diff --git a/.all-contributorsrc b/.all-contributorsrc index e69de29b..53eccc2b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -0,0 +1,23 @@ +{ + "projectName": "github-action-readme-generator", + "projectOwner": "bitflight-devops", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": true, + "contributors": [{ + "login": "Jamie-BitFlight", + "name": "Jamie Nelson", + "avatar_url": "https://avatars.githubusercontent.com/u/25075504?v=4", + "profile": "https://bitflight.io", + "contributions": [ + "code", + "doc", + "ideas", + "test" + ] + }] +} diff --git a/.eslintignore b/.eslintignore index 1f90a173..3eb89012 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,3 +3,4 @@ lib/ node_modules/ jest.config.ts .gulpfile.js +esbuild.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index b190b609..15bac6ec 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -11,10 +11,27 @@ module.exports = { files: ['*.yml', '*.yaml'], extends: [pp], }, + { + files: ['*.mjs'], + extends: ['airbnb-base', 'eslint:recommended', pp], + parser: '@babel/eslint-parser', + env: { es2022: true, node: true }, + parserOptions: { + requireConfigFile: false, + sourceType: 'script', + ecmaVersion: 'latest', + ecmaFeatures: { + impliedStrict: true, + }, + }, + rules: { + 'import/no-extraneous-dependencies': 'off', + }, + }, { files: ['*.js', '*.cjs', '*.jsx'], - plugins: ['editorconfig'], - extends: ['airbnb-base', 'eslint:recommended', 'plugin:editorconfig/all', pp], + + extends: ['airbnb-base', 'eslint:recommended', pp], rules: { 'no-plusplus': 'off', 'unicorn/prefer-module': 'off', @@ -38,8 +55,8 @@ module.exports = { }, { files: ['*.html', '*.json'], - plugins: ['editorconfig'], - extends: ['plugin:editorconfig/all', pp], + + extends: [pp], rules: { 'no-plusplus': 'off', }, @@ -65,14 +82,12 @@ module.exports = { 'jest-async', '@typescript-eslint', 'optimize-regex', - 'editorconfig', 'promise', ], extends: [ 'plugin:promise/recommended', 'plugin:no-use-extend-native/recommended', 'plugin:jest/recommended', - 'plugin:editorconfig/all', 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'airbnb-base', diff --git a/.eslintrc.js.old b/.eslintrc.js.old deleted file mode 100644 index a9ce1123..00000000 --- a/.eslintrc.js.old +++ /dev/null @@ -1,62 +0,0 @@ -module.exports = { - root: true, - plugins: [ - '@typescript-eslint', - 'sort-class-members', - 'simple-import-sort', - 'import', - 'jest', - 'security', - ], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - 'plugin:security/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'airbnb-base', - 'plugin:prettier/recommended', - ], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 'es2022', - sourceType: 'module', - project: ['./tsconfig.json'], - tsconfigRootDir: __dirname, - }, - ignorePatterns: ['.eslintrc.js', '.gulpfile.js'], - rules: { - 'no-unused-vars': 'off', - 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error', - 'import/first': 'error', - 'import/newline-after-import': 'error', - 'import/no-absolute-path': 'error', - 'import/no-duplicates': 'error', - 'import/extensions': 'off', - 'security/detect-non-literal-fs-filename': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - 'dot-notation': 'off', - '@typescript-eslint/no-explicit-any': 'off', - // 'import/no-unresolved': [2, { commonjs: true }], - }, - env: { - es2021: true, - node: true, - 'jest/globals': true, - }, - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - - 'import/resolver': { - typescript: { - alwaysTryTypes: true, // always try to resolve types under `@types` directory even it doesn't contain any source code, like `@types/unist` - }, - }, - }, -}; diff --git a/.gitignore b/.gitignore index 75cc5141..b82b6a3d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ yarn-error.log* lerna-debug.log* junit.xml .yarn/install-state.gz -/dist +/out # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json /.env diff --git a/.npmrc b/.npmrc index 4f6099b4..7df7c1a5 100644 --- a/.npmrc +++ b/.npmrc @@ -1,4 +1,8 @@ package-lock=false -//registry.npmjs.org/:_authToken=${NPM_TOKEN:-} +//registry.npmjs.org/:_authToken=${NPM_TOKEN} bitflight-devops:registry=https://registry.npmjs.org/ always-auth=true +merge-git-branch-lockfiles-branch-pattern[]=main +merge-git-branch-lockfiles-branch-pattern[]=release* +use-node-version=20.7.0 +node-version=20.7.0 diff --git a/.prettierignore b/.prettierignore index 0e9e6820..1a099f50 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,5 +1,6 @@ dist/ lib/ +out/ node_modules/ **/.vscode **/.vs diff --git a/.prettierrc.cjs b/.prettierrc.cjs index 683cdec2..ddcb9714 100644 --- a/.prettierrc.cjs +++ b/.prettierrc.cjs @@ -17,7 +17,8 @@ module.exports = { { files: ['**/*.yml', '**/*.yaml'], options: { - printWidth: 1000, + singleQuote: false, + printWidth: 100, parser: 'yaml', }, }, diff --git a/.trunk/.gitignore b/.trunk/.gitignore index cf2f2547..1e246529 100644 --- a/.trunk/.gitignore +++ b/.trunk/.gitignore @@ -2,6 +2,7 @@ *logs *actions *notifications +*tools plugins user_trunk.yaml user.yaml diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 4708f043..54088cb9 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -4,27 +4,32 @@ runtimes: - go@1.18.3 - node@16.14.2 actions: + disabled: + - git-lfs + - trunk-announce + - trunk-check-pre-push + - trunk-fmt-pre-commit enabled: - trunk-cache-prune - trunk-upgrade-available plugins: sources: - id: trunk - ref: v0.0.5 + ref: v1.2.1 uri: https://github.com/trunk-io/plugins cli: - version: 1.0.1 + version: 1.16.1 lint: disabled: - git-diff-check enabled: - - cspell@6.12.0 - - actionlint@1.6.21 - - eslint@8.25.0 - - gitleaks@8.15.0 - - markdownlint@0.32.2 - - prettier@2.7.1 - - shellcheck@0.8.0 + - cspell@7.3.6 + - actionlint@1.6.26 + - eslint@8.50.0 + - gitleaks@8.18.0 + - markdownlint@0.37.0 + - prettier@3.0.3 + - shellcheck@0.9.0 - shfmt@3.5.0 ignore: - linters: [ALL] diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index c52084b3..c4b9d93e 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/.yarn/releases/yarn-3.2.2.cjs b/.yarn/releases/yarn-3.2.2.cjs deleted file mode 100755 index 0912bea8..00000000 --- a/.yarn/releases/yarn-3.2.2.cjs +++ /dev/null @@ -1,783 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var nge=Object.create,Mh=Object.defineProperty,sge=Object.defineProperties,oge=Object.getOwnPropertyDescriptor,age=Object.getOwnPropertyDescriptors,Age=Object.getOwnPropertyNames,DE=Object.getOwnPropertySymbols,lge=Object.getPrototypeOf,eQ=Object.prototype.hasOwnProperty,OO=Object.prototype.propertyIsEnumerable;var MO=(r,e,t)=>e in r?Mh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,N=(r,e)=>{for(var t in e||(e={}))eQ.call(e,t)&&MO(r,t,e[t]);if(DE)for(var t of DE(e))OO.call(e,t)&&MO(r,t,e[t]);return r},te=(r,e)=>sge(r,age(e)),cge=r=>Mh(r,"__esModule",{value:!0});var Or=(r,e)=>{var t={};for(var i in r)eQ.call(r,i)&&e.indexOf(i)<0&&(t[i]=r[i]);if(r!=null&&DE)for(var i of DE(r))e.indexOf(i)<0&&OO.call(r,i)&&(t[i]=r[i]);return t},uge=(r,e)=>()=>(r&&(e=r(r=0)),e),w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ft=(r,e)=>{for(var t in e)Mh(r,t,{get:e[t],enumerable:!0})},gge=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Age(e))!eQ.call(r,i)&&i!=="default"&&Mh(r,i,{get:()=>e[i],enumerable:!(t=oge(e,i))||t.enumerable});return r},ge=r=>gge(cge(Mh(r!=null?nge(lge(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var cM=w((i7e,oM)=>{oM.exports=aM;aM.sync=xge;var AM=require("fs");function kge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{uM.exports=gM;gM.sync=Pge;var fM=require("fs");function gM(r,e,t){fM.stat(r,function(i,n){t(i,i?!1:hM(n,e))})}function Pge(r,e){return hM(fM.statSync(r),e)}function hM(r,e){return r.isFile()&&Dge(r,e)}function Dge(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var CM=w((o7e,dM)=>{var s7e=require("fs"),zE;process.platform==="win32"||global.TESTING_WINDOWS?zE=cM():zE=pM();dM.exports=CQ;CQ.sync=Rge;function CQ(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){CQ(r,e||{},function(s,o){s?n(s):i(o)})})}zE(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function Rge(r,e){try{return zE.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var bM=w((a7e,mM)=>{var Xu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",EM=require("path"),Fge=Xu?";":":",IM=CM(),yM=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),wM=(r,e)=>{let t=e.colon||Fge,i=r.match(/\//)||Xu&&r.match(/\\/)?[""]:[...Xu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Xu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Xu?n.split(t):[""];return Xu&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},BM=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=wM(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(yM(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=EM.join(h,r),m=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(m,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];IM(c+p,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Nge=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=wM(r,e),s=[];for(let o=0;o{"use strict";var QM=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};mQ.exports=QM;mQ.exports.default=QM});var PM=w((l7e,vM)=>{"use strict";var xM=require("path"),Lge=bM(),Tge=SM();function kM(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch(a){}let o;try{o=Lge.sync(r.command,{path:t[Tge({env:t})],pathExt:e?xM.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=xM.resolve(n?r.options.cwd:"",o)),o}function Oge(r){return kM(r)||kM(r,!0)}vM.exports=Oge});var DM=w((c7e,EQ)=>{"use strict";var IQ=/([()\][%!^"`<>&|;, *?])/g;function Mge(r){return r=r.replace(IQ,"^$1"),r}function Kge(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(IQ,"^$1"),e&&(r=r.replace(IQ,"^$1")),r}EQ.exports.command=Mge;EQ.exports.argument=Kge});var FM=w((u7e,RM)=>{"use strict";RM.exports=/^#!(.*)/});var LM=w((g7e,NM)=>{"use strict";var Uge=FM();NM.exports=(r="")=>{let e=r.match(Uge);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var OM=w((f7e,TM)=>{"use strict";var yQ=require("fs"),Hge=LM();function jge(r){let e=150,t=Buffer.alloc(e),i;try{i=yQ.openSync(r,"r"),yQ.readSync(i,t,0,e,0),yQ.closeSync(i)}catch(n){}return Hge(t.toString())}TM.exports=jge});var HM=w((h7e,MM)=>{"use strict";var Gge=require("path"),KM=PM(),UM=DM(),Yge=OM(),qge=process.platform==="win32",Jge=/\.(?:com|exe)$/i,Wge=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function zge(r){r.file=KM(r);let e=r.file&&Yge(r.file);return e?(r.args.unshift(r.file),r.command=e,KM(r)):r.file}function _ge(r){if(!qge)return r;let e=zge(r),t=!Jge.test(e);if(r.options.forceShell||t){let i=Wge.test(e);r.command=Gge.normalize(r.command),r.command=UM.command(r.command),r.args=r.args.map(s=>UM.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function Vge(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:_ge(i)}MM.exports=Vge});var YM=w((p7e,jM)=>{"use strict";var wQ=process.platform==="win32";function BQ(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Xge(r,e){if(!wQ)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=GM(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function GM(r,e){return wQ&&r===1&&!e.file?BQ(e.original,"spawn"):null}function Zge(r,e){return wQ&&r===1&&!e.file?BQ(e.original,"spawnSync"):null}jM.exports={hookChildProcess:Xge,verifyENOENT:GM,verifyENOENTSync:Zge,notFoundError:BQ}});var SQ=w((d7e,Zu)=>{"use strict";var qM=require("child_process"),bQ=HM(),QQ=YM();function JM(r,e,t){let i=bQ(r,e,t),n=qM.spawn(i.command,i.args,i.options);return QQ.hookChildProcess(n,i),n}function $ge(r,e,t){let i=bQ(r,e,t),n=qM.spawnSync(i.command,i.args,i.options);return n.error=n.error||QQ.verifyENOENTSync(n.status,i),n}Zu.exports=JM;Zu.exports.spawn=JM;Zu.exports.sync=$ge;Zu.exports._parse=bQ;Zu.exports._enoent=QQ});var zM=w((C7e,WM)=>{"use strict";function efe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function cc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,cc)}efe(cc,Error);cc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",le=me(">>",!1),fe=">&",gt=me(">&",!1),Ht=">",Mt=me(">",!1),Ei="<<<",jt=me("<<<",!1),Qr="<&",Oi=me("<&",!1),Xs="<",Un=me("<",!1),Hn=function(C){return{type:"argument",segments:[].concat(...C)}},Sr=function(C){return C},jn="$'",fs=me("$'",!1),ba="'",DA=me("'",!1),Nu=function(C){return[{type:"text",text:C}]},hs='""',RA=me('""',!1),Qa=function(){return{type:"text",text:""}},Lu='"',FA=me('"',!1),NA=function(C){return C},vr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},zl=function(C){return{type:"shell",shell:C,quoted:!0}},Tu=function(C){return te(N({type:"variable"},C),{quoted:!0})},xo=function(C){return{type:"text",text:C}},Ou=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Sh=function(C){return{type:"shell",shell:C,quoted:!1}},vh=function(C){return te(N({type:"variable"},C),{quoted:!1})},Dr=function(C){return{type:"glob",pattern:C}},Ae=/^[^']/,ko=_e(["'"],!0,!1),Gn=function(C){return C.join("")},Mu=/^[^$"]/,St=_e(["$",'"'],!0,!1),_l=`\\ -`,Yn=me(`\\ -`,!1),ps=function(){return""},ds="\\",pt=me("\\",!1),Po=/^[\\$"`]/,lt=_e(["\\","$",'"',"`"],!1,!1),mn=function(C){return C},S="\\a",Tt=me("\\a",!1),Ku=function(){return"a"},Vl="\\b",xh=me("\\b",!1),kh=function(){return"\b"},Ph=/^[Ee]/,Dh=_e(["E","e"],!1,!1),Rh=function(){return""},j="\\f",wt=me("\\f",!1),LA=function(){return"\f"},$i="\\n",Xl=me("\\n",!1),$e=function(){return` -`},Sa="\\r",Uu=me("\\r",!1),yE=function(){return"\r"},Fh="\\t",wE=me("\\t",!1),gr=function(){return" "},qn="\\v",Zl=me("\\v",!1),Nh=function(){return"\v"},Zs=/^[\\'"?]/,va=_e(["\\","'",'"',"?"],!1,!1),En=function(C){return String.fromCharCode(parseInt(C,16))},Oe="\\x",Hu=me("\\x",!1),$l="\\u",$s=me("\\u",!1),ec="\\U",TA=me("\\U",!1),ju=function(C){return String.fromCodePoint(parseInt(C,16))},Gu=/^[0-7]/,xa=_e([["0","7"]],!1,!1),ka=/^[0-9a-fA-f]/,nt=_e([["0","9"],["a","f"],["A","f"]],!1,!1),Do=ot(),OA="-",tc=me("-",!1),eo="+",rc=me("+",!1),BE=".",Lh=me(".",!1),Yu=function(C,Q,F){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},Th=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},bE=function(C){return N({type:"variable"},C)},ic=function(C){return{type:"variable",name:C}},QE=function(C){return C},qu="*",MA=me("*",!1),Tr="/",SE=me("/",!1),to=function(C,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},ro=function(C,Q){return Q.reduce((F,U)=>N({left:F},U),C)},Ju=function(C,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},KA="$((",R=me("$((",!1),G="))",Ce=me("))",!1),He=function(C){return C},Te="$(",Xe=me("$(",!1),Et=function(C){return C},Rt="${",Jn=me("${",!1),Ob=":-",lO=me(":-",!1),cO=function(C,Q){return{name:C,defaultValue:Q}},Mb=":-}",uO=me(":-}",!1),gO=function(C){return{name:C,defaultValue:[]}},Kb=":+",fO=me(":+",!1),hO=function(C,Q){return{name:C,alternativeValue:Q}},Ub=":+}",pO=me(":+}",!1),dO=function(C){return{name:C,alternativeValue:[]}},Hb=function(C){return{name:C}},CO="$",mO=me("$",!1),EO=function(C){return e.isGlobPattern(C)},IO=function(C){return C},jb=/^[a-zA-Z0-9_]/,Gb=_e([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Yb=function(){return M()},qb=/^[$@*?#a-zA-Z0-9_\-]/,Jb=_e(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),yO=/^[(){}<>$|&; \t"']/,Wu=_e(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Wb=/^[<>&; \t"']/,zb=_e(["<",">","&",";"," "," ",'"',"'"],!1,!1),vE=/^[ \t]/,xE=_e([" "," "],!1,!1),B=0,Ue=0,UA=[{line:1,column:1}],d=0,E=[],I=0,D;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function M(){return r.substring(Ue,B)}function z(){return yt(Ue,B)}function ie(C,Q){throw Q=Q!==void 0?Q:yt(Ue,B),Mi([ut(C)],r.substring(Ue,B),Q)}function we(C,Q){throw Q=Q!==void 0?Q:yt(Ue,B),Wn(C,Q)}function me(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function _e(C,Q,F){return{type:"class",parts:C,inverted:Q,ignoreCase:F}}function ot(){return{type:"any"}}function Bt(){return{type:"end"}}function ut(C){return{type:"other",description:C}}function st(C){var Q=UA[C],F;if(Q)return Q;for(F=C-1;!UA[F];)F--;for(Q=UA[F],Q={line:Q.line,column:Q.column};Fd&&(d=B,E=[]),E.push(C))}function Wn(C,Q){return new cc(C,null,null,Q)}function Mi(C,Q,F){return new cc(cc.buildMessage(C,Q),C,Q,F)}function HA(){var C,Q;return C=B,Q=Yr(),Q===t&&(Q=null),Q!==t&&(Ue=C,Q=s(Q)),C=Q,C}function Yr(){var C,Q,F,U,ue;if(C=B,Q=qr(),Q!==t){for(F=[],U=Ye();U!==t;)F.push(U),U=Ye();F!==t?(U=Pa(),U!==t?(ue=Cs(),ue===t&&(ue=null),ue!==t?(Ue=C,Q=o(Q,U,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;if(C===t)if(C=B,Q=qr(),Q!==t){for(F=[],U=Ye();U!==t;)F.push(U),U=Ye();F!==t?(U=Pa(),U===t&&(U=null),U!==t?(Ue=C,Q=a(Q,U),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;return C}function Cs(){var C,Q,F,U,ue;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t)if(F=Yr(),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();U!==t?(Ue=C,Q=l(F),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;return C}function Pa(){var C;return r.charCodeAt(B)===59?(C=c,B++):(C=t,I===0&&xe(u)),C===t&&(r.charCodeAt(B)===38?(C=g,B++):(C=t,I===0&&xe(f))),C}function qr(){var C,Q,F;return C=B,Q=wO(),Q!==t?(F=Hue(),F===t&&(F=null),F!==t?(Ue=C,Q=h(Q,F),C=Q):(B=C,C=t)):(B=C,C=t),C}function Hue(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t)if(F=jue(),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();if(U!==t)if(ue=qr(),ue!==t){for(De=[],Ct=Ye();Ct!==t;)De.push(Ct),Ct=Ye();De!==t?(Ue=C,Q=p(F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;return C}function jue(){var C;return r.substr(B,2)===m?(C=m,B+=2):(C=t,I===0&&xe(y)),C===t&&(r.substr(B,2)===b?(C=b,B+=2):(C=t,I===0&&xe(v))),C}function wO(){var C,Q,F;return C=B,Q=que(),Q!==t?(F=Gue(),F===t&&(F=null),F!==t?(Ue=C,Q=x(Q,F),C=Q):(B=C,C=t)):(B=C,C=t),C}function Gue(){var C,Q,F,U,ue,De,Ct;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t)if(F=Yue(),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();if(U!==t)if(ue=wO(),ue!==t){for(De=[],Ct=Ye();Ct!==t;)De.push(Ct),Ct=Ye();De!==t?(Ue=C,Q=T(F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;return C}function Yue(){var C;return r.substr(B,2)===q?(C=q,B+=2):(C=t,I===0&&xe(Y)),C===t&&(r.charCodeAt(B)===124?(C=$,B++):(C=t,I===0&&xe(_))),C}function kE(){var C,Q,F,U,ue,De;if(C=B,Q=NO(),Q!==t)if(r.charCodeAt(B)===61?(F=ne,B++):(F=t,I===0&&xe(ee)),F!==t)if(U=QO(),U!==t){for(ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();ue!==t?(Ue=C,Q=A(Q,U),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;else B=C,C=t;if(C===t)if(C=B,Q=NO(),Q!==t)if(r.charCodeAt(B)===61?(F=ne,B++):(F=t,I===0&&xe(ee)),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();U!==t?(Ue=C,Q=oe(Q),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;return C}function que(){var C,Q,F,U,ue,De,Ct,bt,$r,Ii,ms;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t)if(r.charCodeAt(B)===40?(F=ce,B++):(F=t,I===0&&xe(Z)),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();if(U!==t)if(ue=Yr(),ue!==t){for(De=[],Ct=Ye();Ct!==t;)De.push(Ct),Ct=Ye();if(De!==t)if(r.charCodeAt(B)===41?(Ct=O,B++):(Ct=t,I===0&&xe(L)),Ct!==t){for(bt=[],$r=Ye();$r!==t;)bt.push($r),$r=Ye();if(bt!==t){for($r=[],Ii=Oh();Ii!==t;)$r.push(Ii),Ii=Oh();if($r!==t){for(Ii=[],ms=Ye();ms!==t;)Ii.push(ms),ms=Ye();Ii!==t?(Ue=C,Q=de(ue,$r),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;if(C===t){for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t)if(r.charCodeAt(B)===123?(F=Be,B++):(F=t,I===0&&xe(je)),F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();if(U!==t)if(ue=Yr(),ue!==t){for(De=[],Ct=Ye();Ct!==t;)De.push(Ct),Ct=Ye();if(De!==t)if(r.charCodeAt(B)===125?(Ct=re,B++):(Ct=t,I===0&&xe(se)),Ct!==t){for(bt=[],$r=Ye();$r!==t;)bt.push($r),$r=Ye();if(bt!==t){for($r=[],Ii=Oh();Ii!==t;)$r.push(Ii),Ii=Oh();if($r!==t){for(Ii=[],ms=Ye();ms!==t;)Ii.push(ms),ms=Ye();Ii!==t?(Ue=C,Q=be(ue,$r),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;if(C===t){for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t){for(F=[],U=kE();U!==t;)F.push(U),U=kE();if(F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();if(U!==t){if(ue=[],De=bO(),De!==t)for(;De!==t;)ue.push(De),De=bO();else ue=t;if(ue!==t){for(De=[],Ct=Ye();Ct!==t;)De.push(Ct),Ct=Ye();De!==t?(Ue=C,Q=he(F,ue),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t}else B=C,C=t;if(C===t){for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t){if(F=[],U=kE(),U!==t)for(;U!==t;)F.push(U),U=kE();else F=t;if(F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();U!==t?(Ue=C,Q=Fe(F),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}}}return C}function BO(){var C,Q,F,U,ue;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t){if(F=[],U=PE(),U!==t)for(;U!==t;)F.push(U),U=PE();else F=t;if(F!==t){for(U=[],ue=Ye();ue!==t;)U.push(ue),ue=Ye();U!==t?(Ue=C,Q=Ke(F),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t;return C}function bO(){var C,Q,F;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();if(Q!==t?(F=Oh(),F!==t?(Ue=C,Q=ke(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t){for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();Q!==t?(F=PE(),F!==t?(Ue=C,Q=ke(F),C=Q):(B=C,C=t)):(B=C,C=t)}return C}function Oh(){var C,Q,F,U,ue;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();return Q!==t?(ve.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(pe)),F===t&&(F=null),F!==t?(U=Jue(),U!==t?(ue=PE(),ue!==t?(Ue=C,Q=V(F,U,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function Jue(){var C;return r.substr(B,2)===Qe?(C=Qe,B+=2):(C=t,I===0&&xe(le)),C===t&&(r.substr(B,2)===fe?(C=fe,B+=2):(C=t,I===0&&xe(gt)),C===t&&(r.charCodeAt(B)===62?(C=Ht,B++):(C=t,I===0&&xe(Mt)),C===t&&(r.substr(B,3)===Ei?(C=Ei,B+=3):(C=t,I===0&&xe(jt)),C===t&&(r.substr(B,2)===Qr?(C=Qr,B+=2):(C=t,I===0&&xe(Oi)),C===t&&(r.charCodeAt(B)===60?(C=Xs,B++):(C=t,I===0&&xe(Un))))))),C}function PE(){var C,Q,F;for(C=B,Q=[],F=Ye();F!==t;)Q.push(F),F=Ye();return Q!==t?(F=QO(),F!==t?(Ue=C,Q=ke(F),C=Q):(B=C,C=t)):(B=C,C=t),C}function QO(){var C,Q,F;if(C=B,Q=[],F=SO(),F!==t)for(;F!==t;)Q.push(F),F=SO();else Q=t;return Q!==t&&(Ue=C,Q=Hn(Q)),C=Q,C}function SO(){var C,Q;return C=B,Q=Wue(),Q!==t&&(Ue=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=zue(),Q!==t&&(Ue=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=_ue(),Q!==t&&(Ue=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=Vue(),Q!==t&&(Ue=C,Q=Sr(Q)),C=Q))),C}function Wue(){var C,Q,F,U;return C=B,r.substr(B,2)===jn?(Q=jn,B+=2):(Q=t,I===0&&xe(fs)),Q!==t?(F=$ue(),F!==t?(r.charCodeAt(B)===39?(U=ba,B++):(U=t,I===0&&xe(DA)),U!==t?(Ue=C,Q=Nu(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function zue(){var C,Q,F,U;return C=B,r.charCodeAt(B)===39?(Q=ba,B++):(Q=t,I===0&&xe(DA)),Q!==t?(F=Xue(),F!==t?(r.charCodeAt(B)===39?(U=ba,B++):(U=t,I===0&&xe(DA)),U!==t?(Ue=C,Q=Nu(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function _ue(){var C,Q,F,U;if(C=B,r.substr(B,2)===hs?(Q=hs,B+=2):(Q=t,I===0&&xe(RA)),Q!==t&&(Ue=C,Q=Qa()),C=Q,C===t)if(C=B,r.charCodeAt(B)===34?(Q=Lu,B++):(Q=t,I===0&&xe(FA)),Q!==t){for(F=[],U=vO();U!==t;)F.push(U),U=vO();F!==t?(r.charCodeAt(B)===34?(U=Lu,B++):(U=t,I===0&&xe(FA)),U!==t?(Ue=C,Q=NA(F),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;return C}function Vue(){var C,Q,F;if(C=B,Q=[],F=xO(),F!==t)for(;F!==t;)Q.push(F),F=xO();else Q=t;return Q!==t&&(Ue=C,Q=NA(Q)),C=Q,C}function vO(){var C,Q;return C=B,Q=RO(),Q!==t&&(Ue=C,Q=vr(Q)),C=Q,C===t&&(C=B,Q=FO(),Q!==t&&(Ue=C,Q=zl(Q)),C=Q,C===t&&(C=B,Q=Zb(),Q!==t&&(Ue=C,Q=Tu(Q)),C=Q,C===t&&(C=B,Q=Zue(),Q!==t&&(Ue=C,Q=xo(Q)),C=Q))),C}function xO(){var C,Q;return C=B,Q=RO(),Q!==t&&(Ue=C,Q=Ou(Q)),C=Q,C===t&&(C=B,Q=FO(),Q!==t&&(Ue=C,Q=Sh(Q)),C=Q,C===t&&(C=B,Q=Zb(),Q!==t&&(Ue=C,Q=vh(Q)),C=Q,C===t&&(C=B,Q=rge(),Q!==t&&(Ue=C,Q=Dr(Q)),C=Q,C===t&&(C=B,Q=tge(),Q!==t&&(Ue=C,Q=xo(Q)),C=Q)))),C}function Xue(){var C,Q,F;for(C=B,Q=[],Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(ko));F!==t;)Q.push(F),Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(ko));return Q!==t&&(Ue=C,Q=Gn(Q)),C=Q,C}function Zue(){var C,Q,F;if(C=B,Q=[],F=kO(),F===t&&(Mu.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(St))),F!==t)for(;F!==t;)Q.push(F),F=kO(),F===t&&(Mu.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(St)));else Q=t;return Q!==t&&(Ue=C,Q=Gn(Q)),C=Q,C}function kO(){var C,Q,F;return C=B,r.substr(B,2)===_l?(Q=_l,B+=2):(Q=t,I===0&&xe(Yn)),Q!==t&&(Ue=C,Q=ps()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&xe(pt)),Q!==t?(Po.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(lt)),F!==t?(Ue=C,Q=mn(F),C=Q):(B=C,C=t)):(B=C,C=t)),C}function $ue(){var C,Q,F;for(C=B,Q=[],F=PO(),F===t&&(Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(ko)));F!==t;)Q.push(F),F=PO(),F===t&&(Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(ko)));return Q!==t&&(Ue=C,Q=Gn(Q)),C=Q,C}function PO(){var C,Q,F;return C=B,r.substr(B,2)===S?(Q=S,B+=2):(Q=t,I===0&&xe(Tt)),Q!==t&&(Ue=C,Q=Ku()),C=Q,C===t&&(C=B,r.substr(B,2)===Vl?(Q=Vl,B+=2):(Q=t,I===0&&xe(xh)),Q!==t&&(Ue=C,Q=kh()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&xe(pt)),Q!==t?(Ph.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(Dh)),F!==t?(Ue=C,Q=Rh(),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===j?(Q=j,B+=2):(Q=t,I===0&&xe(wt)),Q!==t&&(Ue=C,Q=LA()),C=Q,C===t&&(C=B,r.substr(B,2)===$i?(Q=$i,B+=2):(Q=t,I===0&&xe(Xl)),Q!==t&&(Ue=C,Q=$e()),C=Q,C===t&&(C=B,r.substr(B,2)===Sa?(Q=Sa,B+=2):(Q=t,I===0&&xe(Uu)),Q!==t&&(Ue=C,Q=yE()),C=Q,C===t&&(C=B,r.substr(B,2)===Fh?(Q=Fh,B+=2):(Q=t,I===0&&xe(wE)),Q!==t&&(Ue=C,Q=gr()),C=Q,C===t&&(C=B,r.substr(B,2)===qn?(Q=qn,B+=2):(Q=t,I===0&&xe(Zl)),Q!==t&&(Ue=C,Q=Nh()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&xe(pt)),Q!==t?(Zs.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(va)),F!==t?(Ue=C,Q=mn(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=ege()))))))))),C}function ege(){var C,Q,F,U,ue,De,Ct,bt,$r,Ii,ms,$b;return C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&xe(pt)),Q!==t?(F=_b(),F!==t?(Ue=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Oe?(Q=Oe,B+=2):(Q=t,I===0&&xe(Hu)),Q!==t?(F=B,U=B,ue=_b(),ue!==t?(De=zn(),De!==t?(ue=[ue,De],U=ue):(B=U,U=t)):(B=U,U=t),U===t&&(U=_b()),U!==t?F=r.substring(F,B):F=U,F!==t?(Ue=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===$l?(Q=$l,B+=2):(Q=t,I===0&&xe($s)),Q!==t?(F=B,U=B,ue=zn(),ue!==t?(De=zn(),De!==t?(Ct=zn(),Ct!==t?(bt=zn(),bt!==t?(ue=[ue,De,Ct,bt],U=ue):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t),U!==t?F=r.substring(F,B):F=U,F!==t?(Ue=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===ec?(Q=ec,B+=2):(Q=t,I===0&&xe(TA)),Q!==t?(F=B,U=B,ue=zn(),ue!==t?(De=zn(),De!==t?(Ct=zn(),Ct!==t?(bt=zn(),bt!==t?($r=zn(),$r!==t?(Ii=zn(),Ii!==t?(ms=zn(),ms!==t?($b=zn(),$b!==t?(ue=[ue,De,Ct,bt,$r,Ii,ms,$b],U=ue):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t)):(B=U,U=t),U!==t?F=r.substring(F,B):F=U,F!==t?(Ue=C,Q=ju(F),C=Q):(B=C,C=t)):(B=C,C=t)))),C}function _b(){var C;return Gu.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&xe(xa)),C}function zn(){var C;return ka.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&xe(nt)),C}function tge(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,r.charCodeAt(B)===92?(U=ds,B++):(U=t,I===0&&xe(pt)),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t),F===t&&(F=B,U=B,I++,ue=LO(),I--,ue===t?U=void 0:(B=U,U=t),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t)),F!==t)for(;F!==t;)Q.push(F),F=B,r.charCodeAt(B)===92?(U=ds,B++):(U=t,I===0&&xe(pt)),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t),F===t&&(F=B,U=B,I++,ue=LO(),I--,ue===t?U=void 0:(B=U,U=t),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t));else Q=t;return Q!==t&&(Ue=C,Q=Gn(Q)),C=Q,C}function Vb(){var C,Q,F,U,ue,De;if(C=B,r.charCodeAt(B)===45?(Q=OA,B++):(Q=t,I===0&&xe(tc)),Q===t&&(r.charCodeAt(B)===43?(Q=eo,B++):(Q=t,I===0&&xe(rc))),Q===t&&(Q=null),Q!==t){if(F=[],ve.test(r.charAt(B))?(U=r.charAt(B),B++):(U=t,I===0&&xe(pe)),U!==t)for(;U!==t;)F.push(U),ve.test(r.charAt(B))?(U=r.charAt(B),B++):(U=t,I===0&&xe(pe));else F=t;if(F!==t)if(r.charCodeAt(B)===46?(U=BE,B++):(U=t,I===0&&xe(Lh)),U!==t){if(ue=[],ve.test(r.charAt(B))?(De=r.charAt(B),B++):(De=t,I===0&&xe(pe)),De!==t)for(;De!==t;)ue.push(De),ve.test(r.charAt(B))?(De=r.charAt(B),B++):(De=t,I===0&&xe(pe));else ue=t;ue!==t?(Ue=C,Q=Yu(Q,F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;if(C===t){if(C=B,r.charCodeAt(B)===45?(Q=OA,B++):(Q=t,I===0&&xe(tc)),Q===t&&(r.charCodeAt(B)===43?(Q=eo,B++):(Q=t,I===0&&xe(rc))),Q===t&&(Q=null),Q!==t){if(F=[],ve.test(r.charAt(B))?(U=r.charAt(B),B++):(U=t,I===0&&xe(pe)),U!==t)for(;U!==t;)F.push(U),ve.test(r.charAt(B))?(U=r.charAt(B),B++):(U=t,I===0&&xe(pe));else F=t;F!==t?(Ue=C,Q=Th(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;if(C===t&&(C=B,Q=Zb(),Q!==t&&(Ue=C,Q=bE(Q)),C=Q,C===t&&(C=B,Q=nc(),Q!==t&&(Ue=C,Q=ic(Q)),C=Q,C===t)))if(C=B,r.charCodeAt(B)===40?(Q=ce,B++):(Q=t,I===0&&xe(Z)),Q!==t){for(F=[],U=Ye();U!==t;)F.push(U),U=Ye();if(F!==t)if(U=DO(),U!==t){for(ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();ue!==t?(r.charCodeAt(B)===41?(De=O,B++):(De=t,I===0&&xe(L)),De!==t?(Ue=C,Q=QE(U),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t}return C}function Xb(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=Vb(),Q!==t){for(F=[],U=B,ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();if(ue!==t)if(r.charCodeAt(B)===42?(De=qu,B++):(De=t,I===0&&xe(MA)),De===t&&(r.charCodeAt(B)===47?(De=Tr,B++):(De=t,I===0&&xe(SE))),De!==t){for(Ct=[],bt=Ye();bt!==t;)Ct.push(bt),bt=Ye();Ct!==t?(bt=Vb(),bt!==t?(Ue=U,ue=to(Q,De,bt),U=ue):(B=U,U=t)):(B=U,U=t)}else B=U,U=t;else B=U,U=t;for(;U!==t;){for(F.push(U),U=B,ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();if(ue!==t)if(r.charCodeAt(B)===42?(De=qu,B++):(De=t,I===0&&xe(MA)),De===t&&(r.charCodeAt(B)===47?(De=Tr,B++):(De=t,I===0&&xe(SE))),De!==t){for(Ct=[],bt=Ye();bt!==t;)Ct.push(bt),bt=Ye();Ct!==t?(bt=Vb(),bt!==t?(Ue=U,ue=to(Q,De,bt),U=ue):(B=U,U=t)):(B=U,U=t)}else B=U,U=t;else B=U,U=t}F!==t?(Ue=C,Q=ro(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;return C}function DO(){var C,Q,F,U,ue,De,Ct,bt;if(C=B,Q=Xb(),Q!==t){for(F=[],U=B,ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();if(ue!==t)if(r.charCodeAt(B)===43?(De=eo,B++):(De=t,I===0&&xe(rc)),De===t&&(r.charCodeAt(B)===45?(De=OA,B++):(De=t,I===0&&xe(tc))),De!==t){for(Ct=[],bt=Ye();bt!==t;)Ct.push(bt),bt=Ye();Ct!==t?(bt=Xb(),bt!==t?(Ue=U,ue=Ju(Q,De,bt),U=ue):(B=U,U=t)):(B=U,U=t)}else B=U,U=t;else B=U,U=t;for(;U!==t;){for(F.push(U),U=B,ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();if(ue!==t)if(r.charCodeAt(B)===43?(De=eo,B++):(De=t,I===0&&xe(rc)),De===t&&(r.charCodeAt(B)===45?(De=OA,B++):(De=t,I===0&&xe(tc))),De!==t){for(Ct=[],bt=Ye();bt!==t;)Ct.push(bt),bt=Ye();Ct!==t?(bt=Xb(),bt!==t?(Ue=U,ue=Ju(Q,De,bt),U=ue):(B=U,U=t)):(B=U,U=t)}else B=U,U=t;else B=U,U=t}F!==t?(Ue=C,Q=ro(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;return C}function RO(){var C,Q,F,U,ue,De;if(C=B,r.substr(B,3)===KA?(Q=KA,B+=3):(Q=t,I===0&&xe(R)),Q!==t){for(F=[],U=Ye();U!==t;)F.push(U),U=Ye();if(F!==t)if(U=DO(),U!==t){for(ue=[],De=Ye();De!==t;)ue.push(De),De=Ye();ue!==t?(r.substr(B,2)===G?(De=G,B+=2):(De=t,I===0&&xe(Ce)),De!==t?(Ue=C,Q=He(U),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;return C}function FO(){var C,Q,F,U;return C=B,r.substr(B,2)===Te?(Q=Te,B+=2):(Q=t,I===0&&xe(Xe)),Q!==t?(F=Yr(),F!==t?(r.charCodeAt(B)===41?(U=O,B++):(U=t,I===0&&xe(L)),U!==t?(Ue=C,Q=Et(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function Zb(){var C,Q,F,U,ue,De;return C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&xe(Jn)),Q!==t?(F=nc(),F!==t?(r.substr(B,2)===Ob?(U=Ob,B+=2):(U=t,I===0&&xe(lO)),U!==t?(ue=BO(),ue!==t?(r.charCodeAt(B)===125?(De=re,B++):(De=t,I===0&&xe(se)),De!==t?(Ue=C,Q=cO(F,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&xe(Jn)),Q!==t?(F=nc(),F!==t?(r.substr(B,3)===Mb?(U=Mb,B+=3):(U=t,I===0&&xe(uO)),U!==t?(Ue=C,Q=gO(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&xe(Jn)),Q!==t?(F=nc(),F!==t?(r.substr(B,2)===Kb?(U=Kb,B+=2):(U=t,I===0&&xe(fO)),U!==t?(ue=BO(),ue!==t?(r.charCodeAt(B)===125?(De=re,B++):(De=t,I===0&&xe(se)),De!==t?(Ue=C,Q=hO(F,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&xe(Jn)),Q!==t?(F=nc(),F!==t?(r.substr(B,3)===Ub?(U=Ub,B+=3):(U=t,I===0&&xe(pO)),U!==t?(Ue=C,Q=dO(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&xe(Jn)),Q!==t?(F=nc(),F!==t?(r.charCodeAt(B)===125?(U=re,B++):(U=t,I===0&&xe(se)),U!==t?(Ue=C,Q=Hb(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.charCodeAt(B)===36?(Q=CO,B++):(Q=t,I===0&&xe(mO)),Q!==t?(F=nc(),F!==t?(Ue=C,Q=Hb(F),C=Q):(B=C,C=t)):(B=C,C=t)))))),C}function rge(){var C,Q,F;return C=B,Q=ige(),Q!==t?(Ue=B,F=EO(Q),F?F=void 0:F=t,F!==t?(Ue=C,Q=IO(Q),C=Q):(B=C,C=t)):(B=C,C=t),C}function ige(){var C,Q,F,U,ue;if(C=B,Q=[],F=B,U=B,I++,ue=TO(),I--,ue===t?U=void 0:(B=U,U=t),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t),F!==t)for(;F!==t;)Q.push(F),F=B,U=B,I++,ue=TO(),I--,ue===t?U=void 0:(B=U,U=t),U!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&xe(Do)),ue!==t?(Ue=F,U=mn(ue),F=U):(B=F,F=t)):(B=F,F=t);else Q=t;return Q!==t&&(Ue=C,Q=Gn(Q)),C=Q,C}function NO(){var C,Q,F;if(C=B,Q=[],jb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(Gb)),F!==t)for(;F!==t;)Q.push(F),jb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(Gb));else Q=t;return Q!==t&&(Ue=C,Q=Yb()),C=Q,C}function nc(){var C,Q,F;if(C=B,Q=[],qb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(Jb)),F!==t)for(;F!==t;)Q.push(F),qb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&xe(Jb));else Q=t;return Q!==t&&(Ue=C,Q=Yb()),C=Q,C}function LO(){var C;return yO.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&xe(Wu)),C}function TO(){var C;return Wb.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&xe(zb)),C}function Ye(){var C,Q;if(C=[],vE.test(r.charAt(B))?(Q=r.charAt(B),B++):(Q=t,I===0&&xe(xE)),Q!==t)for(;Q!==t;)C.push(Q),vE.test(r.charAt(B))?(Q=r.charAt(B),B++):(Q=t,I===0&&xe(xE));else C=t;return C}if(D=n(),D!==t&&B===r.length)return D;throw D!==t&&B{"use strict";function rfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function gc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,gc)}rfe(gc,Error);gc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gq&&(q=v,Y=[]),Y.push(pe))}function se(pe,V){return new gc(pe,null,null,V)}function be(pe,V,Qe){return new gc(gc.buildMessage(pe,V),pe,V,Qe)}function he(){var pe,V,Qe,le;return pe=v,V=Fe(),V!==t?(r.charCodeAt(v)===47?(Qe=s,v++):(Qe=t,$===0&&re(o)),Qe!==t?(le=Fe(),le!==t?(x=pe,V=a(V,le),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=Fe(),V!==t&&(x=pe,V=l(V)),pe=V),pe}function Fe(){var pe,V,Qe,le;return pe=v,V=Ke(),V!==t?(r.charCodeAt(v)===64?(Qe=c,v++):(Qe=t,$===0&&re(u)),Qe!==t?(le=ve(),le!==t?(x=pe,V=g(V,le),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=Ke(),V!==t&&(x=pe,V=f(V)),pe=V),pe}function Ke(){var pe,V,Qe,le,fe;return pe=v,r.charCodeAt(v)===64?(V=c,v++):(V=t,$===0&&re(u)),V!==t?(Qe=ke(),Qe!==t?(r.charCodeAt(v)===47?(le=s,v++):(le=t,$===0&&re(o)),le!==t?(fe=ke(),fe!==t?(x=pe,V=h(),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=ke(),V!==t&&(x=pe,V=h()),pe=V),pe}function ke(){var pe,V,Qe;if(pe=v,V=[],p.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(m)),Qe!==t)for(;Qe!==t;)V.push(Qe),p.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(m));else V=t;return V!==t&&(x=pe,V=h()),pe=V,pe}function ve(){var pe,V,Qe;if(pe=v,V=[],y.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(b)),Qe!==t)for(;Qe!==t;)V.push(Qe),y.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(b));else V=t;return V!==t&&(x=pe,V=h()),pe=V,pe}if(_=n(),_!==t&&v===r.length)return _;throw _!==t&&v{"use strict";function $M(r){return typeof r=="undefined"||r===null}function nfe(r){return typeof r=="object"&&r!==null}function sfe(r){return Array.isArray(r)?r:$M(r)?[]:[r]}function ofe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function ep(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}ep.prototype=Object.create(Error.prototype);ep.prototype.constructor=ep;ep.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};e1.exports=ep});var i1=w((L7e,t1)=>{"use strict";var r1=hc();function RQ(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}RQ.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),r1.repeat(" ",e)+i+a+s+` -`+r1.repeat(" ",e+this.position-n+i.length)+"^"};RQ.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};t1.exports=RQ});var ci=w((T7e,n1)=>{"use strict";var s1=tg(),lfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],cfe=["scalar","sequence","mapping"];function ufe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function gfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(lfe.indexOf(t)===-1)throw new s1('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=ufe(e.styleAliases||null),cfe.indexOf(this.kind)===-1)throw new s1('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}n1.exports=gfe});var pc=w((O7e,o1)=>{"use strict";var a1=hc(),tI=tg(),ffe=ci();function FQ(r,e,t){var i=[];return r.include.forEach(function(n){t=FQ(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function hfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var pfe=ci();A1.exports=new pfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var u1=w((K7e,c1)=>{"use strict";var dfe=ci();c1.exports=new dfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var f1=w((U7e,g1)=>{"use strict";var Cfe=ci();g1.exports=new Cfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var rI=w((H7e,h1)=>{"use strict";var mfe=pc();h1.exports=new mfe({explicit:[l1(),u1(),f1()]})});var d1=w((j7e,p1)=>{"use strict";var Efe=ci();function Ife(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function yfe(){return null}function wfe(r){return r===null}p1.exports=new Efe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Ife,construct:yfe,predicate:wfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var m1=w((G7e,C1)=>{"use strict";var Bfe=ci();function bfe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function Qfe(r){return r==="true"||r==="True"||r==="TRUE"}function Sfe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}C1.exports=new Bfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:bfe,construct:Qfe,predicate:Sfe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var I1=w((Y7e,E1)=>{"use strict";var vfe=hc(),xfe=ci();function kfe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function Pfe(r){return 48<=r&&r<=55}function Dfe(r){return 48<=r&&r<=57}function Rfe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var B1=w((q7e,y1)=>{"use strict";var w1=hc(),Lfe=ci(),Tfe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ofe(r){return!(r===null||!Tfe.test(r)||r[r.length-1]==="_")}function Mfe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var Kfe=/^[-+]?[0-9]+e/;function Ufe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(w1.isNegativeZero(r))return"-0.0";return t=r.toString(10),Kfe.test(t)?t.replace("e",".e"):t}function Hfe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!=0||w1.isNegativeZero(r))}y1.exports=new Lfe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ofe,construct:Mfe,predicate:Hfe,represent:Ufe,defaultStyle:"lowercase"})});var NQ=w((J7e,b1)=>{"use strict";var jfe=pc();b1.exports=new jfe({include:[rI()],implicit:[d1(),m1(),I1(),B1()]})});var LQ=w((W7e,Q1)=>{"use strict";var Gfe=pc();Q1.exports=new Gfe({include:[NQ()]})});var k1=w((z7e,S1)=>{"use strict";var Yfe=ci(),v1=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),x1=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function qfe(r){return r===null?!1:v1.exec(r)!==null||x1.exec(r)!==null}function Jfe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=v1.exec(r),e===null&&(e=x1.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Wfe(r){return r.toISOString()}S1.exports=new Yfe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:qfe,construct:Jfe,instanceOf:Date,represent:Wfe})});var D1=w((_7e,P1)=>{"use strict";var zfe=ci();function _fe(r){return r==="<<"||r===null}P1.exports=new zfe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:_fe})});var N1=w((V7e,R1)=>{"use strict";var dc;try{F1=require,dc=F1("buffer").Buffer}catch(r){}var F1,Vfe=ci(),TQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Xfe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=TQ;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8==0}function Zfe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=TQ,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),dc?dc.from?dc.from(a):new dc(a):a}function $fe(r){var e="",t=0,i,n,s=r.length,o=TQ;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function ehe(r){return dc&&dc.isBuffer(r)}R1.exports=new Vfe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Xfe,construct:Zfe,predicate:ehe,represent:$fe})});var T1=w((X7e,L1)=>{"use strict";var the=ci(),rhe=Object.prototype.hasOwnProperty,ihe=Object.prototype.toString;function nhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var ohe=ci(),ahe=Object.prototype.toString;function Ahe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var che=ci(),uhe=Object.prototype.hasOwnProperty;function ghe(r){if(r===null)return!0;var e,t=r;for(e in t)if(uhe.call(t,e)&&t[e]!==null)return!1;return!0}function fhe(r){return r!==null?r:{}}K1.exports=new che("tag:yaml.org,2002:set",{kind:"mapping",resolve:ghe,construct:fhe})});var ig=w((eXe,H1)=>{"use strict";var hhe=pc();H1.exports=new hhe({include:[LQ()],implicit:[k1(),D1()],explicit:[N1(),T1(),M1(),U1()]})});var G1=w((tXe,j1)=>{"use strict";var phe=ci();function dhe(){return!0}function Che(){}function mhe(){return""}function Ehe(r){return typeof r=="undefined"}j1.exports=new phe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:dhe,construct:Che,predicate:Ehe,represent:mhe})});var q1=w((rXe,Y1)=>{"use strict";var Ihe=ci();function yhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function whe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Bhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function bhe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}Y1.exports=new Ihe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:yhe,construct:whe,predicate:bhe,represent:Bhe})});var z1=w((iXe,J1)=>{"use strict";var iI;try{W1=require,iI=W1("esprima")}catch(r){typeof window!="undefined"&&(iI=window.esprima)}var W1,Qhe=ci();function She(r){if(r===null)return!1;try{var e="("+r+")",t=iI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function vhe(r){var e="("+r+")",t=iI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function xhe(r){return r.toString()}function khe(r){return Object.prototype.toString.call(r)==="[object Function]"}J1.exports=new Qhe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:She,construct:vhe,predicate:khe,represent:xhe})});var tp=w((nXe,_1)=>{"use strict";var V1=pc();_1.exports=V1.DEFAULT=new V1({include:[ig()],explicit:[G1(),q1(),z1()]})});var pK=w((sXe,rp)=>{"use strict";var Oa=hc(),X1=tg(),Phe=i1(),Z1=ig(),Dhe=tp(),JA=Object.prototype.hasOwnProperty,nI=1,$1=2,eK=3,sI=4,OQ=1,Rhe=2,tK=3,Fhe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Nhe=/[\x85\u2028\u2029]/,Lhe=/[,\[\]\{\}]/,rK=/^(?:!|!!|![a-z\-]+!)$/i,iK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function nK(r){return Object.prototype.toString.call(r)}function Lo(r){return r===10||r===13}function Cc(r){return r===9||r===32}function yn(r){return r===9||r===32||r===10||r===13}function ng(r){return r===44||r===91||r===93||r===123||r===125}function The(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Ohe(r){return r===120?2:r===117?4:r===85?8:0}function Mhe(r){return 48<=r&&r<=57?r-48:-1}function sK(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function Khe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var oK=new Array(256),aK=new Array(256);for(var sg=0;sg<256;sg++)oK[sg]=sK(sg)?1:0,aK[sg]=sK(sg);function Uhe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||Dhe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function AK(r,e){return new X1(e,new Phe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function dt(r,e){throw AK(r,e)}function oI(r,e){r.onWarning&&r.onWarning.call(null,AK(r,e))}var lK={YAML:function(e,t,i){var n,s,o;e.version!==null&&dt(e,"duplication of %YAML directive"),i.length!==1&&dt(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&dt(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&dt(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&oI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&dt(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],rK.test(n)||dt(e,"ill-formed tag handle (first argument) of the TAG directive"),JA.call(e.tagMap,n)&&dt(e,'there is a previously declared suffix for "'+n+'" tag handle'),iK.test(s)||dt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function WA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Oa.repeat(` -`,e-1))}function Hhe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),yn(h)||ng(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),yn(n)||t&&ng(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),yn(n)||t&&ng(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),yn(i))break}else{if(r.position===r.lineStart&&aI(r)||t&&ng(h))break;if(Lo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,ei(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(WA(r,s,o,!1),KQ(r,r.line-l),s=o=r.position,a=!1),Cc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return WA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function jhe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(WA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else Lo(t)?(WA(r,i,n,!0),KQ(r,ei(r,!1,e)),i=n=r.position):r.position===r.lineStart&&aI(r)?dt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);dt(r,"unexpected end of the stream within a single quoted scalar")}function Ghe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return WA(r,t,r.position,!0),r.position++,!0;if(a===92){if(WA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),Lo(a))ei(r,!1,e);else if(a<256&&oK[a])r.result+=aK[a],r.position++;else if((o=Ohe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=The(a))>=0?s=(s<<4)+o:dt(r,"expected hexadecimal character");r.result+=Khe(s),r.position++}else dt(r,"unknown escape sequence");t=i=r.position}else Lo(a)?(WA(r,t,i,!0),KQ(r,ei(r,!1,e)),t=i=r.position):r.position===r.lineStart&&aI(r)?dt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}dt(r,"unexpected end of the stream within a double quoted scalar")}function Yhe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(ei(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||dt(r,"missed comma between flow collection entries"),p=h=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),yn(a)&&(c=u=!0,r.position++,ei(r,!0,e))),i=r.line,ag(r,e,nI,!1,!0),p=r.tag,h=r.result,ei(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),ei(r,!0,e),ag(r,e,nI,!1,!0),m=r.result),g?og(r,s,f,p,h,m):c?s.push(og(r,null,f,p,h,m)):s.push(h),ei(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}dt(r,"unexpected end of the stream within a flow collection")}function qhe(r,e){var t,i,n=OQ,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)OQ===n?n=g===43?tK:Rhe:dt(r,"repeat of a chomping mode identifier");else if((u=Mhe(g))>=0)u===0?dt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?dt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Cc(g)){do g=r.input.charCodeAt(++r.position);while(Cc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!Lo(g)&&g!==0)}for(;g!==0;){for(MQ(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),Lo(g)){l++;continue}if(r.lineIndente)&&l!==0)dt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(ag(r,e,sI,!0,n)&&(p?f=r.result:h=r.result),p||(og(r,c,u,g,f,h,s,o),g=f=h=null),ei(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)dt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):dt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):dt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Vhe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(ei(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!yn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&dt(r,"directive name must not be less than one character in length");o!==0;){for(;Cc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!Lo(o));break}if(Lo(o))break;for(t=r.position;o!==0&&!yn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&MQ(r),JA.call(lK,i)?lK[i](r,i,n):oI(r,'unknown document directive "'+i+'"')}if(ei(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,ei(r,!0,-1)):s&&dt(r,"directives end mark is expected"),ag(r,r.lineIndent-1,sI,!1,!0),ei(r,!0,-1),r.checkLineBreaks&&Nhe.test(r.input.slice(e,r.position))&&oI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&aI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,ei(r,!0,-1));return}if(r.position{"use strict";var ip=hc(),np=tg(),$he=tp(),epe=ig(),dK=Object.prototype.toString,CK=Object.prototype.hasOwnProperty,tpe=9,sp=10,rpe=13,ipe=32,npe=33,spe=34,mK=35,ope=37,ape=38,Ape=39,lpe=42,EK=44,cpe=45,IK=58,upe=61,gpe=62,fpe=63,hpe=64,yK=91,wK=93,ppe=96,BK=123,dpe=124,bK=125,Ki={};Ki[0]="\\0";Ki[7]="\\a";Ki[8]="\\b";Ki[9]="\\t";Ki[10]="\\n";Ki[11]="\\v";Ki[12]="\\f";Ki[13]="\\r";Ki[27]="\\e";Ki[34]='\\"';Ki[92]="\\\\";Ki[133]="\\N";Ki[160]="\\_";Ki[8232]="\\L";Ki[8233]="\\P";var Cpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function mpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&vK(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ag(o))return AI;a=s>0?r.charCodeAt(s-1):null,f=f&&vK(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?kK:PK:t>9&&xK(r)?AI:c?RK:DK}function Spe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Cpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Ipe(r,l)}switch(Bpe(e,o,r.indent,s,a)){case kK:return e;case PK:return"'"+e.replace(/'/g,"''")+"'";case DK:return"|"+FK(e,r.indent)+NK(SK(e,n));case RK:return">"+FK(e,r.indent)+NK(SK(bpe(e,s),n));case AI:return'"'+Qpe(e,s)+'"';default:throw new np("impossible error: invalid scalar style")}}()}function FK(r,e){var t=xK(r)?String(e):"",i=r[r.length-1]===` -`,n=i&&(r[r.length-2]===` -`||r===` -`),s=n?"+":i?"":"-";return t+s+` -`}function NK(r){return r[r.length-1]===` -`?r.slice(0,-1):r}function bpe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,LK(r.slice(0,c),e)}(),n=r[0]===` -`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+LK(l,e),n=s}return i}function LK(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+r.slice(n,s),n=s+1),o=a;return l+=` -`,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Qpe(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=QK((t-55296)*1024+i-56320+65536),s++;continue}n=Ki[t],e+=!n&&Ag(t)?r[s]:n||QK(t)}return e}function vpe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),!!mc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function Ppe(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new np("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&sp===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=HQ(r,e)),!!mc(r,e+1,u,!0,g)&&(r.dump&&sp===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function TK(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function mc(r,e,t,i,n,s){r.tag=null,r.dump=t,TK(r,t,!1)||TK(r,t,!0);var o=dK.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(Ppe(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(kpe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(xpe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(vpe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&Spe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new np("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function Dpe(r,e){var t=[],i=[],n,s;for(GQ(r,t,i),n=0,s=i.length;n{"use strict";var lI=pK(),KK=MK();function cI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Mr.exports.Type=ci();Mr.exports.Schema=pc();Mr.exports.FAILSAFE_SCHEMA=rI();Mr.exports.JSON_SCHEMA=NQ();Mr.exports.CORE_SCHEMA=LQ();Mr.exports.DEFAULT_SAFE_SCHEMA=ig();Mr.exports.DEFAULT_FULL_SCHEMA=tp();Mr.exports.load=lI.load;Mr.exports.loadAll=lI.loadAll;Mr.exports.safeLoad=lI.safeLoad;Mr.exports.safeLoadAll=lI.safeLoadAll;Mr.exports.dump=KK.dump;Mr.exports.safeDump=KK.safeDump;Mr.exports.YAMLException=tg();Mr.exports.MINIMAL_SCHEMA=rI();Mr.exports.SAFE_SCHEMA=ig();Mr.exports.DEFAULT_SCHEMA=tp();Mr.exports.scan=cI("scan");Mr.exports.parse=cI("parse");Mr.exports.compose=cI("compose");Mr.exports.addConstructor=cI("addConstructor")});var jK=w((AXe,HK)=>{"use strict";var Fpe=UK();HK.exports=Fpe});var YK=w((lXe,GK)=>{"use strict";function Npe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ec(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ec)}Npe(Ec,Error);Ec.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[He]:Ce})))},q=function(R){return R},Y=function(R){return R},$=Zs("correct indentation"),_=" ",ne=gr(" ",!1),ee=function(R){return R.length===KA*Ju},A=function(R){return R.length===(KA+1)*Ju},oe=function(){return KA++,!0},ce=function(){return KA--,!0},Z=function(){return Uu()},O=Zs("pseudostring"),L=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,de=qn(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Be=/^[^\r\n\t ,\][{}:#"']/,je=qn(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),re=function(){return Uu().replace(/^ *| *$/g,"")},se="--",be=gr("--",!1),he=/^[a-zA-Z\/0-9]/,Fe=qn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ke=/^[^\r\n\t :,]/,ke=qn(["\r",` -`," "," ",":",","],!0,!1),ve="null",pe=gr("null",!1),V=function(){return null},Qe="true",le=gr("true",!1),fe=function(){return!0},gt="false",Ht=gr("false",!1),Mt=function(){return!1},Ei=Zs("string"),jt='"',Qr=gr('"',!1),Oi=function(){return""},Xs=function(R){return R},Un=function(R){return R.join("")},Hn=/^[^"\\\0-\x1F\x7F]/,Sr=qn(['"',"\\",["\0",""],"\x7F"],!0,!1),jn='\\"',fs=gr('\\"',!1),ba=function(){return'"'},DA="\\\\",Nu=gr("\\\\",!1),hs=function(){return"\\"},RA="\\/",Qa=gr("\\/",!1),Lu=function(){return"/"},FA="\\b",NA=gr("\\b",!1),vr=function(){return"\b"},zl="\\f",Tu=gr("\\f",!1),xo=function(){return"\f"},Ou="\\n",Sh=gr("\\n",!1),vh=function(){return` -`},Dr="\\r",Ae=gr("\\r",!1),ko=function(){return"\r"},Gn="\\t",Mu=gr("\\t",!1),St=function(){return" "},_l="\\u",Yn=gr("\\u",!1),ps=function(R,G,Ce,He){return String.fromCharCode(parseInt(`0x${R}${G}${Ce}${He}`))},ds=/^[0-9a-fA-F]/,pt=qn([["0","9"],["a","f"],["A","F"]],!1,!1),Po=Zs("blank space"),lt=/^[ \t]/,mn=qn([" "," "],!1,!1),S=Zs("white space"),Tt=/^[ \t\n\r]/,Ku=qn([" "," ",` -`,"\r"],!1,!1),Vl=`\r -`,xh=gr(`\r -`,!1),kh=` -`,Ph=gr(` -`,!1),Dh="\r",Rh=gr("\r",!1),j=0,wt=0,LA=[{line:1,column:1}],$i=0,Xl=[],$e=0,Sa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Uu(){return r.substring(wt,j)}function yE(){return En(wt,j)}function Fh(R,G){throw G=G!==void 0?G:En(wt,j),$l([Zs(R)],r.substring(wt,j),G)}function wE(R,G){throw G=G!==void 0?G:En(wt,j),Hu(R,G)}function gr(R,G){return{type:"literal",text:R,ignoreCase:G}}function qn(R,G,Ce){return{type:"class",parts:R,inverted:G,ignoreCase:Ce}}function Zl(){return{type:"any"}}function Nh(){return{type:"end"}}function Zs(R){return{type:"other",description:R}}function va(R){var G=LA[R],Ce;if(G)return G;for(Ce=R-1;!LA[Ce];)Ce--;for(G=LA[Ce],G={line:G.line,column:G.column};Ce$i&&($i=j,Xl=[]),Xl.push(R))}function Hu(R,G){return new Ec(R,null,null,G)}function $l(R,G,Ce){return new Ec(Ec.buildMessage(R,G),R,G,Ce)}function $s(){var R;return R=ju(),R}function ec(){var R,G,Ce;for(R=j,G=[],Ce=TA();Ce!==t;)G.push(Ce),Ce=TA();return G!==t&&(wt=R,G=s(G)),R=G,R}function TA(){var R,G,Ce,He,Te;return R=j,G=ka(),G!==t?(r.charCodeAt(j)===45?(Ce=o,j++):(Ce=t,$e===0&&Oe(a)),Ce!==t?(He=Tr(),He!==t?(Te=xa(),Te!==t?(wt=R,G=l(Te),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R}function ju(){var R,G,Ce;for(R=j,G=[],Ce=Gu();Ce!==t;)G.push(Ce),Ce=Gu();return G!==t&&(wt=R,G=c(G)),R=G,R}function Gu(){var R,G,Ce,He,Te,Xe,Et,Rt,Jn;if(R=j,G=Tr(),G===t&&(G=null),G!==t){if(Ce=j,r.charCodeAt(j)===35?(He=u,j++):(He=t,$e===0&&Oe(g)),He!==t){if(Te=[],Xe=j,Et=j,$e++,Rt=ro(),$e--,Rt===t?Et=void 0:(j=Et,Et=t),Et!==t?(r.length>j?(Rt=r.charAt(j),j++):(Rt=t,$e===0&&Oe(f)),Rt!==t?(Et=[Et,Rt],Xe=Et):(j=Xe,Xe=t)):(j=Xe,Xe=t),Xe!==t)for(;Xe!==t;)Te.push(Xe),Xe=j,Et=j,$e++,Rt=ro(),$e--,Rt===t?Et=void 0:(j=Et,Et=t),Et!==t?(r.length>j?(Rt=r.charAt(j),j++):(Rt=t,$e===0&&Oe(f)),Rt!==t?(Et=[Et,Rt],Xe=Et):(j=Xe,Xe=t)):(j=Xe,Xe=t);else Te=t;Te!==t?(He=[He,Te],Ce=He):(j=Ce,Ce=t)}else j=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(He=[],Te=to(),Te!==t)for(;Te!==t;)He.push(Te),Te=to();else He=t;He!==t?(wt=R,G=h(),R=G):(j=R,R=t)}else j=R,R=t}else j=R,R=t;if(R===t&&(R=j,G=ka(),G!==t?(Ce=tc(),Ce!==t?(He=Tr(),He===t&&(He=null),He!==t?(r.charCodeAt(j)===58?(Te=p,j++):(Te=t,$e===0&&Oe(m)),Te!==t?(Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(Et=xa(),Et!==t?(wt=R,G=y(Ce,Et),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,G=ka(),G!==t?(Ce=eo(),Ce!==t?(He=Tr(),He===t&&(He=null),He!==t?(r.charCodeAt(j)===58?(Te=p,j++):(Te=t,$e===0&&Oe(m)),Te!==t?(Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(Et=xa(),Et!==t?(wt=R,G=y(Ce,Et),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t))){if(R=j,G=ka(),G!==t)if(Ce=eo(),Ce!==t)if(He=Tr(),He!==t)if(Te=BE(),Te!==t){if(Xe=[],Et=to(),Et!==t)for(;Et!==t;)Xe.push(Et),Et=to();else Xe=t;Xe!==t?(wt=R,G=y(Ce,Te),R=G):(j=R,R=t)}else j=R,R=t;else j=R,R=t;else j=R,R=t;else j=R,R=t;if(R===t)if(R=j,G=ka(),G!==t)if(Ce=eo(),Ce!==t){if(He=[],Te=j,Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(r.charCodeAt(j)===44?(Et=b,j++):(Et=t,$e===0&&Oe(v)),Et!==t?(Rt=Tr(),Rt===t&&(Rt=null),Rt!==t?(Jn=eo(),Jn!==t?(wt=Te,Xe=x(Ce,Jn),Te=Xe):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t),Te!==t)for(;Te!==t;)He.push(Te),Te=j,Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(r.charCodeAt(j)===44?(Et=b,j++):(Et=t,$e===0&&Oe(v)),Et!==t?(Rt=Tr(),Rt===t&&(Rt=null),Rt!==t?(Jn=eo(),Jn!==t?(wt=Te,Xe=x(Ce,Jn),Te=Xe):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t);else He=t;He!==t?(Te=Tr(),Te===t&&(Te=null),Te!==t?(r.charCodeAt(j)===58?(Xe=p,j++):(Xe=t,$e===0&&Oe(m)),Xe!==t?(Et=Tr(),Et===t&&(Et=null),Et!==t?(Rt=xa(),Rt!==t?(wt=R,G=T(Ce,He,Rt),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)}else j=R,R=t;else j=R,R=t}return R}function xa(){var R,G,Ce,He,Te,Xe,Et;if(R=j,G=j,$e++,Ce=j,He=ro(),He!==t?(Te=nt(),Te!==t?(r.charCodeAt(j)===45?(Xe=o,j++):(Xe=t,$e===0&&Oe(a)),Xe!==t?(Et=Tr(),Et!==t?(He=[He,Te,Xe,Et],Ce=He):(j=Ce,Ce=t)):(j=Ce,Ce=t)):(j=Ce,Ce=t)):(j=Ce,Ce=t),$e--,Ce!==t?(j=G,G=void 0):G=t,G!==t?(Ce=to(),Ce!==t?(He=Do(),He!==t?(Te=ec(),Te!==t?(Xe=OA(),Xe!==t?(wt=R,G=q(Te),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,G=ro(),G!==t?(Ce=Do(),Ce!==t?(He=ju(),He!==t?(Te=OA(),Te!==t?(wt=R,G=q(He),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t))if(R=j,G=rc(),G!==t){if(Ce=[],He=to(),He!==t)for(;He!==t;)Ce.push(He),He=to();else Ce=t;Ce!==t?(wt=R,G=Y(G),R=G):(j=R,R=t)}else j=R,R=t;return R}function ka(){var R,G,Ce;for($e++,R=j,G=[],r.charCodeAt(j)===32?(Ce=_,j++):(Ce=t,$e===0&&Oe(ne));Ce!==t;)G.push(Ce),r.charCodeAt(j)===32?(Ce=_,j++):(Ce=t,$e===0&&Oe(ne));return G!==t?(wt=j,Ce=ee(G),Ce?Ce=void 0:Ce=t,Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)):(j=R,R=t),$e--,R===t&&(G=t,$e===0&&Oe($)),R}function nt(){var R,G,Ce;for(R=j,G=[],r.charCodeAt(j)===32?(Ce=_,j++):(Ce=t,$e===0&&Oe(ne));Ce!==t;)G.push(Ce),r.charCodeAt(j)===32?(Ce=_,j++):(Ce=t,$e===0&&Oe(ne));return G!==t?(wt=j,Ce=A(G),Ce?Ce=void 0:Ce=t,Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)):(j=R,R=t),R}function Do(){var R;return wt=j,R=oe(),R?R=void 0:R=t,R}function OA(){var R;return wt=j,R=ce(),R?R=void 0:R=t,R}function tc(){var R;return R=ic(),R===t&&(R=Lh()),R}function eo(){var R,G,Ce;if(R=ic(),R===t){if(R=j,G=[],Ce=Yu(),Ce!==t)for(;Ce!==t;)G.push(Ce),Ce=Yu();else G=t;G!==t&&(wt=R,G=Z()),R=G}return R}function rc(){var R;return R=Th(),R===t&&(R=bE(),R===t&&(R=ic(),R===t&&(R=Lh()))),R}function BE(){var R;return R=Th(),R===t&&(R=ic(),R===t&&(R=Yu())),R}function Lh(){var R,G,Ce,He,Te,Xe;if($e++,R=j,L.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(de)),G!==t){for(Ce=[],He=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Be.test(r.charAt(j))?(Xe=r.charAt(j),j++):(Xe=t,$e===0&&Oe(je)),Xe!==t?(Te=[Te,Xe],He=Te):(j=He,He=t)):(j=He,He=t);He!==t;)Ce.push(He),He=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Be.test(r.charAt(j))?(Xe=r.charAt(j),j++):(Xe=t,$e===0&&Oe(je)),Xe!==t?(Te=[Te,Xe],He=Te):(j=He,He=t)):(j=He,He=t);Ce!==t?(wt=R,G=re(),R=G):(j=R,R=t)}else j=R,R=t;return $e--,R===t&&(G=t,$e===0&&Oe(O)),R}function Yu(){var R,G,Ce,He,Te;if(R=j,r.substr(j,2)===se?(G=se,j+=2):(G=t,$e===0&&Oe(be)),G===t&&(G=null),G!==t)if(he.test(r.charAt(j))?(Ce=r.charAt(j),j++):(Ce=t,$e===0&&Oe(Fe)),Ce!==t){for(He=[],Ke.test(r.charAt(j))?(Te=r.charAt(j),j++):(Te=t,$e===0&&Oe(ke));Te!==t;)He.push(Te),Ke.test(r.charAt(j))?(Te=r.charAt(j),j++):(Te=t,$e===0&&Oe(ke));He!==t?(wt=R,G=re(),R=G):(j=R,R=t)}else j=R,R=t;else j=R,R=t;return R}function Th(){var R,G;return R=j,r.substr(j,4)===ve?(G=ve,j+=4):(G=t,$e===0&&Oe(pe)),G!==t&&(wt=R,G=V()),R=G,R}function bE(){var R,G;return R=j,r.substr(j,4)===Qe?(G=Qe,j+=4):(G=t,$e===0&&Oe(le)),G!==t&&(wt=R,G=fe()),R=G,R===t&&(R=j,r.substr(j,5)===gt?(G=gt,j+=5):(G=t,$e===0&&Oe(Ht)),G!==t&&(wt=R,G=Mt()),R=G),R}function ic(){var R,G,Ce,He;return $e++,R=j,r.charCodeAt(j)===34?(G=jt,j++):(G=t,$e===0&&Oe(Qr)),G!==t?(r.charCodeAt(j)===34?(Ce=jt,j++):(Ce=t,$e===0&&Oe(Qr)),Ce!==t?(wt=R,G=Oi(),R=G):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,r.charCodeAt(j)===34?(G=jt,j++):(G=t,$e===0&&Oe(Qr)),G!==t?(Ce=QE(),Ce!==t?(r.charCodeAt(j)===34?(He=jt,j++):(He=t,$e===0&&Oe(Qr)),He!==t?(wt=R,G=Xs(Ce),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)),$e--,R===t&&(G=t,$e===0&&Oe(Ei)),R}function QE(){var R,G,Ce;if(R=j,G=[],Ce=qu(),Ce!==t)for(;Ce!==t;)G.push(Ce),Ce=qu();else G=t;return G!==t&&(wt=R,G=Un(G)),R=G,R}function qu(){var R,G,Ce,He,Te,Xe;return Hn.test(r.charAt(j))?(R=r.charAt(j),j++):(R=t,$e===0&&Oe(Sr)),R===t&&(R=j,r.substr(j,2)===jn?(G=jn,j+=2):(G=t,$e===0&&Oe(fs)),G!==t&&(wt=R,G=ba()),R=G,R===t&&(R=j,r.substr(j,2)===DA?(G=DA,j+=2):(G=t,$e===0&&Oe(Nu)),G!==t&&(wt=R,G=hs()),R=G,R===t&&(R=j,r.substr(j,2)===RA?(G=RA,j+=2):(G=t,$e===0&&Oe(Qa)),G!==t&&(wt=R,G=Lu()),R=G,R===t&&(R=j,r.substr(j,2)===FA?(G=FA,j+=2):(G=t,$e===0&&Oe(NA)),G!==t&&(wt=R,G=vr()),R=G,R===t&&(R=j,r.substr(j,2)===zl?(G=zl,j+=2):(G=t,$e===0&&Oe(Tu)),G!==t&&(wt=R,G=xo()),R=G,R===t&&(R=j,r.substr(j,2)===Ou?(G=Ou,j+=2):(G=t,$e===0&&Oe(Sh)),G!==t&&(wt=R,G=vh()),R=G,R===t&&(R=j,r.substr(j,2)===Dr?(G=Dr,j+=2):(G=t,$e===0&&Oe(Ae)),G!==t&&(wt=R,G=ko()),R=G,R===t&&(R=j,r.substr(j,2)===Gn?(G=Gn,j+=2):(G=t,$e===0&&Oe(Mu)),G!==t&&(wt=R,G=St()),R=G,R===t&&(R=j,r.substr(j,2)===_l?(G=_l,j+=2):(G=t,$e===0&&Oe(Yn)),G!==t?(Ce=MA(),Ce!==t?(He=MA(),He!==t?(Te=MA(),Te!==t?(Xe=MA(),Xe!==t?(wt=R,G=ps(Ce,He,Te,Xe),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)))))))))),R}function MA(){var R;return ds.test(r.charAt(j))?(R=r.charAt(j),j++):(R=t,$e===0&&Oe(pt)),R}function Tr(){var R,G;if($e++,R=[],lt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(mn)),G!==t)for(;G!==t;)R.push(G),lt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(mn));else R=t;return $e--,R===t&&(G=t,$e===0&&Oe(Po)),R}function SE(){var R,G;if($e++,R=[],Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(Ku)),G!==t)for(;G!==t;)R.push(G),Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(Ku));else R=t;return $e--,R===t&&(G=t,$e===0&&Oe(S)),R}function to(){var R,G,Ce,He,Te,Xe;if(R=j,G=ro(),G!==t){for(Ce=[],He=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Xe=ro(),Xe!==t?(Te=[Te,Xe],He=Te):(j=He,He=t)):(j=He,He=t);He!==t;)Ce.push(He),He=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Xe=ro(),Xe!==t?(Te=[Te,Xe],He=Te):(j=He,He=t)):(j=He,He=t);Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)}else j=R,R=t;return R}function ro(){var R;return r.substr(j,2)===Vl?(R=Vl,j+=2):(R=t,$e===0&&Oe(xh)),R===t&&(r.charCodeAt(j)===10?(R=kh,j++):(R=t,$e===0&&Oe(Ph)),R===t&&(r.charCodeAt(j)===13?(R=Dh,j++):(R=t,$e===0&&Oe(Rh)))),R}let Ju=2,KA=0;if(Sa=n(),Sa!==t&&j===r.length)return Sa;throw Sa!==t&&j{"use strict";var Upe=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=Upe(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};JQ.exports=_K;JQ.exports.default=_K});var ZK=w((pXe,XK)=>{XK.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ic=w(Xn=>{"use strict";var $K=ZK(),To=process.env;Object.defineProperty(Xn,"_vendors",{value:$K.map(function(r){return r.constant})});Xn.name=null;Xn.isPR=null;$K.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return eU(i)});if(Xn[r.constant]=t,t)switch(Xn.name=r.name,typeof r.pr){case"string":Xn.isPR=!!To[r.pr];break;case"object":"env"in r.pr?Xn.isPR=r.pr.env in To&&To[r.pr.env]!==r.pr.ne:"any"in r.pr?Xn.isPR=r.pr.any.some(function(i){return!!To[i]}):Xn.isPR=eU(r.pr);break;default:Xn.isPR=null}});Xn.isCI=!!(To.CI||To.CONTINUOUS_INTEGRATION||To.BUILD_NUMBER||To.RUN_ID||Xn.name);function eU(r){return typeof r=="string"?!!To[r]:Object.keys(r).every(function(e){return To[e]===r[e]})}});var cg={};ft(cg,{KeyRelationship:()=>Bc,applyCascade:()=>fp,base64RegExp:()=>sU,colorStringAlphaRegExp:()=>nU,colorStringRegExp:()=>iU,computeKey:()=>zA,getPrintable:()=>ti,hasExactLength:()=>cU,hasForbiddenKeys:()=>mde,hasKeyRelationship:()=>eS,hasMaxLength:()=>tde,hasMinLength:()=>ede,hasMutuallyExclusiveKeys:()=>Ede,hasRequiredKeys:()=>Cde,hasUniqueItems:()=>rde,isArray:()=>Jpe,isAtLeast:()=>sde,isAtMost:()=>ode,isBase64:()=>pde,isBoolean:()=>Gpe,isDate:()=>qpe,isDict:()=>zpe,isEnum:()=>nn,isHexColor:()=>hde,isISO8601:()=>fde,isInExclusiveRange:()=>Ade,isInInclusiveRange:()=>ade,isInstanceOf:()=>Vpe,isInteger:()=>lde,isJSON:()=>dde,isLiteral:()=>Hpe,isLowerCase:()=>cde,isNegative:()=>ide,isNullable:()=>$pe,isNumber:()=>Ype,isObject:()=>_pe,isOneOf:()=>Xpe,isOptional:()=>Zpe,isPositive:()=>nde,isString:()=>gp,isTuple:()=>Wpe,isUUID4:()=>gde,isUnknown:()=>lU,isUpperCase:()=>ude,iso8601RegExp:()=>$Q,makeCoercionFn:()=>wc,makeSetter:()=>AU,makeTrait:()=>aU,makeValidator:()=>vt,matchesRegExp:()=>hp,plural:()=>hI,pushError:()=>mt,simpleKeyRegExp:()=>rU,uuid4RegExp:()=>oU});function vt({test:r}){return aU(r)()}function ti(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function zA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:rU.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function wc(r,e){return t=>{let i=r[e];return r[e]=t,wc(r,e).bind(null,i)}}function AU(r,e){return t=>{r[e]=t}}function hI(r,e,t){return r===1?e:t}function mt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Hpe(r){return vt({test:(e,t)=>e!==r?mt(t,`Expected a literal (got ${ti(r)})`):!0})}function nn(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return vt({test:(i,n)=>t.has(i)?!0:mt(n,`Expected a valid enumeration value (got ${ti(i)})`)})}var rU,iU,nU,sU,oU,$Q,aU,lU,gp,jpe,Gpe,Ype,qpe,Jpe,Wpe,zpe,_pe,Vpe,Xpe,fp,Zpe,$pe,ede,tde,cU,rde,ide,nde,sde,ode,ade,Ade,lde,hp,cde,ude,gde,fde,hde,pde,dde,Cde,mde,Ede,Bc,Ide,eS,ys=uge(()=>{rU=/^[a-zA-Z_][a-zA-Z0-9_]*$/,iU=/^#[0-9a-f]{6}$/i,nU=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,sU=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,oU=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,$Q=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,aU=r=>()=>r;lU=()=>vt({test:(r,e)=>!0});gp=()=>vt({test:(r,e)=>typeof r!="string"?mt(e,`Expected a string (got ${ti(r)})`):!0});jpe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Gpe=()=>vt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i=jpe.get(r);if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a boolean (got ${ti(r)})`)}return!0}}),Ype=()=>vt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return mt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a number (got ${ti(r)})`)}return!0}}),qpe=()=>vt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof r=="string"&&$Q.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch(o){}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return mt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a date (got ${ti(r)})`)}return!0}}),Jpe=(r,{delimiter:e}={})=>vt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return mt(i,`Expected an array (got ${ti(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=cU(r.length);return vt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return mt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return mt(n,`Expected a tuple (got ${ti(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;avt({test:(t,i)=>{if(typeof t!="object"||t===null)return mt(i,`Expected an object (got ${ti(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return vt({test:(i,n)=>{if(typeof i!="object"||i===null)return mt(n,`Expected an object (got ${ti(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=mt(Object.assign(Object.assign({},n),{p:zA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:zA(n,l),coercion:wc(i,l)}))&&a:e===null?a=mt(Object.assign(Object.assign({},n),{p:zA(n,l)}),`Extraneous property (got ${ti(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:AU(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Vpe=r=>vt({test:(e,t)=>e instanceof r?!0:mt(t,`Expected an instance of ${r.name} (got ${ti(e)})`)}),Xpe=(r,{exclusive:e=!1}={})=>vt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=r.length;c1?mt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),fp=(r,e)=>vt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)!="undefined"?wc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Zpe=r=>vt({test:(e,t)=>typeof e=="undefined"?!0:r(e,t)}),$pe=r=>vt({test:(e,t)=>e===null?!0:r(e,t)}),ede=r=>vt({test:(e,t)=>e.length>=r?!0:mt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),tde=r=>vt({test:(e,t)=>e.length<=r?!0:mt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),cU=r=>vt({test:(e,t)=>e.length!==r?mt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),rde=({map:r}={})=>vt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;svt({test:(r,e)=>r<=0?!0:mt(e,`Expected to be negative (got ${r})`)}),nde=()=>vt({test:(r,e)=>r>=0?!0:mt(e,`Expected to be positive (got ${r})`)}),sde=r=>vt({test:(e,t)=>e>=r?!0:mt(t,`Expected to be at least ${r} (got ${e})`)}),ode=r=>vt({test:(e,t)=>e<=r?!0:mt(t,`Expected to be at most ${r} (got ${e})`)}),ade=(r,e)=>vt({test:(t,i)=>t>=r&&t<=e?!0:mt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Ade=(r,e)=>vt({test:(t,i)=>t>=r&&tvt({test:(e,t)=>e!==Math.round(e)?mt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:mt(t,`Expected to be a safe integer (got ${e})`)}),hp=r=>vt({test:(e,t)=>r.test(e)?!0:mt(t,`Expected to match the pattern ${r.toString()} (got ${ti(e)})`)}),cde=()=>vt({test:(r,e)=>r!==r.toLowerCase()?mt(e,`Expected to be all-lowercase (got ${r})`):!0}),ude=()=>vt({test:(r,e)=>r!==r.toUpperCase()?mt(e,`Expected to be all-uppercase (got ${r})`):!0}),gde=()=>vt({test:(r,e)=>oU.test(r)?!0:mt(e,`Expected to be a valid UUID v4 (got ${ti(r)})`)}),fde=()=>vt({test:(r,e)=>$Q.test(r)?!1:mt(e,`Expected to be a valid ISO 8601 date string (got ${ti(r)})`)}),hde=({alpha:r=!1})=>vt({test:(e,t)=>(r?iU.test(e):nU.test(e))?!0:mt(t,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)}),pde=()=>vt({test:(r,e)=>sU.test(r)?!0:mt(e,`Expected to be a valid base 64 string (got ${ti(r)})`)}),dde=(r=lU())=>vt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch(n){return mt(t,`Expected to be a valid JSON string (got ${ti(e)})`)}return r(i,t)}}),Cde=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?mt(i,`Missing required ${hI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},mde=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?mt(i,`Forbidden ${hI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Ede=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?mt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(Bc||(Bc={}));Ide={[Bc.Forbids]:{expect:!1,message:"forbids using"},[Bc.Requires]:{expect:!0,message:"requires using"}},eS=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Ide[e];return vt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?mt(l,`Property "${r}" ${o.message} ${hI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var kU=w((dZe,xU)=>{"use strict";xU.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var gg=w((CZe,aS)=>{"use strict";var Ode=kU(),PU=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Ode(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};aS.exports=PU;aS.exports.default=PU});var mp=w((EZe,DU)=>{var Mde="2.0.0",Kde=256,Ude=Number.MAX_SAFE_INTEGER||9007199254740991,Hde=16;DU.exports={SEMVER_SPEC_VERSION:Mde,MAX_LENGTH:Kde,MAX_SAFE_INTEGER:Ude,MAX_SAFE_COMPONENT_LENGTH:Hde}});var Ep=w((IZe,RU)=>{var jde=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};RU.exports=jde});var bc=w((VA,FU)=>{var{MAX_SAFE_COMPONENT_LENGTH:AS}=mp(),Gde=Ep();VA=FU.exports={};var Yde=VA.re=[],rt=VA.src=[],it=VA.t={},qde=0,xt=(r,e,t)=>{let i=qde++;Gde(i,e),it[r]=i,rt[i]=e,Yde[i]=new RegExp(e,t?"g":void 0)};xt("NUMERICIDENTIFIER","0|[1-9]\\d*");xt("NUMERICIDENTIFIERLOOSE","[0-9]+");xt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");xt("MAINVERSION",`(${rt[it.NUMERICIDENTIFIER]})\\.(${rt[it.NUMERICIDENTIFIER]})\\.(${rt[it.NUMERICIDENTIFIER]})`);xt("MAINVERSIONLOOSE",`(${rt[it.NUMERICIDENTIFIERLOOSE]})\\.(${rt[it.NUMERICIDENTIFIERLOOSE]})\\.(${rt[it.NUMERICIDENTIFIERLOOSE]})`);xt("PRERELEASEIDENTIFIER",`(?:${rt[it.NUMERICIDENTIFIER]}|${rt[it.NONNUMERICIDENTIFIER]})`);xt("PRERELEASEIDENTIFIERLOOSE",`(?:${rt[it.NUMERICIDENTIFIERLOOSE]}|${rt[it.NONNUMERICIDENTIFIER]})`);xt("PRERELEASE",`(?:-(${rt[it.PRERELEASEIDENTIFIER]}(?:\\.${rt[it.PRERELEASEIDENTIFIER]})*))`);xt("PRERELEASELOOSE",`(?:-?(${rt[it.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rt[it.PRERELEASEIDENTIFIERLOOSE]})*))`);xt("BUILDIDENTIFIER","[0-9A-Za-z-]+");xt("BUILD",`(?:\\+(${rt[it.BUILDIDENTIFIER]}(?:\\.${rt[it.BUILDIDENTIFIER]})*))`);xt("FULLPLAIN",`v?${rt[it.MAINVERSION]}${rt[it.PRERELEASE]}?${rt[it.BUILD]}?`);xt("FULL",`^${rt[it.FULLPLAIN]}$`);xt("LOOSEPLAIN",`[v=\\s]*${rt[it.MAINVERSIONLOOSE]}${rt[it.PRERELEASELOOSE]}?${rt[it.BUILD]}?`);xt("LOOSE",`^${rt[it.LOOSEPLAIN]}$`);xt("GTLT","((?:<|>)?=?)");xt("XRANGEIDENTIFIERLOOSE",`${rt[it.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);xt("XRANGEIDENTIFIER",`${rt[it.NUMERICIDENTIFIER]}|x|X|\\*`);xt("XRANGEPLAIN",`[v=\\s]*(${rt[it.XRANGEIDENTIFIER]})(?:\\.(${rt[it.XRANGEIDENTIFIER]})(?:\\.(${rt[it.XRANGEIDENTIFIER]})(?:${rt[it.PRERELEASE]})?${rt[it.BUILD]}?)?)?`);xt("XRANGEPLAINLOOSE",`[v=\\s]*(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:${rt[it.PRERELEASELOOSE]})?${rt[it.BUILD]}?)?)?`);xt("XRANGE",`^${rt[it.GTLT]}\\s*${rt[it.XRANGEPLAIN]}$`);xt("XRANGELOOSE",`^${rt[it.GTLT]}\\s*${rt[it.XRANGEPLAINLOOSE]}$`);xt("COERCE",`(^|[^\\d])(\\d{1,${AS}})(?:\\.(\\d{1,${AS}}))?(?:\\.(\\d{1,${AS}}))?(?:$|[^\\d])`);xt("COERCERTL",rt[it.COERCE],!0);xt("LONETILDE","(?:~>?)");xt("TILDETRIM",`(\\s*)${rt[it.LONETILDE]}\\s+`,!0);VA.tildeTrimReplace="$1~";xt("TILDE",`^${rt[it.LONETILDE]}${rt[it.XRANGEPLAIN]}$`);xt("TILDELOOSE",`^${rt[it.LONETILDE]}${rt[it.XRANGEPLAINLOOSE]}$`);xt("LONECARET","(?:\\^)");xt("CARETTRIM",`(\\s*)${rt[it.LONECARET]}\\s+`,!0);VA.caretTrimReplace="$1^";xt("CARET",`^${rt[it.LONECARET]}${rt[it.XRANGEPLAIN]}$`);xt("CARETLOOSE",`^${rt[it.LONECARET]}${rt[it.XRANGEPLAINLOOSE]}$`);xt("COMPARATORLOOSE",`^${rt[it.GTLT]}\\s*(${rt[it.LOOSEPLAIN]})$|^$`);xt("COMPARATOR",`^${rt[it.GTLT]}\\s*(${rt[it.FULLPLAIN]})$|^$`);xt("COMPARATORTRIM",`(\\s*)${rt[it.GTLT]}\\s*(${rt[it.LOOSEPLAIN]}|${rt[it.XRANGEPLAIN]})`,!0);VA.comparatorTrimReplace="$1$2$3";xt("HYPHENRANGE",`^\\s*(${rt[it.XRANGEPLAIN]})\\s+-\\s+(${rt[it.XRANGEPLAIN]})\\s*$`);xt("HYPHENRANGELOOSE",`^\\s*(${rt[it.XRANGEPLAINLOOSE]})\\s+-\\s+(${rt[it.XRANGEPLAINLOOSE]})\\s*$`);xt("STAR","(<|>)?=?\\s*\\*");xt("GTE0","^\\s*>=\\s*0.0.0\\s*$");xt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Ip=w((yZe,NU)=>{var Jde=["includePrerelease","loose","rtl"],Wde=r=>r?typeof r!="object"?{loose:!0}:Jde.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};NU.exports=Wde});var yI=w((wZe,LU)=>{var TU=/^[0-9]+$/,OU=(r,e)=>{let t=TU.test(r),i=TU.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rOU(e,r);LU.exports={compareIdentifiers:OU,rcompareIdentifiers:zde}});var Hi=w((BZe,MU)=>{var wI=Ep(),{MAX_LENGTH:KU,MAX_SAFE_INTEGER:BI}=mp(),{re:UU,t:HU}=bc(),_de=Ip(),{compareIdentifiers:yp}=yI(),Bs=class{constructor(e,t){if(t=_de(t),e instanceof Bs){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>KU)throw new TypeError(`version is longer than ${KU} characters`);wI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?UU[HU.LOOSE]:UU[HU.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>BI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>BI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>BI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};MU.exports=Bs});var Qc=w((bZe,jU)=>{var{MAX_LENGTH:Vde}=mp(),{re:GU,t:YU}=bc(),qU=Hi(),Xde=Ip(),Zde=(r,e)=>{if(e=Xde(e),r instanceof qU)return r;if(typeof r!="string"||r.length>Vde||!(e.loose?GU[YU.LOOSE]:GU[YU.FULL]).test(r))return null;try{return new qU(r,e)}catch(i){return null}};jU.exports=Zde});var WU=w((QZe,JU)=>{var $de=Qc(),eCe=(r,e)=>{let t=$de(r,e);return t?t.version:null};JU.exports=eCe});var _U=w((SZe,zU)=>{var tCe=Qc(),rCe=(r,e)=>{let t=tCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};zU.exports=rCe});var XU=w((vZe,VU)=>{var iCe=Hi(),nCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new iCe(r,t).inc(e,i).version}catch(n){return null}};VU.exports=nCe});var bs=w((xZe,ZU)=>{var $U=Hi(),sCe=(r,e,t)=>new $U(r,t).compare(new $U(e,t));ZU.exports=sCe});var bI=w((kZe,e2)=>{var oCe=bs(),aCe=(r,e,t)=>oCe(r,e,t)===0;e2.exports=aCe});var i2=w((PZe,t2)=>{var r2=Qc(),ACe=bI(),lCe=(r,e)=>{if(ACe(r,e))return null;{let t=r2(r),i=r2(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};t2.exports=lCe});var s2=w((DZe,n2)=>{var cCe=Hi(),uCe=(r,e)=>new cCe(r,e).major;n2.exports=uCe});var a2=w((RZe,o2)=>{var gCe=Hi(),fCe=(r,e)=>new gCe(r,e).minor;o2.exports=fCe});var l2=w((FZe,A2)=>{var hCe=Hi(),pCe=(r,e)=>new hCe(r,e).patch;A2.exports=pCe});var u2=w((NZe,c2)=>{var dCe=Qc(),CCe=(r,e)=>{let t=dCe(r,e);return t&&t.prerelease.length?t.prerelease:null};c2.exports=CCe});var f2=w((LZe,g2)=>{var mCe=bs(),ECe=(r,e,t)=>mCe(e,r,t);g2.exports=ECe});var p2=w((TZe,h2)=>{var ICe=bs(),yCe=(r,e)=>ICe(r,e,!0);h2.exports=yCe});var QI=w((OZe,d2)=>{var C2=Hi(),wCe=(r,e,t)=>{let i=new C2(r,t),n=new C2(e,t);return i.compare(n)||i.compareBuild(n)};d2.exports=wCe});var E2=w((MZe,m2)=>{var BCe=QI(),bCe=(r,e)=>r.sort((t,i)=>BCe(t,i,e));m2.exports=bCe});var y2=w((KZe,I2)=>{var QCe=QI(),SCe=(r,e)=>r.sort((t,i)=>QCe(i,t,e));I2.exports=SCe});var wp=w((UZe,w2)=>{var vCe=bs(),xCe=(r,e,t)=>vCe(r,e,t)>0;w2.exports=xCe});var SI=w((HZe,B2)=>{var kCe=bs(),PCe=(r,e,t)=>kCe(r,e,t)<0;B2.exports=PCe});var lS=w((jZe,b2)=>{var DCe=bs(),RCe=(r,e,t)=>DCe(r,e,t)!==0;b2.exports=RCe});var vI=w((GZe,Q2)=>{var FCe=bs(),NCe=(r,e,t)=>FCe(r,e,t)>=0;Q2.exports=NCe});var xI=w((YZe,S2)=>{var LCe=bs(),TCe=(r,e,t)=>LCe(r,e,t)<=0;S2.exports=TCe});var cS=w((qZe,v2)=>{var OCe=bI(),MCe=lS(),KCe=wp(),UCe=vI(),HCe=SI(),jCe=xI(),GCe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return OCe(r,t,i);case"!=":return MCe(r,t,i);case">":return KCe(r,t,i);case">=":return UCe(r,t,i);case"<":return HCe(r,t,i);case"<=":return jCe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};v2.exports=GCe});var k2=w((JZe,x2)=>{var YCe=Hi(),qCe=Qc(),{re:kI,t:PI}=bc(),JCe=(r,e)=>{if(r instanceof YCe)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(kI[PI.COERCE]);else{let i;for(;(i=kI[PI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),kI[PI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;kI[PI.COERCERTL].lastIndex=-1}return t===null?null:qCe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};x2.exports=JCe});var D2=w((WZe,P2)=>{"use strict";P2.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Bp=w((zZe,R2)=>{"use strict";R2.exports=Gt;Gt.Node=Sc;Gt.create=Gt;function Gt(r){var e=this;if(e instanceof Gt||(e=new Gt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Gt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Gt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Gt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Gt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Gt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Gt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var VCe=Bp(),vc=Symbol("max"),Ua=Symbol("length"),fg=Symbol("lengthCalculator"),bp=Symbol("allowStale"),xc=Symbol("maxAge"),Ha=Symbol("dispose"),N2=Symbol("noDisposeOnSet"),yi=Symbol("lruList"),oo=Symbol("cache"),L2=Symbol("updateAgeOnGet"),uS=()=>1,T2=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[vc]=e.max||Infinity,i=e.length||uS;if(this[fg]=typeof i!="function"?uS:i,this[bp]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[xc]=e.maxAge||0,this[Ha]=e.dispose,this[N2]=e.noDisposeOnSet||!1,this[L2]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[vc]=e||Infinity,Qp(this)}get max(){return this[vc]}set allowStale(e){this[bp]=!!e}get allowStale(){return this[bp]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[xc]=e,Qp(this)}get maxAge(){return this[xc]}set lengthCalculator(e){typeof e!="function"&&(e=uS),e!==this[fg]&&(this[fg]=e,this[Ua]=0,this[yi].forEach(t=>{t.length=this[fg](t.value,t.key),this[Ua]+=t.length})),Qp(this)}get lengthCalculator(){return this[fg]}get length(){return this[Ua]}get itemCount(){return this[yi].length}rforEach(e,t){t=t||this;for(let i=this[yi].tail;i!==null;){let n=i.prev;M2(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[yi].head;i!==null;){let n=i.next;M2(this,e,i,t),i=n}}keys(){return this[yi].toArray().map(e=>e.key)}values(){return this[yi].toArray().map(e=>e.value)}reset(){this[Ha]&&this[yi]&&this[yi].length&&this[yi].forEach(e=>this[Ha](e.key,e.value)),this[oo]=new Map,this[yi]=new VCe,this[Ua]=0}dump(){return this[yi].map(e=>DI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[yi]}set(e,t,i){if(i=i||this[xc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[fg](t,e);if(this[oo].has(e)){if(s>this[vc])return hg(this,this[oo].get(e)),!1;let l=this[oo].get(e).value;return this[Ha]&&(this[N2]||this[Ha](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Ua]+=s-l.length,l.length=s,this.get(e),Qp(this),!0}let o=new O2(e,t,s,n,i);return o.length>this[vc]?(this[Ha]&&this[Ha](e,t),!1):(this[Ua]+=o.length,this[yi].unshift(o),this[oo].set(e,this[yi].head),Qp(this),!0)}has(e){if(!this[oo].has(e))return!1;let t=this[oo].get(e).value;return!DI(this,t)}get(e){return gS(this,e,!0)}peek(e){return gS(this,e,!1)}pop(){let e=this[yi].tail;return e?(hg(this,e),e.value):null}del(e){hg(this,this[oo].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[oo].forEach((e,t)=>gS(this,t,!1))}},gS=(r,e,t)=>{let i=r[oo].get(e);if(i){let n=i.value;if(DI(r,n)){if(hg(r,i),!r[bp])return}else t&&(r[L2]&&(i.value.now=Date.now()),r[yi].unshiftNode(i));return n.value}},DI=(r,e)=>{if(!e||!e.maxAge&&!r[xc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[xc]&&t>r[xc]},Qp=r=>{if(r[Ua]>r[vc])for(let e=r[yi].tail;r[Ua]>r[vc]&&e!==null;){let t=e.prev;hg(r,e),e=t}},hg=(r,e)=>{if(e){let t=e.value;r[Ha]&&r[Ha](t.key,t.value),r[Ua]-=t.length,r[oo].delete(t.key),r[yi].removeNode(e)}},O2=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},M2=(r,e,t,i)=>{let n=t.value;DI(r,n)&&(hg(r,t),r[bp]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};F2.exports=T2});var Qs=w((VZe,U2)=>{var pg=class{constructor(e,t){if(t=XCe(t),e instanceof pg)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new pg(e.raw,t);if(e instanceof fS)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!j2(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&rme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=H2.get(i);if(n)return n;let s=this.options.loose,o=s?ji[ki.HYPHENRANGELOOSE]:ji[ki.HYPHENRANGE];e=e.replace(o,sme(this.options.includePrerelease)),zr("hyphen replace",e),e=e.replace(ji[ki.COMPARATORTRIM],$Ce),zr("comparator trim",e,ji[ki.COMPARATORTRIM]),e=e.replace(ji[ki.TILDETRIM],eme),e=e.replace(ji[ki.CARETTRIM],tme),e=e.split(/\s+/).join(" ");let a=s?ji[ki.COMPARATORLOOSE]:ji[ki.COMPARATOR],l=e.split(" ").map(f=>ime(f,this.options)).join(" ").split(/\s+/).map(f=>nme(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new fS(f,this.options)),c=l.length,u=new Map;for(let f of l){if(j2(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return H2.set(i,g),g}intersects(e,t){if(!(e instanceof pg))throw new TypeError("a Range is required");return this.set.some(i=>G2(i,t)&&e.set.some(n=>G2(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new ZCe(e,this.options)}catch(t){return!1}for(let t=0;tr.value==="<0.0.0-0",rme=r=>r.value==="",G2=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},ime=(r,e)=>(zr("comp",r,e),r=lme(r,e),zr("caret",r),r=Ame(r,e),zr("tildes",r),r=cme(r,e),zr("xrange",r),r=ume(r,e),zr("stars",r),r),on=r=>!r||r.toLowerCase()==="x"||r==="*",Ame=(r,e)=>r.trim().split(/\s+/).map(t=>gme(t,e)).join(" "),gme=(r,e)=>{let t=e.loose?ji[ki.TILDELOOSE]:ji[ki.TILDE];return r.replace(t,(i,n,s,o,a)=>{zr("tilde",r,i,n,s,o,a);let l;return on(n)?l="":on(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:on(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(zr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,zr("tilde return",l),l})},lme=(r,e)=>r.trim().split(/\s+/).map(t=>fme(t,e)).join(" "),fme=(r,e)=>{zr("caret",r,e);let t=e.loose?ji[ki.CARETLOOSE]:ji[ki.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{zr("caret",r,n,s,o,a,l);let c;return on(s)?c="":on(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:on(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(zr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(zr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),zr("caret return",c),c})},cme=(r,e)=>(zr("replaceXRanges",r,e),r.split(/\s+/).map(t=>hme(t,e)).join(" ")),hme=(r,e)=>{r=r.trim();let t=e.loose?ji[ki.XRANGELOOSE]:ji[ki.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{zr("xRange",r,i,n,s,o,a,l);let c=on(s),u=c||on(o),g=u||on(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),zr("xRange return",i),i})},ume=(r,e)=>(zr("replaceStars",r,e),r.trim().replace(ji[ki.STAR],"")),nme=(r,e)=>(zr("replaceGTE0",r,e),r.trim().replace(ji[e.includePrerelease?ki.GTE0PRE:ki.GTE0],"")),sme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(on(i)?t="":on(n)?t=`>=${i}.0.0${r?"-0":""}`:on(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,on(c)?l="":on(u)?l=`<${+c+1}.0.0-0`:on(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),ome=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Sp=w((XZe,Y2)=>{var vp=Symbol("SemVer ANY"),xp=class{static get ANY(){return vp}constructor(e,t){if(t=pme(t),e instanceof xp){if(e.loose===!!t.loose)return e;e=e.value}pS("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===vp?this.value="":this.value=this.operator+this.semver.version,pS("comp",this)}parse(e){let t=this.options.loose?q2[J2.COMPARATORLOOSE]:q2[J2.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new W2(i[2],this.options.loose):this.semver=vp}toString(){return this.value}test(e){if(pS("Comparator.test",e,this.options.loose),this.semver===vp||e===vp)return!0;if(typeof e=="string")try{e=new W2(e,this.options)}catch(t){return!1}return hS(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof xp))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new z2(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new z2(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=hS(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=hS(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};Y2.exports=xp;var pme=Ip(),{re:q2,t:J2}=bc(),hS=cS(),pS=Ep(),W2=Hi(),z2=Qs()});var kp=w((ZZe,_2)=>{var dme=Qs(),Cme=(r,e,t)=>{try{e=new dme(e,t)}catch(i){return!1}return e.test(r)};_2.exports=Cme});var X2=w(($Ze,V2)=>{var mme=Qs(),Eme=(r,e)=>new mme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));V2.exports=Eme});var $2=w((e$e,Z2)=>{var Ime=Hi(),yme=Qs(),wme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new yme(e,t)}catch(o){return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new Ime(i,t))}),i};Z2.exports=wme});var tH=w((t$e,eH)=>{var Bme=Hi(),bme=Qs(),Qme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new bme(e,t)}catch(o){return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Bme(i,t))}),i};eH.exports=Qme});var nH=w((r$e,rH)=>{var dS=Hi(),Sme=Qs(),iH=wp(),vme=(r,e)=>{r=new Sme(r,e);let t=new dS("0.0.0");if(r.test(t)||(t=new dS("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new dS(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||iH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||iH(t,s))&&(t=s)}return t&&r.test(t)?t:null};rH.exports=vme});var oH=w((i$e,sH)=>{var xme=Qs(),kme=(r,e)=>{try{return new xme(r,e).range||"*"}catch(t){return null}};sH.exports=kme});var RI=w((n$e,aH)=>{var Pme=Hi(),AH=Sp(),{ANY:Dme}=AH,Rme=Qs(),Fme=kp(),lH=wp(),cH=SI(),Nme=xI(),Lme=vI(),Tme=(r,e,t,i)=>{r=new Pme(r,i),e=new Rme(e,i);let n,s,o,a,l;switch(t){case">":n=lH,s=Nme,o=cH,a=">",l=">=";break;case"<":n=cH,s=Lme,o=lH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Fme(r,e,i))return!1;for(let c=0;c{h.semver===Dme&&(h=new AH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};aH.exports=Tme});var gH=w((s$e,uH)=>{var Ome=RI(),Mme=(r,e,t)=>Ome(r,e,">",t);uH.exports=Mme});var hH=w((o$e,fH)=>{var Kme=RI(),Ume=(r,e,t)=>Kme(r,e,"<",t);fH.exports=Ume});var CH=w((a$e,pH)=>{var dH=Qs(),Hme=(r,e,t)=>(r=new dH(r,t),e=new dH(e,t),r.intersects(e));pH.exports=Hme});var EH=w((A$e,mH)=>{var jme=kp(),Gme=bs();mH.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>Gme(u,g,t));for(let u of o)jme(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var yH=Qs(),FI=Sp(),{ANY:CS}=FI,Pp=kp(),mS=bs(),qme=(r,e,t={})=>{if(r===e)return!0;r=new yH(r,t),e=new yH(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=Yme(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},Yme=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===CS){if(e.length===1&&e[0].semver===CS)return!0;t.includePrerelease?r=[new FI(">=0.0.0-0")]:r=[new FI(">=0.0.0")]}if(e.length===1&&e[0].semver===CS){if(t.includePrerelease)return!0;e=[new FI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=wH(n,h,t):h.operator==="<"||h.operator==="<="?s=BH(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=mS(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Pp(h,String(n),t)||s&&!Pp(h,String(s),t))return null;for(let p of e)if(!Pp(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=wH(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!Pp(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=BH(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Pp(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},wH=(r,e,t)=>{if(!r)return e;let i=mS(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},BH=(r,e,t)=>{if(!r)return e;let i=mS(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};IH.exports=qme});var ri=w((c$e,QH)=>{var ES=bc();QH.exports={re:ES.re,src:ES.src,tokens:ES.t,SEMVER_SPEC_VERSION:mp().SEMVER_SPEC_VERSION,SemVer:Hi(),compareIdentifiers:yI().compareIdentifiers,rcompareIdentifiers:yI().rcompareIdentifiers,parse:Qc(),valid:WU(),clean:_U(),inc:XU(),diff:i2(),major:s2(),minor:a2(),patch:l2(),prerelease:u2(),compare:bs(),rcompare:f2(),compareLoose:p2(),compareBuild:QI(),sort:E2(),rsort:y2(),gt:wp(),lt:SI(),eq:bI(),neq:lS(),gte:vI(),lte:xI(),cmp:cS(),coerce:k2(),Comparator:Sp(),Range:Qs(),satisfies:kp(),toComparators:X2(),maxSatisfying:$2(),minSatisfying:tH(),minVersion:nH(),validRange:oH(),outside:RI(),gtr:gH(),ltr:hH(),intersects:CH(),simplifyRange:EH(),subset:bH()}});var IS=w(NI=>{"use strict";Object.defineProperty(NI,"__esModule",{value:!0});NI.VERSION=void 0;NI.VERSION="9.1.0"});var Yt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof LI=="object"&&LI.exports?LI.exports=e():r.regexpToAst=e()})(typeof self!="undefined"?self:SH,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],m=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(m)}},r.prototype.alternative=function(){for(var p=[],m=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:Infinity};break;case"+":m={atLeast:1,atMost:Infinity};break;case"?":m={atLeast:0,atMost:1};break;case"{":var b=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:b,atMost:b};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),m={atLeast:b,atMost:v}):m={atLeast:b,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&m===void 0)return;a(m);break}if(!(p===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var p,m=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(m),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,m=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,m=!0;break;case"s":p=f;break;case"S":p=f,m=!0;break;case"w":p=g;break;case"W":p=g,m=!0;break}return a(p),{type:"Set",value:p,complement:m}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var m=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),b=y.type==="Character";if(b&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),x=v.type==="Character";if(x){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,m){p.length!==void 0?p.forEach(function(y){m.push(y)}):m.push(p)}function o(p,m){if(p[m]===!0)throw"duplicate flag "+m;p[m]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var m in p){var y=p[m];p.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(b){this.visit(b)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var MI=w(dg=>{"use strict";Object.defineProperty(dg,"__esModule",{value:!0});dg.clearRegExpParserCache=dg.getRegExpAst=void 0;var Jme=TI(),OI={},Wme=new Jme.RegExpParser;function zme(r){var e=r.toString();if(OI.hasOwnProperty(e))return OI[e];var t=Wme.pattern(e);return OI[e]=t,t}dg.getRegExpAst=zme;function _me(){OI={}}dg.clearRegExpParserCache=_me});var DH=w(Bn=>{"use strict";var Vme=Bn&&Bn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.canMatchCharCode=Bn.firstCharOptimizedIndices=Bn.getOptimizedStartCodesIndices=Bn.failedOptimizationPrefixMsg=void 0;var vH=TI(),Ss=Yt(),xH=MI(),ja=yS(),kH="Complement Sets are not supported for first char optimization";Bn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function Xme(r,e){e===void 0&&(e=!1);try{var t=(0,xH.getRegExpAst)(r),i=KI(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===kH)e&&(0,Ss.PRINT_WARNING)(""+Bn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,Ss.PRINT_ERROR)(Bn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+vH.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Bn.getOptimizedStartCodesIndices=Xme;function KI(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=ja.minOptimizationVal)for(var f=u.from>=ja.minOptimizationVal?u.from:ja.minOptimizationVal,h=u.to,p=(0,ja.charCodeToOptimizedIndex)(f),m=(0,ja.charCodeToOptimizedIndex)(h),y=p;y<=m;y++)e[y]=y}}});break;case"Group":KI(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&wS(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,Ss.values)(e)}Bn.firstCharOptimizedIndices=KI;function UI(r,e,t){var i=(0,ja.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&Zme(r,e)}function Zme(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,ja.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,ja.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function PH(r,e){return(0,Ss.find)(r.value,function(t){if(typeof t=="number")return(0,Ss.contains)(e,t);var i=t;return(0,Ss.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function wS(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,Ss.isArray)(r.value)?(0,Ss.every)(r.value,wS):wS(r.value):!1}var $me=function(r){Vme(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,Ss.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?PH(t,this.targetCharCodes)===void 0&&(this.found=!0):PH(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(vH.BaseRegExpVisitor);function eEe(r,e){if(e instanceof RegExp){var t=(0,xH.getRegExpAst)(e),i=new $me(r);return i.visit(t),i.found}else return(0,Ss.find)(e,function(n){return(0,Ss.contains)(r,n.charCodeAt(0))})!==void 0}Bn.canMatchCharCode=eEe});var yS=w(Ze=>{"use strict";var RH=Ze&&Ze.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ze,"__esModule",{value:!0});Ze.charCodeToOptimizedIndex=Ze.minOptimizationVal=Ze.buildLineBreakIssueMessage=Ze.LineTerminatorOptimizedTester=Ze.isShortPattern=Ze.isCustomPattern=Ze.cloneEmptyGroups=Ze.performWarningRuntimeChecks=Ze.performRuntimeChecks=Ze.addStickyFlag=Ze.addStartOfInput=Ze.findUnreachablePatterns=Ze.findModesThatDoNotExist=Ze.findInvalidGroupType=Ze.findDuplicatePatterns=Ze.findUnsupportedFlags=Ze.findStartOfInputAnchor=Ze.findEmptyMatchRegExps=Ze.findEndOfInputAnchor=Ze.findInvalidPatterns=Ze.findMissingPatterns=Ze.validatePatterns=Ze.analyzeTokenTypes=Ze.enableSticky=Ze.disableSticky=Ze.SUPPORT_STICKY=Ze.MODES=Ze.DEFAULT_MODE=void 0;var FH=TI(),Ar=Dp(),Ne=Yt(),Cg=DH(),NH=MI(),Mo="PATTERN";Ze.DEFAULT_MODE="defaultMode";Ze.MODES="modes";Ze.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function tEe(){Ze.SUPPORT_STICKY=!1}Ze.disableSticky=tEe;function rEe(){Ze.SUPPORT_STICKY=!0}Ze.enableSticky=rEe;function nEe(r,e){e=(0,Ne.defaults)(e,{useSticky:Ze.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(v,x){return x()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){iEe()});var i;t("Reject Lexer.NA",function(){i=(0,Ne.reject)(r,function(v){return v[Mo]===Ar.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Ne.map)(i,function(v){var x=v[Mo];if((0,Ne.isRegExp)(x)){var T=x.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!x.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Ne.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?bS(x):BS(x)}else{if((0,Ne.isFunction)(x))return n=!0,{exec:x};if((0,Ne.has)(x,"exec"))return n=!0,x;if(typeof x=="string"){if(x.length===1)return x;var q=x.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),Y=new RegExp(q);return e.useSticky?bS(Y):BS(Y)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Ne.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Ne.map)(i,function(v){var x=v.GROUP;if(x!==Ar.Lexer.SKIPPED){if((0,Ne.isString)(x))return x;if((0,Ne.isUndefined)(x))return!1;throw Error("non exhaustive match")}}),l=(0,Ne.map)(i,function(v){var x=v.LONGER_ALT;if(x){var T=(0,Ne.isArray)(x)?(0,Ne.map)(x,function(q){return(0,Ne.indexOf)(i,q)}):[(0,Ne.indexOf)(i,x)];return T}}),c=(0,Ne.map)(i,function(v){return v.PUSH_MODE}),u=(0,Ne.map)(i,function(v){return(0,Ne.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=OH(e.lineTerminatorCharacters);g=(0,Ne.map)(i,function(x){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ne.map)(i,function(x){if((0,Ne.has)(x,"LINE_BREAKS"))return x.LINE_BREAKS;if(TH(x,v)===!1)return(0,Cg.canMatchCharCode)(v,x.PATTERN)}))});var f,h,p,m;t("Misc Mapping #2",function(){f=(0,Ne.map)(i,QS),h=(0,Ne.map)(s,LH),p=(0,Ne.reduce)(i,function(v,x){var T=x.GROUP;return(0,Ne.isString)(T)&&T!==Ar.Lexer.SKIPPED&&(v[T]=[]),v},{}),m=(0,Ne.map)(s,function(v,x){return{pattern:s[x],longerAlt:l[x],canLineTerminator:g[x],isCustom:f[x],short:h[x],group:a[x],push:c[x],pop:u[x],tokenTypeIdx:o[x],tokenType:i[x]}})});var y=!0,b=[];return e.safeMode||t("First Char Optimization",function(){b=(0,Ne.reduce)(i,function(v,x,T){if(typeof x.PATTERN=="string"){var q=x.PATTERN.charCodeAt(0),Y=vS(q);SS(v,Y,m[T])}else if((0,Ne.isArray)(x.START_CHARS_HINT)){var $;(0,Ne.forEach)(x.START_CHARS_HINT,function(ne){var ee=typeof ne=="string"?ne.charCodeAt(0):ne,A=vS(ee);$!==A&&($=A,SS(v,A,m[T]))})}else if((0,Ne.isRegExp)(x.PATTERN))if(x.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+Cg.failedOptimizationPrefixMsg+(" Unable to analyze < "+x.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var _=(0,Cg.getOptimizedStartCodesIndices)(x.PATTERN,e.ensureOptimizations);(0,Ne.isEmpty)(_)&&(y=!1),(0,Ne.forEach)(_,function(ne){SS(v,ne,m[T])})}else e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+Cg.failedOptimizationPrefixMsg+(" TokenType: <"+x.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){b=(0,Ne.packArray)(b)}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:b,hasCustom:n,canBeOptimized:y}}Ze.analyzeTokenTypes=nEe;function oEe(r,e){var t=[],i=MH(r);t=t.concat(i.errors);var n=KH(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(sEe(s)),t=t.concat(UH(s)),t=t.concat(HH(s,e)),t=t.concat(jH(s)),t}Ze.validatePatterns=oEe;function sEe(r){var e=[],t=(0,Ne.filter)(r,function(i){return(0,Ne.isRegExp)(i[Mo])});return e=e.concat(GH(t)),e=e.concat(qH(t)),e=e.concat(JH(t)),e=e.concat(WH(t)),e=e.concat(YH(t)),e}function MH(r){var e=(0,Ne.filter)(r,function(n){return!(0,Ne.has)(n,Mo)}),t=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:Ar.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(r,e);return{errors:t,valid:i}}Ze.findMissingPatterns=MH;function KH(r){var e=(0,Ne.filter)(r,function(n){var s=n[Mo];return!(0,Ne.isRegExp)(s)&&!(0,Ne.isFunction)(s)&&!(0,Ne.has)(s,"exec")&&!(0,Ne.isString)(s)}),t=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ar.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(r,e);return{errors:t,valid:i}}Ze.findInvalidPatterns=KH;var aEe=/[^\\][\$]/;function GH(r){var e=function(n){RH(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(FH.BaseRegExpVisitor),t=(0,Ne.filter)(r,function(n){var s=n[Mo];try{var o=(0,NH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return aEe.test(s.source)}}),i=(0,Ne.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findEndOfInputAnchor=GH;function YH(r){var e=(0,Ne.filter)(r,function(i){var n=i[Mo];return n.test("")}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:Ar.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ze.findEmptyMatchRegExps=YH;var AEe=/[^\\[][\^]|^\^/;function qH(r){var e=function(n){RH(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(FH.BaseRegExpVisitor),t=(0,Ne.filter)(r,function(n){var s=n[Mo];try{var o=(0,NH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return AEe.test(s.source)}}),i=(0,Ne.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findStartOfInputAnchor=qH;function JH(r){var e=(0,Ne.filter)(r,function(i){var n=i[Mo];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ar.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ze.findUnsupportedFlags=JH;function WH(r){var e=[],t=(0,Ne.map)(r,function(s){return(0,Ne.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ne.contains)(e,a)&&a.PATTERN!==Ar.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Ne.compact)(t);var i=(0,Ne.filter)(t,function(s){return s.length>1}),n=(0,Ne.map)(i,function(s){var o=(0,Ne.map)(s,function(l){return l.name}),a=(0,Ne.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:Ar.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ze.findDuplicatePatterns=WH;function UH(r){var e=(0,Ne.filter)(r,function(i){if(!(0,Ne.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==Ar.Lexer.SKIPPED&&n!==Ar.Lexer.NA&&!(0,Ne.isString)(n)}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ar.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ze.findInvalidGroupType=UH;function HH(r,e){var t=(0,Ne.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Ne.contains)(e,n.PUSH_MODE)}),i=(0,Ne.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:Ar.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ze.findModesThatDoNotExist=HH;function jH(r){var e=[],t=(0,Ne.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===Ar.Lexer.NA||((0,Ne.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ne.isRegExp)(o)&&cEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ne.forEach)(r,function(i,n){(0,Ne.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:Ar.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ze.findUnreachablePatterns=jH;function lEe(r,e){if((0,Ne.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Ne.isFunction)(e))return e(r,0,[],{});if((0,Ne.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function cEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ne.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function BS(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ze.addStartOfInput=BS;function bS(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ze.addStickyFlag=bS;function uEe(r,e,t){var i=[];return(0,Ne.has)(r,Ze.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.DEFAULT_MODE+`> property in its definition -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ne.has)(r,Ze.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.MODES+`> property in its definition -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ne.has)(r,Ze.MODES)&&(0,Ne.has)(r,Ze.DEFAULT_MODE)&&!(0,Ne.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ze.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist -`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ne.has)(r,Ze.MODES)&&(0,Ne.forEach)(r.modes,function(n,s){(0,Ne.forEach)(n,function(o,a){(0,Ne.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:Ar.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ze.performRuntimeChecks=uEe;function gEe(r,e,t){var i=[],n=!1,s=(0,Ne.compact)((0,Ne.flatten)((0,Ne.mapValues)(r.modes,function(l){return l}))),o=(0,Ne.reject)(s,function(l){return l[Mo]===Ar.Lexer.NA}),a=OH(t);return e&&(0,Ne.forEach)(o,function(l){var c=TH(l,a);if(c!==!1){var u=zH(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ne.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Cg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:Ar.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ze.performWarningRuntimeChecks=gEe;function fEe(r){var e={},t=(0,Ne.keys)(r);return(0,Ne.forEach)(t,function(i){var n=r[i];if((0,Ne.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ze.cloneEmptyGroups=fEe;function QS(r){var e=r.PATTERN;if((0,Ne.isRegExp)(e))return!1;if((0,Ne.isFunction)(e))return!0;if((0,Ne.has)(e,"exec"))return!0;if((0,Ne.isString)(e))return!1;throw Error("non exhaustive match")}Ze.isCustomPattern=QS;function LH(r){return(0,Ne.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ze.isShortPattern=LH;Ze.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ze.buildLineBreakIssueMessage=zH;function OH(r){var e=(0,Ne.map)(r,function(t){return(0,Ne.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function SS(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ze.minOptimizationVal=256;var HI=[];function vS(r){return r255?255+~~(r/255):r}}});var mg=w(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.isTokenType=Ft.hasExtendingTokensTypesMapProperty=Ft.hasExtendingTokensTypesProperty=Ft.hasCategoriesProperty=Ft.hasShortKeyProperty=Ft.singleAssignCategoriesToksMap=Ft.assignCategoriesMapProp=Ft.assignCategoriesTokensProp=Ft.assignTokenDefaultProps=Ft.expandCategories=Ft.augmentTokenTypes=Ft.tokenIdxToClass=Ft.tokenShortNameIdx=Ft.tokenStructuredMatcherNoCategories=Ft.tokenStructuredMatcher=void 0;var ii=Yt();function hEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Ft.tokenStructuredMatcher=hEe;function pEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Ft.tokenStructuredMatcherNoCategories=pEe;Ft.tokenShortNameIdx=1;Ft.tokenIdxToClass={};function dEe(r){var e=_H(r);VH(e),ZH(e),XH(e),(0,ii.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Ft.augmentTokenTypes=dEe;function _H(r){for(var e=(0,ii.cloneArr)(r),t=r,i=!0;i;){t=(0,ii.compact)((0,ii.flatten)((0,ii.map)(t,function(s){return s.CATEGORIES})));var n=(0,ii.difference)(t,e);e=e.concat(n),(0,ii.isEmpty)(n)?i=!1:t=n}return e}Ft.expandCategories=_H;function VH(r){(0,ii.forEach)(r,function(e){$H(e)||(Ft.tokenIdxToClass[Ft.tokenShortNameIdx]=e,e.tokenTypeIdx=Ft.tokenShortNameIdx++),xS(e)&&!(0,ii.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xS(e)||(e.CATEGORIES=[]),ej(e)||(e.categoryMatches=[]),tj(e)||(e.categoryMatchesMap={})})}Ft.assignTokenDefaultProps=VH;function XH(r){(0,ii.forEach)(r,function(e){e.categoryMatches=[],(0,ii.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Ft.tokenIdxToClass[i].tokenTypeIdx)})})}Ft.assignCategoriesTokensProp=XH;function ZH(r){(0,ii.forEach)(r,function(e){kS([],e)})}Ft.assignCategoriesMapProp=ZH;function kS(r,e){(0,ii.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ii.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ii.contains)(i,t)||kS(i,t)})}Ft.singleAssignCategoriesToksMap=kS;function $H(r){return(0,ii.has)(r,"tokenTypeIdx")}Ft.hasShortKeyProperty=$H;function xS(r){return(0,ii.has)(r,"CATEGORIES")}Ft.hasCategoriesProperty=xS;function ej(r){return(0,ii.has)(r,"categoryMatches")}Ft.hasExtendingTokensTypesProperty=ej;function tj(r){return(0,ii.has)(r,"categoryMatchesMap")}Ft.hasExtendingTokensTypesMapProperty=tj;function CEe(r){return(0,ii.has)(r,"tokenTypeIdx")}Ft.isTokenType=CEe});var PS=w(jI=>{"use strict";Object.defineProperty(jI,"__esModule",{value:!0});jI.defaultLexerErrorProvider=void 0;jI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Dp=w(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});kc.Lexer=kc.LexerDefinitionErrorType=void 0;var ao=yS(),lr=Yt(),mEe=mg(),EEe=PS(),IEe=MI(),yEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(yEe=kc.LexerDefinitionErrorType||(kc.LexerDefinitionErrorType={}));var Rp={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:EEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Rp);var wEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Rp),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,lr.merge)(Rp,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Rp.lineTerminatorsPattern)i.config.lineTerminatorsPattern=ao.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Rp.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,lr.isArray)(e)?(s={modes:{}},s.modes[ao.DEFAULT_MODE]=(0,lr.cloneArr)(e),s[ao.DEFAULT_MODE]=ao.DEFAULT_MODE):(o=!1,s=(0,lr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,ao.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,ao.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,lr.forEach)(s.modes,function(u,g){s.modes[g]=(0,lr.reject)(u,function(f){return(0,lr.isUndefined)(f)})});var a=(0,lr.keys)(s.modes);if((0,lr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,ao.validatePatterns)(u,a))}),(0,lr.isEmpty)(i.lexerDefinitionErrors)){(0,mEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,ao.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,lr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,lr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,lr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,lr.forEach)(i.lexerDefinitionWarning,function(u){(0,lr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(ao.SUPPORT_STICKY?(i.chopInput=lr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=lr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=lr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=lr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=lr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,lr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,lr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,IEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,lr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,lr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,lr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,m,y,b,v,x,T=e,q=T.length,Y=0,$=0,_=this.hasCustom?0:Math.floor(e.length/10),ne=new Array(_),ee=[],A=this.trackStartLines?1:void 0,oe=this.trackStartLines?1:void 0,ce=(0,ao.cloneEmptyGroups)(this.emptyGroups),Z=this.trackStartLines,O=this.config.lineTerminatorsPattern,L=0,de=[],Be=[],je=[],re=[];Object.freeze(re);var se=void 0;function be(){return de}function he(Sr){var jn=(0,ao.charCodeToOptimizedIndex)(Sr),fs=Be[jn];return fs===void 0?re:fs}var Fe=function(Sr){if(je.length===1&&Sr.tokenType.PUSH_MODE===void 0){var jn=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Sr);ee.push({offset:Sr.startOffset,line:Sr.startLine!==void 0?Sr.startLine:void 0,column:Sr.startColumn!==void 0?Sr.startColumn:void 0,length:Sr.image.length,message:jn})}else{je.pop();var fs=(0,lr.last)(je);de=i.patternIdxToConfig[fs],Be=i.charCodeToPatternIdxToConfig[fs],L=de.length;var ba=i.canModeBeOptimized[fs]&&i.config.safeMode===!1;Be&&ba?se=he:se=be}};function Ke(Sr){je.push(Sr),Be=this.charCodeToPatternIdxToConfig[Sr],de=this.patternIdxToConfig[Sr],L=de.length,L=de.length;var jn=this.canModeBeOptimized[Sr]&&this.config.safeMode===!1;Be&&jn?se=he:se=be}Ke.call(this,t);for(var ke;Yc.length){c=a,u=g,ke=gt;break}}}break}}if(c!==null){if(f=c.length,h=ke.group,h!==void 0&&(p=ke.tokenTypeIdx,m=this.createTokenInstance(c,Y,p,ke.tokenType,A,oe,f),this.handlePayload(m,u),h===!1?$=this.addToken(ne,$,m):ce[h].push(m)),e=this.chopInput(e,f),Y=Y+f,oe=this.computeNewColumn(oe,f),Z===!0&&ke.canLineTerminator===!0){var Mt=0,Ei=void 0,jt=void 0;O.lastIndex=0;do Ei=O.test(c),Ei===!0&&(jt=O.lastIndex-1,Mt++);while(Ei===!0);Mt!==0&&(A=A+Mt,oe=f-jt,this.updateTokenEndLineColumnLocation(m,h,jt,Mt,A,oe,f))}this.handleModes(ke,Fe,Ke,m)}else{for(var Qr=Y,Oi=A,Xs=oe,Un=!1;!Un&&Y <"+e+">");var n=(0,lr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();kc.Lexer=wEe});var XA=w(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.tokenMatcher=Pi.createTokenInstance=Pi.EOF=Pi.createToken=Pi.hasTokenLabel=Pi.tokenName=Pi.tokenLabel=void 0;var Ao=Yt(),BEe=Dp(),DS=mg();function bEe(r){return rj(r)?r.LABEL:r.name}Pi.tokenLabel=bEe;function QEe(r){return r.name}Pi.tokenName=QEe;function rj(r){return(0,Ao.isString)(r.LABEL)&&r.LABEL!==""}Pi.hasTokenLabel=rj;var SEe="parent",ij="categories",nj="label",sj="group",oj="push_mode",aj="pop_mode",Aj="longer_alt",lj="line_breaks",cj="start_chars_hint";function uj(r){return vEe(r)}Pi.createToken=uj;function vEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,Ao.isUndefined)(e)||(t.PATTERN=e),(0,Ao.has)(r,SEe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Ao.has)(r,ij)&&(t.CATEGORIES=r[ij]),(0,DS.augmentTokenTypes)([t]),(0,Ao.has)(r,nj)&&(t.LABEL=r[nj]),(0,Ao.has)(r,sj)&&(t.GROUP=r[sj]),(0,Ao.has)(r,aj)&&(t.POP_MODE=r[aj]),(0,Ao.has)(r,oj)&&(t.PUSH_MODE=r[oj]),(0,Ao.has)(r,Aj)&&(t.LONGER_ALT=r[Aj]),(0,Ao.has)(r,lj)&&(t.LINE_BREAKS=r[lj]),(0,Ao.has)(r,cj)&&(t.START_CHARS_HINT=r[cj]),t}Pi.EOF=uj({name:"EOF",pattern:BEe.Lexer.NA});(0,DS.augmentTokenTypes)([Pi.EOF]);function xEe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Pi.createTokenInstance=xEe;function kEe(r,e){return(0,DS.tokenStructuredMatcher)(r,e)}Pi.tokenMatcher=kEe});var bn=w(Vt=>{"use strict";var Ga=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.serializeProduction=Vt.serializeGrammar=Vt.Terminal=Vt.Alternation=Vt.RepetitionWithSeparator=Vt.Repetition=Vt.RepetitionMandatoryWithSeparator=Vt.RepetitionMandatory=Vt.Option=Vt.Alternative=Vt.Rule=Vt.NonTerminal=Vt.AbstractProduction=void 0;var fr=Yt(),PEe=XA(),Ko=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,fr.forEach)(this.definition,function(t){t.accept(e)})},r}();Vt.AbstractProduction=Ko;var gj=function(r){Ga(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ko);Vt.NonTerminal=gj;var fj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.Rule=fj;var hj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.Alternative=hj;var pj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.Option=pj;var dj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.RepetitionMandatory=dj;var Cj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.RepetitionMandatoryWithSeparator=Cj;var mj=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.Repetition=mj;var Ej=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ko);Vt.RepetitionWithSeparator=Ej;var Ij=function(r){Ga(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ko);Vt.Alternation=Ij;var GI=function(){function r(e){this.idx=1,(0,fr.assign)(this,(0,fr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Vt.Terminal=GI;function DEe(r){return(0,fr.map)(r,Fp)}Vt.serializeGrammar=DEe;function Fp(r){function e(s){return(0,fr.map)(s,Fp)}if(r instanceof gj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,fr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof hj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof pj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof dj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Cj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Fp(new GI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Ej)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Fp(new GI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof mj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Ij)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof GI){var i={type:"Terminal",name:r.terminalType.name,label:(0,PEe.tokenLabel)(r.terminalType),idx:r.idx};(0,fr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,fr.isRegExp)(n)?n.source:n),i}else{if(r instanceof fj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Vt.serializeProduction=Fp});var qI=w(YI=>{"use strict";Object.defineProperty(YI,"__esModule",{value:!0});YI.RestWalker=void 0;var RS=Yt(),Qn=bn(),REe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,RS.forEach)(e.definition,function(n,s){var o=(0,RS.drop)(e.definition,s+1);if(n instanceof Qn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof Qn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof Qn.Alternative)i.walkFlat(n,o,t);else if(n instanceof Qn.Option)i.walkOption(n,o,t);else if(n instanceof Qn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof Qn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof Qn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof Qn.Repetition)i.walkMany(n,o,t);else if(n instanceof Qn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new Qn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=yj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new Qn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=yj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,RS.forEach)(e.definition,function(o){var a=new Qn.Alternative({definition:[o]});n.walk(a,s)})},r}();YI.RestWalker=REe;function yj(r,e,t){var i=[new Qn.Option({definition:[new Qn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Eg=w(JI=>{"use strict";Object.defineProperty(JI,"__esModule",{value:!0});JI.GAstVisitor=void 0;var Uo=bn(),FEe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Uo.NonTerminal:return this.visitNonTerminal(t);case Uo.Alternative:return this.visitAlternative(t);case Uo.Option:return this.visitOption(t);case Uo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Uo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Uo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Uo.Repetition:return this.visitRepetition(t);case Uo.Alternation:return this.visitAlternation(t);case Uo.Terminal:return this.visitTerminal(t);case Uo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();JI.GAstVisitor=FEe});var Lp=w(Gi=>{"use strict";var NEe=Gi&&Gi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Gi,"__esModule",{value:!0});Gi.collectMethods=Gi.DslMethodsCollectorVisitor=Gi.getProductionDslName=Gi.isBranchingProd=Gi.isOptionalProd=Gi.isSequenceProd=void 0;var Np=Yt(),xr=bn(),LEe=Eg();function TEe(r){return r instanceof xr.Alternative||r instanceof xr.Option||r instanceof xr.Repetition||r instanceof xr.RepetitionMandatory||r instanceof xr.RepetitionMandatoryWithSeparator||r instanceof xr.RepetitionWithSeparator||r instanceof xr.Terminal||r instanceof xr.Rule}Gi.isSequenceProd=TEe;function FS(r,e){e===void 0&&(e=[]);var t=r instanceof xr.Option||r instanceof xr.Repetition||r instanceof xr.RepetitionWithSeparator;return t?!0:r instanceof xr.Alternation?(0,Np.some)(r.definition,function(i){return FS(i,e)}):r instanceof xr.NonTerminal&&(0,Np.contains)(e,r)?!1:r instanceof xr.AbstractProduction?(r instanceof xr.NonTerminal&&e.push(r),(0,Np.every)(r.definition,function(i){return FS(i,e)})):!1}Gi.isOptionalProd=FS;function OEe(r){return r instanceof xr.Alternation}Gi.isBranchingProd=OEe;function MEe(r){if(r instanceof xr.NonTerminal)return"SUBRULE";if(r instanceof xr.Option)return"OPTION";if(r instanceof xr.Alternation)return"OR";if(r instanceof xr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof xr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof xr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof xr.Repetition)return"MANY";if(r instanceof xr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Gi.getProductionDslName=MEe;var wj=function(r){NEe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Np.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Np.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(LEe.GAstVisitor);Gi.DslMethodsCollectorVisitor=wj;var WI=new wj;function KEe(r){WI.reset(),r.accept(WI);var e=WI.dslMethods;return WI.reset(),e}Gi.collectMethods=KEe});var LS=w(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.firstForTerminal=Ho.firstForBranching=Ho.firstForSequence=Ho.first=void 0;var zI=Yt(),Bj=bn(),NS=Lp();function _I(r){if(r instanceof Bj.NonTerminal)return _I(r.referencedRule);if(r instanceof Bj.Terminal)return Sj(r);if((0,NS.isSequenceProd)(r))return bj(r);if((0,NS.isBranchingProd)(r))return Qj(r);throw Error("non exhaustive match")}Ho.first=_I;function bj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,NS.isOptionalProd)(s),e=e.concat(_I(s)),i=i+1,n=t.length>i;return(0,zI.uniq)(e)}Ho.firstForSequence=bj;function Qj(r){var e=(0,zI.map)(r.definition,function(t){return _I(t)});return(0,zI.uniq)((0,zI.flatten)(e))}Ho.firstForBranching=Qj;function Sj(r){return[r.terminalType]}Ho.firstForTerminal=Sj});var TS=w(VI=>{"use strict";Object.defineProperty(VI,"__esModule",{value:!0});VI.IN=void 0;VI.IN="_~IN~_"});var Dj=w(vs=>{"use strict";var UEe=vs&&vs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(vs,"__esModule",{value:!0});vs.buildInProdFollowPrefix=vs.buildBetweenProdsFollowPrefix=vs.computeAllProdsFollows=vs.ResyncFollowsWalker=void 0;var HEe=qI(),jEe=LS(),vj=Yt(),xj=TS(),GEe=bn(),Pj=function(r){UEe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=kj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new GEe.Alternative({definition:o}),l=(0,jEe.first)(a);this.follows[s]=l},e}(HEe.RestWalker);vs.ResyncFollowsWalker=Pj;function YEe(r){var e={};return(0,vj.forEach)(r,function(t){var i=new Pj(t).startWalking();(0,vj.assign)(e,i)}),e}vs.computeAllProdsFollows=YEe;function kj(r,e){return r.name+e+xj.IN}vs.buildBetweenProdsFollowPrefix=kj;function qEe(r){var e=r.terminalType.name;return e+r.idx+xj.IN}vs.buildInProdFollowPrefix=qEe});var Tp=w(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.defaultGrammarValidatorErrorProvider=Ya.defaultGrammarResolverErrorProvider=Ya.defaultParserErrorProvider=void 0;var Ig=XA(),JEe=Yt(),lo=Yt(),OS=bn(),Rj=Lp();Ya.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,Ig.hasTokenLabel)(e),o=s?"--> "+(0,Ig.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,lo.first)(t).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,lo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,lo.map)(c,function(h){return"["+(0,lo.map)(h,function(p){return(0,Ig.tokenLabel)(p)}).join(", ")+"]"}),g=(0,lo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,lo.first)(t).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,lo.map)(e,function(u){return"["+(0,lo.map)(u,function(g){return(0,Ig.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ya.defaultParserErrorProvider);Ya.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Ya.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof OS.Terminal?u.terminalType.name:u instanceof OS.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,lo.first)(e),s=n.idx,o=(0,Rj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,lo.map)(r.prefixPath,function(n){return(0,Ig.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,lo.map)(r.prefixPath,function(n){return(0,Ig.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Rj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=JEe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof OS.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Lj=w(ZA=>{"use strict";var WEe=ZA&&ZA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ZA,"__esModule",{value:!0});ZA.GastRefResolverVisitor=ZA.resolveGrammar=void 0;var zEe=$n(),Fj=Yt(),_Ee=Eg();function VEe(r,e){var t=new Nj(r,e);return t.resolveRefs(),t.errors}ZA.resolveGrammar=VEe;var Nj=function(r){WEe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Fj.forEach)((0,Fj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:zEe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(_Ee.GAstVisitor);ZA.GastRefResolverVisitor=Nj});var Mp=w(Kr=>{"use strict";var Pc=Kr&&Kr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Kr,"__esModule",{value:!0});Kr.nextPossibleTokensAfter=Kr.possiblePathsFrom=Kr.NextTerminalAfterAtLeastOneSepWalker=Kr.NextTerminalAfterAtLeastOneWalker=Kr.NextTerminalAfterManySepWalker=Kr.NextTerminalAfterManyWalker=Kr.AbstractNextTerminalAfterProductionWalker=Kr.NextAfterTokenWalker=Kr.AbstractNextPossibleTokensWalker=void 0;var Tj=qI(),Kt=Yt(),XEe=LS(),Dt=bn(),Oj=function(r){Pc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Tj.RestWalker);Kr.AbstractNextPossibleTokensWalker=Oj;var ZEe=function(r){Pc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,XEe.first)(o),this.found=!0}},e}(Oj);Kr.NextAfterTokenWalker=ZEe;var Op=function(r){Pc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Tj.RestWalker);Kr.AbstractNextTerminalAfterProductionWalker=Op;var $Ee=function(r){Pc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Op);Kr.NextTerminalAfterManyWalker=$Ee;var eIe=function(r){Pc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Op);Kr.NextTerminalAfterManySepWalker=eIe;var tIe=function(r){Pc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Op);Kr.NextTerminalAfterAtLeastOneWalker=tIe;var rIe=function(r){Pc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Op);Kr.NextTerminalAfterAtLeastOneSepWalker=rIe;function Mj(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Mj(s(c),e,t);return i.concat(u)}for(;t.length=0;ce--){var Z=b.definition[ce],O={idx:p,def:Z.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(b instanceof Dt.Alternative)g.push({idx:p,def:b.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:y});else if(b instanceof Dt.Rule)g.push(iIe(b,p,m,y));else throw Error("non exhaustive match")}}return u}Kr.nextPossibleTokensAfter=nIe;function iIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Kp=w(tr=>{"use strict";var Kj=tr&&tr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(tr,"__esModule",{value:!0});tr.areTokenCategoriesNotUsed=tr.isStrictPrefixOfPath=tr.containsPath=tr.getLookaheadPathsForOptionalProd=tr.getLookaheadPathsForOr=tr.lookAheadSequenceFromAlternatives=tr.buildSingleAlternativeLookaheadFunction=tr.buildAlternativesLookAheadFunc=tr.buildLookaheadFuncForOptionalProd=tr.buildLookaheadFuncForOr=tr.getProdType=tr.PROD_TYPE=void 0;var cr=Yt(),Uj=Mp(),sIe=qI(),XI=mg(),$A=bn(),oIe=Eg(),ui;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(ui=tr.PROD_TYPE||(tr.PROD_TYPE={}));function aIe(r){if(r instanceof $A.Option)return ui.OPTION;if(r instanceof $A.Repetition)return ui.REPETITION;if(r instanceof $A.RepetitionMandatory)return ui.REPETITION_MANDATORY;if(r instanceof $A.RepetitionMandatoryWithSeparator)return ui.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof $A.RepetitionWithSeparator)return ui.REPETITION_WITH_SEPARATOR;if(r instanceof $A.Alternation)return ui.ALTERNATION;throw Error("non exhaustive match")}tr.getProdType=aIe;function AIe(r,e,t,i,n,s){var o=Hj(r,e,t),a=MS(o)?XI.tokenStructuredMatcherNoCategories:XI.tokenStructuredMatcher;return s(o,i,a,n)}tr.buildLookaheadFuncForOr=AIe;function lIe(r,e,t,i,n,s){var o=jj(r,e,n,t),a=MS(o)?XI.tokenStructuredMatcherNoCategories:XI.tokenStructuredMatcher;return s(o[0],a,i)}tr.buildLookaheadFuncForOptionalProd=lIe;function cIe(r,e,t,i){var n=r.length,s=(0,cr.every)(r,function(l){return(0,cr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,cr.map)(l,function(x){return x.GATE}),u=0;u{"use strict";var HS=Xt&&Xt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Xt,"__esModule",{value:!0});Xt.checkPrefixAlternativesAmbiguities=Xt.validateSomeNonEmptyLookaheadPath=Xt.validateTooManyAlts=Xt.RepetionCollector=Xt.validateAmbiguousAlternationAlternatives=Xt.validateEmptyOrAlternative=Xt.getFirstNoneTerminal=Xt.validateNoLeftRecursion=Xt.validateRuleIsOverridden=Xt.validateRuleDoesNotAlreadyExist=Xt.OccurrenceValidationCollector=Xt.identifyProductionForDuplicates=Xt.validateGrammar=void 0;var nr=Yt(),kr=Yt(),jo=$n(),jS=Lp(),yg=Kp(),pIe=Mp(),co=bn(),GS=Eg();function mIe(r,e,t,i,n){var s=nr.map(r,function(h){return dIe(h,i)}),o=nr.map(r,function(h){return YS(h,h,i)}),a=[],l=[],c=[];(0,kr.every)(o,kr.isEmpty)&&(a=(0,kr.map)(r,function(h){return Wj(h,i)}),l=(0,kr.map)(r,function(h){return zj(h,e,i)}),c=Vj(r,e,i));var u=CIe(r,t,i),g=(0,kr.map)(r,function(h){return _j(h,i)}),f=(0,kr.map)(r,function(h){return Jj(h,r,n,i)});return nr.flatten(s.concat(c,o,a,l,u,g,f))}Xt.validateGrammar=mIe;function dIe(r,e){var t=new $j;r.accept(t);var i=t.allProductions,n=nr.groupBy(i,Xj),s=nr.pick(n,function(a){return a.length>1}),o=nr.map(nr.values(s),function(a){var l=nr.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,jS.getProductionDslName)(l),g={message:c,type:jo.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=Zj(l);return f&&(g.parameter=f),g});return o}function Xj(r){return(0,jS.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+Zj(r)}Xt.identifyProductionForDuplicates=Xj;function Zj(r){return r instanceof co.Terminal?r.terminalType.name:r instanceof co.NonTerminal?r.nonTerminalName:""}var $j=function(r){HS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(GS.GAstVisitor);Xt.OccurrenceValidationCollector=$j;function Jj(r,e,t,i){var n=[],s=(0,kr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:jo.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Xt.validateRuleDoesNotAlreadyExist=Jj;function EIe(r,e,t){var i=[],n;return nr.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:jo.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Xt.validateRuleIsOverridden=EIe;function YS(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Up(e.definition);if(nr.isEmpty(s))return[];var o=r.name,a=nr.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:jo.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=nr.difference(s,i.concat([r])),c=nr.map(l,function(u){var g=nr.cloneArr(i);return g.push(u),YS(r,u,t,g)});return n.concat(nr.flatten(c))}Xt.validateNoLeftRecursion=YS;function Up(r){var e=[];if(nr.isEmpty(r))return e;var t=nr.first(r);if(t instanceof co.NonTerminal)e.push(t.referencedRule);else if(t instanceof co.Alternative||t instanceof co.Option||t instanceof co.RepetitionMandatory||t instanceof co.RepetitionMandatoryWithSeparator||t instanceof co.RepetitionWithSeparator||t instanceof co.Repetition)e=e.concat(Up(t.definition));else if(t instanceof co.Alternation)e=nr.flatten(nr.map(t.definition,function(o){return Up(o.definition)}));else if(!(t instanceof co.Terminal))throw Error("non exhaustive match");var i=(0,jS.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=nr.drop(r);return e.concat(Up(s))}else return e}Xt.getFirstNoneTerminal=Up;var qS=function(r){HS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(GS.GAstVisitor);function Wj(r,e){var t=new qS;r.accept(t);var i=t.alternations,n=nr.reduce(i,function(s,o){var a=nr.dropRight(o.definition),l=nr.map(a,function(c,u){var g=(0,pIe.nextPossibleTokensAfter)([c],[],null,1);return nr.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:jo.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(nr.compact(l))},[]);return n}Xt.validateEmptyOrAlternative=Wj;function zj(r,e,t){var i=new qS;r.accept(i);var n=i.alternations;n=(0,kr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=nr.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,yg.getLookaheadPathsForOr)(l,r,c,a),g=IIe(u,a,r,t),f=eG(u,a,r,t);return o.concat(g,f)},[]);return s}Xt.validateAmbiguousAlternationAlternatives=zj;var tG=function(r){HS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(GS.GAstVisitor);Xt.RepetionCollector=tG;function _j(r,e){var t=new qS;r.accept(t);var i=t.alternations,n=nr.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:jo.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Xt.validateTooManyAlts=_j;function Vj(r,e,t){var i=[];return(0,kr.forEach)(r,function(n){var s=new tG;n.accept(s);var o=s.allProductions;(0,kr.forEach)(o,function(a){var l=(0,yg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,yg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,kr.isEmpty)((0,kr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:jo.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Xt.validateSomeNonEmptyLookaheadPath=Vj;function IIe(r,e,t,i){var n=[],s=(0,kr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,kr.forEach)(l,function(u){var g=[c];(0,kr.forEach)(r,function(f,h){c!==h&&(0,yg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,yg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=nr.map(s,function(a){var l=(0,kr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:jo.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function eG(r,e,t,i){var n=[],s=(0,kr.reduce)(r,function(o,a,l){var c=(0,kr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,kr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,kr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.validateGrammar=wg.resolveGrammar=void 0;var WS=Yt(),yIe=Lj(),wIe=JS(),rG=Tp();function BIe(r){r=(0,WS.defaults)(r,{errMsgProvider:rG.defaultGrammarResolverErrorProvider});var e={};return(0,WS.forEach)(r.rules,function(t){e[t.name]=t}),(0,yIe.resolveGrammar)(e,r.errMsgProvider)}wg.resolveGrammar=BIe;function bIe(r){return r=(0,WS.defaults)(r,{errMsgProvider:rG.defaultGrammarValidatorErrorProvider}),(0,wIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}wg.validateGrammar=bIe});var Bg=w(Sn=>{"use strict";var Hp=Sn&&Sn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Sn,"__esModule",{value:!0});Sn.EarlyExitException=Sn.NotAllInputParsedException=Sn.NoViableAltException=Sn.MismatchedTokenException=Sn.isRecognitionException=void 0;var QIe=Yt(),nG="MismatchedTokenException",sG="NoViableAltException",oG="EarlyExitException",aG="NotAllInputParsedException",AG=[nG,sG,oG,aG];Object.freeze(AG);function SIe(r){return(0,QIe.contains)(AG,r.name)}Sn.isRecognitionException=SIe;var ZI=function(r){Hp(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),vIe=function(r){Hp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=nG,s}return e}(ZI);Sn.MismatchedTokenException=vIe;var xIe=function(r){Hp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=sG,s}return e}(ZI);Sn.NoViableAltException=xIe;var kIe=function(r){Hp(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=aG,n}return e}(ZI);Sn.NotAllInputParsedException=kIe;var PIe=function(r){Hp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=oG,s}return e}(ZI);Sn.EarlyExitException=PIe});var _S=w(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.attemptInRepetitionRecovery=Yi.Recoverable=Yi.InRuleRecoveryException=Yi.IN_RULE_RECOVERY_EXCEPTION=Yi.EOF_FOLLOW_KEY=void 0;var $I=XA(),xs=Yt(),DIe=Bg(),RIe=TS(),FIe=$n();Yi.EOF_FOLLOW_KEY={};Yi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function zS(r){this.name=Yi.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Yi.InRuleRecoveryException=zS;zS.prototype=Error.prototype;var NIe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,xs.has)(e,"recoveryEnabled")?e.recoveryEnabled:FIe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=lG)},r.prototype.getTokenToInsert=function(e){var t=(0,$I.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),m=new DIe.MismatchedTokenException(p,u,s.LA(0));m.resyncedTokens=(0,xs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new zS("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,xs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,xs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,xs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,xs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Yi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,xs.map)(t,function(n,s){return s===0?Yi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,xs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,xs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Yi.EOF_FOLLOW_KEY)return[$I.EOF];var t=e.ruleName+e.idxInCallingRule+RIe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,$I.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,xs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,xs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,xs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Yi.Recoverable=NIe;function lG(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=$I.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Yi.attemptInRepetitionRecovery=lG});var ey=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.LooksAhead=void 0;var qa=Kp(),uo=Yt(),cG=$n(),Ja=ey(),Dc=Lp(),TIe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,uo.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:cG.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,uo.has)(e,"maxLookahead")?e.maxLookahead:cG.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,uo.isES2015MapSupported)()?new Map:[],(0,uo.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,uo.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Dc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,uo.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Dc.getProductionDslName)(g)+f,function(){var h=(0,qa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Ja.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Ja.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,uo.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Ja.MANY_IDX,qa.PROD_TYPE.REPETITION,g.maxLookahead,(0,Dc.getProductionDslName)(g))}),(0,uo.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Ja.OPTION_IDX,qa.PROD_TYPE.OPTION,g.maxLookahead,(0,Dc.getProductionDslName)(g))}),(0,uo.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Ja.AT_LEAST_ONE_IDX,qa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Dc.getProductionDslName)(g))}),(0,uo.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Ja.AT_LEAST_ONE_SEP_IDX,qa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Dc.getProductionDslName)(g))}),(0,uo.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Ja.MANY_SEP_IDX,qa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Dc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,qa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Ja.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,qa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,qa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Ja.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();ty.LooksAhead=TIe});var gG=w(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.addNoneTerminalToCst=Go.addTerminalToCst=Go.setNodeLocationFull=Go.setNodeLocationOnlyOffset=void 0;function OIe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(el,"__esModule",{value:!0});el.defineNameProp=el.functionName=el.classNameFromInstance=void 0;var HIe=Yt();function jIe(r){return fG(r.constructor)}el.classNameFromInstance=jIe;var hG="name";function fG(r){var e=r.name;return e||"anonymous"}el.functionName=fG;function GIe(r,e){var t=Object.getOwnPropertyDescriptor(r,hG);return(0,HIe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,hG,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}el.defineNameProp=GIe});var EG=w(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.validateRedundantMethods=Di.validateMissingCstMethods=Di.validateVisitor=Di.CstVisitorDefinitionError=Di.createBaseVisitorConstructorWithDefaults=Di.createBaseSemanticVisitorConstructor=Di.defaultVisit=void 0;var ks=Yt(),jp=VS();function pG(r,e){for(var t=(0,ks.keys)(r),i=t.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Di.createBaseSemanticVisitorConstructor=YIe;function qIe(r,e,t){var i=function(){};(0,jp.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ks.forEach)(e,function(s){n[s]=pG}),i.prototype=n,i.prototype.constructor=i,i}Di.createBaseVisitorConstructorWithDefaults=qIe;var XS;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(XS=Di.CstVisitorDefinitionError||(Di.CstVisitorDefinitionError={}));function dG(r,e){var t=CG(r,e),i=mG(r,e);return t.concat(i)}Di.validateVisitor=dG;function CG(r,e){var t=(0,ks.map)(e,function(i){if(!(0,ks.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,jp.functionName)(r.constructor)+" CST Visitor.",type:XS.MISSING_METHOD,methodName:i}});return(0,ks.compact)(t)}Di.validateMissingCstMethods=CG;var JIe=["constructor","visit","validateVisitor"];function mG(r,e){var t=[];for(var i in r)(0,ks.isFunction)(r[i])&&!(0,ks.contains)(JIe,i)&&!(0,ks.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,jp.functionName)(r.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:XS.REDUNDANT_METHOD,methodName:i});return t}Di.validateRedundantMethods=mG});var yG=w(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.TreeBuilder=void 0;var bg=gG(),ni=Yt(),IG=EG(),WIe=$n(),zIe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ni.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:WIe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ni.NOOP,this.cstFinallyStateUpdate=ni.NOOP,this.cstPostTerminal=ni.NOOP,this.cstPostNonTerminal=ni.NOOP,this.cstPostRule=ni.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=bg.setNodeLocationFull,this.setNodeLocationFromNode=bg.setNodeLocationFull,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=bg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=bg.setNodeLocationOnlyOffset,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=ni.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,bg.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,bg.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ni.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,IG.createBaseSemanticVisitorConstructor)(this.className,(0,ni.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ni.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,IG.createBaseVisitorConstructorWithDefaults)(this.className,(0,ni.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();ry.TreeBuilder=zIe});var BG=w(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.LexerAdapter=void 0;var wG=$n(),_Ie=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):wG.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?wG.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();iy.LexerAdapter=_Ie});var QG=w(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.RecognizerApi=void 0;var bG=Yt(),VIe=Bg(),ZS=$n(),XIe=Tp(),ZIe=JS(),$Ie=bn(),eye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=ZS.DEFAULT_RULE_CONFIG),(0,bG.contains)(this.definedRulesNames,e)){var n=XIe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:ZS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=ZS.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,ZIe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,VIe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,$Ie.serializeGrammar)((0,bG.values)(this.gastProductionsCache))},r}();ny.RecognizerApi=eye});var kG=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.RecognizerEngine=void 0;var Fr=Yt(),es=ey(),oy=Bg(),SG=Kp(),Qg=Mp(),vG=$n(),tye=_S(),xG=XA(),Gp=mg(),rye=VS(),iye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,rye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Gp.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Fr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Fr.isArray)(e)){if((0,Fr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Fr.isArray)(e))this.tokensMap=(0,Fr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Fr.has)(e,"modes")&&(0,Fr.every)((0,Fr.flatten)((0,Fr.values)(e.modes)),Gp.isTokenType)){var i=(0,Fr.flatten)((0,Fr.values)(e.modes)),n=(0,Fr.uniq)(i);this.tokensMap=(0,Fr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Fr.isObject)(e))this.tokensMap=(0,Fr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=xG.EOF;var s=(0,Fr.every)((0,Fr.values)(e),function(o){return(0,Fr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Gp.tokenStructuredMatcherNoCategories:Gp.tokenStructuredMatcher,(0,Gp.augmentTokenTypes)((0,Fr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Fr.has)(i,"resyncEnabled")?i.resyncEnabled:vG.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Fr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:vG.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(es.OR_IDX,t),n=(0,Fr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new oy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,oy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new oy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===tye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Fr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),xG.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();sy.RecognizerEngine=iye});var DG=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.ErrorHandler=void 0;var $S=Bg(),ev=Yt(),PG=Kp(),nye=$n(),sye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,ev.has)(e,"errorMessageProvider")?e.errorMessageProvider:nye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,$S.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,ev.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,ev.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,PG.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new $S.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,PG.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new $S.NoViableAltException(c,this.LA(1),l))},r}();ay.ErrorHandler=sye});var NG=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.ContentAssist=void 0;var RG=Mp(),FG=Yt(),oye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,FG.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,RG.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,FG.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new RG.NextAfterTokenWalker(n,e).startWalking();return s},r}();Ay.ContentAssist=oye});var jG=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GastRecorder=void 0;var vn=Yt(),Yo=bn(),aye=Dp(),LG=mg(),TG=XA(),Aye=$n(),lye=ey(),cy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(cy);var OG=!0,MG=Math.pow(2,lye.BITS_FOR_OCCURRENCE_IDX)-1,KG=(0,TG.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:aye.Lexer.NA});(0,LG.augmentTokenTypes)([KG]);var UG=(0,TG.createTokenInstance)(KG,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(UG);var cye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},gye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Aye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Yo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Yp.call(this,Yo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Yp.call(this,Yo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Yp.call(this,Yo.RepetitionMandatoryWithSeparator,t,e,OG)},r.prototype.manyInternalRecord=function(e,t){Yp.call(this,Yo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Yp.call(this,Yo.RepetitionWithSeparator,t,e,OG)},r.prototype.orInternalRecord=function(e,t){return uye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(uy(t),!e||(0,vn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,vn.peek)(this.recordingProdStack),o=e.ruleName,a=new Yo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?cye:cy},r.prototype.consumeInternalRecord=function(e,t,i){if(uy(t),!(0,LG.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,vn.peek)(this.recordingProdStack),o=new Yo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),UG},r}();ly.GastRecorder=gye;function Yp(r,e,t,i){i===void 0&&(i=!1),uy(t);var n=(0,vn.peek)(this.recordingProdStack),s=(0,vn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,vn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),cy}function uye(r,e){var t=this;uy(e);var i=(0,vn.peek)(this.recordingProdStack),n=(0,vn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Yo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,vn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,vn.some)(s,function(l){return(0,vn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,vn.forEach)(s,function(l){var c=new Yo.Alternative({definition:[]});o.definition.push(c),(0,vn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,vn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),cy}function HG(r){return r===0?"":""+r}function uy(r){if(r<0||r>MG){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+(MG+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var YG=w(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.PerformanceTracer=void 0;var GG=Yt(),fye=$n(),hye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,GG.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:Infinity,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=fye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,GG.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();gy.PerformanceTracer=hye});var qG=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.applyMixins=void 0;function pye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}fy.applyMixins=pye});var $n=w(Er=>{"use strict";var JG=Er&&Er.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Er,"__esModule",{value:!0});Er.EmbeddedActionsParser=Er.CstParser=Er.Parser=Er.EMPTY_ALT=Er.ParserDefinitionErrorType=Er.DEFAULT_RULE_CONFIG=Er.DEFAULT_PARSER_CONFIG=Er.END_OF_FILE=void 0;var an=Yt(),dye=Dj(),WG=XA(),zG=Tp(),_G=iG(),Cye=_S(),mye=uG(),Eye=yG(),Iye=BG(),yye=QG(),wye=kG(),Bye=DG(),bye=NG(),Qye=jG(),Sye=YG(),vye=qG();Er.END_OF_FILE=(0,WG.createTokenInstance)(WG.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Er.END_OF_FILE);Er.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:zG.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Er.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var xye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(xye=Er.ParserDefinitionErrorType||(Er.ParserDefinitionErrorType={}));function kye(r){return r===void 0&&(r=void 0),function(){return r}}Er.EMPTY_ALT=kye;var hy=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,an.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,an.has)(t,"skipValidations")?t.skipValidations:Er.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,an.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,an.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,_G.resolveGrammar)({rules:(0,an.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,an.isEmpty)(n)&&e.skipValidations===!1){var s=(0,_G.validateGrammar)({rules:(0,an.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,an.values)(e.tokensMap),errMsgProvider:zG.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,an.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,dye.computeAllProdsFollows)((0,an.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,an.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,an.isEmpty)(e.definitionErrors))throw t=(0,an.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+t.join(` -------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Er.Parser=hy;(0,vye.applyMixins)(hy,[Cye.Recoverable,mye.LooksAhead,Eye.TreeBuilder,Iye.LexerAdapter,wye.RecognizerEngine,yye.RecognizerApi,Bye.ErrorHandler,bye.ContentAssist,Qye.GastRecorder,Sye.PerformanceTracer]);var Pye=function(r){JG(e,r);function e(t,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(hy);Er.CstParser=Pye;var Dye=function(r){JG(e,r);function e(t,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(hy);Er.EmbeddedActionsParser=Dye});var XG=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.createSyntaxDiagramsCode=void 0;var VG=IS();function Rye(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+VG.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+VG.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` - - - - -`,u=` -
-`,g=` - -`,f=` - -`;return a+l+c+u+g+f}py.createSyntaxDiagramsCode=Rye});var eY=w(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Parser=Ve.createSyntaxDiagramsCode=Ve.clearCache=Ve.GAstVisitor=Ve.serializeProduction=Ve.serializeGrammar=Ve.Terminal=Ve.Rule=Ve.RepetitionWithSeparator=Ve.RepetitionMandatoryWithSeparator=Ve.RepetitionMandatory=Ve.Repetition=Ve.Option=Ve.NonTerminal=Ve.Alternative=Ve.Alternation=Ve.defaultLexerErrorProvider=Ve.NoViableAltException=Ve.NotAllInputParsedException=Ve.MismatchedTokenException=Ve.isRecognitionException=Ve.EarlyExitException=Ve.defaultParserErrorProvider=Ve.tokenName=Ve.tokenMatcher=Ve.tokenLabel=Ve.EOF=Ve.createTokenInstance=Ve.createToken=Ve.LexerDefinitionErrorType=Ve.Lexer=Ve.EMPTY_ALT=Ve.ParserDefinitionErrorType=Ve.EmbeddedActionsParser=Ve.CstParser=Ve.VERSION=void 0;var Fye=IS();Object.defineProperty(Ve,"VERSION",{enumerable:!0,get:function(){return Fye.VERSION}});var dy=$n();Object.defineProperty(Ve,"CstParser",{enumerable:!0,get:function(){return dy.CstParser}});Object.defineProperty(Ve,"EmbeddedActionsParser",{enumerable:!0,get:function(){return dy.EmbeddedActionsParser}});Object.defineProperty(Ve,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return dy.ParserDefinitionErrorType}});Object.defineProperty(Ve,"EMPTY_ALT",{enumerable:!0,get:function(){return dy.EMPTY_ALT}});var ZG=Dp();Object.defineProperty(Ve,"Lexer",{enumerable:!0,get:function(){return ZG.Lexer}});Object.defineProperty(Ve,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return ZG.LexerDefinitionErrorType}});var Sg=XA();Object.defineProperty(Ve,"createToken",{enumerable:!0,get:function(){return Sg.createToken}});Object.defineProperty(Ve,"createTokenInstance",{enumerable:!0,get:function(){return Sg.createTokenInstance}});Object.defineProperty(Ve,"EOF",{enumerable:!0,get:function(){return Sg.EOF}});Object.defineProperty(Ve,"tokenLabel",{enumerable:!0,get:function(){return Sg.tokenLabel}});Object.defineProperty(Ve,"tokenMatcher",{enumerable:!0,get:function(){return Sg.tokenMatcher}});Object.defineProperty(Ve,"tokenName",{enumerable:!0,get:function(){return Sg.tokenName}});var Nye=Tp();Object.defineProperty(Ve,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Nye.defaultParserErrorProvider}});var qp=Bg();Object.defineProperty(Ve,"EarlyExitException",{enumerable:!0,get:function(){return qp.EarlyExitException}});Object.defineProperty(Ve,"isRecognitionException",{enumerable:!0,get:function(){return qp.isRecognitionException}});Object.defineProperty(Ve,"MismatchedTokenException",{enumerable:!0,get:function(){return qp.MismatchedTokenException}});Object.defineProperty(Ve,"NotAllInputParsedException",{enumerable:!0,get:function(){return qp.NotAllInputParsedException}});Object.defineProperty(Ve,"NoViableAltException",{enumerable:!0,get:function(){return qp.NoViableAltException}});var Lye=PS();Object.defineProperty(Ve,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Lye.defaultLexerErrorProvider}});var qo=bn();Object.defineProperty(Ve,"Alternation",{enumerable:!0,get:function(){return qo.Alternation}});Object.defineProperty(Ve,"Alternative",{enumerable:!0,get:function(){return qo.Alternative}});Object.defineProperty(Ve,"NonTerminal",{enumerable:!0,get:function(){return qo.NonTerminal}});Object.defineProperty(Ve,"Option",{enumerable:!0,get:function(){return qo.Option}});Object.defineProperty(Ve,"Repetition",{enumerable:!0,get:function(){return qo.Repetition}});Object.defineProperty(Ve,"RepetitionMandatory",{enumerable:!0,get:function(){return qo.RepetitionMandatory}});Object.defineProperty(Ve,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return qo.RepetitionMandatoryWithSeparator}});Object.defineProperty(Ve,"RepetitionWithSeparator",{enumerable:!0,get:function(){return qo.RepetitionWithSeparator}});Object.defineProperty(Ve,"Rule",{enumerable:!0,get:function(){return qo.Rule}});Object.defineProperty(Ve,"Terminal",{enumerable:!0,get:function(){return qo.Terminal}});var $G=bn();Object.defineProperty(Ve,"serializeGrammar",{enumerable:!0,get:function(){return $G.serializeGrammar}});Object.defineProperty(Ve,"serializeProduction",{enumerable:!0,get:function(){return $G.serializeProduction}});var Tye=Eg();Object.defineProperty(Ve,"GAstVisitor",{enumerable:!0,get:function(){return Tye.GAstVisitor}});function Oye(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. - It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}Ve.clearCache=Oye;var Mye=XG();Object.defineProperty(Ve,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Mye.createSyntaxDiagramsCode}});var Kye=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();Ve.Parser=Kye});var iY=w((Z$e,tY)=>{var Cy=eY(),Wa=Cy.createToken,rY=Cy.tokenMatcher,tv=Cy.Lexer,Uye=Cy.EmbeddedActionsParser;tY.exports=r=>{let e=Wa({name:"LogicalOperator",pattern:tv.NA}),t=Wa({name:"Or",pattern:/\|/,categories:e}),i=Wa({name:"Xor",pattern:/\^/,categories:e}),n=Wa({name:"And",pattern:/&/,categories:e}),s=Wa({name:"Not",pattern:/!/}),o=Wa({name:"LParen",pattern:/\(/}),a=Wa({name:"RParen",pattern:/\)/}),l=Wa({name:"Query",pattern:r}),u=[Wa({name:"WhiteSpace",pattern:/\s+/,group:tv.SKIPPED}),t,i,n,o,a,s,e,l],g=new tv(u);class f extends Uye{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let b=y,v=this.CONSUME(e),x=this.SUBRULE2(this.atomicExpression);rY(v,t)?y=T=>b(T)||x(T):rY(v,i)?y=T=>!!(b(T)^x(T)):y=T=>b(T)&&x(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var nY=w(my=>{var Hye=iY();my.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Hye(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};my.parse=my.makeParser()});var oY=w((eet,sY)=>{"use strict";sY.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 rv=w((tet,aY)=>{var Jp=oY(),AY={};for(let r of Object.keys(Jp))AY[Jp[r]]=r;var at={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"]}};aY.exports=at;for(let r of Object.keys(at)){if(!("channels"in at[r]))throw new Error("missing channels property: "+r);if(!("labels"in at[r]))throw new Error("missing channel labels property: "+r);if(at[r].labels.length!==at[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=at[r];delete at[r].channels,delete at[r].labels,Object.defineProperty(at[r],"channels",{value:e}),Object.defineProperty(at[r],"labels",{value:t})}at.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};at.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};at.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=at.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};at.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function jye(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}at.rgb.keyword=function(r){let e=AY[r];if(e)return e;let t=Infinity,i;for(let n of Object.keys(Jp)){let s=Jp[n],o=jye(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};at.rgb.lab=function(r){let e=at.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};at.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};at.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};at.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};at.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};at.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};at.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};at.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};at.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};at.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};at.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};at.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};at.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?at.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};at.hsv.ansi16=function(r){return at.rgb.ansi16(at.hsv.rgb(r),r[2])};at.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?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(i/255*5)};at.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};at.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};at.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};at.hex.rgb=function(r){let e=r.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 i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};at.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};at.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};at.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};at.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};at.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};at.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};at.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};at.hwb.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=1-t,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};at.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};at.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};at.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};at.gray.hsl=function(r){return[0,0,r[0]]};at.gray.hsv=at.gray.hsl;at.gray.hwb=function(r){return[0,100,r[0]]};at.gray.cmyk=function(r){return[0,0,0,r[0]]};at.gray.lab=function(r){return[r[0],0,0]};at.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};at.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var cY=w((ret,lY)=>{var Ey=rv();function Gye(){let r={},e=Object.keys(Ey);for(let t=e.length,i=0;i{var iv=rv(),Wye=cY(),vg={},zye=Object.keys(iv);function _ye(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Vye(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{vg[r]={},Object.defineProperty(vg[r],"channels",{value:iv[r].channels}),Object.defineProperty(vg[r],"labels",{value:iv[r].labels});let e=Wye(r);Object.keys(e).forEach(i=>{let n=e[i];vg[r][i]=Vye(n),vg[r][i].raw=_ye(n)})});uY.exports=vg});var mY=w((net,fY)=>{"use strict";var hY=(r,e)=>(...t)=>`[${r(...t)+e}m`,pY=(r,e)=>(...t)=>{let i=r(...t);return`[${38+e};5;${i}m`},dY=(r,e)=>(...t)=>{let i=r(...t);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Iy=r=>r,CY=(r,e,t)=>[r,e,t],xg=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},nv,kg=(r,e,t,i)=>{nv===void 0&&(nv=gY());let n=i?10:0,s={};for(let[o,a]of Object.entries(nv)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Xye(){let r=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,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="",e.bgColor.close="",xg(e.color,"ansi",()=>kg(hY,"ansi16",Iy,!1)),xg(e.color,"ansi256",()=>kg(pY,"ansi256",Iy,!1)),xg(e.color,"ansi16m",()=>kg(dY,"rgb",CY,!1)),xg(e.bgColor,"ansi",()=>kg(hY,"ansi16",Iy,!0)),xg(e.bgColor,"ansi256",()=>kg(pY,"ansi256",Iy,!0)),xg(e.bgColor,"ansi16m",()=>kg(dY,"rgb",CY,!0)),e}Object.defineProperty(fY,"exports",{enumerable:!0,get:Xye})});var IY=w((set,EY)=>{"use strict";EY.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Zye=require("os"),wY=require("tty"),Ps=IY(),{env:gi}=process,tl;Ps("no-color")||Ps("no-colors")||Ps("color=false")||Ps("color=never")?tl=0:(Ps("color")||Ps("colors")||Ps("color=true")||Ps("color=always"))&&(tl=1);"FORCE_COLOR"in gi&&(gi.FORCE_COLOR==="true"?tl=1:gi.FORCE_COLOR==="false"?tl=0:tl=gi.FORCE_COLOR.length===0?1:Math.min(parseInt(gi.FORCE_COLOR,10),3));function sv(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function ov(r,e){if(tl===0)return 0;if(Ps("color=16m")||Ps("color=full")||Ps("color=truecolor"))return 3;if(Ps("color=256"))return 2;if(r&&!e&&tl===void 0)return 0;let t=tl||0;if(gi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Zye.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in gi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in gi)||gi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in gi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(gi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in gi)return 1;if(gi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in gi){let i=parseInt((gi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(gi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(gi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(gi.TERM)||"COLORTERM"in gi?1:t}function $ye(r){let e=ov(r,r&&r.isTTY);return sv(e)}yY.exports={supportsColor:$ye,stdout:sv(ov(!0,wY.isatty(1))),stderr:sv(ov(!0,wY.isatty(2)))}});var QY=w((aet,bY)=>{"use strict";var ewe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},twe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r -`:` -`)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};bY.exports={stringReplaceAll:ewe,stringEncaseCRLFWithFirstIndex:twe}});var PY=w((Aet,SY)=>{"use strict";var rwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,vY=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,iwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,nwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,swe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function xY(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):swe.get(r)||r}function owe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(iwe))t.push(n[2].replace(nwe,(a,l,c)=>l?xY(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function awe(r){vY.lastIndex=0;let e=[],t;for(;(t=vY.exec(r))!==null;){let i=t[1];if(t[2]){let n=owe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function kY(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}SY.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(rwe,(s,o,a,l,c,u)=>{if(o)n.push(xY(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:kY(r,t)(g)),t.push({inverse:a,styles:awe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(kY(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var uv=w((cet,DY)=>{"use strict";var Wp=mY(),{stdout:av,stderr:Av}=BY(),{stringReplaceAll:Awe,stringEncaseCRLFWithFirstIndex:lwe}=QY(),RY=["ansi","ansi","ansi256","ansi16m"],Pg=Object.create(null),cwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=av?av.level:0;r.level=e.level===void 0?t:e.level},FY=class{constructor(e){return NY(e)}},NY=r=>{let e={};return cwe(e,r),e.template=(...t)=>uwe(e.template,...t),Object.setPrototypeOf(e,yy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=FY,e.template};function yy(r){return NY(r)}for(let[r,e]of Object.entries(Wp))Pg[r]={get(){let t=wy(this,lv(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};Pg.visible={get(){let r=wy(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var LY=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of LY)Pg[r]={get(){let{level:e}=this;return function(...t){let i=lv(Wp.color[RY[e]][r](...t),Wp.color.close,this._styler);return wy(this,i,this._isEmpty)}}};for(let r of LY){let e="bg"+r[0].toUpperCase()+r.slice(1);Pg[e]={get(){let{level:t}=this;return function(...i){let n=lv(Wp.bgColor[RY[t]][r](...i),Wp.bgColor.close,this._styler);return wy(this,n,this._isEmpty)}}}}var gwe=Object.defineProperties(()=>{},te(N({},Pg),{level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}})),lv=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},wy=(r,e,t)=>{let i=(...n)=>fwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=gwe,i._generator=r,i._styler=e,i._isEmpty=t,i},fwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("")!==-1)for(;t!==void 0;)e=Awe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=lwe(e,n,i,s)),i+e+n},cv,uwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";Ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Ds.find=(r,e)=>r.nodes.find(t=>t.type===e);Ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!Ds.isInteger(r)||!Ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0==0?(r.invalid=!0,!0):!1;Ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0==0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var OY=By();TY.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&OY.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&OY.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var KY=w((fet,MY)=>{"use strict";MY.exports=function(r){return typeof r=="number"?r-r==0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var zY=w((het,UY)=>{"use strict";var HY=KY(),Rc=(r,e,t)=>{if(HY(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(HY(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=N({relaxZeros:!0},t);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(Rc.cache.hasOwnProperty(l))return Rc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=GY(r)||GY(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let m=u<0?Math.abs(u):1;p=jY(m,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=jY(c,u,f,i)),f.negatives=p,f.positives=h,f.result=hwe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Rc.cache[l]=f,f.result};function hwe(r,e,t){let i=gv(r,e,"-",!1,t)||[],n=gv(e,r,"",!1,t)||[],s=gv(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function dwe(r,e){let t=1,i=1,n=YY(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=YY(r,t);for(n=qY(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+JY(a.count),o=c+1;continue}t.isPadded&&(g=Iwe(c,t,i)),u.string=g+u.pattern+JY(u.count),s.push(u),o=c+1,a=u}return s}function gv(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!WY(e,"string",a)&&s.push(t+a),i&&WY(e,"string",a)&&s.push(t+a)}return s}function Cwe(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function WY(r,e,t){return r.some(i=>i[e]===t)}function YY(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function qY(r,e){return r-r%Math.pow(10,e)}function JY(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function mwe(r,e,t){return`[${r}${e-r==1?"":"-"}${e}]`}function GY(r){return/^-?(0+)\d/.test(r)}function Iwe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Rc.cache={};Rc.clearCache=()=>Rc.cache={};UY.exports=Rc});var pv=w((pet,_Y)=>{"use strict";var ywe=require("util"),VY=zY(),XY=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),wwe=r=>e=>r===!0?Number(e):String(e),fv=r=>typeof r=="number"||typeof r=="string"&&r!=="",_p=r=>Number.isInteger(+r),hv=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Bwe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,bwe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},ZY=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},$Y=(r,e,t,i)=>{if(t)return VY(r,e,N({wrap:!1},i));let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},eq=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return VY(r,e,t)},tq=(...r)=>new RangeError("Invalid range arguments: "+ywe.inspect(...r)),rq=(r,e,t)=>{if(t.strictRanges===!0)throw tq([r,e]);return[]},Swe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},vwe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw tq([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=hv(a)||hv(l)||hv(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Bwe(r,e,i)===!1,h=i.transform||wwe(f);if(i.toRegex&&t===1)return $Y(ZY(r,g),ZY(e,g),!0,i);let p={negatives:[],positives:[]},m=v=>p[v<0?"negatives":"positives"].push(Math.abs(v)),y=[],b=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(bwe(h(n,b),g,f)),n=o?n-t:n+t,b++;return i.toRegex===!0?t>1?Qwe(p,i):eq(y,null,N({wrap:!1},i)):y},xwe=(r,e,t=1,i={})=>{if(!_p(r)&&r.length>1||!_p(e)&&e.length>1)return rq(r,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return $Y(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?eq(u,null,{wrap:!1,options:i}):u},Qy=(r,e,t,i={})=>{if(e==null&&fv(r))return[r];if(!fv(r)||!fv(e))return rq(r,e,i);if(typeof t=="function")return Qy(r,e,1,{transform:t});if(XY(t))return Qy(r,e,0,t);let n=N({},i);return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,_p(t)?_p(r)&&_p(e)?vwe(r,e,t,n):xwe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!XY(t)?Swe(t,n):Qy(r,e,1,t)};_Y.exports=Qy});var sq=w((det,iq)=>{"use strict";var kwe=pv(),nq=By(),Pwe=(r,e={})=>{let t=(i,n={})=>{let s=nq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=nq.reduce(i.nodes),g=kwe(...u,te(N({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};iq.exports=Pwe});var Aq=w((Cet,oq)=>{"use strict";var Dwe=pv(),aq=by(),Dg=By(),Fc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?Dg.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Fc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Fc(n,s,t):n+s);return Dg.flatten(i)},Rwe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Fc(a.pop(),aq(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Fc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=Dg.reduce(n.nodes);if(Dg.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=Dwe(...g,e);f.length===0&&(f=aq(n,e)),a.push(Fc(a.pop(),f)),n.nodes=[];return}let l=Dg.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";lq.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var pq=w((Eet,uq)=>{"use strict";var Fwe=by(),{MAX_LENGTH:gq,CHAR_BACKSLASH:dv,CHAR_BACKTICK:Nwe,CHAR_COMMA:Lwe,CHAR_DOT:Twe,CHAR_LEFT_PARENTHESES:Owe,CHAR_RIGHT_PARENTHESES:Mwe,CHAR_LEFT_CURLY_BRACE:Kwe,CHAR_RIGHT_CURLY_BRACE:Uwe,CHAR_LEFT_SQUARE_BRACKET:fq,CHAR_RIGHT_SQUARE_BRACKET:hq,CHAR_DOUBLE_QUOTE:Hwe,CHAR_SINGLE_QUOTE:jwe,CHAR_NO_BREAK_SPACE:Gwe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Ywe}=cq(),qwe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(gq,t.maxLength):gq;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:Fwe(o)}]}m({type:"comma",value:f}),o.commas++;continue}if(f===Twe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let b=y[y.length-1];b.value+=a.value+f,a=b,o.ranges--;continue}m({type:"dot",value:f});continue}m({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=s[s.length-1],b=y.nodes.indexOf(o);y.nodes.splice(b,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};uq.exports=qwe});var mq=w((Iet,dq)=>{"use strict";var Cq=by(),Jwe=sq(),Wwe=Aq(),zwe=pq(),ts=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=ts.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(ts.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};ts.parse=(r,e={})=>zwe(r,e);ts.stringify=(r,e={})=>typeof r=="string"?Cq(ts.parse(r,e),e):Cq(r,e);ts.compile=(r,e={})=>(typeof r=="string"&&(r=ts.parse(r,e)),Jwe(r,e));ts.expand=(r,e={})=>{typeof r=="string"&&(r=ts.parse(r,e));let t=Wwe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};ts.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?ts.compile(r,e):ts.expand(r,e);dq.exports=ts});var Vp=w((yet,Eq)=>{"use strict";var _we=require("path"),Jo="\\\\/",Iq=`[^${Jo}]`,za="\\.",Vwe="\\+",Xwe="\\?",Sy="\\/",Zwe="(?=.)",yq="[^/]",Cv=`(?:${Sy}|$)`,wq=`(?:^|${Sy})`,mv=`${za}{1,2}${Cv}`,$we=`(?!${za})`,eBe=`(?!${wq}${mv})`,tBe=`(?!${za}{0,1}${Cv})`,rBe=`(?!${mv})`,iBe=`[^.${Sy}]`,nBe=`${yq}*?`,Bq={DOT_LITERAL:za,PLUS_LITERAL:Vwe,QMARK_LITERAL:Xwe,SLASH_LITERAL:Sy,ONE_CHAR:Zwe,QMARK:yq,END_ANCHOR:Cv,DOTS_SLASH:mv,NO_DOT:$we,NO_DOTS:eBe,NO_DOT_SLASH:tBe,NO_DOTS_SLASH:rBe,QMARK_NO_DOT:iBe,STAR:nBe,START_ANCHOR:wq},sBe=te(N({},Bq),{SLASH_LITERAL:`[${Jo}]`,QMARK:Iq,STAR:`${Iq}*?`,DOTS_SLASH:`${za}{1,2}(?:[${Jo}]|$)`,NO_DOT:`(?!${za})`,NO_DOTS:`(?!(?:^|[${Jo}])${za}{1,2}(?:[${Jo}]|$))`,NO_DOT_SLASH:`(?!${za}{0,1}(?:[${Jo}]|$))`,NO_DOTS_SLASH:`(?!${za}{1,2}(?:[${Jo}]|$))`,QMARK_NO_DOT:`[^.${Jo}]`,START_ANCHOR:`(?:^|[${Jo}])`,END_ANCHOR:`(?:[${Jo}]|$)`}),oBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Eq.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:oBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:_we.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?sBe:Bq}}});var Xp=w(xn=>{"use strict";var aBe=require("path"),ABe=process.platform==="win32",{REGEX_BACKSLASH:lBe,REGEX_REMOVE_BACKSLASH:cBe,REGEX_SPECIAL_CHARS:uBe,REGEX_SPECIAL_CHARS_GLOBAL:gBe}=Vp();xn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);xn.hasRegexChars=r=>uBe.test(r);xn.isRegexChar=r=>r.length===1&&xn.hasRegexChars(r);xn.escapeRegex=r=>r.replace(gBe,"\\$1");xn.toPosixSlashes=r=>r.replace(lBe,"/");xn.removeBackslashes=r=>r.replace(cBe,e=>e==="\\"?"":e);xn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};xn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:ABe===!0||aBe.sep==="\\";xn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?xn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};xn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};xn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Dq=w((Bet,bq)=>{"use strict";var Qq=Xp(),{CHAR_ASTERISK:Ev,CHAR_AT:fBe,CHAR_BACKWARD_SLASH:Zp,CHAR_COMMA:hBe,CHAR_DOT:Iv,CHAR_EXCLAMATION_MARK:yv,CHAR_FORWARD_SLASH:Sq,CHAR_LEFT_CURLY_BRACE:wv,CHAR_LEFT_PARENTHESES:Bv,CHAR_LEFT_SQUARE_BRACKET:pBe,CHAR_PLUS:dBe,CHAR_QUESTION_MARK:vq,CHAR_RIGHT_CURLY_BRACE:CBe,CHAR_RIGHT_PARENTHESES:xq,CHAR_RIGHT_SQUARE_BRACKET:mBe}=Vp(),kq=r=>r===Sq||r===Zp,Pq=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?Infinity:1)},EBe=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,f=!1,h=!1,p=!1,m=!1,y=!1,b=!1,v=!1,x=!1,T=!1,q=!1,Y=0,$,_,ne={value:"",depth:0,isGlob:!1},ee=()=>c>=i,A=()=>l.charCodeAt(c+1),oe=()=>($=_,l.charCodeAt(++c));for(;c0&&(Z=l.slice(0,u),l=l.slice(u),g-=u),ce&&p===!0&&g>0?(ce=l.slice(0,g),O=l.slice(g)):p===!0?(ce="",O=l):ce=l,ce&&ce!==""&&ce!=="/"&&ce!==l&&kq(ce.charCodeAt(ce.length-1))&&(ce=ce.slice(0,-1)),t.unescape===!0&&(O&&(O=Qq.removeBackslashes(O)),ce&&v===!0&&(ce=Qq.removeBackslashes(ce)));let L={prefix:Z,input:r,start:u,base:ce,glob:O,isBrace:f,isBracket:h,isGlob:p,isExtglob:m,isGlobstar:y,negated:x,negatedExtglob:T};if(t.tokens===!0&&(L.maxDepth=0,kq(_)||o.push(ne),L.tokens=o),t.parts===!0||t.tokens===!0){let de;for(let Be=0;Be{"use strict";var vy=Vp(),rs=Xp(),{MAX_LENGTH:xy,POSIX_REGEX_SOURCE:IBe,REGEX_NON_SPECIAL_CHARS:yBe,REGEX_SPECIAL_CHARS_BACKREF:wBe,REPLACEMENTS:Fq}=vy,BBe=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch(i){return r.map(n=>rs.escapeRegex(n)).join("..")}return t},Rg=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Nq=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=Fq[r]||r;let t=N({},e),i=typeof t.maxLength=="number"?Math.min(xy,t.maxLength):xy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=rs.isWindows(e),c=vy.globChars(l),u=vy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:b,NO_DOTS_SLASH:v,QMARK:x,QMARK_NO_DOT:T,STAR:q,START_ANCHOR:Y}=c,$=V=>`(${a}(?:(?!${Y}${V.dot?m:g}).)*?)`,_=t.dot?"":y,ne=t.dot?x:T,ee=t.bash===!0?$(t):q;t.capture&&(ee=`(${ee})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=rs.removePrefix(r,A),n=r.length;let oe=[],ce=[],Z=[],O=s,L,de=()=>A.index===n-1,Be=A.peek=(V=1)=>r[A.index+V],je=A.advance=()=>r[++A.index]||"",re=()=>r.slice(A.index+1),se=(V="",Qe=0)=>{A.consumed+=V,A.index+=Qe},be=V=>{A.output+=V.output!=null?V.output:V.value,se(V.value)},he=()=>{let V=1;for(;Be()==="!"&&(Be(2)!=="("||Be(3)==="?");)je(),A.start++,V++;return V%2==0?!1:(A.negated=!0,A.start++,!0)},Fe=V=>{A[V]++,Z.push(V)},Ke=V=>{A[V]--,Z.pop()},ke=V=>{if(O.type==="globstar"){let Qe=A.braces>0&&(V.type==="comma"||V.type==="brace"),le=V.extglob===!0||oe.length&&(V.type==="pipe"||V.type==="paren");V.type!=="slash"&&V.type!=="paren"&&!Qe&&!le&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=ee,A.output+=O.output)}if(oe.length&&V.type!=="paren"&&(oe[oe.length-1].inner+=V.value),(V.value||V.output)&&be(V),O&&O.type==="text"&&V.type==="text"){O.value+=V.value,O.output=(O.output||"")+V.value;return}V.prev=O,o.push(V),O=V},ve=(V,Qe)=>{let le=te(N({},u[Qe]),{conditions:1,inner:""});le.prev=O,le.parens=A.parens,le.output=A.output;let fe=(t.capture?"(":"")+le.open;Fe("parens"),ke({type:V,value:Qe,output:A.output?"":p}),ke({type:"paren",extglob:!0,value:je(),output:fe}),oe.push(le)},pe=V=>{let Qe=V.close+(t.capture?")":""),le;if(V.type==="negate"){let fe=ee;V.inner&&V.inner.length>1&&V.inner.includes("/")&&(fe=$(t)),(fe!==ee||de()||/^\)+$/.test(re()))&&(Qe=V.close=`)$))${fe}`),V.inner.includes("*")&&(le=re())&&/^\.[^\\/.]+$/.test(le)&&(Qe=V.close=`)${le})${fe})`),V.prev.type==="bos"&&(A.negatedExtglob=!0)}ke({type:"paren",extglob:!0,value:L,output:Qe}),Ke("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let V=!1,Qe=r.replace(wBe,(le,fe,gt,Ht,Mt,Ei)=>Ht==="\\"?(V=!0,le):Ht==="?"?fe?fe+Ht+(Mt?x.repeat(Mt.length):""):Ei===0?ne+(Mt?x.repeat(Mt.length):""):x.repeat(gt.length):Ht==="."?g.repeat(gt.length):Ht==="*"?fe?fe+Ht+(Mt?ee:""):ee:fe?le:`\\${le}`);return V===!0&&(t.unescape===!0?Qe=Qe.replace(/\\/g,""):Qe=Qe.replace(/\\+/g,le=>le.length%2==0?"\\\\":le?"\\":"")),Qe===r&&t.contains===!0?(A.output=r,A):(A.output=rs.wrapOutput(Qe,A,e),A)}for(;!de();){if(L=je(),L==="\0")continue;if(L==="\\"){let le=Be();if(le==="/"&&t.bash!==!0||le==="."||le===";")continue;if(!le){L+="\\",ke({type:"text",value:L});continue}let fe=/^\\+/.exec(re()),gt=0;if(fe&&fe[0].length>2&&(gt=fe[0].length,A.index+=gt,gt%2!=0&&(L+="\\")),t.unescape===!0?L=je():L+=je(),A.brackets===0){ke({type:"text",value:L});continue}}if(A.brackets>0&&(L!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&L===":"){let le=O.value.slice(1);if(le.includes("[")&&(O.posix=!0,le.includes(":"))){let fe=O.value.lastIndexOf("["),gt=O.value.slice(0,fe),Ht=O.value.slice(fe+2),Mt=IBe[Ht];if(Mt){O.value=gt+Mt,A.backtrack=!0,je(),!s.output&&o.indexOf(O)===1&&(s.output=p);continue}}}(L==="["&&Be()!==":"||L==="-"&&Be()==="]")&&(L=`\\${L}`),L==="]"&&(O.value==="["||O.value==="[^")&&(L=`\\${L}`),t.posix===!0&&L==="!"&&O.value==="["&&(L="^"),O.value+=L,be({value:L});continue}if(A.quotes===1&&L!=='"'){L=rs.escapeRegex(L),O.value+=L,be({value:L});continue}if(L==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&ke({type:"text",value:L});continue}if(L==="("){Fe("parens"),ke({type:"paren",value:L});continue}if(L===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(Rg("opening","("));let le=oe[oe.length-1];if(le&&A.parens===le.parens+1){pe(oe.pop());continue}ke({type:"paren",value:L,output:A.parens?")":"\\)"}),Ke("parens");continue}if(L==="["){if(t.nobracket===!0||!re().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(Rg("closing","]"));L=`\\${L}`}else Fe("brackets");ke({type:"bracket",value:L});continue}if(L==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){ke({type:"text",value:L,output:`\\${L}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(Rg("opening","["));ke({type:"text",value:L,output:`\\${L}`});continue}Ke("brackets");let le=O.value.slice(1);if(O.posix!==!0&&le[0]==="^"&&!le.includes("/")&&(L=`/${L}`),O.value+=L,be({value:L}),t.literalBrackets===!1||rs.hasRegexChars(le))continue;let fe=rs.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=fe,O.value=fe;continue}O.value=`(${a}${fe}|${O.value})`,A.output+=O.value;continue}if(L==="{"&&t.nobrace!==!0){Fe("braces");let le={type:"brace",value:L,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ce.push(le),ke(le);continue}if(L==="}"){let le=ce[ce.length-1];if(t.nobrace===!0||!le){ke({type:"text",value:L,output:L});continue}let fe=")";if(le.dots===!0){let gt=o.slice(),Ht=[];for(let Mt=gt.length-1;Mt>=0&&(o.pop(),gt[Mt].type!=="brace");Mt--)gt[Mt].type!=="dots"&&Ht.unshift(gt[Mt].value);fe=BBe(Ht,t),A.backtrack=!0}if(le.comma!==!0&&le.dots!==!0){let gt=A.output.slice(0,le.outputIndex),Ht=A.tokens.slice(le.tokensIndex);le.value=le.output="\\{",L=fe="\\}",A.output=gt;for(let Mt of Ht)A.output+=Mt.output||Mt.value}ke({type:"brace",value:L,output:fe}),Ke("braces"),ce.pop();continue}if(L==="|"){oe.length>0&&oe[oe.length-1].conditions++,ke({type:"text",value:L});continue}if(L===","){let le=L,fe=ce[ce.length-1];fe&&Z[Z.length-1]==="braces"&&(fe.comma=!0,le="|"),ke({type:"comma",value:L,output:le});continue}if(L==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}ke({type:"slash",value:L,output:h});continue}if(L==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let le=ce[ce.length-1];O.type="dots",O.output+=L,O.value+=L,le.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){ke({type:"text",value:L,output:g});continue}ke({type:"dot",value:L,output:g});continue}if(L==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){ve("qmark",L);continue}if(O&&O.type==="paren"){let fe=Be(),gt=L;if(fe==="<"&&!rs.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(fe)||fe==="<"&&!/<([!=]|\w+>)/.test(re()))&&(gt=`\\${L}`),ke({type:"text",value:L,output:gt});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){ke({type:"qmark",value:L,output:T});continue}ke({type:"qmark",value:L,output:x});continue}if(L==="!"){if(t.noextglob!==!0&&Be()==="("&&(Be(2)!=="?"||!/[!=<:]/.test(Be(3)))){ve("negate",L);continue}if(t.nonegate!==!0&&A.index===0){he();continue}}if(L==="+"){if(t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){ve("plus",L);continue}if(O&&O.value==="("||t.regex===!1){ke({type:"plus",value:L,output:f});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){ke({type:"plus",value:L});continue}ke({type:"plus",value:f});continue}if(L==="@"){if(t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){ke({type:"at",extglob:!0,value:L,output:""});continue}ke({type:"text",value:L});continue}if(L!=="*"){(L==="$"||L==="^")&&(L=`\\${L}`);let le=yBe.exec(re());le&&(L+=le[0],A.index+=le[0].length),ke({type:"text",value:L});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=L,O.output=ee,A.backtrack=!0,A.globstar=!0,se(L);continue}let V=re();if(t.noextglob!==!0&&/^\([^?]/.test(V)){ve("star",L);continue}if(O.type==="star"){if(t.noglobstar===!0){se(L);continue}let le=O.prev,fe=le.prev,gt=le.type==="slash"||le.type==="bos",Ht=fe&&(fe.type==="star"||fe.type==="globstar");if(t.bash===!0&&(!gt||V[0]&&V[0]!=="/")){ke({type:"star",value:L,output:""});continue}let Mt=A.braces>0&&(le.type==="comma"||le.type==="brace"),Ei=oe.length&&(le.type==="pipe"||le.type==="paren");if(!gt&&le.type!=="paren"&&!Mt&&!Ei){ke({type:"star",value:L,output:""});continue}for(;V.slice(0,3)==="/**";){let jt=r[A.index+4];if(jt&&jt!=="/")break;V=V.slice(3),se("/**",3)}if(le.type==="bos"&&de()){O.type="globstar",O.value+=L,O.output=$(t),A.output=O.output,A.globstar=!0,se(L);continue}if(le.type==="slash"&&le.prev.type!=="bos"&&!Ht&&de()){A.output=A.output.slice(0,-(le.output+O.output).length),le.output=`(?:${le.output}`,O.type="globstar",O.output=$(t)+(t.strictSlashes?")":"|$)"),O.value+=L,A.globstar=!0,A.output+=le.output+O.output,se(L);continue}if(le.type==="slash"&&le.prev.type!=="bos"&&V[0]==="/"){let jt=V[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(le.output+O.output).length),le.output=`(?:${le.output}`,O.type="globstar",O.output=`${$(t)}${h}|${h}${jt})`,O.value+=L,A.output+=le.output+O.output,A.globstar=!0,se(L+je()),ke({type:"slash",value:"/",output:""});continue}if(le.type==="bos"&&V[0]==="/"){O.type="globstar",O.value+=L,O.output=`(?:^|${h}|${$(t)}${h})`,A.output=O.output,A.globstar=!0,se(L+je()),ke({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=$(t),O.value+=L,A.output+=O.output,A.globstar=!0,se(L);continue}let Qe={type:"star",value:L,output:ee};if(t.bash===!0){Qe.output=".*?",(O.type==="bos"||O.type==="slash")&&(Qe.output=_+Qe.output),ke(Qe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){Qe.output=L,ke(Qe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=b,O.output+=b):t.dot===!0?(A.output+=v,O.output+=v):(A.output+=_,O.output+=_),Be()!=="*"&&(A.output+=p,O.output+=p)),ke(Qe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(Rg("closing","]"));A.output=rs.escapeLast(A.output,"["),Ke("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(Rg("closing",")"));A.output=rs.escapeLast(A.output,"("),Ke("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(Rg("closing","}"));A.output=rs.escapeLast(A.output,"{"),Ke("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&ke({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let V of A.tokens)A.output+=V.output!=null?V.output:V.value,V.suffix&&(A.output+=V.suffix)}return A};Nq.fastpaths=(r,e)=>{let t=N({},e),i=typeof t.maxLength=="number"?Math.min(xy,t.maxLength):xy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=Fq[r]||r;let s=rs.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=vy.globChars(s),m=t.dot?g:u,y=t.dot?f:u,b=t.capture?"":"?:",v={negated:!1,prefix:""},x=t.bash===!0?".*?":h;t.capture&&(x=`(${x})`);let T=_=>_.noglobstar===!0?x:`(${b}(?:(?!${p}${_.dot?c:o}).)*?)`,q=_=>{switch(_){case"*":return`${m}${l}${x}`;case".*":return`${o}${l}${x}`;case"*.*":return`${m}${x}${o}${l}${x}`;case"*/*":return`${m}${x}${a}${l}${y}${x}`;case"**":return m+T(t);case"**/*":return`(?:${m}${T(t)}${a})?${y}${l}${x}`;case"**/*.*":return`(?:${m}${T(t)}${a})?${y}${x}${o}${l}${x}`;case"**/.*":return`(?:${m}${T(t)}${a})?${o}${l}${x}`;default:{let ne=/^(.*?)\.(\w+)$/.exec(_);if(!ne)return;let ee=q(ne[1]);return ee?ee+o+ne[2]:void 0}}},Y=rs.removePrefix(r,v),$=q(Y);return $&&t.strictSlashes!==!0&&($+=`${a}?`),$};Rq.exports=Nq});var Oq=w((Qet,Tq)=>{"use strict";var bBe=require("path"),QBe=Dq(),bv=Lq(),Qv=Xp(),SBe=Vp(),vBe=r=>r&&typeof r=="object"&&!Array.isArray(r),_r=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(f=>_r(f,e,t));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=vBe(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Qv.isWindows(e),o=i?_r.compileRe(r,e):_r.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=te(N({},e),{ignore:null,onMatch:null,onResult:null});l=_r(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=_r.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(m),f===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};_r.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Qv.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=_r.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};_r.matchBase=(r,e,t,i=Qv.isWindows(t))=>(e instanceof RegExp?e:_r.makeRe(e,t)).test(bBe.basename(r));_r.isMatch=(r,e,t)=>_r(e,t)(r);_r.parse=(r,e)=>Array.isArray(r)?r.map(t=>_r.parse(t,e)):bv(r,te(N({},e),{fastpaths:!1}));_r.scan=(r,e)=>QBe(r,e);_r.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=_r.toRegex(a,e);return i===!0&&(l.state=r),l};_r.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=bv.fastpaths(r,e)),n.output||(n=bv(r,e)),_r.compileRe(n,e,t,i)};_r.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};_r.constants=SBe;Tq.exports=_r});var Sv=w((vet,Mq)=>{"use strict";Mq.exports=Oq()});var is=w((xet,Kq)=>{"use strict";var Uq=require("util"),Hq=mq(),Wo=Sv(),vv=Xp(),jq=r=>r===""||r==="./",Pr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Pr.match=Pr;Pr.matcher=(r,e)=>Wo(r,e);Pr.isMatch=(r,e,t)=>Wo(e,t)(r);Pr.any=Pr.isMatch;Pr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{t.onResult&&t.onResult(a),n.push(a.output)},o=Pr(r,e,te(N({},t),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};Pr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${Uq.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Pr.contains(r,i,t));if(typeof e=="string"){if(jq(r)||jq(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Pr.isMatch(r,e,te(N({},t),{contains:!0}))};Pr.matchKeys=(r,e,t)=>{if(!vv.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Pr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Pr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Wo(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Pr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Wo(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Pr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${Uq.inspect(r)}"`);return[].concat(e).every(i=>Wo(i,t)(r))};Pr.capture=(r,e,t)=>{let i=vv.isWindows(t),s=Wo.makeRe(String(r),te(N({},t),{capture:!0})).exec(i?vv.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Pr.makeRe=(...r)=>Wo.makeRe(...r);Pr.scan=(...r)=>Wo.scan(...r);Pr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of Hq(String(i),e))t.push(Wo.parse(n,e));return t};Pr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:Hq(r,e)};Pr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Pr.braces(r,te(N({},e),{expand:!0}))};Kq.exports=Pr});var Yq=w((ket,Gq)=>{"use strict";Gq.exports=({onlyFirst:r=!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,r?void 0:"g")}});var Jq=w((Pet,qq)=>{"use strict";var xBe=Yq();qq.exports=r=>typeof r=="string"?r.replace(xBe(),""):r});var AJ=w((zet,aJ)=>{"use strict";aJ.exports=(...r)=>[...new Set([].concat(...r))]});var jv=w((_et,lJ)=>{"use strict";var UBe=require("stream"),cJ=UBe.PassThrough,HBe=Array.prototype.slice;lJ.exports=jBe;function jBe(){let r=[],e=!1,t=HBe.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=cJ(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Fy,"__esModule",{value:!0});function GBe(r){return r.reduce((e,t)=>[].concat(e,t),[])}Fy.flatten=GBe;function YBe(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Fy.splitWhen=YBe});var fJ=w(Gv=>{"use strict";Object.defineProperty(Gv,"__esModule",{value:!0});function qBe(r){return r.code==="ENOENT"}Gv.isEnoentCodeError=qBe});var pJ=w(Yv=>{"use strict";Object.defineProperty(Yv,"__esModule",{value:!0});var hJ=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function JBe(r,e){return new hJ(r,e)}Yv.createDirentFromStats=JBe});var dJ=w(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});var WBe=require("path"),zBe=2,_Be=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function VBe(r){return r.replace(/\\/g,"/")}Kg.unixify=VBe;function XBe(r,e){return WBe.resolve(r,e)}Kg.makeAbsolute=XBe;function ZBe(r){return r.replace(_Be,"\\$2")}Kg.escape=ZBe;function $Be(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(zBe)}return r}Kg.removeLeadingDotSegment=$Be});var mJ=w((ett,CJ)=>{CJ.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var yJ=w((ttt,EJ)=>{var e0e=mJ(),IJ={"{":"}","(":")","[":"]"},t0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=IJ[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},r0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var i0e=yJ(),n0e=require("path").posix.dirname,s0e=require("os").platform()==="win32",qv="/",o0e=/\\/g,a0e=/[\{\[].*[\}\]]$/,A0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,l0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;wJ.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&s0e&&e.indexOf(qv)<0&&(e=e.replace(o0e,qv)),a0e.test(e)&&(e+=qv),e+="a";do e=n0e(e);while(i0e(e)||A0e.test(e));return e.replace(l0e,"$1")}});var RJ=w(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});var c0e=require("path"),u0e=BJ(),bJ=is(),g0e=Sv(),QJ="**",f0e="\\",h0e=/[*?]|^!/,p0e=/\[.*]/,d0e=/(?:^|[^!*+?@])\(.*\|.*\)/,C0e=/[!*+?@]\(.*\)/,m0e=/{.*(?:,|\.\.).*}/;function vJ(r,e={}){return!SJ(r,e)}si.isStaticPattern=vJ;function SJ(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(f0e)||h0e.test(r)||p0e.test(r)||d0e.test(r)||e.extglob!==!1&&C0e.test(r)||e.braceExpansion!==!1&&m0e.test(r))}si.isDynamicPattern=SJ;function E0e(r){return Ny(r)?r.slice(1):r}si.convertToPositivePattern=E0e;function I0e(r){return"!"+r}si.convertToNegativePattern=I0e;function Ny(r){return r.startsWith("!")&&r[1]!=="("}si.isNegativePattern=Ny;function xJ(r){return!Ny(r)}si.isPositivePattern=xJ;function y0e(r){return r.filter(Ny)}si.getNegativePatterns=y0e;function w0e(r){return r.filter(xJ)}si.getPositivePatterns=w0e;function B0e(r){return u0e(r,{flipBackslashes:!1})}si.getBaseDirectory=B0e;function b0e(r){return r.includes(QJ)}si.hasGlobStar=b0e;function kJ(r){return r.endsWith("/"+QJ)}si.endsWithSlashGlobStar=kJ;function Q0e(r){let e=c0e.basename(r);return kJ(r)||vJ(e)}si.isAffectDepthOfReadingPattern=Q0e;function S0e(r){return r.reduce((e,t)=>e.concat(PJ(t)),[])}si.expandPatternsWithBraceExpansion=S0e;function PJ(r){return bJ.braces(r,{expand:!0,nodupes:!0})}si.expandBraceExpansion=PJ;function v0e(r,e){let t=g0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}si.getPatternParts=v0e;function DJ(r,e){return bJ.makeRe(r,e)}si.makeRe=DJ;function x0e(r,e){return r.map(t=>DJ(t,e))}si.convertPatternsToRe=x0e;function k0e(r,e){return e.some(t=>t.test(r))}si.matchAny=k0e});var NJ=w(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});var P0e=jv();function D0e(r){let e=P0e(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>FJ(r)),e.once("end",()=>FJ(r)),e}Jv.merge=D0e;function FJ(r){r.forEach(e=>e.emit("close"))}});var LJ=w(Ly=>{"use strict";Object.defineProperty(Ly,"__esModule",{value:!0});function R0e(r){return typeof r=="string"}Ly.isString=R0e;function F0e(r){return r===""}Ly.isEmpty=F0e});var Xa=w(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});var N0e=gJ();Va.array=N0e;var L0e=fJ();Va.errno=L0e;var T0e=pJ();Va.fs=T0e;var O0e=dJ();Va.path=O0e;var M0e=RJ();Va.pattern=M0e;var K0e=NJ();Va.stream=K0e;var U0e=LJ();Va.string=U0e});var UJ=w(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});var Mc=Xa();function H0e(r,e){let t=TJ(r),i=OJ(r,e.ignore),n=t.filter(l=>Mc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Mc.pattern.isDynamicPattern(l,e)),o=Wv(n,i,!1),a=Wv(s,i,!0);return o.concat(a)}Za.generate=H0e;function Wv(r,e,t){let i=MJ(r);return"."in i?[zv(".",r,e,t)]:KJ(i,e,t)}Za.convertPatternsToTasks=Wv;function TJ(r){return Mc.pattern.getPositivePatterns(r)}Za.getPositivePatterns=TJ;function OJ(r,e){return Mc.pattern.getNegativePatterns(r).concat(e).map(Mc.pattern.convertToPositivePattern)}Za.getNegativePatternsAsPositive=OJ;function MJ(r){let e={};return r.reduce((t,i)=>{let n=Mc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Za.groupPatternsByBaseDirectory=MJ;function KJ(r,e,t){return Object.keys(r).map(i=>zv(i,r[i],e,t))}Za.convertPatternGroupsToTasks=KJ;function zv(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Mc.pattern.convertToNegativePattern))}}Za.convertPatternGroupToTask=zv});var jJ=w(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});Ty.read=void 0;function j0e(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){HJ(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){_v(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){HJ(t,s);return}_v(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),_v(t,o)})})}Ty.read=j0e;function HJ(r,e){r(e)}function _v(r,e){r(null,e)}});var GJ=w(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.read=void 0;function G0e(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}Oy.read=G0e});var YJ=w(rl=>{"use strict";Object.defineProperty(rl,"__esModule",{value:!0});rl.createFileSystemAdapter=rl.FILE_SYSTEM_ADAPTER=void 0;var My=require("fs");rl.FILE_SYSTEM_ADAPTER={lstat:My.lstat,stat:My.stat,lstatSync:My.lstatSync,statSync:My.statSync};function Y0e(r){return r===void 0?rl.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},rl.FILE_SYSTEM_ADAPTER),r)}rl.createFileSystemAdapter=Y0e});var JJ=w(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});var q0e=YJ(),qJ=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=q0e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};Vv.default=qJ});var Kc=w(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.statSync=il.stat=il.Settings=void 0;var WJ=jJ(),J0e=GJ(),Xv=JJ();il.Settings=Xv.default;function W0e(r,e,t){if(typeof e=="function"){WJ.read(r,Zv(),e);return}WJ.read(r,Zv(e),t)}il.stat=W0e;function z0e(r,e){let t=Zv(e);return J0e.read(r,t)}il.statSync=z0e;function Zv(r={}){return r instanceof Xv.default?r:new Xv.default(r)}});var _J=w((ftt,zJ)=>{zJ.exports=_0e;function _0e(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var $v=w(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Uy=process.versions.node.split(".");if(Uy[0]===void 0||Uy[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var VJ=Number.parseInt(Uy[0],10),V0e=Number.parseInt(Uy[1],10),XJ=10,X0e=10,Z0e=VJ>XJ,$0e=VJ===XJ&&V0e>=X0e;Ky.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Z0e||$0e});var $J=w(Hy=>{"use strict";Object.defineProperty(Hy,"__esModule",{value:!0});Hy.createDirentFromStats=void 0;var ZJ=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function ebe(r,e){return new ZJ(r,e)}Hy.createDirentFromStats=ebe});var ex=w(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.fs=void 0;var tbe=$J();jy.fs=tbe});var tx=w(Gy=>{"use strict";Object.defineProperty(Gy,"__esModule",{value:!0});Gy.joinPathSegments=void 0;function rbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}Gy.joinPathSegments=rbe});var s3=w(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});nl.readdir=nl.readdirWithFileTypes=nl.read=void 0;var ibe=Kc(),e3=_J(),nbe=$v(),t3=ex(),r3=tx();function sbe(r,e,t){if(!e.stats&&nbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){i3(r,e,t);return}n3(r,e,t)}nl.read=sbe;function i3(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){Yy(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:r3.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){rx(t,s);return}let o=s.map(a=>obe(a,e));e3(o,(a,l)=>{if(a!==null){Yy(t,a);return}rx(t,l)})})}nl.readdirWithFileTypes=i3;function obe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=t3.fs.createDirentFromStats(r.name,n),t(null,r)})}}function n3(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){Yy(t,i);return}let s=n.map(o=>{let a=r3.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{ibe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:t3.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});e3(s,(o,a)=>{if(o!==null){Yy(t,o);return}rx(t,a)})})}nl.readdir=n3;function Yy(r,e){r(e)}function rx(r,e){r(null,e)}});var c3=w(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.readdir=sl.readdirWithFileTypes=sl.read=void 0;var abe=Kc(),Abe=$v(),o3=ex(),a3=tx();function lbe(r,e){return!e.stats&&Abe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?A3(r,e):l3(r,e)}sl.read=lbe;function A3(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:a3.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=o3.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}sl.readdirWithFileTypes=A3;function l3(r,e){return e.fs.readdirSync(r).map(i=>{let n=a3.joinPathSegments(r,i,e.pathSegmentSeparator),s=abe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:o3.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}sl.readdir=l3});var u3=w(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.createFileSystemAdapter=ol.FILE_SYSTEM_ADAPTER=void 0;var Ug=require("fs");ol.FILE_SYSTEM_ADAPTER={lstat:Ug.lstat,stat:Ug.stat,lstatSync:Ug.lstatSync,statSync:Ug.statSync,readdir:Ug.readdir,readdirSync:Ug.readdirSync};function cbe(r){return r===void 0?ol.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},ol.FILE_SYSTEM_ADAPTER),r)}ol.createFileSystemAdapter=cbe});var f3=w(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var ube=require("path"),gbe=Kc(),fbe=u3(),g3=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=fbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ube.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new gbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};ix.default=g3});var qy=w(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});al.Settings=al.scandirSync=al.scandir=void 0;var h3=s3(),hbe=c3(),nx=f3();al.Settings=nx.default;function pbe(r,e,t){if(typeof e=="function"){h3.read(r,sx(),e);return}h3.read(r,sx(e),t)}al.scandir=pbe;function dbe(r,e){let t=sx(e);return hbe.read(r,t)}al.scandirSync=dbe;function sx(r={}){return r instanceof nx.default?r:new nx.default(r)}});var d3=w((Btt,p3)=>{"use strict";function Cbe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}p3.exports=Cbe});var m3=w((btt,ox)=>{"use strict";var mbe=d3();function C3(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=mbe(Ebe),n=null,s=null,o=0,a=null,l={push:m,drain:Vo,saturated:Vo,pause:u,paused:!1,concurrency:t,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Vo,kill:v,killAndDrain:x,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var q=n,Y=0;q;)q=q.next,Y++;return Y}function f(){for(var q=n,Y=[];q;)Y.push(q.value),q=q.next;return Y}function h(){if(!!l.paused){l.paused=!1;for(var q=0;q{"use strict";Object.defineProperty(Xo,"__esModule",{value:!0});Xo.joinPathSegments=Xo.replacePathSegmentSeparator=Xo.isAppliedFilter=Xo.isFatalError=void 0;function ybe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Xo.isFatalError=ybe;function wbe(r,e){return r===null||r(e)}Xo.isAppliedFilter=wbe;function Bbe(r,e){return r.split(/[/\\]/).join(e)}Xo.replacePathSegmentSeparator=Bbe;function bbe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Xo.joinPathSegments=bbe});var Ax=w(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var Qbe=Jy(),E3=class{constructor(e,t){this._root=e,this._settings=t,this._root=Qbe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};ax.default=E3});var cx=w(lx=>{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var Sbe=require("events"),vbe=qy(),xbe=m3(),Wy=Jy(),kbe=Ax(),I3=class extends kbe.default{constructor(e,t){super(e,t);this._settings=t,this._scandir=vbe.scandir,this._emitter=new Sbe.EventEmitter,this._queue=xbe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!Wy.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=Wy.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),Wy.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&Wy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};lx.default=I3});var w3=w(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var Pbe=cx(),y3=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Pbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{Dbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{Rbe(e,[...this._storage])}),this._reader.read()}};ux.default=y3;function Dbe(r,e){r(e)}function Rbe(r,e){r(null,e)}});var b3=w(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});var Fbe=require("stream"),Nbe=cx(),B3=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Nbe.default(this._root,this._settings),this._stream=new Fbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};gx.default=B3});var S3=w(fx=>{"use strict";Object.defineProperty(fx,"__esModule",{value:!0});var Lbe=qy(),zy=Jy(),Tbe=Ax(),Q3=class extends Tbe.default{constructor(){super(...arguments);this._scandir=Lbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!zy.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=zy.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),zy.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&zy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};fx.default=Q3});var x3=w(hx=>{"use strict";Object.defineProperty(hx,"__esModule",{value:!0});var Obe=S3(),v3=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Obe.default(this._root,this._settings)}read(){return this._reader.read()}};hx.default=v3});var P3=w(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var Mbe=require("path"),Kbe=qy(),k3=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Mbe.sep),this.fsScandirSettings=new Kbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};px.default=k3});var Cx=w(Zo=>{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.Settings=Zo.walkStream=Zo.walkSync=Zo.walk=void 0;var D3=w3(),Ube=b3(),Hbe=x3(),dx=P3();Zo.Settings=dx.default;function jbe(r,e,t){if(typeof e=="function"){new D3.default(r,_y()).read(e);return}new D3.default(r,_y(e)).read(t)}Zo.walk=jbe;function Gbe(r,e){let t=_y(e);return new Hbe.default(r,t).read()}Zo.walkSync=Gbe;function Ybe(r,e){let t=_y(e);return new Ube.default(r,t).read()}Zo.walkStream=Ybe;function _y(r={}){return r instanceof dx.default?r:new dx.default(r)}});var Ex=w(mx=>{"use strict";Object.defineProperty(mx,"__esModule",{value:!0});var qbe=require("path"),Jbe=Kc(),R3=Xa(),F3=class{constructor(e){this._settings=e,this._fsStatSettings=new Jbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return qbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:R3.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!R3.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};mx.default=F3});var yx=w(Ix=>{"use strict";Object.defineProperty(Ix,"__esModule",{value:!0});var Wbe=require("stream"),zbe=Kc(),_be=Cx(),Vbe=Ex(),N3=class extends Vbe.default{constructor(){super(...arguments);this._walkStream=_be.walkStream,this._stat=zbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new Wbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};Ix.default=N3});var T3=w(wx=>{"use strict";Object.defineProperty(wx,"__esModule",{value:!0});var Hg=Xa(),L3=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Hg.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Hg.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Hg.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Hg.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Hg.array.splitWhen(e,t=>t.dynamic&&Hg.pattern.hasGlobStar(t.pattern))}};wx.default=L3});var M3=w(Bx=>{"use strict";Object.defineProperty(Bx,"__esModule",{value:!0});var Xbe=T3(),O3=class extends Xbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};Bx.default=O3});var U3=w(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var Vy=Xa(),Zbe=M3(),K3=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Zbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(Vy.pattern.isAffectDepthOfReadingPattern);return Vy.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=Vy.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!Vy.pattern.matchAny(e,t)}};bx.default=K3});var j3=w(Qx=>{"use strict";Object.defineProperty(Qx,"__esModule",{value:!0});var sd=Xa(),H3=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=sd.pattern.convertPatternsToRe(e,this._micromatchOptions),n=sd.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=sd.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=sd.path.removeLeadingDotSegment(e);return sd.pattern.matchAny(i,t)}};Qx.default=H3});var Y3=w(Sx=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var $be=Xa(),G3=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return $be.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};Sx.default=G3});var W3=w(vx=>{"use strict";Object.defineProperty(vx,"__esModule",{value:!0});var q3=Xa(),J3=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=q3.path.makeAbsolute(this._settings.cwd,t),t=q3.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};vx.default=J3});var Xy=w(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});var eQe=require("path"),tQe=U3(),rQe=j3(),iQe=Y3(),nQe=W3(),z3=class{constructor(e){this._settings=e,this.errorFilter=new iQe.default(this._settings),this.entryFilter=new rQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new tQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new nQe.default(this._settings)}_getRootDirectory(e){return eQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};xx.default=z3});var V3=w(kx=>{"use strict";Object.defineProperty(kx,"__esModule",{value:!0});var sQe=yx(),oQe=Xy(),_3=class extends oQe.default{constructor(){super(...arguments);this._reader=new sQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};kx.default=_3});var Z3=w(Px=>{"use strict";Object.defineProperty(Px,"__esModule",{value:!0});var aQe=require("stream"),AQe=yx(),lQe=Xy(),X3=class extends lQe.default{constructor(){super(...arguments);this._reader=new AQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new aQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Px.default=X3});var eW=w(Dx=>{"use strict";Object.defineProperty(Dx,"__esModule",{value:!0});var cQe=Kc(),uQe=Cx(),gQe=Ex(),$3=class extends gQe.default{constructor(){super(...arguments);this._walkSync=uQe.walkSync,this._statSync=cQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Dx.default=$3});var rW=w(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var fQe=eW(),hQe=Xy(),tW=class extends hQe.default{constructor(){super(...arguments);this._reader=new fQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Rx.default=tW});var nW=w(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});var jg=require("fs"),pQe=require("os"),dQe=pQe.cpus().length;od.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:jg.lstat,lstatSync:jg.lstatSync,stat:jg.stat,statSync:jg.statSync,readdir:jg.readdir,readdirSync:jg.readdirSync};var iW=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,dQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},od.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};od.default=iW});var Zy=w((ztt,sW)=>{"use strict";var oW=UJ(),CQe=V3(),mQe=Z3(),EQe=rW(),Fx=nW(),Uc=Xa();async function Lx(r,e){Gg(r);let t=Nx(r,CQe.default,e),i=await Promise.all(t);return Uc.array.flatten(i)}(function(r){function e(o,a){Gg(o);let l=Nx(o,EQe.default,a);return Uc.array.flatten(l)}r.sync=e;function t(o,a){Gg(o);let l=Nx(o,mQe.default,a);return Uc.stream.merge(l)}r.stream=t;function i(o,a){Gg(o);let l=[].concat(o),c=new Fx.default(a);return oW.generate(l,c)}r.generateTasks=i;function n(o,a){Gg(o);let l=new Fx.default(a);return Uc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Gg(o),Uc.path.escape(o)}r.escapePath=s})(Lx||(Lx={}));function Nx(r,e,t){let i=[].concat(r),n=new Fx.default(t),s=oW.generate(i,n),o=new e(n);return s.map(o.read,o)}function Gg(r){if(![].concat(r).every(i=>Uc.string.isString(i)&&!Uc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}sW.exports=Lx});var AW=w(Hc=>{"use strict";var{promisify:IQe}=require("util"),aW=require("fs");async function Tx(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await IQe(aW[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Ox(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return aW[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Hc.isFile=Tx.bind(null,"stat","isFile");Hc.isDirectory=Tx.bind(null,"stat","isDirectory");Hc.isSymlink=Tx.bind(null,"lstat","isSymbolicLink");Hc.isFileSync=Ox.bind(null,"statSync","isFile");Hc.isDirectorySync=Ox.bind(null,"statSync","isDirectory");Hc.isSymlinkSync=Ox.bind(null,"lstatSync","isSymbolicLink")});var fW=w((Vtt,Mx)=>{"use strict";var jc=require("path"),lW=AW(),cW=r=>r.length>1?`{${r.join(",")}}`:r[0],uW=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return jc.isAbsolute(t)?t:jc.join(e,t)},yQe=(r,e)=>jc.extname(r)?`**/${r}`:`**/${r}.${cW(e)}`,gW=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>jc.posix.join(r,yQe(t,e.extensions))):e.files?e.files.map(t=>jc.posix.join(r,`**/${t}`)):e.extensions?[jc.posix.join(r,`**/*.${cW(e.extensions)}`)]:[jc.posix.join(r,"**")]};Mx.exports=async(r,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await lW.isDirectory(uW(i,e.cwd))?gW(i,e):i));return[].concat.apply([],t)};Mx.exports.sync=(r,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>lW.isDirectorySync(uW(i,e.cwd))?gW(i,e):i);return[].concat.apply([],t)}});var BW=w((Xtt,hW)=>{function pW(r){return Array.isArray(r)?r:[r]}var dW="",CW=" ",Kx="\\",wQe=/^\s+$/,BQe=/^\\!/,bQe=/^\\#/,QQe=/\r?\n/g,SQe=/^\.*\/|^\.+$/,Ux="/",mW=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",vQe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),xQe=/([0-z])-([0-z])/g,kQe=r=>r.replace(xQe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:dW),PQe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},DQe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?CW:dW],[/\\\s/g,()=>CW],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>Kx],[/\\\\/g,()=>Kx],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===Kx?`\\[${t}${PQe(i)}${n}`:n==="]"&&i.length%2==0?`[${kQe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],EW=Object.create(null),RQe=(r,e)=>{let t=EW[r];return t||(t=DQe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),EW[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Hx=r=>typeof r=="string",FQe=r=>r&&Hx(r)&&!wQe.test(r)&&r.indexOf("#")!==0,NQe=r=>r.split(QQe),IW=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},LQe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(BQe,"!").replace(bQe,"#");let n=RQe(r,e);return new IW(t,r,i,n)},TQe=(r,e)=>{throw new e(r)},$a=(r,e,t)=>Hx(r)?r?$a.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),yW=r=>SQe.test(r);$a.isNotRelative=yW;$a.convert=r=>r;var wW=class{constructor({ignorecase:e=!0}={}){vQe(this,mW,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[mW]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(FQe(e)){let t=LQe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,pW(Hx(e)?NQe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&$a.convert(e);return $a(s,e,TQe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(Ux)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(Ux)+Ux,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return pW(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},$y=r=>new wW(r),OQe=()=>!1,MQe=r=>$a(r&&$a.convert(r),r,OQe);$y.isPathValid=MQe;$y.default=$y;hW.exports=$y;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");$a.convert=r;let e=/^[a-z]:\//i;$a.isNotRelative=t=>e.test(t)||yW(t)}});var QW=w((Ztt,bW)=>{"use strict";bW.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var RW=w(($tt,jx)=>{"use strict";var{promisify:KQe}=require("util"),SW=require("fs"),eA=require("path"),vW=Zy(),UQe=BW(),ad=QW(),xW=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],HQe=KQe(SW.readFile),jQe=r=>e=>e.startsWith("!")?"!"+eA.posix.join(r,e.slice(1)):eA.posix.join(r,e),GQe=(r,e)=>{let t=ad(eA.relative(e.cwd,eA.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(jQe(t))},kW=r=>{let e=UQe();for(let t of r)e.add(GQe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},YQe=(r,e)=>{if(r=ad(r),eA.isAbsolute(e)){if(ad(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return eA.join(r,e)},PW=(r,e)=>t=>r.ignores(ad(eA.relative(e,YQe(e,t.path||t)))),qQe=async(r,e)=>{let t=eA.join(e,r),i=await HQe(t,"utf8");return{cwd:e,filePath:t,content:i}},JQe=(r,e)=>{let t=eA.join(e,r),i=SW.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},DW=({ignore:r=[],cwd:e=ad(process.cwd())}={})=>({ignore:r,cwd:e});jx.exports=async r=>{r=DW(r);let e=await vW("**/.gitignore",{ignore:xW.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>qQe(n,r.cwd))),i=kW(t);return PW(i,r.cwd)};jx.exports.sync=r=>{r=DW(r);let t=vW.sync("**/.gitignore",{ignore:xW.concat(r.ignore),cwd:r.cwd}).map(n=>JQe(n,r.cwd)),i=kW(t);return PW(i,r.cwd)}});var TW=w((ert,FW)=>{"use strict";var{Transform:WQe}=require("stream"),Gx=class extends WQe{constructor(){super({objectMode:!0})}},NW=class extends Gx{constructor(e){super();this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},LW=class extends Gx{constructor(){super();this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};FW.exports={FilterStream:NW,UniqueStream:LW}});var Wx=w((trt,Gc)=>{"use strict";var OW=require("fs"),ew=AJ(),zQe=jv(),tw=Zy(),rw=fW(),Yx=RW(),{FilterStream:_Qe,UniqueStream:VQe}=TW(),MW=()=>!1,KW=r=>r[0]==="!",XQe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},ZQe=(r={})=>{if(!r.cwd)return;let e;try{e=OW.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},$Qe=r=>r.stats instanceof OW.Stats?r.path:r,iw=(r,e)=>{r=ew([].concat(r)),XQe(r),ZQe(e);let t=[];e=N({ignore:[],expandDirectories:!0},e);for(let[i,n]of r.entries()){if(KW(n))continue;let s=r.slice(i).filter(a=>KW(a)).map(a=>a.slice(1)),o=te(N({},e),{ignore:e.ignore.concat(s)});t.push({pattern:n,options:o})}return t},eSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t=te(N({},t),{files:r.options.expandDirectories}):typeof r.options.expandDirectories=="object"&&(t=N(N({},t),r.options.expandDirectories)),e(r.pattern,t)},qx=(r,e)=>r.options.expandDirectories?eSe(r,e):[r.pattern],UW=r=>r&&r.gitignore?Yx.sync({cwd:r.cwd,ignore:r.ignore}):MW,Jx=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=rw.sync(t.ignore)),{pattern:e,options:t}};Gc.exports=async(r,e)=>{let t=iw(r,e),i=async()=>e&&e.gitignore?Yx({cwd:e.cwd,ignore:e.ignore}):MW,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await qx(c,rw);return Promise.all(u.map(Jx(c)))}));return ew(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>tw(l.pattern,l.options)));return ew(...a).filter(l=>!s($Qe(l)))};Gc.exports.sync=(r,e)=>{let t=iw(r,e),i=[];for(let o of t){let a=qx(o,rw.sync).map(Jx(o));i.push(...a)}let n=UW(e),s=[];for(let o of i)s=ew(s,tw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Gc.exports.stream=(r,e)=>{let t=iw(r,e),i=[];for(let a of t){let l=qx(a,rw.sync).map(Jx(a));i.push(...l)}let n=UW(e),s=new _Qe(a=>!n(a)),o=new VQe;return zQe(i.map(a=>tw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Gc.exports.generateGlobTasks=iw;Gc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>tw.isDynamicPattern(t,e));Gc.exports.gitignore=Yx});var Rn=w((xrt,t4)=>{function fSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}t4.exports=fSe});var rk=w((krt,r4)=>{var hSe=typeof global=="object"&&global&&global.Object===Object&&global;r4.exports=hSe});var Ns=w((Prt,i4)=>{var pSe=rk(),dSe=typeof self=="object"&&self&&self.Object===Object&&self,CSe=pSe||dSe||Function("return this")();i4.exports=CSe});var s4=w((Drt,n4)=>{var mSe=Ns(),ESe=function(){return mSe.Date.now()};n4.exports=ESe});var a4=w((Rrt,o4)=>{var ISe=/\s/;function ySe(r){for(var e=r.length;e--&&ISe.test(r.charAt(e)););return e}o4.exports=ySe});var l4=w((Frt,A4)=>{var wSe=a4(),BSe=/^\s+/;function bSe(r){return r&&r.slice(0,wSe(r)+1).replace(BSe,"")}A4.exports=bSe});var Jc=w((Nrt,c4)=>{var QSe=Ns(),SSe=QSe.Symbol;c4.exports=SSe});var h4=w((Lrt,u4)=>{var g4=Jc(),f4=Object.prototype,vSe=f4.hasOwnProperty,xSe=f4.toString,Ed=g4?g4.toStringTag:void 0;function kSe(r){var e=vSe.call(r,Ed),t=r[Ed];try{r[Ed]=void 0;var i=!0}catch(s){}var n=xSe.call(r);return i&&(e?r[Ed]=t:delete r[Ed]),n}u4.exports=kSe});var d4=w((Trt,p4)=>{var PSe=Object.prototype,DSe=PSe.toString;function RSe(r){return DSe.call(r)}p4.exports=RSe});var Wc=w((Ort,C4)=>{var m4=Jc(),FSe=h4(),NSe=d4(),LSe="[object Null]",TSe="[object Undefined]",E4=m4?m4.toStringTag:void 0;function OSe(r){return r==null?r===void 0?TSe:LSe:E4&&E4 in Object(r)?FSe(r):NSe(r)}C4.exports=OSe});var ta=w((Mrt,I4)=>{function MSe(r){return r!=null&&typeof r=="object"}I4.exports=MSe});var Id=w((Krt,y4)=>{var KSe=Wc(),USe=ta(),HSe="[object Symbol]";function jSe(r){return typeof r=="symbol"||USe(r)&&KSe(r)==HSe}y4.exports=jSe});var Q4=w((Urt,w4)=>{var GSe=l4(),B4=Rn(),YSe=Id(),b4=0/0,qSe=/^[-+]0x[0-9a-f]+$/i,JSe=/^0b[01]+$/i,WSe=/^0o[0-7]+$/i,zSe=parseInt;function _Se(r){if(typeof r=="number")return r;if(YSe(r))return b4;if(B4(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=B4(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=GSe(r);var t=JSe.test(r);return t||WSe.test(r)?zSe(r.slice(2),t?2:8):qSe.test(r)?b4:+r}w4.exports=_Se});var x4=w((Hrt,S4)=>{var VSe=Rn(),ik=s4(),v4=Q4(),XSe="Expected a function",ZSe=Math.max,$Se=Math.min;function eve(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof r!="function")throw new TypeError(XSe);e=v4(e)||0,VSe(t)&&(u=!!t.leading,g="maxWait"in t,s=g?ZSe(v4(t.maxWait)||0,e):s,f="trailing"in t?!!t.trailing:f);function h(Y){var $=i,_=n;return i=n=void 0,c=Y,o=r.apply(_,$),o}function p(Y){return c=Y,a=setTimeout(b,e),u?h(Y):o}function m(Y){var $=Y-l,_=Y-c,ne=e-$;return g?$Se(ne,s-_):ne}function y(Y){var $=Y-l,_=Y-c;return l===void 0||$>=e||$<0||g&&_>=s}function b(){var Y=ik();if(y(Y))return v(Y);a=setTimeout(b,m(Y))}function v(Y){return a=void 0,f&&i?h(Y):(i=n=void 0,o)}function x(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:v(ik())}function q(){var Y=ik(),$=y(Y);if(i=arguments,n=this,l=Y,$){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(b,e),h(l)}return a===void 0&&(a=setTimeout(b,e)),o}return q.cancel=x,q.flush=T,q}S4.exports=eve});var P4=w((jrt,k4)=>{var tve=x4(),rve=Rn(),ive="Expected a function";function nve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(ive);return rve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),tve(r,e,{leading:i,maxWait:e,trailing:n})}k4.exports=nve});var iA=w((rA,Bw)=>{"use strict";Object.defineProperty(rA,"__esModule",{value:!0});var M4=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Cve(r){return M4.includes(r)}var mve=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...M4];function Eve(r){return mve.includes(r)}var Ive=["null","undefined","string","number","bigint","boolean","symbol"];function yve(r){return Ive.includes(r)}function Xg(r){return e=>typeof e===r}var{toString:K4}=Object.prototype,vd=r=>{let e=K4.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&W.domElement(r))return"HTMLElement";if(Eve(e))return e},hr=r=>e=>vd(e)===r;function W(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(W.observable(r))return"Observable";if(W.array(r))return"Array";if(W.buffer(r))return"Buffer";let e=vd(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}W.undefined=Xg("undefined");W.string=Xg("string");var wve=Xg("number");W.number=r=>wve(r)&&!W.nan(r);W.bigint=Xg("bigint");W.function_=Xg("function");W.null_=r=>r===null;W.class_=r=>W.function_(r)&&r.toString().startsWith("class ");W.boolean=r=>r===!0||r===!1;W.symbol=Xg("symbol");W.numericString=r=>W.string(r)&&!W.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));W.array=(r,e)=>Array.isArray(r)?W.function_(e)?r.every(e):!0:!1;W.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};W.nullOrUndefined=r=>W.null_(r)||W.undefined(r);W.object=r=>!W.null_(r)&&(typeof r=="object"||W.function_(r));W.iterable=r=>{var e;return W.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};W.asyncIterable=r=>{var e;return W.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};W.generator=r=>W.iterable(r)&&W.function_(r.next)&&W.function_(r.throw);W.asyncGenerator=r=>W.asyncIterable(r)&&W.function_(r.next)&&W.function_(r.throw);W.nativePromise=r=>hr("Promise")(r);var Bve=r=>{var e,t;return W.function_((e=r)===null||e===void 0?void 0:e.then)&&W.function_((t=r)===null||t===void 0?void 0:t.catch)};W.promise=r=>W.nativePromise(r)||Bve(r);W.generatorFunction=hr("GeneratorFunction");W.asyncGeneratorFunction=r=>vd(r)==="AsyncGeneratorFunction";W.asyncFunction=r=>vd(r)==="AsyncFunction";W.boundFunction=r=>W.function_(r)&&!r.hasOwnProperty("prototype");W.regExp=hr("RegExp");W.date=hr("Date");W.error=hr("Error");W.map=r=>hr("Map")(r);W.set=r=>hr("Set")(r);W.weakMap=r=>hr("WeakMap")(r);W.weakSet=r=>hr("WeakSet")(r);W.int8Array=hr("Int8Array");W.uint8Array=hr("Uint8Array");W.uint8ClampedArray=hr("Uint8ClampedArray");W.int16Array=hr("Int16Array");W.uint16Array=hr("Uint16Array");W.int32Array=hr("Int32Array");W.uint32Array=hr("Uint32Array");W.float32Array=hr("Float32Array");W.float64Array=hr("Float64Array");W.bigInt64Array=hr("BigInt64Array");W.bigUint64Array=hr("BigUint64Array");W.arrayBuffer=hr("ArrayBuffer");W.sharedArrayBuffer=hr("SharedArrayBuffer");W.dataView=hr("DataView");W.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;W.urlInstance=r=>hr("URL")(r);W.urlString=r=>{if(!W.string(r))return!1;try{return new URL(r),!0}catch(e){return!1}};W.truthy=r=>Boolean(r);W.falsy=r=>!r;W.nan=r=>Number.isNaN(r);W.primitive=r=>W.null_(r)||yve(typeof r);W.integer=r=>Number.isInteger(r);W.safeInteger=r=>Number.isSafeInteger(r);W.plainObject=r=>{if(K4.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};W.typedArray=r=>Cve(vd(r));var bve=r=>W.safeInteger(r)&&r>=0;W.arrayLike=r=>!W.nullOrUndefined(r)&&!W.function_(r)&&bve(r.length);W.inRange=(r,e)=>{if(W.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(W.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Qve=1,Sve=["innerHTML","ownerDocument","style","attributes","nodeValue"];W.domElement=r=>W.object(r)&&r.nodeType===Qve&&W.string(r.nodeName)&&!W.plainObject(r)&&Sve.every(e=>e in r);W.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};W.nodeStream=r=>W.object(r)&&W.function_(r.pipe)&&!W.observable(r);W.infinite=r=>r===Infinity||r===-Infinity;var U4=r=>e=>W.integer(e)&&Math.abs(e%2)===r;W.evenInteger=U4(0);W.oddInteger=U4(1);W.emptyArray=r=>W.array(r)&&r.length===0;W.nonEmptyArray=r=>W.array(r)&&r.length>0;W.emptyString=r=>W.string(r)&&r.length===0;W.nonEmptyString=r=>W.string(r)&&r.length>0;var vve=r=>W.string(r)&&!/\S/.test(r);W.emptyStringOrWhitespace=r=>W.emptyString(r)||vve(r);W.emptyObject=r=>W.object(r)&&!W.map(r)&&!W.set(r)&&Object.keys(r).length===0;W.nonEmptyObject=r=>W.object(r)&&!W.map(r)&&!W.set(r)&&Object.keys(r).length>0;W.emptySet=r=>W.set(r)&&r.size===0;W.nonEmptySet=r=>W.set(r)&&r.size>0;W.emptyMap=r=>W.map(r)&&r.size===0;W.nonEmptyMap=r=>W.map(r)&&r.size>0;W.propertyKey=r=>W.any([W.string,W.number,W.symbol],r);W.formData=r=>hr("FormData")(r);W.urlSearchParams=r=>hr("URLSearchParams")(r);var H4=(r,e,t)=>{if(!W.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};W.any=(r,...e)=>(W.array(r)?r:[r]).some(i=>H4(Array.prototype.some,i,e));W.all=(r,...e)=>H4(Array.prototype.every,r,e);var We=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${W(o)}\``))].join(", ")}`:`received value of type \`${W(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};rA.assert={undefined:r=>We(W.undefined(r),"undefined",r),string:r=>We(W.string(r),"string",r),number:r=>We(W.number(r),"number",r),bigint:r=>We(W.bigint(r),"bigint",r),function_:r=>We(W.function_(r),"Function",r),null_:r=>We(W.null_(r),"null",r),class_:r=>We(W.class_(r),"Class",r),boolean:r=>We(W.boolean(r),"boolean",r),symbol:r=>We(W.symbol(r),"symbol",r),numericString:r=>We(W.numericString(r),"string with a number",r),array:(r,e)=>{We(W.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>We(W.buffer(r),"Buffer",r),nullOrUndefined:r=>We(W.nullOrUndefined(r),"null or undefined",r),object:r=>We(W.object(r),"Object",r),iterable:r=>We(W.iterable(r),"Iterable",r),asyncIterable:r=>We(W.asyncIterable(r),"AsyncIterable",r),generator:r=>We(W.generator(r),"Generator",r),asyncGenerator:r=>We(W.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>We(W.nativePromise(r),"native Promise",r),promise:r=>We(W.promise(r),"Promise",r),generatorFunction:r=>We(W.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>We(W.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>We(W.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>We(W.boundFunction(r),"Function",r),regExp:r=>We(W.regExp(r),"RegExp",r),date:r=>We(W.date(r),"Date",r),error:r=>We(W.error(r),"Error",r),map:r=>We(W.map(r),"Map",r),set:r=>We(W.set(r),"Set",r),weakMap:r=>We(W.weakMap(r),"WeakMap",r),weakSet:r=>We(W.weakSet(r),"WeakSet",r),int8Array:r=>We(W.int8Array(r),"Int8Array",r),uint8Array:r=>We(W.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>We(W.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>We(W.int16Array(r),"Int16Array",r),uint16Array:r=>We(W.uint16Array(r),"Uint16Array",r),int32Array:r=>We(W.int32Array(r),"Int32Array",r),uint32Array:r=>We(W.uint32Array(r),"Uint32Array",r),float32Array:r=>We(W.float32Array(r),"Float32Array",r),float64Array:r=>We(W.float64Array(r),"Float64Array",r),bigInt64Array:r=>We(W.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>We(W.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>We(W.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>We(W.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>We(W.dataView(r),"DataView",r),urlInstance:r=>We(W.urlInstance(r),"URL",r),urlString:r=>We(W.urlString(r),"string with a URL",r),truthy:r=>We(W.truthy(r),"truthy",r),falsy:r=>We(W.falsy(r),"falsy",r),nan:r=>We(W.nan(r),"NaN",r),primitive:r=>We(W.primitive(r),"primitive",r),integer:r=>We(W.integer(r),"integer",r),safeInteger:r=>We(W.safeInteger(r),"integer",r),plainObject:r=>We(W.plainObject(r),"plain object",r),typedArray:r=>We(W.typedArray(r),"TypedArray",r),arrayLike:r=>We(W.arrayLike(r),"array-like",r),domElement:r=>We(W.domElement(r),"HTMLElement",r),observable:r=>We(W.observable(r),"Observable",r),nodeStream:r=>We(W.nodeStream(r),"Node.js Stream",r),infinite:r=>We(W.infinite(r),"infinite number",r),emptyArray:r=>We(W.emptyArray(r),"empty array",r),nonEmptyArray:r=>We(W.nonEmptyArray(r),"non-empty array",r),emptyString:r=>We(W.emptyString(r),"empty string",r),nonEmptyString:r=>We(W.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>We(W.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>We(W.emptyObject(r),"empty object",r),nonEmptyObject:r=>We(W.nonEmptyObject(r),"non-empty object",r),emptySet:r=>We(W.emptySet(r),"empty set",r),nonEmptySet:r=>We(W.nonEmptySet(r),"non-empty set",r),emptyMap:r=>We(W.emptyMap(r),"empty map",r),nonEmptyMap:r=>We(W.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>We(W.propertyKey(r),"PropertyKey",r),formData:r=>We(W.formData(r),"FormData",r),urlSearchParams:r=>We(W.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>We(W.evenInteger(r),"even integer",r),oddInteger:r=>We(W.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>We(W.directInstanceOf(r,e),"T",r),inRange:(r,e)=>We(W.inRange(r,e),"in range",r),any:(r,...e)=>We(W.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>We(W.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(W,{class:{value:W.class_},function:{value:W.function_},null:{value:W.null_}});Object.defineProperties(rA.assert,{class:{value:rA.assert.class_},function:{value:rA.assert.function_},null:{value:rA.assert.null_}});rA.default=W;Bw.exports=W;Bw.exports.default=W;Bw.exports.assert=rA.assert});var j4=w((Wit,Bk)=>{"use strict";var bk=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},xd=class{static fn(e){return(...t)=>new xd((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new bk(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(xd.prototype,Promise.prototype);Bk.exports=xd;Bk.exports.CancelError=bk});var G4=w((Qk,Sk)=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});var xve=require("tls"),vk=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof xve.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};Qk.default=vk;Sk.exports=vk;Sk.exports.default=vk});var Y4=w((xk,kk)=>{"use strict";Object.defineProperty(xk,"__esModule",{value:!0});var kve=G4(),Pve=Number(process.versions.node.split(".")[0]),Pk=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Pve>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),kve.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};xk.default=Pk;kk.exports=Pk;kk.exports.default=Pk});var X4=w((zit,Dk)=>{"use strict";var{V4MAPPED:Dve,ADDRCONFIG:Rve,ALL:q4,promises:{Resolver:J4},lookup:Fve}=require("dns"),{promisify:Rk}=require("util"),Nve=require("os"),Zg=Symbol("cacheableLookupCreateConnection"),Fk=Symbol("cacheableLookupInstance"),W4=Symbol("expires"),Lve=typeof q4=="number",z4=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Tve=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},_4=()=>{let r=!1,e=!1;for(let t of Object.values(Nve.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},Ove=r=>Symbol.iterator in r,V4={ttl:!0},Mve={all:!0},Nk=class{constructor({cache:e=new Map,maxTtl:t=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new J4,lookup:o=Fve}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Rk(o),this._resolver instanceof J4?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Rk(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Rk(this._resolver.resolve6.bind(this._resolver))),this._iface=_4(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&Dve&&(Lve&&t.hints&q4||n.length===0)?Tve(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&Rve){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>N({},i)),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,V4),this._resolve6(e,V4)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(t){return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[W4]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Ove(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Mve);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[W4];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Zg](t,i))}uninstall(e){if(z4(e),e[Zg]){if(e[Fk]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Zg],delete e[Zg],delete e[Fk]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=_4(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};Dk.exports=Nk;Dk.exports.default=Nk});var e8=w((_it,Lk)=>{"use strict";var Kve=typeof URL=="undefined"?require("url").URL:URL,Uve="text/plain",Hve="us-ascii",Z4=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),jve=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Hve)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Uve)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},$4=(r,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return jve(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Kve(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Z4(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Z4(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};Lk.exports=$4;Lk.exports.default=$4});var i8=w((Vit,t8)=>{t8.exports=r8;function r8(r,e){if(r&&e)return r8(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var n8=i8();Tk.exports=n8(bw);Tk.exports.strict=n8(s8);bw.proto=bw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return bw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return s8(this)},configurable:!0})});function bw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function s8(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var Mk=w((Zit,o8)=>{var Gve=Ok(),Yve=function(){},qve=function(r){return r.setHeader&&typeof r.abort=="function"},Jve=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},a8=function(r,e,t){if(typeof e=="function")return a8(r,null,e);e||(e={}),t=Gve(t||Yve);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(p){t.call(r,p?new Error("exited with error code: "+p):null)},g=function(p){t.call(r,p)},f=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},h=function(){r.req.on("finish",l)};return qve(r)?(r.on("complete",l),r.on("abort",f),r.req?h():r.on("request",h)):o&&!i&&(r.on("end",a),r.on("close",a)),Jve(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",f),function(){r.removeListener("complete",l),r.removeListener("abort",f),r.removeListener("request",h),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",f)}};o8.exports=a8});var c8=w(($it,A8)=>{var Wve=Ok(),zve=Mk(),Kk=require("fs"),kd=function(){},_ve=/^v?\.0/.test(process.version),Qw=function(r){return typeof r=="function"},Vve=function(r){return!_ve||!Kk?!1:(r instanceof(Kk.ReadStream||kd)||r instanceof(Kk.WriteStream||kd))&&Qw(r.close)},Xve=function(r){return r.setHeader&&Qw(r.abort)},Zve=function(r,e,t,i){i=Wve(i);var n=!1;r.on("close",function(){n=!0}),zve(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Vve(r))return r.close(kd);if(Xve(r))return r.abort();if(Qw(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},l8=function(r){r()},$ve=function(r,e){return r.pipe(e)},exe=function(){var r=Array.prototype.slice.call(arguments),e=Qw(r[r.length-1]||kd)&&r.pop()||kd;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Zve(n,o,a,function(l){t||(t=l),l&&i.forEach(l8),!o&&(i.forEach(l8),e(t))})});return r.reduce($ve)};A8.exports=exe});var g8=w((ent,u8)=>{"use strict";var{PassThrough:txe}=require("stream");u8.exports=r=>{r=N({},r);let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new txe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var f8=w((tnt,$g)=>{"use strict";var rxe=c8(),ixe=g8(),Uk=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function Sw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e=N({maxBuffer:Infinity},e);let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=rxe(r,ixe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new Uk)})}),i.getBufferedValue()}$g.exports=Sw;$g.exports.default=Sw;$g.exports.buffer=(r,e)=>Sw(r,te(N({},e),{encoding:"buffer"}));$g.exports.array=(r,e)=>Sw(r,te(N({},e),{array:!0}));$g.exports.MaxBufferError=Uk});var p8=w((int,h8)=>{"use strict";var nxe=[200,203,204,206,300,301,404,405,410,414,501],sxe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],oxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},axe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Hk(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function Axe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}h8.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=Hk(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=Hk(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Axe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&sxe.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||nxe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=Hk(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)oxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let t=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!axe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var vw=w((nnt,d8)=>{"use strict";d8.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var E8=w((snt,C8)=>{"use strict";var lxe=require("stream").Readable,cxe=vw(),m8=class extends lxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=cxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};C8.exports=m8});var y8=w((ont,I8)=>{"use strict";var uxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];I8.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(uxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var B8=w((ant,w8)=>{"use strict";var gxe=require("stream").PassThrough,fxe=y8(),hxe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new gxe;return fxe(r,e),r.pipe(e)};w8.exports=hxe});var b8=w(jk=>{jk.stringify=function r(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};jk.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var x8=w((lnt,Q8)=>{"use strict";var pxe=require("events"),S8=b8(),dxe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(require(e[t]))(r)}return new Map},v8=class extends pxe{constructor(e,t){super();if(this.opts=Object.assign({namespace:"keyv",serialize:S8.stringify,deserialize:S8.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=dxe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};Q8.exports=v8});var D8=w((cnt,k8)=>{"use strict";var Cxe=require("events"),xw=require("url"),mxe=e8(),Exe=f8(),Gk=p8(),P8=E8(),Ixe=vw(),yxe=B8(),wxe=x8(),ia=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new wxe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=Yk(xw.parse(t)),t={};else if(t instanceof xw.URL)n=Yk(xw.parse(t.toString())),t={};else{let[g,...f]=(t.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=Yk(te(N({},t),{pathname:g,search:h}))}t=N(N({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},t),Bxe(n)),t.headers=Ixe(t.headers);let s=new Cxe,o=mxe(xw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let v=Gk.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!v.modified){let x=v.policy.responseHeaders();y=new P8(l.statusCode,x,l.body,l.url),y.cachePolicy=v.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new Gk(g,y,g),y.fromCache=!1);let b;g.cache&&y.cachePolicy.storable()?(b=yxe(y),(async()=>{try{let v=Exe.buffer(y);if(await Promise.race([p,new Promise(Y=>y.once("end",Y))]),f)return;let x=await v,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:x},q=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(q=q?Math.min(q,g.maxTtl):g.maxTtl),await this.cache.set(a,T,q)}catch(v){s.emit("error",new ia.CacheError(v))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(v){s.emit("error",new ia.CacheError(v))}})(),s.emit("response",b||y),typeof i=="function"&&i(b||y)};try{let y=e(g,m);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new ia.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let m=Gk.fromObject(p.cachePolicy);if(m.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=m.responseHeaders(),b=new P8(p.statusCode,y,p.body,p.url);b.cachePolicy=m,b.fromCache=!0,s.emit("response",b),typeof i=="function"&&i(b)}else l=p,h.headers=m.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new ia.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(t)}catch(h){t.automaticFailover&&!c&&u(t),s.emit("error",new ia.CacheError(h))}})(),s}}};function Bxe(r){let e=N({},r);return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function Yk(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}ia.RequestError=class extends Error{constructor(r){super(r.message);this.name="RequestError",Object.assign(this,r)}};ia.CacheError=class extends Error{constructor(r){super(r.message);this.name="CacheError",Object.assign(this,r)}};k8.exports=ia});var F8=w((unt,R8)=>{"use strict";var bxe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];R8.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(bxe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var L8=w((gnt,N8)=>{"use strict";var{Transform:Qxe,PassThrough:Sxe}=require("stream"),qk=require("zlib"),vxe=F8();N8.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof qk.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new Qxe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new Sxe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?qk.createBrotliDecompress():qk.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),vxe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var Jk=w((fnt,T8)=>{"use strict";var O8=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};T8.exports=O8});var zk=w((hnt,M8)=>{"use strict";var xxe=require("events"),kxe=require("tls"),Pxe=require("http2"),Dxe=Jk(),gn=Symbol("currentStreamsCount"),K8=Symbol("request"),Ls=Symbol("cachedOriginSet"),ef=Symbol("gracefullyClosing"),Rxe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Fxe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},Nxe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,Wk=(r,e)=>{for(let t of r)t[Ls].lengthe[Ls].includes(i))&&t[gn]+e[gn]<=e.remoteSettings.maxConcurrentStreams&&U8(t)},Lxe=(r,e)=>{for(let t of r)e[Ls].lengtht[Ls].includes(i))&&e[gn]+t[gn]<=t.remoteSettings.maxConcurrentStreams&&U8(e)},H8=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[nA.kCurrentStreamsCount]{r[ef]=!0,r[gn]===0&&r.close()},nA=class extends xxe{constructor({timeout:e=6e4,maxSessions:t=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Dxe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of Rxe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=nA.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let m=p.remoteSettings.maxConcurrentStreams;if(m=m||p[ef]||p.destroyed)continue;h||(g=m),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);p(m)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=Pxe.connect(e,N({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},t));f[gn]=0,f[ef]=!1;let h=()=>f[gn]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:b}of i)b(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:b}of i)b(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Ls])if(y in this.queue[o]){let{listeners:b}=this.queue[o][y];for(;b.length!==0&&h();)b.shift().resolve(f);let v=this.queue[o];if(v[y].listeners.length===0&&(delete v[y],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Ls]=f.originSet,!!h()&&(m(),Wk(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let b of i)b.reject(y);f.destroy();return}f[Ls]=f.originSet;{let y=this.sessions;if(o in y){let b=y[o];b.splice(Fxe(b,f,Nxe),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),m(),l(),f[gn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{m(),Wk(this.sessions[o],f)})}),f[K8]=f.request,f.request=(y,b)=>{if(f[ef])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[K8](y,b);return f.ref(),++f[gn],f[gn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[gn],!f.destroyed&&!f.closed&&(Lxe(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let x=f[gn]===0;x&&f.unref(),x&&(this._freeSessionsCount>this.maxFreeSessions||f[ef])?f.close():(Wk(this.sessions[o],f),m())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return nA.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername=="undefined"&&(t.servername=n),kxe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[gn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return H8({agent:this,isFree:!0})}get busySessions(){return H8({agent:this,isFree:!1})}};nA.kCurrentStreamsCount=gn;nA.kGracefullyClosing=ef;M8.exports={Agent:nA,globalAgent:new nA}});var _k=w((pnt,j8)=>{"use strict";var{Readable:Txe}=require("stream"),G8=class extends Txe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};j8.exports=G8});var Vk=w((dnt,Y8)=>{"use strict";Y8.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var J8=w((Cnt,q8)=>{"use strict";q8.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var z8=w((mnt,W8)=>{"use strict";W8.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var V8=w((Int,_8)=>{"use strict";var tf=(r,e,t)=>{_8.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n));this.name=`${super.name} [${e}]`,this.code=e}}};tf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});tf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);tf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);tf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);tf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);tf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var eP=w((ynt,X8)=>{"use strict";var Oxe=require("http2"),{Writable:Mxe}=require("stream"),{Agent:Z8,globalAgent:Kxe}=zk(),Uxe=_k(),Hxe=Vk(),jxe=J8(),Gxe=z8(),{ERR_INVALID_ARG_TYPE:Xk,ERR_INVALID_PROTOCOL:Yxe,ERR_HTTP_HEADERS_SENT:$8,ERR_INVALID_HTTP_TOKEN:qxe,ERR_HTTP_INVALID_HEADER_VALUE:Jxe,ERR_INVALID_CHAR:Wxe}=V8(),{HTTP2_HEADER_STATUS:ez,HTTP2_HEADER_METHOD:tz,HTTP2_HEADER_PATH:rz,HTTP2_METHOD_CONNECT:zxe}=Oxe.constants,Wi=Symbol("headers"),Zk=Symbol("origin"),$k=Symbol("session"),iz=Symbol("options"),kw=Symbol("flushedHeaders"),Pd=Symbol("jobs"),_xe=/^[\^`\-\w!#$%&*+.|~]+$/,Vxe=/[^\t\u0020-\u007E\u0080-\u00FF]/,nz=class extends Mxe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Hxe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:N({},e)):t=N(N({},e),t),t.h2session)this[$k]=t.h2session;else if(t.agent===!1)this.agent=new Z8({maxFreeSessions:0});else if(typeof t.agent=="undefined"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new Z8({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=Kxe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new Xk("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new Yxe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Wi]=Object.create(null),this[Pd]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Wi])&&(this[Wi].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[iz]=t,s===443?(this[Zk]=`https://${o}`,":authority"in this[Wi]||(this[Wi][":authority"]=o)):(this[Zk]=`https://${o}:${s}`,":authority"in this[Wi]||(this[Wi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[kw]=!1}get method(){return this[Wi][tz]}set method(e){e&&(this[Wi][tz]=e.toUpperCase())}get path(){return this[Wi][rz]}set path(e){e&&(this[Wi][rz]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[Pd].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[Pd].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[kw]||this.destroyed)return;this[kw]=!0;let e=this.method===zxe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||jxe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new Uxe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[ez],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[ez]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[Pd])o();this.emit("socket",this.socket)};if(this[$k])try{t(this[$k].request(this[Wi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[Zk],this[iz],this[Wi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new Xk("name","string",e);return this[Wi][e.toLowerCase()]}get headersSent(){return this[kw]}removeHeader(e){if(typeof e!="string")throw new Xk("name","string",e);if(this.headersSent)throw new $8("remove");delete this[Wi][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new $8("set");if(typeof e!="string"||!_xe.test(e)&&!Gxe(e))throw new qxe("Header name",e);if(typeof t=="undefined")throw new Jxe(t,e);if(Vxe.test(t))throw new Wxe("header content",e);this[Wi][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[Pd].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};X8.exports=nz});var oz=w((wnt,sz)=>{"use strict";var Xxe=require("tls");sz.exports=(r={})=>new Promise((e,t)=>{let i=Xxe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var Az=w((Bnt,az)=>{"use strict";var Zxe=require("net");az.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),Zxe.isIP(e)?"":e}});var uz=w((bnt,tP)=>{"use strict";var lz=require("http"),rP=require("https"),$xe=oz(),eke=Jk(),tke=eP(),rke=Az(),ike=Vk(),Pw=new eke({maxSize:100}),Dd=new Map,cz=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},nke=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!Pw.has(e)){if(Dd.has(e))return(await Dd.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=$xe(r);Dd.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Pw.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=rP,l=rP.Agent.prototype.createConnection;i?i.createConnection===l?cz(i,s,r):s.destroy():a.createConnection===l?cz(a,s,r):s.destroy()}return Dd.delete(e),o}catch(s){throw Dd.delete(e),s}}return Pw.get(e)};tP.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=ike(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e=te(N(N({ALPNProtocols:["h2","http/1.1"]},r),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||rke(e),e.port=e.port||(i?443:80),e._defaultAgent=i?rP.globalAgent:lz.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await nke(e)==="h2"?(n&&(e.agent=n.http2),new tke(e,t)):lz.request(e,t)};tP.exports.protocolCache=Pw});var fz=w((Qnt,gz)=>{"use strict";var ske=require("http2"),oke=zk(),iP=eP(),ake=_k(),Ake=uz(),lke=(r,e,t)=>new iP(r,e,t),cke=(r,e,t)=>{let i=new iP(r,e,t);return i.end(),i};gz.exports=te(N(te(N({},ske),{ClientRequest:iP,IncomingMessage:ake}),oke),{request:lke,get:cke,auto:Ake})});var sP=w(nP=>{"use strict";Object.defineProperty(nP,"__esModule",{value:!0});var hz=iA();nP.default=r=>hz.default.nodeStream(r)&&hz.default.function_(r.getBoundary)});var mz=w(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});var pz=require("fs"),dz=require("util"),Cz=iA(),uke=sP(),gke=dz.promisify(pz.stat);oP.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(Cz.default.string(r))return Buffer.byteLength(r);if(Cz.default.buffer(r))return r.length;if(uke.default(r))return dz.promisify(r.getLength.bind(r))();if(r instanceof pz.ReadStream){let{size:t}=await gke(r.path);return t===0?void 0:t}}});var AP=w(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});function fke(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}aP.default=fke});var Ez=w(lP=>{"use strict";Object.defineProperty(lP,"__esModule",{value:!0});lP.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var yz=w(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.TimeoutError=void 0;var hke=require("net"),pke=Ez(),Iz=Symbol("reentry"),dke=()=>{},cP=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`);this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};Rd.TimeoutError=cP;Rd.default=(r,e,t)=>{if(Iz in r)return dke;r[Iz]=!0;let i=[],{once:n,unhandleAll:s}=pke.default(),o=(g,f,h)=>{var p;let m=setTimeout(f,g,g,h);(p=m.unref)===null||p===void 0||p.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,f)=>{r.destroy(new cP(g,f))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var f;let{socketPath:h}=r;if(g.connecting){let p=Boolean(h!=null?h:hke.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect!="undefined"){let m=()=>o(e.connect,c,"connect");p?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect!="undefined"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",p())}):n(r,"upload-complete",p())}}),typeof e.response!="undefined"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var Bz=w(uP=>{"use strict";Object.defineProperty(uP,"__esModule",{value:!0});var wz=iA();uP.default=r=>{r=r;let e={protocol:r.protocol,hostname:wz.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return wz.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var bz=w(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});var Cke=require("url"),mke=["protocol","host","hostname","port","pathname","search"];gP.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new Cke.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of mke)e[s]&&(n[s]=e[s].toString());return n}});var Sz=w(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});var Qz=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};fP.default=Qz});var pP=w(hP=>{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});var Eke=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};hP.default=Eke});var xz=w(Vc=>{"use strict";Object.defineProperty(Vc,"__esModule",{value:!0});Vc.dnsLookupIpVersionToFamily=Vc.isDnsLookupIpVersion=void 0;var vz={auto:0,ipv4:4,ipv6:6};Vc.isDnsLookupIpVersion=r=>r in vz;Vc.dnsLookupIpVersionToFamily=r=>{if(Vc.isDnsLookupIpVersion(r))return vz[r];throw new Error("Invalid DNS lookup IP version")}});var dP=w(Dw=>{"use strict";Object.defineProperty(Dw,"__esModule",{value:!0});Dw.isResponseOk=void 0;Dw.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var Pz=w(CP=>{"use strict";Object.defineProperty(CP,"__esModule",{value:!0});var kz=new Set;CP.default=r=>{kz.has(r)||(kz.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var Dz=w(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});var Ir=iA(),Ike=(r,e)=>{if(Ir.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ir.assert.any([Ir.default.string,Ir.default.undefined],r.encoding),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.resolveBodyOnly),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.methodRewriting),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.isStream),Ir.assert.any([Ir.default.string,Ir.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry=N({},e.retry):r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ir.default.object(t)?(r.retry=N(N({},r.retry),t),r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):Ir.default.number(t)&&(r.retry.limit=t),Ir.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(Ir.default.number))),Ir.default.object(r.pagination)){e&&(r.pagination=N(N({},e.pagination),r.pagination));let{pagination:i}=r;if(!Ir.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ir.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ir.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ir.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};mP.default=Ike});var Rz=w(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});Fd.retryAfterStatusCodes=void 0;Fd.retryAfterStatusCodes=new Set([413,429,503]);var yke=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};Fd.default=yke});var Ld=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.UnsupportedProtocolError=qt.ReadError=qt.TimeoutError=qt.UploadError=qt.CacheError=qt.HTTPError=qt.MaxRedirectsError=qt.RequestError=qt.setNonEnumerableProperties=qt.knownHookEvents=qt.withoutBody=qt.kIsNormalizedAlready=void 0;var Fz=require("util"),Nz=require("stream"),wke=require("fs"),gl=require("url"),Lz=require("http"),EP=require("http"),Bke=require("https"),bke=Y4(),Qke=X4(),Tz=D8(),Ske=L8(),vke=fz(),xke=vw(),Ee=iA(),kke=mz(),Oz=sP(),Pke=AP(),Mz=yz(),Dke=Bz(),Kz=bz(),Rke=Sz(),Fke=pP(),Uz=xz(),Nke=dP(),fl=Pz(),Lke=Dz(),Tke=Rz(),IP,Fi=Symbol("request"),Rw=Symbol("response"),rf=Symbol("responseSize"),nf=Symbol("downloadedSize"),sf=Symbol("bodySize"),of=Symbol("uploadedSize"),Fw=Symbol("serverResponsesPiped"),Hz=Symbol("unproxyEvents"),jz=Symbol("isFromCache"),yP=Symbol("cancelTimeouts"),Gz=Symbol("startedReading"),af=Symbol("stopReading"),Nw=Symbol("triggerRead"),hl=Symbol("body"),Nd=Symbol("jobs"),Yz=Symbol("originalResponse"),qz=Symbol("retryTimeout");qt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Oke=Ee.default.string(process.versions.brotli);qt.withoutBody=new Set(["GET","HEAD"]);qt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Mke(r){for(let e in r){let t=r[e];if(!Ee.default.string(t)&&!Ee.default.number(t)&&!Ee.default.boolean(t)&&!Ee.default.null_(t)&&!Ee.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function Kke(r){return Ee.default.object(r)&&!("statusCode"in r)}var wP=new Rke.default,Uke=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),Hke=new Set([300,301,302,303,304,307,308]),jke=["context","body","json","form"];qt.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of jke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var hi=class extends Error{constructor(e,t,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof BP?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Rw]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ee.default.string(t.stack)&&Ee.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` -`).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` -`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` -`)}${a.reverse().join(` -`)}`}}};qt.RequestError=hi;var bP=class extends hi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};qt.MaxRedirectsError=bP;var QP=class extends hi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};qt.HTTPError=QP;var SP=class extends hi{constructor(e,t){super(e.message,e,t);this.name="CacheError"}};qt.CacheError=SP;var vP=class extends hi{constructor(e,t){super(e.message,e,t);this.name="UploadError"}};qt.UploadError=vP;var xP=class extends hi{constructor(e,t,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=t}};qt.TimeoutError=xP;var Lw=class extends hi{constructor(e,t){super(e.message,e,t);this.name="ReadError"}};qt.ReadError=Lw;var kP=class extends hi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};qt.UnsupportedProtocolError=kP;var Gke=["socket","connect","continue","information","upgrade","timeout"],BP=class extends Nz.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0});this[nf]=0,this[of]=0,this.requestInitialized=!1,this[Fw]=new Set,this.redirects=[],this[af]=!1,this[Nw]=!1,this[Nd]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof EP.IncomingMessage&&(this.options.headers=N(N({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),qt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ee.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof wke.ReadStream&&await Uke(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Fi])===null||c===void 0||c.destroy();return}for(let g of this[Nd])g();this[Nd].length=0,this.requestInitialized=!0}catch(u){if(u instanceof hi){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ee.default.object(e)&&!Ee.default.urlInstance(e))t=N(N(N({},i),e),t);else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t=N(N({},i),t),e!==void 0&&(t.url=e),Ee.default.urlInstance(t.url)&&(t.url=new gl.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.method),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.headers),Ee.assert.any([Ee.default.string,Ee.default.urlInstance,Ee.default.undefined],t.prefixUrl),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cookieJar),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.searchParams),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.cache),Ee.assert.any([Ee.default.object,Ee.default.number,Ee.default.undefined],t.timeout),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.context),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.hooks),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.decompress),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.ignoreInvalidCookies),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.followRedirect),Ee.assert.any([Ee.default.number,Ee.default.undefined],t.maxRedirects),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.throwHttpErrors),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.http2),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.allowGetBody),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.localAddress),Ee.assert.any([Uz.isDnsLookupIpVersion,Ee.default.undefined],t.dnsLookupIpVersion),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.https),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.rejectUnauthorized),t.https&&(Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.https.rejectUnauthorized),Ee.assert.any([Ee.default.function_,Ee.default.undefined],t.https.checkServerIdentity),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificateAuthority),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.key),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificate),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.https.passphrase),Ee.assert.any([Ee.default.string,Ee.default.buffer,Ee.default.array,Ee.default.undefined],t.https.pfx)),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cacheOptions),Ee.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers=N({},t.headers):t.headers=xke(N(N({},i==null?void 0:i.headers),t.headers)),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ee.default.string(t.searchParams)||t.searchParams instanceof gl.URLSearchParams)h=new gl.URLSearchParams(t.searchParams);else{Mke(t.searchParams),h=new gl.URLSearchParams;for(let p in t.searchParams){let m=t.searchParams[p];m===null?h.append(p,""):m!==void 0&&h.append(p,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,m)=>{h.has(m)||h.append(m,p)}),t.searchParams=h}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ee.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ee.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=Kz.default(t.prefixUrl+t.url,t)}else(Ee.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=Kz.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:h}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${m}: ${y.href}`);t.url=new gl.URL(m+y.href.slice(h.length)),h=m},get:()=>h});let{protocol:p}=t.url;if(p==="unix:"&&(p="http:",t.url=new gl.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),p!=="http:"&&p!=="https:")throw new kP(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:h,getCookieString:p}=u;Ee.assert.function_(h),Ee.assert.function_(p),h.length===4&&p.length===0&&(h=Fz.promisify(h.bind(t.cookieJar)),p=Fz.promisify(p.bind(t.cookieJar)),t.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=t;if(g&&(wP.has(g)||wP.set(g,new Tz((h,p)=>{let m=h[Fi](h,p);return Ee.default.promise(m)&&(m.once=(y,b)=>{if(y==="error")m.catch(b);else if(y==="abort")(async()=>{try{(await m).once("abort",b)}catch(v){}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions=N({},t.cacheOptions),t.dnsCache===!0)IP||(IP=new Qke.default),t.dnsCache=IP;else if(!Ee.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ee.default(t.dnsCache)}`);Ee.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout=N(N({},i.timeout),t.timeout):t.timeout=N({},t.timeout),t.context||(t.context={});let f=t.hooks===(i==null?void 0:i.hooks);t.hooks=N({},t.hooks);for(let h of qt.knownHookEvents)if(h in t.hooks)if(Ee.default.array(t.hooks[h]))t.hooks[h]=[...t.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ee.default(t.hooks[h])}`);else t.hooks[h]=[];if(i&&!f)for(let h of qt.knownHookEvents)i.hooks[h].length>0&&(t.hooks[h]=[...i.hooks[h],...t.hooks[h]]);if("family"in t&&fl.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(t.https=N(N({},i.https),t.https)),"rejectUnauthorized"in t&&fl.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&fl.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&fl.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&fl.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&fl.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&fl.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&fl.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let h in t.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,qt.setNonEnumerableProperties([i,c],t),Lke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ee.default.undefined(e.form),n=!Ee.default.undefined(e.json),s=!Ee.default.undefined(e.body),o=i||n||s,a=qt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof Nz.Readable)&&!Ee.default.string(e.body)&&!Ee.default.buffer(e.body)&&!Oz.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ee.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ee.default.string(t["content-type"]);s?(Oz.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[hl]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[hl]=new gl.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[hl]=e.stringifyJson(e.json));let c=await kke.default(this[hl],e.headers);Ee.default.undefined(t["content-length"])&&Ee.default.undefined(t["transfer-encoding"])&&!a&&!Ee.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[sf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Yz]=e,t.decompress&&(e=Ske(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:Lz.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[jz]=s.isFromCache,this[rf]=Number(e.headers["content-length"])||void 0,this[Rw]=e,e.once("end",()=>{this[rf]=this[nf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new Lw(a,this))}),e.once("aborted",()=>{this._beforeError(new Lw({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ee.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&Hke.has(n)){if(e.resume(),this[Fi]&&(this[yP](),delete this[Fi],this[Hz]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[hl]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new bP(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new gl.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Nke.isResponseOk(s)){this._beforeError(new QP(s));return}e.on("readable",()=>{this[Nw]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Fw])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;bke.default(e),this[yP]=Mz.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof Mz.TimeoutError?new xP(l,this.timings,this):new hi(l.message,l,this),this._beforeError(l)}),this[Hz]=Pke.default(e,this,Gke),this[Fi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[hl],a=this.redirects.length===0?this:e;Ee.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new vP(l,this))})):(this._unlockWrite(),Ee.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Dke.default(e)),delete t.url;let s,o=wP.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let b in a)if(Ee.default.undefined(a[b]))delete a[b];else if(Ee.default.null_(a[b]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${b}\` header`);if(o.decompress&&Ee.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Oke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let b=await o.cookieJar.getCookieString(o.url.toString());Ee.default.nonEmptyString(b)&&(o.headers.cookie=b)}for(let b of o.hooks.beforeRequest){let v=await b(o);if(!Ee.default.undefined(v)){o.request=()=>v;break}}o.body&&this[hl]!==o.body&&(this[hl]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let b=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(b==null?void 0:b.groups){let{socketPath:v,path:x}=b.groups;Object.assign(o,{socketPath:v,path:x,host:""})}}let f=g.protocol==="https:",h;o.http2?h=vke.auto:h=f?Bke.request:Lz.request;let p=(e=o.request)!==null&&e!==void 0?e:h,m=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Fi]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=Uz.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(b){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let b=await m(g,y);Ee.default.undefined(b)&&(b=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),Kke(b)?this._onRequest(b):this.writable?(this.once("finish",()=>{this._onResponse(b)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(b)}catch(b){throw b instanceof Tz.CacheError?new SP(b,this):new hi(b.message,b,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new hi(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[af])return;let{options:t}=this,i=this.retryCount+1;this[af]=!0,e instanceof hi||(e=new hi(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Fke.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:Tke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new hi(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new hi(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[qz]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Nw]=!0;let e=this[Rw];if(e&&!this[af]){e.readableLength&&(this[Nw]=!1);let t;for(;(t=e.read())!==null;){this[nf]+=t.length,this[Gz]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[Nd].push(n)}_writeRequest(e,t,i){this[Fi].destroyed||(this._progressCallbacks.push(()=>{this[of]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Fi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Fi in this)){e();return}if(this[Fi].destroyed){e();return}this[Fi].end(i=>{i||(this[sf]=this[of],this.emit("uploadProgress",this.uploadProgress),this[Fi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[Nd].push(t)}_destroy(e,t){var i;this[af]=!0,clearTimeout(this[qz]),Fi in this&&(this[yP](),((i=this[Rw])===null||i===void 0?void 0:i.complete)||this[Fi].destroy()),e!==null&&!Ee.default.undefined(e)&&!(e instanceof hi)&&(e=new hi(e.message,e,this)),t(e)}get _isAboutToError(){return this[af]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Fi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!((i=this[Yz])===null||i===void 0?void 0:i.complete)}get socket(){var e,t;return(t=(e=this[Fi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[rf]?e=this[nf]/this[rf]:this[rf]===this[nf]?e=1:e=0,{percent:e,transferred:this[nf],total:this[rf]}}get uploadProgress(){let e;return this[sf]?e=this[of]/this[sf]:this[sf]===this[of]?e=1:e=0,{percent:e,transferred:this[of],total:this[sf]}}get timings(){var e;return(e=this[Fi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[jz]}pipe(e,t){if(this[Gz])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof EP.ServerResponse&&this[Fw].add(e),super.pipe(e,t)}unpipe(e){return e instanceof EP.ServerResponse&&this[Fw].delete(e),super.unpipe(e),this}};qt.default=BP});var Td=w(Co=>{"use strict";var Yke=Co&&Co.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),qke=Co&&Co.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Yke(e,r,t)};Object.defineProperty(Co,"__esModule",{value:!0});Co.CancelError=Co.ParseError=void 0;var Jz=Ld(),Wz=class extends Jz.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request);this.name="ParseError"}};Co.ParseError=Wz;var zz=class extends Jz.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};Co.CancelError=zz;qke(Ld(),Co)});var Vz=w(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var _z=Td(),Jke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new _z.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new _z.ParseError(s,r)}};PP.default=Jke});var DP=w(pl=>{"use strict";var Wke=pl&&pl.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),zke=pl&&pl.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Wke(e,r,t)};Object.defineProperty(pl,"__esModule",{value:!0});var _ke=require("events"),Vke=iA(),Xke=j4(),Tw=Td(),Xz=Vz(),Zz=Ld(),Zke=AP(),$ke=pP(),$z=dP(),ePe=["request","response","redirect","uploadProgress","downloadProgress"];function e5(r){let e,t,i=new _ke.EventEmitter,n=new Xke((o,a,l)=>{let c=u=>{let g=new Zz.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Tw.CancelError(g))),e=g,g.once("response",async p=>{var m;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await $ke.default(g),p.rawBody=y}catch(T){return}if(g._isAboutToError)return;let b=((m=p.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),v=["gzip","deflate","br"].includes(b),{options:x}=g;if(v&&!x.decompress)p.body=y;else try{p.body=Xz.default(p,x.responseType,x.parseJson,x.encoding)}catch(T){if(p.body=y.toString(),$z.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,q]of x.hooks.afterResponse.entries())p=await q(p,async Y=>{let $=Zz.default.normalizeArguments(void 0,te(N({},Y),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),x);$.hooks.afterResponse=$.hooks.afterResponse.slice(0,T);for(let ne of $.hooks.beforeRetry)await ne($);let _=e5($);return l(()=>{_.catch(()=>{}),_.cancel()}),_})}catch(T){g._beforeError(new Tw.RequestError(T.message,T,g));return}if(!$z.isResponseOk(p)){g._beforeError(new Tw.HTTPError(p));return}t=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:m}=g;if(p instanceof Tw.HTTPError&&!m.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,m)=>{var y,b;if(h===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Vke.default.nodeStream((b=m.request)===null||b===void 0?void 0:b.options.body)){f(m);return}c(p)}),Zke.default(g,i,ePe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return Xz.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}pl.default=e5;zke(Td(),pl)});var t5=w(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var tPe=Td();function rPe(r,...e){let t=(async()=>{if(r instanceof tPe.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}RP.default=rPe});var n5=w(FP=>{"use strict";Object.defineProperty(FP,"__esModule",{value:!0});var r5=iA();function i5(r){for(let e of Object.values(r))(r5.default.plainObject(e)||r5.default.array(e))&&i5(e);return Object.freeze(r)}FP.default=i5});var o5=w(s5=>{"use strict";Object.defineProperty(s5,"__esModule",{value:!0})});var NP=w(Ts=>{"use strict";var iPe=Ts&&Ts.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),nPe=Ts&&Ts.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&iPe(e,r,t)};Object.defineProperty(Ts,"__esModule",{value:!0});Ts.defaultHandler=void 0;var a5=iA(),Os=DP(),sPe=t5(),Ow=Ld(),oPe=n5(),aPe={RequestError:Os.RequestError,CacheError:Os.CacheError,ReadError:Os.ReadError,HTTPError:Os.HTTPError,MaxRedirectsError:Os.MaxRedirectsError,TimeoutError:Os.TimeoutError,ParseError:Os.ParseError,CancelError:Os.CancelError,UnsupportedProtocolError:Os.UnsupportedProtocolError,UploadError:Os.UploadError},APe=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:Mw}=Ow.default,A5=(...r)=>{let e;for(let t of r)e=Mw(void 0,t,e);return e},lPe=r=>r.isStream?new Ow.default(void 0,r):Os.default(r),cPe=r=>"defaults"in r&&"options"in r.defaults,uPe=["get","post","put","patch","head","delete"];Ts.defaultHandler=(r,e)=>e(r);var l5=(r,e)=>{if(r)for(let t of r)t(e)},c5=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?lPe:c);if(a5.default.plainObject(i)){let u=N(N({},i),n);Ow.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{l5(r.options.hooks.init,n),l5((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Mw(i,n,s!=null?s:r.options);if(g[Ow.kIsNormalizedAlready]=!0,u)throw new Os.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return sPe.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)cPe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Ts.defaultHandler),s.length===0&&s.push(Ts.defaultHandler),c5({options:A5(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=Mw(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!a5.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,te(N({},n),{isStream:!0}));for(let i of uPe)e[i]=(n,s)=>e(n,te(N({},s),{method:i})),e.stream[i]=(n,s)=>e(n,te(N({},s),{method:i,isStream:!0}));return Object.assign(e,aPe),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:oPe.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=A5,e};Ts.default=c5;nPe(o5(),Ts)});var Uw=w((sA,Kw)=>{"use strict";var gPe=sA&&sA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),u5=sA&&sA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&gPe(e,r,t)};Object.defineProperty(sA,"__esModule",{value:!0});var fPe=require("url"),g5=NP(),hPe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new fPe.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[g5.defaultHandler],mutableDefaults:!1},LP=g5.default(hPe);sA.default=LP;Kw.exports=LP;Kw.exports.default=LP;Kw.exports.__esModule=!0;u5(NP(),sA);u5(DP(),sA)});var d5=w(Af=>{"use strict";var znt=require("net"),pPe=require("tls"),TP=require("http"),f5=require("https"),dPe=require("events"),_nt=require("assert"),CPe=require("util");Af.httpOverHttp=mPe;Af.httpsOverHttp=EPe;Af.httpOverHttps=IPe;Af.httpsOverHttps=yPe;function mPe(r){var e=new oA(r);return e.request=TP.request,e}function EPe(r){var e=new oA(r);return e.request=TP.request,e.createSocket=h5,e.defaultPort=443,e}function IPe(r){var e=new oA(r);return e.request=f5.request,e}function yPe(r){var e=new oA(r);return e.request=f5.request,e.createSocket=h5,e.defaultPort=443,e}function oA(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||TP.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=p5(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};oA.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=OP({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),dl("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){dl("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){dl("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return dl("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,t(f)}function u(g){o.removeAllListeners(),dl(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};oA.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function h5(r,e){var t=this;oA.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=OP({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=pPe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function p5(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function OP(r){for(var e=1,t=arguments.length;e{C5.exports=d5()});var x5=w((Gw,jP)=>{var v5=Object.assign({},require("fs")),GP=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,m,y,b;g&&(u?f=require("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var D=xa(E);return D?I?D:D.toString():(y||(y=v5),b||(b=require("path")),E=b.normalize(E),y.readFileSync(E,I?null:"utf8"))},m=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),Z(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return"[Emscripten Module object]"});var v=t.print||console.log.bind(console),x=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var T=16;function q(d,E){return E||(E=T),Math.ceil(d/E)*E}var Y=0,$=function(d){Y=d},_;t.wasmBinary&&(_=t.wasmBinary);var ne=t.noExitRuntime||!0;typeof WebAssembly!="object"&&vr("no native wasm support detected");function ee(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return pe[d>>0];case"i8":return pe[d>>0];case"i16":return Qe[d>>1];case"i32":return fe[d>>2];case"i64":return fe[d>>2];case"float":return Ht[d>>2];case"double":return Mt[d>>3];default:vr("invalid type for getValue: "+E)}return null}var A,oe=!1,ce;function Z(d,E){d||vr("Assertion failed: "+E)}function O(d){var E=t["_"+d];return Z(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function L(d,E,I,D,M){var z={string:function(st){var yt=0;if(st!=null&&st!==0){var xe=(st.length<<2)+1;yt=B(xe),be(st,yt,xe)}return yt},array:function(st){var yt=B(st.length);return Ke(st,yt),yt}};function ie(st){return E==="string"?re(st):E==="boolean"?Boolean(st):st}var we=O(d),me=[],_e=0;if(D)for(var ot=0;ot=D);)++M;if(M-E>16&&d.subarray&&Be)return Be.decode(d.subarray(E,M));for(var z="";E>10,56320|_e&1023)}}return z}function re(d,E){return d?je(V,d,E):""}function se(d,E,I,D){if(!(D>0))return 0;for(var M=I,z=I+D-1,ie=0;ie=55296&&we<=57343){var me=d.charCodeAt(++ie);we=65536+((we&1023)<<10)|me&1023}if(we<=127){if(I>=z)break;E[I++]=we}else if(we<=2047){if(I+1>=z)break;E[I++]=192|we>>6,E[I++]=128|we&63}else if(we<=65535){if(I+2>=z)break;E[I++]=224|we>>12,E[I++]=128|we>>6&63,E[I++]=128|we&63}else{if(I+3>=z)break;E[I++]=240|we>>18,E[I++]=128|we>>12&63,E[I++]=128|we>>6&63,E[I++]=128|we&63}}return E[I]=0,I-M}function be(d,E,I){return se(d,V,E,I)}function he(d){for(var E=0,I=0;I=55296&&D<=57343&&(D=65536+((D&1023)<<10)|d.charCodeAt(++I)&1023),D<=127?++E:D<=2047?E+=2:D<=65535?E+=3:E+=4}return E}function Fe(d){var E=he(d)+1,I=Et(E);return I&&se(d,pe,I,E),I}function Ke(d,E){pe.set(d,E)}function ke(d,E){return d%E>0&&(d+=E-d%E),d}var ve,pe,V,Qe,le,fe,gt,Ht,Mt;function Ei(d){ve=d,t.HEAP8=pe=new Int8Array(d),t.HEAP16=Qe=new Int16Array(d),t.HEAP32=fe=new Int32Array(d),t.HEAPU8=V=new Uint8Array(d),t.HEAPU16=le=new Uint16Array(d),t.HEAPU32=gt=new Uint32Array(d),t.HEAPF32=Ht=new Float32Array(d),t.HEAPF64=Mt=new Float64Array(d)}var jt=t.INITIAL_MEMORY||16777216,Qr,Oi=[],Xs=[],Un=[],Hn=!1;function Sr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ba(t.preRun.shift());ko(Oi)}function jn(){Hn=!0,!t.noFSInit&&!S.init.initialized&&S.init(),ps.init(),ko(Xs)}function fs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Nu(t.postRun.shift());ko(Un)}function ba(d){Oi.unshift(d)}function DA(d){Xs.unshift(d)}function Nu(d){Un.unshift(d)}var hs=0,RA=null,Qa=null;function Lu(d){return d}function FA(d){hs++,t.monitorRunDependencies&&t.monitorRunDependencies(hs)}function NA(d){if(hs--,t.monitorRunDependencies&&t.monitorRunDependencies(hs),hs==0&&(RA!==null&&(clearInterval(RA),RA=null),Qa)){var E=Qa;Qa=null,E()}}t.preloadedImages={},t.preloadedAudios={};function vr(d){t.onAbort&&t.onAbort(d),d+="",x(d),oe=!0,ce=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var zl="data:application/octet-stream;base64,";function Tu(d){return d.startsWith(zl)}var xo="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";Tu(xo)||(xo=h(xo));function Ou(d){try{if(d==xo&&_)return new Uint8Array(_);var E=xa(d);if(E)return E;if(m)return m(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){vr(I)}}function Sh(d,E){var I,D,M;try{M=Ou(d),D=new WebAssembly.Module(M),I=new WebAssembly.Instance(D,E)}catch(ie){var z=ie.toString();throw x("failed to compile wasm module: "+z),(z.includes("imported Memory")||z.includes("memory import"))&&x("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ie}return[I,D]}function vh(){var d={a:ka};function E(M,z){var ie=M.exports;t.asm=ie,A=t.asm.u,Ei(A.buffer),Qr=t.asm.pa,DA(t.asm.v),NA("wasm-instantiate")}if(FA("wasm-instantiate"),t.instantiateWasm)try{var I=t.instantiateWasm(d,E);return I}catch(M){return x("Module.instantiateWasm callback failed with error: "+M),!1}var D=Sh(xo,d);return E(D[0]),t.asm}var Dr,Ae;function ko(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(t);continue}var I=E.func;typeof I=="number"?E.arg===void 0?Qr.get(I)():Qr.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function Gn(d,E){var I=new Date(fe[d>>2]*1e3);fe[E>>2]=I.getUTCSeconds(),fe[E+4>>2]=I.getUTCMinutes(),fe[E+8>>2]=I.getUTCHours(),fe[E+12>>2]=I.getUTCDate(),fe[E+16>>2]=I.getUTCMonth(),fe[E+20>>2]=I.getUTCFullYear()-1900,fe[E+24>>2]=I.getUTCDay(),fe[E+36>>2]=0,fe[E+32>>2]=0;var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[E+28>>2]=M,Gn.GMTString||(Gn.GMTString=Fe("GMT")),fe[E+40>>2]=Gn.GMTString,E}function Mu(d,E){return Gn(d,E)}var St={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,D=d.length-1;D>=0;D--){var M=d[D];M==="."?d.splice(D,1):M===".."?(d.splice(D,1),I++):I&&(d.splice(D,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=St.normalizeArray(d.split("/").filter(function(D){return!!D}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=St.splitPath(d),I=E[0],D=E[1];return!I&&!D?".":(D&&(D=D.substr(0,D.length-1)),I+D)},basename:function(d){if(d==="/")return"/";d=St.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return St.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return St.normalize(d.join("/"))},join2:function(d,E){return St.normalize(d+"/"+E)}};function _l(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=require("crypto");return function(){return E.randomBytes(1)[0]}}catch(I){}return function(){vr("randomDevice")}}var Yn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var D=I>=0?arguments[I]:S.cwd();if(typeof D!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!D)return"";d=D+"/"+d,E=D.charAt(0)==="/"}return d=St.normalizeArray(d.split("/").filter(function(M){return!!M}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=Yn.resolve(d).substr(1),E=Yn.resolve(E).substr(1);function I(_e){for(var ot=0;ot<_e.length&&_e[ot]==="";ot++);for(var Bt=_e.length-1;Bt>=0&&_e[Bt]==="";Bt--);return ot>Bt?[]:_e.slice(ot,Bt-ot+1)}for(var D=I(d.split("/")),M=I(E.split("/")),z=Math.min(D.length,M.length),ie=z,we=0;we0?E=D.slice(0,M).toString("utf-8"):E=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` -`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;d.input=TA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(je(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(je(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(x(je(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(x(je(d.output,0)),d.output=[])}}};function ds(d){for(var E=q(d,65536),I=Et(E);d=E)){var D=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var M=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(M.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&pt.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,D){return pt.createNode(d,E,I,D)},rename:function(d,E,I){if(S.isDir(d.mode)){var D;try{D=S.lookupNode(E,I)}catch(z){}if(D)for(var M in D.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var D in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var D=pt.createNode(d,E,511|40960,0);return D.link=I,D},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,D,M){var z=d.node.contents;if(M>=d.node.usedBytes)return 0;var ie=Math.min(d.node.usedBytes-M,D);if(ie>8&&z.subarray)E.set(z.subarray(M,M+ie),I);else for(var we=0;we0||D+I>2)}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),St.join.apply(null,E)},flagsForNode:function(d){d&=~2097152,d&=~2048,d&=~32768,d&=~524288;var E=0;for(var I in lt.flagsForNodeMap)d&I&&(E|=lt.flagsForNodeMap[I],d^=I);if(d)throw new S.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=lt.realPath(d),I;try{I=Oe.lstatSync(E)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}return lt.isWindows&&!I.blksize&&(I.blksize=4096),lt.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=lt.realPath(d);try{if(E.mode!==void 0&&(Oe.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var D=new Date(E.timestamp);Oe.utimesSync(I,D,D)}E.size!==void 0&&Oe.truncateSync(I,E.size)}catch(M){throw M.code?new S.ErrnoError(lt.convertNodeCode(M)):M}},lookup:function(d,E){var I=St.join2(lt.realPath(d),E),D=lt.getMode(I);return lt.createNode(d,E,D)},mknod:function(d,E,I,D){var M=lt.createNode(d,E,I,D),z=lt.realPath(M);try{S.isDir(M.mode)?Oe.mkdirSync(z,M.mode):Oe.writeFileSync(z,"",{mode:M.mode})}catch(ie){throw ie.code?new S.ErrnoError(lt.convertNodeCode(ie)):ie}return M},rename:function(d,E,I){var D=lt.realPath(d),M=St.join2(lt.realPath(E),I);try{Oe.renameSync(D,M)}catch(z){throw z.code?new S.ErrnoError(lt.convertNodeCode(z)):z}d.name=I},unlink:function(d,E){var I=St.join2(lt.realPath(d),E);try{Oe.unlinkSync(I)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}},rmdir:function(d,E){var I=St.join2(lt.realPath(d),E);try{Oe.rmdirSync(I)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}},readdir:function(d){var E=lt.realPath(d);try{return Oe.readdirSync(E)}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}},symlink:function(d,E,I){var D=St.join2(lt.realPath(d),E);try{Oe.symlinkSync(I,D)}catch(M){throw M.code?new S.ErrnoError(lt.convertNodeCode(M)):M}},readlink:function(d){var E=lt.realPath(d);try{return E=Oe.readlinkSync(E),E=Hu.relative(Hu.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=lt.realPath(d.node);try{S.isFile(d.node.mode)&&(d.nfd=Oe.openSync(E,lt.flagsForNode(d.flags)))}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}},close:function(d){try{S.isFile(d.node.mode)&&d.nfd&&Oe.closeSync(d.nfd)}catch(E){throw E.code?new S.ErrnoError(lt.convertNodeCode(E)):E}},read:function(d,E,I,D,M){if(D===0)return 0;try{return Oe.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(z){throw new S.ErrnoError(lt.convertNodeCode(z))}},write:function(d,E,I,D,M){try{return Oe.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(z){throw new S.ErrnoError(lt.convertNodeCode(z))}},llseek:function(d,E,I){var D=E;if(I===1)D+=d.position;else if(I===2&&S.isFile(d.node.mode))try{var M=Oe.fstatSync(d.nfd);D+=M.size}catch(z){throw new S.ErrnoError(lt.convertNodeCode(z))}if(D<0)throw new S.ErrnoError(28);return D},mmap:function(d,E,I,D,M,z){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var ie=ds(I);return lt.stream_ops.read(d,pe,ie,I,D),{ptr:ie,allocated:!0}},msync:function(d,E,I,D,M){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(M&2)return 0;var z=lt.stream_ops.write(d,E,0,D,I,!1);return 0}}},mn={lookupPath:function(d){return{path:d,node:{mode:lt.getMode(d)}}},createStandardStreams:function(){S.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)S.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){S.isDir(d)?Oe.mkdirSync(d,E):Oe.writeFileSync(d,"",{mode:E})},mkdir:function(){Oe.mkdirSync.apply(void 0,arguments)},symlink:function(){Oe.symlinkSync.apply(void 0,arguments)},rename:function(){Oe.renameSync.apply(void 0,arguments)},rmdir:function(){Oe.rmdirSync.apply(void 0,arguments)},readdir:function(){Oe.readdirSync.apply(void 0,arguments)},unlink:function(){Oe.unlinkSync.apply(void 0,arguments)},readlink:function(){return Oe.readlinkSync.apply(void 0,arguments)},stat:function(){return Oe.statSync.apply(void 0,arguments)},lstat:function(){return Oe.lstatSync.apply(void 0,arguments)},chmod:function(){Oe.chmodSync.apply(void 0,arguments)},fchmod:function(){Oe.fchmodSync.apply(void 0,arguments)},chown:function(){Oe.chownSync.apply(void 0,arguments)},fchown:function(){Oe.fchownSync.apply(void 0,arguments)},truncate:function(){Oe.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new S.ErrnoError(28);Oe.ftruncateSync.apply(void 0,arguments)},utime:function(){Oe.utimesSync.apply(void 0,arguments)},open:function(d,E,I,D){typeof E=="string"&&(E=$s.modeStringToFlags(E));var M=Oe.openSync(d,lt.flagsForNode(E),I),z=D!=null?D:S.nextfd(M),ie={fd:z,nfd:M,position:0,path:d,flags:E,seekable:!0};return S.streams[z]=ie,ie},close:function(d){d.stream_ops||Oe.closeSync(d.nfd),S.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return $s.llseek(d,E,I);var D=E;if(I===1)D+=d.position;else if(I===2)D+=Oe.fstatSync(d.nfd).size;else if(I!==0)throw new S.ErrnoError(Po.EINVAL);if(D<0)throw new S.ErrnoError(Po.EINVAL);return d.position=D,D},read:function(d,E,I,D,M){if(d.stream_ops)return $s.read(d,E,I,D,M);var z=typeof M!="undefined";!z&&d.seekable&&(M=d.position);var ie=Oe.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return z||(d.position+=ie),ie},write:function(d,E,I,D,M){if(d.stream_ops)return $s.write(d,E,I,D,M);d.flags&+"1024"&&S.llseek(d,0,+"2");var z=typeof M!="undefined";!z&&d.seekable&&(M=d.position);var ie=Oe.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return z||(d.position+=ie),ie},allocate:function(){throw new S.ErrnoError(Po.EOPNOTSUPP)},mmap:function(d,E,I,D,M,z){if(d.stream_ops)return $s.mmap(d,E,I,D,M,z);if(E!==0)throw new S.ErrnoError(28);var ie=ds(I);return S.read(d,pe,ie,I,D),{ptr:ie,allocated:!0}},msync:function(d,E,I,D,M){return d.stream_ops?$s.msync(d,E,I,D,M):(M&2||S.write(d,E,0,D,I),0)},munmap:function(){return 0},ioctl:function(){throw new S.ErrnoError(Po.ENOTTY)}},S={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=Yn.resolve(S.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var D in I)E[D]===void 0&&(E[D]=I[D]);if(E.recurse_count>8)throw new S.ErrnoError(32);for(var M=St.normalizeArray(d.split("/").filter(function(ut){return!!ut}),!1),z=S.root,ie="/",we=0;we40)throw new S.ErrnoError(32)}}return{path:ie,node:z}},getPath:function(d){for(var E;;){if(S.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,D=0;D>>0)%S.nameTable.length},hashAddNode:function(d){var E=S.hashName(d.parent.id,d.name);d.name_next=S.nameTable[E],S.nameTable[E]=d},hashRemoveNode:function(d){var E=S.hashName(d.parent.id,d.name);if(S.nameTable[E]===d)S.nameTable[E]=d.name_next;else for(var I=S.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=S.mayLookup(d);if(I)throw new S.ErrnoError(I,d);for(var D=S.hashName(d.id,E),M=S.nameTable[D];M;M=M.name_next){var z=M.name;if(M.parent.id===d.id&&z===E)return M}return S.lookup(d,E)},createNode:function(d,E,I,D){var M=new S.FSNode(d,E,I,D);return S.hashAddNode(M),M},destroyNode:function(d){S.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)==32768},isDir:function(d){return(d&61440)==16384},isLink:function(d){return(d&61440)==40960},isChrdev:function(d){return(d&61440)==8192},isBlkdev:function(d){return(d&61440)==24576},isFIFO:function(d){return(d&61440)==4096},isSocket:function(d){return(d&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=S.flagModes[d];if(typeof E=="undefined")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return S.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=S.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=S.lookupNode(d,E);return 20}catch(D){}return S.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var D;try{D=S.lookupNode(d,E)}catch(z){return z.errno}var M=S.nodePermissions(d,"wx");if(M)return M;if(I){if(!S.isDir(D.mode))return 54;if(S.isRoot(D)||S.getPath(D)===S.cwd())return 10}else if(S.isDir(D.mode))return 31;return 0},mayOpen:function(d,E){return d?S.isLink(d.mode)?32:S.isDir(d.mode)&&(S.flagsToPermissionString(E)!=="r"||E&512)?31:S.nodePermissions(d,S.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||S.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!S.streams[I])return I;throw new S.ErrnoError(33)},getStream:function(d){return S.streams[d]},createStream:function(d,E,I){S.FSStream||(S.FSStream=function(){},S.FSStream.prototype={object:{get:function(){return this.node},set:function(ie){this.node=ie}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var D=new S.FSStream;for(var M in d)D[M]=d[M];d=D;var z=S.nextfd(E,I);return d.fd=z,S.streams[z]=d,d},closeStream:function(d){S.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=S.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new S.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){S.devices[d]={stream_ops:E}},getDevice:function(d){return S.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var D=I.pop();E.push(D),I.push.apply(I,D.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),S.syncFSRequests++,S.syncFSRequests>1&&x("warning: "+S.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=S.getMounts(S.root.mount),D=0;function M(ie){return S.syncFSRequests--,E(ie)}function z(ie){if(ie)return z.errored?void 0:(z.errored=!0,M(ie));++D>=I.length&&M(null)}I.forEach(function(ie){if(!ie.type.syncfs)return z(null);ie.type.syncfs(ie,d,z)})},mount:function(d,E,I){var D=I==="/",M=!I,z;if(D&&S.root)throw new S.ErrnoError(10);if(!D&&!M){var ie=S.lookupPath(I,{follow_mount:!1});if(I=ie.path,z=ie.node,S.isMountpoint(z))throw new S.ErrnoError(10);if(!S.isDir(z.mode))throw new S.ErrnoError(54)}var we={type:d,opts:E,mountpoint:I,mounts:[]},me=d.mount(we);return me.mount=we,we.root=me,D?S.root=me:z&&(z.mounted=we,z.mount&&z.mount.mounts.push(we)),me},unmount:function(d){var E=S.lookupPath(d,{follow_mount:!1});if(!S.isMountpoint(E.node))throw new S.ErrnoError(28);var I=E.node,D=I.mounted,M=S.getMounts(D);Object.keys(S.nameTable).forEach(function(ie){for(var we=S.nameTable[ie];we;){var me=we.name_next;M.includes(we.mount)&&S.destroyNode(we),we=me}}),I.mounted=null;var z=I.mount.mounts.indexOf(D);I.mount.mounts.splice(z,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var D=S.lookupPath(d,{parent:!0}),M=D.node,z=St.basename(d);if(!z||z==="."||z==="..")throw new S.ErrnoError(28);var ie=S.mayCreate(M,z);if(ie)throw new S.ErrnoError(ie);if(!M.node_ops.mknod)throw new S.ErrnoError(63);return M.node_ops.mknod(M,z,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,S.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=511|512,E|=16384,S.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),D="",M=0;Mthis.length-1||ut<0)){var st=ut%this.chunkSize,yt=ut/this.chunkSize|0;return this.getter(yt)[st]}},z.prototype.setDataGetter=function(ut){this.getter=ut},z.prototype.cacheLength=function(){var ut=new XMLHttpRequest;if(ut.open("HEAD",I,!1),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+I+". Status: "+ut.status);var st=Number(ut.getResponseHeader("Content-length")),yt,xe=(yt=ut.getResponseHeader("Accept-Ranges"))&&yt==="bytes",Wn=(yt=ut.getResponseHeader("Content-Encoding"))&&yt==="gzip",Mi=1024*1024;xe||(Mi=st);var HA=function(Cs,Pa){if(Cs>Pa)throw new Error("invalid range ("+Cs+", "+Pa+") or no bytes requested!");if(Pa>st-1)throw new Error("only "+st+" bytes available! programmer error!");var qr=new XMLHttpRequest;if(qr.open("GET",I,!1),st!==Mi&&qr.setRequestHeader("Range","bytes="+Cs+"-"+Pa),typeof Uint8Array!="undefined"&&(qr.responseType="arraybuffer"),qr.overrideMimeType&&qr.overrideMimeType("text/plain; charset=x-user-defined"),qr.send(null),!(qr.status>=200&&qr.status<300||qr.status===304))throw new Error("Couldn't load "+I+". Status: "+qr.status);return qr.response!==void 0?new Uint8Array(qr.response||[]):TA(qr.responseText||"",!0)},Yr=this;Yr.setDataGetter(function(Cs){var Pa=Cs*Mi,qr=(Cs+1)*Mi-1;if(qr=Math.min(qr,st-1),typeof Yr.chunks[Cs]=="undefined"&&(Yr.chunks[Cs]=HA(Pa,qr)),typeof Yr.chunks[Cs]=="undefined")throw new Error("doXHR failed!");return Yr.chunks[Cs]}),(Wn||!st)&&(Mi=st=1,st=this.getter(0).length,Mi=st,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=st,this._chunkSize=Mi,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ie=new z;Object.defineProperties(ie,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var we={isDevice:!1,contents:ie}}else var we={isDevice:!1,url:I};var me=S.createFile(d,E,we,D,M);we.contents?me.contents=we.contents:we.url&&(me.contents=null,me.url=we.url),Object.defineProperties(me,{usedBytes:{get:function(){return this.contents.length}}});var _e={},ot=Object.keys(me.stream_ops);return ot.forEach(function(Bt){var ut=me.stream_ops[Bt];_e[Bt]=function(){return S.forceLoadFile(me),ut.apply(null,arguments)}}),_e.read=function(ut,st,yt,xe,Wn){S.forceLoadFile(me);var Mi=ut.node.contents;if(Wn>=Mi.length)return 0;var HA=Math.min(Mi.length-Wn,xe);if(Mi.slice)for(var Yr=0;Yr>2]=D.dev,fe[I+4>>2]=0,fe[I+8>>2]=D.ino,fe[I+12>>2]=D.mode,fe[I+16>>2]=D.nlink,fe[I+20>>2]=D.uid,fe[I+24>>2]=D.gid,fe[I+28>>2]=D.rdev,fe[I+32>>2]=0,Ae=[D.size>>>0,(Dr=D.size,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[I+40>>2]=Ae[0],fe[I+44>>2]=Ae[1],fe[I+48>>2]=4096,fe[I+52>>2]=D.blocks,fe[I+56>>2]=D.atime.getTime()/1e3|0,fe[I+60>>2]=0,fe[I+64>>2]=D.mtime.getTime()/1e3|0,fe[I+68>>2]=0,fe[I+72>>2]=D.ctime.getTime()/1e3|0,fe[I+76>>2]=0,Ae=[D.ino>>>0,(Dr=D.ino,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[I+80>>2]=Ae[0],fe[I+84>>2]=Ae[1],0},doMsync:function(d,E,I,D,M){var z=V.slice(d,d+I);S.msync(E,z,M,I,D)},doMkdir:function(d,E){return d=St.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),S.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return S.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var D=S.readlink(d),M=Math.min(I,he(D)),z=pe[E+M];return be(D,E,I+1),pe[E+M]=z,M},doAccess:function(d,E){if(E&~7)return-28;var I,D=S.lookupPath(d,{follow:!0});if(I=D.node,!I)return-44;var M="";return E&4&&(M+="r"),E&2&&(M+="w"),E&1&&(M+="x"),M&&S.nodePermissions(I,M)?-2:0},doDup:function(d,E,I){var D=S.getStream(I);return D&&S.close(D),S.open(d,E,0,I,I).fd},doReadv:function(d,E,I,D){for(var M=0,z=0;z>2],we=fe[E+(z*8+4)>>2],me=S.read(d,pe,ie,we,D);if(me<0)return-1;if(M+=me,me>2],we=fe[E+(z*8+4)>>2],me=S.write(d,pe,ie,we,D);if(me<0)return-1;M+=me}return M},varargs:void 0,get:function(){Tt.varargs+=4;var d=fe[Tt.varargs-4>>2];return d},getStr:function(d){var E=re(d);return E},getStreamFromFD:function(d){var E=S.getStream(d);if(!E)throw new S.ErrnoError(8);return E},get64:function(d,E){return d}};function Ku(d,E){try{return d=Tt.getStr(d),S.chmod(d,E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function Vl(d){return fe[Rt()>>2]=d,d}function xh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 0:{var M=Tt.get();if(M<0)return-28;var z;return z=S.open(D.path,D.flags,0,M),z.fd}case 1:case 2:return 0;case 3:return D.flags;case 4:{var M=Tt.get();return D.flags|=M,0}case 12:{var M=Tt.get(),ie=0;return Qe[M+ie>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Vl(28),-1;default:return-28}}catch(we){return(typeof S=="undefined"||!(we instanceof S.ErrnoError))&&vr(we),-we.errno}}function kh(d,E){try{var I=Tt.getStreamFromFD(d);return Tt.doStat(S.stat,I.path,E)}catch(D){return(typeof S=="undefined"||!(D instanceof S.ErrnoError))&&vr(D),-D.errno}}function Ph(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 21509:case 21505:return D.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return D.tty?0:-59;case 21519:{if(!D.tty)return-59;var M=Tt.get();return fe[M>>2]=0,0}case 21520:return D.tty?-28:-59;case 21531:{var M=Tt.get();return S.ioctl(D,E,M)}case 21523:return D.tty?0:-59;case 21524:return D.tty?0:-59;default:vr("bad ioctl syscall "+E)}}catch(z){return(typeof S=="undefined"||!(z instanceof S.ErrnoError))&&vr(z),-z.errno}}function Dh(d,E,I){Tt.varargs=I;try{var D=Tt.getStr(d),M=I?Tt.get():0,z=S.open(D,E,M);return z.fd}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),-ie.errno}}function Rh(d,E){try{return d=Tt.getStr(d),E=Tt.getStr(E),S.rename(d,E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function j(d){try{return d=Tt.getStr(d),S.rmdir(d),0}catch(E){return(typeof S=="undefined"||!(E instanceof S.ErrnoError))&&vr(E),-E.errno}}function wt(d,E){try{return d=Tt.getStr(d),Tt.doStat(S.stat,d,E)}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function LA(d){try{return d=Tt.getStr(d),S.unlink(d),0}catch(E){return(typeof S=="undefined"||!(E instanceof S.ErrnoError))&&vr(E),-E.errno}}function $i(d,E,I){V.copyWithin(d,E,E+I)}function Xl(d){try{return A.grow(d-ve.byteLength+65535>>>16),Ei(A.buffer),1}catch(E){}}function $e(d){var E=V.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var D=1;D<=4;D*=2){var M=E*(1+.2/D);M=Math.min(M,d+100663296);var z=Math.min(I,ke(Math.max(d,M),65536)),ie=Xl(z);if(ie)return!0}return!1}function Sa(d){try{var E=Tt.getStreamFromFD(d);return S.close(E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),I.errno}}function Uu(d,E){try{var I=Tt.getStreamFromFD(d),D=I.tty?2:S.isDir(I.mode)?3:S.isLink(I.mode)?7:4;return pe[E>>0]=D,0}catch(M){return(typeof S=="undefined"||!(M instanceof S.ErrnoError))&&vr(M),M.errno}}function yE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),z=Tt.doReadv(M,E,I);return fe[D>>2]=z,0}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),ie.errno}}function Fh(d,E,I,D,M){try{var z=Tt.getStreamFromFD(d),ie=4294967296,we=I*ie+(E>>>0),me=9007199254740992;return we<=-me||we>=me?-61:(S.llseek(z,we,D),Ae=[z.position>>>0,(Dr=z.position,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[M>>2]=Ae[0],fe[M+4>>2]=Ae[1],z.getdents&&we===0&&D===0&&(z.getdents=null),0)}catch(_e){return(typeof S=="undefined"||!(_e instanceof S.ErrnoError))&&vr(_e),_e.errno}}function wE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),z=Tt.doWritev(M,E,I);return fe[D>>2]=z,0}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),ie.errno}}function gr(d){$(d)}function qn(d){var E=Date.now()/1e3|0;return d&&(fe[d>>2]=E),E}function Zl(){if(Zl.called)return;Zl.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),D=E.getTimezoneOffset(),M=I.getTimezoneOffset(),z=Math.max(D,M);fe[zb()>>2]=z*60,fe[Wb()>>2]=Number(D!=M);function ie(Bt){var ut=Bt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ut?ut[1]:"GMT"}var we=ie(E),me=ie(I),_e=Fe(we),ot=Fe(me);M>2]=_e,fe[Wu()+4>>2]=ot):(fe[Wu()>>2]=ot,fe[Wu()+4>>2]=_e)}function Nh(d){Zl();var E=Date.UTC(fe[d+20>>2]+1900,fe[d+16>>2],fe[d+12>>2],fe[d+8>>2],fe[d+4>>2],fe[d>>2],0),I=new Date(E);fe[d+24>>2]=I.getUTCDay();var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[d+28>>2]=M,I.getTime()/1e3|0}var Zs=function(d,E,I,D){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=S.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=D},va=292|73,En=146;if(Object.defineProperties(Zs.prototype,{read:{get:function(){return(this.mode&va)===va},set:function(d){d?this.mode|=va:this.mode&=~va}},write:{get:function(){return(this.mode&En)===En},set:function(d){d?this.mode|=En:this.mode&=~En}},isFolder:{get:function(){return S.isDir(this.mode)}},isDevice:{get:function(){return S.isChrdev(this.mode)}}}),S.FSNode=Zs,S.staticInit(),g){var Oe=v5,Hu=require("path");lt.staticInit()}if(g){var $l=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new S.ErrnoError(Po[E.code]):E}}},$s=Object.assign({},S);for(var ec in mn)S[ec]=$l(mn[ec])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function TA(d,E,I){var D=I>0?I:he(d)+1,M=new Array(D),z=se(d,M,0,M.length);return E&&(M.length=z),M}var ju=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",D,M,z,ie,we,me,_e,ot=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ie=E.indexOf(d.charAt(ot++)),we=E.indexOf(d.charAt(ot++)),me=E.indexOf(d.charAt(ot++)),_e=E.indexOf(d.charAt(ot++)),D=ie<<2|we>>4,M=(we&15)<<4|me>>2,z=(me&3)<<6|_e,I=I+String.fromCharCode(D),me!==64&&(I=I+String.fromCharCode(M)),_e!==64&&(I=I+String.fromCharCode(z));while(ot0||(Sr(),hs>0))return;function E(){Ue||(Ue=!0,t.calledRun=!0,!oe&&(jn(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),fs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=UA,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return UA(),e}}();typeof Gw=="object"&&typeof jP=="object"?jP.exports=GP:typeof define=="function"&&define.amd?define([],function(){return GP}):typeof Gw=="object"&&(Gw.createModule=GP)});var $5=w((Nst,Z5)=>{function KPe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var UPe=Array.isArray;e9.exports=UPe});var o9=w((Tst,t9)=>{var r9=Jc(),HPe=$5(),jPe=Ks(),GPe=Id(),YPe=1/0,i9=r9?r9.prototype:void 0,n9=i9?i9.toString:void 0;function s9(r){if(typeof r=="string")return r;if(jPe(r))return HPe(r,s9)+"";if(GPe(r))return n9?n9.call(r):"";var e=r+"";return e=="0"&&1/r==-YPe?"-0":e}t9.exports=s9});var lf=w((Ost,a9)=>{var qPe=o9();function JPe(r){return r==null?"":qPe(r)}a9.exports=JPe});var VP=w((Mst,A9)=>{function WPe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var zPe=VP();function _Pe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:zPe(r,e,t)}l9.exports=_Pe});var XP=w((Ust,u9)=>{var VPe="\\ud800-\\udfff",XPe="\\u0300-\\u036f",ZPe="\\ufe20-\\ufe2f",$Pe="\\u20d0-\\u20ff",eDe=XPe+ZPe+$Pe,tDe="\\ufe0e\\ufe0f",rDe="\\u200d",iDe=RegExp("["+rDe+VPe+eDe+tDe+"]");function nDe(r){return iDe.test(r)}u9.exports=nDe});var f9=w((Hst,g9)=>{function sDe(r){return r.split("")}g9.exports=sDe});var y9=w((jst,h9)=>{var p9="\\ud800-\\udfff",oDe="\\u0300-\\u036f",aDe="\\ufe20-\\ufe2f",ADe="\\u20d0-\\u20ff",lDe=oDe+aDe+ADe,cDe="\\ufe0e\\ufe0f",uDe="["+p9+"]",ZP="["+lDe+"]",$P="\\ud83c[\\udffb-\\udfff]",gDe="(?:"+ZP+"|"+$P+")",d9="[^"+p9+"]",C9="(?:\\ud83c[\\udde6-\\uddff]){2}",m9="[\\ud800-\\udbff][\\udc00-\\udfff]",fDe="\\u200d",E9=gDe+"?",I9="["+cDe+"]?",hDe="(?:"+fDe+"(?:"+[d9,C9,m9].join("|")+")"+I9+E9+")*",pDe=I9+E9+hDe,dDe="(?:"+[d9+ZP+"?",ZP,C9,m9,uDe].join("|")+")",CDe=RegExp($P+"(?="+$P+")|"+dDe+pDe,"g");function mDe(r){return r.match(CDe)||[]}h9.exports=mDe});var B9=w((Gst,w9)=>{var EDe=f9(),IDe=XP(),yDe=y9();function wDe(r){return IDe(r)?yDe(r):EDe(r)}w9.exports=wDe});var Q9=w((Yst,b9)=>{var BDe=c9(),bDe=XP(),QDe=B9(),SDe=lf();function vDe(r){return function(e){e=SDe(e);var t=bDe(e)?QDe(e):void 0,i=t?t[0]:e.charAt(0),n=t?BDe(t,1).join(""):e.slice(1);return i[r]()+n}}b9.exports=vDe});var v9=w((qst,S9)=>{var xDe=Q9(),kDe=xDe("toUpperCase");S9.exports=kDe});var Zw=w((Jst,x9)=>{var PDe=lf(),DDe=v9();function RDe(r){return DDe(PDe(r).toLowerCase())}x9.exports=RDe});var k9=w((Wst,$w)=>{function FDe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,m=15,y=16,b=17,v=0,x=1,T=2,q=3,Y=4;function $(A,oe){return 55296<=A.charCodeAt(oe)&&A.charCodeAt(oe)<=56319&&56320<=A.charCodeAt(oe+1)&&A.charCodeAt(oe+1)<=57343}function _(A,oe){oe===void 0&&(oe=0);var ce=A.charCodeAt(oe);if(55296<=ce&&ce<=56319&&oe=1){var Z=A.charCodeAt(oe-1),O=ce;return 55296<=Z&&Z<=56319?(Z-55296)*1024+(O-56320)+65536:O}return ce}function ne(A,oe,ce){var Z=[A].concat(oe).concat([ce]),O=Z[Z.length-2],L=ce,de=Z.lastIndexOf(p);if(de>1&&Z.slice(1,de).every(function(re){return re==i})&&[i,h,b].indexOf(A)==-1)return T;var Be=Z.lastIndexOf(n);if(Be>0&&Z.slice(1,Be).every(function(re){return re==n})&&[f,n].indexOf(O)==-1)return Z.filter(function(re){return re==n}).length%2==1?q:Y;if(O==r&&L==e)return v;if(O==t||O==r||O==e)return L==p&&oe.every(function(re){return re==i})?T:x;if(L==t||L==r||L==e)return x;if(O==o&&(L==o||L==a||L==c||L==u))return v;if((O==c||O==a)&&(L==a||L==l))return v;if((O==u||O==l)&&L==l)return v;if(L==i||L==m)return v;if(L==s)return v;if(O==f)return v;var je=Z.indexOf(i)!=-1?Z.lastIndexOf(i)-1:Z.length-2;return[h,b].indexOf(Z[je])!=-1&&Z.slice(je+1,-1).every(function(re){return re==i})&&L==p||O==m&&[y,b].indexOf(L)!=-1?v:oe.indexOf(n)!=-1?T:O==n&&L==n?v:x}this.nextBreak=function(A,oe){if(oe===void 0&&(oe=0),oe<0)return 0;if(oe>=A.length-1)return A.length;for(var ce=ee(_(A,oe)),Z=[],O=oe+1;O{var NDe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,eB;function LDe(){if(eB)return eB;if(typeof Intl.Segmenter!="undefined"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return eB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=k9(),e=new r;return eB=t=>e.splitGraphemes(t)}}P9.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(NDe)||[r,r,void 0],l=LDe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var cf=w((Bot,q9)=>{"use strict";var J9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),wot=q9.exports=r=>r?Object.keys(r).map(e=>[J9.has(e)?J9.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var uf=w((bot,W9)=>{"use strict";var zDe=require("events"),z9=require("stream"),qd=Bp(),_9=require("string_decoder").StringDecoder,lA=Symbol("EOF"),Jd=Symbol("maybeEmitEnd"),Il=Symbol("emittedEnd"),oB=Symbol("emittingEnd"),aB=Symbol("closed"),V9=Symbol("read"),iD=Symbol("flush"),X9=Symbol("flushChunk"),Nn=Symbol("encoding"),cA=Symbol("decoder"),AB=Symbol("flowing"),Wd=Symbol("paused"),zd=Symbol("resume"),pn=Symbol("bufferLength"),Z9=Symbol("bufferPush"),nD=Symbol("bufferShift"),_i=Symbol("objectMode"),Vi=Symbol("destroyed"),$9=global._MP_NO_ITERATOR_SYMBOLS_!=="1",_De=$9&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),VDe=$9&&Symbol.iterator||Symbol("iterator not implemented"),e_=r=>r==="end"||r==="finish"||r==="prefinish",XDe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,ZDe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r);W9.exports=class t_ extends z9{constructor(e){super();this[AB]=!1,this[Wd]=!1,this.pipes=new qd,this.buffer=new qd,this[_i]=e&&e.objectMode||!1,this[_i]?this[Nn]=null:this[Nn]=e&&e.encoding||null,this[Nn]==="buffer"&&(this[Nn]=null),this[cA]=this[Nn]?new _9(this[Nn]):null,this[lA]=!1,this[Il]=!1,this[oB]=!1,this[aB]=!1,this.writable=!0,this.readable=!0,this[pn]=0,this[Vi]=!1}get bufferLength(){return this[pn]}get encoding(){return this[Nn]}set encoding(e){if(this[_i])throw new Error("cannot set encoding in objectMode");if(this[Nn]&&e!==this[Nn]&&(this[cA]&&this[cA].lastNeed||this[pn]))throw new Error("cannot change encoding");this[Nn]!==e&&(this[cA]=e?new _9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[cA].write(t)))),this[Nn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[_i]}set objectMode(e){this[_i]=this[_i]||!!e}write(e,t,i){if(this[lA])throw new Error("write after end");return this[Vi]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8"),!this[_i]&&!Buffer.isBuffer(e)&&(ZDe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):XDe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[_i]&&!(t===this[Nn]&&!this[cA].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Nn]&&(e=this[cA].write(e)),this.flowing?(this[pn]!==0&&this[iD](!0),this.emit("data",e)):this[Z9](e),this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Vi])return null;try{return this[pn]===0||e===0||e>this[pn]?null:(this[_i]&&(e=null),this.buffer.length>1&&!this[_i]&&(this.encoding?this.buffer=new qd([Array.from(this.buffer).join("")]):this.buffer=new qd([Buffer.concat(Array.from(this.buffer),this[pn])])),this[V9](e||null,this.buffer.head.value))}finally{this[Jd]()}}[V9](e,t){return e===t.length||e===null?this[nD]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[pn]-=e),this.emit("data",t),!this.buffer.length&&!this[lA]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[lA]=!0,this.writable=!1,(this.flowing||!this[Wd])&&this[Jd](),this}[zd](){this[Vi]||(this[Wd]=!1,this[AB]=!0,this.emit("resume"),this.buffer.length?this[iD]():this[lA]?this[Jd]():this.emit("drain"))}resume(){return this[zd]()}pause(){this[AB]=!1,this[Wd]=!0}get destroyed(){return this[Vi]}get flowing(){return this[AB]}get paused(){return this[Wd]}[Z9](e){return this[_i]?this[pn]+=1:this[pn]+=e.length,this.buffer.push(e)}[nD](){return this.buffer.length&&(this[_i]?this[pn]-=1:this[pn]-=this.buffer.head.value.length),this.buffer.shift()}[iD](e){do;while(this[X9](this[nD]()));!e&&!this.buffer.length&&!this[lA]&&this.emit("drain")}[X9](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Vi])return;let i=this[Il];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=t.end!==!1;let n={dest:e,opts:t,ondrain:s=>this[zd]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[zd](),i&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[zd]():e_(e)&&this[Il]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[Il]}[Jd](){!this[oB]&&!this[Il]&&!this[Vi]&&this.buffer.length===0&&this[lA]&&(this[oB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[aB]&&this.emit("close"),this[oB]=!1)}emit(e,t){if(e!=="error"&&e!=="close"&&e!==Vi&&this[Vi])return;if(e==="data"){if(!t)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(t)===!1&&this.pause())}else if(e==="end"){if(this[Il]===!0)return;this[Il]=!0,this.readable=!1,this[cA]&&(t=this[cA].end(),t&&(this.pipes.forEach(n=>n.dest.write(t)),super.emit("data",t))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[aB]=!0,!this[Il]&&!this[Vi]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=t,arguments.length>2)for(let n=2;n{e.push(i),this[_i]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this[Nn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Vi,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>t(i))})}[_De](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[lA])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[lA]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Vi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[VDe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Vi]?(e?this.emit("error",e):this.emit(Vi),this):(this[Vi]=!0,this.buffer=new qd,this[pn]=0,typeof this.close=="function"&&!this[aB]&&this.close(),e?this.emit("error",e):this.emit(Vi),this)}static isStream(e){return!!e&&(e instanceof t_||e instanceof z9||e instanceof zDe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var i_=w((Qot,r_)=>{var $De=require("zlib").constants||{ZLIB_VERNUM:4736};r_.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},$De))});var fD=w(as=>{"use strict";var sD=require("assert"),yl=require("buffer").Buffer,n_=require("zlib"),Zc=as.constants=i_(),eRe=uf(),s_=yl.concat,$c=Symbol("_superWrite"),_d=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},tRe=Symbol("opts"),Vd=Symbol("flushFlag"),o_=Symbol("finishFlushFlag"),oD=Symbol("fullFlushFlag"),pr=Symbol("handle"),lB=Symbol("onError"),gf=Symbol("sawError"),aD=Symbol("level"),AD=Symbol("strategy"),lD=Symbol("ended"),Sot=Symbol("_defaultFullFlush"),cD=class extends eRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[gf]=!1,this[lD]=!1,this[tRe]=e,this[Vd]=e.flush,this[o_]=e.finishFlush;try{this[pr]=new n_[t](e)}catch(i){throw new _d(i)}this[lB]=i=>{this[gf]||(this[gf]=!0,this.close(),this.emit("error",i))},this[pr].on("error",i=>this[lB](new _d(i))),this.once("end",()=>this.close)}close(){this[pr]&&(this[pr].close(),this[pr]=null,this.emit("close"))}reset(){if(!this[gf])return sD(this[pr],"zlib binding closed"),this[pr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[oD]),this.write(Object.assign(yl.alloc(0),{[Vd]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[o_]),this[lD]=!0,super.end(null,null,i)}get ended(){return this[lD]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=yl.from(e,t)),this[gf])return;sD(this[pr],"zlib binding closed");let n=this[pr]._handle,s=n.close;n.close=()=>{};let o=this[pr].close;this[pr].close=()=>{},yl.concat=c=>c;let a;try{let c=typeof e[Vd]=="number"?e[Vd]:this[Vd];a=this[pr]._processChunk(e,c),yl.concat=s_}catch(c){yl.concat=s_,this[lB](new _d(c))}finally{this[pr]&&(this[pr]._handle=n,n.close=s,this[pr].close=o,this[pr].removeAllListeners("error"))}this[pr]&&this[pr].on("error",c=>this[lB](new _d(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[$c](yl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[pr].params(e,t)}finally{this[pr].flush=i}this[pr]&&(this[aD]=e,this[AD]=t)}}}},a_=class extends wl{constructor(e){super(e,"Deflate")}},A_=class extends wl{constructor(e){super(e,"Inflate")}},uD=Symbol("_portable"),l_=class extends wl{constructor(e){super(e,"Gzip");this[uD]=e&&!!e.portable}[$c](e){return this[uD]?(this[uD]=!1,e[9]=255,super[$c](e)):super[$c](e)}},c_=class extends wl{constructor(e){super(e,"Gunzip")}},u_=class extends wl{constructor(e){super(e,"DeflateRaw")}},g_=class extends wl{constructor(e){super(e,"InflateRaw")}},f_=class extends wl{constructor(e){super(e,"Unzip")}},gD=class extends cD{constructor(e,t){e=e||{},e.flush=e.flush||Zc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Zc.BROTLI_OPERATION_FINISH,super(e,t),this[oD]=Zc.BROTLI_OPERATION_FLUSH}},h_=class extends gD{constructor(e){super(e,"BrotliCompress")}},p_=class extends gD{constructor(e){super(e,"BrotliDecompress")}};as.Deflate=a_;as.Inflate=A_;as.Gzip=l_;as.Gunzip=c_;as.DeflateRaw=u_;as.InflateRaw=g_;as.Unzip=f_;typeof n_.BrotliCompress=="function"?(as.BrotliCompress=h_,as.BrotliDecompress=p_):as.BrotliCompress=as.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Xd=w(cB=>{"use strict";cB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);cB.code=new Map(Array.from(cB.name).map(r=>[r[1],r[0]]))});var Zd=w((Dot,d_)=>{"use strict";var kot=Xd(),rRe=uf(),hD=Symbol("slurp");d_.exports=class extends rRe{constructor(e,t,i){super();switch(this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[hD](t),i&&this[hD](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[hD](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}}});var E_=w(pD=>{"use strict";var Rot=pD.encode=(r,e)=>{if(Number.isSafeInteger(r))r<0?nRe(r,e):iRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},iRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},nRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=C_(n):n===0?e[i-1]=0:(t=!0,e[i-1]=m_(n))}},Fot=pD.parse=r=>{var e=r[r.length-1],t=r[0],i;if(t===128)i=oRe(r.slice(1,r.length));else if(t===255)i=sRe(r);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},sRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=C_(s):s===0?o=s:(i=!0,o=m_(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},oRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},C_=r=>(255^r)&255,m_=r=>(255^r)+1&255});var hf=w((Lot,I_)=>{"use strict";var dD=Xd(),ff=require("path").posix,y_=E_(),CD=Symbol("slurp"),As=Symbol("type"),w_=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[As]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=eu(e,t,100),this.mode=Bl(e,t+100,8),this.uid=Bl(e,t+108,8),this.gid=Bl(e,t+116,8),this.size=Bl(e,t+124,12),this.mtime=mD(e,t+136,12),this.cksum=Bl(e,t+148,12),this[CD](i),this[CD](n,!0),this[As]=eu(e,t+156,1),this[As]===""&&(this[As]="0"),this[As]==="0"&&this.path.substr(-1)==="/"&&(this[As]="5"),this[As]==="5"&&(this.size=0),this.linkpath=eu(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=eu(e,t+265,32),this.gname=eu(e,t+297,32),this.devmaj=Bl(e,t+329,8),this.devmin=Bl(e,t+337,8),e[t+475]!==0){let o=eu(e,t+345,155);this.path=o+"/"+this.path}else{let o=eu(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=mD(e,t+476,12),this.ctime=mD(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=aRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=tu(e,t,100,s)||this.needPax,this.needPax=bl(e,t+100,8,this.mode)||this.needPax,this.needPax=bl(e,t+108,8,this.uid)||this.needPax,this.needPax=bl(e,t+116,8,this.gid)||this.needPax,this.needPax=bl(e,t+124,12,this.size)||this.needPax,this.needPax=ED(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[As].charCodeAt(0),this.needPax=tu(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=tu(e,t+265,32,this.uname)||this.needPax,this.needPax=tu(e,t+297,32,this.gname)||this.needPax,this.needPax=bl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=bl(e,t+337,8,this.devmin)||this.needPax,this.needPax=tu(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=tu(e,t+345,155,o)||this.needPax:(this.needPax=tu(e,t+345,130,o)||this.needPax,this.needPax=ED(e,t+476,12,this.atime)||this.needPax,this.needPax=ED(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let t=100,i=r,n="",s,o=ff.parse(r).root||".";if(Buffer.byteLength(i)t&&Buffer.byteLength(n)<=e?s=[i.substr(0,t-1),n,!0]:(i=ff.join(ff.basename(n),i),n=ff.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,t-1),"",!0])}return s},eu=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),mD=(r,e,t)=>ARe(Bl(r,e,t)),ARe=r=>r===null?null:new Date(r*1e3),Bl=(r,e,t)=>r[e]&128?y_.parse(r.slice(e,e+t)):lRe(r,e,t),cRe=r=>isNaN(r)?null:r,lRe=(r,e,t)=>cRe(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),uRe={12:8589934591,8:2097151},bl=(r,e,t,i)=>i===null?!1:i>uRe[t]||i<0?(y_.encode(i,r.slice(e,e+t)),!0):(gRe(r,e,t,i),!1),gRe=(r,e,t,i)=>r.write(fRe(i,t),e,t,"ascii"),fRe=(r,e)=>hRe(Math.floor(r).toString(8),e),hRe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",ED=(r,e,t,i)=>i===null?!1:bl(r,e,t,i.getTime()/1e3),pRe=new Array(156).join("\0"),tu=(r,e,t,i)=>i===null?!1:(r.write(i+pRe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);I_.exports=w_});var gB=w((Tot,B_)=>{"use strict";var dRe=hf(),CRe=require("path"),uB=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new dRe({path:("PaxHeader/"+CRe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};uB.parse=(r,e,t)=>new uB(mRe(ERe(r),e),t);var mRe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,ERe=r=>r.replace(/\n$/,"").split(` -`).reduce(IRe,Object.create(null)),IRe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};B_.exports=uB});var fB=w((Oot,b_)=>{"use strict";b_.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var yD=w((Mot,Q_)=>{"use strict";var hB=["|","<",">","?",":"],ID=hB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),yRe=new Map(hB.map((r,e)=>[r,ID[e]])),wRe=new Map(ID.map((r,e)=>[r,hB[e]]));Q_.exports={encode:r=>hB.reduce((e,t)=>e.split(t).join(yRe.get(t)),r),decode:r=>ID.reduce((e,t)=>e.split(t).join(wRe.get(t)),r)}});var v_=w((Kot,S_)=>{"use strict";S_.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&~18),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var xD=w((Yot,x_)=>{"use strict";var k_=uf(),P_=gB(),D_=hf(),Uot=Zd(),sa=require("fs"),pf=require("path"),Hot=Xd(),BRe=16*1024*1024,R_=Symbol("process"),F_=Symbol("file"),N_=Symbol("directory"),wD=Symbol("symlink"),L_=Symbol("hardlink"),$d=Symbol("header"),pB=Symbol("read"),BD=Symbol("lstat"),dB=Symbol("onlstat"),bD=Symbol("onread"),QD=Symbol("onreadlink"),SD=Symbol("openfile"),vD=Symbol("onopenfile"),ru=Symbol("close"),CB=Symbol("mode"),T_=fB(),bRe=yD(),O_=v_(),mB=T_(class extends k_{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||BRe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths&&pf.win32.isAbsolute(e)){let n=pf.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=bRe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||pf.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[dB](this.statCache.get(this.absolute)):this[BD]()}[BD](){sa.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[dB](t)})}[dB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=QRe(e),this.emit("stat",e),this[R_]()}[R_](){switch(this.type){case"File":return this[F_]();case"Directory":return this[N_]();case"SymbolicLink":return this[wD]();default:return this.end()}}[CB](e){return O_(e,this.type==="Directory",this.portable)}[$d](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new D_({path:this.path,linkpath:this.linkpath,mode:this[CB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new P_({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[N_](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[$d](),this.end()}[wD](){sa.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[QD](t)})}[QD](e){this.linkpath=e.replace(/\\/g,"/"),this[$d](),this.end()}[L_](e){this.type="Link",this.linkpath=pf.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[$d](),this.end()}[F_](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[L_](t)}this.linkCache.set(e,this.absolute)}if(this[$d](),this.stat.size===0)return this.end();this[SD]()}[SD](){sa.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[vD](t)})}[vD](e){let t=512*Math.ceil(this.stat.size/512),i=Math.min(t,this.maxReadSize),n=Buffer.allocUnsafe(i);this[pB](e,n,0,n.length,0,this.stat.size,t)}[pB](e,t,i,n,s,o,a){sa.read(e,t,i,n,s,(l,c)=>{if(l)return this[ru](e,()=>this.emit("error",l));this[bD](e,t,i,n,s,o,a,c)})}[ru](e,t){sa.close(e,t)}[bD](e,t,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[ru](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[ru](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(t=Buffer.allocUnsafe(n),i=0),n=t.length-i,this[pB](e,t,i,n,s,o,a)}}),M_=class extends mB{constructor(e,t){super(e,t)}[BD](){this[dB](sa.lstatSync(this.absolute))}[wD](){this[QD](sa.readlinkSync(this.absolute))}[SD](){this[vD](sa.openSync(this.absolute,"r"))}[pB](e,t,i,n,s,o,a){let l=!0;try{let c=sa.readSync(e,t,i,n,s);this[bD](e,t,i,n,s,o,a,c),l=!1}finally{if(l)try{this[ru](e,()=>{})}catch(c){}}}[ru](e,t){sa.closeSync(e),t()}},SRe=T_(class extends k_{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[CB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(pf.isAbsolute(this.path)&&!this.preservePaths){let n=pf.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new D_({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new P_({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[CB](e){return O_(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});mB.Sync=M_;mB.Tar=SRe;var QRe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";x_.exports=mB});var SB=w((Jot,K_)=>{"use strict";var kD=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},vRe=uf(),xRe=fD(),kRe=Zd(),PD=xD(),PRe=PD.Sync,DRe=PD.Tar,RRe=Bp(),U_=Buffer.alloc(1024),EB=Symbol("onStat"),IB=Symbol("ended"),oa=Symbol("queue"),df=Symbol("current"),iu=Symbol("process"),yB=Symbol("processing"),H_=Symbol("processJob"),aa=Symbol("jobs"),DD=Symbol("jobDone"),wB=Symbol("addFSEntry"),j_=Symbol("addTarEntry"),RD=Symbol("stat"),FD=Symbol("readdir"),BB=Symbol("onreaddir"),bB=Symbol("pipe"),G_=Symbol("entry"),ND=Symbol("entryOpt"),LD=Symbol("writeEntryClass"),Y_=Symbol("write"),TD=Symbol("ondrain"),QB=require("fs"),q_=require("path"),FRe=fB(),OD=FRe(class extends vRe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[LD]=PD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new xRe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[TD]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[TD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[oa]=new RRe,this[aa]=0,this.jobs=+e.jobs||4,this[yB]=!1,this[IB]=!1}[Y_](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[IB]=!0,this[iu](),this}write(e){if(this[IB])throw new Error("write after end");return e instanceof kRe?this[j_](e):this[wB](e),this.flowing}[j_](e){let t=q_.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new kD(e.path,t,!1);i.entry=new DRe(e,this[ND](i)),i.entry.on("end",n=>this[DD](i)),this[aa]+=1,this[oa].push(i)}this[iu]()}[wB](e){let t=q_.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[oa].push(new kD(e,t)),this[iu]()}[RD](e){e.pending=!0,this[aa]+=1;let t=this.follow?"stat":"lstat";QB[t](e.absolute,(i,n)=>{e.pending=!1,this[aa]-=1,i?this.emit("error",i):this[EB](e,n)})}[EB](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[iu]()}[FD](e){e.pending=!0,this[aa]+=1,QB.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[aa]-=1,t)return this.emit("error",t);this[BB](e,i)})}[BB](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[iu]()}[iu](){if(!this[yB]){this[yB]=!0;for(let e=this[oa].head;e!==null&&this[aa]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[G_](e){this[aa]+=1;try{return new this[LD](e.path,this[ND](e)).on("end",()=>this[DD](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[TD](){this[df]&&this[df].entry&&this[df].entry.resume()}[bB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[wB](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),J_=class extends OD{constructor(e){super(e);this[LD]=PRe}pause(){}resume(){}[RD](e){let t=this.follow?"statSync":"lstatSync";this[EB](e,QB[t](e.absolute))}[FD](e,t){this[BB](e,QB.readdirSync(e.absolute))}[bB](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[wB](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[Y_](n)})}};OD.Sync=J_;K_.exports=OD});var wf=w(eC=>{"use strict";var NRe=uf(),LRe=require("events").EventEmitter,Us=require("fs"),vB=process.binding("fs"),Wot=vB.writeBuffers,TRe=vB.FSReqWrap||vB.FSReqCallback,Cf=Symbol("_autoClose"),Aa=Symbol("_close"),tC=Symbol("_ended"),or=Symbol("_fd"),W_=Symbol("_finished"),nu=Symbol("_flags"),MD=Symbol("_flush"),KD=Symbol("_handleChunk"),UD=Symbol("_makeBuf"),HD=Symbol("_mode"),xB=Symbol("_needDrain"),mf=Symbol("_onerror"),Ef=Symbol("_onopen"),jD=Symbol("_onread"),su=Symbol("_onwrite"),Ql=Symbol("_open"),Sl=Symbol("_path"),ou=Symbol("_pos"),la=Symbol("_queue"),If=Symbol("_read"),z_=Symbol("_readSize"),vl=Symbol("_reading"),kB=Symbol("_remain"),__=Symbol("_size"),PB=Symbol("_write"),yf=Symbol("_writing"),DB=Symbol("_defaultFlag"),GD=class extends NRe{constructor(e,t){if(t=t||{},super(t),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[or]=typeof t.fd=="number"?t.fd:null,this[Sl]=e,this[z_]=t.readSize||16*1024*1024,this[vl]=!1,this[__]=typeof t.size=="number"?t.size:Infinity,this[kB]=this[__],this[Cf]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[or]=="number"?this[If]():this[Ql]()}get fd(){return this[or]}get path(){return this[Sl]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Ql](){Us.open(this[Sl],"r",(e,t)=>this[Ef](e,t))}[Ef](e,t){e?this[mf](e):(this[or]=t,this.emit("open",t),this[If]())}[UD](){return Buffer.allocUnsafe(Math.min(this[z_],this[kB]))}[If](){if(!this[vl]){this[vl]=!0;let e=this[UD]();if(e.length===0)return process.nextTick(()=>this[jD](null,0,e));Us.read(this[or],e,0,e.length,null,(t,i,n)=>this[jD](t,i,n))}}[jD](e,t,i){this[vl]=!1,e?this[mf](e):this[KD](t,i)&&this[If]()}[Aa](){this[Cf]&&typeof this[or]=="number"&&(Us.close(this[or],e=>this.emit("close")),this[or]=null)}[mf](e){this[vl]=!0,this[Aa](),this.emit("error",e)}[KD](e,t){let i=!1;return this[kB]-=e,e>0&&(i=super.write(ethis[Ef](e,t))}[Ef](e,t){this[DB]&&this[nu]==="r+"&&e&&e.code==="ENOENT"?(this[nu]="w",this[Ql]()):e?this[mf](e):(this[or]=t,this.emit("open",t),this[MD]())}end(e,t){e&&this.write(e,t),this[tC]=!0,!this[yf]&&!this[la].length&&typeof this[or]=="number"&&this[su](null,0)}write(e,t){return typeof e=="string"&&(e=new Buffer(e,t)),this[tC]?(this.emit("error",new Error("write() after end()")),!1):this[or]===null||this[yf]||this[la].length?(this[la].push(e),this[xB]=!0,!1):(this[yf]=!0,this[PB](e),!0)}[PB](e){Us.write(this[or],e,0,e.length,this[ou],(t,i)=>this[su](t,i))}[su](e,t){e?this[mf](e):(this[ou]!==null&&(this[ou]+=t),this[la].length?this[MD]():(this[yf]=!1,this[tC]&&!this[W_]?(this[W_]=!0,this[Aa](),this.emit("finish")):this[xB]&&(this[xB]=!1,this.emit("drain"))))}[MD](){if(this[la].length===0)this[tC]&&this[su](null,0);else if(this[la].length===1)this[PB](this[la].pop());else{let e=this[la];this[la]=[],ORe(this[or],e,this[ou],(t,i)=>this[su](t,i))}}[Aa](){this[Cf]&&typeof this[or]=="number"&&(Us.close(this[or],e=>this.emit("close")),this[or]=null)}},X_=class extends YD{[Ql](){let e;try{e=Us.openSync(this[Sl],this[nu],this[HD])}catch(t){if(this[DB]&&this[nu]==="r+"&&t&&t.code==="ENOENT")return this[nu]="w",this[Ql]();throw t}this[Ef](null,e)}[Aa](){if(this[Cf]&&typeof this[or]=="number"){try{Us.closeSync(this[or])}catch(e){}this[or]=null,this.emit("close")}}[PB](e){try{this[su](null,Us.writeSync(this[or],e,0,e.length,this[ou]))}catch(t){this[su](t,0)}}},ORe=(r,e,t,i)=>{let n=(o,a)=>i(o,a,e),s=new TRe;s.oncomplete=n,vB.writeBuffers(r,e,t,s)};eC.ReadStream=GD;eC.ReadStreamSync=V_;eC.WriteStream=YD;eC.WriteStreamSync=X_});var nC=w((Xot,Z_)=>{"use strict";var MRe=fB(),_ot=require("path"),KRe=hf(),URe=require("events"),HRe=Bp(),jRe=1024*1024,GRe=Zd(),$_=gB(),YRe=fD(),qD=Buffer.from([31,139]),Hs=Symbol("state"),au=Symbol("writeEntry"),uA=Symbol("readEntry"),JD=Symbol("nextEntry"),eV=Symbol("processEntry"),js=Symbol("extendedHeader"),rC=Symbol("globalExtendedHeader"),xl=Symbol("meta"),tV=Symbol("emitMeta"),yr=Symbol("buffer"),gA=Symbol("queue"),Au=Symbol("ended"),rV=Symbol("emittedEnd"),lu=Symbol("emit"),Ln=Symbol("unzip"),RB=Symbol("consumeChunk"),FB=Symbol("consumeChunkSub"),WD=Symbol("consumeBody"),iV=Symbol("consumeMeta"),nV=Symbol("consumeHeader"),NB=Symbol("consuming"),zD=Symbol("bufferConcat"),_D=Symbol("maybeEnd"),iC=Symbol("writing"),kl=Symbol("aborted"),LB=Symbol("onDone"),cu=Symbol("sawValidEntry"),TB=Symbol("sawNullBlock"),OB=Symbol("sawEOF"),qRe=r=>!0;Z_.exports=MRe(class extends URe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[cu]=null,this.on(LB,t=>{(this[Hs]==="begin"||this[cu]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(LB,e.ondone):this.on(LB,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||jRe,this.filter=typeof e.filter=="function"?e.filter:qRe,this.writable=!0,this.readable=!1,this[gA]=new HRe,this[yr]=null,this[uA]=null,this[au]=null,this[Hs]="begin",this[xl]="",this[js]=null,this[rC]=null,this[Au]=!1,this[Ln]=null,this[kl]=!1,this[TB]=!1,this[OB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[nV](e,t){this[cu]===null&&(this[cu]=!1);let i;try{i=new KRe(e,t,this[js],this[rC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[TB]?(this[OB]=!0,this[Hs]==="begin"&&(this[Hs]="header"),this[lu]("eof")):(this[TB]=!0,this[lu]("nullBlock"));else if(this[TB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[au]=new GRe(i,this[js],this[rC]);if(!this[cu])if(s.remain){let o=()=>{s.invalid||(this[cu]=!0)};s.on("end",o)}else this[cu]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[lu]("ignoredEntry",s),this[Hs]="ignore",s.resume()):s.size>0&&(this[xl]="",s.on("data",o=>this[xl]+=o),this[Hs]="meta"):(this[js]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[lu]("ignoredEntry",s),this[Hs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[Hs]="body":(this[Hs]="header",s.end()),this[uA]?this[gA].push(s):(this[gA].push(s),this[JD]())))}}}[eV](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[uA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[JD]()),t=!1)):(this[uA]=null,t=!1),t}[JD](){do;while(this[eV](this[gA].shift()));if(!this[gA].length){let e=this[uA];!e||e.flowing||e.size===e.remain?this[iC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[WD](e,t){let i=this[au],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[Hs]="header",this[au]=null,i.end()),s.length}[iV](e,t){let i=this[au],n=this[WD](e,t);return this[au]||this[tV](i),n}[lu](e,t,i){!this[gA].length&&!this[uA]?this.emit(e,t,i):this[gA].push([e,t,i])}[tV](e){switch(this[lu]("meta",this[xl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[js]=$_.parse(this[xl],this[js],!1);break;case"GlobalExtendedHeader":this[rC]=$_.parse(this[xl],this[rC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[js]=this[js]||Object.create(null),this[js].path=this[xl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[js]=this[js]||Object.create(null),this[js].linkpath=this[xl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[kl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[kl])return;if(this[Ln]===null&&e){if(this[yr]&&(e=Buffer.concat([this[yr],e]),this[yr]=null),e.lengththis[RB](s)),this[Ln].on("error",s=>this.abort(s)),this[Ln].on("end",s=>{this[Au]=!0,this[RB]()}),this[iC]=!0;let n=this[Ln][i?"end":"write"](e);return this[iC]=!1,n}}this[iC]=!0,this[Ln]?this[Ln].write(e):this[RB](e),this[iC]=!1;let t=this[gA].length?!1:this[uA]?this[uA].flowing:!0;return!t&&!this[gA].length&&this[uA].once("drain",i=>this.emit("drain")),t}[zD](e){e&&!this[kl]&&(this[yr]=this[yr]?Buffer.concat([this[yr],e]):e)}[_D](){if(this[Au]&&!this[rV]&&!this[kl]&&!this[NB]){this[rV]=!0;let e=this[au];if(e&&e.blockRemain){let t=this[yr]?this[yr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[yr]&&e.write(this[yr]),e.end()}this[lu](LB)}}[RB](e){if(this[NB])this[zD](e);else if(!e&&!this[yr])this[_D]();else{if(this[NB]=!0,this[yr]){this[zD](e);let t=this[yr];this[yr]=null,this[FB](t)}else this[FB](e);for(;this[yr]&&this[yr].length>=512&&!this[kl]&&!this[OB];){let t=this[yr];this[yr]=null,this[FB](t)}this[NB]=!1}(!this[yr]||this[Au])&&this[_D]()}[FB](e){let t=0,i=e.length;for(;t+512<=i&&!this[kl]&&!this[OB];)switch(this[Hs]){case"begin":case"header":this[nV](e,t),t+=512;break;case"ignore":case"body":t+=this[WD](e,t);break;case"meta":t+=this[iV](e,t);break;default:throw new Error("invalid state: "+this[Hs])}t{"use strict";var JRe=cf(),oV=nC(),Bf=require("fs"),WRe=wf(),aV=require("path"),Zot=sV.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=JRe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&_Re(i,e),i.noResume||zRe(i),i.file&&i.sync?VRe(i):i.file?XRe(i,t):AV(i)},zRe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},_Re=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=r.filter,n=(s,o)=>{let a=o||aV.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(aV.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},VRe=r=>{let e=AV(r),t=r.file,i=!0,n;try{let s=Bf.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new oV(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),Bf.stat(n,(l,c)=>{if(l)a(l);else{let u=new WRe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},AV=r=>new oV(r)});var hV=w((rat,lV)=>{"use strict";var ZRe=cf(),KB=SB(),eat=require("fs"),cV=wf(),uV=MB(),gV=require("path"),tat=lV.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=ZRe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?$Re(i,e):i.file?eFe(i,e,t):i.sync?tFe(i,e):rFe(i,e)},$Re=(r,e)=>{let t=new KB.Sync(r),i=new cV.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),fV(t,e)},eFe=(r,e,t)=>{let i=new KB(r),n=new cV.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return VD(i,e),t?s.then(t,t):s},fV=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?uV({file:gV.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},VD=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return uV({file:gV.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>VD(r,e));r.add(t)}r.end()},tFe=(r,e)=>{let t=new KB.Sync(r);return fV(t,e),t},rFe=(r,e)=>{let t=new KB(r);return VD(t,e),t}});var XD=w((sat,pV)=>{"use strict";var iFe=cf(),dV=SB(),iat=nC(),Gs=require("fs"),CV=wf(),mV=MB(),EV=require("path"),IV=hf(),nat=pV.exports=(r,e,t)=>{let i=iFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?nFe(i,e):sFe(i,e,t)},nFe=(r,e)=>{let t=new dV.Sync(r),i=!0,n,s;try{try{n=Gs.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=Gs.openSync(r.file,"w+");else throw l}let o=Gs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,oFe(r,t,s,n,e)}finally{if(i)try{Gs.closeSync(n)}catch(o){}}},oFe=(r,e,t,i,n)=>{let s=new CV.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),aFe(e,n)},sFe=(r,e,t)=>{e=Array.from(e);let i=new dV(r),n=(o,a,l)=>{let c=(p,m)=>{p?Gs.close(o,y=>l(p)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,m)=>{if(p)return c(p);if(g+=m,g<512&&m)return Gs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new IV(f);if(!y.cksumValid)return c(null,u);let b=512*Math.ceil(y.size/512);if(u+b+512>a||(u+=b+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,Gs.read(o,f,0,512,u,h)};Gs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",Gs.open(r.file,l,c);if(u)return a(u);Gs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,m)=>{if(p)return a(p);let y=new CV.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),yV(i,e)})})};Gs.open(r.file,l,c)});return t?s.then(t,t):s},aFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?mV({file:EV.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},yV=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return mV({file:EV.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>yV(r,e));r.add(t)}r.end()}});var BV=w((aat,wV)=>{"use strict";var AFe=cf(),lFe=XD(),oat=wV.exports=(r,e,t)=>{let i=AFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),cFe(i),lFe(i,e,t)},cFe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var SV=w((Aat,bV)=>{var{promisify:QV}=require("util"),Pl=require("fs"),uFe=r=>{if(!r)r={mode:511,fs:Pl};else if(typeof r=="object")r=N({mode:511,fs:Pl},r);else if(typeof r=="number")r={mode:r,fs:Pl};else if(typeof r=="string")r={mode:parseInt(r,8),fs:Pl};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||Pl.mkdir,r.mkdirAsync=QV(r.mkdir),r.stat=r.stat||r.fs.stat||Pl.stat,r.statAsync=QV(r.stat),r.statSync=r.statSync||r.fs.statSync||Pl.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||Pl.mkdirSync,r};bV.exports=uFe});var xV=w((lat,vV)=>{var gFe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:fFe,parse:hFe}=require("path"),pFe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=fFe(r),gFe==="win32"){let e=/[*|"<>?:]/,{root:t}=hFe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};vV.exports=pFe});var FV=w((cat,kV)=>{var{dirname:PV}=require("path"),DV=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?DV(r,PV(e),e):void 0),RV=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?RV(r,PV(e),e):void 0}};kV.exports={findMade:DV,findMadeSync:RV}});var eR=w((uat,NV)=>{var{dirname:LV}=require("path"),ZD=(r,e,t)=>{e.recursive=!1;let i=LV(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return ZD(i,e).then(s=>ZD(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},$D=(r,e,t)=>{let i=LV(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return $D(r,e,$D(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch(s){throw n}}};NV.exports={mkdirpManual:ZD,mkdirpManualSync:$D}});var MV=w((gat,TV)=>{var{dirname:OV}=require("path"),{findMade:dFe,findMadeSync:CFe}=FV(),{mkdirpManual:mFe,mkdirpManualSync:EFe}=eR(),IFe=(r,e)=>(e.recursive=!0,OV(r)===r?e.mkdirAsync(r,e):dFe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return mFe(r,e);throw n}))),yFe=(r,e)=>{if(e.recursive=!0,OV(r)===r)return e.mkdirSync(r,e);let i=CFe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return EFe(r,e);throw n}};TV.exports={mkdirpNative:IFe,mkdirpNativeSync:yFe}});var jV=w((fat,KV)=>{var UV=require("fs"),wFe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,tR=wFe.replace(/^v/,"").split("."),HV=+tR[0]>10||+tR[0]==10&&+tR[1]>=12,BFe=HV?r=>r.mkdir===UV.mkdir:()=>!1,bFe=HV?r=>r.mkdirSync===UV.mkdirSync:()=>!1;KV.exports={useNative:BFe,useNativeSync:bFe}});var zV=w((hat,GV)=>{var bf=SV(),Qf=xV(),{mkdirpNative:YV,mkdirpNativeSync:qV}=MV(),{mkdirpManual:JV,mkdirpManualSync:WV}=eR(),{useNative:QFe,useNativeSync:SFe}=jV(),Sf=(r,e)=>(r=Qf(r),e=bf(e),QFe(e)?YV(r,e):JV(r,e)),vFe=(r,e)=>(r=Qf(r),e=bf(e),SFe(e)?qV(r,e):WV(r,e));Sf.sync=vFe;Sf.native=(r,e)=>YV(Qf(r),bf(e));Sf.manual=(r,e)=>JV(Qf(r),bf(e));Sf.nativeSync=(r,e)=>qV(Qf(r),bf(e));Sf.manualSync=(r,e)=>WV(Qf(r),bf(e));GV.exports=Sf});var t6=w((pat,_V)=>{"use strict";var Ys=require("fs"),uu=require("path"),xFe=Ys.lchown?"lchown":"chown",kFe=Ys.lchownSync?"lchownSync":"chownSync",VV=Ys.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),XV=(r,e,t)=>{try{return Ys[kFe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},PFe=(r,e,t)=>{try{return Ys.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},DFe=VV?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ys.chown(r,e,t,i)}:(r,e,t,i)=>i,rR=VV?(r,e,t)=>{try{return XV(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;PFe(r,e,t)}}:(r,e,t)=>XV(r,e,t),RFe=process.version,ZV=(r,e,t)=>Ys.readdir(r,e,t),FFe=(r,e)=>Ys.readdirSync(r,e);/^v4\./.test(RFe)&&(ZV=(r,e,t)=>Ys.readdir(r,t));var UB=(r,e,t,i)=>{Ys[xFe](r,e,t,DFe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},$V=(r,e,t,i,n)=>{if(typeof e=="string")return Ys.lstat(uu.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,$V(r,o,t,i,n)});if(e.isDirectory())iR(uu.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=uu.resolve(r,e.name);UB(o,t,i,n)});else{let s=uu.resolve(r,e.name);UB(s,t,i,n)}},iR=(r,e,t,i)=>{ZV(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return UB(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return UB(r,e,t,i)}};s.forEach(c=>$V(r,c,e,t,l))})},NFe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ys.lstatSync(uu.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&e6(uu.resolve(r,e.name),t,i),rR(uu.resolve(r,e.name),t,i)},e6=(r,e,t)=>{let i;try{i=FFe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return rR(r,e,t);throw n}return i&&i.length&&i.forEach(n=>NFe(r,n,e,t)),rR(r,e,t)};_V.exports=iR;iR.sync=e6});var s6=w((mat,nR)=>{"use strict";var r6=zV(),qs=require("fs"),HB=require("path"),i6=t6(),sR=class extends Error{constructor(e,t){super("Cannot extract through symbolic link");this.path=t,this.symlink=e}get name(){return"SylinkError"}},sC=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'");this.path=e,this.code=t}get name(){return"CwdError"}},dat=nR.exports=(r,e,t)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(y,b)=>{y?t(y):(g.set(r,!0),b&&l?i6(b,o,a,v=>h(v)):s?qs.chmod(r,n,t):t())};if(g&&g.get(r)===!0)return h();if(r===f)return qs.stat(r,(y,b)=>{(y||!b.isDirectory())&&(y=new sC(r,y&&y.code||"ENOTDIR")),h(y)});if(c)return r6(r,{mode:n}).then(y=>h(null,y),h);let m=HB.relative(f,r).split(/\/|\\/);jB(f,m,n,g,u,f,null,h)},jB=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=r+"/"+l;if(i.get(c))return jB(c,e,t,i,n,s,o,a);qs.mkdir(c,t,n6(c,e,t,i,n,s,o,a))},n6=(r,e,t,i,n,s,o,a)=>l=>{if(l){if(l.path&&HB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new sC(s,l.code));qs.lstat(r,(c,u)=>{if(c)a(c);else if(u.isDirectory())jB(r,e,t,i,n,s,o,a);else if(n)qs.unlink(r,g=>{if(g)return a(g);qs.mkdir(r,t,n6(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new sR(r,r+"/"+e.join("/")));a(l)}})}else o=o||r,jB(r,e,t,i,n,s,o,a)},Cat=nR.exports.sync=(r,e)=>{let t=e.umask,i=e.mode|448,n=(i&t)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=y=>{u.set(r,!0),y&&a&&i6.sync(y,s,o),n&&qs.chmodSync(r,i)};if(u&&u.get(r)===!0)return f();if(r===g){let y=!1,b="ENOTDIR";try{y=qs.statSync(r).isDirectory()}catch(v){b=v.code}finally{if(!y)throw new sC(r,b)}f();return}if(l)return f(r6.sync(r,i));let p=HB.relative(g,r).split(/\/|\\/),m=null;for(let y=p.shift(),b=g;y&&(b+="/"+y);y=p.shift())if(!u.get(b))try{qs.mkdirSync(b,i),m=m||b,u.set(b,!0)}catch(v){if(v.path&&HB.dirname(v.path)===g&&(v.code==="ENOTDIR"||v.code==="ENOENT"))return new sC(g,v.code);let x=qs.lstatSync(b);if(x.isDirectory()){u.set(b,!0);continue}else if(c){qs.unlinkSync(b),qs.mkdirSync(b,i),m=m||b,u.set(b,!0);continue}else if(x.isSymbolicLink())return new sR(b,b+"/"+p.join("/"))}return f(m)}});var A6=w((Eat,o6)=>{var a6=require("assert");o6.exports=()=>{let r=new Map,e=new Map,{join:t}=require("path"),i=u=>t(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(t(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>r.get(f)),dirs:[...g.dirs].map(f=>r.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let m=r.get(p);a6.equal(m[0],u),m.length===1?r.delete(p):(m.shift(),typeof m[0]=="function"?h.add(m[0]):m[0].forEach(y=>h.add(y)))}),f.forEach(p=>{let m=r.get(p);a6(m[0]instanceof Set),m[0].size===1&&m.length===1?r.delete(p):m[0].size===1?(m.shift(),h.add(m[0])):m[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=r.get(h);p?p.push(g):r.set(h,[g])}),f.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):r.set(h,[new Set([g])])}),a(g)}}}});var u6=w((Iat,l6)=>{var LFe=process.env.__FAKE_PLATFORM__||process.platform,TFe=LFe==="win32",OFe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:MFe,O_TRUNC:KFe,O_WRONLY:UFe,UV_FS_O_FILEMAP:c6=0}=OFe.constants,HFe=TFe&&!!c6,jFe=512*1024,GFe=c6|KFe|MFe|UFe;l6.exports=HFe?r=>r"w"});var hR=w((bat,g6)=>{"use strict";var YFe=require("assert"),yat=require("events").EventEmitter,qFe=nC(),$t=require("fs"),JFe=wf(),fA=require("path"),oR=s6(),wat=oR.sync,f6=yD(),WFe=A6(),h6=Symbol("onEntry"),aR=Symbol("checkFs"),p6=Symbol("checkFs2"),AR=Symbol("isReusable"),hA=Symbol("makeFs"),lR=Symbol("file"),cR=Symbol("directory"),GB=Symbol("link"),d6=Symbol("symlink"),C6=Symbol("hardlink"),m6=Symbol("unsupported"),Bat=Symbol("unknown"),E6=Symbol("checkPath"),vf=Symbol("mkdir"),dn=Symbol("onError"),YB=Symbol("pending"),I6=Symbol("pend"),xf=Symbol("unpend"),uR=Symbol("ended"),gR=Symbol("maybeClose"),fR=Symbol("skip"),oC=Symbol("doChown"),aC=Symbol("uid"),AC=Symbol("gid"),y6=require("crypto"),w6=u6(),qB=()=>{throw new Error("sync function called cb somehow?!?")},zFe=(r,e)=>{if(process.platform!=="win32")return $t.unlink(r,e);let t=r+".DELETE."+y6.randomBytes(16).toString("hex");$t.rename(r,t,i=>{if(i)return e(i);$t.unlink(t,e)})},_Fe=r=>{if(process.platform!=="win32")return $t.unlinkSync(r);let e=r+".DELETE."+y6.randomBytes(16).toString("hex");$t.renameSync(r,e),$t.unlinkSync(e)},B6=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,JB=class extends qFe{constructor(e){if(e||(e={}),e.ondone=t=>{this[uR]=!0,this[gR]()},super(e),this.reservations=WFe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[YB]=0,this[uR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=fA.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[h6](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[gR](){this[uR]&&this[YB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[E6](e){if(this.strip){let t=e.path.split(/\/|\\/);if(t.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;if(fA.win32.isAbsolute(t)){let i=fA.win32.parse(t);e.path=t.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t})}}if(this.win32){let t=fA.win32.parse(e.path);e.path=t.root===""?f6.encode(e.path):t.root+f6.encode(e.path.substr(t.root.length))}return fA.isAbsolute(e.path)?e.absolute=e.path:e.absolute=fA.resolve(this.cwd,e.path),!0}[h6](e){if(!this[E6](e))return e.resume();switch(YFe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[aR](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[m6](e)}}[dn](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[xf](),t.resume())}[vf](e,t,i){oR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},i)}[oC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[aC](e){return B6(this.uid,e.uid,this.processUid)}[AC](e){return B6(this.gid,e.gid,this.processGid)}[lR](e,t){let i=e.mode&4095||this.fmode,n=new JFe.WriteStream(e.absolute,{flags:w6(e.size),mode:i,autoClose:!1});n.on("error",l=>this[dn](l,e));let s=1,o=l=>{if(l)return this[dn](l,e);--s==0&&$t.close(n.fd,c=>{t(),c?this[dn](c,e):this[xf]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;$t.futimes(u,g,f,h=>h?$t.utimes(c,g,f,p=>o(p&&h)):o())}if(this[oC](e)){s++;let g=this[aC](e),f=this[AC](e);$t.fchown(u,g,f,h=>h?$t.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.pipe(n)}[cR](e,t){let i=e.mode&4095||this.dmode;this[vf](e.absolute,i,n=>{if(n)return t(),this[dn](n,e);let s=1,o=a=>{--s==0&&(t(),this[xf](),e.resume())};e.mtime&&!this.noMtime&&(s++,$t.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[oC](e)&&(s++,$t.chown(e.absolute,this[aC](e),this[AC](e),o)),o()})}[m6](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[d6](e,t){this[GB](e,e.linkpath,"symlink",t)}[C6](e,t){this[GB](e,fA.resolve(this.cwd,e.linkpath),"link",t)}[I6](){this[YB]++}[xf](){this[YB]--,this[gR]()}[fR](e){this[xf](),e.resume()}[AR](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&process.platform!=="win32"}[aR](e){this[I6]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[p6](e,i))}[p6](e,t){this[vf](fA.dirname(e.absolute),this.dmode,i=>{if(i)return t(),this[dn](i,e);$t.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[fR](e),t()):n||this[AR](e,s)?this[hA](null,e,t):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[hA](null,e,t):$t.chmod(e.absolute,e.mode,o=>this[hA](o,e,t)):$t.rmdir(e.absolute,o=>this[hA](o,e,t)):zFe(e.absolute,o=>this[hA](o,e,t))})})}[hA](e,t,i){if(e)return this[dn](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[lR](t,i);case"Link":return this[C6](t,i);case"SymbolicLink":return this[d6](t,i);case"Directory":case"GNUDumpDir":return this[cR](t,i)}}[GB](e,t,i,n){$t[i](t,e.absolute,s=>{if(s)return this[dn](s,e);n(),this[xf](),e.resume()})}},b6=class extends JB{constructor(e){super(e)}[aR](e){let t=this[vf](fA.dirname(e.absolute),this.dmode,qB);if(t)return this[dn](t,e);try{let i=$t.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[fR](e);if(this[AR](e,i))return this[hA](null,e,qB);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&$t.chmodSync(e.absolute,e.mode):$t.rmdirSync(e.absolute):_Fe(e.absolute),this[hA](null,e,qB)}catch(n){return this[dn](n,e)}}catch(i){return this[hA](null,e,qB)}}[lR](e,t){let i=e.mode&4095||this.fmode,n=l=>{let c;try{$t.closeSync(o)}catch(u){c=u}(l||c)&&this[dn](l||c,e)},s,o;try{o=$t.openSync(e.absolute,w6(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.on("data",l=>{try{$t.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{$t.futimesSync(o,u,g)}catch(f){try{$t.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[oC](e)){let u=this[aC](e),g=this[AC](e);try{$t.fchownSync(o,u,g)}catch(f){try{$t.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[cR](e,t){let i=e.mode&4095||this.dmode,n=this[vf](e.absolute,i);if(n)return this[dn](n,e);if(e.mtime&&!this.noMtime)try{$t.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[oC](e))try{$t.chownSync(e.absolute,this[aC](e),this[AC](e))}catch(s){}e.resume()}[vf](e,t){try{return oR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[GB](e,t,i,n){try{$t[i+"Sync"](t,e.absolute),e.resume()}catch(s){return this[dn](s,e)}}};JB.Sync=b6;g6.exports=JB});var k6=w((Sat,Q6)=>{"use strict";var VFe=cf(),WB=hR(),S6=require("fs"),v6=wf(),x6=require("path"),Qat=Q6.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=VFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&XFe(i,e),i.file&&i.sync?ZFe(i):i.file?$Fe(i,t):i.sync?eNe(i):tNe(i)},XFe=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=r.filter,n=(s,o)=>{let a=o||x6.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(x6.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},ZFe=r=>{let e=new WB.Sync(r),t=r.file,i=!0,n,s=S6.statSync(t),o=r.maxReadSize||16*1024*1024;new v6.ReadStreamSync(t,{readSize:o,size:s.size}).pipe(e)},$Fe=(r,e)=>{let t=new WB(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),S6.stat(n,(l,c)=>{if(l)a(l);else{let u=new v6.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},eNe=r=>new WB.Sync(r),tNe=r=>new WB(r)});var P6=w(pi=>{"use strict";pi.c=pi.create=hV();pi.r=pi.replace=XD();pi.t=pi.list=MB();pi.u=pi.update=BV();pi.x=pi.extract=k6();pi.Pack=SB();pi.Unpack=hR();pi.Parse=nC();pi.ReadEntry=Zd();pi.WriteEntry=xD();pi.Header=hf();pi.Pax=gB();pi.types=Xd()});var L6=w((kat,N6)=>{var dR;N6.exports.getContent=()=>(typeof dR=="undefined"&&(dR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),dR)});var H6=w((CR,U6)=>{(function(r,e){typeof CR=="object"?U6.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(CR,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",f=0,h,p,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(b,v){v>0&&(g+=(b[1]?" ":"\u2502")+" "),!p&&b[0]===s&&(p=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(b){h=++f===y.length,t(b,s[b],h,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var _B=w((sAt,X6)=>{var ENe=Ks(),INe=Id(),yNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wNe=/^\w*$/;function BNe(r,e){if(ENe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||INe(r)?!0:wNe.test(r)||!yNe.test(r)||e!=null&&r in Object(e)}X6.exports=BNe});var VB=w((oAt,Z6)=>{var bNe=Wc(),QNe=Rn(),SNe="[object AsyncFunction]",vNe="[object Function]",xNe="[object GeneratorFunction]",kNe="[object Proxy]";function PNe(r){if(!QNe(r))return!1;var e=bNe(r);return e==vNe||e==xNe||e==SNe||e==kNe}Z6.exports=PNe});var e7=w((aAt,$6)=>{var DNe=Ns(),RNe=DNe["__core-js_shared__"];$6.exports=RNe});var i7=w((AAt,t7)=>{var QR=e7(),r7=function(){var r=/[^.]+$/.exec(QR&&QR.keys&&QR.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function FNe(r){return!!r7&&r7 in r}t7.exports=FNe});var SR=w((lAt,n7)=>{var NNe=Function.prototype,LNe=NNe.toString;function TNe(r){if(r!=null){try{return LNe.call(r)}catch(e){}try{return r+""}catch(e){}}return""}n7.exports=TNe});var o7=w((cAt,s7)=>{var ONe=VB(),MNe=i7(),KNe=Rn(),UNe=SR(),HNe=/[\\^$.*+?()[\]{}|]/g,jNe=/^\[object .+?Constructor\]$/,GNe=Function.prototype,YNe=Object.prototype,qNe=GNe.toString,JNe=YNe.hasOwnProperty,WNe=RegExp("^"+qNe.call(JNe).replace(HNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zNe(r){if(!KNe(r)||MNe(r))return!1;var e=ONe(r)?WNe:jNe;return e.test(UNe(r))}s7.exports=zNe});var A7=w((uAt,a7)=>{function _Ne(r,e){return r==null?void 0:r[e]}a7.exports=_Ne});var Rl=w((gAt,l7)=>{var VNe=o7(),XNe=A7();function ZNe(r,e){var t=XNe(r,e);return VNe(t)?t:void 0}l7.exports=ZNe});var cC=w((fAt,c7)=>{var $Ne=Rl(),eLe=$Ne(Object,"create");c7.exports=eLe});var f7=w((hAt,u7)=>{var g7=cC();function tLe(){this.__data__=g7?g7(null):{},this.size=0}u7.exports=tLe});var p7=w((pAt,h7)=>{function rLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}h7.exports=rLe});var C7=w((dAt,d7)=>{var iLe=cC(),nLe="__lodash_hash_undefined__",sLe=Object.prototype,oLe=sLe.hasOwnProperty;function aLe(r){var e=this.__data__;if(iLe){var t=e[r];return t===nLe?void 0:t}return oLe.call(e,r)?e[r]:void 0}d7.exports=aLe});var E7=w((CAt,m7)=>{var ALe=cC(),lLe=Object.prototype,cLe=lLe.hasOwnProperty;function uLe(r){var e=this.__data__;return ALe?e[r]!==void 0:cLe.call(e,r)}m7.exports=uLe});var y7=w((mAt,I7)=>{var gLe=cC(),fLe="__lodash_hash_undefined__";function hLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=gLe&&e===void 0?fLe:e,this}I7.exports=hLe});var B7=w((EAt,w7)=>{var pLe=f7(),dLe=p7(),CLe=C7(),mLe=E7(),ELe=y7();function kf(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function ILe(){this.__data__=[],this.size=0}b7.exports=ILe});var Pf=w((yAt,S7)=>{function yLe(r,e){return r===e||r!==r&&e!==e}S7.exports=yLe});var uC=w((wAt,v7)=>{var wLe=Pf();function BLe(r,e){for(var t=r.length;t--;)if(wLe(r[t][0],e))return t;return-1}v7.exports=BLe});var k7=w((BAt,x7)=>{var bLe=uC(),QLe=Array.prototype,SLe=QLe.splice;function vLe(r){var e=this.__data__,t=bLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():SLe.call(e,t,1),--this.size,!0}x7.exports=vLe});var D7=w((bAt,P7)=>{var xLe=uC();function kLe(r){var e=this.__data__,t=xLe(e,r);return t<0?void 0:e[t][1]}P7.exports=kLe});var F7=w((QAt,R7)=>{var PLe=uC();function DLe(r){return PLe(this.__data__,r)>-1}R7.exports=DLe});var L7=w((SAt,N7)=>{var RLe=uC();function FLe(r,e){var t=this.__data__,i=RLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}N7.exports=FLe});var gC=w((vAt,T7)=>{var NLe=Q7(),LLe=k7(),TLe=D7(),OLe=F7(),MLe=L7();function Df(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var KLe=Rl(),ULe=Ns(),HLe=KLe(ULe,"Map");O7.exports=HLe});var U7=w((kAt,M7)=>{var K7=B7(),jLe=gC(),GLe=XB();function YLe(){this.size=0,this.__data__={hash:new K7,map:new(GLe||jLe),string:new K7}}M7.exports=YLe});var j7=w((PAt,H7)=>{function qLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}H7.exports=qLe});var fC=w((DAt,G7)=>{var JLe=j7();function WLe(r,e){var t=r.__data__;return JLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}G7.exports=WLe});var q7=w((RAt,Y7)=>{var zLe=fC();function _Le(r){var e=zLe(this,r).delete(r);return this.size-=e?1:0,e}Y7.exports=_Le});var W7=w((FAt,J7)=>{var VLe=fC();function XLe(r){return VLe(this,r).get(r)}J7.exports=XLe});var _7=w((NAt,z7)=>{var ZLe=fC();function $Le(r){return ZLe(this,r).has(r)}z7.exports=$Le});var X7=w((LAt,V7)=>{var eTe=fC();function tTe(r,e){var t=eTe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}V7.exports=tTe});var ZB=w((TAt,Z7)=>{var rTe=U7(),iTe=q7(),nTe=W7(),sTe=_7(),oTe=X7();function Rf(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var eX=ZB(),aTe="Expected a function";function vR(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(aTe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(vR.Cache||eX),t}vR.Cache=eX;$7.exports=vR});var iX=w((MAt,rX)=>{var ATe=tX(),lTe=500;function cTe(r){var e=ATe(r,function(i){return t.size===lTe&&t.clear(),i}),t=e.cache;return e}rX.exports=cTe});var sX=w((KAt,nX)=>{var uTe=iX(),gTe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fTe=/\\(\\)?/g,hTe=uTe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(gTe,function(t,i,n,s){e.push(n?s.replace(fTe,"$1"):i||t)}),e});nX.exports=hTe});var Ff=w((UAt,oX)=>{var pTe=Ks(),dTe=_B(),CTe=sX(),mTe=lf();function ETe(r,e){return pTe(r)?r:dTe(r,e)?[r]:CTe(mTe(r))}oX.exports=ETe});var gu=w((HAt,aX)=>{var ITe=Id(),yTe=1/0;function wTe(r){if(typeof r=="string"||ITe(r))return r;var e=r+"";return e=="0"&&1/r==-yTe?"-0":e}aX.exports=wTe});var hC=w((jAt,AX)=>{var BTe=Ff(),bTe=gu();function QTe(r,e){e=BTe(e,r);for(var t=0,i=e.length;r!=null&&t{var STe=Rl(),vTe=function(){try{var r=STe(Object,"defineProperty");return r({},"",{}),r}catch(e){}}();lX.exports=vTe});var Nf=w((YAt,cX)=>{var uX=xR();function xTe(r,e,t){e=="__proto__"&&uX?uX(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}cX.exports=xTe});var $B=w((qAt,gX)=>{var kTe=Nf(),PTe=Pf(),DTe=Object.prototype,RTe=DTe.hasOwnProperty;function FTe(r,e,t){var i=r[e];(!(RTe.call(r,e)&&PTe(i,t))||t===void 0&&!(e in r))&&kTe(r,e,t)}gX.exports=FTe});var pC=w((JAt,fX)=>{var NTe=9007199254740991,LTe=/^(?:0|[1-9]\d*)$/;function TTe(r,e){var t=typeof r;return e=e==null?NTe:e,!!e&&(t=="number"||t!="symbol"&<e.test(r))&&r>-1&&r%1==0&&r{var OTe=$B(),MTe=Ff(),KTe=pC(),pX=Rn(),UTe=gu();function HTe(r,e,t,i){if(!pX(r))return r;e=MTe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var jTe=hC(),GTe=kR(),YTe=Ff();function qTe(r,e,t){for(var i=-1,n=e.length,s={};++i{function JTe(r,e){return r!=null&&e in Object(r)}mX.exports=JTe});var yX=w((VAt,IX)=>{var WTe=Wc(),zTe=ta(),_Te="[object Arguments]";function VTe(r){return zTe(r)&&WTe(r)==_Te}IX.exports=VTe});var dC=w((XAt,wX)=>{var BX=yX(),XTe=ta(),bX=Object.prototype,ZTe=bX.hasOwnProperty,$Te=bX.propertyIsEnumerable,eOe=BX(function(){return arguments}())?BX:function(r){return XTe(r)&&ZTe.call(r,"callee")&&!$Te.call(r,"callee")};wX.exports=eOe});var e0=w((ZAt,QX)=>{var tOe=9007199254740991;function rOe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=tOe}QX.exports=rOe});var PR=w(($At,SX)=>{var iOe=Ff(),nOe=dC(),sOe=Ks(),oOe=pC(),aOe=e0(),AOe=gu();function lOe(r,e,t){e=iOe(e,r);for(var i=-1,n=e.length,s=!1;++i{var cOe=EX(),uOe=PR();function gOe(r,e){return r!=null&&uOe(r,e,cOe)}vX.exports=gOe});var kX=w((tlt,xX)=>{var fOe=CX(),hOe=DR();function pOe(r,e){return fOe(r,e,function(t,i){return hOe(r,i)})}xX.exports=pOe});var t0=w((rlt,PX)=>{function dOe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var RX=Jc(),COe=dC(),mOe=Ks(),FX=RX?RX.isConcatSpreadable:void 0;function EOe(r){return mOe(r)||COe(r)||!!(FX&&r&&r[FX])}DX.exports=EOe});var OX=w((nlt,LX)=>{var IOe=t0(),yOe=NX();function TX(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=yOe),n||(n=[]);++s0&&t(a)?e>1?TX(a,e-1,t,i,n):IOe(n,a):i||(n[n.length]=a)}return n}LX.exports=TX});var KX=w((slt,MX)=>{var wOe=OX();function BOe(r){var e=r==null?0:r.length;return e?wOe(r,1):[]}MX.exports=BOe});var HX=w((olt,UX)=>{function bOe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}UX.exports=bOe});var RR=w((alt,jX)=>{var QOe=HX(),GX=Math.max;function SOe(r,e,t){return e=GX(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=GX(i.length-e,0),o=Array(s);++n{function vOe(r){return function(){return r}}YX.exports=vOe});var r0=w((llt,JX)=>{function xOe(r){return r}JX.exports=xOe});var _X=w((clt,WX)=>{var kOe=qX(),zX=xR(),POe=r0(),DOe=zX?function(r,e){return zX(r,"toString",{configurable:!0,enumerable:!1,value:kOe(e),writable:!0})}:POe;WX.exports=DOe});var XX=w((ult,VX)=>{var ROe=800,FOe=16,NOe=Date.now;function LOe(r){var e=0,t=0;return function(){var i=NOe(),n=FOe-(i-t);if(t=i,n>0){if(++e>=ROe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}VX.exports=LOe});var FR=w((glt,ZX)=>{var TOe=_X(),OOe=XX(),MOe=OOe(TOe);ZX.exports=MOe});var eZ=w((flt,$X)=>{var KOe=KX(),UOe=RR(),HOe=FR();function jOe(r){return HOe(UOe(r,void 0,KOe),r+"")}$X.exports=jOe});var rZ=w((hlt,tZ)=>{var GOe=kX(),YOe=eZ(),qOe=YOe(function(r,e){return r==null?{}:GOe(r,e)});tZ.exports=qOe});var hZ=w((uut,uZ)=>{"use strict";var GR;try{GR=Map}catch(r){}var YR;try{YR=Set}catch(r){}function gZ(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(fZ);if(GR&&r instanceof GR)return new Map(Array.from(r.entries()));if(YR&&r instanceof YR)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:gZ(r[n],e,t)}return i}return r}function fZ(r){return gZ(r,[],[])}uZ.exports=fZ});var IC=w(qR=>{"use strict";Object.defineProperty(qR,"__esModule",{value:!0});qR.default=eMe;var tMe=Object.prototype.toString,rMe=Error.prototype.toString,iMe=RegExp.prototype.toString,nMe=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",sMe=/^Symbol\((.*)\)(.*)$/;function oMe(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function pZ(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return oMe(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return nMe.call(r).replace(sMe,"Symbol($1)");let i=tMe.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+rMe.call(r)+"]":i==="RegExp"?iMe.call(r):null}function eMe(r,e){let t=pZ(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=pZ(this[i],e);return s!==null?s:n},2)}});var CA=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.default=bi.array=bi.object=bi.boolean=bi.date=bi.number=bi.string=bi.mixed=void 0;var dZ=aMe(IC());function aMe(r){return r&&r.__esModule?r:{default:r}}var CZ={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,dZ.default)(t,!0)}\``+(n?` (cast from the value \`${(0,dZ.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};bi.mixed=CZ;var mZ={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};bi.string=mZ;var EZ={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};bi.number=EZ;var IZ={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};bi.date=IZ;var yZ={isValue:"${path} field must be ${value}"};bi.boolean=yZ;var wZ={noUnknown:"${path} field has unspecified keys: ${unknown}"};bi.object=wZ;var BZ={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};bi.array=BZ;var AMe=Object.assign(Object.create(null),{mixed:CZ,string:mZ,number:EZ,date:IZ,object:wZ,array:BZ,boolean:yZ});bi.default=AMe});var QZ=w((hut,bZ)=>{var lMe=Object.prototype,cMe=lMe.hasOwnProperty;function uMe(r,e){return r!=null&&cMe.call(r,e)}bZ.exports=uMe});var yC=w((put,SZ)=>{var gMe=QZ(),fMe=PR();function hMe(r,e){return r!=null&&fMe(r,e,gMe)}SZ.exports=hMe});var Tf=w(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});o0.default=void 0;var pMe=r=>r&&r.__isYupSchema__;o0.default=pMe});var kZ=w(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});a0.default=void 0;var dMe=vZ(yC()),CMe=vZ(Tf());function vZ(r){return r&&r.__esModule?r:{default:r}}var xZ=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,dMe.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,CMe.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},mMe=xZ;a0.default=mMe});var WR=w(JR=>{"use strict";Object.defineProperty(JR,"__esModule",{value:!0});JR.default=EMe;function EMe(r){return r==null?[]:[].concat(r)}});var fu=w(A0=>{"use strict";Object.defineProperty(A0,"__esModule",{value:!0});A0.default=void 0;var IMe=PZ(IC()),yMe=PZ(WR());function PZ(r){return r&&r.__esModule?r:{default:r}}function zR(){return zR=Object.assign||function(r){for(var e=1;e(0,IMe.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super();this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,yMe.default)(e).forEach(s=>{wC.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,wC)}};A0.default=wC});var l0=w(_R=>{"use strict";Object.defineProperty(_R,"__esModule",{value:!0});_R.default=BMe;var VR=bMe(fu());function bMe(r){return r&&r.__esModule?r:{default:r}}var QMe=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function BMe(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=QMe(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new VR.default(o,s,l)):c(null,s);for(let f=0;f{function SMe(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}DZ.exports=SMe});var XR=w((wut,FZ)=>{var vMe=RZ(),xMe=vMe();FZ.exports=xMe});var LZ=w((But,NZ)=>{function kMe(r,e){for(var t=-1,i=Array(r);++t{function PMe(){return!1}TZ.exports=PMe});var bC=w((BC,Of)=>{var DMe=Ns(),RMe=OZ(),MZ=typeof BC=="object"&&BC&&!BC.nodeType&&BC,KZ=MZ&&typeof Of=="object"&&Of&&!Of.nodeType&&Of,FMe=KZ&&KZ.exports===MZ,UZ=FMe?DMe.Buffer:void 0,NMe=UZ?UZ.isBuffer:void 0,LMe=NMe||RMe;Of.exports=LMe});var jZ=w((Qut,HZ)=>{var TMe=Wc(),OMe=e0(),MMe=ta(),KMe="[object Arguments]",UMe="[object Array]",HMe="[object Boolean]",jMe="[object Date]",GMe="[object Error]",YMe="[object Function]",qMe="[object Map]",JMe="[object Number]",WMe="[object Object]",zMe="[object RegExp]",_Me="[object Set]",VMe="[object String]",XMe="[object WeakMap]",ZMe="[object ArrayBuffer]",$Me="[object DataView]",e1e="[object Float32Array]",t1e="[object Float64Array]",r1e="[object Int8Array]",i1e="[object Int16Array]",n1e="[object Int32Array]",s1e="[object Uint8Array]",o1e="[object Uint8ClampedArray]",a1e="[object Uint16Array]",A1e="[object Uint32Array]",wr={};wr[e1e]=wr[t1e]=wr[r1e]=wr[i1e]=wr[n1e]=wr[s1e]=wr[o1e]=wr[a1e]=wr[A1e]=!0;wr[KMe]=wr[UMe]=wr[ZMe]=wr[HMe]=wr[$Me]=wr[jMe]=wr[GMe]=wr[YMe]=wr[qMe]=wr[JMe]=wr[WMe]=wr[zMe]=wr[_Me]=wr[VMe]=wr[XMe]=!1;function l1e(r){return MMe(r)&&OMe(r.length)&&!!wr[TMe(r)]}HZ.exports=l1e});var c0=w((Sut,GZ)=>{function c1e(r){return function(e){return r(e)}}GZ.exports=c1e});var u0=w((QC,Mf)=>{var u1e=rk(),YZ=typeof QC=="object"&&QC&&!QC.nodeType&&QC,SC=YZ&&typeof Mf=="object"&&Mf&&!Mf.nodeType&&Mf,g1e=SC&&SC.exports===YZ,ZR=g1e&&u1e.process,f1e=function(){try{var r=SC&&SC.require&&SC.require("util").types;return r||ZR&&ZR.binding&&ZR.binding("util")}catch(e){}}();Mf.exports=f1e});var g0=w((vut,qZ)=>{var h1e=jZ(),p1e=c0(),JZ=u0(),WZ=JZ&&JZ.isTypedArray,d1e=WZ?p1e(WZ):h1e;qZ.exports=d1e});var $R=w((xut,zZ)=>{var C1e=LZ(),m1e=dC(),E1e=Ks(),I1e=bC(),y1e=pC(),w1e=g0(),B1e=Object.prototype,b1e=B1e.hasOwnProperty;function Q1e(r,e){var t=E1e(r),i=!t&&m1e(r),n=!t&&!i&&I1e(r),s=!t&&!i&&!n&&w1e(r),o=t||i||n||s,a=o?C1e(r.length,String):[],l=a.length;for(var c in r)(e||b1e.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||y1e(c,l)))&&a.push(c);return a}zZ.exports=Q1e});var f0=w((kut,_Z)=>{var S1e=Object.prototype;function v1e(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||S1e;return r===t}_Z.exports=v1e});var eF=w((Put,VZ)=>{function x1e(r,e){return function(t){return r(e(t))}}VZ.exports=x1e});var ZZ=w((Dut,XZ)=>{var k1e=eF(),P1e=k1e(Object.keys,Object);XZ.exports=P1e});var e$=w((Rut,$Z)=>{var D1e=f0(),R1e=ZZ(),F1e=Object.prototype,N1e=F1e.hasOwnProperty;function L1e(r){if(!D1e(r))return R1e(r);var e=[];for(var t in Object(r))N1e.call(r,t)&&t!="constructor"&&e.push(t);return e}$Z.exports=L1e});var vC=w((Fut,t$)=>{var T1e=VB(),O1e=e0();function M1e(r){return r!=null&&O1e(r.length)&&!T1e(r)}t$.exports=M1e});var Kf=w((Nut,r$)=>{var K1e=$R(),U1e=e$(),H1e=vC();function j1e(r){return H1e(r)?K1e(r):U1e(r)}r$.exports=j1e});var tF=w((Lut,i$)=>{var G1e=XR(),Y1e=Kf();function q1e(r,e){return r&&G1e(r,e,Y1e)}i$.exports=q1e});var s$=w((Tut,n$)=>{var J1e=gC();function W1e(){this.__data__=new J1e,this.size=0}n$.exports=W1e});var a$=w((Out,o$)=>{function z1e(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}o$.exports=z1e});var l$=w((Mut,A$)=>{function _1e(r){return this.__data__.get(r)}A$.exports=_1e});var u$=w((Kut,c$)=>{function V1e(r){return this.__data__.has(r)}c$.exports=V1e});var f$=w((Uut,g$)=>{var X1e=gC(),Z1e=XB(),$1e=ZB(),eKe=200;function tKe(r,e){var t=this.__data__;if(t instanceof X1e){var i=t.__data__;if(!Z1e||i.length{var rKe=gC(),iKe=s$(),nKe=a$(),sKe=l$(),oKe=u$(),aKe=f$();function Uf(r){var e=this.__data__=new rKe(r);this.size=e.size}Uf.prototype.clear=iKe;Uf.prototype.delete=nKe;Uf.prototype.get=sKe;Uf.prototype.has=oKe;Uf.prototype.set=aKe;h$.exports=Uf});var d$=w((jut,p$)=>{var AKe="__lodash_hash_undefined__";function lKe(r){return this.__data__.set(r,AKe),this}p$.exports=lKe});var m$=w((Gut,C$)=>{function cKe(r){return this.__data__.has(r)}C$.exports=cKe});var I$=w((Yut,E$)=>{var uKe=ZB(),gKe=d$(),fKe=m$();function h0(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new uKe;++e{function hKe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function pKe(r,e){return r.has(e)}B$.exports=pKe});var rF=w((Wut,Q$)=>{var dKe=I$(),CKe=w$(),mKe=b$(),EKe=1,IKe=2;function yKe(r,e,t,i,n,s){var o=t&EKe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,f=!0,h=t&IKe?new dKe:void 0;for(s.set(r,e),s.set(e,r);++g{var wKe=Ns(),BKe=wKe.Uint8Array;S$.exports=BKe});var x$=w((_ut,v$)=>{function bKe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}v$.exports=bKe});var P$=w((Vut,k$)=>{function QKe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}k$.exports=QKe});var L$=w((Xut,D$)=>{var R$=Jc(),F$=iF(),SKe=Pf(),vKe=rF(),xKe=x$(),kKe=P$(),PKe=1,DKe=2,RKe="[object Boolean]",FKe="[object Date]",NKe="[object Error]",LKe="[object Map]",TKe="[object Number]",OKe="[object RegExp]",MKe="[object Set]",KKe="[object String]",UKe="[object Symbol]",HKe="[object ArrayBuffer]",jKe="[object DataView]",N$=R$?R$.prototype:void 0,nF=N$?N$.valueOf:void 0;function GKe(r,e,t,i,n,s,o){switch(t){case jKe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case HKe:return!(r.byteLength!=e.byteLength||!s(new F$(r),new F$(e)));case RKe:case FKe:case TKe:return SKe(+r,+e);case NKe:return r.name==e.name&&r.message==e.message;case OKe:case KKe:return r==e+"";case LKe:var a=xKe;case MKe:var l=i&PKe;if(a||(a=kKe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=DKe,o.set(r,e);var u=vKe(a(r),a(e),i,n,s,o);return o.delete(r),u;case UKe:if(nF)return nF.call(r)==nF.call(e)}return!1}D$.exports=GKe});var sF=w((Zut,T$)=>{var YKe=t0(),qKe=Ks();function JKe(r,e,t){var i=e(r);return qKe(r)?i:YKe(i,t(r))}T$.exports=JKe});var M$=w(($ut,O$)=>{function WKe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function zKe(){return[]}K$.exports=zKe});var p0=w((tgt,U$)=>{var _Ke=M$(),VKe=oF(),XKe=Object.prototype,ZKe=XKe.propertyIsEnumerable,H$=Object.getOwnPropertySymbols,$Ke=H$?function(r){return r==null?[]:(r=Object(r),_Ke(H$(r),function(e){return ZKe.call(r,e)}))}:VKe;U$.exports=$Ke});var aF=w((rgt,j$)=>{var eUe=sF(),tUe=p0(),rUe=Kf();function iUe(r){return eUe(r,rUe,tUe)}j$.exports=iUe});var q$=w((igt,G$)=>{var Y$=aF(),nUe=1,sUe=Object.prototype,oUe=sUe.hasOwnProperty;function aUe(r,e,t,i,n,s){var o=t&nUe,a=Y$(r),l=a.length,c=Y$(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:oUe.call(e,f)))return!1}var h=s.get(r),p=s.get(e);if(h&&p)return h==e&&p==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var AUe=Rl(),lUe=Ns(),cUe=AUe(lUe,"DataView");J$.exports=cUe});var _$=w((sgt,z$)=>{var uUe=Rl(),gUe=Ns(),fUe=uUe(gUe,"Promise");z$.exports=fUe});var X$=w((ogt,V$)=>{var hUe=Rl(),pUe=Ns(),dUe=hUe(pUe,"Set");V$.exports=dUe});var $$=w((agt,Z$)=>{var CUe=Rl(),mUe=Ns(),EUe=CUe(mUe,"WeakMap");Z$.exports=EUe});var kC=w((Agt,eee)=>{var AF=W$(),lF=XB(),cF=_$(),uF=X$(),gF=$$(),tee=Wc(),Hf=SR(),ree="[object Map]",IUe="[object Object]",iee="[object Promise]",nee="[object Set]",see="[object WeakMap]",oee="[object DataView]",yUe=Hf(AF),wUe=Hf(lF),BUe=Hf(cF),bUe=Hf(uF),QUe=Hf(gF),hu=tee;(AF&&hu(new AF(new ArrayBuffer(1)))!=oee||lF&&hu(new lF)!=ree||cF&&hu(cF.resolve())!=iee||uF&&hu(new uF)!=nee||gF&&hu(new gF)!=see)&&(hu=function(r){var e=tee(r),t=e==IUe?r.constructor:void 0,i=t?Hf(t):"";if(i)switch(i){case yUe:return oee;case wUe:return ree;case BUe:return iee;case bUe:return nee;case QUe:return see}return e});eee.exports=hu});var hee=w((lgt,aee)=>{var fF=xC(),SUe=rF(),vUe=L$(),xUe=q$(),Aee=kC(),lee=Ks(),cee=bC(),kUe=g0(),PUe=1,uee="[object Arguments]",gee="[object Array]",d0="[object Object]",DUe=Object.prototype,fee=DUe.hasOwnProperty;function RUe(r,e,t,i,n,s){var o=lee(r),a=lee(e),l=o?gee:Aee(r),c=a?gee:Aee(e);l=l==uee?d0:l,c=c==uee?d0:c;var u=l==d0,g=c==d0,f=l==c;if(f&&cee(r)){if(!cee(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new fF),o||kUe(r)?SUe(r,e,t,i,n,s):vUe(r,e,l,t,i,n,s);if(!(t&PUe)){var h=u&&fee.call(r,"__wrapped__"),p=g&&fee.call(e,"__wrapped__");if(h||p){var m=h?r.value():r,y=p?e.value():e;return s||(s=new fF),n(m,y,t,i,s)}}return f?(s||(s=new fF),xUe(r,e,t,i,n,s)):!1}aee.exports=RUe});var hF=w((cgt,pee)=>{var FUe=hee(),dee=ta();function Cee(r,e,t,i,n){return r===e?!0:r==null||e==null||!dee(r)&&!dee(e)?r!==r&&e!==e:FUe(r,e,t,i,Cee,n)}pee.exports=Cee});var Eee=w((ugt,mee)=>{var NUe=xC(),LUe=hF(),TUe=1,OUe=2;function MUe(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var KUe=Rn();function UUe(r){return r===r&&!KUe(r)}Iee.exports=UUe});var wee=w((fgt,yee)=>{var HUe=pF(),jUe=Kf();function GUe(r){for(var e=jUe(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,HUe(n)]}return e}yee.exports=GUe});var dF=w((hgt,Bee)=>{function YUe(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Bee.exports=YUe});var Qee=w((pgt,bee)=>{var qUe=Eee(),JUe=wee(),WUe=dF();function zUe(r){var e=JUe(r);return e.length==1&&e[0][2]?WUe(e[0][0],e[0][1]):function(t){return t===r||qUe(t,r,e)}}bee.exports=zUe});var C0=w((dgt,See)=>{var _Ue=hC();function VUe(r,e,t){var i=r==null?void 0:_Ue(r,e);return i===void 0?t:i}See.exports=VUe});var xee=w((Cgt,vee)=>{var XUe=hF(),ZUe=C0(),$Ue=DR(),e2e=_B(),t2e=pF(),r2e=dF(),i2e=gu(),n2e=1,s2e=2;function o2e(r,e){return e2e(r)&&t2e(e)?r2e(i2e(r),e):function(t){var i=ZUe(t,r);return i===void 0&&i===e?$Ue(t,r):XUe(e,i,n2e|s2e)}}vee.exports=o2e});var Pee=w((mgt,kee)=>{function a2e(r){return function(e){return e==null?void 0:e[r]}}kee.exports=a2e});var Ree=w((Egt,Dee)=>{var A2e=hC();function l2e(r){return function(e){return A2e(e,r)}}Dee.exports=l2e});var Nee=w((Igt,Fee)=>{var c2e=Pee(),u2e=Ree(),g2e=_B(),f2e=gu();function h2e(r){return g2e(r)?c2e(f2e(r)):u2e(r)}Fee.exports=h2e});var CF=w((ygt,Lee)=>{var p2e=Qee(),d2e=xee(),C2e=r0(),m2e=Ks(),E2e=Nee();function I2e(r){return typeof r=="function"?r:r==null?C2e:typeof r=="object"?m2e(r)?d2e(r[0],r[1]):p2e(r):E2e(r)}Lee.exports=I2e});var mF=w((wgt,Tee)=>{var y2e=Nf(),w2e=tF(),B2e=CF();function b2e(r,e){var t={};return e=B2e(e,3),w2e(r,function(i,n,s){y2e(t,n,e(i,n,s))}),t}Tee.exports=b2e});var PC=w((Bgt,Oee)=>{"use strict";function pu(r){this._maxSize=r,this.clear()}pu.prototype.clear=function(){this._size=0,this._values=Object.create(null)};pu.prototype.get=function(r){return this._values[r]};pu.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var Q2e=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Mee=/^\d+$/,S2e=/^\d/,v2e=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,x2e=/^\s*(['"]?)(.*?)(\1)\s*$/,EF=512,Kee=new pu(EF),Uee=new pu(EF),Hee=new pu(EF);Oee.exports={Cache:pu,split:yF,normalizePath:IF,setter:function(r){var e=IF(r);return Uee.get(r)||Uee.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(DC,"__esModule",{value:!0});DC.create=F2e;DC.default=void 0;var N2e=PC(),m0={context:"$",value:"."};function F2e(r,e){return new E0(r,e)}var E0=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===m0.context,this.isValue=this.key[0]===m0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?m0.context:this.isValue?m0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,N2e.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};DC.default=E0;E0.prototype.__isYupRef=!0});var jee=w(BF=>{"use strict";Object.defineProperty(BF,"__esModule",{value:!0});BF.default=L2e;var T2e=bF(mF()),I0=bF(fu()),O2e=bF(du());function bF(r){return r&&r.__esModule?r:{default:r}}function y0(){return y0=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function L2e(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=M2e(t,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=r,{parent:m,context:y}=a;function b(Y){return O2e.default.isRef(Y)?Y.getValue(n,m,y):Y}function v(Y={}){let $=(0,T2e.default)(y0({value:n,originalValue:l,label:o,path:Y.path||s},h,Y.params),b),_=new I0.default(I0.default.formatError(Y.message||p,$),n,$.path,Y.type||g);return _.params=$,_}let x=y0({path:s,parent:m,type:g,createError:v,resolve:b,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(x,n,x)).then(Y=>{I0.default.isError(Y)?i(Y):Y?i(null,Y):i(v())})}catch(Y){i(Y)}return}let T;try{var q;if(T=f.call(x,n,x),typeof((q=T)==null?void 0:q.then)=="function")throw new Error(`Validation test of type: "${x.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(Y){i(Y);return}I0.default.isError(T)?i(T):T?i(null,T):i(v())}return e.OPTIONS=r,e}});var QF=w(RC=>{"use strict";Object.defineProperty(RC,"__esModule",{value:!0});RC.getIn=Gee;RC.default=void 0;var K2e=PC(),U2e=r=>r.substr(0,r.length-1).substr(1);function Gee(r,e,t,i=t){let n,s,o;return e?((0,K2e.forEach)(e,(a,l,c)=>{let u=l?U2e(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var H2e=(r,e,t,i)=>Gee(r,e,t,i).schema,j2e=H2e;RC.default=j2e});var qee=w(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});w0.default=void 0;var Yee=G2e(du());function G2e(r){return r&&r.__esModule?r:{default:r}}var B0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){Yee.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Yee.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new B0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};w0.default=B0});var EA=w(b0=>{"use strict";Object.defineProperty(b0,"__esModule",{value:!0});b0.default=void 0;var Jee=mA(hZ()),jf=CA(),Y2e=mA(kZ()),Wee=mA(l0()),Q0=mA(jee()),zee=mA(IC()),q2e=mA(du()),J2e=QF(),W2e=mA(WR()),_ee=mA(fu()),Vee=mA(qee());function mA(r){return r&&r.__esModule?r:{default:r}}function Js(){return Js=Object.assign||function(r){for(var e=1;e{this.typeError(jf.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Js({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Js({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Jee.default)(Js({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Js({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Js({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,zee.default)(e),o=(0,zee.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". - -attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Js({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Wee.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,Wee.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Js({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Js({},t,{value:e})),n;return i._validate(e,Js({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(_ee.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(_ee.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Jee.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=jf.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=jf.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=jf.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,Q0.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,W2e.default)(e).map(s=>new q2e.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new Y2e.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,Q0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=jf.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,Q0.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=jf.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,Q0.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};b0.default=ua;ua.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])ua.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,J2e.getIn)(this,e,t,i.context);return o[r](n&&n[s],Js({},i,{parent:n,path:e}))};for(let r of["equals","is"])ua.prototype[r]=ua.prototype.oneOf;for(let r of["not","nope"])ua.prototype[r]=ua.prototype.notOneOf;ua.prototype.optional=ua.prototype.notRequired});var Zee=w(FC=>{"use strict";Object.defineProperty(FC,"__esModule",{value:!0});FC.create=Xee;FC.default=void 0;var _2e=z2e(EA());function z2e(r){return r&&r.__esModule?r:{default:r}}var SF=_2e.default,V2e=SF;FC.default=V2e;function Xee(){return new SF}Xee.prototype=SF.prototype});var Gf=w(S0=>{"use strict";Object.defineProperty(S0,"__esModule",{value:!0});S0.default=void 0;var X2e=r=>r==null;S0.default=X2e});var ite=w(NC=>{"use strict";Object.defineProperty(NC,"__esModule",{value:!0});NC.create=$ee;NC.default=void 0;var Z2e=ete(EA()),tte=CA(),rte=ete(Gf());function ete(r){return r&&r.__esModule?r:{default:r}}function $ee(){return new v0}var v0=class extends Z2e.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=tte.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,rte.default)(t)||t===!0}})}isFalse(e=tte.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,rte.default)(t)||t===!1}})}};NC.default=v0;$ee.prototype=v0.prototype});var ote=w(LC=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});LC.create=nte;LC.default=void 0;var ga=CA(),IA=ste(Gf()),$2e=ste(EA());function ste(r){return r&&r.__esModule?r:{default:r}}var eHe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,tHe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,rHe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,iHe=r=>(0,IA.default)(r)||r===r.trim(),nHe={}.toString();function nte(){return new x0}var x0=class extends $2e.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===nHe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ga.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,IA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ga.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,IA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ga.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,IA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ga.string.matches,params:{regex:e},test:o=>(0,IA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ga.string.email){return this.matches(eHe,{name:"email",message:e,excludeEmptyString:!0})}url(e=ga.string.url){return this.matches(tHe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ga.string.uuid){return this.matches(rHe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ga.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:iHe})}lowercase(e=ga.string.lowercase){return this.transform(t=>(0,IA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,IA.default)(t)||t===t.toLowerCase()})}uppercase(e=ga.string.uppercase){return this.transform(t=>(0,IA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,IA.default)(t)||t===t.toUpperCase()})}};LC.default=x0;nte.prototype=x0.prototype});var lte=w(TC=>{"use strict";Object.defineProperty(TC,"__esModule",{value:!0});TC.create=ate;TC.default=void 0;var Cu=CA(),mu=Ate(Gf()),sHe=Ate(EA());function Ate(r){return r&&r.__esModule?r:{default:r}}var oHe=r=>r!=+r;function ate(){return new k0}var k0=class extends sHe.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!oHe(e)}min(e,t=Cu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,mu.default)(i)||i>=this.resolve(e)}})}max(e,t=Cu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,mu.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=Cu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,mu.default)(i)||ithis.resolve(e)}})}positive(e=Cu.number.positive){return this.moreThan(0,e)}negative(e=Cu.number.negative){return this.lessThan(0,e)}integer(e=Cu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,mu.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,mu.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,mu.default)(n)?n:Math[e](n))}};TC.default=k0;ate.prototype=k0.prototype});var cte=w(vF=>{"use strict";Object.defineProperty(vF,"__esModule",{value:!0});vF.default=aHe;var AHe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function aHe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=AHe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var fte=w(OC=>{"use strict";Object.defineProperty(OC,"__esModule",{value:!0});OC.create=xF;OC.default=void 0;var lHe=P0(cte()),ute=CA(),gte=P0(Gf()),cHe=P0(du()),uHe=P0(EA());function P0(r){return r&&r.__esModule?r:{default:r}}var kF=new Date(""),gHe=r=>Object.prototype.toString.call(r)==="[object Date]";function xF(){return new MC}var MC=class extends uHe.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,lHe.default)(e),isNaN(e)?kF:new Date(e))})})}_typeCheck(e){return gHe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(cHe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=ute.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,gte.default)(n)||n>=this.resolve(i)}})}max(e,t=ute.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,gte.default)(n)||n<=this.resolve(i)}})}};OC.default=MC;MC.INVALID_DATE=kF;xF.prototype=MC.prototype;xF.INVALID_DATE=kF});var pte=w((Tgt,hte)=>{function fHe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function hHe(r){return function(e){return r==null?void 0:r[e]}}dte.exports=hHe});var Ete=w((Mgt,mte)=>{var pHe=Cte(),dHe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},CHe=pHe(dHe);mte.exports=CHe});var yte=w((Kgt,Ite)=>{var mHe=Ete(),EHe=lf(),IHe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,yHe="\\u0300-\\u036f",wHe="\\ufe20-\\ufe2f",BHe="\\u20d0-\\u20ff",bHe=yHe+wHe+BHe,QHe="["+bHe+"]",SHe=RegExp(QHe,"g");function vHe(r){return r=EHe(r),r&&r.replace(IHe,mHe).replace(SHe,"")}Ite.exports=vHe});var Bte=w((Ugt,wte)=>{var xHe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function kHe(r){return r.match(xHe)||[]}wte.exports=kHe});var Qte=w((Hgt,bte)=>{var PHe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function DHe(r){return PHe.test(r)}bte.exports=DHe});var Yte=w((jgt,Ste)=>{var vte="\\ud800-\\udfff",RHe="\\u0300-\\u036f",FHe="\\ufe20-\\ufe2f",NHe="\\u20d0-\\u20ff",LHe=RHe+FHe+NHe,xte="\\u2700-\\u27bf",kte="a-z\\xdf-\\xf6\\xf8-\\xff",THe="\\xac\\xb1\\xd7\\xf7",OHe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",MHe="\\u2000-\\u206f",KHe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Pte="A-Z\\xc0-\\xd6\\xd8-\\xde",UHe="\\ufe0e\\ufe0f",Dte=THe+OHe+MHe+KHe,Rte="['\u2019]",Fte="["+Dte+"]",HHe="["+LHe+"]",Nte="\\d+",jHe="["+xte+"]",Lte="["+kte+"]",Tte="[^"+vte+Dte+Nte+xte+kte+Pte+"]",GHe="\\ud83c[\\udffb-\\udfff]",YHe="(?:"+HHe+"|"+GHe+")",qHe="[^"+vte+"]",Ote="(?:\\ud83c[\\udde6-\\uddff]){2}",Mte="[\\ud800-\\udbff][\\udc00-\\udfff]",Yf="["+Pte+"]",JHe="\\u200d",Kte="(?:"+Lte+"|"+Tte+")",WHe="(?:"+Yf+"|"+Tte+")",Ute="(?:"+Rte+"(?:d|ll|m|re|s|t|ve))?",Hte="(?:"+Rte+"(?:D|LL|M|RE|S|T|VE))?",jte=YHe+"?",Gte="["+UHe+"]?",zHe="(?:"+JHe+"(?:"+[qHe,Ote,Mte].join("|")+")"+Gte+jte+")*",_He="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",VHe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",XHe=Gte+jte+zHe,ZHe="(?:"+[jHe,Ote,Mte].join("|")+")"+XHe,$He=RegExp([Yf+"?"+Lte+"+"+Ute+"(?="+[Fte,Yf,"$"].join("|")+")",WHe+"+"+Hte+"(?="+[Fte,Yf+Kte,"$"].join("|")+")",Yf+"?"+Kte+"+"+Ute,Yf+"+"+Hte,VHe,_He,Nte,ZHe].join("|"),"g");function eje(r){return r.match($He)||[]}Ste.exports=eje});var Jte=w((Ggt,qte)=>{var tje=Bte(),rje=Qte(),ije=lf(),nje=Yte();function sje(r,e,t){return r=ije(r),e=t?void 0:e,e===void 0?rje(r)?nje(r):tje(r):r.match(e)||[]}qte.exports=sje});var PF=w((Ygt,Wte)=>{var oje=pte(),aje=yte(),Aje=Jte(),lje="['\u2019]",cje=RegExp(lje,"g");function uje(r){return function(e){return oje(Aje(aje(e).replace(cje,"")),r,"")}}Wte.exports=uje});var _te=w((qgt,zte)=>{var gje=PF(),fje=gje(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});zte.exports=fje});var Xte=w((Jgt,Vte)=>{var hje=Zw(),pje=PF(),dje=pje(function(r,e,t){return e=e.toLowerCase(),r+(t?hje(e):e)});Vte.exports=dje});var $te=w((Wgt,Zte)=>{var Cje=Nf(),mje=tF(),Eje=CF();function Ije(r,e){var t={};return e=Eje(e,3),mje(r,function(i,n,s){Cje(t,e(i,n,s),i)}),t}Zte.exports=Ije});var tre=w((zgt,DF)=>{DF.exports=function(r){return ere(yje(r),r)};DF.exports.array=ere;function ere(r,e){var t=r.length,i=new Array(t),n={},s=t,o=wje(e),a=Bje(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(m){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--t]=c}}}function yje(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(RF,"__esModule",{value:!0});RF.default=bje;var Qje=D0(yC()),Sje=D0(tre()),vje=PC(),xje=D0(du()),kje=D0(Tf());function D0(r){return r&&r.__esModule?r:{default:r}}function bje(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,vje.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,Qje.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),xje.default.isRef(o)&&o.isSibling?n(o.path,s):(0,kje.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return Sje.default.array(i,t).reverse()}});var nre=w(FF=>{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF.default=Pje;function ire(r,e){let t=Infinity;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function Pje(r){return(e,t)=>ire(r,e)-ire(r,t)}});var ure=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.create=sre;KC.default=void 0;var ore=fa(yC()),are=fa(_te()),Dje=fa(Xte()),Rje=fa($te()),Fje=fa(mF()),Nje=PC(),Are=CA(),Lje=fa(rre()),lre=fa(nre()),Tje=fa(l0()),Oje=fa(fu()),NF=fa(EA());function fa(r){return r&&r.__esModule?r:{default:r}}function qf(){return qf=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function Mje(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var Kje=(0,lre.default)([]),R0=class extends NF.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=Kje,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return cre(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=qf({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,ore.default)(n,g);if(f){let p,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,f=f.resolve({value:m,context:t.context,parent:l});let y="spec"in f?f.spec:void 0,b=y==null?void 0:y.strict;if(y==null?void 0:y.strip){u=u||g in n;continue}p=!t.__validating||!b?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!Oje.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!cre(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,m)=>{let y=h.indexOf(".")===-1?(t.path?`${t.path}.`:"")+h:`${t.path||""}["${h}"]`,b=this.fields[h];if(b&&"validate"in b){b.validate(g[h],qf({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),m);return}m(null)});(0,Tje.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=qf({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof NF.default&&s instanceof NF.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,lre.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Lje.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,Nje.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,ore.default)(s,e)&&(o=qf({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Are.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=Mje(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Are.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,Rje.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Dje.default)}snakeCase(){return this.transformKeys(are.default)}constantCase(){return this.transformKeys(e=>(0,are.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fje.default)(this.fields,t=>t.describe()),e}};KC.default=R0;function sre(r){return new R0(r)}sre.prototype=R0.prototype});var fre=w(UC=>{"use strict";Object.defineProperty(UC,"__esModule",{value:!0});UC.create=gre;UC.default=void 0;var LF=Jf(Gf()),Uje=Jf(Tf()),Hje=Jf(IC()),TF=CA(),jje=Jf(l0()),Gje=Jf(fu()),Yje=Jf(EA());function Jf(r){return r&&r.__esModule?r:{default:r}}function F0(){return F0=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch(i){t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,F0({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,f=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(h,p)=>{if(h){if(!Gje.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let m=new Array(p.length);for(let y=0;yc.validate(b,x,q)}(0,jje.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,Uje.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Hje.default)(e));return t.innerType=e,t}length(e,t=TF.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,LF.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||TF.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,LF.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||TF.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,LF.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};UC.default=N0;gre.prototype=N0.prototype});var hre=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.create=qje;HC.default=void 0;var Wje=Jje(Tf());function Jje(r){return r&&r.__esModule?r:{default:r}}function qje(r){return new OF(r)}var OF=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,Wje.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},zje=OF;HC.default=zje});var pre=w(MF=>{"use strict";Object.defineProperty(MF,"__esModule",{value:!0});MF.default=_je;var Xje=Vje(CA());function Vje(r){return r&&r.__esModule?r:{default:r}}function _je(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{Xje.default[e][t]=r[e][t]})})}});var UF=w(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.addMethod=Zje;Object.defineProperty(Br,"MixedSchema",{enumerable:!0,get:function(){return dre.default}});Object.defineProperty(Br,"mixed",{enumerable:!0,get:function(){return dre.create}});Object.defineProperty(Br,"BooleanSchema",{enumerable:!0,get:function(){return KF.default}});Object.defineProperty(Br,"bool",{enumerable:!0,get:function(){return KF.create}});Object.defineProperty(Br,"boolean",{enumerable:!0,get:function(){return KF.create}});Object.defineProperty(Br,"StringSchema",{enumerable:!0,get:function(){return Cre.default}});Object.defineProperty(Br,"string",{enumerable:!0,get:function(){return Cre.create}});Object.defineProperty(Br,"NumberSchema",{enumerable:!0,get:function(){return mre.default}});Object.defineProperty(Br,"number",{enumerable:!0,get:function(){return mre.create}});Object.defineProperty(Br,"DateSchema",{enumerable:!0,get:function(){return Ere.default}});Object.defineProperty(Br,"date",{enumerable:!0,get:function(){return Ere.create}});Object.defineProperty(Br,"ObjectSchema",{enumerable:!0,get:function(){return Ire.default}});Object.defineProperty(Br,"object",{enumerable:!0,get:function(){return Ire.create}});Object.defineProperty(Br,"ArraySchema",{enumerable:!0,get:function(){return yre.default}});Object.defineProperty(Br,"array",{enumerable:!0,get:function(){return yre.create}});Object.defineProperty(Br,"ref",{enumerable:!0,get:function(){return $je.create}});Object.defineProperty(Br,"lazy",{enumerable:!0,get:function(){return eGe.create}});Object.defineProperty(Br,"ValidationError",{enumerable:!0,get:function(){return tGe.default}});Object.defineProperty(Br,"reach",{enumerable:!0,get:function(){return rGe.default}});Object.defineProperty(Br,"isSchema",{enumerable:!0,get:function(){return wre.default}});Object.defineProperty(Br,"setLocale",{enumerable:!0,get:function(){return iGe.default}});Object.defineProperty(Br,"BaseSchema",{enumerable:!0,get:function(){return nGe.default}});var dre=Eu(Zee()),KF=Eu(ite()),Cre=Eu(ote()),mre=Eu(lte()),Ere=Eu(fte()),Ire=Eu(ure()),yre=Eu(fre()),$je=du(),eGe=hre(),tGe=jC(fu()),rGe=jC(QF()),wre=jC(Tf()),iGe=jC(pre()),nGe=jC(EA());function jC(r){return r&&r.__esModule?r:{default:r}}function Bre(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Bre=function(){return r},r}function Eu(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Bre();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function Zje(r,e,t){if(!r||!(0,wre.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var xre=w((hft,YC)=>{"use strict";var aGe=process.env.TERM_PROGRAM==="Hyper",AGe=process.platform==="win32",Qre=process.platform==="linux",HF={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Sre=Object.assign({},HF,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),vre=Object.assign({},HF,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:Qre?"\u25B8":"\u276F",pointerSmall:Qre?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});YC.exports=AGe&&!aGe?Sre:vre;Reflect.defineProperty(YC.exports,"common",{enumerable:!1,value:HF});Reflect.defineProperty(YC.exports,"windows",{enumerable:!1,value:Sre});Reflect.defineProperty(YC.exports,"other",{enumerable:!1,value:vre})});var Eo=w((pft,jF)=>{"use strict";var lGe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),cGe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,kre=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=cGe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!lGe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=xre(),r.define=n,r};jF.exports=kre();jF.exports.create=kre});var Xi=w(Lt=>{"use strict";var uGe=Object.prototype.toString,Ws=Eo(),Pre=!1,GF=[],Dre={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Lt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Lt.hasColor=r=>!!r&&Ws.hasColor(r);var T0=Lt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Lt.nativeType=r=>uGe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Lt.isAsyncFn=r=>Lt.nativeType(r)==="asyncfunction";Lt.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Lt.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Lt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Lt.scrollUp=(r=[])=>[r.pop(),...r];Lt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Lt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Lt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Lt.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e;n-=((i+t).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Lt.unmute=r=>{let e=r.stack.find(i=>Ws.keys.color.includes(i));return e?Ws[e]:r.stack.find(i=>i.slice(2)==="bg")?Ws[e.slice(2)]:i=>i};Lt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Lt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ws.keys.color.includes(i));if(e){let i=Ws["bg"+Lt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Ws[t.slice(2).toLowerCase()]||r:Ws.none};Lt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Ws.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Ws[Dre[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=Dre[i];return n&&Ws["bg"+Lt.pascal(n)]||r}return Ws.none};Lt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Lt.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Lt.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Lt.mixin=(r,e)=>{if(!T0(r))return e;if(!T0(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&T0(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);T0(n.value)?r[t]=Lt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Lt.merge=(...r)=>{let e={};for(let t of r)Lt.mixin(e,t);return e};Lt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Lt.define(r,i,n.bind(e)):Lt.define(r,i,n)}};Lt.onExit=r=>{let e=(t,i)=>{Pre||(Pre=!0,GF.forEach(n=>n()),t===!0&&process.exit(128+i))};GF.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),GF.push(r)};Lt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Lt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var Rre=w(zf=>{"use strict";zf.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};zf.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};zf.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};zf.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};zf.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var Lre=w((mft,Fre)=>{"use strict";var Nre=require("readline"),gGe=Rre(),fGe=/^(?:\x1b)([a-zA-Z0-9])$/,hGe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,pGe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function dGe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function CGe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var O0=(r="",e={})=>{let t,i=N({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r},e);if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r=""+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x7F"||r==="\b")i.name="backspace",i.meta=r.charAt(0)==="";else if(r===""||r==="")i.name="escape",i.meta=r.length===2;else if(r===" "||r===" ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=fGe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=hGe.exec(r)){let n=[...r];n[0]===""&&n[1]===""&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=pGe[s],i.shift=dGe(s)||i.shift,i.ctrl=CGe(s)||i.ctrl}return i};O0.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=Nre.createInterface({terminal:!0,input:t});Nre.emitKeypressEvents(t,i);let n=(a,l)=>e(a,O0(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};O0.action=(r,e,t)=>{let i=N(N({},gGe),t);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Fre.exports=O0});var Ore=w((Eft,Tre)=>{"use strict";Tre.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),mGe(r,t,i)}};function mGe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var Ure=w((Ift,Mre)=>{"use strict";var{define:EGe,width:IGe}=Xi(),Kre=class{constructor(e){let t=e.options;EGe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=IGe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=N({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};Mre.exports=Kre});var jre=w((yft,Hre)=>{"use strict";var YF=Xi(),Ni=Eo(),qF={default:Ni.noop,noop:Ni.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||YF.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||YF.complement(this.primary)},primary:Ni.cyan,success:Ni.green,danger:Ni.magenta,strong:Ni.bold,warning:Ni.yellow,muted:Ni.dim,disabled:Ni.gray,dark:Ni.dim.gray,underline:Ni.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};qF.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(Ni.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(Ni.visible=r.styles.visible);let e=YF.merge({},qF,r.styles);delete e.merge;for(let t of Object.keys(Ni))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Ni[t]});for(let t of Object.keys(Ni.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Ni[t]});return e};Hre.exports=qF});var Yre=w((wft,Gre)=>{"use strict";var JF=process.platform==="win32",yA=Eo(),yGe=Xi(),WF=te(N({},yA.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:yA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:yA.symbols.question,submitted:yA.symbols.check,cancelled:yA.symbols.cross},separator:{pending:yA.symbols.pointerSmall,submitted:yA.symbols.middot,cancelled:yA.symbols.middot},radio:{off:JF?"( )":"\u25EF",on:JF?"(*)":"\u25C9",disabled:JF?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});WF.merge=r=>{let e=yGe.merge({},yA.symbols,WF,r.symbols);return delete e.merge,e};Gre.exports=WF});var Jre=w((Bft,qre)=>{"use strict";var wGe=jre(),BGe=Yre(),bGe=Xi();qre.exports=r=>{r.options=bGe.merge({},r.options.theme,r.options),r.symbols=BGe.merge(r.options),r.styles=wGe.merge(r.options)}});var Xre=w((Wre,zre)=>{"use strict";var _re=process.env.TERM_PROGRAM==="Apple_Terminal",QGe=Eo(),zF=Xi(),Io=zre.exports=Wre,Lr="[",Vre="\x07",_F=!1,Fl=Io.code={bell:Vre,beep:Vre,beginning:`${Lr}G`,down:`${Lr}J`,esc:Lr,getPosition:`${Lr}6n`,hide:`${Lr}?25l`,line:`${Lr}2K`,lineEnd:`${Lr}K`,lineStart:`${Lr}1K`,restorePosition:Lr+(_re?"8":"u"),savePosition:Lr+(_re?"7":"s"),screen:`${Lr}2J`,show:`${Lr}?25h`,up:`${Lr}1J`},Iu=Io.cursor={get hidden(){return _F},hide(){return _F=!0,Fl.hide},show(){return _F=!1,Fl.show},forward:(r=1)=>`${Lr}${r}C`,backward:(r=1)=>`${Lr}${r}D`,nextLine:(r=1)=>`${Lr}E`.repeat(r),prevLine:(r=1)=>`${Lr}F`.repeat(r),up:(r=1)=>r?`${Lr}${r}A`:"",down:(r=1)=>r?`${Lr}${r}B`:"",right:(r=1)=>r?`${Lr}${r}C`:"",left:(r=1)=>r?`${Lr}${r}D`:"",to(r,e){return e?`${Lr}${e+1};${r+1}H`:`${Lr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?Iu.left(-r):r>0?Iu.right(r):"",t+=e<0?Iu.up(-e):e>0?Iu.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=zF.isPrimitive(i)?String(i):"",n=zF.isPrimitive(n)?String(n):"",a=zF.isPrimitive(a)?String(a):"",o){let l=Io.cursor.up(o)+Io.cursor.to(s.length),c=n.length-t;return c>0&&(l+=Io.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),Io.cursor.move(l)}}},VF=Io.erase={screen:Fl.screen,up:Fl.up,down:Fl.down,line:Fl.line,lineEnd:Fl.lineEnd,lineStart:Fl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return VF.line+Iu.to(0);let t=s=>[...QGe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(VF.line+Iu.prevLine()).repeat(n-1)+VF.line+Iu.to(0)}});var _f=w((bft,Zre)=>{"use strict";var SGe=require("events"),$re=Eo(),XF=Lre(),vGe=Ore(),xGe=Ure(),kGe=Jre(),Tn=Xi(),yu=Xre(),M0=class extends SGe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,kGe(this),vGe(this),this.state=new xGe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=DGe(this.options.margin),this.setMaxListeners(0),PGe(this)}async keypress(e,t={}){this.keypressed=!0;let i=XF.action(e,XF(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(yu.code.beep)}cursorHide(){this.stdout.write(yu.cursor.hide()),Tn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(yu.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(yu.cursor.down(e)+yu.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=yu.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=$re.unstyle(i);let n=$re.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` -`),c=l[0],u=l[l.length-1],f=(i+(t?" "+t:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Tn.isObject(e)&&(e=e[i.status]||e.pending),Tn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Tn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Tn.isObject(s)&&(s=s[i.status]||s.pending),Tn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Tn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Tn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Tn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Tn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Tn.resolve(this,e,...t)}get base(){return M0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Tn.height(this.stdout,25)}get width(){return this.options.columns||Tn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function PGe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function DGe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2==0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Zre.exports=M0});var rie=w((Qft,eie)=>{"use strict";var RGe=Xi(),tie={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return tie.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};eie.exports=(r,e={})=>{let t=RGe.merge({},tie,e.roles);return t[r]||t.default}});var qC=w((Sft,iie)=>{"use strict";var FGe=Eo(),NGe=_f(),LGe=rie(),K0=Xi(),{reorder:ZF,scrollUp:TGe,scrollDown:OGe,isObject:nie,swap:MGe}=K0,sie=class extends NGe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");nie(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=LGe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,K0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,FGe.unstyle(e.message).length));let o=N({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n=N({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return oie(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=ZF(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=ZF(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=ZF(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=TGe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=OGe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){MGe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(nie(e))return t?e[t]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=K0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return oie(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function oie(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(K0.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}iie.exports=sie});var Nl=w((vft,aie)=>{"use strict";var KGe=qC(),$F=Xi(),Aie=class extends KGe{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!$F.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!$F.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?($F.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` -`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};aie.exports=Aie});var uie=w((xft,lie)=>{"use strict";var UGe=Nl(),HGe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},cie=class extends UGe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=HGe(this.input,e),i=this.choices;this.choices=i.map(n=>te(N({},n),{message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};lie.exports=cie});var tN=w((kft,gie)=>{"use strict";var eN=Xi();gie.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=eN.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",f=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,f=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=eN.isPrimitive(i)?`${i}`:"",t=eN.isPrimitive(t)?`${t}`:"";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=""),s===!1&&(p=""),h){let m=r.styles.unstyle(u+p);return u+p+a(i.slice(m.length))}return u+p}});var U0=w((Pft,fie)=>{"use strict";var jGe=Eo(),GGe=Nl(),YGe=tN(),hie=class extends GGe{constructor(e){super(te(N({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,m=this.index===t,y=e.validate||(()=>!0),b=await this.choiceSeparator(e,t),v=e.message;this.align==="right"&&(v=v.padStart(this.longest+1," ")),this.align==="left"&&(v=v.padEnd(this.longest+1," "));let x=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,x,this.state)!==!0&&(T="danger");let Y=n[T](await this.indicator(e,t))+(e.pad||""),$=this.indent(e),_=()=>[$,Y,v+b,c,p].filter(Boolean).join(" ");if(i.submitted)return v=jGe.unstyle(v),c=g(c),p="",_();if(e.format)c=await e.format.call(this,c,e,t);else{let ne=this.styles.muted;c=YGe(this,{input:c,initial:o,pos:s,showCursor:m,color:ne})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,x,e,t)),m&&(v=f(v)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),_()}async submit(){return this.value=this.values,super.base.submit.call(this)}};fie.exports=hie});var rN=w((Dft,pie)=>{"use strict";var qGe=U0(),JGe=()=>{throw new Error("expected prompt to have a custom authenticate method")},die=(r=JGe)=>{class e extends qGe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return die(i)}}return e};pie.exports=die()});var Eie=w((Rft,Cie)=>{"use strict";var WGe=rN();function zGe(r,e){return r.username===this.options.username&&r.password===this.options.password}var mie=(r=zGe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends WGe.create(r){constructor(n){super(te(N({},n),{choices:e}))}static create(n){return mie(n)}}return t};Cie.exports=mie()});var H0=w((Fft,Iie)=>{"use strict";var _Ge=_f(),{isPrimitive:VGe,hasColor:XGe}=Xi(),yie=class extends _Ge{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return VGe(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return XGe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,f].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Iie.exports=yie});var bie=w((Nft,wie)=>{"use strict";var ZGe=H0(),Bie=class extends ZGe{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};wie.exports=Bie});var vie=w((Lft,Qie)=>{"use strict";var $Ge=Nl(),eYe=U0(),Vf=eYe.prototype,Sie=class extends $Ge{constructor(e){super(te(N({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Vf.dispatch.call(this,e,t)}append(e,t){return Vf.append.call(this,e,t)}delete(e,t){return Vf.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Vf.next.call(this):super.next()}prev(){return this.focused.editable?Vf.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Vf.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Qie.exports=Sie});var wu=w((Tft,xie)=>{"use strict";var tYe=_f(),rYe=tN(),{isPrimitive:iYe}=Xi(),kie=class extends tYe{constructor(e){super(e);this.initial=iYe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` -`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):rYe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};xie.exports=kie});var Die=w((Oft,Pie)=>{"use strict";var nYe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),j0=r=>nYe(r).filter(Boolean);Pie.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:j0([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:j0([...s,t]),present:o};case"save":return{past:j0([...i,t]),present:""};case"remove":return o=j0(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var iN=w((Mft,Rie)=>{"use strict";var sYe=wu(),Fie=Die(),Nie=class extends sYe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Fie(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Fie("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Rie.exports=Nie});var Oie=w((Kft,Lie)=>{"use strict";var oYe=wu(),Tie=class extends oYe{format(){return""}};Lie.exports=Tie});var Uie=w((Uft,Mie)=>{"use strict";var aYe=wu(),Kie=class extends aYe{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Mie.exports=Kie});var Gie=w((Hft,Hie)=>{"use strict";var AYe=Nl(),jie=class extends AYe{constructor(e){super(te(N({},e),{multiple:!0}))}};Hie.exports=jie});var nN=w((jft,Yie)=>{"use strict";var lYe=wu(),qie=class extends lYe{constructor(e={}){super(N({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};Yie.exports=qie});var Wie=w((Gft,Jie)=>{Jie.exports=nN()});var Vie=w((Yft,zie)=>{"use strict";var cYe=wu(),_ie=class extends cYe{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};zie.exports=_ie});var ene=w((qft,Xie)=>{"use strict";var uYe=Eo(),gYe=qC(),Zie=Xi(),$ie=class extends gYe{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!Zie.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=uYe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=Zie.wordWrap(c,{width:this.widths[0],newline:a}).split(` -`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` -`)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(t),this.write([a,o,c,g,f].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Xie.exports=$ie});var nne=w((Jft,tne)=>{"use strict";var rne=Eo(),fYe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",ine=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=fYe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},hYe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===b.key);b.field=n.find(T=>T.name===b.key),x||(x=new ine(b),a.push(x)),x.lines.push(b.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};tne.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i=N(N({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await hYe(e,i),a=sN("result",r,e),l=sN("format",r,e),c=sN("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output="";let p=async(v,x,T,q)=>{let Y=await c(v,x,T,q);return Y===!1?"Invalid field "+T.name:Y};for(let v of n){let x=v.value,T=v.key;if(v.type!=="template"){x&&(g.output+=x);continue}if(v.type==="template"){let q=s.find(ee=>ee.name===T);e.required===!0&&g.required.add(q.name);let Y=[q.input,g.values[q.value],q.value,x].find(u),_=(q.field||{}).message||v.inner;if(f){let ee=await p(g.values[T],g,q,h);if(ee&&typeof ee=="string"||ee===!1){g.invalid.set(T,ee);continue}g.invalid.delete(T);let A=await a(g.values[T],g,q,h);g.output+=rne.unstyle(A);continue}q.placeholder=!1;let ne=x;x=await l(x,g,q,h),Y!==x?(g.values[T]=Y,x=r.styles.typing(Y),g.missing.delete(_)):(g.values[T]=void 0,Y=`<${_}>`,x=r.styles.primary(Y),q.placeholder=!0,g.required.has(T)&&g.missing.add(_)),g.missing.has(_)&&g.validating&&(x=r.styles.warning(Y)),g.invalid.has(T)&&g.validating&&(x=r.styles.danger(Y)),h===g.index&&(ne!==x?x=r.styles.underline(x):x=r.styles.heading(rne.unstyle(x))),h++}x&&(g.output+=x)}let m=g.output.split(` -`).map(v=>" "+v),y=s.length,b=0;for(let v of s)g.invalid.has(v.name)&&v.lines.forEach(x=>{m[x][0]===" "&&(m[x]=g.styles.danger(g.symbols.bullet)+m[x].slice(1))}),r.isValue(g.values[v.name])&&b++;return g.completed=(b/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function sN(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var ane=w((Wft,sne)=>{"use strict";var pYe=Eo(),dYe=nne(),CYe=_f(),one=class extends CYe{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await dYe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` -`].find(v=>v!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=t[e]||"",m=await this.format(p),y=await this.footer();m&&(c+=" "+m),f&&!m&&this.state.completed===0&&(c+=" "+f),this.clear(n);let b=[u,c,h,y,g.trim()];this.write(b.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=pYe.unstyle(i).split(` -`).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};sne.exports=one});var cne=w((zft,Ane)=>{"use strict";var mYe="(Use + to sort)",EYe=Nl(),lne=class extends EYe{constructor(e){super(te(N({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,mYe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Ane.exports=lne});var fne=w((_ft,une)=>{"use strict";var IYe=qC(),gne=class extends IYe{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=yYe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=x=>(x?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((x,T)=>c(T===e.scaleIdx)).join(a),m=x=>x===e.scaleIdx?g(x):x,y=h+e.scale.map((x,T)=>m(T)).join(l),b=()=>[u,f].filter(Boolean).join(" "),v=()=>[b(),p,y," "].filter(Boolean).join(` -`);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),v()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` -`)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function yYe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>N({},i));let t=[];for(let i=1;i{hne.exports=iN()});var mne=w((Xft,dne)=>{"use strict";var wYe=H0(),Cne=class extends wYe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};dne.exports=Cne});var yne=w((Zft,Ene)=>{"use strict";var BYe=Nl(),Ine=class extends BYe{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Ene.exports=Ine});var Bne=w(oN=>{"use strict";var wne=Xi(),mi=(r,e)=>{wne.defineExport(oN,r,e),wne.defineExport(oN,r.toLowerCase(),e)};mi("AutoComplete",()=>uie());mi("BasicAuth",()=>Eie());mi("Confirm",()=>bie());mi("Editable",()=>vie());mi("Form",()=>U0());mi("Input",()=>iN());mi("Invisible",()=>Oie());mi("List",()=>Uie());mi("MultiSelect",()=>Gie());mi("Numeral",()=>Wie());mi("Password",()=>Vie());mi("Scale",()=>ene());mi("Select",()=>Nl());mi("Snippet",()=>ane());mi("Sort",()=>cne());mi("Survey",()=>fne());mi("Text",()=>pne());mi("Toggle",()=>mne());mi("Quiz",()=>yne())});var Qne=w((eht,bne)=>{bne.exports={ArrayPrompt:qC(),AuthPrompt:rN(),BooleanPrompt:H0(),NumberPrompt:nN(),StringPrompt:wu()}});var WC=w((tht,Sne)=>{"use strict";var vne=require("assert"),aN=require("events"),Ll=Xi(),ha=class extends aN{constructor(e,t){super();this.options=Ll.merge({},e),this.answers=N({},t)}register(e,t){if(Ll.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}vne.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Ll.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Ll.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Ll;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];vne(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||_f()}static get prompts(){return Bne()}static get types(){return Qne()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Ll.mixinEmitter(e,new aN),e}};Ll.mixinEmitter(ha,new aN);var AN=ha.prompts;for(let r of Object.keys(AN)){let e=r.toLowerCase(),t=i=>new AN[r](i).run();ha.prompt[e]=t,ha[e]=t,ha[r]||Reflect.defineProperty(ha,r,{get:()=>AN[r]})}var JC=r=>{Ll.defineExport(ha,r,()=>ha.types[r])};JC("ArrayPrompt");JC("AuthPrompt");JC("BooleanPrompt");JC("NumberPrompt");JC("StringPrompt");Sne.exports=ha});var Une=w((Yht,Kne)=>{function xYe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var kYe=$B(),PYe=Nf();function DYe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var RYe=Zf(),FYe=Kf();function NYe(r,e){return r&&RYe(e,FYe(e),r)}jne.exports=NYe});var qne=w((Wht,Yne)=>{function LYe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Yne.exports=LYe});var Wne=w((zht,Jne)=>{var TYe=Rn(),OYe=f0(),MYe=qne(),KYe=Object.prototype,UYe=KYe.hasOwnProperty;function HYe(r){if(!TYe(r))return MYe(r);var e=OYe(r),t=[];for(var i in r)i=="constructor"&&(e||!UYe.call(r,i))||t.push(i);return t}Jne.exports=HYe});var $f=w((_ht,zne)=>{var jYe=$R(),GYe=Wne(),YYe=vC();function qYe(r){return YYe(r)?jYe(r,!0):GYe(r)}zne.exports=qYe});var Vne=w((Vht,_ne)=>{var JYe=Zf(),WYe=$f();function zYe(r,e){return r&&JYe(e,WYe(e),r)}_ne.exports=zYe});var hN=w((em,eh)=>{var _Ye=Ns(),Xne=typeof em=="object"&&em&&!em.nodeType&&em,Zne=Xne&&typeof eh=="object"&&eh&&!eh.nodeType&&eh,VYe=Zne&&Zne.exports===Xne,$ne=VYe?_Ye.Buffer:void 0,ese=$ne?$ne.allocUnsafe:void 0;function XYe(r,e){if(e)return r.slice();var t=r.length,i=ese?ese(t):new r.constructor(t);return r.copy(i),i}eh.exports=XYe});var pN=w((Xht,tse)=>{function ZYe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var $Ye=Zf(),eqe=p0();function tqe(r,e){return $Ye(r,eqe(r),e)}rse.exports=tqe});var G0=w(($ht,nse)=>{var rqe=eF(),iqe=rqe(Object.getPrototypeOf,Object);nse.exports=iqe});var dN=w((ept,sse)=>{var nqe=t0(),sqe=G0(),oqe=p0(),aqe=oF(),Aqe=Object.getOwnPropertySymbols,lqe=Aqe?function(r){for(var e=[];r;)nqe(e,oqe(r)),r=sqe(r);return e}:aqe;sse.exports=lqe});var ase=w((tpt,ose)=>{var cqe=Zf(),uqe=dN();function gqe(r,e){return cqe(r,uqe(r),e)}ose.exports=gqe});var lse=w((rpt,Ase)=>{var fqe=sF(),hqe=dN(),pqe=$f();function dqe(r){return fqe(r,pqe,hqe)}Ase.exports=dqe});var use=w((ipt,cse)=>{var Cqe=Object.prototype,mqe=Cqe.hasOwnProperty;function Eqe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&mqe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}cse.exports=Eqe});var Y0=w((npt,gse)=>{var fse=iF();function Iqe(r){var e=new r.constructor(r.byteLength);return new fse(e).set(new fse(r)),e}gse.exports=Iqe});var pse=w((spt,hse)=>{var yqe=Y0();function wqe(r,e){var t=e?yqe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}hse.exports=wqe});var Cse=w((opt,dse)=>{var Bqe=/\w*$/;function bqe(r){var e=new r.constructor(r.source,Bqe.exec(r));return e.lastIndex=r.lastIndex,e}dse.exports=bqe});var wse=w((apt,mse)=>{var Ese=Jc(),Ise=Ese?Ese.prototype:void 0,yse=Ise?Ise.valueOf:void 0;function Qqe(r){return yse?Object(yse.call(r)):{}}mse.exports=Qqe});var CN=w((Apt,Bse)=>{var Sqe=Y0();function vqe(r,e){var t=e?Sqe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Bse.exports=vqe});var Qse=w((lpt,bse)=>{var xqe=Y0(),kqe=pse(),Pqe=Cse(),Dqe=wse(),Rqe=CN(),Fqe="[object Boolean]",Nqe="[object Date]",Lqe="[object Map]",Tqe="[object Number]",Oqe="[object RegExp]",Mqe="[object Set]",Kqe="[object String]",Uqe="[object Symbol]",Hqe="[object ArrayBuffer]",jqe="[object DataView]",Gqe="[object Float32Array]",Yqe="[object Float64Array]",qqe="[object Int8Array]",Jqe="[object Int16Array]",Wqe="[object Int32Array]",zqe="[object Uint8Array]",_qe="[object Uint8ClampedArray]",Vqe="[object Uint16Array]",Xqe="[object Uint32Array]";function Zqe(r,e,t){var i=r.constructor;switch(e){case Hqe:return xqe(r);case Fqe:case Nqe:return new i(+r);case jqe:return kqe(r,t);case Gqe:case Yqe:case qqe:case Jqe:case Wqe:case zqe:case _qe:case Vqe:case Xqe:return Rqe(r,t);case Lqe:return new i;case Tqe:case Kqe:return new i(r);case Oqe:return Pqe(r);case Mqe:return new i;case Uqe:return Dqe(r)}}bse.exports=Zqe});var xse=w((cpt,Sse)=>{var $qe=Rn(),vse=Object.create,eJe=function(){function r(){}return function(e){if(!$qe(e))return{};if(vse)return vse(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();Sse.exports=eJe});var mN=w((upt,kse)=>{var tJe=xse(),rJe=G0(),iJe=f0();function nJe(r){return typeof r.constructor=="function"&&!iJe(r)?tJe(rJe(r)):{}}kse.exports=nJe});var Dse=w((gpt,Pse)=>{var sJe=kC(),oJe=ta(),aJe="[object Map]";function AJe(r){return oJe(r)&&sJe(r)==aJe}Pse.exports=AJe});var Lse=w((fpt,Rse)=>{var lJe=Dse(),cJe=c0(),Fse=u0(),Nse=Fse&&Fse.isMap,uJe=Nse?cJe(Nse):lJe;Rse.exports=uJe});var Ose=w((hpt,Tse)=>{var gJe=kC(),fJe=ta(),hJe="[object Set]";function pJe(r){return fJe(r)&&gJe(r)==hJe}Tse.exports=pJe});var Hse=w((ppt,Mse)=>{var dJe=Ose(),CJe=c0(),Kse=u0(),Use=Kse&&Kse.isSet,mJe=Use?CJe(Use):dJe;Mse.exports=mJe});var Jse=w((dpt,jse)=>{var EJe=xC(),IJe=Une(),yJe=$B(),wJe=Gne(),BJe=Vne(),bJe=hN(),QJe=pN(),SJe=ise(),vJe=ase(),xJe=aF(),kJe=lse(),PJe=kC(),DJe=use(),RJe=Qse(),FJe=mN(),NJe=Ks(),LJe=bC(),TJe=Lse(),OJe=Rn(),MJe=Hse(),KJe=Kf(),UJe=$f(),HJe=1,jJe=2,GJe=4,Gse="[object Arguments]",YJe="[object Array]",qJe="[object Boolean]",JJe="[object Date]",WJe="[object Error]",Yse="[object Function]",zJe="[object GeneratorFunction]",_Je="[object Map]",VJe="[object Number]",qse="[object Object]",XJe="[object RegExp]",ZJe="[object Set]",$Je="[object String]",e3e="[object Symbol]",t3e="[object WeakMap]",r3e="[object ArrayBuffer]",i3e="[object DataView]",n3e="[object Float32Array]",s3e="[object Float64Array]",o3e="[object Int8Array]",a3e="[object Int16Array]",A3e="[object Int32Array]",l3e="[object Uint8Array]",c3e="[object Uint8ClampedArray]",u3e="[object Uint16Array]",g3e="[object Uint32Array]",dr={};dr[Gse]=dr[YJe]=dr[r3e]=dr[i3e]=dr[qJe]=dr[JJe]=dr[n3e]=dr[s3e]=dr[o3e]=dr[a3e]=dr[A3e]=dr[_Je]=dr[VJe]=dr[qse]=dr[XJe]=dr[ZJe]=dr[$Je]=dr[e3e]=dr[l3e]=dr[c3e]=dr[u3e]=dr[g3e]=!0;dr[WJe]=dr[Yse]=dr[t3e]=!1;function q0(r,e,t,i,n,s){var o,a=e&HJe,l=e&jJe,c=e&GJe;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!OJe(r))return r;var u=NJe(r);if(u){if(o=DJe(r),!a)return QJe(r,o)}else{var g=PJe(r),f=g==Yse||g==zJe;if(LJe(r))return bJe(r,a);if(g==qse||g==Gse||f&&!n){if(o=l||f?{}:FJe(r),!a)return l?vJe(r,BJe(o,r)):SJe(r,wJe(o,r))}else{if(!dr[g])return n?r:{};o=RJe(r,g,a)}}s||(s=new EJe);var h=s.get(r);if(h)return h;s.set(r,o),MJe(r)?r.forEach(function(y){o.add(q0(y,e,t,y,r,s))}):TJe(r)&&r.forEach(function(y,b){o.set(b,q0(y,e,t,b,r,s))});var p=c?l?kJe:xJe:l?UJe:KJe,m=u?void 0:p(r);return IJe(m||r,function(y,b){m&&(b=y,y=r[b]),yJe(o,b,q0(y,e,t,b,r,s))}),o}jse.exports=q0});var EN=w((Cpt,Wse)=>{var f3e=Jse(),h3e=1,p3e=4;function d3e(r){return f3e(r,h3e|p3e)}Wse.exports=d3e});var _se=w((mpt,zse)=>{var C3e=kR();function m3e(r,e,t){return r==null?r:C3e(r,e,t)}zse.exports=m3e});var toe=w((bpt,eoe)=>{function E3e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}eoe.exports=E3e});var ioe=w((Qpt,roe)=>{var I3e=hC(),y3e=VP();function w3e(r,e){return e.length<2?r:I3e(r,y3e(e,0,-1))}roe.exports=w3e});var soe=w((Spt,noe)=>{var B3e=Ff(),b3e=toe(),Q3e=ioe(),S3e=gu();function v3e(r,e){return e=B3e(e,r),r=Q3e(r,e),r==null||delete r[S3e(b3e(e))]}noe.exports=v3e});var aoe=w((vpt,ooe)=>{var x3e=soe();function k3e(r,e){return r==null?!0:x3e(r,e)}ooe.exports=k3e});var doe=w((idt,poe)=>{poe.exports={name:"@yarnpkg/cli",version:"3.2.2",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"^3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var DN=w((LEt,rae)=>{"use strict";rae.exports=function(e,t){t===!0&&(t=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof t=="number"?n[t]:n}});var RN=w((TEt,iae)=>{"use strict";var V3e=DN();function nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=V3e(r);return r=r.substring(r.indexOf("://")+3),nae(e)?!0:r.indexOf("@"){"use strict";var X3e=DN(),Z3e=RN(),$3e=require("querystring");function eWe(r){r=(r||"").trim();var e={protocols:X3e(r),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:r,query:Object.create(null)},t=r.indexOf("://"),i=-1,n=null,s=null;r.startsWith(".")&&(r.startsWith("./")&&(r=r.substring(2)),e.pathname=r,e.protocol="file");var o=r.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||(Z3e(r)?e.protocol="ssh":((o==="/"||o==="~")&&(r=r.substring(2)),e.protocol="file"))),t!==-1&&(r=r.substring(t+3)),s=r.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=$3e.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}sae.exports=eWe});var lae=w((MEt,aae)=>{"use strict";var tWe="text/plain",rWe="us-ascii",Aae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),iWe=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===rWe)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length!==0||l&&l!==tWe)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`},nWe=(r,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),r=r.trim(),/^data:/i.test(r))return iWe(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname&&(n.pathname=n.pathname.replace(/(?0){let o=n.pathname.split("/"),a=o[o.length-1];Aae(a,e.removeDirectoryIndex)&&(o=o.slice(0,o.length-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Aae(o,e.removeQueryParameters)&&n.searchParams.delete(o);e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};aae.exports=nWe});var uae=w((KEt,cae)=>{"use strict";var sWe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},oWe=oae(),aWe=lae();function AWe(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof r!="string"||!r.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":sWe(e))!=="object"&&(e={stripHash:!1}),r=aWe(r,e));var t=oWe(r);return t}cae.exports=AWe});var hae=w((UEt,gae)=>{"use strict";var lWe=uae(),fae=RN();function cWe(r){var e=lWe(r);e.token="";var t=e.user.split(":");return t.length===2&&(t[1]==="x-oauth-basic"?e.token=t[0]:t[0]==="x-token-auth"&&(e.token=t[1])),fae(e.protocols)||fae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}gae.exports=cWe});var dae=w((HEt,pae)=>{"use strict";var uWe=hae();function FN(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=uWe(r),t=e.resource.split("."),i=null;switch(e.toString=function(l){return FN.stringify(this,l)},e.source=t.length>2?t.slice(1-t.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=t[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}FN.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?gWe(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+r.full_name+n;default:return r.href}};function gWe(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}pae.exports=FN});var cL=w((Vwt,Mae)=>{var DWe=Nf(),RWe=Pf();function FWe(r,e,t){(t!==void 0&&!RWe(r[e],t)||t===void 0&&!(e in r))&&DWe(r,e,t)}Mae.exports=FWe});var Uae=w((Xwt,Kae)=>{var NWe=vC(),LWe=ta();function TWe(r){return LWe(r)&&NWe(r)}Kae.exports=TWe});var Gae=w((Zwt,Hae)=>{var OWe=Wc(),MWe=G0(),KWe=ta(),UWe="[object Object]",HWe=Function.prototype,jWe=Object.prototype,jae=HWe.toString,GWe=jWe.hasOwnProperty,YWe=jae.call(Object);function qWe(r){if(!KWe(r)||OWe(r)!=UWe)return!1;var e=MWe(r);if(e===null)return!0;var t=GWe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&jae.call(t)==YWe}Hae.exports=qWe});var uL=w(($wt,Yae)=>{function JWe(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}Yae.exports=JWe});var Jae=w((eBt,qae)=>{var WWe=Zf(),zWe=$f();function _We(r){return WWe(r,zWe(r))}qae.exports=_We});var Zae=w((tBt,Wae)=>{var zae=cL(),VWe=hN(),XWe=CN(),ZWe=pN(),$We=mN(),_ae=dC(),Vae=Ks(),e4e=Uae(),t4e=bC(),r4e=VB(),i4e=Rn(),n4e=Gae(),s4e=g0(),Xae=uL(),o4e=Jae();function a4e(r,e,t,i,n,s,o){var a=Xae(r,t),l=Xae(e,t),c=o.get(l);if(c){zae(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var f=Vae(l),h=!f&&t4e(l),p=!f&&!h&&s4e(l);u=l,f||h||p?Vae(a)?u=a:e4e(a)?u=ZWe(a):h?(g=!1,u=VWe(l,!0)):p?(g=!1,u=XWe(l,!0)):u=[]:n4e(l)||_ae(l)?(u=a,_ae(a)?u=o4e(a):(!i4e(a)||r4e(a))&&(u=$We(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),zae(r,t,u)}Wae.exports=a4e});var tAe=w((rBt,$ae)=>{var A4e=xC(),l4e=cL(),c4e=XR(),u4e=Zae(),g4e=Rn(),f4e=$f(),h4e=uL();function eAe(r,e,t,i,n){r!==e&&c4e(e,function(s,o){if(n||(n=new A4e),g4e(s))u4e(r,e,o,t,eAe,i,n);else{var a=i?i(h4e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),l4e(r,o,a)}},f4e)}$ae.exports=eAe});var iAe=w((iBt,rAe)=>{var p4e=r0(),d4e=RR(),C4e=FR();function m4e(r,e){return C4e(d4e(r,e,p4e),r+"")}rAe.exports=m4e});var sAe=w((nBt,nAe)=>{var E4e=Pf(),I4e=vC(),y4e=pC(),w4e=Rn();function B4e(r,e,t){if(!w4e(t))return!1;var i=typeof e;return(i=="number"?I4e(t)&&y4e(e,t.length):i=="string"&&e in t)?E4e(t[e],r):!1}nAe.exports=B4e});var aAe=w((sBt,oAe)=>{var b4e=iAe(),Q4e=sAe();function S4e(r){return b4e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&Q4e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var v4e=tAe(),x4e=aAe(),k4e=x4e(function(r,e,t){v4e(r,e,t)});AAe.exports=k4e});var QAe=w((u0t,bAe)=>{var QL;bAe.exports=()=>(typeof QL=="undefined"&&(QL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),QL)});var TAe=w((Y0t,LAe)=>{var kL;LAe.exports=()=>(typeof kL=="undefined"&&(kL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),kL)});var YAe=w((TL,OL)=>{(function(r){TL&&typeof TL=="object"&&typeof OL!="undefined"?OL.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window!="undefined"?window.isWindows=r():typeof global!="undefined"?global.isWindows=r():typeof self!="undefined"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var zAe=w((Vbt,qAe)=>{"use strict";ML.ifExists=C8e;var ah=require("util"),zs=require("path"),JAe=YAe(),m8e=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,E8e={createPwshFile:!0,createCmdFile:JAe(),fs:require("fs")},I8e=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function WAe(r){let e=N(N({},E8e),r),t=e.fs;return e.fs_={chmod:t.chmod?ah.promisify(t.chmod):async()=>{},mkdir:ah.promisify(t.mkdir),readFile:ah.promisify(t.readFile),stat:ah.promisify(t.stat),unlink:ah.promisify(t.unlink),writeFile:ah.promisify(t.writeFile)},e}async function ML(r,e,t){let i=WAe(t);await i.fs_.stat(r),await y8e(r,e,i)}function C8e(r,e,t){return ML(r,e,t).catch(()=>{})}function w8e(r,e){return e.fs_.unlink(r).catch(()=>{})}async function y8e(r,e,t){let i=await Q8e(r,t);return await B8e(e,t),b8e(r,e,i,t)}function B8e(r,e){return e.fs_.mkdir(zs.dirname(r),{recursive:!0})}function b8e(r,e,t,i){let n=WAe(i),s=[{generator:x8e,extension:""}];return n.createCmdFile&&s.push({generator:v8e,extension:".cmd"}),n.createPwshFile&&s.push({generator:k8e,extension:".ps1"}),Promise.all(s.map(o=>S8e(r,e+o.extension,t,o.generator,n)))}function P8e(r,e){return w8e(r,e)}function R8e(r,e){return D8e(r,e)}async function Q8e(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(m8e);if(!n){let s=zs.extname(r).toLowerCase();return{program:I8e.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function S8e(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await P8e(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),R8e(e,n)}function v8e(r,e,t){let n=zs.relative(zs.dirname(e),r).split("/").join("\\"),s=zs.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=KL(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r -`:"";return o?g+=`@IF EXIST ${o} (\r - ${o} ${l} ${n} ${u}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${a} ${l} ${n} ${u}%*\r -)\r -`:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function x8e(r,e,t){let i=zs.relative(zs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=zs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=KL(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,g=t.nodePath?`export NODE_PATH="${l}" -`:"";return s?u+=`${g}if [ -x ${s} ]; then - exec ${s} ${a} ${i} ${c}"$@" -else - exec ${n} ${a} ${i} ${c}"$@" -fi -`:u+=`${g}${n} ${a} ${i} ${c}"$@" -exit $? -`,u}function k8e(r,e,t){let i=zs.relative(zs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=zs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=KL(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let f=t.progArgs?`${t.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${t.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${u}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return t.nodePath&&(h+=` else { - $env:NODE_PATH="${g}" -}`),o?h+=` -$ret=0 -if (Test-Path ${o}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${o} ${l} ${i} ${f}$args - } else { - & ${o} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args - } else { - & ${s} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} -${t.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:h+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args -} else { - & ${s} ${l} ${i} ${f}$args -} -${t.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,h}function D8e(r,e){return e.fs_.chmod(r,493)}function KL(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(zs.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}qAe.exports=ML});var eT=w((RSt,hle)=>{hle.exports=require("stream")});var mle=w((FSt,ple)=>{"use strict";function dle(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function Z8e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return lb.alloc(0);for(var i=lb.allocUnsafe(t>>>0),n=this.head,s=0;n;)nze(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=lb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:ize,value:function(t,i){return tT(this,Z8e({},i,{depth:0,customInspect:!1}))}}]),r}()});var iT=w((NSt,Ele)=>{"use strict";function sze(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(rT,this,r)):process.nextTick(rT,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(cb,t):(t._writableState.errorEmitted=!0,process.nextTick(Ile,t,s)):process.nextTick(Ile,t,s):e?(process.nextTick(cb,t),e(s)):process.nextTick(cb,t)}),this)}function Ile(r,e){rT(r,e),cb(r)}function cb(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function oze(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function rT(r,e){r.emit("error",e)}function aze(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ele.exports={destroy:sze,undestroy:oze,errorOrDestroy:aze}});var Ul=w((LSt,yle)=>{"use strict";var wle={};function _s(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,wle[r]=n}function Ble(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function Aze(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function lze(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function cze(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}_s("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);_s("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&Aze(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(lze(r," argument"))n=`The ${r} ${i} ${Ble(e,"type")}`;else{let s=cze(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${Ble(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);_s("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");_s("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});_s("ERR_STREAM_PREMATURE_CLOSE","Premature close");_s("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});_s("ERR_MULTIPLE_CALLBACK","Callback called multiple times");_s("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");_s("ERR_STREAM_WRITE_AFTER_END","write after end");_s("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);_s("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);_s("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");yle.exports.codes=wle});var nT=w((TSt,ble)=>{"use strict";var uze=Ul().codes.ERR_INVALID_OPT_VALUE;function gze(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function fze(r,e,t,i){var n=gze(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new uze(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}ble.exports={getHighWaterMark:fze}});var Qle=w((OSt,sT)=>{typeof Object.create=="function"?sT.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:sT.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Hl=w((MSt,oT)=>{try{if(aT=require("util"),typeof aT.inherits!="function")throw"";oT.exports=aT.inherits}catch(r){oT.exports=Qle()}var aT});var vle=w((KSt,Sle)=>{Sle.exports=require("util").deprecate});var cT=w((USt,xle)=>{"use strict";xle.exports=Gr;function kle(r){var e=this;this.next=null,this.entry=null,this.finish=function(){hze(e,r)}}var ch;Gr.WritableState=Gm;var pze={deprecate:vle()},Ple=eT(),ub=require("buffer").Buffer,dze=global.Uint8Array||function(){};function Cze(r){return ub.from(r)}function mze(r){return ub.isBuffer(r)||r instanceof dze}var AT=iT(),Eze=nT(),Ize=Eze.getHighWaterMark,jl=Ul().codes,yze=jl.ERR_INVALID_ARG_TYPE,wze=jl.ERR_METHOD_NOT_IMPLEMENTED,Bze=jl.ERR_MULTIPLE_CALLBACK,bze=jl.ERR_STREAM_CANNOT_PIPE,Qze=jl.ERR_STREAM_DESTROYED,Sze=jl.ERR_STREAM_NULL_VALUES,vze=jl.ERR_STREAM_WRITE_AFTER_END,xze=jl.ERR_UNKNOWN_ENCODING,uh=AT.errorOrDestroy;Hl()(Gr,Ple);function kze(){}function Gm(r,e,t){ch=ch||ku(),r=r||{},typeof t!="boolean"&&(t=e instanceof ch),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=Ize(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){Pze(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new kle(this)}Gm.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(Gm.prototype,"buffer",{get:pze.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(r){}})();var gb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(gb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Gr,Symbol.hasInstance,{value:function(e){return gb.call(this,e)?!0:this!==Gr?!1:e&&e._writableState instanceof Gm}})):gb=function(e){return e instanceof this};function Gr(r){ch=ch||ku();var e=this instanceof ch;if(!e&&!gb.call(Gr,this))return new Gr(r);this._writableState=new Gm(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),Ple.call(this)}Gr.prototype.pipe=function(){uh(this,new bze)};function Dze(r,e){var t=new vze;uh(r,t),process.nextTick(e,t)}function Rze(r,e,t,i){var n;return t===null?n=new Sze:typeof t!="string"&&!e.objectMode&&(n=new yze("chunk",["string","Buffer"],t)),n?(uh(r,n),process.nextTick(i,n),!1):!0}Gr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&mze(r);return s&&!ub.isBuffer(r)&&(r=Cze(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=kze),i.ending?Dze(this,t):(s||Rze(this,i,r,t))&&(i.pendingcb++,n=Fze(this,i,s,r,e,t)),n};Gr.prototype.cork=function(){this._writableState.corked++};Gr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Dle(this,r))};Gr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new xze(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Gr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Nze(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=ub.from(e,t)),e}Object.defineProperty(Gr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Fze(r,e,t,i,n,s){if(!t){var o=Nze(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var Hze=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Nle.exports=Ea;var Lle=uT(),gT=cT();Hl()(Ea,Lle);for(fT=Hze(gT.prototype),fb=0;fb{var pb=require("buffer"),vA=pb.Buffer;function Ole(r,e){for(var t in r)e[t]=r[t]}vA.from&&vA.alloc&&vA.allocUnsafe&&vA.allocUnsafeSlow?Tle.exports=pb:(Ole(pb,hT),hT.Buffer=gh);function gh(r,e,t){return vA(r,e,t)}Ole(vA,gh);gh.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return vA(r,e,t)};gh.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=vA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};gh.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return vA(r)};gh.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return pb.SlowBuffer(r)}});var CT=w(Kle=>{"use strict";var pT=Mle().Buffer,Ule=pT.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Yze(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function qze(r){var e=Yze(r);if(typeof e!="string"&&(pT.isEncoding===Ule||!Ule(r)))throw new Error("Unknown encoding: "+r);return e||r}Kle.StringDecoder=qm;function qm(r){this.encoding=qze(r);var e;switch(this.encoding){case"utf16le":this.text=Wze,this.end=zze,e=4;break;case"utf8":this.fillLast=Jze,e=4;break;case"base64":this.text=_ze,this.end=Vze,e=3;break;default:this.write=Xze,this.end=Zze;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=pT.allocUnsafe(e)}qm.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5==6?2:r>>4==14?3:r>>3==30?4:r>>6==2?-1:-2}function t5e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function r5e(r,e,t){if((e[0]&192)!=128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return r.lastNeed=2,"\uFFFD"}}function Jze(r){var e=this.lastTotal-this.lastNeed,t=r5e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function e5e(r,e){var t=t5e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function $ze(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function Wze(r,e){if((r.length-e)%2==0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function zze(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function _ze(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function Vze(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function Xze(r){return r.toString(this.encoding)}function Zze(r){return r&&r.length?this.write(r):""}});var db=w((GSt,Hle)=>{"use strict";var jle=Ul().codes.ERR_STREAM_PREMATURE_CLOSE;function i5e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var Cb;function Gl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var o5e=db(),Yl=Symbol("lastResolve"),Pu=Symbol("lastReject"),Jm=Symbol("error"),mb=Symbol("ended"),Du=Symbol("lastPromise"),mT=Symbol("handlePromise"),Ru=Symbol("stream");function ql(r,e){return{value:r,done:e}}function a5e(r){var e=r[Yl];if(e!==null){var t=r[Ru].read();t!==null&&(r[Du]=null,r[Yl]=null,r[Pu]=null,e(ql(t,!1)))}}function A5e(r){process.nextTick(a5e,r)}function l5e(r,e){return function(t,i){r.then(function(){if(e[mb]){t(ql(void 0,!0));return}e[mT](t,i)},i)}}var c5e=Object.getPrototypeOf(function(){}),u5e=Object.setPrototypeOf((Cb={get stream(){return this[Ru]},next:function(){var e=this,t=this[Jm];if(t!==null)return Promise.reject(t);if(this[mb])return Promise.resolve(ql(void 0,!0));if(this[Ru].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[Jm]?a(e[Jm]):o(ql(void 0,!0))})});var i=this[Du],n;if(i)n=new Promise(l5e(i,this));else{var s=this[Ru].read();if(s!==null)return Promise.resolve(ql(s,!1));n=new Promise(this[mT])}return this[Du]=n,n}},Gl(Cb,Symbol.asyncIterator,function(){return this}),Gl(Cb,"return",function(){var e=this;return new Promise(function(t,i){e[Ru].destroy(null,function(n){if(n){i(n);return}t(ql(void 0,!0))})})}),Cb),c5e),g5e=function(e){var t,i=Object.create(u5e,(t={},Gl(t,Ru,{value:e,writable:!0}),Gl(t,Yl,{value:null,writable:!0}),Gl(t,Pu,{value:null,writable:!0}),Gl(t,Jm,{value:null,writable:!0}),Gl(t,mb,{value:e._readableState.endEmitted,writable:!0}),Gl(t,mT,{value:function(s,o){var a=i[Ru].read();a?(i[Du]=null,i[Yl]=null,i[Pu]=null,s(ql(a,!1))):(i[Yl]=s,i[Pu]=o)},writable:!0}),t));return i[Du]=null,o5e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[Pu];s!==null&&(i[Du]=null,i[Yl]=null,i[Pu]=null,s(n)),i[Jm]=n;return}var o=i[Yl];o!==null&&(i[Du]=null,i[Yl]=null,i[Pu]=null,o(ql(void 0,!0))),i[mb]=!0}),e.on("readable",A5e.bind(null,i)),i};Yle.exports=g5e});var _le=w((qSt,Jle)=>{"use strict";function Wle(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function f5e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Wle(s,i,n,o,a,"next",l)}function a(l){Wle(s,i,n,o,a,"throw",l)}o(void 0)})}}function zle(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function p5e(r){for(var e=1;e{"use strict";Vle.exports=Ut;var fh;Ut.ReadableState=Xle;var JSt=require("events").EventEmitter,Zle=function(e,t){return e.listeners(t).length},Wm=eT(),Eb=require("buffer").Buffer,m5e=global.Uint8Array||function(){};function E5e(r){return Eb.from(r)}function I5e(r){return Eb.isBuffer(r)||r instanceof m5e}var ET=require("util"),Pt;ET&&ET.debuglog?Pt=ET.debuglog("stream"):Pt=function(){};var y5e=mle(),IT=iT(),w5e=nT(),B5e=w5e.getHighWaterMark,Ib=Ul().codes,b5e=Ib.ERR_INVALID_ARG_TYPE,Q5e=Ib.ERR_STREAM_PUSH_AFTER_EOF,S5e=Ib.ERR_METHOD_NOT_IMPLEMENTED,v5e=Ib.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,hh,yT,wT;Hl()(Ut,Wm);var zm=IT.errorOrDestroy,BT=["error","close","destroy","pause","resume"];function x5e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Xle(r,e,t){fh=fh||ku(),r=r||{},typeof t!="boolean"&&(t=e instanceof fh),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=B5e(this,r,"readableHighWaterMark",t),this.buffer=new y5e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(hh||(hh=CT().StringDecoder),this.decoder=new hh(r.encoding),this.encoding=r.encoding)}function Ut(r){if(fh=fh||ku(),!(this instanceof Ut))return new Ut(r);var e=this instanceof fh;this._readableState=new Xle(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),Wm.call(this)}Object.defineProperty(Ut.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ut.prototype.destroy=IT.destroy;Ut.prototype._undestroy=IT.undestroy;Ut.prototype._destroy=function(r,e){e(r)};Ut.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=Eb.from(r,e),e=""),i=!0),$le(this,r,e,!1,i)};Ut.prototype.unshift=function(r){return $le(this,r,null,!0,!1)};function $le(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,P5e(r,s);else{var o;if(n||(o=k5e(s,e)),o)zm(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==Eb.prototype&&(e=E5e(e)),i)s.endEmitted?zm(r,new v5e):bT(r,s,e,!0);else if(s.ended)zm(r,new Q5e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?bT(r,s,e,!1):QT(r,s)):bT(r,s,e,!1)}else i||(s.reading=!1,QT(r,s))}return!s.ended&&(s.length=ece?r=ece:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function tce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=D5e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ut.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?ST(this):yb(this),null;if(r=tce(r,e),r===0&&e.ended)return e.length===0&&ST(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=rce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&ST(this)),n!==null&&this.emit("data",n),n};function P5e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?yb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,ice(r)))}}function yb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(ice,r))}function ice(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,vT(r)}function QT(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(R5e,r,e))}function R5e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&nce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function f(y){Pt("onerror",y),m(),r.removeListener("error",f),Zle(r,"error")===0&&zm(r,y)}x5e(r,"error",f);function h(){r.removeListener("finish",p),m()}r.once("close",h);function p(){Pt("onfinish"),r.removeListener("close",h),m()}r.once("finish",p);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function F5e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Zle(r,"data")&&(t.flowing=!0,vT(r))}}Ut.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?yb(this):i.reading||process.nextTick(N5e,this)),t};Ut.prototype.addListener=Ut.prototype.on;Ut.prototype.removeListener=function(r,e){var t=Wm.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(sce,this),t};Ut.prototype.removeAllListeners=function(r){var e=Wm.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(sce,this),e};function sce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function N5e(r){Pt("readable nexttick read 0"),r.read(0)}Ut.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,L5e(this,r)),r.paused=!1,this};function L5e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(T5e,r,e))}function T5e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),vT(r),e.flowing&&!e.reading&&r.read(0)}Ut.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function vT(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ut.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function ST(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(O5e,e,r))}function O5e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ut.from=function(r,e){return wT===void 0&&(wT=_le()),wT(Ut,r,e)});function nce(r,e){for(var t=0,i=r.length;t{"use strict";oce.exports=xA;var wb=Ul().codes,M5e=wb.ERR_METHOD_NOT_IMPLEMENTED,K5e=wb.ERR_MULTIPLE_CALLBACK,U5e=wb.ERR_TRANSFORM_ALREADY_TRANSFORMING,H5e=wb.ERR_TRANSFORM_WITH_LENGTH_0,Bb=ku();Hl()(xA,Bb);function j5e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new K5e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Ace.exports=_m;var lce=xT();Hl()(_m,lce);function _m(r){if(!(this instanceof _m))return new _m(r);lce.call(this,r)}_m.prototype._transform=function(r,e,t){t(null,r)}});var pce=w((VSt,uce)=>{"use strict";var kT;function Y5e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var gce=Ul().codes,q5e=gce.ERR_MISSING_ARGS,J5e=gce.ERR_STREAM_DESTROYED;function fce(r){if(r)throw r}function W5e(r){return r.setHeader&&typeof r.abort=="function"}function z5e(r,e,t,i){i=Y5e(i);var n=!1;r.on("close",function(){n=!0}),kT===void 0&&(kT=db()),kT(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,W5e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new J5e("pipe"))}}}function hce(r){r()}function _5e(r,e){return r.pipe(e)}function V5e(r){return!r.length||typeof r[r.length-1]!="function"?fce:r.pop()}function X5e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return z5e(o,l,c,function(u){n||(n=u),u&&s.forEach(hce),!l&&(s.forEach(hce),i(n))})});return e.reduce(_5e)}uce.exports=X5e});var ph=w((Vs,Vm)=>{var Xm=require("stream");process.env.READABLE_STREAM==="disable"&&Xm?(Vm.exports=Xm.Readable,Object.assign(Vm.exports,Xm),Vm.exports.Stream=Xm):(Vs=Vm.exports=uT(),Vs.Stream=Xm||Vs,Vs.Readable=Vs,Vs.Writable=cT(),Vs.Duplex=ku(),Vs.Transform=xT(),Vs.PassThrough=cce(),Vs.finished=db(),Vs.pipeline=pce())});var mce=w((XSt,dce)=>{"use strict";var{Buffer:So}=require("buffer"),Cce=Symbol.for("BufferList");function mr(r){if(!(this instanceof mr))return new mr(r);mr._init.call(this,r)}mr._init=function(e){Object.defineProperty(this,Cce,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};mr.prototype._new=function(e){return new mr(e)};mr.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};mr.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};mr.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||So.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:So.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};mr.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};mr.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};mr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};mr.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};mr.prototype._match=function(r,e){if(this.length-r{"use strict";var PT=ph().Duplex,Z5e=Hl(),Zm=mce();function Zi(r){if(!(this instanceof Zi))return new Zi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}Zm._init.call(this,r),PT.call(this)}Z5e(Zi,PT);Object.assign(Zi.prototype,Zm.prototype);Zi.prototype._new=function(e){return new Zi(e)};Zi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Zi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Zi.prototype.end=function(e){PT.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Zi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Zi.prototype._isBufferList=function(e){return e instanceof Zi||e instanceof Zm||Zi.isBufferList(e)};Zi.isBufferList=Zm.isBufferList;bb.exports=Zi;bb.exports.BufferListStream=Zi;bb.exports.BufferList=Zm});var FT=w(dh=>{var $5e=Buffer.alloc,e9e="0000000000000000000",t9e="7777777777777777777",Ice="0".charCodeAt(0),yce=Buffer.from("ustar\0","binary"),r9e=Buffer.from("00","binary"),i9e=Buffer.from("ustar ","binary"),n9e=Buffer.from(" \0","binary"),s9e=parseInt("7777",8),$m=257,DT=263,o9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},a9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},A9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},wce=function(r,e,t,i){for(;te?t9e.slice(0,e)+" ":e9e.slice(0,e-r.length)+r+" "};function l9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};dh.decodeLongPath=function(r,e){return Ch(r,0,r.length,e)};dh.encodePax=function(r){var e="";r.name&&(e+=RT(" path="+r.name+` -`)),r.linkname&&(e+=RT(" linkpath="+r.linkname+` -`));var t=r.pax;if(t)for(var i in t)e+=RT(" "+i+"="+t[i]+` -`);return Buffer.from(e)};dh.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Jl(r.mode&s9e,6),100),e.write(Jl(r.uid,6),108),e.write(Jl(r.gid,6),116),e.write(Jl(r.size,11),124),e.write(Jl(r.mtime.getTime()/1e3|0,11),136),e[156]=Ice+A9e(r.type),r.linkname&&e.write(r.linkname,157),yce.copy(e,$m),r9e.copy(e,DT),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Jl(r.devmajor||0,6),329),e.write(Jl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Jl(Bce(e),6),148),e)};dh.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Ice,n=Ch(r,0,100,e),s=Wl(r,100,8),o=Wl(r,108,8),a=Wl(r,116,8),l=Wl(r,124,12),c=Wl(r,136,12),u=a9e(i),g=r[157]===0?null:Ch(r,157,100,e),f=Ch(r,265,32),h=Ch(r,297,32),p=Wl(r,329,8),m=Wl(r,337,8),y=Bce(r);if(y===8*32)return null;if(y!==Wl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(yce.compare(r,$m,$m+6)===0)r[345]&&(n=Ch(r,345,155,e)+"/"+n);else if(!(i9e.compare(r,$m,$m+6)===0&&n9e.compare(r,DT,DT+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:m}}});var Pce=w((evt,bce)=>{var Qce=require("util"),c9e=Ece(),eE=FT(),Sce=ph().Writable,vce=ph().PassThrough,xce=function(){},kce=function(r){return r&=511,r&&512-r},u9e=function(r,e){var t=new Qb(r,e);return t.end(),t},g9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Qb=function(r,e){this._parent=r,this.offset=e,vce.call(this,{autoDestroy:!1})};Qce.inherits(Qb,vce);Qb.prototype.destroy=function(r){this._parent.destroy(r)};var kA=function(r){if(!(this instanceof kA))return new kA(r);Sce.call(this,r),r=r||{},this._offset=0,this._buffer=c9e(),this._missing=0,this._partial=!1,this._onparse=xce,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=kce(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(kce(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=eE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=eE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=eE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=eE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=eE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit("error",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=g9e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,u9e(e,f),n);return}e._stream=new Qb(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};Qce.inherits(kA,Sce);kA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};kA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};kA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=xce,this._overflow?this._write(this._overflow,void 0,r):r()}};kA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};kA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};bce.exports=kA});var Rce=w((tvt,Dce)=>{Dce.exports=require("fs").constants||require("constants")});var Oce=w((rvt,Fce)=>{var mh=Rce(),Nce=Mk(),Sb=Hl(),f9e=Buffer.alloc,Lce=ph().Readable,Eh=ph().Writable,h9e=require("string_decoder").StringDecoder,vb=FT(),p9e=parseInt("755",8),d9e=parseInt("644",8),Tce=f9e(1024),NT=function(){},LT=function(r,e){e&=511,e&&r.push(Tce.slice(0,512-e))};function C9e(r){switch(r&mh.S_IFMT){case mh.S_IFBLK:return"block-device";case mh.S_IFCHR:return"character-device";case mh.S_IFDIR:return"directory";case mh.S_IFIFO:return"fifo";case mh.S_IFLNK:return"symlink"}return"file"}var xb=function(r){Eh.call(this),this.written=0,this._to=r,this._destroyed=!1};Sb(xb,Eh);xb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};xb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var kb=function(){Eh.call(this),this.linkname="",this._decoder=new h9e("utf-8"),this._destroyed=!1};Sb(kb,Eh);kb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};kb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var tE=function(){Eh.call(this),this._destroyed=!1};Sb(tE,Eh);tE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};tE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Ia=function(r){if(!(this instanceof Ia))return new Ia(r);Lce.call(this,r),this._drain=NT,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Sb(Ia,Lce);Ia.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=NT);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=C9e(r.mode)),r.mode||(r.mode=r.type==="directory"?p9e:d9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return LT(i,r.size),n?process.nextTick(t):this._drain=t,new tE}if(r.type==="symlink"&&!r.linkname){var s=new kb;return Nce(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new tE;var o=new xb(this);return this._stream=o,Nce(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));LT(i,r.size),i._finalizing&&i.finalize(),t()}),o}};Ia.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Tce),this.push(null))};Ia.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};Ia.prototype._encode=function(r){if(!r.pax){var e=vb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};Ia.prototype._encodePax=function(r){var e=vb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(vb.encode(t)),this.push(e),LT(this,e.length),t.size=r.size,t.type=r.type,this.push(vb.encode(t))};Ia.prototype._read=function(r){var e=this._drain;this._drain=NT,e()};Fce.exports=Ia});var Mce=w(TT=>{TT.extract=Pce();TT.pack=Oce()});var Xce=w((Qvt,Wce)=>{"use strict";var Ih=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=_ce(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return jT(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):P9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Ih(this.__specs,this.__opts,_ce(this.__providers).concat(e)),zce)}};try{let r=require("util");Ih.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch(r){}function D9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function jT(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))D9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Vce(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Vce(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Vce(r,e){let t;return e.__isFiggyPudding?t=jT(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var zce={has(r,e){return e in r.__specs&&jT(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Ih.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Wce.exports=R9e;function R9e(r,e){function t(...i){return new Proxy(new Ih(r,e,i),zce)}return t}function _ce(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function P9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var eue=w((Svt,ya)=>{"use strict";var iE=require("crypto"),F9e=Xce(),N9e=require("stream").Transform,Zce=["sha256","sha384","sha512"],L9e=/^[a-z0-9+/]+(?:=?=?)$/i,T9e=/^([^-]+)-([^?]+)([?\S*]*)$/,O9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,M9e=/^[\x21-\x7E]+$/,Cn=F9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>K9e},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fu=class{get isHash(){return!0}constructor(e,t){t=Cn(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?O9e:T9e);if(!n||i&&!Zce.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=Cn(e),e.strict&&!(Zce.some(i=>i===this.algorithm)&&this.digest.match(L9e)&&(this.options||[]).every(i=>i.match(M9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},yh=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=Cn(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fu.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=Cn(t);let i=typeof e=="string"?e:nE(e,t);return wa(`${this.toString(t)} ${i}`,t)}hexDigest(){return wa(this,{single:!0}).hexDigest()}match(e,t){t=Cn(t);let i=wa(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=Cn(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ya.exports.parse=wa;function wa(r,e){if(e=Cn(e),typeof r=="string")return GT(r,e);if(r.algorithm&&r.digest){let t=new yh;return t[r.algorithm]=[r],GT(nE(t,e),e)}else return GT(nE(r,e),e)}function GT(r,e){return e.single?new Fu(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fu(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new yh)}ya.exports.stringify=nE;function nE(r,e){return e=Cn(e),r.algorithm&&r.digest?Fu.prototype.toString.call(r,e):typeof r=="string"?nE(wa(r,e),e):yh.prototype.toString.call(r,e)}ya.exports.fromHex=U9e;function U9e(r,e,t){t=Cn(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return wa(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ya.exports.fromData=H9e;function H9e(r,e){e=Cn(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=iE.createHash(s).update(r).digest("base64"),a=new Fu(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new yh)}ya.exports.fromStream=j9e;function j9e(r,e){e=Cn(e);let t=e.Promise||Promise,i=YT(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ya.exports.checkData=G9e;function G9e(r,e,t){if(t=Cn(t),e=wa(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=iE.createHash(i).update(r).digest("base64"),s=wa({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ya.exports.checkStream=Y9e;function Y9e(r,e,t){t=Cn(t);let i=t.Promise||Promise,n=YT(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ya.exports.integrityStream=YT;function YT(r){r=Cn(r);let e=r.integrity&&wa(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(iE.createHash),a=0,l=new N9e({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=wa(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=r.size,f.sri=e,l.emit("error",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ya.exports.create=q9e;function q9e(r){r=Cn(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(iE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fu(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new yh)}}}var J9e=new Set(iE.getHashes()),$ce=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>J9e.has(r));function K9e(r,e){return $ce.indexOf(r.toLowerCase())>=$ce.indexOf(e.toLowerCase())?r:e}});var EC={};ft(EC,{BuildType:()=>cs,Cache:()=>Nt,Configuration:()=>ye,DEFAULT_LOCK_FILENAME:()=>fk,DEFAULT_RC_FILENAME:()=>gk,FormatType:()=>Ri,InstallMode:()=>Ci,LightReport:()=>pA,LinkType:()=>Qt,Manifest:()=>At,MessageName:()=>X,MultiFetcher:()=>yd,PackageExtensionStatus:()=>qi,PackageExtensionType:()=>wi,Project:()=>ze,ProjectLookup:()=>ul,Report:()=>Ji,ReportError:()=>ct,SettingsType:()=>Ie,StreamReport:()=>Je,TAG_REGEXP:()=>zg,TelemetryManager:()=>mC,ThrowReport:()=>di,VirtualFetcher:()=>Bd,Workspace:()=>CC,WorkspaceFetcher:()=>bd,WorkspaceResolver:()=>oi,YarnVersion:()=>Ur,execUtils:()=>Nr,folderUtils:()=>sk,formatUtils:()=>ae,hashUtils:()=>Dn,httpUtils:()=>ir,miscUtils:()=>Se,nodeUtils:()=>Vg,parseMessageName:()=>II,scriptUtils:()=>Zt,semverUtils:()=>Wt,stringifyMessageName:()=>_A,structUtils:()=>P,tgzUtils:()=>Bi,treeUtils:()=>ls});var Nr={};ft(Nr,{EndStrategy:()=>ss,ExecError:()=>Ik,PipeError:()=>ww,execvp:()=>pve,pipevp:()=>ra});var Zh={};ft(Zh,{AliasFS:()=>Na,CwdFS:()=>_t,DEFAULT_COMPRESSION_LEVEL:()=>lc,FakeFS:()=>YA,Filename:()=>kt,JailFS:()=>La,LazyFS:()=>_h,LinkStrategy:()=>Gh,NoFS:()=>jE,NodeFS:()=>ar,PortablePath:()=>Me,PosixFS:()=>Vh,ProxiedFS:()=>Qi,VirtualFS:()=>Wr,ZipFS:()=>li,ZipOpenFS:()=>Is,constants:()=>Rr,extendFs:()=>WE,normalizeLineEndings:()=>sc,npath:()=>H,opendir:()=>KE,patchFs:()=>pQ,ppath:()=>k,statUtils:()=>rQ,toFilename:()=>Jr,xfs:()=>K});var Rr={};ft(Rr,{SAFE_TIME:()=>tQ,S_IFDIR:()=>Da,S_IFLNK:()=>Fa,S_IFMT:()=>_n,S_IFREG:()=>Ra});var _n=61440,Da=16384,Ra=32768,Fa=40960,tQ=456789e3;var rQ={};ft(rQ,{BigIntStatsEntry:()=>Uh,DEFAULT_MODE:()=>Kh,DirEntry:()=>KO,StatEntry:()=>jA,areStatsEqual:()=>nQ,clearStats:()=>RE,convertToBigIntStats:()=>FE,makeDefaultStats:()=>Hh,makeEmptyStats:()=>fge});var iQ=ge(require("util"));var Kh=Ra|420,KO=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===Da}isFIFO(){return!1}isFile(){return(this.mode&_n)===Ra}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Fa}},jA=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Kh;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&_n)===Da}isFIFO(){return!1}isFile(){return(this.mode&_n)===Ra}isSocket(){return!1}isSymbolicLink(){return(this.mode&_n)===Fa}},Uh=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Kh);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(_n))===BigInt(Da)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(_n))===BigInt(Ra)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(_n))===BigInt(Fa)}};function Hh(){return new jA}function fge(){return RE(Hh())}function RE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):iQ.types.isDate(t)&&(r[e]=new Date(0))}return r}function FE(r){let e=new Uh;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):iQ.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function nQ(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var LE=ge(require("fs"));var jh=ge(require("path")),UO;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(UO||(UO={}));var Me={root:"/",dot:"."},kt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},H=Object.create(jh.default),k=Object.create(jh.default.posix);H.cwd=()=>process.cwd();k.cwd=()=>sQ(process.cwd());k.resolve=(...r)=>r.length>0&&k.isAbsolute(r[0])?jh.default.posix.resolve(...r):jh.default.posix.resolve(k.cwd(),...r);var HO=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};H.fromPortablePath=jO;H.toPortablePath=sQ;H.contains=(r,e)=>HO(H,r,e);k.contains=(r,e)=>HO(k,r,e);var hge=/^([a-zA-Z]:.*)$/,pge=/^\/\/(\.\/)?(.*)$/,dge=/^\/([a-zA-Z]:.*)$/,Cge=/^\/unc\/(\.dot\/)?(.*)$/;function jO(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(dge))r=e[1];else if(t=r.match(Cge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function sQ(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(hge))?r=`/${e[1]}`:(t=r.match(pge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function NE(r,e){return r===H?jO(e):sQ(e)}function Jr(r){if(H.parse(r).dir!==""||k.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var TE=new Date(tQ*1e3),Gh;(function(t){t.Allow="allow",t.ReadOnly="readOnly"})(Gh||(Gh={}));async function GO(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:TE,mtime:TE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await oQ(a,l,g,r,s,t,o,te(N({},n),{didParentExist:!0}));for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function oQ(r,e,t,i,n,s,o,a){var h,p;let l=a.didParentExist?await mge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:TE,mtime:TE}:c,f;switch(!0){case c.isDirectory():f=await Ege(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():f=await Ige(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await yge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),f=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function mge(r,e){try{return await r.lstatPromise(e)}catch(t){return null}}async function Ege(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?te(N({},c),{didParentExist:!1}):c;if(c.stableSort)for(let h of g.sort())await oQ(r,e,t,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await oQ(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var aQ=new WeakMap;function AQ(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n===Gh.ReadOnly&&(i.mode&=~146,await r.chmodPromise(e,i.mode))}}function wge(r,e,t,i,n){let s=aQ.get(r);return typeof s=="undefined"?async()=>{try{await r.copyFilePromise(t,e,LE.default.constants.COPYFILE_FICLONE_FORCE),aQ.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")aQ.set(r,!1),await AQ(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,LE.default.constants.COPYFILE_FICLONE_FORCE):AQ(r,e,t,i,n)}async function Ige(r,e,t,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?wge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,LE.default.constants.COPYFILE_FICLONE):u!==null?AQ(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function yge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(NE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function Es(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function OE(r){return Es("EBUSY",r)}function Yh(r,e){return Es("ENOSYS",`${r}, ${e}`)}function GA(r){return Es("EINVAL",`invalid argument, ${r}`)}function Ai(r){return Es("EBADF",`bad file descriptor, ${r}`)}function io(r){return Es("ENOENT",`no such file or directory, ${r}`)}function Ro(r){return Es("ENOTDIR",`not a directory, ${r}`)}function qh(r){return Es("EISDIR",`illegal operation on a directory, ${r}`)}function ME(r){return Es("EEXIST",`file already exists, ${r}`)}function In(r){return Es("EROFS",`read-only filesystem, ${r}`)}function YO(r){return Es("ENOTEMPTY",`directory not empty, ${r}`)}function qO(r){return Es("EOPNOTSUPP",`operation not supported, ${r}`)}function JO(){return Es("ERR_DIR_CLOSED","Directory handle was closed")}var lQ=class extends Error{constructor(e,t){super(e);this.name="Libzip Error",this.code=t}};var WO=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw JO()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e!="undefined"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function KE(r,e,t,i){let n=()=>{let s=t.shift();return typeof s=="undefined"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new WO(e,n,i)}var zO=ge(require("os"));var YA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await GO(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(NE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch(s){}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch(a){}let o=i?sc(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch(s){}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch(a){}let o=i?sc(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} -`)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} -`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},oc=class extends YA{constructor(){super(k)}};function Bge(r){let e=r.match(/\r?\n/g);if(e===null)return zO.EOL;let t=e.filter(n=>n===`\r -`).length,i=e.length-t;return t>i?`\r -`:` -`}function sc(r,e){return e.replace(/\r?\n/g,Bge(r))}var zu=ge(require("fs")),cQ=ge(require("stream")),ZO=ge(require("util")),uQ=ge(require("zlib"));var _O=ge(require("fs"));var ar=class extends oc{constructor(e=_O.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Me.root}resolve(e){return k.resolve(e)}async openPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.open(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}openSync(e,t,i){return this.realFs.openSync(H.fromPortablePath(e),t,i)}async opendirPromise(e,t){return await new Promise((i,n)=>{typeof t!="undefined"?this.realFs.opendir(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.opendir(H.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,t){let i=typeof t!="undefined"?this.realFs.opendirSync(H.fromPortablePath(e),t):this.realFs.opendirSync(H.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,t,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,t,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,t,i,n,s){return this.realFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return await new Promise((o,a)=>typeof t=="string"?this.realFs.write(e,t,i,this.makeCallback(o,a)):this.realFs.write(e,t,i,n,s,this.makeCallback(o,a)))}writeSync(e,t,i,n,s){return typeof t=="string"?this.realFs.writeSync(e,t,i):this.realFs.writeSync(e,t,i,n,s)}async closePromise(e){await new Promise((t,i)=>{this.realFs.close(e,this.makeCallback(t,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createReadStream(i,t)}createWriteStream(e,t){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createWriteStream(i,t)}async realpathPromise(e){return await new Promise((t,i)=>{this.realFs.realpath(H.fromPortablePath(e),{},this.makeCallback(t,i))}).then(t=>H.toPortablePath(t))}realpathSync(e){return H.toPortablePath(this.realFs.realpathSync(H.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(H.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(H.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((i,n)=>{this.realFs.access(H.fromPortablePath(e),t,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(H.fromPortablePath(e))}async statPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.stat(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.stat(H.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,t){return t?this.realFs.statSync(H.fromPortablePath(e),t):this.realFs.statSync(H.fromPortablePath(e))}async fstatPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.fstat(e,t,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,t){return t?this.realFs.fstatSync(e,t):this.realFs.fstatSync(e)}async lstatPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.lstat(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.lstat(H.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,t){return t?this.realFs.lstatSync(H.fromPortablePath(e),t):this.realFs.lstatSync(H.fromPortablePath(e))}async fchmodPromise(e,t){return await new Promise((i,n)=>{this.realFs.fchmod(e,t,this.makeCallback(i,n))})}fchmodSync(e,t){return this.realFs.fchmodSync(e,t)}async chmodPromise(e,t){return await new Promise((i,n)=>{this.realFs.chmod(H.fromPortablePath(e),t,this.makeCallback(i,n))})}chmodSync(e,t){return this.realFs.chmodSync(H.fromPortablePath(e),t)}async chownPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.chown(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}chownSync(e,t,i){return this.realFs.chownSync(H.fromPortablePath(e),t,i)}async renamePromise(e,t){return await new Promise((i,n)=>{this.realFs.rename(H.fromPortablePath(e),H.fromPortablePath(t),this.makeCallback(i,n))})}renameSync(e,t){return this.realFs.renameSync(H.fromPortablePath(e),H.fromPortablePath(t))}async copyFilePromise(e,t,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(H.fromPortablePath(e),H.fromPortablePath(t),i,this.makeCallback(n,s))})}copyFileSync(e,t,i=0){return this.realFs.copyFileSync(H.fromPortablePath(e),H.fromPortablePath(t),i)}async appendFilePromise(e,t,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFile(o,t,i,this.makeCallback(n,s)):this.realFs.appendFile(o,t,this.makeCallback(n,s))})}appendFileSync(e,t,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,t,i):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFile(o,t,i,this.makeCallback(n,s)):this.realFs.writeFile(o,t,this.makeCallback(n,s))})}writeFileSync(e,t,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,t,i):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,i)=>{this.realFs.unlink(H.fromPortablePath(e),this.makeCallback(t,i))})}unlinkSync(e){return this.realFs.unlinkSync(H.fromPortablePath(e))}async utimesPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.utimes(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}utimesSync(e,t,i){this.realFs.utimesSync(H.fromPortablePath(e),t,i)}async lutimesPromiseImpl(e,t,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw Yh("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,H.fromPortablePath(e),t,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,t,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw Yh("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,H.fromPortablePath(e),t,i)}async mkdirPromise(e,t){return await new Promise((i,n)=>{this.realFs.mkdir(H.fromPortablePath(e),t,this.makeCallback(i,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(H.fromPortablePath(e),t)}async rmdirPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.rmdir(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.rmdir(H.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,t){return this.realFs.rmdirSync(H.fromPortablePath(e),t)}async linkPromise(e,t){return await new Promise((i,n)=>{this.realFs.link(H.fromPortablePath(e),H.fromPortablePath(t),this.makeCallback(i,n))})}linkSync(e,t){return this.realFs.linkSync(H.fromPortablePath(e),H.fromPortablePath(t))}async symlinkPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.symlink(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(t),i,this.makeCallback(n,s))})}symlinkSync(e,t,i){return this.realFs.symlinkSync(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(t),i)}async readFilePromise(e,t){return await new Promise((i,n)=>{let s=typeof e=="string"?H.fromPortablePath(e):e;this.realFs.readFile(s,t,this.makeCallback(i,n))})}readFileSync(e,t){let i=typeof e=="string"?H.fromPortablePath(e):e;return this.realFs.readFileSync(i,t)}async readdirPromise(e,t){return await new Promise((i,n)=>{(t==null?void 0:t.withFileTypes)?this.realFs.readdir(H.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(H.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,t){return(t==null?void 0:t.withFileTypes)?this.realFs.readdirSync(H.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(H.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,i)=>{this.realFs.readlink(H.fromPortablePath(e),this.makeCallback(t,i))}).then(t=>H.toPortablePath(t))}readlinkSync(e){return H.toPortablePath(this.realFs.readlinkSync(H.fromPortablePath(e)))}async truncatePromise(e,t){return await new Promise((i,n)=>{this.realFs.truncate(H.fromPortablePath(e),t,this.makeCallback(i,n))})}truncateSync(e,t){return this.realFs.truncateSync(H.fromPortablePath(e),t)}async ftruncatePromise(e,t){return await new Promise((i,n)=>{this.realFs.ftruncate(e,t,this.makeCallback(i,n))})}ftruncateSync(e,t){return this.realFs.ftruncateSync(e,t)}watch(e,t,i){return this.realFs.watch(H.fromPortablePath(e),t,i)}watchFile(e,t,i){return this.realFs.watchFile(H.fromPortablePath(e),t,i)}unwatchFile(e,t){return this.realFs.unwatchFile(H.fromPortablePath(e),t)}makeCallback(e,t){return(i,n)=>{i?t(i):e(n)}}};var VO=ge(require("events"));var ac;(function(t){t.Change="change",t.Stop="stop"})(ac||(ac={}));var Ac;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(Ac||(Ac={}));function XO(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Jh=class extends VO.EventEmitter{constructor(e,t,{bigint:i=!1}={}){super();this.status=Ac.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=t,this.bigint=i,this.lastStats=this.stat()}static create(e,t,i){let n=new Jh(e,t,i);return n.start(),n}start(){XO(this.status,Ac.Ready),this.status=Ac.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(ac.Change,this.lastStats,this.lastStats)},3)}stop(){XO(this.status,Ac.Running),this.status=Ac.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(ac.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let t=this.bigint?new Uh:new jA;return RE(t)}}makeInterval(e){let t=setInterval(()=>{let i=this.stat(),n=this.lastStats;nQ(i,n)||(this.lastStats=i,this.emit(ac.Change,i,n))},e.interval);return e.persistent?t:t.unref()}registerChangeListener(e,t){this.addListener(ac.Change,e),this.changeListeners.set(e,this.makeInterval(t))}unregisterChangeListener(e){this.removeListener(ac.Change,e);let t=this.changeListeners.get(e);typeof t!="undefined"&&clearInterval(t),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var UE=new WeakMap;function HE(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=UE.get(r);typeof l=="undefined"&&UE.set(r,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=Jh.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Wh(r,e,t){let i=UE.get(r);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof t=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function zh(r){let e=UE.get(r);if(typeof e!="undefined")for(let t of e.keys())Wh(r,t)}var lc="mixed";function bge(r){if(typeof r=="string"&&String(+r)===r)return+r;if(Number.isFinite(r))return r<0?Date.now()/1e3:r;if(ZO.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function $O(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var li=class extends oc{constructor(e,t){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=t.libzip;let i=t;if(this.level=typeof i.level!="undefined"?i.level:lc,e!=null||(e=$O()),typeof e=="string"){let{baseFs:o=new ar}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=Hh();else throw o}else this.stats=Hh();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(H.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Me.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw OE("archive closed, close");zh(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===Kh?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,$O(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return k.resolve(Me.root,e)}async openPromise(e,t,i){return this.openSync(e,t,i)}openSync(e,t,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,t){return this.opendirSync(e,t)}opendirSync(e,t={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw io(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw Ro(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return KE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,t,i,n,s){return this.readSync(e,t,i,n,s)}readSync(e,t,i=0,n=t.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw Ai("read");let a=s===-1||s===null?o.cursor:s,l=this.readFileSync(o.p);l.copy(t,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,t,i,n,s){return typeof t=="string"?this.writeSync(e,t,s):this.writeSync(e,t,i,n,s)}writeSync(e,t,i,n,s){throw typeof this.fds.get(e)=="undefined"?Ai("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw Ai("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new cQ.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,t);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw In(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new cQ.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),t),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw io(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw OE(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=k.resolve(Me.root,e);return this.entries.has(i)||this.listings.has(i)}let t;try{t=this.resolveFilename(`stat '${e}'`,e,void 0,!1)}catch(i){return!1}return t===void 0?!1:this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=zu.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw io(`access '${e}'`);if(this.readOnly&&t&zu.constants.W_OK)throw In(`access '${e}'`)}async statPromise(e,t={bigint:!1}){return t.bigint?this.statSync(e,{bigint:!0}):this.statSync(e)}statSync(e,t={bigint:!1,throwIfNoEntry:!0}){let i=this.resolveFilename(`stat '${e}'`,e,void 0,t.throwIfNoEntry);if(i!==void 0){if(!this.entries.has(i)&&!this.listings.has(i)){if(t.throwIfNoEntry===!1)return;throw io(`stat '${e}'`)}if(e[e.length-1]==="/"&&!this.listings.has(i))throw Ro(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,t)}}async fstatPromise(e,t){return this.fstatSync(e,t)}fstatSync(e,t){let i=this.fds.get(e);if(typeof i=="undefined")throw Ai("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw io(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw Ro(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,t)}async lstatPromise(e,t={bigint:!1}){return t.bigint?this.lstatSync(e,{bigint:!0}):this.lstatSync(e)}lstatSync(e,t={bigint:!1,throwIfNoEntry:!0}){let i=this.resolveFilename(`lstat '${e}'`,e,!1,t.throwIfNoEntry);if(i!==void 0){if(!this.entries.has(i)&&!this.listings.has(i)){if(t.throwIfNoEntry===!1)return;throw io(`lstat '${e}'`)}if(e[e.length-1]==="/"&&!this.listings.has(i))throw Ro(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,t)}}statImpl(e,t,i={}){let n=this.entries.get(t);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,m=f,y=new Date(h),b=new Date(p),v=new Date(m),x=new Date(f),T=this.listings.has(t)?Da:this.isSymbolicLink(n)?Fa:Ra,q=T===Da?493:420,Y=T|this.getUnixMode(n,q)&511,$=this.libzip.struct.statCrc(s),_=Object.assign(new jA,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:y,birthtime:b,ctime:v,mtime:x,atimeMs:h,birthtimeMs:p,ctimeMs:m,mtimeMs:f,mode:Y,crc:$});return i.bigint===!0?FE(_):_}if(this.listings.has(t)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),m=new Date(g),y=new Date(f),b=new Date(h),v=Da|493,x=0,T=Object.assign(new jA,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:m,ctime:y,mtime:b,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:v,crc:x});return i.bigint===!0?FE(T):T}throw new Error("Unreachable")}getUnixMode(e,t){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;this.registerListing(k.dirname(e)).add(k.basename(e));let n=new Set;return this.listings.set(e,n),n}registerEntry(e,t){this.registerListing(k.dirname(e)).add(k.basename(e)),this.entries.set(e,t)}unregisterListing(e){this.listings.delete(e);let t=this.listings.get(k.dirname(e));t==null||t.delete(k.basename(e))}unregisterEntry(e){this.unregisterListing(e);let t=this.entries.get(e);this.entries.delete(e),typeof t!="undefined"&&(this.fileSources.delete(t),this.isSymbolicLink(t)&&this.symlinkCount--)}deleteEntry(e,t){if(this.unregisterEntry(e),this.libzip.delete(this.zip,t)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,t,i=!0,n=!0){if(!this.ready)throw OE(`archive closed, ${e}`);let s=k.resolve(Me.root,t);if(s==="/")return Me.root;let o=this.entries.get(s);if(i&&o!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(o)){let a=this.getFileSource(o).toString();return this.resolveFilename(e,k.resolve(k.dirname(s),a),!0,n)}else return s;for(;;){let a=this.resolveFilename(e,k.dirname(s),!0,n);if(a===void 0)return a;let l=this.listings.has(a),c=this.entries.has(a);if(!l&&!c){if(n===!1)return;throw io(e)}if(!l)throw Ro(e);if(s=k.resolve(a,k.basename(s)),!i||this.symlinkCount===0)break;let u=this.libzip.name.locate(this.zip,s.slice(1));if(u===-1)break;if(this.isSymbolicLink(u)){let g=this.getFileSource(u).toString();s=k.resolve(k.dirname(s),g)}else break}return s}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){let t=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,t);if(s===0)throw this.libzip.free(t),this.makeLibzipError(t);return s}allocateSource(e){let{buffer:t,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,i,0,!0);if(n===0)throw this.libzip.free(t),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,t){let i=Buffer.isBuffer(t)?t:Buffer.from(t),n=k.relative(Me.root,e),s=this.allocateSource(t);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&_n)===Fa}getFileSource(e,t={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(t.asyncDecompress)return new Promise((h,p)=>{uQ.default.inflateRaw(f,(m,y)=>{m?p(m):(this.fileSources.set(e,y),h(y))})});{let h=uQ.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async fchmodPromise(e,t){return this.chmodPromise(this.fdToPath(e,"fchmod"),t)}fchmodSync(e,t){return this.chmodSync(this.fdToPath(e,"fchmodSync"),t)}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw In(`chmod '${e}'`);t&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,Ra|0)&~511|t;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,t,i){return this.chownSync(e,t,i)}chownSync(e,t,i){throw new Error("Unimplemented")}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,t,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,t,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,t,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,t,i=0){if(this.readOnly)throw In(`copyfile '${e} -> '${t}'`);if((i&zu.constants.COPYFILE_FICLONE_FORCE)!=0)throw Yh("unsupported clone operation",`copyfile '${e}' -> ${t}'`);let n=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw GA(`copyfile '${e}' -> '${t}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),a=this.entries.get(o);if((i&(zu.constants.COPYFILE_EXCL|zu.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw ME(`copyfile '${e}' -> '${t}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,t,i){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFilePromise(e,t,i)}appendFileSync(e,t,i={}){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFileSync(e,t,i)}fdToPath(e,t){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw Ai(t);return i}async writeFilePromise(e,t,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(t=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(t)])),n!==null&&(t=t.toString(n));let l=this.setFileSource(a,t);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,t,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(o),Buffer.from(t)])),n!==null&&(t=t.toString(n));let l=this.setFileSource(a,t);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,t){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw In(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw qh(`open '${e}'`);let n=null,s=null;typeof t=="string"?n=t:typeof t=="object"&&({encoding:n=null,mode:s=null}=t);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw In(`unlink '${e}'`);let t=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(t))throw qh(`unlink '${e}'`);let i=this.entries.get(t);if(typeof i=="undefined")throw GA(`unlink '${e}'`);this.deleteEntry(t,i)}async utimesPromise(e,t,i){return this.utimesSync(e,t,i)}utimesSync(e,t,i){if(this.readOnly)throw In(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,t,i){return this.lutimesSync(e,t,i)}lutimesSync(e,t,i){if(this.readOnly)throw In(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,bge(t),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:i=!1}={}){if(i)return this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw In(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw ME(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e,t){return this.rmdirSync(e,t)}rmdirSync(e,{recursive:t=!1}={}){if(this.readOnly)throw In(`rmdir '${e}'`);if(t){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw Ro(`rmdir '${e}'`);if(n.size>0)throw YO(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw GA(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let t=this.libzip.dir.add(this.zip,k.relative(Me.root,e));if(t===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,t),t}async linkPromise(e,t){return this.linkSync(e,t)}linkSync(e,t){throw qO(`link '${e}' -> '${t}'`)}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw In(`symlink '${e}' -> '${t}'`);let i=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(i))throw qh(`symlink '${e}' -> '${t}'`);if(this.entries.has(i))throw ME(`symlink '${e}' -> '${t}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(Fa|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,t){typeof t=="object"&&(t=t?t.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return t?i.toString(t):i}readFileSync(e,t){typeof t=="object"&&(t=t?t.encoding:void 0);let i=this.readFileBuffer(e);return t?i.toString(t):i}readFileBuffer(e,t={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw io(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw Ro(`open '${e}'`);if(this.listings.has(i))throw qh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,t)}async readdirPromise(e,t){return this.readdirSync(e,t)}readdirSync(e,t){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw io(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw Ro(`scandir '${e}'`);let s=[...n];return(t==null?void 0:t.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",k.join(e,o)),{name:o})):s}async readlinkPromise(e){let t=this.prepareReadlink(e);return(await this.getFileSource(t,{asyncDecompress:!0})).toString()}readlinkSync(e){let t=this.prepareReadlink(e);return this.getFileSource(t).toString()}prepareReadlink(e){let t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw io(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(t))throw Ro(`open '${e}'`);if(this.listings.has(t))throw GA(`readlink '${e}'`);let i=this.entries.get(t);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw GA(`readlink '${e}'`);return i}async truncatePromise(e,t=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw GA(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(t,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,t=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw GA(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(t,0);return s.copy(o),this.writeFileSync(e,o)}async ftruncatePromise(e,t){return this.truncatePromise(this.fdToPath(e,"ftruncate"),t)}ftruncateSync(e,t){return this.truncateSync(this.fdToPath(e,"ftruncateSync"),t)}watch(e,t,i){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,t,i){let n=k.resolve(Me.root,e);return HE(this,n,t,i)}unwatchFile(e,t){let i=k.resolve(Me.root,e);return Wh(this,i,t)}};var Qi=class extends YA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return t==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),t):this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return t==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),t):this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Na=class extends Qi{constructor(e,{baseFs:t,pathUtils:i}){super(i);this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var _t=class extends Qi{constructor(e,{baseFs:t=new ar}={}){super(k);this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?k.normalize(e):this.baseFs.resolve(k.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var eM=Me.root,La=class extends Qi{constructor(e,{baseFs:t=new ar}={}){super(k);this.target=this.pathUtils.resolve(Me.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Me.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(eM,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(eM,this.pathUtils.relative(this.target,e))}};var _h=class extends Qi{constructor(e,t){super(t);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var et=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),gQ=class extends YA{constructor(){super(k)}getExtractHint(){throw et()}getRealPath(){throw et()}resolve(){throw et()}async openPromise(){throw et()}openSync(){throw et()}async opendirPromise(){throw et()}opendirSync(){throw et()}async readPromise(){throw et()}readSync(){throw et()}async writePromise(){throw et()}writeSync(){throw et()}async closePromise(){throw et()}closeSync(){throw et()}createWriteStream(){throw et()}createReadStream(){throw et()}async realpathPromise(){throw et()}realpathSync(){throw et()}async readdirPromise(){throw et()}readdirSync(){throw et()}async existsPromise(e){throw et()}existsSync(e){throw et()}async accessPromise(){throw et()}accessSync(){throw et()}async statPromise(){throw et()}statSync(){throw et()}async fstatPromise(e){throw et()}fstatSync(e){throw et()}async lstatPromise(e){throw et()}lstatSync(e){throw et()}async fchmodPromise(){throw et()}fchmodSync(){throw et()}async chmodPromise(){throw et()}chmodSync(){throw et()}async chownPromise(){throw et()}chownSync(){throw et()}async mkdirPromise(){throw et()}mkdirSync(){throw et()}async rmdirPromise(){throw et()}rmdirSync(){throw et()}async linkPromise(){throw et()}linkSync(){throw et()}async symlinkPromise(){throw et()}symlinkSync(){throw et()}async renamePromise(){throw et()}renameSync(){throw et()}async copyFilePromise(){throw et()}copyFileSync(){throw et()}async appendFilePromise(){throw et()}appendFileSync(){throw et()}async writeFilePromise(){throw et()}writeFileSync(){throw et()}async unlinkPromise(){throw et()}unlinkSync(){throw et()}async utimesPromise(){throw et()}utimesSync(){throw et()}async readFilePromise(){throw et()}readFileSync(){throw et()}async readlinkPromise(){throw et()}readlinkSync(){throw et()}async truncatePromise(){throw et()}truncateSync(){throw et()}async ftruncatePromise(e,t){throw et()}ftruncateSync(e,t){throw et()}watch(){throw et()}watchFile(){throw et()}unwatchFile(){throw et()}},jE=gQ;jE.instance=new gQ;var Vh=class extends Qi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return H.fromPortablePath(e)}mapToBase(e){return H.toPortablePath(e)}};var Qge=/^[0-9]+$/,fQ=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,Sge=/^([^/]+-)?[a-f0-9]+$/,Wr=class extends Qi{static makeVirtualPath(e,t,i){if(k.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!k.basename(t).match(Sge))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=k.relative(k.dirname(e),i).split("/"),o=0;for(;o{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==k.sep);){if(r[t-1]===k.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==k.sep?null:r.slice(0,i)},Is=class extends oc{constructor({libzip:e,baseFs:t=new ar,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=t,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,t){let i=new Is(t);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(zh(this),this.zipInstances)for(let[e,{zipFs:t}]of this.zipInstances.entries())t.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(zh(this),this.zipInstances)for(let[e,{zipFs:t}]of this.zipInstances.entries())t.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,t){let i=this.nextFd++|Vn;return this.fdMap.set(i,[e,t]),i}async openPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,t,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,t,i)))}openSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,t,i)))}async opendirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,t),async(i,{subPath:n})=>await i.opendirPromise(n,t),{requireSubpath:!1})}opendirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,t),(i,{subPath:n})=>i.opendirSync(n,t),{requireSubpath:!1})}async readPromise(e,t,i,n,s){if((e&Vn)==0)return await this.baseFs.readPromise(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("read");let[a,l]=o;return await a.readPromise(l,t,i,n,s)}readSync(e,t,i,n,s){if((e&Vn)==0)return this.baseFs.readSync(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("readSync");let[a,l]=o;return a.readSync(l,t,i,n,s)}async writePromise(e,t,i,n,s){if((e&Vn)==0)return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("write");let[a,l]=o;return typeof t=="string"?await a.writePromise(l,t,i):await a.writePromise(l,t,i,n,s)}writeSync(e,t,i,n,s){if((e&Vn)==0)return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("writeSync");let[a,l]=o;return typeof t=="string"?a.writeSync(l,t,i):a.writeSync(l,t,i,n,s)}async closePromise(e){if((e&Vn)==0)return await this.baseFs.closePromise(e);let t=this.fdMap.get(e);if(typeof t=="undefined")throw Ai("close");this.fdMap.delete(e);let[i,n]=t;return await i.closePromise(n)}closeSync(e){if((e&Vn)==0)return this.baseFs.closeSync(e);let t=this.fdMap.get(e);if(typeof t=="undefined")throw Ai("closeSync");this.fdMap.delete(e);let[i,n]=t;return i.closeSync(n)}createReadStream(e,t){return e===null?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(i,{archivePath:n,subPath:s})=>{let o=i.createReadStream(s,t);return o.path=H.fromPortablePath(this.pathUtils.join(n,s)),o})}createWriteStream(e,t){return e===null?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(i,{subPath:n})=>i.createWriteStream(n,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(t,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Me.root,await t.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(t,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Me.root,t.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(t,{subPath:i})=>await t.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(t,{subPath:i})=>t.existsSync(i))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(i,{subPath:n})=>await i.accessPromise(n,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(i,{subPath:n})=>i.accessSync(n,t))}async statPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,t),async(i,{subPath:n})=>await i.statPromise(n,t))}statSync(e,t){return this.makeCallSync(e,()=>this.baseFs.statSync(e,t),(i,{subPath:n})=>i.statSync(n,t))}async fstatPromise(e,t){if((e&Vn)==0)return this.baseFs.fstatPromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fstat");let[n,s]=i;return n.fstatPromise(s,t)}fstatSync(e,t){if((e&Vn)==0)return this.baseFs.fstatSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fstatSync");let[n,s]=i;return n.fstatSync(s,t)}async lstatPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,t),async(i,{subPath:n})=>await i.lstatPromise(n,t))}lstatSync(e,t){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,t),(i,{subPath:n})=>i.lstatSync(n,t))}async fchmodPromise(e,t){if((e&Vn)==0)return this.baseFs.fchmodPromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fchmod");let[n,s]=i;return n.fchmodPromise(s,t)}fchmodSync(e,t){if((e&Vn)==0)return this.baseFs.fchmodSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fchmodSync");let[n,s]=i;return n.fchmodSync(s,t)}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(i,{subPath:n})=>await i.chmodPromise(n,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(i,{subPath:n})=>i.chmodSync(n,t))}async chownPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,t,i),async(n,{subPath:s})=>await n.chownPromise(s,t,i))}chownSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,t,i),(n,{subPath:s})=>n.chownSync(s,t,i))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,t,i=0){let n=async(s,o,a,l)=>{if((i&Xh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Xh.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(t,async()=>await n(s,o,this.baseFs,t),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,t,i=0){let n=(s,o,a,l)=>{if((i&Xh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Xh.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(t,()=>n(s,o,this.baseFs,t),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,i),async(n,{subPath:s})=>await n.appendFilePromise(s,t,i))}appendFileSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,i),(n,{subPath:s})=>n.appendFileSync(s,t,i))}async writeFilePromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,i),async(n,{subPath:s})=>await n.writeFilePromise(s,t,i))}writeFileSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,i),(n,{subPath:s})=>n.writeFileSync(s,t,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(t,{subPath:i})=>await t.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(t,{subPath:i})=>t.unlinkSync(i))}async utimesPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,i),async(n,{subPath:s})=>await n.utimesPromise(s,t,i))}utimesSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,i),(n,{subPath:s})=>n.utimesSync(s,t,i))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(i,{subPath:n})=>await i.mkdirPromise(n,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(i,{subPath:n})=>i.mkdirSync(n,t))}async rmdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,t),async(i,{subPath:n})=>await i.rmdirPromise(n,t))}rmdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,t),(i,{subPath:n})=>i.rmdirSync(n,t))}async linkPromise(e,t){return await this.makeCallPromise(t,async()=>await this.baseFs.linkPromise(e,t),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,t){return this.makeCallSync(t,()=>this.baseFs.linkSync(e,t),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,t,i){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":return await this.baseFs.readFilePromise(e,t);default:return await this.baseFs.readFilePromise(e,t)}},async(i,{subPath:n})=>await i.readFilePromise(n,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":return this.baseFs.readFileSync(e,t);default:return this.baseFs.readFileSync(e,t)}},(i,{subPath:n})=>i.readFileSync(n,t))}async readdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,t),async(i,{subPath:n})=>await i.readdirPromise(n,t),{requireSubpath:!1})}readdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,t),(i,{subPath:n})=>i.readdirSync(n,t),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(t,{subPath:i})=>await t.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(t,{subPath:i})=>t.readlinkSync(i))}async truncatePromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,t),async(i,{subPath:n})=>await i.truncatePromise(n,t))}truncateSync(e,t){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,t),(i,{subPath:n})=>i.truncateSync(n,t))}async ftruncatePromise(e,t){if((e&Vn)==0)return this.baseFs.ftruncatePromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("ftruncate");let[n,s]=i;return n.ftruncatePromise(s,t)}ftruncateSync(e,t){if((e&Vn)==0)return this.baseFs.ftruncateSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("ftruncateSync");let[n,s]=i;return n.ftruncateSync(s,t)}watch(e,t,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,i),(n,{subPath:s})=>n.watch(s,t,i))}watchFile(e,t,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,t,i),()=>HE(this,e,t,i))}unwatchFile(e,t){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,t),()=>Wh(this,e,t))}async makeCallPromise(e,t,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await t();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await t():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await t()}makeCallSync(e,t,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return t();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?t():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){let i=e.substring(t.length),n;if(!this.fileExtensions)n=tM(i,".zip");else for(let s of this.fileExtensions)if(n=tM(i,s),n)break;if(!n)return null;if(t=this.pathUtils.join(t,n),this.isZip.has(t)===!1){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch{return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.join(Me.root,e.substring(t.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let t=Date.now(),i=t+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(t>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-t).unref())}async getZipPromise(e,t){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new li(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await t(n.zipFs)}finally{n.refCount-=1}}else{let n=new li(e,await i());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new li(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,t(n.zipFs)}else{let n=new li(e,i());try{return t(n)}finally{n.saveAndClose()}}}};var Vu=ge(require("util"));var GE=ge(require("url"));var hQ=class extends Qi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof GE.URL?(0,GE.fileURLToPath)(e):e}};var en=Symbol("kBaseFs"),Ta=Symbol("kFd"),qA=Symbol("kClosePromise"),YE=Symbol("kCloseResolve"),qE=Symbol("kCloseReject"),_u=Symbol("kRefs"),Fo=Symbol("kRef"),No=Symbol("kUnref"),Q6e,S6e,v6e,x6e,JE=class{constructor(e,t){this[Q6e]=1;this[S6e]=void 0;this[v6e]=void 0;this[x6e]=void 0;this[en]=t,this[Ta]=e}get fd(){return this[Ta]}async appendFile(e,t){var i;try{this[Fo](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[en].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[No]()}}chown(e,t){throw new Error("Method not implemented.")}async chmod(e){try{return this[Fo](this.chmod),await this[en].fchmodPromise(this.fd,e)}finally{this[No]()}}createReadStream(e){return this[en].createReadStream(null,te(N({},e),{fd:this.fd}))}createWriteStream(e){return this[en].createWriteStream(null,te(N({},e),{fd:this.fd}))}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Fo](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[en].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[No]()}}async readFile(e){var t;try{this[Fo](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[en].readFilePromise(this.fd,i)}finally{this[No]()}}async stat(e){try{return this[Fo](this.stat),await this[en].fstatPromise(this.fd,e)}finally{this[No]()}}async truncate(e){try{return this[Fo](this.truncate),await this[en].ftruncatePromise(this.fd,e)}finally{this[No]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Fo](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[en].writeFilePromise(this.fd,e,n)}finally{this[No]()}}async write(...e){try{if(this[Fo](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[en].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[en].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[No]()}}async writev(e,t){try{this[Fo](this.writev);let i=0;if(typeof t!="undefined")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e)i+=(await this.write(n)).bytesWritten;return{buffers:e,bytesWritten:i}}finally{this[No]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ta]===-1)return Promise.resolve();if(this[qA])return this[qA];if(this[_u]--,this[_u]===0){let e=this[Ta];this[Ta]=-1,this[qA]=this[en].closePromise(e).finally(()=>{this[qA]=void 0})}else this[qA]=new Promise((e,t)=>{this[YE]=e,this[qE]=t}).finally(()=>{this[qA]=void 0,this[qE]=void 0,this[YE]=void 0});return this[qA]}[(en,Ta,Q6e=_u,S6e=qA,v6e=YE,x6e=qE,Fo)](e){if(this[Ta]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[_u]++}[No](){if(this[_u]--,this[_u]===0){let e=this[Ta];this[Ta]=-1,this[en].closePromise(e).then(this[YE],this[qE])}}};var vge=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),rM=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function pQ(r,e){e=new hQ(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Vu.promisify.custom])!="undefined"&&(s[Vu.promisify.custom]=o[Vu.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of rM){let n=i.replace(/Promise$/,"");if(typeof r[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of vge){let n=i;if(typeof r[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=r.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let s of rM){let o=s.replace(/Promise$/,"");if(typeof n[o]=="undefined")continue;let a=e[s];typeof a!="undefined"&&s!=="open"&&t(n,o,(l,...c)=>l instanceof JE?l[o].apply(l,c):a.call(e,l,...c))}t(n,"open",async(...s)=>{let o=await e.openPromise(...s);return new JE(o,e)})}}r.read[Vu.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Vu.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function WE(r,e){let t=Object.create(r);return pQ(t,e),t}var iM=ge(require("os"));function nM(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var no=new Set,dQ=null;function sM(){if(dQ)return dQ;let r=H.toPortablePath(iM.default.tmpdir()),e=K.realpathSync(r);return process.once("exit",()=>{K.rmtempSync()}),dQ={tmpdir:r,realTmpdir:e}}var K=Object.assign(new ar,{detachTemp(r){no.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=sM();for(;;){let i=nM("xfs-");try{this.mkdirSync(k.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=k.join(t,i);if(no.add(n),typeof r=="undefined")return n;try{return r(n)}finally{if(no.has(n)){no.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=sM();for(;;){let i=nM("xfs-");try{await this.mkdirPromise(k.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=k.join(t,i);if(no.add(n),typeof r=="undefined")return n;try{return await r(n)}finally{if(no.has(n)){no.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(no.values()).map(async r=>{try{await K.removePromise(r,{maxRetries:0}),no.delete(r)}catch{}}))},rmtempSync(){for(let r of no)try{K.removeSync(r),no.delete(r)}catch{}}});var mk=ge(SQ());var op={};ft(op,{parseResolution:()=>$E,parseShell:()=>_E,parseSyml:()=>Si,stringifyArgument:()=>PQ,stringifyArgumentSegment:()=>DQ,stringifyArithmeticExpression:()=>ZE,stringifyCommand:()=>kQ,stringifyCommandChain:()=>eg,stringifyCommandChainThen:()=>xQ,stringifyCommandLine:()=>VE,stringifyCommandLineThen:()=>vQ,stringifyEnvSegment:()=>XE,stringifyRedirectArgument:()=>$h,stringifyResolution:()=>eI,stringifyShell:()=>$u,stringifyShellLine:()=>$u,stringifySyml:()=>Ma,stringifyValueArgument:()=>uc});var _M=ge(zM());function _E(r,e={isGlobPattern:()=>!1}){try{return(0,_M.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function $u(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${VE(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function VE(r){return`${eg(r.chain)}${r.then?` ${vQ(r.then)}`:""}`}function vQ(r){return`${r.type} ${VE(r.line)}`}function eg(r){return`${kQ(r)}${r.then?` ${xQ(r.then)}`:""}`}function xQ(r){return`${r.type} ${eg(r.chain)}`}function kQ(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>XE(e)).join(" ")} `:""}${r.args.map(e=>PQ(e)).join(" ")}`;case"subshell":return`(${$u(r.subshell)})${r.args.length>0?` ${r.args.map(e=>$h(e)).join(" ")}`:""}`;case"group":return`{ ${$u(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>$h(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>XE(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function XE(r){return`${r.name}=${r.args[0]?uc(r.args[0]):""}`}function PQ(r){switch(r.type){case"redirection":return $h(r);case"argument":return uc(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function $h(r){return`${r.subtype} ${r.args.map(e=>uc(e)).join(" ")}`}function uc(r){return r.segments.map(e=>DQ(e)).join("")}function DQ(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${$u(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue=="undefined"?typeof r.alternativeValue=="undefined"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>uc(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>uc(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${ZE(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function ZE(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(ZE(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var ZM=ge(XM());function $E(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,ZM.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function eI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var uI=ge(jK()),qK=ge(YK()),Tpe=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,JK=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],YQ=class{constructor(e){this.data=e}};function WK(r){return r.match(Tpe)?r:JSON.stringify(r)}function zK(r){return typeof r=="undefined"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>zK(r[e])):!1}function qQ(r,e,t){if(r===null)return`null -`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} -`;if(typeof r=="string")return`${WK(r)} -`;if(Array.isArray(r)){if(r.length===0)return`[] -`;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${qQ(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof YQ?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=JK.indexOf(l),g=JK.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!zK(i[l])).map((l,c)=>{let u=i[l],g=WK(l),f=qQ(u,e+1,!0),h=c>0||t?s:"",p=g.length>1024?`? ${g} -${h}:`:`${g}:`,m=f.startsWith(` -`)?f:` ${f}`;return`${h}${p}${m}`}).join(e===0?` -`:"")||` -`;return t?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Ma(r){try{let e=qQ(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Ma.PreserveOrdering=YQ;function Ope(r){return r.endsWith(` -`)||(r+=` -`),(0,qK.parse)(r)}var Mpe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Kpe(r){if(Mpe.test(r))return Ope(r);let e=(0,uI.safeLoad)(r,{schema:uI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Si(r){return Kpe(r)}var T4=ge(VK()),mw=ge(Ic());var Cp={};ft(Cp,{Builtins:()=>oS,Cli:()=>ws,Command:()=>Re,Option:()=>J,UsageError:()=>Pe,formatMarkdownish:()=>Ui});var yc=0,ap=1,tn=2,WQ="",vi="\0",lg=-1,zQ=/^(-h|--help)(?:=([0-9]+))?$/,gI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,tU=/^-[a-zA-Z]{2,}$/,_Q=/^([^=]+)=([\s\S]*)$/,VQ=process.env.DEBUG_CLI==="1";var Pe=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},Ap=class extends Error{constructor(e,t){super();if(this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${XQ(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${XQ(e)}`}},ZQ=class extends Error{constructor(e,t){super();this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${XQ(e)}`}},XQ=r=>`While running ${r.filter(e=>e!==vi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var lp=Symbol("clipanion/isOption");function rn(r){return te(N({},r),{[lp]:!0})}function Oo(r,e){return typeof r=="undefined"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function fI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function cp(r,e){return e.length===1?new Pe(`${r}: ${fI(e[0],!0)}`):new Pe(`${r}: -${e.map(t=>` -- ${fI(t)}`).join("")}`)}function up(r,e,t){if(typeof t=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw cp(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Re=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(ys(),cg)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw cp("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i!="undefined"?i:0}};Re.isOption=lp;Re.Default=[];var uU=80,tS=Array(uU).fill("\u2501");for(let r=0;r<=24;++r)tS[tS.length-r]=`[38;5;${232+r}m\u2501`;var rS={header:r=>`\u2501\u2501\u2501 ${r}${r.length`${r}`,error:r=>`${r}`,code:r=>`${r}`},gU={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function yde(r){let e=r.split(` -`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ui(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` -`),r=yde(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var sS=ge(require("tty"));function wn(r){VQ&&console.log(r)}var fU={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lg};function hU(){return{nodes:[sn(),sn(),sn()]}}function Bde(r){let e=hU(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(yc)}function Qde(r,{prefix:e=""}={}){if(VQ){wn(`${e}Nodes are:`);for(let t=0;tl!==tn).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===tn))throw new Ap(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=Sde(a)}if(i.length>0){wn(" Results:");for(let s of i)wn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else wn(" No results");return i}function vde(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,vi)){for(let{to:t}of r.statics[vi])if(t===ap)return!0}return!1}function kde(r,e,t){let i=t&&e.length>0?[""]:[],n=dU(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let m=r.nodes[p],y=Object.keys(m.statics);for(let b of Object.keys(m.statics)){let v=y[0];for(let{to:x,reducer:T}of m.statics[v])T==="pushPath"&&(u||l.push(v),g.push(x))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=vde(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==vi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===tn)continue;let p=xde(f,c);if(p!==null)for(let m of p)a([...i,m],l)}}return[...s].sort()}function Dde(r,e){let t=dU(r,[...e,vi]);return Pde(e,t.map(({state:i})=>i))}function Sde(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function Pde(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Ap(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=Rde(c);if(u.length>1)throw new ZQ(r,u.map(g=>g.candidateUsage));return u[0]}function Rde(r){let e=[],t=[];for(let i of r)i.selectedIndex===lg?t.push(i):e.push(i);return t.length>0&&e.push(te(N({},fU),{path:CU(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])})),e}function CU(r,e,...t){return e===void 0?Array.from(r):CU(r.filter((i,n)=>i===e[n]),...t)}function sn(){return{dynamics:[],shortcuts:[],statics:{}}}function pU(r){return r===ap||r===tn}function nS(r,e=0){return{to:pU(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function wde(r,e=0){let t=sn();for(let[i,n]of r.dynamics)t.dynamics.push([i,nS(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(nS(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>nS(s,e));return t}function xi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function ug(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Ka(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function pI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function xde(r,e){let t=Array.isArray(r)?dI[r[0]]:dI[r];if(typeof t.suggest=="undefined")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var dI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&tU.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(_Q);return!r.ignoreOptions&&!!n&&gI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&zQ.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&gI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!gI.test(e)};dI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var iS={setCandidateState:(r,e,t)=>N(N({},r),t),setSelectedIndex:(r,e,t)=>te(N({},r),{selectedIndex:t}),pushBatch:(r,e)=>te(N({},r),{options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(_Q);return te(N({},r),{options:r.options.concat({name:t,value:i})})},pushPath:(r,e)=>te(N({},r),{path:r.path.concat(e)}),pushPositional:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:Zn})}),pushTrue:(r,e,t=e)=>te(N({},r),{options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>te(N({},r),{options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>te(N({},r),{options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i=te(N({},r),{options:[...r.options]}),n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t=te(N({},r),{options:[...r.options]}),i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>te(N({},r),{ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(zQ);return typeof i!="undefined"?te(N({},r),{options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}):te(N({},r),{options:[{name:"-c",value:String(t)}]})},setError:(r,e,t)=>e===vi?te(N({},r),{errorMessage:`${t}.`}):te(N({},r),{errorMessage:`${t} ("${e}").`}),setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return te(N({},r),{errorMessage:`Not enough arguments to option ${t.name}.`})}},Zn=Symbol(),mU=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Zn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Zn?this.arity.extra.push(e):this.arity.extra!==Zn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Zn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Zn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=hU(),t=yc,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=so(e,sn()),Ka(e,yc,WQ,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=so(e,sn());ug(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=so(e,sn());xi(e,l,"isHelp",f,["useHelp",this.cliIndex]),Ka(e,f,vi,ap,["setSelectedIndex",lg]),this.registerOptions(e,l)}this.arity.leading.length>0&&Ka(e,l,vi,tn,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Ka(e,h,vi,tn,["setError","Not enough positional arguments"]),xi(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Zn||this.arity.extra.length>0){let f=so(e,sn());if(ug(e,c,f),this.arity.extra===Zn){let h=so(e,sn());this.arity.proxy||this.registerOptions(e,h),xi(e,c,s,h,"pushExtraNoLimits"),xi(e,h,s,h,"pushExtraNoLimits"),ug(e,h,f)}else for(let h=0;h0&&Ka(e,u,vi,tn,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)xi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&xi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=so(e,sn());for(let o of i.names)xi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eDde(i,n),suggest:(n,s)=>kde(i,n,s)}}};var dp=class extends Re{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,t){let i=new dp(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var EU=Symbol("clipanion/errorCommand");function Fde(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY?8:1}var ws=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new pp({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new ws(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Re.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case lg:return dp.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[EU]=a,l}}break}}async run(e,t){var i;let n,s=N(N({},ws.defaultContext),t),o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,N(N({},s),u)),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?Nde(s):IU,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Ui(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Ui(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Ui(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Ui(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Re?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ui(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} -`,a+=` -`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} -`,f.length>0){a+=` -`,a+=`${rS.header("Options")} -`;let h=f.reduce((p,m)=>Math.max(p,m.definition.length),0);a+=` -`;for(let{definition:p,description:m}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${Ui(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(t).header("Details")} -`,a+=` -`,a+=Ui(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(t).header("Examples")} -`;for(let[h,p]of u)a+=` -`,a+=Ui(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Ui(f.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(p);typeof m=="undefined"&&l.set(p,m=[]);let{usage:y}=this.getUsageByIndex(h);m.push({commandClass:f,usage:y})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} -`:a+=`${this.format(t).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(t).bold(n)}${this.binaryName} -`):a+=`${this.format(t).bold(n)}${this.binaryName} -`;for(let f of c){let h=l.get(f).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` -`,a+=`${this.format(t).header(`${p}`)} -`;for(let{commandClass:m,usage:y}of h){let b=m.usage.description||"undocumented";a+=` -`,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ui(b,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ui("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[EU])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:ws.defaultContext.colorDepth>1)?rS:gU}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};ws.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in sS.default.WriteStream.prototype?sS.default.WriteStream.prototype.getColorDepth():Fde()};var yU;function Nde(r){let e=yU;if(typeof e=="undefined"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return IU;let{AsyncLocalStorage:t}=require("async_hooks");e=yU=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function IU(r){return r()}var oS={};ft(oS,{DefinitionsCommand:()=>CI,HelpCommand:()=>mI,VersionCommand:()=>EI});var CI=class extends Re{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};CI.paths=[["--clipanion=definitions"]];var mI=class extends Re{async execute(){this.context.stdout.write(this.cli.usage())}};mI.paths=[["-h"],["--help"]];var EI=class extends Re{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};EI.paths=[["-v"],["--version"]];var J={};ft(J,{Array:()=>wU,Boolean:()=>BU,Counter:()=>bU,Proxy:()=>QU,Rest:()=>SU,String:()=>vU,applyValidator:()=>up,cleanValidationError:()=>fI,formatError:()=>cp,isOptionSymbol:()=>lp,makeCommandOption:()=>rn,rerouteArguments:()=>Oo});function wU(r,e,t){let[i,n]=Oo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function BU(r,e,t){let[i,n]=Oo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function bU(r,e,t){let[i,n]=Oo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function QU(r={}){return rn({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function SU(r={}){return rn({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Zn||a.extra===!1&&oo)}})}function Lde(r,e,t){let[i,n]=Oo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?up(g!=null?g:c,f,n.validator):f}})}function Tde(r={}){let{required:e=!0}=r;return rn({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;oYW,areIdentsEqual:()=>fd,areLocatorsEqual:()=>hd,areVirtualPackagesEquivalent:()=>aSe,bindDescriptor:()=>sSe,bindLocator:()=>oSe,convertDescriptorToLocator:()=>Aw,convertLocatorToDescriptor:()=>_x,convertPackageToLocator:()=>nSe,convertToIdent:()=>iSe,convertToManifestRange:()=>cSe,copyPackage:()=>cd,devirtualizeDescriptor:()=>ud,devirtualizeLocator:()=>gd,getIdentVendorPath:()=>ek,isPackageCompatible:()=>gw,isVirtualDescriptor:()=>Al,isVirtualLocator:()=>ea,makeDescriptor:()=>rr,makeIdent:()=>$o,makeLocator:()=>cn,makeRange:()=>cw,parseDescriptor:()=>ll,parseFileStyleRange:()=>ASe,parseIdent:()=>An,parseLocator:()=>Yc,parseRange:()=>qg,prettyDependent:()=>Lv,prettyDescriptor:()=>sr,prettyIdent:()=>fi,prettyLocator:()=>It,prettyLocatorNoColors:()=>$x,prettyRange:()=>aw,prettyReference:()=>dd,prettyResolution:()=>Tv,prettyWorkspace:()=>Cd,renamePackage:()=>ld,slugifyIdent:()=>Zx,slugifyLocator:()=>Jg,sortDescriptors:()=>Wg,stringifyDescriptor:()=>Pn,stringifyIdent:()=>Ot,stringifyLocator:()=>Rs,tryParseDescriptor:()=>pd,tryParseIdent:()=>qW,tryParseLocator:()=>lw,virtualizeDescriptor:()=>Vx,virtualizePackage:()=>Xx});var Yg=ge(require("querystring")),HW=ge(ri()),jW=ge(nY());var ae={};ft(ae,{LogLevel:()=>ho,Style:()=>Tc,Type:()=>qe,addLogFilterSupport:()=>nd,applyColor:()=>ns,applyHyperlink:()=>Mg,applyStyle:()=>Ry,json:()=>Oc,jsonOrPretty:()=>KBe,mark:()=>Hv,pretty:()=>tt,prettyField:()=>_o,prettyList:()=>Uv,supportsColor:()=>Py,supportsHyperlinks:()=>Mv,tuple:()=>fo});var rd=ge(uv()),id=ge(Ic());var sJ=ge(is()),oJ=ge(Jq());var Se={};ft(Se,{AsyncActions:()=>$q,BufferStream:()=>Zq,CachingStrategy:()=>Lc,DefaultStream:()=>eJ,allSettledSafe:()=>go,assertNever:()=>Pv,bufferStream:()=>Tg,buildIgnorePattern:()=>LBe,convertMapsToIndexableObjects:()=>ky,dynamicRequire:()=>Og,escapeRegExp:()=>PBe,getArrayWithDefault:()=>Fg,getFactoryWithDefault:()=>_a,getMapWithDefault:()=>Ng,getSetWithDefault:()=>Nc,isIndexableObject:()=>Dv,isPathLike:()=>TBe,isTaggedYarnVersion:()=>kBe,mapAndFilter:()=>zo,mapAndFind:()=>$p,overrideType:()=>kv,parseBoolean:()=>td,parseOptionalBoolean:()=>nJ,prettifyAsyncErrors:()=>Lg,prettifySyncErrors:()=>Rv,releaseAfterUseAsync:()=>RBe,replaceEnvVariables:()=>Fv,sortMap:()=>kn,tryParseOptionalBoolean:()=>Nv,validateEnum:()=>DBe});var Wq=ge(is()),zq=ge(gg()),_q=ge(ri()),xv=ge(require("stream"));function kBe(r){return!!(_q.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function PBe(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kv(r){}function Pv(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function DBe(r,e){let t=Object.values(r);if(!t.includes(e))throw new Pe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function zo(r,e){let t=[];for(let i of r){let n=e(i);n!==Vq&&t.push(n)}return t}var Vq=Symbol();zo.skip=Vq;function $p(r,e){for(let t of r){let i=e(t);if(i!==Xq)return i}}var Xq=Symbol();$p.skip=Xq;function Dv(r){return typeof r=="object"&&r!==null}async function go(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function ky(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Dv(r))for(let e of Object.keys(r)){let t=r[e];Dv(t)&&(r[e]=ky(t))}return r}function _a(r,e,t){let i=r.get(e);return typeof i=="undefined"&&r.set(e,i=t()),i}function Fg(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=[]),t}function Nc(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=new Set),t}function Ng(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=new Map),t}async function RBe(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function Lg(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Rv(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Tg(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Zq=class extends xv.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,t,i){if(t!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}};function FBe(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var $q=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,zq.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=FBe());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},eJ=class extends xv.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,t,i){if(t!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},ed=eval("require");function tJ(r){return ed(H.fromPortablePath(r))}function rJ(path){let physicalPath=H.fromPortablePath(path),currentCacheEntry=ed.cache[physicalPath];delete ed.cache[physicalPath];let result;try{result=tJ(physicalPath);let freshCacheEntry=ed.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{ed.cache[physicalPath]=currentCacheEntry}return result}var iJ=new Map;function NBe(r){let e=iJ.get(r),t=K.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=rJ(r);return iJ.set(r,{mtime:t.mtimeMs,instance:i}),i}var Lc;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Lc||(Lc={}));function Og(r,{cachingStrategy:e=2}={}){switch(e){case 0:return rJ(r);case 1:return NBe(r);case 2:return tJ(r);default:throw new Error("Unsupported caching strategy")}}function kn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function LBe(r){return r.length===0?null:r.map(e=>`(${Wq.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Fv(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Pe(`Environment variable not found (${n})`)})}function td(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function nJ(r){return typeof r=="undefined"?r:td(r)}function Nv(r){try{return nJ(r)}catch{return null}}function TBe(r){return!!(H.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Qt;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(Qt||(Qt={}));var wi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(wi||(wi={}));var qi;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(qi||(qi={}));var qe={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},Tc;(function(e){e[e.BOLD=2]="BOLD"})(Tc||(Tc={}));var Ov=id.default.GITHUB_ACTIONS?{level:2}:rd.default.supportsColor?{level:rd.default.supportsColor.level}:{level:0},Py=Ov.level!==0,Mv=Py&&!id.default.GITHUB_ACTIONS&&!id.default.CIRCLE&&!id.default.GITLAB,Kv=new rd.default.Instance(Ov),OBe=new Map([[qe.NO_HINT,null],[qe.NULL,["#a853b5",129]],[qe.SCOPE,["#d75f00",166]],[qe.NAME,["#d7875f",173]],[qe.RANGE,["#00afaf",37]],[qe.REFERENCE,["#87afff",111]],[qe.NUMBER,["#ffd700",220]],[qe.PATH,["#d75fd7",170]],[qe.URL,["#d75fd7",170]],[qe.ADDED,["#5faf00",70]],[qe.REMOVED,["#d70000",160]],[qe.CODE,["#87afff",111]],[qe.SIZE,["#ffd700",220]]]),Fs=r=>r,Dy={[qe.NUMBER]:Fs({pretty:(r,e)=>`${e}`,json:r=>r}),[qe.IDENT]:Fs({pretty:(r,e)=>fi(r,e),json:r=>Ot(r)}),[qe.LOCATOR]:Fs({pretty:(r,e)=>It(r,e),json:r=>Rs(r)}),[qe.DESCRIPTOR]:Fs({pretty:(r,e)=>sr(r,e),json:r=>Pn(r)}),[qe.RESOLUTION]:Fs({pretty:(r,{descriptor:e,locator:t})=>Tv(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Pn(r),locator:e!==null?Rs(e):null})}),[qe.DEPENDENT]:Fs({pretty:(r,{locator:e,descriptor:t})=>Lv(r,e,t),json:({locator:r,descriptor:e})=>({locator:Rs(r),descriptor:Pn(e)})}),[qe.PACKAGE_EXTENSION]:Fs({pretty:(r,e)=>{switch(e.type){case wi.Dependency:return`${fi(r,e.parentDescriptor)} \u27A4 ${ns(r,"dependencies",qe.CODE)} \u27A4 ${fi(r,e.descriptor)}`;case wi.PeerDependency:return`${fi(r,e.parentDescriptor)} \u27A4 ${ns(r,"peerDependencies",qe.CODE)} \u27A4 ${fi(r,e.descriptor)}`;case wi.PeerDependencyMeta:return`${fi(r,e.parentDescriptor)} \u27A4 ${ns(r,"peerDependenciesMeta",qe.CODE)} \u27A4 ${fi(r,An(e.selector))} \u27A4 ${ns(r,e.key,qe.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case wi.Dependency:return`${Ot(r.parentDescriptor)} > ${Ot(r.descriptor)}`;case wi.PeerDependency:return`${Ot(r.parentDescriptor)} >> ${Ot(r.descriptor)}`;case wi.PeerDependencyMeta:return`${Ot(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[qe.SETTING]:Fs({pretty:(r,e)=>(r.get(e),Mg(r,ns(r,e,qe.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[qe.DURATION]:Fs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[qe.SIZE]:Fs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return ns(r,`${s} ${t[i-1]}`,qe.NUMBER)},json:r=>r}),[qe.PATH]:Fs({pretty:(r,e)=>ns(r,H.fromPortablePath(e),qe.PATH),json:r=>H.fromPortablePath(r)}),[qe.MARKDOWN]:Fs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ui(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function fo(r,e){return[e,r]}function Ry(r,e,t){return r.get("enableColors")&&t&2&&(e=rd.default.bold(e)),e}function ns(r,e,t){if(!r.get("enableColors"))return e;let i=OBe.get(t);if(i===null)return e;let n=typeof i=="undefined"?t:Ov.level>=3?i[0]:i[1],s=typeof n=="number"?Kv.ansi256(n):n.startsWith("#")?Kv.hex(n):Kv[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var MBe=!!process.env.KONSOLE_VERSION;function Mg(r,e,t){return r.get("enableHyperlinks")?MBe?`]8;;${t}\\${e}]8;;\\`:`]8;;${t}\x07${e}]8;;\x07`:e}function tt(r,e,t){if(e===null)return ns(r,"null",qe.NULL);if(Object.prototype.hasOwnProperty.call(Dy,t))return Dy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return ns(r,e,t)}function Uv(r,e,t,{separator:i=", "}={}){return[...e].map(n=>tt(r,n,t)).join(i)}function Oc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Dy,e))return kv(e),Dy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function KBe(r,e,[t,i]){return r?Oc(t,i):tt(e,t,i)}function Hv(r){return{Check:ns(r,"\u2713","green"),Cross:ns(r,"\u2718","red"),Question:ns(r,"?","cyan")}}function _o(r,{label:e,value:[t,i]}){return`${tt(r,e,qe.CODE)}: ${tt(r,t,i)}`}var ho;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(ho||(ho={}));function nd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let m=g.get("pattern");typeof m!="undefined"&&s.push([sJ.default.matcher(m,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===X.UNNAMED)return h;let p=n.size>0||s.length>0?(0,oJ.default)(f):f;if(n.size>0){let m=n.get(p);if(typeof m!="undefined")return m!=null?m:h}if(s.length>0){for(let[m,y]of s)if(m(p))return y!=null?y:h}if(i.size>0){let m=i.get(_A(g));if(typeof m!="undefined")return m!=null?m:h}return h},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case ho.Info:a.call(g,f,h);break;case ho.Warning:l.call(g,f!=null?f:X.UNNAMED,h);break;case ho.Error:c.call(g,f!=null?f:X.UNNAMED,h);break}};r.reportInfo=function(...g){return u(this,...g,ho.Info)},r.reportWarning=function(...g){return u(this,...g,ho.Warning)},r.reportError=function(...g){return u(this,...g,ho.Error)}}var Dn={};ft(Dn,{checksumFile:()=>sw,checksumPattern:()=>ow,makeHash:()=>ln});var nw=ge(require("crypto")),zx=ge(Wx());function ln(...r){let e=(0,nw.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function sw(r,{baseFs:e,algorithm:t}={baseFs:K,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,nw.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function ow(r,{cwd:e}){let i=(await(0,zx.default)(r,{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,zx.default)([r,...i],{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=H.toPortablePath(a),u=await K.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await K.readlinkPromise(c))):u.isFile()&&l.push(await K.readFilePromise(c)),l.join("\0")})),o=(0,nw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var Ad="virtual:",tSe=5,GW=/(os|cpu|libc)=([a-z0-9_-]+)/,rSe=(0,jW.makeParser)(GW);function $o(r,e){if(r==null?void 0:r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:ln(r,e),scope:r,name:e}}function rr(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:ln(r.identHash,e),range:e}}function cn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:ln(r.identHash,e),reference:e}}function iSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Aw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function _x(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function nSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function ld(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function cd(r){return ld(r,r)}function Vx(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rr(r,`virtual:${e}#${r.range}`)}function Xx(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return ld(r,cn(r,`virtual:${e}#${r.reference}`))}function Al(r){return r.range.startsWith(Ad)}function ea(r){return r.reference.startsWith(Ad)}function ud(r){if(!Al(r))throw new Error("Not a virtual descriptor");return rr(r,r.range.replace(/^[^#]*#/,""))}function gd(r){if(!ea(r))throw new Error("Not a virtual descriptor");return cn(r,r.reference.replace(/^[^#]*#/,""))}function sSe(r,e){return r.range.includes("::")?r:rr(r,`${r.range}::${Yg.default.stringify(e)}`)}function oSe(r,e){return r.reference.includes("::")?r:cn(r,`${r.reference}::${Yg.default.stringify(e)}`)}function fd(r,e){return r.identHash===e.identHash}function YW(r,e){return r.descriptorHash===e.descriptorHash}function hd(r,e){return r.locatorHash===e.locatorHash}function aSe(r,e){if(!ea(r))throw new Error("Invalid package type");if(!ea(e))throw new Error("Invalid package type");if(!fd(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!YW(t,i))return!1}return!0}function An(r){let e=qW(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function qW(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e,n=typeof t!="undefined"?t:null;return $o(n,i)}function ll(r,e=!1){let t=pd(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function pd(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return rr($o(o,n),a)}function Yc(r,e=!1){let t=lw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function lw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return cn($o(o,n),a)}function qg(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]!="undefined"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]!="undefined"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]!="undefined"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=(e==null?void 0:e.parseSelector)?Yg.default.parse(s):s,a=typeof t[4]!="undefined"?Yg.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function ASe(r,{protocol:e}){let{selector:t,params:i}=qg(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Yc(i.locator,!0),path:t}}function JW(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function lSe(r){return r===null?!1:Object.entries(r).length>0}function cw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${JW(e)}#`),n+=JW(t),lSe(i)&&(n+=`::${Yg.default.stringify(i)}`),n}function cSe(r){let{params:e,protocol:t,source:i,selector:n}=qg(r);for(let s in e)s.startsWith("__")&&delete e[s];return cw({protocol:t,source:i,params:e,selector:n})}function Ot(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Pn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function Rs(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Zx(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function Jg(r){let{protocol:e,selector:t}=qg(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=HW.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Zx(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Zx(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Jr(a)}function fi(r,e){return e.scope?`${tt(r,`@${e.scope}/`,qe.SCOPE)}${tt(r,e.name,qe.NAME)}`:`${tt(r,e.name,qe.NAME)}`}function uw(r){if(r.startsWith(Ad)){let e=uw(r.substring(r.indexOf("#")+1)),t=r.substring(Ad.length,Ad.length+tSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function aw(r,e){return`${tt(r,uw(e),qe.RANGE)}`}function sr(r,e){return`${fi(r,e)}${tt(r,"@",qe.RANGE)}${aw(r,e.range)}`}function dd(r,e){return`${tt(r,uw(e),qe.REFERENCE)}`}function It(r,e){return`${fi(r,e)}${tt(r,"@",qe.REFERENCE)}${dd(r,e.reference)}`}function $x(r){return`${Ot(r)}@${uw(r.reference)}`}function Wg(r){return kn(r,[e=>Ot(e),e=>e.range])}function Cd(r,e){return fi(r,e.locator)}function Tv(r,e,t){let i=Al(e)?ud(e):e;return t===null?`${sr(r,i)} \u2192 ${Hv(r).Cross}`:i.identHash===t.identHash?`${sr(r,i)} \u2192 ${dd(r,t.reference)}`:`${sr(r,i)} \u2192 ${It(r,t)}`}function Lv(r,e,t){return t===null?`${It(r,e)}`:`${It(r,e)} (via ${aw(r,t.range)})`}function ek(r){return`node_modules/${Ot(r)}`}function gw(r,e){return r.conditions?rSe(r.conditions,t=>{let[,i,n]=t.match(GW),s=e[i];return s?s.includes(n):!0}):!0}var WW={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Ot(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Ot(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(rr(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=Cd(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(X.INVALID_MANIFEST,i.message)}}};var XW=ge(ri());var md=class{supportsDescriptor(e,t){return!!(e.range.startsWith(md.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(md.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(md.protocol.length));return te(N({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:Qt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},oi=md;oi.protocol="workspace:";var Wt={};ft(Wt,{SemVer:()=>zW.SemVer,clean:()=>gSe,satisfiesWithPrereleases:()=>qc,validRange:()=>po});var fw=ge(ri()),zW=ge(ri()),_W=new Map;function qc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=_W.get(i);if(typeof n=="undefined")try{n=new fw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{_W.set(i,n||null)}else if(n===null)return!1;let s;try{s=new fw.default.SemVer(r,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var VW=new Map;function po(r){if(r.indexOf(":")!==-1)return null;let e=VW.get(r);if(typeof e!="undefined")return e;try{e=new fw.default.Range(r)}catch{e=null}return VW.set(r,e),e}var uSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function gSe(r){let e=uSe.exec(r);return e?e[1]:null}var cl=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new ar}={}){let i=k.join(e,"package.json");try{return await cl.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await cl.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new ar}={}){let i=new cl;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new cl;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse($W(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=ZW(e)}async loadFile(e,{baseFs:t=new ar}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse($W(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=ZW(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=An(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=un(e.main):this.main=null,typeof e.module=="string"?this.module=un(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=un(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(un(s),typeof o=="string"?un(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,un(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=An(s);this.bin.set(a.name,un(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(oi.protocol)&&!po(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=rr(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=ll(s),l=this.ensureDependencyMeta(a),c=hw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=hw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=hw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=ll(s),l=this.ensurePeerDependencyMeta(a),c=hw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:$E(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=un(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=un(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=un(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(un(s),typeof o=="string"?un(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,un(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,un(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(un(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l);let c=rr(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(tk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(tk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(tk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return cl.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return cl.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!XW.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pn(e)}'`);let t=Ot(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pn(e)}'`);let t=Ot(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Ot(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=te(N({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Ot(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Wg(i).map(o=>({[Ot(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Wg(n).map(o=>({[Ot(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Wg(this.devDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Wg(this.peerDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of kn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of kn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Pn(rr(An(o),l)):o,g=N({},c);t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...kn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[eI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},At=cl;At.fileName="package.json",At.allDependencies=["dependencies","devDependencies","peerDependencies"],At.hardDependencies=["dependencies","devDependencies"];function ZW(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function $W(r){return r.charCodeAt(0)===65279?r.slice(1):r}function un(r){return r.replace(/\\/g,"/")}function hw(r,{yamlCompatibilityMode:e}){return e?Nv(r):typeof r=="undefined"||typeof r=="boolean"?r:null}function e4(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2==0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function tk(r,e){return e.length===1?e4(r,e[0]):`(${e.map(t=>e4(r,t)).join(" | ")})`}var D4=ge(P4()),R4=ge(require("stream")),F4=ge(require("string_decoder"));var sve=15,ct=class extends Error{constructor(e,t,i){super(t);this.reportExtra=i;this.reportCode=e}};function ove(r){return typeof r.reportCode!="undefined"}var Ji=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,D4.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/sve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){ove(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(X.EXCEPTION,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new R4.PassThrough,i=new F4.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var yd=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new ct(X.FETCHER_NOT_FOUND,`${It(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var wd=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${sr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${It(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var N4=ge(ri());var zg=/^(?!v)[a-z0-9._-]+$/i,nk=class{supportsDescriptor(e,t){return!!(po(e.range)||zg.test(e.range))}supportsLocator(e,t){return!!(N4.default.valid(e.reference)||zg.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return ld(i,e)}forwardDescriptor(e,t){return rr(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return cn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Bd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return Jg(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Wr.makeVirtualPath(s,o,n),l=new Na(a,{baseFs:t.packageFs,pathUtils:k});return te(N({},t),{packageFs:l})}};var _g=class{static isVirtualDescriptor(e){return!!e.range.startsWith(_g.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(_g.protocol)}supportsDescriptor(e,t){return _g.isVirtualDescriptor(e)}supportsLocator(e,t){return _g.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},pw=_g;pw.protocol="virtual:";var bd=class{supports(e){return!!e.reference.startsWith(oi.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new _t(i),prefixPath:Me.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(oi.protocol.length))}};var sk={};ft(sk,{getDefaultGlobalFolder:()=>ak,getHomeFolder:()=>Qd,isFolderInside:()=>Ak});var ok=ge(require("os"));function ak(){if(process.platform==="win32"){let r=H.toPortablePath(process.env.LOCALAPPDATA||H.join((0,ok.homedir)(),"AppData","Local"));return k.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=H.toPortablePath(process.env.XDG_DATA_HOME);return k.resolve(r,"yarn/berry")}return k.resolve(Qd(),".yarn/berry")}function Qd(){return H.toPortablePath((0,ok.homedir)()||"/usr/local/share")}function Ak(r,e){let t=k.relative(e,r);return t&&!t.startsWith("..")&&!k.isAbsolute(t)}var Vg={};ft(Vg,{builtinModules:()=>lk,getArchitecture:()=>Sd,getArchitectureName:()=>Ave,getArchitectureSet:()=>ck});var L4=ge(require("module"));function lk(){return new Set(L4.default.builtinModules||Object.keys(process.binding("natives")))}function ave(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],t=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=$p(e,a=>{let l=a.match(t);if(!l)return $p.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var dw,Cw;function Sd(){return dw=dw!=null?dw:{os:process.platform,cpu:process.arch,libc:ave()}}function Ave(r=Sd()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function ck(){let r=Sd();return Cw=Cw!=null?Cw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}var lve=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),Ew="yarn_",gk=".yarnrc.yml",fk="yarn.lock",cve="********",Ie;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(Ie||(Ie={}));var Ri=qe,hk={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:Ie.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:Ie.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:Ie.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:Ie.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:Ie.STRING,default:null},globalFolder:{description:"Folder where all system-global files are stored",type:Ie.ABSOLUTE_PATH,default:ak()},cacheFolder:{description:"Folder where the cache files must be written",type:Ie.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:Ie.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:lc},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:Ie.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:Ie.STRING,default:fk},installStatePath:{description:"Path of the file where the install state will be persisted",type:Ie.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:Ie.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:Ie.STRING,default:Iw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:Ie.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:Ie.BOOLEAN,default:Py,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:Ie.BOOLEAN,default:Mv,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:Ie.BOOLEAN,default:mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:Ie.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:Ie.BOOLEAN,default:!mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:Ie.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:Ie.BOOLEAN,default:mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:Ie.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:Ie.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:Ie.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:Ie.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:Ie.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:Ie.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:Ie.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:Ie.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:Ie.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:Ie.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:Ie.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:Ie.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:Ie.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:Ie.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:Ie.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:Ie.MAP,valueDefinition:{description:"",type:Ie.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:Ie.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:Ie.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:Ie.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:Ie.STRING,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:Ie.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:Ie.ABSOLUTE_PATH,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:Ie.ABSOLUTE_PATH,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:Ie.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:Ie.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:Ie.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:Ie.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:Ie.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:Ie.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:Ie.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:Ie.STRING,values:Object.values(ho),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:Ie.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:Ie.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:Ie.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:Ie.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:Ie.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:Ie.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:Ie.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:Ie.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:Ie.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:Ie.MAP,valueDefinition:{description:"A range",type:Ie.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:Ie.MAP,valueDefinition:{description:"A semver range",type:Ie.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:Ie.MAP,valueDefinition:{description:"The peerDependency meta",type:Ie.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:Ie.BOOLEAN,default:!1}}}}}}}};function dk(r,e,t,i,n){if(i.isArray||i.type===Ie.ANY&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>pk(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>pk(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return pk(r,e,t,i,n)}function pk(r,e,t,i,n){var a;switch(i.type){case Ie.ANY:return t;case Ie.SHAPE:return uve(r,e,t,i,n);case Ie.MAP:return gve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(t))return t;let o=(()=>{if(i.type===Ie.BOOLEAN&&typeof t!="string")return td(t);if(typeof t!="string")throw new Error(`Expected value (${t}) to be a string`);let l=Fv(t,{env:process.env});switch(i.type){case Ie.ABSOLUTE_PATH:return k.resolve(n,H.toPortablePath(l));case Ie.LOCATOR_LOOSE:return Yc(l,!1);case Ie.NUMBER:return parseInt(l);case Ie.LOCATOR:return Yc(l);case Ie.BOOLEAN:return td(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function uve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new Pe(`Object configuration settings "${e}" must be an object`);let s=Ck(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new Pe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,dk(r,l,a,i.properties[o],n))}return s}function gve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new Pe(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,dk(r,c,a,u,n))}return s}function Ck(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case Ie.SHAPE:{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,Ck(r,s));return i}break;case Ie.MAP:return e.isArray&&!t?[]:new Map;case Ie.ABSOLUTE_PATH:return e.default===null?null:r.projectCwd===null?k.isAbsolute(e.default)?k.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>k.resolve(r.projectCwd,i)):k.resolve(r.projectCwd,e.default);default:return e.default}}function yw(r,e,t){if(e.type===Ie.SECRET&&typeof r=="string"&&t.hideSecrets)return cve;if(e.type===Ie.ABSOLUTE_PATH&&typeof r=="string"&&t.getNativePaths)return H.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(yw(n,e,t));return i}if(e.type===Ie.MAP&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,yw(s,e.valueDefinition,t));return i}if(e.type===Ie.SHAPE&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,yw(s,o,t))}return i}return r}function fve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(Ew)&&(e=(0,T4.default)(e.slice(Ew.length)),r[e]=t);return r}function Iw(){let r=`${Ew}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return gk}var ul;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(ul||(ul={}));var tA=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new tA(e);typeof t!="undefined"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(hk);let s=typeof i!="undefined"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=fve();delete a.rcFilename;let l=await tA.findRcFiles(e),c=await tA.findHomeRcFile();if(c){let b=l.find(v=>v.path===c.path);b?b.strict=!1:l.push(te(N({},c),{strict:!1}))}let u=({ignoreCwd:b,yarnPath:v,ignorePath:x,lockfileFilename:T})=>({ignoreCwd:b,yarnPath:v,ignorePath:x,lockfileFilename:T}),g=Y=>{var $=Y,{ignoreCwd:b,yarnPath:v,ignorePath:x,lockfileFilename:T}=$,q=Or($,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return q},f=new tA(e);f.importSettings(u(hk)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:b,cwd:v,data:x}of l)f.useWithSource(b,u(x),v,{strict:!1});if(s){let b=f.get("yarnPath"),v=f.get("ignorePath");if(b!==null&&!v)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await tA.findProjectCwd(e,h);break;case 1:p=await tA.findProjectCwd(e,null);break;case 2:K.existsSync(k.join(e,"package.json"))?p=k.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(hk));let m=new Map([["@@core",WW]]),y=b=>"default"in b?b.default:b;if(t!==null){for(let T of t.plugins.keys())m.set(T,y(t.modules.get(T)));let b=new Map;for(let T of lk())b.set(T,()=>Og(T));for(let[T,q]of t.modules)b.set(T,()=>q);let v=new Set,x=async(T,q)=>{let{factory:Y,name:$}=Og(T);if(v.has($))return;let _=new Map(b),ne=A=>{if(_.has(A))return _.get(A)();throw new Pe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},ee=await Lg(async()=>y(await Y(ne)),A=>`${A} (when initializing ${$}, defined in ${q})`);b.set($,()=>ee),v.add($),m.set($,ee)};if(a.plugins)for(let T of a.plugins.split(";")){let q=k.resolve(e,H.toPortablePath(T));await x(q,"")}for(let{path:T,cwd:q,data:Y}of l)if(!!o&&!!Array.isArray(Y.plugins))for(let $ of Y.plugins){let _=typeof $!="string"?$.path:$,ne=k.resolve(q,H.toPortablePath(_));await x(ne,T)}}for(let[b,v]of m)f.activatePlugin(b,v);f.useWithSource("",g(a),e,{strict:n});for(let{path:b,cwd:v,data:x,strict:T}of l)f.useWithSource(b,g(x),v,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let t=Iw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=k.join(s,t);if(K.existsSync(o)){let a=await K.readFilePromise(o,"utf8"),l;try{l=Si(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Pe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=k.dirname(s)}return i}static async findHomeRcFile(){let e=Iw(),t=Qd(),i=k.join(t,e);if(K.existsSync(i)){let n=await K.readFilePromise(i,"utf8"),s=Si(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,K.existsSync(k.join(s,"package.json"))&&(i=s),t!==null){if(K.existsSync(k.join(s,t))){i=s;break}}else if(i!==null)break;n=k.dirname(s)}return i}static async updateConfiguration(e,t){let i=Iw(),n=k.join(e,i),s=K.existsSync(n)?Si(await K.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await K.changeFilePromise(n,Ma(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=Qd();return await tA.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration!="undefined"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,Ck(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${tt(this,e,qe.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]=="undefined"||o==="plugins"||e===""&&lve.has(o))continue;if(o==="rcFilename")throw new Pe(`The rcFilename settings can only be set via ${`${Ew}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Pe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===Ie.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=dk(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${tt(this,e,qe.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===Ie.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new Pe(`Couldn't find a configuration settings named "${e}"`);return yw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=K.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${tt(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${tt(this,"STDERR","red")}`);s=new uk.PassThrough,s.pipe(l),s.pipe(a),o=new uk.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t!="undefined"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new wd([new pw,new oi,new nk,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new yd([new Bd,new bd,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=Sd(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=zo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:zo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!po(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new At;o.load(n,{yamlCompatibilityMode:!0});let a=Fg(e,i.identHash),l=[];a.push([i.range,l]);let c={status:qi.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(te(N({},c),{type:wi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(te(N({},c),{type:wi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(te(N({},c),{type:wi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(ll(i,!0),ky(n),{userProvided:!0})}normalizePackage(e){let t=cd(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!qc(s,o))for(let l of a)switch(l.status===qi.Inactive&&(l.status=qi.Redundant),l.type){case wi.Dependency:typeof t.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case wi.PeerDependency:typeof t.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case wi.PeerDependencyMeta:{let c=t.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=qi.Active,_a(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:Pv(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=An(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,rr(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=$o("types",o),l=Ot(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,rr(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(kn(t.dependencies,([,s])=>Pn(s))),t.peerDependencies=new Map(kn(t.peerDependencies,([,s])=>Pn(s))),t}getLimit(e){return _a(this.limits,e,()=>(0,O4.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o!="undefined")return o}return null}},ye=tA;ye.telemetry=null;var ss;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(ss||(ss={}));var ww=class extends ct{constructor({fileName:e,code:t,signal:i}){let n=ye.create(k.cwd()),s=tt(n,e,qe.PATH);super(X.EXCEPTION,`Child ${s} reported an error`,o=>{hve(t,i,{configuration:n,report:o})});this.code=Ek(t,i)}},Ik=class extends ww{constructor({fileName:e,code:t,signal:i,stdout:n,stderr:s}){super({fileName:e,code:t,signal:i});this.stdout=n,this.stderr=s}};function zc(r){return r!==null&&typeof r.fd=="number"}var _c=new Set;function yk(){}function wk(){for(let r of _c)r.kill()}async function ra(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":zc(s)&&(c[0]=s),zc(o)&&(c[1]=o),zc(a)&&(c[2]=a);let u=(0,mk.default)(r,e,{cwd:H.fromPortablePath(t),env:te(N({},i),{PWD:H.fromPortablePath(t)}),stdio:c});_c.add(u),_c.size===1&&(process.on("SIGINT",yk),process.on("SIGTERM",wk)),!zc(s)&&s!==null&&s.pipe(u.stdin),zc(o)||u.stdout.pipe(o,{end:!1}),zc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))zc(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{_c.delete(u),_c.size===0&&(process.off("SIGINT",yk),process.off("SIGTERM",wk)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,m)=>{_c.delete(u),_c.size===0&&(process.off("SIGINT",yk),process.off("SIGTERM",wk)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:Ek(p,m)}):h(new ww({fileName:r,code:p,signal:m}))})})}async function pve(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=H.fromPortablePath(t);typeof i.PWD!="undefined"&&(i=te(N({},i),{PWD:c}));let u=(0,mk.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=ye.create(t),m=tt(p,r,qe.PATH);f(new ct(X.EXCEPTION,`Process ${m} failed to spawn`,y=>{y.reportError(X.EXCEPTION,` ${_o(p,{label:"Thrown Error",value:fo(qe.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:Ek(h,p),stdout:m,stderr:y}):f(new Ik({fileName:r,code:h,signal:p,stdout:m,stderr:y}))})})}var dve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function Ek(r,e){let t=dve.get(e);return typeof t!="undefined"?128+t:r!=null?r:1}function hve(r,e,{configuration:t,report:i}){i.reportError(X.EXCEPTION,` ${_o(t,r!==null?{label:"Exit Code",value:fo(qe.NUMBER,r)}:{label:"Exit Signal",value:fo(qe.CODE,e)})}`)}var ir={};ft(ir,{Method:()=>Cl,RequestError:()=>w5.RequestError,del:()=>xPe,get:()=>SPe,getNetworkSettings:()=>S5,post:()=>HP,put:()=>vPe,request:()=>Od});var E5=ge(Uw()),I5=ge(require("https")),y5=ge(require("http")),MP=ge(is()),KP=ge(m5()),Hw=ge(require("url"));var w5=ge(Uw()),B5=new Map,b5=new Map,wPe=new y5.Agent({keepAlive:!0}),BPe=new I5.Agent({keepAlive:!0});function Q5(r){let e=new Hw.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),{proxy:t}}async function UP(r){return _a(b5,r,()=>K.readFilePromise(r).then(e=>(b5.set(r,e),e)))}function bPe({statusCode:r,statusMessage:e},t){let i=tt(t,r,qe.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return Mg(t,`${i}${e?` (${e})`:""}`,n)}async function jw(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof E5.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${tt(e,"httpTimeout",qe.SETTING)})`);let a=new ct(X.NETWORK_ERROR,o,l=>{s.response&&l.reportError(X.NETWORK_ERROR,` ${_o(e,{label:"Response Code",value:fo(qe.NO_HINT,bPe(s.response,e))})}`),s.request&&(l.reportError(X.NETWORK_ERROR,` ${_o(e,{label:"Request Method",value:fo(qe.NO_HINT,s.request.options.method)})}`),l.reportError(X.NETWORK_ERROR,` ${_o(e,{label:"Request URL",value:fo(qe.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(X.NETWORK_ERROR,` ${_o(e,{label:"Request Redirects",value:fo(qe.NO_HINT,Uv(e,s.request.redirects,qe.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(X.NETWORK_ERROR,` ${_o(e,{label:"Request Retry Count",value:fo(qe.NO_HINT,`${tt(e,s.request.retryCount,qe.NUMBER)} (can be increased via ${tt(e,"httpRetry",qe.SETTING)})`)})}`)});throw a.originalError=s,a}}function S5(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new Hw.URL(r):r;for(let[o,a]of t)if(MP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var Cl;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(Cl||(Cl={}));async function Od(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=Cl.GET}){let a=async()=>await QPe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function SPe(r,n){var s=n,{configuration:e,jsonResponse:t}=s,i=Or(s,["configuration","jsonResponse"]);let o=_a(B5,r,()=>jw(Od(r,null,N({configuration:e},i)),{configuration:e}).then(a=>(B5.set(r,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),t?JSON.parse(o.toString()):o}async function vPe(r,e,n){var s=n,{customErrorMessage:t}=s,i=Or(s,["customErrorMessage"]);return(await jw(Od(r,e,te(N({},i),{method:Cl.PUT})),i)).body}async function HP(r,e,n){var s=n,{customErrorMessage:t}=s,i=Or(s,["customErrorMessage"]);return(await jw(Od(r,e,te(N({},i),{method:Cl.POST})),i)).body}async function xPe(r,i){var n=i,{customErrorMessage:e}=n,t=Or(n,["customErrorMessage"]);return(await jw(Od(r,null,te(N({},t),{method:Cl.DELETE})),t)).body}async function QPe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=Cl.GET}){let a=typeof r=="string"?new Hw.URL(r):r,l=S5(a,{configuration:t});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!MP.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?KP.default.httpOverHttp(Q5(l.httpProxy)):wPe,https:l.httpsProxy?KP.default.httpsOverHttp(Q5(l.httpsProxy)):BPe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),f=t.get("httpRetry"),h=t.get("enableStrictSsl"),p=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:b}=await Promise.resolve().then(()=>ge(Uw())),v=p?await UP(p):void 0,x=m?await UP(m):void 0,T=y?await UP(y):void 0,q=b.extend(N({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:v,certificate:x,key:T}},u));return t.getLimit("networkConcurrency")(()=>q(a))}var Zt={};ft(Zt,{PackageManager:()=>hn,detectPackageManager:()=>K9,executePackageAccessibleBinary:()=>Y9,executePackageScript:()=>nB,executePackageShellcode:()=>rD,executeWorkspaceAccessibleBinary:()=>WDe,executeWorkspaceLifecycleScript:()=>G9,executeWorkspaceScript:()=>j9,getPackageAccessibleBinaries:()=>sB,getWorkspaceAccessibleBinaries:()=>H9,hasPackageScript:()=>YDe,hasWorkspaceScript:()=>tD,makeScriptEnv:()=>Yd,maybeExecuteWorkspaceLifecycleScript:()=>JDe,prepareExternalProject:()=>GDe});var Md={};ft(Md,{getLibzipPromise:()=>fn,getLibzipSync:()=>D5});var P5=ge(x5());var ml=["number","number"],YP;(function(L){L[L.ZIP_ER_OK=0]="ZIP_ER_OK",L[L.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",L[L.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",L[L.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",L[L.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",L[L.ZIP_ER_READ=5]="ZIP_ER_READ",L[L.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",L[L.ZIP_ER_CRC=7]="ZIP_ER_CRC",L[L.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",L[L.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",L[L.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",L[L.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",L[L.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",L[L.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",L[L.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",L[L.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",L[L.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",L[L.ZIP_ER_EOF=17]="ZIP_ER_EOF",L[L.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",L[L.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",L[L.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",L[L.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",L[L.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",L[L.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",L[L.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",L[L.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",L[L.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",L[L.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",L[L.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",L[L.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",L[L.ZIP_ER_TELL=30]="ZIP_ER_TELL",L[L.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(YP||(YP={}));var k5=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:YP,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...ml,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...ml,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...ml,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...ml,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...ml,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...ml,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...ml,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...ml,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var qP=null;function D5(){return qP===null&&(qP=k5((0,P5.default)())),qP}async function fn(){return D5()}var Ud={};ft(Ud,{ShellError:()=>Ms,execute:()=>Xw,globUtils:()=>Yw});var G5=ge(uv()),Y5=ge(require("os")),os=ge(require("stream")),q5=ge(require("util"));var Ms=class extends Error{constructor(e){super(e);this.name="ShellError"}};var Yw={};ft(Yw,{fastGlobOptions:()=>N5,isBraceExpansion:()=>L5,isGlobPattern:()=>kPe,match:()=>PPe,micromatchOptions:()=>Jw});var R5=ge(Zy()),F5=ge(require("fs")),qw=ge(is()),Jw={strictBrackets:!0},N5={onlyDirectories:!1,onlyFiles:!1};function kPe(r){if(!qw.default.scan(r,Jw).isGlob)return!1;try{qw.default.parse(r,Jw)}catch{return!1}return!0}function PPe(r,{cwd:e,baseFs:t}){return(0,R5.default)(r,te(N({},N5),{cwd:H.fromPortablePath(e),fs:WE(F5.default,new Vh(t))}))}function L5(r){return qw.default.scan(r,Jw).isBrace}var T5=ge(SQ()),na=ge(require("stream")),O5=ge(require("string_decoder")),Fn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(Fn||(Fn={}));var Xc=new Set;function JP(){}function WP(){for(let r of Xc)r.kill()}function M5(r,e,t,i){return n=>{let s=n[0]instanceof na.Transform?"pipe":n[0],o=n[1]instanceof na.Transform?"pipe":n[1],a=n[2]instanceof na.Transform?"pipe":n[2],l=(0,T5.default)(r,e,te(N({},i),{stdio:[s,o,a]}));return Xc.add(l),Xc.size===1&&(process.on("SIGINT",JP),process.on("SIGTERM",WP)),n[0]instanceof na.Transform&&n[0].pipe(l.stdin),n[1]instanceof na.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof na.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Xc.delete(l),Xc.size===0&&(process.off("SIGINT",JP),process.off("SIGTERM",WP)),u.code){case"ENOENT":n[2].write(`command not found: ${r} -`),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} -`),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Xc.delete(l),Xc.size===0&&(process.off("SIGINT",JP),process.off("SIGTERM",WP)),c(u!==null?u:129)})})}}}function K5(r){return e=>{let t=e[0]==="pipe"?new na.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var mo=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},U5=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Kd=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new Kd(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new Kd(this,e),n=new U5;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function Ww(r,e){return Kd.start(r,e)}function H5(r,e=null){let t=new na.PassThrough,i=new O5.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function j5(r,{prefix:e}){return{stdout:H5(t=>r.stdout.write(`${t} -`),r.stdout.isTTY?e:null),stderr:H5(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var DPe=(0,q5.promisify)(setTimeout);var zi;(function(t){t[t.Readable=1]="Readable",t[t.Writable=2]="Writable"})(zi||(zi={}));function J5(r,e,t){let i=new os.PassThrough({autoDestroy:!0});switch(r){case Fn.STDIN:(e&1)==1&&t.stdin.pipe(i,{end:!1}),(e&2)==2&&t.stdin instanceof os.Writable&&i.pipe(t.stdin,{end:!1});break;case Fn.STDOUT:(e&1)==1&&t.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(t.stdout,{end:!1});break;case Fn.STDERR:(e&1)==1&&t.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(t.stderr,{end:!1});break;default:throw new Ms(`Bad file descriptor: "${r}"`)}return i}function zw(r,e={}){let t=N(N({},r),e);return t.environment=N(N({},r.environment),e.environment),t.variables=N(N({},r.variables),e.variables),t}var RPe=new Map([["cd",async([r=(0,Y5.homedir)(),...e],t,i)=>{let n=k.resolve(i.cwd,H.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new Ms(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new Ms(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${H.fromPortablePath(t.cwd)} -`),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r=="undefined")throw new Ms("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new Ms(`sleep: invalid time interval '${r}'`);return await DPe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await Ww(i,{stdin:new mo(t.stdin),stdout:new mo(t.stdout),stderr:new mo(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(r[c++]),b=c+y;for(let v=c;ve.baseFs.createReadStream(k.resolve(t.cwd,H.toPortablePath(r[v]))));break;case"<<<":p(()=>{let x=new os.PassThrough;return process.nextTick(()=>{x.write(`${r[v]} -`),x.end()}),x});break;case"<&":p(()=>J5(Number(r[v]),1,t));break;case">":case">>":{let x=k.resolve(t.cwd,H.toPortablePath(r[v]));m(x==="/dev/null"?new os.Writable({autoDestroy:!0,emitClose:!0,write(T,q,Y){setImmediate(Y)}}):e.baseFs.createWriteStream(x,f===">>"?{flags:"a"}:void 0))}break;case">&":m(J5(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new os.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new os.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new os.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await Ww(Hd(r.slice(c+1),e,t),{stdin:new mo(i),stdout:new mo(n),stderr:new mo(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function FPe(r,e,t){let i=[],n=new os.PassThrough;return n.on("data",s=>i.push(s)),await _w(r,e,zw(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function W5(r,e,t){let i=r.map(async s=>{let o=await aA(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function Vw(r){return r.match(/[^ \r\n\t]+/g)||[]}async function z5(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=Vw(s);for(let a=0;a=0&&sr+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function jd(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await z5(te(N({},r),{quoted:!0}),e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?jd({type:"variable",name:i.join(" ")},e,t):jd({type:"number",value:n},e,t)}else return NPe[r.type](await jd(r.left,e,t),await jd(r.right,e,t))}async function aA(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let f=await aA(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await FPe(f.shell,e,t);if(f.quoted)o(h);else{let p=Vw(h);for(let m=0;m0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function Hd(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=H.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD!="undefined"&&(n=te(N({},n),{PWD:i}));let[s,...o]=r;if(s==="command")return M5(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return K5(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function LPe(r,e,t){return i=>{let n=new os.PassThrough,s=_w(r,e,zw(t,{stdin:n}));return{stdin:n,promise:s}}}function TPe(r,e,t){return i=>{let n=new os.PassThrough,s=_w(r,e,t);return{stdin:n,promise:s}}}function _5(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=N({},i.procedures),i.procedures[n]=r,Hd([...e,"__ysh_run_procedure",n],t,i)}}async function V5(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?N({},t):t,a;switch(i.type){case"command":{let l=await aA(i.args,e,t),c=await W5(i.envs,e,t);a=i.envs.length?Hd(l,e,zw(o,{environment:c})):Hd(l,e,o)}break;case"subshell":{let l=await aA(i.args,e,t),c=LPe(i.subshell,e,o);a=_5(c,l,e,o)}break;case"group":{let l=await aA(i.args,e,t),c=TPe(i.group,e,o);a=_5(c,l,e,o)}break;case"envs":{let l=await W5(i.envs,e,t);o.environment=N(N({},o.environment),l),a=Hd(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=Ww(a,{stdin:new mo(o.stdin),stdout:new mo(o.stdout),stderr:new mo(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,Fn.STDOUT);break;case"|&":s=s.pipeTo(a,Fn.STDOUT|Fn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function OPe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return G5.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=j5(t,{prefix:l});return t.backgroundJobs.push(V5(r,e,zw(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} -`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(eg(r))}' has ended -`)})),0}return await V5(r,e,t)}async function MPe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await OPe(a.chain,e,t,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof Ms))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function _w(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await MPe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function X5(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>Gd(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>Gd(e));case"arithmetic":return zP(r.arithmetic);case"shell":return _P(r.shell);default:return!1}}function Gd(r){switch(r.type){case"redirection":return r.args.some(e=>Gd(e));case"argument":return r.segments.some(e=>X5(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function zP(r){switch(r.type){case"variable":return X5(r);case"number":return!1;default:return zP(r.left)||zP(r.right)}}function _P(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=_P(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>Gd(s)))||t.args.some(n=>Gd(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function Xw(r,e=[],{baseFs:t=new ar,builtins:i={},cwd:n=H.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=Yw}={}){let g={};for(let[p,m]of Object.entries(s))typeof m!="undefined"&&(g[p]=m);let f=new Map(RPe);for(let[p,m]of Object.entries(i))f.set(p,m);o===null&&(o=new os.PassThrough,o.end());let h=_E(r,u);if(!_P(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let m=p.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await _w(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var O9=ge(Zw()),M9=ge(gg()),El=ge(require("stream"));var R9=ge(D9()),tB=ge(Ic());var F9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],N9=80,TDe=new Set([X.FETCH_NOT_CACHED,X.UNUSED_CACHE_ENTRY]),ODe=5,rB=tB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} -`,end:r=>`::endgroup:: -`}:tB.default.TRAVIS?{start:r=>`travis_fold:start:${r} -`,end:r=>`travis_fold:end:${r} -`}:tB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r`}:null,L9=new Date,MDe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,KDe=r=>r,iB=KDe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),UDe=MDe&&Object.keys(iB).find(r=>{let e=iB[r];return!(e.date&&(e.date[0]!==L9.getDate()||e.date[1]!==L9.getMonth()+1))})||"default";function T9(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=_A(r===null?0:r);return!t&&r===null?tt(e,n,"grey"):n}function eD(r,{configuration:e,json:t}){let i=T9(r,{configuration:e,json:t});if(!i||r===null||r===X.UNNAMED)return i;let n=X[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Mg(e,i,s)}var Je=class extends Ji{constructor({configuration:e,stdout:t,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=ODe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(nd(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...TDe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=t,e.get("enableProgressBars")&&!i&&t.isTTY&&t.columns>22){let u=e.get("progressBarStyle")||UDe;if(!Object.prototype.hasOwnProperty.call(iB,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=iB[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(t.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}}static async start(e,t){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning(X.UNNAMED,a)};try{await t(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof t!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(X.FETCH_NOT_CACHED,t)}startSectionSync({reportHeader:e,reportFooter:t,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(t==null||t(a-o))}}async startSectionPromise({reportHeader:e,reportFooter:t,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return await n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(t==null||t(a-o))}}startTimerImpl(e,t,i){let n=typeof t=="function"?{}:t;return{cb:typeof t=="function"?t:i,reportHeader:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,rB!==null&&!this.json&&this.includeInfos&&this.stdout.write(rB.start(e))},reportFooter:o=>{this.indent-=1,rB!==null&&!this.json&&this.includeInfos&&this.stdout.write(rB.end(e)),this.configuration.get("enableTimers")&&o>200?this.reportInfo(null,`\u2514 Completed in ${tt(this.configuration,o,qe.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:n.skipIfEmpty}}startTimerSync(e,t,i){let o=this.startTimerImpl(e,t,i),{cb:n}=o,s=Or(o,["cb"]);return this.startSectionSync(s,n)}async startTimerPromise(e,t,i){let o=this.startTimerImpl(e,t,i),{cb:n}=o,s=Or(o,["cb"]);return this.startSectionPromise(s,n)}async startCacheReport(e){let t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{t!==null&&this.reportCacheChanges(t)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${tt(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,t){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${tt(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${t}`)}reportError(e,t){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${tt(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){if(this.progressStyle===null)return te(N({},Promise.resolve()),{stop:()=>{}});if(e.hasProgress&&e.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let t=!1,i=Promise.resolve().then(async()=>{let s={progress:e.hasProgress?0:void 0,title:e.hasTitle?"":void 0};this.progress.set(e,{definition:s,lastScaledSize:e.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:o,title:a}of e)t||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress({delta:1}))};return te(N({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let t=tt(this.configuration,Date.now()-this.startTime,qe.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(X.UNNAMED,i):this.warningCount>0?this.reportWarning(X.UNNAMED,i):this.reportInfo(X.UNNAMED,i)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:t})} -`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:t})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){let i=this.cacheHitCount-e,n=this.cacheMissCount-t;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${It(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${It(this.configuration,this.lastCacheMiss)})`),this.reportInfo(X.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let t of e)t.committed=!0,t.action()}clearProgress({delta:e=0,clear:t=!1}){this.progressStyle!==null&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write(""))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>N9&&(this.progressFrame=(this.progressFrame+1)%F9.length,this.progressTime=e);let t=F9[this.progressFrame];for(let i of this.progress.values()){let n="";if(typeof i.lastScaledSize!="undefined"){let l=this.progressStyle.chars[0].repeat(i.lastScaledSize),c=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize);n=` ${l}${c}`}let s=this.formatName(null),o=s?`${s}: `:"",a=i.definition.title?` ${i.definition.title}`:"";this.stdout.write(`${tt(this.configuration,"\u27A4","blueBright")} ${o}${t}${n}${a} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},N9)}refreshProgress({delta:e=0,force:t=!1}={}){let i=!1,n=!1;if(t||this.progress.size===0)i=!0;else for(let s of this.progress.values()){let o=typeof s.definition.progress!="undefined"?Math.trunc(this.progressMaxScaledSize*s.definition.progress):void 0,a=s.lastScaledSize;s.lastScaledSize=o;let l=s.lastTitle;if(s.lastTitle=s.definition.title,o!==a||(n=l!==s.definition.title)){i=!0;break}}i&&(this.clearProgress({delta:e,clear:n}),this.writeProgress())}truncate(e,{truncate:t}={}){return this.progressStyle===null&&(t=!1),typeof t=="undefined"&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=(0,R9.default)(e,0,this.stdout.columns-1)),e}formatName(e){return T9(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Ur="3.2.2";var hn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(hn||(hn={}));async function AA(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await K.writeFilePromise(k.format({dir:r,name:e,ext:".cmd"}),n)}await K.writeFilePromise(k.join(r,e),`#!/bin/sh -exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function K9(r){let e=await At.tryFind(r);if(e==null?void 0:e.packageManager){let i=lw(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?hn.Yarn1:hn.Yarn2,reason:n};case"npm":return{packageManager:hn.Npm,reason:n};case"pnpm":return{packageManager:hn.Pnpm,reason:n}}}}let t;try{t=await K.readFilePromise(k.join(r,kt.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:hn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:hn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:K.existsSync(k.join(r,"package-lock.json"))?{packageManager:hn.Npm,reason:`found npm's "package-lock.json" lockfile`}:K.existsSync(k.join(r,"pnpm-lock.yaml"))?{packageManager:hn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function Yd({project:r,locator:e,binFolder:t,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=H.fromPortablePath(t);n.BERRY_BIN_FOLDER=H.fromPortablePath(s);let o=process.env.COREPACK_ROOT?H.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([AA(t,"node",process.execPath),...Ur!==null?[AA(t,"run",process.execPath,[o,"run"]),AA(t,"yarn",process.execPath,[o]),AA(t,"yarnpkg",process.execPath,[o]),AA(t,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),r&&(n.INIT_CWD=H.fromPortablePath(r.configuration.startingCwd),n.PROJECT_CWD=H.fromPortablePath(r.cwd)),n.PATH=n.PATH?`${s}${H.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${H.sep}yarn`,n.npm_node_execpath=`${s}${H.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let u=r.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=r.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=Ot(e),n.npm_package_version=g;let f;if(u)f=u.cwd;else{let h=r.storedPackages.get(e.locatorHash);if(!h)throw new Error(`Package for ${It(r.configuration,e)} not found in the project`);let p=r.configuration.getLinkers(),m={project:r,report:new Je({stdout:new El.PassThrough,configuration:r.configuration})},y=p.find(b=>b.supportsPackage(h,m));if(!y)throw new Error(`The package ${It(r.configuration,h)} isn't supported by any of the available linkers`);f=await y.findPackageLocation(h,m)}n.npm_package_json=H.fromPortablePath(k.join(f,kt.manifest))}let a=Ur!==null?`yarn/${Ur}`:`yarn/${Og("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.version} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),r&&await r.configuration.triggerHook(u=>u.setupScriptEnvironment,r,n,async(u,g,f)=>await AA(t,Jr(u),g,f)),n}var HDe=2,jDe=(0,M9.default)(HDe);async function GDe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await jDe(async()=>{await K.mktempPromise(async o=>{let a=k.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:H.fromPortablePath(r),report:i}),g=s&&ea(s)?gd(s):s,f=g?Rs(g):"an external project";c.write(`Packing ${f} from sources -`);let h=await K9(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} - -`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn - -`),p=hn.Yarn2),await K.mktempPromise(async m=>{let y=await Yd({binFolder:m}),v=new Map([[hn.Yarn1,async()=>{let T=n!==null?["workspace",n]:[],q=await ra("yarn",["set","version","classic","--only-if-needed"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if(q.code!==0)return q.code;await K.appendFilePromise(k.join(r,".npmignore"),`/.yarn -`),c.write(` -`),delete y.NODE_ENV;let Y=await ra("yarn",["install"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if(Y.code!==0)return Y.code;c.write(` -`);let $=await ra("yarn",[...T,"pack","--filename",H.fromPortablePath(e)],{cwd:r,env:y,stdin:l,stdout:c,stderr:u});return $.code!==0?$.code:0}],[hn.Yarn2,async()=>{let T=n!==null?["workspace",n]:[];y.YARN_ENABLE_INLINE_BUILDS="1";let q=k.join(r,kt.lockfile);await K.existsPromise(q)||await K.writeFilePromise(q,"");let Y=await ra("yarn",[...T,"pack","--install-if-needed","--filename",H.fromPortablePath(e)],{cwd:r,env:y,stdin:l,stdout:c,stderr:u});return Y.code!==0?Y.code:0}],[hn.Npm,async()=>{if(n!==null){let A=new El.PassThrough,oe=Tg(A);A.pipe(c,{end:!1});let ce=await ra("npm",["--version"],{cwd:r,env:y,stdin:l,stdout:A,stderr:u,end:ss.Never});if(A.end(),ce.code!==0)return c.end(),u.end(),ce.code;let Z=(await oe).toString().trim();if(!qc(Z,">=7.x")){let O=$o(null,"npm"),L=rr(O,Z),de=rr(O,">=7.x");throw new Error(`Workspaces aren't supported by ${sr(t,L)}; please upgrade to ${sr(t,de)} (npm has been detected as the primary package manager for ${tt(t,r,qe.PATH)})`)}}let T=n!==null?["--workspace",n]:[];delete y.npm_config_user_agent,delete y.npm_config_production,delete y.NPM_CONFIG_PRODUCTION,delete y.NODE_ENV;let q=await ra("npm",["install"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if(q.code!==0)return q.code;let Y=new El.PassThrough,$=Tg(Y);Y.pipe(c);let _=await ra("npm",["pack","--silent",...T],{cwd:r,env:y,stdin:l,stdout:Y,stderr:u});if(_.code!==0)return _.code;let ne=(await $).toString().trim().replace(/^.*\n/s,""),ee=k.resolve(r,H.toPortablePath(ne));return await K.renamePromise(ee,e),0}]]).get(p);if(typeof v=="undefined")throw new Error("Assertion failed: Unsupported workflow");let x=await v();if(!(x===0||typeof x=="undefined"))throw K.detachTemp(o),new ct(X.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${x}, logs can be found here: ${tt(t,a,qe.PATH)})`)})})})}async function YDe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return tD(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${It(t.configuration,r)} not found in the project`);return await Is.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Je({stdout:new El.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${It(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new _t(u,{baseFs:s});return(await At.find(Me.dot,{baseFs:g})).scripts.has(e)},{libzip:await fn()})}async function nB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await U9(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await Xw(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function rD(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await K.mktempPromise(async l=>{let{env:c,cwd:u}=await U9(r,{project:n,binFolder:l,cwd:i});return await Xw(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function qDe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await Yd({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await H9(r),([s,[,o]])=>AA(e,Jr(s),process.execPath,[o]))),typeof t=="undefined"&&(t=k.dirname(await K.realpathPromise(k.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function U9(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return qDe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${It(e.configuration,r)} not found in the project`);return await Is.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Je({stdout:new El.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${It(e.configuration,o)} isn't supported by any of the available linkers`);let f=await Yd({project:e,locator:r,binFolder:t,lifecycleScript:n});await Promise.all(Array.from(await sB(r,{project:e}),([y,[,b]])=>AA(t,Jr(y),process.execPath,[b])));let h=await g.findPackageLocation(o,u),p=new _t(h,{baseFs:a}),m=await At.find(Me.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:m,binFolder:t,env:f,cwd:i}},{libzip:await fn()})}async function j9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await nB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function tD(r,e){return r.manifest.scripts.has(e)}async function G9(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await K.mktempPromise(async o=>{let a=k.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${H.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:It(n,r.anchoredLocator),header:l});i.reportInfo(X.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await j9(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw K.detachTemp(o),new ct(X.LIFECYCLE_SCRIPT,`${(0,O9.default)(e)} script failed (exit code ${tt(n,g,qe.NUMBER)}, logs can be found here: ${tt(n,a,qe.PATH)}); run ${tt(n,`yarn ${e}`,qe.CODE)} to investigate`)})}async function JDe(r,e,t){tD(r,e)&&await G9(r,e,t)}async function sB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${It(t,r)} not found in the project`);let s=new El.Writable,o=t.getLinkers(),a={project:e,report:new Je({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${sr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return zo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return zo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return zo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===zo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,H.fromPortablePath(k.resolve(f,p))])}return i}async function H9(r){return await sB(r.anchoredLocator,{project:r.project})}async function Y9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await sB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${It(n.configuration,r)}`);return await K.mktempPromise(async g=>{let[,f]=u,h=await Yd({project:n,locator:r,binFolder:g});await Promise.all(Array.from(c,([m,[,y]])=>AA(h.BERRY_BIN_FOLDER,Jr(m),process.execPath,[y])));let p;try{p=await ra(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await K.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function WDe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await Y9(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Bi={};ft(Bi,{convertToZip:()=>iNe,extractArchiveTo:()=>sNe,makeArchiveFromDirectory:()=>rNe});var T6=ge(require("stream")),O6=ge(P6());var D6=ge(require("os")),R6=ge(gg()),F6=ge(require("worker_threads")),Dl=Symbol("kTaskInfo"),pR=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,R6.default)(Math.max(1,(0,D6.cpus)().length));this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new F6.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[Dl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[Dl].resolve(t),e[Dl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[Dl])==null||i.reject(t),e[Dl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[Dl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[Dl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[Dl]={resolve:n,reject:s},t.postMessage(e)})})}};var M6=ge(L6());async function rNe(r,{baseFs:e=new ar,prefixPath:t=Me.root,compressionLevel:i,inMemory:n=!1}={}){let s=await fn(),o;if(n)o=new li(null,{libzip:s,level:i});else{let l=await K.mktempPromise(),c=k.join(l,"archive.zip");o=new li(c,{create:!0,libzip:s,level:i})}let a=k.resolve(Me.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var K6;async function iNe(r,e){let t=await K.mktempPromise(),i=k.join(t,"archive.zip");return K6||(K6=new pR((0,M6.getContent)())),await K6.run({tmpFile:i,tgz:r,opts:e}),new li(i,{libzip:await fn(),level:e.compressionLevel})}async function*nNe(r){let e=new O6.default.Parse,t=new T6.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function sNe(r,e,{stripComponents:t=0,prefixPath:i=Me.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of nNe(r)){if(n(a))continue;let l=k.normalize(H.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=k.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(k.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,Rr.SAFE_TIME,Rr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(k.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.writeFileSync(u,await Tg(a),{mode:g}),e.utimesSync(u,Rr.SAFE_TIME,Rr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(k.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,Rr.SAFE_TIME,Rr.SAFE_TIME);break}}return e}var ls={};ft(ls,{emitList:()=>oNe,emitTree:()=>q6,treeNodeToJson:()=>Y6,treeNodeToTreeify:()=>G6});var j6=ge(H6());function G6(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Ry(e,l,Tc.BOLD)),typeof c!="undefined"&&g.push(tt(e,c[0],c[1])),g.length===0&&g.push(Ry(e,`${a}`,Tc.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof r.children=="undefined")throw new Error("The root node must only contain children");return i(r.children,t),t}function Y6(r){let e=t=>{var s;if(typeof t.children=="undefined"){if(typeof t.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Oc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value=="undefined"?n:{value:Oc(t.value[0],t.value[1]),children:n}};return e(r)}function oNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));q6({children:n},{configuration:e,stdout:t,json:i})}function q6(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(Y6(l))} -`);return}let s=(0,j6.asTree)(G6(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var J6=ge(require("crypto")),mR=ge(require("fs"));var aNe=8,Nt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,J6.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==lc?`c${o}`:"";this.cacheKey=[aNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Nt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Jg(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=ANe(t).slice(0,10);return`${Jg(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?k.resolve(this.cwd,this.getVersionFilename(e)):t===null||ER(t)!==this.cacheKey?null:k.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?k.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await K.existsPromise(this.cwd))throw new ct(X.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await K.mkdirPromise(this.cwd,{recursive:!0});let e=k.resolve(this.cwd,".gitignore");await K.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await K.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=Or(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new ar,g=()=>{let oe=new li(null,{libzip:q}),ce=k.join(Me.root,ek(e));return oe.mkdirSync(ce,{recursive:!0}),oe.writeJsonSync(k.join(ce,kt.manifest),{name:Ot(e),mocked:!0}),oe},f=async(oe,ce=null)=>{var O;if(ce===null&&((O=o.unstablePackages)==null?void 0:O.has(e.locatorHash)))return null;let Z=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await sw(oe)}`:t;if(ce!==null){let L=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await sw(ce)}`:t;if(Z!==L)throw new ct(X.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&Z!==t){let L;switch(this.check?L="throw":ER(t)!==ER(Z)?L="update":L=this.configuration.get("checksumBehavior"),L){case"ignore":return t;case"update":return Z;default:case"throw":throw new ct(X.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return Z},h=async oe=>{if(!s)throw new Error(`Cache check required but no loader configured for ${It(this.configuration,e)}`);let ce=await s(),Z=ce.getRealPath();return ce.saveAndClose(),await K.chmodPromise(Z,420),await f(oe,Z)},p=async()=>{if(c===null||!await K.existsPromise(c)){let oe=await s(),ce=oe.getRealPath();return oe.saveAndClose(),{source:"loader",path:ce}}return{source:"mirror",path:c}},m=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${It(this.configuration,e)}`);if(this.immutable)throw new ct(X.IMMUTABLE_CACHE,`Cache entry required but missing for ${It(this.configuration,e)}`);let{path:oe,source:ce}=await p(),Z=await f(oe),O=this.getLocatorPath(e,Z,o);if(!O)throw new Error("Assertion failed: Expected the cache path to be available");let L=[];ce!=="mirror"&&c!==null&&L.push(async()=>{let Be=`${c}${this.cacheId}`;await K.copyFilePromise(oe,Be,mR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Be,420),await K.renamePromise(Be,c)}),(!o.mirrorWriteOnly||c===null)&&L.push(async()=>{let Be=`${O}${this.cacheId}`;await K.copyFilePromise(oe,Be,mR.default.constants.COPYFILE_FICLONE),await K.chmodPromise(Be,420),await K.renamePromise(Be,O)});let de=o.mirrorWriteOnly&&c!=null?c:O;return await Promise.all(L.map(Be=>Be())),[!1,de,Z]},y=async()=>{let ce=(async()=>{var je;let Z=this.getLocatorPath(e,t,o),O=Z!==null?await u.existsPromise(Z):!1,L=!!((je=o.mockedPackages)==null?void 0:je.has(e.locatorHash))&&(!this.check||!O),de=L||O,Be=de?i:n;if(Be&&Be(),de){let re=null,se=Z;return L||(re=this.check?await h(se):await f(se)),[L,se,re]}else return m()})();this.mutexes.set(e.locatorHash,ce);try{return await ce}finally{this.mutexes.delete(e.locatorHash)}};for(let oe;oe=this.mutexes.get(e.locatorHash);)await oe;let[b,v,x]=await y();this.markedFiles.add(v);let T,q=await fn(),Y=b?()=>g():()=>new li(v,{baseFs:u,libzip:q,readOnly:!0}),$=new _h(()=>Rv(()=>T=Y(),oe=>`Failed to open the cache entry for ${It(this.configuration,e)}: ${oe}`),k),_=new Na(v,{baseFs:$,pathUtils:k}),ne=()=>{T==null||T.discardAndClose()},ee=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:x;return[_,ne,ee]}};function ER(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function ANe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var cs;(function(t){t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE"})(cs||(cs={}));var pA=class extends Ji{constructor({configuration:e,stdout:t,suggestInstall:i=!0}){super();this.errorCount=0;nd(this,{configuration:e}),this.configuration=e,this.stdout=t,this.suggestInstall=i}static async start(e,t){let i=new this(e);try{await t(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${t} -`)}reportProgress(e){let t=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return te(N({},t),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:!1})}};var i0=ge(require("crypto"));function dA(){}dA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var m=-1*c;m<=c;m+=2){var y=void 0,b=g[m-1],v=g[m+1],x=(v?v.newPos:0)-m;b&&(g[m-1]=void 0);var T=b&&b.newPos+1=a&&x+1>=l)return o(lNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();h()||m()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?m:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&r.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function cNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var nAt=new dA;var W6=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,z6=/\S/,_6=new dA;_6.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!z6.test(r)&&!z6.test(e)};_6.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t0?l(Y.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(q=f).push.apply(q,yR(T.map(function(Z){return(x.added?"+":"-")+Z}))),x.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),oe=/\n$/.test(i),ce=T.length==0&&f.length>ee.oldLines;!A&&ce&&t.length>0&&f.splice(ee.oldLines,0,"\\ No newline at end of file"),(!A&&!ce||!oe)&&f.push("\\ No newline at end of file")}c.push(ee),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>cw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],NR=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=k.join(e.cwd,e.configuration.get("lockfileFilename"));if(!K.existsSync(i))return;let n=await K.readFilePromise(i,"utf8"),s=Si(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=pd(a);if(!l){t.reportWarning(X.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}po(l.range)&&(l=rr(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of JOe){let m=u.match(h);if(m){g=p(c,...m);break}}if(!g){t.reportWarning(X.YARN_IMPORT_FAILED,`${sr(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=qg(l.range),p=pd(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,cn(f,g))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(_x(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var LR=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Aw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Aw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var TR=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var di=class extends Ji{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){let t=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return te(N({},t),{stop:i})}reportJson(e){}async finalize(){}};var iZ=ge(Wx());var CC=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await At.tryFind(this.cwd))!=null?s:new At,this.relativeCwd=k.relative(this.project.cwd,this.cwd)||Me.dot;let e=this.manifest.name?this.manifest.name:$o(null,`${this.computeCandidateName()}-${ln(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=cn(e,t),this.anchoredDescriptor=rr(this.locator,`${oi.protocol}${this.relativeCwd}`),this.anchoredLocator=cn(this.locator,`${oi.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o),n=await(0,iZ.default)(i,{cwd:H.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let o of n){let a=k.resolve(this.cwd,H.toPortablePath(o));K.existsSync(k.join(a,"package.json"))&&this.workspacesCwds.add(a)}}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===oi.protocol&&k.normalize(n)===this.relativeCwd||i===oi.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=po(n);return s?i===oi.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${k.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=At.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=At.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&hd(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=[];for(let t of this.workspacesCwds){let i=this.project.workspacesByCwd.get(t);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let t=k.join(this.cwd,At.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await K.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var oZ=6,WOe=1,zOe=/ *, */g,aZ=/\/$/,_Oe=32,VOe=(0,OR.promisify)(KR.default.gzip),XOe=(0,OR.promisify)(KR.default.gunzip),Ci;(function(t){t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build"})(Ci||(Ci={}));var UR={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},AZ=r=>ln(`${WOe}`,r),ze=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,m,y;if(!e.projectCwd)throw new Pe(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,K.existsSync(k.join(s,kt.manifest))){i=s;break}n=k.dirname(s)}let o=new ze(e.projectCwd,{configuration:e});(p=ye.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=ye.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=ye.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((b,v)=>b+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=tt(e,o.cwd,qe.PATH),u=tt(e,k.relative(o.cwd,i),qe.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Pe(`The nearest package directory (${tt(e,i,qe.PATH)}) doesn't seem to be part of the project declared in ${tt(e,o.cwd,qe.PATH)}. - -${[g,f,h].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=k.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(K.existsSync(e)){let n=await K.readFilePromise(e,"utf8");this.lockFileChecksum=AZ(n);let s=Si(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let t=e;e=[];for(let i of t){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let t=new CC(e,{project:this});await t.setup();let i=this.workspacesByIdent.get(t.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${fi(this.configuration,t.locator)}: ${H.fromPortablePath(e)} conflicts with ${H.fromPortablePath(i.cwd)}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){k.isAbsolute(e)||(e=k.resolve(this.cwd,e)),e=k.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)k.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t=="undefined"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${fi(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Al(e)&&(e=ud(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${sr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(ea(e)&&(e=gd(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${It(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${Cd(this.configuration,e)} (${tt(this.configuration,k.join(e.cwd,kt.manifest),qe.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}forgetResolution(e){let t=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);t(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&t(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let t of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(t,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(t)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)Al(i)&&e.dependencies.set(t,ud(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!sZ.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new di,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(aZ,"")!==e.replace(aZ,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new NR(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new TR(t)]:[i,t],s=new wd([new LR(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],b=ck(),v=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ji.progressViaTitle(),async ne=>{let ee=async O=>{let L=await Lg(async()=>await s.resolve(O,a),je=>`${It(this.configuration,O)}: ${je}`);if(!hd(O,L))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${It(this.configuration,O)} to ${It(this.configuration,L)})`);g.set(L.locatorHash,L);let de=this.configuration.normalizePackage(L);for(let[je,re]of de.dependencies){let se=await this.configuration.reduceHook(he=>he.reduceDependency,re,this,de,re,{resolver:s,resolveOptions:a});if(!fd(re,se))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let be=s.bindDescriptor(se,O,a);de.dependencies.set(je,be)}let Be=go([...de.dependencies.values()].map(je=>Z(je)));return y.push(Be),Be.catch(()=>{}),c.set(de.locatorHash,de),de},A=async O=>{let L=f.get(O.locatorHash);if(typeof L!="undefined")return L;let de=Promise.resolve().then(()=>ee(O));return f.set(O.locatorHash,de),de},oe=async(O,L)=>{let de=await Z(L);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,de.locatorHash),de},ce=async O=>{ne.setTitle(sr(this.configuration,O));let L=this.resolutionAliases.get(O.descriptorHash);if(typeof L!="undefined")return oe(O,this.storedDescriptors.get(L));let de=s.getResolutionDependencies(O,a),Be=new Map(await go(de.map(async se=>{let be=s.bindDescriptor(se,p,a),he=await Z(be);return m.add(he.locatorHash),[se.descriptorHash,he]}))),re=(await Lg(async()=>await s.getCandidates(O,Be,a),se=>`${sr(this.configuration,O)}: ${se}`))[0];if(typeof re=="undefined")throw new Error(`${sr(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,re.locatorHash),A(re)},Z=O=>{let L=h.get(O.descriptorHash);if(typeof L!="undefined")return L;l.set(O.descriptorHash,O);let de=Promise.resolve().then(()=>ce(O));return h.set(O.descriptorHash,de),de};for(let O of this.workspaces){let L=O.anchoredDescriptor;y.push(Z(L))}for(;y.length>0;){let O=[...y];y.length=0,await go(O)}});let x=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),q=new Set,Y=new Map;ZOe({project:this,report:e.report,accessibleLocators:q,volatileDescriptors:x,optionalBuilds:T,peerRequirements:Y,allDescriptors:l,allResolutions:u,allPackages:c});for(let ne of m)T.delete(ne);for(let ne of x)l.delete(ne),u.delete(ne);let $=new Set,_=new Set;for(let ne of c.values())ne.conditions!=null&&(!T.has(ne.locatorHash)||(gw(ne,v)||(gw(ne,b)&&e.report.reportWarningOnce(X.GHOST_ARCHITECTURE,`${It(this.configuration,ne)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${tt(this.configuration,"supportedArchitectures",Ri.SETTING)} setting`),_.add(ne.locatorHash)),$.add(ne.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=q,this.conditionalLocators=$,this.disabledLocators=_,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=Y,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(kn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Rs(h)}])));n===Ci.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Ji.progressViaCounter(l.length);t.reportProgress(u);let g=(0,nZ.default)(_Oe);if(await t.startCacheReport(async()=>{await go(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(ea(h))return;let p;try{p=await o.fetch(h,a)}catch(m){m.message=`${It(this.configuration,h)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var A,oe,ce;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(Z=>{let O=Z.makeInstaller(c),L=O.getCustomDataKey(),de=this.installersCustomData.get(L);return typeof de!="undefined"&&O.attachCustomData(de),[Z,O]})),g=new Map,f=new Map,h=new Map,p=new Map(await go([...this.accessibleLocators].map(async Z=>{let O=this.storedPackages.get(Z);if(!O)throw new Error("Assertion failed: The locator should have been registered");return[Z,await o.fetch(O,a)]}))),m=[];for(let Z of this.accessibleLocators){let O=this.storedPackages.get(Z);if(typeof O=="undefined")throw new Error("Assertion failed: The locator should have been registered");let L=p.get(O.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let de=[],Be=re=>{de.push(re)},je=this.tryWorkspaceByLocator(O);if(je!==null){let re=[],{scripts:se}=je.manifest;for(let he of["preinstall","install","postinstall"])se.has(he)&&re.push([cs.SCRIPT,he]);try{for(let[he,Fe]of u)if(he.supportsPackage(O,c)&&(await Fe.installPackage(O,L,{holdFetchResult:Be})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{de.length===0?(A=L.releaseFs)==null||A.call(L):m.push(go(de).catch(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}let be=k.join(L.packageFs.getRealPath(),L.prefixPath);f.set(O.locatorHash,be),!ea(O)&&re.length>0&&h.set(O.locatorHash,{directives:re,buildLocations:[be]})}else{let re=l.find(he=>he.supportsPackage(O,c));if(!re)throw new ct(X.LINKER_NOT_FOUND,`${It(this.configuration,O)} isn't supported by any available linker`);let se=u.get(re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let be;try{be=await se.installPackage(O,L,{holdFetchResult:Be})}finally{de.length===0?(oe=L.releaseFs)==null||oe.call(L):m.push(go(de).then(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}g.set(O.locatorHash,re),f.set(O.locatorHash,be.packageLocation),be.buildDirective&&be.buildDirective.length>0&&be.packageLocation&&h.set(O.locatorHash,{directives:be.buildDirective,buildLocations:[be.packageLocation]})}}let y=new Map;for(let Z of this.accessibleLocators){let O=this.storedPackages.get(Z);if(!O)throw new Error("Assertion failed: The locator should have been registered");let L=this.tryWorkspaceByLocator(O)!==null,de=async(Be,je)=>{let re=f.get(O.locatorHash);if(typeof re=="undefined")throw new Error(`Assertion failed: The package (${It(this.configuration,O)}) should have been registered`);let se=[];for(let be of O.dependencies.values()){let he=this.storedResolutions.get(be.descriptorHash);if(typeof he=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,be)}, from ${It(this.configuration,O)})should have been registered`);let Fe=this.storedPackages.get(he);if(typeof Fe=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);let Ke=this.tryWorkspaceByLocator(Fe)===null?g.get(he):null;if(typeof Ke=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);Ke===Be||Ke===null?f.get(Fe.locatorHash)!==null&&se.push([be,Fe]):!L&&re!==null&&Fg(y,he).push(re)}re!==null&&await je.attachInternalDependencies(O,se)};if(L)for(let[Be,je]of u)Be.supportsPackage(O,c)&&await de(Be,je);else{let Be=g.get(O.locatorHash);if(!Be)throw new Error("Assertion failed: The linker should have been found");let je=u.get(Be);if(!je)throw new Error("Assertion failed: The installer should have been registered");await de(Be,je)}}for(let[Z,O]of y){let L=this.storedPackages.get(Z);if(!L)throw new Error("Assertion failed: The package should have been registered");let de=g.get(L.locatorHash);if(!de)throw new Error("Assertion failed: The linker should have been found");let Be=u.get(de);if(!Be)throw new Error("Assertion failed: The installer should have been registered");await Be.attachExternalDependents(L,O)}let b=new Map;for(let Z of u.values()){let O=await Z.finalizeInstall();for(let L of(ce=O==null?void 0:O.records)!=null?ce:[])h.set(L.locatorHash,{directives:L.buildDirective,buildLocations:L.buildLocations});typeof(O==null?void 0:O.customData)!="undefined"&&b.set(Z.getCustomDataKey(),O.customData)}if(this.installersCustomData=b,await go(m),n===Ci.SkipBuild)return;let v=new Set(this.storedPackages.keys()),x=new Set(h.keys());for(let Z of x)v.delete(Z);let T=(0,i0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(Z=>Z.globalHashGeneration,this,Z=>{T.update("\0"),T.update(Z)});let q=T.digest("hex"),Y=new Map,$=Z=>{let O=Y.get(Z.locatorHash);if(typeof O!="undefined")return O;let L=this.storedPackages.get(Z.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The package should have been registered");let de=(0,i0.createHash)("sha512");de.update(Z.locatorHash),Y.set(Z.locatorHash,"");for(let Be of L.dependencies.values()){let je=this.storedResolutions.get(Be.descriptorHash);if(typeof je=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,Be)}) should have been registered`);let re=this.storedPackages.get(je);if(typeof re=="undefined")throw new Error("Assertion failed: The package should have been registered");de.update($(re))}return O=de.digest("hex"),Y.set(Z.locatorHash,O),O},_=(Z,O)=>{let L=(0,i0.createHash)("sha512");L.update(q),L.update($(Z));for(let de of O)L.update(de);return L.digest("hex")},ne=new Map,ee=!1;for(;x.size>0;){let Z=x.size,O=[];for(let L of x){let de=this.storedPackages.get(L);if(!de)throw new Error("Assertion failed: The package should have been registered");let Be=!0;for(let se of de.dependencies.values()){let be=this.storedResolutions.get(se.descriptorHash);if(!be)throw new Error(`Assertion failed: The resolution (${sr(this.configuration,se)}) should have been registered`);if(x.has(be)){Be=!1;break}}if(!Be)continue;x.delete(L);let je=h.get(de.locatorHash);if(!je)throw new Error("Assertion failed: The build directive should have been registered");let re=_(de,je.buildLocations);if(this.storedBuildState.get(de.locatorHash)===re){ne.set(de.locatorHash,re);continue}ee||(await this.persistInstallStateFile(),ee=!0),this.storedBuildState.has(de.locatorHash)?t.reportInfo(X.MUST_REBUILD,`${It(this.configuration,de)} must be rebuilt because its dependency tree changed`):t.reportInfo(X.MUST_BUILD,`${It(this.configuration,de)} must be built because it never has been before or the last one failed`);for(let se of je.buildLocations){if(!k.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);O.push((async()=>{for(let[be,he]of je.directives){let Fe=`# This file contains the result of Yarn building a package (${Rs(de)}) -`;switch(be){case cs.SCRIPT:Fe+=`# Script name: ${he} -`;break;case cs.SHELLCODE:Fe+=`# Script code: ${he} -`;break}let Ke=null;if(!await K.mktempPromise(async ve=>{let pe=k.join(ve,"build.log"),{stdout:V,stderr:Qe}=this.configuration.getSubprocessStreams(pe,{header:Fe,prefix:It(this.configuration,de),report:t}),le;try{switch(be){case cs.SCRIPT:le=await nB(de,he,[],{cwd:se,project:this,stdin:Ke,stdout:V,stderr:Qe});break;case cs.SHELLCODE:le=await rD(de,he,[],{cwd:se,project:this,stdin:Ke,stdout:V,stderr:Qe});break}}catch(gt){Qe.write(gt.stack),le=1}if(V.end(),Qe.end(),le===0)return ne.set(de.locatorHash,re),!0;K.detachTemp(ve);let fe=`${It(this.configuration,de)} couldn't be built successfully (exit code ${tt(this.configuration,le,qe.NUMBER)}, logs can be found here: ${tt(this.configuration,pe,qe.PATH)})`;return this.optionalBuilds.has(de.locatorHash)?(t.reportInfo(X.BUILD_FAILED,fe),ne.set(de.locatorHash,re),!0):(t.reportError(X.BUILD_FAILED,fe),!1)}))return}})())}}if(await go(O),Z===x.size){let L=Array.from(x).map(de=>{let Be=this.storedPackages.get(de);if(!Be)throw new Error("Assertion failed: The package should have been registered");return It(this.configuration,Be)}).join(", ");t.reportError(X.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${L})`);break}}this.storedBuildState=ne}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=ye.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=qi.Inactive;let i=k.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await K.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new ct(X.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=tt(this.configuration,g,qe.PACKAGE_EXTENSION);switch(g.status){case qi.Inactive:e.report.reportWarning(X.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case qi.Redundant:e.report.reportWarning(X.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=sc(n,this.generateLockfile());if(c!==n){let u=V6(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(X.FROZEN_LOCKFILE_EXCEPTION,tt(this.configuration,f,qe.ADDED)):f.startsWith("-")?e.report.reportError(X.FROZEN_LOCKFILE_EXCEPTION,tt(this.configuration,f,qe.REMOVED)):e.report.reportInfo(null,tt(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new ct(X.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===qi.Active&&((l=ye.telemetry)==null||l.reportPackageExtension(Oc(g,qe.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==Ci.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>ow(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===Ci.UpdateLockfile){e.report.reportWarning(X.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${tt(this.configuration,"mode=update-lockfile",qe.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>ow(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:oZ,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Pn(f)).sort().join(", "),c=new At;c.version=o.linkType===Qt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof t.__metadata.cacheKey=="undefined"&&(t.__metadata.cacheKey=h),h===t.__metadata.cacheKey?u=p:u=g}t[l]=te(N({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:Rs(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+Ma(t)}async persistLockfile(){let e=k.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await K.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=sc(t,i);n!==t&&(await K.writeFilePromise(e,n),this.lockFileChecksum=AZ(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(UR))e.push(...o);let t=(0,n0.default)(this,e),i=MR.default.serialize(t),n=ln(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await K.mkdirPromise(k.dirname(s),{recursive:!0}),await K.writeFilePromise(s,await VOe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await XOe(await K.readFilePromise(n));s=MR.default.deserialize(o),this.installStateChecksum=ln(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData!="undefined"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,n0.default)(s,UR.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,n0.default)(s,UR.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new di}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Ak(e.cwd,this.cwd)||!await K.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await K.readdirPromise(e.cwd)){if(i.has(a))continue;let l=k.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(X.IMMUTABLE_CACHE,`${tt(this.configuration,k.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(X.UNUSED_CACHE_ENTRY,`${tt(this.configuration,k.basename(l),"magenta")} appears to be unused - removing`),await K.removePromise(l)))}n&&s!==0&&t.reportInfo(X.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function ZOe({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l,tolerateMissingPackages:c=!1}){var ne;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,m=new Map,y=new Map,b=new Map(r.workspaces.map(ee=>{let A=ee.anchoredLocator.locatorHash,oe=i.get(A);if(typeof oe=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,cd(oe)]})),v=()=>{let ee=K.mktempSync(),A=k.join(ee,"stacktrace.log"),oe=String(g.length+1).length,ce=g.map((Z,O)=>`${`${O+1}.`.padStart(oe," ")} ${Rs(Z)} -`).join("");throw K.writeFileSync(A,ce),K.detachTemp(ee),new ct(X.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${H.fromPortablePath(A)}`)},x=ee=>{let A=t.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let oe=i.get(A);if(!oe)throw new Error("Assertion failed: The package could not be found");return oe},T=(ee,A,oe,{top:ce,optional:Z})=>{g.length>1e3&&v(),g.push(A);let O=q(ee,A,oe,{top:ce,optional:Z});return g.pop(),O},q=(ee,A,oe,{top:ce,optional:Z})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),Z||s.delete(A.locatorHash);let O=i.get(A.locatorHash);if(!O){if(c)return;throw new Error(`Assertion failed: The package (${It(r.configuration,A)}) should have been registered`)}let L=[],de=[],Be=[],je=[],re=[];for(let be of Array.from(O.dependencies.values())){if(O.peerDependencies.has(be.identHash)&&O.locatorHash!==ce)continue;if(Al(be))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(be.descriptorHash);let he=Z;if(!he){let Qe=O.dependenciesMeta.get(Ot(be));if(typeof Qe!="undefined"){let le=Qe.get(null);typeof le!="undefined"&&le.optional&&(he=!0)}}let Fe=t.get(be.descriptorHash);if(!Fe){if(c)continue;throw new Error(`Assertion failed: The resolution (${sr(r.configuration,be)}) should have been registered`)}let Ke=b.get(Fe)||i.get(Fe);if(!Ke)throw new Error(`Assertion failed: The package (${Fe}, resolved from ${sr(r.configuration,be)}) should have been registered`);if(Ke.peerDependencies.size===0){T(be,Ke,new Map,{top:ce,optional:he});continue}let ke,ve,pe=new Set,V;de.push(()=>{ke=Vx(be,A.locatorHash),ve=Xx(Ke,A.locatorHash),O.dependencies.delete(be.identHash),O.dependencies.set(ke.identHash,ke),t.set(ke.descriptorHash,ve.locatorHash),e.set(ke.descriptorHash,ke),i.set(ve.locatorHash,ve),L.push([Ke,ke,ve])}),Be.push(()=>{var Qe;V=new Map;for(let le of ve.peerDependencies.values()){let fe=O.dependencies.get(le.identHash);if(!fe&&fd(A,le)&&(ee.identHash===A.identHash?fe=ee:(fe=rr(A,ee.range),e.set(fe.descriptorHash,fe),t.set(fe.descriptorHash,A.locatorHash),a.delete(fe.descriptorHash))),(!fe||fe.range==="missing:")&&ve.dependencies.has(le.identHash)){ve.peerDependencies.delete(le.identHash);continue}fe||(fe=rr(le,"missing:")),ve.dependencies.set(fe.identHash,fe),Al(fe)&&Nc(p,fe.descriptorHash).add(ve.locatorHash),f.set(fe.identHash,fe),fe.range==="missing:"&&pe.add(fe.identHash),V.set(le.identHash,(Qe=oe.get(le.identHash))!=null?Qe:ve.locatorHash)}ve.dependencies=new Map(kn(ve.dependencies,([le,fe])=>Ot(fe)))}),je.push(()=>{if(!i.has(ve.locatorHash))return;let Qe=u.get(Ke.locatorHash);typeof Qe=="number"&&Qe>=2&&v();let le=u.get(Ke.locatorHash),fe=typeof le!="undefined"?le+1:1;u.set(Ke.locatorHash,fe),T(ke,ve,V,{top:ce,optional:he}),u.set(Ke.locatorHash,fe-1)}),re.push(()=>{let Qe=O.dependencies.get(be.identHash);if(typeof Qe=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let le=t.get(Qe.descriptorHash);if(typeof le=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Nc(y,le).add(A.locatorHash),!!i.has(ve.locatorHash)){for(let fe of ve.peerDependencies.values()){let gt=V.get(fe.identHash);if(typeof gt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Fg(Ng(m,gt),Ot(fe)).push(ve.locatorHash)}for(let fe of pe)ve.dependencies.delete(fe)}})}for(let be of[...de,...Be])be();let se;do{se=!0;for(let[be,he,Fe]of L){let Ke=Ng(h,be.locatorHash),ke=ln(...[...Fe.dependencies.values()].map(Qe=>{let le=Qe.range!=="missing:"?t.get(Qe.descriptorHash):"missing:";if(typeof le=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${sr(r.configuration,Qe)} to have been registered`);return le===ce?`${le} (top)`:le}),he.identHash),ve=Ke.get(ke);if(typeof ve=="undefined"){Ke.set(ke,he);continue}if(ve===he)continue;i.delete(Fe.locatorHash),e.delete(he.descriptorHash),t.delete(he.descriptorHash),n.delete(Fe.locatorHash);let pe=p.get(he.descriptorHash)||[],V=[O.locatorHash,...pe];p.delete(he.descriptorHash);for(let Qe of V){let le=i.get(Qe);typeof le!="undefined"&&(le.dependencies.get(he.identHash).descriptorHash!==ve.descriptorHash&&(se=!1),le.dependencies.set(he.identHash,ve))}}}while(!se);for(let be of[...je,...re])be()};for(let ee of r.workspaces){let A=ee.anchoredLocator;a.delete(ee.anchoredDescriptor.descriptorHash),T(ee.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var Y;(function(oe){oe[oe.NotProvided=0]="NotProvided",oe[oe.NotCompatible=1]="NotCompatible"})(Y||(Y={}));let $=[];for(let[ee,A]of y){let oe=i.get(ee);if(typeof oe=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let ce=m.get(ee);if(typeof ce!="undefined")for(let Z of A){let O=i.get(Z);if(typeof O!="undefined")for(let[L,de]of ce){let Be=An(L);if(O.peerDependencies.has(Be.identHash))continue;let je=`p${ln(Z,L,ee).slice(0,5)}`;o.set(je,{subject:Z,requested:Be,rootRequester:ee,allRequesters:de});let re=oe.dependencies.get(Be.identHash);if(typeof re!="undefined"){let se=x(re),be=(ne=se.version)!=null?ne:"0.0.0",he=new Set;for(let Ke of de){let ke=i.get(Ke);if(typeof ke=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let ve=ke.peerDependencies.get(Be.identHash);if(typeof ve=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");he.add(ve.range)}[...he].every(Ke=>{if(Ke.startsWith(oi.protocol)){if(!r.tryWorkspaceByLocator(se))return!1;Ke=Ke.slice(oi.protocol.length),(Ke==="^"||Ke==="~")&&(Ke="*")}return qc(be,Ke)})||$.push({type:1,subject:O,requested:Be,requester:oe,version:be,hash:je,requirementCount:de.length})}else{let se=oe.peerDependenciesMeta.get(L);(se==null?void 0:se.optional)||$.push({type:0,subject:O,requested:Be,requester:oe,hash:je})}}}}let _=[ee=>$x(ee.subject),ee=>Ot(ee.requested),ee=>`${ee.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(X.UNNAMED,`Some peer dependencies are incorrectly met; run ${tt(r.configuration,"yarn explain peer-requirements ",qe.CODE)} for details, where ${tt(r.configuration,"",qe.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ee of kn($,_))switch(ee.type){case 0:l.reportWarning(X.MISSING_PEER_DEPENDENCY,`${It(r.configuration,ee.subject)} doesn't provide ${fi(r.configuration,ee.requested)} (${tt(r.configuration,ee.hash,qe.CODE)}), requested by ${fi(r.configuration,ee.requester)}`);break;case 1:{let A=ee.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(X.INCOMPATIBLE_PEER_DEPENDENCY,`${It(r.configuration,ee.subject)} provides ${fi(r.configuration,ee.requested)} (${tt(r.configuration,ee.hash,qe.CODE)}) with version ${dd(r.configuration,ee.version)}, which doesn't satisfy what ${fi(r.configuration,ee.requester)} ${A}`)}break}})}var ca;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(ca||(ca={}));var mC=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!K.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue(ca.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(ca.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(ca.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(ca.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(ca.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(ca.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(ca.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(ca.DEPENDENCY_COUNT,String(e))}reportValue(e,t){Nc(this.values,e).add(t)}reportEnumerator(e,t){Nc(this.enumerators,e).add(ln(t))}reportHit(e,t="*"){let i=Ng(this.hits,e),n=_a(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return k.join(e,"telemetry.json")}sendReport(e){var u,g,f;let t=this.getRegistryPath(),i;try{i=K.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{K.mkdirSync(k.dirname(t),{recursive:!0}),K.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>HP(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let m=p;m.userId=h,m.reportType="primary";for(let v of Object.keys((f=m.enumerators)!=null?f:{}))m.enumerators[v]=m.enumerators[v].length;c(m);let y=new Map,b=20;for(let[v,x]of Object.entries(m.values))x.length>0&&y.set(v,x.slice(0,b));for(;y.size>0;){let v={};v.userId=h,v.reportType="secondary",v.metrics={};for(let[x,T]of y)v.metrics[x]=T.shift(),T.length===0&&y.delete(x);c(v)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),t;try{t=K.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},b=y[m]=(u=y[m])!=null?u:{};for(let[v,x]of this.hits.get(m))b[v]=((g=b[v])!=null?g:0)+x}for(let m of["values","enumerators"])for(let y of this[m].keys()){let b=s[m]=(f=s[m])!=null?f:{};b[y]=[...new Set([...(h=b[y])!=null?h:[],...(p=this[m].get(y))!=null?p:[]])]}K.mkdirSync(k.dirname(e),{recursive:!0}),K.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var HR=ge(require("child_process")),lZ=ge(Ic());var jR=ge(require("fs"));var Lf=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function $Oe(r){let e=H.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,HR.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:te(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,HR.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:te(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function s0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new ws({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,b,v,x;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!Se.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Wt.satisfiesWithPrereleases(s,o))throw new Pe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await ye.find(H.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=H.toPortablePath(H.resolve(process.argv[1])),h=T=>K.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!K.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{$Oe(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!lZ.isCI&&process.stdout.isTTY&&(ye.telemetry=new mC(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=ye.telemetry)==null||m.reportVersion(r);for(let[$,_]of l.plugins.entries()){Lf.has((b=(y=$.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?b:"")&&((v=ye.telemetry)==null||v.reportPluginName($));for(let ne of _.commands||[])n.register(ne)}let q=n.process(process.argv.slice(2));q.help||(x=ye.telemetry)==null||x.reportCommandName(q.path.join(" "));let Y=q.cwd;if(typeof Y!="undefined"&&!g){let $=(0,jR.realpathSync)(process.cwd()),_=(0,jR.realpathSync)(Y);if($!==_){process.chdir(Y),await t();return}}await n.runExit(q,{cwd:H.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>K.rmtempPromise())}function cZ(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var GC={};ft(GC,{BaseCommand:()=>Le,WorkspaceRequiredError:()=>ht,getDynamicLibs:()=>bre,getPluginConfiguration:()=>L0,main:()=>s0,openWorkspace:()=>Wf,pluginCommands:()=>Lf});var Le=class extends Re{constructor(){super(...arguments);this.cwd=J.String("--cwd",{hidden:!0})}};var ht=class extends Pe{constructor(e,t){let i=k.relative(e,t),n=k.join(e,At.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var sGe=ge(ri());ys();var oGe=ge(UF()),bre=()=>new Map([["@yarnpkg/cli",GC],["@yarnpkg/core",EC],["@yarnpkg/fslib",Zh],["@yarnpkg/libzip",Md],["@yarnpkg/parsers",op],["@yarnpkg/shell",Ud],["clipanion",Cp],["semver",sGe],["typanion",cg],["yup",oGe]]);async function Wf(r,e){let{project:t,workspace:i}=await ze.find(r,e);if(!i)throw new ht(t.cwd,e);return i}var Q_e=ge(ri());ys();var S_e=ge(UF());var GN={};ft(GN,{dedupeUtils:()=>wN,default:()=>mWe,suggestUtils:()=>lN});var Sae=ge(Ic());var Fne=ge(WC());ys();var lN={};ft(lN,{Modifier:()=>pa,Strategy:()=>Vr,Target:()=>Hr,WorkspaceModifier:()=>Xf,applyModifier:()=>kne,extractDescriptorFromPath:()=>gN,extractRangeModifier:()=>xne,fetchDescriptorFrom:()=>uN,findProjectDescriptors:()=>Rne,getModifier:()=>zC,getSuggestedDescriptors:()=>_C,makeWorkspaceDescriptor:()=>Dne,toWorkspaceModifier:()=>Pne});var cN=ge(ri()),bYe="workspace:",Hr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(Hr||(Hr={}));var pa;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(pa||(pa={}));var Xf;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(Xf||(Xf={}));var Vr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Vr||(Vr={}));function zC(r,e){return r.exact?pa.EXACT:r.caret?pa.CARET:r.tilde?pa.TILDE:e.configuration.get("defaultSemverRangePrefix")}var QYe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function xne(r,{project:e}){let t=r.match(QYe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function kne(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return cN.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Pne(r){switch(r){case pa.CARET:return Xf.CARET;case pa.TILDE:return Xf.TILDE;case pa.EXACT:return Xf.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Dne(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${bYe}${Pne(e)}`)}async function Rne(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t===Hr.PEER){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t===Hr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function gN(r,{cwd:e,workspace:t}){return await SYe(async i=>{k.isAbsolute(r)||(r=k.relative(t.cwd,k.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await uN(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new di,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await At.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,r)})}async function _C(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t!="undefined"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Vr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Vr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await Rne(r,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes(Vr.KEEP))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;m+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:m})}});break;case Vr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===r.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Vr.PROJECT:await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(r);if(h===null)return;let p=Dne(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ae.pretty(e.configuration,h.relativeCwd,ae.Type.PATH)})`})});break;case Vr.LATEST:await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n===Hr.PEER)c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ae.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await uN(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});h&&(h=kne(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function uN(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new di,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=te(N({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:m,source:y,params:b,selector:v}=P.parseRange(P.convertToManifestRange(p.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),cN.default.valid(v)&&s!==!1){let x=typeof s=="string"?s:o.range;v=xne(x,{project:t})+v}return P.makeDescriptor(p,P.makeRange({protocol:m,source:y,params:b,selector:v}))}async function SYe(r){return await K.mktempPromise(async e=>{let t=ye.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Nt(e,{configuration:t,check:!1,immutable:!1}))})}var VC=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=J.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=J.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=J.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=J.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=J.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=J.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=J.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=J.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=J.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.silent=J.Boolean("--silent",{hidden:!0});this.packages=J.Rest()}async execute(){var m;let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=zC(this,t),a=[...s?[Vr.REUSE]:[],Vr.PROJECT,...this.cached?[Vr.CACHE]:[],Vr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async y=>{let b=y.match(/^\.{0,2}\//)?await gN(y,{cwd:this.context.cwd,workspace:i}):P.tryParseDescriptor(y),v=y.match(/^(https?:|git@github)/);if(v)throw new Pe(`It seems you are trying to add a package using a ${ae.pretty(e,`${v[0]}...`,Ri.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${ae.pretty(e,"yarn add",Ri.CODE)} ${ae.pretty(e,P.makeDescriptor(P.makeIdent(null,"my-package"),`${v[0]}...`),Ri.DESCRIPTOR)}`);if(!b)throw new Pe(`The ${ae.pretty(e,y,Ri.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let x=vYe(i,b,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),T=await _C(b,{project:t,workspace:i,cache:n,target:x,modifier:o,strategies:a,maxResults:l});return[b,T,x]})),u=await pA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[b,{suggestions:v,rejections:x}]of c)if(v.filter(q=>q.descriptor!==null).length===0){let[q]=x;if(typeof q=="undefined")throw new Error("Assertion failed: Expected an error to have been set");t.configuration.get("enableNetwork")?y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range`):y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),y.reportSeparator(),y.reportExceptionOnce(q)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:y},b]of c){let v,x=y.filter($=>$.descriptor!==null),T=x[0].descriptor,q=x.every($=>P.areDescriptorsEqual($.descriptor,T));x.length===1||q?v=T:(g=!0,{answer:v}=await(0,Fne.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:y.map(({descriptor:$,name:_,reason:ne})=>$?{name:_,hint:ne,descriptor:$}:{name:_,hint:ne,disabled:!0}),onCancel:()=>process.exit(130),result($){return this.find($,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Y=i.manifest[b].get(v.identHash);(typeof Y=="undefined"||Y.descriptorHash!==v.descriptorHash)&&(i.manifest[b].set(v.identHash,v),this.optional&&(b==="dependencies"?i.manifest.ensureDependencyMeta(te(N({},v),{range:"unknown"})).optional=!0:b==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(te(N({},v),{range:"unknown"})).optional=!0)),typeof Y=="undefined"?f.push([i,b,v,a]):h.push([i,b,Y,v]))}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` -`),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async y=>{await t.install({cache:n,report:y,mode:this.mode})})).exitCode()}};VC.paths=[["add"]],VC.usage=Re.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var Nne=VC;function vYe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest[Hr.REGULAR].has(e.identHash),a=r.manifest[Hr.DEVELOPMENT].has(e.identHash),l=r.manifest[Hr.PEER].has(e.identHash);if((t||i)&&o)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?Hr.PEER:t||n?Hr.DEVELOPMENT:o?Hr.REGULAR:a?Hr.DEVELOPMENT:Hr.REGULAR}var XC=class extends Le{constructor(){super(...arguments);this.verbose=J.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=J.String({required:!1})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,locator:i}=await ze.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){let o=(await Zt.getPackageAccessibleBinaries(i,{project:t})).get(this.name);if(!o)throw new Pe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} -`),0}return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Zt.getPackageAccessibleBinaries(i,{project:t}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:P.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${P.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};XC.paths=[["bin"]],XC.usage=Re.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var Lne=XC;var ZC=class extends Le{constructor(){super(...arguments);this.mirror=J.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=J.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=await Nt.find(e);return(await Je.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&t.mirrorCwd!==null,s=!this.mirror;n&&(await K.removePromise(t.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await K.removePromise(t.cwd)})).exitCode()}};ZC.paths=[["cache","clean"],["cache","clear"]],ZC.usage=Re.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Tne=ZC;var One=ge(C0()),fN=ge(require("util")),$C=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=J.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(t)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${t}"`);let s=e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=Se.convertMapsToIndexableObjects(s),a=i?(0,One.default)(o,i):o,l=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} -`),l.exitCode();fN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,fN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} -`)}return l.exitCode()}};$C.paths=[["config","get"]],$C.usage=Re.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var Mne=$C;var Vse=ge(EN()),Xse=ge(C0()),Zse=ge(_se()),IN=ge(require("util")),tm=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=J.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=J.String();this.value=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new Pe("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>ye.updateHomeConfiguration(h):h=>ye.updateConfiguration(t(),h))(h=>{if(n){let p=(0,Vse.default)(h);return(0,Zse.default)(p,this.name,o),p}else return te(N({},h),{[i]:o})});let c=(await ye.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=Se.convertMapsToIndexableObjects(c),g=n?(0,Xse.default)(u,n):u;return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{IN.inspect.styles.name="cyan",h.reportInfo(X.UNNAMED,`Successfully set ${this.name} to ${(0,IN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};tm.paths=[["config","set"]],tm.usage=Re.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var $se=tm;var Aoe=ge(EN()),loe=ge(yC()),coe=ge(aoe()),rm=class extends Le{constructor(){super(...arguments);this.home=J.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>ye.updateHomeConfiguration(l):l=>ye.updateConfiguration(t(),l);return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,loe.default)(u,this.name))return l.reportWarning(X.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,Aoe.default)(u):N({},u);return(0,coe.default)(g,this.name),g}),c||l.reportInfo(X.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};rm.paths=[["config","unset"]],rm.usage=Re.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var uoe=rm;var yN=ge(require("util")),im=class extends Le{constructor(){super(...arguments);this.verbose=J.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=J.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError(X.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=Se.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(N({key:s,effective:a,source:l},o))}}else{let n=Se.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,yN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,yN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};im.paths=[["config"]],im.usage=Re.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});var goe=im;ys();var wN={};ft(wN,{Strategy:()=>Bu,acceptedStrategies:()=>P3e,dedupe:()=>BN});var foe=ge(is()),Bu;(function(e){e.HIGHEST="highest"})(Bu||(Bu={}));var P3e=new Set(Object.values(Bu)),D3e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Se.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!foe.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c=="undefined"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let b=r.originalPackages.get(y);if(typeof b=="undefined")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return b.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,m=r.originalPackages.get(p);if(typeof m=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function BN(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new di,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await D3e[e](r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Ji.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(b=>b.then(v=>{if(v===null)return;p++;let{descriptor:x,currentPackage:T,updatedPackage:q}=v;n.reportInfo(X.UNNAMED,`${P.prettyDescriptor(s,x)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,q)}`),n.reportJson({descriptor:P.stringifyDescriptor(x),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(q)}),r.storedResolutions.set(x.descriptorHash,q.locatorHash)}).finally(()=>h.tick())));let m;switch(p){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${p} packages`}let y=ae.pretty(s,e,ae.Type.CODE);return n.reportInfo(X.UNNAMED,`${m} can be deduped using the ${y} strategy`),p})}var nm=class extends Le{constructor(){super(...arguments);this.strategy=J.String("-s,--strategy",Bu.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:nn(Bu)});this.check=J.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=await Nt.find(e);await t.restoreInstallState({restoreResolutions:!1});let n=0,s=await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await BN(t,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await t.install({cache:i,report:a,mode:this.mode})})).exitCode()}};nm.paths=[["dedupe"]],nm.usage=Re.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var hoe=nm;var J0=class extends Le{async execute(){let{plugins:e}=await ye.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=ws.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=doe()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};J0.paths=[["--clipanion=definitions"]];var Coe=J0;var W0=class extends Le{async execute(){this.context.stdout.write(this.cli.usage(null))}};W0.paths=[["help"],["--help"],["-h"]];var moe=W0;var bN=class extends Le{constructor(){super(...arguments);this.leadingArgument=J.String();this.args=J.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let e=k.resolve(this.context.cwd,H.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Eoe=bN;var z0=class extends Le{async execute(){this.context.stdout.write(`${Ur||""} -`)}};z0.paths=[["-v"],["--version"]];var Ioe=z0;var sm=class extends Le{constructor(){super(...arguments);this.commandName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,locator:i}=await ze.find(e,this.context.cwd);return await t.restoreInstallState(),await Zt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:t})}};sm.paths=[["exec"]],sm.usage=Re.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var yoe=sm;ys();var om=class extends Le{constructor(){super(...arguments);this.hash=J.String({required:!1,validator:fp(gp(),[hp(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return await t.restoreInstallState({restoreResolutions:!1}),await t.applyLightResolution(),typeof this.hash!="undefined"?await R3e(this.hash,t,{stdout:this.context.stdout}):(await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>P.stringifyLocator(t.storedPackages.get(a.subject)),([,a])=>P.stringifyIdent(a.requested)];for(let[a,l]of Se.sortMap(t.peerRequirements,s)){let c=t.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=t.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=ae.pretty(e,a,ae.Type.CODE),h=P.prettyLocator(e,c),p=P.prettyIdent(e,l.requested),m=P.prettyIdent(e,u),y=l.allRequesters.length-1,b=`descendant${y===1?"":"s"}`,v=y>0?` and ${y} ${b}`:"",x=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${x} ${p} to ${m}${v}`)}})).exitCode()}};om.paths=[["explain","peer-requirements"]],om.usage=Re.Usage({description:"explain a set of peer requirements",details:` - A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. - - When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. - - When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var woe=om;async function R3e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await Je.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var b,v;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(b=a.dependencies.get(n.requested.identHash))!=null?b:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(x=>{let T=e.storedPackages.get(x);if(typeof T=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let q=P.devirtualizeLocator(T),Y=e.storedPackages.get(q.locatorHash);if(typeof Y=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let $=Y.peerDependencies.get(n.requested.identHash);if(typeof $=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:$}});if(g!==null){let x=f.every(({peerDependency:T})=>Wt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo(X.UNNAMED,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:"")}, which ${x?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(X.UNNAMED,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ae.mark(i),p=[];for(let{pkg:x,peerDependency:T}of Se.sortMap(f,q=>P.stringifyLocator(q.pkg))){let Y=(g!==null?Wt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(x),prettyLocator:P.prettyLocator(i,x),prettyRange:P.prettyRange(i,T.range),mark:Y})}let m=Math.max(...p.map(({stringifiedLocator:x})=>x.length)),y=Math.max(...p.map(({prettyRange:x})=>x.length));for(let{stringifiedLocator:x,prettyLocator:T,prettyRange:q,mark:Y}of Se.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(m+(T.length-x.length)," ")} \u2192 ${q.padEnd(y," ")} ${Y}`);p.length>1&&(o.reportSeparator(),o.reportInfo(X.UNNAMED,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}ys();var Boe=ge(ri()),am=class extends Le{constructor(){super(...arguments);this.onlyIfNeeded=J.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t=()=>{if(typeof Ur=="undefined")throw new Pe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=t();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await Am(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await Am(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))i=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.version))i=`file://${H.resolve(this.version)}`;else if(Wt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Wt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Wt.validRange(this.version))i=`https://repo.yarnpkg.com/${await F3e(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Pe(`Invalid version descriptor "${this.version}"`);return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo(X.UNNAMED,`Downloading ${ae.pretty(e,i,Ri.URL)}`),a=await K.readFilePromise(H.toPortablePath(i.slice(o.length)))):(s.reportInfo(X.UNNAMED,`Retrieving ${ae.pretty(e,i,Ri.PATH)}`),a=await ir.get(i,{configuration:e})),await QN(e,null,a,{report:s})})).exitCode()}};am.paths=[["set","version"]],am.usage=Re.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});var boe=am;async function F3e(r,e){let i=(await ir.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Wt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Pe(`No matching release found for range ${ae.pretty(r,e,ae.Type.RANGE)}.`);return i[0]}async function Am(r,e){let t=await ir.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new Pe(`Tag ${ae.pretty(r,e,ae.Type.RANGE)} not found`);return t.latest[e]}async function QN(r,e,t,{report:i}){var g;e===null&&await K.mktempPromise(async f=>{let h=k.join(f,"yarn.cjs");await K.writeFilePromise(h,t);let{stdout:p}=await Nr.execvp(process.execPath,[H.fromPortablePath(h),"--version"],{cwd:f,env:te(N({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!Boe.default.valid(e))throw new Error(`Invalid semver version. ${ae.pretty(r,"yarn --version",ae.Type.CODE)} returned: -${e}`)});let n=(g=r.projectCwd)!=null?g:r.startingCwd,s=k.resolve(n,".yarn/releases"),o=k.resolve(s,`yarn-${e}.cjs`),a=k.relative(r.startingCwd,o),l=k.relative(n,o),c=r.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo(X.UNNAMED,`Saving the new release in ${ae.pretty(r,a,"magenta")}`),await K.removePromise(k.dirname(o)),await K.mkdirPromise(k.dirname(o),{recursive:!0}),await K.writeFilePromise(o,t,{mode:493}),u){await ye.updateConfiguration(n,{yarnPath:l});let f=await At.tryFind(n)||new At;f.packageManager=`yarn@${e&&Se.isTaggedYarnVersion(e)?e:await Am(r,"stable")}`;let h={};f.exportTo(h);let p=k.join(n,At.fileName),m=`${JSON.stringify(h,null,f.indent)} -`;await K.changeFilePromise(p,m,{automaticNewlines:!0})}}function Qoe(r){return X[II(r)]}var N3e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function L3e(r){let t=`https://repo.yarnpkg.com/${Se.isTaggedYarnVersion(Ur)?Ur:await Am(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await ir.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(N3e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=Qoe(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var lm=class extends Le{constructor(){super(...arguments);this.code=J.String({required:!1,validator:fp(gp(),[hp(/^YN[0-9]{4}$/)])});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);if(typeof this.code!="undefined"){let t=Qoe(this.code),i=ae.pretty(e,t,ae.Type.CODE),n=this.cli.format().header(`${this.code} - ${i}`),o=(await L3e(e)).get(this.code),a=typeof o!="undefined"?ae.jsonOrPretty(this.json,e,ae.tuple(ae.Type.MARKDOWN,{text:o,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. - -You can help us by editing this page on GitHub \u{1F642}: -${ae.jsonOrPretty(this.json,e,ae.tuple(ae.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} -`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:t,details:a})} -`):this.context.stdout.write(`${n} - -${a} -`)}else{let t={children:Se.mapAndFilter(Object.entries(X),([i,n])=>Number.isNaN(Number(i))?Se.mapAndFilter.skip:{label:_A(Number(i)),value:ae.tuple(ae.Type.CODE,n)})};ls.emitTree(t,{configuration:e,stdout:this.context.stdout,json:this.json})}}};lm.paths=[["explain"]],lm.usage=Re.Usage({description:"explain an error code",details:` - When the code argument is specified, this command prints its name and its details. - - When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Soe=lm;var voe=ge(is()),cm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=J.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=J.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=J.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=J.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=J.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=J.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i&&!this.all)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(x,{recursive:T})=>{let q=x.anchoredLocator.locatorHash,Y=new Map,$=[q];for(;$.length>0;){let _=$.shift();if(Y.has(_))continue;let ne=t.storedPackages.get(_);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(Y.set(_,ne),P.isVirtualLocator(ne)&&$.push(P.devirtualizeLocator(ne).locatorHash),!(!T&&_!==q))for(let ee of ne.dependencies.values()){let A=t.storedResolutions.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");$.push(A)}}return Y.values()},a=({recursive:x})=>{let T=new Map;for(let q of t.workspaces)for(let Y of o(q,{recursive:x}))T.set(Y.locatorHash,Y);return T.values()},l=({all:x,recursive:T})=>x&&T?t.storedPackages.values():x?a({recursive:T}):o(i,{recursive:T}),c=({all:x,recursive:T})=>{let q=l({all:x,recursive:T}),Y=this.patterns.map(ne=>{let ee=P.parseLocator(ne),A=voe.default.makeRe(P.stringifyIdent(ee)),oe=P.isVirtualLocator(ee),ce=oe?P.devirtualizeLocator(ee):ee;return Z=>{let O=P.stringifyIdent(Z);if(!A.test(O))return!1;if(ee.reference==="unknown")return!0;let L=P.isVirtualLocator(Z),de=L?P.devirtualizeLocator(Z):Z;return!(oe&&L&&ee.reference!==Z.reference||ce.reference!==de.reference)}}),$=Se.sortMap([...q],ne=>P.stringifyLocator(ne));return{selection:$.filter(ne=>Y.length===0||Y.some(ee=>ee(ne))),sortedLookup:$}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new Pe("No package matched your request");let f=new Map;if(this.dependents)for(let x of g)for(let T of x.dependencies.values()){let q=t.storedResolutions.get(T.descriptorHash);if(typeof q=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");Se.getArrayWithDefault(f,q).push(x)}let h=new Map;for(let x of g){if(!P.isVirtualLocator(x))continue;let T=P.devirtualizeLocator(x);Se.getArrayWithDefault(h,T.locatorHash).push(x)}let p={},m={children:p},y=e.makeFetcher(),b={project:t,fetcher:y,cache:n,checksums:t.storedChecksums,report:new di,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},v=[async(x,T,q)=>{var _,ne;if(!T.has("manifest"))return;let Y=await y.fetch(x,b),$;try{$=await At.find(Y.prefixPath,{baseFs:Y.packageFs})}finally{(_=Y.releaseFs)==null||_.call(Y)}q("Manifest",{License:ae.tuple(ae.Type.NO_HINT,$.license),Homepage:ae.tuple(ae.Type.URL,(ne=$.raw.homepage)!=null?ne:null)})},async(x,T,q)=>{var A;if(!T.has("cache"))return;let Y={mockedPackages:t.disabledLocators,unstablePackages:t.conditionalLocators},$=(A=t.storedChecksums.get(x.locatorHash))!=null?A:null,_=n.getLocatorPath(x,$,Y),ne;if(_!==null)try{ne=K.statSync(_)}catch{}let ee=typeof ne!="undefined"?[ne.size,ae.Type.SIZE]:void 0;q("Cache",{Checksum:ae.tuple(ae.Type.NO_HINT,$),Path:ae.tuple(ae.Type.PATH,_),Size:ee})}];for(let x of u){let T=P.isVirtualLocator(x);if(!this.virtuals&&T)continue;let q={},Y={value:[x,ae.Type.LOCATOR],children:q};if(p[P.stringifyLocator(x)]=Y,this.nameOnly){delete Y.children;continue}let $=h.get(x.locatorHash);typeof $!="undefined"&&(q.Instances={label:"Instances",value:ae.tuple(ae.Type.NUMBER,$.length)}),q.Version={label:"Version",value:ae.tuple(ae.Type.NO_HINT,x.version)};let _=(ee,A)=>{let oe={};if(q[ee]=oe,Array.isArray(A))oe.children=A.map(ce=>({value:ce}));else{let ce={};oe.children=ce;for(let[Z,O]of Object.entries(A))typeof O!="undefined"&&(ce[Z]={label:Z,value:O})}};if(!T){for(let ee of v)await ee(x,s,_);await e.triggerHook(ee=>ee.fetchPackageInfo,x,s,_)}x.bin.size>0&&!T&&_("Exported Binaries",[...x.bin.keys()].map(ee=>ae.tuple(ae.Type.PATH,ee)));let ne=f.get(x.locatorHash);typeof ne!="undefined"&&ne.length>0&&_("Dependents",ne.map(ee=>ae.tuple(ae.Type.LOCATOR,ee))),x.dependencies.size>0&&!T&&_("Dependencies",[...x.dependencies.values()].map(ee=>{var ce;let A=t.storedResolutions.get(ee.descriptorHash),oe=typeof A!="undefined"&&(ce=t.storedPackages.get(A))!=null?ce:null;return ae.tuple(ae.Type.RESOLUTION,{descriptor:ee,locator:oe})})),x.peerDependencies.size>0&&T&&_("Peer dependencies",[...x.peerDependencies.values()].map(ee=>{var Z,O;let A=x.dependencies.get(ee.identHash),oe=typeof A!="undefined"&&(Z=t.storedResolutions.get(A.descriptorHash))!=null?Z:null,ce=oe!==null&&(O=t.storedPackages.get(oe))!=null?O:null;return ae.tuple(ae.Type.RESOLUTION,{descriptor:ee,locator:ce})}))}ls.emitTree(m,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};cm.paths=[["info"]],cm.usage=Re.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var xoe=cm;var _0=ge(Ic());ys();var um=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=J.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=J.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=J.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=J.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.cacheFolder=J.String("--cache-folder",{hidden:!0});this.frozenLockfile=J.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=J.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=J.Boolean("--non-interactive",{hidden:!0});this.preferOffline=J.Boolean("--prefer-offline",{hidden:!0});this.production=J.Boolean("--production",{hidden:!0});this.registry=J.String("--registry",{hidden:!0});this.silent=J.Boolean("--silent",{hidden:!0});this.networkTimeout=J.String("--network-timeout",{hidden:!0})}async execute(){var g;let e=await ye.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let t=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(f,{error:h})=>{let p=await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async m=>{h?m.reportError(X.DEPRECATED_CLI_SETTINGS,f):m.reportWarning(X.DEPRECATED_CLI_SETTINGS,f)});return p.hasErrors()?p.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let f=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!_0.default.VERCEL});if(f!==null)return f}if(typeof this.registry!="undefined"){let f=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(f!==null)return f}if(typeof this.preferOffline!="undefined"){let f=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!_0.default.VERCEL});if(f!==null)return f}if(typeof this.production!="undefined"){let f=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(f!==null)return f}if(typeof this.nonInteractive!="undefined"){let f=await i("The --non-interactive option is deprecated",{error:!t});if(f!==null)return f}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let f=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!_0.default.NETLIFY});if(f!==null)return f}let n=this.mode===Ci.UpdateLockfile;if(n&&(this.immutable||this.immutableCache))throw new Pe(`${ae.pretty(e,"--immutable",ae.Type.CODE)} and ${ae.pretty(e,"--immutable-cache",ae.Type.CODE)} cannot be used with ${ae.pretty(e,"--mode=update-lockfile",ae.Type.CODE)}`);let s=((g=this.immutable)!=null?g:e.get("enableImmutableInstalls"))&&!n,o=this.immutableCache&&!n;if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{await T3e(e,s)&&(h.reportInfo(X.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let f=e.projectCwd,h;try{h=await K.readFilePromise(k.join(f,kt.lockfile),"utf8")}catch{}if(h==null?void 0:h.includes("yarn lockfile v1")){let p=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async m=>{m.reportInfo(X.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),m.reportSeparator(),e.use("",{nodeLinker:"node-modules"},f,{overwrite:!0}),await ye.updateConfiguration(f,{nodeLinker:"node-modules"})});if(p.hasErrors())return p.exitCode()}}if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{var p;((p=ye.telemetry)==null?void 0:p.isNew)&&(h.reportInfo(X.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),h.reportInfo(X.TELEMETRY_NOTICE,`Run ${ae.pretty(e,"yarn config set --home enableTelemetry 0",ae.Type.CODE)} to disable`),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}let{project:a,workspace:l}=await ze.find(e,this.context.cwd),c=await Nt.find(e,{immutable:o,check:this.checkCache});if(!l)throw new ht(a.cwd,this.context.cwd);return await a.restoreInstallState({restoreResolutions:!1}),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async f=>{await a.install({cache:c,report:f,immutable:s,mode:this.mode})})).exitCode()}};um.paths=[["install"],Re.Default],um.usage=Re.Usage({description:"install the project dependencies",details:` - This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - - - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). - - - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). - - - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). - - - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. - - Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. - - If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. - - If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). - - If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. - - If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var koe=um,O3e="|||||||",M3e=">>>>>>>",K3e="=======",Poe="<<<<<<<";async function T3e(r,e){if(!r.projectCwd)return!1;let t=k.join(r.projectCwd,r.get("lockfileFilename"));if(!await K.existsPromise(t))return!1;let i=await K.readFilePromise(t,"utf8");if(!i.includes(Poe))return!1;if(e)throw new ct(X.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=U3e(i),o,a;try{o=Si(n),a=Si(s)}catch(c){throw new ct(X.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=N(N({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await K.changeFilePromise(t,Ma(l),{automaticNewlines:!0}),!0}function U3e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Poe)){for(;t.length>0;){let s=t.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===K3e){i=!1;break}else if(i||s.startsWith(O3e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(M3e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` -`),e[1].join(` -`)]}var gm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=J.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=J.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=k.resolve(this.context.cwd,H.toPortablePath(this.destination)),o=await ye.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await ze.find(o,s);if(t.cwd===a.cwd)throw new Pe("Invalid destination; Can't link the project to itself");if(!l)throw new ht(a.cwd,s);let c=t.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new Pe("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new Pe("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=P.stringifyIdent(f.locator),p=this.relative?k.relative(t.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Je.start({configuration:e,stdout:this.context.stdout},async f=>{await t.install({cache:n,report:f})})).exitCode()}};gm.paths=[["link"]],gm.usage=Re.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Doe=gm;var fm=class extends Le{constructor(){super(...arguments);this.args=J.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};fm.paths=[["node"]],fm.usage=Re.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Roe=fm;var Hoe=ge(require("os"));var Noe=ge(require("os"));var H3e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function bu(r){let e=await ir.get(H3e,{configuration:r});return Si(e.toString())}var hm=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await bu(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=Or(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(N({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};hm.paths=[["plugin","list"]],hm.usage=Re.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Foe=hm;var j3e=/^[0-9]+$/;function Loe(r){return j3e.test(r)?`pull/${r}/head`:r}var G3e=({repository:r,branch:e},t)=>[["git","init",H.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Loe(e)],["git","reset","--hard","FETCH_HEAD"]],Y3e=({branch:r})=>[["git","fetch","origin","--depth=1",Loe(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],q3e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",k.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],pm=class extends Le{constructor(){super(...arguments);this.installPath=J.String("--path",{description:"The path where the repository should be cloned to"});this.repository=J.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=J.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=J.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=J.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=J.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=J.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?k.resolve(this.context.cwd,H.toPortablePath(this.installPath)):k.resolve(H.toPortablePath((0,Noe.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{await vN(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo(X.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await dm(q3e(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=k.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await K.readFilePromise(o);await QN(e,"sources",a,{report:s}),this.skipPlugins||await J3e(this,{project:t,report:s,target:i})})).exitCode()}};pm.paths=[["set","version","from","sources"]],pm.usage=Re.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]});var Toe=pm;async function dm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Nr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${ae.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await Nr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function vN(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&K.existsSync(k.join(i,".git"))){t.reportInfo(X.UNNAMED,"Fetching the latest commits"),t.reportSeparator();try{await dm(Y3e(r),{configuration:e,context:r.context,target:i}),n=!0}catch(s){t.reportSeparator(),t.reportWarning(X.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(X.UNNAMED,"Cloning the remote repository"),t.reportSeparator(),await K.removePromise(i),await K.mkdirPromise(i,{recursive:!0}),await dm(G3e(r,i),{configuration:e,context:r.context,target:i}))}async function J3e(r,{project:e,report:t,target:i}){let n=await bu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await SN(o,r,{project:e,report:t,target:i})}var Ooe=ge(ri()),Moe=ge(require("url")),Koe=ge(require("vm"));var Cm=class extends Le{constructor(){super(...arguments);this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await ze.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.name)){let a=k.resolve(this.context.cwd,H.toPortablePath(this.name));i.reportInfo(X.UNNAMED,`Reading ${ae.pretty(e,a,ae.Type.PATH)}`),s=k.relative(n.cwd,a),o=await K.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new Moe.URL(this.name)}catch{throw new ct(X.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!Ooe.default.valid(l.reference))throw new ct(X.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=P.stringifyIdent(l),u=await bu(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new ct(X.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Ur!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Ur}/`))}i.reportInfo(X.UNNAMED,`Downloading ${ae.pretty(e,a,"green")}`),o=await ir.get(a,{configuration:e})}await xN(s,o,{project:n,report:i})})).exitCode()}};Cm.paths=[["plugin","import"]],Cm.usage=Re.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var Uoe=Cm;async function xN(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Koe.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=k.resolve(t.cwd,l);i.reportInfo(X.UNNAMED,`Saving the new plugin in ${ae.pretty(n,l,"magenta")}`),await K.mkdirPromise(k.dirname(c),{recursive:!0}),await K.writeFilePromise(c,e);let u={path:l,spec:r};await ye.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let m=typeof p!="string"?p.path:p,y=k.resolve(t.cwd,H.toPortablePath(m)),{name:b}=Se.dynamicRequire(y);b!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),te(N({},g),{plugins:f})})}var W3e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],mm=class extends Le{constructor(){super(...arguments);this.installPath=J.String("--path",{description:"The path where the repository should be cloned to"});this.repository=J.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=J.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=J.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=J.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=typeof this.installPath!="undefined"?k.resolve(this.context.cwd,H.toPortablePath(this.installPath)):k.resolve(H.toPortablePath((0,Hoe.tmpdir)()),"yarnpkg-sources",Dn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await ze.find(e,this.context.cwd),o=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=P.stringifyIdent(o),l=await bu(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new ct(X.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await vN(this,{configuration:e,report:n,target:t}),await SN(c,this,{project:s,report:n,target:t})})).exitCode()}};mm.paths=[["plugin","import","from","sources"]],mm.usage=Re.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var joe=mm;async function SN(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(X.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await dm(W3e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=k.resolve(s,`packages/${o}/bundles/${r}.js`),c=await K.readFilePromise(l);await xN(r,c,{project:i,report:n})}var Em=class extends Le{constructor(){super(...arguments);this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=P.parseIdent(s);if(!e.plugins.has(s))throw new Pe(`${P.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=k.resolve(t.cwd,a);K.existsSync(l)&&(n.reportInfo(X.UNNAMED,`Removing ${ae.pretty(e,a,ae.Type.PATH)}...`),await K.removePromise(l)),n.reportInfo(X.UNNAMED,"Updating the configuration..."),await ye.updateConfiguration(t.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:te(N({},c),{plugins:u})})})).exitCode()}};Em.paths=[["plugin","remove"]],Em.usage=Re.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Goe=Em;var Im=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};Im.paths=[["plugin","runtime"]],Im.usage=Re.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Yoe=Im;var ym=class extends Le{constructor(){super(...arguments);this.idents=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(P.parseIdent(a).identHash);if(await t.restoreInstallState({restoreResolutions:!1}),await t.resolveEverything({cache:n,report:new di}),s.size>0)for(let a of t.storedPackages.values())s.has(a.identHash)&&t.storedBuildState.delete(a.locatorHash);else t.storedBuildState.clear();return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await t.install({cache:n,report:a})})).exitCode()}};ym.paths=[["rebuild"]],ym.usage=Re.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var qoe=ym;var kN=ge(is());ys();var wm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=this.all?t.workspaces:[i],o=[Hr.REGULAR,Hr.DEVELOPMENT,Hr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,m=P.parseIdent(h);for(let y of s){let b=[...y.manifest.peerDependenciesMeta.keys()];for(let v of(0,kN.default)(b,h))y.manifest.peerDependenciesMeta.delete(v),l=!0,p=!0;for(let v of o){let x=y.manifest.getForScope(v),T=[...x.values()].map(q=>P.stringifyIdent(q));for(let q of(0,kN.default)(T,P.stringifyIdent(m))){let{identHash:Y}=P.parseIdent(q),$=x.get(Y);if(typeof $=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");y.manifest[v].delete(Y),c.push([y,v,$]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new Pe(`${u} ${ae.prettyList(e,a,Ri.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Je.start({configuration:e,stdout:this.context.stdout},async p=>{await t.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};wm.paths=[["remove"]],wm.usage=Re.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Joe=wm;var Woe=ge(require("util")),V0=class extends Le{async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Se.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Woe.inspect)(g,l)}`)})).exitCode()}};V0.paths=[["run"]];var zoe=V0;var Bm=class extends Le{constructor(){super(...arguments);this.inspect=J.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=J.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=J.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=J.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=J.Boolean("--silent",{hidden:!0});this.scriptName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i,locator:n}=await ze.find(e,this.context.cwd);await t.restoreInstallState();let s=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Zt.hasPackageScript(s,this.scriptName,{project:t}))return await Zt.executePackageScript(s,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Zt.getPackageAccessibleBinaries(s,{project:t});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Zt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(t.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Zt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new Pe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Lf)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new Pe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new Pe(`Couldn't find a script named "${this.scriptName}".`)}}};Bm.paths=[["run"]],Bm.usage=Re.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var _oe=Bm;var bm=class extends Le{constructor(){super(...arguments);this.save=J.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=J.String();this.resolution=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(await t.restoreInstallState({restoreResolutions:!1}),!i)throw new ht(t.cwd,this.context.cwd);let s=P.parseDescriptor(this.descriptor,!0),o=P.makeDescriptor(s,this.resolution);return t.storedDescriptors.set(s.descriptorHash,s),t.storedDescriptors.set(o.descriptorHash,o),t.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await t.install({cache:n,report:l})})).exitCode()}};bm.paths=[["set","resolution"]],bm.usage=Re.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Voe=bm;var Xoe=ge(is()),Qm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);let s=t.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=k.resolve(this.context.cwd,H.toPortablePath(l));if(Se.isPathLike(l)){let u=await ye.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await ze.find(u,c);if(!f)throw new ht(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(P.stringifyIdent(h.locator));if(o.size===0)throw new Pe("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be unlinked");o.add(P.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,Xoe.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await t.install({cache:n,report:l})})).exitCode()}};Qm.paths=[["unlink"]],Qm.usage=Re.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var Zoe=Qm;var $oe=ge(WC()),PN=ge(is());ys();var th=class extends Le{constructor(){super(...arguments);this.interactive=J.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=J.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=J.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=J.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=[...t.storedDescriptors.values()],o=s.map(u=>P.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(P.parseDescriptor(u).range!=="unknown")throw new Pe("Ranges aren't allowed when using --recursive");for(let g of(0,PN.default)(o,u)){let f=P.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)t.storedDescriptors.delete(u.descriptorHash),t.storedResolutions.delete(u.descriptorHash);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{await t.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var m;let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=zC(this,t),a=s?[Vr.KEEP,Vr.REUSE,Vr.PROJECT,Vr.LATEST]:[Vr.PROJECT,Vr.LATEST],l=[],c=[];for(let y of this.patterns){let b=!1,v=P.parseDescriptor(y);for(let x of t.workspaces)for(let T of[Hr.REGULAR,Hr.DEVELOPMENT]){let Y=[...x.manifest.getForScope(T).values()].map($=>P.stringifyIdent($));for(let $ of(0,PN.default)(Y,P.stringifyIdent(v))){let _=P.parseIdent($),ne=x.manifest[T].get(_.identHash);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let ee=P.makeDescriptor(_,v.range);l.push(Promise.resolve().then(async()=>[x,T,ne,await _C(ee,{project:t,workspace:x,cache:n,target:T,modifier:o,strategies:a})])),b=!0}}b||c.push(y)}if(c.length>1)throw new Pe(`Patterns ${ae.prettyList(e,c,Ri.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new Pe(`Pattern ${ae.prettyList(e,c,Ri.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await pA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[,,b,{suggestions:v,rejections:x}]of u){let T=v.filter(q=>q.descriptor!==null);if(T.length===0){let[q]=x;if(typeof q=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let Y=this.cli.error(q);t.configuration.get("enableNetwork")?y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range - -${Y}`):y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${Y}`)}else T.length>1&&!s&&y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[y,b,,{suggestions:v}]of u){let x,T=v.filter(_=>_.descriptor!==null),q=T[0].descriptor,Y=T.every(_=>P.areDescriptorsEqual(_.descriptor,q));T.length===1||Y?x=q:(f=!0,{answer:x}=await(0,$oe.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(e,y)} \u276F ${b}?`,choices:v.map(({descriptor:_,name:ne,reason:ee})=>_?{name:ne,hint:ee,descriptor:_}:{name:ne,hint:ee,disabled:!0}),onCancel:()=>process.exit(130),result(_){return this.find(_,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=y.manifest[b].get(x.identHash);if(typeof $=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if($.descriptorHash!==x.descriptorHash)y.manifest[b].set(x.identHash,x),h.push([y,b,$,x]);else{let _=e.makeResolver(),ne={project:t,resolver:_},ee=_.bindDescriptor($,y.anchoredLocator,ne);t.forgetResolution(ee)}}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` -`),(await Je.start({configuration:e,stdout:this.context.stdout},async y=>{await t.install({cache:n,report:y,mode:this.mode})})).exitCode()}};th.paths=[["up"]],th.usage=Re.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),th.schema=[eS("recursive",Bc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var eae=th;var Sm=class extends Le{constructor(){super(...arguments);this.recursive=J.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=J.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=P.parseIdent(this.package).identHash,s=this.recursive?_3e(t,n,{configuration:e,peers:this.peers}):z3e(t,n,{configuration:e,peers:this.peers});ls.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};Sm.paths=[["why"]],Sm.usage=Re.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var tae=Sm;function z3e(r,e,{configuration:t,peers:i}){let n=Se.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=r.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=P.stringifyLocator(a);s[p]={value:[a,ae.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ae.Type.DEPENDENT]}}}return o}function _3e(r,e,{configuration:t,peers:i}){let n=Se.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let m=r.storedResolutions.get(p.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let m=p!==null?ae.tuple(ae.Type.DEPENDENT,{locator:f,descriptor:p}):ae.tuple(ae.Type.LOCATOR,f),y={},b={value:m,children:y},v=P.stringifyLocator(f);if(h[v]=b,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let x of f.dependencies.values()){if(!i&&f.peerDependencies.has(x.identHash))continue;let T=r.storedResolutions.get(x.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let q=r.storedPackages.get(T);if(!q)throw new Error("Assertion failed: The package should have been registered");g(q,y,x)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var jN={};ft(jN,{default:()=>dWe,gitUtils:()=>Qu});var Qu={};ft(Qu,{TreeishProtocols:()=>On,clone:()=>KN,fetchBase:()=>wae,fetchChangedFiles:()=>Bae,fetchChangedWorkspaces:()=>hWe,fetchRoot:()=>yae,isGitUrl:()=>ih,lsRemote:()=>Iae,normalizeLocator:()=>TN,normalizeRepoUrl:()=>vm,resolveUrl:()=>MN,splitRepoUrl:()=>xm});var NN=ge(dae()),Cae=ge(Zw()),rh=ge(require("querystring")),LN=ge(ri()),mae=ge(require("url"));function Eae(){return te(N({},process.env),{GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`})}var fWe=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],On;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(On||(On={}));function ih(r){return r?fWe.some(e=>!!r.match(e)):!1}function xm(r){r=vm(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:On.Head,request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=rh.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(On).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=On.Head,a="HEAD");for(let l of Object.values(On))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function vm(r,{git:e=!1}={}){var t;if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){r=r.replace(/^git\+([^:]+):/,"$1:");let i;try{i=mae.default.parse(r)}catch{i=null}i&&i.protocol==="ssh:"&&((t=i.path)==null?void 0:t.startsWith("/:"))&&(r=r.replace(/^ssh:\/\//,""))}return r}function TN(r){return P.makeLocator(r,vm(r.reference))}async function Iae(r,e){let t=vm(r,{git:!0});if(!ir.getNetworkSettings(`https://${(0,NN.default)(t).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${t}' has been blocked because of your configuration settings`);let n=await ON("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Eae()},{configuration:e,normalizedRepoUrl:t}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function MN(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=xm(r),o=await Iae(t,e),a=(c,u)=>{switch(c){case On.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return rh.default.stringify(te(N({},s),{commit:u}))}case On.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return rh.default.stringify(te(N({},s),{commit:g}))}case On.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return rh.default.stringify(te(N({},s),{commit:g}))}case On.Semver:{let g=Wt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,m])=>[LN.default.parse(p.slice(10)),m]).filter(p=>p[0]!==null)),h=LN.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return rh.default.stringify(te(N({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(On.Commit,u))!==null||(g=l(On.Tag,u))!==null||(g=l(On.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${t}#${a(i,n)}`}async function KN(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=xm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=vm(t,{git:!0});if(ir.getNetworkSettings(`https://${(0,NN.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await K.mktempPromise(),a={cwd:o,env:Eae()};return await ON("cloning the repository",["clone","-c core.autocrlf=false",s,H.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await ON("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function yae(r){let e=null,t,i=r;do t=i,await K.existsPromise(k.join(t,".git"))&&(e=t),i=k.dirname(t);while(e===null&&i!==t);return e}async function wae(r,{baseRefs:e}){if(e.length===0)throw new Pe("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await Nr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new Pe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Nr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await Nr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Bae(r,{base:e,project:t}){let i=Se.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Nr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>k.resolve(r,H.toPortablePath(c))),{stdout:o}=await Nr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>k.resolve(r,H.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!k.relative(t.cwd,c).match(i)):l}async function hWe({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new Pe("This command can only be run from within a Yarn project");let t=[k.resolve(e.cwd,e.configuration.get("cacheFolder")),k.resolve(e.cwd,e.configuration.get("installStatePath")),k.resolve(e.cwd,e.configuration.get("lockfileFilename")),k.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await yae(e.configuration.projectCwd);if(i==null)throw new Pe("This command can only be run on Git repositories");let n=await wae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Bae(i,{base:n.hash,project:e});return new Set(Se.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?Se.mapAndFilter.skip:t.some(l=>o.startsWith(l))?Se.mapAndFilter.skip:a}))}async function ON(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await Nr.execvp("git",e,te(N({},t),{strict:!0}))}catch(s){if(!(s instanceof Nr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new ct(X.EXCEPTION,`Failed ${r}`,l=>{l.reportError(X.EXCEPTION,` ${ae.prettyField(i,{label:"Repository URL",value:ae.tuple(ae.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,Cae.default)(u)} Error`;l.reportError(X.EXCEPTION,` ${ae.prettyField(i,{label:f,value:ae.tuple(ae.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var UN=class{supports(e,t){return ih(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=TN(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o=te(N({},t),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await KN(e.reference,t.project.configuration),n=xm(e.reference),s=k.join(i,"package.tgz");await Zt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await K.readFilePromise(s);return await Se.releaseAfterUseAsync(async()=>await Bi.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var HN=class{supportsDescriptor(e,t){return ih(e.range)}supportsLocator(e,t){return ih(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await MN(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var pWe={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:Ie.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:Ie.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:Ie.NUMBER,default:2}},fetchers:[UN],resolvers:[HN]};var dWe=pWe;var km=class extends Le{constructor(){super(...arguments);this.since=J.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=J.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Qu.fetchChangedWorkspaces({ref:this.since,project:t}):t.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of At.hardDependencies)for(let[h,p]of l.getForScope(f)){let m=t.tryWorkspaceByDescriptor(p);m===null?t.workspacesByIdent.has(h)&&g.add(p):u.add(m)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>P.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(N({location:a.relativeCwd,name:l.name?P.stringifyIdent(l.name):null},c))}})).exitCode()}};km.paths=[["workspaces","list"]],km.usage=Re.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var bae=km;var Pm=class extends Le{constructor(){super(...arguments);this.workspaceName=J.String();this.commandName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=t.workspaces,s=new Map(n.map(a=>{let l=P.convertToIdent(a.locator);return[P.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new Pe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${a.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};Pm.paths=[["workspace"]],Pm.usage=Re.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var Qae=Pm;var CWe={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:Ie.BOOLEAN,default:Sae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:Ie.STRING,values:["^","~",""],default:pa.CARET}},commands:[Tne,Mne,$se,uoe,Voe,Toe,boe,bae,Coe,moe,Eoe,Ioe,Nne,Lne,goe,hoe,yoe,woe,Soe,xoe,koe,Doe,Zoe,Roe,joe,Uoe,Goe,Foe,Yoe,qoe,Joe,zoe,_oe,eae,tae,Qae]},mWe=CWe;var zN={};ft(zN,{default:()=>IWe});var Ge={optional:!0},YN=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Ge,zenObservable:Ge}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Ge,zenObservable:Ge}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Ge}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Ge,["postcss-jsx"]:Ge,["postcss-less"]:Ge,["postcss-markdown"]:Ge,["postcss-scss"]:Ge}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Ge}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Ge}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Ge,"vue-template-compiler":Ge}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Ge,"utf-8-validate":Ge}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Ge,"vuetify-loader":Ge}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Ge}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Ge}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Ge}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Ge}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Ge,tinyliquid:Ge,"liquid-node":Ge,jade:Ge,"then-jade":Ge,dust:Ge,"dustjs-helpers":Ge,"dustjs-linkedin":Ge,swig:Ge,"swig-templates":Ge,"razor-tmpl":Ge,atpl:Ge,liquor:Ge,twig:Ge,ejs:Ge,eco:Ge,jazz:Ge,jqtpl:Ge,hamljs:Ge,hamlet:Ge,whiskers:Ge,"haml-coffee":Ge,"hogan.js":Ge,templayed:Ge,handlebars:Ge,underscore:Ge,lodash:Ge,pug:Ge,"then-pug":Ge,qejs:Ge,walrus:Ge,mustache:Ge,just:Ge,ect:Ge,mote:Ge,toffee:Ge,dot:Ge,"bracket-template":Ge,ractive:Ge,nunjucks:Ge,htmling:Ge,"babel-core":Ge,plates:Ge,"react-dom":Ge,react:Ge,"arc-templates":Ge,vash:Ge,slm:Ge,marko:Ge,teacup:Ge,"coffee-script":Ge,squirrelly:Ge,twing:Ge}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Ge}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Ge,vue:Ge}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Ge}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Ge}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Ge,"webpack-command":Ge}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Ge}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Ge}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Ge,jimp:Ge}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Ge,"eslint-import-resolver-typescript":Ge,"eslint-import-resolver-webpack":Ge,"@typescript-eslint/parser":Ge}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Ge}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Ge}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Ge}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Ge}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@*",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Ge}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:{optional:!0}}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}]];var qN;function vae(){return typeof qN=="undefined"&&(qN=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),qN}var JN;function xae(){return typeof JN=="undefined"&&(JN=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),JN}var WN;function kae(){return typeof WN=="undefined"&&(WN=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),WN}var Pae=new Map([[P.makeIdent(null,"fsevents").identHash,vae],[P.makeIdent(null,"resolve").identHash,xae],[P.makeIdent(null,"typescript").identHash,kae]]),EWe={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of YN)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=Pae.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(r,e,t,i)=>typeof Pae.get(r.identHash)=="undefined"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},IWe=EWe;var _N={};ft(_N,{default:()=>wWe});var X0=class extends Le{constructor(){super(...arguments);this.pkg=J.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=J.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=J.String();this.args=J.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let t=P.parseDescriptor(this.command),i;t.scope?i=P.makeIdent(t.scope,`create-${t.name}`):t.name.startsWith("@")?i=P.makeIdent(t.name.substring(1),"create"):i=P.makeIdent(null,`create-${t.name}`);let n=P.stringifyIdent(i);return t.range!=="unknown"&&(n+=`@${t.range}`),this.cli.run(["dlx",...e,n,...this.args])}};X0.paths=[["create"]];var Dae=X0;var Dm=class extends Le{constructor(){super(...arguments);this.packages=J.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=J.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=J.String();this.args=J.Proxy()}async execute(){return ye.telemetry=null,await K.mktempPromise(async e=>{var p;let t=k.join(e,`dlx-${process.pid}`);await K.mkdirPromise(t),await K.writeFilePromise(k.join(t,"package.json"),`{} -`),await K.writeFilePromise(k.join(t,"yarn.lock"),"");let i=k.join(t,".yarnrc.yml"),n=await ye.findProjectCwd(this.context.cwd,kt.lockfile),s=!(await ye.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?k.join(n,".yarnrc.yml"):null;o!==null&&K.existsSync(o)?(await K.copyFilePromise(o,i),await ye.updateConfiguration(t,m=>{let y=te(N({},m),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(m.plugins)&&(y.plugins=m.plugins.map(b=>{let v=typeof b=="string"?b:b.path,x=H.isAbsolute(v)?v:H.resolve(H.fromPortablePath(n),v);return typeof b=="string"?x:{path:x,spec:b.spec}})),y})):await K.writeFilePromise(i,`enableGlobalCache: ${s} -enableTelemetry: false -`);let a=(p=this.packages)!=null?p:[this.command],l=P.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:t,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` -`);let u=await ye.find(t,this.context.plugins),{project:g,workspace:f}=await ze.find(u,t);if(f===null)throw new ht(g.cwd,t);await g.restoreInstallState();let h=await Zt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Zt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Dm.paths=[["dlx"]],Dm.usage=Re.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Rae=Dm;var yWe={commands:[Dae,Rae]},wWe=yWe;var nL={};ft(nL,{default:()=>QWe,fileUtils:()=>VN});var nh=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Rm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Xr="file:";var VN={};ft(VN,{makeArchiveFromLocator:()=>Z0,makeBufferFromLocator:()=>$N,makeLocator:()=>ZN,makeSpec:()=>Fae,parseSpec:()=>XN});function XN(r){let{params:e,selector:t}=P.parseRange(r),i=H.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function Fae({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t!="undefined"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:N(N({},s),n)})}function ZN(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,Fae({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Z0(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=k.isAbsolute(s)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new _t(Me.root),prefixPath:k.relative(Me.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=k.join(a.prefixPath,s);return await Se.releaseAfterUseAsync(async()=>await Bi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function $N(r,{protocol:e,fetchOptions:t}){return(await Z0(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var eL=class{supports(e,t){return!!e.reference.startsWith(Xr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr});if(k.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:k.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Z0(e,{protocol:Xr,fetchOptions:t})}};var BWe=2,tL=class{supportsDescriptor(e,t){return e.range.match(nh)?!0:!!e.range.startsWith(Xr)}supportsLocator(e,t){return!!e.reference.startsWith(Xr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return nh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=XN(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await $N(P.makeLocator(e,P.makeRange({protocol:Xr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Xr,fetchOptions:i.fetchOptions}),a=Dn.makeHash(`${BWe}`,o).slice(0,6);return[ZN(e,{parentLocator:s,path:n,folderHash:a,protocol:Xr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var rL=class{supports(e,t){return Rm.test(e.reference)?!!e.reference.startsWith(Xr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr}),s=k.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:k.relative(Me.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=k.join(o.prefixPath,n),c=await a.readFilePromise(l);return await Se.releaseAfterUseAsync(async()=>await Bi.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var iL=class{supportsDescriptor(e,t){return Rm.test(e.range)?!!(e.range.startsWith(Xr)||nh.test(e.range)):!1}supportsLocator(e,t){return Rm.test(e.reference)?!!e.reference.startsWith(Xr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return nh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range;return n.startsWith(Xr)&&(n=n.slice(Xr.length)),[P.makeLocator(e,`${Xr}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var bWe={fetchers:[rL,eL],resolvers:[iL,tL]},QWe=bWe;var oL={};ft(oL,{default:()=>xWe});var Nae=ge(require("querystring")),Lae=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function Tae(r){return r?Lae.some(e=>!!r.match(e)):!1}function Oae(r){let e;for(let a of Lae)if(e=r.match(a),e)break;if(!e)throw new Error(SWe(r));let[,t,i,n,s="master"]=e,{commit:o}=Nae.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function SWe(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var sL=class{supports(e,t){return!!Tae(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await ir.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await K.mktempPromise(async n=>{let s=new _t(n);await Bi.extractArchiveTo(i,s,{stripComponents:1});let o=Qu.splitRepoUrl(e.reference),a=k.join(n,"package.tgz");await Zt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await K.readFilePromise(a);return await Bi.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=Oae(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var vWe={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new sL;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch(n){return null}}}},xWe=vWe;var lL={};ft(lL,{default:()=>PWe});var Fm=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,Nm=/^https?:/;var aL=class{supports(e,t){return Fm.test(e.reference)?!!Nm.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await ir.get(e.reference,{configuration:t.project.configuration});return await Bi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var AL=class{supportsDescriptor(e,t){return Fm.test(e.range)?!!Nm.test(e.range):!1}supportsLocator(e,t){return Fm.test(e.reference)?!!Nm.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var kWe={fetchers:[aL],resolvers:[AL]},PWe=kWe;var fL={};ft(fL,{default:()=>D4e});var cAe=ge(lAe()),gL=ge(require("util")),Lm=class extends Le{constructor(){super(...arguments);this.private=J.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=J.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=J.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=J.Boolean("-2",!1,{hidden:!0});this.yes=J.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=J.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return t!==null?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new Pe("Cannot use the --install flag from within a project subdirectory");K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=k.join(this.context.cwd,e.get("lockfileFilename"));K.existsSync(i)||await K.writeFilePromise(i,"");let n=await this.cli.run(["set","version",t],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await K.mktempPromise(async o=>{let{code:a}=await Nr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Zt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let t=null;try{t=(await ze.find(e,this.context.cwd)).project}catch{t=null}K.existsSync(this.context.cwd)||await K.mkdirPromise(this.context.cwd,{recursive:!0});let i=await At.tryFind(this.context.cwd)||new At,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:P.makeIdent(e.get("initScope"),k.basename(this.context.cwd)),i.packageManager=Ur&&Se.isTaggedYarnVersion(Ur)?`yarn@${Ur}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await K.mkdirPromise(k.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),gL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,gL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} -`);let o=k.join(this.context.cwd,At.fileName);await K.changeFilePromise(o,`${JSON.stringify(s,null,2)} -`,{automaticNewlines:!0});let a=k.join(this.context.cwd,"README.md");if(K.existsSync(a)||await K.writeFilePromise(a,`# ${P.stringifyIdent(i.name)} -`),!t||t.cwd===this.context.cwd){let c=k.join(this.context.cwd,kt.lockfile);K.existsSync(c)||await K.writeFilePromise(c,"");let g=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(y=>`${y} -`).join(""),f=k.join(this.context.cwd,".gitignore");K.existsSync(f)||await K.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,cAe.default)(h,e.get("initEditorConfig"));let p=`root = true -`;for(let[y,b]of Object.entries(h)){p+=` -[${y}] -`;for(let[v,x]of Object.entries(b))p+=`${v.replace(/[A-Z]/g,q=>`_${q.toLowerCase()}`)} = ${x} -`}let m=k.join(this.context.cwd,".editorconfig");K.existsSync(m)||await K.writeFilePromise(m,p),K.existsSync(k.join(this.context.cwd,".git"))||await Nr.execvp("git",["init"],{cwd:this.context.cwd})}}};Lm.paths=[["init"]],Lm.usage=Re.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var uAe=Lm;var P4e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:Ie.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:Ie.MAP,valueDefinition:{description:"",type:Ie.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:Ie.MAP,valueDefinition:{description:"",type:Ie.ANY}}},commands:[uAe]},D4e=P4e;var mL={};ft(mL,{default:()=>F4e});var wA="portal:",BA="link:";var hL=class{supports(e,t){return!!e.reference.startsWith(wA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:wA});if(k.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:k.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:wA}),s=k.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:k.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=k.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,localPath:l}:{packageFs:new La(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot}}};var pL=class{supportsDescriptor(e,t){return!!e.range.startsWith(wA)}supportsLocator(e,t){return!!e.reference.startsWith(wA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(wA.length);return[P.makeLocator(e,`${wA}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var dL=class{supports(e,t){return!!e.reference.startsWith(BA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:BA});if(k.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:k.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:BA}),s=k.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:k.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=k.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0,localPath:l}:{packageFs:new La(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0}}};var CL=class{supportsDescriptor(e,t){return!!e.range.startsWith(BA)}supportsLocator(e,t){return!!e.reference.startsWith(BA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(BA.length);return[P.makeLocator(e,`${BA}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return te(N({},e),{version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var R4e={fetchers:[dL,hL],resolvers:[CL,pL]},F4e=R4e;var JL={};ft(JL,{default:()=>j8e});var Mn;(function(i){i[i.REGULAR=0]="REGULAR",i[i.WORKSPACE=1]="WORKSPACE",i[i.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(Mn||(Mn={}));var bA;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(bA||(bA={}));var EL=(r,e)=>`${r}@${e}`,gAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return EL(r,i)},yo;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(yo||(yo={}));var hAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=N4e(r,s),l=!1,c=0;do l=IL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=Tm(a);if(IL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${u}, next tree: -${Tm(a)}`);let f=fAe(a);if(f)throw new Error(`${f}, after hoisting finished: -${Tm(a)}`)}return s.debugLevel>=2&&console.log(Tm(a)),L4e(a)},T4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},O4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},pAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(m)},b=y.dependencies.get(t);return b&&b.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},M4e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},yL=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},IL=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=U4e(o),l=M4e(o,a),c=r==o?new Map:n.fastLookupPossible?T4e(e):O4e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),p=new Map;do{let m=K4e(r,e,t,c,h,l,i,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,b]of l)b.length>1&&!o.dependencies.has(y)&&(h.delete(y),b.shift(),h.set(y,b[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=IL(r,[...e,m],t,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},H4e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j4e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>Li(y)).join("\u2192")}`);let h=t[t.length-1],m=!(i.ident===h.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H4e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=h.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Li(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,b=n.get(i.name);if(y=!b||b.ident===i.ident,l&&!y&&(g=`- filled by: ${Li(b.locator)} at ${u}`),y)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let q=a.get(h);q||(q=new Set,a.set(h,q)),q.add(i.name),l&&(g=`- filled by ${Li(T.locator)} at ${t.slice(0,v).map(Y=>Li(Y.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Li(o.get(i.name)[0])} at ${u}`)),m){let y=!0,b=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let x=t[v];for(let T of b){if(x.peerNames.has(T)&&x.originalDependencies.has(T))continue;let q=x.dependencies.get(T);q&&r.dependencies.get(T)!==q&&(v===t.length-1?f.add(q):(f=null,y=!1,l&&(g=`- peer dependency ${Li(q.locator)} from parent ${Li(x.locator)} was not hoisted to ${u}`))),b.delete(T)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let b=n.get(y.name)||r.dependencies.get(y.name);if(!b||y.ident!==b.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Li(y.locator)}, available: ${Li(b==null?void 0:b.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:m?0:1,reason:g}},$0=r=>`${r.name}@${r.locator}`,K4e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(b,v,x,T,q)=>{if(u.has(T))return;let Y=[...v,$0(T)],$=[...x,$0(T)],_=new Map,ne=new Map;for(let Z of yL(T)){let O=j4e(c,t,[c,...b,T],Z,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(ne.set(Z,O),O.isHoistable===2)for(let L of O.dependsOn){let de=_.get(L.name)||new Set;de.add(Z.name),_.set(L.name,de)}}let ee=new Set,A=(Z,O,L)=>{if(!ee.has(Z)){ee.add(Z),ne.set(Z,{isHoistable:1,reason:L});for(let de of _.get(Z.name)||[])A(T.dependencies.get(de),O,l.debugLevel>=2?`- peer dependency ${Li(Z.locator)} from parent ${Li(T.locator)} was not hoisted`:"")}};for(let[Z,O]of ne)O.isHoistable===1&&A(Z,O,O.reason);let oe=!1;for(let Z of ne.keys())if(!ee.has(Z)){f=!0;let O=o.get(T);O&&O.has(Z.name)&&(g=!0),oe=!0,T.dependencies.delete(Z.name),T.hoistedDependencies.set(Z.name,Z),T.reasons.delete(Z.name);let L=c.dependencies.get(Z.name);if(l.debugLevel>=2){let de=Array.from(v).concat([T.locator]).map(je=>Li(je)).join("\u2192"),Be=c.hoistedFrom.get(Z.name);Be||(Be=[],c.hoistedFrom.set(Z.name,Be)),Be.push(de),T.hoistedTo.set(Z.name,Array.from(e).map(je=>Li(je.locator)).join("\u2192"))}if(!L)c.ident!==Z.ident&&(c.dependencies.set(Z.name,Z),q.add(Z));else for(let de of Z.references)L.references.add(de)}if(T.dependencyKind===2&&oe&&(g=!0),l.check){let Z=fAe(r);if(Z)throw new Error(`${Z}, after hoisting dependencies of ${[c,...b,T].map(O=>Li(O.locator)).join("\u2192")}: -${Tm(r)}`)}let ce=yL(T);for(let Z of ce)if(ee.has(Z)){let O=ne.get(Z);if((n.get(Z.name)===Z.ident||!T.reasons.has(Z.name))&&O.isHoistable!==0&&T.reasons.set(Z.name,O.reason),!Z.isHoistBorder&&$.indexOf($0(Z))<0){u.add(T);let de=pAe(T,Z);h([...b,T],Y,$,de,m),u.delete(T)}}},p,m=new Set(yL(c)),y=Array.from(e).map(b=>$0(b));do{p=m,m=new Set;for(let b of p){if(b.locator===c.locator||b.isHoistBorder)continue;let v=pAe(c,b);h([],Array.from(t),y,v,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},fAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>Li(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,m=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},N4e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:EL(t,n),ident:gAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:m,peerNames:y,hoistPriority:b,dependencyKind:v}=c,x=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([m]),locator:EL(p,m),ident:gAe(p,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:x?x.has(h):!1,hoistPriority:b||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=m=>{if(!h.has(m)){h.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},wL=r=>r.substring(0,r.indexOf("@",1)),L4e=r=>{let e={name:r.name,identName:wL(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:wL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},U4e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Li=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},dAe=5e4,Tm=r=>{let e=0,t=(n,s,o="")=>{if(e>dAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+Li(u.locator)+(g?` ${g}`:"")} -`,l+=t(u,s,`${o}${cdAe?` -Tree is too large, part of the tree has been dunped -`:"")};var wo;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(wo||(wo={}));var Kn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Kn||(Kn={}));var CAe="node_modules",Su="$wsroot$";var Om=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=G4e(r,e),o=null;if(n.length===0){let a=hAe(t,{hoistingLimits:i});o=Y4e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},da=r=>`${r.name}@${r.reference}`,BL=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(k.delimiter).length,o=n.split(k.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},mAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},bL=(r,e,t,i)=>{if(r.linkType!==wo.SOFT)return!1;let n=H.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return k.contains(i,n)===null},q4e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=H.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=da(f);if(l.has(p))return;l.add(p);let m=r.getPackageInformation(f);if(m){let y=h?da(h):"";if(da(f)!==y&&m.linkType===wo.SOFT&&!bL(m,f,r,i)){let b=EAe(m,f,r);(!a.get(b)||f.reference.startsWith("workspace:"))&&a.set(b,f)}for(let[b,v]of m.packageDependencies)v!==null&&(m.packagePeers.has(b)||c(r.getLocator(b,v),f))}};for(let f of o)c(f,null);let u=i.split(k.sep);for(let f of a.values()){let h=r.getPackageInformation(f),m=H.toPortablePath(h.packageLocation.slice(0,-1)).split(k.sep).slice(u.length),y=s;for(let b of m){let v=y.children.get(b);v||(v={children:new Map},y.children.set(b,v)),y=v}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=da(h),m=n.get(p);m||(m=new Set,n.set(p,m)),m.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},G4e=(r,e)=>{let t=[],i=!1,n=new Map,s=q4e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=H.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:Mn.WORKSPACE},u=new Map,g=(h,p)=>`${da(p)}:${h}`,f=(h,p,m,y,b,v,x,T)=>{var Z,O;let q=g(h,m),Y=u.get(q),$=!!Y;!$&&m.name===a.name&&m.reference===a.reference&&(Y=c,u.set(q,c));let _=bL(p,m,r,l);if(!Y){let L=Mn.REGULAR;_?L=Mn.EXTERNAL_SOFT_LINK:p.linkType===wo.SOFT&&m.name.endsWith(Su)&&(L=Mn.WORKSPACE),Y={name:h,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:L===Mn.WORKSPACE?new Set:p.packagePeers,dependencyKind:L},u.set(q,Y)}let ne;if(_?ne=2:b.linkType===wo.SOFT?ne=1:ne=0,Y.hoistPriority=Math.max(Y.hoistPriority||0,ne),T&&!_){let L=da({name:y.identName,reference:y.reference}),de=n.get(L)||new Set;n.set(L,de),de.add(Y.name)}let ee=new Map(p.packageDependencies);if(e.project){let L=e.project.workspacesByCwd.get(H.toPortablePath(p.packageLocation.slice(0,-1)));if(L){let de=new Set([...Array.from(L.manifest.peerDependencies.values(),Be=>P.stringifyIdent(Be)),...Array.from(L.manifest.peerDependenciesMeta.keys())]);for(let Be of de)ee.has(Be)||(ee.set(Be,v.get(Be)||null),Y.peerNames.add(Be))}}let A=da({name:m.name.replace(Su,""),reference:m.reference}),oe=s.get(A);if(oe)for(let L of oe)ee.set(`${L.name}${Su}`,L.reference);(p!==b||p.linkType!==wo.SOFT||!_&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(x)))&&y.dependencies.add(Y);let ce=m!==a&&p.linkType===wo.SOFT&&!m.name.endsWith(Su)&&!_;if(!$&&!ce){let L=new Map;for(let[de,Be]of ee)if(Be!==null){let je=r.getLocator(de,Be),re=r.getLocator(de.replace(Su,""),Be),se=r.getPackageInformation(re);if(se===null)throw new Error("Assertion failed: Expected the package to have been registered");let be=bL(se,je,r,l);if(e.validateExternalSoftLinks&&e.project&&be){se.packageDependencies.size>0&&(i=!0);for(let[ve,pe]of se.packageDependencies)if(pe!==null){let V=P.parseLocator(Array.isArray(pe)?`${pe[0]}@${pe[1]}`:`${ve}@${pe}`);if(da(V)!==da(je)){let Qe=ee.get(ve);if(Qe){let le=P.parseLocator(Array.isArray(Qe)?`${Qe[0]}@${Qe[1]}`:`${ve}@${Qe}`);mAe(le,V)||t.push({messageName:X.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(je.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,le)}`})}else{let le=L.get(ve);if(le){let fe=le.target,gt=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${ve}@${fe}`);mAe(gt,V)||t.push({messageName:X.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(je.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with dependency ${P.prettyLocator(e.project.configuration,gt)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(le.portal.name))}`})}else L.set(ve,{target:V.reference,portal:je})}}}}let he=(Z=e.hoistingLimitsByCwd)==null?void 0:Z.get(x),Fe=be?x:k.relative(l,H.toPortablePath(se.packageLocation))||Me.dot,Ke=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(Fe),ke=he===Kn.DEPENDENCIES||Ke===Kn.DEPENDENCIES||Ke===Kn.WORKSPACES;f(de,se,je,Y,p,ee,Fe,ke)}}};return f(a.name,o,a,c,o,o.packageDependencies,Me.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function EAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return H.toPortablePath(i||r.packageLocation)}function J4e(r,e,t){let i=e.getLocator(r.name.replace(Su,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return t.pnpifyFs?(o=H.toPortablePath(n.packageLocation),s=wo.SOFT):(o=EAe(n,r,e),s=n.linkType),{linkType:s,target:o}}var Y4e=(r,e,t)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=J4e(u,r,t);return{locator:da(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Jr(g),name:Jr(f)}:{scope:null,name:Jr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),m={name:h.identName,reference:p[0]},{name:y,scope:b}=s(h.name),v=b?[b,y]:[y],x=k.join(g,CAe),T=k.join(x,...v),q=`${f}/${m.name}`,Y=n(m,f,p.slice(1)),$=!1;if(Y.linkType===wo.SOFT&&t.project){let _=t.project.workspacesByCwd.get(Y.target.slice(0,-1));$=!!(_&&!_.manifest.name)}if(!h.name.endsWith(Su)&&!$){let _=i.get(T);if(_){if(_.dirList)throw new Error(`Assertion failed: ${T} cannot merge dir node with leaf node`);{let oe=P.parseLocator(_.locator),ce=P.parseLocator(Y.locator);if(_.linkType!==Y.linkType)throw new Error(`Assertion failed: ${T} cannot merge nodes with different link types ${_.nodePath}/${P.stringifyLocator(oe)} and ${f}/${P.stringifyLocator(ce)}`);if(oe.identHash!==ce.identHash)throw new Error(`Assertion failed: ${T} cannot merge nodes with different idents ${_.nodePath}/${P.stringifyLocator(oe)} and ${f}/s${P.stringifyLocator(ce)}`);Y.aliases=[...Y.aliases,..._.aliases,P.parseLocator(_.locator).reference]}}i.set(T,Y);let ne=T.split("/"),ee=ne.indexOf(CAe),A=ne.length-1;for(;ee>=0&&A>ee;){let oe=H.toPortablePath(ne.slice(0,A).join(k.sep)),ce=Jr(ne[A]),Z=i.get(oe);if(!Z)i.set(oe,{dirList:new Set([ce])});else if(Z.dirList){if(Z.dirList.has(ce))break;Z.dirList.add(ce)}A--}}a(h,Y.linkType===wo.SOFT?Y.target:T,q)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var LL={};ft(LL,{PnpInstaller:()=>oh,PnpLinker:()=>xu,default:()=>d8e,getPnpPath:()=>Tl,jsInstallUtils:()=>Ca,pnpUtils:()=>FL,quotePathIfNeeded:()=>GAe});var HAe=ge(ri()),jAe=ge(require("url"));var IAe;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(IAe||(IAe={}));var er;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(er||(er={}));var yAe={[er.DEFAULT]:{collapsed:!1,next:{["*"]:er.DEFAULT}},[er.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:er.FALLBACK_EXCLUSION_LIST,packageRegistryData:er.PACKAGE_REGISTRY_DATA,["*"]:er.DEFAULT}},[er.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:er.FALLBACK_EXCLUSION_ENTRIES}},[er.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:er.FALLBACK_EXCLUSION_DATA}},[er.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:er.DEFAULT}},[er.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_REGISTRY_ENTRIES}},[er.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_STORE_DATA}},[er.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_STORE_ENTRIES}},[er.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_INFORMATION_DATA}},[er.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:er.PACKAGE_DEPENDENCIES,["*"]:er.DEFAULT}},[er.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:er.PACKAGE_DEPENDENCY}},[er.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:er.DEFAULT}}};function W4e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;ns(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function X4e(r){let e=new Map,t=Mm(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function Z4e(r){return Mm(r.fallbackPool||[],([e])=>e)}function $4e(r){let e=[];for(let[t,i]of Mm(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of Mm(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,m]of Mm(a.entries(),([y])=>y))g.push([p,m]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function Km(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:X4e(r),fallbackPool:Z4e(r),packageRegistryData:$4e(r)}}var SAe=ge(QAe());function vAe(r,e){return[r?`${r} -`:"",`/* eslint-disable */ - -`,`try { -`,` Object.freeze({}).detectStrictMode = true; -`,`} catch (error) { -`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} -`,` -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,e.replace(/^/gm," "),`} -`,` -`,(0,SAe.default)()].join("")}function e8e(r){return JSON.stringify(r,null,2)}function t8e(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function r8e(r){return[`return hydrateRuntimeState(JSON.parse(${t8e(BAe(r))}), {basePath: basePath || __dirname}); -`].join("")}function i8e(r){return[`var path = require('path'); -`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); -`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function xAe(r){let e=Km(r),t=r8e(e);return vAe(r.shebang,t)}function kAe(r){let e=Km(r),t=i8e(r.dataLocation),i=vAe(r.shebang,t);return{dataFile:e8e(e),loaderFile:i}}var RAe=ge(require("fs")),l8e=ge(require("path")),FAe=ge(require("util"));function SL(r,{basePath:e}){let t=H.toPortablePath(e),i=k.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var x;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(x=p.discardFromLookup)!=null?x:!1,y={name:g,reference:h},b=s.get(p.packageLocation);b?(b.discardFromLookup=b.discardFromLookup&&m,m||(b.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:m});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:m,get packageLocation(){return v||(v=k.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var Um=ge(require("module"));function sh(r,e){if(typeof r=="string")return r;if(r){let t,i;if(Array.isArray(r)){for(t=0;t0)return(f=sh(n[g],u))?f.replace("*",c.substring(g.length-1)):vu(i,c,1)}return vu(i,c)}}var vL=ge(require("util"));var ur;(function(c){c.API_ERROR="API_ERROR",c.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",c.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",c.MISSING_DEPENDENCY="MISSING_DEPENDENCY",c.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",c.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",c.INTERNAL="INTERNAL",c.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",c.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var s8e=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ai(r,e,t={},i){i!=null||(i=s8e.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:te(N({},n),{value:i}),pnpCode:te(N({},n),{value:r}),data:te(N({},n),{value:t})})}function Bo(r){return H.normalize(H.fromPortablePath(r))}var o8e=ge(require("fs")),DAe=ge(require("module")),a8e=ge(require("path")),A8e=new Set(DAe.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||A8e.has(r);function xL(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let re of["react-scripts","gatsby"]){let se=r.packageRegistry.get(re);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:re,reference:be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(re,se){return{fn:re,args:se,error:null,result:null}}function m(re){var Ke,ke,ve,pe,V,Qe;let se=(ve=(ke=(Ke=process.stderr)==null?void 0:Ke.hasColors)==null?void 0:ke.call(Ke))!=null?ve:process.stdout.isTTY,be=(le,fe)=>`[${le}m${fe}`,he=re.error;console.error(he?be("31;1",`\u2716 ${(pe=re.error)==null?void 0:pe.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),re.args.length>0&&console.error();for(let le of re.args)console.error(` ${be("37;1","In \u2190")} ${(0,vL.inspect)(le,{colors:se,compact:!0})}`);re.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,vL.inspect)(re.result,{colors:se,compact:!0})}`));let Fe=(Qe=(V=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:V.slice(2))!=null?Qe:[];if(Fe.length>0){console.error();for(let le of Fe)console.error(` ${be("38;5;244",le)}`)}console.error()}function y(re,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let he=p(re,be);try{return he.result=se(...be)}catch(Fe){throw he.error=Fe}finally{m(he)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(he){let Fe=p(re,be);throw Fe.error=he,m(Fe),he}}}return se}function b(re){let se=A(re);if(!se)throw ai(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function v(re){if(re.name===null)return!0;for(let se of r.dependencyTreeRoots)if(se.name===re.name&&se.reference===re.reference)return!0;return!1}let x=new Set(["default","node","require"]);function T(re,se=x){let be=Z(k.join(re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ai(ur.INTERNAL,`The locator that owns the "${re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:he}=b(be),Fe=k.join(he,kt.manifest);if(!e.fakeFs.existsSync(Fe))return null;let Ke=JSON.parse(e.fakeFs.readFileSync(Fe,"utf8")),ke=k.contains(he,re);if(ke===null)throw ai(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");a.test(ke)||(ke=`./${ke}`);let ve;try{ve=PAe(Ke,k.normalize(ke),{conditions:se,unsafe:!0})}catch(pe){throw ai(ur.EXPORTS_RESOLUTION_FAILED,pe.message,{unqualifiedPath:Bo(re),locator:be,pkgJson:Ke,subpath:Bo(ke),conditions:se},"ERR_PACKAGE_PATH_NOT_EXPORTED")}return typeof ve=="string"?k.join(he,ve):null}function q(re,se,{extensions:be}){let he;try{se.push(re),he=e.fakeFs.statSync(re)}catch(Fe){}if(he&&!he.isDirectory())return e.fakeFs.realpathSync(re);if(he&&he.isDirectory()){let Fe;try{Fe=JSON.parse(e.fakeFs.readFileSync(k.join(re,kt.manifest),"utf8"))}catch(ke){}let Ke;if(Fe&&Fe.main&&(Ke=k.resolve(re,Fe.main)),Ke&&Ke!==re){let ke=q(Ke,se,{extensions:be});if(ke!==null)return ke}}for(let Fe=0,Ke=be.length;Fe{let ve=JSON.stringify(ke.name);if(he.has(ve))return;he.add(ve);let pe=oe(ke);for(let V of pe)if(b(V).packagePeers.has(re))Fe(V);else{let le=be.get(V.name);typeof le=="undefined"&&be.set(V.name,le=new Set),le.add(V.reference)}};Fe(se);let Ke=[];for(let ke of[...be.keys()].sort())for(let ve of[...be.get(ke)].sort())Ke.push({name:ke,reference:ve});return Ke}function Z(re,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(_(re)&&!se)return null;let he=k.relative(r.basePath,re);he.match(s)||(he=`./${he}`),he.endsWith("/")||(he=`${he}/`);do{let Fe=h.get(he);if(typeof Fe=="undefined"||Fe.discardFromLookup&&!be){he=he.substring(0,he.lastIndexOf("/",he.length-2)+1);continue}return Fe.locator}while(he!=="");return null}function O(re,se,{considerBuiltins:be=!0}={}){if(re==="pnpapi")return H.toPortablePath(e.pnpapiResolution);if(be&&tb(re))return null;let he=Bo(re),Fe=se&&Bo(se);if(se&&_(se)&&(!k.isAbsolute(re)||Z(re)===null)){let ve=$(re,se);if(ve===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${he}" -Required by: ${Fe} -`,{request:he,issuer:Fe});return H.toPortablePath(ve)}let Ke,ke=re.match(n);if(ke){if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let[,ve,pe]=ke,V=Z(se);if(!V){let jt=$(re,se);if(jt===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${he}" -Required by: ${Fe} -`,{request:he,issuer:Fe});return H.toPortablePath(jt)}let le=b(V).packageDependencies.get(ve),fe=null;if(le==null&&V.name!==null){let jt=r.fallbackExclusionList.get(V.name);if(!jt||!jt.has(V.reference)){for(let Oi=0,Xs=c.length;Oiv(Qr))?gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${ve} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -${jt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} -`).join("")} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve,brokenAncestors:jt}):gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${ve} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) - -${jt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} -`).join("")} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve,brokenAncestors:jt})}else le===void 0&&(!be&&tb(re)?v(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${ve}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${ve} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,dependencyName:ve}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${ve}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${ve} isn't otherwise declared in ${V.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve}):v(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${ve}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${Fe} -`,{request:he,issuer:Fe,dependencyName:ve}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${ve}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${ve}${ve!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve}));if(le==null){if(fe===null||gt===null)throw gt||new Error("Assertion failed: Expected an error to have been set");le=fe;let jt=gt.message.replace(/\n.*/g,"");gt.message=jt,!u.has(jt)&&i!==0&&(u.add(jt),process.emitWarning(gt))}let Ht=Array.isArray(le)?{name:le[0],reference:le[1]}:{name:ve,reference:le},Mt=b(Ht);if(!Mt.packageLocation)throw ai(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${Ht.name}@${Ht.reference}${Ht.name!==he?` (via "${he}")`:""} -Required by: ${V.name}@${V.reference} (via ${Fe}) -`,{request:he,issuer:Fe,dependencyLocator:Object.assign({},Ht)});let Ei=Mt.packageLocation;pe?Ke=k.join(Ei,pe):Ke=Ei}else if(k.isAbsolute(re))Ke=k.normalize(re);else{if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let ve=k.resolve(se);se.match(o)?Ke=k.normalize(k.join(ve,re)):Ke=k.normalize(k.join(k.dirname(ve),re))}return k.normalize(Ke)}function L(re,se,be=x){if(s.test(re))return se;let he=T(se,be);return he?k.normalize(he):se}function de(re,{extensions:se=Object.keys(Um.Module._extensions)}={}){var Fe,Ke;let be=[],he=q(re,be,{extensions:se});if(he)return k.normalize(he);{let ke=Bo(re),ve=Z(re);if(ve){let{packageLocation:pe}=b(ve),V=!0;try{e.fakeFs.accessSync(pe)}catch(Qe){if((Qe==null?void 0:Qe.code)==="ENOENT")V=!1;else{let le=((Ke=(Fe=Qe==null?void 0:Qe.message)!=null?Fe:Qe)!=null?Ke:"empty exception thrown").replace(/^[A-Z]/,fe=>fe.toLowerCase());throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Required package exists but could not be accessed (${le}). - -Missing package: ${ve.name}@${ve.reference} -Expected package location: ${Bo(pe)} -`,{unqualifiedPath:ke,extensions:se})}}if(!V){let Qe=pe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${Qe} - -Missing package: ${ve.name}@${ve.reference} -Expected package location: ${Bo(pe)} -`,{unqualifiedPath:ke,extensions:se})}}throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${ke} -${be.map(pe=>`Not found: ${Bo(pe)} -`).join("")}`,{unqualifiedPath:ke,extensions:se})}}function Be(re,se,{considerBuiltins:be,extensions:he,conditions:Fe}={}){try{let Ke=O(re,se,{considerBuiltins:be});if(re==="pnpapi")return Ke;if(Ke===null)return null;let ke=()=>se!==null?_(se):!1,ve=(!be||!tb(re))&&!ke()?L(re,Ke,Fe):Ke;return de(ve,{extensions:he})}catch(Ke){throw Object.prototype.hasOwnProperty.call(Ke,"pnpCode")&&Object.assign(Ke.data,{request:Bo(re),issuer:se&&Bo(se)}),Ke}}function je(re){let se=k.normalize(re),be=Wr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:ne,topLevel:ee,getLocator:(re,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:re,reference:se},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let re=[];for(let[se,be]of f)for(let he of be.keys())se!==null&&he!==null&&re.push({name:se,reference:he});return re},getPackageInformation:re=>{let se=A(re);if(se===null)return null;let be=H.fromPortablePath(se.packageLocation);return te(N({},se),{packageLocation:be})},findPackageLocator:re=>Z(H.toPortablePath(re)),resolveToUnqualified:y("resolveToUnqualified",(re,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=O(H.toPortablePath(re),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveUnqualified:y("resolveUnqualified",(re,se)=>H.fromPortablePath(de(H.toPortablePath(re),se))),resolveRequest:y("resolveRequest",(re,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=Be(H.toPortablePath(re),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveVirtual:y("resolveVirtual",re=>{let se=je(H.toPortablePath(re));return se!==null?H.fromPortablePath(se):null})}}var O0t=(0,FAe.promisify)(RAe.readFile);var NAe=(r,e,t)=>{let i=Km(r),n=SL(i,{basePath:e}),s=H.join(e,kt.pnpCjs);return xL(n,{fakeFs:t,pnpapiResolution:s})};var PL=ge(TAe());var Ca={};ft(Ca,{checkAndReportManifestCompatibility:()=>MAe,checkManifestCompatibility:()=>OAe,extractBuildScripts:()=>rb,getExtractHint:()=>DL,hasBindingGyp:()=>RL});function OAe(r){return P.isPackageCompatible(r,Vg.getArchitectureSet())}function MAe(r,e,{configuration:t,report:i}){return OAe(r)?!0:(i==null||i.reportWarningOnce(X.INCOMPATIBLE_ARCHITECTURE,`${P.prettyLocator(t,r)} The ${Vg.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([cs.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([cs.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:r.linkType!==Qt.HARD?(n==null||n.reportWarningOnce(X.SOFT_LINK_BUILD,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(X.BUILD_DISABLED,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(X.DISABLED_BUILD_SCRIPTS,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):MAe(r,"build",{configuration:i,report:n})?s:[]}var c8e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function DL(r){return r.packageFs.getExtractHint({relevantExtensions:c8e})}function RL(r){let e=k.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var FL={};ft(FL,{getUnpluggedPath:()=>Hm});function Hm(r,{configuration:e}){return k.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var u8e=new Set([P.makeIdent(null,"nan").identHash,P.makeIdent(null,"node-gyp").identHash,P.makeIdent(null,"node-pre-gyp").identHash,P.makeIdent(null,"node-addon-api").identHash,P.makeIdent(null,"fsevents").identHash,P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),xu=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Tl(t.project).cjs;if(!K.existsSync(i))throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Se.getFactoryWithDefault(this.pnpCache,i,()=>Se.dynamicRequire(i,{cachingStrategy:Se.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return H.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=Tl(t.project).cjs;if(!K.existsSync(i))return null;let s=Se.getFactoryWithDefault(this.pnpCache,i,()=>Se.dynamicRequire(i,{cachingStrategy:Se.CachingStrategy.FsTime})).findPackageLocator(H.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new oh(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},oh=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new Se.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!==Qt.SOFT,g,f;if(c||u){let x=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(x.locatorHash),typeof g=="undefined"&&(g=await g8e(t),e.linkType===Qt.HARD&&this.customData.store.set(x.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(x,e.version)}let h=c?rb(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,t,f,i):t.packageFs;if(k.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=k.resolve(p.getRealPath(),t.prefixPath),y=NL(this.opts.project.cwd,m),b=new Map,v=new Set;if(a){for(let x of e.peerDependencies.values())b.set(P.stringifyIdent(x),null),v.add(P.stringifyIdent(x));if(!o){let x=P.devirtualizeLocator(e);this.virtualTemplates.set(x.locatorHash,{location:NL(this.opts.project.cwd,Wr.resolveVirtual(m)),locator:x})}}return Se.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:b,packagePeers:v,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Tl(this.opts.project);if(K.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(X.UNNAMED,`Removing the old ${ae.pretty(this.opts.project.configuration,kt.pnpJs,ae.Type.PATH)} file. You might need to manually update existing references to reference the new ${ae.pretty(this.opts.project.configuration,kt.pnpCjs,ae.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ae.pretty(this.opts.project.configuration,"yarn sdks",ae.Type.CODE)}.`),await K.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await K.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await K.removePromise(e.cjs),await K.removePromise(this.opts.project.configuration.get("pnpDataPath")),await K.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())Se.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=Se.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=Tl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(X.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await K.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=xAe(e);await K.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await K.removePromise(i)}else{let o=k.relative(k.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=kAe(te(N({},e),{dataLocation:o}));await K.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await K.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(X.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await K.changeFilePromise(t.esmLoader,(0,PL.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await K.removePromise(s);else for(let o of await K.readdirPromise(s)){let a=k.resolve(s,o);this.unpluggedPaths.has(a)||await K.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=k.join(n.cwd,"node_modules");if(i&&i.test(k.relative(this.opts.project.cwd,n.cwd))||!K.existsSync(s))continue;let o=await K.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(k.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged!="undefined"?i.unplugged:u8e.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=Hm(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Na(n,{baseFs:t.packageFs,pathUtils:k}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=k.join(n,t.prefixPath,".ready");await K.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,Me.dot,{baseFs:t.packageFs,overwrite:!1}),await K.writeFilePromise(s,""))})),new _t(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=Se.getMapWithDefault(this.packageRegistry,"@@disk"),i=NL(this.opts.project.cwd,e);return Se.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1}))}};function NL(r,e){let t=k.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function g8e(r){var i;let e=(i=await At.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new At,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:DL(r),hasBindingGyp:RL(r)}}}var KAe=ge(is());var jm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new Pe("This command can only be used if the `nodeLinker` option is set to `pnp`");await t.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=P.parseDescriptor(f),p=h.range!=="unknown"?h:P.makeDescriptor(h,"*");if(!Wt.validRange(p.range))throw new Pe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(e,p)})`);return m=>{let y=P.stringifyIdent(m);return!KAe.default.isMatch(y,P.stringifyIdent(p))||m.version&&!Wt.satisfiesWithPrereleases(m.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of t.storedPackages.values())!t.tryWorkspaceByLocator(h)&&!P.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],m=(y,b)=>{if(!h.has(y.locatorHash)&&(h.add(y.locatorHash),!t.tryWorkspaceByLocator(y)&&o.some(v=>v(y))&&p.push(y),!(b>0&&!this.recursive)))for(let v of y.dependencies.values()){let x=t.storedResolutions.get(v.descriptorHash);if(!x)throw new Error("Assertion failed: The resolution should have been registered");let T=t.storedPackages.get(x);if(!T)throw new Error("Assertion failed: The package should have been registered");m(T,b+1)}};for(let y of f){let b=t.storedPackages.get(y.anchoredLocator.locatorHash);if(!b)throw new Error("Assertion failed: The package should have been registered");m(b,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(t.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new Pe(`Patterns ${ae.prettyList(e,s,ae.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new Pe(`Pattern ${ae.prettyList(e,s,ae.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=Se.sortMap(c,f=>P.stringifyLocator(f)),(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let m=(h=p.version)!=null?h:"unknown",y=t.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(p,m));y.unplugged=!0,f.reportInfo(X.UNNAMED,`Will unpack ${P.prettyLocator(e,p)} to ${ae.pretty(e,Hm(p,{configuration:e}),ae.Type.PATH)}`),f.reportJson({locator:P.stringifyLocator(p),version:m})}await t.topLevelWorkspace.persistManifest(),f.reportSeparator(),await t.install({cache:n,report:f})})).exitCode()}};jm.paths=[["unplug"]],jm.usage=Re.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var UAe=jm;var Tl=r=>({cjs:k.join(r.cwd,kt.pnpCjs),cjsLegacy:k.join(r.cwd,kt.pnpJs),esmLoader:k.join(r.cwd,".pnp.loader.mjs")}),GAe=r=>/\s/.test(r)?JSON.stringify(r):r;async function f8e(r,e,t){let i=Tl(r),n=`--require ${GAe(H.fromPortablePath(i.cjs))}`;if(K.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,jAe.pathToFileURL)(H.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&HAe.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(K.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function h8e(r,e){let t=Tl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var p8e={hooks:{populateYarnPaths:h8e,setupScriptEnvironment:f8e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:Ie.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:Ie.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:Ie.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:Ie.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:Ie.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:Ie.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:Ie.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:Ie.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:Ie.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[xu],commands:[UAe]},d8e=p8e;var _Ae=ge(zAe());var UL=ge(require("crypto")),VAe=ge(require("fs")),XAe=1,jr="node_modules",ib=".bin",ZAe=".yarn-state.yml",Ti;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Ti||(Ti={}));var HL=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await Se.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await jL(t.project,{unrollAliases:!0}));if(n===null)throw new Pe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let a=new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=t.project.configuration.startingCwd;return s.locations.find(a=>k.contains(o,a))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await Se.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await jL(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=nb(k.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new $Ae(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},$Ae=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=k.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await F8e(e,t),e.linkType===Qt.HARD&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${H.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Wr({baseFs:new Is({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await jL(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=Se.validateEnum(Kn,(m=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?m:h)}catch(y){let b=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(X.INVALID_MANIFEST,`${b}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Kn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(m=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?m:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(H.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>H.fromPortablePath(Wr.resolveVirtual(H.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=Om(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=BL(a);await N8e(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(ele(f))continue;let p=P.parseLocator(f),m=this.localStore.get(p.locatorHash);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=Ca.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(X.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${ae.pretty(this.opts.project.configuration,"--preserve-symlinks",ae.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function F8e(r,e){var n;let t=(n=await At.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new At,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:Ca.getExtractHint(e),hasBindingGyp:Ca.hasBindingGyp(e)}}}async function L8e(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,s+=`# cause your node_modules installation to become invalidated. -`,s+=` -`,s+=`__metadata: -`,s+=` version: ${XAe} -`,s+=` nmMode: ${i.value} -`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` -`,s+=`${JSON.stringify(u)}: -`,s+=` locations: -`;for(let f of g.locations){let h=k.contains(r.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)} -`}if(g.aliases.length>0){s+=` aliases: -`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)} -`}if(u===a&&t.size>0){s+=` bin: -`;for(let[f,h]of t){let p=k.contains(r.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}: -`;for(let[m,y]of h){let b=k.relative(k.join(f,jr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(b)} -`}}}}let l=r.cwd,c=k.join(l,jr,ZAe);n&&await K.removePromise(c),await K.changeFilePromise(c,s,{automaticNewlines:!0})}async function jL(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=k.join(t,jr,ZAe),n;try{n=await K.statPromise(i)}catch(c){}if(!n)return null;let s=Si(await K.readFilePromise(i,"utf8"));if(s.__metadata.version>XAe)return null;let o=s.__metadata.nmMode||Ti.CLASSIC,a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>k.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let m=k.join(t,H.toPortablePath(h)),y=Se.getMapWithDefault(l,m);for(let[b,v]of Object.entries(p))y.set(Jr(b),H.toPortablePath([m,jr,v].join(k.sep)))}if(a.set(c,{target:Me.dot,linkType:Qt.HARD,locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,m),h),b=P.stringifyLocator(y);a.set(b,{target:Me.dot,linkType:Qt.HARD,locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:tle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var Ah=async(r,e)=>{if(r.split(k.sep).indexOf(jr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await K.statPromise(r):await K.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await K.unlinkPromise(r);return}}let t=await K.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=k.join(r,Jr(i.name));i.isDirectory()?(i.name!==jr||e&&e.innerLoop)&&await Ah(n,{innerLoop:!0,contentsOnly:!1}):await K.unlinkPromise(n)}e.contentsOnly||await K.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},rle=4,nb=(r,{skipPrefix:e})=>{let t=k.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(k.sep).filter(l=>l!==""),n=i.indexOf(jr),s=i.slice(0,n).join(k.sep),o=k.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},tle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:Qt.HARD});for(let[n,s]of r.entries()){if(s.linkType===Qt.SOFT&&k.contains(e,s.target)!==null){let a=Se.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=nb(o,{skipPrefix:e}),c=Se.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await K.lstatPromise(r))}catch(i){}process.platform=="win32"&&(!t||t.isDirectory())?await K.symlinkPromise(r,e,"junction"):await K.symlinkPromise(k.relative(k.dirname(e),r),e)};async function ile(r,e,t){let i=k.join(r,Jr(`${UL.default.randomBytes(16).toString("hex")}.tmp`));try{await K.writeFilePromise(i,t);try{await K.linkPromise(i,e)}catch(n){}}finally{await K.unlinkPromise(i)}}async function T8e({srcPath:r,dstPath:e,srcMode:t,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Ti.HARDLINKS_GLOBAL&&i&&o){let l=k.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await Dn.checksumFile(l,{baseFs:K,algorithm:"sha1"})!==o){let g=k.join(i,Jr(`${UL.default.randomBytes(16).toString("hex")}.tmp`));await K.renamePromise(l,g);let f=await n.readFilePromise(r);await K.writeFilePromise(g,f);try{await K.linkPromise(g,l),await K.unlinkPromise(g)}catch(h){}}await K.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(r);await ile(i,l,u);try{await K.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Ti.HARDLINKS_LOCAL,await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let a=t&511;a!==420&&await K.chmodPromise(e,a)}var Ol;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(Ol||(Ol={}));var O8e=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await K.mkdirPromise(r,{recursive:!0});let o=async(l=Me.dot)=>{let c=k.join(e,l),u=await t.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=k.join(l,f.name),p,m=k.join(c,f.name);if(f.isFile()){if(p={kind:Ol.FILE,mode:(await t.lstatPromise(m)).mode},n.value===Ti.HARDLINKS_GLOBAL){let y=await Dn.checksumFile(m,{baseFs:t,algorithm:"sha1"});p.digest=y}}else if(f.isDirectory())p={kind:Ol.DIRECTORY};else if(f.isSymbolicLink())p={kind:Ol.SYMLINK,symlinkTo:await t.readlinkPromise(m)};else throw new Error(`Unsupported file type (file: ${m}, mode: 0o${await t.statSync(m).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==jr){let y=await o(h);for(let[b,v]of y)g.set(b,v)}}return g},a;if(n.value===Ti.HARDLINKS_GLOBAL&&i&&s){let l=k.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await K.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await ile(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=k.join(e,l),g=k.join(r,l);c.kind===Ol.DIRECTORY?await K.mkdirPromise(g,{recursive:!0}):c.kind===Ol.FILE?await T8e({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:t,globalHardlinksStore:i}):c.kind===Ol.SYMLINK&&await GL(k.resolve(k.dirname(g),c.symlinkTo),g)}};function M8e(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,m=k.join(c,u),y=new Set;if(u===jr||u.startsWith("@")){let v;try{v=K.statSync(m)}catch(T){}p=!!v,v?v.mtimeMs>t?(a=!0,y=new Set(K.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let x=e.get(c);if(x){let T=k.join(c,jr,ib),q;try{q=K.statSync(T)}catch(Y){}if(!q)a=!0;else if(q.mtimeMs>t){a=!0;let Y=new Set(K.readdirSync(T)),$=new Map;s.set(c,$);for(let[_,ne]of x)Y.has(_)&&$.set(_,ne)}else s.set(c,x)}}else p=h.has(u);let b=g.children.get(u);if(p){let{linkType:v,locator:x}=b,T={children:new Map,linkType:v,locator:x};if(f.children.set(u,T),x){let q=Se.getSetWithDefault(o,x);q.add(m),o.set(x,q)}for(let q of b.children.keys())l(m,q,b,T,y)}else b.locator&&i.storedBuildState.delete(P.parseLocator(b.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=Se.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(jr)&&l(c,jr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function ele(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function K8e(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=ele(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=k.join(l[0],f);f!==""&&K.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=k.contains(t,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let m=k.join(a,H.toPortablePath(p));u.set(Jr(h),m)}for(let[h,p]of c.children){let m=k.join(a,h),y=o(m,m,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(k.join(a,f),l,h);for(let[m,y]of p)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var nle=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function YL(r){return k.join(r.get("globalFolder"),"store")}async function N8e(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=k.join(i.cwd,jr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=M8e(r.locationTree,r.binSymlinks,r.mtimeMs,i),f=tle(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:_,dstDir:ne,linkType:ee,globalHardlinksStore:A,nmMode:oe,packageChecksum:ce})=>{let Z=(async()=>{try{ee===Qt.SOFT?(await K.mkdirPromise(k.dirname(ne),{recursive:!0}),await GL(k.resolve(_),ne)):await O8e(ne,_,{baseFs:t,globalHardlinksStore:A,nmMode:oe,packageChecksum:ce})}catch(O){throw O.message=`While persisting ${_} -> ${ne} ${O.message}`,O}finally{T.tick()}})().then(()=>h.splice(h.indexOf(Z),1));h.push(Z),h.length>rle&&await Promise.race(h)},m=async(_,ne,ee)=>{let A=(async()=>{let oe=async(ce,Z,O)=>{try{O.innerLoop||await K.mkdirPromise(Z,{recursive:!0});let L=await K.readdirPromise(ce,{withFileTypes:!0});for(let de of L){if(!O.innerLoop&&de.name===ib)continue;let Be=k.join(ce,de.name),je=k.join(Z,de.name);de.isDirectory()?(de.name!==jr||O&&O.innerLoop)&&(await K.mkdirPromise(je,{recursive:!0}),await oe(Be,je,te(N({},O),{innerLoop:!0}))):$.value===Ti.HARDLINKS_LOCAL||$.value===Ti.HARDLINKS_GLOBAL?await K.linkPromise(Be,je):await K.copyFilePromise(Be,je,VAe.default.constants.COPYFILE_FICLONE)}}catch(L){throw O.innerLoop||(L.message=`While cloning ${ce} -> ${Z} ${L.message}`),L}finally{O.innerLoop||T.tick()}};await oe(_,ne,ee)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>rle&&await Promise.race(h)},y=async(_,ne,ee)=>{if(ee)for(let[A,oe]of ne.children){let ce=ee.children.get(A);await y(k.join(_,A),oe,ce)}else{ne.children.has(jr)&&await Ah(k.join(_,jr),{contentsOnly:!1});let A=k.basename(_)===jr&&f.has(k.join(k.dirname(_),k.sep));await Ah(_,{contentsOnly:_===a,allowSymlink:A})}};for(let[_,ne]of l){let ee=f.get(_);for(let[A,oe]of ne.children){if(A===".")continue;let ce=ee&&ee.children.get(A),Z=k.join(_,A);await y(Z,oe,ce)}}let b=async(_,ne,ee)=>{if(ee){nle(ne.locator,ee.locator)||await Ah(_,{contentsOnly:ne.linkType===Qt.HARD});for(let[A,oe]of ne.children){let ce=ee.children.get(A);await b(k.join(_,A),oe,ce)}}else{ne.children.has(jr)&&await Ah(k.join(_,jr),{contentsOnly:!0});let A=k.basename(_)===jr&&f.has(k.join(k.dirname(_),k.sep));await Ah(_,{contentsOnly:ne.linkType===Qt.HARD,allowSymlink:A})}};for(let[_,ne]of f){let ee=l.get(_);for(let[A,oe]of ne.children){if(A===".")continue;let ce=ee&&ee.children.get(A);await b(k.join(_,A),oe,ce)}}let v=new Map,x=[];for(let[_,ne]of u)for(let ee of ne){let{locationRoot:A,segments:oe}=nb(ee,{skipPrefix:i.cwd}),ce=f.get(A),Z=A;if(ce){for(let O of oe)if(Z=k.join(Z,O),ce=ce.children.get(O),!ce)break;if(ce){let O=nle(ce.locator,_),L=e.get(ce.locator),de=L.target,Be=Z,je=L.linkType;if(O)v.has(de)||v.set(de,Be);else if(de!==Be){let re=P.parseLocator(ce.locator);P.isVirtualLocator(re)&&(re=P.devirtualizeLocator(re)),x.push({srcDir:de,dstDir:Be,linkType:je,realLocatorHash:re.locatorHash})}}}}for(let[_,{locations:ne}]of e.entries())for(let ee of ne){let{locationRoot:A,segments:oe}=nb(ee,{skipPrefix:i.cwd}),ce=l.get(A),Z=f.get(A),O=A,L=e.get(_),de=P.parseLocator(_);P.isVirtualLocator(de)&&(de=P.devirtualizeLocator(de));let Be=de.locatorHash,je=L.target,re=ee;if(je===re)continue;let se=L.linkType;for(let be of oe)Z=Z.children.get(be);if(!ce)x.push({srcDir:je,dstDir:re,linkType:se,realLocatorHash:Be});else for(let be of oe)if(O=k.join(O,be),ce=ce.children.get(be),!ce){x.push({srcDir:je,dstDir:re,linkType:se,realLocatorHash:Be});break}}let T=Ji.progressViaCounter(x.length),q=n.reportProgress(T),Y=i.configuration.get("nmMode"),$={value:Y};try{let _=$.value===Ti.HARDLINKS_GLOBAL?`${YL(i.configuration)}/v1`:null;if(_&&!await K.existsPromise(_)){await K.mkdirpPromise(_);for(let ee=0;ee<256;ee++)await K.mkdirPromise(k.join(_,ee.toString(16).padStart(2,"0")))}for(let ee of x)(ee.linkType===Qt.SOFT||!v.has(ee.srcDir))&&(v.set(ee.srcDir,ee.dstDir),await p(te(N({},ee),{globalHardlinksStore:_,nmMode:$,packageChecksum:o.get(ee.realLocatorHash)||null})));await Promise.all(h),h.length=0;for(let ee of x){let A=v.get(ee.srcDir);ee.linkType!==Qt.SOFT&&ee.dstDir!==A&&await m(A,ee.dstDir,{nmMode:$})}await Promise.all(h),await K.mkdirPromise(a,{recursive:!0});let ne=await K8e(e,f,i.cwd,{loadManifest:s});await U8e(c,ne,i.cwd),await L8e(i,e,ne,$,{installChangedByUser:g}),Y==Ti.HARDLINKS_GLOBAL&&$.value==Ti.HARDLINKS_LOCAL&&n.reportWarningOnce(X.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{q.stop()}}async function U8e(r,e,t){for(let i of r.keys()){if(k.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=k.join(i,jr,ib);await K.removePromise(n)}}for(let[i,n]of e){if(k.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=k.join(i,jr,ib),o=r.get(i)||new Map;await K.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await K.removePromise(k.join(s,a)),process.platform==="win32"&&await K.removePromise(k.join(s,Jr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=k.join(s,a);c!==l&&(process.platform==="win32"?await(0,_Ae.default)(H.fromPortablePath(l),H.fromPortablePath(u),{createPwshFile:!1}):(await K.removePromise(u),await GL(l,u),k.contains(t,await K.realpathPromise(l))!==null&&await K.chmodPromise(l,493)))}}}var qL=class extends xu{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new sle(e)}},sle=class extends oh{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let t=new Wr({baseFs:new Is({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),i=NAe(e,this.opts.project.cwd,t),{tree:n,errors:s}=Om(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=P.parseLocator(g.locator),h=P.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=k.join(this.opts.project.cwd,kt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=k.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=k.join(g,h),m=n.get(p);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in m)a(`${u}/${h}`,m);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var H8e={hooks:{cleanGlobalArtifacts:async r=>{let e=YL(r);await K.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:Ie.STRING,values:[Kn.WORKSPACES,Kn.DEPENDENCIES,Kn.NONE],default:Kn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:Ie.STRING,values:[Ti.CLASSIC,Ti.HARDLINKS_LOCAL,Ti.HARDLINKS_GLOBAL],default:Ti.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:Ie.BOOLEAN,default:!0}},linkers:[HL,qL]},j8e=H8e;var qT={};ft(qT,{default:()=>V9e,npmConfigUtils:()=>br,npmHttpUtils:()=>zt,npmPublishUtils:()=>wh});var cle=ge(ri());var Cr="npm:";var zt={};ft(zt,{AuthType:()=>us,customPackageError:()=>q8e,del:()=>z8e,get:()=>bo,getIdentUrl:()=>Kl,handleInvalidAuthenticationError:()=>Ml,post:()=>J8e,put:()=>W8e});var Ale=ge(WC()),lle=ge(require("url"));var br={};ft(br,{RegistryType:()=>QA,getAuditRegistry:()=>G8e,getAuthConfiguration:()=>zL,getDefaultRegistry:()=>sb,getPublishRegistry:()=>ole,getRegistryConfiguration:()=>ale,getScopeConfiguration:()=>WL,getScopeRegistry:()=>SA,normalizeRegistry:()=>ma});var QA;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(QA||(QA={}));function ma(r){return r.replace(/\/$/,"")}function G8e(r,{configuration:e}){let t=e.get(QA.AUDIT_REGISTRY);return t!==null?ma(t):ole(r,{configuration:e})}function ole(r,{configuration:e}){var t;return((t=r.publishConfig)==null?void 0:t.registry)?ma(r.publishConfig.registry):r.name?SA(r.name.scope,{configuration:e,type:QA.PUBLISH_REGISTRY}):sb({configuration:e,type:QA.PUBLISH_REGISTRY})}function SA(r,{configuration:e,type:t=QA.FETCH_REGISTRY}){let i=WL(r,{configuration:e});if(i===null)return sb({configuration:e,type:t});let n=i.get(t);return n===null?sb({configuration:e,type:t}):ma(n)}function sb({configuration:r,type:e=QA.FETCH_REGISTRY}){let t=r.get(e);return ma(t!==null?t:r.get(QA.FETCH_REGISTRY))}function ale(r,{configuration:e}){let t=e.get("npmRegistries"),i=ma(r),n=t.get(i);if(typeof n!="undefined")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function WL(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function zL(r,{configuration:e,ident:t}){let i=t&&WL(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:ale(r,{configuration:e})||e}var us;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(us||(us={}));async function Ml(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(ob(r))throw new ct(X.AUTHENTICATION_INVALID,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new ct(X.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await Y8e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function q8e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Kl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function bo(r,a){var l=a,{configuration:e,headers:t,ident:i,authType:n,registry:s}=l,o=Or(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=SA(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await ab(s,{authType:n,configuration:e,ident:i});c&&(t=te(N({},t),{authorization:c}));try{return await ir.get(r.charAt(0)==="/"?`${s}${r}`:r,N({configuration:e,headers:t},o))}catch(u){throw await Ml(u,{registry:s,configuration:e,headers:t}),u}}async function J8e(r,e,u){var g=u,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Or(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=SA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await ab(a,{authType:o,configuration:i,ident:s});f&&(n=te(N({},n),{authorization:f})),l&&(n=N(N({},n),lh(l)));try{return await ir.post(a+r,e,N({configuration:i,headers:n},c))}catch(h){if(!ob(h)||l)throw await Ml(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h;l=await _L();let p=N(N({},n),lh(l));try{return await ir.post(`${a}${r}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Ml(m,{attemptedAs:t,registry:a,configuration:i,headers:n}),m}}}async function W8e(r,e,u){var g=u,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Or(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=SA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await ab(a,{authType:o,configuration:i,ident:s});f&&(n=te(N({},n),{authorization:f})),l&&(n=N(N({},n),lh(l)));try{return await ir.put(a+r,e,N({configuration:i,headers:n},c))}catch(h){if(!ob(h))throw await Ml(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h;l=await _L();let p=N(N({},n),lh(l));try{return await ir.put(`${a}${r}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Ml(m,{attemptedAs:t,registry:a,configuration:i,headers:n}),m}}}async function z8e(r,c){var u=c,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a}=u,l=Or(u,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(n&&typeof o=="undefined"&&(o=SA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let g=await ab(o,{authType:s,configuration:t,ident:n});g&&(i=te(N({},i),{authorization:g})),a&&(i=N(N({},i),lh(a)));try{return await ir.del(o+r,N({configuration:t,headers:i},l))}catch(f){if(!ob(f)||a)throw await Ml(f,{attemptedAs:e,registry:o,configuration:t,headers:i}),f;a=await _L();let h=N(N({},i),lh(a));try{return await ir.del(`${o}${r}`,N({configuration:t,headers:h},l))}catch(p){throw await Ml(p,{attemptedAs:e,registry:o,configuration:t,headers:i}),p}}}async function ab(r,{authType:e=2,configuration:t,ident:i}){let n=zL(r,{configuration:t,ident:i}),s=_8e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new ct(X.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function _8e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function Y8e(r,e,{configuration:t}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await ir.get(new lle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function _L(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:r}=await(0,Ale.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return r}function ob(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function lh(r){return{["npm-otp"]:r}}var VL=class{supports(e,t){if(!e.reference.startsWith(Cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!cle.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await bo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Bi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var XL=class{supportsDescriptor(e,t){return!(!e.range.startsWith(Cr)||!P.tryParseDescriptor(e.range.slice(Cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(Cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var ule=ge(ri()),gle=ge(require("url"));var Qo=class{supports(e,t){if(!e.reference.startsWith(Cr))return!1;let i=new gle.URL(e.reference);return!(!ule.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await bo(Qo.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){i=await bo(Qo.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Bi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=SA(e.scope,{configuration:i}),s=Qo.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Wt.clean(e.reference.slice(Cr.length));if(t===null)throw new ct(X.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${Kl(e)}/-/${e.name}-${t}.tgz`}};var fle=ge(ri());var Ab=P.makeIdent(null,"node-gyp"),V8e=/\b(node-gyp|prebuild-install)\b/,ZL=class{supportsDescriptor(e,t){return e.range.startsWith(Cr)?!!Wt.validRange(e.range.slice(Cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(Cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!fle.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);let s=await bo(Kl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Se.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Wt.SemVer(c);if(n.test(u))return u}catch{}return Se.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${Cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Qo.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);return Se.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:Cr}),a=new Wt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return Se.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=Wt.clean(i);if(n===null)throw new ct(X.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await bo(Kl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new ct(X.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new At;if(o.load(s.versions[n]),!o.dependencies.has(Ab.identHash)&&!o.peerDependencies.has(Ab.identHash)){for(let a of o.scripts.values())if(a.match(V8e)){o.dependencies.set(Ab.identHash,P.makeDescriptor(Ab,"latest")),t.report.reportWarningOnce(X.NODE_GYP_INJECTED,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(X.DEPRECATED_PACKAGE,l)}return te(N({},e),{version:n,languageName:"node",linkType:Qt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var $L=class{supportsDescriptor(e,t){return!(!e.range.startsWith(Cr)||!zg.test(e.range.slice(Cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(Cr.length),s=await bo(Kl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new ct(X.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${Cr}${a}`),c=s.versions[a].dist.tarball;return Qo.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var wh={};ft(wh,{getGitHead:()=>z9e,makePublishBody:()=>W9e});var HT={};ft(HT,{default:()=>k9e,packUtils:()=>PA});var PA={};ft(PA,{genPackList:()=>Pb,genPackStream:()=>UT,genPackageManifest:()=>Hce,hasPackScripts:()=>MT,prepareForPack:()=>KT});var OT=ge(is()),Kce=ge(Mce()),Uce=ge(require("zlib")),m9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],E9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function MT(r){return!!(Zt.hasWorkspaceScript(r,"prepack")||Zt.hasWorkspaceScript(r,"postpack"))}async function KT(r,{report:e},t){await Zt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=k.join(r.cwd,At.fileName);await K.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:K}),await t()}finally{await Zt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function UT(r,e){var s,o;typeof e=="undefined"&&(e=await Pb(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(k.normalize(a));for(let a of r.manifest.bin.values())t.add(k.normalize(a));let i=Kce.default.pack();process.nextTick(async()=>{for(let a of e){let l=k.normalize(a),c=k.resolve(r.cwd,l),u=k.join("package",l),g=await K.lstatPromise(c),f={name:u,mtime:new Date(Rr.SAFE_TIME*1e3)},h=t.has(l)?493:420,p,m,y=new Promise((v,x)=>{p=v,m=x}),b=v=>{v?m(v):p()};if(g.isFile()){let v;l==="package.json"?v=Buffer.from(JSON.stringify(await Hce(r),null,2)):v=await K.readFilePromise(c),i.entry(te(N({},f),{mode:h,type:"file"}),v,b)}else g.isSymbolicLink()?i.entry(te(N({},f),{mode:h,type:"symlink",linkname:await K.readlinkPromise(c)}),b):b(new Error(`Unsupported file type ${g.mode} for ${H.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Uce.createGzip)();return i.pipe(n),n}async function Hce(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Pb(r){var g,f,h,p,m,y,b,v;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let x of E9e)i.reject.push(x);for(let x of m9e)i.accept.push(x);i.reject.push(t.get("rcFilename"));let n=x=>{if(x===null||!x.startsWith(`${r.cwd}/`))return;let T=k.relative(r.cwd,x),q=k.resolve(Me.root,T);i.reject.push(q)};n(k.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(x=>x.populateYarnPaths,e,x=>{n(x)});for(let x of e.workspaces){let T=k.relative(r.cwd,x.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?f:r.manifest.main,a=(p=(h=r.manifest.publishConfig)==null?void 0:h.module)!=null?p:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(v=(b=r.manifest.publishConfig)==null?void 0:b.bin)!=null?v:r.manifest.bin;o!=null&&s.accept.push(k.resolve(Me.root,o)),a!=null&&s.accept.push(k.resolve(Me.root,a)),typeof l=="string"&&s.accept.push(k.resolve(Me.root,l));for(let x of c.values())s.accept.push(k.resolve(Me.root,x));if(l instanceof Map)for(let[x,T]of l.entries())s.accept.push(k.resolve(Me.root,x)),typeof T=="string"&&s.accept.push(k.resolve(Me.root,T));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let x of r.manifest.files)jce(s.accept,x,{cwd:Me.root})}return await I9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function I9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new La(r),o=[[Me.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Yce(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Me.root)for(let m of u)g=g||m===".gitignore",f=f||m===".npmignore";let h=f?await Gce(s,a,".npmignore"):g?await Gce(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;Yce(a,{globalList:t,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([k.resolve(a,m),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(k.relative(Me.root,a))}return n.sort()}async function Gce(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(k.join(e,t),"utf8");for(let s of n.split(/\n/g))jce(i.reject,s,{cwd:e});return i}function y9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=k.resolve(e,r)),t&&(r=`!${r}`),r}function jce(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(y9e(i,{cwd:t}))}var gs;(function(i){i[i.None=0]="None",i[i.Match=1]="Match",i[i.NegatedMatch=2]="NegatedMatch"})(gs||(gs={}));function Yce(r,{globalList:e,ignoreLists:t}){let i=Db(r,e.accept);if(i!==0)return i===2;let n=Db(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Db(r,s.accept);if(o!==0)return o===2;let a=Db(r,s.reject);if(a!==0)return a===1}return!1}function Db(r,e){let t=e,i=[];for(let n=0;n{await KT(i,{report:l},async()=>{l.reportJson({base:H.fromPortablePath(i.cwd)});let c=await Pb(i);for(let u of c)l.reportInfo(null,H.fromPortablePath(u)),l.reportJson({location:H.fromPortablePath(u)});if(!this.dryRun){let u=await UT(i,c),g=K.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo(X.UNNAMED,`Package archive generated in ${ae.pretty(e,s,ae.Type.PATH)}`),l.reportJson({output:H.fromPortablePath(s)}))})).exitCode()}};rE.paths=[["pack"]],rE.usage=Re.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var Jce=rE;function w9e(r,{workspace:e}){let t=r.replace("%s",B9e(e)).replace("%v",b9e(e));return H.toPortablePath(t)}function B9e(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function b9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var Q9e=["dependencies","devDependencies","peerDependencies"],S9e="workspace:",v9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of Q9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===S9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new ct(X.WORKSPACE_NOT_FOUND,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},x9e={hooks:{beforeWorkspacePacking:v9e},commands:[Jce]},k9e=x9e;var tue=ge(require("crypto")),rue=ge(eue()),iue=ge(require("url"));async function W9e(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.project.configuration,a=r.manifest.name,l=r.manifest.version,c=P.stringifyIdent(a),u=(0,tue.createHash)("sha1").update(e).digest("hex"),g=rue.default.fromData(e).toString();typeof t=="undefined"&&(r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?t=r.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?t=o.get("npmPublishAccess"):a.scope?t="restricted":t="public");let f=await PA.genPackageManifest(r),h=`${c}-${l}.tgz`,p=new iue.URL(`${ma(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:t,["dist-tags"]:{[i]:l},versions:{[l]:te(N({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function z9e(r){try{let{stdout:e}=await Nr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}var JT={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:Ie.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:Ie.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:Ie.SECRET,default:null}},nue={npmAuditRegistry:{description:"Registry to query for audit reports",type:Ie.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:Ie.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:Ie.STRING,default:"https://registry.yarnpkg.com"}},_9e={configuration:te(N(N({},JT),nue),{npmScopes:{description:"Settings per package scope",type:Ie.MAP,valueDefinition:{description:"",type:Ie.SHAPE,properties:N(N({},JT),nue)}},npmRegistries:{description:"Settings per registry",type:Ie.MAP,normalizeKeys:ma,valueDefinition:{description:"",type:Ie.SHAPE,properties:N({},JT)}}}),fetchers:[VL,Qo],resolvers:[XL,ZL,$L]},V9e=_9e;var VT={};ft(VT,{default:()=>s_e});ys();var Ba;(function(i){i.All="all",i.Production="production",i.Development="development"})(Ba||(Ba={}));var vo;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(vo||(vo={}));var Rb=[vo.Info,vo.Low,vo.Moderate,vo.High,vo.Critical];function sue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function X9e(r,e){return new Set([...r].filter(t=>!e.has(t)))}function Z9e(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=sue(r,l),g=sue(r,c);return X9e(g,u)}function oue(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function aue(r){if(typeof r=="undefined")return new Set;let e=Rb.indexOf(r),t=Rb.slice(e);return new Set(t)}function $9e(r,e){let t=aue(e),i={};for(let n of t)i[n]=r[n];return i}function Aue(r,e){var i;let t=$9e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function lue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=aue(e);n=n.filter(a=>o.has(a.severity))}for(let o of Se.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ae.tuple(ae.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:ae.tuple(ae.Type.NO_HINT,o.title)},URL:{label:"URL",value:ae.tuple(ae.Type.URL,o.url)},Severity:{label:"Severity",value:ae.tuple(ae.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ae.tuple(ae.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ae.tuple(ae.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ae.tuple(ae.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ae.tuple(ae.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function cue(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=[Ba.All,Ba.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[Ba.All,Ba.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return oue([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function uue(r,e,{all:t}){var s;let i=Z9e(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:oue(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var sE=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=J.String("--environment",Ba.All,{description:"Which environments to cover",validator:nn(Ba)});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=J.String("--severity",vo.Info,{description:"Minimal severity requested for packages to be displayed",validator:nn(vo)})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=cue(t,i,{all:this.all,environment:this.environment}),s=uue(t,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=br.getAuditRegistry(i.manifest,{configuration:e}),l,c=await pA.start({configuration:e,stdout:this.context.stdout},async()=>{l=await zt.post("/-/npm/v1/security/audits/quick",o,{authType:zt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=Aue(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(ls.emitTree(lue(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo(X.EXCEPTION,"No audit suggestions")})).exitCode()}};sE.paths=[["npm","audit"]],sE.usage=Re.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${Rb.map(e=>`\`${e}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var gue=sE;var WT=ge(ri()),zT=ge(require("util")),oE=class extends Le{constructor(){super(...arguments);this.fields=J.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let x=t.topLevelWorkspace;if(!x.manifest.name)throw new Pe(`Missing ${ae.pretty(e,"name",ae.Type.CODE)} field in ${H.fromPortablePath(k.join(x.cwd,kt.manifest))}`);c=P.makeDescriptor(x.manifest.name,"unknown")}else c=P.parseDescriptor(l);let u=zt.getIdentUrl(c),g=_T(await zt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:zt.customPackageError})),f=Object.keys(g.versions).sort(WT.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],m=Wt.validRange(c.range);if(m){let x=WT.default.maxSatisfying(f,m);x!==null?p=x:(a.reportWarning(X.UNNAMED,`Unmet range ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else Object.prototype.hasOwnProperty.call(g["dist-tags"],c.range)?p=g["dist-tags"][c.range]:c.range!=="unknown"&&(a.reportWarning(X.UNNAMED,`Unknown tag ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let y=g.versions[p],b=te(N(N({},g),y),{version:p,versions:f}),v;if(i!==null){v={};for(let x of i){let T=b[x];if(typeof T!="undefined")v[x]=T;else{a.reportWarning(X.EXCEPTION,`The ${ae.pretty(e,x,ae.Type.CODE)} field doesn't exist inside ${P.prettyIdent(e,c)}'s information`),s=!0;continue}}}else this.json||(delete b.dist,delete b.readme,delete b.users),v=b;a.reportJson(v),this.json||n.push(v)}});zT.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,zT.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} -`);return o.exitCode()}};oE.paths=[["npm","info"]],oE.usage=Re.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var fue=oE;function _T(r){if(Array.isArray(r)){let e=[];for(let t of r)t=_T(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=_T(r[t]);i&&(e[t]=i)}return e}else return r||null}var hue=ge(WC()),aE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=await Fb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await t_e({registry:t,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await zt.put(o,s,{attemptedAs:s.name,configuration:e,registry:t,jsonResponse:!0,authType:zt.AuthType.NO_AUTH});return await e_e(t,a.token,{configuration:e,scope:this.scope}),n.reportInfo(X.UNNAMED,"Successfully logged in")})).exitCode()}};aE.paths=[["npm","login"]],aE.usage=Re.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var pue=aE;async function Fb({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?br.getScopeRegistry(r,{configuration:t,type:br.RegistryType.PUBLISH_REGISTRY}):r?br.getScopeRegistry(r,{configuration:t}):e?br.getPublishRegistry((await Wf(t,i)).manifest,{configuration:t}):br.getDefaultRegistry({configuration:t})}async function e_e(r,e,{configuration:t,scope:i}){let n=o=>a=>{let l=Se.isIndexableObject(a)?a:{},c=l[o],u=Se.isIndexableObject(c)?c:{};return te(N({},l),{[o]:te(N({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await ye.updateHomeConfiguration(s)}async function t_e({registry:r,report:e,stdin:t,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(X.UNNAMED,`Logging in to ${r}`);let n=!1;r.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(X.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,hue.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:t,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:t,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var Bh=new Set(["npmAuthIdent","npmAuthToken"]),AE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=J.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=async()=>{var l;let n=await Fb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await ye.find(this.context.cwd,this.context.plugins),o=P.makeIdent((l=this.scope)!=null?l:null,"pkg");return!br.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await r_e(),n.reportInfo(X.UNNAMED,"Successfully logged out from everything")),this.scope){await due("npmScopes",this.scope),await t()?n.reportInfo(X.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(X.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await Fb({configuration:e,cwd:this.context.cwd,publish:this.publish});await due("npmRegistries",s),await t()?n.reportInfo(X.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(X.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};AE.paths=[["npm","logout"]],AE.usage=Re.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Cue=AE;function i_e(r,e){let t=r[e];if(!Se.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...Bh].every(s=>!i.has(s)))return!1;for(let s of Bh)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n=N({},t);for(let s of Bh)delete n[s];return r[e]=n,!0}async function r_e(){let r=e=>{let t=!1,i=Se.isIndexableObject(e)?N({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))i_e(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await ye.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function due(r,e){return await ye.updateHomeConfiguration({[r]:t=>{let i=Se.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=Se.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Bh].every(l=>!o.has(l)))return t;for(let l of Bh)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:te(N({},i),{[e]:void 0});let a={};for(let l of Bh)a[l]=void 0;return te(N({},i),{[e]:N(N({},s),a)})}})}var lE=class extends Le{constructor(){super(...arguments);this.access=J.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=J.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=J.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=J.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);if(i.manifest.private)throw new Pe("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new Pe("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=br.getPublishRegistry(i.manifest,{configuration:e});return(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await zt.get(zt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(X.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Zt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await PA.prepareForPack(i,{report:l},async()=>{let g=await PA.genPackList(i);for(let y of g)l.reportInfo(null,y);let f=await PA.genPackStream(i,g),h=await Se.bufferStream(f),p=await wh.getGitHead(i.cwd),m=await wh.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await zt.put(zt.getIdentUrl(n),m,{configuration:e,registry:o,ident:n,otp:this.otp,jsonResponse:!0})}),l.reportInfo(X.UNNAMED,"Package archive published")})).exitCode()}};lE.paths=[["npm","publish"]],lE.usage=Re.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var mue=lE;var Iue=ge(ri());var cE=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=J.String({required:!1})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=P.parseIdent(this.package);else{if(!i)throw new ht(t.cwd,this.context.cwd);if(!i.manifest.name)throw new Pe(`Missing 'name' field in ${H.fromPortablePath(k.join(i.cwd,kt.manifest))}`);n=i.manifest.name}let s=await uE(n,e),a={children:Se.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ae.tuple(ae.Type.RESOLUTION,{descriptor:P.makeDescriptor(n,l),locator:P.makeLocator(n,c)})}))};return ls.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};cE.paths=[["npm","tag","list"]],cE.usage=Re.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var Eue=cE;async function uE(r,e){let t=`/-/package${zt.getIdentUrl(r)}/dist-tags`;return zt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:zt.customPackageError})}var gE=class extends Le{constructor(){super(...arguments);this.package=J.String();this.tag=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=P.parseDescriptor(this.package,!0),s=n.range;if(!Iue.default.valid(s))throw new Pe(`The range ${ae.pretty(e,n.range,ae.Type.RANGE)} must be a valid semver version`);let o=br.getPublishRegistry(i.manifest,{configuration:e}),a=ae.pretty(e,n,ae.Type.IDENT),l=ae.pretty(e,s,ae.Type.RANGE),c=ae.pretty(e,this.tag,ae.Type.CODE);return(await Je.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await uE(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning(X.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo(X.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};gE.paths=[["npm","tag","add"]],gE.usage=Re.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var yue=gE;var fE=class extends Le{constructor(){super(...arguments);this.package=J.String();this.tag=J.String()}async execute(){if(this.tag==="latest")throw new Pe("The 'latest' tag cannot be removed.");let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=P.parseIdent(this.package),s=br.getPublishRegistry(i.manifest,{configuration:e}),o=ae.pretty(e,this.tag,ae.Type.CODE),a=ae.pretty(e,n,ae.Type.IDENT),l=await uE(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new Pe(`${o} is not a tag of package ${a}`);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo(X.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};fE.paths=[["npm","tag","remove"]],fE.usage=Re.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var wue=fE;var hE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t;return this.scope&&this.publish?t=br.getScopeRegistry(this.scope,{configuration:e,type:br.RegistryType.PUBLISH_REGISTRY}):this.scope?t=br.getScopeRegistry(this.scope,{configuration:e}):this.publish?t=br.getPublishRegistry((await Wf(e,this.context.cwd)).manifest,{configuration:e}):t=br.getDefaultRegistry({configuration:e}),(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await zt.get("/-/whoami",{configuration:e,registry:t,authType:zt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(X.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(X.UNNAMED,s.username)})).exitCode()}};hE.paths=[["npm","whoami"]],hE.usage=Re.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var Bue=hE;var n_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:Ie.STRING,default:null}},commands:[gue,fue,pue,Cue,mue,yue,Eue,wue,Bue]},s_e=n_e;var nO={};ft(nO,{default:()=>y_e,patchUtils:()=>XT});var XT={};ft(XT,{applyPatchFile:()=>Tb,diffFolders:()=>tO,extractPackageToDisk:()=>eO,extractPatchFlags:()=>Due,isParentRequired:()=>$T,loadPatchFiles:()=>mE,makeDescriptor:()=>m_e,makeLocator:()=>ZT,parseDescriptor:()=>dE,parseLocator:()=>CE,parsePatchFile:()=>Lb});var pE=class extends Error{constructor(e,t){super(`Cannot apply hunk #${e+1}`);this.hunk=t}};var o_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function bh(r){return k.relative(Me.root,k.resolve(Me.root,H.toPortablePath(r)))}function a_e(r){let e=r.trim().match(o_e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var A_e=420,l_e=493,Zr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Zr||(Zr={}));var bue=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),c_e=r=>({header:a_e(r),parts:[]}),u_e={["@"]:"header",["-"]:Zr.Deletion,["+"]:Zr.Insertion,[" "]:Zr.Context,["\\"]:"pragma",undefined:Zr.Context};function f_e(r){let e=[],t=bue(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=bue()}for(let l=0;l0?"patch":"mode change",v=null;switch(b){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:bh(u),toPath:bh(g)}),v=g}break;case"file deletion":{let x=n||p;if(!x)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:bh(x),mode:Nb(l),hash:f})}break;case"file creation":{let x=s||m;if(!x)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:bh(x),mode:Nb(c),hash:h})}break;case"patch":case"mode change":v=m||s;break;default:Se.assertNever(b);break}v&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:bh(v),oldMode:Nb(o),newMode:Nb(a)}),v&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:bh(v),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Nb(r){let e=parseInt(r,8)&511;if(e!==A_e&&e!==l_e)throw new Error(`Unexpected file mode string: ${r}`);return e}function Lb(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),h_e(f_e(e))}function g_e(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case Zr.Context:t+=n.length,e+=n.length;break;case Zr.Deletion:e+=n.length;break;case Zr.Insertion:t+=n.length;break;default:Se.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}async function Qh(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n!="undefined"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function Tb(r,{baseFs:e=new ar,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Wt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Qh(e,k.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Qh(e,k.dirname(n.fromPath),async()=>{await Qh(e,k.dirname(n.toPath),async()=>{await Qh(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` -`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(k.dirname(n.path),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Rr.SAFE_TIME,Rr.SAFE_TIME)}break;case"patch":await Qh(e,n.path,async()=>{await p_e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(Que(n.newMode)!==Que(o))continue;await Qh(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Se.assertNever(n);break}}function Que(r){return(r&64)>0}function Sue(r){return r.replace(/\s+$/,"")}function d_e(r,e){return Sue(r)===Sue(e)}async function p_e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),m=Math.max(h,p),y=0,b=0,v=null;for(;y<=m;){if(y<=h&&(b=f-y,v=vue(g,o,b),v!==null)){y=-y;break}if(y<=p&&(b=f+y,v=vue(g,o,b),v!==null))break;y+=1}if(v===null)throw new pE(r.indexOf(g),g);a.push(v),l+=y,c=b+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:Se.assertNever(f);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function vue(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case Zr.Context:case Zr.Deletion:{for(let s of n.lines){let o=e[t];if(o==null||!d_e(o,s))return null;t+=1}n.type===Zr.Deletion&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Zr.Insertion:i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:Se.assertNever(n.type);break}return i}var C_e=/^builtin<([^>]+)>$/;function xue(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>H.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function dE(r){let i=xue(r.range,P.parseDescriptor),{sourceItem:e}=i,t=Or(i,["sourceItem"]);return te(N({},t),{sourceDescriptor:e})}function CE(r){let i=xue(r.reference,P.parseLocator),{sourceItem:e}=i,t=Or(i,["sourceItem"]);return te(N({},t),{sourceLocator:e})}function kue({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:N(N(N({},a),l),o)})}function m_e(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeLocator(r,kue({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function ZT(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,kue({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function Pue({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(C_e);return s!==null?t(s[1]):k.isAbsolute(i)?r(i):e(i)}function Due(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function $T(r){return Pue({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function mE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new _t(Me.root),prefixPath:k.relative(Me.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Se.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Due(o),l=await Pue({onAbsolute:async()=>await K.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(k.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return te(N({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function eO(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new di,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await K.mktempPromise(),c=k.join(l,"source"),u=k.join(l,"user"),g=k.join(l,".yarn-patch.json");return await Promise.all([K.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),K.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),K.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),K.detachTemp(l),u}async function tO(r,e){let t=H.fromPortablePath(r).replace(/\\/g,"/"),i=H.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Nr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:H.toPortablePath(process.cwd()),env:te(N({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Se.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Se.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Se.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Se.escapeRegExp(`${i}/`),"g"),"")}function Rue(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case Zr.Context:t.reportInfo(null,` ${ae.pretty(e,n,"grey")}`);break;case Zr.Deletion:t.reportError(X.FROZEN_LOCKFILE_EXCEPTION,`- ${ae.pretty(e,n,ae.Type.REMOVED)}`);break;case Zr.Insertion:t.reportError(X.FROZEN_LOCKFILE_EXCEPTION,`+ ${ae.pretty(e,n,ae.Type.ADDED)}`);break;default:Se.assertNever(i.type)}}var rO=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=CE(e),a=await mE(i,o,t),l=await K.mktempPromise(),c=k.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await fn(),h=new li(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Se.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:m}of a){if(p===null)continue;let y=new li(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),b=new _t(k.resolve(Me.root,g),{baseFs:y});try{await Tb(Lb(p),{baseFs:b,version:s})}catch(v){if(!(v instanceof pE))throw v;let x=t.project.configuration.get("enableInlineHunks"),T=!x&&!m?" (set enableInlineHunks for details)":"",q=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${T}`,Y=$=>{!x||Rue(v.hunk,{configuration:t.project.configuration,report:$})};if(y.discardAndClose(),m){t.report.reportWarningOnce(X.PATCH_HUNK_FAILED,q,{reportExtra:Y});continue}else throw new ct(X.PATCH_HUNK_FAILED,q,Y)}y.saveAndClose()}return new li(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var E_e=3,iO=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=dE(e);return n.every(s=>!$T(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=dE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=dE(e),a=await mE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=Dn.makeHash(`${E_e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[ZT(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=CE(e),n=await t.resolver.resolve(i,t);return N(N({},n),e)}};var EE=class extends Le{constructor(){super(...arguments);this.save=J.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=k.resolve(this.context.cwd,H.toPortablePath(this.patchFolder)),s=k.join(n,"../source"),o=k.join(n,"../.yarn-patch.json");if(!K.existsSync(s))throw new Pe("The argument folder didn't get created by 'yarn patch'");let a=await tO(s,n),l=await K.readJsonPromise(o),c=P.parseLocator(l.locator,!0);if(!t.storedPackages.has(c.locatorHash))throw new Pe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=k.join(u,`${P.slugifyLocator(c)}.patch`);await K.mkdirPromise(u,{recursive:!0}),await K.writeFilePromise(g,a);let f=k.relative(t.cwd,g);t.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(c),description:l.version}},reference:`patch:${P.stringifyLocator(c)}#${f}`}),await t.persist()}};EE.paths=[["patch-commit"]],EE.usage=Re.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var Fue=EE;var IE=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let s=P.parseLocator(this.package);if(s.reference==="unknown"){let o=Se.mapAndFilter([...t.storedPackages.values()],a=>a.identHash!==s.identHash?Se.mapAndFilter.skip:P.isVirtualLocator(a)?Se.mapAndFilter.skip:a);if(o.length===0)throw new Pe("No package found in the project for the given locator");if(o.length>1)throw new Pe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): -${o.map(a=>` -- ${P.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!t.storedPackages.has(s.locatorHash))throw new Pe("No package found in the project for the given locator");await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await eO(s,{cache:n,project:t});o.reportJson({locator:P.stringifyLocator(s),path:H.fromPortablePath(a)}),o.reportInfo(X.UNNAMED,`Package ${P.prettyLocator(e,s)} got extracted with success!`),o.reportInfo(X.UNNAMED,`You can now edit the following folder: ${ae.pretty(e,H.fromPortablePath(a),"magenta")}`),o.reportInfo(X.UNNAMED,`Once you are done run ${ae.pretty(e,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${H.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};IE.paths=[["patch"]],IE.usage=Re.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var Nue=IE;var I_e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:Ie.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:Ie.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[Fue,Nue],fetchers:[rO],resolvers:[iO]},y_e=I_e;var AO={};ft(AO,{default:()=>b_e});var sO=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=oO(),n=t.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s=="undefined")throw new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=oO(),n=t.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=k.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new Lue(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Lue=class{constructor(e){this.opts=e;this.asyncActions=new Se.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return oO()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case Qt.SOFT:return this.installPackageSoft(e,t,i);case Qt.HARD:return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=k.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=w_e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await K.mkdirPromise(n,{recursive:!0}),await K.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await At.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new At,misc:{hasBindingGyp:Ca.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=Ca.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Mue(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=k.join(n,kt.nodeModules),o=[],a=await Kue(s);for(let[l,c]of t){let u=c;Mue(c,{project:this.opts.project})||(this.opts.report.reportWarning(X.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=k.join(s,f),p=k.relative(k.dirname(h),g),m=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await K.readlinkPromise(h)===p)return;await K.removePromise(h)}await K.mkdirpPromise(k.dirname(h)),process.platform=="win32"?await K.symlinkPromise(g,h,"junction"):await K.symlinkPromise(p,h)}))}o.push(Uue(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Oue(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await K.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=k.contains(e,s);if(o!==null){let[a,,...l]=o.split(k.sep);i.add(a);let c=k.join(e,a);t.push(K.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=k.join(c,g);if(g===kt.nodeModules){let h=await Kue(f);return h.delete(l.join(k.sep)),Uue(f,h)}else return K.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await K.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(K.removePromise(k.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await aO(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await aO(Tue(this.opts.project)),{customData:this.customData}}};function oO(){return JSON.stringify({name:"PnpmInstaller",version:2})}function Tue(r){return k.join(r.cwd,kt.nodeModules)}function Oue(r){return k.join(Tue(r),".store")}function w_e(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return k.join(Oue(e),t,i)}function Mue(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function Kue(r){let e=new Map,t=[];try{t=await K.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await K.readdirPromise(k.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function Uue(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(K.removePromise(k.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>aO(k.join(r,s)))))}async function aO(r){try{await K.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var B_e={linkers:[sO]},b_e=B_e;var L0=()=>({modules:new Map([["@yarnpkg/cli",GC],["@yarnpkg/core",EC],["@yarnpkg/fslib",Zh],["@yarnpkg/libzip",Md],["@yarnpkg/parsers",op],["@yarnpkg/shell",Ud],["clipanion",cZ(Cp)],["semver",Q_e],["typanion",cg],["yup",S_e],["@yarnpkg/plugin-essentials",GN],["@yarnpkg/plugin-compat",zN],["@yarnpkg/plugin-dlx",_N],["@yarnpkg/plugin-file",nL],["@yarnpkg/plugin-git",jN],["@yarnpkg/plugin-github",oL],["@yarnpkg/plugin-http",lL],["@yarnpkg/plugin-init",fL],["@yarnpkg/plugin-link",mL],["@yarnpkg/plugin-nm",JL],["@yarnpkg/plugin-npm",qT],["@yarnpkg/plugin-npm-cli",VT],["@yarnpkg/plugin-pack",HT],["@yarnpkg/plugin-patch",nO],["@yarnpkg/plugin-pnp",LL],["@yarnpkg/plugin-pnpm",AO]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});s0({binaryVersion:Ur||"",pluginConfiguration:L0()});})(); -/*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - */ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ diff --git a/.yarn/releases/yarn-3.6.3.cjs b/.yarn/releases/yarn-3.6.3.cjs new file mode 100755 index 00000000..9837c302 --- /dev/null +++ b/.yarn/releases/yarn-3.6.3.cjs @@ -0,0 +1,874 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Dge=Object.create;var lS=Object.defineProperty;var kge=Object.getOwnPropertyDescriptor;var Rge=Object.getOwnPropertyNames;var Fge=Object.getPrototypeOf,Nge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Tge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Lge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rge(e))!Nge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=kge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Dge(Fge(r)):{},Lge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var PK=w((z7e,xK)=>{xK.exports=vK;vK.sync=ife;var QK=J("fs");function rfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{FK.exports=kK;kK.sync=nfe;var DK=J("fs");function kK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:RK(n,e))})}function nfe(r,e){return RK(DK.statSync(r),e)}function RK(r,e){return r.isFile()&&sfe(r,e)}function sfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var LK=w((Z7e,TK)=>{var X7e=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=PK():lI=NK();TK.exports=SS;SS.sync=ofe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function ofe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=w((_7e,GK)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),afe=Dg?";":":",OK=LK(),KK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),UK=(r,e)=>{let t=e.colon||afe,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},HK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=UK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(KK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=MK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];OK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Afe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=UK(r,e),s=[];for(let o=0;o{"use strict";var jK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=jK;vS.exports.default=jK});var VK=w((eZe,zK)=>{"use strict";var JK=J("path"),lfe=YK(),cfe=qK();function WK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=lfe.sync(r.command,{path:t[cfe({env:t})],pathExt:e?JK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=JK.resolve(n?r.options.cwd:"",o)),o}function ufe(r){return WK(r)||WK(r,!0)}zK.exports=ufe});var XK=w((tZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function gfe(r){return r=r.replace(xS,"^$1"),r}function ffe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=gfe;PS.exports.argument=ffe});var _K=w((rZe,ZK)=>{"use strict";ZK.exports=/^#!(.*)/});var eU=w((iZe,$K)=>{"use strict";var hfe=_K();$K.exports=(r="")=>{let e=r.match(hfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var rU=w((nZe,tU)=>{"use strict";var DS=J("fs"),pfe=eU();function dfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return pfe(t.toString())}tU.exports=dfe});var oU=w((sZe,sU)=>{"use strict";var Cfe=J("path"),iU=VK(),nU=XK(),mfe=rU(),Efe=process.platform==="win32",Ife=/\.(?:com|exe)$/i,yfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function wfe(r){r.file=iU(r);let e=r.file&&mfe(r.file);return e?(r.args.unshift(r.file),r.command=e,iU(r)):r.file}function Bfe(r){if(!Efe)return r;let e=wfe(r),t=!Ife.test(e);if(r.options.forceShell||t){let i=yfe.test(e);r.command=Cfe.normalize(r.command),r.command=nU.command(r.command),r.args=r.args.map(s=>nU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function bfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Bfe(i)}sU.exports=bfe});var lU=w((oZe,AU)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Qfe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=aU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function aU(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Sfe(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}AU.exports={hookChildProcess:Qfe,verifyENOENT:aU,verifyENOENTSync:Sfe,notFoundError:RS}});var TS=w((aZe,kg)=>{"use strict";var cU=J("child_process"),FS=oU(),NS=lU();function uU(r,e,t){let i=FS(r,e,t),n=cU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function vfe(r,e,t){let i=FS(r,e,t),n=cU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}kg.exports=uU;kg.exports.spawn=uU;kg.exports.sync=vfe;kg.exports._parse=FS;kg.exports._enoent=NS});var fU=w((AZe,gU)=>{"use strict";function xfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Zl)}xfe(Zl,Error);Zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Mr="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ks=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",rs=me("$'",!1),fa="'",dA=me("'",!1),cg=function(m){return[{type:"text",text:m}]},is='""',CA=me('""',!1),ha=function(){return{type:"text",text:""}},wp='"',mA=me('"',!1),EA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Tl=function(m){return{type:"shell",shell:m,quoted:!0}},ug=function(m){return{type:"variable",...m,quoted:!0}},yo=function(m){return{type:"text",text:m}},gg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Bp=function(m){return{type:"shell",shell:m,quoted:!1}},bp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,wo=Je(["'"],!0,!1),Fn=function(m){return m.join("")},fg=/^[^$"]/,bt=Je(["$",'"'],!0,!1),Ll=`\\ +`,Nn=me(`\\ +`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),Bo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=me("\\a",!1),hg=function(){return"a"},Ml="\\b",Qp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),IA=function(){return"\f"},zi="\\n",Ol=me("\\n",!1),Xe=function(){return` +`},pa="\\r",pg=me("\\r",!1),ME=function(){return"\r"},Dp="\\t",OE=me("\\t",!1),ar=function(){return" "},Tn="\\v",Kl=me("\\v",!1),kp=function(){return"\v"},Us=/^[\\'"?]/,da=Je(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},Le="\\x",dg=me("\\x",!1),Ul="\\u",Hs=me("\\u",!1),Hl="\\U",yA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,Ca=Je([["0","7"]],!1,!1),ma=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),bo=nt(),wA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),KE=".",Rp=me(".",!1),Eg=function(m,Q,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+N.join(""))}},Fp=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},UE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",BA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,Q,N){return{type:Q==="*"?"multiplication":"division",right:N}},js=function(m,Q){return Q.reduce((N,U)=>({left:N,...U}),m)},yg=function(m,Q,N){return{type:Q==="+"?"addition":"subtraction",right:N}},bA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),JQ=":-",k1=me(":-",!1),R1=function(m,Q){return{name:m,defaultValue:Q}},WQ=":-}",F1=me(":-}",!1),N1=function(m){return{name:m,defaultValue:[]}},zQ=":+",T1=me(":+",!1),L1=function(m,Q){return{name:m,alternativeValue:Q}},VQ=":+}",M1=me(":+}",!1),O1=function(m){return{name:m,alternativeValue:[]}},XQ=function(m){return{name:m}},K1="$",U1=me("$",!1),H1=function(m){return e.isGlobPattern(m)},G1=function(m){return m},ZQ=/^[a-zA-Z0-9_]/,_Q=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return L()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Y1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),b=0,Oe=0,QA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function L(){return r.substring(Oe,b)}function Z(){return Et(Oe,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Ri([lt(m)],r.substring(Oe,b),Q)}function we(m,Q){throw Q=Q!==void 0?Q:Et(Oe,b),Mn(m,Q)}function me(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Je(m,Q,N){return{type:"class",parts:m,inverted:Q,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var Q=QA[m],N;if(Q)return Q;for(N=m-1;!QA[N];)N--;for(Q=QA[N],Q={line:Q.line,column:Q.column};Nd&&(d=b,E=[]),E.push(m))}function Mn(m,Q){return new Zl(m,null,null,Q)}function Ri(m,Q,N){return new Zl(Zl.buildMessage(m,Q),m,Q,N)}function SA(){var m,Q;return m=b,Q=Or(),Q===t&&(Q=null),Q!==t&&(Oe=m,Q=s(Q)),m=Q,m}function Or(){var m,Q,N,U,ce;if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Oe=m,Q=o(Q,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U===t&&(U=null),U!==t?(Oe=m,Q=a(Q,U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function os(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=Or(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=l(N),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Ea(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&be(f))),m}function Kr(){var m,Q,N;return m=b,Q=j1(),Q!==t?(N=fge(),N===t&&(N=null),N!==t?(Oe=m,Q=h(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function fge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=hge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=p(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function hge(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&be(y)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&be(v))),m}function j1(){var m,Q,N;return m=b,Q=Cge(),Q!==t?(N=pge(),N===t&&(N=null),N!==t?(Oe=m,Q=D(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function pge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=dge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=j1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=T(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function dge(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&be(V))),m}function qE(){var m,Q,N,U,ce,Se;if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t)if(U=W1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Oe=m,Q=A(Q,U),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Cge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===40?(N=ge,b++):(N=t,I===0&&be(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===41?(ht=M,b++):(ht=t,I===0&&be(F)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=ue(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===123?(N=pe,b++):(N=t,I===0&&be(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Or(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===125?(ht=Fe,b++):(ht=t,I===0&&be(Ne)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Oe=m,Q=oe(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){for(N=[],U=qE();U!==t;)N.push(U),U=qE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=J1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=J1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Oe=m,Q=le(N,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=qE(),U!==t)for(;U!==t;)N.push(U),U=qE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=Be(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function q1(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=JE(),U!==t)for(;U!==t;)N.push(U),U=JE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Oe=m,Q=fe(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function J1(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t?(N=Np(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();Q!==t?(N=JE(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function Np(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(qe.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(ne)),N===t&&(N=null),N!==t?(U=mge(),U!==t?(ce=JE(),ce!==t?(Oe=m,Q=Y(N,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function mge(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&be(ie)),m===t&&(r.substr(b,2)===de?(m=de,b+=2):(m=t,I===0&&be(_e)),m===t&&(r.charCodeAt(b)===62?(m=Pt,b++):(m=t,I===0&&be(It)),m===t&&(r.substr(b,3)===Mr?(m=Mr,b+=3):(m=t,I===0&&be(ii)),m===t&&(r.substr(b,2)===gi?(m=gi,b+=2):(m=t,I===0&&be(hr)),m===t&&(r.charCodeAt(b)===60?(m=fi,b++):(m=t,I===0&&be(ni))))))),m}function JE(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(N=W1(),N!==t?(Oe=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m}function W1(){var m,Q,N;if(m=b,Q=[],N=z1(),N!==t)for(;N!==t;)Q.push(N),N=z1();else Q=t;return Q!==t&&(Oe=m,Q=Ks(Q)),m=Q,m}function z1(){var m,Q;return m=b,Q=Ege(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=Ige(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=yge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=wge(),Q!==t&&(Oe=m,Q=pr(Q)),m=Q))),m}function Ege(){var m,Q,N,U;return m=b,r.substr(b,2)===Ii?(Q=Ii,b+=2):(Q=t,I===0&&be(rs)),Q!==t?(N=Qge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function Ige(){var m,Q,N,U;return m=b,r.charCodeAt(b)===39?(Q=fa,b++):(Q=t,I===0&&be(dA)),Q!==t?(N=Bge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Oe=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function yge(){var m,Q,N,U;if(m=b,r.substr(b,2)===is?(Q=is,b+=2):(Q=t,I===0&&be(CA)),Q!==t&&(Oe=m,Q=ha()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=wp,b++):(Q=t,I===0&&be(mA)),Q!==t){for(N=[],U=V1();U!==t;)N.push(U),U=V1();N!==t?(r.charCodeAt(b)===34?(U=wp,b++):(U=t,I===0&&be(mA)),U!==t?(Oe=m,Q=EA(N),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function wge(){var m,Q,N;if(m=b,Q=[],N=X1(),N!==t)for(;N!==t;)Q.push(N),N=X1();else Q=t;return Q!==t&&(Oe=m,Q=EA(Q)),m=Q,m}function V1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Oe=m,Q=wr(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Oe=m,Q=Tl(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=ug(Q)),m=Q,m===t&&(m=b,Q=bge(),Q!==t&&(Oe=m,Q=yo(Q)),m=Q))),m}function X1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Oe=m,Q=gg(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Oe=m,Q=Bp(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=bp(Q)),m=Q,m===t&&(m=b,Q=xge(),Q!==t&&(Oe=m,Q=vr(Q)),m=Q,m===t&&(m=b,Q=vge(),Q!==t&&(Oe=m,Q=yo(Q)),m=Q)))),m}function Bge(){var m,Q,N;for(m=b,Q=[],se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));N!==t;)Q.push(N),se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function bge(){var m,Q,N;if(m=b,Q=[],N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt))),N!==t)for(;N!==t;)Q.push(N),N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt)));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function Z1(){var m,Q,N;return m=b,r.substr(b,2)===Ll?(Q=Ll,b+=2):(Q=t,I===0&&be(Nn)),Q!==t&&(Oe=m,Q=ns()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Bo.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(At)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t)),m}function Qge(){var m,Q,N;for(m=b,Q=[],N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));N!==t;)Q.push(N),N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function _1(){var m,Q,N;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&be(Lt)),Q!==t&&(Oe=m,Q=hg()),m=Q,m===t&&(m=b,r.substr(b,2)===Ml?(Q=Ml,b+=2):(Q=t,I===0&&be(Qp)),Q!==t&&(Oe=m,Q=Sp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(vp.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(xp)),N!==t?(Oe=m,Q=Pp(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&be(yt)),Q!==t&&(Oe=m,Q=IA()),m=Q,m===t&&(m=b,r.substr(b,2)===zi?(Q=zi,b+=2):(Q=t,I===0&&be(Ol)),Q!==t&&(Oe=m,Q=Xe()),m=Q,m===t&&(m=b,r.substr(b,2)===pa?(Q=pa,b+=2):(Q=t,I===0&&be(pg)),Q!==t&&(Oe=m,Q=ME()),m=Q,m===t&&(m=b,r.substr(b,2)===Dp?(Q=Dp,b+=2):(Q=t,I===0&&be(OE)),Q!==t&&(Oe=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Tn?(Q=Tn,b+=2):(Q=t,I===0&&be(Kl)),Q!==t&&(Oe=m,Q=kp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Us.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(da)),N!==t?(Oe=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=Sge()))))))))),m}function Sge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as,AS;return m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(N=nS(),N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Le?(Q=Le,b+=2):(Q=t,I===0&&be(dg)),Q!==t?(N=b,U=b,ce=nS(),ce!==t?(Se=On(),Se!==t?(ce=[ce,Se],U=ce):(b=U,U=t)):(b=U,U=t),U===t&&(U=nS()),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ul?(Q=Ul,b+=2):(Q=t,I===0&&be(Hs)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Hl?(Q=Hl,b+=2):(Q=t,I===0&&be(yA)),Q!==t?(N=b,U=b,ce=On(),ce!==t?(Se=On(),Se!==t?(ht=On(),ht!==t?(Bt=On(),Bt!==t?(qr=On(),qr!==t?(hi=On(),hi!==t?(as=On(),as!==t?(AS=On(),AS!==t?(ce=[ce,Se,ht,Bt,qr,hi,as,AS],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Oe=m,Q=Cg(N),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function nS(){var m;return mg.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(Ca)),m}function On(){var m;return ma.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(rt)),m}function vge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t)),N!==t)for(;N!==t;)Q.push(N),N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t));else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function sS(){var m,Q,N,U,ce,Se;if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;if(N!==t)if(r.charCodeAt(b)===46?(U=KE,b++):(U=t,I===0&&be(Rp)),U!==t){if(ce=[],qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne));else ce=t;ce!==t?(Oe=m,Q=Eg(Q,N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;N!==t?(Oe=m,Q=Fp(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=aS(),Q!==t&&(Oe=m,Q=UE(Q)),m=Q,m===t&&(m=b,Q=ql(),Q!==t&&(Oe=m,Q=jl(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&be(re)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(b)===41?(Se=M,b++):(Se=t,I===0&&be(F)),Se!==t?(Oe=m,Q=HE(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function oS(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=sS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Oe=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function $1(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=oS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Oe=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Oe=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function eK(){var m,Q,N,U,ce,Se;if(m=b,r.substr(b,3)===bA?(Q=bA,b+=3):(Q=t,I===0&&be(R)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(b,2)===q?(Se=q,b+=2):(Se=t,I===0&&be(Ce)),Se!==t?(Oe=m,Q=Ke(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function tK(){var m,Q,N,U;return m=b,r.substr(b,2)===Re?(Q=Re,b+=2):(Q=t,I===0&&be(ze)),Q!==t?(N=Or(),N!==t?(r.charCodeAt(b)===41?(U=M,b++):(U=t,I===0&&be(F)),U!==t?(Oe=m,Q=dt(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function aS(){var m,Q,N,U,ce,Se;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===JQ?(U=JQ,b+=2):(U=t,I===0&&be(k1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=R1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===WQ?(U=WQ,b+=3):(U=t,I===0&&be(F1)),U!==t?(Oe=m,Q=N1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===zQ?(U=zQ,b+=2):(U=t,I===0&&be(T1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Oe=m,Q=L1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===VQ?(U=VQ,b+=3):(U=t,I===0&&be(M1)),U!==t?(Oe=m,Q=O1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.charCodeAt(b)===125?(U=Fe,b++):(U=t,I===0&&be(Ne)),U!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=K1,b++):(Q=t,I===0&&be(U1)),Q!==t?(N=ql(),N!==t?(Oe=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function xge(){var m,Q,N;return m=b,Q=Pge(),Q!==t?(Oe=b,N=H1(Q),N?N=void 0:N=t,N!==t?(Oe=m,Q=G1(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function Pge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N!==t)for(;N!==t;)Q.push(N),N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Oe=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t);else Q=t;return Q!==t&&(Oe=m,Q=Fn(Q)),m=Q,m}function rK(){var m,Q,N;if(m=b,Q=[],ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q)),N!==t)for(;N!==t;)Q.push(N),ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function ql(){var m,Q,N;if(m=b,Q=[],eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS)),N!==t)for(;N!==t;)Q.push(N),eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS));else Q=t;return Q!==t&&(Oe=m,Q=$Q()),m=Q,m}function iK(){var m;return Y1.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(wg)),m}function nK(){var m;return rS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(iS)),m}function He(){var m,Q;if(m=[],YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE)),Q!==t)for(;Q!==t;)m.push(Q),YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function Dfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Dfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new $l(ne,null,null,Y)}function oe(ne,Y,he){return new $l($l.buildMessage(ne,Y),ne,Y,he)}function le(){var ne,Y,he,ie;return ne=v,Y=Be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Fe(o)),he!==t?(ie=Be(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Be(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function Be(){var ne,Y,he,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Fe(u)),he!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,he,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(he=ae(),he!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function ae(){var ne,Y,he;if(ne=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,he;if(ne=v,Y=[],y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B)),he!==t)for(;he!==t;)Y.push(he),y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function mU(r){return typeof r>"u"||r===null}function Rfe(r){return typeof r=="object"&&r!==null}function Ffe(r){return Array.isArray(r)?r:mU(r)?[]:[r]}function Nfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Vp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Vp.prototype=Object.create(Error.prototype);Vp.prototype.constructor=Vp;Vp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};EU.exports=Vp});var wU=w((SZe,yU)=>{"use strict";var IU=tc();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),IU.repeat(" ",e)+i+a+s+` +`+IU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};yU.exports=HS});var si=w((vZe,bU)=>{"use strict";var BU=Ng(),Mfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ofe=["scalar","sequence","mapping"];function Kfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Ufe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Mfe.indexOf(t)===-1)throw new BU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Kfe(e.styleAliases||null),Ofe.indexOf(this.kind)===-1)throw new BU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}bU.exports=Ufe});var rc=w((xZe,SU)=>{"use strict";var QU=tc(),dI=Ng(),Hfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Gfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Yfe=si();vU.exports=new Yfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var DU=w((DZe,PU)=>{"use strict";var jfe=si();PU.exports=new jfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var RU=w((kZe,kU)=>{"use strict";var qfe=si();kU.exports=new qfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((RZe,FU)=>{"use strict";var Jfe=rc();FU.exports=new Jfe({explicit:[xU(),DU(),RU()]})});var TU=w((FZe,NU)=>{"use strict";var Wfe=si();function zfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Vfe(){return null}function Xfe(r){return r===null}NU.exports=new Wfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:zfe,construct:Vfe,predicate:Xfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var MU=w((NZe,LU)=>{"use strict";var Zfe=si();function _fe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function $fe(r){return r==="true"||r==="True"||r==="TRUE"}function ehe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}LU.exports=new Zfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_fe,construct:$fe,predicate:ehe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var KU=w((TZe,OU)=>{"use strict";var the=tc(),rhe=si();function ihe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function nhe(r){return 48<=r&&r<=55}function she(r){return 48<=r&&r<=57}function ohe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var GU=w((LZe,HU)=>{"use strict";var UU=tc(),lhe=si(),che=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function uhe(r){return!(r===null||!che.test(r)||r[r.length-1]==="_")}function ghe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var fhe=/^[-+]?[0-9]+e/;function hhe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(UU.isNegativeZero(r))return"-0.0";return t=r.toString(10),fhe.test(t)?t.replace("e",".e"):t}function phe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||UU.isNegativeZero(r))}HU.exports=new lhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:uhe,construct:ghe,predicate:phe,represent:hhe,defaultStyle:"lowercase"})});var YS=w((MZe,YU)=>{"use strict";var dhe=rc();YU.exports=new dhe({include:[CI()],implicit:[TU(),MU(),KU(),GU()]})});var jS=w((OZe,jU)=>{"use strict";var Che=rc();jU.exports=new Che({include:[YS()]})});var zU=w((KZe,WU)=>{"use strict";var mhe=si(),qU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),JU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Ehe(r){return r===null?!1:qU.exec(r)!==null||JU.exec(r)!==null}function Ihe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=qU.exec(r),e===null&&(e=JU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function yhe(r){return r.toISOString()}WU.exports=new mhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Ehe,construct:Ihe,instanceOf:Date,represent:yhe})});var XU=w((UZe,VU)=>{"use strict";var whe=si();function Bhe(r){return r==="<<"||r===null}VU.exports=new whe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Bhe})});var $U=w((HZe,_U)=>{"use strict";var ic;try{ZU=J,ic=ZU("buffer").Buffer}catch{}var ZU,bhe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Qhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function She(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),ic?ic.from?ic.from(a):new ic(a):a}function vhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function xhe(r){return ic&&ic.isBuffer(r)}_U.exports=new bhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Qhe,construct:She,predicate:xhe,represent:vhe})});var t2=w((YZe,e2)=>{"use strict";var Phe=si(),Dhe=Object.prototype.hasOwnProperty,khe=Object.prototype.toString;function Rhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Nhe=si(),The=Object.prototype.toString;function Lhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Ohe=si(),Khe=Object.prototype.hasOwnProperty;function Uhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Khe.call(t,e)&&t[e]!==null)return!1;return!0}function Hhe(r){return r!==null?r:{}}n2.exports=new Ohe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Uhe,construct:Hhe})});var Lg=w((JZe,o2)=>{"use strict";var Ghe=rc();o2.exports=new Ghe({include:[jS()],implicit:[zU(),XU()],explicit:[$U(),t2(),i2(),s2()]})});var A2=w((WZe,a2)=>{"use strict";var Yhe=si();function jhe(){return!0}function qhe(){}function Jhe(){return""}function Whe(r){return typeof r>"u"}a2.exports=new Yhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:jhe,construct:qhe,predicate:Whe,represent:Jhe})});var c2=w((zZe,l2)=>{"use strict";var zhe=si();function Vhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Xhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Zhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function _he(r){return Object.prototype.toString.call(r)==="[object RegExp]"}l2.exports=new zhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Vhe,construct:Xhe,predicate:_he,represent:Zhe})});var f2=w((VZe,g2)=>{"use strict";var mI;try{u2=J,mI=u2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var u2,$he=si();function epe(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function tpe(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function rpe(r){return r.toString()}function ipe(r){return Object.prototype.toString.call(r)==="[object Function]"}g2.exports=new $he("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var Xp=w((ZZe,p2)=>{"use strict";var h2=rc();p2.exports=h2.DEFAULT=new h2({include:[Lg()],explicit:[A2(),c2(),f2()]})});var N2=w((_Ze,Zp)=>{"use strict";var Ba=tc(),w2=Ng(),npe=wU(),B2=Lg(),spe=Xp(),kA=Object.prototype.hasOwnProperty,EI=1,b2=2,Q2=3,II=4,JS=1,ope=2,d2=3,ape=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ape=/[\x85\u2028\u2029]/,lpe=/[,\[\]\{\}]/,S2=/^(?:!|!!|![a-z\-]+!)$/i,v2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function C2(r){return Object.prototype.toString.call(r)}function xo(r){return r===10||r===13}function sc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Mg(r){return r===44||r===91||r===93||r===123||r===125}function cpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function upe(r){return r===120?2:r===117?4:r===85?8:0}function gpe(r){return 48<=r&&r<=57?r-48:-1}function m2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function fpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var x2=new Array(256),P2=new Array(256);for(nc=0;nc<256;nc++)x2[nc]=m2(nc)?1:0,P2[nc]=m2(nc);var nc;function hpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||spe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function D2(r,e){return new w2(e,new npe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw D2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,D2(r,e))}var E2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],S2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),v2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function DA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Ba.repeat(` +`,e-1))}function ppe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||Mg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Mg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Mg(h))break;if(xo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(DA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return DA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function dpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(DA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else xo(t)?(DA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function Cpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return DA(r,t,r.position,!0),r.position++,!0;if(a===92){if(DA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),xo(a))zr(r,!1,e);else if(a<256&&x2[a])r.result+=P2[a],r.position++;else if((o=upe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=cpe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=fpe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else xo(a)?(DA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function mpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Kg(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Kg(r,e,EI,!1,!0),C=r.result),g?Og(r,s,f,p,h,C):c?s.push(Og(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function Epe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?d2:ope:ft(r,"repeat of a chomping mode identifier");else if((u=gpe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!xo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),xo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,II,!0,n)&&(p?f=r.result:h=r.result),p||(Og(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function bpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;sc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!xo(o));break}if(xo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(E2,i)?E2[i](r,i,n):yI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,II,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&Ape.test(r.input.slice(e,r.position))&&yI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&wI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=k2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),R2(r,e,Ba.extend({schema:B2},t))}function Spe(r,e){return F2(r,Ba.extend({schema:B2},e))}Zp.exports.loadAll=R2;Zp.exports.load=F2;Zp.exports.safeLoadAll=Qpe;Zp.exports.safeLoad=Spe});var iH=w(($Ze,_S)=>{"use strict";var $p=tc(),ed=Ng(),vpe=Xp(),xpe=Lg(),G2=Object.prototype.toString,Y2=Object.prototype.hasOwnProperty,Ppe=9,_p=10,Dpe=13,kpe=32,Rpe=33,Fpe=34,j2=35,Npe=37,Tpe=38,Lpe=39,Mpe=42,q2=44,Ope=45,J2=58,Kpe=61,Upe=62,Hpe=63,Gpe=64,W2=91,z2=93,Ype=96,V2=123,jpe=124,X2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var qpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Jpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&M2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return BI;a=s>0?r.charCodeAt(s-1):null,f=f&&M2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?_2:$2:t>9&&Z2(r)?BI:c?tH:eH}function _pe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&qpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return zpe(r,l)}switch(Zpe(e,o,r.indent,s,a)){case _2:return e;case $2:return"'"+e.replace(/'/g,"''")+"'";case eH:return"|"+O2(e,r.indent)+K2(L2(e,n));case tH:return">"+O2(e,r.indent)+K2(L2($pe(e,s),n));case BI:return'"'+ede(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function O2(r,e){var t=Z2(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function K2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function $pe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,U2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+U2(l,e),n=s}return i}function U2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function ede(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=T2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||T2(t)}return e}function tde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function nde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&_p===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function H2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,H2(r,t,!1)||H2(r,t,!0);var o=G2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(nde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ide(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(rde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(tde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&_pe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function sde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var bI=N2(),nH=iH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=bI.load;Fr.exports.loadAll=bI.loadAll;Fr.exports.safeLoad=bI.safeLoad;Fr.exports.safeLoadAll=bI.safeLoadAll;Fr.exports.dump=nH.dump;Fr.exports.safeDump=nH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=QI("scan");Fr.exports.parse=QI("parse");Fr.exports.compose=QI("compose");Fr.exports.addConstructor=QI("addConstructor")});var aH=w((t_e,oH)=>{"use strict";var ade=sH();oH.exports=ade});var lH=w((r_e,AH)=>{"use strict";function Ade(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}Ade(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Us("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===bA*yg},A=function(R){return R.length===(bA+1)*yg},Ae=function(){return bA++,!0},ge=function(){return bA--,!0},re=function(){return pg()},M=Us("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Tn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,ke=Tn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return pg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,Be=Tn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,ae=Tn(["\r",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Mr=Us("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ks=/^[^"\\\0-\x1F\x7F]/,pr=Tn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),fa=function(){return'"'},dA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},CA="\\/",ha=ar("\\/",!1),wp=function(){return"/"},mA="\\b",EA=ar("\\b",!1),wr=function(){return"\b"},Tl="\\f",ug=ar("\\f",!1),yo=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),bp=function(){return` +`},vr="\\r",se=ar("\\r",!1),wo=function(){return"\r"},Fn="\\t",fg=ar("\\t",!1),bt=function(){return" "},Ll="\\u",Nn=ar("\\u",!1),ns=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},ss=/^[0-9a-fA-F]/,gt=Tn([["0","9"],["a","f"],["A","F"]],!1,!1),Bo=Us("blank space"),At=/^[ \t]/,ln=Tn([" "," "],!1,!1),S=Us("white space"),Lt=/^[ \t\n\r]/,hg=Tn([" "," ",` +`,"\r"],!1,!1),Ml=`\r +`,Qp=ar(`\r +`,!1),Sp=` +`,vp=ar(` +`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,IA=[{line:1,column:1}],zi=0,Ol=[],Xe=0,pa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function ME(){return cn(yt,G)}function Dp(R,q){throw q=q!==void 0?q:cn(yt,G),Ul([Us(R)],r.substring(yt,G),q)}function OE(R,q){throw q=q!==void 0?q:cn(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Tn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Kl(){return{type:"any"}}function kp(){return{type:"end"}}function Us(R){return{type:"other",description:R}}function da(R){var q=IA[R],Ce;if(q)return q;for(Ce=R-1;!IA[Ce];)Ce--;for(q=IA[Ce],q={line:q.line,column:q.column};Cezi&&(zi=G,Ol=[]),Ol.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Ul(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=yA();Ce!==t;)q.push(Ce),Ce=yA();return q!==t&&(yt=R,q=s(q)),R=q,R}function yA(){var R,q,Ce,Ke,Re;return R=G,q=ma(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Le(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=Ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Le(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ys(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ys();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ma(),q!==t?(Ce=Gl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ma(),q!==t?(Ce=Gs(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=KE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Le(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=Ca(),Ft!==t?(yt=R,q=T(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=js(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Le(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ke=bo(),Ke!==t?(Re=Hl(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=bo(),Ce!==t?(Ke=Cg(),Ke!==t?(Re=wA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ke=Ys(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ma(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Le($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function bo(){var R;return yt=G,R=Ae(),R?R=void 0:R=t,R}function wA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Gl(){var R;return R=jl(),R===t&&(R=Rp()),R}function Gs(){var R,q,Ce;if(R=jl(),R===t){if(R=G,q=[],Ce=Eg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Eg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Yl(){var R;return R=Fp(),R===t&&(R=UE(),R===t&&(R=jl(),R===t&&(R=Rp()))),R}function KE(){var R;return R=Fp(),R===t&&(R=jl(),R===t&&(R=Eg())),R}function Rp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(M)),R}function Eg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Le(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Le(Be)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Fp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Le(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function UE(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,Xe===0&&Le(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Le(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function jl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Le(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(Ce=HE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Le(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Le(Mr)),R}function HE(){var R,q,Ce;if(R=G,q=[],Ce=Ig(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Ig();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Ig(){var R,q,Ce,Ke,Re,ze;return Ks.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Le(rs)),q!==t&&(yt=R,q=fa()),R=q,R===t&&(R=G,r.substr(G,2)===dA?(q=dA,G+=2):(q=t,Xe===0&&Le(cg)),q!==t&&(yt=R,q=is()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Le(ha)),q!==t&&(yt=R,q=wp()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,Xe===0&&Le(EA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===Tl?(q=Tl,G+=2):(q=t,Xe===0&&Le(ug)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===gg?(q=gg,G+=2):(q=t,Xe===0&&Le(Bp)),q!==t&&(yt=R,q=bp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Le(se)),q!==t&&(yt=R,q=wo()),R=q,R===t&&(R=G,r.substr(G,2)===Fn?(q=Fn,G+=2):(q=t,Xe===0&&Le(fg)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Ll?(q=Ll,G+=2):(q=t,Xe===0&&Le(Nn)),q!==t?(Ce=BA(),Ce!==t?(Ke=BA(),Ke!==t?(Re=BA(),Re!==t?(ze=BA(),ze!==t?(yt=R,q=ns(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function BA(){var R;return ss.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(Bo)),R}function GE(){var R,q;if(Xe++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(S)),R}function Ys(){var R,q,Ce,Ke,Re,ze;if(R=G,q=js(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function js(){var R;return r.substr(G,2)===Ml?(R=Ml,G+=2):(R=t,Xe===0&&Le(Qp)),R===t&&(r.charCodeAt(G)===10?(R=Sp,G++):(R=t,Xe===0&&Le(vp)),R===t&&(r.charCodeAt(G)===13?(R=xp,G++):(R=t,Xe===0&&Le(Pp)))),R}let yg=2,bA=0;if(pa=n(),pa!==t&&G===r.length)return pa;throw pa!==t&&G{"use strict";var hde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=hde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=hH;ev.exports.default=hH});var dH=w((A_e,pde)=>{pde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ac=w(Un=>{"use strict";var mH=dH(),Po=process.env;Object.defineProperty(Un,"_vendors",{value:mH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;mH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return CH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!Po[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in Po&&Po[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!Po[i]}):Un.isPR=CH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(Po.CI||Po.CONTINUOUS_INTEGRATION||Po.BUILD_NUMBER||Po.RUN_ID||Un.name);function CH(r){return typeof r=="string"?!!Po[r]:Object.keys(r).every(function(e){return Po[e]===r[e]})}});var hn={};ut(hn,{KeyRelationship:()=>lc,applyCascade:()=>od,base64RegExp:()=>BH,colorStringAlphaRegExp:()=>wH,colorStringRegExp:()=>yH,computeKey:()=>RA,getPrintable:()=>Vr,hasExactLength:()=>xH,hasForbiddenKeys:()=>Wde,hasKeyRelationship:()=>av,hasMaxLength:()=>Dde,hasMinLength:()=>Pde,hasMutuallyExclusiveKeys:()=>zde,hasRequiredKeys:()=>Jde,hasUniqueItems:()=>kde,isArray:()=>yde,isAtLeast:()=>Nde,isAtMost:()=>Tde,isBase64:()=>jde,isBoolean:()=>mde,isDate:()=>Ide,isDict:()=>Bde,isEnum:()=>Zi,isHexColor:()=>Yde,isISO8601:()=>Gde,isInExclusiveRange:()=>Mde,isInInclusiveRange:()=>Lde,isInstanceOf:()=>Qde,isInteger:()=>Ode,isJSON:()=>qde,isLiteral:()=>dde,isLowerCase:()=>Kde,isNegative:()=>Rde,isNullable:()=>xde,isNumber:()=>Ede,isObject:()=>bde,isOneOf:()=>Sde,isOptional:()=>vde,isPositive:()=>Fde,isString:()=>sd,isTuple:()=>wde,isUUID4:()=>Hde,isUnknown:()=>vH,isUpperCase:()=>Ude,iso8601RegExp:()=>ov,makeCoercionFn:()=>cc,makeSetter:()=>SH,makeTrait:()=>QH,makeValidator:()=>Qt,matchesRegExp:()=>ad,plural:()=>kI,pushError:()=>pt,simpleKeyRegExp:()=>IH,uuid4RegExp:()=>bH});function Qt({test:r}){return QH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function RA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:IH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function cc(r,e){return t=>{let i=r[e];return r[e]=t,cc(r,e).bind(null,i)}}function SH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function dde(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var IH,yH,wH,BH,bH,ov,QH,vH,sd,Cde,mde,Ede,Ide,yde,wde,Bde,bde,Qde,Sde,od,vde,xde,Pde,Dde,xH,kde,Rde,Fde,Nde,Tde,Lde,Mde,Ode,ad,Kde,Ude,Hde,Gde,Yde,jde,qde,Jde,Wde,zde,lc,Vde,av,ls=Tge(()=>{IH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,yH=/^#[0-9a-f]{6}$/i,wH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,BH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,bH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,QH=r=>()=>r;vH=()=>Qt({test:(r,e)=>!0});sd=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});Cde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),mde=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=Cde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),Ede=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),Ide=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),yde=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=xH(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:RA(n,l),coercion:cc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:SH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Qde=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Sde=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),od=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),vde=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),xde=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),Pde=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Dde=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),xH=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),kde=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Fde=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Nde=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Tde=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Lde=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Mde=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),ad=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Kde=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Ude=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Hde=()=>Qt({test:(r,e)=>bH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Gde=()=>Qt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Yde=({alpha:r=!1})=>Qt({test:(e,t)=>(r?yH.test(e):wH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),jde=()=>Qt({test:(r,e)=>BH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),qde=(r=vH())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),Jde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Wde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},zde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(lc||(lc={}));Vde={[lc.Forbids]:{expect:!1,message:"forbids using"},[lc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Vde[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var qH=w((A$e,jH)=>{"use strict";jH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=w((l$e,pv)=>{"use strict";var gCe=qH(),JH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=gCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=JH;pv.exports.default=JH});var gd=w((u$e,WH)=>{var fCe="2.0.0",hCe=Number.MAX_SAFE_INTEGER||9007199254740991,pCe=16;WH.exports={SEMVER_SPEC_VERSION:fCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:hCe,MAX_SAFE_COMPONENT_LENGTH:pCe}});var fd=w((g$e,zH)=>{var dCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};zH.exports=dCe});var uc=w((NA,VH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=gd(),CCe=fd();NA=VH.exports={};var mCe=NA.re=[],et=NA.src=[],tt=NA.t={},ECe=0,St=(r,e,t)=>{let i=ECe++;CCe(i,e),tt[r]=i,et[i]=e,mCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);NA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);NA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);NA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var hd=w((f$e,XH)=>{var ICe=["includePrerelease","loose","rtl"],yCe=r=>r?typeof r!="object"?{loose:!0}:ICe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};XH.exports=yCe});var MI=w((h$e,$H)=>{var ZH=/^[0-9]+$/,_H=(r,e)=>{let t=ZH.test(r),i=ZH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r_H(e,r);$H.exports={compareIdentifiers:_H,rcompareIdentifiers:wCe}});var Li=w((p$e,iG)=>{var OI=fd(),{MAX_LENGTH:eG,MAX_SAFE_INTEGER:KI}=gd(),{re:tG,t:rG}=uc(),BCe=hd(),{compareIdentifiers:pd}=MI(),Yn=class{constructor(e,t){if(t=BCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>eG)throw new TypeError(`version is longer than ${eG} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?tG[rG.LOOSE]:tG[rG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>KI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>KI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>KI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};iG.exports=Yn});var gc=w((d$e,aG)=>{var{MAX_LENGTH:bCe}=gd(),{re:nG,t:sG}=uc(),oG=Li(),QCe=hd(),SCe=(r,e)=>{if(e=QCe(e),r instanceof oG)return r;if(typeof r!="string"||r.length>bCe||!(e.loose?nG[sG.LOOSE]:nG[sG.FULL]).test(r))return null;try{return new oG(r,e)}catch{return null}};aG.exports=SCe});var lG=w((C$e,AG)=>{var vCe=gc(),xCe=(r,e)=>{let t=vCe(r,e);return t?t.version:null};AG.exports=xCe});var uG=w((m$e,cG)=>{var PCe=gc(),DCe=(r,e)=>{let t=PCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};cG.exports=DCe});var fG=w((E$e,gG)=>{var kCe=Li(),RCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new kCe(r,t).inc(e,i).version}catch{return null}};gG.exports=RCe});var cs=w((I$e,pG)=>{var hG=Li(),FCe=(r,e,t)=>new hG(r,t).compare(new hG(e,t));pG.exports=FCe});var UI=w((y$e,dG)=>{var NCe=cs(),TCe=(r,e,t)=>NCe(r,e,t)===0;dG.exports=TCe});var EG=w((w$e,mG)=>{var CG=gc(),LCe=UI(),MCe=(r,e)=>{if(LCe(r,e))return null;{let t=CG(r),i=CG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};mG.exports=MCe});var yG=w((B$e,IG)=>{var OCe=Li(),KCe=(r,e)=>new OCe(r,e).major;IG.exports=KCe});var BG=w((b$e,wG)=>{var UCe=Li(),HCe=(r,e)=>new UCe(r,e).minor;wG.exports=HCe});var QG=w((Q$e,bG)=>{var GCe=Li(),YCe=(r,e)=>new GCe(r,e).patch;bG.exports=YCe});var vG=w((S$e,SG)=>{var jCe=gc(),qCe=(r,e)=>{let t=jCe(r,e);return t&&t.prerelease.length?t.prerelease:null};SG.exports=qCe});var PG=w((v$e,xG)=>{var JCe=cs(),WCe=(r,e,t)=>JCe(e,r,t);xG.exports=WCe});var kG=w((x$e,DG)=>{var zCe=cs(),VCe=(r,e)=>zCe(r,e,!0);DG.exports=VCe});var HI=w((P$e,FG)=>{var RG=Li(),XCe=(r,e,t)=>{let i=new RG(r,t),n=new RG(e,t);return i.compare(n)||i.compareBuild(n)};FG.exports=XCe});var TG=w((D$e,NG)=>{var ZCe=HI(),_Ce=(r,e)=>r.sort((t,i)=>ZCe(t,i,e));NG.exports=_Ce});var MG=w((k$e,LG)=>{var $Ce=HI(),eme=(r,e)=>r.sort((t,i)=>$Ce(i,t,e));LG.exports=eme});var dd=w((R$e,OG)=>{var tme=cs(),rme=(r,e,t)=>tme(r,e,t)>0;OG.exports=rme});var GI=w((F$e,KG)=>{var ime=cs(),nme=(r,e,t)=>ime(r,e,t)<0;KG.exports=nme});var Cv=w((N$e,UG)=>{var sme=cs(),ome=(r,e,t)=>sme(r,e,t)!==0;UG.exports=ome});var YI=w((T$e,HG)=>{var ame=cs(),Ame=(r,e,t)=>ame(r,e,t)>=0;HG.exports=Ame});var jI=w((L$e,GG)=>{var lme=cs(),cme=(r,e,t)=>lme(r,e,t)<=0;GG.exports=cme});var mv=w((M$e,YG)=>{var ume=UI(),gme=Cv(),fme=dd(),hme=YI(),pme=GI(),dme=jI(),Cme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ume(r,t,i);case"!=":return gme(r,t,i);case">":return fme(r,t,i);case">=":return hme(r,t,i);case"<":return pme(r,t,i);case"<=":return dme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};YG.exports=Cme});var qG=w((O$e,jG)=>{var mme=Li(),Eme=gc(),{re:qI,t:JI}=uc(),Ime=(r,e)=>{if(r instanceof mme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(qI[JI.COERCE]);else{let i;for(;(i=qI[JI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),qI[JI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;qI[JI.COERCERTL].lastIndex=-1}return t===null?null:Eme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};jG.exports=Ime});var WG=w((K$e,JG)=>{"use strict";JG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var WI=w((U$e,zG)=>{"use strict";zG.exports=Ht;Ht.Node=fc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var bme=WI(),hc=Symbol("max"),va=Symbol("length"),Wg=Symbol("lengthCalculator"),md=Symbol("allowStale"),pc=Symbol("maxAge"),Sa=Symbol("dispose"),VG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Zs=Symbol("cache"),ZG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[hc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[md]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[pc]=e.maxAge||0,this[Sa]=e.dispose,this[VG]=e.noDisposeOnSet||!1,this[ZG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[hc]=e||1/0,Cd(this)}get max(){return this[hc]}set allowStale(e){this[md]=!!e}get allowStale(){return this[md]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[pc]=e,Cd(this)}get maxAge(){return this[pc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[va]=0,this[di].forEach(t=>{t.length=this[Wg](t.value,t.key),this[va]+=t.length})),Cd(this)}get lengthCalculator(){return this[Wg]}get length(){return this[va]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;XG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;XG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Sa]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Sa](e.key,e.value)),this[Zs]=new Map,this[di]=new bme,this[va]=0}dump(){return this[di].map(e=>zI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Zs].has(e)){if(s>this[hc])return zg(this,this[Zs].get(e)),!1;let l=this[Zs].get(e).value;return this[Sa]&&(this[VG]||this[Sa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[va]+=s-l.length,l.length=s,this.get(e),Cd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[hc]?(this[Sa]&&this[Sa](e,t),!1):(this[va]+=o.length,this[di].unshift(o),this[Zs].set(e,this[di].head),Cd(this),!0)}has(e){if(!this[Zs].has(e))return!1;let t=this[Zs].get(e).value;return!zI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Zs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Zs].get(e);if(i){let n=i.value;if(zI(r,n)){if(zg(r,i),!r[md])return}else t&&(r[ZG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},zI=(r,e)=>{if(!e||!e.maxAge&&!r[pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[pc]&&t>r[pc]},Cd=r=>{if(r[va]>r[hc])for(let e=r[di].tail;r[va]>r[hc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[Sa]&&r[Sa](t.key,t.value),r[va]-=t.length,r[Zs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},XG=(r,e,t,i)=>{let n=t.value;zI(r,n)&&(zg(r,t),r[md]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};_G.exports=yv});var us=w((G$e,iY)=>{var dc=class{constructor(e,t){if(t=Sme(t),e instanceof dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!tY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=eY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[bi.HYPHENRANGELOOSE]:Mi[bi.HYPHENRANGE];e=e.replace(o,Hme(this.options.includePrerelease)),Hr("hyphen replace",e),e=e.replace(Mi[bi.COMPARATORTRIM],xme),Hr("comparator trim",e,Mi[bi.COMPARATORTRIM]),e=e.replace(Mi[bi.TILDETRIM],Pme),e=e.replace(Mi[bi.CARETTRIM],Dme),e=e.split(/\s+/).join(" ");let a=s?Mi[bi.COMPARATORLOOSE]:Mi[bi.COMPARATOR],l=e.split(" ").map(f=>Rme(f,this.options)).join(" ").split(/\s+/).map(f=>Ume(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(tY(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return eY.set(i,g),g}intersects(e,t){if(!(e instanceof dc))throw new TypeError("a Range is required");return this.set.some(i=>rY(i,t)&&e.set.some(n=>rY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new vme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",kme=r=>r.value==="",rY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Rme=(r,e)=>(Hr("comp",r,e),r=Tme(r,e),Hr("caret",r),r=Fme(r,e),Hr("tildes",r),r=Mme(r,e),Hr("xrange",r),r=Kme(r,e),Hr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Fme=(r,e)=>r.trim().split(/\s+/).map(t=>Nme(t,e)).join(" "),Nme=(r,e)=>{let t=e.loose?Mi[bi.TILDELOOSE]:Mi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Hr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Hr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Hr("tilde return",l),l})},Tme=(r,e)=>r.trim().split(/\s+/).map(t=>Lme(t,e)).join(" "),Lme=(r,e)=>{Hr("caret",r,e);let t=e.loose?Mi[bi.CARETLOOSE]:Mi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Hr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Hr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Hr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Hr("caret return",c),c})},Mme=(r,e)=>(Hr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Ome(t,e)).join(" ")),Ome=(r,e)=>{r=r.trim();let t=e.loose?Mi[bi.XRANGELOOSE]:Mi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Hr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Hr("xRange return",i),i})},Kme=(r,e)=>(Hr("replaceStars",r,e),r.trim().replace(Mi[bi.STAR],"")),Ume=(r,e)=>(Hr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Hme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Gme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ed=w((Y$e,AY)=>{var Id=Symbol("SemVer ANY"),Vg=class{static get ANY(){return Id}constructor(e,t){if(t=Yme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Id?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?nY[sY.COMPARATORLOOSE]:nY[sY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new oY(i[2],this.options.loose):this.semver=Id}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===Id||e===Id)return!0;if(typeof e=="string")try{e=new oY(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new aY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new aY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};AY.exports=Vg;var Yme=hd(),{re:nY,t:sY}=uc(),bv=mv(),Qv=fd(),oY=Li(),aY=us()});var yd=w((j$e,lY)=>{var jme=us(),qme=(r,e,t)=>{try{e=new jme(e,t)}catch{return!1}return e.test(r)};lY.exports=qme});var uY=w((q$e,cY)=>{var Jme=us(),Wme=(r,e)=>new Jme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));cY.exports=Wme});var fY=w((J$e,gY)=>{var zme=Li(),Vme=us(),Xme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Vme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new zme(i,t))}),i};gY.exports=Xme});var pY=w((W$e,hY)=>{var Zme=Li(),_me=us(),$me=(r,e,t)=>{let i=null,n=null,s=null;try{s=new _me(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Zme(i,t))}),i};hY.exports=$me});var mY=w((z$e,CY)=>{var Sv=Li(),eEe=us(),dY=dd(),tEe=(r,e)=>{r=new eEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||dY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||dY(t,s))&&(t=s)}return t&&r.test(t)?t:null};CY.exports=tEe});var IY=w((V$e,EY)=>{var rEe=us(),iEe=(r,e)=>{try{return new rEe(r,e).range||"*"}catch{return null}};EY.exports=iEe});var VI=w((X$e,bY)=>{var nEe=Li(),BY=Ed(),{ANY:sEe}=BY,oEe=us(),aEe=yd(),yY=dd(),wY=GI(),AEe=jI(),lEe=YI(),cEe=(r,e,t,i)=>{r=new nEe(r,i),e=new oEe(e,i);let n,s,o,a,l;switch(t){case">":n=yY,s=AEe,o=wY,a=">",l=">=";break;case"<":n=wY,s=lEe,o=yY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(aEe(r,e,i))return!1;for(let c=0;c{h.semver===sEe&&(h=new BY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};bY.exports=cEe});var SY=w((Z$e,QY)=>{var uEe=VI(),gEe=(r,e,t)=>uEe(r,e,">",t);QY.exports=gEe});var xY=w((_$e,vY)=>{var fEe=VI(),hEe=(r,e,t)=>fEe(r,e,"<",t);vY.exports=hEe});var kY=w(($$e,DY)=>{var PY=us(),pEe=(r,e,t)=>(r=new PY(r,t),e=new PY(e,t),r.intersects(e));DY.exports=pEe});var FY=w((eet,RY)=>{var dEe=yd(),CEe=cs();RY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>CEe(u,g,t));for(let u of o)dEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var NY=us(),XI=Ed(),{ANY:vv}=XI,wd=yd(),xv=cs(),mEe=(r,e,t={})=>{if(r===e)return!0;r=new NY(r,t),e=new NY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=EEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},EEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new XI(">=0.0.0-0")]:r=[new XI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new XI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=TY(n,h,t):h.operator==="<"||h.operator==="<="?s=LY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!wd(h,String(n),t)||s&&!wd(h,String(s),t))return null;for(let p of e)if(!wd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=TY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!wd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=LY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!wd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},TY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},LY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};MY.exports=mEe});var Xr=w((ret,KY)=>{var Pv=uc();KY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:gd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:MI().compareIdentifiers,rcompareIdentifiers:MI().rcompareIdentifiers,parse:gc(),valid:lG(),clean:uG(),inc:fG(),diff:EG(),major:yG(),minor:BG(),patch:QG(),prerelease:vG(),compare:cs(),rcompare:PG(),compareLoose:kG(),compareBuild:HI(),sort:TG(),rsort:MG(),gt:dd(),lt:GI(),eq:UI(),neq:Cv(),gte:YI(),lte:jI(),cmp:mv(),coerce:qG(),Comparator:Ed(),Range:us(),satisfies:yd(),toComparators:uY(),maxSatisfying:fY(),minSatisfying:pY(),minVersion:mY(),validRange:IY(),outside:VI(),gtr:SY(),ltr:xY(),intersects:kY(),simplifyRange:FY(),subset:OY()}});var Dv=w(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.VERSION=void 0;ZI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof _I=="object"&&_I.exports?_I.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:UY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var IEe=$I(),ey={},yEe=new IEe.RegExpParser;function wEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=yEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=wEe;function BEe(){ey={}}Xg.clearRegExpParserCache=BEe});var qY=w(Cn=>{"use strict";var bEe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var GY=$I(),gs=Gt(),YY=ty(),xa=Rv(),jY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function QEe(r,e){e===void 0&&(e=!1);try{var t=(0,YY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===jY)e&&(0,gs.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,gs.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+GY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=QEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var f=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,h=u.to,p=(0,xa.charCodeToOptimizedIndex)(f),C=(0,xa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}Cn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&SEe(r,e)}function SEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function HY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var vEe=function(r){bEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?HY(t,this.targetCharCodes)===void 0&&(this.found=!0):HY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(GY.BaseRegExpVisitor);function xEe(r,e){if(e instanceof RegExp){var t=(0,YY.getRegExpAst)(e),i=new vEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=xEe});var Rv=w(Ve=>{"use strict";var JY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var WY=$I(),ir=Bd(),xe=Gt(),Zg=qY(),zY=ty(),ko="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function PEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=PEe;function DEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=DEe;function kEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){HEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[ko]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[ko];if((0,xe.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Tv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return T}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=Aj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(oj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Mv),h=(0,xe.map)(s,sj),p=(0,xe.reduce)(i,function(v,D){var T=D.GROUP;return(0,xe.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Lv(H);Fv(v,j,C[T])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Lv(_);$!==A&&($=A,Fv(v,A,C[T]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[T])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=kEe;function REe(r,e){var t=[],i=VY(r);t=t.concat(i.errors);var n=XY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(FEe(s)),t=t.concat(rj(s)),t=t.concat(ij(s,e)),t=t.concat(nj(s)),t}Ve.validatePatterns=REe;function FEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[ko])});return e=e.concat(ZY(t)),e=e.concat($Y(t)),e=e.concat(ej(t)),e=e.concat(tj(t)),e=e.concat(_Y(t)),e}function VY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,ko)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=VY;function XY(r){var e=(0,xe.filter)(r,function(n){var s=n[ko];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=XY;var NEe=/[^\\][\$]/;function ZY(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return NEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=_Y;var TEe=/[^\\[][\^]|^\^/;function $Y(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return TEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=$Y;function ej(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=ej;function tj(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=tj;function rj(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=rj;function ij(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=ij;function nj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&MEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=nj;function LEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function MEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Tv;function OEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=OEe;function KEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[ko]===ir.Lexer.NA}),a=Aj(t);return e&&(0,xe.forEach)(o,function(l){var c=oj(l,a);if(c!==!1){var u=aj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=KEe;function UEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=UEe;function Mv(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Mv;function sj(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=sj;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=aj;function Aj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function GEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=GEe;function YEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=YEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function jEe(r){var e=lj(r);cj(e),gj(e),uj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=jEe;function lj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=lj;function cj(r){(0,Zr.forEach)(r,function(e){fj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Ov(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ov(e)||(e.CATEGORIES=[]),hj(e)||(e.categoryMatches=[]),pj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=cj;function uj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=uj;function gj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=gj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function fj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=fj;function Ov(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Ov;function hj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=hj;function pj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=pj;function qEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=qEe});var Uv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),JEe=_g(),WEe=Uv(),zEe=ty(),VEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(VEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:WEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var XEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=_s.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,JEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(_s.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,zEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,M=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var fa=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&fa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;jc.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Mr=void 0,ii=void 0;M.lastIndex=0;do Mr=M.test(c),Mr===!0&&(ii=M.lastIndex-1,It++);while(Mr===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Cc.Lexer=XEe});var TA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var $s=Gt(),ZEe=Bd(),Hv=_g();function _Ee(r){return bj(r)?r.LABEL:r.name}Qi.tokenLabel=_Ee;function $Ee(r){return r.name}Qi.tokenName=$Ee;function bj(r){return(0,$s.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=bj;var eIe="parent",dj="categories",Cj="label",mj="group",Ej="push_mode",Ij="pop_mode",yj="longer_alt",wj="line_breaks",Bj="start_chars_hint";function Qj(r){return tIe(r)}Qi.createToken=Qj;function tIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,$s.isUndefined)(e)||(t.PATTERN=e),(0,$s.has)(r,eIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,dj)&&(t.CATEGORIES=r[dj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,Cj)&&(t.LABEL=r[Cj]),(0,$s.has)(r,mj)&&(t.GROUP=r[mj]),(0,$s.has)(r,Ij)&&(t.POP_MODE=r[Ij]),(0,$s.has)(r,Ej)&&(t.PUSH_MODE=r[Ej]),(0,$s.has)(r,yj)&&(t.LONGER_ALT=r[yj]),(0,$s.has)(r,wj)&&(t.LINE_BREAKS=r[wj]),(0,$s.has)(r,Bj)&&(t.START_CHARS_HINT=r[Bj]),t}Qi.EOF=Qj({name:"EOF",pattern:ZEe.Lexer.NA});(0,Hv.augmentTokenTypes)([Qi.EOF]);function rIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=rIe;function iIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=iIe});var mn=w(zt=>{"use strict";var Pa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),nIe=TA(),Ro=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=Ro;var Sj=function(r){Pa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ro);zt.NonTerminal=Sj;var vj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Rule=vj;var xj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Alternative=xj;var Pj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Option=Pj;var Dj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatory=Dj;var kj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatoryWithSeparator=kj;var Rj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Repetition=Rj;var Fj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionWithSeparator=Fj;var Nj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ro);zt.Alternation=Nj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function sIe(r){return(0,Ar.map)(r,Qd)}zt.serializeGrammar=sIe;function Qd(r){function e(s){return(0,Ar.map)(s,Qd)}if(r instanceof Sj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof xj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Pj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Dj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Fj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Rj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Nj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof oy){var i={type:"Terminal",name:r.terminalType.name,label:(0,nIe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof vj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=Qd});var Ay=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.RestWalker=void 0;var Gv=Gt(),En=mn(),oIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();ay.RestWalker=oIe;function Tj(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GAstVisitor=void 0;var Fo=mn(),aIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Fo.NonTerminal:return this.visitNonTerminal(t);case Fo.Alternative:return this.visitAlternative(t);case Fo.Option:return this.visitOption(t);case Fo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Fo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Fo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Fo.Repetition:return this.visitRepetition(t);case Fo.Alternation:return this.visitAlternation(t);case Fo.Terminal:return this.visitTerminal(t);case Fo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();ly.GAstVisitor=aIe});var vd=w(Oi=>{"use strict";var AIe=Oi&&Oi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Oi,"__esModule",{value:!0});Oi.collectMethods=Oi.DslMethodsCollectorVisitor=Oi.getProductionDslName=Oi.isBranchingProd=Oi.isOptionalProd=Oi.isSequenceProd=void 0;var Sd=Gt(),br=mn(),lIe=$g();function cIe(r){return r instanceof br.Alternative||r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionMandatory||r instanceof br.RepetitionMandatoryWithSeparator||r instanceof br.RepetitionWithSeparator||r instanceof br.Terminal||r instanceof br.Rule}Oi.isSequenceProd=cIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionWithSeparator;return t?!0:r instanceof br.Alternation?(0,Sd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof br.NonTerminal&&(0,Sd.contains)(e,r)?!1:r instanceof br.AbstractProduction?(r instanceof br.NonTerminal&&e.push(r),(0,Sd.every)(r.definition,function(i){return Yv(i,e)})):!1}Oi.isOptionalProd=Yv;function uIe(r){return r instanceof br.Alternation}Oi.isBranchingProd=uIe;function gIe(r){if(r instanceof br.NonTerminal)return"SUBRULE";if(r instanceof br.Option)return"OPTION";if(r instanceof br.Alternation)return"OR";if(r instanceof br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof br.Repetition)return"MANY";if(r instanceof br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Oi.getProductionDslName=gIe;var Lj=function(r){AIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(lIe.GAstVisitor);Oi.DslMethodsCollectorVisitor=Lj;var cy=new Lj;function fIe(r){cy.reset(),r.accept(cy);var e=cy.dslMethods;return cy.reset(),e}Oi.collectMethods=fIe});var qv=w(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.firstForTerminal=No.firstForBranching=No.firstForSequence=No.first=void 0;var uy=Gt(),Mj=mn(),jv=vd();function gy(r){if(r instanceof Mj.NonTerminal)return gy(r.referencedRule);if(r instanceof Mj.Terminal)return Uj(r);if((0,jv.isSequenceProd)(r))return Oj(r);if((0,jv.isBranchingProd)(r))return Kj(r);throw Error("non exhaustive match")}No.first=gy;function Oj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(gy(s)),i=i+1,n=t.length>i;return(0,uy.uniq)(e)}No.firstForSequence=Oj;function Kj(r){var e=(0,uy.map)(r.definition,function(t){return gy(t)});return(0,uy.uniq)((0,uy.flatten)(e))}No.firstForBranching=Kj;function Uj(r){return[r.terminalType]}No.firstForTerminal=Uj});var Jv=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.IN=void 0;fy.IN="_~IN~_"});var qj=w(fs=>{"use strict";var hIe=fs&&fs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(fs,"__esModule",{value:!0});fs.buildInProdFollowPrefix=fs.buildBetweenProdsFollowPrefix=fs.computeAllProdsFollows=fs.ResyncFollowsWalker=void 0;var pIe=Ay(),dIe=qv(),Hj=Gt(),Gj=Jv(),CIe=mn(),Yj=function(r){hIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=jj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new CIe.Alternative({definition:o}),l=(0,dIe.first)(a);this.follows[s]=l},e}(pIe.RestWalker);fs.ResyncFollowsWalker=Yj;function mIe(r){var e={};return(0,Hj.forEach)(r,function(t){var i=new Yj(t).startWalking();(0,Hj.assign)(e,i)}),e}fs.computeAllProdsFollows=mIe;function jj(r,e){return r.name+e+Gj.IN}fs.buildBetweenProdsFollowPrefix=jj;function EIe(r){var e=r.terminalType.name;return e+r.idx+Gj.IN}fs.buildInProdFollowPrefix=EIe});var xd=w(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),IIe=Gt(),eo=Gt(),Wv=mn(),Jj=vd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,eo.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,eo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,eo.map)(c,function(h){return"["+(0,eo.map)(h,function(p){return(0,ef.tokenLabel)(p)}).join(", ")+"]"}),g=(0,eo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,eo.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,eo.map)(e,function(u){return"["+(0,eo.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,Jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=IIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Vj=w(LA=>{"use strict";var yIe=LA&&LA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(LA,"__esModule",{value:!0});LA.GastRefResolverVisitor=LA.resolveGrammar=void 0;var wIe=jn(),Wj=Gt(),BIe=$g();function bIe(r,e){var t=new zj(r,e);return t.resolveRefs(),t.errors}LA.resolveGrammar=bIe;var zj=function(r){yIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Wj.forEach)((0,Wj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:wIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(BIe.GAstVisitor);LA.GastRefResolverVisitor=zj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var Xj=Ay(),Kt=Gt(),QIe=qv(),kt=mn(),Zj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Xj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Zj;var SIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,QIe.first)(o),this.found=!0}},e}(Zj);Nr.NextAfterTokenWalker=SIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Xj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var vIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManyWalker=vIe;var xIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManySepWalker=xIe;var PIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneWalker=PIe;var DIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneSepWalker=DIe;function _j(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=_j(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],M={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(M),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(RIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=kIe;function RIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var kd=w(Zt=>{"use strict";var tq=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),$j=Dd(),FIe=Ay(),hy=_g(),MA=mn(),NIe=$g(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function TIe(r){if(r instanceof MA.Option)return oi.OPTION;if(r instanceof MA.Repetition)return oi.REPETITION;if(r instanceof MA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof MA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof MA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof MA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=TIe;function LIe(r,e,t,i,n,s){var o=iq(r,e,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=LIe;function MIe(r,e,t,i,n,s){var o=nq(r,e,n,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=MIe;function OIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),Qr=Gt(),To=jn(),_v=vd(),tf=kd(),YIe=Dd(),to=mn(),$v=$g();function jIe(r,e,t,i,n){var s=er.map(r,function(h){return qIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(h){return cq(h,i)}),l=(0,Qr.map)(r,function(h){return uq(h,e,i)}),c=hq(r,e,i));var u=zIe(r,t,i),g=(0,Qr.map)(r,function(h){return fq(h,i)}),f=(0,Qr.map)(r,function(h){return lq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=jIe;function qIe(r,e){var t=new Aq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,oq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=aq(l);return f&&(g.parameter=f),g});return o}function oq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+aq(r)}Vt.identifyProductionForDuplicates=oq;function aq(r){return r instanceof to.Terminal?r.terminalType.name:r instanceof to.NonTerminal?r.nonTerminalName:""}var Aq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=Aq;function lq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=lq;function JIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=JIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Rd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Rd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof to.NonTerminal)e.push(t.referencedRule);else if(t instanceof to.Alternative||t instanceof to.Option||t instanceof to.RepetitionMandatory||t instanceof to.RepetitionMandatoryWithSeparator||t instanceof to.RepetitionWithSeparator||t instanceof to.Repetition)e=e.concat(Rd(t.definition));else if(t instanceof to.Alternation)e=er.flatten(er.map(t.definition,function(o){return Rd(o.definition)}));else if(!(t instanceof to.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Rd(s))}else return e}Vt.getFirstNoneTerminal=Rd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function cq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,YIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=cq;function uq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=WIe(u,a,r,t),f=pq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=uq;var gq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=gq;function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=fq;function hq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new gq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=hq;function WIe(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(f,h){c!==h&&(0,tf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function pq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Gt(),VIe=Vj(),XIe=rx(),dq=xd();function ZIe(r){r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,VIe.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=ZIe;function _Ie(r){return r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarValidatorErrorProvider}),(0,XIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=_Ie});var nf=w(In=>{"use strict";var Fd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var $Ie=Gt(),mq="MismatchedTokenException",Eq="NoViableAltException",Iq="EarlyExitException",yq="NotAllInputParsedException",wq=[mq,Eq,Iq,yq];Object.freeze(wq);function eye(r){return(0,$Ie.contains)(wq,r.name)}In.isRecognitionException=eye;var py=function(r){Fd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),tye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mq,s}return e}(py);In.MismatchedTokenException=tye;var rye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Eq,s}return e}(py);In.NoViableAltException=rye;var iye=function(r){Fd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=yq,n}return e}(py);In.NotAllInputParsedException=iye;var nye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Iq,s}return e}(py);In.EarlyExitException=nye});var sx=w(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var dy=TA(),hs=Gt(),sye=nf(),oye=Jv(),aye=jn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var Aye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,hs.has)(e,"recoveryEnabled")?e.recoveryEnabled:aye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Bq)},r.prototype.getTokenToInsert=function(e){var t=(0,dy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new sye.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,hs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,hs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,hs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,hs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,hs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,hs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,hs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,hs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[dy.EOF];var t=e.ruleName+e.idxInCallingRule+oye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,dy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,hs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,hs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,hs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=Aye;function Bq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=dy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=Bq});var Cy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.LooksAhead=void 0;var ka=kd(),ro=Gt(),bq=jn(),Ra=Cy(),Ec=vd(),cye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,ro.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:bq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,ro.has)(e,"maxLookahead")?e.maxLookahead:bq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,ro.isES2015MapSupported)()?new Map:[],(0,ro.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,ro.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Ec.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,ro.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Ec.getProductionDslName)(g)+f,function(){var h=(0,ka.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Ra.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Ra.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,ro.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_IDX,ka.PROD_TYPE.REPETITION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Ra.OPTION_IDX,ka.PROD_TYPE.OPTION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_IDX,ka.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_SEP_IDX,ka.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_SEP_IDX,ka.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,ka.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Ra.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,ka.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,ka.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Ra.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();my.LooksAhead=cye});var Sq=w(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function uye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var pye=Gt();function dye(r){return xq(r.constructor)}OA.classNameFromInstance=dye;var vq="name";function xq(r){var e=r.name;return e||"anonymous"}OA.functionName=xq;function Cye(r,e){var t=Object.getOwnPropertyDescriptor(r,vq);return(0,pye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,vq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Cye});var Fq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var ps=Gt(),Nd=ox();function Pq(r,e){for(var t=(0,ps.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=mye;function Eye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=Pq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=Eye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function Dq(r,e){var t=kq(r,e),i=Rq(r,e);return t.concat(i)}Si.validateVisitor=Dq;function kq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=kq;var Iye=["constructor","visit","validateVisitor"];function Rq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(Iye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Rq});var Tq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=Sq(),_r=Gt(),Nq=Fq(),yye=jn(),wye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:yye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Nq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Nq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=wye});var Mq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Lq=jn(),Bye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Lq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Lq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Iy.LexerAdapter=Bye});var Kq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.RecognizerApi=void 0;var Oq=Gt(),bye=nf(),Ax=jn(),Qye=xd(),Sye=rx(),vye=mn(),xye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Oq.contains)(this.definedRulesNames,e)){var n=Qye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Sye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,bye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,vye.serializeGrammar)((0,Oq.values)(this.gastProductionsCache))},r}();yy.RecognizerApi=xye});var Yq=w(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.RecognizerEngine=void 0;var Pr=Gt(),qn=Cy(),wy=nf(),Uq=kd(),of=Dd(),Hq=jn(),Pye=sx(),Gq=TA(),Td=_g(),Dye=ox(),kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Dye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Td.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Td.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Gq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Td.tokenStructuredMatcherNoCategories:Td.tokenStructuredMatcher,(0,Td.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Hq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Hq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Pye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Gq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();By.RecognizerEngine=kye});var qq=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ErrorHandler=void 0;var lx=nf(),cx=Gt(),jq=kd(),Rye=jn(),Fye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Rye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,jq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,jq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();by.ErrorHandler=Fye});var zq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Jq=Dd(),Wq=Gt(),Nye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Wq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Jq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Wq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Jq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Nye});var rJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.GastRecorder=void 0;var yn=Gt(),Mo=mn(),Tye=Bd(),_q=_g(),$q=TA(),Lye=jn(),Mye=Cy(),vy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(vy);var Vq=!0,Xq=Math.pow(2,Mye.BITS_FOR_OCCURRENCE_IDX)-1,eJ=(0,$q.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Tye.Lexer.NA});(0,_q.augmentTokenTypes)([eJ]);var tJ=(0,$q.createTokenInstance)(eJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(tJ);var Oye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Kye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Lye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Mo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Ld.call(this,Mo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionMandatoryWithSeparator,t,e,Vq)},r.prototype.manyInternalRecord=function(e,t){Ld.call(this,Mo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Ld.call(this,Mo.RepetitionWithSeparator,t,e,Vq)},r.prototype.orInternalRecord=function(e,t){return Uye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Mo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Oye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,_q.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Mo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),tJ},r}();xy.GastRecorder=Kye;function Ld(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Uye(r,e){var t=this;Sy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Mo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Mo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Zq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>Xq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(Xq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var nJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var iJ=Gt(),Hye=jn(),Gye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,iJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Hye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,iJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Gye});var sJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Yye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Yye});var jn=w(dr=>{"use strict";var AJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var en=Gt(),jye=qj(),oJ=TA(),lJ=xd(),aJ=Cq(),qye=sx(),Jye=Qq(),Wye=Tq(),zye=Mq(),Vye=Kq(),Xye=Yq(),Zye=qq(),_ye=zq(),$ye=rJ(),ewe=nJ(),twe=sJ();dr.END_OF_FILE=(0,oJ.createTokenInstance)(oJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:lJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var rwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(rwe=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function iwe(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=iwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,aJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,aJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:lJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,jye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,twe.applyMixins)(ky,[qye.Recoverable,Jye.LooksAhead,Wye.TreeBuilder,zye.LexerAdapter,Xye.RecognizerEngine,Vye.RecognizerApi,Zye.ErrorHandler,_ye.ContentAssist,$ye.GastRecorder,ewe.PerformanceTracer]);var nwe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=nwe;var swe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=swe});var uJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var cJ=Dv();function owe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` +"; - }, t12; - }(); - Ul = function() { - function t12(e3, r3) { - r3 === void 0 && (r3 = {}), this.options = r3, this.token = null, this.startLine = 1, this.startColumn = 0, this.tokens = [], this.tokenizer = new pr2(this, e3, r3.mode), this._currentAttribute = void 0; - } - return t12.prototype.tokenize = function(e3) { - return this.tokens = [], this.tokenizer.tokenize(e3), this.tokens; - }, t12.prototype.tokenizePart = function(e3) { - return this.tokens = [], this.tokenizer.tokenizePart(e3), this.tokens; - }, t12.prototype.tokenizeEOF = function() { - return this.tokens = [], this.tokenizer.tokenizeEOF(), this.tokens[0]; - }, t12.prototype.reset = function() { - this.token = null, this.startLine = 1, this.startColumn = 0; - }, t12.prototype.current = function() { - var e3 = this.token; - if (e3 === null) - throw new Error("token was unexpectedly null"); - if (arguments.length === 0) - return e3; - for (var r3 = 0; r3 < arguments.length; r3++) - if (e3.type === arguments[r3]) - return e3; - throw new Error("token type was unexpectedly " + e3.type); - }, t12.prototype.push = function(e3) { - this.token = e3, this.tokens.push(e3); - }, t12.prototype.currentAttribute = function() { - return this._currentAttribute; - }, t12.prototype.addLocInfo = function() { - this.options.loc && (this.current().loc = { start: { line: this.startLine, column: this.startColumn }, end: { line: this.tokenizer.line, column: this.tokenizer.column } }), this.startLine = this.tokenizer.line, this.startColumn = this.tokenizer.column; - }, t12.prototype.beginDoctype = function() { - this.push({ type: "Doctype", name: "" }); - }, t12.prototype.appendToDoctypeName = function(e3) { - this.current("Doctype").name += e3; - }, t12.prototype.appendToDoctypePublicIdentifier = function(e3) { - var r3 = this.current("Doctype"); - r3.publicIdentifier === void 0 ? r3.publicIdentifier = e3 : r3.publicIdentifier += e3; - }, t12.prototype.appendToDoctypeSystemIdentifier = function(e3) { - var r3 = this.current("Doctype"); - r3.systemIdentifier === void 0 ? r3.systemIdentifier = e3 : r3.systemIdentifier += e3; - }, t12.prototype.endDoctype = function() { - this.addLocInfo(); - }, t12.prototype.beginData = function() { - this.push({ type: "Chars", chars: "" }); - }, t12.prototype.appendToData = function(e3) { - this.current("Chars").chars += e3; - }, t12.prototype.finishData = function() { - this.addLocInfo(); - }, t12.prototype.beginComment = function() { - this.push({ type: "Comment", chars: "" }); - }, t12.prototype.appendToCommentData = function(e3) { - this.current("Comment").chars += e3; - }, t12.prototype.finishComment = function() { - this.addLocInfo(); - }, t12.prototype.tagOpen = function() { - }, t12.prototype.beginStartTag = function() { - this.push({ type: "StartTag", tagName: "", attributes: [], selfClosing: false }); - }, t12.prototype.beginEndTag = function() { - this.push({ type: "EndTag", tagName: "" }); - }, t12.prototype.finishTag = function() { - this.addLocInfo(); - }, t12.prototype.markTagAsSelfClosing = function() { - this.current("StartTag").selfClosing = true; - }, t12.prototype.appendToTagName = function(e3) { - this.current("StartTag", "EndTag").tagName += e3; - }, t12.prototype.beginAttribute = function() { - this._currentAttribute = ["", "", false]; - }, t12.prototype.appendToAttributeName = function(e3) { - this.currentAttribute()[0] += e3; - }, t12.prototype.beginAttributeValue = function(e3) { - this.currentAttribute()[2] = e3; - }, t12.prototype.appendToAttributeValue = function(e3) { - this.currentAttribute()[1] += e3; - }, t12.prototype.finishAttributeValue = function() { - this.current("StartTag").attributes.push(this._currentAttribute); - }, t12.prototype.reportSyntaxError = function(e3) { - this.current().syntaxError = e3; - }, t12; - }(); - os3 = /[\xA0"&]/; - Ml = new RegExp(os3.source, "g"); - ls2 = /[\xA0&<>]/; - Gl = new RegExp(ls2.source, "g"); - Pt3 = /* @__PURE__ */ Object.create(null); - cs2 = "area base br col command embed hr img input keygen link meta param source track wbr"; - cs2.split(" ").forEach((t12) => { - Pt3[t12] = true; - }); - Y4 = Object.freeze({ line: 1, column: 0 }); - kn2 = Object.freeze({ source: "(synthetic)", start: Y4, end: Y4 }); - ec2 = Object.freeze({ source: "(temporary)", start: Y4, end: Y4 }); - Fe4 = Object.freeze({ source: "(nonexistent)", start: Y4, end: Y4 }); - ee3 = Object.freeze({ source: "(broken)", start: Y4, end: Y4 }); - Nt4 = class t { - constructor(e3) { - this.loc = e3.loc, this.chars = e3.chars; - } - static synthetic(e3) { - let r3 = P3.synthetic(e3); - return new t({ loc: r3, chars: e3 }); - } - static load(e3, r3) { - return new t({ loc: P3.load(e3, r3[1]), chars: r3[0] }); - } - getString() { - return this.chars; - } - serialize() { - return [this.chars, this.loc.serialize()]; - } - }; - Pe3 = "MATCH_ANY"; - At3 = "IS_INVISIBLE"; - fr3 = class { - constructor(e3) { - this._whens = e3; - } - first(e3) { - for (let r3 of this._whens) { - let n = r3.match(e3); - if (He3(n)) - return n[0]; - } - return null; - } - }; - Ct3 = class { - constructor() { - this._map = /* @__PURE__ */ new Map(); - } - get(e3, r3) { - let n = this._map.get(e3); - return n || (n = r3(), this._map.set(e3, n), n); - } - add(e3, r3) { - this._map.set(e3, r3); - } - match(e3) { - let r3 = us2(e3), n = [], i = this._map.get(r3), s3 = this._map.get(Pe3); - return i && n.push(i), s3 && n.push(s3), n; - } - }; - dr3 = class { - constructor() { - this._whens = new Ct3(); - } - check() { - return (e3, r3) => this.matchFor(e3.kind, r3.kind)(e3, r3); - } - matchFor(e3, r3) { - let n = this._whens.match(e3); - return new fr3(n).first(r3); - } - when(e3, r3, n) { - return this._whens.get(e3, () => new Ct3()).add(r3, n), this; - } - }; - te3 = "BROKEN"; - me3 = class t2 { - constructor(e3) { - this.data = e3; - } - static forHbsPos(e3, r3) { - return new re3(e3, r3, null).wrap(); - } - static broken(e3 = Y4) { - return new Me4("Broken", e3).wrap(); - } - get offset() { - let e3 = this.data.toCharPos(); - return e3 === null ? null : e3.offset; - } - eql(e3) { - return hs2(this.data, e3.data); - } - until(e3) { - return z4(this.data, e3.data); - } - move(e3) { - let r3 = this.data.toCharPos(); - if (r3 === null) - return t2.broken(); - { - let n = r3.offset + e3; - return r3.source.check(n) ? new ge2(r3.source, n).wrap() : t2.broken(); - } - } - collapsed() { - return z4(this.data, this.data); - } - toJSON() { - return this.data.toJSON(); - } - }; - ge2 = class { - constructor(e3, r3) { - this.source = e3, this.charPos = r3, this.kind = "CharPosition", this._locPos = null; - } - toCharPos() { - return this; - } - toJSON() { - let e3 = this.toHbsPos(); - return e3 === null ? Y4 : e3.toJSON(); - } - wrap() { - return new me3(this); - } - get offset() { - return this.charPos; - } - toHbsPos() { - let e3 = this._locPos; - if (e3 === null) { - let r3 = this.source.hbsPosFor(this.charPos); - r3 === null ? this._locPos = e3 = te3 : this._locPos = e3 = new re3(this.source, r3, this.charPos); - } - return e3 === te3 ? null : e3; - } - }; - re3 = class { - constructor(e3, r3, n = null) { - this.source = e3, this.hbsPos = r3, this.kind = "HbsPosition", this._charPos = n === null ? null : new ge2(e3, n); - } - toCharPos() { - let e3 = this._charPos; - if (e3 === null) { - let r3 = this.source.charPosFor(this.hbsPos); - r3 === null ? this._charPos = e3 = te3 : this._charPos = e3 = new ge2(this.source, r3); - } - return e3 === te3 ? null : e3; - } - toJSON() { - return this.hbsPos; - } - wrap() { - return new me3(this); - } - toHbsPos() { - return this; - } - }; - Me4 = class { - constructor(e3, r3) { - this.kind = e3, this.pos = r3; - } - toCharPos() { - return null; - } - toJSON() { - return this.pos; - } - wrap() { - return new me3(this); - } - get offset() { - return null; - } - }; - hs2 = _t2((t12) => t12.when("HbsPosition", "HbsPosition", ({ hbsPos: e3 }, { hbsPos: r3 }) => e3.column === r3.column && e3.line === r3.line).when("CharPosition", "CharPosition", ({ charPos: e3 }, { charPos: r3 }) => e3 === r3).when("CharPosition", "HbsPosition", ({ offset: e3 }, r3) => { - var n; - return e3 === ((n = r3.toCharPos()) === null || n === void 0 ? void 0 : n.offset); - }).when("HbsPosition", "CharPosition", (e3, { offset: r3 }) => { - var n; - return ((n = e3.toCharPos()) === null || n === void 0 ? void 0 : n.offset) === r3; - }).when(Pe3, Pe3, () => false)); - P3 = class t3 { - constructor(e3) { - this.data = e3, this.isInvisible = e3.kind !== "CharPosition" && e3.kind !== "HbsPosition"; - } - static get NON_EXISTENT() { - return new ne3("NonExistent", Fe4).wrap(); - } - static load(e3, r3) { - if (typeof r3 == "number") - return t3.forCharPositions(e3, r3, r3); - if (typeof r3 == "string") - return t3.synthetic(r3); - if (Array.isArray(r3)) - return t3.forCharPositions(e3, r3[0], r3[1]); - if (r3 === "NonExistent") - return t3.NON_EXISTENT; - if (r3 === "Broken") - return t3.broken(ee3); - bn2(r3); - } - static forHbsLoc(e3, r3) { - let n = new re3(e3, r3.start), i = new re3(e3, r3.end); - return new ot4(e3, { start: n, end: i }, r3).wrap(); - } - static forCharPositions(e3, r3, n) { - let i = new ge2(e3, r3), s3 = new ge2(e3, n); - return new at3(e3, { start: i, end: s3 }).wrap(); - } - static synthetic(e3) { - return new ne3("InternalsSynthetic", Fe4, e3).wrap(); - } - static broken(e3 = ee3) { - return new ne3("Broken", e3).wrap(); - } - getStart() { - return this.data.getStart().wrap(); - } - getEnd() { - return this.data.getEnd().wrap(); - } - get loc() { - let e3 = this.data.toHbsSpan(); - return e3 === null ? ee3 : e3.toHbsLoc(); - } - get module() { - return this.data.getModule(); - } - get startPosition() { - return this.loc.start; - } - get endPosition() { - return this.loc.end; - } - toJSON() { - return this.loc; - } - withStart(e3) { - return z4(e3.data, this.data.getEnd()); - } - withEnd(e3) { - return z4(this.data.getStart(), e3.data); - } - asString() { - return this.data.asString(); - } - toSlice(e3) { - let r3 = this.data.asString(); - return false, new Nt4({ loc: this, chars: e3 || r3 }); - } - get start() { - return this.loc.start; - } - set start(e3) { - this.data.locDidUpdate({ start: e3 }); - } - get end() { - return this.loc.end; - } - set end(e3) { - this.data.locDidUpdate({ end: e3 }); - } - get source() { - return this.module; - } - collapse(e3) { - switch (e3) { - case "start": - return this.getStart().collapsed(); - case "end": - return this.getEnd().collapsed(); - } - } - extend(e3) { - return z4(this.data.getStart(), e3.data.getEnd()); - } - serialize() { - return this.data.serialize(); - } - slice({ skipStart: e3 = 0, skipEnd: r3 = 0 }) { - return z4(this.getStart().move(e3).data, this.getEnd().move(-r3).data); - } - sliceStartChars({ skipStart: e3 = 0, chars: r3 }) { - return z4(this.getStart().move(e3).data, this.getStart().move(e3 + r3).data); - } - sliceEndChars({ skipEnd: e3 = 0, chars: r3 }) { - return z4(this.getEnd().move(e3 - r3).data, this.getStart().move(-e3).data); - } - }; - at3 = class { - constructor(e3, r3) { - this.source = e3, this.charPositions = r3, this.kind = "CharPosition", this._locPosSpan = null; - } - wrap() { - return new P3(this); - } - asString() { - return this.source.slice(this.charPositions.start.charPos, this.charPositions.end.charPos); - } - getModule() { - return this.source.module; - } - getStart() { - return this.charPositions.start; - } - getEnd() { - return this.charPositions.end; - } - locDidUpdate() { - } - toHbsSpan() { - let e3 = this._locPosSpan; - if (e3 === null) { - let r3 = this.charPositions.start.toHbsPos(), n = this.charPositions.end.toHbsPos(); - r3 === null || n === null ? e3 = this._locPosSpan = te3 : e3 = this._locPosSpan = new ot4(this.source, { start: r3, end: n }); - } - return e3 === te3 ? null : e3; - } - serialize() { - let { start: { charPos: e3 }, end: { charPos: r3 } } = this.charPositions; - return e3 === r3 ? e3 : [e3, r3]; - } - toCharPosSpan() { - return this; - } - }; - ot4 = class { - constructor(e3, r3, n = null) { - this.source = e3, this.hbsPositions = r3, this.kind = "HbsPosition", this._charPosSpan = null, this._providedHbsLoc = n; - } - serialize() { - let e3 = this.toCharPosSpan(); - return e3 === null ? "Broken" : e3.wrap().serialize(); - } - wrap() { - return new P3(this); - } - updateProvided(e3, r3) { - this._providedHbsLoc && (this._providedHbsLoc[r3] = e3), this._charPosSpan = null, this._providedHbsLoc = { start: e3, end: e3 }; - } - locDidUpdate({ start: e3, end: r3 }) { - e3 !== void 0 && (this.updateProvided(e3, "start"), this.hbsPositions.start = new re3(this.source, e3, null)), r3 !== void 0 && (this.updateProvided(r3, "end"), this.hbsPositions.end = new re3(this.source, r3, null)); - } - asString() { - let e3 = this.toCharPosSpan(); - return e3 === null ? "" : e3.asString(); - } - getModule() { - return this.source.module; - } - getStart() { - return this.hbsPositions.start; - } - getEnd() { - return this.hbsPositions.end; - } - toHbsLoc() { - return { start: this.hbsPositions.start.hbsPos, end: this.hbsPositions.end.hbsPos }; - } - toHbsSpan() { - return this; - } - toCharPosSpan() { - let e3 = this._charPosSpan; - if (e3 === null) { - let r3 = this.hbsPositions.start.toCharPos(), n = this.hbsPositions.end.toCharPos(); - if (r3 && n) - e3 = this._charPosSpan = new at3(this.source, { start: r3, end: n }); - else - return e3 = this._charPosSpan = te3, null; - } - return e3 === te3 ? null : e3; - } - }; - ne3 = class { - constructor(e3, r3, n = null) { - this.kind = e3, this.loc = r3, this.string = n; - } - serialize() { - switch (this.kind) { - case "Broken": - case "NonExistent": - return this.kind; - case "InternalsSynthetic": - return this.string || ""; - } - } - wrap() { - return new P3(this); - } - asString() { - return this.string || ""; - } - locDidUpdate({ start: e3, end: r3 }) { - e3 !== void 0 && (this.loc.start = e3), r3 !== void 0 && (this.loc.end = r3); - } - getModule() { - return "an unknown module"; - } - getStart() { - return new Me4(this.kind, this.loc.start); - } - getEnd() { - return new Me4(this.kind, this.loc.end); - } - toCharPosSpan() { - return this; - } - toHbsSpan() { - return null; - } - toHbsLoc() { - return ee3; - } - }; - z4 = _t2((t12) => t12.when("HbsPosition", "HbsPosition", (e3, r3) => new ot4(e3.source, { start: e3, end: r3 }).wrap()).when("CharPosition", "CharPosition", (e3, r3) => new at3(e3.source, { start: e3, end: r3 }).wrap()).when("CharPosition", "HbsPosition", (e3, r3) => { - let n = r3.toCharPos(); - return n === null ? new ne3("Broken", ee3).wrap() : z4(e3, n); - }).when("HbsPosition", "CharPosition", (e3, r3) => { - let n = e3.toCharPos(); - return n === null ? new ne3("Broken", ee3).wrap() : z4(n, r3); - }).when(At3, Pe3, (e3) => new ne3(e3.kind, ee3).wrap()).when(Pe3, At3, (e3, r3) => new ne3(r3.kind, ee3).wrap())); - ie2 = class { - constructor(e3, r3 = "an unknown module") { - this.source = e3, this.module = r3; - } - check(e3) { - return e3 >= 0 && e3 <= this.source.length; - } - slice(e3, r3) { - return this.source.slice(e3, r3); - } - offsetFor(e3, r3) { - return me3.forHbsPos(this, { line: e3, column: r3 }); - } - spanFor({ start: e3, end: r3 }) { - return P3.forHbsLoc(this, { start: { line: e3.line, column: e3.column }, end: { line: r3.line, column: r3.column } }); - } - hbsPosFor(e3) { - let r3 = 0, n = 0; - if (e3 > this.source.length) - return null; - for (; ; ) { - let i = this.source.indexOf(` -`, n); - if (e3 <= i || i === -1) - return { line: r3 + 1, column: e3 - n }; - r3 += 1, n = i + 1; - } - } - charPosFor(e3) { - let { line: r3, column: n } = e3, s3 = this.source.length, a = 0, l = 0; - for (; ; ) { - if (l >= s3) - return s3; - let c3 = this.source.indexOf(` -`, l); - if (c3 === -1 && (c3 = this.source.length), a === r3 - 1) { - if (l + n > c3) - return c3; - if (false) { - let h4 = this.hbsPosFor(l + n); - } - return l + n; - } else { - if (c3 === -1) - return 0; - a += 1, l = c3 + 1; - } - } - } - }; - ps2 = { Program: T2("body"), Template: T2("body"), Block: T2("body"), MustacheStatement: T2("path", "params", "hash"), BlockStatement: T2("path", "params", "hash", "program", "inverse"), ElementModifierStatement: T2("path", "params", "hash"), PartialStatement: T2("name", "params", "hash"), CommentStatement: T2(), MustacheCommentStatement: T2(), ElementNode: T2("attributes", "modifiers", "children", "comments"), AttrNode: T2("value"), TextNode: T2(), ConcatStatement: T2("parts"), SubExpression: T2("path", "params", "hash"), PathExpression: T2(), PathHead: T2(), StringLiteral: T2(), BooleanLiteral: T2(), NumberLiteral: T2(), NullLiteral: T2(), UndefinedLiteral: T2(), Hash: T2("pairs"), HashPair: T2("value"), NamedBlock: T2("attributes", "modifiers", "children", "comments"), SimpleElement: T2("attributes", "modifiers", "children", "comments"), Component: T2("head", "attributes", "modifiers", "children", "comments") }; - Pn2 = ps2; - mr3 = function() { - t12.prototype = Object.create(Error.prototype), t12.prototype.constructor = t12; - function t12(e3, r3, n, i) { - let s3 = Error.call(this, e3); - this.key = i, this.message = e3, this.node = r3, this.parent = n, this.stack = s3.stack; - } - return t12; - }(); - be5 = class { - constructor(e3, r3 = null, n = null) { - this.node = e3, this.parent = r3, this.parentKey = n; - } - get parentNode() { - return this.parent ? this.parent.node : null; - } - parents() { - return { [Symbol.iterator]: () => new yr3(this) }; - } - }; - yr3 = class { - constructor(e3) { - this.path = e3; - } - next() { - return this.path.parent ? (this.path = this.path.parent, { done: false, value: this.path }) : { done: true, value: null }; - } - }; - Ss3 = /[!"#%-,\.\/;->@\[-\^`\{-~]/; - Hn2 = { mustache: vs4, block: ws4, partial: ks4, comment: Ps4, mustacheComment: Ns3, element: As3, elementModifier: xs3, attr: _s4, text: Ls3, sexpr: Ds4, concat: Cs3, hash: Ge3, pair: Rs3, literal: Dt3, program: qs3, blockItself: Vs3, template: Hs3, loc: E3, pos: Us3, path: lt2, fullPath: Bs4, head: Os4, at: qn2, var: Vn2, this: Rn2, blockName: Is3, string: wr3("StringLiteral"), boolean: wr3("BooleanLiteral"), number: wr3("NumberLiteral"), undefined() { - return Dt3("UndefinedLiteral", void 0); - }, null() { - return Dt3("NullLiteral", null); - } }; - j3 = class { - constructor(e3, r3, n, i) { - this.original = e3, this.loc = i, this.type = "PathExpression", this.this = false, this.data = false, this._head = void 0; - let s3 = n.slice(); - r3.type === "ThisHead" ? this.this = true : r3.type === "AtHead" ? (this.data = true, s3.unshift(r3.name.slice(1))) : s3.unshift(r3.name), this.parts = s3; - } - get head() { - if (this._head) - return this._head; - let e3; - this.this ? e3 = "this" : this.data ? e3 = `@${this.parts[0]}` : e3 = this.parts[0]; - let r3 = this.loc.collapse("start").sliceStartChars({ chars: e3.length }).loc; - return this._head = Hn2.head(e3, r3); - } - get tail() { - return this.this ? this.parts : this.parts.slice(1); - } - }; - Ot4 = { close: false, open: false }; - xr3 = class { - pos(e3, r3) { - return { line: e3, column: r3 }; - } - blockItself({ body: e3, blockParams: r3, chained: n = false, loc: i }) { - return { type: "Block", body: e3 || [], blockParams: r3 || [], chained: n, loc: i }; - } - template({ body: e3, blockParams: r3, loc: n }) { - return { type: "Template", body: e3 || [], blockParams: r3 || [], loc: n }; - } - mustache({ path: e3, params: r3, hash: n, trusting: i, loc: s3, strip: a = Ot4 }) { - return { type: "MustacheStatement", path: e3, params: r3, hash: n, escaped: !i, trusting: i, loc: s3, strip: a || { open: false, close: false } }; - } - block({ path: e3, params: r3, hash: n, defaultBlock: i, elseBlock: s3 = null, loc: a, openStrip: l = Ot4, inverseStrip: c3 = Ot4, closeStrip: h4 = Ot4 }) { - return { type: "BlockStatement", path: e3, params: r3, hash: n, program: i, inverse: s3, loc: a, openStrip: l, inverseStrip: c3, closeStrip: h4 }; - } - comment(e3, r3) { - return { type: "CommentStatement", value: e3, loc: r3 }; - } - mustacheComment(e3, r3) { - return { type: "MustacheCommentStatement", value: e3, loc: r3 }; - } - concat(e3, r3) { - return { type: "ConcatStatement", parts: e3, loc: r3 }; - } - element({ tag: e3, selfClosing: r3, attrs: n, blockParams: i, modifiers: s3, comments: a, children: l, loc: c3 }) { - return { type: "ElementNode", tag: e3, selfClosing: r3, attributes: n || [], blockParams: i || [], modifiers: s3 || [], comments: a || [], children: l || [], loc: c3 }; - } - elementModifier({ path: e3, params: r3, hash: n, loc: i }) { - return { type: "ElementModifierStatement", path: e3, params: r3, hash: n, loc: i }; - } - attr({ name: e3, value: r3, loc: n }) { - return { type: "AttrNode", name: e3, value: r3, loc: n }; - } - text({ chars: e3, loc: r3 }) { - return { type: "TextNode", chars: e3, loc: r3 }; - } - sexpr({ path: e3, params: r3, hash: n, loc: i }) { - return { type: "SubExpression", path: e3, params: r3, hash: n, loc: i }; - } - path({ head: e3, tail: r3, loc: n }) { - let { original: i } = Fs4(e3), s3 = [...i, ...r3].join("."); - return new j3(s3, e3, r3, n); - } - head(e3, r3) { - return e3[0] === "@" ? this.atName(e3, r3) : e3 === "this" ? this.this(r3) : this.var(e3, r3); - } - this(e3) { - return { type: "ThisHead", loc: e3 }; - } - atName(e3, r3) { - return { type: "AtHead", name: e3, loc: r3 }; - } - var(e3, r3) { - return { type: "VarHead", name: e3, loc: r3 }; - } - hash(e3, r3) { - return { type: "Hash", pairs: e3 || [], loc: r3 }; - } - pair({ key: e3, value: r3, loc: n }) { - return { type: "HashPair", key: e3, value: r3, loc: n }; - } - literal({ type: e3, value: r3, loc: n }) { - return { type: e3, value: r3, original: r3, loc: n }; - } - undefined() { - return this.literal({ type: "UndefinedLiteral", value: void 0 }); - } - null() { - return this.literal({ type: "NullLiteral", value: null }); - } - string(e3, r3) { - return this.literal({ type: "StringLiteral", value: e3, loc: r3 }); - } - boolean(e3, r3) { - return this.literal({ type: "BooleanLiteral", value: e3, loc: r3 }); - } - number(e3, r3) { - return this.literal({ type: "NumberLiteral", value: e3, loc: r3 }); - } - }; - x2 = new xr3(); - It3 = class { - constructor(e3, r3 = new kt4(xn2), n = "precompile") { - this.elementStack = [], this.currentAttribute = null, this.currentNode = null, this.source = e3, this.lines = e3.source.split(/(?:\r\n?|\n)/g), this.tokenizer = new pr2(this, r3, n); - } - offset() { - let { line: e3, column: r3 } = this.tokenizer; - return this.source.offsetFor(e3, r3); - } - pos({ line: e3, column: r3 }) { - return this.source.offsetFor(e3, r3); - } - finish(e3) { - return pe3({}, e3, { loc: e3.loc.until(this.offset()) }); - } - get currentAttr() { - return this.currentAttribute; - } - get currentTag() { - return this.currentNode; - } - get currentStartTag() { - return this.currentNode; - } - get currentEndTag() { - return this.currentNode; - } - get currentComment() { - return this.currentNode; - } - get currentData() { - return this.currentNode; - } - acceptTemplate(e3) { - return this[e3.type](e3); - } - acceptNode(e3) { - return this[e3.type](e3); - } - currentElement() { - return this.elementStack[this.elementStack.length - 1]; - } - sourceForNode(e3, r3) { - let n = e3.loc.start.line - 1, i = n - 1, s3 = e3.loc.start.column, a = [], l, c3, h4; - for (r3 ? (c3 = r3.loc.end.line - 1, h4 = r3.loc.end.column) : (c3 = e3.loc.end.line - 1, h4 = e3.loc.end.column); i < c3; ) - i++, l = this.lines[i], i === n ? n === c3 ? a.push(l.slice(s3, h4)) : a.push(l.slice(s3)) : i === c3 ? a.push(l.slice(0, h4)) : a.push(l); - return a.join(` -`); - } - }; - Bt3 = class extends It3 { - get isTopLevel() { - return this.elementStack.length === 0; - } - Program(e3) { - let r3 = [], n; - this.isTopLevel ? n = x2.template({ body: r3, blockParams: e3.blockParams, loc: this.source.spanFor(e3.loc) }) : n = x2.blockItself({ body: r3, blockParams: e3.blockParams, chained: e3.chained, loc: this.source.spanFor(e3.loc) }); - let i, s3 = e3.body.length; - if (this.elementStack.push(n), s3 === 0) - return this.elementStack.pop(); - for (i = 0; i < s3; i++) - this.acceptNode(e3.body[i]); - let a = this.elementStack.pop(); - if (a !== n) { - let l = a; - throw S2(`Unclosed element \`${l.tag}\``, l.loc); - } - return n; - } - BlockStatement(e3) { - if (this.tokenizer.state === "comment") { - this.appendToCommentData(this.sourceForNode(e3)); - return; - } - if (this.tokenizer.state !== "data" && this.tokenizer.state !== "beforeData") - throw S2("A block may only be used inside an HTML element or another block.", this.source.spanFor(e3.loc)); - let { path: r3, params: n, hash: i } = kr4(this, e3); - e3.program.loc || (e3.program.loc = Fe4), e3.inverse && !e3.inverse.loc && (e3.inverse.loc = Fe4); - let s3 = this.Program(e3.program), a = e3.inverse ? this.Program(e3.inverse) : null, l = x2.block({ path: r3, params: n, hash: i, defaultBlock: s3, elseBlock: a, loc: this.source.spanFor(e3.loc), openStrip: e3.openStrip, inverseStrip: e3.inverseStrip, closeStrip: e3.closeStrip }), c3 = this.currentElement(); - ye3(c3, l); - } - MustacheStatement(e3) { - let { tokenizer: r3 } = this; - if (r3.state === "comment") { - this.appendToCommentData(this.sourceForNode(e3)); - return; - } - let n, { escaped: i, loc: s3, strip: a } = e3; - if (Er3(e3.path)) - n = x2.mustache({ path: this.acceptNode(e3.path), params: [], hash: x2.hash([], this.source.spanFor(e3.path.loc).collapse("end")), trusting: !i, loc: this.source.spanFor(s3), strip: a }); - else { - let { path: l, params: c3, hash: h4 } = kr4(this, e3); - n = x2.mustache({ path: l, params: c3, hash: h4, trusting: !i, loc: this.source.spanFor(s3), strip: a }); - } - switch (r3.state) { - case "tagOpen": - case "tagName": - throw S2("Cannot use mustaches in an elements tagname", n.loc); - case "beforeAttributeName": - Pr3(this.currentStartTag, n); - break; - case "attributeName": - case "afterAttributeName": - this.beginAttributeValue(false), this.finishAttributeValue(), Pr3(this.currentStartTag, n), r3.transitionTo("beforeAttributeName"); - break; - case "afterAttributeValueQuoted": - Pr3(this.currentStartTag, n), r3.transitionTo("beforeAttributeName"); - break; - case "beforeAttributeValue": - this.beginAttributeValue(false), this.appendDynamicAttributeValuePart(n), r3.transitionTo("attributeValueUnquoted"); - break; - case "attributeValueDoubleQuoted": - case "attributeValueSingleQuoted": - case "attributeValueUnquoted": - this.appendDynamicAttributeValuePart(n); - break; - default: - ye3(this.currentElement(), n); - } - return n; - } - appendDynamicAttributeValuePart(e3) { - this.finalizeTextPart(); - let r3 = this.currentAttr; - r3.isDynamic = true, r3.parts.push(e3); - } - finalizeTextPart() { - let r3 = this.currentAttr.currentPart; - r3 !== null && (this.currentAttr.parts.push(r3), this.startTextPart()); - } - startTextPart() { - this.currentAttr.currentPart = null; - } - ContentStatement(e3) { - Gs3(this.tokenizer, e3), this.tokenizer.tokenizePart(e3.value), this.tokenizer.flushData(); - } - CommentStatement(e3) { - let { tokenizer: r3 } = this; - if (r3.state === "comment") - return this.appendToCommentData(this.sourceForNode(e3)), null; - let { value: n, loc: i } = e3, s3 = x2.mustacheComment(n, this.source.spanFor(i)); - switch (r3.state) { - case "beforeAttributeName": - case "afterAttributeName": - this.currentStartTag.comments.push(s3); - break; - case "beforeData": - case "data": - ye3(this.currentElement(), s3); - break; - default: - throw S2(`Using a Handlebars comment when in the \`${r3.state}\` state is not supported`, this.source.spanFor(e3.loc)); - } - return s3; - } - PartialStatement(e3) { - throw S2("Handlebars partials are not supported", this.source.spanFor(e3.loc)); - } - PartialBlockStatement(e3) { - throw S2("Handlebars partial blocks are not supported", this.source.spanFor(e3.loc)); - } - Decorator(e3) { - throw S2("Handlebars decorators are not supported", this.source.spanFor(e3.loc)); - } - DecoratorBlock(e3) { - throw S2("Handlebars decorator blocks are not supported", this.source.spanFor(e3.loc)); - } - SubExpression(e3) { - let { path: r3, params: n, hash: i } = kr4(this, e3); - return x2.sexpr({ path: r3, params: n, hash: i, loc: this.source.spanFor(e3.loc) }); - } - PathExpression(e3) { - let { original: r3 } = e3, n; - if (r3.indexOf("/") !== -1) { - if (r3.slice(0, 2) === "./") - throw S2('Using "./" is not supported in Glimmer and unnecessary', this.source.spanFor(e3.loc)); - if (r3.slice(0, 3) === "../") - throw S2('Changing context using "../" is not supported in Glimmer', this.source.spanFor(e3.loc)); - if (r3.indexOf(".") !== -1) - throw S2("Mixing '.' and '/' in paths is not supported in Glimmer; use only '.' to separate property paths", this.source.spanFor(e3.loc)); - n = [e3.parts.join("/")]; - } else { - if (r3 === ".") - throw S2("'.' is not a supported path in Glimmer; check for a path with a trailing '.'", this.source.spanFor(e3.loc)); - n = e3.parts; - } - let i = false; - r3.match(/^this(\..+)?$/) && (i = true); - let s3; - if (i) - s3 = { type: "ThisHead", loc: { start: e3.loc.start, end: { line: e3.loc.start.line, column: e3.loc.start.column + 4 } } }; - else if (e3.data) { - let a = n.shift(); - if (a === void 0) - throw S2("Attempted to parse a path expression, but it was not valid. Paths beginning with @ must start with a-z.", this.source.spanFor(e3.loc)); - s3 = { type: "AtHead", name: `@${a}`, loc: { start: e3.loc.start, end: { line: e3.loc.start.line, column: e3.loc.start.column + a.length + 1 } } }; - } else { - let a = n.shift(); - if (a === void 0) - throw S2("Attempted to parse a path expression, but it was not valid. Paths must start with a-z or A-Z.", this.source.spanFor(e3.loc)); - s3 = { type: "VarHead", name: a, loc: { start: e3.loc.start, end: { line: e3.loc.start.line, column: e3.loc.start.column + a.length } } }; - } - return new j3(e3.original, s3, n, this.source.spanFor(e3.loc)); - } - Hash(e3) { - let r3 = []; - for (let n = 0; n < e3.pairs.length; n++) { - let i = e3.pairs[n]; - r3.push(x2.pair({ key: i.key, value: this.acceptNode(i.value), loc: this.source.spanFor(i.loc) })); - } - return x2.hash(r3, this.source.spanFor(e3.loc)); - } - StringLiteral(e3) { - return x2.literal({ type: "StringLiteral", value: e3.value, loc: e3.loc }); - } - BooleanLiteral(e3) { - return x2.literal({ type: "BooleanLiteral", value: e3.value, loc: e3.loc }); - } - NumberLiteral(e3) { - return x2.literal({ type: "NumberLiteral", value: e3.value, loc: e3.loc }); - } - UndefinedLiteral(e3) { - return x2.literal({ type: "UndefinedLiteral", value: void 0, loc: e3.loc }); - } - NullLiteral(e3) { - return x2.literal({ type: "NullLiteral", value: null, loc: e3.loc }); - } - }; - Nr4 = class extends Bt3 { - constructor() { - super(...arguments), this.tagOpenLine = 0, this.tagOpenColumn = 0; - } - reset() { - this.currentNode = null; - } - beginComment() { - this.currentNode = x2.comment("", this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn)); - } - appendToCommentData(e3) { - this.currentComment.value += e3; - } - finishComment() { - ye3(this.currentElement(), this.finish(this.currentComment)); - } - beginData() { - this.currentNode = x2.text({ chars: "", loc: this.offset().collapsed() }); - } - appendToData(e3) { - this.currentData.chars += e3; - } - finishData() { - this.currentData.loc = this.currentData.loc.withEnd(this.offset()), ye3(this.currentElement(), this.currentData); - } - tagOpen() { - this.tagOpenLine = this.tokenizer.line, this.tagOpenColumn = this.tokenizer.column; - } - beginStartTag() { - this.currentNode = { type: "StartTag", name: "", attributes: [], modifiers: [], comments: [], selfClosing: false, loc: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) }; - } - beginEndTag() { - this.currentNode = { type: "EndTag", name: "", attributes: [], modifiers: [], comments: [], selfClosing: false, loc: this.source.offsetFor(this.tagOpenLine, this.tagOpenColumn) }; - } - finishTag() { - let e3 = this.finish(this.currentTag); - if (e3.type === "StartTag") { - if (this.finishStartTag(), e3.name === ":") - throw S2("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter", this.source.spanFor({ start: this.currentTag.loc.toJSON(), end: this.offset().toJSON() })); - (Pt3[e3.name] || e3.selfClosing) && this.finishEndTag(true); - } else - e3.type === "EndTag" && this.finishEndTag(false); - } - finishStartTag() { - let { name: e3, attributes: r3, modifiers: n, comments: i, selfClosing: s3, loc: a } = this.finish(this.currentStartTag), l = x2.element({ tag: e3, selfClosing: s3, attrs: r3, modifiers: n, comments: i, children: [], blockParams: [], loc: a }); - this.elementStack.push(l); - } - finishEndTag(e3) { - let r3 = this.finish(this.currentTag), n = this.elementStack.pop(), i = this.currentElement(); - this.validateEndTag(r3, n, e3), n.loc = n.loc.withEnd(this.offset()), Dn2(n), ye3(i, n); - } - markTagAsSelfClosing() { - this.currentTag.selfClosing = true; - } - appendToTagName(e3) { - this.currentTag.name += e3; - } - beginAttribute() { - let e3 = this.offset(); - this.currentAttribute = { name: "", parts: [], currentPart: null, isQuoted: false, isDynamic: false, start: e3, valueSpan: e3.collapsed() }; - } - appendToAttributeName(e3) { - this.currentAttr.name += e3; - } - beginAttributeValue(e3) { - this.currentAttr.isQuoted = e3, this.startTextPart(), this.currentAttr.valueSpan = this.offset().collapsed(); - } - appendToAttributeValue(e3) { - let r3 = this.currentAttr.parts, n = r3[r3.length - 1], i = this.currentAttr.currentPart; - if (i) - i.chars += e3, i.loc = i.loc.withEnd(this.offset()); - else { - let s3 = this.offset(); - e3 === ` -` ? s3 = n ? n.loc.getEnd() : this.currentAttr.valueSpan.getStart() : s3 = s3.move(-1), this.currentAttr.currentPart = x2.text({ chars: e3, loc: s3.collapsed() }); - } - } - finishAttributeValue() { - this.finalizeTextPart(); - let e3 = this.currentTag, r3 = this.offset(); - if (e3.type === "EndTag") - throw S2("Invalid end tag: closing tag must not have attributes", this.source.spanFor({ start: e3.loc.toJSON(), end: r3.toJSON() })); - let { name: n, parts: i, start: s3, isQuoted: a, isDynamic: l, valueSpan: c3 } = this.currentAttr, h4 = this.assembleAttributeValue(i, a, l, s3.until(r3)); - h4.loc = c3.withEnd(r3); - let g3 = x2.attr({ name: n, value: h4, loc: s3.until(r3) }); - this.currentStartTag.attributes.push(g3); - } - reportSyntaxError(e3) { - throw S2(e3, this.offset().collapsed()); - } - assembleConcatenatedValue(e3) { - for (let i = 0; i < e3.length; i++) { - let s3 = e3[i]; - if (s3.type !== "MustacheStatement" && s3.type !== "TextNode") - throw S2("Unsupported node in quoted attribute value: " + s3.type, s3.loc); - } - mn2(e3, "the concatenation parts of an element should not be empty"); - let r3 = e3[0], n = e3[e3.length - 1]; - return x2.concat(e3, this.source.spanFor(r3.loc).extend(this.source.spanFor(n.loc))); - } - validateEndTag(e3, r3, n) { - let i; - if (Pt3[e3.name] && !n ? i = `<${e3.name}> elements do not need end tags. You should remove it` : r3.tag === void 0 ? i = `Closing tag without an open tag` : r3.tag !== e3.name && (i = `Closing tag did not match last open tag <${r3.tag}> (on line ${r3.loc.startPosition.line})`), i) - throw S2(i, e3.loc); - } - assembleAttributeValue(e3, r3, n, i) { - if (n) { - if (r3) - return this.assembleConcatenatedValue(e3); - if (e3.length === 1 || e3.length === 2 && e3[1].type === "TextNode" && e3[1].chars === "/") - return e3[0]; - throw S2("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'", i); - } else - return e3.length > 0 ? e3[0] : x2.text({ chars: "", loc: i }); - } - }; - Ys3 = {}; - Cr3 = class extends kt4 { - constructor() { - super({}); - } - parse() { - } - }; - Rt3 = ` -`; - Fn2 = "\r"; - Mn2 = function() { - function t12(e3) { - this.length = e3.length; - for (var r3 = [0], n = 0; n < e3.length; ) - switch (e3[n]) { - case Rt3: - n += Rt3.length, r3.push(n); - break; - case Fn2: - n += Fn2.length, e3[n] === Rt3 && (n += Rt3.length), r3.push(n); - break; - default: - n++; - break; - } - this.offsets = r3; - } - return t12.prototype.locationForIndex = function(e3) { - if (e3 < 0 || e3 > this.length) - return null; - for (var r3 = 0, n = this.offsets; n[r3 + 1] <= e3; ) - r3++; - var i = e3 - n[r3]; - return { line: r3, column: i }; - }, t12.prototype.indexForLocation = function(e3) { - var r3 = e3.line, n = e3.column; - return r3 < 0 || r3 >= this.offsets.length || n < 0 || n > this.lengthOfLine(r3) ? null : this.offsets[r3] + n; - }, t12.prototype.lengthOfLine = function(e3) { - var r3 = this.offsets[e3], n = e3 === this.offsets.length - 1 ? this.length : this.offsets[e3 + 1]; - return n - r3; - }, t12; - }(); - Gn2 = zs3; - Xs3 = { parse: js4, astFormat: "glimmer", locStart: xe3, locEnd: tt4 }; - Yn2 = [{ linguistLanguageId: 155, name: "Handlebars", type: "markup", color: "#f7931e", aliases: ["hbs", "htmlbars"], extensions: [".handlebars", ".hbs"], tmScope: "text.html.handlebars", aceMode: "handlebars", parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"] }]; - $s3 = { glimmer: fn2 }; - Fu2 = _r2; - } -}); - -// node_modules/prettier/plugins/graphql.mjs -var graphql_exports = {}; -__export(graphql_exports, { - default: () => pr3, - languages: () => Ke4, - options: () => et5, - parsers: () => Ee, - printers: () => rn3 -}); -function x3(e3) { - return b3(e3), { type: re4, contents: e3 }; -} -function y2(e3, t12 = {}) { - return b3(e3), ce3(t12.expandedStates, true), { type: se2, id: t12.id, contents: e3, break: !!t12.shouldBreak, expandedStates: t12.expandedStates }; -} -function O3(e3, t12 = "", n = {}) { - return b3(e3), t12 !== "" && b3(t12), { type: oe3, breakContents: e3, flatContents: t12, groupId: n.groupId }; -} -function E4(e3, t12) { - b3(e3), ce3(t12); - let n = []; - for (let r3 = 0; r3 < t12.length; r3++) - r3 !== 0 && n.push(e3), n.push(t12[r3]); - return n; -} -function Tt3(e3, t12, n) { - let r3 = !!(n != null && n.backwards); - if (t12 === false) - return false; - let i = e3.charAt(t12); - if (r3) { - if (e3.charAt(t12 - 1) === "\r" && i === ` -`) - return t12 - 2; - if (i === ` -` || i === "\r" || i === "\u2028" || i === "\u2029") - return t12 - 1; - } else { - if (i === "\r" && e3.charAt(t12 + 1) === ` -`) - return t12 + 2; - if (i === ` -` || i === "\r" || i === "\u2028" || i === "\u2029") - return t12 + 1; - } - return t12; -} -function G4(e3) { - return (t12, n, r3) => { - let i = !!(r3 != null && r3.backwards); - if (n === false) - return false; - let { length: s3 } = t12, a = n; - for (; a >= 0 && a < s3; ) { - let u = t12.charAt(a); - if (e3 instanceof RegExp) { - if (!e3.test(u)) - return a; - } else if (!e3.includes(u)) - return a; - i ? a-- : a++; - } - return a === -1 || a === s3 ? a : false; - }; -} -function Nt5(e3, t12) { - if (t12 === false) - return false; - if (e3.charAt(t12) === "/" && e3.charAt(t12 + 1) === "*") { - for (let n = t12 + 2; n < e3.length; ++n) - if (e3.charAt(n) === "*" && e3.charAt(n + 1) === "/") - return n + 2; - } - return t12; -} -function xt4(e3, t12) { - return t12 === false ? false : e3.charAt(t12) === "/" && e3.charAt(t12 + 1) === "/" ? ye4(e3, t12) : t12; -} -function _t3(e3, t12, n = {}) { - let r3 = $4(e3, n.backwards ? t12 - 1 : t12, n), i = j4(e3, r3, n); - return r3 !== i; -} -function yt4(e3, t12) { - let n = null, r3 = t12; - for (; r3 !== n; ) - n = r3, r3 = _e5(e3, r3), r3 = Ie3(e3, r3), r3 = $4(e3, r3); - return r3 = Oe5(e3, r3), r3 = j4(e3, r3), r3 !== false && De5(e3, r3); -} -function It4(e3) { - return Array.isArray(e3) && e3.length > 0; -} -function ke5(e3) { - return /^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/.test(e3); -} -function Ce4(e3) { - return `# @format - -` + e3; -} -function J3(e3) { - return e3.kind === "Comment" ? e3.start : e3.loc.start; -} -function X3(e3) { - return e3.kind === "Comment" ? e3.end : e3.loc.end; -} -function w2(e3) { - if (F3 !== null && typeof F3.property) { - let t12 = F3; - return F3 = w2.prototype = null, t12; - } - return F3 = w2.prototype = e3 ?? /* @__PURE__ */ Object.create(null), new w2(); -} -function pe4(e3) { - return w2(e3); -} -function Dt4(e3, t12 = "type") { - pe4(e3); - function n(r3) { - let i = r3[t12], s3 = e3[i]; - if (!Array.isArray(s3)) - throw Object.assign(new Error(`Missing visitor keys for '${i}'.`), { node: r3 }); - return s3; - } - return n; -} -function At4(e3, t12, n) { - let { node: r3 } = e3; - if (!r3.description) - return ""; - let i = [n("description")]; - return r3.kind === "InputValueDefinition" && !r3.description.block ? i.push(k2) : i.push(f), i; -} -function kt5(e3, t12, n) { - let { node: r3 } = e3; - switch (r3.kind) { - case "Document": - return [...E4(f, A3(e3, t12, n, "definitions")), f]; - case "OperationDefinition": { - let i = t12.originalText[J3(r3)] !== "{", s3 = !!r3.name; - return [i ? r3.operation : "", i && s3 ? [" ", n("name")] : "", i && !s3 && ue2(r3.variableDefinitions) ? " " : "", be6(e3, n), _2(e3, n, r3), !i && !s3 ? "" : " ", n("selectionSet")]; - } - case "FragmentDefinition": - return ["fragment ", n("name"), be6(e3, n), " on ", n("typeCondition"), _2(e3, n, r3), " ", n("selectionSet")]; - case "SelectionSet": - return ["{", x3([f, E4(f, A3(e3, t12, n, "selections"))]), f, "}"]; - case "Field": - return y2([r3.alias ? [n("alias"), ": "] : "", n("name"), r3.arguments.length > 0 ? y2(["(", x3([p, E4([O3("", ", "), p], A3(e3, t12, n, "arguments"))]), p, ")"]) : "", _2(e3, n, r3), r3.selectionSet ? " " : "", n("selectionSet")]); - case "Name": - return r3.value; - case "StringValue": - if (r3.block) { - let i = Y5(false, r3.value, '"""', '\\"""').split(` -`); - return i.length === 1 && (i[0] = i[0].trim()), i.every((s3) => s3 === "") && (i.length = 0), E4(f, ['"""', ...i, '"""']); - } - return ['"', Y5(false, Y5(false, r3.value, /["\\]/g, "\\$&"), ` -`, "\\n"), '"']; - case "IntValue": - case "FloatValue": - case "EnumValue": - return r3.value; - case "BooleanValue": - return r3.value ? "true" : "false"; - case "NullValue": - return "null"; - case "Variable": - return ["$", n("name")]; - case "ListValue": - return y2(["[", x3([p, E4([O3("", ", "), p], e3.map(n, "values"))]), p, "]"]); - case "ObjectValue": { - let i = t12.bracketSpacing && r3.fields.length > 0 ? " " : ""; - return y2(["{", i, x3([p, E4([O3("", ", "), p], e3.map(n, "fields"))]), p, O3("", i), "}"]); - } - case "ObjectField": - case "Argument": - return [n("name"), ": ", n("value")]; - case "Directive": - return ["@", n("name"), r3.arguments.length > 0 ? y2(["(", x3([p, E4([O3("", ", "), p], A3(e3, t12, n, "arguments"))]), p, ")"]) : ""]; - case "NamedType": - return n("name"); - case "VariableDefinition": - return [n("variable"), ": ", n("type"), r3.defaultValue ? [" = ", n("defaultValue")] : "", _2(e3, n, r3)]; - case "ObjectTypeExtension": - case "ObjectTypeDefinition": - case "InputObjectTypeExtension": - case "InputObjectTypeDefinition": - case "InterfaceTypeExtension": - case "InterfaceTypeDefinition": { - let { kind: i } = r3, s3 = []; - return i.endsWith("TypeDefinition") ? s3.push(g(e3, t12, n)) : s3.push("extend "), i.startsWith("ObjectType") ? s3.push("type") : i.startsWith("InputObjectType") ? s3.push("input") : s3.push("interface"), s3.push(" ", n("name")), !i.startsWith("InputObjectType") && r3.interfaces.length > 0 && s3.push(" implements ", ...vt5(e3, t12, n)), s3.push(_2(e3, n, r3)), r3.fields.length > 0 && s3.push([" {", x3([f, E4(f, A3(e3, t12, n, "fields"))]), f, "}"]), s3; - } - case "FieldDefinition": - return [g(e3, t12, n), n("name"), r3.arguments.length > 0 ? y2(["(", x3([p, E4([O3("", ", "), p], A3(e3, t12, n, "arguments"))]), p, ")"]) : "", ": ", n("type"), _2(e3, n, r3)]; - case "DirectiveDefinition": - return [g(e3, t12, n), "directive ", "@", n("name"), r3.arguments.length > 0 ? y2(["(", x3([p, E4([O3("", ", "), p], A3(e3, t12, n, "arguments"))]), p, ")"]) : "", r3.repeatable ? " repeatable" : "", " on ", ...E4(" | ", e3.map(n, "locations"))]; - case "EnumTypeExtension": - case "EnumTypeDefinition": - return [g(e3, t12, n), r3.kind === "EnumTypeExtension" ? "extend " : "", "enum ", n("name"), _2(e3, n, r3), r3.values.length > 0 ? [" {", x3([f, E4(f, A3(e3, t12, n, "values"))]), f, "}"] : ""]; - case "EnumValueDefinition": - return [g(e3, t12, n), n("name"), _2(e3, n, r3)]; - case "InputValueDefinition": - return [g(e3, t12, n), n("name"), ": ", n("type"), r3.defaultValue ? [" = ", n("defaultValue")] : "", _2(e3, n, r3)]; - case "SchemaExtension": - return ["extend schema", _2(e3, n, r3), ...r3.operationTypes.length > 0 ? [" {", x3([f, E4(f, A3(e3, t12, n, "operationTypes"))]), f, "}"] : []]; - case "SchemaDefinition": - return [g(e3, t12, n), "schema", _2(e3, n, r3), " {", r3.operationTypes.length > 0 ? x3([f, E4(f, A3(e3, t12, n, "operationTypes"))]) : "", f, "}"]; - case "OperationTypeDefinition": - return [r3.operation, ": ", n("type")]; - case "FragmentSpread": - return ["...", n("name"), _2(e3, n, r3)]; - case "InlineFragment": - return ["...", r3.typeCondition ? [" on ", n("typeCondition")] : "", _2(e3, n, r3), " ", n("selectionSet")]; - case "UnionTypeExtension": - case "UnionTypeDefinition": - return y2([g(e3, t12, n), y2([r3.kind === "UnionTypeExtension" ? "extend " : "", "union ", n("name"), _2(e3, n, r3), r3.types.length > 0 ? [" =", O3("", " "), x3([O3([k2, " "]), E4([k2, "| "], e3.map(n, "types"))])] : ""])]); - case "ScalarTypeExtension": - case "ScalarTypeDefinition": - return [g(e3, t12, n), r3.kind === "ScalarTypeExtension" ? "extend " : "", "scalar ", n("name"), _2(e3, n, r3)]; - case "NonNullType": - return [n("type"), "!"]; - case "ListType": - return ["[", n("type"), "]"]; - default: - throw new Ae3(r3, "Graphql", "kind"); - } -} -function _2(e3, t12, n) { - if (n.directives.length === 0) - return ""; - let r3 = E4(k2, e3.map(t12, "directives")); - return n.kind === "FragmentDefinition" || n.kind === "OperationDefinition" ? y2([k2, r3]) : [" ", y2(x3([p, r3]))]; -} -function A3(e3, t12, n, r3) { - return e3.map(({ isLast: i, node: s3 }) => { - let a = n(); - return !i && ge3(t12.originalText, X3(s3)) ? [a, f] : a; - }, r3); -} -function Ct4(e3) { - return e3.kind !== "Comment"; -} -function St4(e3) { - let t12 = e3.node; - if (t12.kind === "Comment") - return "#" + t12.value.trimEnd(); - throw new Error("Not a comment: " + JSON.stringify(t12)); -} -function vt5(e3, t12, n) { - let { node: r3 } = e3, i = [], { interfaces: s3 } = r3, a = e3.map(n, "interfaces"); - for (let u = 0; u < s3.length; u++) { - let l = s3[u]; - i.push(a[u]); - let T4 = s3[u + 1]; - if (T4) { - let D6 = t12.originalText.slice(l.loc.end, T4.loc.start).includes("#"); - i.push(" &", D6 ? k2 : " "); - } - } - return i; -} -function be6(e3, t12) { - let { node: n } = e3; - return ue2(n.variableDefinitions) ? y2(["(", x3([p, E4([O3("", ", "), p], e3.map(t12, "variableDefinitions"))]), p, ")"]) : ""; -} -function Le2(e3, t12) { - e3.kind === "StringValue" && e3.block && !e3.value.includes(` -`) && (t12.value = t12.value.trim()); -} -function bt3(e3) { - var n; - let { node: t12 } = e3; - return (n = t12 == null ? void 0 : t12.comments) == null ? void 0 : n.some((r3) => r3.value.trim() === "prettier-ignore"); -} -function Pe4(e3) { - return typeof e3 == "object" && e3 !== null; -} -function Fe5(e3, t12) { - if (!!!e3) - throw new Error(t12 ?? "Unexpected invariant triggered."); -} -function B4(e3, t12) { - let n = 0, r3 = 1; - for (let i of e3.body.matchAll(Rt4)) { - if (typeof i.index == "number" || Fe5(false), i.index >= t12) - break; - n = i.index + i[0].length, r3 += 1; - } - return { line: r3, column: t12 + 1 - n }; -} -function Ve5(e3) { - return fe3(e3.source, B4(e3.source, e3.start)); -} -function fe3(e3, t12) { - let n = e3.locationOffset.column - 1, r3 = "".padStart(n) + e3.body, i = t12.line - 1, s3 = e3.locationOffset.line - 1, a = t12.line + s3, u = t12.line === 1 ? n : 0, l = t12.column + u, T4 = `${e3.name}:${a}:${l} -`, h4 = r3.split(/\r\n|[\n\r]/g), D6 = h4[i]; - if (D6.length > 120) { - let I5 = Math.floor(l / 80), ie6 = l % 80, N6 = []; - for (let v7 = 0; v7 < D6.length; v7 += 80) - N6.push(D6.slice(v7, v7 + 80)); - return T4 + we5([[`${a} |`, N6[0]], ...N6.slice(1, I5 + 1).map((v7) => ["|", v7]), ["|", "^".padStart(ie6)], ["|", N6[I5 + 1]]]); - } - return T4 + we5([[`${a - 1} |`, h4[i - 1]], [`${a} |`, D6], ["|", "^".padStart(l)], [`${a + 1} |`, h4[i + 1]]]); -} -function we5(e3) { - let t12 = e3.filter(([r3, i]) => i !== void 0), n = Math.max(...t12.map(([r3]) => r3.length)); - return t12.map(([r3, i]) => r3.padStart(n) + (i ? " " + i : "")).join(` -`); -} -function Pt4(e3) { - let t12 = e3[0]; - return t12 == null || "kind" in t12 || "length" in t12 ? { nodes: t12, source: e3[1], positions: e3[2], path: e3[3], originalError: e3[4], extensions: e3[5] } : t12; -} -function Be4(e3) { - return e3 === void 0 || e3.length === 0 ? void 0 : e3; -} -function d3(e3, t12, n) { - return new W2(`Syntax Error: ${n}`, { source: e3, positions: [t12] }); -} -function Ue4(e3) { - return e3 === 9 || e3 === 32; -} -function L3(e3) { - return e3 >= 48 && e3 <= 57; -} -function Me5(e3) { - return e3 >= 97 && e3 <= 122 || e3 >= 65 && e3 <= 90; -} -function he5(e3) { - return Me5(e3) || e3 === 95; -} -function Ye3(e3) { - return Me5(e3) || L3(e3) || e3 === 95; -} -function je6(e3) { - var t12; - let n = Number.MAX_SAFE_INTEGER, r3 = null, i = -1; - for (let a = 0; a < e3.length; ++a) { - var s3; - let u = e3[a], l = Ft3(u); - l !== u.length && (r3 = (s3 = r3) !== null && s3 !== void 0 ? s3 : a, i = a, a !== 0 && l < n && (n = l)); - } - return e3.map((a, u) => u === 0 ? a : a.slice(n)).slice((t12 = r3) !== null && t12 !== void 0 ? t12 : 0, i + 1); -} -function Ft3(e3) { - let t12 = 0; - for (; t12 < e3.length && Ue4(e3.charCodeAt(t12)); ) - ++t12; - return t12; -} -function $e4(e3) { - return e3 === o.BANG || e3 === o.DOLLAR || e3 === o.AMP || e3 === o.PAREN_L || e3 === o.PAREN_R || e3 === o.SPREAD || e3 === o.COLON || e3 === o.EQUALS || e3 === o.AT || e3 === o.BRACKET_L || e3 === o.BRACKET_R || e3 === o.BRACE_L || e3 === o.PIPE || e3 === o.BRACE_R; -} -function R3(e3) { - return e3 >= 0 && e3 <= 55295 || e3 >= 57344 && e3 <= 1114111; -} -function K4(e3, t12) { - return Je4(e3.charCodeAt(t12)) && Xe3(e3.charCodeAt(t12 + 1)); -} -function Je4(e3) { - return e3 >= 55296 && e3 <= 56319; -} -function Xe3(e3) { - return e3 >= 56320 && e3 <= 57343; -} -function S3(e3, t12) { - let n = e3.source.body.codePointAt(t12); - if (n === void 0) - return o.EOF; - if (n >= 32 && n <= 126) { - let r3 = String.fromCodePoint(n); - return r3 === '"' ? `'"'` : `"${r3}"`; - } - return "U+" + n.toString(16).toUpperCase().padStart(4, "0"); -} -function m(e3, t12, n, r3, i) { - let s3 = e3.line, a = 1 + n - e3.lineStart; - return new V2(t12, n, r3, s3, a, i); -} -function wt4(e3, t12) { - let n = e3.source.body, r3 = n.length, i = t12; - for (; i < r3; ) { - let s3 = n.charCodeAt(i); - switch (s3) { - case 65279: - case 9: - case 32: - case 44: - ++i; - continue; - case 10: - ++i, ++e3.line, e3.lineStart = i; - continue; - case 13: - n.charCodeAt(i + 1) === 10 ? i += 2 : ++i, ++e3.line, e3.lineStart = i; - continue; - case 35: - return Vt2(e3, i); - case 33: - return m(e3, o.BANG, i, i + 1); - case 36: - return m(e3, o.DOLLAR, i, i + 1); - case 38: - return m(e3, o.AMP, i, i + 1); - case 40: - return m(e3, o.PAREN_L, i, i + 1); - case 41: - return m(e3, o.PAREN_R, i, i + 1); - case 46: - if (n.charCodeAt(i + 1) === 46 && n.charCodeAt(i + 2) === 46) - return m(e3, o.SPREAD, i, i + 3); - break; - case 58: - return m(e3, o.COLON, i, i + 1); - case 61: - return m(e3, o.EQUALS, i, i + 1); - case 64: - return m(e3, o.AT, i, i + 1); - case 91: - return m(e3, o.BRACKET_L, i, i + 1); - case 93: - return m(e3, o.BRACKET_R, i, i + 1); - case 123: - return m(e3, o.BRACE_L, i, i + 1); - case 124: - return m(e3, o.PIPE, i, i + 1); - case 125: - return m(e3, o.BRACE_R, i, i + 1); - case 34: - return n.charCodeAt(i + 1) === 34 && n.charCodeAt(i + 2) === 34 ? Gt2(e3, i) : Ut2(e3, i); - } - if (L3(s3) || s3 === 45) - return Bt4(e3, i, s3); - if (he5(s3)) - return $t4(e3, i); - throw d3(e3.source, i, s3 === 39 ? `Unexpected single quote character ('), did you mean to use a double quote (")?` : R3(s3) || K4(n, i) ? `Unexpected character: ${S3(e3, i)}.` : `Invalid character: ${S3(e3, i)}.`); - } - return m(e3, o.EOF, r3, r3); -} -function Vt2(e3, t12) { - let n = e3.source.body, r3 = n.length, i = t12 + 1; - for (; i < r3; ) { - let s3 = n.charCodeAt(i); - if (s3 === 10 || s3 === 13) - break; - if (R3(s3)) - ++i; - else if (K4(n, i)) - i += 2; - else - break; - } - return m(e3, o.COMMENT, t12, i, n.slice(t12 + 1, i)); -} -function Bt4(e3, t12, n) { - let r3 = e3.source.body, i = t12, s3 = n, a = false; - if (s3 === 45 && (s3 = r3.charCodeAt(++i)), s3 === 48) { - if (s3 = r3.charCodeAt(++i), L3(s3)) - throw d3(e3.source, i, `Invalid number, unexpected digit after 0: ${S3(e3, i)}.`); - } else - i = de3(e3, i, s3), s3 = r3.charCodeAt(i); - if (s3 === 46 && (a = true, s3 = r3.charCodeAt(++i), i = de3(e3, i, s3), s3 = r3.charCodeAt(i)), (s3 === 69 || s3 === 101) && (a = true, s3 = r3.charCodeAt(++i), (s3 === 43 || s3 === 45) && (s3 = r3.charCodeAt(++i)), i = de3(e3, i, s3), s3 = r3.charCodeAt(i)), s3 === 46 || he5(s3)) - throw d3(e3.source, i, `Invalid number, expected digit but got: ${S3(e3, i)}.`); - return m(e3, a ? o.FLOAT : o.INT, t12, i, r3.slice(t12, i)); -} -function de3(e3, t12, n) { - if (!L3(n)) - throw d3(e3.source, t12, `Invalid number, expected digit but got: ${S3(e3, t12)}.`); - let r3 = e3.source.body, i = t12 + 1; - for (; L3(r3.charCodeAt(i)); ) - ++i; - return i; -} -function Ut2(e3, t12) { - let n = e3.source.body, r3 = n.length, i = t12 + 1, s3 = i, a = ""; - for (; i < r3; ) { - let u = n.charCodeAt(i); - if (u === 34) - return a += n.slice(s3, i), m(e3, o.STRING, t12, i + 1, a); - if (u === 92) { - a += n.slice(s3, i); - let l = n.charCodeAt(i + 1) === 117 ? n.charCodeAt(i + 2) === 123 ? Mt3(e3, i) : Yt2(e3, i) : jt3(e3, i); - a += l.value, i += l.size, s3 = i; - continue; - } - if (u === 10 || u === 13) - break; - if (R3(u)) - ++i; - else if (K4(n, i)) - i += 2; - else - throw d3(e3.source, i, `Invalid character within String: ${S3(e3, i)}.`); - } - throw d3(e3.source, i, "Unterminated string."); -} -function Mt3(e3, t12) { - let n = e3.source.body, r3 = 0, i = 3; - for (; i < 12; ) { - let s3 = n.charCodeAt(t12 + i++); - if (s3 === 125) { - if (i < 5 || !R3(r3)) - break; - return { value: String.fromCodePoint(r3), size: i }; - } - if (r3 = r3 << 4 | U4(s3), r3 < 0) - break; - } - throw d3(e3.source, t12, `Invalid Unicode escape sequence: "${n.slice(t12, t12 + i)}".`); -} -function Yt2(e3, t12) { - let n = e3.source.body, r3 = Ge4(n, t12 + 2); - if (R3(r3)) - return { value: String.fromCodePoint(r3), size: 6 }; - if (Je4(r3) && n.charCodeAt(t12 + 6) === 92 && n.charCodeAt(t12 + 7) === 117) { - let i = Ge4(n, t12 + 8); - if (Xe3(i)) - return { value: String.fromCodePoint(r3, i), size: 12 }; - } - throw d3(e3.source, t12, `Invalid Unicode escape sequence: "${n.slice(t12, t12 + 6)}".`); -} -function Ge4(e3, t12) { - return U4(e3.charCodeAt(t12)) << 12 | U4(e3.charCodeAt(t12 + 1)) << 8 | U4(e3.charCodeAt(t12 + 2)) << 4 | U4(e3.charCodeAt(t12 + 3)); -} -function U4(e3) { - return e3 >= 48 && e3 <= 57 ? e3 - 48 : e3 >= 65 && e3 <= 70 ? e3 - 55 : e3 >= 97 && e3 <= 102 ? e3 - 87 : -1; -} -function jt3(e3, t12) { - let n = e3.source.body; - switch (n.charCodeAt(t12 + 1)) { - case 34: - return { value: '"', size: 2 }; - case 92: - return { value: "\\", size: 2 }; - case 47: - return { value: "/", size: 2 }; - case 98: - return { value: "\b", size: 2 }; - case 102: - return { value: "\f", size: 2 }; - case 110: - return { value: ` -`, size: 2 }; - case 114: - return { value: "\r", size: 2 }; - case 116: - return { value: " ", size: 2 }; - } - throw d3(e3.source, t12, `Invalid character escape sequence: "${n.slice(t12, t12 + 2)}".`); -} -function Gt2(e3, t12) { - let n = e3.source.body, r3 = n.length, i = e3.lineStart, s3 = t12 + 3, a = s3, u = "", l = []; - for (; s3 < r3; ) { - let T4 = n.charCodeAt(s3); - if (T4 === 34 && n.charCodeAt(s3 + 1) === 34 && n.charCodeAt(s3 + 2) === 34) { - u += n.slice(a, s3), l.push(u); - let h4 = m(e3, o.BLOCK_STRING, t12, s3 + 3, je6(l).join(` -`)); - return e3.line += l.length - 1, e3.lineStart = i, h4; - } - if (T4 === 92 && n.charCodeAt(s3 + 1) === 34 && n.charCodeAt(s3 + 2) === 34 && n.charCodeAt(s3 + 3) === 34) { - u += n.slice(a, s3), a = s3 + 1, s3 += 4; - continue; - } - if (T4 === 10 || T4 === 13) { - u += n.slice(a, s3), l.push(u), T4 === 13 && n.charCodeAt(s3 + 1) === 10 ? s3 += 2 : ++s3, u = "", a = s3, i = s3; - continue; - } - if (R3(T4)) - ++s3; - else if (K4(n, s3)) - s3 += 2; - else - throw d3(e3.source, s3, `Invalid character within String: ${S3(e3, s3)}.`); - } - throw d3(e3.source, s3, "Unterminated string."); -} -function $t4(e3, t12) { - let n = e3.source.body, r3 = n.length, i = t12 + 1; - for (; i < r3; ) { - let s3 = n.charCodeAt(i); - if (Ye3(s3)) - ++i; - else - break; - } - return m(e3, o.NAME, t12, i, n.slice(t12, i)); -} -function Z4(e3, t12) { - if (!!!e3) - throw new Error(t12); -} -function ee4(e3) { - return te4(e3, []); -} -function te4(e3, t12) { - switch (typeof e3) { - case "string": - return JSON.stringify(e3); - case "function": - return e3.name ? `[function ${e3.name}]` : "[function]"; - case "object": - return Jt3(e3, t12); - default: - return String(e3); - } -} -function Jt3(e3, t12) { - if (e3 === null) - return "null"; - if (t12.includes(e3)) - return "[Circular]"; - let n = [...t12, e3]; - if (Xt3(e3)) { - let r3 = e3.toJSON(); - if (r3 !== e3) - return typeof r3 == "string" ? r3 : te4(r3, n); - } else if (Array.isArray(e3)) - return Qt3(e3, n); - return qt2(e3, n); -} -function Xt3(e3) { - return typeof e3.toJSON == "function"; -} -function qt2(e3, t12) { - let n = Object.entries(e3); - return n.length === 0 ? "{}" : t12.length > 2 ? "[" + Wt3(e3) + "]" : "{ " + n.map(([i, s3]) => i + ": " + te4(s3, t12)).join(", ") + " }"; -} -function Qt3(e3, t12) { - if (e3.length === 0) - return "[]"; - if (t12.length > 2) - return "[Array]"; - let n = Math.min(10, e3.length), r3 = e3.length - n, i = []; - for (let s3 = 0; s3 < n; ++s3) - i.push(te4(e3[s3], t12)); - return r3 === 1 ? i.push("... 1 more item") : r3 > 1 && i.push(`... ${r3} more items`), "[" + i.join(", ") + "]"; -} -function Wt3(e3) { - let t12 = Object.prototype.toString.call(e3).replace(/^\[object /, "").replace(/]$/, ""); - if (t12 === "Object" && typeof e3.constructor == "function") { - let n = e3.constructor.name; - if (typeof n == "string" && n !== "") - return n; - } - return t12; -} -function Qe4(e3) { - return qe4(e3, M5); -} -function We4(e3, t12) { - return new me4(e3, t12).parseDocument(); -} -function ne4(e3) { - let t12 = e3.value; - return He4(e3.kind) + (t12 != null ? ` "${t12}"` : ""); -} -function He4(e3) { - return $e4(e3) ? `"${e3}"` : e3; -} -function Ht2(e3, t12) { - let n = new SyntaxError(e3 + " (" + t12.loc.start.line + ":" + t12.loc.start.column + ")"); - return Object.assign(n, t12); -} -function zt3(e3) { - let t12 = [], { startToken: n, endToken: r3 } = e3.loc; - for (let i = n; i !== r3; i = i.next) - i.kind === "Comment" && t12.push(i); - return t12; -} -function Zt3(e3) { - if ((e3 == null ? void 0 : e3.name) === "GraphQLError") { - let { message: t12, locations: [n] } = e3; - return ze5(t12, { loc: { start: n }, cause: e3 }); - } - return e3; -} -function en3(e3) { - let t12; - try { - t12 = We4(e3, Kt4); - } catch (n) { - throw Zt3(n); - } - return t12.comments = zt3(t12), t12; -} -var tt5, Ne3, Te4, nt4, Y5, re4, se2, oe3, P5, ae2, xe4, b3, ce3, mt4, Et4, k2, p, f, j4, gn3, $4, _e5, ye4, Ie3, Oe5, De5, ge3, ue2, le4, Ae3, F3, Ot5, Se4, q3, V2, Q3, Xn3, C2, gt4, ve4, g, Lt5, Re5, Ee, Rt4, W2, H4, c, o, z5, qe4, M5, me4, ze5, Kt4, tn3, Ke4, Ze5, nn3, et5, rn3, pr3; -var init_graphql = __esm({ - "node_modules/prettier/plugins/graphql.mjs"() { - tt5 = Object.defineProperty; - Ne3 = (e3, t12) => { - for (var n in t12) - tt5(e3, n, { get: t12[n], enumerable: true }); - }; - Te4 = {}; - Ne3(Te4, { languages: () => Ke4, options: () => et5, parsers: () => Ee, printers: () => rn3 }); - nt4 = (e3, t12, n, r3) => { - if (!(e3 && t12 == null)) - return t12.replaceAll ? t12.replaceAll(n, r3) : n.global ? t12.replace(n, r3) : t12.split(n).join(r3); - }; - Y5 = nt4; - re4 = "indent"; - se2 = "group"; - oe3 = "if-break"; - P5 = "line"; - ae2 = "break-parent"; - xe4 = () => { - }; - b3 = xe4; - ce3 = xe4; - mt4 = { type: ae2 }; - Et4 = { type: P5, hard: true }; - k2 = { type: P5 }; - p = { type: P5, soft: true }; - f = [Et4, mt4]; - j4 = Tt3; - gn3 = G4(/\s/); - $4 = G4(" "); - _e5 = G4(",; "); - ye4 = G4(/[^\n\r]/); - Ie3 = Nt5; - Oe5 = xt4; - De5 = _t3; - ge3 = yt4; - ue2 = It4; - le4 = class extends Error { - name = "UnexpectedNodeError"; - constructor(t12, n, r3 = "type") { - super(`Unexpected ${n} node ${r3}: ${JSON.stringify(t12[r3])}.`), this.node = t12; - } - }; - Ae3 = le4; - F3 = null; - Ot5 = 10; - for (let e3 = 0; e3 <= Ot5; e3++) - w2(); - Se4 = Dt4; - q3 = class { - constructor(t12, n, r3) { - this.start = t12.start, this.end = n.end, this.startToken = t12, this.endToken = n, this.source = r3; - } - get [Symbol.toStringTag]() { - return "Location"; - } - toJSON() { - return { start: this.start, end: this.end }; - } - }; - V2 = class { - constructor(t12, n, r3, i, s3, a) { - this.kind = t12, this.start = n, this.end = r3, this.line = i, this.column = s3, this.value = a, this.prev = null, this.next = null; - } - get [Symbol.toStringTag]() { - return "Token"; - } - toJSON() { - return { kind: this.kind, value: this.value, line: this.line, column: this.column }; - } - }; - Q3 = { Name: [], Document: ["definitions"], OperationDefinition: ["name", "variableDefinitions", "directives", "selectionSet"], VariableDefinition: ["variable", "type", "defaultValue", "directives"], Variable: ["name"], SelectionSet: ["selections"], Field: ["alias", "name", "arguments", "directives", "selectionSet"], Argument: ["name", "value"], FragmentSpread: ["name", "directives"], InlineFragment: ["typeCondition", "directives", "selectionSet"], FragmentDefinition: ["name", "variableDefinitions", "typeCondition", "directives", "selectionSet"], IntValue: [], FloatValue: [], StringValue: [], BooleanValue: [], NullValue: [], EnumValue: [], ListValue: ["values"], ObjectValue: ["fields"], ObjectField: ["name", "value"], Directive: ["name", "arguments"], NamedType: ["name"], ListType: ["type"], NonNullType: ["type"], SchemaDefinition: ["description", "directives", "operationTypes"], OperationTypeDefinition: ["type"], ScalarTypeDefinition: ["description", "name", "directives"], ObjectTypeDefinition: ["description", "name", "interfaces", "directives", "fields"], FieldDefinition: ["description", "name", "arguments", "type", "directives"], InputValueDefinition: ["description", "name", "type", "defaultValue", "directives"], InterfaceTypeDefinition: ["description", "name", "interfaces", "directives", "fields"], UnionTypeDefinition: ["description", "name", "directives", "types"], EnumTypeDefinition: ["description", "name", "directives", "values"], EnumValueDefinition: ["description", "name", "directives"], InputObjectTypeDefinition: ["description", "name", "directives", "fields"], DirectiveDefinition: ["description", "name", "arguments", "locations"], SchemaExtension: ["directives", "operationTypes"], ScalarTypeExtension: ["name", "directives"], ObjectTypeExtension: ["name", "interfaces", "directives", "fields"], InterfaceTypeExtension: ["name", "interfaces", "directives", "fields"], UnionTypeExtension: ["name", "directives", "types"], EnumTypeExtension: ["name", "directives", "values"], InputObjectTypeExtension: ["name", "directives", "fields"] }; - Xn3 = new Set(Object.keys(Q3)); - (function(e3) { - e3.QUERY = "query", e3.MUTATION = "mutation", e3.SUBSCRIPTION = "subscription"; - })(C2 || (C2 = {})); - gt4 = Se4(Q3, "kind"); - ve4 = gt4; - g = At4; - Le2.ignoredProperties = /* @__PURE__ */ new Set(["loc", "comments"]); - Lt5 = { print: kt5, massageAstNode: Le2, hasPrettierIgnore: bt3, insertPragma: Ce4, printComment: St4, canAttachComment: Ct4, getVisitorKeys: ve4 }; - Re5 = Lt5; - Ee = {}; - Ne3(Ee, { graphql: () => tn3 }); - Rt4 = /\r\n|[\n\r]/g; - W2 = class e extends Error { - constructor(t12, ...n) { - var r3, i, s3; - let { nodes: a, source: u, positions: l, path: T4, originalError: h4, extensions: D6 } = Pt4(n); - super(t12), this.name = "GraphQLError", this.path = T4 ?? void 0, this.originalError = h4 ?? void 0, this.nodes = Be4(Array.isArray(a) ? a : a ? [a] : void 0); - let I5 = Be4((r3 = this.nodes) === null || r3 === void 0 ? void 0 : r3.map((N6) => N6.loc).filter((N6) => N6 != null)); - this.source = u ?? (I5 == null || (i = I5[0]) === null || i === void 0 ? void 0 : i.source), this.positions = l ?? (I5 == null ? void 0 : I5.map((N6) => N6.start)), this.locations = l && u ? l.map((N6) => B4(u, N6)) : I5 == null ? void 0 : I5.map((N6) => B4(N6.source, N6.start)); - let ie6 = Pe4(h4 == null ? void 0 : h4.extensions) ? h4 == null ? void 0 : h4.extensions : void 0; - this.extensions = (s3 = D6 ?? ie6) !== null && s3 !== void 0 ? s3 : /* @__PURE__ */ Object.create(null), Object.defineProperties(this, { message: { writable: true, enumerable: true }, name: { enumerable: false }, nodes: { enumerable: false }, source: { enumerable: false }, positions: { enumerable: false }, originalError: { enumerable: false } }), h4 != null && h4.stack ? Object.defineProperty(this, "stack", { value: h4.stack, writable: true, configurable: true }) : Error.captureStackTrace ? Error.captureStackTrace(this, e) : Object.defineProperty(this, "stack", { value: Error().stack, writable: true, configurable: true }); - } - get [Symbol.toStringTag]() { - return "GraphQLError"; - } - toString() { - let t12 = this.message; - if (this.nodes) - for (let n of this.nodes) - n.loc && (t12 += ` - -` + Ve5(n.loc)); - else if (this.source && this.locations) - for (let n of this.locations) - t12 += ` - -` + fe3(this.source, n); - return t12; - } - toJSON() { - let t12 = { message: this.message }; - return this.locations != null && (t12.locations = this.locations), this.path != null && (t12.path = this.path), this.extensions != null && Object.keys(this.extensions).length > 0 && (t12.extensions = this.extensions), t12; - } - }; - (function(e3) { - e3.QUERY = "QUERY", e3.MUTATION = "MUTATION", e3.SUBSCRIPTION = "SUBSCRIPTION", e3.FIELD = "FIELD", e3.FRAGMENT_DEFINITION = "FRAGMENT_DEFINITION", e3.FRAGMENT_SPREAD = "FRAGMENT_SPREAD", e3.INLINE_FRAGMENT = "INLINE_FRAGMENT", e3.VARIABLE_DEFINITION = "VARIABLE_DEFINITION", e3.SCHEMA = "SCHEMA", e3.SCALAR = "SCALAR", e3.OBJECT = "OBJECT", e3.FIELD_DEFINITION = "FIELD_DEFINITION", e3.ARGUMENT_DEFINITION = "ARGUMENT_DEFINITION", e3.INTERFACE = "INTERFACE", e3.UNION = "UNION", e3.ENUM = "ENUM", e3.ENUM_VALUE = "ENUM_VALUE", e3.INPUT_OBJECT = "INPUT_OBJECT", e3.INPUT_FIELD_DEFINITION = "INPUT_FIELD_DEFINITION"; - })(H4 || (H4 = {})); - (function(e3) { - e3.NAME = "Name", e3.DOCUMENT = "Document", e3.OPERATION_DEFINITION = "OperationDefinition", e3.VARIABLE_DEFINITION = "VariableDefinition", e3.SELECTION_SET = "SelectionSet", e3.FIELD = "Field", e3.ARGUMENT = "Argument", e3.FRAGMENT_SPREAD = "FragmentSpread", e3.INLINE_FRAGMENT = "InlineFragment", e3.FRAGMENT_DEFINITION = "FragmentDefinition", e3.VARIABLE = "Variable", e3.INT = "IntValue", e3.FLOAT = "FloatValue", e3.STRING = "StringValue", e3.BOOLEAN = "BooleanValue", e3.NULL = "NullValue", e3.ENUM = "EnumValue", e3.LIST = "ListValue", e3.OBJECT = "ObjectValue", e3.OBJECT_FIELD = "ObjectField", e3.DIRECTIVE = "Directive", e3.NAMED_TYPE = "NamedType", e3.LIST_TYPE = "ListType", e3.NON_NULL_TYPE = "NonNullType", e3.SCHEMA_DEFINITION = "SchemaDefinition", e3.OPERATION_TYPE_DEFINITION = "OperationTypeDefinition", e3.SCALAR_TYPE_DEFINITION = "ScalarTypeDefinition", e3.OBJECT_TYPE_DEFINITION = "ObjectTypeDefinition", e3.FIELD_DEFINITION = "FieldDefinition", e3.INPUT_VALUE_DEFINITION = "InputValueDefinition", e3.INTERFACE_TYPE_DEFINITION = "InterfaceTypeDefinition", e3.UNION_TYPE_DEFINITION = "UnionTypeDefinition", e3.ENUM_TYPE_DEFINITION = "EnumTypeDefinition", e3.ENUM_VALUE_DEFINITION = "EnumValueDefinition", e3.INPUT_OBJECT_TYPE_DEFINITION = "InputObjectTypeDefinition", e3.DIRECTIVE_DEFINITION = "DirectiveDefinition", e3.SCHEMA_EXTENSION = "SchemaExtension", e3.SCALAR_TYPE_EXTENSION = "ScalarTypeExtension", e3.OBJECT_TYPE_EXTENSION = "ObjectTypeExtension", e3.INTERFACE_TYPE_EXTENSION = "InterfaceTypeExtension", e3.UNION_TYPE_EXTENSION = "UnionTypeExtension", e3.ENUM_TYPE_EXTENSION = "EnumTypeExtension", e3.INPUT_OBJECT_TYPE_EXTENSION = "InputObjectTypeExtension"; - })(c || (c = {})); - (function(e3) { - e3.SOF = "", e3.EOF = "", e3.BANG = "!", e3.DOLLAR = "$", e3.AMP = "&", e3.PAREN_L = "(", e3.PAREN_R = ")", e3.SPREAD = "...", e3.COLON = ":", e3.EQUALS = "=", e3.AT = "@", e3.BRACKET_L = "[", e3.BRACKET_R = "]", e3.BRACE_L = "{", e3.PIPE = "|", e3.BRACE_R = "}", e3.NAME = "Name", e3.INT = "Int", e3.FLOAT = "Float", e3.STRING = "String", e3.BLOCK_STRING = "BlockString", e3.COMMENT = "Comment"; - })(o || (o = {})); - z5 = class { - constructor(t12) { - let n = new V2(o.SOF, 0, 0, 0, 0); - this.source = t12, this.lastToken = n, this.token = n, this.line = 1, this.lineStart = 0; - } - get [Symbol.toStringTag]() { - return "Lexer"; - } - advance() { - return this.lastToken = this.token, this.token = this.lookahead(); - } - lookahead() { - let t12 = this.token; - if (t12.kind !== o.EOF) - do - if (t12.next) - t12 = t12.next; - else { - let n = wt4(this, t12.end); - t12.next = n, n.prev = t12, t12 = n; - } - while (t12.kind === o.COMMENT); - return t12; - } - }; - qe4 = globalThis.process && globalThis.process.env.NODE_ENV === "production" ? function(t12, n) { - return t12 instanceof n; - } : function(t12, n) { - if (t12 instanceof n) - return true; - if (typeof t12 == "object" && t12 !== null) { - var r3; - let i = n.prototype[Symbol.toStringTag], s3 = Symbol.toStringTag in t12 ? t12[Symbol.toStringTag] : (r3 = t12.constructor) === null || r3 === void 0 ? void 0 : r3.name; - if (i === s3) { - let a = ee4(t12); - throw new Error(`Cannot use ${i} "${a}" from another module or realm. - -Ensure that there is only one instance of "graphql" in the node_modules -directory. If different versions of "graphql" are the dependencies of other -relied on modules, use "resolutions" to ensure only one version is installed. - -https://yarnpkg.com/en/docs/selective-version-resolutions - -Duplicate "graphql" modules cannot be used at the same time since different -versions may have different capabilities and behavior. The data from one -version used in the function from another could produce confusing and -spurious results.`); - } - } - return false; - }; - M5 = class { - constructor(t12, n = "GraphQL request", r3 = { line: 1, column: 1 }) { - typeof t12 == "string" || Z4(false, `Body must be a string. Received: ${ee4(t12)}.`), this.body = t12, this.name = n, this.locationOffset = r3, this.locationOffset.line > 0 || Z4(false, "line in locationOffset is 1-indexed and must be positive."), this.locationOffset.column > 0 || Z4(false, "column in locationOffset is 1-indexed and must be positive."); - } - get [Symbol.toStringTag]() { - return "Source"; - } - }; - me4 = class { - constructor(t12, n = {}) { - let r3 = Qe4(t12) ? t12 : new M5(t12); - this._lexer = new z5(r3), this._options = n, this._tokenCounter = 0; - } - parseName() { - let t12 = this.expectToken(o.NAME); - return this.node(t12, { kind: c.NAME, value: t12.value }); - } - parseDocument() { - return this.node(this._lexer.token, { kind: c.DOCUMENT, definitions: this.many(o.SOF, this.parseDefinition, o.EOF) }); - } - parseDefinition() { - if (this.peek(o.BRACE_L)) - return this.parseOperationDefinition(); - let t12 = this.peekDescription(), n = t12 ? this._lexer.lookahead() : this._lexer.token; - if (n.kind === o.NAME) { - switch (n.value) { - case "schema": - return this.parseSchemaDefinition(); - case "scalar": - return this.parseScalarTypeDefinition(); - case "type": - return this.parseObjectTypeDefinition(); - case "interface": - return this.parseInterfaceTypeDefinition(); - case "union": - return this.parseUnionTypeDefinition(); - case "enum": - return this.parseEnumTypeDefinition(); - case "input": - return this.parseInputObjectTypeDefinition(); - case "directive": - return this.parseDirectiveDefinition(); - } - if (t12) - throw d3(this._lexer.source, this._lexer.token.start, "Unexpected description, descriptions are supported only on type definitions."); - switch (n.value) { - case "query": - case "mutation": - case "subscription": - return this.parseOperationDefinition(); - case "fragment": - return this.parseFragmentDefinition(); - case "extend": - return this.parseTypeSystemExtension(); - } - } - throw this.unexpected(n); - } - parseOperationDefinition() { - let t12 = this._lexer.token; - if (this.peek(o.BRACE_L)) - return this.node(t12, { kind: c.OPERATION_DEFINITION, operation: C2.QUERY, name: void 0, variableDefinitions: [], directives: [], selectionSet: this.parseSelectionSet() }); - let n = this.parseOperationType(), r3; - return this.peek(o.NAME) && (r3 = this.parseName()), this.node(t12, { kind: c.OPERATION_DEFINITION, operation: n, name: r3, variableDefinitions: this.parseVariableDefinitions(), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); - } - parseOperationType() { - let t12 = this.expectToken(o.NAME); - switch (t12.value) { - case "query": - return C2.QUERY; - case "mutation": - return C2.MUTATION; - case "subscription": - return C2.SUBSCRIPTION; - } - throw this.unexpected(t12); - } - parseVariableDefinitions() { - return this.optionalMany(o.PAREN_L, this.parseVariableDefinition, o.PAREN_R); - } - parseVariableDefinition() { - return this.node(this._lexer.token, { kind: c.VARIABLE_DEFINITION, variable: this.parseVariable(), type: (this.expectToken(o.COLON), this.parseTypeReference()), defaultValue: this.expectOptionalToken(o.EQUALS) ? this.parseConstValueLiteral() : void 0, directives: this.parseConstDirectives() }); - } - parseVariable() { - let t12 = this._lexer.token; - return this.expectToken(o.DOLLAR), this.node(t12, { kind: c.VARIABLE, name: this.parseName() }); - } - parseSelectionSet() { - return this.node(this._lexer.token, { kind: c.SELECTION_SET, selections: this.many(o.BRACE_L, this.parseSelection, o.BRACE_R) }); - } - parseSelection() { - return this.peek(o.SPREAD) ? this.parseFragment() : this.parseField(); - } - parseField() { - let t12 = this._lexer.token, n = this.parseName(), r3, i; - return this.expectOptionalToken(o.COLON) ? (r3 = n, i = this.parseName()) : i = n, this.node(t12, { kind: c.FIELD, alias: r3, name: i, arguments: this.parseArguments(false), directives: this.parseDirectives(false), selectionSet: this.peek(o.BRACE_L) ? this.parseSelectionSet() : void 0 }); - } - parseArguments(t12) { - let n = t12 ? this.parseConstArgument : this.parseArgument; - return this.optionalMany(o.PAREN_L, n, o.PAREN_R); - } - parseArgument(t12 = false) { - let n = this._lexer.token, r3 = this.parseName(); - return this.expectToken(o.COLON), this.node(n, { kind: c.ARGUMENT, name: r3, value: this.parseValueLiteral(t12) }); - } - parseConstArgument() { - return this.parseArgument(true); - } - parseFragment() { - let t12 = this._lexer.token; - this.expectToken(o.SPREAD); - let n = this.expectOptionalKeyword("on"); - return !n && this.peek(o.NAME) ? this.node(t12, { kind: c.FRAGMENT_SPREAD, name: this.parseFragmentName(), directives: this.parseDirectives(false) }) : this.node(t12, { kind: c.INLINE_FRAGMENT, typeCondition: n ? this.parseNamedType() : void 0, directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); - } - parseFragmentDefinition() { - let t12 = this._lexer.token; - return this.expectKeyword("fragment"), this._options.allowLegacyFragmentVariables === true ? this.node(t12, { kind: c.FRAGMENT_DEFINITION, name: this.parseFragmentName(), variableDefinitions: this.parseVariableDefinitions(), typeCondition: (this.expectKeyword("on"), this.parseNamedType()), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }) : this.node(t12, { kind: c.FRAGMENT_DEFINITION, name: this.parseFragmentName(), typeCondition: (this.expectKeyword("on"), this.parseNamedType()), directives: this.parseDirectives(false), selectionSet: this.parseSelectionSet() }); - } - parseFragmentName() { - if (this._lexer.token.value === "on") - throw this.unexpected(); - return this.parseName(); - } - parseValueLiteral(t12) { - let n = this._lexer.token; - switch (n.kind) { - case o.BRACKET_L: - return this.parseList(t12); - case o.BRACE_L: - return this.parseObject(t12); - case o.INT: - return this.advanceLexer(), this.node(n, { kind: c.INT, value: n.value }); - case o.FLOAT: - return this.advanceLexer(), this.node(n, { kind: c.FLOAT, value: n.value }); - case o.STRING: - case o.BLOCK_STRING: - return this.parseStringLiteral(); - case o.NAME: - switch (this.advanceLexer(), n.value) { - case "true": - return this.node(n, { kind: c.BOOLEAN, value: true }); - case "false": - return this.node(n, { kind: c.BOOLEAN, value: false }); - case "null": - return this.node(n, { kind: c.NULL }); - default: - return this.node(n, { kind: c.ENUM, value: n.value }); - } - case o.DOLLAR: - if (t12) - if (this.expectToken(o.DOLLAR), this._lexer.token.kind === o.NAME) { - let r3 = this._lexer.token.value; - throw d3(this._lexer.source, n.start, `Unexpected variable "$${r3}" in constant value.`); - } else - throw this.unexpected(n); - return this.parseVariable(); - default: - throw this.unexpected(); - } - } - parseConstValueLiteral() { - return this.parseValueLiteral(true); - } - parseStringLiteral() { - let t12 = this._lexer.token; - return this.advanceLexer(), this.node(t12, { kind: c.STRING, value: t12.value, block: t12.kind === o.BLOCK_STRING }); - } - parseList(t12) { - let n = () => this.parseValueLiteral(t12); - return this.node(this._lexer.token, { kind: c.LIST, values: this.any(o.BRACKET_L, n, o.BRACKET_R) }); - } - parseObject(t12) { - let n = () => this.parseObjectField(t12); - return this.node(this._lexer.token, { kind: c.OBJECT, fields: this.any(o.BRACE_L, n, o.BRACE_R) }); - } - parseObjectField(t12) { - let n = this._lexer.token, r3 = this.parseName(); - return this.expectToken(o.COLON), this.node(n, { kind: c.OBJECT_FIELD, name: r3, value: this.parseValueLiteral(t12) }); - } - parseDirectives(t12) { - let n = []; - for (; this.peek(o.AT); ) - n.push(this.parseDirective(t12)); - return n; - } - parseConstDirectives() { - return this.parseDirectives(true); - } - parseDirective(t12) { - let n = this._lexer.token; - return this.expectToken(o.AT), this.node(n, { kind: c.DIRECTIVE, name: this.parseName(), arguments: this.parseArguments(t12) }); - } - parseTypeReference() { - let t12 = this._lexer.token, n; - if (this.expectOptionalToken(o.BRACKET_L)) { - let r3 = this.parseTypeReference(); - this.expectToken(o.BRACKET_R), n = this.node(t12, { kind: c.LIST_TYPE, type: r3 }); - } else - n = this.parseNamedType(); - return this.expectOptionalToken(o.BANG) ? this.node(t12, { kind: c.NON_NULL_TYPE, type: n }) : n; - } - parseNamedType() { - return this.node(this._lexer.token, { kind: c.NAMED_TYPE, name: this.parseName() }); - } - peekDescription() { - return this.peek(o.STRING) || this.peek(o.BLOCK_STRING); - } - parseDescription() { - if (this.peekDescription()) - return this.parseStringLiteral(); - } - parseSchemaDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("schema"); - let r3 = this.parseConstDirectives(), i = this.many(o.BRACE_L, this.parseOperationTypeDefinition, o.BRACE_R); - return this.node(t12, { kind: c.SCHEMA_DEFINITION, description: n, directives: r3, operationTypes: i }); - } - parseOperationTypeDefinition() { - let t12 = this._lexer.token, n = this.parseOperationType(); - this.expectToken(o.COLON); - let r3 = this.parseNamedType(); - return this.node(t12, { kind: c.OPERATION_TYPE_DEFINITION, operation: n, type: r3 }); - } - parseScalarTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("scalar"); - let r3 = this.parseName(), i = this.parseConstDirectives(); - return this.node(t12, { kind: c.SCALAR_TYPE_DEFINITION, description: n, name: r3, directives: i }); - } - parseObjectTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("type"); - let r3 = this.parseName(), i = this.parseImplementsInterfaces(), s3 = this.parseConstDirectives(), a = this.parseFieldsDefinition(); - return this.node(t12, { kind: c.OBJECT_TYPE_DEFINITION, description: n, name: r3, interfaces: i, directives: s3, fields: a }); - } - parseImplementsInterfaces() { - return this.expectOptionalKeyword("implements") ? this.delimitedMany(o.AMP, this.parseNamedType) : []; - } - parseFieldsDefinition() { - return this.optionalMany(o.BRACE_L, this.parseFieldDefinition, o.BRACE_R); - } - parseFieldDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(), r3 = this.parseName(), i = this.parseArgumentDefs(); - this.expectToken(o.COLON); - let s3 = this.parseTypeReference(), a = this.parseConstDirectives(); - return this.node(t12, { kind: c.FIELD_DEFINITION, description: n, name: r3, arguments: i, type: s3, directives: a }); - } - parseArgumentDefs() { - return this.optionalMany(o.PAREN_L, this.parseInputValueDef, o.PAREN_R); - } - parseInputValueDef() { - let t12 = this._lexer.token, n = this.parseDescription(), r3 = this.parseName(); - this.expectToken(o.COLON); - let i = this.parseTypeReference(), s3; - this.expectOptionalToken(o.EQUALS) && (s3 = this.parseConstValueLiteral()); - let a = this.parseConstDirectives(); - return this.node(t12, { kind: c.INPUT_VALUE_DEFINITION, description: n, name: r3, type: i, defaultValue: s3, directives: a }); - } - parseInterfaceTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("interface"); - let r3 = this.parseName(), i = this.parseImplementsInterfaces(), s3 = this.parseConstDirectives(), a = this.parseFieldsDefinition(); - return this.node(t12, { kind: c.INTERFACE_TYPE_DEFINITION, description: n, name: r3, interfaces: i, directives: s3, fields: a }); - } - parseUnionTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("union"); - let r3 = this.parseName(), i = this.parseConstDirectives(), s3 = this.parseUnionMemberTypes(); - return this.node(t12, { kind: c.UNION_TYPE_DEFINITION, description: n, name: r3, directives: i, types: s3 }); - } - parseUnionMemberTypes() { - return this.expectOptionalToken(o.EQUALS) ? this.delimitedMany(o.PIPE, this.parseNamedType) : []; - } - parseEnumTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("enum"); - let r3 = this.parseName(), i = this.parseConstDirectives(), s3 = this.parseEnumValuesDefinition(); - return this.node(t12, { kind: c.ENUM_TYPE_DEFINITION, description: n, name: r3, directives: i, values: s3 }); - } - parseEnumValuesDefinition() { - return this.optionalMany(o.BRACE_L, this.parseEnumValueDefinition, o.BRACE_R); - } - parseEnumValueDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(), r3 = this.parseEnumValueName(), i = this.parseConstDirectives(); - return this.node(t12, { kind: c.ENUM_VALUE_DEFINITION, description: n, name: r3, directives: i }); - } - parseEnumValueName() { - if (this._lexer.token.value === "true" || this._lexer.token.value === "false" || this._lexer.token.value === "null") - throw d3(this._lexer.source, this._lexer.token.start, `${ne4(this._lexer.token)} is reserved and cannot be used for an enum value.`); - return this.parseName(); - } - parseInputObjectTypeDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("input"); - let r3 = this.parseName(), i = this.parseConstDirectives(), s3 = this.parseInputFieldsDefinition(); - return this.node(t12, { kind: c.INPUT_OBJECT_TYPE_DEFINITION, description: n, name: r3, directives: i, fields: s3 }); - } - parseInputFieldsDefinition() { - return this.optionalMany(o.BRACE_L, this.parseInputValueDef, o.BRACE_R); - } - parseTypeSystemExtension() { - let t12 = this._lexer.lookahead(); - if (t12.kind === o.NAME) - switch (t12.value) { - case "schema": - return this.parseSchemaExtension(); - case "scalar": - return this.parseScalarTypeExtension(); - case "type": - return this.parseObjectTypeExtension(); - case "interface": - return this.parseInterfaceTypeExtension(); - case "union": - return this.parseUnionTypeExtension(); - case "enum": - return this.parseEnumTypeExtension(); - case "input": - return this.parseInputObjectTypeExtension(); - } - throw this.unexpected(t12); - } - parseSchemaExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("schema"); - let n = this.parseConstDirectives(), r3 = this.optionalMany(o.BRACE_L, this.parseOperationTypeDefinition, o.BRACE_R); - if (n.length === 0 && r3.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.SCHEMA_EXTENSION, directives: n, operationTypes: r3 }); - } - parseScalarTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("scalar"); - let n = this.parseName(), r3 = this.parseConstDirectives(); - if (r3.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.SCALAR_TYPE_EXTENSION, name: n, directives: r3 }); - } - parseObjectTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("type"); - let n = this.parseName(), r3 = this.parseImplementsInterfaces(), i = this.parseConstDirectives(), s3 = this.parseFieldsDefinition(); - if (r3.length === 0 && i.length === 0 && s3.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.OBJECT_TYPE_EXTENSION, name: n, interfaces: r3, directives: i, fields: s3 }); - } - parseInterfaceTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("interface"); - let n = this.parseName(), r3 = this.parseImplementsInterfaces(), i = this.parseConstDirectives(), s3 = this.parseFieldsDefinition(); - if (r3.length === 0 && i.length === 0 && s3.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.INTERFACE_TYPE_EXTENSION, name: n, interfaces: r3, directives: i, fields: s3 }); - } - parseUnionTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("union"); - let n = this.parseName(), r3 = this.parseConstDirectives(), i = this.parseUnionMemberTypes(); - if (r3.length === 0 && i.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.UNION_TYPE_EXTENSION, name: n, directives: r3, types: i }); - } - parseEnumTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("enum"); - let n = this.parseName(), r3 = this.parseConstDirectives(), i = this.parseEnumValuesDefinition(); - if (r3.length === 0 && i.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.ENUM_TYPE_EXTENSION, name: n, directives: r3, values: i }); - } - parseInputObjectTypeExtension() { - let t12 = this._lexer.token; - this.expectKeyword("extend"), this.expectKeyword("input"); - let n = this.parseName(), r3 = this.parseConstDirectives(), i = this.parseInputFieldsDefinition(); - if (r3.length === 0 && i.length === 0) - throw this.unexpected(); - return this.node(t12, { kind: c.INPUT_OBJECT_TYPE_EXTENSION, name: n, directives: r3, fields: i }); - } - parseDirectiveDefinition() { - let t12 = this._lexer.token, n = this.parseDescription(); - this.expectKeyword("directive"), this.expectToken(o.AT); - let r3 = this.parseName(), i = this.parseArgumentDefs(), s3 = this.expectOptionalKeyword("repeatable"); - this.expectKeyword("on"); - let a = this.parseDirectiveLocations(); - return this.node(t12, { kind: c.DIRECTIVE_DEFINITION, description: n, name: r3, arguments: i, repeatable: s3, locations: a }); - } - parseDirectiveLocations() { - return this.delimitedMany(o.PIPE, this.parseDirectiveLocation); - } - parseDirectiveLocation() { - let t12 = this._lexer.token, n = this.parseName(); - if (Object.prototype.hasOwnProperty.call(H4, n.value)) - return n; - throw this.unexpected(t12); - } - node(t12, n) { - return this._options.noLocation !== true && (n.loc = new q3(t12, this._lexer.lastToken, this._lexer.source)), n; - } - peek(t12) { - return this._lexer.token.kind === t12; - } - expectToken(t12) { - let n = this._lexer.token; - if (n.kind === t12) - return this.advanceLexer(), n; - throw d3(this._lexer.source, n.start, `Expected ${He4(t12)}, found ${ne4(n)}.`); - } - expectOptionalToken(t12) { - return this._lexer.token.kind === t12 ? (this.advanceLexer(), true) : false; - } - expectKeyword(t12) { - let n = this._lexer.token; - if (n.kind === o.NAME && n.value === t12) - this.advanceLexer(); - else - throw d3(this._lexer.source, n.start, `Expected "${t12}", found ${ne4(n)}.`); - } - expectOptionalKeyword(t12) { - let n = this._lexer.token; - return n.kind === o.NAME && n.value === t12 ? (this.advanceLexer(), true) : false; - } - unexpected(t12) { - let n = t12 ?? this._lexer.token; - return d3(this._lexer.source, n.start, `Unexpected ${ne4(n)}.`); - } - any(t12, n, r3) { - this.expectToken(t12); - let i = []; - for (; !this.expectOptionalToken(r3); ) - i.push(n.call(this)); - return i; - } - optionalMany(t12, n, r3) { - if (this.expectOptionalToken(t12)) { - let i = []; - do - i.push(n.call(this)); - while (!this.expectOptionalToken(r3)); - return i; - } - return []; - } - many(t12, n, r3) { - this.expectToken(t12); - let i = []; - do - i.push(n.call(this)); - while (!this.expectOptionalToken(r3)); - return i; - } - delimitedMany(t12, n) { - this.expectOptionalToken(t12); - let r3 = []; - do - r3.push(n.call(this)); - while (this.expectOptionalToken(t12)); - return r3; - } - advanceLexer() { - let { maxTokens: t12 } = this._options, n = this._lexer.advance(); - if (t12 !== void 0 && n.kind !== o.EOF && (++this._tokenCounter, this._tokenCounter > t12)) - throw d3(this._lexer.source, n.start, `Document contains more that ${t12} tokens. Parsing aborted.`); - } - }; - ze5 = Ht2; - Kt4 = { allowLegacyFragmentVariables: true }; - tn3 = { parse: en3, astFormat: "graphql", hasPragma: ke5, locStart: J3, locEnd: X3 }; - Ke4 = [{ linguistLanguageId: 139, name: "GraphQL", type: "data", color: "#e10098", extensions: [".graphql", ".gql", ".graphqls"], tmScope: "source.graphql", aceMode: "text", parsers: ["graphql"], vscodeLanguageIds: ["graphql"] }]; - Ze5 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } }; - nn3 = { bracketSpacing: Ze5.bracketSpacing }; - et5 = nn3; - rn3 = { graphql: Re5 }; - pr3 = Te4; - } -}); - -// node_modules/prettier/plugins/html.mjs -var html_exports = {}; -__export(html_exports, { - default: () => qp2, - languages: () => Fs5, - options: () => Ns4, - parsers: () => Nr5, - printers: () => ou2 -}); -function Ms4(t12) { - if (typeof t12 == "string") - return _e6; - if (Array.isArray(t12)) - return De6; - if (!t12) - return; - let { type: e3 } = t12; - if (ot5.has(e3)) - return e3; -} -function qs4(t12) { - let e3 = t12 === null ? "null" : typeof t12; - if (e3 !== "string" && e3 !== "object") - return `Unexpected doc '${e3}', -Expected it to be 'string' or 'object'.`; - if (xe5(t12)) - throw new Error("doc is valid."); - let r3 = Object.prototype.toString.call(t12); - if (r3 !== "[object Object]") - return `Unexpected doc '${r3}'.`; - let n = Os5([...ot5].map((s3) => `'${s3}'`)); - return `Unexpected doc.type '${t12.type}'. -Expected it to be ${n}.`; -} -function U5(t12) { - return X4(t12), { type: se3, contents: t12 }; -} -function Gr4(t12, e3) { - return X4(e3), { type: ie3, contents: e3, n: t12 }; -} -function D3(t12, e3 = {}) { - return X4(t12), ct4(e3.expandedStates, true), { type: Q4, id: e3.id, contents: t12, break: !!e3.shouldBreak, expandedStates: e3.expandedStates }; -} -function Yr4(t12) { - return Gr4(Number.NEGATIVE_INFINITY, t12); -} -function zr4(t12) { - return Gr4({ type: "root" }, t12); -} -function pt3(t12) { - return ct4(t12), { type: ae3, parts: t12 }; -} -function ce4(t12, e3 = "", r3 = {}) { - return X4(t12), e3 !== "" && X4(e3), { type: ue3, breakContents: t12, flatContents: e3, groupId: r3.groupId }; -} -function jr3(t12, e3) { - return X4(t12), { type: oe4, contents: t12, groupId: e3.groupId, negate: e3.negate }; -} -function Z5(t12, e3) { - X4(t12), ct4(e3); - let r3 = []; - for (let n = 0; n < e3.length; n++) - n !== 0 && r3.push(t12), r3.push(e3[n]); - return r3; -} -function ht2(t12, e3) { - if (typeof t12 == "string") - return e3(t12); - let r3 = /* @__PURE__ */ new Map(); - return n(t12); - function n(i) { - if (r3.has(i)) - return r3.get(i); - let a = s3(i); - return r3.set(i, a), a; - } - function s3(i) { - switch (xe5(i)) { - case De6: - return e3(i.map(n)); - case ae3: - return e3({ ...i, parts: i.parts.map(n) }); - case ue3: - return e3({ ...i, breakContents: n(i.breakContents), flatContents: n(i.flatContents) }); - case Q4: { - let { expandedStates: a, contents: u } = i; - return a ? (a = a.map(n), u = a[0]) : u = n(u), e3({ ...i, contents: u, expandedStates: a }); - } - case ie3: - case se3: - case oe4: - case Te5: - case be7: - return e3({ ...i, contents: n(i.contents) }); - case _e6: - case ve5: - case ye5: - case we6: - case V3: - case le5: - return e3(i); - default: - throw new lt3(i); - } - } -} -function Ws4(t12) { - switch (xe5(t12)) { - case ae3: - if (t12.parts.every((e3) => e3 === "")) - return ""; - break; - case Q4: - if (!t12.contents && !t12.id && !t12.break && !t12.expandedStates) - return ""; - if (t12.contents.type === Q4 && t12.contents.id === t12.id && t12.contents.break === t12.break && t12.contents.expandedStates === t12.expandedStates) - return t12.contents; - break; - case ie3: - case se3: - case oe4: - case be7: - if (!t12.contents) - return ""; - break; - case ue3: - if (!t12.flatContents && !t12.breakContents) - return ""; - break; - case De6: { - let e3 = []; - for (let r3 of t12) { - if (!r3) - continue; - let [n, ...s3] = Array.isArray(r3) ? r3 : [r3]; - typeof n == "string" && typeof ke6(false, e3, -1) == "string" ? e3[e3.length - 1] += n : e3.push(n), e3.push(...s3); - } - return e3.length === 0 ? "" : e3.length === 1 ? e3[0] : e3; - } - case _e6: - case ve5: - case ye5: - case we6: - case V3: - case Te5: - case le5: - break; - default: - throw new lt3(t12); - } - return t12; -} -function Qr4(t12) { - return ht2(t12, (e3) => Ws4(e3)); -} -function w3(t12, e3 = Kr4) { - return ht2(t12, (r3) => typeof r3 == "string" ? Z5(e3, r3.split(` -`)) : r3); -} -function Gs4(t12, e3) { - let r3 = e3 === true || e3 === ft4 ? ft4 : Jr4, n = r3 === ft4 ? Jr4 : ft4, s3 = 0, i = 0; - for (let a of t12) - a === r3 ? s3++ : a === n && i++; - return s3 > i ? n : r3; -} -function Ys4(t12) { - return (t12 == null ? void 0 : t12.type) === "front-matter"; -} -function en4(t12, e3) { - if (t12.type === "text" || t12.type === "comment" || Be5(t12) || t12.type === "yaml" || t12.type === "toml") - return null; - t12.type === "attribute" && delete e3.value, t12.type === "docType" && delete e3.value; -} -function rn4(t12, e3) { - if (!e3) - return; - let r3 = js5(e3).toLowerCase(); - return t12.find((n) => { - var s3, i; - return ((s3 = n.extensions) == null ? void 0 : s3.some((a) => r3.endsWith(a))) || ((i = n.filenames) == null ? void 0 : i.some((a) => a.toLowerCase() === r3)); - }); -} -function Ks4(t12, e3) { - if (e3) - return t12.find(({ name: r3 }) => r3.toLowerCase() === e3) ?? t12.find(({ aliases: r3 }) => r3 == null ? void 0 : r3.includes(e3)) ?? t12.find(({ extensions: r3 }) => r3 == null ? void 0 : r3.includes(`.${e3}`)); -} -function Qs4(t12, e3) { - let r3 = t12.plugins.flatMap((s3) => s3.languages ?? []), n = Ks4(r3, e3.language) ?? rn4(r3, e3.physicalFile) ?? rn4(r3, e3.file) ?? (e3.physicalFile, void 0); - return n == null ? void 0 : n.parsers[0]; -} -function Zt4(t12) { - if (typeof t12 != "string") - throw new TypeError("Expected a string"); - return t12.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); -} -function Zs3(t12) { - return t12.type === "element" && !t12.hasExplicitNamespace && !["html", "svg"].includes(t12.namespace); -} -function mt5(t12, e3) { - return !!(t12.type === "ieConditionalComment" && t12.lastChild && !t12.lastChild.isSelfClosing && !t12.lastChild.endSourceSpan || t12.type === "ieConditionalComment" && !t12.complete || he6(t12) && t12.children.some((r3) => r3.type !== "text" && r3.type !== "interpolation") || Ct5(t12, e3) && !M6(t12) && t12.type !== "interpolation"); -} -function He5(t12) { - return t12.type === "attribute" || !t12.parent || !t12.prev ? false : ti4(t12.prev); -} -function ti4(t12) { - return t12.type === "comment" && t12.value.trim() === "prettier-ignore"; -} -function P6(t12) { - return t12.type === "text" || t12.type === "comment"; -} -function M6(t12) { - return t12.type === "element" && (t12.fullName === "script" || t12.fullName === "style" || t12.fullName === "svg:style" || t12.fullName === "svg:script" || pe5(t12) && (t12.name === "script" || t12.name === "style")); -} -function cn3(t12) { - return t12.children && !M6(t12); -} -function pn3(t12) { - return M6(t12) || t12.type === "interpolation" || rr3(t12); -} -function rr3(t12) { - return Dn3(t12).startsWith("pre"); -} -function hn3(t12, e3) { - var s3, i; - let r3 = n(); - if (r3 && !t12.prev && ((i = (s3 = t12.parent) == null ? void 0 : s3.tagDefinition) != null && i.ignoreFirstLf)) - return t12.type === "interpolation"; - return r3; - function n() { - return Be5(t12) ? false : (t12.type === "text" || t12.type === "interpolation") && t12.prev && (t12.prev.type === "text" || t12.prev.type === "interpolation") ? true : !t12.parent || t12.parent.cssDisplay === "none" ? false : he6(t12.parent) ? true : !(!t12.prev && (t12.parent.type === "root" || he6(t12) && t12.parent || M6(t12.parent) || We5(t12.parent, e3) || !ui4(t12.parent.cssDisplay)) || t12.prev && !ci3(t12.prev.cssDisplay)); - } -} -function fn3(t12, e3) { - return Be5(t12) ? false : (t12.type === "text" || t12.type === "interpolation") && t12.next && (t12.next.type === "text" || t12.next.type === "interpolation") ? true : !t12.parent || t12.parent.cssDisplay === "none" ? false : he6(t12.parent) ? true : !(!t12.next && (t12.parent.type === "root" || he6(t12) && t12.parent || M6(t12.parent) || We5(t12.parent, e3) || !oi4(t12.parent.cssDisplay)) || t12.next && !li3(t12.next.cssDisplay)); -} -function mn3(t12) { - return pi4(t12.cssDisplay) && !M6(t12); -} -function Ve6(t12) { - return Be5(t12) || t12.next && t12.sourceSpan.end && t12.sourceSpan.end.line + 1 < t12.next.sourceSpan.start.line; -} -function dn2(t12) { - return nr3(t12) || t12.type === "element" && t12.children.length > 0 && (["body", "script", "style"].includes(t12.name) || t12.children.some((e3) => ni4(e3))) || t12.firstChild && t12.firstChild === t12.lastChild && t12.firstChild.type !== "text" && Cn2(t12.firstChild) && (!t12.lastChild.isTrailingSpaceSensitive || Sn3(t12.lastChild)); -} -function nr3(t12) { - return t12.type === "element" && t12.children.length > 0 && (["html", "head", "ul", "ol", "select"].includes(t12.name) || t12.cssDisplay.startsWith("table") && t12.cssDisplay !== "table-cell"); -} -function dt4(t12) { - return En3(t12) || t12.prev && ri4(t12.prev) || gn4(t12); -} -function ri4(t12) { - return En3(t12) || t12.type === "element" && t12.fullName === "br" || gn4(t12); -} -function gn4(t12) { - return Cn2(t12) && Sn3(t12); -} -function Cn2(t12) { - return t12.hasLeadingSpaces && (t12.prev ? t12.prev.sourceSpan.end.line < t12.sourceSpan.start.line : t12.parent.type === "root" || t12.parent.startSourceSpan.end.line < t12.sourceSpan.start.line); -} -function Sn3(t12) { - return t12.hasTrailingSpaces && (t12.next ? t12.next.sourceSpan.start.line > t12.sourceSpan.end.line : t12.parent.type === "root" || t12.parent.endSourceSpan && t12.parent.endSourceSpan.start.line > t12.sourceSpan.end.line); -} -function En3(t12) { - switch (t12.type) { - case "ieConditionalComment": - case "comment": - case "directive": - return true; - case "element": - return ["script", "select"].includes(t12.name); - } - return false; -} -function gt5(t12) { - return t12.lastChild ? gt5(t12.lastChild) : t12; -} -function ni4(t12) { - var e3; - return (e3 = t12.children) == null ? void 0 : e3.some((r3) => r3.type !== "text"); -} -function An2(t12) { - if (t12) - switch (t12) { - case "module": - case "text/javascript": - case "text/babel": - case "application/javascript": - return "babel"; - case "application/x-typescript": - return "typescript"; - case "text/markdown": - return "markdown"; - case "text/html": - return "html"; - case "text/x-handlebars-template": - return "glimmer"; - default: - if (t12.endsWith("json") || t12.endsWith("importmap") || t12 === "speculationrules") - return "json"; - } -} -function si5(t12, e3) { - let { name: r3, attrMap: n } = t12; - if (r3 !== "script" || Object.prototype.hasOwnProperty.call(n, "src")) - return; - let { type: s3, lang: i } = t12.attrMap; - return !i && !s3 ? "babel" : Le3(e3, { language: i }) ?? An2(s3); -} -function ii5(t12, e3) { - if (!Ct5(t12, e3)) - return; - let { attrMap: r3 } = t12; - if (Object.prototype.hasOwnProperty.call(r3, "src")) - return; - let { type: n, lang: s3 } = r3; - return Le3(e3, { language: s3 }) ?? An2(n); -} -function ai4(t12, e3) { - if (t12.name !== "style") - return; - let { lang: r3 } = t12.attrMap; - return r3 ? Le3(e3, { language: r3 }) : "css"; -} -function sr4(t12, e3) { - return si5(t12, e3) ?? ai4(t12, e3) ?? ii5(t12, e3); -} -function Ue5(t12) { - return t12 === "block" || t12 === "list-item" || t12.startsWith("table"); -} -function ui4(t12) { - return !Ue5(t12) && t12 !== "inline-block"; -} -function oi4(t12) { - return !Ue5(t12) && t12 !== "inline-block"; -} -function li3(t12) { - return !Ue5(t12); -} -function ci3(t12) { - return !Ue5(t12); -} -function pi4(t12) { - return !Ue5(t12) && t12 !== "inline-block"; -} -function he6(t12) { - return Dn3(t12).startsWith("pre"); -} -function hi4(t12, e3) { - let r3 = t12; - for (; r3; ) { - if (e3(r3)) - return true; - r3 = r3.parent; - } - return false; -} -function _n3(t12, e3) { - var n; - if (fe4(t12, e3)) - return "block"; - if (((n = t12.prev) == null ? void 0 : n.type) === "comment") { - let s3 = t12.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/); - if (s3) - return s3[1]; - } - let r3 = false; - if (t12.type === "element" && t12.namespace === "svg") - if (hi4(t12, (s3) => s3.fullName === "svg:foreignObject")) - r3 = true; - else - return t12.name === "svg" ? "inline-block" : "block"; - switch (e3.htmlWhitespaceSensitivity) { - case "strict": - return "inline"; - case "ignore": - return "block"; - default: - return t12.type === "element" && (!t12.namespace || r3 || pe5(t12)) && sn3[t12.name] || nn4; - } -} -function Dn3(t12) { - return t12.type === "element" && (!t12.namespace || pe5(t12)) && un3[t12.name] || an3; -} -function fi4(t12) { - let e3 = Number.POSITIVE_INFINITY; - for (let r3 of t12.split(` -`)) { - if (r3.length === 0) - continue; - let n = z6.getLeadingWhitespaceCount(r3); - if (n === 0) - return 0; - r3.length !== n && n < e3 && (e3 = n); - } - return e3 === Number.POSITIVE_INFINITY ? 0 : e3; -} -function ir4(t12, e3 = fi4(t12)) { - return e3 === 0 ? t12 : t12.split(` -`).map((r3) => r3.slice(e3)).join(` -`); -} -function ar2(t12) { - return v(false, v(false, t12, "'", "'"), """, '"'); -} -function k3(t12) { - return ar2(t12.value); -} -function We5(t12, e3) { - return fe4(t12, e3) && !mi3.has(t12.fullName); -} -function fe4(t12, e3) { - return e3.parser === "vue" && t12.type === "element" && t12.parent.type === "root" && t12.fullName.toLowerCase() !== "html"; -} -function Ct5(t12, e3) { - return fe4(t12, e3) && (We5(t12, e3) || t12.attrMap.lang && t12.attrMap.lang !== "html"); -} -function vn3(t12) { - let e3 = t12.fullName; - return e3.charAt(0) === "#" || e3 === "slot-scope" || e3 === "v-slot" || e3.startsWith("v-slot:"); -} -function yn3(t12, e3) { - let r3 = t12.parent; - if (!fe4(r3, e3)) - return false; - let n = r3.fullName, s3 = t12.fullName; - return n === "script" && s3 === "setup" || n === "style" && s3 === "vars"; -} -function St5(t12, e3 = t12.value) { - return t12.parent.isWhitespaceSensitive ? t12.parent.isIndentationSensitive ? w3(e3) : w3(ir4(tr4(e3)), S4) : Z5(_3, z6.split(e3)); -} -function Et5(t12, e3) { - return fe4(t12, e3) && t12.name === "script"; -} -function ur4(t12) { - return t12 >= 9 && t12 <= 32 || t12 == 160; -} -function di3(t12) { - return 48 <= t12 && t12 <= 57; -} -function or3(t12) { - return t12 >= 97 && t12 <= 122 || t12 >= 65 && t12 <= 90; -} -function bn3(t12) { - return t12 >= 97 && t12 <= 102 || t12 >= 65 && t12 <= 70 || di3(t12); -} -function lr4(t12) { - return t12 === 10 || t12 === 13; -} -function cr3(t12) { - return 48 <= t12 && t12 <= 55; -} -function wn3(t12) { - return t12 === 39 || t12 === 34 || t12 === 96; -} -function xn3(t12) { - return t12.replace(gi3, (...e3) => e3[1].toUpperCase()); -} -function Si3(t12, e3) { - for (let r3 of Ci3) - r3(t12, e3); - return t12; -} -function Ei3(t12) { - t12.walk((e3) => { - if (e3.type === "element" && e3.tagDefinition.ignoreFirstLf && e3.children.length > 0 && e3.children[0].type === "text" && e3.children[0].value[0] === ` -`) { - let r3 = e3.children[0]; - r3.value.length === 1 ? e3.removeChild(r3) : r3.value = r3.value.slice(1); - } - }); -} -function Ai3(t12) { - let e3 = (r3) => { - var n, s3; - return r3.type === "element" && ((n = r3.prev) == null ? void 0 : n.type) === "ieConditionalStartComment" && r3.prev.sourceSpan.end.offset === r3.startSourceSpan.start.offset && ((s3 = r3.firstChild) == null ? void 0 : s3.type) === "ieConditionalEndComment" && r3.firstChild.sourceSpan.start.offset === r3.startSourceSpan.end.offset; - }; - t12.walk((r3) => { - if (r3.children) - for (let n = 0; n < r3.children.length; n++) { - let s3 = r3.children[n]; - if (!e3(s3)) - continue; - let i = s3.prev, a = s3.firstChild; - r3.removeChild(i), n--; - let u = new m2(i.sourceSpan.start, a.sourceSpan.end), o2 = new m2(u.start, s3.sourceSpan.end); - s3.condition = i.condition, s3.sourceSpan = o2, s3.startSourceSpan = u, s3.removeChild(a); - } - }); -} -function _i3(t12, e3, r3) { - t12.walk((n) => { - if (n.children) - for (let s3 = 0; s3 < n.children.length; s3++) { - let i = n.children[s3]; - if (i.type !== "text" && !e3(i)) - continue; - i.type !== "text" && (i.type = "text", i.value = r3(i)); - let a = i.prev; - !a || a.type !== "text" || (a.value += i.value, a.sourceSpan = new m2(a.sourceSpan.start, i.sourceSpan.end), n.removeChild(i), s3--); - } - }); -} -function Di3(t12) { - return _i3(t12, (e3) => e3.type === "cdata", (e3) => ``); -} -function vi4(t12) { - let e3 = (r3) => { - var n, s3; - return r3.type === "element" && r3.attrs.length === 0 && r3.children.length === 1 && r3.firstChild.type === "text" && !z6.hasWhitespaceCharacter(r3.children[0].value) && !r3.firstChild.hasLeadingSpaces && !r3.firstChild.hasTrailingSpaces && r3.isLeadingSpaceSensitive && !r3.hasLeadingSpaces && r3.isTrailingSpaceSensitive && !r3.hasTrailingSpaces && ((n = r3.prev) == null ? void 0 : n.type) === "text" && ((s3 = r3.next) == null ? void 0 : s3.type) === "text"; - }; - t12.walk((r3) => { - if (r3.children) - for (let n = 0; n < r3.children.length; n++) { - let s3 = r3.children[n]; - if (!e3(s3)) - continue; - let i = s3.prev, a = s3.next; - i.value += `<${s3.rawName}>` + s3.firstChild.value + `` + a.value, i.sourceSpan = new m2(i.sourceSpan.start, a.sourceSpan.end), i.isTrailingSpaceSensitive = a.isTrailingSpaceSensitive, i.hasTrailingSpaces = a.hasTrailingSpaces, r3.removeChild(s3), n--, r3.removeChild(a); - } - }); -} -function yi3(t12, e3) { - if (e3.parser === "html") - return; - let r3 = /{{(.+?)}}/s; - t12.walk((n) => { - if (cn3(n)) - for (let s3 of n.children) { - if (s3.type !== "text") - continue; - let i = s3.sourceSpan.start, a = null, u = s3.value.split(r3); - for (let o2 = 0; o2 < u.length; o2++, i = a) { - let p4 = u[o2]; - if (o2 % 2 === 0) { - a = i.moveBy(p4.length), p4.length > 0 && n.insertChildBefore(s3, { type: "text", value: p4, sourceSpan: new m2(i, a) }); - continue; - } - a = i.moveBy(p4.length + 4), n.insertChildBefore(s3, { type: "interpolation", sourceSpan: new m2(i, a), children: p4.length === 0 ? [] : [{ type: "text", value: p4, sourceSpan: new m2(i.moveBy(2), a.moveBy(-2)) }] }); - } - n.removeChild(s3); - } - }); -} -function bi4(t12) { - t12.walk((e3) => { - if (!e3.children) - return; - if (e3.children.length === 0 || e3.children.length === 1 && e3.children[0].type === "text" && z6.trim(e3.children[0].value).length === 0) { - e3.hasDanglingSpaces = e3.children.length > 0, e3.children = []; - return; - } - let r3 = pn3(e3), n = rr3(e3); - if (!r3) - for (let s3 = 0; s3 < e3.children.length; s3++) { - let i = e3.children[s3]; - if (i.type !== "text") - continue; - let { leadingWhitespace: a, text: u, trailingWhitespace: o2 } = ln3(i.value), p4 = i.prev, l = i.next; - u ? (i.value = u, i.sourceSpan = new m2(i.sourceSpan.start.moveBy(a.length), i.sourceSpan.end.moveBy(-o2.length)), a && (p4 && (p4.hasTrailingSpaces = true), i.hasLeadingSpaces = true), o2 && (i.hasTrailingSpaces = true, l && (l.hasLeadingSpaces = true))) : (e3.removeChild(i), s3--, (a || o2) && (p4 && (p4.hasTrailingSpaces = true), l && (l.hasLeadingSpaces = true))); - } - e3.isWhitespaceSensitive = r3, e3.isIndentationSensitive = n; - }); -} -function wi3(t12) { - t12.walk((e3) => { - e3.isSelfClosing = !e3.children || e3.type === "element" && (e3.tagDefinition.isVoid || e3.endSourceSpan && e3.startSourceSpan.start === e3.endSourceSpan.start && e3.startSourceSpan.end === e3.endSourceSpan.end); - }); -} -function Ti3(t12, e3) { - t12.walk((r3) => { - r3.type === "element" && (r3.hasHtmComponentClosingTag = r3.endSourceSpan && /^<\s*\/\s*\/\s*>$/.test(e3.originalText.slice(r3.endSourceSpan.start.offset, r3.endSourceSpan.end.offset))); - }); -} -function xi4(t12, e3) { - t12.walk((r3) => { - r3.cssDisplay = _n3(r3, e3); - }); -} -function ki3(t12, e3) { - t12.walk((r3) => { - let { children: n } = r3; - if (n) { - if (n.length === 0) { - r3.isDanglingSpaceSensitive = mn3(r3); - return; - } - for (let s3 of n) - s3.isLeadingSpaceSensitive = hn3(s3, e3), s3.isTrailingSpaceSensitive = fn3(s3, e3); - for (let s3 = 0; s3 < n.length; s3++) { - let i = n[s3]; - i.isLeadingSpaceSensitive = (s3 === 0 || i.prev.isTrailingSpaceSensitive) && i.isLeadingSpaceSensitive, i.isTrailingSpaceSensitive = (s3 === n.length - 1 || i.next.isLeadingSpaceSensitive) && i.isTrailingSpaceSensitive; - } - } - }); -} -function Bn3(t12) { - return /^\s*/.test(t12); -} -function Ln3(t12) { - return ` - -` + t12; -} -function te5(t12) { - return t12.sourceSpan.start.offset; -} -function re5(t12) { - return t12.sourceSpan.end.offset; -} -async function Bi3(t12, e3) { - if (t12.lang === "yaml") { - let r3 = t12.value.trim(), n = r3 ? await e3(r3, { parser: "yaml" }) : ""; - return zr4([t12.startDelimiter, S4, n, n ? S4 : "", t12.endDelimiter]); - } -} -function Li3(t12) { - return Array.isArray(t12) && t12.length > 0; -} -function Ge5(t12, e3) { - return [t12.isSelfClosing ? "" : Fi3(t12, e3), Ye4(t12, e3)]; -} -function Fi3(t12, e3) { - return t12.lastChild && Ce5(t12.lastChild) ? "" : [Pi3(t12, e3), _t4(t12, e3)]; -} -function Ye4(t12, e3) { - return (t12.next ? W3(t12.next) : ge4(t12.parent)) ? "" : [de4(t12, e3), O4(t12, e3)]; -} -function Pi3(t12, e3) { - return ge4(t12) ? de4(t12.lastChild, e3) : ""; -} -function O4(t12, e3) { - return Ce5(t12) ? _t4(t12.parent, e3) : ze6(t12) ? Dt5(t12.next) : ""; -} -function _t4(t12, e3) { - if (pr4(!t12.isSelfClosing), In3(t12, e3)) - return ""; - switch (t12.type) { - case "ieConditionalComment": - return ""; - case "ieConditionalStartComment": - return "]>"; - case "interpolation": - return "}}"; - case "element": - if (t12.isSelfClosing) - return "/>"; - default: - return ">"; - } -} -function In3(t12, e3) { - return !t12.isSelfClosing && !t12.endSourceSpan && (He5(t12) || mt5(t12.parent, e3)); -} -function W3(t12) { - return t12.prev && t12.prev.type !== "docType" && !P6(t12.prev) && t12.isLeadingSpaceSensitive && !t12.hasLeadingSpaces; -} -function ge4(t12) { - var e3; - return ((e3 = t12.lastChild) == null ? void 0 : e3.isTrailingSpaceSensitive) && !t12.lastChild.hasTrailingSpaces && !P6(gt5(t12.lastChild)) && !he6(t12); -} -function Ce5(t12) { - return !t12.next && !t12.hasTrailingSpaces && t12.isTrailingSpaceSensitive && P6(gt5(t12)); -} -function ze6(t12) { - return t12.next && !P6(t12.next) && P6(t12) && t12.isTrailingSpaceSensitive && !t12.hasTrailingSpaces; -} -function Ni3(t12) { - let e3 = t12.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s); - return e3 ? e3[1] ? e3[1].split(/\s+/) : true : false; -} -function je7(t12) { - return !t12.prev && t12.isLeadingSpaceSensitive && !t12.hasLeadingSpaces; -} -function Ii3(t12, e3, r3) { - var f3; - let { node: n } = t12; - if (!Nn3(n.attrs)) - return n.isSelfClosing ? " " : ""; - let s3 = ((f3 = n.prev) == null ? void 0 : f3.type) === "comment" && Ni3(n.prev.value), i = typeof s3 == "boolean" ? () => s3 : Array.isArray(s3) ? (d5) => s3.includes(d5.rawName) : () => false, a = t12.map(({ node: d5 }) => i(d5) ? w3(e3.originalText.slice(te5(d5), re5(d5))) : r3(), "attrs"), u = n.type === "element" && n.fullName === "script" && n.attrs.length === 1 && n.attrs[0].fullName === "src" && n.children.length === 0, p4 = e3.singleAttributePerLine && n.attrs.length > 1 && !fe4(n, e3) ? S4 : _3, l = [U5([u ? " " : _3, Z5(p4, a)])]; - return n.firstChild && je7(n.firstChild) || n.isSelfClosing && ge4(n.parent) || u ? l.push(n.isSelfClosing ? " " : "") : l.push(e3.bracketSameLine ? n.isSelfClosing ? " " : "" : n.isSelfClosing ? _3 : x4), l; -} -function Ri2(t12) { - return t12.firstChild && je7(t12.firstChild) ? "" : vt6(t12); -} -function Ke5(t12, e3, r3) { - let { node: n } = t12; - return [Qe5(n, e3), Ii3(t12, e3, r3), n.isSelfClosing ? "" : Ri2(n)]; -} -function Qe5(t12, e3) { - return t12.prev && ze6(t12.prev) ? "" : [q4(t12, e3), Dt5(t12)]; -} -function q4(t12, e3) { - return je7(t12) ? vt6(t12.parent) : W3(t12) ? de4(t12.prev, e3) : ""; -} -function Dt5(t12) { - switch (t12.type) { - case "ieConditionalComment": - case "ieConditionalStartComment": - return `<${t12.rawName}`; - default: - return `<${t12.rawName}`; - } -} -function vt6(t12) { - switch (pr4(!t12.isSelfClosing), t12.type) { - case "ieConditionalComment": - return "]>"; - case "element": - if (t12.condition) - return ">"; - default: - return ">"; - } -} -function $i3(t12, e3) { - let { root: r3 } = t12; - return hr3.has(r3) || hr3.set(r3, r3.children.some((n) => Et5(n, e3) && ["ts", "typescript"].includes(n.attrMap.lang))), hr3.get(r3); -} -function Mi3(t12, e3) { - if (!t12.endSourceSpan) - return ""; - let r3 = t12.startSourceSpan.end.offset; - t12.firstChild && je7(t12.firstChild) && (r3 -= vt6(t12).length); - let n = t12.endSourceSpan.start.offset; - return t12.lastChild && Ce5(t12.lastChild) ? n += _t4(t12, e3).length : ge4(t12) && (n -= de4(t12.lastChild, e3).length), e3.originalText.slice(r3, n); -} -function Rn3(t12) { - return t12 === " " || t12 === ` -` || t12 === "\f" || t12 === "\r" || t12 === " "; -} -function Wi2(t12) { - let e3 = t12.length, r3, n, s3, i, a, u = 0, o2; - function p4(C6) { - let E6, A6 = C6.exec(t12.substring(u)); - if (A6) - return [E6] = A6, u += E6.length, E6; - } - let l = []; - for (; ; ) { - if (p4(qi2), u >= e3) { - if (l.length === 0) - throw new Error("Must contain one or more image candidate strings."); - return l; - } - o2 = u, r3 = p4(Hi3), n = [], r3.slice(-1) === "," ? (r3 = r3.replace(Vi2, ""), d5()) : f3(); - } - function f3() { - for (p4(Oi3), s3 = "", i = "in descriptor"; ; ) { - if (a = t12.charAt(u), i === "in descriptor") - if (Rn3(a)) - s3 && (n.push(s3), s3 = "", i = "after descriptor"); - else if (a === ",") { - u += 1, s3 && n.push(s3), d5(); - return; - } else if (a === "(") - s3 += a, i = "in parens"; - else if (a === "") { - s3 && n.push(s3), d5(); - return; - } else - s3 += a; - else if (i === "in parens") - if (a === ")") - s3 += a, i = "in descriptor"; - else if (a === "") { - n.push(s3), d5(); - return; - } else - s3 += a; - else if (i === "after descriptor" && !Rn3(a)) - if (a === "") { - d5(); - return; - } else - i = "in descriptor", u -= 1; - u += 1; - } - } - function d5() { - let C6 = false, E6, A6, F5, T4, c3 = {}, g3, y5, I5, b5, $8; - for (T4 = 0; T4 < n.length; T4++) - g3 = n[T4], y5 = g3[g3.length - 1], I5 = g3.substring(0, g3.length - 1), b5 = parseInt(I5, 10), $8 = parseFloat(I5), $n3.test(I5) && y5 === "w" ? ((E6 || A6) && (C6 = true), b5 === 0 ? C6 = true : E6 = b5) : Ui3.test(I5) && y5 === "x" ? ((E6 || A6 || F5) && (C6 = true), $8 < 0 ? C6 = true : A6 = $8) : $n3.test(I5) && y5 === "h" ? ((F5 || A6) && (C6 = true), b5 === 0 ? C6 = true : F5 = b5) : C6 = true; - if (!C6) - c3.source = { value: r3, startOffset: o2 }, E6 && (c3.width = { value: E6 }), A6 && (c3.density = { value: A6 }), F5 && (c3.height = { value: F5 }), l.push(c3); - else - throw new Error(`Invalid srcset descriptor found in "${t12}" at "${g3}".`); - } -} -function Se5(t12, e3 = true) { - return [U5([x4, t12]), e3 ? x4 : ""]; -} -function ne5(t12, e3) { - let r3 = t12.type === "NGRoot" ? t12.node.type === "NGMicrosyntax" && t12.node.body.length === 1 && t12.node.body[0].type === "NGMicrosyntaxExpression" ? t12.node.body[0].expression : t12.node : t12.type === "JsExpressionRoot" ? t12.node : t12; - return r3 && (r3.type === "ObjectExpression" || r3.type === "ArrayExpression" || (e3.parser === "__vue_expression" || e3.parser === "__vue_ts_expression") && (r3.type === "TemplateLiteral" || r3.type === "StringLiteral")); -} -async function B5(t12, e3, r3, n) { - r3 = { __isInHtmlAttribute: true, __embeddedInHtml: true, ...r3 }; - let s3 = true; - n && (r3.__onHtmlBindingRoot = (a, u) => { - s3 = n(a, u); - }); - let i = await e3(t12, r3, e3); - return s3 ? D3(i) : Se5(i); -} -function Gi2(t12) { - if (t12.node.fullName === "srcset" && (t12.parent.fullName === "img" || t12.parent.fullName === "source")) - return () => zi3(k3(t12.node)); -} -function zi3(t12) { - let e3 = Mn3(t12), r3 = Yi2.filter((l) => e3.some((f3) => Object.prototype.hasOwnProperty.call(f3, l))); - if (r3.length > 1) - throw new Error("Mixed descriptor in srcset is not supported"); - let [n] = r3, s3 = On3[n], i = e3.map((l) => l.source.value), a = Math.max(...i.map((l) => l.length)), u = e3.map((l) => l[n] ? String(l[n].value) : ""), o2 = u.map((l) => { - let f3 = l.indexOf("."); - return f3 === -1 ? l.length : f3; - }), p4 = Math.max(...o2); - return Se5(Z5([",", _3], i.map((l, f3) => { - let d5 = [l], C6 = u[f3]; - if (C6) { - let E6 = a - l.length + 1, A6 = p4 - o2[f3], F5 = " ".repeat(E6 + A6); - d5.push(ce4(F5, " "), C6 + s3); - } - return d5; - }))); -} -function ji3(t12, e3) { - let { node: r3 } = t12, n = k3(r3); - if (r3.fullName === "class" && !e3.parentParser && !n.includes("{{")) - return () => n.trim().split(/\s+/).join(" "); -} -function Vn3(t12, e3) { - let { node: r3 } = t12, n = k3(t12.node).trim(); - if (r3.fullName === "style" && !e3.parentParser && !n.includes("{{")) - return async (s3) => Se5(await s3(n, { parser: "css", __isHTMLStyleAttribute: true })); -} -async function Un3(t12, e3, r3, n) { - let s3 = k3(r3.node), { left: i, operator: a, right: u } = Ki3(s3), o2 = Ne4(r3, n); - return [D3(await B5(`function _(${i}) {}`, t12, { parser: o2 ? "babel-ts" : "babel", __isVueForBindingLeft: true })), " ", a, " ", await B5(u, t12, { parser: o2 ? "__ts_expression" : "__js_expression" })]; -} -function Ki3(t12) { - let e3 = /(.*?)\s+(in|of)\s+(.*)/s, r3 = /,([^,\]}]*)(?:,([^,\]}]*))?$/, n = /^\(|\)$/g, s3 = t12.match(e3); - if (!s3) - return; - let i = {}; - if (i.for = s3[3].trim(), !i.for) - return; - let a = v(false, s3[1].trim(), n, ""), u = a.match(r3); - u ? (i.alias = a.replace(r3, ""), i.iterator1 = u[1].trim(), u[2] && (i.iterator2 = u[2].trim())) : i.alias = a; - let o2 = [i.alias, i.iterator1, i.iterator2]; - if (!o2.some((p4, l) => !p4 && (l === 0 || o2.slice(l + 1).some(Boolean)))) - return { left: o2.filter(Boolean).join(","), operator: s3[2], right: i.for }; -} -function Wn2(t12, e3, r3) { - let { node: n } = r3, s3 = k3(n); - return B5(`type T<${s3}> = any`, t12, { parser: "babel-ts", __isEmbeddedTypescriptGenericParameters: true }, ne5); -} -function Gn3(t12, e3, { parseWithTs: r3 }) { - return B5(`function _(${t12}) {}`, e3, { parser: r3 ? "babel-ts" : "babel", __isVueBindings: true }); -} -function Yn3(t12) { - let e3 = /^(?:[\w$]+|\([^)]*\))\s*=>|^function\s*\(/, r3 = /^[$A-Z_a-z][\w$]*(?:\.[$A-Z_a-z][\w$]*|\['[^']*']|\["[^"]*"]|\[\d+]|\[[$A-Z_a-z][\w$]*])*$/, n = t12.trim(); - return e3.test(n) || r3.test(n); -} -function Qi3(t12, e3) { - if (e3.parser !== "vue") - return; - let { node: r3 } = t12, n = r3.fullName; - if (n === "v-for") - return Un3; - if (n === "generic" && Et5(r3.parent, e3)) - return Wn2; - let s3 = k3(r3), i = Ne4(t12, e3); - if (vn3(r3) || yn3(r3, e3)) - return (a) => Gn3(s3, a, { parseWithTs: i }); - if (n.startsWith("@") || n.startsWith("v-on:")) - return (a) => Xi2(s3, a, { parseWithTs: i }); - if (n.startsWith(":") || n.startsWith("v-bind:")) - return (a) => Ji3(s3, a, { parseWithTs: i }); - if (n.startsWith("v-")) - return (a) => zn2(s3, a, { parseWithTs: i }); -} -function Xi2(t12, e3, { parseWithTs: r3 }) { - return Yn3(t12) ? zn2(t12, e3, { parseWithTs: r3 }) : B5(t12, e3, { parser: r3 ? "__vue_ts_event_binding" : "__vue_event_binding" }, ne5); -} -function Ji3(t12, e3, { parseWithTs: r3 }) { - return B5(t12, e3, { parser: r3 ? "__vue_ts_expression" : "__vue_expression" }, ne5); -} -function zn2(t12, e3, { parseWithTs: r3 }) { - return B5(t12, e3, { parser: r3 ? "__ts_expression" : "__js_expression" }, ne5); -} -async function Kn3(t12, e3) { - let r3 = []; - for (let [n, s3] of t12.split(fr4).entries()) - if (n % 2 === 0) - r3.push(w3(s3)); - else - try { - r3.push(D3(["{{", U5([_3, await B5(s3, e3, { parser: "__ng_interpolation", __isInHtmlInterpolation: true, trailingComma: "none" })]), _3, "}}"])); - } catch { - r3.push("{{", w3(s3), "}}"); - } - return r3; -} -function mr4({ parser: t12 }) { - return (e3, r3, n) => B5(k3(n.node), e3, { parser: t12, trailingComma: "none" }, ne5); -} -function ra3(t12, e3) { - if (e3.parser !== "angular") - return; - let { node: r3 } = t12, n = r3.fullName; - if (n.startsWith("(") && n.endsWith(")") || n.startsWith("on-")) - return Zi4; - if (n.startsWith("[") && n.endsWith("]") || /^bind(?:on)?-/.test(n) || /^ng-(?:if|show|hide|class|style)$/.test(n)) - return ea3; - if (n.startsWith("*")) - return ta3; - let s3 = k3(r3); - if (/^i18n(?:-.+)?$/.test(n)) - return () => Se5(pt3(St5(r3, s3.trim())), !s3.includes("@@")); - if (fr4.test(s3)) - return (i) => Kn3(s3, i); -} -function na3(t12, e3) { - let { node: r3 } = t12; - if (r3.value) { - if (/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(e3.originalText.slice(r3.valueSpan.start.offset, r3.valueSpan.end.offset)) || e3.parser === "lwc" && r3.value.startsWith("{") && r3.value.endsWith("}")) - return [r3.rawName, "=", r3.value]; - for (let n of [qn3, Vn3, Hn3, jn2, Qn2]) { - let s3 = n(t12, e3); - if (s3) - return sa3(s3); - } - } -} -function sa3(t12) { - return async (e3, r3, n, s3) => { - let i = await t12(e3, r3, n, s3); - if (i) - return i = ht2(i, (a) => typeof a == "string" ? v(false, a, '"', """) : a), [n.node.rawName, '="', D3(i), '"']; - }; -} -function ia3(t12, e3) { - let { node: r3 } = t12; - switch (r3.type) { - case "element": - if (M6(r3) || r3.type === "interpolation") - return; - if (!r3.isSelfClosing && Ct5(r3, e3)) { - let n = sr4(r3, e3); - return n ? async (s3, i) => { - let a = yt5(r3, e3), u = /^\s*$/.test(a), o2 = ""; - return u || (o2 = await s3(tr4(a), { parser: n, __embeddedInHtml: true }), u = o2 === ""), [q4(r3, e3), D3(Ke5(t12, e3, i)), u ? "" : S4, o2, u ? "" : S4, Ge5(r3, e3), O4(r3, e3)]; - } : void 0; - } - break; - case "text": - if (M6(r3.parent)) { - let n = sr4(r3.parent, e3); - if (n) - return async (s3) => { - let i = n === "markdown" ? ir4(r3.value.replace(/^[^\S\n]*\n/, "")) : r3.value, a = { parser: n, __embeddedInHtml: true }; - if (e3.parser === "html" && n === "babel") { - let u = "script", { attrMap: o2 } = r3.parent; - o2 && (o2.type === "module" || o2.type === "text/babel" && o2["data-type"] === "module") && (u = "module"), a.__babelSourceType = u; - } - return [J4, q4(r3, e3), await s3(i, a, { stripTrailingHardline: true }), O4(r3, e3)]; - }; - } else if (r3.parent.type === "interpolation") - return async (n) => { - let s3 = { __isInHtmlInterpolation: true, __embeddedInHtml: true }; - return e3.parser === "angular" ? (s3.parser = "__ng_interpolation", s3.trailingComma = "none") : e3.parser === "vue" ? s3.parser = Ne4(t12, e3) ? "__vue_ts_expression" : "__vue_expression" : s3.parser = "__js_expression", [U5([_3, await n(r3.value, s3)]), r3.parent.next && W3(r3.parent.next) ? " " : _3]; - }; - break; - case "attribute": - return Xn4(t12, e3); - case "front-matter": - return (n) => Fn3(r3, n); - } -} -function Xe4(t12, e3, r3) { - let n = t12.node; - return He5(n) ? [q4(n, e3), w3(e3.originalText.slice(te5(n) + (n.prev && ze6(n.prev) ? Dt5(n).length : 0), re5(n) - (n.next && W3(n.next) ? de4(n, e3).length : 0))), O4(n, e3)] : r3(); -} -function bt4(t12, e3) { - return P6(t12) && P6(e3) ? t12.isTrailingSpaceSensitive ? t12.hasTrailingSpaces ? dt4(e3) ? S4 : _3 : "" : dt4(e3) ? S4 : x4 : ze6(t12) && (He5(e3) || e3.firstChild || e3.isSelfClosing || e3.type === "element" && e3.attrs.length > 0) || t12.type === "element" && t12.isSelfClosing && W3(e3) ? "" : !e3.isLeadingSpaceSensitive || dt4(e3) || W3(e3) && t12.lastChild && Ce5(t12.lastChild) && t12.lastChild.lastChild && Ce5(t12.lastChild.lastChild) ? S4 : e3.hasLeadingSpaces ? _3 : x4; -} -function wt5(t12, e3, r3) { - let { node: n } = t12; - if (nr3(n)) - return [J4, ...t12.map((i) => { - let a = i.node, u = a.prev ? bt4(a.prev, a) : ""; - return [u ? [u, Ve6(a.prev) ? S4 : ""] : "", Xe4(i, e3, r3)]; - }, "children")]; - let s3 = n.children.map(() => Symbol("")); - return t12.map((i, a) => { - let u = i.node; - if (P6(u)) { - if (u.prev && P6(u.prev)) { - let E6 = bt4(u.prev, u); - if (E6) - return Ve6(u.prev) ? [S4, S4, Xe4(i, e3, r3)] : [E6, Xe4(i, e3, r3)]; - } - return Xe4(i, e3, r3); - } - let o2 = [], p4 = [], l = [], f3 = [], d5 = u.prev ? bt4(u.prev, u) : "", C6 = u.next ? bt4(u, u.next) : ""; - return d5 && (Ve6(u.prev) ? o2.push(S4, S4) : d5 === S4 ? o2.push(S4) : P6(u.prev) ? p4.push(d5) : p4.push(ce4("", x4, { groupId: s3[a - 1] }))), C6 && (Ve6(u) ? P6(u.next) && f3.push(S4, S4) : C6 === S4 ? P6(u.next) && f3.push(S4) : l.push(C6)), [...o2, D3([...p4, D3([Xe4(i, e3, r3), ...l], { id: s3[a] })]), ...f3]; - }, "children"); -} -function Zn3(t12, e3, r3) { - let { node: n } = t12; - if (mt5(n, e3)) - return [q4(n, e3), D3(Ke5(t12, e3, r3)), w3(yt5(n, e3)), ...Ge5(n, e3), O4(n, e3)]; - let s3 = n.children.length === 1 && n.firstChild.type === "interpolation" && n.firstChild.isLeadingSpaceSensitive && !n.firstChild.hasLeadingSpaces && n.lastChild.isTrailingSpaceSensitive && !n.lastChild.hasTrailingSpaces, i = Symbol("element-attr-group-id"), a = (l) => D3([D3(Ke5(t12, e3, r3), { id: i }), l, Ge5(n, e3)]), u = (l) => s3 ? jr3(l, { groupId: i }) : (M6(n) || We5(n, e3)) && n.parent.type === "root" && e3.parser === "vue" && !e3.vueIndentScriptAndStyle ? l : U5(l), o2 = () => s3 ? ce4(x4, "", { groupId: i }) : n.firstChild.hasLeadingSpaces && n.firstChild.isLeadingSpaceSensitive ? _3 : n.firstChild.type === "text" && n.isWhitespaceSensitive && n.isIndentationSensitive ? Yr4(x4) : x4, p4 = () => (n.next ? W3(n.next) : ge4(n.parent)) ? n.lastChild.hasTrailingSpaces && n.lastChild.isTrailingSpaceSensitive ? " " : "" : s3 ? ce4(x4, "", { groupId: i }) : n.lastChild.hasTrailingSpaces && n.lastChild.isTrailingSpaceSensitive ? _3 : (n.lastChild.type === "comment" || n.lastChild.type === "text" && n.isWhitespaceSensitive && n.isIndentationSensitive) && new RegExp(`\\n[\\t ]{${e3.tabWidth * (t12.ancestors.length - 1)}}$`).test(n.lastChild.value) ? "" : x4; - return n.children.length === 0 ? a(n.hasDanglingSpaces && n.isDanglingSpaceSensitive ? _3 : "") : a([dn2(n) ? J4 : "", u([o2(), wt5(t12, e3, r3)]), p4()]); -} -function Ze6(t12) { - if (Je5 !== null && typeof Je5.property) { - let e3 = Je5; - return Je5 = Ze6.prototype = null, e3; - } - return Je5 = Ze6.prototype = t12 ?? /* @__PURE__ */ Object.create(null), new Ze6(); -} -function dr4(t12) { - return Ze6(t12); -} -function ua3(t12, e3 = "type") { - dr4(t12); - function r3(n) { - let s3 = n[e3], i = t12[s3]; - if (!Array.isArray(i)) - throw Object.assign(new Error(`Missing visitor keys for '${s3}'.`), { node: n }); - return i; - } - return r3; -} -function ca3(t12, e3, r3) { - let { node: n } = t12; - switch (n.type) { - case "front-matter": - return w3(n.raw); - case "root": - return e3.__onHtmlRoot && e3.__onHtmlRoot(n), [D3(wt5(t12, e3, r3)), S4]; - case "element": - case "ieConditionalComment": - return Zn3(t12, e3, r3); - case "ieConditionalStartComment": - case "ieConditionalEndComment": - return [Qe5(n), Ye4(n)]; - case "interpolation": - return [Qe5(n, e3), ...t12.map(r3, "children"), Ye4(n, e3)]; - case "text": { - if (n.parent.type === "interpolation") { - let i = /\n[^\S\n]*$/, a = i.test(n.value), u = a ? n.value.replace(i, "") : n.value; - return [w3(u), a ? S4 : ""]; - } - let s3 = Qr4([q4(n, e3), ...St5(n), O4(n, e3)]); - return Array.isArray(s3) ? pt3(s3) : s3; - } - case "docType": - return [D3([Qe5(n, e3), " ", v(false, n.value.replace(/^html\b/i, "html"), /\s+/g, " ")]), Ye4(n, e3)]; - case "comment": - return [q4(n, e3), w3(e3.originalText.slice(te5(n), re5(n))), O4(n, e3)]; - case "attribute": { - if (n.value === null) - return n.rawName; - let s3 = ar2(n.value), i = Zr4(s3, '"'); - return [n.rawName, "=", i, w3(i === '"' ? v(false, s3, '"', """) : v(false, s3, "'", "'")), i]; - } - case "cdata": - default: - throw new Xr4(n, "HTML"); - } -} -function et6(t12) { - if (t12[0] != ":") - return [null, t12]; - let e3 = t12.indexOf(":", 1); - if (e3 === -1) - throw new Error(`Unsupported format "${t12}" expecting ":namespace:name"`); - return [t12.slice(1, e3), t12.slice(e3 + 1)]; -} -function Sr4(t12) { - return et6(t12)[1] === "ng-container"; -} -function Er4(t12) { - return et6(t12)[1] === "ng-content"; -} -function Ie4(t12) { - return t12 === null ? null : et6(t12)[0]; -} -function Re6(t12, e3) { - return t12 ? `:${t12}:${e3}` : e3; -} -function Ar4() { - return xt5 || (xt5 = {}, Tt4(j5.HTML, ["iframe|srcdoc", "*|innerHTML", "*|outerHTML"]), Tt4(j5.STYLE, ["*|style"]), Tt4(j5.URL, ["*|formAction", "area|href", "area|ping", "audio|src", "a|href", "a|ping", "blockquote|cite", "body|background", "del|cite", "form|action", "img|src", "input|src", "ins|cite", "q|cite", "source|src", "track|src", "video|poster", "video|src"]), Tt4(j5.RESOURCE_URL, ["applet|code", "applet|codebase", "base|href", "embed|src", "frame|src", "head|profile", "html|manifest", "iframe|src", "link|href", "media|src", "object|codebase", "object|data", "script|src"])), xt5; -} -function Tt4(t12, e3) { - for (let r3 of e3) - xt5[r3.toLowerCase()] = t12; -} -function Sa2(t12) { - switch (t12) { - case "width": - case "height": - case "minWidth": - case "minHeight": - case "maxWidth": - case "maxHeight": - case "left": - case "top": - case "bottom": - case "right": - case "fontSize": - case "outlineWidth": - case "outlineOffset": - case "paddingTop": - case "paddingLeft": - case "paddingBottom": - case "paddingRight": - case "marginTop": - case "marginLeft": - case "marginBottom": - case "marginRight": - case "borderRadius": - case "borderWidth": - case "borderTopWidth": - case "borderLeftWidth": - case "borderRightWidth": - case "borderBottomWidth": - case "textIndent": - return true; - default: - return false; - } -} -function $e5(t12) { - return tt6 || (os4 = new h({ canSelfClose: true }), tt6 = { base: new h({ isVoid: true }), meta: new h({ isVoid: true }), area: new h({ isVoid: true }), embed: new h({ isVoid: true }), link: new h({ isVoid: true }), img: new h({ isVoid: true }), input: new h({ isVoid: true }), param: new h({ isVoid: true }), hr: new h({ isVoid: true }), br: new h({ isVoid: true }), source: new h({ isVoid: true }), track: new h({ isVoid: true }), wbr: new h({ isVoid: true }), p: new h({ closedByChildren: ["address", "article", "aside", "blockquote", "div", "dl", "fieldset", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "main", "nav", "ol", "p", "pre", "section", "table", "ul"], closedByParent: true }), thead: new h({ closedByChildren: ["tbody", "tfoot"] }), tbody: new h({ closedByChildren: ["tbody", "tfoot"], closedByParent: true }), tfoot: new h({ closedByChildren: ["tbody"], closedByParent: true }), tr: new h({ closedByChildren: ["tr"], closedByParent: true }), td: new h({ closedByChildren: ["td", "th"], closedByParent: true }), th: new h({ closedByChildren: ["td", "th"], closedByParent: true }), col: new h({ isVoid: true }), svg: new h({ implicitNamespacePrefix: "svg" }), foreignObject: new h({ implicitNamespacePrefix: "svg", preventNamespaceInheritance: true }), math: new h({ implicitNamespacePrefix: "math" }), li: new h({ closedByChildren: ["li"], closedByParent: true }), dt: new h({ closedByChildren: ["dt", "dd"] }), dd: new h({ closedByChildren: ["dt", "dd"], closedByParent: true }), rb: new h({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), rt: new h({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), rtc: new h({ closedByChildren: ["rb", "rtc", "rp"], closedByParent: true }), rp: new h({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: true }), optgroup: new h({ closedByChildren: ["optgroup"], closedByParent: true }), option: new h({ closedByChildren: ["option", "optgroup"], closedByParent: true }), pre: new h({ ignoreFirstLf: true }), listing: new h({ ignoreFirstLf: true }), style: new h({ contentType: L4.RAW_TEXT }), script: new h({ contentType: L4.RAW_TEXT }), title: new h({ contentType: { default: L4.ESCAPABLE_RAW_TEXT, svg: L4.PARSABLE_DATA } }), textarea: new h({ contentType: L4.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }) }, new Bt5().allKnownElementNames().forEach((e3) => { - !tt6.hasOwnProperty(e3) && Ie4(e3) === null && (tt6[e3] = new h({ canSelfClose: false })); - })), tt6[t12] ?? os4; -} -function Ot6(t12, e3, r3 = null) { - let n = [], s3 = t12.visit ? (i) => t12.visit(i, r3) || i.visit(t12, r3) : (i) => i.visit(t12, r3); - return e3.forEach((i) => { - let a = s3(i); - a && n.push(a); - }), n; -} -function ls3(t12, e3) { - if (e3 != null && !(Array.isArray(e3) && e3.length == 2)) - throw new Error(`Expected '${t12}' to be an array, [start, end].`); - if (e3 != null) { - let r3 = e3[0], n = e3[1]; - _a2.forEach((s3) => { - if (s3.test(r3) || s3.test(n)) - throw new Error(`['${r3}', '${n}'] contains unusable interpolation symbol.`); - }); - } -} -function As4(t12, e3, r3, n = {}) { - let s3 = new wr4(new me5(t12, e3), r3, n); - return s3.tokenize(), new br3(Ya2(s3.tokens), s3.errors, s3.nonNormalizedIcuExpressions); -} -function Oe6(t12) { - return `Unexpected character "${t12 === 0 ? "EOF" : String.fromCharCode(t12)}"`; -} -function fs8(t12) { - return `Unknown entity "${t12}" - use the "&#;" or "&#x;" syntax`; -} -function qa2(t12, e3) { - return `Unable to parse entity "${e3}" - ${t12} character reference entities must end with ";"`; -} -function N2(t12) { - return !ur4(t12) || t12 === 0; -} -function ms4(t12) { - return ur4(t12) || t12 === 62 || t12 === 60 || t12 === 47 || t12 === 39 || t12 === 34 || t12 === 61 || t12 === 0; -} -function Ha2(t12) { - return (t12 < 97 || 122 < t12) && (t12 < 65 || 90 < t12) && (t12 < 48 || t12 > 57); -} -function Va2(t12) { - return t12 === 59 || t12 === 0 || !bn3(t12); -} -function Ua2(t12) { - return t12 === 59 || t12 === 0 || !or3(t12); -} -function Wa2(t12) { - return t12 !== 125; -} -function Ga2(t12, e3) { - return ds3(t12) === ds3(e3); -} -function ds3(t12) { - return t12 >= 97 && t12 <= 122 ? t12 - 97 + 65 : t12; -} -function Ya2(t12) { - let e3 = [], r3; - for (let n = 0; n < t12.length; n++) { - let s3 = t12[n]; - r3 && r3.type === 5 && s3.type === 5 || r3 && r3.type === 16 && s3.type === 16 ? (r3.parts[0] += s3.parts[0], r3.sourceSpan.end = s3.sourceSpan.end) : (r3 = s3, e3.push(r3)); - } - return e3; -} -function _s5(t12, e3) { - return t12.length > 0 && t12[t12.length - 1] === e3; -} -function Ds5(t12, e3) { - return Me6[e3] !== void 0 ? Me6[e3] || t12 : /^#x[a-f0-9]+$/i.test(e3) ? String.fromCodePoint(parseInt(e3.slice(2), 16)) : /^#\d+$/.test(e3) ? String.fromCodePoint(parseInt(e3.slice(1), 10)) : t12; -} -function Pr4(t12, e3 = {}) { - let { canSelfClose: r3 = false, allowHtmComponentClosingTags: n = false, isTagNameCaseSensitive: s3 = false, getTagContentType: i } = e3; - return za2().parse(t12, "angular-html-parser", { tokenizeExpansionForms: false, interpolationConfig: void 0, canSelfClose: r3, allowHtmComponentClosingTags: n }, s3, i); -} -function Ka2(t12) { - let e3 = t12.match(ja2); - if (!e3) - return { content: t12 }; - let { startDelimiter: r3, language: n, value: s3 = "", endDelimiter: i } = e3.groups, a = n.trim() || "yaml"; - if (r3 === "+++" && (a = "toml"), a !== "yaml" && r3 !== i) - return { content: t12 }; - let [u] = e3; - return { frontMatter: { type: "front-matter", lang: a, value: s3, startDelimiter: r3, endDelimiter: i, raw: u.replace(/\n$/, "") }, content: v(false, u, /[^\n]/g, " ") + t12.slice(u.length) }; -} -function Qa2(t12, e3) { - let r3 = new SyntaxError(t12 + " (" + e3.loc.start.line + ":" + e3.loc.start.column + ")"); - return Object.assign(r3, e3); -} -function Xa2(t12, e3) { - let r3 = t12.map(e3); - return r3.some((n, s3) => n !== t12[s3]) ? r3 : t12; -} -function Ts5(t12, e3) { - if (t12.value) - for (let { regex: r3, parse: n } of Ja2) { - let s3 = t12.value.match(r3); - if (s3) - return n(t12, e3, s3); - } - return null; -} -function Za2(t12, e3, r3) { - let [, n, s3, i] = r3, a = 4 + n.length, u = t12.sourceSpan.start.moveBy(a), o2 = u.moveBy(i.length), [p4, l] = (() => { - try { - return [true, e3(i, u).children]; - } catch { - return [false, [{ type: "text", value: i, sourceSpan: new m2(u, o2) }]]; - } - })(); - return { type: "ieConditionalComment", complete: p4, children: l, condition: v(false, s3.trim(), /\s+/g, " "), sourceSpan: t12.sourceSpan, startSourceSpan: new m2(t12.sourceSpan.start, u), endSourceSpan: new m2(o2, t12.sourceSpan.end) }; -} -function eu2(t12, e3, r3) { - let [, n] = r3; - return { type: "ieConditionalStartComment", condition: v(false, n.trim(), /\s+/g, " "), sourceSpan: t12.sourceSpan }; -} -function tu2(t12) { - return { type: "ieConditionalEndComment", sourceSpan: t12.sourceSpan }; -} -function ks5(t12, e3, r3) { - let { name: n, canSelfClose: s3 = true, normalizeTagName: i = false, normalizeAttributeName: a = false, allowHtmComponentClosingTags: u = false, isTagNameCaseSensitive: o2 = false, shouldParseAsRawText: p4 } = e3, { rootNodes: l, errors: f3 } = Pr4(t12, { canSelfClose: s3, allowHtmComponentClosingTags: u, isTagNameCaseSensitive: o2, getTagContentType: p4 ? (...c3) => p4(...c3) ? L4.RAW_TEXT : void 0 : void 0 }); - if (n === "vue") { - if (l.some((b5) => b5.type === "docType" && b5.value === "html" || b5.type === "element" && b5.name.toLowerCase() === "html")) - return ks5(t12, Ls4, r3); - let g3, y5 = () => g3 ?? (g3 = Pr4(t12, { canSelfClose: s3, allowHtmComponentClosingTags: u, isTagNameCaseSensitive: o2 })), I5 = (b5) => y5().rootNodes.find(({ startSourceSpan: $8 }) => $8 && $8.start.offset === b5.startSourceSpan.start.offset) ?? b5; - for (let [b5, $8] of l.entries()) { - let { endSourceSpan: $r4, startSourceSpan: Is6 } = $8; - if ($r4 === null) - f3 = y5().errors, l[b5] = I5($8); - else if (ru2($8, r3)) { - let Mr4 = y5().errors.find((Or5) => Or5.span.start.offset > Is6.start.offset && Or5.span.start.offset < $r4.end.offset); - Mr4 && xs4(Mr4), l[b5] = I5($8); - } - } - } - f3.length > 0 && xs4(f3[0]); - let d5 = (c3) => { - let g3 = c3.name.startsWith(":") ? c3.name.slice(1).split(":")[0] : null, y5 = c3.nameSpan.toString(), I5 = g3 !== null && y5.startsWith(`${g3}:`), b5 = I5 ? y5.slice(g3.length + 1) : y5; - c3.name = b5, c3.namespace = g3, c3.hasExplicitNamespace = I5; - }, C6 = (c3) => { - switch (c3.type) { - case "element": - d5(c3); - for (let g3 of c3.attrs) - d5(g3), g3.valueSpan ? (g3.value = g3.valueSpan.toString(), /["']/.test(g3.value[0]) && (g3.value = g3.value.slice(1, -1))) : g3.value = null; - break; - case "comment": - c3.value = c3.sourceSpan.toString().slice(4, -3); - break; - case "text": - c3.value = c3.sourceSpan.toString(); - break; - } - }, E6 = (c3, g3) => { - let y5 = c3.toLowerCase(); - return g3(y5) ? y5 : c3; - }, A6 = (c3) => { - if (c3.type === "element" && (i && (!c3.namespace || c3.namespace === c3.tagDefinition.implicitNamespacePrefix || pe5(c3)) && (c3.name = E6(c3.name, (g3) => bs5.has(g3))), a)) - for (let g3 of c3.attrs) - g3.namespace || (g3.name = E6(g3.name, (y5) => zt4.has(c3.name) && (zt4.get("*").has(y5) || zt4.get(c3.name).has(y5)))); - }, F5 = (c3) => { - c3.sourceSpan && c3.endSourceSpan && (c3.sourceSpan = new m2(c3.sourceSpan.start, c3.endSourceSpan.end)); - }, T4 = (c3) => { - if (c3.type === "element") { - let g3 = $e5(o2 ? c3.name : c3.name.toLowerCase()); - !c3.namespace || c3.namespace === g3.implicitNamespacePrefix || pe5(c3) ? c3.tagDefinition = g3 : c3.tagDefinition = $e5(""); - } - }; - return Ot6(new class extends rt5 { - visit(c3) { - C6(c3), T4(c3), A6(c3), F5(c3); - } - }(), l), l; -} -function ru2(t12, e3) { - var n; - if (t12.type !== "element" || t12.name !== "template") - return false; - let r3 = (n = t12.attrs.find((s3) => s3.name === "lang")) == null ? void 0 : n.value; - return !r3 || Le3(e3, { language: r3 }) === "html"; -} -function xs4(t12) { - let { msg: e3, span: { start: r3, end: n } } = t12; - throw ys5(e3, { loc: { start: { line: r3.line + 1, column: r3.col + 1 }, end: { line: n.line + 1, column: n.col + 1 } }, cause: t12 }); -} -function Bs5(t12, e3, r3 = {}, n = true) { - let { frontMatter: s3, content: i } = n ? vs5(t12) : { frontMatter: null, content: t12 }, a = new me5(t12, r3.filepath), u = new ee5(a, 0, 0, 0), o2 = u.moveBy(t12.length), p4 = { type: "root", sourceSpan: new m2(u, o2), children: ks5(i, e3, r3) }; - if (s3) { - let d5 = new ee5(a, 0, 0, 0), C6 = d5.moveBy(s3.raw.length); - s3.sourceSpan = new m2(d5, C6), p4.children.unshift(s3); - } - let l = new Kt5(p4), f3 = (d5, C6) => { - let { offset: E6 } = C6, A6 = v(false, t12.slice(0, E6), /[^\n\r]/g, " "), T4 = Bs5(A6 + d5, e3, r3, false); - T4.sourceSpan = new m2(C6, ke6(false, T4.children, -1).sourceSpan.end); - let c3 = T4.children[0]; - return c3.length === E6 ? T4.children.shift() : (c3.sourceSpan = new m2(c3.sourceSpan.start.moveBy(E6), c3.sourceSpan.end), c3.value = c3.value.slice(E6)), T4; - }; - return l.walk((d5) => { - if (d5.type === "comment") { - let C6 = Ts5(d5, f3); - C6 && d5.parent.replaceChild(d5, C6); - } - }), l; -} -function Qt4(t12) { - return { parse: (e3, r3) => Bs5(e3, t12, r3), hasPragma: Bn3, astFormat: "html", locStart: te5, locEnd: re5 }; -} -var Rs4, qr4, Hr4, Y6, Vr4, Ur3, Rr4, $s4, v, _e6, De6, ve5, se3, ie3, ye5, Q4, ae3, ue3, oe4, be7, we6, V3, Te5, le5, ot5, xe5, Os5, Xt4, lt3, Wr4, X4, ct4, J4, Hs4, Vs4, _3, x4, S4, Kr4, Us4, ke6, Jt4, Xr4, ft4, Jr4, Zr4, Be5, zs4, tn4, js5, Le3, nn4, sn3, an3, un3, R4, er4, on3, Xs4, Js4, z6, pe5, ei4, tr4, ln3, mi3, gi3, ee5, me5, m2, At5, Pe5, Ci3, kn3, Fn3, Pn3, pr4, Nn3, hr3, Ne4, yt5, Oi3, qi2, Hi3, Vi2, $n3, Ui3, Mn3, On3, Yi2, qn3, Hn3, jn2, fr4, Zi4, ea3, ta3, Qn2, Xn4, Jn3, Je5, aa3, es4, oa3, ts4, la3, rs4, pa3, ns4, Nr5, _c2, ss4, is4, gr4, Cr4, j5, as4, L4, xt5, kt6, ha3, fa3, ma2, da3, ga2, us3, Ca2, Bt5, h, os4, tt6, Ee2, Lt6, Ft4, Pt5, Nt6, It5, Rt5, $t5, Mt4, rt5, Me6, Aa2, _a2, _r3, Dr3, it4, br3, Oa2, Ut3, at4, wr4, Wt4, Tr3, ut2, H5, Br3, Gt3, Lr4, Yt3, Fr3, za2, ja2, vs5, ys5, bs5, zt4, jt4, ws5, Kt5, Ja2, Ls4, nu2, su2, iu2, au2, Fs5, Ir4, Ps5, uu2, Ns4, ou2, qp2; -var init_html = __esm({ - "node_modules/prettier/plugins/html.mjs"() { - Rs4 = Object.defineProperty; - qr4 = (t12, e3) => { - for (var r3 in e3) - Rs4(t12, r3, { get: e3[r3], enumerable: true }); - }; - Hr4 = (t12, e3, r3) => { - if (!e3.has(t12)) - throw TypeError("Cannot " + r3); - }; - Y6 = (t12, e3, r3) => (Hr4(t12, e3, "read from private field"), r3 ? r3.call(t12) : e3.get(t12)); - Vr4 = (t12, e3, r3) => { - if (e3.has(t12)) - throw TypeError("Cannot add the same private member more than once"); - e3 instanceof WeakSet ? e3.add(t12) : e3.set(t12, r3); - }; - Ur3 = (t12, e3, r3, n) => (Hr4(t12, e3, "write to private field"), n ? n.call(t12, r3) : e3.set(t12, r3), r3); - Rr4 = {}; - qr4(Rr4, { languages: () => Fs5, options: () => Ns4, parsers: () => Nr5, printers: () => ou2 }); - $s4 = (t12, e3, r3, n) => { - if (!(t12 && e3 == null)) - return e3.replaceAll ? e3.replaceAll(r3, n) : r3.global ? e3.replace(r3, n) : e3.split(r3).join(n); - }; - v = $s4; - _e6 = "string"; - De6 = "array"; - ve5 = "cursor"; - se3 = "indent"; - ie3 = "align"; - ye5 = "trim"; - Q4 = "group"; - ae3 = "fill"; - ue3 = "if-break"; - oe4 = "indent-if-break"; - be7 = "line-suffix"; - we6 = "line-suffix-boundary"; - V3 = "line"; - Te5 = "label"; - le5 = "break-parent"; - ot5 = /* @__PURE__ */ new Set([ve5, se3, ie3, ye5, Q4, ae3, ue3, oe4, be7, we6, V3, Te5, le5]); - xe5 = Ms4; - Os5 = (t12) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t12); - Xt4 = class extends Error { - name = "InvalidDocError"; - constructor(e3) { - super(qs4(e3)), this.doc = e3; - } - }; - lt3 = Xt4; - Wr4 = () => { - }; - X4 = Wr4; - ct4 = Wr4; - J4 = { type: le5 }; - Hs4 = { type: V3, hard: true }; - Vs4 = { type: V3, hard: true, literal: true }; - _3 = { type: V3 }; - x4 = { type: V3, soft: true }; - S4 = [Hs4, J4]; - Kr4 = [Vs4, J4]; - Us4 = (t12, e3, r3) => { - if (!(t12 && e3 == null)) - return Array.isArray(e3) || typeof e3 == "string" ? e3[r3 < 0 ? e3.length + r3 : r3] : e3.at(r3); - }; - ke6 = Us4; - Jt4 = class extends Error { - name = "UnexpectedNodeError"; - constructor(e3, r3, n = "type") { - super(`Unexpected ${r3} node ${n}: ${JSON.stringify(e3[n])}.`), this.node = e3; - } - }; - Xr4 = Jt4; - ft4 = "'"; - Jr4 = '"'; - Zr4 = Gs4; - Be5 = Ys4; - zs4 = /* @__PURE__ */ new Set(["sourceSpan", "startSourceSpan", "endSourceSpan", "nameSpan", "valueSpan", "keySpan", "tagDefinition", "tokens", "valueTokens"]); - en4.ignoredProperties = zs4; - tn4 = en4; - js5 = (t12) => t12.split(/[/\\]/).pop(); - Le3 = Qs4; - nn4 = "inline"; - sn3 = { area: "none", base: "none", basefont: "none", datalist: "none", head: "none", link: "none", meta: "none", noembed: "none", noframes: "none", param: "block", rp: "none", script: "block", source: "block", style: "none", template: "inline", track: "block", title: "none", html: "block", body: "block", address: "block", blockquote: "block", center: "block", div: "block", figure: "block", figcaption: "block", footer: "block", form: "block", header: "block", hr: "block", legend: "block", listing: "block", main: "block", p: "block", plaintext: "block", pre: "block", xmp: "block", slot: "contents", ruby: "ruby", rt: "ruby-text", article: "block", aside: "block", h1: "block", h2: "block", h3: "block", h4: "block", h5: "block", h6: "block", hgroup: "block", nav: "block", section: "block", dir: "block", dd: "block", dl: "block", dt: "block", ol: "block", ul: "block", li: "list-item", table: "table", caption: "table-caption", colgroup: "table-column-group", col: "table-column", thead: "table-header-group", tbody: "table-row-group", tfoot: "table-footer-group", tr: "table-row", td: "table-cell", th: "table-cell", fieldset: "block", button: "inline-block", details: "block", summary: "block", dialog: "block", meter: "inline-block", progress: "inline-block", object: "inline-block", video: "inline-block", audio: "inline-block", select: "inline-block", option: "block", optgroup: "block", search: "block" }; - an3 = "normal"; - un3 = { listing: "pre", plaintext: "pre", pre: "pre", xmp: "pre", nobr: "nowrap", table: "initial", textarea: "pre-wrap" }; - er4 = class { - constructor(e3) { - Vr4(this, R4, void 0); - Ur3(this, R4, new Set(e3)); - } - getLeadingWhitespaceCount(e3) { - let r3 = Y6(this, R4), n = 0; - for (let s3 = 0; s3 < e3.length && r3.has(e3.charAt(s3)); s3++) - n++; - return n; - } - getTrailingWhitespaceCount(e3) { - let r3 = Y6(this, R4), n = 0; - for (let s3 = e3.length - 1; s3 >= 0 && r3.has(e3.charAt(s3)); s3--) - n++; - return n; - } - getLeadingWhitespace(e3) { - let r3 = this.getLeadingWhitespaceCount(e3); - return e3.slice(0, r3); - } - getTrailingWhitespace(e3) { - let r3 = this.getTrailingWhitespaceCount(e3); - return e3.slice(e3.length - r3); - } - hasLeadingWhitespace(e3) { - return Y6(this, R4).has(e3.charAt(0)); - } - hasTrailingWhitespace(e3) { - return Y6(this, R4).has(ke6(false, e3, -1)); - } - trimStart(e3) { - let r3 = this.getLeadingWhitespaceCount(e3); - return e3.slice(r3); - } - trimEnd(e3) { - let r3 = this.getTrailingWhitespaceCount(e3); - return e3.slice(0, e3.length - r3); - } - trim(e3) { - return this.trimEnd(this.trimStart(e3)); - } - split(e3, r3 = false) { - let n = `[${Zt4([...Y6(this, R4)].join(""))}]+`, s3 = new RegExp(r3 ? `(${n})` : n); - return e3.split(s3); - } - hasWhitespaceCharacter(e3) { - let r3 = Y6(this, R4); - return Array.prototype.some.call(e3, (n) => r3.has(n)); - } - hasNonWhitespaceCharacter(e3) { - let r3 = Y6(this, R4); - return Array.prototype.some.call(e3, (n) => !r3.has(n)); - } - isWhitespaceOnly(e3) { - let r3 = Y6(this, R4); - return Array.prototype.every.call(e3, (n) => r3.has(n)); - } - }; - R4 = /* @__PURE__ */ new WeakMap(); - on3 = er4; - Xs4 = [" ", ` -`, "\f", "\r", " "]; - Js4 = new on3(Xs4); - z6 = Js4; - pe5 = Zs3; - ei4 = (t12) => v(false, t12, /^[\t\f\r ]*\n/g, ""); - tr4 = (t12) => ei4(z6.trimEnd(t12)); - ln3 = (t12) => { - let e3 = t12, r3 = z6.getLeadingWhitespace(e3); - r3 && (e3 = e3.slice(r3.length)); - let n = z6.getTrailingWhitespace(e3); - return n && (e3 = e3.slice(0, -n.length)), { leadingWhitespace: r3, trailingWhitespace: n, text: e3 }; - }; - mi3 = /* @__PURE__ */ new Set(["template", "style", "script"]); - gi3 = /-+([a-z0-9])/g; - ee5 = class t4 { - constructor(e3, r3, n, s3) { - this.file = e3, this.offset = r3, this.line = n, this.col = s3; - } - toString() { - return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url; - } - moveBy(e3) { - let r3 = this.file.content, n = r3.length, s3 = this.offset, i = this.line, a = this.col; - for (; s3 > 0 && e3 < 0; ) - if (s3--, e3++, r3.charCodeAt(s3) == 10) { - i--; - let o2 = r3.substring(0, s3 - 1).lastIndexOf(String.fromCharCode(10)); - a = o2 > 0 ? s3 - o2 : s3; - } else - a--; - for (; s3 < n && e3 > 0; ) { - let u = r3.charCodeAt(s3); - s3++, e3--, u == 10 ? (i++, a = 0) : a++; - } - return new t4(this.file, s3, i, a); - } - getContext(e3, r3) { - let n = this.file.content, s3 = this.offset; - if (s3 != null) { - s3 > n.length - 1 && (s3 = n.length - 1); - let i = s3, a = 0, u = 0; - for (; a < e3 && s3 > 0 && (s3--, a++, !(n[s3] == ` -` && ++u == r3)); ) - ; - for (a = 0, u = 0; a < e3 && i < n.length - 1 && (i++, a++, !(n[i] == ` -` && ++u == r3)); ) - ; - return { before: n.substring(s3, this.offset), after: n.substring(this.offset, i + 1) }; - } - return null; - } - }; - me5 = class { - constructor(e3, r3) { - this.content = e3, this.url = r3; - } - }; - m2 = class { - constructor(e3, r3, n = e3, s3 = null) { - this.start = e3, this.end = r3, this.fullStart = n, this.details = s3; - } - toString() { - return this.start.file.content.substring(this.start.offset, this.end.offset); - } - }; - (function(t12) { - t12[t12.WARNING = 0] = "WARNING", t12[t12.ERROR = 1] = "ERROR"; - })(At5 || (At5 = {})); - Pe5 = class { - constructor(e3, r3, n = At5.ERROR) { - this.span = e3, this.msg = r3, this.level = n; - } - contextualMessage() { - let e3 = this.span.start.getContext(100, 3); - return e3 ? `${this.msg} ("${e3.before}[${At5[this.level]} ->]${e3.after}")` : this.msg; - } - toString() { - let e3 = this.span.details ? `, ${this.span.details}` : ""; - return `${this.contextualMessage()}: ${this.span.start}${e3}`; - } - }; - Ci3 = [Ei3, Ai3, Di3, yi3, bi4, xi4, wi3, Ti3, ki3, vi4]; - kn3 = Si3; - Fn3 = Bi3; - Pn3 = new Proxy(() => { - }, { get: () => Pn3 }); - pr4 = Pn3; - Nn3 = Li3; - hr3 = /* @__PURE__ */ new WeakMap(); - Ne4 = $i3; - yt5 = Mi3; - Oi3 = /^[ \t\n\r\u000c]+/; - qi2 = /^[, \t\n\r\u000c]+/; - Hi3 = /^[^ \t\n\r\u000c]+/; - Vi2 = /[,]+$/; - $n3 = /^\d+$/; - Ui3 = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/; - Mn3 = Wi2; - On3 = { width: "w", height: "h", density: "x" }; - Yi2 = Object.keys(On3); - qn3 = Gi2; - Hn3 = ji3; - jn2 = Qi3; - fr4 = /{{(.+?)}}/s; - Zi4 = mr4({ parser: "__ng_action" }); - ea3 = mr4({ parser: "__ng_binding" }); - ta3 = mr4({ parser: "__ng_directive" }); - Qn2 = ra3; - Xn4 = na3; - Jn3 = ia3; - Je5 = null; - aa3 = 10; - for (let t12 = 0; t12 <= aa3; t12++) - Ze6(); - es4 = ua3; - oa3 = { "front-matter": [], root: ["children"], element: ["attrs", "children"], ieConditionalComment: ["children"], ieConditionalStartComment: [], ieConditionalEndComment: [], interpolation: ["children"], text: ["children"], docType: [], comment: [], attribute: [], cdata: [] }; - ts4 = oa3; - la3 = es4(ts4); - rs4 = la3; - pa3 = { preprocess: kn3, print: ca3, insertPragma: Ln3, massageAstNode: tn4, embed: Jn3, getVisitorKeys: rs4 }; - ns4 = pa3; - Nr5 = {}; - qr4(Nr5, { angular: () => su2, html: () => nu2, lwc: () => au2, vue: () => iu2 }); - _c2 = new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`, "g"); - (function(t12) { - t12[t12.Emulated = 0] = "Emulated", t12[t12.None = 2] = "None", t12[t12.ShadowDom = 3] = "ShadowDom"; - })(ss4 || (ss4 = {})); - (function(t12) { - t12[t12.OnPush = 0] = "OnPush", t12[t12.Default = 1] = "Default"; - })(is4 || (is4 = {})); - gr4 = { name: "custom-elements" }; - Cr4 = { name: "no-errors-schema" }; - (function(t12) { - t12[t12.NONE = 0] = "NONE", t12[t12.HTML = 1] = "HTML", t12[t12.STYLE = 2] = "STYLE", t12[t12.SCRIPT = 3] = "SCRIPT", t12[t12.URL = 4] = "URL", t12[t12.RESOURCE_URL = 5] = "RESOURCE_URL"; - })(j5 || (j5 = {})); - (function(t12) { - t12[t12.Error = 0] = "Error", t12[t12.Warning = 1] = "Warning", t12[t12.Ignore = 2] = "Ignore"; - })(as4 || (as4 = {})); - (function(t12) { - t12[t12.RAW_TEXT = 0] = "RAW_TEXT", t12[t12.ESCAPABLE_RAW_TEXT = 1] = "ESCAPABLE_RAW_TEXT", t12[t12.PARSABLE_DATA = 2] = "PARSABLE_DATA"; - })(L4 || (L4 = {})); - kt6 = class { - }; - ha3 = "boolean"; - fa3 = "number"; - ma2 = "string"; - da3 = "object"; - ga2 = ["[Element]|textContent,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColSpan,%ariaCurrent,%ariaDescription,%ariaDisabled,%ariaExpanded,%ariaHasPopup,%ariaHidden,%ariaKeyShortcuts,%ariaLabel,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored", "[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume", ":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex", ":svg:graphics^:svg:|", ":svg:animation^:svg:|*begin,*end,*repeat", ":svg:geometry^:svg:|", ":svg:componentTransferFunction^:svg:|", ":svg:gradient^:svg:|", ":svg:textContent^:svg:graphics|", ":svg:textPositioning^:svg:textContent|", "a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username", "area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username", "audio^media|", "br^[HTMLElement]|clear", "base^[HTMLElement]|href,target", "body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink", "button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value", "canvas^[HTMLElement]|#height,#width", "content^[HTMLElement]|select", "dl^[HTMLElement]|!compact", "data^[HTMLElement]|value", "datalist^[HTMLElement]|", "details^[HTMLElement]|!open", "dialog^[HTMLElement]|!open,returnValue", "dir^[HTMLElement]|!compact", "div^[HTMLElement]|align", "embed^[HTMLElement]|align,height,name,src,type,width", "fieldset^[HTMLElement]|!disabled,name", "font^[HTMLElement]|color,face,size", "form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target", "frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src", "frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows", "hr^[HTMLElement]|align,color,!noShade,size,width", "head^[HTMLElement]|", "h1,h2,h3,h4,h5,h6^[HTMLElement]|align", "html^[HTMLElement]|version", "iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width", "img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width", "input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width", "li^[HTMLElement]|type,#value", "label^[HTMLElement]|htmlFor", "legend^[HTMLElement]|align", "link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type", "map^[HTMLElement]|name", "marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width", "menu^[HTMLElement]|!compact", "meta^[HTMLElement]|content,httpEquiv,media,name,scheme", "meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value", "ins,del^[HTMLElement]|cite,dateTime", "ol^[HTMLElement]|!compact,!reversed,#start,type", "object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width", "optgroup^[HTMLElement]|!disabled,label", "option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value", "output^[HTMLElement]|defaultValue,%htmlFor,name,value", "p^[HTMLElement]|align", "param^[HTMLElement]|name,type,value,valueType", "picture^[HTMLElement]|", "pre^[HTMLElement]|#width", "progress^[HTMLElement]|#max,#value", "q,blockquote,cite^[HTMLElement]|", "script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type", "select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value", "slot^[HTMLElement]|name", "source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width", "span^[HTMLElement]|", "style^[HTMLElement]|!disabled,media,type", "caption^[HTMLElement]|align", "th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width", "col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width", "table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width", "tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign", "tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign", "template^[HTMLElement]|", "textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap", "time^[HTMLElement]|dateTime", "title^[HTMLElement]|text", "track^[HTMLElement]|!default,kind,label,src,srclang", "ul^[HTMLElement]|!compact,type", "unknown^[HTMLElement]|", "video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width", ":svg:a^:svg:graphics|", ":svg:animate^:svg:animation|", ":svg:animateMotion^:svg:animation|", ":svg:animateTransform^:svg:animation|", ":svg:circle^:svg:geometry|", ":svg:clipPath^:svg:graphics|", ":svg:defs^:svg:graphics|", ":svg:desc^:svg:|", ":svg:discard^:svg:|", ":svg:ellipse^:svg:geometry|", ":svg:feBlend^:svg:|", ":svg:feColorMatrix^:svg:|", ":svg:feComponentTransfer^:svg:|", ":svg:feComposite^:svg:|", ":svg:feConvolveMatrix^:svg:|", ":svg:feDiffuseLighting^:svg:|", ":svg:feDisplacementMap^:svg:|", ":svg:feDistantLight^:svg:|", ":svg:feDropShadow^:svg:|", ":svg:feFlood^:svg:|", ":svg:feFuncA^:svg:componentTransferFunction|", ":svg:feFuncB^:svg:componentTransferFunction|", ":svg:feFuncG^:svg:componentTransferFunction|", ":svg:feFuncR^:svg:componentTransferFunction|", ":svg:feGaussianBlur^:svg:|", ":svg:feImage^:svg:|", ":svg:feMerge^:svg:|", ":svg:feMergeNode^:svg:|", ":svg:feMorphology^:svg:|", ":svg:feOffset^:svg:|", ":svg:fePointLight^:svg:|", ":svg:feSpecularLighting^:svg:|", ":svg:feSpotLight^:svg:|", ":svg:feTile^:svg:|", ":svg:feTurbulence^:svg:|", ":svg:filter^:svg:|", ":svg:foreignObject^:svg:graphics|", ":svg:g^:svg:graphics|", ":svg:image^:svg:graphics|decoding", ":svg:line^:svg:geometry|", ":svg:linearGradient^:svg:gradient|", ":svg:mpath^:svg:|", ":svg:marker^:svg:|", ":svg:mask^:svg:|", ":svg:metadata^:svg:|", ":svg:path^:svg:geometry|", ":svg:pattern^:svg:|", ":svg:polygon^:svg:geometry|", ":svg:polyline^:svg:geometry|", ":svg:radialGradient^:svg:gradient|", ":svg:rect^:svg:geometry|", ":svg:svg^:svg:graphics|#currentScale,#zoomAndPan", ":svg:script^:svg:|type", ":svg:set^:svg:animation|", ":svg:stop^:svg:|", ":svg:style^:svg:|!disabled,media,title,type", ":svg:switch^:svg:graphics|", ":svg:symbol^:svg:|", ":svg:tspan^:svg:textPositioning|", ":svg:text^:svg:textPositioning|", ":svg:textPath^:svg:textContent|", ":svg:title^:svg:|", ":svg:use^:svg:graphics|", ":svg:view^:svg:|#zoomAndPan", "data^[HTMLElement]|value", "keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name", "menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default", "summary^[HTMLElement]|", "time^[HTMLElement]|dateTime", ":svg:cursor^:svg:|"]; - us3 = new Map(Object.entries({ class: "className", for: "htmlFor", formaction: "formAction", innerHtml: "innerHTML", readonly: "readOnly", tabindex: "tabIndex" })); - Ca2 = Array.from(us3).reduce((t12, [e3, r3]) => (t12.set(e3, r3), t12), /* @__PURE__ */ new Map()); - Bt5 = class extends kt6 { - constructor() { - super(), this._schema = /* @__PURE__ */ new Map(), this._eventSchema = /* @__PURE__ */ new Map(), ga2.forEach((e3) => { - let r3 = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), [s3, i] = e3.split("|"), a = i.split(","), [u, o2] = s3.split("^"); - u.split(",").forEach((l) => { - this._schema.set(l.toLowerCase(), r3), this._eventSchema.set(l.toLowerCase(), n); - }); - let p4 = o2 && this._schema.get(o2.toLowerCase()); - if (p4) { - for (let [l, f3] of p4) - r3.set(l, f3); - for (let l of this._eventSchema.get(o2.toLowerCase())) - n.add(l); - } - a.forEach((l) => { - if (l.length > 0) - switch (l[0]) { - case "*": - n.add(l.substring(1)); - break; - case "!": - r3.set(l.substring(1), ha3); - break; - case "#": - r3.set(l.substring(1), fa3); - break; - case "%": - r3.set(l.substring(1), da3); - break; - default: - r3.set(l, ma2); - } - }); - }); - } - hasProperty(e3, r3, n) { - if (n.some((i) => i.name === Cr4.name)) - return true; - if (e3.indexOf("-") > -1) { - if (Sr4(e3) || Er4(e3)) - return false; - if (n.some((i) => i.name === gr4.name)) - return true; - } - return (this._schema.get(e3.toLowerCase()) || this._schema.get("unknown")).has(r3); - } - hasElement(e3, r3) { - return r3.some((n) => n.name === Cr4.name) || e3.indexOf("-") > -1 && (Sr4(e3) || Er4(e3) || r3.some((n) => n.name === gr4.name)) ? true : this._schema.has(e3.toLowerCase()); - } - securityContext(e3, r3, n) { - n && (r3 = this.getMappedPropName(r3)), e3 = e3.toLowerCase(), r3 = r3.toLowerCase(); - let s3 = Ar4()[e3 + "|" + r3]; - return s3 || (s3 = Ar4()["*|" + r3], s3 || j5.NONE); - } - getMappedPropName(e3) { - return us3.get(e3) ?? e3; - } - getDefaultComponentElementName() { - return "ng-component"; - } - validateProperty(e3) { - return e3.toLowerCase().startsWith("on") ? { error: true, msg: `Binding to event property '${e3}' is disallowed for security reasons, please use (${e3.slice(2)})=... -If '${e3}' is a directive input, make sure the directive is imported by the current module.` } : { error: false }; - } - validateAttribute(e3) { - return e3.toLowerCase().startsWith("on") ? { error: true, msg: `Binding to event attribute '${e3}' is disallowed for security reasons, please use (${e3.slice(2)})=...` } : { error: false }; - } - allKnownElementNames() { - return Array.from(this._schema.keys()); - } - allKnownAttributesOfElement(e3) { - let r3 = this._schema.get(e3.toLowerCase()) || this._schema.get("unknown"); - return Array.from(r3.keys()).map((n) => Ca2.get(n) ?? n); - } - allKnownEventsOfElement(e3) { - return Array.from(this._eventSchema.get(e3.toLowerCase()) ?? []); - } - normalizeAnimationStyleProperty(e3) { - return xn3(e3); - } - normalizeAnimationStyleValue(e3, r3, n) { - let s3 = "", i = n.toString().trim(), a = null; - if (Sa2(e3) && n !== 0 && n !== "0") - if (typeof n == "number") - s3 = "px"; - else { - let u = n.match(/^[+-]?[\d\.]+([a-z]*)$/); - u && u[1].length == 0 && (a = `Please provide a CSS unit value for ${r3}:${n}`); - } - return { error: a, value: i + s3 }; - } - }; - h = class { - constructor({ closedByChildren: e3, implicitNamespacePrefix: r3, contentType: n = L4.PARSABLE_DATA, closedByParent: s3 = false, isVoid: i = false, ignoreFirstLf: a = false, preventNamespaceInheritance: u = false, canSelfClose: o2 = false } = {}) { - this.closedByChildren = {}, this.closedByParent = false, e3 && e3.length > 0 && e3.forEach((p4) => this.closedByChildren[p4] = true), this.isVoid = i, this.closedByParent = s3 || i, this.implicitNamespacePrefix = r3 || null, this.contentType = n, this.ignoreFirstLf = a, this.preventNamespaceInheritance = u, this.canSelfClose = o2 ?? i; - } - isClosedByChild(e3) { - return this.isVoid || e3.toLowerCase() in this.closedByChildren; - } - getContentType(e3) { - return typeof this.contentType == "object" ? (e3 === void 0 ? void 0 : this.contentType[e3]) ?? this.contentType.default : this.contentType; - } - }; - Ee2 = class { - constructor(e3, r3) { - this.sourceSpan = e3, this.i18n = r3; - } - }; - Lt6 = class extends Ee2 { - constructor(e3, r3, n, s3) { - super(r3, s3), this.value = e3, this.tokens = n, this.type = "text"; - } - visit(e3, r3) { - return e3.visitText(this, r3); - } - }; - Ft4 = class extends Ee2 { - constructor(e3, r3, n, s3) { - super(r3, s3), this.value = e3, this.tokens = n, this.type = "cdata"; - } - visit(e3, r3) { - return e3.visitCdata(this, r3); - } - }; - Pt5 = class extends Ee2 { - constructor(e3, r3, n, s3, i, a) { - super(s3, a), this.switchValue = e3, this.type = r3, this.cases = n, this.switchValueSourceSpan = i; - } - visit(e3, r3) { - return e3.visitExpansion(this, r3); - } - }; - Nt6 = class { - constructor(e3, r3, n, s3, i) { - this.value = e3, this.expression = r3, this.sourceSpan = n, this.valueSourceSpan = s3, this.expSourceSpan = i; - } - visit(e3, r3) { - return e3.visitExpansionCase(this, r3); - } - }; - It5 = class extends Ee2 { - constructor(e3, r3, n, s3, i, a, u) { - super(n, u), this.name = e3, this.value = r3, this.keySpan = s3, this.valueSpan = i, this.valueTokens = a, this.type = "attribute"; - } - visit(e3, r3) { - return e3.visitAttribute(this, r3); - } - get nameSpan() { - return this.keySpan; - } - }; - Rt5 = class extends Ee2 { - constructor(e3, r3, n, s3, i, a = null, u = null, o2) { - super(s3, o2), this.name = e3, this.attrs = r3, this.children = n, this.startSourceSpan = i, this.endSourceSpan = a, this.nameSpan = u, this.type = "element"; - } - visit(e3, r3) { - return e3.visitElement(this, r3); - } - }; - $t5 = class { - constructor(e3, r3) { - this.value = e3, this.sourceSpan = r3, this.type = "comment"; - } - visit(e3, r3) { - return e3.visitComment(this, r3); - } - }; - Mt4 = class { - constructor(e3, r3) { - this.value = e3, this.sourceSpan = r3, this.type = "docType"; - } - visit(e3, r3) { - return e3.visitDocType(this, r3); - } - }; - rt5 = class { - constructor() { - } - visitElement(e3, r3) { - this.visitChildren(r3, (n) => { - n(e3.attrs), n(e3.children); - }); - } - visitAttribute(e3, r3) { - } - visitText(e3, r3) { - } - visitCdata(e3, r3) { - } - visitComment(e3, r3) { - } - visitDocType(e3, r3) { - } - visitExpansion(e3, r3) { - return this.visitChildren(r3, (n) => { - n(e3.cases); - }); - } - visitExpansionCase(e3, r3) { - } - visitChildren(e3, r3) { - let n = [], s3 = this; - function i(a) { - a && n.push(Ot6(s3, a, e3)); - } - return r3(i), Array.prototype.concat.apply([], n); - } - }; - Me6 = { AElig: "\xC6", AMP: "&", amp: "&", Aacute: "\xC1", Abreve: "\u0102", Acirc: "\xC2", Acy: "\u0410", Afr: "\u{1D504}", Agrave: "\xC0", Alpha: "\u0391", Amacr: "\u0100", And: "\u2A53", Aogon: "\u0104", Aopf: "\u{1D538}", ApplyFunction: "\u2061", af: "\u2061", Aring: "\xC5", angst: "\xC5", Ascr: "\u{1D49C}", Assign: "\u2254", colone: "\u2254", coloneq: "\u2254", Atilde: "\xC3", Auml: "\xC4", Backslash: "\u2216", setminus: "\u2216", setmn: "\u2216", smallsetminus: "\u2216", ssetmn: "\u2216", Barv: "\u2AE7", Barwed: "\u2306", doublebarwedge: "\u2306", Bcy: "\u0411", Because: "\u2235", becaus: "\u2235", because: "\u2235", Bernoullis: "\u212C", Bscr: "\u212C", bernou: "\u212C", Beta: "\u0392", Bfr: "\u{1D505}", Bopf: "\u{1D539}", Breve: "\u02D8", breve: "\u02D8", Bumpeq: "\u224E", HumpDownHump: "\u224E", bump: "\u224E", CHcy: "\u0427", COPY: "\xA9", copy: "\xA9", Cacute: "\u0106", Cap: "\u22D2", CapitalDifferentialD: "\u2145", DD: "\u2145", Cayleys: "\u212D", Cfr: "\u212D", Ccaron: "\u010C", Ccedil: "\xC7", Ccirc: "\u0108", Cconint: "\u2230", Cdot: "\u010A", Cedilla: "\xB8", cedil: "\xB8", CenterDot: "\xB7", centerdot: "\xB7", middot: "\xB7", Chi: "\u03A7", CircleDot: "\u2299", odot: "\u2299", CircleMinus: "\u2296", ominus: "\u2296", CirclePlus: "\u2295", oplus: "\u2295", CircleTimes: "\u2297", otimes: "\u2297", ClockwiseContourIntegral: "\u2232", cwconint: "\u2232", CloseCurlyDoubleQuote: "\u201D", rdquo: "\u201D", rdquor: "\u201D", CloseCurlyQuote: "\u2019", rsquo: "\u2019", rsquor: "\u2019", Colon: "\u2237", Proportion: "\u2237", Colone: "\u2A74", Congruent: "\u2261", equiv: "\u2261", Conint: "\u222F", DoubleContourIntegral: "\u222F", ContourIntegral: "\u222E", conint: "\u222E", oint: "\u222E", Copf: "\u2102", complexes: "\u2102", Coproduct: "\u2210", coprod: "\u2210", CounterClockwiseContourIntegral: "\u2233", awconint: "\u2233", Cross: "\u2A2F", Cscr: "\u{1D49E}", Cup: "\u22D3", CupCap: "\u224D", asympeq: "\u224D", DDotrahd: "\u2911", DJcy: "\u0402", DScy: "\u0405", DZcy: "\u040F", Dagger: "\u2021", ddagger: "\u2021", Darr: "\u21A1", Dashv: "\u2AE4", DoubleLeftTee: "\u2AE4", Dcaron: "\u010E", Dcy: "\u0414", Del: "\u2207", nabla: "\u2207", Delta: "\u0394", Dfr: "\u{1D507}", DiacriticalAcute: "\xB4", acute: "\xB4", DiacriticalDot: "\u02D9", dot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", dblac: "\u02DD", DiacriticalGrave: "`", grave: "`", DiacriticalTilde: "\u02DC", tilde: "\u02DC", Diamond: "\u22C4", diam: "\u22C4", diamond: "\u22C4", DifferentialD: "\u2146", dd: "\u2146", Dopf: "\u{1D53B}", Dot: "\xA8", DoubleDot: "\xA8", die: "\xA8", uml: "\xA8", DotDot: "\u20DC", DotEqual: "\u2250", doteq: "\u2250", esdot: "\u2250", DoubleDownArrow: "\u21D3", Downarrow: "\u21D3", dArr: "\u21D3", DoubleLeftArrow: "\u21D0", Leftarrow: "\u21D0", lArr: "\u21D0", DoubleLeftRightArrow: "\u21D4", Leftrightarrow: "\u21D4", hArr: "\u21D4", iff: "\u21D4", DoubleLongLeftArrow: "\u27F8", Longleftarrow: "\u27F8", xlArr: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", Longleftrightarrow: "\u27FA", xhArr: "\u27FA", DoubleLongRightArrow: "\u27F9", Longrightarrow: "\u27F9", xrArr: "\u27F9", DoubleRightArrow: "\u21D2", Implies: "\u21D2", Rightarrow: "\u21D2", rArr: "\u21D2", DoubleRightTee: "\u22A8", vDash: "\u22A8", DoubleUpArrow: "\u21D1", Uparrow: "\u21D1", uArr: "\u21D1", DoubleUpDownArrow: "\u21D5", Updownarrow: "\u21D5", vArr: "\u21D5", DoubleVerticalBar: "\u2225", par: "\u2225", parallel: "\u2225", shortparallel: "\u2225", spar: "\u2225", DownArrow: "\u2193", ShortDownArrow: "\u2193", darr: "\u2193", downarrow: "\u2193", DownArrowBar: "\u2913", DownArrowUpArrow: "\u21F5", duarr: "\u21F5", DownBreve: "\u0311", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVector: "\u21BD", leftharpoondown: "\u21BD", lhard: "\u21BD", DownLeftVectorBar: "\u2956", DownRightTeeVector: "\u295F", DownRightVector: "\u21C1", rhard: "\u21C1", rightharpoondown: "\u21C1", DownRightVectorBar: "\u2957", DownTee: "\u22A4", top: "\u22A4", DownTeeArrow: "\u21A7", mapstodown: "\u21A7", Dscr: "\u{1D49F}", Dstrok: "\u0110", ENG: "\u014A", ETH: "\xD0", Eacute: "\xC9", Ecaron: "\u011A", Ecirc: "\xCA", Ecy: "\u042D", Edot: "\u0116", Efr: "\u{1D508}", Egrave: "\xC8", Element: "\u2208", in: "\u2208", isin: "\u2208", isinv: "\u2208", Emacr: "\u0112", EmptySmallSquare: "\u25FB", EmptyVerySmallSquare: "\u25AB", Eogon: "\u0118", Eopf: "\u{1D53C}", Epsilon: "\u0395", Equal: "\u2A75", EqualTilde: "\u2242", eqsim: "\u2242", esim: "\u2242", Equilibrium: "\u21CC", rightleftharpoons: "\u21CC", rlhar: "\u21CC", Escr: "\u2130", expectation: "\u2130", Esim: "\u2A73", Eta: "\u0397", Euml: "\xCB", Exists: "\u2203", exist: "\u2203", ExponentialE: "\u2147", ee: "\u2147", exponentiale: "\u2147", Fcy: "\u0424", Ffr: "\u{1D509}", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", blacksquare: "\u25AA", squarf: "\u25AA", squf: "\u25AA", Fopf: "\u{1D53D}", ForAll: "\u2200", forall: "\u2200", Fouriertrf: "\u2131", Fscr: "\u2131", GJcy: "\u0403", GT: ">", gt: ">", Gamma: "\u0393", Gammad: "\u03DC", Gbreve: "\u011E", Gcedil: "\u0122", Gcirc: "\u011C", Gcy: "\u0413", Gdot: "\u0120", Gfr: "\u{1D50A}", Gg: "\u22D9", ggg: "\u22D9", Gopf: "\u{1D53E}", GreaterEqual: "\u2265", ge: "\u2265", geq: "\u2265", GreaterEqualLess: "\u22DB", gel: "\u22DB", gtreqless: "\u22DB", GreaterFullEqual: "\u2267", gE: "\u2267", geqq: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", gl: "\u2277", gtrless: "\u2277", GreaterSlantEqual: "\u2A7E", geqslant: "\u2A7E", ges: "\u2A7E", GreaterTilde: "\u2273", gsim: "\u2273", gtrsim: "\u2273", Gscr: "\u{1D4A2}", Gt: "\u226B", NestedGreaterGreater: "\u226B", gg: "\u226B", HARDcy: "\u042A", Hacek: "\u02C7", caron: "\u02C7", Hat: "^", Hcirc: "\u0124", Hfr: "\u210C", Poincareplane: "\u210C", HilbertSpace: "\u210B", Hscr: "\u210B", hamilt: "\u210B", Hopf: "\u210D", quaternions: "\u210D", HorizontalLine: "\u2500", boxh: "\u2500", Hstrok: "\u0126", HumpEqual: "\u224F", bumpe: "\u224F", bumpeq: "\u224F", IEcy: "\u0415", IJlig: "\u0132", IOcy: "\u0401", Iacute: "\xCD", Icirc: "\xCE", Icy: "\u0418", Idot: "\u0130", Ifr: "\u2111", Im: "\u2111", image: "\u2111", imagpart: "\u2111", Igrave: "\xCC", Imacr: "\u012A", ImaginaryI: "\u2148", ii: "\u2148", Int: "\u222C", Integral: "\u222B", int: "\u222B", Intersection: "\u22C2", bigcap: "\u22C2", xcap: "\u22C2", InvisibleComma: "\u2063", ic: "\u2063", InvisibleTimes: "\u2062", it: "\u2062", Iogon: "\u012E", Iopf: "\u{1D540}", Iota: "\u0399", Iscr: "\u2110", imagline: "\u2110", Itilde: "\u0128", Iukcy: "\u0406", Iuml: "\xCF", Jcirc: "\u0134", Jcy: "\u0419", Jfr: "\u{1D50D}", Jopf: "\u{1D541}", Jscr: "\u{1D4A5}", Jsercy: "\u0408", Jukcy: "\u0404", KHcy: "\u0425", KJcy: "\u040C", Kappa: "\u039A", Kcedil: "\u0136", Kcy: "\u041A", Kfr: "\u{1D50E}", Kopf: "\u{1D542}", Kscr: "\u{1D4A6}", LJcy: "\u0409", LT: "<", lt: "<", Lacute: "\u0139", Lambda: "\u039B", Lang: "\u27EA", Laplacetrf: "\u2112", Lscr: "\u2112", lagran: "\u2112", Larr: "\u219E", twoheadleftarrow: "\u219E", Lcaron: "\u013D", Lcedil: "\u013B", Lcy: "\u041B", LeftAngleBracket: "\u27E8", lang: "\u27E8", langle: "\u27E8", LeftArrow: "\u2190", ShortLeftArrow: "\u2190", larr: "\u2190", leftarrow: "\u2190", slarr: "\u2190", LeftArrowBar: "\u21E4", larrb: "\u21E4", LeftArrowRightArrow: "\u21C6", leftrightarrows: "\u21C6", lrarr: "\u21C6", LeftCeiling: "\u2308", lceil: "\u2308", LeftDoubleBracket: "\u27E6", lobrk: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVector: "\u21C3", dharl: "\u21C3", downharpoonleft: "\u21C3", LeftDownVectorBar: "\u2959", LeftFloor: "\u230A", lfloor: "\u230A", LeftRightArrow: "\u2194", harr: "\u2194", leftrightarrow: "\u2194", LeftRightVector: "\u294E", LeftTee: "\u22A3", dashv: "\u22A3", LeftTeeArrow: "\u21A4", mapstoleft: "\u21A4", LeftTeeVector: "\u295A", LeftTriangle: "\u22B2", vartriangleleft: "\u22B2", vltri: "\u22B2", LeftTriangleBar: "\u29CF", LeftTriangleEqual: "\u22B4", ltrie: "\u22B4", trianglelefteq: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVector: "\u21BF", uharl: "\u21BF", upharpoonleft: "\u21BF", LeftUpVectorBar: "\u2958", LeftVector: "\u21BC", leftharpoonup: "\u21BC", lharu: "\u21BC", LeftVectorBar: "\u2952", LessEqualGreater: "\u22DA", leg: "\u22DA", lesseqgtr: "\u22DA", LessFullEqual: "\u2266", lE: "\u2266", leqq: "\u2266", LessGreater: "\u2276", lessgtr: "\u2276", lg: "\u2276", LessLess: "\u2AA1", LessSlantEqual: "\u2A7D", leqslant: "\u2A7D", les: "\u2A7D", LessTilde: "\u2272", lesssim: "\u2272", lsim: "\u2272", Lfr: "\u{1D50F}", Ll: "\u22D8", Lleftarrow: "\u21DA", lAarr: "\u21DA", Lmidot: "\u013F", LongLeftArrow: "\u27F5", longleftarrow: "\u27F5", xlarr: "\u27F5", LongLeftRightArrow: "\u27F7", longleftrightarrow: "\u27F7", xharr: "\u27F7", LongRightArrow: "\u27F6", longrightarrow: "\u27F6", xrarr: "\u27F6", Lopf: "\u{1D543}", LowerLeftArrow: "\u2199", swarr: "\u2199", swarrow: "\u2199", LowerRightArrow: "\u2198", searr: "\u2198", searrow: "\u2198", Lsh: "\u21B0", lsh: "\u21B0", Lstrok: "\u0141", Lt: "\u226A", NestedLessLess: "\u226A", ll: "\u226A", Map: "\u2905", Mcy: "\u041C", MediumSpace: "\u205F", Mellintrf: "\u2133", Mscr: "\u2133", phmmat: "\u2133", Mfr: "\u{1D510}", MinusPlus: "\u2213", mnplus: "\u2213", mp: "\u2213", Mopf: "\u{1D544}", Mu: "\u039C", NJcy: "\u040A", Nacute: "\u0143", Ncaron: "\u0147", Ncedil: "\u0145", Ncy: "\u041D", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", ZeroWidthSpace: "\u200B", NewLine: ` -`, Nfr: "\u{1D511}", NoBreak: "\u2060", NonBreakingSpace: "\xA0", nbsp: "\xA0", Nopf: "\u2115", naturals: "\u2115", Not: "\u2AEC", NotCongruent: "\u2262", nequiv: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", npar: "\u2226", nparallel: "\u2226", nshortparallel: "\u2226", nspar: "\u2226", NotElement: "\u2209", notin: "\u2209", notinva: "\u2209", NotEqual: "\u2260", ne: "\u2260", NotEqualTilde: "\u2242\u0338", nesim: "\u2242\u0338", NotExists: "\u2204", nexist: "\u2204", nexists: "\u2204", NotGreater: "\u226F", ngt: "\u226F", ngtr: "\u226F", NotGreaterEqual: "\u2271", nge: "\u2271", ngeq: "\u2271", NotGreaterFullEqual: "\u2267\u0338", ngE: "\u2267\u0338", ngeqq: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", nGtv: "\u226B\u0338", NotGreaterLess: "\u2279", ntgl: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", NotGreaterTilde: "\u2275", ngsim: "\u2275", NotHumpDownHump: "\u224E\u0338", nbump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", nbumpe: "\u224F\u0338", NotLeftTriangle: "\u22EA", nltri: "\u22EA", ntriangleleft: "\u22EA", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangleEqual: "\u22EC", nltrie: "\u22EC", ntrianglelefteq: "\u22EC", NotLess: "\u226E", nless: "\u226E", nlt: "\u226E", NotLessEqual: "\u2270", nle: "\u2270", nleq: "\u2270", NotLessGreater: "\u2278", ntlg: "\u2278", NotLessLess: "\u226A\u0338", nLtv: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", NotLessTilde: "\u2274", nlsim: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", NotPrecedes: "\u2280", npr: "\u2280", nprec: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", npre: "\u2AAF\u0338", npreceq: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", nprcue: "\u22E0", NotReverseElement: "\u220C", notni: "\u220C", notniva: "\u220C", NotRightTriangle: "\u22EB", nrtri: "\u22EB", ntriangleright: "\u22EB", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangleEqual: "\u22ED", nrtrie: "\u22ED", ntrianglerighteq: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", nsqsube: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", nsqsupe: "\u22E3", NotSubset: "\u2282\u20D2", nsubset: "\u2282\u20D2", vnsub: "\u2282\u20D2", NotSubsetEqual: "\u2288", nsube: "\u2288", nsubseteq: "\u2288", NotSucceeds: "\u2281", nsc: "\u2281", nsucc: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", nsce: "\u2AB0\u0338", nsucceq: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", nsccue: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", nsupset: "\u2283\u20D2", vnsup: "\u2283\u20D2", NotSupersetEqual: "\u2289", nsupe: "\u2289", nsupseteq: "\u2289", NotTilde: "\u2241", nsim: "\u2241", NotTildeEqual: "\u2244", nsime: "\u2244", nsimeq: "\u2244", NotTildeFullEqual: "\u2247", ncong: "\u2247", NotTildeTilde: "\u2249", nap: "\u2249", napprox: "\u2249", NotVerticalBar: "\u2224", nmid: "\u2224", nshortmid: "\u2224", nsmid: "\u2224", Nscr: "\u{1D4A9}", Ntilde: "\xD1", Nu: "\u039D", OElig: "\u0152", Oacute: "\xD3", Ocirc: "\xD4", Ocy: "\u041E", Odblac: "\u0150", Ofr: "\u{1D512}", Ograve: "\xD2", Omacr: "\u014C", Omega: "\u03A9", ohm: "\u03A9", Omicron: "\u039F", Oopf: "\u{1D546}", OpenCurlyDoubleQuote: "\u201C", ldquo: "\u201C", OpenCurlyQuote: "\u2018", lsquo: "\u2018", Or: "\u2A54", Oscr: "\u{1D4AA}", Oslash: "\xD8", Otilde: "\xD5", Otimes: "\u2A37", Ouml: "\xD6", OverBar: "\u203E", oline: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", tbrk: "\u23B4", OverParenthesis: "\u23DC", PartialD: "\u2202", part: "\u2202", Pcy: "\u041F", Pfr: "\u{1D513}", Phi: "\u03A6", Pi: "\u03A0", PlusMinus: "\xB1", plusmn: "\xB1", pm: "\xB1", Popf: "\u2119", primes: "\u2119", Pr: "\u2ABB", Precedes: "\u227A", pr: "\u227A", prec: "\u227A", PrecedesEqual: "\u2AAF", pre: "\u2AAF", preceq: "\u2AAF", PrecedesSlantEqual: "\u227C", prcue: "\u227C", preccurlyeq: "\u227C", PrecedesTilde: "\u227E", precsim: "\u227E", prsim: "\u227E", Prime: "\u2033", Product: "\u220F", prod: "\u220F", Proportional: "\u221D", prop: "\u221D", propto: "\u221D", varpropto: "\u221D", vprop: "\u221D", Pscr: "\u{1D4AB}", Psi: "\u03A8", QUOT: '"', quot: '"', Qfr: "\u{1D514}", Qopf: "\u211A", rationals: "\u211A", Qscr: "\u{1D4AC}", RBarr: "\u2910", drbkarow: "\u2910", REG: "\xAE", circledR: "\xAE", reg: "\xAE", Racute: "\u0154", Rang: "\u27EB", Rarr: "\u21A0", twoheadrightarrow: "\u21A0", Rarrtl: "\u2916", Rcaron: "\u0158", Rcedil: "\u0156", Rcy: "\u0420", Re: "\u211C", Rfr: "\u211C", real: "\u211C", realpart: "\u211C", ReverseElement: "\u220B", SuchThat: "\u220B", ni: "\u220B", niv: "\u220B", ReverseEquilibrium: "\u21CB", leftrightharpoons: "\u21CB", lrhar: "\u21CB", ReverseUpEquilibrium: "\u296F", duhar: "\u296F", Rho: "\u03A1", RightAngleBracket: "\u27E9", rang: "\u27E9", rangle: "\u27E9", RightArrow: "\u2192", ShortRightArrow: "\u2192", rarr: "\u2192", rightarrow: "\u2192", srarr: "\u2192", RightArrowBar: "\u21E5", rarrb: "\u21E5", RightArrowLeftArrow: "\u21C4", rightleftarrows: "\u21C4", rlarr: "\u21C4", RightCeiling: "\u2309", rceil: "\u2309", RightDoubleBracket: "\u27E7", robrk: "\u27E7", RightDownTeeVector: "\u295D", RightDownVector: "\u21C2", dharr: "\u21C2", downharpoonright: "\u21C2", RightDownVectorBar: "\u2955", RightFloor: "\u230B", rfloor: "\u230B", RightTee: "\u22A2", vdash: "\u22A2", RightTeeArrow: "\u21A6", map: "\u21A6", mapsto: "\u21A6", RightTeeVector: "\u295B", RightTriangle: "\u22B3", vartriangleright: "\u22B3", vrtri: "\u22B3", RightTriangleBar: "\u29D0", RightTriangleEqual: "\u22B5", rtrie: "\u22B5", trianglerighteq: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVector: "\u21BE", uharr: "\u21BE", upharpoonright: "\u21BE", RightUpVectorBar: "\u2954", RightVector: "\u21C0", rharu: "\u21C0", rightharpoonup: "\u21C0", RightVectorBar: "\u2953", Ropf: "\u211D", reals: "\u211D", RoundImplies: "\u2970", Rrightarrow: "\u21DB", rAarr: "\u21DB", Rscr: "\u211B", realine: "\u211B", Rsh: "\u21B1", rsh: "\u21B1", RuleDelayed: "\u29F4", SHCHcy: "\u0429", SHcy: "\u0428", SOFTcy: "\u042C", Sacute: "\u015A", Sc: "\u2ABC", Scaron: "\u0160", Scedil: "\u015E", Scirc: "\u015C", Scy: "\u0421", Sfr: "\u{1D516}", ShortUpArrow: "\u2191", UpArrow: "\u2191", uarr: "\u2191", uparrow: "\u2191", Sigma: "\u03A3", SmallCircle: "\u2218", compfn: "\u2218", Sopf: "\u{1D54A}", Sqrt: "\u221A", radic: "\u221A", Square: "\u25A1", squ: "\u25A1", square: "\u25A1", SquareIntersection: "\u2293", sqcap: "\u2293", SquareSubset: "\u228F", sqsub: "\u228F", sqsubset: "\u228F", SquareSubsetEqual: "\u2291", sqsube: "\u2291", sqsubseteq: "\u2291", SquareSuperset: "\u2290", sqsup: "\u2290", sqsupset: "\u2290", SquareSupersetEqual: "\u2292", sqsupe: "\u2292", sqsupseteq: "\u2292", SquareUnion: "\u2294", sqcup: "\u2294", Sscr: "\u{1D4AE}", Star: "\u22C6", sstarf: "\u22C6", Sub: "\u22D0", Subset: "\u22D0", SubsetEqual: "\u2286", sube: "\u2286", subseteq: "\u2286", Succeeds: "\u227B", sc: "\u227B", succ: "\u227B", SucceedsEqual: "\u2AB0", sce: "\u2AB0", succeq: "\u2AB0", SucceedsSlantEqual: "\u227D", sccue: "\u227D", succcurlyeq: "\u227D", SucceedsTilde: "\u227F", scsim: "\u227F", succsim: "\u227F", Sum: "\u2211", sum: "\u2211", Sup: "\u22D1", Supset: "\u22D1", Superset: "\u2283", sup: "\u2283", supset: "\u2283", SupersetEqual: "\u2287", supe: "\u2287", supseteq: "\u2287", THORN: "\xDE", TRADE: "\u2122", trade: "\u2122", TSHcy: "\u040B", TScy: "\u0426", Tab: " ", Tau: "\u03A4", Tcaron: "\u0164", Tcedil: "\u0162", Tcy: "\u0422", Tfr: "\u{1D517}", Therefore: "\u2234", there4: "\u2234", therefore: "\u2234", Theta: "\u0398", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", thinsp: "\u2009", Tilde: "\u223C", sim: "\u223C", thicksim: "\u223C", thksim: "\u223C", TildeEqual: "\u2243", sime: "\u2243", simeq: "\u2243", TildeFullEqual: "\u2245", cong: "\u2245", TildeTilde: "\u2248", ap: "\u2248", approx: "\u2248", asymp: "\u2248", thickapprox: "\u2248", thkap: "\u2248", Topf: "\u{1D54B}", TripleDot: "\u20DB", tdot: "\u20DB", Tscr: "\u{1D4AF}", Tstrok: "\u0166", Uacute: "\xDA", Uarr: "\u219F", Uarrocir: "\u2949", Ubrcy: "\u040E", Ubreve: "\u016C", Ucirc: "\xDB", Ucy: "\u0423", Udblac: "\u0170", Ufr: "\u{1D518}", Ugrave: "\xD9", Umacr: "\u016A", UnderBar: "_", lowbar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", bbrk: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", bigcup: "\u22C3", xcup: "\u22C3", UnionPlus: "\u228E", uplus: "\u228E", Uogon: "\u0172", Uopf: "\u{1D54C}", UpArrowBar: "\u2912", UpArrowDownArrow: "\u21C5", udarr: "\u21C5", UpDownArrow: "\u2195", updownarrow: "\u2195", varr: "\u2195", UpEquilibrium: "\u296E", udhar: "\u296E", UpTee: "\u22A5", bot: "\u22A5", bottom: "\u22A5", perp: "\u22A5", UpTeeArrow: "\u21A5", mapstoup: "\u21A5", UpperLeftArrow: "\u2196", nwarr: "\u2196", nwarrow: "\u2196", UpperRightArrow: "\u2197", nearr: "\u2197", nearrow: "\u2197", Upsi: "\u03D2", upsih: "\u03D2", Upsilon: "\u03A5", Uring: "\u016E", Uscr: "\u{1D4B0}", Utilde: "\u0168", Uuml: "\xDC", VDash: "\u22AB", Vbar: "\u2AEB", Vcy: "\u0412", Vdash: "\u22A9", Vdashl: "\u2AE6", Vee: "\u22C1", bigvee: "\u22C1", xvee: "\u22C1", Verbar: "\u2016", Vert: "\u2016", VerticalBar: "\u2223", mid: "\u2223", shortmid: "\u2223", smid: "\u2223", VerticalLine: "|", verbar: "|", vert: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", wr: "\u2240", wreath: "\u2240", VeryThinSpace: "\u200A", hairsp: "\u200A", Vfr: "\u{1D519}", Vopf: "\u{1D54D}", Vscr: "\u{1D4B1}", Vvdash: "\u22AA", Wcirc: "\u0174", Wedge: "\u22C0", bigwedge: "\u22C0", xwedge: "\u22C0", Wfr: "\u{1D51A}", Wopf: "\u{1D54E}", Wscr: "\u{1D4B2}", Xfr: "\u{1D51B}", Xi: "\u039E", Xopf: "\u{1D54F}", Xscr: "\u{1D4B3}", YAcy: "\u042F", YIcy: "\u0407", YUcy: "\u042E", Yacute: "\xDD", Ycirc: "\u0176", Ycy: "\u042B", Yfr: "\u{1D51C}", Yopf: "\u{1D550}", Yscr: "\u{1D4B4}", Yuml: "\u0178", ZHcy: "\u0416", Zacute: "\u0179", Zcaron: "\u017D", Zcy: "\u0417", Zdot: "\u017B", Zeta: "\u0396", Zfr: "\u2128", zeetrf: "\u2128", Zopf: "\u2124", integers: "\u2124", Zscr: "\u{1D4B5}", aacute: "\xE1", abreve: "\u0103", ac: "\u223E", mstpos: "\u223E", acE: "\u223E\u0333", acd: "\u223F", acirc: "\xE2", acy: "\u0430", aelig: "\xE6", afr: "\u{1D51E}", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", alpha: "\u03B1", amacr: "\u0101", amalg: "\u2A3F", and: "\u2227", wedge: "\u2227", andand: "\u2A55", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", angle: "\u2220", ange: "\u29A4", angmsd: "\u2221", measuredangle: "\u2221", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angzarr: "\u237C", aogon: "\u0105", aopf: "\u{1D552}", apE: "\u2A70", apacir: "\u2A6F", ape: "\u224A", approxeq: "\u224A", apid: "\u224B", apos: "'", aring: "\xE5", ascr: "\u{1D4B6}", ast: "*", midast: "*", atilde: "\xE3", auml: "\xE4", awint: "\u2A11", bNot: "\u2AED", backcong: "\u224C", bcong: "\u224C", backepsilon: "\u03F6", bepsi: "\u03F6", backprime: "\u2035", bprime: "\u2035", backsim: "\u223D", bsim: "\u223D", backsimeq: "\u22CD", bsime: "\u22CD", barvee: "\u22BD", barwed: "\u2305", barwedge: "\u2305", bbrktbrk: "\u23B6", bcy: "\u0431", bdquo: "\u201E", ldquor: "\u201E", bemptyv: "\u29B0", beta: "\u03B2", beth: "\u2136", between: "\u226C", twixt: "\u226C", bfr: "\u{1D51F}", bigcirc: "\u25EF", xcirc: "\u25EF", bigodot: "\u2A00", xodot: "\u2A00", bigoplus: "\u2A01", xoplus: "\u2A01", bigotimes: "\u2A02", xotime: "\u2A02", bigsqcup: "\u2A06", xsqcup: "\u2A06", bigstar: "\u2605", starf: "\u2605", bigtriangledown: "\u25BD", xdtri: "\u25BD", bigtriangleup: "\u25B3", xutri: "\u25B3", biguplus: "\u2A04", xuplus: "\u2A04", bkarow: "\u290D", rbarr: "\u290D", blacklozenge: "\u29EB", lozf: "\u29EB", blacktriangle: "\u25B4", utrif: "\u25B4", blacktriangledown: "\u25BE", dtrif: "\u25BE", blacktriangleleft: "\u25C2", ltrif: "\u25C2", blacktriangleright: "\u25B8", rtrif: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bnot: "\u2310", bopf: "\u{1D553}", bowtie: "\u22C8", boxDL: "\u2557", boxDR: "\u2554", boxDl: "\u2556", boxDr: "\u2553", boxH: "\u2550", boxHD: "\u2566", boxHU: "\u2569", boxHd: "\u2564", boxHu: "\u2567", boxUL: "\u255D", boxUR: "\u255A", boxUl: "\u255C", boxUr: "\u2559", boxV: "\u2551", boxVH: "\u256C", boxVL: "\u2563", boxVR: "\u2560", boxVh: "\u256B", boxVl: "\u2562", boxVr: "\u255F", boxbox: "\u29C9", boxdL: "\u2555", boxdR: "\u2552", boxdl: "\u2510", boxdr: "\u250C", boxhD: "\u2565", boxhU: "\u2568", boxhd: "\u252C", boxhu: "\u2534", boxminus: "\u229F", minusb: "\u229F", boxplus: "\u229E", plusb: "\u229E", boxtimes: "\u22A0", timesb: "\u22A0", boxuL: "\u255B", boxuR: "\u2558", boxul: "\u2518", boxur: "\u2514", boxv: "\u2502", boxvH: "\u256A", boxvL: "\u2561", boxvR: "\u255E", boxvh: "\u253C", boxvl: "\u2524", boxvr: "\u251C", brvbar: "\xA6", bscr: "\u{1D4B7}", bsemi: "\u204F", bsol: "\\", bsolb: "\u29C5", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bumpE: "\u2AAE", cacute: "\u0107", cap: "\u2229", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", capcup: "\u2A47", capdot: "\u2A40", caps: "\u2229\uFE00", caret: "\u2041", ccaps: "\u2A4D", ccaron: "\u010D", ccedil: "\xE7", ccirc: "\u0109", ccups: "\u2A4C", ccupssm: "\u2A50", cdot: "\u010B", cemptyv: "\u29B2", cent: "\xA2", cfr: "\u{1D520}", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", chi: "\u03C7", cir: "\u25CB", cirE: "\u29C3", circ: "\u02C6", circeq: "\u2257", cire: "\u2257", circlearrowleft: "\u21BA", olarr: "\u21BA", circlearrowright: "\u21BB", orarr: "\u21BB", circledS: "\u24C8", oS: "\u24C8", circledast: "\u229B", oast: "\u229B", circledcirc: "\u229A", ocir: "\u229A", circleddash: "\u229D", odash: "\u229D", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", clubs: "\u2663", clubsuit: "\u2663", colon: ":", comma: ",", commat: "@", comp: "\u2201", complement: "\u2201", congdot: "\u2A6D", copf: "\u{1D554}", copysr: "\u2117", crarr: "\u21B5", cross: "\u2717", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", curlyeqprec: "\u22DE", cuesc: "\u22DF", curlyeqsucc: "\u22DF", cularr: "\u21B6", curvearrowleft: "\u21B6", cularrp: "\u293D", cup: "\u222A", cupbrcap: "\u2A48", cupcap: "\u2A46", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curvearrowright: "\u21B7", curarrm: "\u293C", curlyvee: "\u22CE", cuvee: "\u22CE", curlywedge: "\u22CF", cuwed: "\u22CF", curren: "\xA4", cwint: "\u2231", cylcty: "\u232D", dHar: "\u2965", dagger: "\u2020", daleth: "\u2138", dash: "\u2010", hyphen: "\u2010", dbkarow: "\u290F", rBarr: "\u290F", dcaron: "\u010F", dcy: "\u0434", ddarr: "\u21CA", downdownarrows: "\u21CA", ddotseq: "\u2A77", eDDot: "\u2A77", deg: "\xB0", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", dfr: "\u{1D521}", diamondsuit: "\u2666", diams: "\u2666", digamma: "\u03DD", gammad: "\u03DD", disin: "\u22F2", div: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", djcy: "\u0452", dlcorn: "\u231E", llcorner: "\u231E", dlcrop: "\u230D", dollar: "$", dopf: "\u{1D555}", doteqdot: "\u2251", eDot: "\u2251", dotminus: "\u2238", minusd: "\u2238", dotplus: "\u2214", plusdo: "\u2214", dotsquare: "\u22A1", sdotb: "\u22A1", drcorn: "\u231F", lrcorner: "\u231F", drcrop: "\u230C", dscr: "\u{1D4B9}", dscy: "\u0455", dsol: "\u29F6", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", triangledown: "\u25BF", dwangle: "\u29A6", dzcy: "\u045F", dzigrarr: "\u27FF", eacute: "\xE9", easter: "\u2A6E", ecaron: "\u011B", ecir: "\u2256", eqcirc: "\u2256", ecirc: "\xEA", ecolon: "\u2255", eqcolon: "\u2255", ecy: "\u044D", edot: "\u0117", efDot: "\u2252", fallingdotseq: "\u2252", efr: "\u{1D522}", eg: "\u2A9A", egrave: "\xE8", egs: "\u2A96", eqslantgtr: "\u2A96", egsdot: "\u2A98", el: "\u2A99", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", eqslantless: "\u2A95", elsdot: "\u2A97", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", emptyv: "\u2205", varnothing: "\u2205", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", eng: "\u014B", ensp: "\u2002", eogon: "\u0119", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", epsilon: "\u03B5", epsiv: "\u03F5", straightepsilon: "\u03F5", varepsilon: "\u03F5", equals: "=", equest: "\u225F", questeq: "\u225F", equivDD: "\u2A78", eqvparsl: "\u29E5", erDot: "\u2253", risingdotseq: "\u2253", erarr: "\u2971", escr: "\u212F", eta: "\u03B7", eth: "\xF0", euml: "\xEB", euro: "\u20AC", excl: "!", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", ffr: "\u{1D523}", filig: "\uFB01", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", fopf: "\u{1D557}", fork: "\u22D4", pitchfork: "\u22D4", forkv: "\u2AD9", fpartint: "\u2A0D", frac12: "\xBD", half: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", sfrown: "\u2322", fscr: "\u{1D4BB}", gEl: "\u2A8C", gtreqqless: "\u2A8C", gacute: "\u01F5", gamma: "\u03B3", gap: "\u2A86", gtrapprox: "\u2A86", gbreve: "\u011F", gcirc: "\u011D", gcy: "\u0433", gdot: "\u0121", gescc: "\u2AA9", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", gfr: "\u{1D524}", gimel: "\u2137", gjcy: "\u0453", glE: "\u2A92", gla: "\u2AA5", glj: "\u2AA4", gnE: "\u2269", gneqq: "\u2269", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gneq: "\u2A88", gnsim: "\u22E7", gopf: "\u{1D558}", gscr: "\u210A", gsime: "\u2A8E", gsiml: "\u2A90", gtcc: "\u2AA7", gtcir: "\u2A7A", gtdot: "\u22D7", gtrdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrarr: "\u2978", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", hardcy: "\u044A", harrcir: "\u2948", harrw: "\u21AD", leftrightsquigarrow: "\u21AD", hbar: "\u210F", hslash: "\u210F", planck: "\u210F", plankv: "\u210F", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", mldr: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", hksearow: "\u2925", searhk: "\u2925", hkswarow: "\u2926", swarhk: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", larrhk: "\u21A9", hookrightarrow: "\u21AA", rarrhk: "\u21AA", hopf: "\u{1D559}", horbar: "\u2015", hscr: "\u{1D4BD}", hstrok: "\u0127", hybull: "\u2043", iacute: "\xED", icirc: "\xEE", icy: "\u0438", iecy: "\u0435", iexcl: "\xA1", ifr: "\u{1D526}", igrave: "\xEC", iiiint: "\u2A0C", qint: "\u2A0C", iiint: "\u222D", tint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", ijlig: "\u0133", imacr: "\u012B", imath: "\u0131", inodot: "\u0131", imof: "\u22B7", imped: "\u01B5", incare: "\u2105", infin: "\u221E", infintie: "\u29DD", intcal: "\u22BA", intercal: "\u22BA", intlarhk: "\u2A17", intprod: "\u2A3C", iprod: "\u2A3C", iocy: "\u0451", iogon: "\u012F", iopf: "\u{1D55A}", iota: "\u03B9", iquest: "\xBF", iscr: "\u{1D4BE}", isinE: "\u22F9", isindot: "\u22F5", isins: "\u22F4", isinsv: "\u22F3", itilde: "\u0129", iukcy: "\u0456", iuml: "\xEF", jcirc: "\u0135", jcy: "\u0439", jfr: "\u{1D527}", jmath: "\u0237", jopf: "\u{1D55B}", jscr: "\u{1D4BF}", jsercy: "\u0458", jukcy: "\u0454", kappa: "\u03BA", kappav: "\u03F0", varkappa: "\u03F0", kcedil: "\u0137", kcy: "\u043A", kfr: "\u{1D528}", kgreen: "\u0138", khcy: "\u0445", kjcy: "\u045C", kopf: "\u{1D55C}", kscr: "\u{1D4C0}", lAtail: "\u291B", lBarr: "\u290E", lEg: "\u2A8B", lesseqqgtr: "\u2A8B", lHar: "\u2962", lacute: "\u013A", laemptyv: "\u29B4", lambda: "\u03BB", langd: "\u2991", lap: "\u2A85", lessapprox: "\u2A85", laquo: "\xAB", larrbfs: "\u291F", larrfs: "\u291D", larrlp: "\u21AB", looparrowleft: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", leftarrowtail: "\u21A2", lat: "\u2AAB", latail: "\u2919", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lbbrk: "\u2772", lbrace: "{", lcub: "{", lbrack: "[", lsqb: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", lcaron: "\u013E", lcedil: "\u013C", lcy: "\u043B", ldca: "\u2936", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", leq: "\u2264", leftleftarrows: "\u21C7", llarr: "\u21C7", leftthreetimes: "\u22CB", lthree: "\u22CB", lescc: "\u2AA8", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessdot: "\u22D6", ltdot: "\u22D6", lfisht: "\u297C", lfr: "\u{1D529}", lgE: "\u2A91", lharul: "\u296A", lhblk: "\u2584", ljcy: "\u0459", llhard: "\u296B", lltri: "\u25FA", lmidot: "\u0140", lmoust: "\u23B0", lmoustache: "\u23B0", lnE: "\u2268", lneqq: "\u2268", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lneq: "\u2A87", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", longmapsto: "\u27FC", xmap: "\u27FC", looparrowright: "\u21AC", rarrlp: "\u21AC", lopar: "\u2985", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", loz: "\u25CA", lozenge: "\u25CA", lpar: "(", lparlt: "\u2993", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", lsime: "\u2A8D", lsimg: "\u2A8F", lsquor: "\u201A", sbquo: "\u201A", lstrok: "\u0142", ltcc: "\u2AA6", ltcir: "\u2A79", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltrPar: "\u2996", ltri: "\u25C3", triangleleft: "\u25C3", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", mDDot: "\u223A", macr: "\xAF", strns: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", marker: "\u25AE", mcomma: "\u2A29", mcy: "\u043C", mdash: "\u2014", mfr: "\u{1D52A}", mho: "\u2127", micro: "\xB5", midcir: "\u2AF0", minus: "\u2212", minusdu: "\u2A2A", mlcp: "\u2ADB", models: "\u22A7", mopf: "\u{1D55E}", mscr: "\u{1D4C2}", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nGg: "\u22D9\u0338", nGt: "\u226B\u20D2", nLeftarrow: "\u21CD", nlArr: "\u21CD", nLeftrightarrow: "\u21CE", nhArr: "\u21CE", nLl: "\u22D8\u0338", nLt: "\u226A\u20D2", nRightarrow: "\u21CF", nrArr: "\u21CF", nVDash: "\u22AF", nVdash: "\u22AE", nacute: "\u0144", nang: "\u2220\u20D2", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", natur: "\u266E", natural: "\u266E", ncap: "\u2A43", ncaron: "\u0148", ncedil: "\u0146", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", ncy: "\u043D", ndash: "\u2013", neArr: "\u21D7", nearhk: "\u2924", nedot: "\u2250\u0338", nesear: "\u2928", toea: "\u2928", nfr: "\u{1D52B}", nharr: "\u21AE", nleftrightarrow: "\u21AE", nhpar: "\u2AF2", nis: "\u22FC", nisd: "\u22FA", njcy: "\u045A", nlE: "\u2266\u0338", nleqq: "\u2266\u0338", nlarr: "\u219A", nleftarrow: "\u219A", nldr: "\u2025", nopf: "\u{1D55F}", not: "\xAC", notinE: "\u22F9\u0338", notindot: "\u22F5\u0338", notinvb: "\u22F7", notinvc: "\u22F6", notnivb: "\u22FE", notnivc: "\u22FD", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", nrarr: "\u219B", nrightarrow: "\u219B", nrarrc: "\u2933\u0338", nrarrw: "\u219D\u0338", nscr: "\u{1D4C3}", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsubseteqq: "\u2AC5\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupseteqq: "\u2AC6\u0338", ntilde: "\xF1", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvDash: "\u22AD", nvHarr: "\u2904", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwArr: "\u21D6", nwarhk: "\u2923", nwnear: "\u2927", oacute: "\xF3", ocirc: "\xF4", ocy: "\u043E", odblac: "\u0151", odiv: "\u2A38", odsold: "\u29BC", oelig: "\u0153", ofcir: "\u29BF", ofr: "\u{1D52C}", ogon: "\u02DB", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", olcir: "\u29BE", olcross: "\u29BB", olt: "\u29C0", omacr: "\u014D", omega: "\u03C9", omicron: "\u03BF", omid: "\u29B6", oopf: "\u{1D560}", opar: "\u29B7", operp: "\u29B9", or: "\u2228", vee: "\u2228", ord: "\u2A5D", order: "\u2134", orderof: "\u2134", oscr: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oslash: "\xF8", osol: "\u2298", otilde: "\xF5", otimesas: "\u2A36", ouml: "\xF6", ovbar: "\u233D", para: "\xB6", parsim: "\u2AF3", parsl: "\u2AFD", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", pertenk: "\u2031", pfr: "\u{1D52D}", phi: "\u03C6", phiv: "\u03D5", straightphi: "\u03D5", varphi: "\u03D5", phone: "\u260E", pi: "\u03C0", piv: "\u03D6", varpi: "\u03D6", planckh: "\u210E", plus: "+", plusacir: "\u2A23", pluscir: "\u2A22", plusdu: "\u2A25", pluse: "\u2A72", plussim: "\u2A26", plustwo: "\u2A27", pointint: "\u2A15", popf: "\u{1D561}", pound: "\xA3", prE: "\u2AB3", prap: "\u2AB7", precapprox: "\u2AB7", precnapprox: "\u2AB9", prnap: "\u2AB9", precneqq: "\u2AB5", prnE: "\u2AB5", precnsim: "\u22E8", prnsim: "\u22E8", prime: "\u2032", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prurel: "\u22B0", pscr: "\u{1D4C5}", psi: "\u03C8", puncsp: "\u2008", qfr: "\u{1D52E}", qopf: "\u{1D562}", qprime: "\u2057", qscr: "\u{1D4C6}", quatint: "\u2A16", quest: "?", rAtail: "\u291C", rHar: "\u2964", race: "\u223D\u0331", racute: "\u0155", raemptyv: "\u29B3", rangd: "\u2992", range: "\u29A5", raquo: "\xBB", rarrap: "\u2975", rarrbfs: "\u2920", rarrc: "\u2933", rarrfs: "\u291E", rarrpl: "\u2945", rarrsim: "\u2974", rarrtl: "\u21A3", rightarrowtail: "\u21A3", rarrw: "\u219D", rightsquigarrow: "\u219D", ratail: "\u291A", ratio: "\u2236", rbbrk: "\u2773", rbrace: "}", rcub: "}", rbrack: "]", rsqb: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", rcaron: "\u0159", rcedil: "\u0157", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdsh: "\u21B3", rect: "\u25AD", rfisht: "\u297D", rfr: "\u{1D52F}", rharul: "\u296C", rho: "\u03C1", rhov: "\u03F1", varrho: "\u03F1", rightrightarrows: "\u21C9", rrarr: "\u21C9", rightthreetimes: "\u22CC", rthree: "\u22CC", ring: "\u02DA", rlm: "\u200F", rmoust: "\u23B1", rmoustache: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", ropar: "\u2986", ropf: "\u{1D563}", roplus: "\u2A2E", rotimes: "\u2A35", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rsaquo: "\u203A", rscr: "\u{1D4C7}", rtimes: "\u22CA", rtri: "\u25B9", triangleright: "\u25B9", rtriltri: "\u29CE", ruluhar: "\u2968", rx: "\u211E", sacute: "\u015B", scE: "\u2AB4", scap: "\u2AB8", succapprox: "\u2AB8", scaron: "\u0161", scedil: "\u015F", scirc: "\u015D", scnE: "\u2AB6", succneqq: "\u2AB6", scnap: "\u2ABA", succnapprox: "\u2ABA", scnsim: "\u22E9", succnsim: "\u22E9", scpolint: "\u2A13", scy: "\u0441", sdot: "\u22C5", sdote: "\u2A66", seArr: "\u21D8", sect: "\xA7", semi: ";", seswar: "\u2929", tosa: "\u2929", sext: "\u2736", sfr: "\u{1D530}", sharp: "\u266F", shchcy: "\u0449", shcy: "\u0448", shy: "\xAD", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", varsigma: "\u03C2", simdot: "\u2A6A", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", smashp: "\u2A33", smeparsl: "\u29E4", smile: "\u2323", ssmile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", softcy: "\u044C", sol: "/", solb: "\u29C4", solbar: "\u233F", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", sqcaps: "\u2293\uFE00", sqcups: "\u2294\uFE00", sscr: "\u{1D4C8}", star: "\u2606", sub: "\u2282", subset: "\u2282", subE: "\u2AC5", subseteqq: "\u2AC5", subdot: "\u2ABD", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subsetneqq: "\u2ACB", subne: "\u228A", subsetneq: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", sung: "\u266A", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", supE: "\u2AC6", supseteqq: "\u2AC6", supdot: "\u2ABE", supdsub: "\u2AD8", supedot: "\u2AC4", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supsetneqq: "\u2ACC", supne: "\u228B", supsetneq: "\u228B", supplus: "\u2AC0", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swArr: "\u21D9", swnwar: "\u292A", szlig: "\xDF", target: "\u2316", tau: "\u03C4", tcaron: "\u0165", tcedil: "\u0163", tcy: "\u0442", telrec: "\u2315", tfr: "\u{1D531}", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", vartheta: "\u03D1", thorn: "\xFE", times: "\xD7", timesbar: "\u2A31", timesd: "\u2A30", topbot: "\u2336", topcir: "\u2AF1", topf: "\u{1D565}", topfork: "\u2ADA", tprime: "\u2034", triangle: "\u25B5", utri: "\u25B5", triangleq: "\u225C", trie: "\u225C", tridot: "\u25EC", triminus: "\u2A3A", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", tscr: "\u{1D4C9}", tscy: "\u0446", tshcy: "\u045B", tstrok: "\u0167", uHar: "\u2963", uacute: "\xFA", ubrcy: "\u045E", ubreve: "\u016D", ucirc: "\xFB", ucy: "\u0443", udblac: "\u0171", ufisht: "\u297E", ufr: "\u{1D532}", ugrave: "\xF9", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", umacr: "\u016B", uogon: "\u0173", uopf: "\u{1D566}", upsi: "\u03C5", upsilon: "\u03C5", upuparrows: "\u21C8", uuarr: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", uring: "\u016F", urtri: "\u25F9", uscr: "\u{1D4CA}", utdot: "\u22F0", utilde: "\u0169", uuml: "\xFC", uwangle: "\u29A7", vBar: "\u2AE8", vBarv: "\u2AE9", vangrt: "\u299C", varsubsetneq: "\u228A\uFE00", vsubne: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", vsubnE: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", vsupne: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vsupnE: "\u2ACC\uFE00", vcy: "\u0432", veebar: "\u22BB", veeeq: "\u225A", vellip: "\u22EE", vfr: "\u{1D533}", vopf: "\u{1D567}", vscr: "\u{1D4CB}", vzigzag: "\u299A", wcirc: "\u0175", wedbar: "\u2A5F", wedgeq: "\u2259", weierp: "\u2118", wp: "\u2118", wfr: "\u{1D534}", wopf: "\u{1D568}", wscr: "\u{1D4CC}", xfr: "\u{1D535}", xi: "\u03BE", xnis: "\u22FB", xopf: "\u{1D569}", xscr: "\u{1D4CD}", yacute: "\xFD", yacy: "\u044F", ycirc: "\u0177", ycy: "\u044B", yen: "\xA5", yfr: "\u{1D536}", yicy: "\u0457", yopf: "\u{1D56A}", yscr: "\u{1D4CE}", yucy: "\u044E", yuml: "\xFF", zacute: "\u017A", zcaron: "\u017E", zcy: "\u0437", zdot: "\u017C", zeta: "\u03B6", zfr: "\u{1D537}", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" }; - Aa2 = "\uE500"; - Me6.ngsp = Aa2; - _a2 = [/^\s*$/, /[<>]/, /^[{}]$/, /&(#|[a-z])/i, /^\/\//]; - _r3 = class t5 { - static fromArray(e3) { - return e3 ? (ls3("interpolation", e3), new t5(e3[0], e3[1])) : Dr3; - } - constructor(e3, r3) { - this.start = e3, this.end = r3; - } - }; - Dr3 = new _r3("{{", "}}"); - it4 = class extends Pe5 { - constructor(e3, r3, n) { - super(n, e3), this.tokenType = r3; - } - }; - br3 = class { - constructor(e3, r3, n) { - this.tokens = e3, this.errors = r3, this.nonNormalizedIcuExpressions = n; - } - }; - Oa2 = /\r\n?/g; - (function(t12) { - t12.HEX = "hexadecimal", t12.DEC = "decimal"; - })(Ut3 || (Ut3 = {})); - at4 = class { - constructor(e3) { - this.error = e3; - } - }; - wr4 = class { - constructor(e3, r3, n) { - this._getTagContentType = r3, this._currentTokenStart = null, this._currentTokenType = null, this._expansionCaseStack = [], this._inInterpolation = false, this._fullNameStack = [], this.tokens = [], this.errors = [], this.nonNormalizedIcuExpressions = [], this._tokenizeIcu = n.tokenizeExpansionForms || false, this._interpolationConfig = n.interpolationConfig || Dr3, this._leadingTriviaCodePoints = n.leadingTriviaChars && n.leadingTriviaChars.map((i) => i.codePointAt(0) || 0), this._canSelfClose = n.canSelfClose || false, this._allowHtmComponentClosingTags = n.allowHtmComponentClosingTags || false; - let s3 = n.range || { endPos: e3.content.length, startPos: 0, startLine: 0, startCol: 0 }; - this._cursor = n.escapedString ? new Tr3(e3, s3) : new Wt4(e3, s3), this._preserveLineEndings = n.preserveLineEndings || false, this._escapedString = n.escapedString || false, this._i18nNormalizeLineEndingsInICUs = n.i18nNormalizeLineEndingsInICUs || false; - try { - this._cursor.init(); - } catch (i) { - this.handleError(i); - } - } - _processCarriageReturns(e3) { - return this._preserveLineEndings ? e3 : e3.replace(Oa2, ` -`); - } - tokenize() { - for (; this._cursor.peek() !== 0; ) { - let e3 = this._cursor.clone(); - try { - if (this._attemptCharCode(60)) - if (this._attemptCharCode(33)) - this._attemptStr("[CDATA[") ? this._consumeCdata(e3) : this._attemptStr("--") ? this._consumeComment(e3) : this._attemptStrCaseInsensitive("doctype") ? this._consumeDocType(e3) : this._consumeBogusComment(e3); - else if (this._attemptCharCode(47)) - this._consumeTagClose(e3); - else { - let r3 = this._cursor.clone(); - this._attemptCharCode(63) ? (this._cursor = r3, this._consumeBogusComment(e3)) : this._consumeTagOpen(e3); - } - else - this._tokenizeIcu && this._tokenizeExpansionForm() || this._consumeWithInterpolation(5, 8, () => this._isTextEnd(), () => this._isTagStart()); - } catch (r3) { - this.handleError(r3); - } - } - this._beginToken(25), this._endToken([]); - } - _tokenizeExpansionForm() { - if (this.isExpansionFormStart()) - return this._consumeExpansionFormStart(), true; - if (Wa2(this._cursor.peek()) && this._isInExpansionForm()) - return this._consumeExpansionCaseStart(), true; - if (this._cursor.peek() === 125) { - if (this._isInExpansionCase()) - return this._consumeExpansionCaseEnd(), true; - if (this._isInExpansionForm()) - return this._consumeExpansionFormEnd(), true; - } - return false; - } - _beginToken(e3, r3 = this._cursor.clone()) { - this._currentTokenStart = r3, this._currentTokenType = e3; - } - _endToken(e3, r3) { - if (this._currentTokenStart === null) - throw new it4("Programming error - attempted to end a token when there was no start to the token", this._currentTokenType, this._cursor.getSpan(r3)); - if (this._currentTokenType === null) - throw new it4("Programming error - attempted to end a token which has no token type", null, this._cursor.getSpan(this._currentTokenStart)); - let n = { type: this._currentTokenType, parts: e3, sourceSpan: (r3 ?? this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints) }; - return this.tokens.push(n), this._currentTokenStart = null, this._currentTokenType = null, n; - } - _createError(e3, r3) { - this._isInExpansionForm() && (e3 += ` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`); - let n = new it4(e3, this._currentTokenType, r3); - return this._currentTokenStart = null, this._currentTokenType = null, new at4(n); - } - handleError(e3) { - if (e3 instanceof ut2 && (e3 = this._createError(e3.msg, this._cursor.getSpan(e3.cursor))), e3 instanceof at4) - this.errors.push(e3.error); - else - throw e3; - } - _attemptCharCode(e3) { - return this._cursor.peek() === e3 ? (this._cursor.advance(), true) : false; - } - _attemptCharCodeCaseInsensitive(e3) { - return Ga2(this._cursor.peek(), e3) ? (this._cursor.advance(), true) : false; - } - _requireCharCode(e3) { - let r3 = this._cursor.clone(); - if (!this._attemptCharCode(e3)) - throw this._createError(Oe6(this._cursor.peek()), this._cursor.getSpan(r3)); - } - _attemptStr(e3) { - let r3 = e3.length; - if (this._cursor.charsLeft() < r3) - return false; - let n = this._cursor.clone(); - for (let s3 = 0; s3 < r3; s3++) - if (!this._attemptCharCode(e3.charCodeAt(s3))) - return this._cursor = n, false; - return true; - } - _attemptStrCaseInsensitive(e3) { - for (let r3 = 0; r3 < e3.length; r3++) - if (!this._attemptCharCodeCaseInsensitive(e3.charCodeAt(r3))) - return false; - return true; - } - _requireStr(e3) { - let r3 = this._cursor.clone(); - if (!this._attemptStr(e3)) - throw this._createError(Oe6(this._cursor.peek()), this._cursor.getSpan(r3)); - } - _requireStrCaseInsensitive(e3) { - let r3 = this._cursor.clone(); - if (!this._attemptStrCaseInsensitive(e3)) - throw this._createError(Oe6(this._cursor.peek()), this._cursor.getSpan(r3)); - } - _attemptCharCodeUntilFn(e3) { - for (; !e3(this._cursor.peek()); ) - this._cursor.advance(); - } - _requireCharCodeUntilFn(e3, r3) { - let n = this._cursor.clone(); - if (this._attemptCharCodeUntilFn(e3), this._cursor.diff(n) < r3) - throw this._createError(Oe6(this._cursor.peek()), this._cursor.getSpan(n)); - } - _attemptUntilChar(e3) { - for (; this._cursor.peek() !== e3; ) - this._cursor.advance(); - } - _readChar() { - let e3 = String.fromCodePoint(this._cursor.peek()); - return this._cursor.advance(), e3; - } - _consumeEntity(e3) { - this._beginToken(9); - let r3 = this._cursor.clone(); - if (this._cursor.advance(), this._attemptCharCode(35)) { - let n = this._attemptCharCode(120) || this._attemptCharCode(88), s3 = this._cursor.clone(); - if (this._attemptCharCodeUntilFn(Va2), this._cursor.peek() != 59) { - this._cursor.advance(); - let a = n ? Ut3.HEX : Ut3.DEC; - throw this._createError(qa2(a, this._cursor.getChars(r3)), this._cursor.getSpan()); - } - let i = this._cursor.getChars(s3); - this._cursor.advance(); - try { - let a = parseInt(i, n ? 16 : 10); - this._endToken([String.fromCharCode(a), this._cursor.getChars(r3)]); - } catch { - throw this._createError(fs8(this._cursor.getChars(r3)), this._cursor.getSpan()); - } - } else { - let n = this._cursor.clone(); - if (this._attemptCharCodeUntilFn(Ua2), this._cursor.peek() != 59) - this._beginToken(e3, r3), this._cursor = n, this._endToken(["&"]); - else { - let s3 = this._cursor.getChars(n); - this._cursor.advance(); - let i = Me6[s3]; - if (!i) - throw this._createError(fs8(s3), this._cursor.getSpan(r3)); - this._endToken([i, `&${s3};`]); - } - } - } - _consumeRawText(e3, r3) { - this._beginToken(e3 ? 6 : 7); - let n = []; - for (; ; ) { - let s3 = this._cursor.clone(), i = r3(); - if (this._cursor = s3, i) - break; - e3 && this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(n.join(""))]), n.length = 0, this._consumeEntity(6), this._beginToken(6)) : n.push(this._readChar()); - } - this._endToken([this._processCarriageReturns(n.join(""))]); - } - _consumeComment(e3) { - this._beginToken(10, e3), this._endToken([]), this._consumeRawText(false, () => this._attemptStr("-->")), this._beginToken(11), this._requireStr("-->"), this._endToken([]); - } - _consumeBogusComment(e3) { - this._beginToken(10, e3), this._endToken([]), this._consumeRawText(false, () => this._cursor.peek() === 62), this._beginToken(11), this._cursor.advance(), this._endToken([]); - } - _consumeCdata(e3) { - this._beginToken(12, e3), this._endToken([]), this._consumeRawText(false, () => this._attemptStr("]]>")), this._beginToken(13), this._requireStr("]]>"), this._endToken([]); - } - _consumeDocType(e3) { - this._beginToken(18, e3), this._endToken([]), this._consumeRawText(false, () => this._cursor.peek() === 62), this._beginToken(19), this._cursor.advance(), this._endToken([]); - } - _consumePrefixAndName() { - let e3 = this._cursor.clone(), r3 = ""; - for (; this._cursor.peek() !== 58 && !Ha2(this._cursor.peek()); ) - this._cursor.advance(); - let n; - this._cursor.peek() === 58 ? (r3 = this._cursor.getChars(e3), this._cursor.advance(), n = this._cursor.clone()) : n = e3, this._requireCharCodeUntilFn(ms4, r3 === "" ? 0 : 1); - let s3 = this._cursor.getChars(n); - return [r3, s3]; - } - _consumeTagOpen(e3) { - let r3, n, s3, i = []; - try { - if (!or3(this._cursor.peek())) - throw this._createError(Oe6(this._cursor.peek()), this._cursor.getSpan(e3)); - for (s3 = this._consumeTagOpenStart(e3), n = s3.parts[0], r3 = s3.parts[1], this._attemptCharCodeUntilFn(N2); this._cursor.peek() !== 47 && this._cursor.peek() !== 62 && this._cursor.peek() !== 60 && this._cursor.peek() !== 0; ) { - let [u, o2] = this._consumeAttributeName(); - if (this._attemptCharCodeUntilFn(N2), this._attemptCharCode(61)) { - this._attemptCharCodeUntilFn(N2); - let p4 = this._consumeAttributeValue(); - i.push({ prefix: u, name: o2, value: p4 }); - } else - i.push({ prefix: u, name: o2 }); - this._attemptCharCodeUntilFn(N2); - } - this._consumeTagOpenEnd(); - } catch (u) { - if (u instanceof at4) { - s3 ? s3.type = 4 : (this._beginToken(5, e3), this._endToken(["<"])); - return; - } - throw u; - } - if (this._canSelfClose && this.tokens[this.tokens.length - 1].type === 2) - return; - let a = this._getTagContentType(r3, n, this._fullNameStack.length > 0, i); - this._handleFullNameStackForTagOpen(n, r3), a === L4.RAW_TEXT ? this._consumeRawTextWithTagClose(n, r3, false) : a === L4.ESCAPABLE_RAW_TEXT && this._consumeRawTextWithTagClose(n, r3, true); - } - _consumeRawTextWithTagClose(e3, r3, n) { - this._consumeRawText(n, () => !this._attemptCharCode(60) || !this._attemptCharCode(47) || (this._attemptCharCodeUntilFn(N2), !this._attemptStrCaseInsensitive(e3 ? `${e3}:${r3}` : r3)) ? false : (this._attemptCharCodeUntilFn(N2), this._attemptCharCode(62))), this._beginToken(3), this._requireCharCodeUntilFn((s3) => s3 === 62, 3), this._cursor.advance(), this._endToken([e3, r3]), this._handleFullNameStackForTagClose(e3, r3); - } - _consumeTagOpenStart(e3) { - this._beginToken(0, e3); - let r3 = this._consumePrefixAndName(); - return this._endToken(r3); - } - _consumeAttributeName() { - let e3 = this._cursor.peek(); - if (e3 === 39 || e3 === 34) - throw this._createError(Oe6(e3), this._cursor.getSpan()); - this._beginToken(14); - let r3 = this._consumePrefixAndName(); - return this._endToken(r3), r3; - } - _consumeAttributeValue() { - let e3; - if (this._cursor.peek() === 39 || this._cursor.peek() === 34) { - let r3 = this._cursor.peek(); - this._consumeQuote(r3); - let n = () => this._cursor.peek() === r3; - e3 = this._consumeWithInterpolation(16, 17, n, n), this._consumeQuote(r3); - } else { - let r3 = () => ms4(this._cursor.peek()); - e3 = this._consumeWithInterpolation(16, 17, r3, r3); - } - return e3; - } - _consumeQuote(e3) { - this._beginToken(15), this._requireCharCode(e3), this._endToken([String.fromCodePoint(e3)]); - } - _consumeTagOpenEnd() { - let e3 = this._attemptCharCode(47) ? 2 : 1; - this._beginToken(e3), this._requireCharCode(62), this._endToken([]); - } - _consumeTagClose(e3) { - if (this._beginToken(3, e3), this._attemptCharCodeUntilFn(N2), this._allowHtmComponentClosingTags && this._attemptCharCode(47)) - this._attemptCharCodeUntilFn(N2), this._requireCharCode(62), this._endToken([]); - else { - let [r3, n] = this._consumePrefixAndName(); - this._attemptCharCodeUntilFn(N2), this._requireCharCode(62), this._endToken([r3, n]), this._handleFullNameStackForTagClose(r3, n); - } - } - _consumeExpansionFormStart() { - this._beginToken(20), this._requireCharCode(123), this._endToken([]), this._expansionCaseStack.push(20), this._beginToken(7); - let e3 = this._readUntil(44), r3 = this._processCarriageReturns(e3); - if (this._i18nNormalizeLineEndingsInICUs) - this._endToken([r3]); - else { - let s3 = this._endToken([e3]); - r3 !== e3 && this.nonNormalizedIcuExpressions.push(s3); - } - this._requireCharCode(44), this._attemptCharCodeUntilFn(N2), this._beginToken(7); - let n = this._readUntil(44); - this._endToken([n]), this._requireCharCode(44), this._attemptCharCodeUntilFn(N2); - } - _consumeExpansionCaseStart() { - this._beginToken(21); - let e3 = this._readUntil(123).trim(); - this._endToken([e3]), this._attemptCharCodeUntilFn(N2), this._beginToken(22), this._requireCharCode(123), this._endToken([]), this._attemptCharCodeUntilFn(N2), this._expansionCaseStack.push(22); - } - _consumeExpansionCaseEnd() { - this._beginToken(23), this._requireCharCode(125), this._endToken([]), this._attemptCharCodeUntilFn(N2), this._expansionCaseStack.pop(); - } - _consumeExpansionFormEnd() { - this._beginToken(24), this._requireCharCode(125), this._endToken([]), this._expansionCaseStack.pop(); - } - _consumeWithInterpolation(e3, r3, n, s3) { - this._beginToken(e3); - let i = []; - for (; !n(); ) { - let u = this._cursor.clone(); - this._interpolationConfig && this._attemptStr(this._interpolationConfig.start) ? (this._endToken([this._processCarriageReturns(i.join(""))], u), i.length = 0, this._consumeInterpolation(r3, u, s3), this._beginToken(e3)) : this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(i.join(""))]), i.length = 0, this._consumeEntity(e3), this._beginToken(e3)) : i.push(this._readChar()); - } - this._inInterpolation = false; - let a = this._processCarriageReturns(i.join("")); - return this._endToken([a]), a; - } - _consumeInterpolation(e3, r3, n) { - let s3 = []; - this._beginToken(e3, r3), s3.push(this._interpolationConfig.start); - let i = this._cursor.clone(), a = null, u = false; - for (; this._cursor.peek() !== 0 && (n === null || !n()); ) { - let o2 = this._cursor.clone(); - if (this._isTagStart()) { - this._cursor = o2, s3.push(this._getProcessedChars(i, o2)), this._endToken(s3); - return; - } - if (a === null) - if (this._attemptStr(this._interpolationConfig.end)) { - s3.push(this._getProcessedChars(i, o2)), s3.push(this._interpolationConfig.end), this._endToken(s3); - return; - } else - this._attemptStr("//") && (u = true); - let p4 = this._cursor.peek(); - this._cursor.advance(), p4 === 92 ? this._cursor.advance() : p4 === a ? a = null : !u && a === null && wn3(p4) && (a = p4); - } - s3.push(this._getProcessedChars(i, this._cursor)), this._endToken(s3); - } - _getProcessedChars(e3, r3) { - return this._processCarriageReturns(r3.getChars(e3)); - } - _isTextEnd() { - return !!(this._isTagStart() || this._cursor.peek() === 0 || this._tokenizeIcu && !this._inInterpolation && (this.isExpansionFormStart() || this._cursor.peek() === 125 && this._isInExpansionCase())); - } - _isTagStart() { - if (this._cursor.peek() === 60) { - let e3 = this._cursor.clone(); - e3.advance(); - let r3 = e3.peek(); - if (97 <= r3 && r3 <= 122 || 65 <= r3 && r3 <= 90 || r3 === 47 || r3 === 33) - return true; - } - return false; - } - _readUntil(e3) { - let r3 = this._cursor.clone(); - return this._attemptUntilChar(e3), this._cursor.getChars(r3); - } - _isInExpansionCase() { - return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 22; - } - _isInExpansionForm() { - return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 20; - } - isExpansionFormStart() { - if (this._cursor.peek() !== 123) - return false; - if (this._interpolationConfig) { - let e3 = this._cursor.clone(), r3 = this._attemptStr(this._interpolationConfig.start); - return this._cursor = e3, !r3; - } - return true; - } - _handleFullNameStackForTagOpen(e3, r3) { - let n = Re6(e3, r3); - (this._fullNameStack.length === 0 || this._fullNameStack[this._fullNameStack.length - 1] === n) && this._fullNameStack.push(n); - } - _handleFullNameStackForTagClose(e3, r3) { - let n = Re6(e3, r3); - this._fullNameStack.length !== 0 && this._fullNameStack[this._fullNameStack.length - 1] === n && this._fullNameStack.pop(); - } - }; - Wt4 = class t6 { - constructor(e3, r3) { - if (e3 instanceof t6) { - this.file = e3.file, this.input = e3.input, this.end = e3.end; - let n = e3.state; - this.state = { peek: n.peek, offset: n.offset, line: n.line, column: n.column }; - } else { - if (!r3) - throw new Error("Programming error: the range argument must be provided with a file argument."); - this.file = e3, this.input = e3.content, this.end = r3.endPos, this.state = { peek: -1, offset: r3.startPos, line: r3.startLine, column: r3.startCol }; - } - } - clone() { - return new t6(this); - } - peek() { - return this.state.peek; - } - charsLeft() { - return this.end - this.state.offset; - } - diff(e3) { - return this.state.offset - e3.state.offset; - } - advance() { - this.advanceState(this.state); - } - init() { - this.updatePeek(this.state); - } - getSpan(e3, r3) { - e3 = e3 || this; - let n = e3; - if (r3) - for (; this.diff(e3) > 0 && r3.indexOf(e3.peek()) !== -1; ) - n === e3 && (e3 = e3.clone()), e3.advance(); - let s3 = this.locationFromCursor(e3), i = this.locationFromCursor(this), a = n !== e3 ? this.locationFromCursor(n) : s3; - return new m2(s3, i, a); - } - getChars(e3) { - return this.input.substring(e3.state.offset, this.state.offset); - } - charAt(e3) { - return this.input.charCodeAt(e3); - } - advanceState(e3) { - if (e3.offset >= this.end) - throw this.state = e3, new ut2('Unexpected character "EOF"', this); - let r3 = this.charAt(e3.offset); - r3 === 10 ? (e3.line++, e3.column = 0) : lr4(r3) || e3.column++, e3.offset++, this.updatePeek(e3); - } - updatePeek(e3) { - e3.peek = e3.offset >= this.end ? 0 : this.charAt(e3.offset); - } - locationFromCursor(e3) { - return new ee5(e3.file, e3.state.offset, e3.state.line, e3.state.column); - } - }; - Tr3 = class t7 extends Wt4 { - constructor(e3, r3) { - e3 instanceof t7 ? (super(e3), this.internalState = { ...e3.internalState }) : (super(e3, r3), this.internalState = this.state); - } - advance() { - this.state = this.internalState, super.advance(), this.processEscapeSequence(); - } - init() { - super.init(), this.processEscapeSequence(); - } - clone() { - return new t7(this); - } - getChars(e3) { - let r3 = e3.clone(), n = ""; - for (; r3.internalState.offset < this.internalState.offset; ) - n += String.fromCodePoint(r3.peek()), r3.advance(); - return n; - } - processEscapeSequence() { - let e3 = () => this.internalState.peek; - if (e3() === 92) - if (this.internalState = { ...this.state }, this.advanceState(this.internalState), e3() === 110) - this.state.peek = 10; - else if (e3() === 114) - this.state.peek = 13; - else if (e3() === 118) - this.state.peek = 11; - else if (e3() === 116) - this.state.peek = 9; - else if (e3() === 98) - this.state.peek = 8; - else if (e3() === 102) - this.state.peek = 12; - else if (e3() === 117) - if (this.advanceState(this.internalState), e3() === 123) { - this.advanceState(this.internalState); - let r3 = this.clone(), n = 0; - for (; e3() !== 125; ) - this.advanceState(this.internalState), n++; - this.state.peek = this.decodeHexDigits(r3, n); - } else { - let r3 = this.clone(); - this.advanceState(this.internalState), this.advanceState(this.internalState), this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r3, 4); - } - else if (e3() === 120) { - this.advanceState(this.internalState); - let r3 = this.clone(); - this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r3, 2); - } else if (cr3(e3())) { - let r3 = "", n = 0, s3 = this.clone(); - for (; cr3(e3()) && n < 3; ) - s3 = this.clone(), r3 += String.fromCodePoint(e3()), this.advanceState(this.internalState), n++; - this.state.peek = parseInt(r3, 8), this.internalState = s3.internalState; - } else - lr4(this.internalState.peek) ? (this.advanceState(this.internalState), this.state = this.internalState) : this.state.peek = this.internalState.peek; - } - decodeHexDigits(e3, r3) { - let n = this.input.slice(e3.internalState.offset, e3.internalState.offset + r3), s3 = parseInt(n, 16); - if (isNaN(s3)) - throw e3.state = e3.internalState, new ut2("Invalid hexadecimal escape sequence", e3); - return s3; - } - }; - ut2 = class { - constructor(e3, r3) { - this.msg = e3, this.cursor = r3; - } - }; - H5 = class t8 extends Pe5 { - static create(e3, r3, n) { - return new t8(e3, r3, n); - } - constructor(e3, r3, n) { - super(r3, n), this.elementName = e3; - } - }; - Br3 = class { - constructor(e3, r3) { - this.rootNodes = e3, this.errors = r3; - } - }; - Gt3 = class { - constructor(e3) { - this.getTagDefinition = e3; - } - parse(e3, r3, n, s3 = false, i) { - let a = (A6) => (F5, ...T4) => A6(F5.toLowerCase(), ...T4), u = s3 ? this.getTagDefinition : a(this.getTagDefinition), o2 = (A6) => u(A6).getContentType(), p4 = s3 ? i : a(i), f3 = As4(e3, r3, i ? (A6, F5, T4, c3) => { - let g3 = p4(A6, F5, T4, c3); - return g3 !== void 0 ? g3 : o2(A6); - } : o2, n), d5 = n && n.canSelfClose || false, C6 = n && n.allowHtmComponentClosingTags || false, E6 = new Lr4(f3.tokens, u, d5, C6, s3); - return E6.build(), new Br3(E6.rootNodes, f3.errors.concat(E6.errors)); - } - }; - Lr4 = class t10 { - constructor(e3, r3, n, s3, i) { - this.tokens = e3, this.getTagDefinition = r3, this.canSelfClose = n, this.allowHtmComponentClosingTags = s3, this.isTagNameCaseSensitive = i, this._index = -1, this._elementStack = [], this.rootNodes = [], this.errors = [], this._advance(); - } - build() { - for (; this._peek.type !== 25; ) - this._peek.type === 0 || this._peek.type === 4 ? this._consumeStartTag(this._advance()) : this._peek.type === 3 ? (this._closeVoidElement(), this._consumeEndTag(this._advance())) : this._peek.type === 12 ? (this._closeVoidElement(), this._consumeCdata(this._advance())) : this._peek.type === 10 ? (this._closeVoidElement(), this._consumeComment(this._advance())) : this._peek.type === 5 || this._peek.type === 7 || this._peek.type === 6 ? (this._closeVoidElement(), this._consumeText(this._advance())) : this._peek.type === 20 ? this._consumeExpansion(this._advance()) : this._peek.type === 18 ? this._consumeDocType(this._advance()) : this._advance(); - } - _advance() { - let e3 = this._peek; - return this._index < this.tokens.length - 1 && this._index++, this._peek = this.tokens[this._index], e3; - } - _advanceIf(e3) { - return this._peek.type === e3 ? this._advance() : null; - } - _consumeCdata(e3) { - let r3 = this._advance(), n = this._getText(r3), s3 = this._advanceIf(13); - this._addToParent(new Ft4(n, new m2(e3.sourceSpan.start, (s3 || r3).sourceSpan.end), [r3])); - } - _consumeComment(e3) { - let r3 = this._advanceIf(7), n = this._advanceIf(11), s3 = r3 != null ? r3.parts[0].trim() : null, i = new m2(e3.sourceSpan.start, (n || r3 || e3).sourceSpan.end); - this._addToParent(new $t5(s3, i)); - } - _consumeDocType(e3) { - let r3 = this._advanceIf(7), n = this._advanceIf(19), s3 = r3 != null ? r3.parts[0].trim() : null, i = new m2(e3.sourceSpan.start, (n || r3 || e3).sourceSpan.end); - this._addToParent(new Mt4(s3, i)); - } - _consumeExpansion(e3) { - let r3 = this._advance(), n = this._advance(), s3 = []; - for (; this._peek.type === 21; ) { - let a = this._parseExpansionCase(); - if (!a) - return; - s3.push(a); - } - if (this._peek.type !== 24) { - this.errors.push(H5.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '}'.")); - return; - } - let i = new m2(e3.sourceSpan.start, this._peek.sourceSpan.end, e3.sourceSpan.fullStart); - this._addToParent(new Pt5(r3.parts[0], n.parts[0], s3, i, r3.sourceSpan)), this._advance(); - } - _parseExpansionCase() { - let e3 = this._advance(); - if (this._peek.type !== 22) - return this.errors.push(H5.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '{'.")), null; - let r3 = this._advance(), n = this._collectExpansionExpTokens(r3); - if (!n) - return null; - let s3 = this._advance(); - n.push({ type: 25, parts: [], sourceSpan: s3.sourceSpan }); - let i = new t10(n, this.getTagDefinition, this.canSelfClose, this.allowHtmComponentClosingTags, this.isTagNameCaseSensitive); - if (i.build(), i.errors.length > 0) - return this.errors = this.errors.concat(i.errors), null; - let a = new m2(e3.sourceSpan.start, s3.sourceSpan.end, e3.sourceSpan.fullStart), u = new m2(r3.sourceSpan.start, s3.sourceSpan.end, r3.sourceSpan.fullStart); - return new Nt6(e3.parts[0], i.rootNodes, a, e3.sourceSpan, u); - } - _collectExpansionExpTokens(e3) { - let r3 = [], n = [22]; - for (; ; ) { - if ((this._peek.type === 20 || this._peek.type === 22) && n.push(this._peek.type), this._peek.type === 23) - if (_s5(n, 22)) { - if (n.pop(), n.length === 0) - return r3; - } else - return this.errors.push(H5.create(null, e3.sourceSpan, "Invalid ICU message. Missing '}'.")), null; - if (this._peek.type === 24) - if (_s5(n, 20)) - n.pop(); - else - return this.errors.push(H5.create(null, e3.sourceSpan, "Invalid ICU message. Missing '}'.")), null; - if (this._peek.type === 25) - return this.errors.push(H5.create(null, e3.sourceSpan, "Invalid ICU message. Missing '}'.")), null; - r3.push(this._advance()); - } - } - _getText(e3) { - let r3 = e3.parts[0]; - if (r3.length > 0 && r3[0] == ` -`) { - let n = this._getParentElement(); - n != null && n.children.length == 0 && this.getTagDefinition(n.name).ignoreFirstLf && (r3 = r3.substring(1)); - } - return r3; - } - _consumeText(e3) { - let r3 = [e3], n = e3.sourceSpan, s3 = e3.parts[0]; - if (s3.length > 0 && s3[0] === ` -`) { - let i = this._getParentElement(); - i != null && i.children.length === 0 && this.getTagDefinition(i.name).ignoreFirstLf && (s3 = s3.substring(1), r3[0] = { type: e3.type, sourceSpan: e3.sourceSpan, parts: [s3] }); - } - for (; this._peek.type === 8 || this._peek.type === 5 || this._peek.type === 9; ) - e3 = this._advance(), r3.push(e3), e3.type === 8 ? s3 += e3.parts.join("").replace(/&([^;]+);/g, Ds5) : e3.type === 9 ? s3 += e3.parts[0] : s3 += e3.parts.join(""); - if (s3.length > 0) { - let i = e3.sourceSpan; - this._addToParent(new Lt6(s3, new m2(n.start, i.end, n.fullStart, n.details), r3)); - } - } - _closeVoidElement() { - let e3 = this._getParentElement(); - e3 && this.getTagDefinition(e3.name).isVoid && this._elementStack.pop(); - } - _consumeStartTag(e3) { - let [r3, n] = e3.parts, s3 = []; - for (; this._peek.type === 14; ) - s3.push(this._consumeAttr(this._advance())); - let i = this._getElementFullName(r3, n, this._getParentElement()), a = false; - if (this._peek.type === 2) { - this._advance(), a = true; - let d5 = this.getTagDefinition(i); - this.canSelfClose || d5.canSelfClose || Ie4(i) !== null || d5.isVoid || this.errors.push(H5.create(i, e3.sourceSpan, `Only void, custom and foreign elements can be self closed "${e3.parts[1]}"`)); - } else - this._peek.type === 1 && (this._advance(), a = false); - let u = this._peek.sourceSpan.fullStart, o2 = new m2(e3.sourceSpan.start, u, e3.sourceSpan.fullStart), p4 = new m2(e3.sourceSpan.start, u, e3.sourceSpan.fullStart), l = new m2(e3.sourceSpan.start.moveBy(1), e3.sourceSpan.end), f3 = new Rt5(i, s3, [], o2, p4, void 0, l); - this._pushElement(f3), a ? this._popElement(i, o2) : e3.type === 4 && (this._popElement(i, null), this.errors.push(H5.create(i, o2, `Opening tag "${i}" not terminated.`))); - } - _pushElement(e3) { - let r3 = this._getParentElement(); - r3 && this.getTagDefinition(r3.name).isClosedByChild(e3.name) && this._elementStack.pop(), this._addToParent(e3), this._elementStack.push(e3); - } - _consumeEndTag(e3) { - let r3 = this.allowHtmComponentClosingTags && e3.parts.length === 0 ? null : this._getElementFullName(e3.parts[0], e3.parts[1], this._getParentElement()); - if (r3 && this.getTagDefinition(r3).isVoid) - this.errors.push(H5.create(r3, e3.sourceSpan, `Void elements do not have end tags "${e3.parts[1]}"`)); - else if (!this._popElement(r3, e3.sourceSpan)) { - let n = `Unexpected closing tag "${r3}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`; - this.errors.push(H5.create(r3, e3.sourceSpan, n)); - } - } - _popElement(e3, r3) { - let n = false; - for (let s3 = this._elementStack.length - 1; s3 >= 0; s3--) { - let i = this._elementStack[s3]; - if (!e3 || (Ie4(i.name) ? i.name == e3 : i.name.toLowerCase() == e3.toLowerCase())) - return i.endSourceSpan = r3, i.sourceSpan.end = r3 !== null ? r3.end : i.sourceSpan.end, this._elementStack.splice(s3, this._elementStack.length - s3), !n; - this.getTagDefinition(i.name).closedByParent || (n = true); - } - return false; - } - _consumeAttr(e3) { - let r3 = Re6(e3.parts[0], e3.parts[1]), n = e3.sourceSpan.end, s3; - this._peek.type === 15 && (s3 = this._advance()); - let i = "", a = [], u, o2; - if (this._peek.type === 16) - for (u = this._peek.sourceSpan, o2 = this._peek.sourceSpan.end; this._peek.type === 16 || this._peek.type === 17 || this._peek.type === 9; ) { - let f3 = this._advance(); - a.push(f3), f3.type === 17 ? i += f3.parts.join("").replace(/&([^;]+);/g, Ds5) : f3.type === 9 ? i += f3.parts[0] : i += f3.parts.join(""), o2 = n = f3.sourceSpan.end; - } - this._peek.type === 15 && (o2 = n = this._advance().sourceSpan.end); - let l = u && o2 && new m2((s3 == null ? void 0 : s3.sourceSpan.start) ?? u.start, o2, (s3 == null ? void 0 : s3.sourceSpan.fullStart) ?? u.fullStart); - return new It5(r3, i, new m2(e3.sourceSpan.start, n, e3.sourceSpan.fullStart), e3.sourceSpan, l, a.length > 0 ? a : void 0, void 0); - } - _getParentElement() { - return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null; - } - _addToParent(e3) { - let r3 = this._getParentElement(); - r3 != null ? r3.children.push(e3) : this.rootNodes.push(e3); - } - _getElementFullName(e3, r3, n) { - if (e3 === "" && (e3 = this.getTagDefinition(r3).implicitNamespacePrefix || "", e3 === "" && n != null)) { - let s3 = et6(n.name)[1]; - this.getTagDefinition(s3).preventNamespaceInheritance || (e3 = Ie4(n.name)); - } - return Re6(e3, r3); - } - }; - Yt3 = class extends Gt3 { - constructor() { - super($e5); - } - parse(e3, r3, n, s3 = false, i) { - return super.parse(e3, r3, n, s3, i); - } - }; - Fr3 = null; - za2 = () => (Fr3 || (Fr3 = new Yt3()), Fr3); - ja2 = new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)", "s"); - vs5 = Ka2; - ys5 = Qa2; - bs5 = /* @__PURE__ */ new Set(["a", "abbr", "acronym", "address", "applet", "area", "article", "aside", "audio", "b", "base", "basefont", "bdi", "bdo", "bgsound", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "command", "content", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "embed", "fieldset", "figcaption", "figure", "font", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "image", "img", "input", "ins", "isindex", "kbd", "keygen", "label", "legend", "li", "link", "listing", "main", "map", "mark", "marquee", "math", "menu", "menuitem", "meta", "meter", "multicol", "nav", "nextid", "nobr", "noembed", "noframes", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "plaintext", "pre", "progress", "q", "rb", "rbc", "rp", "rt", "rtc", "ruby", "s", "samp", "script", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "tt", "u", "ul", "var", "video", "wbr", "xmp"]); - zt4 = /* @__PURE__ */ new Map([["*", /* @__PURE__ */ new Set(["accesskey", "autocapitalize", "autofocus", "class", "contenteditable", "dir", "draggable", "enterkeyhint", "hidden", "id", "inert", "inputmode", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "nonce", "popover", "slot", "spellcheck", "style", "tabindex", "title", "translate"])], ["a", /* @__PURE__ */ new Set(["charset", "coords", "download", "href", "hreflang", "name", "ping", "referrerpolicy", "rel", "rev", "shape", "target", "type"])], ["applet", /* @__PURE__ */ new Set(["align", "alt", "archive", "code", "codebase", "height", "hspace", "name", "object", "vspace", "width"])], ["area", /* @__PURE__ */ new Set(["alt", "coords", "download", "href", "hreflang", "nohref", "ping", "referrerpolicy", "rel", "shape", "target", "type"])], ["audio", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "loop", "muted", "preload", "src"])], ["base", /* @__PURE__ */ new Set(["href", "target"])], ["basefont", /* @__PURE__ */ new Set(["color", "face", "size"])], ["blockquote", /* @__PURE__ */ new Set(["cite"])], ["body", /* @__PURE__ */ new Set(["alink", "background", "bgcolor", "link", "text", "vlink"])], ["br", /* @__PURE__ */ new Set(["clear"])], ["button", /* @__PURE__ */ new Set(["disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "popovertarget", "popovertargetaction", "type", "value"])], ["canvas", /* @__PURE__ */ new Set(["height", "width"])], ["caption", /* @__PURE__ */ new Set(["align"])], ["col", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["colgroup", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["data", /* @__PURE__ */ new Set(["value"])], ["del", /* @__PURE__ */ new Set(["cite", "datetime"])], ["details", /* @__PURE__ */ new Set(["open"])], ["dialog", /* @__PURE__ */ new Set(["open"])], ["dir", /* @__PURE__ */ new Set(["compact"])], ["div", /* @__PURE__ */ new Set(["align"])], ["dl", /* @__PURE__ */ new Set(["compact"])], ["embed", /* @__PURE__ */ new Set(["height", "src", "type", "width"])], ["fieldset", /* @__PURE__ */ new Set(["disabled", "form", "name"])], ["font", /* @__PURE__ */ new Set(["color", "face", "size"])], ["form", /* @__PURE__ */ new Set(["accept", "accept-charset", "action", "autocomplete", "enctype", "method", "name", "novalidate", "target"])], ["frame", /* @__PURE__ */ new Set(["frameborder", "longdesc", "marginheight", "marginwidth", "name", "noresize", "scrolling", "src"])], ["frameset", /* @__PURE__ */ new Set(["cols", "rows"])], ["h1", /* @__PURE__ */ new Set(["align"])], ["h2", /* @__PURE__ */ new Set(["align"])], ["h3", /* @__PURE__ */ new Set(["align"])], ["h4", /* @__PURE__ */ new Set(["align"])], ["h5", /* @__PURE__ */ new Set(["align"])], ["h6", /* @__PURE__ */ new Set(["align"])], ["head", /* @__PURE__ */ new Set(["profile"])], ["hr", /* @__PURE__ */ new Set(["align", "noshade", "size", "width"])], ["html", /* @__PURE__ */ new Set(["manifest", "version"])], ["iframe", /* @__PURE__ */ new Set(["align", "allow", "allowfullscreen", "allowpaymentrequest", "allowusermedia", "frameborder", "height", "loading", "longdesc", "marginheight", "marginwidth", "name", "referrerpolicy", "sandbox", "scrolling", "src", "srcdoc", "width"])], ["img", /* @__PURE__ */ new Set(["align", "alt", "border", "crossorigin", "decoding", "fetchpriority", "height", "hspace", "ismap", "loading", "longdesc", "name", "referrerpolicy", "sizes", "src", "srcset", "usemap", "vspace", "width"])], ["input", /* @__PURE__ */ new Set(["accept", "align", "alt", "autocomplete", "checked", "dirname", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "height", "ismap", "list", "max", "maxlength", "min", "minlength", "multiple", "name", "pattern", "placeholder", "popovertarget", "popovertargetaction", "readonly", "required", "size", "src", "step", "type", "usemap", "value", "width"])], ["ins", /* @__PURE__ */ new Set(["cite", "datetime"])], ["isindex", /* @__PURE__ */ new Set(["prompt"])], ["label", /* @__PURE__ */ new Set(["for", "form"])], ["legend", /* @__PURE__ */ new Set(["align"])], ["li", /* @__PURE__ */ new Set(["type", "value"])], ["link", /* @__PURE__ */ new Set(["as", "blocking", "charset", "color", "crossorigin", "disabled", "fetchpriority", "href", "hreflang", "imagesizes", "imagesrcset", "integrity", "media", "referrerpolicy", "rel", "rev", "sizes", "target", "type"])], ["map", /* @__PURE__ */ new Set(["name"])], ["menu", /* @__PURE__ */ new Set(["compact"])], ["meta", /* @__PURE__ */ new Set(["charset", "content", "http-equiv", "media", "name", "scheme"])], ["meter", /* @__PURE__ */ new Set(["high", "low", "max", "min", "optimum", "value"])], ["object", /* @__PURE__ */ new Set(["align", "archive", "border", "classid", "codebase", "codetype", "data", "declare", "form", "height", "hspace", "name", "standby", "type", "typemustmatch", "usemap", "vspace", "width"])], ["ol", /* @__PURE__ */ new Set(["compact", "reversed", "start", "type"])], ["optgroup", /* @__PURE__ */ new Set(["disabled", "label"])], ["option", /* @__PURE__ */ new Set(["disabled", "label", "selected", "value"])], ["output", /* @__PURE__ */ new Set(["for", "form", "name"])], ["p", /* @__PURE__ */ new Set(["align"])], ["param", /* @__PURE__ */ new Set(["name", "type", "value", "valuetype"])], ["pre", /* @__PURE__ */ new Set(["width"])], ["progress", /* @__PURE__ */ new Set(["max", "value"])], ["q", /* @__PURE__ */ new Set(["cite"])], ["script", /* @__PURE__ */ new Set(["async", "blocking", "charset", "crossorigin", "defer", "fetchpriority", "integrity", "language", "nomodule", "referrerpolicy", "src", "type"])], ["select", /* @__PURE__ */ new Set(["autocomplete", "disabled", "form", "multiple", "name", "required", "size"])], ["slot", /* @__PURE__ */ new Set(["name"])], ["source", /* @__PURE__ */ new Set(["height", "media", "sizes", "src", "srcset", "type", "width"])], ["style", /* @__PURE__ */ new Set(["blocking", "media", "type"])], ["table", /* @__PURE__ */ new Set(["align", "bgcolor", "border", "cellpadding", "cellspacing", "frame", "rules", "summary", "width"])], ["tbody", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["td", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["textarea", /* @__PURE__ */ new Set(["autocomplete", "cols", "dirname", "disabled", "form", "maxlength", "minlength", "name", "placeholder", "readonly", "required", "rows", "wrap"])], ["tfoot", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["th", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["thead", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["time", /* @__PURE__ */ new Set(["datetime"])], ["tr", /* @__PURE__ */ new Set(["align", "bgcolor", "char", "charoff", "valign"])], ["track", /* @__PURE__ */ new Set(["default", "kind", "label", "src", "srclang"])], ["ul", /* @__PURE__ */ new Set(["compact", "type"])], ["video", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "height", "loop", "muted", "playsinline", "poster", "preload", "src", "width"])]]); - jt4 = { attrs: true, children: true }; - ws5 = /* @__PURE__ */ new Set(["parent"]); - Kt5 = class t11 { - constructor(e3 = {}) { - for (let r3 of /* @__PURE__ */ new Set([...ws5, ...Object.keys(e3)])) - this.setProperty(r3, e3[r3]); - } - setProperty(e3, r3) { - if (this[e3] !== r3) { - if (e3 in jt4 && (r3 = r3.map((n) => this.createChild(n))), !ws5.has(e3)) { - this[e3] = r3; - return; - } - Object.defineProperty(this, e3, { value: r3, enumerable: false, configurable: true }); - } - } - map(e3) { - let r3; - for (let n in jt4) { - let s3 = this[n]; - if (s3) { - let i = Xa2(s3, (a) => a.map(e3)); - r3 !== s3 && (r3 || (r3 = new t11({ parent: this.parent })), r3.setProperty(n, i)); - } - } - if (r3) - for (let n in this) - n in jt4 || (r3[n] = this[n]); - return e3(r3 || this); - } - walk(e3) { - for (let r3 in jt4) { - let n = this[r3]; - if (n) - for (let s3 = 0; s3 < n.length; s3++) - n[s3].walk(e3); - } - e3(this); - } - createChild(e3) { - let r3 = e3 instanceof t11 ? e3.clone() : new t11(e3); - return r3.setProperty("parent", this), r3; - } - insertChildBefore(e3, r3) { - this.children.splice(this.children.indexOf(e3), 0, this.createChild(r3)); - } - removeChild(e3) { - this.children.splice(this.children.indexOf(e3), 1); - } - replaceChild(e3, r3) { - this.children[this.children.indexOf(e3)] = this.createChild(r3); - } - clone() { - return new t11(this); - } - get firstChild() { - var e3; - return (e3 = this.children) == null ? void 0 : e3[0]; - } - get lastChild() { - var e3; - return (e3 = this.children) == null ? void 0 : e3[this.children.length - 1]; - } - get prev() { - var e3; - return (e3 = this.parent) == null ? void 0 : e3.children[this.parent.children.indexOf(this) - 1]; - } - get next() { - var e3; - return (e3 = this.parent) == null ? void 0 : e3.children[this.parent.children.indexOf(this) + 1]; - } - get rawName() { - return this.hasExplicitNamespace ? this.fullName : this.name; - } - get fullName() { - return this.namespace ? this.namespace + ":" + this.name : this.name; - } - get attrMap() { - return Object.fromEntries(this.attrs.map((e3) => [e3.fullName, e3.value])); - } - }; - Ja2 = [{ regex: /^(\[if([^\]]*)]>)(.*?) s3 === "lang" && i !== "html" && i !== "" && i !== void 0)); - } }); - au2 = Qt4({ name: "lwc", canSelfClose: false }); - Fs5 = [{ linguistLanguageId: 146, name: "Angular", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [".component.html"], parsers: ["angular"], vscodeLanguageIds: ["html"], filenames: [] }, { linguistLanguageId: 146, name: "HTML", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [".html", ".hta", ".htm", ".html.hl", ".inc", ".xht", ".xhtml", ".mjml"], parsers: ["html"], vscodeLanguageIds: ["html"] }, { linguistLanguageId: 146, name: "Lightning Web Components", type: "markup", tmScope: "text.html.basic", aceMode: "html", codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", color: "#e34c26", aliases: ["xhtml"], extensions: [], parsers: ["lwc"], vscodeLanguageIds: ["html"], filenames: [] }, { linguistLanguageId: 391, name: "Vue", type: "markup", color: "#41b883", extensions: [".vue"], tmScope: "text.html.vue", aceMode: "html", parsers: ["vue"], vscodeLanguageIds: ["vue"] }]; - Ir4 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } }; - Ps5 = "HTML"; - uu2 = { bracketSameLine: Ir4.bracketSameLine, htmlWhitespaceSensitivity: { category: Ps5, type: "choice", default: "css", description: "How to handle whitespaces in HTML.", choices: [{ value: "css", description: "Respect the default value of CSS display property." }, { value: "strict", description: "Whitespaces are considered sensitive." }, { value: "ignore", description: "Whitespaces are considered insensitive." }] }, singleAttributePerLine: Ir4.singleAttributePerLine, vueIndentScriptAndStyle: { category: Ps5, type: "boolean", default: false, description: "Indent script and style tags in Vue files." } }; - Ns4 = uu2; - ou2 = { html: ns4 }; - qp2 = Rr4; - } -}); - -// node_modules/prettier/plugins/markdown.mjs -var markdown_exports = {}; -__export(markdown_exports, { - default: () => YE, - languages: () => Qc, - options: () => Zc, - parsers: () => Pn4, - printers: () => wg -}); -function Je6(e3) { - if (typeof e3 != "string") - throw new TypeError("Expected a string"); - return e3.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); -} -function cl2(e3, r3) { - let n = e3.match(new RegExp(`(${Je6(r3)})+`, "g")); - if (n === null) - return 0; - let t12 = /* @__PURE__ */ new Map(), a = 0; - for (let i of n) { - let u = i.length / r3.length; - t12.set(u, true), u > a && (a = u); - } - for (let i = 1; i < a; i++) - if (!t12.get(i)) - return i; - return a + 1; -} -function ll2(e3, r3) { - let n = e3.match(new RegExp(`(${Je6(r3)})+`, "g")); - return n === null ? 0 : n.reduce((t12, a) => Math.max(t12, a.length / r3.length), 0); -} -function Dl(e3) { - if (!e3) - return 0; - if (!fl.test(e3)) - return e3.length; - e3 = e3.replace(Rn4(), " "); - let r3 = 0; - for (let n of e3) { - let t12 = n.codePointAt(0); - if (t12 <= 31 || t12 >= 127 && t12 <= 159 || t12 >= 768 && t12 <= 879) - continue; - let a = zn3.eastAsianWidth(n); - r3 += a === "F" || a === "W" ? 2 : 1; - } - return r3; -} -function pl2(e3, r3) { - let n = r3 === true || r3 === Ar5 ? Ar5 : Mn4, t12 = n === Ar5 ? Mn4 : Ar5, a = 0, i = 0; - for (let u of e3) - u === n ? a++ : u === t12 && i++; - return a > i ? t12 : n; -} -function dl(e3) { - if (typeof e3 == "string") - return ue4; - if (Array.isArray(e3)) - return X5; - if (!e3) - return; - let { type: r3 } = e3; - if (Br4.has(r3)) - return r3; -} -function ml2(e3) { - let r3 = e3 === null ? "null" : typeof e3; - if (r3 !== "string" && r3 !== "object") - return `Unexpected doc '${r3}', -Expected it to be 'string' or 'object'.`; - if (fe5(e3)) - throw new Error("doc is valid."); - let n = Object.prototype.toString.call(e3); - if (n !== "[object Object]") - return `Unexpected doc '${n}'.`; - let t12 = hl([...Br4].map((a) => `'${a}'`)); - return `Unexpected doc.type '${e3.type}'. -Expected it to be ${t12}.`; -} -function gl(e3, r3, n, t12) { - let a = [e3]; - for (; a.length > 0; ) { - let i = a.pop(); - if (i === Yn4) { - n(a.pop()); - continue; - } - n && a.push(i, Yn4); - let u = fe5(i); - if (!u) - throw new Ae4(i); - if ((r3 == null ? void 0 : r3(i)) !== false) - switch (u) { - case X5: - case H6: { - let o2 = u === X5 ? i : i.parts; - for (let s3 = o2.length, l = s3 - 1; l >= 0; --l) - a.push(o2[l]); - break; - } - case W4: - a.push(i.flatContents, i.breakContents); - break; - case G5: - if (t12 && i.expandedStates) - for (let o2 = i.expandedStates.length, s3 = o2 - 1; s3 >= 0; --s3) - a.push(i.expandedStates[s3]); - else - a.push(i.contents); - break; - case Z6: - case Q5: - case oe5: - case le6: - case se4: - a.push(i.contents); - break; - case ue4: - case ve6: - case ae4: - case ce5: - case $5: - case ee6: - break; - default: - throw new Ae4(i); - } - } -} -function Qe6(e3) { - return Be6(e3), { type: Q5, contents: e3 }; -} -function Fe6(e3, r3) { - return Be6(r3), { type: Z6, contents: r3, n: e3 }; -} -function Ze7(e3, r3 = {}) { - return Be6(e3), qr5(r3.expandedStates, true), { type: G5, id: r3.id, contents: e3, break: !!r3.shouldBreak, expandedStates: r3.expandedStates }; -} -function qe5(e3) { - return Fe6({ type: "root" }, e3); -} -function Tr4(e3) { - return qr5(e3), { type: H6, parts: e3 }; -} -function $n4(e3, r3 = "", n = {}) { - return Be6(e3), r3 !== "" && Be6(r3), { type: W4, breakContents: e3, flatContents: r3, groupId: n.groupId }; -} -function nr4(e3, r3) { - Be6(e3), qr5(r3); - let n = []; - for (let t12 = 0; t12 < r3.length; t12++) - t12 !== 0 && n.push(e3), n.push(r3[t12]); - return n; -} -function Kn4(e3, r3) { - if (typeof e3 == "string") - return r3(e3); - let n = /* @__PURE__ */ new Map(); - return t12(e3); - function t12(i) { - if (n.has(i)) - return n.get(i); - let u = a(i); - return n.set(i, u), u; - } - function a(i) { - switch (fe5(i)) { - case X5: - return r3(i.map(t12)); - case H6: - return r3({ ...i, parts: i.parts.map(t12) }); - case W4: - return r3({ ...i, breakContents: t12(i.breakContents), flatContents: t12(i.flatContents) }); - case G5: { - let { expandedStates: u, contents: o2 } = i; - return u ? (u = u.map(t12), o2 = u[0]) : o2 = t12(o2), r3({ ...i, contents: o2, expandedStates: u }); - } - case Z6: - case Q5: - case oe5: - case le6: - case se4: - return r3({ ...i, contents: t12(i.contents) }); - case ue4: - case ve6: - case ae4: - case ce5: - case $5: - case ee6: - return r3(i); - default: - throw new Ae4(i); - } - } -} -function Gn4(e3) { - if (e3.length > 0) { - let r3 = U6(false, e3, -1); - !r3.expandedStates && !r3.break && (r3.break = "propagated"); - } - return null; -} -function Jn4(e3) { - let r3 = /* @__PURE__ */ new Set(), n = []; - function t12(i) { - if (i.type === ee6 && Gn4(n), i.type === G5) { - if (n.push(i), r3.has(i)) - return false; - r3.add(i); - } - } - function a(i) { - i.type === G5 && n.pop().break && Gn4(n); - } - Vn4(e3, t12, a, true); -} -function Hn4(e3) { - let r3 = [], n = e3.filter(Boolean); - for (; n.length > 0; ) { - let t12 = n.shift(); - if (t12) { - if (Array.isArray(t12)) { - n.unshift(...t12); - continue; - } - if (r3.length > 0 && typeof U6(false, r3, -1) == "string" && typeof t12 == "string") { - r3[r3.length - 1] += t12; - continue; - } - r3.push(t12); - } - } - return r3; -} -function Xn5(e3) { - return Kn4(e3, (r3) => Array.isArray(r3) ? Hn4(r3) : r3.parts ? { ...r3, parts: Hn4(r3.parts) } : r3); -} -function Ee3(e3, r3 = tr5) { - return Kn4(e3, (n) => typeof n == "string" ? nr4(r3, n.split(` -`)) : n); -} -function Qn3(e3) { - switch (e3) { - case "cr": - return "\r"; - case "crlf": - return `\r -`; - default: - return ` -`; - } -} -function Zn4() { - return { value: "", length: 0, queue: [] }; -} -function Fl(e3, r3) { - return Dt6(e3, { type: "indent" }, r3); -} -function El(e3, r3, n) { - return r3 === Number.NEGATIVE_INFINITY ? e3.root || Zn4() : r3 < 0 ? Dt6(e3, { type: "dedent" }, n) : r3 ? r3.type === "root" ? { ...e3, root: e3 } : Dt6(e3, { type: typeof r3 == "string" ? "stringAlign" : "numberAlign", n: r3 }, n) : e3; -} -function Dt6(e3, r3, n) { - let t12 = r3.type === "dedent" ? e3.queue.slice(0, -1) : [...e3.queue, r3], a = "", i = 0, u = 0, o2 = 0; - for (let p4 of t12) - switch (p4.type) { - case "indent": - c3(), n.useTabs ? s3(1) : l(n.tabWidth); - break; - case "stringAlign": - c3(), a += p4.n, i += p4.n.length; - break; - case "numberAlign": - u += 1, o2 += p4.n; - break; - default: - throw new Error(`Unexpected type '${p4.type}'`); - } - return D6(), { ...e3, value: a, length: i, queue: t12 }; - function s3(p4) { - a += " ".repeat(p4), i += n.tabWidth * p4; - } - function l(p4) { - a += " ".repeat(p4), i += p4; - } - function c3() { - n.useTabs ? f3() : D6(); - } - function f3() { - u > 0 && s3(u), h4(); - } - function D6() { - o2 > 0 && l(o2), h4(); - } - function h4() { - u = 0, o2 = 0; - } -} -function pt4(e3) { - let r3 = 0, n = 0, t12 = e3.length; - e: - for (; t12--; ) { - let a = e3[t12]; - if (a === ir5) { - n++; - continue; - } - for (let i = a.length - 1; i >= 0; i--) { - let u = a[i]; - if (u === " " || u === " ") - r3++; - else { - e3[t12] = a.slice(0, i + 1); - break e; - } - } - } - if (r3 > 0 || n > 0) - for (e3.length = t12 + 1; n-- > 0; ) - e3.push(ir5); - return r3; -} -function Pr5(e3, r3, n, t12, a, i) { - if (n === Number.POSITIVE_INFINITY) - return true; - let u = r3.length, o2 = [e3], s3 = []; - for (; n >= 0; ) { - if (o2.length === 0) { - if (u === 0) - return true; - o2.push(r3[--u]); - continue; - } - let { mode: l, doc: c3 } = o2.pop(); - switch (fe5(c3)) { - case ue4: - s3.push(c3), n -= Xe5(c3); - break; - case X5: - case H6: { - let f3 = Wn3(c3); - for (let D6 = f3.length - 1; D6 >= 0; D6--) - o2.push({ mode: l, doc: f3[D6] }); - break; - } - case Q5: - case Z6: - case oe5: - case le6: - o2.push({ mode: l, doc: c3.contents }); - break; - case ae4: - n += pt4(s3); - break; - case G5: { - if (i && c3.break) - return false; - let f3 = c3.break ? V4 : l, D6 = c3.expandedStates && f3 === V4 ? U6(false, c3.expandedStates, -1) : c3.contents; - o2.push({ mode: f3, doc: D6 }); - break; - } - case W4: { - let D6 = (c3.groupId ? a[c3.groupId] || re6 : l) === V4 ? c3.breakContents : c3.flatContents; - D6 && o2.push({ mode: l, doc: D6 }); - break; - } - case $5: - if (l === V4 || c3.hard) - return true; - c3.soft || (s3.push(" "), n--); - break; - case se4: - t12 = true; - break; - case ce5: - if (t12) - return false; - break; - } - } - return false; -} -function ei5(e3, r3) { - let n = {}, t12 = r3.printWidth, a = Qn3(r3.endOfLine), i = 0, u = [{ ind: Zn4(), mode: V4, doc: e3 }], o2 = [], s3 = false, l = [], c3 = 0; - for (Jn4(e3); u.length > 0; ) { - let { ind: D6, mode: h4, doc: p4 } = u.pop(); - switch (fe5(p4)) { - case ue4: { - let d5 = a !== ` -` ? R5(false, p4, ` -`, a) : p4; - o2.push(d5), u.length > 0 && (i += Xe5(d5)); - break; - } - case X5: - for (let d5 = p4.length - 1; d5 >= 0; d5--) - u.push({ ind: D6, mode: h4, doc: p4[d5] }); - break; - case ve6: - if (c3 >= 2) - throw new Error("There are too many 'cursor' in doc."); - o2.push(ir5), c3++; - break; - case Q5: - u.push({ ind: Fl(D6, r3), mode: h4, doc: p4.contents }); - break; - case Z6: - u.push({ ind: El(D6, p4.n, r3), mode: h4, doc: p4.contents }); - break; - case ae4: - i -= pt4(o2); - break; - case G5: - switch (h4) { - case re6: - if (!s3) { - u.push({ ind: D6, mode: p4.break ? V4 : re6, doc: p4.contents }); - break; - } - case V4: { - s3 = false; - let d5 = { ind: D6, mode: re6, doc: p4.contents }, m3 = t12 - i, g3 = l.length > 0; - if (!p4.break && Pr5(d5, u, m3, g3, n)) - u.push(d5); - else if (p4.expandedStates) { - let x7 = U6(false, p4.expandedStates, -1); - if (p4.break) { - u.push({ ind: D6, mode: V4, doc: x7 }); - break; - } else - for (let F5 = 1; F5 < p4.expandedStates.length + 1; F5++) - if (F5 >= p4.expandedStates.length) { - u.push({ ind: D6, mode: V4, doc: x7 }); - break; - } else { - let B8 = p4.expandedStates[F5], b5 = { ind: D6, mode: re6, doc: B8 }; - if (Pr5(b5, u, m3, g3, n)) { - u.push(b5); - break; - } - } - } else - u.push({ ind: D6, mode: V4, doc: p4.contents }); - break; - } - } - p4.id && (n[p4.id] = U6(false, u, -1).mode); - break; - case H6: { - let d5 = t12 - i, { parts: m3 } = p4; - if (m3.length === 0) - break; - let [g3, x7] = m3, F5 = { ind: D6, mode: re6, doc: g3 }, B8 = { ind: D6, mode: V4, doc: g3 }, b5 = Pr5(F5, [], d5, l.length > 0, n, true); - if (m3.length === 1) { - b5 ? u.push(F5) : u.push(B8); - break; - } - let v7 = { ind: D6, mode: re6, doc: x7 }, y5 = { ind: D6, mode: V4, doc: x7 }; - if (m3.length === 2) { - b5 ? u.push(v7, F5) : u.push(y5, B8); - break; - } - m3.splice(0, 2); - let k4 = { ind: D6, mode: h4, doc: Tr4(m3) }, E6 = m3[0]; - Pr5({ ind: D6, mode: re6, doc: [g3, x7, E6] }, [], d5, l.length > 0, n, true) ? u.push(k4, v7, F5) : b5 ? u.push(k4, y5, F5) : u.push(k4, y5, B8); - break; - } - case W4: - case oe5: { - let d5 = p4.groupId ? n[p4.groupId] : h4; - if (d5 === V4) { - let m3 = p4.type === W4 ? p4.breakContents : p4.negate ? p4.contents : Qe6(p4.contents); - m3 && u.push({ ind: D6, mode: h4, doc: m3 }); - } - if (d5 === re6) { - let m3 = p4.type === W4 ? p4.flatContents : p4.negate ? Qe6(p4.contents) : p4.contents; - m3 && u.push({ ind: D6, mode: h4, doc: m3 }); - } - break; - } - case se4: - l.push({ ind: D6, mode: h4, doc: p4.contents }); - break; - case ce5: - l.length > 0 && u.push({ ind: D6, mode: h4, doc: Ne5 }); - break; - case $5: - switch (h4) { - case re6: - if (p4.hard) - s3 = true; - else { - p4.soft || (o2.push(" "), i += 1); - break; - } - case V4: - if (l.length > 0) { - u.push({ ind: D6, mode: h4, doc: p4 }, ...l.reverse()), l.length = 0; - break; - } - p4.literal ? D6.root ? (o2.push(a, D6.root.value), i = D6.root.length) : (o2.push(a), i = 0) : (i -= pt4(o2), o2.push(a + D6.value), i = D6.length); - break; - } - break; - case le6: - u.push({ ind: D6, mode: h4, doc: p4.contents }); - break; - case ee6: - break; - default: - throw new Ae4(p4); - } - u.length === 0 && l.length > 0 && (u.push(...l.reverse()), l.length = 0); - } - let f3 = o2.indexOf(ir5); - if (f3 !== -1) { - let D6 = o2.indexOf(ir5, f3 + 1), h4 = o2.slice(0, f3).join(""), p4 = o2.slice(f3 + 1, D6).join(""), d5 = o2.slice(D6 + 1).join(""); - return { formatted: h4 + p4 + d5, cursorNodeStart: h4.length, cursorNodeText: p4 }; - } - return { formatted: o2.join("") }; -} -async function Cl(e3, r3) { - if (e3.lang === "yaml") { - let n = e3.value.trim(), t12 = n ? await r3(n, { parser: "yaml" }) : ""; - return qe5([e3.startDelimiter, O5, t12, t12 ? O5 : "", e3.endDelimiter]); - } -} -function ni5(e3, r3) { - if (!r3) - return; - let n = bl(r3).toLowerCase(); - return e3.find((t12) => { - var a, i; - return ((a = t12.extensions) == null ? void 0 : a.some((u) => n.endsWith(u))) || ((i = t12.filenames) == null ? void 0 : i.some((u) => u.toLowerCase() === n)); - }); -} -function xl(e3, r3) { - if (r3) - return e3.find(({ name: n }) => n.toLowerCase() === r3) ?? e3.find(({ aliases: n }) => n == null ? void 0 : n.includes(r3)) ?? e3.find(({ extensions: n }) => n == null ? void 0 : n.includes(`.${r3}`)); -} -function yl2(e3, r3) { - let n = e3.plugins.flatMap((a) => a.languages ?? []), t12 = xl(n, r3.language) ?? ni5(n, r3.physicalFile) ?? ni5(n, r3.file) ?? (r3.physicalFile, void 0); - return t12 == null ? void 0 : t12.parsers[0]; -} -function Te6(e3) { - return e3.position.start.offset; -} -function Se6(e3) { - return e3.position.end.offset; -} -function Lr5(e3) { - let r3 = [], n = e3.split(/([\t\n ]+)/); - for (let [a, i] of n.entries()) { - if (a % 2 === 1) { - r3.push({ type: "whitespace", value: /\n/.test(i) ? ` -` : " " }); - continue; - } - if ((a === 0 || a === n.length - 1) && i === "") - continue; - let u = i.split(new RegExp(`(${ui5})`)); - for (let [o2, s3] of u.entries()) - if (!((o2 === 0 || o2 === u.length - 1) && s3 === "")) { - if (o2 % 2 === 0) { - s3 !== "" && t12({ type: "word", value: s3, kind: Pe6, hasLeadingPunctuation: ht3.test(s3[0]), hasTrailingPunctuation: ht3.test(U6(false, s3, -1)) }); - continue; - } - t12(ht3.test(s3) ? { type: "word", value: s3, kind: ar3, hasLeadingPunctuation: true, hasTrailingPunctuation: true } : { type: "word", value: s3, kind: ai5.test(s3) ? Ce6 : De7, hasLeadingPunctuation: false, hasTrailingPunctuation: false }); - } - } - return r3; - function t12(a) { - let i = U6(false, r3, -1); - (i == null ? void 0 : i.type) === "word" && !u(Pe6, ar3) && ![i.value, a.value].some((o2) => /\u3000/.test(o2)) && r3.push({ type: "whitespace", value: "" }), r3.push(a); - function u(o2, s3) { - return i.kind === o2 && a.kind === s3 || i.kind === s3 && a.kind === o2; - } - } -} -function Re7(e3, r3) { - let [, n, t12, a] = r3.slice(e3.position.start.offset, e3.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/); - return { numberText: n, marker: t12, leadingSpaces: a }; -} -function oi5(e3, r3) { - if (!e3.ordered || e3.children.length < 2) - return false; - let n = Number(Re7(e3.children[0], r3.originalText).numberText), t12 = Number(Re7(e3.children[1], r3.originalText).numberText); - if (n === 0 && e3.children.length > 2) { - let a = Number(Re7(e3.children[2], r3.originalText).numberText); - return t12 === 1 && a === 1; - } - return t12 === 1; -} -function Or3(e3, r3) { - let { value: n } = e3; - return e3.position.end.offset === r3.length && n.endsWith(` -`) && r3.endsWith(` -`) ? n.slice(0, -1) : n; -} -function be8(e3, r3) { - return function n(t12, a, i) { - let u = { ...r3(t12, a, i) }; - return u.children && (u.children = u.children.map((o2, s3) => n(o2, s3, [u, ...i]))), u; - }(e3, null, []); -} -function gt6(e3) { - if ((e3 == null ? void 0 : e3.type) !== "link" || e3.children.length !== 1) - return false; - let [r3] = e3.children; - return Te6(e3) === Te6(r3) && Se6(e3) === Se6(r3); -} -function wl(e3, r3) { - let { node: n } = e3; - if (n.type === "code" && n.lang !== null) { - let t12 = ii6(r3, { language: n.lang }); - if (t12) - return async (a) => { - let i = r3.__inJsTemplate ? "~" : "`", u = i.repeat(Math.max(3, wr5(n.value, i) + 1)), o2 = { parser: t12 }; - n.lang === "ts" || n.lang === "typescript" ? o2.filepath = "dummy.ts" : n.lang === "tsx" && (o2.filepath = "dummy.tsx"); - let s3 = await a(Or3(n, r3.originalText), o2); - return qe5([u, n.lang, n.meta ? " " + n.meta : "", O5, Ee3(s3), O5, u]); - }; - } - switch (n.type) { - case "front-matter": - return (t12) => ti5(n, t12); - case "import": - case "export": - return (t12) => t12(n.value, { parser: "babel" }); - case "jsx": - return (t12) => t12(`<$>${n.value}`, { parser: "__js_expression", rootMarker: "mdx" }); - } - return null; -} -function Bl(e3) { - let r3 = e3.match(Al); - if (!r3) - return { content: e3 }; - let { startDelimiter: n, language: t12, value: a = "", endDelimiter: i } = r3.groups, u = t12.trim() || "yaml"; - if (n === "+++" && (u = "toml"), u !== "yaml" && n !== i) - return { content: e3 }; - let [o2] = r3; - return { frontMatter: { type: "front-matter", lang: u, value: a, startDelimiter: n, endDelimiter: i, raw: o2.replace(/\n$/, "") }, content: R5(false, o2, /[^\n]/g, " ") + e3.slice(o2.length) }; -} -function vt7(e3) { - let r3 = `@(${ci4.join("|")})`, n = new RegExp([``, `{\\s*\\/\\*\\s*${r3}\\s*\\*\\/\\s*}`, ``].join("|"), "m"), t12 = e3.match(n); - return (t12 == null ? void 0 : t12.index) === 0; -} -function Tl(e3, r3) { - return e3 = Sl(e3, r3), e3 = _l(e3), e3 = Ol(e3, r3), e3 = Il(e3, r3), e3 = Ll(e3), e3; -} -function Sl(e3, r3) { - return be8(e3, (n) => n.type !== "text" || n.value === "*" || n.value === "_" || !ql.test(n.value) || n.position.end.offset - n.position.start.offset === n.value.length ? n : { ...n, value: r3.originalText.slice(n.position.start.offset, n.position.end.offset) }); -} -function Pl(e3, r3, n) { - return be8(e3, (t12) => { - if (!t12.children) - return t12; - let a = t12.children.reduce((i, u) => { - let o2 = U6(false, i, -1); - return o2 && r3(o2, u) ? i.splice(-1, 1, n(o2, u)) : i.push(u), i; - }, []); - return { ...t12, children: a }; - }); -} -function _l(e3) { - return Pl(e3, (r3, n) => r3.type === "text" && n.type === "text", (r3, n) => ({ type: "text", value: r3.value + n.value, position: { start: r3.position.start, end: n.position.end } })); -} -function Ll(e3) { - return be8(e3, (r3, n, [t12]) => { - if (r3.type !== "text") - return r3; - let { value: a } = r3; - return t12.type === "paragraph" && (n === 0 && (a = a.trimStart()), n === t12.children.length - 1 && (a = a.trimEnd())), { type: "sentence", position: r3.position, children: Lr5(a) }; - }); -} -function Ol(e3, r3) { - return be8(e3, (n, t12, a) => { - if (n.type === "code") { - let i = /^\n?(?: {4,}|\t)/.test(r3.originalText.slice(n.position.start.offset, n.position.end.offset)); - if (n.isIndented = i, i) - for (let u = 0; u < a.length; u++) { - let o2 = a[u]; - if (o2.hasIndentedCodeblock) - break; - o2.type === "list" && (o2.hasIndentedCodeblock = true); - } - } - return n; - }); -} -function Il(e3, r3) { - return be8(e3, (a, i, u) => { - if (a.type === "list" && a.children.length > 0) { - for (let o2 = 0; o2 < u.length; o2++) { - let s3 = u[o2]; - if (s3.type === "list" && !s3.isAligned) - return a.isAligned = false, a; - } - a.isAligned = t12(a); - } - return a; - }); - function n(a) { - return a.children.length === 0 ? -1 : a.children[0].position.start.column - 1; - } - function t12(a) { - if (!a.ordered) - return true; - let [i, u] = a.children; - if (Re7(i, r3.originalText).leadingSpaces.length > 1) - return true; - let s3 = n(i); - if (s3 === -1) - return false; - if (a.children.length === 1) - return s3 % r3.tabWidth === 0; - let l = n(u); - return s3 !== l ? false : s3 % r3.tabWidth === 0 ? true : Re7(u, r3.originalText).leadingSpaces.length > 1; - } -} -function Nl(e3) { - return (e3 == null ? void 0 : e3.type) === "front-matter"; -} -function hi5(e3, r3, n) { - if ((e3.type === "front-matter" || e3.type === "code" || e3.type === "yaml" || e3.type === "import" || e3.type === "export" || e3.type === "jsx") && delete r3.value, e3.type === "list" && delete r3.isAligned, (e3.type === "list" || e3.type === "listItem") && delete r3.spread, e3.type === "text" || (e3.type === "inlineCode" && (r3.value = R5(false, e3.value, ` -`, " ")), e3.type === "wikiLink" && (r3.value = R5(false, e3.value.trim(), /[\t\n]+/g, " ")), (e3.type === "definition" || e3.type === "linkReference" || e3.type === "imageReference") && (r3.label = (0, di4.default)(e3.label)), (e3.type === "definition" || e3.type === "link" || e3.type === "image") && e3.title && (r3.title = R5(false, e3.title, /\\(?=["')])/g, "")), (n == null ? void 0 : n.type) === "root" && n.children.length > 0 && (n.children[0] === e3 || pi5(n.children[0]) && n.children[1] === e3) && e3.type === "html" && vt7(e3.value))) - return null; -} -function cr4(e3) { - if (sr5 !== null && typeof sr5.property) { - let r3 = sr5; - return sr5 = cr4.prototype = null, r3; - } - return sr5 = cr4.prototype = e3 ?? /* @__PURE__ */ Object.create(null), new cr4(); -} -function Ft5(e3) { - return cr4(e3); -} -function Ml2(e3, r3 = "type") { - Ft5(e3); - function n(t12) { - let a = t12[r3], i = e3[a]; - if (!Array.isArray(i)) - throw Object.assign(new Error(`Missing visitor keys for '${a}'.`), { node: t12 }); - return i; - } - return n; -} -function Gl2({ parent: e3 }) { - if (e3.usesCJSpaces === void 0) { - let r3 = { " ": 0, "": 0 }, { children: n } = e3; - for (let t12 = 1; t12 < n.length - 1; ++t12) { - let a = n[t12]; - if (a.type === "whitespace" && (a.value === " " || a.value === "")) { - let i = n[t12 - 1].kind, u = n[t12 + 1].kind; - (i === De7 && u === Pe6 || i === Pe6 && u === De7) && ++r3[a.value]; - } - } - e3.usesCJSpaces = r3[" "] > r3[""]; - } - return e3.usesCJSpaces; -} -function Hl(e3, r3) { - if (r3) - return true; - let { previous: n, next: t12 } = e3; - if (!n || !t12) - return true; - let a = n.kind, i = t12.kind; - return bi5(a) && bi5(i) || a === Ce6 && i === De7 || i === Ce6 && a === De7 ? true : a === ar3 || i === ar3 || a === De7 && i === De7 ? false : Ei4.has(t12.value[0]) || Ei4.has(U6(false, n.value, -1)) ? true : n.hasTrailingPunctuation || t12.hasLeadingPunctuation ? false : Gl2(e3); -} -function Ci4(e3) { - return e3 === Pe6 || e3 === De7 || e3 === Ce6; -} -function bi5(e3) { - return e3 === Pe6 || e3 === Ce6; -} -function Wl(e3, r3, n, t12, a) { - if (n !== "always" || e3.hasAncestor((s3) => Vl.has(s3.type))) - return false; - if (t12) - return r3 !== ""; - if (r3 === " ") - return true; - let { previous: i, next: u } = e3; - return !(r3 === "" && ((i == null ? void 0 : i.kind) === Ce6 && Ci4(u == null ? void 0 : u.kind) || (u == null ? void 0 : u.kind) === Ce6 && Ci4(i == null ? void 0 : i.kind)) || !a && (u && $l.has(u.value[0]) || i && jl.has(U6(false, i.value, -1)))); -} -function Et6(e3, r3, n, t12) { - if (n === "preserve" && r3 === ` -`) - return O5; - let a = r3 === " " || r3 === ` -` && Hl(e3, t12); - return Wl(e3, r3, n, t12, a) ? a ? Sr5 : rr4 : a ? " " : ""; -} -function Jl(e3, r3, n) { - var a, i, u; - let { node: t12 } = e3; - if (nf(e3)) - return Lr5(r3.originalText.slice(t12.position.start.offset, t12.position.end.offset)).map((o2) => o2.type === "word" ? o2.value : Et6(e3, o2.value, r3.proseWrap, true)); - switch (t12.type) { - case "front-matter": - return r3.originalText.slice(t12.position.start.offset, t12.position.end.offset); - case "root": - return t12.children.length === 0 ? "" : [Xn5(ef(e3, r3, n)), O5]; - case "paragraph": - return Y7(e3, r3, n, { postprocessor: Tr4 }); - case "sentence": - return Y7(e3, r3, n); - case "word": { - let o2 = R5(false, R5(false, t12.value, "*", "\\*"), new RegExp([`(^|${ur5})(_+)`, `(_+)(${ur5}|$)`].join("|"), "g"), (c3, f3, D6, h4, p4) => R5(false, D6 ? `${f3}${D6}` : `${h4}${p4}`, "_", "\\_")), s3 = (c3, f3, D6) => c3.type === "sentence" && D6 === 0, l = (c3, f3, D6) => gt6(c3.children[D6 - 1]); - return o2 !== t12.value && (e3.match(void 0, s3, l) || e3.match(void 0, s3, (c3, f3, D6) => c3.type === "emphasis" && D6 === 0, l)) && (o2 = o2.replace(/^(\\?[*_])+/, (c3) => R5(false, c3, "\\", ""))), o2; - } - case "whitespace": { - let { next: o2 } = e3, s3 = o2 && /^>|^(?:[*+-]|#{1,6}|\d+[).])$/.test(o2.value) ? "never" : r3.proseWrap; - return Et6(e3, t12.value, s3); - } - case "emphasis": { - let o2; - if (gt6(t12.children[0])) - o2 = r3.originalText[t12.position.start.offset]; - else { - let { previous: s3, next: l } = e3; - o2 = (s3 == null ? void 0 : s3.type) === "sentence" && ((a = U6(false, s3.children, -1)) == null ? void 0 : a.type) === "word" && !U6(false, s3.children, -1).hasTrailingPunctuation || (l == null ? void 0 : l.type) === "sentence" && ((i = l.children[0]) == null ? void 0 : i.type) === "word" && !l.children[0].hasLeadingPunctuation || e3.hasAncestor((f3) => f3.type === "emphasis") ? "*" : "_"; - } - return [o2, Y7(e3, r3, n), o2]; - } - case "strong": - return ["**", Y7(e3, r3, n), "**"]; - case "delete": - return ["~~", Y7(e3, r3, n), "~~"]; - case "inlineCode": { - let o2 = r3.proseWrap === "preserve" ? t12.value : R5(false, t12.value, ` -`, " "), s3 = Nn4(o2, "`"), l = "`".repeat(s3 || 1), c3 = o2.startsWith("`") || o2.endsWith("`") || /^[\n ]/.test(o2) && /[\n ]$/.test(o2) && /[^\n ]/.test(o2) ? " " : ""; - return [l, c3, o2, c3, l]; - } - case "wikiLink": { - let o2 = ""; - return r3.proseWrap === "preserve" ? o2 = t12.value : o2 = R5(false, t12.value, /[\t\n]+/g, " "), ["[[", o2, "]]"]; - } - case "link": - switch (r3.originalText[t12.position.start.offset]) { - case "<": { - let o2 = "mailto:"; - return ["<", t12.url.startsWith(o2) && r3.originalText.slice(t12.position.start.offset + 1, t12.position.start.offset + 1 + o2.length) !== o2 ? t12.url.slice(o2.length) : t12.url, ">"]; - } - case "[": - return ["[", Y7(e3, r3, n), "](", Ct6(t12.url, ")"), Ir5(t12.title, r3), ")"]; - default: - return r3.originalText.slice(t12.position.start.offset, t12.position.end.offset); - } - case "image": - return ["![", t12.alt || "", "](", Ct6(t12.url, ")"), Ir5(t12.title, r3), ")"]; - case "blockquote": - return ["> ", Fe6("> ", Y7(e3, r3, n))]; - case "heading": - return ["#".repeat(t12.depth) + " ", Y7(e3, r3, n)]; - case "code": { - if (t12.isIndented) { - let l = " ".repeat(4); - return Fe6(l, [l, Ee3(t12.value, O5)]); - } - let o2 = r3.__inJsTemplate ? "~" : "`", s3 = o2.repeat(Math.max(3, wr5(t12.value, o2) + 1)); - return [s3, t12.lang || "", t12.meta ? " " + t12.meta : "", O5, Ee3(Or3(t12, r3.originalText), O5), O5, s3]; - } - case "html": { - let { parent: o2, isLast: s3 } = e3, l = o2.type === "root" && s3 ? t12.value.trimEnd() : t12.value, c3 = /^$/s.test(l); - return Ee3(l, c3 ? O5 : qe5(tr5)); - } - case "list": { - let o2 = yi4(t12, e3.parent), s3 = oi5(t12, r3); - return Y7(e3, r3, n, { processor(l) { - let c3 = D6(), f3 = l.node; - if (f3.children.length === 2 && f3.children[1].type === "html" && f3.children[0].position.start.column !== f3.children[1].position.start.column) - return [c3, xi5(l, r3, n, c3)]; - return [c3, Fe6(" ".repeat(c3.length), xi5(l, r3, n, c3))]; - function D6() { - let h4 = t12.ordered ? (l.isFirst ? t12.start : s3 ? 1 : t12.start + l.index) + (o2 % 2 === 0 ? ". " : ") ") : o2 % 2 === 0 ? "- " : "* "; - return t12.isAligned || t12.hasIndentedCodeblock ? Xl(h4, r3) : h4; - } - } }); - } - case "thematicBreak": { - let { ancestors: o2 } = e3, s3 = o2.findIndex((c3) => c3.type === "list"); - return s3 === -1 ? "---" : yi4(o2[s3], o2[s3 + 1]) % 2 === 0 ? "***" : "---"; - } - case "linkReference": - return ["[", Y7(e3, r3, n), "]", t12.referenceType === "full" ? bt5(t12) : t12.referenceType === "collapsed" ? "[]" : ""]; - case "imageReference": - switch (t12.referenceType) { - case "full": - return ["![", t12.alt || "", "]", bt5(t12)]; - default: - return ["![", t12.alt, "]", t12.referenceType === "collapsed" ? "[]" : ""]; - } - case "definition": { - let o2 = r3.proseWrap === "always" ? Sr5 : " "; - return Ze7([bt5(t12), ":", Qe6([o2, Ct6(t12.url), t12.title === null ? "" : [o2, Ir5(t12.title, r3, false)]])]); - } - case "footnote": - return ["[^", Y7(e3, r3, n), "]"]; - case "footnoteReference": - return Bi4(t12); - case "footnoteDefinition": { - let o2 = t12.children.length === 1 && t12.children[0].type === "paragraph" && (r3.proseWrap === "never" || r3.proseWrap === "preserve" && t12.children[0].position.start.line === t12.children[0].position.end.line); - return [Bi4(t12), ": ", o2 ? Y7(e3, r3, n) : Ze7([Fe6(" ".repeat(4), Y7(e3, r3, n, { processor: ({ isFirst: s3 }) => s3 ? Ze7([rr4, n()]) : n() })), ((u = e3.next) == null ? void 0 : u.type) === "footnoteDefinition" ? rr4 : ""])]; - } - case "table": - return Zl(e3, r3, n); - case "tableCell": - return Y7(e3, r3, n); - case "break": - return /\s/.test(r3.originalText[t12.position.start.offset]) ? [" ", qe5(tr5)] : ["\\", O5]; - case "liquidNode": - return Ee3(t12.value, O5); - case "import": - case "export": - case "jsx": - return t12.value; - case "esComment": - return ["{/* ", t12.value, " */}"]; - case "math": - return ["$$", O5, t12.value ? [Ee3(t12.value, O5), O5] : "", "$$"]; - case "inlineMath": - return r3.originalText.slice(Te6(t12), Se6(t12)); - case "tableRow": - case "listItem": - case "text": - default: - throw new ri5(t12, "Markdown"); - } -} -function xi5(e3, r3, n, t12) { - let { node: a } = e3, i = a.checked === null ? "" : a.checked ? "[x] " : "[ ] "; - return [i, Y7(e3, r3, n, { processor({ node: u, isFirst: o2 }) { - if (o2 && u.type !== "list") - return Fe6(" ".repeat(i.length), n()); - let s3 = " ".repeat(uf(r3.tabWidth - t12.length, 0, 3)); - return [s3, Fe6(s3, n())]; - } })]; -} -function Xl(e3, r3) { - let n = t12(); - return e3 + " ".repeat(n >= 4 ? 0 : n); - function t12() { - let a = e3.length % r3.tabWidth; - return a === 0 ? 0 : r3.tabWidth - a; - } -} -function yi4(e3, r3) { - return Ql(e3, r3, (n) => n.ordered === e3.ordered); -} -function Ql(e3, r3, n) { - let t12 = -1; - for (let a of r3.children) - if (a.type === e3.type && n(a) ? t12++ : t12 = -1, a === e3) - return t12; -} -function Zl(e3, r3, n) { - let { node: t12 } = e3, a = [], i = e3.map(() => e3.map(({ index: f3 }) => { - let D6 = ei5(n(), r3).formatted, h4 = Xe5(D6); - return a[f3] = Math.max(a[f3] || 3, h4), { text: D6, width: h4 }; - }, "children"), "children"), u = s3(false); - if (r3.proseWrap !== "never") - return [er5, u]; - let o2 = s3(true); - return [er5, Ze7($n4(o2, u))]; - function s3(f3) { - let D6 = [c3(i[0], f3), l(f3)]; - return i.length > 1 && D6.push(nr4(Ne5, i.slice(1).map((h4) => c3(h4, f3)))), nr4(Ne5, D6); - } - function l(f3) { - return `| ${a.map((h4, p4) => { - let d5 = t12.align[p4], m3 = d5 === "center" || d5 === "left" ? ":" : "-", g3 = d5 === "center" || d5 === "right" ? ":" : "-", x7 = f3 ? "-" : "-".repeat(h4 - 2); - return `${m3}${x7}${g3}`; - }).join(" | ")} |`; - } - function c3(f3, D6) { - return `| ${f3.map(({ text: p4, width: d5 }, m3) => { - if (D6) - return p4; - let g3 = a[m3] - d5, x7 = t12.align[m3], F5 = 0; - x7 === "right" ? F5 = g3 : x7 === "center" && (F5 = Math.floor(g3 / 2)); - let B8 = g3 - F5; - return `${" ".repeat(F5)}${p4}${" ".repeat(B8)}`; - }).join(" | ")} |`; - } -} -function ef(e3, r3, n) { - let t12 = [], a = null, { children: i } = e3.node; - for (let [u, o2] of i.entries()) - switch (xt6(o2)) { - case "start": - a === null && (a = { index: u, offset: o2.position.end.offset }); - break; - case "end": - a !== null && (t12.push({ start: a, end: { index: u, offset: o2.position.start.offset } }), a = null); - break; - default: - break; - } - return Y7(e3, r3, n, { processor({ index: u }) { - if (t12.length > 0) { - let o2 = t12[0]; - if (u === o2.start.index) - return [ki4(i[o2.start.index]), r3.originalText.slice(o2.start.offset, o2.end.offset), ki4(i[o2.end.index])]; - if (o2.start.index < u && u < o2.end.index) - return false; - if (u === o2.end.index) - return t12.shift(), false; - } - return n(); - } }); -} -function Y7(e3, r3, n, t12 = {}) { - let { postprocessor: a = (o2) => o2, processor: i = () => n() } = t12, u = []; - return e3.each(() => { - let o2 = i(e3); - o2 !== false && (u.length > 0 && rf(e3) && (u.push(O5), (tf(e3, r3) || Ai4(e3)) && u.push(O5), Ai4(e3) && u.push(O5)), u.push(o2)); - }, "children"), a(u); -} -function ki4(e3) { - if (e3.type === "html") - return e3.value; - if (e3.type === "paragraph" && Array.isArray(e3.children) && e3.children.length === 1 && e3.children[0].type === "esComment") - return ["{/* ", e3.children[0].value, " */}"]; -} -function xt6(e3) { - let r3; - if (e3.type === "html") - r3 = e3.value.match(/^$/); - else { - let n; - e3.type === "esComment" ? n = e3 : e3.type === "paragraph" && e3.children.length === 1 && e3.children[0].type === "esComment" && (n = e3.children[0]), n && (r3 = n.value.match(/^prettier-ignore(?:-(start|end))?$/)); - } - return r3 ? r3[1] || "next" : false; -} -function rf({ node: e3, parent: r3 }) { - let n = mt6.has(e3.type), t12 = e3.type === "html" && _r4.has(r3.type); - return !n && !t12; -} -function wi4(e3, r3) { - return e3.type === "listItem" && (e3.spread || r3.originalText.charAt(e3.position.end.offset - 1) === ` -`); -} -function tf({ node: e3, previous: r3, parent: n }, t12) { - if (wi4(r3, t12)) - return true; - let u = r3.type === e3.type && Kl.has(e3.type), o2 = n.type === "listItem" && !wi4(n, t12), s3 = xt6(r3) === "next", l = e3.type === "html" && r3.type === "html" && r3.position.end.line + 1 === e3.position.start.line, c3 = e3.type === "html" && n.type === "listItem" && r3.type === "paragraph" && r3.position.end.line + 1 === e3.position.start.line; - return !(u || o2 || s3 || l || c3); -} -function Ai4({ node: e3, previous: r3 }) { - let n = r3.type === "list", t12 = e3.type === "code" && e3.isIndented; - return n && t12; -} -function nf(e3) { - let r3 = e3.findAncestor((n) => n.type === "linkReference" || n.type === "imageReference"); - return r3 && (r3.type !== "linkReference" || r3.referenceType !== "full"); -} -function Ct6(e3, r3 = []) { - let n = [" ", ...Array.isArray(r3) ? r3 : [r3]]; - return new RegExp(n.map((t12) => `\\${t12}`).join("|")).test(e3) ? `<${e3}>` : e3; -} -function Ir5(e3, r3, n = true) { - if (!e3) - return ""; - if (n) - return " " + Ir5(e3, r3, false); - if (e3 = R5(false, e3, /\\(?=["')])/g, ""), e3.includes('"') && e3.includes("'") && !e3.includes(")")) - return `(${e3})`; - let t12 = Un4(e3, r3.singleQuote); - return e3 = R5(false, e3, "\\", "\\\\"), e3 = R5(false, e3, t12, `\\${t12}`), `${t12}${e3}${t12}`; -} -function uf(e3, r3, n) { - return e3 < r3 ? r3 : e3 > n ? n : e3; -} -function af(e3) { - return e3.index > 0 && xt6(e3.previous) === "next"; -} -function bt5(e3) { - return `[${(0, qi3.default)(e3.label)}]`; -} -function Bi4(e3) { - return `[^${e3.label}]`; -} -function Fg() { - return (e3) => be8(e3, (r3, n, [t12]) => r3.type !== "html" || Ic2.test(r3.value) || _r4.has(t12.type) ? r3 : { ...r3, type: "jsx" }); -} -function Jc2({ isMDX: e3 }) { - return (r3) => { - let n = (0, Hc.default)().use(Gc2.default, { commonmark: true, ...e3 && { blocks: [Oc2] } }).use(Kc.default).use(Yc2).use(Wc2.default).use(e3 ? Mc2 : $c2).use(Vc2).use(e3 ? Uc2 : $c2).use(jc2); - return n.run(n.parse(r3)); - }; -} -function $c2() { -} -var el, lt4, rl, tl, nl, il2, C3, On4, ul2, Ie5, kr5, _e7, Pi4, Oi4, Ni4, zi4, Ui4, Yi3, Vi3, Le4, Gi3, ze7, Ki4, Ji4, Zi5, lr5, hu2, vu2, Cu2, xu2, Pt6, wu2, qu2, Su2, Ou2, Nu2, zu2, Yu2, ju2, Yr5, Ot7, Ku2, Qu2, Oe7, jr4, ia4, oa4, la4, Mt5, ha4, Ca3, ka2, $t6, Sa3, ne6, Gt4, Ma2, Va3, Ga3, Wa3, Qa3, Jt5, io2, ao2, co3, ho2, Fo2, xo2, wo2, sn4, Lo2, No2, zo2, Vo2, $o2, Ho2, Qo2, es5, us4, os5, ls4, Ds6, hs3, gs5, Cs4, ks6, As5, gn5, Ns5, zs5, Us5, Gs5, Js5, Zs4, ec3, tc2, uc2, oc2, cc2, vc2, An3, kc2, Tc2, Pc2, Lc2, Ln4, al2, R5, ol2, U6, qi3, Nn4, wr5, Rn4, zn3, fl, Xe5, Ar5, Mn4, Un4, ue4, X5, ve6, Q5, Z6, ae4, G5, H6, W4, oe5, se4, ce5, $5, le6, ee6, Br4, fe5, hl, ft5, Ae4, Yn4, Vn4, jn3, Be6, qr5, er5, Ne5, vl, Sr5, rr4, O5, tr5, Wn3, V4, re6, ir5, dt5, ri5, ti5, bl, ii6, kl, ui5, ai5, ur5, mt6, _r4, ht3, Pe6, De7, Ce6, ar3, si6, Al, or4, ci4, li4, fi5, ql, Di4, di4, pi5, Rl, mi4, sr5, zl, gi4, Ul2, vi5, Yl2, Fi4, Vl, jl, $l, Ei4, Kl, of, Ti4, Pn4, Gc2, Hc, Wc2, Kc, hg, mg, Oc2, Ic2, gg, vg, Nc2, Sn4, Rc2, zc, Mc2, Uc2, Eg, Yc2, Cg, Vc2, bg, jc2, Xc2, xg, yg, Qc, _n4, kg, Zc, wg, YE; -var init_markdown = __esm({ - "node_modules/prettier/plugins/markdown.mjs"() { - el = Object.create; - lt4 = Object.defineProperty; - rl = Object.getOwnPropertyDescriptor; - tl = Object.getOwnPropertyNames; - nl = Object.getPrototypeOf; - il2 = Object.prototype.hasOwnProperty; - C3 = (e3, r3) => () => (r3 || e3((r3 = { exports: {} }).exports, r3), r3.exports); - On4 = (e3, r3) => { - for (var n in r3) - lt4(e3, n, { get: r3[n], enumerable: true }); - }; - ul2 = (e3, r3, n, t12) => { - if (r3 && typeof r3 == "object" || typeof r3 == "function") - for (let a of tl(r3)) - !il2.call(e3, a) && a !== n && lt4(e3, a, { get: () => r3[a], enumerable: !(t12 = rl(r3, a)) || t12.enumerable }); - return e3; - }; - Ie5 = (e3, r3, n) => (n = e3 != null ? el(nl(e3)) : {}, ul2(r3 || !e3 || !e3.__esModule ? lt4(n, "default", { value: e3, enumerable: true }) : n, e3)); - kr5 = C3((Tg, In4) => { - "use strict"; - In4.exports = sl3; - function sl3(e3) { - return String(e3).replace(/\s+/g, " "); - } - }); - _e7 = C3((_v, Si6) => { - Si6.exports = cf; - var sf = Object.prototype.hasOwnProperty; - function cf() { - for (var e3 = {}, r3 = 0; r3 < arguments.length; r3++) { - var n = arguments[r3]; - for (var t12 in n) - sf.call(n, t12) && (e3[t12] = n[t12]); - } - return e3; - } - }); - Pi4 = C3((Lv, yt7) => { - typeof Object.create == "function" ? yt7.exports = function(r3, n) { - n && (r3.super_ = n, r3.prototype = Object.create(n.prototype, { constructor: { value: r3, enumerable: false, writable: true, configurable: true } })); - } : yt7.exports = function(r3, n) { - if (n) { - r3.super_ = n; - var t12 = function() { - }; - t12.prototype = n.prototype, r3.prototype = new t12(), r3.prototype.constructor = r3; - } - }; - }); - Oi4 = C3((Ov, Li6) => { - "use strict"; - var lf = _e7(), _i6 = Pi4(); - Li6.exports = ff; - function ff(e3) { - var r3, n, t12; - _i6(i, e3), _i6(a, i), r3 = i.prototype; - for (n in r3) - t12 = r3[n], t12 && typeof t12 == "object" && (r3[n] = "concat" in t12 ? t12.concat() : lf(t12)); - return i; - function a(u) { - return e3.apply(this, u); - } - function i() { - return this instanceof i ? e3.apply(this, arguments) : new a(arguments); - } - } - }); - Ni4 = C3((Iv, Ii6) => { - "use strict"; - Ii6.exports = Df; - function Df(e3, r3, n) { - return t12; - function t12() { - var a = n || this, i = a[e3]; - return a[e3] = !r3, u; - function u() { - a[e3] = i; - } - } - } - }); - zi4 = C3((Nv, Ri5) => { - "use strict"; - Ri5.exports = pf; - function pf(e3) { - for (var r3 = String(e3), n = [], t12 = /\r?\n|\r/g; t12.exec(r3); ) - n.push(t12.lastIndex); - return n.push(r3.length + 1), { toPoint: a, toPosition: a, toOffset: i }; - function a(u) { - var o2 = -1; - if (u > -1 && u < n[n.length - 1]) { - for (; ++o2 < n.length; ) - if (n[o2] > u) - return { line: o2 + 1, column: u - (n[o2 - 1] || 0) + 1, offset: u }; - } - return {}; - } - function i(u) { - var o2 = u && u.line, s3 = u && u.column, l; - return !isNaN(o2) && !isNaN(s3) && o2 - 1 in n && (l = (n[o2 - 2] || 0) + s3 - 1 || 0), l > -1 && l < n[n.length - 1] ? l : -1; - } - } - }); - Ui4 = C3((Rv, Mi6) => { - "use strict"; - Mi6.exports = df; - var kt8 = "\\"; - function df(e3, r3) { - return n; - function n(t12) { - for (var a = 0, i = t12.indexOf(kt8), u = e3[r3], o2 = [], s3; i !== -1; ) - o2.push(t12.slice(a, i)), a = i + 1, s3 = t12.charAt(a), (!s3 || u.indexOf(s3) === -1) && o2.push(kt8), i = t12.indexOf(kt8, a + 1); - return o2.push(t12.slice(a)), o2.join(""); - } - } - }); - Yi3 = C3((zv, hf) => { - hf.exports = { AElig: "\xC6", AMP: "&", Aacute: "\xC1", Acirc: "\xC2", Agrave: "\xC0", Aring: "\xC5", Atilde: "\xC3", Auml: "\xC4", COPY: "\xA9", Ccedil: "\xC7", ETH: "\xD0", Eacute: "\xC9", Ecirc: "\xCA", Egrave: "\xC8", Euml: "\xCB", GT: ">", Iacute: "\xCD", Icirc: "\xCE", Igrave: "\xCC", Iuml: "\xCF", LT: "<", Ntilde: "\xD1", Oacute: "\xD3", Ocirc: "\xD4", Ograve: "\xD2", Oslash: "\xD8", Otilde: "\xD5", Ouml: "\xD6", QUOT: '"', REG: "\xAE", THORN: "\xDE", Uacute: "\xDA", Ucirc: "\xDB", Ugrave: "\xD9", Uuml: "\xDC", Yacute: "\xDD", aacute: "\xE1", acirc: "\xE2", acute: "\xB4", aelig: "\xE6", agrave: "\xE0", amp: "&", aring: "\xE5", atilde: "\xE3", auml: "\xE4", brvbar: "\xA6", ccedil: "\xE7", cedil: "\xB8", cent: "\xA2", copy: "\xA9", curren: "\xA4", deg: "\xB0", divide: "\xF7", eacute: "\xE9", ecirc: "\xEA", egrave: "\xE8", eth: "\xF0", euml: "\xEB", frac12: "\xBD", frac14: "\xBC", frac34: "\xBE", gt: ">", iacute: "\xED", icirc: "\xEE", iexcl: "\xA1", igrave: "\xEC", iquest: "\xBF", iuml: "\xEF", laquo: "\xAB", lt: "<", macr: "\xAF", micro: "\xB5", middot: "\xB7", nbsp: "\xA0", not: "\xAC", ntilde: "\xF1", oacute: "\xF3", ocirc: "\xF4", ograve: "\xF2", ordf: "\xAA", ordm: "\xBA", oslash: "\xF8", otilde: "\xF5", ouml: "\xF6", para: "\xB6", plusmn: "\xB1", pound: "\xA3", quot: '"', raquo: "\xBB", reg: "\xAE", sect: "\xA7", shy: "\xAD", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", szlig: "\xDF", thorn: "\xFE", times: "\xD7", uacute: "\xFA", ucirc: "\xFB", ugrave: "\xF9", uml: "\xA8", uuml: "\xFC", yacute: "\xFD", yen: "\xA5", yuml: "\xFF" }; - }); - Vi3 = C3((Mv, mf) => { - mf.exports = { "0": "\uFFFD", "128": "\u20AC", "130": "\u201A", "131": "\u0192", "132": "\u201E", "133": "\u2026", "134": "\u2020", "135": "\u2021", "136": "\u02C6", "137": "\u2030", "138": "\u0160", "139": "\u2039", "140": "\u0152", "142": "\u017D", "145": "\u2018", "146": "\u2019", "147": "\u201C", "148": "\u201D", "149": "\u2022", "150": "\u2013", "151": "\u2014", "152": "\u02DC", "153": "\u2122", "154": "\u0161", "155": "\u203A", "156": "\u0153", "158": "\u017E", "159": "\u0178" }; - }); - Le4 = C3((Uv, ji5) => { - "use strict"; - ji5.exports = gf; - function gf(e3) { - var r3 = typeof e3 == "string" ? e3.charCodeAt(0) : e3; - return r3 >= 48 && r3 <= 57; - } - }); - Gi3 = C3((Yv, $i5) => { - "use strict"; - $i5.exports = vf; - function vf(e3) { - var r3 = typeof e3 == "string" ? e3.charCodeAt(0) : e3; - return r3 >= 97 && r3 <= 102 || r3 >= 65 && r3 <= 70 || r3 >= 48 && r3 <= 57; - } - }); - ze7 = C3((Vv, Hi5) => { - "use strict"; - Hi5.exports = Ff; - function Ff(e3) { - var r3 = typeof e3 == "string" ? e3.charCodeAt(0) : e3; - return r3 >= 97 && r3 <= 122 || r3 >= 65 && r3 <= 90; - } - }); - Ki4 = C3((jv, Wi4) => { - "use strict"; - var Ef = ze7(), Cf2 = Le4(); - Wi4.exports = bf; - function bf(e3) { - return Ef(e3) || Cf2(e3); - } - }); - Ji4 = C3(($v, xf2) => { - xf2.exports = { AEli: "\xC6", AElig: "\xC6", AM: "&", AMP: "&", Aacut: "\xC1", Aacute: "\xC1", Abreve: "\u0102", Acir: "\xC2", Acirc: "\xC2", Acy: "\u0410", Afr: "\u{1D504}", Agrav: "\xC0", Agrave: "\xC0", Alpha: "\u0391", Amacr: "\u0100", And: "\u2A53", Aogon: "\u0104", Aopf: "\u{1D538}", ApplyFunction: "\u2061", Arin: "\xC5", Aring: "\xC5", Ascr: "\u{1D49C}", Assign: "\u2254", Atild: "\xC3", Atilde: "\xC3", Aum: "\xC4", Auml: "\xC4", Backslash: "\u2216", Barv: "\u2AE7", Barwed: "\u2306", Bcy: "\u0411", Because: "\u2235", Bernoullis: "\u212C", Beta: "\u0392", Bfr: "\u{1D505}", Bopf: "\u{1D539}", Breve: "\u02D8", Bscr: "\u212C", Bumpeq: "\u224E", CHcy: "\u0427", COP: "\xA9", COPY: "\xA9", Cacute: "\u0106", Cap: "\u22D2", CapitalDifferentialD: "\u2145", Cayleys: "\u212D", Ccaron: "\u010C", Ccedi: "\xC7", Ccedil: "\xC7", Ccirc: "\u0108", Cconint: "\u2230", Cdot: "\u010A", Cedilla: "\xB8", CenterDot: "\xB7", Cfr: "\u212D", Chi: "\u03A7", CircleDot: "\u2299", CircleMinus: "\u2296", CirclePlus: "\u2295", CircleTimes: "\u2297", ClockwiseContourIntegral: "\u2232", CloseCurlyDoubleQuote: "\u201D", CloseCurlyQuote: "\u2019", Colon: "\u2237", Colone: "\u2A74", Congruent: "\u2261", Conint: "\u222F", ContourIntegral: "\u222E", Copf: "\u2102", Coproduct: "\u2210", CounterClockwiseContourIntegral: "\u2233", Cross: "\u2A2F", Cscr: "\u{1D49E}", Cup: "\u22D3", CupCap: "\u224D", DD: "\u2145", DDotrahd: "\u2911", DJcy: "\u0402", DScy: "\u0405", DZcy: "\u040F", Dagger: "\u2021", Darr: "\u21A1", Dashv: "\u2AE4", Dcaron: "\u010E", Dcy: "\u0414", Del: "\u2207", Delta: "\u0394", Dfr: "\u{1D507}", DiacriticalAcute: "\xB4", DiacriticalDot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", DiacriticalGrave: "`", DiacriticalTilde: "\u02DC", Diamond: "\u22C4", DifferentialD: "\u2146", Dopf: "\u{1D53B}", Dot: "\xA8", DotDot: "\u20DC", DotEqual: "\u2250", DoubleContourIntegral: "\u222F", DoubleDot: "\xA8", DoubleDownArrow: "\u21D3", DoubleLeftArrow: "\u21D0", DoubleLeftRightArrow: "\u21D4", DoubleLeftTee: "\u2AE4", DoubleLongLeftArrow: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", DoubleLongRightArrow: "\u27F9", DoubleRightArrow: "\u21D2", DoubleRightTee: "\u22A8", DoubleUpArrow: "\u21D1", DoubleUpDownArrow: "\u21D5", DoubleVerticalBar: "\u2225", DownArrow: "\u2193", DownArrowBar: "\u2913", DownArrowUpArrow: "\u21F5", DownBreve: "\u0311", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVector: "\u21BD", DownLeftVectorBar: "\u2956", DownRightTeeVector: "\u295F", DownRightVector: "\u21C1", DownRightVectorBar: "\u2957", DownTee: "\u22A4", DownTeeArrow: "\u21A7", Downarrow: "\u21D3", Dscr: "\u{1D49F}", Dstrok: "\u0110", ENG: "\u014A", ET: "\xD0", ETH: "\xD0", Eacut: "\xC9", Eacute: "\xC9", Ecaron: "\u011A", Ecir: "\xCA", Ecirc: "\xCA", Ecy: "\u042D", Edot: "\u0116", Efr: "\u{1D508}", Egrav: "\xC8", Egrave: "\xC8", Element: "\u2208", Emacr: "\u0112", EmptySmallSquare: "\u25FB", EmptyVerySmallSquare: "\u25AB", Eogon: "\u0118", Eopf: "\u{1D53C}", Epsilon: "\u0395", Equal: "\u2A75", EqualTilde: "\u2242", Equilibrium: "\u21CC", Escr: "\u2130", Esim: "\u2A73", Eta: "\u0397", Eum: "\xCB", Euml: "\xCB", Exists: "\u2203", ExponentialE: "\u2147", Fcy: "\u0424", Ffr: "\u{1D509}", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", Fopf: "\u{1D53D}", ForAll: "\u2200", Fouriertrf: "\u2131", Fscr: "\u2131", GJcy: "\u0403", G: ">", GT: ">", Gamma: "\u0393", Gammad: "\u03DC", Gbreve: "\u011E", Gcedil: "\u0122", Gcirc: "\u011C", Gcy: "\u0413", Gdot: "\u0120", Gfr: "\u{1D50A}", Gg: "\u22D9", Gopf: "\u{1D53E}", GreaterEqual: "\u2265", GreaterEqualLess: "\u22DB", GreaterFullEqual: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", GreaterSlantEqual: "\u2A7E", GreaterTilde: "\u2273", Gscr: "\u{1D4A2}", Gt: "\u226B", HARDcy: "\u042A", Hacek: "\u02C7", Hat: "^", Hcirc: "\u0124", Hfr: "\u210C", HilbertSpace: "\u210B", Hopf: "\u210D", HorizontalLine: "\u2500", Hscr: "\u210B", Hstrok: "\u0126", HumpDownHump: "\u224E", HumpEqual: "\u224F", IEcy: "\u0415", IJlig: "\u0132", IOcy: "\u0401", Iacut: "\xCD", Iacute: "\xCD", Icir: "\xCE", Icirc: "\xCE", Icy: "\u0418", Idot: "\u0130", Ifr: "\u2111", Igrav: "\xCC", Igrave: "\xCC", Im: "\u2111", Imacr: "\u012A", ImaginaryI: "\u2148", Implies: "\u21D2", Int: "\u222C", Integral: "\u222B", Intersection: "\u22C2", InvisibleComma: "\u2063", InvisibleTimes: "\u2062", Iogon: "\u012E", Iopf: "\u{1D540}", Iota: "\u0399", Iscr: "\u2110", Itilde: "\u0128", Iukcy: "\u0406", Ium: "\xCF", Iuml: "\xCF", Jcirc: "\u0134", Jcy: "\u0419", Jfr: "\u{1D50D}", Jopf: "\u{1D541}", Jscr: "\u{1D4A5}", Jsercy: "\u0408", Jukcy: "\u0404", KHcy: "\u0425", KJcy: "\u040C", Kappa: "\u039A", Kcedil: "\u0136", Kcy: "\u041A", Kfr: "\u{1D50E}", Kopf: "\u{1D542}", Kscr: "\u{1D4A6}", LJcy: "\u0409", L: "<", LT: "<", Lacute: "\u0139", Lambda: "\u039B", Lang: "\u27EA", Laplacetrf: "\u2112", Larr: "\u219E", Lcaron: "\u013D", Lcedil: "\u013B", Lcy: "\u041B", LeftAngleBracket: "\u27E8", LeftArrow: "\u2190", LeftArrowBar: "\u21E4", LeftArrowRightArrow: "\u21C6", LeftCeiling: "\u2308", LeftDoubleBracket: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVector: "\u21C3", LeftDownVectorBar: "\u2959", LeftFloor: "\u230A", LeftRightArrow: "\u2194", LeftRightVector: "\u294E", LeftTee: "\u22A3", LeftTeeArrow: "\u21A4", LeftTeeVector: "\u295A", LeftTriangle: "\u22B2", LeftTriangleBar: "\u29CF", LeftTriangleEqual: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVector: "\u21BF", LeftUpVectorBar: "\u2958", LeftVector: "\u21BC", LeftVectorBar: "\u2952", Leftarrow: "\u21D0", Leftrightarrow: "\u21D4", LessEqualGreater: "\u22DA", LessFullEqual: "\u2266", LessGreater: "\u2276", LessLess: "\u2AA1", LessSlantEqual: "\u2A7D", LessTilde: "\u2272", Lfr: "\u{1D50F}", Ll: "\u22D8", Lleftarrow: "\u21DA", Lmidot: "\u013F", LongLeftArrow: "\u27F5", LongLeftRightArrow: "\u27F7", LongRightArrow: "\u27F6", Longleftarrow: "\u27F8", Longleftrightarrow: "\u27FA", Longrightarrow: "\u27F9", Lopf: "\u{1D543}", LowerLeftArrow: "\u2199", LowerRightArrow: "\u2198", Lscr: "\u2112", Lsh: "\u21B0", Lstrok: "\u0141", Lt: "\u226A", Map: "\u2905", Mcy: "\u041C", MediumSpace: "\u205F", Mellintrf: "\u2133", Mfr: "\u{1D510}", MinusPlus: "\u2213", Mopf: "\u{1D544}", Mscr: "\u2133", Mu: "\u039C", NJcy: "\u040A", Nacute: "\u0143", Ncaron: "\u0147", Ncedil: "\u0145", Ncy: "\u041D", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", NestedGreaterGreater: "\u226B", NestedLessLess: "\u226A", NewLine: ` -`, Nfr: "\u{1D511}", NoBreak: "\u2060", NonBreakingSpace: "\xA0", Nopf: "\u2115", Not: "\u2AEC", NotCongruent: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", NotElement: "\u2209", NotEqual: "\u2260", NotEqualTilde: "\u2242\u0338", NotExists: "\u2204", NotGreater: "\u226F", NotGreaterEqual: "\u2271", NotGreaterFullEqual: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", NotGreaterLess: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", NotGreaterTilde: "\u2275", NotHumpDownHump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", NotLeftTriangle: "\u22EA", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangleEqual: "\u22EC", NotLess: "\u226E", NotLessEqual: "\u2270", NotLessGreater: "\u2278", NotLessLess: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", NotLessTilde: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", NotPrecedes: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", NotReverseElement: "\u220C", NotRightTriangle: "\u22EB", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangleEqual: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", NotSubset: "\u2282\u20D2", NotSubsetEqual: "\u2288", NotSucceeds: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", NotSupersetEqual: "\u2289", NotTilde: "\u2241", NotTildeEqual: "\u2244", NotTildeFullEqual: "\u2247", NotTildeTilde: "\u2249", NotVerticalBar: "\u2224", Nscr: "\u{1D4A9}", Ntild: "\xD1", Ntilde: "\xD1", Nu: "\u039D", OElig: "\u0152", Oacut: "\xD3", Oacute: "\xD3", Ocir: "\xD4", Ocirc: "\xD4", Ocy: "\u041E", Odblac: "\u0150", Ofr: "\u{1D512}", Ograv: "\xD2", Ograve: "\xD2", Omacr: "\u014C", Omega: "\u03A9", Omicron: "\u039F", Oopf: "\u{1D546}", OpenCurlyDoubleQuote: "\u201C", OpenCurlyQuote: "\u2018", Or: "\u2A54", Oscr: "\u{1D4AA}", Oslas: "\xD8", Oslash: "\xD8", Otild: "\xD5", Otilde: "\xD5", Otimes: "\u2A37", Oum: "\xD6", Ouml: "\xD6", OverBar: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", OverParenthesis: "\u23DC", PartialD: "\u2202", Pcy: "\u041F", Pfr: "\u{1D513}", Phi: "\u03A6", Pi: "\u03A0", PlusMinus: "\xB1", Poincareplane: "\u210C", Popf: "\u2119", Pr: "\u2ABB", Precedes: "\u227A", PrecedesEqual: "\u2AAF", PrecedesSlantEqual: "\u227C", PrecedesTilde: "\u227E", Prime: "\u2033", Product: "\u220F", Proportion: "\u2237", Proportional: "\u221D", Pscr: "\u{1D4AB}", Psi: "\u03A8", QUO: '"', QUOT: '"', Qfr: "\u{1D514}", Qopf: "\u211A", Qscr: "\u{1D4AC}", RBarr: "\u2910", RE: "\xAE", REG: "\xAE", Racute: "\u0154", Rang: "\u27EB", Rarr: "\u21A0", Rarrtl: "\u2916", Rcaron: "\u0158", Rcedil: "\u0156", Rcy: "\u0420", Re: "\u211C", ReverseElement: "\u220B", ReverseEquilibrium: "\u21CB", ReverseUpEquilibrium: "\u296F", Rfr: "\u211C", Rho: "\u03A1", RightAngleBracket: "\u27E9", RightArrow: "\u2192", RightArrowBar: "\u21E5", RightArrowLeftArrow: "\u21C4", RightCeiling: "\u2309", RightDoubleBracket: "\u27E7", RightDownTeeVector: "\u295D", RightDownVector: "\u21C2", RightDownVectorBar: "\u2955", RightFloor: "\u230B", RightTee: "\u22A2", RightTeeArrow: "\u21A6", RightTeeVector: "\u295B", RightTriangle: "\u22B3", RightTriangleBar: "\u29D0", RightTriangleEqual: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVector: "\u21BE", RightUpVectorBar: "\u2954", RightVector: "\u21C0", RightVectorBar: "\u2953", Rightarrow: "\u21D2", Ropf: "\u211D", RoundImplies: "\u2970", Rrightarrow: "\u21DB", Rscr: "\u211B", Rsh: "\u21B1", RuleDelayed: "\u29F4", SHCHcy: "\u0429", SHcy: "\u0428", SOFTcy: "\u042C", Sacute: "\u015A", Sc: "\u2ABC", Scaron: "\u0160", Scedil: "\u015E", Scirc: "\u015C", Scy: "\u0421", Sfr: "\u{1D516}", ShortDownArrow: "\u2193", ShortLeftArrow: "\u2190", ShortRightArrow: "\u2192", ShortUpArrow: "\u2191", Sigma: "\u03A3", SmallCircle: "\u2218", Sopf: "\u{1D54A}", Sqrt: "\u221A", Square: "\u25A1", SquareIntersection: "\u2293", SquareSubset: "\u228F", SquareSubsetEqual: "\u2291", SquareSuperset: "\u2290", SquareSupersetEqual: "\u2292", SquareUnion: "\u2294", Sscr: "\u{1D4AE}", Star: "\u22C6", Sub: "\u22D0", Subset: "\u22D0", SubsetEqual: "\u2286", Succeeds: "\u227B", SucceedsEqual: "\u2AB0", SucceedsSlantEqual: "\u227D", SucceedsTilde: "\u227F", SuchThat: "\u220B", Sum: "\u2211", Sup: "\u22D1", Superset: "\u2283", SupersetEqual: "\u2287", Supset: "\u22D1", THOR: "\xDE", THORN: "\xDE", TRADE: "\u2122", TSHcy: "\u040B", TScy: "\u0426", Tab: " ", Tau: "\u03A4", Tcaron: "\u0164", Tcedil: "\u0162", Tcy: "\u0422", Tfr: "\u{1D517}", Therefore: "\u2234", Theta: "\u0398", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", Tilde: "\u223C", TildeEqual: "\u2243", TildeFullEqual: "\u2245", TildeTilde: "\u2248", Topf: "\u{1D54B}", TripleDot: "\u20DB", Tscr: "\u{1D4AF}", Tstrok: "\u0166", Uacut: "\xDA", Uacute: "\xDA", Uarr: "\u219F", Uarrocir: "\u2949", Ubrcy: "\u040E", Ubreve: "\u016C", Ucir: "\xDB", Ucirc: "\xDB", Ucy: "\u0423", Udblac: "\u0170", Ufr: "\u{1D518}", Ugrav: "\xD9", Ugrave: "\xD9", Umacr: "\u016A", UnderBar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", UnionPlus: "\u228E", Uogon: "\u0172", Uopf: "\u{1D54C}", UpArrow: "\u2191", UpArrowBar: "\u2912", UpArrowDownArrow: "\u21C5", UpDownArrow: "\u2195", UpEquilibrium: "\u296E", UpTee: "\u22A5", UpTeeArrow: "\u21A5", Uparrow: "\u21D1", Updownarrow: "\u21D5", UpperLeftArrow: "\u2196", UpperRightArrow: "\u2197", Upsi: "\u03D2", Upsilon: "\u03A5", Uring: "\u016E", Uscr: "\u{1D4B0}", Utilde: "\u0168", Uum: "\xDC", Uuml: "\xDC", VDash: "\u22AB", Vbar: "\u2AEB", Vcy: "\u0412", Vdash: "\u22A9", Vdashl: "\u2AE6", Vee: "\u22C1", Verbar: "\u2016", Vert: "\u2016", VerticalBar: "\u2223", VerticalLine: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", VeryThinSpace: "\u200A", Vfr: "\u{1D519}", Vopf: "\u{1D54D}", Vscr: "\u{1D4B1}", Vvdash: "\u22AA", Wcirc: "\u0174", Wedge: "\u22C0", Wfr: "\u{1D51A}", Wopf: "\u{1D54E}", Wscr: "\u{1D4B2}", Xfr: "\u{1D51B}", Xi: "\u039E", Xopf: "\u{1D54F}", Xscr: "\u{1D4B3}", YAcy: "\u042F", YIcy: "\u0407", YUcy: "\u042E", Yacut: "\xDD", Yacute: "\xDD", Ycirc: "\u0176", Ycy: "\u042B", Yfr: "\u{1D51C}", Yopf: "\u{1D550}", Yscr: "\u{1D4B4}", Yuml: "\u0178", ZHcy: "\u0416", Zacute: "\u0179", Zcaron: "\u017D", Zcy: "\u0417", Zdot: "\u017B", ZeroWidthSpace: "\u200B", Zeta: "\u0396", Zfr: "\u2128", Zopf: "\u2124", Zscr: "\u{1D4B5}", aacut: "\xE1", aacute: "\xE1", abreve: "\u0103", ac: "\u223E", acE: "\u223E\u0333", acd: "\u223F", acir: "\xE2", acirc: "\xE2", acut: "\xB4", acute: "\xB4", acy: "\u0430", aeli: "\xE6", aelig: "\xE6", af: "\u2061", afr: "\u{1D51E}", agrav: "\xE0", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", alpha: "\u03B1", amacr: "\u0101", amalg: "\u2A3F", am: "&", amp: "&", and: "\u2227", andand: "\u2A55", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", ange: "\u29A4", angle: "\u2220", angmsd: "\u2221", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angst: "\xC5", angzarr: "\u237C", aogon: "\u0105", aopf: "\u{1D552}", ap: "\u2248", apE: "\u2A70", apacir: "\u2A6F", ape: "\u224A", apid: "\u224B", apos: "'", approx: "\u2248", approxeq: "\u224A", arin: "\xE5", aring: "\xE5", ascr: "\u{1D4B6}", ast: "*", asymp: "\u2248", asympeq: "\u224D", atild: "\xE3", atilde: "\xE3", aum: "\xE4", auml: "\xE4", awconint: "\u2233", awint: "\u2A11", bNot: "\u2AED", backcong: "\u224C", backepsilon: "\u03F6", backprime: "\u2035", backsim: "\u223D", backsimeq: "\u22CD", barvee: "\u22BD", barwed: "\u2305", barwedge: "\u2305", bbrk: "\u23B5", bbrktbrk: "\u23B6", bcong: "\u224C", bcy: "\u0431", bdquo: "\u201E", becaus: "\u2235", because: "\u2235", bemptyv: "\u29B0", bepsi: "\u03F6", bernou: "\u212C", beta: "\u03B2", beth: "\u2136", between: "\u226C", bfr: "\u{1D51F}", bigcap: "\u22C2", bigcirc: "\u25EF", bigcup: "\u22C3", bigodot: "\u2A00", bigoplus: "\u2A01", bigotimes: "\u2A02", bigsqcup: "\u2A06", bigstar: "\u2605", bigtriangledown: "\u25BD", bigtriangleup: "\u25B3", biguplus: "\u2A04", bigvee: "\u22C1", bigwedge: "\u22C0", bkarow: "\u290D", blacklozenge: "\u29EB", blacksquare: "\u25AA", blacktriangle: "\u25B4", blacktriangledown: "\u25BE", blacktriangleleft: "\u25C2", blacktriangleright: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bnot: "\u2310", bopf: "\u{1D553}", bot: "\u22A5", bottom: "\u22A5", bowtie: "\u22C8", boxDL: "\u2557", boxDR: "\u2554", boxDl: "\u2556", boxDr: "\u2553", boxH: "\u2550", boxHD: "\u2566", boxHU: "\u2569", boxHd: "\u2564", boxHu: "\u2567", boxUL: "\u255D", boxUR: "\u255A", boxUl: "\u255C", boxUr: "\u2559", boxV: "\u2551", boxVH: "\u256C", boxVL: "\u2563", boxVR: "\u2560", boxVh: "\u256B", boxVl: "\u2562", boxVr: "\u255F", boxbox: "\u29C9", boxdL: "\u2555", boxdR: "\u2552", boxdl: "\u2510", boxdr: "\u250C", boxh: "\u2500", boxhD: "\u2565", boxhU: "\u2568", boxhd: "\u252C", boxhu: "\u2534", boxminus: "\u229F", boxplus: "\u229E", boxtimes: "\u22A0", boxuL: "\u255B", boxuR: "\u2558", boxul: "\u2518", boxur: "\u2514", boxv: "\u2502", boxvH: "\u256A", boxvL: "\u2561", boxvR: "\u255E", boxvh: "\u253C", boxvl: "\u2524", boxvr: "\u251C", bprime: "\u2035", breve: "\u02D8", brvba: "\xA6", brvbar: "\xA6", bscr: "\u{1D4B7}", bsemi: "\u204F", bsim: "\u223D", bsime: "\u22CD", bsol: "\\", bsolb: "\u29C5", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bump: "\u224E", bumpE: "\u2AAE", bumpe: "\u224F", bumpeq: "\u224F", cacute: "\u0107", cap: "\u2229", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", capcup: "\u2A47", capdot: "\u2A40", caps: "\u2229\uFE00", caret: "\u2041", caron: "\u02C7", ccaps: "\u2A4D", ccaron: "\u010D", ccedi: "\xE7", ccedil: "\xE7", ccirc: "\u0109", ccups: "\u2A4C", ccupssm: "\u2A50", cdot: "\u010B", cedi: "\xB8", cedil: "\xB8", cemptyv: "\u29B2", cen: "\xA2", cent: "\xA2", centerdot: "\xB7", cfr: "\u{1D520}", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", chi: "\u03C7", cir: "\u25CB", cirE: "\u29C3", circ: "\u02C6", circeq: "\u2257", circlearrowleft: "\u21BA", circlearrowright: "\u21BB", circledR: "\xAE", circledS: "\u24C8", circledast: "\u229B", circledcirc: "\u229A", circleddash: "\u229D", cire: "\u2257", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", clubs: "\u2663", clubsuit: "\u2663", colon: ":", colone: "\u2254", coloneq: "\u2254", comma: ",", commat: "@", comp: "\u2201", compfn: "\u2218", complement: "\u2201", complexes: "\u2102", cong: "\u2245", congdot: "\u2A6D", conint: "\u222E", copf: "\u{1D554}", coprod: "\u2210", cop: "\xA9", copy: "\xA9", copysr: "\u2117", crarr: "\u21B5", cross: "\u2717", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", cuesc: "\u22DF", cularr: "\u21B6", cularrp: "\u293D", cup: "\u222A", cupbrcap: "\u2A48", cupcap: "\u2A46", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curarrm: "\u293C", curlyeqprec: "\u22DE", curlyeqsucc: "\u22DF", curlyvee: "\u22CE", curlywedge: "\u22CF", curre: "\xA4", curren: "\xA4", curvearrowleft: "\u21B6", curvearrowright: "\u21B7", cuvee: "\u22CE", cuwed: "\u22CF", cwconint: "\u2232", cwint: "\u2231", cylcty: "\u232D", dArr: "\u21D3", dHar: "\u2965", dagger: "\u2020", daleth: "\u2138", darr: "\u2193", dash: "\u2010", dashv: "\u22A3", dbkarow: "\u290F", dblac: "\u02DD", dcaron: "\u010F", dcy: "\u0434", dd: "\u2146", ddagger: "\u2021", ddarr: "\u21CA", ddotseq: "\u2A77", de: "\xB0", deg: "\xB0", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", dfr: "\u{1D521}", dharl: "\u21C3", dharr: "\u21C2", diam: "\u22C4", diamond: "\u22C4", diamondsuit: "\u2666", diams: "\u2666", die: "\xA8", digamma: "\u03DD", disin: "\u22F2", div: "\xF7", divid: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", djcy: "\u0452", dlcorn: "\u231E", dlcrop: "\u230D", dollar: "$", dopf: "\u{1D555}", dot: "\u02D9", doteq: "\u2250", doteqdot: "\u2251", dotminus: "\u2238", dotplus: "\u2214", dotsquare: "\u22A1", doublebarwedge: "\u2306", downarrow: "\u2193", downdownarrows: "\u21CA", downharpoonleft: "\u21C3", downharpoonright: "\u21C2", drbkarow: "\u2910", drcorn: "\u231F", drcrop: "\u230C", dscr: "\u{1D4B9}", dscy: "\u0455", dsol: "\u29F6", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", dtrif: "\u25BE", duarr: "\u21F5", duhar: "\u296F", dwangle: "\u29A6", dzcy: "\u045F", dzigrarr: "\u27FF", eDDot: "\u2A77", eDot: "\u2251", eacut: "\xE9", eacute: "\xE9", easter: "\u2A6E", ecaron: "\u011B", ecir: "\xEA", ecirc: "\xEA", ecolon: "\u2255", ecy: "\u044D", edot: "\u0117", ee: "\u2147", efDot: "\u2252", efr: "\u{1D522}", eg: "\u2A9A", egrav: "\xE8", egrave: "\xE8", egs: "\u2A96", egsdot: "\u2A98", el: "\u2A99", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", elsdot: "\u2A97", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", emptyv: "\u2205", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", eng: "\u014B", ensp: "\u2002", eogon: "\u0119", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", epsilon: "\u03B5", epsiv: "\u03F5", eqcirc: "\u2256", eqcolon: "\u2255", eqsim: "\u2242", eqslantgtr: "\u2A96", eqslantless: "\u2A95", equals: "=", equest: "\u225F", equiv: "\u2261", equivDD: "\u2A78", eqvparsl: "\u29E5", erDot: "\u2253", erarr: "\u2971", escr: "\u212F", esdot: "\u2250", esim: "\u2242", eta: "\u03B7", et: "\xF0", eth: "\xF0", eum: "\xEB", euml: "\xEB", euro: "\u20AC", excl: "!", exist: "\u2203", expectation: "\u2130", exponentiale: "\u2147", fallingdotseq: "\u2252", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", ffr: "\u{1D523}", filig: "\uFB01", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", fopf: "\u{1D557}", forall: "\u2200", fork: "\u22D4", forkv: "\u2AD9", fpartint: "\u2A0D", frac1: "\xBC", frac12: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac3: "\xBE", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", fscr: "\u{1D4BB}", gE: "\u2267", gEl: "\u2A8C", gacute: "\u01F5", gamma: "\u03B3", gammad: "\u03DD", gap: "\u2A86", gbreve: "\u011F", gcirc: "\u011D", gcy: "\u0433", gdot: "\u0121", ge: "\u2265", gel: "\u22DB", geq: "\u2265", geqq: "\u2267", geqslant: "\u2A7E", ges: "\u2A7E", gescc: "\u2AA9", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", gfr: "\u{1D524}", gg: "\u226B", ggg: "\u22D9", gimel: "\u2137", gjcy: "\u0453", gl: "\u2277", glE: "\u2A92", gla: "\u2AA5", glj: "\u2AA4", gnE: "\u2269", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gneq: "\u2A88", gneqq: "\u2269", gnsim: "\u22E7", gopf: "\u{1D558}", grave: "`", gscr: "\u210A", gsim: "\u2273", gsime: "\u2A8E", gsiml: "\u2A90", g: ">", gt: ">", gtcc: "\u2AA7", gtcir: "\u2A7A", gtdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrapprox: "\u2A86", gtrarr: "\u2978", gtrdot: "\u22D7", gtreqless: "\u22DB", gtreqqless: "\u2A8C", gtrless: "\u2277", gtrsim: "\u2273", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", hArr: "\u21D4", hairsp: "\u200A", half: "\xBD", hamilt: "\u210B", hardcy: "\u044A", harr: "\u2194", harrcir: "\u2948", harrw: "\u21AD", hbar: "\u210F", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", hksearow: "\u2925", hkswarow: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", hookrightarrow: "\u21AA", hopf: "\u{1D559}", horbar: "\u2015", hscr: "\u{1D4BD}", hslash: "\u210F", hstrok: "\u0127", hybull: "\u2043", hyphen: "\u2010", iacut: "\xED", iacute: "\xED", ic: "\u2063", icir: "\xEE", icirc: "\xEE", icy: "\u0438", iecy: "\u0435", iexc: "\xA1", iexcl: "\xA1", iff: "\u21D4", ifr: "\u{1D526}", igrav: "\xEC", igrave: "\xEC", ii: "\u2148", iiiint: "\u2A0C", iiint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", ijlig: "\u0133", imacr: "\u012B", image: "\u2111", imagline: "\u2110", imagpart: "\u2111", imath: "\u0131", imof: "\u22B7", imped: "\u01B5", in: "\u2208", incare: "\u2105", infin: "\u221E", infintie: "\u29DD", inodot: "\u0131", int: "\u222B", intcal: "\u22BA", integers: "\u2124", intercal: "\u22BA", intlarhk: "\u2A17", intprod: "\u2A3C", iocy: "\u0451", iogon: "\u012F", iopf: "\u{1D55A}", iota: "\u03B9", iprod: "\u2A3C", iques: "\xBF", iquest: "\xBF", iscr: "\u{1D4BE}", isin: "\u2208", isinE: "\u22F9", isindot: "\u22F5", isins: "\u22F4", isinsv: "\u22F3", isinv: "\u2208", it: "\u2062", itilde: "\u0129", iukcy: "\u0456", ium: "\xEF", iuml: "\xEF", jcirc: "\u0135", jcy: "\u0439", jfr: "\u{1D527}", jmath: "\u0237", jopf: "\u{1D55B}", jscr: "\u{1D4BF}", jsercy: "\u0458", jukcy: "\u0454", kappa: "\u03BA", kappav: "\u03F0", kcedil: "\u0137", kcy: "\u043A", kfr: "\u{1D528}", kgreen: "\u0138", khcy: "\u0445", kjcy: "\u045C", kopf: "\u{1D55C}", kscr: "\u{1D4C0}", lAarr: "\u21DA", lArr: "\u21D0", lAtail: "\u291B", lBarr: "\u290E", lE: "\u2266", lEg: "\u2A8B", lHar: "\u2962", lacute: "\u013A", laemptyv: "\u29B4", lagran: "\u2112", lambda: "\u03BB", lang: "\u27E8", langd: "\u2991", langle: "\u27E8", lap: "\u2A85", laqu: "\xAB", laquo: "\xAB", larr: "\u2190", larrb: "\u21E4", larrbfs: "\u291F", larrfs: "\u291D", larrhk: "\u21A9", larrlp: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", lat: "\u2AAB", latail: "\u2919", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lbbrk: "\u2772", lbrace: "{", lbrack: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", lcaron: "\u013E", lcedil: "\u013C", lceil: "\u2308", lcub: "{", lcy: "\u043B", ldca: "\u2936", ldquo: "\u201C", ldquor: "\u201E", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", leftarrow: "\u2190", leftarrowtail: "\u21A2", leftharpoondown: "\u21BD", leftharpoonup: "\u21BC", leftleftarrows: "\u21C7", leftrightarrow: "\u2194", leftrightarrows: "\u21C6", leftrightharpoons: "\u21CB", leftrightsquigarrow: "\u21AD", leftthreetimes: "\u22CB", leg: "\u22DA", leq: "\u2264", leqq: "\u2266", leqslant: "\u2A7D", les: "\u2A7D", lescc: "\u2AA8", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessapprox: "\u2A85", lessdot: "\u22D6", lesseqgtr: "\u22DA", lesseqqgtr: "\u2A8B", lessgtr: "\u2276", lesssim: "\u2272", lfisht: "\u297C", lfloor: "\u230A", lfr: "\u{1D529}", lg: "\u2276", lgE: "\u2A91", lhard: "\u21BD", lharu: "\u21BC", lharul: "\u296A", lhblk: "\u2584", ljcy: "\u0459", ll: "\u226A", llarr: "\u21C7", llcorner: "\u231E", llhard: "\u296B", lltri: "\u25FA", lmidot: "\u0140", lmoust: "\u23B0", lmoustache: "\u23B0", lnE: "\u2268", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lneq: "\u2A87", lneqq: "\u2268", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", lobrk: "\u27E6", longleftarrow: "\u27F5", longleftrightarrow: "\u27F7", longmapsto: "\u27FC", longrightarrow: "\u27F6", looparrowleft: "\u21AB", looparrowright: "\u21AC", lopar: "\u2985", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", lowbar: "_", loz: "\u25CA", lozenge: "\u25CA", lozf: "\u29EB", lpar: "(", lparlt: "\u2993", lrarr: "\u21C6", lrcorner: "\u231F", lrhar: "\u21CB", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", lsh: "\u21B0", lsim: "\u2272", lsime: "\u2A8D", lsimg: "\u2A8F", lsqb: "[", lsquo: "\u2018", lsquor: "\u201A", lstrok: "\u0142", l: "<", lt: "<", ltcc: "\u2AA6", ltcir: "\u2A79", ltdot: "\u22D6", lthree: "\u22CB", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltrPar: "\u2996", ltri: "\u25C3", ltrie: "\u22B4", ltrif: "\u25C2", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", mDDot: "\u223A", mac: "\xAF", macr: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", map: "\u21A6", mapsto: "\u21A6", mapstodown: "\u21A7", mapstoleft: "\u21A4", mapstoup: "\u21A5", marker: "\u25AE", mcomma: "\u2A29", mcy: "\u043C", mdash: "\u2014", measuredangle: "\u2221", mfr: "\u{1D52A}", mho: "\u2127", micr: "\xB5", micro: "\xB5", mid: "\u2223", midast: "*", midcir: "\u2AF0", middo: "\xB7", middot: "\xB7", minus: "\u2212", minusb: "\u229F", minusd: "\u2238", minusdu: "\u2A2A", mlcp: "\u2ADB", mldr: "\u2026", mnplus: "\u2213", models: "\u22A7", mopf: "\u{1D55E}", mp: "\u2213", mscr: "\u{1D4C2}", mstpos: "\u223E", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nGg: "\u22D9\u0338", nGt: "\u226B\u20D2", nGtv: "\u226B\u0338", nLeftarrow: "\u21CD", nLeftrightarrow: "\u21CE", nLl: "\u22D8\u0338", nLt: "\u226A\u20D2", nLtv: "\u226A\u0338", nRightarrow: "\u21CF", nVDash: "\u22AF", nVdash: "\u22AE", nabla: "\u2207", nacute: "\u0144", nang: "\u2220\u20D2", nap: "\u2249", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", napprox: "\u2249", natur: "\u266E", natural: "\u266E", naturals: "\u2115", nbs: "\xA0", nbsp: "\xA0", nbump: "\u224E\u0338", nbumpe: "\u224F\u0338", ncap: "\u2A43", ncaron: "\u0148", ncedil: "\u0146", ncong: "\u2247", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", ncy: "\u043D", ndash: "\u2013", ne: "\u2260", neArr: "\u21D7", nearhk: "\u2924", nearr: "\u2197", nearrow: "\u2197", nedot: "\u2250\u0338", nequiv: "\u2262", nesear: "\u2928", nesim: "\u2242\u0338", nexist: "\u2204", nexists: "\u2204", nfr: "\u{1D52B}", ngE: "\u2267\u0338", nge: "\u2271", ngeq: "\u2271", ngeqq: "\u2267\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", ngsim: "\u2275", ngt: "\u226F", ngtr: "\u226F", nhArr: "\u21CE", nharr: "\u21AE", nhpar: "\u2AF2", ni: "\u220B", nis: "\u22FC", nisd: "\u22FA", niv: "\u220B", njcy: "\u045A", nlArr: "\u21CD", nlE: "\u2266\u0338", nlarr: "\u219A", nldr: "\u2025", nle: "\u2270", nleftarrow: "\u219A", nleftrightarrow: "\u21AE", nleq: "\u2270", nleqq: "\u2266\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", nless: "\u226E", nlsim: "\u2274", nlt: "\u226E", nltri: "\u22EA", nltrie: "\u22EC", nmid: "\u2224", nopf: "\u{1D55F}", no: "\xAC", not: "\xAC", notin: "\u2209", notinE: "\u22F9\u0338", notindot: "\u22F5\u0338", notinva: "\u2209", notinvb: "\u22F7", notinvc: "\u22F6", notni: "\u220C", notniva: "\u220C", notnivb: "\u22FE", notnivc: "\u22FD", npar: "\u2226", nparallel: "\u2226", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", npr: "\u2280", nprcue: "\u22E0", npre: "\u2AAF\u0338", nprec: "\u2280", npreceq: "\u2AAF\u0338", nrArr: "\u21CF", nrarr: "\u219B", nrarrc: "\u2933\u0338", nrarrw: "\u219D\u0338", nrightarrow: "\u219B", nrtri: "\u22EB", nrtrie: "\u22ED", nsc: "\u2281", nsccue: "\u22E1", nsce: "\u2AB0\u0338", nscr: "\u{1D4C3}", nshortmid: "\u2224", nshortparallel: "\u2226", nsim: "\u2241", nsime: "\u2244", nsimeq: "\u2244", nsmid: "\u2224", nspar: "\u2226", nsqsube: "\u22E2", nsqsupe: "\u22E3", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsube: "\u2288", nsubset: "\u2282\u20D2", nsubseteq: "\u2288", nsubseteqq: "\u2AC5\u0338", nsucc: "\u2281", nsucceq: "\u2AB0\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupe: "\u2289", nsupset: "\u2283\u20D2", nsupseteq: "\u2289", nsupseteqq: "\u2AC6\u0338", ntgl: "\u2279", ntild: "\xF1", ntilde: "\xF1", ntlg: "\u2278", ntriangleleft: "\u22EA", ntrianglelefteq: "\u22EC", ntriangleright: "\u22EB", ntrianglerighteq: "\u22ED", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvDash: "\u22AD", nvHarr: "\u2904", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwArr: "\u21D6", nwarhk: "\u2923", nwarr: "\u2196", nwarrow: "\u2196", nwnear: "\u2927", oS: "\u24C8", oacut: "\xF3", oacute: "\xF3", oast: "\u229B", ocir: "\xF4", ocirc: "\xF4", ocy: "\u043E", odash: "\u229D", odblac: "\u0151", odiv: "\u2A38", odot: "\u2299", odsold: "\u29BC", oelig: "\u0153", ofcir: "\u29BF", ofr: "\u{1D52C}", ogon: "\u02DB", ograv: "\xF2", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", ohm: "\u03A9", oint: "\u222E", olarr: "\u21BA", olcir: "\u29BE", olcross: "\u29BB", oline: "\u203E", olt: "\u29C0", omacr: "\u014D", omega: "\u03C9", omicron: "\u03BF", omid: "\u29B6", ominus: "\u2296", oopf: "\u{1D560}", opar: "\u29B7", operp: "\u29B9", oplus: "\u2295", or: "\u2228", orarr: "\u21BB", ord: "\xBA", order: "\u2134", orderof: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oscr: "\u2134", oslas: "\xF8", oslash: "\xF8", osol: "\u2298", otild: "\xF5", otilde: "\xF5", otimes: "\u2297", otimesas: "\u2A36", oum: "\xF6", ouml: "\xF6", ovbar: "\u233D", par: "\xB6", para: "\xB6", parallel: "\u2225", parsim: "\u2AF3", parsl: "\u2AFD", part: "\u2202", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", perp: "\u22A5", pertenk: "\u2031", pfr: "\u{1D52D}", phi: "\u03C6", phiv: "\u03D5", phmmat: "\u2133", phone: "\u260E", pi: "\u03C0", pitchfork: "\u22D4", piv: "\u03D6", planck: "\u210F", planckh: "\u210E", plankv: "\u210F", plus: "+", plusacir: "\u2A23", plusb: "\u229E", pluscir: "\u2A22", plusdo: "\u2214", plusdu: "\u2A25", pluse: "\u2A72", plusm: "\xB1", plusmn: "\xB1", plussim: "\u2A26", plustwo: "\u2A27", pm: "\xB1", pointint: "\u2A15", popf: "\u{1D561}", poun: "\xA3", pound: "\xA3", pr: "\u227A", prE: "\u2AB3", prap: "\u2AB7", prcue: "\u227C", pre: "\u2AAF", prec: "\u227A", precapprox: "\u2AB7", preccurlyeq: "\u227C", preceq: "\u2AAF", precnapprox: "\u2AB9", precneqq: "\u2AB5", precnsim: "\u22E8", precsim: "\u227E", prime: "\u2032", primes: "\u2119", prnE: "\u2AB5", prnap: "\u2AB9", prnsim: "\u22E8", prod: "\u220F", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prop: "\u221D", propto: "\u221D", prsim: "\u227E", prurel: "\u22B0", pscr: "\u{1D4C5}", psi: "\u03C8", puncsp: "\u2008", qfr: "\u{1D52E}", qint: "\u2A0C", qopf: "\u{1D562}", qprime: "\u2057", qscr: "\u{1D4C6}", quaternions: "\u210D", quatint: "\u2A16", quest: "?", questeq: "\u225F", quo: '"', quot: '"', rAarr: "\u21DB", rArr: "\u21D2", rAtail: "\u291C", rBarr: "\u290F", rHar: "\u2964", race: "\u223D\u0331", racute: "\u0155", radic: "\u221A", raemptyv: "\u29B3", rang: "\u27E9", rangd: "\u2992", range: "\u29A5", rangle: "\u27E9", raqu: "\xBB", raquo: "\xBB", rarr: "\u2192", rarrap: "\u2975", rarrb: "\u21E5", rarrbfs: "\u2920", rarrc: "\u2933", rarrfs: "\u291E", rarrhk: "\u21AA", rarrlp: "\u21AC", rarrpl: "\u2945", rarrsim: "\u2974", rarrtl: "\u21A3", rarrw: "\u219D", ratail: "\u291A", ratio: "\u2236", rationals: "\u211A", rbarr: "\u290D", rbbrk: "\u2773", rbrace: "}", rbrack: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", rcaron: "\u0159", rcedil: "\u0157", rceil: "\u2309", rcub: "}", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdquo: "\u201D", rdquor: "\u201D", rdsh: "\u21B3", real: "\u211C", realine: "\u211B", realpart: "\u211C", reals: "\u211D", rect: "\u25AD", re: "\xAE", reg: "\xAE", rfisht: "\u297D", rfloor: "\u230B", rfr: "\u{1D52F}", rhard: "\u21C1", rharu: "\u21C0", rharul: "\u296C", rho: "\u03C1", rhov: "\u03F1", rightarrow: "\u2192", rightarrowtail: "\u21A3", rightharpoondown: "\u21C1", rightharpoonup: "\u21C0", rightleftarrows: "\u21C4", rightleftharpoons: "\u21CC", rightrightarrows: "\u21C9", rightsquigarrow: "\u219D", rightthreetimes: "\u22CC", ring: "\u02DA", risingdotseq: "\u2253", rlarr: "\u21C4", rlhar: "\u21CC", rlm: "\u200F", rmoust: "\u23B1", rmoustache: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", robrk: "\u27E7", ropar: "\u2986", ropf: "\u{1D563}", roplus: "\u2A2E", rotimes: "\u2A35", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rrarr: "\u21C9", rsaquo: "\u203A", rscr: "\u{1D4C7}", rsh: "\u21B1", rsqb: "]", rsquo: "\u2019", rsquor: "\u2019", rthree: "\u22CC", rtimes: "\u22CA", rtri: "\u25B9", rtrie: "\u22B5", rtrif: "\u25B8", rtriltri: "\u29CE", ruluhar: "\u2968", rx: "\u211E", sacute: "\u015B", sbquo: "\u201A", sc: "\u227B", scE: "\u2AB4", scap: "\u2AB8", scaron: "\u0161", sccue: "\u227D", sce: "\u2AB0", scedil: "\u015F", scirc: "\u015D", scnE: "\u2AB6", scnap: "\u2ABA", scnsim: "\u22E9", scpolint: "\u2A13", scsim: "\u227F", scy: "\u0441", sdot: "\u22C5", sdotb: "\u22A1", sdote: "\u2A66", seArr: "\u21D8", searhk: "\u2925", searr: "\u2198", searrow: "\u2198", sec: "\xA7", sect: "\xA7", semi: ";", seswar: "\u2929", setminus: "\u2216", setmn: "\u2216", sext: "\u2736", sfr: "\u{1D530}", sfrown: "\u2322", sharp: "\u266F", shchcy: "\u0449", shcy: "\u0448", shortmid: "\u2223", shortparallel: "\u2225", sh: "\xAD", shy: "\xAD", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", sim: "\u223C", simdot: "\u2A6A", sime: "\u2243", simeq: "\u2243", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", slarr: "\u2190", smallsetminus: "\u2216", smashp: "\u2A33", smeparsl: "\u29E4", smid: "\u2223", smile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", softcy: "\u044C", sol: "/", solb: "\u29C4", solbar: "\u233F", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", spar: "\u2225", sqcap: "\u2293", sqcaps: "\u2293\uFE00", sqcup: "\u2294", sqcups: "\u2294\uFE00", sqsub: "\u228F", sqsube: "\u2291", sqsubset: "\u228F", sqsubseteq: "\u2291", sqsup: "\u2290", sqsupe: "\u2292", sqsupset: "\u2290", sqsupseteq: "\u2292", squ: "\u25A1", square: "\u25A1", squarf: "\u25AA", squf: "\u25AA", srarr: "\u2192", sscr: "\u{1D4C8}", ssetmn: "\u2216", ssmile: "\u2323", sstarf: "\u22C6", star: "\u2606", starf: "\u2605", straightepsilon: "\u03F5", straightphi: "\u03D5", strns: "\xAF", sub: "\u2282", subE: "\u2AC5", subdot: "\u2ABD", sube: "\u2286", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subne: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subset: "\u2282", subseteq: "\u2286", subseteqq: "\u2AC5", subsetneq: "\u228A", subsetneqq: "\u2ACB", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", succ: "\u227B", succapprox: "\u2AB8", succcurlyeq: "\u227D", succeq: "\u2AB0", succnapprox: "\u2ABA", succneqq: "\u2AB6", succnsim: "\u22E9", succsim: "\u227F", sum: "\u2211", sung: "\u266A", sup: "\u2283", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", supE: "\u2AC6", supdot: "\u2ABE", supdsub: "\u2AD8", supe: "\u2287", supedot: "\u2AC4", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supne: "\u228B", supplus: "\u2AC0", supset: "\u2283", supseteq: "\u2287", supseteqq: "\u2AC6", supsetneq: "\u228B", supsetneqq: "\u2ACC", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swArr: "\u21D9", swarhk: "\u2926", swarr: "\u2199", swarrow: "\u2199", swnwar: "\u292A", szli: "\xDF", szlig: "\xDF", target: "\u2316", tau: "\u03C4", tbrk: "\u23B4", tcaron: "\u0165", tcedil: "\u0163", tcy: "\u0442", tdot: "\u20DB", telrec: "\u2315", tfr: "\u{1D531}", there4: "\u2234", therefore: "\u2234", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", thickapprox: "\u2248", thicksim: "\u223C", thinsp: "\u2009", thkap: "\u2248", thksim: "\u223C", thor: "\xFE", thorn: "\xFE", tilde: "\u02DC", time: "\xD7", times: "\xD7", timesb: "\u22A0", timesbar: "\u2A31", timesd: "\u2A30", tint: "\u222D", toea: "\u2928", top: "\u22A4", topbot: "\u2336", topcir: "\u2AF1", topf: "\u{1D565}", topfork: "\u2ADA", tosa: "\u2929", tprime: "\u2034", trade: "\u2122", triangle: "\u25B5", triangledown: "\u25BF", triangleleft: "\u25C3", trianglelefteq: "\u22B4", triangleq: "\u225C", triangleright: "\u25B9", trianglerighteq: "\u22B5", tridot: "\u25EC", trie: "\u225C", triminus: "\u2A3A", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", tscr: "\u{1D4C9}", tscy: "\u0446", tshcy: "\u045B", tstrok: "\u0167", twixt: "\u226C", twoheadleftarrow: "\u219E", twoheadrightarrow: "\u21A0", uArr: "\u21D1", uHar: "\u2963", uacut: "\xFA", uacute: "\xFA", uarr: "\u2191", ubrcy: "\u045E", ubreve: "\u016D", ucir: "\xFB", ucirc: "\xFB", ucy: "\u0443", udarr: "\u21C5", udblac: "\u0171", udhar: "\u296E", ufisht: "\u297E", ufr: "\u{1D532}", ugrav: "\xF9", ugrave: "\xF9", uharl: "\u21BF", uharr: "\u21BE", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", umacr: "\u016B", um: "\xA8", uml: "\xA8", uogon: "\u0173", uopf: "\u{1D566}", uparrow: "\u2191", updownarrow: "\u2195", upharpoonleft: "\u21BF", upharpoonright: "\u21BE", uplus: "\u228E", upsi: "\u03C5", upsih: "\u03D2", upsilon: "\u03C5", upuparrows: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", uring: "\u016F", urtri: "\u25F9", uscr: "\u{1D4CA}", utdot: "\u22F0", utilde: "\u0169", utri: "\u25B5", utrif: "\u25B4", uuarr: "\u21C8", uum: "\xFC", uuml: "\xFC", uwangle: "\u29A7", vArr: "\u21D5", vBar: "\u2AE8", vBarv: "\u2AE9", vDash: "\u22A8", vangrt: "\u299C", varepsilon: "\u03F5", varkappa: "\u03F0", varnothing: "\u2205", varphi: "\u03D5", varpi: "\u03D6", varpropto: "\u221D", varr: "\u2195", varrho: "\u03F1", varsigma: "\u03C2", varsubsetneq: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vartheta: "\u03D1", vartriangleleft: "\u22B2", vartriangleright: "\u22B3", vcy: "\u0432", vdash: "\u22A2", vee: "\u2228", veebar: "\u22BB", veeeq: "\u225A", vellip: "\u22EE", verbar: "|", vert: "|", vfr: "\u{1D533}", vltri: "\u22B2", vnsub: "\u2282\u20D2", vnsup: "\u2283\u20D2", vopf: "\u{1D567}", vprop: "\u221D", vrtri: "\u22B3", vscr: "\u{1D4CB}", vsubnE: "\u2ACB\uFE00", vsubne: "\u228A\uFE00", vsupnE: "\u2ACC\uFE00", vsupne: "\u228B\uFE00", vzigzag: "\u299A", wcirc: "\u0175", wedbar: "\u2A5F", wedge: "\u2227", wedgeq: "\u2259", weierp: "\u2118", wfr: "\u{1D534}", wopf: "\u{1D568}", wp: "\u2118", wr: "\u2240", wreath: "\u2240", wscr: "\u{1D4CC}", xcap: "\u22C2", xcirc: "\u25EF", xcup: "\u22C3", xdtri: "\u25BD", xfr: "\u{1D535}", xhArr: "\u27FA", xharr: "\u27F7", xi: "\u03BE", xlArr: "\u27F8", xlarr: "\u27F5", xmap: "\u27FC", xnis: "\u22FB", xodot: "\u2A00", xopf: "\u{1D569}", xoplus: "\u2A01", xotime: "\u2A02", xrArr: "\u27F9", xrarr: "\u27F6", xscr: "\u{1D4CD}", xsqcup: "\u2A06", xuplus: "\u2A04", xutri: "\u25B3", xvee: "\u22C1", xwedge: "\u22C0", yacut: "\xFD", yacute: "\xFD", yacy: "\u044F", ycirc: "\u0177", ycy: "\u044B", ye: "\xA5", yen: "\xA5", yfr: "\u{1D536}", yicy: "\u0457", yopf: "\u{1D56A}", yscr: "\u{1D4CE}", yucy: "\u044E", yum: "\xFF", yuml: "\xFF", zacute: "\u017A", zcaron: "\u017E", zcy: "\u0437", zdot: "\u017C", zeetrf: "\u2128", zeta: "\u03B6", zfr: "\u{1D537}", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" }; - }); - Zi5 = C3((Gv, Qi5) => { - "use strict"; - var Xi4 = Ji4(); - Qi5.exports = kf; - var yf = {}.hasOwnProperty; - function kf(e3) { - return yf.call(Xi4, e3) ? Xi4[e3] : false; - } - }); - lr5 = C3((Hv, Du3) => { - "use strict"; - var eu5 = Yi3(), ru5 = Vi3(), wf2 = Le4(), Af = Gi3(), uu5 = Ki4(), Bf = Zi5(); - Du3.exports = Uf; - var qf = {}.hasOwnProperty, Me9 = String.fromCharCode, Tf = Function.prototype, tu4 = { warning: null, reference: null, text: null, warningContext: null, referenceContext: null, textContext: null, position: {}, additional: null, attribute: false, nonTerminated: true }, Sf = 9, nu4 = 10, Pf = 12, _f = 32, iu4 = 38, Lf = 59, Of = 60, If = 61, Nf = 35, Rf = 88, zf = 120, Mf = 65533, Ue8 = "named", At8 = "hexadecimal", Bt7 = "decimal", qt4 = {}; - qt4[At8] = 16; - qt4[Bt7] = 10; - var Nr7 = {}; - Nr7[Ue8] = uu5; - Nr7[Bt7] = wf2; - Nr7[At8] = Af; - var au4 = 1, ou5 = 2, su5 = 3, cu4 = 4, lu3 = 5, wt7 = 6, fu3 = 7, xe9 = {}; - xe9[au4] = "Named character references must be terminated by a semicolon"; - xe9[ou5] = "Numeric character references must be terminated by a semicolon"; - xe9[su5] = "Named character references cannot be empty"; - xe9[cu4] = "Numeric character references cannot be empty"; - xe9[lu3] = "Named character references must be known"; - xe9[wt7] = "Numeric character references cannot be disallowed"; - xe9[fu3] = "Numeric character references cannot be outside the permissible Unicode range"; - function Uf(e3, r3) { - var n = {}, t12, a; - r3 || (r3 = {}); - for (a in tu4) - t12 = r3[a], n[a] = t12 ?? tu4[a]; - return (n.position.indent || n.position.start) && (n.indent = n.position.indent || [], n.position = n.position.start), Yf(e3, n); - } - function Yf(e3, r3) { - var n = r3.additional, t12 = r3.nonTerminated, a = r3.text, i = r3.reference, u = r3.warning, o2 = r3.textContext, s3 = r3.referenceContext, l = r3.warningContext, c3 = r3.position, f3 = r3.indent || [], D6 = e3.length, h4 = 0, p4 = -1, d5 = c3.column || 1, m3 = c3.line || 1, g3 = "", x7 = [], F5, B8, b5, v7, y5, k4, E6, w4, A6, q8, T4, N6, _6, P10, S6, L7, we9, j8, I5; - for (typeof n == "string" && (n = n.charCodeAt(0)), L7 = J8(), w4 = u ? K7 : Tf, h4--, D6++; ++h4 < D6; ) - if (y5 === nu4 && (d5 = f3[p4] || 1), y5 = e3.charCodeAt(h4), y5 === iu4) { - if (E6 = e3.charCodeAt(h4 + 1), E6 === Sf || E6 === nu4 || E6 === Pf || E6 === _f || E6 === iu4 || E6 === Of || E6 !== E6 || n && E6 === n) { - g3 += Me9(y5), d5++; - continue; - } - for (_6 = h4 + 1, N6 = _6, I5 = _6, E6 === Nf ? (I5 = ++N6, E6 = e3.charCodeAt(I5), E6 === Rf || E6 === zf ? (P10 = At8, I5 = ++N6) : P10 = Bt7) : P10 = Ue8, F5 = "", T4 = "", v7 = "", S6 = Nr7[P10], I5--; ++I5 < D6 && (E6 = e3.charCodeAt(I5), !!S6(E6)); ) - v7 += Me9(E6), P10 === Ue8 && qf.call(eu5, v7) && (F5 = v7, T4 = eu5[v7]); - b5 = e3.charCodeAt(I5) === Lf, b5 && (I5++, B8 = P10 === Ue8 ? Bf(v7) : false, B8 && (F5 = v7, T4 = B8)), j8 = 1 + I5 - _6, !b5 && !t12 || (v7 ? P10 === Ue8 ? (b5 && !T4 ? w4(lu3, 1) : (F5 !== v7 && (I5 = N6 + F5.length, j8 = 1 + I5 - N6, b5 = false), b5 || (A6 = F5 ? au4 : su5, r3.attribute ? (E6 = e3.charCodeAt(I5), E6 === If ? (w4(A6, j8), T4 = null) : uu5(E6) ? T4 = null : w4(A6, j8)) : w4(A6, j8))), k4 = T4) : (b5 || w4(ou5, j8), k4 = parseInt(v7, qt4[P10]), Vf(k4) ? (w4(fu3, j8), k4 = Me9(Mf)) : k4 in ru5 ? (w4(wt7, j8), k4 = ru5[k4]) : (q8 = "", jf(k4) && w4(wt7, j8), k4 > 65535 && (k4 -= 65536, q8 += Me9(k4 >>> 10 | 55296), k4 = 56320 | k4 & 1023), k4 = q8 + Me9(k4))) : P10 !== Ue8 && w4(cu4, j8)), k4 ? (me8(), L7 = J8(), h4 = I5 - 1, d5 += I5 - _6 + 1, x7.push(k4), we9 = J8(), we9.offset++, i && i.call(s3, k4, { start: L7, end: we9 }, e3.slice(_6 - 1, I5)), L7 = we9) : (v7 = e3.slice(_6 - 1, I5), g3 += v7, d5 += v7.length, h4 = I5 - 1); - } else - y5 === 10 && (m3++, p4++, d5 = 0), y5 === y5 ? (g3 += Me9(y5), d5++) : me8(); - return x7.join(""); - function J8() { - return { line: m3, column: d5, offset: h4 + (c3.offset || 0) }; - } - function K7(ge6, M8) { - var ct7 = J8(); - ct7.column += M8, ct7.offset += M8, u.call(l, xe9[ge6], ct7, ge6); - } - function me8() { - g3 && (x7.push(g3), a && a.call(o2, g3, { start: L7, end: J8() }), g3 = ""); - } - } - function Vf(e3) { - return e3 >= 55296 && e3 <= 57343 || e3 > 1114111; - } - function jf(e3) { - return e3 >= 1 && e3 <= 8 || e3 === 11 || e3 >= 13 && e3 <= 31 || e3 >= 127 && e3 <= 159 || e3 >= 64976 && e3 <= 65007 || (e3 & 65535) === 65535 || (e3 & 65535) === 65534; - } - }); - hu2 = C3((Wv, du3) => { - "use strict"; - var $f = _e7(), pu4 = lr5(); - du3.exports = Gf; - function Gf(e3) { - return n.raw = t12, n; - function r3(i) { - for (var u = e3.offset, o2 = i.line, s3 = []; ++o2 && o2 in u; ) - s3.push((u[o2] || 0) + 1); - return { start: i, indent: s3 }; - } - function n(i, u, o2) { - pu4(i, { position: r3(u), warning: a, text: o2, reference: o2, textContext: e3, referenceContext: e3 }); - } - function t12(i, u, o2) { - return pu4(i, $f(o2, { position: r3(u), warning: a })); - } - function a(i, u, o2) { - o2 !== 3 && e3.file.message(i, u); - } - } - }); - vu2 = C3((Kv, gu4) => { - "use strict"; - gu4.exports = Hf; - function Hf(e3) { - return r3; - function r3(n, t12) { - var a = this, i = a.offset, u = [], o2 = a[e3 + "Methods"], s3 = a[e3 + "Tokenizers"], l = t12.line, c3 = t12.column, f3, D6, h4, p4, d5, m3; - if (!n) - return u; - for (k4.now = F5, k4.file = a.file, g3(""); n; ) { - for (f3 = -1, D6 = o2.length, d5 = false; ++f3 < D6 && (p4 = o2[f3], h4 = s3[p4], !(h4 && (!h4.onlyAtStart || a.atStart) && (!h4.notInList || !a.inList) && (!h4.notInBlock || !a.inBlock) && (!h4.notInLink || !a.inLink) && (m3 = n.length, h4.apply(a, [k4, n]), d5 = m3 !== n.length, d5))); ) - ; - d5 || a.file.fail(new Error("Infinite loop"), k4.now()); - } - return a.eof = F5(), u; - function g3(E6) { - for (var w4 = -1, A6 = E6.indexOf(` -`); A6 !== -1; ) - l++, w4 = A6, A6 = E6.indexOf(` -`, A6 + 1); - w4 === -1 ? c3 += E6.length : c3 = E6.length - w4, l in i && (w4 !== -1 ? c3 += i[l] : c3 <= i[l] && (c3 = i[l] + 1)); - } - function x7() { - var E6 = [], w4 = l + 1; - return function() { - for (var A6 = l + 1; w4 < A6; ) - E6.push((i[w4] || 0) + 1), w4++; - return E6; - }; - } - function F5() { - var E6 = { line: l, column: c3 }; - return E6.offset = a.toOffset(E6), E6; - } - function B8(E6) { - this.start = E6, this.end = F5(); - } - function b5(E6) { - n.slice(0, E6.length) !== E6 && a.file.fail(new Error("Incorrectly eaten value: please report this warning on https://git.io/vg5Ft"), F5()); - } - function v7() { - var E6 = F5(); - return w4; - function w4(A6, q8) { - var T4 = A6.position, N6 = T4 ? T4.start : E6, _6 = [], P10 = T4 && T4.end.line, S6 = E6.line; - if (A6.position = new B8(N6), T4 && q8 && T4.indent) { - if (_6 = T4.indent, P10 < S6) { - for (; ++P10 < S6; ) - _6.push((i[P10] || 0) + 1); - _6.push(E6.column); - } - q8 = _6.concat(q8); - } - return A6.position.indent = q8 || [], A6; - } - } - function y5(E6, w4) { - var A6 = w4 ? w4.children : u, q8 = A6[A6.length - 1], T4; - return q8 && E6.type === q8.type && (E6.type === "text" || E6.type === "blockquote") && mu3(q8) && mu3(E6) && (T4 = E6.type === "text" ? Wf : Kf, E6 = T4.call(a, q8, E6)), E6 !== q8 && A6.push(E6), a.atStart && u.length !== 0 && a.exitStart(), E6; - } - function k4(E6) { - var w4 = x7(), A6 = v7(), q8 = F5(); - return b5(E6), T4.reset = N6, N6.test = _6, T4.test = _6, n = n.slice(E6.length), g3(E6), w4 = w4(), T4; - function T4(P10, S6) { - return A6(y5(A6(P10), S6), w4); - } - function N6() { - var P10 = T4.apply(null, arguments); - return l = q8.line, c3 = q8.column, n = E6 + n, P10; - } - function _6() { - var P10 = A6({}); - return l = q8.line, c3 = q8.column, n = E6 + n, P10.position; - } - } - } - } - function mu3(e3) { - var r3, n; - return e3.type !== "text" || !e3.position ? true : (r3 = e3.position.start, n = e3.position.end, r3.line !== n.line || n.column - r3.column === e3.value.length); - } - function Wf(e3, r3) { - return e3.value += r3.value, e3; - } - function Kf(e3, r3) { - return this.options.commonmark || this.options.gfm ? r3 : (e3.children = e3.children.concat(r3.children), e3); - } - }); - Cu2 = C3((Jv, Eu3) => { - "use strict"; - Eu3.exports = Rr7; - var Tt6 = ["\\", "`", "*", "{", "}", "[", "]", "(", ")", "#", "+", "-", ".", "!", "_", ">"], St8 = Tt6.concat(["~", "|"]), Fu5 = St8.concat([` -`, '"', "$", "%", "&", "'", ",", "/", ":", ";", "<", "=", "?", "@", "^"]); - Rr7.default = Tt6; - Rr7.gfm = St8; - Rr7.commonmark = Fu5; - function Rr7(e3) { - var r3 = e3 || {}; - return r3.commonmark ? Fu5 : r3.gfm ? St8 : Tt6; - } - }); - xu2 = C3((Xv, bu4) => { - "use strict"; - bu4.exports = ["address", "article", "aside", "base", "basefont", "blockquote", "body", "caption", "center", "col", "colgroup", "dd", "details", "dialog", "dir", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "iframe", "legend", "li", "link", "main", "menu", "menuitem", "meta", "nav", "noframes", "ol", "optgroup", "option", "p", "param", "pre", "section", "source", "title", "summary", "table", "tbody", "td", "tfoot", "th", "thead", "title", "tr", "track", "ul"]; - }); - Pt6 = C3((Qv, yu3) => { - "use strict"; - yu3.exports = { position: true, gfm: true, commonmark: false, pedantic: false, blocks: xu2() }; - }); - wu2 = C3((Zv, ku3) => { - "use strict"; - var Jf = _e7(), Xf = Cu2(), Qf = Pt6(); - ku3.exports = Zf; - function Zf(e3) { - var r3 = this, n = r3.options, t12, a; - if (e3 == null) - e3 = {}; - else if (typeof e3 == "object") - e3 = Jf(e3); - else - throw new Error("Invalid value `" + e3 + "` for setting `options`"); - for (t12 in Qf) { - if (a = e3[t12], a == null && (a = n[t12]), t12 !== "blocks" && typeof a != "boolean" || t12 === "blocks" && typeof a != "object") - throw new Error("Invalid value `" + a + "` for setting `options." + t12 + "`"); - e3[t12] = a; - } - return r3.options = e3, r3.escape = Xf(e3), r3; - } - }); - qu2 = C3((eF, Bu3) => { - "use strict"; - Bu3.exports = Au4; - function Au4(e3) { - if (e3 == null) - return nD; - if (typeof e3 == "string") - return tD(e3); - if (typeof e3 == "object") - return "length" in e3 ? rD(e3) : eD(e3); - if (typeof e3 == "function") - return e3; - throw new Error("Expected function, string, or object as test"); - } - function eD(e3) { - return r3; - function r3(n) { - var t12; - for (t12 in e3) - if (n[t12] !== e3[t12]) - return false; - return true; - } - } - function rD(e3) { - for (var r3 = [], n = -1; ++n < e3.length; ) - r3[n] = Au4(e3[n]); - return t12; - function t12() { - for (var a = -1; ++a < r3.length; ) - if (r3[a].apply(this, arguments)) - return true; - return false; - } - } - function tD(e3) { - return r3; - function r3(n) { - return !!(n && n.type === e3); - } - } - function nD() { - return true; - } - }); - Su2 = C3((rF, Tu4) => { - Tu4.exports = iD; - function iD(e3) { - return e3; - } - }); - Ou2 = C3((tF, Lu3) => { - "use strict"; - Lu3.exports = zr6; - var uD = qu2(), aD = Su2(), Pu4 = true, _u3 = "skip", _t6 = false; - zr6.CONTINUE = Pu4; - zr6.SKIP = _u3; - zr6.EXIT = _t6; - function zr6(e3, r3, n, t12) { - var a, i; - typeof r3 == "function" && typeof n != "function" && (t12 = n, n = r3, r3 = null), i = uD(r3), a = t12 ? -1 : 1, u(e3, null, [])(); - function u(o2, s3, l) { - var c3 = typeof o2 == "object" && o2 !== null ? o2 : {}, f3; - return typeof c3.type == "string" && (f3 = typeof c3.tagName == "string" ? c3.tagName : typeof c3.name == "string" ? c3.name : void 0, D6.displayName = "node (" + aD(c3.type + (f3 ? "<" + f3 + ">" : "")) + ")"), D6; - function D6() { - var h4 = l.concat(o2), p4 = [], d5, m3; - if ((!r3 || i(o2, s3, l[l.length - 1] || null)) && (p4 = oD(n(o2, l)), p4[0] === _t6)) - return p4; - if (o2.children && p4[0] !== _u3) - for (m3 = (t12 ? o2.children.length : -1) + a; m3 > -1 && m3 < o2.children.length; ) { - if (d5 = u(o2.children[m3], m3, h4)(), d5[0] === _t6) - return d5; - m3 = typeof d5[1] == "number" ? d5[1] : m3 + a; - } - return p4; - } - } - } - function oD(e3) { - return e3 !== null && typeof e3 == "object" && "length" in e3 ? e3 : typeof e3 == "number" ? [Pu4, e3] : [e3]; - } - }); - Nu2 = C3((nF, Iu3) => { - "use strict"; - Iu3.exports = Ur5; - var Mr4 = Ou2(), sD = Mr4.CONTINUE, cD = Mr4.SKIP, lD = Mr4.EXIT; - Ur5.CONTINUE = sD; - Ur5.SKIP = cD; - Ur5.EXIT = lD; - function Ur5(e3, r3, n, t12) { - typeof r3 == "function" && typeof n != "function" && (t12 = n, n = r3, r3 = null), Mr4(e3, r3, a, t12); - function a(i, u) { - var o2 = u[u.length - 1], s3 = o2 ? o2.children.indexOf(i) : null; - return n(i, s3, o2); - } - } - }); - zu2 = C3((iF, Ru4) => { - "use strict"; - var fD = Nu2(); - Ru4.exports = DD; - function DD(e3, r3) { - return fD(e3, r3 ? pD : dD), e3; - } - function pD(e3) { - delete e3.position; - } - function dD(e3) { - e3.position = void 0; - } - }); - Yu2 = C3((uF, Uu3) => { - "use strict"; - var Mu4 = _e7(), hD = zu2(); - Uu3.exports = vD; - var mD = ` -`, gD = /\r\n|\r/g; - function vD() { - var e3 = this, r3 = String(e3.file), n = { line: 1, column: 1, offset: 0 }, t12 = Mu4(n), a; - return r3 = r3.replace(gD, mD), r3.charCodeAt(0) === 65279 && (r3 = r3.slice(1), t12.column++, t12.offset++), a = { type: "root", children: e3.tokenizeBlock(r3, t12), position: { start: n, end: e3.eof || Mu4(n) } }, e3.options.position || hD(a, true), a; - } - }); - ju2 = C3((aF, Vu4) => { - "use strict"; - var FD = /^[ \t]*(\n|$)/; - Vu4.exports = ED; - function ED(e3, r3, n) { - for (var t12, a = "", i = 0, u = r3.length; i < u && (t12 = FD.exec(r3.slice(i)), t12 != null); ) - i += t12[0].length, a += t12[0]; - if (a !== "") { - if (n) - return true; - e3(a); - } - } - }); - Yr5 = C3((oF, $u3) => { - "use strict"; - var pe7 = "", Lt9; - $u3.exports = CD; - function CD(e3, r3) { - if (typeof e3 != "string") - throw new TypeError("expected a string"); - if (r3 === 1) - return e3; - if (r3 === 2) - return e3 + e3; - var n = e3.length * r3; - if (Lt9 !== e3 || typeof Lt9 > "u") - Lt9 = e3, pe7 = ""; - else if (pe7.length >= n) - return pe7.substr(0, n); - for (; n > pe7.length && r3 > 1; ) - r3 & 1 && (pe7 += e3), r3 >>= 1, e3 += e3; - return pe7 += e3, pe7 = pe7.substr(0, n), pe7; - } - }); - Ot7 = C3((sF, Gu4) => { - "use strict"; - Gu4.exports = bD; - function bD(e3) { - return String(e3).replace(/\n+$/, ""); - } - }); - Ku2 = C3((cF, Wu4) => { - "use strict"; - var xD = Yr5(), yD = Ot7(); - Wu4.exports = AD; - var It8 = ` -`, Hu4 = " ", Nt9 = " ", kD = 4, wD = xD(Nt9, kD); - function AD(e3, r3, n) { - for (var t12 = -1, a = r3.length, i = "", u = "", o2 = "", s3 = "", l, c3, f3; ++t12 < a; ) - if (l = r3.charAt(t12), f3) - if (f3 = false, i += o2, u += s3, o2 = "", s3 = "", l === It8) - o2 = l, s3 = l; - else - for (i += l, u += l; ++t12 < a; ) { - if (l = r3.charAt(t12), !l || l === It8) { - s3 = l, o2 = l; - break; - } - i += l, u += l; - } - else if (l === Nt9 && r3.charAt(t12 + 1) === l && r3.charAt(t12 + 2) === l && r3.charAt(t12 + 3) === l) - o2 += wD, t12 += 3, f3 = true; - else if (l === Hu4) - o2 += l, f3 = true; - else { - for (c3 = ""; l === Hu4 || l === Nt9; ) - c3 += l, l = r3.charAt(++t12); - if (l !== It8) - break; - o2 += c3 + l, s3 += l; - } - if (u) - return n ? true : e3(i)({ type: "code", lang: null, meta: null, value: yD(u) }); - } - }); - Qu2 = C3((lF, Xu4) => { - "use strict"; - Xu4.exports = SD; - var Vr6 = ` -`, fr6 = " ", Ye7 = " ", BD = "~", Ju3 = "`", qD = 3, TD = 4; - function SD(e3, r3, n) { - var t12 = this, a = t12.options.gfm, i = r3.length + 1, u = 0, o2 = "", s3, l, c3, f3, D6, h4, p4, d5, m3, g3, x7, F5, B8; - if (a) { - for (; u < i && (c3 = r3.charAt(u), !(c3 !== Ye7 && c3 !== fr6)); ) - o2 += c3, u++; - if (F5 = u, c3 = r3.charAt(u), !(c3 !== BD && c3 !== Ju3)) { - for (u++, l = c3, s3 = 1, o2 += c3; u < i && (c3 = r3.charAt(u), c3 === l); ) - o2 += c3, s3++, u++; - if (!(s3 < qD)) { - for (; u < i && (c3 = r3.charAt(u), !(c3 !== Ye7 && c3 !== fr6)); ) - o2 += c3, u++; - for (f3 = "", p4 = ""; u < i && (c3 = r3.charAt(u), !(c3 === Vr6 || l === Ju3 && c3 === l)); ) - c3 === Ye7 || c3 === fr6 ? p4 += c3 : (f3 += p4 + c3, p4 = ""), u++; - if (c3 = r3.charAt(u), !(c3 && c3 !== Vr6)) { - if (n) - return true; - B8 = e3.now(), B8.column += o2.length, B8.offset += o2.length, o2 += f3, f3 = t12.decode.raw(t12.unescape(f3), B8), p4 && (o2 += p4), p4 = "", g3 = "", x7 = "", d5 = "", m3 = ""; - for (var b5 = true; u < i; ) { - if (c3 = r3.charAt(u), d5 += g3, m3 += x7, g3 = "", x7 = "", c3 !== Vr6) { - d5 += c3, x7 += c3, u++; - continue; - } - for (b5 ? (o2 += c3, b5 = false) : (g3 += c3, x7 += c3), p4 = "", u++; u < i && (c3 = r3.charAt(u), c3 === Ye7); ) - p4 += c3, u++; - if (g3 += p4, x7 += p4.slice(F5), !(p4.length >= TD)) { - for (p4 = ""; u < i && (c3 = r3.charAt(u), c3 === l); ) - p4 += c3, u++; - if (g3 += p4, x7 += p4, !(p4.length < s3)) { - for (p4 = ""; u < i && (c3 = r3.charAt(u), !(c3 !== Ye7 && c3 !== fr6)); ) - g3 += c3, x7 += c3, u++; - if (!c3 || c3 === Vr6) - break; - } - } - } - for (o2 += d5 + g3, u = -1, i = f3.length; ++u < i; ) - if (c3 = f3.charAt(u), c3 === Ye7 || c3 === fr6) - D6 || (D6 = f3.slice(0, u)); - else if (D6) { - h4 = f3.slice(u); - break; - } - return e3(o2)({ type: "code", lang: D6 || f3 || null, meta: h4 || null, value: m3 }); - } - } - } - } - } - }); - Oe7 = C3((Ve9, Zu3) => { - Ve9 = Zu3.exports = PD; - function PD(e3) { - return e3.trim ? e3.trim() : Ve9.right(Ve9.left(e3)); - } - Ve9.left = function(e3) { - return e3.trimLeft ? e3.trimLeft() : e3.replace(/^\s\s*/, ""); - }; - Ve9.right = function(e3) { - if (e3.trimRight) - return e3.trimRight(); - for (var r3 = /\s/, n = e3.length; r3.test(e3.charAt(--n)); ) - ; - return e3.slice(0, n + 1); - }; - }); - jr4 = C3((fF, ea4) => { - "use strict"; - ea4.exports = _D; - function _D(e3, r3, n, t12) { - for (var a = e3.length, i = -1, u, o2; ++i < a; ) - if (u = e3[i], o2 = u[1] || {}, !(o2.pedantic !== void 0 && o2.pedantic !== n.options.pedantic) && !(o2.commonmark !== void 0 && o2.commonmark !== n.options.commonmark) && r3[u[0]].apply(n, t12)) - return true; - return false; - } - }); - ia4 = C3((DF, na4) => { - "use strict"; - var LD = Oe7(), OD = jr4(); - na4.exports = ID; - var Rt8 = ` -`, ra5 = " ", zt6 = " ", ta4 = ">"; - function ID(e3, r3, n) { - for (var t12 = this, a = t12.offset, i = t12.blockTokenizers, u = t12.interruptBlockquote, o2 = e3.now(), s3 = o2.line, l = r3.length, c3 = [], f3 = [], D6 = [], h4, p4 = 0, d5, m3, g3, x7, F5, B8, b5, v7; p4 < l && (d5 = r3.charAt(p4), !(d5 !== zt6 && d5 !== ra5)); ) - p4++; - if (r3.charAt(p4) === ta4) { - if (n) - return true; - for (p4 = 0; p4 < l; ) { - for (g3 = r3.indexOf(Rt8, p4), B8 = p4, b5 = false, g3 === -1 && (g3 = l); p4 < l && (d5 = r3.charAt(p4), !(d5 !== zt6 && d5 !== ra5)); ) - p4++; - if (r3.charAt(p4) === ta4 ? (p4++, b5 = true, r3.charAt(p4) === zt6 && p4++) : p4 = B8, x7 = r3.slice(p4, g3), !b5 && !LD(x7)) { - p4 = B8; - break; - } - if (!b5 && (m3 = r3.slice(p4), OD(u, i, t12, [e3, m3, true]))) - break; - F5 = B8 === p4 ? x7 : r3.slice(B8, g3), D6.push(p4 - B8), c3.push(F5), f3.push(x7), p4 = g3 + 1; - } - for (p4 = -1, l = D6.length, h4 = e3(c3.join(Rt8)); ++p4 < l; ) - a[s3] = (a[s3] || 0) + D6[p4], s3++; - return v7 = t12.enterBlock(), f3 = t12.tokenizeBlock(f3.join(Rt8), o2), v7(), h4({ type: "blockquote", children: f3 }); - } - } - }); - oa4 = C3((pF, aa4) => { - "use strict"; - aa4.exports = RD; - var ua5 = ` -`, Dr5 = " ", pr6 = " ", dr6 = "#", ND = 6; - function RD(e3, r3, n) { - for (var t12 = this, a = t12.options.pedantic, i = r3.length + 1, u = -1, o2 = e3.now(), s3 = "", l = "", c3, f3, D6; ++u < i; ) { - if (c3 = r3.charAt(u), c3 !== pr6 && c3 !== Dr5) { - u--; - break; - } - s3 += c3; - } - for (D6 = 0; ++u <= i; ) { - if (c3 = r3.charAt(u), c3 !== dr6) { - u--; - break; - } - s3 += c3, D6++; - } - if (!(D6 > ND) && !(!D6 || !a && r3.charAt(u + 1) === dr6)) { - for (i = r3.length + 1, f3 = ""; ++u < i; ) { - if (c3 = r3.charAt(u), c3 !== pr6 && c3 !== Dr5) { - u--; - break; - } - f3 += c3; - } - if (!(!a && f3.length === 0 && c3 && c3 !== ua5)) { - if (n) - return true; - for (s3 += f3, f3 = "", l = ""; ++u < i && (c3 = r3.charAt(u), !(!c3 || c3 === ua5)); ) { - if (c3 !== pr6 && c3 !== Dr5 && c3 !== dr6) { - l += f3 + c3, f3 = ""; - continue; - } - for (; c3 === pr6 || c3 === Dr5; ) - f3 += c3, c3 = r3.charAt(++u); - if (!a && l && !f3 && c3 === dr6) { - l += c3; - continue; - } - for (; c3 === dr6; ) - f3 += c3, c3 = r3.charAt(++u); - for (; c3 === pr6 || c3 === Dr5; ) - f3 += c3, c3 = r3.charAt(++u); - u--; - } - return o2.column += s3.length, o2.offset += s3.length, s3 += l + f3, e3(s3)({ type: "heading", depth: D6, children: t12.tokenizeInline(l, o2) }); - } - } - } - }); - la4 = C3((dF, ca5) => { - "use strict"; - ca5.exports = $D; - var zD = " ", MD = ` -`, sa4 = " ", UD = "*", YD = "-", VD = "_", jD = 3; - function $D(e3, r3, n) { - for (var t12 = -1, a = r3.length + 1, i = "", u, o2, s3, l; ++t12 < a && (u = r3.charAt(t12), !(u !== zD && u !== sa4)); ) - i += u; - if (!(u !== UD && u !== YD && u !== VD)) - for (o2 = u, i += u, s3 = 1, l = ""; ++t12 < a; ) - if (u = r3.charAt(t12), u === o2) - s3++, i += l + o2, l = ""; - else if (u === sa4) - l += u; - else - return s3 >= jD && (!u || u === MD) ? (i += l, n ? true : e3(i)({ type: "thematicBreak" })) : void 0; - } - }); - Mt5 = C3((hF, Da2) => { - "use strict"; - Da2.exports = KD; - var fa4 = " ", GD = " ", HD = 1, WD = 4; - function KD(e3) { - for (var r3 = 0, n = 0, t12 = e3.charAt(r3), a = {}, i, u = 0; t12 === fa4 || t12 === GD; ) { - for (i = t12 === fa4 ? WD : HD, n += i, i > 1 && (n = Math.floor(n / i) * i); u < n; ) - a[++u] = r3; - t12 = e3.charAt(++r3); - } - return { indent: n, stops: a }; - } - }); - ha4 = C3((mF, da4) => { - "use strict"; - var JD = Oe7(), XD = Yr5(), QD = Mt5(); - da4.exports = rp2; - var pa5 = ` -`, ZD = " ", ep2 = "!"; - function rp2(e3, r3) { - var n = e3.split(pa5), t12 = n.length + 1, a = 1 / 0, i = [], u, o2, s3; - for (n.unshift(XD(ZD, r3) + ep2); t12--; ) - if (o2 = QD(n[t12]), i[t12] = o2.stops, JD(n[t12]).length !== 0) - if (o2.indent) - o2.indent > 0 && o2.indent < a && (a = o2.indent); - else { - a = 1 / 0; - break; - } - if (a !== 1 / 0) - for (t12 = n.length; t12--; ) { - for (s3 = i[t12], u = a; u && !(u in s3); ) - u--; - n[t12] = n[t12].slice(s3[u] + 1); - } - return n.shift(), n.join(pa5); - } - }); - Ca3 = C3((gF, Ea3) => { - "use strict"; - var tp2 = Oe7(), np2 = Yr5(), ma3 = Le4(), ip2 = Mt5(), up2 = ha4(), ap2 = jr4(); - Ea3.exports = dp2; - var Ut5 = "*", op2 = "_", ga3 = "+", Yt6 = "-", va2 = ".", de7 = " ", te9 = ` -`, $r4 = " ", Fa2 = ")", sp2 = "x", ye6 = 4, cp2 = /\n\n(?!\s*$)/, lp2 = /^\[([ X\tx])][ \t]/, fp2 = /^([ \t]*)([*+-]|\d+[.)])( {1,4}(?! )| |\t|$|(?=\n))([^\n]*)/, Dp2 = /^([ \t]*)([*+-]|\d+[.)])([ \t]+)/, pp2 = /^( {1,4}|\t)?/gm; - function dp2(e3, r3, n) { - for (var t12 = this, a = t12.options.commonmark, i = t12.options.pedantic, u = t12.blockTokenizers, o2 = t12.interruptList, s3 = 0, l = r3.length, c3 = null, f3, D6, h4, p4, d5, m3, g3, x7, F5, B8, b5, v7, y5, k4, E6, w4, A6, q8, T4, N6 = false, _6, P10, S6, L7; s3 < l && (p4 = r3.charAt(s3), !(p4 !== $r4 && p4 !== de7)); ) - s3++; - if (p4 = r3.charAt(s3), p4 === Ut5 || p4 === ga3 || p4 === Yt6) - d5 = p4, h4 = false; - else { - for (h4 = true, D6 = ""; s3 < l && (p4 = r3.charAt(s3), !!ma3(p4)); ) - D6 += p4, s3++; - if (p4 = r3.charAt(s3), !D6 || !(p4 === va2 || a && p4 === Fa2) || n && D6 !== "1") - return; - c3 = parseInt(D6, 10), d5 = p4; - } - if (p4 = r3.charAt(++s3), !(p4 !== de7 && p4 !== $r4 && (i || p4 !== te9 && p4 !== ""))) { - if (n) - return true; - for (s3 = 0, k4 = [], E6 = [], w4 = []; s3 < l; ) { - for (m3 = r3.indexOf(te9, s3), g3 = s3, x7 = false, L7 = false, m3 === -1 && (m3 = l), f3 = 0; s3 < l; ) { - if (p4 = r3.charAt(s3), p4 === $r4) - f3 += ye6 - f3 % ye6; - else if (p4 === de7) - f3++; - else - break; - s3++; - } - if (A6 && f3 >= A6.indent && (L7 = true), p4 = r3.charAt(s3), F5 = null, !L7) { - if (p4 === Ut5 || p4 === ga3 || p4 === Yt6) - F5 = p4, s3++, f3++; - else { - for (D6 = ""; s3 < l && (p4 = r3.charAt(s3), !!ma3(p4)); ) - D6 += p4, s3++; - p4 = r3.charAt(s3), s3++, D6 && (p4 === va2 || a && p4 === Fa2) && (F5 = p4, f3 += D6.length + 1); - } - if (F5) - if (p4 = r3.charAt(s3), p4 === $r4) - f3 += ye6 - f3 % ye6, s3++; - else if (p4 === de7) { - for (S6 = s3 + ye6; s3 < S6 && r3.charAt(s3) === de7; ) - s3++, f3++; - s3 === S6 && r3.charAt(s3) === de7 && (s3 -= ye6 - 1, f3 -= ye6 - 1); - } else - p4 !== te9 && p4 !== "" && (F5 = null); - } - if (F5) { - if (!i && d5 !== F5) - break; - x7 = true; - } else - !a && !L7 && r3.charAt(g3) === de7 ? L7 = true : a && A6 && (L7 = f3 >= A6.indent || f3 > ye6), x7 = false, s3 = g3; - if (b5 = r3.slice(g3, m3), B8 = g3 === s3 ? b5 : r3.slice(s3, m3), (F5 === Ut5 || F5 === op2 || F5 === Yt6) && u.thematicBreak.call(t12, e3, b5, true)) - break; - if (v7 = y5, y5 = !x7 && !tp2(B8).length, L7 && A6) - A6.value = A6.value.concat(w4, b5), E6 = E6.concat(w4, b5), w4 = []; - else if (x7) - w4.length !== 0 && (N6 = true, A6.value.push(""), A6.trail = w4.concat()), A6 = { value: [b5], indent: f3, trail: [] }, k4.push(A6), E6 = E6.concat(w4, b5), w4 = []; - else if (y5) { - if (v7 && !a) - break; - w4.push(b5); - } else { - if (v7 || ap2(o2, u, t12, [e3, b5, true])) - break; - A6.value = A6.value.concat(w4, b5), E6 = E6.concat(w4, b5), w4 = []; - } - s3 = m3 + 1; - } - for (_6 = e3(E6.join(te9)).reset({ type: "list", ordered: h4, start: c3, spread: N6, children: [] }), q8 = t12.enterList(), T4 = t12.enterBlock(), s3 = -1, l = k4.length; ++s3 < l; ) - A6 = k4[s3].value.join(te9), P10 = e3.now(), e3(A6)(hp2(t12, A6, P10), _6), A6 = k4[s3].trail.join(te9), s3 !== l - 1 && (A6 += te9), e3(A6); - return q8(), T4(), _6; - } - } - function hp2(e3, r3, n) { - var t12 = e3.offset, a = e3.options.pedantic ? mp2 : gp2, i = null, u, o2; - return r3 = a.apply(null, arguments), e3.options.gfm && (u = r3.match(lp2), u && (o2 = u[0].length, i = u[1].toLowerCase() === sp2, t12[n.line] += o2, r3 = r3.slice(o2))), { type: "listItem", spread: cp2.test(r3), checked: i, children: e3.tokenizeBlock(r3, n) }; - } - function mp2(e3, r3, n) { - var t12 = e3.offset, a = n.line; - return r3 = r3.replace(Dp2, i), a = n.line, r3.replace(pp2, i); - function i(u) { - return t12[a] = (t12[a] || 0) + u.length, a++, ""; - } - } - function gp2(e3, r3, n) { - var t12 = e3.offset, a = n.line, i, u, o2, s3, l, c3, f3; - for (r3 = r3.replace(fp2, D6), s3 = r3.split(te9), l = up2(r3, ip2(i).indent).split(te9), l[0] = o2, t12[a] = (t12[a] || 0) + u.length, a++, c3 = 0, f3 = s3.length; ++c3 < f3; ) - t12[a] = (t12[a] || 0) + s3[c3].length - l[c3].length, a++; - return l.join(te9); - function D6(h4, p4, d5, m3, g3) { - return u = p4 + d5 + m3, o2 = g3, Number(d5) < 10 && u.length % 2 === 1 && (d5 = de7 + d5), i = p4 + np2(de7, d5.length) + m3, i + o2; - } - } - }); - ka2 = C3((vF, ya2) => { - "use strict"; - ya2.exports = xp2; - var Vt4 = ` -`, vp2 = " ", ba3 = " ", xa2 = "=", Fp2 = "-", Ep2 = 3, Cp2 = 1, bp2 = 2; - function xp2(e3, r3, n) { - for (var t12 = this, a = e3.now(), i = r3.length, u = -1, o2 = "", s3, l, c3, f3, D6; ++u < i; ) { - if (c3 = r3.charAt(u), c3 !== ba3 || u >= Ep2) { - u--; - break; - } - o2 += c3; - } - for (s3 = "", l = ""; ++u < i; ) { - if (c3 = r3.charAt(u), c3 === Vt4) { - u--; - break; - } - c3 === ba3 || c3 === vp2 ? l += c3 : (s3 += l + c3, l = ""); - } - if (a.column += o2.length, a.offset += o2.length, o2 += s3 + l, c3 = r3.charAt(++u), f3 = r3.charAt(++u), !(c3 !== Vt4 || f3 !== xa2 && f3 !== Fp2)) { - for (o2 += c3, l = f3, D6 = f3 === xa2 ? Cp2 : bp2; ++u < i; ) { - if (c3 = r3.charAt(u), c3 !== f3) { - if (c3 !== Vt4) - return; - u--; - break; - } - l += c3; - } - return n ? true : e3(o2 + l)({ type: "heading", depth: D6, children: t12.tokenizeInline(s3, a) }); - } - } - }); - $t6 = C3((jt5) => { - "use strict"; - var yp2 = "[a-zA-Z_:][a-zA-Z0-9:._-]*", kp2 = "[^\"'=<>`\\u0000-\\u0020]+", wp2 = "'[^']*'", Ap2 = '"[^"]*"', Bp2 = "(?:" + kp2 + "|" + wp2 + "|" + Ap2 + ")", qp3 = "(?:\\s+" + yp2 + "(?:\\s*=\\s*" + Bp2 + ")?)", wa2 = "<[A-Za-z][A-Za-z0-9\\-]*" + qp3 + "*\\s*\\/?>", Aa4 = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>", Tp2 = "|", Sp2 = "<[?].*?[?]>", Pp2 = "]*>", _p2 = ""; - jt5.openCloseTag = new RegExp("^(?:" + wa2 + "|" + Aa4 + ")"); - jt5.tag = new RegExp("^(?:" + wa2 + "|" + Aa4 + "|" + Tp2 + "|" + Sp2 + "|" + Pp2 + "|" + _p2 + ")"); - }); - Sa3 = C3((EF, Ta2) => { - "use strict"; - var Lp2 = $t6().openCloseTag; - Ta2.exports = Kp2; - var Op2 = " ", Ip2 = " ", Ba3 = ` -`, Np2 = "<", Rp2 = /^<(script|pre|style)(?=(\s|>|$))/i, zp2 = /<\/(script|pre|style)>/i, Mp2 = /^/, Yp2 = /^<\?/, Vp2 = /\?>/, jp2 = /^/, Gp2 = /^/, qa5 = /^$/, Wp2 = new RegExp(Lp2.source + "\\s*$"); - function Kp2(e3, r3, n) { - for (var t12 = this, a = t12.options.blocks.join("|"), i = new RegExp("^|$))", "i"), u = r3.length, o2 = 0, s3, l, c3, f3, D6, h4, p4, d5 = [[Rp2, zp2, true], [Mp2, Up2, true], [Yp2, Vp2, true], [jp2, $p2, true], [Gp2, Hp2, true], [i, qa5, true], [Wp2, qa5, false]]; o2 < u && (f3 = r3.charAt(o2), !(f3 !== Op2 && f3 !== Ip2)); ) - o2++; - if (r3.charAt(o2) === Np2) { - for (s3 = r3.indexOf(Ba3, o2 + 1), s3 = s3 === -1 ? u : s3, l = r3.slice(o2, s3), c3 = -1, D6 = d5.length; ++c3 < D6; ) - if (d5[c3][0].test(l)) { - h4 = d5[c3]; - break; - } - if (h4) { - if (n) - return h4[2]; - if (o2 = s3, !h4[1].test(l)) - for (; o2 < u; ) { - if (s3 = r3.indexOf(Ba3, o2 + 1), s3 = s3 === -1 ? u : s3, l = r3.slice(o2 + 1, s3), h4[1].test(l)) { - l && (o2 = s3); - break; - } - o2 = s3; - } - return p4 = r3.slice(0, o2), e3(p4)({ type: "html", value: p4 }); - } - } - } - }); - ne6 = C3((CF, Pa3) => { - "use strict"; - Pa3.exports = Qp2; - var Jp3 = String.fromCharCode, Xp3 = /\s/; - function Qp2(e3) { - return Xp3.test(typeof e3 == "number" ? Jp3(e3) : e3.charAt(0)); - } - }); - Gt4 = C3((bF, _a3) => { - "use strict"; - var Zp3 = kr5(); - _a3.exports = ed; - function ed(e3) { - return Zp3(e3).toLowerCase(); - } - }); - Ma2 = C3((xF, za4) => { - "use strict"; - var rd = ne6(), td = Gt4(); - za4.exports = ad2; - var La2 = '"', Oa3 = "'", nd = "\\", je11 = ` -`, Gr6 = " ", Hr6 = " ", Wt6 = "[", hr5 = "]", id2 = "(", ud2 = ")", Ia4 = ":", Na2 = "<", Ra3 = ">"; - function ad2(e3, r3, n) { - for (var t12 = this, a = t12.options.commonmark, i = 0, u = r3.length, o2 = "", s3, l, c3, f3, D6, h4, p4, d5; i < u && (f3 = r3.charAt(i), !(f3 !== Hr6 && f3 !== Gr6)); ) - o2 += f3, i++; - if (f3 = r3.charAt(i), f3 === Wt6) { - for (i++, o2 += f3, c3 = ""; i < u && (f3 = r3.charAt(i), f3 !== hr5); ) - f3 === nd && (c3 += f3, i++, f3 = r3.charAt(i)), c3 += f3, i++; - if (!(!c3 || r3.charAt(i) !== hr5 || r3.charAt(i + 1) !== Ia4)) { - for (h4 = c3, o2 += c3 + hr5 + Ia4, i = o2.length, c3 = ""; i < u && (f3 = r3.charAt(i), !(f3 !== Gr6 && f3 !== Hr6 && f3 !== je11)); ) - o2 += f3, i++; - if (f3 = r3.charAt(i), c3 = "", s3 = o2, f3 === Na2) { - for (i++; i < u && (f3 = r3.charAt(i), !!Ht3(f3)); ) - c3 += f3, i++; - if (f3 = r3.charAt(i), f3 === Ht3.delimiter) - o2 += Na2 + c3 + f3, i++; - else { - if (a) - return; - i -= c3.length + 1, c3 = ""; - } - } - if (!c3) { - for (; i < u && (f3 = r3.charAt(i), !!od2(f3)); ) - c3 += f3, i++; - o2 += c3; - } - if (c3) { - for (p4 = c3, c3 = ""; i < u && (f3 = r3.charAt(i), !(f3 !== Gr6 && f3 !== Hr6 && f3 !== je11)); ) - c3 += f3, i++; - if (f3 = r3.charAt(i), D6 = null, f3 === La2 ? D6 = La2 : f3 === Oa3 ? D6 = Oa3 : f3 === id2 && (D6 = ud2), !D6) - c3 = "", i = o2.length; - else if (c3) { - for (o2 += c3 + f3, i = o2.length, c3 = ""; i < u && (f3 = r3.charAt(i), f3 !== D6); ) { - if (f3 === je11) { - if (i++, f3 = r3.charAt(i), f3 === je11 || f3 === D6) - return; - c3 += je11; - } - c3 += f3, i++; - } - if (f3 = r3.charAt(i), f3 !== D6) - return; - l = o2, o2 += c3 + f3, i++, d5 = c3, c3 = ""; - } else - return; - for (; i < u && (f3 = r3.charAt(i), !(f3 !== Gr6 && f3 !== Hr6)); ) - o2 += f3, i++; - if (f3 = r3.charAt(i), !f3 || f3 === je11) - return n ? true : (s3 = e3(s3).test().end, p4 = t12.decode.raw(t12.unescape(p4), s3, { nonTerminated: false }), d5 && (l = e3(l).test().end, d5 = t12.decode.raw(t12.unescape(d5), l)), e3(o2)({ type: "definition", identifier: td(h4), label: h4, title: d5 || null, url: p4 })); - } - } - } - } - function Ht3(e3) { - return e3 !== Ra3 && e3 !== Wt6 && e3 !== hr5; - } - Ht3.delimiter = Ra3; - function od2(e3) { - return e3 !== Wt6 && e3 !== hr5 && !rd(e3); - } - }); - Va3 = C3((yF, Ya4) => { - "use strict"; - var sd = ne6(); - Ya4.exports = vd; - var cd = " ", Wr6 = ` -`, ld2 = " ", fd = "-", Dd = ":", pd = "\\", Kt6 = "|", dd = 1, hd = 2, Ua4 = "left", md = "center", gd = "right"; - function vd(e3, r3, n) { - var t12 = this, a, i, u, o2, s3, l, c3, f3, D6, h4, p4, d5, m3, g3, x7, F5, B8, b5, v7, y5, k4, E6; - if (t12.options.gfm) { - for (a = 0, F5 = 0, l = r3.length + 1, c3 = []; a < l; ) { - if (y5 = r3.indexOf(Wr6, a), k4 = r3.indexOf(Kt6, a + 1), y5 === -1 && (y5 = r3.length), k4 === -1 || k4 > y5) { - if (F5 < hd) - return; - break; - } - c3.push(r3.slice(a, y5)), F5++, a = y5 + 1; - } - for (o2 = c3.join(Wr6), i = c3.splice(1, 1)[0] || [], a = 0, l = i.length, F5--, u = false, p4 = []; a < l; ) { - if (D6 = i.charAt(a), D6 === Kt6) { - if (h4 = null, u === false) { - if (E6 === false) - return; - } else - p4.push(u), u = false; - E6 = false; - } else if (D6 === fd) - h4 = true, u = u || null; - else if (D6 === Dd) - u === Ua4 ? u = md : h4 && u === null ? u = gd : u = Ua4; - else if (!sd(D6)) - return; - a++; - } - if (u !== false && p4.push(u), !(p4.length < dd)) { - if (n) - return true; - for (x7 = -1, b5 = [], v7 = e3(o2).reset({ type: "table", align: p4, children: b5 }); ++x7 < F5; ) { - for (B8 = c3[x7], s3 = { type: "tableRow", children: [] }, x7 && e3(Wr6), e3(B8).reset(s3, v7), l = B8.length + 1, a = 0, f3 = "", d5 = "", m3 = true; a < l; ) { - if (D6 = B8.charAt(a), D6 === cd || D6 === ld2) { - d5 ? f3 += D6 : e3(D6), a++; - continue; - } - D6 === "" || D6 === Kt6 ? m3 ? e3(D6) : ((d5 || D6) && !m3 && (o2 = d5, f3.length > 1 && (D6 ? (o2 += f3.slice(0, -1), f3 = f3.charAt(f3.length - 1)) : (o2 += f3, f3 = "")), g3 = e3.now(), e3(o2)({ type: "tableCell", children: t12.tokenizeInline(d5, g3) }, s3)), e3(f3 + D6), f3 = "", d5 = "") : (f3 && (d5 += f3, f3 = ""), d5 += D6, D6 === pd && a !== l - 2 && (d5 += B8.charAt(a + 1), a++)), m3 = false, a++; - } - x7 || e3(Wr6 + i); - } - return v7; - } - } - } - }); - Ga3 = C3((kF, $a3) => { - "use strict"; - var Fd = Oe7(), Ed = Ot7(), Cd = jr4(); - $a3.exports = yd; - var bd = " ", mr6 = ` -`, xd = " ", ja4 = 4; - function yd(e3, r3, n) { - for (var t12 = this, a = t12.options, i = a.commonmark, u = t12.blockTokenizers, o2 = t12.interruptParagraph, s3 = r3.indexOf(mr6), l = r3.length, c3, f3, D6, h4, p4; s3 < l; ) { - if (s3 === -1) { - s3 = l; - break; - } - if (r3.charAt(s3 + 1) === mr6) - break; - if (i) { - for (h4 = 0, c3 = s3 + 1; c3 < l; ) { - if (D6 = r3.charAt(c3), D6 === bd) { - h4 = ja4; - break; - } else if (D6 === xd) - h4++; - else - break; - c3++; - } - if (h4 >= ja4 && D6 !== mr6) { - s3 = r3.indexOf(mr6, s3 + 1); - continue; - } - } - if (f3 = r3.slice(s3 + 1), Cd(o2, u, t12, [e3, f3, true])) - break; - if (c3 = s3, s3 = r3.indexOf(mr6, s3 + 1), s3 !== -1 && Fd(r3.slice(c3, s3)) === "") { - s3 = c3; - break; - } - } - return f3 = r3.slice(0, s3), n ? true : (p4 = e3.now(), f3 = Ed(f3), e3(f3)({ type: "paragraph", children: t12.tokenizeInline(f3, p4) })); - } - }); - Wa3 = C3((wF, Ha3) => { - "use strict"; - Ha3.exports = kd; - function kd(e3, r3) { - return e3.indexOf("\\", r3); - } - }); - Qa3 = C3((AF, Xa4) => { - "use strict"; - var wd = Wa3(); - Xa4.exports = Ja4; - Ja4.locator = wd; - var Ad = ` -`, Ka4 = "\\"; - function Ja4(e3, r3, n) { - var t12 = this, a, i; - if (r3.charAt(0) === Ka4 && (a = r3.charAt(1), t12.escape.indexOf(a) !== -1)) - return n ? true : (a === Ad ? i = { type: "break" } : i = { type: "text", value: a }, e3(Ka4 + a)(i)); - } - }); - Jt5 = C3((BF, Za3) => { - "use strict"; - Za3.exports = Bd; - function Bd(e3, r3) { - return e3.indexOf("<", r3); - } - }); - io2 = C3((qF, no3) => { - "use strict"; - var eo3 = ne6(), qd = lr5(), Td = Jt5(); - no3.exports = en6; - en6.locator = Td; - en6.notInLink = true; - var ro3 = "<", Xt5 = ">", to3 = "@", Qt5 = "/", Zt5 = "mailto:", Kr6 = Zt5.length; - function en6(e3, r3, n) { - var t12 = this, a = "", i = r3.length, u = 0, o2 = "", s3 = false, l = "", c3, f3, D6, h4, p4; - if (r3.charAt(0) === ro3) { - for (u++, a = ro3; u < i && (c3 = r3.charAt(u), !(eo3(c3) || c3 === Xt5 || c3 === to3 || c3 === ":" && r3.charAt(u + 1) === Qt5)); ) - o2 += c3, u++; - if (o2) { - if (l += o2, o2 = "", c3 = r3.charAt(u), l += c3, u++, c3 === to3) - s3 = true; - else { - if (c3 !== ":" || r3.charAt(u + 1) !== Qt5) - return; - l += Qt5, u++; - } - for (; u < i && (c3 = r3.charAt(u), !(eo3(c3) || c3 === Xt5)); ) - o2 += c3, u++; - if (c3 = r3.charAt(u), !(!o2 || c3 !== Xt5)) - return n ? true : (l += o2, D6 = l, a += l + c3, f3 = e3.now(), f3.column++, f3.offset++, s3 && (l.slice(0, Kr6).toLowerCase() === Zt5 ? (D6 = D6.slice(Kr6), f3.column += Kr6, f3.offset += Kr6) : l = Zt5 + l), h4 = t12.inlineTokenizers, t12.inlineTokenizers = { text: h4.text }, p4 = t12.enterLink(), D6 = t12.tokenizeInline(D6, f3), t12.inlineTokenizers = h4, p4(), e3(a)({ type: "link", title: null, url: qd(l, { nonTerminated: false }), children: D6 })); - } - } - } - }); - ao2 = C3((TF, uo4) => { - "use strict"; - uo4.exports = Sd; - function Sd(e3, r3) { - var n = String(e3), t12 = 0, a; - if (typeof r3 != "string") - throw new Error("Expected character"); - for (a = n.indexOf(r3); a !== -1; ) - t12++, a = n.indexOf(r3, a + r3.length); - return t12; - } - }); - co3 = C3((SF, so3) => { - "use strict"; - so3.exports = Pd; - var oo3 = ["www.", "http://", "https://"]; - function Pd(e3, r3) { - var n = -1, t12, a, i; - if (!this.options.gfm) - return n; - for (a = oo3.length, t12 = -1; ++t12 < a; ) - i = e3.indexOf(oo3[t12], r3), i !== -1 && (n === -1 || i < n) && (n = i); - return n; - } - }); - ho2 = C3((PF, po3) => { - "use strict"; - var lo3 = ao2(), _d = lr5(), Ld = Le4(), rn7 = ze7(), Od = ne6(), Id = co3(); - po3.exports = nn7; - nn7.locator = Id; - nn7.notInLink = true; - var Nd = 33, Rd = 38, zd = 41, Md = 42, Ud = 44, Yd = 45, tn7 = 46, Vd = 58, jd = 59, $d = 63, Gd = 60, fo3 = 95, Hd = 126, Wd = "(", Do2 = ")"; - function nn7(e3, r3, n) { - var t12 = this, a = t12.options.gfm, i = t12.inlineTokenizers, u = r3.length, o2 = -1, s3 = false, l, c3, f3, D6, h4, p4, d5, m3, g3, x7, F5, B8, b5, v7; - if (a) { - if (r3.slice(0, 4) === "www.") - s3 = true, D6 = 4; - else if (r3.slice(0, 7).toLowerCase() === "http://") - D6 = 7; - else if (r3.slice(0, 8).toLowerCase() === "https://") - D6 = 8; - else - return; - for (o2 = D6 - 1, f3 = D6, l = []; D6 < u; ) { - if (d5 = r3.charCodeAt(D6), d5 === tn7) { - if (o2 === D6 - 1) - break; - l.push(D6), o2 = D6, D6++; - continue; - } - if (Ld(d5) || rn7(d5) || d5 === Yd || d5 === fo3) { - D6++; - continue; - } - break; - } - if (d5 === tn7 && (l.pop(), D6--), l[0] !== void 0 && (c3 = l.length < 2 ? f3 : l[l.length - 2] + 1, r3.slice(c3, D6).indexOf("_") === -1)) { - if (n) - return true; - for (m3 = D6, h4 = D6; D6 < u && (d5 = r3.charCodeAt(D6), !(Od(d5) || d5 === Gd)); ) - D6++, d5 === Nd || d5 === Md || d5 === Ud || d5 === tn7 || d5 === Vd || d5 === $d || d5 === fo3 || d5 === Hd || (m3 = D6); - if (D6 = m3, r3.charCodeAt(D6 - 1) === zd) - for (p4 = r3.slice(h4, D6), g3 = lo3(p4, Wd), x7 = lo3(p4, Do2); x7 > g3; ) - D6 = h4 + p4.lastIndexOf(Do2), p4 = r3.slice(h4, D6), x7--; - if (r3.charCodeAt(D6 - 1) === jd && (D6--, rn7(r3.charCodeAt(D6 - 1)))) { - for (m3 = D6 - 2; rn7(r3.charCodeAt(m3)); ) - m3--; - r3.charCodeAt(m3) === Rd && (D6 = m3); - } - return F5 = r3.slice(0, D6), b5 = _d(F5, { nonTerminated: false }), s3 && (b5 = "http://" + b5), v7 = t12.enterLink(), t12.inlineTokenizers = { text: i.text }, B8 = t12.tokenizeInline(F5, e3.now()), t12.inlineTokenizers = i, v7(), e3(F5)({ type: "link", title: null, url: b5, children: B8 }); - } - } - } - }); - Fo2 = C3((_F, vo3) => { - "use strict"; - var Kd = Le4(), Jd = ze7(), Xd = 43, Qd = 45, Zd = 46, eh2 = 95; - vo3.exports = go3; - function go3(e3, r3) { - var n = this, t12, a; - if (!this.options.gfm || (t12 = e3.indexOf("@", r3), t12 === -1)) - return -1; - if (a = t12, a === r3 || !mo3(e3.charCodeAt(a - 1))) - return go3.call(n, e3, t12 + 1); - for (; a > r3 && mo3(e3.charCodeAt(a - 1)); ) - a--; - return a; - } - function mo3(e3) { - return Kd(e3) || Jd(e3) || e3 === Xd || e3 === Qd || e3 === Zd || e3 === eh2; - } - }); - xo2 = C3((LF, bo3) => { - "use strict"; - var rh = lr5(), Eo4 = Le4(), Co2 = ze7(), th = Fo2(); - bo3.exports = on6; - on6.locator = th; - on6.notInLink = true; - var nh = 43, un6 = 45, Jr6 = 46, ih = 64, an6 = 95; - function on6(e3, r3, n) { - var t12 = this, a = t12.options.gfm, i = t12.inlineTokenizers, u = 0, o2 = r3.length, s3 = -1, l, c3, f3, D6; - if (a) { - for (l = r3.charCodeAt(u); Eo4(l) || Co2(l) || l === nh || l === un6 || l === Jr6 || l === an6; ) - l = r3.charCodeAt(++u); - if (u !== 0 && l === ih) { - for (u++; u < o2; ) { - if (l = r3.charCodeAt(u), Eo4(l) || Co2(l) || l === un6 || l === Jr6 || l === an6) { - u++, s3 === -1 && l === Jr6 && (s3 = u); - continue; - } - break; - } - if (!(s3 === -1 || s3 === u || l === un6 || l === an6)) - return l === Jr6 && u--, c3 = r3.slice(0, u), n ? true : (D6 = t12.enterLink(), t12.inlineTokenizers = { text: i.text }, f3 = t12.tokenizeInline(c3, e3.now()), t12.inlineTokenizers = i, D6(), e3(c3)({ type: "link", title: null, url: "mailto:" + rh(c3, { nonTerminated: false }), children: f3 })); - } - } - } - }); - wo2 = C3((OF, ko2) => { - "use strict"; - var uh = ze7(), ah = Jt5(), oh = $t6().tag; - ko2.exports = yo3; - yo3.locator = ah; - var sh = "<", ch = "?", lh = "!", fh = "/", Dh = /^/i; - function yo3(e3, r3, n) { - var t12 = this, a = r3.length, i, u; - if (!(r3.charAt(0) !== sh || a < 3) && (i = r3.charAt(1), !(!uh(i) && i !== ch && i !== lh && i !== fh) && (u = r3.match(oh), !!u))) - return n ? true : (u = u[0], !t12.inLink && Dh.test(u) ? t12.inLink = true : t12.inLink && ph.test(u) && (t12.inLink = false), e3(u)({ type: "html", value: u })); - } - }); - sn4 = C3((IF, Ao2) => { - "use strict"; - Ao2.exports = dh; - function dh(e3, r3) { - var n = e3.indexOf("[", r3), t12 = e3.indexOf("![", r3); - return t12 === -1 || n < t12 ? n : t12; - } - }); - Lo2 = C3((NF, _o3) => { - "use strict"; - var gr6 = ne6(), hh = sn4(); - _o3.exports = Po2; - Po2.locator = hh; - var mh = ` -`, gh = "!", Bo3 = '"', qo3 = "'", $e9 = "(", vr6 = ")", cn6 = "<", ln6 = ">", To2 = "[", Fr5 = "\\", vh = "]", So3 = "`"; - function Po2(e3, r3, n) { - var t12 = this, a = "", i = 0, u = r3.charAt(0), o2 = t12.options.pedantic, s3 = t12.options.commonmark, l = t12.options.gfm, c3, f3, D6, h4, p4, d5, m3, g3, x7, F5, B8, b5, v7, y5, k4, E6, w4, A6; - if (u === gh && (g3 = true, a = u, u = r3.charAt(++i)), u === To2 && !(!g3 && t12.inLink)) { - for (a += u, y5 = "", i++, B8 = r3.length, E6 = e3.now(), v7 = 0, E6.column += i, E6.offset += i; i < B8; ) { - if (u = r3.charAt(i), d5 = u, u === So3) { - for (f3 = 1; r3.charAt(i + 1) === So3; ) - d5 += u, i++, f3++; - D6 ? f3 >= D6 && (D6 = 0) : D6 = f3; - } else if (u === Fr5) - i++, d5 += r3.charAt(i); - else if ((!D6 || l) && u === To2) - v7++; - else if ((!D6 || l) && u === vh) - if (v7) - v7--; - else { - if (r3.charAt(i + 1) !== $e9) - return; - d5 += $e9, c3 = true, i++; - break; - } - y5 += d5, d5 = "", i++; - } - if (c3) { - for (x7 = y5, a += y5 + d5, i++; i < B8 && (u = r3.charAt(i), !!gr6(u)); ) - a += u, i++; - if (u = r3.charAt(i), y5 = "", h4 = a, u === cn6) { - for (i++, h4 += cn6; i < B8 && (u = r3.charAt(i), u !== ln6); ) { - if (s3 && u === mh) - return; - y5 += u, i++; - } - if (r3.charAt(i) !== ln6) - return; - a += cn6 + y5 + ln6, k4 = y5, i++; - } else { - for (u = null, d5 = ""; i < B8 && (u = r3.charAt(i), !(d5 && (u === Bo3 || u === qo3 || s3 && u === $e9))); ) { - if (gr6(u)) { - if (!o2) - break; - d5 += u; - } else { - if (u === $e9) - v7++; - else if (u === vr6) { - if (v7 === 0) - break; - v7--; - } - y5 += d5, d5 = "", u === Fr5 && (y5 += Fr5, u = r3.charAt(++i)), y5 += u; - } - i++; - } - a += y5, k4 = y5, i = a.length; - } - for (y5 = ""; i < B8 && (u = r3.charAt(i), !!gr6(u)); ) - y5 += u, i++; - if (u = r3.charAt(i), a += y5, y5 && (u === Bo3 || u === qo3 || s3 && u === $e9)) - if (i++, a += u, y5 = "", F5 = u === $e9 ? vr6 : u, p4 = a, s3) { - for (; i < B8 && (u = r3.charAt(i), u !== F5); ) - u === Fr5 && (y5 += Fr5, u = r3.charAt(++i)), i++, y5 += u; - if (u = r3.charAt(i), u !== F5) - return; - for (b5 = y5, a += y5 + u, i++; i < B8 && (u = r3.charAt(i), !!gr6(u)); ) - a += u, i++; - } else - for (d5 = ""; i < B8; ) { - if (u = r3.charAt(i), u === F5) - m3 && (y5 += F5 + d5, d5 = ""), m3 = true; - else if (!m3) - y5 += u; - else if (u === vr6) { - a += y5 + F5 + d5, b5 = y5; - break; - } else - gr6(u) ? d5 += u : (y5 += F5 + d5 + u, d5 = "", m3 = false); - i++; - } - if (r3.charAt(i) === vr6) - return n ? true : (a += vr6, k4 = t12.decode.raw(t12.unescape(k4), e3(h4).test().end, { nonTerminated: false }), b5 && (p4 = e3(p4).test().end, b5 = t12.decode.raw(t12.unescape(b5), p4)), A6 = { type: g3 ? "image" : "link", title: b5 || null, url: k4 }, g3 ? A6.alt = t12.decode.raw(t12.unescape(x7), E6) || null : (w4 = t12.enterLink(), A6.children = t12.tokenizeInline(x7, E6), w4()), e3(a)(A6)); - } - } - } - }); - No2 = C3((RF, Io2) => { - "use strict"; - var Fh = ne6(), Eh = sn4(), Ch = Gt4(); - Io2.exports = Oo2; - Oo2.locator = Eh; - var fn6 = "link", bh = "image", xh = "shortcut", yh2 = "collapsed", Dn5 = "full", kh = "!", Xr7 = "[", Qr6 = "\\", Zr7 = "]"; - function Oo2(e3, r3, n) { - var t12 = this, a = t12.options.commonmark, i = r3.charAt(0), u = 0, o2 = r3.length, s3 = "", l = "", c3 = fn6, f3 = xh, D6, h4, p4, d5, m3, g3, x7, F5; - if (i === kh && (c3 = bh, l = i, i = r3.charAt(++u)), i === Xr7) { - for (u++, l += i, g3 = "", F5 = 0; u < o2; ) { - if (i = r3.charAt(u), i === Xr7) - x7 = true, F5++; - else if (i === Zr7) { - if (!F5) - break; - F5--; - } - i === Qr6 && (g3 += Qr6, i = r3.charAt(++u)), g3 += i, u++; - } - if (s3 = g3, D6 = g3, i = r3.charAt(u), i === Zr7) { - if (u++, s3 += i, g3 = "", !a) - for (; u < o2 && (i = r3.charAt(u), !!Fh(i)); ) - g3 += i, u++; - if (i = r3.charAt(u), i === Xr7) { - for (h4 = "", g3 += i, u++; u < o2 && (i = r3.charAt(u), !(i === Xr7 || i === Zr7)); ) - i === Qr6 && (h4 += Qr6, i = r3.charAt(++u)), h4 += i, u++; - i = r3.charAt(u), i === Zr7 ? (f3 = h4 ? Dn5 : yh2, g3 += h4 + i, u++) : h4 = "", s3 += g3, g3 = ""; - } else { - if (!D6) - return; - h4 = D6; - } - if (!(f3 !== Dn5 && x7)) - return s3 = l + s3, c3 === fn6 && t12.inLink ? null : n ? true : (p4 = e3.now(), p4.column += l.length, p4.offset += l.length, h4 = f3 === Dn5 ? h4 : D6, d5 = { type: c3 + "Reference", identifier: Ch(h4), label: h4, referenceType: f3 }, c3 === fn6 ? (m3 = t12.enterLink(), d5.children = t12.tokenizeInline(D6, p4), m3()) : d5.alt = t12.decode.raw(t12.unescape(D6), p4) || null, e3(s3)(d5)); - } - } - } - }); - zo2 = C3((zF, Ro3) => { - "use strict"; - Ro3.exports = wh; - function wh(e3, r3) { - var n = e3.indexOf("**", r3), t12 = e3.indexOf("__", r3); - return t12 === -1 ? n : n === -1 || t12 < n ? t12 : n; - } - }); - Vo2 = C3((MF, Yo3) => { - "use strict"; - var Ah = Oe7(), Mo2 = ne6(), Bh = zo2(); - Yo3.exports = Uo2; - Uo2.locator = Bh; - var qh = "\\", Th = "*", Sh = "_"; - function Uo2(e3, r3, n) { - var t12 = this, a = 0, i = r3.charAt(a), u, o2, s3, l, c3, f3, D6; - if (!(i !== Th && i !== Sh || r3.charAt(++a) !== i) && (o2 = t12.options.pedantic, s3 = i, c3 = s3 + s3, f3 = r3.length, a++, l = "", i = "", !(o2 && Mo2(r3.charAt(a))))) - for (; a < f3; ) { - if (D6 = i, i = r3.charAt(a), i === s3 && r3.charAt(a + 1) === s3 && (!o2 || !Mo2(D6)) && (i = r3.charAt(a + 2), i !== s3)) - return Ah(l) ? n ? true : (u = e3.now(), u.column += 2, u.offset += 2, e3(c3 + l + c3)({ type: "strong", children: t12.tokenizeInline(l, u) })) : void 0; - !o2 && i === qh && (l += i, i = r3.charAt(++a)), l += i, a++; - } - } - }); - $o2 = C3((UF, jo2) => { - "use strict"; - jo2.exports = Lh; - var Ph = String.fromCharCode, _h = /\w/; - function Lh(e3) { - return _h.test(typeof e3 == "number" ? Ph(e3) : e3.charAt(0)); - } - }); - Ho2 = C3((YF, Go2) => { - "use strict"; - Go2.exports = Oh; - function Oh(e3, r3) { - var n = e3.indexOf("*", r3), t12 = e3.indexOf("_", r3); - return t12 === -1 ? n : n === -1 || t12 < n ? t12 : n; - } - }); - Qo2 = C3((VF, Xo2) => { - "use strict"; - var Ih = Oe7(), Nh = $o2(), Wo3 = ne6(), Rh = Ho2(); - Xo2.exports = Jo2; - Jo2.locator = Rh; - var zh = "*", Ko3 = "_", Mh = "\\"; - function Jo2(e3, r3, n) { - var t12 = this, a = 0, i = r3.charAt(a), u, o2, s3, l, c3, f3, D6; - if (!(i !== zh && i !== Ko3) && (o2 = t12.options.pedantic, c3 = i, s3 = i, f3 = r3.length, a++, l = "", i = "", !(o2 && Wo3(r3.charAt(a))))) - for (; a < f3; ) { - if (D6 = i, i = r3.charAt(a), i === s3 && (!o2 || !Wo3(D6))) { - if (i = r3.charAt(++a), i !== s3) { - if (!Ih(l) || D6 === s3) - return; - if (!o2 && s3 === Ko3 && Nh(i)) { - l += s3; - continue; - } - return n ? true : (u = e3.now(), u.column++, u.offset++, e3(c3 + l + s3)({ type: "emphasis", children: t12.tokenizeInline(l, u) })); - } - l += s3; - } - !o2 && i === Mh && (l += i, i = r3.charAt(++a)), l += i, a++; - } - } - }); - es5 = C3((jF, Zo2) => { - "use strict"; - Zo2.exports = Uh; - function Uh(e3, r3) { - return e3.indexOf("~~", r3); - } - }); - us4 = C3(($F, is7) => { - "use strict"; - var rs6 = ne6(), Yh = es5(); - is7.exports = ns6; - ns6.locator = Yh; - var et9 = "~", ts6 = "~~"; - function ns6(e3, r3, n) { - var t12 = this, a = "", i = "", u = "", o2 = "", s3, l, c3; - if (!(!t12.options.gfm || r3.charAt(0) !== et9 || r3.charAt(1) !== et9 || rs6(r3.charAt(2)))) - for (s3 = 1, l = r3.length, c3 = e3.now(), c3.column += 2, c3.offset += 2; ++s3 < l; ) { - if (a = r3.charAt(s3), a === et9 && i === et9 && (!u || !rs6(u))) - return n ? true : e3(ts6 + o2 + ts6)({ type: "delete", children: t12.tokenizeInline(o2, c3) }); - o2 += i, u = i, i = a; - } - } - }); - os5 = C3((GF, as6) => { - "use strict"; - as6.exports = Vh2; - function Vh2(e3, r3) { - return e3.indexOf("`", r3); - } - }); - ls4 = C3((HF, cs4) => { - "use strict"; - var jh = os5(); - cs4.exports = ss7; - ss7.locator = jh; - var pn6 = 10, dn5 = 32, hn6 = 96; - function ss7(e3, r3, n) { - for (var t12 = r3.length, a = 0, i, u, o2, s3, l, c3; a < t12 && r3.charCodeAt(a) === hn6; ) - a++; - if (!(a === 0 || a === t12)) { - for (i = a, l = r3.charCodeAt(a); a < t12; ) { - if (s3 = l, l = r3.charCodeAt(a + 1), s3 === hn6) { - if (u === void 0 && (u = a), o2 = a + 1, l !== hn6 && o2 - u === i) { - c3 = true; - break; - } - } else - u !== void 0 && (u = void 0, o2 = void 0); - a++; - } - if (c3) { - if (n) - return true; - if (a = i, t12 = u, s3 = r3.charCodeAt(a), l = r3.charCodeAt(t12 - 1), c3 = false, t12 - a > 2 && (s3 === dn5 || s3 === pn6) && (l === dn5 || l === pn6)) { - for (a++, t12--; a < t12; ) { - if (s3 = r3.charCodeAt(a), s3 !== dn5 && s3 !== pn6) { - c3 = true; - break; - } - a++; - } - c3 === true && (i++, u--); - } - return e3(r3.slice(0, o2))({ type: "inlineCode", value: r3.slice(i, u) }); - } - } - } - }); - Ds6 = C3((WF, fs12) => { - "use strict"; - fs12.exports = $h; - function $h(e3, r3) { - for (var n = e3.indexOf(` -`, r3); n > r3 && e3.charAt(n - 1) === " "; ) - n--; - return n; - } - }); - hs3 = C3((KF, ds5) => { - "use strict"; - var Gh = Ds6(); - ds5.exports = ps4; - ps4.locator = Gh; - var Hh2 = " ", Wh = ` -`, Kh = 2; - function ps4(e3, r3, n) { - for (var t12 = r3.length, a = -1, i = "", u; ++a < t12; ) { - if (u = r3.charAt(a), u === Wh) - return a < Kh ? void 0 : n ? true : (i += u, e3(i)({ type: "break" })); - if (u !== Hh2) - return; - i += u; - } - } - }); - gs5 = C3((JF, ms7) => { - "use strict"; - ms7.exports = Jh; - function Jh(e3, r3, n) { - var t12 = this, a, i, u, o2, s3, l, c3, f3, D6, h4; - if (n) - return true; - for (a = t12.inlineMethods, o2 = a.length, i = t12.inlineTokenizers, u = -1, D6 = r3.length; ++u < o2; ) - f3 = a[u], !(f3 === "text" || !i[f3]) && (c3 = i[f3].locator, c3 || e3.file.fail("Missing locator: `" + f3 + "`"), l = c3.call(t12, r3, 1), l !== -1 && l < D6 && (D6 = l)); - s3 = r3.slice(0, D6), h4 = e3.now(), t12.decode(s3, h4, p4); - function p4(d5, m3, g3) { - e3(g3 || d5)({ type: "text", value: d5 }); - } - } - }); - Cs4 = C3((XF, Es6) => { - "use strict"; - var Xh = _e7(), rt8 = Ni4(), Qh = zi4(), Zh = Ui4(), em = hu2(), mn6 = vu2(); - Es6.exports = vs7; - function vs7(e3, r3) { - this.file = r3, this.offset = {}, this.options = Xh(this.options), this.setOptions({}), this.inList = false, this.inBlock = false, this.inLink = false, this.atStart = true, this.toOffset = Qh(r3).toOffset, this.unescape = Zh(this, "escape"), this.decode = em(this); - } - var z8 = vs7.prototype; - z8.setOptions = wu2(); - z8.parse = Yu2(); - z8.options = Pt6(); - z8.exitStart = rt8("atStart", true); - z8.enterList = rt8("inList", false); - z8.enterLink = rt8("inLink", false); - z8.enterBlock = rt8("inBlock", false); - z8.interruptParagraph = [["thematicBreak"], ["list"], ["atxHeading"], ["fencedCode"], ["blockquote"], ["html"], ["setextHeading", { commonmark: false }], ["definition", { commonmark: false }]]; - z8.interruptList = [["atxHeading", { pedantic: false }], ["fencedCode", { pedantic: false }], ["thematicBreak", { pedantic: false }], ["definition", { commonmark: false }]]; - z8.interruptBlockquote = [["indentedCode", { commonmark: true }], ["fencedCode", { commonmark: true }], ["atxHeading", { commonmark: true }], ["setextHeading", { commonmark: true }], ["thematicBreak", { commonmark: true }], ["html", { commonmark: true }], ["list", { commonmark: true }], ["definition", { commonmark: false }]]; - z8.blockTokenizers = { blankLine: ju2(), indentedCode: Ku2(), fencedCode: Qu2(), blockquote: ia4(), atxHeading: oa4(), thematicBreak: la4(), list: Ca3(), setextHeading: ka2(), html: Sa3(), definition: Ma2(), table: Va3(), paragraph: Ga3() }; - z8.inlineTokenizers = { escape: Qa3(), autoLink: io2(), url: ho2(), email: xo2(), html: wo2(), link: Lo2(), reference: No2(), strong: Vo2(), emphasis: Qo2(), deletion: us4(), code: ls4(), break: hs3(), text: gs5() }; - z8.blockMethods = Fs7(z8.blockTokenizers); - z8.inlineMethods = Fs7(z8.inlineTokenizers); - z8.tokenizeBlock = mn6("block"); - z8.tokenizeInline = mn6("inline"); - z8.tokenizeFactory = mn6; - function Fs7(e3) { - var r3 = [], n; - for (n in e3) - r3.push(n); - return r3; - } - }); - ks6 = C3((QF, ys7) => { - "use strict"; - var rm = Oi4(), tm = _e7(), bs7 = Cs4(); - ys7.exports = xs5; - xs5.Parser = bs7; - function xs5(e3) { - var r3 = this.data("settings"), n = rm(bs7); - n.prototype.options = tm(n.prototype.options, r3, e3), this.Parser = n; - } - }); - As5 = C3((ZF, ws7) => { - "use strict"; - ws7.exports = nm; - function nm(e3) { - if (e3) - throw e3; - } - }); - gn5 = C3((eE, Bs7) => { - Bs7.exports = function(r3) { - return r3 != null && r3.constructor != null && typeof r3.constructor.isBuffer == "function" && r3.constructor.isBuffer(r3); - }; - }); - Ns5 = C3((rE, Is6) => { - "use strict"; - var tt9 = Object.prototype.hasOwnProperty, Os8 = Object.prototype.toString, qs6 = Object.defineProperty, Ts8 = Object.getOwnPropertyDescriptor, Ss6 = function(r3) { - return typeof Array.isArray == "function" ? Array.isArray(r3) : Os8.call(r3) === "[object Array]"; - }, Ps7 = function(r3) { - if (!r3 || Os8.call(r3) !== "[object Object]") - return false; - var n = tt9.call(r3, "constructor"), t12 = r3.constructor && r3.constructor.prototype && tt9.call(r3.constructor.prototype, "isPrototypeOf"); - if (r3.constructor && !n && !t12) - return false; - var a; - for (a in r3) - ; - return typeof a > "u" || tt9.call(r3, a); - }, _s7 = function(r3, n) { - qs6 && n.name === "__proto__" ? qs6(r3, n.name, { enumerable: true, configurable: true, value: n.newValue, writable: true }) : r3[n.name] = n.newValue; - }, Ls7 = function(r3, n) { - if (n === "__proto__") - if (tt9.call(r3, n)) { - if (Ts8) - return Ts8(r3, n).value; - } else - return; - return r3[n]; - }; - Is6.exports = function e3() { - var r3, n, t12, a, i, u, o2 = arguments[0], s3 = 1, l = arguments.length, c3 = false; - for (typeof o2 == "boolean" && (c3 = o2, o2 = arguments[1] || {}, s3 = 2), (o2 == null || typeof o2 != "object" && typeof o2 != "function") && (o2 = {}); s3 < l; ++s3) - if (r3 = arguments[s3], r3 != null) - for (n in r3) - t12 = Ls7(o2, n), a = Ls7(r3, n), o2 !== a && (c3 && a && (Ps7(a) || (i = Ss6(a))) ? (i ? (i = false, u = t12 && Ss6(t12) ? t12 : []) : u = t12 && Ps7(t12) ? t12 : {}, _s7(o2, { name: n, newValue: e3(c3, u, a) })) : typeof a < "u" && _s7(o2, { name: n, newValue: a })); - return o2; - }; - }); - zs5 = C3((tE, Rs6) => { - "use strict"; - Rs6.exports = (e3) => { - if (Object.prototype.toString.call(e3) !== "[object Object]") - return false; - let r3 = Object.getPrototypeOf(e3); - return r3 === null || r3 === Object.prototype; - }; - }); - Us5 = C3((nE, Ms6) => { - "use strict"; - var im = [].slice; - Ms6.exports = um; - function um(e3, r3) { - var n; - return t12; - function t12() { - var u = im.call(arguments, 0), o2 = e3.length > u.length, s3; - o2 && u.push(a); - try { - s3 = e3.apply(null, u); - } catch (l) { - if (o2 && n) - throw l; - return a(l); - } - o2 || (s3 && typeof s3.then == "function" ? s3.then(i, a) : s3 instanceof Error ? a(s3) : i(s3)); - } - function a() { - n || (n = true, r3.apply(null, arguments)); - } - function i(u) { - a(null, u); - } - } - }); - Gs5 = C3((iE, $s6) => { - "use strict"; - var Vs5 = Us5(); - $s6.exports = js7; - js7.wrap = Vs5; - var Ys5 = [].slice; - function js7() { - var e3 = [], r3 = {}; - return r3.run = n, r3.use = t12, r3; - function n() { - var a = -1, i = Ys5.call(arguments, 0, -1), u = arguments[arguments.length - 1]; - if (typeof u != "function") - throw new Error("Expected function as last argument, not " + u); - o2.apply(null, [null].concat(i)); - function o2(s3) { - var l = e3[++a], c3 = Ys5.call(arguments, 0), f3 = c3.slice(1), D6 = i.length, h4 = -1; - if (s3) { - u(s3); - return; - } - for (; ++h4 < D6; ) - (f3[h4] === null || f3[h4] === void 0) && (f3[h4] = i[h4]); - i = f3, l ? Vs5(l, o2).apply(null, i) : u.apply(null, [null].concat(i)); - } - } - function t12(a) { - if (typeof a != "function") - throw new Error("Expected `fn` to be a function, not " + a); - return e3.push(a), r3; - } - } - }); - Js5 = C3((uE, Ks5) => { - "use strict"; - var Ge9 = {}.hasOwnProperty; - Ks5.exports = am; - function am(e3) { - return !e3 || typeof e3 != "object" ? "" : Ge9.call(e3, "position") || Ge9.call(e3, "type") ? Hs5(e3.position) : Ge9.call(e3, "start") || Ge9.call(e3, "end") ? Hs5(e3) : Ge9.call(e3, "line") || Ge9.call(e3, "column") ? vn5(e3) : ""; - } - function vn5(e3) { - return (!e3 || typeof e3 != "object") && (e3 = {}), Ws6(e3.line) + ":" + Ws6(e3.column); - } - function Hs5(e3) { - return (!e3 || typeof e3 != "object") && (e3 = {}), vn5(e3.start) + "-" + vn5(e3.end); - } - function Ws6(e3) { - return e3 && typeof e3 == "number" ? e3 : 1; - } - }); - Zs4 = C3((aE, Qs6) => { - "use strict"; - var om = Js5(); - Qs6.exports = Fn6; - function Xs6() { - } - Xs6.prototype = Error.prototype; - Fn6.prototype = new Xs6(); - var ke9 = Fn6.prototype; - ke9.file = ""; - ke9.name = ""; - ke9.reason = ""; - ke9.message = ""; - ke9.stack = ""; - ke9.fatal = null; - ke9.column = null; - ke9.line = null; - function Fn6(e3, r3, n) { - var t12, a, i; - typeof r3 == "string" && (n = r3, r3 = null), t12 = sm(n), a = om(r3) || "1:1", i = { start: { line: null, column: null }, end: { line: null, column: null } }, r3 && r3.position && (r3 = r3.position), r3 && (r3.start ? (i = r3, r3 = r3.start) : i.start = r3), e3.stack && (this.stack = e3.stack, e3 = e3.message), this.message = e3, this.name = a, this.reason = e3, this.line = r3 ? r3.line : null, this.column = r3 ? r3.column : null, this.location = i, this.source = t12[0], this.ruleId = t12[1]; - } - function sm(e3) { - var r3 = [null, null], n; - return typeof e3 == "string" && (n = e3.indexOf(":"), n === -1 ? r3[1] = e3 : (r3[0] = e3.slice(0, n), r3[1] = e3.slice(n + 1))), r3; - } - }); - ec3 = C3((He9) => { - "use strict"; - He9.basename = cm; - He9.dirname = lm; - He9.extname = fm; - He9.join = Dm2; - He9.sep = "/"; - function cm(e3, r3) { - var n = 0, t12 = -1, a, i, u, o2; - if (r3 !== void 0 && typeof r3 != "string") - throw new TypeError('"ext" argument must be a string'); - if (Er6(e3), a = e3.length, r3 === void 0 || !r3.length || r3.length > e3.length) { - for (; a--; ) - if (e3.charCodeAt(a) === 47) { - if (u) { - n = a + 1; - break; - } - } else - t12 < 0 && (u = true, t12 = a + 1); - return t12 < 0 ? "" : e3.slice(n, t12); - } - if (r3 === e3) - return ""; - for (i = -1, o2 = r3.length - 1; a--; ) - if (e3.charCodeAt(a) === 47) { - if (u) { - n = a + 1; - break; - } - } else - i < 0 && (u = true, i = a + 1), o2 > -1 && (e3.charCodeAt(a) === r3.charCodeAt(o2--) ? o2 < 0 && (t12 = a) : (o2 = -1, t12 = i)); - return n === t12 ? t12 = i : t12 < 0 && (t12 = e3.length), e3.slice(n, t12); - } - function lm(e3) { - var r3, n, t12; - if (Er6(e3), !e3.length) - return "."; - for (r3 = -1, t12 = e3.length; --t12; ) - if (e3.charCodeAt(t12) === 47) { - if (n) { - r3 = t12; - break; - } - } else - n || (n = true); - return r3 < 0 ? e3.charCodeAt(0) === 47 ? "/" : "." : r3 === 1 && e3.charCodeAt(0) === 47 ? "//" : e3.slice(0, r3); - } - function fm(e3) { - var r3 = -1, n = 0, t12 = -1, a = 0, i, u, o2; - for (Er6(e3), o2 = e3.length; o2--; ) { - if (u = e3.charCodeAt(o2), u === 47) { - if (i) { - n = o2 + 1; - break; - } - continue; - } - t12 < 0 && (i = true, t12 = o2 + 1), u === 46 ? r3 < 0 ? r3 = o2 : a !== 1 && (a = 1) : r3 > -1 && (a = -1); - } - return r3 < 0 || t12 < 0 || a === 0 || a === 1 && r3 === t12 - 1 && r3 === n + 1 ? "" : e3.slice(r3, t12); - } - function Dm2() { - for (var e3 = -1, r3; ++e3 < arguments.length; ) - Er6(arguments[e3]), arguments[e3] && (r3 = r3 === void 0 ? arguments[e3] : r3 + "/" + arguments[e3]); - return r3 === void 0 ? "." : pm(r3); - } - function pm(e3) { - var r3, n; - return Er6(e3), r3 = e3.charCodeAt(0) === 47, n = dm(e3, !r3), !n.length && !r3 && (n = "."), n.length && e3.charCodeAt(e3.length - 1) === 47 && (n += "/"), r3 ? "/" + n : n; - } - function dm(e3, r3) { - for (var n = "", t12 = 0, a = -1, i = 0, u = -1, o2, s3; ++u <= e3.length; ) { - if (u < e3.length) - o2 = e3.charCodeAt(u); - else { - if (o2 === 47) - break; - o2 = 47; - } - if (o2 === 47) { - if (!(a === u - 1 || i === 1)) - if (a !== u - 1 && i === 2) { - if (n.length < 2 || t12 !== 2 || n.charCodeAt(n.length - 1) !== 46 || n.charCodeAt(n.length - 2) !== 46) { - if (n.length > 2) { - if (s3 = n.lastIndexOf("/"), s3 !== n.length - 1) { - s3 < 0 ? (n = "", t12 = 0) : (n = n.slice(0, s3), t12 = n.length - 1 - n.lastIndexOf("/")), a = u, i = 0; - continue; - } - } else if (n.length) { - n = "", t12 = 0, a = u, i = 0; - continue; - } - } - r3 && (n = n.length ? n + "/.." : "..", t12 = 2); - } else - n.length ? n += "/" + e3.slice(a + 1, u) : n = e3.slice(a + 1, u), t12 = u - a - 1; - a = u, i = 0; - } else - o2 === 46 && i > -1 ? i++ : i = -1; - } - return n; - } - function Er6(e3) { - if (typeof e3 != "string") - throw new TypeError("Path must be a string. Received " + JSON.stringify(e3)); - } - }); - tc2 = C3((rc3) => { - "use strict"; - rc3.cwd = hm; - function hm() { - return "/"; - } - }); - uc2 = C3((cE, ic3) => { - "use strict"; - var ie6 = ec3(), mm = tc2(), gm = gn5(); - ic3.exports = he9; - var vm = {}.hasOwnProperty, En6 = ["history", "path", "basename", "stem", "extname", "dirname"]; - he9.prototype.toString = qm2; - Object.defineProperty(he9.prototype, "path", { get: Fm2, set: Em }); - Object.defineProperty(he9.prototype, "dirname", { get: Cm, set: bm }); - Object.defineProperty(he9.prototype, "basename", { get: xm2, set: ym }); - Object.defineProperty(he9.prototype, "extname", { get: km, set: wm }); - Object.defineProperty(he9.prototype, "stem", { get: Am, set: Bm3 }); - function he9(e3) { - var r3, n; - if (!e3) - e3 = {}; - else if (typeof e3 == "string" || gm(e3)) - e3 = { contents: e3 }; - else if ("message" in e3 && "messages" in e3) - return e3; - if (!(this instanceof he9)) - return new he9(e3); - for (this.data = {}, this.messages = [], this.history = [], this.cwd = mm.cwd(), n = -1; ++n < En6.length; ) - r3 = En6[n], vm.call(e3, r3) && (this[r3] = e3[r3]); - for (r3 in e3) - En6.indexOf(r3) < 0 && (this[r3] = e3[r3]); - } - function Fm2() { - return this.history[this.history.length - 1]; - } - function Em(e3) { - bn5(e3, "path"), this.path !== e3 && this.history.push(e3); - } - function Cm() { - return typeof this.path == "string" ? ie6.dirname(this.path) : void 0; - } - function bm(e3) { - nc3(this.path, "dirname"), this.path = ie6.join(e3 || "", this.basename); - } - function xm2() { - return typeof this.path == "string" ? ie6.basename(this.path) : void 0; - } - function ym(e3) { - bn5(e3, "basename"), Cn4(e3, "basename"), this.path = ie6.join(this.dirname || "", e3); - } - function km() { - return typeof this.path == "string" ? ie6.extname(this.path) : void 0; - } - function wm(e3) { - if (Cn4(e3, "extname"), nc3(this.path, "extname"), e3) { - if (e3.charCodeAt(0) !== 46) - throw new Error("`extname` must start with `.`"); - if (e3.indexOf(".", 1) > -1) - throw new Error("`extname` cannot contain multiple dots"); - } - this.path = ie6.join(this.dirname, this.stem + (e3 || "")); - } - function Am() { - return typeof this.path == "string" ? ie6.basename(this.path, this.extname) : void 0; - } - function Bm3(e3) { - bn5(e3, "stem"), Cn4(e3, "stem"), this.path = ie6.join(this.dirname || "", e3 + (this.extname || "")); - } - function qm2(e3) { - return (this.contents || "").toString(e3); - } - function Cn4(e3, r3) { - if (e3 && e3.indexOf(ie6.sep) > -1) - throw new Error("`" + r3 + "` cannot be a path: did not expect `" + ie6.sep + "`"); - } - function bn5(e3, r3) { - if (!e3) - throw new Error("`" + r3 + "` cannot be empty"); - } - function nc3(e3, r3) { - if (!e3) - throw new Error("Setting `" + r3 + "` requires `path` to be set too"); - } - }); - oc2 = C3((lE, ac3) => { - "use strict"; - var Tm = Zs4(), nt7 = uc2(); - ac3.exports = nt7; - nt7.prototype.message = Sm; - nt7.prototype.info = _m2; - nt7.prototype.fail = Pm; - function Sm(e3, r3, n) { - var t12 = new Tm(e3, r3, n); - return this.path && (t12.name = this.path + ":" + t12.name, t12.file = this.path), t12.fatal = false, this.messages.push(t12), t12; - } - function Pm() { - var e3 = this.message.apply(this, arguments); - throw e3.fatal = true, e3; - } - function _m2() { - var e3 = this.message.apply(this, arguments); - return e3.fatal = null, e3; - } - }); - cc2 = C3((fE, sc3) => { - "use strict"; - sc3.exports = oc2(); - }); - vc2 = C3((DE, gc2) => { - "use strict"; - var lc3 = As5(), Lm = gn5(), it6 = Ns5(), fc3 = zs5(), hc2 = Gs5(), Cr6 = cc2(); - gc2.exports = mc2().freeze(); - var Om = [].slice, Im = {}.hasOwnProperty, Nm = hc2().use(Rm2).use(zm2).use(Mm); - function Rm2(e3, r3) { - r3.tree = e3.parse(r3.file); - } - function zm2(e3, r3, n) { - e3.run(r3.tree, r3.file, t12); - function t12(a, i, u) { - a ? n(a) : (r3.tree = i, r3.file = u, n()); - } - } - function Mm(e3, r3) { - var n = e3.stringify(r3.tree, r3.file); - n == null || (typeof n == "string" || Lm(n) ? ("value" in r3.file && (r3.file.value = n), r3.file.contents = n) : r3.file.result = n); - } - function mc2() { - var e3 = [], r3 = hc2(), n = {}, t12 = -1, a; - return i.data = o2, i.freeze = u, i.attachers = e3, i.use = s3, i.parse = c3, i.stringify = h4, i.run = f3, i.runSync = D6, i.process = p4, i.processSync = d5, i; - function i() { - for (var m3 = mc2(), g3 = -1; ++g3 < e3.length; ) - m3.use.apply(null, e3[g3]); - return m3.data(it6(true, {}, n)), m3; - } - function u() { - var m3, g3; - if (a) - return i; - for (; ++t12 < e3.length; ) - m3 = e3[t12], m3[1] !== false && (m3[1] === true && (m3[1] = void 0), g3 = m3[0].apply(i, m3.slice(1)), typeof g3 == "function" && r3.use(g3)); - return a = true, t12 = 1 / 0, i; - } - function o2(m3, g3) { - return typeof m3 == "string" ? arguments.length === 2 ? (kn4("data", a), n[m3] = g3, i) : Im.call(n, m3) && n[m3] || null : m3 ? (kn4("data", a), n = m3, i) : n; - } - function s3(m3) { - var g3; - if (kn4("use", a), m3 != null) - if (typeof m3 == "function") - b5.apply(null, arguments); - else if (typeof m3 == "object") - "length" in m3 ? B8(m3) : x7(m3); - else - throw new Error("Expected usable value, not `" + m3 + "`"); - return g3 && (n.settings = it6(n.settings || {}, g3)), i; - function x7(v7) { - B8(v7.plugins), v7.settings && (g3 = it6(g3 || {}, v7.settings)); - } - function F5(v7) { - if (typeof v7 == "function") - b5(v7); - else if (typeof v7 == "object") - "length" in v7 ? b5.apply(null, v7) : x7(v7); - else - throw new Error("Expected usable value, not `" + v7 + "`"); - } - function B8(v7) { - var y5 = -1; - if (v7 != null) - if (typeof v7 == "object" && "length" in v7) - for (; ++y5 < v7.length; ) - F5(v7[y5]); - else - throw new Error("Expected a list of plugins, not `" + v7 + "`"); - } - function b5(v7, y5) { - var k4 = l(v7); - k4 ? (fc3(k4[1]) && fc3(y5) && (y5 = it6(true, k4[1], y5)), k4[1] = y5) : e3.push(Om.call(arguments)); - } - } - function l(m3) { - for (var g3 = -1; ++g3 < e3.length; ) - if (e3[g3][0] === m3) - return e3[g3]; - } - function c3(m3) { - var g3 = Cr6(m3), x7; - return u(), x7 = i.Parser, xn4("parse", x7), Dc3(x7, "parse") ? new x7(String(g3), g3).parse() : x7(String(g3), g3); - } - function f3(m3, g3, x7) { - if (pc2(m3), u(), !x7 && typeof g3 == "function" && (x7 = g3, g3 = null), !x7) - return new Promise(F5); - F5(null, x7); - function F5(B8, b5) { - r3.run(m3, Cr6(g3), v7); - function v7(y5, k4, E6) { - k4 = k4 || m3, y5 ? b5(y5) : B8 ? B8(k4) : x7(null, k4, E6); - } - } - } - function D6(m3, g3) { - var x7, F5; - return f3(m3, g3, B8), dc2("runSync", "run", F5), x7; - function B8(b5, v7) { - F5 = true, x7 = v7, lc3(b5); - } - } - function h4(m3, g3) { - var x7 = Cr6(g3), F5; - return u(), F5 = i.Compiler, yn6("stringify", F5), pc2(m3), Dc3(F5, "compile") ? new F5(m3, x7).compile() : F5(m3, x7); - } - function p4(m3, g3) { - if (u(), xn4("process", i.Parser), yn6("process", i.Compiler), !g3) - return new Promise(x7); - x7(null, g3); - function x7(F5, B8) { - var b5 = Cr6(m3); - Nm.run(i, { file: b5 }, v7); - function v7(y5) { - y5 ? B8(y5) : F5 ? F5(b5) : g3(null, b5); - } - } - } - function d5(m3) { - var g3, x7; - return u(), xn4("processSync", i.Parser), yn6("processSync", i.Compiler), g3 = Cr6(m3), p4(g3, F5), dc2("processSync", "process", x7), g3; - function F5(B8) { - x7 = true, lc3(B8); - } - } - } - function Dc3(e3, r3) { - return typeof e3 == "function" && e3.prototype && (Um(e3.prototype) || r3 in e3.prototype); - } - function Um(e3) { - var r3; - for (r3 in e3) - return true; - return false; - } - function xn4(e3, r3) { - if (typeof r3 != "function") - throw new Error("Cannot `" + e3 + "` without `Parser`"); - } - function yn6(e3, r3) { - if (typeof r3 != "function") - throw new Error("Cannot `" + e3 + "` without `Compiler`"); - } - function kn4(e3, r3) { - if (r3) - throw new Error("Cannot invoke `" + e3 + "` on a frozen processor.\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`."); - } - function pc2(e3) { - if (!e3 || typeof e3.type != "string") - throw new Error("Expected node, got `" + e3 + "`"); - } - function dc2(e3, r3, n) { - if (!n) - throw new Error("`" + e3 + "` finished async. Use `" + r3 + "` instead"); - } - }); - An3 = C3((wn5) => { - wn5.isRemarkParser = Ym2; - wn5.isRemarkCompiler = Vm; - function Ym2(e3) { - return !!(e3 && e3.prototype && e3.prototype.blockTokenizers); - } - function Vm(e3) { - return !!(e3 && e3.prototype && e3.prototype.visitors); - } - }); - kc2 = C3((dE, yc2) => { - var Fc3 = An3(); - yc2.exports = Hm; - var Ec3 = 9, Cc3 = 32, ut5 = 36, jm = 48, $m2 = 57, bc3 = 92, Gm = ["math", "math-inline"], xc2 = "math-display"; - function Hm(e3) { - let r3 = this.Parser, n = this.Compiler; - Fc3.isRemarkParser(r3) && Wm(r3, e3), Fc3.isRemarkCompiler(n) && Km2(n, e3); - } - function Wm(e3, r3) { - let n = e3.prototype, t12 = n.inlineMethods; - i.locator = a, n.inlineTokenizers.math = i, t12.splice(t12.indexOf("text"), 0, "math"); - function a(u, o2) { - return u.indexOf("$", o2); - } - function i(u, o2, s3) { - let l = o2.length, c3 = false, f3 = false, D6 = 0, h4, p4, d5, m3, g3, x7, F5; - if (o2.charCodeAt(D6) === bc3 && (f3 = true, D6++), o2.charCodeAt(D6) === ut5) { - if (D6++, f3) - return s3 ? true : u(o2.slice(0, D6))({ type: "text", value: "$" }); - if (o2.charCodeAt(D6) === ut5 && (c3 = true, D6++), d5 = o2.charCodeAt(D6), !(d5 === Cc3 || d5 === Ec3)) { - for (m3 = D6; D6 < l; ) { - if (p4 = d5, d5 = o2.charCodeAt(D6 + 1), p4 === ut5) { - if (h4 = o2.charCodeAt(D6 - 1), h4 !== Cc3 && h4 !== Ec3 && (d5 !== d5 || d5 < jm || d5 > $m2) && (!c3 || d5 === ut5)) { - g3 = D6 - 1, D6++, c3 && D6++, x7 = D6; - break; - } - } else - p4 === bc3 && (D6++, d5 = o2.charCodeAt(D6 + 1)); - D6++; - } - if (x7 !== void 0) - return s3 ? true : (F5 = o2.slice(m3, g3 + 1), u(o2.slice(0, x7))({ type: "inlineMath", value: F5, data: { hName: "span", hProperties: { className: Gm.concat(c3 && r3.inlineMathDouble ? [xc2] : []) }, hChildren: [{ type: "text", value: F5 }] } })); - } - } - } - } - function Km2(e3) { - let r3 = e3.prototype; - r3.visitors.inlineMath = n; - function n(t12) { - let a = "$"; - return (t12.data && t12.data.hProperties && t12.data.hProperties.className || []).includes(xc2) && (a = "$$"), a + t12.value + a; - } - } - }); - Tc2 = C3((hE, qc3) => { - var wc2 = An3(); - qc3.exports = Zm2; - var Ac4 = 10, br5 = 32, Bn4 = 36, Bc3 = ` -`, Jm = "$", Xm = 2, Qm = ["math", "math-display"]; - function Zm2() { - let e3 = this.Parser, r3 = this.Compiler; - wc2.isRemarkParser(e3) && eg(e3), wc2.isRemarkCompiler(r3) && rg(r3); - } - function eg(e3) { - let r3 = e3.prototype, n = r3.blockMethods, t12 = r3.interruptParagraph, a = r3.interruptList, i = r3.interruptBlockquote; - r3.blockTokenizers.math = u, n.splice(n.indexOf("fencedCode") + 1, 0, "math"), t12.splice(t12.indexOf("fencedCode") + 1, 0, ["math"]), a.splice(a.indexOf("fencedCode") + 1, 0, ["math"]), i.splice(i.indexOf("fencedCode") + 1, 0, ["math"]); - function u(o2, s3, l) { - var c3 = s3.length, f3 = 0; - let D6, h4, p4, d5, m3, g3, x7, F5, B8, b5, v7; - for (; f3 < c3 && s3.charCodeAt(f3) === br5; ) - f3++; - for (m3 = f3; f3 < c3 && s3.charCodeAt(f3) === Bn4; ) - f3++; - if (g3 = f3 - m3, !(g3 < Xm)) { - for (; f3 < c3 && s3.charCodeAt(f3) === br5; ) - f3++; - for (x7 = f3; f3 < c3; ) { - if (D6 = s3.charCodeAt(f3), D6 === Bn4) - return; - if (D6 === Ac4) - break; - f3++; - } - if (s3.charCodeAt(f3) === Ac4) { - if (l) - return true; - for (h4 = [], x7 !== f3 && h4.push(s3.slice(x7, f3)), f3++, p4 = s3.indexOf(Bc3, f3 + 1), p4 = p4 === -1 ? c3 : p4; f3 < c3; ) { - for (F5 = false, b5 = f3, v7 = p4, d5 = p4, B8 = 0; d5 > b5 && s3.charCodeAt(d5 - 1) === br5; ) - d5--; - for (; d5 > b5 && s3.charCodeAt(d5 - 1) === Bn4; ) - B8++, d5--; - for (g3 <= B8 && s3.indexOf(Jm, b5) === d5 && (F5 = true, v7 = d5); b5 <= v7 && b5 - f3 < m3 && s3.charCodeAt(b5) === br5; ) - b5++; - if (F5) - for (; v7 > b5 && s3.charCodeAt(v7 - 1) === br5; ) - v7--; - if ((!F5 || b5 !== v7) && h4.push(s3.slice(b5, v7)), F5) - break; - f3 = p4 + 1, p4 = s3.indexOf(Bc3, f3 + 1), p4 = p4 === -1 ? c3 : p4; - } - return h4 = h4.join(` -`), o2(s3.slice(0, p4))({ type: "math", value: h4, data: { hName: "div", hProperties: { className: Qm.concat() }, hChildren: [{ type: "text", value: h4 }] } }); - } - } - } - } - function rg(e3) { - let r3 = e3.prototype; - r3.visitors.math = n; - function n(t12) { - return `$$ -` + t12.value + ` -$$`; - } - } - }); - Pc2 = C3((mE, Sc3) => { - var tg = kc2(), ng = Tc2(); - Sc3.exports = ig; - function ig(e3) { - var r3 = e3 || {}; - ng.call(this, r3), tg.call(this, r3); - } - }); - Lc2 = C3((gE, _c4) => { - "use strict"; - _c4.exports = cg; - var xr5 = 9, at7 = 10, We8 = 32, ug = 33, ag = 58, Ke8 = 91, og = 92, qn5 = 93, yr5 = 94, ot8 = 96, st5 = 4, sg = 1024; - function cg(e3) { - var r3 = this.Parser, n = this.Compiler; - lg(r3) && Dg2(r3, e3), fg(n) && pg(n); - } - function lg(e3) { - return !!(e3 && e3.prototype && e3.prototype.blockTokenizers); - } - function fg(e3) { - return !!(e3 && e3.prototype && e3.prototype.visitors); - } - function Dg2(e3, r3) { - for (var n = r3 || {}, t12 = e3.prototype, a = t12.blockTokenizers, i = t12.inlineTokenizers, u = t12.blockMethods, o2 = t12.inlineMethods, s3 = a.definition, l = i.reference, c3 = [], f3 = -1, D6 = u.length, h4; ++f3 < D6; ) - h4 = u[f3], !(h4 === "newline" || h4 === "indentedCode" || h4 === "paragraph" || h4 === "footnoteDefinition") && c3.push([h4]); - c3.push(["footnoteDefinition"]), n.inlineNotes && (Tn3(o2, "reference", "inlineNote"), i.inlineNote = m3), Tn3(u, "definition", "footnoteDefinition"), Tn3(o2, "reference", "footnoteCall"), a.definition = x7, a.footnoteDefinition = p4, i.footnoteCall = d5, i.reference = g3, t12.interruptFootnoteDefinition = c3, g3.locator = l.locator, d5.locator = F5, m3.locator = B8; - function p4(b5, v7, y5) { - for (var k4 = this, E6 = k4.interruptFootnoteDefinition, w4 = k4.offset, A6 = v7.length + 1, q8 = 0, T4 = [], N6, _6, P10, S6, L7, we9, j8, I5, J8, K7, me8, ge6, M8; q8 < A6 && (S6 = v7.charCodeAt(q8), !(S6 !== xr5 && S6 !== We8)); ) - q8++; - if (v7.charCodeAt(q8++) === Ke8 && v7.charCodeAt(q8++) === yr5) { - for (_6 = q8; q8 < A6; ) { - if (S6 = v7.charCodeAt(q8), S6 !== S6 || S6 === at7 || S6 === xr5 || S6 === We8) - return; - if (S6 === qn5) { - P10 = q8, q8++; - break; - } - q8++; - } - if (!(P10 === void 0 || _6 === P10 || v7.charCodeAt(q8++) !== ag)) { - if (y5) - return true; - for (N6 = v7.slice(_6, P10), L7 = b5.now(), J8 = 0, K7 = 0, me8 = q8, ge6 = []; q8 < A6; ) { - if (S6 = v7.charCodeAt(q8), S6 !== S6 || S6 === at7) - M8 = { start: J8, contentStart: me8 || q8, contentEnd: q8, end: q8 }, ge6.push(M8), S6 === at7 && (J8 = q8 + 1, K7 = 0, me8 = void 0, M8.end = J8); - else if (K7 !== void 0) - if (S6 === We8 || S6 === xr5) - K7 += S6 === We8 ? 1 : st5 - K7 % st5, K7 > st5 && (K7 = void 0, me8 = q8); - else { - if (K7 < st5 && M8 && (M8.contentStart === M8.contentEnd || dg(E6, a, k4, [b5, v7.slice(q8, sg), true]))) - break; - K7 = void 0, me8 = q8; - } - q8++; - } - for (q8 = -1, A6 = ge6.length; A6 > 0 && (M8 = ge6[A6 - 1], M8.contentStart === M8.contentEnd); ) - A6--; - for (we9 = b5(v7.slice(0, M8.contentEnd)); ++q8 < A6; ) - M8 = ge6[q8], w4[L7.line + q8] = (w4[L7.line + q8] || 0) + (M8.contentStart - M8.start), T4.push(v7.slice(M8.contentStart, M8.end)); - return j8 = k4.enterBlock(), I5 = k4.tokenizeBlock(T4.join(""), L7), j8(), we9({ type: "footnoteDefinition", identifier: N6.toLowerCase(), label: N6, children: I5 }); - } - } - } - function d5(b5, v7, y5) { - var k4 = v7.length + 1, E6 = 0, w4, A6, q8, T4; - if (v7.charCodeAt(E6++) === Ke8 && v7.charCodeAt(E6++) === yr5) { - for (A6 = E6; E6 < k4; ) { - if (T4 = v7.charCodeAt(E6), T4 !== T4 || T4 === at7 || T4 === xr5 || T4 === We8) - return; - if (T4 === qn5) { - q8 = E6, E6++; - break; - } - E6++; - } - if (!(q8 === void 0 || A6 === q8)) - return y5 ? true : (w4 = v7.slice(A6, q8), b5(v7.slice(0, E6))({ type: "footnoteReference", identifier: w4.toLowerCase(), label: w4 })); - } - } - function m3(b5, v7, y5) { - var k4 = this, E6 = v7.length + 1, w4 = 0, A6 = 0, q8, T4, N6, _6, P10, S6, L7; - if (v7.charCodeAt(w4++) === yr5 && v7.charCodeAt(w4++) === Ke8) { - for (N6 = w4; w4 < E6; ) { - if (T4 = v7.charCodeAt(w4), T4 !== T4) - return; - if (S6 === void 0) - if (T4 === og) - w4 += 2; - else if (T4 === Ke8) - A6++, w4++; - else if (T4 === qn5) - if (A6 === 0) { - _6 = w4, w4++; - break; - } else - A6--, w4++; - else if (T4 === ot8) { - for (P10 = w4, S6 = 1; v7.charCodeAt(P10 + S6) === ot8; ) - S6++; - w4 += S6; - } else - w4++; - else if (T4 === ot8) { - for (P10 = w4, L7 = 1; v7.charCodeAt(P10 + L7) === ot8; ) - L7++; - w4 += L7, S6 === L7 && (S6 = void 0), L7 = void 0; - } else - w4++; - } - if (_6 !== void 0) - return y5 ? true : (q8 = b5.now(), q8.column += 2, q8.offset += 2, b5(v7.slice(0, w4))({ type: "footnote", children: k4.tokenizeInline(v7.slice(N6, _6), q8) })); - } - } - function g3(b5, v7, y5) { - var k4 = 0; - if (v7.charCodeAt(k4) === ug && k4++, v7.charCodeAt(k4) === Ke8 && v7.charCodeAt(k4 + 1) !== yr5) - return l.call(this, b5, v7, y5); - } - function x7(b5, v7, y5) { - for (var k4 = 0, E6 = v7.charCodeAt(k4); E6 === We8 || E6 === xr5; ) - E6 = v7.charCodeAt(++k4); - if (E6 === Ke8 && v7.charCodeAt(k4 + 1) !== yr5) - return s3.call(this, b5, v7, y5); - } - function F5(b5, v7) { - return b5.indexOf("[", v7); - } - function B8(b5, v7) { - return b5.indexOf("^[", v7); - } - } - function pg(e3) { - var r3 = e3.prototype.visitors, n = " "; - r3.footnote = t12, r3.footnoteReference = a, r3.footnoteDefinition = i; - function t12(u) { - return "^[" + this.all(u).join("") + "]"; - } - function a(u) { - return "[^" + (u.label || u.identifier) + "]"; - } - function i(u) { - for (var o2 = this.all(u).join(` - -`).split(` -`), s3 = 0, l = o2.length, c3; ++s3 < l; ) - c3 = o2[s3], c3 !== "" && (o2[s3] = n + c3); - return "[^" + (u.label || u.identifier) + "]: " + o2.join(` -`); - } - } - function Tn3(e3, r3, n) { - e3.splice(e3.indexOf(r3), 0, n); - } - function dg(e3, r3, n, t12) { - for (var a = e3.length, i = -1; ++i < a; ) - if (r3[e3[i][0]].apply(n, t12)) - return true; - return false; - } - }); - Ln4 = {}; - On4(Ln4, { languages: () => Qc, options: () => Zc, parsers: () => Pn4, printers: () => wg }); - al2 = (e3, r3, n, t12) => { - if (!(e3 && r3 == null)) - return r3.replaceAll ? r3.replaceAll(n, t12) : n.global ? r3.replace(n, t12) : r3.split(n).join(t12); - }; - R5 = al2; - ol2 = (e3, r3, n) => { - if (!(e3 && r3 == null)) - return Array.isArray(r3) || typeof r3 == "string" ? r3[n < 0 ? r3.length + n : n] : r3.at(n); - }; - U6 = ol2; - qi3 = Ie5(kr5(), 1); - Nn4 = cl2; - wr5 = ll2; - Rn4 = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; - zn3 = { eastAsianWidth(e3) { - var r3 = e3.charCodeAt(0), n = e3.length == 2 ? e3.charCodeAt(1) : 0, t12 = r3; - return 55296 <= r3 && r3 <= 56319 && 56320 <= n && n <= 57343 && (r3 &= 1023, n &= 1023, t12 = r3 << 10 | n, t12 += 65536), t12 == 12288 || 65281 <= t12 && t12 <= 65376 || 65504 <= t12 && t12 <= 65510 ? "F" : 4352 <= t12 && t12 <= 4447 || 4515 <= t12 && t12 <= 4519 || 4602 <= t12 && t12 <= 4607 || 9001 <= t12 && t12 <= 9002 || 11904 <= t12 && t12 <= 11929 || 11931 <= t12 && t12 <= 12019 || 12032 <= t12 && t12 <= 12245 || 12272 <= t12 && t12 <= 12283 || 12289 <= t12 && t12 <= 12350 || 12353 <= t12 && t12 <= 12438 || 12441 <= t12 && t12 <= 12543 || 12549 <= t12 && t12 <= 12589 || 12593 <= t12 && t12 <= 12686 || 12688 <= t12 && t12 <= 12730 || 12736 <= t12 && t12 <= 12771 || 12784 <= t12 && t12 <= 12830 || 12832 <= t12 && t12 <= 12871 || 12880 <= t12 && t12 <= 13054 || 13056 <= t12 && t12 <= 19903 || 19968 <= t12 && t12 <= 42124 || 42128 <= t12 && t12 <= 42182 || 43360 <= t12 && t12 <= 43388 || 44032 <= t12 && t12 <= 55203 || 55216 <= t12 && t12 <= 55238 || 55243 <= t12 && t12 <= 55291 || 63744 <= t12 && t12 <= 64255 || 65040 <= t12 && t12 <= 65049 || 65072 <= t12 && t12 <= 65106 || 65108 <= t12 && t12 <= 65126 || 65128 <= t12 && t12 <= 65131 || 110592 <= t12 && t12 <= 110593 || 127488 <= t12 && t12 <= 127490 || 127504 <= t12 && t12 <= 127546 || 127552 <= t12 && t12 <= 127560 || 127568 <= t12 && t12 <= 127569 || 131072 <= t12 && t12 <= 194367 || 177984 <= t12 && t12 <= 196605 || 196608 <= t12 && t12 <= 262141 ? "W" : "N"; - } }; - fl = /[^\x20-\x7F]/; - Xe5 = Dl; - Ar5 = "'"; - Mn4 = '"'; - Un4 = pl2; - ue4 = "string"; - X5 = "array"; - ve6 = "cursor"; - Q5 = "indent"; - Z6 = "align"; - ae4 = "trim"; - G5 = "group"; - H6 = "fill"; - W4 = "if-break"; - oe5 = "indent-if-break"; - se4 = "line-suffix"; - ce5 = "line-suffix-boundary"; - $5 = "line"; - le6 = "label"; - ee6 = "break-parent"; - Br4 = /* @__PURE__ */ new Set([ve6, Q5, Z6, ae4, G5, H6, W4, oe5, se4, ce5, $5, le6, ee6]); - fe5 = dl; - hl = (e3) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e3); - ft5 = class extends Error { - name = "InvalidDocError"; - constructor(r3) { - super(ml2(r3)), this.doc = r3; - } - }; - Ae4 = ft5; - Yn4 = {}; - Vn4 = gl; - jn3 = () => { - }; - Be6 = jn3; - qr5 = jn3; - er5 = { type: ee6 }; - Ne5 = { type: $5, hard: true }; - vl = { type: $5, hard: true, literal: true }; - Sr5 = { type: $5 }; - rr4 = { type: $5, soft: true }; - O5 = [Ne5, er5]; - tr5 = [vl, er5]; - Wn3 = (e3) => { - if (Array.isArray(e3)) - return e3; - if (e3.type !== H6) - throw new Error(`Expect doc to be 'array' or '${H6}'.`); - return e3.parts; - }; - V4 = Symbol("MODE_BREAK"); - re6 = Symbol("MODE_FLAT"); - ir5 = Symbol("cursor"); - dt5 = class extends Error { - name = "UnexpectedNodeError"; - constructor(r3, n, t12 = "type") { - super(`Unexpected ${n} node ${t12}: ${JSON.stringify(r3[t12])}.`), this.node = r3; - } - }; - ri5 = dt5; - ti5 = Cl; - bl = (e3) => e3.split(/[/\\]/).pop(); - ii6 = yl2; - kl = new Proxy(() => { - }, { get: () => kl }); - ui5 = "(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4dbf\\u4e00-\\u9fff\\ua700-\\ua707\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879\\ud880-\\ud883\\ud885-\\ud887][\\udc00-\\udfff]|\\ud81b[\\udfe3]|\\ud82b[\\udff0-\\udff3\\udff5-\\udffb\\udffd-\\udffe]|\\ud82c[\\udc00-\\udd22\\udd32\\udd50-\\udd52\\udd55\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\udedf\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf39\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\ud884[\\udc00-\\udf4a\\udf50-\\udfff]|\\ud888[\\udc00-\\udfaf])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?"; - ai5 = new RegExp("[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]", ""); - ur5 = "[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061d-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1b7d-\\u1b7e\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u2e52-\\u2e5d\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udead\\udf55-\\udf59\\udf86-\\udf89]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5a-\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udeb9\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udd44-\\udd46\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2\\udf00-\\udf09]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udf43-\\udf4f\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud80b[\\udff1-\\udff2]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"; - mt6 = /* @__PURE__ */ new Set(["liquidNode", "inlineCode", "emphasis", "esComment", "strong", "delete", "wikiLink", "link", "linkReference", "image", "imageReference", "footnote", "footnoteReference", "sentence", "whitespace", "word", "break", "inlineMath"]); - _r4 = /* @__PURE__ */ new Set([...mt6, "tableCell", "paragraph", "heading"]); - ht3 = new RegExp(ur5); - Pe6 = "non-cjk"; - De7 = "cj-letter"; - Ce6 = "k-letter"; - ar3 = "cjk-punctuation"; - si6 = wl; - Al = new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)", "s"); - or4 = Bl; - ci4 = ["format", "prettier"]; - li4 = (e3) => vt7(or4(e3).content.trimStart()); - fi5 = (e3) => { - let r3 = or4(e3), n = ``; - return r3.frontMatter ? `${r3.frontMatter.raw} - -${n} - -${r3.content}` : `${n} - -${r3.content}`; - }; - ql = /^.$/su; - Di4 = Tl; - di4 = Ie5(kr5(), 1); - pi5 = Nl; - Rl = /* @__PURE__ */ new Set(["position", "raw"]); - hi5.ignoredProperties = Rl; - mi4 = hi5; - sr5 = null; - zl = 10; - for (let e3 = 0; e3 <= zl; e3++) - cr4(); - gi4 = Ml2; - Ul2 = { "front-matter": [], root: ["children"], paragraph: ["children"], sentence: ["children"], word: [], whitespace: [], emphasis: ["children"], strong: ["children"], delete: ["children"], inlineCode: [], wikiLink: [], link: ["children"], image: [], blockquote: ["children"], heading: ["children"], code: [], html: [], list: ["children"], thematicBreak: [], linkReference: ["children"], imageReference: [], definition: [], footnote: ["children"], footnoteReference: [], footnoteDefinition: ["children"], table: ["children"], tableCell: ["children"], break: [], liquidNode: [], import: [], export: [], esComment: [], jsx: [], math: [], inlineMath: [], tableRow: ["children"], listItem: ["children"], text: [] }; - vi5 = Ul2; - Yl2 = gi4(vi5); - Fi4 = Yl2; - Vl = /* @__PURE__ */ new Set(["heading", "tableCell", "link", "wikiLink"]); - jl = new Set(`$(\xA3\xA5\xB7'"\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u301D\uFE59\uFE5B\uFF04\uFF08\uFF3B\uFF5B\uFFE1\uFFE5[{\u2035\uFE34\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE4F\u3018\uFF5F\xAB`); - $l = new Set(`!%),.:;?]}\xA2\xB0\xB7'"\u2020\u2021\u203A\u2103\u2236\u3001\u3002\u3003\u3006\u3015\u3017\u301E\uFE5A\uFE5C\uFF01\uFF02\uFF05\uFF07\uFF09\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF3D\uFF5D\uFF5E\u2013\u2014\u2022\u3009\u300B\u300D\uFE30\uFE31\uFE32\uFE33\uFE50\uFE51\uFE52\uFE53\uFE54\uFE55\uFE56\uFE58\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE57\uFF5C\uFF64\u300F\u3011\u3019\u301F\uFF60\xBB\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\u2010\u30A0\u301C\uFF5E\u203C\u2047\u2048\u2049\u30FB`); - Ei4 = new Set("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); - Kl = /* @__PURE__ */ new Set(["listItem", "definition", "footnoteDefinition"]); - of = { preprocess: Di4, print: Jl, embed: si6, massageAstNode: mi4, hasPrettierIgnore: af, insertPragma: fi5, getVisitorKeys: Fi4 }; - Ti4 = of; - Pn4 = {}; - On4(Pn4, { markdown: () => xg, mdx: () => yg, remark: () => xg }); - Gc2 = Ie5(ks6(), 1); - Hc = Ie5(vc2(), 1); - Wc2 = Ie5(Pc2(), 1); - Kc = Ie5(Lc2(), 1); - hg = /^import\s/; - mg = /^export\s/; - Oc2 = "[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*|"; - Ic2 = /|/; - gg = /^{\s*\/\*(.*)\*\/\s*}/; - vg = ` - -`; - Nc2 = (e3) => hg.test(e3); - Sn4 = (e3) => mg.test(e3); - Rc2 = (e3, r3) => { - let n = r3.indexOf(vg), t12 = r3.slice(0, n); - if (Sn4(t12) || Nc2(t12)) - return e3(t12)({ type: Sn4(t12) ? "export" : "import", value: t12 }); - }; - zc = (e3, r3) => { - let n = gg.exec(r3); - if (n) - return e3(n[0])({ type: "esComment", value: n[1].trim() }); - }; - Rc2.locator = (e3) => Sn4(e3) || Nc2(e3) ? -1 : 1; - zc.locator = (e3, r3) => e3.indexOf("{", r3); - Mc2 = function() { - let { Parser: e3 } = this, { blockTokenizers: r3, blockMethods: n, inlineTokenizers: t12, inlineMethods: a } = e3.prototype; - r3.esSyntax = Rc2, t12.esComment = zc, n.splice(n.indexOf("paragraph"), 0, "esSyntax"), a.splice(a.indexOf("text"), 0, "esComment"); - }; - Uc2 = Fg; - Eg = function() { - let e3 = this.Parser.prototype; - e3.blockMethods = ["frontMatter", ...e3.blockMethods], e3.blockTokenizers.frontMatter = r3; - function r3(n, t12) { - let a = or4(t12); - if (a.frontMatter) - return n(a.frontMatter.raw)(a.frontMatter); - } - r3.onlyAtStart = true; - }; - Yc2 = Eg; - Cg = function() { - let e3 = this.Parser.prototype, r3 = e3.inlineMethods; - r3.splice(r3.indexOf("text"), 0, "liquid"), e3.inlineTokenizers.liquid = n; - function n(t12, a) { - let i = a.match(/^({%.*?%}|{{.*?}})/s); - if (i) - return t12(i[0])({ type: "liquidNode", value: i[0] }); - } - n.locator = function(t12, a) { - return t12.indexOf("{", a); - }; - }; - Vc2 = Cg; - bg = function() { - let e3 = "wikiLink", r3 = /^\[\[(?.+?)]]/s, n = this.Parser.prototype, t12 = n.inlineMethods; - t12.splice(t12.indexOf("link"), 0, e3), n.inlineTokenizers.wikiLink = a; - function a(i, u) { - let o2 = r3.exec(u); - if (o2) { - let s3 = o2.groups.linkContents.trim(); - return i(o2[0])({ type: e3, value: s3 }); - } - } - a.locator = function(i, u) { - return i.indexOf("[", u); - }; - }; - jc2 = bg; - Xc2 = { astFormat: "mdast", hasPragma: li4, locStart: Te6, locEnd: Se6 }; - xg = { ...Xc2, parse: Jc2({ isMDX: false }) }; - yg = { ...Xc2, parse: Jc2({ isMDX: true }) }; - Qc = [{ linguistLanguageId: 222, name: "Markdown", type: "prose", color: "#083fa1", aliases: ["md", "pandoc"], aceMode: "markdown", codemirrorMode: "gfm", codemirrorMimeType: "text/x-gfm", wrap: true, extensions: [".md", ".livemd", ".markdown", ".mdown", ".mdwn", ".mkd", ".mkdn", ".mkdown", ".ronn", ".scd", ".workbook"], filenames: ["contents.lr", "README"], tmScope: "text.md", parsers: ["markdown"], vscodeLanguageIds: ["markdown"] }, { linguistLanguageId: 222, name: "MDX", type: "prose", color: "#083fa1", aliases: ["md", "pandoc"], aceMode: "markdown", codemirrorMode: "gfm", codemirrorMimeType: "text/x-gfm", wrap: true, extensions: [".mdx"], filenames: [], tmScope: "text.md", parsers: ["mdx"], vscodeLanguageIds: ["mdx"] }]; - _n4 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } }; - kg = { proseWrap: _n4.proseWrap, singleQuote: _n4.singleQuote }; - Zc = kg; - wg = { mdast: Ti4 }; - YE = Ln4; - } -}); - -// node_modules/prettier/plugins/meriyah.mjs -var meriyah_exports = {}; -__export(meriyah_exports, { - default: () => jn4, - parsers: () => Cu3 -}); -function d4(u, e3, ...n) { - throw new k22(u.index, u.line, u.column, e3, ...n); -} -function X22(u) { - throw new k22(u.index, u.line, u.column, u.type, u.params); -} -function h2(u, e3, n, i, ...t12) { - throw new k22(u, e3, n, i, ...t12); -} -function D22(u, e3, n, i) { - throw new k22(u, e3, n, i); -} -function h3(u) { - return u.column++, u.currentChar = u.source.charCodeAt(++u.index); -} -function Xe6(u, e3) { - if ((e3 & 64512) !== 55296) - return 0; - let n = u.source.charCodeAt(u.index + 1); - return (n & 64512) !== 56320 ? 0 : (e3 = u.currentChar = 65536 + ((e3 & 1023) << 10) + (n & 1023), E22[(e3 >>> 5) + 0] >>> e3 & 31 & 1 || d4(u, 18, G6(e3)), u.index++, u.column++, 1); -} -function uu3(u, e3) { - u.currentChar = u.source.charCodeAt(++u.index), u.flags |= 1, e3 & 4 || (u.column = 0, u.line++); -} -function c2(u) { - u.flags |= 1, u.currentChar = u.source.charCodeAt(++u.index), u.column = 0, u.line++; -} -function ze8(u) { - return u === 160 || u === 65279 || u === 133 || u === 5760 || u >= 8192 && u <= 8203 || u === 8239 || u === 8287 || u === 12288 || u === 8201 || u === 65519; -} -function G6(u) { - return u <= 65535 ? String.fromCharCode(u) : String.fromCharCode(u >>> 10) + String.fromCharCode(u & 1023); -} -function H7(u) { - return u < 65 ? u - 48 : u - 65 + 10 & 15; -} -function He6(u) { - switch (u) { - case 134283266: - return "NumericLiteral"; - case 134283267: - return "StringLiteral"; - case 86021: - case 86022: - return "BooleanLiteral"; - case 86023: - return "NullLiteral"; - case 65540: - return "RegularExpression"; - case 67174408: - case 67174409: - case 132: - return "TemplateLiteral"; - default: - return (u & 143360) === 143360 ? "Identifier" : (u & 4096) === 4096 ? "Keyword" : "Punctuator"; - } -} -function Z22(u) { - return u <= 127 ? Ke6[u] : E22[(u >>> 5) + 34816] >>> u & 31 & 1; -} -function O22(u) { - return u <= 127 ? Iu2[u] : E22[(u >>> 5) + 0] >>> u & 31 & 1 || u === 8204 || u === 8205; -} -function $e6(u) { - let e3 = u.source; - u.currentChar === 35 && e3.charCodeAt(u.index + 1) === 33 && (h3(u), h3(u), eu3(u, e3, 0, 4, u.tokenPos, u.linePos, u.colPos)); -} -function wu3(u, e3, n, i, t12, o2, l, f3) { - return i & 2048 && d4(u, 0), eu3(u, e3, n, t12, o2, l, f3); -} -function eu3(u, e3, n, i, t12, o2, l) { - let { index: f3 } = u; - for (u.tokenPos = u.index, u.linePos = u.line, u.colPos = u.column; u.index < u.end; ) { - if (L5[u.currentChar] & 8) { - let c3 = u.currentChar === 13; - c2(u), c3 && u.index < u.end && u.currentChar === 10 && (u.currentChar = e3.charCodeAt(++u.index)); - break; - } else if ((u.currentChar ^ 8232) <= 1) { - c2(u); - break; - } - h3(u), u.tokenPos = u.index, u.linePos = u.line, u.colPos = u.column; - } - if (u.onComment) { - let c3 = { start: { line: o2, column: l }, end: { line: u.linePos, column: u.colPos } }; - u.onComment(Nu3[i & 255], e3.slice(f3, u.tokenPos), t12, u.tokenPos, c3); - } - return n | 1; -} -function We6(u, e3, n) { - let { index: i } = u; - for (; u.index < u.end; ) - if (u.currentChar < 43) { - let t12 = false; - for (; u.currentChar === 42; ) - if (t12 || (n &= -5, t12 = true), h3(u) === 47) { - if (h3(u), u.onComment) { - let o2 = { start: { line: u.linePos, column: u.colPos }, end: { line: u.line, column: u.column } }; - u.onComment(Nu3[1], e3.slice(i, u.index - 2), i - 2, u.index, o2); - } - return u.tokenPos = u.index, u.linePos = u.line, u.colPos = u.column, n; - } - if (t12) - continue; - L5[u.currentChar] & 8 ? u.currentChar === 13 ? (n |= 5, c2(u)) : (uu3(u, n), n = n & -5 | 1) : h3(u); - } else - (u.currentChar ^ 8232) <= 1 ? (n = n & -5 | 1, c2(u)) : (n &= -5, h3(u)); - d4(u, 16); -} -function _e8(u, e3) { - let n = u.index, i = 0; - u: - for (; ; ) { - let g3 = u.currentChar; - if (h3(u), i & 1) - i &= -2; - else - switch (g3) { - case 47: - if (i) - break; - break u; - case 92: - i |= 1; - break; - case 91: - i |= 2; - break; - case 93: - i &= 1; - break; - case 13: - case 10: - case 8232: - case 8233: - d4(u, 32); - } - if (u.index >= u.source.length) - return d4(u, 32); - } - let t12 = u.index - 1, o2 = 0, l = u.currentChar, { index: f3 } = u; - for (; O22(l); ) { - switch (l) { - case 103: - o2 & 2 && d4(u, 34, "g"), o2 |= 2; - break; - case 105: - o2 & 1 && d4(u, 34, "i"), o2 |= 1; - break; - case 109: - o2 & 4 && d4(u, 34, "m"), o2 |= 4; - break; - case 117: - o2 & 16 && d4(u, 34, "u"), o2 |= 16; - break; - case 121: - o2 & 8 && d4(u, 34, "y"), o2 |= 8; - break; - case 115: - o2 & 32 && d4(u, 34, "s"), o2 |= 32; - break; - case 100: - o2 & 64 && d4(u, 34, "d"), o2 |= 64; - break; - default: - d4(u, 33); - } - l = h3(u); - } - let c3 = u.source.slice(f3, u.index), a = u.source.slice(n, t12); - return u.tokenRegExp = { pattern: a, flags: c3 }, e3 & 512 && (u.tokenRaw = u.source.slice(u.tokenPos, u.index)), u.tokenValue = Ye5(u, a, c3), 65540; -} -function Ye5(u, e3, n) { - try { - return new RegExp(e3, n); - } catch { - try { - return new RegExp(e3, n.replace("d", "")), null; - } catch { - d4(u, 32); - } - } -} -function Qe7(u, e3, n) { - let { index: i } = u, t12 = "", o2 = h3(u), l = u.index; - for (; !(L5[o2] & 8); ) { - if (o2 === n) - return t12 += u.source.slice(l, u.index), h3(u), e3 & 512 && (u.tokenRaw = u.source.slice(i, u.index)), u.tokenValue = t12, 134283267; - if ((o2 & 8) === 8 && o2 === 92) { - if (t12 += u.source.slice(l, u.index), o2 = h3(u), o2 < 127 || o2 === 8232 || o2 === 8233) { - let f3 = Vu2(u, e3, o2); - f3 >= 0 ? t12 += G6(f3) : Ru2(u, f3, 0); - } else - t12 += G6(o2); - l = u.index + 1; - } - u.index >= u.end && d4(u, 14), o2 = h3(u); - } - d4(u, 14); -} -function Vu2(u, e3, n) { - switch (n) { - case 98: - return 8; - case 102: - return 12; - case 114: - return 13; - case 110: - return 10; - case 116: - return 9; - case 118: - return 11; - case 13: - if (u.index < u.end) { - let i = u.source.charCodeAt(u.index + 1); - i === 10 && (u.index = u.index + 1, u.currentChar = i); - } - case 10: - case 8232: - case 8233: - return u.column = -1, u.line++, -1; - case 48: - case 49: - case 50: - case 51: { - let i = n - 48, t12 = u.index + 1, o2 = u.column + 1; - if (t12 < u.end) { - let l = u.source.charCodeAt(t12); - if (L5[l] & 32) { - if (e3 & 1024) - return -2; - if (u.currentChar = l, i = i << 3 | l - 48, t12++, o2++, t12 < u.end) { - let f3 = u.source.charCodeAt(t12); - L5[f3] & 32 && (u.currentChar = f3, i = i << 3 | f3 - 48, t12++, o2++); - } - u.flags |= 64, u.index = t12 - 1, u.column = o2 - 1; - } else if ((i !== 0 || L5[l] & 512) && e3 & 1024) - return -2; - } - return i; - } - case 52: - case 53: - case 54: - case 55: { - if (e3 & 1024) - return -2; - let i = n - 48, t12 = u.index + 1, o2 = u.column + 1; - if (t12 < u.end) { - let l = u.source.charCodeAt(t12); - L5[l] & 32 && (i = i << 3 | l - 48, u.currentChar = l, u.index = t12, u.column = o2); - } - return u.flags |= 64, i; - } - case 120: { - let i = h3(u); - if (!(L5[i] & 64)) - return -4; - let t12 = H7(i), o2 = h3(u); - if (!(L5[o2] & 64)) - return -4; - let l = H7(o2); - return t12 << 4 | l; - } - case 117: { - let i = h3(u); - if (u.currentChar === 123) { - let t12 = 0; - for (; L5[h3(u)] & 64; ) - if (t12 = t12 << 4 | H7(u.currentChar), t12 > 1114111) - return -5; - return u.currentChar < 1 || u.currentChar !== 125 ? -4 : t12; - } else { - if (!(L5[i] & 64)) - return -4; - let t12 = u.source.charCodeAt(u.index + 1); - if (!(L5[t12] & 64)) - return -4; - let o2 = u.source.charCodeAt(u.index + 2); - if (!(L5[o2] & 64)) - return -4; - let l = u.source.charCodeAt(u.index + 3); - return L5[l] & 64 ? (u.index += 3, u.column += 3, u.currentChar = u.source.charCodeAt(u.index), H7(i) << 12 | H7(t12) << 8 | H7(o2) << 4 | H7(l)) : -4; - } - } - case 56: - case 57: - if (!(e3 & 256)) - return -3; - default: - return n; - } -} -function Ru2(u, e3, n) { - switch (e3) { - case -1: - return; - case -2: - d4(u, n ? 2 : 1); - case -3: - d4(u, 13); - case -4: - d4(u, 6); - case -5: - d4(u, 102); - } -} -function Ou3(u, e3) { - let { index: n } = u, i = 67174409, t12 = "", o2 = h3(u); - for (; o2 !== 96; ) { - if (o2 === 36 && u.source.charCodeAt(u.index + 1) === 123) { - h3(u), i = 67174408; - break; - } else if ((o2 & 8) === 8 && o2 === 92) - if (o2 = h3(u), o2 > 126) - t12 += G6(o2); - else { - let l = Vu2(u, e3 | 1024, o2); - if (l >= 0) - t12 += G6(l); - else if (l !== -1 && e3 & 65536) { - t12 = void 0, o2 = Ze8(u, o2), o2 < 0 && (i = 67174408); - break; - } else - Ru2(u, l, 1); - } - else - u.index < u.end && o2 === 13 && u.source.charCodeAt(u.index) === 10 && (t12 += G6(o2), u.currentChar = u.source.charCodeAt(++u.index)), ((o2 & 83) < 3 && o2 === 10 || (o2 ^ 8232) <= 1) && (u.column = -1, u.line++), t12 += G6(o2); - u.index >= u.end && d4(u, 15), o2 = h3(u); - } - return h3(u), u.tokenValue = t12, u.tokenRaw = u.source.slice(n + 1, u.index - (i === 67174409 ? 1 : 2)), i; -} -function Ze8(u, e3) { - for (; e3 !== 96; ) { - switch (e3) { - case 36: { - let n = u.index + 1; - if (n < u.end && u.source.charCodeAt(n) === 123) - return u.index = n, u.column++, -e3; - break; - } - case 10: - case 8232: - case 8233: - u.column = -1, u.line++; - } - u.index >= u.end && d4(u, 15), e3 = h3(u); - } - return e3; -} -function re7(u, e3) { - return u.index >= u.end && d4(u, 0), u.index--, u.column--, Ou3(u, e3); -} -function Su3(u, e3, n) { - let i = u.currentChar, t12 = 0, o2 = 9, l = n & 64 ? 0 : 1, f3 = 0, c3 = 0; - if (n & 64) - t12 = "." + L22(u, i), i = u.currentChar, i === 110 && d4(u, 11); - else { - if (i === 48) - if (i = h3(u), (i | 32) === 120) { - for (n = 136, i = h3(u); L5[i] & 4160; ) { - if (i === 95) { - c3 || d4(u, 147), c3 = 0, i = h3(u); - continue; - } - c3 = 1, t12 = t12 * 16 + H7(i), f3++, i = h3(u); - } - (f3 === 0 || !c3) && d4(u, f3 === 0 ? 19 : 148); - } else if ((i | 32) === 111) { - for (n = 132, i = h3(u); L5[i] & 4128; ) { - if (i === 95) { - c3 || d4(u, 147), c3 = 0, i = h3(u); - continue; - } - c3 = 1, t12 = t12 * 8 + (i - 48), f3++, i = h3(u); - } - (f3 === 0 || !c3) && d4(u, f3 === 0 ? 0 : 148); - } else if ((i | 32) === 98) { - for (n = 130, i = h3(u); L5[i] & 4224; ) { - if (i === 95) { - c3 || d4(u, 147), c3 = 0, i = h3(u); - continue; - } - c3 = 1, t12 = t12 * 2 + (i - 48), f3++, i = h3(u); - } - (f3 === 0 || !c3) && d4(u, f3 === 0 ? 0 : 148); - } else if (L5[i] & 32) - for (e3 & 1024 && d4(u, 1), n = 1; L5[i] & 16; ) { - if (L5[i] & 512) { - n = 32, l = 0; - break; - } - t12 = t12 * 8 + (i - 48), i = h3(u); - } - else - L5[i] & 512 ? (e3 & 1024 && d4(u, 1), u.flags |= 64, n = 32) : i === 95 && d4(u, 0); - if (n & 48) { - if (l) { - for (; o2 >= 0 && L5[i] & 4112; ) { - if (i === 95) { - i = h3(u), (i === 95 || n & 32) && D22(u.index, u.line, u.index + 1, 147), c3 = 1; - continue; - } - c3 = 0, t12 = 10 * t12 + (i - 48), i = h3(u), --o2; - } - if (c3 && D22(u.index, u.line, u.index + 1, 148), o2 >= 0 && !Z22(i) && i !== 46) - return u.tokenValue = t12, e3 & 512 && (u.tokenRaw = u.source.slice(u.tokenPos, u.index)), 134283266; - } - t12 += L22(u, i), i = u.currentChar, i === 46 && (h3(u) === 95 && d4(u, 0), n = 64, t12 += "." + L22(u, u.currentChar), i = u.currentChar); - } - } - let a = u.index, g3 = 0; - if (i === 110 && n & 128) - g3 = 1, i = h3(u); - else if ((i | 32) === 101) { - i = h3(u), L5[i] & 256 && (i = h3(u)); - let { index: m3 } = u; - L5[i] & 16 || d4(u, 10), t12 += u.source.substring(a, m3) + L22(u, i), i = u.currentChar; - } - return (u.index < u.end && L5[i] & 16 || Z22(i)) && d4(u, 12), g3 ? (u.tokenRaw = u.source.slice(u.tokenPos, u.index), u.tokenValue = BigInt(t12), 134283389) : (u.tokenValue = n & 15 ? t12 : n & 32 ? parseFloat(u.source.substring(u.tokenPos, u.index)) : +t12, e3 & 512 && (u.tokenRaw = u.source.slice(u.tokenPos, u.index)), 134283266); -} -function L22(u, e3) { - let n = 0, i = u.index, t12 = ""; - for (; L5[e3] & 4112; ) { - if (e3 === 95) { - let { index: o2 } = u; - e3 = h3(u), e3 === 95 && D22(u.index, u.line, u.index + 1, 147), n = 1, t12 += u.source.substring(i, o2), i = u.index; - continue; - } - n = 0, e3 = h3(u); - } - return n && D22(u.index, u.line, u.index + 1, 148), t12 + u.source.substring(i, u.index); -} -function Bu2(u, e3, n) { - for (; Iu2[h3(u)]; ) - ; - return u.tokenValue = u.source.slice(u.tokenPos, u.index), u.currentChar !== 92 && u.currentChar <= 126 ? Uu2[u.tokenValue] || 208897 : nu3(u, e3, 0, n); -} -function Ge6(u, e3) { - let n = Mu2(u); - return O22(n) || d4(u, 4), u.tokenValue = G6(n), nu3(u, e3, 1, L5[n] & 4); -} -function nu3(u, e3, n, i) { - let t12 = u.index; - for (; u.index < u.end; ) - if (u.currentChar === 92) { - u.tokenValue += u.source.slice(t12, u.index), n = 1; - let l = Mu2(u); - O22(l) || d4(u, 4), i = i && L5[l] & 4, u.tokenValue += G6(l), t12 = u.index; - } else if (O22(u.currentChar) || Xe6(u, u.currentChar)) - h3(u); - else - break; - u.index <= u.end && (u.tokenValue += u.source.slice(t12, u.index)); - let o2 = u.tokenValue.length; - if (i && o2 >= 2 && o2 <= 11) { - let l = Uu2[u.tokenValue]; - return l === void 0 ? 208897 : n ? l === 209008 ? e3 & 4196352 ? 121 : l : e3 & 1024 ? l === 36972 || (l & 36864) === 36864 ? 122 : (l & 20480) === 20480 ? e3 & 1073741824 && !(e3 & 8192) ? l : 121 : 143483 : e3 & 1073741824 && !(e3 & 8192) && (l & 20480) === 20480 ? l : l === 241773 ? e3 & 1073741824 ? 143483 : e3 & 2097152 ? 121 : l : l === 209007 ? 143483 : (l & 36864) === 36864 ? l : 121 : l; - } - return 208897; -} -function xe6(u) { - return Z22(h3(u)) || d4(u, 94), 131; -} -function Mu2(u) { - return u.source.charCodeAt(u.index + 1) !== 117 && d4(u, 4), u.currentChar = u.source.charCodeAt(u.index += 2), pe6(u); -} -function pe6(u) { - let e3 = 0, n = u.currentChar; - if (n === 123) { - let l = u.index - 2; - for (; L5[h3(u)] & 64; ) - e3 = e3 << 4 | H7(u.currentChar), e3 > 1114111 && D22(l, u.line, u.index + 1, 102); - return u.currentChar !== 125 && D22(l, u.line, u.index - 1, 6), h3(u), e3; - } - L5[n] & 64 || d4(u, 6); - let i = u.source.charCodeAt(u.index + 1); - L5[i] & 64 || d4(u, 6); - let t12 = u.source.charCodeAt(u.index + 2); - L5[t12] & 64 || d4(u, 6); - let o2 = u.source.charCodeAt(u.index + 3); - return L5[o2] & 64 || d4(u, 6), e3 = H7(n) << 12 | H7(i) << 8 | H7(t12) << 4 | H7(o2), u.currentChar = u.source.charCodeAt(u.index += 4), e3; -} -function A4(u, e3) { - if (u.flags = (u.flags | 1) ^ 1, u.startPos = u.index, u.startColumn = u.column, u.startLine = u.line, u.token = ju3(u, e3, 0), u.onToken && u.token !== 1048576) { - let n = { start: { line: u.linePos, column: u.colPos }, end: { line: u.line, column: u.column } }; - u.onToken(He6(u.token), u.tokenPos, u.index, n); - } -} -function ju3(u, e3, n) { - let i = u.index === 0, t12 = u.source, o2 = u.index, l = u.line, f3 = u.column; - for (; u.index < u.end; ) { - u.tokenPos = u.index, u.colPos = u.column, u.linePos = u.line; - let c3 = u.currentChar; - if (c3 <= 126) { - let a = Ju2[c3]; - switch (a) { - case 67174411: - case 16: - case 2162700: - case 1074790415: - case 69271571: - case 20: - case 21: - case 1074790417: - case 18: - case 16842801: - case 133: - case 129: - return h3(u), a; - case 208897: - return Bu2(u, e3, 0); - case 4096: - return Bu2(u, e3, 1); - case 134283266: - return Su3(u, e3, 144); - case 134283267: - return Qe7(u, e3, c3); - case 132: - return Ou3(u, e3); - case 137: - return Ge6(u, e3); - case 131: - return xe6(u); - case 128: - h3(u); - break; - case 130: - n |= 5, c2(u); - break; - case 136: - uu3(u, n), n = n & -5 | 1; - break; - case 8456258: - let g3 = h3(u); - if (u.index < u.end) { - if (g3 === 60) - return u.index < u.end && h3(u) === 61 ? (h3(u), 4194334) : 8456516; - if (g3 === 61) - return h3(u), 8456256; - if (g3 === 33) { - let s3 = u.index + 1; - if (s3 + 1 < u.end && t12.charCodeAt(s3) === 45 && t12.charCodeAt(s3 + 1) == 45) { - u.column += 3, u.currentChar = t12.charCodeAt(u.index += 3), n = wu3(u, t12, n, e3, 2, u.tokenPos, u.linePos, u.colPos), o2 = u.tokenPos, l = u.linePos, f3 = u.colPos; - continue; - } - return 8456258; - } - if (g3 === 47) { - if (!(e3 & 16)) - return 8456258; - let s3 = u.index + 1; - if (s3 < u.end && (g3 = t12.charCodeAt(s3), g3 === 42 || g3 === 47)) - break; - return h3(u), 25; - } - } - return 8456258; - case 1077936157: { - h3(u); - let s3 = u.currentChar; - return s3 === 61 ? h3(u) === 61 ? (h3(u), 8455996) : 8455998 : s3 === 62 ? (h3(u), 10) : 1077936157; - } - case 16842800: - return h3(u) !== 61 ? 16842800 : h3(u) !== 61 ? 8455999 : (h3(u), 8455997); - case 8457015: - return h3(u) !== 61 ? 8457015 : (h3(u), 4194342); - case 8457014: { - if (h3(u), u.index >= u.end) - return 8457014; - let s3 = u.currentChar; - return s3 === 61 ? (h3(u), 4194340) : s3 !== 42 ? 8457014 : h3(u) !== 61 ? 8457273 : (h3(u), 4194337); - } - case 8455497: - return h3(u) !== 61 ? 8455497 : (h3(u), 4194343); - case 25233970: { - h3(u); - let s3 = u.currentChar; - return s3 === 43 ? (h3(u), 33619995) : s3 === 61 ? (h3(u), 4194338) : 25233970; - } - case 25233971: { - h3(u); - let s3 = u.currentChar; - if (s3 === 45) { - if (h3(u), (n & 1 || i) && u.currentChar === 62) { - e3 & 256 || d4(u, 109), h3(u), n = wu3(u, t12, n, e3, 3, o2, l, f3), o2 = u.tokenPos, l = u.linePos, f3 = u.colPos; - continue; - } - return 33619996; - } - return s3 === 61 ? (h3(u), 4194339) : 25233971; - } - case 8457016: { - if (h3(u), u.index < u.end) { - let s3 = u.currentChar; - if (s3 === 47) { - h3(u), n = eu3(u, t12, n, 0, u.tokenPos, u.linePos, u.colPos), o2 = u.tokenPos, l = u.linePos, f3 = u.colPos; - continue; - } - if (s3 === 42) { - h3(u), n = We6(u, t12, n), o2 = u.tokenPos, l = u.linePos, f3 = u.colPos; - continue; - } - if (e3 & 32768) - return _e8(u, e3); - if (s3 === 61) - return h3(u), 4259877; - } - return 8457016; - } - case 67108877: - let m3 = h3(u); - if (m3 >= 48 && m3 <= 57) - return Su3(u, e3, 80); - if (m3 === 46) { - let s3 = u.index + 1; - if (s3 < u.end && t12.charCodeAt(s3) === 46) - return u.column += 2, u.currentChar = t12.charCodeAt(u.index += 2), 14; - } - return 67108877; - case 8455240: { - h3(u); - let s3 = u.currentChar; - return s3 === 124 ? (h3(u), u.currentChar === 61 ? (h3(u), 4194346) : 8979003) : s3 === 61 ? (h3(u), 4194344) : 8455240; - } - case 8456259: { - h3(u); - let s3 = u.currentChar; - if (s3 === 61) - return h3(u), 8456257; - if (s3 !== 62) - return 8456259; - if (h3(u), u.index < u.end) { - let k4 = u.currentChar; - if (k4 === 62) - return h3(u) === 61 ? (h3(u), 4194336) : 8456518; - if (k4 === 61) - return h3(u), 4194335; - } - return 8456517; - } - case 8455751: { - h3(u); - let s3 = u.currentChar; - return s3 === 38 ? (h3(u), u.currentChar === 61 ? (h3(u), 4194347) : 8979258) : s3 === 61 ? (h3(u), 4194345) : 8455751; - } - case 22: { - let s3 = h3(u); - if (s3 === 63) - return h3(u), u.currentChar === 61 ? (h3(u), 4194348) : 276889982; - if (s3 === 46) { - let k4 = u.index + 1; - if (k4 < u.end && (s3 = t12.charCodeAt(k4), !(s3 >= 48 && s3 <= 57))) - return h3(u), 67108991; - } - return 22; - } - } - } else { - if ((c3 ^ 8232) <= 1) { - n = n & -5 | 1, c2(u); - continue; - } - if ((c3 & 64512) === 55296 || E22[(c3 >>> 5) + 34816] >>> c3 & 31 & 1) - return (c3 & 64512) === 56320 && (c3 = (c3 & 1023) << 10 | c3 & 1023 | 65536, E22[(c3 >>> 5) + 0] >>> c3 & 31 & 1 || d4(u, 18, G6(c3)), u.index++, u.currentChar = c3), u.column++, u.tokenValue = "", nu3(u, e3, 0, 0); - if (ze8(c3)) { - h3(u); - continue; - } - d4(u, 18, G6(c3)); - } - } - return 1048576; -} -function u1(u, e3) { - return u.startPos = u.tokenPos = u.index, u.startColumn = u.colPos = u.column, u.startLine = u.linePos = u.line, u.token = L5[u.currentChar] & 8192 ? e1(u, e3) : ju3(u, e3, 0), u.token; -} -function e1(u, e3) { - let n = u.currentChar, i = h3(u), t12 = u.index; - for (; i !== n; ) - u.index >= u.end && d4(u, 14), i = h3(u); - return i !== n && d4(u, 14), u.tokenValue = u.source.slice(t12, u.index), h3(u), e3 & 512 && (u.tokenRaw = u.source.slice(u.tokenPos, u.index)), 134283267; -} -function d22(u, e3) { - if (u.startPos = u.tokenPos = u.index, u.startColumn = u.colPos = u.column, u.startLine = u.linePos = u.line, u.index >= u.end) - return u.token = 1048576; - switch (Ju2[u.source.charCodeAt(u.index)]) { - case 8456258: { - h3(u), u.currentChar === 47 ? (h3(u), u.token = 25) : u.token = 8456258; - break; - } - case 2162700: { - h3(u), u.token = 2162700; - break; - } - default: { - let i = 0; - for (; u.index < u.end; ) { - let o2 = L5[u.source.charCodeAt(u.index)]; - if (o2 & 1024 ? (i |= 5, c2(u)) : o2 & 2048 ? (uu3(u, i), i = i & -5 | 1) : h3(u), L5[u.currentChar] & 16384) - break; - } - let t12 = u.source.slice(u.tokenPos, u.index); - e3 & 512 && (u.tokenRaw = t12), u.tokenValue = t12, u.token = 138; - } - } - return u.token; -} -function r2(u) { - if ((u.token & 143360) === 143360) { - let { index: e3 } = u, n = u.currentChar; - for (; L5[n] & 32770; ) - n = h3(u); - u.tokenValue += u.source.slice(e3, u.index); - } - return u.token = 208897, u.token; -} -function z7(u, e3, n) { - !(u.flags & 1) && (u.token & 1048576) !== 1048576 && !n && d4(u, 28, U7[u.token & 255]), q5(u, e3, 1074790417); -} -function Xu2(u, e3, n, i) { - return e3 - n < 13 && i === "use strict" && ((u.token & 1048576) === 1048576 || u.flags & 1) ? 1 : 0; -} -function iu3(u, e3, n) { - return u.token !== n ? 0 : (A4(u, e3), 1); -} -function q5(u, e3, n) { - return u.token !== n ? false : (A4(u, e3), true); -} -function P7(u, e3, n) { - u.token !== n && d4(u, 23, U7[n & 255]), A4(u, e3); -} -function r(u, e3) { - switch (e3.type) { - case "ArrayExpression": - e3.type = "ArrayPattern"; - let n = e3.elements; - for (let t12 = 0, o2 = n.length; t12 < o2; ++t12) { - let l = n[t12]; - l && r(u, l); - } - return; - case "ObjectExpression": - e3.type = "ObjectPattern"; - let i = e3.properties; - for (let t12 = 0, o2 = i.length; t12 < o2; ++t12) - r(u, i[t12]); - return; - case "AssignmentExpression": - e3.type = "AssignmentPattern", e3.operator !== "=" && d4(u, 69), delete e3.operator, r(u, e3.left); - return; - case "Property": - r(u, e3.value); - return; - case "SpreadElement": - e3.type = "RestElement", r(u, e3.argument); - } -} -function U22(u, e3, n, i, t12) { - e3 & 1024 && ((i & 36864) === 36864 && d4(u, 115), !t12 && (i & 537079808) === 537079808 && d4(u, 116)), (i & 20480) === 20480 && d4(u, 100), n & 24 && i === 241739 && d4(u, 98), e3 & 4196352 && i === 209008 && d4(u, 96), e3 & 2098176 && i === 241773 && d4(u, 95, "yield"); -} -function zu3(u, e3, n) { - e3 & 1024 && ((n & 36864) === 36864 && d4(u, 115), (n & 537079808) === 537079808 && d4(u, 116), n === 122 && d4(u, 93), n === 121 && d4(u, 93)), (n & 20480) === 20480 && d4(u, 100), e3 & 4196352 && n === 209008 && d4(u, 96), e3 & 2098176 && n === 241773 && d4(u, 95, "yield"); -} -function Hu2(u, e3, n) { - return n === 209008 && (e3 & 4196352 && d4(u, 96), u.destructible |= 128), n === 241773 && e3 & 2097152 && d4(u, 95, "yield"), (n & 20480) === 20480 || (n & 36864) === 36864 || n == 122; -} -function n1(u) { - return u.property ? u.property.type === "PrivateIdentifier" : false; -} -function Ku3(u, e3, n, i) { - for (; e3; ) { - if (e3["$" + n]) - return i && d4(u, 134), 1; - i && e3.loop && (i = 0), e3 = e3.$; - } - return 0; -} -function i1(u, e3, n) { - let i = e3; - for (; i; ) - i["$" + n] && d4(u, 133, n), i = i.$; - e3["$" + n] = 1; -} -function y3(u, e3, n, i, t12, o2) { - return e3 & 2 && (o2.start = n, o2.end = u.startPos, o2.range = [n, u.startPos]), e3 & 4 && (o2.loc = { start: { line: i, column: t12 }, end: { line: u.startLine, column: u.startColumn } }, u.sourceFile && (o2.loc.source = u.sourceFile)), o2; -} -function M22(u) { - switch (u.type) { - case "JSXIdentifier": - return u.name; - case "JSXNamespacedName": - return u.namespace + ":" + u.name; - case "JSXMemberExpression": - return M22(u.object) + "." + M22(u.property); - } -} -function z22(u, e3, n) { - let i = J5(s22(), 1024); - return t22(u, e3, i, n, 1, 0), i; -} -function G22(u, e3, ...n) { - let { index: i, line: t12, column: o2 } = u; - return { type: e3, params: n, index: i, line: t12, column: o2 }; -} -function s22() { - return { parent: void 0, type: 2 }; -} -function J5(u, e3) { - return { parent: u, type: e3, scopeError: void 0 }; -} -function u2(u, e3, n, i, t12, o2) { - t12 & 4 ? $u2(u, e3, n, i, t12) : t22(u, e3, n, i, t12, o2), o2 & 64 && l2(u, i); -} -function t22(u, e3, n, i, t12, o2) { - let l = n["#" + i]; - l && !(l & 2) && (t12 & 1 ? n.scopeError = G22(u, 141, i) : e3 & 256 && l & 64 && o2 & 2 || d4(u, 141, i)), n.type & 128 && n.parent["#" + i] && !(n.parent["#" + i] & 2) && d4(u, 141, i), n.type & 1024 && l && !(l & 2) && t12 & 1 && (n.scopeError = G22(u, 141, i)), n.type & 64 && n.parent["#" + i] & 768 && d4(u, 154, i), n["#" + i] = t12; -} -function $u2(u, e3, n, i, t12) { - let o2 = n; - for (; o2 && !(o2.type & 256); ) { - let l = o2["#" + i]; - l & 248 && (e3 & 256 && !(e3 & 1024) && (t12 & 128 && l & 68 || l & 128 && t12 & 68) || d4(u, 141, i)), o2 === n && l & 1 && t12 & 1 && (o2.scopeError = G22(u, 141, i)), l & 768 && (!(l & 512) || !(e3 & 256) || e3 & 1024) && d4(u, 141, i), o2["#" + i] = t12, o2 = o2.parent; - } -} -function l2(u, e3) { - u.exportedNames !== void 0 && e3 !== "" && (u.exportedNames["#" + e3] && d4(u, 142, e3), u.exportedNames["#" + e3] = 1); -} -function t1(u, e3) { - u.exportedBindings !== void 0 && e3 !== "" && (u.exportedBindings["#" + e3] = 1); -} -function o1(u, e3) { - return function(n, i, t12, o2, l) { - let f3 = { type: n, value: i }; - u & 2 && (f3.start = t12, f3.end = o2, f3.range = [t12, o2]), u & 4 && (f3.loc = l), e3.push(f3); - }; -} -function l1(u, e3) { - return function(n, i, t12, o2) { - let l = { token: n }; - u & 2 && (l.start = i, l.end = t12, l.range = [i, t12]), u & 4 && (l.loc = o2), e3.push(l); - }; -} -function tu3(u, e3) { - return u & 2098176 ? u & 2048 && e3 === 209008 || u & 2097152 && e3 === 241773 ? false : (e3 & 143360) === 143360 || (e3 & 12288) === 12288 : (e3 & 143360) === 143360 || (e3 & 12288) === 12288 || (e3 & 36864) === 36864; -} -function ou3(u, e3, n, i) { - (n & 537079808) === 537079808 && (e3 & 1024 && d4(u, 116), i && (u.flags |= 512)), tu3(e3, n) || d4(u, 0); -} -function f1(u, e3, n, i) { - return { source: u, flags: 0, index: 0, line: 1, column: 0, startPos: 0, end: u.length, tokenPos: 0, startColumn: 0, colPos: 0, linePos: 1, startLine: 1, sourceFile: e3, tokenValue: "", token: 1048576, tokenRaw: "", tokenRegExp: void 0, currentChar: u.charCodeAt(0), exportedNames: [], exportedBindings: [], assignable: 1, destructible: 0, onComment: n, onToken: i, leadingDecorators: [] }; -} -function c1(u, e3, n) { - let i = "", t12, o2; - e3 != null && (e3.module && (n |= 3072), e3.next && (n |= 1), e3.loc && (n |= 4), e3.ranges && (n |= 2), e3.uniqueKeyInPattern && (n |= -2147483648), e3.lexical && (n |= 64), e3.webcompat && (n |= 256), e3.directives && (n |= 520), e3.globalReturn && (n |= 32), e3.raw && (n |= 512), e3.preserveParens && (n |= 128), e3.impliedStrict && (n |= 1024), e3.jsx && (n |= 16), e3.identifierPattern && (n |= 268435456), e3.specDeviation && (n |= 536870912), e3.source && (i = e3.source), e3.onComment != null && (t12 = Array.isArray(e3.onComment) ? o1(n, e3.onComment) : e3.onComment), e3.onToken != null && (o2 = Array.isArray(e3.onToken) ? l1(n, e3.onToken) : e3.onToken)); - let l = f1(u, i, t12, o2); - n & 1 && $e6(l); - let f3 = n & 64 ? s22() : void 0, c3 = [], a = "script"; - if (n & 2048) { - if (a = "module", c3 = s1(l, n | 8192, f3), f3) - for (let m3 in l.exportedBindings) - m3[0] === "#" && !f3[m3] && d4(l, 143, m3.slice(1)); - } else - c3 = d1(l, n | 8192, f3); - let g3 = { type: "Program", sourceType: a, body: c3 }; - return n & 2 && (g3.start = 0, g3.end = u.length, g3.range = [0, u.length]), n & 4 && (g3.loc = { start: { line: 1, column: 0 }, end: { line: l.line, column: l.column } }, l.sourceFile && (g3.loc.source = i)), g3; -} -function d1(u, e3, n) { - A4(u, e3 | 32768 | 1073741824); - let i = []; - for (; u.token === 134283267; ) { - let { index: t12, tokenPos: o2, tokenValue: l, linePos: f3, colPos: c3, token: a } = u, g3 = X6(u, e3); - Xu2(u, t12, o2, l) && (e3 |= 1024), i.push(fu2(u, e3, g3, a, o2, f3, c3)); - } - for (; u.token !== 1048576; ) - i.push(S22(u, e3, n, 4, {})); - return i; -} -function s1(u, e3, n) { - A4(u, e3 | 32768); - let i = []; - if (e3 & 8) - for (; u.token === 134283267; ) { - let { tokenPos: t12, linePos: o2, colPos: l, token: f3 } = u; - i.push(fu2(u, e3, X6(u, e3), f3, t12, o2, l)); - } - for (; u.token !== 1048576; ) - i.push(a1(u, e3, n)); - return i; -} -function a1(u, e3, n) { - u.leadingDecorators = $22(u, e3); - let i; - switch (u.token) { - case 20566: - i = I1(u, e3, n); - break; - case 86108: - i = q1(u, e3, n); - break; - default: - i = S22(u, e3, n, 4, {}); - } - return u.leadingDecorators.length && d4(u, 165), i; -} -function S22(u, e3, n, i, t12) { - let o2 = u.tokenPos, l = u.linePos, f3 = u.colPos; - switch (u.token) { - case 86106: - return i2(u, e3, n, i, 1, 0, 0, o2, l, f3); - case 133: - case 86096: - return p2(u, e3, n, 0, o2, l, f3); - case 86092: - return x22(u, e3, n, 16, 0, o2, l, f3); - case 241739: - return T1(u, e3, n, i, o2, l, f3); - case 20566: - d4(u, 101, "export"); - case 86108: - switch (A4(u, e3), u.token) { - case 67174411: - return Zu2(u, e3, o2, l, f3); - case 67108877: - return Qu3(u, e3, o2, l, f3); - default: - d4(u, 101, "import"); - } - case 209007: - return Wu2(u, e3, n, i, t12, 1, o2, l, f3); - default: - return B22(u, e3, n, i, t12, 1, o2, l, f3); - } -} -function B22(u, e3, n, i, t12, o2, l, f3, c3) { - switch (u.token) { - case 86090: - return _u2(u, e3, n, 0, l, f3, c3); - case 20574: - return g1(u, e3, l, f3, c3); - case 20571: - return h1(u, e3, n, t12, l, f3, c3); - case 20569: - return F1(u, e3, n, t12, l, f3, c3); - case 20564: - return v12(u, e3, n, t12, l, f3, c3); - case 20580: - return A1(u, e3, n, t12, l, f3, c3); - case 86112: - return D1(u, e3, n, t12, l, f3, c3); - case 1074790417: - return y1(u, e3, l, f3, c3); - case 2162700: - return w22(u, e3, n && J5(n, 2), t12, l, f3, c3); - case 86114: - return k1(u, e3, l, f3, c3); - case 20557: - return C1(u, e3, t12, l, f3, c3); - case 20561: - return b1(u, e3, t12, l, f3, c3); - case 20579: - return w1(u, e3, n, t12, l, f3, c3); - case 20581: - return P1(u, e3, n, t12, l, f3, c3); - case 20562: - return E1(u, e3, l, f3, c3); - case 209007: - return Wu2(u, e3, n, i, t12, 0, l, f3, c3); - case 20559: - d4(u, 157); - case 20568: - d4(u, 158); - case 86106: - d4(u, e3 & 1024 ? 74 : e3 & 256 ? 75 : 76); - case 86096: - d4(u, 77); - default: - return m1(u, e3, n, i, t12, o2, l, f3, c3); - } -} -function m1(u, e3, n, i, t12, o2, l, f3, c3) { - let { tokenValue: a, token: g3 } = u, m3; - switch (g3) { - case 241739: - m3 = I3(u, e3, 0), e3 & 1024 && d4(u, 83), u.token === 69271571 && d4(u, 82); - break; - default: - m3 = K5(u, e3, 2, 0, 1, 0, 0, 1, u.tokenPos, u.linePos, u.colPos); - } - return g3 & 143360 && u.token === 21 ? lu2(u, e3, n, i, t12, a, m3, g3, o2, l, f3, c3) : (m3 = N3(u, e3, m3, 0, 0, l, f3, c3), m3 = O6(u, e3, 0, 0, l, f3, c3, m3), u.token === 18 && (m3 = e2(u, e3, 0, l, f3, c3, m3)), A22(u, e3, m3, l, f3, c3)); -} -function w22(u, e3, n, i, t12, o2, l) { - let f3 = []; - for (P7(u, e3 | 32768, 2162700); u.token !== 1074790415; ) - f3.push(S22(u, e3, n, 2, { $: i })); - return P7(u, e3 | 32768, 1074790415), y3(u, e3, t12, o2, l, { type: "BlockStatement", body: f3 }); -} -function g1(u, e3, n, i, t12) { - !(e3 & 32) && e3 & 8192 && d4(u, 90), A4(u, e3 | 32768); - let o2 = u.flags & 1 || u.token & 1048576 ? null : j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - return z7(u, e3 | 32768), y3(u, e3, n, i, t12, { type: "ReturnStatement", argument: o2 }); -} -function A22(u, e3, n, i, t12, o2) { - return z7(u, e3 | 32768), y3(u, e3, i, t12, o2, { type: "ExpressionStatement", expression: n }); -} -function lu2(u, e3, n, i, t12, o2, l, f3, c3, a, g3, m3) { - U22(u, e3, 0, f3, 1), i1(u, t12, o2), A4(u, e3 | 32768); - let s3 = c3 && !(e3 & 1024) && e3 & 256 && u.token === 86106 ? i2(u, e3, J5(n, 2), i, 0, 0, 0, u.tokenPos, u.linePos, u.colPos) : B22(u, e3, n, i, t12, c3, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, a, g3, m3, { type: "LabeledStatement", label: l, body: s3 }); -} -function Wu2(u, e3, n, i, t12, o2, l, f3, c3) { - let { token: a, tokenValue: g3 } = u, m3 = I3(u, e3, 0); - if (u.token === 21) - return lu2(u, e3, n, i, t12, g3, m3, a, 1, l, f3, c3); - let s3 = u.flags & 1; - if (!s3) { - if (u.token === 86106) - return o2 || d4(u, 120), i2(u, e3, n, i, 1, 0, 1, l, f3, c3); - if ((u.token & 143360) === 143360) - return m3 = ie4(u, e3, 1, l, f3, c3), u.token === 18 && (m3 = e2(u, e3, 0, l, f3, c3, m3)), A22(u, e3, m3, l, f3, c3); - } - return u.token === 67174411 ? m3 = mu2(u, e3, m3, 1, 1, 0, s3, l, f3, c3) : (u.token === 10 && (ou3(u, e3, a, 1), m3 = K22(u, e3, u.tokenValue, m3, 0, 1, 0, l, f3, c3)), u.assignable = 1), m3 = N3(u, e3, m3, 0, 0, l, f3, c3), u.token === 18 && (m3 = e2(u, e3, 0, l, f3, c3, m3)), m3 = O6(u, e3, 0, 0, l, f3, c3, m3), u.assignable = 1, A22(u, e3, m3, l, f3, c3); -} -function fu2(u, e3, n, i, t12, o2, l) { - return i !== 1074790417 && (u.assignable = 2, n = N3(u, e3, n, 0, 0, t12, o2, l), u.token !== 1074790417 && (n = O6(u, e3, 0, 0, t12, o2, l, n), u.token === 18 && (n = e2(u, e3, 0, t12, o2, l, n))), z7(u, e3 | 32768)), e3 & 8 && n.type === "Literal" && typeof n.value == "string" ? y3(u, e3, t12, o2, l, { type: "ExpressionStatement", expression: n, directive: n.raw.slice(1, -1) }) : y3(u, e3, t12, o2, l, { type: "ExpressionStatement", expression: n }); -} -function y1(u, e3, n, i, t12) { - return A4(u, e3 | 32768), y3(u, e3, n, i, t12, { type: "EmptyStatement" }); -} -function k1(u, e3, n, i, t12) { - A4(u, e3 | 32768), u.flags & 1 && d4(u, 88); - let o2 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - return z7(u, e3 | 32768), y3(u, e3, n, i, t12, { type: "ThrowStatement", argument: o2 }); -} -function h1(u, e3, n, i, t12, o2, l) { - A4(u, e3), P7(u, e3 | 32768, 67174411), u.assignable = 1; - let f3 = j6(u, e3, 0, 1, u.tokenPos, u.line, u.colPos); - P7(u, e3 | 32768, 16); - let c3 = vu3(u, e3, n, i, u.tokenPos, u.linePos, u.colPos), a = null; - return u.token === 20565 && (A4(u, e3 | 32768), a = vu3(u, e3, n, i, u.tokenPos, u.linePos, u.colPos)), y3(u, e3, t12, o2, l, { type: "IfStatement", test: f3, consequent: c3, alternate: a }); -} -function vu3(u, e3, n, i, t12, o2, l) { - return e3 & 1024 || !(e3 & 256) || u.token !== 86106 ? B22(u, e3, n, 0, { $: i }, 0, u.tokenPos, u.linePos, u.colPos) : i2(u, e3, J5(n, 2), 0, 0, 0, 0, t12, o2, l); -} -function D1(u, e3, n, i, t12, o2, l) { - A4(u, e3), P7(u, e3 | 32768, 67174411); - let f3 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - P7(u, e3, 16), P7(u, e3, 2162700); - let c3 = [], a = 0; - for (n && (n = J5(n, 8)); u.token !== 1074790415; ) { - let { tokenPos: g3, linePos: m3, colPos: s3 } = u, k4 = null, C6 = []; - for (q5(u, e3 | 32768, 20558) ? k4 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos) : (P7(u, e3 | 32768, 20563), a && d4(u, 87), a = 1), P7(u, e3 | 32768, 21); u.token !== 20558 && u.token !== 1074790415 && u.token !== 20563; ) - C6.push(S22(u, e3 | 4096, n, 2, { $: i })); - c3.push(y3(u, e3, g3, m3, s3, { type: "SwitchCase", test: k4, consequent: C6 })); - } - return P7(u, e3 | 32768, 1074790415), y3(u, e3, t12, o2, l, { type: "SwitchStatement", discriminant: f3, cases: c3 }); -} -function A1(u, e3, n, i, t12, o2, l) { - A4(u, e3), P7(u, e3 | 32768, 67174411); - let f3 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - P7(u, e3 | 32768, 16); - let c3 = P22(u, e3, n, i); - return y3(u, e3, t12, o2, l, { type: "WhileStatement", test: f3, body: c3 }); -} -function P22(u, e3, n, i) { - return B22(u, (e3 | 134217728) ^ 134217728 | 131072, n, 0, { loop: 1, $: i }, 0, u.tokenPos, u.linePos, u.colPos); -} -function b1(u, e3, n, i, t12, o2) { - e3 & 131072 || d4(u, 66), A4(u, e3); - let l = null; - if (!(u.flags & 1) && u.token & 143360) { - let { tokenValue: f3 } = u; - l = I3(u, e3 | 32768, 0), Ku3(u, n, f3, 1) || d4(u, 135, f3); - } - return z7(u, e3 | 32768), y3(u, e3, i, t12, o2, { type: "ContinueStatement", label: l }); -} -function C1(u, e3, n, i, t12, o2) { - A4(u, e3 | 32768); - let l = null; - if (!(u.flags & 1) && u.token & 143360) { - let { tokenValue: f3 } = u; - l = I3(u, e3 | 32768, 0), Ku3(u, n, f3, 0) || d4(u, 135, f3); - } else - e3 & 135168 || d4(u, 67); - return z7(u, e3 | 32768), y3(u, e3, i, t12, o2, { type: "BreakStatement", label: l }); -} -function P1(u, e3, n, i, t12, o2, l) { - A4(u, e3), e3 & 1024 && d4(u, 89), P7(u, e3 | 32768, 67174411); - let f3 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - P7(u, e3 | 32768, 16); - let c3 = B22(u, e3, n, 2, i, 0, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, t12, o2, l, { type: "WithStatement", object: f3, body: c3 }); -} -function E1(u, e3, n, i, t12) { - return A4(u, e3 | 32768), z7(u, e3 | 32768), y3(u, e3, n, i, t12, { type: "DebuggerStatement" }); -} -function w1(u, e3, n, i, t12, o2, l) { - A4(u, e3 | 32768); - let f3 = n ? J5(n, 32) : void 0, c3 = w22(u, e3, f3, { $: i }, u.tokenPos, u.linePos, u.colPos), { tokenPos: a, linePos: g3, colPos: m3 } = u, s3 = q5(u, e3 | 32768, 20559) ? S1(u, e3, n, i, a, g3, m3) : null, k4 = null; - if (u.token === 20568) { - A4(u, e3 | 32768); - let C6 = f3 ? J5(n, 4) : void 0; - k4 = w22(u, e3, C6, { $: i }, u.tokenPos, u.linePos, u.colPos); - } - return !s3 && !k4 && d4(u, 86), y3(u, e3, t12, o2, l, { type: "TryStatement", block: c3, handler: s3, finalizer: k4 }); -} -function S1(u, e3, n, i, t12, o2, l) { - let f3 = null, c3 = n; - q5(u, e3, 67174411) && (n && (n = J5(n, 4)), f3 = le7(u, e3, n, (u.token & 2097152) === 2097152 ? 256 : 512, 0, u.tokenPos, u.linePos, u.colPos), u.token === 18 ? d4(u, 84) : u.token === 1077936157 && d4(u, 85), P7(u, e3 | 32768, 16), n && (c3 = J5(n, 64))); - let a = w22(u, e3, c3, { $: i }, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, t12, o2, l, { type: "CatchClause", param: f3, body: a }); -} -function B1(u, e3, n, i, t12, o2) { - n && (n = J5(n, 2)); - let l = 540672; - e3 = (e3 | l) ^ l | 262144; - let { body: f3 } = w22(u, e3, n, {}, i, t12, o2); - return y3(u, e3, i, t12, o2, { type: "StaticBlock", body: f3 }); -} -function v12(u, e3, n, i, t12, o2, l) { - A4(u, e3 | 32768); - let f3 = P22(u, e3, n, i); - P7(u, e3, 20580), P7(u, e3 | 32768, 67174411); - let c3 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos); - return P7(u, e3 | 32768, 16), q5(u, e3, 1074790417), y3(u, e3, t12, o2, l, { type: "DoWhileStatement", body: f3, test: c3 }); -} -function T1(u, e3, n, i, t12, o2, l) { - let { token: f3, tokenValue: c3 } = u, a = I3(u, e3, 0); - if (u.token & 2240512) { - let g3 = y22(u, e3, n, 8, 0); - return z7(u, e3 | 32768), y3(u, e3, t12, o2, l, { type: "VariableDeclaration", kind: "let", declarations: g3 }); - } - if (u.assignable = 1, e3 & 1024 && d4(u, 83), u.token === 21) - return lu2(u, e3, n, i, {}, c3, a, f3, 0, t12, o2, l); - if (u.token === 10) { - let g3; - e3 & 64 && (g3 = z22(u, e3, c3)), u.flags = (u.flags | 128) ^ 128, a = v2(u, e3, g3, [a], 0, t12, o2, l); - } else - a = N3(u, e3, a, 0, 0, t12, o2, l), a = O6(u, e3, 0, 0, t12, o2, l, a); - return u.token === 18 && (a = e2(u, e3, 0, t12, o2, l, a)), A22(u, e3, a, t12, o2, l); -} -function x22(u, e3, n, i, t12, o2, l, f3) { - A4(u, e3); - let c3 = y22(u, e3, n, i, t12); - return z7(u, e3 | 32768), y3(u, e3, o2, l, f3, { type: "VariableDeclaration", kind: i & 8 ? "let" : "const", declarations: c3 }); -} -function _u2(u, e3, n, i, t12, o2, l) { - A4(u, e3); - let f3 = y22(u, e3, n, 4, i); - return z7(u, e3 | 32768), y3(u, e3, t12, o2, l, { type: "VariableDeclaration", kind: "var", declarations: f3 }); -} -function y22(u, e3, n, i, t12) { - let o2 = 1, l = [Tu2(u, e3, n, i, t12)]; - for (; q5(u, e3, 18); ) - o2++, l.push(Tu2(u, e3, n, i, t12)); - return o2 > 1 && t12 & 32 && u.token & 262144 && d4(u, 59, U7[u.token & 255]), l; -} -function Tu2(u, e3, n, i, t12) { - let { token: o2, tokenPos: l, linePos: f3, colPos: c3 } = u, a = null, g3 = le7(u, e3, n, i, t12, l, f3, c3); - return u.token === 1077936157 ? (A4(u, e3 | 32768), a = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos), (t12 & 32 || !(o2 & 2097152)) && (u.token === 274549 || u.token === 8738868 && (o2 & 2097152 || !(i & 4) || e3 & 1024)) && h2(l, u.line, u.index - 3, 58, u.token === 274549 ? "of" : "in")) : (i & 16 || (o2 & 2097152) > 0) && (u.token & 262144) !== 262144 && d4(u, 57, i & 16 ? "const" : "destructuring"), y3(u, e3, l, f3, c3, { type: "VariableDeclarator", id: g3, init: a }); -} -function F1(u, e3, n, i, t12, o2, l) { - A4(u, e3); - let f3 = ((e3 & 4194304) > 0 || (e3 & 2048) > 0 && (e3 & 8192) > 0) && q5(u, e3, 209008); - P7(u, e3 | 32768, 67174411), n && (n = J5(n, 1)); - let c3 = null, a = null, g3 = 0, m3 = null, s3 = u.token === 86090 || u.token === 241739 || u.token === 86092, k4, { token: C6, tokenPos: b5, linePos: E6, colPos: w4 } = u; - if (s3 ? C6 === 241739 ? (m3 = I3(u, e3, 0), u.token & 2240512 ? (u.token === 8738868 ? e3 & 1024 && d4(u, 65) : m3 = y3(u, e3, b5, E6, w4, { type: "VariableDeclaration", kind: "let", declarations: y22(u, e3 | 134217728, n, 8, 32) }), u.assignable = 1) : e3 & 1024 ? d4(u, 65) : (s3 = false, u.assignable = 1, m3 = N3(u, e3, m3, 0, 0, b5, E6, w4), u.token === 274549 && d4(u, 112))) : (A4(u, e3), m3 = y3(u, e3, b5, E6, w4, C6 === 86090 ? { type: "VariableDeclaration", kind: "var", declarations: y22(u, e3 | 134217728, n, 4, 32) } : { type: "VariableDeclaration", kind: "const", declarations: y22(u, e3 | 134217728, n, 16, 32) }), u.assignable = 1) : C6 === 1074790417 ? f3 && d4(u, 80) : (C6 & 2097152) === 2097152 ? (m3 = C6 === 2162700 ? Y8(u, e3, void 0, 1, 0, 0, 2, 32, b5, E6, w4) : _4(u, e3, void 0, 1, 0, 0, 2, 32, b5, E6, w4), g3 = u.destructible, e3 & 256 && g3 & 64 && d4(u, 61), u.assignable = g3 & 16 ? 2 : 1, m3 = N3(u, e3 | 134217728, m3, 0, 0, u.tokenPos, u.linePos, u.colPos)) : m3 = W5(u, e3 | 134217728, 1, 0, 1, b5, E6, w4), (u.token & 262144) === 262144) { - if (u.token === 274549) { - u.assignable & 2 && d4(u, 78, f3 ? "await" : "of"), r(u, m3), A4(u, e3 | 32768), k4 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos), P7(u, e3 | 32768, 16); - let S6 = P22(u, e3, n, i); - return y3(u, e3, t12, o2, l, { type: "ForOfStatement", left: m3, right: k4, body: S6, await: f3 }); - } - u.assignable & 2 && d4(u, 78, "in"), r(u, m3), A4(u, e3 | 32768), f3 && d4(u, 80), k4 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos), P7(u, e3 | 32768, 16); - let M8 = P22(u, e3, n, i); - return y3(u, e3, t12, o2, l, { type: "ForInStatement", body: M8, left: m3, right: k4 }); - } - f3 && d4(u, 80), s3 || (g3 & 8 && u.token !== 1077936157 && d4(u, 78, "loop"), m3 = O6(u, e3 | 134217728, 0, 0, b5, E6, w4, m3)), u.token === 18 && (m3 = e2(u, e3, 0, u.tokenPos, u.linePos, u.colPos, m3)), P7(u, e3 | 32768, 1074790417), u.token !== 1074790417 && (c3 = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos)), P7(u, e3 | 32768, 1074790417), u.token !== 16 && (a = j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos)), P7(u, e3 | 32768, 16); - let v7 = P22(u, e3, n, i); - return y3(u, e3, t12, o2, l, { type: "ForStatement", init: m3, test: c3, update: a, body: v7 }); -} -function Yu3(u, e3, n) { - return tu3(e3, u.token) || d4(u, 115), (u.token & 537079808) === 537079808 && d4(u, 116), n && t22(u, e3, n, u.tokenValue, 8, 0), I3(u, e3, 0); -} -function q1(u, e3, n) { - let i = u.tokenPos, t12 = u.linePos, o2 = u.colPos; - A4(u, e3); - let l = null, { tokenPos: f3, linePos: c3, colPos: a } = u, g3 = []; - if (u.token === 134283267) - l = X6(u, e3); - else { - if (u.token & 143360) { - let m3 = Yu3(u, e3, n); - if (g3 = [y3(u, e3, f3, c3, a, { type: "ImportDefaultSpecifier", local: m3 })], q5(u, e3, 18)) - switch (u.token) { - case 8457014: - g3.push(Fu3(u, e3, n)); - break; - case 2162700: - qu3(u, e3, n, g3); - break; - default: - d4(u, 105); - } - } else - switch (u.token) { - case 8457014: - g3 = [Fu3(u, e3, n)]; - break; - case 2162700: - qu3(u, e3, n, g3); - break; - case 67174411: - return Zu2(u, e3, i, t12, o2); - case 67108877: - return Qu3(u, e3, i, t12, o2); - default: - d4(u, 28, U7[u.token & 255]); - } - l = L1(u, e3); - } - return z7(u, e3 | 32768), y3(u, e3, i, t12, o2, { type: "ImportDeclaration", specifiers: g3, source: l }); -} -function Fu3(u, e3, n) { - let { tokenPos: i, linePos: t12, colPos: o2 } = u; - return A4(u, e3), P7(u, e3, 77934), (u.token & 134217728) === 134217728 && h2(i, u.line, u.index, 28, U7[u.token & 255]), y3(u, e3, i, t12, o2, { type: "ImportNamespaceSpecifier", local: Yu3(u, e3, n) }); -} -function L1(u, e3) { - return q5(u, e3, 12404), u.token !== 134283267 && d4(u, 103, "Import"), X6(u, e3); -} -function qu3(u, e3, n, i) { - for (A4(u, e3); u.token & 143360; ) { - let { token: t12, tokenValue: o2, tokenPos: l, linePos: f3, colPos: c3 } = u, a = I3(u, e3, 0), g3; - q5(u, e3, 77934) ? ((u.token & 134217728) === 134217728 || u.token === 18 ? d4(u, 104) : U22(u, e3, 16, u.token, 0), o2 = u.tokenValue, g3 = I3(u, e3, 0)) : (U22(u, e3, 16, t12, 0), g3 = a), n && t22(u, e3, n, o2, 8, 0), i.push(y3(u, e3, l, f3, c3, { type: "ImportSpecifier", local: g3, imported: a })), u.token !== 1074790415 && P7(u, e3, 18); - } - return P7(u, e3, 1074790415), i; -} -function Qu3(u, e3, n, i, t12) { - let o2 = Gu2(u, e3, y3(u, e3, n, i, t12, { type: "Identifier", name: "import" }), n, i, t12); - return o2 = N3(u, e3, o2, 0, 0, n, i, t12), o2 = O6(u, e3, 0, 0, n, i, t12, o2), A22(u, e3, o2, n, i, t12); -} -function Zu2(u, e3, n, i, t12) { - let o2 = xu3(u, e3, 0, n, i, t12); - return o2 = N3(u, e3, o2, 0, 0, n, i, t12), u.token === 18 && (o2 = e2(u, e3, 0, n, i, t12, o2)), A22(u, e3, o2, n, i, t12); -} -function I1(u, e3, n) { - let i = u.tokenPos, t12 = u.linePos, o2 = u.colPos; - A4(u, e3 | 32768); - let l = [], f3 = null, c3 = null, a; - if (q5(u, e3 | 32768, 20563)) { - switch (u.token) { - case 86106: { - f3 = i2(u, e3, n, 4, 1, 1, 0, u.tokenPos, u.linePos, u.colPos); - break; - } - case 133: - case 86096: - f3 = p2(u, e3, n, 1, u.tokenPos, u.linePos, u.colPos); - break; - case 209007: - let { tokenPos: g3, linePos: m3, colPos: s3 } = u; - f3 = I3(u, e3, 0); - let { flags: k4 } = u; - k4 & 1 || (u.token === 86106 ? f3 = i2(u, e3, n, 4, 1, 1, 1, g3, m3, s3) : u.token === 67174411 ? (f3 = mu2(u, e3, f3, 1, 1, 0, k4, g3, m3, s3), f3 = N3(u, e3, f3, 0, 0, g3, m3, s3), f3 = O6(u, e3, 0, 0, g3, m3, s3, f3)) : u.token & 143360 && (n && (n = z22(u, e3, u.tokenValue)), f3 = I3(u, e3, 0), f3 = v2(u, e3, n, [f3], 1, g3, m3, s3))); - break; - default: - f3 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos), z7(u, e3 | 32768); - } - return n && l2(u, "default"), y3(u, e3, i, t12, o2, { type: "ExportDefaultDeclaration", declaration: f3 }); - } - switch (u.token) { - case 8457014: { - A4(u, e3); - let k4 = null; - return q5(u, e3, 77934) && (n && l2(u, u.tokenValue), k4 = I3(u, e3, 0)), P7(u, e3, 12404), u.token !== 134283267 && d4(u, 103, "Export"), c3 = X6(u, e3), z7(u, e3 | 32768), y3(u, e3, i, t12, o2, { type: "ExportAllDeclaration", source: c3, exported: k4 }); - } - case 2162700: { - A4(u, e3); - let k4 = [], C6 = []; - for (; u.token & 143360; ) { - let { tokenPos: b5, tokenValue: E6, linePos: w4, colPos: v7 } = u, M8 = I3(u, e3, 0), S6; - u.token === 77934 ? (A4(u, e3), (u.token & 134217728) === 134217728 && d4(u, 104), n && (k4.push(u.tokenValue), C6.push(E6)), S6 = I3(u, e3, 0)) : (n && (k4.push(u.tokenValue), C6.push(u.tokenValue)), S6 = M8), l.push(y3(u, e3, b5, w4, v7, { type: "ExportSpecifier", local: M8, exported: S6 })), u.token !== 1074790415 && P7(u, e3, 18); - } - if (P7(u, e3, 1074790415), q5(u, e3, 12404)) - u.token !== 134283267 && d4(u, 103, "Export"), c3 = X6(u, e3); - else if (n) { - let b5 = 0, E6 = k4.length; - for (; b5 < E6; b5++) - l2(u, k4[b5]); - for (b5 = 0, E6 = C6.length; b5 < E6; b5++) - t1(u, C6[b5]); - } - z7(u, e3 | 32768); - break; - } - case 86096: - f3 = p2(u, e3, n, 2, u.tokenPos, u.linePos, u.colPos); - break; - case 86106: - f3 = i2(u, e3, n, 4, 1, 2, 0, u.tokenPos, u.linePos, u.colPos); - break; - case 241739: - f3 = x22(u, e3, n, 8, 64, u.tokenPos, u.linePos, u.colPos); - break; - case 86092: - f3 = x22(u, e3, n, 16, 64, u.tokenPos, u.linePos, u.colPos); - break; - case 86090: - f3 = _u2(u, e3, n, 64, u.tokenPos, u.linePos, u.colPos); - break; - case 209007: - let { tokenPos: g3, linePos: m3, colPos: s3 } = u; - if (A4(u, e3), !(u.flags & 1) && u.token === 86106) { - f3 = i2(u, e3, n, 4, 1, 2, 1, g3, m3, s3), n && (a = f3.id ? f3.id.name : "", l2(u, a)); - break; - } - default: - d4(u, 28, U7[u.token & 255]); - } - return y3(u, e3, i, t12, o2, { type: "ExportNamedDeclaration", declaration: f3, specifiers: l, source: c3 }); -} -function R6(u, e3, n, i, t12, o2, l, f3) { - let c3 = K5(u, e3, 2, 0, n, i, t12, 1, o2, l, f3); - return c3 = N3(u, e3, c3, t12, 0, o2, l, f3), O6(u, e3, t12, 0, o2, l, f3, c3); -} -function e2(u, e3, n, i, t12, o2, l) { - let f3 = [l]; - for (; q5(u, e3 | 32768, 18); ) - f3.push(R6(u, e3, 1, 0, n, u.tokenPos, u.linePos, u.colPos)); - return y3(u, e3, i, t12, o2, { type: "SequenceExpression", expressions: f3 }); -} -function j6(u, e3, n, i, t12, o2, l) { - let f3 = R6(u, e3, i, 0, n, t12, o2, l); - return u.token === 18 ? e2(u, e3, n, t12, o2, l, f3) : f3; -} -function O6(u, e3, n, i, t12, o2, l, f3) { - let { token: c3 } = u; - if ((c3 & 4194304) === 4194304) { - u.assignable & 2 && d4(u, 24), (!i && c3 === 1077936157 && f3.type === "ArrayExpression" || f3.type === "ObjectExpression") && r(u, f3), A4(u, e3 | 32768); - let a = R6(u, e3, 1, 1, n, u.tokenPos, u.linePos, u.colPos); - return u.assignable = 2, y3(u, e3, t12, o2, l, i ? { type: "AssignmentPattern", left: f3, right: a } : { type: "AssignmentExpression", left: f3, operator: U7[c3 & 255], right: a }); - } - return (c3 & 8454144) === 8454144 && (f3 = n2(u, e3, n, t12, o2, l, 4, c3, f3)), q5(u, e3 | 32768, 22) && (f3 = f2(u, e3, f3, t12, o2, l)), f3; -} -function I22(u, e3, n, i, t12, o2, l, f3) { - let { token: c3 } = u; - A4(u, e3 | 32768); - let a = R6(u, e3, 1, 1, n, u.tokenPos, u.linePos, u.colPos); - return f3 = y3(u, e3, t12, o2, l, i ? { type: "AssignmentPattern", left: f3, right: a } : { type: "AssignmentExpression", left: f3, operator: U7[c3 & 255], right: a }), u.assignable = 2, f3; -} -function f2(u, e3, n, i, t12, o2) { - let l = R6(u, (e3 | 134217728) ^ 134217728, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - P7(u, e3 | 32768, 21), u.assignable = 1; - let f3 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - return u.assignable = 2, y3(u, e3, i, t12, o2, { type: "ConditionalExpression", test: n, consequent: l, alternate: f3 }); -} -function n2(u, e3, n, i, t12, o2, l, f3, c3) { - let a = -((e3 & 134217728) > 0) & 8738868, g3, m3; - for (u.assignable = 2; u.token & 8454144 && (g3 = u.token, m3 = g3 & 3840, (g3 & 524288 && f3 & 268435456 || f3 & 524288 && g3 & 268435456) && d4(u, 160), !(m3 + ((g3 === 8457273) << 8) - ((a === g3) << 12) <= l)); ) - A4(u, e3 | 32768), c3 = y3(u, e3, i, t12, o2, { type: g3 & 524288 || g3 & 268435456 ? "LogicalExpression" : "BinaryExpression", left: c3, right: n2(u, e3, n, u.tokenPos, u.linePos, u.colPos, m3, g3, W5(u, e3, 0, n, 1, u.tokenPos, u.linePos, u.colPos)), operator: U7[g3 & 255] }); - return u.token === 1077936157 && d4(u, 24), c3; -} -function N1(u, e3, n, i, t12, o2, l) { - n || d4(u, 0); - let f3 = u.token; - A4(u, e3 | 32768); - let c3 = W5(u, e3, 0, l, 1, u.tokenPos, u.linePos, u.colPos); - return u.token === 8457273 && d4(u, 31), e3 & 1024 && f3 === 16863278 && (c3.type === "Identifier" ? d4(u, 118) : n1(c3) && d4(u, 124)), u.assignable = 2, y3(u, e3, i, t12, o2, { type: "UnaryExpression", operator: U7[f3 & 255], argument: c3, prefix: true }); -} -function V1(u, e3, n, i, t12, o2, l, f3, c3, a) { - let { token: g3 } = u, m3 = I3(u, e3, o2), { flags: s3 } = u; - if (!(s3 & 1)) { - if (u.token === 86106) - return ue5(u, e3, 1, n, f3, c3, a); - if ((u.token & 143360) === 143360) - return i || d4(u, 0), ie4(u, e3, t12, f3, c3, a); - } - return !l && u.token === 67174411 ? mu2(u, e3, m3, t12, 1, 0, s3, f3, c3, a) : u.token === 10 ? (ou3(u, e3, g3, 1), l && d4(u, 49), K22(u, e3, u.tokenValue, m3, l, t12, 0, f3, c3, a)) : m3; -} -function R1(u, e3, n, i, t12, o2, l) { - if (n && (u.destructible |= 256), e3 & 2097152) { - A4(u, e3 | 32768), e3 & 8388608 && d4(u, 30), i || d4(u, 24), u.token === 22 && d4(u, 121); - let f3 = null, c3 = false; - return u.flags & 1 || (c3 = q5(u, e3 | 32768, 8457014), (u.token & 77824 || c3) && (f3 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos))), u.assignable = 2, y3(u, e3, t12, o2, l, { type: "YieldExpression", argument: f3, delegate: c3 }); - } - return e3 & 1024 && d4(u, 95, "yield"), au3(u, e3, t12, o2, l); -} -function O1(u, e3, n, i, t12, o2, l) { - if (i && (u.destructible |= 128), e3 & 4194304 || e3 & 2048 && e3 & 8192) { - n && d4(u, 0), e3 & 8388608 && h2(u.index, u.line, u.index, 29), A4(u, e3 | 32768); - let f3 = W5(u, e3, 0, 0, 1, u.tokenPos, u.linePos, u.colPos); - return u.token === 8457273 && d4(u, 31), u.assignable = 2, y3(u, e3, t12, o2, l, { type: "AwaitExpression", argument: f3 }); - } - return e3 & 2048 && d4(u, 96), au3(u, e3, t12, o2, l); -} -function H22(u, e3, n, i, t12, o2) { - let { tokenPos: l, linePos: f3, colPos: c3 } = u; - P7(u, e3 | 32768, 2162700); - let a = [], g3 = e3; - if (u.token !== 1074790415) { - for (; u.token === 134283267; ) { - let { index: m3, tokenPos: s3, tokenValue: k4, token: C6 } = u, b5 = X6(u, e3); - Xu2(u, m3, s3, k4) && (e3 |= 1024, u.flags & 128 && h2(u.index, u.line, u.tokenPos, 64), u.flags & 64 && h2(u.index, u.line, u.tokenPos, 8)), a.push(fu2(u, e3, b5, C6, s3, u.linePos, u.colPos)); - } - e3 & 1024 && (t12 && ((t12 & 537079808) === 537079808 && d4(u, 116), (t12 & 36864) === 36864 && d4(u, 38)), u.flags & 512 && d4(u, 116), u.flags & 256 && d4(u, 115)), e3 & 64 && n && o2 !== void 0 && !(g3 & 1024) && !(e3 & 8192) && X22(o2); - } - for (u.flags = (u.flags | 512 | 256 | 64) ^ 832, u.destructible = (u.destructible | 256) ^ 256; u.token !== 1074790415; ) - a.push(S22(u, e3, n, 4, {})); - return P7(u, i & 24 ? e3 | 32768 : e3, 1074790415), u.flags &= -193, u.token === 1077936157 && d4(u, 24), y3(u, e3, l, f3, c3, { type: "BlockStatement", body: a }); -} -function U1(u, e3, n, i, t12) { - switch (A4(u, e3), u.token) { - case 67108991: - d4(u, 162); - case 67174411: { - e3 & 524288 || d4(u, 26), e3 & 16384 && d4(u, 27), u.assignable = 2; - break; - } - case 69271571: - case 67108877: { - e3 & 262144 || d4(u, 27), e3 & 16384 && d4(u, 27), u.assignable = 1; - break; - } - default: - d4(u, 28, "super"); - } - return y3(u, e3, n, i, t12, { type: "Super" }); -} -function W5(u, e3, n, i, t12, o2, l, f3) { - let c3 = K5(u, e3, 2, 0, n, 0, i, t12, o2, l, f3); - return N3(u, e3, c3, i, 0, o2, l, f3); -} -function M1(u, e3, n, i, t12, o2) { - u.assignable & 2 && d4(u, 53); - let { token: l } = u; - return A4(u, e3), u.assignable = 2, y3(u, e3, i, t12, o2, { type: "UpdateExpression", argument: n, operator: U7[l & 255], prefix: false }); -} -function N3(u, e3, n, i, t12, o2, l, f3) { - if ((u.token & 33619968) === 33619968 && !(u.flags & 1)) - n = M1(u, e3, n, o2, l, f3); - else if ((u.token & 67108864) === 67108864) { - switch (e3 = (e3 | 134217728) ^ 134217728, u.token) { - case 67108877: { - A4(u, (e3 | 1073741824 | 8192) ^ 8192), u.assignable = 1; - let c3 = ru3(u, e3); - n = y3(u, e3, o2, l, f3, { type: "MemberExpression", object: n, computed: false, property: c3 }); - break; - } - case 69271571: { - let c3 = false; - (u.flags & 2048) === 2048 && (c3 = true, u.flags = (u.flags | 2048) ^ 2048), A4(u, e3 | 32768); - let { tokenPos: a, linePos: g3, colPos: m3 } = u, s3 = j6(u, e3, i, 1, a, g3, m3); - P7(u, e3, 20), u.assignable = 1, n = y3(u, e3, o2, l, f3, { type: "MemberExpression", object: n, computed: true, property: s3 }), c3 && (u.flags |= 2048); - break; - } - case 67174411: { - if ((u.flags & 1024) === 1024) - return u.flags = (u.flags | 1024) ^ 1024, n; - let c3 = false; - (u.flags & 2048) === 2048 && (c3 = true, u.flags = (u.flags | 2048) ^ 2048); - let a = su3(u, e3, i); - u.assignable = 2, n = y3(u, e3, o2, l, f3, { type: "CallExpression", callee: n, arguments: a }), c3 && (u.flags |= 2048); - break; - } - case 67108991: { - A4(u, (e3 | 1073741824 | 8192) ^ 8192), u.flags |= 2048, u.assignable = 2, n = J1(u, e3, n, o2, l, f3); - break; - } - default: - (u.flags & 2048) === 2048 && d4(u, 161), u.assignable = 2, n = y3(u, e3, o2, l, f3, { type: "TaggedTemplateExpression", tag: n, quasi: u.token === 67174408 ? du2(u, e3 | 65536) : cu2(u, e3, u.tokenPos, u.linePos, u.colPos) }); - } - n = N3(u, e3, n, 0, 1, o2, l, f3); - } - return t12 === 0 && (u.flags & 2048) === 2048 && (u.flags = (u.flags | 2048) ^ 2048, n = y3(u, e3, o2, l, f3, { type: "ChainExpression", expression: n })), n; -} -function J1(u, e3, n, i, t12, o2) { - let l = false, f3; - if ((u.token === 69271571 || u.token === 67174411) && (u.flags & 2048) === 2048 && (l = true, u.flags = (u.flags | 2048) ^ 2048), u.token === 69271571) { - A4(u, e3 | 32768); - let { tokenPos: c3, linePos: a, colPos: g3 } = u, m3 = j6(u, e3, 0, 1, c3, a, g3); - P7(u, e3, 20), u.assignable = 2, f3 = y3(u, e3, i, t12, o2, { type: "MemberExpression", object: n, computed: true, optional: true, property: m3 }); - } else if (u.token === 67174411) { - let c3 = su3(u, e3, 0); - u.assignable = 2, f3 = y3(u, e3, i, t12, o2, { type: "CallExpression", callee: n, arguments: c3, optional: true }); - } else { - u.token & 143360 || d4(u, 155); - let c3 = I3(u, e3, 0); - u.assignable = 2, f3 = y3(u, e3, i, t12, o2, { type: "MemberExpression", object: n, computed: false, optional: true, property: c3 }); - } - return l && (u.flags |= 2048), f3; -} -function ru3(u, e3) { - return !(u.token & 143360) && u.token !== 131 && d4(u, 155), e3 & 1 && u.token === 131 ? j22(u, e3, u.tokenPos, u.linePos, u.colPos) : I3(u, e3, 0); -} -function j1(u, e3, n, i, t12, o2, l) { - n && d4(u, 54), i || d4(u, 0); - let { token: f3 } = u; - A4(u, e3 | 32768); - let c3 = W5(u, e3, 0, 0, 1, u.tokenPos, u.linePos, u.colPos); - return u.assignable & 2 && d4(u, 53), u.assignable = 2, y3(u, e3, t12, o2, l, { type: "UpdateExpression", argument: c3, operator: U7[f3 & 255], prefix: true }); -} -function K5(u, e3, n, i, t12, o2, l, f3, c3, a, g3) { - if ((u.token & 143360) === 143360) { - switch (u.token) { - case 209008: - return O1(u, e3, i, l, c3, a, g3); - case 241773: - return R1(u, e3, l, t12, c3, a, g3); - case 209007: - return V1(u, e3, l, f3, t12, o2, i, c3, a, g3); - } - let { token: m3, tokenValue: s3 } = u, k4 = I3(u, e3 | 65536, o2); - return u.token === 10 ? (f3 || d4(u, 0), ou3(u, e3, m3, 1), K22(u, e3, s3, k4, i, t12, 0, c3, a, g3)) : (e3 & 16384 && m3 === 537079928 && d4(u, 127), m3 === 241739 && (e3 & 1024 && d4(u, 110), n & 24 && d4(u, 98)), u.assignable = e3 & 1024 && (m3 & 537079808) === 537079808 ? 2 : 1, k4); - } - if ((u.token & 134217728) === 134217728) - return X6(u, e3); - switch (u.token) { - case 33619995: - case 33619996: - return j1(u, e3, i, f3, c3, a, g3); - case 16863278: - case 16842800: - case 16842801: - case 25233970: - case 25233971: - case 16863277: - case 16863279: - return N1(u, e3, f3, c3, a, g3, l); - case 86106: - return ue5(u, e3, 0, l, c3, a, g3); - case 2162700: - return W1(u, e3, t12 ? 0 : 1, l, c3, a, g3); - case 69271571: - return $1(u, e3, t12 ? 0 : 1, l, c3, a, g3); - case 67174411: - return Y1(u, e3, t12, 1, 0, c3, a, g3); - case 86021: - case 86022: - case 86023: - return H1(u, e3, c3, a, g3); - case 86113: - return K1(u, e3); - case 65540: - return r1(u, e3, c3, a, g3); - case 133: - case 86096: - return G1(u, e3, l, c3, a, g3); - case 86111: - return U1(u, e3, c3, a, g3); - case 67174409: - return cu2(u, e3, c3, a, g3); - case 67174408: - return du2(u, e3); - case 86109: - return Q1(u, e3, l, c3, a, g3); - case 134283389: - return pu2(u, e3, c3, a, g3); - case 131: - return j22(u, e3, c3, a, g3); - case 86108: - return X1(u, e3, i, l, c3, a, g3); - case 8456258: - if (e3 & 16) - return yu2(u, e3, 1, c3, a, g3); - default: - if (tu3(e3, u.token)) - return au3(u, e3, c3, a, g3); - d4(u, 28, U7[u.token & 255]); - } -} -function X1(u, e3, n, i, t12, o2, l) { - let f3 = I3(u, e3, 0); - return u.token === 67108877 ? Gu2(u, e3, f3, t12, o2, l) : (n && d4(u, 138), f3 = xu3(u, e3, i, t12, o2, l), u.assignable = 2, N3(u, e3, f3, i, 0, t12, o2, l)); -} -function Gu2(u, e3, n, i, t12, o2) { - return e3 & 2048 || d4(u, 164), A4(u, e3), u.token !== 143495 && u.tokenValue !== "meta" && d4(u, 28, U7[u.token & 255]), u.assignable = 2, y3(u, e3, i, t12, o2, { type: "MetaProperty", meta: n, property: I3(u, e3, 0) }); -} -function xu3(u, e3, n, i, t12, o2) { - P7(u, e3 | 32768, 67174411), u.token === 14 && d4(u, 139); - let l = R6(u, e3, 1, 0, n, u.tokenPos, u.linePos, u.colPos); - return P7(u, e3, 16), y3(u, e3, i, t12, o2, { type: "ImportExpression", source: l }); -} -function pu2(u, e3, n, i, t12) { - let { tokenRaw: o2, tokenValue: l } = u; - return A4(u, e3), u.assignable = 2, y3(u, e3, n, i, t12, e3 & 512 ? { type: "Literal", value: l, bigint: o2.slice(0, -1), raw: o2 } : { type: "Literal", value: l, bigint: o2.slice(0, -1) }); -} -function cu2(u, e3, n, i, t12) { - u.assignable = 2; - let { tokenValue: o2, tokenRaw: l, tokenPos: f3, linePos: c3, colPos: a } = u; - P7(u, e3, 67174409); - let g3 = [V22(u, e3, o2, l, f3, c3, a, true)]; - return y3(u, e3, n, i, t12, { type: "TemplateLiteral", expressions: [], quasis: g3 }); -} -function du2(u, e3) { - e3 = (e3 | 134217728) ^ 134217728; - let { tokenValue: n, tokenRaw: i, tokenPos: t12, linePos: o2, colPos: l } = u; - P7(u, e3 | 32768, 67174408); - let f3 = [V22(u, e3, n, i, t12, o2, l, false)], c3 = [j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos)]; - for (u.token !== 1074790415 && d4(u, 81); (u.token = re7(u, e3)) !== 67174409; ) { - let { tokenValue: a, tokenRaw: g3, tokenPos: m3, linePos: s3, colPos: k4 } = u; - P7(u, e3 | 32768, 67174408), f3.push(V22(u, e3, a, g3, m3, s3, k4, false)), c3.push(j6(u, e3, 0, 1, u.tokenPos, u.linePos, u.colPos)), u.token !== 1074790415 && d4(u, 81); - } - { - let { tokenValue: a, tokenRaw: g3, tokenPos: m3, linePos: s3, colPos: k4 } = u; - P7(u, e3, 67174409), f3.push(V22(u, e3, a, g3, m3, s3, k4, true)); - } - return y3(u, e3, t12, o2, l, { type: "TemplateLiteral", expressions: c3, quasis: f3 }); -} -function V22(u, e3, n, i, t12, o2, l, f3) { - let c3 = y3(u, e3, t12, o2, l, { type: "TemplateElement", value: { cooked: n, raw: i }, tail: f3 }), a = f3 ? 1 : 2; - return e3 & 2 && (c3.start += 1, c3.range[0] += 1, c3.end -= a, c3.range[1] -= a), e3 & 4 && (c3.loc.start.column += 1, c3.loc.end.column -= a), c3; -} -function z1(u, e3, n, i, t12) { - e3 = (e3 | 134217728) ^ 134217728, P7(u, e3 | 32768, 14); - let o2 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - return u.assignable = 1, y3(u, e3, n, i, t12, { type: "SpreadElement", argument: o2 }); -} -function su3(u, e3, n) { - A4(u, e3 | 32768); - let i = []; - if (u.token === 16) - return A4(u, e3), i; - for (; u.token !== 16 && (u.token === 14 ? i.push(z1(u, e3, u.tokenPos, u.linePos, u.colPos)) : i.push(R6(u, e3, 1, 0, n, u.tokenPos, u.linePos, u.colPos)), !(u.token !== 18 || (A4(u, e3 | 32768), u.token === 16))); ) - ; - return P7(u, e3, 16), i; -} -function I3(u, e3, n) { - let { tokenValue: i, tokenPos: t12, linePos: o2, colPos: l } = u; - return A4(u, e3), y3(u, e3, t12, o2, l, e3 & 268435456 ? { type: "Identifier", name: i, pattern: n === 1 } : { type: "Identifier", name: i }); -} -function X6(u, e3) { - let { tokenValue: n, tokenRaw: i, tokenPos: t12, linePos: o2, colPos: l } = u; - return u.token === 134283389 ? pu2(u, e3, t12, o2, l) : (A4(u, e3), u.assignable = 2, y3(u, e3, t12, o2, l, e3 & 512 ? { type: "Literal", value: n, raw: i } : { type: "Literal", value: n })); -} -function H1(u, e3, n, i, t12) { - let o2 = U7[u.token & 255], l = u.token === 86023 ? null : o2 === "true"; - return A4(u, e3), u.assignable = 2, y3(u, e3, n, i, t12, e3 & 512 ? { type: "Literal", value: l, raw: o2 } : { type: "Literal", value: l }); -} -function K1(u, e3) { - let { tokenPos: n, linePos: i, colPos: t12 } = u; - return A4(u, e3), u.assignable = 2, y3(u, e3, n, i, t12, { type: "ThisExpression" }); -} -function i2(u, e3, n, i, t12, o2, l, f3, c3, a) { - A4(u, e3 | 32768); - let g3 = t12 ? iu3(u, e3, 8457014) : 0, m3 = null, s3, k4 = n ? s22() : void 0; - if (u.token === 67174411) - o2 & 1 || d4(u, 37, "Function"); - else { - let E6 = i & 4 && (!(e3 & 8192) || !(e3 & 2048)) ? 4 : 64; - zu3(u, e3 | (e3 & 3072) << 11, u.token), n && (E6 & 4 ? $u2(u, e3, n, u.tokenValue, E6) : t22(u, e3, n, u.tokenValue, E6, i), k4 = J5(k4, 256), o2 && o2 & 2 && l2(u, u.tokenValue)), s3 = u.token, u.token & 143360 ? m3 = I3(u, e3, 0) : d4(u, 28, U7[u.token & 255]); - } - e3 = (e3 | 32243712) ^ 32243712 | 67108864 | l * 2 + g3 << 21 | (g3 ? 0 : 1073741824), n && (k4 = J5(k4, 512)); - let C6 = ne7(u, e3 | 8388608, k4, 0, 1), b5 = H22(u, (e3 | 8192 | 4096 | 131072) ^ 143360, n ? J5(k4, 128) : k4, 8, s3, n ? k4.scopeError : void 0); - return y3(u, e3, f3, c3, a, { type: "FunctionDeclaration", id: m3, params: C6, body: b5, async: l === 1, generator: g3 === 1 }); -} -function ue5(u, e3, n, i, t12, o2, l) { - A4(u, e3 | 32768); - let f3 = iu3(u, e3, 8457014), c3 = n * 2 + f3 << 21, a = null, g3, m3 = e3 & 64 ? s22() : void 0; - (u.token & 176128) > 0 && (zu3(u, (e3 | 32243712) ^ 32243712 | c3, u.token), m3 && (m3 = J5(m3, 256)), g3 = u.token, a = I3(u, e3, 0)), e3 = (e3 | 32243712) ^ 32243712 | 67108864 | c3 | (f3 ? 0 : 1073741824), m3 && (m3 = J5(m3, 512)); - let s3 = ne7(u, e3 | 8388608, m3, i, 1), k4 = H22(u, e3 & -134377473, m3 && J5(m3, 128), 0, g3, void 0); - return u.assignable = 2, y3(u, e3, t12, o2, l, { type: "FunctionExpression", id: a, params: s3, body: k4, async: n === 1, generator: f3 === 1 }); -} -function $1(u, e3, n, i, t12, o2, l) { - let f3 = _4(u, e3, void 0, n, i, 0, 2, 0, t12, o2, l); - return e3 & 256 && u.destructible & 64 && d4(u, 61), u.destructible & 8 && d4(u, 60), f3; -} -function _4(u, e3, n, i, t12, o2, l, f3, c3, a, g3) { - A4(u, e3 | 32768); - let m3 = [], s3 = 0; - for (e3 = (e3 | 134217728) ^ 134217728; u.token !== 20; ) - if (q5(u, e3 | 32768, 18)) - m3.push(null); - else { - let C6, { token: b5, tokenPos: E6, linePos: w4, colPos: v7, tokenValue: M8 } = u; - if (b5 & 143360) - if (C6 = K5(u, e3, l, 0, 1, 0, t12, 1, E6, w4, v7), u.token === 1077936157) { - u.assignable & 2 && d4(u, 24), A4(u, e3 | 32768), n && u2(u, e3, n, M8, l, f3); - let S6 = R6(u, e3, 1, 1, t12, u.tokenPos, u.linePos, u.colPos); - C6 = y3(u, e3, E6, w4, v7, o2 ? { type: "AssignmentPattern", left: C6, right: S6 } : { type: "AssignmentExpression", operator: "=", left: C6, right: S6 }), s3 |= u.destructible & 256 ? 256 : 0 | u.destructible & 128 ? 128 : 0; - } else - u.token === 18 || u.token === 20 ? (u.assignable & 2 ? s3 |= 16 : n && u2(u, e3, n, M8, l, f3), s3 |= u.destructible & 256 ? 256 : 0 | u.destructible & 128 ? 128 : 0) : (s3 |= l & 1 ? 32 : l & 2 ? 0 : 16, C6 = N3(u, e3, C6, t12, 0, E6, w4, v7), u.token !== 18 && u.token !== 20 ? (u.token !== 1077936157 && (s3 |= 16), C6 = O6(u, e3, t12, o2, E6, w4, v7, C6)) : u.token !== 1077936157 && (s3 |= u.assignable & 2 ? 16 : 32)); - else - b5 & 2097152 ? (C6 = u.token === 2162700 ? Y8(u, e3, n, 0, t12, o2, l, f3, E6, w4, v7) : _4(u, e3, n, 0, t12, o2, l, f3, E6, w4, v7), s3 |= u.destructible, u.assignable = u.destructible & 16 ? 2 : 1, u.token === 18 || u.token === 20 ? u.assignable & 2 && (s3 |= 16) : u.destructible & 8 ? d4(u, 69) : (C6 = N3(u, e3, C6, t12, 0, E6, w4, v7), s3 = u.assignable & 2 ? 16 : 0, u.token !== 18 && u.token !== 20 ? C6 = O6(u, e3, t12, o2, E6, w4, v7, C6) : u.token !== 1077936157 && (s3 |= u.assignable & 2 ? 16 : 32))) : b5 === 14 ? (C6 = b22(u, e3, n, 20, l, f3, 0, t12, o2, E6, w4, v7), s3 |= u.destructible, u.token !== 18 && u.token !== 20 && d4(u, 28, U7[u.token & 255])) : (C6 = W5(u, e3, 1, 0, 1, E6, w4, v7), u.token !== 18 && u.token !== 20 ? (C6 = O6(u, e3, t12, o2, E6, w4, v7, C6), !(l & 3) && b5 === 67174411 && (s3 |= 16)) : u.assignable & 2 ? s3 |= 16 : b5 === 67174411 && (s3 |= u.assignable & 1 && l & 3 ? 32 : 16)); - if (m3.push(C6), q5(u, e3 | 32768, 18)) { - if (u.token === 20) - break; - } else - break; - } - P7(u, e3, 20); - let k4 = y3(u, e3, c3, a, g3, { type: o2 ? "ArrayPattern" : "ArrayExpression", elements: m3 }); - return !i && u.token & 4194304 ? ee7(u, e3, s3, t12, o2, c3, a, g3, k4) : (u.destructible = s3, k4); -} -function ee7(u, e3, n, i, t12, o2, l, f3, c3) { - u.token !== 1077936157 && d4(u, 24), A4(u, e3 | 32768), n & 16 && d4(u, 24), t12 || r(u, c3); - let { tokenPos: a, linePos: g3, colPos: m3 } = u, s3 = R6(u, e3, 1, 1, i, a, g3, m3); - return u.destructible = (n | 64 | 8) ^ 72 | (u.destructible & 128 ? 128 : 0) | (u.destructible & 256 ? 256 : 0), y3(u, e3, o2, l, f3, t12 ? { type: "AssignmentPattern", left: c3, right: s3 } : { type: "AssignmentExpression", left: c3, operator: "=", right: s3 }); -} -function b22(u, e3, n, i, t12, o2, l, f3, c3, a, g3, m3) { - A4(u, e3 | 32768); - let s3 = null, k4 = 0, { token: C6, tokenValue: b5, tokenPos: E6, linePos: w4, colPos: v7 } = u; - if (C6 & 143360) - u.assignable = 1, s3 = K5(u, e3, t12, 0, 1, 0, f3, 1, E6, w4, v7), C6 = u.token, s3 = N3(u, e3, s3, f3, 0, E6, w4, v7), u.token !== 18 && u.token !== i && (u.assignable & 2 && u.token === 1077936157 && d4(u, 69), k4 |= 16, s3 = O6(u, e3, f3, c3, E6, w4, v7, s3)), u.assignable & 2 ? k4 |= 16 : C6 === i || C6 === 18 ? n && u2(u, e3, n, b5, t12, o2) : k4 |= 32, k4 |= u.destructible & 128 ? 128 : 0; - else if (C6 === i) - d4(u, 39); - else if (C6 & 2097152) - s3 = u.token === 2162700 ? Y8(u, e3, n, 1, f3, c3, t12, o2, E6, w4, v7) : _4(u, e3, n, 1, f3, c3, t12, o2, E6, w4, v7), C6 = u.token, C6 !== 1077936157 && C6 !== i && C6 !== 18 ? (u.destructible & 8 && d4(u, 69), s3 = N3(u, e3, s3, f3, 0, E6, w4, v7), k4 |= u.assignable & 2 ? 16 : 0, (u.token & 4194304) === 4194304 ? (u.token !== 1077936157 && (k4 |= 16), s3 = O6(u, e3, f3, c3, E6, w4, v7, s3)) : ((u.token & 8454144) === 8454144 && (s3 = n2(u, e3, 1, E6, w4, v7, 4, C6, s3)), q5(u, e3 | 32768, 22) && (s3 = f2(u, e3, s3, E6, w4, v7)), k4 |= u.assignable & 2 ? 16 : 32)) : k4 |= i === 1074790415 && C6 !== 1077936157 ? 16 : u.destructible; - else { - k4 |= 32, s3 = W5(u, e3, 1, f3, 1, u.tokenPos, u.linePos, u.colPos); - let { token: M8, tokenPos: S6, linePos: V7, colPos: D6 } = u; - return M8 === 1077936157 && M8 !== i && M8 !== 18 ? (u.assignable & 2 && d4(u, 24), s3 = O6(u, e3, f3, c3, S6, V7, D6, s3), k4 |= 16) : (M8 === 18 ? k4 |= 16 : M8 !== i && (s3 = O6(u, e3, f3, c3, S6, V7, D6, s3)), k4 |= u.assignable & 1 ? 32 : 16), u.destructible = k4, u.token !== i && u.token !== 18 && d4(u, 156), y3(u, e3, a, g3, m3, { type: c3 ? "RestElement" : "SpreadElement", argument: s3 }); - } - if (u.token !== i) - if (t12 & 1 && (k4 |= l ? 16 : 32), q5(u, e3 | 32768, 1077936157)) { - k4 & 16 && d4(u, 24), r(u, s3); - let M8 = R6(u, e3, 1, 1, f3, u.tokenPos, u.linePos, u.colPos); - s3 = y3(u, e3, E6, w4, v7, c3 ? { type: "AssignmentPattern", left: s3, right: M8 } : { type: "AssignmentExpression", left: s3, operator: "=", right: M8 }), k4 = 16; - } else - k4 |= 16; - return u.destructible = k4, y3(u, e3, a, g3, m3, { type: c3 ? "RestElement" : "SpreadElement", argument: s3 }); -} -function Z7(u, e3, n, i, t12, o2, l) { - let f3 = n & 64 ? 14680064 : 31981568; - e3 = (e3 | f3) ^ f3 | (n & 88) << 18 | 100925440; - let c3 = e3 & 64 ? J5(s22(), 512) : void 0, a = _1(u, e3 | 8388608, c3, n, 1, i); - c3 && (c3 = J5(c3, 128)); - let g3 = H22(u, e3 & -134230017, c3, 0, void 0, void 0); - return y3(u, e3, t12, o2, l, { type: "FunctionExpression", params: a, body: g3, async: (n & 16) > 0, generator: (n & 8) > 0, id: null }); -} -function W1(u, e3, n, i, t12, o2, l) { - let f3 = Y8(u, e3, void 0, n, i, 0, 2, 0, t12, o2, l); - return e3 & 256 && u.destructible & 64 && d4(u, 61), u.destructible & 8 && d4(u, 60), f3; -} -function Y8(u, e3, n, i, t12, o2, l, f3, c3, a, g3) { - A4(u, e3); - let m3 = [], s3 = 0, k4 = 0; - for (e3 = (e3 | 134217728) ^ 134217728; u.token !== 1074790415; ) { - let { token: b5, tokenValue: E6, linePos: w4, colPos: v7, tokenPos: M8 } = u; - if (b5 === 14) - m3.push(b22(u, e3, n, 1074790415, l, f3, 0, t12, o2, M8, w4, v7)); - else { - let S6 = 0, V7 = null, D6, Q7 = u.token; - if (u.token & 143360 || u.token === 121) - if (V7 = I3(u, e3, 0), u.token === 18 || u.token === 1074790415 || u.token === 1077936157) - if (S6 |= 4, e3 & 1024 && (b5 & 537079808) === 537079808 ? s3 |= 16 : U22(u, e3, l, b5, 0), n && u2(u, e3, n, E6, l, f3), q5(u, e3 | 32768, 1077936157)) { - s3 |= 8; - let B8 = R6(u, e3, 1, 1, t12, u.tokenPos, u.linePos, u.colPos); - s3 |= u.destructible & 256 ? 256 : 0 | u.destructible & 128 ? 128 : 0, D6 = y3(u, e3, M8, w4, v7, { type: "AssignmentPattern", left: e3 & -2147483648 ? Object.assign({}, V7) : V7, right: B8 }); - } else - s3 |= (b5 === 209008 ? 128 : 0) | (b5 === 121 ? 16 : 0), D6 = e3 & -2147483648 ? Object.assign({}, V7) : V7; - else if (q5(u, e3 | 32768, 21)) { - let { tokenPos: B8, linePos: F5, colPos: T4 } = u; - if (E6 === "__proto__" && k4++, u.token & 143360) { - let o22 = u.token, m22 = u.tokenValue; - s3 |= Q7 === 121 ? 16 : 0, D6 = K5(u, e3, l, 0, 1, 0, t12, 1, B8, F5, T4); - let { token: x7 } = u; - D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), u.token === 18 || u.token === 1074790415 ? x7 === 1077936157 || x7 === 1074790415 || x7 === 18 ? (s3 |= u.destructible & 128 ? 128 : 0, u.assignable & 2 ? s3 |= 16 : n && (o22 & 143360) === 143360 && u2(u, e3, n, m22, l, f3)) : s3 |= u.assignable & 1 ? 32 : 16 : (u.token & 4194304) === 4194304 ? (u.assignable & 2 ? s3 |= 16 : x7 !== 1077936157 ? s3 |= 32 : n && u2(u, e3, n, m22, l, f3), D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)) : (s3 |= 16, (u.token & 8454144) === 8454144 && (D6 = n2(u, e3, 1, B8, F5, T4, 4, x7, D6)), q5(u, e3 | 32768, 22) && (D6 = f2(u, e3, D6, B8, F5, T4))); - } else - (u.token & 2097152) === 2097152 ? (D6 = u.token === 69271571 ? _4(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4) : Y8(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4), s3 = u.destructible, u.assignable = s3 & 16 ? 2 : 1, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : u.destructible & 8 ? d4(u, 69) : (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 2 ? 16 : 0, (u.token & 4194304) === 4194304 ? D6 = I22(u, e3, t12, o2, B8, F5, T4, D6) : ((u.token & 8454144) === 8454144 && (D6 = n2(u, e3, 1, B8, F5, T4, 4, b5, D6)), q5(u, e3 | 32768, 22) && (D6 = f2(u, e3, D6, B8, F5, T4)), s3 |= u.assignable & 2 ? 16 : 32))) : (D6 = W5(u, e3, 1, t12, 1, B8, F5, T4), s3 |= u.assignable & 1 ? 32 : 16, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 2 ? 16 : 0, u.token !== 18 && b5 !== 1074790415 && (u.token !== 1077936157 && (s3 |= 16), D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)))); - } else - u.token === 69271571 ? (s3 |= 16, b5 === 209007 && (S6 |= 16), S6 |= (b5 === 12402 ? 256 : b5 === 12403 ? 512 : 1) | 2, V7 = g2(u, e3, t12), s3 |= u.assignable, D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : u.token & 143360 ? (s3 |= 16, b5 === 121 && d4(u, 93), b5 === 209007 && (u.flags & 1 && d4(u, 129), S6 |= 16), V7 = I3(u, e3, 0), S6 |= b5 === 12402 ? 256 : b5 === 12403 ? 512 : 1, D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : u.token === 67174411 ? (s3 |= 16, S6 |= 1, D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : u.token === 8457014 ? (s3 |= 16, b5 === 12402 ? d4(u, 40) : b5 === 12403 ? d4(u, 41) : b5 === 143483 && d4(u, 93), A4(u, e3), S6 |= 9 | (b5 === 209007 ? 16 : 0), u.token & 143360 ? V7 = I3(u, e3, 0) : (u.token & 134217728) === 134217728 ? V7 = X6(u, e3) : u.token === 69271571 ? (S6 |= 2, V7 = g2(u, e3, t12), s3 |= u.assignable) : d4(u, 28, U7[u.token & 255]), D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : (u.token & 134217728) === 134217728 ? (b5 === 209007 && (S6 |= 16), S6 |= b5 === 12402 ? 256 : b5 === 12403 ? 512 : 1, s3 |= 16, V7 = X6(u, e3), D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : d4(u, 130); - else if ((u.token & 134217728) === 134217728) - if (V7 = X6(u, e3), u.token === 21) { - P7(u, e3 | 32768, 21); - let { tokenPos: B8, linePos: F5, colPos: T4 } = u; - if (E6 === "__proto__" && k4++, u.token & 143360) { - D6 = K5(u, e3, l, 0, 1, 0, t12, 1, B8, F5, T4); - let { token: o22, tokenValue: m22 } = u; - D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), u.token === 18 || u.token === 1074790415 ? o22 === 1077936157 || o22 === 1074790415 || o22 === 18 ? u.assignable & 2 ? s3 |= 16 : n && u2(u, e3, n, m22, l, f3) : s3 |= u.assignable & 1 ? 32 : 16 : u.token === 1077936157 ? (u.assignable & 2 && (s3 |= 16), D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)) : (s3 |= 16, D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)); - } else - (u.token & 2097152) === 2097152 ? (D6 = u.token === 69271571 ? _4(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4) : Y8(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4), s3 = u.destructible, u.assignable = s3 & 16 ? 2 : 1, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : (u.destructible & 8) !== 8 && (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 2 ? 16 : 0, (u.token & 4194304) === 4194304 ? D6 = I22(u, e3, t12, o2, B8, F5, T4, D6) : ((u.token & 8454144) === 8454144 && (D6 = n2(u, e3, 1, B8, F5, T4, 4, b5, D6)), q5(u, e3 | 32768, 22) && (D6 = f2(u, e3, D6, B8, F5, T4)), s3 |= u.assignable & 2 ? 16 : 32))) : (D6 = W5(u, e3, 1, 0, 1, B8, F5, T4), s3 |= u.assignable & 1 ? 32 : 16, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 1 ? 0 : 16, u.token !== 18 && u.token !== 1074790415 && (u.token !== 1077936157 && (s3 |= 16), D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)))); - } else - u.token === 67174411 ? (S6 |= 1, D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos), s3 = u.assignable | 16) : d4(u, 131); - else if (u.token === 69271571) - if (V7 = g2(u, e3, t12), s3 |= u.destructible & 256 ? 256 : 0, S6 |= 2, u.token === 21) { - A4(u, e3 | 32768); - let { tokenPos: B8, linePos: F5, colPos: T4, tokenValue: o22, token: m22 } = u; - if (u.token & 143360) { - D6 = K5(u, e3, l, 0, 1, 0, t12, 1, B8, F5, T4); - let { token: x7 } = u; - D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), (u.token & 4194304) === 4194304 ? (s3 |= u.assignable & 2 ? 16 : x7 === 1077936157 ? 0 : 32, D6 = I22(u, e3, t12, o2, B8, F5, T4, D6)) : u.token === 18 || u.token === 1074790415 ? x7 === 1077936157 || x7 === 1074790415 || x7 === 18 ? u.assignable & 2 ? s3 |= 16 : n && (m22 & 143360) === 143360 && u2(u, e3, n, o22, l, f3) : s3 |= u.assignable & 1 ? 32 : 16 : (s3 |= 16, D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)); - } else - (u.token & 2097152) === 2097152 ? (D6 = u.token === 69271571 ? _4(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4) : Y8(u, e3, n, 0, t12, o2, l, f3, B8, F5, T4), s3 = u.destructible, u.assignable = s3 & 16 ? 2 : 1, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : s3 & 8 ? d4(u, 60) : (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 2 ? s3 | 16 : 0, (u.token & 4194304) === 4194304 ? (u.token !== 1077936157 && (s3 |= 16), D6 = I22(u, e3, t12, o2, B8, F5, T4, D6)) : ((u.token & 8454144) === 8454144 && (D6 = n2(u, e3, 1, B8, F5, T4, 4, b5, D6)), q5(u, e3 | 32768, 22) && (D6 = f2(u, e3, D6, B8, F5, T4)), s3 |= u.assignable & 2 ? 16 : 32))) : (D6 = W5(u, e3, 1, 0, 1, B8, F5, T4), s3 |= u.assignable & 1 ? 32 : 16, u.token === 18 || u.token === 1074790415 ? u.assignable & 2 && (s3 |= 16) : (D6 = N3(u, e3, D6, t12, 0, B8, F5, T4), s3 = u.assignable & 1 ? 0 : 16, u.token !== 18 && u.token !== 1074790415 && (u.token !== 1077936157 && (s3 |= 16), D6 = O6(u, e3, t12, o2, B8, F5, T4, D6)))); - } else - u.token === 67174411 ? (S6 |= 1, D6 = Z7(u, e3, S6, t12, u.tokenPos, w4, v7), s3 = 16) : d4(u, 42); - else if (b5 === 8457014) - if (P7(u, e3 | 32768, 8457014), S6 |= 8, u.token & 143360) { - let { token: B8, line: F5, index: T4 } = u; - V7 = I3(u, e3, 0), S6 |= 1, u.token === 67174411 ? (s3 |= 16, D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : h2(T4, F5, T4, B8 === 209007 ? 44 : B8 === 12402 || u.token === 12403 ? 43 : 45, U7[B8 & 255]); - } else - (u.token & 134217728) === 134217728 ? (s3 |= 16, V7 = X6(u, e3), S6 |= 1, D6 = Z7(u, e3, S6, t12, M8, w4, v7)) : u.token === 69271571 ? (s3 |= 16, S6 |= 3, V7 = g2(u, e3, t12), D6 = Z7(u, e3, S6, t12, u.tokenPos, u.linePos, u.colPos)) : d4(u, 123); - else - d4(u, 28, U7[b5 & 255]); - s3 |= u.destructible & 128 ? 128 : 0, u.destructible = s3, m3.push(y3(u, e3, M8, w4, v7, { type: "Property", key: V7, value: D6, kind: S6 & 768 ? S6 & 512 ? "set" : "get" : "init", computed: (S6 & 2) > 0, method: (S6 & 1) > 0, shorthand: (S6 & 4) > 0 })); - } - if (s3 |= u.destructible, u.token !== 18) - break; - A4(u, e3); - } - P7(u, e3, 1074790415), k4 > 1 && (s3 |= 64); - let C6 = y3(u, e3, c3, a, g3, { type: o2 ? "ObjectPattern" : "ObjectExpression", properties: m3 }); - return !i && u.token & 4194304 ? ee7(u, e3, s3, t12, o2, c3, a, g3, C6) : (u.destructible = s3, C6); -} -function _1(u, e3, n, i, t12, o2) { - P7(u, e3, 67174411); - let l = []; - if (u.flags = (u.flags | 128) ^ 128, u.token === 16) - return i & 512 && d4(u, 35, "Setter", "one", ""), A4(u, e3), l; - i & 256 && d4(u, 35, "Getter", "no", "s"), i & 512 && u.token === 14 && d4(u, 36), e3 = (e3 | 134217728) ^ 134217728; - let f3 = 0, c3 = 0; - for (; u.token !== 18; ) { - let a = null, { tokenPos: g3, linePos: m3, colPos: s3 } = u; - if (u.token & 143360 ? (e3 & 1024 || ((u.token & 36864) === 36864 && (u.flags |= 256), (u.token & 537079808) === 537079808 && (u.flags |= 512)), a = gu2(u, e3, n, i | 1, 0, g3, m3, s3)) : (u.token === 2162700 ? a = Y8(u, e3, n, 1, o2, 1, t12, 0, g3, m3, s3) : u.token === 69271571 ? a = _4(u, e3, n, 1, o2, 1, t12, 0, g3, m3, s3) : u.token === 14 && (a = b22(u, e3, n, 16, t12, 0, 0, o2, 1, g3, m3, s3)), c3 = 1, u.destructible & 48 && d4(u, 48)), u.token === 1077936157) { - A4(u, e3 | 32768), c3 = 1; - let k4 = R6(u, e3, 1, 1, 0, u.tokenPos, u.linePos, u.colPos); - a = y3(u, e3, g3, m3, s3, { type: "AssignmentPattern", left: a, right: k4 }); - } - if (f3++, l.push(a), !q5(u, e3, 18) || u.token === 16) - break; - } - return i & 512 && f3 !== 1 && d4(u, 35, "Setter", "one", ""), n && n.scopeError !== void 0 && X22(n.scopeError), c3 && (u.flags |= 128), P7(u, e3, 16), l; -} -function g2(u, e3, n) { - A4(u, e3 | 32768); - let i = R6(u, (e3 | 134217728) ^ 134217728, 1, 0, n, u.tokenPos, u.linePos, u.colPos); - return P7(u, e3, 20), i; -} -function Y1(u, e3, n, i, t12, o2, l, f3) { - u.flags = (u.flags | 128) ^ 128; - let { tokenPos: c3, linePos: a, colPos: g3 } = u; - A4(u, e3 | 32768 | 1073741824); - let m3 = e3 & 64 ? J5(s22(), 1024) : void 0; - if (e3 = (e3 | 134217728) ^ 134217728, q5(u, e3, 16)) - return J22(u, e3, m3, [], n, 0, o2, l, f3); - let s3 = 0; - u.destructible &= -385; - let k4, C6 = [], b5 = 0, E6 = 0, { tokenPos: w4, linePos: v7, colPos: M8 } = u; - for (u.assignable = 1; u.token !== 16; ) { - let { token: S6, tokenPos: V7, linePos: D6, colPos: Q7 } = u; - if (S6 & 143360) - m3 && t22(u, e3, m3, u.tokenValue, 1, 0), k4 = K5(u, e3, i, 0, 1, 0, 1, 1, V7, D6, Q7), u.token === 16 || u.token === 18 ? u.assignable & 2 ? (s3 |= 16, E6 = 1) : ((S6 & 537079808) === 537079808 || (S6 & 36864) === 36864) && (E6 = 1) : (u.token === 1077936157 ? E6 = 1 : s3 |= 16, k4 = N3(u, e3, k4, 1, 0, V7, D6, Q7), u.token !== 16 && u.token !== 18 && (k4 = O6(u, e3, 1, 0, V7, D6, Q7, k4))); - else if ((S6 & 2097152) === 2097152) - k4 = S6 === 2162700 ? Y8(u, e3 | 1073741824, m3, 0, 1, 0, i, t12, V7, D6, Q7) : _4(u, e3 | 1073741824, m3, 0, 1, 0, i, t12, V7, D6, Q7), s3 |= u.destructible, E6 = 1, u.assignable = 2, u.token !== 16 && u.token !== 18 && (s3 & 8 && d4(u, 119), k4 = N3(u, e3, k4, 0, 0, V7, D6, Q7), s3 |= 16, u.token !== 16 && u.token !== 18 && (k4 = O6(u, e3, 0, 0, V7, D6, Q7, k4))); - else if (S6 === 14) { - k4 = b22(u, e3, m3, 16, i, t12, 0, 1, 0, V7, D6, Q7), u.destructible & 16 && d4(u, 72), E6 = 1, b5 && (u.token === 16 || u.token === 18) && C6.push(k4), s3 |= 8; - break; - } else { - if (s3 |= 16, k4 = R6(u, e3, 1, 0, 1, V7, D6, Q7), b5 && (u.token === 16 || u.token === 18) && C6.push(k4), u.token === 18 && (b5 || (b5 = 1, C6 = [k4])), b5) { - for (; q5(u, e3 | 32768, 18); ) - C6.push(R6(u, e3, 1, 0, 1, u.tokenPos, u.linePos, u.colPos)); - u.assignable = 2, k4 = y3(u, e3, w4, v7, M8, { type: "SequenceExpression", expressions: C6 }); - } - return P7(u, e3, 16), u.destructible = s3, k4; - } - if (b5 && (u.token === 16 || u.token === 18) && C6.push(k4), !q5(u, e3 | 32768, 18)) - break; - if (b5 || (b5 = 1, C6 = [k4]), u.token === 16) { - s3 |= 8; - break; - } - } - return b5 && (u.assignable = 2, k4 = y3(u, e3, w4, v7, M8, { type: "SequenceExpression", expressions: C6 })), P7(u, e3, 16), s3 & 16 && s3 & 8 && d4(u, 146), s3 |= u.destructible & 256 ? 256 : 0 | u.destructible & 128 ? 128 : 0, u.token === 10 ? (s3 & 48 && d4(u, 47), e3 & 4196352 && s3 & 128 && d4(u, 29), e3 & 2098176 && s3 & 256 && d4(u, 30), E6 && (u.flags |= 128), J22(u, e3, m3, b5 ? C6 : [k4], n, 0, o2, l, f3)) : (s3 & 8 && d4(u, 140), u.destructible = (u.destructible | 256) ^ 256 | s3, e3 & 128 ? y3(u, e3, c3, a, g3, { type: "ParenthesizedExpression", expression: k4 }) : k4); -} -function au3(u, e3, n, i, t12) { - let { tokenValue: o2 } = u, l = I3(u, e3, 0); - if (u.assignable = 1, u.token === 10) { - let f3; - return e3 & 64 && (f3 = z22(u, e3, o2)), u.flags = (u.flags | 128) ^ 128, v2(u, e3, f3, [l], 0, n, i, t12); - } - return l; -} -function K22(u, e3, n, i, t12, o2, l, f3, c3, a) { - o2 || d4(u, 55), t12 && d4(u, 49), u.flags &= -129; - let g3 = e3 & 64 ? z22(u, e3, n) : void 0; - return v2(u, e3, g3, [i], l, f3, c3, a); -} -function J22(u, e3, n, i, t12, o2, l, f3, c3) { - t12 || d4(u, 55); - for (let a = 0; a < i.length; ++a) - r(u, i[a]); - return v2(u, e3, n, i, o2, l, f3, c3); -} -function v2(u, e3, n, i, t12, o2, l, f3) { - u.flags & 1 && d4(u, 46), P7(u, e3 | 32768, 10), e3 = (e3 | 15728640) ^ 15728640 | t12 << 22; - let c3 = u.token !== 2162700, a; - if (n && n.scopeError !== void 0 && X22(n.scopeError), c3) - a = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - else { - switch (n && (n = J5(n, 128)), a = H22(u, (e3 | 134221824 | 8192 | 16384) ^ 134246400, n, 16, void 0, void 0), u.token) { - case 69271571: - u.flags & 1 || d4(u, 113); - break; - case 67108877: - case 67174409: - case 22: - d4(u, 114); - case 67174411: - u.flags & 1 || d4(u, 113), u.flags |= 1024; - break; - } - (u.token & 8454144) === 8454144 && !(u.flags & 1) && d4(u, 28, U7[u.token & 255]), (u.token & 33619968) === 33619968 && d4(u, 122); - } - return u.assignable = 2, y3(u, e3, o2, l, f3, { type: "ArrowFunctionExpression", params: i, body: a, async: t12 === 1, expression: c3 }); -} -function ne7(u, e3, n, i, t12) { - P7(u, e3, 67174411), u.flags = (u.flags | 128) ^ 128; - let o2 = []; - if (q5(u, e3, 16)) - return o2; - e3 = (e3 | 134217728) ^ 134217728; - let l = 0; - for (; u.token !== 18; ) { - let f3, { tokenPos: c3, linePos: a, colPos: g3 } = u; - if (u.token & 143360 ? (e3 & 1024 || ((u.token & 36864) === 36864 && (u.flags |= 256), (u.token & 537079808) === 537079808 && (u.flags |= 512)), f3 = gu2(u, e3, n, t12 | 1, 0, c3, a, g3)) : (u.token === 2162700 ? f3 = Y8(u, e3, n, 1, i, 1, t12, 0, c3, a, g3) : u.token === 69271571 ? f3 = _4(u, e3, n, 1, i, 1, t12, 0, c3, a, g3) : u.token === 14 ? f3 = b22(u, e3, n, 16, t12, 0, 0, i, 1, c3, a, g3) : d4(u, 28, U7[u.token & 255]), l = 1, u.destructible & 48 && d4(u, 48)), u.token === 1077936157) { - A4(u, e3 | 32768), l = 1; - let m3 = R6(u, e3, 1, 1, i, u.tokenPos, u.linePos, u.colPos); - f3 = y3(u, e3, c3, a, g3, { type: "AssignmentPattern", left: f3, right: m3 }); - } - if (o2.push(f3), !q5(u, e3, 18) || u.token === 16) - break; - } - return l && (u.flags |= 128), n && (l || e3 & 1024) && n.scopeError !== void 0 && X22(n.scopeError), P7(u, e3, 16), o2; -} -function R22(u, e3, n, i, t12, o2, l) { - let { token: f3 } = u; - if (f3 & 67108864) { - if (f3 === 67108877) { - A4(u, e3 | 1073741824), u.assignable = 1; - let c3 = ru3(u, e3); - return R22(u, e3, y3(u, e3, t12, o2, l, { type: "MemberExpression", object: n, computed: false, property: c3 }), 0, t12, o2, l); - } else if (f3 === 69271571) { - A4(u, e3 | 32768); - let { tokenPos: c3, linePos: a, colPos: g3 } = u, m3 = j6(u, e3, i, 1, c3, a, g3); - return P7(u, e3, 20), u.assignable = 1, R22(u, e3, y3(u, e3, t12, o2, l, { type: "MemberExpression", object: n, computed: true, property: m3 }), 0, t12, o2, l); - } else if (f3 === 67174408 || f3 === 67174409) - return u.assignable = 2, R22(u, e3, y3(u, e3, t12, o2, l, { type: "TaggedTemplateExpression", tag: n, quasi: u.token === 67174408 ? du2(u, e3 | 65536) : cu2(u, e3, u.tokenPos, u.linePos, u.colPos) }), 0, t12, o2, l); - } - return n; -} -function Q1(u, e3, n, i, t12, o2) { - let l = I3(u, e3 | 32768, 0), { tokenPos: f3, linePos: c3, colPos: a } = u; - if (q5(u, e3, 67108877)) { - if (e3 & 67108864 && u.token === 143494) - return u.assignable = 2, Z1(u, e3, l, i, t12, o2); - d4(u, 92); - } - u.assignable = 2, (u.token & 16842752) === 16842752 && d4(u, 63, U7[u.token & 255]); - let g3 = K5(u, e3, 2, 1, 0, 0, n, 1, f3, c3, a); - e3 = (e3 | 134217728) ^ 134217728, u.token === 67108991 && d4(u, 163); - let m3 = R22(u, e3, g3, n, f3, c3, a); - return u.assignable = 2, y3(u, e3, i, t12, o2, { type: "NewExpression", callee: m3, arguments: u.token === 67174411 ? su3(u, e3, n) : [] }); -} -function Z1(u, e3, n, i, t12, o2) { - let l = I3(u, e3, 0); - return y3(u, e3, i, t12, o2, { type: "MetaProperty", meta: n, property: l }); -} -function ie4(u, e3, n, i, t12, o2) { - return u.token === 209008 && d4(u, 29), e3 & 2098176 && u.token === 241773 && d4(u, 30), (u.token & 537079808) === 537079808 && (u.flags |= 512), K22(u, e3, u.tokenValue, I3(u, e3, 0), 0, n, 1, i, t12, o2); -} -function mu2(u, e3, n, i, t12, o2, l, f3, c3, a) { - A4(u, e3 | 32768); - let g3 = e3 & 64 ? J5(s22(), 1024) : void 0; - if (e3 = (e3 | 134217728) ^ 134217728, q5(u, e3, 16)) - return u.token === 10 ? (l & 1 && d4(u, 46), J22(u, e3, g3, [], i, 1, f3, c3, a)) : y3(u, e3, f3, c3, a, { type: "CallExpression", callee: n, arguments: [] }); - let m3 = 0, s3 = null, k4 = 0; - u.destructible = (u.destructible | 256 | 128) ^ 384; - let C6 = []; - for (; u.token !== 16; ) { - let { token: b5, tokenPos: E6, linePos: w4, colPos: v7 } = u; - if (b5 & 143360) - g3 && t22(u, e3, g3, u.tokenValue, t12, 0), s3 = K5(u, e3, t12, 0, 1, 0, 1, 1, E6, w4, v7), u.token === 16 || u.token === 18 ? u.assignable & 2 ? (m3 |= 16, k4 = 1) : (b5 & 537079808) === 537079808 ? u.flags |= 512 : (b5 & 36864) === 36864 && (u.flags |= 256) : (u.token === 1077936157 ? k4 = 1 : m3 |= 16, s3 = N3(u, e3, s3, 1, 0, E6, w4, v7), u.token !== 16 && u.token !== 18 && (s3 = O6(u, e3, 1, 0, E6, w4, v7, s3))); - else if (b5 & 2097152) - s3 = b5 === 2162700 ? Y8(u, e3, g3, 0, 1, 0, t12, o2, E6, w4, v7) : _4(u, e3, g3, 0, 1, 0, t12, o2, E6, w4, v7), m3 |= u.destructible, k4 = 1, u.token !== 16 && u.token !== 18 && (m3 & 8 && d4(u, 119), s3 = N3(u, e3, s3, 0, 0, E6, w4, v7), m3 |= 16, (u.token & 8454144) === 8454144 && (s3 = n2(u, e3, 1, f3, c3, a, 4, b5, s3)), q5(u, e3 | 32768, 22) && (s3 = f2(u, e3, s3, f3, c3, a))); - else if (b5 === 14) - s3 = b22(u, e3, g3, 16, t12, o2, 1, 1, 0, E6, w4, v7), m3 |= (u.token === 16 ? 0 : 16) | u.destructible, k4 = 1; - else { - for (s3 = R6(u, e3, 1, 0, 0, E6, w4, v7), m3 = u.assignable, C6.push(s3); q5(u, e3 | 32768, 18); ) - C6.push(R6(u, e3, 1, 0, 0, E6, w4, v7)); - return m3 |= u.assignable, P7(u, e3, 16), u.destructible = m3 | 16, u.assignable = 2, y3(u, e3, f3, c3, a, { type: "CallExpression", callee: n, arguments: C6 }); - } - if (C6.push(s3), !q5(u, e3 | 32768, 18)) - break; - } - return P7(u, e3, 16), m3 |= u.destructible & 256 ? 256 : 0 | u.destructible & 128 ? 128 : 0, u.token === 10 ? (m3 & 48 && d4(u, 25), (u.flags & 1 || l & 1) && d4(u, 46), m3 & 128 && d4(u, 29), e3 & 2098176 && m3 & 256 && d4(u, 30), k4 && (u.flags |= 128), J22(u, e3, g3, C6, i, 1, f3, c3, a)) : (m3 & 8 && d4(u, 60), u.assignable = 2, y3(u, e3, f3, c3, a, { type: "CallExpression", callee: n, arguments: C6 })); -} -function r1(u, e3, n, i, t12) { - let { tokenRaw: o2, tokenRegExp: l, tokenValue: f3 } = u; - return A4(u, e3), u.assignable = 2, e3 & 512 ? y3(u, e3, n, i, t12, { type: "Literal", value: f3, regex: l, raw: o2 }) : y3(u, e3, n, i, t12, { type: "Literal", value: f3, regex: l }); -} -function p2(u, e3, n, i, t12, o2, l) { - e3 = (e3 | 16777216 | 1024) ^ 16777216; - let f3 = $22(u, e3); - f3.length && (t12 = u.tokenPos, o2 = u.linePos, l = u.colPos), u.leadingDecorators.length && (u.leadingDecorators.push(...f3), f3 = u.leadingDecorators, u.leadingDecorators = []), A4(u, e3); - let c3 = null, a = null, { tokenValue: g3 } = u; - u.token & 4096 && u.token !== 20567 ? (Hu2(u, e3, u.token) && d4(u, 115), (u.token & 537079808) === 537079808 && d4(u, 116), n && (t22(u, e3, n, g3, 32, 0), i && i & 2 && l2(u, g3)), c3 = I3(u, e3, 0)) : i & 1 || d4(u, 37, "Class"); - let m3 = e3; - q5(u, e3 | 32768, 20567) ? (a = W5(u, e3, 0, 0, 0, u.tokenPos, u.linePos, u.colPos), m3 |= 524288) : m3 = (m3 | 524288) ^ 524288; - let s3 = te6(u, m3, e3, n, 2, 8, 0); - return y3(u, e3, t12, o2, l, e3 & 1 ? { type: "ClassDeclaration", id: c3, superClass: a, decorators: f3, body: s3 } : { type: "ClassDeclaration", id: c3, superClass: a, body: s3 }); -} -function G1(u, e3, n, i, t12, o2) { - let l = null, f3 = null; - e3 = (e3 | 1024 | 16777216) ^ 16777216; - let c3 = $22(u, e3); - c3.length && (i = u.tokenPos, t12 = u.linePos, o2 = u.colPos), A4(u, e3), u.token & 4096 && u.token !== 20567 && (Hu2(u, e3, u.token) && d4(u, 115), (u.token & 537079808) === 537079808 && d4(u, 116), l = I3(u, e3, 0)); - let a = e3; - q5(u, e3 | 32768, 20567) ? (f3 = W5(u, e3, 0, n, 0, u.tokenPos, u.linePos, u.colPos), a |= 524288) : a = (a | 524288) ^ 524288; - let g3 = te6(u, a, e3, void 0, 2, 0, n); - return u.assignable = 2, y3(u, e3, i, t12, o2, e3 & 1 ? { type: "ClassExpression", id: l, superClass: f3, decorators: c3, body: g3 } : { type: "ClassExpression", id: l, superClass: f3, body: g3 }); -} -function $22(u, e3) { - let n = []; - if (e3 & 1) - for (; u.token === 133; ) - n.push(x1(u, e3, u.tokenPos, u.linePos, u.colPos)); - return n; -} -function x1(u, e3, n, i, t12) { - A4(u, e3 | 32768); - let o2 = K5(u, e3, 2, 0, 1, 0, 0, 1, n, i, t12); - return o2 = N3(u, e3, o2, 0, 0, n, i, t12), y3(u, e3, n, i, t12, { type: "Decorator", expression: o2 }); -} -function te6(u, e3, n, i, t12, o2, l) { - let { tokenPos: f3, linePos: c3, colPos: a } = u; - P7(u, e3 | 32768, 2162700), e3 = (e3 | 134217728) ^ 134217728; - let g3 = u.flags & 32; - u.flags = (u.flags | 32) ^ 32; - let m3 = [], s3; - for (; u.token !== 1074790415; ) { - let k4 = 0; - if (s3 = $22(u, e3), k4 = s3.length, k4 > 0 && u.tokenValue === "constructor" && d4(u, 107), u.token === 1074790415 && d4(u, 106), q5(u, e3, 1074790417)) { - k4 > 0 && d4(u, 117); - continue; - } - m3.push(oe6(u, e3, i, n, t12, s3, 0, l, u.tokenPos, u.linePos, u.colPos)); - } - return P7(u, o2 & 8 ? e3 | 32768 : e3, 1074790415), u.flags = u.flags & -33 | g3, y3(u, e3, f3, c3, a, { type: "ClassBody", body: m3 }); -} -function oe6(u, e3, n, i, t12, o2, l, f3, c3, a, g3) { - let m3 = l ? 32 : 0, s3 = null, { token: k4, tokenPos: C6, linePos: b5, colPos: E6 } = u; - if (k4 & 176128) - switch (s3 = I3(u, e3, 0), k4) { - case 36972: - if (!l && u.token !== 67174411 && (u.token & 1048576) !== 1048576 && u.token !== 1077936157) - return oe6(u, e3, n, i, t12, o2, 1, f3, c3, a, g3); - break; - case 209007: - if (u.token !== 67174411 && !(u.flags & 1)) { - if (e3 & 1 && (u.token & 1073741824) === 1073741824) - return N22(u, e3, s3, m3, o2, C6, b5, E6); - m3 |= 16 | (iu3(u, e3, 8457014) ? 8 : 0); - } - break; - case 12402: - if (u.token !== 67174411) { - if (e3 & 1 && (u.token & 1073741824) === 1073741824) - return N22(u, e3, s3, m3, o2, C6, b5, E6); - m3 |= 256; - } - break; - case 12403: - if (u.token !== 67174411) { - if (e3 & 1 && (u.token & 1073741824) === 1073741824) - return N22(u, e3, s3, m3, o2, C6, b5, E6); - m3 |= 512; - } - break; - } - else if (k4 === 69271571) - m3 |= 2, s3 = g2(u, i, f3); - else if ((k4 & 134217728) === 134217728) - s3 = X6(u, e3); - else if (k4 === 8457014) - m3 |= 8, A4(u, e3); - else if (e3 & 1 && u.token === 131) - m3 |= 4096, s3 = j22(u, e3 | 16384, C6, b5, E6); - else if (e3 & 1 && (u.token & 1073741824) === 1073741824) - m3 |= 128; - else { - if (l && k4 === 2162700) - return B1(u, e3, n, C6, b5, E6); - k4 === 122 ? (s3 = I3(u, e3, 0), u.token !== 67174411 && d4(u, 28, U7[u.token & 255])) : d4(u, 28, U7[u.token & 255]); - } - if (m3 & 792 && (u.token & 143360 ? s3 = I3(u, e3, 0) : (u.token & 134217728) === 134217728 ? s3 = X6(u, e3) : u.token === 69271571 ? (m3 |= 2, s3 = g2(u, e3, 0)) : u.token === 122 ? s3 = I3(u, e3, 0) : e3 & 1 && u.token === 131 ? (m3 |= 4096, s3 = j22(u, e3, C6, b5, E6)) : d4(u, 132)), m3 & 2 || (u.tokenValue === "constructor" ? ((u.token & 1073741824) === 1073741824 ? d4(u, 126) : !(m3 & 32) && u.token === 67174411 && (m3 & 920 ? d4(u, 51, "accessor") : e3 & 524288 || (u.flags & 32 ? d4(u, 52) : u.flags |= 32)), m3 |= 64) : !(m3 & 4096) && m3 & 824 && u.tokenValue === "prototype" && d4(u, 50)), e3 & 1 && u.token !== 67174411) - return N22(u, e3, s3, m3, o2, C6, b5, E6); - let w4 = Z7(u, e3, m3, f3, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, c3, a, g3, e3 & 1 ? { type: "MethodDefinition", kind: !(m3 & 32) && m3 & 64 ? "constructor" : m3 & 256 ? "get" : m3 & 512 ? "set" : "method", static: (m3 & 32) > 0, computed: (m3 & 2) > 0, key: s3, decorators: o2, value: w4 } : { type: "MethodDefinition", kind: !(m3 & 32) && m3 & 64 ? "constructor" : m3 & 256 ? "get" : m3 & 512 ? "set" : "method", static: (m3 & 32) > 0, computed: (m3 & 2) > 0, key: s3, value: w4 }); -} -function j22(u, e3, n, i, t12) { - A4(u, e3); - let { tokenValue: o2 } = u; - return o2 === "constructor" && d4(u, 125), A4(u, e3), y3(u, e3, n, i, t12, { type: "PrivateIdentifier", name: o2 }); -} -function N22(u, e3, n, i, t12, o2, l, f3) { - let c3 = null; - if (i & 8 && d4(u, 0), u.token === 1077936157) { - A4(u, e3 | 32768); - let { tokenPos: a, linePos: g3, colPos: m3 } = u; - u.token === 537079928 && d4(u, 116), c3 = K5(u, e3 | 16384, 2, 0, 1, 0, 0, 1, a, g3, m3), (u.token & 1073741824) !== 1073741824 && (c3 = N3(u, e3 | 16384, c3, 0, 0, a, g3, m3), c3 = O6(u, e3 | 16384, 0, 0, a, g3, m3, c3), u.token === 18 && (c3 = e2(u, e3, 0, o2, l, f3, c3))); - } - return y3(u, e3, o2, l, f3, { type: "PropertyDefinition", key: n, value: c3, static: (i & 32) > 0, computed: (i & 2) > 0, decorators: t12 }); -} -function le7(u, e3, n, i, t12, o2, l, f3) { - if (u.token & 143360) - return gu2(u, e3, n, i, t12, o2, l, f3); - (u.token & 2097152) !== 2097152 && d4(u, 28, U7[u.token & 255]); - let c3 = u.token === 69271571 ? _4(u, e3, n, 1, 0, 1, i, t12, o2, l, f3) : Y8(u, e3, n, 1, 0, 1, i, t12, o2, l, f3); - return u.destructible & 16 && d4(u, 48), u.destructible & 32 && d4(u, 48), c3; -} -function gu2(u, e3, n, i, t12, o2, l, f3) { - let { tokenValue: c3, token: a } = u; - return e3 & 1024 && ((a & 537079808) === 537079808 ? d4(u, 116) : (a & 36864) === 36864 && d4(u, 115)), (a & 20480) === 20480 && d4(u, 100), e3 & 2099200 && a === 241773 && d4(u, 30), a === 241739 && i & 24 && d4(u, 98), e3 & 4196352 && a === 209008 && d4(u, 96), A4(u, e3), n && u2(u, e3, n, c3, i, t12), y3(u, e3, o2, l, f3, { type: "Identifier", name: c3 }); -} -function yu2(u, e3, n, i, t12, o2) { - if (A4(u, e3), u.token === 8456259) - return y3(u, e3, i, t12, o2, { type: "JSXFragment", openingFragment: p1(u, e3, i, t12, o2), children: Lu2(u, e3), closingFragment: e0(u, e3, n, u.tokenPos, u.linePos, u.colPos) }); - let l = null, f3 = [], c3 = t0(u, e3, n, i, t12, o2); - if (!c3.selfClosing) { - f3 = Lu2(u, e3), l = u0(u, e3, n, u.tokenPos, u.linePos, u.colPos); - let a = M22(l.name); - M22(c3.name) !== a && d4(u, 150, a); - } - return y3(u, e3, i, t12, o2, { type: "JSXElement", children: f3, openingElement: c3, closingElement: l }); -} -function p1(u, e3, n, i, t12) { - return d22(u, e3), y3(u, e3, n, i, t12, { type: "JSXOpeningFragment" }); -} -function u0(u, e3, n, i, t12, o2) { - P7(u, e3, 25); - let l = fe6(u, e3, u.tokenPos, u.linePos, u.colPos); - return n ? P7(u, e3, 8456259) : u.token = d22(u, e3), y3(u, e3, i, t12, o2, { type: "JSXClosingElement", name: l }); -} -function e0(u, e3, n, i, t12, o2) { - return P7(u, e3, 25), P7(u, e3, 8456259), y3(u, e3, i, t12, o2, { type: "JSXClosingFragment" }); -} -function Lu2(u, e3) { - let n = []; - for (; u.token !== 25; ) - u.index = u.tokenPos = u.startPos, u.column = u.colPos = u.startColumn, u.line = u.linePos = u.startLine, d22(u, e3), n.push(n0(u, e3, u.tokenPos, u.linePos, u.colPos)); - return n; -} -function n0(u, e3, n, i, t12) { - if (u.token === 138) - return i0(u, e3, n, i, t12); - if (u.token === 2162700) - return de5(u, e3, 0, 0, n, i, t12); - if (u.token === 8456258) - return yu2(u, e3, 0, n, i, t12); - d4(u, 0); -} -function i0(u, e3, n, i, t12) { - d22(u, e3); - let o2 = { type: "JSXText", value: u.tokenValue }; - return e3 & 512 && (o2.raw = u.tokenRaw), y3(u, e3, n, i, t12, o2); -} -function t0(u, e3, n, i, t12, o2) { - (u.token & 143360) !== 143360 && (u.token & 4096) !== 4096 && d4(u, 0); - let l = fe6(u, e3, u.tokenPos, u.linePos, u.colPos), f3 = l0(u, e3), c3 = u.token === 8457016; - return u.token === 8456259 ? d22(u, e3) : (P7(u, e3, 8457016), n ? P7(u, e3, 8456259) : d22(u, e3)), y3(u, e3, i, t12, o2, { type: "JSXOpeningElement", name: l, attributes: f3, selfClosing: c3 }); -} -function fe6(u, e3, n, i, t12) { - r2(u); - let o2 = W22(u, e3, n, i, t12); - if (u.token === 21) - return ce6(u, e3, o2, n, i, t12); - for (; q5(u, e3, 67108877); ) - r2(u), o2 = o0(u, e3, o2, n, i, t12); - return o2; -} -function o0(u, e3, n, i, t12, o2) { - let l = W22(u, e3, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, i, t12, o2, { type: "JSXMemberExpression", object: n, property: l }); -} -function l0(u, e3) { - let n = []; - for (; u.token !== 8457016 && u.token !== 8456259 && u.token !== 1048576; ) - n.push(c0(u, e3, u.tokenPos, u.linePos, u.colPos)); - return n; -} -function f0(u, e3, n, i, t12) { - A4(u, e3), P7(u, e3, 14); - let o2 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - return P7(u, e3, 1074790415), y3(u, e3, n, i, t12, { type: "JSXSpreadAttribute", argument: o2 }); -} -function c0(u, e3, n, i, t12) { - if (u.token === 2162700) - return f0(u, e3, n, i, t12); - r2(u); - let o2 = null, l = W22(u, e3, n, i, t12); - if (u.token === 21 && (l = ce6(u, e3, l, n, i, t12)), u.token === 1077936157) { - let f3 = u1(u, e3), { tokenPos: c3, linePos: a, colPos: g3 } = u; - switch (f3) { - case 134283267: - o2 = X6(u, e3); - break; - case 8456258: - o2 = yu2(u, e3, 1, c3, a, g3); - break; - case 2162700: - o2 = de5(u, e3, 1, 1, c3, a, g3); - break; - default: - d4(u, 149); - } - } - return y3(u, e3, n, i, t12, { type: "JSXAttribute", value: o2, name: l }); -} -function ce6(u, e3, n, i, t12, o2) { - P7(u, e3, 21); - let l = W22(u, e3, u.tokenPos, u.linePos, u.colPos); - return y3(u, e3, i, t12, o2, { type: "JSXNamespacedName", namespace: n, name: l }); -} -function de5(u, e3, n, i, t12, o2, l) { - A4(u, e3 | 32768); - let { tokenPos: f3, linePos: c3, colPos: a } = u; - if (u.token === 14) - return d0(u, e3, t12, o2, l); - let g3 = null; - return u.token === 1074790415 ? (i && d4(u, 152), g3 = s0(u, e3, u.startPos, u.startLine, u.startColumn)) : g3 = R6(u, e3, 1, 0, 0, f3, c3, a), n ? P7(u, e3, 1074790415) : d22(u, e3), y3(u, e3, t12, o2, l, { type: "JSXExpressionContainer", expression: g3 }); -} -function d0(u, e3, n, i, t12) { - P7(u, e3, 14); - let o2 = R6(u, e3, 1, 0, 0, u.tokenPos, u.linePos, u.colPos); - return P7(u, e3, 1074790415), y3(u, e3, n, i, t12, { type: "JSXSpreadChild", expression: o2 }); -} -function s0(u, e3, n, i, t12) { - return u.startPos = u.tokenPos, u.startLine = u.linePos, u.startColumn = u.colPos, y3(u, e3, n, i, t12, { type: "JSXEmptyExpression" }); -} -function W22(u, e3, n, i, t12) { - let { tokenValue: o2 } = u; - return A4(u, e3), y3(u, e3, n, i, t12, { type: "JSXIdentifier", name: o2 }); -} -function se5(u, e3) { - return c1(u, e3, 0); -} -function a0(u, e3) { - let n = new SyntaxError(u + " (" + e3.loc.start.line + ":" + e3.loc.start.column + ")"); - return Object.assign(n, e3); -} -function m0(u) { - let e3 = []; - for (let n of u) - try { - return n(); - } catch (i) { - e3.push(i); - } - throw Object.assign(new Error("All combinations failed"), { errors: e3 }); -} -function E0(u) { - if (!u.startsWith("#!")) - return ""; - let e3 = u.indexOf(` -`); - return e3 === -1 ? u : u.slice(0, e3); -} -function w0(u) { - let e3 = Ce7(u); - e3 && (u = u.slice(e3.length + 1)); - let n = (0, C22.extract)(u), { pragmas: i, comments: t12 } = (0, C22.parseWithComments)(n); - return { shebang: e3, text: u, pragmas: i, comments: t12 }; -} -function Pe7(u) { - let { pragmas: e3 } = w0(u); - return Object.prototype.hasOwnProperty.call(e3, "prettier") || Object.prototype.hasOwnProperty.call(e3, "format"); -} -function S0(u) { - return Array.isArray(u) && u.length > 0; -} -function $6(u) { - var i; - let e3 = u.range ? u.range[0] : u.start, n = ((i = u.declaration) == null ? void 0 : i.decorators) ?? u.decorators; - return _22(n) ? Math.min($6(n[0]), e3) : e3; -} -function p3(u) { - return u.range ? u.range[1] : u.end; -} -function B0(u) { - return u = typeof u == "function" ? { parse: u } : u, { astFormat: "estree", hasPragma: Pe7, locStart: $6, locEnd: p3, ...u }; -} -function T0(u) { - return u = new Set(u), (e3) => u.has(e3 == null ? void 0 : e3.type); -} -function q0(u) { - return T22(u) && u.value[0] === "*" && /@(?:type|satisfies)\b/.test(u.value); -} -function L0(u) { - let e3 = `*${u.value}*`.split(` -`); - return e3.length > 1 && e3.every((n) => n.trimStart()[0] === "*"); -} -function q22(u) { - if (F22 !== null && typeof F22.property) { - let e3 = F22; - return F22 = q22.prototype = null, e3; - } - return F22 = q22.prototype = u ?? /* @__PURE__ */ Object.create(null), new q22(); -} -function Du2(u) { - return q22(u); -} -function N0(u, e3 = "type") { - Du2(u); - function n(i) { - let t12 = i[e3], o2 = u[t12]; - if (!Array.isArray(o2)) - throw Object.assign(new Error(`Missing visitor keys for '${t12}'.`), { node: i }); - return o2; - } - return n; -} -function Au2(u, e3) { - if (!(u !== null && typeof u == "object")) - return u; - if (Array.isArray(u)) { - for (let i = 0; i < u.length; i++) - u[i] = Au2(u[i], e3); - return u; - } - let n = Te7(u); - for (let i = 0; i < n.length; i++) - u[n[i]] = Au2(u[n[i]], e3); - return e3(u) || u; -} -function R0(u, e3) { - let { parser: n, text: i } = e3; - if (u.type === "File" && u.program.interpreter) { - let { program: { interpreter: o2 }, comments: l } = u; - delete u.program.interpreter, l.unshift(o2); - } - if (n === "babel") { - let o2 = /* @__PURE__ */ new Set(); - u = Y22(u, (l) => { - var f3; - (f3 = l.leadingComments) != null && f3.some(Se7) && o2.add($6(l)); - }), u = Y22(u, (l) => { - if (l.type === "ParenthesizedExpression") { - let { expression: f3 } = l; - if (f3.type === "TypeCastExpression") - return f3.range = l.range, f3; - let c3 = $6(l); - if (!o2.has(c3)) - return f3.extra = { ...f3.extra, parenthesized: true }, f3; - } - }); - } - if (u = Y22(u, (o2) => { - switch (o2.type) { - case "LogicalExpression": - if (Fe7(o2)) - return bu2(o2); - break; - case "VariableDeclaration": { - let l = ku2(false, o2.declarations, -1); - l != null && l.init && t12(o2, l); - break; - } - case "TSParenthesizedType": - return o2.typeAnnotation; - case "TSTypeParameter": - if (typeof o2.name == "string") { - let l = $6(o2); - o2.name = { type: "Identifier", name: o2.name, range: [l, l + o2.name.length] }; - } - break; - case "TopicReference": - u.extra = { ...u.extra, __isUsingHackPipeline: true }; - break; - case "ExportAllDeclaration": { - let { exported: l } = o2; - if (n === "meriyah" && (l == null ? void 0 : l.type) === "Identifier") { - let f3 = i.slice($6(l), p3(l)); - (f3.startsWith('"') || f3.startsWith("'")) && (o2.exported = { ...o2.exported, type: "Literal", value: o2.exported.name, raw: f3 }); - } - break; - } - case "TSUnionType": - case "TSIntersectionType": - if (o2.types.length === 1) - return o2.types[0]; - break; - } - }), _22(u.comments)) { - let o2 = ku2(false, u.comments, -1); - for (let l = u.comments.length - 2; l >= 0; l--) { - let f3 = u.comments[l]; - p3(f3) === $6(o2) && T22(f3) && T22(o2) && hu3(f3) && hu3(o2) && (u.comments.splice(l + 1, 1), f3.value += "*//*" + o2.value, f3.range = [$6(f3), p3(o2)]), o2 = f3; - } - } - return u.type === "Program" && (u.range = [0, i.length]), u; - function t12(o2, l) { - i[p3(l)] !== ";" && (o2.range = [$6(o2), p3(l)]); - } -} -function Fe7(u) { - return u.type === "LogicalExpression" && u.right.type === "LogicalExpression" && u.operator === u.right.operator; -} -function bu2(u) { - return Fe7(u) ? bu2({ type: "LogicalExpression", operator: u.operator, left: bu2({ type: "LogicalExpression", operator: u.operator, left: u.left, right: u.right.left, range: [$6(u.left), p3(u.right.left)] }), right: u.right.right, range: [$6(u), p3(u)] }) : u; -} -function O0(u) { - let { filepath: e3 } = u; - if (e3) { - if (e3 = e3.toLowerCase(), e3.endsWith(".cjs")) - return "script"; - if (e3.endsWith(".mjs")) - return "module"; - } -} -function M0(u, e3) { - let n = [], i = [], t12 = se5(u, { ...U0, module: e3 === "module", onComment: n, onToken: i }); - return t12.comments = n, t12.tokens = i, t12; -} -function J0(u) { - var o2; - let { message: e3, line: n, column: i } = u, t12 = (o2 = e3.match(/^\[(?\d+):(?\d+)]: (?.*)$/)) == null ? void 0 : o2.groups; - return t12 && (e3 = t12.message, typeof n != "number" && (n = Number(t12.line), i = Number(t12.column))), typeof n != "number" ? u : ae5(e3, { loc: { start: { line: n, column: i } }, cause: u }); -} -function j0(u, e3 = {}) { - let n = Le5(e3), i = (n ? [n] : ["module", "script"]).map((o2) => () => M0(u, o2)), t12; - try { - t12 = me6(i); - } catch ({ errors: [o2] }) { - throw J0(o2); - } - return qe6(t12, { parser: "meriyah", text: u }); -} -var Ie6, Q22, Ne6, Ve7, Re8, Oe8, Ue6, Eu2, Me7, Je7, be9, Pu2, Cu3, je8, k22, E22, L5, Ke6, Iu2, Nu3, U7, Uu2, Ju2, ae5, me6, C22, Ce7, _22, Ee4, v0, ku2, we7, F0, T22, Se7, hu3, F22, I0, Be7, ve7, V0, Te7, Y22, qe6, Le5, U0, X0, jn4; -var init_meriyah = __esm({ - "node_modules/prettier/plugins/meriyah.mjs"() { - Ie6 = Object.create; - Q22 = Object.defineProperty; - Ne6 = Object.getOwnPropertyDescriptor; - Ve7 = Object.getOwnPropertyNames; - Re8 = Object.getPrototypeOf; - Oe8 = Object.prototype.hasOwnProperty; - Ue6 = (u, e3) => () => (e3 || u((e3 = { exports: {} }).exports, e3), e3.exports); - Eu2 = (u, e3) => { - for (var n in e3) - Q22(u, n, { get: e3[n], enumerable: true }); - }; - Me7 = (u, e3, n, i) => { - if (e3 && typeof e3 == "object" || typeof e3 == "function") - for (let t12 of Ve7(e3)) - !Oe8.call(u, t12) && t12 !== n && Q22(u, t12, { get: () => e3[t12], enumerable: !(i = Ne6(e3, t12)) || i.enumerable }); - return u; - }; - Je7 = (u, e3, n) => (n = u != null ? Ie6(Re8(u)) : {}, Me7(e3 || !u || !u.__esModule ? Q22(n, "default", { value: u, enumerable: true }) : n, u)); - be9 = Ue6((a2) => { - "use strict"; - Object.defineProperty(a2, "__esModule", { value: true }); - a2.extract = A0; - a2.parse = C0; - a2.parseWithComments = Ae7; - a2.print = P0; - a2.strip = b0; - var g0 = /\*\/$/, y0 = /^\/\*\*?/, he9 = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/, k0 = /(^|\s+)\/\/([^\r\n]*)/g, ge6 = /^(\r?\n)+/, h0 = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g, ye6 = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g, D0 = /(\r?\n|^) *\* ?/g, De9 = []; - function A0(u) { - let e3 = u.match(he9); - return e3 ? e3[0].trimLeft() : ""; - } - function b0(u) { - let e3 = u.match(he9); - return e3 && e3[0] ? u.substring(e3[0].length) : u; - } - function C0(u) { - return Ae7(u).pragmas; - } - function Ae7(u) { - let e3 = ` -`; - u = u.replace(y0, "").replace(g0, "").replace(D0, "$1"); - let n = ""; - for (; n !== u; ) - n = u, u = u.replace(h0, `${e3}$1 $2${e3}`); - u = u.replace(ge6, "").trimRight(); - let i = /* @__PURE__ */ Object.create(null), t12 = u.replace(ye6, "").replace(ge6, "").trimRight(), o2; - for (; o2 = ye6.exec(u); ) { - let l = o2[2].replace(k0, ""); - typeof i[o2[1]] == "string" || Array.isArray(i[o2[1]]) ? i[o2[1]] = De9.concat(i[o2[1]], l) : i[o2[1]] = l; - } - return { comments: t12, pragmas: i }; - } - function P0({ comments: u = "", pragmas: e3 = {} }) { - let n = ` -`, i = "/**", t12 = " *", o2 = " */", l = Object.keys(e3), f3 = l.map((a) => ke9(a, e3[a])).reduce((a, g3) => a.concat(g3), []).map((a) => `${t12} ${a}${n}`).join(""); - if (!u) { - if (l.length === 0) - return ""; - if (l.length === 1 && !Array.isArray(e3[l[0]])) { - let a = e3[l[0]]; - return `${i} ${ke9(l[0], a)[0]}${o2}`; - } - } - let c3 = u.split(n).map((a) => `${t12} ${a}`).join(n) + n; - return i + n + (u ? c3 : "") + (u && l.length ? t12 + n : "") + f3 + o2; - } - function ke9(u, e3) { - return De9.concat(e3).map((n) => `@${u} ${n}`.trim()); - } - }); - Pu2 = {}; - Eu2(Pu2, { parsers: () => Cu3 }); - Cu3 = {}; - Eu2(Cu3, { meriyah: () => X0 }); - je8 = { 0: "Unexpected token", 28: "Unexpected token: '%0'", 1: "Octal escape sequences are not allowed in strict mode", 2: "Octal escape sequences are not allowed in template strings", 3: "Unexpected token `#`", 4: "Illegal Unicode escape sequence", 5: "Invalid code point %0", 6: "Invalid hexadecimal escape sequence", 8: "Octal literals are not allowed in strict mode", 7: "Decimal integer literals with a leading zero are forbidden in strict mode", 9: "Expected number in radix %0", 146: "Invalid left-hand side assignment to a destructible right-hand side", 10: "Non-number found after exponent indicator", 11: "Invalid BigIntLiteral", 12: "No identifiers allowed directly after numeric literal", 13: "Escapes \\8 or \\9 are not syntactically valid escapes", 14: "Unterminated string literal", 15: "Unterminated template literal", 16: "Multiline comment was not closed properly", 17: "The identifier contained dynamic unicode escape that was not closed", 18: "Illegal character '%0'", 19: "Missing hexadecimal digits", 20: "Invalid implicit octal", 21: "Invalid line break in string literal", 22: "Only unicode escapes are legal in identifier names", 23: "Expected '%0'", 24: "Invalid left-hand side in assignment", 25: "Invalid left-hand side in async arrow", 26: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', 27: "Member access on super must be in a method", 29: "Await expression not allowed in formal parameter", 30: "Yield expression not allowed in formal parameter", 93: "Unexpected token: 'escaped keyword'", 31: "Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses", 120: "Async functions can only be declared at the top level or inside a block", 32: "Unterminated regular expression", 33: "Unexpected regular expression flag", 34: "Duplicate regular expression flag '%0'", 35: "%0 functions must have exactly %1 argument%2", 36: "Setter function argument must not be a rest parameter", 37: "%0 declaration must have a name in this context", 38: "Function name may not contain any reserved words or be eval or arguments in strict mode", 39: "The rest operator is missing an argument", 40: "A getter cannot be a generator", 41: "A setter cannot be a generator", 42: "A computed property name must be followed by a colon or paren", 131: "Object literal keys that are strings or numbers must be a method or have a colon", 44: "Found `* async x(){}` but this should be `async * x(){}`", 43: "Getters and setters can not be generators", 45: "'%0' can not be generator method", 46: "No line break is allowed after '=>'", 47: "The left-hand side of the arrow can only be destructed through assignment", 48: "The binding declaration is not destructible", 49: "Async arrow can not be followed by new expression", 50: "Classes may not have a static property named 'prototype'", 51: "Class constructor may not be a %0", 52: "Duplicate constructor method in class", 53: "Invalid increment/decrement operand", 54: "Invalid use of `new` keyword on an increment/decrement expression", 55: "`=>` is an invalid assignment target", 56: "Rest element may not have a trailing comma", 57: "Missing initializer in %0 declaration", 58: "'for-%0' loop head declarations can not have an initializer", 59: "Invalid left-hand side in for-%0 loop: Must have a single binding", 60: "Invalid shorthand property initializer", 61: "Property name __proto__ appears more than once in object literal", 62: "Let is disallowed as a lexically bound name", 63: "Invalid use of '%0' inside new expression", 64: "Illegal 'use strict' directive in function with non-simple parameter list", 65: 'Identifier "let" disallowed as left-hand side expression in strict mode', 66: "Illegal continue statement", 67: "Illegal break statement", 68: "Cannot have `let[...]` as a var name in strict mode", 69: "Invalid destructuring assignment target", 70: "Rest parameter may not have a default initializer", 71: "The rest argument must the be last parameter", 72: "Invalid rest argument", 74: "In strict mode code, functions can only be declared at top level or inside a block", 75: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement", 76: "Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement", 77: "Class declaration can't appear in single-statement context", 78: "Invalid left-hand side in for-%0", 79: "Invalid assignment in for-%0", 80: "for await (... of ...) is only valid in async functions and async generators", 81: "The first token after the template expression should be a continuation of the template", 83: "`let` declaration not allowed here and `let` cannot be a regular var name in strict mode", 82: "`let \n [` is a restricted production at the start of a statement", 84: "Catch clause requires exactly one parameter, not more (and no trailing comma)", 85: "Catch clause parameter does not support default values", 86: "Missing catch or finally after try", 87: "More than one default clause in switch statement", 88: "Illegal newline after throw", 89: "Strict mode code may not include a with statement", 90: "Illegal return statement", 91: "The left hand side of the for-header binding declaration is not destructible", 92: "new.target only allowed within functions", 94: "'#' not followed by identifier", 100: "Invalid keyword", 99: "Can not use 'let' as a class name", 98: "'A lexical declaration can't define a 'let' binding", 97: "Can not use `let` as variable name in strict mode", 95: "'%0' may not be used as an identifier in this context", 96: "Await is only valid in async functions", 101: "The %0 keyword can only be used with the module goal", 102: "Unicode codepoint must not be greater than 0x10FFFF", 103: "%0 source must be string", 104: "Only a identifier can be used to indicate alias", 105: "Only '*' or '{...}' can be imported after default", 106: "Trailing decorator may be followed by method", 107: "Decorators can't be used with a constructor", 109: "HTML comments are only allowed with web compatibility (Annex B)", 110: "The identifier 'let' must not be in expression position in strict mode", 111: "Cannot assign to `eval` and `arguments` in strict mode", 112: "The left-hand side of a for-of loop may not start with 'let'", 113: "Block body arrows can not be immediately invoked without a group", 114: "Block body arrows can not be immediately accessed without a group", 115: "Unexpected strict mode reserved word", 116: "Unexpected eval or arguments in strict mode", 117: "Decorators must not be followed by a semicolon", 118: "Calling delete on expression not allowed in strict mode", 119: "Pattern can not have a tail", 121: "Can not have a `yield` expression on the left side of a ternary", 122: "An arrow function can not have a postfix update operator", 123: "Invalid object literal key character after generator star", 124: "Private fields can not be deleted", 126: "Classes may not have a field called constructor", 125: "Classes may not have a private element named constructor", 127: "A class field initializer may not contain arguments", 128: "Generators can only be declared at the top level or inside a block", 129: "Async methods are a restricted production and cannot have a newline following it", 130: "Unexpected character after object literal property name", 132: "Invalid key token", 133: "Label '%0' has already been declared", 134: "continue statement must be nested within an iteration statement", 135: "Undefined label '%0'", 136: "Trailing comma is disallowed inside import(...) arguments", 137: "import() requires exactly one argument", 138: "Cannot use new with import(...)", 139: "... is not allowed in import()", 140: "Expected '=>'", 141: "Duplicate binding '%0'", 142: "Cannot export a duplicate name '%0'", 145: "Duplicate %0 for-binding", 143: "Exported binding '%0' needs to refer to a top-level declared variable", 144: "Unexpected private field", 148: "Numeric separators are not allowed at the end of numeric literals", 147: "Only one underscore is allowed as numeric separator", 149: "JSX value should be either an expression or a quoted JSX text", 150: "Expected corresponding JSX closing tag for %0", 151: "Adjacent JSX elements must be wrapped in an enclosing tag", 152: "JSX attributes must only be assigned a non-empty 'expression'", 153: "'%0' has already been declared", 154: "'%0' shadowed a catch clause binding", 155: "Dot property must be an identifier", 156: "Encountered invalid input after spread/rest argument", 157: "Catch without try", 158: "Finally without try", 159: "Expected corresponding closing tag for JSX fragment", 160: "Coalescing and logical operators used together in the same expression must be disambiguated with parentheses", 161: "Invalid tagged template on optional chain", 162: "Invalid optional chain from super property", 163: "Invalid optional chain from new expression", 164: 'Cannot use "import.meta" outside a module', 165: "Leading decorators must be attached to a class declaration" }; - k22 = class extends SyntaxError { - constructor(e3, n, i, t12, ...o2) { - let l = "[" + n + ":" + i + "]: " + je8[t12].replace(/%(\d+)/g, (f3, c3) => o2[c3]); - super(`${l}`), this.index = e3, this.line = n, this.column = i, this.description = l, this.loc = { line: n, column: i }; - } - }; - E22 = ((u, e3) => { - let n = new Uint32Array(104448), i = 0, t12 = 0; - for (; i < 3540; ) { - let o2 = u[i++]; - if (o2 < 0) - t12 -= o2; - else { - let l = u[i++]; - o2 & 2 && (l = e3[l]), o2 & 1 ? n.fill(l, t12, t12 += u[i++]) : n[t12++] = l; - } - } - return n; - })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828e3, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132e3, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902e3, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); - L5 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8192, 0, 3, 0, 0, 8192, 0, 0, 0, 256, 0, 33024, 0, 0, 242, 242, 114, 114, 114, 114, 114, 114, 594, 594, 0, 0, 16384, 0, 0, 0, 0, 67, 67, 67, 67, 67, 67, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 0, 0, 4099, 0, 71, 71, 71, 71, 71, 71, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 16384, 0, 0, 0, 0]; - Ke6 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]; - Iu2 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]; - Nu3 = ["SingleLine", "MultiLine", "HTMLOpen", "HTMLClose", "HashbangComment"]; - U7 = ["end of source", "identifier", "number", "string", "regular expression", "false", "true", "null", "template continuation", "template tail", "=>", "(", "{", ".", "...", "}", ")", ";", ",", "[", "]", ":", "?", "'", '"', "", "++", "--", "=", "<<=", ">>=", ">>>=", "**=", "+=", "-=", "*=", "/=", "%=", "^=", "|=", "&=", "||=", "&&=", "??=", "typeof", "delete", "void", "!", "~", "+", "-", "in", "instanceof", "*", "%", "/", "**", "&&", "||", "===", "!==", "==", "!=", "<=", ">=", "<", ">", "<<", ">>", ">>>", "&", "|", "^", "var", "let", "const", "break", "case", "catch", "class", "continue", "debugger", "default", "do", "else", "export", "extends", "finally", "for", "function", "if", "import", "new", "return", "super", "switch", "this", "throw", "try", "while", "with", "implements", "interface", "package", "private", "protected", "public", "static", "yield", "as", "async", "await", "constructor", "get", "set", "from", "of", "enum", "eval", "arguments", "escaped keyword", "escaped future reserved keyword", "reserved if strict", "#", "BigIntLiteral", "??", "?.", "WhiteSpace", "Illegal", "LineTerminator", "PrivateField", "Template", "@", "target", "meta", "LineFeed", "Escaped", "JSXText"]; - Uu2 = Object.create(null, { this: { value: 86113 }, function: { value: 86106 }, if: { value: 20571 }, return: { value: 20574 }, var: { value: 86090 }, else: { value: 20565 }, for: { value: 20569 }, new: { value: 86109 }, in: { value: 8738868 }, typeof: { value: 16863277 }, while: { value: 20580 }, case: { value: 20558 }, break: { value: 20557 }, try: { value: 20579 }, catch: { value: 20559 }, delete: { value: 16863278 }, throw: { value: 86114 }, switch: { value: 86112 }, continue: { value: 20561 }, default: { value: 20563 }, instanceof: { value: 8476725 }, do: { value: 20564 }, void: { value: 16863279 }, finally: { value: 20568 }, async: { value: 209007 }, await: { value: 209008 }, class: { value: 86096 }, const: { value: 86092 }, constructor: { value: 12401 }, debugger: { value: 20562 }, export: { value: 20566 }, extends: { value: 20567 }, false: { value: 86021 }, from: { value: 12404 }, get: { value: 12402 }, implements: { value: 36966 }, import: { value: 86108 }, interface: { value: 36967 }, let: { value: 241739 }, null: { value: 86023 }, of: { value: 274549 }, package: { value: 36968 }, private: { value: 36969 }, protected: { value: 36970 }, public: { value: 36971 }, set: { value: 12403 }, static: { value: 36972 }, super: { value: 86111 }, true: { value: 86022 }, with: { value: 20581 }, yield: { value: 241773 }, enum: { value: 86134 }, eval: { value: 537079927 }, as: { value: 77934 }, arguments: { value: 537079928 }, target: { value: 143494 }, meta: { value: 143495 } }); - Ju2 = [129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 136, 128, 128, 130, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 128, 16842800, 134283267, 131, 208897, 8457015, 8455751, 134283267, 67174411, 16, 8457014, 25233970, 18, 25233971, 67108877, 8457016, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 134283266, 21, 1074790417, 8456258, 1077936157, 8456259, 22, 133, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 208897, 69271571, 137, 20, 8455497, 208897, 132, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 208897, 4096, 208897, 208897, 4096, 208897, 4096, 208897, 4096, 208897, 4096, 4096, 4096, 208897, 4096, 4096, 208897, 4096, 4096, 2162700, 8455240, 1074790415, 16842801, 129]; - ae5 = a0; - me6 = m0; - C22 = Je7(be9(), 1); - Ce7 = E0; - _22 = S0; - Ee4 = B0; - v0 = (u, e3, n) => { - if (!(u && e3 == null)) - return Array.isArray(e3) || typeof e3 == "string" ? e3[n < 0 ? e3.length + n : n] : e3.at(n); - }; - ku2 = v0; - we7 = T0; - F0 = we7(["Block", "CommentBlock", "MultiLine"]); - T22 = F0; - Se7 = q0; - hu3 = L0; - F22 = null; - I0 = 10; - for (let u = 0; u <= I0; u++) - q22(); - Be7 = N0; - ve7 = { ArrayExpression: ["elements"], AssignmentExpression: ["left", "right"], BinaryExpression: ["left", "right"], InterpreterDirective: [], Directive: ["value"], DirectiveLiteral: [], BlockStatement: ["directives", "body"], BreakStatement: ["label"], CallExpression: ["callee", "arguments", "typeParameters", "typeArguments"], CatchClause: ["param", "body"], ConditionalExpression: ["test", "consequent", "alternate"], ContinueStatement: ["label"], DebuggerStatement: [], DoWhileStatement: ["test", "body"], EmptyStatement: [], ExpressionStatement: ["expression"], File: ["program"], ForInStatement: ["left", "right", "body"], ForStatement: ["init", "test", "update", "body"], FunctionDeclaration: ["id", "params", "body", "returnType", "typeParameters", "predicate"], FunctionExpression: ["id", "params", "body", "returnType", "typeParameters"], Identifier: ["typeAnnotation", "decorators"], IfStatement: ["test", "consequent", "alternate"], LabeledStatement: ["label", "body"], StringLiteral: [], NumericLiteral: [], NullLiteral: [], BooleanLiteral: [], RegExpLiteral: [], LogicalExpression: ["left", "right"], MemberExpression: ["object", "property"], NewExpression: ["callee", "arguments", "typeParameters", "typeArguments"], Program: ["directives", "body"], ObjectExpression: ["properties"], ObjectMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], ObjectProperty: ["key", "value", "decorators"], RestElement: ["argument", "typeAnnotation", "decorators"], ReturnStatement: ["argument"], SequenceExpression: ["expressions"], ParenthesizedExpression: ["expression"], SwitchCase: ["test", "consequent"], SwitchStatement: ["discriminant", "cases"], ThisExpression: [], ThrowStatement: ["argument"], TryStatement: ["block", "handler", "finalizer"], UnaryExpression: ["argument"], UpdateExpression: ["argument"], VariableDeclaration: ["declarations"], VariableDeclarator: ["id", "init"], WhileStatement: ["test", "body"], WithStatement: ["object", "body"], AssignmentPattern: ["left", "right", "decorators", "typeAnnotation"], ArrayPattern: ["elements", "typeAnnotation", "decorators"], ArrowFunctionExpression: ["params", "body", "returnType", "typeParameters", "predicate"], ClassBody: ["body"], ClassExpression: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"], ClassDeclaration: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"], ExportAllDeclaration: ["source", "attributes", "assertions", "exported"], ExportDefaultDeclaration: ["declaration"], ExportNamedDeclaration: ["declaration", "specifiers", "source", "attributes", "assertions"], ExportSpecifier: ["local", "exported"], ForOfStatement: ["left", "right", "body"], ImportDeclaration: ["specifiers", "source", "attributes", "assertions"], ImportDefaultSpecifier: ["local"], ImportNamespaceSpecifier: ["local"], ImportSpecifier: ["local", "imported"], MetaProperty: ["meta", "property"], ClassMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], ObjectPattern: ["properties", "typeAnnotation", "decorators"], SpreadElement: ["argument"], Super: [], TaggedTemplateExpression: ["tag", "quasi", "typeParameters", "typeArguments"], TemplateElement: [], TemplateLiteral: ["quasis", "expressions"], YieldExpression: ["argument"], AwaitExpression: ["argument"], Import: [], BigIntLiteral: [], ExportNamespaceSpecifier: ["exported"], OptionalMemberExpression: ["object", "property"], OptionalCallExpression: ["callee", "arguments", "typeParameters", "typeArguments"], ClassProperty: ["key", "value", "typeAnnotation", "decorators", "variance"], ClassAccessorProperty: ["key", "value", "typeAnnotation", "decorators"], ClassPrivateProperty: ["key", "value", "decorators", "typeAnnotation", "variance"], ClassPrivateMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], PrivateName: ["id"], StaticBlock: ["body"], AnyTypeAnnotation: [], ArrayTypeAnnotation: ["elementType"], BooleanTypeAnnotation: [], BooleanLiteralTypeAnnotation: [], NullLiteralTypeAnnotation: [], ClassImplements: ["id", "typeParameters"], DeclareClass: ["id", "typeParameters", "extends", "mixins", "implements", "body"], DeclareFunction: ["id", "predicate"], DeclareInterface: ["id", "typeParameters", "extends", "body"], DeclareModule: ["id", "body"], DeclareModuleExports: ["typeAnnotation"], DeclareTypeAlias: ["id", "typeParameters", "right"], DeclareOpaqueType: ["id", "typeParameters", "supertype"], DeclareVariable: ["id"], DeclareExportDeclaration: ["declaration", "specifiers", "source"], DeclareExportAllDeclaration: ["source"], DeclaredPredicate: ["value"], ExistsTypeAnnotation: [], FunctionTypeAnnotation: ["typeParameters", "params", "rest", "returnType", "this"], FunctionTypeParam: ["name", "typeAnnotation"], GenericTypeAnnotation: ["id", "typeParameters"], InferredPredicate: [], InterfaceExtends: ["id", "typeParameters"], InterfaceDeclaration: ["id", "typeParameters", "extends", "body"], InterfaceTypeAnnotation: ["extends", "body"], IntersectionTypeAnnotation: ["types"], MixedTypeAnnotation: [], EmptyTypeAnnotation: [], NullableTypeAnnotation: ["typeAnnotation"], NumberLiteralTypeAnnotation: [], NumberTypeAnnotation: [], ObjectTypeAnnotation: ["properties", "indexers", "callProperties", "internalSlots"], ObjectTypeInternalSlot: ["id", "value", "optional", "static", "method"], ObjectTypeCallProperty: ["value"], ObjectTypeIndexer: ["id", "key", "value", "variance"], ObjectTypeProperty: ["key", "value", "variance"], ObjectTypeSpreadProperty: ["argument"], OpaqueType: ["id", "typeParameters", "supertype", "impltype"], QualifiedTypeIdentifier: ["id", "qualification"], StringLiteralTypeAnnotation: [], StringTypeAnnotation: [], SymbolTypeAnnotation: [], ThisTypeAnnotation: [], TupleTypeAnnotation: ["types", "elementTypes"], TypeofTypeAnnotation: ["argument"], TypeAlias: ["id", "typeParameters", "right"], TypeAnnotation: ["typeAnnotation"], TypeCastExpression: ["expression", "typeAnnotation"], TypeParameter: ["bound", "default", "variance"], TypeParameterDeclaration: ["params"], TypeParameterInstantiation: ["params"], UnionTypeAnnotation: ["types"], Variance: [], VoidTypeAnnotation: [], EnumDeclaration: ["id", "body"], EnumBooleanBody: ["members"], EnumNumberBody: ["members"], EnumStringBody: ["members"], EnumSymbolBody: ["members"], EnumBooleanMember: ["id", "init"], EnumNumberMember: ["id", "init"], EnumStringMember: ["id", "init"], EnumDefaultedMember: ["id"], IndexedAccessType: ["objectType", "indexType"], OptionalIndexedAccessType: ["objectType", "indexType"], JSXAttribute: ["name", "value"], JSXClosingElement: ["name"], JSXElement: ["openingElement", "children", "closingElement"], JSXEmptyExpression: [], JSXExpressionContainer: ["expression"], JSXSpreadChild: ["expression"], JSXIdentifier: [], JSXMemberExpression: ["object", "property"], JSXNamespacedName: ["namespace", "name"], JSXOpeningElement: ["name", "attributes", "typeArguments", "typeParameters"], JSXSpreadAttribute: ["argument"], JSXText: [], JSXFragment: ["openingFragment", "children", "closingFragment"], JSXOpeningFragment: [], JSXClosingFragment: [], Noop: [], Placeholder: [], V8IntrinsicIdentifier: [], ArgumentPlaceholder: [], BindExpression: ["object", "callee"], ImportAttribute: ["key", "value"], Decorator: ["expression"], DoExpression: ["body"], ExportDefaultSpecifier: ["exported"], RecordExpression: ["properties"], TupleExpression: ["elements"], DecimalLiteral: [], ModuleExpression: ["body"], TopicReference: [], PipelineTopicExpression: ["expression"], PipelineBareFunction: ["callee"], PipelinePrimaryTopicReference: [], TSParameterProperty: ["parameter", "decorators"], TSDeclareFunction: ["id", "typeParameters", "params", "returnType", "body"], TSDeclareMethod: ["decorators", "key", "typeParameters", "params", "returnType"], TSQualifiedName: ["left", "right"], TSCallSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSConstructSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSPropertySignature: ["key", "typeAnnotation"], TSMethodSignature: ["key", "typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSIndexSignature: ["parameters", "typeAnnotation"], TSAnyKeyword: [], TSBooleanKeyword: [], TSBigIntKeyword: [], TSIntrinsicKeyword: [], TSNeverKeyword: [], TSNullKeyword: [], TSNumberKeyword: [], TSObjectKeyword: [], TSStringKeyword: [], TSSymbolKeyword: [], TSUndefinedKeyword: [], TSUnknownKeyword: [], TSVoidKeyword: [], TSThisType: [], TSFunctionType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSConstructorType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSTypeReference: ["typeName", "typeParameters", "typeArguments"], TSTypePredicate: ["parameterName", "typeAnnotation"], TSTypeQuery: ["exprName", "typeParameters", "typeArguments"], TSTypeLiteral: ["members"], TSArrayType: ["elementType"], TSTupleType: ["elementTypes"], TSOptionalType: ["typeAnnotation"], TSRestType: ["typeAnnotation"], TSNamedTupleMember: ["label", "elementType"], TSUnionType: ["types"], TSIntersectionType: ["types"], TSConditionalType: ["checkType", "extendsType", "trueType", "falseType"], TSInferType: ["typeParameter"], TSParenthesizedType: ["typeAnnotation"], TSTypeOperator: ["typeAnnotation"], TSIndexedAccessType: ["objectType", "indexType"], TSMappedType: ["typeParameter", "typeAnnotation", "nameType"], TSLiteralType: ["literal"], TSExpressionWithTypeArguments: ["expression", "typeParameters"], TSInterfaceDeclaration: ["id", "typeParameters", "extends", "body"], TSInterfaceBody: ["body"], TSTypeAliasDeclaration: ["id", "typeParameters", "typeAnnotation"], TSInstantiationExpression: ["expression", "typeParameters", "typeArguments"], TSAsExpression: ["expression", "typeAnnotation"], TSSatisfiesExpression: ["expression", "typeAnnotation"], TSTypeAssertion: ["typeAnnotation", "expression"], TSEnumDeclaration: ["id", "members"], TSEnumMember: ["id", "initializer"], TSModuleDeclaration: ["id", "body"], TSModuleBlock: ["body"], TSImportType: ["argument", "qualifier", "typeParameters", "typeArguments"], TSImportEqualsDeclaration: ["id", "moduleReference"], TSExternalModuleReference: ["expression"], TSNonNullExpression: ["expression"], TSExportAssignment: ["expression"], TSNamespaceExportDeclaration: ["id"], TSTypeAnnotation: ["typeAnnotation"], TSTypeParameterInstantiation: ["params"], TSTypeParameterDeclaration: ["params"], TSTypeParameter: ["constraint", "default", "name"], ChainExpression: ["expression"], ExperimentalRestProperty: ["argument"], ExperimentalSpreadProperty: ["argument"], ImportExpression: ["source", "attributes"], Literal: [], MethodDefinition: ["decorators", "key", "value"], PrivateIdentifier: [], Property: ["key", "value"], PropertyDefinition: ["decorators", "key", "typeAnnotation", "value", "variance"], AccessorProperty: ["decorators", "key", "typeAnnotation", "value"], TSAbstractAccessorProperty: ["decorators", "key", "typeAnnotation"], TSAbstractKeyword: [], TSAbstractMethodDefinition: ["key", "value"], TSAbstractPropertyDefinition: ["decorators", "key", "typeAnnotation"], TSAsyncKeyword: [], TSClassImplements: ["expression", "typeArguments", "typeParameters"], TSDeclareKeyword: [], TSEmptyBodyFunctionExpression: ["id", "typeParameters", "params", "returnType"], TSExportKeyword: [], TSInterfaceHeritage: ["expression", "typeArguments", "typeParameters"], TSPrivateKeyword: [], TSProtectedKeyword: [], TSPublicKeyword: [], TSReadonlyKeyword: [], TSStaticKeyword: [], TSTemplateLiteralType: ["quasis", "types"], BigIntLiteralTypeAnnotation: [], BigIntTypeAnnotation: [], ConditionalTypeAnnotation: ["checkType", "extendsType", "trueType", "falseType"], DeclareEnum: ["id", "body"], InferTypeAnnotation: ["typeParameter"], KeyofTypeAnnotation: ["argument"], ObjectTypeMappedTypeProperty: ["keyTparam", "propType", "sourceType", "variance"], QualifiedTypeofIdentifier: ["qualification", "id"], TupleTypeLabeledElement: ["label", "elementType", "variance"], TupleTypeSpreadElement: ["label", "typeAnnotation"], TypePredicate: ["parameterName", "typeAnnotation", "asserts"], NGRoot: ["node"], NGPipeExpression: ["left", "right", "arguments"], NGChainedExpression: ["expressions"], NGEmptyExpression: [], NGMicrosyntax: ["body"], NGMicrosyntaxKey: [], NGMicrosyntaxExpression: ["expression", "alias"], NGMicrosyntaxKeyedExpression: ["key", "expression"], NGMicrosyntaxLet: ["key", "value"], NGMicrosyntaxAs: ["key", "alias"], JsExpressionRoot: ["node"], JsonRoot: ["node"], TSJSDocAllType: [], TSJSDocUnknownType: [], TSJSDocNullableType: ["typeAnnotation"], TSJSDocNonNullableType: ["typeAnnotation"], NeverTypeAnnotation: [], UndefinedTypeAnnotation: [], UnknownTypeAnnotation: [] }; - V0 = Be7(ve7); - Te7 = V0; - Y22 = Au2; - qe6 = R0; - Le5 = O0; - U0 = { next: true, ranges: true, webcompat: true, loc: true, raw: true, directives: true, globalReturn: true, impliedStrict: false, preserveParens: false, lexical: false, identifierPattern: false, jsx: true, specDeviation: true, uniqueKeyInPattern: false }; - X0 = Ee4(j0); - jn4 = Pu2; - } -}); - -// node_modules/prettier/plugins/postcss.mjs -var postcss_exports = {}; -__export(postcss_exports, { - default: () => Vk, - languages: () => Ul3, - options: () => zl2, - parsers: () => Es4, - printers: () => Wg -}); -function Jl2(t12, e3) { - let n = e3 === true || e3 === Et7 ? Et7 : As6, r3 = n === Et7 ? As6 : Et7, s3 = 0, i = 0; - for (let o2 of t12) - o2 === n ? s3++ : o2 === r3 && i++; - return s3 > i ? r3 : n; -} -function Xl2(t12, e3, n) { - let r3 = e3 === '"' ? "'" : '"', i = T3(false, t12, /\\(.)|(["'])/gs, (o2, a, u) => a === r3 ? a : u === e3 ? "\\" + u : u || (n && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(a) ? a : "\\" + a)); - return e3 + i + e3; -} -function Zl2(t12, e3) { - let n = t12.slice(1, -1), r3 = e3.parser === "json" || e3.parser === "json5" && e3.quoteProps === "preserve" && !e3.singleQuote ? '"' : e3.__isInHtmlAttribute ? "'" : Ns6(n, e3.singleQuote); - return Ps6(n, r3, !(e3.parser === "css" || e3.parser === "less" || e3.parser === "scss" || e3.__embeddedInHtml)); -} -function ec4(t12) { - return Array.isArray(t12) && t12.length > 0; -} -function tc3(t12) { - if (typeof t12 == "string") - return Fe8; - if (Array.isArray(t12)) - return $e7; - if (!t12) - return; - let { type: e3 } = t12; - if (Ct7.has(e3)) - return e3; -} -function nc2(t12) { - let e3 = t12 === null ? "null" : typeof t12; - if (e3 !== "string" && e3 !== "object") - return `Unexpected doc '${e3}', -Expected it to be 'string' or 'object'.`; - if (Ke7(t12)) - throw new Error("doc is valid."); - let n = Object.prototype.toString.call(t12); - if (n !== "[object Object]") - return `Unexpected doc '${n}'.`; - let r3 = rc2([...Ct7].map((s3) => `'${s3}'`)); - return `Unexpected doc.type '${t12.type}'. -Expected it to be ${r3}.`; -} -function q6(t12) { - return ce7(t12), { type: xe7, contents: t12 }; -} -function Is4(t12, e3) { - return ce7(e3), { type: be10, contents: e3, n: t12 }; -} -function D4(t12, e3 = {}) { - return ce7(t12), Ot8(e3.expandedStates, true), { type: ke7, id: e3.id, contents: t12, break: !!e3.shouldBreak, expandedStates: e3.expandedStates }; -} -function qs5(t12) { - return Is4({ type: "root" }, t12); -} -function fe7(t12) { - return Is4(-1, t12); -} -function He7(t12) { - return Ot8(t12), { type: te7, parts: t12 }; -} -function At6(t12, e3 = "", n = {}) { - return ce7(t12), e3 !== "" && ce7(e3), { type: le8, breakContents: t12, flatContents: e3, groupId: n.groupId }; -} -function Y9(t12, e3) { - ce7(t12), Ot8(e3); - let n = []; - for (let r3 = 0; r3 < e3.length; r3++) - r3 !== 0 && n.push(t12), n.push(e3[r3]); - return n; -} -function oc3(t12, e3) { - if (typeof t12 == "string") - return e3(t12); - let n = /* @__PURE__ */ new Map(); - return r3(t12); - function r3(i) { - if (n.has(i)) - return n.get(i); - let o2 = s3(i); - return n.set(i, o2), o2; - } - function s3(i) { - switch (Ke7(i)) { - case $e7: - return e3(i.map(r3)); - case te7: - return e3({ ...i, parts: i.parts.map(r3) }); - case le8: - return e3({ ...i, breakContents: r3(i.breakContents), flatContents: r3(i.flatContents) }); - case ke7: { - let { expandedStates: o2, contents: a } = i; - return o2 ? (o2 = o2.map(r3), a = o2[0]) : a = r3(a), e3({ ...i, contents: a, expandedStates: o2 }); - } - case be10: - case xe7: - case ze9: - case Ge7: - case Ve8: - return e3({ ...i, contents: r3(i.contents) }); - case Fe8: - case Ue7: - case We7: - case Ye6: - case Q6: - case _e9: - return e3(i); - default: - throw new tn5(i); - } - } -} -function ac2(t12) { - return t12.type === Q6 && !t12.hard ? t12.soft ? "" : " " : t12.type === le8 ? t12.flatContents : t12; -} -function Ls5(t12) { - return oc3(t12, ac2); -} -function uc3(t12) { - return (t12 == null ? void 0 : t12.type) === "front-matter"; -} -function Bs6(t12, e3, n) { - if (Te8(t12) && t12.lang === "yaml" && delete e3.value, t12.type === "css-comment" && n.type === "css-root" && n.nodes.length > 0 && ((n.nodes[0] === t12 || Te8(n.nodes[0]) && n.nodes[1] === t12) && (delete e3.text, /^\*\s*@(?:format|prettier)\s*$/.test(t12.text)) || n.type === "css-root" && G7(false, n.nodes, -1) === t12)) - return null; - if (t12.type === "value-root" && delete e3.text, (t12.type === "media-query" || t12.type === "media-query-list" || t12.type === "media-feature-expression") && delete e3.value, t12.type === "css-rule" && delete e3.params, t12.type === "selector-combinator" && (e3.value = T3(false, e3.value, /\s+/g, " ")), t12.type === "media-feature" && (e3.value = T3(false, e3.value, " ", "")), (t12.type === "value-word" && (t12.isColor && t12.isHex || ["initial", "inherit", "unset", "revert"].includes(e3.value.toLowerCase())) || t12.type === "media-feature" || t12.type === "selector-root-invalid" || t12.type === "selector-pseudo") && (e3.value = e3.value.toLowerCase()), t12.type === "css-decl" && (e3.prop = e3.prop.toLowerCase()), (t12.type === "css-atrule" || t12.type === "css-import") && (e3.name = e3.name.toLowerCase()), t12.type === "value-number" && (e3.unit = e3.unit.toLowerCase()), t12.type === "value-unknown" && (e3.value = T3(false, e3.value, /;$/g, "")), (t12.type === "media-feature" || t12.type === "media-keyword" || t12.type === "media-type" || t12.type === "media-unknown" || t12.type === "media-url" || t12.type === "media-value" || t12.type === "selector-attribute" || t12.type === "selector-string" || t12.type === "selector-class" || t12.type === "selector-combinator" || t12.type === "value-string") && e3.value && (e3.value = cc3(e3.value)), t12.type === "selector-attribute" && (e3.attribute = e3.attribute.trim(), e3.namespace && typeof e3.namespace == "string" && (e3.namespace = e3.namespace.trim(), e3.namespace.length === 0 && (e3.namespace = true)), e3.value && (e3.value = T3(false, e3.value.trim(), /^["']|["']$/g, ""), delete e3.quoted)), (t12.type === "media-value" || t12.type === "media-type" || t12.type === "value-number" || t12.type === "selector-root-invalid" || t12.type === "selector-class" || t12.type === "selector-combinator" || t12.type === "selector-tag") && e3.value && (e3.value = T3(false, e3.value, /([\d+.Ee-]+)([A-Za-z]*)/g, (r3, s3, i) => { - let o2 = Number(s3); - return Number.isNaN(o2) ? r3 : o2 + i.toLowerCase(); - })), t12.type === "selector-tag") { - let r3 = t12.value.toLowerCase(); - ["from", "to"].includes(r3) && (e3.value = r3); - } - if (t12.type === "css-atrule" && t12.name.toLowerCase() === "supports" && delete e3.value, t12.type === "selector-unknown" && delete e3.value, t12.type === "value-comma_group") { - let r3 = t12.groups.findIndex((s3) => s3.type === "value-number" && s3.unit === "..."); - r3 !== -1 && (e3.groups[r3].unit = "", e3.groups.splice(r3 + 1, 0, { type: "value-word", value: "...", isColor: false, isHex: false })); - } - if (t12.type === "value-comma_group" && t12.groups.some((r3) => r3.type === "value-atword" && r3.value.endsWith("[") || r3.type === "value-word" && r3.value.startsWith("]"))) - return { type: "value-atword", value: t12.groups.map((r3) => r3.value).join(""), group: { open: null, close: null, groups: [], type: "value-paren_group" } }; -} -function cc3(t12) { - return T3(false, T3(false, t12, "'", '"'), /\\([^\dA-Fa-f])/g, "$1"); -} -async function fc2(t12, e3) { - if (t12.lang === "yaml") { - let n = t12.value.trim(), r3 = n ? await e3(n, { parser: "yaml" }) : ""; - return qs5([t12.startDelimiter, _5, r3, r3 ? _5 : "", t12.endDelimiter]); - } -} -function Us6(t12) { - let { node: e3 } = t12; - if (e3.type === "front-matter") - return async (n) => { - let r3 = await $s5(e3, n); - return r3 ? [r3, _5] : void 0; - }; -} -function bc2(t12) { - if (!t12.startsWith("#!")) - return ""; - let e3 = t12.indexOf(` -`); - return e3 === -1 ? t12 : t12.slice(0, e3); -} -function Js6(t12) { - let e3 = js6(t12); - e3 && (t12 = t12.slice(e3.length + 1)); - let n = (0, re8.extract)(t12), { pragmas: r3, comments: s3 } = (0, re8.parseWithComments)(n); - return { shebang: e3, text: t12, pragmas: r3, comments: s3 }; -} -function Xs5(t12) { - let { pragmas: e3 } = Js6(t12); - return Object.prototype.hasOwnProperty.call(e3, "prettier") || Object.prototype.hasOwnProperty.call(e3, "format"); -} -function Zs5(t12) { - let { shebang: e3, text: n, pragmas: r3, comments: s3 } = Js6(t12), i = (0, re8.strip)(n), o2 = (0, re8.print)({ pragmas: { format: "", ...r3 }, comments: s3.trimStart() }); - return (e3 ? `${e3} -` : "") + o2 + (i.startsWith(` -`) ? ` -` : ` - -`) + i; -} -function _c3(t12) { - let e3 = t12.match(kc3); - if (!e3) - return { content: t12 }; - let { startDelimiter: n, language: r3, value: s3 = "", endDelimiter: i } = e3.groups, o2 = r3.trim() || "yaml"; - if (n === "+++" && (o2 = "toml"), o2 !== "yaml" && n !== i) - return { content: t12 }; - let [a] = e3; - return { frontMatter: { type: "front-matter", lang: o2, value: s3, startDelimiter: n, endDelimiter: i, raw: a.replace(/\n$/, "") }, content: T3(false, a, /[^\n]/g, " ") + t12.slice(a.length) }; -} -function ei6(t12) { - return Xs5(je9(t12).content); -} -function ti6(t12) { - let { frontMatter: e3, content: n } = je9(t12); - return (e3 ? e3.raw + ` - -` : "") + Zs5(n); -} -function Xe7(t12) { - if (Je8 !== null && typeof Je8.property) { - let e3 = Je8; - return Je8 = Xe7.prototype = null, e3; - } - return Je8 = Xe7.prototype = t12 ?? /* @__PURE__ */ Object.create(null), new Xe7(); -} -function nn5(t12) { - return Xe7(t12); -} -function Ec2(t12, e3 = "type") { - nn5(t12); - function n(r3) { - let s3 = r3[e3], i = t12[s3]; - if (!Array.isArray(i)) - throw Object.assign(new Error(`Missing visitor keys for '${s3}'.`), { node: r3 }); - return i; - } - return n; -} -function ii7(t12) { - var e3, n; - return (n = (e3 = t12.findAncestor((r3) => r3.type === "css-decl")) == null ? void 0 : e3.prop) == null ? void 0 : n.toLowerCase(); -} -function oi6(t12) { - return Ac2.has(t12.toLowerCase()); -} -function ai6(t12, e3) { - var r3; - let n = t12.findAncestor((s3) => s3.type === "css-atrule"); - return ((r3 = n == null ? void 0 : n.name) == null ? void 0 : r3.toLowerCase().endsWith("keyframes")) && ["from", "to"].includes(e3.toLowerCase()); -} -function ne8(t12) { - return t12.includes("$") || t12.includes("@") || t12.includes("#") || t12.startsWith("%") || t12.startsWith("--") || t12.startsWith(":--") || t12.includes("(") && t12.includes(")") ? t12 : t12.toLowerCase(); -} -function Ee5(t12, e3) { - var r3; - let n = t12.findAncestor((s3) => s3.type === "value-func"); - return ((r3 = n == null ? void 0 : n.value) == null ? void 0 : r3.toLowerCase()) === e3; -} -function ui6(t12) { - var r3; - let e3 = t12.findAncestor((s3) => s3.type === "css-rule"), n = (r3 = e3 == null ? void 0 : e3.raws) == null ? void 0 : r3.selector; - return n && (n.startsWith(":import") || n.startsWith(":export")); -} -function Se8(t12, e3) { - let n = Array.isArray(e3) ? e3 : [e3], r3 = t12.findAncestor((s3) => s3.type === "css-atrule"); - return r3 && n.includes(r3.name.toLowerCase()); -} -function li5(t12) { - var n; - let { node: e3 } = t12; - return e3.groups[0].value === "url" && e3.groups.length === 2 && ((n = t12.findAncestor((r3) => r3.type === "css-atrule")) == null ? void 0 : n.name) === "import"; -} -function ci5(t12) { - return t12.type === "value-func" && t12.value.toLowerCase() === "url"; -} -function fi6(t12) { - return t12.type === "value-func" && t12.value.toLowerCase() === "var"; -} -function Nt7(t12, e3) { - var r3; - let n = (r3 = t12.parent) == null ? void 0 : r3.nodes; - return n && n.indexOf(e3) === n.length - 1; -} -function pi6(t12) { - let { selector: e3 } = t12; - return e3 ? typeof e3 == "string" && /^@.+:.*$/.test(e3) || e3.value && /^@.+:.*$/.test(e3.value) : false; -} -function hi6(t12) { - return t12.type === "value-word" && ["from", "through", "end"].includes(t12.value); -} -function di5(t12) { - return t12.type === "value-word" && ["and", "or", "not"].includes(t12.value); -} -function mi5(t12) { - return t12.type === "value-word" && t12.value === "in"; -} -function Pt7(t12) { - return t12.type === "value-operator" && t12.value === "*"; -} -function Ze9(t12) { - return t12.type === "value-operator" && t12.value === "/"; -} -function j7(t12) { - return t12.type === "value-operator" && t12.value === "+"; -} -function he7(t12) { - return t12.type === "value-operator" && t12.value === "-"; -} -function Nc3(t12) { - return t12.type === "value-operator" && t12.value === "%"; -} -function Rt6(t12) { - return Pt7(t12) || Ze9(t12) || j7(t12) || he7(t12) || Nc3(t12); -} -function yi5(t12) { - return t12.type === "value-word" && ["==", "!="].includes(t12.value); -} -function gi5(t12) { - return t12.type === "value-word" && ["<", ">", "<=", ">="].includes(t12.value); -} -function et7(t12, e3) { - return e3.parser === "scss" && t12.type === "css-atrule" && ["if", "else", "for", "each", "while"].includes(t12.name); -} -function on4(t12) { - var e3; - return ((e3 = t12.raws) == null ? void 0 : e3.params) && /^\(\s*\)$/.test(t12.raws.params); -} -function an4(t12) { - return t12.name.startsWith("prettier-placeholder"); -} -function wi5(t12) { - return t12.prop.startsWith("@prettier-placeholder"); -} -function vi6(t12, e3) { - return t12.value === "$$" && t12.type === "value-func" && (e3 == null ? void 0 : e3.type) === "value-word" && !e3.raws.before; -} -function xi6(t12) { - var e3, n; - return ((e3 = t12.value) == null ? void 0 : e3.type) === "value-root" && ((n = t12.value.group) == null ? void 0 : n.type) === "value-value" && t12.prop.toLowerCase() === "composes"; -} -function bi6(t12) { - var e3, n, r3; - return ((r3 = (n = (e3 = t12.value) == null ? void 0 : e3.group) == null ? void 0 : n.group) == null ? void 0 : r3.type) === "value-paren_group" && t12.value.group.group.open !== null && t12.value.group.group.close !== null; -} -function de6(t12) { - var e3; - return ((e3 = t12.raws) == null ? void 0 : e3.before) === ""; -} -function It6(t12) { - var e3, n; - return t12.type === "value-comma_group" && ((n = (e3 = t12.groups) == null ? void 0 : e3[1]) == null ? void 0 : n.type) === "value-colon"; -} -function sn5(t12) { - var e3; - return t12.type === "value-paren_group" && ((e3 = t12.groups) == null ? void 0 : e3[0]) && It6(t12.groups[0]); -} -function un4(t12, e3) { - var i; - if (e3.parser !== "scss") - return false; - let { node: n } = t12; - if (n.groups.length === 0) - return false; - let r3 = t12.grandparent; - if (!sn5(n) && !(r3 && sn5(r3))) - return false; - let s3 = t12.findAncestor((o2) => o2.type === "css-decl"); - return !!((i = s3 == null ? void 0 : s3.prop) != null && i.startsWith("$") || sn5(r3) || r3.type === "value-func"); -} -function ln4(t12) { - return t12.type === "value-comment" && t12.inline; -} -function qt3(t12) { - return t12.type === "value-word" && t12.value === "#"; -} -function cn4(t12) { - return t12.type === "value-word" && t12.value === "{"; -} -function Dt7(t12) { - return t12.type === "value-word" && t12.value === "}"; -} -function tt7(t12) { - return ["value-word", "value-atword"].includes(t12.type); -} -function Lt7(t12) { - return (t12 == null ? void 0 : t12.type) === "value-colon"; -} -function ki5(t12, e3) { - if (!It6(e3)) - return false; - let { groups: n } = e3, r3 = n.indexOf(t12); - return r3 === -1 ? false : Lt7(n[r3 + 1]); -} -function _i4(t12) { - return t12.value && ["not", "and", "or"].includes(t12.value.toLowerCase()); -} -function Ti5(t12) { - return t12.type !== "value-func" ? false : Oc3.has(t12.value.toLowerCase()); -} -function Ce8(t12) { - return /\/\//.test(t12.split(/[\n\r]/).pop()); -} -function rt6(t12) { - return (t12 == null ? void 0 : t12.type) === "value-atword" && t12.value.startsWith("prettier-placeholder-"); -} -function Ei5(t12, e3) { - var n, r3; - if (((n = t12.open) == null ? void 0 : n.value) !== "(" || ((r3 = t12.close) == null ? void 0 : r3.value) !== ")" || t12.groups.some((s3) => s3.type !== "value-comma_group")) - return false; - if (e3.type === "value-comma_group") { - let s3 = e3.groups.indexOf(t12) - 1, i = e3.groups[s3]; - if ((i == null ? void 0 : i.type) === "value-word" && i.value === "with") - return true; - } - return false; -} -function nt5(t12) { - var e3, n; - return t12.type === "value-paren_group" && ((e3 = t12.open) == null ? void 0 : e3.value) === "(" && ((n = t12.close) == null ? void 0 : n.value) === ")"; -} -function Mt6(t12) { - return (e3, n, r3) => { - let s3 = !!(r3 != null && r3.backwards); - if (n === false) - return false; - let { length: i } = e3, o2 = n; - for (; o2 >= 0 && o2 < i; ) { - let a = e3.charAt(o2); - if (t12 instanceof RegExp) { - if (!t12.test(a)) - return o2; - } else if (!t12.includes(a)) - return o2; - s3 ? o2-- : o2++; - } - return o2 === -1 || o2 === i ? o2 : false; - }; -} -function Pc3(t12, e3) { - let n = 0; - for (let r3 = 0; r3 < t12.line - 1; ++r3) - n = e3.indexOf(` -`, n) + 1; - return n + t12.column; -} -function Ci5(t12, e3) { - var n, r3, s3; - if (typeof ((r3 = (n = t12.source) == null ? void 0 : n.start) == null ? void 0 : r3.offset) == "number") - return t12.source.start.offset; - if (typeof t12.sourceIndex == "number") - return t12.sourceIndex; - if ((s3 = t12.source) != null && s3.start) - return fn4(t12.source.start, e3); - throw Object.assign(new Error("Can not locate node."), { node: t12 }); -} -function pn4(t12, e3) { - var n, r3; - if (t12.type === "css-comment" && t12.inline) - return Ft6(e3, t12.source.startOffset); - if (typeof ((r3 = (n = t12.source) == null ? void 0 : n.end) == null ? void 0 : r3.offset) == "number") - return t12.source.end.offset + 1; - if (t12.source) { - if (t12.source.end) - return fn4(t12.source.end, e3); - if (ee8(t12.nodes)) - return pn4(G7(false, t12.nodes, -1), e3); - } - return null; -} -function hn4(t12, e3) { - t12.source && (t12.source.startOffset = Ci5(t12, e3), t12.source.endOffset = pn4(t12, e3)); - for (let n in t12) { - let r3 = t12[n]; - n === "source" || !r3 || typeof r3 != "object" || (r3.type === "value-root" || r3.type === "value-unknown" ? Oi5(r3, Rc3(t12), r3.text || r3.value) : hn4(r3, e3)); - } -} -function Oi5(t12, e3, n) { - t12.source && (t12.source.startOffset = Ci5(t12, n) + e3, t12.source.endOffset = pn4(t12, n) + e3); - for (let r3 in t12) { - let s3 = t12[r3]; - r3 === "source" || !s3 || typeof s3 != "object" || Oi5(s3, e3, n); - } -} -function Rc3(t12) { - var n; - let e3 = t12.source.startOffset; - return typeof t12.prop == "string" && (e3 += t12.prop.length), t12.type === "css-atrule" && typeof t12.name == "string" && (e3 += 1 + t12.name.length + t12.raws.afterName.match(/^\s*:?\s*/)[0].length), t12.type !== "css-atrule" && typeof ((n = t12.raws) == null ? void 0 : n.between) == "string" && (e3 += t12.raws.between.length), e3; -} -function Ai5(t12) { - let e3 = "initial", n = "initial", r3, s3 = false, i = []; - for (let o2 = 0; o2 < t12.length; o2++) { - let a = t12[o2]; - switch (e3) { - case "initial": - if (a === "'") { - e3 = "single-quotes"; - continue; - } - if (a === '"') { - e3 = "double-quotes"; - continue; - } - if ((a === "u" || a === "U") && t12.slice(o2, o2 + 4).toLowerCase() === "url(") { - e3 = "url", o2 += 3; - continue; - } - if (a === "*" && t12[o2 - 1] === "/") { - e3 = "comment-block"; - continue; - } - if (a === "/" && t12[o2 - 1] === "/") { - e3 = "comment-inline", r3 = o2 - 1; - continue; - } - continue; - case "single-quotes": - if (a === "'" && t12[o2 - 1] !== "\\" && (e3 = n, n = "initial"), a === ` -` || a === "\r") - return t12; - continue; - case "double-quotes": - if (a === '"' && t12[o2 - 1] !== "\\" && (e3 = n, n = "initial"), a === ` -` || a === "\r") - return t12; - continue; - case "url": - if (a === ")" && (e3 = "initial"), a === ` -` || a === "\r") - return t12; - if (a === "'") { - e3 = "single-quotes", n = "url"; - continue; - } - if (a === '"') { - e3 = "double-quotes", n = "url"; - continue; - } - continue; - case "comment-block": - a === "/" && t12[o2 - 1] === "*" && (e3 = "initial"); - continue; - case "comment-inline": - (a === '"' || a === "'" || a === "*") && (s3 = true), (a === ` -` || a === "\r") && (s3 && i.push([r3, o2]), e3 = "initial", s3 = false); - continue; - } - } - for (let [o2, a] of i) - t12 = t12.slice(0, o2) + T3(false, t12.slice(o2, a), /["'*]/g, " ") + t12.slice(a); - return t12; -} -function P8(t12) { - var e3; - return (e3 = t12.source) == null ? void 0 : e3.startOffset; -} -function R7(t12) { - var e3; - return (e3 = t12.source) == null ? void 0 : e3.endOffset; -} -function Ic3(t12) { - return t12.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/, "$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/, "$1").replace(/^([+-])?\./, "$10.").replace(/(\.\d+?)0+(?=e|$)/, "$1").replace(/\.(?=e|$)/, ""); -} -function Pi5(t12) { - let e3 = t12.toLowerCase(); - return dn3.has(e3) ? dn3.get(e3) : t12; -} -function W6(t12, e3) { - return T3(false, t12, Ri3, (n) => St6(n, e3)); -} -function Ii4(t12, e3) { - let n = e3.singleQuote ? "'" : '"'; - return t12.includes('"') || t12.includes("'") ? t12 : n + t12 + n; -} -function me7(t12) { - return T3(false, t12, Mc3, (e3, n, r3, s3, i) => !r3 && s3 ? mn4(s3) + ne8(i || "") : e3); -} -function mn4(t12) { - return Ni5(t12).replace(/\.0(?=$|e)/, ""); -} -function qi4(t12) { - return t12.trailingComma === "es5" || t12.trailingComma === "all"; -} -function Bc2(t12, e3, n) { - var d5; - let { node: r3 } = t12, s3 = t12.parent, i = t12.grandparent, o2 = ii7(t12), a = o2 && s3.type === "value-value" && (o2 === "grid" || o2.startsWith("grid-template")), u = t12.findAncestor((m3) => m3.type === "css-atrule"), c3 = u && et7(u, e3), f3 = r3.groups.some((m3) => ln4(m3)), p4 = t12.map(n, "groups"), l = [], g3 = Ee5(t12, "url"), x7 = false, h4 = false; - for (let m3 = 0; m3 < r3.groups.length; ++m3) { - l.push(p4[m3]); - let b5 = r3.groups[m3 - 1], w4 = r3.groups[m3], v7 = r3.groups[m3 + 1], N6 = r3.groups[m3 + 2]; - if (g3) { - (v7 && j7(v7) || j7(w4)) && l.push(" "); - continue; - } - if (Se8(t12, "forward") && w4.type === "value-word" && w4.value && b5 !== void 0 && b5.type === "value-word" && b5.value === "as" && v7.type === "value-operator" && v7.value === "*" || !v7 || w4.type === "value-word" && w4.value.endsWith("-") && rt6(v7)) - continue; - if (w4.type === "value-string" && w4.quoted) { - let O7 = w4.value.lastIndexOf("#{"), ve9 = w4.value.lastIndexOf("}"); - O7 !== -1 && ve9 !== -1 ? x7 = O7 > ve9 : O7 !== -1 ? x7 = true : ve9 !== -1 && (x7 = false); - } - if (x7 || Lt7(w4) || Lt7(v7) || w4.type === "value-atword" && (w4.value === "" || w4.value.endsWith("[")) || v7.type === "value-word" && v7.value.startsWith("]") || w4.value === "~" || w4.type !== "value-string" && w4.value && w4.value.includes("\\") && v7 && v7.type !== "value-comment" || b5 != null && b5.value && b5.value.indexOf("\\") === b5.value.length - 1 && w4.type === "value-operator" && w4.value === "/" || w4.value === "\\" || vi6(w4, v7) || qt3(w4) || cn4(w4) || Dt7(v7) || cn4(v7) && de6(v7) || Dt7(w4) && de6(v7) || w4.value === "--" && qt3(v7)) - continue; - let $8 = Rt6(w4), H10 = Rt6(v7); - if (($8 && qt3(v7) || H10 && Dt7(w4)) && de6(v7) || !b5 && Ze9(w4) || Ee5(t12, "calc") && (j7(w4) || j7(v7) || he7(w4) || he7(v7)) && de6(v7)) - continue; - let U8 = (j7(w4) || he7(w4)) && m3 === 0 && (v7.type === "value-number" || v7.isHex) && i && Ti5(i) && !de6(v7), S6 = (N6 == null ? void 0 : N6.type) === "value-func" || N6 && tt7(N6) || w4.type === "value-func" || tt7(w4), C6 = v7.type === "value-func" || tt7(v7) || (b5 == null ? void 0 : b5.type) === "value-func" || b5 && tt7(b5); - if (e3.parser === "scss" && $8 && w4.value === "-" && v7.type === "value-func") { - l.push(" "); - continue; - } - if (!(!(Pt7(v7) || Pt7(w4)) && !Ee5(t12, "calc") && !U8 && (Ze9(v7) && !S6 || Ze9(w4) && !C6 || j7(v7) && !S6 || j7(w4) && !C6 || he7(v7) || he7(w4)) && (de6(v7) || $8 && (!b5 || b5 && Rt6(b5)))) && !((e3.parser === "scss" || e3.parser === "less") && $8 && w4.value === "-" && nt5(v7) && R7(w4) === P8(v7.open) && v7.open.value === "(")) { - if (ln4(w4)) { - if (s3.type === "value-paren_group") { - l.push(fe7(_5)); - continue; - } - l.push(_5); - continue; - } - if (c3 && (yi5(v7) || gi5(v7) || di5(v7) || mi5(w4) || hi6(w4))) { - l.push(" "); - continue; - } - if (u && u.name.toLowerCase() === "namespace") { - l.push(" "); - continue; - } - if (a) { - w4.source && v7.source && w4.source.start.line !== v7.source.start.line ? (l.push(_5), h4 = true) : l.push(" "); - continue; - } - if (H10) { - l.push(" "); - continue; - } - if ((v7 == null ? void 0 : v7.value) !== "..." && !(rt6(w4) && rt6(v7) && R7(w4) === P8(v7))) { - if (rt6(w4) && nt5(v7) && R7(w4) === P8(v7.open)) { - l.push(M7); - continue; - } - if (w4.value === "with" && nt5(v7)) { - l.push(" "); - continue; - } - (d5 = w4.value) != null && d5.endsWith("#") && v7.value === "{" && nt5(v7.group) || l.push(A5); - } - } - } - return f3 && l.push(Qe8), h4 && l.unshift(_5), c3 ? D4(q6(l)) : li5(t12) ? D4(He7(l)) : D4(q6(He7(l))); -} -function Fc2(t12, e3, n) { - let r3 = !!(n != null && n.backwards); - if (e3 === false) - return false; - let s3 = t12.charAt(e3); - if (r3) { - if (t12.charAt(e3 - 1) === "\r" && s3 === ` -`) - return e3 - 2; - if (s3 === ` -` || s3 === "\r" || s3 === "\u2028" || s3 === "\u2029") - return e3 - 1; - } else { - if (s3 === "\r" && t12.charAt(e3 + 1) === ` -`) - return e3 + 2; - if (s3 === ` -` || s3 === "\r" || s3 === "\u2028" || s3 === "\u2029") - return e3 + 1; - } - return e3; -} -function $c3(t12, e3) { - if (e3 === false) - return false; - if (t12.charAt(e3) === "/" && t12.charAt(e3 + 1) === "*") { - for (let n = e3 + 2; n < t12.length; ++n) - if (t12.charAt(n) === "*" && t12.charAt(n + 1) === "/") - return n + 2; - } - return e3; -} -function Uc3(t12, e3) { - return e3 === false ? false : t12.charAt(e3) === "/" && t12.charAt(e3 + 1) === "/" ? Ft6(t12, e3) : e3; -} -function Wc3(t12, e3, n = {}) { - let r3 = Bt6(t12, n.backwards ? e3 - 1 : e3, n), s3 = $t7(t12, r3, n); - return r3 !== s3; -} -function zc2(t12, e3) { - let n = null, r3 = e3; - for (; r3 !== n; ) - n = r3, r3 = Si4(t12, r3), r3 = Li4(t12, r3), r3 = Bt6(t12, r3); - return r3 = Mi4(t12, r3), r3 = $t7(t12, r3), r3 !== false && Ut4(t12, r3); -} -function Vc3({ node: t12, parent: e3 }, n) { - return !!(t12.source && n.originalText.slice(P8(t12), P8(e3.close)).trimEnd().endsWith(",")); -} -function Yc3(t12, e3) { - return fi6(t12.grandparent) && Vc3(t12, e3) ? "," : t12.node.type !== "value-comment" && !(t12.node.type === "value-comma_group" && t12.node.groups.every((n) => n.type === "value-comment")) && qi4(e3) && t12.callParent(() => un4(t12, e3)) ? At6(",") : ""; -} -function Bi5(t12, e3, n) { - let { node: r3, parent: s3 } = t12, i = t12.map(({ node: g3 }) => typeof g3 == "string" ? g3 : n(), "groups"); - if (s3 && ci5(s3) && (r3.groups.length === 1 || r3.groups.length > 0 && r3.groups[0].type === "value-comma_group" && r3.groups[0].groups.length > 0 && r3.groups[0].groups[0].type === "value-word" && r3.groups[0].groups[0].value.startsWith("data:"))) - return [r3.open ? n("open") : "", Y9(",", i), r3.close ? n("close") : ""]; - if (!r3.open) { - let g3 = yn4(t12), x7 = Y9([",", g3 ? _5 : A5], i); - return q6(g3 ? [_5, x7] : D4(He7(x7))); - } - let o2 = t12.map(({ node: g3, isLast: x7, index: h4 }) => { - var b5; - let d5 = i[h4]; - if (It6(g3) && g3.type === "value-comma_group" && g3.groups && g3.groups[0].type !== "value-paren_group" && ((b5 = g3.groups[2]) == null ? void 0 : b5.type) === "value-paren_group") { - let w4 = Ds7(d5.contents.contents); - w4[1] = D4(w4[1]), d5 = D4(fe7(d5)); - } - let m3 = [d5, x7 ? Yc3(t12, e3) : ","]; - if (!x7 && g3.type === "value-comma_group" && ee8(g3.groups)) { - let w4 = G7(false, g3.groups, -1); - !w4.source && w4.close && (w4 = w4.close), w4.source && Wt5(e3.originalText, R7(w4)) && m3.push(_5); - } - return m3; - }, "groups"), a = ki5(r3, s3), u = Ei5(r3, s3), c3 = un4(t12, e3), f3 = u || c3 && !a, p4 = u || a, l = D4([r3.open ? n("open") : "", q6([M7, Y9(A5, o2)]), M7, r3.close ? n("close") : ""], { shouldBreak: f3 }); - return p4 ? fe7(l) : l; -} -function yn4(t12) { - return t12.match((e3) => e3.type === "value-paren_group" && !e3.open && e3.groups.some((n) => n.type === "value-comma_group"), (e3, n) => n === "group" && e3.type === "value-value", (e3, n) => n === "group" && e3.type === "value-root", (e3, n) => n === "value" && (e3.type === "css-decl" && !e3.prop.startsWith("--") || e3.type === "css-atrule" && e3.variable)); -} -function Gc3(t12, e3, n) { - let r3 = []; - return t12.each(() => { - let { node: s3, previous: i } = t12; - if ((i == null ? void 0 : i.type) === "css-comment" && i.text.trim() === "prettier-ignore" ? r3.push(e3.originalText.slice(P8(s3), R7(s3))) : r3.push(n()), t12.isLast) - return; - let { next: o2 } = t12; - o2.type === "css-comment" && !Ut4(e3.originalText, P8(o2), { backwards: true }) && !Te8(s3) || o2.type === "css-atrule" && o2.name === "else" && s3.type !== "css-comment" ? r3.push(" ") : (r3.push(e3.__isHTMLStyleAttribute ? A5 : _5), Wt5(e3.originalText, R7(s3)) && !Te8(s3) && r3.push(_5)); - }, "nodes"), r3; -} -function Kc2(t12, e3, n) { - var s3, i, o2, a, u, c3; - let { node: r3 } = t12; - switch (r3.type) { - case "front-matter": - return [r3.raw, _5]; - case "css-root": { - let f3 = Oe9(t12, e3, n), p4 = r3.raws.after.trim(); - return p4.startsWith(";") && (p4 = p4.slice(1).trim()), [r3.frontMatter ? [n("frontMatter"), _5] : "", f3, p4 ? ` ${p4}` : "", r3.nodes.length > 0 ? _5 : ""]; - } - case "css-comment": { - let f3 = r3.inline || r3.raws.inline, p4 = e3.originalText.slice(P8(r3), R7(r3)); - return f3 ? p4.trimEnd() : p4; - } - case "css-rule": - return [n("selector"), r3.important ? " !important" : "", r3.nodes ? [((s3 = r3.selector) == null ? void 0 : s3.type) === "selector-unknown" && Ce8(r3.selector.value) ? A5 : r3.selector ? " " : "", "{", r3.nodes.length > 0 ? q6([_5, Oe9(t12, e3, n)]) : "", _5, "}", pi6(r3) ? ";" : ""] : ";"]; - case "css-decl": { - let f3 = t12.parent, { between: p4 } = r3.raws, l = p4.trim(), g3 = l === ":", x7 = typeof r3.value == "string" && /^ *$/.test(r3.value), h4 = typeof r3.value == "string" ? r3.value : n("value"); - return h4 = xi6(r3) ? Ls5(h4) : h4, !g3 && Ce8(l) && !((o2 = (i = r3.value) == null ? void 0 : i.group) != null && o2.group && t12.call(() => yn4(t12), "value", "group", "group")) && (h4 = q6([_5, fe7(h4)])), [T3(false, r3.raws.before, /[\s;]/g, ""), f3.type === "css-atrule" && f3.variable || ui6(t12) ? r3.prop : ne8(r3.prop), l.startsWith("//") ? " " : "", l, r3.extend || x7 ? "" : " ", e3.parser === "less" && r3.extend && r3.selector ? ["extend(", n("selector"), ")"] : "", h4, r3.raws.important ? r3.raws.important.replace(/\s*!\s*important/i, " !important") : r3.important ? " !important" : "", r3.raws.scssDefault ? r3.raws.scssDefault.replace(/\s*!default/i, " !default") : r3.scssDefault ? " !default" : "", r3.raws.scssGlobal ? r3.raws.scssGlobal.replace(/\s*!global/i, " !global") : r3.scssGlobal ? " !global" : "", r3.nodes ? [" {", q6([M7, Oe9(t12, e3, n)]), M7, "}"] : wi5(r3) && !f3.raws.semicolon && e3.originalText[R7(r3) - 1] !== ";" ? "" : e3.__isHTMLStyleAttribute && Nt7(t12, r3) ? At6(";") : ";"]; - } - case "css-atrule": { - let f3 = t12.parent, p4 = an4(r3) && !f3.raws.semicolon && e3.originalText[R7(r3) - 1] !== ";"; - if (e3.parser === "less") { - if (r3.mixin) - return [n("selector"), r3.important ? " !important" : "", p4 ? "" : ";"]; - if (r3.function) - return [r3.name, typeof r3.params == "string" ? r3.params : n("params"), p4 ? "" : ";"]; - if (r3.variable) - return ["@", r3.name, ": ", r3.value ? n("value") : "", r3.raws.between.trim() ? r3.raws.between.trim() + " " : "", r3.nodes ? ["{", q6([r3.nodes.length > 0 ? M7 : "", Oe9(t12, e3, n)]), M7, "}"] : "", p4 ? "" : ";"]; - } - let l = r3.name === "import" && ((a = r3.params) == null ? void 0 : a.type) === "value-unknown" && r3.params.value.endsWith(";"); - return ["@", on4(r3) || r3.name.endsWith(":") ? r3.name : ne8(r3.name), r3.params ? [on4(r3) ? "" : an4(r3) ? r3.raws.afterName === "" ? "" : r3.name.endsWith(":") ? " " : /^\s*\n\s*\n/.test(r3.raws.afterName) ? [_5, _5] : /^\s*\n/.test(r3.raws.afterName) ? _5 : " " : " ", typeof r3.params == "string" ? r3.params : n("params")] : "", r3.selector ? q6([" ", n("selector")]) : "", r3.value ? D4([" ", n("value"), et7(r3, e3) ? bi6(r3) ? " " : A5 : ""]) : r3.name === "else" ? " " : "", r3.nodes ? [et7(r3, e3) ? "" : r3.selector && !r3.selector.nodes && typeof r3.selector.value == "string" && Ce8(r3.selector.value) || !r3.selector && typeof r3.params == "string" && Ce8(r3.params) ? A5 : " ", "{", q6([r3.nodes.length > 0 ? M7 : "", Oe9(t12, e3, n)]), M7, "}"] : p4 || l ? "" : ";"]; - } - case "media-query-list": { - let f3 = []; - return t12.each(({ node: p4 }) => { - p4.type === "media-query" && p4.value === "" || f3.push(n()); - }, "nodes"), D4(q6(Y9(A5, f3))); - } - case "media-query": - return [Y9(" ", t12.map(n, "nodes")), Nt7(t12, r3) ? "" : ","]; - case "media-type": - return me7(W6(r3.value, e3)); - case "media-feature-expression": - return r3.nodes ? ["(", ...t12.map(n, "nodes"), ")"] : r3.value; - case "media-feature": - return ne8(W6(T3(false, r3.value, / +/g, " "), e3)); - case "media-colon": - return [r3.value, " "]; - case "media-value": - return me7(W6(r3.value, e3)); - case "media-keyword": - return W6(r3.value, e3); - case "media-url": - return W6(T3(false, T3(false, r3.value, /^url\(\s+/gi, "url("), /\s+\)$/g, ")"), e3); - case "media-unknown": - return r3.value; - case "selector-root": - return D4([Se8(t12, "custom-selector") ? [t12.findAncestor((f3) => f3.type === "css-atrule").customSelector, A5] : "", Y9([",", Se8(t12, ["extend", "custom-selector", "nest"]) ? A5 : _5], t12.map(n, "nodes"))]); - case "selector-selector": - return D4(q6(t12.map(n, "nodes"))); - case "selector-comment": - return r3.value; - case "selector-string": - return W6(r3.value, e3); - case "selector-tag": - return [r3.namespace ? [r3.namespace === true ? "" : r3.namespace.trim(), "|"] : "", ((u = t12.previous) == null ? void 0 : u.type) === "selector-nesting" ? r3.value : me7(ai6(t12, r3.value) ? r3.value.toLowerCase() : r3.value)]; - case "selector-id": - return ["#", r3.value]; - case "selector-class": - return [".", me7(W6(r3.value, e3))]; - case "selector-attribute": - return ["[", r3.namespace ? [r3.namespace === true ? "" : r3.namespace.trim(), "|"] : "", r3.attribute.trim(), r3.operator ?? "", r3.value ? Ii4(W6(r3.value.trim(), e3), e3) : "", r3.insensitive ? " i" : "", "]"]; - case "selector-combinator": { - if (r3.value === "+" || r3.value === ">" || r3.value === "~" || r3.value === ">>>") { - let l = t12.parent; - return [l.type === "selector-selector" && l.nodes[0] === r3 ? "" : A5, r3.value, Nt7(t12, r3) ? "" : " "]; - } - let f3 = r3.value.trim().startsWith("(") ? A5 : "", p4 = me7(W6(r3.value.trim(), e3)) || A5; - return [f3, p4]; - } - case "selector-universal": - return [r3.namespace ? [r3.namespace === true ? "" : r3.namespace.trim(), "|"] : "", r3.value]; - case "selector-pseudo": - return [ne8(r3.value), ee8(r3.nodes) ? D4(["(", q6([M7, Y9([",", A5], t12.map(n, "nodes"))]), M7, ")"]) : ""]; - case "selector-nesting": - return r3.value; - case "selector-unknown": { - let f3 = t12.findAncestor((g3) => g3.type === "css-rule"); - if (f3 != null && f3.isSCSSNesterProperty) - return me7(W6(ne8(r3.value), e3)); - let p4 = t12.parent; - if ((c3 = p4.raws) != null && c3.selector) { - let g3 = P8(p4), x7 = g3 + p4.raws.selector.length; - return e3.originalText.slice(g3, x7).trim(); - } - let l = t12.grandparent; - if (p4.type === "value-paren_group" && (l == null ? void 0 : l.type) === "value-func" && l.value === "selector") { - let g3 = R7(p4.open) + 1, x7 = P8(p4.close), h4 = e3.originalText.slice(g3, x7).trim(); - return Ce8(h4) ? [Qe8, h4] : h4; - } - return r3.value; - } - case "value-value": - case "value-root": - return n("group"); - case "value-comment": - return e3.originalText.slice(P8(r3), R7(r3)); - case "value-comma_group": - return Di5(t12, e3, n); - case "value-paren_group": - return Bi5(t12, e3, n); - case "value-func": - return [r3.value, Se8(t12, "supports") && _i4(r3) ? " " : "", n("group")]; - case "value-paren": - return r3.value; - case "value-number": - return [mn4(r3.value), Pi5(r3.unit)]; - case "value-operator": - return r3.value; - case "value-word": - return r3.isColor && r3.isHex || oi6(r3.value) ? r3.value.toLowerCase() : r3.value; - case "value-colon": { - let { previous: f3 } = t12; - return [r3.value, typeof (f3 == null ? void 0 : f3.value) == "string" && f3.value.endsWith("\\") || Ee5(t12, "url") ? "" : A5]; - } - case "value-string": - return St6(r3.raws.quote + r3.value + r3.raws.quote, e3); - case "value-atword": - return ["@", r3.value]; - case "value-unicode-range": - return r3.value; - case "value-unknown": - return r3.value; - case "value-comma": - default: - throw new Ms5(r3, "PostCSS"); - } -} -function Jp2(t12, e3) { - let n = new SyntaxError(t12 + " (" + e3.loc.start.line + ":" + e3.loc.start.column + ")"); - return Object.assign(n, e3); -} -function Xp2(t12, e3) { - return e3.parser !== "scss" || !t12.selector ? false : t12.selector.replace(/\/\*.*?\*\//, "").replace(/\/\/.*\n/, "").trim().endsWith(":"); -} -function eh(t12) { - return Zp2.has(t12); -} -function od(t12) { - return Ar6(t12).text.slice(t12.group.open.sourceIndex + 1, t12.group.close.sourceIndex).trim(); -} -function ad(t12) { - if (ee8(t12)) { - for (let e3 = t12.length - 1; e3 > 0; e3--) - if (t12[e3].type === "word" && t12[e3].value === "{" && t12[e3 - 1].type === "word" && t12[e3 - 1].value.endsWith("#")) - return true; - } - return false; -} -function ud(t12) { - return t12.some((e3) => e3.type === "string" || e3.type === "func" && !e3.value.endsWith("\\")); -} -function ld(t12, e3) { - return !!(e3.parser === "scss" && (t12 == null ? void 0 : t12.type) === "word" && t12.value.startsWith("$")); -} -function X7(t12, e3, n) { - if (t12 && typeof t12 == "object") { - delete t12.parent; - for (let r3 in t12) - X7(t12[r3], e3, n), r3 === "type" && typeof t12[r3] == "string" && !t12[r3].startsWith(e3) && (!n || !n.test(t12[r3])) && (t12[r3] = e3 + t12[r3]); - } - return t12; -} -function ms5(t12) { - if (t12 && typeof t12 == "object") { - delete t12.parent; - for (let e3 in t12) - ms5(t12[e3]); - !Array.isArray(t12) && t12.value && !t12.type && (t12.type = "unknown"); - } - return t12; -} -function xg2(t12) { - if (/\/\/|\/\*/.test(t12)) - return { type: "selector-unknown", value: t12.trim() }; - let e3; - try { - new _l2.default((n) => { - e3 = n; - }).process(t12); - } catch { - return { type: "selector-unknown", value: t12 }; - } - return X7(e3, "selector-"); -} -function bg2(t12, e3) { - var u; - let { nodes: n } = t12, r3 = { open: null, close: null, groups: [], type: "paren_group" }, s3 = [r3], i = r3, o2 = { groups: [], type: "comma_group" }, a = [o2]; - for (let c3 = 0; c3 < n.length; ++c3) { - let f3 = n[c3]; - if (e3.parser === "scss" && f3.type === "number" && f3.unit === ".." && f3.value.endsWith(".") && (f3.value = f3.value.slice(0, -1), f3.unit = "..."), f3.type === "func" && f3.value === "selector" && (f3.group.groups = [Z8(Ar6(t12).text.slice(f3.group.open.sourceIndex + 1, f3.group.close.sourceIndex))]), f3.type === "func" && f3.value === "url") { - let p4 = ((u = f3.group) == null ? void 0 : u.groups) ?? [], l = []; - for (let g3 = 0; g3 < p4.length; g3++) { - let x7 = p4[g3]; - x7.type === "comma_group" ? l = [...l, ...x7.groups] : l.push(x7); - } - (Nu4(l) || !Pu3(l) && !Ru3(l[0], e3)) && (f3.group.groups = [Au3(f3)]); - } - if (f3.type === "paren" && f3.value === "(") - r3 = { open: f3, close: null, groups: [], type: "paren_group" }, s3.push(r3), o2 = { groups: [], type: "comma_group" }, a.push(o2); - else if (f3.type === "paren" && f3.value === ")") { - if (o2.groups.length > 0 && r3.groups.push(o2), r3.close = f3, a.length === 1) - throw new Error("Unbalanced parenthesis"); - a.pop(), o2 = G7(false, a, -1), o2.groups.push(r3), s3.pop(), r3 = G7(false, s3, -1); - } else - f3.type === "comma" ? (r3.groups.push(o2), o2 = { groups: [], type: "comma_group" }, a[a.length - 1] = o2) : o2.groups.push(f3); - } - return o2.groups.length > 0 && r3.groups.push(o2), i; -} -function Xr5(t12) { - return t12.type === "paren_group" && !t12.open && !t12.close && t12.groups.length === 1 || t12.type === "comma_group" && t12.groups.length === 1 ? Xr5(t12.groups[0]) : t12.type === "paren_group" || t12.type === "comma_group" ? { ...t12, groups: t12.groups.map(Xr5) } : t12; -} -function El2(t12, e3) { - if (t12 && typeof t12 == "object") - for (let n in t12) - n !== "parent" && (El2(t12[n], e3), n === "nodes" && (t12.group = Xr5(bg2(t12, e3)), delete t12[n])); - return t12; -} -function kg2(t12, e3) { - if (e3.parser === "less" && t12.startsWith("~`")) - return { type: "value-unknown", value: t12 }; - let n = null; - try { - n = new Tl2.default(t12, { loose: true }).parse(); - } catch { - return { type: "value-unknown", value: t12 }; - } - n.text = t12; - let r3 = El2(n, e3); - return X7(r3, "value-", /^selector-/); -} -function Dg(t12) { - let e3; - try { - e3 = qg(t12); - } catch { - return { type: "selector-unknown", value: t12 }; - } - return X7(ms5(e3), "media-"); -} -function Ml3(t12, e3) { - var n, r3; - if (t12 && typeof t12 == "object") { - delete t12.parent; - for (let a in t12) - Ml3(t12[a], e3); - if (!t12.type) - return t12; - if (t12.raws ?? (t12.raws = {}), t12.type === "css-decl" && typeof t12.prop == "string" && t12.prop.startsWith("--") && typeof t12.value == "string" && t12.value.startsWith("{")) { - let a; - if (t12.value.trimEnd().endsWith("}")) { - let u = e3.originalText.slice(0, t12.source.start.offset), c3 = "a".repeat(t12.prop.length) + e3.originalText.slice(t12.source.start.offset + t12.prop.length, t12.source.end.offset + 1), f3 = T3(false, u, /[^\n]/g, " ") + c3, p4; - e3.parser === "scss" ? p4 = $l2 : e3.parser === "less" ? p4 = Fl2 : p4 = Bl2; - let l; - try { - l = p4(f3, { ...e3 }); - } catch { - } - ((n = l == null ? void 0 : l.nodes) == null ? void 0 : n.length) === 1 && l.nodes[0].type === "css-rule" && (a = l.nodes[0].nodes); - } - return a ? t12.value = { type: "css-rule", nodes: a } : t12.value = { type: "value-unknown", value: t12.raws.value.raw }, t12; - } - let s3 = ""; - typeof t12.selector == "string" && (s3 = t12.raws.selector ? t12.raws.selector.scss ?? t12.raws.selector.raw : t12.selector, t12.raws.between && t12.raws.between.trim().length > 0 && (s3 += t12.raws.between), t12.raws.selector = s3); - let i = ""; - typeof t12.value == "string" && (i = t12.raws.value ? t12.raws.value.scss ?? t12.raws.value.raw : t12.value, i = i.trim(), t12.raws.value = i); - let o2 = ""; - if (typeof t12.params == "string" && (o2 = t12.raws.params ? t12.raws.params.scss ?? t12.raws.params.raw : t12.params, t12.raws.afterName && t12.raws.afterName.trim().length > 0 && (o2 = t12.raws.afterName + o2), t12.raws.between && t12.raws.between.trim().length > 0 && (o2 = o2 + t12.raws.between), o2 = o2.trim(), t12.raws.params = o2), s3.trim().length > 0) - return s3.startsWith("@") && s3.endsWith(":") ? t12 : t12.mixin ? (t12.selector = ae6(s3, e3), t12) : (Ia3(t12, e3) && (t12.isSCSSNesterProperty = true), t12.selector = Z8(s3), t12); - if (i.length > 0) { - let a = i.match(Lg); - a && (i = i.slice(0, a.index), t12.scssDefault = true, a[0].trim() !== "!default" && (t12.raws.scssDefault = a[0])); - let u = i.match(Mg); - if (u && (i = i.slice(0, u.index), t12.scssGlobal = true, u[0].trim() !== "!global" && (t12.raws.scssGlobal = u[0])), i.startsWith("progid:")) - return { type: "value-unknown", value: i }; - t12.value = ae6(i, e3); - } - if (e3.parser === "less" && t12.type === "css-decl" && i.startsWith("extend(") && (t12.extend || (t12.extend = t12.raws.between === ":"), t12.extend && !t12.selector && (delete t12.value, t12.selector = Z8(i.slice(7, -1)))), t12.type === "css-atrule") { - if (e3.parser === "less") { - if (t12.mixin) { - let a = t12.raws.identifier + t12.name + t12.raws.afterName + t12.raws.params; - return t12.selector = Z8(a), delete t12.params, t12; - } - if (t12.function) - return t12; - } - if (e3.parser === "css" && t12.name === "custom-selector") { - let a = t12.params.match(/:--\S+\s+/)[0].trim(); - return t12.customSelector = a, t12.selector = Z8(t12.params.slice(a.length).trim()), delete t12.params, t12; - } - if (e3.parser === "less") { - if (t12.name.includes(":") && !t12.params) { - t12.variable = true; - let a = t12.name.split(":"); - t12.name = a[0], t12.value = ae6(a.slice(1).join(":"), e3); - } - if (!["page", "nest", "keyframes"].includes(t12.name) && ((r3 = t12.params) == null ? void 0 : r3[0]) === ":") { - t12.variable = true; - let a = t12.params.slice(1); - a && (t12.value = ae6(a, e3)), t12.raws.afterName += ":"; - } - if (t12.variable) - return delete t12.params, t12.value || delete t12.value, t12; - } - } - if (t12.type === "css-atrule" && o2.length > 0) { - let { name: a } = t12, u = t12.name.toLowerCase(); - return a === "warn" || a === "error" ? (t12.params = { type: "media-unknown", value: o2 }, t12) : a === "extend" || a === "nest" ? (t12.selector = Z8(o2), delete t12.params, t12) : a === "at-root" ? (/^\(\s*(?:without|with)\s*:.+\)$/s.test(o2) ? t12.params = ae6(o2, e3) : (t12.selector = Z8(o2), delete t12.params), t12) : qa3(u) ? (t12.import = true, delete t12.filename, t12.params = ae6(o2, e3), t12) : ["namespace", "supports", "if", "else", "for", "each", "while", "debug", "mixin", "include", "function", "return", "define-mixin", "add-mixin"].includes(a) ? (o2 = o2.replace(/(\$\S+?)(\s+)?\.{3}/, "$1...$2"), o2 = o2.replace(/^(?!if)(\S+)(\s+)\(/, "$1($2"), t12.value = ae6(o2, e3), delete t12.params, t12) : ["media", "custom-media"].includes(u) ? o2.includes("#{") ? { type: "media-unknown", value: o2 } : (t12.params = Il2(o2), t12) : (t12.params = o2, t12); - } - } - return t12; -} -function _s6(t12, e3, n) { - let r3 = je9(e3), { frontMatter: s3 } = r3; - e3 = r3.content; - let i; - try { - i = t12(e3, { map: false }); - } catch (o2) { - let { name: a, reason: u, line: c3, column: f3 } = o2; - throw typeof c3 != "number" ? o2 : Ra2(`${a}: ${u}`, { loc: { start: { line: c3, column: f3 } }, cause: o2 }); - } - return n.originalText = e3, i = Ml3(X7(i, "css-"), n), hn4(i, e3), s3 && (s3.source = { startOffset: 0, endOffset: s3.raw.length }, i.frontMatter = s3), i; -} -function Bl2(t12, e3 = {}) { - return _s6(ql2.default.default, t12, e3); -} -function Fl2(t12, e3 = {}) { - return _s6((n) => Dl2.default.parse(Ai5(n)), t12, e3); -} -function $l2(t12, e3 = {}) { - return _s6(Ll2.default, t12, e3); -} -var Vl2, Zr5, Yl3, Gl3, Kl2, Hl2, y4, Os6, Ql2, ue6, Qs5, zt5, Ui5, vn4, Vt3, Yt4, ot6, ut3, ct5, Ae5, se6, er6, tr6, Pe8, En4, rr5, nr5, _o2, Eo2, Cn3, qe7, dt6, Ro2, qo2, Lo3, Bo2, Wo2, Yo2, Ko2, Ho3, qn4, or5, Dn4, Ln5, ar4, Fn4, ua4, ca4, pa4, ur6, ba2, Ca4, Aa3, Pa2, V5, B6, Ba2, $a2, za3, Ya3, Ka3, Qa4, Xa3, eu4, ru4, su4, ou4, uu4, cu3, pu3, vu4, ss5, is5, os6, Tu3, Ou4, we8, L6, Rr5, Mu3, Fu4, Be8, Wu3, Vu3, Gu3, Hu3, ju4, Xu3, el2, rl2, sl2, ol3, ul3, gl2, xl2, kl2, gs6, vs6, Nl2, Pl2, Ss4, jl2, T3, Et7, As6, Ns6, Ps6, St6, ee8, Fe8, $e7, Ue7, xe7, be10, We7, ke7, te7, le8, ze9, Ve8, Ye6, Q6, Ge7, _e9, Ct7, Ke7, rc2, en5, tn5, Rs5, ce7, Ot8, Qe8, sc2, A5, M7, _5, ic2, G7, Ds7, rn5, Ms5, Te8, lc2, Fs6, $s5, Ws5, re8, js6, kc3, je9, Je8, Tc3, ri6, Sc2, ni6, Cc2, si7, Oc3, Ac2, rv, Bt6, Si4, Ft6, fn4, Ni5, dn3, Ri3, qc2, Dc2, Lc3, Mc3, Di5, $t7, Li4, Mi4, Ut4, Wt5, Oe9, Hc2, Fi5, Es4, ql2, Dl2, Ll2, Ra2, Ia3, Zp2, qa3, Tl2, id, Ar6, Au3, Nu4, Pu3, Ru3, _l2, Z8, ae6, Rl2, qg, Il2, Lg, Mg, Ts6, Bg, Fg2, $g, Ul3, Wl2, Ug, zl2, Wg, Vk; -var init_postcss = __esm({ - "node_modules/prettier/plugins/postcss.mjs"() { - Vl2 = Object.create; - Zr5 = Object.defineProperty; - Yl3 = Object.getOwnPropertyDescriptor; - Gl3 = Object.getOwnPropertyNames; - Kl2 = Object.getPrototypeOf; - Hl2 = Object.prototype.hasOwnProperty; - y4 = (t12, e3) => () => (e3 || t12((e3 = { exports: {} }).exports, e3), e3.exports); - Os6 = (t12, e3) => { - for (var n in e3) - Zr5(t12, n, { get: e3[n], enumerable: true }); - }; - Ql2 = (t12, e3, n, r3) => { - if (e3 && typeof e3 == "object" || typeof e3 == "function") - for (let s3 of Gl3(e3)) - !Hl2.call(t12, s3) && s3 !== n && Zr5(t12, s3, { get: () => e3[s3], enumerable: !(r3 = Yl3(e3, s3)) || r3.enumerable }); - return t12; - }; - ue6 = (t12, e3, n) => (n = t12 != null ? Vl2(Kl2(t12)) : {}, Ql2(e3 || !t12 || !t12.__esModule ? Zr5(n, "default", { value: t12, enumerable: true }) : n, t12)); - Qs5 = y4((pe7) => { - "use strict"; - Object.defineProperty(pe7, "__esModule", { value: true }); - pe7.extract = gc2; - pe7.parse = vc3; - pe7.parseWithComments = Hs5; - pe7.print = xc2; - pe7.strip = wc2; - var pc2 = /\*\/$/, hc2 = /^\/\*\*?/, Gs6 = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/, dc2 = /(^|\s+)\/\/([^\r\n]*)/g, zs6 = /^(\r?\n)+/, mc2 = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g, Vs5 = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g, yc2 = /(\r?\n|^) *\* ?/g, Ks5 = []; - function gc2(t12) { - let e3 = t12.match(Gs6); - return e3 ? e3[0].trimLeft() : ""; - } - function wc2(t12) { - let e3 = t12.match(Gs6); - return e3 && e3[0] ? t12.substring(e3[0].length) : t12; - } - function vc3(t12) { - return Hs5(t12).pragmas; - } - function Hs5(t12) { - let e3 = ` -`; - t12 = t12.replace(hc2, "").replace(pc2, "").replace(yc2, "$1"); - let n = ""; - for (; n !== t12; ) - n = t12, t12 = t12.replace(mc2, `${e3}$1 $2${e3}`); - t12 = t12.replace(zs6, "").trimRight(); - let r3 = /* @__PURE__ */ Object.create(null), s3 = t12.replace(Vs5, "").replace(zs6, "").trimRight(), i; - for (; i = Vs5.exec(t12); ) { - let o2 = i[2].replace(dc2, ""); - typeof r3[i[1]] == "string" || Array.isArray(r3[i[1]]) ? r3[i[1]] = Ks5.concat(r3[i[1]], o2) : r3[i[1]] = o2; - } - return { comments: s3, pragmas: r3 }; - } - function xc2({ comments: t12 = "", pragmas: e3 = {} }) { - let n = ` -`, r3 = "/**", s3 = " *", i = " */", o2 = Object.keys(e3), a = o2.map((c3) => Ys5(c3, e3[c3])).reduce((c3, f3) => c3.concat(f3), []).map((c3) => `${s3} ${c3}${n}`).join(""); - if (!t12) { - if (o2.length === 0) - return ""; - if (o2.length === 1 && !Array.isArray(e3[o2[0]])) { - let c3 = e3[o2[0]]; - return `${r3} ${Ys5(o2[0], c3)[0]}${i}`; - } - } - let u = t12.split(n).map((c3) => `${s3} ${c3}`).join(n) + n; - return r3 + n + (t12 ? u : "") + (t12 && o2.length ? s3 + n : "") + a + i; - } - function Ys5(t12, e3) { - return Ks5.concat(e3).map((n) => `@${t12} ${n}`.trim()); - } - }); - zt5 = y4((dx, gn7) => { - "use strict"; - gn7.exports.isClean = Symbol("isClean"); - gn7.exports.my = Symbol("my"); - }); - Ui5 = y4((mx, wn5) => { - var E6 = String, $i5 = function() { - return { isColorSupported: false, reset: E6, bold: E6, dim: E6, italic: E6, underline: E6, inverse: E6, hidden: E6, strikethrough: E6, black: E6, red: E6, green: E6, yellow: E6, blue: E6, magenta: E6, cyan: E6, white: E6, gray: E6, bgBlack: E6, bgRed: E6, bgGreen: E6, bgYellow: E6, bgBlue: E6, bgMagenta: E6, bgCyan: E6, bgWhite: E6 }; - }; - wn5.exports = $i5(); - wn5.exports.createColors = $i5; - }); - vn4 = y4(() => { - }); - Vt3 = y4((wx, Vi5) => { - "use strict"; - var Wi4 = Ui5(), zi6 = vn4(), st5 = class t12 extends Error { - constructor(e3, n, r3, s3, i, o2) { - super(e3), this.name = "CssSyntaxError", this.reason = e3, i && (this.file = i), s3 && (this.source = s3), o2 && (this.plugin = o2), typeof n < "u" && typeof r3 < "u" && (typeof n == "number" ? (this.line = n, this.column = r3) : (this.line = n.line, this.column = n.column, this.endLine = r3.line, this.endColumn = r3.column)), this.setMessage(), Error.captureStackTrace && Error.captureStackTrace(this, t12); - } - setMessage() { - this.message = this.plugin ? this.plugin + ": " : "", this.message += this.file ? this.file : "", typeof this.line < "u" && (this.message += ":" + this.line + ":" + this.column), this.message += ": " + this.reason; - } - showSourceCode(e3) { - if (!this.source) - return ""; - let n = this.source; - e3 == null && (e3 = Wi4.isColorSupported), zi6 && e3 && (n = zi6(n)); - let r3 = n.split(/\r?\n/), s3 = Math.max(this.line - 3, 0), i = Math.min(this.line + 2, r3.length), o2 = String(i).length, a, u; - if (e3) { - let { bold: c3, gray: f3, red: p4 } = Wi4.createColors(true); - a = (l) => c3(p4(l)), u = (l) => f3(l); - } else - a = u = (c3) => c3; - return r3.slice(s3, i).map((c3, f3) => { - let p4 = s3 + 1 + f3, l = " " + (" " + p4).slice(-o2) + " | "; - if (p4 === this.line) { - let g3 = u(l.replace(/\d/g, " ")) + c3.slice(0, this.column - 1).replace(/[^\t]/g, " "); - return a(">") + u(l) + c3 + ` - ` + g3 + a("^"); - } - return " " + u(l) + c3; - }).join(` -`); - } - toString() { - let e3 = this.showSourceCode(); - return e3 && (e3 = ` - -` + e3 + ` -`), this.name + ": " + this.message + e3; - } - }; - Vi5.exports = st5; - st5.default = st5; - }); - Yt4 = y4((vx, Gi5) => { - "use strict"; - var Yi5 = { after: ` -`, beforeClose: ` -`, beforeComment: ` -`, beforeDecl: ` -`, beforeOpen: " ", beforeRule: ` -`, colon: ": ", commentLeft: " ", commentRight: " ", emptyBody: "", indent: " ", semicolon: false }; - function Qc2(t12) { - return t12[0].toUpperCase() + t12.slice(1); - } - var it6 = class { - constructor(e3) { - this.builder = e3; - } - atrule(e3, n) { - let r3 = "@" + e3.name, s3 = e3.params ? this.rawValue(e3, "params") : ""; - if (typeof e3.raws.afterName < "u" ? r3 += e3.raws.afterName : s3 && (r3 += " "), e3.nodes) - this.block(e3, r3 + s3); - else { - let i = (e3.raws.between || "") + (n ? ";" : ""); - this.builder(r3 + s3 + i, e3); - } - } - beforeAfter(e3, n) { - let r3; - e3.type === "decl" ? r3 = this.raw(e3, null, "beforeDecl") : e3.type === "comment" ? r3 = this.raw(e3, null, "beforeComment") : n === "before" ? r3 = this.raw(e3, null, "beforeRule") : r3 = this.raw(e3, null, "beforeClose"); - let s3 = e3.parent, i = 0; - for (; s3 && s3.type !== "root"; ) - i += 1, s3 = s3.parent; - if (r3.includes(` -`)) { - let o2 = this.raw(e3, null, "indent"); - if (o2.length) - for (let a = 0; a < i; a++) - r3 += o2; - } - return r3; - } - block(e3, n) { - let r3 = this.raw(e3, "between", "beforeOpen"); - this.builder(n + r3 + "{", e3, "start"); - let s3; - e3.nodes && e3.nodes.length ? (this.body(e3), s3 = this.raw(e3, "after")) : s3 = this.raw(e3, "after", "emptyBody"), s3 && this.builder(s3), this.builder("}", e3, "end"); - } - body(e3) { - let n = e3.nodes.length - 1; - for (; n > 0 && e3.nodes[n].type === "comment"; ) - n -= 1; - let r3 = this.raw(e3, "semicolon"); - for (let s3 = 0; s3 < e3.nodes.length; s3++) { - let i = e3.nodes[s3], o2 = this.raw(i, "before"); - o2 && this.builder(o2), this.stringify(i, n !== s3 || r3); - } - } - comment(e3) { - let n = this.raw(e3, "left", "commentLeft"), r3 = this.raw(e3, "right", "commentRight"); - this.builder("/*" + n + e3.text + r3 + "*/", e3); - } - decl(e3, n) { - let r3 = this.raw(e3, "between", "colon"), s3 = e3.prop + r3 + this.rawValue(e3, "value"); - e3.important && (s3 += e3.raws.important || " !important"), n && (s3 += ";"), this.builder(s3, e3); - } - document(e3) { - this.body(e3); - } - raw(e3, n, r3) { - let s3; - if (r3 || (r3 = n), n && (s3 = e3.raws[n], typeof s3 < "u")) - return s3; - let i = e3.parent; - if (r3 === "before" && (!i || i.type === "root" && i.first === e3 || i && i.type === "document")) - return ""; - if (!i) - return Yi5[r3]; - let o2 = e3.root(); - if (o2.rawCache || (o2.rawCache = {}), typeof o2.rawCache[r3] < "u") - return o2.rawCache[r3]; - if (r3 === "before" || r3 === "after") - return this.beforeAfter(e3, r3); - { - let a = "raw" + Qc2(r3); - this[a] ? s3 = this[a](o2, e3) : o2.walk((u) => { - if (s3 = u.raws[n], typeof s3 < "u") - return false; - }); - } - return typeof s3 > "u" && (s3 = Yi5[r3]), o2.rawCache[r3] = s3, s3; - } - rawBeforeClose(e3) { - let n; - return e3.walk((r3) => { - if (r3.nodes && r3.nodes.length > 0 && typeof r3.raws.after < "u") - return n = r3.raws.after, n.includes(` -`) && (n = n.replace(/[^\n]+$/, "")), false; - }), n && (n = n.replace(/\S/g, "")), n; - } - rawBeforeComment(e3, n) { - let r3; - return e3.walkComments((s3) => { - if (typeof s3.raws.before < "u") - return r3 = s3.raws.before, r3.includes(` -`) && (r3 = r3.replace(/[^\n]+$/, "")), false; - }), typeof r3 > "u" ? r3 = this.raw(n, null, "beforeDecl") : r3 && (r3 = r3.replace(/\S/g, "")), r3; - } - rawBeforeDecl(e3, n) { - let r3; - return e3.walkDecls((s3) => { - if (typeof s3.raws.before < "u") - return r3 = s3.raws.before, r3.includes(` -`) && (r3 = r3.replace(/[^\n]+$/, "")), false; - }), typeof r3 > "u" ? r3 = this.raw(n, null, "beforeRule") : r3 && (r3 = r3.replace(/\S/g, "")), r3; - } - rawBeforeOpen(e3) { - let n; - return e3.walk((r3) => { - if (r3.type !== "decl" && (n = r3.raws.between, typeof n < "u")) - return false; - }), n; - } - rawBeforeRule(e3) { - let n; - return e3.walk((r3) => { - if (r3.nodes && (r3.parent !== e3 || e3.first !== r3) && typeof r3.raws.before < "u") - return n = r3.raws.before, n.includes(` -`) && (n = n.replace(/[^\n]+$/, "")), false; - }), n && (n = n.replace(/\S/g, "")), n; - } - rawColon(e3) { - let n; - return e3.walkDecls((r3) => { - if (typeof r3.raws.between < "u") - return n = r3.raws.between.replace(/[^\s:]/g, ""), false; - }), n; - } - rawEmptyBody(e3) { - let n; - return e3.walk((r3) => { - if (r3.nodes && r3.nodes.length === 0 && (n = r3.raws.after, typeof n < "u")) - return false; - }), n; - } - rawIndent(e3) { - if (e3.raws.indent) - return e3.raws.indent; - let n; - return e3.walk((r3) => { - let s3 = r3.parent; - if (s3 && s3 !== e3 && s3.parent && s3.parent === e3 && typeof r3.raws.before < "u") { - let i = r3.raws.before.split(` -`); - return n = i[i.length - 1], n = n.replace(/\S/g, ""), false; - } - }), n; - } - rawSemicolon(e3) { - let n; - return e3.walk((r3) => { - if (r3.nodes && r3.nodes.length && r3.last.type === "decl" && (n = r3.raws.semicolon, typeof n < "u")) - return false; - }), n; - } - rawValue(e3, n) { - let r3 = e3[n], s3 = e3.raws[n]; - return s3 && s3.value === r3 ? s3.raw : r3; - } - root(e3) { - this.body(e3), e3.raws.after && this.builder(e3.raws.after); - } - rule(e3) { - this.block(e3, this.rawValue(e3, "selector")), e3.raws.ownSemicolon && this.builder(e3.raws.ownSemicolon, e3, "end"); - } - stringify(e3, n) { - if (!this[e3.type]) - throw new Error("Unknown AST node type " + e3.type + ". Maybe you need to change PostCSS stringifier."); - this[e3.type](e3, n); - } - }; - Gi5.exports = it6; - it6.default = it6; - }); - ot6 = y4((xx, Ki6) => { - "use strict"; - var jc3 = Yt4(); - function xn4(t12, e3) { - new jc3(e3).stringify(t12); - } - Ki6.exports = xn4; - xn4.default = xn4; - }); - ut3 = y4((bx, Hi5) => { - "use strict"; - var { isClean: Gt5, my: Jc3 } = zt5(), Xc3 = Vt3(), Zc2 = Yt4(), ef2 = ot6(); - function bn5(t12, e3) { - let n = new t12.constructor(); - for (let r3 in t12) { - if (!Object.prototype.hasOwnProperty.call(t12, r3) || r3 === "proxyCache") - continue; - let s3 = t12[r3], i = typeof s3; - r3 === "parent" && i === "object" ? e3 && (n[r3] = e3) : r3 === "source" ? n[r3] = s3 : Array.isArray(s3) ? n[r3] = s3.map((o2) => bn5(o2, n)) : (i === "object" && s3 !== null && (s3 = bn5(s3)), n[r3] = s3); - } - return n; - } - var at7 = class { - constructor(e3 = {}) { - this.raws = {}, this[Gt5] = false, this[Jc3] = true; - for (let n in e3) - if (n === "nodes") { - this.nodes = []; - for (let r3 of e3[n]) - typeof r3.clone == "function" ? this.append(r3.clone()) : this.append(r3); - } else - this[n] = e3[n]; - } - addToError(e3) { - if (e3.postcssNode = this, e3.stack && this.source && /\n\s{4}at /.test(e3.stack)) { - let n = this.source; - e3.stack = e3.stack.replace(/\n\s{4}at /, `$&${n.input.from}:${n.start.line}:${n.start.column}$&`); - } - return e3; - } - after(e3) { - return this.parent.insertAfter(this, e3), this; - } - assign(e3 = {}) { - for (let n in e3) - this[n] = e3[n]; - return this; - } - before(e3) { - return this.parent.insertBefore(this, e3), this; - } - cleanRaws(e3) { - delete this.raws.before, delete this.raws.after, e3 || delete this.raws.between; - } - clone(e3 = {}) { - let n = bn5(this); - for (let r3 in e3) - n[r3] = e3[r3]; - return n; - } - cloneAfter(e3 = {}) { - let n = this.clone(e3); - return this.parent.insertAfter(this, n), n; - } - cloneBefore(e3 = {}) { - let n = this.clone(e3); - return this.parent.insertBefore(this, n), n; - } - error(e3, n = {}) { - if (this.source) { - let { end: r3, start: s3 } = this.rangeBy(n); - return this.source.input.error(e3, { column: s3.column, line: s3.line }, { column: r3.column, line: r3.line }, n); - } - return new Xc3(e3); - } - getProxyProcessor() { - return { get(e3, n) { - return n === "proxyOf" ? e3 : n === "root" ? () => e3.root().toProxy() : e3[n]; - }, set(e3, n, r3) { - return e3[n] === r3 || (e3[n] = r3, (n === "prop" || n === "value" || n === "name" || n === "params" || n === "important" || n === "text") && e3.markDirty()), true; - } }; - } - markDirty() { - if (this[Gt5]) { - this[Gt5] = false; - let e3 = this; - for (; e3 = e3.parent; ) - e3[Gt5] = false; - } - } - next() { - if (!this.parent) - return; - let e3 = this.parent.index(this); - return this.parent.nodes[e3 + 1]; - } - positionBy(e3, n) { - let r3 = this.source.start; - if (e3.index) - r3 = this.positionInside(e3.index, n); - else if (e3.word) { - n = this.toString(); - let s3 = n.indexOf(e3.word); - s3 !== -1 && (r3 = this.positionInside(s3, n)); - } - return r3; - } - positionInside(e3, n) { - let r3 = n || this.toString(), s3 = this.source.start.column, i = this.source.start.line; - for (let o2 = 0; o2 < e3; o2++) - r3[o2] === ` -` ? (s3 = 1, i += 1) : s3 += 1; - return { column: s3, line: i }; - } - prev() { - if (!this.parent) - return; - let e3 = this.parent.index(this); - return this.parent.nodes[e3 - 1]; - } - get proxyOf() { - return this; - } - rangeBy(e3) { - let n = { column: this.source.start.column, line: this.source.start.line }, r3 = this.source.end ? { column: this.source.end.column + 1, line: this.source.end.line } : { column: n.column + 1, line: n.line }; - if (e3.word) { - let s3 = this.toString(), i = s3.indexOf(e3.word); - i !== -1 && (n = this.positionInside(i, s3), r3 = this.positionInside(i + e3.word.length, s3)); - } else - e3.start ? n = { column: e3.start.column, line: e3.start.line } : e3.index && (n = this.positionInside(e3.index)), e3.end ? r3 = { column: e3.end.column, line: e3.end.line } : e3.endIndex ? r3 = this.positionInside(e3.endIndex) : e3.index && (r3 = this.positionInside(e3.index + 1)); - return (r3.line < n.line || r3.line === n.line && r3.column <= n.column) && (r3 = { column: n.column + 1, line: n.line }), { end: r3, start: n }; - } - raw(e3, n) { - return new Zc2().raw(this, e3, n); - } - remove() { - return this.parent && this.parent.removeChild(this), this.parent = void 0, this; - } - replaceWith(...e3) { - if (this.parent) { - let n = this, r3 = false; - for (let s3 of e3) - s3 === this ? r3 = true : r3 ? (this.parent.insertAfter(n, s3), n = s3) : this.parent.insertBefore(n, s3); - r3 || this.remove(); - } - return this; - } - root() { - let e3 = this; - for (; e3.parent && e3.parent.type !== "document"; ) - e3 = e3.parent; - return e3; - } - toJSON(e3, n) { - let r3 = {}, s3 = n == null; - n = n || /* @__PURE__ */ new Map(); - let i = 0; - for (let o2 in this) { - if (!Object.prototype.hasOwnProperty.call(this, o2) || o2 === "parent" || o2 === "proxyCache") - continue; - let a = this[o2]; - if (Array.isArray(a)) - r3[o2] = a.map((u) => typeof u == "object" && u.toJSON ? u.toJSON(null, n) : u); - else if (typeof a == "object" && a.toJSON) - r3[o2] = a.toJSON(null, n); - else if (o2 === "source") { - let u = n.get(a.input); - u == null && (u = i, n.set(a.input, i), i++), r3[o2] = { end: a.end, inputId: u, start: a.start }; - } else - r3[o2] = a; - } - return s3 && (r3.inputs = [...n.keys()].map((o2) => o2.toJSON())), r3; - } - toProxy() { - return this.proxyCache || (this.proxyCache = new Proxy(this, this.getProxyProcessor())), this.proxyCache; - } - toString(e3 = ef2) { - e3.stringify && (e3 = e3.stringify); - let n = ""; - return e3(this, (r3) => { - n += r3; - }), n; - } - warn(e3, n, r3) { - let s3 = { node: this }; - for (let i in r3) - s3[i] = r3[i]; - return e3.warn(n, s3); - } - }; - Hi5.exports = at7; - at7.default = at7; - }); - ct5 = y4((kx, Qi5) => { - "use strict"; - var tf2 = ut3(), lt5 = class extends tf2 { - constructor(e3) { - e3 && typeof e3.value < "u" && typeof e3.value != "string" && (e3 = { ...e3, value: String(e3.value) }), super(e3), this.type = "decl"; - } - get variable() { - return this.prop.startsWith("--") || this.prop[0] === "$"; - } - }; - Qi5.exports = lt5; - lt5.default = lt5; - }); - Ae5 = y4((_x, ji5) => { - "use strict"; - var rf2 = ut3(), ft6 = class extends rf2 { - constructor(e3) { - super(e3), this.type = "comment"; - } - }; - ji5.exports = ft6; - ft6.default = ft6; - }); - se6 = y4((Tx, io4) => { - "use strict"; - var { isClean: Ji6, my: Xi4 } = zt5(), Zi7 = ct5(), eo3 = Ae5(), nf2 = ut3(), to3, kn4, _n5, ro3; - function no3(t12) { - return t12.map((e3) => (e3.nodes && (e3.nodes = no3(e3.nodes)), delete e3.source, e3)); - } - function so3(t12) { - if (t12[Ji6] = false, t12.proxyOf.nodes) - for (let e3 of t12.proxyOf.nodes) - so3(e3); - } - var z8 = class t12 extends nf2 { - append(...e3) { - for (let n of e3) { - let r3 = this.normalize(n, this.last); - for (let s3 of r3) - this.proxyOf.nodes.push(s3); - } - return this.markDirty(), this; - } - cleanRaws(e3) { - if (super.cleanRaws(e3), this.nodes) - for (let n of this.nodes) - n.cleanRaws(e3); - } - each(e3) { - if (!this.proxyOf.nodes) - return; - let n = this.getIterator(), r3, s3; - for (; this.indexes[n] < this.proxyOf.nodes.length && (r3 = this.indexes[n], s3 = e3(this.proxyOf.nodes[r3], r3), s3 !== false); ) - this.indexes[n] += 1; - return delete this.indexes[n], s3; - } - every(e3) { - return this.nodes.every(e3); - } - get first() { - if (this.proxyOf.nodes) - return this.proxyOf.nodes[0]; - } - getIterator() { - this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1; - let e3 = this.lastEach; - return this.indexes[e3] = 0, e3; - } - getProxyProcessor() { - return { get(e3, n) { - return n === "proxyOf" ? e3 : e3[n] ? n === "each" || typeof n == "string" && n.startsWith("walk") ? (...r3) => e3[n](...r3.map((s3) => typeof s3 == "function" ? (i, o2) => s3(i.toProxy(), o2) : s3)) : n === "every" || n === "some" ? (r3) => e3[n]((s3, ...i) => r3(s3.toProxy(), ...i)) : n === "root" ? () => e3.root().toProxy() : n === "nodes" ? e3.nodes.map((r3) => r3.toProxy()) : n === "first" || n === "last" ? e3[n].toProxy() : e3[n] : e3[n]; - }, set(e3, n, r3) { - return e3[n] === r3 || (e3[n] = r3, (n === "name" || n === "params" || n === "selector") && e3.markDirty()), true; - } }; - } - index(e3) { - return typeof e3 == "number" ? e3 : (e3.proxyOf && (e3 = e3.proxyOf), this.proxyOf.nodes.indexOf(e3)); - } - insertAfter(e3, n) { - let r3 = this.index(e3), s3 = this.normalize(n, this.proxyOf.nodes[r3]).reverse(); - r3 = this.index(e3); - for (let o2 of s3) - this.proxyOf.nodes.splice(r3 + 1, 0, o2); - let i; - for (let o2 in this.indexes) - i = this.indexes[o2], r3 < i && (this.indexes[o2] = i + s3.length); - return this.markDirty(), this; - } - insertBefore(e3, n) { - let r3 = this.index(e3), s3 = r3 === 0 ? "prepend" : false, i = this.normalize(n, this.proxyOf.nodes[r3], s3).reverse(); - r3 = this.index(e3); - for (let a of i) - this.proxyOf.nodes.splice(r3, 0, a); - let o2; - for (let a in this.indexes) - o2 = this.indexes[a], r3 <= o2 && (this.indexes[a] = o2 + i.length); - return this.markDirty(), this; - } - get last() { - if (this.proxyOf.nodes) - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; - } - normalize(e3, n) { - if (typeof e3 == "string") - e3 = no3(to3(e3).nodes); - else if (Array.isArray(e3)) { - e3 = e3.slice(0); - for (let s3 of e3) - s3.parent && s3.parent.removeChild(s3, "ignore"); - } else if (e3.type === "root" && this.type !== "document") { - e3 = e3.nodes.slice(0); - for (let s3 of e3) - s3.parent && s3.parent.removeChild(s3, "ignore"); - } else if (e3.type) - e3 = [e3]; - else if (e3.prop) { - if (typeof e3.value > "u") - throw new Error("Value field is missed in node creation"); - typeof e3.value != "string" && (e3.value = String(e3.value)), e3 = [new Zi7(e3)]; - } else if (e3.selector) - e3 = [new kn4(e3)]; - else if (e3.name) - e3 = [new _n5(e3)]; - else if (e3.text) - e3 = [new eo3(e3)]; - else - throw new Error("Unknown node type in node creation"); - return e3.map((s3) => (s3[Xi4] || t12.rebuild(s3), s3 = s3.proxyOf, s3.parent && s3.parent.removeChild(s3), s3[Ji6] && so3(s3), typeof s3.raws.before > "u" && n && typeof n.raws.before < "u" && (s3.raws.before = n.raws.before.replace(/\S/g, "")), s3.parent = this.proxyOf, s3)); - } - prepend(...e3) { - e3 = e3.reverse(); - for (let n of e3) { - let r3 = this.normalize(n, this.first, "prepend").reverse(); - for (let s3 of r3) - this.proxyOf.nodes.unshift(s3); - for (let s3 in this.indexes) - this.indexes[s3] = this.indexes[s3] + r3.length; - } - return this.markDirty(), this; - } - push(e3) { - return e3.parent = this, this.proxyOf.nodes.push(e3), this; - } - removeAll() { - for (let e3 of this.proxyOf.nodes) - e3.parent = void 0; - return this.proxyOf.nodes = [], this.markDirty(), this; - } - removeChild(e3) { - e3 = this.index(e3), this.proxyOf.nodes[e3].parent = void 0, this.proxyOf.nodes.splice(e3, 1); - let n; - for (let r3 in this.indexes) - n = this.indexes[r3], n >= e3 && (this.indexes[r3] = n - 1); - return this.markDirty(), this; - } - replaceValues(e3, n, r3) { - return r3 || (r3 = n, n = {}), this.walkDecls((s3) => { - n.props && !n.props.includes(s3.prop) || n.fast && !s3.value.includes(n.fast) || (s3.value = s3.value.replace(e3, r3)); - }), this.markDirty(), this; - } - some(e3) { - return this.nodes.some(e3); - } - walk(e3) { - return this.each((n, r3) => { - let s3; - try { - s3 = e3(n, r3); - } catch (i) { - throw n.addToError(i); - } - return s3 !== false && n.walk && (s3 = n.walk(e3)), s3; - }); - } - walkAtRules(e3, n) { - return n ? e3 instanceof RegExp ? this.walk((r3, s3) => { - if (r3.type === "atrule" && e3.test(r3.name)) - return n(r3, s3); - }) : this.walk((r3, s3) => { - if (r3.type === "atrule" && r3.name === e3) - return n(r3, s3); - }) : (n = e3, this.walk((r3, s3) => { - if (r3.type === "atrule") - return n(r3, s3); - })); - } - walkComments(e3) { - return this.walk((n, r3) => { - if (n.type === "comment") - return e3(n, r3); - }); - } - walkDecls(e3, n) { - return n ? e3 instanceof RegExp ? this.walk((r3, s3) => { - if (r3.type === "decl" && e3.test(r3.prop)) - return n(r3, s3); - }) : this.walk((r3, s3) => { - if (r3.type === "decl" && r3.prop === e3) - return n(r3, s3); - }) : (n = e3, this.walk((r3, s3) => { - if (r3.type === "decl") - return n(r3, s3); - })); - } - walkRules(e3, n) { - return n ? e3 instanceof RegExp ? this.walk((r3, s3) => { - if (r3.type === "rule" && e3.test(r3.selector)) - return n(r3, s3); - }) : this.walk((r3, s3) => { - if (r3.type === "rule" && r3.selector === e3) - return n(r3, s3); - }) : (n = e3, this.walk((r3, s3) => { - if (r3.type === "rule") - return n(r3, s3); - })); - } - }; - z8.registerParse = (t12) => { - to3 = t12; - }; - z8.registerRule = (t12) => { - kn4 = t12; - }; - z8.registerAtRule = (t12) => { - _n5 = t12; - }; - z8.registerRoot = (t12) => { - ro3 = t12; - }; - io4.exports = z8; - z8.default = z8; - z8.rebuild = (t12) => { - t12.type === "atrule" ? Object.setPrototypeOf(t12, _n5.prototype) : t12.type === "rule" ? Object.setPrototypeOf(t12, kn4.prototype) : t12.type === "decl" ? Object.setPrototypeOf(t12, Zi7.prototype) : t12.type === "comment" ? Object.setPrototypeOf(t12, eo3.prototype) : t12.type === "root" && Object.setPrototypeOf(t12, ro3.prototype), t12[Xi4] = true, t12.nodes && t12.nodes.forEach((e3) => { - z8.rebuild(e3); - }); - }; - }); - er6 = y4((Ex, lo3) => { - "use strict"; - var Tn3 = "'".charCodeAt(0), oo3 = '"'.charCodeAt(0), Kt6 = "\\".charCodeAt(0), ao4 = "/".charCodeAt(0), Ht3 = ` -`.charCodeAt(0), pt5 = " ".charCodeAt(0), Qt5 = "\f".charCodeAt(0), jt5 = " ".charCodeAt(0), Jt6 = "\r".charCodeAt(0), sf = "[".charCodeAt(0), of2 = "]".charCodeAt(0), af2 = "(".charCodeAt(0), uf2 = ")".charCodeAt(0), lf = "{".charCodeAt(0), cf = "}".charCodeAt(0), ff = ";".charCodeAt(0), pf = "*".charCodeAt(0), hf = ":".charCodeAt(0), df = "@".charCodeAt(0), Xt5 = /[\t\n\f\r "#'()/;[\\\]{}]/g, Zt5 = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, mf = /.[\n"'(/\\]/, uo4 = /[\da-f]/i; - lo3.exports = function(e3, n = {}) { - let r3 = e3.css.valueOf(), s3 = n.ignoreErrors, i, o2, a, u, c3, f3, p4, l, g3, x7, h4 = r3.length, d5 = 0, m3 = [], b5 = []; - function w4() { - return d5; - } - function v7(U8) { - throw e3.error("Unclosed " + U8, d5); - } - function N6() { - return b5.length === 0 && d5 >= h4; - } - function $8(U8) { - if (b5.length) - return b5.pop(); - if (d5 >= h4) - return; - let S6 = U8 ? U8.ignoreUnclosed : false; - switch (i = r3.charCodeAt(d5), i) { - case Ht3: - case pt5: - case jt5: - case Jt6: - case Qt5: { - o2 = d5; - do - o2 += 1, i = r3.charCodeAt(o2); - while (i === pt5 || i === Ht3 || i === jt5 || i === Jt6 || i === Qt5); - x7 = ["space", r3.slice(d5, o2)], d5 = o2 - 1; - break; - } - case sf: - case of2: - case lf: - case cf: - case hf: - case ff: - case uf2: { - let C6 = String.fromCharCode(i); - x7 = [C6, C6, d5]; - break; - } - case af2: { - if (l = m3.length ? m3.pop()[1] : "", g3 = r3.charCodeAt(d5 + 1), l === "url" && g3 !== Tn3 && g3 !== oo3 && g3 !== pt5 && g3 !== Ht3 && g3 !== jt5 && g3 !== Qt5 && g3 !== Jt6) { - o2 = d5; - do { - if (f3 = false, o2 = r3.indexOf(")", o2 + 1), o2 === -1) - if (s3 || S6) { - o2 = d5; - break; - } else - v7("bracket"); - for (p4 = o2; r3.charCodeAt(p4 - 1) === Kt6; ) - p4 -= 1, f3 = !f3; - } while (f3); - x7 = ["brackets", r3.slice(d5, o2 + 1), d5, o2], d5 = o2; - } else - o2 = r3.indexOf(")", d5 + 1), u = r3.slice(d5, o2 + 1), o2 === -1 || mf.test(u) ? x7 = ["(", "(", d5] : (x7 = ["brackets", u, d5, o2], d5 = o2); - break; - } - case Tn3: - case oo3: { - a = i === Tn3 ? "'" : '"', o2 = d5; - do { - if (f3 = false, o2 = r3.indexOf(a, o2 + 1), o2 === -1) - if (s3 || S6) { - o2 = d5 + 1; - break; - } else - v7("string"); - for (p4 = o2; r3.charCodeAt(p4 - 1) === Kt6; ) - p4 -= 1, f3 = !f3; - } while (f3); - x7 = ["string", r3.slice(d5, o2 + 1), d5, o2], d5 = o2; - break; - } - case df: { - Xt5.lastIndex = d5 + 1, Xt5.test(r3), Xt5.lastIndex === 0 ? o2 = r3.length - 1 : o2 = Xt5.lastIndex - 2, x7 = ["at-word", r3.slice(d5, o2 + 1), d5, o2], d5 = o2; - break; - } - case Kt6: { - for (o2 = d5, c3 = true; r3.charCodeAt(o2 + 1) === Kt6; ) - o2 += 1, c3 = !c3; - if (i = r3.charCodeAt(o2 + 1), c3 && i !== ao4 && i !== pt5 && i !== Ht3 && i !== jt5 && i !== Jt6 && i !== Qt5 && (o2 += 1, uo4.test(r3.charAt(o2)))) { - for (; uo4.test(r3.charAt(o2 + 1)); ) - o2 += 1; - r3.charCodeAt(o2 + 1) === pt5 && (o2 += 1); - } - x7 = ["word", r3.slice(d5, o2 + 1), d5, o2], d5 = o2; - break; - } - default: { - i === ao4 && r3.charCodeAt(d5 + 1) === pf ? (o2 = r3.indexOf("*/", d5 + 2) + 1, o2 === 0 && (s3 || S6 ? o2 = r3.length : v7("comment")), x7 = ["comment", r3.slice(d5, o2 + 1), d5, o2], d5 = o2) : (Zt5.lastIndex = d5 + 1, Zt5.test(r3), Zt5.lastIndex === 0 ? o2 = r3.length - 1 : o2 = Zt5.lastIndex - 2, x7 = ["word", r3.slice(d5, o2 + 1), d5, o2], m3.push(x7), d5 = o2); - break; - } - } - return d5++, x7; - } - function H10(U8) { - b5.push(U8); - } - return { back: H10, endOfFile: N6, nextToken: $8, position: w4 }; - }; - }); - tr6 = y4((Sx, fo3) => { - "use strict"; - var co5 = se6(), Ne7 = class extends co5 { - constructor(e3) { - super(e3), this.type = "atrule"; - } - append(...e3) { - return this.proxyOf.nodes || (this.nodes = []), super.append(...e3); - } - prepend(...e3) { - return this.proxyOf.nodes || (this.nodes = []), super.prepend(...e3); - } - }; - fo3.exports = Ne7; - Ne7.default = Ne7; - co5.registerAtRule(Ne7); - }); - Pe8 = y4((Cx, yo3) => { - "use strict"; - var po3 = se6(), ho4, mo3, ie6 = class extends po3 { - constructor(e3) { - super(e3), this.type = "root", this.nodes || (this.nodes = []); - } - normalize(e3, n, r3) { - let s3 = super.normalize(e3); - if (n) { - if (r3 === "prepend") - this.nodes.length > 1 ? n.raws.before = this.nodes[1].raws.before : delete n.raws.before; - else if (this.first !== n) - for (let i of s3) - i.raws.before = n.raws.before; - } - return s3; - } - removeChild(e3, n) { - let r3 = this.index(e3); - return !n && r3 === 0 && this.nodes.length > 1 && (this.nodes[1].raws.before = this.nodes[r3].raws.before), super.removeChild(e3); - } - toResult(e3 = {}) { - return new ho4(new mo3(), this, e3).stringify(); - } - }; - ie6.registerLazyResult = (t12) => { - ho4 = t12; - }; - ie6.registerProcessor = (t12) => { - mo3 = t12; - }; - yo3.exports = ie6; - ie6.default = ie6; - po3.registerRoot(ie6); - }); - En4 = y4((Ox, go3) => { - "use strict"; - var ht4 = { comma(t12) { - return ht4.split(t12, [","], true); - }, space(t12) { - let e3 = [" ", ` -`, " "]; - return ht4.split(t12, e3); - }, split(t12, e3, n) { - let r3 = [], s3 = "", i = false, o2 = 0, a = false, u = "", c3 = false; - for (let f3 of t12) - c3 ? c3 = false : f3 === "\\" ? c3 = true : a ? f3 === u && (a = false) : f3 === '"' || f3 === "'" ? (a = true, u = f3) : f3 === "(" ? o2 += 1 : f3 === ")" ? o2 > 0 && (o2 -= 1) : o2 === 0 && e3.includes(f3) && (i = true), i ? (s3 !== "" && r3.push(s3.trim()), s3 = "", i = false) : s3 += f3; - return (n || s3 !== "") && r3.push(s3.trim()), r3; - } }; - go3.exports = ht4; - ht4.default = ht4; - }); - rr5 = y4((Ax, vo3) => { - "use strict"; - var wo4 = se6(), yf = En4(), Re10 = class extends wo4 { - constructor(e3) { - super(e3), this.type = "rule", this.nodes || (this.nodes = []); - } - get selectors() { - return yf.comma(this.selector); - } - set selectors(e3) { - let n = this.selector ? this.selector.match(/,\s*/) : null, r3 = n ? n[0] : "," + this.raw("between", "beforeOpen"); - this.selector = e3.join(r3); - } - }; - vo3.exports = Re10; - Re10.default = Re10; - wo4.registerRule(Re10); - }); - nr5 = y4((Nx, ko2) => { - "use strict"; - var gf = ct5(), wf2 = er6(), vf = Ae5(), xf2 = tr6(), bf = Pe8(), xo3 = rr5(), bo3 = { empty: true, space: true }; - function kf(t12) { - for (let e3 = t12.length - 1; e3 >= 0; e3--) { - let n = t12[e3], r3 = n[3] || n[2]; - if (r3) - return r3; - } - } - var Sn6 = class { - constructor(e3) { - this.input = e3, this.root = new bf(), this.current = this.root, this.spaces = "", this.semicolon = false, this.customProperty = false, this.createTokenizer(), this.root.source = { input: e3, start: { column: 1, line: 1, offset: 0 } }; - } - atrule(e3) { - let n = new xf2(); - n.name = e3[1].slice(1), n.name === "" && this.unnamedAtrule(n, e3), this.init(n, e3[2]); - let r3, s3, i, o2 = false, a = false, u = [], c3 = []; - for (; !this.tokenizer.endOfFile(); ) { - if (e3 = this.tokenizer.nextToken(), r3 = e3[0], r3 === "(" || r3 === "[" ? c3.push(r3 === "(" ? ")" : "]") : r3 === "{" && c3.length > 0 ? c3.push("}") : r3 === c3[c3.length - 1] && c3.pop(), c3.length === 0) - if (r3 === ";") { - n.source.end = this.getPosition(e3[2]), this.semicolon = true; - break; - } else if (r3 === "{") { - a = true; - break; - } else if (r3 === "}") { - if (u.length > 0) { - for (i = u.length - 1, s3 = u[i]; s3 && s3[0] === "space"; ) - s3 = u[--i]; - s3 && (n.source.end = this.getPosition(s3[3] || s3[2])); - } - this.end(e3); - break; - } else - u.push(e3); - else - u.push(e3); - if (this.tokenizer.endOfFile()) { - o2 = true; - break; - } - } - n.raws.between = this.spacesAndCommentsFromEnd(u), u.length ? (n.raws.afterName = this.spacesAndCommentsFromStart(u), this.raw(n, "params", u), o2 && (e3 = u[u.length - 1], n.source.end = this.getPosition(e3[3] || e3[2]), this.spaces = n.raws.between, n.raws.between = "")) : (n.raws.afterName = "", n.params = ""), a && (n.nodes = [], this.current = n); - } - checkMissedSemicolon(e3) { - let n = this.colon(e3); - if (n === false) - return; - let r3 = 0, s3; - for (let i = n - 1; i >= 0 && (s3 = e3[i], !(s3[0] !== "space" && (r3 += 1, r3 === 2))); i--) - ; - throw this.input.error("Missed semicolon", s3[0] === "word" ? s3[3] + 1 : s3[2]); - } - colon(e3) { - let n = 0, r3, s3, i; - for (let [o2, a] of e3.entries()) { - if (r3 = a, s3 = r3[0], s3 === "(" && (n += 1), s3 === ")" && (n -= 1), n === 0 && s3 === ":") - if (!i) - this.doubleColon(r3); - else { - if (i[0] === "word" && i[1] === "progid") - continue; - return o2; - } - i = r3; - } - return false; - } - comment(e3) { - let n = new vf(); - this.init(n, e3[2]), n.source.end = this.getPosition(e3[3] || e3[2]); - let r3 = e3[1].slice(2, -2); - if (/^\s*$/.test(r3)) - n.text = "", n.raws.left = r3, n.raws.right = ""; - else { - let s3 = r3.match(/^(\s*)([^]*\S)(\s*)$/); - n.text = s3[2], n.raws.left = s3[1], n.raws.right = s3[3]; - } - } - createTokenizer() { - this.tokenizer = wf2(this.input); - } - decl(e3, n) { - let r3 = new gf(); - this.init(r3, e3[0][2]); - let s3 = e3[e3.length - 1]; - for (s3[0] === ";" && (this.semicolon = true, e3.pop()), r3.source.end = this.getPosition(s3[3] || s3[2] || kf(e3)); e3[0][0] !== "word"; ) - e3.length === 1 && this.unknownWord(e3), r3.raws.before += e3.shift()[1]; - for (r3.source.start = this.getPosition(e3[0][2]), r3.prop = ""; e3.length; ) { - let c3 = e3[0][0]; - if (c3 === ":" || c3 === "space" || c3 === "comment") - break; - r3.prop += e3.shift()[1]; - } - r3.raws.between = ""; - let i; - for (; e3.length; ) - if (i = e3.shift(), i[0] === ":") { - r3.raws.between += i[1]; - break; - } else - i[0] === "word" && /\w/.test(i[1]) && this.unknownWord([i]), r3.raws.between += i[1]; - (r3.prop[0] === "_" || r3.prop[0] === "*") && (r3.raws.before += r3.prop[0], r3.prop = r3.prop.slice(1)); - let o2 = [], a; - for (; e3.length && (a = e3[0][0], !(a !== "space" && a !== "comment")); ) - o2.push(e3.shift()); - this.precheckMissedSemicolon(e3); - for (let c3 = e3.length - 1; c3 >= 0; c3--) { - if (i = e3[c3], i[1].toLowerCase() === "!important") { - r3.important = true; - let f3 = this.stringFrom(e3, c3); - f3 = this.spacesFromEnd(e3) + f3, f3 !== " !important" && (r3.raws.important = f3); - break; - } else if (i[1].toLowerCase() === "important") { - let f3 = e3.slice(0), p4 = ""; - for (let l = c3; l > 0; l--) { - let g3 = f3[l][0]; - if (p4.trim().indexOf("!") === 0 && g3 !== "space") - break; - p4 = f3.pop()[1] + p4; - } - p4.trim().indexOf("!") === 0 && (r3.important = true, r3.raws.important = p4, e3 = f3); - } - if (i[0] !== "space" && i[0] !== "comment") - break; - } - e3.some((c3) => c3[0] !== "space" && c3[0] !== "comment") && (r3.raws.between += o2.map((c3) => c3[1]).join(""), o2 = []), this.raw(r3, "value", o2.concat(e3), n), r3.value.includes(":") && !n && this.checkMissedSemicolon(e3); - } - doubleColon(e3) { - throw this.input.error("Double colon", { offset: e3[2] }, { offset: e3[2] + e3[1].length }); - } - emptyRule(e3) { - let n = new xo3(); - this.init(n, e3[2]), n.selector = "", n.raws.between = "", this.current = n; - } - end(e3) { - this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.semicolon = false, this.current.raws.after = (this.current.raws.after || "") + this.spaces, this.spaces = "", this.current.parent ? (this.current.source.end = this.getPosition(e3[2]), this.current = this.current.parent) : this.unexpectedClose(e3); - } - endFile() { - this.current.parent && this.unclosedBlock(), this.current.nodes && this.current.nodes.length && (this.current.raws.semicolon = this.semicolon), this.current.raws.after = (this.current.raws.after || "") + this.spaces, this.root.source.end = this.getPosition(this.tokenizer.position()); - } - freeSemicolon(e3) { - if (this.spaces += e3[1], this.current.nodes) { - let n = this.current.nodes[this.current.nodes.length - 1]; - n && n.type === "rule" && !n.raws.ownSemicolon && (n.raws.ownSemicolon = this.spaces, this.spaces = ""); - } - } - getPosition(e3) { - let n = this.input.fromOffset(e3); - return { column: n.col, line: n.line, offset: e3 }; - } - init(e3, n) { - this.current.push(e3), e3.source = { input: this.input, start: this.getPosition(n) }, e3.raws.before = this.spaces, this.spaces = "", e3.type !== "comment" && (this.semicolon = false); - } - other(e3) { - let n = false, r3 = null, s3 = false, i = null, o2 = [], a = e3[1].startsWith("--"), u = [], c3 = e3; - for (; c3; ) { - if (r3 = c3[0], u.push(c3), r3 === "(" || r3 === "[") - i || (i = c3), o2.push(r3 === "(" ? ")" : "]"); - else if (a && s3 && r3 === "{") - i || (i = c3), o2.push("}"); - else if (o2.length === 0) - if (r3 === ";") - if (s3) { - this.decl(u, a); - return; - } else - break; - else if (r3 === "{") { - this.rule(u); - return; - } else if (r3 === "}") { - this.tokenizer.back(u.pop()), n = true; - break; - } else - r3 === ":" && (s3 = true); - else - r3 === o2[o2.length - 1] && (o2.pop(), o2.length === 0 && (i = null)); - c3 = this.tokenizer.nextToken(); - } - if (this.tokenizer.endOfFile() && (n = true), o2.length > 0 && this.unclosedBracket(i), n && s3) { - if (!a) - for (; u.length && (c3 = u[u.length - 1][0], !(c3 !== "space" && c3 !== "comment")); ) - this.tokenizer.back(u.pop()); - this.decl(u, a); - } else - this.unknownWord(u); - } - parse() { - let e3; - for (; !this.tokenizer.endOfFile(); ) - switch (e3 = this.tokenizer.nextToken(), e3[0]) { - case "space": - this.spaces += e3[1]; - break; - case ";": - this.freeSemicolon(e3); - break; - case "}": - this.end(e3); - break; - case "comment": - this.comment(e3); - break; - case "at-word": - this.atrule(e3); - break; - case "{": - this.emptyRule(e3); - break; - default: - this.other(e3); - break; - } - this.endFile(); - } - precheckMissedSemicolon() { - } - raw(e3, n, r3, s3) { - let i, o2, a = r3.length, u = "", c3 = true, f3, p4; - for (let l = 0; l < a; l += 1) - i = r3[l], o2 = i[0], o2 === "space" && l === a - 1 && !s3 ? c3 = false : o2 === "comment" ? (p4 = r3[l - 1] ? r3[l - 1][0] : "empty", f3 = r3[l + 1] ? r3[l + 1][0] : "empty", !bo3[p4] && !bo3[f3] ? u.slice(-1) === "," ? c3 = false : u += i[1] : c3 = false) : u += i[1]; - if (!c3) { - let l = r3.reduce((g3, x7) => g3 + x7[1], ""); - e3.raws[n] = { raw: l, value: u }; - } - e3[n] = u; - } - rule(e3) { - e3.pop(); - let n = new xo3(); - this.init(n, e3[0][2]), n.raws.between = this.spacesAndCommentsFromEnd(e3), this.raw(n, "selector", e3), this.current = n; - } - spacesAndCommentsFromEnd(e3) { - let n, r3 = ""; - for (; e3.length && (n = e3[e3.length - 1][0], !(n !== "space" && n !== "comment")); ) - r3 = e3.pop()[1] + r3; - return r3; - } - spacesAndCommentsFromStart(e3) { - let n, r3 = ""; - for (; e3.length && (n = e3[0][0], !(n !== "space" && n !== "comment")); ) - r3 += e3.shift()[1]; - return r3; - } - spacesFromEnd(e3) { - let n, r3 = ""; - for (; e3.length && (n = e3[e3.length - 1][0], n === "space"); ) - r3 = e3.pop()[1] + r3; - return r3; - } - stringFrom(e3, n) { - let r3 = ""; - for (let s3 = n; s3 < e3.length; s3++) - r3 += e3[s3][1]; - return e3.splice(n, e3.length - n), r3; - } - unclosedBlock() { - let e3 = this.current.source.start; - throw this.input.error("Unclosed block", e3.line, e3.column); - } - unclosedBracket(e3) { - throw this.input.error("Unclosed bracket", { offset: e3[2] }, { offset: e3[2] + 1 }); - } - unexpectedClose(e3) { - throw this.input.error("Unexpected }", { offset: e3[2] }, { offset: e3[2] + 1 }); - } - unknownWord(e3) { - throw this.input.error("Unknown word", { offset: e3[0][2] }, { offset: e3[0][2] + e3[0][1].length }); - } - unnamedAtrule(e3, n) { - throw this.input.error("At-rule without name", { offset: n[2] }, { offset: n[2] + n[1].length }); - } - }; - ko2.exports = Sn6; - }); - _o2 = y4(() => { - }); - Eo2 = y4((Ix, To2) => { - var _f = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", Tf = (t12, e3 = 21) => (n = e3) => { - let r3 = "", s3 = n; - for (; s3--; ) - r3 += t12[Math.random() * t12.length | 0]; - return r3; - }, Ef = (t12 = 21) => { - let e3 = "", n = t12; - for (; n--; ) - e3 += _f[Math.random() * 64 | 0]; - return e3; - }; - To2.exports = { nanoid: Ef, customAlphabet: Tf }; - }); - Cn3 = y4((qx, So3) => { - So3.exports = class { - }; - }); - qe7 = y4((Lx, No3) => { - "use strict"; - var { SourceMapConsumer: Sf, SourceMapGenerator: Cf2 } = _o2(), { fileURLToPath: Co2, pathToFileURL: sr7 } = {}, { isAbsolute: Nn6, resolve: Pn5 } = {}, { nanoid: Of } = Eo2(), On6 = vn4(), Oo2 = Vt3(), Af = Cn3(), An4 = Symbol("fromOffsetCache"), Nf = !!(Sf && Cf2), Ao2 = !!(Pn5 && Nn6), Ie8 = class { - constructor(e3, n = {}) { - if (e3 === null || typeof e3 > "u" || typeof e3 == "object" && !e3.toString) - throw new Error(`PostCSS received ${e3} instead of CSS string`); - if (this.css = e3.toString(), this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE" ? (this.hasBOM = true, this.css = this.css.slice(1)) : this.hasBOM = false, n.from && (!Ao2 || /^\w+:\/\//.test(n.from) || Nn6(n.from) ? this.file = n.from : this.file = Pn5(n.from)), Ao2 && Nf) { - let r3 = new Af(this.css, n); - if (r3.text) { - this.map = r3; - let s3 = r3.consumer().file; - !this.file && s3 && (this.file = this.mapResolve(s3)); - } - } - this.file || (this.id = ""), this.map && (this.map.file = this.from); - } - error(e3, n, r3, s3 = {}) { - let i, o2, a; - if (n && typeof n == "object") { - let c3 = n, f3 = r3; - if (typeof c3.offset == "number") { - let p4 = this.fromOffset(c3.offset); - n = p4.line, r3 = p4.col; - } else - n = c3.line, r3 = c3.column; - if (typeof f3.offset == "number") { - let p4 = this.fromOffset(f3.offset); - o2 = p4.line, a = p4.col; - } else - o2 = f3.line, a = f3.column; - } else if (!r3) { - let c3 = this.fromOffset(n); - n = c3.line, r3 = c3.col; - } - let u = this.origin(n, r3, o2, a); - return u ? i = new Oo2(e3, u.endLine === void 0 ? u.line : { column: u.column, line: u.line }, u.endLine === void 0 ? u.column : { column: u.endColumn, line: u.endLine }, u.source, u.file, s3.plugin) : i = new Oo2(e3, o2 === void 0 ? n : { column: r3, line: n }, o2 === void 0 ? r3 : { column: a, line: o2 }, this.css, this.file, s3.plugin), i.input = { column: r3, endColumn: a, endLine: o2, line: n, source: this.css }, this.file && (sr7 && (i.input.url = sr7(this.file).toString()), i.input.file = this.file), i; - } - get from() { - return this.file || this.id; - } - fromOffset(e3) { - let n, r3; - if (this[An4]) - r3 = this[An4]; - else { - let i = this.css.split(` -`); - r3 = new Array(i.length); - let o2 = 0; - for (let a = 0, u = i.length; a < u; a++) - r3[a] = o2, o2 += i[a].length + 1; - this[An4] = r3; - } - n = r3[r3.length - 1]; - let s3 = 0; - if (e3 >= n) - s3 = r3.length - 1; - else { - let i = r3.length - 2, o2; - for (; s3 < i; ) - if (o2 = s3 + (i - s3 >> 1), e3 < r3[o2]) - i = o2 - 1; - else if (e3 >= r3[o2 + 1]) - s3 = o2 + 1; - else { - s3 = o2; - break; - } - } - return { col: e3 - r3[s3] + 1, line: s3 + 1 }; - } - mapResolve(e3) { - return /^\w+:\/\//.test(e3) ? e3 : Pn5(this.map.consumer().sourceRoot || this.map.root || ".", e3); - } - origin(e3, n, r3, s3) { - if (!this.map) - return false; - let i = this.map.consumer(), o2 = i.originalPositionFor({ column: n, line: e3 }); - if (!o2.source) - return false; - let a; - typeof r3 == "number" && (a = i.originalPositionFor({ column: s3, line: r3 })); - let u; - Nn6(o2.source) ? u = sr7(o2.source) : u = new URL(o2.source, this.map.consumer().sourceRoot || sr7(this.map.mapFile)); - let c3 = { column: o2.column, endColumn: a && a.column, endLine: a && a.line, line: o2.line, url: u.toString() }; - if (u.protocol === "file:") - if (Co2) - c3.file = Co2(u); - else - throw new Error("file: protocol is not available in this PostCSS build"); - let f3 = i.sourceContentFor(o2.source); - return f3 && (c3.source = f3), c3; - } - toJSON() { - let e3 = {}; - for (let n of ["hasBOM", "css", "file", "id"]) - this[n] != null && (e3[n] = this[n]); - return this.map && (e3.map = { ...this.map }, e3.map.consumerCache && (e3.map.consumerCache = void 0)), e3; - } - }; - No3.exports = Ie8; - Ie8.default = Ie8; - On6 && On6.registerInput && On6.registerInput(Ie8); - }); - dt6 = y4((Mx, Po2) => { - "use strict"; - var Pf = se6(), Rf = nr5(), If = qe7(); - function ir7(t12, e3) { - let n = new If(t12, e3), r3 = new Rf(n); - try { - r3.parse(); - } catch (s3) { - throw s3; - } - return r3.root; - } - Po2.exports = ir7; - ir7.default = ir7; - Pf.registerParse(ir7); - }); - Ro2 = y4((Bx, Rn5) => { - var qf = er6(), Df = qe7(); - Rn5.exports = { isInlineComment(t12) { - if (t12[0] === "word" && t12[1].slice(0, 2) === "//") { - let e3 = t12, n = [], r3, s3; - for (; t12; ) { - if (/\r?\n/.test(t12[1])) { - if (/['"].*\r?\n/.test(t12[1])) { - n.push(t12[1].substring(0, t12[1].indexOf(` -`))), s3 = t12[1].substring(t12[1].indexOf(` -`)); - let o2 = this.input.css.valueOf().substring(this.tokenizer.position()); - s3 += o2, r3 = t12[3] + o2.length - s3.length; - } else - this.tokenizer.back(t12); - break; - } - n.push(t12[1]), r3 = t12[2], t12 = this.tokenizer.nextToken({ ignoreUnclosed: true }); - } - let i = ["comment", n.join(""), e3[2], r3]; - return this.inlineComment(i), s3 && (this.input = new Df(s3), this.tokenizer = qf(this.input)), true; - } else if (t12[1] === "/") { - let e3 = this.tokenizer.nextToken({ ignoreUnclosed: true }); - if (e3[0] === "comment" && /^\/\*/.test(e3[1])) - return e3[0] = "word", e3[1] = e3[1].slice(1), t12[1] = "//", this.tokenizer.back(e3), Rn5.exports.isInlineComment.bind(this)(t12); - } - return false; - } }; - }); - qo2 = y4((Fx, Io2) => { - Io2.exports = { interpolation(t12) { - let e3 = [t12, this.tokenizer.nextToken()], n = ["word", "}"]; - if (e3[0][1].length > 1 || e3[1][0] !== "{") - return this.tokenizer.back(e3[1]), false; - for (t12 = this.tokenizer.nextToken(); t12 && n.includes(t12[0]); ) - e3.push(t12), t12 = this.tokenizer.nextToken(); - let r3 = e3.map((a) => a[1]), [s3] = e3, i = e3.pop(), o2 = ["word", r3.join(""), s3[2], i[2]]; - return this.tokenizer.back(t12), this.tokenizer.back(o2), true; - } }; - }); - Lo3 = y4(($x, Do2) => { - var Lf = /^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/, Mf = /\.[0-9]/, Bf = (t12) => { - let [, e3] = t12, [n] = e3; - return (n === "." || n === "#") && Lf.test(e3) === false && Mf.test(e3) === false; - }; - Do2.exports = { isMixinToken: Bf }; - }); - Bo2 = y4((Ux, Mo2) => { - var Ff = er6(), $f = /^url\((.+)\)/; - Mo2.exports = (t12) => { - let { name: e3, params: n = "" } = t12; - if (e3 === "import" && n.length) { - t12.import = true; - let r3 = Ff({ css: n }); - for (t12.filename = n.replace($f, "$1"); !r3.endOfFile(); ) { - let [s3, i] = r3.nextToken(); - if (s3 === "word" && i === "url") - return; - if (s3 === "brackets") { - t12.options = i, t12.filename = n.replace(i, "").trim(); - break; - } - } - } - }; - }); - Wo2 = y4((Wx, Uo2) => { - var Fo3 = /:$/, $o3 = /^:(\s+)?/; - Uo2.exports = (t12) => { - let { name: e3, params: n = "" } = t12; - if (t12.name.slice(-1) === ":") { - if (Fo3.test(e3)) { - let [r3] = e3.match(Fo3); - t12.name = e3.replace(r3, ""), t12.raws.afterName = r3 + (t12.raws.afterName || ""), t12.variable = true, t12.value = t12.params; - } - if ($o3.test(n)) { - let [r3] = n.match($o3); - t12.value = n.replace(r3, ""), t12.raws.afterName = (t12.raws.afterName || "") + r3, t12.variable = true; - } - } - }; - }); - Yo2 = y4((Vx, Vo3) => { - var Uf = Ae5(), Wf = nr5(), { isInlineComment: zf } = Ro2(), { interpolation: zo3 } = qo2(), { isMixinToken: Vf } = Lo3(), Yf = Bo2(), Gf = Wo2(), Kf = /(!\s*important)$/i; - Vo3.exports = class extends Wf { - constructor(...e3) { - super(...e3), this.lastNode = null; - } - atrule(e3) { - zo3.bind(this)(e3) || (super.atrule(e3), Yf(this.lastNode), Gf(this.lastNode)); - } - decl(...e3) { - super.decl(...e3), /extend\(.+\)/i.test(this.lastNode.value) && (this.lastNode.extend = true); - } - each(e3) { - e3[0][1] = ` ${e3[0][1]}`; - let n = e3.findIndex((a) => a[0] === "("), r3 = e3.reverse().find((a) => a[0] === ")"), s3 = e3.reverse().indexOf(r3), o2 = e3.splice(n, s3).map((a) => a[1]).join(""); - for (let a of e3.reverse()) - this.tokenizer.back(a); - this.atrule(this.tokenizer.nextToken()), this.lastNode.function = true, this.lastNode.params = o2; - } - init(e3, n, r3) { - super.init(e3, n, r3), this.lastNode = e3; - } - inlineComment(e3) { - let n = new Uf(), r3 = e3[1].slice(2); - if (this.init(n, e3[2]), n.source.end = this.getPosition(e3[3] || e3[2]), n.inline = true, n.raws.begin = "//", /^\s*$/.test(r3)) - n.text = "", n.raws.left = r3, n.raws.right = ""; - else { - let s3 = r3.match(/^(\s*)([^]*[^\s])(\s*)$/); - [, n.raws.left, n.text, n.raws.right] = s3; - } - } - mixin(e3) { - let [n] = e3, r3 = n[1].slice(0, 1), s3 = e3.findIndex((c3) => c3[0] === "brackets"), i = e3.findIndex((c3) => c3[0] === "("), o2 = ""; - if ((s3 < 0 || s3 > 3) && i > 0) { - let c3 = e3.reduce((w4, v7, N6) => v7[0] === ")" ? N6 : w4), p4 = e3.slice(i, c3 + i).map((w4) => w4[1]).join(""), [l] = e3.slice(i), g3 = [l[2], l[3]], [x7] = e3.slice(c3, c3 + 1), h4 = [x7[2], x7[3]], d5 = ["brackets", p4].concat(g3, h4), m3 = e3.slice(0, i), b5 = e3.slice(c3 + 1); - e3 = m3, e3.push(d5), e3 = e3.concat(b5); - } - let a = []; - for (let c3 of e3) - if ((c3[1] === "!" || a.length) && a.push(c3), c3[1] === "important") - break; - if (a.length) { - let [c3] = a, f3 = e3.indexOf(c3), p4 = a[a.length - 1], l = [c3[2], c3[3]], g3 = [p4[4], p4[5]], h4 = ["word", a.map((d5) => d5[1]).join("")].concat(l, g3); - e3.splice(f3, a.length, h4); - } - let u = e3.findIndex((c3) => Kf.test(c3[1])); - u > 0 && ([, o2] = e3[u], e3.splice(u, 1)); - for (let c3 of e3.reverse()) - this.tokenizer.back(c3); - this.atrule(this.tokenizer.nextToken()), this.lastNode.mixin = true, this.lastNode.raws.identifier = r3, o2 && (this.lastNode.important = true, this.lastNode.raws.important = o2); - } - other(e3) { - zf.bind(this)(e3) || super.other(e3); - } - rule(e3) { - let n = e3[e3.length - 1], r3 = e3[e3.length - 2]; - if (r3[0] === "at-word" && n[0] === "{" && (this.tokenizer.back(n), zo3.bind(this)(r3))) { - let i = this.tokenizer.nextToken(); - e3 = e3.slice(0, e3.length - 2).concat([i]); - for (let o2 of e3.reverse()) - this.tokenizer.back(o2); - return; - } - super.rule(e3), /:extend\(.+\)/i.test(this.lastNode.selector) && (this.lastNode.extend = true); - } - unknownWord(e3) { - let [n] = e3; - if (e3[0][1] === "each" && e3[1][0] === "(") { - this.each(e3); - return; - } - if (Vf(n)) { - this.mixin(e3); - return; - } - super.unknownWord(e3); - } - }; - }); - Ko2 = y4((Gx, Go2) => { - var Hf = Yt4(); - Go2.exports = class extends Hf { - atrule(e3, n) { - if (!e3.mixin && !e3.variable && !e3.function) { - super.atrule(e3, n); - return; - } - let s3 = `${e3.function ? "" : e3.raws.identifier || "@"}${e3.name}`, i = e3.params ? this.rawValue(e3, "params") : "", o2 = e3.raws.important || ""; - if (e3.variable && (i = e3.value), typeof e3.raws.afterName < "u" ? s3 += e3.raws.afterName : i && (s3 += " "), e3.nodes) - this.block(e3, s3 + i + o2); - else { - let a = (e3.raws.between || "") + o2 + (n ? ";" : ""); - this.builder(s3 + i + a, e3); - } - } - comment(e3) { - if (e3.inline) { - let n = this.raw(e3, "left", "commentLeft"), r3 = this.raw(e3, "right", "commentRight"); - this.builder(`//${n}${e3.text}${r3}`, e3); - } else - super.comment(e3); - } - }; - }); - Ho3 = y4((Kx, In4) => { - var Qf = qe7(), jf = Yo2(), Jf = Ko2(); - In4.exports = { parse(t12, e3) { - let n = new Qf(t12, e3), r3 = new jf(n); - return r3.parse(), r3.root.walk((s3) => { - let i = n.css.lastIndexOf(s3.source.input.css); - if (i === 0) - return; - if (i + s3.source.input.css.length !== n.css.length) - throw new Error("Invalid state detected in postcss-less"); - let o2 = i + s3.source.start.offset, a = n.fromOffset(i + s3.source.start.offset); - if (s3.source.start = { offset: o2, line: a.line, column: a.col }, s3.source.end) { - let u = i + s3.source.end.offset, c3 = n.fromOffset(i + s3.source.end.offset); - s3.source.end = { offset: u, line: c3.line, column: c3.col }; - } - }), r3.root; - }, stringify(t12, e3) { - new Jf(e3).stringify(t12); - }, nodeToString(t12) { - let e3 = ""; - return In4.exports.stringify(t12, (n) => { - e3 += n; - }), e3; - } }; - }); - qn4 = y4((Hx, Qo3) => { - Qo3.exports = class { - generate() { - } - }; - }); - or5 = y4((jx, Xo2) => { - "use strict"; - var Xf = se6(), jo2, Jo2, ye6 = class extends Xf { - constructor(e3) { - super({ type: "document", ...e3 }), this.nodes || (this.nodes = []); - } - toResult(e3 = {}) { - return new jo2(new Jo2(), this, e3).stringify(); - } - }; - ye6.registerLazyResult = (t12) => { - jo2 = t12; - }; - ye6.registerProcessor = (t12) => { - Jo2 = t12; - }; - Xo2.exports = ye6; - ye6.default = ye6; - }); - Dn4 = y4((Jx, ea4) => { - "use strict"; - var Zo2 = {}; - ea4.exports = function(e3) { - Zo2[e3] || (Zo2[e3] = true, typeof console < "u" && console.warn && console.warn(e3)); - }; - }); - Ln5 = y4((Xx, ta4) => { - "use strict"; - var mt7 = class { - constructor(e3, n = {}) { - if (this.type = "warning", this.text = e3, n.node && n.node.source) { - let r3 = n.node.rangeBy(n); - this.line = r3.start.line, this.column = r3.start.column, this.endLine = r3.end.line, this.endColumn = r3.end.column; - } - for (let r3 in n) - this[r3] = n[r3]; - } - toString() { - return this.node ? this.node.error(this.text, { index: this.index, plugin: this.plugin, word: this.word }).message : this.plugin ? this.plugin + ": " + this.text : this.text; - } - }; - ta4.exports = mt7; - mt7.default = mt7; - }); - ar4 = y4((Zx, ra5) => { - "use strict"; - var Zf = Ln5(), yt7 = class { - constructor(e3, n, r3) { - this.processor = e3, this.messages = [], this.root = n, this.opts = r3, this.css = void 0, this.map = void 0; - } - get content() { - return this.css; - } - toString() { - return this.css; - } - warn(e3, n = {}) { - n.plugin || this.lastPlugin && this.lastPlugin.postcssPlugin && (n.plugin = this.lastPlugin.postcssPlugin); - let r3 = new Zf(e3, n); - return this.messages.push(r3), r3; - } - warnings() { - return this.messages.filter((e3) => e3.type === "warning"); - } - }; - ra5.exports = yt7; - yt7.default = yt7; - }); - Fn4 = y4((tb, oa5) => { - "use strict"; - var { isClean: K7, my: ep2 } = zt5(), tp2 = qn4(), rp2 = ot6(), np2 = se6(), sp2 = or5(), eb = Dn4(), na4 = ar4(), ip2 = dt6(), op2 = Pe8(), ap2 = { atrule: "AtRule", comment: "Comment", decl: "Declaration", document: "Document", root: "Root", rule: "Rule" }, up2 = { AtRule: true, AtRuleExit: true, Comment: true, CommentExit: true, Declaration: true, DeclarationExit: true, Document: true, DocumentExit: true, Once: true, OnceExit: true, postcssPlugin: true, prepare: true, Root: true, RootExit: true, Rule: true, RuleExit: true }, lp2 = { Once: true, postcssPlugin: true, prepare: true }, De9 = 0; - function gt7(t12) { - return typeof t12 == "object" && typeof t12.then == "function"; - } - function ia5(t12) { - let e3 = false, n = ap2[t12.type]; - return t12.type === "decl" ? e3 = t12.prop.toLowerCase() : t12.type === "atrule" && (e3 = t12.name.toLowerCase()), e3 && t12.append ? [n, n + "-" + e3, De9, n + "Exit", n + "Exit-" + e3] : e3 ? [n, n + "-" + e3, n + "Exit", n + "Exit-" + e3] : t12.append ? [n, De9, n + "Exit"] : [n, n + "Exit"]; - } - function sa4(t12) { - let e3; - return t12.type === "document" ? e3 = ["Document", De9, "DocumentExit"] : t12.type === "root" ? e3 = ["Root", De9, "RootExit"] : e3 = ia5(t12), { eventIndex: 0, events: e3, iterator: 0, node: t12, visitorIndex: 0, visitors: [] }; - } - function Mn5(t12) { - return t12[K7] = false, t12.nodes && t12.nodes.forEach((e3) => Mn5(e3)), t12; - } - var Bn4 = {}, oe8 = class t12 { - constructor(e3, n, r3) { - this.stringified = false, this.processed = false; - let s3; - if (typeof n == "object" && n !== null && (n.type === "root" || n.type === "document")) - s3 = Mn5(n); - else if (n instanceof t12 || n instanceof na4) - s3 = Mn5(n.root), n.map && (typeof r3.map > "u" && (r3.map = {}), r3.map.inline || (r3.map.inline = false), r3.map.prev = n.map); - else { - let i = ip2; - r3.syntax && (i = r3.syntax.parse), r3.parser && (i = r3.parser), i.parse && (i = i.parse); - try { - s3 = i(n, r3); - } catch (o2) { - this.processed = true, this.error = o2; - } - s3 && !s3[ep2] && np2.rebuild(s3); - } - this.result = new na4(e3, s3, r3), this.helpers = { ...Bn4, postcss: Bn4, result: this.result }, this.plugins = this.processor.plugins.map((i) => typeof i == "object" && i.prepare ? { ...i, ...i.prepare(this.result) } : i); - } - async() { - return this.error ? Promise.reject(this.error) : this.processed ? Promise.resolve(this.result) : (this.processing || (this.processing = this.runAsync()), this.processing); - } - catch(e3) { - return this.async().catch(e3); - } - get content() { - return this.stringify().content; - } - get css() { - return this.stringify().css; - } - finally(e3) { - return this.async().then(e3, e3); - } - getAsyncError() { - throw new Error("Use process(css).then(cb) to work with async plugins"); - } - handleError(e3, n) { - let r3 = this.result.lastPlugin; - try { - n && n.addToError(e3), this.error = e3, e3.name === "CssSyntaxError" && !e3.plugin ? (e3.plugin = r3.postcssPlugin, e3.setMessage()) : r3.postcssVersion; - } catch (s3) { - console && console.error && console.error(s3); - } - return e3; - } - get map() { - return this.stringify().map; - } - get messages() { - return this.sync().messages; - } - get opts() { - return this.result.opts; - } - prepareVisitors() { - this.listeners = {}; - let e3 = (n, r3, s3) => { - this.listeners[r3] || (this.listeners[r3] = []), this.listeners[r3].push([n, s3]); - }; - for (let n of this.plugins) - if (typeof n == "object") - for (let r3 in n) { - if (!up2[r3] && /^[A-Z]/.test(r3)) - throw new Error(`Unknown event ${r3} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`); - if (!lp2[r3]) - if (typeof n[r3] == "object") - for (let s3 in n[r3]) - s3 === "*" ? e3(n, r3, n[r3][s3]) : e3(n, r3 + "-" + s3.toLowerCase(), n[r3][s3]); - else - typeof n[r3] == "function" && e3(n, r3, n[r3]); - } - this.hasListener = Object.keys(this.listeners).length > 0; - } - get processor() { - return this.result.processor; - } - get root() { - return this.sync().root; - } - async runAsync() { - this.plugin = 0; - for (let e3 = 0; e3 < this.plugins.length; e3++) { - let n = this.plugins[e3], r3 = this.runOnRoot(n); - if (gt7(r3)) - try { - await r3; - } catch (s3) { - throw this.handleError(s3); - } - } - if (this.prepareVisitors(), this.hasListener) { - let e3 = this.result.root; - for (; !e3[K7]; ) { - e3[K7] = true; - let n = [sa4(e3)]; - for (; n.length > 0; ) { - let r3 = this.visitTick(n); - if (gt7(r3)) - try { - await r3; - } catch (s3) { - let i = n[n.length - 1].node; - throw this.handleError(s3, i); - } - } - } - if (this.listeners.OnceExit) - for (let [n, r3] of this.listeners.OnceExit) { - this.result.lastPlugin = n; - try { - if (e3.type === "document") { - let s3 = e3.nodes.map((i) => r3(i, this.helpers)); - await Promise.all(s3); - } else - await r3(e3, this.helpers); - } catch (s3) { - throw this.handleError(s3); - } - } - } - return this.processed = true, this.stringify(); - } - runOnRoot(e3) { - this.result.lastPlugin = e3; - try { - if (typeof e3 == "object" && e3.Once) { - if (this.result.root.type === "document") { - let n = this.result.root.nodes.map((r3) => e3.Once(r3, this.helpers)); - return gt7(n[0]) ? Promise.all(n) : n; - } - return e3.Once(this.result.root, this.helpers); - } else if (typeof e3 == "function") - return e3(this.result.root, this.result); - } catch (n) { - throw this.handleError(n); - } - } - stringify() { - if (this.error) - throw this.error; - if (this.stringified) - return this.result; - this.stringified = true, this.sync(); - let e3 = this.result.opts, n = rp2; - e3.syntax && (n = e3.syntax.stringify), e3.stringifier && (n = e3.stringifier), n.stringify && (n = n.stringify); - let s3 = new tp2(n, this.result.root, this.result.opts).generate(); - return this.result.css = s3[0], this.result.map = s3[1], this.result; - } - get [Symbol.toStringTag]() { - return "LazyResult"; - } - sync() { - if (this.error) - throw this.error; - if (this.processed) - return this.result; - if (this.processed = true, this.processing) - throw this.getAsyncError(); - for (let e3 of this.plugins) { - let n = this.runOnRoot(e3); - if (gt7(n)) - throw this.getAsyncError(); - } - if (this.prepareVisitors(), this.hasListener) { - let e3 = this.result.root; - for (; !e3[K7]; ) - e3[K7] = true, this.walkSync(e3); - if (this.listeners.OnceExit) - if (e3.type === "document") - for (let n of e3.nodes) - this.visitSync(this.listeners.OnceExit, n); - else - this.visitSync(this.listeners.OnceExit, e3); - } - return this.result; - } - then(e3, n) { - return this.async().then(e3, n); - } - toString() { - return this.css; - } - visitSync(e3, n) { - for (let [r3, s3] of e3) { - this.result.lastPlugin = r3; - let i; - try { - i = s3(n, this.helpers); - } catch (o2) { - throw this.handleError(o2, n.proxyOf); - } - if (n.type !== "root" && n.type !== "document" && !n.parent) - return true; - if (gt7(i)) - throw this.getAsyncError(); - } - } - visitTick(e3) { - let n = e3[e3.length - 1], { node: r3, visitors: s3 } = n; - if (r3.type !== "root" && r3.type !== "document" && !r3.parent) { - e3.pop(); - return; - } - if (s3.length > 0 && n.visitorIndex < s3.length) { - let [o2, a] = s3[n.visitorIndex]; - n.visitorIndex += 1, n.visitorIndex === s3.length && (n.visitors = [], n.visitorIndex = 0), this.result.lastPlugin = o2; - try { - return a(r3.toProxy(), this.helpers); - } catch (u) { - throw this.handleError(u, r3); - } - } - if (n.iterator !== 0) { - let o2 = n.iterator, a; - for (; a = r3.nodes[r3.indexes[o2]]; ) - if (r3.indexes[o2] += 1, !a[K7]) { - a[K7] = true, e3.push(sa4(a)); - return; - } - n.iterator = 0, delete r3.indexes[o2]; - } - let i = n.events; - for (; n.eventIndex < i.length; ) { - let o2 = i[n.eventIndex]; - if (n.eventIndex += 1, o2 === De9) { - r3.nodes && r3.nodes.length && (r3[K7] = true, n.iterator = r3.getIterator()); - return; - } else if (this.listeners[o2]) { - n.visitors = this.listeners[o2]; - return; - } - } - e3.pop(); - } - walkSync(e3) { - e3[K7] = true; - let n = ia5(e3); - for (let r3 of n) - if (r3 === De9) - e3.nodes && e3.each((s3) => { - s3[K7] || this.walkSync(s3); - }); - else { - let s3 = this.listeners[r3]; - if (s3 && this.visitSync(s3, e3.toProxy())) - return; - } - } - warnings() { - return this.sync().warnings(); - } - }; - oe8.registerPostcss = (t12) => { - Bn4 = t12; - }; - oa5.exports = oe8; - oe8.default = oe8; - op2.registerLazyResult(oe8); - sp2.registerLazyResult(oe8); - }); - ua4 = y4((nb, aa4) => { - "use strict"; - var cp2 = qn4(), fp2 = ot6(), rb = Dn4(), pp2 = dt6(), hp2 = ar4(), wt7 = class { - constructor(e3, n, r3) { - n = n.toString(), this.stringified = false, this._processor = e3, this._css = n, this._opts = r3, this._map = void 0; - let s3, i = fp2; - this.result = new hp2(this._processor, s3, this._opts), this.result.css = n; - let o2 = this; - Object.defineProperty(this.result, "root", { get() { - return o2.root; - } }); - let a = new cp2(i, s3, this._opts, n); - if (a.isMap()) { - let [u, c3] = a.generate(); - u && (this.result.css = u), c3 && (this.result.map = c3); - } - } - async() { - return this.error ? Promise.reject(this.error) : Promise.resolve(this.result); - } - catch(e3) { - return this.async().catch(e3); - } - get content() { - return this.result.css; - } - get css() { - return this.result.css; - } - finally(e3) { - return this.async().then(e3, e3); - } - get map() { - return this.result.map; - } - get messages() { - return []; - } - get opts() { - return this.result.opts; - } - get processor() { - return this.result.processor; - } - get root() { - if (this._root) - return this._root; - let e3, n = pp2; - try { - e3 = n(this._css, this._opts); - } catch (r3) { - this.error = r3; - } - if (this.error) - throw this.error; - return this._root = e3, e3; - } - get [Symbol.toStringTag]() { - return "NoWorkResult"; - } - sync() { - if (this.error) - throw this.error; - return this.result; - } - then(e3, n) { - return this.async().then(e3, n); - } - toString() { - return this._css; - } - warnings() { - return []; - } - }; - aa4.exports = wt7; - wt7.default = wt7; - }); - ca4 = y4((sb, la5) => { - "use strict"; - var dp2 = ua4(), mp2 = Fn4(), yp2 = or5(), gp2 = Pe8(), ge6 = class { - constructor(e3 = []) { - this.version = "8.4.28", this.plugins = this.normalize(e3); - } - normalize(e3) { - let n = []; - for (let r3 of e3) - if (r3.postcss === true ? r3 = r3() : r3.postcss && (r3 = r3.postcss), typeof r3 == "object" && Array.isArray(r3.plugins)) - n = n.concat(r3.plugins); - else if (typeof r3 == "object" && r3.postcssPlugin) - n.push(r3); - else if (typeof r3 == "function") - n.push(r3); - else if (!(typeof r3 == "object" && (r3.parse || r3.stringify))) - throw new Error(r3 + " is not a PostCSS plugin"); - return n; - } - process(e3, n = {}) { - return this.plugins.length === 0 && typeof n.parser > "u" && typeof n.stringifier > "u" && typeof n.syntax > "u" ? new dp2(this, e3, n) : new mp2(this, e3, n); - } - use(e3) { - return this.plugins = this.plugins.concat(this.normalize([e3])), this; - } - }; - la5.exports = ge6; - ge6.default = ge6; - gp2.registerProcessor(ge6); - yp2.registerProcessor(ge6); - }); - pa4 = y4((ib, fa4) => { - "use strict"; - var wp2 = ct5(), vp2 = Cn3(), xp2 = Ae5(), bp2 = tr6(), kp2 = qe7(), _p2 = Pe8(), Tp2 = rr5(); - function vt9(t12, e3) { - if (Array.isArray(t12)) - return t12.map((s3) => vt9(s3)); - let { inputs: n, ...r3 } = t12; - if (n) { - e3 = []; - for (let s3 of n) { - let i = { ...s3, __proto__: kp2.prototype }; - i.map && (i.map = { ...i.map, __proto__: vp2.prototype }), e3.push(i); - } - } - if (r3.nodes && (r3.nodes = t12.nodes.map((s3) => vt9(s3, e3))), r3.source) { - let { inputId: s3, ...i } = r3.source; - r3.source = i, s3 != null && (r3.source.input = e3[s3]); - } - if (r3.type === "root") - return new _p2(r3); - if (r3.type === "decl") - return new wp2(r3); - if (r3.type === "rule") - return new Tp2(r3); - if (r3.type === "comment") - return new xp2(r3); - if (r3.type === "atrule") - return new bp2(r3); - throw new Error("Unknown node type: " + t12.type); - } - fa4.exports = vt9; - vt9.default = vt9; - }); - ur6 = y4((ob, va2) => { - "use strict"; - var Ep2 = Vt3(), ha5 = ct5(), Sp2 = Fn4(), Cp2 = se6(), $n5 = ca4(), Op2 = ot6(), Ap2 = pa4(), da4 = or5(), Np2 = Ln5(), ma3 = Ae5(), ya2 = tr6(), Pp2 = ar4(), Rp2 = qe7(), Ip2 = dt6(), qp3 = En4(), ga3 = rr5(), wa2 = Pe8(), Dp2 = ut3(); - function k4(...t12) { - return t12.length === 1 && Array.isArray(t12[0]) && (t12 = t12[0]), new $n5(t12); - } - k4.plugin = function(e3, n) { - let r3 = false; - function s3(...o2) { - console && console.warn && !r3 && (r3 = true, console.warn(e3 + `: postcss.plugin was deprecated. Migration guide: -https://evilmartians.com/chronicles/postcss-8-plugin-migration`)); - let a = n(...o2); - return a.postcssPlugin = e3, a.postcssVersion = new $n5().version, a; - } - let i; - return Object.defineProperty(s3, "postcss", { get() { - return i || (i = s3()), i; - } }), s3.process = function(o2, a, u) { - return k4([s3(u)]).process(o2, a); - }, s3; - }; - k4.stringify = Op2; - k4.parse = Ip2; - k4.fromJSON = Ap2; - k4.list = qp3; - k4.comment = (t12) => new ma3(t12); - k4.atRule = (t12) => new ya2(t12); - k4.decl = (t12) => new ha5(t12); - k4.rule = (t12) => new ga3(t12); - k4.root = (t12) => new wa2(t12); - k4.document = (t12) => new da4(t12); - k4.CssSyntaxError = Ep2; - k4.Declaration = ha5; - k4.Container = Cp2; - k4.Processor = $n5; - k4.Document = da4; - k4.Comment = ma3; - k4.Warning = Np2; - k4.AtRule = ya2; - k4.Result = Pp2; - k4.Input = Rp2; - k4.Rule = ga3; - k4.Root = wa2; - k4.Node = Dp2; - Sp2.registerPostcss(k4); - va2.exports = k4; - k4.default = k4; - }); - ba2 = y4((ab, xa2) => { - var { Container: Lp2 } = ur6(), Un5 = class extends Lp2 { - constructor(e3) { - super(e3), this.type = "decl", this.isNested = true, this.nodes || (this.nodes = []); - } - }; - xa2.exports = Un5; - }); - Ca4 = y4((ub, Sa4) => { - "use strict"; - var Wn4 = "'".charCodeAt(0), zn4 = '"'.charCodeAt(0), xt8 = "\\".charCodeAt(0), lr7 = "/".charCodeAt(0), Vn5 = ` -`.charCodeAt(0), cr6 = " ".charCodeAt(0), Yn5 = "\f".charCodeAt(0), Gn5 = " ".charCodeAt(0), Kn5 = "\r".charCodeAt(0), Mp2 = "[".charCodeAt(0), Bp2 = "]".charCodeAt(0), ka3 = "(".charCodeAt(0), _a3 = ")".charCodeAt(0), fr6 = "{".charCodeAt(0), Ta2 = "}".charCodeAt(0), Fp2 = ";".charCodeAt(0), $p2 = "*".charCodeAt(0), Up2 = ":".charCodeAt(0), Wp2 = "@".charCodeAt(0), zp2 = ",".charCodeAt(0), Hn6 = "#".charCodeAt(0), pr6 = /[\t\n\f\r "#'()/;[\\\]{}]/g, hr5 = /[,\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g, Vp2 = /.[\n"'(/\\]/, Ea3 = /[\da-f]/i, dr6 = /[\n\f\r]/g; - Sa4.exports = function(e3, n = {}) { - let r3 = e3.css.valueOf(), s3 = n.ignoreErrors, i, o2, a, u, c3, f3, p4, l, g3, x7 = r3.length, h4 = 0, d5 = [], m3 = [], b5; - function w4() { - return h4; - } - function v7(S6) { - throw e3.error("Unclosed " + S6, h4); - } - function N6() { - return m3.length === 0 && h4 >= x7; - } - function $8() { - let S6 = 1, C6 = false, O7 = false; - for (; S6 > 0; ) - o2 += 1, r3.length <= o2 && v7("interpolation"), i = r3.charCodeAt(o2), l = r3.charCodeAt(o2 + 1), C6 ? !O7 && i === C6 ? (C6 = false, O7 = false) : i === xt8 ? O7 = !O7 : O7 && (O7 = false) : i === Wn4 || i === zn4 ? C6 = i : i === Ta2 ? S6 -= 1 : i === Hn6 && l === fr6 && (S6 += 1); - } - function H10(S6) { - if (m3.length) - return m3.pop(); - if (h4 >= x7) - return; - let C6 = S6 ? S6.ignoreUnclosed : false; - switch (i = r3.charCodeAt(h4), i) { - case Vn5: - case cr6: - case Gn5: - case Kn5: - case Yn5: { - o2 = h4; - do - o2 += 1, i = r3.charCodeAt(o2); - while (i === cr6 || i === Vn5 || i === Gn5 || i === Kn5 || i === Yn5); - g3 = ["space", r3.slice(h4, o2)], h4 = o2 - 1; - break; - } - case Mp2: - case Bp2: - case fr6: - case Ta2: - case Up2: - case Fp2: - case _a3: { - let O7 = String.fromCharCode(i); - g3 = [O7, O7, h4]; - break; - } - case zp2: { - g3 = ["word", ",", h4, h4 + 1]; - break; - } - case ka3: { - if (p4 = d5.length ? d5.pop()[1] : "", l = r3.charCodeAt(h4 + 1), p4 === "url" && l !== Wn4 && l !== zn4) { - for (b5 = 1, f3 = false, o2 = h4 + 1; o2 <= r3.length - 1; ) { - if (l = r3.charCodeAt(o2), l === xt8) - f3 = !f3; - else if (l === ka3) - b5 += 1; - else if (l === _a3 && (b5 -= 1, b5 === 0)) - break; - o2 += 1; - } - u = r3.slice(h4, o2 + 1), g3 = ["brackets", u, h4, o2], h4 = o2; - } else - o2 = r3.indexOf(")", h4 + 1), u = r3.slice(h4, o2 + 1), o2 === -1 || Vp2.test(u) ? g3 = ["(", "(", h4] : (g3 = ["brackets", u, h4, o2], h4 = o2); - break; - } - case Wn4: - case zn4: { - for (a = i, o2 = h4, f3 = false; o2 < x7 && (o2++, o2 === x7 && v7("string"), i = r3.charCodeAt(o2), l = r3.charCodeAt(o2 + 1), !(!f3 && i === a)); ) - i === xt8 ? f3 = !f3 : f3 ? f3 = false : i === Hn6 && l === fr6 && $8(); - g3 = ["string", r3.slice(h4, o2 + 1), h4, o2], h4 = o2; - break; - } - case Wp2: { - pr6.lastIndex = h4 + 1, pr6.test(r3), pr6.lastIndex === 0 ? o2 = r3.length - 1 : o2 = pr6.lastIndex - 2, g3 = ["at-word", r3.slice(h4, o2 + 1), h4, o2], h4 = o2; - break; - } - case xt8: { - for (o2 = h4, c3 = true; r3.charCodeAt(o2 + 1) === xt8; ) - o2 += 1, c3 = !c3; - if (i = r3.charCodeAt(o2 + 1), c3 && i !== lr7 && i !== cr6 && i !== Vn5 && i !== Gn5 && i !== Kn5 && i !== Yn5 && (o2 += 1, Ea3.test(r3.charAt(o2)))) { - for (; Ea3.test(r3.charAt(o2 + 1)); ) - o2 += 1; - r3.charCodeAt(o2 + 1) === cr6 && (o2 += 1); - } - g3 = ["word", r3.slice(h4, o2 + 1), h4, o2], h4 = o2; - break; - } - default: - l = r3.charCodeAt(h4 + 1), i === Hn6 && l === fr6 ? (o2 = h4, $8(), u = r3.slice(h4, o2 + 1), g3 = ["word", u, h4, o2], h4 = o2) : i === lr7 && l === $p2 ? (o2 = r3.indexOf("*/", h4 + 2) + 1, o2 === 0 && (s3 || C6 ? o2 = r3.length : v7("comment")), g3 = ["comment", r3.slice(h4, o2 + 1), h4, o2], h4 = o2) : i === lr7 && l === lr7 ? (dr6.lastIndex = h4 + 1, dr6.test(r3), dr6.lastIndex === 0 ? o2 = r3.length - 1 : o2 = dr6.lastIndex - 2, u = r3.slice(h4, o2 + 1), g3 = ["comment", u, h4, o2, "inline"], h4 = o2) : (hr5.lastIndex = h4 + 1, hr5.test(r3), hr5.lastIndex === 0 ? o2 = r3.length - 1 : o2 = hr5.lastIndex - 2, g3 = ["word", r3.slice(h4, o2 + 1), h4, o2], d5.push(g3), h4 = o2); - break; - } - return h4++, g3; - } - function U8(S6) { - m3.push(S6); - } - return { back: U8, endOfFile: N6, nextToken: H10, position: w4 }; - }; - }); - Aa3 = y4((lb, Oa3) => { - var { Comment: Yp2 } = ur6(), Gp2 = nr5(), Kp2 = ba2(), Hp2 = Ca4(), Qn4 = class extends Gp2 { - atrule(e3) { - let n = e3[1], r3 = e3; - for (; !this.tokenizer.endOfFile(); ) { - let s3 = this.tokenizer.nextToken(); - if (s3[0] === "word" && s3[2] === r3[3] + 1) - n += s3[1], r3 = s3; - else { - this.tokenizer.back(s3); - break; - } - } - super.atrule(["at-word", n, e3[2], r3[3]]); - } - comment(e3) { - if (e3[4] === "inline") { - let n = new Yp2(); - this.init(n, e3[2]), n.raws.inline = true; - let r3 = this.input.fromOffset(e3[3]); - n.source.end = { column: r3.col, line: r3.line, offset: e3[3] }; - let s3 = e3[1].slice(2); - if (/^\s*$/.test(s3)) - n.text = "", n.raws.left = s3, n.raws.right = ""; - else { - let i = s3.match(/^(\s*)([^]*\S)(\s*)$/), o2 = i[2].replace(/(\*\/|\/\*)/g, "*//*"); - n.text = o2, n.raws.left = i[1], n.raws.right = i[3], n.raws.text = i[2]; - } - } else - super.comment(e3); - } - createTokenizer() { - this.tokenizer = Hp2(this.input); - } - raw(e3, n, r3, s3) { - if (super.raw(e3, n, r3, s3), e3.raws[n]) { - let i = e3.raws[n].raw; - e3.raws[n].raw = r3.reduce((o2, a) => { - if (a[0] === "comment" && a[4] === "inline") { - let u = a[1].slice(2).replace(/(\*\/|\/\*)/g, "*//*"); - return o2 + "/*" + u + "*/"; - } else - return o2 + a[1]; - }, ""), i !== e3.raws[n].raw && (e3.raws[n].scss = i); - } - } - rule(e3) { - let n = false, r3 = 0, s3 = ""; - for (let i of e3) - if (n) - i[0] !== "comment" && i[0] !== "{" && (s3 += i[1]); - else { - if (i[0] === "space" && i[1].includes(` -`)) - break; - i[0] === "(" ? r3 += 1 : i[0] === ")" ? r3 -= 1 : r3 === 0 && i[0] === ":" && (n = true); - } - if (!n || s3.trim() === "" || /^[#:A-Za-z-]/.test(s3)) - super.rule(e3); - else { - e3.pop(); - let i = new Kp2(); - this.init(i, e3[0][2]); - let o2; - for (let u = e3.length - 1; u >= 0; u--) - if (e3[u][0] !== "space") { - o2 = e3[u]; - break; - } - if (o2[3]) { - let u = this.input.fromOffset(o2[3]); - i.source.end = { column: u.col, line: u.line, offset: o2[3] }; - } else { - let u = this.input.fromOffset(o2[2]); - i.source.end = { column: u.col, line: u.line, offset: o2[2] }; - } - for (; e3[0][0] !== "word"; ) - i.raws.before += e3.shift()[1]; - if (e3[0][2]) { - let u = this.input.fromOffset(e3[0][2]); - i.source.start = { column: u.col, line: u.line, offset: e3[0][2] }; - } - for (i.prop = ""; e3.length; ) { - let u = e3[0][0]; - if (u === ":" || u === "space" || u === "comment") - break; - i.prop += e3.shift()[1]; - } - i.raws.between = ""; - let a; - for (; e3.length; ) - if (a = e3.shift(), a[0] === ":") { - i.raws.between += a[1]; - break; - } else - i.raws.between += a[1]; - (i.prop[0] === "_" || i.prop[0] === "*") && (i.raws.before += i.prop[0], i.prop = i.prop.slice(1)), i.raws.between += this.spacesAndCommentsFromStart(e3), this.precheckMissedSemicolon(e3); - for (let u = e3.length - 1; u > 0; u--) { - if (a = e3[u], a[1] === "!important") { - i.important = true; - let c3 = this.stringFrom(e3, u); - c3 = this.spacesFromEnd(e3) + c3, c3 !== " !important" && (i.raws.important = c3); - break; - } else if (a[1] === "important") { - let c3 = e3.slice(0), f3 = ""; - for (let p4 = u; p4 > 0; p4--) { - let l = c3[p4][0]; - if (f3.trim().indexOf("!") === 0 && l !== "space") - break; - f3 = c3.pop()[1] + f3; - } - f3.trim().indexOf("!") === 0 && (i.important = true, i.raws.important = f3, e3 = c3); - } - if (a[0] !== "space" && a[0] !== "comment") - break; - } - this.raw(i, "value", e3), i.value.includes(":") && this.checkMissedSemicolon(e3), this.current = i; - } - } - }; - Oa3.exports = Qn4; - }); - Pa2 = y4((cb, Na2) => { - var { Input: Qp2 } = ur6(), jp2 = Aa3(); - Na2.exports = function(e3, n) { - let r3 = new Qp2(e3, n), s3 = new jp2(r3); - return s3.parse(), s3.root; - }; - }); - V5 = y4((mb, Da2) => { - "use strict"; - var jn6 = function(t12, e3) { - let n = new t12.constructor(); - for (let r3 in t12) { - if (!t12.hasOwnProperty(r3)) - continue; - let s3 = t12[r3], i = typeof s3; - r3 === "parent" && i === "object" ? e3 && (n[r3] = e3) : r3 === "source" ? n[r3] = s3 : s3 instanceof Array ? n[r3] = s3.map((o2) => jn6(o2, n)) : r3 !== "before" && r3 !== "after" && r3 !== "between" && r3 !== "semicolon" && (i === "object" && s3 !== null && (s3 = jn6(s3)), n[r3] = s3); - } - return n; - }; - Da2.exports = class { - constructor(e3) { - e3 = e3 || {}, this.raws = { before: "", after: "" }; - for (let n in e3) - this[n] = e3[n]; - } - remove() { - return this.parent && this.parent.removeChild(this), this.parent = void 0, this; - } - toString() { - return [this.raws.before, String(this.value), this.raws.after].join(""); - } - clone(e3) { - e3 = e3 || {}; - let n = jn6(this); - for (let r3 in e3) - n[r3] = e3[r3]; - return n; - } - cloneBefore(e3) { - e3 = e3 || {}; - let n = this.clone(e3); - return this.parent.insertBefore(this, n), n; - } - cloneAfter(e3) { - e3 = e3 || {}; - let n = this.clone(e3); - return this.parent.insertAfter(this, n), n; - } - replaceWith() { - let e3 = Array.prototype.slice.call(arguments); - if (this.parent) { - for (let n of e3) - this.parent.insertBefore(this, n); - this.remove(); - } - return this; - } - moveTo(e3) { - return this.cleanRaws(this.root() === e3.root()), this.remove(), e3.append(this), this; - } - moveBefore(e3) { - return this.cleanRaws(this.root() === e3.root()), this.remove(), e3.parent.insertBefore(e3, this), this; - } - moveAfter(e3) { - return this.cleanRaws(this.root() === e3.root()), this.remove(), e3.parent.insertAfter(e3, this), this; - } - next() { - let e3 = this.parent.index(this); - return this.parent.nodes[e3 + 1]; - } - prev() { - let e3 = this.parent.index(this); - return this.parent.nodes[e3 - 1]; - } - toJSON() { - let e3 = {}; - for (let n in this) { - if (!this.hasOwnProperty(n) || n === "parent") - continue; - let r3 = this[n]; - r3 instanceof Array ? e3[n] = r3.map((s3) => typeof s3 == "object" && s3.toJSON ? s3.toJSON() : s3) : typeof r3 == "object" && r3.toJSON ? e3[n] = r3.toJSON() : e3[n] = r3; - } - return e3; - } - root() { - let e3 = this; - for (; e3.parent; ) - e3 = e3.parent; - return e3; - } - cleanRaws(e3) { - delete this.raws.before, delete this.raws.after, e3 || delete this.raws.between; - } - positionInside(e3) { - let n = this.toString(), r3 = this.source.start.column, s3 = this.source.start.line; - for (let i = 0; i < e3; i++) - n[i] === ` -` ? (r3 = 1, s3 += 1) : r3 += 1; - return { line: s3, column: r3 }; - } - positionBy(e3) { - let n = this.source.start; - if (Object(e3).index) - n = this.positionInside(e3.index); - else if (Object(e3).word) { - let r3 = this.toString().indexOf(e3.word); - r3 !== -1 && (n = this.positionInside(r3)); - } - return n; - } - }; - }); - B6 = y4((yb, La2) => { - "use strict"; - var th = V5(), Le7 = class extends th { - constructor(e3) { - super(e3), this.nodes || (this.nodes = []); - } - push(e3) { - return e3.parent = this, this.nodes.push(e3), this; - } - each(e3) { - this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach += 1; - let n = this.lastEach, r3, s3; - if (this.indexes[n] = 0, !!this.nodes) { - for (; this.indexes[n] < this.nodes.length && (r3 = this.indexes[n], s3 = e3(this.nodes[r3], r3), s3 !== false); ) - this.indexes[n] += 1; - return delete this.indexes[n], s3; - } - } - walk(e3) { - return this.each((n, r3) => { - let s3 = e3(n, r3); - return s3 !== false && n.walk && (s3 = n.walk(e3)), s3; - }); - } - walkType(e3, n) { - if (!e3 || !n) - throw new Error("Parameters {type} and {callback} are required."); - let r3 = typeof e3 == "function"; - return this.walk((s3, i) => { - if (r3 && s3 instanceof e3 || !r3 && s3.type === e3) - return n.call(this, s3, i); - }); - } - append(e3) { - return e3.parent = this, this.nodes.push(e3), this; - } - prepend(e3) { - return e3.parent = this, this.nodes.unshift(e3), this; - } - cleanRaws(e3) { - if (super.cleanRaws(e3), this.nodes) - for (let n of this.nodes) - n.cleanRaws(e3); - } - insertAfter(e3, n) { - let r3 = this.index(e3), s3; - this.nodes.splice(r3 + 1, 0, n); - for (let i in this.indexes) - s3 = this.indexes[i], r3 <= s3 && (this.indexes[i] = s3 + this.nodes.length); - return this; - } - insertBefore(e3, n) { - let r3 = this.index(e3), s3; - this.nodes.splice(r3, 0, n); - for (let i in this.indexes) - s3 = this.indexes[i], r3 <= s3 && (this.indexes[i] = s3 + this.nodes.length); - return this; - } - removeChild(e3) { - e3 = this.index(e3), this.nodes[e3].parent = void 0, this.nodes.splice(e3, 1); - let n; - for (let r3 in this.indexes) - n = this.indexes[r3], n >= e3 && (this.indexes[r3] = n - 1); - return this; - } - removeAll() { - for (let e3 of this.nodes) - e3.parent = void 0; - return this.nodes = [], this; - } - every(e3) { - return this.nodes.every(e3); - } - some(e3) { - return this.nodes.some(e3); - } - index(e3) { - return typeof e3 == "number" ? e3 : this.nodes.indexOf(e3); - } - get first() { - if (this.nodes) - return this.nodes[0]; - } - get last() { - if (this.nodes) - return this.nodes[this.nodes.length - 1]; - } - toString() { - let e3 = this.nodes.map(String).join(""); - return this.value && (e3 = this.value + e3), this.raws.before && (e3 = this.raws.before + e3), this.raws.after && (e3 += this.raws.after), e3; - } - }; - Le7.registerWalker = (t12) => { - let e3 = "walk" + t12.name; - e3.lastIndexOf("s") !== e3.length - 1 && (e3 += "s"), !Le7.prototype[e3] && (Le7.prototype[e3] = function(n) { - return this.walkType(t12, n); - }); - }; - La2.exports = Le7; - }); - Ba2 = y4((wb2, Ma3) => { - "use strict"; - var rh = B6(); - Ma3.exports = class extends rh { - constructor(e3) { - super(e3), this.type = "root"; - } - }; - }); - $a2 = y4((xb2, Fa2) => { - "use strict"; - var nh = B6(); - Fa2.exports = class extends nh { - constructor(e3) { - super(e3), this.type = "value", this.unbalanced = 0; - } - }; - }); - za3 = y4((bb2, Wa5) => { - "use strict"; - var Ua4 = B6(), mr6 = class extends Ua4 { - constructor(e3) { - super(e3), this.type = "atword"; - } - toString() { - let e3 = this.quoted ? this.raws.quote : ""; - return [this.raws.before, "@", String.prototype.toString.call(this.value), this.raws.after].join(""); - } - }; - Ua4.registerWalker(mr6); - Wa5.exports = mr6; - }); - Ya3 = y4((kb2, Va5) => { - "use strict"; - var sh = B6(), ih = V5(), yr5 = class extends ih { - constructor(e3) { - super(e3), this.type = "colon"; - } - }; - sh.registerWalker(yr5); - Va5.exports = yr5; - }); - Ka3 = y4((_b, Ga4) => { - "use strict"; - var oh = B6(), ah = V5(), gr6 = class extends ah { - constructor(e3) { - super(e3), this.type = "comma"; - } - }; - oh.registerWalker(gr6); - Ga4.exports = gr6; - }); - Qa4 = y4((Tb, Ha3) => { - "use strict"; - var uh = B6(), lh = V5(), wr7 = class extends lh { - constructor(e3) { - super(e3), this.type = "comment", this.inline = Object(e3).inline || false; - } - toString() { - return [this.raws.before, this.inline ? "//" : "/*", String(this.value), this.inline ? "" : "*/", this.raws.after].join(""); - } - }; - uh.registerWalker(wr7); - Ha3.exports = wr7; - }); - Xa3 = y4((Eb2, Ja4) => { - "use strict"; - var ja4 = B6(), vr6 = class extends ja4 { - constructor(e3) { - super(e3), this.type = "func", this.unbalanced = -1; - } - }; - ja4.registerWalker(vr6); - Ja4.exports = vr6; - }); - eu4 = y4((Sb2, Za3) => { - "use strict"; - var ch = B6(), fh = V5(), xr5 = class extends fh { - constructor(e3) { - super(e3), this.type = "number", this.unit = Object(e3).unit || ""; - } - toString() { - return [this.raws.before, String(this.value), this.unit, this.raws.after].join(""); - } - }; - ch.registerWalker(xr5); - Za3.exports = xr5; - }); - ru4 = y4((Cb2, tu4) => { - "use strict"; - var ph = B6(), hh = V5(), br5 = class extends hh { - constructor(e3) { - super(e3), this.type = "operator"; - } - }; - ph.registerWalker(br5); - tu4.exports = br5; - }); - su4 = y4((Ob2, nu4) => { - "use strict"; - var dh = B6(), mh = V5(), kr7 = class extends mh { - constructor(e3) { - super(e3), this.type = "paren", this.parenType = ""; - } - }; - dh.registerWalker(kr7); - nu4.exports = kr7; - }); - ou4 = y4((Ab2, iu4) => { - "use strict"; - var yh2 = B6(), gh = V5(), _r6 = class extends gh { - constructor(e3) { - super(e3), this.type = "string"; - } - toString() { - let e3 = this.quoted ? this.raws.quote : ""; - return [this.raws.before, e3, this.value + "", e3, this.raws.after].join(""); - } - }; - yh2.registerWalker(_r6); - iu4.exports = _r6; - }); - uu4 = y4((Nb, au4) => { - "use strict"; - var wh = B6(), vh = V5(), Tr6 = class extends vh { - constructor(e3) { - super(e3), this.type = "word"; - } - }; - wh.registerWalker(Tr6); - au4.exports = Tr6; - }); - cu3 = y4((Pb, lu3) => { - "use strict"; - var xh = B6(), bh = V5(), Er6 = class extends bh { - constructor(e3) { - super(e3), this.type = "unicode-range"; - } - }; - xh.registerWalker(Er6); - lu3.exports = Er6; - }); - pu3 = y4((Rb, fu3) => { - "use strict"; - var Jn5 = class extends Error { - constructor(e3) { - super(e3), this.name = this.constructor.name, this.message = e3 || "An error ocurred while tokzenizing.", typeof Error.captureStackTrace == "function" ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error(e3).stack; - } - }; - fu3.exports = Jn5; - }); - vu4 = y4((Ib, wu4) => { - "use strict"; - var kh = "{".charCodeAt(0), _h = "}".charCodeAt(0), Th = "(".charCodeAt(0), Eh = ")".charCodeAt(0), hu4 = "'".charCodeAt(0), Sh = '"'.charCodeAt(0), du3 = "\\".charCodeAt(0), Sr7 = "/".charCodeAt(0), Ch = ".".charCodeAt(0), Oh = ",".charCodeAt(0), Ah = ":".charCodeAt(0), Xn6 = "*".charCodeAt(0), Cr6 = "-".charCodeAt(0), Zn6 = "+".charCodeAt(0), Nh = "#".charCodeAt(0), bt7 = ` -`.charCodeAt(0), es7 = " ".charCodeAt(0), ts6 = "\f".charCodeAt(0), rs6 = " ".charCodeAt(0), ns6 = "\r".charCodeAt(0), Ph = "@".charCodeAt(0), Rh = "e".charCodeAt(0), Ih = "E".charCodeAt(0), mu3 = "0".charCodeAt(0), yu3 = "9".charCodeAt(0), qh = "u".charCodeAt(0), Dh = "U".charCodeAt(0), Or5 = /[ \n\t\r\{\(\)'"\\;,/]/g, Lh = /[ \n\t\r\(\)\{\}\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g, Me9 = /[ \n\t\r\(\)\{\}\*:;@!&'"\-\+\|~>,\[\]\\]|\//g, Mh = /^[a-z0-9]/i, Bh = /^[a-f0-9?\-]/i, gu4 = pu3(); - wu4.exports = function(e3, n) { - n = n || {}; - let r3 = [], s3 = e3.valueOf(), i = s3.length, o2 = -1, a = 1, u = 0, c3 = 0, f3 = null, p4, l, g3, x7, h4, d5, m3, b5, w4, v7, N6, $8; - function H10(S6) { - let C6 = `Unclosed ${S6} at line: ${a}, column: ${u - o2}, token: ${u}`; - throw new gu4(C6); - } - function U8() { - let S6 = `Syntax error at line: ${a}, column: ${u - o2}, token: ${u}`; - throw new gu4(S6); - } - for (; u < i; ) { - switch (p4 = s3.charCodeAt(u), p4 === bt7 && (o2 = u, a += 1), p4) { - case bt7: - case es7: - case rs6: - case ns6: - case ts6: - l = u; - do - l += 1, p4 = s3.charCodeAt(l), p4 === bt7 && (o2 = l, a += 1); - while (p4 === es7 || p4 === bt7 || p4 === rs6 || p4 === ns6 || p4 === ts6); - r3.push(["space", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - break; - case Ah: - l = u + 1, r3.push(["colon", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - break; - case Oh: - l = u + 1, r3.push(["comma", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - break; - case kh: - r3.push(["{", "{", a, u - o2, a, l - o2, u]); - break; - case _h: - r3.push(["}", "}", a, u - o2, a, l - o2, u]); - break; - case Th: - c3++, f3 = !f3 && c3 === 1 && r3.length > 0 && r3[r3.length - 1][0] === "word" && r3[r3.length - 1][1] === "url", r3.push(["(", "(", a, u - o2, a, l - o2, u]); - break; - case Eh: - c3--, f3 = f3 && c3 > 0, r3.push([")", ")", a, u - o2, a, l - o2, u]); - break; - case hu4: - case Sh: - g3 = p4 === hu4 ? "'" : '"', l = u; - do - for (v7 = false, l = s3.indexOf(g3, l + 1), l === -1 && H10("quote", g3), N6 = l; s3.charCodeAt(N6 - 1) === du3; ) - N6 -= 1, v7 = !v7; - while (v7); - r3.push(["string", s3.slice(u, l + 1), a, u - o2, a, l - o2, u]), u = l; - break; - case Ph: - Or5.lastIndex = u + 1, Or5.test(s3), Or5.lastIndex === 0 ? l = s3.length - 1 : l = Or5.lastIndex - 2, r3.push(["atword", s3.slice(u, l + 1), a, u - o2, a, l - o2, u]), u = l; - break; - case du3: - l = u, p4 = s3.charCodeAt(l + 1), m3 && p4 !== Sr7 && p4 !== es7 && p4 !== bt7 && p4 !== rs6 && p4 !== ns6 && p4 !== ts6 && (l += 1), r3.push(["word", s3.slice(u, l + 1), a, u - o2, a, l - o2, u]), u = l; - break; - case Zn6: - case Cr6: - case Xn6: - l = u + 1, $8 = s3.slice(u + 1, l + 1); - let S6 = s3.slice(u - 1, u); - if (p4 === Cr6 && $8.charCodeAt(0) === Cr6) { - l++, r3.push(["word", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - break; - } - r3.push(["operator", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - break; - default: - if (p4 === Sr7 && (s3.charCodeAt(u + 1) === Xn6 || n.loose && !f3 && s3.charCodeAt(u + 1) === Sr7)) { - if (s3.charCodeAt(u + 1) === Xn6) - l = s3.indexOf("*/", u + 2) + 1, l === 0 && H10("comment", "*/"); - else { - let O7 = s3.indexOf(` -`, u + 2); - l = O7 !== -1 ? O7 - 1 : i; - } - d5 = s3.slice(u, l + 1), x7 = d5.split(` -`), h4 = x7.length - 1, h4 > 0 ? (b5 = a + h4, w4 = l - x7[h4].length) : (b5 = a, w4 = o2), r3.push(["comment", d5, a, u - o2, b5, l - w4, u]), o2 = w4, a = b5, u = l; - } else if (p4 === Nh && !Mh.test(s3.slice(u + 1, u + 2))) - l = u + 1, r3.push(["#", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - else if ((p4 === qh || p4 === Dh) && s3.charCodeAt(u + 1) === Zn6) { - l = u + 2; - do - l += 1, p4 = s3.charCodeAt(l); - while (l < i && Bh.test(s3.slice(l, l + 1))); - r3.push(["unicoderange", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - } else if (p4 === Sr7) - l = u + 1, r3.push(["operator", s3.slice(u, l), a, u - o2, a, l - o2, u]), u = l - 1; - else { - let C6 = Lh; - if (p4 >= mu3 && p4 <= yu3 && (C6 = Me9), C6.lastIndex = u + 1, C6.test(s3), C6.lastIndex === 0 ? l = s3.length - 1 : l = C6.lastIndex - 2, C6 === Me9 || p4 === Ch) { - let O7 = s3.charCodeAt(l), ve9 = s3.charCodeAt(l + 1), Cs6 = s3.charCodeAt(l + 2); - (O7 === Rh || O7 === Ih) && (ve9 === Cr6 || ve9 === Zn6) && Cs6 >= mu3 && Cs6 <= yu3 && (Me9.lastIndex = l + 2, Me9.test(s3), Me9.lastIndex === 0 ? l = s3.length - 1 : l = Me9.lastIndex - 2); - } - r3.push(["word", s3.slice(u, l + 1), a, u - o2, a, l - o2, u]), u = l; - } - break; - } - u++; - } - return r3; - }; - }); - ss5 = y4((qb, xu4) => { - xu4.exports = function(e3, n) { - if (n = typeof n == "number" ? n : 1 / 0, !n) - return Array.isArray(e3) ? e3.map(function(s3) { - return s3; - }) : e3; - return r3(e3, 1); - function r3(s3, i) { - return s3.reduce(function(o2, a) { - return Array.isArray(a) && i < n ? o2.concat(r3(a, i + 1)) : o2.concat(a); - }, []); - } - }; - }); - is5 = y4((Db2, bu4) => { - bu4.exports = function(t12, e3) { - for (var n = -1, r3 = []; (n = t12.indexOf(e3, n + 1)) !== -1; ) - r3.push(n); - return r3; - }; - }); - os6 = y4((Lb, ku3) => { - "use strict"; - function Fh(t12, e3) { - for (var n = 1, r3 = t12.length, s3 = t12[0], i = t12[0], o2 = 1; o2 < r3; ++o2) - if (i = s3, s3 = t12[o2], e3(s3, i)) { - if (o2 === n) { - n++; - continue; - } - t12[n++] = s3; - } - return t12.length = n, t12; - } - function $h(t12) { - for (var e3 = 1, n = t12.length, r3 = t12[0], s3 = t12[0], i = 1; i < n; ++i, s3 = r3) - if (s3 = r3, r3 = t12[i], r3 !== s3) { - if (i === e3) { - e3++; - continue; - } - t12[e3++] = r3; - } - return t12.length = e3, t12; - } - function Uh(t12, e3, n) { - return t12.length === 0 ? t12 : e3 ? (n || t12.sort(e3), Fh(t12, e3)) : (n || t12.sort(), $h(t12)); - } - ku3.exports = Uh; - }); - Tu3 = y4((Mb2, _u3) => { - "use strict"; - var as6 = class extends Error { - constructor(e3) { - super(e3), this.name = this.constructor.name, this.message = e3 || "An error ocurred while parsing.", typeof Error.captureStackTrace == "function" ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error(e3).stack; - } - }; - _u3.exports = as6; - }); - Ou4 = y4((Fb, Cu4) => { - "use strict"; - var Wh = Ba2(), zh = $a2(), Vh2 = za3(), Yh = Ya3(), Gh = Ka3(), Kh = Qa4(), Hh2 = Xa3(), Qh = eu4(), jh = ru4(), Eu3 = su4(), Jh = ou4(), Su4 = uu4(), Xh = cu3(), Zh = vu4(), ed = ss5(), td = is5(), rd = os6(), nd = Tu3(); - function sd(t12) { - return t12.sort((e3, n) => e3 - n); - } - Cu4.exports = class { - constructor(e3, n) { - let r3 = { loose: false }; - this.cache = [], this.input = e3, this.options = Object.assign({}, r3, n), this.position = 0, this.unbalanced = 0, this.root = new Wh(); - let s3 = new zh(); - this.root.append(s3), this.current = s3, this.tokens = Zh(e3, this.options); - } - parse() { - return this.loop(); - } - colon() { - let e3 = this.currToken; - this.newNode(new Yh({ value: e3[1], source: { start: { line: e3[2], column: e3[3] }, end: { line: e3[4], column: e3[5] } }, sourceIndex: e3[6] })), this.position++; - } - comma() { - let e3 = this.currToken; - this.newNode(new Gh({ value: e3[1], source: { start: { line: e3[2], column: e3[3] }, end: { line: e3[4], column: e3[5] } }, sourceIndex: e3[6] })), this.position++; - } - comment() { - let e3 = false, n = this.currToken[1].replace(/\/\*|\*\//g, ""), r3; - this.options.loose && n.startsWith("//") && (n = n.substring(2), e3 = true), r3 = new Kh({ value: n, inline: e3, source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[4], column: this.currToken[5] } }, sourceIndex: this.currToken[6] }), this.newNode(r3), this.position++; - } - error(e3, n) { - throw new nd(e3 + ` at line: ${n[2]}, column ${n[3]}`); - } - loop() { - for (; this.position < this.tokens.length; ) - this.parseTokens(); - return !this.current.last && this.spaces ? this.current.raws.before += this.spaces : this.spaces && (this.current.last.raws.after += this.spaces), this.spaces = "", this.root; - } - operator() { - let e3 = this.currToken[1], n; - if (e3 === "+" || e3 === "-") { - if (this.options.loose || this.position > 0 && (this.current.type === "func" && this.current.value === "calc" ? this.prevToken[0] !== "space" && this.prevToken[0] !== "(" ? this.error("Syntax Error", this.currToken) : this.nextToken[0] !== "space" && this.nextToken[0] !== "word" ? this.error("Syntax Error", this.currToken) : this.nextToken[0] === "word" && this.current.last.type !== "operator" && this.current.last.value !== "(" && this.error("Syntax Error", this.currToken) : (this.nextToken[0] === "space" || this.nextToken[0] === "operator" || this.prevToken[0] === "operator") && this.error("Syntax Error", this.currToken)), this.options.loose) { - if ((!this.current.nodes.length || this.current.last && this.current.last.type === "operator") && this.nextToken[0] === "word") - return this.word(); - } else if (this.nextToken[0] === "word") - return this.word(); - } - return n = new jh({ value: this.currToken[1], source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[2], column: this.currToken[3] } }, sourceIndex: this.currToken[4] }), this.position++, this.newNode(n); - } - parseTokens() { - switch (this.currToken[0]) { - case "space": - this.space(); - break; - case "colon": - this.colon(); - break; - case "comma": - this.comma(); - break; - case "comment": - this.comment(); - break; - case "(": - this.parenOpen(); - break; - case ")": - this.parenClose(); - break; - case "atword": - case "word": - this.word(); - break; - case "operator": - this.operator(); - break; - case "string": - this.string(); - break; - case "unicoderange": - this.unicodeRange(); - break; - default: - this.word(); - break; - } - } - parenOpen() { - let e3 = 1, n = this.position + 1, r3 = this.currToken, s3; - for (; n < this.tokens.length && e3; ) { - let i = this.tokens[n]; - i[0] === "(" && e3++, i[0] === ")" && e3--, n++; - } - if (e3 && this.error("Expected closing parenthesis", r3), s3 = this.current.last, s3 && s3.type === "func" && s3.unbalanced < 0 && (s3.unbalanced = 0, this.current = s3), this.current.unbalanced++, this.newNode(new Eu3({ value: r3[1], source: { start: { line: r3[2], column: r3[3] }, end: { line: r3[4], column: r3[5] } }, sourceIndex: r3[6] })), this.position++, this.current.type === "func" && this.current.unbalanced && this.current.value === "url" && this.currToken[0] !== "string" && this.currToken[0] !== ")" && !this.options.loose) { - let i = this.nextToken, o2 = this.currToken[1], a = { line: this.currToken[2], column: this.currToken[3] }; - for (; i && i[0] !== ")" && this.current.unbalanced; ) - this.position++, o2 += this.currToken[1], i = this.nextToken; - this.position !== this.tokens.length - 1 && (this.position++, this.newNode(new Su4({ value: o2, source: { start: a, end: { line: this.currToken[4], column: this.currToken[5] } }, sourceIndex: this.currToken[6] }))); - } - } - parenClose() { - let e3 = this.currToken; - this.newNode(new Eu3({ value: e3[1], source: { start: { line: e3[2], column: e3[3] }, end: { line: e3[4], column: e3[5] } }, sourceIndex: e3[6] })), this.position++, !(this.position >= this.tokens.length - 1 && !this.current.unbalanced) && (this.current.unbalanced--, this.current.unbalanced < 0 && this.error("Expected opening parenthesis", e3), !this.current.unbalanced && this.cache.length && (this.current = this.cache.pop())); - } - space() { - let e3 = this.currToken; - this.position === this.tokens.length - 1 || this.nextToken[0] === "," || this.nextToken[0] === ")" ? (this.current.last.raws.after += e3[1], this.position++) : (this.spaces = e3[1], this.position++); - } - unicodeRange() { - let e3 = this.currToken; - this.newNode(new Xh({ value: e3[1], source: { start: { line: e3[2], column: e3[3] }, end: { line: e3[4], column: e3[5] } }, sourceIndex: e3[6] })), this.position++; - } - splitWord() { - let e3 = this.nextToken, n = this.currToken[1], r3 = /^[\+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][\+\-]?\d+)?/, s3 = /^(?!\#([a-z0-9]+))[\#\{\}]/gi, i, o2; - if (!s3.test(n)) - for (; e3 && e3[0] === "word"; ) { - this.position++; - let a = this.currToken[1]; - n += a, e3 = this.nextToken; - } - i = td(n, "@"), o2 = sd(rd(ed([[0], i]))), o2.forEach((a, u) => { - let c3 = o2[u + 1] || n.length, f3 = n.slice(a, c3), p4; - if (~i.indexOf(a)) - p4 = new Vh2({ value: f3.slice(1), source: { start: { line: this.currToken[2], column: this.currToken[3] + a }, end: { line: this.currToken[4], column: this.currToken[3] + (c3 - 1) } }, sourceIndex: this.currToken[6] + o2[u] }); - else if (r3.test(this.currToken[1])) { - let l = f3.replace(r3, ""); - p4 = new Qh({ value: f3.replace(l, ""), source: { start: { line: this.currToken[2], column: this.currToken[3] + a }, end: { line: this.currToken[4], column: this.currToken[3] + (c3 - 1) } }, sourceIndex: this.currToken[6] + o2[u], unit: l }); - } else - p4 = new (e3 && e3[0] === "(" ? Hh2 : Su4)({ value: f3, source: { start: { line: this.currToken[2], column: this.currToken[3] + a }, end: { line: this.currToken[4], column: this.currToken[3] + (c3 - 1) } }, sourceIndex: this.currToken[6] + o2[u] }), p4.type === "word" ? (p4.isHex = /^#(.+)/.test(f3), p4.isColor = /^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(f3)) : this.cache.push(this.current); - this.newNode(p4); - }), this.position++; - } - string() { - let e3 = this.currToken, n = this.currToken[1], r3 = /^(\"|\')/, s3 = r3.test(n), i = "", o2; - s3 && (i = n.match(r3)[0], n = n.slice(1, n.length - 1)), o2 = new Jh({ value: n, source: { start: { line: e3[2], column: e3[3] }, end: { line: e3[4], column: e3[5] } }, sourceIndex: e3[6], quoted: s3 }), o2.raws.quote = i, this.newNode(o2), this.position++; - } - word() { - return this.splitWord(); - } - newNode(e3) { - return this.spaces && (e3.raws.before += this.spaces, this.spaces = ""), this.current.append(e3); - } - get currToken() { - return this.tokens[this.position]; - } - get nextToken() { - return this.tokens[this.position + 1]; - } - get prevToken() { - return this.tokens[this.position - 1]; - } - }; - }); - we8 = y4((Nr7, qu4) => { - "use strict"; - Nr7.__esModule = true; - var Iu3 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t12) { - return typeof t12; - } : function(t12) { - return t12 && typeof Symbol == "function" && t12.constructor === Symbol && t12 !== Symbol.prototype ? "symbol" : typeof t12; - }; - function cd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - var fd = function t12(e3, n) { - if ((typeof e3 > "u" ? "undefined" : Iu3(e3)) !== "object") - return e3; - var r3 = new e3.constructor(); - for (var s3 in e3) - if (e3.hasOwnProperty(s3)) { - var i = e3[s3], o2 = typeof i > "u" ? "undefined" : Iu3(i); - s3 === "parent" && o2 === "object" ? n && (r3[s3] = n) : i instanceof Array ? r3[s3] = i.map(function(a) { - return t12(a, r3); - }) : r3[s3] = t12(i, r3); - } - return r3; - }, pd = function() { - function t12() { - var e3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; - cd(this, t12); - for (var n in e3) - this[n] = e3[n]; - var r3 = e3.spaces; - r3 = r3 === void 0 ? {} : r3; - var s3 = r3.before, i = s3 === void 0 ? "" : s3, o2 = r3.after, a = o2 === void 0 ? "" : o2; - this.spaces = { before: i, after: a }; - } - return t12.prototype.remove = function() { - return this.parent && this.parent.removeChild(this), this.parent = void 0, this; - }, t12.prototype.replaceWith = function() { - if (this.parent) { - for (var n in arguments) - this.parent.insertBefore(this, arguments[n]); - this.remove(); - } - return this; - }, t12.prototype.next = function() { - return this.parent.at(this.parent.index(this) + 1); - }, t12.prototype.prev = function() { - return this.parent.at(this.parent.index(this) - 1); - }, t12.prototype.clone = function() { - var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, r3 = fd(this); - for (var s3 in n) - r3[s3] = n[s3]; - return r3; - }, t12.prototype.toString = function() { - return [this.spaces.before, String(this.value), this.spaces.after].join(""); - }, t12; - }(); - Nr7.default = pd; - qu4.exports = Nr7.default; - }); - L6 = y4((F5) => { - "use strict"; - F5.__esModule = true; - var Kb = F5.TAG = "tag", Hb = F5.STRING = "string", Qb = F5.SELECTOR = "selector", jb = F5.ROOT = "root", Jb = F5.PSEUDO = "pseudo", Xb = F5.NESTING = "nesting", Zb = F5.ID = "id", ek = F5.COMMENT = "comment", tk = F5.COMBINATOR = "combinator", rk = F5.CLASS = "class", nk = F5.ATTRIBUTE = "attribute", sk = F5.UNIVERSAL = "universal"; - }); - Rr5 = y4((Pr7, Du3) => { - "use strict"; - Pr7.__esModule = true; - var hd = function() { - function t12(e3, n) { - for (var r3 = 0; r3 < n.length; r3++) { - var s3 = n[r3]; - s3.enumerable = s3.enumerable || false, s3.configurable = true, "value" in s3 && (s3.writable = true), Object.defineProperty(e3, s3.key, s3); - } - } - return function(e3, n, r3) { - return n && t12(e3.prototype, n), r3 && t12(e3, r3), e3; - }; - }(), dd = we8(), md = wd(dd), yd = L6(), J8 = gd(yd); - function gd(t12) { - if (t12 && t12.__esModule) - return t12; - var e3 = {}; - if (t12 != null) - for (var n in t12) - Object.prototype.hasOwnProperty.call(t12, n) && (e3[n] = t12[n]); - return e3.default = t12, e3; - } - function wd(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function vd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function xd(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function bd(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var kd = function(t12) { - bd(e3, t12); - function e3(n) { - vd(this, e3); - var r3 = xd(this, t12.call(this, n)); - return r3.nodes || (r3.nodes = []), r3; - } - return e3.prototype.append = function(r3) { - return r3.parent = this, this.nodes.push(r3), this; - }, e3.prototype.prepend = function(r3) { - return r3.parent = this, this.nodes.unshift(r3), this; - }, e3.prototype.at = function(r3) { - return this.nodes[r3]; - }, e3.prototype.index = function(r3) { - return typeof r3 == "number" ? r3 : this.nodes.indexOf(r3); - }, e3.prototype.removeChild = function(r3) { - r3 = this.index(r3), this.at(r3).parent = void 0, this.nodes.splice(r3, 1); - var s3 = void 0; - for (var i in this.indexes) - s3 = this.indexes[i], s3 >= r3 && (this.indexes[i] = s3 - 1); - return this; - }, e3.prototype.removeAll = function() { - for (var i = this.nodes, r3 = Array.isArray(i), s3 = 0, i = r3 ? i : i[Symbol.iterator](); ; ) { - var o2; - if (r3) { - if (s3 >= i.length) - break; - o2 = i[s3++]; - } else { - if (s3 = i.next(), s3.done) - break; - o2 = s3.value; - } - var a = o2; - a.parent = void 0; - } - return this.nodes = [], this; - }, e3.prototype.empty = function() { - return this.removeAll(); - }, e3.prototype.insertAfter = function(r3, s3) { - var i = this.index(r3); - this.nodes.splice(i + 1, 0, s3); - var o2 = void 0; - for (var a in this.indexes) - o2 = this.indexes[a], i <= o2 && (this.indexes[a] = o2 + this.nodes.length); - return this; - }, e3.prototype.insertBefore = function(r3, s3) { - var i = this.index(r3); - this.nodes.splice(i, 0, s3); - var o2 = void 0; - for (var a in this.indexes) - o2 = this.indexes[a], i <= o2 && (this.indexes[a] = o2 + this.nodes.length); - return this; - }, e3.prototype.each = function(r3) { - this.lastEach || (this.lastEach = 0), this.indexes || (this.indexes = {}), this.lastEach++; - var s3 = this.lastEach; - if (this.indexes[s3] = 0, !!this.length) { - for (var i = void 0, o2 = void 0; this.indexes[s3] < this.length && (i = this.indexes[s3], o2 = r3(this.at(i), i), o2 !== false); ) - this.indexes[s3] += 1; - if (delete this.indexes[s3], o2 === false) - return false; - } - }, e3.prototype.walk = function(r3) { - return this.each(function(s3, i) { - var o2 = r3(s3, i); - if (o2 !== false && s3.length && (o2 = s3.walk(r3)), o2 === false) - return false; - }); - }, e3.prototype.walkAttributes = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.ATTRIBUTE) - return r3.call(s3, i); - }); - }, e3.prototype.walkClasses = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.CLASS) - return r3.call(s3, i); - }); - }, e3.prototype.walkCombinators = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.COMBINATOR) - return r3.call(s3, i); - }); - }, e3.prototype.walkComments = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.COMMENT) - return r3.call(s3, i); - }); - }, e3.prototype.walkIds = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.ID) - return r3.call(s3, i); - }); - }, e3.prototype.walkNesting = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.NESTING) - return r3.call(s3, i); - }); - }, e3.prototype.walkPseudos = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.PSEUDO) - return r3.call(s3, i); - }); - }, e3.prototype.walkTags = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.TAG) - return r3.call(s3, i); - }); - }, e3.prototype.walkUniversals = function(r3) { - var s3 = this; - return this.walk(function(i) { - if (i.type === J8.UNIVERSAL) - return r3.call(s3, i); - }); - }, e3.prototype.split = function(r3) { - var s3 = this, i = []; - return this.reduce(function(o2, a, u) { - var c3 = r3.call(s3, a); - return i.push(a), c3 ? (o2.push(i), i = []) : u === s3.length - 1 && o2.push(i), o2; - }, []); - }, e3.prototype.map = function(r3) { - return this.nodes.map(r3); - }, e3.prototype.reduce = function(r3, s3) { - return this.nodes.reduce(r3, s3); - }, e3.prototype.every = function(r3) { - return this.nodes.every(r3); - }, e3.prototype.some = function(r3) { - return this.nodes.some(r3); - }, e3.prototype.filter = function(r3) { - return this.nodes.filter(r3); - }, e3.prototype.sort = function(r3) { - return this.nodes.sort(r3); - }, e3.prototype.toString = function() { - return this.map(String).join(""); - }, hd(e3, [{ key: "first", get: function() { - return this.at(0); - } }, { key: "last", get: function() { - return this.at(this.length - 1); - } }, { key: "length", get: function() { - return this.nodes.length; - } }]), e3; - }(md.default); - Pr7.default = kd; - Du3.exports = Pr7.default; - }); - Mu3 = y4((Ir7, Lu3) => { - "use strict"; - Ir7.__esModule = true; - var _d = Rr5(), Td = Sd(_d), Ed = L6(); - function Sd(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Cd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Od(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Ad(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Nd = function(t12) { - Ad(e3, t12); - function e3(n) { - Cd(this, e3); - var r3 = Od(this, t12.call(this, n)); - return r3.type = Ed.ROOT, r3; - } - return e3.prototype.toString = function() { - var r3 = this.reduce(function(s3, i) { - var o2 = String(i); - return o2 ? s3 + o2 + "," : ""; - }, "").slice(0, -1); - return this.trailingComma ? r3 + "," : r3; - }, e3; - }(Td.default); - Ir7.default = Nd; - Lu3.exports = Ir7.default; - }); - Fu4 = y4((qr7, Bu3) => { - "use strict"; - qr7.__esModule = true; - var Pd = Rr5(), Rd = qd(Pd), Id = L6(); - function qd(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Dd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Ld(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Md(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Bd = function(t12) { - Md(e3, t12); - function e3(n) { - Dd(this, e3); - var r3 = Ld(this, t12.call(this, n)); - return r3.type = Id.SELECTOR, r3; - } - return e3; - }(Rd.default); - qr7.default = Bd; - Bu3.exports = qr7.default; - }); - Be8 = y4((Dr5, $u3) => { - "use strict"; - Dr5.__esModule = true; - var Fd = function() { - function t12(e3, n) { - for (var r3 = 0; r3 < n.length; r3++) { - var s3 = n[r3]; - s3.enumerable = s3.enumerable || false, s3.configurable = true, "value" in s3 && (s3.writable = true), Object.defineProperty(e3, s3.key, s3); - } - } - return function(e3, n, r3) { - return n && t12(e3.prototype, n), r3 && t12(e3, r3), e3; - }; - }(), $d = we8(), Ud = Wd($d); - function Wd(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function zd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Vd(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Yd(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Gd = function(t12) { - Yd(e3, t12); - function e3() { - return zd(this, e3), Vd(this, t12.apply(this, arguments)); - } - return e3.prototype.toString = function() { - return [this.spaces.before, this.ns, String(this.value), this.spaces.after].join(""); - }, Fd(e3, [{ key: "ns", get: function() { - var r3 = this.namespace; - return r3 ? (typeof r3 == "string" ? r3 : "") + "|" : ""; - } }]), e3; - }(Ud.default); - Dr5.default = Gd; - $u3.exports = Dr5.default; - }); - Wu3 = y4((Lr7, Uu3) => { - "use strict"; - Lr7.__esModule = true; - var Kd = Be8(), Hd = jd(Kd), Qd = L6(); - function jd(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Jd(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Xd(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Zd(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var em = function(t12) { - Zd(e3, t12); - function e3(n) { - Jd(this, e3); - var r3 = Xd(this, t12.call(this, n)); - return r3.type = Qd.CLASS, r3; - } - return e3.prototype.toString = function() { - return [this.spaces.before, this.ns, "." + this.value, this.spaces.after].join(""); - }, e3; - }(Hd.default); - Lr7.default = em; - Uu3.exports = Lr7.default; - }); - Vu3 = y4((Mr4, zu4) => { - "use strict"; - Mr4.__esModule = true; - var tm = we8(), rm = sm(tm), nm = L6(); - function sm(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function im(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function om(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function am(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var um = function(t12) { - am(e3, t12); - function e3(n) { - im(this, e3); - var r3 = om(this, t12.call(this, n)); - return r3.type = nm.COMMENT, r3; - } - return e3; - }(rm.default); - Mr4.default = um; - zu4.exports = Mr4.default; - }); - Gu3 = y4((Br6, Yu4) => { - "use strict"; - Br6.__esModule = true; - var lm = Be8(), cm = pm(lm), fm = L6(); - function pm(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function hm(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function dm(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function mm(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var ym = function(t12) { - mm(e3, t12); - function e3(n) { - hm(this, e3); - var r3 = dm(this, t12.call(this, n)); - return r3.type = fm.ID, r3; - } - return e3.prototype.toString = function() { - return [this.spaces.before, this.ns, "#" + this.value, this.spaces.after].join(""); - }, e3; - }(cm.default); - Br6.default = ym; - Yu4.exports = Br6.default; - }); - Hu3 = y4((Fr5, Ku4) => { - "use strict"; - Fr5.__esModule = true; - var gm = Be8(), wm = xm2(gm), vm = L6(); - function xm2(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function bm(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function km(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function _m2(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Tm = function(t12) { - _m2(e3, t12); - function e3(n) { - bm(this, e3); - var r3 = km(this, t12.call(this, n)); - return r3.type = vm.TAG, r3; - } - return e3; - }(wm.default); - Fr5.default = Tm; - Ku4.exports = Fr5.default; - }); - ju4 = y4(($r4, Qu4) => { - "use strict"; - $r4.__esModule = true; - var Em = we8(), Sm = Om(Em), Cm = L6(); - function Om(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Am(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Nm(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Pm(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Rm2 = function(t12) { - Pm(e3, t12); - function e3(n) { - Am(this, e3); - var r3 = Nm(this, t12.call(this, n)); - return r3.type = Cm.STRING, r3; - } - return e3; - }(Sm.default); - $r4.default = Rm2; - Qu4.exports = $r4.default; - }); - Xu3 = y4((Ur5, Ju3) => { - "use strict"; - Ur5.__esModule = true; - var Im = Rr5(), qm2 = Lm(Im), Dm2 = L6(); - function Lm(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Mm(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Bm3(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Fm2(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var $m2 = function(t12) { - Fm2(e3, t12); - function e3(n) { - Mm(this, e3); - var r3 = Bm3(this, t12.call(this, n)); - return r3.type = Dm2.PSEUDO, r3; - } - return e3.prototype.toString = function() { - var r3 = this.length ? "(" + this.map(String).join(",") + ")" : ""; - return [this.spaces.before, String(this.value), r3, this.spaces.after].join(""); - }, e3; - }(qm2.default); - Ur5.default = $m2; - Ju3.exports = Ur5.default; - }); - el2 = y4((Wr6, Zu3) => { - "use strict"; - Wr6.__esModule = true; - var Um = Be8(), Wm = Vm(Um), zm2 = L6(); - function Vm(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Ym2(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function Gm(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function Km2(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var Hm = function(t12) { - Km2(e3, t12); - function e3(n) { - Ym2(this, e3); - var r3 = Gm(this, t12.call(this, n)); - return r3.type = zm2.ATTRIBUTE, r3.raws = {}, r3; - } - return e3.prototype.toString = function() { - var r3 = [this.spaces.before, "[", this.ns, this.attribute]; - return this.operator && r3.push(this.operator), this.value && r3.push(this.value), this.raws.insensitive ? r3.push(this.raws.insensitive) : this.insensitive && r3.push(" i"), r3.push("]"), r3.concat(this.spaces.after).join(""); - }, e3; - }(Wm.default); - Wr6.default = Hm; - Zu3.exports = Wr6.default; - }); - rl2 = y4((zr6, tl2) => { - "use strict"; - zr6.__esModule = true; - var Qm = Be8(), jm = Xm(Qm), Jm = L6(); - function Xm(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Zm2(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function ey(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function ty(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var ry = function(t12) { - ty(e3, t12); - function e3(n) { - Zm2(this, e3); - var r3 = ey(this, t12.call(this, n)); - return r3.type = Jm.UNIVERSAL, r3.value = "*", r3; - } - return e3; - }(jm.default); - zr6.default = ry; - tl2.exports = zr6.default; - }); - sl2 = y4((Vr6, nl2) => { - "use strict"; - Vr6.__esModule = true; - var ny = we8(), sy = oy(ny), iy = L6(); - function oy(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function ay(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function uy(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function ly(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var cy = function(t12) { - ly(e3, t12); - function e3(n) { - ay(this, e3); - var r3 = uy(this, t12.call(this, n)); - return r3.type = iy.COMBINATOR, r3; - } - return e3; - }(sy.default); - Vr6.default = cy; - nl2.exports = Vr6.default; - }); - ol3 = y4((Yr7, il3) => { - "use strict"; - Yr7.__esModule = true; - var fy = we8(), py = dy(fy), hy = L6(); - function dy(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function my(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - function yy(t12, e3) { - if (!t12) - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e3 && (typeof e3 == "object" || typeof e3 == "function") ? e3 : t12; - } - function gy(t12, e3) { - if (typeof e3 != "function" && e3 !== null) - throw new TypeError("Super expression must either be null or a function, not " + typeof e3); - t12.prototype = Object.create(e3 && e3.prototype, { constructor: { value: t12, enumerable: false, writable: true, configurable: true } }), e3 && (Object.setPrototypeOf ? Object.setPrototypeOf(t12, e3) : t12.__proto__ = e3); - } - var wy = function(t12) { - gy(e3, t12); - function e3(n) { - my(this, e3); - var r3 = yy(this, t12.call(this, n)); - return r3.type = hy.NESTING, r3.value = "&", r3; - } - return e3; - }(py.default); - Yr7.default = wy; - il3.exports = Yr7.default; - }); - ul3 = y4((Gr6, al3) => { - "use strict"; - Gr6.__esModule = true; - Gr6.default = vy; - function vy(t12) { - return t12.sort(function(e3, n) { - return e3 - n; - }); - } - al3.exports = Gr6.default; - }); - gl2 = y4((Qr6, yl3) => { - "use strict"; - Qr6.__esModule = true; - Qr6.default = Ny; - var ll3 = 39, xy = 34, us6 = 92, cl3 = 47, kt8 = 10, ls6 = 32, cs4 = 12, fs12 = 9, ps4 = 13, fl2 = 43, pl3 = 62, hl2 = 126, dl2 = 124, by = 44, ky = 40, _y = 41, Ty = 91, Ey = 93, Sy = 59, ml3 = 42, Cy = 58, Oy = 38, Ay = 64, Kr6 = /[ \n\t\r\{\(\)'"\\;/]/g, Hr6 = /[ \n\t\r\(\)\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g; - function Ny(t12) { - for (var e3 = [], n = t12.css.valueOf(), r3 = void 0, s3 = void 0, i = void 0, o2 = void 0, a = void 0, u = void 0, c3 = void 0, f3 = void 0, p4 = void 0, l = void 0, g3 = void 0, x7 = n.length, h4 = -1, d5 = 1, m3 = 0, b5 = function(v7, N6) { - if (t12.safe) - n += N6, s3 = n.length - 1; - else - throw t12.error("Unclosed " + v7, d5, m3 - h4, m3); - }; m3 < x7; ) { - switch (r3 = n.charCodeAt(m3), r3 === kt8 && (h4 = m3, d5 += 1), r3) { - case kt8: - case ls6: - case fs12: - case ps4: - case cs4: - s3 = m3; - do - s3 += 1, r3 = n.charCodeAt(s3), r3 === kt8 && (h4 = s3, d5 += 1); - while (r3 === ls6 || r3 === kt8 || r3 === fs12 || r3 === ps4 || r3 === cs4); - e3.push(["space", n.slice(m3, s3), d5, m3 - h4, m3]), m3 = s3 - 1; - break; - case fl2: - case pl3: - case hl2: - case dl2: - s3 = m3; - do - s3 += 1, r3 = n.charCodeAt(s3); - while (r3 === fl2 || r3 === pl3 || r3 === hl2 || r3 === dl2); - e3.push(["combinator", n.slice(m3, s3), d5, m3 - h4, m3]), m3 = s3 - 1; - break; - case ml3: - e3.push(["*", "*", d5, m3 - h4, m3]); - break; - case Oy: - e3.push(["&", "&", d5, m3 - h4, m3]); - break; - case by: - e3.push([",", ",", d5, m3 - h4, m3]); - break; - case Ty: - e3.push(["[", "[", d5, m3 - h4, m3]); - break; - case Ey: - e3.push(["]", "]", d5, m3 - h4, m3]); - break; - case Cy: - e3.push([":", ":", d5, m3 - h4, m3]); - break; - case Sy: - e3.push([";", ";", d5, m3 - h4, m3]); - break; - case ky: - e3.push(["(", "(", d5, m3 - h4, m3]); - break; - case _y: - e3.push([")", ")", d5, m3 - h4, m3]); - break; - case ll3: - case xy: - i = r3 === ll3 ? "'" : '"', s3 = m3; - do - for (l = false, s3 = n.indexOf(i, s3 + 1), s3 === -1 && b5("quote", i), g3 = s3; n.charCodeAt(g3 - 1) === us6; ) - g3 -= 1, l = !l; - while (l); - e3.push(["string", n.slice(m3, s3 + 1), d5, m3 - h4, d5, s3 - h4, m3]), m3 = s3; - break; - case Ay: - Kr6.lastIndex = m3 + 1, Kr6.test(n), Kr6.lastIndex === 0 ? s3 = n.length - 1 : s3 = Kr6.lastIndex - 2, e3.push(["at-word", n.slice(m3, s3 + 1), d5, m3 - h4, d5, s3 - h4, m3]), m3 = s3; - break; - case us6: - for (s3 = m3, c3 = true; n.charCodeAt(s3 + 1) === us6; ) - s3 += 1, c3 = !c3; - r3 = n.charCodeAt(s3 + 1), c3 && r3 !== cl3 && r3 !== ls6 && r3 !== kt8 && r3 !== fs12 && r3 !== ps4 && r3 !== cs4 && (s3 += 1), e3.push(["word", n.slice(m3, s3 + 1), d5, m3 - h4, d5, s3 - h4, m3]), m3 = s3; - break; - default: - r3 === cl3 && n.charCodeAt(m3 + 1) === ml3 ? (s3 = n.indexOf("*/", m3 + 2) + 1, s3 === 0 && b5("comment", "*/"), u = n.slice(m3, s3 + 1), o2 = u.split(` -`), a = o2.length - 1, a > 0 ? (f3 = d5 + a, p4 = s3 - o2[a].length) : (f3 = d5, p4 = h4), e3.push(["comment", u, d5, m3 - h4, f3, s3 - p4, m3]), h4 = p4, d5 = f3, m3 = s3) : (Hr6.lastIndex = m3 + 1, Hr6.test(n), Hr6.lastIndex === 0 ? s3 = n.length - 1 : s3 = Hr6.lastIndex - 2, e3.push(["word", n.slice(m3, s3 + 1), d5, m3 - h4, d5, s3 - h4, m3]), m3 = s3); - break; - } - m3++; - } - return e3; - } - yl3.exports = Qr6.default; - }); - xl2 = y4((jr6, vl2) => { - "use strict"; - jr6.__esModule = true; - var Py = function() { - function t12(e3, n) { - for (var r3 = 0; r3 < n.length; r3++) { - var s3 = n[r3]; - s3.enumerable = s3.enumerable || false, s3.configurable = true, "value" in s3 && (s3.writable = true), Object.defineProperty(e3, s3.key, s3); - } - } - return function(e3, n, r3) { - return n && t12(e3.prototype, n), r3 && t12(e3, r3), e3; - }; - }(), Ry = ss5(), Iy = I5(Ry), qy = is5(), hs5 = I5(qy), Dy = os6(), Ly = I5(Dy), My = Mu3(), By = I5(My), Fy = Fu4(), ds5 = I5(Fy), $y = Wu3(), Uy = I5($y), Wy = Vu3(), zy = I5(Wy), Vy = Gu3(), Yy = I5(Vy), Gy = Hu3(), Ky = I5(Gy), Hy = ju4(), Qy = I5(Hy), jy = Xu3(), Jy = I5(jy), Xy = el2(), Zy = I5(Xy), eg = rl2(), tg = I5(eg), rg = sl2(), ng = I5(rg), sg = ol3(), ig = I5(sg), og = ul3(), ag = I5(og), ug = gl2(), wl2 = I5(ug), lg = L6(), cg = fg(lg); - function fg(t12) { - if (t12 && t12.__esModule) - return t12; - var e3 = {}; - if (t12 != null) - for (var n in t12) - Object.prototype.hasOwnProperty.call(t12, n) && (e3[n] = t12[n]); - return e3.default = t12, e3; - } - function I5(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function pg(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - var hg2 = function() { - function t12(e3) { - pg(this, t12), this.input = e3, this.lossy = e3.options.lossless === false, this.position = 0, this.root = new By.default(); - var n = new ds5.default(); - return this.root.append(n), this.current = n, this.lossy ? this.tokens = (0, wl2.default)({ safe: e3.safe, css: e3.css.trim() }) : this.tokens = (0, wl2.default)(e3), this.loop(); - } - return t12.prototype.attribute = function() { - var n = "", r3 = void 0, s3 = this.currToken; - for (this.position++; this.position < this.tokens.length && this.currToken[0] !== "]"; ) - n += this.tokens[this.position][1], this.position++; - this.position === this.tokens.length && !~n.indexOf("]") && this.error("Expected a closing square bracket."); - var i = n.split(/((?:[*~^$|]?=))([^]*)/), o2 = i[0].split(/(\|)/g), a = { operator: i[1], value: i[2], source: { start: { line: s3[2], column: s3[3] }, end: { line: this.currToken[2], column: this.currToken[3] } }, sourceIndex: s3[4] }; - if (o2.length > 1 ? (o2[0] === "" && (o2[0] = true), a.attribute = this.parseValue(o2[2]), a.namespace = this.parseNamespace(o2[0])) : a.attribute = this.parseValue(i[0]), r3 = new Zy.default(a), i[2]) { - var u = i[2].split(/(\s+i\s*?)$/), c3 = u[0].trim(); - r3.value = this.lossy ? c3 : u[0], u[1] && (r3.insensitive = true, this.lossy || (r3.raws.insensitive = u[1])), r3.quoted = c3[0] === "'" || c3[0] === '"', r3.raws.unquoted = r3.quoted ? c3.slice(1, -1) : c3; - } - this.newNode(r3), this.position++; - }, t12.prototype.combinator = function() { - if (this.currToken[1] === "|") - return this.namespace(); - for (var n = new ng.default({ value: "", source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[2], column: this.currToken[3] } }, sourceIndex: this.currToken[4] }); this.position < this.tokens.length && this.currToken && (this.currToken[0] === "space" || this.currToken[0] === "combinator"); ) - this.nextToken && this.nextToken[0] === "combinator" ? (n.spaces.before = this.parseSpace(this.currToken[1]), n.source.start.line = this.nextToken[2], n.source.start.column = this.nextToken[3], n.source.end.column = this.nextToken[3], n.source.end.line = this.nextToken[2], n.sourceIndex = this.nextToken[4]) : this.prevToken && this.prevToken[0] === "combinator" ? n.spaces.after = this.parseSpace(this.currToken[1]) : this.currToken[0] === "combinator" ? n.value = this.currToken[1] : this.currToken[0] === "space" && (n.value = this.parseSpace(this.currToken[1], " ")), this.position++; - return this.newNode(n); - }, t12.prototype.comma = function() { - if (this.position === this.tokens.length - 1) { - this.root.trailingComma = true, this.position++; - return; - } - var n = new ds5.default(); - this.current.parent.append(n), this.current = n, this.position++; - }, t12.prototype.comment = function() { - var n = new zy.default({ value: this.currToken[1], source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[4], column: this.currToken[5] } }, sourceIndex: this.currToken[6] }); - this.newNode(n), this.position++; - }, t12.prototype.error = function(n) { - throw new this.input.error(n); - }, t12.prototype.missingBackslash = function() { - return this.error("Expected a backslash preceding the semicolon."); - }, t12.prototype.missingParenthesis = function() { - return this.error("Expected opening parenthesis."); - }, t12.prototype.missingSquareBracket = function() { - return this.error("Expected opening square bracket."); - }, t12.prototype.namespace = function() { - var n = this.prevToken && this.prevToken[1] || true; - if (this.nextToken[0] === "word") - return this.position++, this.word(n); - if (this.nextToken[0] === "*") - return this.position++, this.universal(n); - }, t12.prototype.nesting = function() { - this.newNode(new ig.default({ value: this.currToken[1], source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[2], column: this.currToken[3] } }, sourceIndex: this.currToken[4] })), this.position++; - }, t12.prototype.parentheses = function() { - var n = this.current.last; - if (n && n.type === cg.PSEUDO) { - var r3 = new ds5.default(), s3 = this.current; - n.append(r3), this.current = r3; - var i = 1; - for (this.position++; this.position < this.tokens.length && i; ) - this.currToken[0] === "(" && i++, this.currToken[0] === ")" && i--, i ? this.parse() : (r3.parent.source.end.line = this.currToken[2], r3.parent.source.end.column = this.currToken[3], this.position++); - i && this.error("Expected closing parenthesis."), this.current = s3; - } else { - var o2 = 1; - for (this.position++, n.value += "("; this.position < this.tokens.length && o2; ) - this.currToken[0] === "(" && o2++, this.currToken[0] === ")" && o2--, n.value += this.parseParenthesisToken(this.currToken), this.position++; - o2 && this.error("Expected closing parenthesis."); - } - }, t12.prototype.pseudo = function() { - for (var n = this, r3 = "", s3 = this.currToken; this.currToken && this.currToken[0] === ":"; ) - r3 += this.currToken[1], this.position++; - if (!this.currToken) - return this.error("Expected pseudo-class or pseudo-element"); - if (this.currToken[0] === "word") { - var i = void 0; - this.splitWord(false, function(o2, a) { - r3 += o2, i = new Jy.default({ value: r3, source: { start: { line: s3[2], column: s3[3] }, end: { line: n.currToken[4], column: n.currToken[5] } }, sourceIndex: s3[4] }), n.newNode(i), a > 1 && n.nextToken && n.nextToken[0] === "(" && n.error("Misplaced parenthesis."); - }); - } else - this.error('Unexpected "' + this.currToken[0] + '" found.'); - }, t12.prototype.space = function() { - var n = this.currToken; - this.position === 0 || this.prevToken[0] === "," || this.prevToken[0] === "(" ? (this.spaces = this.parseSpace(n[1]), this.position++) : this.position === this.tokens.length - 1 || this.nextToken[0] === "," || this.nextToken[0] === ")" ? (this.current.last.spaces.after = this.parseSpace(n[1]), this.position++) : this.combinator(); - }, t12.prototype.string = function() { - var n = this.currToken; - this.newNode(new Qy.default({ value: this.currToken[1], source: { start: { line: n[2], column: n[3] }, end: { line: n[4], column: n[5] } }, sourceIndex: n[6] })), this.position++; - }, t12.prototype.universal = function(n) { - var r3 = this.nextToken; - if (r3 && r3[1] === "|") - return this.position++, this.namespace(); - this.newNode(new tg.default({ value: this.currToken[1], source: { start: { line: this.currToken[2], column: this.currToken[3] }, end: { line: this.currToken[2], column: this.currToken[3] } }, sourceIndex: this.currToken[4] }), n), this.position++; - }, t12.prototype.splitWord = function(n, r3) { - for (var s3 = this, i = this.nextToken, o2 = this.currToken[1]; i && i[0] === "word"; ) { - this.position++; - var a = this.currToken[1]; - if (o2 += a, a.lastIndexOf("\\") === a.length - 1) { - var u = this.nextToken; - u && u[0] === "space" && (o2 += this.parseSpace(u[1], " "), this.position++); - } - i = this.nextToken; - } - var c3 = (0, hs5.default)(o2, "."), f3 = (0, hs5.default)(o2, "#"), p4 = (0, hs5.default)(o2, "#{"); - p4.length && (f3 = f3.filter(function(g3) { - return !~p4.indexOf(g3); - })); - var l = (0, ag.default)((0, Ly.default)((0, Iy.default)([[0], c3, f3]))); - l.forEach(function(g3, x7) { - var h4 = l[x7 + 1] || o2.length, d5 = o2.slice(g3, h4); - if (x7 === 0 && r3) - return r3.call(s3, d5, l.length); - var m3 = void 0; - ~c3.indexOf(g3) ? m3 = new Uy.default({ value: d5.slice(1), source: { start: { line: s3.currToken[2], column: s3.currToken[3] + g3 }, end: { line: s3.currToken[4], column: s3.currToken[3] + (h4 - 1) } }, sourceIndex: s3.currToken[6] + l[x7] }) : ~f3.indexOf(g3) ? m3 = new Yy.default({ value: d5.slice(1), source: { start: { line: s3.currToken[2], column: s3.currToken[3] + g3 }, end: { line: s3.currToken[4], column: s3.currToken[3] + (h4 - 1) } }, sourceIndex: s3.currToken[6] + l[x7] }) : m3 = new Ky.default({ value: d5, source: { start: { line: s3.currToken[2], column: s3.currToken[3] + g3 }, end: { line: s3.currToken[4], column: s3.currToken[3] + (h4 - 1) } }, sourceIndex: s3.currToken[6] + l[x7] }), s3.newNode(m3, n); - }), this.position++; - }, t12.prototype.word = function(n) { - var r3 = this.nextToken; - return r3 && r3[1] === "|" ? (this.position++, this.namespace()) : this.splitWord(n); - }, t12.prototype.loop = function() { - for (; this.position < this.tokens.length; ) - this.parse(true); - return this.root; - }, t12.prototype.parse = function(n) { - switch (this.currToken[0]) { - case "space": - this.space(); - break; - case "comment": - this.comment(); - break; - case "(": - this.parentheses(); - break; - case ")": - n && this.missingParenthesis(); - break; - case "[": - this.attribute(); - break; - case "]": - this.missingSquareBracket(); - break; - case "at-word": - case "word": - this.word(); - break; - case ":": - this.pseudo(); - break; - case ";": - this.missingBackslash(); - break; - case ",": - this.comma(); - break; - case "*": - this.universal(); - break; - case "&": - this.nesting(); - break; - case "combinator": - this.combinator(); - break; - case "string": - this.string(); - break; - } - }, t12.prototype.parseNamespace = function(n) { - if (this.lossy && typeof n == "string") { - var r3 = n.trim(); - return r3.length ? r3 : true; - } - return n; - }, t12.prototype.parseSpace = function(n, r3) { - return this.lossy ? r3 || "" : n; - }, t12.prototype.parseValue = function(n) { - return this.lossy && n && typeof n == "string" ? n.trim() : n; - }, t12.prototype.parseParenthesisToken = function(n) { - return this.lossy ? n[0] === "space" ? this.parseSpace(n[1], " ") : this.parseValue(n[1]) : n[1]; - }, t12.prototype.newNode = function(n, r3) { - return r3 && (n.namespace = this.parseNamespace(r3)), this.spaces && (n.spaces.before = this.spaces, this.spaces = ""), this.current.append(n); - }, Py(t12, [{ key: "currToken", get: function() { - return this.tokens[this.position]; - } }, { key: "nextToken", get: function() { - return this.tokens[this.position + 1]; - } }, { key: "prevToken", get: function() { - return this.tokens[this.position - 1]; - } }]), t12; - }(); - jr6.default = hg2; - vl2.exports = jr6.default; - }); - kl2 = y4((Jr6, bl2) => { - "use strict"; - Jr6.__esModule = true; - var dg = function() { - function t12(e3, n) { - for (var r3 = 0; r3 < n.length; r3++) { - var s3 = n[r3]; - s3.enumerable = s3.enumerable || false, s3.configurable = true, "value" in s3 && (s3.writable = true), Object.defineProperty(e3, s3.key, s3); - } - } - return function(e3, n, r3) { - return n && t12(e3.prototype, n), r3 && t12(e3, r3), e3; - }; - }(), mg2 = xl2(), yg2 = gg2(mg2); - function gg2(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function wg2(t12, e3) { - if (!(t12 instanceof e3)) - throw new TypeError("Cannot call a class as a function"); - } - var vg2 = function() { - function t12(e3) { - return wg2(this, t12), this.func = e3 || function() { - }, this; - } - return t12.prototype.process = function(n) { - var r3 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, s3 = new yg2.default({ css: n, error: function(o2) { - throw new Error(o2); - }, options: r3 }); - return this.res = s3, this.func(s3), this; - }, dg(t12, [{ key: "result", get: function() { - return String(this.res); - } }]), t12; - }(); - Jr6.default = vg2; - bl2.exports = Jr6.default; - }); - gs6 = y4((ys7) => { - "use strict"; - Object.defineProperty(ys7, "__esModule", { value: true }); - function _g(t12) { - this.after = t12.after, this.before = t12.before, this.type = t12.type, this.value = t12.value, this.sourceIndex = t12.sourceIndex; - } - ys7.default = _g; - }); - vs6 = y4((ws7) => { - "use strict"; - Object.defineProperty(ws7, "__esModule", { value: true }); - var Tg = gs6(), Sl2 = Eg2(Tg); - function Eg2(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function _t6(t12) { - var e3 = this; - this.constructor(t12), this.nodes = t12.nodes, this.after === void 0 && (this.after = this.nodes.length > 0 ? this.nodes[this.nodes.length - 1].after : ""), this.before === void 0 && (this.before = this.nodes.length > 0 ? this.nodes[0].before : ""), this.sourceIndex === void 0 && (this.sourceIndex = this.before.length), this.nodes.forEach(function(n) { - n.parent = e3; - }); - } - _t6.prototype = Object.create(Sl2.default.prototype); - _t6.constructor = Sl2.default; - _t6.prototype.walk = function(e3, n) { - for (var r3 = typeof e3 == "string" || e3 instanceof RegExp, s3 = r3 ? n : e3, i = typeof e3 == "string" ? new RegExp(e3) : e3, o2 = 0; o2 < this.nodes.length; o2++) { - var a = this.nodes[o2], u = r3 ? i.test(a.type) : true; - if (u && s3 && s3(a, o2, this.nodes) === false || a.nodes && a.walk(e3, n) === false) - return false; - } - return true; - }; - _t6.prototype.each = function() { - for (var e3 = arguments.length <= 0 || arguments[0] === void 0 ? function() { - } : arguments[0], n = 0; n < this.nodes.length; n++) { - var r3 = this.nodes[n]; - if (e3(r3, n, this.nodes) === false) - return false; - } - return true; - }; - ws7.default = _t6; - }); - Nl2 = y4((Tt6) => { - "use strict"; - Object.defineProperty(Tt6, "__esModule", { value: true }); - Tt6.parseMediaFeature = Al2; - Tt6.parseMediaQuery = bs7; - Tt6.parseMediaList = Og; - var Sg = gs6(), Cl2 = Ol2(Sg), Cg2 = vs6(), xs5 = Ol2(Cg2); - function Ol2(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Al2(t12) { - var e3 = arguments.length <= 1 || arguments[1] === void 0 ? 0 : arguments[1], n = [{ mode: "normal", character: null }], r3 = [], s3 = 0, i = "", o2 = null, a = null, u = e3, c3 = t12; - t12[0] === "(" && t12[t12.length - 1] === ")" && (c3 = t12.substring(1, t12.length - 1), u++); - for (var f3 = 0; f3 < c3.length; f3++) { - var p4 = c3[f3]; - if ((p4 === "'" || p4 === '"') && (n[s3].isCalculationEnabled === true ? (n.push({ mode: "string", isCalculationEnabled: false, character: p4 }), s3++) : n[s3].mode === "string" && n[s3].character === p4 && c3[f3 - 1] !== "\\" && (n.pop(), s3--)), p4 === "{" ? (n.push({ mode: "interpolation", isCalculationEnabled: true }), s3++) : p4 === "}" && (n.pop(), s3--), n[s3].mode === "normal" && p4 === ":") { - var l = c3.substring(f3 + 1); - a = { type: "value", before: /^(\s*)/.exec(l)[1], after: /(\s*)$/.exec(l)[1], value: l.trim() }, a.sourceIndex = a.before.length + f3 + 1 + u, o2 = { type: "colon", sourceIndex: f3 + u, after: a.before, value: ":" }; - break; - } - i += p4; - } - return i = { type: "media-feature", before: /^(\s*)/.exec(i)[1], after: /(\s*)$/.exec(i)[1], value: i.trim() }, i.sourceIndex = i.before.length + u, r3.push(i), o2 !== null && (o2.before = i.after, r3.push(o2)), a !== null && r3.push(a), r3; - } - function bs7(t12) { - var e3 = arguments.length <= 1 || arguments[1] === void 0 ? 0 : arguments[1], n = [], r3 = 0, s3 = false, i = void 0; - function o2() { - return { before: "", after: "", value: "" }; - } - i = o2(); - for (var a = 0; a < t12.length; a++) { - var u = t12[a]; - s3 ? (i.value += u, (u === "{" || u === "(") && r3++, (u === ")" || u === "}") && r3--) : u.search(/\s/) !== -1 ? i.before += u : (u === "(" && (i.type = "media-feature-expression", r3++), i.value = u, i.sourceIndex = e3 + a, s3 = true), s3 && r3 === 0 && (u === ")" || a === t12.length - 1 || t12[a + 1].search(/\s/) !== -1) && (["not", "only", "and"].indexOf(i.value) !== -1 && (i.type = "keyword"), i.type === "media-feature-expression" && (i.nodes = Al2(i.value, i.sourceIndex)), n.push(Array.isArray(i.nodes) ? new xs5.default(i) : new Cl2.default(i)), i = o2(), s3 = false); - } - for (var c3 = 0; c3 < n.length; c3++) - if (i = n[c3], c3 > 0 && (n[c3 - 1].after = i.before), i.type === void 0) { - if (c3 > 0) { - if (n[c3 - 1].type === "media-feature-expression") { - i.type = "keyword"; - continue; - } - if (n[c3 - 1].value === "not" || n[c3 - 1].value === "only") { - i.type = "media-type"; - continue; - } - if (n[c3 - 1].value === "and") { - i.type = "media-feature-expression"; - continue; - } - n[c3 - 1].type === "media-type" && (n[c3 + 1] ? i.type = n[c3 + 1].type === "media-feature-expression" ? "keyword" : "media-feature-expression" : i.type = "media-feature-expression"); - } - if (c3 === 0) { - if (!n[c3 + 1]) { - i.type = "media-type"; - continue; - } - if (n[c3 + 1] && (n[c3 + 1].type === "media-feature-expression" || n[c3 + 1].type === "keyword")) { - i.type = "media-type"; - continue; - } - if (n[c3 + 2]) { - if (n[c3 + 2].type === "media-feature-expression") { - i.type = "media-type", n[c3 + 1].type = "keyword"; - continue; - } - if (n[c3 + 2].type === "keyword") { - i.type = "keyword", n[c3 + 1].type = "media-type"; - continue; - } - } - if (n[c3 + 3] && n[c3 + 3].type === "media-feature-expression") { - i.type = "keyword", n[c3 + 1].type = "media-type", n[c3 + 2].type = "keyword"; - continue; - } - } - } - return n; - } - function Og(t12) { - var e3 = [], n = 0, r3 = 0, s3 = /^(\s*)url\s*\(/.exec(t12); - if (s3 !== null) { - for (var i = s3[0].length, o2 = 1; o2 > 0; ) { - var a = t12[i]; - a === "(" && o2++, a === ")" && o2--, i++; - } - e3.unshift(new Cl2.default({ type: "url", value: t12.substring(0, i).trim(), sourceIndex: s3[1].length, before: s3[1], after: /^(\s*)/.exec(t12.substring(i))[1] })), n = i; - } - for (var u = n; u < t12.length; u++) { - var c3 = t12[u]; - if (c3 === "(" && r3++, c3 === ")" && r3--, r3 === 0 && c3 === ",") { - var f3 = t12.substring(n, u), p4 = /^(\s*)/.exec(f3)[1]; - e3.push(new xs5.default({ type: "media-query", value: f3.trim(), sourceIndex: n + p4.length, nodes: bs7(f3, n), before: p4, after: /(\s*)$/.exec(f3)[1] })), n = u + 1; - } - } - var l = t12.substring(n), g3 = /^(\s*)/.exec(l)[1]; - return e3.push(new xs5.default({ type: "media-query", value: l.trim(), sourceIndex: n + g3.length, nodes: bs7(l, n), before: g3, after: /(\s*)$/.exec(l)[1] })), e3; - } - }); - Pl2 = y4((ks7) => { - "use strict"; - Object.defineProperty(ks7, "__esModule", { value: true }); - ks7.default = Ig; - var Ag = vs6(), Ng = Rg(Ag), Pg = Nl2(); - function Rg(t12) { - return t12 && t12.__esModule ? t12 : { default: t12 }; - } - function Ig(t12) { - return new Ng.default({ nodes: (0, Pg.parseMediaList)(t12), type: "media-query-list", value: t12.trim() }); - } - }); - Ss4 = {}; - Os6(Ss4, { languages: () => Ul3, options: () => zl2, parsers: () => Es4, printers: () => Wg }); - jl2 = (t12, e3, n, r3) => { - if (!(t12 && e3 == null)) - return e3.replaceAll ? e3.replaceAll(n, r3) : n.global ? e3.replace(n, r3) : e3.split(n).join(r3); - }; - T3 = jl2; - Et7 = "'"; - As6 = '"'; - Ns6 = Jl2; - Ps6 = Xl2; - St6 = Zl2; - ee8 = ec4; - Fe8 = "string"; - $e7 = "array"; - Ue7 = "cursor"; - xe7 = "indent"; - be10 = "align"; - We7 = "trim"; - ke7 = "group"; - te7 = "fill"; - le8 = "if-break"; - ze9 = "indent-if-break"; - Ve8 = "line-suffix"; - Ye6 = "line-suffix-boundary"; - Q6 = "line"; - Ge7 = "label"; - _e9 = "break-parent"; - Ct7 = /* @__PURE__ */ new Set([Ue7, xe7, be10, We7, ke7, te7, le8, ze9, Ve8, Ye6, Q6, Ge7, _e9]); - Ke7 = tc3; - rc2 = (t12) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t12); - en5 = class extends Error { - name = "InvalidDocError"; - constructor(e3) { - super(nc2(e3)), this.doc = e3; - } - }; - tn5 = en5; - Rs5 = () => { - }; - ce7 = Rs5; - Ot8 = Rs5; - Qe8 = { type: _e9 }; - sc2 = { type: Q6, hard: true }; - A5 = { type: Q6 }; - M7 = { type: Q6, soft: true }; - _5 = [sc2, Qe8]; - ic2 = (t12, e3, n) => { - if (!(t12 && e3 == null)) - return Array.isArray(e3) || typeof e3 == "string" ? e3[n < 0 ? e3.length + n : n] : e3.at(n); - }; - G7 = ic2; - Ds7 = (t12) => { - if (Array.isArray(t12)) - return t12; - if (t12.type !== te7) - throw new Error(`Expect doc to be 'array' or '${te7}'.`); - return t12.parts; - }; - rn5 = class extends Error { - name = "UnexpectedNodeError"; - constructor(e3, n, r3 = "type") { - super(`Unexpected ${n} node ${r3}: ${JSON.stringify(e3[r3])}.`), this.node = e3; - } - }; - Ms5 = rn5; - Te8 = uc3; - lc2 = /* @__PURE__ */ new Set(["raw", "raws", "sourceIndex", "source", "before", "after", "trailingComma", "spaces"]); - Bs6.ignoredProperties = lc2; - Fs6 = Bs6; - $s5 = fc2; - Us6.getVisitorKeys = (t12) => t12.type === "css-root" ? ["frontMatter"] : []; - Ws5 = Us6; - re8 = ue6(Qs5(), 1); - js6 = bc2; - kc3 = new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)", "s"); - je9 = _c3; - Je8 = null; - Tc3 = 10; - for (let t12 = 0; t12 <= Tc3; t12++) - Xe7(); - ri6 = Ec2; - Sc2 = { "front-matter": [], "css-root": ["frontMatter", "nodes"], "css-comment": [], "css-rule": ["selector", "nodes"], "css-decl": ["value", "selector", "nodes"], "css-atrule": ["selector", "params", "value", "nodes"], "media-query-list": ["nodes"], "media-query": ["nodes"], "media-type": [], "media-feature-expression": ["nodes"], "media-feature": [], "media-colon": [], "media-value": [], "media-keyword": [], "media-url": [], "media-unknown": [], "selector-root": ["nodes"], "selector-selector": ["nodes"], "selector-comment": [], "selector-string": [], "selector-tag": [], "selector-id": [], "selector-class": [], "selector-attribute": [], "selector-combinator": ["nodes"], "selector-universal": [], "selector-pseudo": ["nodes"], "selector-nesting": [], "selector-unknown": [], "value-value": ["group"], "value-root": ["group"], "value-comment": [], "value-comma_group": ["groups"], "value-paren_group": ["open", "groups", "close"], "value-func": ["group"], "value-paren": [], "value-number": [], "value-operator": [], "value-word": [], "value-colon": [], "value-comma": [], "value-string": [], "value-atword": [], "value-unicode-range": [], "value-unknown": [] }; - ni6 = Sc2; - Cc2 = ri6(ni6); - si7 = Cc2; - Oc3 = /* @__PURE__ */ new Set(["red", "green", "blue", "alpha", "a", "rgb", "hue", "h", "saturation", "s", "lightness", "l", "whiteness", "w", "blackness", "b", "tint", "shade", "blend", "blenda", "contrast", "hsl", "hsla", "hwb", "hwba"]); - Ac2 = /* @__PURE__ */ new Set(["initial", "inherit", "unset", "revert"]); - rv = Mt6(/\s/); - Bt6 = Mt6(" "); - Si4 = Mt6(",; "); - Ft6 = Mt6(/[^\n\r]/); - fn4 = Pc3; - Ni5 = Ic3; - dn3 = /* @__PURE__ */ new Map([["em", "em"], ["rem", "rem"], ["ex", "ex"], ["rex", "rex"], ["cap", "cap"], ["rcap", "rcap"], ["ch", "ch"], ["rch", "rch"], ["ic", "ic"], ["ric", "ric"], ["lh", "lh"], ["rlh", "rlh"], ["vw", "vw"], ["svw", "svw"], ["lvw", "lvw"], ["dvw", "dvw"], ["vh", "vh"], ["svh", "svh"], ["lvh", "lvh"], ["dvh", "dvh"], ["vi", "vi"], ["svi", "svi"], ["lvi", "lvi"], ["dvi", "dvi"], ["vb", "vb"], ["svb", "svb"], ["lvb", "lvb"], ["dvb", "dvb"], ["vmin", "vmin"], ["svmin", "svmin"], ["lvmin", "lvmin"], ["dvmin", "dvmin"], ["vmax", "vmax"], ["svmax", "svmax"], ["lvmax", "lvmax"], ["dvmax", "dvmax"], ["cm", "cm"], ["mm", "mm"], ["q", "Q"], ["in", "in"], ["pt", "pt"], ["pc", "pc"], ["px", "px"], ["deg", "deg"], ["grad", "grad"], ["rad", "rad"], ["turn", "turn"], ["s", "s"], ["ms", "ms"], ["hz", "Hz"], ["khz", "kHz"], ["dpi", "dpi"], ["dpcm", "dpcm"], ["dppx", "dppx"], ["x", "x"], ["cqw", "cqw"], ["cqh", "cqh"], ["cqi", "cqi"], ["cqb", "cqb"], ["cqmin", "cqmin"], ["cqmax", "cqmax"]]); - Ri3 = /(["'])(?:(?!\1)[^\\]|\\.)*\1/gs; - qc2 = /(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g; - Dc2 = /[A-Za-z]+/g; - Lc3 = /[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g; - Mc3 = new RegExp(Ri3.source + `|(${Lc3.source})?(${qc2.source})(${Dc2.source})?`, "g"); - Di5 = Bc2; - $t7 = Fc2; - Li4 = $c3; - Mi4 = Uc3; - Ut4 = Wc3; - Wt5 = zc2; - Oe9 = Gc3; - Hc2 = { print: Kc2, embed: Ws5, insertPragma: ti6, massageAstNode: Fs6, getVisitorKeys: si7 }; - Fi5 = Hc2; - Es4 = {}; - Os6(Es4, { css: () => Bg, less: () => Fg2, scss: () => $g }); - ql2 = ue6(dt6(), 1); - Dl2 = ue6(Ho3(), 1); - Ll2 = ue6(Pa2(), 1); - Ra2 = Jp2; - Ia3 = Xp2; - Zp2 = /* @__PURE__ */ new Set(["import", "use", "forward"]); - qa3 = eh; - Tl2 = ue6(Ou4(), 1); - id = (t12) => { - for (; t12.parent; ) - t12 = t12.parent; - return t12; - }; - Ar6 = id; - Au3 = od; - Nu4 = ad; - Pu3 = ud; - Ru3 = ld; - _l2 = ue6(kl2(), 1); - Z8 = xg2; - ae6 = kg2; - Rl2 = ue6(Pl2(), 1); - qg = Rl2.default.default; - Il2 = Dg; - Lg = /(\s*)(!default).*$/; - Mg = /(\s*)(!global).*$/; - Ts6 = { astFormat: "postcss", hasPragma: ei6, locStart: P8, locEnd: R7 }; - Bg = { ...Ts6, parse: Bl2 }; - Fg2 = { ...Ts6, parse: Fl2 }; - $g = { ...Ts6, parse: $l2 }; - Ul3 = [{ linguistLanguageId: 50, name: "CSS", type: "markup", tmScope: "source.css", aceMode: "css", codemirrorMode: "css", codemirrorMimeType: "text/css", color: "#563d7c", extensions: [".css", ".wxss"], parsers: ["css"], vscodeLanguageIds: ["css"] }, { linguistLanguageId: 262764437, name: "PostCSS", type: "markup", color: "#dc3a0c", tmScope: "source.postcss", group: "CSS", extensions: [".pcss", ".postcss"], aceMode: "text", parsers: ["css"], vscodeLanguageIds: ["postcss"] }, { linguistLanguageId: 198, name: "Less", type: "markup", color: "#1d365d", aliases: ["less-css"], extensions: [".less"], tmScope: "source.css.less", aceMode: "less", codemirrorMode: "css", codemirrorMimeType: "text/css", parsers: ["less"], vscodeLanguageIds: ["less"] }, { linguistLanguageId: 329, name: "SCSS", type: "markup", color: "#c6538c", tmScope: "source.css.scss", aceMode: "scss", codemirrorMode: "css", codemirrorMimeType: "text/x-scss", extensions: [".scss"], parsers: ["scss"], vscodeLanguageIds: ["scss"] }]; - Wl2 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } }; - Ug = { singleQuote: Wl2.singleQuote }; - zl2 = Ug; - Wg = { postcss: Fi5 }; - Vk = Ss4; - } -}); - -// node_modules/prettier/plugins/typescript.mjs -var typescript_exports = {}; -__export(typescript_exports, { - default: () => UG, - parsers: () => kb -}); -function hV(e3, t12) { - let r3 = new SyntaxError(e3 + " (" + t12.loc.start.line + ":" + t12.loc.start.column + ")"); - return Object.assign(r3, t12); -} -function yV(e3) { - let t12 = []; - for (let r3 of e3) - try { - return r3(); - } catch (a) { - t12.push(a); - } - throw Object.assign(new Error("All combinations failed"), { errors: t12 }); -} -function AV(e3) { - if (!e3.startsWith("#!")) - return ""; - let t12 = e3.indexOf(` -`); - return t12 === -1 ? e3 : e3.slice(0, t12); -} -function kV(e3) { - let t12 = H9(e3); - t12 && (e3 = e3.slice(t12.length + 1)); - let r3 = (0, H_.extract)(e3), { pragmas: a, comments: _6 } = (0, H_.parseWithComments)(r3); - return { shebang: t12, text: e3, pragmas: a, comments: _6 }; -} -function G9(e3) { - let { pragmas: t12 } = kV(e3); - return Object.prototype.hasOwnProperty.call(t12, "prettier") || Object.prototype.hasOwnProperty.call(t12, "format"); -} -function DV(e3) { - return Array.isArray(e3) && e3.length > 0; -} -function Fn5(e3) { - var a; - let t12 = e3.range ? e3.range[0] : e3.start, r3 = ((a = e3.declaration) == null ? void 0 : a.decorators) ?? e3.decorators; - return Km(r3) ? Math.min(Fn5(r3[0]), t12) : t12; -} -function ra4(e3) { - return e3.range ? e3.range[1] : e3.end; -} -function PV(e3) { - return e3 = typeof e3 == "function" ? { parse: e3 } : e3, { astFormat: "estree", hasPragma: G9, locStart: Fn5, locEnd: ra4, ...e3 }; -} -function IV(e3) { - return e3.charAt(0) === "#" && e3.charAt(1) === "!" ? "//" + e3.slice(2) : e3; -} -function OV(e3) { - return e3 = new Set(e3), (t12) => e3.has(t12 == null ? void 0 : t12.type); -} -function LV(e3) { - return gu3(e3) && e3.value[0] === "*" && /@(?:type|satisfies)\b/.test(e3.value); -} -function JV(e3) { - let t12 = `*${e3.value}*`.split(` -`); - return t12.length > 1 && t12.every((r3) => r3.trimStart()[0] === "*"); -} -function vu5(e3) { - if (bu3 !== null && typeof bu3.property) { - let t12 = bu3; - return bu3 = vu5.prototype = null, t12; - } - return bu3 = vu5.prototype = e3 ?? /* @__PURE__ */ Object.create(null), new vu5(); -} -function wb(e3) { - return vu5(e3); -} -function jV(e3, t12 = "type") { - wb(e3); - function r3(a) { - let _6 = a[t12], p4 = e3[_6]; - if (!Array.isArray(p4)) - throw Object.assign(new Error(`Missing visitor keys for '${_6}'.`), { node: a }); - return p4; - } - return r3; -} -function Cb(e3, t12) { - if (!(e3 !== null && typeof e3 == "object")) - return e3; - if (Array.isArray(e3)) { - for (let a = 0; a < e3.length; a++) - e3[a] = Cb(e3[a], t12); - return e3; - } - let r3 = e5(e3); - for (let a = 0; a < r3.length; a++) - e3[r3[a]] = Cb(e3[r3[a]], t12); - return t12(e3) || e3; -} -function BV(e3, t12) { - let { parser: r3, text: a } = t12; - if (e3.type === "File" && e3.program.interpreter) { - let { program: { interpreter: p4 }, comments: d5 } = e3; - delete e3.program.interpreter, d5.unshift(p4); - } - if (r3 === "babel") { - let p4 = /* @__PURE__ */ new Set(); - e3 = Zm(e3, (d5) => { - var h4; - (h4 = d5.leadingComments) != null && h4.some(Y92) && p4.add(Fn5(d5)); - }), e3 = Zm(e3, (d5) => { - if (d5.type === "ParenthesizedExpression") { - let { expression: h4 } = d5; - if (h4.type === "TypeCastExpression") - return h4.range = d5.range, h4; - let l = Fn5(d5); - if (!p4.has(l)) - return h4.extra = { ...h4.extra, parenthesized: true }, h4; - } - }); - } - if (e3 = Zm(e3, (p4) => { - switch (p4.type) { - case "LogicalExpression": - if (t52(p4)) - return Eb(p4); - break; - case "VariableDeclaration": { - let d5 = Sb(false, p4.declarations, -1); - d5 != null && d5.init && _6(p4, d5); - break; - } - case "TSParenthesizedType": - return p4.typeAnnotation; - case "TSTypeParameter": - if (typeof p4.name == "string") { - let d5 = Fn5(p4); - p4.name = { type: "Identifier", name: p4.name, range: [d5, d5 + p4.name.length] }; - } - break; - case "TopicReference": - e3.extra = { ...e3.extra, __isUsingHackPipeline: true }; - break; - case "ExportAllDeclaration": { - let { exported: d5 } = p4; - if (r3 === "meriyah" && (d5 == null ? void 0 : d5.type) === "Identifier") { - let h4 = a.slice(Fn5(d5), ra4(d5)); - (h4.startsWith('"') || h4.startsWith("'")) && (p4.exported = { ...p4.exported, type: "Literal", value: p4.exported.name, raw: h4 }); - } - break; - } - case "TSUnionType": - case "TSIntersectionType": - if (p4.types.length === 1) - return p4.types[0]; - break; - } - }), Km(e3.comments)) { - let p4 = Sb(false, e3.comments, -1); - for (let d5 = e3.comments.length - 2; d5 >= 0; d5--) { - let h4 = e3.comments[d5]; - ra4(h4) === Fn5(p4) && gu3(h4) && gu3(p4) && xb(h4) && xb(p4) && (e3.comments.splice(d5 + 1, 1), h4.value += "*//*" + p4.value, h4.range = [Fn5(h4), ra4(p4)]), p4 = h4; - } - } - return e3.type === "Program" && (e3.range = [0, a.length]), e3; - function _6(p4, d5) { - a[ra4(d5)] !== ";" && (p4.range = [Fn5(p4), ra4(d5)]); - } -} -function t52(e3) { - return e3.type === "LogicalExpression" && e3.right.type === "LogicalExpression" && e3.operator === e3.right.operator; -} -function Eb(e3) { - return t52(e3) ? Eb({ type: "LogicalExpression", operator: e3.operator, left: Eb({ type: "LogicalExpression", operator: e3.operator, left: e3.left, right: e3.right.left, range: [Fn5(e3.left), ra4(e3.right.left)] }), right: e3.right.right, range: [Fn5(e3), ra4(e3)] }) : e3; -} -function UV(e3) { - let { message: t12, location: r3 } = e3; - if (!r3) - return e3; - let { start: a, end: _6 } = r3; - return R9(t12, { loc: { start: { line: a.line, column: a.column + 1 }, end: { line: _6.line, column: _6.column + 1 } }, cause: e3 }); -} -function zV(e3, t12) { - let r3 = t12 == null ? void 0 : t12.filepath; - if (r3 && qV(r3)) - return [{ ...Ab, filePath: r3 }]; - let a = VV(e3); - return [{ ...Ab, jsx: a }, { ...Ab, jsx: !a }]; -} -function WV(e3, t12) { - let r3 = $9(e3), a = zV(e3, t12), _6; - try { - _6 = j9(a.map((p4) => () => (0, n5.parse)(r3, p4))); - } catch ({ errors: [p4] }) { - throw UV(p4); - } - return r5(_6, { text: e3 }); -} -function VV(e3) { - return new RegExp(["(?:^[^\"'`]*)"].join(""), "m").test(e3); -} -var S5, xf, x5, w5, C5, E5, A52, ut4, Vh, Ob, Mb, Hh, wf, k5, D5, Cf, Dt8, V6, H62, P72, G62, M72, J7, R72, F7, U72, z72, Bm, zm, Z62, e9, i9, o9, bb, _9, u9, p9, f9, d9, h9, g9, v9, S9, C9, D9, P9, J9, V9, Db, kb, n5, R9, j9, H_, H9, Km, X9, $9, NV, Sb, Q9, MV, gu3, Y92, xb, bu3, RV, K9, Z9, FV, e5, Zm, r5, Ab, qV, HV, UG; -var init_typescript = __esm({ - "node_modules/prettier/plugins/typescript.mjs"() { - S5 = Object.create; - xf = Object.defineProperty; - x5 = Object.getOwnPropertyDescriptor; - w5 = Object.getOwnPropertyNames; - C5 = Object.getPrototypeOf; - E5 = Object.prototype.hasOwnProperty; - A52 = (e3, t12) => () => (e3 && (t12 = e3(e3 = 0)), t12); - ut4 = (e3, t12) => () => (t12 || e3((t12 = { exports: {} }).exports, t12), t12.exports); - Vh = (e3, t12) => { - for (var r3 in t12) - xf(e3, r3, { get: t12[r3], enumerable: true }); - }; - Ob = (e3, t12, r3, a) => { - if (t12 && typeof t12 == "object" || typeof t12 == "function") - for (let _6 of w5(t12)) - !E5.call(e3, _6) && _6 !== r3 && xf(e3, _6, { get: () => t12[_6], enumerable: !(a = x5(t12, _6)) || a.enumerable }); - return e3; - }; - Mb = (e3, t12, r3) => (r3 = e3 != null ? S5(C5(e3)) : {}, Ob(t12 || !e3 || !e3.__esModule ? xf(r3, "default", { value: e3, enumerable: true }) : r3, e3)); - Hh = (e3) => Ob(xf({}, "__esModule", { value: true }), e3); - wf = {}; - Vh(wf, { default: () => D5 }); - Cf = A52(() => { - k5 = () => () => { - }, D5 = k5; - }); - Dt8 = ut4((QV, A7) => { - var P52 = Object.defineProperty, yv = Object.getOwnPropertyNames, Vt4 = (e10, t12) => function() { - return e10 && (t12 = (0, e10[yv(e10)[0]])(e10 = 0)), t12; - }, I5 = (e10, t12) => function() { - return t12 || (0, e10[yv(e10)[0]])((t12 = { exports: {} }).exports, t12), t12.exports; - }, N52 = (e10, t12) => { - for (var r9 in t12) - P52(e10, r9, { get: t12[r9], enumerable: true }); - }, gv, Hf, Zh, O52 = Vt4({ "src/compiler/corePublic.ts"() { - "use strict"; - gv = "5.2", Hf = "5.2.2", Zh = ((e10) => (e10[e10.LessThan = -1] = "LessThan", e10[e10.EqualTo = 0] = "EqualTo", e10[e10.GreaterThan = 1] = "GreaterThan", e10))(Zh || {}); - } }); - function Ka4(e10) { - return e10 ? e10.length : 0; - } - function yr5(e10, t12) { - if (e10) - for (let r9 = 0; r9 < e10.length; r9++) { - let a = t12(e10[r9], r9); - if (a) - return a; - } - } - function M52(e10, t12) { - if (e10) - for (let r9 = e10.length - 1; r9 >= 0; r9--) { - let a = t12(e10[r9], r9); - if (a) - return a; - } - } - function ng(e10, t12) { - if (e10 !== void 0) - for (let r9 = 0; r9 < e10.length; r9++) { - let a = t12(e10[r9], r9); - if (a !== void 0) - return a; - } - } - function L52(e10, t12) { - for (let r9 of e10) { - let a = t12(r9); - if (a !== void 0) - return a; - } - } - function J52(e10, t12, r9) { - let a = r9; - if (e10) { - let _10 = 0; - for (let p5 of e10) - a = t12(a, p5, _10), _10++; - } - return a; - } - function ey(e10, t12, r9) { - let a = []; - N6.assertEqual(e10.length, t12.length); - for (let _10 = 0; _10 < e10.length; _10++) - a.push(r9(e10[_10], t12[_10], _10)); - return a; - } - function R52(e10, t12) { - if (e10.length <= 1) - return e10; - let r9 = []; - for (let a = 0, _10 = e10.length; a < _10; a++) - a && r9.push(t12), r9.push(e10[a]); - return r9; - } - function so3(e10, t12) { - if (e10) { - for (let r9 = 0; r9 < e10.length; r9++) - if (!t12(e10[r9], r9)) - return false; - } - return true; - } - function Yr7(e10, t12, r9) { - if (e10 !== void 0) - for (let a = r9 ?? 0; a < e10.length; a++) { - let _10 = e10[a]; - if (t12(_10, a)) - return _10; - } - } - function ig(e10, t12, r9) { - if (e10 !== void 0) - for (let a = r9 ?? e10.length - 1; a >= 0; a--) { - let _10 = e10[a]; - if (t12(_10, a)) - return _10; - } - } - function _l3(e10, t12, r9) { - if (e10 === void 0) - return -1; - for (let a = r9 ?? 0; a < e10.length; a++) - if (t12(e10[a], a)) - return a; - return -1; - } - function j52(e10, t12, r9) { - if (e10 === void 0) - return -1; - for (let a = r9 ?? e10.length - 1; a >= 0; a--) - if (t12(e10[a], a)) - return a; - return -1; - } - function F5(e10, t12) { - for (let r9 = 0; r9 < e10.length; r9++) { - let a = t12(e10[r9], r9); - if (a) - return a; - } - return N6.fail(); - } - function es7(e10, t12, r9 = _o3) { - if (e10) { - for (let a of e10) - if (r9(a, t12)) - return true; - } - return false; - } - function bv(e10, t12, r9 = _o3) { - return e10.length === t12.length && e10.every((a, _10) => r9(a, t12[_10])); - } - function vv(e10, t12, r9) { - for (let a = r9 || 0; a < e10.length; a++) - if (es7(t12, e10.charCodeAt(a))) - return a; - return -1; - } - function B52(e10, t12) { - let r9 = 0; - if (e10) - for (let a = 0; a < e10.length; a++) { - let _10 = e10[a]; - t12(_10, a) && r9++; - } - return r9; - } - function $r4(e10, t12) { - if (e10) { - let r9 = e10.length, a = 0; - for (; a < r9 && t12(e10[a]); ) - a++; - if (a < r9) { - let _10 = e10.slice(0, a); - for (a++; a < r9; ) { - let p5 = e10[a]; - t12(p5) && _10.push(p5), a++; - } - return _10; - } - } - return e10; - } - function U52(e10, t12) { - let r9 = 0; - for (let a = 0; a < e10.length; a++) - t12(e10[a], a, e10) && (e10[r9] = e10[a], r9++); - e10.length = r9; - } - function q52(e10) { - e10.length = 0; - } - function Aa4(e10, t12) { - let r9; - if (e10) { - r9 = []; - for (let a = 0; a < e10.length; a++) - r9.push(t12(e10[a], a)); - } - return r9; - } - function* z52(e10, t12) { - for (let r9 of e10) - yield t12(r9); - } - function W52(e10, t12) { - if (e10) - for (let r9 = 0; r9 < e10.length; r9++) { - let a = e10[r9], _10 = t12(a, r9); - if (a !== _10) { - let p5 = e10.slice(0, r9); - for (p5.push(_10), r9++; r9 < e10.length; r9++) - p5.push(t12(e10[r9], r9)); - return p5; - } - } - return e10; - } - function o_(e10) { - let t12 = []; - for (let r9 of e10) - r9 && (zt6(r9) ? Rr7(t12, r9) : t12.push(r9)); - return t12; - } - function Bo3(e10, t12) { - let r9; - if (e10) - for (let a = 0; a < e10.length; a++) { - let _10 = t12(e10[a], a); - _10 && (zt6(_10) ? r9 = Rr7(r9, _10) : r9 = xt8(r9, _10)); - } - return r9 || $e9; - } - function Tv(e10, t12) { - let r9 = []; - if (e10) - for (let a = 0; a < e10.length; a++) { - let _10 = t12(e10[a], a); - _10 && (zt6(_10) ? Rr7(r9, _10) : r9.push(_10)); - } - return r9; - } - function* V52(e10, t12) { - for (let r9 of e10) { - let a = t12(r9); - a && (yield* a); - } - } - function Sv(e10, t12) { - let r9; - if (e10) - for (let a = 0; a < e10.length; a++) { - let _10 = e10[a], p5 = t12(_10, a); - (r9 || _10 !== p5 || zt6(p5)) && (r9 || (r9 = e10.slice(0, a)), zt6(p5) ? Rr7(r9, p5) : r9.push(p5)); - } - return r9 || e10; - } - function H52(e10, t12) { - let r9 = []; - for (let a = 0; a < e10.length; a++) { - let _10 = t12(e10[a], a); - if (_10 === void 0) - return; - r9.push(_10); - } - return r9; - } - function Za3(e10, t12) { - let r9 = []; - if (e10) - for (let a = 0; a < e10.length; a++) { - let _10 = t12(e10[a], a); - _10 !== void 0 && r9.push(_10); - } - return r9; - } - function* G52(e10, t12) { - for (let r9 of e10) { - let a = t12(r9); - a !== void 0 && (yield a); - } - } - function X52(e10, t12) { - if (!e10) - return; - let r9 = /* @__PURE__ */ new Map(); - return e10.forEach((a, _10) => { - let p5 = t12(_10, a); - if (p5 !== void 0) { - let [d5, h5] = p5; - d5 !== void 0 && h5 !== void 0 && r9.set(d5, h5); - } - }), r9; - } - function $52(e10, t12, r9) { - if (e10.has(t12)) - return e10.get(t12); - let a = r9(); - return e10.set(t12, a), a; - } - function Q52(e10, t12) { - return e10.has(t12) ? false : (e10.add(t12), true); - } - function* Y52(e10) { - yield e10; - } - function K52(e10, t12, r9) { - let a; - if (e10) { - a = []; - let _10 = e10.length, p5, d5, h5 = 0, l = 0; - for (; h5 < _10; ) { - for (; l < _10; ) { - let v10 = e10[l]; - if (d5 = t12(v10, l), l === 0) - p5 = d5; - else if (d5 !== p5) - break; - l++; - } - if (h5 < l) { - let v10 = r9(e10.slice(h5, l), p5, h5, l); - v10 && a.push(v10), h5 = l; - } - p5 = d5, l++; - } - } - return a; - } - function Z52(e10, t12) { - if (!e10) - return; - let r9 = /* @__PURE__ */ new Map(); - return e10.forEach((a, _10) => { - let [p5, d5] = t12(_10, a); - r9.set(p5, d5); - }), r9; - } - function mt7(e10, t12) { - if (e10) - if (t12) { - for (let r9 of e10) - if (t12(r9)) - return true; - } else - return e10.length > 0; - return false; - } - function eC(e10, t12, r9) { - let a; - for (let _10 = 0; _10 < e10.length; _10++) - t12(e10[_10]) ? a = a === void 0 ? _10 : a : a !== void 0 && (r9(a, _10), a = void 0); - a !== void 0 && r9(a, e10.length); - } - function y_(e10, t12) { - return mt7(t12) ? mt7(e10) ? [...e10, ...t12] : t12 : e10; - } - function tC(e10, t12) { - return t12; - } - function ag(e10) { - return e10.map(tC); - } - function rC(e10, t12, r9) { - let a = ag(e10); - Ev(e10, a, r9); - let _10 = e10[a[0]], p5 = [a[0]]; - for (let d5 = 1; d5 < a.length; d5++) { - let h5 = a[d5], l = e10[h5]; - t12(_10, l) || (p5.push(h5), _10 = l); - } - return p5.sort(), p5.map((d5) => e10[d5]); - } - function nC(e10, t12) { - let r9 = []; - for (let a of e10) - Ol2(r9, a, t12); - return r9; - } - function xv(e10, t12, r9) { - return e10.length === 0 ? [] : e10.length === 1 ? e10.slice() : r9 ? rC(e10, t12, r9) : nC(e10, t12); - } - function iC(e10, t12) { - if (e10.length === 0) - return $e9; - let r9 = e10[0], a = [r9]; - for (let _10 = 1; _10 < e10.length; _10++) { - let p5 = e10[_10]; - switch (t12(p5, r9)) { - case true: - case 0: - continue; - case -1: - return N6.fail("Array is unsorted."); - } - a.push(r9 = p5); - } - return a; - } - function aC() { - return []; - } - function yl3(e10, t12, r9, a) { - if (e10.length === 0) - return e10.push(t12), true; - let _10 = Ml4(e10, t12, bt7, r9); - return _10 < 0 ? (e10.splice(~_10, 0, t12), true) : a ? (e10.splice(_10, 0, t12), true) : false; - } - function wv(e10, t12, r9) { - return iC(Gf(e10, t12), r9 || t12 || Ci7); - } - function oC(e10, t12) { - if (e10.length < 2) - return true; - for (let r9 = 1, a = e10.length; r9 < a; r9++) - if (t12(e10[r9 - 1], e10[r9]) === 1) - return false; - return true; - } - function sC(e10, t12, r9, a) { - let _10 = 3; - if (e10.length < 2) - return _10; - let p5 = t12(e10[0]); - for (let d5 = 1, h5 = e10.length; d5 < h5 && _10 !== 0; d5++) { - let l = t12(e10[d5]); - _10 & 1 && r9(p5, l) > 0 && (_10 &= -2), _10 & 2 && a(p5, l) > 0 && (_10 &= -3), p5 = l; - } - return _10; - } - function _C(e10, t12, r9 = _o3) { - if (!e10 || !t12) - return e10 === t12; - if (e10.length !== t12.length) - return false; - for (let a = 0; a < e10.length; a++) - if (!r9(e10[a], t12[a], a)) - return false; - return true; - } - function cC(e10) { - let t12; - if (e10) - for (let r9 = 0; r9 < e10.length; r9++) { - let a = e10[r9]; - (t12 || !a) && (t12 || (t12 = e10.slice(0, r9)), a && t12.push(a)); - } - return t12 || e10; - } - function lC(e10, t12, r9) { - if (!t12 || !e10 || t12.length === 0 || e10.length === 0) - return t12; - let a = []; - e: - for (let _10 = 0, p5 = 0; p5 < t12.length; p5++) { - p5 > 0 && N6.assertGreaterThanOrEqual(r9(t12[p5], t12[p5 - 1]), 0); - t: - for (let d5 = _10; _10 < e10.length; _10++) - switch (_10 > d5 && N6.assertGreaterThanOrEqual(r9(e10[_10], e10[_10 - 1]), 0), r9(t12[p5], e10[_10])) { - case -1: - a.push(t12[p5]); - continue e; - case 0: - continue e; - case 1: - continue t; - } - } - return a; - } - function xt8(e10, t12) { - return t12 === void 0 ? e10 : e10 === void 0 ? [t12] : (e10.push(t12), e10); - } - function uC(e10, t12) { - return e10 === void 0 ? t12 : t12 === void 0 ? e10 : zt6(e10) ? zt6(t12) ? y_(e10, t12) : xt8(e10, t12) : zt6(t12) ? xt8(t12, e10) : [e10, t12]; - } - function ty(e10, t12) { - return t12 < 0 ? e10.length + t12 : t12; - } - function Rr7(e10, t12, r9, a) { - if (t12 === void 0 || t12.length === 0) - return e10; - if (e10 === void 0) - return t12.slice(r9, a); - r9 = r9 === void 0 ? 0 : ty(t12, r9), a = a === void 0 ? t12.length : ty(t12, a); - for (let _10 = r9; _10 < a && _10 < t12.length; _10++) - t12[_10] !== void 0 && e10.push(t12[_10]); - return e10; - } - function Ol2(e10, t12, r9) { - return es7(e10, t12, r9) ? false : (e10.push(t12), true); - } - function Cv(e10, t12, r9) { - return e10 ? (Ol2(e10, t12, r9), e10) : [t12]; - } - function Ev(e10, t12, r9) { - t12.sort((a, _10) => r9(e10[a], e10[_10]) || kr7(a, _10)); - } - function Gf(e10, t12) { - return e10.length === 0 ? e10 : e10.slice().sort(t12); - } - function* pC(e10) { - for (let t12 = e10.length - 1; t12 >= 0; t12--) - yield e10[t12]; - } - function Av(e10, t12) { - let r9 = ag(e10); - return Ev(e10, r9, t12), r9.map((a) => e10[a]); - } - function fC(e10, t12, r9, a) { - for (; r9 < a; ) { - if (e10[r9] !== t12[r9]) - return false; - r9++; - } - return true; - } - function g_(e10) { - return e10 === void 0 || e10.length === 0 ? void 0 : e10[0]; - } - function dC(e10) { - if (e10) - for (let t12 of e10) - return t12; - } - function og(e10) { - return N6.assert(e10.length !== 0), e10[0]; - } - function mC(e10) { - for (let t12 of e10) - return t12; - N6.fail("iterator is empty"); - } - function wi7(e10) { - return e10 === void 0 || e10.length === 0 ? void 0 : e10[e10.length - 1]; - } - function ka3(e10) { - return N6.assert(e10.length !== 0), e10[e10.length - 1]; - } - function Ld(e10) { - return e10 && e10.length === 1 ? e10[0] : void 0; - } - function hC(e10) { - return N6.checkDefined(Ld(e10)); - } - function yC(e10) { - return e10 && e10.length === 1 ? e10[0] : e10; - } - function gC(e10, t12, r9) { - let a = e10.slice(0); - return a[t12] = r9, a; - } - function Ml4(e10, t12, r9, a, _10) { - return kv(e10, r9(t12), r9, a, _10); - } - function kv(e10, t12, r9, a, _10) { - if (!mt7(e10)) - return -1; - let p5 = _10 || 0, d5 = e10.length - 1; - for (; p5 <= d5; ) { - let h5 = p5 + (d5 - p5 >> 1), l = r9(e10[h5], h5); - switch (a(l, t12)) { - case -1: - p5 = h5 + 1; - break; - case 0: - return h5; - case 1: - d5 = h5 - 1; - break; - } - } - return ~p5; - } - function Jd(e10, t12, r9, a, _10) { - if (e10 && e10.length > 0) { - let p5 = e10.length; - if (p5 > 0) { - let d5 = a === void 0 || a < 0 ? 0 : a, h5 = _10 === void 0 || d5 + _10 > p5 - 1 ? p5 - 1 : d5 + _10, l; - for (arguments.length <= 2 ? (l = e10[d5], d5++) : l = r9; d5 <= h5; ) - l = t12(l, e10[d5], d5), d5++; - return l; - } - } - return r9; - } - function Qr6(e10, t12) { - return Jn5.call(e10, t12); - } - function bC(e10, t12) { - return Jn5.call(e10, t12) ? e10[t12] : void 0; - } - function sg(e10) { - let t12 = []; - for (let r9 in e10) - Jn5.call(e10, r9) && t12.push(r9); - return t12; - } - function vC(e10) { - let t12 = []; - do { - let r9 = Object.getOwnPropertyNames(e10); - for (let a of r9) - Ol2(t12, a); - } while (e10 = Object.getPrototypeOf(e10)); - return t12; - } - function TC(e10) { - let t12 = []; - for (let r9 in e10) - Jn5.call(e10, r9) && t12.push(e10[r9]); - return t12; - } - function SC(e10, t12) { - let r9 = new Array(e10); - for (let a = 0; a < e10; a++) - r9[a] = t12(a); - return r9; - } - function Rd(e10, t12) { - let r9 = []; - for (let a of e10) - r9.push(t12 ? t12(a) : a); - return r9; - } - function xC(e10, ...t12) { - for (let r9 of t12) - if (r9 !== void 0) - for (let a in r9) - Qr6(r9, a) && (e10[a] = r9[a]); - return e10; - } - function Dv(e10, t12, r9 = _o3) { - if (e10 === t12) - return true; - if (!e10 || !t12) - return false; - for (let a in e10) - if (Jn5.call(e10, a) && (!Jn5.call(t12, a) || !r9(e10[a], t12[a]))) - return false; - for (let a in t12) - if (Jn5.call(t12, a) && !Jn5.call(e10, a)) - return false; - return true; - } - function wC(e10, t12, r9 = bt7) { - let a = /* @__PURE__ */ new Map(); - for (let _10 of e10) { - let p5 = t12(_10); - p5 !== void 0 && a.set(p5, r9(_10)); - } - return a; - } - function CC(e10, t12, r9 = bt7) { - let a = []; - for (let _10 of e10) - a[t12(_10)] = r9(_10); - return a; - } - function Pv(e10, t12, r9 = bt7) { - let a = jd(); - for (let _10 of e10) - a.add(t12(_10), r9(_10)); - return a; - } - function EC(e10, t12, r9 = bt7) { - return Rd(Pv(e10, t12).values(), r9); - } - function AC(e10, t12) { - let r9 = {}; - if (e10) - for (let a of e10) { - let _10 = `${t12(a)}`; - (r9[_10] ?? (r9[_10] = [])).push(a); - } - return r9; - } - function kC(e10) { - let t12 = {}; - for (let r9 in e10) - Jn5.call(e10, r9) && (t12[r9] = e10[r9]); - return t12; - } - function DC(e10, t12) { - let r9 = {}; - for (let a in t12) - Jn5.call(t12, a) && (r9[a] = t12[a]); - for (let a in e10) - Jn5.call(e10, a) && (r9[a] = e10[a]); - return r9; - } - function PC(e10, t12) { - for (let r9 in t12) - Jn5.call(t12, r9) && (e10[r9] = t12[r9]); - } - function rr7(e10, t12) { - return t12 ? t12.bind(e10) : void 0; - } - function jd() { - let e10 = /* @__PURE__ */ new Map(); - return e10.add = IC, e10.remove = NC, e10; - } - function IC(e10, t12) { - let r9 = this.get(e10); - return r9 ? r9.push(t12) : this.set(e10, r9 = [t12]), r9; - } - function NC(e10, t12) { - let r9 = this.get(e10); - r9 && (jv(r9, t12), r9.length || this.delete(e10)); - } - function OC(e10) { - let t12 = (e10 == null ? void 0 : e10.slice()) || [], r9 = 0; - function a() { - return r9 === t12.length; - } - function _10(...d5) { - t12.push(...d5); - } - function p5() { - if (a()) - throw new Error("Queue is empty"); - let d5 = t12[r9]; - if (t12[r9] = void 0, r9++, r9 > 100 && r9 > t12.length >> 1) { - let h5 = t12.length - r9; - t12.copyWithin(0, r9), t12.length = h5, r9 = 0; - } - return d5; - } - return { enqueue: _10, dequeue: p5, isEmpty: a }; - } - function MC(e10, t12) { - let r9 = /* @__PURE__ */ new Map(), a = 0; - function* _10() { - for (let d5 of r9.values()) - zt6(d5) ? yield* d5 : yield d5; - } - let p5 = { has(d5) { - let h5 = e10(d5); - if (!r9.has(h5)) - return false; - let l = r9.get(h5); - if (!zt6(l)) - return t12(l, d5); - for (let v10 of l) - if (t12(v10, d5)) - return true; - return false; - }, add(d5) { - let h5 = e10(d5); - if (r9.has(h5)) { - let l = r9.get(h5); - if (zt6(l)) - es7(l, d5, t12) || (l.push(d5), a++); - else { - let v10 = l; - t12(v10, d5) || (r9.set(h5, [v10, d5]), a++); - } - } else - r9.set(h5, d5), a++; - return this; - }, delete(d5) { - let h5 = e10(d5); - if (!r9.has(h5)) - return false; - let l = r9.get(h5); - if (zt6(l)) { - for (let v10 = 0; v10 < l.length; v10++) - if (t12(l[v10], d5)) - return l.length === 1 ? r9.delete(h5) : l.length === 2 ? r9.set(h5, l[1 - v10]) : cg(l, v10), a--, true; - } else if (t12(l, d5)) - return r9.delete(h5), a--, true; - return false; - }, clear() { - r9.clear(), a = 0; - }, get size() { - return a; - }, forEach(d5) { - for (let h5 of Rd(r9.values())) - if (zt6(h5)) - for (let l of h5) - d5(l, l, p5); - else { - let l = h5; - d5(l, l, p5); - } - }, keys() { - return _10(); - }, values() { - return _10(); - }, *entries() { - for (let d5 of _10()) - yield [d5, d5]; - }, [Symbol.iterator]: () => _10(), [Symbol.toStringTag]: r9[Symbol.toStringTag] }; - return p5; - } - function zt6(e10) { - return Array.isArray(e10); - } - function Pf(e10) { - return zt6(e10) ? e10 : [e10]; - } - function b_(e10) { - return typeof e10 == "string"; - } - function LC(e10) { - return typeof e10 == "number"; - } - function On6(e10, t12) { - return e10 !== void 0 && t12(e10) ? e10 : void 0; - } - function gi7(e10, t12) { - return e10 !== void 0 && t12(e10) ? e10 : N6.fail(`Invalid cast. The supplied value ${e10} did not pass the test '${N6.getFunctionName(t12)}'.`); - } - function Rn5(e10) { - } - function Xf() { - return false; - } - function Iv() { - return true; - } - function JC() { - } - function bt7(e10) { - return e10; - } - function Nv(e10) { - return e10.toLowerCase(); - } - function Ov(e10) { - return iy.test(e10) ? e10.replace(iy, Nv) : e10; - } - function RC() { - throw new Error("Not implemented"); - } - function ry(e10) { - let t12; - return () => (e10 && (t12 = e10(), e10 = void 0), t12); - } - function Nn6(e10) { - let t12 = /* @__PURE__ */ new Map(); - return (r9) => { - let a = `${typeof r9}:${r9}`, _10 = t12.get(a); - return _10 === void 0 && !t12.has(a) && (_10 = e10(r9), t12.set(a, _10)), _10; - }; - } - function jC(e10) { - let t12 = /* @__PURE__ */ new WeakMap(); - return (r9) => { - let a = t12.get(r9); - return a === void 0 && !t12.has(r9) && (a = e10(r9), t12.set(r9, a)), a; - }; - } - function FC(e10, t12) { - return (...r9) => { - let a = t12.get(r9); - return a === void 0 && !t12.has(r9) && (a = e10(...r9), t12.set(r9, a)), a; - }; - } - function BC(e10, t12, r9, a, _10) { - if (_10) { - let p5 = []; - for (let d5 = 0; d5 < arguments.length; d5++) - p5[d5] = arguments[d5]; - return (d5) => Jd(p5, (h5, l) => l(h5), d5); - } else - return a ? (p5) => a(r9(t12(e10(p5)))) : r9 ? (p5) => r9(t12(e10(p5))) : t12 ? (p5) => t12(e10(p5)) : e10 ? (p5) => e10(p5) : (p5) => p5; - } - function _o3(e10, t12) { - return e10 === t12; - } - function s_(e10, t12) { - return e10 === t12 || e10 !== void 0 && t12 !== void 0 && e10.toUpperCase() === t12.toUpperCase(); - } - function Ll3(e10, t12) { - return _o3(e10, t12); - } - function Mv(e10, t12) { - return e10 === t12 ? 0 : e10 === void 0 ? -1 : t12 === void 0 ? 1 : e10 < t12 ? -1 : 1; - } - function kr7(e10, t12) { - return Mv(e10, t12); - } - function UC(e10, t12) { - return kr7(e10 == null ? void 0 : e10.start, t12 == null ? void 0 : t12.start) || kr7(e10 == null ? void 0 : e10.length, t12 == null ? void 0 : t12.length); - } - function qC(e10, t12) { - return Jd(e10, (r9, a) => t12(r9, a) === -1 ? r9 : a); - } - function Fd(e10, t12) { - return e10 === t12 ? 0 : e10 === void 0 ? -1 : t12 === void 0 ? 1 : (e10 = e10.toUpperCase(), t12 = t12.toUpperCase(), e10 < t12 ? -1 : e10 > t12 ? 1 : 0); - } - function zC(e10, t12) { - return e10 === t12 ? 0 : e10 === void 0 ? -1 : t12 === void 0 ? 1 : (e10 = e10.toLowerCase(), t12 = t12.toLowerCase(), e10 < t12 ? -1 : e10 > t12 ? 1 : 0); - } - function Ci7(e10, t12) { - return Mv(e10, t12); - } - function _g(e10) { - return e10 ? Fd : Ci7; - } - function WC() { - return Qf; - } - function Lv(e10) { - Qf !== e10 && (Qf = e10, oy = void 0); - } - function VC(e10, t12) { - return (oy || (oy = Vv(Qf)))(e10, t12); - } - function HC(e10, t12, r9, a) { - return e10 === t12 ? 0 : e10 === void 0 ? -1 : t12 === void 0 ? 1 : a(e10[r9], t12[r9]); - } - function GC(e10, t12) { - return kr7(e10 ? 1 : 0, t12 ? 1 : 0); - } - function Jv(e10, t12, r9) { - let a = Math.max(2, Math.floor(e10.length * 0.34)), _10 = Math.floor(e10.length * 0.4) + 1, p5; - for (let d5 of t12) { - let h5 = r9(d5); - if (h5 !== void 0 && Math.abs(h5.length - e10.length) <= a) { - if (h5 === e10 || h5.length < 3 && h5.toLowerCase() !== e10.toLowerCase()) - continue; - let l = XC(e10, h5, _10 - 0.1); - if (l === void 0) - continue; - N6.assert(l < _10), _10 = l, p5 = d5; - } - } - return p5; - } - function XC(e10, t12, r9) { - let a = new Array(t12.length + 1), _10 = new Array(t12.length + 1), p5 = r9 + 0.01; - for (let h5 = 0; h5 <= t12.length; h5++) - a[h5] = h5; - for (let h5 = 1; h5 <= e10.length; h5++) { - let l = e10.charCodeAt(h5 - 1), v10 = Math.ceil(h5 > r9 ? h5 - r9 : 1), y5 = Math.floor(t12.length > r9 + h5 ? r9 + h5 : t12.length); - _10[0] = h5; - let C10 = h5; - for (let k7 = 1; k7 < v10; k7++) - _10[k7] = p5; - for (let k7 = v10; k7 <= y5; k7++) { - let L7 = e10[h5 - 1].toLowerCase() === t12[k7 - 1].toLowerCase() ? a[k7 - 1] + 0.1 : a[k7 - 1] + 2, G10 = l === t12.charCodeAt(k7 - 1) ? a[k7 - 1] : Math.min(a[k7] + 1, _10[k7 - 1] + 1, L7); - _10[k7] = G10, C10 = Math.min(C10, G10); - } - for (let k7 = y5 + 1; k7 <= t12.length; k7++) - _10[k7] = p5; - if (C10 > r9) - return; - let S10 = a; - a = _10, _10 = S10; - } - let d5 = a[t12.length]; - return d5 > r9 ? void 0 : d5; - } - function ts6(e10, t12) { - let r9 = e10.length - t12.length; - return r9 >= 0 && e10.indexOf(t12, r9) === r9; - } - function $C(e10, t12) { - return ts6(e10, t12) ? e10.slice(0, e10.length - t12.length) : e10; - } - function QC(e10, t12) { - return ts6(e10, t12) ? e10.slice(0, e10.length - t12.length) : void 0; - } - function eo3(e10, t12) { - return e10.indexOf(t12) !== -1; - } - function YC(e10) { - let t12 = e10.length; - for (let r9 = t12 - 1; r9 > 0; r9--) { - let a = e10.charCodeAt(r9); - if (a >= 48 && a <= 57) - do - --r9, a = e10.charCodeAt(r9); - while (r9 > 0 && a >= 48 && a <= 57); - else if (r9 > 4 && (a === 110 || a === 78)) { - if (--r9, a = e10.charCodeAt(r9), a !== 105 && a !== 73 || (--r9, a = e10.charCodeAt(r9), a !== 109 && a !== 77)) - break; - --r9, a = e10.charCodeAt(r9); - } else - break; - if (a !== 45 && a !== 46) - break; - t12 = r9; - } - return t12 === e10.length ? e10 : e10.slice(0, t12); - } - function KC(e10, t12) { - for (let r9 = 0; r9 < e10.length; r9++) - if (e10[r9] === t12) - return Rv(e10, r9), true; - return false; - } - function Rv(e10, t12) { - for (let r9 = t12; r9 < e10.length - 1; r9++) - e10[r9] = e10[r9 + 1]; - e10.pop(); - } - function cg(e10, t12) { - e10[t12] = e10[e10.length - 1], e10.pop(); - } - function jv(e10, t12) { - return ZC(e10, (r9) => r9 === t12); - } - function ZC(e10, t12) { - for (let r9 = 0; r9 < e10.length; r9++) - if (t12(e10[r9])) - return cg(e10, r9), true; - return false; - } - function Bd(e10) { - return e10 ? bt7 : Ov; - } - function eE({ prefix: e10, suffix: t12 }) { - return `${e10}*${t12}`; - } - function tE(e10, t12) { - return N6.assert(lg(e10, t12)), t12.substring(e10.prefix.length, t12.length - e10.suffix.length); - } - function Fv(e10, t12, r9) { - let a, _10 = -1; - for (let p5 of e10) { - let d5 = t12(p5); - lg(d5, r9) && d5.prefix.length > _10 && (_10 = d5.prefix.length, a = p5); - } - return a; - } - function Fr5(e10, t12) { - return e10.lastIndexOf(t12, 0) === 0; - } - function rE(e10, t12) { - return Fr5(e10, t12) ? e10.substr(t12.length) : e10; - } - function Bv(e10, t12, r9 = bt7) { - return Fr5(r9(e10), r9(t12)) ? e10.substring(t12.length) : void 0; - } - function lg({ prefix: e10, suffix: t12 }, r9) { - return r9.length >= e10.length + t12.length && Fr5(r9, e10) && ts6(r9, t12); - } - function nE(e10, t12) { - return (r9) => e10(r9) && t12(r9); - } - function ug(...e10) { - return (...t12) => { - let r9; - for (let a of e10) - if (r9 = a(...t12), r9) - return r9; - return r9; - }; - } - function iE(e10) { - return (...t12) => !e10(...t12); - } - function aE(e10) { - } - function $f(e10) { - return e10 === void 0 ? void 0 : [e10]; - } - function oE(e10, t12, r9, a, _10, p5) { - p5 = p5 || Rn5; - let d5 = 0, h5 = 0, l = e10.length, v10 = t12.length, y5 = false; - for (; d5 < l && h5 < v10; ) { - let C10 = e10[d5], S10 = t12[h5], k7 = r9(C10, S10); - k7 === -1 ? (a(C10), d5++, y5 = true) : k7 === 1 ? (_10(S10), h5++, y5 = true) : (p5(S10, C10), d5++, h5++); - } - for (; d5 < l; ) - a(e10[d5++]), y5 = true; - for (; h5 < v10; ) - _10(t12[h5++]), y5 = true; - return y5; - } - function sE(e10) { - let t12 = []; - return Uv(e10, t12, void 0, 0), t12; - } - function Uv(e10, t12, r9, a) { - for (let _10 of e10[a]) { - let p5; - r9 ? (p5 = r9.slice(), p5.push(_10)) : p5 = [_10], a === e10.length - 1 ? t12.push(p5) : Uv(e10, t12, p5, a + 1); - } - } - function qv(e10, t12, r9 = " ") { - return t12 <= e10.length ? e10 : r9.repeat(t12 - e10.length) + e10; - } - function _E(e10, t12, r9 = " ") { - return t12 <= e10.length ? e10 : e10 + r9.repeat(t12 - e10.length); - } - function cE(e10, t12) { - if (e10) { - let r9 = e10.length, a = 0; - for (; a < r9 && t12(e10[a]); ) - a++; - return e10.slice(0, a); - } - } - function lE(e10, t12) { - if (e10) { - let r9 = e10.length, a = 0; - for (; a < r9 && t12(e10[a]); ) - a++; - return e10.slice(a); - } - } - function uE(e10) { - let t12 = e10.length - 1; - for (; t12 >= 0 && Vi5(e10.charCodeAt(t12)); ) - t12--; - return e10.slice(0, t12 + 1); - } - function pE() { - return false; - } - var $e9, pg, zv, ny, Wv, Jn5, iy, ay, Vv, oy, Qf, Ud, n_, gl3, fE = Vt4({ "src/compiler/core.ts"() { - "use strict"; - Dr5(), $e9 = [], pg = /* @__PURE__ */ new Map(), zv = /* @__PURE__ */ new Set(), ny = ((e10) => (e10[e10.None = 0] = "None", e10[e10.CaseSensitive = 1] = "CaseSensitive", e10[e10.CaseInsensitive = 2] = "CaseInsensitive", e10[e10.Both = 3] = "Both", e10))(ny || {}), Wv = Array.prototype.at ? (e10, t12) => e10 == null ? void 0 : e10.at(t12) : (e10, t12) => { - if (e10 && (t12 = ty(e10, t12), t12 < e10.length)) - return e10[t12]; - }, Jn5 = Object.prototype.hasOwnProperty, iy = /[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g, ay = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Normal = 1] = "Normal", e10[e10.Aggressive = 2] = "Aggressive", e10[e10.VeryAggressive = 3] = "VeryAggressive", e10))(ay || {}), Vv = (() => { - let e10, t12, r9 = h5(); - return l; - function a(v10, y5, C10) { - if (v10 === y5) - return 0; - if (v10 === void 0) - return -1; - if (y5 === void 0) - return 1; - let S10 = C10(v10, y5); - return S10 < 0 ? -1 : S10 > 0 ? 1 : 0; - } - function _10(v10) { - let y5 = new Intl.Collator(v10, { usage: "sort", sensitivity: "variant" }).compare; - return (C10, S10) => a(C10, S10, y5); - } - function p5(v10) { - if (v10 !== void 0) - return d5(); - return (C10, S10) => a(C10, S10, y5); - function y5(C10, S10) { - return C10.localeCompare(S10); - } - } - function d5() { - return (C10, S10) => a(C10, S10, v10); - function v10(C10, S10) { - return y5(C10.toUpperCase(), S10.toUpperCase()) || y5(C10, S10); - } - function y5(C10, S10) { - return C10 < S10 ? -1 : C10 > S10 ? 1 : 0; - } - } - function h5() { - return typeof Intl == "object" && typeof Intl.Collator == "function" ? _10 : typeof String.prototype.localeCompare == "function" && typeof String.prototype.toLocaleUpperCase == "function" && "a".localeCompare("B") < 0 ? p5 : d5; - } - function l(v10) { - return v10 === void 0 ? e10 || (e10 = r9(v10)) : v10 === "en-US" ? t12 || (t12 = r9(v10)) : r9(v10); - } - })(), Ud = String.prototype.trim ? (e10) => e10.trim() : (e10) => n_(gl3(e10)), n_ = String.prototype.trimEnd ? (e10) => e10.trimEnd() : uE, gl3 = String.prototype.trimStart ? (e10) => e10.trimStart() : (e10) => e10.replace(/^\s+/g, ""); - } }), sy, N6, Hv = Vt4({ "src/compiler/debug.ts"() { - "use strict"; - Dr5(), Dr5(), sy = ((e10) => (e10[e10.Off = 0] = "Off", e10[e10.Error = 1] = "Error", e10[e10.Warning = 2] = "Warning", e10[e10.Info = 3] = "Info", e10[e10.Verbose = 4] = "Verbose", e10))(sy || {}), ((e10) => { - let t12 = 0; - e10.currentLogLevel = 2, e10.isDebugging = false; - function r9(q9) { - return e10.currentLogLevel <= q9; - } - e10.shouldLog = r9; - function a(q9, oe8) { - e10.loggingHost && r9(q9) && e10.loggingHost.log(q9, oe8); - } - function _10(q9) { - a(3, q9); - } - e10.log = _10, ((q9) => { - function oe8(z9) { - a(1, z9); - } - q9.error = oe8; - function ge6(z9) { - a(2, z9); - } - q9.warn = ge6; - function Se9(z9) { - a(3, z9); - } - q9.log = Se9; - function nt7(z9) { - a(4, z9); - } - q9.trace = nt7; - })(_10 = e10.log || (e10.log = {})); - let p5 = {}; - function d5() { - return t12; - } - e10.getAssertionLevel = d5; - function h5(q9) { - let oe8 = t12; - if (t12 = q9, q9 > oe8) - for (let ge6 of sg(p5)) { - let Se9 = p5[ge6]; - Se9 !== void 0 && e10[ge6] !== Se9.assertion && q9 >= Se9.level && (e10[ge6] = Se9, p5[ge6] = void 0); - } - } - e10.setAssertionLevel = h5; - function l(q9) { - return t12 >= q9; - } - e10.shouldAssert = l; - function v10(q9, oe8) { - return l(q9) ? true : (p5[oe8] = { level: q9, assertion: e10[oe8] }, e10[oe8] = Rn5, false); - } - function y5(q9, oe8) { - debugger; - let ge6 = new Error(q9 ? `Debug Failure. ${q9}` : "Debug Failure."); - throw Error.captureStackTrace && Error.captureStackTrace(ge6, oe8 || y5), ge6; - } - e10.fail = y5; - function C10(q9, oe8, ge6) { - return y5(`${oe8 || "Unexpected node."}\r -Node ${Xt5(q9.kind)} was unexpected.`, ge6 || C10); - } - e10.failBadSyntaxKind = C10; - function S10(q9, oe8, ge6, Se9) { - q9 || (oe8 = oe8 ? `False expression: ${oe8}` : "False expression.", ge6 && (oe8 += `\r -Verbose Debug Information: ` + (typeof ge6 == "string" ? ge6 : ge6())), y5(oe8, Se9 || S10)); - } - e10.assert = S10; - function k7(q9, oe8, ge6, Se9, nt7) { - if (q9 !== oe8) { - let z9 = ge6 ? Se9 ? `${ge6} ${Se9}` : ge6 : ""; - y5(`Expected ${q9} === ${oe8}. ${z9}`, nt7 || k7); - } - } - e10.assertEqual = k7; - function L7(q9, oe8, ge6, Se9) { - q9 >= oe8 && y5(`Expected ${q9} < ${oe8}. ${ge6 || ""}`, Se9 || L7); - } - e10.assertLessThan = L7; - function G10(q9, oe8, ge6) { - q9 > oe8 && y5(`Expected ${q9} <= ${oe8}`, ge6 || G10); - } - e10.assertLessThanOrEqual = G10; - function K7(q9, oe8, ge6) { - q9 < oe8 && y5(`Expected ${q9} >= ${oe8}`, ge6 || K7); - } - e10.assertGreaterThanOrEqual = K7; - function ue7(q9, oe8, ge6) { - q9 == null && y5(oe8, ge6 || ue7); - } - e10.assertIsDefined = ue7; - function Y10(q9, oe8, ge6) { - return ue7(q9, oe8, ge6 || Y10), q9; - } - e10.checkDefined = Y10; - function B9(q9, oe8, ge6) { - for (let Se9 of q9) - ue7(Se9, oe8, ge6 || B9); - } - e10.assertEachIsDefined = B9; - function ae8(q9, oe8, ge6) { - return B9(q9, oe8, ge6 || ae8), q9; - } - e10.checkEachDefined = ae8; - function Ce10(q9, oe8 = "Illegal value:", ge6) { - let Se9 = typeof q9 == "object" && Qr6(q9, "kind") && Qr6(q9, "pos") ? "SyntaxKind: " + Xt5(q9.kind) : JSON.stringify(q9); - return y5(`${oe8} ${Se9}`, ge6 || Ce10); - } - e10.assertNever = Ce10; - function Ze11(q9, oe8, ge6, Se9) { - v10(1, "assertEachNode") && S10(oe8 === void 0 || so3(q9, oe8), ge6 || "Unexpected node.", () => `Node array did not pass test '${or7(oe8)}'.`, Se9 || Ze11); - } - e10.assertEachNode = Ze11; - function qe8(q9, oe8, ge6, Se9) { - v10(1, "assertNode") && S10(q9 !== void 0 && (oe8 === void 0 || oe8(q9)), ge6 || "Unexpected node.", () => `Node ${Xt5(q9 == null ? void 0 : q9.kind)} did not pass test '${or7(oe8)}'.`, Se9 || qe8); - } - e10.assertNode = qe8; - function rt8(q9, oe8, ge6, Se9) { - v10(1, "assertNotNode") && S10(q9 === void 0 || oe8 === void 0 || !oe8(q9), ge6 || "Unexpected node.", () => `Node ${Xt5(q9.kind)} should not have passed test '${or7(oe8)}'.`, Se9 || rt8); - } - e10.assertNotNode = rt8; - function it6(q9, oe8, ge6, Se9) { - v10(1, "assertOptionalNode") && S10(oe8 === void 0 || q9 === void 0 || oe8(q9), ge6 || "Unexpected node.", () => `Node ${Xt5(q9 == null ? void 0 : q9.kind)} did not pass test '${or7(oe8)}'.`, Se9 || it6); - } - e10.assertOptionalNode = it6; - function Ir7(q9, oe8, ge6, Se9) { - v10(1, "assertOptionalToken") && S10(oe8 === void 0 || q9 === void 0 || q9.kind === oe8, ge6 || "Unexpected node.", () => `Node ${Xt5(q9 == null ? void 0 : q9.kind)} was not a '${Xt5(oe8)}' token.`, Se9 || Ir7); - } - e10.assertOptionalToken = Ir7; - function ar6(q9, oe8, ge6) { - v10(1, "assertMissingNode") && S10(q9 === void 0, oe8 || "Unexpected node.", () => `Node ${Xt5(q9.kind)} was unexpected'.`, ge6 || ar6); - } - e10.assertMissingNode = ar6; - function ci6(q9) { - } - e10.type = ci6; - function or7(q9) { - if (typeof q9 != "function") - return ""; - if (Qr6(q9, "name")) - return q9.name; - { - let oe8 = Function.prototype.toString.call(q9), ge6 = /^function\s+([\w$]+)\s*\(/.exec(oe8); - return ge6 ? ge6[1] : ""; - } - } - e10.getFunctionName = or7; - function Nr7(q9) { - return `{ name: ${Vo3(q9.escapedName)}; flags: ${Tr6(q9.flags)}; declarations: ${Aa4(q9.declarations, (oe8) => Xt5(oe8.kind))} }`; - } - e10.formatSymbol = Nr7; - function Ge9(q9 = 0, oe8, ge6) { - let Se9 = Ur5(oe8); - if (q9 === 0) - return Se9.length > 0 && Se9[0][0] === 0 ? Se9[0][1] : "0"; - if (ge6) { - let nt7 = [], z9 = q9; - for (let [X10, ee10] of Se9) { - if (X10 > q9) - break; - X10 !== 0 && X10 & q9 && (nt7.push(ee10), z9 &= ~X10); - } - if (z9 === 0) - return nt7.join("|"); - } else - for (let [nt7, z9] of Se9) - if (nt7 === q9) - return z9; - return q9.toString(); - } - e10.formatEnum = Ge9; - let Gt5 = /* @__PURE__ */ new Map(); - function Ur5(q9) { - let oe8 = Gt5.get(q9); - if (oe8) - return oe8; - let ge6 = []; - for (let nt7 in q9) { - let z9 = q9[nt7]; - typeof z9 == "number" && ge6.push([z9, nt7]); - } - let Se9 = Av(ge6, (nt7, z9) => kr7(nt7[0], z9[0])); - return Gt5.set(q9, Se9), Se9; - } - function Xt5(q9) { - return Ge9(q9, ed, false); - } - e10.formatSyntaxKind = Xt5; - function Tn3(q9) { - return Ge9(q9, pd, false); - } - e10.formatSnippetKind = Tn3; - function Sn6(q9) { - return Ge9(q9, ld2, false); - } - e10.formatScriptKind = Sn6; - function sr7(q9) { - return Ge9(q9, td, true); - } - e10.formatNodeFlags = sr7; - function $t8(q9) { - return Ge9(q9, rd, true); - } - e10.formatModifierFlags = $t8; - function St8(q9) { - return Ge9(q9, ud2, true); - } - e10.formatTransformFlags = St8; - function xn4(q9) { - return Ge9(q9, fd, true); - } - e10.formatEmitFlags = xn4; - function Tr6(q9) { - return Ge9(q9, ad2, true); - } - e10.formatSymbolFlags = Tr6; - function vt9(q9) { - return Ge9(q9, od2, true); - } - e10.formatTypeFlags = vt9; - function ct7(q9) { - return Ge9(q9, _d, true); - } - e10.formatSignatureFlags = ct7; - function Ut5(q9) { - return Ge9(q9, sd, true); - } - e10.formatObjectFlags = Ut5; - function fr6(q9) { - return Ge9(q9, bl2, true); - } - e10.formatFlowFlags = fr6; - function ht4(q9) { - return Ge9(q9, nd, true); - } - e10.formatRelationComparisonResult = ht4; - function wn5(q9) { - return Ge9(q9, CheckMode, true); - } - e10.formatCheckMode = wn5; - function Tt6(q9) { - return Ge9(q9, SignatureCheckMode, true); - } - e10.formatSignatureCheckMode = Tt6; - function Or5(q9) { - return Ge9(q9, TypeFacts, true); - } - e10.formatTypeFacts = Or5; - let pt5 = false, Mr4; - function at7(q9) { - "__debugFlowFlags" in q9 || Object.defineProperties(q9, { __tsDebuggerDisplay: { value() { - let oe8 = this.flags & 2 ? "FlowStart" : this.flags & 4 ? "FlowBranchLabel" : this.flags & 8 ? "FlowLoopLabel" : this.flags & 16 ? "FlowAssignment" : this.flags & 32 ? "FlowTrueCondition" : this.flags & 64 ? "FlowFalseCondition" : this.flags & 128 ? "FlowSwitchClause" : this.flags & 256 ? "FlowArrayMutation" : this.flags & 512 ? "FlowCall" : this.flags & 1024 ? "FlowReduceLabel" : this.flags & 1 ? "FlowUnreachable" : "UnknownFlow", ge6 = this.flags & ~(2048 - 1); - return `${oe8}${ge6 ? ` (${fr6(ge6)})` : ""}`; - } }, __debugFlowFlags: { get() { - return Ge9(this.flags, bl2, true); - } }, __debugToString: { value() { - return Ae7(this); - } } }); - } - function er8(q9) { - pt5 && (typeof Object.setPrototypeOf == "function" ? (Mr4 || (Mr4 = Object.create(Object.prototype), at7(Mr4)), Object.setPrototypeOf(q9, Mr4)) : at7(q9)); - } - e10.attachFlowNodeDebugInfo = er8; - let Qt5; - function tn7(q9) { - "__tsDebuggerDisplay" in q9 || Object.defineProperties(q9, { __tsDebuggerDisplay: { value(oe8) { - return oe8 = String(oe8).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/, "]"), `NodeArray ${oe8}`; - } } }); - } - function Bn4(q9) { - pt5 && (typeof Object.setPrototypeOf == "function" ? (Qt5 || (Qt5 = Object.create(Array.prototype), tn7(Qt5)), Object.setPrototypeOf(q9, Qt5)) : tn7(q9)); - } - e10.attachNodeArrayDebugInfo = Bn4; - function Un5() { - if (pt5) - return; - let q9 = /* @__PURE__ */ new WeakMap(), oe8 = /* @__PURE__ */ new WeakMap(); - Object.defineProperties(wt7.getSymbolConstructor().prototype, { __tsDebuggerDisplay: { value() { - let Se9 = this.flags & 33554432 ? "TransientSymbol" : "Symbol", nt7 = this.flags & -33554433; - return `${Se9} '${md(this)}'${nt7 ? ` (${Tr6(nt7)})` : ""}`; - } }, __debugFlags: { get() { - return Tr6(this.flags); - } } }), Object.defineProperties(wt7.getTypeConstructor().prototype, { __tsDebuggerDisplay: { value() { - let Se9 = this.flags & 98304 ? "NullableType" : this.flags & 384 ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 2048 ? `LiteralType ${this.value.negative ? "-" : ""}${this.value.base10Value}n` : this.flags & 8192 ? "UniqueESSymbolType" : this.flags & 32 ? "EnumType" : this.flags & 67359327 ? `IntrinsicType ${this.intrinsicName}` : this.flags & 1048576 ? "UnionType" : this.flags & 2097152 ? "IntersectionType" : this.flags & 4194304 ? "IndexType" : this.flags & 8388608 ? "IndexedAccessType" : this.flags & 16777216 ? "ConditionalType" : this.flags & 33554432 ? "SubstitutionType" : this.flags & 262144 ? "TypeParameter" : this.flags & 524288 ? this.objectFlags & 3 ? "InterfaceType" : this.objectFlags & 4 ? "TypeReference" : this.objectFlags & 8 ? "TupleType" : this.objectFlags & 16 ? "AnonymousType" : this.objectFlags & 32 ? "MappedType" : this.objectFlags & 1024 ? "ReverseMappedType" : this.objectFlags & 256 ? "EvolvingArrayType" : "ObjectType" : "Type", nt7 = this.flags & 524288 ? this.objectFlags & -1344 : 0; - return `${Se9}${this.symbol ? ` '${md(this.symbol)}'` : ""}${nt7 ? ` (${Ut5(nt7)})` : ""}`; - } }, __debugFlags: { get() { - return vt9(this.flags); - } }, __debugObjectFlags: { get() { - return this.flags & 524288 ? Ut5(this.objectFlags) : ""; - } }, __debugTypeToString: { value() { - let Se9 = q9.get(this); - return Se9 === void 0 && (Se9 = this.checker.typeToString(this), q9.set(this, Se9)), Se9; - } } }), Object.defineProperties(wt7.getSignatureConstructor().prototype, { __debugFlags: { get() { - return ct7(this.flags); - } }, __debugSignatureToString: { value() { - var Se9; - return (Se9 = this.checker) == null ? void 0 : Se9.signatureToString(this); - } } }); - let ge6 = [wt7.getNodeConstructor(), wt7.getIdentifierConstructor(), wt7.getTokenConstructor(), wt7.getSourceFileConstructor()]; - for (let Se9 of ge6) - Qr6(Se9.prototype, "__debugKind") || Object.defineProperties(Se9.prototype, { __tsDebuggerDisplay: { value() { - return `${wa2(this) ? "GeneratedIdentifier" : Ee6(this) ? `Identifier '${Ot10(this)}'` : jr6(this) ? `PrivateIdentifier '${Ot10(this)}'` : mn6(this) ? `StringLiteral ${JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + "...")}` : lo3(this) ? `NumericLiteral ${this.text}` : o6(this) ? `BigIntLiteral ${this.text}n` : No3(this) ? "TypeParameterDeclaration" : Ma3(this) ? "ParameterDeclaration" : J_(this) ? "ConstructorDeclaration" : m_(this) ? "GetAccessorDeclaration" : Qo3(this) ? "SetAccessorDeclaration" : c6(this) ? "CallSignatureDeclaration" : Hx(this) ? "ConstructSignatureDeclaration" : l6(this) ? "IndexSignatureDeclaration" : Gx(this) ? "TypePredicateNode" : R_(this) ? "TypeReferenceNode" : tu4(this) ? "FunctionTypeNode" : u6(this) ? "ConstructorTypeNode" : Xx(this) ? "TypeQueryNode" : Em(this) ? "TypeLiteralNode" : $x(this) ? "ArrayTypeNode" : Qx(this) ? "TupleTypeNode" : Yx(this) ? "OptionalTypeNode" : Kx(this) ? "RestTypeNode" : Zx(this) ? "UnionTypeNode" : e8(this) ? "IntersectionTypeNode" : t82(this) ? "ConditionalTypeNode" : r8(this) ? "InferTypeNode" : f6(this) ? "ParenthesizedTypeNode" : d6(this) ? "ThisTypeNode" : n8(this) ? "TypeOperatorNode" : i8(this) ? "IndexedAccessTypeNode" : a8(this) ? "MappedTypeNode" : m6(this) ? "LiteralTypeNode" : p6(this) ? "NamedTupleMember" : ru5(this) ? "ImportTypeNode" : Xt5(this.kind)}${this.flags ? ` (${sr7(this.flags)})` : ""}`; - } }, __debugKind: { get() { - return Xt5(this.kind); - } }, __debugNodeFlags: { get() { - return sr7(this.flags); - } }, __debugModifierFlags: { get() { - return $t8(uS(this)); - } }, __debugTransformFlags: { get() { - return St8(this.transformFlags); - } }, __debugIsParseTreeNode: { get() { - return Tl3(this); - } }, __debugEmitFlags: { get() { - return xn4(ti7(this)); - } }, __debugGetText: { value(nt7) { - if (Ta2(this)) - return ""; - let z9 = oe8.get(this); - if (z9 === void 0) { - let X10 = Fl3(this), ee10 = X10 && ri7(X10); - z9 = ee10 ? Xo2(ee10, X10, nt7) : "", oe8.set(this, z9); - } - return z9; - } } }); - pt5 = true; - } - e10.enableDebugInfo = Un5; - function rn7(q9) { - let oe8 = q9 & 7, ge6 = oe8 === 0 ? "in out" : oe8 === 3 ? "[bivariant]" : oe8 === 2 ? "in" : oe8 === 1 ? "out" : oe8 === 4 ? "[independent]" : ""; - return q9 & 8 ? ge6 += " (unmeasurable)" : q9 & 16 && (ge6 += " (unreliable)"), ge6; - } - e10.formatVariance = rn7; - class nn7 { - __debugToString() { - var oe8; - switch (this.kind) { - case 3: - return ((oe8 = this.debugInfo) == null ? void 0 : oe8.call(this)) || "(function mapper)"; - case 0: - return `${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`; - case 1: - return ey(this.sources, this.targets || Aa4(this.sources, () => "any"), (ge6, Se9) => `${ge6.__debugTypeToString()} -> ${typeof Se9 == "string" ? Se9 : Se9.__debugTypeToString()}`).join(", "); - case 2: - return ey(this.sources, this.targets, (ge6, Se9) => `${ge6.__debugTypeToString()} -> ${Se9().__debugTypeToString()}`).join(", "); - case 5: - case 4: - return `m1: ${this.mapper1.__debugToString().split(` -`).join(` - `)} -m2: ${this.mapper2.__debugToString().split(` -`).join(` - `)}`; - default: - return Ce10(this); - } - } - } - e10.DebugTypeMapper = nn7; - function Di7(q9) { - return e10.isDebugging ? Object.setPrototypeOf(q9, nn7.prototype) : q9; - } - e10.attachDebugPrototypeIfDebug = Di7; - function qn5(q9) { - return console.log(Ae7(q9)); - } - e10.printControlFlowGraph = qn5; - function Ae7(q9) { - let oe8 = -1; - function ge6(x9) { - return x9.id || (x9.id = oe8, oe8--), x9.id; - } - let Se9; - ((x9) => { - x9.lr = "\u2500", x9.ud = "\u2502", x9.dr = "\u256D", x9.dl = "\u256E", x9.ul = "\u256F", x9.ur = "\u2570", x9.udr = "\u251C", x9.udl = "\u2524", x9.dlr = "\u252C", x9.ulr = "\u2534", x9.udlr = "\u256B"; - })(Se9 || (Se9 = {})); - let nt7; - ((x9) => { - x9[x9.None = 0] = "None", x9[x9.Up = 1] = "Up", x9[x9.Down = 2] = "Down", x9[x9.Left = 4] = "Left", x9[x9.Right = 8] = "Right", x9[x9.UpDown = 3] = "UpDown", x9[x9.LeftRight = 12] = "LeftRight", x9[x9.UpLeft = 5] = "UpLeft", x9[x9.UpRight = 9] = "UpRight", x9[x9.DownLeft = 6] = "DownLeft", x9[x9.DownRight = 10] = "DownRight", x9[x9.UpDownLeft = 7] = "UpDownLeft", x9[x9.UpDownRight = 11] = "UpDownRight", x9[x9.UpLeftRight = 13] = "UpLeftRight", x9[x9.DownLeftRight = 14] = "DownLeftRight", x9[x9.UpDownLeftRight = 15] = "UpDownLeftRight", x9[x9.NoChildren = 16] = "NoChildren"; - })(nt7 || (nt7 = {})); - let z9 = 2032, X10 = 882, ee10 = /* @__PURE__ */ Object.create(null), xe9 = [], ke9 = [], Le7 = ia5(q9, /* @__PURE__ */ new Set()); - for (let x9 of xe9) - x9.text = oa5(x9.flowNode, x9.circular), En6(x9); - let lt5 = Ii6(Le7), yt7 = aa4(lt5); - return Vn5(Le7, 0), Mt8(); - function jt5(x9) { - return !!(x9.flags & 128); - } - function qr7(x9) { - return !!(x9.flags & 12) && !!x9.antecedents; - } - function na4(x9) { - return !!(x9.flags & z9); - } - function Cn4(x9) { - return !!(x9.flags & X10); - } - function zn4(x9) { - let f5 = []; - for (let $10 of x9.edges) - $10.source === x9 && f5.push($10.target); - return f5; - } - function Pi7(x9) { - let f5 = []; - for (let $10 of x9.edges) - $10.target === x9 && f5.push($10.source); - return f5; - } - function ia5(x9, f5) { - let $10 = ge6(x9), Q7 = ee10[$10]; - if (Q7 && f5.has(x9)) - return Q7.circular = true, Q7 = { id: -1, flowNode: x9, edges: [], text: "", lane: -1, endLane: -1, level: -1, circular: "circularity" }, xe9.push(Q7), Q7; - if (f5.add(x9), !Q7) - if (ee10[$10] = Q7 = { id: $10, flowNode: x9, edges: [], text: "", lane: -1, endLane: -1, level: -1, circular: false }, xe9.push(Q7), qr7(x9)) - for (let O7 of x9.antecedents) - Wn4(Q7, O7, f5); - else - na4(x9) && Wn4(Q7, x9.antecedent, f5); - return f5.delete(x9), Q7; - } - function Wn4(x9, f5, $10) { - let Q7 = ia5(f5, $10), O7 = { source: x9, target: Q7 }; - ke9.push(O7), x9.edges.push(O7), Q7.edges.push(O7); - } - function En6(x9) { - if (x9.level !== -1) - return x9.level; - let f5 = 0; - for (let $10 of Pi7(x9)) - f5 = Math.max(f5, En6($10) + 1); - return x9.level = f5; - } - function Ii6(x9) { - let f5 = 0; - for (let $10 of zn4(x9)) - f5 = Math.max(f5, Ii6($10)); - return f5 + 1; - } - function aa4(x9) { - let f5 = j10(Array(x9), 0); - for (let $10 of xe9) - f5[$10.level] = Math.max(f5[$10.level], $10.text.length); - return f5; - } - function Vn5(x9, f5) { - if (x9.lane === -1) { - x9.lane = f5, x9.endLane = f5; - let $10 = zn4(x9); - for (let Q7 = 0; Q7 < $10.length; Q7++) { - Q7 > 0 && f5++; - let O7 = $10[Q7]; - Vn5(O7, f5), O7.endLane > x9.endLane && (f5 = O7.endLane); - } - x9.endLane = f5; - } - } - function Sr7(x9) { - if (x9 & 2) - return "Start"; - if (x9 & 4) - return "Branch"; - if (x9 & 8) - return "Loop"; - if (x9 & 16) - return "Assignment"; - if (x9 & 32) - return "True"; - if (x9 & 64) - return "False"; - if (x9 & 128) - return "SwitchClause"; - if (x9 & 256) - return "ArrayMutation"; - if (x9 & 512) - return "Call"; - if (x9 & 1024) - return "ReduceLabel"; - if (x9 & 1) - return "Unreachable"; - throw new Error(); - } - function Je10(x9) { - let f5 = ri7(x9); - return Xo2(f5, x9, false); - } - function oa5(x9, f5) { - let $10 = Sr7(x9.flags); - if (f5 && ($10 = `${$10}#${ge6(x9)}`), Cn4(x9)) - x9.node && ($10 += ` (${Je10(x9.node)})`); - else if (jt5(x9)) { - let Q7 = []; - for (let O7 = x9.clauseStart; O7 < x9.clauseEnd; O7++) { - let fe8 = x9.switchStatement.caseBlock.clauses[O7]; - h8(fe8) ? Q7.push("default") : Q7.push(Je10(fe8.expression)); - } - $10 += ` (${Q7.join(", ")})`; - } - return f5 === "circularity" ? `Circular(${$10})` : $10; - } - function Mt8() { - let x9 = yt7.length, f5 = xe9.reduce((be11, he9) => Math.max(be11, he9.lane), 0) + 1, $10 = j10(Array(f5), ""), Q7 = yt7.map(() => Array(f5)), O7 = yt7.map(() => j10(Array(f5), 0)); - for (let be11 of xe9) { - Q7[be11.level][be11.lane] = be11; - let he9 = zn4(be11); - for (let we9 = 0; we9 < he9.length; we9++) { - let et9 = he9[we9], Ye7 = 8; - et9.lane === be11.lane && (Ye7 |= 4), we9 > 0 && (Ye7 |= 1), we9 < he9.length - 1 && (Ye7 |= 2), O7[be11.level][et9.lane] |= Ye7; - } - he9.length === 0 && (O7[be11.level][be11.lane] |= 16); - let Re10 = Pi7(be11); - for (let we9 = 0; we9 < Re10.length; we9++) { - let et9 = Re10[we9], Ye7 = 4; - we9 > 0 && (Ye7 |= 1), we9 < Re10.length - 1 && (Ye7 |= 2), O7[be11.level - 1][et9.lane] |= Ye7; - } - } - for (let be11 = 0; be11 < x9; be11++) - for (let he9 = 0; he9 < f5; he9++) { - let Re10 = be11 > 0 ? O7[be11 - 1][he9] : 0, we9 = he9 > 0 ? O7[be11][he9 - 1] : 0, et9 = O7[be11][he9]; - et9 || (Re10 & 8 && (et9 |= 12), we9 & 2 && (et9 |= 3), O7[be11][he9] = et9); - } - for (let be11 = 0; be11 < x9; be11++) - for (let he9 = 0; he9 < $10.length; he9++) { - let Re10 = O7[be11][he9], we9 = Re10 & 4 ? "\u2500" : " ", et9 = Q7[be11][he9]; - et9 ? (fe8(he9, et9.text), be11 < x9 - 1 && (fe8(he9, " "), fe8(he9, T5(we9, yt7[be11] - et9.text.length)))) : be11 < x9 - 1 && fe8(he9, T5(we9, yt7[be11] + 1)), fe8(he9, Lr7(Re10)), fe8(he9, Re10 & 8 && be11 < x9 - 1 && !Q7[be11 + 1][he9] ? "\u2500" : " "); - } - return ` -${$10.join(` -`)} -`; - function fe8(be11, he9) { - $10[be11] += he9; - } - } - function Lr7(x9) { - switch (x9) { - case 3: - return "\u2502"; - case 12: - return "\u2500"; - case 5: - return "\u256F"; - case 9: - return "\u2570"; - case 6: - return "\u256E"; - case 10: - return "\u256D"; - case 7: - return "\u2524"; - case 11: - return "\u251C"; - case 13: - return "\u2534"; - case 14: - return "\u252C"; - case 15: - return "\u256B"; - } - return " "; - } - function j10(x9, f5) { - if (x9.fill) - x9.fill(f5); - else - for (let $10 = 0; $10 < x9.length; $10++) - x9[$10] = f5; - return x9; - } - function T5(x9, f5) { - if (x9.repeat) - return f5 > 0 ? x9.repeat(f5) : ""; - let $10 = ""; - for (; $10.length < f5; ) - $10 += x9; - return $10; - } - } - e10.formatControlFlowGraph = Ae7; - })(N6 || (N6 = {})); - } }), dE = () => { - }, mE = () => { - }, hE = () => { - }, Sa4 = Date.now, yE = () => { - }, Yf = new Proxy(() => { - }, { get: () => Yf }); - function Lb(e10) { - if (fg) { - let t12 = _y.get(e10) ?? 0; - _y.set(e10, t12 + 1), Zf.set(e10, Sa4()), Kf == null || Kf.mark(e10), typeof onProfilerEvent == "function" && onProfilerEvent(e10); - } - } - function gE(e10, t12, r9) { - if (fg) { - let a = (r9 !== void 0 ? Zf.get(r9) : void 0) ?? Sa4(), _10 = (t12 !== void 0 ? Zf.get(t12) : void 0) ?? Gv, p5 = cy.get(e10) || 0; - cy.set(e10, p5 + (a - _10)), Kf == null || Kf.measure(e10, t12, r9); - } - } - var Kf, bE, fg, Gv, Zf, _y, cy, XV = Vt4({ "src/compiler/performance.ts"() { - "use strict"; - Dr5(), bE = { enter: Rn5, exit: Rn5 }, fg = false, Gv = Sa4(), Zf = /* @__PURE__ */ new Map(), _y = /* @__PURE__ */ new Map(), cy = /* @__PURE__ */ new Map(); - } }), Xv = () => { - }, vE = () => { - }, xa2; - function TE(e10, t12 = true) { - let r9 = cd[e10.category]; - return t12 ? r9.toLowerCase() : r9; - } - var ed, td, rd, ly, nd, uy, py, bl2, fy, id2, dy, my, hy, yy, gy, by, vy, Ty, Sy, xy, wy, Cy, Ey, Ay, ky, ad2, Dy, Py, Iy, Ny, od2, sd, Oy, My, Ly, Jy, Ry, jy, _d, Fy, By, Uy, qy, zy, Wy, cd, Vy, Hy, Gy, Xy, $y, Qy, Yy, Ky, Zy, ld2, e02, t02, r0, n02, i02, ud2, pd, fd, a02, o02, s02, _0, c02, l02, u02, p0, qd, $v = Vt4({ "src/compiler/types.ts"() { - "use strict"; - ed = ((e10) => (e10[e10.Unknown = 0] = "Unknown", e10[e10.EndOfFileToken = 1] = "EndOfFileToken", e10[e10.SingleLineCommentTrivia = 2] = "SingleLineCommentTrivia", e10[e10.MultiLineCommentTrivia = 3] = "MultiLineCommentTrivia", e10[e10.NewLineTrivia = 4] = "NewLineTrivia", e10[e10.WhitespaceTrivia = 5] = "WhitespaceTrivia", e10[e10.ShebangTrivia = 6] = "ShebangTrivia", e10[e10.ConflictMarkerTrivia = 7] = "ConflictMarkerTrivia", e10[e10.NonTextFileMarkerTrivia = 8] = "NonTextFileMarkerTrivia", e10[e10.NumericLiteral = 9] = "NumericLiteral", e10[e10.BigIntLiteral = 10] = "BigIntLiteral", e10[e10.StringLiteral = 11] = "StringLiteral", e10[e10.JsxText = 12] = "JsxText", e10[e10.JsxTextAllWhiteSpaces = 13] = "JsxTextAllWhiteSpaces", e10[e10.RegularExpressionLiteral = 14] = "RegularExpressionLiteral", e10[e10.NoSubstitutionTemplateLiteral = 15] = "NoSubstitutionTemplateLiteral", e10[e10.TemplateHead = 16] = "TemplateHead", e10[e10.TemplateMiddle = 17] = "TemplateMiddle", e10[e10.TemplateTail = 18] = "TemplateTail", e10[e10.OpenBraceToken = 19] = "OpenBraceToken", e10[e10.CloseBraceToken = 20] = "CloseBraceToken", e10[e10.OpenParenToken = 21] = "OpenParenToken", e10[e10.CloseParenToken = 22] = "CloseParenToken", e10[e10.OpenBracketToken = 23] = "OpenBracketToken", e10[e10.CloseBracketToken = 24] = "CloseBracketToken", e10[e10.DotToken = 25] = "DotToken", e10[e10.DotDotDotToken = 26] = "DotDotDotToken", e10[e10.SemicolonToken = 27] = "SemicolonToken", e10[e10.CommaToken = 28] = "CommaToken", e10[e10.QuestionDotToken = 29] = "QuestionDotToken", e10[e10.LessThanToken = 30] = "LessThanToken", e10[e10.LessThanSlashToken = 31] = "LessThanSlashToken", e10[e10.GreaterThanToken = 32] = "GreaterThanToken", e10[e10.LessThanEqualsToken = 33] = "LessThanEqualsToken", e10[e10.GreaterThanEqualsToken = 34] = "GreaterThanEqualsToken", e10[e10.EqualsEqualsToken = 35] = "EqualsEqualsToken", e10[e10.ExclamationEqualsToken = 36] = "ExclamationEqualsToken", e10[e10.EqualsEqualsEqualsToken = 37] = "EqualsEqualsEqualsToken", e10[e10.ExclamationEqualsEqualsToken = 38] = "ExclamationEqualsEqualsToken", e10[e10.EqualsGreaterThanToken = 39] = "EqualsGreaterThanToken", e10[e10.PlusToken = 40] = "PlusToken", e10[e10.MinusToken = 41] = "MinusToken", e10[e10.AsteriskToken = 42] = "AsteriskToken", e10[e10.AsteriskAsteriskToken = 43] = "AsteriskAsteriskToken", e10[e10.SlashToken = 44] = "SlashToken", e10[e10.PercentToken = 45] = "PercentToken", e10[e10.PlusPlusToken = 46] = "PlusPlusToken", e10[e10.MinusMinusToken = 47] = "MinusMinusToken", e10[e10.LessThanLessThanToken = 48] = "LessThanLessThanToken", e10[e10.GreaterThanGreaterThanToken = 49] = "GreaterThanGreaterThanToken", e10[e10.GreaterThanGreaterThanGreaterThanToken = 50] = "GreaterThanGreaterThanGreaterThanToken", e10[e10.AmpersandToken = 51] = "AmpersandToken", e10[e10.BarToken = 52] = "BarToken", e10[e10.CaretToken = 53] = "CaretToken", e10[e10.ExclamationToken = 54] = "ExclamationToken", e10[e10.TildeToken = 55] = "TildeToken", e10[e10.AmpersandAmpersandToken = 56] = "AmpersandAmpersandToken", e10[e10.BarBarToken = 57] = "BarBarToken", e10[e10.QuestionToken = 58] = "QuestionToken", e10[e10.ColonToken = 59] = "ColonToken", e10[e10.AtToken = 60] = "AtToken", e10[e10.QuestionQuestionToken = 61] = "QuestionQuestionToken", e10[e10.BacktickToken = 62] = "BacktickToken", e10[e10.HashToken = 63] = "HashToken", e10[e10.EqualsToken = 64] = "EqualsToken", e10[e10.PlusEqualsToken = 65] = "PlusEqualsToken", e10[e10.MinusEqualsToken = 66] = "MinusEqualsToken", e10[e10.AsteriskEqualsToken = 67] = "AsteriskEqualsToken", e10[e10.AsteriskAsteriskEqualsToken = 68] = "AsteriskAsteriskEqualsToken", e10[e10.SlashEqualsToken = 69] = "SlashEqualsToken", e10[e10.PercentEqualsToken = 70] = "PercentEqualsToken", e10[e10.LessThanLessThanEqualsToken = 71] = "LessThanLessThanEqualsToken", e10[e10.GreaterThanGreaterThanEqualsToken = 72] = "GreaterThanGreaterThanEqualsToken", e10[e10.GreaterThanGreaterThanGreaterThanEqualsToken = 73] = "GreaterThanGreaterThanGreaterThanEqualsToken", e10[e10.AmpersandEqualsToken = 74] = "AmpersandEqualsToken", e10[e10.BarEqualsToken = 75] = "BarEqualsToken", e10[e10.BarBarEqualsToken = 76] = "BarBarEqualsToken", e10[e10.AmpersandAmpersandEqualsToken = 77] = "AmpersandAmpersandEqualsToken", e10[e10.QuestionQuestionEqualsToken = 78] = "QuestionQuestionEqualsToken", e10[e10.CaretEqualsToken = 79] = "CaretEqualsToken", e10[e10.Identifier = 80] = "Identifier", e10[e10.PrivateIdentifier = 81] = "PrivateIdentifier", e10[e10.JSDocCommentTextToken = 82] = "JSDocCommentTextToken", e10[e10.BreakKeyword = 83] = "BreakKeyword", e10[e10.CaseKeyword = 84] = "CaseKeyword", e10[e10.CatchKeyword = 85] = "CatchKeyword", e10[e10.ClassKeyword = 86] = "ClassKeyword", e10[e10.ConstKeyword = 87] = "ConstKeyword", e10[e10.ContinueKeyword = 88] = "ContinueKeyword", e10[e10.DebuggerKeyword = 89] = "DebuggerKeyword", e10[e10.DefaultKeyword = 90] = "DefaultKeyword", e10[e10.DeleteKeyword = 91] = "DeleteKeyword", e10[e10.DoKeyword = 92] = "DoKeyword", e10[e10.ElseKeyword = 93] = "ElseKeyword", e10[e10.EnumKeyword = 94] = "EnumKeyword", e10[e10.ExportKeyword = 95] = "ExportKeyword", e10[e10.ExtendsKeyword = 96] = "ExtendsKeyword", e10[e10.FalseKeyword = 97] = "FalseKeyword", e10[e10.FinallyKeyword = 98] = "FinallyKeyword", e10[e10.ForKeyword = 99] = "ForKeyword", e10[e10.FunctionKeyword = 100] = "FunctionKeyword", e10[e10.IfKeyword = 101] = "IfKeyword", e10[e10.ImportKeyword = 102] = "ImportKeyword", e10[e10.InKeyword = 103] = "InKeyword", e10[e10.InstanceOfKeyword = 104] = "InstanceOfKeyword", e10[e10.NewKeyword = 105] = "NewKeyword", e10[e10.NullKeyword = 106] = "NullKeyword", e10[e10.ReturnKeyword = 107] = "ReturnKeyword", e10[e10.SuperKeyword = 108] = "SuperKeyword", e10[e10.SwitchKeyword = 109] = "SwitchKeyword", e10[e10.ThisKeyword = 110] = "ThisKeyword", e10[e10.ThrowKeyword = 111] = "ThrowKeyword", e10[e10.TrueKeyword = 112] = "TrueKeyword", e10[e10.TryKeyword = 113] = "TryKeyword", e10[e10.TypeOfKeyword = 114] = "TypeOfKeyword", e10[e10.VarKeyword = 115] = "VarKeyword", e10[e10.VoidKeyword = 116] = "VoidKeyword", e10[e10.WhileKeyword = 117] = "WhileKeyword", e10[e10.WithKeyword = 118] = "WithKeyword", e10[e10.ImplementsKeyword = 119] = "ImplementsKeyword", e10[e10.InterfaceKeyword = 120] = "InterfaceKeyword", e10[e10.LetKeyword = 121] = "LetKeyword", e10[e10.PackageKeyword = 122] = "PackageKeyword", e10[e10.PrivateKeyword = 123] = "PrivateKeyword", e10[e10.ProtectedKeyword = 124] = "ProtectedKeyword", e10[e10.PublicKeyword = 125] = "PublicKeyword", e10[e10.StaticKeyword = 126] = "StaticKeyword", e10[e10.YieldKeyword = 127] = "YieldKeyword", e10[e10.AbstractKeyword = 128] = "AbstractKeyword", e10[e10.AccessorKeyword = 129] = "AccessorKeyword", e10[e10.AsKeyword = 130] = "AsKeyword", e10[e10.AssertsKeyword = 131] = "AssertsKeyword", e10[e10.AssertKeyword = 132] = "AssertKeyword", e10[e10.AnyKeyword = 133] = "AnyKeyword", e10[e10.AsyncKeyword = 134] = "AsyncKeyword", e10[e10.AwaitKeyword = 135] = "AwaitKeyword", e10[e10.BooleanKeyword = 136] = "BooleanKeyword", e10[e10.ConstructorKeyword = 137] = "ConstructorKeyword", e10[e10.DeclareKeyword = 138] = "DeclareKeyword", e10[e10.GetKeyword = 139] = "GetKeyword", e10[e10.InferKeyword = 140] = "InferKeyword", e10[e10.IntrinsicKeyword = 141] = "IntrinsicKeyword", e10[e10.IsKeyword = 142] = "IsKeyword", e10[e10.KeyOfKeyword = 143] = "KeyOfKeyword", e10[e10.ModuleKeyword = 144] = "ModuleKeyword", e10[e10.NamespaceKeyword = 145] = "NamespaceKeyword", e10[e10.NeverKeyword = 146] = "NeverKeyword", e10[e10.OutKeyword = 147] = "OutKeyword", e10[e10.ReadonlyKeyword = 148] = "ReadonlyKeyword", e10[e10.RequireKeyword = 149] = "RequireKeyword", e10[e10.NumberKeyword = 150] = "NumberKeyword", e10[e10.ObjectKeyword = 151] = "ObjectKeyword", e10[e10.SatisfiesKeyword = 152] = "SatisfiesKeyword", e10[e10.SetKeyword = 153] = "SetKeyword", e10[e10.StringKeyword = 154] = "StringKeyword", e10[e10.SymbolKeyword = 155] = "SymbolKeyword", e10[e10.TypeKeyword = 156] = "TypeKeyword", e10[e10.UndefinedKeyword = 157] = "UndefinedKeyword", e10[e10.UniqueKeyword = 158] = "UniqueKeyword", e10[e10.UnknownKeyword = 159] = "UnknownKeyword", e10[e10.UsingKeyword = 160] = "UsingKeyword", e10[e10.FromKeyword = 161] = "FromKeyword", e10[e10.GlobalKeyword = 162] = "GlobalKeyword", e10[e10.BigIntKeyword = 163] = "BigIntKeyword", e10[e10.OverrideKeyword = 164] = "OverrideKeyword", e10[e10.OfKeyword = 165] = "OfKeyword", e10[e10.QualifiedName = 166] = "QualifiedName", e10[e10.ComputedPropertyName = 167] = "ComputedPropertyName", e10[e10.TypeParameter = 168] = "TypeParameter", e10[e10.Parameter = 169] = "Parameter", e10[e10.Decorator = 170] = "Decorator", e10[e10.PropertySignature = 171] = "PropertySignature", e10[e10.PropertyDeclaration = 172] = "PropertyDeclaration", e10[e10.MethodSignature = 173] = "MethodSignature", e10[e10.MethodDeclaration = 174] = "MethodDeclaration", e10[e10.ClassStaticBlockDeclaration = 175] = "ClassStaticBlockDeclaration", e10[e10.Constructor = 176] = "Constructor", e10[e10.GetAccessor = 177] = "GetAccessor", e10[e10.SetAccessor = 178] = "SetAccessor", e10[e10.CallSignature = 179] = "CallSignature", e10[e10.ConstructSignature = 180] = "ConstructSignature", e10[e10.IndexSignature = 181] = "IndexSignature", e10[e10.TypePredicate = 182] = "TypePredicate", e10[e10.TypeReference = 183] = "TypeReference", e10[e10.FunctionType = 184] = "FunctionType", e10[e10.ConstructorType = 185] = "ConstructorType", e10[e10.TypeQuery = 186] = "TypeQuery", e10[e10.TypeLiteral = 187] = "TypeLiteral", e10[e10.ArrayType = 188] = "ArrayType", e10[e10.TupleType = 189] = "TupleType", e10[e10.OptionalType = 190] = "OptionalType", e10[e10.RestType = 191] = "RestType", e10[e10.UnionType = 192] = "UnionType", e10[e10.IntersectionType = 193] = "IntersectionType", e10[e10.ConditionalType = 194] = "ConditionalType", e10[e10.InferType = 195] = "InferType", e10[e10.ParenthesizedType = 196] = "ParenthesizedType", e10[e10.ThisType = 197] = "ThisType", e10[e10.TypeOperator = 198] = "TypeOperator", e10[e10.IndexedAccessType = 199] = "IndexedAccessType", e10[e10.MappedType = 200] = "MappedType", e10[e10.LiteralType = 201] = "LiteralType", e10[e10.NamedTupleMember = 202] = "NamedTupleMember", e10[e10.TemplateLiteralType = 203] = "TemplateLiteralType", e10[e10.TemplateLiteralTypeSpan = 204] = "TemplateLiteralTypeSpan", e10[e10.ImportType = 205] = "ImportType", e10[e10.ObjectBindingPattern = 206] = "ObjectBindingPattern", e10[e10.ArrayBindingPattern = 207] = "ArrayBindingPattern", e10[e10.BindingElement = 208] = "BindingElement", e10[e10.ArrayLiteralExpression = 209] = "ArrayLiteralExpression", e10[e10.ObjectLiteralExpression = 210] = "ObjectLiteralExpression", e10[e10.PropertyAccessExpression = 211] = "PropertyAccessExpression", e10[e10.ElementAccessExpression = 212] = "ElementAccessExpression", e10[e10.CallExpression = 213] = "CallExpression", e10[e10.NewExpression = 214] = "NewExpression", e10[e10.TaggedTemplateExpression = 215] = "TaggedTemplateExpression", e10[e10.TypeAssertionExpression = 216] = "TypeAssertionExpression", e10[e10.ParenthesizedExpression = 217] = "ParenthesizedExpression", e10[e10.FunctionExpression = 218] = "FunctionExpression", e10[e10.ArrowFunction = 219] = "ArrowFunction", e10[e10.DeleteExpression = 220] = "DeleteExpression", e10[e10.TypeOfExpression = 221] = "TypeOfExpression", e10[e10.VoidExpression = 222] = "VoidExpression", e10[e10.AwaitExpression = 223] = "AwaitExpression", e10[e10.PrefixUnaryExpression = 224] = "PrefixUnaryExpression", e10[e10.PostfixUnaryExpression = 225] = "PostfixUnaryExpression", e10[e10.BinaryExpression = 226] = "BinaryExpression", e10[e10.ConditionalExpression = 227] = "ConditionalExpression", e10[e10.TemplateExpression = 228] = "TemplateExpression", e10[e10.YieldExpression = 229] = "YieldExpression", e10[e10.SpreadElement = 230] = "SpreadElement", e10[e10.ClassExpression = 231] = "ClassExpression", e10[e10.OmittedExpression = 232] = "OmittedExpression", e10[e10.ExpressionWithTypeArguments = 233] = "ExpressionWithTypeArguments", e10[e10.AsExpression = 234] = "AsExpression", e10[e10.NonNullExpression = 235] = "NonNullExpression", e10[e10.MetaProperty = 236] = "MetaProperty", e10[e10.SyntheticExpression = 237] = "SyntheticExpression", e10[e10.SatisfiesExpression = 238] = "SatisfiesExpression", e10[e10.TemplateSpan = 239] = "TemplateSpan", e10[e10.SemicolonClassElement = 240] = "SemicolonClassElement", e10[e10.Block = 241] = "Block", e10[e10.EmptyStatement = 242] = "EmptyStatement", e10[e10.VariableStatement = 243] = "VariableStatement", e10[e10.ExpressionStatement = 244] = "ExpressionStatement", e10[e10.IfStatement = 245] = "IfStatement", e10[e10.DoStatement = 246] = "DoStatement", e10[e10.WhileStatement = 247] = "WhileStatement", e10[e10.ForStatement = 248] = "ForStatement", e10[e10.ForInStatement = 249] = "ForInStatement", e10[e10.ForOfStatement = 250] = "ForOfStatement", e10[e10.ContinueStatement = 251] = "ContinueStatement", e10[e10.BreakStatement = 252] = "BreakStatement", e10[e10.ReturnStatement = 253] = "ReturnStatement", e10[e10.WithStatement = 254] = "WithStatement", e10[e10.SwitchStatement = 255] = "SwitchStatement", e10[e10.LabeledStatement = 256] = "LabeledStatement", e10[e10.ThrowStatement = 257] = "ThrowStatement", e10[e10.TryStatement = 258] = "TryStatement", e10[e10.DebuggerStatement = 259] = "DebuggerStatement", e10[e10.VariableDeclaration = 260] = "VariableDeclaration", e10[e10.VariableDeclarationList = 261] = "VariableDeclarationList", e10[e10.FunctionDeclaration = 262] = "FunctionDeclaration", e10[e10.ClassDeclaration = 263] = "ClassDeclaration", e10[e10.InterfaceDeclaration = 264] = "InterfaceDeclaration", e10[e10.TypeAliasDeclaration = 265] = "TypeAliasDeclaration", e10[e10.EnumDeclaration = 266] = "EnumDeclaration", e10[e10.ModuleDeclaration = 267] = "ModuleDeclaration", e10[e10.ModuleBlock = 268] = "ModuleBlock", e10[e10.CaseBlock = 269] = "CaseBlock", e10[e10.NamespaceExportDeclaration = 270] = "NamespaceExportDeclaration", e10[e10.ImportEqualsDeclaration = 271] = "ImportEqualsDeclaration", e10[e10.ImportDeclaration = 272] = "ImportDeclaration", e10[e10.ImportClause = 273] = "ImportClause", e10[e10.NamespaceImport = 274] = "NamespaceImport", e10[e10.NamedImports = 275] = "NamedImports", e10[e10.ImportSpecifier = 276] = "ImportSpecifier", e10[e10.ExportAssignment = 277] = "ExportAssignment", e10[e10.ExportDeclaration = 278] = "ExportDeclaration", e10[e10.NamedExports = 279] = "NamedExports", e10[e10.NamespaceExport = 280] = "NamespaceExport", e10[e10.ExportSpecifier = 281] = "ExportSpecifier", e10[e10.MissingDeclaration = 282] = "MissingDeclaration", e10[e10.ExternalModuleReference = 283] = "ExternalModuleReference", e10[e10.JsxElement = 284] = "JsxElement", e10[e10.JsxSelfClosingElement = 285] = "JsxSelfClosingElement", e10[e10.JsxOpeningElement = 286] = "JsxOpeningElement", e10[e10.JsxClosingElement = 287] = "JsxClosingElement", e10[e10.JsxFragment = 288] = "JsxFragment", e10[e10.JsxOpeningFragment = 289] = "JsxOpeningFragment", e10[e10.JsxClosingFragment = 290] = "JsxClosingFragment", e10[e10.JsxAttribute = 291] = "JsxAttribute", e10[e10.JsxAttributes = 292] = "JsxAttributes", e10[e10.JsxSpreadAttribute = 293] = "JsxSpreadAttribute", e10[e10.JsxExpression = 294] = "JsxExpression", e10[e10.JsxNamespacedName = 295] = "JsxNamespacedName", e10[e10.CaseClause = 296] = "CaseClause", e10[e10.DefaultClause = 297] = "DefaultClause", e10[e10.HeritageClause = 298] = "HeritageClause", e10[e10.CatchClause = 299] = "CatchClause", e10[e10.AssertClause = 300] = "AssertClause", e10[e10.AssertEntry = 301] = "AssertEntry", e10[e10.ImportTypeAssertionContainer = 302] = "ImportTypeAssertionContainer", e10[e10.PropertyAssignment = 303] = "PropertyAssignment", e10[e10.ShorthandPropertyAssignment = 304] = "ShorthandPropertyAssignment", e10[e10.SpreadAssignment = 305] = "SpreadAssignment", e10[e10.EnumMember = 306] = "EnumMember", e10[e10.UnparsedPrologue = 307] = "UnparsedPrologue", e10[e10.UnparsedPrepend = 308] = "UnparsedPrepend", e10[e10.UnparsedText = 309] = "UnparsedText", e10[e10.UnparsedInternalText = 310] = "UnparsedInternalText", e10[e10.UnparsedSyntheticReference = 311] = "UnparsedSyntheticReference", e10[e10.SourceFile = 312] = "SourceFile", e10[e10.Bundle = 313] = "Bundle", e10[e10.UnparsedSource = 314] = "UnparsedSource", e10[e10.InputFiles = 315] = "InputFiles", e10[e10.JSDocTypeExpression = 316] = "JSDocTypeExpression", e10[e10.JSDocNameReference = 317] = "JSDocNameReference", e10[e10.JSDocMemberName = 318] = "JSDocMemberName", e10[e10.JSDocAllType = 319] = "JSDocAllType", e10[e10.JSDocUnknownType = 320] = "JSDocUnknownType", e10[e10.JSDocNullableType = 321] = "JSDocNullableType", e10[e10.JSDocNonNullableType = 322] = "JSDocNonNullableType", e10[e10.JSDocOptionalType = 323] = "JSDocOptionalType", e10[e10.JSDocFunctionType = 324] = "JSDocFunctionType", e10[e10.JSDocVariadicType = 325] = "JSDocVariadicType", e10[e10.JSDocNamepathType = 326] = "JSDocNamepathType", e10[e10.JSDoc = 327] = "JSDoc", e10[e10.JSDocComment = 327] = "JSDocComment", e10[e10.JSDocText = 328] = "JSDocText", e10[e10.JSDocTypeLiteral = 329] = "JSDocTypeLiteral", e10[e10.JSDocSignature = 330] = "JSDocSignature", e10[e10.JSDocLink = 331] = "JSDocLink", e10[e10.JSDocLinkCode = 332] = "JSDocLinkCode", e10[e10.JSDocLinkPlain = 333] = "JSDocLinkPlain", e10[e10.JSDocTag = 334] = "JSDocTag", e10[e10.JSDocAugmentsTag = 335] = "JSDocAugmentsTag", e10[e10.JSDocImplementsTag = 336] = "JSDocImplementsTag", e10[e10.JSDocAuthorTag = 337] = "JSDocAuthorTag", e10[e10.JSDocDeprecatedTag = 338] = "JSDocDeprecatedTag", e10[e10.JSDocClassTag = 339] = "JSDocClassTag", e10[e10.JSDocPublicTag = 340] = "JSDocPublicTag", e10[e10.JSDocPrivateTag = 341] = "JSDocPrivateTag", e10[e10.JSDocProtectedTag = 342] = "JSDocProtectedTag", e10[e10.JSDocReadonlyTag = 343] = "JSDocReadonlyTag", e10[e10.JSDocOverrideTag = 344] = "JSDocOverrideTag", e10[e10.JSDocCallbackTag = 345] = "JSDocCallbackTag", e10[e10.JSDocOverloadTag = 346] = "JSDocOverloadTag", e10[e10.JSDocEnumTag = 347] = "JSDocEnumTag", e10[e10.JSDocParameterTag = 348] = "JSDocParameterTag", e10[e10.JSDocReturnTag = 349] = "JSDocReturnTag", e10[e10.JSDocThisTag = 350] = "JSDocThisTag", e10[e10.JSDocTypeTag = 351] = "JSDocTypeTag", e10[e10.JSDocTemplateTag = 352] = "JSDocTemplateTag", e10[e10.JSDocTypedefTag = 353] = "JSDocTypedefTag", e10[e10.JSDocSeeTag = 354] = "JSDocSeeTag", e10[e10.JSDocPropertyTag = 355] = "JSDocPropertyTag", e10[e10.JSDocThrowsTag = 356] = "JSDocThrowsTag", e10[e10.JSDocSatisfiesTag = 357] = "JSDocSatisfiesTag", e10[e10.SyntaxList = 358] = "SyntaxList", e10[e10.NotEmittedStatement = 359] = "NotEmittedStatement", e10[e10.PartiallyEmittedExpression = 360] = "PartiallyEmittedExpression", e10[e10.CommaListExpression = 361] = "CommaListExpression", e10[e10.SyntheticReferenceExpression = 362] = "SyntheticReferenceExpression", e10[e10.Count = 363] = "Count", e10[e10.FirstAssignment = 64] = "FirstAssignment", e10[e10.LastAssignment = 79] = "LastAssignment", e10[e10.FirstCompoundAssignment = 65] = "FirstCompoundAssignment", e10[e10.LastCompoundAssignment = 79] = "LastCompoundAssignment", e10[e10.FirstReservedWord = 83] = "FirstReservedWord", e10[e10.LastReservedWord = 118] = "LastReservedWord", e10[e10.FirstKeyword = 83] = "FirstKeyword", e10[e10.LastKeyword = 165] = "LastKeyword", e10[e10.FirstFutureReservedWord = 119] = "FirstFutureReservedWord", e10[e10.LastFutureReservedWord = 127] = "LastFutureReservedWord", e10[e10.FirstTypeNode = 182] = "FirstTypeNode", e10[e10.LastTypeNode = 205] = "LastTypeNode", e10[e10.FirstPunctuation = 19] = "FirstPunctuation", e10[e10.LastPunctuation = 79] = "LastPunctuation", e10[e10.FirstToken = 0] = "FirstToken", e10[e10.LastToken = 165] = "LastToken", e10[e10.FirstTriviaToken = 2] = "FirstTriviaToken", e10[e10.LastTriviaToken = 7] = "LastTriviaToken", e10[e10.FirstLiteralToken = 9] = "FirstLiteralToken", e10[e10.LastLiteralToken = 15] = "LastLiteralToken", e10[e10.FirstTemplateToken = 15] = "FirstTemplateToken", e10[e10.LastTemplateToken = 18] = "LastTemplateToken", e10[e10.FirstBinaryOperator = 30] = "FirstBinaryOperator", e10[e10.LastBinaryOperator = 79] = "LastBinaryOperator", e10[e10.FirstStatement = 243] = "FirstStatement", e10[e10.LastStatement = 259] = "LastStatement", e10[e10.FirstNode = 166] = "FirstNode", e10[e10.FirstJSDocNode = 316] = "FirstJSDocNode", e10[e10.LastJSDocNode = 357] = "LastJSDocNode", e10[e10.FirstJSDocTagNode = 334] = "FirstJSDocTagNode", e10[e10.LastJSDocTagNode = 357] = "LastJSDocTagNode", e10[e10.FirstContextualKeyword = 128] = "FirstContextualKeyword", e10[e10.LastContextualKeyword = 165] = "LastContextualKeyword", e10))(ed || {}), td = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Let = 1] = "Let", e10[e10.Const = 2] = "Const", e10[e10.Using = 4] = "Using", e10[e10.AwaitUsing = 6] = "AwaitUsing", e10[e10.NestedNamespace = 8] = "NestedNamespace", e10[e10.Synthesized = 16] = "Synthesized", e10[e10.Namespace = 32] = "Namespace", e10[e10.OptionalChain = 64] = "OptionalChain", e10[e10.ExportContext = 128] = "ExportContext", e10[e10.ContainsThis = 256] = "ContainsThis", e10[e10.HasImplicitReturn = 512] = "HasImplicitReturn", e10[e10.HasExplicitReturn = 1024] = "HasExplicitReturn", e10[e10.GlobalAugmentation = 2048] = "GlobalAugmentation", e10[e10.HasAsyncFunctions = 4096] = "HasAsyncFunctions", e10[e10.DisallowInContext = 8192] = "DisallowInContext", e10[e10.YieldContext = 16384] = "YieldContext", e10[e10.DecoratorContext = 32768] = "DecoratorContext", e10[e10.AwaitContext = 65536] = "AwaitContext", e10[e10.DisallowConditionalTypesContext = 131072] = "DisallowConditionalTypesContext", e10[e10.ThisNodeHasError = 262144] = "ThisNodeHasError", e10[e10.JavaScriptFile = 524288] = "JavaScriptFile", e10[e10.ThisNodeOrAnySubNodesHasError = 1048576] = "ThisNodeOrAnySubNodesHasError", e10[e10.HasAggregatedChildData = 2097152] = "HasAggregatedChildData", e10[e10.PossiblyContainsDynamicImport = 4194304] = "PossiblyContainsDynamicImport", e10[e10.PossiblyContainsImportMeta = 8388608] = "PossiblyContainsImportMeta", e10[e10.JSDoc = 16777216] = "JSDoc", e10[e10.Ambient = 33554432] = "Ambient", e10[e10.InWithStatement = 67108864] = "InWithStatement", e10[e10.JsonFile = 134217728] = "JsonFile", e10[e10.TypeCached = 268435456] = "TypeCached", e10[e10.Deprecated = 536870912] = "Deprecated", e10[e10.BlockScoped = 7] = "BlockScoped", e10[e10.Constant = 6] = "Constant", e10[e10.ReachabilityCheckFlags = 1536] = "ReachabilityCheckFlags", e10[e10.ReachabilityAndEmitFlags = 5632] = "ReachabilityAndEmitFlags", e10[e10.ContextFlags = 101441536] = "ContextFlags", e10[e10.TypeExcludesFlags = 81920] = "TypeExcludesFlags", e10[e10.PermanentlySetIncrementalFlags = 12582912] = "PermanentlySetIncrementalFlags", e10[e10.IdentifierHasExtendedUnicodeEscape = 256] = "IdentifierHasExtendedUnicodeEscape", e10[e10.IdentifierIsInJSDocNamespace = 4096] = "IdentifierIsInJSDocNamespace", e10))(td || {}), rd = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Export = 1] = "Export", e10[e10.Ambient = 2] = "Ambient", e10[e10.Public = 4] = "Public", e10[e10.Private = 8] = "Private", e10[e10.Protected = 16] = "Protected", e10[e10.Static = 32] = "Static", e10[e10.Readonly = 64] = "Readonly", e10[e10.Accessor = 128] = "Accessor", e10[e10.Abstract = 256] = "Abstract", e10[e10.Async = 512] = "Async", e10[e10.Default = 1024] = "Default", e10[e10.Const = 2048] = "Const", e10[e10.HasComputedJSDocModifiers = 4096] = "HasComputedJSDocModifiers", e10[e10.Deprecated = 8192] = "Deprecated", e10[e10.Override = 16384] = "Override", e10[e10.In = 32768] = "In", e10[e10.Out = 65536] = "Out", e10[e10.Decorator = 131072] = "Decorator", e10[e10.HasComputedFlags = 536870912] = "HasComputedFlags", e10[e10.AccessibilityModifier = 28] = "AccessibilityModifier", e10[e10.ParameterPropertyModifier = 16476] = "ParameterPropertyModifier", e10[e10.NonPublicAccessibilityModifier = 24] = "NonPublicAccessibilityModifier", e10[e10.TypeScriptModifier = 117086] = "TypeScriptModifier", e10[e10.ExportDefault = 1025] = "ExportDefault", e10[e10.All = 258047] = "All", e10[e10.Modifier = 126975] = "Modifier", e10))(rd || {}), ly = ((e10) => (e10[e10.None = 0] = "None", e10[e10.IntrinsicNamedElement = 1] = "IntrinsicNamedElement", e10[e10.IntrinsicIndexedElement = 2] = "IntrinsicIndexedElement", e10[e10.IntrinsicElement = 3] = "IntrinsicElement", e10))(ly || {}), nd = ((e10) => (e10[e10.Succeeded = 1] = "Succeeded", e10[e10.Failed = 2] = "Failed", e10[e10.Reported = 4] = "Reported", e10[e10.ReportsUnmeasurable = 8] = "ReportsUnmeasurable", e10[e10.ReportsUnreliable = 16] = "ReportsUnreliable", e10[e10.ReportsMask = 24] = "ReportsMask", e10))(nd || {}), uy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Auto = 1] = "Auto", e10[e10.Loop = 2] = "Loop", e10[e10.Unique = 3] = "Unique", e10[e10.Node = 4] = "Node", e10[e10.KindMask = 7] = "KindMask", e10[e10.ReservedInNestedScopes = 8] = "ReservedInNestedScopes", e10[e10.Optimistic = 16] = "Optimistic", e10[e10.FileLevel = 32] = "FileLevel", e10[e10.AllowNameSubstitution = 64] = "AllowNameSubstitution", e10))(uy || {}), py = ((e10) => (e10[e10.None = 0] = "None", e10[e10.PrecedingLineBreak = 1] = "PrecedingLineBreak", e10[e10.PrecedingJSDocComment = 2] = "PrecedingJSDocComment", e10[e10.Unterminated = 4] = "Unterminated", e10[e10.ExtendedUnicodeEscape = 8] = "ExtendedUnicodeEscape", e10[e10.Scientific = 16] = "Scientific", e10[e10.Octal = 32] = "Octal", e10[e10.HexSpecifier = 64] = "HexSpecifier", e10[e10.BinarySpecifier = 128] = "BinarySpecifier", e10[e10.OctalSpecifier = 256] = "OctalSpecifier", e10[e10.ContainsSeparator = 512] = "ContainsSeparator", e10[e10.UnicodeEscape = 1024] = "UnicodeEscape", e10[e10.ContainsInvalidEscape = 2048] = "ContainsInvalidEscape", e10[e10.HexEscape = 4096] = "HexEscape", e10[e10.ContainsLeadingZero = 8192] = "ContainsLeadingZero", e10[e10.ContainsInvalidSeparator = 16384] = "ContainsInvalidSeparator", e10[e10.BinaryOrOctalSpecifier = 384] = "BinaryOrOctalSpecifier", e10[e10.WithSpecifier = 448] = "WithSpecifier", e10[e10.StringLiteralFlags = 7176] = "StringLiteralFlags", e10[e10.NumericLiteralFlags = 25584] = "NumericLiteralFlags", e10[e10.TemplateLiteralLikeFlags = 7176] = "TemplateLiteralLikeFlags", e10[e10.IsInvalid = 26656] = "IsInvalid", e10))(py || {}), bl2 = ((e10) => (e10[e10.Unreachable = 1] = "Unreachable", e10[e10.Start = 2] = "Start", e10[e10.BranchLabel = 4] = "BranchLabel", e10[e10.LoopLabel = 8] = "LoopLabel", e10[e10.Assignment = 16] = "Assignment", e10[e10.TrueCondition = 32] = "TrueCondition", e10[e10.FalseCondition = 64] = "FalseCondition", e10[e10.SwitchClause = 128] = "SwitchClause", e10[e10.ArrayMutation = 256] = "ArrayMutation", e10[e10.Call = 512] = "Call", e10[e10.ReduceLabel = 1024] = "ReduceLabel", e10[e10.Referenced = 2048] = "Referenced", e10[e10.Shared = 4096] = "Shared", e10[e10.Label = 12] = "Label", e10[e10.Condition = 96] = "Condition", e10))(bl2 || {}), fy = ((e10) => (e10[e10.ExpectError = 0] = "ExpectError", e10[e10.Ignore = 1] = "Ignore", e10))(fy || {}), id2 = class { - }, dy = ((e10) => (e10[e10.RootFile = 0] = "RootFile", e10[e10.SourceFromProjectReference = 1] = "SourceFromProjectReference", e10[e10.OutputFromProjectReference = 2] = "OutputFromProjectReference", e10[e10.Import = 3] = "Import", e10[e10.ReferenceFile = 4] = "ReferenceFile", e10[e10.TypeReferenceDirective = 5] = "TypeReferenceDirective", e10[e10.LibFile = 6] = "LibFile", e10[e10.LibReferenceDirective = 7] = "LibReferenceDirective", e10[e10.AutomaticTypeDirectiveFile = 8] = "AutomaticTypeDirectiveFile", e10))(dy || {}), my = ((e10) => (e10[e10.FilePreprocessingReferencedDiagnostic = 0] = "FilePreprocessingReferencedDiagnostic", e10[e10.FilePreprocessingFileExplainingDiagnostic = 1] = "FilePreprocessingFileExplainingDiagnostic", e10[e10.ResolutionDiagnostics = 2] = "ResolutionDiagnostics", e10))(my || {}), hy = ((e10) => (e10[e10.Js = 0] = "Js", e10[e10.Dts = 1] = "Dts", e10))(hy || {}), yy = ((e10) => (e10[e10.Not = 0] = "Not", e10[e10.SafeModules = 1] = "SafeModules", e10[e10.Completely = 2] = "Completely", e10))(yy || {}), gy = ((e10) => (e10[e10.Success = 0] = "Success", e10[e10.DiagnosticsPresent_OutputsSkipped = 1] = "DiagnosticsPresent_OutputsSkipped", e10[e10.DiagnosticsPresent_OutputsGenerated = 2] = "DiagnosticsPresent_OutputsGenerated", e10[e10.InvalidProject_OutputsSkipped = 3] = "InvalidProject_OutputsSkipped", e10[e10.ProjectReferenceCycle_OutputsSkipped = 4] = "ProjectReferenceCycle_OutputsSkipped", e10))(gy || {}), by = ((e10) => (e10[e10.Ok = 0] = "Ok", e10[e10.NeedsOverride = 1] = "NeedsOverride", e10[e10.HasInvalidOverride = 2] = "HasInvalidOverride", e10))(by || {}), vy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Literal = 1] = "Literal", e10[e10.Subtype = 2] = "Subtype", e10))(vy || {}), Ty = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Signature = 1] = "Signature", e10[e10.NoConstraints = 2] = "NoConstraints", e10[e10.Completions = 4] = "Completions", e10[e10.SkipBindingPatterns = 8] = "SkipBindingPatterns", e10))(Ty || {}), Sy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NoTruncation = 1] = "NoTruncation", e10[e10.WriteArrayAsGenericType = 2] = "WriteArrayAsGenericType", e10[e10.GenerateNamesForShadowedTypeParams = 4] = "GenerateNamesForShadowedTypeParams", e10[e10.UseStructuralFallback = 8] = "UseStructuralFallback", e10[e10.ForbidIndexedAccessSymbolReferences = 16] = "ForbidIndexedAccessSymbolReferences", e10[e10.WriteTypeArgumentsOfSignature = 32] = "WriteTypeArgumentsOfSignature", e10[e10.UseFullyQualifiedType = 64] = "UseFullyQualifiedType", e10[e10.UseOnlyExternalAliasing = 128] = "UseOnlyExternalAliasing", e10[e10.SuppressAnyReturnType = 256] = "SuppressAnyReturnType", e10[e10.WriteTypeParametersInQualifiedName = 512] = "WriteTypeParametersInQualifiedName", e10[e10.MultilineObjectLiterals = 1024] = "MultilineObjectLiterals", e10[e10.WriteClassExpressionAsTypeLiteral = 2048] = "WriteClassExpressionAsTypeLiteral", e10[e10.UseTypeOfFunction = 4096] = "UseTypeOfFunction", e10[e10.OmitParameterModifiers = 8192] = "OmitParameterModifiers", e10[e10.UseAliasDefinedOutsideCurrentScope = 16384] = "UseAliasDefinedOutsideCurrentScope", e10[e10.UseSingleQuotesForStringLiteralType = 268435456] = "UseSingleQuotesForStringLiteralType", e10[e10.NoTypeReduction = 536870912] = "NoTypeReduction", e10[e10.OmitThisParameter = 33554432] = "OmitThisParameter", e10[e10.AllowThisInObjectLiteral = 32768] = "AllowThisInObjectLiteral", e10[e10.AllowQualifiedNameInPlaceOfIdentifier = 65536] = "AllowQualifiedNameInPlaceOfIdentifier", e10[e10.AllowAnonymousIdentifier = 131072] = "AllowAnonymousIdentifier", e10[e10.AllowEmptyUnionOrIntersection = 262144] = "AllowEmptyUnionOrIntersection", e10[e10.AllowEmptyTuple = 524288] = "AllowEmptyTuple", e10[e10.AllowUniqueESSymbolType = 1048576] = "AllowUniqueESSymbolType", e10[e10.AllowEmptyIndexInfoType = 2097152] = "AllowEmptyIndexInfoType", e10[e10.WriteComputedProps = 1073741824] = "WriteComputedProps", e10[e10.AllowNodeModulesRelativePaths = 67108864] = "AllowNodeModulesRelativePaths", e10[e10.DoNotIncludeSymbolChain = 134217728] = "DoNotIncludeSymbolChain", e10[e10.IgnoreErrors = 70221824] = "IgnoreErrors", e10[e10.InObjectTypeLiteral = 4194304] = "InObjectTypeLiteral", e10[e10.InTypeAlias = 8388608] = "InTypeAlias", e10[e10.InInitialEntityName = 16777216] = "InInitialEntityName", e10))(Sy || {}), xy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NoTruncation = 1] = "NoTruncation", e10[e10.WriteArrayAsGenericType = 2] = "WriteArrayAsGenericType", e10[e10.UseStructuralFallback = 8] = "UseStructuralFallback", e10[e10.WriteTypeArgumentsOfSignature = 32] = "WriteTypeArgumentsOfSignature", e10[e10.UseFullyQualifiedType = 64] = "UseFullyQualifiedType", e10[e10.SuppressAnyReturnType = 256] = "SuppressAnyReturnType", e10[e10.MultilineObjectLiterals = 1024] = "MultilineObjectLiterals", e10[e10.WriteClassExpressionAsTypeLiteral = 2048] = "WriteClassExpressionAsTypeLiteral", e10[e10.UseTypeOfFunction = 4096] = "UseTypeOfFunction", e10[e10.OmitParameterModifiers = 8192] = "OmitParameterModifiers", e10[e10.UseAliasDefinedOutsideCurrentScope = 16384] = "UseAliasDefinedOutsideCurrentScope", e10[e10.UseSingleQuotesForStringLiteralType = 268435456] = "UseSingleQuotesForStringLiteralType", e10[e10.NoTypeReduction = 536870912] = "NoTypeReduction", e10[e10.OmitThisParameter = 33554432] = "OmitThisParameter", e10[e10.AllowUniqueESSymbolType = 1048576] = "AllowUniqueESSymbolType", e10[e10.AddUndefined = 131072] = "AddUndefined", e10[e10.WriteArrowStyleSignature = 262144] = "WriteArrowStyleSignature", e10[e10.InArrayType = 524288] = "InArrayType", e10[e10.InElementType = 2097152] = "InElementType", e10[e10.InFirstTypeArgument = 4194304] = "InFirstTypeArgument", e10[e10.InTypeAlias = 8388608] = "InTypeAlias", e10[e10.NodeBuilderFlagsMask = 848330091] = "NodeBuilderFlagsMask", e10))(xy || {}), wy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.WriteTypeParametersOrArguments = 1] = "WriteTypeParametersOrArguments", e10[e10.UseOnlyExternalAliasing = 2] = "UseOnlyExternalAliasing", e10[e10.AllowAnyNodeKind = 4] = "AllowAnyNodeKind", e10[e10.UseAliasDefinedOutsideCurrentScope = 8] = "UseAliasDefinedOutsideCurrentScope", e10[e10.WriteComputedProps = 16] = "WriteComputedProps", e10[e10.DoNotIncludeSymbolChain = 32] = "DoNotIncludeSymbolChain", e10))(wy || {}), Cy = ((e10) => (e10[e10.Accessible = 0] = "Accessible", e10[e10.NotAccessible = 1] = "NotAccessible", e10[e10.CannotBeNamed = 2] = "CannotBeNamed", e10))(Cy || {}), Ey = ((e10) => (e10[e10.UnionOrIntersection = 0] = "UnionOrIntersection", e10[e10.Spread = 1] = "Spread", e10))(Ey || {}), Ay = ((e10) => (e10[e10.This = 0] = "This", e10[e10.Identifier = 1] = "Identifier", e10[e10.AssertsThis = 2] = "AssertsThis", e10[e10.AssertsIdentifier = 3] = "AssertsIdentifier", e10))(Ay || {}), ky = ((e10) => (e10[e10.Unknown = 0] = "Unknown", e10[e10.TypeWithConstructSignatureAndValue = 1] = "TypeWithConstructSignatureAndValue", e10[e10.VoidNullableOrNeverType = 2] = "VoidNullableOrNeverType", e10[e10.NumberLikeType = 3] = "NumberLikeType", e10[e10.BigIntLikeType = 4] = "BigIntLikeType", e10[e10.StringLikeType = 5] = "StringLikeType", e10[e10.BooleanType = 6] = "BooleanType", e10[e10.ArrayLikeType = 7] = "ArrayLikeType", e10[e10.ESSymbolType = 8] = "ESSymbolType", e10[e10.Promise = 9] = "Promise", e10[e10.TypeWithCallSignature = 10] = "TypeWithCallSignature", e10[e10.ObjectType = 11] = "ObjectType", e10))(ky || {}), ad2 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.FunctionScopedVariable = 1] = "FunctionScopedVariable", e10[e10.BlockScopedVariable = 2] = "BlockScopedVariable", e10[e10.Property = 4] = "Property", e10[e10.EnumMember = 8] = "EnumMember", e10[e10.Function = 16] = "Function", e10[e10.Class = 32] = "Class", e10[e10.Interface = 64] = "Interface", e10[e10.ConstEnum = 128] = "ConstEnum", e10[e10.RegularEnum = 256] = "RegularEnum", e10[e10.ValueModule = 512] = "ValueModule", e10[e10.NamespaceModule = 1024] = "NamespaceModule", e10[e10.TypeLiteral = 2048] = "TypeLiteral", e10[e10.ObjectLiteral = 4096] = "ObjectLiteral", e10[e10.Method = 8192] = "Method", e10[e10.Constructor = 16384] = "Constructor", e10[e10.GetAccessor = 32768] = "GetAccessor", e10[e10.SetAccessor = 65536] = "SetAccessor", e10[e10.Signature = 131072] = "Signature", e10[e10.TypeParameter = 262144] = "TypeParameter", e10[e10.TypeAlias = 524288] = "TypeAlias", e10[e10.ExportValue = 1048576] = "ExportValue", e10[e10.Alias = 2097152] = "Alias", e10[e10.Prototype = 4194304] = "Prototype", e10[e10.ExportStar = 8388608] = "ExportStar", e10[e10.Optional = 16777216] = "Optional", e10[e10.Transient = 33554432] = "Transient", e10[e10.Assignment = 67108864] = "Assignment", e10[e10.ModuleExports = 134217728] = "ModuleExports", e10[e10.All = 67108863] = "All", e10[e10.Enum = 384] = "Enum", e10[e10.Variable = 3] = "Variable", e10[e10.Value = 111551] = "Value", e10[e10.Type = 788968] = "Type", e10[e10.Namespace = 1920] = "Namespace", e10[e10.Module = 1536] = "Module", e10[e10.Accessor = 98304] = "Accessor", e10[e10.FunctionScopedVariableExcludes = 111550] = "FunctionScopedVariableExcludes", e10[e10.BlockScopedVariableExcludes = 111551] = "BlockScopedVariableExcludes", e10[e10.ParameterExcludes = 111551] = "ParameterExcludes", e10[e10.PropertyExcludes = 0] = "PropertyExcludes", e10[e10.EnumMemberExcludes = 900095] = "EnumMemberExcludes", e10[e10.FunctionExcludes = 110991] = "FunctionExcludes", e10[e10.ClassExcludes = 899503] = "ClassExcludes", e10[e10.InterfaceExcludes = 788872] = "InterfaceExcludes", e10[e10.RegularEnumExcludes = 899327] = "RegularEnumExcludes", e10[e10.ConstEnumExcludes = 899967] = "ConstEnumExcludes", e10[e10.ValueModuleExcludes = 110735] = "ValueModuleExcludes", e10[e10.NamespaceModuleExcludes = 0] = "NamespaceModuleExcludes", e10[e10.MethodExcludes = 103359] = "MethodExcludes", e10[e10.GetAccessorExcludes = 46015] = "GetAccessorExcludes", e10[e10.SetAccessorExcludes = 78783] = "SetAccessorExcludes", e10[e10.AccessorExcludes = 13247] = "AccessorExcludes", e10[e10.TypeParameterExcludes = 526824] = "TypeParameterExcludes", e10[e10.TypeAliasExcludes = 788968] = "TypeAliasExcludes", e10[e10.AliasExcludes = 2097152] = "AliasExcludes", e10[e10.ModuleMember = 2623475] = "ModuleMember", e10[e10.ExportHasLocal = 944] = "ExportHasLocal", e10[e10.BlockScoped = 418] = "BlockScoped", e10[e10.PropertyOrAccessor = 98308] = "PropertyOrAccessor", e10[e10.ClassMember = 106500] = "ClassMember", e10[e10.ExportSupportsDefaultModifier = 112] = "ExportSupportsDefaultModifier", e10[e10.ExportDoesNotSupportDefaultModifier = -113] = "ExportDoesNotSupportDefaultModifier", e10[e10.Classifiable = 2885600] = "Classifiable", e10[e10.LateBindingContainer = 6256] = "LateBindingContainer", e10))(ad2 || {}), Dy = ((e10) => (e10[e10.Numeric = 0] = "Numeric", e10[e10.Literal = 1] = "Literal", e10))(Dy || {}), Py = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Instantiated = 1] = "Instantiated", e10[e10.SyntheticProperty = 2] = "SyntheticProperty", e10[e10.SyntheticMethod = 4] = "SyntheticMethod", e10[e10.Readonly = 8] = "Readonly", e10[e10.ReadPartial = 16] = "ReadPartial", e10[e10.WritePartial = 32] = "WritePartial", e10[e10.HasNonUniformType = 64] = "HasNonUniformType", e10[e10.HasLiteralType = 128] = "HasLiteralType", e10[e10.ContainsPublic = 256] = "ContainsPublic", e10[e10.ContainsProtected = 512] = "ContainsProtected", e10[e10.ContainsPrivate = 1024] = "ContainsPrivate", e10[e10.ContainsStatic = 2048] = "ContainsStatic", e10[e10.Late = 4096] = "Late", e10[e10.ReverseMapped = 8192] = "ReverseMapped", e10[e10.OptionalParameter = 16384] = "OptionalParameter", e10[e10.RestParameter = 32768] = "RestParameter", e10[e10.DeferredType = 65536] = "DeferredType", e10[e10.HasNeverType = 131072] = "HasNeverType", e10[e10.Mapped = 262144] = "Mapped", e10[e10.StripOptional = 524288] = "StripOptional", e10[e10.Unresolved = 1048576] = "Unresolved", e10[e10.Synthetic = 6] = "Synthetic", e10[e10.Discriminant = 192] = "Discriminant", e10[e10.Partial = 48] = "Partial", e10))(Py || {}), Iy = ((e10) => (e10.Call = "__call", e10.Constructor = "__constructor", e10.New = "__new", e10.Index = "__index", e10.ExportStar = "__export", e10.Global = "__global", e10.Missing = "__missing", e10.Type = "__type", e10.Object = "__object", e10.JSXAttributes = "__jsxAttributes", e10.Class = "__class", e10.Function = "__function", e10.Computed = "__computed", e10.Resolving = "__resolving__", e10.ExportEquals = "export=", e10.Default = "default", e10.This = "this", e10))(Iy || {}), Ny = ((e10) => (e10[e10.None = 0] = "None", e10[e10.TypeChecked = 1] = "TypeChecked", e10[e10.LexicalThis = 2] = "LexicalThis", e10[e10.CaptureThis = 4] = "CaptureThis", e10[e10.CaptureNewTarget = 8] = "CaptureNewTarget", e10[e10.SuperInstance = 16] = "SuperInstance", e10[e10.SuperStatic = 32] = "SuperStatic", e10[e10.ContextChecked = 64] = "ContextChecked", e10[e10.MethodWithSuperPropertyAccessInAsync = 128] = "MethodWithSuperPropertyAccessInAsync", e10[e10.MethodWithSuperPropertyAssignmentInAsync = 256] = "MethodWithSuperPropertyAssignmentInAsync", e10[e10.CaptureArguments = 512] = "CaptureArguments", e10[e10.EnumValuesComputed = 1024] = "EnumValuesComputed", e10[e10.LexicalModuleMergesWithClass = 2048] = "LexicalModuleMergesWithClass", e10[e10.LoopWithCapturedBlockScopedBinding = 4096] = "LoopWithCapturedBlockScopedBinding", e10[e10.ContainsCapturedBlockScopeBinding = 8192] = "ContainsCapturedBlockScopeBinding", e10[e10.CapturedBlockScopedBinding = 16384] = "CapturedBlockScopedBinding", e10[e10.BlockScopedBindingInLoop = 32768] = "BlockScopedBindingInLoop", e10[e10.NeedsLoopOutParameter = 65536] = "NeedsLoopOutParameter", e10[e10.AssignmentsMarked = 131072] = "AssignmentsMarked", e10[e10.ContainsConstructorReference = 262144] = "ContainsConstructorReference", e10[e10.ConstructorReference = 536870912] = "ConstructorReference", e10[e10.ContainsClassWithPrivateIdentifiers = 1048576] = "ContainsClassWithPrivateIdentifiers", e10[e10.ContainsSuperPropertyInStaticInitializer = 2097152] = "ContainsSuperPropertyInStaticInitializer", e10[e10.InCheckIdentifier = 4194304] = "InCheckIdentifier", e10))(Ny || {}), od2 = ((e10) => (e10[e10.Any = 1] = "Any", e10[e10.Unknown = 2] = "Unknown", e10[e10.String = 4] = "String", e10[e10.Number = 8] = "Number", e10[e10.Boolean = 16] = "Boolean", e10[e10.Enum = 32] = "Enum", e10[e10.BigInt = 64] = "BigInt", e10[e10.StringLiteral = 128] = "StringLiteral", e10[e10.NumberLiteral = 256] = "NumberLiteral", e10[e10.BooleanLiteral = 512] = "BooleanLiteral", e10[e10.EnumLiteral = 1024] = "EnumLiteral", e10[e10.BigIntLiteral = 2048] = "BigIntLiteral", e10[e10.ESSymbol = 4096] = "ESSymbol", e10[e10.UniqueESSymbol = 8192] = "UniqueESSymbol", e10[e10.Void = 16384] = "Void", e10[e10.Undefined = 32768] = "Undefined", e10[e10.Null = 65536] = "Null", e10[e10.Never = 131072] = "Never", e10[e10.TypeParameter = 262144] = "TypeParameter", e10[e10.Object = 524288] = "Object", e10[e10.Union = 1048576] = "Union", e10[e10.Intersection = 2097152] = "Intersection", e10[e10.Index = 4194304] = "Index", e10[e10.IndexedAccess = 8388608] = "IndexedAccess", e10[e10.Conditional = 16777216] = "Conditional", e10[e10.Substitution = 33554432] = "Substitution", e10[e10.NonPrimitive = 67108864] = "NonPrimitive", e10[e10.TemplateLiteral = 134217728] = "TemplateLiteral", e10[e10.StringMapping = 268435456] = "StringMapping", e10[e10.AnyOrUnknown = 3] = "AnyOrUnknown", e10[e10.Nullable = 98304] = "Nullable", e10[e10.Literal = 2944] = "Literal", e10[e10.Unit = 109472] = "Unit", e10[e10.Freshable = 2976] = "Freshable", e10[e10.StringOrNumberLiteral = 384] = "StringOrNumberLiteral", e10[e10.StringOrNumberLiteralOrUnique = 8576] = "StringOrNumberLiteralOrUnique", e10[e10.DefinitelyFalsy = 117632] = "DefinitelyFalsy", e10[e10.PossiblyFalsy = 117724] = "PossiblyFalsy", e10[e10.Intrinsic = 67359327] = "Intrinsic", e10[e10.StringLike = 402653316] = "StringLike", e10[e10.NumberLike = 296] = "NumberLike", e10[e10.BigIntLike = 2112] = "BigIntLike", e10[e10.BooleanLike = 528] = "BooleanLike", e10[e10.EnumLike = 1056] = "EnumLike", e10[e10.ESSymbolLike = 12288] = "ESSymbolLike", e10[e10.VoidLike = 49152] = "VoidLike", e10[e10.Primitive = 402784252] = "Primitive", e10[e10.DefinitelyNonNullable = 470302716] = "DefinitelyNonNullable", e10[e10.DisjointDomains = 469892092] = "DisjointDomains", e10[e10.UnionOrIntersection = 3145728] = "UnionOrIntersection", e10[e10.StructuredType = 3670016] = "StructuredType", e10[e10.TypeVariable = 8650752] = "TypeVariable", e10[e10.InstantiableNonPrimitive = 58982400] = "InstantiableNonPrimitive", e10[e10.InstantiablePrimitive = 406847488] = "InstantiablePrimitive", e10[e10.Instantiable = 465829888] = "Instantiable", e10[e10.StructuredOrInstantiable = 469499904] = "StructuredOrInstantiable", e10[e10.ObjectFlagsType = 138117121] = "ObjectFlagsType", e10[e10.Simplifiable = 25165824] = "Simplifiable", e10[e10.Singleton = 67358815] = "Singleton", e10[e10.Narrowable = 536624127] = "Narrowable", e10[e10.IncludesMask = 473694207] = "IncludesMask", e10[e10.IncludesMissingType = 262144] = "IncludesMissingType", e10[e10.IncludesNonWideningType = 4194304] = "IncludesNonWideningType", e10[e10.IncludesWildcard = 8388608] = "IncludesWildcard", e10[e10.IncludesEmptyObject = 16777216] = "IncludesEmptyObject", e10[e10.IncludesInstantiable = 33554432] = "IncludesInstantiable", e10[e10.NotPrimitiveUnion = 36323331] = "NotPrimitiveUnion", e10))(od2 || {}), sd = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Class = 1] = "Class", e10[e10.Interface = 2] = "Interface", e10[e10.Reference = 4] = "Reference", e10[e10.Tuple = 8] = "Tuple", e10[e10.Anonymous = 16] = "Anonymous", e10[e10.Mapped = 32] = "Mapped", e10[e10.Instantiated = 64] = "Instantiated", e10[e10.ObjectLiteral = 128] = "ObjectLiteral", e10[e10.EvolvingArray = 256] = "EvolvingArray", e10[e10.ObjectLiteralPatternWithComputedProperties = 512] = "ObjectLiteralPatternWithComputedProperties", e10[e10.ReverseMapped = 1024] = "ReverseMapped", e10[e10.JsxAttributes = 2048] = "JsxAttributes", e10[e10.JSLiteral = 4096] = "JSLiteral", e10[e10.FreshLiteral = 8192] = "FreshLiteral", e10[e10.ArrayLiteral = 16384] = "ArrayLiteral", e10[e10.PrimitiveUnion = 32768] = "PrimitiveUnion", e10[e10.ContainsWideningType = 65536] = "ContainsWideningType", e10[e10.ContainsObjectOrArrayLiteral = 131072] = "ContainsObjectOrArrayLiteral", e10[e10.NonInferrableType = 262144] = "NonInferrableType", e10[e10.CouldContainTypeVariablesComputed = 524288] = "CouldContainTypeVariablesComputed", e10[e10.CouldContainTypeVariables = 1048576] = "CouldContainTypeVariables", e10[e10.ClassOrInterface = 3] = "ClassOrInterface", e10[e10.RequiresWidening = 196608] = "RequiresWidening", e10[e10.PropagatingFlags = 458752] = "PropagatingFlags", e10[e10.ObjectTypeKindMask = 1343] = "ObjectTypeKindMask", e10[e10.ContainsSpread = 2097152] = "ContainsSpread", e10[e10.ObjectRestType = 4194304] = "ObjectRestType", e10[e10.InstantiationExpressionType = 8388608] = "InstantiationExpressionType", e10[e10.IsClassInstanceClone = 16777216] = "IsClassInstanceClone", e10[e10.IdenticalBaseTypeCalculated = 33554432] = "IdenticalBaseTypeCalculated", e10[e10.IdenticalBaseTypeExists = 67108864] = "IdenticalBaseTypeExists", e10[e10.IsGenericTypeComputed = 2097152] = "IsGenericTypeComputed", e10[e10.IsGenericObjectType = 4194304] = "IsGenericObjectType", e10[e10.IsGenericIndexType = 8388608] = "IsGenericIndexType", e10[e10.IsGenericType = 12582912] = "IsGenericType", e10[e10.ContainsIntersections = 16777216] = "ContainsIntersections", e10[e10.IsUnknownLikeUnionComputed = 33554432] = "IsUnknownLikeUnionComputed", e10[e10.IsUnknownLikeUnion = 67108864] = "IsUnknownLikeUnion", e10[e10.IsNeverIntersectionComputed = 16777216] = "IsNeverIntersectionComputed", e10[e10.IsNeverIntersection = 33554432] = "IsNeverIntersection", e10))(sd || {}), Oy = ((e10) => (e10[e10.Invariant = 0] = "Invariant", e10[e10.Covariant = 1] = "Covariant", e10[e10.Contravariant = 2] = "Contravariant", e10[e10.Bivariant = 3] = "Bivariant", e10[e10.Independent = 4] = "Independent", e10[e10.VarianceMask = 7] = "VarianceMask", e10[e10.Unmeasurable = 8] = "Unmeasurable", e10[e10.Unreliable = 16] = "Unreliable", e10[e10.AllowsStructuralFallback = 24] = "AllowsStructuralFallback", e10))(Oy || {}), My = ((e10) => (e10[e10.Required = 1] = "Required", e10[e10.Optional = 2] = "Optional", e10[e10.Rest = 4] = "Rest", e10[e10.Variadic = 8] = "Variadic", e10[e10.Fixed = 3] = "Fixed", e10[e10.Variable = 12] = "Variable", e10[e10.NonRequired = 14] = "NonRequired", e10[e10.NonRest = 11] = "NonRest", e10))(My || {}), Ly = ((e10) => (e10[e10.None = 0] = "None", e10[e10.IncludeUndefined = 1] = "IncludeUndefined", e10[e10.NoIndexSignatures = 2] = "NoIndexSignatures", e10[e10.Writing = 4] = "Writing", e10[e10.CacheSymbol = 8] = "CacheSymbol", e10[e10.NoTupleBoundsCheck = 16] = "NoTupleBoundsCheck", e10[e10.ExpressionPosition = 32] = "ExpressionPosition", e10[e10.ReportDeprecated = 64] = "ReportDeprecated", e10[e10.SuppressNoImplicitAnyError = 128] = "SuppressNoImplicitAnyError", e10[e10.Contextual = 256] = "Contextual", e10[e10.Persistent = 1] = "Persistent", e10))(Ly || {}), Jy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.StringsOnly = 1] = "StringsOnly", e10[e10.NoIndexSignatures = 2] = "NoIndexSignatures", e10[e10.NoReducibleCheck = 4] = "NoReducibleCheck", e10))(Jy || {}), Ry = ((e10) => (e10[e10.Component = 0] = "Component", e10[e10.Function = 1] = "Function", e10[e10.Mixed = 2] = "Mixed", e10))(Ry || {}), jy = ((e10) => (e10[e10.Call = 0] = "Call", e10[e10.Construct = 1] = "Construct", e10))(jy || {}), _d = ((e10) => (e10[e10.None = 0] = "None", e10[e10.HasRestParameter = 1] = "HasRestParameter", e10[e10.HasLiteralTypes = 2] = "HasLiteralTypes", e10[e10.Abstract = 4] = "Abstract", e10[e10.IsInnerCallChain = 8] = "IsInnerCallChain", e10[e10.IsOuterCallChain = 16] = "IsOuterCallChain", e10[e10.IsUntypedSignatureInJSFile = 32] = "IsUntypedSignatureInJSFile", e10[e10.IsNonInferrable = 64] = "IsNonInferrable", e10[e10.IsSignatureCandidateForOverloadFailure = 128] = "IsSignatureCandidateForOverloadFailure", e10[e10.PropagatingFlags = 167] = "PropagatingFlags", e10[e10.CallChainFlags = 24] = "CallChainFlags", e10))(_d || {}), Fy = ((e10) => (e10[e10.String = 0] = "String", e10[e10.Number = 1] = "Number", e10))(Fy || {}), By = ((e10) => (e10[e10.Simple = 0] = "Simple", e10[e10.Array = 1] = "Array", e10[e10.Deferred = 2] = "Deferred", e10[e10.Function = 3] = "Function", e10[e10.Composite = 4] = "Composite", e10[e10.Merged = 5] = "Merged", e10))(By || {}), Uy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NakedTypeVariable = 1] = "NakedTypeVariable", e10[e10.SpeculativeTuple = 2] = "SpeculativeTuple", e10[e10.SubstituteSource = 4] = "SubstituteSource", e10[e10.HomomorphicMappedType = 8] = "HomomorphicMappedType", e10[e10.PartialHomomorphicMappedType = 16] = "PartialHomomorphicMappedType", e10[e10.MappedTypeConstraint = 32] = "MappedTypeConstraint", e10[e10.ContravariantConditional = 64] = "ContravariantConditional", e10[e10.ReturnType = 128] = "ReturnType", e10[e10.LiteralKeyof = 256] = "LiteralKeyof", e10[e10.NoConstraints = 512] = "NoConstraints", e10[e10.AlwaysStrict = 1024] = "AlwaysStrict", e10[e10.MaxValue = 2048] = "MaxValue", e10[e10.PriorityImpliesCombination = 416] = "PriorityImpliesCombination", e10[e10.Circularity = -1] = "Circularity", e10))(Uy || {}), qy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NoDefault = 1] = "NoDefault", e10[e10.AnyDefault = 2] = "AnyDefault", e10[e10.SkippedGenericFunction = 4] = "SkippedGenericFunction", e10))(qy || {}), zy = ((e10) => (e10[e10.False = 0] = "False", e10[e10.Unknown = 1] = "Unknown", e10[e10.Maybe = 3] = "Maybe", e10[e10.True = -1] = "True", e10))(zy || {}), Wy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.ExportsProperty = 1] = "ExportsProperty", e10[e10.ModuleExports = 2] = "ModuleExports", e10[e10.PrototypeProperty = 3] = "PrototypeProperty", e10[e10.ThisProperty = 4] = "ThisProperty", e10[e10.Property = 5] = "Property", e10[e10.Prototype = 6] = "Prototype", e10[e10.ObjectDefinePropertyValue = 7] = "ObjectDefinePropertyValue", e10[e10.ObjectDefinePropertyExports = 8] = "ObjectDefinePropertyExports", e10[e10.ObjectDefinePrototypeProperty = 9] = "ObjectDefinePrototypeProperty", e10))(Wy || {}), cd = ((e10) => (e10[e10.Warning = 0] = "Warning", e10[e10.Error = 1] = "Error", e10[e10.Suggestion = 2] = "Suggestion", e10[e10.Message = 3] = "Message", e10))(cd || {}), Vy = ((e10) => (e10[e10.Classic = 1] = "Classic", e10[e10.NodeJs = 2] = "NodeJs", e10[e10.Node10 = 2] = "Node10", e10[e10.Node16 = 3] = "Node16", e10[e10.NodeNext = 99] = "NodeNext", e10[e10.Bundler = 100] = "Bundler", e10))(Vy || {}), Hy = ((e10) => (e10[e10.Legacy = 1] = "Legacy", e10[e10.Auto = 2] = "Auto", e10[e10.Force = 3] = "Force", e10))(Hy || {}), Gy = ((e10) => (e10[e10.FixedPollingInterval = 0] = "FixedPollingInterval", e10[e10.PriorityPollingInterval = 1] = "PriorityPollingInterval", e10[e10.DynamicPriorityPolling = 2] = "DynamicPriorityPolling", e10[e10.FixedChunkSizePolling = 3] = "FixedChunkSizePolling", e10[e10.UseFsEvents = 4] = "UseFsEvents", e10[e10.UseFsEventsOnParentDirectory = 5] = "UseFsEventsOnParentDirectory", e10))(Gy || {}), Xy = ((e10) => (e10[e10.UseFsEvents = 0] = "UseFsEvents", e10[e10.FixedPollingInterval = 1] = "FixedPollingInterval", e10[e10.DynamicPriorityPolling = 2] = "DynamicPriorityPolling", e10[e10.FixedChunkSizePolling = 3] = "FixedChunkSizePolling", e10))(Xy || {}), $y = ((e10) => (e10[e10.FixedInterval = 0] = "FixedInterval", e10[e10.PriorityInterval = 1] = "PriorityInterval", e10[e10.DynamicPriority = 2] = "DynamicPriority", e10[e10.FixedChunkSize = 3] = "FixedChunkSize", e10))($y || {}), Qy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.CommonJS = 1] = "CommonJS", e10[e10.AMD = 2] = "AMD", e10[e10.UMD = 3] = "UMD", e10[e10.System = 4] = "System", e10[e10.ES2015 = 5] = "ES2015", e10[e10.ES2020 = 6] = "ES2020", e10[e10.ES2022 = 7] = "ES2022", e10[e10.ESNext = 99] = "ESNext", e10[e10.Node16 = 100] = "Node16", e10[e10.NodeNext = 199] = "NodeNext", e10))(Qy || {}), Yy = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Preserve = 1] = "Preserve", e10[e10.React = 2] = "React", e10[e10.ReactNative = 3] = "ReactNative", e10[e10.ReactJSX = 4] = "ReactJSX", e10[e10.ReactJSXDev = 5] = "ReactJSXDev", e10))(Yy || {}), Ky = ((e10) => (e10[e10.Remove = 0] = "Remove", e10[e10.Preserve = 1] = "Preserve", e10[e10.Error = 2] = "Error", e10))(Ky || {}), Zy = ((e10) => (e10[e10.CarriageReturnLineFeed = 0] = "CarriageReturnLineFeed", e10[e10.LineFeed = 1] = "LineFeed", e10))(Zy || {}), ld2 = ((e10) => (e10[e10.Unknown = 0] = "Unknown", e10[e10.JS = 1] = "JS", e10[e10.JSX = 2] = "JSX", e10[e10.TS = 3] = "TS", e10[e10.TSX = 4] = "TSX", e10[e10.External = 5] = "External", e10[e10.JSON = 6] = "JSON", e10[e10.Deferred = 7] = "Deferred", e10))(ld2 || {}), e02 = ((e10) => (e10[e10.ES3 = 0] = "ES3", e10[e10.ES5 = 1] = "ES5", e10[e10.ES2015 = 2] = "ES2015", e10[e10.ES2016 = 3] = "ES2016", e10[e10.ES2017 = 4] = "ES2017", e10[e10.ES2018 = 5] = "ES2018", e10[e10.ES2019 = 6] = "ES2019", e10[e10.ES2020 = 7] = "ES2020", e10[e10.ES2021 = 8] = "ES2021", e10[e10.ES2022 = 9] = "ES2022", e10[e10.ESNext = 99] = "ESNext", e10[e10.JSON = 100] = "JSON", e10[e10.Latest = 99] = "Latest", e10))(e02 || {}), t02 = ((e10) => (e10[e10.Standard = 0] = "Standard", e10[e10.JSX = 1] = "JSX", e10))(t02 || {}), r0 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Recursive = 1] = "Recursive", e10))(r0 || {}), n02 = ((e10) => (e10[e10.nullCharacter = 0] = "nullCharacter", e10[e10.maxAsciiCharacter = 127] = "maxAsciiCharacter", e10[e10.lineFeed = 10] = "lineFeed", e10[e10.carriageReturn = 13] = "carriageReturn", e10[e10.lineSeparator = 8232] = "lineSeparator", e10[e10.paragraphSeparator = 8233] = "paragraphSeparator", e10[e10.nextLine = 133] = "nextLine", e10[e10.space = 32] = "space", e10[e10.nonBreakingSpace = 160] = "nonBreakingSpace", e10[e10.enQuad = 8192] = "enQuad", e10[e10.emQuad = 8193] = "emQuad", e10[e10.enSpace = 8194] = "enSpace", e10[e10.emSpace = 8195] = "emSpace", e10[e10.threePerEmSpace = 8196] = "threePerEmSpace", e10[e10.fourPerEmSpace = 8197] = "fourPerEmSpace", e10[e10.sixPerEmSpace = 8198] = "sixPerEmSpace", e10[e10.figureSpace = 8199] = "figureSpace", e10[e10.punctuationSpace = 8200] = "punctuationSpace", e10[e10.thinSpace = 8201] = "thinSpace", e10[e10.hairSpace = 8202] = "hairSpace", e10[e10.zeroWidthSpace = 8203] = "zeroWidthSpace", e10[e10.narrowNoBreakSpace = 8239] = "narrowNoBreakSpace", e10[e10.ideographicSpace = 12288] = "ideographicSpace", e10[e10.mathematicalSpace = 8287] = "mathematicalSpace", e10[e10.ogham = 5760] = "ogham", e10[e10.replacementCharacter = 65533] = "replacementCharacter", e10[e10._ = 95] = "_", e10[e10.$ = 36] = "$", e10[e10._0 = 48] = "_0", e10[e10._1 = 49] = "_1", e10[e10._2 = 50] = "_2", e10[e10._3 = 51] = "_3", e10[e10._4 = 52] = "_4", e10[e10._5 = 53] = "_5", e10[e10._6 = 54] = "_6", e10[e10._7 = 55] = "_7", e10[e10._8 = 56] = "_8", e10[e10._9 = 57] = "_9", e10[e10.a = 97] = "a", e10[e10.b = 98] = "b", e10[e10.c = 99] = "c", e10[e10.d = 100] = "d", e10[e10.e = 101] = "e", e10[e10.f = 102] = "f", e10[e10.g = 103] = "g", e10[e10.h = 104] = "h", e10[e10.i = 105] = "i", e10[e10.j = 106] = "j", e10[e10.k = 107] = "k", e10[e10.l = 108] = "l", e10[e10.m = 109] = "m", e10[e10.n = 110] = "n", e10[e10.o = 111] = "o", e10[e10.p = 112] = "p", e10[e10.q = 113] = "q", e10[e10.r = 114] = "r", e10[e10.s = 115] = "s", e10[e10.t = 116] = "t", e10[e10.u = 117] = "u", e10[e10.v = 118] = "v", e10[e10.w = 119] = "w", e10[e10.x = 120] = "x", e10[e10.y = 121] = "y", e10[e10.z = 122] = "z", e10[e10.A = 65] = "A", e10[e10.B = 66] = "B", e10[e10.C = 67] = "C", e10[e10.D = 68] = "D", e10[e10.E = 69] = "E", e10[e10.F = 70] = "F", e10[e10.G = 71] = "G", e10[e10.H = 72] = "H", e10[e10.I = 73] = "I", e10[e10.J = 74] = "J", e10[e10.K = 75] = "K", e10[e10.L = 76] = "L", e10[e10.M = 77] = "M", e10[e10.N = 78] = "N", e10[e10.O = 79] = "O", e10[e10.P = 80] = "P", e10[e10.Q = 81] = "Q", e10[e10.R = 82] = "R", e10[e10.S = 83] = "S", e10[e10.T = 84] = "T", e10[e10.U = 85] = "U", e10[e10.V = 86] = "V", e10[e10.W = 87] = "W", e10[e10.X = 88] = "X", e10[e10.Y = 89] = "Y", e10[e10.Z = 90] = "Z", e10[e10.ampersand = 38] = "ampersand", e10[e10.asterisk = 42] = "asterisk", e10[e10.at = 64] = "at", e10[e10.backslash = 92] = "backslash", e10[e10.backtick = 96] = "backtick", e10[e10.bar = 124] = "bar", e10[e10.caret = 94] = "caret", e10[e10.closeBrace = 125] = "closeBrace", e10[e10.closeBracket = 93] = "closeBracket", e10[e10.closeParen = 41] = "closeParen", e10[e10.colon = 58] = "colon", e10[e10.comma = 44] = "comma", e10[e10.dot = 46] = "dot", e10[e10.doubleQuote = 34] = "doubleQuote", e10[e10.equals = 61] = "equals", e10[e10.exclamation = 33] = "exclamation", e10[e10.greaterThan = 62] = "greaterThan", e10[e10.hash = 35] = "hash", e10[e10.lessThan = 60] = "lessThan", e10[e10.minus = 45] = "minus", e10[e10.openBrace = 123] = "openBrace", e10[e10.openBracket = 91] = "openBracket", e10[e10.openParen = 40] = "openParen", e10[e10.percent = 37] = "percent", e10[e10.plus = 43] = "plus", e10[e10.question = 63] = "question", e10[e10.semicolon = 59] = "semicolon", e10[e10.singleQuote = 39] = "singleQuote", e10[e10.slash = 47] = "slash", e10[e10.tilde = 126] = "tilde", e10[e10.backspace = 8] = "backspace", e10[e10.formFeed = 12] = "formFeed", e10[e10.byteOrderMark = 65279] = "byteOrderMark", e10[e10.tab = 9] = "tab", e10[e10.verticalTab = 11] = "verticalTab", e10))(n02 || {}), i02 = ((e10) => (e10.Ts = ".ts", e10.Tsx = ".tsx", e10.Dts = ".d.ts", e10.Js = ".js", e10.Jsx = ".jsx", e10.Json = ".json", e10.TsBuildInfo = ".tsbuildinfo", e10.Mjs = ".mjs", e10.Mts = ".mts", e10.Dmts = ".d.mts", e10.Cjs = ".cjs", e10.Cts = ".cts", e10.Dcts = ".d.cts", e10))(i02 || {}), ud2 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.ContainsTypeScript = 1] = "ContainsTypeScript", e10[e10.ContainsJsx = 2] = "ContainsJsx", e10[e10.ContainsESNext = 4] = "ContainsESNext", e10[e10.ContainsES2022 = 8] = "ContainsES2022", e10[e10.ContainsES2021 = 16] = "ContainsES2021", e10[e10.ContainsES2020 = 32] = "ContainsES2020", e10[e10.ContainsES2019 = 64] = "ContainsES2019", e10[e10.ContainsES2018 = 128] = "ContainsES2018", e10[e10.ContainsES2017 = 256] = "ContainsES2017", e10[e10.ContainsES2016 = 512] = "ContainsES2016", e10[e10.ContainsES2015 = 1024] = "ContainsES2015", e10[e10.ContainsGenerator = 2048] = "ContainsGenerator", e10[e10.ContainsDestructuringAssignment = 4096] = "ContainsDestructuringAssignment", e10[e10.ContainsTypeScriptClassSyntax = 8192] = "ContainsTypeScriptClassSyntax", e10[e10.ContainsLexicalThis = 16384] = "ContainsLexicalThis", e10[e10.ContainsRestOrSpread = 32768] = "ContainsRestOrSpread", e10[e10.ContainsObjectRestOrSpread = 65536] = "ContainsObjectRestOrSpread", e10[e10.ContainsComputedPropertyName = 131072] = "ContainsComputedPropertyName", e10[e10.ContainsBlockScopedBinding = 262144] = "ContainsBlockScopedBinding", e10[e10.ContainsBindingPattern = 524288] = "ContainsBindingPattern", e10[e10.ContainsYield = 1048576] = "ContainsYield", e10[e10.ContainsAwait = 2097152] = "ContainsAwait", e10[e10.ContainsHoistedDeclarationOrCompletion = 4194304] = "ContainsHoistedDeclarationOrCompletion", e10[e10.ContainsDynamicImport = 8388608] = "ContainsDynamicImport", e10[e10.ContainsClassFields = 16777216] = "ContainsClassFields", e10[e10.ContainsDecorators = 33554432] = "ContainsDecorators", e10[e10.ContainsPossibleTopLevelAwait = 67108864] = "ContainsPossibleTopLevelAwait", e10[e10.ContainsLexicalSuper = 134217728] = "ContainsLexicalSuper", e10[e10.ContainsUpdateExpressionForIdentifier = 268435456] = "ContainsUpdateExpressionForIdentifier", e10[e10.ContainsPrivateIdentifierInExpression = 536870912] = "ContainsPrivateIdentifierInExpression", e10[e10.HasComputedFlags = -2147483648] = "HasComputedFlags", e10[e10.AssertTypeScript = 1] = "AssertTypeScript", e10[e10.AssertJsx = 2] = "AssertJsx", e10[e10.AssertESNext = 4] = "AssertESNext", e10[e10.AssertES2022 = 8] = "AssertES2022", e10[e10.AssertES2021 = 16] = "AssertES2021", e10[e10.AssertES2020 = 32] = "AssertES2020", e10[e10.AssertES2019 = 64] = "AssertES2019", e10[e10.AssertES2018 = 128] = "AssertES2018", e10[e10.AssertES2017 = 256] = "AssertES2017", e10[e10.AssertES2016 = 512] = "AssertES2016", e10[e10.AssertES2015 = 1024] = "AssertES2015", e10[e10.AssertGenerator = 2048] = "AssertGenerator", e10[e10.AssertDestructuringAssignment = 4096] = "AssertDestructuringAssignment", e10[e10.OuterExpressionExcludes = -2147483648] = "OuterExpressionExcludes", e10[e10.PropertyAccessExcludes = -2147483648] = "PropertyAccessExcludes", e10[e10.NodeExcludes = -2147483648] = "NodeExcludes", e10[e10.ArrowFunctionExcludes = -2072174592] = "ArrowFunctionExcludes", e10[e10.FunctionExcludes = -1937940480] = "FunctionExcludes", e10[e10.ConstructorExcludes = -1937948672] = "ConstructorExcludes", e10[e10.MethodOrAccessorExcludes = -2005057536] = "MethodOrAccessorExcludes", e10[e10.PropertyExcludes = -2013249536] = "PropertyExcludes", e10[e10.ClassExcludes = -2147344384] = "ClassExcludes", e10[e10.ModuleExcludes = -1941676032] = "ModuleExcludes", e10[e10.TypeExcludes = -2] = "TypeExcludes", e10[e10.ObjectLiteralExcludes = -2147278848] = "ObjectLiteralExcludes", e10[e10.ArrayLiteralOrCallOrNewExcludes = -2147450880] = "ArrayLiteralOrCallOrNewExcludes", e10[e10.VariableDeclarationListExcludes = -2146893824] = "VariableDeclarationListExcludes", e10[e10.ParameterExcludes = -2147483648] = "ParameterExcludes", e10[e10.CatchClauseExcludes = -2147418112] = "CatchClauseExcludes", e10[e10.BindingPatternExcludes = -2147450880] = "BindingPatternExcludes", e10[e10.ContainsLexicalThisOrSuper = 134234112] = "ContainsLexicalThisOrSuper", e10[e10.PropertyNamePropagatingFlags = 134234112] = "PropertyNamePropagatingFlags", e10))(ud2 || {}), pd = ((e10) => (e10[e10.TabStop = 0] = "TabStop", e10[e10.Placeholder = 1] = "Placeholder", e10[e10.Choice = 2] = "Choice", e10[e10.Variable = 3] = "Variable", e10))(pd || {}), fd = ((e10) => (e10[e10.None = 0] = "None", e10[e10.SingleLine = 1] = "SingleLine", e10[e10.MultiLine = 2] = "MultiLine", e10[e10.AdviseOnEmitNode = 4] = "AdviseOnEmitNode", e10[e10.NoSubstitution = 8] = "NoSubstitution", e10[e10.CapturesThis = 16] = "CapturesThis", e10[e10.NoLeadingSourceMap = 32] = "NoLeadingSourceMap", e10[e10.NoTrailingSourceMap = 64] = "NoTrailingSourceMap", e10[e10.NoSourceMap = 96] = "NoSourceMap", e10[e10.NoNestedSourceMaps = 128] = "NoNestedSourceMaps", e10[e10.NoTokenLeadingSourceMaps = 256] = "NoTokenLeadingSourceMaps", e10[e10.NoTokenTrailingSourceMaps = 512] = "NoTokenTrailingSourceMaps", e10[e10.NoTokenSourceMaps = 768] = "NoTokenSourceMaps", e10[e10.NoLeadingComments = 1024] = "NoLeadingComments", e10[e10.NoTrailingComments = 2048] = "NoTrailingComments", e10[e10.NoComments = 3072] = "NoComments", e10[e10.NoNestedComments = 4096] = "NoNestedComments", e10[e10.HelperName = 8192] = "HelperName", e10[e10.ExportName = 16384] = "ExportName", e10[e10.LocalName = 32768] = "LocalName", e10[e10.InternalName = 65536] = "InternalName", e10[e10.Indented = 131072] = "Indented", e10[e10.NoIndentation = 262144] = "NoIndentation", e10[e10.AsyncFunctionBody = 524288] = "AsyncFunctionBody", e10[e10.ReuseTempVariableScope = 1048576] = "ReuseTempVariableScope", e10[e10.CustomPrologue = 2097152] = "CustomPrologue", e10[e10.NoHoisting = 4194304] = "NoHoisting", e10[e10.Iterator = 8388608] = "Iterator", e10[e10.NoAsciiEscaping = 16777216] = "NoAsciiEscaping", e10))(fd || {}), a02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.TypeScriptClassWrapper = 1] = "TypeScriptClassWrapper", e10[e10.NeverApplyImportHelper = 2] = "NeverApplyImportHelper", e10[e10.IgnoreSourceNewlines = 4] = "IgnoreSourceNewlines", e10[e10.Immutable = 8] = "Immutable", e10[e10.IndirectCall = 16] = "IndirectCall", e10[e10.TransformPrivateStaticElements = 32] = "TransformPrivateStaticElements", e10))(a02 || {}), o02 = ((e10) => (e10[e10.Extends = 1] = "Extends", e10[e10.Assign = 2] = "Assign", e10[e10.Rest = 4] = "Rest", e10[e10.Decorate = 8] = "Decorate", e10[e10.ESDecorateAndRunInitializers = 8] = "ESDecorateAndRunInitializers", e10[e10.Metadata = 16] = "Metadata", e10[e10.Param = 32] = "Param", e10[e10.Awaiter = 64] = "Awaiter", e10[e10.Generator = 128] = "Generator", e10[e10.Values = 256] = "Values", e10[e10.Read = 512] = "Read", e10[e10.SpreadArray = 1024] = "SpreadArray", e10[e10.Await = 2048] = "Await", e10[e10.AsyncGenerator = 4096] = "AsyncGenerator", e10[e10.AsyncDelegator = 8192] = "AsyncDelegator", e10[e10.AsyncValues = 16384] = "AsyncValues", e10[e10.ExportStar = 32768] = "ExportStar", e10[e10.ImportStar = 65536] = "ImportStar", e10[e10.ImportDefault = 131072] = "ImportDefault", e10[e10.MakeTemplateObject = 262144] = "MakeTemplateObject", e10[e10.ClassPrivateFieldGet = 524288] = "ClassPrivateFieldGet", e10[e10.ClassPrivateFieldSet = 1048576] = "ClassPrivateFieldSet", e10[e10.ClassPrivateFieldIn = 2097152] = "ClassPrivateFieldIn", e10[e10.CreateBinding = 4194304] = "CreateBinding", e10[e10.SetFunctionName = 8388608] = "SetFunctionName", e10[e10.PropKey = 16777216] = "PropKey", e10[e10.AddDisposableResourceAndDisposeResources = 33554432] = "AddDisposableResourceAndDisposeResources", e10[e10.FirstEmitHelper = 1] = "FirstEmitHelper", e10[e10.LastEmitHelper = 33554432] = "LastEmitHelper", e10[e10.ForOfIncludes = 256] = "ForOfIncludes", e10[e10.ForAwaitOfIncludes = 16384] = "ForAwaitOfIncludes", e10[e10.AsyncGeneratorIncludes = 6144] = "AsyncGeneratorIncludes", e10[e10.AsyncDelegatorIncludes = 26624] = "AsyncDelegatorIncludes", e10[e10.SpreadIncludes = 1536] = "SpreadIncludes", e10))(o02 || {}), s02 = ((e10) => (e10[e10.SourceFile = 0] = "SourceFile", e10[e10.Expression = 1] = "Expression", e10[e10.IdentifierName = 2] = "IdentifierName", e10[e10.MappedTypeParameter = 3] = "MappedTypeParameter", e10[e10.Unspecified = 4] = "Unspecified", e10[e10.EmbeddedStatement = 5] = "EmbeddedStatement", e10[e10.JsxAttributeValue = 6] = "JsxAttributeValue", e10))(s02 || {}), _0 = ((e10) => (e10[e10.Parentheses = 1] = "Parentheses", e10[e10.TypeAssertions = 2] = "TypeAssertions", e10[e10.NonNullAssertions = 4] = "NonNullAssertions", e10[e10.PartiallyEmittedExpressions = 8] = "PartiallyEmittedExpressions", e10[e10.Assertions = 6] = "Assertions", e10[e10.All = 15] = "All", e10[e10.ExcludeJSDocTypeAssertion = 16] = "ExcludeJSDocTypeAssertion", e10))(_0 || {}), c02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.InParameters = 1] = "InParameters", e10[e10.VariablesHoistedInParameters = 2] = "VariablesHoistedInParameters", e10))(c02 || {}), l02 = ((e10) => (e10.Prologue = "prologue", e10.EmitHelpers = "emitHelpers", e10.NoDefaultLib = "no-default-lib", e10.Reference = "reference", e10.Type = "type", e10.TypeResolutionModeRequire = "type-require", e10.TypeResolutionModeImport = "type-import", e10.Lib = "lib", e10.Prepend = "prepend", e10.Text = "text", e10.Internal = "internal", e10))(l02 || {}), u02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.SingleLine = 0] = "SingleLine", e10[e10.MultiLine = 1] = "MultiLine", e10[e10.PreserveLines = 2] = "PreserveLines", e10[e10.LinesMask = 3] = "LinesMask", e10[e10.NotDelimited = 0] = "NotDelimited", e10[e10.BarDelimited = 4] = "BarDelimited", e10[e10.AmpersandDelimited = 8] = "AmpersandDelimited", e10[e10.CommaDelimited = 16] = "CommaDelimited", e10[e10.AsteriskDelimited = 32] = "AsteriskDelimited", e10[e10.DelimitersMask = 60] = "DelimitersMask", e10[e10.AllowTrailingComma = 64] = "AllowTrailingComma", e10[e10.Indented = 128] = "Indented", e10[e10.SpaceBetweenBraces = 256] = "SpaceBetweenBraces", e10[e10.SpaceBetweenSiblings = 512] = "SpaceBetweenSiblings", e10[e10.Braces = 1024] = "Braces", e10[e10.Parenthesis = 2048] = "Parenthesis", e10[e10.AngleBrackets = 4096] = "AngleBrackets", e10[e10.SquareBrackets = 8192] = "SquareBrackets", e10[e10.BracketsMask = 15360] = "BracketsMask", e10[e10.OptionalIfUndefined = 16384] = "OptionalIfUndefined", e10[e10.OptionalIfEmpty = 32768] = "OptionalIfEmpty", e10[e10.Optional = 49152] = "Optional", e10[e10.PreferNewLine = 65536] = "PreferNewLine", e10[e10.NoTrailingNewLine = 131072] = "NoTrailingNewLine", e10[e10.NoInterveningComments = 262144] = "NoInterveningComments", e10[e10.NoSpaceIfEmpty = 524288] = "NoSpaceIfEmpty", e10[e10.SingleElement = 1048576] = "SingleElement", e10[e10.SpaceAfterList = 2097152] = "SpaceAfterList", e10[e10.Modifiers = 2359808] = "Modifiers", e10[e10.HeritageClauses = 512] = "HeritageClauses", e10[e10.SingleLineTypeLiteralMembers = 768] = "SingleLineTypeLiteralMembers", e10[e10.MultiLineTypeLiteralMembers = 32897] = "MultiLineTypeLiteralMembers", e10[e10.SingleLineTupleTypeElements = 528] = "SingleLineTupleTypeElements", e10[e10.MultiLineTupleTypeElements = 657] = "MultiLineTupleTypeElements", e10[e10.UnionTypeConstituents = 516] = "UnionTypeConstituents", e10[e10.IntersectionTypeConstituents = 520] = "IntersectionTypeConstituents", e10[e10.ObjectBindingPatternElements = 525136] = "ObjectBindingPatternElements", e10[e10.ArrayBindingPatternElements = 524880] = "ArrayBindingPatternElements", e10[e10.ObjectLiteralExpressionProperties = 526226] = "ObjectLiteralExpressionProperties", e10[e10.ImportClauseEntries = 526226] = "ImportClauseEntries", e10[e10.ArrayLiteralExpressionElements = 8914] = "ArrayLiteralExpressionElements", e10[e10.CommaListElements = 528] = "CommaListElements", e10[e10.CallExpressionArguments = 2576] = "CallExpressionArguments", e10[e10.NewExpressionArguments = 18960] = "NewExpressionArguments", e10[e10.TemplateExpressionSpans = 262144] = "TemplateExpressionSpans", e10[e10.SingleLineBlockStatements = 768] = "SingleLineBlockStatements", e10[e10.MultiLineBlockStatements = 129] = "MultiLineBlockStatements", e10[e10.VariableDeclarationList = 528] = "VariableDeclarationList", e10[e10.SingleLineFunctionBodyStatements = 768] = "SingleLineFunctionBodyStatements", e10[e10.MultiLineFunctionBodyStatements = 1] = "MultiLineFunctionBodyStatements", e10[e10.ClassHeritageClauses = 0] = "ClassHeritageClauses", e10[e10.ClassMembers = 129] = "ClassMembers", e10[e10.InterfaceMembers = 129] = "InterfaceMembers", e10[e10.EnumMembers = 145] = "EnumMembers", e10[e10.CaseBlockClauses = 129] = "CaseBlockClauses", e10[e10.NamedImportsOrExportsElements = 525136] = "NamedImportsOrExportsElements", e10[e10.JsxElementOrFragmentChildren = 262144] = "JsxElementOrFragmentChildren", e10[e10.JsxElementAttributes = 262656] = "JsxElementAttributes", e10[e10.CaseOrDefaultClauseStatements = 163969] = "CaseOrDefaultClauseStatements", e10[e10.HeritageClauseTypes = 528] = "HeritageClauseTypes", e10[e10.SourceFileStatements = 131073] = "SourceFileStatements", e10[e10.Decorators = 2146305] = "Decorators", e10[e10.TypeArguments = 53776] = "TypeArguments", e10[e10.TypeParameters = 53776] = "TypeParameters", e10[e10.Parameters = 2576] = "Parameters", e10[e10.IndexSignatureParameters = 8848] = "IndexSignatureParameters", e10[e10.JSDocComment = 33] = "JSDocComment", e10))(u02 || {}), p0 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.TripleSlashXML = 1] = "TripleSlashXML", e10[e10.SingleLine = 2] = "SingleLine", e10[e10.MultiLine = 4] = "MultiLine", e10[e10.All = 7] = "All", e10[e10.Default = 7] = "Default", e10))(p0 || {}), qd = { reference: { args: [{ name: "types", optional: true, captureSpan: true }, { name: "lib", optional: true, captureSpan: true }, { name: "path", optional: true, captureSpan: true }, { name: "no-default-lib", optional: true }, { name: "resolution-mode", optional: true }], kind: 1 }, "amd-dependency": { args: [{ name: "path" }, { name: "name", optional: true }], kind: 1 }, "amd-module": { args: [{ name: "name" }], kind: 1 }, "ts-check": { kind: 2 }, "ts-nocheck": { kind: 2 }, jsx: { args: [{ name: "factory" }], kind: 4 }, jsxfrag: { args: [{ name: "factory" }], kind: 4 }, jsximportsource: { args: [{ name: "factory" }], kind: 4 }, jsxruntime: { args: [{ name: "factory" }], kind: 4 } }; - } }), SE = () => { - }, f02; - function dg(e10) { - return e10 === 47 || e10 === 92; - } - function xE(e10) { - return Jl3(e10) < 0; - } - function v_(e10) { - return Jl3(e10) > 0; - } - function wE(e10) { - let t12 = Jl3(e10); - return t12 > 0 && t12 === e10.length; - } - function mg2(e10) { - return Jl3(e10) !== 0; - } - function rs6(e10) { - return /^\.\.?($|[\\/])/.test(e10); - } - function CE(e10) { - return !mg2(e10) && !rs6(e10); - } - function Qv(e10) { - return eo3(T_(e10), "."); - } - function La2(e10, t12) { - return e10.length > t12.length && ts6(e10, t12); - } - function ei7(e10, t12) { - for (let r9 of t12) - if (La2(e10, r9)) - return true; - return false; - } - function zd(e10) { - return e10.length > 0 && dg(e10.charCodeAt(e10.length - 1)); - } - function Jb(e10) { - return e10 >= 97 && e10 <= 122 || e10 >= 65 && e10 <= 90; - } - function EE(e10, t12) { - let r9 = e10.charCodeAt(t12); - if (r9 === 58) - return t12 + 1; - if (r9 === 37 && e10.charCodeAt(t12 + 1) === 51) { - let a = e10.charCodeAt(t12 + 2); - if (a === 97 || a === 65) - return t12 + 3; - } - return -1; - } - function Jl3(e10) { - if (!e10) - return 0; - let t12 = e10.charCodeAt(0); - if (t12 === 47 || t12 === 92) { - if (e10.charCodeAt(1) !== t12) - return 1; - let a = e10.indexOf(t12 === 47 ? fn6 : vg2, 2); - return a < 0 ? e10.length : a + 1; - } - if (Jb(t12) && e10.charCodeAt(1) === 58) { - let a = e10.charCodeAt(2); - if (a === 47 || a === 92) - return 3; - if (e10.length === 2) - return 2; - } - let r9 = e10.indexOf(m02); - if (r9 !== -1) { - let a = r9 + m02.length, _10 = e10.indexOf(fn6, a); - if (_10 !== -1) { - let p5 = e10.slice(0, r9), d5 = e10.slice(a, _10); - if (p5 === "file" && (d5 === "" || d5 === "localhost") && Jb(e10.charCodeAt(_10 + 1))) { - let h5 = EE(e10, _10 + 2); - if (h5 !== -1) { - if (e10.charCodeAt(h5) === 47) - return ~(h5 + 1); - if (h5 === e10.length) - return ~h5; - } - } - return ~(_10 + 1); - } - return ~e10.length; - } - return 0; - } - function Ei7(e10) { - let t12 = Jl3(e10); - return t12 < 0 ? ~t12 : t12; - } - function $i5(e10) { - e10 = qo3(e10); - let t12 = Ei7(e10); - return t12 === e10.length ? e10 : (e10 = S_(e10), e10.slice(0, Math.max(t12, e10.lastIndexOf(fn6)))); - } - function T_(e10, t12, r9) { - if (e10 = qo3(e10), Ei7(e10) === e10.length) - return ""; - e10 = S_(e10); - let _10 = e10.slice(Math.max(Ei7(e10), e10.lastIndexOf(fn6) + 1)), p5 = t12 !== void 0 && r9 !== void 0 ? dd(_10, t12, r9) : void 0; - return p5 ? _10.slice(0, _10.length - p5.length) : _10; - } - function Rb(e10, t12, r9) { - if (Fr5(t12, ".") || (t12 = "." + t12), e10.length >= t12.length && e10.charCodeAt(e10.length - t12.length) === 46) { - let a = e10.slice(e10.length - t12.length); - if (r9(a, t12)) - return a; - } - } - function AE(e10, t12, r9) { - if (typeof t12 == "string") - return Rb(e10, t12, r9) || ""; - for (let a of t12) { - let _10 = Rb(e10, a, r9); - if (_10) - return _10; - } - return ""; - } - function dd(e10, t12, r9) { - if (t12) - return AE(S_(e10), t12, r9 ? s_ : Ll3); - let a = T_(e10), _10 = a.lastIndexOf("."); - return _10 >= 0 ? a.substring(_10) : ""; - } - function kE(e10, t12) { - let r9 = e10.substring(0, t12), a = e10.substring(t12).split(fn6); - return a.length && !wi7(a) && a.pop(), [r9, ...a]; - } - function Ai7(e10, t12 = "") { - return e10 = hr5(t12, e10), kE(e10, Ei7(e10)); - } - function Uo2(e10, t12) { - return e10.length === 0 ? "" : (e10[0] && zo3(e10[0])) + e10.slice(1, t12).join(fn6); - } - function qo3(e10) { - return e10.indexOf("\\") !== -1 ? e10.replace(t42, fn6) : e10; - } - function Da2(e10) { - if (!mt7(e10)) - return []; - let t12 = [e10[0]]; - for (let r9 = 1; r9 < e10.length; r9++) { - let a = e10[r9]; - if (a && a !== ".") { - if (a === "..") { - if (t12.length > 1) { - if (t12[t12.length - 1] !== "..") { - t12.pop(); - continue; - } - } else if (t12[0]) - continue; - } - t12.push(a); - } - } - return t12; - } - function hr5(e10, ...t12) { - e10 && (e10 = qo3(e10)); - for (let r9 of t12) - r9 && (r9 = qo3(r9), !e10 || Ei7(r9) !== 0 ? e10 = r9 : e10 = zo3(e10) + r9); - return e10; - } - function d02(e10, ...t12) { - return pn6(mt7(t12) ? hr5(e10, ...t12) : qo3(e10)); - } - function Wd(e10, t12) { - return Da2(Ai7(e10, t12)); - } - function Pa3(e10, t12) { - return Uo2(Wd(e10, t12)); - } - function pn6(e10) { - if (e10 = qo3(e10), !vl2.test(e10)) - return e10; - let t12 = e10.replace(/\/\.\//g, "/").replace(/^\.\//, ""); - if (t12 !== e10 && (e10 = t12, !vl2.test(e10))) - return e10; - let r9 = Uo2(Da2(Ai7(e10))); - return r9 && zd(e10) ? zo3(r9) : r9; - } - function DE(e10) { - return e10.length === 0 ? "" : e10.slice(1).join(fn6); - } - function PE(e10, t12) { - return DE(Wd(e10, t12)); - } - function xi8(e10, t12, r9) { - let a = v_(e10) ? pn6(e10) : Pa3(e10, t12); - return r9(a); - } - function S_(e10) { - return zd(e10) ? e10.substr(0, e10.length - 1) : e10; - } - function zo3(e10) { - return zd(e10) ? e10 : e10 + fn6; - } - function hg2(e10) { - return !mg2(e10) && !rs6(e10) ? "./" + e10 : e10; - } - function Yv(e10, t12, r9, a) { - let _10 = r9 !== void 0 && a !== void 0 ? dd(e10, r9, a) : dd(e10); - return _10 ? e10.slice(0, e10.length - _10.length) + (Fr5(t12, ".") ? t12 : "." + t12) : e10; - } - function yg2(e10, t12, r9) { - if (e10 === t12) - return 0; - if (e10 === void 0) - return -1; - if (t12 === void 0) - return 1; - let a = e10.substring(0, Ei7(e10)), _10 = t12.substring(0, Ei7(t12)), p5 = Fd(a, _10); - if (p5 !== 0) - return p5; - let d5 = e10.substring(a.length), h5 = t12.substring(_10.length); - if (!vl2.test(d5) && !vl2.test(h5)) - return r9(d5, h5); - let l = Da2(Ai7(e10)), v10 = Da2(Ai7(t12)), y5 = Math.min(l.length, v10.length); - for (let C10 = 1; C10 < y5; C10++) { - let S10 = r9(l[C10], v10[C10]); - if (S10 !== 0) - return S10; - } - return kr7(l.length, v10.length); - } - function IE(e10, t12) { - return yg2(e10, t12, Ci7); - } - function NE(e10, t12) { - return yg2(e10, t12, Fd); - } - function OE(e10, t12, r9, a) { - return typeof r9 == "string" ? (e10 = hr5(r9, e10), t12 = hr5(r9, t12)) : typeof r9 == "boolean" && (a = r9), yg2(e10, t12, _g(a)); - } - function Kv(e10, t12, r9, a) { - if (typeof r9 == "string" ? (e10 = hr5(r9, e10), t12 = hr5(r9, t12)) : typeof r9 == "boolean" && (a = r9), e10 === void 0 || t12 === void 0) - return false; - if (e10 === t12) - return true; - let _10 = Da2(Ai7(e10)), p5 = Da2(Ai7(t12)); - if (p5.length < _10.length) - return false; - let d5 = a ? s_ : Ll3; - for (let h5 = 0; h5 < _10.length; h5++) - if (!(h5 === 0 ? s_ : d5)(_10[h5], p5[h5])) - return false; - return true; - } - function ME(e10, t12, r9) { - let a = r9(e10), _10 = r9(t12); - return Fr5(a, _10 + "/") || Fr5(a, _10 + "\\"); - } - function gg2(e10, t12, r9, a) { - let _10 = Da2(Ai7(e10)), p5 = Da2(Ai7(t12)), d5; - for (d5 = 0; d5 < _10.length && d5 < p5.length; d5++) { - let v10 = a(_10[d5]), y5 = a(p5[d5]); - if (!(d5 === 0 ? s_ : r9)(v10, y5)) - break; - } - if (d5 === 0) - return p5; - let h5 = p5.slice(d5), l = []; - for (; d5 < _10.length; d5++) - l.push(".."); - return ["", ...l, ...h5]; - } - function Zv(e10, t12, r9) { - N6.assert(Ei7(e10) > 0 == Ei7(t12) > 0, "Paths must either both be absolute or both be relative"); - let p5 = gg2(e10, t12, (typeof r9 == "boolean" ? r9 : false) ? s_ : Ll3, typeof r9 == "function" ? r9 : bt7); - return Uo2(p5); - } - function LE(e10, t12, r9) { - return v_(e10) ? bg3(t12, e10, t12, r9, false) : e10; - } - function JE(e10, t12, r9) { - return hg2(Zv($i5(e10), t12, r9)); - } - function bg3(e10, t12, r9, a, _10) { - let p5 = gg2(d02(r9, e10), d02(r9, t12), Ll3, a), d5 = p5[0]; - if (_10 && v_(d5)) { - let h5 = d5.charAt(0) === fn6 ? "file://" : "file:///"; - p5[0] = h5 + d5; - } - return Uo2(p5); - } - function e4(e10, t12) { - for (; ; ) { - let r9 = t12(e10); - if (r9 !== void 0) - return r9; - let a = $i5(e10); - if (a === e10) - return; - e10 = a; - } - } - function RE(e10) { - return ts6(e10, "/node_modules"); - } - var fn6, vg2, m02, t42, vl2, r4 = Vt4({ "src/compiler/path.ts"() { - "use strict"; - Dr5(), fn6 = "/", vg2 = "\\", m02 = "://", t42 = /\\/g, vl2 = /(?:\/\/)|(?:^|\/)\.\.?(?:$|\/)/; - } }); - function i(e10, t12, r9, a, _10, p5, d5) { - return { code: e10, category: t12, key: r9, message: a, reportsUnnecessary: _10, elidedInCompatabilityPyramid: p5, reportsDeprecated: d5 }; - } - var U8, jE = Vt4({ "src/compiler/diagnosticInformationMap.generated.ts"() { - "use strict"; - $v(), U8 = { Unterminated_string_literal: i(1002, 1, "Unterminated_string_literal_1002", "Unterminated string literal."), Identifier_expected: i(1003, 1, "Identifier_expected_1003", "Identifier expected."), _0_expected: i(1005, 1, "_0_expected_1005", "'{0}' expected."), A_file_cannot_have_a_reference_to_itself: i(1006, 1, "A_file_cannot_have_a_reference_to_itself_1006", "A file cannot have a reference to itself."), The_parser_expected_to_find_a_1_to_match_the_0_token_here: i(1007, 1, "The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007", "The parser expected to find a '{1}' to match the '{0}' token here."), Trailing_comma_not_allowed: i(1009, 1, "Trailing_comma_not_allowed_1009", "Trailing comma not allowed."), Asterisk_Slash_expected: i(1010, 1, "Asterisk_Slash_expected_1010", "'*/' expected."), An_element_access_expression_should_take_an_argument: i(1011, 1, "An_element_access_expression_should_take_an_argument_1011", "An element access expression should take an argument."), Unexpected_token: i(1012, 1, "Unexpected_token_1012", "Unexpected token."), A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma: i(1013, 1, "A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013", "A rest parameter or binding pattern may not have a trailing comma."), A_rest_parameter_must_be_last_in_a_parameter_list: i(1014, 1, "A_rest_parameter_must_be_last_in_a_parameter_list_1014", "A rest parameter must be last in a parameter list."), Parameter_cannot_have_question_mark_and_initializer: i(1015, 1, "Parameter_cannot_have_question_mark_and_initializer_1015", "Parameter cannot have question mark and initializer."), A_required_parameter_cannot_follow_an_optional_parameter: i(1016, 1, "A_required_parameter_cannot_follow_an_optional_parameter_1016", "A required parameter cannot follow an optional parameter."), An_index_signature_cannot_have_a_rest_parameter: i(1017, 1, "An_index_signature_cannot_have_a_rest_parameter_1017", "An index signature cannot have a rest parameter."), An_index_signature_parameter_cannot_have_an_accessibility_modifier: i(1018, 1, "An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018", "An index signature parameter cannot have an accessibility modifier."), An_index_signature_parameter_cannot_have_a_question_mark: i(1019, 1, "An_index_signature_parameter_cannot_have_a_question_mark_1019", "An index signature parameter cannot have a question mark."), An_index_signature_parameter_cannot_have_an_initializer: i(1020, 1, "An_index_signature_parameter_cannot_have_an_initializer_1020", "An index signature parameter cannot have an initializer."), An_index_signature_must_have_a_type_annotation: i(1021, 1, "An_index_signature_must_have_a_type_annotation_1021", "An index signature must have a type annotation."), An_index_signature_parameter_must_have_a_type_annotation: i(1022, 1, "An_index_signature_parameter_must_have_a_type_annotation_1022", "An index signature parameter must have a type annotation."), readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: i(1024, 1, "readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024", "'readonly' modifier can only appear on a property declaration or index signature."), An_index_signature_cannot_have_a_trailing_comma: i(1025, 1, "An_index_signature_cannot_have_a_trailing_comma_1025", "An index signature cannot have a trailing comma."), Accessibility_modifier_already_seen: i(1028, 1, "Accessibility_modifier_already_seen_1028", "Accessibility modifier already seen."), _0_modifier_must_precede_1_modifier: i(1029, 1, "_0_modifier_must_precede_1_modifier_1029", "'{0}' modifier must precede '{1}' modifier."), _0_modifier_already_seen: i(1030, 1, "_0_modifier_already_seen_1030", "'{0}' modifier already seen."), _0_modifier_cannot_appear_on_class_elements_of_this_kind: i(1031, 1, "_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031", "'{0}' modifier cannot appear on class elements of this kind."), super_must_be_followed_by_an_argument_list_or_member_access: i(1034, 1, "super_must_be_followed_by_an_argument_list_or_member_access_1034", "'super' must be followed by an argument list or member access."), Only_ambient_modules_can_use_quoted_names: i(1035, 1, "Only_ambient_modules_can_use_quoted_names_1035", "Only ambient modules can use quoted names."), Statements_are_not_allowed_in_ambient_contexts: i(1036, 1, "Statements_are_not_allowed_in_ambient_contexts_1036", "Statements are not allowed in ambient contexts."), A_declare_modifier_cannot_be_used_in_an_already_ambient_context: i(1038, 1, "A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038", "A 'declare' modifier cannot be used in an already ambient context."), Initializers_are_not_allowed_in_ambient_contexts: i(1039, 1, "Initializers_are_not_allowed_in_ambient_contexts_1039", "Initializers are not allowed in ambient contexts."), _0_modifier_cannot_be_used_in_an_ambient_context: i(1040, 1, "_0_modifier_cannot_be_used_in_an_ambient_context_1040", "'{0}' modifier cannot be used in an ambient context."), _0_modifier_cannot_be_used_here: i(1042, 1, "_0_modifier_cannot_be_used_here_1042", "'{0}' modifier cannot be used here."), _0_modifier_cannot_appear_on_a_module_or_namespace_element: i(1044, 1, "_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044", "'{0}' modifier cannot appear on a module or namespace element."), Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier: i(1046, 1, "Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046", "Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."), A_rest_parameter_cannot_be_optional: i(1047, 1, "A_rest_parameter_cannot_be_optional_1047", "A rest parameter cannot be optional."), A_rest_parameter_cannot_have_an_initializer: i(1048, 1, "A_rest_parameter_cannot_have_an_initializer_1048", "A rest parameter cannot have an initializer."), A_set_accessor_must_have_exactly_one_parameter: i(1049, 1, "A_set_accessor_must_have_exactly_one_parameter_1049", "A 'set' accessor must have exactly one parameter."), A_set_accessor_cannot_have_an_optional_parameter: i(1051, 1, "A_set_accessor_cannot_have_an_optional_parameter_1051", "A 'set' accessor cannot have an optional parameter."), A_set_accessor_parameter_cannot_have_an_initializer: i(1052, 1, "A_set_accessor_parameter_cannot_have_an_initializer_1052", "A 'set' accessor parameter cannot have an initializer."), A_set_accessor_cannot_have_rest_parameter: i(1053, 1, "A_set_accessor_cannot_have_rest_parameter_1053", "A 'set' accessor cannot have rest parameter."), A_get_accessor_cannot_have_parameters: i(1054, 1, "A_get_accessor_cannot_have_parameters_1054", "A 'get' accessor cannot have parameters."), Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: i(1055, 1, "Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Prom_1055", "Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value."), Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: i(1056, 1, "Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056", "Accessors are only available when targeting ECMAScript 5 and higher."), The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: i(1058, 1, "The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058", "The return type of an async function must either be a valid promise or must not contain a callable 'then' member."), A_promise_must_have_a_then_method: i(1059, 1, "A_promise_must_have_a_then_method_1059", "A promise must have a 'then' method."), The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback: i(1060, 1, "The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060", "The first parameter of the 'then' method of a promise must be a callback."), Enum_member_must_have_initializer: i(1061, 1, "Enum_member_must_have_initializer_1061", "Enum member must have initializer."), Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: i(1062, 1, "Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062", "Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."), An_export_assignment_cannot_be_used_in_a_namespace: i(1063, 1, "An_export_assignment_cannot_be_used_in_a_namespace_1063", "An export assignment cannot be used in a namespace."), The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: i(1064, 1, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064", "The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"), The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: i(1065, 1, "The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065", "The return type of an async function or method must be the global Promise type."), In_ambient_enum_declarations_member_initializer_must_be_constant_expression: i(1066, 1, "In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066", "In ambient enum declarations member initializer must be constant expression."), Unexpected_token_A_constructor_method_accessor_or_property_was_expected: i(1068, 1, "Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068", "Unexpected token. A constructor, method, accessor, or property was expected."), Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: i(1069, 1, "Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069", "Unexpected token. A type parameter name was expected without curly braces."), _0_modifier_cannot_appear_on_a_type_member: i(1070, 1, "_0_modifier_cannot_appear_on_a_type_member_1070", "'{0}' modifier cannot appear on a type member."), _0_modifier_cannot_appear_on_an_index_signature: i(1071, 1, "_0_modifier_cannot_appear_on_an_index_signature_1071", "'{0}' modifier cannot appear on an index signature."), A_0_modifier_cannot_be_used_with_an_import_declaration: i(1079, 1, "A_0_modifier_cannot_be_used_with_an_import_declaration_1079", "A '{0}' modifier cannot be used with an import declaration."), Invalid_reference_directive_syntax: i(1084, 1, "Invalid_reference_directive_syntax_1084", "Invalid 'reference' directive syntax."), _0_modifier_cannot_appear_on_a_constructor_declaration: i(1089, 1, "_0_modifier_cannot_appear_on_a_constructor_declaration_1089", "'{0}' modifier cannot appear on a constructor declaration."), _0_modifier_cannot_appear_on_a_parameter: i(1090, 1, "_0_modifier_cannot_appear_on_a_parameter_1090", "'{0}' modifier cannot appear on a parameter."), Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: i(1091, 1, "Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091", "Only a single variable declaration is allowed in a 'for...in' statement."), Type_parameters_cannot_appear_on_a_constructor_declaration: i(1092, 1, "Type_parameters_cannot_appear_on_a_constructor_declaration_1092", "Type parameters cannot appear on a constructor declaration."), Type_annotation_cannot_appear_on_a_constructor_declaration: i(1093, 1, "Type_annotation_cannot_appear_on_a_constructor_declaration_1093", "Type annotation cannot appear on a constructor declaration."), An_accessor_cannot_have_type_parameters: i(1094, 1, "An_accessor_cannot_have_type_parameters_1094", "An accessor cannot have type parameters."), A_set_accessor_cannot_have_a_return_type_annotation: i(1095, 1, "A_set_accessor_cannot_have_a_return_type_annotation_1095", "A 'set' accessor cannot have a return type annotation."), An_index_signature_must_have_exactly_one_parameter: i(1096, 1, "An_index_signature_must_have_exactly_one_parameter_1096", "An index signature must have exactly one parameter."), _0_list_cannot_be_empty: i(1097, 1, "_0_list_cannot_be_empty_1097", "'{0}' list cannot be empty."), Type_parameter_list_cannot_be_empty: i(1098, 1, "Type_parameter_list_cannot_be_empty_1098", "Type parameter list cannot be empty."), Type_argument_list_cannot_be_empty: i(1099, 1, "Type_argument_list_cannot_be_empty_1099", "Type argument list cannot be empty."), Invalid_use_of_0_in_strict_mode: i(1100, 1, "Invalid_use_of_0_in_strict_mode_1100", "Invalid use of '{0}' in strict mode."), with_statements_are_not_allowed_in_strict_mode: i(1101, 1, "with_statements_are_not_allowed_in_strict_mode_1101", "'with' statements are not allowed in strict mode."), delete_cannot_be_called_on_an_identifier_in_strict_mode: i(1102, 1, "delete_cannot_be_called_on_an_identifier_in_strict_mode_1102", "'delete' cannot be called on an identifier in strict mode."), for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: i(1103, 1, "for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103", "'for await' loops are only allowed within async functions and at the top levels of modules."), A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: i(1104, 1, "A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104", "A 'continue' statement can only be used within an enclosing iteration statement."), A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: i(1105, 1, "A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105", "A 'break' statement can only be used within an enclosing iteration or switch statement."), The_left_hand_side_of_a_for_of_statement_may_not_be_async: i(1106, 1, "The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106", "The left-hand side of a 'for...of' statement may not be 'async'."), Jump_target_cannot_cross_function_boundary: i(1107, 1, "Jump_target_cannot_cross_function_boundary_1107", "Jump target cannot cross function boundary."), A_return_statement_can_only_be_used_within_a_function_body: i(1108, 1, "A_return_statement_can_only_be_used_within_a_function_body_1108", "A 'return' statement can only be used within a function body."), Expression_expected: i(1109, 1, "Expression_expected_1109", "Expression expected."), Type_expected: i(1110, 1, "Type_expected_1110", "Type expected."), Private_field_0_must_be_declared_in_an_enclosing_class: i(1111, 1, "Private_field_0_must_be_declared_in_an_enclosing_class_1111", "Private field '{0}' must be declared in an enclosing class."), A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: i(1113, 1, "A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113", "A 'default' clause cannot appear more than once in a 'switch' statement."), Duplicate_label_0: i(1114, 1, "Duplicate_label_0_1114", "Duplicate label '{0}'."), A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: i(1115, 1, "A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115", "A 'continue' statement can only jump to a label of an enclosing iteration statement."), A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: i(1116, 1, "A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116", "A 'break' statement can only jump to a label of an enclosing statement."), An_object_literal_cannot_have_multiple_properties_with_the_same_name: i(1117, 1, "An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117", "An object literal cannot have multiple properties with the same name."), An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: i(1118, 1, "An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118", "An object literal cannot have multiple get/set accessors with the same name."), An_object_literal_cannot_have_property_and_accessor_with_the_same_name: i(1119, 1, "An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119", "An object literal cannot have property and accessor with the same name."), An_export_assignment_cannot_have_modifiers: i(1120, 1, "An_export_assignment_cannot_have_modifiers_1120", "An export assignment cannot have modifiers."), Octal_literals_are_not_allowed_Use_the_syntax_0: i(1121, 1, "Octal_literals_are_not_allowed_Use_the_syntax_0_1121", "Octal literals are not allowed. Use the syntax '{0}'."), Variable_declaration_list_cannot_be_empty: i(1123, 1, "Variable_declaration_list_cannot_be_empty_1123", "Variable declaration list cannot be empty."), Digit_expected: i(1124, 1, "Digit_expected_1124", "Digit expected."), Hexadecimal_digit_expected: i(1125, 1, "Hexadecimal_digit_expected_1125", "Hexadecimal digit expected."), Unexpected_end_of_text: i(1126, 1, "Unexpected_end_of_text_1126", "Unexpected end of text."), Invalid_character: i(1127, 1, "Invalid_character_1127", "Invalid character."), Declaration_or_statement_expected: i(1128, 1, "Declaration_or_statement_expected_1128", "Declaration or statement expected."), Statement_expected: i(1129, 1, "Statement_expected_1129", "Statement expected."), case_or_default_expected: i(1130, 1, "case_or_default_expected_1130", "'case' or 'default' expected."), Property_or_signature_expected: i(1131, 1, "Property_or_signature_expected_1131", "Property or signature expected."), Enum_member_expected: i(1132, 1, "Enum_member_expected_1132", "Enum member expected."), Variable_declaration_expected: i(1134, 1, "Variable_declaration_expected_1134", "Variable declaration expected."), Argument_expression_expected: i(1135, 1, "Argument_expression_expected_1135", "Argument expression expected."), Property_assignment_expected: i(1136, 1, "Property_assignment_expected_1136", "Property assignment expected."), Expression_or_comma_expected: i(1137, 1, "Expression_or_comma_expected_1137", "Expression or comma expected."), Parameter_declaration_expected: i(1138, 1, "Parameter_declaration_expected_1138", "Parameter declaration expected."), Type_parameter_declaration_expected: i(1139, 1, "Type_parameter_declaration_expected_1139", "Type parameter declaration expected."), Type_argument_expected: i(1140, 1, "Type_argument_expected_1140", "Type argument expected."), String_literal_expected: i(1141, 1, "String_literal_expected_1141", "String literal expected."), Line_break_not_permitted_here: i(1142, 1, "Line_break_not_permitted_here_1142", "Line break not permitted here."), or_expected: i(1144, 1, "or_expected_1144", "'{' or ';' expected."), or_JSX_element_expected: i(1145, 1, "or_JSX_element_expected_1145", "'{' or JSX element expected."), Declaration_expected: i(1146, 1, "Declaration_expected_1146", "Declaration expected."), Import_declarations_in_a_namespace_cannot_reference_a_module: i(1147, 1, "Import_declarations_in_a_namespace_cannot_reference_a_module_1147", "Import declarations in a namespace cannot reference a module."), Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: i(1148, 1, "Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148", "Cannot use imports, exports, or module augmentations when '--module' is 'none'."), File_name_0_differs_from_already_included_file_name_1_only_in_casing: i(1149, 1, "File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149", "File name '{0}' differs from already included file name '{1}' only in casing."), _0_declarations_must_be_initialized: i(1155, 1, "_0_declarations_must_be_initialized_1155", "'{0}' declarations must be initialized."), _0_declarations_can_only_be_declared_inside_a_block: i(1156, 1, "_0_declarations_can_only_be_declared_inside_a_block_1156", "'{0}' declarations can only be declared inside a block."), Unterminated_template_literal: i(1160, 1, "Unterminated_template_literal_1160", "Unterminated template literal."), Unterminated_regular_expression_literal: i(1161, 1, "Unterminated_regular_expression_literal_1161", "Unterminated regular expression literal."), An_object_member_cannot_be_declared_optional: i(1162, 1, "An_object_member_cannot_be_declared_optional_1162", "An object member cannot be declared optional."), A_yield_expression_is_only_allowed_in_a_generator_body: i(1163, 1, "A_yield_expression_is_only_allowed_in_a_generator_body_1163", "A 'yield' expression is only allowed in a generator body."), Computed_property_names_are_not_allowed_in_enums: i(1164, 1, "Computed_property_names_are_not_allowed_in_enums_1164", "Computed property names are not allowed in enums."), A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: i(1165, 1, "A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165", "A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."), A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type: i(1166, 1, "A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166", "A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."), A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: i(1168, 1, "A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168", "A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."), A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: i(1169, 1, "A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169", "A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."), A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: i(1170, 1, "A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170", "A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."), A_comma_expression_is_not_allowed_in_a_computed_property_name: i(1171, 1, "A_comma_expression_is_not_allowed_in_a_computed_property_name_1171", "A comma expression is not allowed in a computed property name."), extends_clause_already_seen: i(1172, 1, "extends_clause_already_seen_1172", "'extends' clause already seen."), extends_clause_must_precede_implements_clause: i(1173, 1, "extends_clause_must_precede_implements_clause_1173", "'extends' clause must precede 'implements' clause."), Classes_can_only_extend_a_single_class: i(1174, 1, "Classes_can_only_extend_a_single_class_1174", "Classes can only extend a single class."), implements_clause_already_seen: i(1175, 1, "implements_clause_already_seen_1175", "'implements' clause already seen."), Interface_declaration_cannot_have_implements_clause: i(1176, 1, "Interface_declaration_cannot_have_implements_clause_1176", "Interface declaration cannot have 'implements' clause."), Binary_digit_expected: i(1177, 1, "Binary_digit_expected_1177", "Binary digit expected."), Octal_digit_expected: i(1178, 1, "Octal_digit_expected_1178", "Octal digit expected."), Unexpected_token_expected: i(1179, 1, "Unexpected_token_expected_1179", "Unexpected token. '{' expected."), Property_destructuring_pattern_expected: i(1180, 1, "Property_destructuring_pattern_expected_1180", "Property destructuring pattern expected."), Array_element_destructuring_pattern_expected: i(1181, 1, "Array_element_destructuring_pattern_expected_1181", "Array element destructuring pattern expected."), A_destructuring_declaration_must_have_an_initializer: i(1182, 1, "A_destructuring_declaration_must_have_an_initializer_1182", "A destructuring declaration must have an initializer."), An_implementation_cannot_be_declared_in_ambient_contexts: i(1183, 1, "An_implementation_cannot_be_declared_in_ambient_contexts_1183", "An implementation cannot be declared in ambient contexts."), Modifiers_cannot_appear_here: i(1184, 1, "Modifiers_cannot_appear_here_1184", "Modifiers cannot appear here."), Merge_conflict_marker_encountered: i(1185, 1, "Merge_conflict_marker_encountered_1185", "Merge conflict marker encountered."), A_rest_element_cannot_have_an_initializer: i(1186, 1, "A_rest_element_cannot_have_an_initializer_1186", "A rest element cannot have an initializer."), A_parameter_property_may_not_be_declared_using_a_binding_pattern: i(1187, 1, "A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187", "A parameter property may not be declared using a binding pattern."), Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: i(1188, 1, "Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188", "Only a single variable declaration is allowed in a 'for...of' statement."), The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: i(1189, 1, "The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189", "The variable declaration of a 'for...in' statement cannot have an initializer."), The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: i(1190, 1, "The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190", "The variable declaration of a 'for...of' statement cannot have an initializer."), An_import_declaration_cannot_have_modifiers: i(1191, 1, "An_import_declaration_cannot_have_modifiers_1191", "An import declaration cannot have modifiers."), Module_0_has_no_default_export: i(1192, 1, "Module_0_has_no_default_export_1192", "Module '{0}' has no default export."), An_export_declaration_cannot_have_modifiers: i(1193, 1, "An_export_declaration_cannot_have_modifiers_1193", "An export declaration cannot have modifiers."), Export_declarations_are_not_permitted_in_a_namespace: i(1194, 1, "Export_declarations_are_not_permitted_in_a_namespace_1194", "Export declarations are not permitted in a namespace."), export_Asterisk_does_not_re_export_a_default: i(1195, 1, "export_Asterisk_does_not_re_export_a_default_1195", "'export *' does not re-export a default."), Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: i(1196, 1, "Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196", "Catch clause variable type annotation must be 'any' or 'unknown' if specified."), Catch_clause_variable_cannot_have_an_initializer: i(1197, 1, "Catch_clause_variable_cannot_have_an_initializer_1197", "Catch clause variable cannot have an initializer."), An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: i(1198, 1, "An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198", "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."), Unterminated_Unicode_escape_sequence: i(1199, 1, "Unterminated_Unicode_escape_sequence_1199", "Unterminated Unicode escape sequence."), Line_terminator_not_permitted_before_arrow: i(1200, 1, "Line_terminator_not_permitted_before_arrow_1200", "Line terminator not permitted before arrow."), Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: i(1202, 1, "Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202", `Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`), Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead: i(1203, 1, "Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203", "Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."), Re_exporting_a_type_when_0_is_enabled_requires_using_export_type: i(1205, 1, "Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205", "Re-exporting a type when '{0}' is enabled requires using 'export type'."), Decorators_are_not_valid_here: i(1206, 1, "Decorators_are_not_valid_here_1206", "Decorators are not valid here."), Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: i(1207, 1, "Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207", "Decorators cannot be applied to multiple get/set accessors of the same name."), Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0: i(1209, 1, "Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209", "Invalid optional chain from new expression. Did you mean to call '{0}()'?"), Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode: i(1210, 1, "Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210", "Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."), A_class_declaration_without_the_default_modifier_must_have_a_name: i(1211, 1, "A_class_declaration_without_the_default_modifier_must_have_a_name_1211", "A class declaration without the 'default' modifier must have a name."), Identifier_expected_0_is_a_reserved_word_in_strict_mode: i(1212, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212", "Identifier expected. '{0}' is a reserved word in strict mode."), Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: i(1213, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213", "Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."), Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: i(1214, 1, "Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214", "Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."), Invalid_use_of_0_Modules_are_automatically_in_strict_mode: i(1215, 1, "Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215", "Invalid use of '{0}'. Modules are automatically in strict mode."), Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules: i(1216, 1, "Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216", "Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."), Export_assignment_is_not_supported_when_module_flag_is_system: i(1218, 1, "Export_assignment_is_not_supported_when_module_flag_is_system_1218", "Export assignment is not supported when '--module' flag is 'system'."), Generators_are_not_allowed_in_an_ambient_context: i(1221, 1, "Generators_are_not_allowed_in_an_ambient_context_1221", "Generators are not allowed in an ambient context."), An_overload_signature_cannot_be_declared_as_a_generator: i(1222, 1, "An_overload_signature_cannot_be_declared_as_a_generator_1222", "An overload signature cannot be declared as a generator."), _0_tag_already_specified: i(1223, 1, "_0_tag_already_specified_1223", "'{0}' tag already specified."), Signature_0_must_be_a_type_predicate: i(1224, 1, "Signature_0_must_be_a_type_predicate_1224", "Signature '{0}' must be a type predicate."), Cannot_find_parameter_0: i(1225, 1, "Cannot_find_parameter_0_1225", "Cannot find parameter '{0}'."), Type_predicate_0_is_not_assignable_to_1: i(1226, 1, "Type_predicate_0_is_not_assignable_to_1_1226", "Type predicate '{0}' is not assignable to '{1}'."), Parameter_0_is_not_in_the_same_position_as_parameter_1: i(1227, 1, "Parameter_0_is_not_in_the_same_position_as_parameter_1_1227", "Parameter '{0}' is not in the same position as parameter '{1}'."), A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: i(1228, 1, "A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228", "A type predicate is only allowed in return type position for functions and methods."), A_type_predicate_cannot_reference_a_rest_parameter: i(1229, 1, "A_type_predicate_cannot_reference_a_rest_parameter_1229", "A type predicate cannot reference a rest parameter."), A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: i(1230, 1, "A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230", "A type predicate cannot reference element '{0}' in a binding pattern."), An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration: i(1231, 1, "An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231", "An export assignment must be at the top level of a file or module declaration."), An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: i(1232, 1, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232", "An import declaration can only be used at the top level of a namespace or module."), An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: i(1233, 1, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233", "An export declaration can only be used at the top level of a namespace or module."), An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: i(1234, 1, "An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234", "An ambient module declaration is only allowed at the top level in a file."), A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module: i(1235, 1, "A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235", "A namespace declaration is only allowed at the top level of a namespace or module."), The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: i(1236, 1, "The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236", "The return type of a property decorator function must be either 'void' or 'any'."), The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: i(1237, 1, "The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237", "The return type of a parameter decorator function must be either 'void' or 'any'."), Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: i(1238, 1, "Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238", "Unable to resolve signature of class decorator when called as an expression."), Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: i(1239, 1, "Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239", "Unable to resolve signature of parameter decorator when called as an expression."), Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: i(1240, 1, "Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240", "Unable to resolve signature of property decorator when called as an expression."), Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: i(1241, 1, "Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241", "Unable to resolve signature of method decorator when called as an expression."), abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: i(1242, 1, "abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242", "'abstract' modifier can only appear on a class, method, or property declaration."), _0_modifier_cannot_be_used_with_1_modifier: i(1243, 1, "_0_modifier_cannot_be_used_with_1_modifier_1243", "'{0}' modifier cannot be used with '{1}' modifier."), Abstract_methods_can_only_appear_within_an_abstract_class: i(1244, 1, "Abstract_methods_can_only_appear_within_an_abstract_class_1244", "Abstract methods can only appear within an abstract class."), Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: i(1245, 1, "Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245", "Method '{0}' cannot have an implementation because it is marked abstract."), An_interface_property_cannot_have_an_initializer: i(1246, 1, "An_interface_property_cannot_have_an_initializer_1246", "An interface property cannot have an initializer."), A_type_literal_property_cannot_have_an_initializer: i(1247, 1, "A_type_literal_property_cannot_have_an_initializer_1247", "A type literal property cannot have an initializer."), A_class_member_cannot_have_the_0_keyword: i(1248, 1, "A_class_member_cannot_have_the_0_keyword_1248", "A class member cannot have the '{0}' keyword."), A_decorator_can_only_decorate_a_method_implementation_not_an_overload: i(1249, 1, "A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249", "A decorator can only decorate a method implementation, not an overload."), Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5: i(1250, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'."), Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode: i(1251, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode."), Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode: i(1252, 1, "Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252", "Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode."), Abstract_properties_can_only_appear_within_an_abstract_class: i(1253, 1, "Abstract_properties_can_only_appear_within_an_abstract_class_1253", "Abstract properties can only appear within an abstract class."), A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference: i(1254, 1, "A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254", "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."), A_definite_assignment_assertion_is_not_permitted_in_this_context: i(1255, 1, "A_definite_assignment_assertion_is_not_permitted_in_this_context_1255", "A definite assignment assertion '!' is not permitted in this context."), A_required_element_cannot_follow_an_optional_element: i(1257, 1, "A_required_element_cannot_follow_an_optional_element_1257", "A required element cannot follow an optional element."), A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration: i(1258, 1, "A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258", "A default export must be at the top level of a file or module declaration."), Module_0_can_only_be_default_imported_using_the_1_flag: i(1259, 1, "Module_0_can_only_be_default_imported_using_the_1_flag_1259", "Module '{0}' can only be default-imported using the '{1}' flag"), Keywords_cannot_contain_escape_characters: i(1260, 1, "Keywords_cannot_contain_escape_characters_1260", "Keywords cannot contain escape characters."), Already_included_file_name_0_differs_from_file_name_1_only_in_casing: i(1261, 1, "Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261", "Already included file name '{0}' differs from file name '{1}' only in casing."), Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module: i(1262, 1, "Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262", "Identifier expected. '{0}' is a reserved word at the top-level of a module."), Declarations_with_initializers_cannot_also_have_definite_assignment_assertions: i(1263, 1, "Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263", "Declarations with initializers cannot also have definite assignment assertions."), Declarations_with_definite_assignment_assertions_must_also_have_type_annotations: i(1264, 1, "Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264", "Declarations with definite assignment assertions must also have type annotations."), A_rest_element_cannot_follow_another_rest_element: i(1265, 1, "A_rest_element_cannot_follow_another_rest_element_1265", "A rest element cannot follow another rest element."), An_optional_element_cannot_follow_a_rest_element: i(1266, 1, "An_optional_element_cannot_follow_a_rest_element_1266", "An optional element cannot follow a rest element."), Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: i(1267, 1, "Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267", "Property '{0}' cannot have an initializer because it is marked abstract."), An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: i(1268, 1, "An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268", "An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."), Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled: i(1269, 1, "Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269", "Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."), Decorator_function_return_type_0_is_not_assignable_to_type_1: i(1270, 1, "Decorator_function_return_type_0_is_not_assignable_to_type_1_1270", "Decorator function return type '{0}' is not assignable to type '{1}'."), Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: i(1271, 1, "Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271", "Decorator function return type is '{0}' but is expected to be 'void' or 'any'."), A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled: i(1272, 1, "A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272", "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."), _0_modifier_cannot_appear_on_a_type_parameter: i(1273, 1, "_0_modifier_cannot_appear_on_a_type_parameter_1273", "'{0}' modifier cannot appear on a type parameter"), _0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias: i(1274, 1, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274", "'{0}' modifier can only appear on a type parameter of a class, interface or type alias"), accessor_modifier_can_only_appear_on_a_property_declaration: i(1275, 1, "accessor_modifier_can_only_appear_on_a_property_declaration_1275", "'accessor' modifier can only appear on a property declaration."), An_accessor_property_cannot_be_declared_optional: i(1276, 1, "An_accessor_property_cannot_be_declared_optional_1276", "An 'accessor' property cannot be declared optional."), _0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class: i(1277, 1, "_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277", "'{0}' modifier can only appear on a type parameter of a function, method or class"), The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0: i(1278, 1, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278", "The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."), The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0: i(1279, 1, "The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279", "The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."), Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement: i(1280, 1, "Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280", "Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."), Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead: i(1281, 1, "Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281", "Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."), An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: i(1282, 1, "An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282", "An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."), An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: i(1283, 1, "An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283", "An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."), An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: i(1284, 1, "An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284", "An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."), An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: i(1285, 1, "An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285", "An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."), ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: i(1286, 1, "ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286", "ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."), A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: i(1287, 1, "A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287", "A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."), An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled: i(1288, 1, "An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288", "An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."), with_statements_are_not_allowed_in_an_async_function_block: i(1300, 1, "with_statements_are_not_allowed_in_an_async_function_block_1300", "'with' statements are not allowed in an async function block."), await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: i(1308, 1, "await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308", "'await' expressions are only allowed within async functions and at the top levels of modules."), The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level: i(1309, 1, "The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309", "The current file is a CommonJS module and cannot use 'await' at the top level."), Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: i(1312, 1, "Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312", "Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."), The_body_of_an_if_statement_cannot_be_the_empty_statement: i(1313, 1, "The_body_of_an_if_statement_cannot_be_the_empty_statement_1313", "The body of an 'if' statement cannot be the empty statement."), Global_module_exports_may_only_appear_in_module_files: i(1314, 1, "Global_module_exports_may_only_appear_in_module_files_1314", "Global module exports may only appear in module files."), Global_module_exports_may_only_appear_in_declaration_files: i(1315, 1, "Global_module_exports_may_only_appear_in_declaration_files_1315", "Global module exports may only appear in declaration files."), Global_module_exports_may_only_appear_at_top_level: i(1316, 1, "Global_module_exports_may_only_appear_at_top_level_1316", "Global module exports may only appear at top level."), A_parameter_property_cannot_be_declared_using_a_rest_parameter: i(1317, 1, "A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317", "A parameter property cannot be declared using a rest parameter."), An_abstract_accessor_cannot_have_an_implementation: i(1318, 1, "An_abstract_accessor_cannot_have_an_implementation_1318", "An abstract accessor cannot have an implementation."), A_default_export_can_only_be_used_in_an_ECMAScript_style_module: i(1319, 1, "A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319", "A default export can only be used in an ECMAScript-style module."), Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: i(1320, 1, "Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320", "Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."), Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: i(1321, 1, "Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321", "Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."), Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: i(1322, 1, "Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322", "Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."), Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext: i(1323, 1, "Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323", "Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."), Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext: i(1324, 1, "Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nod_1324", "Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', or 'nodenext'."), Argument_of_dynamic_import_cannot_be_spread_element: i(1325, 1, "Argument_of_dynamic_import_cannot_be_spread_element_1325", "Argument of dynamic import cannot be spread element."), This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments: i(1326, 1, "This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326", "This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."), String_literal_with_double_quotes_expected: i(1327, 1, "String_literal_with_double_quotes_expected_1327", "String literal with double quotes expected."), Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal: i(1328, 1, "Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328", "Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."), _0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0: i(1329, 1, "_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329", "'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"), A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly: i(1330, 1, "A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330", "A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."), A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly: i(1331, 1, "A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331", "A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."), A_variable_whose_type_is_a_unique_symbol_type_must_be_const: i(1332, 1, "A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332", "A variable whose type is a 'unique symbol' type must be 'const'."), unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name: i(1333, 1, "unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333", "'unique symbol' types may not be used on a variable declaration with a binding name."), unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement: i(1334, 1, "unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334", "'unique symbol' types are only allowed on variables in a variable statement."), unique_symbol_types_are_not_allowed_here: i(1335, 1, "unique_symbol_types_are_not_allowed_here_1335", "'unique symbol' types are not allowed here."), An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead: i(1337, 1, "An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337", "An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."), infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type: i(1338, 1, "infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338", "'infer' declarations are only permitted in the 'extends' clause of a conditional type."), Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here: i(1339, 1, "Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339", "Module '{0}' does not refer to a value, but is used as a value here."), Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0: i(1340, 1, "Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340", "Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"), Class_constructor_may_not_be_an_accessor: i(1341, 1, "Class_constructor_may_not_be_an_accessor_1341", "Class constructor may not be an accessor."), The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext: i(1343, 1, "The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343", "The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."), A_label_is_not_allowed_here: i(1344, 1, "A_label_is_not_allowed_here_1344", "'A label is not allowed here."), An_expression_of_type_void_cannot_be_tested_for_truthiness: i(1345, 1, "An_expression_of_type_void_cannot_be_tested_for_truthiness_1345", "An expression of type 'void' cannot be tested for truthiness."), This_parameter_is_not_allowed_with_use_strict_directive: i(1346, 1, "This_parameter_is_not_allowed_with_use_strict_directive_1346", "This parameter is not allowed with 'use strict' directive."), use_strict_directive_cannot_be_used_with_non_simple_parameter_list: i(1347, 1, "use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347", "'use strict' directive cannot be used with non-simple parameter list."), Non_simple_parameter_declared_here: i(1348, 1, "Non_simple_parameter_declared_here_1348", "Non-simple parameter declared here."), use_strict_directive_used_here: i(1349, 1, "use_strict_directive_used_here_1349", "'use strict' directive used here."), Print_the_final_configuration_instead_of_building: i(1350, 3, "Print_the_final_configuration_instead_of_building_1350", "Print the final configuration instead of building."), An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal: i(1351, 1, "An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351", "An identifier or keyword cannot immediately follow a numeric literal."), A_bigint_literal_cannot_use_exponential_notation: i(1352, 1, "A_bigint_literal_cannot_use_exponential_notation_1352", "A bigint literal cannot use exponential notation."), A_bigint_literal_must_be_an_integer: i(1353, 1, "A_bigint_literal_must_be_an_integer_1353", "A bigint literal must be an integer."), readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: i(1354, 1, "readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354", "'readonly' type modifier is only permitted on array and tuple literal types."), A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: i(1355, 1, "A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355", "A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."), Did_you_mean_to_mark_this_function_as_async: i(1356, 1, "Did_you_mean_to_mark_this_function_as_async_1356", "Did you mean to mark this function as 'async'?"), An_enum_member_name_must_be_followed_by_a_or: i(1357, 1, "An_enum_member_name_must_be_followed_by_a_or_1357", "An enum member name must be followed by a ',', '=', or '}'."), Tagged_template_expressions_are_not_permitted_in_an_optional_chain: i(1358, 1, "Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358", "Tagged template expressions are not permitted in an optional chain."), Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here: i(1359, 1, "Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359", "Identifier expected. '{0}' is a reserved word that cannot be used here."), Type_0_does_not_satisfy_the_expected_type_1: i(1360, 1, "Type_0_does_not_satisfy_the_expected_type_1_1360", "Type '{0}' does not satisfy the expected type '{1}'."), _0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type: i(1361, 1, "_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361", "'{0}' cannot be used as a value because it was imported using 'import type'."), _0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type: i(1362, 1, "_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362", "'{0}' cannot be used as a value because it was exported using 'export type'."), A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both: i(1363, 1, "A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363", "A type-only import can specify a default import or named bindings, but not both."), Convert_to_type_only_export: i(1364, 3, "Convert_to_type_only_export_1364", "Convert to type-only export"), Convert_all_re_exported_types_to_type_only_exports: i(1365, 3, "Convert_all_re_exported_types_to_type_only_exports_1365", "Convert all re-exported types to type-only exports"), Split_into_two_separate_import_declarations: i(1366, 3, "Split_into_two_separate_import_declarations_1366", "Split into two separate import declarations"), Split_all_invalid_type_only_imports: i(1367, 3, "Split_all_invalid_type_only_imports_1367", "Split all invalid type-only imports"), Class_constructor_may_not_be_a_generator: i(1368, 1, "Class_constructor_may_not_be_a_generator_1368", "Class constructor may not be a generator."), Did_you_mean_0: i(1369, 3, "Did_you_mean_0_1369", "Did you mean '{0}'?"), This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error: i(1371, 1, "This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371", "This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'."), await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: i(1375, 1, "await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375", "'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), _0_was_imported_here: i(1376, 3, "_0_was_imported_here_1376", "'{0}' was imported here."), _0_was_exported_here: i(1377, 3, "_0_was_exported_here_1377", "'{0}' was exported here."), Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: i(1378, 1, "Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378", "Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type: i(1379, 1, "An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379", "An import alias cannot reference a declaration that was exported using 'export type'."), An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type: i(1380, 1, "An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380", "An import alias cannot reference a declaration that was imported using 'import type'."), Unexpected_token_Did_you_mean_or_rbrace: i(1381, 1, "Unexpected_token_Did_you_mean_or_rbrace_1381", "Unexpected token. Did you mean `{'}'}` or `}`?"), Unexpected_token_Did_you_mean_or_gt: i(1382, 1, "Unexpected_token_Did_you_mean_or_gt_1382", "Unexpected token. Did you mean `{'>'}` or `>`?"), Function_type_notation_must_be_parenthesized_when_used_in_a_union_type: i(1385, 1, "Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385", "Function type notation must be parenthesized when used in a union type."), Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type: i(1386, 1, "Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386", "Constructor type notation must be parenthesized when used in a union type."), Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: i(1387, 1, "Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387", "Function type notation must be parenthesized when used in an intersection type."), Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: i(1388, 1, "Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388", "Constructor type notation must be parenthesized when used in an intersection type."), _0_is_not_allowed_as_a_variable_declaration_name: i(1389, 1, "_0_is_not_allowed_as_a_variable_declaration_name_1389", "'{0}' is not allowed as a variable declaration name."), _0_is_not_allowed_as_a_parameter_name: i(1390, 1, "_0_is_not_allowed_as_a_parameter_name_1390", "'{0}' is not allowed as a parameter name."), An_import_alias_cannot_use_import_type: i(1392, 1, "An_import_alias_cannot_use_import_type_1392", "An import alias cannot use 'import type'"), Imported_via_0_from_file_1: i(1393, 3, "Imported_via_0_from_file_1_1393", "Imported via {0} from file '{1}'"), Imported_via_0_from_file_1_with_packageId_2: i(1394, 3, "Imported_via_0_from_file_1_with_packageId_2_1394", "Imported via {0} from file '{1}' with packageId '{2}'"), Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions: i(1395, 3, "Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395", "Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"), Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions: i(1396, 3, "Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396", "Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"), Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions: i(1397, 3, "Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397", "Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"), Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions: i(1398, 3, "Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398", "Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"), File_is_included_via_import_here: i(1399, 3, "File_is_included_via_import_here_1399", "File is included via import here."), Referenced_via_0_from_file_1: i(1400, 3, "Referenced_via_0_from_file_1_1400", "Referenced via '{0}' from file '{1}'"), File_is_included_via_reference_here: i(1401, 3, "File_is_included_via_reference_here_1401", "File is included via reference here."), Type_library_referenced_via_0_from_file_1: i(1402, 3, "Type_library_referenced_via_0_from_file_1_1402", "Type library referenced via '{0}' from file '{1}'"), Type_library_referenced_via_0_from_file_1_with_packageId_2: i(1403, 3, "Type_library_referenced_via_0_from_file_1_with_packageId_2_1403", "Type library referenced via '{0}' from file '{1}' with packageId '{2}'"), File_is_included_via_type_library_reference_here: i(1404, 3, "File_is_included_via_type_library_reference_here_1404", "File is included via type library reference here."), Library_referenced_via_0_from_file_1: i(1405, 3, "Library_referenced_via_0_from_file_1_1405", "Library referenced via '{0}' from file '{1}'"), File_is_included_via_library_reference_here: i(1406, 3, "File_is_included_via_library_reference_here_1406", "File is included via library reference here."), Matched_by_include_pattern_0_in_1: i(1407, 3, "Matched_by_include_pattern_0_in_1_1407", "Matched by include pattern '{0}' in '{1}'"), File_is_matched_by_include_pattern_specified_here: i(1408, 3, "File_is_matched_by_include_pattern_specified_here_1408", "File is matched by include pattern specified here."), Part_of_files_list_in_tsconfig_json: i(1409, 3, "Part_of_files_list_in_tsconfig_json_1409", "Part of 'files' list in tsconfig.json"), File_is_matched_by_files_list_specified_here: i(1410, 3, "File_is_matched_by_files_list_specified_here_1410", "File is matched by 'files' list specified here."), Output_from_referenced_project_0_included_because_1_specified: i(1411, 3, "Output_from_referenced_project_0_included_because_1_specified_1411", "Output from referenced project '{0}' included because '{1}' specified"), Output_from_referenced_project_0_included_because_module_is_specified_as_none: i(1412, 3, "Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412", "Output from referenced project '{0}' included because '--module' is specified as 'none'"), File_is_output_from_referenced_project_specified_here: i(1413, 3, "File_is_output_from_referenced_project_specified_here_1413", "File is output from referenced project specified here."), Source_from_referenced_project_0_included_because_1_specified: i(1414, 3, "Source_from_referenced_project_0_included_because_1_specified_1414", "Source from referenced project '{0}' included because '{1}' specified"), Source_from_referenced_project_0_included_because_module_is_specified_as_none: i(1415, 3, "Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415", "Source from referenced project '{0}' included because '--module' is specified as 'none'"), File_is_source_from_referenced_project_specified_here: i(1416, 3, "File_is_source_from_referenced_project_specified_here_1416", "File is source from referenced project specified here."), Entry_point_of_type_library_0_specified_in_compilerOptions: i(1417, 3, "Entry_point_of_type_library_0_specified_in_compilerOptions_1417", "Entry point of type library '{0}' specified in compilerOptions"), Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1: i(1418, 3, "Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418", "Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"), File_is_entry_point_of_type_library_specified_here: i(1419, 3, "File_is_entry_point_of_type_library_specified_here_1419", "File is entry point of type library specified here."), Entry_point_for_implicit_type_library_0: i(1420, 3, "Entry_point_for_implicit_type_library_0_1420", "Entry point for implicit type library '{0}'"), Entry_point_for_implicit_type_library_0_with_packageId_1: i(1421, 3, "Entry_point_for_implicit_type_library_0_with_packageId_1_1421", "Entry point for implicit type library '{0}' with packageId '{1}'"), Library_0_specified_in_compilerOptions: i(1422, 3, "Library_0_specified_in_compilerOptions_1422", "Library '{0}' specified in compilerOptions"), File_is_library_specified_here: i(1423, 3, "File_is_library_specified_here_1423", "File is library specified here."), Default_library: i(1424, 3, "Default_library_1424", "Default library"), Default_library_for_target_0: i(1425, 3, "Default_library_for_target_0_1425", "Default library for target '{0}'"), File_is_default_library_for_target_specified_here: i(1426, 3, "File_is_default_library_for_target_specified_here_1426", "File is default library for target specified here."), Root_file_specified_for_compilation: i(1427, 3, "Root_file_specified_for_compilation_1427", "Root file specified for compilation"), File_is_output_of_project_reference_source_0: i(1428, 3, "File_is_output_of_project_reference_source_0_1428", "File is output of project reference source '{0}'"), File_redirects_to_file_0: i(1429, 3, "File_redirects_to_file_0_1429", "File redirects to file '{0}'"), The_file_is_in_the_program_because_Colon: i(1430, 3, "The_file_is_in_the_program_because_Colon_1430", "The file is in the program because:"), for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: i(1431, 1, "for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431", "'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: i(1432, 1, "Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432", "Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters: i(1433, 1, "Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433", "Neither decorators nor modifiers may be applied to 'this' parameters."), Unexpected_keyword_or_identifier: i(1434, 1, "Unexpected_keyword_or_identifier_1434", "Unexpected keyword or identifier."), Unknown_keyword_or_identifier_Did_you_mean_0: i(1435, 1, "Unknown_keyword_or_identifier_Did_you_mean_0_1435", "Unknown keyword or identifier. Did you mean '{0}'?"), Decorators_must_precede_the_name_and_all_keywords_of_property_declarations: i(1436, 1, "Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436", "Decorators must precede the name and all keywords of property declarations."), Namespace_must_be_given_a_name: i(1437, 1, "Namespace_must_be_given_a_name_1437", "Namespace must be given a name."), Interface_must_be_given_a_name: i(1438, 1, "Interface_must_be_given_a_name_1438", "Interface must be given a name."), Type_alias_must_be_given_a_name: i(1439, 1, "Type_alias_must_be_given_a_name_1439", "Type alias must be given a name."), Variable_declaration_not_allowed_at_this_location: i(1440, 1, "Variable_declaration_not_allowed_at_this_location_1440", "Variable declaration not allowed at this location."), Cannot_start_a_function_call_in_a_type_annotation: i(1441, 1, "Cannot_start_a_function_call_in_a_type_annotation_1441", "Cannot start a function call in a type annotation."), Expected_for_property_initializer: i(1442, 1, "Expected_for_property_initializer_1442", "Expected '=' for property initializer."), Module_declaration_names_may_only_use_or_quoted_strings: i(1443, 1, "Module_declaration_names_may_only_use_or_quoted_strings_1443", `Module declaration names may only use ' or " quoted strings.`), _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: i(1444, 1, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedMod_1444", "'{0}' is a type and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."), _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveValueImports_and_isolatedModules_are_both_enabled: i(1446, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_preserveVa_1446", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'preserveValueImports' and 'isolatedModules' are both enabled."), _0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled: i(1448, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448", "'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."), Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed: i(1449, 3, "Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449", "Preserve unused imported values in the JavaScript output that would otherwise be removed."), Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments: i(1450, 3, "Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments_1450", "Dynamic imports can only accept a module specifier and an optional assertion as arguments"), Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression: i(1451, 1, "Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451", "Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"), resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext: i(1452, 1, "resolution_mode_assertions_are_only_supported_when_moduleResolution_is_node16_or_nodenext_1452", "'resolution-mode' assertions are only supported when `moduleResolution` is `node16` or `nodenext`."), resolution_mode_should_be_either_require_or_import: i(1453, 1, "resolution_mode_should_be_either_require_or_import_1453", "`resolution-mode` should be either `require` or `import`."), resolution_mode_can_only_be_set_for_type_only_imports: i(1454, 1, "resolution_mode_can_only_be_set_for_type_only_imports_1454", "`resolution-mode` can only be set for type-only imports."), resolution_mode_is_the_only_valid_key_for_type_import_assertions: i(1455, 1, "resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455", "`resolution-mode` is the only valid key for type import assertions."), Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: i(1456, 1, "Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456", "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."), Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk: i(1457, 3, "Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457", "Matched by default include pattern '**/*'"), File_is_ECMAScript_module_because_0_has_field_type_with_value_module: i(1458, 3, "File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458", `File is ECMAScript module because '{0}' has field "type" with value "module"`), File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module: i(1459, 3, "File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459", `File is CommonJS module because '{0}' has field "type" whose value is not "module"`), File_is_CommonJS_module_because_0_does_not_have_field_type: i(1460, 3, "File_is_CommonJS_module_because_0_does_not_have_field_type_1460", `File is CommonJS module because '{0}' does not have field "type"`), File_is_CommonJS_module_because_package_json_was_not_found: i(1461, 3, "File_is_CommonJS_module_because_package_json_was_not_found_1461", "File is CommonJS module because 'package.json' was not found"), The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output: i(1470, 1, "The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470", "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."), Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead: i(1471, 1, "Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471", "Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."), catch_or_finally_expected: i(1472, 1, "catch_or_finally_expected_1472", "'catch' or 'finally' expected."), An_import_declaration_can_only_be_used_at_the_top_level_of_a_module: i(1473, 1, "An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473", "An import declaration can only be used at the top level of a module."), An_export_declaration_can_only_be_used_at_the_top_level_of_a_module: i(1474, 1, "An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474", "An export declaration can only be used at the top level of a module."), Control_what_method_is_used_to_detect_module_format_JS_files: i(1475, 3, "Control_what_method_is_used_to_detect_module_format_JS_files_1475", "Control what method is used to detect module-format JS files."), auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules: i(1476, 3, "auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476", '"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'), An_instantiation_expression_cannot_be_followed_by_a_property_access: i(1477, 1, "An_instantiation_expression_cannot_be_followed_by_a_property_access_1477", "An instantiation expression cannot be followed by a property access."), Identifier_or_string_literal_expected: i(1478, 1, "Identifier_or_string_literal_expected_1478", "Identifier or string literal expected."), The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead: i(1479, 1, "The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479", `The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`), To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module: i(1480, 3, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480", 'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'), To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1: i(1481, 3, "To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481", `To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`), To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0: i(1482, 3, "To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482", 'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'), To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module: i(1483, 3, "To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483", 'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'), _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: i(1484, 1, "_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484", "'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."), _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: i(1485, 1, "_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485", "'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."), Decorator_used_before_export_here: i(1486, 1, "Decorator_used_before_export_here_1486", "Decorator used before 'export' here."), Octal_escape_sequences_are_not_allowed_Use_the_syntax_0: i(1487, 1, "Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487", "Octal escape sequences are not allowed. Use the syntax '{0}'."), Escape_sequence_0_is_not_allowed: i(1488, 1, "Escape_sequence_0_is_not_allowed_1488", "Escape sequence '{0}' is not allowed."), Decimals_with_leading_zeros_are_not_allowed: i(1489, 1, "Decimals_with_leading_zeros_are_not_allowed_1489", "Decimals with leading zeros are not allowed."), File_appears_to_be_binary: i(1490, 1, "File_appears_to_be_binary_1490", "File appears to be binary."), _0_modifier_cannot_appear_on_a_using_declaration: i(1491, 1, "_0_modifier_cannot_appear_on_a_using_declaration_1491", "'{0}' modifier cannot appear on a 'using' declaration."), _0_declarations_may_not_have_binding_patterns: i(1492, 1, "_0_declarations_may_not_have_binding_patterns_1492", "'{0}' declarations may not have binding patterns."), The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration: i(1493, 1, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493", "The left-hand side of a 'for...in' statement cannot be a 'using' declaration."), The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: i(1494, 1, "The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494", "The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."), _0_modifier_cannot_appear_on_an_await_using_declaration: i(1495, 1, "_0_modifier_cannot_appear_on_an_await_using_declaration_1495", "'{0}' modifier cannot appear on an 'await using' declaration."), The_types_of_0_are_incompatible_between_these_types: i(2200, 1, "The_types_of_0_are_incompatible_between_these_types_2200", "The types of '{0}' are incompatible between these types."), The_types_returned_by_0_are_incompatible_between_these_types: i(2201, 1, "The_types_returned_by_0_are_incompatible_between_these_types_2201", "The types returned by '{0}' are incompatible between these types."), Call_signature_return_types_0_and_1_are_incompatible: i(2202, 1, "Call_signature_return_types_0_and_1_are_incompatible_2202", "Call signature return types '{0}' and '{1}' are incompatible.", void 0, true), Construct_signature_return_types_0_and_1_are_incompatible: i(2203, 1, "Construct_signature_return_types_0_and_1_are_incompatible_2203", "Construct signature return types '{0}' and '{1}' are incompatible.", void 0, true), Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: i(2204, 1, "Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204", "Call signatures with no arguments have incompatible return types '{0}' and '{1}'.", void 0, true), Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: i(2205, 1, "Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205", "Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.", void 0, true), The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement: i(2206, 1, "The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206", "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."), The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement: i(2207, 1, "The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207", "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."), This_type_parameter_might_need_an_extends_0_constraint: i(2208, 1, "This_type_parameter_might_need_an_extends_0_constraint_2208", "This type parameter might need an `extends {0}` constraint."), The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: i(2209, 1, "The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209", "The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."), The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: i(2210, 1, "The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210", "The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."), Add_extends_constraint: i(2211, 3, "Add_extends_constraint_2211", "Add `extends` constraint."), Add_extends_constraint_to_all_type_parameters: i(2212, 3, "Add_extends_constraint_to_all_type_parameters_2212", "Add `extends` constraint to all type parameters"), Duplicate_identifier_0: i(2300, 1, "Duplicate_identifier_0_2300", "Duplicate identifier '{0}'."), Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: i(2301, 1, "Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301", "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."), Static_members_cannot_reference_class_type_parameters: i(2302, 1, "Static_members_cannot_reference_class_type_parameters_2302", "Static members cannot reference class type parameters."), Circular_definition_of_import_alias_0: i(2303, 1, "Circular_definition_of_import_alias_0_2303", "Circular definition of import alias '{0}'."), Cannot_find_name_0: i(2304, 1, "Cannot_find_name_0_2304", "Cannot find name '{0}'."), Module_0_has_no_exported_member_1: i(2305, 1, "Module_0_has_no_exported_member_1_2305", "Module '{0}' has no exported member '{1}'."), File_0_is_not_a_module: i(2306, 1, "File_0_is_not_a_module_2306", "File '{0}' is not a module."), Cannot_find_module_0_or_its_corresponding_type_declarations: i(2307, 1, "Cannot_find_module_0_or_its_corresponding_type_declarations_2307", "Cannot find module '{0}' or its corresponding type declarations."), Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: i(2308, 1, "Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308", "Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."), An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: i(2309, 1, "An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309", "An export assignment cannot be used in a module with other exported elements."), Type_0_recursively_references_itself_as_a_base_type: i(2310, 1, "Type_0_recursively_references_itself_as_a_base_type_2310", "Type '{0}' recursively references itself as a base type."), Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function: i(2311, 1, "Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311", "Cannot find name '{0}'. Did you mean to write this in an async function?"), An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members: i(2312, 1, "An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312", "An interface can only extend an object type or intersection of object types with statically known members."), Type_parameter_0_has_a_circular_constraint: i(2313, 1, "Type_parameter_0_has_a_circular_constraint_2313", "Type parameter '{0}' has a circular constraint."), Generic_type_0_requires_1_type_argument_s: i(2314, 1, "Generic_type_0_requires_1_type_argument_s_2314", "Generic type '{0}' requires {1} type argument(s)."), Type_0_is_not_generic: i(2315, 1, "Type_0_is_not_generic_2315", "Type '{0}' is not generic."), Global_type_0_must_be_a_class_or_interface_type: i(2316, 1, "Global_type_0_must_be_a_class_or_interface_type_2316", "Global type '{0}' must be a class or interface type."), Global_type_0_must_have_1_type_parameter_s: i(2317, 1, "Global_type_0_must_have_1_type_parameter_s_2317", "Global type '{0}' must have {1} type parameter(s)."), Cannot_find_global_type_0: i(2318, 1, "Cannot_find_global_type_0_2318", "Cannot find global type '{0}'."), Named_property_0_of_types_1_and_2_are_not_identical: i(2319, 1, "Named_property_0_of_types_1_and_2_are_not_identical_2319", "Named property '{0}' of types '{1}' and '{2}' are not identical."), Interface_0_cannot_simultaneously_extend_types_1_and_2: i(2320, 1, "Interface_0_cannot_simultaneously_extend_types_1_and_2_2320", "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."), Excessive_stack_depth_comparing_types_0_and_1: i(2321, 1, "Excessive_stack_depth_comparing_types_0_and_1_2321", "Excessive stack depth comparing types '{0}' and '{1}'."), Type_0_is_not_assignable_to_type_1: i(2322, 1, "Type_0_is_not_assignable_to_type_1_2322", "Type '{0}' is not assignable to type '{1}'."), Cannot_redeclare_exported_variable_0: i(2323, 1, "Cannot_redeclare_exported_variable_0_2323", "Cannot redeclare exported variable '{0}'."), Property_0_is_missing_in_type_1: i(2324, 1, "Property_0_is_missing_in_type_1_2324", "Property '{0}' is missing in type '{1}'."), Property_0_is_private_in_type_1_but_not_in_type_2: i(2325, 1, "Property_0_is_private_in_type_1_but_not_in_type_2_2325", "Property '{0}' is private in type '{1}' but not in type '{2}'."), Types_of_property_0_are_incompatible: i(2326, 1, "Types_of_property_0_are_incompatible_2326", "Types of property '{0}' are incompatible."), Property_0_is_optional_in_type_1_but_required_in_type_2: i(2327, 1, "Property_0_is_optional_in_type_1_but_required_in_type_2_2327", "Property '{0}' is optional in type '{1}' but required in type '{2}'."), Types_of_parameters_0_and_1_are_incompatible: i(2328, 1, "Types_of_parameters_0_and_1_are_incompatible_2328", "Types of parameters '{0}' and '{1}' are incompatible."), Index_signature_for_type_0_is_missing_in_type_1: i(2329, 1, "Index_signature_for_type_0_is_missing_in_type_1_2329", "Index signature for type '{0}' is missing in type '{1}'."), _0_and_1_index_signatures_are_incompatible: i(2330, 1, "_0_and_1_index_signatures_are_incompatible_2330", "'{0}' and '{1}' index signatures are incompatible."), this_cannot_be_referenced_in_a_module_or_namespace_body: i(2331, 1, "this_cannot_be_referenced_in_a_module_or_namespace_body_2331", "'this' cannot be referenced in a module or namespace body."), this_cannot_be_referenced_in_current_location: i(2332, 1, "this_cannot_be_referenced_in_current_location_2332", "'this' cannot be referenced in current location."), this_cannot_be_referenced_in_constructor_arguments: i(2333, 1, "this_cannot_be_referenced_in_constructor_arguments_2333", "'this' cannot be referenced in constructor arguments."), this_cannot_be_referenced_in_a_static_property_initializer: i(2334, 1, "this_cannot_be_referenced_in_a_static_property_initializer_2334", "'this' cannot be referenced in a static property initializer."), super_can_only_be_referenced_in_a_derived_class: i(2335, 1, "super_can_only_be_referenced_in_a_derived_class_2335", "'super' can only be referenced in a derived class."), super_cannot_be_referenced_in_constructor_arguments: i(2336, 1, "super_cannot_be_referenced_in_constructor_arguments_2336", "'super' cannot be referenced in constructor arguments."), Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: i(2337, 1, "Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337", "Super calls are not permitted outside constructors or in nested functions inside constructors."), super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: i(2338, 1, "super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338", "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."), Property_0_does_not_exist_on_type_1: i(2339, 1, "Property_0_does_not_exist_on_type_1_2339", "Property '{0}' does not exist on type '{1}'."), Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: i(2340, 1, "Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340", "Only public and protected methods of the base class are accessible via the 'super' keyword."), Property_0_is_private_and_only_accessible_within_class_1: i(2341, 1, "Property_0_is_private_and_only_accessible_within_class_1_2341", "Property '{0}' is private and only accessible within class '{1}'."), This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0: i(2343, 1, "This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343", "This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."), Type_0_does_not_satisfy_the_constraint_1: i(2344, 1, "Type_0_does_not_satisfy_the_constraint_1_2344", "Type '{0}' does not satisfy the constraint '{1}'."), Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: i(2345, 1, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345", "Argument of type '{0}' is not assignable to parameter of type '{1}'."), Untyped_function_calls_may_not_accept_type_arguments: i(2347, 1, "Untyped_function_calls_may_not_accept_type_arguments_2347", "Untyped function calls may not accept type arguments."), Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: i(2348, 1, "Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348", "Value of type '{0}' is not callable. Did you mean to include 'new'?"), This_expression_is_not_callable: i(2349, 1, "This_expression_is_not_callable_2349", "This expression is not callable."), Only_a_void_function_can_be_called_with_the_new_keyword: i(2350, 1, "Only_a_void_function_can_be_called_with_the_new_keyword_2350", "Only a void function can be called with the 'new' keyword."), This_expression_is_not_constructable: i(2351, 1, "This_expression_is_not_constructable_2351", "This expression is not constructable."), Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first: i(2352, 1, "Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352", "Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."), Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: i(2353, 1, "Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353", "Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."), This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found: i(2354, 1, "This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354", "This syntax requires an imported helper but module '{0}' cannot be found."), A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value: i(2355, 1, "A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355", "A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."), An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type: i(2356, 1, "An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356", "An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."), The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: i(2357, 1, "The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357", "The operand of an increment or decrement operator must be a variable or a property access."), The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: i(2358, 1, "The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358", "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."), The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: i(2359, 1, "The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359", "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type."), The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: i(2362, 1, "The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362", "The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."), The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: i(2363, 1, "The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363", "The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."), The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: i(2364, 1, "The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364", "The left-hand side of an assignment expression must be a variable or a property access."), Operator_0_cannot_be_applied_to_types_1_and_2: i(2365, 1, "Operator_0_cannot_be_applied_to_types_1_and_2_2365", "Operator '{0}' cannot be applied to types '{1}' and '{2}'."), Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: i(2366, 1, "Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366", "Function lacks ending return statement and return type does not include 'undefined'."), This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap: i(2367, 1, "This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367", "This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."), Type_parameter_name_cannot_be_0: i(2368, 1, "Type_parameter_name_cannot_be_0_2368", "Type parameter name cannot be '{0}'."), A_parameter_property_is_only_allowed_in_a_constructor_implementation: i(2369, 1, "A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369", "A parameter property is only allowed in a constructor implementation."), A_rest_parameter_must_be_of_an_array_type: i(2370, 1, "A_rest_parameter_must_be_of_an_array_type_2370", "A rest parameter must be of an array type."), A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: i(2371, 1, "A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371", "A parameter initializer is only allowed in a function or constructor implementation."), Parameter_0_cannot_reference_itself: i(2372, 1, "Parameter_0_cannot_reference_itself_2372", "Parameter '{0}' cannot reference itself."), Parameter_0_cannot_reference_identifier_1_declared_after_it: i(2373, 1, "Parameter_0_cannot_reference_identifier_1_declared_after_it_2373", "Parameter '{0}' cannot reference identifier '{1}' declared after it."), Duplicate_index_signature_for_type_0: i(2374, 1, "Duplicate_index_signature_for_type_0_2374", "Duplicate index signature for type '{0}'."), Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: i(2375, 1, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."), A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers: i(2376, 1, "A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376", "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."), Constructors_for_derived_classes_must_contain_a_super_call: i(2377, 1, "Constructors_for_derived_classes_must_contain_a_super_call_2377", "Constructors for derived classes must contain a 'super' call."), A_get_accessor_must_return_a_value: i(2378, 1, "A_get_accessor_must_return_a_value_2378", "A 'get' accessor must return a value."), Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: i(2379, 1, "Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379", "Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."), Overload_signatures_must_all_be_exported_or_non_exported: i(2383, 1, "Overload_signatures_must_all_be_exported_or_non_exported_2383", "Overload signatures must all be exported or non-exported."), Overload_signatures_must_all_be_ambient_or_non_ambient: i(2384, 1, "Overload_signatures_must_all_be_ambient_or_non_ambient_2384", "Overload signatures must all be ambient or non-ambient."), Overload_signatures_must_all_be_public_private_or_protected: i(2385, 1, "Overload_signatures_must_all_be_public_private_or_protected_2385", "Overload signatures must all be public, private or protected."), Overload_signatures_must_all_be_optional_or_required: i(2386, 1, "Overload_signatures_must_all_be_optional_or_required_2386", "Overload signatures must all be optional or required."), Function_overload_must_be_static: i(2387, 1, "Function_overload_must_be_static_2387", "Function overload must be static."), Function_overload_must_not_be_static: i(2388, 1, "Function_overload_must_not_be_static_2388", "Function overload must not be static."), Function_implementation_name_must_be_0: i(2389, 1, "Function_implementation_name_must_be_0_2389", "Function implementation name must be '{0}'."), Constructor_implementation_is_missing: i(2390, 1, "Constructor_implementation_is_missing_2390", "Constructor implementation is missing."), Function_implementation_is_missing_or_not_immediately_following_the_declaration: i(2391, 1, "Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391", "Function implementation is missing or not immediately following the declaration."), Multiple_constructor_implementations_are_not_allowed: i(2392, 1, "Multiple_constructor_implementations_are_not_allowed_2392", "Multiple constructor implementations are not allowed."), Duplicate_function_implementation: i(2393, 1, "Duplicate_function_implementation_2393", "Duplicate function implementation."), This_overload_signature_is_not_compatible_with_its_implementation_signature: i(2394, 1, "This_overload_signature_is_not_compatible_with_its_implementation_signature_2394", "This overload signature is not compatible with its implementation signature."), Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: i(2395, 1, "Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395", "Individual declarations in merged declaration '{0}' must be all exported or all local."), Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: i(2396, 1, "Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396", "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."), Declaration_name_conflicts_with_built_in_global_identifier_0: i(2397, 1, "Declaration_name_conflicts_with_built_in_global_identifier_0_2397", "Declaration name conflicts with built-in global identifier '{0}'."), constructor_cannot_be_used_as_a_parameter_property_name: i(2398, 1, "constructor_cannot_be_used_as_a_parameter_property_name_2398", "'constructor' cannot be used as a parameter property name."), Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: i(2399, 1, "Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399", "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."), Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: i(2400, 1, "Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400", "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."), A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers: i(2401, 1, "A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401", "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."), Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: i(2402, 1, "Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402", "Expression resolves to '_super' that compiler uses to capture base class reference."), Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: i(2403, 1, "Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403", "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."), The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: i(2404, 1, "The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404", "The left-hand side of a 'for...in' statement cannot use a type annotation."), The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: i(2405, 1, "The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405", "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."), The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: i(2406, 1, "The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406", "The left-hand side of a 'for...in' statement must be a variable or a property access."), The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0: i(2407, 1, "The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407", "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."), Setters_cannot_return_a_value: i(2408, 1, "Setters_cannot_return_a_value_2408", "Setters cannot return a value."), Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: i(2409, 1, "Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409", "Return type of constructor signature must be assignable to the instance type of the class."), The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: i(2410, 1, "The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410", "The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."), Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target: i(2412, 1, "Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412", "Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."), Property_0_of_type_1_is_not_assignable_to_2_index_type_3: i(2411, 1, "Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411", "Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."), _0_index_type_1_is_not_assignable_to_2_index_type_3: i(2413, 1, "_0_index_type_1_is_not_assignable_to_2_index_type_3_2413", "'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."), Class_name_cannot_be_0: i(2414, 1, "Class_name_cannot_be_0_2414", "Class name cannot be '{0}'."), Class_0_incorrectly_extends_base_class_1: i(2415, 1, "Class_0_incorrectly_extends_base_class_1_2415", "Class '{0}' incorrectly extends base class '{1}'."), Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2: i(2416, 1, "Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416", "Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."), Class_static_side_0_incorrectly_extends_base_class_static_side_1: i(2417, 1, "Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417", "Class static side '{0}' incorrectly extends base class static side '{1}'."), Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1: i(2418, 1, "Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418", "Type of computed property's value is '{0}', which is not assignable to type '{1}'."), Types_of_construct_signatures_are_incompatible: i(2419, 1, "Types_of_construct_signatures_are_incompatible_2419", "Types of construct signatures are incompatible."), Class_0_incorrectly_implements_interface_1: i(2420, 1, "Class_0_incorrectly_implements_interface_1_2420", "Class '{0}' incorrectly implements interface '{1}'."), A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members: i(2422, 1, "A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422", "A class can only implement an object type or intersection of object types with statically known members."), Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: i(2423, 1, "Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423", "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."), Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: i(2425, 1, "Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425", "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."), Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: i(2426, 1, "Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426", "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."), Interface_name_cannot_be_0: i(2427, 1, "Interface_name_cannot_be_0_2427", "Interface name cannot be '{0}'."), All_declarations_of_0_must_have_identical_type_parameters: i(2428, 1, "All_declarations_of_0_must_have_identical_type_parameters_2428", "All declarations of '{0}' must have identical type parameters."), Interface_0_incorrectly_extends_interface_1: i(2430, 1, "Interface_0_incorrectly_extends_interface_1_2430", "Interface '{0}' incorrectly extends interface '{1}'."), Enum_name_cannot_be_0: i(2431, 1, "Enum_name_cannot_be_0_2431", "Enum name cannot be '{0}'."), In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: i(2432, 1, "In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432", "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."), A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: i(2433, 1, "A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433", "A namespace declaration cannot be in a different file from a class or function with which it is merged."), A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: i(2434, 1, "A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434", "A namespace declaration cannot be located prior to a class or function with which it is merged."), Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: i(2435, 1, "Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435", "Ambient modules cannot be nested in other modules or namespaces."), Ambient_module_declaration_cannot_specify_relative_module_name: i(2436, 1, "Ambient_module_declaration_cannot_specify_relative_module_name_2436", "Ambient module declaration cannot specify relative module name."), Module_0_is_hidden_by_a_local_declaration_with_the_same_name: i(2437, 1, "Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437", "Module '{0}' is hidden by a local declaration with the same name."), Import_name_cannot_be_0: i(2438, 1, "Import_name_cannot_be_0_2438", "Import name cannot be '{0}'."), Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: i(2439, 1, "Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439", "Import or export declaration in an ambient module declaration cannot reference module through relative module name."), Import_declaration_conflicts_with_local_declaration_of_0: i(2440, 1, "Import_declaration_conflicts_with_local_declaration_of_0_2440", "Import declaration conflicts with local declaration of '{0}'."), Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: i(2441, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."), Types_have_separate_declarations_of_a_private_property_0: i(2442, 1, "Types_have_separate_declarations_of_a_private_property_0_2442", "Types have separate declarations of a private property '{0}'."), Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: i(2443, 1, "Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443", "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."), Property_0_is_protected_in_type_1_but_public_in_type_2: i(2444, 1, "Property_0_is_protected_in_type_1_but_public_in_type_2_2444", "Property '{0}' is protected in type '{1}' but public in type '{2}'."), Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: i(2445, 1, "Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445", "Property '{0}' is protected and only accessible within class '{1}' and its subclasses."), Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2: i(2446, 1, "Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446", "Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."), The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: i(2447, 1, "The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447", "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."), Block_scoped_variable_0_used_before_its_declaration: i(2448, 1, "Block_scoped_variable_0_used_before_its_declaration_2448", "Block-scoped variable '{0}' used before its declaration."), Class_0_used_before_its_declaration: i(2449, 1, "Class_0_used_before_its_declaration_2449", "Class '{0}' used before its declaration."), Enum_0_used_before_its_declaration: i(2450, 1, "Enum_0_used_before_its_declaration_2450", "Enum '{0}' used before its declaration."), Cannot_redeclare_block_scoped_variable_0: i(2451, 1, "Cannot_redeclare_block_scoped_variable_0_2451", "Cannot redeclare block-scoped variable '{0}'."), An_enum_member_cannot_have_a_numeric_name: i(2452, 1, "An_enum_member_cannot_have_a_numeric_name_2452", "An enum member cannot have a numeric name."), Variable_0_is_used_before_being_assigned: i(2454, 1, "Variable_0_is_used_before_being_assigned_2454", "Variable '{0}' is used before being assigned."), Type_alias_0_circularly_references_itself: i(2456, 1, "Type_alias_0_circularly_references_itself_2456", "Type alias '{0}' circularly references itself."), Type_alias_name_cannot_be_0: i(2457, 1, "Type_alias_name_cannot_be_0_2457", "Type alias name cannot be '{0}'."), An_AMD_module_cannot_have_multiple_name_assignments: i(2458, 1, "An_AMD_module_cannot_have_multiple_name_assignments_2458", "An AMD module cannot have multiple name assignments."), Module_0_declares_1_locally_but_it_is_not_exported: i(2459, 1, "Module_0_declares_1_locally_but_it_is_not_exported_2459", "Module '{0}' declares '{1}' locally, but it is not exported."), Module_0_declares_1_locally_but_it_is_exported_as_2: i(2460, 1, "Module_0_declares_1_locally_but_it_is_exported_as_2_2460", "Module '{0}' declares '{1}' locally, but it is exported as '{2}'."), Type_0_is_not_an_array_type: i(2461, 1, "Type_0_is_not_an_array_type_2461", "Type '{0}' is not an array type."), A_rest_element_must_be_last_in_a_destructuring_pattern: i(2462, 1, "A_rest_element_must_be_last_in_a_destructuring_pattern_2462", "A rest element must be last in a destructuring pattern."), A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: i(2463, 1, "A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463", "A binding pattern parameter cannot be optional in an implementation signature."), A_computed_property_name_must_be_of_type_string_number_symbol_or_any: i(2464, 1, "A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464", "A computed property name must be of type 'string', 'number', 'symbol', or 'any'."), this_cannot_be_referenced_in_a_computed_property_name: i(2465, 1, "this_cannot_be_referenced_in_a_computed_property_name_2465", "'this' cannot be referenced in a computed property name."), super_cannot_be_referenced_in_a_computed_property_name: i(2466, 1, "super_cannot_be_referenced_in_a_computed_property_name_2466", "'super' cannot be referenced in a computed property name."), A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: i(2467, 1, "A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467", "A computed property name cannot reference a type parameter from its containing type."), Cannot_find_global_value_0: i(2468, 1, "Cannot_find_global_value_0_2468", "Cannot find global value '{0}'."), The_0_operator_cannot_be_applied_to_type_symbol: i(2469, 1, "The_0_operator_cannot_be_applied_to_type_symbol_2469", "The '{0}' operator cannot be applied to type 'symbol'."), Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: i(2472, 1, "Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472", "Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."), Enum_declarations_must_all_be_const_or_non_const: i(2473, 1, "Enum_declarations_must_all_be_const_or_non_const_2473", "Enum declarations must all be const or non-const."), const_enum_member_initializers_must_be_constant_expressions: i(2474, 1, "const_enum_member_initializers_must_be_constant_expressions_2474", "const enum member initializers must be constant expressions."), const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query: i(2475, 1, "const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475", "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."), A_const_enum_member_can_only_be_accessed_using_a_string_literal: i(2476, 1, "A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476", "A const enum member can only be accessed using a string literal."), const_enum_member_initializer_was_evaluated_to_a_non_finite_value: i(2477, 1, "const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477", "'const' enum member initializer was evaluated to a non-finite value."), const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: i(2478, 1, "const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478", "'const' enum member initializer was evaluated to disallowed value 'NaN'."), let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: i(2480, 1, "let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480", "'let' is not allowed to be used as a name in 'let' or 'const' declarations."), Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: i(2481, 1, "Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481", "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."), The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: i(2483, 1, "The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483", "The left-hand side of a 'for...of' statement cannot use a type annotation."), Export_declaration_conflicts_with_exported_declaration_of_0: i(2484, 1, "Export_declaration_conflicts_with_exported_declaration_of_0_2484", "Export declaration conflicts with exported declaration of '{0}'."), The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: i(2487, 1, "The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487", "The left-hand side of a 'for...of' statement must be a variable or a property access."), Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator: i(2488, 1, "Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488", "Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."), An_iterator_must_have_a_next_method: i(2489, 1, "An_iterator_must_have_a_next_method_2489", "An iterator must have a 'next()' method."), The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property: i(2490, 1, "The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490", "The type returned by the '{0}()' method of an iterator must have a 'value' property."), The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: i(2491, 1, "The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491", "The left-hand side of a 'for...in' statement cannot be a destructuring pattern."), Cannot_redeclare_identifier_0_in_catch_clause: i(2492, 1, "Cannot_redeclare_identifier_0_in_catch_clause_2492", "Cannot redeclare identifier '{0}' in catch clause."), Tuple_type_0_of_length_1_has_no_element_at_index_2: i(2493, 1, "Tuple_type_0_of_length_1_has_no_element_at_index_2_2493", "Tuple type '{0}' of length '{1}' has no element at index '{2}'."), Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: i(2494, 1, "Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494", "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."), Type_0_is_not_an_array_type_or_a_string_type: i(2495, 1, "Type_0_is_not_an_array_type_or_a_string_type_2495", "Type '{0}' is not an array type or a string type."), The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression: i(2496, 1, "The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496", "The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression."), This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export: i(2497, 1, "This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497", "This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."), Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: i(2498, 1, "Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498", "Module '{0}' uses 'export =' and cannot be used with 'export *'."), An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: i(2499, 1, "An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499", "An interface can only extend an identifier/qualified-name with optional type arguments."), A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: i(2500, 1, "A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500", "A class can only implement an identifier/qualified-name with optional type arguments."), A_rest_element_cannot_contain_a_binding_pattern: i(2501, 1, "A_rest_element_cannot_contain_a_binding_pattern_2501", "A rest element cannot contain a binding pattern."), _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: i(2502, 1, "_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502", "'{0}' is referenced directly or indirectly in its own type annotation."), Cannot_find_namespace_0: i(2503, 1, "Cannot_find_namespace_0_2503", "Cannot find namespace '{0}'."), Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator: i(2504, 1, "Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504", "Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."), A_generator_cannot_have_a_void_type_annotation: i(2505, 1, "A_generator_cannot_have_a_void_type_annotation_2505", "A generator cannot have a 'void' type annotation."), _0_is_referenced_directly_or_indirectly_in_its_own_base_expression: i(2506, 1, "_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506", "'{0}' is referenced directly or indirectly in its own base expression."), Type_0_is_not_a_constructor_function_type: i(2507, 1, "Type_0_is_not_a_constructor_function_type_2507", "Type '{0}' is not a constructor function type."), No_base_constructor_has_the_specified_number_of_type_arguments: i(2508, 1, "No_base_constructor_has_the_specified_number_of_type_arguments_2508", "No base constructor has the specified number of type arguments."), Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members: i(2509, 1, "Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509", "Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."), Base_constructors_must_all_have_the_same_return_type: i(2510, 1, "Base_constructors_must_all_have_the_same_return_type_2510", "Base constructors must all have the same return type."), Cannot_create_an_instance_of_an_abstract_class: i(2511, 1, "Cannot_create_an_instance_of_an_abstract_class_2511", "Cannot create an instance of an abstract class."), Overload_signatures_must_all_be_abstract_or_non_abstract: i(2512, 1, "Overload_signatures_must_all_be_abstract_or_non_abstract_2512", "Overload signatures must all be abstract or non-abstract."), Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: i(2513, 1, "Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513", "Abstract method '{0}' in class '{1}' cannot be accessed via super expression."), A_tuple_type_cannot_be_indexed_with_a_negative_value: i(2514, 1, "A_tuple_type_cannot_be_indexed_with_a_negative_value_2514", "A tuple type cannot be indexed with a negative value."), Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: i(2515, 1, "Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515", "Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'."), All_declarations_of_an_abstract_method_must_be_consecutive: i(2516, 1, "All_declarations_of_an_abstract_method_must_be_consecutive_2516", "All declarations of an abstract method must be consecutive."), Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: i(2517, 1, "Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517", "Cannot assign an abstract constructor type to a non-abstract constructor type."), A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: i(2518, 1, "A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518", "A 'this'-based type guard is not compatible with a parameter-based type guard."), An_async_iterator_must_have_a_next_method: i(2519, 1, "An_async_iterator_must_have_a_next_method_2519", "An async iterator must have a 'next()' method."), Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: i(2520, 1, "Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520", "Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."), The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method: i(2522, 1, "The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522", "The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method."), yield_expressions_cannot_be_used_in_a_parameter_initializer: i(2523, 1, "yield_expressions_cannot_be_used_in_a_parameter_initializer_2523", "'yield' expressions cannot be used in a parameter initializer."), await_expressions_cannot_be_used_in_a_parameter_initializer: i(2524, 1, "await_expressions_cannot_be_used_in_a_parameter_initializer_2524", "'await' expressions cannot be used in a parameter initializer."), Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value: i(2525, 1, "Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525", "Initializer provides no value for this binding element and the binding element has no default value."), A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: i(2526, 1, "A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526", "A 'this' type is available only in a non-static member of a class or interface."), The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary: i(2527, 1, "The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527", "The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."), A_module_cannot_have_multiple_default_exports: i(2528, 1, "A_module_cannot_have_multiple_default_exports_2528", "A module cannot have multiple default exports."), Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: i(2529, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529", "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."), Property_0_is_incompatible_with_index_signature: i(2530, 1, "Property_0_is_incompatible_with_index_signature_2530", "Property '{0}' is incompatible with index signature."), Object_is_possibly_null: i(2531, 1, "Object_is_possibly_null_2531", "Object is possibly 'null'."), Object_is_possibly_undefined: i(2532, 1, "Object_is_possibly_undefined_2532", "Object is possibly 'undefined'."), Object_is_possibly_null_or_undefined: i(2533, 1, "Object_is_possibly_null_or_undefined_2533", "Object is possibly 'null' or 'undefined'."), A_function_returning_never_cannot_have_a_reachable_end_point: i(2534, 1, "A_function_returning_never_cannot_have_a_reachable_end_point_2534", "A function returning 'never' cannot have a reachable end point."), Type_0_cannot_be_used_to_index_type_1: i(2536, 1, "Type_0_cannot_be_used_to_index_type_1_2536", "Type '{0}' cannot be used to index type '{1}'."), Type_0_has_no_matching_index_signature_for_type_1: i(2537, 1, "Type_0_has_no_matching_index_signature_for_type_1_2537", "Type '{0}' has no matching index signature for type '{1}'."), Type_0_cannot_be_used_as_an_index_type: i(2538, 1, "Type_0_cannot_be_used_as_an_index_type_2538", "Type '{0}' cannot be used as an index type."), Cannot_assign_to_0_because_it_is_not_a_variable: i(2539, 1, "Cannot_assign_to_0_because_it_is_not_a_variable_2539", "Cannot assign to '{0}' because it is not a variable."), Cannot_assign_to_0_because_it_is_a_read_only_property: i(2540, 1, "Cannot_assign_to_0_because_it_is_a_read_only_property_2540", "Cannot assign to '{0}' because it is a read-only property."), Index_signature_in_type_0_only_permits_reading: i(2542, 1, "Index_signature_in_type_0_only_permits_reading_2542", "Index signature in type '{0}' only permits reading."), Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference: i(2543, 1, "Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543", "Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."), Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference: i(2544, 1, "Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544", "Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."), A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any: i(2545, 1, "A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545", "A mixin class must have a constructor with a single rest parameter of type 'any[]'."), The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property: i(2547, 1, "The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547", "The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."), Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: i(2548, 1, "Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548", "Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."), Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: i(2549, 1, "Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549", "Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."), Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later: i(2550, 1, "Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550", "Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."), Property_0_does_not_exist_on_type_1_Did_you_mean_2: i(2551, 1, "Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551", "Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"), Cannot_find_name_0_Did_you_mean_1: i(2552, 1, "Cannot_find_name_0_Did_you_mean_1_2552", "Cannot find name '{0}'. Did you mean '{1}'?"), Computed_values_are_not_permitted_in_an_enum_with_string_valued_members: i(2553, 1, "Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553", "Computed values are not permitted in an enum with string valued members."), Expected_0_arguments_but_got_1: i(2554, 1, "Expected_0_arguments_but_got_1_2554", "Expected {0} arguments, but got {1}."), Expected_at_least_0_arguments_but_got_1: i(2555, 1, "Expected_at_least_0_arguments_but_got_1_2555", "Expected at least {0} arguments, but got {1}."), A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter: i(2556, 1, "A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556", "A spread argument must either have a tuple type or be passed to a rest parameter."), Expected_0_type_arguments_but_got_1: i(2558, 1, "Expected_0_type_arguments_but_got_1_2558", "Expected {0} type arguments, but got {1}."), Type_0_has_no_properties_in_common_with_type_1: i(2559, 1, "Type_0_has_no_properties_in_common_with_type_1_2559", "Type '{0}' has no properties in common with type '{1}'."), Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it: i(2560, 1, "Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560", "Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"), Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2: i(2561, 1, "Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561", "Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"), Base_class_expressions_cannot_reference_class_type_parameters: i(2562, 1, "Base_class_expressions_cannot_reference_class_type_parameters_2562", "Base class expressions cannot reference class type parameters."), The_containing_function_or_module_body_is_too_large_for_control_flow_analysis: i(2563, 1, "The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563", "The containing function or module body is too large for control flow analysis."), Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor: i(2564, 1, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564", "Property '{0}' has no initializer and is not definitely assigned in the constructor."), Property_0_is_used_before_being_assigned: i(2565, 1, "Property_0_is_used_before_being_assigned_2565", "Property '{0}' is used before being assigned."), A_rest_element_cannot_have_a_property_name: i(2566, 1, "A_rest_element_cannot_have_a_property_name_2566", "A rest element cannot have a property name."), Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations: i(2567, 1, "Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567", "Enum declarations can only merge with namespace or other enum declarations."), Property_0_may_not_exist_on_type_1_Did_you_mean_2: i(2568, 1, "Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568", "Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"), Could_not_find_name_0_Did_you_mean_1: i(2570, 1, "Could_not_find_name_0_Did_you_mean_1_2570", "Could not find name '{0}'. Did you mean '{1}'?"), Object_is_of_type_unknown: i(2571, 1, "Object_is_of_type_unknown_2571", "Object is of type 'unknown'."), A_rest_element_type_must_be_an_array_type: i(2574, 1, "A_rest_element_type_must_be_an_array_type_2574", "A rest element type must be an array type."), No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments: i(2575, 1, "No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575", "No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."), Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead: i(2576, 1, "Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576", "Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"), Return_type_annotation_circularly_references_itself: i(2577, 1, "Return_type_annotation_circularly_references_itself_2577", "Return type annotation circularly references itself."), Unused_ts_expect_error_directive: i(2578, 1, "Unused_ts_expect_error_directive_2578", "Unused '@ts-expect-error' directive."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode: i(2580, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery: i(2581, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha: i(2582, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."), Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later: i(2583, 1, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."), Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: i(2584, 1, "Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584", "Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."), _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: i(2585, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585", "'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."), Cannot_assign_to_0_because_it_is_a_constant: i(2588, 1, "Cannot_assign_to_0_because_it_is_a_constant_2588", "Cannot assign to '{0}' because it is a constant."), Type_instantiation_is_excessively_deep_and_possibly_infinite: i(2589, 1, "Type_instantiation_is_excessively_deep_and_possibly_infinite_2589", "Type instantiation is excessively deep and possibly infinite."), Expression_produces_a_union_type_that_is_too_complex_to_represent: i(2590, 1, "Expression_produces_a_union_type_that_is_too_complex_to_represent_2590", "Expression produces a union type that is too complex to represent."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: i(2591, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591", "Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: i(2592, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592", "Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."), Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: i(2593, 1, "Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593", "Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."), This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: i(2594, 1, "This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594", "This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."), _0_can_only_be_imported_by_using_a_default_import: i(2595, 1, "_0_can_only_be_imported_by_using_a_default_import_2595", "'{0}' can only be imported by using a default import."), _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: i(2596, 1, "_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596", "'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."), _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: i(2597, 1, "_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597", "'{0}' can only be imported by using a 'require' call or by using a default import."), _0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: i(2598, 1, "_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598", "'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."), JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: i(2602, 1, "JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602", "JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."), Property_0_in_type_1_is_not_assignable_to_type_2: i(2603, 1, "Property_0_in_type_1_is_not_assignable_to_type_2_2603", "Property '{0}' in type '{1}' is not assignable to type '{2}'."), JSX_element_type_0_does_not_have_any_construct_or_call_signatures: i(2604, 1, "JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604", "JSX element type '{0}' does not have any construct or call signatures."), Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: i(2606, 1, "Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606", "Property '{0}' of JSX spread attribute is not assignable to target property."), JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: i(2607, 1, "JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607", "JSX element class does not support attributes because it does not have a '{0}' property."), The_global_type_JSX_0_may_not_have_more_than_one_property: i(2608, 1, "The_global_type_JSX_0_may_not_have_more_than_one_property_2608", "The global type 'JSX.{0}' may not have more than one property."), JSX_spread_child_must_be_an_array_type: i(2609, 1, "JSX_spread_child_must_be_an_array_type_2609", "JSX spread child must be an array type."), _0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property: i(2610, 1, "_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610", "'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."), _0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor: i(2611, 1, "_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611", "'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."), Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration: i(2612, 1, "Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612", "Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."), Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead: i(2613, 1, "Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613", "Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"), Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead: i(2614, 1, "Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614", "Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"), Type_of_property_0_circularly_references_itself_in_mapped_type_1: i(2615, 1, "Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615", "Type of property '{0}' circularly references itself in mapped type '{1}'."), _0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import: i(2616, 1, "_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616", "'{0}' can only be imported by using 'import {1} = require({2})' or a default import."), _0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: i(2617, 1, "_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617", "'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."), Source_has_0_element_s_but_target_requires_1: i(2618, 1, "Source_has_0_element_s_but_target_requires_1_2618", "Source has {0} element(s) but target requires {1}."), Source_has_0_element_s_but_target_allows_only_1: i(2619, 1, "Source_has_0_element_s_but_target_allows_only_1_2619", "Source has {0} element(s) but target allows only {1}."), Target_requires_0_element_s_but_source_may_have_fewer: i(2620, 1, "Target_requires_0_element_s_but_source_may_have_fewer_2620", "Target requires {0} element(s) but source may have fewer."), Target_allows_only_0_element_s_but_source_may_have_more: i(2621, 1, "Target_allows_only_0_element_s_but_source_may_have_more_2621", "Target allows only {0} element(s) but source may have more."), Source_provides_no_match_for_required_element_at_position_0_in_target: i(2623, 1, "Source_provides_no_match_for_required_element_at_position_0_in_target_2623", "Source provides no match for required element at position {0} in target."), Source_provides_no_match_for_variadic_element_at_position_0_in_target: i(2624, 1, "Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624", "Source provides no match for variadic element at position {0} in target."), Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target: i(2625, 1, "Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625", "Variadic element at position {0} in source does not match element at position {1} in target."), Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target: i(2626, 1, "Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626", "Type at position {0} in source is not compatible with type at position {1} in target."), Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target: i(2627, 1, "Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627", "Type at positions {0} through {1} in source is not compatible with type at position {2} in target."), Cannot_assign_to_0_because_it_is_an_enum: i(2628, 1, "Cannot_assign_to_0_because_it_is_an_enum_2628", "Cannot assign to '{0}' because it is an enum."), Cannot_assign_to_0_because_it_is_a_class: i(2629, 1, "Cannot_assign_to_0_because_it_is_a_class_2629", "Cannot assign to '{0}' because it is a class."), Cannot_assign_to_0_because_it_is_a_function: i(2630, 1, "Cannot_assign_to_0_because_it_is_a_function_2630", "Cannot assign to '{0}' because it is a function."), Cannot_assign_to_0_because_it_is_a_namespace: i(2631, 1, "Cannot_assign_to_0_because_it_is_a_namespace_2631", "Cannot assign to '{0}' because it is a namespace."), Cannot_assign_to_0_because_it_is_an_import: i(2632, 1, "Cannot_assign_to_0_because_it_is_an_import_2632", "Cannot assign to '{0}' because it is an import."), JSX_property_access_expressions_cannot_include_JSX_namespace_names: i(2633, 1, "JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633", "JSX property access expressions cannot include JSX namespace names"), _0_index_signatures_are_incompatible: i(2634, 1, "_0_index_signatures_are_incompatible_2634", "'{0}' index signatures are incompatible."), Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: i(2635, 1, "Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635", "Type '{0}' has no signatures for which the type argument list is applicable."), Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: i(2636, 1, "Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636", "Type '{0}' is not assignable to type '{1}' as implied by variance annotation."), Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: i(2637, 1, "Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637", "Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."), Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator: i(2638, 1, "Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638", "Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."), React_components_cannot_include_JSX_namespace_names: i(2639, 1, "React_components_cannot_include_JSX_namespace_names_2639", "React components cannot include JSX namespace names"), Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: i(2649, 1, "Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649", "Cannot augment module '{0}' with value exports because it resolves to a non-module entity."), A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: i(2651, 1, "A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651", "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."), Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: i(2652, 1, "Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652", "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."), Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: i(2653, 1, "Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653", "Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."), JSX_expressions_must_have_one_parent_element: i(2657, 1, "JSX_expressions_must_have_one_parent_element_2657", "JSX expressions must have one parent element."), Type_0_provides_no_match_for_the_signature_1: i(2658, 1, "Type_0_provides_no_match_for_the_signature_1_2658", "Type '{0}' provides no match for the signature '{1}'."), super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: i(2659, 1, "super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659", "'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."), super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: i(2660, 1, "super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660", "'super' can only be referenced in members of derived classes or object literal expressions."), Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: i(2661, 1, "Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661", "Cannot export '{0}'. Only local declarations can be exported from a module."), Cannot_find_name_0_Did_you_mean_the_static_member_1_0: i(2662, 1, "Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662", "Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"), Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: i(2663, 1, "Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663", "Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"), Invalid_module_name_in_augmentation_module_0_cannot_be_found: i(2664, 1, "Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664", "Invalid module name in augmentation, module '{0}' cannot be found."), Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: i(2665, 1, "Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665", "Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."), Exports_and_export_assignments_are_not_permitted_in_module_augmentations: i(2666, 1, "Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666", "Exports and export assignments are not permitted in module augmentations."), Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: i(2667, 1, "Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667", "Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."), export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: i(2668, 1, "export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668", "'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."), Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: i(2669, 1, "Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669", "Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."), Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: i(2670, 1, "Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670", "Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."), Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: i(2671, 1, "Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671", "Cannot augment module '{0}' because it resolves to a non-module entity."), Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: i(2672, 1, "Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672", "Cannot assign a '{0}' constructor type to a '{1}' constructor type."), Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: i(2673, 1, "Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673", "Constructor of class '{0}' is private and only accessible within the class declaration."), Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: i(2674, 1, "Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674", "Constructor of class '{0}' is protected and only accessible within the class declaration."), Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: i(2675, 1, "Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675", "Cannot extend a class '{0}'. Class constructor is marked as private."), Accessors_must_both_be_abstract_or_non_abstract: i(2676, 1, "Accessors_must_both_be_abstract_or_non_abstract_2676", "Accessors must both be abstract or non-abstract."), A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: i(2677, 1, "A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677", "A type predicate's type must be assignable to its parameter's type."), Type_0_is_not_comparable_to_type_1: i(2678, 1, "Type_0_is_not_comparable_to_type_1_2678", "Type '{0}' is not comparable to type '{1}'."), A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: i(2679, 1, "A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679", "A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."), A_0_parameter_must_be_the_first_parameter: i(2680, 1, "A_0_parameter_must_be_the_first_parameter_2680", "A '{0}' parameter must be the first parameter."), A_constructor_cannot_have_a_this_parameter: i(2681, 1, "A_constructor_cannot_have_a_this_parameter_2681", "A constructor cannot have a 'this' parameter."), this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: i(2683, 1, "this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683", "'this' implicitly has type 'any' because it does not have a type annotation."), The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: i(2684, 1, "The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684", "The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."), The_this_types_of_each_signature_are_incompatible: i(2685, 1, "The_this_types_of_each_signature_are_incompatible_2685", "The 'this' types of each signature are incompatible."), _0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: i(2686, 1, "_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686", "'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."), All_declarations_of_0_must_have_identical_modifiers: i(2687, 1, "All_declarations_of_0_must_have_identical_modifiers_2687", "All declarations of '{0}' must have identical modifiers."), Cannot_find_type_definition_file_for_0: i(2688, 1, "Cannot_find_type_definition_file_for_0_2688", "Cannot find type definition file for '{0}'."), Cannot_extend_an_interface_0_Did_you_mean_implements: i(2689, 1, "Cannot_extend_an_interface_0_Did_you_mean_implements_2689", "Cannot extend an interface '{0}'. Did you mean 'implements'?"), _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0: i(2690, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690", "'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"), _0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: i(2692, 1, "_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692", "'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."), _0_only_refers_to_a_type_but_is_being_used_as_a_value_here: i(2693, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693", "'{0}' only refers to a type, but is being used as a value here."), Namespace_0_has_no_exported_member_1: i(2694, 1, "Namespace_0_has_no_exported_member_1_2694", "Namespace '{0}' has no exported member '{1}'."), Left_side_of_comma_operator_is_unused_and_has_no_side_effects: i(2695, 1, "Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695", "Left side of comma operator is unused and has no side effects.", true), The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: i(2696, 1, "The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696", "The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"), An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: i(2697, 1, "An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697", "An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."), Spread_types_may_only_be_created_from_object_types: i(2698, 1, "Spread_types_may_only_be_created_from_object_types_2698", "Spread types may only be created from object types."), Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1: i(2699, 1, "Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699", "Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."), Rest_types_may_only_be_created_from_object_types: i(2700, 1, "Rest_types_may_only_be_created_from_object_types_2700", "Rest types may only be created from object types."), The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access: i(2701, 1, "The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701", "The target of an object rest assignment must be a variable or a property access."), _0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here: i(2702, 1, "_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702", "'{0}' only refers to a type, but is being used as a namespace here."), The_operand_of_a_delete_operator_must_be_a_property_reference: i(2703, 1, "The_operand_of_a_delete_operator_must_be_a_property_reference_2703", "The operand of a 'delete' operator must be a property reference."), The_operand_of_a_delete_operator_cannot_be_a_read_only_property: i(2704, 1, "The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704", "The operand of a 'delete' operator cannot be a read-only property."), An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: i(2705, 1, "An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705", "An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."), Required_type_parameters_may_not_follow_optional_type_parameters: i(2706, 1, "Required_type_parameters_may_not_follow_optional_type_parameters_2706", "Required type parameters may not follow optional type parameters."), Generic_type_0_requires_between_1_and_2_type_arguments: i(2707, 1, "Generic_type_0_requires_between_1_and_2_type_arguments_2707", "Generic type '{0}' requires between {1} and {2} type arguments."), Cannot_use_namespace_0_as_a_value: i(2708, 1, "Cannot_use_namespace_0_as_a_value_2708", "Cannot use namespace '{0}' as a value."), Cannot_use_namespace_0_as_a_type: i(2709, 1, "Cannot_use_namespace_0_as_a_type_2709", "Cannot use namespace '{0}' as a type."), _0_are_specified_twice_The_attribute_named_0_will_be_overwritten: i(2710, 1, "_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710", "'{0}' are specified twice. The attribute named '{0}' will be overwritten."), A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: i(2711, 1, "A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711", "A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."), A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: i(2712, 1, "A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712", "A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."), Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1: i(2713, 1, "Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713", `Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`), The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context: i(2714, 1, "The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714", "The expression of an export assignment must be an identifier or qualified name in an ambient context."), Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor: i(2715, 1, "Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715", "Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."), Type_parameter_0_has_a_circular_default: i(2716, 1, "Type_parameter_0_has_a_circular_default_2716", "Type parameter '{0}' has a circular default."), Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2: i(2717, 1, "Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717", "Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."), Duplicate_property_0: i(2718, 1, "Duplicate_property_0_2718", "Duplicate property '{0}'."), Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: i(2719, 1, "Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719", "Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."), Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass: i(2720, 1, "Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720", "Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"), Cannot_invoke_an_object_which_is_possibly_null: i(2721, 1, "Cannot_invoke_an_object_which_is_possibly_null_2721", "Cannot invoke an object which is possibly 'null'."), Cannot_invoke_an_object_which_is_possibly_undefined: i(2722, 1, "Cannot_invoke_an_object_which_is_possibly_undefined_2722", "Cannot invoke an object which is possibly 'undefined'."), Cannot_invoke_an_object_which_is_possibly_null_or_undefined: i(2723, 1, "Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723", "Cannot invoke an object which is possibly 'null' or 'undefined'."), _0_has_no_exported_member_named_1_Did_you_mean_2: i(2724, 1, "_0_has_no_exported_member_named_1_Did_you_mean_2_2724", "'{0}' has no exported member named '{1}'. Did you mean '{2}'?"), Class_name_cannot_be_Object_when_targeting_ES5_with_module_0: i(2725, 1, "Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725", "Class name cannot be 'Object' when targeting ES5 with module {0}."), Cannot_find_lib_definition_for_0: i(2726, 1, "Cannot_find_lib_definition_for_0_2726", "Cannot find lib definition for '{0}'."), Cannot_find_lib_definition_for_0_Did_you_mean_1: i(2727, 1, "Cannot_find_lib_definition_for_0_Did_you_mean_1_2727", "Cannot find lib definition for '{0}'. Did you mean '{1}'?"), _0_is_declared_here: i(2728, 3, "_0_is_declared_here_2728", "'{0}' is declared here."), Property_0_is_used_before_its_initialization: i(2729, 1, "Property_0_is_used_before_its_initialization_2729", "Property '{0}' is used before its initialization."), An_arrow_function_cannot_have_a_this_parameter: i(2730, 1, "An_arrow_function_cannot_have_a_this_parameter_2730", "An arrow function cannot have a 'this' parameter."), Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String: i(2731, 1, "Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731", "Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."), Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension: i(2732, 1, "Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732", "Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."), Property_0_was_also_declared_here: i(2733, 1, "Property_0_was_also_declared_here_2733", "Property '{0}' was also declared here."), Are_you_missing_a_semicolon: i(2734, 1, "Are_you_missing_a_semicolon_2734", "Are you missing a semicolon?"), Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1: i(2735, 1, "Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735", "Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"), Operator_0_cannot_be_applied_to_type_1: i(2736, 1, "Operator_0_cannot_be_applied_to_type_1_2736", "Operator '{0}' cannot be applied to type '{1}'."), BigInt_literals_are_not_available_when_targeting_lower_than_ES2020: i(2737, 1, "BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737", "BigInt literals are not available when targeting lower than ES2020."), An_outer_value_of_this_is_shadowed_by_this_container: i(2738, 3, "An_outer_value_of_this_is_shadowed_by_this_container_2738", "An outer value of 'this' is shadowed by this container."), Type_0_is_missing_the_following_properties_from_type_1_Colon_2: i(2739, 1, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739", "Type '{0}' is missing the following properties from type '{1}': {2}"), Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more: i(2740, 1, "Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740", "Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."), Property_0_is_missing_in_type_1_but_required_in_type_2: i(2741, 1, "Property_0_is_missing_in_type_1_but_required_in_type_2_2741", "Property '{0}' is missing in type '{1}' but required in type '{2}'."), The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary: i(2742, 1, "The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742", "The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."), No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments: i(2743, 1, "No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743", "No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."), Type_parameter_defaults_can_only_reference_previously_declared_type_parameters: i(2744, 1, "Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744", "Type parameter defaults can only reference previously declared type parameters."), This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided: i(2745, 1, "This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745", "This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."), This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided: i(2746, 1, "This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746", "This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."), _0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2: i(2747, 1, "_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747", "'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."), Cannot_access_ambient_const_enums_when_0_is_enabled: i(2748, 1, "Cannot_access_ambient_const_enums_when_0_is_enabled_2748", "Cannot access ambient const enums when '{0}' is enabled."), _0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0: i(2749, 1, "_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749", "'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"), The_implementation_signature_is_declared_here: i(2750, 1, "The_implementation_signature_is_declared_here_2750", "The implementation signature is declared here."), Circularity_originates_in_type_at_this_location: i(2751, 1, "Circularity_originates_in_type_at_this_location_2751", "Circularity originates in type at this location."), The_first_export_default_is_here: i(2752, 1, "The_first_export_default_is_here_2752", "The first export default is here."), Another_export_default_is_here: i(2753, 1, "Another_export_default_is_here_2753", "Another export default is here."), super_may_not_use_type_arguments: i(2754, 1, "super_may_not_use_type_arguments_2754", "'super' may not use type arguments."), No_constituent_of_type_0_is_callable: i(2755, 1, "No_constituent_of_type_0_is_callable_2755", "No constituent of type '{0}' is callable."), Not_all_constituents_of_type_0_are_callable: i(2756, 1, "Not_all_constituents_of_type_0_are_callable_2756", "Not all constituents of type '{0}' are callable."), Type_0_has_no_call_signatures: i(2757, 1, "Type_0_has_no_call_signatures_2757", "Type '{0}' has no call signatures."), Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other: i(2758, 1, "Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758", "Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."), No_constituent_of_type_0_is_constructable: i(2759, 1, "No_constituent_of_type_0_is_constructable_2759", "No constituent of type '{0}' is constructable."), Not_all_constituents_of_type_0_are_constructable: i(2760, 1, "Not_all_constituents_of_type_0_are_constructable_2760", "Not all constituents of type '{0}' are constructable."), Type_0_has_no_construct_signatures: i(2761, 1, "Type_0_has_no_construct_signatures_2761", "Type '{0}' has no construct signatures."), Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other: i(2762, 1, "Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762", "Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."), Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0: i(2763, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."), Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0: i(2764, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."), Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0: i(2765, 1, "Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765", "Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."), Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0: i(2766, 1, "Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766", "Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."), The_0_property_of_an_iterator_must_be_a_method: i(2767, 1, "The_0_property_of_an_iterator_must_be_a_method_2767", "The '{0}' property of an iterator must be a method."), The_0_property_of_an_async_iterator_must_be_a_method: i(2768, 1, "The_0_property_of_an_async_iterator_must_be_a_method_2768", "The '{0}' property of an async iterator must be a method."), No_overload_matches_this_call: i(2769, 1, "No_overload_matches_this_call_2769", "No overload matches this call."), The_last_overload_gave_the_following_error: i(2770, 1, "The_last_overload_gave_the_following_error_2770", "The last overload gave the following error."), The_last_overload_is_declared_here: i(2771, 1, "The_last_overload_is_declared_here_2771", "The last overload is declared here."), Overload_0_of_1_2_gave_the_following_error: i(2772, 1, "Overload_0_of_1_2_gave_the_following_error_2772", "Overload {0} of {1}, '{2}', gave the following error."), Did_you_forget_to_use_await: i(2773, 1, "Did_you_forget_to_use_await_2773", "Did you forget to use 'await'?"), This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead: i(2774, 1, "This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774", "This condition will always return true since this function is always defined. Did you mean to call it instead?"), Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation: i(2775, 1, "Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775", "Assertions require every name in the call target to be declared with an explicit type annotation."), Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name: i(2776, 1, "Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776", "Assertions require the call target to be an identifier or qualified name."), The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access: i(2777, 1, "The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777", "The operand of an increment or decrement operator may not be an optional property access."), The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access: i(2778, 1, "The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778", "The target of an object rest assignment may not be an optional property access."), The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access: i(2779, 1, "The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779", "The left-hand side of an assignment expression may not be an optional property access."), The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access: i(2780, 1, "The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780", "The left-hand side of a 'for...in' statement may not be an optional property access."), The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access: i(2781, 1, "The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781", "The left-hand side of a 'for...of' statement may not be an optional property access."), _0_needs_an_explicit_type_annotation: i(2782, 3, "_0_needs_an_explicit_type_annotation_2782", "'{0}' needs an explicit type annotation."), _0_is_specified_more_than_once_so_this_usage_will_be_overwritten: i(2783, 1, "_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783", "'{0}' is specified more than once, so this usage will be overwritten."), get_and_set_accessors_cannot_declare_this_parameters: i(2784, 1, "get_and_set_accessors_cannot_declare_this_parameters_2784", "'get' and 'set' accessors cannot declare 'this' parameters."), This_spread_always_overwrites_this_property: i(2785, 1, "This_spread_always_overwrites_this_property_2785", "This spread always overwrites this property."), _0_cannot_be_used_as_a_JSX_component: i(2786, 1, "_0_cannot_be_used_as_a_JSX_component_2786", "'{0}' cannot be used as a JSX component."), Its_return_type_0_is_not_a_valid_JSX_element: i(2787, 1, "Its_return_type_0_is_not_a_valid_JSX_element_2787", "Its return type '{0}' is not a valid JSX element."), Its_instance_type_0_is_not_a_valid_JSX_element: i(2788, 1, "Its_instance_type_0_is_not_a_valid_JSX_element_2788", "Its instance type '{0}' is not a valid JSX element."), Its_element_type_0_is_not_a_valid_JSX_element: i(2789, 1, "Its_element_type_0_is_not_a_valid_JSX_element_2789", "Its element type '{0}' is not a valid JSX element."), The_operand_of_a_delete_operator_must_be_optional: i(2790, 1, "The_operand_of_a_delete_operator_must_be_optional_2790", "The operand of a 'delete' operator must be optional."), Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later: i(2791, 1, "Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791", "Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."), Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option: i(2792, 1, "Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792", "Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"), The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible: i(2793, 1, "The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793", "The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."), Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise: i(2794, 1, "Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794", "Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"), The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types: i(2795, 1, "The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795", "The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."), It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked: i(2796, 1, "It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796", "It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."), A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract: i(2797, 1, "A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797", "A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."), The_declaration_was_marked_as_deprecated_here: i(2798, 1, "The_declaration_was_marked_as_deprecated_here_2798", "The declaration was marked as deprecated here."), Type_produces_a_tuple_type_that_is_too_large_to_represent: i(2799, 1, "Type_produces_a_tuple_type_that_is_too_large_to_represent_2799", "Type produces a tuple type that is too large to represent."), Expression_produces_a_tuple_type_that_is_too_large_to_represent: i(2800, 1, "Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800", "Expression produces a tuple type that is too large to represent."), This_condition_will_always_return_true_since_this_0_is_always_defined: i(2801, 1, "This_condition_will_always_return_true_since_this_0_is_always_defined_2801", "This condition will always return true since this '{0}' is always defined."), Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher: i(2802, 1, "Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802", "Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."), Cannot_assign_to_private_method_0_Private_methods_are_not_writable: i(2803, 1, "Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803", "Cannot assign to private method '{0}'. Private methods are not writable."), Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name: i(2804, 1, "Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804", "Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."), Private_accessor_was_defined_without_a_getter: i(2806, 1, "Private_accessor_was_defined_without_a_getter_2806", "Private accessor was defined without a getter."), This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0: i(2807, 1, "This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807", "This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."), A_get_accessor_must_be_at_least_as_accessible_as_the_setter: i(2808, 1, "A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808", "A get accessor must be at least as accessible as the setter"), Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses: i(2809, 1, "Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809", "Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."), Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments: i(2810, 1, "Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810", "Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."), Initializer_for_property_0: i(2811, 1, "Initializer_for_property_0_2811", "Initializer for property '{0}'"), Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom: i(2812, 1, "Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812", "Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."), Class_declaration_cannot_implement_overload_list_for_0: i(2813, 1, "Class_declaration_cannot_implement_overload_list_for_0_2813", "Class declaration cannot implement overload list for '{0}'."), Function_with_bodies_can_only_merge_with_classes_that_are_ambient: i(2814, 1, "Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814", "Function with bodies can only merge with classes that are ambient."), arguments_cannot_be_referenced_in_property_initializers: i(2815, 1, "arguments_cannot_be_referenced_in_property_initializers_2815", "'arguments' cannot be referenced in property initializers."), Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class: i(2816, 1, "Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816", "Cannot use 'this' in a static property initializer of a decorated class."), Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block: i(2817, 1, "Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817", "Property '{0}' has no initializer and is not definitely assigned in a class static block."), Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers: i(2818, 1, "Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818", "Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."), Namespace_name_cannot_be_0: i(2819, 1, "Namespace_name_cannot_be_0_2819", "Namespace name cannot be '{0}'."), Type_0_is_not_assignable_to_type_1_Did_you_mean_2: i(2820, 1, "Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820", "Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"), Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext: i(2821, 1, "Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext_2821", "Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'."), Import_assertions_cannot_be_used_with_type_only_imports_or_exports: i(2822, 1, "Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822", "Import assertions cannot be used with type-only imports or exports."), Cannot_find_namespace_0_Did_you_mean_1: i(2833, 1, "Cannot_find_namespace_0_Did_you_mean_1_2833", "Cannot find namespace '{0}'. Did you mean '{1}'?"), Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path: i(2834, 1, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2834", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."), Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0: i(2835, 1, "Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_n_2835", "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"), Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls: i(2836, 1, "Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls_2836", "Import assertions are not allowed on statements that transpile to commonjs 'require' calls."), Import_assertion_values_must_be_string_literal_expressions: i(2837, 1, "Import_assertion_values_must_be_string_literal_expressions_2837", "Import assertion values must be string literal expressions."), All_declarations_of_0_must_have_identical_constraints: i(2838, 1, "All_declarations_of_0_must_have_identical_constraints_2838", "All declarations of '{0}' must have identical constraints."), This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: i(2839, 1, "This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839", "This condition will always return '{0}' since JavaScript compares objects by reference, not value."), An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_classes: i(2840, 1, "An_interface_cannot_extend_a_primitive_type_like_0_an_interface_can_only_extend_named_types_and_clas_2840", "An interface cannot extend a primitive type like '{0}'; an interface can only extend named types and classes"), The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_feature_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: i(2841, 1, "The_type_of_this_expression_cannot_be_named_without_a_resolution_mode_assertion_which_is_an_unstable_2841", "The type of this expression cannot be named without a 'resolution-mode' assertion, which is an unstable feature. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), _0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: i(2842, 1, "_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842", "'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"), We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: i(2843, 1, "We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843", "We can only write a type for '{0}' by adding a type for the entire parameter here."), Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: i(2844, 1, "Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844", "Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."), This_condition_will_always_return_0: i(2845, 1, "This_condition_will_always_return_0_2845", "This condition will always return '{0}'."), A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead: i(2846, 1, "A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846", "A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"), The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression: i(2848, 1, "The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848", "The right-hand side of an 'instanceof' expression must not be an instantiation expression."), Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1: i(2849, 1, "Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849", "Target signature provides too few arguments. Expected {0} or more, but got {1}."), The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined: i(2850, 1, "The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850", "The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."), The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined: i(2851, 1, "The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851", "The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."), await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: i(2852, 1, "await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852", "'await using' statements are only allowed within async functions and at the top levels of modules."), await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: i(2853, 1, "await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853", "'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."), Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_or_nodenext_and_the_target_option_is_set_to_es2017_or_higher: i(2854, 1, "Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854", "Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', or 'nodenext', and the 'target' option is set to 'es2017' or higher."), Import_declaration_0_is_using_private_name_1: i(4e3, 1, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."), Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: i(4002, 1, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."), Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: i(4004, 1, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."), Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: i(4006, 1, "Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006", "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."), Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: i(4008, 1, "Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008", "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."), Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: i(4010, 1, "Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010", "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."), Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: i(4012, 1, "Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012", "Type parameter '{0}' of public method from exported class has or is using private name '{1}'."), Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: i(4014, 1, "Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014", "Type parameter '{0}' of method from exported interface has or is using private name '{1}'."), Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: i(4016, 1, "Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016", "Type parameter '{0}' of exported function has or is using private name '{1}'."), Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: i(4019, 1, "Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019", "Implements clause of exported class '{0}' has or is using private name '{1}'."), extends_clause_of_exported_class_0_has_or_is_using_private_name_1: i(4020, 1, "extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020", "'extends' clause of exported class '{0}' has or is using private name '{1}'."), extends_clause_of_exported_class_has_or_is_using_private_name_0: i(4021, 1, "extends_clause_of_exported_class_has_or_is_using_private_name_0_4021", "'extends' clause of exported class has or is using private name '{0}'."), extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: i(4022, 1, "extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022", "'extends' clause of exported interface '{0}' has or is using private name '{1}'."), Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4023, 1, "Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023", "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."), Exported_variable_0_has_or_is_using_name_1_from_private_module_2: i(4024, 1, "Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024", "Exported variable '{0}' has or is using name '{1}' from private module '{2}'."), Exported_variable_0_has_or_is_using_private_name_1: i(4025, 1, "Exported_variable_0_has_or_is_using_private_name_1_4025", "Exported variable '{0}' has or is using private name '{1}'."), Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4026, 1, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026", "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: i(4027, 1, "Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027", "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."), Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: i(4028, 1, "Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028", "Public static property '{0}' of exported class has or is using private name '{1}'."), Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4029, 1, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029", "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: i(4030, 1, "Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030", "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."), Public_property_0_of_exported_class_has_or_is_using_private_name_1: i(4031, 1, "Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031", "Public property '{0}' of exported class has or is using private name '{1}'."), Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4032, 1, "Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032", "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."), Property_0_of_exported_interface_has_or_is_using_private_name_1: i(4033, 1, "Property_0_of_exported_interface_has_or_is_using_private_name_1_4033", "Property '{0}' of exported interface has or is using private name '{1}'."), Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4034, 1, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034", "Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1: i(4035, 1, "Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035", "Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."), Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4036, 1, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036", "Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1: i(4037, 1, "Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037", "Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."), Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4038, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."), Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4039, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039", "Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1: i(4040, 1, "Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040", "Return type of public static getter '{0}' from exported class has or is using private name '{1}'."), Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4041, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041", "Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."), Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4042, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042", "Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."), Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1: i(4043, 1, "Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043", "Return type of public getter '{0}' from exported class has or is using private name '{1}'."), Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: i(4044, 1, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044", "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."), Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: i(4045, 1, "Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045", "Return type of constructor signature from exported interface has or is using private name '{0}'."), Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: i(4046, 1, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046", "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."), Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: i(4047, 1, "Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047", "Return type of call signature from exported interface has or is using private name '{0}'."), Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: i(4048, 1, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048", "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."), Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: i(4049, 1, "Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049", "Return type of index signature from exported interface has or is using private name '{0}'."), Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: i(4050, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050", "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."), Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: i(4051, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051", "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."), Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: i(4052, 1, "Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052", "Return type of public static method from exported class has or is using private name '{0}'."), Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: i(4053, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053", "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."), Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: i(4054, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054", "Return type of public method from exported class has or is using name '{0}' from private module '{1}'."), Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: i(4055, 1, "Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055", "Return type of public method from exported class has or is using private name '{0}'."), Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: i(4056, 1, "Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056", "Return type of method from exported interface has or is using name '{0}' from private module '{1}'."), Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: i(4057, 1, "Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057", "Return type of method from exported interface has or is using private name '{0}'."), Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: i(4058, 1, "Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058", "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."), Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: i(4059, 1, "Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059", "Return type of exported function has or is using name '{0}' from private module '{1}'."), Return_type_of_exported_function_has_or_is_using_private_name_0: i(4060, 1, "Return_type_of_exported_function_has_or_is_using_private_name_0_4060", "Return type of exported function has or is using private name '{0}'."), Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4061, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."), Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4062, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062", "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."), Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: i(4063, 1, "Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063", "Parameter '{0}' of constructor from exported class has or is using private name '{1}'."), Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4064, 1, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064", "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."), Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: i(4065, 1, "Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065", "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."), Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4066, 1, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066", "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."), Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: i(4067, 1, "Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067", "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."), Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4068, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."), Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4069, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069", "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."), Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: i(4070, 1, "Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070", "Parameter '{0}' of public static method from exported class has or is using private name '{1}'."), Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4071, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071", "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."), Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: i(4072, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072", "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."), Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: i(4073, 1, "Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073", "Parameter '{0}' of public method from exported class has or is using private name '{1}'."), Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4074, 1, "Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074", "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."), Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: i(4075, 1, "Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075", "Parameter '{0}' of method from exported interface has or is using private name '{1}'."), Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4076, 1, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076", "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."), Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: i(4077, 1, "Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077", "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."), Parameter_0_of_exported_function_has_or_is_using_private_name_1: i(4078, 1, "Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078", "Parameter '{0}' of exported function has or is using private name '{1}'."), Exported_type_alias_0_has_or_is_using_private_name_1: i(4081, 1, "Exported_type_alias_0_has_or_is_using_private_name_1_4081", "Exported type alias '{0}' has or is using private name '{1}'."), Default_export_of_the_module_has_or_is_using_private_name_0: i(4082, 1, "Default_export_of_the_module_has_or_is_using_private_name_0_4082", "Default export of the module has or is using private name '{0}'."), Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1: i(4083, 1, "Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083", "Type parameter '{0}' of exported type alias has or is using private name '{1}'."), Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2: i(4084, 1, "Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084", "Exported type alias '{0}' has or is using private name '{1}' from module {2}."), Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1: i(4085, 1, "Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085", "Extends clause for inferred type '{0}' has or is using private name '{1}'."), Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict: i(4090, 1, "Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090", "Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict."), Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4091, 1, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091", "Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."), Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1: i(4092, 1, "Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092", "Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."), Property_0_of_exported_class_expression_may_not_be_private_or_protected: i(4094, 1, "Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094", "Property '{0}' of exported class expression may not be private or protected."), Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4095, 1, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095", "Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: i(4096, 1, "Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096", "Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."), Public_static_method_0_of_exported_class_has_or_is_using_private_name_1: i(4097, 1, "Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097", "Public static method '{0}' of exported class has or is using private name '{1}'."), Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4098, 1, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098", "Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."), Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: i(4099, 1, "Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099", "Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."), Public_method_0_of_exported_class_has_or_is_using_private_name_1: i(4100, 1, "Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100", "Public method '{0}' of exported class has or is using private name '{1}'."), Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: i(4101, 1, "Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101", "Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."), Method_0_of_exported_interface_has_or_is_using_private_name_1: i(4102, 1, "Method_0_of_exported_interface_has_or_is_using_private_name_1_4102", "Method '{0}' of exported interface has or is using private name '{1}'."), Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1: i(4103, 1, "Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103", "Type parameter '{0}' of exported mapped object type is using private name '{1}'."), The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1: i(4104, 1, "The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104", "The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."), Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter: i(4105, 1, "Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105", "Private or protected member '{0}' cannot be accessed on a type parameter."), Parameter_0_of_accessor_has_or_is_using_private_name_1: i(4106, 1, "Parameter_0_of_accessor_has_or_is_using_private_name_1_4106", "Parameter '{0}' of accessor has or is using private name '{1}'."), Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2: i(4107, 1, "Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107", "Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."), Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: i(4108, 1, "Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108", "Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."), Type_arguments_for_0_circularly_reference_themselves: i(4109, 1, "Type_arguments_for_0_circularly_reference_themselves_4109", "Type arguments for '{0}' circularly reference themselves."), Tuple_type_arguments_circularly_reference_themselves: i(4110, 1, "Tuple_type_arguments_circularly_reference_themselves_4110", "Tuple type arguments circularly reference themselves."), Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0: i(4111, 1, "Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111", "Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."), This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: i(4112, 1, "This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112", "This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."), This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: i(4113, 1, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."), This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: i(4114, 1, "This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114", "This member must have an 'override' modifier because it overrides a member in the base class '{0}'."), This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: i(4115, 1, "This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115", "This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."), This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: i(4116, 1, "This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116", "This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."), This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: i(4117, 1, "This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117", "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"), The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized: i(4118, 1, "The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118", "The type of this node cannot be serialized because its property '{0}' cannot be serialized."), This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: i(4119, 1, "This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119", "This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."), This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: i(4120, 1, "This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120", "This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."), This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: i(4121, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121", "This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."), This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: i(4122, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122", "This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."), This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: i(4123, 1, "This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123", "This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"), Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: i(4124, 1, "Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124", "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: i(4125, 1, "resolution_mode_assertions_are_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_wi_4125", "'resolution-mode' assertions are unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."), The_current_host_does_not_support_the_0_option: i(5001, 1, "The_current_host_does_not_support_the_0_option_5001", "The current host does not support the '{0}' option."), Cannot_find_the_common_subdirectory_path_for_the_input_files: i(5009, 1, "Cannot_find_the_common_subdirectory_path_for_the_input_files_5009", "Cannot find the common subdirectory path for the input files."), File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: i(5010, 1, "File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010", "File specification cannot end in a recursive directory wildcard ('**'): '{0}'."), Cannot_read_file_0_Colon_1: i(5012, 1, "Cannot_read_file_0_Colon_1_5012", "Cannot read file '{0}': {1}."), Failed_to_parse_file_0_Colon_1: i(5014, 1, "Failed_to_parse_file_0_Colon_1_5014", "Failed to parse file '{0}': {1}."), Unknown_compiler_option_0: i(5023, 1, "Unknown_compiler_option_0_5023", "Unknown compiler option '{0}'."), Compiler_option_0_requires_a_value_of_type_1: i(5024, 1, "Compiler_option_0_requires_a_value_of_type_1_5024", "Compiler option '{0}' requires a value of type {1}."), Unknown_compiler_option_0_Did_you_mean_1: i(5025, 1, "Unknown_compiler_option_0_Did_you_mean_1_5025", "Unknown compiler option '{0}'. Did you mean '{1}'?"), Could_not_write_file_0_Colon_1: i(5033, 1, "Could_not_write_file_0_Colon_1_5033", "Could not write file '{0}': {1}."), Option_project_cannot_be_mixed_with_source_files_on_a_command_line: i(5042, 1, "Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042", "Option 'project' cannot be mixed with source files on a command line."), Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: i(5047, 1, "Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047", "Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."), Option_0_cannot_be_specified_when_option_target_is_ES3: i(5048, 1, "Option_0_cannot_be_specified_when_option_target_is_ES3_5048", "Option '{0}' cannot be specified when option 'target' is 'ES3'."), Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: i(5051, 1, "Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051", "Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."), Option_0_cannot_be_specified_without_specifying_option_1: i(5052, 1, "Option_0_cannot_be_specified_without_specifying_option_1_5052", "Option '{0}' cannot be specified without specifying option '{1}'."), Option_0_cannot_be_specified_with_option_1: i(5053, 1, "Option_0_cannot_be_specified_with_option_1_5053", "Option '{0}' cannot be specified with option '{1}'."), A_tsconfig_json_file_is_already_defined_at_Colon_0: i(5054, 1, "A_tsconfig_json_file_is_already_defined_at_Colon_0_5054", "A 'tsconfig.json' file is already defined at: '{0}'."), Cannot_write_file_0_because_it_would_overwrite_input_file: i(5055, 1, "Cannot_write_file_0_because_it_would_overwrite_input_file_5055", "Cannot write file '{0}' because it would overwrite input file."), Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: i(5056, 1, "Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056", "Cannot write file '{0}' because it would be overwritten by multiple input files."), Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: i(5057, 1, "Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057", "Cannot find a tsconfig.json file at the specified directory: '{0}'."), The_specified_path_does_not_exist_Colon_0: i(5058, 1, "The_specified_path_does_not_exist_Colon_0_5058", "The specified path does not exist: '{0}'."), Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: i(5059, 1, "Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059", "Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."), Pattern_0_can_have_at_most_one_Asterisk_character: i(5061, 1, "Pattern_0_can_have_at_most_one_Asterisk_character_5061", "Pattern '{0}' can have at most one '*' character."), Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character: i(5062, 1, "Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062", "Substitution '{0}' in pattern '{1}' can have at most one '*' character."), Substitutions_for_pattern_0_should_be_an_array: i(5063, 1, "Substitutions_for_pattern_0_should_be_an_array_5063", "Substitutions for pattern '{0}' should be an array."), Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: i(5064, 1, "Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064", "Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."), File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: i(5065, 1, "File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065", "File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."), Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: i(5066, 1, "Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066", "Substitutions for pattern '{0}' shouldn't be an empty array."), Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: i(5067, 1, "Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067", "Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."), Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: i(5068, 1, "Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068", "Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."), Option_0_cannot_be_specified_without_specifying_option_1_or_option_2: i(5069, 1, "Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069", "Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."), Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic: i(5070, 1, "Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070", "Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."), Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext: i(5071, 1, "Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071", "Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'."), Unknown_build_option_0: i(5072, 1, "Unknown_build_option_0_5072", "Unknown build option '{0}'."), Build_option_0_requires_a_value_of_type_1: i(5073, 1, "Build_option_0_requires_a_value_of_type_1_5073", "Build option '{0}' requires a value of type {1}."), Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified: i(5074, 1, "Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074", "Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."), _0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2: i(5075, 1, "_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075", "'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."), _0_and_1_operations_cannot_be_mixed_without_parentheses: i(5076, 1, "_0_and_1_operations_cannot_be_mixed_without_parentheses_5076", "'{0}' and '{1}' operations cannot be mixed without parentheses."), Unknown_build_option_0_Did_you_mean_1: i(5077, 1, "Unknown_build_option_0_Did_you_mean_1_5077", "Unknown build option '{0}'. Did you mean '{1}'?"), Unknown_watch_option_0: i(5078, 1, "Unknown_watch_option_0_5078", "Unknown watch option '{0}'."), Unknown_watch_option_0_Did_you_mean_1: i(5079, 1, "Unknown_watch_option_0_Did_you_mean_1_5079", "Unknown watch option '{0}'. Did you mean '{1}'?"), Watch_option_0_requires_a_value_of_type_1: i(5080, 1, "Watch_option_0_requires_a_value_of_type_1_5080", "Watch option '{0}' requires a value of type {1}."), Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: i(5081, 1, "Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081", "Cannot find a tsconfig.json file at the current directory: {0}."), _0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: i(5082, 1, "_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082", "'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."), Cannot_read_file_0: i(5083, 1, "Cannot_read_file_0_5083", "Cannot read file '{0}'."), A_tuple_member_cannot_be_both_optional_and_rest: i(5085, 1, "A_tuple_member_cannot_be_both_optional_and_rest_5085", "A tuple member cannot be both optional and rest."), A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type: i(5086, 1, "A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086", "A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."), A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type: i(5087, 1, "A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087", "A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."), The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: i(5088, 1, "The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088", "The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."), Option_0_cannot_be_specified_when_option_jsx_is_1: i(5089, 1, "Option_0_cannot_be_specified_when_option_jsx_is_1_5089", "Option '{0}' cannot be specified when option 'jsx' is '{1}'."), Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash: i(5090, 1, "Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090", "Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"), Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled: i(5091, 1, "Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091", "Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."), The_root_value_of_a_0_file_must_be_an_object: i(5092, 1, "The_root_value_of_a_0_file_must_be_an_object_5092", "The root value of a '{0}' file must be an object."), Compiler_option_0_may_only_be_used_with_build: i(5093, 1, "Compiler_option_0_may_only_be_used_with_build_5093", "Compiler option '--{0}' may only be used with '--build'."), Compiler_option_0_may_not_be_used_with_build: i(5094, 1, "Compiler_option_0_may_not_be_used_with_build_5094", "Compiler option '--{0}' may not be used with '--build'."), Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later: i(5095, 1, "Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later_5095", "Option '{0}' can only be used when 'module' is set to 'es2015' or later."), Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: i(5096, 1, "Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096", "Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."), An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: i(5097, 1, "An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097", "An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."), Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: i(5098, 1, "Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098", "Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."), Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: i(5101, 1, "Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101", `Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`), Option_0_has_been_removed_Please_remove_it_from_your_configuration: i(5102, 1, "Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102", "Option '{0}' has been removed. Please remove it from your configuration."), Invalid_value_for_ignoreDeprecations: i(5103, 1, "Invalid_value_for_ignoreDeprecations_5103", "Invalid value for '--ignoreDeprecations'."), Option_0_is_redundant_and_cannot_be_specified_with_option_1: i(5104, 1, "Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104", "Option '{0}' is redundant and cannot be specified with option '{1}'."), Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System: i(5105, 1, "Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105", "Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."), Use_0_instead: i(5106, 3, "Use_0_instead_5106", "Use '{0}' instead."), Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error: i(5107, 1, "Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107", `Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`), Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: i(5108, 1, "Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108", "Option '{0}={1}' has been removed. Please remove it from your configuration."), Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1: i(5109, 1, "Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109", "Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."), Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1: i(5110, 1, "Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110", "Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."), Generates_a_sourcemap_for_each_corresponding_d_ts_file: i(6e3, 3, "Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000", "Generates a sourcemap for each corresponding '.d.ts' file."), Concatenate_and_emit_output_to_single_file: i(6001, 3, "Concatenate_and_emit_output_to_single_file_6001", "Concatenate and emit output to single file."), Generates_corresponding_d_ts_file: i(6002, 3, "Generates_corresponding_d_ts_file_6002", "Generates corresponding '.d.ts' file."), Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: i(6004, 3, "Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004", "Specify the location where debugger should locate TypeScript files instead of source locations."), Watch_input_files: i(6005, 3, "Watch_input_files_6005", "Watch input files."), Redirect_output_structure_to_the_directory: i(6006, 3, "Redirect_output_structure_to_the_directory_6006", "Redirect output structure to the directory."), Do_not_erase_const_enum_declarations_in_generated_code: i(6007, 3, "Do_not_erase_const_enum_declarations_in_generated_code_6007", "Do not erase const enum declarations in generated code."), Do_not_emit_outputs_if_any_errors_were_reported: i(6008, 3, "Do_not_emit_outputs_if_any_errors_were_reported_6008", "Do not emit outputs if any errors were reported."), Do_not_emit_comments_to_output: i(6009, 3, "Do_not_emit_comments_to_output_6009", "Do not emit comments to output."), Do_not_emit_outputs: i(6010, 3, "Do_not_emit_outputs_6010", "Do not emit outputs."), Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: i(6011, 3, "Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011", "Allow default imports from modules with no default export. This does not affect code emit, just typechecking."), Skip_type_checking_of_declaration_files: i(6012, 3, "Skip_type_checking_of_declaration_files_6012", "Skip type checking of declaration files."), Do_not_resolve_the_real_path_of_symlinks: i(6013, 3, "Do_not_resolve_the_real_path_of_symlinks_6013", "Do not resolve the real path of symlinks."), Only_emit_d_ts_declaration_files: i(6014, 3, "Only_emit_d_ts_declaration_files_6014", "Only emit '.d.ts' declaration files."), Specify_ECMAScript_target_version: i(6015, 3, "Specify_ECMAScript_target_version_6015", "Specify ECMAScript target version."), Specify_module_code_generation: i(6016, 3, "Specify_module_code_generation_6016", "Specify module code generation."), Print_this_message: i(6017, 3, "Print_this_message_6017", "Print this message."), Print_the_compiler_s_version: i(6019, 3, "Print_the_compiler_s_version_6019", "Print the compiler's version."), Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json: i(6020, 3, "Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020", "Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."), Syntax_Colon_0: i(6023, 3, "Syntax_Colon_0_6023", "Syntax: {0}"), options: i(6024, 3, "options_6024", "options"), file: i(6025, 3, "file_6025", "file"), Examples_Colon_0: i(6026, 3, "Examples_Colon_0_6026", "Examples: {0}"), Options_Colon: i(6027, 3, "Options_Colon_6027", "Options:"), Version_0: i(6029, 3, "Version_0_6029", "Version {0}"), Insert_command_line_options_and_files_from_a_file: i(6030, 3, "Insert_command_line_options_and_files_from_a_file_6030", "Insert command line options and files from a file."), Starting_compilation_in_watch_mode: i(6031, 3, "Starting_compilation_in_watch_mode_6031", "Starting compilation in watch mode..."), File_change_detected_Starting_incremental_compilation: i(6032, 3, "File_change_detected_Starting_incremental_compilation_6032", "File change detected. Starting incremental compilation..."), KIND: i(6034, 3, "KIND_6034", "KIND"), FILE: i(6035, 3, "FILE_6035", "FILE"), VERSION: i(6036, 3, "VERSION_6036", "VERSION"), LOCATION: i(6037, 3, "LOCATION_6037", "LOCATION"), DIRECTORY: i(6038, 3, "DIRECTORY_6038", "DIRECTORY"), STRATEGY: i(6039, 3, "STRATEGY_6039", "STRATEGY"), FILE_OR_DIRECTORY: i(6040, 3, "FILE_OR_DIRECTORY_6040", "FILE OR DIRECTORY"), Errors_Files: i(6041, 3, "Errors_Files_6041", "Errors Files"), Generates_corresponding_map_file: i(6043, 3, "Generates_corresponding_map_file_6043", "Generates corresponding '.map' file."), Compiler_option_0_expects_an_argument: i(6044, 1, "Compiler_option_0_expects_an_argument_6044", "Compiler option '{0}' expects an argument."), Unterminated_quoted_string_in_response_file_0: i(6045, 1, "Unterminated_quoted_string_in_response_file_0_6045", "Unterminated quoted string in response file '{0}'."), Argument_for_0_option_must_be_Colon_1: i(6046, 1, "Argument_for_0_option_must_be_Colon_1_6046", "Argument for '{0}' option must be: {1}."), Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: i(6048, 1, "Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048", "Locale must be of the form or -. For example '{0}' or '{1}'."), Unable_to_open_file_0: i(6050, 1, "Unable_to_open_file_0_6050", "Unable to open file '{0}'."), Corrupted_locale_file_0: i(6051, 1, "Corrupted_locale_file_0_6051", "Corrupted locale file {0}."), Raise_error_on_expressions_and_declarations_with_an_implied_any_type: i(6052, 3, "Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052", "Raise error on expressions and declarations with an implied 'any' type."), File_0_not_found: i(6053, 1, "File_0_not_found_6053", "File '{0}' not found."), File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1: i(6054, 1, "File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054", "File '{0}' has an unsupported extension. The only supported extensions are {1}."), Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: i(6055, 3, "Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055", "Suppress noImplicitAny errors for indexing objects lacking index signatures."), Do_not_emit_declarations_for_code_that_has_an_internal_annotation: i(6056, 3, "Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056", "Do not emit declarations for code that has an '@internal' annotation."), Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: i(6058, 3, "Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058", "Specify the root directory of input files. Use to control the output directory structure with --outDir."), File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: i(6059, 1, "File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059", "File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."), Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: i(6060, 3, "Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060", "Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."), NEWLINE: i(6061, 3, "NEWLINE_6061", "NEWLINE"), Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line: i(6064, 1, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."), Enables_experimental_support_for_ES7_decorators: i(6065, 3, "Enables_experimental_support_for_ES7_decorators_6065", "Enables experimental support for ES7 decorators."), Enables_experimental_support_for_emitting_type_metadata_for_decorators: i(6066, 3, "Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066", "Enables experimental support for emitting type metadata for decorators."), Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: i(6070, 3, "Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070", "Initializes a TypeScript project and creates a tsconfig.json file."), Successfully_created_a_tsconfig_json_file: i(6071, 3, "Successfully_created_a_tsconfig_json_file_6071", "Successfully created a tsconfig.json file."), Suppress_excess_property_checks_for_object_literals: i(6072, 3, "Suppress_excess_property_checks_for_object_literals_6072", "Suppress excess property checks for object literals."), Stylize_errors_and_messages_using_color_and_context_experimental: i(6073, 3, "Stylize_errors_and_messages_using_color_and_context_experimental_6073", "Stylize errors and messages using color and context (experimental)."), Do_not_report_errors_on_unused_labels: i(6074, 3, "Do_not_report_errors_on_unused_labels_6074", "Do not report errors on unused labels."), Report_error_when_not_all_code_paths_in_function_return_a_value: i(6075, 3, "Report_error_when_not_all_code_paths_in_function_return_a_value_6075", "Report error when not all code paths in function return a value."), Report_errors_for_fallthrough_cases_in_switch_statement: i(6076, 3, "Report_errors_for_fallthrough_cases_in_switch_statement_6076", "Report errors for fallthrough cases in switch statement."), Do_not_report_errors_on_unreachable_code: i(6077, 3, "Do_not_report_errors_on_unreachable_code_6077", "Do not report errors on unreachable code."), Disallow_inconsistently_cased_references_to_the_same_file: i(6078, 3, "Disallow_inconsistently_cased_references_to_the_same_file_6078", "Disallow inconsistently-cased references to the same file."), Specify_library_files_to_be_included_in_the_compilation: i(6079, 3, "Specify_library_files_to_be_included_in_the_compilation_6079", "Specify library files to be included in the compilation."), Specify_JSX_code_generation: i(6080, 3, "Specify_JSX_code_generation_6080", "Specify JSX code generation."), File_0_has_an_unsupported_extension_so_skipping_it: i(6081, 3, "File_0_has_an_unsupported_extension_so_skipping_it_6081", "File '{0}' has an unsupported extension, so skipping it."), Only_amd_and_system_modules_are_supported_alongside_0: i(6082, 1, "Only_amd_and_system_modules_are_supported_alongside_0_6082", "Only 'amd' and 'system' modules are supported alongside --{0}."), Base_directory_to_resolve_non_absolute_module_names: i(6083, 3, "Base_directory_to_resolve_non_absolute_module_names_6083", "Base directory to resolve non-absolute module names."), Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit: i(6084, 3, "Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084", "[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"), Enable_tracing_of_the_name_resolution_process: i(6085, 3, "Enable_tracing_of_the_name_resolution_process_6085", "Enable tracing of the name resolution process."), Resolving_module_0_from_1: i(6086, 3, "Resolving_module_0_from_1_6086", "======== Resolving module '{0}' from '{1}'. ========"), Explicitly_specified_module_resolution_kind_Colon_0: i(6087, 3, "Explicitly_specified_module_resolution_kind_Colon_0_6087", "Explicitly specified module resolution kind: '{0}'."), Module_resolution_kind_is_not_specified_using_0: i(6088, 3, "Module_resolution_kind_is_not_specified_using_0_6088", "Module resolution kind is not specified, using '{0}'."), Module_name_0_was_successfully_resolved_to_1: i(6089, 3, "Module_name_0_was_successfully_resolved_to_1_6089", "======== Module name '{0}' was successfully resolved to '{1}'. ========"), Module_name_0_was_not_resolved: i(6090, 3, "Module_name_0_was_not_resolved_6090", "======== Module name '{0}' was not resolved. ========"), paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: i(6091, 3, "paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091", "'paths' option is specified, looking for a pattern to match module name '{0}'."), Module_name_0_matched_pattern_1: i(6092, 3, "Module_name_0_matched_pattern_1_6092", "Module name '{0}', matched pattern '{1}'."), Trying_substitution_0_candidate_module_location_Colon_1: i(6093, 3, "Trying_substitution_0_candidate_module_location_Colon_1_6093", "Trying substitution '{0}', candidate module location: '{1}'."), Resolving_module_name_0_relative_to_base_url_1_2: i(6094, 3, "Resolving_module_name_0_relative_to_base_url_1_2_6094", "Resolving module name '{0}' relative to base url '{1}' - '{2}'."), Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1: i(6095, 3, "Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095", "Loading module as file / folder, candidate module location '{0}', target file types: {1}."), File_0_does_not_exist: i(6096, 3, "File_0_does_not_exist_6096", "File '{0}' does not exist."), File_0_exists_use_it_as_a_name_resolution_result: i(6097, 3, "File_0_exists_use_it_as_a_name_resolution_result_6097", "File '{0}' exists - use it as a name resolution result."), Loading_module_0_from_node_modules_folder_target_file_types_Colon_1: i(6098, 3, "Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098", "Loading module '{0}' from 'node_modules' folder, target file types: {1}."), Found_package_json_at_0: i(6099, 3, "Found_package_json_at_0_6099", "Found 'package.json' at '{0}'."), package_json_does_not_have_a_0_field: i(6100, 3, "package_json_does_not_have_a_0_field_6100", "'package.json' does not have a '{0}' field."), package_json_has_0_field_1_that_references_2: i(6101, 3, "package_json_has_0_field_1_that_references_2_6101", "'package.json' has '{0}' field '{1}' that references '{2}'."), Allow_javascript_files_to_be_compiled: i(6102, 3, "Allow_javascript_files_to_be_compiled_6102", "Allow javascript files to be compiled."), Checking_if_0_is_the_longest_matching_prefix_for_1_2: i(6104, 3, "Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104", "Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."), Expected_type_of_0_field_in_package_json_to_be_1_got_2: i(6105, 3, "Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105", "Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."), baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: i(6106, 3, "baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106", "'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."), rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: i(6107, 3, "rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107", "'rootDirs' option is set, using it to resolve relative module name '{0}'."), Longest_matching_prefix_for_0_is_1: i(6108, 3, "Longest_matching_prefix_for_0_is_1_6108", "Longest matching prefix for '{0}' is '{1}'."), Loading_0_from_the_root_dir_1_candidate_location_2: i(6109, 3, "Loading_0_from_the_root_dir_1_candidate_location_2_6109", "Loading '{0}' from the root dir '{1}', candidate location '{2}'."), Trying_other_entries_in_rootDirs: i(6110, 3, "Trying_other_entries_in_rootDirs_6110", "Trying other entries in 'rootDirs'."), Module_resolution_using_rootDirs_has_failed: i(6111, 3, "Module_resolution_using_rootDirs_has_failed_6111", "Module resolution using 'rootDirs' has failed."), Do_not_emit_use_strict_directives_in_module_output: i(6112, 3, "Do_not_emit_use_strict_directives_in_module_output_6112", "Do not emit 'use strict' directives in module output."), Enable_strict_null_checks: i(6113, 3, "Enable_strict_null_checks_6113", "Enable strict null checks."), Unknown_option_excludes_Did_you_mean_exclude: i(6114, 1, "Unknown_option_excludes_Did_you_mean_exclude_6114", "Unknown option 'excludes'. Did you mean 'exclude'?"), Raise_error_on_this_expressions_with_an_implied_any_type: i(6115, 3, "Raise_error_on_this_expressions_with_an_implied_any_type_6115", "Raise error on 'this' expressions with an implied 'any' type."), Resolving_type_reference_directive_0_containing_file_1_root_directory_2: i(6116, 3, "Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116", "======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"), Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: i(6119, 3, "Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119", "======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"), Type_reference_directive_0_was_not_resolved: i(6120, 3, "Type_reference_directive_0_was_not_resolved_6120", "======== Type reference directive '{0}' was not resolved. ========"), Resolving_with_primary_search_path_0: i(6121, 3, "Resolving_with_primary_search_path_0_6121", "Resolving with primary search path '{0}'."), Root_directory_cannot_be_determined_skipping_primary_search_paths: i(6122, 3, "Root_directory_cannot_be_determined_skipping_primary_search_paths_6122", "Root directory cannot be determined, skipping primary search paths."), Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: i(6123, 3, "Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123", "======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"), Type_declaration_files_to_be_included_in_compilation: i(6124, 3, "Type_declaration_files_to_be_included_in_compilation_6124", "Type declaration files to be included in compilation."), Looking_up_in_node_modules_folder_initial_location_0: i(6125, 3, "Looking_up_in_node_modules_folder_initial_location_0_6125", "Looking up in 'node_modules' folder, initial location '{0}'."), Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: i(6126, 3, "Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126", "Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."), Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: i(6127, 3, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127", "======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"), Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: i(6128, 3, "Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128", "======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"), Resolving_real_path_for_0_result_1: i(6130, 3, "Resolving_real_path_for_0_result_1_6130", "Resolving real path for '{0}', result '{1}'."), Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: i(6131, 1, "Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131", "Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."), File_name_0_has_a_1_extension_stripping_it: i(6132, 3, "File_name_0_has_a_1_extension_stripping_it_6132", "File name '{0}' has a '{1}' extension - stripping it."), _0_is_declared_but_its_value_is_never_read: i(6133, 1, "_0_is_declared_but_its_value_is_never_read_6133", "'{0}' is declared but its value is never read.", true), Report_errors_on_unused_locals: i(6134, 3, "Report_errors_on_unused_locals_6134", "Report errors on unused locals."), Report_errors_on_unused_parameters: i(6135, 3, "Report_errors_on_unused_parameters_6135", "Report errors on unused parameters."), The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: i(6136, 3, "The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136", "The maximum dependency depth to search under node_modules and load JavaScript files."), Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1: i(6137, 1, "Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137", "Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."), Property_0_is_declared_but_its_value_is_never_read: i(6138, 1, "Property_0_is_declared_but_its_value_is_never_read_6138", "Property '{0}' is declared but its value is never read.", true), Import_emit_helpers_from_tslib: i(6139, 3, "Import_emit_helpers_from_tslib_6139", "Import emit helpers from 'tslib'."), Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: i(6140, 1, "Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140", "Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."), Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: i(6141, 3, "Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141", 'Parse in strict mode and emit "use strict" for each source file.'), Module_0_was_resolved_to_1_but_jsx_is_not_set: i(6142, 1, "Module_0_was_resolved_to_1_but_jsx_is_not_set_6142", "Module '{0}' was resolved to '{1}', but '--jsx' is not set."), Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: i(6144, 3, "Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144", "Module '{0}' was resolved as locally declared ambient module in file '{1}'."), Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified: i(6145, 3, "Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145", "Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified."), Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: i(6146, 3, "Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146", "Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."), Resolution_for_module_0_was_found_in_cache_from_location_1: i(6147, 3, "Resolution_for_module_0_was_found_in_cache_from_location_1_6147", "Resolution for module '{0}' was found in cache from location '{1}'."), Directory_0_does_not_exist_skipping_all_lookups_in_it: i(6148, 3, "Directory_0_does_not_exist_skipping_all_lookups_in_it_6148", "Directory '{0}' does not exist, skipping all lookups in it."), Show_diagnostic_information: i(6149, 3, "Show_diagnostic_information_6149", "Show diagnostic information."), Show_verbose_diagnostic_information: i(6150, 3, "Show_verbose_diagnostic_information_6150", "Show verbose diagnostic information."), Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file: i(6151, 3, "Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151", "Emit a single file with source maps instead of having a separate file."), Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set: i(6152, 3, "Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152", "Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."), Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule: i(6153, 3, "Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153", "Transpile each file as a separate module (similar to 'ts.transpileModule')."), Print_names_of_generated_files_part_of_the_compilation: i(6154, 3, "Print_names_of_generated_files_part_of_the_compilation_6154", "Print names of generated files part of the compilation."), Print_names_of_files_part_of_the_compilation: i(6155, 3, "Print_names_of_files_part_of_the_compilation_6155", "Print names of files part of the compilation."), The_locale_used_when_displaying_messages_to_the_user_e_g_en_us: i(6156, 3, "The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156", "The locale used when displaying messages to the user (e.g. 'en-us')"), Do_not_generate_custom_helper_functions_like_extends_in_compiled_output: i(6157, 3, "Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157", "Do not generate custom helper functions like '__extends' in compiled output."), Do_not_include_the_default_library_file_lib_d_ts: i(6158, 3, "Do_not_include_the_default_library_file_lib_d_ts_6158", "Do not include the default library file (lib.d.ts)."), Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files: i(6159, 3, "Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159", "Do not add triple-slash references or imported modules to the list of compiled files."), Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files: i(6160, 3, "Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160", "[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."), List_of_folders_to_include_type_definitions_from: i(6161, 3, "List_of_folders_to_include_type_definitions_from_6161", "List of folders to include type definitions from."), Disable_size_limitations_on_JavaScript_projects: i(6162, 3, "Disable_size_limitations_on_JavaScript_projects_6162", "Disable size limitations on JavaScript projects."), The_character_set_of_the_input_files: i(6163, 3, "The_character_set_of_the_input_files_6163", "The character set of the input files."), Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1: i(6164, 3, "Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164", "Skipping module '{0}' that looks like an absolute URI, target file types: {1}."), Do_not_truncate_error_messages: i(6165, 3, "Do_not_truncate_error_messages_6165", "Do not truncate error messages."), Output_directory_for_generated_declaration_files: i(6166, 3, "Output_directory_for_generated_declaration_files_6166", "Output directory for generated declaration files."), A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl: i(6167, 3, "A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167", "A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."), List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime: i(6168, 3, "List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168", "List of root folders whose combined content represents the structure of the project at runtime."), Show_all_compiler_options: i(6169, 3, "Show_all_compiler_options_6169", "Show all compiler options."), Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file: i(6170, 3, "Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170", "[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"), Command_line_Options: i(6171, 3, "Command_line_Options_6171", "Command-line Options"), Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3: i(6179, 3, "Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179", "Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'."), Enable_all_strict_type_checking_options: i(6180, 3, "Enable_all_strict_type_checking_options_6180", "Enable all strict type-checking options."), Scoped_package_detected_looking_in_0: i(6182, 3, "Scoped_package_detected_looking_in_0_6182", "Scoped package detected, looking in '{0}'"), Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2: i(6183, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."), Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: i(6184, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184", "Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."), Enable_strict_checking_of_function_types: i(6186, 3, "Enable_strict_checking_of_function_types_6186", "Enable strict checking of function types."), Enable_strict_checking_of_property_initialization_in_classes: i(6187, 3, "Enable_strict_checking_of_property_initialization_in_classes_6187", "Enable strict checking of property initialization in classes."), Numeric_separators_are_not_allowed_here: i(6188, 1, "Numeric_separators_are_not_allowed_here_6188", "Numeric separators are not allowed here."), Multiple_consecutive_numeric_separators_are_not_permitted: i(6189, 1, "Multiple_consecutive_numeric_separators_are_not_permitted_6189", "Multiple consecutive numeric separators are not permitted."), Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen: i(6191, 3, "Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191", "Whether to keep outdated console output in watch mode instead of clearing the screen."), All_imports_in_import_declaration_are_unused: i(6192, 1, "All_imports_in_import_declaration_are_unused_6192", "All imports in import declaration are unused.", true), Found_1_error_Watching_for_file_changes: i(6193, 3, "Found_1_error_Watching_for_file_changes_6193", "Found 1 error. Watching for file changes."), Found_0_errors_Watching_for_file_changes: i(6194, 3, "Found_0_errors_Watching_for_file_changes_6194", "Found {0} errors. Watching for file changes."), Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols: i(6195, 3, "Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195", "Resolve 'keyof' to string valued property names only (no numbers or symbols)."), _0_is_declared_but_never_used: i(6196, 1, "_0_is_declared_but_never_used_6196", "'{0}' is declared but never used.", true), Include_modules_imported_with_json_extension: i(6197, 3, "Include_modules_imported_with_json_extension_6197", "Include modules imported with '.json' extension"), All_destructured_elements_are_unused: i(6198, 1, "All_destructured_elements_are_unused_6198", "All destructured elements are unused.", true), All_variables_are_unused: i(6199, 1, "All_variables_are_unused_6199", "All variables are unused.", true), Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0: i(6200, 1, "Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200", "Definitions of the following identifiers conflict with those in another file: {0}"), Conflicts_are_in_this_file: i(6201, 3, "Conflicts_are_in_this_file_6201", "Conflicts are in this file."), Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0: i(6202, 1, "Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202", "Project references may not form a circular graph. Cycle detected: {0}"), _0_was_also_declared_here: i(6203, 3, "_0_was_also_declared_here_6203", "'{0}' was also declared here."), and_here: i(6204, 3, "and_here_6204", "and here."), All_type_parameters_are_unused: i(6205, 1, "All_type_parameters_are_unused_6205", "All type parameters are unused."), package_json_has_a_typesVersions_field_with_version_specific_path_mappings: i(6206, 3, "package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206", "'package.json' has a 'typesVersions' field with version-specific path mappings."), package_json_does_not_have_a_typesVersions_entry_that_matches_version_0: i(6207, 3, "package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207", "'package.json' does not have a 'typesVersions' entry that matches version '{0}'."), package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2: i(6208, 3, "package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208", "'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."), package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range: i(6209, 3, "package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209", "'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."), An_argument_for_0_was_not_provided: i(6210, 3, "An_argument_for_0_was_not_provided_6210", "An argument for '{0}' was not provided."), An_argument_matching_this_binding_pattern_was_not_provided: i(6211, 3, "An_argument_matching_this_binding_pattern_was_not_provided_6211", "An argument matching this binding pattern was not provided."), Did_you_mean_to_call_this_expression: i(6212, 3, "Did_you_mean_to_call_this_expression_6212", "Did you mean to call this expression?"), Did_you_mean_to_use_new_with_this_expression: i(6213, 3, "Did_you_mean_to_use_new_with_this_expression_6213", "Did you mean to use 'new' with this expression?"), Enable_strict_bind_call_and_apply_methods_on_functions: i(6214, 3, "Enable_strict_bind_call_and_apply_methods_on_functions_6214", "Enable strict 'bind', 'call', and 'apply' methods on functions."), Using_compiler_options_of_project_reference_redirect_0: i(6215, 3, "Using_compiler_options_of_project_reference_redirect_0_6215", "Using compiler options of project reference redirect '{0}'."), Found_1_error: i(6216, 3, "Found_1_error_6216", "Found 1 error."), Found_0_errors: i(6217, 3, "Found_0_errors_6217", "Found {0} errors."), Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2: i(6218, 3, "Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218", "======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"), Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3: i(6219, 3, "Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219", "======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"), package_json_had_a_falsy_0_field: i(6220, 3, "package_json_had_a_falsy_0_field_6220", "'package.json' had a falsy '{0}' field."), Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects: i(6221, 3, "Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221", "Disable use of source files instead of declaration files from referenced projects."), Emit_class_fields_with_Define_instead_of_Set: i(6222, 3, "Emit_class_fields_with_Define_instead_of_Set_6222", "Emit class fields with Define instead of Set."), Generates_a_CPU_profile: i(6223, 3, "Generates_a_CPU_profile_6223", "Generates a CPU profile."), Disable_solution_searching_for_this_project: i(6224, 3, "Disable_solution_searching_for_this_project_6224", "Disable solution searching for this project."), Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory: i(6225, 3, "Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225", "Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."), Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling: i(6226, 3, "Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226", "Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."), Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize: i(6227, 3, "Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227", "Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."), Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3: i(6229, 1, "Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229", "Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."), Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line: i(6230, 1, "Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230", "Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."), Could_not_resolve_the_path_0_with_the_extensions_Colon_1: i(6231, 1, "Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231", "Could not resolve the path '{0}' with the extensions: {1}."), Declaration_augments_declaration_in_another_file_This_cannot_be_serialized: i(6232, 1, "Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232", "Declaration augments declaration in another file. This cannot be serialized."), This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file: i(6233, 1, "This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233", "This is the declaration being augmented. Consider moving the augmenting declaration into the same file."), This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without: i(6234, 1, "This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234", "This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"), Disable_loading_referenced_projects: i(6235, 3, "Disable_loading_referenced_projects_6235", "Disable loading referenced projects."), Arguments_for_the_rest_parameter_0_were_not_provided: i(6236, 1, "Arguments_for_the_rest_parameter_0_were_not_provided_6236", "Arguments for the rest parameter '{0}' were not provided."), Generates_an_event_trace_and_a_list_of_types: i(6237, 3, "Generates_an_event_trace_and_a_list_of_types_6237", "Generates an event trace and a list of types."), Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react: i(6238, 1, "Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238", "Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"), File_0_exists_according_to_earlier_cached_lookups: i(6239, 3, "File_0_exists_according_to_earlier_cached_lookups_6239", "File '{0}' exists according to earlier cached lookups."), File_0_does_not_exist_according_to_earlier_cached_lookups: i(6240, 3, "File_0_does_not_exist_according_to_earlier_cached_lookups_6240", "File '{0}' does not exist according to earlier cached lookups."), Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1: i(6241, 3, "Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241", "Resolution for type reference directive '{0}' was found in cache from location '{1}'."), Resolving_type_reference_directive_0_containing_file_1: i(6242, 3, "Resolving_type_reference_directive_0_containing_file_1_6242", "======== Resolving type reference directive '{0}', containing file '{1}'. ========"), Interpret_optional_property_types_as_written_rather_than_adding_undefined: i(6243, 3, "Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243", "Interpret optional property types as written, rather than adding 'undefined'."), Modules: i(6244, 3, "Modules_6244", "Modules"), File_Management: i(6245, 3, "File_Management_6245", "File Management"), Emit: i(6246, 3, "Emit_6246", "Emit"), JavaScript_Support: i(6247, 3, "JavaScript_Support_6247", "JavaScript Support"), Type_Checking: i(6248, 3, "Type_Checking_6248", "Type Checking"), Editor_Support: i(6249, 3, "Editor_Support_6249", "Editor Support"), Watch_and_Build_Modes: i(6250, 3, "Watch_and_Build_Modes_6250", "Watch and Build Modes"), Compiler_Diagnostics: i(6251, 3, "Compiler_Diagnostics_6251", "Compiler Diagnostics"), Interop_Constraints: i(6252, 3, "Interop_Constraints_6252", "Interop Constraints"), Backwards_Compatibility: i(6253, 3, "Backwards_Compatibility_6253", "Backwards Compatibility"), Language_and_Environment: i(6254, 3, "Language_and_Environment_6254", "Language and Environment"), Projects: i(6255, 3, "Projects_6255", "Projects"), Output_Formatting: i(6256, 3, "Output_Formatting_6256", "Output Formatting"), Completeness: i(6257, 3, "Completeness_6257", "Completeness"), _0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file: i(6258, 1, "_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258", "'{0}' should be set inside the 'compilerOptions' object of the config json file"), Found_1_error_in_0: i(6259, 3, "Found_1_error_in_0_6259", "Found 1 error in {0}"), Found_0_errors_in_the_same_file_starting_at_Colon_1: i(6260, 3, "Found_0_errors_in_the_same_file_starting_at_Colon_1_6260", "Found {0} errors in the same file, starting at: {1}"), Found_0_errors_in_1_files: i(6261, 3, "Found_0_errors_in_1_files_6261", "Found {0} errors in {1} files."), File_name_0_has_a_1_extension_looking_up_2_instead: i(6262, 3, "File_name_0_has_a_1_extension_looking_up_2_instead_6262", "File name '{0}' has a '{1}' extension - looking up '{2}' instead."), Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set: i(6263, 1, "Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263", "Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."), Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present: i(6264, 3, "Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264", "Enable importing files with any extension, provided a declaration file is present."), Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder: i(6265, 3, "Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265", "Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."), Option_0_can_only_be_specified_on_command_line: i(6266, 1, "Option_0_can_only_be_specified_on_command_line_6266", "Option '{0}' can only be specified on command line."), Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve: i(6270, 3, "Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270", "Directory '{0}' has no containing package.json scope. Imports will not resolve."), Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1: i(6271, 3, "Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271", "Import specifier '{0}' does not exist in package.json scope at path '{1}'."), Invalid_import_specifier_0_has_no_possible_resolutions: i(6272, 3, "Invalid_import_specifier_0_has_no_possible_resolutions_6272", "Invalid import specifier '{0}' has no possible resolutions."), package_json_scope_0_has_no_imports_defined: i(6273, 3, "package_json_scope_0_has_no_imports_defined_6273", "package.json scope '{0}' has no imports defined."), package_json_scope_0_explicitly_maps_specifier_1_to_null: i(6274, 3, "package_json_scope_0_explicitly_maps_specifier_1_to_null_6274", "package.json scope '{0}' explicitly maps specifier '{1}' to null."), package_json_scope_0_has_invalid_type_for_target_of_specifier_1: i(6275, 3, "package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275", "package.json scope '{0}' has invalid type for target of specifier '{1}'"), Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1: i(6276, 3, "Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276", "Export specifier '{0}' does not exist in package.json scope at path '{1}'."), Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update: i(6277, 3, "Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277", "Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."), There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: i(6278, 3, "There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278", `There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`), Enable_project_compilation: i(6302, 3, "Enable_project_compilation_6302", "Enable project compilation"), Composite_projects_may_not_disable_declaration_emit: i(6304, 1, "Composite_projects_may_not_disable_declaration_emit_6304", "Composite projects may not disable declaration emit."), Output_file_0_has_not_been_built_from_source_file_1: i(6305, 1, "Output_file_0_has_not_been_built_from_source_file_1_6305", "Output file '{0}' has not been built from source file '{1}'."), Referenced_project_0_must_have_setting_composite_Colon_true: i(6306, 1, "Referenced_project_0_must_have_setting_composite_Colon_true_6306", `Referenced project '{0}' must have setting "composite": true.`), File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern: i(6307, 1, "File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307", "File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."), Cannot_prepend_project_0_because_it_does_not_have_outFile_set: i(6308, 1, "Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308", "Cannot prepend project '{0}' because it does not have 'outFile' set"), Output_file_0_from_project_1_does_not_exist: i(6309, 1, "Output_file_0_from_project_1_does_not_exist_6309", "Output file '{0}' from project '{1}' does not exist"), Referenced_project_0_may_not_disable_emit: i(6310, 1, "Referenced_project_0_may_not_disable_emit_6310", "Referenced project '{0}' may not disable emit."), Project_0_is_out_of_date_because_output_1_is_older_than_input_2: i(6350, 3, "Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350", "Project '{0}' is out of date because output '{1}' is older than input '{2}'"), Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2: i(6351, 3, "Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351", "Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"), Project_0_is_out_of_date_because_output_file_1_does_not_exist: i(6352, 3, "Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352", "Project '{0}' is out of date because output file '{1}' does not exist"), Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date: i(6353, 3, "Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353", "Project '{0}' is out of date because its dependency '{1}' is out of date"), Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies: i(6354, 3, "Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354", "Project '{0}' is up to date with .d.ts files from its dependencies"), Projects_in_this_build_Colon_0: i(6355, 3, "Projects_in_this_build_Colon_0_6355", "Projects in this build: {0}"), A_non_dry_build_would_delete_the_following_files_Colon_0: i(6356, 3, "A_non_dry_build_would_delete_the_following_files_Colon_0_6356", "A non-dry build would delete the following files: {0}"), A_non_dry_build_would_build_project_0: i(6357, 3, "A_non_dry_build_would_build_project_0_6357", "A non-dry build would build project '{0}'"), Building_project_0: i(6358, 3, "Building_project_0_6358", "Building project '{0}'..."), Updating_output_timestamps_of_project_0: i(6359, 3, "Updating_output_timestamps_of_project_0_6359", "Updating output timestamps of project '{0}'..."), Project_0_is_up_to_date: i(6361, 3, "Project_0_is_up_to_date_6361", "Project '{0}' is up to date"), Skipping_build_of_project_0_because_its_dependency_1_has_errors: i(6362, 3, "Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362", "Skipping build of project '{0}' because its dependency '{1}' has errors"), Project_0_can_t_be_built_because_its_dependency_1_has_errors: i(6363, 3, "Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363", "Project '{0}' can't be built because its dependency '{1}' has errors"), Build_one_or_more_projects_and_their_dependencies_if_out_of_date: i(6364, 3, "Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364", "Build one or more projects and their dependencies, if out of date"), Delete_the_outputs_of_all_projects: i(6365, 3, "Delete_the_outputs_of_all_projects_6365", "Delete the outputs of all projects."), Show_what_would_be_built_or_deleted_if_specified_with_clean: i(6367, 3, "Show_what_would_be_built_or_deleted_if_specified_with_clean_6367", "Show what would be built (or deleted, if specified with '--clean')"), Option_build_must_be_the_first_command_line_argument: i(6369, 1, "Option_build_must_be_the_first_command_line_argument_6369", "Option '--build' must be the first command line argument."), Options_0_and_1_cannot_be_combined: i(6370, 1, "Options_0_and_1_cannot_be_combined_6370", "Options '{0}' and '{1}' cannot be combined."), Updating_unchanged_output_timestamps_of_project_0: i(6371, 3, "Updating_unchanged_output_timestamps_of_project_0_6371", "Updating unchanged output timestamps of project '{0}'..."), Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed: i(6372, 3, "Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372", "Project '{0}' is out of date because output of its dependency '{1}' has changed"), Updating_output_of_project_0: i(6373, 3, "Updating_output_of_project_0_6373", "Updating output of project '{0}'..."), A_non_dry_build_would_update_timestamps_for_output_of_project_0: i(6374, 3, "A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374", "A non-dry build would update timestamps for output of project '{0}'"), A_non_dry_build_would_update_output_of_project_0: i(6375, 3, "A_non_dry_build_would_update_output_of_project_0_6375", "A non-dry build would update output of project '{0}'"), Cannot_update_output_of_project_0_because_there_was_error_reading_file_1: i(6376, 3, "Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376", "Cannot update output of project '{0}' because there was error reading file '{1}'"), Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1: i(6377, 1, "Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377", "Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"), Composite_projects_may_not_disable_incremental_compilation: i(6379, 1, "Composite_projects_may_not_disable_incremental_compilation_6379", "Composite projects may not disable incremental compilation."), Specify_file_to_store_incremental_compilation_information: i(6380, 3, "Specify_file_to_store_incremental_compilation_information_6380", "Specify file to store incremental compilation information"), Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2: i(6381, 3, "Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381", "Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"), Skipping_build_of_project_0_because_its_dependency_1_was_not_built: i(6382, 3, "Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382", "Skipping build of project '{0}' because its dependency '{1}' was not built"), Project_0_can_t_be_built_because_its_dependency_1_was_not_built: i(6383, 3, "Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383", "Project '{0}' can't be built because its dependency '{1}' was not built"), Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: i(6384, 3, "Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384", "Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."), _0_is_deprecated: i(6385, 2, "_0_is_deprecated_6385", "'{0}' is deprecated.", void 0, void 0, true), Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found: i(6386, 3, "Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386", "Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."), The_signature_0_of_1_is_deprecated: i(6387, 2, "The_signature_0_of_1_is_deprecated_6387", "The signature '{0}' of '{1}' is deprecated.", void 0, void 0, true), Project_0_is_being_forcibly_rebuilt: i(6388, 3, "Project_0_is_being_forcibly_rebuilt_6388", "Project '{0}' is being forcibly rebuilt"), Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved: i(6389, 3, "Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389", "Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."), Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2: i(6390, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."), Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: i(6391, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."), Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved: i(6392, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392", "Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."), Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: i(6393, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."), Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: i(6394, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."), Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: i(6395, 3, "Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395", "Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."), Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: i(6396, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."), Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: i(6397, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."), Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: i(6398, 3, "Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398", "Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."), Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: i(6399, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399", "Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"), Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: i(6400, 3, "Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400", "Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"), Project_0_is_out_of_date_because_there_was_error_reading_file_1: i(6401, 3, "Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401", "Project '{0}' is out of date because there was error reading file '{1}'"), Resolving_in_0_mode_with_conditions_1: i(6402, 3, "Resolving_in_0_mode_with_conditions_1_6402", "Resolving in {0} mode with conditions {1}."), Matched_0_condition_1: i(6403, 3, "Matched_0_condition_1_6403", "Matched '{0}' condition '{1}'."), Using_0_subpath_1_with_target_2: i(6404, 3, "Using_0_subpath_1_with_target_2_6404", "Using '{0}' subpath '{1}' with target '{2}'."), Saw_non_matching_condition_0: i(6405, 3, "Saw_non_matching_condition_0_6405", "Saw non-matching condition '{0}'."), Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: i(6406, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406", "Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"), Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set: i(6407, 3, "Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407", "Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."), Use_the_package_json_exports_field_when_resolving_package_imports: i(6408, 3, "Use_the_package_json_exports_field_when_resolving_package_imports_6408", "Use the package.json 'exports' field when resolving package imports."), Use_the_package_json_imports_field_when_resolving_imports: i(6409, 3, "Use_the_package_json_imports_field_when_resolving_imports_6409", "Use the package.json 'imports' field when resolving imports."), Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: i(6410, 3, "Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410", "Conditions to set in addition to the resolver-specific defaults when resolving imports."), true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: i(6411, 3, "true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411", "`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."), Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: i(6412, 3, "Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412", "Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."), Entering_conditional_exports: i(6413, 3, "Entering_conditional_exports_6413", "Entering conditional exports."), Resolved_under_condition_0: i(6414, 3, "Resolved_under_condition_0_6414", "Resolved under condition '{0}'."), Failed_to_resolve_under_condition_0: i(6415, 3, "Failed_to_resolve_under_condition_0_6415", "Failed to resolve under condition '{0}'."), Exiting_conditional_exports: i(6416, 3, "Exiting_conditional_exports_6416", "Exiting conditional exports."), Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0: i(6417, 3, "Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417", "Searching all ancestor node_modules directories for preferred extensions: {0}."), Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0: i(6418, 3, "Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418", "Searching all ancestor node_modules directories for fallback extensions: {0}."), The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: i(6500, 3, "The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500", "The expected type comes from property '{0}' which is declared here on type '{1}'"), The_expected_type_comes_from_this_index_signature: i(6501, 3, "The_expected_type_comes_from_this_index_signature_6501", "The expected type comes from this index signature."), The_expected_type_comes_from_the_return_type_of_this_signature: i(6502, 3, "The_expected_type_comes_from_the_return_type_of_this_signature_6502", "The expected type comes from the return type of this signature."), Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing: i(6503, 3, "Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503", "Print names of files that are part of the compilation and then stop processing."), File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option: i(6504, 1, "File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504", "File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"), Print_names_of_files_and_the_reason_they_are_part_of_the_compilation: i(6505, 3, "Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505", "Print names of files and the reason they are part of the compilation."), Consider_adding_a_declare_modifier_to_this_class: i(6506, 3, "Consider_adding_a_declare_modifier_to_this_class_6506", "Consider adding a 'declare' modifier to this class."), Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files: i(6600, 3, "Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600", "Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."), Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export: i(6601, 3, "Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601", "Allow 'import x from y' when a module doesn't have a default export."), Allow_accessing_UMD_globals_from_modules: i(6602, 3, "Allow_accessing_UMD_globals_from_modules_6602", "Allow accessing UMD globals from modules."), Disable_error_reporting_for_unreachable_code: i(6603, 3, "Disable_error_reporting_for_unreachable_code_6603", "Disable error reporting for unreachable code."), Disable_error_reporting_for_unused_labels: i(6604, 3, "Disable_error_reporting_for_unused_labels_6604", "Disable error reporting for unused labels."), Ensure_use_strict_is_always_emitted: i(6605, 3, "Ensure_use_strict_is_always_emitted_6605", "Ensure 'use strict' is always emitted."), Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: i(6606, 3, "Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606", "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."), Specify_the_base_directory_to_resolve_non_relative_module_names: i(6607, 3, "Specify_the_base_directory_to_resolve_non_relative_module_names_6607", "Specify the base directory to resolve non-relative module names."), No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files: i(6608, 3, "No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608", "No longer supported. In early versions, manually set the text encoding for reading files."), Enable_error_reporting_in_type_checked_JavaScript_files: i(6609, 3, "Enable_error_reporting_in_type_checked_JavaScript_files_6609", "Enable error reporting in type-checked JavaScript files."), Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references: i(6611, 3, "Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611", "Enable constraints that allow a TypeScript project to be used with project references."), Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project: i(6612, 3, "Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612", "Generate .d.ts files from TypeScript and JavaScript files in your project."), Specify_the_output_directory_for_generated_declaration_files: i(6613, 3, "Specify_the_output_directory_for_generated_declaration_files_6613", "Specify the output directory for generated declaration files."), Create_sourcemaps_for_d_ts_files: i(6614, 3, "Create_sourcemaps_for_d_ts_files_6614", "Create sourcemaps for d.ts files."), Output_compiler_performance_information_after_building: i(6615, 3, "Output_compiler_performance_information_after_building_6615", "Output compiler performance information after building."), Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project: i(6616, 3, "Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616", "Disables inference for type acquisition by looking at filenames in a project."), Reduce_the_number_of_projects_loaded_automatically_by_TypeScript: i(6617, 3, "Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617", "Reduce the number of projects loaded automatically by TypeScript."), Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server: i(6618, 3, "Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618", "Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."), Opt_a_project_out_of_multi_project_reference_checking_when_editing: i(6619, 3, "Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619", "Opt a project out of multi-project reference checking when editing."), Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects: i(6620, 3, "Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620", "Disable preferring source files instead of declaration files when referencing composite projects."), Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration: i(6621, 3, "Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621", "Emit more compliant, but verbose and less performant JavaScript for iteration."), Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files: i(6622, 3, "Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622", "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."), Only_output_d_ts_files_and_not_JavaScript_files: i(6623, 3, "Only_output_d_ts_files_and_not_JavaScript_files_6623", "Only output d.ts files and not JavaScript files."), Emit_design_type_metadata_for_decorated_declarations_in_source_files: i(6624, 3, "Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624", "Emit design-type metadata for decorated declarations in source files."), Disable_the_type_acquisition_for_JavaScript_projects: i(6625, 3, "Disable_the_type_acquisition_for_JavaScript_projects_6625", "Disable the type acquisition for JavaScript projects"), Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility: i(6626, 3, "Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626", "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."), Filters_results_from_the_include_option: i(6627, 3, "Filters_results_from_the_include_option_6627", "Filters results from the `include` option."), Remove_a_list_of_directories_from_the_watch_process: i(6628, 3, "Remove_a_list_of_directories_from_the_watch_process_6628", "Remove a list of directories from the watch process."), Remove_a_list_of_files_from_the_watch_mode_s_processing: i(6629, 3, "Remove_a_list_of_files_from_the_watch_mode_s_processing_6629", "Remove a list of files from the watch mode's processing."), Enable_experimental_support_for_legacy_experimental_decorators: i(6630, 3, "Enable_experimental_support_for_legacy_experimental_decorators_6630", "Enable experimental support for legacy experimental decorators."), Print_files_read_during_the_compilation_including_why_it_was_included: i(6631, 3, "Print_files_read_during_the_compilation_including_why_it_was_included_6631", "Print files read during the compilation including why it was included."), Output_more_detailed_compiler_performance_information_after_building: i(6632, 3, "Output_more_detailed_compiler_performance_information_after_building_6632", "Output more detailed compiler performance information after building."), Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited: i(6633, 3, "Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633", "Specify one or more path or node module references to base configuration files from which settings are inherited."), Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers: i(6634, 3, "Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634", "Specify what approach the watcher should use if the system runs out of native file watchers."), Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include: i(6635, 3, "Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635", "Include a list of files. This does not support glob patterns, as opposed to `include`."), Build_all_projects_including_those_that_appear_to_be_up_to_date: i(6636, 3, "Build_all_projects_including_those_that_appear_to_be_up_to_date_6636", "Build all projects, including those that appear to be up to date."), Ensure_that_casing_is_correct_in_imports: i(6637, 3, "Ensure_that_casing_is_correct_in_imports_6637", "Ensure that casing is correct in imports."), Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging: i(6638, 3, "Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638", "Emit a v8 CPU profile of the compiler run for debugging."), Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file: i(6639, 3, "Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639", "Allow importing helper functions from tslib once per project, instead of including them per-file."), Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation: i(6641, 3, "Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641", "Specify a list of glob patterns that match files to be included in compilation."), Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects: i(6642, 3, "Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642", "Save .tsbuildinfo files to allow for incremental compilation of projects."), Include_sourcemap_files_inside_the_emitted_JavaScript: i(6643, 3, "Include_sourcemap_files_inside_the_emitted_JavaScript_6643", "Include sourcemap files inside the emitted JavaScript."), Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript: i(6644, 3, "Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644", "Include source code in the sourcemaps inside the emitted JavaScript."), Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports: i(6645, 3, "Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645", "Ensure that each file can be safely transpiled without relying on other imports."), Specify_what_JSX_code_is_generated: i(6646, 3, "Specify_what_JSX_code_is_generated_6646", "Specify what JSX code is generated."), Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h: i(6647, 3, "Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647", "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."), Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment: i(6648, 3, "Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648", "Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."), Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk: i(6649, 3, "Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649", "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."), Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option: i(6650, 3, "Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650", "Make keyof only return strings instead of string, numbers or symbols. Legacy option."), Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment: i(6651, 3, "Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651", "Specify a set of bundled library declaration files that describe the target runtime environment."), Print_the_names_of_emitted_files_after_a_compilation: i(6652, 3, "Print_the_names_of_emitted_files_after_a_compilation_6652", "Print the names of emitted files after a compilation."), Print_all_of_the_files_read_during_the_compilation: i(6653, 3, "Print_all_of_the_files_read_during_the_compilation_6653", "Print all of the files read during the compilation."), Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit: i(6654, 3, "Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654", "Set the language of the messaging from TypeScript. This does not affect emit."), Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: i(6655, 3, "Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655", "Specify the location where debugger should locate map files instead of generated locations."), Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs: i(6656, 3, "Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656", "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."), Specify_what_module_code_is_generated: i(6657, 3, "Specify_what_module_code_is_generated_6657", "Specify what module code is generated."), Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier: i(6658, 3, "Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658", "Specify how TypeScript looks up a file from a given module specifier."), Set_the_newline_character_for_emitting_files: i(6659, 3, "Set_the_newline_character_for_emitting_files_6659", "Set the newline character for emitting files."), Disable_emitting_files_from_a_compilation: i(6660, 3, "Disable_emitting_files_from_a_compilation_6660", "Disable emitting files from a compilation."), Disable_generating_custom_helper_functions_like_extends_in_compiled_output: i(6661, 3, "Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661", "Disable generating custom helper functions like '__extends' in compiled output."), Disable_emitting_files_if_any_type_checking_errors_are_reported: i(6662, 3, "Disable_emitting_files_if_any_type_checking_errors_are_reported_6662", "Disable emitting files if any type checking errors are reported."), Disable_truncating_types_in_error_messages: i(6663, 3, "Disable_truncating_types_in_error_messages_6663", "Disable truncating types in error messages."), Enable_error_reporting_for_fallthrough_cases_in_switch_statements: i(6664, 3, "Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664", "Enable error reporting for fallthrough cases in switch statements."), Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type: i(6665, 3, "Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665", "Enable error reporting for expressions and declarations with an implied 'any' type."), Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier: i(6666, 3, "Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666", "Ensure overriding members in derived classes are marked with an override modifier."), Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function: i(6667, 3, "Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667", "Enable error reporting for codepaths that do not explicitly return in a function."), Enable_error_reporting_when_this_is_given_the_type_any: i(6668, 3, "Enable_error_reporting_when_this_is_given_the_type_any_6668", "Enable error reporting when 'this' is given the type 'any'."), Disable_adding_use_strict_directives_in_emitted_JavaScript_files: i(6669, 3, "Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669", "Disable adding 'use strict' directives in emitted JavaScript files."), Disable_including_any_library_files_including_the_default_lib_d_ts: i(6670, 3, "Disable_including_any_library_files_including_the_default_lib_d_ts_6670", "Disable including any library files, including the default lib.d.ts."), Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type: i(6671, 3, "Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671", "Enforces using indexed accessors for keys declared using an indexed type."), Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project: i(6672, 3, "Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672", "Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."), Disable_strict_checking_of_generic_signatures_in_function_types: i(6673, 3, "Disable_strict_checking_of_generic_signatures_in_function_types_6673", "Disable strict checking of generic signatures in function types."), Add_undefined_to_a_type_when_accessed_using_an_index: i(6674, 3, "Add_undefined_to_a_type_when_accessed_using_an_index_6674", "Add 'undefined' to a type when accessed using an index."), Enable_error_reporting_when_local_variables_aren_t_read: i(6675, 3, "Enable_error_reporting_when_local_variables_aren_t_read_6675", "Enable error reporting when local variables aren't read."), Raise_an_error_when_a_function_parameter_isn_t_read: i(6676, 3, "Raise_an_error_when_a_function_parameter_isn_t_read_6676", "Raise an error when a function parameter isn't read."), Deprecated_setting_Use_outFile_instead: i(6677, 3, "Deprecated_setting_Use_outFile_instead_6677", "Deprecated setting. Use 'outFile' instead."), Specify_an_output_folder_for_all_emitted_files: i(6678, 3, "Specify_an_output_folder_for_all_emitted_files_6678", "Specify an output folder for all emitted files."), Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output: i(6679, 3, "Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679", "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."), Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations: i(6680, 3, "Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680", "Specify a set of entries that re-map imports to additional lookup locations."), Specify_a_list_of_language_service_plugins_to_include: i(6681, 3, "Specify_a_list_of_language_service_plugins_to_include_6681", "Specify a list of language service plugins to include."), Disable_erasing_const_enum_declarations_in_generated_code: i(6682, 3, "Disable_erasing_const_enum_declarations_in_generated_code_6682", "Disable erasing 'const enum' declarations in generated code."), Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node: i(6683, 3, "Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683", "Disable resolving symlinks to their realpath. This correlates to the same flag in node."), Disable_wiping_the_console_in_watch_mode: i(6684, 3, "Disable_wiping_the_console_in_watch_mode_6684", "Disable wiping the console in watch mode."), Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read: i(6685, 3, "Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685", "Enable color and formatting in TypeScript's output to make compiler errors easier to read."), Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit: i(6686, 3, "Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686", "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."), Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references: i(6687, 3, "Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687", "Specify an array of objects that specify paths for projects. Used in project references."), Disable_emitting_comments: i(6688, 3, "Disable_emitting_comments_6688", "Disable emitting comments."), Enable_importing_json_files: i(6689, 3, "Enable_importing_json_files_6689", "Enable importing .json files."), Specify_the_root_folder_within_your_source_files: i(6690, 3, "Specify_the_root_folder_within_your_source_files_6690", "Specify the root folder within your source files."), Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules: i(6691, 3, "Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691", "Allow multiple folders to be treated as one when resolving modules."), Skip_type_checking_d_ts_files_that_are_included_with_TypeScript: i(6692, 3, "Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692", "Skip type checking .d.ts files that are included with TypeScript."), Skip_type_checking_all_d_ts_files: i(6693, 3, "Skip_type_checking_all_d_ts_files_6693", "Skip type checking all .d.ts files."), Create_source_map_files_for_emitted_JavaScript_files: i(6694, 3, "Create_source_map_files_for_emitted_JavaScript_files_6694", "Create source map files for emitted JavaScript files."), Specify_the_root_path_for_debuggers_to_find_the_reference_source_code: i(6695, 3, "Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695", "Specify the root path for debuggers to find the reference source code."), Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function: i(6697, 3, "Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697", "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."), When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible: i(6698, 3, "When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698", "When assigning functions, check to ensure parameters and the return values are subtype-compatible."), When_type_checking_take_into_account_null_and_undefined: i(6699, 3, "When_type_checking_take_into_account_null_and_undefined_6699", "When type checking, take into account 'null' and 'undefined'."), Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor: i(6700, 3, "Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700", "Check for class properties that are declared but not set in the constructor."), Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments: i(6701, 3, "Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701", "Disable emitting declarations that have '@internal' in their JSDoc comments."), Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals: i(6702, 3, "Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702", "Disable reporting of excess property errors during the creation of object literals."), Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures: i(6703, 3, "Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703", "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."), Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively: i(6704, 3, "Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704", "Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."), Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations: i(6705, 3, "Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705", "Set the JavaScript language version for emitted JavaScript and include compatible library declarations."), Log_paths_used_during_the_moduleResolution_process: i(6706, 3, "Log_paths_used_during_the_moduleResolution_process_6706", "Log paths used during the 'moduleResolution' process."), Specify_the_path_to_tsbuildinfo_incremental_compilation_file: i(6707, 3, "Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707", "Specify the path to .tsbuildinfo incremental compilation file."), Specify_options_for_automatic_acquisition_of_declaration_files: i(6709, 3, "Specify_options_for_automatic_acquisition_of_declaration_files_6709", "Specify options for automatic acquisition of declaration files."), Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types: i(6710, 3, "Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710", "Specify multiple folders that act like './node_modules/@types'."), Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file: i(6711, 3, "Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711", "Specify type package names to be included without being referenced in a source file."), Emit_ECMAScript_standard_compliant_class_fields: i(6712, 3, "Emit_ECMAScript_standard_compliant_class_fields_6712", "Emit ECMAScript-standard-compliant class fields."), Enable_verbose_logging: i(6713, 3, "Enable_verbose_logging_6713", "Enable verbose logging."), Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality: i(6714, 3, "Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714", "Specify how directories are watched on systems that lack recursive file-watching functionality."), Specify_how_the_TypeScript_watch_mode_works: i(6715, 3, "Specify_how_the_TypeScript_watch_mode_works_6715", "Specify how the TypeScript watch mode works."), Require_undeclared_properties_from_index_signatures_to_use_element_accesses: i(6717, 3, "Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717", "Require undeclared properties from index signatures to use element accesses."), Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: i(6718, 3, "Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718", "Specify emit/checking behavior for imports that are only used for types."), Default_catch_clause_variables_as_unknown_instead_of_any: i(6803, 3, "Default_catch_clause_variables_as_unknown_instead_of_any_6803", "Default catch clause variables as 'unknown' instead of 'any'."), Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: i(6804, 3, "Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804", "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."), one_of_Colon: i(6900, 3, "one_of_Colon_6900", "one of:"), one_or_more_Colon: i(6901, 3, "one_or_more_Colon_6901", "one or more:"), type_Colon: i(6902, 3, "type_Colon_6902", "type:"), default_Colon: i(6903, 3, "default_Colon_6903", "default:"), module_system_or_esModuleInterop: i(6904, 3, "module_system_or_esModuleInterop_6904", 'module === "system" or esModuleInterop'), false_unless_strict_is_set: i(6905, 3, "false_unless_strict_is_set_6905", "`false`, unless `strict` is set"), false_unless_composite_is_set: i(6906, 3, "false_unless_composite_is_set_6906", "`false`, unless `composite` is set"), node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: i(6907, 3, "node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907", '`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'), if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: i(6908, 3, "if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908", '`[]` if `files` is specified, otherwise `["**/*"]`'), true_if_composite_false_otherwise: i(6909, 3, "true_if_composite_false_otherwise_6909", "`true` if `composite`, `false` otherwise"), module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: i(69010, 3, "module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010", "module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"), Computed_from_the_list_of_input_files: i(6911, 3, "Computed_from_the_list_of_input_files_6911", "Computed from the list of input files"), Platform_specific: i(6912, 3, "Platform_specific_6912", "Platform specific"), You_can_learn_about_all_of_the_compiler_options_at_0: i(6913, 3, "You_can_learn_about_all_of_the_compiler_options_at_0_6913", "You can learn about all of the compiler options at {0}"), Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon: i(6914, 3, "Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914", "Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"), Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0: i(6915, 3, "Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915", "Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"), COMMON_COMMANDS: i(6916, 3, "COMMON_COMMANDS_6916", "COMMON COMMANDS"), ALL_COMPILER_OPTIONS: i(6917, 3, "ALL_COMPILER_OPTIONS_6917", "ALL COMPILER OPTIONS"), WATCH_OPTIONS: i(6918, 3, "WATCH_OPTIONS_6918", "WATCH OPTIONS"), BUILD_OPTIONS: i(6919, 3, "BUILD_OPTIONS_6919", "BUILD OPTIONS"), COMMON_COMPILER_OPTIONS: i(6920, 3, "COMMON_COMPILER_OPTIONS_6920", "COMMON COMPILER OPTIONS"), COMMAND_LINE_FLAGS: i(6921, 3, "COMMAND_LINE_FLAGS_6921", "COMMAND LINE FLAGS"), tsc_Colon_The_TypeScript_Compiler: i(6922, 3, "tsc_Colon_The_TypeScript_Compiler_6922", "tsc: The TypeScript Compiler"), Compiles_the_current_project_tsconfig_json_in_the_working_directory: i(6923, 3, "Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923", "Compiles the current project (tsconfig.json in the working directory.)"), Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options: i(6924, 3, "Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924", "Ignoring tsconfig.json, compiles the specified files with default compiler options."), Build_a_composite_project_in_the_working_directory: i(6925, 3, "Build_a_composite_project_in_the_working_directory_6925", "Build a composite project in the working directory."), Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory: i(6926, 3, "Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926", "Creates a tsconfig.json with the recommended settings in the working directory."), Compiles_the_TypeScript_project_located_at_the_specified_path: i(6927, 3, "Compiles_the_TypeScript_project_located_at_the_specified_path_6927", "Compiles the TypeScript project located at the specified path."), An_expanded_version_of_this_information_showing_all_possible_compiler_options: i(6928, 3, "An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928", "An expanded version of this information, showing all possible compiler options"), Compiles_the_current_project_with_additional_settings: i(6929, 3, "Compiles_the_current_project_with_additional_settings_6929", "Compiles the current project, with additional settings."), true_for_ES2022_and_above_including_ESNext: i(6930, 3, "true_for_ES2022_and_above_including_ESNext_6930", "`true` for ES2022 and above, including ESNext."), List_of_file_name_suffixes_to_search_when_resolving_a_module: i(6931, 1, "List_of_file_name_suffixes_to_search_when_resolving_a_module_6931", "List of file name suffixes to search when resolving a module."), Variable_0_implicitly_has_an_1_type: i(7005, 1, "Variable_0_implicitly_has_an_1_type_7005", "Variable '{0}' implicitly has an '{1}' type."), Parameter_0_implicitly_has_an_1_type: i(7006, 1, "Parameter_0_implicitly_has_an_1_type_7006", "Parameter '{0}' implicitly has an '{1}' type."), Member_0_implicitly_has_an_1_type: i(7008, 1, "Member_0_implicitly_has_an_1_type_7008", "Member '{0}' implicitly has an '{1}' type."), new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: i(7009, 1, "new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009", "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."), _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: i(7010, 1, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010", "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."), Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: i(7011, 1, "Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011", "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."), This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation: i(7012, 1, "This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012", "This overload implicitly returns the type '{0}' because it lacks a return type annotation."), Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: i(7013, 1, "Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013", "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."), Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: i(7014, 1, "Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014", "Function type, which lacks return-type annotation, implicitly has an '{0}' return type."), Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: i(7015, 1, "Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015", "Element implicitly has an 'any' type because index expression is not of type 'number'."), Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: i(7016, 1, "Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016", "Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."), Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: i(7017, 1, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017", "Element implicitly has an 'any' type because type '{0}' has no index signature."), Object_literal_s_property_0_implicitly_has_an_1_type: i(7018, 1, "Object_literal_s_property_0_implicitly_has_an_1_type_7018", "Object literal's property '{0}' implicitly has an '{1}' type."), Rest_parameter_0_implicitly_has_an_any_type: i(7019, 1, "Rest_parameter_0_implicitly_has_an_any_type_7019", "Rest parameter '{0}' implicitly has an 'any[]' type."), Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: i(7020, 1, "Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020", "Call signature, which lacks return-type annotation, implicitly has an 'any' return type."), _0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: i(7022, 1, "_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022", "'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."), _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: i(7023, 1, "_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023", "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."), Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: i(7024, 1, "Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024", "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."), Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation: i(7025, 1, "Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025", "Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation."), JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: i(7026, 1, "JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026", "JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."), Unreachable_code_detected: i(7027, 1, "Unreachable_code_detected_7027", "Unreachable code detected.", true), Unused_label: i(7028, 1, "Unused_label_7028", "Unused label.", true), Fallthrough_case_in_switch: i(7029, 1, "Fallthrough_case_in_switch_7029", "Fallthrough case in switch."), Not_all_code_paths_return_a_value: i(7030, 1, "Not_all_code_paths_return_a_value_7030", "Not all code paths return a value."), Binding_element_0_implicitly_has_an_1_type: i(7031, 1, "Binding_element_0_implicitly_has_an_1_type_7031", "Binding element '{0}' implicitly has an '{1}' type."), Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: i(7032, 1, "Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032", "Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."), Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: i(7033, 1, "Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033", "Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."), Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: i(7034, 1, "Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034", "Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."), Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0: i(7035, 1, "Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035", "Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"), Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0: i(7036, 1, "Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036", "Dynamic import's specifier must be of type 'string', but here has type '{0}'."), Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports: i(7037, 3, "Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037", "Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."), Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead: i(7038, 3, "Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038", "Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."), Mapped_object_type_implicitly_has_an_any_template_type: i(7039, 1, "Mapped_object_type_implicitly_has_an_any_template_type_7039", "Mapped object type implicitly has an 'any' template type."), If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1: i(7040, 1, "If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040", "If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"), The_containing_arrow_function_captures_the_global_value_of_this: i(7041, 1, "The_containing_arrow_function_captures_the_global_value_of_this_7041", "The containing arrow function captures the global value of 'this'."), Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used: i(7042, 1, "Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042", "Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."), Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: i(7043, 2, "Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043", "Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: i(7044, 2, "Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044", "Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: i(7045, 2, "Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045", "Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."), Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage: i(7046, 2, "Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046", "Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."), Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage: i(7047, 2, "Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047", "Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."), Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage: i(7048, 2, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048", "Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."), Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage: i(7049, 2, "Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049", "Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."), _0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage: i(7050, 2, "_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050", "'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."), Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1: i(7051, 1, "Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051", "Parameter has a name but no type. Did you mean '{0}: {1}'?"), Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1: i(7052, 1, "Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052", "Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"), Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1: i(7053, 1, "Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053", "Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."), No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1: i(7054, 1, "No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054", "No index signature with a parameter of type '{0}' was found on type '{1}'."), _0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type: i(7055, 1, "_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055", "'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."), The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed: i(7056, 1, "The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056", "The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."), yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation: i(7057, 1, "yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057", "'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."), If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: i(7058, 1, "If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058", "If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"), This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: i(7059, 1, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059", "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."), This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: i(7060, 1, "This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060", "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."), A_mapped_type_may_not_declare_properties_or_methods: i(7061, 1, "A_mapped_type_may_not_declare_properties_or_methods_7061", "A mapped type may not declare properties or methods."), You_cannot_rename_this_element: i(8e3, 1, "You_cannot_rename_this_element_8000", "You cannot rename this element."), You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: i(8001, 1, "You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001", "You cannot rename elements that are defined in the standard TypeScript library."), import_can_only_be_used_in_TypeScript_files: i(8002, 1, "import_can_only_be_used_in_TypeScript_files_8002", "'import ... =' can only be used in TypeScript files."), export_can_only_be_used_in_TypeScript_files: i(8003, 1, "export_can_only_be_used_in_TypeScript_files_8003", "'export =' can only be used in TypeScript files."), Type_parameter_declarations_can_only_be_used_in_TypeScript_files: i(8004, 1, "Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004", "Type parameter declarations can only be used in TypeScript files."), implements_clauses_can_only_be_used_in_TypeScript_files: i(8005, 1, "implements_clauses_can_only_be_used_in_TypeScript_files_8005", "'implements' clauses can only be used in TypeScript files."), _0_declarations_can_only_be_used_in_TypeScript_files: i(8006, 1, "_0_declarations_can_only_be_used_in_TypeScript_files_8006", "'{0}' declarations can only be used in TypeScript files."), Type_aliases_can_only_be_used_in_TypeScript_files: i(8008, 1, "Type_aliases_can_only_be_used_in_TypeScript_files_8008", "Type aliases can only be used in TypeScript files."), The_0_modifier_can_only_be_used_in_TypeScript_files: i(8009, 1, "The_0_modifier_can_only_be_used_in_TypeScript_files_8009", "The '{0}' modifier can only be used in TypeScript files."), Type_annotations_can_only_be_used_in_TypeScript_files: i(8010, 1, "Type_annotations_can_only_be_used_in_TypeScript_files_8010", "Type annotations can only be used in TypeScript files."), Type_arguments_can_only_be_used_in_TypeScript_files: i(8011, 1, "Type_arguments_can_only_be_used_in_TypeScript_files_8011", "Type arguments can only be used in TypeScript files."), Parameter_modifiers_can_only_be_used_in_TypeScript_files: i(8012, 1, "Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012", "Parameter modifiers can only be used in TypeScript files."), Non_null_assertions_can_only_be_used_in_TypeScript_files: i(8013, 1, "Non_null_assertions_can_only_be_used_in_TypeScript_files_8013", "Non-null assertions can only be used in TypeScript files."), Type_assertion_expressions_can_only_be_used_in_TypeScript_files: i(8016, 1, "Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016", "Type assertion expressions can only be used in TypeScript files."), Signature_declarations_can_only_be_used_in_TypeScript_files: i(8017, 1, "Signature_declarations_can_only_be_used_in_TypeScript_files_8017", "Signature declarations can only be used in TypeScript files."), Report_errors_in_js_files: i(8019, 3, "Report_errors_in_js_files_8019", "Report errors in .js files."), JSDoc_types_can_only_be_used_inside_documentation_comments: i(8020, 1, "JSDoc_types_can_only_be_used_inside_documentation_comments_8020", "JSDoc types can only be used inside documentation comments."), JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags: i(8021, 1, "JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021", "JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."), JSDoc_0_is_not_attached_to_a_class: i(8022, 1, "JSDoc_0_is_not_attached_to_a_class_8022", "JSDoc '@{0}' is not attached to a class."), JSDoc_0_1_does_not_match_the_extends_2_clause: i(8023, 1, "JSDoc_0_1_does_not_match_the_extends_2_clause_8023", "JSDoc '@{0} {1}' does not match the 'extends {2}' clause."), JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name: i(8024, 1, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name."), Class_declarations_cannot_have_more_than_one_augments_or_extends_tag: i(8025, 1, "Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025", "Class declarations cannot have more than one '@augments' or '@extends' tag."), Expected_0_type_arguments_provide_these_with_an_extends_tag: i(8026, 1, "Expected_0_type_arguments_provide_these_with_an_extends_tag_8026", "Expected {0} type arguments; provide these with an '@extends' tag."), Expected_0_1_type_arguments_provide_these_with_an_extends_tag: i(8027, 1, "Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027", "Expected {0}-{1} type arguments; provide these with an '@extends' tag."), JSDoc_may_only_appear_in_the_last_parameter_of_a_signature: i(8028, 1, "JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028", "JSDoc '...' may only appear in the last parameter of a signature."), JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type: i(8029, 1, "JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029", "JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."), The_type_of_a_function_declaration_must_match_the_function_s_signature: i(8030, 1, "The_type_of_a_function_declaration_must_match_the_function_s_signature_8030", "The type of a function declaration must match the function's signature."), You_cannot_rename_a_module_via_a_global_import: i(8031, 1, "You_cannot_rename_a_module_via_a_global_import_8031", "You cannot rename a module via a global import."), Qualified_name_0_is_not_allowed_without_a_leading_param_object_1: i(8032, 1, "Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032", "Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."), A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags: i(8033, 1, "A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033", "A JSDoc '@typedef' comment may not contain multiple '@type' tags."), The_tag_was_first_specified_here: i(8034, 1, "The_tag_was_first_specified_here_8034", "The tag was first specified here."), You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder: i(8035, 1, "You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035", "You cannot rename elements that are defined in a 'node_modules' folder."), You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder: i(8036, 1, "You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036", "You cannot rename elements that are defined in another 'node_modules' folder."), Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files: i(8037, 1, "Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037", "Type satisfaction expressions can only be used in TypeScript files."), Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export: i(8038, 1, "Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038", "Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."), A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: i(8039, 1, "A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039", "A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"), Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: i(9005, 1, "Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005", "Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."), Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: i(9006, 1, "Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006", "Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."), JSX_attributes_must_only_be_assigned_a_non_empty_expression: i(17e3, 1, "JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000", "JSX attributes must only be assigned a non-empty 'expression'."), JSX_elements_cannot_have_multiple_attributes_with_the_same_name: i(17001, 1, "JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001", "JSX elements cannot have multiple attributes with the same name."), Expected_corresponding_JSX_closing_tag_for_0: i(17002, 1, "Expected_corresponding_JSX_closing_tag_for_0_17002", "Expected corresponding JSX closing tag for '{0}'."), Cannot_use_JSX_unless_the_jsx_flag_is_provided: i(17004, 1, "Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004", "Cannot use JSX unless the '--jsx' flag is provided."), A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: i(17005, 1, "A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005", "A constructor cannot contain a 'super' call when its class extends 'null'."), An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: i(17006, 1, "An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006", "An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."), A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: i(17007, 1, "A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007", "A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."), JSX_element_0_has_no_corresponding_closing_tag: i(17008, 1, "JSX_element_0_has_no_corresponding_closing_tag_17008", "JSX element '{0}' has no corresponding closing tag."), super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: i(17009, 1, "super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009", "'super' must be called before accessing 'this' in the constructor of a derived class."), Unknown_type_acquisition_option_0: i(17010, 1, "Unknown_type_acquisition_option_0_17010", "Unknown type acquisition option '{0}'."), super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class: i(17011, 1, "super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011", "'super' must be called before accessing a property of 'super' in the constructor of a derived class."), _0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2: i(17012, 1, "_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012", "'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"), Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor: i(17013, 1, "Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013", "Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."), JSX_fragment_has_no_corresponding_closing_tag: i(17014, 1, "JSX_fragment_has_no_corresponding_closing_tag_17014", "JSX fragment has no corresponding closing tag."), Expected_corresponding_closing_tag_for_JSX_fragment: i(17015, 1, "Expected_corresponding_closing_tag_for_JSX_fragment_17015", "Expected corresponding closing tag for JSX fragment."), The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option: i(17016, 1, "The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016", "The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."), An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments: i(17017, 1, "An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017", "An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."), Unknown_type_acquisition_option_0_Did_you_mean_1: i(17018, 1, "Unknown_type_acquisition_option_0_Did_you_mean_1_17018", "Unknown type acquisition option '{0}'. Did you mean '{1}'?"), _0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: i(17019, 1, "_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019", "'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"), _0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: i(17020, 1, "_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020", "'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"), Circularity_detected_while_resolving_configuration_Colon_0: i(18e3, 1, "Circularity_detected_while_resolving_configuration_Colon_0_18000", "Circularity detected while resolving configuration: {0}"), The_files_list_in_config_file_0_is_empty: i(18002, 1, "The_files_list_in_config_file_0_is_empty_18002", "The 'files' list in config file '{0}' is empty."), No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: i(18003, 1, "No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003", "No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."), File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module: i(80001, 2, "File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001", "File is a CommonJS module; it may be converted to an ES module."), This_constructor_function_may_be_converted_to_a_class_declaration: i(80002, 2, "This_constructor_function_may_be_converted_to_a_class_declaration_80002", "This constructor function may be converted to a class declaration."), Import_may_be_converted_to_a_default_import: i(80003, 2, "Import_may_be_converted_to_a_default_import_80003", "Import may be converted to a default import."), JSDoc_types_may_be_moved_to_TypeScript_types: i(80004, 2, "JSDoc_types_may_be_moved_to_TypeScript_types_80004", "JSDoc types may be moved to TypeScript types."), require_call_may_be_converted_to_an_import: i(80005, 2, "require_call_may_be_converted_to_an_import_80005", "'require' call may be converted to an import."), This_may_be_converted_to_an_async_function: i(80006, 2, "This_may_be_converted_to_an_async_function_80006", "This may be converted to an async function."), await_has_no_effect_on_the_type_of_this_expression: i(80007, 2, "await_has_no_effect_on_the_type_of_this_expression_80007", "'await' has no effect on the type of this expression."), Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers: i(80008, 2, "Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008", "Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."), JSDoc_typedef_may_be_converted_to_TypeScript_type: i(80009, 2, "JSDoc_typedef_may_be_converted_to_TypeScript_type_80009", "JSDoc typedef may be converted to TypeScript type."), JSDoc_typedefs_may_be_converted_to_TypeScript_types: i(80010, 2, "JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010", "JSDoc typedefs may be converted to TypeScript types."), Add_missing_super_call: i(90001, 3, "Add_missing_super_call_90001", "Add missing 'super()' call"), Make_super_call_the_first_statement_in_the_constructor: i(90002, 3, "Make_super_call_the_first_statement_in_the_constructor_90002", "Make 'super()' call the first statement in the constructor"), Change_extends_to_implements: i(90003, 3, "Change_extends_to_implements_90003", "Change 'extends' to 'implements'"), Remove_unused_declaration_for_Colon_0: i(90004, 3, "Remove_unused_declaration_for_Colon_0_90004", "Remove unused declaration for: '{0}'"), Remove_import_from_0: i(90005, 3, "Remove_import_from_0_90005", "Remove import from '{0}'"), Implement_interface_0: i(90006, 3, "Implement_interface_0_90006", "Implement interface '{0}'"), Implement_inherited_abstract_class: i(90007, 3, "Implement_inherited_abstract_class_90007", "Implement inherited abstract class"), Add_0_to_unresolved_variable: i(90008, 3, "Add_0_to_unresolved_variable_90008", "Add '{0}.' to unresolved variable"), Remove_variable_statement: i(90010, 3, "Remove_variable_statement_90010", "Remove variable statement"), Remove_template_tag: i(90011, 3, "Remove_template_tag_90011", "Remove template tag"), Remove_type_parameters: i(90012, 3, "Remove_type_parameters_90012", "Remove type parameters"), Import_0_from_1: i(90013, 3, "Import_0_from_1_90013", `Import '{0}' from "{1}"`), Change_0_to_1: i(90014, 3, "Change_0_to_1_90014", "Change '{0}' to '{1}'"), Declare_property_0: i(90016, 3, "Declare_property_0_90016", "Declare property '{0}'"), Add_index_signature_for_property_0: i(90017, 3, "Add_index_signature_for_property_0_90017", "Add index signature for property '{0}'"), Disable_checking_for_this_file: i(90018, 3, "Disable_checking_for_this_file_90018", "Disable checking for this file"), Ignore_this_error_message: i(90019, 3, "Ignore_this_error_message_90019", "Ignore this error message"), Initialize_property_0_in_the_constructor: i(90020, 3, "Initialize_property_0_in_the_constructor_90020", "Initialize property '{0}' in the constructor"), Initialize_static_property_0: i(90021, 3, "Initialize_static_property_0_90021", "Initialize static property '{0}'"), Change_spelling_to_0: i(90022, 3, "Change_spelling_to_0_90022", "Change spelling to '{0}'"), Declare_method_0: i(90023, 3, "Declare_method_0_90023", "Declare method '{0}'"), Declare_static_method_0: i(90024, 3, "Declare_static_method_0_90024", "Declare static method '{0}'"), Prefix_0_with_an_underscore: i(90025, 3, "Prefix_0_with_an_underscore_90025", "Prefix '{0}' with an underscore"), Rewrite_as_the_indexed_access_type_0: i(90026, 3, "Rewrite_as_the_indexed_access_type_0_90026", "Rewrite as the indexed access type '{0}'"), Declare_static_property_0: i(90027, 3, "Declare_static_property_0_90027", "Declare static property '{0}'"), Call_decorator_expression: i(90028, 3, "Call_decorator_expression_90028", "Call decorator expression"), Add_async_modifier_to_containing_function: i(90029, 3, "Add_async_modifier_to_containing_function_90029", "Add async modifier to containing function"), Replace_infer_0_with_unknown: i(90030, 3, "Replace_infer_0_with_unknown_90030", "Replace 'infer {0}' with 'unknown'"), Replace_all_unused_infer_with_unknown: i(90031, 3, "Replace_all_unused_infer_with_unknown_90031", "Replace all unused 'infer' with 'unknown'"), Add_parameter_name: i(90034, 3, "Add_parameter_name_90034", "Add parameter name"), Declare_private_property_0: i(90035, 3, "Declare_private_property_0_90035", "Declare private property '{0}'"), Replace_0_with_Promise_1: i(90036, 3, "Replace_0_with_Promise_1_90036", "Replace '{0}' with 'Promise<{1}>'"), Fix_all_incorrect_return_type_of_an_async_functions: i(90037, 3, "Fix_all_incorrect_return_type_of_an_async_functions_90037", "Fix all incorrect return type of an async functions"), Declare_private_method_0: i(90038, 3, "Declare_private_method_0_90038", "Declare private method '{0}'"), Remove_unused_destructuring_declaration: i(90039, 3, "Remove_unused_destructuring_declaration_90039", "Remove unused destructuring declaration"), Remove_unused_declarations_for_Colon_0: i(90041, 3, "Remove_unused_declarations_for_Colon_0_90041", "Remove unused declarations for: '{0}'"), Declare_a_private_field_named_0: i(90053, 3, "Declare_a_private_field_named_0_90053", "Declare a private field named '{0}'."), Includes_imports_of_types_referenced_by_0: i(90054, 3, "Includes_imports_of_types_referenced_by_0_90054", "Includes imports of types referenced by '{0}'"), Remove_type_from_import_declaration_from_0: i(90055, 3, "Remove_type_from_import_declaration_from_0_90055", `Remove 'type' from import declaration from "{0}"`), Remove_type_from_import_of_0_from_1: i(90056, 3, "Remove_type_from_import_of_0_from_1_90056", `Remove 'type' from import of '{0}' from "{1}"`), Add_import_from_0: i(90057, 3, "Add_import_from_0_90057", 'Add import from "{0}"'), Update_import_from_0: i(90058, 3, "Update_import_from_0_90058", 'Update import from "{0}"'), Export_0_from_module_1: i(90059, 3, "Export_0_from_module_1_90059", "Export '{0}' from module '{1}'"), Export_all_referenced_locals: i(90060, 3, "Export_all_referenced_locals_90060", "Export all referenced locals"), Convert_function_to_an_ES2015_class: i(95001, 3, "Convert_function_to_an_ES2015_class_95001", "Convert function to an ES2015 class"), Convert_0_to_1_in_0: i(95003, 3, "Convert_0_to_1_in_0_95003", "Convert '{0}' to '{1} in {0}'"), Extract_to_0_in_1: i(95004, 3, "Extract_to_0_in_1_95004", "Extract to {0} in {1}"), Extract_function: i(95005, 3, "Extract_function_95005", "Extract function"), Extract_constant: i(95006, 3, "Extract_constant_95006", "Extract constant"), Extract_to_0_in_enclosing_scope: i(95007, 3, "Extract_to_0_in_enclosing_scope_95007", "Extract to {0} in enclosing scope"), Extract_to_0_in_1_scope: i(95008, 3, "Extract_to_0_in_1_scope_95008", "Extract to {0} in {1} scope"), Annotate_with_type_from_JSDoc: i(95009, 3, "Annotate_with_type_from_JSDoc_95009", "Annotate with type from JSDoc"), Infer_type_of_0_from_usage: i(95011, 3, "Infer_type_of_0_from_usage_95011", "Infer type of '{0}' from usage"), Infer_parameter_types_from_usage: i(95012, 3, "Infer_parameter_types_from_usage_95012", "Infer parameter types from usage"), Convert_to_default_import: i(95013, 3, "Convert_to_default_import_95013", "Convert to default import"), Install_0: i(95014, 3, "Install_0_95014", "Install '{0}'"), Replace_import_with_0: i(95015, 3, "Replace_import_with_0_95015", "Replace import with '{0}'."), Use_synthetic_default_member: i(95016, 3, "Use_synthetic_default_member_95016", "Use synthetic 'default' member."), Convert_to_ES_module: i(95017, 3, "Convert_to_ES_module_95017", "Convert to ES module"), Add_undefined_type_to_property_0: i(95018, 3, "Add_undefined_type_to_property_0_95018", "Add 'undefined' type to property '{0}'"), Add_initializer_to_property_0: i(95019, 3, "Add_initializer_to_property_0_95019", "Add initializer to property '{0}'"), Add_definite_assignment_assertion_to_property_0: i(95020, 3, "Add_definite_assignment_assertion_to_property_0_95020", "Add definite assignment assertion to property '{0}'"), Convert_all_type_literals_to_mapped_type: i(95021, 3, "Convert_all_type_literals_to_mapped_type_95021", "Convert all type literals to mapped type"), Add_all_missing_members: i(95022, 3, "Add_all_missing_members_95022", "Add all missing members"), Infer_all_types_from_usage: i(95023, 3, "Infer_all_types_from_usage_95023", "Infer all types from usage"), Delete_all_unused_declarations: i(95024, 3, "Delete_all_unused_declarations_95024", "Delete all unused declarations"), Prefix_all_unused_declarations_with_where_possible: i(95025, 3, "Prefix_all_unused_declarations_with_where_possible_95025", "Prefix all unused declarations with '_' where possible"), Fix_all_detected_spelling_errors: i(95026, 3, "Fix_all_detected_spelling_errors_95026", "Fix all detected spelling errors"), Add_initializers_to_all_uninitialized_properties: i(95027, 3, "Add_initializers_to_all_uninitialized_properties_95027", "Add initializers to all uninitialized properties"), Add_definite_assignment_assertions_to_all_uninitialized_properties: i(95028, 3, "Add_definite_assignment_assertions_to_all_uninitialized_properties_95028", "Add definite assignment assertions to all uninitialized properties"), Add_undefined_type_to_all_uninitialized_properties: i(95029, 3, "Add_undefined_type_to_all_uninitialized_properties_95029", "Add undefined type to all uninitialized properties"), Change_all_jsdoc_style_types_to_TypeScript: i(95030, 3, "Change_all_jsdoc_style_types_to_TypeScript_95030", "Change all jsdoc-style types to TypeScript"), Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types: i(95031, 3, "Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031", "Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"), Implement_all_unimplemented_interfaces: i(95032, 3, "Implement_all_unimplemented_interfaces_95032", "Implement all unimplemented interfaces"), Install_all_missing_types_packages: i(95033, 3, "Install_all_missing_types_packages_95033", "Install all missing types packages"), Rewrite_all_as_indexed_access_types: i(95034, 3, "Rewrite_all_as_indexed_access_types_95034", "Rewrite all as indexed access types"), Convert_all_to_default_imports: i(95035, 3, "Convert_all_to_default_imports_95035", "Convert all to default imports"), Make_all_super_calls_the_first_statement_in_their_constructor: i(95036, 3, "Make_all_super_calls_the_first_statement_in_their_constructor_95036", "Make all 'super()' calls the first statement in their constructor"), Add_qualifier_to_all_unresolved_variables_matching_a_member_name: i(95037, 3, "Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037", "Add qualifier to all unresolved variables matching a member name"), Change_all_extended_interfaces_to_implements: i(95038, 3, "Change_all_extended_interfaces_to_implements_95038", "Change all extended interfaces to 'implements'"), Add_all_missing_super_calls: i(95039, 3, "Add_all_missing_super_calls_95039", "Add all missing super calls"), Implement_all_inherited_abstract_classes: i(95040, 3, "Implement_all_inherited_abstract_classes_95040", "Implement all inherited abstract classes"), Add_all_missing_async_modifiers: i(95041, 3, "Add_all_missing_async_modifiers_95041", "Add all missing 'async' modifiers"), Add_ts_ignore_to_all_error_messages: i(95042, 3, "Add_ts_ignore_to_all_error_messages_95042", "Add '@ts-ignore' to all error messages"), Annotate_everything_with_types_from_JSDoc: i(95043, 3, "Annotate_everything_with_types_from_JSDoc_95043", "Annotate everything with types from JSDoc"), Add_to_all_uncalled_decorators: i(95044, 3, "Add_to_all_uncalled_decorators_95044", "Add '()' to all uncalled decorators"), Convert_all_constructor_functions_to_classes: i(95045, 3, "Convert_all_constructor_functions_to_classes_95045", "Convert all constructor functions to classes"), Generate_get_and_set_accessors: i(95046, 3, "Generate_get_and_set_accessors_95046", "Generate 'get' and 'set' accessors"), Convert_require_to_import: i(95047, 3, "Convert_require_to_import_95047", "Convert 'require' to 'import'"), Convert_all_require_to_import: i(95048, 3, "Convert_all_require_to_import_95048", "Convert all 'require' to 'import'"), Move_to_a_new_file: i(95049, 3, "Move_to_a_new_file_95049", "Move to a new file"), Remove_unreachable_code: i(95050, 3, "Remove_unreachable_code_95050", "Remove unreachable code"), Remove_all_unreachable_code: i(95051, 3, "Remove_all_unreachable_code_95051", "Remove all unreachable code"), Add_missing_typeof: i(95052, 3, "Add_missing_typeof_95052", "Add missing 'typeof'"), Remove_unused_label: i(95053, 3, "Remove_unused_label_95053", "Remove unused label"), Remove_all_unused_labels: i(95054, 3, "Remove_all_unused_labels_95054", "Remove all unused labels"), Convert_0_to_mapped_object_type: i(95055, 3, "Convert_0_to_mapped_object_type_95055", "Convert '{0}' to mapped object type"), Convert_namespace_import_to_named_imports: i(95056, 3, "Convert_namespace_import_to_named_imports_95056", "Convert namespace import to named imports"), Convert_named_imports_to_namespace_import: i(95057, 3, "Convert_named_imports_to_namespace_import_95057", "Convert named imports to namespace import"), Add_or_remove_braces_in_an_arrow_function: i(95058, 3, "Add_or_remove_braces_in_an_arrow_function_95058", "Add or remove braces in an arrow function"), Add_braces_to_arrow_function: i(95059, 3, "Add_braces_to_arrow_function_95059", "Add braces to arrow function"), Remove_braces_from_arrow_function: i(95060, 3, "Remove_braces_from_arrow_function_95060", "Remove braces from arrow function"), Convert_default_export_to_named_export: i(95061, 3, "Convert_default_export_to_named_export_95061", "Convert default export to named export"), Convert_named_export_to_default_export: i(95062, 3, "Convert_named_export_to_default_export_95062", "Convert named export to default export"), Add_missing_enum_member_0: i(95063, 3, "Add_missing_enum_member_0_95063", "Add missing enum member '{0}'"), Add_all_missing_imports: i(95064, 3, "Add_all_missing_imports_95064", "Add all missing imports"), Convert_to_async_function: i(95065, 3, "Convert_to_async_function_95065", "Convert to async function"), Convert_all_to_async_functions: i(95066, 3, "Convert_all_to_async_functions_95066", "Convert all to async functions"), Add_missing_call_parentheses: i(95067, 3, "Add_missing_call_parentheses_95067", "Add missing call parentheses"), Add_all_missing_call_parentheses: i(95068, 3, "Add_all_missing_call_parentheses_95068", "Add all missing call parentheses"), Add_unknown_conversion_for_non_overlapping_types: i(95069, 3, "Add_unknown_conversion_for_non_overlapping_types_95069", "Add 'unknown' conversion for non-overlapping types"), Add_unknown_to_all_conversions_of_non_overlapping_types: i(95070, 3, "Add_unknown_to_all_conversions_of_non_overlapping_types_95070", "Add 'unknown' to all conversions of non-overlapping types"), Add_missing_new_operator_to_call: i(95071, 3, "Add_missing_new_operator_to_call_95071", "Add missing 'new' operator to call"), Add_missing_new_operator_to_all_calls: i(95072, 3, "Add_missing_new_operator_to_all_calls_95072", "Add missing 'new' operator to all calls"), Add_names_to_all_parameters_without_names: i(95073, 3, "Add_names_to_all_parameters_without_names_95073", "Add names to all parameters without names"), Enable_the_experimentalDecorators_option_in_your_configuration_file: i(95074, 3, "Enable_the_experimentalDecorators_option_in_your_configuration_file_95074", "Enable the 'experimentalDecorators' option in your configuration file"), Convert_parameters_to_destructured_object: i(95075, 3, "Convert_parameters_to_destructured_object_95075", "Convert parameters to destructured object"), Extract_type: i(95077, 3, "Extract_type_95077", "Extract type"), Extract_to_type_alias: i(95078, 3, "Extract_to_type_alias_95078", "Extract to type alias"), Extract_to_typedef: i(95079, 3, "Extract_to_typedef_95079", "Extract to typedef"), Infer_this_type_of_0_from_usage: i(95080, 3, "Infer_this_type_of_0_from_usage_95080", "Infer 'this' type of '{0}' from usage"), Add_const_to_unresolved_variable: i(95081, 3, "Add_const_to_unresolved_variable_95081", "Add 'const' to unresolved variable"), Add_const_to_all_unresolved_variables: i(95082, 3, "Add_const_to_all_unresolved_variables_95082", "Add 'const' to all unresolved variables"), Add_await: i(95083, 3, "Add_await_95083", "Add 'await'"), Add_await_to_initializer_for_0: i(95084, 3, "Add_await_to_initializer_for_0_95084", "Add 'await' to initializer for '{0}'"), Fix_all_expressions_possibly_missing_await: i(95085, 3, "Fix_all_expressions_possibly_missing_await_95085", "Fix all expressions possibly missing 'await'"), Remove_unnecessary_await: i(95086, 3, "Remove_unnecessary_await_95086", "Remove unnecessary 'await'"), Remove_all_unnecessary_uses_of_await: i(95087, 3, "Remove_all_unnecessary_uses_of_await_95087", "Remove all unnecessary uses of 'await'"), Enable_the_jsx_flag_in_your_configuration_file: i(95088, 3, "Enable_the_jsx_flag_in_your_configuration_file_95088", "Enable the '--jsx' flag in your configuration file"), Add_await_to_initializers: i(95089, 3, "Add_await_to_initializers_95089", "Add 'await' to initializers"), Extract_to_interface: i(95090, 3, "Extract_to_interface_95090", "Extract to interface"), Convert_to_a_bigint_numeric_literal: i(95091, 3, "Convert_to_a_bigint_numeric_literal_95091", "Convert to a bigint numeric literal"), Convert_all_to_bigint_numeric_literals: i(95092, 3, "Convert_all_to_bigint_numeric_literals_95092", "Convert all to bigint numeric literals"), Convert_const_to_let: i(95093, 3, "Convert_const_to_let_95093", "Convert 'const' to 'let'"), Prefix_with_declare: i(95094, 3, "Prefix_with_declare_95094", "Prefix with 'declare'"), Prefix_all_incorrect_property_declarations_with_declare: i(95095, 3, "Prefix_all_incorrect_property_declarations_with_declare_95095", "Prefix all incorrect property declarations with 'declare'"), Convert_to_template_string: i(95096, 3, "Convert_to_template_string_95096", "Convert to template string"), Add_export_to_make_this_file_into_a_module: i(95097, 3, "Add_export_to_make_this_file_into_a_module_95097", "Add 'export {}' to make this file into a module"), Set_the_target_option_in_your_configuration_file_to_0: i(95098, 3, "Set_the_target_option_in_your_configuration_file_to_0_95098", "Set the 'target' option in your configuration file to '{0}'"), Set_the_module_option_in_your_configuration_file_to_0: i(95099, 3, "Set_the_module_option_in_your_configuration_file_to_0_95099", "Set the 'module' option in your configuration file to '{0}'"), Convert_invalid_character_to_its_html_entity_code: i(95100, 3, "Convert_invalid_character_to_its_html_entity_code_95100", "Convert invalid character to its html entity code"), Convert_all_invalid_characters_to_HTML_entity_code: i(95101, 3, "Convert_all_invalid_characters_to_HTML_entity_code_95101", "Convert all invalid characters to HTML entity code"), Convert_all_const_to_let: i(95102, 3, "Convert_all_const_to_let_95102", "Convert all 'const' to 'let'"), Convert_function_expression_0_to_arrow_function: i(95105, 3, "Convert_function_expression_0_to_arrow_function_95105", "Convert function expression '{0}' to arrow function"), Convert_function_declaration_0_to_arrow_function: i(95106, 3, "Convert_function_declaration_0_to_arrow_function_95106", "Convert function declaration '{0}' to arrow function"), Fix_all_implicit_this_errors: i(95107, 3, "Fix_all_implicit_this_errors_95107", "Fix all implicit-'this' errors"), Wrap_invalid_character_in_an_expression_container: i(95108, 3, "Wrap_invalid_character_in_an_expression_container_95108", "Wrap invalid character in an expression container"), Wrap_all_invalid_characters_in_an_expression_container: i(95109, 3, "Wrap_all_invalid_characters_in_an_expression_container_95109", "Wrap all invalid characters in an expression container"), Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file: i(95110, 3, "Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110", "Visit https://aka.ms/tsconfig to read more about this file"), Add_a_return_statement: i(95111, 3, "Add_a_return_statement_95111", "Add a return statement"), Remove_braces_from_arrow_function_body: i(95112, 3, "Remove_braces_from_arrow_function_body_95112", "Remove braces from arrow function body"), Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal: i(95113, 3, "Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113", "Wrap the following body with parentheses which should be an object literal"), Add_all_missing_return_statement: i(95114, 3, "Add_all_missing_return_statement_95114", "Add all missing return statement"), Remove_braces_from_all_arrow_function_bodies_with_relevant_issues: i(95115, 3, "Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115", "Remove braces from all arrow function bodies with relevant issues"), Wrap_all_object_literal_with_parentheses: i(95116, 3, "Wrap_all_object_literal_with_parentheses_95116", "Wrap all object literal with parentheses"), Move_labeled_tuple_element_modifiers_to_labels: i(95117, 3, "Move_labeled_tuple_element_modifiers_to_labels_95117", "Move labeled tuple element modifiers to labels"), Convert_overload_list_to_single_signature: i(95118, 3, "Convert_overload_list_to_single_signature_95118", "Convert overload list to single signature"), Generate_get_and_set_accessors_for_all_overriding_properties: i(95119, 3, "Generate_get_and_set_accessors_for_all_overriding_properties_95119", "Generate 'get' and 'set' accessors for all overriding properties"), Wrap_in_JSX_fragment: i(95120, 3, "Wrap_in_JSX_fragment_95120", "Wrap in JSX fragment"), Wrap_all_unparented_JSX_in_JSX_fragment: i(95121, 3, "Wrap_all_unparented_JSX_in_JSX_fragment_95121", "Wrap all unparented JSX in JSX fragment"), Convert_arrow_function_or_function_expression: i(95122, 3, "Convert_arrow_function_or_function_expression_95122", "Convert arrow function or function expression"), Convert_to_anonymous_function: i(95123, 3, "Convert_to_anonymous_function_95123", "Convert to anonymous function"), Convert_to_named_function: i(95124, 3, "Convert_to_named_function_95124", "Convert to named function"), Convert_to_arrow_function: i(95125, 3, "Convert_to_arrow_function_95125", "Convert to arrow function"), Remove_parentheses: i(95126, 3, "Remove_parentheses_95126", "Remove parentheses"), Could_not_find_a_containing_arrow_function: i(95127, 3, "Could_not_find_a_containing_arrow_function_95127", "Could not find a containing arrow function"), Containing_function_is_not_an_arrow_function: i(95128, 3, "Containing_function_is_not_an_arrow_function_95128", "Containing function is not an arrow function"), Could_not_find_export_statement: i(95129, 3, "Could_not_find_export_statement_95129", "Could not find export statement"), This_file_already_has_a_default_export: i(95130, 3, "This_file_already_has_a_default_export_95130", "This file already has a default export"), Could_not_find_import_clause: i(95131, 3, "Could_not_find_import_clause_95131", "Could not find import clause"), Could_not_find_namespace_import_or_named_imports: i(95132, 3, "Could_not_find_namespace_import_or_named_imports_95132", "Could not find namespace import or named imports"), Selection_is_not_a_valid_type_node: i(95133, 3, "Selection_is_not_a_valid_type_node_95133", "Selection is not a valid type node"), No_type_could_be_extracted_from_this_type_node: i(95134, 3, "No_type_could_be_extracted_from_this_type_node_95134", "No type could be extracted from this type node"), Could_not_find_property_for_which_to_generate_accessor: i(95135, 3, "Could_not_find_property_for_which_to_generate_accessor_95135", "Could not find property for which to generate accessor"), Name_is_not_valid: i(95136, 3, "Name_is_not_valid_95136", "Name is not valid"), Can_only_convert_property_with_modifier: i(95137, 3, "Can_only_convert_property_with_modifier_95137", "Can only convert property with modifier"), Switch_each_misused_0_to_1: i(95138, 3, "Switch_each_misused_0_to_1_95138", "Switch each misused '{0}' to '{1}'"), Convert_to_optional_chain_expression: i(95139, 3, "Convert_to_optional_chain_expression_95139", "Convert to optional chain expression"), Could_not_find_convertible_access_expression: i(95140, 3, "Could_not_find_convertible_access_expression_95140", "Could not find convertible access expression"), Could_not_find_matching_access_expressions: i(95141, 3, "Could_not_find_matching_access_expressions_95141", "Could not find matching access expressions"), Can_only_convert_logical_AND_access_chains: i(95142, 3, "Can_only_convert_logical_AND_access_chains_95142", "Can only convert logical AND access chains"), Add_void_to_Promise_resolved_without_a_value: i(95143, 3, "Add_void_to_Promise_resolved_without_a_value_95143", "Add 'void' to Promise resolved without a value"), Add_void_to_all_Promises_resolved_without_a_value: i(95144, 3, "Add_void_to_all_Promises_resolved_without_a_value_95144", "Add 'void' to all Promises resolved without a value"), Use_element_access_for_0: i(95145, 3, "Use_element_access_for_0_95145", "Use element access for '{0}'"), Use_element_access_for_all_undeclared_properties: i(95146, 3, "Use_element_access_for_all_undeclared_properties_95146", "Use element access for all undeclared properties."), Delete_all_unused_imports: i(95147, 3, "Delete_all_unused_imports_95147", "Delete all unused imports"), Infer_function_return_type: i(95148, 3, "Infer_function_return_type_95148", "Infer function return type"), Return_type_must_be_inferred_from_a_function: i(95149, 3, "Return_type_must_be_inferred_from_a_function_95149", "Return type must be inferred from a function"), Could_not_determine_function_return_type: i(95150, 3, "Could_not_determine_function_return_type_95150", "Could not determine function return type"), Could_not_convert_to_arrow_function: i(95151, 3, "Could_not_convert_to_arrow_function_95151", "Could not convert to arrow function"), Could_not_convert_to_named_function: i(95152, 3, "Could_not_convert_to_named_function_95152", "Could not convert to named function"), Could_not_convert_to_anonymous_function: i(95153, 3, "Could_not_convert_to_anonymous_function_95153", "Could not convert to anonymous function"), Can_only_convert_string_concatenation: i(95154, 3, "Can_only_convert_string_concatenation_95154", "Can only convert string concatenation"), Selection_is_not_a_valid_statement_or_statements: i(95155, 3, "Selection_is_not_a_valid_statement_or_statements_95155", "Selection is not a valid statement or statements"), Add_missing_function_declaration_0: i(95156, 3, "Add_missing_function_declaration_0_95156", "Add missing function declaration '{0}'"), Add_all_missing_function_declarations: i(95157, 3, "Add_all_missing_function_declarations_95157", "Add all missing function declarations"), Method_not_implemented: i(95158, 3, "Method_not_implemented_95158", "Method not implemented."), Function_not_implemented: i(95159, 3, "Function_not_implemented_95159", "Function not implemented."), Add_override_modifier: i(95160, 3, "Add_override_modifier_95160", "Add 'override' modifier"), Remove_override_modifier: i(95161, 3, "Remove_override_modifier_95161", "Remove 'override' modifier"), Add_all_missing_override_modifiers: i(95162, 3, "Add_all_missing_override_modifiers_95162", "Add all missing 'override' modifiers"), Remove_all_unnecessary_override_modifiers: i(95163, 3, "Remove_all_unnecessary_override_modifiers_95163", "Remove all unnecessary 'override' modifiers"), Can_only_convert_named_export: i(95164, 3, "Can_only_convert_named_export_95164", "Can only convert named export"), Add_missing_properties: i(95165, 3, "Add_missing_properties_95165", "Add missing properties"), Add_all_missing_properties: i(95166, 3, "Add_all_missing_properties_95166", "Add all missing properties"), Add_missing_attributes: i(95167, 3, "Add_missing_attributes_95167", "Add missing attributes"), Add_all_missing_attributes: i(95168, 3, "Add_all_missing_attributes_95168", "Add all missing attributes"), Add_undefined_to_optional_property_type: i(95169, 3, "Add_undefined_to_optional_property_type_95169", "Add 'undefined' to optional property type"), Convert_named_imports_to_default_import: i(95170, 3, "Convert_named_imports_to_default_import_95170", "Convert named imports to default import"), Delete_unused_param_tag_0: i(95171, 3, "Delete_unused_param_tag_0_95171", "Delete unused '@param' tag '{0}'"), Delete_all_unused_param_tags: i(95172, 3, "Delete_all_unused_param_tags_95172", "Delete all unused '@param' tags"), Rename_param_tag_name_0_to_1: i(95173, 3, "Rename_param_tag_name_0_to_1_95173", "Rename '@param' tag name '{0}' to '{1}'"), Use_0: i(95174, 3, "Use_0_95174", "Use `{0}`."), Use_Number_isNaN_in_all_conditions: i(95175, 3, "Use_Number_isNaN_in_all_conditions_95175", "Use `Number.isNaN` in all conditions."), Convert_typedef_to_TypeScript_type: i(95176, 3, "Convert_typedef_to_TypeScript_type_95176", "Convert typedef to TypeScript type."), Convert_all_typedef_to_TypeScript_types: i(95177, 3, "Convert_all_typedef_to_TypeScript_types_95177", "Convert all typedef to TypeScript types."), Move_to_file: i(95178, 3, "Move_to_file_95178", "Move to file"), Cannot_move_to_file_selected_file_is_invalid: i(95179, 3, "Cannot_move_to_file_selected_file_is_invalid_95179", "Cannot move to file, selected file is invalid"), Use_import_type: i(95180, 3, "Use_import_type_95180", "Use 'import type'"), Use_type_0: i(95181, 3, "Use_type_0_95181", "Use 'type {0}'"), Fix_all_with_type_only_imports: i(95182, 3, "Fix_all_with_type_only_imports_95182", "Fix all with type-only imports"), Cannot_move_statements_to_the_selected_file: i(95183, 3, "Cannot_move_statements_to_the_selected_file_95183", "Cannot move statements to the selected file"), Inline_variable: i(95184, 3, "Inline_variable_95184", "Inline variable"), Could_not_find_variable_to_inline: i(95185, 3, "Could_not_find_variable_to_inline_95185", "Could not find variable to inline."), Variables_with_multiple_declarations_cannot_be_inlined: i(95186, 3, "Variables_with_multiple_declarations_cannot_be_inlined_95186", "Variables with multiple declarations cannot be inlined."), Add_missing_comma_for_object_member_completion_0: i(95187, 3, "Add_missing_comma_for_object_member_completion_0_95187", "Add missing comma for object member completion '{0}'."), No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: i(18004, 1, "No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004", "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."), Classes_may_not_have_a_field_named_constructor: i(18006, 1, "Classes_may_not_have_a_field_named_constructor_18006", "Classes may not have a field named 'constructor'."), JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: i(18007, 1, "JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007", "JSX expressions may not use the comma operator. Did you mean to write an array?"), Private_identifiers_cannot_be_used_as_parameters: i(18009, 1, "Private_identifiers_cannot_be_used_as_parameters_18009", "Private identifiers cannot be used as parameters."), An_accessibility_modifier_cannot_be_used_with_a_private_identifier: i(18010, 1, "An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010", "An accessibility modifier cannot be used with a private identifier."), The_operand_of_a_delete_operator_cannot_be_a_private_identifier: i(18011, 1, "The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011", "The operand of a 'delete' operator cannot be a private identifier."), constructor_is_a_reserved_word: i(18012, 1, "constructor_is_a_reserved_word_18012", "'#constructor' is a reserved word."), Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier: i(18013, 1, "Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013", "Property '{0}' is not accessible outside class '{1}' because it has a private identifier."), The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling: i(18014, 1, "The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014", "The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."), Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2: i(18015, 1, "Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015", "Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."), Private_identifiers_are_not_allowed_outside_class_bodies: i(18016, 1, "Private_identifiers_are_not_allowed_outside_class_bodies_18016", "Private identifiers are not allowed outside class bodies."), The_shadowing_declaration_of_0_is_defined_here: i(18017, 1, "The_shadowing_declaration_of_0_is_defined_here_18017", "The shadowing declaration of '{0}' is defined here"), The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here: i(18018, 1, "The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018", "The declaration of '{0}' that you probably intended to use is defined here"), _0_modifier_cannot_be_used_with_a_private_identifier: i(18019, 1, "_0_modifier_cannot_be_used_with_a_private_identifier_18019", "'{0}' modifier cannot be used with a private identifier."), An_enum_member_cannot_be_named_with_a_private_identifier: i(18024, 1, "An_enum_member_cannot_be_named_with_a_private_identifier_18024", "An enum member cannot be named with a private identifier."), can_only_be_used_at_the_start_of_a_file: i(18026, 1, "can_only_be_used_at_the_start_of_a_file_18026", "'#!' can only be used at the start of a file."), Compiler_reserves_name_0_when_emitting_private_identifier_downlevel: i(18027, 1, "Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027", "Compiler reserves name '{0}' when emitting private identifier downlevel."), Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher: i(18028, 1, "Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028", "Private identifiers are only available when targeting ECMAScript 2015 and higher."), Private_identifiers_are_not_allowed_in_variable_declarations: i(18029, 1, "Private_identifiers_are_not_allowed_in_variable_declarations_18029", "Private identifiers are not allowed in variable declarations."), An_optional_chain_cannot_contain_private_identifiers: i(18030, 1, "An_optional_chain_cannot_contain_private_identifiers_18030", "An optional chain cannot contain private identifiers."), The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents: i(18031, 1, "The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031", "The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."), The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some: i(18032, 1, "The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032", "The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."), Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values: i(18033, 1, "Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033", "Type '{0}' is not assignable to type '{1}' as required for computed enum member values."), Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment: i(18034, 3, "Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034", "Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."), Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name: i(18035, 1, "Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035", "Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."), Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator: i(18036, 1, "Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036", "Class decorators can't be used with static private identifier. Consider removing the experimental decorator."), await_expression_cannot_be_used_inside_a_class_static_block: i(18037, 1, "await_expression_cannot_be_used_inside_a_class_static_block_18037", "'await' expression cannot be used inside a class static block."), for_await_loops_cannot_be_used_inside_a_class_static_block: i(18038, 1, "for_await_loops_cannot_be_used_inside_a_class_static_block_18038", "'for await' loops cannot be used inside a class static block."), Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: i(18039, 1, "Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039", "Invalid use of '{0}'. It cannot be used inside a class static block."), A_return_statement_cannot_be_used_inside_a_class_static_block: i(18041, 1, "A_return_statement_cannot_be_used_inside_a_class_static_block_18041", "A 'return' statement cannot be used inside a class static block."), _0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: i(18042, 1, "_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042", "'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."), Types_cannot_appear_in_export_declarations_in_JavaScript_files: i(18043, 1, "Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043", "Types cannot appear in export declarations in JavaScript files."), _0_is_automatically_exported_here: i(18044, 3, "_0_is_automatically_exported_here_18044", "'{0}' is automatically exported here."), Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher: i(18045, 1, "Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045", "Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."), _0_is_of_type_unknown: i(18046, 1, "_0_is_of_type_unknown_18046", "'{0}' is of type 'unknown'."), _0_is_possibly_null: i(18047, 1, "_0_is_possibly_null_18047", "'{0}' is possibly 'null'."), _0_is_possibly_undefined: i(18048, 1, "_0_is_possibly_undefined_18048", "'{0}' is possibly 'undefined'."), _0_is_possibly_null_or_undefined: i(18049, 1, "_0_is_possibly_null_or_undefined_18049", "'{0}' is possibly 'null' or 'undefined'."), The_value_0_cannot_be_used_here: i(18050, 1, "The_value_0_cannot_be_used_here_18050", "The value '{0}' cannot be used here."), Compiler_option_0_cannot_be_given_an_empty_string: i(18051, 1, "Compiler_option_0_cannot_be_given_an_empty_string_18051", "Compiler option '{0}' cannot be given an empty string."), Non_abstract_class_0_does_not_implement_all_abstract_members_of_1: i(18052, 1, "Non_abstract_class_0_does_not_implement_all_abstract_members_of_1_18052", "Non-abstract class '{0}' does not implement all abstract members of '{1}'"), Its_type_0_is_not_a_valid_JSX_element_type: i(18053, 1, "Its_type_0_is_not_a_valid_JSX_element_type_18053", "Its type '{0}' is not a valid JSX element type."), await_using_statements_cannot_be_used_inside_a_class_static_block: i(18054, 1, "await_using_statements_cannot_be_used_inside_a_class_static_block_18054", "'await using' statements cannot be used inside a class static block.") }; - } }); - function kt8(e10) { - return e10 >= 80; - } - function n4(e10) { - return e10 === 32 || kt8(e10); - } - function i_(e10, t12) { - if (e10 < t12[0]) - return false; - let r9 = 0, a = t12.length, _10; - for (; r9 + 1 < a; ) { - if (_10 = r9 + (a - r9) / 2, _10 -= _10 % 2, t12[_10] <= e10 && e10 <= t12[_10 + 1]) - return true; - e10 < t12[_10] ? a = _10 : r9 = _10 + 2; - } - return false; - } - function i4(e10, t12) { - return t12 >= 2 ? i_(e10, m4) : t12 === 1 ? i_(e10, f4) : i_(e10, u4); - } - function FE(e10, t12) { - return t12 >= 2 ? i_(e10, h4) : t12 === 1 ? i_(e10, d42) : i_(e10, p4); - } - function BE(e10) { - let t12 = []; - return e10.forEach((r9, a) => { - t12[r9] = a; - }), t12; - } - function nr7(e10) { - return b42[e10]; - } - function Rl3(e10) { - return h0.get(e10); - } - function Vd(e10) { - let t12 = [], r9 = 0, a = 0; - for (; r9 < e10.length; ) { - let _10 = e10.charCodeAt(r9); - switch (r9++, _10) { - case 13: - e10.charCodeAt(r9) === 10 && r9++; - case 10: - t12.push(a), a = r9; - break; - default: - _10 > 127 && mr6(_10) && (t12.push(a), a = r9); - break; - } - } - return t12.push(a), t12; - } - function UE(e10, t12, r9, a) { - return e10.getPositionOfLineAndCharacter ? e10.getPositionOfLineAndCharacter(t12, r9, a) : Tg(Ia4(e10), t12, r9, e10.text, a); - } - function Tg(e10, t12, r9, a, _10) { - (t12 < 0 || t12 >= e10.length) && (_10 ? t12 = t12 < 0 ? 0 : t12 >= e10.length ? e10.length - 1 : t12 : N6.fail(`Bad line number. Line: ${t12}, lineStarts.length: ${e10.length} , line map is correct? ${a !== void 0 ? bv(e10, Vd(a)) : "unknown"}`)); - let p5 = e10[t12] + r9; - return _10 ? p5 > e10[t12 + 1] ? e10[t12 + 1] : typeof a == "string" && p5 > a.length ? a.length : p5 : (t12 < e10.length - 1 ? N6.assert(p5 < e10[t12 + 1]) : a !== void 0 && N6.assert(p5 <= a.length), p5); - } - function Ia4(e10) { - return e10.lineMap || (e10.lineMap = Vd(e10.text)); - } - function Sg(e10, t12) { - let r9 = __(e10, t12); - return { line: r9, character: t12 - e10[r9] }; - } - function __(e10, t12, r9) { - let a = Ml4(e10, t12, bt7, kr7, r9); - return a < 0 && (a = ~a - 1, N6.assert(a !== -1, "position cannot precede the beginning of the file")), a; - } - function x_(e10, t12, r9) { - if (t12 === r9) - return 0; - let a = Ia4(e10), _10 = Math.min(t12, r9), p5 = _10 === r9, d5 = p5 ? t12 : r9, h5 = __(a, _10), l = __(a, d5, h5); - return p5 ? h5 - l : l - h5; - } - function to3(e10, t12) { - return Sg(Ia4(e10), t12); - } - function Vi5(e10) { - return Io2(e10) || mr6(e10); - } - function Io2(e10) { - return e10 === 32 || e10 === 9 || e10 === 11 || e10 === 12 || e10 === 160 || e10 === 133 || e10 === 5760 || e10 >= 8192 && e10 <= 8203 || e10 === 8239 || e10 === 8287 || e10 === 12288 || e10 === 65279; - } - function mr6(e10) { - return e10 === 10 || e10 === 13 || e10 === 8232 || e10 === 8233; - } - function Eo4(e10) { - return e10 >= 48 && e10 <= 57; - } - function jb(e10) { - return Eo4(e10) || e10 >= 65 && e10 <= 70 || e10 >= 97 && e10 <= 102; - } - function qE(e10) { - return e10 <= 1114111; - } - function If(e10) { - return e10 >= 48 && e10 <= 55; - } - function zE(e10, t12) { - let r9 = e10.charCodeAt(t12); - switch (r9) { - case 13: - case 10: - case 9: - case 11: - case 12: - case 32: - case 47: - case 60: - case 124: - case 61: - case 62: - return true; - case 35: - return t12 === 0; - default: - return r9 > 127; - } - } - function Nt9(e10, t12, r9, a, _10) { - if (Oa3(t12)) - return t12; - let p5 = false; - for (; ; ) { - let d5 = e10.charCodeAt(t12); - switch (d5) { - case 13: - e10.charCodeAt(t12 + 1) === 10 && t12++; - case 10: - if (t12++, r9) - return t12; - p5 = !!_10; - continue; - case 9: - case 11: - case 12: - case 32: - t12++; - continue; - case 47: - if (a) - break; - if (e10.charCodeAt(t12 + 1) === 47) { - for (t12 += 2; t12 < e10.length && !mr6(e10.charCodeAt(t12)); ) - t12++; - p5 = false; - continue; - } - if (e10.charCodeAt(t12 + 1) === 42) { - for (t12 += 2; t12 < e10.length; ) { - if (e10.charCodeAt(t12) === 42 && e10.charCodeAt(t12 + 1) === 47) { - t12 += 2; - break; - } - t12++; - } - p5 = false; - continue; - } - break; - case 60: - case 124: - case 61: - case 62: - if (ko2(e10, t12)) { - t12 = $s6(e10, t12), p5 = false; - continue; - } - break; - case 35: - if (t12 === 0 && xg3(e10, t12)) { - t12 = wg2(e10, t12), p5 = false; - continue; - } - break; - case 42: - if (p5) { - t12++, p5 = false; - continue; - } - break; - default: - if (d5 > 127 && Vi5(d5)) { - t12++; - continue; - } - break; - } - return t12; - } - } - function ko2(e10, t12) { - if (N6.assert(t12 >= 0), t12 === 0 || mr6(e10.charCodeAt(t12 - 1))) { - let r9 = e10.charCodeAt(t12); - if (t12 + ll3 < e10.length) { - for (let a = 0; a < ll3; a++) - if (e10.charCodeAt(t12 + a) !== r9) - return false; - return r9 === 61 || e10.charCodeAt(t12 + ll3) === 32; - } - } - return false; - } - function $s6(e10, t12, r9) { - r9 && r9(U8.Merge_conflict_marker_encountered, t12, ll3); - let a = e10.charCodeAt(t12), _10 = e10.length; - if (a === 60 || a === 62) - for (; t12 < _10 && !mr6(e10.charCodeAt(t12)); ) - t12++; - else - for (N6.assert(a === 124 || a === 61); t12 < _10; ) { - let p5 = e10.charCodeAt(t12); - if ((p5 === 61 || p5 === 62) && p5 !== a && ko2(e10, t12)) - break; - t12++; - } - return t12; - } - function xg3(e10, t12) { - return N6.assert(t12 === 0), Gd.test(e10); - } - function wg2(e10, t12) { - let r9 = Gd.exec(e10)[0]; - return t12 = t12 + r9.length, t12; - } - function Hd(e10, t12, r9, a, _10, p5, d5) { - let h5, l, v10, y5, C10 = false, S10 = a, k7 = d5; - if (r9 === 0) { - S10 = true; - let L7 = c4(t12); - L7 && (r9 = L7.length); - } - e: - for (; r9 >= 0 && r9 < t12.length; ) { - let L7 = t12.charCodeAt(r9); - switch (L7) { - case 13: - t12.charCodeAt(r9 + 1) === 10 && r9++; - case 10: - if (r9++, a) - break e; - S10 = true, C10 && (y5 = true); - continue; - case 9: - case 11: - case 12: - case 32: - r9++; - continue; - case 47: - let G10 = t12.charCodeAt(r9 + 1), K7 = false; - if (G10 === 47 || G10 === 42) { - let ue7 = G10 === 47 ? 2 : 3, Y10 = r9; - if (r9 += 2, G10 === 47) - for (; r9 < t12.length; ) { - if (mr6(t12.charCodeAt(r9))) { - K7 = true; - break; - } - r9++; - } - else - for (; r9 < t12.length; ) { - if (t12.charCodeAt(r9) === 42 && t12.charCodeAt(r9 + 1) === 47) { - r9 += 2; - break; - } - r9++; - } - if (S10) { - if (C10 && (k7 = _10(h5, l, v10, y5, p5, k7), !e10 && k7)) - return k7; - h5 = Y10, l = r9, v10 = ue7, y5 = K7, C10 = true; - } - continue; - } - break e; - default: - if (L7 > 127 && Vi5(L7)) { - C10 && mr6(L7) && (y5 = true), r9++; - continue; - } - break e; - } - } - return C10 && (k7 = _10(h5, l, v10, y5, p5, k7)), k7; - } - function WE(e10, t12, r9, a) { - return Hd(false, e10, t12, false, r9, a); - } - function VE(e10, t12, r9, a) { - return Hd(false, e10, t12, true, r9, a); - } - function a4(e10, t12, r9, a, _10) { - return Hd(true, e10, t12, false, r9, a, _10); - } - function o4(e10, t12, r9, a, _10) { - return Hd(true, e10, t12, true, r9, a, _10); - } - function s4(e10, t12, r9, a, _10, p5 = []) { - return p5.push({ kind: r9, pos: e10, end: t12, hasTrailingNewLine: a }), p5; - } - function Wo3(e10, t12) { - return a4(e10, t12, s4, void 0, void 0); - } - function _42(e10, t12) { - return o4(e10, t12, s4, void 0, void 0); - } - function c4(e10) { - let t12 = Gd.exec(e10); - if (t12) - return t12[0]; - } - function un6(e10, t12) { - return e10 >= 65 && e10 <= 90 || e10 >= 97 && e10 <= 122 || e10 === 36 || e10 === 95 || e10 > 127 && i4(e10, t12); - } - function Qa6(e10, t12, r9) { - return e10 >= 65 && e10 <= 90 || e10 >= 97 && e10 <= 122 || e10 >= 48 && e10 <= 57 || e10 === 36 || e10 === 95 || (r9 === 1 ? e10 === 45 || e10 === 58 : false) || e10 > 127 && FE(e10, t12); - } - function Cg2(e10, t12, r9) { - let a = cn6(e10, 0); - if (!un6(a, t12)) - return false; - for (let _10 = Yn5(a); _10 < e10.length; _10 += Yn5(a)) - if (!Qa6(a = cn6(e10, _10), t12, r9)) - return false; - return true; - } - function ns6(e10, t12, r9 = 0, a, _10, p5, d5) { - var h5 = a, l, v10, y5, C10, S10, k7, L7, G10, K7 = 0; - Ae7(h5, p5, d5); - var ue7 = { getTokenFullStart: () => y5, getStartPos: () => y5, getTokenEnd: () => l, getTextPos: () => l, getToken: () => S10, getTokenStart: () => C10, getTokenPos: () => C10, getTokenText: () => h5.substring(C10, l), getTokenValue: () => k7, hasUnicodeEscape: () => (L7 & 1024) !== 0, hasExtendedUnicodeEscape: () => (L7 & 8) !== 0, hasPrecedingLineBreak: () => (L7 & 1) !== 0, hasPrecedingJSDocComment: () => (L7 & 2) !== 0, isIdentifier: () => S10 === 80 || S10 > 118, isReservedWord: () => S10 >= 83 && S10 <= 118, isUnterminated: () => (L7 & 4) !== 0, getCommentDirectives: () => G10, getNumericLiteralFlags: () => L7 & 25584, getTokenFlags: () => L7, reScanGreaterToken: St8, reScanAsteriskEqualsToken: xn4, reScanSlashToken: Tr6, reScanTemplateToken: Ut5, reScanTemplateHeadOrNoSubstitutionTemplate: fr6, scanJsxIdentifier: Mr4, scanJsxAttributeValue: at7, reScanJsxAttributeValue: er8, reScanJsxToken: ht4, reScanLessThanToken: wn5, reScanHashToken: Tt6, reScanQuestionToken: Or5, reScanInvalidIdentifier: sr7, scanJsxToken: pt5, scanJsDocToken: tn7, scanJSDocCommentTextToken: Qt5, scan: Sn6, getText: Di7, clearCommentDirectives: qn5, setText: Ae7, setScriptTarget: oe8, setLanguageVariant: ge6, setOnError: q9, resetTokenState: Se9, setTextPos: Se9, setInJSDocType: nt7, tryScan: nn7, lookAhead: rn7, scanRange: Un5 }; - return N6.isDebugging && Object.defineProperty(ue7, "__debugShowCurrentPositionInText", { get: () => { - let z9 = ue7.getText(); - return z9.slice(0, ue7.getTokenFullStart()) + "\u2551" + z9.slice(ue7.getTokenFullStart()); - } }), ue7; - function Y10(z9, X10 = l, ee10, xe9) { - if (_10) { - let ke9 = l; - l = X10, _10(z9, ee10 || 0, xe9), l = ke9; - } - } - function B9() { - let z9 = l, X10 = false, ee10 = false, xe9 = ""; - for (; ; ) { - let ke9 = h5.charCodeAt(l); - if (ke9 === 95) { - L7 |= 512, X10 ? (X10 = false, ee10 = true, xe9 += h5.substring(z9, l)) : (L7 |= 16384, Y10(ee10 ? U8.Multiple_consecutive_numeric_separators_are_not_permitted : U8.Numeric_separators_are_not_allowed_here, l, 1)), l++, z9 = l; - continue; - } - if (Eo4(ke9)) { - X10 = true, ee10 = false, l++; - continue; - } - break; - } - return h5.charCodeAt(l - 1) === 95 && (L7 |= 16384, Y10(U8.Numeric_separators_are_not_allowed_here, l - 1, 1)), xe9 + h5.substring(z9, l); - } - function ae8() { - let z9 = l, X10; - if (h5.charCodeAt(l) === 48) - if (l++, h5.charCodeAt(l) === 95) - L7 |= 16896, Y10(U8.Numeric_separators_are_not_allowed_here, l, 1), l--, X10 = B9(); - else if (!Ze11()) - L7 |= 8192, X10 = "" + +k7; - else if (!k7) - X10 = "0"; - else { - k7 = "" + parseInt(k7, 8), L7 |= 32; - let lt5 = S10 === 41, yt7 = (lt5 ? "-" : "") + "0o" + (+k7).toString(8); - return lt5 && z9--, Y10(U8.Octal_literals_are_not_allowed_Use_the_syntax_0, z9, l - z9, yt7), 9; - } - else - X10 = B9(); - let ee10, xe9; - h5.charCodeAt(l) === 46 && (l++, ee10 = B9()); - let ke9 = l; - if (h5.charCodeAt(l) === 69 || h5.charCodeAt(l) === 101) { - l++, L7 |= 16, (h5.charCodeAt(l) === 43 || h5.charCodeAt(l) === 45) && l++; - let lt5 = l, yt7 = B9(); - yt7 ? (xe9 = h5.substring(ke9, lt5) + yt7, ke9 = l) : Y10(U8.Digit_expected); - } - let Le7; - if (L7 & 512 ? (Le7 = X10, ee10 && (Le7 += "." + ee10), xe9 && (Le7 += xe9)) : Le7 = h5.substring(z9, ke9), L7 & 8192) - return Y10(U8.Decimals_with_leading_zeros_are_not_allowed, z9, ke9 - z9), k7 = "" + +Le7, 9; - if (ee10 !== void 0 || L7 & 16) - return Ce10(z9, ee10 === void 0 && !!(L7 & 16)), k7 = "" + +Le7, 9; - { - k7 = Le7; - let lt5 = Tn3(); - return Ce10(z9), lt5; - } - } - function Ce10(z9, X10) { - if (!un6(cn6(h5, l), e10)) - return; - let ee10 = l, { length: xe9 } = Gt5(); - xe9 === 1 && h5[ee10] === "n" ? Y10(X10 ? U8.A_bigint_literal_cannot_use_exponential_notation : U8.A_bigint_literal_must_be_an_integer, z9, ee10 - z9 + 1) : (Y10(U8.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, ee10, xe9), l = ee10); - } - function Ze11() { - let z9 = l, X10 = true; - for (; Eo4(h5.charCodeAt(l)); ) - If(h5.charCodeAt(l)) || (X10 = false), l++; - return k7 = h5.substring(z9, l), X10; - } - function qe8(z9, X10) { - let ee10 = it6(z9, false, X10); - return ee10 ? parseInt(ee10, 16) : -1; - } - function rt8(z9, X10) { - return it6(z9, true, X10); - } - function it6(z9, X10, ee10) { - let xe9 = [], ke9 = false, Le7 = false; - for (; xe9.length < z9 || X10; ) { - let lt5 = h5.charCodeAt(l); - if (ee10 && lt5 === 95) { - L7 |= 512, ke9 ? (ke9 = false, Le7 = true) : Y10(Le7 ? U8.Multiple_consecutive_numeric_separators_are_not_permitted : U8.Numeric_separators_are_not_allowed_here, l, 1), l++; - continue; - } - if (ke9 = ee10, lt5 >= 65 && lt5 <= 70) - lt5 += 97 - 65; - else if (!(lt5 >= 48 && lt5 <= 57 || lt5 >= 97 && lt5 <= 102)) - break; - xe9.push(lt5), l++, Le7 = false; - } - return xe9.length < z9 && (xe9 = []), h5.charCodeAt(l - 1) === 95 && Y10(U8.Numeric_separators_are_not_allowed_here, l - 1, 1), String.fromCharCode(...xe9); - } - function Ir7(z9 = false) { - let X10 = h5.charCodeAt(l); - l++; - let ee10 = "", xe9 = l; - for (; ; ) { - if (l >= v10) { - ee10 += h5.substring(xe9, l), L7 |= 4, Y10(U8.Unterminated_string_literal); - break; - } - let ke9 = h5.charCodeAt(l); - if (ke9 === X10) { - ee10 += h5.substring(xe9, l), l++; - break; - } - if (ke9 === 92 && !z9) { - ee10 += h5.substring(xe9, l), ee10 += ci6(true), xe9 = l; - continue; - } - if (mr6(ke9) && !z9) { - ee10 += h5.substring(xe9, l), L7 |= 4, Y10(U8.Unterminated_string_literal); - break; - } - l++; - } - return ee10; - } - function ar6(z9) { - let X10 = h5.charCodeAt(l) === 96; - l++; - let ee10 = l, xe9 = "", ke9; - for (; ; ) { - if (l >= v10) { - xe9 += h5.substring(ee10, l), L7 |= 4, Y10(U8.Unterminated_template_literal), ke9 = X10 ? 15 : 18; - break; - } - let Le7 = h5.charCodeAt(l); - if (Le7 === 96) { - xe9 += h5.substring(ee10, l), l++, ke9 = X10 ? 15 : 18; - break; - } - if (Le7 === 36 && l + 1 < v10 && h5.charCodeAt(l + 1) === 123) { - xe9 += h5.substring(ee10, l), l += 2, ke9 = X10 ? 16 : 17; - break; - } - if (Le7 === 92) { - xe9 += h5.substring(ee10, l), xe9 += ci6(z9), ee10 = l; - continue; - } - if (Le7 === 13) { - xe9 += h5.substring(ee10, l), l++, l < v10 && h5.charCodeAt(l) === 10 && l++, xe9 += ` -`, ee10 = l; - continue; - } - l++; - } - return N6.assert(ke9 !== void 0), k7 = xe9, ke9; - } - function ci6(z9) { - let X10 = l; - if (l++, l >= v10) - return Y10(U8.Unexpected_end_of_text), ""; - let ee10 = h5.charCodeAt(l); - switch (l++, ee10) { - case 48: - if (l >= v10 || !Eo4(h5.charCodeAt(l))) - return "\0"; - case 49: - case 50: - case 51: - l < v10 && If(h5.charCodeAt(l)) && l++; - case 52: - case 53: - case 54: - case 55: - if (l < v10 && If(h5.charCodeAt(l)) && l++, L7 |= 2048, z9) { - let xe9 = parseInt(h5.substring(X10 + 1, l), 8); - return Y10(U8.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, X10, l - X10, "\\x" + qv(xe9.toString(16), 2, "0")), String.fromCharCode(xe9); - } - return h5.substring(X10, l); - case 56: - case 57: - return L7 |= 2048, z9 ? (Y10(U8.Escape_sequence_0_is_not_allowed, X10, l - X10, h5.substring(X10, l)), String.fromCharCode(ee10)) : h5.substring(X10, l); - case 98: - return "\b"; - case 116: - return " "; - case 110: - return ` -`; - case 118: - return "\v"; - case 102: - return "\f"; - case 114: - return "\r"; - case 39: - return "'"; - case 34: - return '"'; - case 117: - if (l < v10 && h5.charCodeAt(l) === 123) { - l++; - let xe9 = rt8(1, false), ke9 = xe9 ? parseInt(xe9, 16) : -1; - return ke9 < 0 ? (L7 |= 2048, z9 && Y10(U8.Hexadecimal_digit_expected), h5.substring(X10, l)) : qE(ke9) ? l >= v10 ? (L7 |= 2048, z9 && Y10(U8.Unexpected_end_of_text), h5.substring(X10, l)) : h5.charCodeAt(l) !== 125 ? (L7 |= 2048, z9 && Y10(U8.Unterminated_Unicode_escape_sequence), h5.substring(X10, l)) : (l++, L7 |= 8, Nf(ke9)) : (L7 |= 2048, z9 && Y10(U8.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive), h5.substring(X10, l)); - } - for (; l < X10 + 6; l++) - if (!(l < v10 && jb(h5.charCodeAt(l)))) - return L7 |= 2048, z9 && Y10(U8.Hexadecimal_digit_expected), h5.substring(X10, l); - return L7 |= 1024, String.fromCharCode(parseInt(h5.substring(X10 + 2, l), 16)); - case 120: - for (; l < X10 + 4; l++) - if (!(l < v10 && jb(h5.charCodeAt(l)))) - return L7 |= 2048, z9 && Y10(U8.Hexadecimal_digit_expected), h5.substring(X10, l); - return L7 |= 4096, String.fromCharCode(parseInt(h5.substring(X10 + 2, l), 16)); - case 13: - l < v10 && h5.charCodeAt(l) === 10 && l++; - case 10: - case 8232: - case 8233: - return ""; - default: - return String.fromCharCode(ee10); - } - } - function or7() { - let z9 = rt8(1, false), X10 = z9 ? parseInt(z9, 16) : -1, ee10 = false; - return X10 < 0 ? (Y10(U8.Hexadecimal_digit_expected), ee10 = true) : X10 > 1114111 && (Y10(U8.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive), ee10 = true), l >= v10 ? (Y10(U8.Unexpected_end_of_text), ee10 = true) : h5.charCodeAt(l) === 125 ? l++ : (Y10(U8.Unterminated_Unicode_escape_sequence), ee10 = true), ee10 ? "" : Nf(X10); - } - function Nr7() { - if (l + 5 < v10 && h5.charCodeAt(l + 1) === 117) { - let z9 = l; - l += 2; - let X10 = qe8(4, false); - return l = z9, X10; - } - return -1; - } - function Ge9() { - if (cn6(h5, l + 1) === 117 && cn6(h5, l + 2) === 123) { - let z9 = l; - l += 3; - let X10 = rt8(1, false), ee10 = X10 ? parseInt(X10, 16) : -1; - return l = z9, ee10; - } - return -1; - } - function Gt5() { - let z9 = "", X10 = l; - for (; l < v10; ) { - let ee10 = cn6(h5, l); - if (Qa6(ee10, e10)) - l += Yn5(ee10); - else if (ee10 === 92) { - if (ee10 = Ge9(), ee10 >= 0 && Qa6(ee10, e10)) { - l += 3, L7 |= 8, z9 += or7(), X10 = l; - continue; - } - if (ee10 = Nr7(), !(ee10 >= 0 && Qa6(ee10, e10))) - break; - L7 |= 1024, z9 += h5.substring(X10, l), z9 += Nf(ee10), l += 6, X10 = l; - } else - break; - } - return z9 += h5.substring(X10, l), z9; - } - function Ur5() { - let z9 = k7.length; - if (z9 >= 2 && z9 <= 12) { - let X10 = k7.charCodeAt(0); - if (X10 >= 97 && X10 <= 122) { - let ee10 = l4.get(k7); - if (ee10 !== void 0) - return S10 = ee10; - } - } - return S10 = 80; - } - function Xt5(z9) { - let X10 = "", ee10 = false, xe9 = false; - for (; ; ) { - let ke9 = h5.charCodeAt(l); - if (ke9 === 95) { - L7 |= 512, ee10 ? (ee10 = false, xe9 = true) : Y10(xe9 ? U8.Multiple_consecutive_numeric_separators_are_not_permitted : U8.Numeric_separators_are_not_allowed_here, l, 1), l++; - continue; - } - if (ee10 = true, !Eo4(ke9) || ke9 - 48 >= z9) - break; - X10 += h5[l], l++, xe9 = false; - } - return h5.charCodeAt(l - 1) === 95 && Y10(U8.Numeric_separators_are_not_allowed_here, l - 1, 1), X10; - } - function Tn3() { - return h5.charCodeAt(l) === 110 ? (k7 += "n", L7 & 384 && (k7 = Sm(k7) + "n"), l++, 10) : (k7 = "" + (L7 & 128 ? parseInt(k7.slice(2), 2) : L7 & 256 ? parseInt(k7.slice(2), 8) : +k7), 9); - } - function Sn6() { - y5 = l, L7 = 0; - let z9 = false; - for (; ; ) { - if (C10 = l, l >= v10) - return S10 = 1; - let X10 = cn6(h5, l); - if (l === 0) { - if (X10 === 65533) - return Y10(U8.File_appears_to_be_binary), l = v10, S10 = 8; - if (X10 === 35 && xg3(h5, l)) { - if (l = wg2(h5, l), t12) - continue; - return S10 = 6; - } - } - switch (X10) { - case 10: - case 13: - if (L7 |= 1, t12) { - l++; - continue; - } else - return X10 === 13 && l + 1 < v10 && h5.charCodeAt(l + 1) === 10 ? l += 2 : l++, S10 = 4; - case 9: - case 11: - case 12: - case 32: - case 160: - case 5760: - case 8192: - case 8193: - case 8194: - case 8195: - case 8196: - case 8197: - case 8198: - case 8199: - case 8200: - case 8201: - case 8202: - case 8203: - case 8239: - case 8287: - case 12288: - case 65279: - if (t12) { - l++; - continue; - } else { - for (; l < v10 && Io2(h5.charCodeAt(l)); ) - l++; - return S10 = 5; - } - case 33: - return h5.charCodeAt(l + 1) === 61 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 38) : (l += 2, S10 = 36) : (l++, S10 = 54); - case 34: - case 39: - return k7 = Ir7(), S10 = 11; - case 96: - return S10 = ar6(false); - case 37: - return h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 70) : (l++, S10 = 45); - case 38: - return h5.charCodeAt(l + 1) === 38 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 77) : (l += 2, S10 = 56) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 74) : (l++, S10 = 51); - case 40: - return l++, S10 = 21; - case 41: - return l++, S10 = 22; - case 42: - if (h5.charCodeAt(l + 1) === 61) - return l += 2, S10 = 67; - if (h5.charCodeAt(l + 1) === 42) - return h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 68) : (l += 2, S10 = 43); - if (l++, K7 && !z9 && L7 & 1) { - z9 = true; - continue; - } - return S10 = 42; - case 43: - return h5.charCodeAt(l + 1) === 43 ? (l += 2, S10 = 46) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 65) : (l++, S10 = 40); - case 44: - return l++, S10 = 28; - case 45: - return h5.charCodeAt(l + 1) === 45 ? (l += 2, S10 = 47) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 66) : (l++, S10 = 41); - case 46: - return Eo4(h5.charCodeAt(l + 1)) ? (ae8(), S10 = 9) : h5.charCodeAt(l + 1) === 46 && h5.charCodeAt(l + 2) === 46 ? (l += 3, S10 = 26) : (l++, S10 = 25); - case 47: - if (h5.charCodeAt(l + 1) === 47) { - for (l += 2; l < v10 && !mr6(h5.charCodeAt(l)); ) - l++; - if (G10 = vt9(G10, h5.slice(C10, l), y42, C10), t12) - continue; - return S10 = 2; - } - if (h5.charCodeAt(l + 1) === 42) { - l += 2, h5.charCodeAt(l) === 42 && h5.charCodeAt(l + 1) !== 47 && (L7 |= 2); - let yt7 = false, jt5 = C10; - for (; l < v10; ) { - let qr7 = h5.charCodeAt(l); - if (qr7 === 42 && h5.charCodeAt(l + 1) === 47) { - l += 2, yt7 = true; - break; - } - l++, mr6(qr7) && (jt5 = l, L7 |= 1); - } - if (G10 = vt9(G10, h5.slice(jt5, l), g4, jt5), yt7 || Y10(U8.Asterisk_Slash_expected), t12) - continue; - return yt7 || (L7 |= 4), S10 = 3; - } - return h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 69) : (l++, S10 = 44); - case 48: - if (l + 2 < v10 && (h5.charCodeAt(l + 1) === 88 || h5.charCodeAt(l + 1) === 120)) - return l += 2, k7 = rt8(1, true), k7 || (Y10(U8.Hexadecimal_digit_expected), k7 = "0"), k7 = "0x" + k7, L7 |= 64, S10 = Tn3(); - if (l + 2 < v10 && (h5.charCodeAt(l + 1) === 66 || h5.charCodeAt(l + 1) === 98)) - return l += 2, k7 = Xt5(2), k7 || (Y10(U8.Binary_digit_expected), k7 = "0"), k7 = "0b" + k7, L7 |= 128, S10 = Tn3(); - if (l + 2 < v10 && (h5.charCodeAt(l + 1) === 79 || h5.charCodeAt(l + 1) === 111)) - return l += 2, k7 = Xt5(8), k7 || (Y10(U8.Octal_digit_expected), k7 = "0"), k7 = "0o" + k7, L7 |= 256, S10 = Tn3(); - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - return S10 = ae8(); - case 58: - return l++, S10 = 59; - case 59: - return l++, S10 = 27; - case 60: - if (ko2(h5, l)) { - if (l = $s6(h5, l, Y10), t12) - continue; - return S10 = 7; - } - return h5.charCodeAt(l + 1) === 60 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 71) : (l += 2, S10 = 48) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 33) : r9 === 1 && h5.charCodeAt(l + 1) === 47 && h5.charCodeAt(l + 2) !== 42 ? (l += 2, S10 = 31) : (l++, S10 = 30); - case 61: - if (ko2(h5, l)) { - if (l = $s6(h5, l, Y10), t12) - continue; - return S10 = 7; - } - return h5.charCodeAt(l + 1) === 61 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 37) : (l += 2, S10 = 35) : h5.charCodeAt(l + 1) === 62 ? (l += 2, S10 = 39) : (l++, S10 = 64); - case 62: - if (ko2(h5, l)) { - if (l = $s6(h5, l, Y10), t12) - continue; - return S10 = 7; - } - return l++, S10 = 32; - case 63: - return h5.charCodeAt(l + 1) === 46 && !Eo4(h5.charCodeAt(l + 2)) ? (l += 2, S10 = 29) : h5.charCodeAt(l + 1) === 63 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 78) : (l += 2, S10 = 61) : (l++, S10 = 58); - case 91: - return l++, S10 = 23; - case 93: - return l++, S10 = 24; - case 94: - return h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 79) : (l++, S10 = 53); - case 123: - return l++, S10 = 19; - case 124: - if (ko2(h5, l)) { - if (l = $s6(h5, l, Y10), t12) - continue; - return S10 = 7; - } - return h5.charCodeAt(l + 1) === 124 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 76) : (l += 2, S10 = 57) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 75) : (l++, S10 = 52); - case 125: - return l++, S10 = 20; - case 126: - return l++, S10 = 55; - case 64: - return l++, S10 = 60; - case 92: - let ee10 = Ge9(); - if (ee10 >= 0 && un6(ee10, e10)) - return l += 3, L7 |= 8, k7 = or7() + Gt5(), S10 = Ur5(); - let xe9 = Nr7(); - return xe9 >= 0 && un6(xe9, e10) ? (l += 6, L7 |= 1024, k7 = String.fromCharCode(xe9) + Gt5(), S10 = Ur5()) : (Y10(U8.Invalid_character), l++, S10 = 0); - case 35: - if (l !== 0 && h5[l + 1] === "!") - return Y10(U8.can_only_be_used_at_the_start_of_a_file), l++, S10 = 0; - let ke9 = cn6(h5, l + 1); - if (ke9 === 92) { - l++; - let yt7 = Ge9(); - if (yt7 >= 0 && un6(yt7, e10)) - return l += 3, L7 |= 8, k7 = "#" + or7() + Gt5(), S10 = 81; - let jt5 = Nr7(); - if (jt5 >= 0 && un6(jt5, e10)) - return l += 6, L7 |= 1024, k7 = "#" + String.fromCharCode(jt5) + Gt5(), S10 = 81; - l--; - } - return un6(ke9, e10) ? (l++, $t8(ke9, e10)) : (k7 = "#", Y10(U8.Invalid_character, l++, Yn5(X10))), S10 = 81; - default: - let Le7 = $t8(X10, e10); - if (Le7) - return S10 = Le7; - if (Io2(X10)) { - l += Yn5(X10); - continue; - } else if (mr6(X10)) { - L7 |= 1, l += Yn5(X10); - continue; - } - let lt5 = Yn5(X10); - return Y10(U8.Invalid_character, l, lt5), l += lt5, S10 = 0; - } - } - } - function sr7() { - N6.assert(S10 === 0, "'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."), l = C10 = y5, L7 = 0; - let z9 = cn6(h5, l), X10 = $t8(z9, 99); - return X10 ? S10 = X10 : (l += Yn5(z9), S10); - } - function $t8(z9, X10) { - let ee10 = z9; - if (un6(ee10, X10)) { - for (l += Yn5(ee10); l < v10 && Qa6(ee10 = cn6(h5, l), X10); ) - l += Yn5(ee10); - return k7 = h5.substring(C10, l), ee10 === 92 && (k7 += Gt5()), Ur5(); - } - } - function St8() { - if (S10 === 32) { - if (h5.charCodeAt(l) === 62) - return h5.charCodeAt(l + 1) === 62 ? h5.charCodeAt(l + 2) === 61 ? (l += 3, S10 = 73) : (l += 2, S10 = 50) : h5.charCodeAt(l + 1) === 61 ? (l += 2, S10 = 72) : (l++, S10 = 49); - if (h5.charCodeAt(l) === 61) - return l++, S10 = 34; - } - return S10; - } - function xn4() { - return N6.assert(S10 === 67, "'reScanAsteriskEqualsToken' should only be called on a '*='"), l = C10 + 1, S10 = 64; - } - function Tr6() { - if (S10 === 44 || S10 === 69) { - let z9 = C10 + 1, X10 = false, ee10 = false; - for (; ; ) { - if (z9 >= v10) { - L7 |= 4, Y10(U8.Unterminated_regular_expression_literal); - break; - } - let xe9 = h5.charCodeAt(z9); - if (mr6(xe9)) { - L7 |= 4, Y10(U8.Unterminated_regular_expression_literal); - break; - } - if (X10) - X10 = false; - else if (xe9 === 47 && !ee10) { - z9++; - break; - } else - xe9 === 91 ? ee10 = true : xe9 === 92 ? X10 = true : xe9 === 93 && (ee10 = false); - z9++; - } - for (; z9 < v10 && Qa6(h5.charCodeAt(z9), e10); ) - z9++; - l = z9, k7 = h5.substring(C10, l), S10 = 14; - } - return S10; - } - function vt9(z9, X10, ee10, xe9) { - let ke9 = ct7(gl3(X10), ee10); - return ke9 === void 0 ? z9 : xt8(z9, { range: { pos: xe9, end: l }, type: ke9 }); - } - function ct7(z9, X10) { - let ee10 = X10.exec(z9); - if (ee10) - switch (ee10[1]) { - case "ts-expect-error": - return 0; - case "ts-ignore": - return 1; - } - } - function Ut5(z9) { - return l = C10, S10 = ar6(!z9); - } - function fr6() { - return l = C10, S10 = ar6(true); - } - function ht4(z9 = true) { - return l = C10 = y5, S10 = pt5(z9); - } - function wn5() { - return S10 === 48 ? (l = C10 + 1, S10 = 30) : S10; - } - function Tt6() { - return S10 === 81 ? (l = C10 + 1, S10 = 63) : S10; - } - function Or5() { - return N6.assert(S10 === 61, "'reScanQuestionToken' should only be called on a '??'"), l = C10 + 1, S10 = 58; - } - function pt5(z9 = true) { - if (y5 = C10 = l, l >= v10) - return S10 = 1; - let X10 = h5.charCodeAt(l); - if (X10 === 60) - return h5.charCodeAt(l + 1) === 47 ? (l += 2, S10 = 31) : (l++, S10 = 30); - if (X10 === 123) - return l++, S10 = 19; - let ee10 = 0; - for (; l < v10 && (X10 = h5.charCodeAt(l), X10 !== 123); ) { - if (X10 === 60) { - if (ko2(h5, l)) - return l = $s6(h5, l, Y10), S10 = 7; - break; - } - if (X10 === 62 && Y10(U8.Unexpected_token_Did_you_mean_or_gt, l, 1), X10 === 125 && Y10(U8.Unexpected_token_Did_you_mean_or_rbrace, l, 1), mr6(X10) && ee10 === 0) - ee10 = -1; - else { - if (!z9 && mr6(X10) && ee10 > 0) - break; - Vi5(X10) || (ee10 = l); - } - l++; - } - return k7 = h5.substring(y5, l), ee10 === -1 ? 13 : 12; - } - function Mr4() { - if (kt8(S10)) { - for (; l < v10; ) { - if (h5.charCodeAt(l) === 45) { - k7 += "-", l++; - continue; - } - let X10 = l; - if (k7 += Gt5(), l === X10) - break; - } - return Ur5(); - } - return S10; - } - function at7() { - switch (y5 = l, h5.charCodeAt(l)) { - case 34: - case 39: - return k7 = Ir7(true), S10 = 11; - default: - return Sn6(); - } - } - function er8() { - return l = C10 = y5, at7(); - } - function Qt5(z9) { - if (y5 = C10 = l, L7 = 0, l >= v10) - return S10 = 1; - for (let X10 = h5.charCodeAt(l); l < v10 && !mr6(X10) && X10 !== 96; X10 = cn6(h5, ++l)) - if (!z9) { - if (X10 === 123) - break; - if (X10 === 64 && l - 1 >= 0 && Io2(h5.charCodeAt(l - 1)) && !(l + 1 < v10 && Vi5(h5.charCodeAt(l + 1)))) - break; - } - return l === C10 ? tn7() : (k7 = h5.substring(C10, l), S10 = 82); - } - function tn7() { - if (y5 = C10 = l, L7 = 0, l >= v10) - return S10 = 1; - let z9 = cn6(h5, l); - switch (l += Yn5(z9), z9) { - case 9: - case 11: - case 12: - case 32: - for (; l < v10 && Io2(h5.charCodeAt(l)); ) - l++; - return S10 = 5; - case 64: - return S10 = 60; - case 13: - h5.charCodeAt(l) === 10 && l++; - case 10: - return L7 |= 1, S10 = 4; - case 42: - return S10 = 42; - case 123: - return S10 = 19; - case 125: - return S10 = 20; - case 91: - return S10 = 23; - case 93: - return S10 = 24; - case 60: - return S10 = 30; - case 62: - return S10 = 32; - case 61: - return S10 = 64; - case 44: - return S10 = 28; - case 46: - return S10 = 25; - case 96: - return S10 = 62; - case 35: - return S10 = 63; - case 92: - l--; - let X10 = Ge9(); - if (X10 >= 0 && un6(X10, e10)) - return l += 3, L7 |= 8, k7 = or7() + Gt5(), S10 = Ur5(); - let ee10 = Nr7(); - return ee10 >= 0 && un6(ee10, e10) ? (l += 6, L7 |= 1024, k7 = String.fromCharCode(ee10) + Gt5(), S10 = Ur5()) : (l++, S10 = 0); - } - if (un6(z9, e10)) { - let X10 = z9; - for (; l < v10 && Qa6(X10 = cn6(h5, l), e10) || h5.charCodeAt(l) === 45; ) - l += Yn5(X10); - return k7 = h5.substring(C10, l), X10 === 92 && (k7 += Gt5()), S10 = Ur5(); - } else - return S10 = 0; - } - function Bn4(z9, X10) { - let ee10 = l, xe9 = y5, ke9 = C10, Le7 = S10, lt5 = k7, yt7 = L7, jt5 = z9(); - return (!jt5 || X10) && (l = ee10, y5 = xe9, C10 = ke9, S10 = Le7, k7 = lt5, L7 = yt7), jt5; - } - function Un5(z9, X10, ee10) { - let xe9 = v10, ke9 = l, Le7 = y5, lt5 = C10, yt7 = S10, jt5 = k7, qr7 = L7, na4 = G10; - Ae7(h5, z9, X10); - let Cn4 = ee10(); - return v10 = xe9, l = ke9, y5 = Le7, C10 = lt5, S10 = yt7, k7 = jt5, L7 = qr7, G10 = na4, Cn4; - } - function rn7(z9) { - return Bn4(z9, true); - } - function nn7(z9) { - return Bn4(z9, false); - } - function Di7() { - return h5; - } - function qn5() { - G10 = void 0; - } - function Ae7(z9, X10, ee10) { - h5 = z9 || "", v10 = ee10 === void 0 ? h5.length : X10 + ee10, Se9(X10 || 0); - } - function q9(z9) { - _10 = z9; - } - function oe8(z9) { - e10 = z9; - } - function ge6(z9) { - r9 = z9; - } - function Se9(z9) { - N6.assert(z9 >= 0), l = z9, y5 = z9, C10 = z9, S10 = 0, k7 = void 0, L7 = 0; - } - function nt7(z9) { - K7 += z9 ? 1 : -1; - } - } - function Yn5(e10) { - return e10 >= 65536 ? 2 : 1; - } - function HE(e10) { - if (N6.assert(0 <= e10 && e10 <= 1114111), e10 <= 65535) - return String.fromCharCode(e10); - let t12 = Math.floor((e10 - 65536) / 1024) + 55296, r9 = (e10 - 65536) % 1024 + 56320; - return String.fromCharCode(t12, r9); - } - function Nf(e10) { - return v42(e10); - } - var cl3, l4, h0, u4, p4, f4, d42, m4, h4, y42, g4, b42, ll3, Gd, cn6, v42, GE = Vt4({ "src/compiler/scanner.ts"() { - "use strict"; - Dr5(), cl3 = { abstract: 128, accessor: 129, any: 133, as: 130, asserts: 131, assert: 132, bigint: 163, boolean: 136, break: 83, case: 84, catch: 85, class: 86, continue: 88, const: 87, constructor: 137, debugger: 89, declare: 138, default: 90, delete: 91, do: 92, else: 93, enum: 94, export: 95, extends: 96, false: 97, finally: 98, for: 99, from: 161, function: 100, get: 139, if: 101, implements: 119, import: 102, in: 103, infer: 140, instanceof: 104, interface: 120, intrinsic: 141, is: 142, keyof: 143, let: 121, module: 144, namespace: 145, never: 146, new: 105, null: 106, number: 150, object: 151, package: 122, private: 123, protected: 124, public: 125, override: 164, out: 147, readonly: 148, require: 149, global: 162, return: 107, satisfies: 152, set: 153, static: 126, string: 154, super: 108, switch: 109, symbol: 155, this: 110, throw: 111, true: 112, try: 113, type: 156, typeof: 114, undefined: 157, unique: 158, unknown: 159, using: 160, var: 115, void: 116, while: 117, with: 118, yield: 127, async: 134, await: 135, of: 165 }, l4 = new Map(Object.entries(cl3)), h0 = new Map(Object.entries({ ...cl3, "{": 19, "}": 20, "(": 21, ")": 22, "[": 23, "]": 24, ".": 25, "...": 26, ";": 27, ",": 28, "<": 30, ">": 32, "<=": 33, ">=": 34, "==": 35, "!=": 36, "===": 37, "!==": 38, "=>": 39, "+": 40, "-": 41, "**": 43, "*": 42, "/": 44, "%": 45, "++": 46, "--": 47, "<<": 48, ">": 49, ">>>": 50, "&": 51, "|": 52, "^": 53, "!": 54, "~": 55, "&&": 56, "||": 57, "?": 58, "??": 61, "?.": 29, ":": 59, "=": 64, "+=": 65, "-=": 66, "*=": 67, "**=": 68, "/=": 69, "%=": 70, "<<=": 71, ">>=": 72, ">>>=": 73, "&=": 74, "|=": 75, "^=": 79, "||=": 76, "&&=": 77, "??=": 78, "@": 60, "#": 63, "`": 62 })), u4 = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], p4 = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], f4 = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], d42 = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500], m4 = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2208, 2228, 2230, 2237, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69376, 69404, 69415, 69415, 69424, 69445, 69600, 69622, 69635, 69687, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70751, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71680, 71723, 71840, 71903, 71935, 71935, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 123136, 123180, 123191, 123197, 123214, 123214, 123584, 123627, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101], h4 = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2208, 2228, 2230, 2237, 2259, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3328, 3331, 3333, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7673, 7675, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40943, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42943, 42946, 42950, 42999, 43047, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43879, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69376, 69404, 69415, 69415, 69424, 69456, 69600, 69622, 69632, 69702, 69734, 69743, 69759, 69818, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69958, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70096, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70206, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70751, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71680, 71738, 71840, 71913, 71935, 71935, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72384, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73728, 74649, 74752, 74862, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101106, 110592, 110878, 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123584, 123641, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999], y42 = /^\/\/\/?\s*@(ts-expect-error|ts-ignore)/, g4 = /^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/, b42 = BE(h0), ll3 = 7, Gd = /^#!.*/, cn6 = String.prototype.codePointAt ? (e10, t12) => e10.codePointAt(t12) : function(t12, r9) { - let a = t12.length; - if (r9 < 0 || r9 >= a) - return; - let _10 = t12.charCodeAt(r9); - if (_10 >= 55296 && _10 <= 56319 && a > r9 + 1) { - let p5 = t12.charCodeAt(r9 + 1); - if (p5 >= 56320 && p5 <= 57343) - return (_10 - 55296) * 1024 + p5 - 56320 + 65536; - } - return _10; - }, v42 = String.fromCodePoint ? (e10) => String.fromCodePoint(e10) : HE; - } }); - function XE(e10) { - return rs6(e10) || v_(e10); - } - function $E(e10) { - return wv(e10, F23); - } - function T4(e10) { - switch (Ql3(e10)) { - case 99: - return "lib.esnext.full.d.ts"; - case 9: - return "lib.es2022.full.d.ts"; - case 8: - return "lib.es2021.full.d.ts"; - case 7: - return "lib.es2020.full.d.ts"; - case 6: - return "lib.es2019.full.d.ts"; - case 5: - return "lib.es2018.full.d.ts"; - case 4: - return "lib.es2017.full.d.ts"; - case 3: - return "lib.es2016.full.d.ts"; - case 2: - return "lib.es6.d.ts"; - default: - return "lib.d.ts"; - } - } - function Kt6(e10) { - return e10.start + e10.length; - } - function S42(e10) { - return e10.length === 0; - } - function QE(e10, t12) { - return t12 >= e10.start && t12 < Kt6(e10); - } - function YE2(e10, t12) { - return t12 >= e10.pos && t12 <= e10.end; - } - function KE(e10, t12) { - return t12.start >= e10.start && Kt6(t12) <= Kt6(e10); - } - function ZE(e10, t12) { - return x42(e10, t12) !== void 0; - } - function x42(e10, t12) { - let r9 = w4(e10, t12); - return r9 && r9.length === 0 ? void 0 : r9; - } - function eA(e10, t12) { - return Eg2(e10.start, e10.length, t12.start, t12.length); - } - function tA(e10, t12, r9) { - return Eg2(e10.start, e10.length, t12, r9); - } - function Eg2(e10, t12, r9, a) { - let _10 = e10 + t12, p5 = r9 + a; - return r9 <= _10 && p5 >= e10; - } - function rA(e10, t12) { - return t12 <= Kt6(e10) && t12 >= e10.start; - } - function w4(e10, t12) { - let r9 = Math.max(e10.start, t12.start), a = Math.min(Kt6(e10), Kt6(t12)); - return r9 <= a ? Hi5(r9, a) : void 0; - } - function w_(e10, t12) { - if (e10 < 0) - throw new Error("start < 0"); - if (t12 < 0) - throw new Error("length < 0"); - return { start: e10, length: t12 }; - } - function Hi5(e10, t12) { - return w_(e10, t12 - e10); - } - function Qs6(e10) { - return w_(e10.span.start, e10.newLength); - } - function C42(e10) { - return S42(e10.span) && e10.newLength === 0; - } - function Xd(e10, t12) { - if (t12 < 0) - throw new Error("newLength < 0"); - return { span: e10, newLength: t12 }; - } - function nA(e10) { - if (e10.length === 0) - return Vg; - if (e10.length === 1) - return e10[0]; - let t12 = e10[0], r9 = t12.span.start, a = Kt6(t12.span), _10 = r9 + t12.newLength; - for (let p5 = 1; p5 < e10.length; p5++) { - let d5 = e10[p5], h5 = r9, l = a, v10 = _10, y5 = d5.span.start, C10 = Kt6(d5.span), S10 = y5 + d5.newLength; - r9 = Math.min(h5, y5), a = Math.max(l, l + (C10 - v10)), _10 = Math.max(S10, S10 + (v10 - C10)); - } - return Xd(Hi5(r9, a), _10 - r9); - } - function iA(e10) { - if (e10 && e10.kind === 168) { - for (let t12 = e10; t12; t12 = t12.parent) - if (Gi5(t12) || dn5(t12) || t12.kind === 264) - return t12; - } - } - function E42(e10, t12) { - return Ma3(e10) && gr6(e10, 16476) && t12.kind === 176; - } - function A42(e10) { - return im(e10) ? so3(e10.elements, k4) : false; - } - function k4(e10) { - return Pm(e10) ? true : A42(e10.name); - } - function D42(e10) { - let t12 = e10.parent; - for (; nu4(t12.parent); ) - t12 = t12.parent.parent; - return t12.parent; - } - function Ag(e10, t12) { - nu4(e10) && (e10 = D42(e10)); - let r9 = t12(e10); - return e10.kind === 260 && (e10 = e10.parent), e10 && e10.kind === 261 && (r9 |= t12(e10), e10 = e10.parent), e10 && e10.kind === 243 && (r9 |= t12(e10)), r9; - } - function $d(e10) { - return Ag(e10, bm); - } - function aA(e10) { - return Ag(e10, cS); - } - function C_(e10) { - return Ag(e10, oA); - } - function oA(e10) { - return e10.flags; - } - function sA(e10, t12, r9) { - let a = e10.toLowerCase(), _10 = /^([a-z]+)([_-]([a-z]+))?$/.exec(a); - if (!_10) { - r9 && r9.push(fl2(U8.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, "en", "ja-jp")); - return; - } - let p5 = _10[1], d5 = _10[3]; - es7(Hg, a) && !h5(p5, d5, r9) && h5(p5, void 0, r9), Lv(e10); - function h5(l, v10, y5) { - let C10 = pn6(t12.getExecutingFilePath()), S10 = $i5(C10), k7 = hr5(S10, l); - if (v10 && (k7 = k7 + "-" + v10), k7 = t12.resolvePath(hr5(k7, "diagnosticMessages.generated.json")), !t12.fileExists(k7)) - return false; - let L7 = ""; - try { - L7 = t12.readFile(k7); - } catch { - return y5 && y5.push(fl2(U8.Unable_to_open_file_0, k7)), false; - } - try { - NS(JSON.parse(L7)); - } catch { - return y5 && y5.push(fl2(U8.Corrupted_locale_file_0, k7)), false; - } - return true; - } - } - function jl3(e10, t12) { - if (e10) - for (; e10.original !== void 0; ) - e10 = e10.original; - return !e10 || !t12 || t12(e10) ? e10 : void 0; - } - function Kr6(e10, t12) { - for (; e10; ) { - let r9 = t12(e10); - if (r9 === "quit") - return; - if (r9) - return e10; - e10 = e10.parent; - } - } - function Tl3(e10) { - return (e10.flags & 16) === 0; - } - function Fl3(e10, t12) { - if (e10 === void 0 || Tl3(e10)) - return e10; - for (e10 = e10.original; e10; ) { - if (Tl3(e10)) - return !t12 || t12(e10) ? e10 : void 0; - e10 = e10.original; - } - } - function Mn5(e10) { - return e10.length >= 2 && e10.charCodeAt(0) === 95 && e10.charCodeAt(1) === 95 ? "_" + e10 : e10; - } - function Vo3(e10) { - let t12 = e10; - return t12.length >= 3 && t12.charCodeAt(0) === 95 && t12.charCodeAt(1) === 95 && t12.charCodeAt(2) === 95 ? t12.substr(1) : t12; - } - function Ot10(e10) { - return Vo3(e10.escapedText); - } - function P42(e10) { - let t12 = Rl3(e10.escapedText); - return t12 ? On6(t12, Si6) : void 0; - } - function md(e10) { - return e10.valueDeclaration && a3(e10.valueDeclaration) ? Ot10(e10.valueDeclaration.name) : Vo3(e10.escapedName); - } - function I42(e10) { - let t12 = e10.parent.parent; - if (t12) { - if (Ho4(t12)) - return Ef(t12); - switch (t12.kind) { - case 243: - if (t12.declarationList && t12.declarationList.declarations[0]) - return Ef(t12.declarationList.declarations[0]); - break; - case 244: - let r9 = t12.expression; - switch (r9.kind === 226 && r9.operatorToken.kind === 64 && (r9 = r9.left), r9.kind) { - case 211: - return r9.name; - case 212: - let a = r9.argumentExpression; - if (Ee6(a)) - return a; - } - break; - case 217: - return Ef(t12.expression); - case 256: { - if (Ho4(t12.statement) || am(t12.statement)) - return Ef(t12.statement); - break; - } - } - } - } - function Ef(e10) { - let t12 = Bl3(e10); - return t12 && Ee6(t12) ? t12 : void 0; - } - function N42(e10, t12) { - return !!(Qd(e10) && Ee6(e10.name) && Ot10(e10.name) === Ot10(t12) || as6(e10) && mt7(e10.declarationList.declarations, (r9) => N42(r9, t12))); - } - function O42(e10) { - return e10.name || I42(e10); - } - function Qd(e10) { - return !!e10.name; - } - function Yd(e10) { - switch (e10.kind) { - case 80: - return e10; - case 355: - case 348: { - let { name: r9 } = e10; - if (r9.kind === 166) - return r9.right; - break; - } - case 213: - case 226: { - let r9 = e10; - switch (Ja4(r9)) { - case 1: - case 4: - case 5: - case 3: - return fm(r9.left); - case 7: - case 8: - case 9: - return r9.arguments[1]; - default: - return; - } - } - case 353: - return O42(e10); - case 347: - return I42(e10); - case 277: { - let { expression: r9 } = e10; - return Ee6(r9) ? r9 : void 0; - } - case 212: - let t12 = e10; - if (f22(t12)) - return t12.argumentExpression; - } - return e10.name; - } - function Bl3(e10) { - if (e10 !== void 0) - return Yd(e10) || (Am(e10) || km(e10) || Il3(e10) ? M42(e10) : void 0); - } - function M42(e10) { - if (e10.parent) { - if (_s7(e10.parent) || nu4(e10.parent)) - return e10.parent.name; - if (Ct9(e10.parent) && e10 === e10.parent.right) { - if (Ee6(e10.parent.left)) - return e10.parent.left; - if ($o3(e10.parent.left)) - return fm(e10.parent.left); - } else if (ki7(e10.parent) && Ee6(e10.parent.name)) - return e10.parent.name; - } else - return; - } - function _A(e10) { - if (El3(e10)) - return $r4(e10.modifiers, L_); - } - function hd(e10) { - if (gr6(e10, 126975)) - return $r4(e10.modifiers, Lg2); - } - function L42(e10, t12) { - if (e10.name) - if (Ee6(e10.name)) { - let r9 = e10.name.escapedText; - return c_(e10.parent, t12).filter((a) => h_(a) && Ee6(a.name) && a.name.escapedText === r9); - } else { - let r9 = e10.parent.parameters.indexOf(e10); - N6.assert(r9 > -1, "Parameters should always be in their parents' parameter list"); - let a = c_(e10.parent, t12).filter(h_); - if (r9 < a.length) - return [a[r9]]; - } - return $e9; - } - function Kd(e10) { - return L42(e10, false); - } - function J42(e10) { - return L42(e10, true); - } - function R42(e10, t12) { - let r9 = e10.name.escapedText; - return c_(e10.parent, t12).filter((a) => Ko3(a) && a.typeParameters.some((_10) => _10.name.escapedText === r9)); - } - function j42(e10) { - return R42(e10, false); - } - function F42(e10) { - return R42(e10, true); - } - function cA(e10) { - return !!Zt5(e10, h_); - } - function B42(e10) { - return Zt5(e10, Mm); - } - function U42(e10) { - return Q42(e10, C8); - } - function lA(e10) { - return Zt5(e10, T8); - } - function uA(e10) { - return Zt5(e10, I6); - } - function q42(e10) { - return Zt5(e10, I6, true); - } - function pA(e10) { - return Zt5(e10, N62); - } - function z42(e10) { - return Zt5(e10, N62, true); - } - function fA(e10) { - return Zt5(e10, O62); - } - function W42(e10) { - return Zt5(e10, O62, true); - } - function dA(e10) { - return Zt5(e10, M62); - } - function V42(e10) { - return Zt5(e10, M62, true); - } - function H42(e10) { - return Zt5(e10, S8, true); - } - function mA(e10) { - return Zt5(e10, J62); - } - function G42(e10) { - return Zt5(e10, J62, true); - } - function hA(e10) { - return Zt5(e10, x8); - } - function yA(e10) { - return Zt5(e10, w8); - } - function X42(e10) { - return Zt5(e10, R62); - } - function gA(e10) { - return Zt5(e10, Ko3); - } - function kg3(e10) { - return Zt5(e10, j62); - } - function Zd(e10) { - let t12 = Zt5(e10, lu3); - if (t12 && t12.typeExpression && t12.typeExpression.type) - return t12; - } - function em(e10) { - let t12 = Zt5(e10, lu3); - return !t12 && Ma3(e10) && (t12 = Yr7(Kd(e10), (r9) => !!r9.typeExpression)), t12 && t12.typeExpression && t12.typeExpression.type; - } - function $42(e10) { - let t12 = X42(e10); - if (t12 && t12.typeExpression) - return t12.typeExpression.type; - let r9 = Zd(e10); - if (r9 && r9.typeExpression) { - let a = r9.typeExpression.type; - if (Em(a)) { - let _10 = Yr7(a.members, c6); - return _10 && _10.type; - } - if (tu4(a) || Om(a)) - return a.type; - } - } - function c_(e10, t12) { - var r9; - if (!dm(e10)) - return $e9; - let a = (r9 = e10.jsDoc) == null ? void 0 : r9.jsDocCache; - if (a === void 0 || t12) { - let _10 = gT(e10, t12); - N6.assert(_10.length < 2 || _10[0] !== _10[1]), a = Bo3(_10, (p5) => cs4(p5) ? p5.tags : p5), t12 || (e10.jsDoc ?? (e10.jsDoc = []), e10.jsDoc.jsDocCache = a); - } - return a; - } - function Ul4(e10) { - return c_(e10, false); - } - function bA(e10) { - return c_(e10, true); - } - function Zt5(e10, t12, r9) { - return Yr7(c_(e10, r9), t12); - } - function Q42(e10, t12) { - return Ul4(e10).filter(t12); - } - function vA(e10, t12) { - return Ul4(e10).filter((r9) => r9.kind === t12); - } - function TA(e10) { - return typeof e10 == "string" ? e10 : e10 == null ? void 0 : e10.map((t12) => t12.kind === 328 ? t12.text : SA(t12)).join(""); - } - function SA(e10) { - let t12 = e10.kind === 331 ? "link" : e10.kind === 332 ? "linkcode" : "linkplain", r9 = e10.name ? vi8(e10.name) : "", a = e10.name && e10.text.startsWith("://") ? "" : " "; - return `{@${t12} ${r9}${a}${e10.text}}`; - } - function xA(e10) { - if (cu4(e10)) { - if (L62(e10.parent)) { - let t12 = g22(e10.parent); - if (t12 && Ka4(t12.tags)) - return Bo3(t12.tags, (r9) => Ko3(r9) ? r9.typeParameters : void 0); - } - return $e9; - } - if (Hl3(e10)) - return N6.assert(e10.parent.kind === 327), Bo3(e10.parent.tags, (t12) => Ko3(t12) ? t12.typeParameters : void 0); - if (e10.typeParameters || F8(e10) && e10.typeParameters) - return e10.typeParameters; - if (Wt6(e10)) { - let t12 = eS(e10); - if (t12.length) - return t12; - let r9 = em(e10); - if (r9 && tu4(r9) && r9.typeParameters) - return r9.typeParameters; - } - return $e9; - } - function wA(e10) { - return e10.constraint ? e10.constraint : Ko3(e10.parent) && e10 === e10.parent.typeParameters[0] ? e10.parent.constraint : void 0; - } - function ro3(e10) { - return e10.kind === 80 || e10.kind === 81; - } - function CA(e10) { - return e10.kind === 178 || e10.kind === 177; - } - function Y42(e10) { - return Br6(e10) && !!(e10.flags & 64); - } - function K42(e10) { - return Ra3(e10) && !!(e10.flags & 64); - } - function y0(e10) { - return j_(e10) && !!(e10.flags & 64); - } - function Dg2(e10) { - let t12 = e10.kind; - return !!(e10.flags & 64) && (t12 === 211 || t12 === 212 || t12 === 213 || t12 === 235); - } - function Pg(e10) { - return Dg2(e10) && !jo2(e10) && !!e10.questionDotToken; - } - function EA(e10) { - return Pg(e10.parent) && e10.parent.expression === e10; - } - function AA(e10) { - return !Dg2(e10.parent) || Pg(e10.parent) || e10 !== e10.parent.expression; - } - function kA(e10) { - return e10.kind === 226 && e10.operatorToken.kind === 61; - } - function Z42(e10) { - return R_(e10) && Ee6(e10.typeName) && e10.typeName.escapedText === "const" && !e10.typeArguments; - } - function tm(e10) { - return ls6(e10, 8); - } - function e3(e10) { - return jo2(e10) && !!(e10.flags & 64); - } - function DA(e10) { - return e10.kind === 252 || e10.kind === 251; - } - function PA(e10) { - return e10.kind === 280 || e10.kind === 279; - } - function t32(e10) { - switch (e10.kind) { - case 309: - case 310: - return true; - default: - return false; - } - } - function IA(e10) { - return t32(e10) || e10.kind === 307 || e10.kind === 311; - } - function Ig(e10) { - return e10.kind === 355 || e10.kind === 348; - } - function NA(e10) { - return ql3(e10.kind); - } - function ql3(e10) { - return e10 >= 166; - } - function r3(e10) { - return e10 >= 0 && e10 <= 165; - } - function OA(e10) { - return r3(e10.kind); - } - function va2(e10) { - return Qr6(e10, "pos") && Qr6(e10, "end"); - } - function Ng(e10) { - return 9 <= e10 && e10 <= 15; - } - function Og(e10) { - return Ng(e10.kind); - } - function MA(e10) { - switch (e10.kind) { - case 210: - case 209: - case 14: - case 218: - case 231: - return true; - } - return false; - } - function Sl2(e10) { - return 15 <= e10 && e10 <= 18; - } - function LA(e10) { - return Sl2(e10.kind); - } - function JA(e10) { - let t12 = e10.kind; - return t12 === 17 || t12 === 18; - } - function RA(e10) { - return f8(e10) || m8(e10); - } - function n3(e10) { - switch (e10.kind) { - case 276: - return e10.isTypeOnly || e10.parent.parent.isTypeOnly; - case 274: - return e10.parent.isTypeOnly; - case 273: - case 271: - return e10.isTypeOnly; - } - return false; - } - function i3(e10) { - switch (e10.kind) { - case 281: - return e10.isTypeOnly || e10.parent.parent.isTypeOnly; - case 278: - return e10.isTypeOnly && !!e10.moduleSpecifier && !e10.exportClause; - case 280: - return e10.parent.isTypeOnly; - } - return false; - } - function jA(e10) { - return n3(e10) || i3(e10); - } - function FA2(e10) { - return mn6(e10) || Ee6(e10); - } - function BA(e10) { - return e10.kind === 11 || Sl2(e10.kind); - } - function wa2(e10) { - var t12; - return Ee6(e10) && ((t12 = e10.emitNode) == null ? void 0 : t12.autoGenerate) !== void 0; - } - function Mg2(e10) { - var t12; - return jr6(e10) && ((t12 = e10.emitNode) == null ? void 0 : t12.autoGenerate) !== void 0; - } - function UA(e10) { - let t12 = e10.emitNode.autoGenerate.flags; - return !!(t12 & 32) && !!(t12 & 16) && !!(t12 & 8); - } - function a3(e10) { - return (oo3(e10) || Rg(e10)) && jr6(e10.name); - } - function qA(e10) { - return Br6(e10) && jr6(e10.name); - } - function bi8(e10) { - switch (e10) { - case 128: - case 129: - case 134: - case 87: - case 138: - case 90: - case 95: - case 103: - case 125: - case 123: - case 124: - case 148: - case 126: - case 147: - case 164: - return true; - } - return false; - } - function o3(e10) { - return !!(J23(e10) & 16476); - } - function s3(e10) { - return o3(e10) || e10 === 126 || e10 === 164 || e10 === 129; - } - function Lg2(e10) { - return bi8(e10.kind); - } - function zA(e10) { - let t12 = e10.kind; - return t12 === 166 || t12 === 80; - } - function zl3(e10) { - let t12 = e10.kind; - return t12 === 80 || t12 === 81 || t12 === 11 || t12 === 9 || t12 === 167; - } - function WA(e10) { - let t12 = e10.kind; - return t12 === 80 || t12 === 206 || t12 === 207; - } - function Gi5(e10) { - return !!e10 && Jg(e10.kind); - } - function rm(e10) { - return !!e10 && (Jg(e10.kind) || eu5(e10)); - } - function _32(e10) { - return e10 && c3(e10.kind); - } - function VA(e10) { - return e10.kind === 112 || e10.kind === 97; - } - function c3(e10) { - switch (e10) { - case 262: - case 174: - case 176: - case 177: - case 178: - case 218: - case 219: - return true; - default: - return false; - } - } - function Jg(e10) { - switch (e10) { - case 173: - case 179: - case 330: - case 180: - case 181: - case 184: - case 324: - case 185: - return true; - default: - return c3(e10); - } - } - function HA(e10) { - return ii8(e10) || p8(e10) || au4(e10) && Gi5(e10.parent); - } - function no3(e10) { - let t12 = e10.kind; - return t12 === 176 || t12 === 172 || t12 === 174 || t12 === 177 || t12 === 178 || t12 === 181 || t12 === 175 || t12 === 240; - } - function dn5(e10) { - return e10 && (e10.kind === 263 || e10.kind === 231); - } - function nm(e10) { - return e10 && (e10.kind === 177 || e10.kind === 178); - } - function l3(e10) { - return oo3(e10) && oS(e10); - } - function Rg(e10) { - switch (e10.kind) { - case 174: - case 177: - case 178: - return true; - default: - return false; - } - } - function GA(e10) { - switch (e10.kind) { - case 174: - case 177: - case 178: - case 172: - return true; - default: - return false; - } - } - function Of(e10) { - return Lg2(e10) || L_(e10); - } - function jg(e10) { - let t12 = e10.kind; - return t12 === 180 || t12 === 179 || t12 === 171 || t12 === 173 || t12 === 181 || t12 === 177 || t12 === 178; - } - function XA(e10) { - return jg(e10) || no3(e10); - } - function Fg3(e10) { - let t12 = e10.kind; - return t12 === 303 || t12 === 304 || t12 === 305 || t12 === 174 || t12 === 177 || t12 === 178; - } - function g0(e10) { - return PS(e10.kind); - } - function $A(e10) { - switch (e10.kind) { - case 184: - case 185: - return true; - } - return false; - } - function im(e10) { - if (e10) { - let t12 = e10.kind; - return t12 === 207 || t12 === 206; - } - return false; - } - function u3(e10) { - let t12 = e10.kind; - return t12 === 209 || t12 === 210; - } - function QA(e10) { - let t12 = e10.kind; - return t12 === 208 || t12 === 232; - } - function Bg2(e10) { - switch (e10.kind) { - case 260: - case 169: - case 208: - return true; - } - return false; - } - function YA(e10) { - return ki7(e10) || Ma3(e10) || f3(e10) || m3(e10); - } - function KA(e10) { - return p32(e10) || d32(e10); - } - function p32(e10) { - switch (e10.kind) { - case 206: - case 210: - return true; - } - return false; - } - function f3(e10) { - switch (e10.kind) { - case 208: - case 303: - case 304: - case 305: - return true; - } - return false; - } - function d32(e10) { - switch (e10.kind) { - case 207: - case 209: - return true; - } - return false; - } - function m3(e10) { - switch (e10.kind) { - case 208: - case 232: - case 230: - case 209: - case 210: - case 80: - case 211: - case 212: - return true; - } - return Na2(e10, true); - } - function ZA(e10) { - let t12 = e10.kind; - return t12 === 211 || t12 === 166 || t12 === 205; - } - function ek(e10) { - let t12 = e10.kind; - return t12 === 211 || t12 === 166; - } - function tk(e10) { - switch (e10.kind) { - case 286: - case 285: - case 213: - case 214: - case 215: - case 170: - return true; - default: - return false; - } - } - function rk(e10) { - return e10.kind === 213 || e10.kind === 214; - } - function nk(e10) { - let t12 = e10.kind; - return t12 === 228 || t12 === 15; - } - function Lo4(e10) { - return h32(tm(e10).kind); - } - function h32(e10) { - switch (e10) { - case 211: - case 212: - case 214: - case 213: - case 284: - case 285: - case 288: - case 215: - case 209: - case 217: - case 210: - case 231: - case 218: - case 80: - case 81: - case 14: - case 9: - case 10: - case 11: - case 15: - case 228: - case 97: - case 106: - case 110: - case 112: - case 108: - case 235: - case 233: - case 236: - case 102: - case 282: - return true; - default: - return false; - } - } - function y32(e10) { - return g3(tm(e10).kind); - } - function g3(e10) { - switch (e10) { - case 224: - case 225: - case 220: - case 221: - case 222: - case 223: - case 216: - return true; - default: - return h32(e10); - } - } - function ik(e10) { - switch (e10.kind) { - case 225: - return true; - case 224: - return e10.operator === 46 || e10.operator === 47; - default: - return false; - } - } - function ak(e10) { - switch (e10.kind) { - case 106: - case 112: - case 97: - case 224: - return true; - default: - return Og(e10); - } - } - function am(e10) { - return ok(tm(e10).kind); - } - function ok(e10) { - switch (e10) { - case 227: - case 229: - case 219: - case 226: - case 230: - case 234: - case 232: - case 361: - case 360: - case 238: - return true; - default: - return g3(e10); - } - } - function sk(e10) { - let t12 = e10.kind; - return t12 === 216 || t12 === 234; - } - function _k(e10) { - return A6(e10) || c8(e10); - } - function b32(e10, t12) { - switch (e10.kind) { - case 248: - case 249: - case 250: - case 246: - case 247: - return true; - case 256: - return t12 && b32(e10.statement, t12); - } - return false; - } - function v32(e10) { - return ss7(e10) || B_(e10); - } - function ck(e10) { - return mt7(e10, v32); - } - function lk(e10) { - return !lm(e10) && !ss7(e10) && !gr6(e10, 1) && !_m2(e10); - } - function uk(e10) { - return lm(e10) || ss7(e10) || gr6(e10, 1); - } - function pk(e10) { - return e10.kind === 249 || e10.kind === 250; - } - function fk(e10) { - return au4(e10) || am(e10); - } - function dk(e10) { - return au4(e10); - } - function mk(e10) { - return v62(e10) || am(e10); - } - function hk(e10) { - let t12 = e10.kind; - return t12 === 268 || t12 === 267 || t12 === 80; - } - function yk(e10) { - let t12 = e10.kind; - return t12 === 268 || t12 === 267; - } - function gk(e10) { - let t12 = e10.kind; - return t12 === 80 || t12 === 267; - } - function bk(e10) { - let t12 = e10.kind; - return t12 === 275 || t12 === 274; - } - function vk(e10) { - return e10.kind === 267 || e10.kind === 266; - } - function Tk(e10) { - switch (e10.kind) { - case 219: - case 226: - case 208: - case 213: - case 179: - case 263: - case 231: - case 175: - case 176: - case 185: - case 180: - case 212: - case 266: - case 306: - case 277: - case 278: - case 281: - case 262: - case 218: - case 184: - case 177: - case 80: - case 273: - case 271: - case 276: - case 181: - case 264: - case 345: - case 347: - case 324: - case 348: - case 355: - case 330: - case 353: - case 329: - case 291: - case 292: - case 293: - case 200: - case 174: - case 173: - case 267: - case 202: - case 280: - case 270: - case 274: - case 214: - case 15: - case 9: - case 210: - case 169: - case 211: - case 303: - case 172: - case 171: - case 178: - case 304: - case 312: - case 305: - case 11: - case 265: - case 187: - case 168: - case 260: - return true; - default: - return false; - } - } - function Sk(e10) { - switch (e10.kind) { - case 219: - case 241: - case 179: - case 269: - case 299: - case 175: - case 194: - case 176: - case 185: - case 180: - case 248: - case 249: - case 250: - case 262: - case 218: - case 184: - case 177: - case 181: - case 345: - case 347: - case 324: - case 330: - case 353: - case 200: - case 174: - case 173: - case 267: - case 178: - case 312: - case 265: - return true; - default: - return false; - } - } - function xk(e10) { - return e10 === 219 || e10 === 208 || e10 === 263 || e10 === 231 || e10 === 175 || e10 === 176 || e10 === 266 || e10 === 306 || e10 === 281 || e10 === 262 || e10 === 218 || e10 === 177 || e10 === 273 || e10 === 271 || e10 === 276 || e10 === 264 || e10 === 291 || e10 === 174 || e10 === 173 || e10 === 267 || e10 === 270 || e10 === 274 || e10 === 280 || e10 === 169 || e10 === 303 || e10 === 172 || e10 === 171 || e10 === 178 || e10 === 304 || e10 === 265 || e10 === 168 || e10 === 260 || e10 === 353 || e10 === 345 || e10 === 355; - } - function Ug2(e10) { - return e10 === 262 || e10 === 282 || e10 === 263 || e10 === 264 || e10 === 265 || e10 === 266 || e10 === 267 || e10 === 272 || e10 === 271 || e10 === 278 || e10 === 277 || e10 === 270; - } - function qg2(e10) { - return e10 === 252 || e10 === 251 || e10 === 259 || e10 === 246 || e10 === 244 || e10 === 242 || e10 === 249 || e10 === 250 || e10 === 248 || e10 === 245 || e10 === 256 || e10 === 253 || e10 === 255 || e10 === 257 || e10 === 258 || e10 === 243 || e10 === 247 || e10 === 254 || e10 === 359; - } - function Ho4(e10) { - return e10.kind === 168 ? e10.parent && e10.parent.kind !== 352 || Wt6(e10) : xk(e10.kind); - } - function wk(e10) { - return Ug2(e10.kind); - } - function Ck(e10) { - return qg2(e10.kind); - } - function T32(e10) { - let t12 = e10.kind; - return qg2(t12) || Ug2(t12) || Ek(e10); - } - function Ek(e10) { - return e10.kind !== 241 || e10.parent !== void 0 && (e10.parent.kind === 258 || e10.parent.kind === 299) ? false : !$32(e10); - } - function S32(e10) { - let t12 = e10.kind; - return qg2(t12) || Ug2(t12) || t12 === 241; - } - function Ak(e10) { - let t12 = e10.kind; - return t12 === 283 || t12 === 166 || t12 === 80; - } - function kk(e10) { - let t12 = e10.kind; - return t12 === 110 || t12 === 80 || t12 === 211 || t12 === 295; - } - function x32(e10) { - let t12 = e10.kind; - return t12 === 284 || t12 === 294 || t12 === 285 || t12 === 12 || t12 === 288; - } - function Dk(e10) { - let t12 = e10.kind; - return t12 === 291 || t12 === 293; - } - function Pk(e10) { - let t12 = e10.kind; - return t12 === 11 || t12 === 294; - } - function w32(e10) { - let t12 = e10.kind; - return t12 === 286 || t12 === 285; - } - function Ik(e10) { - let t12 = e10.kind; - return t12 === 296 || t12 === 297; - } - function zg(e10) { - return e10.kind >= 316 && e10.kind <= 357; - } - function C32(e10) { - return e10.kind === 327 || e10.kind === 326 || e10.kind === 328 || ul4(e10) || Wg2(e10) || P62(e10) || cu4(e10); - } - function Wg2(e10) { - return e10.kind >= 334 && e10.kind <= 357; - } - function Zc2(e10) { - return e10.kind === 178; - } - function el3(e10) { - return e10.kind === 177; - } - function Wi4(e10) { - if (!dm(e10)) - return false; - let { jsDoc: t12 } = e10; - return !!t12 && t12.length > 0; - } - function Nk(e10) { - return !!e10.type; - } - function E32(e10) { - return !!e10.initializer; - } - function Ok(e10) { - switch (e10.kind) { - case 260: - case 169: - case 208: - case 172: - case 303: - case 306: - return true; - default: - return false; - } - } - function b0(e10) { - return e10.kind === 291 || e10.kind === 293 || Fg3(e10); - } - function Mk(e10) { - return e10.kind === 183 || e10.kind === 233; - } - function Lk(e10) { - let t12 = v02; - for (let r9 of e10) { - if (!r9.length) - continue; - let a = 0; - for (; a < r9.length && a < t12 && Vi5(r9.charCodeAt(a)); a++) - ; - if (a < t12 && (t12 = a), t12 === 0) - return 0; - } - return t12 === v02 ? void 0 : t12; - } - function Kn5(e10) { - return e10.kind === 11 || e10.kind === 15; - } - function ul4(e10) { - return e10.kind === 331 || e10.kind === 332 || e10.kind === 333; - } - function Jk(e10) { - let t12 = wi7(e10.parameters); - return !!t12 && A32(t12); - } - function A32(e10) { - let t12 = h_(e10) ? e10.typeExpression && e10.typeExpression.type : e10.type; - return e10.dotDotDotToken !== void 0 || !!t12 && t12.kind === 325; - } - var Vg, Hg, v02, Rk = Vt4({ "src/compiler/utilitiesPublic.ts"() { - "use strict"; - Dr5(), Vg = Xd(w_(0, 0), 0), Hg = ["cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-br", "ru", "tr", "zh-cn", "zh-tw"], v02 = 1073741823; - } }); - function jk(e10, t12) { - let r9 = e10.declarations; - if (r9) { - for (let a of r9) - if (a.kind === t12) - return a; - } - } - function Fk(e10, t12) { - return $r4(e10.declarations || $e9, (r9) => r9.kind === t12); - } - function Bk(e10) { - let t12 = /* @__PURE__ */ new Map(); - if (e10) - for (let r9 of e10) - t12.set(r9.escapedName, r9); - return t12; - } - function T02(e10) { - return (e10.flags & 33554432) !== 0; - } - function Uk() { - var e10 = ""; - let t12 = (r9) => e10 += r9; - return { getText: () => e10, write: t12, rawWrite: t12, writeKeyword: t12, writeOperator: t12, writePunctuation: t12, writeSpace: t12, writeStringLiteral: t12, writeLiteral: t12, writeParameter: t12, writeProperty: t12, writeSymbol: (r9, a) => t12(r9), writeTrailingSemicolon: t12, writeComment: t12, getTextPos: () => e10.length, getLine: () => 0, getColumn: () => 0, getIndent: () => 0, isAtStartOfLine: () => false, hasTrailingComment: () => false, hasTrailingWhitespace: () => !!e10.length && Vi5(e10.charCodeAt(e10.length - 1)), writeLine: () => e10 += " ", increaseIndent: Rn5, decreaseIndent: Rn5, clear: () => e10 = "" }; - } - function qk(e10, t12) { - return e10.configFilePath !== t12.configFilePath || k32(e10, t12); - } - function k32(e10, t12) { - return E_(e10, t12, moduleResolutionOptionDeclarations); - } - function zk(e10, t12) { - return E_(e10, t12, optionsAffectingProgramStructure); - } - function E_(e10, t12, r9) { - return e10 !== t12 && r9.some((a) => !$23(j02(e10, a), j02(t12, a))); - } - function Wk(e10, t12) { - for (; ; ) { - let r9 = t12(e10); - if (r9 === "quit") - return; - if (r9 !== void 0) - return r9; - if (ii8(e10)) - return; - e10 = e10.parent; - } - } - function Vk2(e10, t12) { - let r9 = e10.entries(); - for (let [a, _10] of r9) { - let p5 = t12(_10, a); - if (p5) - return p5; - } - } - function Hk(e10, t12) { - let r9 = e10.keys(); - for (let a of r9) { - let _10 = t12(a); - if (_10) - return _10; - } - } - function Gk(e10, t12) { - e10.forEach((r9, a) => { - t12.set(a, r9); - }); - } - function Xk(e10) { - let t12 = Zs6.getText(); - try { - return e10(Zs6), Zs6.getText(); - } finally { - Zs6.clear(), Zs6.writeKeyword(t12); - } - } - function om(e10) { - return e10.end - e10.pos; - } - function $k(e10, t12, r9) { - var a, _10; - return (_10 = (a = e10 == null ? void 0 : e10.resolvedModules) == null ? void 0 : a.get(t12, r9)) == null ? void 0 : _10.resolvedModule; - } - function Qk(e10, t12, r9, a) { - e10.resolvedModules || (e10.resolvedModules = createModeAwareCache()), e10.resolvedModules.set(t12, a, r9); - } - function Yk(e10, t12, r9, a) { - e10.resolvedTypeReferenceDirectiveNames || (e10.resolvedTypeReferenceDirectiveNames = createModeAwareCache()), e10.resolvedTypeReferenceDirectiveNames.set(t12, a, r9); - } - function Kk(e10, t12, r9) { - var a, _10; - return (_10 = (a = e10 == null ? void 0 : e10.resolvedTypeReferenceDirectiveNames) == null ? void 0 : a.get(t12, r9)) == null ? void 0 : _10.resolvedTypeReferenceDirective; - } - function Zk(e10, t12) { - return e10.path === t12.path && !e10.prepend == !t12.prepend && !e10.circular == !t12.circular; - } - function eD(e10, t12) { - return e10 === t12 || e10.resolvedModule === t12.resolvedModule || !!e10.resolvedModule && !!t12.resolvedModule && e10.resolvedModule.isExternalLibraryImport === t12.resolvedModule.isExternalLibraryImport && e10.resolvedModule.extension === t12.resolvedModule.extension && e10.resolvedModule.resolvedFileName === t12.resolvedModule.resolvedFileName && e10.resolvedModule.originalPath === t12.resolvedModule.originalPath && rD(e10.resolvedModule.packageId, t12.resolvedModule.packageId) && e10.node10Result === t12.node10Result; - } - function tD(e10, t12, r9, a, _10) { - var p5, d5; - let h5 = (d5 = (p5 = e10.resolvedModules) == null ? void 0 : p5.get(r9, a)) == null ? void 0 : d5.node10Result, l = h5 ? tl2(void 0, U8.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings, h5, h5.indexOf(nodeModulesPathPart + "@types/") > -1 ? `@types/${mangleScopedPackageName(_10)}` : _10) : t12.typesPackageExists(_10) ? tl2(void 0, U8.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1, _10, mangleScopedPackageName(_10)) : t12.packageBundlesTypes(_10) ? tl2(void 0, U8.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1, _10, r9) : tl2(void 0, U8.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0, r9, mangleScopedPackageName(_10)); - return l && (l.repopulateInfo = () => ({ moduleReference: r9, mode: a, packageName: _10 === r9 ? void 0 : _10 })), l; - } - function rD(e10, t12) { - return e10 === t12 || !!e10 && !!t12 && e10.name === t12.name && e10.subModuleName === t12.subModuleName && e10.version === t12.version; - } - function D32({ name: e10, subModuleName: t12 }) { - return t12 ? `${e10}/${t12}` : e10; - } - function nD(e10) { - return `${D32(e10)}@${e10.version}`; - } - function iD(e10, t12) { - return e10 === t12 || e10.resolvedTypeReferenceDirective === t12.resolvedTypeReferenceDirective || !!e10.resolvedTypeReferenceDirective && !!t12.resolvedTypeReferenceDirective && e10.resolvedTypeReferenceDirective.resolvedFileName === t12.resolvedTypeReferenceDirective.resolvedFileName && !!e10.resolvedTypeReferenceDirective.primary == !!t12.resolvedTypeReferenceDirective.primary && e10.resolvedTypeReferenceDirective.originalPath === t12.resolvedTypeReferenceDirective.originalPath; - } - function aD(e10, t12, r9, a, _10, p5) { - N6.assert(e10.length === r9.length); - for (let d5 = 0; d5 < e10.length; d5++) { - let h5 = r9[d5], l = e10[d5], v10 = p5.getName(l), y5 = p5.getMode(l, t12), C10 = a && a.get(v10, y5); - if (C10 ? !h5 || !_10(C10, h5) : h5) - return true; - } - return false; - } - function xl3(e10) { - return oD(e10), (e10.flags & 1048576) !== 0; - } - function oD(e10) { - e10.flags & 2097152 || ((e10.flags & 262144 || Bt7(e10, xl3)) && (e10.flags |= 1048576), e10.flags |= 2097152); - } - function ri7(e10) { - for (; e10 && e10.kind !== 312; ) - e10 = e10.parent; - return e10; - } - function sD(e10) { - return ri7(e10.valueDeclaration || B32(e10)); - } - function _D(e10, t12) { - return !!e10 && (e10.scriptKind === 1 || e10.scriptKind === 2) && !e10.checkJsDirective && t12 === void 0; - } - function cD(e10) { - switch (e10.kind) { - case 241: - case 269: - case 248: - case 249: - case 250: - return true; - } - return false; - } - function lD(e10, t12) { - return N6.assert(e10 >= 0), Ia4(t12)[e10]; - } - function uD(e10) { - let t12 = ri7(e10), r9 = to3(t12, e10.pos); - return `${t12.fileName}(${r9.line + 1},${r9.character + 1})`; - } - function P32(e10, t12) { - N6.assert(e10 >= 0); - let r9 = Ia4(t12), a = e10, _10 = t12.text; - if (a + 1 === r9.length) - return _10.length - 1; - { - let p5 = r9[a], d5 = r9[a + 1] - 1; - for (N6.assert(mr6(_10.charCodeAt(d5))); p5 <= d5 && mr6(_10.charCodeAt(d5)); ) - d5--; - return d5; - } - } - function I32(e10, t12, r9) { - return !(r9 && r9(t12)) && !e10.identifiers.has(t12); - } - function zi6(e10) { - return e10 === void 0 ? true : e10.pos === e10.end && e10.pos >= 0 && e10.kind !== 1; - } - function wl2(e10) { - return !zi6(e10); - } - function pD(e10, t12) { - return No3(e10) ? t12 === e10.expression : eu5(e10) ? t12 === e10.modifiers : Zl3(e10) ? t12 === e10.initializer : oo3(e10) ? t12 === e10.questionToken && l3(e10) : _s7(e10) ? t12 === e10.modifiers || t12 === e10.questionToken || t12 === e10.exclamationToken || Gs6(e10.modifiers, t12, Of) : _u3(e10) ? t12 === e10.equalsToken || t12 === e10.modifiers || t12 === e10.questionToken || t12 === e10.exclamationToken || Gs6(e10.modifiers, t12, Of) : d_(e10) ? t12 === e10.exclamationToken : J_(e10) ? t12 === e10.typeParameters || t12 === e10.type || Gs6(e10.typeParameters, t12, No3) : m_(e10) ? t12 === e10.typeParameters || Gs6(e10.typeParameters, t12, No3) : Qo3(e10) ? t12 === e10.typeParameters || t12 === e10.type || Gs6(e10.typeParameters, t12, No3) : x62(e10) ? t12 === e10.modifiers || Gs6(e10.modifiers, t12, Of) : false; - } - function Gs6(e10, t12, r9) { - return !e10 || zt6(t12) || !r9(t12) ? false : es7(e10, t12); - } - function N32(e10, t12, r9) { - if (t12 === void 0 || t12.length === 0) - return e10; - let a = 0; - for (; a < e10.length && r9(e10[a]); ++a) - ; - return e10.splice(a, 0, ...t12), e10; - } - function O32(e10, t12, r9) { - if (t12 === void 0) - return e10; - let a = 0; - for (; a < e10.length && r9(e10[a]); ++a) - ; - return e10.splice(a, 0, t12), e10; - } - function M32(e10) { - return Ea3(e10) || !!(ti7(e10) & 2097152); - } - function fD(e10, t12) { - return N32(e10, t12, Ea3); - } - function dD(e10, t12) { - return N32(e10, t12, M32); - } - function mD(e10, t12) { - return O32(e10, t12, Ea3); - } - function hD(e10, t12) { - return O32(e10, t12, M32); - } - function yD(e10, t12, r9) { - if (e10.charCodeAt(t12 + 1) === 47 && t12 + 2 < r9 && e10.charCodeAt(t12 + 2) === 47) { - let a = e10.substring(t12, r9); - return !!(Y23.test(a) || K23.test(a) || yx.test(a) || mx.test(a) || hx.test(a) || gx.test(a)); - } - return false; - } - function L32(e10, t12) { - return e10.charCodeAt(t12 + 1) === 42 && e10.charCodeAt(t12 + 2) === 33; - } - function gD(e10, t12) { - let r9 = new Map(t12.map((d5) => [`${to3(e10, d5.range.end).line}`, d5])), a = /* @__PURE__ */ new Map(); - return { getUnusedExpectations: _10, markUsed: p5 }; - function _10() { - return Rd(r9.entries()).filter(([d5, h5]) => h5.type === 0 && !a.get(d5)).map(([d5, h5]) => h5); - } - function p5(d5) { - return r9.has(`${d5}`) ? (a.set(`${d5}`, true), true) : false; - } - } - function Go2(e10, t12, r9) { - return zi6(e10) ? e10.pos : zg(e10) || e10.kind === 12 ? Nt9((t12 || ri7(e10)).text, e10.pos, false, true) : r9 && Wi4(e10) ? Go2(e10.jsDoc[0], t12) : e10.kind === 358 && e10._children.length > 0 ? Go2(e10._children[0], t12, r9) : Nt9((t12 || ri7(e10)).text, e10.pos, false, false, nT(e10)); - } - function bD(e10, t12) { - let r9 = !zi6(e10) && q_(e10) ? ig(e10.modifiers, L_) : void 0; - return r9 ? Nt9((t12 || ri7(e10)).text, r9.end) : Go2(e10, t12); - } - function Xo2(e10, t12, r9 = false) { - return t_(e10.text, t12, r9); - } - function vD(e10) { - return !!Kr6(e10, b8); - } - function J32(e10) { - return !!(B_(e10) && e10.exportClause && Im(e10.exportClause) && e10.exportClause.name.escapedText === "default"); - } - function t_(e10, t12, r9 = false) { - if (zi6(t12)) - return ""; - let a = e10.substring(r9 ? t12.pos : Nt9(e10, t12.pos), t12.end); - return vD(t12) && (a = a.split(/\r\n|\n|\r/).map((_10) => gl3(_10.replace(/^\s*\*/, ""))).join(` -`)), a; - } - function sm(e10, t12 = false) { - return Xo2(ri7(e10), e10, t12); - } - function TD(e10) { - return e10.pos; - } - function SD(e10, t12) { - return Ml4(e10, t12, TD, kr7); - } - function ti7(e10) { - let t12 = e10.emitNode; - return t12 && t12.flags || 0; - } - function xD(e10) { - let t12 = e10.emitNode; - return t12 && t12.internalFlags || 0; - } - function wD(e10, t12, r9) { - if (t12 && CD(e10, r9)) - return Xo2(t12, e10); - switch (e10.kind) { - case 11: { - let a = r9 & 2 ? zT : r9 & 1 || ti7(e10) & 16777216 ? vd : Td; - return e10.singleQuote ? "'" + a(e10.text, 39) + "'" : '"' + a(e10.text, 34) + '"'; - } - case 15: - case 16: - case 17: - case 18: { - let a = r9 & 1 || ti7(e10) & 16777216 ? vd : Td, _10 = e10.rawText ?? aN(a(e10.text, 96)); - switch (e10.kind) { - case 15: - return "`" + _10 + "`"; - case 16: - return "`" + _10 + "${"; - case 17: - return "}" + _10 + "${"; - case 18: - return "}" + _10 + "`"; - } - break; - } - case 9: - case 10: - return e10.text; - case 14: - return r9 & 4 && e10.isUnterminated ? e10.text + (e10.text.charCodeAt(e10.text.length - 1) === 92 ? " /" : "/") : e10.text; - } - return N6.fail(`Literal kind '${e10.kind}' not accounted for.`); - } - function CD(e10, t12) { - if (Ta2(e10) || !e10.parent || t12 & 4 && e10.isUnterminated) - return false; - if (lo3(e10)) { - if (e10.numericLiteralFlags & 26656) - return false; - if (e10.numericLiteralFlags & 512) - return !!(t12 & 8); - } - return !o6(e10); - } - function ED(e10) { - return b_(e10) ? '"' + Td(e10) + '"' : "" + e10; - } - function AD(e10) { - return T_(e10).replace(/^(\d)/, "_$1").replace(/\W/g, "_"); - } - function kD(e10) { - return (C_(e10) & 7) !== 0 || R32(e10); - } - function R32(e10) { - let t12 = hm(e10); - return t12.kind === 260 && t12.parent.kind === 299; - } - function _m2(e10) { - return Yi5(e10) && (e10.name.kind === 11 || cm(e10)); - } - function DD(e10) { - return Yi5(e10) && e10.name.kind === 11; - } - function PD(e10) { - return Yi5(e10) && mn6(e10.name); - } - function j32(e10) { - return Yi5(e10) || Ee6(e10); - } - function ID(e10) { - return ND(e10.valueDeclaration); - } - function ND(e10) { - return !!e10 && e10.kind === 267 && !e10.body; - } - function OD(e10) { - return e10.kind === 312 || e10.kind === 267 || rm(e10); - } - function cm(e10) { - return !!(e10.flags & 2048); - } - function Gg(e10) { - return _m2(e10) && F32(e10); - } - function F32(e10) { - switch (e10.parent.kind) { - case 312: - return Zo2(e10.parent); - case 268: - return _m2(e10.parent.parent) && ii8(e10.parent.parent.parent) && !Zo2(e10.parent.parent.parent); - } - return false; - } - function B32(e10) { - var t12; - return (t12 = e10.declarations) == null ? void 0 : t12.find((r9) => !Gg(r9) && !(Yi5(r9) && cm(r9))); - } - function MD(e10) { - return e10 === 1 || e10 === 100 || e10 === 199; - } - function Xg(e10, t12) { - return Zo2(e10) || MD(ni7(t12)) && !!e10.commonJsModuleIndicator; - } - function LD(e10, t12) { - switch (e10.scriptKind) { - case 1: - case 3: - case 2: - case 4: - break; - default: - return false; - } - return e10.isDeclarationFile ? false : W23(t12, "alwaysStrict") || I8(e10.statements) ? true : Zo2(e10) || B23(t12) ? ni7(t12) >= 5 ? true : !t12.noImplicitUseStrict : false; - } - function JD(e10) { - return !!(e10.flags & 33554432) || gr6(e10, 2); - } - function U32(e10, t12) { - switch (e10.kind) { - case 312: - case 269: - case 299: - case 267: - case 248: - case 249: - case 250: - case 176: - case 174: - case 177: - case 178: - case 262: - case 218: - case 219: - case 172: - case 175: - return true; - case 241: - return !rm(t12); - } - return false; - } - function RD(e10) { - switch (N6.type(e10), e10.kind) { - case 345: - case 353: - case 330: - return true; - default: - return q32(e10); - } - } - function q32(e10) { - switch (N6.type(e10), e10.kind) { - case 179: - case 180: - case 173: - case 181: - case 184: - case 185: - case 324: - case 263: - case 231: - case 264: - case 265: - case 352: - case 262: - case 174: - case 176: - case 177: - case 178: - case 218: - case 219: - return true; - default: - return false; - } - } - function $g2(e10) { - switch (e10.kind) { - case 272: - case 271: - return true; - default: - return false; - } - } - function jD(e10) { - return $g2(e10) || pm(e10); - } - function FD(e10) { - switch (e10.kind) { - case 272: - case 271: - case 243: - case 263: - case 262: - case 267: - case 265: - case 264: - case 266: - return true; - default: - return false; - } - } - function BD(e10) { - return lm(e10) || Yi5(e10) || ru5(e10) || t23(e10); - } - function lm(e10) { - return $g2(e10) || B_(e10); - } - function UD(e10) { - return Kr6(e10.parent, (t12) => !!(getContainerFlags(t12) & 1)); - } - function S02(e10) { - return Kr6(e10.parent, (t12) => U32(t12, t12.parent)); - } - function qD(e10, t12) { - let r9 = S02(e10); - for (; r9; ) - t12(r9), r9 = S02(r9); - } - function z32(e10) { - return !e10 || om(e10) === 0 ? "(Missing)" : sm(e10); - } - function zD(e10) { - return e10.declaration ? z32(e10.declaration.parameters[0].name) : void 0; - } - function WD(e10) { - return e10.kind === 167 && !Qi5(e10.expression); - } - function Qg(e10) { - var t12; - switch (e10.kind) { - case 80: - case 81: - return (t12 = e10.emitNode) != null && t12.autoGenerate ? void 0 : e10.escapedText; - case 11: - case 9: - case 15: - return Mn5(e10.text); - case 167: - return Qi5(e10.expression) ? Mn5(e10.expression.text) : void 0; - case 295: - return Yl4(e10); - default: - return N6.assertNever(e10); - } - } - function VD(e10) { - return N6.checkDefined(Qg(e10)); - } - function vi8(e10) { - switch (e10.kind) { - case 110: - return "this"; - case 81: - case 80: - return om(e10) === 0 ? Ot10(e10) : sm(e10); - case 166: - return vi8(e10.left) + "." + vi8(e10.right); - case 211: - return Ee6(e10.name) || jr6(e10.name) ? vi8(e10.expression) + "." + vi8(e10.name) : N6.assertNever(e10.name); - case 318: - return vi8(e10.left) + vi8(e10.right); - case 295: - return vi8(e10.namespace) + ":" + vi8(e10.name); - default: - return N6.assertNever(e10); - } - } - function HD(e10, t12, ...r9) { - let a = ri7(e10); - return W32(a, e10, t12, ...r9); - } - function GD(e10, t12, r9, ...a) { - let _10 = Nt9(e10.text, t12.pos); - return j23(e10, _10, t12.end - _10, r9, ...a); - } - function W32(e10, t12, r9, ...a) { - let _10 = Zg(e10, t12); - return j23(e10, _10.start, _10.length, r9, ...a); - } - function XD(e10, t12, r9, a) { - let _10 = Zg(e10, t12); - return Kg(e10, _10.start, _10.length, r9, a); - } - function $D(e10, t12, r9, a) { - let _10 = Nt9(e10.text, t12.pos); - return Kg(e10, _10, t12.end - _10, r9, a); - } - function Yg(e10, t12, r9) { - N6.assertGreaterThanOrEqual(t12, 0), N6.assertGreaterThanOrEqual(r9, 0), e10 && (N6.assertLessThanOrEqual(t12, e10.text.length), N6.assertLessThanOrEqual(t12 + r9, e10.text.length)); - } - function Kg(e10, t12, r9, a, _10) { - return Yg(e10, t12, r9), { file: e10, start: t12, length: r9, code: a.code, category: a.category, messageText: a.next ? a : a.messageText, relatedInformation: _10 }; - } - function QD(e10, t12, r9) { - return { file: e10, start: 0, length: 0, code: t12.code, category: t12.category, messageText: t12.next ? t12 : t12.messageText, relatedInformation: r9 }; - } - function YD(e10) { - return typeof e10.messageText == "string" ? { code: e10.code, category: e10.category, messageText: e10.messageText, next: e10.next } : e10.messageText; - } - function KD(e10, t12, r9) { - return { file: e10, start: t12.pos, length: t12.end - t12.pos, code: r9.code, category: r9.category, messageText: r9.message }; - } - function Ys5(e10, t12) { - let r9 = ns6(e10.languageVersion, true, e10.languageVariant, e10.text, void 0, t12); - r9.scan(); - let a = r9.getTokenStart(); - return Hi5(a, r9.getTokenEnd()); - } - function ZD(e10, t12) { - let r9 = ns6(e10.languageVersion, true, e10.languageVariant, e10.text, void 0, t12); - return r9.scan(), r9.getToken(); - } - function eP(e10, t12) { - let r9 = Nt9(e10.text, t12.pos); - if (t12.body && t12.body.kind === 241) { - let { line: a } = to3(e10, t12.body.pos), { line: _10 } = to3(e10, t12.body.end); - if (a < _10) - return w_(r9, P32(a, e10) - r9 + 1); - } - return Hi5(r9, t12.end); - } - function Zg(e10, t12) { - let r9 = t12; - switch (t12.kind) { - case 312: { - let p5 = Nt9(e10.text, 0, false); - return p5 === e10.text.length ? w_(0, 0) : Ys5(e10, p5); - } - case 260: - case 208: - case 263: - case 231: - case 264: - case 267: - case 266: - case 306: - case 262: - case 218: - case 174: - case 177: - case 178: - case 265: - case 172: - case 171: - case 274: - r9 = t12.name; - break; - case 219: - return eP(e10, t12); - case 296: - case 297: { - let p5 = Nt9(e10.text, t12.pos), d5 = t12.statements.length > 0 ? t12.statements[0].pos : t12.end; - return Hi5(p5, d5); - } - case 253: - case 229: { - let p5 = Nt9(e10.text, t12.pos); - return Ys5(e10, p5); - } - case 238: { - let p5 = Nt9(e10.text, t12.expression.end); - return Ys5(e10, p5); - } - case 357: { - let p5 = Nt9(e10.text, t12.tagName.pos); - return Ys5(e10, p5); - } - } - if (r9 === void 0) - return Ys5(e10, t12.pos); - N6.assert(!cs4(r9)); - let a = zi6(r9), _10 = a || kd(t12) ? r9.pos : Nt9(e10.text, r9.pos); - return a ? (N6.assert(_10 === r9.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"), N6.assert(_10 === r9.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")) : (N6.assert(_10 >= r9.pos, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"), N6.assert(_10 <= r9.end, "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")), Hi5(_10, r9.end); - } - function tP(e10) { - return (e10.externalModuleIndicator || e10.commonJsModuleIndicator) !== void 0; - } - function e22(e10) { - return e10.scriptKind === 6; - } - function rP(e10) { - return !!($d(e10) & 2048); - } - function nP(e10) { - return !!($d(e10) & 64 && !E42(e10, e10.parent)); - } - function iP(e10) { - return (C_(e10) & 7) === 6; - } - function aP(e10) { - return (C_(e10) & 7) === 4; - } - function V32(e10) { - return (C_(e10) & 7) === 2; - } - function oP(e10) { - return (C_(e10) & 7) === 1; - } - function sP(e10) { - return e10.kind === 213 && e10.expression.kind === 108; - } - function t23(e10) { - return e10.kind === 213 && e10.expression.kind === 102; - } - function x0(e10) { - return b6(e10) && e10.keywordToken === 102 && e10.name.escapedText === "meta"; - } - function H32(e10) { - return ru5(e10) && m6(e10.argument) && mn6(e10.argument.literal); - } - function Ea3(e10) { - return e10.kind === 244 && e10.expression.kind === 11; - } - function um(e10) { - return !!(ti7(e10) & 2097152); - } - function w02(e10) { - return um(e10) && os9(e10); - } - function _P(e10) { - return Ee6(e10.name) && !e10.initializer; - } - function C0(e10) { - return um(e10) && as6(e10) && so3(e10.declarationList.declarations, _P); - } - function cP(e10, t12) { - return e10.kind !== 12 ? Wo3(t12.text, e10.pos) : void 0; - } - function G32(e10, t12) { - let r9 = e10.kind === 169 || e10.kind === 168 || e10.kind === 218 || e10.kind === 219 || e10.kind === 217 || e10.kind === 260 || e10.kind === 281 ? y_(_42(t12, e10.pos), Wo3(t12, e10.pos)) : Wo3(t12, e10.pos); - return $r4(r9, (a) => t12.charCodeAt(a.pos + 1) === 42 && t12.charCodeAt(a.pos + 2) === 42 && t12.charCodeAt(a.pos + 3) !== 47); - } - function r22(e10) { - if (182 <= e10.kind && e10.kind <= 205) - return true; - switch (e10.kind) { - case 133: - case 159: - case 150: - case 163: - case 154: - case 136: - case 155: - case 151: - case 157: - case 106: - case 146: - return true; - case 116: - return e10.parent.kind !== 222; - case 233: - return Nl3(e10.parent) && !M02(e10); - case 168: - return e10.parent.kind === 200 || e10.parent.kind === 195; - case 80: - (e10.parent.kind === 166 && e10.parent.right === e10 || e10.parent.kind === 211 && e10.parent.name === e10) && (e10 = e10.parent), N6.assert(e10.kind === 80 || e10.kind === 166 || e10.kind === 211, "'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'."); - case 166: - case 211: - case 110: { - let { parent: t12 } = e10; - if (t12.kind === 186) - return false; - if (t12.kind === 205) - return !t12.isTypeOf; - if (182 <= t12.kind && t12.kind <= 205) - return true; - switch (t12.kind) { - case 233: - return Nl3(t12.parent) && !M02(t12); - case 168: - return e10 === t12.constraint; - case 352: - return e10 === t12.constraint; - case 172: - case 171: - case 169: - case 260: - return e10 === t12.type; - case 262: - case 218: - case 219: - case 176: - case 174: - case 173: - case 177: - case 178: - return e10 === t12.type; - case 179: - case 180: - case 181: - return e10 === t12.type; - case 216: - return e10 === t12.type; - case 213: - case 214: - case 215: - return es7(t12.typeArguments, e10); - } - } - } - return false; - } - function lP(e10, t12) { - for (; e10; ) { - if (e10.kind === t12) - return true; - e10 = e10.parent; - } - return false; - } - function uP(e10, t12) { - return r9(e10); - function r9(a) { - switch (a.kind) { - case 253: - return t12(a); - case 269: - case 241: - case 245: - case 246: - case 247: - case 248: - case 249: - case 250: - case 254: - case 255: - case 296: - case 297: - case 256: - case 258: - case 299: - return Bt7(a, r9); - } - } - } - function pP(e10, t12) { - return r9(e10); - function r9(a) { - switch (a.kind) { - case 229: - t12(a); - let _10 = a.expression; - _10 && r9(_10); - return; - case 266: - case 264: - case 267: - case 265: - return; - default: - if (Gi5(a)) { - if (a.name && a.name.kind === 167) { - r9(a.name.expression); - return; - } - } else - r22(a) || Bt7(a, r9); - } - } - } - function fP(e10) { - return e10 && e10.kind === 188 ? e10.elementType : e10 && e10.kind === 183 ? Ld(e10.typeArguments) : void 0; - } - function dP(e10) { - switch (e10.kind) { - case 264: - case 263: - case 231: - case 187: - return e10.members; - case 210: - return e10.properties; - } - } - function n22(e10) { - if (e10) - switch (e10.kind) { - case 208: - case 306: - case 169: - case 303: - case 172: - case 171: - case 304: - case 260: - return true; - } - return false; - } - function mP(e10) { - return n22(e10) || nm(e10); - } - function X32(e10) { - return e10.parent.kind === 261 && e10.parent.parent.kind === 243; - } - function hP(e10) { - return Wt6(e10) ? uo4(e10.parent) && Ct9(e10.parent.parent) && Ja4(e10.parent.parent) === 2 || i22(e10.parent) : false; - } - function i22(e10) { - return Wt6(e10) ? Ct9(e10) && Ja4(e10) === 1 : false; - } - function yP(e10) { - return (ki7(e10) ? V32(e10) && Ee6(e10.name) && X32(e10) : oo3(e10) ? O02(e10) && gm(e10) : Zl3(e10) && O02(e10)) || i22(e10); - } - function gP(e10) { - switch (e10.kind) { - case 174: - case 173: - case 176: - case 177: - case 178: - case 262: - case 218: - return true; - } - return false; - } - function bP(e10, t12) { - for (; ; ) { - if (t12 && t12(e10), e10.statement.kind !== 256) - return e10.statement; - e10 = e10.statement; - } - } - function $32(e10) { - return e10 && e10.kind === 241 && Gi5(e10.parent); - } - function vP(e10) { - return e10 && e10.kind === 174 && e10.parent.kind === 210; - } - function TP(e10) { - return (e10.kind === 174 || e10.kind === 177 || e10.kind === 178) && (e10.parent.kind === 210 || e10.parent.kind === 231); - } - function SP(e10) { - return e10 && e10.kind === 1; - } - function xP(e10) { - return e10 && e10.kind === 0; - } - function a2(e10, t12, r9, a) { - return yr5(e10 == null ? void 0 : e10.properties, (_10) => { - if (!_s7(_10)) - return; - let p5 = Qg(_10.name); - return t12 === p5 || a && a === p5 ? r9(_10) : void 0; - }); - } - function wP(e10, t12, r9) { - return a2(e10, t12, (a) => iu4(a.initializer) ? Yr7(a.initializer.elements, (_10) => mn6(_10) && _10.text === r9) : void 0); - } - function Q32(e10) { - if (e10 && e10.statements.length) { - let t12 = e10.statements[0].expression; - return On6(t12, uo4); - } - } - function CP(e10, t12, r9) { - return Y32(e10, t12, (a) => iu4(a.initializer) ? Yr7(a.initializer.elements, (_10) => mn6(_10) && _10.text === r9) : void 0); - } - function Y32(e10, t12, r9) { - return a2(Q32(e10), t12, r9); - } - function EP(e10) { - return Kr6(e10.parent, Gi5); - } - function AP(e10) { - return Kr6(e10.parent, _32); - } - function E02(e10) { - return Kr6(e10.parent, dn5); - } - function kP(e10) { - return Kr6(e10.parent, (t12) => dn5(t12) || Gi5(t12) ? "quit" : eu5(t12)); - } - function DP(e10) { - return Kr6(e10.parent, rm); - } - function PP(e10) { - let t12 = Kr6(e10.parent, (r9) => dn5(r9) ? "quit" : L_(r9)); - return t12 && dn5(t12.parent) ? E02(t12.parent) : E02(t12 ?? e10); - } - function o2(e10, t12, r9) { - for (N6.assert(e10.kind !== 312); ; ) { - if (e10 = e10.parent, !e10) - return N6.fail(); - switch (e10.kind) { - case 167: - if (r9 && dn5(e10.parent.parent)) - return e10; - e10 = e10.parent.parent; - break; - case 170: - e10.parent.kind === 169 && no3(e10.parent.parent) ? e10 = e10.parent.parent : no3(e10.parent) && (e10 = e10.parent); - break; - case 219: - if (!t12) - continue; - case 262: - case 218: - case 267: - case 175: - case 172: - case 171: - case 174: - case 173: - case 176: - case 177: - case 178: - case 179: - case 180: - case 181: - case 266: - case 312: - return e10; - } - } - } - function IP(e10) { - switch (e10.kind) { - case 219: - case 262: - case 218: - case 172: - return true; - case 241: - switch (e10.parent.kind) { - case 176: - case 174: - case 177: - case 178: - return true; - default: - return false; - } - default: - return false; - } - } - function NP(e10) { - Ee6(e10) && (Yo3(e10.parent) || os9(e10.parent)) && e10.parent.name === e10 && (e10 = e10.parent); - let t12 = o2(e10, true, false); - return ii8(t12); - } - function OP(e10) { - let t12 = o2(e10, false, false); - if (t12) - switch (t12.kind) { - case 176: - case 262: - case 218: - return t12; - } - } - function MP(e10, t12) { - for (; ; ) { - if (e10 = e10.parent, !e10) - return; - switch (e10.kind) { - case 167: - e10 = e10.parent; - break; - case 262: - case 218: - case 219: - if (!t12) - continue; - case 172: - case 171: - case 174: - case 173: - case 176: - case 177: - case 178: - case 175: - return e10; - case 170: - e10.parent.kind === 169 && no3(e10.parent.parent) ? e10 = e10.parent.parent : no3(e10.parent) && (e10 = e10.parent); - break; - } - } - } - function LP(e10) { - if (e10.kind === 218 || e10.kind === 219) { - let t12 = e10, r9 = e10.parent; - for (; r9.kind === 217; ) - t12 = r9, r9 = r9.parent; - if (r9.kind === 213 && r9.expression === t12) - return r9; - } - } - function JP(e10) { - return e10.kind === 108 || yd(e10); - } - function yd(e10) { - let t12 = e10.kind; - return (t12 === 211 || t12 === 212) && e10.expression.kind === 108; - } - function RP(e10) { - let t12 = e10.kind; - return (t12 === 211 || t12 === 212) && e10.expression.kind === 110; - } - function jP(e10) { - var t12; - return !!e10 && ki7(e10) && ((t12 = e10.initializer) == null ? void 0 : t12.kind) === 110; - } - function FP(e10) { - return !!e10 && (_u3(e10) || _s7(e10)) && Ct9(e10.parent.parent) && e10.parent.parent.operatorToken.kind === 64 && e10.parent.parent.right.kind === 110; - } - function BP(e10) { - switch (e10.kind) { - case 183: - return e10.typeName; - case 233: - return co5(e10.expression) ? e10.expression : void 0; - case 80: - case 166: - return e10; - } - } - function UP(e10) { - switch (e10.kind) { - case 215: - return e10.tag; - case 286: - case 285: - return e10.tagName; - default: - return e10.expression; - } - } - function K32(e10, t12, r9, a) { - if (e10 && Qd(t12) && jr6(t12.name)) - return false; - switch (t12.kind) { - case 263: - return true; - case 231: - return !e10; - case 172: - return r9 !== void 0 && (e10 ? Yo3(r9) : dn5(r9) && !iS(t12) && !aS(t12)); - case 177: - case 178: - case 174: - return t12.body !== void 0 && r9 !== void 0 && (e10 ? Yo3(r9) : dn5(r9)); - case 169: - return e10 ? r9 !== void 0 && r9.body !== void 0 && (r9.kind === 176 || r9.kind === 174 || r9.kind === 178) && KT(r9) !== t12 && a !== void 0 && a.kind === 263 : false; - } - return false; - } - function l_(e10, t12, r9, a) { - return El3(t12) && K32(e10, t12, r9, a); - } - function A0(e10, t12, r9, a) { - return l_(e10, t12, r9, a) || s23(e10, t12, r9); - } - function s23(e10, t12, r9) { - switch (t12.kind) { - case 263: - return mt7(t12.members, (a) => A0(e10, a, t12, r9)); - case 231: - return !e10 && mt7(t12.members, (a) => A0(e10, a, t12, r9)); - case 174: - case 178: - case 176: - return mt7(t12.parameters, (a) => l_(e10, a, t12, r9)); - default: - return false; - } - } - function qP(e10, t12) { - if (l_(e10, t12)) - return true; - let r9 = YT(t12); - return !!r9 && s23(e10, r9, t12); - } - function zP(e10, t12, r9) { - let a; - if (nm(t12)) { - let { firstAccessor: _10, secondAccessor: p5, setAccessor: d5 } = P23(r9.members, t12), h5 = El3(_10) ? _10 : p5 && El3(p5) ? p5 : void 0; - if (!h5 || t12 !== h5) - return false; - a = d5 == null ? void 0 : d5.parameters; - } else - d_(t12) && (a = t12.parameters); - if (l_(e10, t12, r9)) - return true; - if (a) { - for (let _10 of a) - if (!Xl3(_10) && l_(e10, _10, t12, r9)) - return true; - } - return false; - } - function Z32(e10) { - if (e10.textSourceNode) { - switch (e10.textSourceNode.kind) { - case 11: - return Z32(e10.textSourceNode); - case 15: - return e10.text === ""; - } - return false; - } - return e10.text === ""; - } - function Mf(e10) { - let { parent: t12 } = e10; - return t12.kind === 286 || t12.kind === 285 || t12.kind === 287 ? t12.tagName === e10 : false; - } - function _23(e10) { - switch (e10.kind) { - case 108: - case 106: - case 112: - case 97: - case 14: - case 209: - case 210: - case 211: - case 212: - case 213: - case 214: - case 215: - case 234: - case 216: - case 238: - case 235: - case 217: - case 218: - case 231: - case 219: - case 222: - case 220: - case 221: - case 224: - case 225: - case 226: - case 227: - case 230: - case 228: - case 232: - case 284: - case 285: - case 288: - case 229: - case 223: - case 236: - return true; - case 233: - return !Nl3(e10.parent) && !Mm(e10.parent); - case 166: - for (; e10.parent.kind === 166; ) - e10 = e10.parent; - return e10.parent.kind === 186 || ul4(e10.parent) || zf(e10.parent) || r_(e10.parent) || Mf(e10); - case 318: - for (; r_(e10.parent); ) - e10 = e10.parent; - return e10.parent.kind === 186 || ul4(e10.parent) || zf(e10.parent) || r_(e10.parent) || Mf(e10); - case 81: - return Ct9(e10.parent) && e10.parent.left === e10 && e10.parent.operatorToken.kind === 103; - case 80: - if (e10.parent.kind === 186 || ul4(e10.parent) || zf(e10.parent) || r_(e10.parent) || Mf(e10)) - return true; - case 9: - case 10: - case 11: - case 15: - case 110: - return eT(e10); - default: - return false; - } - } - function eT(e10) { - let { parent: t12 } = e10; - switch (t12.kind) { - case 260: - case 169: - case 172: - case 171: - case 306: - case 303: - case 208: - return t12.initializer === e10; - case 244: - case 245: - case 246: - case 247: - case 253: - case 254: - case 255: - case 296: - case 257: - return t12.expression === e10; - case 248: - let r9 = t12; - return r9.initializer === e10 && r9.initializer.kind !== 261 || r9.condition === e10 || r9.incrementor === e10; - case 249: - case 250: - let a = t12; - return a.initializer === e10 && a.initializer.kind !== 261 || a.expression === e10; - case 216: - case 234: - return e10 === t12.expression; - case 239: - return e10 === t12.expression; - case 167: - return e10 === t12.expression; - case 170: - case 294: - case 293: - case 305: - return true; - case 233: - return t12.expression === e10 && !r22(t12); - case 304: - return t12.objectAssignmentInitializer === e10; - case 238: - return e10 === t12.expression; - default: - return _23(t12); - } - } - function tT(e10) { - for (; e10.kind === 166 || e10.kind === 80; ) - e10 = e10.parent; - return e10.kind === 186; - } - function WP(e10) { - return Im(e10) && !!e10.parent.moduleSpecifier; - } - function rT(e10) { - return e10.kind === 271 && e10.moduleReference.kind === 283; - } - function VP(e10) { - return N6.assert(rT(e10)), e10.moduleReference.expression; - } - function HP(e10) { - return pm(e10) && R23(e10.initializer).arguments[0]; - } - function GP(e10) { - return e10.kind === 271 && e10.moduleReference.kind !== 283; - } - function c22(e10) { - return Wt6(e10); - } - function XP(e10) { - return !Wt6(e10); - } - function Wt6(e10) { - return !!e10 && !!(e10.flags & 524288); - } - function $P(e10) { - return !!e10 && !!(e10.flags & 134217728); - } - function QP(e10) { - return !e22(e10); - } - function nT(e10) { - return !!e10 && !!(e10.flags & 16777216); - } - function YP(e10) { - return R_(e10) && Ee6(e10.typeName) && e10.typeName.escapedText === "Object" && e10.typeArguments && e10.typeArguments.length === 2 && (e10.typeArguments[0].kind === 154 || e10.typeArguments[0].kind === 150); - } - function Wl3(e10, t12) { - if (e10.kind !== 213) - return false; - let { expression: r9, arguments: a } = e10; - if (r9.kind !== 80 || r9.escapedText !== "require" || a.length !== 1) - return false; - let _10 = a[0]; - return !t12 || Kn5(_10); - } - function iT(e10) { - return aT(e10, false); - } - function pm(e10) { - return aT(e10, true); - } - function KP(e10) { - return nu4(e10) && pm(e10.parent.parent); - } - function aT(e10, t12) { - return ki7(e10) && !!e10.initializer && Wl3(t12 ? R23(e10.initializer) : e10.initializer, true); - } - function oT(e10) { - return as6(e10) && e10.declarationList.declarations.length > 0 && so3(e10.declarationList.declarations, (t12) => iT(t12)); - } - function ZP(e10) { - return e10 === 39 || e10 === 34; - } - function eI(e10, t12) { - return Xo2(t12, e10).charCodeAt(0) === 34; - } - function k0(e10) { - return Ct9(e10) || $o3(e10) || Ee6(e10) || j_(e10); - } - function sT(e10) { - return Wt6(e10) && e10.initializer && Ct9(e10.initializer) && (e10.initializer.operatorToken.kind === 57 || e10.initializer.operatorToken.kind === 61) && e10.name && co5(e10.name) && u_(e10.name, e10.initializer.left) ? e10.initializer.right : e10.initializer; - } - function tI(e10) { - let t12 = sT(e10); - return t12 && A_(t12, $l3(e10.name)); - } - function rI(e10, t12) { - return yr5(e10.properties, (r9) => _s7(r9) && Ee6(r9.name) && r9.name.escapedText === "value" && r9.initializer && A_(r9.initializer, t12)); - } - function nI(e10) { - if (e10 && e10.parent && Ct9(e10.parent) && e10.parent.operatorToken.kind === 64) { - let t12 = $l3(e10.parent.left); - return A_(e10.parent.right, t12) || iI(e10.parent.left, e10.parent.right, t12); - } - if (e10 && j_(e10) && p22(e10)) { - let t12 = rI(e10.arguments[2], e10.arguments[1].text === "prototype"); - if (t12) - return t12; - } - } - function A_(e10, t12) { - if (j_(e10)) { - let r9 = Gl4(e10.expression); - return r9.kind === 218 || r9.kind === 219 ? e10 : void 0; - } - if (e10.kind === 218 || e10.kind === 231 || e10.kind === 219 || uo4(e10) && (e10.properties.length === 0 || t12)) - return e10; - } - function iI(e10, t12, r9) { - let a = Ct9(t12) && (t12.operatorToken.kind === 57 || t12.operatorToken.kind === 61) && A_(t12.right, r9); - if (a && u_(e10, t12.left)) - return a; - } - function aI(e10) { - let t12 = ki7(e10.parent) ? e10.parent.name : Ct9(e10.parent) && e10.parent.operatorToken.kind === 64 ? e10.parent.left : void 0; - return t12 && A_(e10.right, $l3(t12)) && co5(t12) && u_(t12, e10.left); - } - function oI(e10) { - if (Ct9(e10.parent)) { - let t12 = (e10.parent.operatorToken.kind === 57 || e10.parent.operatorToken.kind === 61) && Ct9(e10.parent.parent) ? e10.parent.parent : e10.parent; - if (t12.operatorToken.kind === 64 && Ee6(t12.left)) - return t12.left; - } else if (ki7(e10.parent)) - return e10.parent.name; - } - function u_(e10, t12) { - return P0(e10) && P0(t12) ? bd(e10) === bd(t12) : ro3(e10) && Lf(t12) && (t12.expression.kind === 110 || Ee6(t12.expression) && (t12.expression.escapedText === "window" || t12.expression.escapedText === "self" || t12.expression.escapedText === "global")) ? u_(e10, lT(t12)) : Lf(e10) && Lf(t12) ? io4(e10) === io4(t12) && u_(e10.expression, t12.expression) : false; - } - function l22(e10) { - for (; Na2(e10, true); ) - e10 = e10.right; - return e10; - } - function _T(e10) { - return Ee6(e10) && e10.escapedText === "exports"; - } - function cT(e10) { - return Ee6(e10) && e10.escapedText === "module"; - } - function u22(e10) { - return (Br6(e10) || Vl3(e10)) && cT(e10.expression) && io4(e10) === "exports"; - } - function Ja4(e10) { - let t12 = sI(e10); - return t12 === 5 || Wt6(e10) ? t12 : 0; - } - function p22(e10) { - return Ka4(e10.arguments) === 3 && Br6(e10.expression) && Ee6(e10.expression.expression) && Ot10(e10.expression.expression) === "Object" && Ot10(e10.expression.name) === "defineProperty" && Qi5(e10.arguments[1]) && p_(e10.arguments[0], true); - } - function Lf(e10) { - return Br6(e10) || Vl3(e10); - } - function Vl3(e10) { - return Ra3(e10) && Qi5(e10.argumentExpression); - } - function k_(e10, t12) { - return Br6(e10) && (!t12 && e10.expression.kind === 110 || Ee6(e10.name) && p_(e10.expression, true)) || f22(e10, t12); - } - function f22(e10, t12) { - return Vl3(e10) && (!t12 && e10.expression.kind === 110 || co5(e10.expression) || k_(e10.expression, true)); - } - function p_(e10, t12) { - return co5(e10) || k_(e10, t12); - } - function lT(e10) { - return Br6(e10) ? e10.name : e10.argumentExpression; - } - function sI(e10) { - if (j_(e10)) { - if (!p22(e10)) - return 0; - let t12 = e10.arguments[0]; - return _T(t12) || u22(t12) ? 8 : k_(t12) && io4(t12) === "prototype" ? 9 : 7; - } - return e10.operatorToken.kind !== 64 || !$o3(e10.left) || _I(l22(e10)) ? 0 : p_(e10.left.expression, true) && io4(e10.left) === "prototype" && uo4(pT(e10)) ? 6 : uT(e10.left); - } - function _I(e10) { - return h6(e10) && lo3(e10.expression) && e10.expression.text === "0"; - } - function fm(e10) { - if (Br6(e10)) - return e10.name; - let t12 = Gl4(e10.argumentExpression); - return lo3(t12) || Kn5(t12) ? t12 : e10; - } - function io4(e10) { - let t12 = fm(e10); - if (t12) { - if (Ee6(t12)) - return t12.escapedText; - if (Kn5(t12) || lo3(t12)) - return Mn5(t12.text); - } - } - function uT(e10) { - if (e10.expression.kind === 110) - return 4; - if (u22(e10)) - return 2; - if (p_(e10.expression, true)) { - if ($l3(e10.expression)) - return 3; - let t12 = e10; - for (; !Ee6(t12.expression); ) - t12 = t12.expression; - let r9 = t12.expression; - if ((r9.escapedText === "exports" || r9.escapedText === "module" && io4(t12) === "exports") && k_(e10)) - return 1; - if (p_(e10, true) || Ra3(e10) && S23(e10)) - return 5; - } - return 0; - } - function pT(e10) { - for (; Ct9(e10.right); ) - e10 = e10.right; - return e10.right; - } - function cI(e10) { - return Ct9(e10) && Ja4(e10) === 3; - } - function lI(e10) { - return Wt6(e10) && e10.parent && e10.parent.kind === 244 && (!Ra3(e10) || Vl3(e10)) && !!Zd(e10.parent); - } - function uI(e10, t12) { - let { valueDeclaration: r9 } = e10; - (!r9 || !(t12.flags & 33554432 && !Wt6(t12) && !(r9.flags & 33554432)) && k0(r9) && !k0(t12) || r9.kind !== t12.kind && j32(r9)) && (e10.valueDeclaration = t12); - } - function pI(e10) { - if (!e10 || !e10.valueDeclaration) - return false; - let t12 = e10.valueDeclaration; - return t12.kind === 262 || ki7(t12) && t12.initializer && Gi5(t12.initializer); - } - function fI(e10) { - var t12, r9; - switch (e10.kind) { - case 260: - case 208: - return (t12 = Kr6(e10.initializer, (a) => Wl3(a, true))) == null ? void 0 : t12.arguments[0]; - case 272: - return On6(e10.moduleSpecifier, Kn5); - case 271: - return On6((r9 = On6(e10.moduleReference, Nm)) == null ? void 0 : r9.expression, Kn5); - case 273: - case 280: - return On6(e10.parent.moduleSpecifier, Kn5); - case 274: - case 281: - return On6(e10.parent.parent.moduleSpecifier, Kn5); - case 276: - return On6(e10.parent.parent.parent.moduleSpecifier, Kn5); - default: - N6.assertNever(e10); - } - } - function dI(e10) { - return fT(e10) || N6.failBadSyntaxKind(e10.parent); - } - function fT(e10) { - switch (e10.parent.kind) { - case 272: - case 278: - return e10.parent; - case 283: - return e10.parent.parent; - case 213: - return t23(e10.parent) || Wl3(e10.parent, false) ? e10.parent : void 0; - case 201: - return N6.assert(mn6(e10)), On6(e10.parent.parent, ru5); - default: - return; - } - } - function d23(e10) { - switch (e10.kind) { - case 272: - case 278: - return e10.moduleSpecifier; - case 271: - return e10.moduleReference.kind === 283 ? e10.moduleReference.expression : void 0; - case 205: - return H32(e10) ? e10.argument.literal : void 0; - case 213: - return e10.arguments[0]; - case 267: - return e10.name.kind === 11 ? e10.name : void 0; - default: - return N6.assertNever(e10); - } - } - function dT(e10) { - switch (e10.kind) { - case 272: - return e10.importClause && On6(e10.importClause.namedBindings, E6); - case 271: - return e10; - case 278: - return e10.exportClause && On6(e10.exportClause, Im); - default: - return N6.assertNever(e10); - } - } - function mT(e10) { - return e10.kind === 272 && !!e10.importClause && !!e10.importClause.name; - } - function mI(e10, t12) { - if (e10.name) { - let r9 = t12(e10); - if (r9) - return r9; - } - if (e10.namedBindings) { - let r9 = E6(e10.namedBindings) ? t12(e10.namedBindings) : yr5(e10.namedBindings.elements, t12); - if (r9) - return r9; - } - } - function hI(e10) { - if (e10) - switch (e10.kind) { - case 169: - case 174: - case 173: - case 304: - case 303: - case 172: - case 171: - return e10.questionToken !== void 0; - } - return false; - } - function yI(e10) { - let t12 = Om(e10) ? g_(e10.parameters) : void 0, r9 = On6(t12 && t12.name, Ee6); - return !!r9 && r9.escapedText === "new"; - } - function Hl3(e10) { - return e10.kind === 353 || e10.kind === 345 || e10.kind === 347; - } - function gI(e10) { - return Hl3(e10) || T6(e10); - } - function bI(e10) { - return ou5(e10) && Ct9(e10.expression) && e10.expression.operatorToken.kind === 64 ? l22(e10.expression) : void 0; - } - function hT(e10) { - return ou5(e10) && Ct9(e10.expression) && Ja4(e10.expression) !== 0 && Ct9(e10.expression.right) && (e10.expression.right.operatorToken.kind === 57 || e10.expression.right.operatorToken.kind === 61) ? e10.expression.right.right : void 0; - } - function m22(e10) { - switch (e10.kind) { - case 243: - let t12 = Cl2(e10); - return t12 && t12.initializer; - case 172: - return e10.initializer; - case 303: - return e10.initializer; - } - } - function Cl2(e10) { - return as6(e10) ? g_(e10.declarationList.declarations) : void 0; - } - function yT(e10) { - return Yi5(e10) && e10.body && e10.body.kind === 267 ? e10.body : void 0; - } - function vI(e10) { - if (e10.kind >= 243 && e10.kind <= 259) - return true; - switch (e10.kind) { - case 80: - case 110: - case 108: - case 166: - case 236: - case 212: - case 211: - case 208: - case 218: - case 219: - case 174: - case 177: - case 178: - return true; - default: - return false; - } - } - function dm(e10) { - switch (e10.kind) { - case 219: - case 226: - case 241: - case 252: - case 179: - case 296: - case 263: - case 231: - case 175: - case 176: - case 185: - case 180: - case 251: - case 259: - case 246: - case 212: - case 242: - case 1: - case 266: - case 306: - case 277: - case 278: - case 281: - case 244: - case 249: - case 250: - case 248: - case 262: - case 218: - case 184: - case 177: - case 80: - case 245: - case 272: - case 271: - case 181: - case 264: - case 324: - case 330: - case 256: - case 174: - case 173: - case 267: - case 202: - case 270: - case 210: - case 169: - case 217: - case 211: - case 303: - case 172: - case 171: - case 253: - case 240: - case 178: - case 304: - case 305: - case 255: - case 257: - case 258: - case 265: - case 168: - case 260: - case 243: - case 247: - case 254: - return true; - default: - return false; - } - } - function gT(e10, t12) { - let r9; - n22(e10) && E32(e10) && Wi4(e10.initializer) && (r9 = Rr7(r9, Fb(e10, ka3(e10.initializer.jsDoc)))); - let a = e10; - for (; a && a.parent; ) { - if (Wi4(a) && (r9 = Rr7(r9, Fb(e10, ka3(a.jsDoc)))), a.kind === 169) { - r9 = Rr7(r9, (t12 ? J42 : Kd)(a)); - break; - } - if (a.kind === 168) { - r9 = Rr7(r9, (t12 ? F42 : j42)(a)); - break; - } - a = bT(a); - } - return r9 || $e9; - } - function Fb(e10, t12) { - if (cs4(t12)) { - let r9 = $r4(t12.tags, (a) => Bb(e10, a)); - return t12.tags === r9 ? [t12] : r9; - } - return Bb(e10, t12) ? [t12] : void 0; - } - function Bb(e10, t12) { - return !(lu3(t12) || j62(t12)) || !t12.parent || !cs4(t12.parent) || !is7(t12.parent.parent) || t12.parent.parent === e10; - } - function bT(e10) { - let t12 = e10.parent; - if (t12.kind === 303 || t12.kind === 277 || t12.kind === 172 || t12.kind === 244 && e10.kind === 211 || t12.kind === 253 || yT(t12) || Ct9(e10) && e10.operatorToken.kind === 64) - return t12; - if (t12.parent && (Cl2(t12.parent) === e10 || Ct9(t12) && t12.operatorToken.kind === 64)) - return t12.parent; - if (t12.parent && t12.parent.parent && (Cl2(t12.parent.parent) || m22(t12.parent.parent) === e10 || hT(t12.parent.parent))) - return t12.parent.parent; - } - function TI(e10) { - if (e10.symbol) - return e10.symbol; - if (!Ee6(e10.name)) - return; - let t12 = e10.name.escapedText, r9 = h22(e10); - if (!r9) - return; - let a = Yr7(r9.parameters, (_10) => _10.name.kind === 80 && _10.name.escapedText === t12); - return a && a.symbol; - } - function SI(e10) { - if (cs4(e10.parent) && e10.parent.tags) { - let t12 = Yr7(e10.parent.tags, Hl3); - if (t12) - return t12; - } - return h22(e10); - } - function h22(e10) { - let t12 = y23(e10); - if (t12) - return Zl3(t12) && t12.type && Gi5(t12.type) ? t12.type : Gi5(t12) ? t12 : void 0; - } - function y23(e10) { - let t12 = vT(e10); - if (t12) - return hT(t12) || bI(t12) || m22(t12) || Cl2(t12) || yT(t12) || t12; - } - function vT(e10) { - let t12 = g22(e10); - if (!t12) - return; - let r9 = t12.parent; - if (r9 && r9.jsDoc && t12 === wi7(r9.jsDoc)) - return r9; - } - function g22(e10) { - return Kr6(e10.parent, cs4); - } - function xI(e10) { - let t12 = e10.name.escapedText, { typeParameters: r9 } = e10.parent.parent.parent; - return r9 && Yr7(r9, (a) => a.name.escapedText === t12); - } - function wI(e10) { - return !!e10.typeArguments; - } - function TT(e10) { - let t12 = e10.parent; - for (; ; ) { - switch (t12.kind) { - case 226: - let r9 = t12.operatorToken.kind; - return D_(r9) && t12.left === e10 ? r9 === 64 || vm(r9) ? 1 : 2 : 0; - case 224: - case 225: - let a = t12.operator; - return a === 46 || a === 47 ? 2 : 0; - case 249: - case 250: - return t12.initializer === e10 ? 1 : 0; - case 217: - case 209: - case 230: - case 235: - e10 = t12; - break; - case 305: - e10 = t12.parent; - break; - case 304: - if (t12.name !== e10) - return 0; - e10 = t12.parent; - break; - case 303: - if (t12.name === e10) - return 0; - e10 = t12.parent; - break; - default: - return 0; - } - t12 = e10.parent; - } - } - function CI(e10) { - return TT(e10) !== 0; - } - function EI(e10) { - switch (e10.kind) { - case 241: - case 243: - case 254: - case 245: - case 255: - case 269: - case 296: - case 297: - case 256: - case 248: - case 249: - case 250: - case 246: - case 247: - case 258: - case 299: - return true; - } - return false; - } - function AI(e10) { - return Am(e10) || km(e10) || Rg(e10) || os9(e10) || J_(e10); - } - function ST(e10, t12) { - for (; e10 && e10.kind === t12; ) - e10 = e10.parent; - return e10; - } - function kI(e10) { - return ST(e10, 196); - } - function xT(e10) { - return ST(e10, 217); - } - function DI(e10) { - let t12; - for (; e10 && e10.kind === 196; ) - t12 = e10, e10 = e10.parent; - return [t12, e10]; - } - function PI(e10) { - for (; f6(e10); ) - e10 = e10.type; - return e10; - } - function Gl4(e10, t12) { - return ls6(e10, t12 ? 17 : 1); - } - function II(e10) { - return e10.kind !== 211 && e10.kind !== 212 ? false : (e10 = xT(e10.parent), e10 && e10.kind === 220); - } - function NI(e10, t12) { - for (; e10; ) { - if (e10 === t12) - return true; - e10 = e10.parent; - } - return false; - } - function wT(e10) { - return !ii8(e10) && !im(e10) && Ho4(e10.parent) && e10.parent.name === e10; - } - function OI(e10) { - let t12 = e10.parent; - switch (e10.kind) { - case 11: - case 15: - case 9: - if (ao4(t12)) - return t12.parent; - case 80: - if (Ho4(t12)) - return t12.name === e10 ? t12 : void 0; - if (M_(t12)) { - let r9 = t12.parent; - return h_(r9) && r9.name === t12 ? r9 : void 0; - } else { - let r9 = t12.parent; - return Ct9(r9) && Ja4(r9) !== 0 && (r9.left.symbol || r9.symbol) && Bl3(r9) === e10 ? r9 : void 0; - } - case 81: - return Ho4(t12) && t12.name === e10 ? t12 : void 0; - default: - return; - } - } - function CT(e10) { - return Qi5(e10) && e10.parent.kind === 167 && Ho4(e10.parent.parent); - } - function MI(e10) { - let t12 = e10.parent; - switch (t12.kind) { - case 172: - case 171: - case 174: - case 173: - case 177: - case 178: - case 306: - case 303: - case 211: - return t12.name === e10; - case 166: - return t12.right === e10; - case 208: - case 276: - return t12.propertyName === e10; - case 281: - case 291: - case 285: - case 286: - case 287: - return true; - } - return false; - } - function LI(e10) { - return e10.kind === 271 || e10.kind === 270 || e10.kind === 273 && e10.name || e10.kind === 274 || e10.kind === 280 || e10.kind === 276 || e10.kind === 281 || e10.kind === 277 && D0(e10) ? true : Wt6(e10) && (Ct9(e10) && Ja4(e10) === 2 && D0(e10) || Br6(e10) && Ct9(e10.parent) && e10.parent.left === e10 && e10.parent.operatorToken.kind === 64 && b23(e10.parent.right)); - } - function ET(e10) { - switch (e10.parent.kind) { - case 273: - case 276: - case 274: - case 281: - case 277: - case 271: - case 280: - return e10.parent; - case 166: - do - e10 = e10.parent; - while (e10.parent.kind === 166); - return ET(e10); - } - } - function b23(e10) { - return co5(e10) || Il3(e10); - } - function D0(e10) { - let t12 = AT(e10); - return b23(t12); - } - function AT(e10) { - return ss7(e10) ? e10.expression : e10.right; - } - function JI(e10) { - return e10.kind === 304 ? e10.name : e10.kind === 303 ? e10.initializer : e10.parent.right; - } - function kT(e10) { - let t12 = DT(e10); - if (t12 && Wt6(e10)) { - let r9 = B42(e10); - if (r9) - return r9.class; - } - return t12; - } - function DT(e10) { - let t12 = mm(e10.heritageClauses, 96); - return t12 && t12.types.length > 0 ? t12.types[0] : void 0; - } - function PT(e10) { - if (Wt6(e10)) - return U42(e10).map((t12) => t12.class); - { - let t12 = mm(e10.heritageClauses, 119); - return t12 == null ? void 0 : t12.types; - } - } - function IT(e10) { - return su5(e10) ? NT(e10) || $e9 : dn5(e10) && y_($f(kT(e10)), PT(e10)) || $e9; - } - function NT(e10) { - let t12 = mm(e10.heritageClauses, 96); - return t12 ? t12.types : void 0; - } - function mm(e10, t12) { - if (e10) { - for (let r9 of e10) - if (r9.token === t12) - return r9; - } - } - function RI(e10, t12) { - for (; e10; ) { - if (e10.kind === t12) - return e10; - e10 = e10.parent; - } - } - function Si6(e10) { - return 83 <= e10 && e10 <= 165; - } - function OT(e10) { - return 19 <= e10 && e10 <= 79; - } - function Jf(e10) { - return Si6(e10) || OT(e10); - } - function v22(e10) { - return 128 <= e10 && e10 <= 165; - } - function MT(e10) { - return Si6(e10) && !v22(e10); - } - function jI(e10) { - return 119 <= e10 && e10 <= 127; - } - function FI(e10) { - let t12 = Rl3(e10); - return t12 !== void 0 && MT(t12); - } - function BI(e10) { - let t12 = Rl3(e10); - return t12 !== void 0 && Si6(t12); - } - function UI(e10) { - let t12 = P42(e10); - return !!t12 && !v22(t12); - } - function qI(e10) { - return 2 <= e10 && e10 <= 7; - } - function zI(e10) { - if (!e10) - return 4; - let t12 = 0; - switch (e10.kind) { - case 262: - case 218: - case 174: - e10.asteriskToken && (t12 |= 1); - case 219: - gr6(e10, 512) && (t12 |= 2); - break; - } - return e10.body || (t12 |= 4), t12; - } - function WI(e10) { - switch (e10.kind) { - case 262: - case 218: - case 219: - case 174: - return e10.body !== void 0 && e10.asteriskToken === void 0 && gr6(e10, 512); - } - return false; - } - function Qi5(e10) { - return Kn5(e10) || lo3(e10); - } - function T23(e10) { - return Dm2(e10) && (e10.operator === 40 || e10.operator === 41) && lo3(e10.operand); - } - function LT(e10) { - let t12 = Bl3(e10); - return !!t12 && S23(t12); - } - function S23(e10) { - if (!(e10.kind === 167 || e10.kind === 212)) - return false; - let t12 = Ra3(e10) ? Gl4(e10.argumentExpression) : e10.expression; - return !Qi5(t12) && !T23(t12); - } - function gd(e10) { - switch (e10.kind) { - case 80: - case 81: - return e10.escapedText; - case 11: - case 9: - return Mn5(e10.text); - case 167: - let t12 = e10.expression; - return Qi5(t12) ? Mn5(t12.text) : T23(t12) ? t12.operator === 41 ? nr7(t12.operator) + t12.operand.text : t12.operand.text : void 0; - case 295: - return Yl4(e10); - default: - return N6.assertNever(e10); - } - } - function P0(e10) { - switch (e10.kind) { - case 80: - case 11: - case 15: - case 9: - return true; - default: - return false; - } - } - function bd(e10) { - return ro3(e10) ? Ot10(e10) : U_(e10) ? Kl3(e10) : e10.text; - } - function JT(e10) { - return ro3(e10) ? e10.escapedText : U_(e10) ? Yl4(e10) : Mn5(e10.text); - } - function VI(e10) { - return `__@${getSymbolId(e10)}@${e10.escapedName}`; - } - function HI(e10, t12) { - return `__#${getSymbolId(e10)}@${t12}`; - } - function GI(e10) { - return Fr5(e10.escapedName, "__@"); - } - function XI(e10) { - return Fr5(e10.escapedName, "__#"); - } - function $I(e10) { - return e10.kind === 80 && e10.escapedText === "Symbol"; - } - function RT(e10) { - return Ee6(e10) ? Ot10(e10) === "__proto__" : mn6(e10) && e10.text === "__proto__"; - } - function Ks5(e10, t12) { - switch (e10 = ls6(e10), e10.kind) { - case 231: - if (classHasDeclaredOrExplicitlyAssignedName(e10)) - return false; - break; - case 218: - if (e10.name) - return false; - break; - case 219: - break; - default: - return false; - } - return typeof t12 == "function" ? t12(e10) : true; - } - function jT(e10) { - switch (e10.kind) { - case 303: - return !RT(e10.name); - case 304: - return !!e10.objectAssignmentInitializer; - case 260: - return Ee6(e10.name) && !!e10.initializer; - case 169: - return Ee6(e10.name) && !!e10.initializer && !e10.dotDotDotToken; - case 208: - return Ee6(e10.name) && !!e10.initializer && !e10.dotDotDotToken; - case 172: - return !!e10.initializer; - case 226: - switch (e10.operatorToken.kind) { - case 64: - case 77: - case 76: - case 78: - return Ee6(e10.left); - } - break; - case 277: - return true; - } - return false; - } - function QI(e10, t12) { - if (!jT(e10)) - return false; - switch (e10.kind) { - case 303: - return Ks5(e10.initializer, t12); - case 304: - return Ks5(e10.objectAssignmentInitializer, t12); - case 260: - case 169: - case 208: - case 172: - return Ks5(e10.initializer, t12); - case 226: - return Ks5(e10.right, t12); - case 277: - return Ks5(e10.expression, t12); - } - } - function YI(e10) { - return e10.escapedText === "push" || e10.escapedText === "unshift"; - } - function KI(e10) { - return hm(e10).kind === 169; - } - function hm(e10) { - for (; e10.kind === 208; ) - e10 = e10.parent.parent; - return e10; - } - function ZI(e10) { - let t12 = e10.kind; - return t12 === 176 || t12 === 218 || t12 === 262 || t12 === 219 || t12 === 174 || t12 === 177 || t12 === 178 || t12 === 267 || t12 === 312; - } - function Ta2(e10) { - return Oa3(e10.pos) || Oa3(e10.end); - } - function eN(e10) { - return Fl3(e10, ii8) || e10; - } - function tN(e10) { - let t12 = x23(e10), r9 = e10.kind === 214 && e10.arguments !== void 0; - return FT(e10.kind, t12, r9); - } - function FT(e10, t12, r9) { - switch (e10) { - case 214: - return r9 ? 0 : 1; - case 224: - case 221: - case 222: - case 220: - case 223: - case 227: - case 229: - return 1; - case 226: - switch (t12) { - case 43: - case 64: - case 65: - case 66: - case 68: - case 67: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 79: - case 75: - case 76: - case 77: - case 78: - return 1; - } - } - return 0; - } - function rN(e10) { - let t12 = x23(e10), r9 = e10.kind === 214 && e10.arguments !== void 0; - return BT(e10.kind, t12, r9); - } - function x23(e10) { - return e10.kind === 226 ? e10.operatorToken.kind : e10.kind === 224 || e10.kind === 225 ? e10.operator : e10.kind; - } - function BT(e10, t12, r9) { - switch (e10) { - case 361: - return 0; - case 230: - return 1; - case 229: - return 2; - case 227: - return 4; - case 226: - switch (t12) { - case 28: - return 0; - case 64: - case 65: - case 66: - case 68: - case 67: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 79: - case 75: - case 76: - case 77: - case 78: - return 3; - default: - return pl3(t12); - } - case 216: - case 235: - case 224: - case 221: - case 222: - case 220: - case 223: - return 16; - case 225: - return 17; - case 213: - return 18; - case 214: - return r9 ? 19 : 18; - case 215: - case 211: - case 212: - case 236: - return 19; - case 234: - case 238: - return 11; - case 110: - case 108: - case 80: - case 81: - case 106: - case 112: - case 97: - case 9: - case 10: - case 11: - case 209: - case 210: - case 218: - case 219: - case 231: - case 14: - case 15: - case 228: - case 217: - case 232: - case 284: - case 285: - case 288: - return 20; - default: - return -1; - } - } - function pl3(e10) { - switch (e10) { - case 61: - return 4; - case 57: - return 5; - case 56: - return 6; - case 52: - return 7; - case 53: - return 8; - case 51: - return 9; - case 35: - case 36: - case 37: - case 38: - return 10; - case 30: - case 32: - case 33: - case 34: - case 104: - case 103: - case 130: - case 152: - return 11; - case 48: - case 49: - case 50: - return 12; - case 40: - case 41: - return 13; - case 42: - case 44: - case 45: - return 14; - case 43: - return 15; - } - return -1; - } - function nN(e10) { - return $r4(e10, (t12) => { - switch (t12.kind) { - case 294: - return !!t12.expression; - case 12: - return !t12.containsOnlyTriviaWhiteSpaces; - default: - return true; - } - }); - } - function iN() { - let e10 = [], t12 = [], r9 = /* @__PURE__ */ new Map(), a = false; - return { add: p5, lookup: _10, getGlobalDiagnostics: d5, getDiagnostics: h5 }; - function _10(l) { - let v10; - if (l.file ? v10 = r9.get(l.file.fileName) : v10 = e10, !v10) - return; - let y5 = Ml4(v10, l, bt7, xd); - if (y5 >= 0) - return v10[y5]; - } - function p5(l) { - let v10; - l.file ? (v10 = r9.get(l.file.fileName), v10 || (v10 = [], r9.set(l.file.fileName, v10), yl3(t12, l.file.fileName, Ci7))) : (a && (a = false, e10 = e10.slice()), v10 = e10), yl3(v10, l, xd); - } - function d5() { - return a = true, e10; - } - function h5(l) { - if (l) - return r9.get(l) || []; - let v10 = Tv(t12, (y5) => r9.get(y5)); - return e10.length && v10.unshift(...e10), v10; - } - } - function aN(e10) { - return e10.replace(bx, "\\${"); - } - function UT(e10) { - return e10 && !!(Bx(e10) ? e10.templateFlags : e10.head.templateFlags || mt7(e10.templateSpans, (t12) => !!t12.literal.templateFlags)); - } - function qT(e10) { - return "\\u" + ("0000" + e10.toString(16).toUpperCase()).slice(-4); - } - function oN(e10, t12, r9) { - if (e10.charCodeAt(0) === 0) { - let a = r9.charCodeAt(t12 + e10.length); - return a >= 48 && a <= 57 ? "\\x00" : "\\0"; - } - return xx.get(e10) || qT(e10.charCodeAt(0)); - } - function vd(e10, t12) { - let r9 = t12 === 96 ? Sx : t12 === 39 ? Tx : vx; - return e10.replace(r9, oN); - } - function Td(e10, t12) { - return e10 = vd(e10, t12), W0.test(e10) ? e10.replace(W0, (r9) => qT(r9.charCodeAt(0))) : e10; - } - function sN(e10) { - return "&#x" + e10.toString(16).toUpperCase() + ";"; - } - function _N(e10) { - return e10.charCodeAt(0) === 0 ? "�" : Ex.get(e10) || sN(e10.charCodeAt(0)); - } - function zT(e10, t12) { - let r9 = t12 === 39 ? Cx : wx; - return e10.replace(r9, _N); - } - function cN(e10) { - let t12 = e10.length; - return t12 >= 2 && e10.charCodeAt(0) === e10.charCodeAt(t12 - 1) && lN(e10.charCodeAt(0)) ? e10.substring(1, t12 - 1) : e10; - } - function lN(e10) { - return e10 === 39 || e10 === 34 || e10 === 96; - } - function WT(e10) { - let t12 = e10.charCodeAt(0); - return t12 >= 97 && t12 <= 122 || eo3(e10, "-"); - } - function w23(e10) { - let t12 = Po2[1]; - for (let r9 = Po2.length; r9 <= e10; r9++) - Po2.push(Po2[r9 - 1] + t12); - return Po2[e10]; - } - function Jo2() { - return Po2[1].length; - } - function uN() { - return eo3(Hf, "-dev") || eo3(Hf, "-insiders"); - } - function pN(e10) { - var t12, r9, a, _10, p5, d5 = false; - function h5(K7) { - let ue7 = Vd(K7); - ue7.length > 1 ? (_10 = _10 + ue7.length - 1, p5 = t12.length - K7.length + ka3(ue7), a = p5 - t12.length === 0) : a = false; - } - function l(K7) { - K7 && K7.length && (a && (K7 = w23(r9) + K7, a = false), t12 += K7, h5(K7)); - } - function v10(K7) { - K7 && (d5 = false), l(K7); - } - function y5(K7) { - K7 && (d5 = true), l(K7); - } - function C10() { - t12 = "", r9 = 0, a = true, _10 = 0, p5 = 0, d5 = false; - } - function S10(K7) { - K7 !== void 0 && (t12 += K7, h5(K7), d5 = false); - } - function k7(K7) { - K7 && K7.length && v10(K7); - } - function L7(K7) { - (!a || K7) && (t12 += e10, _10++, p5 = t12.length, a = true, d5 = false); - } - function G10() { - return a ? t12.length : t12.length + e10.length; - } - return C10(), { write: v10, rawWrite: S10, writeLiteral: k7, writeLine: L7, increaseIndent: () => { - r9++; - }, decreaseIndent: () => { - r9--; - }, getIndent: () => r9, getTextPos: () => t12.length, getLine: () => _10, getColumn: () => a ? r9 * Jo2() : t12.length - p5, getText: () => t12, isAtStartOfLine: () => a, hasTrailingComment: () => d5, hasTrailingWhitespace: () => !!t12.length && Vi5(t12.charCodeAt(t12.length - 1)), clear: C10, writeKeyword: v10, writeOperator: v10, writeParameter: v10, writeProperty: v10, writePunctuation: v10, writeSpace: v10, writeStringLiteral: v10, writeSymbol: (K7, ue7) => v10(K7), writeTrailingSemicolon: v10, writeComment: y5, getTextPosWithWriteLine: G10 }; - } - function fN(e10) { - let t12 = false; - function r9() { - t12 && (e10.writeTrailingSemicolon(";"), t12 = false); - } - return { ...e10, writeTrailingSemicolon() { - t12 = true; - }, writeLiteral(a) { - r9(), e10.writeLiteral(a); - }, writeStringLiteral(a) { - r9(), e10.writeStringLiteral(a); - }, writeSymbol(a, _10) { - r9(), e10.writeSymbol(a, _10); - }, writePunctuation(a) { - r9(), e10.writePunctuation(a); - }, writeKeyword(a) { - r9(), e10.writeKeyword(a); - }, writeOperator(a) { - r9(), e10.writeOperator(a); - }, writeParameter(a) { - r9(), e10.writeParameter(a); - }, writeSpace(a) { - r9(), e10.writeSpace(a); - }, writeProperty(a) { - r9(), e10.writeProperty(a); - }, writeComment(a) { - r9(), e10.writeComment(a); - }, writeLine() { - r9(), e10.writeLine(); - }, increaseIndent() { - r9(), e10.increaseIndent(); - }, decreaseIndent() { - r9(), e10.decreaseIndent(); - } }; - } - function C23(e10) { - return e10.useCaseSensitiveFileNames ? e10.useCaseSensitiveFileNames() : false; - } - function VT(e10) { - return Bd(C23(e10)); - } - function HT(e10, t12, r9) { - return t12.moduleName || E23(e10, t12.fileName, r9 && r9.fileName); - } - function Ub(e10, t12) { - return e10.getCanonicalFileName(Pa3(t12, e10.getCurrentDirectory())); - } - function dN(e10, t12, r9) { - let a = t12.getExternalModuleFileFromDeclaration(r9); - if (!a || a.isDeclarationFile) - return; - let _10 = d23(r9); - if (!(_10 && Kn5(_10) && !rs6(_10.text) && Ub(e10, a.path).indexOf(Ub(e10, zo3(e10.getCommonSourceDirectory()))) === -1)) - return HT(e10, a); - } - function E23(e10, t12, r9) { - let a = (l) => e10.getCanonicalFileName(l), _10 = xi8(r9 ? $i5(r9) : e10.getCommonSourceDirectory(), e10.getCurrentDirectory(), a), p5 = Pa3(t12, e10.getCurrentDirectory()), d5 = bg3(_10, p5, _10, a, false), h5 = Al2(d5); - return r9 ? hg2(h5) : h5; - } - function mN(e10, t12, r9) { - let a = t12.getCompilerOptions(), _10; - return a.outDir ? _10 = Al2($T(e10, t12, a.outDir)) : _10 = Al2(e10), _10 + r9; - } - function hN(e10, t12) { - return GT(e10, t12.getCompilerOptions(), t12.getCurrentDirectory(), t12.getCommonSourceDirectory(), (r9) => t12.getCanonicalFileName(r9)); - } - function GT(e10, t12, r9, a, _10) { - let p5 = t12.declarationDir || t12.outDir, d5 = p5 ? k23(e10, p5, r9, a, _10) : e10, h5 = XT(d5); - return Al2(d5) + h5; - } - function XT(e10) { - return ei7(e10, [".mjs", ".mts"]) ? ".d.mts" : ei7(e10, [".cjs", ".cts"]) ? ".d.cts" : ei7(e10, [".json"]) ? ".d.json.ts" : ".d.ts"; - } - function yN(e10) { - return ei7(e10, [".d.mts", ".mjs", ".mts"]) ? [".mts", ".mjs"] : ei7(e10, [".d.cts", ".cjs", ".cts"]) ? [".cts", ".cjs"] : ei7(e10, [".d.json.ts"]) ? [".json"] : [".tsx", ".ts", ".jsx", ".js"]; - } - function A23(e10) { - return e10.outFile || e10.out; - } - function gN(e10, t12) { - var r9; - if (e10.paths) - return e10.baseUrl ?? N6.checkDefined(e10.pathsBasePath || ((r9 = t12.getCurrentDirectory) == null ? void 0 : r9.call(t12)), "Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'."); - } - function bN(e10, t12, r9) { - let a = e10.getCompilerOptions(); - if (A23(a)) { - let _10 = ni7(a), p5 = a.emitDeclarationOnly || _10 === 2 || _10 === 4; - return $r4(e10.getSourceFiles(), (d5) => (p5 || !Zo2(d5)) && I02(d5, e10, r9)); - } else { - let _10 = t12 === void 0 ? e10.getSourceFiles() : [t12]; - return $r4(_10, (p5) => I02(p5, e10, r9)); - } - } - function I02(e10, t12, r9) { - return !(t12.getCompilerOptions().noEmitForJsFiles && c22(e10)) && !e10.isDeclarationFile && !t12.isSourceFileFromExternalLibrary(e10) && (r9 || !(e22(e10) && t12.getResolvedProjectReferenceToRedirect(e10.fileName)) && !t12.isSourceOfProjectReferenceRedirect(e10.fileName)); - } - function $T(e10, t12, r9) { - return k23(e10, r9, t12.getCurrentDirectory(), t12.getCommonSourceDirectory(), (a) => t12.getCanonicalFileName(a)); - } - function k23(e10, t12, r9, a, _10) { - let p5 = Pa3(e10, r9); - return p5 = _10(p5).indexOf(_10(a)) === 0 ? p5.substring(a.length) : p5, hr5(t12, p5); - } - function vN(e10, t12, r9, a, _10, p5, d5) { - e10.writeFile(r9, a, _10, (h5) => { - t12.add(fl2(U8.Could_not_write_file_0_Colon_1, r9, h5)); - }, p5, d5); - } - function QT(e10, t12, r9) { - if (e10.length > Ei7(e10) && !r9(e10)) { - let a = $i5(e10); - QT(a, t12, r9), t12(e10); - } - } - function TN(e10, t12, r9, a, _10, p5) { - try { - a(e10, t12, r9); - } catch { - QT($i5(pn6(e10)), _10, p5), a(e10, t12, r9); - } - } - function SN(e10, t12) { - let r9 = Ia4(e10); - return __(r9, t12); - } - function Ca5(e10, t12) { - return __(e10, t12); - } - function YT(e10) { - return Yr7(e10.members, (t12) => J_(t12) && wl2(t12.body)); - } - function D23(e10) { - if (e10 && e10.parameters.length > 0) { - let t12 = e10.parameters.length === 2 && Xl3(e10.parameters[0]); - return e10.parameters[t12 ? 1 : 0]; - } - } - function xN(e10) { - let t12 = D23(e10); - return t12 && t12.type; - } - function KT(e10) { - if (e10.parameters.length && !cu4(e10)) { - let t12 = e10.parameters[0]; - if (Xl3(t12)) - return t12; - } - } - function Xl3(e10) { - return ym(e10.name); - } - function ym(e10) { - return !!e10 && e10.kind === 80 && ZT(e10); - } - function wN(e10) { - return !!Kr6(e10, (t12) => t12.kind === 186 ? true : t12.kind === 80 || t12.kind === 166 ? false : "quit"); - } - function CN(e10) { - if (!ym(e10)) - return false; - for (; M_(e10.parent) && e10.parent.left === e10; ) - e10 = e10.parent; - return e10.parent.kind === 186; - } - function ZT(e10) { - return e10.escapedText === "this"; - } - function P23(e10, t12) { - let r9, a, _10, p5; - return LT(t12) ? (r9 = t12, t12.kind === 177 ? _10 = t12 : t12.kind === 178 ? p5 = t12 : N6.fail("Accessor has wrong kind")) : yr5(e10, (d5) => { - if (nm(d5) && N02(d5) === N02(t12)) { - let h5 = gd(d5.name), l = gd(t12.name); - h5 === l && (r9 ? a || (a = d5) : r9 = d5, d5.kind === 177 && !_10 && (_10 = d5), d5.kind === 178 && !p5 && (p5 = d5)); - } - }), { firstAccessor: r9, secondAccessor: a, getAccessor: _10, setAccessor: p5 }; - } - function I23(e10) { - if (!Wt6(e10) && os9(e10)) - return; - let t12 = e10.type; - return t12 || !Wt6(e10) ? t12 : Ig(e10) ? e10.typeExpression && e10.typeExpression.type : em(e10); - } - function EN(e10) { - return e10.type; - } - function AN(e10) { - return cu4(e10) ? e10.type && e10.type.typeExpression && e10.type.typeExpression.type : e10.type || (Wt6(e10) ? $42(e10) : void 0); - } - function eS(e10) { - return Bo3(Ul4(e10), (t12) => kN(t12) ? t12.typeParameters : void 0); - } - function kN(e10) { - return Ko3(e10) && !(e10.parent.kind === 327 && (e10.parent.tags.some(Hl3) || e10.parent.tags.some(L62))); - } - function DN(e10) { - let t12 = D23(e10); - return t12 && I23(t12); - } - function tS(e10, t12, r9, a) { - rS(e10, t12, r9.pos, a); - } - function rS(e10, t12, r9, a) { - a && a.length && r9 !== a[0].pos && Ca5(e10, r9) !== Ca5(e10, a[0].pos) && t12.writeLine(); - } - function PN(e10, t12, r9, a) { - r9 !== a && Ca5(e10, r9) !== Ca5(e10, a) && t12.writeLine(); - } - function nS(e10, t12, r9, a, _10, p5, d5, h5) { - if (a && a.length > 0) { - _10 && r9.writeSpace(" "); - let l = false; - for (let v10 of a) - l && (r9.writeSpace(" "), l = false), h5(e10, t12, r9, v10.pos, v10.end, d5), v10.hasTrailingNewLine ? r9.writeLine() : l = true; - l && p5 && r9.writeSpace(" "); - } - } - function IN(e10, t12, r9, a, _10, p5, d5) { - let h5, l; - if (d5 ? _10.pos === 0 && (h5 = $r4(Wo3(e10, _10.pos), v10)) : h5 = Wo3(e10, _10.pos), h5) { - let y5 = [], C10; - for (let S10 of h5) { - if (C10) { - let k7 = Ca5(t12, C10.end); - if (Ca5(t12, S10.pos) >= k7 + 2) - break; - } - y5.push(S10), C10 = S10; - } - if (y5.length) { - let S10 = Ca5(t12, ka3(y5).end); - Ca5(t12, Nt9(e10, _10.pos)) >= S10 + 2 && (tS(t12, r9, _10, h5), nS(e10, t12, r9, y5, false, true, p5, a), l = { nodePos: _10.pos, detachedCommentEndPos: ka3(y5).end }); - } - } - return l; - function v10(y5) { - return L32(e10, y5.pos); - } - } - function NN(e10, t12, r9, a, _10, p5) { - if (e10.charCodeAt(a + 1) === 42) { - let d5 = Sg(t12, a), h5 = t12.length, l; - for (let v10 = a, y5 = d5.line; v10 < _10; y5++) { - let C10 = y5 + 1 === h5 ? e10.length + 1 : t12[y5 + 1]; - if (v10 !== a) { - l === void 0 && (l = qb(e10, t12[d5.line], a)); - let k7 = r9.getIndent() * Jo2() - l + qb(e10, v10, C10); - if (k7 > 0) { - let L7 = k7 % Jo2(), G10 = w23((k7 - L7) / Jo2()); - for (r9.rawWrite(G10); L7; ) - r9.rawWrite(" "), L7--; - } else - r9.rawWrite(""); - } - ON(e10, _10, r9, p5, v10, C10), v10 = C10; - } - } else - r9.writeComment(e10.substring(a, _10)); - } - function ON(e10, t12, r9, a, _10, p5) { - let d5 = Math.min(t12, p5 - 1), h5 = Ud(e10.substring(_10, d5)); - h5 ? (r9.writeComment(h5), d5 !== t12 && r9.writeLine()) : r9.rawWrite(a); - } - function qb(e10, t12, r9) { - let a = 0; - for (; t12 < r9 && Io2(e10.charCodeAt(t12)); t12++) - e10.charCodeAt(t12) === 9 ? a += Jo2() - a % Jo2() : a++; - return a; - } - function MN(e10) { - return bm(e10) !== 0; - } - function LN(e10) { - return M23(e10) !== 0; - } - function N23(e10, t12) { - return !!sS(e10, t12); - } - function gr6(e10, t12) { - return !!_S(e10, t12); - } - function N02(e10) { - return no3(e10) && gm(e10) || eu5(e10); - } - function gm(e10) { - return gr6(e10, 32); - } - function JN(e10) { - return N23(e10, 16384); - } - function iS(e10) { - return gr6(e10, 256); - } - function aS(e10) { - return gr6(e10, 2); - } - function oS(e10) { - return gr6(e10, 128); - } - function O02(e10) { - return N23(e10, 64); - } - function El3(e10) { - return gr6(e10, 131072); - } - function sS(e10, t12) { - return bm(e10) & t12; - } - function _S(e10, t12) { - return M23(e10) & t12; - } - function O23(e10, t12, r9) { - return e10.kind >= 0 && e10.kind <= 165 ? 0 : (e10.modifierFlagsCache & 536870912 || (e10.modifierFlagsCache = L23(e10) | 536870912), t12 && !(e10.modifierFlagsCache & 4096) && (r9 || Wt6(e10)) && e10.parent && (e10.modifierFlagsCache |= lS(e10) | 4096), e10.modifierFlagsCache & -536875009); - } - function bm(e10) { - return O23(e10, true); - } - function cS(e10) { - return O23(e10, true, true); - } - function M23(e10) { - return O23(e10, false); - } - function lS(e10) { - let t12 = 0; - return e10.parent && !Ma3(e10) && (Wt6(e10) && (q42(e10) && (t12 |= 4), z42(e10) && (t12 |= 8), W42(e10) && (t12 |= 16), V42(e10) && (t12 |= 64), H42(e10) && (t12 |= 16384)), G42(e10) && (t12 |= 8192)), t12; - } - function uS(e10) { - return L23(e10) | lS(e10); - } - function L23(e10) { - let t12 = q_(e10) ? ln6(e10.modifiers) : 0; - return (e10.flags & 8 || e10.kind === 80 && e10.flags & 4096) && (t12 |= 1), t12; - } - function ln6(e10) { - let t12 = 0; - if (e10) - for (let r9 of e10) - t12 |= J23(r9.kind); - return t12; - } - function J23(e10) { - switch (e10) { - case 126: - return 32; - case 125: - return 4; - case 124: - return 16; - case 123: - return 8; - case 128: - return 256; - case 129: - return 128; - case 95: - return 1; - case 138: - return 2; - case 87: - return 2048; - case 90: - return 1024; - case 134: - return 512; - case 148: - return 64; - case 164: - return 16384; - case 103: - return 32768; - case 147: - return 65536; - case 170: - return 131072; - } - return 0; - } - function pS(e10) { - return e10 === 57 || e10 === 56; - } - function RN(e10) { - return pS(e10) || e10 === 54; - } - function vm(e10) { - return e10 === 76 || e10 === 77 || e10 === 78; - } - function jN(e10) { - return Ct9(e10) && vm(e10.operatorToken.kind); - } - function fS(e10) { - return pS(e10) || e10 === 61; - } - function FN(e10) { - return Ct9(e10) && fS(e10.operatorToken.kind); - } - function D_(e10) { - return e10 >= 64 && e10 <= 79; - } - function dS(e10) { - let t12 = mS(e10); - return t12 && !t12.isImplements ? t12.class : void 0; - } - function mS(e10) { - if (g6(e10)) { - if (Nl3(e10.parent) && dn5(e10.parent.parent)) - return { class: e10.parent.parent, isImplements: e10.parent.token === 119 }; - if (Mm(e10.parent)) { - let t12 = y23(e10.parent); - if (t12 && dn5(t12)) - return { class: t12, isImplements: false }; - } - } - } - function Na2(e10, t12) { - return Ct9(e10) && (t12 ? e10.operatorToken.kind === 64 : D_(e10.operatorToken.kind)) && Lo4(e10.left); - } - function BN(e10) { - return Na2(e10.parent) && e10.parent.left === e10; - } - function UN(e10) { - if (Na2(e10, true)) { - let t12 = e10.left.kind; - return t12 === 210 || t12 === 209; - } - return false; - } - function M02(e10) { - return dS(e10) !== void 0; - } - function co5(e10) { - return e10.kind === 80 || hS(e10); - } - function qN(e10) { - switch (e10.kind) { - case 80: - return e10; - case 166: - do - e10 = e10.left; - while (e10.kind !== 80); - return e10; - case 211: - do - e10 = e10.expression; - while (e10.kind !== 80); - return e10; - } - } - function L02(e10) { - return e10.kind === 80 || e10.kind === 110 || e10.kind === 108 || e10.kind === 236 || e10.kind === 211 && L02(e10.expression) || e10.kind === 217 && L02(e10.expression); - } - function hS(e10) { - return Br6(e10) && Ee6(e10.name) && co5(e10.expression); - } - function J02(e10) { - if (Br6(e10)) { - let t12 = J02(e10.expression); - if (t12 !== void 0) - return t12 + "." + vi8(e10.name); - } else if (Ra3(e10)) { - let t12 = J02(e10.expression); - if (t12 !== void 0 && zl3(e10.argumentExpression)) - return t12 + "." + gd(e10.argumentExpression); - } else { - if (Ee6(e10)) - return Vo3(e10.escapedText); - if (U_(e10)) - return Kl3(e10); - } - } - function $l3(e10) { - return k_(e10) && io4(e10) === "prototype"; - } - function zN(e10) { - return e10.parent.kind === 166 && e10.parent.right === e10 || e10.parent.kind === 211 && e10.parent.name === e10 || e10.parent.kind === 236 && e10.parent.name === e10; - } - function yS(e10) { - return Br6(e10.parent) && e10.parent.name === e10 || Ra3(e10.parent) && e10.parent.argumentExpression === e10; - } - function WN(e10) { - return M_(e10.parent) && e10.parent.right === e10 || Br6(e10.parent) && e10.parent.name === e10 || r_(e10.parent) && e10.parent.right === e10; - } - function VN(e10) { - return e10.kind === 210 && e10.properties.length === 0; - } - function HN(e10) { - return e10.kind === 209 && e10.elements.length === 0; - } - function GN(e10) { - if (!(!XN(e10) || !e10.declarations)) { - for (let t12 of e10.declarations) - if (t12.localSymbol) - return t12.localSymbol; - } - } - function XN(e10) { - return e10 && Ka4(e10.declarations) > 0 && gr6(e10.declarations[0], 1024); - } - function $N(e10) { - return Yr7(Ix, (t12) => La2(e10, t12)); - } - function QN(e10) { - let t12 = [], r9 = e10.length; - for (let a = 0; a < r9; a++) { - let _10 = e10.charCodeAt(a); - _10 < 128 ? t12.push(_10) : _10 < 2048 ? (t12.push(_10 >> 6 | 192), t12.push(_10 & 63 | 128)) : _10 < 65536 ? (t12.push(_10 >> 12 | 224), t12.push(_10 >> 6 & 63 | 128), t12.push(_10 & 63 | 128)) : _10 < 131072 ? (t12.push(_10 >> 18 | 240), t12.push(_10 >> 12 & 63 | 128), t12.push(_10 >> 6 & 63 | 128), t12.push(_10 & 63 | 128)) : N6.assert(false, "Unexpected code point"); - } - return t12; - } - function gS(e10) { - let t12 = "", r9 = QN(e10), a = 0, _10 = r9.length, p5, d5, h5, l; - for (; a < _10; ) - p5 = r9[a] >> 2, d5 = (r9[a] & 3) << 4 | r9[a + 1] >> 4, h5 = (r9[a + 1] & 15) << 2 | r9[a + 2] >> 6, l = r9[a + 2] & 63, a + 1 >= _10 ? h5 = l = 64 : a + 2 >= _10 && (l = 64), t12 += qi6.charAt(p5) + qi6.charAt(d5) + qi6.charAt(h5) + qi6.charAt(l), a += 3; - return t12; - } - function YN(e10) { - let t12 = "", r9 = 0, a = e10.length; - for (; r9 < a; ) { - let _10 = e10[r9]; - if (_10 < 128) - t12 += String.fromCharCode(_10), r9++; - else if ((_10 & 192) === 192) { - let p5 = _10 & 63; - r9++; - let d5 = e10[r9]; - for (; (d5 & 192) === 128; ) - p5 = p5 << 6 | d5 & 63, r9++, d5 = e10[r9]; - t12 += String.fromCharCode(p5); - } else - t12 += String.fromCharCode(_10), r9++; - } - return t12; - } - function KN(e10, t12) { - return e10 && e10.base64encode ? e10.base64encode(t12) : gS(t12); - } - function ZN(e10, t12) { - if (e10 && e10.base64decode) - return e10.base64decode(t12); - let r9 = t12.length, a = [], _10 = 0; - for (; _10 < r9 && t12.charCodeAt(_10) !== qi6.charCodeAt(64); ) { - let p5 = qi6.indexOf(t12[_10]), d5 = qi6.indexOf(t12[_10 + 1]), h5 = qi6.indexOf(t12[_10 + 2]), l = qi6.indexOf(t12[_10 + 3]), v10 = (p5 & 63) << 2 | d5 >> 4 & 3, y5 = (d5 & 15) << 4 | h5 >> 2 & 15, C10 = (h5 & 3) << 6 | l & 63; - y5 === 0 && h5 !== 0 ? a.push(v10) : C10 === 0 && l !== 0 ? a.push(v10, y5) : a.push(v10, y5, C10), _10 += 4; - } - return YN(a); - } - function bS(e10, t12) { - let r9 = b_(t12) ? t12 : t12.readFile(e10); - if (!r9) - return; - let a = parseConfigFileTextToJson(e10, r9); - return a.error ? void 0 : a.config; - } - function eO(e10, t12) { - return bS(e10, t12) || {}; - } - function vS(e10, t12) { - return !t12.directoryExists || t12.directoryExists(e10); - } - function TS(e10) { - switch (e10.newLine) { - case 0: - return Ax; - case 1: - case void 0: - return kx; - } - } - function Tm(e10, t12 = e10) { - return N6.assert(t12 >= e10 || t12 === -1), { pos: e10, end: t12 }; - } - function tO(e10, t12) { - return Tm(e10.pos, t12); - } - function Sd(e10, t12) { - return Tm(t12, e10.end); - } - function SS(e10) { - let t12 = q_(e10) ? ig(e10.modifiers, L_) : void 0; - return t12 && !Oa3(t12.end) ? Sd(e10, t12.end) : e10; - } - function rO(e10) { - if (oo3(e10) || d_(e10)) - return Sd(e10, e10.name.pos); - let t12 = q_(e10) ? wi7(e10.modifiers) : void 0; - return t12 && !Oa3(t12.end) ? Sd(e10, t12.end) : SS(e10); - } - function nO(e10) { - return e10.pos === e10.end; - } - function iO(e10, t12) { - return Tm(e10, e10 + nr7(t12).length); - } - function aO(e10, t12) { - return xS(e10, e10, t12); - } - function oO(e10, t12, r9) { - return P_(f_(e10, r9, false), f_(t12, r9, false), r9); - } - function sO(e10, t12, r9) { - return P_(e10.end, t12.end, r9); - } - function xS(e10, t12, r9) { - return P_(f_(e10, r9, false), t12.end, r9); - } - function _O(e10, t12, r9) { - return P_(e10.end, f_(t12, r9, false), r9); - } - function cO(e10, t12, r9, a) { - let _10 = f_(t12, r9, a); - return x_(r9, e10.end, _10); - } - function lO(e10, t12, r9) { - return x_(r9, e10.end, t12.end); - } - function uO(e10, t12) { - return !P_(e10.pos, e10.end, t12); - } - function P_(e10, t12, r9) { - return x_(r9, e10, t12) === 0; - } - function f_(e10, t12, r9) { - return Oa3(e10.pos) ? -1 : Nt9(t12.text, e10.pos, false, r9); - } - function pO(e10, t12, r9, a) { - let _10 = Nt9(r9.text, e10, false, a), p5 = dO(_10, t12, r9); - return x_(r9, p5 ?? t12, _10); - } - function fO(e10, t12, r9, a) { - let _10 = Nt9(r9.text, e10, false, a); - return x_(r9, e10, Math.min(t12, _10)); - } - function dO(e10, t12 = 0, r9) { - for (; e10-- > t12; ) - if (!Vi5(r9.text.charCodeAt(e10))) - return e10; - } - function mO(e10) { - let t12 = Fl3(e10); - if (t12) - switch (t12.parent.kind) { - case 266: - case 267: - return t12 === t12.parent.name; - } - return false; - } - function hO(e10) { - return $r4(e10.declarations, wS); - } - function wS(e10) { - return ki7(e10) && e10.initializer !== void 0; - } - function yO(e10) { - return e10.watch && Qr6(e10, "watch"); - } - function gO(e10) { - e10.close(); - } - function CS(e10) { - return e10.flags & 33554432 ? e10.links.checkFlags : 0; - } - function bO(e10, t12 = false) { - if (e10.valueDeclaration) { - let r9 = t12 && e10.declarations && Yr7(e10.declarations, Qo3) || e10.flags & 32768 && Yr7(e10.declarations, m_) || e10.valueDeclaration, a = $d(r9); - return e10.parent && e10.parent.flags & 32 ? a : a & -29; - } - if (CS(e10) & 6) { - let r9 = e10.links.checkFlags, a = r9 & 1024 ? 8 : r9 & 256 ? 4 : 16, _10 = r9 & 2048 ? 32 : 0; - return a | _10; - } - return e10.flags & 4194304 ? 36 : 0; - } - function vO(e10, t12) { - return e10.flags & 2097152 ? t12.getAliasedSymbol(e10) : e10; - } - function TO(e10) { - return e10.exportSymbol ? e10.exportSymbol.flags | e10.flags : e10.flags; - } - function SO(e10) { - return Do2(e10) === 1; - } - function xO(e10) { - return Do2(e10) !== 0; - } - function Do2(e10) { - let { parent: t12 } = e10; - switch (t12 == null ? void 0 : t12.kind) { - case 217: - return Do2(t12); - case 225: - case 224: - let { operator: r9 } = t12; - return r9 === 46 || r9 === 47 ? 2 : 0; - case 226: - let { left: a, operatorToken: _10 } = t12; - return a === e10 && D_(_10.kind) ? _10.kind === 64 ? 1 : 2 : 0; - case 211: - return t12.name !== e10 ? 0 : Do2(t12); - case 303: { - let p5 = Do2(t12.parent); - return e10 === t12.name ? wO(p5) : p5; - } - case 304: - return e10 === t12.objectAssignmentInitializer ? 0 : Do2(t12.parent); - case 209: - return Do2(t12); - default: - return 0; - } - } - function wO(e10) { - switch (e10) { - case 0: - return 1; - case 1: - return 0; - case 2: - return 2; - default: - return N6.assertNever(e10); - } - } - function ES(e10, t12) { - if (!e10 || !t12 || Object.keys(e10).length !== Object.keys(t12).length) - return false; - for (let r9 in e10) - if (typeof e10[r9] == "object") { - if (!ES(e10[r9], t12[r9])) - return false; - } else if (typeof e10[r9] != "function" && e10[r9] !== t12[r9]) - return false; - return true; - } - function CO(e10, t12) { - e10.forEach(t12), e10.clear(); - } - function AS(e10, t12, r9) { - let { onDeleteValue: a, onExistingValue: _10 } = r9; - e10.forEach((p5, d5) => { - let h5 = t12.get(d5); - h5 === void 0 ? (e10.delete(d5), a(p5, d5)) : _10 && _10(p5, h5, d5); - }); - } - function EO(e10, t12, r9) { - AS(e10, t12, r9); - let { createNewValue: a } = r9; - t12.forEach((_10, p5) => { - e10.has(p5) || e10.set(p5, a(p5, _10)); - }); - } - function AO(e10) { - if (e10.flags & 32) { - let t12 = kS(e10); - return !!t12 && gr6(t12, 256); - } - return false; - } - function kS(e10) { - var t12; - return (t12 = e10.declarations) == null ? void 0 : t12.find(dn5); - } - function Rf(e10) { - return e10.flags & 138117121 ? e10.objectFlags : 0; - } - function kO(e10, t12) { - return !!e4(e10, (r9) => t12(r9) ? true : void 0); - } - function DO(e10) { - return !!e10 && !!e10.declarations && !!e10.declarations[0] && x62(e10.declarations[0]); - } - function PO({ moduleSpecifier: e10 }) { - return mn6(e10) ? e10.text : sm(e10); - } - function DS(e10) { - let t12; - return Bt7(e10, (r9) => { - wl2(r9) && (t12 = r9); - }, (r9) => { - for (let a = r9.length - 1; a >= 0; a--) - if (wl2(r9[a])) { - t12 = r9[a]; - break; - } - }), t12; - } - function IO(e10, t12, r9 = true) { - return e10.has(t12) ? false : (e10.set(t12, r9), true); - } - function NO(e10) { - return dn5(e10) || su5(e10) || Em(e10); - } - function PS(e10) { - return e10 >= 182 && e10 <= 205 || e10 === 133 || e10 === 159 || e10 === 150 || e10 === 163 || e10 === 151 || e10 === 136 || e10 === 154 || e10 === 155 || e10 === 116 || e10 === 157 || e10 === 146 || e10 === 141 || e10 === 233 || e10 === 319 || e10 === 320 || e10 === 321 || e10 === 322 || e10 === 323 || e10 === 324 || e10 === 325; - } - function $o3(e10) { - return e10.kind === 211 || e10.kind === 212; - } - function OO(e10) { - return e10.kind === 211 ? e10.name : (N6.assert(e10.kind === 212), e10.argumentExpression); - } - function MO(e10) { - switch (e10.kind) { - case "text": - case "internal": - return true; - default: - return false; - } - } - function LO(e10) { - return e10.kind === 275 || e10.kind === 279; - } - function R23(e10) { - for (; $o3(e10); ) - e10 = e10.expression; - return e10; - } - function JO(e10, t12) { - if ($o3(e10.parent) && yS(e10)) - return r9(e10.parent); - function r9(a) { - if (a.kind === 211) { - let _10 = t12(a.name); - if (_10 !== void 0) - return _10; - } else if (a.kind === 212) - if (Ee6(a.argumentExpression) || Kn5(a.argumentExpression)) { - let _10 = t12(a.argumentExpression); - if (_10 !== void 0) - return _10; - } else - return; - if ($o3(a.expression)) - return r9(a.expression); - if (Ee6(a.expression)) - return t12(a.expression); - } - } - function RO(e10, t12) { - for (; ; ) { - switch (e10.kind) { - case 225: - e10 = e10.operand; - continue; - case 226: - e10 = e10.left; - continue; - case 227: - e10 = e10.condition; - continue; - case 215: - e10 = e10.tag; - continue; - case 213: - if (t12) - return e10; - case 234: - case 212: - case 211: - case 235: - case 360: - case 238: - e10 = e10.expression; - continue; - } - return e10; - } - } - function jO(e10, t12) { - this.flags = e10, this.escapedName = t12, this.declarations = void 0, this.valueDeclaration = void 0, this.id = 0, this.mergeId = 0, this.parent = void 0, this.members = void 0, this.exports = void 0, this.exportSymbol = void 0, this.constEnumOnlyModule = void 0, this.isReferenced = void 0, this.isAssigned = void 0, this.links = void 0; - } - function FO(e10, t12) { - this.flags = t12, (N6.isDebugging || xa2) && (this.checker = e10); - } - function BO(e10, t12) { - this.flags = t12, N6.isDebugging && (this.checker = e10); - } - function Gh(e10, t12, r9) { - this.pos = t12, this.end = r9, this.kind = e10, this.id = 0, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0, this.original = void 0, this.emitNode = void 0; - } - function UO(e10, t12, r9) { - this.pos = t12, this.end = r9, this.kind = e10, this.id = 0, this.flags = 0, this.transformFlags = 0, this.parent = void 0, this.emitNode = void 0; - } - function qO(e10, t12, r9) { - this.pos = t12, this.end = r9, this.kind = e10, this.id = 0, this.flags = 0, this.transformFlags = 0, this.parent = void 0, this.original = void 0, this.emitNode = void 0; - } - function zO(e10, t12, r9) { - this.fileName = e10, this.text = t12, this.skipTrivia = r9 || ((a) => a); - } - function WO(e10) { - Z23.push(e10), e10(wt7); - } - function IS(e10) { - Object.assign(wt7, e10), yr5(Z23, (t12) => t12(wt7)); - } - function I_(e10, t12, r9 = 0) { - return e10.replace(/{(\d+)}/g, (a, _10) => "" + N6.checkDefined(t12[+_10 + r9])); - } - function NS(e10) { - kl3 = e10; - } - function OS(e10) { - !kl3 && e10 && (kl3 = e10()); - } - function N_(e10) { - return kl3 && kl3[e10.key] || e10.message; - } - function Ao2(e10, t12, r9, a) { - Yg(void 0, t12, r9); - let _10 = N_(a); - return arguments.length > 4 && (_10 = I_(_10, arguments, 4)), { file: void 0, start: t12, length: r9, messageText: _10, category: a.category, code: a.code, reportsUnnecessary: a.reportsUnnecessary, fileName: e10 }; - } - function VO(e10) { - return e10.file === void 0 && e10.start !== void 0 && e10.length !== void 0 && typeof e10.fileName == "string"; - } - function MS(e10, t12) { - let r9 = t12.fileName || "", a = t12.text.length; - N6.assertEqual(e10.fileName, r9), N6.assertLessThanOrEqual(e10.start, a), N6.assertLessThanOrEqual(e10.start + e10.length, a); - let _10 = { file: t12, start: e10.start, length: e10.length, messageText: e10.messageText, category: e10.category, code: e10.code, reportsUnnecessary: e10.reportsUnnecessary }; - if (e10.relatedInformation) { - _10.relatedInformation = []; - for (let p5 of e10.relatedInformation) - VO(p5) && p5.fileName === r9 ? (N6.assertLessThanOrEqual(p5.start, a), N6.assertLessThanOrEqual(p5.start + p5.length, a), _10.relatedInformation.push(MS(p5, t12))) : _10.relatedInformation.push(p5); - } - return _10; - } - function $a3(e10, t12) { - let r9 = []; - for (let a of e10) - r9.push(MS(a, t12)); - return r9; - } - function j23(e10, t12, r9, a) { - Yg(e10, t12, r9); - let _10 = N_(a); - return arguments.length > 4 && (_10 = I_(_10, arguments, 4)), { file: e10, start: t12, length: r9, messageText: _10, category: a.category, code: a.code, reportsUnnecessary: a.reportsUnnecessary, reportsDeprecated: a.reportsDeprecated }; - } - function HO(e10, t12) { - let r9 = N_(t12); - return arguments.length > 2 && (r9 = I_(r9, arguments, 2)), r9; - } - function fl2(e10) { - let t12 = N_(e10); - return arguments.length > 1 && (t12 = I_(t12, arguments, 1)), { file: void 0, start: void 0, length: void 0, messageText: t12, category: e10.category, code: e10.code, reportsUnnecessary: e10.reportsUnnecessary, reportsDeprecated: e10.reportsDeprecated }; - } - function GO(e10, t12) { - return { file: void 0, start: void 0, length: void 0, code: e10.code, category: e10.category, messageText: e10.next ? e10 : e10.messageText, relatedInformation: t12 }; - } - function tl2(e10, t12) { - let r9 = N_(t12); - return arguments.length > 2 && (r9 = I_(r9, arguments, 2)), { messageText: r9, category: t12.category, code: t12.code, next: e10 === void 0 || Array.isArray(e10) ? e10 : [e10] }; - } - function XO(e10, t12) { - let r9 = e10; - for (; r9.next; ) - r9 = r9.next[0]; - r9.next = [t12]; - } - function zb(e10) { - return e10.file ? e10.file.path : void 0; - } - function F23(e10, t12) { - return xd(e10, t12) || $O(e10, t12) || 0; - } - function xd(e10, t12) { - return Ci7(zb(e10), zb(t12)) || kr7(e10.start, t12.start) || kr7(e10.length, t12.length) || kr7(e10.code, t12.code) || LS(e10.messageText, t12.messageText) || 0; - } - function $O(e10, t12) { - return !e10.relatedInformation && !t12.relatedInformation ? 0 : e10.relatedInformation && t12.relatedInformation ? kr7(e10.relatedInformation.length, t12.relatedInformation.length) || yr5(e10.relatedInformation, (r9, a) => { - let _10 = t12.relatedInformation[a]; - return F23(r9, _10); - }) || 0 : e10.relatedInformation ? -1 : 1; - } - function LS(e10, t12) { - if (typeof e10 == "string" && typeof t12 == "string") - return Ci7(e10, t12); - if (typeof e10 == "string") - return -1; - if (typeof t12 == "string") - return 1; - let r9 = Ci7(e10.messageText, t12.messageText); - if (r9) - return r9; - if (!e10.next && !t12.next) - return 0; - if (!e10.next) - return -1; - if (!t12.next) - return 1; - let a = Math.min(e10.next.length, t12.next.length); - for (let _10 = 0; _10 < a; _10++) - if (r9 = LS(e10.next[_10], t12.next[_10]), r9) - return r9; - return e10.next.length < t12.next.length ? -1 : e10.next.length > t12.next.length ? 1 : 0; - } - function R02(e10) { - return e10 === 4 || e10 === 2 || e10 === 1 || e10 === 6 ? 1 : 0; - } - function JS(e10) { - if (e10.transformFlags & 2) - return w32(e10) || dl2(e10) ? e10 : Bt7(e10, JS); - } - function QO(e10) { - return e10.isDeclarationFile ? void 0 : JS(e10); - } - function YO(e10) { - return (e10.impliedNodeFormat === 99 || ei7(e10.fileName, [".cjs", ".cts", ".mjs", ".mts"])) && !e10.isDeclarationFile ? true : void 0; - } - function RS(e10) { - switch (jS(e10)) { - case 3: - return (_10) => { - _10.externalModuleIndicator = ml3(_10) || !_10.isDeclarationFile || void 0; - }; - case 1: - return (_10) => { - _10.externalModuleIndicator = ml3(_10); - }; - case 2: - let t12 = [ml3]; - (e10.jsx === 4 || e10.jsx === 5) && t12.push(QO), t12.push(YO); - let r9 = ug(...t12); - return (_10) => void (_10.externalModuleIndicator = r9(_10)); - } - } - function Ql3(e10) { - return e10.target ?? (e10.module === 100 && 9 || e10.module === 199 && 99 || 1); - } - function ni7(e10) { - return typeof e10.module == "number" ? e10.module : Ql3(e10) >= 2 ? 5 : 1; - } - function KO(e10) { - return e10 >= 5 && e10 <= 99; - } - function O_(e10) { - let t12 = e10.moduleResolution; - if (t12 === void 0) - switch (ni7(e10)) { - case 1: - t12 = 2; - break; - case 100: - t12 = 3; - break; - case 199: - t12 = 99; - break; - default: - t12 = 1; - break; - } - return t12; - } - function jS(e10) { - return e10.moduleDetection || (ni7(e10) === 100 || ni7(e10) === 199 ? 3 : 2); - } - function ZO(e10) { - switch (ni7(e10)) { - case 1: - case 2: - case 5: - case 6: - case 7: - case 99: - case 100: - case 199: - return true; - default: - return false; - } - } - function B23(e10) { - return !!(e10.isolatedModules || e10.verbatimModuleSyntax); - } - function eM(e10) { - return e10.verbatimModuleSyntax || e10.isolatedModules && e10.preserveValueImports; - } - function tM(e10) { - return e10.allowUnreachableCode === false; - } - function rM(e10) { - return e10.allowUnusedLabels === false; - } - function nM(e10) { - return !!(z23(e10) && e10.declarationMap); - } - function U23(e10) { - if (e10.esModuleInterop !== void 0) - return e10.esModuleInterop; - switch (ni7(e10)) { - case 100: - case 199: - return true; - } - } - function iM(e10) { - return e10.allowSyntheticDefaultImports !== void 0 ? e10.allowSyntheticDefaultImports : U23(e10) || ni7(e10) === 4 || O_(e10) === 100; - } - function q23(e10) { - return e10 >= 3 && e10 <= 99 || e10 === 100; - } - function aM(e10) { - return !!e10.noDtsResolution || O_(e10) !== 100; - } - function oM(e10) { - let t12 = O_(e10); - if (!q23(t12)) - return false; - if (e10.resolvePackageJsonExports !== void 0) - return e10.resolvePackageJsonExports; - switch (t12) { - case 3: - case 99: - case 100: - return true; - } - return false; - } - function sM(e10) { - let t12 = O_(e10); - if (!q23(t12)) - return false; - if (e10.resolvePackageJsonExports !== void 0) - return e10.resolvePackageJsonExports; - switch (t12) { - case 3: - case 99: - case 100: - return true; - } - return false; - } - function FS(e10) { - return e10.resolveJsonModule !== void 0 ? e10.resolveJsonModule : O_(e10) === 100; - } - function z23(e10) { - return !!(e10.declaration || e10.composite); - } - function _M(e10) { - return !!(e10.preserveConstEnums || B23(e10)); - } - function cM(e10) { - return !!(e10.incremental || e10.composite); - } - function W23(e10, t12) { - return e10[t12] === void 0 ? !!e10.strict : !!e10[t12]; - } - function BS(e10) { - return e10.allowJs === void 0 ? !!e10.checkJs : e10.allowJs; - } - function lM(e10) { - return e10.useDefineForClassFields === void 0 ? Ql3(e10) >= 9 : e10.useDefineForClassFields; - } - function uM(e10) { - return e10.useDefineForClassFields !== false && Ql3(e10) >= 9; - } - function pM(e10, t12) { - return E_(t12, e10, semanticDiagnosticsOptionDeclarations); - } - function fM(e10, t12) { - return E_(t12, e10, affectsEmitOptionDeclarations); - } - function dM(e10, t12) { - return E_(t12, e10, affectsDeclarationPathOptionDeclarations); - } - function j02(e10, t12) { - return t12.strictFlag ? W23(e10, t12.name) : e10[t12.name]; - } - function mM(e10) { - let t12 = e10.jsx; - return t12 === 2 || t12 === 4 || t12 === 5; - } - function hM(e10, t12) { - let r9 = t12 == null ? void 0 : t12.pragmas.get("jsximportsource"), a = zt6(r9) ? r9[r9.length - 1] : r9; - return e10.jsx === 4 || e10.jsx === 5 || e10.jsxImportSource || a ? (a == null ? void 0 : a.arguments.factory) || e10.jsxImportSource || "react" : void 0; - } - function yM(e10, t12) { - return e10 ? `${e10}/${t12.jsx === 5 ? "jsx-dev-runtime" : "jsx-runtime"}` : void 0; - } - function gM(e10) { - let t12 = false; - for (let r9 = 0; r9 < e10.length; r9++) - if (e10.charCodeAt(r9) === 42) - if (!t12) - t12 = true; - else - return false; - return true; - } - function bM(e10, t12) { - let r9, a, _10, p5 = false; - return { getSymlinkedFiles: () => _10, getSymlinkedDirectories: () => r9, getSymlinkedDirectoriesByRealpath: () => a, setSymlinkedFile: (h5, l) => (_10 || (_10 = /* @__PURE__ */ new Map())).set(h5, l), setSymlinkedDirectory: (h5, l) => { - let v10 = xi8(h5, e10, t12); - nx(v10) || (v10 = zo3(v10), l !== false && !(r9 != null && r9.has(v10)) && (a || (a = jd())).add(zo3(l.realPath), h5), (r9 || (r9 = /* @__PURE__ */ new Map())).set(v10, l)); - }, setSymlinksFromResolutions(h5, l) { - var v10, y5; - N6.assert(!p5), p5 = true; - for (let C10 of h5) - (v10 = C10.resolvedModules) == null || v10.forEach((S10) => d5(this, S10.resolvedModule)), (y5 = C10.resolvedTypeReferenceDirectiveNames) == null || y5.forEach((S10) => d5(this, S10.resolvedTypeReferenceDirective)); - l.forEach((C10) => d5(this, C10.resolvedTypeReferenceDirective)); - }, hasProcessedResolutions: () => p5 }; - function d5(h5, l) { - if (!l || !l.originalPath || !l.resolvedFileName) - return; - let { resolvedFileName: v10, originalPath: y5 } = l; - h5.setSymlinkedFile(xi8(y5, e10, t12), v10); - let [C10, S10] = vM(v10, y5, e10, t12) || $e9; - C10 && S10 && h5.setSymlinkedDirectory(S10, { real: C10, realPath: xi8(C10, e10, t12) }); - } - } - function vM(e10, t12, r9, a) { - let _10 = Ai7(Pa3(e10, r9)), p5 = Ai7(Pa3(t12, r9)), d5 = false; - for (; _10.length >= 2 && p5.length >= 2 && !Wb(_10[_10.length - 2], a) && !Wb(p5[p5.length - 2], a) && a(_10[_10.length - 1]) === a(p5[p5.length - 1]); ) - _10.pop(), p5.pop(), d5 = true; - return d5 ? [Uo2(_10), Uo2(p5)] : void 0; - } - function Wb(e10, t12) { - return e10 !== void 0 && (t12(e10) === "node_modules" || Fr5(e10, "@")); - } - function TM(e10) { - return dg(e10.charCodeAt(0)) ? e10.slice(1) : void 0; - } - function SM(e10, t12, r9) { - let a = Bv(e10, t12, r9); - return a === void 0 ? void 0 : TM(a); - } - function xM(e10) { - return e10.replace(Ed, wM); - } - function wM(e10) { - return "\\" + e10; - } - function jf(e10, t12, r9) { - let a = V23(e10, t12, r9); - return !a || !a.length ? void 0 : `^(${a.map((d5) => `(${d5})`).join("|")})${r9 === "exclude" ? "($|/)" : "$"}`; - } - function V23(e10, t12, r9) { - if (!(e10 === void 0 || e10.length === 0)) - return Bo3(e10, (a) => a && qS(a, t12, r9, e6[r9])); - } - function US(e10) { - return !/[.*?]/.test(e10); - } - function CM2(e10, t12, r9) { - let a = e10 && qS(e10, t12, r9, e6[r9]); - return a && `^(${a})${r9 === "exclude" ? "($|/)" : "$"}`; - } - function qS(e10, t12, r9, { singleAsteriskRegexFragment: a, doubleAsteriskRegexFragment: _10, replaceWildcardCharacter: p5 }) { - let d5 = "", h5 = false, l = Wd(e10, t12), v10 = ka3(l); - if (r9 !== "exclude" && v10 === "**") - return; - l[0] = S_(l[0]), US(v10) && l.push("**", "*"); - let y5 = 0; - for (let C10 of l) { - if (C10 === "**") - d5 += _10; - else if (r9 === "directories" && (d5 += "(", y5++), h5 && (d5 += fn6), r9 !== "exclude") { - let S10 = ""; - C10.charCodeAt(0) === 42 ? (S10 += "([^./]" + a + ")?", C10 = C10.substr(1)) : C10.charCodeAt(0) === 63 && (S10 += "[^./]", C10 = C10.substr(1)), S10 += C10.replace(Ed, p5), S10 !== C10 && (d5 += Bf), d5 += S10; - } else - d5 += C10.replace(Ed, p5); - h5 = true; - } - for (; y5 > 0; ) - d5 += ")?", y5--; - return d5; - } - function Xh(e10, t12) { - return e10 === "*" ? t12 : e10 === "?" ? "[^/]" : "\\" + e10; - } - function zS(e10, t12, r9, a, _10) { - e10 = pn6(e10), _10 = pn6(_10); - let p5 = hr5(_10, e10); - return { includeFilePatterns: Aa4(V23(r9, p5, "files"), (d5) => `^${d5}$`), includeFilePattern: jf(r9, p5, "files"), includeDirectoryPattern: jf(r9, p5, "directories"), excludePattern: jf(t12, p5, "exclude"), basePaths: AM2(e10, r9, a) }; - } - function Ff(e10, t12) { - return new RegExp(e10, t12 ? "" : "i"); - } - function EM2(e10, t12, r9, a, _10, p5, d5, h5, l) { - e10 = pn6(e10), p5 = pn6(p5); - let v10 = zS(e10, r9, a, _10, p5), y5 = v10.includeFilePatterns && v10.includeFilePatterns.map((ue7) => Ff(ue7, _10)), C10 = v10.includeDirectoryPattern && Ff(v10.includeDirectoryPattern, _10), S10 = v10.excludePattern && Ff(v10.excludePattern, _10), k7 = y5 ? y5.map(() => []) : [[]], L7 = /* @__PURE__ */ new Map(), G10 = Bd(_10); - for (let ue7 of v10.basePaths) - K7(ue7, hr5(p5, ue7), d5); - return o_(k7); - function K7(ue7, Y10, B9) { - let ae8 = G10(l(Y10)); - if (L7.has(ae8)) - return; - L7.set(ae8, true); - let { files: Ce10, directories: Ze11 } = h5(ue7); - for (let qe8 of Gf(Ce10, Ci7)) { - let rt8 = hr5(ue7, qe8), it6 = hr5(Y10, qe8); - if (!(t12 && !ei7(rt8, t12)) && !(S10 && S10.test(it6))) - if (!y5) - k7[0].push(rt8); - else { - let Ir7 = _l3(y5, (ar6) => ar6.test(it6)); - Ir7 !== -1 && k7[Ir7].push(rt8); - } - } - if (!(B9 !== void 0 && (B9--, B9 === 0))) - for (let qe8 of Gf(Ze11, Ci7)) { - let rt8 = hr5(ue7, qe8), it6 = hr5(Y10, qe8); - (!C10 || C10.test(it6)) && (!S10 || !S10.test(it6)) && K7(rt8, it6, B9); - } - } - } - function AM2(e10, t12, r9) { - let a = [e10]; - if (t12) { - let _10 = []; - for (let p5 of t12) { - let d5 = v_(p5) ? p5 : pn6(hr5(e10, p5)); - _10.push(kM(d5)); - } - _10.sort(_g(!r9)); - for (let p5 of _10) - so3(a, (d5) => !Kv(d5, p5, e10, !r9)) && a.push(p5); - } - return a; - } - function kM(e10) { - let t12 = vv(e10, Dx); - return t12 < 0 ? Qv(e10) ? S_($i5(e10)) : e10 : e10.substring(0, e10.lastIndexOf(fn6, t12)); - } - function WS(e10, t12) { - return t12 || VS(e10) || 3; - } - function VS(e10) { - switch (e10.substr(e10.lastIndexOf(".")).toLowerCase()) { - case ".js": - case ".cjs": - case ".mjs": - return 1; - case ".jsx": - return 2; - case ".ts": - case ".cts": - case ".mts": - return 3; - case ".tsx": - return 4; - case ".json": - return 6; - default: - return 0; - } - } - function HS(e10, t12) { - let r9 = e10 && BS(e10); - if (!t12 || t12.length === 0) - return r9 ? Dl3 : Ro3; - let a = r9 ? Dl3 : Ro3, _10 = o_(a); - return [...a, ...Za3(t12, (d5) => d5.scriptKind === 7 || r9 && DM(d5.scriptKind) && _10.indexOf(d5.extension) === -1 ? [d5.extension] : void 0)]; - } - function GS(e10, t12) { - return !e10 || !FS(e10) ? t12 : t12 === Dl3 ? Nx : t12 === Ro3 ? Px : [...t12, [".json"]]; - } - function DM(e10) { - return e10 === 1 || e10 === 2; - } - function H23(e10) { - return mt7(r6, (t12) => La2(e10, t12)); - } - function G23(e10) { - return mt7(t62, (t12) => La2(e10, t12)); - } - function XS({ imports: e10 }, t12 = ug(H23, G23)) { - return ng(e10, ({ text: r9 }) => rs6(r9) && !ei7(r9, wm) ? t12(r9) : void 0) || false; - } - function PM2(e10, t12, r9, a) { - if (e10 === "js" || t12 === 99) - return shouldAllowImportingTsExtension(r9) && _10() !== 2 ? 3 : 2; - if (e10 === "minimal") - return 0; - if (e10 === "index") - return 1; - if (!shouldAllowImportingTsExtension(r9)) - return XS(a) ? 2 : 0; - return _10(); - function _10() { - let p5 = false, d5 = a.imports.length ? a.imports.map((h5) => h5.text) : c22(a) ? IM2(a).map((h5) => h5.arguments[0].text) : $e9; - for (let h5 of d5) - if (rs6(h5)) { - if (ei7(h5, wm)) - continue; - if (G23(h5)) - return 3; - H23(h5) && (p5 = true); - } - return p5 ? 2 : 0; - } - } - function IM2(e10) { - let t12 = 0, r9; - for (let a of e10.statements) { - if (t12 > 3) - break; - oT(a) ? r9 = y_(r9, a.declarationList.declarations.map((_10) => _10.initializer)) : ou5(a) && Wl3(a.expression, true) ? r9 = xt8(r9, a.expression) : t12++; - } - return r9 || $e9; - } - function NM2(e10, t12, r9) { - if (!e10) - return false; - let a = HS(t12, r9); - for (let _10 of o_(GS(t12, a))) - if (La2(e10, _10)) - return true; - return false; - } - function Vb(e10) { - let t12 = e10.match(/\//g); - return t12 ? t12.length : 0; - } - function OM2(e10, t12) { - return kr7(Vb(e10), Vb(t12)); - } - function Al2(e10) { - for (let t12 of Cm) { - let r9 = $S(e10, t12); - if (r9 !== void 0) - return r9; - } - return e10; - } - function $S(e10, t12) { - return La2(e10, t12) ? QS(e10, t12) : void 0; - } - function QS(e10, t12) { - return e10.substring(0, e10.length - t12.length); - } - function MM(e10, t12) { - return Yv(e10, t12, Cm, false); - } - function YS(e10) { - let t12 = e10.indexOf("*"); - return t12 === -1 ? e10 : e10.indexOf("*", t12 + 1) !== -1 ? void 0 : { prefix: e10.substr(0, t12), suffix: e10.substr(t12 + 1) }; - } - function LM(e10) { - return Za3(sg(e10), (t12) => YS(t12)); - } - function Oa3(e10) { - return !(e10 >= 0); - } - function KS(e10) { - return e10 === ".ts" || e10 === ".tsx" || e10 === ".d.ts" || e10 === ".cts" || e10 === ".mts" || e10 === ".d.mts" || e10 === ".d.cts" || Fr5(e10, ".d.") && ts6(e10, ".ts"); - } - function JM(e10) { - return KS(e10) || e10 === ".json"; - } - function rl3(e10) { - let t12 = X23(e10); - return t12 !== void 0 ? t12 : N6.fail(`File ${e10} has unknown extension.`); - } - function RM2(e10) { - return X23(e10) !== void 0; - } - function X23(e10) { - return Yr7(Cm, (t12) => La2(e10, t12)); - } - function jM(e10, t12) { - return e10.checkJsDirective ? e10.checkJsDirective.enabled : t12.checkJs; - } - function FM(e10, t12) { - let r9 = []; - for (let a of e10) { - if (a === t12) - return t12; - b_(a) || r9.push(a); - } - return Fv(r9, (a) => a, t12); - } - function BM(e10, t12) { - let r9 = e10.indexOf(t12); - return N6.assert(r9 !== -1), e10.slice(r9); - } - function nl2(e10, ...t12) { - return t12.length && (e10.relatedInformation || (e10.relatedInformation = []), N6.assert(e10.relatedInformation !== $e9, "Diagnostic had empty array singleton for related info, but is still being constructed!"), e10.relatedInformation.push(...t12)), e10; - } - function UM(e10, t12) { - N6.assert(e10.length !== 0); - let r9 = t12(e10[0]), a = r9; - for (let _10 = 1; _10 < e10.length; _10++) { - let p5 = t12(e10[_10]); - p5 < r9 ? r9 = p5 : p5 > a && (a = p5); - } - return { min: r9, max: a }; - } - function qM(e10) { - return { pos: Go2(e10), end: e10.end }; - } - function zM(e10, t12) { - let r9 = t12.pos - 1, a = Math.min(e10.text.length, Nt9(e10.text, t12.end) + 1); - return { pos: r9, end: a }; - } - function WM(e10, t12, r9) { - return t12.skipLibCheck && e10.isDeclarationFile || t12.skipDefaultLibCheck && e10.hasNoDefaultLib || r9.isSourceOfProjectReferenceRedirect(e10.fileName); - } - function $23(e10, t12) { - return e10 === t12 || typeof e10 == "object" && e10 !== null && typeof t12 == "object" && t12 !== null && Dv(e10, t12, $23); - } - function Sm(e10) { - let t12; - switch (e10.charCodeAt(1)) { - case 98: - case 66: - t12 = 1; - break; - case 111: - case 79: - t12 = 3; - break; - case 120: - case 88: - t12 = 4; - break; - default: - let v10 = e10.length - 1, y5 = 0; - for (; e10.charCodeAt(y5) === 48; ) - y5++; - return e10.slice(y5, v10) || "0"; - } - let r9 = 2, a = e10.length - 1, _10 = (a - r9) * t12, p5 = new Uint16Array((_10 >>> 4) + (_10 & 15 ? 1 : 0)); - for (let v10 = a - 1, y5 = 0; v10 >= r9; v10--, y5 += t12) { - let C10 = y5 >>> 4, S10 = e10.charCodeAt(v10), L7 = (S10 <= 57 ? S10 - 48 : 10 + S10 - (S10 <= 70 ? 65 : 97)) << (y5 & 15); - p5[C10] |= L7; - let G10 = L7 >>> 16; - G10 && (p5[C10 + 1] |= G10); - } - let d5 = "", h5 = p5.length - 1, l = true; - for (; l; ) { - let v10 = 0; - l = false; - for (let y5 = h5; y5 >= 0; y5--) { - let C10 = v10 << 16 | p5[y5], S10 = C10 / 10 | 0; - p5[y5] = S10, v10 = C10 - S10 * 10, S10 && !l && (h5 = y5, l = true); - } - d5 = v10 + d5; - } - return d5; - } - function Q23({ negative: e10, base10Value: t12 }) { - return (e10 && t12 !== "0" ? "-" : "") + t12; - } - function VM(e10) { - if (ex(e10, false)) - return ZS(e10); - } - function ZS(e10) { - let t12 = e10.startsWith("-"), r9 = Sm(`${t12 ? e10.slice(1) : e10}n`); - return { negative: t12, base10Value: r9 }; - } - function ex(e10, t12) { - if (e10 === "") - return false; - let r9 = ns6(99, false), a = true; - r9.setOnError(() => a = false), r9.setText(e10 + "n"); - let _10 = r9.scan(), p5 = _10 === 41; - p5 && (_10 = r9.scan()); - let d5 = r9.getTokenFlags(); - return a && _10 === 10 && r9.getTokenEnd() === e10.length + 1 && !(d5 & 512) && (!t12 || e10 === Q23({ negative: p5, base10Value: Sm(r9.getTokenValue()) })); - } - function HM(e10) { - return !!(e10.flags & 33554432) || tT(e10) || $M(e10) || XM(e10) || !(_23(e10) || GM(e10)); - } - function GM(e10) { - return Ee6(e10) && _u3(e10.parent) && e10.parent.name === e10; - } - function XM(e10) { - for (; e10.kind === 80 || e10.kind === 211; ) - e10 = e10.parent; - if (e10.kind !== 167) - return false; - if (gr6(e10.parent, 256)) - return true; - let t12 = e10.parent.parent.kind; - return t12 === 264 || t12 === 187; - } - function $M(e10) { - if (e10.kind !== 80) - return false; - let t12 = Kr6(e10.parent, (r9) => { - switch (r9.kind) { - case 298: - return true; - case 211: - case 233: - return false; - default: - return "quit"; - } - }); - return (t12 == null ? void 0 : t12.token) === 119 || (t12 == null ? void 0 : t12.parent.kind) === 264; - } - function QM(e10) { - return R_(e10) && Ee6(e10.typeName); - } - function YM(e10, t12 = _o3) { - if (e10.length < 2) - return true; - let r9 = e10[0]; - for (let a = 1, _10 = e10.length; a < _10; a++) { - let p5 = e10[a]; - if (!t12(r9, p5)) - return false; - } - return true; - } - function wd(e10, t12) { - return e10.pos = t12, e10; - } - function tx(e10, t12) { - return e10.end = t12, e10; - } - function Ya4(e10, t12, r9) { - return tx(wd(e10, t12), r9); - } - function Cd(e10, t12, r9) { - return Ya4(e10, t12, t12 + r9); - } - function KM(e10, t12) { - return e10 && (e10.flags = t12), e10; - } - function Xi4(e10, t12) { - return e10 && t12 && (e10.parent = t12), e10; - } - function a_(e10, t12) { - if (e10) - for (let r9 of e10) - Xi4(r9, t12); - return e10; - } - function rx(e10, t12) { - if (!e10) - return e10; - return eg(e10, zg(e10) ? r9 : _10), e10; - function r9(p5, d5) { - if (t12 && p5.parent === d5) - return "skip"; - Xi4(p5, d5); - } - function a(p5) { - if (Wi4(p5)) - for (let d5 of p5.jsDoc) - r9(d5, p5), eg(d5, r9); - } - function _10(p5, d5) { - return r9(p5, d5) || a(p5); - } - } - function ZM(e10) { - return !Pm(e10); - } - function eL(e10) { - return iu4(e10) && so3(e10.elements, ZM); - } - function tL(e10) { - for (N6.assertIsDefined(e10.parent); ; ) { - let t12 = e10.parent; - if (is7(t12)) { - e10 = t12; - continue; - } - if (ou5(t12) || h6(t12) || l8(t12) && (t12.initializer === e10 || t12.incrementor === e10)) - return true; - if (F_(t12)) { - if (e10 !== ka3(t12.elements)) - return true; - e10 = t12; - continue; - } - if (Ct9(t12) && t12.operatorToken.kind === 28) { - if (e10 === t12.left) - return true; - e10 = t12; - continue; - } - return false; - } - } - function nx(e10) { - return mt7(ignoredPaths, (t12) => eo3(e10, t12)); - } - function rL(e10) { - if (!e10.parent) - return; - switch (e10.kind) { - case 168: - let { parent: r9 } = e10; - return r9.kind === 195 ? void 0 : r9.typeParameters; - case 169: - return e10.parent.parameters; - case 204: - return e10.parent.templateSpans; - case 239: - return e10.parent.templateSpans; - case 170: { - let { parent: a } = e10; - return q8(a) ? a.modifiers : void 0; - } - case 298: - return e10.parent.heritageClauses; - } - let { parent: t12 } = e10; - if (Wg2(e10)) - return P62(e10.parent) ? void 0 : e10.parent.tags; - switch (t12.kind) { - case 187: - case 264: - return jg(e10) ? t12.members : void 0; - case 192: - case 193: - return t12.types; - case 189: - case 209: - case 361: - case 275: - case 279: - return t12.elements; - case 210: - case 292: - return t12.properties; - case 213: - case 214: - return g0(e10) ? t12.typeArguments : t12.expression === e10 ? void 0 : t12.arguments; - case 284: - case 288: - return x32(e10) ? t12.children : void 0; - case 286: - case 285: - return g0(e10) ? t12.typeArguments : void 0; - case 241: - case 296: - case 297: - case 268: - return t12.statements; - case 269: - return t12.clauses; - case 263: - case 231: - return no3(e10) ? t12.members : void 0; - case 266: - return g8(e10) ? t12.members : void 0; - case 312: - return t12.statements; - } - } - function nL(e10) { - if (!e10.typeParameters) { - if (mt7(e10.parameters, (t12) => !I23(t12))) - return true; - if (e10.kind !== 219) { - let t12 = g_(e10.parameters); - if (!(t12 && Xl3(t12))) - return true; - } - } - return false; - } - function iL(e10) { - return e10 === "Infinity" || e10 === "-Infinity" || e10 === "NaN"; - } - function ix(e10) { - return e10.kind === 260 && e10.parent.kind === 299; - } - function aL(e10) { - let t12 = e10.valueDeclaration && hm(e10.valueDeclaration); - return !!t12 && (Ma3(t12) || ix(t12)); - } - function oL(e10) { - return e10.kind === 218 || e10.kind === 219; - } - function sL(e10) { - return e10.replace(/\$/gm, () => "\\$"); - } - function ax(e10) { - return (+e10).toString() === e10; - } - function _L(e10, t12, r9, a) { - return Cg2(e10, t12) ? Ln7.createIdentifier(e10) : !a && ax(e10) && +e10 >= 0 ? Ln7.createNumericLiteral(+e10) : Ln7.createStringLiteral(e10, !!r9); - } - function ox(e10) { - return !!(e10.flags & 262144 && e10.isThisType); - } - function cL(e10) { - let t12 = 0, r9 = 0, a = 0, _10 = 0, p5; - ((v10) => { - v10[v10.BeforeNodeModules = 0] = "BeforeNodeModules", v10[v10.NodeModules = 1] = "NodeModules", v10[v10.Scope = 2] = "Scope", v10[v10.PackageContent = 3] = "PackageContent"; - })(p5 || (p5 = {})); - let d5 = 0, h5 = 0, l = 0; - for (; h5 >= 0; ) - switch (d5 = h5, h5 = e10.indexOf("/", d5 + 1), l) { - case 0: - e10.indexOf(nodeModulesPathPart, d5) === d5 && (t12 = d5, r9 = h5, l = 1); - break; - case 1: - case 2: - l === 1 && e10.charAt(d5 + 1) === "@" ? l = 2 : (a = h5, l = 3); - break; - case 3: - e10.indexOf(nodeModulesPathPart, d5) === d5 ? l = 1 : l = 3; - break; - } - return _10 = d5, l > 1 ? { topLevelNodeModulesIndex: t12, topLevelPackageNameIndex: r9, packageRootIndex: a, fileNameIndex: _10 } : void 0; - } - function lL(e10) { - var t12; - return e10.kind === 348 ? (t12 = e10.typeExpression) == null ? void 0 : t12.type : e10.type; - } - function sx(e10) { - switch (e10.kind) { - case 168: - case 263: - case 264: - case 265: - case 266: - case 353: - case 345: - case 347: - return true; - case 273: - return e10.isTypeOnly; - case 276: - case 281: - return e10.parent.parent.isTypeOnly; - default: - return false; - } - } - function uL(e10) { - return S6(e10) || as6(e10) || os9(e10) || Yo3(e10) || su5(e10) || sx(e10) || Yi5(e10) && !Gg(e10) && !cm(e10); - } - function _x(e10) { - if (!Ig(e10)) - return false; - let { isBracketed: t12, typeExpression: r9 } = e10; - return t12 || !!r9 && r9.type.kind === 323; - } - function pL(e10, t12) { - if (e10.length === 0) - return false; - let r9 = e10.charCodeAt(0); - return r9 === 35 ? e10.length > 1 && un6(e10.charCodeAt(1), t12) : un6(r9, t12); - } - function cx(e10) { - var t12; - return ((t12 = getSnippetElement(e10)) == null ? void 0 : t12.kind) === 0; - } - function lx(e10) { - return Wt6(e10) && (e10.type && e10.type.kind === 323 || Kd(e10).some(({ isBracketed: t12, typeExpression: r9 }) => t12 || !!r9 && r9.type.kind === 323)); - } - function fL(e10) { - switch (e10.kind) { - case 172: - case 171: - return !!e10.questionToken; - case 169: - return !!e10.questionToken || lx(e10); - case 355: - case 348: - return _x(e10); - default: - return false; - } - } - function dL(e10) { - let t12 = e10.kind; - return (t12 === 211 || t12 === 212) && jo2(e10.expression); - } - function mL(e10) { - return Wt6(e10) && is7(e10) && Wi4(e10) && !!kg3(e10); - } - function hL(e10) { - return N6.checkDefined(ux(e10)); - } - function ux(e10) { - let t12 = kg3(e10); - return t12 && t12.typeExpression && t12.typeExpression.type; - } - function yL(e10) { - return Ee6(e10) ? e10.escapedText : Yl4(e10); - } - function gL(e10) { - return Ee6(e10) ? Ot10(e10) : Kl3(e10); - } - function bL(e10) { - let t12 = e10.kind; - return t12 === 80 || t12 === 295; - } - function Yl4(e10) { - return `${e10.namespace.escapedText}:${Ot10(e10.name)}`; - } - function Kl3(e10) { - return `${Ot10(e10.namespace)}:${Ot10(e10.name)}`; - } - function vL(e10) { - return Ee6(e10) ? Ot10(e10) : Kl3(e10); - } - function TL(e10) { - return !!(e10.flags & 8576); - } - function SL(e10) { - return e10.flags & 8192 ? e10.escapedName : e10.flags & 384 ? Mn5("" + e10.value) : N6.fail(); - } - var px, xm2, fx, dx, Zs6, F02, Y23, mx, hx, K23, yx, gx, B02, U02, q02, z0, bx, vx, Tx, Sx, xx, W0, wx, Cx, Ex, Po2, qi6, Ax, kx, wt7, Z23, kl3, Ed, Dx, V02, Bf, $h, Qh, Yh, e6, Ro3, t62, Px, Ix, H0, r6, Dl3, Nx, n6, Ox, wm, G0, Cm, Mx, xL = Vt4({ "src/compiler/utilities.ts"() { - "use strict"; - Dr5(), px = [], xm2 = "tslib", fx = 160, dx = 1e6, Zs6 = Uk(), F02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NeverAsciiEscape = 1] = "NeverAsciiEscape", e10[e10.JsxAttributeEscape = 2] = "JsxAttributeEscape", e10[e10.TerminateUnterminatedLiterals = 4] = "TerminateUnterminatedLiterals", e10[e10.AllowNumericSeparator = 8] = "AllowNumericSeparator", e10))(F02 || {}), Y23 = /^(\/\/\/\s*/, mx = /^(\/\/\/\s*/, hx = /^(\/\/\/\s*/, K23 = /^(\/\/\/\s*/, yx = /^\/\/\/\s*/, gx = /^(\/\/\/\s*/, B02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.Definite = 1] = "Definite", e10[e10.Compound = 2] = "Compound", e10))(B02 || {}), U02 = ((e10) => (e10[e10.Normal = 0] = "Normal", e10[e10.Generator = 1] = "Generator", e10[e10.Async = 2] = "Async", e10[e10.Invalid = 4] = "Invalid", e10[e10.AsyncGenerator = 3] = "AsyncGenerator", e10))(U02 || {}), q02 = ((e10) => (e10[e10.Left = 0] = "Left", e10[e10.Right = 1] = "Right", e10))(q02 || {}), z0 = ((e10) => (e10[e10.Comma = 0] = "Comma", e10[e10.Spread = 1] = "Spread", e10[e10.Yield = 2] = "Yield", e10[e10.Assignment = 3] = "Assignment", e10[e10.Conditional = 4] = "Conditional", e10[e10.Coalesce = 4] = "Coalesce", e10[e10.LogicalOR = 5] = "LogicalOR", e10[e10.LogicalAND = 6] = "LogicalAND", e10[e10.BitwiseOR = 7] = "BitwiseOR", e10[e10.BitwiseXOR = 8] = "BitwiseXOR", e10[e10.BitwiseAND = 9] = "BitwiseAND", e10[e10.Equality = 10] = "Equality", e10[e10.Relational = 11] = "Relational", e10[e10.Shift = 12] = "Shift", e10[e10.Additive = 13] = "Additive", e10[e10.Multiplicative = 14] = "Multiplicative", e10[e10.Exponentiation = 15] = "Exponentiation", e10[e10.Unary = 16] = "Unary", e10[e10.Update = 17] = "Update", e10[e10.LeftHandSide = 18] = "LeftHandSide", e10[e10.Member = 19] = "Member", e10[e10.Primary = 20] = "Primary", e10[e10.Highest = 20] = "Highest", e10[e10.Lowest = 0] = "Lowest", e10[e10.Invalid = -1] = "Invalid", e10))(z0 || {}), bx = /\$\{/g, vx = /[\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, Tx = /[\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g, Sx = /\r\n|[\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g, xx = new Map(Object.entries({ " ": "\\t", "\v": "\\v", "\f": "\\f", "\b": "\\b", "\r": "\\r", "\n": "\\n", "\\": "\\\\", '"': '\\"', "'": "\\'", "`": "\\`", "\u2028": "\\u2028", "\u2029": "\\u2029", "\x85": "\\u0085", "\r\n": "\\r\\n" })), W0 = /[^\u0000-\u007F]/g, wx = /["\u0000-\u001f\u2028\u2029\u0085]/g, Cx = /['\u0000-\u001f\u2028\u2029\u0085]/g, Ex = new Map(Object.entries({ '"': """, "'": "'" })), Po2 = ["", " "], qi6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", Ax = `\r -`, kx = ` -`, wt7 = { getNodeConstructor: () => Gh, getTokenConstructor: () => UO, getIdentifierConstructor: () => qO, getPrivateIdentifierConstructor: () => Gh, getSourceFileConstructor: () => Gh, getSymbolConstructor: () => jO, getTypeConstructor: () => FO, getSignatureConstructor: () => BO, getSourceMapSourceConstructor: () => zO }, Z23 = [], Ed = /[^\w\s/]/g, Dx = [42, 63], V02 = ["node_modules", "bower_components", "jspm_packages"], Bf = `(?!(${V02.join("|")})(/|$))`, $h = { singleAsteriskRegexFragment: "([^./]|(\\.(?!min\\.js$))?)*", doubleAsteriskRegexFragment: `(/${Bf}[^/.][^/]*)*?`, replaceWildcardCharacter: (e10) => Xh(e10, $h.singleAsteriskRegexFragment) }, Qh = { singleAsteriskRegexFragment: "[^/]*", doubleAsteriskRegexFragment: `(/${Bf}[^/.][^/]*)*?`, replaceWildcardCharacter: (e10) => Xh(e10, Qh.singleAsteriskRegexFragment) }, Yh = { singleAsteriskRegexFragment: "[^/]*", doubleAsteriskRegexFragment: "(/.+?)?", replaceWildcardCharacter: (e10) => Xh(e10, Yh.singleAsteriskRegexFragment) }, e6 = { files: $h, directories: Qh, exclude: Yh }, Ro3 = [[".ts", ".tsx", ".d.ts"], [".cts", ".d.cts"], [".mts", ".d.mts"]], t62 = o_(Ro3), Px = [...Ro3, [".json"]], Ix = [".d.ts", ".d.cts", ".d.mts", ".cts", ".mts", ".ts", ".tsx"], H0 = [[".js", ".jsx"], [".mjs"], [".cjs"]], r6 = o_(H0), Dl3 = [[".ts", ".tsx", ".d.ts", ".js", ".jsx"], [".cts", ".d.cts", ".cjs"], [".mts", ".d.mts", ".mjs"]], Nx = [...Dl3, [".json"]], n6 = [".d.ts", ".d.cts", ".d.mts"], Ox = [".ts", ".cts", ".mts", ".tsx"], wm = [".mts", ".d.mts", ".mjs", ".cts", ".d.cts", ".cjs"], G0 = ((e10) => (e10[e10.Minimal = 0] = "Minimal", e10[e10.Index = 1] = "Index", e10[e10.JsExtension = 2] = "JsExtension", e10[e10.TsExtension = 3] = "TsExtension", e10))(G0 || {}), Cm = [".d.ts", ".d.mts", ".d.cts", ".mjs", ".mts", ".cjs", ".cts", ".ts", ".js", ".tsx", ".jsx", ".json"], Mx = { files: $e9, directories: $e9 }; - } }); - function Lx() { - let e10, t12, r9, a, _10; - return { createBaseSourceFileNode: p5, createBaseIdentifierNode: d5, createBasePrivateIdentifierNode: h5, createBaseTokenNode: l, createBaseNode: v10 }; - function p5(y5) { - return new (_10 || (_10 = wt7.getSourceFileConstructor()))(y5, -1, -1); - } - function d5(y5) { - return new (r9 || (r9 = wt7.getIdentifierConstructor()))(y5, -1, -1); - } - function h5(y5) { - return new (a || (a = wt7.getPrivateIdentifierConstructor()))(y5, -1, -1); - } - function l(y5) { - return new (t12 || (t12 = wt7.getTokenConstructor()))(y5, -1, -1); - } - function v10(y5) { - return new (e10 || (e10 = wt7.getNodeConstructor()))(y5, -1, -1); - } - } - var wL = Vt4({ "src/compiler/factory/baseNodeFactory.ts"() { - "use strict"; - Dr5(); - } }), i6, CL = Vt4({ "src/compiler/factory/parenthesizerRules.ts"() { - "use strict"; - Dr5(), i6 = { getParenthesizeLeftSideOfBinaryForOperator: (e10) => bt7, getParenthesizeRightSideOfBinaryForOperator: (e10) => bt7, parenthesizeLeftSideOfBinary: (e10, t12) => t12, parenthesizeRightSideOfBinary: (e10, t12, r9) => r9, parenthesizeExpressionOfComputedPropertyName: bt7, parenthesizeConditionOfConditionalExpression: bt7, parenthesizeBranchOfConditionalExpression: bt7, parenthesizeExpressionOfExportDefault: bt7, parenthesizeExpressionOfNew: (e10) => gi7(e10, Lo4), parenthesizeLeftSideOfAccess: (e10) => gi7(e10, Lo4), parenthesizeOperandOfPostfixUnary: (e10) => gi7(e10, Lo4), parenthesizeOperandOfPrefixUnary: (e10) => gi7(e10, y32), parenthesizeExpressionsOfCommaDelimitedList: (e10) => gi7(e10, va2), parenthesizeExpressionForDisallowedComma: bt7, parenthesizeExpressionOfExpressionStatement: bt7, parenthesizeConciseBodyOfArrowFunction: bt7, parenthesizeCheckTypeOfConditionalType: bt7, parenthesizeExtendsTypeOfConditionalType: bt7, parenthesizeConstituentTypesOfUnionType: (e10) => gi7(e10, va2), parenthesizeConstituentTypeOfUnionType: bt7, parenthesizeConstituentTypesOfIntersectionType: (e10) => gi7(e10, va2), parenthesizeConstituentTypeOfIntersectionType: bt7, parenthesizeOperandOfTypeOperator: bt7, parenthesizeOperandOfReadonlyTypeOperator: bt7, parenthesizeNonArrayTypeOfPostfixType: bt7, parenthesizeElementTypesOfTupleType: (e10) => gi7(e10, va2), parenthesizeElementTypeOfTupleType: bt7, parenthesizeTypeOfOptionalType: bt7, parenthesizeTypeArguments: (e10) => e10 && gi7(e10, va2), parenthesizeLeadingTypeArgument: bt7 }; - } }), EL = () => { - }, Jx = () => new Proxy({}, { get: () => () => { - } }); - function AL(e10) { - a6.push(e10); - } - function Ad(e10, t12) { - let r9 = e10 & 8 ? kL : DL, a = ry(() => e10 & 1 ? i6 : createParenthesizerRules(ue7)), _10 = ry(() => e10 & 2 ? nullNodeConverters : Jx(ue7)), p5 = Nn6((n) => (o5, s5) => nc3(o5, n, s5)), d5 = Nn6((n) => (o5) => qa5(n, o5)), h5 = Nn6((n) => (o5) => Ts8(o5, n)), l = Nn6((n) => () => B12(n)), v10 = Nn6((n) => (o5) => Nc4(n, o5)), y5 = Nn6((n) => (o5, s5) => U12(n, o5, s5)), C10 = Nn6((n) => (o5, s5) => Ic4(n, o5, s5)), S10 = Nn6((n) => (o5, s5) => Ep2(n, o5, s5)), k7 = Nn6((n) => (o5, s5) => jp2(n, o5, s5)), L7 = Nn6((n) => (o5, s5, u) => eh2(n, o5, s5, u)), G10 = Nn6((n) => (o5, s5, u) => Fp2(n, o5, s5, u)), K7 = Nn6((n) => (o5, s5, u, g5) => th(n, o5, s5, u, g5)), ue7 = { get parenthesizer() { - return a(); - }, get converters() { - return _10(); - }, baseFactory: t12, flags: e10, createNodeArray: Y10, createNumericLiteral: Ze11, createBigIntLiteral: qe8, createStringLiteral: it6, createStringLiteralFromNode: Ir7, createRegularExpressionLiteral: ar6, createLiteralLikeNode: ci6, createIdentifier: Ge9, createTempVariable: Gt5, createLoopVariable: Ur5, createUniqueName: Xt5, getGeneratedNameForNode: Tn3, createPrivateIdentifier: sr7, createUniquePrivateName: St8, getGeneratedPrivateNameForNode: xn4, createToken: vt9, createSuper: ct7, createThis: Ut5, createNull: fr6, createTrue: ht4, createFalse: wn5, createModifier: Tt6, createModifiersFromModifierFlags: Or5, createQualifiedName: pt5, updateQualifiedName: Mr4, createComputedPropertyName: at7, updateComputedPropertyName: er8, createTypeParameterDeclaration: Qt5, updateTypeParameterDeclaration: tn7, createParameterDeclaration: Bn4, updateParameterDeclaration: Un5, createDecorator: rn7, updateDecorator: nn7, createPropertySignature: Di7, updatePropertySignature: qn5, createPropertyDeclaration: q9, updatePropertyDeclaration: oe8, createMethodSignature: ge6, updateMethodSignature: Se9, createMethodDeclaration: nt7, updateMethodDeclaration: z9, createConstructorDeclaration: Le7, updateConstructorDeclaration: lt5, createGetAccessorDeclaration: jt5, updateGetAccessorDeclaration: qr7, createSetAccessorDeclaration: Cn4, updateSetAccessorDeclaration: zn4, createCallSignature: ia5, updateCallSignature: Wn4, createConstructSignature: En6, updateConstructSignature: Ii6, createIndexSignature: aa4, updateIndexSignature: Vn5, createClassStaticBlockDeclaration: ee10, updateClassStaticBlockDeclaration: xe9, createTemplateLiteralTypeSpan: Sr7, updateTemplateLiteralTypeSpan: Je10, createKeywordTypeNode: oa5, createTypePredicateNode: Mt8, updateTypePredicateNode: Lr7, createTypeReferenceNode: j10, updateTypeReferenceNode: T5, createFunctionTypeNode: x9, updateFunctionTypeNode: f5, createConstructorTypeNode: Q7, updateConstructorTypeNode: be11, createTypeQueryNode: we9, updateTypeQueryNode: et9, createTypeLiteralNode: Ye7, updateTypeLiteralNode: Ke8, createArrayTypeNode: It8, updateArrayTypeNode: qt4, createTupleTypeNode: _r6, updateTupleTypeNode: Te10, createNamedTupleMember: ft6, updateNamedTupleMember: An4, createOptionalTypeNode: Et9, updateOptionalTypeNode: H10, createRestTypeNode: Fa2, updateRestTypeNode: Ie8, createUnionTypeNode: an6, updateUnionTypeNode: Ba3, createIntersectionTypeNode: kn4, updateIntersectionTypeNode: je11, createConditionalTypeNode: dt7, updateConditionalTypeNode: li7, createInferTypeNode: Hn6, updateInferTypeNode: e12, createImportTypeNode: ui7, updateImportTypeNode: fs12, createParenthesizedType: xr5, updateParenthesizedType: Ft7, createThisTypeNode: M9, createTypeOperatorNode: Jr6, updateTypeOperatorNode: sa4, createIndexedAccessTypeNode: Ni7, updateIndexedAccessTypeNode: G_, createMappedTypeNode: Lt9, updateMappedTypeNode: Yt6, createLiteralTypeNode: Oi6, updateLiteralTypeNode: r12, createTemplateLiteralType: dr6, updateTemplateLiteralType: t13, createObjectBindingPattern: Tu4, updateObjectBindingPattern: Ua4, createArrayBindingPattern: Su4, updateArrayBindingPattern: X_, createBindingElement: _a3, updateBindingElement: xu4, createArrayLiteralExpression: $_, updateArrayLiteralExpression: wu4, createObjectLiteralExpression: ds5, updateObjectLiteralExpression: n12, createPropertyAccessExpression: e10 & 4 ? (n, o5) => setEmitFlags(Mi6(n, o5), 262144) : Mi6, updatePropertyAccessExpression: Q_, createPropertyAccessChain: e10 & 4 ? (n, o5, s5) => setEmitFlags(hs5(n, o5, s5), 262144) : hs5, updatePropertyAccessChain: ys7, createElementAccessExpression: Y_, updateElementAccessExpression: Eu3, createElementAccessChain: Au4, updateElementAccessChain: ku3, createCallExpression: fo3, updateCallExpression: i12, createCallChain: zr6, updateCallChain: gs8, createNewExpression: bs7, updateNewExpression: Du3, createTaggedTemplateExpression: Pu4, updateTaggedTemplateExpression: a12, createTypeAssertion: Iu3, updateTypeAssertion: Nu5, createParenthesizedExpression: K_, updateParenthesizedExpression: Ou5, createFunctionExpression: Z_, updateFunctionExpression: Mu4, createArrowFunction: ec5, updateArrowFunction: tc4, createDeleteExpression: Lu3, updateDeleteExpression: Wr6, createTypeOfExpression: vs7, updateTypeOfExpression: pi8, createVoidExpression: rc3, updateVoidExpression: ca5, createAwaitExpression: la5, updateAwaitExpression: o12, createPrefixUnaryExpression: qa5, updatePrefixUnaryExpression: s12, createPostfixUnaryExpression: Ts8, updatePostfixUnaryExpression: _12, createBinaryExpression: nc3, updateBinaryExpression: Ru4, createConditionalExpression: ju5, updateConditionalExpression: fi7, createTemplateExpression: ic3, updateTemplateExpression: c12, createTemplateHead: oc4, createTemplateMiddle: l12, createTemplateTail: Bu3, createNoSubstitutionTemplateLiteral: u12, createTemplateLiteralLikeNode: Li6, createYieldExpression: Uu3, updateYieldExpression: p12, createSpreadElement: qu4, updateSpreadElement: f12, createClassExpression: xs5, updateClassExpression: sc3, createOmittedExpression: d12, createExpressionWithTypeArguments: Vr6, updateExpressionWithTypeArguments: _c4, createAsExpression: zu4, updateAsExpression: Wu4, createNonNullExpression: cc4, updateNonNullExpression: Vu4, createSatisfiesExpression: lc3, updateSatisfiesExpression: Dn5, createNonNullChain: Hu4, updateNonNullChain: ws7, createMetaProperty: Gn5, updateMetaProperty: Cs6, createTemplateSpan: uc4, updateTemplateSpan: Gu4, createSemicolonClassElement: m12, createBlock: ua5, updateBlock: h12, createVariableStatement: Xu4, updateVariableStatement: pc2, createEmptyStatement: fc3, createExpressionStatement: Es6, updateExpressionStatement: $u3, createIfStatement: Qu4, updateIfStatement: Yu4, createDoStatement: Ku4, updateDoStatement: y12, createWhileStatement: Zu3, updateWhileStatement: ep2, createForStatement: dc2, updateForStatement: g12, createForInStatement: tp2, updateForInStatement: b12, createForOfStatement: rp2, updateForOfStatement: v13, createContinueStatement: mc2, updateContinueStatement: np2, createBreakStatement: hc2, updateBreakStatement: T12, createReturnStatement: ip2, updateReturnStatement: ap2, createWithStatement: yc2, updateWithStatement: op2, createSwitchStatement: pa5, updateSwitchStatement: S12, createLabeledStatement: sp2, updateLabeledStatement: _p2, createThrowStatement: cp2, updateThrowStatement: x12, createTryStatement: lp2, updateTryStatement: up2, createDebuggerStatement: pp2, createVariableDeclaration: As8, updateVariableDeclaration: w12, createVariableDeclarationList: gc2, updateVariableDeclarationList: C12, createFunctionDeclaration: bc3, updateFunctionDeclaration: fp2, createClassDeclaration: vc3, updateClassDeclaration: Tc4, createInterfaceDeclaration: dp2, updateInterfaceDeclaration: gt7, createTypeAliasDeclaration: Ji6, updateTypeAliasDeclaration: Sc3, createEnumDeclaration: Ri5, updateEnumDeclaration: mp2, createModuleDeclaration: Jt6, updateModuleDeclaration: ji5, createModuleBlock: tr8, updateModuleBlock: A12, createCaseBlock: hp2, updateCaseBlock: k12, createNamespaceExportDeclaration: xc2, updateNamespaceExportDeclaration: D12, createImportEqualsDeclaration: yp2, updateImportEqualsDeclaration: gp2, createImportDeclaration: bp2, updateImportDeclaration: vp2, createImportClause: wc2, updateImportClause: Tp2, createAssertClause: Sp2, updateAssertClause: ks7, createAssertEntry: Cc3, updateAssertEntry: xp2, createImportTypeAssertionContainer: Ec3, updateImportTypeAssertionContainer: I12, createNamespaceImport: Ds8, updateNamespaceImport: N12, createNamespaceExport: Ac4, updateNamespaceExport: O12, createNamedImports: wp2, updateNamedImports: M12, createImportSpecifier: Cp2, updateImportSpecifier: L12, createExportAssignment: Ps7, updateExportAssignment: Fi7, createExportDeclaration: kc4, updateExportDeclaration: Dc3, createNamedExports: Ns8, updateNamedExports: J12, createExportSpecifier: fa4, updateExportSpecifier: R12, createMissingDeclaration: j12, createExternalModuleReference: Pc4, updateExternalModuleReference: F12, get createJSDocAllType() { - return l(319); - }, get createJSDocUnknownType() { - return l(320); - }, get createJSDocNonNullableType() { - return C10(322); - }, get updateJSDocNonNullableType() { - return S10(322); - }, get createJSDocNullableType() { - return C10(321); - }, get updateJSDocNullableType() { - return S10(321); - }, get createJSDocOptionalType() { - return v10(323); - }, get updateJSDocOptionalType() { - return y5(323); - }, get createJSDocVariadicType() { - return v10(325); - }, get updateJSDocVariadicType() { - return y5(325); - }, get createJSDocNamepathType() { - return v10(326); - }, get updateJSDocNamepathType() { - return y5(326); - }, createJSDocFunctionType: Ap2, updateJSDocFunctionType: q12, createJSDocTypeLiteral: kp2, updateJSDocTypeLiteral: z12, createJSDocTypeExpression: Dp2, updateJSDocTypeExpression: W12, createJSDocSignature: Pp2, updateJSDocSignature: V12, createJSDocTemplateTag: ho4, updateJSDocTemplateTag: Os8, createJSDocTypedefTag: Ms6, updateJSDocTypedefTag: Ip2, createJSDocParameterTag: Oc5, updateJSDocParameterTag: Mc4, createJSDocPropertyTag: Np2, updateJSDocPropertyTag: Op2, createJSDocCallbackTag: Mp2, updateJSDocCallbackTag: H12, createJSDocOverloadTag: Lc5, updateJSDocOverloadTag: G12, createJSDocAugmentsTag: Jc3, updateJSDocAugmentsTag: X12, createJSDocImplementsTag: Ls7, updateJSDocImplementsTag: Z12, createJSDocSeeTag: Rc4, updateJSDocSeeTag: yo3, createJSDocNameReference: Lp2, updateJSDocNameReference: Wa5, createJSDocMemberName: go3, updateJSDocMemberName: $12, createJSDocLink: Jp3, updateJSDocLink: Q12, createJSDocLinkCode: Rp2, updateJSDocLinkCode: Y12, createJSDocLinkPlain: jc3, updateJSDocLinkPlain: K12, get createJSDocTypeTag() { - return G10(351); - }, get updateJSDocTypeTag() { - return K7(351); - }, get createJSDocReturnTag() { - return G10(349); - }, get updateJSDocReturnTag() { - return K7(349); - }, get createJSDocThisTag() { - return G10(350); - }, get updateJSDocThisTag() { - return K7(350); - }, get createJSDocAuthorTag() { - return k7(337); - }, get updateJSDocAuthorTag() { - return L7(337); - }, get createJSDocClassTag() { - return k7(339); - }, get updateJSDocClassTag() { - return L7(339); - }, get createJSDocPublicTag() { - return k7(340); - }, get updateJSDocPublicTag() { - return L7(340); - }, get createJSDocPrivateTag() { - return k7(341); - }, get updateJSDocPrivateTag() { - return L7(341); - }, get createJSDocProtectedTag() { - return k7(342); - }, get updateJSDocProtectedTag() { - return L7(342); - }, get createJSDocReadonlyTag() { - return k7(343); - }, get updateJSDocReadonlyTag() { - return L7(343); - }, get createJSDocOverrideTag() { - return k7(344); - }, get updateJSDocOverrideTag() { - return L7(344); - }, get createJSDocDeprecatedTag() { - return k7(338); - }, get updateJSDocDeprecatedTag() { - return L7(338); - }, get createJSDocThrowsTag() { - return G10(356); - }, get updateJSDocThrowsTag() { - return K7(356); - }, get createJSDocSatisfiesTag() { - return G10(357); - }, get updateJSDocSatisfiesTag() { - return K7(357); - }, createJSDocEnumTag: Up2, updateJSDocEnumTag: nh, createJSDocUnknownTag: Bp2, updateJSDocUnknownTag: rh, createJSDocText: qp3, updateJSDocText: ih, createJSDocComment: Js7, updateJSDocComment: ah, createJsxElement: Fc3, updateJsxElement: zp2, createJsxSelfClosingElement: Wp2, updateJsxSelfClosingElement: Rs6, createJsxOpeningElement: Bc3, updateJsxOpeningElement: oh, createJsxClosingElement: Vp2, updateJsxClosingElement: sh, createJsxFragment: js7, createJsxText: Fs7, updateJsxText: Gp2, createJsxOpeningFragment: Uc4, createJsxJsxClosingFragment: wr7, updateJsxFragment: Hp2, createJsxAttribute: qc3, updateJsxAttribute: Xp3, createJsxAttributes: $p2, updateJsxAttributes: Qp2, createJsxSpreadAttribute: Yp2, updateJsxSpreadAttribute: _h, createJsxExpression: bo3, updateJsxExpression: ch, createJsxNamespacedName: Kp2, updateJsxNamespacedName: lh, createCaseClause: Zp3, updateCaseClause: zc3, createDefaultClause: Va5, updateDefaultClause: uh, createHeritageClause: Bs7, updateHeritageClause: ef2, createCatchClause: tf2, updateCatchClause: vo3, createPropertyAssignment: Us7, updatePropertyAssignment: ph, createShorthandPropertyAssignment: Wc4, updateShorthandPropertyAssignment: rf2, createSpreadAssignment: da4, updateSpreadAssignment: dh, createEnumMember: af2, updateEnumMember: mh, createSourceFile: hh, updateSourceFile: gh, createRedirectedSourceFile: Vc4, createBundle: sf, updateBundle: _f, createUnparsedSource: Gc4, createUnparsedPrologue: bh, createUnparsedPrepend: cf, createUnparsedTextLike: vh, createUnparsedSyntheticReference: Th, createInputFiles: qs6, createSyntheticExpression: lf, createSyntaxList: Sh, createNotEmittedStatement: xh, createPartiallyEmittedExpression: uf2, updatePartiallyEmittedExpression: pf, createCommaListExpression: zs6, updateCommaListExpression: ff, createSyntheticReferenceExpression: $c4, updateSyntheticReferenceExpression: Ch, cloneNode: Qc2, get createComma() { - return p5(28); - }, get createAssignment() { - return p5(64); - }, get createLogicalOr() { - return p5(57); - }, get createLogicalAnd() { - return p5(56); - }, get createBitwiseOr() { - return p5(52); - }, get createBitwiseXor() { - return p5(53); - }, get createBitwiseAnd() { - return p5(51); - }, get createStrictEquality() { - return p5(37); - }, get createStrictInequality() { - return p5(38); - }, get createEquality() { - return p5(35); - }, get createInequality() { - return p5(36); - }, get createLessThan() { - return p5(30); - }, get createLessThanEquals() { - return p5(33); - }, get createGreaterThan() { - return p5(32); - }, get createGreaterThanEquals() { - return p5(34); - }, get createLeftShift() { - return p5(48); - }, get createRightShift() { - return p5(49); - }, get createUnsignedRightShift() { - return p5(50); - }, get createAdd() { - return p5(40); - }, get createSubtract() { - return p5(41); - }, get createMultiply() { - return p5(42); - }, get createDivide() { - return p5(44); - }, get createModulo() { - return p5(45); - }, get createExponent() { - return p5(43); - }, get createPrefixPlus() { - return d5(40); - }, get createPrefixMinus() { - return d5(41); - }, get createPrefixIncrement() { - return d5(46); - }, get createPrefixDecrement() { - return d5(47); - }, get createBitwiseNot() { - return d5(55); - }, get createLogicalNot() { - return d5(54); - }, get createPostfixIncrement() { - return h5(46); - }, get createPostfixDecrement() { - return h5(47); - }, createImmediatelyInvokedFunctionExpression: kh, createImmediatelyInvokedArrowFunction: Dh, createVoidZero: ma3, createExportDefault: Ph, createExternalModuleExport: Ih, createTypeCheck: Nh, createIsNotTypeCheck: Oh, createMethodCall: ha5, createGlobalMethodCall: Ha3, createFunctionBindCall: Mh, createFunctionCallCall: Ws6, createFunctionApplyCall: Lh, createArraySliceCall: Jh, createArrayConcatCall: Rh, createObjectDefinePropertyCall: hf, createObjectGetOwnPropertyDescriptorCall: jh, createReflectGetCall: Fh, createReflectSetCall: Bh, createPropertyDescriptor: yf, createCallBinding: A9, createAssignmentTargetWrapper: R10, inlineExpressions: te9, getInternalName: ne10, getLocalName: ie6, getExportName: ve9, getDeclarationName: He9, getNamespaceMemberName: Be9, getExternalModuleOrNamespaceExportName: Ue8, restoreOuterExpressions: m5, restoreEnclosingLabel: b5, createUseStrictPrologue: di7, copyPrologue: Rt8, copyStandardPrologue: mi6, copyCustomPrologue: hi8, ensureUseStrict: Ui7, liftToBlock: ga3, mergeLexicalEnvironment: Uh, updateModifiers: bf, updateModifierLike: qh }; - return yr5(a6, (n) => n(ue7)), ue7; - function Y10(n, o5) { - if (n === void 0 || n === $e9) - n = []; - else if (va2(n)) { - if (o5 === void 0 || n.hasTrailingComma === o5) - return n.transformFlags === void 0 && Hb(n), N6.attachNodeArrayDebugInfo(n), n; - let g5 = n.slice(); - return g5.pos = n.pos, g5.end = n.end, g5.hasTrailingComma = o5, g5.transformFlags = n.transformFlags, N6.attachNodeArrayDebugInfo(g5), g5; - } - let s5 = n.length, u = s5 >= 1 && s5 <= 4 ? n.slice() : n; - return u.pos = -1, u.end = -1, u.hasTrailingComma = !!o5, u.transformFlags = 0, Hb(u), N6.attachNodeArrayDebugInfo(u), u; - } - function B9(n) { - return t12.createBaseNode(n); - } - function ae8(n) { - let o5 = B9(n); - return o5.symbol = void 0, o5.localSymbol = void 0, o5; - } - function Ce10(n, o5) { - return n !== o5 && (n.typeArguments = o5.typeArguments), r9(n, o5); - } - function Ze11(n, o5 = 0) { - let s5 = ae8(9); - return s5.text = typeof n == "number" ? n + "" : n, s5.numericLiteralFlags = o5, o5 & 384 && (s5.transformFlags |= 1024), s5; - } - function qe8(n) { - let o5 = Tr6(10); - return o5.text = typeof n == "string" ? n : Q23(n) + "n", o5.transformFlags |= 32, o5; - } - function rt8(n, o5) { - let s5 = ae8(11); - return s5.text = n, s5.singleQuote = o5, s5; - } - function it6(n, o5, s5) { - let u = rt8(n, o5); - return u.hasExtendedUnicodeEscape = s5, s5 && (u.transformFlags |= 1024), u; - } - function Ir7(n) { - let o5 = rt8(bd(n), void 0); - return o5.textSourceNode = n, o5; - } - function ar6(n) { - let o5 = Tr6(14); - return o5.text = n, o5; - } - function ci6(n, o5) { - switch (n) { - case 9: - return Ze11(o5, 0); - case 10: - return qe8(o5); - case 11: - return it6(o5, void 0); - case 12: - return Fs7(o5, false); - case 13: - return Fs7(o5, true); - case 14: - return ar6(o5); - case 15: - return Li6(n, o5, void 0, 0); - } - } - function or7(n) { - let o5 = t12.createBaseIdentifierNode(80); - return o5.escapedText = n, o5.jsDoc = void 0, o5.flowNode = void 0, o5.symbol = void 0, o5; - } - function Nr7(n, o5, s5, u) { - let g5 = or7(Mn5(n)); - return setIdentifierAutoGenerate(g5, { flags: o5, id: il3, prefix: s5, suffix: u }), il3++, g5; - } - function Ge9(n, o5, s5) { - o5 === void 0 && n && (o5 = Rl3(n)), o5 === 80 && (o5 = void 0); - let u = or7(Mn5(n)); - return s5 && (u.flags |= 256), u.escapedText === "await" && (u.transformFlags |= 67108864), u.flags & 256 && (u.transformFlags |= 1024), u; - } - function Gt5(n, o5, s5, u) { - let g5 = 1; - o5 && (g5 |= 8); - let I7 = Nr7("", g5, s5, u); - return n && n(I7), I7; - } - function Ur5(n) { - let o5 = 2; - return n && (o5 |= 8), Nr7("", o5, void 0, void 0); - } - function Xt5(n, o5 = 0, s5, u) { - return N6.assert(!(o5 & 7), "Argument out of range: flags"), N6.assert((o5 & 48) !== 32, "GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"), Nr7(n, 3 | o5, s5, u); - } - function Tn3(n, o5 = 0, s5, u) { - N6.assert(!(o5 & 7), "Argument out of range: flags"); - let g5 = n ? ro3(n) ? Pd(false, s5, n, u, Ot10) : `generated@${getNodeId(n)}` : ""; - (s5 || u) && (o5 |= 16); - let I7 = Nr7(g5, 4 | o5, s5, u); - return I7.original = n, I7; - } - function Sn6(n) { - let o5 = t12.createBasePrivateIdentifierNode(81); - return o5.escapedText = n, o5.transformFlags |= 16777216, o5; - } - function sr7(n) { - return Fr5(n, "#") || N6.fail("First character of private identifier must be #: " + n), Sn6(Mn5(n)); - } - function $t8(n, o5, s5, u) { - let g5 = Sn6(Mn5(n)); - return setIdentifierAutoGenerate(g5, { flags: o5, id: il3, prefix: s5, suffix: u }), il3++, g5; - } - function St8(n, o5, s5) { - n && !Fr5(n, "#") && N6.fail("First character of private identifier must be #: " + n); - let u = 8 | (n ? 3 : 1); - return $t8(n ?? "", u, o5, s5); - } - function xn4(n, o5, s5) { - let u = ro3(n) ? Pd(true, o5, n, s5, Ot10) : `#generated@${getNodeId(n)}`, I7 = $t8(u, 4 | (o5 || s5 ? 16 : 0), o5, s5); - return I7.original = n, I7; - } - function Tr6(n) { - return t12.createBaseTokenNode(n); - } - function vt9(n) { - N6.assert(n >= 0 && n <= 165, "Invalid token"), N6.assert(n <= 15 || n >= 18, "Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."), N6.assert(n <= 9 || n >= 15, "Invalid token. Use 'createLiteralLikeNode' to create literals."), N6.assert(n !== 80, "Invalid token. Use 'createIdentifier' to create identifiers"); - let o5 = Tr6(n), s5 = 0; - switch (n) { - case 134: - s5 = 384; - break; - case 160: - s5 = 4; - break; - case 125: - case 123: - case 124: - case 148: - case 128: - case 138: - case 87: - case 133: - case 150: - case 163: - case 146: - case 151: - case 103: - case 147: - case 164: - case 154: - case 136: - case 155: - case 116: - case 159: - case 157: - s5 = 1; - break; - case 108: - s5 = 134218752, o5.flowNode = void 0; - break; - case 126: - s5 = 1024; - break; - case 129: - s5 = 16777216; - break; - case 110: - s5 = 16384, o5.flowNode = void 0; - break; - } - return s5 && (o5.transformFlags |= s5), o5; - } - function ct7() { - return vt9(108); - } - function Ut5() { - return vt9(110); - } - function fr6() { - return vt9(106); - } - function ht4() { - return vt9(112); - } - function wn5() { - return vt9(97); - } - function Tt6(n) { - return vt9(n); - } - function Or5(n) { - let o5 = []; - return n & 1 && o5.push(Tt6(95)), n & 2 && o5.push(Tt6(138)), n & 1024 && o5.push(Tt6(90)), n & 2048 && o5.push(Tt6(87)), n & 4 && o5.push(Tt6(125)), n & 8 && o5.push(Tt6(123)), n & 16 && o5.push(Tt6(124)), n & 256 && o5.push(Tt6(128)), n & 32 && o5.push(Tt6(126)), n & 16384 && o5.push(Tt6(164)), n & 64 && o5.push(Tt6(148)), n & 128 && o5.push(Tt6(129)), n & 512 && o5.push(Tt6(134)), n & 32768 && o5.push(Tt6(103)), n & 65536 && o5.push(Tt6(147)), o5.length ? o5 : void 0; - } - function pt5(n, o5) { - let s5 = B9(166); - return s5.left = n, s5.right = Xe9(o5), s5.transformFlags |= V7(s5.left) | e_(s5.right), s5.flowNode = void 0, s5; - } - function Mr4(n, o5, s5) { - return n.left !== o5 || n.right !== s5 ? r9(pt5(o5, s5), n) : n; - } - function at7(n) { - let o5 = B9(167); - return o5.expression = a().parenthesizeExpressionOfComputedPropertyName(n), o5.transformFlags |= V7(o5.expression) | 1024 | 131072, o5; - } - function er8(n, o5) { - return n.expression !== o5 ? r9(at7(o5), n) : n; - } - function Qt5(n, o5, s5, u) { - let g5 = ae8(168); - return g5.modifiers = Oe11(n), g5.name = Xe9(o5), g5.constraint = s5, g5.default = u, g5.transformFlags = 1, g5.expression = void 0, g5.jsDoc = void 0, g5; - } - function tn7(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.name !== s5 || n.constraint !== u || n.default !== g5 ? r9(Qt5(o5, s5, u, g5), n) : n; - } - function Bn4(n, o5, s5, u, g5, I7) { - let W7 = ae8(169); - return W7.modifiers = Oe11(n), W7.dotDotDotToken = o5, W7.name = Xe9(s5), W7.questionToken = u, W7.type = g5, W7.initializer = To2(I7), ym(W7.name) ? W7.transformFlags = 1 : W7.transformFlags = De9(W7.modifiers) | V7(W7.dotDotDotToken) | In4(W7.name) | V7(W7.questionToken) | V7(W7.initializer) | (W7.questionToken ?? W7.type ? 1 : 0) | (W7.dotDotDotToken ?? W7.initializer ? 1024 : 0) | (ln6(W7.modifiers) & 16476 ? 8192 : 0), W7.jsDoc = void 0, W7; - } - function Un5(n, o5, s5, u, g5, I7, W7) { - return n.modifiers !== o5 || n.dotDotDotToken !== s5 || n.name !== u || n.questionToken !== g5 || n.type !== I7 || n.initializer !== W7 ? r9(Bn4(o5, s5, u, g5, I7, W7), n) : n; - } - function rn7(n) { - let o5 = B9(170); - return o5.expression = a().parenthesizeLeftSideOfAccess(n, false), o5.transformFlags |= V7(o5.expression) | 1 | 8192 | 33554432, o5; - } - function nn7(n, o5) { - return n.expression !== o5 ? r9(rn7(o5), n) : n; - } - function Di7(n, o5, s5, u) { - let g5 = ae8(171); - return g5.modifiers = Oe11(n), g5.name = Xe9(o5), g5.type = u, g5.questionToken = s5, g5.transformFlags = 1, g5.initializer = void 0, g5.jsDoc = void 0, g5; - } - function qn5(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.name !== s5 || n.questionToken !== u || n.type !== g5 ? Ae7(Di7(o5, s5, u, g5), n) : n; - } - function Ae7(n, o5) { - return n !== o5 && (n.initializer = o5.initializer), r9(n, o5); - } - function q9(n, o5, s5, u, g5) { - let I7 = ae8(172); - I7.modifiers = Oe11(n), I7.name = Xe9(o5), I7.questionToken = s5 && Pl3(s5) ? s5 : void 0, I7.exclamationToken = s5 && Dd(s5) ? s5 : void 0, I7.type = u, I7.initializer = To2(g5); - let W7 = I7.flags & 33554432 || ln6(I7.modifiers) & 2; - return I7.transformFlags = De9(I7.modifiers) | In4(I7.name) | V7(I7.initializer) | (W7 || I7.questionToken || I7.exclamationToken || I7.type ? 1 : 0) | (ao4(I7.name) || ln6(I7.modifiers) & 32 && I7.initializer ? 8192 : 0) | 16777216, I7.jsDoc = void 0, I7; - } - function oe8(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.name !== s5 || n.questionToken !== (u !== void 0 && Pl3(u) ? u : void 0) || n.exclamationToken !== (u !== void 0 && Dd(u) ? u : void 0) || n.type !== g5 || n.initializer !== I7 ? r9(q9(o5, s5, u, g5, I7), n) : n; - } - function ge6(n, o5, s5, u, g5, I7) { - let W7 = ae8(173); - return W7.modifiers = Oe11(n), W7.name = Xe9(o5), W7.questionToken = s5, W7.typeParameters = Oe11(u), W7.parameters = Oe11(g5), W7.type = I7, W7.transformFlags = 1, W7.jsDoc = void 0, W7.locals = void 0, W7.nextContainer = void 0, W7.typeArguments = void 0, W7; - } - function Se9(n, o5, s5, u, g5, I7, W7) { - return n.modifiers !== o5 || n.name !== s5 || n.questionToken !== u || n.typeParameters !== g5 || n.parameters !== I7 || n.type !== W7 ? Ce10(ge6(o5, s5, u, g5, I7, W7), n) : n; - } - function nt7(n, o5, s5, u, g5, I7, W7, de7) { - let We8 = ae8(174); - if (We8.modifiers = Oe11(n), We8.asteriskToken = o5, We8.name = Xe9(s5), We8.questionToken = u, We8.exclamationToken = void 0, We8.typeParameters = Oe11(g5), We8.parameters = Y10(I7), We8.type = W7, We8.body = de7, !We8.body) - We8.transformFlags = 1; - else { - let Er6 = ln6(We8.modifiers) & 512, $n5 = !!We8.asteriskToken, yi7 = Er6 && $n5; - We8.transformFlags = De9(We8.modifiers) | V7(We8.asteriskToken) | In4(We8.name) | V7(We8.questionToken) | De9(We8.typeParameters) | De9(We8.parameters) | V7(We8.type) | V7(We8.body) & -67108865 | (yi7 ? 128 : Er6 ? 256 : $n5 ? 2048 : 0) | (We8.questionToken || We8.typeParameters || We8.type ? 1 : 0) | 1024; - } - return We8.typeArguments = void 0, We8.jsDoc = void 0, We8.locals = void 0, We8.nextContainer = void 0, We8.flowNode = void 0, We8.endFlowNode = void 0, We8.returnFlowNode = void 0, We8; - } - function z9(n, o5, s5, u, g5, I7, W7, de7, We8) { - return n.modifiers !== o5 || n.asteriskToken !== s5 || n.name !== u || n.questionToken !== g5 || n.typeParameters !== I7 || n.parameters !== W7 || n.type !== de7 || n.body !== We8 ? X10(nt7(o5, s5, u, g5, I7, W7, de7, We8), n) : n; - } - function X10(n, o5) { - return n !== o5 && (n.exclamationToken = o5.exclamationToken), r9(n, o5); - } - function ee10(n) { - let o5 = ae8(175); - return o5.body = n, o5.transformFlags = V7(n) | 16777216, o5.modifiers = void 0, o5.jsDoc = void 0, o5.locals = void 0, o5.nextContainer = void 0, o5.endFlowNode = void 0, o5.returnFlowNode = void 0, o5; - } - function xe9(n, o5) { - return n.body !== o5 ? ke9(ee10(o5), n) : n; - } - function ke9(n, o5) { - return n !== o5 && (n.modifiers = o5.modifiers), r9(n, o5); - } - function Le7(n, o5, s5) { - let u = ae8(176); - return u.modifiers = Oe11(n), u.parameters = Y10(o5), u.body = s5, u.transformFlags = De9(u.modifiers) | De9(u.parameters) | V7(u.body) & -67108865 | 1024, u.typeParameters = void 0, u.type = void 0, u.typeArguments = void 0, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.endFlowNode = void 0, u.returnFlowNode = void 0, u; - } - function lt5(n, o5, s5, u) { - return n.modifiers !== o5 || n.parameters !== s5 || n.body !== u ? yt7(Le7(o5, s5, u), n) : n; - } - function yt7(n, o5) { - return n !== o5 && (n.typeParameters = o5.typeParameters, n.type = o5.type), Ce10(n, o5); - } - function jt5(n, o5, s5, u, g5) { - let I7 = ae8(177); - return I7.modifiers = Oe11(n), I7.name = Xe9(o5), I7.parameters = Y10(s5), I7.type = u, I7.body = g5, I7.body ? I7.transformFlags = De9(I7.modifiers) | In4(I7.name) | De9(I7.parameters) | V7(I7.type) | V7(I7.body) & -67108865 | (I7.type ? 1 : 0) : I7.transformFlags = 1, I7.typeArguments = void 0, I7.typeParameters = void 0, I7.jsDoc = void 0, I7.locals = void 0, I7.nextContainer = void 0, I7.flowNode = void 0, I7.endFlowNode = void 0, I7.returnFlowNode = void 0, I7; - } - function qr7(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.name !== s5 || n.parameters !== u || n.type !== g5 || n.body !== I7 ? na4(jt5(o5, s5, u, g5, I7), n) : n; - } - function na4(n, o5) { - return n !== o5 && (n.typeParameters = o5.typeParameters), Ce10(n, o5); - } - function Cn4(n, o5, s5, u) { - let g5 = ae8(178); - return g5.modifiers = Oe11(n), g5.name = Xe9(o5), g5.parameters = Y10(s5), g5.body = u, g5.body ? g5.transformFlags = De9(g5.modifiers) | In4(g5.name) | De9(g5.parameters) | V7(g5.body) & -67108865 | (g5.type ? 1 : 0) : g5.transformFlags = 1, g5.typeArguments = void 0, g5.typeParameters = void 0, g5.type = void 0, g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5.flowNode = void 0, g5.endFlowNode = void 0, g5.returnFlowNode = void 0, g5; - } - function zn4(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.name !== s5 || n.parameters !== u || n.body !== g5 ? Pi7(Cn4(o5, s5, u, g5), n) : n; - } - function Pi7(n, o5) { - return n !== o5 && (n.typeParameters = o5.typeParameters, n.type = o5.type), Ce10(n, o5); - } - function ia5(n, o5, s5) { - let u = ae8(179); - return u.typeParameters = Oe11(n), u.parameters = Oe11(o5), u.type = s5, u.transformFlags = 1, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.typeArguments = void 0, u; - } - function Wn4(n, o5, s5, u) { - return n.typeParameters !== o5 || n.parameters !== s5 || n.type !== u ? Ce10(ia5(o5, s5, u), n) : n; - } - function En6(n, o5, s5) { - let u = ae8(180); - return u.typeParameters = Oe11(n), u.parameters = Oe11(o5), u.type = s5, u.transformFlags = 1, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.typeArguments = void 0, u; - } - function Ii6(n, o5, s5, u) { - return n.typeParameters !== o5 || n.parameters !== s5 || n.type !== u ? Ce10(En6(o5, s5, u), n) : n; - } - function aa4(n, o5, s5) { - let u = ae8(181); - return u.modifiers = Oe11(n), u.parameters = Oe11(o5), u.type = s5, u.transformFlags = 1, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.typeArguments = void 0, u; - } - function Vn5(n, o5, s5, u) { - return n.parameters !== s5 || n.type !== u || n.modifiers !== o5 ? Ce10(aa4(o5, s5, u), n) : n; - } - function Sr7(n, o5) { - let s5 = B9(204); - return s5.type = n, s5.literal = o5, s5.transformFlags = 1, s5; - } - function Je10(n, o5, s5) { - return n.type !== o5 || n.literal !== s5 ? r9(Sr7(o5, s5), n) : n; - } - function oa5(n) { - return vt9(n); - } - function Mt8(n, o5, s5) { - let u = B9(182); - return u.assertsModifier = n, u.parameterName = Xe9(o5), u.type = s5, u.transformFlags = 1, u; - } - function Lr7(n, o5, s5, u) { - return n.assertsModifier !== o5 || n.parameterName !== s5 || n.type !== u ? r9(Mt8(o5, s5, u), n) : n; - } - function j10(n, o5) { - let s5 = B9(183); - return s5.typeName = Xe9(n), s5.typeArguments = o5 && a().parenthesizeTypeArguments(Y10(o5)), s5.transformFlags = 1, s5; - } - function T5(n, o5, s5) { - return n.typeName !== o5 || n.typeArguments !== s5 ? r9(j10(o5, s5), n) : n; - } - function x9(n, o5, s5) { - let u = ae8(184); - return u.typeParameters = Oe11(n), u.parameters = Oe11(o5), u.type = s5, u.transformFlags = 1, u.modifiers = void 0, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.typeArguments = void 0, u; - } - function f5(n, o5, s5, u) { - return n.typeParameters !== o5 || n.parameters !== s5 || n.type !== u ? $10(x9(o5, s5, u), n) : n; - } - function $10(n, o5) { - return n !== o5 && (n.modifiers = o5.modifiers), Ce10(n, o5); - } - function Q7(...n) { - return n.length === 4 ? O7(...n) : n.length === 3 ? fe8(...n) : N6.fail("Incorrect number of arguments specified."); - } - function O7(n, o5, s5, u) { - let g5 = ae8(185); - return g5.modifiers = Oe11(n), g5.typeParameters = Oe11(o5), g5.parameters = Oe11(s5), g5.type = u, g5.transformFlags = 1, g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5.typeArguments = void 0, g5; - } - function fe8(n, o5, s5) { - return O7(void 0, n, o5, s5); - } - function be11(...n) { - return n.length === 5 ? he9(...n) : n.length === 4 ? Re10(...n) : N6.fail("Incorrect number of arguments specified."); - } - function he9(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.typeParameters !== s5 || n.parameters !== u || n.type !== g5 ? Ce10(Q7(o5, s5, u, g5), n) : n; - } - function Re10(n, o5, s5, u) { - return he9(n, n.modifiers, o5, s5, u); - } - function we9(n, o5) { - let s5 = B9(186); - return s5.exprName = n, s5.typeArguments = o5 && a().parenthesizeTypeArguments(o5), s5.transformFlags = 1, s5; - } - function et9(n, o5, s5) { - return n.exprName !== o5 || n.typeArguments !== s5 ? r9(we9(o5, s5), n) : n; - } - function Ye7(n) { - let o5 = ae8(187); - return o5.members = Y10(n), o5.transformFlags = 1, o5; - } - function Ke8(n, o5) { - return n.members !== o5 ? r9(Ye7(o5), n) : n; - } - function It8(n) { - let o5 = B9(188); - return o5.elementType = a().parenthesizeNonArrayTypeOfPostfixType(n), o5.transformFlags = 1, o5; - } - function qt4(n, o5) { - return n.elementType !== o5 ? r9(It8(o5), n) : n; - } - function _r6(n) { - let o5 = B9(189); - return o5.elements = Y10(a().parenthesizeElementTypesOfTupleType(n)), o5.transformFlags = 1, o5; - } - function Te10(n, o5) { - return n.elements !== o5 ? r9(_r6(o5), n) : n; - } - function ft6(n, o5, s5, u) { - let g5 = ae8(202); - return g5.dotDotDotToken = n, g5.name = o5, g5.questionToken = s5, g5.type = u, g5.transformFlags = 1, g5.jsDoc = void 0, g5; - } - function An4(n, o5, s5, u, g5) { - return n.dotDotDotToken !== o5 || n.name !== s5 || n.questionToken !== u || n.type !== g5 ? r9(ft6(o5, s5, u, g5), n) : n; - } - function Et9(n) { - let o5 = B9(190); - return o5.type = a().parenthesizeTypeOfOptionalType(n), o5.transformFlags = 1, o5; - } - function H10(n, o5) { - return n.type !== o5 ? r9(Et9(o5), n) : n; - } - function Fa2(n) { - let o5 = B9(191); - return o5.type = n, o5.transformFlags = 1, o5; - } - function Ie8(n, o5) { - return n.type !== o5 ? r9(Fa2(o5), n) : n; - } - function ot8(n, o5, s5) { - let u = B9(n); - return u.types = ue7.createNodeArray(s5(o5)), u.transformFlags = 1, u; - } - function cr6(n, o5, s5) { - return n.types !== o5 ? r9(ot8(n.kind, o5, s5), n) : n; - } - function an6(n) { - return ot8(192, n, a().parenthesizeConstituentTypesOfUnionType); - } - function Ba3(n, o5) { - return cr6(n, o5, a().parenthesizeConstituentTypesOfUnionType); - } - function kn4(n) { - return ot8(193, n, a().parenthesizeConstituentTypesOfIntersectionType); - } - function je11(n, o5) { - return cr6(n, o5, a().parenthesizeConstituentTypesOfIntersectionType); - } - function dt7(n, o5, s5, u) { - let g5 = B9(194); - return g5.checkType = a().parenthesizeCheckTypeOfConditionalType(n), g5.extendsType = a().parenthesizeExtendsTypeOfConditionalType(o5), g5.trueType = s5, g5.falseType = u, g5.transformFlags = 1, g5.locals = void 0, g5.nextContainer = void 0, g5; - } - function li7(n, o5, s5, u, g5) { - return n.checkType !== o5 || n.extendsType !== s5 || n.trueType !== u || n.falseType !== g5 ? r9(dt7(o5, s5, u, g5), n) : n; - } - function Hn6(n) { - let o5 = B9(195); - return o5.typeParameter = n, o5.transformFlags = 1, o5; - } - function e12(n, o5) { - return n.typeParameter !== o5 ? r9(Hn6(o5), n) : n; - } - function dr6(n, o5) { - let s5 = B9(203); - return s5.head = n, s5.templateSpans = Y10(o5), s5.transformFlags = 1, s5; - } - function t13(n, o5, s5) { - return n.head !== o5 || n.templateSpans !== s5 ? r9(dr6(o5, s5), n) : n; - } - function ui7(n, o5, s5, u, g5 = false) { - let I7 = B9(205); - return I7.argument = n, I7.assertions = o5, I7.qualifier = s5, I7.typeArguments = u && a().parenthesizeTypeArguments(u), I7.isTypeOf = g5, I7.transformFlags = 1, I7; - } - function fs12(n, o5, s5, u, g5, I7 = n.isTypeOf) { - return n.argument !== o5 || n.assertions !== s5 || n.qualifier !== u || n.typeArguments !== g5 || n.isTypeOf !== I7 ? r9(ui7(o5, s5, u, g5, I7), n) : n; - } - function xr5(n) { - let o5 = B9(196); - return o5.type = n, o5.transformFlags = 1, o5; - } - function Ft7(n, o5) { - return n.type !== o5 ? r9(xr5(o5), n) : n; - } - function M9() { - let n = B9(197); - return n.transformFlags = 1, n; - } - function Jr6(n, o5) { - let s5 = B9(198); - return s5.operator = n, s5.type = n === 148 ? a().parenthesizeOperandOfReadonlyTypeOperator(o5) : a().parenthesizeOperandOfTypeOperator(o5), s5.transformFlags = 1, s5; - } - function sa4(n, o5) { - return n.type !== o5 ? r9(Jr6(n.operator, o5), n) : n; - } - function Ni7(n, o5) { - let s5 = B9(199); - return s5.objectType = a().parenthesizeNonArrayTypeOfPostfixType(n), s5.indexType = o5, s5.transformFlags = 1, s5; - } - function G_(n, o5, s5) { - return n.objectType !== o5 || n.indexType !== s5 ? r9(Ni7(o5, s5), n) : n; - } - function Lt9(n, o5, s5, u, g5, I7) { - let W7 = ae8(200); - return W7.readonlyToken = n, W7.typeParameter = o5, W7.nameType = s5, W7.questionToken = u, W7.type = g5, W7.members = I7 && Y10(I7), W7.transformFlags = 1, W7.locals = void 0, W7.nextContainer = void 0, W7; - } - function Yt6(n, o5, s5, u, g5, I7, W7) { - return n.readonlyToken !== o5 || n.typeParameter !== s5 || n.nameType !== u || n.questionToken !== g5 || n.type !== I7 || n.members !== W7 ? r9(Lt9(o5, s5, u, g5, I7, W7), n) : n; - } - function Oi6(n) { - let o5 = B9(201); - return o5.literal = n, o5.transformFlags = 1, o5; - } - function r12(n, o5) { - return n.literal !== o5 ? r9(Oi6(o5), n) : n; - } - function Tu4(n) { - let o5 = B9(206); - return o5.elements = Y10(n), o5.transformFlags |= De9(o5.elements) | 1024 | 524288, o5.transformFlags & 32768 && (o5.transformFlags |= 65664), o5; - } - function Ua4(n, o5) { - return n.elements !== o5 ? r9(Tu4(o5), n) : n; - } - function Su4(n) { - let o5 = B9(207); - return o5.elements = Y10(n), o5.transformFlags |= De9(o5.elements) | 1024 | 524288, o5; - } - function X_(n, o5) { - return n.elements !== o5 ? r9(Su4(o5), n) : n; - } - function _a3(n, o5, s5, u) { - let g5 = ae8(208); - return g5.dotDotDotToken = n, g5.propertyName = Xe9(o5), g5.name = Xe9(s5), g5.initializer = To2(u), g5.transformFlags |= V7(g5.dotDotDotToken) | In4(g5.propertyName) | In4(g5.name) | V7(g5.initializer) | (g5.dotDotDotToken ? 32768 : 0) | 1024, g5.flowNode = void 0, g5; - } - function xu4(n, o5, s5, u, g5) { - return n.propertyName !== s5 || n.dotDotDotToken !== o5 || n.name !== u || n.initializer !== g5 ? r9(_a3(o5, s5, u, g5), n) : n; - } - function $_(n, o5) { - let s5 = B9(209), u = n && wi7(n), g5 = Y10(n, u && Pm(u) ? true : void 0); - return s5.elements = a().parenthesizeExpressionsOfCommaDelimitedList(g5), s5.multiLine = o5, s5.transformFlags |= De9(s5.elements), s5; - } - function wu4(n, o5) { - return n.elements !== o5 ? r9($_(o5, n.multiLine), n) : n; - } - function ds5(n, o5) { - let s5 = ae8(210); - return s5.properties = Y10(n), s5.multiLine = o5, s5.transformFlags |= De9(s5.properties), s5.jsDoc = void 0, s5; - } - function n12(n, o5) { - return n.properties !== o5 ? r9(ds5(o5, n.multiLine), n) : n; - } - function ms7(n, o5, s5) { - let u = ae8(211); - return u.expression = n, u.questionDotToken = o5, u.name = s5, u.transformFlags = V7(u.expression) | V7(u.questionDotToken) | (Ee6(u.name) ? e_(u.name) : V7(u.name) | 536870912), u.jsDoc = void 0, u.flowNode = void 0, u; - } - function Mi6(n, o5) { - let s5 = ms7(a().parenthesizeLeftSideOfAccess(n, false), void 0, Xe9(o5)); - return Uf(n) && (s5.transformFlags |= 384), s5; - } - function Q_(n, o5, s5) { - return Y42(n) ? ys7(n, o5, n.questionDotToken, gi7(s5, Ee6)) : n.expression !== o5 || n.name !== s5 ? r9(Mi6(o5, s5), n) : n; - } - function hs5(n, o5, s5) { - let u = ms7(a().parenthesizeLeftSideOfAccess(n, true), o5, Xe9(s5)); - return u.flags |= 64, u.transformFlags |= 32, u; - } - function ys7(n, o5, s5, u) { - return N6.assert(!!(n.flags & 64), "Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."), n.expression !== o5 || n.questionDotToken !== s5 || n.name !== u ? r9(hs5(o5, s5, u), n) : n; - } - function Cu4(n, o5, s5) { - let u = ae8(212); - return u.expression = n, u.questionDotToken = o5, u.argumentExpression = s5, u.transformFlags |= V7(u.expression) | V7(u.questionDotToken) | V7(u.argumentExpression), u.jsDoc = void 0, u.flowNode = void 0, u; - } - function Y_(n, o5) { - let s5 = Cu4(a().parenthesizeLeftSideOfAccess(n, false), void 0, Cr6(o5)); - return Uf(n) && (s5.transformFlags |= 384), s5; - } - function Eu3(n, o5, s5) { - return K42(n) ? ku3(n, o5, n.questionDotToken, s5) : n.expression !== o5 || n.argumentExpression !== s5 ? r9(Y_(o5, s5), n) : n; - } - function Au4(n, o5, s5) { - let u = Cu4(a().parenthesizeLeftSideOfAccess(n, true), o5, Cr6(s5)); - return u.flags |= 64, u.transformFlags |= 32, u; - } - function ku3(n, o5, s5, u) { - return N6.assert(!!(n.flags & 64), "Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."), n.expression !== o5 || n.questionDotToken !== s5 || n.argumentExpression !== u ? r9(Au4(o5, s5, u), n) : n; - } - function po3(n, o5, s5, u) { - let g5 = ae8(213); - return g5.expression = n, g5.questionDotToken = o5, g5.typeArguments = s5, g5.arguments = u, g5.transformFlags |= V7(g5.expression) | V7(g5.questionDotToken) | De9(g5.typeArguments) | De9(g5.arguments), g5.typeArguments && (g5.transformFlags |= 1), yd(g5.expression) && (g5.transformFlags |= 16384), g5; - } - function fo3(n, o5, s5) { - let u = po3(a().parenthesizeLeftSideOfAccess(n, false), void 0, Oe11(o5), a().parenthesizeExpressionsOfCommaDelimitedList(Y10(s5))); - return Wx(u.expression) && (u.transformFlags |= 8388608), u; - } - function i12(n, o5, s5, u) { - return y0(n) ? gs8(n, o5, n.questionDotToken, s5, u) : n.expression !== o5 || n.typeArguments !== s5 || n.arguments !== u ? r9(fo3(o5, s5, u), n) : n; - } - function zr6(n, o5, s5, u) { - let g5 = po3(a().parenthesizeLeftSideOfAccess(n, true), o5, Oe11(s5), a().parenthesizeExpressionsOfCommaDelimitedList(Y10(u))); - return g5.flags |= 64, g5.transformFlags |= 32, g5; - } - function gs8(n, o5, s5, u, g5) { - return N6.assert(!!(n.flags & 64), "Cannot update a CallExpression using updateCallChain. Use updateCall instead."), n.expression !== o5 || n.questionDotToken !== s5 || n.typeArguments !== u || n.arguments !== g5 ? r9(zr6(o5, s5, u, g5), n) : n; - } - function bs7(n, o5, s5) { - let u = ae8(214); - return u.expression = a().parenthesizeExpressionOfNew(n), u.typeArguments = Oe11(o5), u.arguments = s5 ? a().parenthesizeExpressionsOfCommaDelimitedList(s5) : void 0, u.transformFlags |= V7(u.expression) | De9(u.typeArguments) | De9(u.arguments) | 32, u.typeArguments && (u.transformFlags |= 1), u; - } - function Du3(n, o5, s5, u) { - return n.expression !== o5 || n.typeArguments !== s5 || n.arguments !== u ? r9(bs7(o5, s5, u), n) : n; - } - function Pu4(n, o5, s5) { - let u = B9(215); - return u.tag = a().parenthesizeLeftSideOfAccess(n, false), u.typeArguments = Oe11(o5), u.template = s5, u.transformFlags |= V7(u.tag) | De9(u.typeArguments) | V7(u.template) | 1024, u.typeArguments && (u.transformFlags |= 1), UT(u.template) && (u.transformFlags |= 128), u; - } - function a12(n, o5, s5, u) { - return n.tag !== o5 || n.typeArguments !== s5 || n.template !== u ? r9(Pu4(o5, s5, u), n) : n; - } - function Iu3(n, o5) { - let s5 = B9(216); - return s5.expression = a().parenthesizeOperandOfPrefixUnary(o5), s5.type = n, s5.transformFlags |= V7(s5.expression) | V7(s5.type) | 1, s5; - } - function Nu5(n, o5, s5) { - return n.type !== o5 || n.expression !== s5 ? r9(Iu3(o5, s5), n) : n; - } - function K_(n) { - let o5 = B9(217); - return o5.expression = n, o5.transformFlags = V7(o5.expression), o5.jsDoc = void 0, o5; - } - function Ou5(n, o5) { - return n.expression !== o5 ? r9(K_(o5), n) : n; - } - function Z_(n, o5, s5, u, g5, I7, W7) { - let de7 = ae8(218); - de7.modifiers = Oe11(n), de7.asteriskToken = o5, de7.name = Xe9(s5), de7.typeParameters = Oe11(u), de7.parameters = Y10(g5), de7.type = I7, de7.body = W7; - let We8 = ln6(de7.modifiers) & 512, Er6 = !!de7.asteriskToken, $n5 = We8 && Er6; - return de7.transformFlags = De9(de7.modifiers) | V7(de7.asteriskToken) | In4(de7.name) | De9(de7.typeParameters) | De9(de7.parameters) | V7(de7.type) | V7(de7.body) & -67108865 | ($n5 ? 128 : We8 ? 256 : Er6 ? 2048 : 0) | (de7.typeParameters || de7.type ? 1 : 0) | 4194304, de7.typeArguments = void 0, de7.jsDoc = void 0, de7.locals = void 0, de7.nextContainer = void 0, de7.flowNode = void 0, de7.endFlowNode = void 0, de7.returnFlowNode = void 0, de7; - } - function Mu4(n, o5, s5, u, g5, I7, W7, de7) { - return n.name !== u || n.modifiers !== o5 || n.asteriskToken !== s5 || n.typeParameters !== g5 || n.parameters !== I7 || n.type !== W7 || n.body !== de7 ? Ce10(Z_(o5, s5, u, g5, I7, W7, de7), n) : n; - } - function ec5(n, o5, s5, u, g5, I7) { - let W7 = ae8(219); - W7.modifiers = Oe11(n), W7.typeParameters = Oe11(o5), W7.parameters = Y10(s5), W7.type = u, W7.equalsGreaterThanToken = g5 ?? vt9(39), W7.body = a().parenthesizeConciseBodyOfArrowFunction(I7); - let de7 = ln6(W7.modifiers) & 512; - return W7.transformFlags = De9(W7.modifiers) | De9(W7.typeParameters) | De9(W7.parameters) | V7(W7.type) | V7(W7.equalsGreaterThanToken) | V7(W7.body) & -67108865 | (W7.typeParameters || W7.type ? 1 : 0) | (de7 ? 16640 : 0) | 1024, W7.typeArguments = void 0, W7.jsDoc = void 0, W7.locals = void 0, W7.nextContainer = void 0, W7.flowNode = void 0, W7.endFlowNode = void 0, W7.returnFlowNode = void 0, W7; - } - function tc4(n, o5, s5, u, g5, I7, W7) { - return n.modifiers !== o5 || n.typeParameters !== s5 || n.parameters !== u || n.type !== g5 || n.equalsGreaterThanToken !== I7 || n.body !== W7 ? Ce10(ec5(o5, s5, u, g5, I7, W7), n) : n; - } - function Lu3(n) { - let o5 = B9(220); - return o5.expression = a().parenthesizeOperandOfPrefixUnary(n), o5.transformFlags |= V7(o5.expression), o5; - } - function Wr6(n, o5) { - return n.expression !== o5 ? r9(Lu3(o5), n) : n; - } - function vs7(n) { - let o5 = B9(221); - return o5.expression = a().parenthesizeOperandOfPrefixUnary(n), o5.transformFlags |= V7(o5.expression), o5; - } - function pi8(n, o5) { - return n.expression !== o5 ? r9(vs7(o5), n) : n; - } - function rc3(n) { - let o5 = B9(222); - return o5.expression = a().parenthesizeOperandOfPrefixUnary(n), o5.transformFlags |= V7(o5.expression), o5; - } - function ca5(n, o5) { - return n.expression !== o5 ? r9(rc3(o5), n) : n; - } - function la5(n) { - let o5 = B9(223); - return o5.expression = a().parenthesizeOperandOfPrefixUnary(n), o5.transformFlags |= V7(o5.expression) | 256 | 128 | 2097152, o5; - } - function o12(n, o5) { - return n.expression !== o5 ? r9(la5(o5), n) : n; - } - function qa5(n, o5) { - let s5 = B9(224); - return s5.operator = n, s5.operand = a().parenthesizeOperandOfPrefixUnary(o5), s5.transformFlags |= V7(s5.operand), (n === 46 || n === 47) && Ee6(s5.operand) && !wa2(s5.operand) && !Y0(s5.operand) && (s5.transformFlags |= 268435456), s5; - } - function s12(n, o5) { - return n.operand !== o5 ? r9(qa5(n.operator, o5), n) : n; - } - function Ts8(n, o5) { - let s5 = B9(225); - return s5.operator = o5, s5.operand = a().parenthesizeOperandOfPostfixUnary(n), s5.transformFlags |= V7(s5.operand), Ee6(s5.operand) && !wa2(s5.operand) && !Y0(s5.operand) && (s5.transformFlags |= 268435456), s5; - } - function _12(n, o5) { - return n.operand !== o5 ? r9(Ts8(o5, n.operator), n) : n; - } - function nc3(n, o5, s5) { - let u = ae8(226), g5 = lr7(o5), I7 = g5.kind; - return u.left = a().parenthesizeLeftSideOfBinary(I7, n), u.operatorToken = g5, u.right = a().parenthesizeRightSideOfBinary(I7, u.left, s5), u.transformFlags |= V7(u.left) | V7(u.operatorToken) | V7(u.right), I7 === 61 ? u.transformFlags |= 32 : I7 === 64 ? uo4(u.left) ? u.transformFlags |= 5248 | Ju3(u.left) : iu4(u.left) && (u.transformFlags |= 5120 | Ju3(u.left)) : I7 === 43 || I7 === 68 ? u.transformFlags |= 512 : vm(I7) && (u.transformFlags |= 16), I7 === 103 && jr6(u.left) && (u.transformFlags |= 536870912), u.jsDoc = void 0, u; - } - function Ju3(n) { - return U62(n) ? 65536 : 0; - } - function Ru4(n, o5, s5, u) { - return n.left !== o5 || n.operatorToken !== s5 || n.right !== u ? r9(nc3(o5, s5, u), n) : n; - } - function ju5(n, o5, s5, u, g5) { - let I7 = B9(227); - return I7.condition = a().parenthesizeConditionOfConditionalExpression(n), I7.questionToken = o5 ?? vt9(58), I7.whenTrue = a().parenthesizeBranchOfConditionalExpression(s5), I7.colonToken = u ?? vt9(59), I7.whenFalse = a().parenthesizeBranchOfConditionalExpression(g5), I7.transformFlags |= V7(I7.condition) | V7(I7.questionToken) | V7(I7.whenTrue) | V7(I7.colonToken) | V7(I7.whenFalse), I7; - } - function fi7(n, o5, s5, u, g5, I7) { - return n.condition !== o5 || n.questionToken !== s5 || n.whenTrue !== u || n.colonToken !== g5 || n.whenFalse !== I7 ? r9(ju5(o5, s5, u, g5, I7), n) : n; - } - function ic3(n, o5) { - let s5 = B9(228); - return s5.head = n, s5.templateSpans = Y10(o5), s5.transformFlags |= V7(s5.head) | De9(s5.templateSpans) | 1024, s5; - } - function c12(n, o5, s5) { - return n.head !== o5 || n.templateSpans !== s5 ? r9(ic3(o5, s5), n) : n; - } - function Ss6(n, o5, s5, u = 0) { - N6.assert(!(u & -7177), "Unsupported template flags."); - let g5; - if (s5 !== void 0 && s5 !== o5 && (g5 = PL(n, s5), typeof g5 == "object")) - return N6.fail("Invalid raw text"); - if (o5 === void 0) { - if (g5 === void 0) - return N6.fail("Arguments 'text' and 'rawText' may not both be undefined."); - o5 = g5; - } else - g5 !== void 0 && N6.assert(o5 === g5, "Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'."); - return o5; - } - function za4(n) { - let o5 = 1024; - return n && (o5 |= 128), o5; - } - function Fu5(n, o5, s5, u) { - let g5 = Tr6(n); - return g5.text = o5, g5.rawText = s5, g5.templateFlags = u & 7176, g5.transformFlags = za4(g5.templateFlags), g5; - } - function ac3(n, o5, s5, u) { - let g5 = ae8(n); - return g5.text = o5, g5.rawText = s5, g5.templateFlags = u & 7176, g5.transformFlags = za4(g5.templateFlags), g5; - } - function Li6(n, o5, s5, u) { - return n === 15 ? ac3(n, o5, s5, u) : Fu5(n, o5, s5, u); - } - function oc4(n, o5, s5) { - return n = Ss6(16, n, o5, s5), Li6(16, n, o5, s5); - } - function l12(n, o5, s5) { - return n = Ss6(16, n, o5, s5), Li6(17, n, o5, s5); - } - function Bu3(n, o5, s5) { - return n = Ss6(16, n, o5, s5), Li6(18, n, o5, s5); - } - function u12(n, o5, s5) { - return n = Ss6(16, n, o5, s5), ac3(15, n, o5, s5); - } - function Uu3(n, o5) { - N6.assert(!n || !!o5, "A `YieldExpression` with an asteriskToken must have an expression."); - let s5 = B9(229); - return s5.expression = o5 && a().parenthesizeExpressionForDisallowedComma(o5), s5.asteriskToken = n, s5.transformFlags |= V7(s5.expression) | V7(s5.asteriskToken) | 1024 | 128 | 1048576, s5; - } - function p12(n, o5, s5) { - return n.expression !== s5 || n.asteriskToken !== o5 ? r9(Uu3(o5, s5), n) : n; - } - function qu4(n) { - let o5 = B9(230); - return o5.expression = a().parenthesizeExpressionForDisallowedComma(n), o5.transformFlags |= V7(o5.expression) | 1024 | 32768, o5; - } - function f12(n, o5) { - return n.expression !== o5 ? r9(qu4(o5), n) : n; - } - function xs5(n, o5, s5, u, g5) { - let I7 = ae8(231); - return I7.modifiers = Oe11(n), I7.name = Xe9(o5), I7.typeParameters = Oe11(s5), I7.heritageClauses = Oe11(u), I7.members = Y10(g5), I7.transformFlags |= De9(I7.modifiers) | In4(I7.name) | De9(I7.typeParameters) | De9(I7.heritageClauses) | De9(I7.members) | (I7.typeParameters ? 1 : 0) | 1024, I7.jsDoc = void 0, I7; - } - function sc3(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.name !== s5 || n.typeParameters !== u || n.heritageClauses !== g5 || n.members !== I7 ? r9(xs5(o5, s5, u, g5, I7), n) : n; - } - function d12() { - return B9(232); - } - function Vr6(n, o5) { - let s5 = B9(233); - return s5.expression = a().parenthesizeLeftSideOfAccess(n, false), s5.typeArguments = o5 && a().parenthesizeTypeArguments(o5), s5.transformFlags |= V7(s5.expression) | De9(s5.typeArguments) | 1024, s5; - } - function _c4(n, o5, s5) { - return n.expression !== o5 || n.typeArguments !== s5 ? r9(Vr6(o5, s5), n) : n; - } - function zu4(n, o5) { - let s5 = B9(234); - return s5.expression = n, s5.type = o5, s5.transformFlags |= V7(s5.expression) | V7(s5.type) | 1, s5; - } - function Wu4(n, o5, s5) { - return n.expression !== o5 || n.type !== s5 ? r9(zu4(o5, s5), n) : n; - } - function cc4(n) { - let o5 = B9(235); - return o5.expression = a().parenthesizeLeftSideOfAccess(n, false), o5.transformFlags |= V7(o5.expression) | 1, o5; - } - function Vu4(n, o5) { - return e3(n) ? ws7(n, o5) : n.expression !== o5 ? r9(cc4(o5), n) : n; - } - function lc3(n, o5) { - let s5 = B9(238); - return s5.expression = n, s5.type = o5, s5.transformFlags |= V7(s5.expression) | V7(s5.type) | 1, s5; - } - function Dn5(n, o5, s5) { - return n.expression !== o5 || n.type !== s5 ? r9(lc3(o5, s5), n) : n; - } - function Hu4(n) { - let o5 = B9(235); - return o5.flags |= 64, o5.expression = a().parenthesizeLeftSideOfAccess(n, true), o5.transformFlags |= V7(o5.expression) | 1, o5; - } - function ws7(n, o5) { - return N6.assert(!!(n.flags & 64), "Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."), n.expression !== o5 ? r9(Hu4(o5), n) : n; - } - function Gn5(n, o5) { - let s5 = B9(236); - switch (s5.keywordToken = n, s5.name = o5, s5.transformFlags |= V7(s5.name), n) { - case 105: - s5.transformFlags |= 1024; - break; - case 102: - s5.transformFlags |= 32; - break; - default: - return N6.assertNever(n); - } - return s5.flowNode = void 0, s5; - } - function Cs6(n, o5) { - return n.name !== o5 ? r9(Gn5(n.keywordToken, o5), n) : n; - } - function uc4(n, o5) { - let s5 = B9(239); - return s5.expression = n, s5.literal = o5, s5.transformFlags |= V7(s5.expression) | V7(s5.literal) | 1024, s5; - } - function Gu4(n, o5, s5) { - return n.expression !== o5 || n.literal !== s5 ? r9(uc4(o5, s5), n) : n; - } - function m12() { - let n = B9(240); - return n.transformFlags |= 1024, n; - } - function ua5(n, o5) { - let s5 = B9(241); - return s5.statements = Y10(n), s5.multiLine = o5, s5.transformFlags |= De9(s5.statements), s5.jsDoc = void 0, s5.locals = void 0, s5.nextContainer = void 0, s5; - } - function h12(n, o5) { - return n.statements !== o5 ? r9(ua5(o5, n.multiLine), n) : n; - } - function Xu4(n, o5) { - let s5 = B9(243); - return s5.modifiers = Oe11(n), s5.declarationList = zt6(o5) ? gc2(o5) : o5, s5.transformFlags |= De9(s5.modifiers) | V7(s5.declarationList), ln6(s5.modifiers) & 2 && (s5.transformFlags = 1), s5.jsDoc = void 0, s5.flowNode = void 0, s5; - } - function pc2(n, o5, s5) { - return n.modifiers !== o5 || n.declarationList !== s5 ? r9(Xu4(o5, s5), n) : n; - } - function fc3() { - let n = B9(242); - return n.jsDoc = void 0, n; - } - function Es6(n) { - let o5 = B9(244); - return o5.expression = a().parenthesizeExpressionOfExpressionStatement(n), o5.transformFlags |= V7(o5.expression), o5.jsDoc = void 0, o5.flowNode = void 0, o5; - } - function $u3(n, o5) { - return n.expression !== o5 ? r9(Es6(o5), n) : n; - } - function Qu4(n, o5, s5) { - let u = B9(245); - return u.expression = n, u.thenStatement = on6(o5), u.elseStatement = on6(s5), u.transformFlags |= V7(u.expression) | V7(u.thenStatement) | V7(u.elseStatement), u.jsDoc = void 0, u.flowNode = void 0, u; - } - function Yu4(n, o5, s5, u) { - return n.expression !== o5 || n.thenStatement !== s5 || n.elseStatement !== u ? r9(Qu4(o5, s5, u), n) : n; - } - function Ku4(n, o5) { - let s5 = B9(246); - return s5.statement = on6(n), s5.expression = o5, s5.transformFlags |= V7(s5.statement) | V7(s5.expression), s5.jsDoc = void 0, s5.flowNode = void 0, s5; - } - function y12(n, o5, s5) { - return n.statement !== o5 || n.expression !== s5 ? r9(Ku4(o5, s5), n) : n; - } - function Zu3(n, o5) { - let s5 = B9(247); - return s5.expression = n, s5.statement = on6(o5), s5.transformFlags |= V7(s5.expression) | V7(s5.statement), s5.jsDoc = void 0, s5.flowNode = void 0, s5; - } - function ep2(n, o5, s5) { - return n.expression !== o5 || n.statement !== s5 ? r9(Zu3(o5, s5), n) : n; - } - function dc2(n, o5, s5, u) { - let g5 = B9(248); - return g5.initializer = n, g5.condition = o5, g5.incrementor = s5, g5.statement = on6(u), g5.transformFlags |= V7(g5.initializer) | V7(g5.condition) | V7(g5.incrementor) | V7(g5.statement), g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5.flowNode = void 0, g5; - } - function g12(n, o5, s5, u, g5) { - return n.initializer !== o5 || n.condition !== s5 || n.incrementor !== u || n.statement !== g5 ? r9(dc2(o5, s5, u, g5), n) : n; - } - function tp2(n, o5, s5) { - let u = B9(249); - return u.initializer = n, u.expression = o5, u.statement = on6(s5), u.transformFlags |= V7(u.initializer) | V7(u.expression) | V7(u.statement), u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u.flowNode = void 0, u; - } - function b12(n, o5, s5, u) { - return n.initializer !== o5 || n.expression !== s5 || n.statement !== u ? r9(tp2(o5, s5, u), n) : n; - } - function rp2(n, o5, s5, u) { - let g5 = B9(250); - return g5.awaitModifier = n, g5.initializer = o5, g5.expression = a().parenthesizeExpressionForDisallowedComma(s5), g5.statement = on6(u), g5.transformFlags |= V7(g5.awaitModifier) | V7(g5.initializer) | V7(g5.expression) | V7(g5.statement) | 1024, n && (g5.transformFlags |= 128), g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5.flowNode = void 0, g5; - } - function v13(n, o5, s5, u, g5) { - return n.awaitModifier !== o5 || n.initializer !== s5 || n.expression !== u || n.statement !== g5 ? r9(rp2(o5, s5, u, g5), n) : n; - } - function mc2(n) { - let o5 = B9(251); - return o5.label = Xe9(n), o5.transformFlags |= V7(o5.label) | 4194304, o5.jsDoc = void 0, o5.flowNode = void 0, o5; - } - function np2(n, o5) { - return n.label !== o5 ? r9(mc2(o5), n) : n; - } - function hc2(n) { - let o5 = B9(252); - return o5.label = Xe9(n), o5.transformFlags |= V7(o5.label) | 4194304, o5.jsDoc = void 0, o5.flowNode = void 0, o5; - } - function T12(n, o5) { - return n.label !== o5 ? r9(hc2(o5), n) : n; - } - function ip2(n) { - let o5 = B9(253); - return o5.expression = n, o5.transformFlags |= V7(o5.expression) | 128 | 4194304, o5.jsDoc = void 0, o5.flowNode = void 0, o5; - } - function ap2(n, o5) { - return n.expression !== o5 ? r9(ip2(o5), n) : n; - } - function yc2(n, o5) { - let s5 = B9(254); - return s5.expression = n, s5.statement = on6(o5), s5.transformFlags |= V7(s5.expression) | V7(s5.statement), s5.jsDoc = void 0, s5.flowNode = void 0, s5; - } - function op2(n, o5, s5) { - return n.expression !== o5 || n.statement !== s5 ? r9(yc2(o5, s5), n) : n; - } - function pa5(n, o5) { - let s5 = B9(255); - return s5.expression = a().parenthesizeExpressionForDisallowedComma(n), s5.caseBlock = o5, s5.transformFlags |= V7(s5.expression) | V7(s5.caseBlock), s5.jsDoc = void 0, s5.flowNode = void 0, s5.possiblyExhaustive = false, s5; - } - function S12(n, o5, s5) { - return n.expression !== o5 || n.caseBlock !== s5 ? r9(pa5(o5, s5), n) : n; - } - function sp2(n, o5) { - let s5 = B9(256); - return s5.label = Xe9(n), s5.statement = on6(o5), s5.transformFlags |= V7(s5.label) | V7(s5.statement), s5.jsDoc = void 0, s5.flowNode = void 0, s5; - } - function _p2(n, o5, s5) { - return n.label !== o5 || n.statement !== s5 ? r9(sp2(o5, s5), n) : n; - } - function cp2(n) { - let o5 = B9(257); - return o5.expression = n, o5.transformFlags |= V7(o5.expression), o5.jsDoc = void 0, o5.flowNode = void 0, o5; - } - function x12(n, o5) { - return n.expression !== o5 ? r9(cp2(o5), n) : n; - } - function lp2(n, o5, s5) { - let u = B9(258); - return u.tryBlock = n, u.catchClause = o5, u.finallyBlock = s5, u.transformFlags |= V7(u.tryBlock) | V7(u.catchClause) | V7(u.finallyBlock), u.jsDoc = void 0, u.flowNode = void 0, u; - } - function up2(n, o5, s5, u) { - return n.tryBlock !== o5 || n.catchClause !== s5 || n.finallyBlock !== u ? r9(lp2(o5, s5, u), n) : n; - } - function pp2() { - let n = B9(259); - return n.jsDoc = void 0, n.flowNode = void 0, n; - } - function As8(n, o5, s5, u) { - let g5 = ae8(260); - return g5.name = Xe9(n), g5.exclamationToken = o5, g5.type = s5, g5.initializer = To2(u), g5.transformFlags |= In4(g5.name) | V7(g5.initializer) | (g5.exclamationToken ?? g5.type ? 1 : 0), g5.jsDoc = void 0, g5; - } - function w12(n, o5, s5, u, g5) { - return n.name !== o5 || n.type !== u || n.exclamationToken !== s5 || n.initializer !== g5 ? r9(As8(o5, s5, u, g5), n) : n; - } - function gc2(n, o5 = 0) { - let s5 = B9(261); - return s5.flags |= o5 & 7, s5.declarations = Y10(n), s5.transformFlags |= De9(s5.declarations) | 4194304, o5 & 7 && (s5.transformFlags |= 263168), o5 & 4 && (s5.transformFlags |= 4), s5; - } - function C12(n, o5) { - return n.declarations !== o5 ? r9(gc2(o5, n.flags), n) : n; - } - function bc3(n, o5, s5, u, g5, I7, W7) { - let de7 = ae8(262); - if (de7.modifiers = Oe11(n), de7.asteriskToken = o5, de7.name = Xe9(s5), de7.typeParameters = Oe11(u), de7.parameters = Y10(g5), de7.type = I7, de7.body = W7, !de7.body || ln6(de7.modifiers) & 2) - de7.transformFlags = 1; - else { - let We8 = ln6(de7.modifiers) & 512, Er6 = !!de7.asteriskToken, $n5 = We8 && Er6; - de7.transformFlags = De9(de7.modifiers) | V7(de7.asteriskToken) | In4(de7.name) | De9(de7.typeParameters) | De9(de7.parameters) | V7(de7.type) | V7(de7.body) & -67108865 | ($n5 ? 128 : We8 ? 256 : Er6 ? 2048 : 0) | (de7.typeParameters || de7.type ? 1 : 0) | 4194304; - } - return de7.typeArguments = void 0, de7.jsDoc = void 0, de7.locals = void 0, de7.nextContainer = void 0, de7.endFlowNode = void 0, de7.returnFlowNode = void 0, de7; - } - function fp2(n, o5, s5, u, g5, I7, W7, de7) { - return n.modifiers !== o5 || n.asteriskToken !== s5 || n.name !== u || n.typeParameters !== g5 || n.parameters !== I7 || n.type !== W7 || n.body !== de7 ? E12(bc3(o5, s5, u, g5, I7, W7, de7), n) : n; - } - function E12(n, o5) { - return n !== o5 && n.modifiers === o5.modifiers && (n.modifiers = o5.modifiers), Ce10(n, o5); - } - function vc3(n, o5, s5, u, g5) { - let I7 = ae8(263); - return I7.modifiers = Oe11(n), I7.name = Xe9(o5), I7.typeParameters = Oe11(s5), I7.heritageClauses = Oe11(u), I7.members = Y10(g5), ln6(I7.modifiers) & 2 ? I7.transformFlags = 1 : (I7.transformFlags |= De9(I7.modifiers) | In4(I7.name) | De9(I7.typeParameters) | De9(I7.heritageClauses) | De9(I7.members) | (I7.typeParameters ? 1 : 0) | 1024, I7.transformFlags & 8192 && (I7.transformFlags |= 1)), I7.jsDoc = void 0, I7; - } - function Tc4(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.name !== s5 || n.typeParameters !== u || n.heritageClauses !== g5 || n.members !== I7 ? r9(vc3(o5, s5, u, g5, I7), n) : n; - } - function dp2(n, o5, s5, u, g5) { - let I7 = ae8(264); - return I7.modifiers = Oe11(n), I7.name = Xe9(o5), I7.typeParameters = Oe11(s5), I7.heritageClauses = Oe11(u), I7.members = Y10(g5), I7.transformFlags = 1, I7.jsDoc = void 0, I7; - } - function gt7(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.name !== s5 || n.typeParameters !== u || n.heritageClauses !== g5 || n.members !== I7 ? r9(dp2(o5, s5, u, g5, I7), n) : n; - } - function Ji6(n, o5, s5, u) { - let g5 = ae8(265); - return g5.modifiers = Oe11(n), g5.name = Xe9(o5), g5.typeParameters = Oe11(s5), g5.type = u, g5.transformFlags = 1, g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5; - } - function Sc3(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.name !== s5 || n.typeParameters !== u || n.type !== g5 ? r9(Ji6(o5, s5, u, g5), n) : n; - } - function Ri5(n, o5, s5) { - let u = ae8(266); - return u.modifiers = Oe11(n), u.name = Xe9(o5), u.members = Y10(s5), u.transformFlags |= De9(u.modifiers) | V7(u.name) | De9(u.members) | 1, u.transformFlags &= -67108865, u.jsDoc = void 0, u; - } - function mp2(n, o5, s5, u) { - return n.modifiers !== o5 || n.name !== s5 || n.members !== u ? r9(Ri5(o5, s5, u), n) : n; - } - function Jt6(n, o5, s5, u = 0) { - let g5 = ae8(267); - return g5.modifiers = Oe11(n), g5.flags |= u & 2088, g5.name = o5, g5.body = s5, ln6(g5.modifiers) & 2 ? g5.transformFlags = 1 : g5.transformFlags |= De9(g5.modifiers) | V7(g5.name) | V7(g5.body) | 1, g5.transformFlags &= -67108865, g5.jsDoc = void 0, g5.locals = void 0, g5.nextContainer = void 0, g5; - } - function ji5(n, o5, s5, u) { - return n.modifiers !== o5 || n.name !== s5 || n.body !== u ? r9(Jt6(o5, s5, u, n.flags), n) : n; - } - function tr8(n) { - let o5 = B9(268); - return o5.statements = Y10(n), o5.transformFlags |= De9(o5.statements), o5.jsDoc = void 0, o5; - } - function A12(n, o5) { - return n.statements !== o5 ? r9(tr8(o5), n) : n; - } - function hp2(n) { - let o5 = B9(269); - return o5.clauses = Y10(n), o5.transformFlags |= De9(o5.clauses), o5.locals = void 0, o5.nextContainer = void 0, o5; - } - function k12(n, o5) { - return n.clauses !== o5 ? r9(hp2(o5), n) : n; - } - function xc2(n) { - let o5 = ae8(270); - return o5.name = Xe9(n), o5.transformFlags |= e_(o5.name) | 1, o5.modifiers = void 0, o5.jsDoc = void 0, o5; - } - function D12(n, o5) { - return n.name !== o5 ? P12(xc2(o5), n) : n; - } - function P12(n, o5) { - return n !== o5 && (n.modifiers = o5.modifiers), r9(n, o5); - } - function yp2(n, o5, s5, u) { - let g5 = ae8(271); - return g5.modifiers = Oe11(n), g5.name = Xe9(s5), g5.isTypeOnly = o5, g5.moduleReference = u, g5.transformFlags |= De9(g5.modifiers) | e_(g5.name) | V7(g5.moduleReference), Nm(g5.moduleReference) || (g5.transformFlags |= 1), g5.transformFlags &= -67108865, g5.jsDoc = void 0, g5; - } - function gp2(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.isTypeOnly !== s5 || n.name !== u || n.moduleReference !== g5 ? r9(yp2(o5, s5, u, g5), n) : n; - } - function bp2(n, o5, s5, u) { - let g5 = B9(272); - return g5.modifiers = Oe11(n), g5.importClause = o5, g5.moduleSpecifier = s5, g5.assertClause = u, g5.transformFlags |= V7(g5.importClause) | V7(g5.moduleSpecifier), g5.transformFlags &= -67108865, g5.jsDoc = void 0, g5; - } - function vp2(n, o5, s5, u, g5) { - return n.modifiers !== o5 || n.importClause !== s5 || n.moduleSpecifier !== u || n.assertClause !== g5 ? r9(bp2(o5, s5, u, g5), n) : n; - } - function wc2(n, o5, s5) { - let u = ae8(273); - return u.isTypeOnly = n, u.name = o5, u.namedBindings = s5, u.transformFlags |= V7(u.name) | V7(u.namedBindings), n && (u.transformFlags |= 1), u.transformFlags &= -67108865, u; - } - function Tp2(n, o5, s5, u) { - return n.isTypeOnly !== o5 || n.name !== s5 || n.namedBindings !== u ? r9(wc2(o5, s5, u), n) : n; - } - function Sp2(n, o5) { - let s5 = B9(300); - return s5.elements = Y10(n), s5.multiLine = o5, s5.transformFlags |= 4, s5; - } - function ks7(n, o5, s5) { - return n.elements !== o5 || n.multiLine !== s5 ? r9(Sp2(o5, s5), n) : n; - } - function Cc3(n, o5) { - let s5 = B9(301); - return s5.name = n, s5.value = o5, s5.transformFlags |= 4, s5; - } - function xp2(n, o5, s5) { - return n.name !== o5 || n.value !== s5 ? r9(Cc3(o5, s5), n) : n; - } - function Ec3(n, o5) { - let s5 = B9(302); - return s5.assertClause = n, s5.multiLine = o5, s5; - } - function I12(n, o5, s5) { - return n.assertClause !== o5 || n.multiLine !== s5 ? r9(Ec3(o5, s5), n) : n; - } - function Ds8(n) { - let o5 = ae8(274); - return o5.name = n, o5.transformFlags |= V7(o5.name), o5.transformFlags &= -67108865, o5; - } - function N12(n, o5) { - return n.name !== o5 ? r9(Ds8(o5), n) : n; - } - function Ac4(n) { - let o5 = ae8(280); - return o5.name = n, o5.transformFlags |= V7(o5.name) | 32, o5.transformFlags &= -67108865, o5; - } - function O12(n, o5) { - return n.name !== o5 ? r9(Ac4(o5), n) : n; - } - function wp2(n) { - let o5 = B9(275); - return o5.elements = Y10(n), o5.transformFlags |= De9(o5.elements), o5.transformFlags &= -67108865, o5; - } - function M12(n, o5) { - return n.elements !== o5 ? r9(wp2(o5), n) : n; - } - function Cp2(n, o5, s5) { - let u = ae8(276); - return u.isTypeOnly = n, u.propertyName = o5, u.name = s5, u.transformFlags |= V7(u.propertyName) | V7(u.name), u.transformFlags &= -67108865, u; - } - function L12(n, o5, s5, u) { - return n.isTypeOnly !== o5 || n.propertyName !== s5 || n.name !== u ? r9(Cp2(o5, s5, u), n) : n; - } - function Ps7(n, o5, s5) { - let u = ae8(277); - return u.modifiers = Oe11(n), u.isExportEquals = o5, u.expression = o5 ? a().parenthesizeRightSideOfBinary(64, void 0, s5) : a().parenthesizeExpressionOfExportDefault(s5), u.transformFlags |= De9(u.modifiers) | V7(u.expression), u.transformFlags &= -67108865, u.jsDoc = void 0, u; - } - function Fi7(n, o5, s5) { - return n.modifiers !== o5 || n.expression !== s5 ? r9(Ps7(o5, n.isExportEquals, s5), n) : n; - } - function kc4(n, o5, s5, u, g5) { - let I7 = ae8(278); - return I7.modifiers = Oe11(n), I7.isTypeOnly = o5, I7.exportClause = s5, I7.moduleSpecifier = u, I7.assertClause = g5, I7.transformFlags |= De9(I7.modifiers) | V7(I7.exportClause) | V7(I7.moduleSpecifier), I7.transformFlags &= -67108865, I7.jsDoc = void 0, I7; - } - function Dc3(n, o5, s5, u, g5, I7) { - return n.modifiers !== o5 || n.isTypeOnly !== s5 || n.exportClause !== u || n.moduleSpecifier !== g5 || n.assertClause !== I7 ? Is6(kc4(o5, s5, u, g5, I7), n) : n; - } - function Is6(n, o5) { - return n !== o5 && n.modifiers === o5.modifiers && (n.modifiers = o5.modifiers), r9(n, o5); - } - function Ns8(n) { - let o5 = B9(279); - return o5.elements = Y10(n), o5.transformFlags |= De9(o5.elements), o5.transformFlags &= -67108865, o5; - } - function J12(n, o5) { - return n.elements !== o5 ? r9(Ns8(o5), n) : n; - } - function fa4(n, o5, s5) { - let u = B9(281); - return u.isTypeOnly = n, u.propertyName = Xe9(o5), u.name = Xe9(s5), u.transformFlags |= V7(u.propertyName) | V7(u.name), u.transformFlags &= -67108865, u.jsDoc = void 0, u; - } - function R12(n, o5, s5, u) { - return n.isTypeOnly !== o5 || n.propertyName !== s5 || n.name !== u ? r9(fa4(o5, s5, u), n) : n; - } - function j12() { - let n = ae8(282); - return n.jsDoc = void 0, n; - } - function Pc4(n) { - let o5 = B9(283); - return o5.expression = n, o5.transformFlags |= V7(o5.expression), o5.transformFlags &= -67108865, o5; - } - function F12(n, o5) { - return n.expression !== o5 ? r9(Pc4(o5), n) : n; - } - function B12(n) { - return B9(n); - } - function Ic4(n, o5, s5 = false) { - let u = Nc4(n, s5 ? o5 && a().parenthesizeNonArrayTypeOfPostfixType(o5) : o5); - return u.postfix = s5, u; - } - function Nc4(n, o5) { - let s5 = B9(n); - return s5.type = o5, s5; - } - function Ep2(n, o5, s5) { - return o5.type !== s5 ? r9(Ic4(n, s5, o5.postfix), o5) : o5; - } - function U12(n, o5, s5) { - return o5.type !== s5 ? r9(Nc4(n, s5), o5) : o5; - } - function Ap2(n, o5) { - let s5 = ae8(324); - return s5.parameters = Oe11(n), s5.type = o5, s5.transformFlags = De9(s5.parameters) | (s5.type ? 1 : 0), s5.jsDoc = void 0, s5.locals = void 0, s5.nextContainer = void 0, s5.typeArguments = void 0, s5; - } - function q12(n, o5, s5) { - return n.parameters !== o5 || n.type !== s5 ? r9(Ap2(o5, s5), n) : n; - } - function kp2(n, o5 = false) { - let s5 = ae8(329); - return s5.jsDocPropertyTags = Oe11(n), s5.isArrayType = o5, s5; - } - function z12(n, o5, s5) { - return n.jsDocPropertyTags !== o5 || n.isArrayType !== s5 ? r9(kp2(o5, s5), n) : n; - } - function Dp2(n) { - let o5 = B9(316); - return o5.type = n, o5; - } - function W12(n, o5) { - return n.type !== o5 ? r9(Dp2(o5), n) : n; - } - function Pp2(n, o5, s5) { - let u = ae8(330); - return u.typeParameters = Oe11(n), u.parameters = Y10(o5), u.type = s5, u.jsDoc = void 0, u.locals = void 0, u.nextContainer = void 0, u; - } - function V12(n, o5, s5, u) { - return n.typeParameters !== o5 || n.parameters !== s5 || n.type !== u ? r9(Pp2(o5, s5, u), n) : n; - } - function Hr6(n) { - let o5 = Af(n.kind); - return n.tagName.escapedText === Mn5(o5) ? n.tagName : Ge9(o5); - } - function Bi7(n, o5, s5) { - let u = B9(n); - return u.tagName = o5, u.comment = s5, u; - } - function mo3(n, o5, s5) { - let u = ae8(n); - return u.tagName = o5, u.comment = s5, u; - } - function ho4(n, o5, s5, u) { - let g5 = Bi7(352, n ?? Ge9("template"), u); - return g5.constraint = o5, g5.typeParameters = Y10(s5), g5; - } - function Os8(n, o5 = Hr6(n), s5, u, g5) { - return n.tagName !== o5 || n.constraint !== s5 || n.typeParameters !== u || n.comment !== g5 ? r9(ho4(o5, s5, u, g5), n) : n; - } - function Ms6(n, o5, s5, u) { - let g5 = mo3(353, n ?? Ge9("typedef"), u); - return g5.typeExpression = o5, g5.fullName = s5, g5.name = K0(s5), g5.locals = void 0, g5.nextContainer = void 0, g5; - } - function Ip2(n, o5 = Hr6(n), s5, u, g5) { - return n.tagName !== o5 || n.typeExpression !== s5 || n.fullName !== u || n.comment !== g5 ? r9(Ms6(o5, s5, u, g5), n) : n; - } - function Oc5(n, o5, s5, u, g5, I7) { - let W7 = mo3(348, n ?? Ge9("param"), I7); - return W7.typeExpression = u, W7.name = o5, W7.isNameFirst = !!g5, W7.isBracketed = s5, W7; - } - function Mc4(n, o5 = Hr6(n), s5, u, g5, I7, W7) { - return n.tagName !== o5 || n.name !== s5 || n.isBracketed !== u || n.typeExpression !== g5 || n.isNameFirst !== I7 || n.comment !== W7 ? r9(Oc5(o5, s5, u, g5, I7, W7), n) : n; - } - function Np2(n, o5, s5, u, g5, I7) { - let W7 = mo3(355, n ?? Ge9("prop"), I7); - return W7.typeExpression = u, W7.name = o5, W7.isNameFirst = !!g5, W7.isBracketed = s5, W7; - } - function Op2(n, o5 = Hr6(n), s5, u, g5, I7, W7) { - return n.tagName !== o5 || n.name !== s5 || n.isBracketed !== u || n.typeExpression !== g5 || n.isNameFirst !== I7 || n.comment !== W7 ? r9(Np2(o5, s5, u, g5, I7, W7), n) : n; - } - function Mp2(n, o5, s5, u) { - let g5 = mo3(345, n ?? Ge9("callback"), u); - return g5.typeExpression = o5, g5.fullName = s5, g5.name = K0(s5), g5.locals = void 0, g5.nextContainer = void 0, g5; - } - function H12(n, o5 = Hr6(n), s5, u, g5) { - return n.tagName !== o5 || n.typeExpression !== s5 || n.fullName !== u || n.comment !== g5 ? r9(Mp2(o5, s5, u, g5), n) : n; - } - function Lc5(n, o5, s5) { - let u = Bi7(346, n ?? Ge9("overload"), s5); - return u.typeExpression = o5, u; - } - function G12(n, o5 = Hr6(n), s5, u) { - return n.tagName !== o5 || n.typeExpression !== s5 || n.comment !== u ? r9(Lc5(o5, s5, u), n) : n; - } - function Jc3(n, o5, s5) { - let u = Bi7(335, n ?? Ge9("augments"), s5); - return u.class = o5, u; - } - function X12(n, o5 = Hr6(n), s5, u) { - return n.tagName !== o5 || n.class !== s5 || n.comment !== u ? r9(Jc3(o5, s5, u), n) : n; - } - function Ls7(n, o5, s5) { - let u = Bi7(336, n ?? Ge9("implements"), s5); - return u.class = o5, u; - } - function Rc4(n, o5, s5) { - let u = Bi7(354, n ?? Ge9("see"), s5); - return u.name = o5, u; - } - function yo3(n, o5, s5, u) { - return n.tagName !== o5 || n.name !== s5 || n.comment !== u ? r9(Rc4(o5, s5, u), n) : n; - } - function Lp2(n) { - let o5 = B9(317); - return o5.name = n, o5; - } - function Wa5(n, o5) { - return n.name !== o5 ? r9(Lp2(o5), n) : n; - } - function go3(n, o5) { - let s5 = B9(318); - return s5.left = n, s5.right = o5, s5.transformFlags |= V7(s5.left) | V7(s5.right), s5; - } - function $12(n, o5, s5) { - return n.left !== o5 || n.right !== s5 ? r9(go3(o5, s5), n) : n; - } - function Jp3(n, o5) { - let s5 = B9(331); - return s5.name = n, s5.text = o5, s5; - } - function Q12(n, o5, s5) { - return n.name !== o5 ? r9(Jp3(o5, s5), n) : n; - } - function Rp2(n, o5) { - let s5 = B9(332); - return s5.name = n, s5.text = o5, s5; - } - function Y12(n, o5, s5) { - return n.name !== o5 ? r9(Rp2(o5, s5), n) : n; - } - function jc3(n, o5) { - let s5 = B9(333); - return s5.name = n, s5.text = o5, s5; - } - function K12(n, o5, s5) { - return n.name !== o5 ? r9(jc3(o5, s5), n) : n; - } - function Z12(n, o5 = Hr6(n), s5, u) { - return n.tagName !== o5 || n.class !== s5 || n.comment !== u ? r9(Ls7(o5, s5, u), n) : n; - } - function jp2(n, o5, s5) { - return Bi7(n, o5 ?? Ge9(Af(n)), s5); - } - function eh2(n, o5, s5 = Hr6(o5), u) { - return o5.tagName !== s5 || o5.comment !== u ? r9(jp2(n, s5, u), o5) : o5; - } - function Fp2(n, o5, s5, u) { - let g5 = Bi7(n, o5 ?? Ge9(Af(n)), u); - return g5.typeExpression = s5, g5; - } - function th(n, o5, s5 = Hr6(o5), u, g5) { - return o5.tagName !== s5 || o5.typeExpression !== u || o5.comment !== g5 ? r9(Fp2(n, s5, u, g5), o5) : o5; - } - function Bp2(n, o5) { - return Bi7(334, n, o5); - } - function rh(n, o5, s5) { - return n.tagName !== o5 || n.comment !== s5 ? r9(Bp2(o5, s5), n) : n; - } - function Up2(n, o5, s5) { - let u = mo3(347, n ?? Ge9(Af(347)), s5); - return u.typeExpression = o5, u.locals = void 0, u.nextContainer = void 0, u; - } - function nh(n, o5 = Hr6(n), s5, u) { - return n.tagName !== o5 || n.typeExpression !== s5 || n.comment !== u ? r9(Up2(o5, s5, u), n) : n; - } - function qp3(n) { - let o5 = B9(328); - return o5.text = n, o5; - } - function ih(n, o5) { - return n.text !== o5 ? r9(qp3(o5), n) : n; - } - function Js7(n, o5) { - let s5 = B9(327); - return s5.comment = n, s5.tags = Oe11(o5), s5; - } - function ah(n, o5, s5) { - return n.comment !== o5 || n.tags !== s5 ? r9(Js7(o5, s5), n) : n; - } - function Fc3(n, o5, s5) { - let u = B9(284); - return u.openingElement = n, u.children = Y10(o5), u.closingElement = s5, u.transformFlags |= V7(u.openingElement) | De9(u.children) | V7(u.closingElement) | 2, u; - } - function zp2(n, o5, s5, u) { - return n.openingElement !== o5 || n.children !== s5 || n.closingElement !== u ? r9(Fc3(o5, s5, u), n) : n; - } - function Wp2(n, o5, s5) { - let u = B9(285); - return u.tagName = n, u.typeArguments = Oe11(o5), u.attributes = s5, u.transformFlags |= V7(u.tagName) | De9(u.typeArguments) | V7(u.attributes) | 2, u.typeArguments && (u.transformFlags |= 1), u; - } - function Rs6(n, o5, s5, u) { - return n.tagName !== o5 || n.typeArguments !== s5 || n.attributes !== u ? r9(Wp2(o5, s5, u), n) : n; - } - function Bc3(n, o5, s5) { - let u = B9(286); - return u.tagName = n, u.typeArguments = Oe11(o5), u.attributes = s5, u.transformFlags |= V7(u.tagName) | De9(u.typeArguments) | V7(u.attributes) | 2, o5 && (u.transformFlags |= 1), u; - } - function oh(n, o5, s5, u) { - return n.tagName !== o5 || n.typeArguments !== s5 || n.attributes !== u ? r9(Bc3(o5, s5, u), n) : n; - } - function Vp2(n) { - let o5 = B9(287); - return o5.tagName = n, o5.transformFlags |= V7(o5.tagName) | 2, o5; - } - function sh(n, o5) { - return n.tagName !== o5 ? r9(Vp2(o5), n) : n; - } - function js7(n, o5, s5) { - let u = B9(288); - return u.openingFragment = n, u.children = Y10(o5), u.closingFragment = s5, u.transformFlags |= V7(u.openingFragment) | De9(u.children) | V7(u.closingFragment) | 2, u; - } - function Hp2(n, o5, s5, u) { - return n.openingFragment !== o5 || n.children !== s5 || n.closingFragment !== u ? r9(js7(o5, s5, u), n) : n; - } - function Fs7(n, o5) { - let s5 = B9(12); - return s5.text = n, s5.containsOnlyTriviaWhiteSpaces = !!o5, s5.transformFlags |= 2, s5; - } - function Gp2(n, o5, s5) { - return n.text !== o5 || n.containsOnlyTriviaWhiteSpaces !== s5 ? r9(Fs7(o5, s5), n) : n; - } - function Uc4() { - let n = B9(289); - return n.transformFlags |= 2, n; - } - function wr7() { - let n = B9(290); - return n.transformFlags |= 2, n; - } - function qc3(n, o5) { - let s5 = ae8(291); - return s5.name = n, s5.initializer = o5, s5.transformFlags |= V7(s5.name) | V7(s5.initializer) | 2, s5; - } - function Xp3(n, o5, s5) { - return n.name !== o5 || n.initializer !== s5 ? r9(qc3(o5, s5), n) : n; - } - function $p2(n) { - let o5 = ae8(292); - return o5.properties = Y10(n), o5.transformFlags |= De9(o5.properties) | 2, o5; - } - function Qp2(n, o5) { - return n.properties !== o5 ? r9($p2(o5), n) : n; - } - function Yp2(n) { - let o5 = B9(293); - return o5.expression = n, o5.transformFlags |= V7(o5.expression) | 2, o5; - } - function _h(n, o5) { - return n.expression !== o5 ? r9(Yp2(o5), n) : n; - } - function bo3(n, o5) { - let s5 = B9(294); - return s5.dotDotDotToken = n, s5.expression = o5, s5.transformFlags |= V7(s5.dotDotDotToken) | V7(s5.expression) | 2, s5; - } - function ch(n, o5) { - return n.expression !== o5 ? r9(bo3(n.dotDotDotToken, o5), n) : n; - } - function Kp2(n, o5) { - let s5 = B9(295); - return s5.namespace = n, s5.name = o5, s5.transformFlags |= V7(s5.namespace) | V7(s5.name) | 2, s5; - } - function lh(n, o5, s5) { - return n.namespace !== o5 || n.name !== s5 ? r9(Kp2(o5, s5), n) : n; - } - function Zp3(n, o5) { - let s5 = B9(296); - return s5.expression = a().parenthesizeExpressionForDisallowedComma(n), s5.statements = Y10(o5), s5.transformFlags |= V7(s5.expression) | De9(s5.statements), s5.jsDoc = void 0, s5; - } - function zc3(n, o5, s5) { - return n.expression !== o5 || n.statements !== s5 ? r9(Zp3(o5, s5), n) : n; - } - function Va5(n) { - let o5 = B9(297); - return o5.statements = Y10(n), o5.transformFlags = De9(o5.statements), o5; - } - function uh(n, o5) { - return n.statements !== o5 ? r9(Va5(o5), n) : n; - } - function Bs7(n, o5) { - let s5 = B9(298); - switch (s5.token = n, s5.types = Y10(o5), s5.transformFlags |= De9(s5.types), n) { - case 96: - s5.transformFlags |= 1024; - break; - case 119: - s5.transformFlags |= 1; - break; - default: - return N6.assertNever(n); - } - return s5; - } - function ef2(n, o5) { - return n.types !== o5 ? r9(Bs7(n.token, o5), n) : n; - } - function tf2(n, o5) { - let s5 = B9(299); - return s5.variableDeclaration = vf(n), s5.block = o5, s5.transformFlags |= V7(s5.variableDeclaration) | V7(s5.block) | (n ? 0 : 64), s5.locals = void 0, s5.nextContainer = void 0, s5; - } - function vo3(n, o5, s5) { - return n.variableDeclaration !== o5 || n.block !== s5 ? r9(tf2(o5, s5), n) : n; - } - function Us7(n, o5) { - let s5 = ae8(303); - return s5.name = Xe9(n), s5.initializer = a().parenthesizeExpressionForDisallowedComma(o5), s5.transformFlags |= In4(s5.name) | V7(s5.initializer), s5.modifiers = void 0, s5.questionToken = void 0, s5.exclamationToken = void 0, s5.jsDoc = void 0, s5; - } - function ph(n, o5, s5) { - return n.name !== o5 || n.initializer !== s5 ? fh(Us7(o5, s5), n) : n; - } - function fh(n, o5) { - return n !== o5 && (n.modifiers = o5.modifiers, n.questionToken = o5.questionToken, n.exclamationToken = o5.exclamationToken), r9(n, o5); - } - function Wc4(n, o5) { - let s5 = ae8(304); - return s5.name = Xe9(n), s5.objectAssignmentInitializer = o5 && a().parenthesizeExpressionForDisallowedComma(o5), s5.transformFlags |= e_(s5.name) | V7(s5.objectAssignmentInitializer) | 1024, s5.equalsToken = void 0, s5.modifiers = void 0, s5.questionToken = void 0, s5.exclamationToken = void 0, s5.jsDoc = void 0, s5; - } - function rf2(n, o5, s5) { - return n.name !== o5 || n.objectAssignmentInitializer !== s5 ? nf2(Wc4(o5, s5), n) : n; - } - function nf2(n, o5) { - return n !== o5 && (n.modifiers = o5.modifiers, n.questionToken = o5.questionToken, n.exclamationToken = o5.exclamationToken, n.equalsToken = o5.equalsToken), r9(n, o5); - } - function da4(n) { - let o5 = ae8(305); - return o5.expression = a().parenthesizeExpressionForDisallowedComma(n), o5.transformFlags |= V7(o5.expression) | 128 | 65536, o5.jsDoc = void 0, o5; - } - function dh(n, o5) { - return n.expression !== o5 ? r9(da4(o5), n) : n; - } - function af2(n, o5) { - let s5 = ae8(306); - return s5.name = Xe9(n), s5.initializer = o5 && a().parenthesizeExpressionForDisallowedComma(o5), s5.transformFlags |= V7(s5.name) | V7(s5.initializer) | 1, s5.jsDoc = void 0, s5; - } - function mh(n, o5, s5) { - return n.name !== o5 || n.initializer !== s5 ? r9(af2(o5, s5), n) : n; - } - function hh(n, o5, s5) { - let u = t12.createBaseSourceFileNode(312); - return u.statements = Y10(n), u.endOfFileToken = o5, u.flags |= s5, u.text = "", u.fileName = "", u.path = "", u.resolvedPath = "", u.originalFileName = "", u.languageVersion = 0, u.languageVariant = 0, u.scriptKind = 0, u.isDeclarationFile = false, u.hasNoDefaultLib = false, u.transformFlags |= De9(u.statements) | V7(u.endOfFileToken), u.locals = void 0, u.nextContainer = void 0, u.endFlowNode = void 0, u.nodeCount = 0, u.identifierCount = 0, u.symbolCount = 0, u.parseDiagnostics = void 0, u.bindDiagnostics = void 0, u.bindSuggestionDiagnostics = void 0, u.lineMap = void 0, u.externalModuleIndicator = void 0, u.setExternalModuleIndicator = void 0, u.pragmas = void 0, u.checkJsDirective = void 0, u.referencedFiles = void 0, u.typeReferenceDirectives = void 0, u.libReferenceDirectives = void 0, u.amdDependencies = void 0, u.commentDirectives = void 0, u.identifiers = void 0, u.packageJsonLocations = void 0, u.packageJsonScope = void 0, u.imports = void 0, u.moduleAugmentations = void 0, u.ambientModuleNames = void 0, u.resolvedModules = void 0, u.classifiableNames = void 0, u.impliedNodeFormat = void 0, u; - } - function Vc4(n) { - let o5 = Object.create(n.redirectTarget); - return Object.defineProperties(o5, { id: { get() { - return this.redirectInfo.redirectTarget.id; - }, set(s5) { - this.redirectInfo.redirectTarget.id = s5; - } }, symbol: { get() { - return this.redirectInfo.redirectTarget.symbol; - }, set(s5) { - this.redirectInfo.redirectTarget.symbol = s5; - } } }), o5.redirectInfo = n, o5; - } - function of2(n) { - let o5 = Vc4(n.redirectInfo); - return o5.flags |= n.flags & -17, o5.fileName = n.fileName, o5.path = n.path, o5.resolvedPath = n.resolvedPath, o5.originalFileName = n.originalFileName, o5.packageJsonLocations = n.packageJsonLocations, o5.packageJsonScope = n.packageJsonScope, o5.emitNode = void 0, o5; - } - function Xn6(n) { - let o5 = t12.createBaseSourceFileNode(312); - o5.flags |= n.flags & -17; - for (let s5 in n) - if (!(Qr6(o5, s5) || !Qr6(n, s5))) { - if (s5 === "emitNode") { - o5.emitNode = void 0; - continue; - } - o5[s5] = n[s5]; - } - return o5; - } - function Hc3(n) { - let o5 = n.redirectInfo ? of2(n) : Xn6(n); - return Xr7(o5, n), o5; - } - function yh2(n, o5, s5, u, g5, I7, W7) { - let de7 = Hc3(n); - return de7.statements = Y10(o5), de7.isDeclarationFile = s5, de7.referencedFiles = u, de7.typeReferenceDirectives = g5, de7.hasNoDefaultLib = I7, de7.libReferenceDirectives = W7, de7.transformFlags = De9(de7.statements) | V7(de7.endOfFileToken), de7; - } - function gh(n, o5, s5 = n.isDeclarationFile, u = n.referencedFiles, g5 = n.typeReferenceDirectives, I7 = n.hasNoDefaultLib, W7 = n.libReferenceDirectives) { - return n.statements !== o5 || n.isDeclarationFile !== s5 || n.referencedFiles !== u || n.typeReferenceDirectives !== g5 || n.hasNoDefaultLib !== I7 || n.libReferenceDirectives !== W7 ? r9(yh2(n, o5, s5, u, g5, I7, W7), n) : n; - } - function sf(n, o5 = $e9) { - let s5 = B9(313); - return s5.prepends = o5, s5.sourceFiles = n, s5.syntheticFileReferences = void 0, s5.syntheticTypeReferences = void 0, s5.syntheticLibReferences = void 0, s5.hasNoDefaultLib = void 0, s5; - } - function _f(n, o5, s5 = $e9) { - return n.sourceFiles !== o5 || n.prepends !== s5 ? r9(sf(o5, s5), n) : n; - } - function Gc4(n, o5, s5) { - let u = B9(314); - return u.prologues = n, u.syntheticReferences = o5, u.texts = s5, u.fileName = "", u.text = "", u.referencedFiles = $e9, u.libReferenceDirectives = $e9, u.getLineAndCharacterOfPosition = (g5) => to3(u, g5), u; - } - function Xc3(n, o5) { - let s5 = B9(n); - return s5.data = o5, s5; - } - function bh(n) { - return Xc3(307, n); - } - function cf(n, o5) { - let s5 = Xc3(308, n); - return s5.texts = o5, s5; - } - function vh(n, o5) { - return Xc3(o5 ? 310 : 309, n); - } - function Th(n) { - let o5 = B9(311); - return o5.data = n.data, o5.section = n, o5; - } - function qs6() { - let n = B9(315); - return n.javascriptText = "", n.declarationText = "", n; - } - function lf(n, o5 = false, s5) { - let u = B9(237); - return u.type = n, u.isSpread = o5, u.tupleNameSource = s5, u; - } - function Sh(n) { - let o5 = B9(358); - return o5._children = n, o5; - } - function xh(n) { - let o5 = B9(359); - return o5.original = n, Ve9(o5, n), o5; - } - function uf2(n, o5) { - let s5 = B9(360); - return s5.expression = n, s5.original = o5, s5.transformFlags |= V7(s5.expression) | 1, Ve9(s5, o5), s5; - } - function pf(n, o5) { - return n.expression !== o5 ? r9(uf2(o5, n.original), n) : n; - } - function wh(n) { - if (Ta2(n) && !Tl3(n) && !n.original && !n.emitNode && !n.id) { - if (F_(n)) - return n.elements; - if (Ct9(n) && Ux(n.operatorToken)) - return [n.left, n.right]; - } - return n; - } - function zs6(n) { - let o5 = B9(361); - return o5.elements = Y10(Sv(n, wh)), o5.transformFlags |= De9(o5.elements), o5; - } - function ff(n, o5) { - return n.elements !== o5 ? r9(zs6(o5), n) : n; - } - function $c4(n, o5) { - let s5 = B9(362); - return s5.expression = n, s5.thisArg = o5, s5.transformFlags |= V7(s5.expression) | V7(s5.thisArg), s5; - } - function Ch(n, o5, s5) { - return n.expression !== o5 || n.thisArg !== s5 ? r9($c4(o5, s5), n) : n; - } - function Eh(n) { - let o5 = or7(n.escapedText); - return o5.flags |= n.flags & -17, o5.transformFlags = n.transformFlags, Xr7(o5, n), setIdentifierAutoGenerate(o5, { ...n.emitNode.autoGenerate }), o5; - } - function df(n) { - let o5 = or7(n.escapedText); - o5.flags |= n.flags & -17, o5.jsDoc = n.jsDoc, o5.flowNode = n.flowNode, o5.symbol = n.symbol, o5.transformFlags = n.transformFlags, Xr7(o5, n); - let s5 = getIdentifierTypeArguments(n); - return s5 && setIdentifierTypeArguments(o5, s5), o5; - } - function mf(n) { - let o5 = Sn6(n.escapedText); - return o5.flags |= n.flags & -17, o5.transformFlags = n.transformFlags, Xr7(o5, n), setIdentifierAutoGenerate(o5, { ...n.emitNode.autoGenerate }), o5; - } - function Ah(n) { - let o5 = Sn6(n.escapedText); - return o5.flags |= n.flags & -17, o5.transformFlags = n.transformFlags, Xr7(o5, n), o5; - } - function Qc2(n) { - if (n === void 0) - return n; - if (ii8(n)) - return Hc3(n); - if (wa2(n)) - return Eh(n); - if (Ee6(n)) - return df(n); - if (Mg2(n)) - return mf(n); - if (jr6(n)) - return Ah(n); - let o5 = ql3(n.kind) ? t12.createBaseNode(n.kind) : t12.createBaseTokenNode(n.kind); - o5.flags |= n.flags & -17, o5.transformFlags = n.transformFlags, Xr7(o5, n); - for (let s5 in n) - Qr6(o5, s5) || !Qr6(n, s5) || (o5[s5] = n[s5]); - return o5; - } - function kh(n, o5, s5) { - return fo3(Z_(void 0, void 0, void 0, void 0, o5 ? [o5] : [], void 0, ua5(n, true)), void 0, s5 ? [s5] : []); - } - function Dh(n, o5, s5) { - return fo3(ec5(void 0, void 0, o5 ? [o5] : [], void 0, void 0, ua5(n, true)), void 0, s5 ? [s5] : []); - } - function ma3() { - return rc3(Ze11("0")); - } - function Ph(n) { - return Ps7(void 0, false, n); - } - function Ih(n) { - return kc4(void 0, false, Ns8([fa4(false, void 0, n)])); - } - function Nh(n, o5) { - return o5 === "null" ? ue7.createStrictEquality(n, fr6()) : o5 === "undefined" ? ue7.createStrictEquality(n, ma3()) : ue7.createStrictEquality(vs7(n), it6(o5)); - } - function Oh(n, o5) { - return o5 === "null" ? ue7.createStrictInequality(n, fr6()) : o5 === "undefined" ? ue7.createStrictInequality(n, ma3()) : ue7.createStrictInequality(vs7(n), it6(o5)); - } - function ha5(n, o5, s5) { - return y0(n) ? zr6(hs5(n, void 0, o5), void 0, void 0, s5) : fo3(Mi6(n, o5), void 0, s5); - } - function Mh(n, o5, s5) { - return ha5(n, "bind", [o5, ...s5]); - } - function Ws6(n, o5, s5) { - return ha5(n, "call", [o5, ...s5]); - } - function Lh(n, o5, s5) { - return ha5(n, "apply", [o5, s5]); - } - function Ha3(n, o5, s5) { - return ha5(Ge9(n), o5, s5); - } - function Jh(n, o5) { - return ha5(n, "slice", o5 === void 0 ? [] : [Cr6(o5)]); - } - function Rh(n, o5) { - return ha5(n, "concat", o5); - } - function hf(n, o5, s5) { - return Ha3("Object", "defineProperty", [n, Cr6(o5), s5]); - } - function jh(n, o5) { - return Ha3("Object", "getOwnPropertyDescriptor", [n, Cr6(o5)]); - } - function Fh(n, o5, s5) { - return Ha3("Reflect", "get", s5 ? [n, o5, s5] : [n, o5]); - } - function Bh(n, o5, s5, u) { - return Ha3("Reflect", "set", u ? [n, o5, s5, u] : [n, o5, s5]); - } - function ya2(n, o5, s5) { - return s5 ? (n.push(Us7(o5, s5)), true) : false; - } - function yf(n, o5) { - let s5 = []; - ya2(s5, "enumerable", Cr6(n.enumerable)), ya2(s5, "configurable", Cr6(n.configurable)); - let u = ya2(s5, "writable", Cr6(n.writable)); - u = ya2(s5, "value", n.value) || u; - let g5 = ya2(s5, "get", n.get); - return g5 = ya2(s5, "set", n.set) || g5, N6.assert(!(u && g5), "A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."), ds5(s5, !o5); - } - function gf(n, o5) { - switch (n.kind) { - case 217: - return Ou5(n, o5); - case 216: - return Nu5(n, n.type, o5); - case 234: - return Wu4(n, o5, n.type); - case 238: - return Dn5(n, o5, n.type); - case 235: - return Vu4(n, o5); - case 360: - return pf(n, o5); - } - } - function c5(n) { - return is7(n) && Ta2(n) && Ta2(getSourceMapRange(n)) && Ta2(getCommentRange(n)) && !mt7(getSyntheticLeadingComments(n)) && !mt7(getSyntheticTrailingComments(n)); - } - function m5(n, o5, s5 = 15) { - return n && Rm2(n, s5) && !c5(n) ? gf(n, m5(n.expression, o5)) : o5; - } - function b5(n, o5, s5) { - if (!o5) - return n; - let u = _p2(o5, o5.label, u8(o5.statement) ? b5(n, o5.statement) : n); - return s5 && s5(o5), u; - } - function w9(n, o5) { - let s5 = Gl4(n); - switch (s5.kind) { - case 80: - return o5; - case 110: - case 9: - case 10: - case 11: - return false; - case 209: - return s5.elements.length !== 0; - case 210: - return s5.properties.length > 0; - default: - return true; - } - } - function A9(n, o5, s5, u = false) { - let g5 = ls6(n, 15), I7, W7; - return yd(g5) ? (I7 = Ut5(), W7 = g5) : Uf(g5) ? (I7 = Ut5(), W7 = s5 !== void 0 && s5 < 2 ? Ve9(Ge9("_super"), g5) : g5) : ti7(g5) & 8192 ? (I7 = ma3(), W7 = a().parenthesizeLeftSideOfAccess(g5, false)) : Br6(g5) ? w9(g5.expression, u) ? (I7 = Gt5(o5), W7 = Mi6(Ve9(ue7.createAssignment(I7, g5.expression), g5.expression), g5.name), Ve9(W7, g5)) : (I7 = g5.expression, W7 = g5) : Ra3(g5) ? w9(g5.expression, u) ? (I7 = Gt5(o5), W7 = Y_(Ve9(ue7.createAssignment(I7, g5.expression), g5.expression), g5.argumentExpression), Ve9(W7, g5)) : (I7 = g5.expression, W7 = g5) : (I7 = ma3(), W7 = a().parenthesizeLeftSideOfAccess(n, false)), { target: W7, thisArg: I7 }; - } - function R10(n, o5) { - return Mi6(K_(ds5([Cn4(void 0, "value", [Bn4(void 0, void 0, n, void 0, void 0, void 0)], ua5([Es6(o5)]))])), "value"); - } - function te9(n) { - return n.length > 10 ? zs6(n) : Jd(n, ue7.createComma); - } - function le10(n, o5, s5, u = 0, g5) { - let I7 = g5 ? n && Yd(n) : Bl3(n); - if (I7 && Ee6(I7) && !wa2(I7)) { - let W7 = Xi4(Ve9(Qc2(I7), I7), I7.parent); - return u |= ti7(I7), s5 || (u |= 96), o5 || (u |= 3072), u && setEmitFlags(W7, u), W7; - } - return Tn3(n); - } - function ne10(n, o5, s5) { - return le10(n, o5, s5, 98304); - } - function ie6(n, o5, s5, u) { - return le10(n, o5, s5, 32768, u); - } - function ve9(n, o5, s5) { - return le10(n, o5, s5, 16384); - } - function He9(n, o5, s5) { - return le10(n, o5, s5); - } - function Be9(n, o5, s5, u) { - let g5 = Mi6(n, Ta2(o5) ? o5 : Qc2(o5)); - Ve9(g5, o5); - let I7 = 0; - return u || (I7 |= 96), s5 || (I7 |= 3072), I7 && setEmitFlags(g5, I7), g5; - } - function Ue8(n, o5, s5, u) { - return n && gr6(o5, 1) ? Be9(n, le10(o5), s5, u) : ve9(o5, s5, u); - } - function Rt8(n, o5, s5, u) { - let g5 = mi6(n, o5, 0, s5); - return hi8(n, o5, g5, u); - } - function Gr6(n) { - return mn6(n.expression) && n.expression.text === "use strict"; - } - function di7() { - return jm(Es6(it6("use strict"))); - } - function mi6(n, o5, s5 = 0, u) { - N6.assert(o5.length === 0, "Prologue directives should be at the first statement in the target statements array"); - let g5 = false, I7 = n.length; - for (; s5 < I7; ) { - let W7 = n[s5]; - if (Ea3(W7)) - Gr6(W7) && (g5 = true), o5.push(W7); - else - break; - s5++; - } - return u && !g5 && o5.push(di7()), s5; - } - function hi8(n, o5, s5, u, g5 = Iv) { - let I7 = n.length; - for (; s5 !== void 0 && s5 < I7; ) { - let W7 = n[s5]; - if (ti7(W7) & 2097152 && g5(W7)) - xt8(o5, u ? visitNode(W7, u, T32) : W7); - else - break; - s5++; - } - return s5; - } - function Ui7(n) { - return P82(n) ? n : Ve9(Y10([di7(), ...n]), n); - } - function ga3(n) { - return N6.assert(so3(n, S32), "Cannot lift nodes to a Block."), Ld(n) || ua5(n); - } - function ba3(n, o5, s5) { - let u = s5; - for (; u < n.length && o5(n[u]); ) - u++; - return u; - } - function Uh(n, o5) { - if (!mt7(o5)) - return n; - let s5 = ba3(n, Ea3, 0), u = ba3(n, w02, s5), g5 = ba3(n, C0, u), I7 = ba3(o5, Ea3, 0), W7 = ba3(o5, w02, I7), de7 = ba3(o5, C0, W7), We8 = ba3(o5, um, de7); - N6.assert(We8 === o5.length, "Expected declarations to be valid standard or custom prologues"); - let Er6 = va2(n) ? n.slice() : n; - if (We8 > de7 && Er6.splice(g5, 0, ...o5.slice(de7, We8)), de7 > W7 && Er6.splice(u, 0, ...o5.slice(W7, de7)), W7 > I7 && Er6.splice(s5, 0, ...o5.slice(I7, W7)), I7 > 0) - if (s5 === 0) - Er6.splice(0, 0, ...o5.slice(0, I7)); - else { - let $n5 = /* @__PURE__ */ new Map(); - for (let yi7 = 0; yi7 < s5; yi7++) { - let Vs5 = n[yi7]; - $n5.set(Vs5.expression.text, true); - } - for (let yi7 = I7 - 1; yi7 >= 0; yi7--) { - let Vs5 = o5[yi7]; - $n5.has(Vs5.expression.text) || Er6.unshift(Vs5); - } - } - return va2(n) ? Ve9(Y10(Er6, n.hasTrailingComma), n) : n; - } - function bf(n, o5) { - let s5; - return typeof o5 == "number" ? s5 = Or5(o5) : s5 = o5, No3(n) ? tn7(n, s5, n.name, n.constraint, n.default) : Ma3(n) ? Un5(n, s5, n.dotDotDotToken, n.name, n.questionToken, n.type, n.initializer) : u6(n) ? he9(n, s5, n.typeParameters, n.parameters, n.type) : Zl3(n) ? qn5(n, s5, n.name, n.questionToken, n.type) : oo3(n) ? oe8(n, s5, n.name, n.questionToken ?? n.exclamationToken, n.type, n.initializer) : Vx(n) ? Se9(n, s5, n.name, n.questionToken, n.typeParameters, n.parameters, n.type) : d_(n) ? z9(n, s5, n.asteriskToken, n.name, n.questionToken, n.typeParameters, n.parameters, n.type, n.body) : J_(n) ? lt5(n, s5, n.parameters, n.body) : m_(n) ? qr7(n, s5, n.name, n.parameters, n.type, n.body) : Qo3(n) ? zn4(n, s5, n.name, n.parameters, n.body) : l6(n) ? Vn5(n, s5, n.parameters, n.type) : Am(n) ? Mu4(n, s5, n.asteriskToken, n.name, n.typeParameters, n.parameters, n.type, n.body) : km(n) ? tc4(n, s5, n.typeParameters, n.parameters, n.type, n.equalsGreaterThanToken, n.body) : Il3(n) ? sc3(n, s5, n.name, n.typeParameters, n.heritageClauses, n.members) : as6(n) ? pc2(n, s5, n.declarationList) : os9(n) ? fp2(n, s5, n.asteriskToken, n.name, n.typeParameters, n.parameters, n.type, n.body) : Yo3(n) ? Tc4(n, s5, n.name, n.typeParameters, n.heritageClauses, n.members) : su5(n) ? gt7(n, s5, n.name, n.typeParameters, n.heritageClauses, n.members) : T6(n) ? Sc3(n, s5, n.name, n.typeParameters, n.type) : S6(n) ? mp2(n, s5, n.name, n.members) : Yi5(n) ? ji5(n, s5, n.name, n.body) : w6(n) ? gp2(n, s5, n.isTypeOnly, n.name, n.moduleReference) : C6(n) ? vp2(n, s5, n.importClause, n.moduleSpecifier, n.assertClause) : ss7(n) ? Fi7(n, s5, n.expression) : B_(n) ? Dc3(n, s5, n.isTypeOnly, n.exportClause, n.moduleSpecifier, n.assertClause) : N6.assertNever(n); - } - function qh(n, o5) { - return Ma3(n) ? Un5(n, o5, n.dotDotDotToken, n.name, n.questionToken, n.type, n.initializer) : oo3(n) ? oe8(n, o5, n.name, n.questionToken ?? n.exclamationToken, n.type, n.initializer) : d_(n) ? z9(n, o5, n.asteriskToken, n.name, n.questionToken, n.typeParameters, n.parameters, n.type, n.body) : m_(n) ? qr7(n, o5, n.name, n.parameters, n.type, n.body) : Qo3(n) ? zn4(n, o5, n.name, n.parameters, n.body) : Il3(n) ? sc3(n, o5, n.name, n.typeParameters, n.heritageClauses, n.members) : Yo3(n) ? Tc4(n, o5, n.name, n.typeParameters, n.heritageClauses, n.members) : N6.assertNever(n); - } - function Oe11(n) { - return n ? Y10(n) : void 0; - } - function Xe9(n) { - return typeof n == "string" ? Ge9(n) : n; - } - function Cr6(n) { - return typeof n == "string" ? it6(n) : typeof n == "number" ? Ze11(n) : typeof n == "boolean" ? n ? ht4() : wn5() : n; - } - function To2(n) { - return n && a().parenthesizeExpressionForDisallowedComma(n); - } - function lr7(n) { - return typeof n == "number" ? vt9(n) : n; - } - function on6(n) { - return n && A6(n) ? Ve9(Xr7(fc3(), n), n) : n; - } - function vf(n) { - return typeof n == "string" || n && !ki7(n) ? As8(n, void 0, void 0, void 0) : n; - } - } - function kL(e10, t12) { - return e10 !== t12 && Ve9(e10, t12), e10; - } - function DL(e10, t12) { - return e10 !== t12 && (Xr7(e10, t12), Ve9(e10, t12)), e10; - } - function Af(e10) { - switch (e10) { - case 351: - return "type"; - case 349: - return "returns"; - case 350: - return "this"; - case 347: - return "enum"; - case 337: - return "author"; - case 339: - return "class"; - case 340: - return "public"; - case 341: - return "private"; - case 342: - return "protected"; - case 343: - return "readonly"; - case 344: - return "override"; - case 352: - return "template"; - case 353: - return "typedef"; - case 348: - return "param"; - case 355: - return "prop"; - case 345: - return "callback"; - case 346: - return "overload"; - case 335: - return "augments"; - case 336: - return "implements"; - default: - return N6.fail(`Unsupported kind: ${N6.formatSyntaxKind(e10)}`); - } - } - function PL(e10, t12) { - switch (_n5 || (_n5 = ns6(99, false, 0)), e10) { - case 15: - _n5.setText("`" + t12 + "`"); - break; - case 16: - _n5.setText("`" + t12 + "${"); - break; - case 17: - _n5.setText("}" + t12 + "${"); - break; - case 18: - _n5.setText("}" + t12 + "`"); - break; - } - let r9 = _n5.scan(); - if (r9 === 20 && (r9 = _n5.reScanTemplateToken(false)), _n5.isUnterminated()) - return _n5.setText(void 0), $0; - let a; - switch (r9) { - case 15: - case 16: - case 17: - case 18: - a = _n5.getTokenValue(); - break; - } - return a === void 0 || _n5.scan() !== 1 ? (_n5.setText(void 0), $0) : (_n5.setText(void 0), a); - } - function In4(e10) { - return e10 && Ee6(e10) ? e_(e10) : V7(e10); - } - function e_(e10) { - return V7(e10) & -67108865; - } - function IL(e10, t12) { - return t12 | e10.transformFlags & 134234112; - } - function V7(e10) { - if (!e10) - return 0; - let t12 = e10.transformFlags & ~Rx(e10.kind); - return Qd(e10) && zl3(e10.name) ? IL(e10.name, t12) : t12; - } - function De9(e10) { - return e10 ? e10.transformFlags : 0; - } - function Hb(e10) { - let t12 = 0; - for (let r9 of e10) - t12 |= V7(r9); - e10.transformFlags = t12; - } - function Rx(e10) { - if (e10 >= 182 && e10 <= 205) - return -2; - switch (e10) { - case 213: - case 214: - case 209: - return -2147450880; - case 267: - return -1941676032; - case 169: - return -2147483648; - case 219: - return -2072174592; - case 218: - case 262: - return -1937940480; - case 261: - return -2146893824; - case 263: - case 231: - return -2147344384; - case 176: - return -1937948672; - case 172: - return -2013249536; - case 174: - case 177: - case 178: - return -2005057536; - case 133: - case 150: - case 163: - case 146: - case 154: - case 151: - case 136: - case 155: - case 116: - case 168: - case 171: - case 173: - case 179: - case 180: - case 181: - case 264: - case 265: - return -2; - case 210: - return -2147278848; - case 299: - return -2147418112; - case 206: - case 207: - return -2147450880; - case 216: - case 238: - case 234: - case 360: - case 217: - case 108: - return -2147483648; - case 211: - case 212: - return -2147483648; - default: - return -2147483648; - } - } - function Yc4(e10) { - return e10.flags |= 16, e10; - } - function NL(e10, t12, r9) { - let a, _10, p5, d5, h5, l, v10, y5, C10, S10; - b_(e10) ? (p5 = "", d5 = e10, h5 = e10.length, l = t12, v10 = r9) : (N6.assert(t12 === "js" || t12 === "dts"), p5 = (t12 === "js" ? e10.javascriptPath : e10.declarationPath) || "", l = t12 === "js" ? e10.javascriptMapPath : e10.declarationMapPath, y5 = () => t12 === "js" ? e10.javascriptText : e10.declarationText, C10 = () => t12 === "js" ? e10.javascriptMapText : e10.declarationMapText, h5 = () => y5().length, e10.buildInfo && e10.buildInfo.bundle && (N6.assert(r9 === void 0 || typeof r9 == "boolean"), a = r9, _10 = t12 === "js" ? e10.buildInfo.bundle.js : e10.buildInfo.bundle.dts, S10 = e10.oldFileOfCurrentEmit)); - let k7 = S10 ? ML(N6.checkDefined(_10)) : OL(_10, a, h5); - return k7.fileName = p5, k7.sourceMapPath = l, k7.oldFileOfCurrentEmit = S10, y5 && C10 ? (Object.defineProperty(k7, "text", { get: y5 }), Object.defineProperty(k7, "sourceMapText", { get: C10 })) : (N6.assert(!S10), k7.text = d5 ?? "", k7.sourceMapText = v10), k7; - } - function OL(e10, t12, r9) { - let a, _10, p5, d5, h5, l, v10, y5; - for (let S10 of e10 ? e10.sections : $e9) - switch (S10.kind) { - case "prologue": - a = xt8(a, Ve9(Ln7.createUnparsedPrologue(S10.data), S10)); - break; - case "emitHelpers": - _10 = xt8(_10, getAllUnscopedEmitHelpers().get(S10.data)); - break; - case "no-default-lib": - y5 = true; - break; - case "reference": - p5 = xt8(p5, { pos: -1, end: -1, fileName: S10.data }); - break; - case "type": - d5 = xt8(d5, { pos: -1, end: -1, fileName: S10.data }); - break; - case "type-import": - d5 = xt8(d5, { pos: -1, end: -1, fileName: S10.data, resolutionMode: 99 }); - break; - case "type-require": - d5 = xt8(d5, { pos: -1, end: -1, fileName: S10.data, resolutionMode: 1 }); - break; - case "lib": - h5 = xt8(h5, { pos: -1, end: -1, fileName: S10.data }); - break; - case "prepend": - let k7; - for (let L7 of S10.texts) - (!t12 || L7.kind !== "internal") && (k7 = xt8(k7, Ve9(Ln7.createUnparsedTextLike(L7.data, L7.kind === "internal"), L7))); - l = Rr7(l, k7), v10 = xt8(v10, Ln7.createUnparsedPrepend(S10.data, k7 ?? $e9)); - break; - case "internal": - if (t12) { - v10 || (v10 = []); - break; - } - case "text": - v10 = xt8(v10, Ve9(Ln7.createUnparsedTextLike(S10.data, S10.kind === "internal"), S10)); - break; - default: - N6.assertNever(S10); - } - if (!v10) { - let S10 = Ln7.createUnparsedTextLike(void 0, false); - Cd(S10, 0, typeof r9 == "function" ? r9() : r9), v10 = [S10]; - } - let C10 = z_.createUnparsedSource(a ?? $e9, void 0, v10); - return a_(a, C10), a_(v10, C10), a_(l, C10), C10.hasNoDefaultLib = y5, C10.helpers = _10, C10.referencedFiles = p5 || $e9, C10.typeReferenceDirectives = d5, C10.libReferenceDirectives = h5 || $e9, C10; - } - function ML(e10) { - let t12, r9; - for (let _10 of e10.sections) - switch (_10.kind) { - case "internal": - case "text": - t12 = xt8(t12, Ve9(Ln7.createUnparsedTextLike(_10.data, _10.kind === "internal"), _10)); - break; - case "no-default-lib": - case "reference": - case "type": - case "type-import": - case "type-require": - case "lib": - r9 = xt8(r9, Ve9(Ln7.createUnparsedSyntheticReference(_10), _10)); - break; - case "prologue": - case "emitHelpers": - case "prepend": - break; - default: - N6.assertNever(_10); - } - let a = Ln7.createUnparsedSource($e9, r9, t12 ?? $e9); - return a_(r9, a), a_(t12, a), a.helpers = Aa4(e10.sources && e10.sources.helpers, (_10) => getAllUnscopedEmitHelpers().get(_10)), a; - } - function LL(e10, t12, r9, a, _10, p5) { - return b_(e10) ? Fx(void 0, e10, r9, a, void 0, t12, _10, p5) : jx(e10, t12, r9, a, _10, p5); - } - function jx(e10, t12, r9, a, _10, p5, d5, h5) { - let l = z_.createInputFiles(); - l.javascriptPath = t12, l.javascriptMapPath = r9, l.declarationPath = a, l.declarationMapPath = _10, l.buildInfoPath = p5; - let v10 = /* @__PURE__ */ new Map(), y5 = (L7) => { - if (L7 === void 0) - return; - let G10 = v10.get(L7); - return G10 === void 0 && (G10 = e10(L7), v10.set(L7, G10 !== void 0 ? G10 : false)), G10 !== false ? G10 : void 0; - }, C10 = (L7) => { - let G10 = y5(L7); - return G10 !== void 0 ? G10 : `/* Input file ${L7} was missing */\r -`; - }, S10; - return Object.defineProperties(l, { javascriptText: { get: () => C10(t12) }, javascriptMapText: { get: () => y5(r9) }, declarationText: { get: () => C10(N6.checkDefined(a)) }, declarationMapText: { get: () => y5(_10) }, buildInfo: { get: () => { - if (S10 === void 0 && p5) - if (d5 != null && d5.getBuildInfo) - S10 = d5.getBuildInfo(p5, h5.configFilePath) ?? false; - else { - let L7 = y5(p5); - S10 = L7 !== void 0 ? getBuildInfo(p5, L7) ?? false : false; - } - return S10 || void 0; - } } }), l; - } - function Fx(e10, t12, r9, a, _10, p5, d5, h5, l, v10, y5) { - let C10 = z_.createInputFiles(); - return C10.javascriptPath = e10, C10.javascriptText = t12, C10.javascriptMapPath = r9, C10.javascriptMapText = a, C10.declarationPath = _10, C10.declarationText = p5, C10.declarationMapPath = d5, C10.declarationMapText = h5, C10.buildInfoPath = l, C10.buildInfo = v10, C10.oldFileOfCurrentEmit = y5, C10; - } - function JL(e10, t12, r9) { - return new (Xb || (Xb = wt7.getSourceMapSourceConstructor()))(e10, t12, r9); - } - function Xr7(e10, t12) { - if (e10.original !== t12 && (e10.original = t12, t12)) { - let r9 = t12.emitNode; - r9 && (e10.emitNode = RL(r9, e10.emitNode)); - } - return e10; - } - function RL(e10, t12) { - let { flags: r9, internalFlags: a, leadingComments: _10, trailingComments: p5, commentRange: d5, sourceMapRange: h5, tokenSourceMapRanges: l, constantValue: v10, helpers: y5, startsOnNewLine: C10, snippetElement: S10, classThis: k7, assignedName: L7 } = e10; - if (t12 || (t12 = {}), r9 && (t12.flags = r9), a && (t12.internalFlags = a & -9), _10 && (t12.leadingComments = Rr7(_10.slice(), t12.leadingComments)), p5 && (t12.trailingComments = Rr7(p5.slice(), t12.trailingComments)), d5 && (t12.commentRange = d5), h5 && (t12.sourceMapRange = h5), l && (t12.tokenSourceMapRanges = jL(l, t12.tokenSourceMapRanges)), v10 !== void 0 && (t12.constantValue = v10), y5) - for (let G10 of y5) - t12.helpers = Cv(t12.helpers, G10); - return C10 !== void 0 && (t12.startsOnNewLine = C10), S10 !== void 0 && (t12.snippetElement = S10), k7 && (t12.classThis = k7), L7 && (t12.assignedName = L7), t12; - } - function jL(e10, t12) { - t12 || (t12 = []); - for (let r9 in e10) - t12[r9] = e10[r9]; - return t12; - } - var il3, X02, a6, _n5, $0, Xs6, Gb, Ln7, Xb, FL = Vt4({ "src/compiler/factory/nodeFactory.ts"() { - "use strict"; - Dr5(), il3 = 0, X02 = ((e10) => (e10[e10.None = 0] = "None", e10[e10.NoParenthesizerRules = 1] = "NoParenthesizerRules", e10[e10.NoNodeConverters = 2] = "NoNodeConverters", e10[e10.NoIndentationOnFreshPropertyAccess = 4] = "NoIndentationOnFreshPropertyAccess", e10[e10.NoOriginalNode = 8] = "NoOriginalNode", e10))(X02 || {}), a6 = [], $0 = {}, Xs6 = Lx(), Gb = { createBaseSourceFileNode: (e10) => Yc4(Xs6.createBaseSourceFileNode(e10)), createBaseIdentifierNode: (e10) => Yc4(Xs6.createBaseIdentifierNode(e10)), createBasePrivateIdentifierNode: (e10) => Yc4(Xs6.createBasePrivateIdentifierNode(e10)), createBaseTokenNode: (e10) => Yc4(Xs6.createBaseTokenNode(e10)), createBaseNode: (e10) => Yc4(Xs6.createBaseNode(e10)) }, Ln7 = Ad(4, Gb); - } }), BL = () => { - }, UL = () => { - }; - function lo3(e10) { - return e10.kind === 9; - } - function o6(e10) { - return e10.kind === 10; - } - function mn6(e10) { - return e10.kind === 11; - } - function kd(e10) { - return e10.kind === 12; - } - function qL(e10) { - return e10.kind === 14; - } - function Bx(e10) { - return e10.kind === 15; - } - function zL(e10) { - return e10.kind === 16; - } - function WL(e10) { - return e10.kind === 17; - } - function VL(e10) { - return e10.kind === 18; - } - function HL(e10) { - return e10.kind === 26; - } - function Ux(e10) { - return e10.kind === 28; - } - function s6(e10) { - return e10.kind === 40; - } - function _6(e10) { - return e10.kind === 41; - } - function GL(e10) { - return e10.kind === 42; - } - function Dd(e10) { - return e10.kind === 54; - } - function Pl3(e10) { - return e10.kind === 58; - } - function XL(e10) { - return e10.kind === 59; - } - function $L(e10) { - return e10.kind === 29; - } - function QL(e10) { - return e10.kind === 39; - } - function Ee6(e10) { - return e10.kind === 80; - } - function jr6(e10) { - return e10.kind === 81; - } - function qx(e10) { - return e10.kind === 95; - } - function YL(e10) { - return e10.kind === 90; - } - function al3(e10) { - return e10.kind === 134; - } - function KL(e10) { - return e10.kind === 131; - } - function ZL(e10) { - return e10.kind === 135; - } - function zx(e10) { - return e10.kind === 148; - } - function eJ(e10) { - return e10.kind === 126; - } - function tJ(e10) { - return e10.kind === 128; - } - function rJ(e10) { - return e10.kind === 164; - } - function nJ(e10) { - return e10.kind === 129; - } - function Uf(e10) { - return e10.kind === 108; - } - function Wx(e10) { - return e10.kind === 102; - } - function iJ(e10) { - return e10.kind === 84; - } - function M_(e10) { - return e10.kind === 166; - } - function ao4(e10) { - return e10.kind === 167; - } - function No3(e10) { - return e10.kind === 168; - } - function Ma3(e10) { - return e10.kind === 169; - } - function L_(e10) { - return e10.kind === 170; - } - function Zl3(e10) { - return e10.kind === 171; - } - function oo3(e10) { - return e10.kind === 172; - } - function Vx(e10) { - return e10.kind === 173; - } - function d_(e10) { - return e10.kind === 174; - } - function eu5(e10) { - return e10.kind === 175; - } - function J_(e10) { - return e10.kind === 176; - } - function m_(e10) { - return e10.kind === 177; - } - function Qo3(e10) { - return e10.kind === 178; - } - function c6(e10) { - return e10.kind === 179; - } - function Hx(e10) { - return e10.kind === 180; - } - function l6(e10) { - return e10.kind === 181; - } - function Gx(e10) { - return e10.kind === 182; - } - function R_(e10) { - return e10.kind === 183; - } - function tu4(e10) { - return e10.kind === 184; - } - function u6(e10) { - return e10.kind === 185; - } - function Xx(e10) { - return e10.kind === 186; - } - function Em(e10) { - return e10.kind === 187; - } - function $x(e10) { - return e10.kind === 188; - } - function Qx(e10) { - return e10.kind === 189; - } - function p6(e10) { - return e10.kind === 202; - } - function Yx(e10) { - return e10.kind === 190; - } - function Kx(e10) { - return e10.kind === 191; - } - function Zx(e10) { - return e10.kind === 192; - } - function e8(e10) { - return e10.kind === 193; - } - function t82(e10) { - return e10.kind === 194; - } - function r8(e10) { - return e10.kind === 195; - } - function f6(e10) { - return e10.kind === 196; - } - function d6(e10) { - return e10.kind === 197; - } - function n8(e10) { - return e10.kind === 198; - } - function i8(e10) { - return e10.kind === 199; - } - function a8(e10) { - return e10.kind === 200; - } - function m6(e10) { - return e10.kind === 201; - } - function ru5(e10) { - return e10.kind === 205; - } - function aJ(e10) { - return e10.kind === 204; - } - function oJ(e10) { - return e10.kind === 203; - } - function sJ(e10) { - return e10.kind === 206; - } - function _J(e10) { - return e10.kind === 207; - } - function nu4(e10) { - return e10.kind === 208; - } - function iu4(e10) { - return e10.kind === 209; - } - function uo4(e10) { - return e10.kind === 210; - } - function Br6(e10) { - return e10.kind === 211; - } - function Ra3(e10) { - return e10.kind === 212; - } - function j_(e10) { - return e10.kind === 213; - } - function o8(e10) { - return e10.kind === 214; - } - function s8(e10) { - return e10.kind === 215; - } - function cJ(e10) { - return e10.kind === 216; - } - function is7(e10) { - return e10.kind === 217; - } - function Am(e10) { - return e10.kind === 218; - } - function km(e10) { - return e10.kind === 219; - } - function lJ(e10) { - return e10.kind === 220; - } - function uJ(e10) { - return e10.kind === 221; - } - function h6(e10) { - return e10.kind === 222; - } - function pJ(e10) { - return e10.kind === 223; - } - function Dm2(e10) { - return e10.kind === 224; - } - function _8(e10) { - return e10.kind === 225; - } - function Ct9(e10) { - return e10.kind === 226; - } - function fJ(e10) { - return e10.kind === 227; - } - function dJ(e10) { - return e10.kind === 228; - } - function mJ(e10) { - return e10.kind === 229; - } - function y6(e10) { - return e10.kind === 230; - } - function Il3(e10) { - return e10.kind === 231; - } - function Pm(e10) { - return e10.kind === 232; - } - function g6(e10) { - return e10.kind === 233; - } - function hJ(e10) { - return e10.kind === 234; - } - function yJ(e10) { - return e10.kind === 238; - } - function jo2(e10) { - return e10.kind === 235; - } - function b6(e10) { - return e10.kind === 236; - } - function gJ(e10) { - return e10.kind === 237; - } - function c8(e10) { - return e10.kind === 360; - } - function F_(e10) { - return e10.kind === 361; - } - function bJ(e10) { - return e10.kind === 239; - } - function vJ(e10) { - return e10.kind === 240; - } - function au4(e10) { - return e10.kind === 241; - } - function as6(e10) { - return e10.kind === 243; - } - function TJ(e10) { - return e10.kind === 242; - } - function ou5(e10) { - return e10.kind === 244; - } - function SJ(e10) { - return e10.kind === 245; - } - function xJ(e10) { - return e10.kind === 246; - } - function wJ(e10) { - return e10.kind === 247; - } - function l8(e10) { - return e10.kind === 248; - } - function CJ(e10) { - return e10.kind === 249; - } - function EJ(e10) { - return e10.kind === 250; - } - function AJ(e10) { - return e10.kind === 251; - } - function kJ(e10) { - return e10.kind === 252; - } - function DJ(e10) { - return e10.kind === 253; - } - function PJ(e10) { - return e10.kind === 254; - } - function IJ(e10) { - return e10.kind === 255; - } - function u8(e10) { - return e10.kind === 256; - } - function NJ(e10) { - return e10.kind === 257; - } - function OJ(e10) { - return e10.kind === 258; - } - function MJ(e10) { - return e10.kind === 259; - } - function ki7(e10) { - return e10.kind === 260; - } - function v62(e10) { - return e10.kind === 261; - } - function os9(e10) { - return e10.kind === 262; - } - function Yo3(e10) { - return e10.kind === 263; - } - function su5(e10) { - return e10.kind === 264; - } - function T6(e10) { - return e10.kind === 265; - } - function S6(e10) { - return e10.kind === 266; - } - function Yi5(e10) { - return e10.kind === 267; - } - function p8(e10) { - return e10.kind === 268; - } - function LJ(e10) { - return e10.kind === 269; - } - function x62(e10) { - return e10.kind === 270; - } - function w6(e10) { - return e10.kind === 271; - } - function C6(e10) { - return e10.kind === 272; - } - function JJ(e10) { - return e10.kind === 273; - } - function RJ(e10) { - return e10.kind === 302; - } - function jJ(e10) { - return e10.kind === 300; - } - function FJ(e10) { - return e10.kind === 301; - } - function E6(e10) { - return e10.kind === 274; - } - function Im(e10) { - return e10.kind === 280; - } - function BJ(e10) { - return e10.kind === 275; - } - function f8(e10) { - return e10.kind === 276; - } - function ss7(e10) { - return e10.kind === 277; - } - function B_(e10) { - return e10.kind === 278; - } - function d8(e10) { - return e10.kind === 279; - } - function m8(e10) { - return e10.kind === 281; - } - function UJ(e10) { - return e10.kind === 282; - } - function A6(e10) { - return e10.kind === 359; - } - function qJ(e10) { - return e10.kind === 362; - } - function Nm(e10) { - return e10.kind === 283; - } - function Q0(e10) { - return e10.kind === 284; - } - function zJ(e10) { - return e10.kind === 285; - } - function Oo2(e10) { - return e10.kind === 286; - } - function qf(e10) { - return e10.kind === 287; - } - function dl2(e10) { - return e10.kind === 288; - } - function k6(e10) { - return e10.kind === 289; - } - function WJ(e10) { - return e10.kind === 290; - } - function VJ(e10) { - return e10.kind === 291; - } - function D6(e10) { - return e10.kind === 292; - } - function HJ(e10) { - return e10.kind === 293; - } - function GJ(e10) { - return e10.kind === 294; - } - function U_(e10) { - return e10.kind === 295; - } - function XJ(e10) { - return e10.kind === 296; - } - function h8(e10) { - return e10.kind === 297; - } - function Nl3(e10) { - return e10.kind === 298; - } - function $J(e10) { - return e10.kind === 299; - } - function _s7(e10) { - return e10.kind === 303; - } - function _u3(e10) { - return e10.kind === 304; - } - function y8(e10) { - return e10.kind === 305; - } - function g8(e10) { - return e10.kind === 306; - } - function QJ(e10) { - return e10.kind === 308; - } - function ii8(e10) { - return e10.kind === 312; - } - function YJ(e10) { - return e10.kind === 313; - } - function KJ(e10) { - return e10.kind === 314; - } - function b8(e10) { - return e10.kind === 316; - } - function zf(e10) { - return e10.kind === 317; - } - function r_(e10) { - return e10.kind === 318; - } - function ZJ(e10) { - return e10.kind === 331; - } - function eR(e10) { - return e10.kind === 332; - } - function tR(e10) { - return e10.kind === 333; - } - function rR(e10) { - return e10.kind === 319; - } - function nR(e10) { - return e10.kind === 320; - } - function v82(e10) { - return e10.kind === 321; - } - function iR(e10) { - return e10.kind === 322; - } - function aR(e10) { - return e10.kind === 323; - } - function Om(e10) { - return e10.kind === 324; - } - function oR(e10) { - return e10.kind === 325; - } - function sR(e10) { - return e10.kind === 326; - } - function cs4(e10) { - return e10.kind === 327; - } - function P62(e10) { - return e10.kind === 329; - } - function cu4(e10) { - return e10.kind === 330; - } - function Mm(e10) { - return e10.kind === 335; - } - function _R(e10) { - return e10.kind === 337; - } - function T8(e10) { - return e10.kind === 339; - } - function cR(e10) { - return e10.kind === 345; - } - function I6(e10) { - return e10.kind === 340; - } - function N62(e10) { - return e10.kind === 341; - } - function O62(e10) { - return e10.kind === 342; - } - function M62(e10) { - return e10.kind === 343; - } - function S8(e10) { - return e10.kind === 344; - } - function L62(e10) { - return e10.kind === 346; - } - function J62(e10) { - return e10.kind === 338; - } - function lR(e10) { - return e10.kind === 354; - } - function x8(e10) { - return e10.kind === 347; - } - function h_(e10) { - return e10.kind === 348; - } - function R62(e10) { - return e10.kind === 349; - } - function w8(e10) { - return e10.kind === 350; - } - function lu3(e10) { - return e10.kind === 351; - } - function Ko3(e10) { - return e10.kind === 352; - } - function uR(e10) { - return e10.kind === 353; - } - function pR(e10) { - return e10.kind === 334; - } - function fR(e10) { - return e10.kind === 355; - } - function C8(e10) { - return e10.kind === 336; - } - function j62(e10) { - return e10.kind === 357; - } - function dR(e10) { - return e10.kind === 356; - } - function mR(e10) { - return e10.kind === 358; - } - var hR = Vt4({ "src/compiler/factory/nodeTests.ts"() { - "use strict"; - Dr5(); - } }); - function yR(e10) { - return e10.createExportDeclaration(void 0, false, e10.createNamedExports([]), void 0); - } - function Lm(e10, t12, r9, a) { - if (ao4(r9)) - return Ve9(e10.createElementAccessExpression(t12, r9.expression), a); - { - let _10 = Ve9(ro3(r9) ? e10.createPropertyAccessExpression(t12, r9) : e10.createElementAccessExpression(t12, r9), r9); - return addEmitFlags(_10, 128), _10; - } - } - function F6(e10, t12) { - let r9 = z_.createIdentifier(e10 || "React"); - return Xi4(r9, Fl3(t12)), r9; - } - function B62(e10, t12, r9) { - if (M_(t12)) { - let a = B62(e10, t12.left, r9), _10 = e10.createIdentifier(Ot10(t12.right)); - return _10.escapedText = t12.right.escapedText, e10.createPropertyAccessExpression(a, _10); - } else - return F6(Ot10(t12), r9); - } - function E8(e10, t12, r9, a) { - return t12 ? B62(e10, t12, a) : e10.createPropertyAccessExpression(F6(r9, a), "createElement"); - } - function gR(e10, t12, r9, a) { - return t12 ? B62(e10, t12, a) : e10.createPropertyAccessExpression(F6(r9, a), "Fragment"); - } - function bR(e10, t12, r9, a, _10, p5) { - let d5 = [r9]; - if (a && d5.push(a), _10 && _10.length > 0) - if (a || d5.push(e10.createNull()), _10.length > 1) - for (let h5 of _10) - jm(h5), d5.push(h5); - else - d5.push(_10[0]); - return Ve9(e10.createCallExpression(t12, void 0, d5), p5); - } - function vR(e10, t12, r9, a, _10, p5, d5) { - let l = [gR(e10, r9, a, p5), e10.createNull()]; - if (_10 && _10.length > 0) - if (_10.length > 1) - for (let v10 of _10) - jm(v10), l.push(v10); - else - l.push(_10[0]); - return Ve9(e10.createCallExpression(E8(e10, t12, a, p5), void 0, l), d5); - } - function TR(e10, t12, r9) { - if (v62(t12)) { - let a = og(t12.declarations), _10 = e10.updateVariableDeclaration(a, a.name, void 0, void 0, r9); - return Ve9(e10.createVariableStatement(void 0, e10.updateVariableDeclarationList(t12, [_10])), t12); - } else { - let a = Ve9(e10.createAssignment(t12, r9), t12); - return Ve9(e10.createExpressionStatement(a), t12); - } - } - function SR(e10, t12, r9) { - return au4(t12) ? e10.updateBlock(t12, Ve9(e10.createNodeArray([r9, ...t12.statements]), t12.statements)) : e10.createBlock(e10.createNodeArray([t12, r9]), true); - } - function A8(e10, t12) { - if (M_(t12)) { - let r9 = A8(e10, t12.left), a = Xi4(Ve9(e10.cloneNode(t12.right), t12.right), t12.right.parent); - return Ve9(e10.createPropertyAccessExpression(r9, a), t12); - } else - return Xi4(Ve9(e10.cloneNode(t12), t12), t12.parent); - } - function k8(e10, t12) { - return Ee6(t12) ? e10.createStringLiteralFromNode(t12) : ao4(t12) ? Xi4(Ve9(e10.cloneNode(t12.expression), t12.expression), t12.expression.parent) : Xi4(Ve9(e10.cloneNode(t12), t12), t12.parent); - } - function xR(e10, t12, r9, a, _10) { - let { firstAccessor: p5, getAccessor: d5, setAccessor: h5 } = P23(t12, r9); - if (r9 === p5) - return Ve9(e10.createObjectDefinePropertyCall(a, k8(e10, r9.name), e10.createPropertyDescriptor({ enumerable: e10.createFalse(), configurable: true, get: d5 && Ve9(Xr7(e10.createFunctionExpression(hd(d5), void 0, void 0, void 0, d5.parameters, void 0, d5.body), d5), d5), set: h5 && Ve9(Xr7(e10.createFunctionExpression(hd(h5), void 0, void 0, void 0, h5.parameters, void 0, h5.body), h5), h5) }, !_10)), p5); - } - function wR(e10, t12, r9) { - return Xr7(Ve9(e10.createAssignment(Lm(e10, r9, t12.name, t12.name), t12.initializer), t12), t12); - } - function CR(e10, t12, r9) { - return Xr7(Ve9(e10.createAssignment(Lm(e10, r9, t12.name, t12.name), e10.cloneNode(t12.name)), t12), t12); - } - function ER(e10, t12, r9) { - return Xr7(Ve9(e10.createAssignment(Lm(e10, r9, t12.name, t12.name), Xr7(Ve9(e10.createFunctionExpression(hd(t12), t12.asteriskToken, void 0, void 0, t12.parameters, void 0, t12.body), t12), t12)), t12), t12); - } - function AR(e10, t12, r9, a) { - switch (r9.name && jr6(r9.name) && N6.failBadSyntaxKind(r9.name, "Private identifiers are not allowed in object literals."), r9.kind) { - case 177: - case 178: - return xR(e10, t12.properties, r9, a, !!t12.multiLine); - case 303: - return wR(e10, r9, a); - case 304: - return CR(e10, r9, a); - case 174: - return ER(e10, r9, a); - } - } - function kR(e10, t12, r9, a, _10) { - let p5 = t12.operator; - N6.assert(p5 === 46 || p5 === 47, "Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression"); - let d5 = e10.createTempVariable(a); - r9 = e10.createAssignment(d5, r9), Ve9(r9, t12.operand); - let h5 = Dm2(t12) ? e10.createPrefixUnaryExpression(p5, d5) : e10.createPostfixUnaryExpression(d5, p5); - return Ve9(h5, t12), _10 && (h5 = e10.createAssignment(_10, h5), Ve9(h5, t12)), r9 = e10.createComma(r9, h5), Ve9(r9, t12), _8(t12) && (r9 = e10.createComma(r9, d5), Ve9(r9, t12)), r9; - } - function DR(e10) { - return (ti7(e10) & 65536) !== 0; - } - function Y0(e10) { - return (ti7(e10) & 32768) !== 0; - } - function PR(e10) { - return (ti7(e10) & 16384) !== 0; - } - function D8(e10) { - return mn6(e10.expression) && e10.expression.text === "use strict"; - } - function P82(e10) { - for (let t12 of e10) - if (Ea3(t12)) { - if (D8(t12)) - return t12; - } else - break; - } - function I8(e10) { - let t12 = g_(e10); - return t12 !== void 0 && Ea3(t12) && D8(t12); - } - function Jm(e10) { - return e10.kind === 226 && e10.operatorToken.kind === 28; - } - function IR(e10) { - return Jm(e10) || F_(e10); - } - function N8(e10) { - return is7(e10) && Wt6(e10) && !!Zd(e10); - } - function NR(e10) { - let t12 = em(e10); - return N6.assertIsDefined(t12), t12; - } - function Rm2(e10, t12 = 15) { - switch (e10.kind) { - case 217: - return t12 & 16 && N8(e10) ? false : (t12 & 1) !== 0; - case 216: - case 234: - case 233: - case 238: - return (t12 & 2) !== 0; - case 235: - return (t12 & 4) !== 0; - case 360: - return (t12 & 8) !== 0; - } - return false; - } - function ls6(e10, t12 = 15) { - for (; Rm2(e10, t12); ) - e10 = e10.expression; - return e10; - } - function OR(e10, t12 = 15) { - let r9 = e10.parent; - for (; Rm2(r9, t12); ) - r9 = r9.parent, N6.assert(r9); - return r9; - } - function MR(e10) { - return ls6(e10, 6); - } - function jm(e10) { - return setStartsOnNewLine(e10, true); - } - function O8(e10) { - let t12 = jl3(e10, ii8), r9 = t12 && t12.emitNode; - return r9 && r9.externalHelpersModuleName; - } - function LR(e10) { - let t12 = jl3(e10, ii8), r9 = t12 && t12.emitNode; - return !!r9 && (!!r9.externalHelpersModuleName || !!r9.externalHelpers); - } - function JR(e10, t12, r9, a, _10, p5, d5) { - if (a.importHelpers && Xg(r9, a)) { - let h5, l = ni7(a); - if (l >= 5 && l <= 99 || r9.impliedNodeFormat === 99) { - let v10 = getEmitHelpers(r9); - if (v10) { - let y5 = []; - for (let C10 of v10) - if (!C10.scoped) { - let S10 = C10.importName; - S10 && Ol2(y5, S10); - } - if (mt7(y5)) { - y5.sort(Ci7), h5 = e10.createNamedImports(Aa4(y5, (k7) => I32(r9, k7) ? e10.createImportSpecifier(false, void 0, e10.createIdentifier(k7)) : e10.createImportSpecifier(false, e10.createIdentifier(k7), t12.getUnscopedHelperName(k7)))); - let C10 = jl3(r9, ii8), S10 = getOrCreateEmitNode(C10); - S10.externalHelpers = true; - } - } - } else { - let v10 = M8(e10, r9, a, _10, p5 || d5); - v10 && (h5 = e10.createNamespaceImport(v10)); - } - if (h5) { - let v10 = e10.createImportDeclaration(void 0, e10.createImportClause(false, void 0, h5), e10.createStringLiteral(xm2), void 0); - return addInternalEmitFlags(v10, 2), v10; - } - } - } - function M8(e10, t12, r9, a, _10) { - if (r9.importHelpers && Xg(t12, r9)) { - let p5 = O8(t12); - if (p5) - return p5; - let d5 = ni7(r9), h5 = (a || U23(r9) && _10) && d5 !== 4 && (d5 < 5 || t12.impliedNodeFormat === 1); - if (!h5) { - let l = getEmitHelpers(t12); - if (l) { - for (let v10 of l) - if (!v10.scoped) { - h5 = true; - break; - } - } - } - if (h5) { - let l = jl3(t12, ii8), v10 = getOrCreateEmitNode(l); - return v10.externalHelpersModuleName || (v10.externalHelpersModuleName = e10.createUniqueName(xm2)); - } - } - } - function RR(e10, t12, r9) { - let a = dT(t12); - if (a && !mT(t12) && !J32(t12)) { - let _10 = a.name; - return wa2(_10) ? _10 : e10.createIdentifier(Xo2(r9, _10) || Ot10(_10)); - } - if (t12.kind === 272 && t12.importClause || t12.kind === 278 && t12.moduleSpecifier) - return e10.getGeneratedNameForNode(t12); - } - function jR(e10, t12, r9, a, _10, p5) { - let d5 = d23(t12); - if (d5 && mn6(d5)) - return BR(t12, a, e10, _10, p5) || FR(e10, d5, r9) || e10.cloneNode(d5); - } - function FR(e10, t12, r9) { - let a = r9.renamedDependencies && r9.renamedDependencies.get(t12.text); - return a ? e10.createStringLiteral(a) : void 0; - } - function L8(e10, t12, r9, a) { - if (t12) { - if (t12.moduleName) - return e10.createStringLiteral(t12.moduleName); - if (!t12.isDeclarationFile && A23(a)) - return e10.createStringLiteral(E23(r9, t12.fileName)); - } - } - function BR(e10, t12, r9, a, _10) { - return L8(r9, a.getExternalModuleFileFromDeclaration(e10), t12, _10); - } - function J8(e10) { - if (Bg2(e10)) - return e10.initializer; - if (_s7(e10)) { - let t12 = e10.initializer; - return Na2(t12, true) ? t12.right : void 0; - } - if (_u3(e10)) - return e10.objectAssignmentInitializer; - if (Na2(e10, true)) - return e10.right; - if (y6(e10)) - return J8(e10.expression); - } - function Mo2(e10) { - if (Bg2(e10)) - return e10.name; - if (Fg3(e10)) { - switch (e10.kind) { - case 303: - return Mo2(e10.initializer); - case 304: - return e10.name; - case 305: - return Mo2(e10.expression); - } - return; - } - return Na2(e10, true) ? Mo2(e10.left) : y6(e10) ? Mo2(e10.expression) : e10; - } - function UR(e10) { - switch (e10.kind) { - case 169: - case 208: - return e10.dotDotDotToken; - case 230: - case 305: - return e10; - } - } - function qR(e10) { - let t12 = R82(e10); - return N6.assert(!!t12 || y8(e10), "Invalid property name for binding element."), t12; - } - function R82(e10) { - switch (e10.kind) { - case 208: - if (e10.propertyName) { - let r9 = e10.propertyName; - return jr6(r9) ? N6.failBadSyntaxKind(r9) : ao4(r9) && $b(r9.expression) ? r9.expression : r9; - } - break; - case 303: - if (e10.name) { - let r9 = e10.name; - return jr6(r9) ? N6.failBadSyntaxKind(r9) : ao4(r9) && $b(r9.expression) ? r9.expression : r9; - } - break; - case 305: - return e10.name && jr6(e10.name) ? N6.failBadSyntaxKind(e10.name) : e10.name; - } - let t12 = Mo2(e10); - if (t12 && zl3(t12)) - return t12; - } - function $b(e10) { - let t12 = e10.kind; - return t12 === 11 || t12 === 9; - } - function j8(e10) { - switch (e10.kind) { - case 206: - case 207: - case 209: - return e10.elements; - case 210: - return e10.properties; - } - } - function K0(e10) { - if (e10) { - let t12 = e10; - for (; ; ) { - if (Ee6(t12) || !t12.body) - return Ee6(t12) ? t12 : t12.name; - t12 = t12.body; - } - } - } - function zR(e10) { - let t12 = e10.kind; - return t12 === 176 || t12 === 178; - } - function F8(e10) { - let t12 = e10.kind; - return t12 === 176 || t12 === 177 || t12 === 178; - } - function WR(e10) { - let t12 = e10.kind; - return t12 === 303 || t12 === 304 || t12 === 262 || t12 === 176 || t12 === 181 || t12 === 175 || t12 === 282 || t12 === 243 || t12 === 264 || t12 === 265 || t12 === 266 || t12 === 267 || t12 === 271 || t12 === 272 || t12 === 270 || t12 === 278 || t12 === 277; - } - function VR(e10) { - let t12 = e10.kind; - return t12 === 175 || t12 === 303 || t12 === 304 || t12 === 282 || t12 === 270; - } - function HR(e10) { - return Pl3(e10) || Dd(e10); - } - function GR(e10) { - return Ee6(e10) || d6(e10); - } - function XR(e10) { - return zx(e10) || s6(e10) || _6(e10); - } - function $R(e10) { - return Pl3(e10) || s6(e10) || _6(e10); - } - function QR(e10) { - return Ee6(e10) || mn6(e10); - } - function YR(e10) { - let t12 = e10.kind; - return t12 === 106 || t12 === 112 || t12 === 97 || Og(e10) || Dm2(e10); - } - function KR(e10) { - return e10 === 43; - } - function ZR(e10) { - return e10 === 42 || e10 === 44 || e10 === 45; - } - function ej(e10) { - return KR(e10) || ZR(e10); - } - function tj(e10) { - return e10 === 40 || e10 === 41; - } - function rj(e10) { - return tj(e10) || ej(e10); - } - function nj(e10) { - return e10 === 48 || e10 === 49 || e10 === 50; - } - function ij(e10) { - return nj(e10) || rj(e10); - } - function aj(e10) { - return e10 === 30 || e10 === 33 || e10 === 32 || e10 === 34 || e10 === 104 || e10 === 103; - } - function oj(e10) { - return aj(e10) || ij(e10); - } - function sj(e10) { - return e10 === 35 || e10 === 37 || e10 === 36 || e10 === 38; - } - function _j(e10) { - return sj(e10) || oj(e10); - } - function cj(e10) { - return e10 === 51 || e10 === 52 || e10 === 53; - } - function lj(e10) { - return cj(e10) || _j(e10); - } - function uj(e10) { - return e10 === 56 || e10 === 57; - } - function pj(e10) { - return uj(e10) || lj(e10); - } - function fj(e10) { - return e10 === 61 || pj(e10) || D_(e10); - } - function dj(e10) { - return fj(e10) || e10 === 28; - } - function mj(e10) { - return dj(e10.kind); - } - function hj(e10, t12, r9, a, _10, p5) { - let d5 = new U82(e10, t12, r9, a, _10, p5); - return h5; - function h5(l, v10) { - let y5 = { value: void 0 }, C10 = [Id.enter], S10 = [l], k7 = [void 0], L7 = 0; - for (; C10[L7] !== Id.done; ) - L7 = C10[L7](d5, L7, C10, S10, k7, y5, v10); - return N6.assertEqual(L7, 0), y5.value; - } - } - function B8(e10) { - return e10 === 95 || e10 === 90; - } - function yj(e10) { - let t12 = e10.kind; - return B8(t12); - } - function gj(e10) { - let t12 = e10.kind; - return bi8(t12) && !B8(t12); - } - function bj(e10, t12) { - if (t12 !== void 0) - return t12.length === 0 ? t12 : Ve9(e10.createNodeArray([], t12.hasTrailingComma), t12); - } - function vj(e10) { - var t12; - let r9 = e10.emitNode.autoGenerate; - if (r9.flags & 4) { - let a = r9.id, _10 = e10, p5 = _10.original; - for (; p5; ) { - _10 = p5; - let d5 = (t12 = _10.emitNode) == null ? void 0 : t12.autoGenerate; - if (ro3(_10) && (d5 === void 0 || d5.flags & 4 && d5.id !== a)) - break; - p5 = _10.original; - } - return _10; - } - return e10; - } - function Z0(e10, t12) { - return typeof e10 == "object" ? Pd(false, e10.prefix, e10.node, e10.suffix, t12) : typeof e10 == "string" ? e10.length > 0 && e10.charCodeAt(0) === 35 ? e10.slice(1) : e10 : ""; - } - function Tj(e10, t12) { - return typeof e10 == "string" ? e10 : Sj(e10, N6.checkDefined(t12)); - } - function Sj(e10, t12) { - return Mg2(e10) ? t12(e10).slice(1) : wa2(e10) ? t12(e10) : jr6(e10) ? e10.escapedText.slice(1) : Ot10(e10); - } - function Pd(e10, t12, r9, a, _10) { - return t12 = Z0(t12, _10), a = Z0(a, _10), r9 = Tj(r9, _10), `${e10 ? "#" : ""}${t12}${r9}${a}`; - } - function xj(e10, t12, r9, a) { - return e10.updatePropertyDeclaration(t12, r9, e10.getGeneratedPrivateNameForNode(t12.name, void 0, "_accessor_storage"), void 0, void 0, a); - } - function wj(e10, t12, r9, a, _10 = e10.createThis()) { - return e10.createGetAccessorDeclaration(r9, a, [], void 0, e10.createBlock([e10.createReturnStatement(e10.createPropertyAccessExpression(_10, e10.getGeneratedPrivateNameForNode(t12.name, void 0, "_accessor_storage")))])); - } - function Cj(e10, t12, r9, a, _10 = e10.createThis()) { - return e10.createSetAccessorDeclaration(r9, a, [e10.createParameterDeclaration(void 0, void 0, "value")], e10.createBlock([e10.createExpressionStatement(e10.createAssignment(e10.createPropertyAccessExpression(_10, e10.getGeneratedPrivateNameForNode(t12.name, void 0, "_accessor_storage")), e10.createIdentifier("value")))])); - } - function Ej(e10) { - let t12 = e10.expression; - for (; ; ) { - if (t12 = ls6(t12), F_(t12)) { - t12 = ka3(t12.elements); - continue; - } - if (Jm(t12)) { - t12 = t12.right; - continue; - } - if (Na2(t12, true) && wa2(t12.left)) - return t12; - break; - } - } - function Aj(e10) { - return is7(e10) && Ta2(e10) && !e10.emitNode; - } - function ol4(e10, t12) { - if (Aj(e10)) - ol4(e10.expression, t12); - else if (Jm(e10)) - ol4(e10.left, t12), ol4(e10.right, t12); - else if (F_(e10)) - for (let r9 of e10.elements) - ol4(r9, t12); - else - t12.push(e10); - } - function kj(e10) { - let t12 = []; - return ol4(e10, t12), t12; - } - function U62(e10) { - if (e10.transformFlags & 65536) - return true; - if (e10.transformFlags & 128) - for (let t12 of j8(e10)) { - let r9 = Mo2(t12); - if (r9 && u3(r9) && (r9.transformFlags & 65536 || r9.transformFlags & 128 && U62(r9))) - return true; - } - return false; - } - var Id, U82, Dj = Vt4({ "src/compiler/factory/utilities.ts"() { - "use strict"; - Dr5(), ((e10) => { - function t12(y5, C10, S10, k7, L7, G10, K7) { - let ue7 = C10 > 0 ? L7[C10 - 1] : void 0; - return N6.assertEqual(S10[C10], t12), L7[C10] = y5.onEnter(k7[C10], ue7, K7), S10[C10] = h5(y5, t12), C10; - } - e10.enter = t12; - function r9(y5, C10, S10, k7, L7, G10, K7) { - N6.assertEqual(S10[C10], r9), N6.assertIsDefined(y5.onLeft), S10[C10] = h5(y5, r9); - let ue7 = y5.onLeft(k7[C10].left, L7[C10], k7[C10]); - return ue7 ? (v10(C10, k7, ue7), l(C10, S10, k7, L7, ue7)) : C10; - } - e10.left = r9; - function a(y5, C10, S10, k7, L7, G10, K7) { - return N6.assertEqual(S10[C10], a), N6.assertIsDefined(y5.onOperator), S10[C10] = h5(y5, a), y5.onOperator(k7[C10].operatorToken, L7[C10], k7[C10]), C10; - } - e10.operator = a; - function _10(y5, C10, S10, k7, L7, G10, K7) { - N6.assertEqual(S10[C10], _10), N6.assertIsDefined(y5.onRight), S10[C10] = h5(y5, _10); - let ue7 = y5.onRight(k7[C10].right, L7[C10], k7[C10]); - return ue7 ? (v10(C10, k7, ue7), l(C10, S10, k7, L7, ue7)) : C10; - } - e10.right = _10; - function p5(y5, C10, S10, k7, L7, G10, K7) { - N6.assertEqual(S10[C10], p5), S10[C10] = h5(y5, p5); - let ue7 = y5.onExit(k7[C10], L7[C10]); - if (C10 > 0) { - if (C10--, y5.foldState) { - let Y10 = S10[C10] === p5 ? "right" : "left"; - L7[C10] = y5.foldState(L7[C10], ue7, Y10); - } - } else - G10.value = ue7; - return C10; - } - e10.exit = p5; - function d5(y5, C10, S10, k7, L7, G10, K7) { - return N6.assertEqual(S10[C10], d5), C10; - } - e10.done = d5; - function h5(y5, C10) { - switch (C10) { - case t12: - if (y5.onLeft) - return r9; - case r9: - if (y5.onOperator) - return a; - case a: - if (y5.onRight) - return _10; - case _10: - return p5; - case p5: - return d5; - case d5: - return d5; - default: - N6.fail("Invalid state"); - } - } - e10.nextState = h5; - function l(y5, C10, S10, k7, L7) { - return y5++, C10[y5] = t12, S10[y5] = L7, k7[y5] = void 0, y5; - } - function v10(y5, C10, S10) { - if (N6.shouldAssert(2)) - for (; y5 >= 0; ) - N6.assert(C10[y5] !== S10, "Circular traversal detected."), y5--; - } - })(Id || (Id = {})), U82 = class { - constructor(e10, t12, r9, a, _10, p5) { - this.onEnter = e10, this.onLeft = t12, this.onOperator = r9, this.onRight = a, this.onExit = _10, this.foldState = p5; - } - }; - } }); - function Ve9(e10, t12) { - return t12 ? Ya4(e10, t12.pos, t12.end) : e10; - } - function q_(e10) { - let t12 = e10.kind; - return t12 === 168 || t12 === 169 || t12 === 171 || t12 === 172 || t12 === 173 || t12 === 174 || t12 === 176 || t12 === 177 || t12 === 178 || t12 === 181 || t12 === 185 || t12 === 218 || t12 === 219 || t12 === 231 || t12 === 243 || t12 === 262 || t12 === 263 || t12 === 264 || t12 === 265 || t12 === 266 || t12 === 267 || t12 === 271 || t12 === 272 || t12 === 277 || t12 === 278; - } - function q8(e10) { - let t12 = e10.kind; - return t12 === 169 || t12 === 172 || t12 === 174 || t12 === 177 || t12 === 178 || t12 === 231 || t12 === 263; - } - var Pj = Vt4({ "src/compiler/factory/utilitiesPublic.ts"() { - "use strict"; - Dr5(); - } }); - function P10(e10, t12) { - return t12 && e10(t12); - } - function _e11(e10, t12, r9) { - if (r9) { - if (t12) - return t12(r9); - for (let a of r9) { - let _10 = e10(a); - if (_10) - return _10; - } - } - } - function z8(e10, t12) { - return e10.charCodeAt(t12 + 1) === 42 && e10.charCodeAt(t12 + 2) === 42 && e10.charCodeAt(t12 + 3) !== 47; - } - function ml3(e10) { - return yr5(e10.statements, Ij) || Nj(e10); - } - function Ij(e10) { - return q_(e10) && Oj(e10, 95) || w6(e10) && Nm(e10.moduleReference) || C6(e10) || ss7(e10) || B_(e10) ? e10 : void 0; - } - function Nj(e10) { - return e10.flags & 8388608 ? W8(e10) : void 0; - } - function W8(e10) { - return Mj(e10) ? e10 : Bt7(e10, W8); - } - function Oj(e10, t12) { - return mt7(e10.modifiers, (r9) => r9.kind === t12); - } - function Mj(e10) { - return b6(e10) && e10.keywordToken === 102 && e10.name.escapedText === "meta"; - } - function Qb(e10, t12, r9) { - return _e11(t12, r9, e10.typeParameters) || _e11(t12, r9, e10.parameters) || P10(t12, e10.type); - } - function Yb(e10, t12, r9) { - return _e11(t12, r9, e10.types); - } - function Kb(e10, t12, r9) { - return P10(t12, e10.type); - } - function Zb(e10, t12, r9) { - return _e11(t12, r9, e10.elements); - } - function ev(e10, t12, r9) { - return P10(t12, e10.expression) || P10(t12, e10.questionDotToken) || _e11(t12, r9, e10.typeArguments) || _e11(t12, r9, e10.arguments); - } - function tv(e10, t12, r9) { - return _e11(t12, r9, e10.statements); - } - function rv2(e10, t12, r9) { - return P10(t12, e10.label); - } - function nv(e10, t12, r9) { - return _e11(t12, r9, e10.modifiers) || P10(t12, e10.name) || _e11(t12, r9, e10.typeParameters) || _e11(t12, r9, e10.heritageClauses) || _e11(t12, r9, e10.members); - } - function iv(e10, t12, r9) { - return _e11(t12, r9, e10.elements); - } - function av(e10, t12, r9) { - return P10(t12, e10.propertyName) || P10(t12, e10.name); - } - function ov(e10, t12, r9) { - return P10(t12, e10.tagName) || _e11(t12, r9, e10.typeArguments) || P10(t12, e10.attributes); - } - function wo4(e10, t12, r9) { - return P10(t12, e10.type); - } - function sv(e10, t12, r9) { - return P10(t12, e10.tagName) || (e10.isNameFirst ? P10(t12, e10.name) || P10(t12, e10.typeExpression) : P10(t12, e10.typeExpression) || P10(t12, e10.name)) || (typeof e10.comment == "string" ? void 0 : _e11(t12, r9, e10.comment)); - } - function Co2(e10, t12, r9) { - return P10(t12, e10.tagName) || P10(t12, e10.typeExpression) || (typeof e10.comment == "string" ? void 0 : _e11(t12, r9, e10.comment)); - } - function Kh(e10, t12, r9) { - return P10(t12, e10.name); - } - function Xa4(e10, t12, r9) { - return P10(t12, e10.tagName) || (typeof e10.comment == "string" ? void 0 : _e11(t12, r9, e10.comment)); - } - function Lj(e10, t12, r9) { - return P10(t12, e10.expression); - } - function Bt7(e10, t12, r9) { - if (e10 === void 0 || e10.kind <= 165) - return; - let a = Q8[e10.kind]; - return a === void 0 ? void 0 : a(e10, t12, r9); - } - function eg(e10, t12, r9) { - let a = _v(e10), _10 = []; - for (; _10.length < a.length; ) - _10.push(e10); - for (; a.length !== 0; ) { - let p5 = a.pop(), d5 = _10.pop(); - if (zt6(p5)) { - if (r9) { - let h5 = r9(p5, d5); - if (h5) { - if (h5 === "skip") - continue; - return h5; - } - } - for (let h5 = p5.length - 1; h5 >= 0; --h5) - a.push(p5[h5]), _10.push(d5); - } else { - let h5 = t12(p5, d5); - if (h5) { - if (h5 === "skip") - continue; - return h5; - } - if (p5.kind >= 166) - for (let l of _v(p5)) - a.push(l), _10.push(p5); - } - } - } - function _v(e10) { - let t12 = []; - return Bt7(e10, r9, r9), t12; - function r9(a) { - t12.unshift(a); - } - } - function V8(e10) { - e10.externalModuleIndicator = ml3(e10); - } - function H82(e10, t12, r9, a = false, _10) { - var p5, d5, h5, l; - (p5 = xa2) == null || p5.push(xa2.Phase.Parse, "createSourceFile", { path: e10 }, true), Lb("beforeParse"); - let v10; - (d5 = Yf) == null || d5.logStartParseSourceFile(e10); - let { languageVersion: y5, setExternalModuleIndicator: C10, impliedNodeFormat: S10 } = typeof r9 == "object" ? r9 : { languageVersion: r9 }; - if (y5 === 100) - v10 = Zn6.parseSourceFile(e10, t12, y5, void 0, a, 6, Rn5); - else { - let k7 = S10 === void 0 ? C10 : (L7) => (L7.impliedNodeFormat = S10, (C10 || V8)(L7)); - v10 = Zn6.parseSourceFile(e10, t12, y5, void 0, a, _10, k7); - } - return (h5 = Yf) == null || h5.logStopParseSourceFile(), Lb("afterParse"), gE("Parse", "beforeParse", "afterParse"), (l = xa2) == null || l.pop(), v10; - } - function Jj(e10, t12) { - return Zn6.parseIsolatedEntityName(e10, t12); - } - function Rj(e10, t12) { - return Zn6.parseJsonText(e10, t12); - } - function Zo2(e10) { - return e10.externalModuleIndicator !== void 0; - } - function q62(e10, t12, r9, a = false) { - let _10 = Wf.updateSourceFile(e10, t12, r9, a); - return _10.flags |= e10.flags & 12582912, _10; - } - function jj(e10, t12, r9) { - let a = Zn6.JSDocParser.parseIsolatedJSDocComment(e10, t12, r9); - return a && a.jsDoc && Zn6.fixupParentReferences(a.jsDoc), a; - } - function Fj(e10, t12, r9) { - return Zn6.JSDocParser.parseJSDocTypeExpressionForTests(e10, t12, r9); - } - function G82(e10) { - return ei7(e10, n6) || La2(e10, ".ts") && eo3(T_(e10), ".d."); - } - function Bj(e10, t12, r9, a) { - if (e10) { - if (e10 === "import") - return 99; - if (e10 === "require") - return 1; - a(t12, r9 - t12, U8.resolution_mode_should_be_either_require_or_import); - } - } - function X82(e10, t12) { - let r9 = []; - for (let a of Wo3(t12, 0) || $e9) { - let _10 = t12.substring(a.pos, a.end); - qj(r9, a, _10); - } - e10.pragmas = /* @__PURE__ */ new Map(); - for (let a of r9) { - if (e10.pragmas.has(a.name)) { - let _10 = e10.pragmas.get(a.name); - _10 instanceof Array ? _10.push(a.args) : e10.pragmas.set(a.name, [_10, a.args]); - continue; - } - e10.pragmas.set(a.name, a.args); - } - } - function $8(e10, t12) { - e10.checkJsDirective = void 0, e10.referencedFiles = [], e10.typeReferenceDirectives = [], e10.libReferenceDirectives = [], e10.amdDependencies = [], e10.hasNoDefaultLib = false, e10.pragmas.forEach((r9, a) => { - switch (a) { - case "reference": { - let _10 = e10.referencedFiles, p5 = e10.typeReferenceDirectives, d5 = e10.libReferenceDirectives; - yr5(Pf(r9), (h5) => { - let { types: l, lib: v10, path: y5, ["resolution-mode"]: C10 } = h5.arguments; - if (h5.arguments["no-default-lib"]) - e10.hasNoDefaultLib = true; - else if (l) { - let S10 = Bj(C10, l.pos, l.end, t12); - p5.push({ pos: l.pos, end: l.end, fileName: l.value, ...S10 ? { resolutionMode: S10 } : {} }); - } else - v10 ? d5.push({ pos: v10.pos, end: v10.end, fileName: v10.value }) : y5 ? _10.push({ pos: y5.pos, end: y5.end, fileName: y5.value }) : t12(h5.range.pos, h5.range.end - h5.range.pos, U8.Invalid_reference_directive_syntax); - }); - break; - } - case "amd-dependency": { - e10.amdDependencies = Aa4(Pf(r9), (_10) => ({ name: _10.arguments.name, path: _10.arguments.path })); - break; - } - case "amd-module": { - if (r9 instanceof Array) - for (let _10 of r9) - e10.moduleName && t12(_10.range.pos, _10.range.end - _10.range.pos, U8.An_AMD_module_cannot_have_multiple_name_assignments), e10.moduleName = _10.arguments.name; - else - e10.moduleName = r9.arguments.name; - break; - } - case "ts-nocheck": - case "ts-check": { - yr5(Pf(r9), (_10) => { - (!e10.checkJsDirective || _10.range.pos > e10.checkJsDirective.pos) && (e10.checkJsDirective = { enabled: a === "ts-check", end: _10.range.end, pos: _10.range.pos }); - }); - break; - } - case "jsx": - case "jsxfrag": - case "jsximportsource": - case "jsxruntime": - return; - default: - N6.fail("Unhandled pragma kind"); - } - }); - } - function Uj(e10) { - if (Vf.has(e10)) - return Vf.get(e10); - let t12 = new RegExp(`(\\s${e10}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`, "im"); - return Vf.set(e10, t12), t12; - } - function qj(e10, t12, r9) { - let a = t12.kind === 2 && Y82.exec(r9); - if (a) { - let p5 = a[1].toLowerCase(), d5 = qd[p5]; - if (!d5 || !(d5.kind & 1)) - return; - if (d5.args) { - let h5 = {}; - for (let l of d5.args) { - let y5 = Uj(l.name).exec(r9); - if (!y5 && !l.optional) - return; - if (y5) { - let C10 = y5[2] || y5[3]; - if (l.captureSpan) { - let S10 = t12.pos + y5.index + y5[1].length + 1; - h5[l.name] = { value: C10, pos: S10, end: S10 + C10.length }; - } else - h5[l.name] = C10; - } - } - e10.push({ name: p5, args: { arguments: h5, range: t12 } }); - } else - e10.push({ name: p5, args: { arguments: {}, range: t12 } }); - return; - } - let _10 = t12.kind === 2 && K8.exec(r9); - if (_10) - return cv(e10, t12, 2, _10); - if (t12.kind === 3) { - let p5 = /@(\S+)(\s+.*)?$/gim, d5; - for (; d5 = p5.exec(r9); ) - cv(e10, t12, 4, d5); - } - } - function cv(e10, t12, r9, a) { - if (!a) - return; - let _10 = a[1].toLowerCase(), p5 = qd[_10]; - if (!p5 || !(p5.kind & r9)) - return; - let d5 = a[2], h5 = zj(p5, d5); - h5 !== "fail" && e10.push({ name: _10, args: { arguments: h5, range: t12 } }); - } - function zj(e10, t12) { - if (!t12) - return {}; - if (!e10.args) - return {}; - let r9 = Ud(t12).split(/\s+/), a = {}; - for (let _10 = 0; _10 < e10.args.length; _10++) { - let p5 = e10.args[_10]; - if (!r9[_10] && !p5.optional) - return "fail"; - if (p5.captureSpan) - return N6.fail("Capture spans not yet implemented for non-xml pragmas"); - a[p5.name] = r9[_10]; - } - return a; - } - function Ti7(e10, t12) { - return e10.kind !== t12.kind ? false : e10.kind === 80 ? e10.escapedText === t12.escapedText : e10.kind === 110 ? true : e10.kind === 295 ? e10.namespace.escapedText === t12.namespace.escapedText && e10.name.escapedText === t12.name.escapedText : e10.name.escapedText === t12.name.escapedText && Ti7(e10.expression, t12.expression); - } - var lv, uv, pv, fv, dv, tg, z_, Q8, Zn6, Wf, Vf, Y82, K8, Wj = Vt4({ "src/compiler/parser.ts"() { - "use strict"; - Dr5(), Xv(), tg = { createBaseSourceFileNode: (e10) => new (dv || (dv = wt7.getSourceFileConstructor()))(e10, -1, -1), createBaseIdentifierNode: (e10) => new (pv || (pv = wt7.getIdentifierConstructor()))(e10, -1, -1), createBasePrivateIdentifierNode: (e10) => new (fv || (fv = wt7.getPrivateIdentifierConstructor()))(e10, -1, -1), createBaseTokenNode: (e10) => new (uv || (uv = wt7.getTokenConstructor()))(e10, -1, -1), createBaseNode: (e10) => new (lv || (lv = wt7.getNodeConstructor()))(e10, -1, -1) }, z_ = Ad(1, tg), Q8 = { 166: function(t12, r9, a) { - return P10(r9, t12.left) || P10(r9, t12.right); - }, 168: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.constraint) || P10(r9, t12.default) || P10(r9, t12.expression); - }, 304: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.exclamationToken) || P10(r9, t12.equalsToken) || P10(r9, t12.objectAssignmentInitializer); - }, 305: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 169: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.dotDotDotToken) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.type) || P10(r9, t12.initializer); - }, 172: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.exclamationToken) || P10(r9, t12.type) || P10(r9, t12.initializer); - }, 171: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.type) || P10(r9, t12.initializer); - }, 303: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.exclamationToken) || P10(r9, t12.initializer); - }, 260: function(t12, r9, a) { - return P10(r9, t12.name) || P10(r9, t12.exclamationToken) || P10(r9, t12.type) || P10(r9, t12.initializer); - }, 208: function(t12, r9, a) { - return P10(r9, t12.dotDotDotToken) || P10(r9, t12.propertyName) || P10(r9, t12.name) || P10(r9, t12.initializer); - }, 181: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type); - }, 185: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type); - }, 184: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type); - }, 179: Qb, 180: Qb, 174: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.asteriskToken) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.exclamationToken) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 173: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.questionToken) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type); - }, 176: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 177: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 178: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 262: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.asteriskToken) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 218: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.asteriskToken) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.body); - }, 219: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.parameters) || P10(r9, t12.type) || P10(r9, t12.equalsGreaterThanToken) || P10(r9, t12.body); - }, 175: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.body); - }, 183: function(t12, r9, a) { - return P10(r9, t12.typeName) || _e11(r9, a, t12.typeArguments); - }, 182: function(t12, r9, a) { - return P10(r9, t12.assertsModifier) || P10(r9, t12.parameterName) || P10(r9, t12.type); - }, 186: function(t12, r9, a) { - return P10(r9, t12.exprName) || _e11(r9, a, t12.typeArguments); - }, 187: function(t12, r9, a) { - return _e11(r9, a, t12.members); - }, 188: function(t12, r9, a) { - return P10(r9, t12.elementType); - }, 189: function(t12, r9, a) { - return _e11(r9, a, t12.elements); - }, 192: Yb, 193: Yb, 194: function(t12, r9, a) { - return P10(r9, t12.checkType) || P10(r9, t12.extendsType) || P10(r9, t12.trueType) || P10(r9, t12.falseType); - }, 195: function(t12, r9, a) { - return P10(r9, t12.typeParameter); - }, 205: function(t12, r9, a) { - return P10(r9, t12.argument) || P10(r9, t12.assertions) || P10(r9, t12.qualifier) || _e11(r9, a, t12.typeArguments); - }, 302: function(t12, r9, a) { - return P10(r9, t12.assertClause); - }, 196: Kb, 198: Kb, 199: function(t12, r9, a) { - return P10(r9, t12.objectType) || P10(r9, t12.indexType); - }, 200: function(t12, r9, a) { - return P10(r9, t12.readonlyToken) || P10(r9, t12.typeParameter) || P10(r9, t12.nameType) || P10(r9, t12.questionToken) || P10(r9, t12.type) || _e11(r9, a, t12.members); - }, 201: function(t12, r9, a) { - return P10(r9, t12.literal); - }, 202: function(t12, r9, a) { - return P10(r9, t12.dotDotDotToken) || P10(r9, t12.name) || P10(r9, t12.questionToken) || P10(r9, t12.type); - }, 206: Zb, 207: Zb, 209: function(t12, r9, a) { - return _e11(r9, a, t12.elements); - }, 210: function(t12, r9, a) { - return _e11(r9, a, t12.properties); - }, 211: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.questionDotToken) || P10(r9, t12.name); - }, 212: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.questionDotToken) || P10(r9, t12.argumentExpression); - }, 213: ev, 214: ev, 215: function(t12, r9, a) { - return P10(r9, t12.tag) || P10(r9, t12.questionDotToken) || _e11(r9, a, t12.typeArguments) || P10(r9, t12.template); - }, 216: function(t12, r9, a) { - return P10(r9, t12.type) || P10(r9, t12.expression); - }, 217: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 220: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 221: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 222: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 224: function(t12, r9, a) { - return P10(r9, t12.operand); - }, 229: function(t12, r9, a) { - return P10(r9, t12.asteriskToken) || P10(r9, t12.expression); - }, 223: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 225: function(t12, r9, a) { - return P10(r9, t12.operand); - }, 226: function(t12, r9, a) { - return P10(r9, t12.left) || P10(r9, t12.operatorToken) || P10(r9, t12.right); - }, 234: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.type); - }, 235: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 238: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.type); - }, 236: function(t12, r9, a) { - return P10(r9, t12.name); - }, 227: function(t12, r9, a) { - return P10(r9, t12.condition) || P10(r9, t12.questionToken) || P10(r9, t12.whenTrue) || P10(r9, t12.colonToken) || P10(r9, t12.whenFalse); - }, 230: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 241: tv, 268: tv, 312: function(t12, r9, a) { - return _e11(r9, a, t12.statements) || P10(r9, t12.endOfFileToken); - }, 243: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.declarationList); - }, 261: function(t12, r9, a) { - return _e11(r9, a, t12.declarations); - }, 244: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 245: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.thenStatement) || P10(r9, t12.elseStatement); - }, 246: function(t12, r9, a) { - return P10(r9, t12.statement) || P10(r9, t12.expression); - }, 247: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.statement); - }, 248: function(t12, r9, a) { - return P10(r9, t12.initializer) || P10(r9, t12.condition) || P10(r9, t12.incrementor) || P10(r9, t12.statement); - }, 249: function(t12, r9, a) { - return P10(r9, t12.initializer) || P10(r9, t12.expression) || P10(r9, t12.statement); - }, 250: function(t12, r9, a) { - return P10(r9, t12.awaitModifier) || P10(r9, t12.initializer) || P10(r9, t12.expression) || P10(r9, t12.statement); - }, 251: rv2, 252: rv2, 253: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 254: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.statement); - }, 255: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.caseBlock); - }, 269: function(t12, r9, a) { - return _e11(r9, a, t12.clauses); - }, 296: function(t12, r9, a) { - return P10(r9, t12.expression) || _e11(r9, a, t12.statements); - }, 297: function(t12, r9, a) { - return _e11(r9, a, t12.statements); - }, 256: function(t12, r9, a) { - return P10(r9, t12.label) || P10(r9, t12.statement); - }, 257: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 258: function(t12, r9, a) { - return P10(r9, t12.tryBlock) || P10(r9, t12.catchClause) || P10(r9, t12.finallyBlock); - }, 299: function(t12, r9, a) { - return P10(r9, t12.variableDeclaration) || P10(r9, t12.block); - }, 170: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 263: nv, 231: nv, 264: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || _e11(r9, a, t12.heritageClauses) || _e11(r9, a, t12.members); - }, 265: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.typeParameters) || P10(r9, t12.type); - }, 266: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || _e11(r9, a, t12.members); - }, 306: function(t12, r9, a) { - return P10(r9, t12.name) || P10(r9, t12.initializer); - }, 267: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.body); - }, 271: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name) || P10(r9, t12.moduleReference); - }, 272: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.importClause) || P10(r9, t12.moduleSpecifier) || P10(r9, t12.assertClause); - }, 273: function(t12, r9, a) { - return P10(r9, t12.name) || P10(r9, t12.namedBindings); - }, 300: function(t12, r9, a) { - return _e11(r9, a, t12.elements); - }, 301: function(t12, r9, a) { - return P10(r9, t12.name) || P10(r9, t12.value); - }, 270: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.name); - }, 274: function(t12, r9, a) { - return P10(r9, t12.name); - }, 280: function(t12, r9, a) { - return P10(r9, t12.name); - }, 275: iv, 279: iv, 278: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.exportClause) || P10(r9, t12.moduleSpecifier) || P10(r9, t12.assertClause); - }, 276: av, 281: av, 277: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers) || P10(r9, t12.expression); - }, 228: function(t12, r9, a) { - return P10(r9, t12.head) || _e11(r9, a, t12.templateSpans); - }, 239: function(t12, r9, a) { - return P10(r9, t12.expression) || P10(r9, t12.literal); - }, 203: function(t12, r9, a) { - return P10(r9, t12.head) || _e11(r9, a, t12.templateSpans); - }, 204: function(t12, r9, a) { - return P10(r9, t12.type) || P10(r9, t12.literal); - }, 167: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 298: function(t12, r9, a) { - return _e11(r9, a, t12.types); - }, 233: function(t12, r9, a) { - return P10(r9, t12.expression) || _e11(r9, a, t12.typeArguments); - }, 283: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 282: function(t12, r9, a) { - return _e11(r9, a, t12.modifiers); - }, 361: function(t12, r9, a) { - return _e11(r9, a, t12.elements); - }, 284: function(t12, r9, a) { - return P10(r9, t12.openingElement) || _e11(r9, a, t12.children) || P10(r9, t12.closingElement); - }, 288: function(t12, r9, a) { - return P10(r9, t12.openingFragment) || _e11(r9, a, t12.children) || P10(r9, t12.closingFragment); - }, 285: ov, 286: ov, 292: function(t12, r9, a) { - return _e11(r9, a, t12.properties); - }, 291: function(t12, r9, a) { - return P10(r9, t12.name) || P10(r9, t12.initializer); - }, 293: function(t12, r9, a) { - return P10(r9, t12.expression); - }, 294: function(t12, r9, a) { - return P10(r9, t12.dotDotDotToken) || P10(r9, t12.expression); - }, 287: function(t12, r9, a) { - return P10(r9, t12.tagName); - }, 295: function(t12, r9, a) { - return P10(r9, t12.namespace) || P10(r9, t12.name); - }, 190: wo4, 191: wo4, 316: wo4, 322: wo4, 321: wo4, 323: wo4, 325: wo4, 324: function(t12, r9, a) { - return _e11(r9, a, t12.parameters) || P10(r9, t12.type); - }, 327: function(t12, r9, a) { - return (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)) || _e11(r9, a, t12.tags); - }, 354: function(t12, r9, a) { - return P10(r9, t12.tagName) || P10(r9, t12.name) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 317: function(t12, r9, a) { - return P10(r9, t12.name); - }, 318: function(t12, r9, a) { - return P10(r9, t12.left) || P10(r9, t12.right); - }, 348: sv, 355: sv, 337: function(t12, r9, a) { - return P10(r9, t12.tagName) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 336: function(t12, r9, a) { - return P10(r9, t12.tagName) || P10(r9, t12.class) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 335: function(t12, r9, a) { - return P10(r9, t12.tagName) || P10(r9, t12.class) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 352: function(t12, r9, a) { - return P10(r9, t12.tagName) || P10(r9, t12.constraint) || _e11(r9, a, t12.typeParameters) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 353: function(t12, r9, a) { - return P10(r9, t12.tagName) || (t12.typeExpression && t12.typeExpression.kind === 316 ? P10(r9, t12.typeExpression) || P10(r9, t12.fullName) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)) : P10(r9, t12.fullName) || P10(r9, t12.typeExpression) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment))); - }, 345: function(t12, r9, a) { - return P10(r9, t12.tagName) || P10(r9, t12.fullName) || P10(r9, t12.typeExpression) || (typeof t12.comment == "string" ? void 0 : _e11(r9, a, t12.comment)); - }, 349: Co2, 351: Co2, 350: Co2, 347: Co2, 357: Co2, 356: Co2, 346: Co2, 330: function(t12, r9, a) { - return yr5(t12.typeParameters, r9) || yr5(t12.parameters, r9) || P10(r9, t12.type); - }, 331: Kh, 332: Kh, 333: Kh, 329: function(t12, r9, a) { - return yr5(t12.jsDocPropertyTags, r9); - }, 334: Xa4, 339: Xa4, 340: Xa4, 341: Xa4, 342: Xa4, 343: Xa4, 338: Xa4, 344: Xa4, 360: Lj }, ((e10) => { - var t12 = ns6(99, true), r9 = 40960, a, _10, p5, d5, h5; - function l(c5) { - return wn5++, c5; - } - var v10 = { createBaseSourceFileNode: (c5) => l(new h5(c5, 0, 0)), createBaseIdentifierNode: (c5) => l(new p5(c5, 0, 0)), createBasePrivateIdentifierNode: (c5) => l(new d5(c5, 0, 0)), createBaseTokenNode: (c5) => l(new _10(c5, 0, 0)), createBaseNode: (c5) => l(new a(c5, 0, 0)) }, y5 = Ad(11, v10), { createNodeArray: C10, createNumericLiteral: S10, createStringLiteral: k7, createLiteralLikeNode: L7, createIdentifier: G10, createPrivateIdentifier: K7, createToken: ue7, createArrayLiteralExpression: Y10, createObjectLiteralExpression: B9, createPropertyAccessExpression: ae8, createPropertyAccessChain: Ce10, createElementAccessExpression: Ze11, createElementAccessChain: qe8, createCallExpression: rt8, createCallChain: it6, createNewExpression: Ir7, createParenthesizedExpression: ar6, createBlock: ci6, createVariableStatement: or7, createExpressionStatement: Nr7, createIfStatement: Ge9, createWhileStatement: Gt5, createForStatement: Ur5, createForOfStatement: Xt5, createVariableDeclaration: Tn3, createVariableDeclarationList: Sn6 } = y5, sr7, $t8, St8, xn4, Tr6, vt9, ct7, Ut5, fr6, ht4, wn5, Tt6, Or5, pt5, Mr4, at7, er8 = true, Qt5 = false; - function tn7(c5, m5, b5, w9, A9 = false, R10, te9) { - var le10; - if (R10 = WS(c5, R10), R10 === 6) { - let ie6 = Un5(c5, m5, b5, w9, A9); - return convertToJson(ie6, (le10 = ie6.statements[0]) == null ? void 0 : le10.expression, ie6.parseDiagnostics, false, void 0), ie6.referencedFiles = $e9, ie6.typeReferenceDirectives = $e9, ie6.libReferenceDirectives = $e9, ie6.amdDependencies = $e9, ie6.hasNoDefaultLib = false, ie6.pragmas = pg, ie6; - } - rn7(c5, m5, b5, w9, R10); - let ne10 = Di7(b5, A9, R10, te9 || V8); - return nn7(), ne10; - } - e10.parseSourceFile = tn7; - function Bn4(c5, m5) { - rn7("", c5, m5, void 0, 1), O7(); - let b5 = la5(true), w9 = f5() === 1 && !ct7.length; - return nn7(), w9 ? b5 : void 0; - } - e10.parseIsolatedEntityName = Bn4; - function Un5(c5, m5, b5 = 2, w9, A9 = false) { - rn7(c5, m5, b5, w9, 6), $t8 = at7, O7(); - let R10 = T5(), te9, le10; - if (f5() === 1) - te9 = Ft7([], R10, R10), le10 = dr6(); - else { - let ve9; - for (; f5() !== 1; ) { - let Ue8; - switch (f5()) { - case 23: - Ue8 = Jc3(); - break; - case 112: - case 97: - case 106: - Ue8 = dr6(); - break; - case 41: - Te10(() => O7() === 9 && O7() !== 59) ? Ue8 = Ac4() : Ue8 = Ls7(); - break; - case 9: - case 11: - if (Te10(() => O7() !== 59)) { - Ue8 = fi7(); - break; - } - default: - Ue8 = Ls7(); - break; - } - ve9 && zt6(ve9) ? ve9.push(Ue8) : ve9 ? ve9 = [ve9, Ue8] : (ve9 = Ue8, f5() !== 1 && Je10(U8.Unexpected_token)); - } - let He9 = zt6(ve9) ? M9(Y10(ve9), R10) : N6.checkDefined(ve9), Be9 = Nr7(He9); - M9(Be9, R10), te9 = Ft7([Be9], R10), le10 = Hn6(1, U8.Unexpected_token); - } - let ne10 = ge6(c5, 2, 6, false, te9, le10, $t8, Rn5); - A9 && oe8(ne10), ne10.nodeCount = wn5, ne10.identifierCount = Or5, ne10.identifiers = Tt6, ne10.parseDiagnostics = $a3(ct7, ne10), Ut5 && (ne10.jsDocDiagnostics = $a3(Ut5, ne10)); - let ie6 = ne10; - return nn7(), ie6; - } - e10.parseJsonText = Un5; - function rn7(c5, m5, b5, w9, A9) { - switch (a = wt7.getNodeConstructor(), _10 = wt7.getTokenConstructor(), p5 = wt7.getIdentifierConstructor(), d5 = wt7.getPrivateIdentifierConstructor(), h5 = wt7.getSourceFileConstructor(), sr7 = pn6(c5), St8 = m5, xn4 = b5, fr6 = w9, Tr6 = A9, vt9 = R02(A9), ct7 = [], pt5 = 0, Tt6 = /* @__PURE__ */ new Map(), Or5 = 0, wn5 = 0, $t8 = 0, er8 = true, Tr6) { - case 1: - case 2: - at7 = 524288; - break; - case 6: - at7 = 134742016; - break; - default: - at7 = 0; - break; - } - Qt5 = false, t12.setText(St8), t12.setOnError(j10), t12.setScriptTarget(xn4), t12.setLanguageVariant(vt9); - } - function nn7() { - t12.clearCommentDirectives(), t12.setText(""), t12.setOnError(void 0), St8 = void 0, xn4 = void 0, fr6 = void 0, Tr6 = void 0, vt9 = void 0, $t8 = 0, ct7 = void 0, Ut5 = void 0, pt5 = 0, Tt6 = void 0, Mr4 = void 0, er8 = true; - } - function Di7(c5, m5, b5, w9) { - let A9 = G82(sr7); - A9 && (at7 |= 33554432), $t8 = at7, O7(); - let R10 = zr6(0, wr7); - N6.assert(f5() === 1); - let te9 = x9(), le10 = Ae7(dr6(), te9), ne10 = ge6(sr7, c5, b5, A9, R10, le10, $t8, w9); - return X82(ne10, St8), $8(ne10, ie6), ne10.commentDirectives = t12.getCommentDirectives(), ne10.nodeCount = wn5, ne10.identifierCount = Or5, ne10.identifiers = Tt6, ne10.parseDiagnostics = $a3(ct7, ne10), Ut5 && (ne10.jsDocDiagnostics = $a3(Ut5, ne10)), m5 && oe8(ne10), ne10; - function ie6(ve9, He9, Be9) { - ct7.push(Ao2(sr7, ve9, He9, Be9)); - } - } - let qn5 = false; - function Ae7(c5, m5) { - if (!m5) - return c5; - N6.assert(!c5.jsDoc); - let b5 = Za3(G32(c5, St8), (w9) => gf.parseJSDocComment(c5, w9.pos, w9.end - w9.pos)); - return b5.length && (c5.jsDoc = b5), qn5 && (qn5 = false, c5.flags |= 536870912), c5; - } - function q9(c5) { - let m5 = fr6, b5 = Wf.createSyntaxCursor(c5); - fr6 = { currentNode: ve9 }; - let w9 = [], A9 = ct7; - ct7 = []; - let R10 = 0, te9 = ne10(c5.statements, 0); - for (; te9 !== -1; ) { - let He9 = c5.statements[R10], Be9 = c5.statements[te9]; - Rr7(w9, c5.statements, R10, te9), R10 = ie6(c5.statements, te9); - let Ue8 = _l3(A9, (Gr6) => Gr6.start >= He9.pos), Rt8 = Ue8 >= 0 ? _l3(A9, (Gr6) => Gr6.start >= Be9.pos, Ue8) : -1; - Ue8 >= 0 && Rr7(ct7, A9, Ue8, Rt8 >= 0 ? Rt8 : void 0), _r6(() => { - let Gr6 = at7; - for (at7 |= 65536, t12.resetTokenState(Be9.pos), O7(); f5() !== 1; ) { - let di7 = t12.getTokenFullStart(), mi6 = gs8(0, wr7); - if (w9.push(mi6), di7 === t12.getTokenFullStart() && O7(), R10 >= 0) { - let hi8 = c5.statements[R10]; - if (mi6.end === hi8.pos) - break; - mi6.end > hi8.pos && (R10 = ie6(c5.statements, R10 + 1)); - } - } - at7 = Gr6; - }, 2), te9 = R10 >= 0 ? ne10(c5.statements, R10) : -1; - } - if (R10 >= 0) { - let He9 = c5.statements[R10]; - Rr7(w9, c5.statements, R10); - let Be9 = _l3(A9, (Ue8) => Ue8.start >= He9.pos); - Be9 >= 0 && Rr7(ct7, A9, Be9); - } - return fr6 = m5, y5.updateSourceFile(c5, Ve9(C10(w9), c5.statements)); - function le10(He9) { - return !(He9.flags & 65536) && !!(He9.transformFlags & 67108864); - } - function ne10(He9, Be9) { - for (let Ue8 = Be9; Ue8 < He9.length; Ue8++) - if (le10(He9[Ue8])) - return Ue8; - return -1; - } - function ie6(He9, Be9) { - for (let Ue8 = Be9; Ue8 < He9.length; Ue8++) - if (!le10(He9[Ue8])) - return Ue8; - return -1; - } - function ve9(He9) { - let Be9 = b5.currentNode(He9); - return er8 && Be9 && le10(Be9) && (Be9.intersectsChange = true), Be9; - } - } - function oe8(c5) { - rx(c5, true); - } - e10.fixupParentReferences = oe8; - function ge6(c5, m5, b5, w9, A9, R10, te9, le10) { - let ne10 = y5.createSourceFile(A9, R10, te9); - return Cd(ne10, 0, St8.length), ie6(ne10), !w9 && Zo2(ne10) && ne10.transformFlags & 67108864 && (ne10 = q9(ne10), ie6(ne10)), ne10; - function ie6(ve9) { - ve9.text = St8, ve9.bindDiagnostics = [], ve9.bindSuggestionDiagnostics = void 0, ve9.languageVersion = m5, ve9.fileName = c5, ve9.languageVariant = R02(b5), ve9.isDeclarationFile = w9, ve9.scriptKind = b5, le10(ve9), ve9.setExternalModuleIndicator = le10; - } - } - function Se9(c5, m5) { - c5 ? at7 |= m5 : at7 &= ~m5; - } - function nt7(c5) { - Se9(c5, 8192); - } - function z9(c5) { - Se9(c5, 16384); - } - function X10(c5) { - Se9(c5, 32768); - } - function ee10(c5) { - Se9(c5, 65536); - } - function xe9(c5, m5) { - let b5 = c5 & at7; - if (b5) { - Se9(false, b5); - let w9 = m5(); - return Se9(true, b5), w9; - } - return m5(); - } - function ke9(c5, m5) { - let b5 = c5 & ~at7; - if (b5) { - Se9(true, b5); - let w9 = m5(); - return Se9(false, b5), w9; - } - return m5(); - } - function Le7(c5) { - return xe9(8192, c5); - } - function lt5(c5) { - return ke9(8192, c5); - } - function yt7(c5) { - return xe9(131072, c5); - } - function jt5(c5) { - return ke9(131072, c5); - } - function qr7(c5) { - return ke9(16384, c5); - } - function na4(c5) { - return ke9(32768, c5); - } - function Cn4(c5) { - return ke9(65536, c5); - } - function zn4(c5) { - return xe9(65536, c5); - } - function Pi7(c5) { - return ke9(81920, c5); - } - function ia5(c5) { - return xe9(81920, c5); - } - function Wn4(c5) { - return (at7 & c5) !== 0; - } - function En6() { - return Wn4(16384); - } - function Ii6() { - return Wn4(8192); - } - function aa4() { - return Wn4(131072); - } - function Vn5() { - return Wn4(32768); - } - function Sr7() { - return Wn4(65536); - } - function Je10(c5, ...m5) { - return Mt8(t12.getTokenStart(), t12.getTokenEnd(), c5, ...m5); - } - function oa5(c5, m5, b5, ...w9) { - let A9 = wi7(ct7), R10; - return (!A9 || c5 !== A9.start) && (R10 = Ao2(sr7, c5, m5, b5, ...w9), ct7.push(R10)), Qt5 = true, R10; - } - function Mt8(c5, m5, b5, ...w9) { - return oa5(c5, m5 - c5, b5, ...w9); - } - function Lr7(c5, m5, ...b5) { - Mt8(c5.pos, c5.end, m5, ...b5); - } - function j10(c5, m5, b5) { - oa5(t12.getTokenEnd(), m5, c5, b5); - } - function T5() { - return t12.getTokenFullStart(); - } - function x9() { - return t12.hasPrecedingJSDocComment(); - } - function f5() { - return ht4; - } - function $10() { - return ht4 = t12.scan(); - } - function Q7(c5) { - return O7(), c5(); - } - function O7() { - return Si6(ht4) && (t12.hasUnicodeEscape() || t12.hasExtendedUnicodeEscape()) && Mt8(t12.getTokenStart(), t12.getTokenEnd(), U8.Keywords_cannot_contain_escape_characters), $10(); - } - function fe8() { - return ht4 = t12.scanJsDocToken(); - } - function be11(c5) { - return ht4 = t12.scanJSDocCommentTextToken(c5); - } - function he9() { - return ht4 = t12.reScanGreaterToken(); - } - function Re10() { - return ht4 = t12.reScanSlashToken(); - } - function we9(c5) { - return ht4 = t12.reScanTemplateToken(c5); - } - function et9() { - return ht4 = t12.reScanLessThanToken(); - } - function Ye7() { - return ht4 = t12.reScanHashToken(); - } - function Ke8() { - return ht4 = t12.scanJsxIdentifier(); - } - function It8() { - return ht4 = t12.scanJsxToken(); - } - function qt4() { - return ht4 = t12.scanJsxAttributeValue(); - } - function _r6(c5, m5) { - let b5 = ht4, w9 = ct7.length, A9 = Qt5, R10 = at7, te9 = m5 !== 0 ? t12.lookAhead(c5) : t12.tryScan(c5); - return N6.assert(R10 === at7), (!te9 || m5 !== 0) && (ht4 = b5, m5 !== 2 && (ct7.length = w9), Qt5 = A9), te9; - } - function Te10(c5) { - return _r6(c5, 1); - } - function ft6(c5) { - return _r6(c5, 0); - } - function An4() { - return f5() === 80 ? true : f5() > 118; - } - function Et9() { - return f5() === 80 ? true : f5() === 127 && En6() || f5() === 135 && Sr7() ? false : f5() > 118; - } - function H10(c5, m5, b5 = true) { - return f5() === c5 ? (b5 && O7(), true) : (m5 ? Je10(m5) : Je10(U8._0_expected, nr7(c5)), false); - } - let Fa2 = Object.keys(cl3).filter((c5) => c5.length > 2); - function Ie8(c5) { - if (s8(c5)) { - Mt8(Nt9(St8, c5.template.pos), c5.template.end, U8.Module_declaration_names_may_only_use_or_quoted_strings); - return; - } - let m5 = Ee6(c5) ? Ot10(c5) : void 0; - if (!m5 || !Cg2(m5, xn4)) { - Je10(U8._0_expected, nr7(27)); - return; - } - let b5 = Nt9(St8, c5.pos); - switch (m5) { - case "const": - case "let": - case "var": - Mt8(b5, c5.end, U8.Variable_declaration_not_allowed_at_this_location); - return; - case "declare": - return; - case "interface": - ot8(U8.Interface_name_cannot_be_0, U8.Interface_must_be_given_a_name, 19); - return; - case "is": - Mt8(b5, t12.getTokenStart(), U8.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods); - return; - case "module": - case "namespace": - ot8(U8.Namespace_name_cannot_be_0, U8.Namespace_must_be_given_a_name, 19); - return; - case "type": - ot8(U8.Type_alias_name_cannot_be_0, U8.Type_alias_must_be_given_a_name, 64); - return; - } - let w9 = Jv(m5, Fa2, (A9) => A9) ?? cr6(m5); - if (w9) { - Mt8(b5, c5.end, U8.Unknown_keyword_or_identifier_Did_you_mean_0, w9); - return; - } - f5() !== 0 && Mt8(b5, c5.end, U8.Unexpected_keyword_or_identifier); - } - function ot8(c5, m5, b5) { - f5() === b5 ? Je10(m5) : Je10(c5, t12.getTokenValue()); - } - function cr6(c5) { - for (let m5 of Fa2) - if (c5.length > m5.length + 2 && Fr5(c5, m5)) - return `${m5} ${c5.slice(m5.length)}`; - } - function an6(c5, m5, b5) { - if (f5() === 60 && !t12.hasPrecedingLineBreak()) { - Je10(U8.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations); - return; - } - if (f5() === 21) { - Je10(U8.Cannot_start_a_function_call_in_a_type_annotation), O7(); - return; - } - if (m5 && !ui7()) { - b5 ? Je10(U8._0_expected, nr7(27)) : Je10(U8.Expected_for_property_initializer); - return; - } - if (!fs12()) { - if (b5) { - Je10(U8._0_expected, nr7(27)); - return; - } - Ie8(c5); - } - } - function Ba3(c5) { - return f5() === c5 ? (fe8(), true) : (N6.assert(Jf(c5)), Je10(U8._0_expected, nr7(c5)), false); - } - function kn4(c5, m5, b5, w9) { - if (f5() === m5) { - O7(); - return; - } - let A9 = Je10(U8._0_expected, nr7(m5)); - b5 && A9 && nl2(A9, Ao2(sr7, w9, 1, U8.The_parser_expected_to_find_a_1_to_match_the_0_token_here, nr7(c5), nr7(m5))); - } - function je11(c5) { - return f5() === c5 ? (O7(), true) : false; - } - function dt7(c5) { - if (f5() === c5) - return dr6(); - } - function li7(c5) { - if (f5() === c5) - return t13(); - } - function Hn6(c5, m5, b5) { - return dt7(c5) || Jr6(c5, false, m5 || U8._0_expected, b5 || nr7(c5)); - } - function e12(c5) { - let m5 = li7(c5); - return m5 || (N6.assert(Jf(c5)), Jr6(c5, false, U8._0_expected, nr7(c5))); - } - function dr6() { - let c5 = T5(), m5 = f5(); - return O7(), M9(ue7(m5), c5); - } - function t13() { - let c5 = T5(), m5 = f5(); - return fe8(), M9(ue7(m5), c5); - } - function ui7() { - return f5() === 27 ? true : f5() === 20 || f5() === 1 || t12.hasPrecedingLineBreak(); - } - function fs12() { - return ui7() ? (f5() === 27 && O7(), true) : false; - } - function xr5() { - return fs12() || H10(27); - } - function Ft7(c5, m5, b5, w9) { - let A9 = C10(c5, w9); - return Ya4(A9, m5, b5 ?? t12.getTokenFullStart()), A9; - } - function M9(c5, m5, b5) { - return Ya4(c5, m5, b5 ?? t12.getTokenFullStart()), at7 && (c5.flags |= at7), Qt5 && (Qt5 = false, c5.flags |= 262144), c5; - } - function Jr6(c5, m5, b5, ...w9) { - m5 ? oa5(t12.getTokenFullStart(), 0, b5, ...w9) : b5 && Je10(b5, ...w9); - let A9 = T5(), R10 = c5 === 80 ? G10("", void 0) : Sl2(c5) ? y5.createTemplateLiteralLikeNode(c5, "", "", void 0) : c5 === 9 ? S10("", void 0) : c5 === 11 ? k7("", void 0) : c5 === 282 ? y5.createMissingDeclaration() : ue7(c5); - return M9(R10, A9); - } - function sa4(c5) { - let m5 = Tt6.get(c5); - return m5 === void 0 && Tt6.set(c5, m5 = c5), m5; - } - function Ni7(c5, m5, b5) { - if (c5) { - Or5++; - let le10 = T5(), ne10 = f5(), ie6 = sa4(t12.getTokenValue()), ve9 = t12.hasExtendedUnicodeEscape(); - return $10(), M9(G10(ie6, ne10, ve9), le10); - } - if (f5() === 81) - return Je10(b5 || U8.Private_identifiers_are_not_allowed_outside_class_bodies), Ni7(true); - if (f5() === 0 && t12.tryScan(() => t12.reScanInvalidIdentifier() === 80)) - return Ni7(true); - Or5++; - let w9 = f5() === 1, A9 = t12.isReservedWord(), R10 = t12.getTokenText(), te9 = A9 ? U8.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : U8.Identifier_expected; - return Jr6(80, w9, m5 || te9, R10); - } - function G_(c5) { - return Ni7(An4(), void 0, c5); - } - function Lt9(c5, m5) { - return Ni7(Et9(), c5, m5); - } - function Yt6(c5) { - return Ni7(kt8(f5()), c5); - } - function Oi6() { - return kt8(f5()) || f5() === 11 || f5() === 9; - } - function r12() { - return kt8(f5()) || f5() === 11; - } - function Tu4(c5) { - if (f5() === 11 || f5() === 9) { - let m5 = fi7(); - return m5.text = sa4(m5.text), m5; - } - return c5 && f5() === 23 ? Su4() : f5() === 81 ? X_() : Yt6(); - } - function Ua4() { - return Tu4(true); - } - function Su4() { - let c5 = T5(); - H10(23); - let m5 = Le7(Jt6); - return H10(24), M9(y5.createComputedPropertyName(m5), c5); - } - function X_() { - let c5 = T5(), m5 = K7(sa4(t12.getTokenValue())); - return O7(), M9(m5, c5); - } - function _a3(c5) { - return f5() === c5 && ft6($_); - } - function xu4() { - return O7(), t12.hasPrecedingLineBreak() ? false : ms7(); - } - function $_() { - switch (f5()) { - case 87: - return O7() === 94; - case 95: - return O7(), f5() === 90 ? Te10(Mi6) : f5() === 156 ? Te10(ds5) : wu4(); - case 90: - return Mi6(); - case 126: - case 139: - case 153: - return O7(), ms7(); - default: - return xu4(); - } - } - function wu4() { - return f5() === 60 || f5() !== 42 && f5() !== 130 && f5() !== 19 && ms7(); - } - function ds5() { - return O7(), wu4(); - } - function n12() { - return bi8(f5()) && ft6($_); - } - function ms7() { - return f5() === 23 || f5() === 19 || f5() === 42 || f5() === 26 || Oi6(); - } - function Mi6() { - return O7(), f5() === 86 || f5() === 100 || f5() === 120 || f5() === 60 || f5() === 128 && Te10(ah) || f5() === 134 && Te10(Fc3); - } - function Q_(c5, m5) { - if (bs7(c5)) - return true; - switch (c5) { - case 0: - case 1: - case 3: - return !(f5() === 27 && m5) && Bc3(); - case 2: - return f5() === 84 || f5() === 90; - case 4: - return Te10(Xu4); - case 5: - return Te10(dh) || f5() === 27 && !m5; - case 6: - return f5() === 23 || Oi6(); - case 12: - switch (f5()) { - case 23: - case 42: - case 26: - case 25: - return true; - default: - return Oi6(); - } - case 18: - return Oi6(); - case 9: - return f5() === 23 || f5() === 26 || Oi6(); - case 24: - return r12(); - case 7: - return f5() === 19 ? Te10(hs5) : m5 ? Et9() && !Eu3() : Sc3() && !Eu3(); - case 8: - return zc3(); - case 10: - return f5() === 28 || f5() === 26 || zc3(); - case 19: - return f5() === 103 || f5() === 87 || Et9(); - case 15: - switch (f5()) { - case 28: - case 25: - return true; - } - case 11: - return f5() === 26 || Ri5(); - case 16: - return _c4(false); - case 17: - return _c4(true); - case 20: - case 21: - return f5() === 28 || pa5(); - case 22: - return lf(); - case 23: - return f5() === 161 && Te10(Yp2) ? false : kt8(f5()); - case 13: - return kt8(f5()) || f5() === 19; - case 14: - return true; - case 25: - return true; - case 26: - return N6.fail("ParsingContext.Count used as a context"); - default: - N6.assertNever(c5, "Non-exhaustive case in 'isListElement'."); - } - } - function hs5() { - if (N6.assert(f5() === 19), O7() === 20) { - let c5 = O7(); - return c5 === 28 || c5 === 19 || c5 === 96 || c5 === 119; - } - return true; - } - function ys7() { - return O7(), Et9(); - } - function Cu4() { - return O7(), kt8(f5()); - } - function Y_() { - return O7(), n4(f5()); - } - function Eu3() { - return f5() === 119 || f5() === 96 ? Te10(Au4) : false; - } - function Au4() { - return O7(), Ri5(); - } - function ku3() { - return O7(), pa5(); - } - function po3(c5) { - if (f5() === 1) - return true; - switch (c5) { - case 1: - case 2: - case 4: - case 5: - case 6: - case 12: - case 9: - case 23: - case 24: - return f5() === 20; - case 3: - return f5() === 20 || f5() === 84 || f5() === 90; - case 7: - return f5() === 19 || f5() === 96 || f5() === 119; - case 8: - return fo3(); - case 19: - return f5() === 32 || f5() === 21 || f5() === 19 || f5() === 96 || f5() === 119; - case 11: - return f5() === 22 || f5() === 27; - case 15: - case 21: - case 10: - return f5() === 24; - case 17: - case 16: - case 18: - return f5() === 22 || f5() === 24; - case 20: - return f5() !== 28; - case 22: - return f5() === 19 || f5() === 20; - case 13: - return f5() === 32 || f5() === 44; - case 14: - return f5() === 30 && Te10(Ah); - default: - return false; - } - } - function fo3() { - return !!(ui7() || Cc3(f5()) || f5() === 39); - } - function i12() { - N6.assert(pt5, "Missing parsing context"); - for (let c5 = 0; c5 < 26; c5++) - if (pt5 & 1 << c5 && (Q_(c5, true) || po3(c5))) - return true; - return false; - } - function zr6(c5, m5) { - let b5 = pt5; - pt5 |= 1 << c5; - let w9 = [], A9 = T5(); - for (; !po3(c5); ) { - if (Q_(c5, false)) { - w9.push(gs8(c5, m5)); - continue; - } - if (tc4(c5)) - break; - } - return pt5 = b5, Ft7(w9, A9); - } - function gs8(c5, m5) { - let b5 = bs7(c5); - return b5 ? Du3(b5) : m5(); - } - function bs7(c5, m5) { - var b5; - if (!fr6 || !Pu4(c5) || Qt5) - return; - let w9 = fr6.currentNode(m5 ?? t12.getTokenFullStart()); - if (!(zi6(w9) || w9.intersectsChange || xl3(w9) || (w9.flags & 101441536) !== at7) && a12(w9, c5)) - return dm(w9) && ((b5 = w9.jsDoc) != null && b5.jsDocCache) && (w9.jsDoc.jsDocCache = void 0), w9; - } - function Du3(c5) { - return t12.resetTokenState(c5.end), O7(), c5; - } - function Pu4(c5) { - switch (c5) { - case 5: - case 2: - case 0: - case 1: - case 3: - case 6: - case 4: - case 8: - case 17: - case 16: - return true; - } - return false; - } - function a12(c5, m5) { - switch (m5) { - case 5: - return Iu3(c5); - case 2: - return Nu5(c5); - case 0: - case 1: - case 3: - return K_(c5); - case 6: - return Ou5(c5); - case 4: - return Z_(c5); - case 8: - return Mu4(c5); - case 17: - case 16: - return ec5(c5); - } - return false; - } - function Iu3(c5) { - if (c5) - switch (c5.kind) { - case 176: - case 181: - case 177: - case 178: - case 172: - case 240: - return true; - case 174: - let m5 = c5; - return !(m5.name.kind === 80 && m5.name.escapedText === "constructor"); - } - return false; - } - function Nu5(c5) { - if (c5) - switch (c5.kind) { - case 296: - case 297: - return true; - } - return false; - } - function K_(c5) { - if (c5) - switch (c5.kind) { - case 262: - case 243: - case 241: - case 245: - case 244: - case 257: - case 253: - case 255: - case 252: - case 251: - case 249: - case 250: - case 248: - case 247: - case 254: - case 242: - case 258: - case 256: - case 246: - case 259: - case 272: - case 271: - case 278: - case 277: - case 267: - case 263: - case 264: - case 266: - case 265: - return true; - } - return false; - } - function Ou5(c5) { - return c5.kind === 306; - } - function Z_(c5) { - if (c5) - switch (c5.kind) { - case 180: - case 173: - case 181: - case 171: - case 179: - return true; - } - return false; - } - function Mu4(c5) { - return c5.kind !== 260 ? false : c5.initializer === void 0; - } - function ec5(c5) { - return c5.kind !== 169 ? false : c5.initializer === void 0; - } - function tc4(c5) { - return Lu3(c5), i12() ? true : (O7(), false); - } - function Lu3(c5) { - switch (c5) { - case 0: - return f5() === 90 ? Je10(U8._0_expected, nr7(95)) : Je10(U8.Declaration_or_statement_expected); - case 1: - return Je10(U8.Declaration_or_statement_expected); - case 2: - return Je10(U8.case_or_default_expected); - case 3: - return Je10(U8.Statement_expected); - case 18: - case 4: - return Je10(U8.Property_or_signature_expected); - case 5: - return Je10(U8.Unexpected_token_A_constructor_method_accessor_or_property_was_expected); - case 6: - return Je10(U8.Enum_member_expected); - case 7: - return Je10(U8.Expression_expected); - case 8: - return Si6(f5()) ? Je10(U8._0_is_not_allowed_as_a_variable_declaration_name, nr7(f5())) : Je10(U8.Variable_declaration_expected); - case 9: - return Je10(U8.Property_destructuring_pattern_expected); - case 10: - return Je10(U8.Array_element_destructuring_pattern_expected); - case 11: - return Je10(U8.Argument_expression_expected); - case 12: - return Je10(U8.Property_assignment_expected); - case 15: - return Je10(U8.Expression_or_comma_expected); - case 17: - return Je10(U8.Parameter_declaration_expected); - case 16: - return Si6(f5()) ? Je10(U8._0_is_not_allowed_as_a_parameter_name, nr7(f5())) : Je10(U8.Parameter_declaration_expected); - case 19: - return Je10(U8.Type_parameter_declaration_expected); - case 20: - return Je10(U8.Type_argument_expected); - case 21: - return Je10(U8.Type_expected); - case 22: - return Je10(U8.Unexpected_token_expected); - case 23: - return f5() === 161 ? Je10(U8._0_expected, "}") : Je10(U8.Identifier_expected); - case 13: - return Je10(U8.Identifier_expected); - case 14: - return Je10(U8.Identifier_expected); - case 24: - return Je10(U8.Identifier_or_string_literal_expected); - case 25: - return Je10(U8.Identifier_expected); - case 26: - return N6.fail("ParsingContext.Count used as a context"); - default: - N6.assertNever(c5); - } - } - function Wr6(c5, m5, b5) { - let w9 = pt5; - pt5 |= 1 << c5; - let A9 = [], R10 = T5(), te9 = -1; - for (; ; ) { - if (Q_(c5, false)) { - let le10 = t12.getTokenFullStart(), ne10 = gs8(c5, m5); - if (!ne10) { - pt5 = w9; - return; - } - if (A9.push(ne10), te9 = t12.getTokenStart(), je11(28)) - continue; - if (te9 = -1, po3(c5)) - break; - H10(28, vs7(c5)), b5 && f5() === 27 && !t12.hasPrecedingLineBreak() && O7(), le10 === t12.getTokenFullStart() && O7(); - continue; - } - if (po3(c5) || tc4(c5)) - break; - } - return pt5 = w9, Ft7(A9, R10, void 0, te9 >= 0); - } - function vs7(c5) { - return c5 === 6 ? U8.An_enum_member_name_must_be_followed_by_a_or : void 0; - } - function pi8() { - let c5 = Ft7([], T5()); - return c5.isMissingList = true, c5; - } - function rc3(c5) { - return !!c5.isMissingList; - } - function ca5(c5, m5, b5, w9) { - if (H10(b5)) { - let A9 = Wr6(c5, m5); - return H10(w9), A9; - } - return pi8(); - } - function la5(c5, m5) { - let b5 = T5(), w9 = c5 ? Yt6(m5) : Lt9(m5); - for (; je11(25) && f5() !== 30; ) - w9 = M9(y5.createQualifiedName(w9, qa5(c5, false)), b5); - return w9; - } - function o12(c5, m5) { - return M9(y5.createQualifiedName(c5, m5), c5.pos); - } - function qa5(c5, m5) { - if (t12.hasPrecedingLineBreak() && kt8(f5()) && Te10(Js7)) - return Jr6(80, true, U8.Identifier_expected); - if (f5() === 81) { - let b5 = X_(); - return m5 ? b5 : Jr6(80, true, U8.Identifier_expected); - } - return c5 ? Yt6() : Lt9(); - } - function s12(c5) { - let m5 = T5(), b5 = [], w9; - do - w9 = ju5(c5), b5.push(w9); - while (w9.literal.kind === 17); - return Ft7(b5, m5); - } - function Ts8(c5) { - let m5 = T5(); - return M9(y5.createTemplateExpression(ic3(c5), s12(c5)), m5); - } - function _12() { - let c5 = T5(); - return M9(y5.createTemplateLiteralType(ic3(false), nc3()), c5); - } - function nc3() { - let c5 = T5(), m5 = [], b5; - do - b5 = Ju3(), m5.push(b5); - while (b5.literal.kind === 17); - return Ft7(m5, c5); - } - function Ju3() { - let c5 = T5(); - return M9(y5.createTemplateLiteralTypeSpan(gt7(), Ru4(false)), c5); - } - function Ru4(c5) { - return f5() === 20 ? (we9(c5), c12()) : Hn6(18, U8._0_expected, nr7(20)); - } - function ju5(c5) { - let m5 = T5(); - return M9(y5.createTemplateSpan(Le7(Jt6), Ru4(c5)), m5); - } - function fi7() { - return za4(f5()); - } - function ic3(c5) { - !c5 && t12.getTokenFlags() & 26656 && we9(false); - let m5 = za4(f5()); - return N6.assert(m5.kind === 16, "Template head has wrong token kind"), m5; - } - function c12() { - let c5 = za4(f5()); - return N6.assert(c5.kind === 17 || c5.kind === 18, "Template fragment has wrong token kind"), c5; - } - function Ss6(c5) { - let m5 = c5 === 15 || c5 === 18, b5 = t12.getTokenText(); - return b5.substring(1, b5.length - (t12.isUnterminated() ? 0 : m5 ? 1 : 2)); - } - function za4(c5) { - let m5 = T5(), b5 = Sl2(c5) ? y5.createTemplateLiteralLikeNode(c5, t12.getTokenValue(), Ss6(c5), t12.getTokenFlags() & 7176) : c5 === 9 ? S10(t12.getTokenValue(), t12.getNumericLiteralFlags()) : c5 === 11 ? k7(t12.getTokenValue(), void 0, t12.hasExtendedUnicodeEscape()) : Ng(c5) ? L7(c5, t12.getTokenValue()) : N6.fail(); - return t12.hasExtendedUnicodeEscape() && (b5.hasExtendedUnicodeEscape = true), t12.isUnterminated() && (b5.isUnterminated = true), O7(), M9(b5, m5); - } - function Fu5() { - return la5(true, U8.Type_expected); - } - function ac3() { - if (!t12.hasPrecedingLineBreak() && et9() === 30) - return ca5(20, gt7, 30, 32); - } - function Li6() { - let c5 = T5(); - return M9(y5.createTypeReferenceNode(Fu5(), ac3()), c5); - } - function oc4(c5) { - switch (c5.kind) { - case 183: - return zi6(c5.typeName); - case 184: - case 185: { - let { parameters: m5, type: b5 } = c5; - return rc3(m5) || oc4(b5); - } - case 196: - return oc4(c5.type); - default: - return false; - } - } - function l12(c5) { - return O7(), M9(y5.createTypePredicateNode(void 0, c5, gt7()), c5.pos); - } - function Bu3() { - let c5 = T5(); - return O7(), M9(y5.createThisTypeNode(), c5); - } - function u12() { - let c5 = T5(); - return O7(), M9(y5.createJSDocAllType(), c5); - } - function Uu3() { - let c5 = T5(); - return O7(), M9(y5.createJSDocNonNullableType(op2(), false), c5); - } - function p12() { - let c5 = T5(); - return O7(), f5() === 28 || f5() === 20 || f5() === 22 || f5() === 32 || f5() === 64 || f5() === 52 ? M9(y5.createJSDocUnknownType(), c5) : M9(y5.createJSDocNullableType(gt7(), false), c5); - } - function qu4() { - let c5 = T5(), m5 = x9(); - if (Te10(df)) { - O7(); - let b5 = Gn5(36), w9 = Dn5(59, false); - return Ae7(M9(y5.createJSDocFunctionType(b5, w9), c5), m5); - } - return M9(y5.createTypeReferenceNode(Yt6(), void 0), c5); - } - function f12() { - let c5 = T5(), m5; - return (f5() === 110 || f5() === 105) && (m5 = Yt6(), H10(59)), M9(y5.createParameterDeclaration(void 0, void 0, m5, void 0, xs5(), void 0), c5); - } - function xs5() { - t12.setInJSDocType(true); - let c5 = T5(); - if (je11(144)) { - let w9 = y5.createJSDocNamepathType(void 0); - e: - for (; ; ) - switch (f5()) { - case 20: - case 1: - case 28: - case 5: - break e; - default: - fe8(); - } - return t12.setInJSDocType(false), M9(w9, c5); - } - let m5 = je11(26), b5 = vc3(); - return t12.setInJSDocType(false), m5 && (b5 = M9(y5.createJSDocVariadicType(b5), c5)), f5() === 64 ? (O7(), M9(y5.createJSDocOptionalType(b5), c5)) : b5; - } - function sc3() { - let c5 = T5(); - H10(114); - let m5 = la5(true), b5 = t12.hasPrecedingLineBreak() ? void 0 : qs6(); - return M9(y5.createTypeQueryNode(m5, b5), c5); - } - function d12() { - let c5 = T5(), m5 = Xn6(false, true), b5 = Lt9(), w9, A9; - je11(96) && (pa5() || !Ri5() ? w9 = gt7() : A9 = Ps7()); - let R10 = je11(64) ? gt7() : void 0, te9 = y5.createTypeParameterDeclaration(m5, b5, w9, R10); - return te9.expression = A9, M9(te9, c5); - } - function Vr6() { - if (f5() === 30) - return ca5(19, d12, 30, 32); - } - function _c4(c5) { - return f5() === 26 || zc3() || bi8(f5()) || f5() === 60 || pa5(!c5); - } - function zu4(c5) { - let m5 = Va5(U8.Private_identifiers_cannot_be_used_as_parameters); - return om(m5) === 0 && !mt7(c5) && bi8(f5()) && O7(), m5; - } - function Wu4() { - return An4() || f5() === 23 || f5() === 19; - } - function cc4(c5) { - return lc3(c5); - } - function Vu4(c5) { - return lc3(c5, false); - } - function lc3(c5, m5 = true) { - let b5 = T5(), w9 = x9(), A9 = c5 ? Cn4(() => Xn6(true)) : zn4(() => Xn6(true)); - if (f5() === 110) { - let ne10 = y5.createParameterDeclaration(A9, void 0, Ni7(true), void 0, Ji6(), void 0), ie6 = g_(A9); - return ie6 && Lr7(ie6, U8.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters), Ae7(M9(ne10, b5), w9); - } - let R10 = er8; - er8 = false; - let te9 = dt7(26); - if (!m5 && !Wu4()) - return; - let le10 = Ae7(M9(y5.createParameterDeclaration(A9, te9, zu4(A9), dt7(58), Ji6(), ji5()), b5), w9); - return er8 = R10, le10; - } - function Dn5(c5, m5) { - if (Hu4(c5, m5)) - return yt7(vc3); - } - function Hu4(c5, m5) { - return c5 === 39 ? (H10(c5), true) : je11(59) ? true : m5 && f5() === 39 ? (Je10(U8._0_expected, nr7(59)), O7(), true) : false; - } - function ws7(c5, m5) { - let b5 = En6(), w9 = Sr7(); - z9(!!(c5 & 1)), ee10(!!(c5 & 2)); - let A9 = c5 & 32 ? Wr6(17, f12) : Wr6(16, () => m5 ? cc4(w9) : Vu4(w9)); - return z9(b5), ee10(w9), A9; - } - function Gn5(c5) { - if (!H10(21)) - return pi8(); - let m5 = ws7(c5, true); - return H10(22), m5; - } - function Cs6() { - je11(28) || xr5(); - } - function uc4(c5) { - let m5 = T5(), b5 = x9(); - c5 === 180 && H10(105); - let w9 = Vr6(), A9 = Gn5(4), R10 = Dn5(59, true); - Cs6(); - let te9 = c5 === 179 ? y5.createCallSignature(w9, A9, R10) : y5.createConstructSignature(w9, A9, R10); - return Ae7(M9(te9, m5), b5); - } - function Gu4() { - return f5() === 23 && Te10(m12); - } - function m12() { - if (O7(), f5() === 26 || f5() === 24) - return true; - if (bi8(f5())) { - if (O7(), Et9()) - return true; - } else if (Et9()) - O7(); - else - return false; - return f5() === 59 || f5() === 28 ? true : f5() !== 58 ? false : (O7(), f5() === 59 || f5() === 28 || f5() === 24); - } - function ua5(c5, m5, b5) { - let w9 = ca5(16, () => cc4(false), 23, 24), A9 = Ji6(); - Cs6(); - let R10 = y5.createIndexSignature(b5, w9, A9); - return Ae7(M9(R10, c5), m5); - } - function h12(c5, m5, b5) { - let w9 = Ua4(), A9 = dt7(58), R10; - if (f5() === 21 || f5() === 30) { - let te9 = Vr6(), le10 = Gn5(4), ne10 = Dn5(59, true); - R10 = y5.createMethodSignature(b5, w9, A9, te9, le10, ne10); - } else { - let te9 = Ji6(); - R10 = y5.createPropertySignature(b5, w9, A9, te9), f5() === 64 && (R10.initializer = ji5()); - } - return Cs6(), Ae7(M9(R10, c5), m5); - } - function Xu4() { - if (f5() === 21 || f5() === 30 || f5() === 139 || f5() === 153) - return true; - let c5 = false; - for (; bi8(f5()); ) - c5 = true, O7(); - return f5() === 23 ? true : (Oi6() && (c5 = true, O7()), c5 ? f5() === 21 || f5() === 30 || f5() === 58 || f5() === 59 || f5() === 28 || ui7() : false); - } - function pc2() { - if (f5() === 21 || f5() === 30) - return uc4(179); - if (f5() === 105 && Te10(fc3)) - return uc4(180); - let c5 = T5(), m5 = x9(), b5 = Xn6(false); - return _a3(139) ? da4(c5, m5, b5, 177, 4) : _a3(153) ? da4(c5, m5, b5, 178, 4) : Gu4() ? ua5(c5, m5, b5) : h12(c5, m5, b5); - } - function fc3() { - return O7(), f5() === 21 || f5() === 30; - } - function Es6() { - return O7() === 25; - } - function $u3() { - switch (O7()) { - case 21: - case 30: - case 25: - return true; - } - return false; - } - function Qu4() { - let c5 = T5(); - return M9(y5.createTypeLiteralNode(Yu4()), c5); - } - function Yu4() { - let c5; - return H10(19) ? (c5 = zr6(4, pc2), H10(20)) : c5 = pi8(), c5; - } - function Ku4() { - return O7(), f5() === 40 || f5() === 41 ? O7() === 148 : (f5() === 148 && O7(), f5() === 23 && ys7() && O7() === 103); - } - function y12() { - let c5 = T5(), m5 = Yt6(); - H10(103); - let b5 = gt7(); - return M9(y5.createTypeParameterDeclaration(void 0, m5, b5, void 0), c5); - } - function Zu3() { - let c5 = T5(); - H10(19); - let m5; - (f5() === 148 || f5() === 40 || f5() === 41) && (m5 = dr6(), m5.kind !== 148 && H10(148)), H10(23); - let b5 = y12(), w9 = je11(130) ? gt7() : void 0; - H10(24); - let A9; - (f5() === 58 || f5() === 40 || f5() === 41) && (A9 = dr6(), A9.kind !== 58 && H10(58)); - let R10 = Ji6(); - xr5(); - let te9 = zr6(4, pc2); - return H10(20), M9(y5.createMappedTypeNode(m5, b5, w9, A9, R10, te9), c5); - } - function ep2() { - let c5 = T5(); - if (je11(26)) - return M9(y5.createRestTypeNode(gt7()), c5); - let m5 = gt7(); - if (v82(m5) && m5.pos === m5.type.pos) { - let b5 = y5.createOptionalTypeNode(m5.type); - return Ve9(b5, m5), b5.flags = m5.flags, b5; - } - return m5; - } - function dc2() { - return O7() === 59 || f5() === 58 && O7() === 59; - } - function g12() { - return f5() === 26 ? kt8(O7()) && dc2() : kt8(f5()) && dc2(); - } - function tp2() { - if (Te10(g12)) { - let c5 = T5(), m5 = x9(), b5 = dt7(26), w9 = Yt6(), A9 = dt7(58); - H10(59); - let R10 = ep2(), te9 = y5.createNamedTupleMember(b5, w9, A9, R10); - return Ae7(M9(te9, c5), m5); - } - return ep2(); - } - function b12() { - let c5 = T5(); - return M9(y5.createTupleTypeNode(ca5(21, tp2, 23, 24)), c5); - } - function rp2() { - let c5 = T5(); - H10(21); - let m5 = gt7(); - return H10(22), M9(y5.createParenthesizedType(m5), c5); - } - function v13() { - let c5; - if (f5() === 128) { - let m5 = T5(); - O7(); - let b5 = M9(ue7(128), m5); - c5 = Ft7([b5], m5); - } - return c5; - } - function mc2() { - let c5 = T5(), m5 = x9(), b5 = v13(), w9 = je11(105); - N6.assert(!b5 || w9, "Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers."); - let A9 = Vr6(), R10 = Gn5(4), te9 = Dn5(39, false), le10 = w9 ? y5.createConstructorTypeNode(b5, A9, R10, te9) : y5.createFunctionTypeNode(A9, R10, te9); - return Ae7(M9(le10, c5), m5); - } - function np2() { - let c5 = dr6(); - return f5() === 25 ? void 0 : c5; - } - function hc2(c5) { - let m5 = T5(); - c5 && O7(); - let b5 = f5() === 112 || f5() === 97 || f5() === 106 ? dr6() : za4(f5()); - return c5 && (b5 = M9(y5.createPrefixUnaryExpression(41, b5), m5)), M9(y5.createLiteralTypeNode(b5), m5); - } - function T12() { - return O7(), f5() === 102; - } - function ip2() { - let c5 = T5(), m5 = t12.getTokenStart(); - H10(19); - let b5 = t12.hasPrecedingLineBreak(); - H10(132), H10(59); - let w9 = ma3(true); - if (!H10(20)) { - let A9 = wi7(ct7); - A9 && A9.code === U8._0_expected.code && nl2(A9, Ao2(sr7, m5, 1, U8.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}")); - } - return M9(y5.createImportTypeAssertionContainer(w9, b5), c5); - } - function ap2() { - $t8 |= 4194304; - let c5 = T5(), m5 = je11(114); - H10(102), H10(21); - let b5 = gt7(), w9; - je11(28) && (w9 = ip2()), H10(22); - let A9 = je11(25) ? Fu5() : void 0, R10 = ac3(); - return M9(y5.createImportTypeNode(b5, w9, A9, R10, m5), c5); - } - function yc2() { - return O7(), f5() === 9 || f5() === 10; - } - function op2() { - switch (f5()) { - case 133: - case 159: - case 154: - case 150: - case 163: - case 155: - case 136: - case 157: - case 146: - case 151: - return ft6(np2) || Li6(); - case 67: - t12.reScanAsteriskEqualsToken(); - case 42: - return u12(); - case 61: - t12.reScanQuestionToken(); - case 58: - return p12(); - case 100: - return qu4(); - case 54: - return Uu3(); - case 15: - case 11: - case 9: - case 10: - case 112: - case 97: - case 106: - return hc2(); - case 41: - return Te10(yc2) ? hc2(true) : Li6(); - case 116: - return dr6(); - case 110: { - let c5 = Bu3(); - return f5() === 142 && !t12.hasPrecedingLineBreak() ? l12(c5) : c5; - } - case 114: - return Te10(T12) ? ap2() : sc3(); - case 19: - return Te10(Ku4) ? Zu3() : Qu4(); - case 23: - return b12(); - case 21: - return rp2(); - case 102: - return ap2(); - case 131: - return Te10(Js7) ? dp2() : Li6(); - case 16: - return _12(); - default: - return Li6(); - } - } - function pa5(c5) { - switch (f5()) { - case 133: - case 159: - case 154: - case 150: - case 163: - case 136: - case 148: - case 155: - case 158: - case 116: - case 157: - case 106: - case 110: - case 114: - case 146: - case 19: - case 23: - case 30: - case 52: - case 51: - case 105: - case 11: - case 9: - case 10: - case 112: - case 97: - case 151: - case 42: - case 58: - case 54: - case 26: - case 140: - case 102: - case 131: - case 15: - case 16: - return true; - case 100: - return !c5; - case 41: - return !c5 && Te10(yc2); - case 21: - return !c5 && Te10(S12); - default: - return Et9(); - } - } - function S12() { - return O7(), f5() === 22 || _c4(false) || pa5(); - } - function sp2() { - let c5 = T5(), m5 = op2(); - for (; !t12.hasPrecedingLineBreak(); ) - switch (f5()) { - case 54: - O7(), m5 = M9(y5.createJSDocNonNullableType(m5, true), c5); - break; - case 58: - if (Te10(ku3)) - return m5; - O7(), m5 = M9(y5.createJSDocNullableType(m5, true), c5); - break; - case 23: - if (H10(23), pa5()) { - let b5 = gt7(); - H10(24), m5 = M9(y5.createIndexedAccessTypeNode(m5, b5), c5); - } else - H10(24), m5 = M9(y5.createArrayTypeNode(m5), c5); - break; - default: - return m5; - } - return m5; - } - function _p2(c5) { - let m5 = T5(); - return H10(c5), M9(y5.createTypeOperatorNode(c5, up2()), m5); - } - function cp2() { - if (je11(96)) { - let c5 = jt5(gt7); - if (aa4() || f5() !== 58) - return c5; - } - } - function x12() { - let c5 = T5(), m5 = Lt9(), b5 = ft6(cp2), w9 = y5.createTypeParameterDeclaration(void 0, m5, b5); - return M9(w9, c5); - } - function lp2() { - let c5 = T5(); - return H10(140), M9(y5.createInferTypeNode(x12()), c5); - } - function up2() { - let c5 = f5(); - switch (c5) { - case 143: - case 158: - case 148: - return _p2(c5); - case 140: - return lp2(); - } - return yt7(sp2); - } - function pp2(c5) { - if (bc3()) { - let m5 = mc2(), b5; - return tu4(m5) ? b5 = c5 ? U8.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type : U8.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type : b5 = c5 ? U8.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type : U8.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type, Lr7(m5, b5), m5; - } - } - function As8(c5, m5, b5) { - let w9 = T5(), A9 = c5 === 52, R10 = je11(c5), te9 = R10 && pp2(A9) || m5(); - if (f5() === c5 || R10) { - let le10 = [te9]; - for (; je11(c5); ) - le10.push(pp2(A9) || m5()); - te9 = M9(b5(Ft7(le10, w9)), w9); - } - return te9; - } - function w12() { - return As8(51, up2, y5.createIntersectionTypeNode); - } - function gc2() { - return As8(52, w12, y5.createUnionTypeNode); - } - function C12() { - return O7(), f5() === 105; - } - function bc3() { - return f5() === 30 || f5() === 21 && Te10(E12) ? true : f5() === 105 || f5() === 128 && Te10(C12); - } - function fp2() { - if (bi8(f5()) && Xn6(false), Et9() || f5() === 110) - return O7(), true; - if (f5() === 23 || f5() === 19) { - let c5 = ct7.length; - return Va5(), c5 === ct7.length; - } - return false; - } - function E12() { - return O7(), !!(f5() === 22 || f5() === 26 || fp2() && (f5() === 59 || f5() === 28 || f5() === 58 || f5() === 64 || f5() === 22 && (O7(), f5() === 39))); - } - function vc3() { - let c5 = T5(), m5 = Et9() && ft6(Tc4), b5 = gt7(); - return m5 ? M9(y5.createTypePredicateNode(void 0, m5, b5), c5) : b5; - } - function Tc4() { - let c5 = Lt9(); - if (f5() === 142 && !t12.hasPrecedingLineBreak()) - return O7(), c5; - } - function dp2() { - let c5 = T5(), m5 = Hn6(131), b5 = f5() === 110 ? Bu3() : Lt9(), w9 = je11(142) ? gt7() : void 0; - return M9(y5.createTypePredicateNode(m5, b5, w9), c5); - } - function gt7() { - if (at7 & 81920) - return xe9(81920, gt7); - if (bc3()) - return mc2(); - let c5 = T5(), m5 = gc2(); - if (!aa4() && !t12.hasPrecedingLineBreak() && je11(96)) { - let b5 = jt5(gt7); - H10(58); - let w9 = yt7(gt7); - H10(59); - let A9 = yt7(gt7); - return M9(y5.createConditionalTypeNode(m5, b5, w9, A9), c5); - } - return m5; - } - function Ji6() { - return je11(59) ? gt7() : void 0; - } - function Sc3() { - switch (f5()) { - case 110: - case 108: - case 106: - case 112: - case 97: - case 9: - case 10: - case 11: - case 15: - case 16: - case 21: - case 23: - case 19: - case 100: - case 86: - case 105: - case 44: - case 69: - case 80: - return true; - case 102: - return Te10($u3); - default: - return Et9(); - } - } - function Ri5() { - if (Sc3()) - return true; - switch (f5()) { - case 40: - case 41: - case 55: - case 54: - case 91: - case 114: - case 116: - case 46: - case 47: - case 30: - case 135: - case 127: - case 81: - case 60: - return true; - default: - return Ec3() ? true : Et9(); - } - } - function mp2() { - return f5() !== 19 && f5() !== 100 && f5() !== 86 && f5() !== 60 && Ri5(); - } - function Jt6() { - let c5 = Vn5(); - c5 && X10(false); - let m5 = T5(), b5 = tr8(true), w9; - for (; w9 = dt7(28); ) - b5 = Ds8(b5, w9, tr8(true), m5); - return c5 && X10(true), b5; - } - function ji5() { - return je11(64) ? tr8(true) : void 0; - } - function tr8(c5) { - if (A12()) - return k12(); - let m5 = D12(c5) || bp2(c5); - if (m5) - return m5; - let b5 = T5(), w9 = x9(), A9 = ks7(0); - return A9.kind === 80 && f5() === 39 ? xc2(b5, A9, c5, w9, void 0) : Lo4(A9) && D_(he9()) ? Ds8(A9, dr6(), tr8(c5), b5) : Sp2(A9, b5, c5); - } - function A12() { - return f5() === 127 ? En6() ? true : Te10(zp2) : false; - } - function hp2() { - return O7(), !t12.hasPrecedingLineBreak() && Et9(); - } - function k12() { - let c5 = T5(); - return O7(), !t12.hasPrecedingLineBreak() && (f5() === 42 || Ri5()) ? M9(y5.createYieldExpression(dt7(42), tr8(true)), c5) : M9(y5.createYieldExpression(void 0, void 0), c5); - } - function xc2(c5, m5, b5, w9, A9) { - N6.assert(f5() === 39, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - let R10 = y5.createParameterDeclaration(void 0, void 0, m5, void 0, void 0, void 0); - M9(R10, m5.pos); - let te9 = Ft7([R10], R10.pos, R10.end), le10 = Hn6(39), ne10 = Tp2(!!A9, b5), ie6 = y5.createArrowFunction(A9, void 0, te9, void 0, le10, ne10); - return Ae7(M9(ie6, c5), w9); - } - function D12(c5) { - let m5 = P12(); - if (m5 !== 0) - return m5 === 1 ? wc2(true, true) : ft6(() => gp2(c5)); - } - function P12() { - return f5() === 21 || f5() === 30 || f5() === 134 ? Te10(yp2) : f5() === 39 ? 1 : 0; - } - function yp2() { - if (f5() === 134 && (O7(), t12.hasPrecedingLineBreak() || f5() !== 21 && f5() !== 30)) - return 0; - let c5 = f5(), m5 = O7(); - if (c5 === 21) { - if (m5 === 22) - switch (O7()) { - case 39: - case 59: - case 19: - return 1; - default: - return 0; - } - if (m5 === 23 || m5 === 19) - return 2; - if (m5 === 26) - return 1; - if (bi8(m5) && m5 !== 134 && Te10(ys7)) - return O7() === 130 ? 0 : 1; - if (!Et9() && m5 !== 110) - return 0; - switch (O7()) { - case 59: - return 1; - case 58: - return O7(), f5() === 59 || f5() === 28 || f5() === 64 || f5() === 22 ? 1 : 0; - case 28: - case 64: - case 22: - return 2; - } - return 0; - } else - return N6.assert(c5 === 30), !Et9() && f5() !== 87 ? 0 : vt9 === 1 ? Te10(() => { - je11(87); - let w9 = O7(); - if (w9 === 96) - switch (O7()) { - case 64: - case 32: - case 44: - return false; - default: - return true; - } - else if (w9 === 28 || w9 === 64) - return true; - return false; - }) ? 1 : 0 : 2; - } - function gp2(c5) { - let m5 = t12.getTokenStart(); - if (Mr4 != null && Mr4.has(m5)) - return; - let b5 = wc2(false, c5); - return b5 || (Mr4 || (Mr4 = /* @__PURE__ */ new Set())).add(m5), b5; - } - function bp2(c5) { - if (f5() === 134 && Te10(vp2) === 1) { - let m5 = T5(), b5 = x9(), w9 = Hc3(), A9 = ks7(0); - return xc2(m5, A9, c5, b5, w9); - } - } - function vp2() { - if (f5() === 134) { - if (O7(), t12.hasPrecedingLineBreak() || f5() === 39) - return 0; - let c5 = ks7(0); - if (!t12.hasPrecedingLineBreak() && c5.kind === 80 && f5() === 39) - return 1; - } - return 0; - } - function wc2(c5, m5) { - let b5 = T5(), w9 = x9(), A9 = Hc3(), R10 = mt7(A9, al3) ? 2 : 0, te9 = Vr6(), le10; - if (H10(21)) { - if (c5) - le10 = ws7(R10, c5); - else { - let di7 = ws7(R10, c5); - if (!di7) - return; - le10 = di7; - } - if (!H10(22) && !c5) - return; - } else { - if (!c5) - return; - le10 = pi8(); - } - let ne10 = f5() === 59, ie6 = Dn5(59, false); - if (ie6 && !c5 && oc4(ie6)) - return; - let ve9 = ie6; - for (; (ve9 == null ? void 0 : ve9.kind) === 196; ) - ve9 = ve9.type; - let He9 = ve9 && Om(ve9); - if (!c5 && f5() !== 39 && (He9 || f5() !== 19)) - return; - let Be9 = f5(), Ue8 = Hn6(39), Rt8 = Be9 === 39 || Be9 === 19 ? Tp2(mt7(A9, al3), m5) : Lt9(); - if (!m5 && ne10 && f5() !== 59) - return; - let Gr6 = y5.createArrowFunction(A9, te9, le10, ie6, Ue8, Rt8); - return Ae7(M9(Gr6, b5), w9); - } - function Tp2(c5, m5) { - if (f5() === 19) - return go3(c5 ? 2 : 0); - if (f5() !== 27 && f5() !== 100 && f5() !== 86 && Bc3() && !mp2()) - return go3(16 | (c5 ? 2 : 0)); - let b5 = er8; - er8 = false; - let w9 = c5 ? Cn4(() => tr8(m5)) : zn4(() => tr8(m5)); - return er8 = b5, w9; - } - function Sp2(c5, m5, b5) { - let w9 = dt7(58); - if (!w9) - return c5; - let A9; - return M9(y5.createConditionalExpression(c5, w9, xe9(r9, () => tr8(false)), A9 = Hn6(59), wl2(A9) ? tr8(b5) : Jr6(80, false, U8._0_expected, nr7(59))), m5); - } - function ks7(c5) { - let m5 = T5(), b5 = Ps7(); - return xp2(c5, b5, m5); - } - function Cc3(c5) { - return c5 === 103 || c5 === 165; - } - function xp2(c5, m5, b5) { - for (; ; ) { - he9(); - let w9 = pl3(f5()); - if (!(f5() === 43 ? w9 >= c5 : w9 > c5) || f5() === 103 && Ii6()) - break; - if (f5() === 130 || f5() === 152) { - if (t12.hasPrecedingLineBreak()) - break; - { - let R10 = f5(); - O7(), m5 = R10 === 152 ? I12(m5, gt7()) : N12(m5, gt7()); - } - } else - m5 = Ds8(m5, dr6(), ks7(w9), b5); - } - return m5; - } - function Ec3() { - return Ii6() && f5() === 103 ? false : pl3(f5()) > 0; - } - function I12(c5, m5) { - return M9(y5.createSatisfiesExpression(c5, m5), c5.pos); - } - function Ds8(c5, m5, b5, w9) { - return M9(y5.createBinaryExpression(c5, m5, b5), w9); - } - function N12(c5, m5) { - return M9(y5.createAsExpression(c5, m5), c5.pos); - } - function Ac4() { - let c5 = T5(); - return M9(y5.createPrefixUnaryExpression(f5(), Q7(Fi7)), c5); - } - function O12() { - let c5 = T5(); - return M9(y5.createDeleteExpression(Q7(Fi7)), c5); - } - function wp2() { - let c5 = T5(); - return M9(y5.createTypeOfExpression(Q7(Fi7)), c5); - } - function M12() { - let c5 = T5(); - return M9(y5.createVoidExpression(Q7(Fi7)), c5); - } - function Cp2() { - return f5() === 135 ? Sr7() ? true : Te10(zp2) : false; - } - function L12() { - let c5 = T5(); - return M9(y5.createAwaitExpression(Q7(Fi7)), c5); - } - function Ps7() { - if (kc4()) { - let b5 = T5(), w9 = Dc3(); - return f5() === 43 ? xp2(pl3(f5()), w9, b5) : w9; - } - let c5 = f5(), m5 = Fi7(); - if (f5() === 43) { - let b5 = Nt9(St8, m5.pos), { end: w9 } = m5; - m5.kind === 216 ? Mt8(b5, w9, U8.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses) : (N6.assert(Jf(c5)), Mt8(b5, w9, U8.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, nr7(c5))); - } - return m5; - } - function Fi7() { - switch (f5()) { - case 40: - case 41: - case 55: - case 54: - return Ac4(); - case 91: - return O12(); - case 114: - return wp2(); - case 116: - return M12(); - case 30: - return vt9 === 1 ? fa4(true, void 0, void 0, true) : W12(); - case 135: - if (Cp2()) - return L12(); - default: - return Dc3(); - } - } - function kc4() { - switch (f5()) { - case 40: - case 41: - case 55: - case 54: - case 91: - case 114: - case 116: - case 135: - return false; - case 30: - if (vt9 !== 1) - return false; - default: - return true; - } - } - function Dc3() { - if (f5() === 46 || f5() === 47) { - let m5 = T5(); - return M9(y5.createPrefixUnaryExpression(f5(), Q7(Is6)), m5); - } else if (vt9 === 1 && f5() === 30 && Te10(Y_)) - return fa4(true); - let c5 = Is6(); - if (N6.assert(Lo4(c5)), (f5() === 46 || f5() === 47) && !t12.hasPrecedingLineBreak()) { - let m5 = f5(); - return O7(), M9(y5.createPostfixUnaryExpression(c5, m5), c5.pos); - } - return c5; - } - function Is6() { - let c5 = T5(), m5; - return f5() === 102 ? Te10(fc3) ? ($t8 |= 4194304, m5 = dr6()) : Te10(Es6) ? (O7(), O7(), m5 = M9(y5.createMetaProperty(102, Yt6()), c5), $t8 |= 8388608) : m5 = Ns8() : m5 = f5() === 108 ? J12() : Ns8(), Ip2(c5, m5); - } - function Ns8() { - let c5 = T5(), m5 = Op2(); - return ho4(c5, m5, true); - } - function J12() { - let c5 = T5(), m5 = dr6(); - if (f5() === 30) { - let b5 = T5(), w9 = ft6(Mc4); - w9 !== void 0 && (Mt8(b5, T5(), U8.super_may_not_use_type_arguments), Os8() || (m5 = y5.createExpressionWithTypeArguments(m5, w9))); - } - return f5() === 21 || f5() === 25 || f5() === 23 ? m5 : (Hn6(25, U8.super_must_be_followed_by_an_argument_list_or_member_access), M9(ae8(m5, qa5(true, true)), c5)); - } - function fa4(c5, m5, b5, w9 = false) { - let A9 = T5(), R10 = B12(c5), te9; - if (R10.kind === 286) { - let le10 = Pc4(R10), ne10, ie6 = le10[le10.length - 1]; - if ((ie6 == null ? void 0 : ie6.kind) === 284 && !Ti7(ie6.openingElement.tagName, ie6.closingElement.tagName) && Ti7(R10.tagName, ie6.closingElement.tagName)) { - let ve9 = ie6.children.end, He9 = M9(y5.createJsxElement(ie6.openingElement, ie6.children, M9(y5.createJsxClosingElement(M9(G10(""), ve9, ve9)), ve9, ve9)), ie6.openingElement.pos, ve9); - le10 = Ft7([...le10.slice(0, le10.length - 1), He9], le10.pos, ve9), ne10 = ie6.closingElement; - } else - ne10 = z12(R10, c5), Ti7(R10.tagName, ne10.tagName) || (b5 && Oo2(b5) && Ti7(ne10.tagName, b5.tagName) ? Lr7(R10.tagName, U8.JSX_element_0_has_no_corresponding_closing_tag, t_(St8, R10.tagName)) : Lr7(ne10.tagName, U8.Expected_corresponding_JSX_closing_tag_for_0, t_(St8, R10.tagName))); - te9 = M9(y5.createJsxElement(R10, le10, ne10), A9); - } else - R10.kind === 289 ? te9 = M9(y5.createJsxFragment(R10, Pc4(R10), Dp2(c5)), A9) : (N6.assert(R10.kind === 285), te9 = R10); - if (!w9 && c5 && f5() === 30) { - let le10 = typeof m5 > "u" ? te9.pos : m5, ne10 = ft6(() => fa4(true, le10)); - if (ne10) { - let ie6 = Jr6(28, false); - return Cd(ie6, ne10.pos, 0), Mt8(Nt9(St8, le10), ne10.end, U8.JSX_expressions_must_have_one_parent_element), M9(y5.createBinaryExpression(te9, ie6, ne10), A9); - } - } - return te9; - } - function R12() { - let c5 = T5(), m5 = y5.createJsxText(t12.getTokenValue(), ht4 === 13); - return ht4 = t12.scanJsxToken(), M9(m5, c5); - } - function j12(c5, m5) { - switch (m5) { - case 1: - if (k6(c5)) - Lr7(c5, U8.JSX_fragment_has_no_corresponding_closing_tag); - else { - let b5 = c5.tagName, w9 = Math.min(Nt9(St8, b5.pos), b5.end); - Mt8(w9, b5.end, U8.JSX_element_0_has_no_corresponding_closing_tag, t_(St8, c5.tagName)); - } - return; - case 31: - case 7: - return; - case 12: - case 13: - return R12(); - case 19: - return Ep2(false); - case 30: - return fa4(false, void 0, c5); - default: - return N6.assertNever(m5); - } - } - function Pc4(c5) { - let m5 = [], b5 = T5(), w9 = pt5; - for (pt5 |= 16384; ; ) { - let A9 = j12(c5, ht4 = t12.reScanJsxToken()); - if (!A9 || (m5.push(A9), Oo2(c5) && (A9 == null ? void 0 : A9.kind) === 284 && !Ti7(A9.openingElement.tagName, A9.closingElement.tagName) && Ti7(c5.tagName, A9.closingElement.tagName))) - break; - } - return pt5 = w9, Ft7(m5, b5); - } - function F12() { - let c5 = T5(); - return M9(y5.createJsxAttributes(zr6(13, U12)), c5); - } - function B12(c5) { - let m5 = T5(); - if (H10(30), f5() === 32) - return It8(), M9(y5.createJsxOpeningFragment(), m5); - let b5 = Ic4(), w9 = at7 & 524288 ? void 0 : qs6(), A9 = F12(), R10; - return f5() === 32 ? (It8(), R10 = y5.createJsxOpeningElement(b5, w9, A9)) : (H10(44), H10(32, void 0, false) && (c5 ? O7() : It8()), R10 = y5.createJsxSelfClosingElement(b5, w9, A9)), M9(R10, m5); - } - function Ic4() { - let c5 = T5(), m5 = Nc4(); - if (U_(m5)) - return m5; - let b5 = m5; - for (; je11(25); ) - b5 = M9(ae8(b5, qa5(true, false)), c5); - return b5; - } - function Nc4() { - let c5 = T5(); - Ke8(); - let m5 = f5() === 110, b5 = Yt6(); - return je11(59) ? (Ke8(), M9(y5.createJsxNamespacedName(b5, Yt6()), c5)) : m5 ? M9(y5.createToken(110), c5) : b5; - } - function Ep2(c5) { - let m5 = T5(); - if (!H10(19)) - return; - let b5, w9; - return f5() !== 20 && (b5 = dt7(26), w9 = Jt6()), c5 ? H10(20) : H10(20, void 0, false) && It8(), M9(y5.createJsxExpression(b5, w9), m5); - } - function U12() { - if (f5() === 19) - return kp2(); - let c5 = T5(); - return M9(y5.createJsxAttribute(q12(), Ap2()), c5); - } - function Ap2() { - if (f5() === 64) { - if (qt4() === 11) - return fi7(); - if (f5() === 19) - return Ep2(true); - if (f5() === 30) - return fa4(true); - Je10(U8.or_JSX_element_expected); - } - } - function q12() { - let c5 = T5(); - Ke8(); - let m5 = Yt6(); - return je11(59) ? (Ke8(), M9(y5.createJsxNamespacedName(m5, Yt6()), c5)) : m5; - } - function kp2() { - let c5 = T5(); - H10(19), H10(26); - let m5 = Jt6(); - return H10(20), M9(y5.createJsxSpreadAttribute(m5), c5); - } - function z12(c5, m5) { - let b5 = T5(); - H10(31); - let w9 = Ic4(); - return H10(32, void 0, false) && (m5 || !Ti7(c5.tagName, w9) ? O7() : It8()), M9(y5.createJsxClosingElement(w9), b5); - } - function Dp2(c5) { - let m5 = T5(); - return H10(31), H10(32, U8.Expected_corresponding_closing_tag_for_JSX_fragment, false) && (c5 ? O7() : It8()), M9(y5.createJsxJsxClosingFragment(), m5); - } - function W12() { - N6.assert(vt9 !== 1, "Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments."); - let c5 = T5(); - H10(30); - let m5 = gt7(); - H10(32); - let b5 = Fi7(); - return M9(y5.createTypeAssertion(m5, b5), c5); - } - function Pp2() { - return O7(), kt8(f5()) || f5() === 23 || Os8(); - } - function V12() { - return f5() === 29 && Te10(Pp2); - } - function Hr6(c5) { - if (c5.flags & 64) - return true; - if (jo2(c5)) { - let m5 = c5.expression; - for (; jo2(m5) && !(m5.flags & 64); ) - m5 = m5.expression; - if (m5.flags & 64) { - for (; jo2(c5); ) - c5.flags |= 64, c5 = c5.expression; - return true; - } - } - return false; - } - function Bi7(c5, m5, b5) { - let w9 = qa5(true, true), A9 = b5 || Hr6(m5), R10 = A9 ? Ce10(m5, b5, w9) : ae8(m5, w9); - if (A9 && jr6(R10.name) && Lr7(R10.name, U8.An_optional_chain_cannot_contain_private_identifiers), g6(m5) && m5.typeArguments) { - let te9 = m5.typeArguments.pos - 1, le10 = Nt9(St8, m5.typeArguments.end) + 1; - Mt8(te9, le10, U8.An_instantiation_expression_cannot_be_followed_by_a_property_access); - } - return M9(R10, c5); - } - function mo3(c5, m5, b5) { - let w9; - if (f5() === 24) - w9 = Jr6(80, true, U8.An_element_access_expression_should_take_an_argument); - else { - let R10 = Le7(Jt6); - Qi5(R10) && (R10.text = sa4(R10.text)), w9 = R10; - } - H10(24); - let A9 = b5 || Hr6(m5) ? qe8(m5, b5, w9) : Ze11(m5, w9); - return M9(A9, c5); - } - function ho4(c5, m5, b5) { - for (; ; ) { - let w9, A9 = false; - if (b5 && V12() ? (w9 = Hn6(29), A9 = kt8(f5())) : A9 = je11(25), A9) { - m5 = Bi7(c5, m5, w9); - continue; - } - if ((w9 || !Vn5()) && je11(23)) { - m5 = mo3(c5, m5, w9); - continue; - } - if (Os8()) { - m5 = !w9 && m5.kind === 233 ? Ms6(c5, m5.expression, w9, m5.typeArguments) : Ms6(c5, m5, w9, void 0); - continue; - } - if (!w9) { - if (f5() === 54 && !t12.hasPrecedingLineBreak()) { - O7(), m5 = M9(y5.createNonNullExpression(m5), c5); - continue; - } - let R10 = ft6(Mc4); - if (R10) { - m5 = M9(y5.createExpressionWithTypeArguments(m5, R10), c5); - continue; - } - } - return m5; - } - } - function Os8() { - return f5() === 15 || f5() === 16; - } - function Ms6(c5, m5, b5, w9) { - let A9 = y5.createTaggedTemplateExpression(m5, w9, f5() === 15 ? (we9(true), fi7()) : Ts8(true)); - return (b5 || m5.flags & 64) && (A9.flags |= 64), A9.questionDotToken = b5, M9(A9, c5); - } - function Ip2(c5, m5) { - for (; ; ) { - m5 = ho4(c5, m5, true); - let b5, w9 = dt7(29); - if (w9 && (b5 = ft6(Mc4), Os8())) { - m5 = Ms6(c5, m5, w9, b5); - continue; - } - if (b5 || f5() === 21) { - !w9 && m5.kind === 233 && (b5 = m5.typeArguments, m5 = m5.expression); - let A9 = Oc5(), R10 = w9 || Hr6(m5) ? it6(m5, w9, b5, A9) : rt8(m5, b5, A9); - m5 = M9(R10, c5); - continue; - } - if (w9) { - let A9 = Jr6(80, false, U8.Identifier_expected); - m5 = M9(Ce10(m5, w9, A9), c5); - } - break; - } - return m5; - } - function Oc5() { - H10(21); - let c5 = Wr6(11, G12); - return H10(22), c5; - } - function Mc4() { - if (at7 & 524288 || et9() !== 30) - return; - O7(); - let c5 = Wr6(20, gt7); - if (he9() === 32) - return O7(), c5 && Np2() ? c5 : void 0; - } - function Np2() { - switch (f5()) { - case 21: - case 15: - case 16: - return true; - case 30: - case 32: - case 40: - case 41: - return false; - } - return t12.hasPrecedingLineBreak() || Ec3() || !Ri5(); - } - function Op2() { - switch (f5()) { - case 15: - t12.getTokenFlags() & 26656 && we9(false); - case 9: - case 10: - case 11: - return fi7(); - case 110: - case 108: - case 106: - case 112: - case 97: - return dr6(); - case 21: - return Mp2(); - case 23: - return Jc3(); - case 19: - return Ls7(); - case 134: - if (!Te10(Fc3)) - break; - return Rc4(); - case 60: - return gh(); - case 86: - return sf(); - case 100: - return Rc4(); - case 105: - return Lp2(); - case 44: - case 69: - if (Re10() === 14) - return fi7(); - break; - case 16: - return Ts8(false); - case 81: - return X_(); - } - return Lt9(U8.Expression_expected); - } - function Mp2() { - let c5 = T5(), m5 = x9(); - H10(21); - let b5 = Le7(Jt6); - return H10(22), Ae7(M9(ar6(b5), c5), m5); - } - function H12() { - let c5 = T5(); - H10(26); - let m5 = tr8(true); - return M9(y5.createSpreadElement(m5), c5); - } - function Lc5() { - return f5() === 26 ? H12() : f5() === 28 ? M9(y5.createOmittedExpression(), T5()) : tr8(true); - } - function G12() { - return xe9(r9, Lc5); - } - function Jc3() { - let c5 = T5(), m5 = t12.getTokenStart(), b5 = H10(23), w9 = t12.hasPrecedingLineBreak(), A9 = Wr6(15, Lc5); - return kn4(23, 24, b5, m5), M9(Y10(A9, w9), c5); - } - function X12() { - let c5 = T5(), m5 = x9(); - if (dt7(26)) { - let ve9 = tr8(true); - return Ae7(M9(y5.createSpreadAssignment(ve9), c5), m5); - } - let b5 = Xn6(true); - if (_a3(139)) - return da4(c5, m5, b5, 177, 0); - if (_a3(153)) - return da4(c5, m5, b5, 178, 0); - let w9 = dt7(42), A9 = Et9(), R10 = Ua4(), te9 = dt7(58), le10 = dt7(54); - if (w9 || f5() === 21 || f5() === 30) - return Wc4(c5, m5, b5, w9, R10, te9, le10); - let ne10; - if (A9 && f5() !== 59) { - let ve9 = dt7(64), He9 = ve9 ? Le7(() => tr8(true)) : void 0; - ne10 = y5.createShorthandPropertyAssignment(R10, He9), ne10.equalsToken = ve9; - } else { - H10(59); - let ve9 = Le7(() => tr8(true)); - ne10 = y5.createPropertyAssignment(R10, ve9); - } - return ne10.modifiers = b5, ne10.questionToken = te9, ne10.exclamationToken = le10, Ae7(M9(ne10, c5), m5); - } - function Ls7() { - let c5 = T5(), m5 = t12.getTokenStart(), b5 = H10(19), w9 = t12.hasPrecedingLineBreak(), A9 = Wr6(12, X12, true); - return kn4(19, 20, b5, m5), M9(B9(A9, w9), c5); - } - function Rc4() { - let c5 = Vn5(); - X10(false); - let m5 = T5(), b5 = x9(), w9 = Xn6(false); - H10(100); - let A9 = dt7(42), R10 = A9 ? 1 : 0, te9 = mt7(w9, al3) ? 2 : 0, le10 = R10 && te9 ? Pi7(yo3) : R10 ? qr7(yo3) : te9 ? Cn4(yo3) : yo3(), ne10 = Vr6(), ie6 = Gn5(R10 | te9), ve9 = Dn5(59, false), He9 = go3(R10 | te9); - X10(c5); - let Be9 = y5.createFunctionExpression(w9, A9, le10, ne10, ie6, ve9, He9); - return Ae7(M9(Be9, m5), b5); - } - function yo3() { - return An4() ? G_() : void 0; - } - function Lp2() { - let c5 = T5(); - if (H10(105), je11(25)) { - let R10 = Yt6(); - return M9(y5.createMetaProperty(105, R10), c5); - } - let m5 = T5(), b5 = ho4(m5, Op2(), false), w9; - b5.kind === 233 && (w9 = b5.typeArguments, b5 = b5.expression), f5() === 29 && Je10(U8.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, t_(St8, b5)); - let A9 = f5() === 21 ? Oc5() : void 0; - return M9(Ir7(b5, w9, A9), c5); - } - function Wa5(c5, m5) { - let b5 = T5(), w9 = x9(), A9 = t12.getTokenStart(), R10 = H10(19, m5); - if (R10 || c5) { - let te9 = t12.hasPrecedingLineBreak(), le10 = zr6(1, wr7); - kn4(19, 20, R10, A9); - let ne10 = Ae7(M9(ci6(le10, te9), b5), w9); - return f5() === 64 && (Je10(U8.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses), O7()), ne10; - } else { - let te9 = pi8(); - return Ae7(M9(ci6(te9, void 0), b5), w9); - } - } - function go3(c5, m5) { - let b5 = En6(); - z9(!!(c5 & 1)); - let w9 = Sr7(); - ee10(!!(c5 & 2)); - let A9 = er8; - er8 = false; - let R10 = Vn5(); - R10 && X10(false); - let te9 = Wa5(!!(c5 & 16), m5); - return R10 && X10(true), er8 = A9, z9(b5), ee10(w9), te9; - } - function $12() { - let c5 = T5(), m5 = x9(); - return H10(27), Ae7(M9(y5.createEmptyStatement(), c5), m5); - } - function Jp3() { - let c5 = T5(), m5 = x9(); - H10(101); - let b5 = t12.getTokenStart(), w9 = H10(21), A9 = Le7(Jt6); - kn4(21, 22, w9, b5); - let R10 = wr7(), te9 = je11(93) ? wr7() : void 0; - return Ae7(M9(Ge9(A9, R10, te9), c5), m5); - } - function Q12() { - let c5 = T5(), m5 = x9(); - H10(92); - let b5 = wr7(); - H10(117); - let w9 = t12.getTokenStart(), A9 = H10(21), R10 = Le7(Jt6); - return kn4(21, 22, A9, w9), je11(27), Ae7(M9(y5.createDoStatement(b5, R10), c5), m5); - } - function Rp2() { - let c5 = T5(), m5 = x9(); - H10(117); - let b5 = t12.getTokenStart(), w9 = H10(21), A9 = Le7(Jt6); - kn4(21, 22, w9, b5); - let R10 = wr7(); - return Ae7(M9(Gt5(A9, R10), c5), m5); - } - function Y12() { - let c5 = T5(), m5 = x9(); - H10(99); - let b5 = dt7(135); - H10(21); - let w9; - f5() !== 27 && (f5() === 115 || f5() === 121 || f5() === 87 || f5() === 160 && Te10(sh) || f5() === 135 && Te10(Fs7) ? w9 = ef2(true) : w9 = lt5(Jt6)); - let A9; - if (b5 ? H10(165) : je11(165)) { - let R10 = Le7(() => tr8(true)); - H10(22), A9 = Xt5(b5, w9, R10, wr7()); - } else if (je11(103)) { - let R10 = Le7(Jt6); - H10(22), A9 = y5.createForInStatement(w9, R10, wr7()); - } else { - H10(27); - let R10 = f5() !== 27 && f5() !== 22 ? Le7(Jt6) : void 0; - H10(27); - let te9 = f5() !== 22 ? Le7(Jt6) : void 0; - H10(22), A9 = Ur5(w9, R10, te9, wr7()); - } - return Ae7(M9(A9, c5), m5); - } - function jc3(c5) { - let m5 = T5(), b5 = x9(); - H10(c5 === 252 ? 83 : 88); - let w9 = ui7() ? void 0 : Lt9(); - xr5(); - let A9 = c5 === 252 ? y5.createBreakStatement(w9) : y5.createContinueStatement(w9); - return Ae7(M9(A9, m5), b5); - } - function K12() { - let c5 = T5(), m5 = x9(); - H10(107); - let b5 = ui7() ? void 0 : Le7(Jt6); - return xr5(), Ae7(M9(y5.createReturnStatement(b5), c5), m5); - } - function Z12() { - let c5 = T5(), m5 = x9(); - H10(118); - let b5 = t12.getTokenStart(), w9 = H10(21), A9 = Le7(Jt6); - kn4(21, 22, w9, b5); - let R10 = ke9(67108864, wr7); - return Ae7(M9(y5.createWithStatement(A9, R10), c5), m5); - } - function jp2() { - let c5 = T5(), m5 = x9(); - H10(84); - let b5 = Le7(Jt6); - H10(59); - let w9 = zr6(3, wr7); - return Ae7(M9(y5.createCaseClause(b5, w9), c5), m5); - } - function eh2() { - let c5 = T5(); - H10(90), H10(59); - let m5 = zr6(3, wr7); - return M9(y5.createDefaultClause(m5), c5); - } - function Fp2() { - return f5() === 84 ? jp2() : eh2(); - } - function th() { - let c5 = T5(); - H10(19); - let m5 = zr6(2, Fp2); - return H10(20), M9(y5.createCaseBlock(m5), c5); - } - function Bp2() { - let c5 = T5(), m5 = x9(); - H10(109), H10(21); - let b5 = Le7(Jt6); - H10(22); - let w9 = th(); - return Ae7(M9(y5.createSwitchStatement(b5, w9), c5), m5); - } - function rh() { - let c5 = T5(), m5 = x9(); - H10(111); - let b5 = t12.hasPrecedingLineBreak() ? void 0 : Le7(Jt6); - return b5 === void 0 && (Or5++, b5 = M9(G10(""), T5())), fs12() || Ie8(b5), Ae7(M9(y5.createThrowStatement(b5), c5), m5); - } - function Up2() { - let c5 = T5(), m5 = x9(); - H10(113); - let b5 = Wa5(false), w9 = f5() === 85 ? nh() : void 0, A9; - return (!w9 || f5() === 98) && (H10(98, U8.catch_or_finally_expected), A9 = Wa5(false)), Ae7(M9(y5.createTryStatement(b5, w9, A9), c5), m5); - } - function nh() { - let c5 = T5(); - H10(85); - let m5; - je11(21) ? (m5 = Bs7(), H10(22)) : m5 = void 0; - let b5 = Wa5(false); - return M9(y5.createCatchClause(m5, b5), c5); - } - function qp3() { - let c5 = T5(), m5 = x9(); - return H10(89), xr5(), Ae7(M9(y5.createDebuggerStatement(), c5), m5); - } - function ih() { - let c5 = T5(), m5 = x9(), b5, w9 = f5() === 21, A9 = Le7(Jt6); - return Ee6(A9) && je11(59) ? b5 = y5.createLabeledStatement(A9, wr7()) : (fs12() || Ie8(A9), b5 = Nr7(A9), w9 && (m5 = false)), Ae7(M9(b5, c5), m5); - } - function Js7() { - return O7(), kt8(f5()) && !t12.hasPrecedingLineBreak(); - } - function ah() { - return O7(), f5() === 86 && !t12.hasPrecedingLineBreak(); - } - function Fc3() { - return O7(), f5() === 100 && !t12.hasPrecedingLineBreak(); - } - function zp2() { - return O7(), (kt8(f5()) || f5() === 9 || f5() === 10 || f5() === 11) && !t12.hasPrecedingLineBreak(); - } - function Wp2() { - for (; ; ) - switch (f5()) { - case 115: - case 121: - case 87: - case 100: - case 86: - case 94: - return true; - case 160: - return Hp2(); - case 135: - return Uc4(); - case 120: - case 156: - return hp2(); - case 144: - case 145: - return _h(); - case 128: - case 129: - case 134: - case 138: - case 123: - case 124: - case 125: - case 148: - let c5 = f5(); - if (O7(), t12.hasPrecedingLineBreak()) - return false; - if (c5 === 138 && f5() === 156) - return true; - continue; - case 162: - return O7(), f5() === 19 || f5() === 80 || f5() === 95; - case 102: - return O7(), f5() === 11 || f5() === 42 || f5() === 19 || kt8(f5()); - case 95: - let m5 = O7(); - if (m5 === 156 && (m5 = Te10(O7)), m5 === 64 || m5 === 42 || m5 === 19 || m5 === 90 || m5 === 130 || m5 === 60) - return true; - continue; - case 126: - O7(); - continue; - default: - return false; - } - } - function Rs6() { - return Te10(Wp2); - } - function Bc3() { - switch (f5()) { - case 60: - case 27: - case 19: - case 115: - case 121: - case 160: - case 100: - case 86: - case 94: - case 101: - case 92: - case 117: - case 99: - case 88: - case 83: - case 107: - case 118: - case 109: - case 111: - case 113: - case 89: - case 85: - case 98: - return true; - case 102: - return Rs6() || Te10($u3); - case 87: - case 95: - return Rs6(); - case 134: - case 138: - case 120: - case 144: - case 145: - case 156: - case 162: - return true; - case 129: - case 125: - case 123: - case 124: - case 126: - case 148: - return Rs6() || !Te10(Js7); - default: - return Ri5(); - } - } - function oh() { - return O7(), An4() || f5() === 19 || f5() === 23; - } - function Vp2() { - return Te10(oh); - } - function sh() { - return js7(true); - } - function js7(c5) { - return O7(), c5 && f5() === 165 ? false : (An4() || f5() === 19) && !t12.hasPrecedingLineBreak(); - } - function Hp2() { - return Te10(js7); - } - function Fs7() { - return Gp2(true); - } - function Gp2(c5) { - return O7() === 160 ? js7(c5) : false; - } - function Uc4() { - return Te10(Gp2); - } - function wr7() { - switch (f5()) { - case 27: - return $12(); - case 19: - return Wa5(false); - case 115: - return vo3(T5(), x9(), void 0); - case 121: - if (Vp2()) - return vo3(T5(), x9(), void 0); - break; - case 135: - if (Uc4()) - return vo3(T5(), x9(), void 0); - break; - case 160: - if (Hp2()) - return vo3(T5(), x9(), void 0); - break; - case 100: - return Us7(T5(), x9(), void 0); - case 86: - return _f(T5(), x9(), void 0); - case 101: - return Jp3(); - case 92: - return Q12(); - case 117: - return Rp2(); - case 99: - return Y12(); - case 88: - return jc3(251); - case 83: - return jc3(252); - case 107: - return K12(); - case 118: - return Z12(); - case 109: - return Bp2(); - case 111: - return rh(); - case 113: - case 85: - case 98: - return Up2(); - case 89: - return qp3(); - case 60: - return Xp3(); - case 134: - case 120: - case 156: - case 144: - case 145: - case 138: - case 87: - case 94: - case 95: - case 102: - case 123: - case 124: - case 125: - case 128: - case 129: - case 126: - case 148: - case 162: - if (Rs6()) - return Xp3(); - break; - } - return ih(); - } - function qc3(c5) { - return c5.kind === 138; - } - function Xp3() { - let c5 = T5(), m5 = x9(), b5 = Xn6(true); - if (mt7(b5, qc3)) { - let A9 = $p2(c5); - if (A9) - return A9; - for (let R10 of b5) - R10.flags |= 33554432; - return ke9(33554432, () => Qp2(c5, m5, b5)); - } else - return Qp2(c5, m5, b5); - } - function $p2(c5) { - return ke9(33554432, () => { - let m5 = bs7(pt5, c5); - if (m5) - return Du3(m5); - }); - } - function Qp2(c5, m5, b5) { - switch (f5()) { - case 115: - case 121: - case 87: - case 160: - case 135: - return vo3(c5, m5, b5); - case 100: - return Us7(c5, m5, b5); - case 86: - return _f(c5, m5, b5); - case 120: - return xh(c5, m5, b5); - case 156: - return uf2(c5, m5, b5); - case 94: - return wh(c5, m5, b5); - case 162: - case 144: - case 145: - return Ch(c5, m5, b5); - case 102: - return kh(c5, m5, b5); - case 95: - switch (O7(), f5()) { - case 90: - case 64: - return Bh(c5, m5, b5); - case 130: - return Qc2(c5, m5, b5); - default: - return Fh(c5, m5, b5); - } - default: - if (b5) { - let w9 = Jr6(282, true, U8.Declaration_expected); - return wd(w9, c5), w9.modifiers = b5, w9; - } - return; - } - } - function Yp2() { - return O7() === 11; - } - function _h() { - return O7(), !t12.hasPrecedingLineBreak() && (Et9() || f5() === 11); - } - function bo3(c5, m5) { - if (f5() !== 19) { - if (c5 & 4) { - Cs6(); - return; - } - if (ui7()) { - xr5(); - return; - } - } - return go3(c5, m5); - } - function ch() { - let c5 = T5(); - if (f5() === 28) - return M9(y5.createOmittedExpression(), c5); - let m5 = dt7(26), b5 = Va5(), w9 = ji5(); - return M9(y5.createBindingElement(m5, void 0, b5, w9), c5); - } - function Kp2() { - let c5 = T5(), m5 = dt7(26), b5 = An4(), w9 = Ua4(), A9; - b5 && f5() !== 59 ? (A9 = w9, w9 = void 0) : (H10(59), A9 = Va5()); - let R10 = ji5(); - return M9(y5.createBindingElement(m5, w9, A9, R10), c5); - } - function lh() { - let c5 = T5(); - H10(19); - let m5 = Le7(() => Wr6(9, Kp2)); - return H10(20), M9(y5.createObjectBindingPattern(m5), c5); - } - function Zp3() { - let c5 = T5(); - H10(23); - let m5 = Le7(() => Wr6(10, ch)); - return H10(24), M9(y5.createArrayBindingPattern(m5), c5); - } - function zc3() { - return f5() === 19 || f5() === 23 || f5() === 81 || An4(); - } - function Va5(c5) { - return f5() === 23 ? Zp3() : f5() === 19 ? lh() : G_(c5); - } - function uh() { - return Bs7(true); - } - function Bs7(c5) { - let m5 = T5(), b5 = x9(), w9 = Va5(U8.Private_identifiers_are_not_allowed_in_variable_declarations), A9; - c5 && w9.kind === 80 && f5() === 54 && !t12.hasPrecedingLineBreak() && (A9 = dr6()); - let R10 = Ji6(), te9 = Cc3(f5()) ? void 0 : ji5(), le10 = Tn3(w9, A9, R10, te9); - return Ae7(M9(le10, m5), b5); - } - function ef2(c5) { - let m5 = T5(), b5 = 0; - switch (f5()) { - case 115: - break; - case 121: - b5 |= 1; - break; - case 87: - b5 |= 2; - break; - case 160: - b5 |= 4; - break; - case 135: - N6.assert(Uc4()), b5 |= 6, O7(); - break; - default: - N6.fail(); - } - O7(); - let w9; - if (f5() === 165 && Te10(tf2)) - w9 = pi8(); - else { - let A9 = Ii6(); - nt7(c5), w9 = Wr6(8, c5 ? Bs7 : uh), nt7(A9); - } - return M9(Sn6(w9, b5), m5); - } - function tf2() { - return ys7() && O7() === 22; - } - function vo3(c5, m5, b5) { - let w9 = ef2(false); - xr5(); - let A9 = or7(b5, w9); - return Ae7(M9(A9, c5), m5); - } - function Us7(c5, m5, b5) { - let w9 = Sr7(), A9 = ln6(b5); - H10(100); - let R10 = dt7(42), te9 = A9 & 1024 ? yo3() : G_(), le10 = R10 ? 1 : 0, ne10 = A9 & 512 ? 2 : 0, ie6 = Vr6(); - A9 & 1 && ee10(true); - let ve9 = Gn5(le10 | ne10), He9 = Dn5(59, false), Be9 = bo3(le10 | ne10, U8.or_expected); - ee10(w9); - let Ue8 = y5.createFunctionDeclaration(b5, R10, te9, ie6, ve9, He9, Be9); - return Ae7(M9(Ue8, c5), m5); - } - function ph() { - if (f5() === 137) - return H10(137); - if (f5() === 11 && Te10(O7) === 21) - return ft6(() => { - let c5 = fi7(); - return c5.text === "constructor" ? c5 : void 0; - }); - } - function fh(c5, m5, b5) { - return ft6(() => { - if (ph()) { - let w9 = Vr6(), A9 = Gn5(0), R10 = Dn5(59, false), te9 = bo3(0, U8.or_expected), le10 = y5.createConstructorDeclaration(b5, A9, te9); - return le10.typeParameters = w9, le10.type = R10, Ae7(M9(le10, c5), m5); - } - }); - } - function Wc4(c5, m5, b5, w9, A9, R10, te9, le10) { - let ne10 = w9 ? 1 : 0, ie6 = mt7(b5, al3) ? 2 : 0, ve9 = Vr6(), He9 = Gn5(ne10 | ie6), Be9 = Dn5(59, false), Ue8 = bo3(ne10 | ie6, le10), Rt8 = y5.createMethodDeclaration(b5, w9, A9, R10, ve9, He9, Be9, Ue8); - return Rt8.exclamationToken = te9, Ae7(M9(Rt8, c5), m5); - } - function rf2(c5, m5, b5, w9, A9) { - let R10 = !A9 && !t12.hasPrecedingLineBreak() ? dt7(54) : void 0, te9 = Ji6(), le10 = xe9(90112, ji5); - an6(w9, te9, le10); - let ne10 = y5.createPropertyDeclaration(b5, w9, A9 || R10, te9, le10); - return Ae7(M9(ne10, c5), m5); - } - function nf2(c5, m5, b5) { - let w9 = dt7(42), A9 = Ua4(), R10 = dt7(58); - return w9 || f5() === 21 || f5() === 30 ? Wc4(c5, m5, b5, w9, A9, R10, void 0, U8.or_expected) : rf2(c5, m5, b5, A9, R10); - } - function da4(c5, m5, b5, w9, A9) { - let R10 = Ua4(), te9 = Vr6(), le10 = Gn5(0), ne10 = Dn5(59, false), ie6 = bo3(A9), ve9 = w9 === 177 ? y5.createGetAccessorDeclaration(b5, R10, le10, ne10, ie6) : y5.createSetAccessorDeclaration(b5, R10, le10, ie6); - return ve9.typeParameters = te9, Qo3(ve9) && (ve9.type = ne10), Ae7(M9(ve9, c5), m5); - } - function dh() { - let c5; - if (f5() === 60) - return true; - for (; bi8(f5()); ) { - if (c5 = f5(), s3(c5)) - return true; - O7(); - } - if (f5() === 42 || (Oi6() && (c5 = f5(), O7()), f5() === 23)) - return true; - if (c5 !== void 0) { - if (!Si6(c5) || c5 === 153 || c5 === 139) - return true; - switch (f5()) { - case 21: - case 30: - case 54: - case 59: - case 64: - case 58: - return true; - default: - return ui7(); - } - } - return false; - } - function af2(c5, m5, b5) { - Hn6(126); - let w9 = mh(), A9 = Ae7(M9(y5.createClassStaticBlockDeclaration(w9), c5), m5); - return A9.modifiers = b5, A9; - } - function mh() { - let c5 = En6(), m5 = Sr7(); - z9(false), ee10(true); - let b5 = Wa5(false); - return z9(c5), ee10(m5), b5; - } - function hh() { - if (Sr7() && f5() === 135) { - let c5 = T5(), m5 = Lt9(U8.Expression_expected); - O7(); - let b5 = ho4(c5, m5, true); - return Ip2(c5, b5); - } - return Is6(); - } - function Vc4() { - let c5 = T5(); - if (!je11(60)) - return; - let m5 = na4(hh); - return M9(y5.createDecorator(m5), c5); - } - function of2(c5, m5, b5) { - let w9 = T5(), A9 = f5(); - if (f5() === 87 && m5) { - if (!ft6(xu4)) - return; - } else { - if (b5 && f5() === 126 && Te10(mf)) - return; - if (c5 && f5() === 126) - return; - if (!n12()) - return; - } - return M9(ue7(A9), w9); - } - function Xn6(c5, m5, b5) { - let w9 = T5(), A9, R10, te9, le10 = false, ne10 = false, ie6 = false; - if (c5 && f5() === 60) - for (; R10 = Vc4(); ) - A9 = xt8(A9, R10); - for (; te9 = of2(le10, m5, b5); ) - te9.kind === 126 && (le10 = true), A9 = xt8(A9, te9), ne10 = true; - if (ne10 && c5 && f5() === 60) - for (; R10 = Vc4(); ) - A9 = xt8(A9, R10), ie6 = true; - if (ie6) - for (; te9 = of2(le10, m5, b5); ) - te9.kind === 126 && (le10 = true), A9 = xt8(A9, te9); - return A9 && Ft7(A9, w9); - } - function Hc3() { - let c5; - if (f5() === 134) { - let m5 = T5(); - O7(); - let b5 = M9(ue7(134), m5); - c5 = Ft7([b5], m5); - } - return c5; - } - function yh2() { - let c5 = T5(), m5 = x9(); - if (f5() === 27) - return O7(), Ae7(M9(y5.createSemicolonClassElement(), c5), m5); - let b5 = Xn6(true, true, true); - if (f5() === 126 && Te10(mf)) - return af2(c5, m5, b5); - if (_a3(139)) - return da4(c5, m5, b5, 177, 0); - if (_a3(153)) - return da4(c5, m5, b5, 178, 0); - if (f5() === 137 || f5() === 11) { - let w9 = fh(c5, m5, b5); - if (w9) - return w9; - } - if (Gu4()) - return ua5(c5, m5, b5); - if (kt8(f5()) || f5() === 11 || f5() === 9 || f5() === 42 || f5() === 23) - if (mt7(b5, qc3)) { - for (let A9 of b5) - A9.flags |= 33554432; - return ke9(33554432, () => nf2(c5, m5, b5)); - } else - return nf2(c5, m5, b5); - if (b5) { - let w9 = Jr6(80, true, U8.Declaration_expected); - return rf2(c5, m5, b5, w9, void 0); - } - return N6.fail("Should not have attempted to parse class member declaration."); - } - function gh() { - let c5 = T5(), m5 = x9(), b5 = Xn6(true); - if (f5() === 86) - return Gc4(c5, m5, b5, 231); - let w9 = Jr6(282, true, U8.Expression_expected); - return wd(w9, c5), w9.modifiers = b5, w9; - } - function sf() { - return Gc4(T5(), x9(), void 0, 231); - } - function _f(c5, m5, b5) { - return Gc4(c5, m5, b5, 263); - } - function Gc4(c5, m5, b5, w9) { - let A9 = Sr7(); - H10(86); - let R10 = Xc3(), te9 = Vr6(); - mt7(b5, qx) && ee10(true); - let le10 = cf(), ne10; - H10(19) ? (ne10 = Sh(), H10(20)) : ne10 = pi8(), ee10(A9); - let ie6 = w9 === 263 ? y5.createClassDeclaration(b5, R10, te9, le10, ne10) : y5.createClassExpression(b5, R10, te9, le10, ne10); - return Ae7(M9(ie6, c5), m5); - } - function Xc3() { - return An4() && !bh() ? Ni7(An4()) : void 0; - } - function bh() { - return f5() === 119 && Te10(Cu4); - } - function cf() { - if (lf()) - return zr6(22, vh); - } - function vh() { - let c5 = T5(), m5 = f5(); - N6.assert(m5 === 96 || m5 === 119), O7(); - let b5 = Wr6(7, Th); - return M9(y5.createHeritageClause(m5, b5), c5); - } - function Th() { - let c5 = T5(), m5 = Is6(); - if (m5.kind === 233) - return m5; - let b5 = qs6(); - return M9(y5.createExpressionWithTypeArguments(m5, b5), c5); - } - function qs6() { - return f5() === 30 ? ca5(20, gt7, 30, 32) : void 0; - } - function lf() { - return f5() === 96 || f5() === 119; - } - function Sh() { - return zr6(5, yh2); - } - function xh(c5, m5, b5) { - H10(120); - let w9 = Lt9(), A9 = Vr6(), R10 = cf(), te9 = Yu4(), le10 = y5.createInterfaceDeclaration(b5, w9, A9, R10, te9); - return Ae7(M9(le10, c5), m5); - } - function uf2(c5, m5, b5) { - H10(156), t12.hasPrecedingLineBreak() && Je10(U8.Line_break_not_permitted_here); - let w9 = Lt9(), A9 = Vr6(); - H10(64); - let R10 = f5() === 141 && ft6(np2) || gt7(); - xr5(); - let te9 = y5.createTypeAliasDeclaration(b5, w9, A9, R10); - return Ae7(M9(te9, c5), m5); - } - function pf() { - let c5 = T5(), m5 = x9(), b5 = Ua4(), w9 = Le7(ji5); - return Ae7(M9(y5.createEnumMember(b5, w9), c5), m5); - } - function wh(c5, m5, b5) { - H10(94); - let w9 = Lt9(), A9; - H10(19) ? (A9 = ia5(() => Wr6(6, pf)), H10(20)) : A9 = pi8(); - let R10 = y5.createEnumDeclaration(b5, w9, A9); - return Ae7(M9(R10, c5), m5); - } - function zs6() { - let c5 = T5(), m5; - return H10(19) ? (m5 = zr6(1, wr7), H10(20)) : m5 = pi8(), M9(y5.createModuleBlock(m5), c5); - } - function ff(c5, m5, b5, w9) { - let A9 = w9 & 32, R10 = Lt9(), te9 = je11(25) ? ff(T5(), false, void 0, 8 | A9) : zs6(), le10 = y5.createModuleDeclaration(b5, R10, te9, w9); - return Ae7(M9(le10, c5), m5); - } - function $c4(c5, m5, b5) { - let w9 = 0, A9; - f5() === 162 ? (A9 = Lt9(), w9 |= 2048) : (A9 = fi7(), A9.text = sa4(A9.text)); - let R10; - f5() === 19 ? R10 = zs6() : xr5(); - let te9 = y5.createModuleDeclaration(b5, A9, R10, w9); - return Ae7(M9(te9, c5), m5); - } - function Ch(c5, m5, b5) { - let w9 = 0; - if (f5() === 162) - return $c4(c5, m5, b5); - if (je11(145)) - w9 |= 32; - else if (H10(144), f5() === 11) - return $c4(c5, m5, b5); - return ff(c5, m5, b5, w9); - } - function Eh() { - return f5() === 149 && Te10(df); - } - function df() { - return O7() === 21; - } - function mf() { - return O7() === 19; - } - function Ah() { - return O7() === 44; - } - function Qc2(c5, m5, b5) { - H10(130), H10(145); - let w9 = Lt9(); - xr5(); - let A9 = y5.createNamespaceExportDeclaration(w9); - return A9.modifiers = b5, Ae7(M9(A9, c5), m5); - } - function kh(c5, m5, b5) { - H10(102); - let w9 = t12.getTokenFullStart(), A9; - Et9() && (A9 = Lt9()); - let R10 = false; - if (f5() !== 161 && (A9 == null ? void 0 : A9.escapedText) === "type" && (Et9() || Ph()) && (R10 = true, A9 = Et9() ? Lt9() : void 0), A9 && !Ih()) - return Nh(c5, m5, b5, A9, R10); - let te9; - (A9 || f5() === 42 || f5() === 19) && (te9 = Oh(A9, w9, R10), H10(161)); - let le10 = Ws6(), ne10; - f5() === 132 && !t12.hasPrecedingLineBreak() && (ne10 = ma3()), xr5(); - let ie6 = y5.createImportDeclaration(b5, te9, le10, ne10); - return Ae7(M9(ie6, c5), m5); - } - function Dh() { - let c5 = T5(), m5 = kt8(f5()) ? Yt6() : za4(11); - H10(59); - let b5 = tr8(true); - return M9(y5.createAssertEntry(m5, b5), c5); - } - function ma3(c5) { - let m5 = T5(); - c5 || H10(132); - let b5 = t12.getTokenStart(); - if (H10(19)) { - let w9 = t12.hasPrecedingLineBreak(), A9 = Wr6(24, Dh, true); - if (!H10(20)) { - let R10 = wi7(ct7); - R10 && R10.code === U8._0_expected.code && nl2(R10, Ao2(sr7, b5, 1, U8.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}")); - } - return M9(y5.createAssertClause(A9, w9), m5); - } else { - let w9 = Ft7([], T5(), void 0, false); - return M9(y5.createAssertClause(w9, false), m5); - } - } - function Ph() { - return f5() === 42 || f5() === 19; - } - function Ih() { - return f5() === 28 || f5() === 161; - } - function Nh(c5, m5, b5, w9, A9) { - H10(64); - let R10 = ha5(); - xr5(); - let te9 = y5.createImportEqualsDeclaration(b5, A9, w9, R10); - return Ae7(M9(te9, c5), m5); - } - function Oh(c5, m5, b5) { - let w9; - return (!c5 || je11(28)) && (w9 = f5() === 42 ? Lh() : Ha3(275)), M9(y5.createImportClause(b5, c5, w9), m5); - } - function ha5() { - return Eh() ? Mh() : la5(false); - } - function Mh() { - let c5 = T5(); - H10(149), H10(21); - let m5 = Ws6(); - return H10(22), M9(y5.createExternalModuleReference(m5), c5); - } - function Ws6() { - if (f5() === 11) { - let c5 = fi7(); - return c5.text = sa4(c5.text), c5; - } else - return Jt6(); - } - function Lh() { - let c5 = T5(); - H10(42), H10(130); - let m5 = Lt9(); - return M9(y5.createNamespaceImport(m5), c5); - } - function Ha3(c5) { - let m5 = T5(), b5 = c5 === 275 ? y5.createNamedImports(ca5(23, Rh, 19, 20)) : y5.createNamedExports(ca5(23, Jh, 19, 20)); - return M9(b5, m5); - } - function Jh() { - let c5 = x9(); - return Ae7(hf(281), c5); - } - function Rh() { - return hf(276); - } - function hf(c5) { - let m5 = T5(), b5 = Si6(f5()) && !Et9(), w9 = t12.getTokenStart(), A9 = t12.getTokenEnd(), R10 = false, te9, le10 = true, ne10 = Yt6(); - if (ne10.escapedText === "type") - if (f5() === 130) { - let He9 = Yt6(); - if (f5() === 130) { - let Be9 = Yt6(); - kt8(f5()) ? (R10 = true, te9 = He9, ne10 = ve9(), le10 = false) : (te9 = ne10, ne10 = Be9, le10 = false); - } else - kt8(f5()) ? (te9 = ne10, le10 = false, ne10 = ve9()) : (R10 = true, ne10 = He9); - } else - kt8(f5()) && (R10 = true, ne10 = ve9()); - le10 && f5() === 130 && (te9 = ne10, H10(130), ne10 = ve9()), c5 === 276 && b5 && Mt8(w9, A9, U8.Identifier_expected); - let ie6 = c5 === 276 ? y5.createImportSpecifier(R10, te9, ne10) : y5.createExportSpecifier(R10, te9, ne10); - return M9(ie6, m5); - function ve9() { - return b5 = Si6(f5()) && !Et9(), w9 = t12.getTokenStart(), A9 = t12.getTokenEnd(), Yt6(); - } - } - function jh(c5) { - return M9(y5.createNamespaceExport(Yt6()), c5); - } - function Fh(c5, m5, b5) { - let w9 = Sr7(); - ee10(true); - let A9, R10, te9, le10 = je11(156), ne10 = T5(); - je11(42) ? (je11(130) && (A9 = jh(ne10)), H10(161), R10 = Ws6()) : (A9 = Ha3(279), (f5() === 161 || f5() === 11 && !t12.hasPrecedingLineBreak()) && (H10(161), R10 = Ws6())), R10 && f5() === 132 && !t12.hasPrecedingLineBreak() && (te9 = ma3()), xr5(), ee10(w9); - let ie6 = y5.createExportDeclaration(b5, le10, A9, R10, te9); - return Ae7(M9(ie6, c5), m5); - } - function Bh(c5, m5, b5) { - let w9 = Sr7(); - ee10(true); - let A9; - je11(64) ? A9 = true : H10(90); - let R10 = tr8(true); - xr5(), ee10(w9); - let te9 = y5.createExportAssignment(b5, A9, R10); - return Ae7(M9(te9, c5), m5); - } - let ya2; - ((c5) => { - c5[c5.SourceElements = 0] = "SourceElements", c5[c5.BlockStatements = 1] = "BlockStatements", c5[c5.SwitchClauses = 2] = "SwitchClauses", c5[c5.SwitchClauseStatements = 3] = "SwitchClauseStatements", c5[c5.TypeMembers = 4] = "TypeMembers", c5[c5.ClassMembers = 5] = "ClassMembers", c5[c5.EnumMembers = 6] = "EnumMembers", c5[c5.HeritageClauseElement = 7] = "HeritageClauseElement", c5[c5.VariableDeclarations = 8] = "VariableDeclarations", c5[c5.ObjectBindingElements = 9] = "ObjectBindingElements", c5[c5.ArrayBindingElements = 10] = "ArrayBindingElements", c5[c5.ArgumentExpressions = 11] = "ArgumentExpressions", c5[c5.ObjectLiteralMembers = 12] = "ObjectLiteralMembers", c5[c5.JsxAttributes = 13] = "JsxAttributes", c5[c5.JsxChildren = 14] = "JsxChildren", c5[c5.ArrayLiteralMembers = 15] = "ArrayLiteralMembers", c5[c5.Parameters = 16] = "Parameters", c5[c5.JSDocParameters = 17] = "JSDocParameters", c5[c5.RestProperties = 18] = "RestProperties", c5[c5.TypeParameters = 19] = "TypeParameters", c5[c5.TypeArguments = 20] = "TypeArguments", c5[c5.TupleElementTypes = 21] = "TupleElementTypes", c5[c5.HeritageClauses = 22] = "HeritageClauses", c5[c5.ImportOrExportSpecifiers = 23] = "ImportOrExportSpecifiers", c5[c5.AssertEntries = 24] = "AssertEntries", c5[c5.JSDocComment = 25] = "JSDocComment", c5[c5.Count = 26] = "Count"; - })(ya2 || (ya2 = {})); - let yf; - ((c5) => { - c5[c5.False = 0] = "False", c5[c5.True = 1] = "True", c5[c5.Unknown = 2] = "Unknown"; - })(yf || (yf = {})); - let gf; - ((c5) => { - function m5(ie6, ve9, He9) { - rn7("file.js", ie6, 99, void 0, 1), t12.setText(ie6, ve9, He9), ht4 = t12.scan(); - let Be9 = b5(), Ue8 = ge6("file.js", 99, 1, false, [], ue7(1), 0, Rn5), Rt8 = $a3(ct7, Ue8); - return Ut5 && (Ue8.jsDocDiagnostics = $a3(Ut5, Ue8)), nn7(), Be9 ? { jsDocTypeExpression: Be9, diagnostics: Rt8 } : void 0; - } - c5.parseJSDocTypeExpressionForTests = m5; - function b5(ie6) { - let ve9 = T5(), He9 = (ie6 ? je11 : H10)(19), Be9 = ke9(16777216, xs5); - (!ie6 || He9) && Ba3(20); - let Ue8 = y5.createJSDocTypeExpression(Be9); - return oe8(Ue8), M9(Ue8, ve9); - } - c5.parseJSDocTypeExpression = b5; - function w9() { - let ie6 = T5(), ve9 = je11(19), He9 = T5(), Be9 = la5(false); - for (; f5() === 81; ) - Ye7(), fe8(), Be9 = M9(y5.createJSDocMemberName(Be9, Lt9()), He9); - ve9 && Ba3(20); - let Ue8 = y5.createJSDocNameReference(Be9); - return oe8(Ue8), M9(Ue8, ie6); - } - c5.parseJSDocNameReference = w9; - function A9(ie6, ve9, He9) { - rn7("", ie6, 99, void 0, 1); - let Be9 = ke9(16777216, () => ne10(ve9, He9)), Rt8 = $a3(ct7, { languageVariant: 0, text: ie6 }); - return nn7(), Be9 ? { jsDoc: Be9, diagnostics: Rt8 } : void 0; - } - c5.parseIsolatedJSDocComment = A9; - function R10(ie6, ve9, He9) { - let Be9 = ht4, Ue8 = ct7.length, Rt8 = Qt5, Gr6 = ke9(16777216, () => ne10(ve9, He9)); - return Xi4(Gr6, ie6), at7 & 524288 && (Ut5 || (Ut5 = []), Ut5.push(...ct7)), ht4 = Be9, ct7.length = Ue8, Qt5 = Rt8, Gr6; - } - c5.parseJSDocComment = R10; - let te9; - ((ie6) => { - ie6[ie6.BeginningOfLine = 0] = "BeginningOfLine", ie6[ie6.SawAsterisk = 1] = "SawAsterisk", ie6[ie6.SavingComments = 2] = "SavingComments", ie6[ie6.SavingBackticks = 3] = "SavingBackticks"; - })(te9 || (te9 = {})); - let le10; - ((ie6) => { - ie6[ie6.Property = 1] = "Property", ie6[ie6.Parameter = 2] = "Parameter", ie6[ie6.CallbackParameter = 4] = "CallbackParameter"; - })(le10 || (le10 = {})); - function ne10(ie6 = 0, ve9) { - let He9 = pt5; - pt5 |= 1 << 25; - let Be9 = St8, Ue8 = ve9 === void 0 ? Be9.length : ie6 + ve9; - if (ve9 = Ue8 - ie6, N6.assert(ie6 >= 0), N6.assert(ie6 <= Ue8), N6.assert(Ue8 <= Be9.length), !z8(Be9, ie6)) - return; - let Rt8, Gr6, di7, mi6, hi8, Ui7 = [], ga3 = [], ba3 = t12.scanRange(ie6 + 3, ve9 - 5, Uh); - return pt5 = He9, ba3; - function Uh() { - let F9 = 1, re9, Z11 = ie6 - (Be9.lastIndexOf(` -`, ie6) + 1) + 4; - function se7(ze11) { - re9 || (re9 = Z11), Ui7.push(ze11), Z11 += ze11.length; - } - for (fe8(); xo3(5); ) - ; - xo3(4) && (F9 = 0, Z11 = 0); - e: - for (; ; ) { - switch (f5()) { - case 60: - qh(Ui7), hi8 || (hi8 = T5()), u(To2(Z11)), F9 = 0, re9 = void 0; - break; - case 4: - Ui7.push(t12.getTokenText()), F9 = 0, Z11 = 0; - break; - case 42: - let ze11 = t12.getTokenText(); - F9 === 1 ? (F9 = 2, se7(ze11)) : (N6.assert(F9 === 0), F9 = 1, Z11 += ze11.length); - break; - case 5: - N6.assert(F9 !== 2, "whitespace shouldn't come from the scanner while saving top-level comment text"); - let At8 = t12.getTokenText(); - re9 !== void 0 && Z11 + At8.length > re9 && Ui7.push(At8.slice(re9 - Z11)), Z11 += At8.length; - break; - case 1: - break e; - case 82: - F9 = 2, se7(t12.getTokenValue()); - break; - case 19: - F9 = 2; - let Pn5 = t12.getTokenFullStart(), sn7 = t12.getTokenEnd() - 1, Ar8 = vf(sn7); - if (Ar8) { - mi6 || bf(Ui7), ga3.push(M9(y5.createJSDocText(Ui7.join("")), mi6 ?? ie6, Pn5)), ga3.push(Ar8), Ui7 = [], mi6 = t12.getTokenEnd(); - break; - } - default: - F9 = 2, se7(t12.getTokenText()); - break; - } - F9 === 2 ? be11(false) : fe8(); - } - let ce9 = n_(Ui7.join("")); - ga3.length && ce9.length && ga3.push(M9(y5.createJSDocText(ce9), mi6 ?? ie6, hi8)), ga3.length && Rt8 && N6.assertIsDefined(hi8, "having parsed tags implies that the end of the comment span should be set"); - let Me9 = Rt8 && Ft7(Rt8, Gr6, di7); - return M9(y5.createJSDocComment(ga3.length ? Ft7(ga3, ie6, hi8) : ce9.length ? ce9 : void 0, Me9), ie6, Ue8); - } - function bf(F9) { - for (; F9.length && (F9[0] === ` -` || F9[0] === "\r"); ) - F9.shift(); - } - function qh(F9) { - for (; F9.length; ) { - let re9 = n_(F9[F9.length - 1]); - if (re9 === "") - F9.pop(); - else if (re9.length < F9[F9.length - 1].length) { - F9[F9.length - 1] = re9; - break; - } else - break; - } - } - function Oe11() { - for (; ; ) { - if (fe8(), f5() === 1) - return true; - if (!(f5() === 5 || f5() === 4)) - return false; - } - } - function Xe9() { - if (!((f5() === 5 || f5() === 4) && Te10(Oe11))) - for (; f5() === 5 || f5() === 4; ) - fe8(); - } - function Cr6() { - if ((f5() === 5 || f5() === 4) && Te10(Oe11)) - return ""; - let F9 = t12.hasPrecedingLineBreak(), re9 = false, Z11 = ""; - for (; F9 && f5() === 42 || f5() === 5 || f5() === 4; ) - Z11 += t12.getTokenText(), f5() === 4 ? (F9 = true, re9 = true, Z11 = "") : f5() === 42 && (F9 = false), fe8(); - return re9 ? Z11 : ""; - } - function To2(F9) { - N6.assert(f5() === 60); - let re9 = t12.getTokenStart(); - fe8(); - let Z11 = Ga4(void 0), se7 = Cr6(), ce9; - switch (Z11.escapedText) { - case "author": - ce9 = i5(re9, Z11, F9, se7); - break; - case "implements": - ce9 = o52(re9, Z11, F9, se7); - break; - case "augments": - case "extends": - ce9 = s52(re9, Z11, F9, se7); - break; - case "class": - case "constructor": - ce9 = So3(re9, y5.createJSDocClassTag, Z11, F9, se7); - break; - case "public": - ce9 = So3(re9, y5.createJSDocPublicTag, Z11, F9, se7); - break; - case "private": - ce9 = So3(re9, y5.createJSDocPrivateTag, Z11, F9, se7); - break; - case "protected": - ce9 = So3(re9, y5.createJSDocProtectedTag, Z11, F9, se7); - break; - case "readonly": - ce9 = So3(re9, y5.createJSDocReadonlyTag, Z11, F9, se7); - break; - case "override": - ce9 = So3(re9, y5.createJSDocOverrideTag, Z11, F9, se7); - break; - case "deprecated": - qn5 = true, ce9 = So3(re9, y5.createJSDocDeprecatedTag, Z11, F9, se7); - break; - case "this": - ce9 = l5(re9, Z11, F9, se7); - break; - case "enum": - ce9 = u5(re9, Z11, F9, se7); - break; - case "arg": - case "argument": - case "param": - return de7(re9, Z11, 2, F9); - case "return": - case "returns": - ce9 = Er6(re9, Z11, F9, se7); - break; - case "template": - ce9 = Nb(re9, Z11, F9, se7); - break; - case "type": - ce9 = $n5(re9, Z11, F9, se7); - break; - case "typedef": - ce9 = p52(re9, Z11, F9, se7); - break; - case "callback": - ce9 = d52(re9, Z11, F9, se7); - break; - case "overload": - ce9 = m52(re9, Z11, F9, se7); - break; - case "satisfies": - ce9 = _52(re9, Z11, F9, se7); - break; - case "see": - ce9 = yi7(re9, Z11, F9, se7); - break; - case "exception": - case "throws": - ce9 = Vs5(re9, Z11, F9, se7); - break; - default: - ce9 = s5(re9, Z11, F9, se7); - break; - } - return ce9; - } - function lr7(F9, re9, Z11, se7) { - return se7 || (Z11 += re9 - F9), on6(Z11, se7.slice(Z11)); - } - function on6(F9, re9) { - let Z11 = T5(), se7 = [], ce9 = [], Me9, ze11 = 0, At8; - function Pn5(Qn4) { - At8 || (At8 = F9), se7.push(Qn4), F9 += Qn4.length; - } - re9 !== void 0 && (re9 !== "" && Pn5(re9), ze11 = 1); - let sn7 = f5(); - e: - for (; ; ) { - switch (sn7) { - case 4: - ze11 = 0, se7.push(t12.getTokenText()), F9 = 0; - break; - case 60: - t12.resetTokenState(t12.getTokenEnd() - 1); - break e; - case 1: - break e; - case 5: - N6.assert(ze11 !== 2 && ze11 !== 3, "whitespace shouldn't come from the scanner while saving comment text"); - let Qn4 = t12.getTokenText(); - At8 !== void 0 && F9 + Qn4.length > At8 && (se7.push(Qn4.slice(At8 - F9)), ze11 = 2), F9 += Qn4.length; - break; - case 19: - ze11 = 2; - let Tf = t12.getTokenFullStart(), Hs5 = t12.getTokenEnd() - 1, Sf = vf(Hs5); - Sf ? (ce9.push(M9(y5.createJSDocText(se7.join("")), Me9 ?? Z11, Tf)), ce9.push(Sf), se7 = [], Me9 = t12.getTokenEnd()) : Pn5(t12.getTokenText()); - break; - case 62: - ze11 === 3 ? ze11 = 2 : ze11 = 3, Pn5(t12.getTokenText()); - break; - case 82: - ze11 !== 3 && (ze11 = 2), Pn5(t12.getTokenValue()); - break; - case 42: - if (ze11 === 0) { - ze11 = 1, F9 += 1; - break; - } - default: - ze11 !== 3 && (ze11 = 2), Pn5(t12.getTokenText()); - break; - } - ze11 === 2 || ze11 === 3 ? sn7 = be11(ze11 === 3) : sn7 = fe8(); - } - bf(se7); - let Ar8 = n_(se7.join("")); - if (ce9.length) - return Ar8.length && ce9.push(M9(y5.createJSDocText(Ar8), Me9 ?? Z11)), Ft7(ce9, Z11, t12.getTokenEnd()); - if (Ar8.length) - return Ar8; - } - function vf(F9) { - let re9 = ft6(n); - if (!re9) - return; - fe8(), Xe9(); - let Z11 = T5(), se7 = kt8(f5()) ? la5(true) : void 0; - if (se7) - for (; f5() === 81; ) - Ye7(), fe8(), se7 = M9(y5.createJSDocMemberName(se7, Lt9()), Z11); - let ce9 = []; - for (; f5() !== 20 && f5() !== 4 && f5() !== 1; ) - ce9.push(t12.getTokenText()), fe8(); - let Me9 = re9 === "link" ? y5.createJSDocLink : re9 === "linkcode" ? y5.createJSDocLinkCode : y5.createJSDocLinkPlain; - return M9(Me9(se7, ce9.join("")), F9, t12.getTokenEnd()); - } - function n() { - if (Cr6(), f5() === 19 && fe8() === 60 && kt8(fe8())) { - let F9 = t12.getTokenValue(); - if (o5(F9)) - return F9; - } - } - function o5(F9) { - return F9 === "link" || F9 === "linkcode" || F9 === "linkplain"; - } - function s5(F9, re9, Z11, se7) { - return M9(y5.createJSDocUnknownTag(re9, lr7(F9, T5(), Z11, se7)), F9); - } - function u(F9) { - F9 && (Rt8 ? Rt8.push(F9) : (Rt8 = [F9], Gr6 = F9.pos), di7 = F9.end); - } - function g5() { - return Cr6(), f5() === 19 ? b5() : void 0; - } - function I7() { - let F9 = xo3(23); - F9 && Xe9(); - let re9 = xo3(62), Z11 = T52(); - return re9 && e12(62), F9 && (Xe9(), dt7(64) && Jt6(), H10(24)), { name: Z11, isBracketed: F9 }; - } - function W7(F9) { - switch (F9.kind) { - case 151: - return true; - case 188: - return W7(F9.elementType); - default: - return R_(F9) && Ee6(F9.typeName) && F9.typeName.escapedText === "Object" && !F9.typeArguments; - } - } - function de7(F9, re9, Z11, se7) { - let ce9 = g5(), Me9 = !ce9; - Cr6(); - let { name: ze11, isBracketed: At8 } = I7(), Pn5 = Cr6(); - Me9 && !Te10(n) && (ce9 = g5()); - let sn7 = lr7(F9, T5(), se7, Pn5), Ar8 = We8(ce9, ze11, Z11, se7); - Ar8 && (ce9 = Ar8, Me9 = true); - let Qn4 = Z11 === 1 ? y5.createJSDocPropertyTag(re9, ze11, At8, ce9, Me9, sn7) : y5.createJSDocParameterTag(re9, ze11, At8, ce9, Me9, sn7); - return M9(Qn4, F9); - } - function We8(F9, re9, Z11, se7) { - if (F9 && W7(F9.type)) { - let ce9 = T5(), Me9, ze11; - for (; Me9 = ft6(() => Wh(Z11, se7, re9)); ) - Me9.kind === 348 || Me9.kind === 355 ? ze11 = xt8(ze11, Me9) : Me9.kind === 352 && Lr7(Me9.tagName, U8.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag); - if (ze11) { - let At8 = M9(y5.createJSDocTypeLiteral(ze11, F9.type.kind === 188), ce9); - return M9(y5.createJSDocTypeExpression(At8), ce9); - } - } - } - function Er6(F9, re9, Z11, se7) { - mt7(Rt8, R62) && Mt8(re9.pos, t12.getTokenStart(), U8._0_tag_already_specified, Vo3(re9.escapedText)); - let ce9 = g5(); - return M9(y5.createJSDocReturnTag(re9, ce9, lr7(F9, T5(), Z11, se7)), F9); - } - function $n5(F9, re9, Z11, se7) { - mt7(Rt8, lu3) && Mt8(re9.pos, t12.getTokenStart(), U8._0_tag_already_specified, Vo3(re9.escapedText)); - let ce9 = b5(true), Me9 = Z11 !== void 0 && se7 !== void 0 ? lr7(F9, T5(), Z11, se7) : void 0; - return M9(y5.createJSDocTypeTag(re9, ce9, Me9), F9); - } - function yi7(F9, re9, Z11, se7) { - let Me9 = f5() === 23 || Te10(() => fe8() === 60 && kt8(fe8()) && o5(t12.getTokenValue())) ? void 0 : w9(), ze11 = Z11 !== void 0 && se7 !== void 0 ? lr7(F9, T5(), Z11, se7) : void 0; - return M9(y5.createJSDocSeeTag(re9, Me9, ze11), F9); - } - function Vs5(F9, re9, Z11, se7) { - let ce9 = g5(), Me9 = lr7(F9, T5(), Z11, se7); - return M9(y5.createJSDocThrowsTag(re9, ce9, Me9), F9); - } - function i5(F9, re9, Z11, se7) { - let ce9 = T5(), Me9 = a5(), ze11 = t12.getTokenFullStart(), At8 = lr7(F9, ze11, Z11, se7); - At8 || (ze11 = t12.getTokenFullStart()); - let Pn5 = typeof At8 != "string" ? Ft7(y_([M9(Me9, ce9, ze11)], At8), ce9) : Me9.text + At8; - return M9(y5.createJSDocAuthorTag(re9, Pn5), F9); - } - function a5() { - let F9 = [], re9 = false, Z11 = t12.getToken(); - for (; Z11 !== 1 && Z11 !== 4; ) { - if (Z11 === 30) - re9 = true; - else { - if (Z11 === 60 && !re9) - break; - if (Z11 === 32 && re9) { - F9.push(t12.getTokenText()), t12.resetTokenState(t12.getTokenEnd()); - break; - } - } - F9.push(t12.getTokenText()), Z11 = fe8(); - } - return y5.createJSDocText(F9.join("")); - } - function o52(F9, re9, Z11, se7) { - let ce9 = Pb(); - return M9(y5.createJSDocImplementsTag(re9, ce9, lr7(F9, T5(), Z11, se7)), F9); - } - function s52(F9, re9, Z11, se7) { - let ce9 = Pb(); - return M9(y5.createJSDocAugmentsTag(re9, ce9, lr7(F9, T5(), Z11, se7)), F9); - } - function _52(F9, re9, Z11, se7) { - let ce9 = b5(false), Me9 = Z11 !== void 0 && se7 !== void 0 ? lr7(F9, T5(), Z11, se7) : void 0; - return M9(y5.createJSDocSatisfiesTag(re9, ce9, Me9), F9); - } - function Pb() { - let F9 = je11(19), re9 = T5(), Z11 = c52(); - t12.setInJSDocType(true); - let se7 = qs6(); - t12.setInJSDocType(false); - let ce9 = y5.createExpressionWithTypeArguments(Z11, se7), Me9 = M9(ce9, re9); - return F9 && H10(20), Me9; - } - function c52() { - let F9 = T5(), re9 = Ga4(); - for (; je11(25); ) { - let Z11 = Ga4(); - re9 = M9(ae8(re9, Z11), F9); - } - return re9; - } - function So3(F9, re9, Z11, se7, ce9) { - return M9(re9(Z11, lr7(F9, T5(), se7, ce9)), F9); - } - function l5(F9, re9, Z11, se7) { - let ce9 = b5(true); - return Xe9(), M9(y5.createJSDocThisTag(re9, ce9, lr7(F9, T5(), Z11, se7)), F9); - } - function u5(F9, re9, Z11, se7) { - let ce9 = b5(true); - return Xe9(), M9(y5.createJSDocEnumTag(re9, ce9, lr7(F9, T5(), Z11, se7)), F9); - } - function p52(F9, re9, Z11, se7) { - let ce9 = g5(); - Cr6(); - let Me9 = zh(); - Xe9(); - let ze11 = on6(Z11), At8; - if (!ce9 || W7(ce9.type)) { - let sn7, Ar8, Qn4, Tf = false; - for (; (sn7 = ft6(() => y52(Z11))) && sn7.kind !== 352; ) - if (Tf = true, sn7.kind === 351) - if (Ar8) { - let Hs5 = Je10(U8.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags); - Hs5 && nl2(Hs5, Ao2(sr7, 0, 0, U8.The_tag_was_first_specified_here)); - break; - } else - Ar8 = sn7; - else - Qn4 = xt8(Qn4, sn7); - if (Tf) { - let Hs5 = ce9 && ce9.type.kind === 188, Sf = y5.createJSDocTypeLiteral(Qn4, Hs5); - ce9 = Ar8 && Ar8.typeExpression && !W7(Ar8.typeExpression.type) ? Ar8.typeExpression : M9(Sf, F9), At8 = ce9.end; - } - } - At8 = At8 || ze11 !== void 0 ? T5() : (Me9 ?? ce9 ?? re9).end, ze11 || (ze11 = lr7(F9, At8, Z11, se7)); - let Pn5 = y5.createJSDocTypedefTag(re9, ce9, Me9, ze11); - return M9(Pn5, F9, At8); - } - function zh(F9) { - let re9 = t12.getTokenStart(); - if (!kt8(f5())) - return; - let Z11 = Ga4(); - if (je11(25)) { - let se7 = zh(true), ce9 = y5.createModuleDeclaration(void 0, Z11, se7, F9 ? 8 : void 0); - return M9(ce9, re9); - } - return F9 && (Z11.flags |= 4096), Z11; - } - function f52(F9) { - let re9 = T5(), Z11, se7; - for (; Z11 = ft6(() => Wh(4, F9)); ) { - if (Z11.kind === 352) { - Lr7(Z11.tagName, U8.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag); - break; - } - se7 = xt8(se7, Z11); - } - return Ft7(se7 || [], re9); - } - function Ib(F9, re9) { - let Z11 = f52(re9), se7 = ft6(() => { - if (xo3(60)) { - let ce9 = To2(re9); - if (ce9 && ce9.kind === 349) - return ce9; - } - }); - return M9(y5.createJSDocSignature(void 0, Z11, se7), F9); - } - function d52(F9, re9, Z11, se7) { - let ce9 = zh(); - Xe9(); - let Me9 = on6(Z11), ze11 = Ib(F9, Z11); - Me9 || (Me9 = lr7(F9, T5(), Z11, se7)); - let At8 = Me9 !== void 0 ? T5() : ze11.end; - return M9(y5.createJSDocCallbackTag(re9, ze11, ce9, Me9), F9, At8); - } - function m52(F9, re9, Z11, se7) { - Xe9(); - let ce9 = on6(Z11), Me9 = Ib(F9, Z11); - ce9 || (ce9 = lr7(F9, T5(), Z11, se7)); - let ze11 = ce9 !== void 0 ? T5() : Me9.end; - return M9(y5.createJSDocOverloadTag(re9, Me9, ce9), F9, ze11); - } - function h52(F9, re9) { - for (; !Ee6(F9) || !Ee6(re9); ) - if (!Ee6(F9) && !Ee6(re9) && F9.right.escapedText === re9.right.escapedText) - F9 = F9.left, re9 = re9.left; - else - return false; - return F9.escapedText === re9.escapedText; - } - function y52(F9) { - return Wh(1, F9); - } - function Wh(F9, re9, Z11) { - let se7 = true, ce9 = false; - for (; ; ) - switch (fe8()) { - case 60: - if (se7) { - let Me9 = g52(F9, re9); - return Me9 && (Me9.kind === 348 || Me9.kind === 355) && Z11 && (Ee6(Me9.name) || !h52(Z11, Me9.name.left)) ? false : Me9; - } - ce9 = false; - break; - case 4: - se7 = true, ce9 = false; - break; - case 42: - ce9 && (se7 = false), ce9 = true; - break; - case 80: - se7 = false; - break; - case 1: - return false; - } - } - function g52(F9, re9) { - N6.assert(f5() === 60); - let Z11 = t12.getTokenFullStart(); - fe8(); - let se7 = Ga4(), ce9 = Cr6(), Me9; - switch (se7.escapedText) { - case "type": - return F9 === 1 && $n5(Z11, se7); - case "prop": - case "property": - Me9 = 1; - break; - case "arg": - case "argument": - case "param": - Me9 = 6; - break; - case "template": - return Nb(Z11, se7, re9, ce9); - default: - return false; - } - return F9 & Me9 ? de7(Z11, se7, F9, re9) : false; - } - function b52() { - let F9 = T5(), re9 = xo3(23); - re9 && Xe9(); - let Z11 = Ga4(U8.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces), se7; - if (re9 && (Xe9(), H10(64), se7 = ke9(16777216, xs5), H10(24)), !zi6(Z11)) - return M9(y5.createTypeParameterDeclaration(void 0, Z11, void 0, se7), F9); - } - function v52() { - let F9 = T5(), re9 = []; - do { - Xe9(); - let Z11 = b52(); - Z11 !== void 0 && re9.push(Z11), Cr6(); - } while (xo3(28)); - return Ft7(re9, F9); - } - function Nb(F9, re9, Z11, se7) { - let ce9 = f5() === 19 ? b5() : void 0, Me9 = v52(); - return M9(y5.createJSDocTemplateTag(re9, ce9, Me9, lr7(F9, T5(), Z11, se7)), F9); - } - function xo3(F9) { - return f5() === F9 ? (fe8(), true) : false; - } - function T52() { - let F9 = Ga4(); - for (je11(23) && H10(24); je11(25); ) { - let re9 = Ga4(); - je11(23) && H10(24), F9 = o12(F9, re9); - } - return F9; - } - function Ga4(F9) { - if (!kt8(f5())) - return Jr6(80, !F9, F9 || U8.Identifier_expected); - Or5++; - let re9 = t12.getTokenStart(), Z11 = t12.getTokenEnd(), se7 = f5(), ce9 = sa4(t12.getTokenValue()), Me9 = M9(G10(ce9, se7), re9, Z11); - return fe8(), Me9; - } - } - })(gf = e10.JSDocParser || (e10.JSDocParser = {})); - })(Zn6 || (Zn6 = {})), ((e10) => { - function t12(k7, L7, G10, K7) { - if (K7 = K7 || N6.shouldAssert(2), y5(k7, L7, G10, K7), C42(G10)) - return k7; - if (k7.statements.length === 0) - return Zn6.parseSourceFile(k7.fileName, L7, k7.languageVersion, void 0, true, k7.scriptKind, k7.setExternalModuleIndicator); - let ue7 = k7; - N6.assert(!ue7.hasBeenIncrementallyParsed), ue7.hasBeenIncrementallyParsed = true, Zn6.fixupParentReferences(ue7); - let Y10 = k7.text, B9 = C10(k7), ae8 = l(k7, G10); - y5(k7, L7, ae8, K7), N6.assert(ae8.span.start <= G10.span.start), N6.assert(Kt6(ae8.span) === Kt6(G10.span)), N6.assert(Kt6(Qs6(ae8)) === Kt6(Qs6(G10))); - let Ce10 = Qs6(ae8).length - ae8.span.length; - h5(ue7, ae8.span.start, Kt6(ae8.span), Kt6(Qs6(ae8)), Ce10, Y10, L7, K7); - let Ze11 = Zn6.parseSourceFile(k7.fileName, L7, k7.languageVersion, B9, true, k7.scriptKind, k7.setExternalModuleIndicator); - return Ze11.commentDirectives = r9(k7.commentDirectives, Ze11.commentDirectives, ae8.span.start, Kt6(ae8.span), Ce10, Y10, L7, K7), Ze11.impliedNodeFormat = k7.impliedNodeFormat, Ze11; - } - e10.updateSourceFile = t12; - function r9(k7, L7, G10, K7, ue7, Y10, B9, ae8) { - if (!k7) - return L7; - let Ce10, Ze11 = false; - for (let rt8 of k7) { - let { range: it6, type: Ir7 } = rt8; - if (it6.end < G10) - Ce10 = xt8(Ce10, rt8); - else if (it6.pos > K7) { - qe8(); - let ar6 = { range: { pos: it6.pos + ue7, end: it6.end + ue7 }, type: Ir7 }; - Ce10 = xt8(Ce10, ar6), ae8 && N6.assert(Y10.substring(it6.pos, it6.end) === B9.substring(ar6.range.pos, ar6.range.end)); - } - } - return qe8(), Ce10; - function qe8() { - Ze11 || (Ze11 = true, Ce10 ? L7 && Ce10.push(...L7) : Ce10 = L7); - } - } - function a(k7, L7, G10, K7, ue7, Y10) { - L7 ? ae8(k7) : B9(k7); - return; - function B9(Ce10) { - let Ze11 = ""; - if (Y10 && _10(Ce10) && (Ze11 = K7.substring(Ce10.pos, Ce10.end)), Ce10._children && (Ce10._children = void 0), Ya4(Ce10, Ce10.pos + G10, Ce10.end + G10), Y10 && _10(Ce10) && N6.assert(Ze11 === ue7.substring(Ce10.pos, Ce10.end)), Bt7(Ce10, B9, ae8), Wi4(Ce10)) - for (let qe8 of Ce10.jsDoc) - B9(qe8); - d5(Ce10, Y10); - } - function ae8(Ce10) { - Ce10._children = void 0, Ya4(Ce10, Ce10.pos + G10, Ce10.end + G10); - for (let Ze11 of Ce10) - B9(Ze11); - } - } - function _10(k7) { - switch (k7.kind) { - case 11: - case 9: - case 80: - return true; - } - return false; - } - function p5(k7, L7, G10, K7, ue7) { - N6.assert(k7.end >= L7, "Adjusting an element that was entirely before the change range"), N6.assert(k7.pos <= G10, "Adjusting an element that was entirely after the change range"), N6.assert(k7.pos <= k7.end); - let Y10 = Math.min(k7.pos, K7), B9 = k7.end >= G10 ? k7.end + ue7 : Math.min(k7.end, K7); - N6.assert(Y10 <= B9), k7.parent && (N6.assertGreaterThanOrEqual(Y10, k7.parent.pos), N6.assertLessThanOrEqual(B9, k7.parent.end)), Ya4(k7, Y10, B9); - } - function d5(k7, L7) { - if (L7) { - let G10 = k7.pos, K7 = (ue7) => { - N6.assert(ue7.pos >= G10), G10 = ue7.end; - }; - if (Wi4(k7)) - for (let ue7 of k7.jsDoc) - K7(ue7); - Bt7(k7, K7), N6.assert(G10 <= k7.end); - } - } - function h5(k7, L7, G10, K7, ue7, Y10, B9, ae8) { - Ce10(k7); - return; - function Ce10(qe8) { - if (N6.assert(qe8.pos <= qe8.end), qe8.pos > G10) { - a(qe8, false, ue7, Y10, B9, ae8); - return; - } - let rt8 = qe8.end; - if (rt8 >= L7) { - if (qe8.intersectsChange = true, qe8._children = void 0, p5(qe8, L7, G10, K7, ue7), Bt7(qe8, Ce10, Ze11), Wi4(qe8)) - for (let it6 of qe8.jsDoc) - Ce10(it6); - d5(qe8, ae8); - return; - } - N6.assert(rt8 < L7); - } - function Ze11(qe8) { - if (N6.assert(qe8.pos <= qe8.end), qe8.pos > G10) { - a(qe8, true, ue7, Y10, B9, ae8); - return; - } - let rt8 = qe8.end; - if (rt8 >= L7) { - qe8.intersectsChange = true, qe8._children = void 0, p5(qe8, L7, G10, K7, ue7); - for (let it6 of qe8) - Ce10(it6); - return; - } - N6.assert(rt8 < L7); - } - } - function l(k7, L7) { - let K7 = L7.span.start; - for (let B9 = 0; K7 > 0 && B9 <= 1; B9++) { - let ae8 = v10(k7, K7); - N6.assert(ae8.pos <= K7); - let Ce10 = ae8.pos; - K7 = Math.max(0, Ce10 - 1); - } - let ue7 = Hi5(K7, Kt6(L7.span)), Y10 = L7.newLength + (L7.span.start - K7); - return Xd(ue7, Y10); - } - function v10(k7, L7) { - let G10 = k7, K7; - if (Bt7(k7, Y10), K7) { - let B9 = ue7(K7); - B9.pos > G10.pos && (G10 = B9); - } - return G10; - function ue7(B9) { - for (; ; ) { - let ae8 = DS(B9); - if (ae8) - B9 = ae8; - else - return B9; - } - } - function Y10(B9) { - if (!zi6(B9)) - if (B9.pos <= L7) { - if (B9.pos >= G10.pos && (G10 = B9), L7 < B9.end) - return Bt7(B9, Y10), true; - N6.assert(B9.end <= L7), K7 = B9; - } else - return N6.assert(B9.pos > L7), true; - } - } - function y5(k7, L7, G10, K7) { - let ue7 = k7.text; - if (G10 && (N6.assert(ue7.length - G10.span.length + G10.newLength === L7.length), K7 || N6.shouldAssert(3))) { - let Y10 = ue7.substr(0, G10.span.start), B9 = L7.substr(0, G10.span.start); - N6.assert(Y10 === B9); - let ae8 = ue7.substring(Kt6(G10.span), ue7.length), Ce10 = L7.substring(Kt6(Qs6(G10)), L7.length); - N6.assert(ae8 === Ce10); - } - } - function C10(k7) { - let L7 = k7.statements, G10 = 0; - N6.assert(G10 < L7.length); - let K7 = L7[G10], ue7 = -1; - return { currentNode(B9) { - return B9 !== ue7 && (K7 && K7.end === B9 && G10 < L7.length - 1 && (G10++, K7 = L7[G10]), (!K7 || K7.pos !== B9) && Y10(B9)), ue7 = B9, N6.assert(!K7 || K7.pos === B9), K7; - } }; - function Y10(B9) { - L7 = void 0, G10 = -1, K7 = void 0, Bt7(k7, ae8, Ce10); - return; - function ae8(Ze11) { - return B9 >= Ze11.pos && B9 < Ze11.end ? (Bt7(Ze11, ae8, Ce10), true) : false; - } - function Ce10(Ze11) { - if (B9 >= Ze11.pos && B9 < Ze11.end) - for (let qe8 = 0; qe8 < Ze11.length; qe8++) { - let rt8 = Ze11[qe8]; - if (rt8) { - if (rt8.pos === B9) - return L7 = Ze11, G10 = qe8, K7 = rt8, true; - if (rt8.pos < B9 && B9 < rt8.end) - return Bt7(rt8, ae8, Ce10), true; - } - } - return false; - } - } - } - e10.createSyntaxCursor = C10; - let S10; - ((k7) => { - k7[k7.Value = -1] = "Value"; - })(S10 || (S10 = {})); - })(Wf || (Wf = {})), Vf = /* @__PURE__ */ new Map(), Y82 = /^\/\/\/\s*<(\S+)\s.*?\/>/im, K8 = /^\/\/\/?\s*@([^\s:]+)(.*)\s*$/im; - } }), Vj = () => { - }, $V = Vt4({ "src/compiler/pnp.ts"() { - "use strict"; - r4(); - } }), Hj = () => { - }, Gj = () => { - }, Xj = () => { - }, $j = () => { - }, Qj = () => { - }, Yj = () => { - }, Kj = () => { - }, Zj = () => { - }, eF = () => { - }, tF = () => { - }, rF = () => { - }, nF = () => { - }, iF = () => { - }, aF = () => { - }, oF = () => { - }, sF = () => { - }, _F = () => { - }, cF = () => { - }, lF = () => { - }, uF = () => { - }, pF = () => { - }, fF = () => { - }, dF = () => { - }, mF = () => { - }, hF = () => { - }, yF = () => { - }, gF = () => { - }, bF = () => { - }, vF = () => { - }, TF = () => { - }, SF = () => { - }, xF = () => { - }, wF = () => { - }, CF = () => { - }, EF = () => { - }, AF = () => { - }, kF = () => { - }, DF = () => { - }, PF = () => { - }, IF = () => { - }, NF = () => { - }, OF = () => { - }, MF = () => { - }, LF = () => { - }, JF = () => { - }, RF = () => { - }, jF = () => { - }, Dr5 = Vt4({ "src/compiler/_namespaces/ts.ts"() { - "use strict"; - O52(), fE(), Hv(), dE(), mE(), yE(), vE(), $v(), SE(), r4(), jE(), GE(), Rk(), xL(), wL(), CL(), EL(), FL(), BL(), UL(), hR(), Dj(), Pj(), Wj(), Vj(), Hj(), Gj(), Xj(), Qj(), Yj(), Kj(), Zj(), eF(), tF(), rF(), nF(), iF(), aF(), oF(), sF(), _F(), cF(), lF(), uF(), pF(), fF(), dF(), mF(), hF(), yF(), gF(), bF(), vF(), TF(), SF(), xF(), wF(), CF(), EF(), AF(), kF(), DF(), PF(), IF(), NF(), OF(), MF(), LF(), JF(), RF(), jF(), $j(), Xv(); - } }), Z82 = () => { - }, FF = () => { - }, e7 = () => { - }, Fo3, e7 = () => { - Hv(), Fo3 = ns6(99, true); - }, BF = () => { - }, t72 = () => { - }, UF = () => { - }, qF = () => { - }, zF = () => { - }, WF = () => { - }, VF = () => { - }, HF = () => { - }, GF = () => { - }, XF = () => { - }, r7 = () => { - }, n7 = () => { - }, i7 = () => { - }, $F = () => { - }; - function a7(e10, t12, r9, a) { - let _10 = ql3(e10) ? new Nd(e10, t12, r9) : e10 === 80 ? new Od(80, t12, r9) : e10 === 81 ? new Md(81, t12, r9) : new W62(e10, t12, r9); - return _10.parent = a, _10.flags = a.flags & 101441536, _10; - } - function QF(e10, t12) { - if (!ql3(e10.kind)) - return $e9; - let r9 = []; - if (C32(e10)) - return e10.forEachChild((d5) => { - r9.push(d5); - }), r9; - Fo3.setText((t12 || e10.getSourceFile()).text); - let a = e10.pos, _10 = (d5) => { - hl2(r9, a, d5.pos, e10), r9.push(d5), a = d5.end; - }, p5 = (d5) => { - hl2(r9, a, d5.pos, e10), r9.push(YF(d5, e10)), a = d5.end; - }; - return yr5(e10.jsDoc, _10), a = e10.pos, e10.forEachChild(_10, p5), hl2(r9, a, e10.end, e10), Fo3.setText(void 0), r9; - } - function hl2(e10, t12, r9, a) { - for (Fo3.resetTokenState(t12); t12 < r9; ) { - let _10 = Fo3.scan(), p5 = Fo3.getTokenEnd(); - if (p5 <= r9) { - if (_10 === 80) { - if (cx(a)) - continue; - N6.fail(`Did not expect ${N6.formatSyntaxKind(a.kind)} to have an Identifier in its trivia`); - } - e10.push(a7(_10, t12, p5, a)); - } - if (t12 = p5, _10 === 1) - break; - } - } - function YF(e10, t12) { - let r9 = a7(358, e10.pos, e10.end, t12); - r9._children = []; - let a = e10.pos; - for (let _10 of e10) - hl2(r9._children, a, _10.pos, t12), r9._children.push(_10), a = _10.end; - return hl2(r9._children, a, e10.end, t12), r9; - } - function o7(e10) { - return Ul4(e10).some((t12) => t12.tagName.text === "inheritDoc" || t12.tagName.text === "inheritdoc"); - } - function kf(e10, t12) { - if (!e10) - return $e9; - let r9 = ts_JsDoc_exports.getJsDocTagsFromDeclarations(e10, t12); - if (t12 && (r9.length === 0 || e10.some(o7))) { - let a = /* @__PURE__ */ new Set(); - for (let _10 of e10) { - let p5 = s7(t12, _10, (d5) => { - var h5; - if (!a.has(d5)) - return a.add(d5), _10.kind === 177 || _10.kind === 178 ? d5.getContextualJsDocTags(_10, t12) : ((h5 = d5.declarations) == null ? void 0 : h5.length) === 1 ? d5.getJsDocTags() : void 0; - }); - p5 && (r9 = [...p5, ...r9]); - } - } - return r9; - } - function Kc3(e10, t12) { - if (!e10) - return $e9; - let r9 = ts_JsDoc_exports.getJsDocCommentsFromDeclarations(e10, t12); - if (t12 && (r9.length === 0 || e10.some(o7))) { - let a = /* @__PURE__ */ new Set(); - for (let _10 of e10) { - let p5 = s7(t12, _10, (d5) => { - if (!a.has(d5)) - return a.add(d5), _10.kind === 177 || _10.kind === 178 ? d5.getContextualDocumentationComment(_10, t12) : d5.getDocumentationComment(t12); - }); - p5 && (r9 = r9.length === 0 ? p5.slice() : p5.concat(lineBreakPart(), r9)); - } - } - return r9; - } - function s7(e10, t12, r9) { - var a; - let _10 = ((a = t12.parent) == null ? void 0 : a.kind) === 176 ? t12.parent.parent : t12.parent; - if (!_10) - return; - let p5 = gm(t12); - return ng(IT(_10), (d5) => { - let h5 = e10.getTypeAtLocation(d5), l = p5 && h5.symbol ? e10.getTypeOfSymbol(h5.symbol) : h5, v10 = e10.getPropertyOfType(l, t12.symbol.name); - return v10 ? r9(v10) : void 0; - }); - } - function KF() { - return { getNodeConstructor: () => Nd, getTokenConstructor: () => W62, getIdentifierConstructor: () => Od, getPrivateIdentifierConstructor: () => Md, getSourceFileConstructor: () => g7, getSymbolConstructor: () => m7, getTypeConstructor: () => h7, getSignatureConstructor: () => y7, getSourceMapSourceConstructor: () => b7 }; - } - function sl3(e10) { - let t12 = true; - for (let a in e10) - if (Qr6(e10, a) && !mv(a)) { - t12 = false; - break; - } - if (t12) - return e10; - let r9 = {}; - for (let a in e10) - if (Qr6(e10, a)) { - let _10 = mv(a) ? a : a.charAt(0).toLowerCase() + a.substr(1); - r9[_10] = e10[a]; - } - return r9; - } - function mv(e10) { - return !e10.length || e10.charAt(0) === e10.charAt(0).toLowerCase(); - } - function ZF(e10) { - return e10 ? Aa4(e10, (t12) => t12.text).join("") : ""; - } - function _7() { - return { target: 1, jsx: 1 }; - } - function c7() { - return ts_codefix_exports.getSupportedErrorCodes(); - } - function l7(e10, t12, r9) { - e10.version = r9, e10.scriptSnapshot = t12; - } - function z62(e10, t12, r9, a, _10, p5) { - let d5 = H82(e10, getSnapshotText(t12), r9, _10, p5); - return l7(d5, t12, a), d5; - } - function u7(e10, t12, r9, a, _10) { - if (a && r9 !== e10.version) { - let d5, h5 = a.span.start !== 0 ? e10.text.substr(0, a.span.start) : "", l = Kt6(a.span) !== e10.text.length ? e10.text.substr(Kt6(a.span)) : ""; - if (a.newLength === 0) - d5 = h5 && l ? h5 + l : h5 || l; - else { - let y5 = t12.getText(a.span.start, a.span.start + a.newLength); - d5 = h5 && l ? h5 + y5 + l : h5 ? h5 + y5 : y5 + l; - } - let v10 = q62(e10, d5, a, _10); - return l7(v10, t12, r9), v10.nameTable = void 0, e10 !== v10 && e10.scriptSnapshot && (e10.scriptSnapshot.dispose && e10.scriptSnapshot.dispose(), e10.scriptSnapshot = void 0), v10; - } - let p5 = { languageVersion: e10.languageVersion, impliedNodeFormat: e10.impliedNodeFormat, setExternalModuleIndicator: e10.setExternalModuleIndicator }; - return z62(e10.fileName, t12, p5, r9, true, e10.scriptKind); - } - function eB(e10, t12 = createDocumentRegistry(e10.useCaseSensitiveFileNames && e10.useCaseSensitiveFileNames(), e10.getCurrentDirectory()), r9) { - var a; - let _10; - r9 === void 0 ? _10 = 0 : typeof r9 == "boolean" ? _10 = r9 ? 2 : 0 : _10 = r9; - let p5 = new v7(e10), d5, h5, l = 0, v10 = e10.getCancellationToken ? new S7(e10.getCancellationToken()) : T7, y5 = e10.getCurrentDirectory(); - OS((a = e10.getLocalizedDiagnosticMessages) == null ? void 0 : a.bind(e10)); - function C10(j10) { - e10.log && e10.log(j10); - } - let S10 = C23(e10), k7 = Bd(S10), L7 = getSourceMapper({ useCaseSensitiveFileNames: () => S10, getCurrentDirectory: () => y5, getProgram: ue7, fileExists: rr7(e10, e10.fileExists), readFile: rr7(e10, e10.readFile), getDocumentPositionMapper: rr7(e10, e10.getDocumentPositionMapper), getSourceFileLike: rr7(e10, e10.getSourceFileLike), log: C10 }); - function G10(j10) { - let T5 = d5.getSourceFile(j10); - if (!T5) { - let x9 = new Error(`Could not find source file: '${j10}'.`); - throw x9.ProgramFiles = d5.getSourceFiles().map((f5) => f5.fileName), x9; - } - return T5; - } - function K7() { - var j10, T5, x9; - if (N6.assert(_10 !== 2), e10.getProjectVersion) { - let Ie8 = e10.getProjectVersion(); - if (Ie8) { - if (h5 === Ie8 && !((j10 = e10.hasChangedAutomaticTypeDirectiveNames) != null && j10.call(e10))) - return; - h5 = Ie8; - } - } - let f5 = e10.getTypeRootsVersion ? e10.getTypeRootsVersion() : 0; - l !== f5 && (C10("TypeRoots version has changed; provide new program"), d5 = void 0, l = f5); - let $10 = e10.getScriptFileNames().slice(), Q7 = e10.getCompilationSettings() || _7(), O7 = e10.hasInvalidatedResolutions || Xf, fe8 = rr7(e10, e10.hasInvalidatedLibResolutions) || Xf, be11 = rr7(e10, e10.hasChangedAutomaticTypeDirectiveNames), he9 = (T5 = e10.getProjectReferences) == null ? void 0 : T5.call(e10), Re10, we9 = { getSourceFile: H10, getSourceFileByPath: Fa2, getCancellationToken: () => v10, getCanonicalFileName: k7, useCaseSensitiveFileNames: () => S10, getNewLine: () => TS(Q7), getDefaultLibFileName: (Ie8) => e10.getDefaultLibFileName(Ie8), writeFile: Rn5, getCurrentDirectory: () => y5, fileExists: (Ie8) => e10.fileExists(Ie8), readFile: (Ie8) => e10.readFile && e10.readFile(Ie8), getSymlinkCache: rr7(e10, e10.getSymlinkCache), realpath: rr7(e10, e10.realpath), directoryExists: (Ie8) => vS(Ie8, e10), getDirectories: (Ie8) => e10.getDirectories ? e10.getDirectories(Ie8) : [], readDirectory: (Ie8, ot8, cr6, an6, Ba3) => (N6.checkDefined(e10.readDirectory, "'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"), e10.readDirectory(Ie8, ot8, cr6, an6, Ba3)), onReleaseOldSourceFile: Et9, onReleaseParsedCommandLine: An4, hasInvalidatedResolutions: O7, hasInvalidatedLibResolutions: fe8, hasChangedAutomaticTypeDirectiveNames: be11, trace: rr7(e10, e10.trace), resolveModuleNames: rr7(e10, e10.resolveModuleNames), getModuleResolutionCache: rr7(e10, e10.getModuleResolutionCache), createHash: rr7(e10, e10.createHash), resolveTypeReferenceDirectives: rr7(e10, e10.resolveTypeReferenceDirectives), resolveModuleNameLiterals: rr7(e10, e10.resolveModuleNameLiterals), resolveTypeReferenceDirectiveReferences: rr7(e10, e10.resolveTypeReferenceDirectiveReferences), resolveLibrary: rr7(e10, e10.resolveLibrary), useSourceOfProjectReferenceRedirect: rr7(e10, e10.useSourceOfProjectReferenceRedirect), getParsedCommandLine: Te10 }, et9 = we9.getSourceFile, { getSourceFileWithCache: Ye7 } = changeCompilerHostLikeToUseCache(we9, (Ie8) => xi8(Ie8, y5, k7), (...Ie8) => et9.call(we9, ...Ie8)); - we9.getSourceFile = Ye7, (x9 = e10.setCompilerHost) == null || x9.call(e10, we9); - let Ke8 = { useCaseSensitiveFileNames: S10, fileExists: (Ie8) => we9.fileExists(Ie8), readFile: (Ie8) => we9.readFile(Ie8), directoryExists: (Ie8) => we9.directoryExists(Ie8), getDirectories: (Ie8) => we9.getDirectories(Ie8), realpath: we9.realpath, readDirectory: (...Ie8) => we9.readDirectory(...Ie8), trace: we9.trace, getCurrentDirectory: we9.getCurrentDirectory, onUnRecoverableConfigFileDiagnostic: Rn5 }, It8 = t12.getKeyForCompilationSettings(Q7), qt4 = /* @__PURE__ */ new Set(); - if (isProgramUptoDate(d5, $10, Q7, (Ie8, ot8) => e10.getScriptVersion(ot8), (Ie8) => we9.fileExists(Ie8), O7, fe8, be11, Te10, he9)) { - we9 = void 0, Re10 = void 0, qt4 = void 0; - return; - } - let _r6 = { rootNames: $10, options: Q7, host: we9, oldProgram: d5, projectReferences: he9 }; - d5 = createProgram(_r6), we9 = void 0, Re10 = void 0, qt4 = void 0, L7.clearCache(), d5.getTypeChecker(); - return; - function Te10(Ie8) { - let ot8 = xi8(Ie8, y5, k7), cr6 = Re10 == null ? void 0 : Re10.get(ot8); - if (cr6 !== void 0) - return cr6 || void 0; - let an6 = e10.getParsedCommandLine ? e10.getParsedCommandLine(Ie8) : ft6(Ie8); - return (Re10 || (Re10 = /* @__PURE__ */ new Map())).set(ot8, an6 || false), an6; - } - function ft6(Ie8) { - let ot8 = H10(Ie8, 100); - if (ot8) - return ot8.path = xi8(Ie8, y5, k7), ot8.resolvedPath = ot8.path, ot8.originalFileName = ot8.fileName, parseJsonSourceFileConfigFileContent(ot8, Ke8, Pa3($i5(Ie8), y5), void 0, Pa3(Ie8, y5)); - } - function An4(Ie8, ot8, cr6) { - var an6; - e10.getParsedCommandLine ? (an6 = e10.onReleaseParsedCommandLine) == null || an6.call(e10, Ie8, ot8, cr6) : ot8 && Et9(ot8.sourceFile, cr6); - } - function Et9(Ie8, ot8) { - let cr6 = t12.getKeyForCompilationSettings(ot8); - t12.releaseDocumentWithKey(Ie8.resolvedPath, cr6, Ie8.scriptKind, Ie8.impliedNodeFormat); - } - function H10(Ie8, ot8, cr6, an6) { - return Fa2(Ie8, xi8(Ie8, y5, k7), ot8, cr6, an6); - } - function Fa2(Ie8, ot8, cr6, an6, Ba3) { - N6.assert(we9, "getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host."); - let kn4 = e10.getScriptSnapshot(Ie8); - if (!kn4) - return; - let je11 = getScriptKind(Ie8, e10), dt7 = e10.getScriptVersion(Ie8); - if (!Ba3) { - let li7 = d5 && d5.getSourceFileByPath(ot8); - if (li7) { - if (je11 === li7.scriptKind || qt4.has(li7.resolvedPath)) - return t12.updateDocumentWithKey(Ie8, ot8, e10, It8, kn4, dt7, je11, cr6); - t12.releaseDocumentWithKey(li7.resolvedPath, t12.getKeyForCompilationSettings(d5.getCompilerOptions()), li7.scriptKind, li7.impliedNodeFormat), qt4.add(li7.resolvedPath); - } - } - return t12.acquireDocumentWithKey(Ie8, ot8, e10, It8, kn4, dt7, je11, cr6); - } - } - function ue7() { - if (_10 === 2) { - N6.assert(d5 === void 0); - return; - } - return K7(), d5; - } - function Y10() { - var j10; - return (j10 = e10.getPackageJsonAutoImportProvider) == null ? void 0 : j10.call(e10); - } - function B9(j10, T5) { - let x9 = d5.getTypeChecker(), f5 = $10(); - if (!f5) - return false; - for (let O7 of j10) - for (let fe8 of O7.references) { - let be11 = Q7(fe8); - if (N6.assertIsDefined(be11), T5.has(fe8) || ts_FindAllReferences_exports.isDeclarationOfSymbol(be11, f5)) { - T5.add(fe8), fe8.isDefinition = true; - let he9 = getMappedDocumentSpan(fe8, L7, rr7(e10, e10.fileExists)); - he9 && T5.add(he9); - } else - fe8.isDefinition = false; - } - return true; - function $10() { - for (let O7 of j10) - for (let fe8 of O7.references) { - if (T5.has(fe8)) { - let he9 = Q7(fe8); - return N6.assertIsDefined(he9), x9.getSymbolAtLocation(he9); - } - let be11 = getMappedDocumentSpan(fe8, L7, rr7(e10, e10.fileExists)); - if (be11 && T5.has(be11)) { - let he9 = Q7(be11); - if (he9) - return x9.getSymbolAtLocation(he9); - } - } - } - function Q7(O7) { - let fe8 = d5.getSourceFile(O7.fileName); - if (!fe8) - return; - let be11 = getTouchingPropertyName(fe8, O7.textSpan.start); - return ts_FindAllReferences_exports.Core.getAdjustedNode(be11, { use: ts_FindAllReferences_exports.FindReferencesUse.References }); - } - } - function ae8() { - if (d5) { - let j10 = t12.getKeyForCompilationSettings(d5.getCompilerOptions()); - yr5(d5.getSourceFiles(), (T5) => t12.releaseDocumentWithKey(T5.resolvedPath, j10, T5.scriptKind, T5.impliedNodeFormat)), d5 = void 0; - } - } - function Ce10() { - ae8(), e10 = void 0; - } - function Ze11(j10) { - return K7(), d5.getSyntacticDiagnostics(G10(j10), v10).slice(); - } - function qe8(j10) { - K7(); - let T5 = G10(j10), x9 = d5.getSemanticDiagnostics(T5, v10); - if (!z23(d5.getCompilerOptions())) - return x9.slice(); - let f5 = d5.getDeclarationDiagnostics(T5, v10); - return [...x9, ...f5]; - } - function rt8(j10) { - return K7(), computeSuggestionDiagnostics(G10(j10), d5, v10); - } - function it6() { - return K7(), [...d5.getOptionsDiagnostics(v10), ...d5.getGlobalDiagnostics(v10)]; - } - function Ir7(j10, T5, x9 = emptyOptions, f5) { - let $10 = { ...x9, includeCompletionsForModuleExports: x9.includeCompletionsForModuleExports || x9.includeExternalModuleExports, includeCompletionsWithInsertText: x9.includeCompletionsWithInsertText || x9.includeInsertTextCompletions }; - return K7(), ts_Completions_exports.getCompletionsAtPosition(e10, d5, C10, G10(j10), T5, $10, x9.triggerCharacter, x9.triggerKind, v10, f5 && ts_formatting_exports.getFormatContext(f5, e10), x9.includeSymbol); - } - function ar6(j10, T5, x9, f5, $10, Q7 = emptyOptions, O7) { - return K7(), ts_Completions_exports.getCompletionEntryDetails(d5, C10, G10(j10), T5, { name: x9, source: $10, data: O7 }, e10, f5 && ts_formatting_exports.getFormatContext(f5, e10), Q7, v10); - } - function ci6(j10, T5, x9, f5, $10 = emptyOptions) { - return K7(), ts_Completions_exports.getCompletionEntrySymbol(d5, C10, G10(j10), T5, { name: x9, source: f5 }, e10, $10); - } - function or7(j10, T5) { - K7(); - let x9 = G10(j10), f5 = getTouchingPropertyName(x9, T5); - if (f5 === x9) - return; - let $10 = d5.getTypeChecker(), Q7 = Nr7(f5), O7 = aB(Q7, $10); - if (!O7 || $10.isUnknownSymbol(O7)) { - let we9 = Ge9(x9, Q7, T5) ? $10.getTypeAtLocation(Q7) : void 0; - return we9 && { kind: "", kindModifiers: "", textSpan: createTextSpanFromNode(Q7, x9), displayParts: $10.runWithCancellationToken(v10, (et9) => typeToDisplayParts(et9, we9, getContainerNode(Q7))), documentation: we9.symbol ? we9.symbol.getDocumentationComment($10) : void 0, tags: we9.symbol ? we9.symbol.getJsDocTags($10) : void 0 }; - } - let { symbolKind: fe8, displayParts: be11, documentation: he9, tags: Re10 } = $10.runWithCancellationToken(v10, (we9) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(we9, O7, x9, getContainerNode(Q7), Q7)); - return { kind: fe8, kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers($10, O7), textSpan: createTextSpanFromNode(Q7, x9), displayParts: be11, documentation: he9, tags: Re10 }; - } - function Nr7(j10) { - return o8(j10.parent) && j10.pos === j10.parent.pos ? j10.parent.expression : p6(j10.parent) && j10.pos === j10.parent.pos || x0(j10.parent) && j10.parent.name === j10 || U_(j10.parent) ? j10.parent : j10; - } - function Ge9(j10, T5, x9) { - switch (T5.kind) { - case 80: - return !isLabelName(T5) && !isTagName(T5) && !Z42(T5.parent); - case 211: - case 166: - return !isInComment(j10, x9); - case 110: - case 197: - case 108: - case 202: - return true; - case 236: - return x0(T5); - default: - return false; - } - } - function Gt5(j10, T5, x9, f5) { - return K7(), ts_GoToDefinition_exports.getDefinitionAtPosition(d5, G10(j10), T5, x9, f5); - } - function Ur5(j10, T5) { - return K7(), ts_GoToDefinition_exports.getDefinitionAndBoundSpan(d5, G10(j10), T5); - } - function Xt5(j10, T5) { - return K7(), ts_GoToDefinition_exports.getTypeDefinitionAtPosition(d5.getTypeChecker(), G10(j10), T5); - } - function Tn3(j10, T5) { - return K7(), ts_FindAllReferences_exports.getImplementationsAtPosition(d5, v10, d5.getSourceFiles(), G10(j10), T5); - } - function Sn6(j10, T5, x9) { - let f5 = pn6(j10); - N6.assert(x9.some((O7) => pn6(O7) === f5)), K7(); - let $10 = Za3(x9, (O7) => d5.getSourceFile(O7)), Q7 = G10(j10); - return DocumentHighlights.getDocumentHighlights(d5, v10, Q7, T5, $10); - } - function sr7(j10, T5, x9, f5, $10) { - K7(); - let Q7 = G10(j10), O7 = getAdjustedRenameLocation(getTouchingPropertyName(Q7, T5)); - if (ts_Rename_exports.nodeIsEligibleForRename(O7)) - if (Ee6(O7) && (Oo2(O7.parent) || qf(O7.parent)) && WT(O7.escapedText)) { - let { openingElement: fe8, closingElement: be11 } = O7.parent.parent; - return [fe8, be11].map((he9) => { - let Re10 = createTextSpanFromNode(he9.tagName, Q7); - return { fileName: Q7.fileName, textSpan: Re10, ...ts_FindAllReferences_exports.toContextSpan(Re10, Q7, he9.parent) }; - }); - } else { - let fe8 = getQuotePreference(Q7, $10 ?? emptyOptions), be11 = typeof $10 == "boolean" ? $10 : $10 == null ? void 0 : $10.providePrefixAndSuffixTextForRename; - return St8(O7, T5, { findInStrings: x9, findInComments: f5, providePrefixAndSuffixTextForRename: be11, use: ts_FindAllReferences_exports.FindReferencesUse.Rename }, (he9, Re10, we9) => ts_FindAllReferences_exports.toRenameLocation(he9, Re10, we9, be11 || false, fe8)); - } - } - function $t8(j10, T5) { - return K7(), St8(getTouchingPropertyName(G10(j10), T5), T5, { use: ts_FindAllReferences_exports.FindReferencesUse.References }, ts_FindAllReferences_exports.toReferenceEntry); - } - function St8(j10, T5, x9, f5) { - K7(); - let $10 = x9 && x9.use === ts_FindAllReferences_exports.FindReferencesUse.Rename ? d5.getSourceFiles().filter((Q7) => !d5.isSourceFileDefaultLibrary(Q7)) : d5.getSourceFiles(); - return ts_FindAllReferences_exports.findReferenceOrRenameEntries(d5, v10, $10, j10, T5, x9, f5); - } - function xn4(j10, T5) { - return K7(), ts_FindAllReferences_exports.findReferencedSymbols(d5, v10, d5.getSourceFiles(), G10(j10), T5); - } - function Tr6(j10) { - return K7(), ts_FindAllReferences_exports.Core.getReferencesForFileName(j10, d5, d5.getSourceFiles()).map(ts_FindAllReferences_exports.toReferenceEntry); - } - function vt9(j10, T5, x9, f5 = false) { - K7(); - let $10 = x9 ? [G10(x9)] : d5.getSourceFiles(); - return getNavigateToItems($10, d5.getTypeChecker(), v10, j10, T5, f5); - } - function ct7(j10, T5, x9) { - K7(); - let f5 = G10(j10), $10 = e10.getCustomTransformers && e10.getCustomTransformers(); - return getFileEmitOutput(d5, f5, !!T5, v10, $10, x9); - } - function Ut5(j10, T5, { triggerReason: x9 } = emptyOptions) { - K7(); - let f5 = G10(j10); - return ts_SignatureHelp_exports.getSignatureHelpItems(d5, f5, T5, x9, v10); - } - function fr6(j10) { - return p5.getCurrentSourceFile(j10); - } - function ht4(j10, T5, x9) { - let f5 = p5.getCurrentSourceFile(j10), $10 = getTouchingPropertyName(f5, T5); - if ($10 === f5) - return; - switch ($10.kind) { - case 211: - case 166: - case 11: - case 97: - case 112: - case 106: - case 108: - case 110: - case 197: - case 80: - break; - default: - return; - } - let Q7 = $10; - for (; ; ) - if (isRightSideOfPropertyAccess(Q7) || isRightSideOfQualifiedName(Q7)) - Q7 = Q7.parent; - else if (isNameOfModuleDeclaration(Q7)) - if (Q7.parent.parent.kind === 267 && Q7.parent.parent.body === Q7.parent) - Q7 = Q7.parent.parent.name; - else - break; - else - break; - return Hi5(Q7.getStart(), $10.getEnd()); - } - function wn5(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10); - return ts_BreakpointResolver_exports.spanInSourceFileAtLocation(x9, T5); - } - function Tt6(j10) { - return getNavigationBarItems(p5.getCurrentSourceFile(j10), v10); - } - function Or5(j10) { - return getNavigationTree(p5.getCurrentSourceFile(j10), v10); - } - function pt5(j10, T5, x9) { - return K7(), (x9 || "original") === "2020" ? getSemanticClassifications2(d5, v10, G10(j10), T5) : getSemanticClassifications(d5.getTypeChecker(), v10, G10(j10), d5.getClassifiableNames(), T5); - } - function Mr4(j10, T5, x9) { - return K7(), (x9 || "original") === "original" ? getEncodedSemanticClassifications(d5.getTypeChecker(), v10, G10(j10), d5.getClassifiableNames(), T5) : getEncodedSemanticClassifications2(d5, v10, G10(j10), T5); - } - function at7(j10, T5) { - return getSyntacticClassifications(v10, p5.getCurrentSourceFile(j10), T5); - } - function er8(j10, T5) { - return getEncodedSyntacticClassifications(v10, p5.getCurrentSourceFile(j10), T5); - } - function Qt5(j10) { - let T5 = p5.getCurrentSourceFile(j10); - return ts_OutliningElementsCollector_exports.collectElements(T5, v10); - } - let tn7 = new Map(Object.entries({ 19: 20, 21: 22, 23: 24, 32: 30 })); - tn7.forEach((j10, T5) => tn7.set(j10.toString(), Number(T5))); - function Bn4(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10), f5 = getTouchingToken(x9, T5), $10 = f5.getStart(x9) === T5 ? tn7.get(f5.kind.toString()) : void 0, Q7 = $10 && findChildOfKind(f5.parent, $10, x9); - return Q7 ? [createTextSpanFromNode(f5, x9), createTextSpanFromNode(Q7, x9)].sort((O7, fe8) => O7.start - fe8.start) : $e9; - } - function Un5(j10, T5, x9) { - let f5 = Sa4(), $10 = sl3(x9), Q7 = p5.getCurrentSourceFile(j10); - C10("getIndentationAtPosition: getCurrentSourceFile: " + (Sa4() - f5)), f5 = Sa4(); - let O7 = ts_formatting_exports.SmartIndenter.getIndentation(T5, Q7, $10); - return C10("getIndentationAtPosition: computeIndentation : " + (Sa4() - f5)), O7; - } - function rn7(j10, T5, x9, f5) { - let $10 = p5.getCurrentSourceFile(j10); - return ts_formatting_exports.formatSelection(T5, x9, $10, ts_formatting_exports.getFormatContext(sl3(f5), e10)); - } - function nn7(j10, T5) { - return ts_formatting_exports.formatDocument(p5.getCurrentSourceFile(j10), ts_formatting_exports.getFormatContext(sl3(T5), e10)); - } - function Di7(j10, T5, x9, f5) { - let $10 = p5.getCurrentSourceFile(j10), Q7 = ts_formatting_exports.getFormatContext(sl3(f5), e10); - if (!isInComment($10, T5)) - switch (x9) { - case "{": - return ts_formatting_exports.formatOnOpeningCurly(T5, $10, Q7); - case "}": - return ts_formatting_exports.formatOnClosingCurly(T5, $10, Q7); - case ";": - return ts_formatting_exports.formatOnSemicolon(T5, $10, Q7); - case ` -`: - return ts_formatting_exports.formatOnEnter(T5, $10, Q7); - } - return []; - } - function qn5(j10, T5, x9, f5, $10, Q7 = emptyOptions) { - K7(); - let O7 = G10(j10), fe8 = Hi5(T5, x9), be11 = ts_formatting_exports.getFormatContext($10, e10); - return Bo3(xv(f5, _o3, kr7), (he9) => (v10.throwIfCancellationRequested(), ts_codefix_exports.getFixes({ errorCode: he9, sourceFile: O7, span: fe8, program: d5, host: e10, cancellationToken: v10, formatContext: be11, preferences: Q7 }))); - } - function Ae7(j10, T5, x9, f5 = emptyOptions) { - K7(), N6.assert(j10.type === "file"); - let $10 = G10(j10.fileName), Q7 = ts_formatting_exports.getFormatContext(x9, e10); - return ts_codefix_exports.getAllFixes({ fixId: T5, sourceFile: $10, program: d5, host: e10, cancellationToken: v10, formatContext: Q7, preferences: f5 }); - } - function q9(j10, T5, x9 = emptyOptions) { - K7(), N6.assert(j10.type === "file"); - let f5 = G10(j10.fileName), $10 = ts_formatting_exports.getFormatContext(T5, e10), Q7 = j10.mode ?? (j10.skipDestructiveCodeActions ? "SortAndCombine" : "All"); - return ts_OrganizeImports_exports.organizeImports(f5, $10, e10, d5, x9, Q7); - } - function oe8(j10, T5, x9, f5 = emptyOptions) { - return getEditsForFileRename(ue7(), j10, T5, e10, ts_formatting_exports.getFormatContext(x9, e10), f5, L7); - } - function ge6(j10, T5) { - let x9 = typeof j10 == "string" ? T5 : j10; - return zt6(x9) ? Promise.all(x9.map((f5) => Se9(f5))) : Se9(x9); - } - function Se9(j10) { - let T5 = (x9) => xi8(x9, y5, k7); - return N6.assertEqual(j10.type, "install package"), e10.installPackage ? e10.installPackage({ fileName: T5(j10.file), packageName: j10.packageName }) : Promise.reject("Host does not implement `installPackage`"); - } - function nt7(j10, T5, x9, f5) { - let $10 = f5 ? ts_formatting_exports.getFormatContext(f5, e10).options : void 0; - return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(e10, $10), p5.getCurrentSourceFile(j10), T5, x9); - } - function z9(j10, T5, x9) { - if (x9 === 60) - return false; - let f5 = p5.getCurrentSourceFile(j10); - if (isInString(f5, T5)) - return false; - if (isInsideJsxElementOrAttribute(f5, T5)) - return x9 === 123; - if (isInTemplateString(f5, T5)) - return false; - switch (x9) { - case 39: - case 34: - case 96: - return !isInComment(f5, T5); - } - return true; - } - function X10(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10), f5 = findPrecedingToken(T5, x9); - if (!f5) - return; - let $10 = f5.kind === 32 && Oo2(f5.parent) ? f5.parent.parent : kd(f5) && Q0(f5.parent) ? f5.parent : void 0; - if ($10 && jt5($10)) - return { newText: `` }; - let Q7 = f5.kind === 32 && k6(f5.parent) ? f5.parent.parent : kd(f5) && dl2(f5.parent) ? f5.parent : void 0; - if (Q7 && qr7(Q7)) - return { newText: "" }; - } - function ee10(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10), f5 = findPrecedingToken(T5, x9); - if (!f5 || f5.parent.kind === 312) - return; - let $10 = "[a-zA-Z0-9:\\-\\._$]*"; - if (dl2(f5.parent.parent)) { - let Q7 = f5.parent.parent.openingFragment, O7 = f5.parent.parent.closingFragment; - if (xl3(Q7) || xl3(O7)) - return; - let fe8 = Q7.getStart(x9) + 1, be11 = O7.getStart(x9) + 2; - return T5 !== fe8 && T5 !== be11 ? void 0 : { ranges: [{ start: fe8, length: 0 }, { start: be11, length: 0 }], wordPattern: $10 }; - } else { - let Q7 = Kr6(f5.parent, (Ye7) => !!(Oo2(Ye7) || qf(Ye7))); - if (!Q7) - return; - N6.assert(Oo2(Q7) || qf(Q7), "tag should be opening or closing element"); - let O7 = Q7.parent.openingElement, fe8 = Q7.parent.closingElement, be11 = O7.tagName.getStart(x9), he9 = O7.tagName.end, Re10 = fe8.tagName.getStart(x9), we9 = fe8.tagName.end; - return !(be11 <= T5 && T5 <= he9 || Re10 <= T5 && T5 <= we9) || O7.tagName.getText(x9) !== fe8.tagName.getText(x9) ? void 0 : { ranges: [{ start: be11, length: he9 - be11 }, { start: Re10, length: we9 - Re10 }], wordPattern: $10 }; - } - } - function xe9(j10, T5) { - return { lineStarts: j10.getLineStarts(), firstLine: j10.getLineAndCharacterOfPosition(T5.pos).line, lastLine: j10.getLineAndCharacterOfPosition(T5.end).line }; - } - function ke9(j10, T5, x9) { - let f5 = p5.getCurrentSourceFile(j10), $10 = [], { lineStarts: Q7, firstLine: O7, lastLine: fe8 } = xe9(f5, T5), be11 = x9 || false, he9 = Number.MAX_VALUE, Re10 = /* @__PURE__ */ new Map(), we9 = new RegExp(/\S/), et9 = isInsideJsxElement(f5, Q7[O7]), Ye7 = et9 ? "{/*" : "//"; - for (let Ke8 = O7; Ke8 <= fe8; Ke8++) { - let It8 = f5.text.substring(Q7[Ke8], f5.getLineEndOfPosition(Q7[Ke8])), qt4 = we9.exec(It8); - qt4 && (he9 = Math.min(he9, qt4.index), Re10.set(Ke8.toString(), qt4.index), It8.substr(qt4.index, Ye7.length) !== Ye7 && (be11 = x9 === void 0 || x9)); - } - for (let Ke8 = O7; Ke8 <= fe8; Ke8++) { - if (O7 !== fe8 && Q7[Ke8] === T5.end) - continue; - let It8 = Re10.get(Ke8.toString()); - It8 !== void 0 && (et9 ? $10.push.apply($10, Le7(j10, { pos: Q7[Ke8] + he9, end: f5.getLineEndOfPosition(Q7[Ke8]) }, be11, et9)) : be11 ? $10.push({ newText: Ye7, span: { length: 0, start: Q7[Ke8] + he9 } }) : f5.text.substr(Q7[Ke8] + It8, Ye7.length) === Ye7 && $10.push({ newText: "", span: { length: Ye7.length, start: Q7[Ke8] + It8 } })); - } - return $10; - } - function Le7(j10, T5, x9, f5) { - var $10; - let Q7 = p5.getCurrentSourceFile(j10), O7 = [], { text: fe8 } = Q7, be11 = false, he9 = x9 || false, Re10 = [], { pos: we9 } = T5, et9 = f5 !== void 0 ? f5 : isInsideJsxElement(Q7, we9), Ye7 = et9 ? "{/*" : "/*", Ke8 = et9 ? "*/}" : "*/", It8 = et9 ? "\\{\\/\\*" : "\\/\\*", qt4 = et9 ? "\\*\\/\\}" : "\\*\\/"; - for (; we9 <= T5.end; ) { - let _r6 = fe8.substr(we9, Ye7.length) === Ye7 ? Ye7.length : 0, Te10 = isInComment(Q7, we9 + _r6); - if (Te10) - et9 && (Te10.pos--, Te10.end++), Re10.push(Te10.pos), Te10.kind === 3 && Re10.push(Te10.end), be11 = true, we9 = Te10.end + 1; - else { - let ft6 = fe8.substring(we9, T5.end).search(`(${It8})|(${qt4})`); - he9 = x9 !== void 0 ? x9 : he9 || !isTextWhiteSpaceLike(fe8, we9, ft6 === -1 ? T5.end : we9 + ft6), we9 = ft6 === -1 ? T5.end + 1 : we9 + ft6 + Ke8.length; - } - } - if (he9 || !be11) { - (($10 = isInComment(Q7, T5.pos)) == null ? void 0 : $10.kind) !== 2 && yl3(Re10, T5.pos, kr7), yl3(Re10, T5.end, kr7); - let _r6 = Re10[0]; - fe8.substr(_r6, Ye7.length) !== Ye7 && O7.push({ newText: Ye7, span: { length: 0, start: _r6 } }); - for (let Te10 = 1; Te10 < Re10.length - 1; Te10++) - fe8.substr(Re10[Te10] - Ke8.length, Ke8.length) !== Ke8 && O7.push({ newText: Ke8, span: { length: 0, start: Re10[Te10] } }), fe8.substr(Re10[Te10], Ye7.length) !== Ye7 && O7.push({ newText: Ye7, span: { length: 0, start: Re10[Te10] } }); - O7.length % 2 !== 0 && O7.push({ newText: Ke8, span: { length: 0, start: Re10[Re10.length - 1] } }); - } else - for (let _r6 of Re10) { - let Te10 = _r6 - Ke8.length > 0 ? _r6 - Ke8.length : 0, ft6 = fe8.substr(Te10, Ke8.length) === Ke8 ? Ke8.length : 0; - O7.push({ newText: "", span: { length: Ye7.length, start: _r6 - ft6 } }); - } - return O7; - } - function lt5(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10), { firstLine: f5, lastLine: $10 } = xe9(x9, T5); - return f5 === $10 && T5.pos !== T5.end ? Le7(j10, T5, true) : ke9(j10, T5, true); - } - function yt7(j10, T5) { - let x9 = p5.getCurrentSourceFile(j10), f5 = [], { pos: $10 } = T5, { end: Q7 } = T5; - $10 === Q7 && (Q7 += isInsideJsxElement(x9, $10) ? 2 : 1); - for (let O7 = $10; O7 <= Q7; O7++) { - let fe8 = isInComment(x9, O7); - if (fe8) { - switch (fe8.kind) { - case 2: - f5.push.apply(f5, ke9(j10, { end: fe8.end, pos: fe8.pos + 1 }, false)); - break; - case 3: - f5.push.apply(f5, Le7(j10, { end: fe8.end, pos: fe8.pos + 1 }, false)); - } - O7 = fe8.end + 1; - } - } - return f5; - } - function jt5({ openingElement: j10, closingElement: T5, parent: x9 }) { - return !Ti7(j10.tagName, T5.tagName) || Q0(x9) && Ti7(j10.tagName, x9.openingElement.tagName) && jt5(x9); - } - function qr7({ closingFragment: j10, parent: T5 }) { - return !!(j10.flags & 262144) || dl2(T5) && qr7(T5); - } - function na4(j10, T5, x9) { - let f5 = p5.getCurrentSourceFile(j10), $10 = ts_formatting_exports.getRangeOfEnclosingComment(f5, T5); - return $10 && (!x9 || $10.kind === 3) ? createTextSpanFromRange($10) : void 0; - } - function Cn4(j10, T5) { - K7(); - let x9 = G10(j10); - v10.throwIfCancellationRequested(); - let f5 = x9.text, $10 = []; - if (T5.length > 0 && !be11(x9.fileName)) { - let he9 = O7(), Re10; - for (; Re10 = he9.exec(f5); ) { - v10.throwIfCancellationRequested(); - let we9 = 3; - N6.assert(Re10.length === T5.length + we9); - let et9 = Re10[1], Ye7 = Re10.index + et9.length; - if (!isInComment(x9, Ye7)) - continue; - let Ke8; - for (let qt4 = 0; qt4 < T5.length; qt4++) - Re10[qt4 + we9] && (Ke8 = T5[qt4]); - if (Ke8 === void 0) - return N6.fail(); - if (fe8(f5.charCodeAt(Ye7 + Ke8.text.length))) - continue; - let It8 = Re10[2]; - $10.push({ descriptor: Ke8, message: It8, position: Ye7 }); - } - } - return $10; - function Q7(he9) { - return he9.replace(/[-[\]/{}()*+?.\\^$|]/g, "\\$&"); - } - function O7() { - let he9 = /(?:\/\/+\s*)/.source, Re10 = /(?:\/\*+\s*)/.source, et9 = "(" + /(?:^(?:\s|\*)*)/.source + "|" + he9 + "|" + Re10 + ")", Ye7 = "(?:" + Aa4(T5, (Te10) => "(" + Q7(Te10.text) + ")").join("|") + ")", Ke8 = /(?:$|\*\/)/.source, It8 = /(?:.*?)/.source, qt4 = "(" + Ye7 + It8 + ")", _r6 = et9 + qt4 + Ke8; - return new RegExp(_r6, "gim"); - } - function fe8(he9) { - return he9 >= 97 && he9 <= 122 || he9 >= 65 && he9 <= 90 || he9 >= 48 && he9 <= 57; - } - function be11(he9) { - return eo3(he9, "/node_modules/"); - } - } - function zn4(j10, T5, x9) { - return K7(), ts_Rename_exports.getRenameInfo(d5, G10(j10), T5, x9 || {}); - } - function Pi7(j10, T5, x9, f5, $10, Q7) { - let [O7, fe8] = typeof T5 == "number" ? [T5, void 0] : [T5.pos, T5.end]; - return { file: j10, startPosition: O7, endPosition: fe8, program: ue7(), host: e10, formatContext: ts_formatting_exports.getFormatContext(f5, e10), cancellationToken: v10, preferences: x9, triggerReason: $10, kind: Q7 }; - } - function ia5(j10, T5, x9) { - return { file: j10, program: ue7(), host: e10, span: T5, preferences: x9, cancellationToken: v10 }; - } - function Wn4(j10, T5) { - return ts_SmartSelectionRange_exports.getSmartSelectionRange(T5, p5.getCurrentSourceFile(j10)); - } - function En6(j10, T5, x9 = emptyOptions, f5, $10, Q7) { - K7(); - let O7 = G10(j10); - return ts_refactor_exports.getApplicableRefactors(Pi7(O7, T5, x9, emptyOptions, f5, $10), Q7); - } - function Ii6(j10, T5, x9 = emptyOptions) { - K7(); - let f5 = G10(j10), $10 = N6.checkDefined(d5.getSourceFiles()), Q7 = rl3(j10), O7 = Za3($10, (be11) => !(d5 != null && d5.isSourceFileFromExternalLibrary(f5)) && !(f5 === G10(be11.fileName) || Q7 === ".ts" && rl3(be11.fileName) === ".d.ts" || Q7 === ".d.ts" && Fr5(T_(be11.fileName), "lib.") && rl3(be11.fileName) === ".d.ts") && Q7 === rl3(be11.fileName) ? be11.fileName : void 0); - return { newFileName: createNewFileName(f5, d5, Pi7(f5, T5, x9, emptyOptions), e10), files: O7 }; - } - function aa4(j10, T5, x9, f5, $10, Q7 = emptyOptions, O7) { - K7(); - let fe8 = G10(j10); - return ts_refactor_exports.getEditsForRefactor(Pi7(fe8, x9, Q7, T5), f5, $10, O7); - } - function Vn5(j10, T5) { - return T5 === 0 ? { line: 0, character: 0 } : L7.toLineColumnOffset(j10, T5); - } - function Sr7(j10, T5) { - K7(); - let x9 = ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(d5, getTouchingPropertyName(G10(j10), T5)); - return x9 && mapOneOrMany(x9, (f5) => ts_CallHierarchy_exports.createCallHierarchyItem(d5, f5)); - } - function Je10(j10, T5) { - K7(); - let x9 = G10(j10), f5 = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(d5, T5 === 0 ? x9 : getTouchingPropertyName(x9, T5))); - return f5 ? ts_CallHierarchy_exports.getIncomingCalls(d5, f5, v10) : []; - } - function oa5(j10, T5) { - K7(); - let x9 = G10(j10), f5 = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(d5, T5 === 0 ? x9 : getTouchingPropertyName(x9, T5))); - return f5 ? ts_CallHierarchy_exports.getOutgoingCalls(d5, f5) : []; - } - function Mt8(j10, T5, x9 = emptyOptions) { - K7(); - let f5 = G10(j10); - return ts_InlayHints_exports.provideInlayHints(ia5(f5, T5, x9)); - } - let Lr7 = { dispose: Ce10, cleanupSemanticCache: ae8, getSyntacticDiagnostics: Ze11, getSemanticDiagnostics: qe8, getSuggestionDiagnostics: rt8, getCompilerOptionsDiagnostics: it6, getSyntacticClassifications: at7, getSemanticClassifications: pt5, getEncodedSyntacticClassifications: er8, getEncodedSemanticClassifications: Mr4, getCompletionsAtPosition: Ir7, getCompletionEntryDetails: ar6, getCompletionEntrySymbol: ci6, getSignatureHelpItems: Ut5, getQuickInfoAtPosition: or7, getDefinitionAtPosition: Gt5, getDefinitionAndBoundSpan: Ur5, getImplementationAtPosition: Tn3, getTypeDefinitionAtPosition: Xt5, getReferencesAtPosition: $t8, findReferences: xn4, getFileReferences: Tr6, getDocumentHighlights: Sn6, getNameOrDottedNameSpan: ht4, getBreakpointStatementAtPosition: wn5, getNavigateToItems: vt9, getRenameInfo: zn4, getSmartSelectionRange: Wn4, findRenameLocations: sr7, getNavigationBarItems: Tt6, getNavigationTree: Or5, getOutliningSpans: Qt5, getTodoComments: Cn4, getBraceMatchingAtPosition: Bn4, getIndentationAtPosition: Un5, getFormattingEditsForRange: rn7, getFormattingEditsForDocument: nn7, getFormattingEditsAfterKeystroke: Di7, getDocCommentTemplateAtPosition: nt7, isValidBraceCompletionAtPosition: z9, getJsxClosingTagAtPosition: X10, getLinkedEditingRangeAtPosition: ee10, getSpanOfEnclosingComment: na4, getCodeFixesAtPosition: qn5, getCombinedCodeFix: Ae7, applyCodeActionCommand: ge6, organizeImports: q9, getEditsForFileRename: oe8, getEmitOutput: ct7, getNonBoundSourceFile: fr6, getProgram: ue7, getCurrentProgram: () => d5, getAutoImportProvider: Y10, updateIsDefinitionOfReferencedSymbols: B9, getApplicableRefactors: En6, getEditsForRefactor: aa4, getMoveToRefactoringFileSuggestions: Ii6, toLineColumnOffset: Vn5, getSourceMapper: () => L7, clearSourceMapperCache: () => L7.clearCache(), prepareCallHierarchy: Sr7, provideCallHierarchyIncomingCalls: Je10, provideCallHierarchyOutgoingCalls: oa5, toggleLineComment: ke9, toggleMultilineComment: Le7, commentSelection: lt5, uncommentSelection: yt7, provideInlayHints: Mt8, getSupportedCodeFixes: c7 }; - switch (_10) { - case 0: - break; - case 1: - rg.forEach((j10) => Lr7[j10] = () => { - throw new Error(`LanguageService Operation: ${j10} not allowed in LanguageServiceMode.PartialSemantic`); - }); - break; - case 2: - w7.forEach((j10) => Lr7[j10] = () => { - throw new Error(`LanguageService Operation: ${j10} not allowed in LanguageServiceMode.Syntactic`); - }); - break; - default: - N6.assertNever(_10); - } - return Lr7; - } - function tB(e10) { - return e10.nameTable || rB(e10), e10.nameTable; - } - function rB(e10) { - let t12 = e10.nameTable = /* @__PURE__ */ new Map(); - e10.forEachChild(function r9(a) { - if (Ee6(a) && !isTagName(a) && a.escapedText || Qi5(a) && nB(a)) { - let _10 = JT(a); - t12.set(_10, t12.get(_10) === void 0 ? a.pos : -1); - } else if (jr6(a)) { - let _10 = a.escapedText; - t12.set(_10, t12.get(_10) === void 0 ? a.pos : -1); - } - if (Bt7(a, r9), Wi4(a)) - for (let _10 of a.jsDoc) - Bt7(_10, r9); - }); - } - function nB(e10) { - return wT(e10) || e10.parent.kind === 283 || oB(e10) || CT(e10); - } - function p7(e10) { - let t12 = iB(e10); - return t12 && (uo4(t12.parent) || D6(t12.parent)) ? t12 : void 0; - } - function iB(e10) { - switch (e10.kind) { - case 11: - case 15: - case 9: - if (e10.parent.kind === 167) - return b0(e10.parent.parent) ? e10.parent.parent : void 0; - case 80: - return b0(e10.parent) && (e10.parent.parent.kind === 210 || e10.parent.parent.kind === 292) && e10.parent.name === e10 ? e10.parent : void 0; - } - } - function aB(e10, t12) { - let r9 = p7(e10); - if (r9) { - let a = t12.getContextualType(r9.parent), _10 = a && f7(r9, t12, a, false); - if (_10 && _10.length === 1) - return og(_10); - } - return t12.getSymbolAtLocation(e10); - } - function f7(e10, t12, r9, a) { - let _10 = getNameFromPropertyName(e10.name); - if (!_10) - return $e9; - if (!r9.isUnion()) { - let d5 = r9.getProperty(_10); - return d5 ? [d5] : $e9; - } - let p5 = Za3(r9.types, (d5) => (uo4(e10.parent) || D6(e10.parent)) && t12.isTypeInvalidDueToUnionDiscriminant(d5, e10.parent) ? void 0 : d5.getProperty(_10)); - if (a && (p5.length === 0 || p5.length === r9.types.length)) { - let d5 = r9.getProperty(_10); - if (d5) - return [d5]; - } - return p5.length === 0 ? Za3(r9.types, (d5) => d5.getProperty(_10)) : p5; - } - function oB(e10) { - return e10 && e10.parent && e10.parent.kind === 212 && e10.parent.argumentExpression === e10; - } - function sB(e10) { - if (f02) - return hr5($i5(pn6(f02.getExecutingFilePath())), T4(e10)); - throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); - } - var d7, Nd, Df, m7, W62, Od, Md, h7, y7, g7, b7, v7, T7, S7, x7, rg, w7, _B = Vt4({ "src/services/services.ts"() { - "use strict"; - C7(), r7(), n7(), i7(), t72(), $F(), d7 = "0.8", Nd = class { - constructor(e10, t12, r9) { - this.pos = t12, this.end = r9, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0, this.kind = e10; - } - assertHasRealPosition(e10) { - N6.assert(!Oa3(this.pos) && !Oa3(this.end), e10 || "Node must have a real position for this operation"); - } - getSourceFile() { - return ri7(this); - } - getStart(e10, t12) { - return this.assertHasRealPosition(), Go2(this, e10, t12); - } - getFullStart() { - return this.assertHasRealPosition(), this.pos; - } - getEnd() { - return this.assertHasRealPosition(), this.end; - } - getWidth(e10) { - return this.assertHasRealPosition(), this.getEnd() - this.getStart(e10); - } - getFullWidth() { - return this.assertHasRealPosition(), this.end - this.pos; - } - getLeadingTriviaWidth(e10) { - return this.assertHasRealPosition(), this.getStart(e10) - this.pos; - } - getFullText(e10) { - return this.assertHasRealPosition(), (e10 || this.getSourceFile()).text.substring(this.pos, this.end); - } - getText(e10) { - return this.assertHasRealPosition(), e10 || (e10 = this.getSourceFile()), e10.text.substring(this.getStart(e10), this.getEnd()); - } - getChildCount(e10) { - return this.getChildren(e10).length; - } - getChildAt(e10, t12) { - return this.getChildren(t12)[e10]; - } - getChildren(e10) { - return this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"), this._children || (this._children = QF(this, e10)); - } - getFirstToken(e10) { - this.assertHasRealPosition(); - let t12 = this.getChildren(e10); - if (!t12.length) - return; - let r9 = Yr7(t12, (a) => a.kind < 316 || a.kind > 357); - return r9.kind < 166 ? r9 : r9.getFirstToken(e10); - } - getLastToken(e10) { - this.assertHasRealPosition(); - let t12 = this.getChildren(e10), r9 = wi7(t12); - if (r9) - return r9.kind < 166 ? r9 : r9.getLastToken(e10); - } - forEachChild(e10, t12) { - return Bt7(this, e10, t12); - } - }, Df = class { - constructor(e10, t12) { - this.pos = e10, this.end = t12, this.flags = 0, this.modifierFlagsCache = 0, this.transformFlags = 0, this.parent = void 0; - } - getSourceFile() { - return ri7(this); - } - getStart(e10, t12) { - return Go2(this, e10, t12); - } - getFullStart() { - return this.pos; - } - getEnd() { - return this.end; - } - getWidth(e10) { - return this.getEnd() - this.getStart(e10); - } - getFullWidth() { - return this.end - this.pos; - } - getLeadingTriviaWidth(e10) { - return this.getStart(e10) - this.pos; - } - getFullText(e10) { - return (e10 || this.getSourceFile()).text.substring(this.pos, this.end); - } - getText(e10) { - return e10 || (e10 = this.getSourceFile()), e10.text.substring(this.getStart(e10), this.getEnd()); - } - getChildCount() { - return this.getChildren().length; - } - getChildAt(e10) { - return this.getChildren()[e10]; - } - getChildren() { - return this.kind === 1 && this.jsDoc || $e9; - } - getFirstToken() { - } - getLastToken() { - } - forEachChild() { - } - }, m7 = class { - constructor(e10, t12) { - this.id = 0, this.mergeId = 0, this.flags = e10, this.escapedName = t12; - } - getFlags() { - return this.flags; - } - get name() { - return md(this); - } - getEscapedName() { - return this.escapedName; - } - getName() { - return this.name; - } - getDeclarations() { - return this.declarations; - } - getDocumentationComment(e10) { - if (!this.documentationComment) - if (this.documentationComment = $e9, !this.declarations && T02(this) && this.links.target && T02(this.links.target) && this.links.target.links.tupleLabelDeclaration) { - let t12 = this.links.target.links.tupleLabelDeclaration; - this.documentationComment = Kc3([t12], e10); - } else - this.documentationComment = Kc3(this.declarations, e10); - return this.documentationComment; - } - getContextualDocumentationComment(e10, t12) { - if (e10) { - if (el3(e10) && (this.contextualGetAccessorDocumentationComment || (this.contextualGetAccessorDocumentationComment = Kc3($r4(this.declarations, el3), t12)), Ka4(this.contextualGetAccessorDocumentationComment))) - return this.contextualGetAccessorDocumentationComment; - if (Zc2(e10) && (this.contextualSetAccessorDocumentationComment || (this.contextualSetAccessorDocumentationComment = Kc3($r4(this.declarations, Zc2), t12)), Ka4(this.contextualSetAccessorDocumentationComment))) - return this.contextualSetAccessorDocumentationComment; - } - return this.getDocumentationComment(t12); - } - getJsDocTags(e10) { - return this.tags === void 0 && (this.tags = kf(this.declarations, e10)), this.tags; - } - getContextualJsDocTags(e10, t12) { - if (e10) { - if (el3(e10) && (this.contextualGetAccessorTags || (this.contextualGetAccessorTags = kf($r4(this.declarations, el3), t12)), Ka4(this.contextualGetAccessorTags))) - return this.contextualGetAccessorTags; - if (Zc2(e10) && (this.contextualSetAccessorTags || (this.contextualSetAccessorTags = kf($r4(this.declarations, Zc2), t12)), Ka4(this.contextualSetAccessorTags))) - return this.contextualSetAccessorTags; - } - return this.getJsDocTags(t12); - } - }, W62 = class extends Df { - constructor(e10, t12, r9) { - super(t12, r9), this.kind = e10; - } - }, Od = class extends Df { - constructor(e10, t12, r9) { - super(t12, r9), this.kind = 80; - } - get text() { - return Ot10(this); - } - }, Od.prototype.kind = 80, Md = class extends Df { - constructor(e10, t12, r9) { - super(t12, r9), this.kind = 81; - } - get text() { - return Ot10(this); - } - }, Md.prototype.kind = 81, h7 = class { - constructor(e10, t12) { - this.checker = e10, this.flags = t12; - } - getFlags() { - return this.flags; - } - getSymbol() { - return this.symbol; - } - getProperties() { - return this.checker.getPropertiesOfType(this); - } - getProperty(e10) { - return this.checker.getPropertyOfType(this, e10); - } - getApparentProperties() { - return this.checker.getAugmentedPropertiesOfType(this); - } - getCallSignatures() { - return this.checker.getSignaturesOfType(this, 0); - } - getConstructSignatures() { - return this.checker.getSignaturesOfType(this, 1); - } - getStringIndexType() { - return this.checker.getIndexTypeOfType(this, 0); - } - getNumberIndexType() { - return this.checker.getIndexTypeOfType(this, 1); - } - getBaseTypes() { - return this.isClassOrInterface() ? this.checker.getBaseTypes(this) : void 0; - } - isNullableType() { - return this.checker.isNullableType(this); - } - getNonNullableType() { - return this.checker.getNonNullableType(this); - } - getNonOptionalType() { - return this.checker.getNonOptionalType(this); - } - getConstraint() { - return this.checker.getBaseConstraintOfType(this); - } - getDefault() { - return this.checker.getDefaultFromTypeParameter(this); - } - isUnion() { - return !!(this.flags & 1048576); - } - isIntersection() { - return !!(this.flags & 2097152); - } - isUnionOrIntersection() { - return !!(this.flags & 3145728); - } - isLiteral() { - return !!(this.flags & 2432); - } - isStringLiteral() { - return !!(this.flags & 128); - } - isNumberLiteral() { - return !!(this.flags & 256); - } - isTypeParameter() { - return !!(this.flags & 262144); - } - isClassOrInterface() { - return !!(Rf(this) & 3); - } - isClass() { - return !!(Rf(this) & 1); - } - isIndexType() { - return !!(this.flags & 4194304); - } - get typeArguments() { - if (Rf(this) & 4) - return this.checker.getTypeArguments(this); - } - }, y7 = class { - constructor(e10, t12) { - this.checker = e10, this.flags = t12; - } - getDeclaration() { - return this.declaration; - } - getTypeParameters() { - return this.typeParameters; - } - getParameters() { - return this.parameters; - } - getReturnType() { - return this.checker.getReturnTypeOfSignature(this); - } - getTypeParameterAtPosition(e10) { - let t12 = this.checker.getParameterType(this, e10); - if (t12.isIndexType() && ox(t12.type)) { - let r9 = t12.type.getConstraint(); - if (r9) - return this.checker.getIndexType(r9); - } - return t12; - } - getDocumentationComment() { - return this.documentationComment || (this.documentationComment = Kc3($f(this.declaration), this.checker)); - } - getJsDocTags() { - return this.jsDocTags || (this.jsDocTags = kf($f(this.declaration), this.checker)); - } - }, g7 = class extends Nd { - constructor(e10, t12, r9) { - super(e10, t12, r9), this.kind = 312; - } - update(e10, t12) { - return q62(this, e10, t12); - } - getLineAndCharacterOfPosition(e10) { - return to3(this, e10); - } - getLineStarts() { - return Ia4(this); - } - getPositionOfLineAndCharacter(e10, t12, r9) { - return Tg(Ia4(this), e10, t12, this.text, r9); - } - getLineEndOfPosition(e10) { - let { line: t12 } = this.getLineAndCharacterOfPosition(e10), r9 = this.getLineStarts(), a; - t12 + 1 >= r9.length && (a = this.getEnd()), a || (a = r9[t12 + 1] - 1); - let _10 = this.getFullText(); - return _10[a] === ` -` && _10[a - 1] === "\r" ? a - 1 : a; - } - getNamedDeclarations() { - return this.namedDeclarations || (this.namedDeclarations = this.computeNamedDeclarations()), this.namedDeclarations; - } - computeNamedDeclarations() { - let e10 = jd(); - return this.forEachChild(_10), e10; - function t12(p5) { - let d5 = a(p5); - d5 && e10.add(d5, p5); - } - function r9(p5) { - let d5 = e10.get(p5); - return d5 || e10.set(p5, d5 = []), d5; - } - function a(p5) { - let d5 = Yd(p5); - return d5 && (ao4(d5) && Br6(d5.expression) ? d5.expression.name.text : zl3(d5) ? getNameFromPropertyName(d5) : void 0); - } - function _10(p5) { - switch (p5.kind) { - case 262: - case 218: - case 174: - case 173: - let d5 = p5, h5 = a(d5); - if (h5) { - let y5 = r9(h5), C10 = wi7(y5); - C10 && d5.parent === C10.parent && d5.symbol === C10.symbol ? d5.body && !C10.body && (y5[y5.length - 1] = d5) : y5.push(d5); - } - Bt7(p5, _10); - break; - case 263: - case 231: - case 264: - case 265: - case 266: - case 267: - case 271: - case 281: - case 276: - case 273: - case 274: - case 177: - case 178: - case 187: - t12(p5), Bt7(p5, _10); - break; - case 169: - if (!gr6(p5, 16476)) - break; - case 260: - case 208: { - let y5 = p5; - if (im(y5.name)) { - Bt7(y5.name, _10); - break; - } - y5.initializer && _10(y5.initializer); - } - case 306: - case 172: - case 171: - t12(p5); - break; - case 278: - let l = p5; - l.exportClause && (d8(l.exportClause) ? yr5(l.exportClause.elements, _10) : _10(l.exportClause.name)); - break; - case 272: - let v10 = p5.importClause; - v10 && (v10.name && t12(v10.name), v10.namedBindings && (v10.namedBindings.kind === 274 ? t12(v10.namedBindings) : yr5(v10.namedBindings.elements, _10))); - break; - case 226: - Ja4(p5) !== 0 && t12(p5); - default: - Bt7(p5, _10); - } - } - } - }, b7 = class { - constructor(e10, t12, r9) { - this.fileName = e10, this.text = t12, this.skipTrivia = r9; - } - getLineAndCharacterOfPosition(e10) { - return to3(this, e10); - } - }, v7 = class { - constructor(e10) { - this.host = e10; - } - getCurrentSourceFile(e10) { - var t12, r9, a, _10, p5, d5, h5, l; - let v10 = this.host.getScriptSnapshot(e10); - if (!v10) - throw new Error("Could not find file: '" + e10 + "'."); - let y5 = getScriptKind(e10, this.host), C10 = this.host.getScriptVersion(e10), S10; - if (this.currentFileName !== e10) { - let k7 = { languageVersion: 99, impliedNodeFormat: getImpliedNodeFormatForFile(xi8(e10, this.host.getCurrentDirectory(), ((a = (r9 = (t12 = this.host).getCompilerHost) == null ? void 0 : r9.call(t12)) == null ? void 0 : a.getCanonicalFileName) || VT(this.host)), (l = (h5 = (d5 = (p5 = (_10 = this.host).getCompilerHost) == null ? void 0 : p5.call(_10)) == null ? void 0 : d5.getModuleResolutionCache) == null ? void 0 : h5.call(d5)) == null ? void 0 : l.getPackageJsonInfoCache(), this.host, this.host.getCompilationSettings()), setExternalModuleIndicator: RS(this.host.getCompilationSettings()) }; - S10 = z62(e10, v10, k7, C10, true, y5); - } else if (this.currentFileVersion !== C10) { - let k7 = v10.getChangeRange(this.currentFileScriptSnapshot); - S10 = u7(this.currentSourceFile, v10, C10, k7); - } - return S10 && (this.currentFileVersion = C10, this.currentFileName = e10, this.currentFileScriptSnapshot = v10, this.currentSourceFile = S10), this.currentSourceFile; - } - }, T7 = { isCancellationRequested: Xf, throwIfCancellationRequested: Rn5 }, S7 = class { - constructor(e10) { - this.cancellationToken = e10; - } - isCancellationRequested() { - return this.cancellationToken.isCancellationRequested(); - } - throwIfCancellationRequested() { - var e10; - if (this.isCancellationRequested()) - throw (e10 = xa2) == null || e10.instant(xa2.Phase.Session, "cancellationThrown", { kind: "CancellationTokenObject" }), new id2(); - } - }, x7 = class { - constructor(e10, t12 = 20) { - this.hostCancellationToken = e10, this.throttleWaitMilliseconds = t12, this.lastCancellationCheckTime = 0; - } - isCancellationRequested() { - let e10 = Sa4(); - return Math.abs(e10 - this.lastCancellationCheckTime) >= this.throttleWaitMilliseconds ? (this.lastCancellationCheckTime = e10, this.hostCancellationToken.isCancellationRequested()) : false; - } - throwIfCancellationRequested() { - var e10; - if (this.isCancellationRequested()) - throw (e10 = xa2) == null || e10.instant(xa2.Phase.Session, "cancellationThrown", { kind: "ThrottledCancellationToken" }), new id2(); - } - }, rg = ["getSemanticDiagnostics", "getSuggestionDiagnostics", "getCompilerOptionsDiagnostics", "getSemanticClassifications", "getEncodedSemanticClassifications", "getCodeFixesAtPosition", "getCombinedCodeFix", "applyCodeActionCommand", "organizeImports", "getEditsForFileRename", "getEmitOutput", "getApplicableRefactors", "getEditsForRefactor", "prepareCallHierarchy", "provideCallHierarchyIncomingCalls", "provideCallHierarchyOutgoingCalls", "provideInlayHints", "getSupportedCodeFixes"], w7 = [...rg, "getCompletionsAtPosition", "getCompletionEntryDetails", "getCompletionEntrySymbol", "getSignatureHelpItems", "getQuickInfoAtPosition", "getDefinitionAtPosition", "getDefinitionAndBoundSpan", "getImplementationAtPosition", "getTypeDefinitionAtPosition", "getReferencesAtPosition", "findReferences", "getDocumentHighlights", "getNavigateToItems", "getRenameInfo", "findRenameLocations", "getApplicableRefactors"], IS(KF()); - } }), cB = () => { - }, lB = () => { - }, uB = () => { - }, pB = () => { - }, fB = () => { - }, dB = () => { - }, mB = () => { - }, hB = () => { - }, yB = () => { - }, gB = () => { - }, bB2 = () => { - }, vB = () => { - }, TB = () => { - }, SB = () => { - }, xB = () => { - }, wB = () => { - }, CB = () => { - }, EB = () => { - }, AB = () => { - }, C7 = Vt4({ "src/services/_namespaces/ts.ts"() { - "use strict"; - Dr5(), Z82(), FF(), e7(), BF(), t72(), UF(), qF(), zF(), WF(), VF(), HF(), GF(), XF(), _B(), cB(), lB(), uB(), pB(), fB(), dB(), mB(), hB(), yB(), gB(), bB2(), r7(), n7(), vB(), TB(), i7(), SB(), xB(), wB(), CB(), EB(), AB(); - } }), kB = () => { - }, E7 = {}; - N52(E7, { ANONYMOUS: () => ANONYMOUS, AccessFlags: () => Ly, AssertionLevel: () => ay, AssignmentDeclarationKind: () => Wy, AssignmentKind: () => B02, Associativity: () => q02, BreakpointResolver: () => ts_BreakpointResolver_exports, BuilderFileEmit: () => BuilderFileEmit, BuilderProgramKind: () => BuilderProgramKind, BuilderState: () => BuilderState, BundleFileSectionKind: () => l02, CallHierarchy: () => ts_CallHierarchy_exports, CharacterCodes: () => n02, CheckFlags: () => Py, CheckMode: () => CheckMode, ClassificationType: () => ClassificationType, ClassificationTypeNames: () => ClassificationTypeNames, CommentDirectiveType: () => fy, Comparison: () => Zh, CompletionInfoFlags: () => CompletionInfoFlags, CompletionTriggerKind: () => CompletionTriggerKind, Completions: () => ts_Completions_exports, ConfigFileProgramReloadLevel: () => ConfigFileProgramReloadLevel, ContainerFlags: () => ContainerFlags, ContextFlags: () => Ty, CoreServicesShimHostAdapter: () => CoreServicesShimHostAdapter, Debug: () => N6, DiagnosticCategory: () => cd, Diagnostics: () => U8, DocumentHighlights: () => DocumentHighlights, ElementFlags: () => My, EmitFlags: () => fd, EmitHint: () => s02, EmitOnly: () => hy, EndOfLineState: () => EndOfLineState, EnumKind: () => Dy, ExitStatus: () => gy, ExportKind: () => ExportKind, Extension: () => i02, ExternalEmitHelpers: () => o02, FileIncludeKind: () => dy, FilePreprocessingDiagnosticsKind: () => my, FileSystemEntryKind: () => FileSystemEntryKind, FileWatcherEventKind: () => FileWatcherEventKind, FindAllReferences: () => ts_FindAllReferences_exports, FlattenLevel: () => FlattenLevel, FlowFlags: () => bl2, ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences, FunctionFlags: () => U02, GeneratedIdentifierFlags: () => uy, GetLiteralTextFlags: () => F02, GoToDefinition: () => ts_GoToDefinition_exports, HighlightSpanKind: () => HighlightSpanKind, IdentifierNameMap: () => IdentifierNameMap, IdentifierNameMultiMap: () => IdentifierNameMultiMap, ImportKind: () => ImportKind, ImportsNotUsedAsValues: () => Ky, IndentStyle: () => IndentStyle, IndexFlags: () => Jy, IndexKind: () => Fy, InferenceFlags: () => qy, InferencePriority: () => Uy, InlayHintKind: () => InlayHintKind, InlayHints: () => ts_InlayHints_exports, InternalEmitFlags: () => a02, InternalSymbolName: () => Iy, InvalidatedProjectKind: () => InvalidatedProjectKind, JsDoc: () => ts_JsDoc_exports, JsTyping: () => ts_JsTyping_exports, JsxEmit: () => Yy, JsxFlags: () => ly, JsxReferenceKind: () => Ry, LanguageServiceMode: () => LanguageServiceMode, LanguageServiceShimHostAdapter: () => LanguageServiceShimHostAdapter, LanguageVariant: () => t02, LexicalEnvironmentFlags: () => c02, ListFormat: () => u02, LogLevel: () => sy, MemberOverrideStatus: () => by, ModifierFlags: () => rd, ModuleDetectionKind: () => Hy, ModuleInstanceState: () => ModuleInstanceState, ModuleKind: () => Qy, ModuleResolutionKind: () => Vy, ModuleSpecifierEnding: () => G0, NavigateTo: () => ts_NavigateTo_exports, NavigationBar: () => ts_NavigationBar_exports, NewLineKind: () => Zy, NodeBuilderFlags: () => Sy, NodeCheckFlags: () => Ny, NodeFactoryFlags: () => X02, NodeFlags: () => td, NodeResolutionFeatures: () => NodeResolutionFeatures, ObjectFlags: () => sd, OperationCanceledException: () => id2, OperatorPrecedence: () => z0, OrganizeImports: () => ts_OrganizeImports_exports, OrganizeImportsMode: () => OrganizeImportsMode, OuterExpressionKinds: () => _0, OutliningElementsCollector: () => ts_OutliningElementsCollector_exports, OutliningSpanKind: () => OutliningSpanKind, OutputFileType: () => OutputFileType, PackageJsonAutoImportPreference: () => PackageJsonAutoImportPreference, PackageJsonDependencyGroup: () => PackageJsonDependencyGroup, PatternMatchKind: () => PatternMatchKind, PollingInterval: () => PollingInterval, PollingWatchKind: () => $y, PragmaKindFlags: () => p0, PrivateIdentifierKind: () => PrivateIdentifierKind, ProcessLevel: () => ProcessLevel, QuotePreference: () => QuotePreference, RelationComparisonResult: () => nd, Rename: () => ts_Rename_exports, ScriptElementKind: () => ScriptElementKind, ScriptElementKindModifier: () => ScriptElementKindModifier, ScriptKind: () => ld2, ScriptSnapshot: () => ScriptSnapshot, ScriptTarget: () => e02, SemanticClassificationFormat: () => SemanticClassificationFormat, SemanticMeaning: () => SemanticMeaning, SemicolonPreference: () => SemicolonPreference, SignatureCheckMode: () => SignatureCheckMode, SignatureFlags: () => _d, SignatureHelp: () => ts_SignatureHelp_exports, SignatureKind: () => jy, SmartSelectionRange: () => ts_SmartSelectionRange_exports, SnippetKind: () => pd, SortKind: () => ny, StructureIsReused: () => yy, SymbolAccessibility: () => Cy, SymbolDisplay: () => ts_SymbolDisplay_exports, SymbolDisplayPartKind: () => SymbolDisplayPartKind, SymbolFlags: () => ad2, SymbolFormatFlags: () => wy, SyntaxKind: () => ed, SyntheticSymbolKind: () => Ey, Ternary: () => zy, ThrottledCancellationToken: () => x7, TokenClass: () => TokenClass, TokenFlags: () => py, TransformFlags: () => ud2, TypeFacts: () => TypeFacts, TypeFlags: () => od2, TypeFormatFlags: () => xy, TypeMapKind: () => By, TypePredicateKind: () => Ay, TypeReferenceSerializationKind: () => ky, TypeScriptServicesFactory: () => TypeScriptServicesFactory, UnionReduction: () => vy, UpToDateStatusType: () => UpToDateStatusType, VarianceFlags: () => Oy, Version: () => Version, VersionRange: () => VersionRange, WatchDirectoryFlags: () => r0, WatchDirectoryKind: () => Xy, WatchFileKind: () => Gy, WatchLogLevel: () => WatchLogLevel, WatchType: () => WatchType, accessPrivateIdentifier: () => accessPrivateIdentifier, addDisposableResourceHelper: () => addDisposableResourceHelper, addEmitFlags: () => addEmitFlags, addEmitHelper: () => addEmitHelper, addEmitHelpers: () => addEmitHelpers, addInternalEmitFlags: () => addInternalEmitFlags, addNodeFactoryPatcher: () => AL, addObjectAllocatorPatcher: () => WO, addRange: () => Rr7, addRelatedInfo: () => nl2, addSyntheticLeadingComment: () => addSyntheticLeadingComment, addSyntheticTrailingComment: () => addSyntheticTrailingComment, addToSeen: () => IO, advancedAsyncSuperHelper: () => advancedAsyncSuperHelper, affectsDeclarationPathOptionDeclarations: () => affectsDeclarationPathOptionDeclarations, affectsEmitOptionDeclarations: () => affectsEmitOptionDeclarations, allKeysStartWithDot: () => allKeysStartWithDot, altDirectorySeparator: () => vg2, and: () => nE, append: () => xt8, appendIfUnique: () => Cv, arrayFrom: () => Rd, arrayIsEqualTo: () => _C, arrayIsHomogeneous: () => YM, arrayIsSorted: () => oC, arrayOf: () => SC, arrayReverseIterator: () => pC, arrayToMap: () => wC, arrayToMultiMap: () => Pv, arrayToNumericMap: () => CC, arraysEqual: () => bv, assertType: () => aE, assign: () => xC, assignHelper: () => assignHelper, asyncDelegator: () => asyncDelegator, asyncGeneratorHelper: () => asyncGeneratorHelper, asyncSuperHelper: () => asyncSuperHelper, asyncValues: () => asyncValues, attachFileToDiagnostics: () => $a3, awaitHelper: () => awaitHelper, awaiterHelper: () => awaiterHelper, base64decode: () => ZN, base64encode: () => KN, binarySearch: () => Ml4, binarySearchKey: () => kv, bindSourceFile: () => bindSourceFile, breakIntoCharacterSpans: () => breakIntoCharacterSpans, breakIntoWordSpans: () => breakIntoWordSpans, buildLinkParts: () => buildLinkParts, buildOpts: () => buildOpts, buildOverload: () => buildOverload, bundlerModuleNameResolver: () => bundlerModuleNameResolver, canBeConvertedToAsync: () => canBeConvertedToAsync, canHaveDecorators: () => q8, canHaveExportModifier: () => uL, canHaveFlowNode: () => vI, canHaveIllegalDecorators: () => WR, canHaveIllegalModifiers: () => VR, canHaveIllegalType: () => zR, canHaveIllegalTypeParameters: () => F8, canHaveJSDoc: () => dm, canHaveLocals: () => Sk, canHaveModifiers: () => q_, canHaveSymbol: () => Tk, canJsonReportNoInputFiles: () => canJsonReportNoInputFiles, canProduceDiagnostics: () => canProduceDiagnostics, canUsePropertyAccess: () => pL, canWatchAffectingLocation: () => canWatchAffectingLocation, canWatchAtTypes: () => canWatchAtTypes, canWatchDirectoryOrFile: () => canWatchDirectoryOrFile, cartesianProduct: () => sE, cast: () => gi7, chainBundle: () => chainBundle, chainDiagnosticMessages: () => tl2, changeAnyExtension: () => Yv, changeCompilerHostLikeToUseCache: () => changeCompilerHostLikeToUseCache, changeExtension: () => MM, changesAffectModuleResolution: () => qk, changesAffectingProgramStructure: () => zk, childIsDecorated: () => s23, classElementOrClassElementParameterIsDecorated: () => zP, classHasClassThisAssignment: () => classHasClassThisAssignment, classHasDeclaredOrExplicitlyAssignedName: () => classHasDeclaredOrExplicitlyAssignedName, classHasExplicitlyAssignedName: () => classHasExplicitlyAssignedName, classOrConstructorParameterIsDecorated: () => qP, classPrivateFieldGetHelper: () => classPrivateFieldGetHelper, classPrivateFieldInHelper: () => classPrivateFieldInHelper, classPrivateFieldSetHelper: () => classPrivateFieldSetHelper, classicNameResolver: () => classicNameResolver, classifier: () => ts_classifier_exports, cleanExtendedConfigCache: () => cleanExtendedConfigCache, clear: () => q52, clearMap: () => CO, clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher, climbPastPropertyAccess: () => climbPastPropertyAccess, climbPastPropertyOrElementAccess: () => climbPastPropertyOrElementAccess, clone: () => kC, cloneCompilerOptions: () => cloneCompilerOptions, closeFileWatcher: () => gO, closeFileWatcherOf: () => closeFileWatcherOf, codefix: () => ts_codefix_exports, collapseTextChangeRangesAcrossMultipleVersions: () => nA, collectExternalModuleInfo: () => collectExternalModuleInfo, combine: () => uC, combinePaths: () => hr5, commentPragmas: () => qd, commonOptionsWithBuild: () => commonOptionsWithBuild, commonPackageFolders: () => V02, compact: () => cC, compareBooleans: () => GC, compareDataObjects: () => ES, compareDiagnostics: () => F23, compareDiagnosticsSkipRelatedInformation: () => xd, compareEmitHelpers: () => compareEmitHelpers, compareNumberOfDirectorySeparators: () => OM2, comparePaths: () => OE, comparePathsCaseInsensitive: () => NE, comparePathsCaseSensitive: () => IE, comparePatternKeys: () => comparePatternKeys, compareProperties: () => HC, compareStringsCaseInsensitive: () => Fd, compareStringsCaseInsensitiveEslintCompatible: () => zC, compareStringsCaseSensitive: () => Ci7, compareStringsCaseSensitiveUI: () => VC, compareTextSpans: () => UC, compareValues: () => kr7, compileOnSaveCommandLineOption: () => compileOnSaveCommandLineOption, compilerOptionsAffectDeclarationPath: () => dM, compilerOptionsAffectEmit: () => fM, compilerOptionsAffectSemanticDiagnostics: () => pM, compilerOptionsDidYouMeanDiagnostics: () => compilerOptionsDidYouMeanDiagnostics, compilerOptionsIndicateEsModules: () => compilerOptionsIndicateEsModules, compose: () => BC, computeCommonSourceDirectoryOfFilenames: () => computeCommonSourceDirectoryOfFilenames, computeLineAndCharacterOfPosition: () => Sg, computeLineOfPosition: () => __, computeLineStarts: () => Vd, computePositionOfLineAndCharacter: () => Tg, computeSignature: () => computeSignature, computeSignatureWithDiagnostics: () => computeSignatureWithDiagnostics, computeSuggestionDiagnostics: () => computeSuggestionDiagnostics, concatenate: () => y_, concatenateDiagnosticMessageChains: () => XO, consumesNodeCoreModules: () => consumesNodeCoreModules, contains: () => es7, containsIgnoredPath: () => nx, containsObjectRestOrSpread: () => U62, containsParseError: () => xl3, containsPath: () => Kv, convertCompilerOptionsForTelemetry: () => convertCompilerOptionsForTelemetry, convertCompilerOptionsFromJson: () => convertCompilerOptionsFromJson, convertJsonOption: () => convertJsonOption, convertToBase64: () => gS, convertToJson: () => convertToJson, convertToObject: () => convertToObject, convertToOptionsWithAbsolutePaths: () => convertToOptionsWithAbsolutePaths, convertToRelativePath: () => LE, convertToTSConfig: () => convertToTSConfig, convertTypeAcquisitionFromJson: () => convertTypeAcquisitionFromJson, copyComments: () => copyComments, copyEntries: () => Gk, copyLeadingComments: () => copyLeadingComments, copyProperties: () => PC, copyTrailingAsLeadingComments: () => copyTrailingAsLeadingComments, copyTrailingComments: () => copyTrailingComments, couldStartTrivia: () => zE, countWhere: () => B52, createAbstractBuilder: () => createAbstractBuilder, createAccessorPropertyBackingField: () => xj, createAccessorPropertyGetRedirector: () => wj, createAccessorPropertySetRedirector: () => Cj, createBaseNodeFactory: () => Lx, createBinaryExpressionTrampoline: () => hj, createBindingHelper: () => createBindingHelper, createBuildInfo: () => createBuildInfo, createBuilderProgram: () => createBuilderProgram, createBuilderProgramUsingProgramBuildInfo: () => createBuilderProgramUsingProgramBuildInfo, createBuilderStatusReporter: () => createBuilderStatusReporter, createCacheWithRedirects: () => createCacheWithRedirects, createCacheableExportInfoMap: () => createCacheableExportInfoMap, createCachedDirectoryStructureHost: () => createCachedDirectoryStructureHost, createClassNamedEvaluationHelperBlock: () => createClassNamedEvaluationHelperBlock, createClassThisAssignmentBlock: () => createClassThisAssignmentBlock, createClassifier: () => createClassifier, createCommentDirectivesMap: () => gD, createCompilerDiagnostic: () => fl2, createCompilerDiagnosticForInvalidCustomType: () => createCompilerDiagnosticForInvalidCustomType, createCompilerDiagnosticFromMessageChain: () => GO, createCompilerHost: () => createCompilerHost, createCompilerHostFromProgramHost: () => createCompilerHostFromProgramHost, createCompilerHostWorker: () => createCompilerHostWorker, createDetachedDiagnostic: () => Ao2, createDiagnosticCollection: () => iN, createDiagnosticForFileFromMessageChain: () => QD, createDiagnosticForNode: () => HD, createDiagnosticForNodeArray: () => GD, createDiagnosticForNodeArrayFromMessageChain: () => $D, createDiagnosticForNodeFromMessageChain: () => XD, createDiagnosticForNodeInSourceFile: () => W32, createDiagnosticForRange: () => KD, createDiagnosticMessageChainFromDiagnostic: () => YD, createDiagnosticReporter: () => createDiagnosticReporter, createDocumentPositionMapper: () => createDocumentPositionMapper, createDocumentRegistry: () => createDocumentRegistry, createDocumentRegistryInternal: () => createDocumentRegistryInternal, createEmitAndSemanticDiagnosticsBuilderProgram: () => createEmitAndSemanticDiagnosticsBuilderProgram, createEmitHelperFactory: () => createEmitHelperFactory, createEmptyExports: () => yR, createExpressionForJsxElement: () => bR, createExpressionForJsxFragment: () => vR, createExpressionForObjectLiteralElementLike: () => AR, createExpressionForPropertyName: () => k8, createExpressionFromEntityName: () => A8, createExternalHelpersImportDeclarationIfNeeded: () => JR, createFileDiagnostic: () => j23, createFileDiagnosticFromMessageChain: () => Kg, createForOfBindingStatement: () => TR, createGetCanonicalFileName: () => Bd, createGetSourceFile: () => createGetSourceFile, createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode, createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName, createGetSymbolWalker: () => createGetSymbolWalker, createIncrementalCompilerHost: () => createIncrementalCompilerHost, createIncrementalProgram: () => createIncrementalProgram, createInputFiles: () => LL, createInputFilesWithFilePaths: () => jx, createInputFilesWithFileTexts: () => Fx, createJsxFactoryExpression: () => E8, createLanguageService: () => eB, createLanguageServiceSourceFile: () => z62, createMemberAccessForPropertyName: () => Lm, createModeAwareCache: () => createModeAwareCache, createModeAwareCacheKey: () => createModeAwareCacheKey, createModuleNotFoundChain: () => tD, createModuleResolutionCache: () => createModuleResolutionCache, createModuleResolutionLoader: () => createModuleResolutionLoader, createModuleSpecifierResolutionHost: () => createModuleSpecifierResolutionHost, createMultiMap: () => jd, createNodeConverters: () => Jx, createNodeFactory: () => Ad, createOptionNameMap: () => createOptionNameMap, createOverload: () => createOverload, createPackageJsonImportFilter: () => createPackageJsonImportFilter, createPackageJsonInfo: () => createPackageJsonInfo, createParenthesizerRules: () => createParenthesizerRules, createPatternMatcher: () => createPatternMatcher, createPrependNodes: () => createPrependNodes, createPrinter: () => createPrinter, createPrinterWithDefaults: () => createPrinterWithDefaults, createPrinterWithRemoveComments: () => createPrinterWithRemoveComments, createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape, createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon, createProgram: () => createProgram, createProgramHost: () => createProgramHost, createPropertyNameNodeForIdentifierOrLiteral: () => _L, createQueue: () => OC, createRange: () => Tm, createRedirectedBuilderProgram: () => createRedirectedBuilderProgram, createResolutionCache: () => createResolutionCache, createRuntimeTypeSerializer: () => createRuntimeTypeSerializer, createScanner: () => ns6, createSemanticDiagnosticsBuilderProgram: () => createSemanticDiagnosticsBuilderProgram, createSet: () => MC, createSolutionBuilder: () => createSolutionBuilder, createSolutionBuilderHost: () => createSolutionBuilderHost, createSolutionBuilderWithWatch: () => createSolutionBuilderWithWatch, createSolutionBuilderWithWatchHost: () => createSolutionBuilderWithWatchHost, createSortedArray: () => aC, createSourceFile: () => H82, createSourceMapGenerator: () => createSourceMapGenerator, createSourceMapSource: () => JL, createSuperAccessVariableStatement: () => createSuperAccessVariableStatement, createSymbolTable: () => Bk, createSymlinkCache: () => bM, createSystemWatchFunctions: () => createSystemWatchFunctions, createTextChange: () => createTextChange, createTextChangeFromStartLength: () => createTextChangeFromStartLength, createTextChangeRange: () => Xd, createTextRangeFromNode: () => createTextRangeFromNode, createTextRangeFromSpan: () => createTextRangeFromSpan, createTextSpan: () => w_, createTextSpanFromBounds: () => Hi5, createTextSpanFromNode: () => createTextSpanFromNode, createTextSpanFromRange: () => createTextSpanFromRange, createTextSpanFromStringLiteralLikeContent: () => createTextSpanFromStringLiteralLikeContent, createTextWriter: () => pN, createTokenRange: () => iO, createTypeChecker: () => createTypeChecker, createTypeReferenceDirectiveResolutionCache: () => createTypeReferenceDirectiveResolutionCache, createTypeReferenceResolutionLoader: () => createTypeReferenceResolutionLoader, createUnparsedSourceFile: () => NL, createWatchCompilerHost: () => createWatchCompilerHost2, createWatchCompilerHostOfConfigFile: () => createWatchCompilerHostOfConfigFile, createWatchCompilerHostOfFilesAndCompilerOptions: () => createWatchCompilerHostOfFilesAndCompilerOptions, createWatchFactory: () => createWatchFactory, createWatchHost: () => createWatchHost, createWatchProgram: () => createWatchProgram, createWatchStatusReporter: () => createWatchStatusReporter, createWriteFileMeasuringIO: () => createWriteFileMeasuringIO, declarationNameToString: () => z32, decodeMappings: () => decodeMappings, decodedTextSpanIntersectsWith: () => Eg2, decorateHelper: () => decorateHelper, deduplicate: () => xv, defaultIncludeSpec: () => defaultIncludeSpec, defaultInitCompilerOptions: () => defaultInitCompilerOptions, defaultMaximumTruncationLength: () => fx, detectSortCaseSensitivity: () => sC, diagnosticCategoryName: () => TE, diagnosticToString: () => diagnosticToString, directoryProbablyExists: () => vS, directorySeparator: () => fn6, displayPart: () => displayPart, displayPartsToString: () => ZF, disposeEmitNodes: () => disposeEmitNodes, disposeResourcesHelper: () => disposeResourcesHelper, documentSpansEqual: () => documentSpansEqual, dumpTracingLegend: () => dumpTracingLegend, elementAt: () => Wv, elideNodes: () => bj, emitComments: () => nS, emitDetachedComments: () => IN, emitFiles: () => emitFiles, emitFilesAndReportErrors: () => emitFilesAndReportErrors, emitFilesAndReportErrorsAndGetExitStatus: () => emitFilesAndReportErrorsAndGetExitStatus, emitModuleKindIsNonNodeESM: () => KO, emitNewLineBeforeLeadingCommentOfPosition: () => PN, emitNewLineBeforeLeadingComments: () => tS, emitNewLineBeforeLeadingCommentsOfPosition: () => rS, emitSkippedWithNoDiagnostics: () => emitSkippedWithNoDiagnostics, emitUsingBuildInfo: () => emitUsingBuildInfo, emptyArray: () => $e9, emptyFileSystemEntries: () => Mx, emptyMap: () => pg, emptyOptions: () => emptyOptions, emptySet: () => zv, endsWith: () => ts6, ensurePathIsNonModuleName: () => hg2, ensureScriptKind: () => WS, ensureTrailingDirectorySeparator: () => zo3, entityNameToString: () => vi8, enumerateInsertsAndDeletes: () => oE, equalOwnProperties: () => Dv, equateStringsCaseInsensitive: () => s_, equateStringsCaseSensitive: () => Ll3, equateValues: () => _o3, esDecorateHelper: () => esDecorateHelper, escapeJsxAttributeString: () => zT, escapeLeadingUnderscores: () => Mn5, escapeNonAsciiString: () => Td, escapeSnippetText: () => sL, escapeString: () => vd, every: () => so3, expandPreOrPostfixIncrementOrDecrementExpression: () => kR, explainFiles: () => explainFiles, explainIfFileIsRedirectAndImpliedFormat: () => explainIfFileIsRedirectAndImpliedFormat, exportAssignmentIsAlias: () => D0, exportStarHelper: () => exportStarHelper, expressionResultIsUnused: () => tL, extend: () => DC, extendsHelper: () => extendsHelper, extensionFromPath: () => rl3, extensionIsTS: () => KS, extensionsNotSupportingExtensionlessResolution: () => wm, externalHelpersModuleNameText: () => xm2, factory: () => Ln7, fileExtensionIs: () => La2, fileExtensionIsOneOf: () => ei7, fileIncludeReasonToDiagnostics: () => fileIncludeReasonToDiagnostics, fileShouldUseJavaScriptRequire: () => fileShouldUseJavaScriptRequire, filter: () => $r4, filterMutate: () => U52, filterSemanticDiagnostics: () => filterSemanticDiagnostics, find: () => Yr7, findAncestor: () => Kr6, findBestPatternMatch: () => Fv, findChildOfKind: () => findChildOfKind, findComputedPropertyNameCacheAssignment: () => Ej, findConfigFile: () => findConfigFile, findContainingList: () => findContainingList, findDiagnosticForNode: () => findDiagnosticForNode, findFirstNonJsxWhitespaceToken: () => findFirstNonJsxWhitespaceToken, findIndex: () => _l3, findLast: () => ig, findLastIndex: () => j52, findListItemInfo: () => findListItemInfo, findMap: () => F5, findModifier: () => findModifier, findNextToken: () => findNextToken, findPackageJson: () => findPackageJson, findPackageJsons: () => findPackageJsons, findPrecedingMatchingToken: () => findPrecedingMatchingToken, findPrecedingToken: () => findPrecedingToken, findSuperStatementIndexPath: () => findSuperStatementIndexPath, findTokenOnLeftOfPosition: () => findTokenOnLeftOfPosition, findUseStrictPrologue: () => P82, first: () => og, firstDefined: () => ng, firstDefinedIterator: () => L52, firstIterator: () => mC, firstOrOnly: () => firstOrOnly, firstOrUndefined: () => g_, firstOrUndefinedIterator: () => dC, fixupCompilerOptions: () => fixupCompilerOptions, flatMap: () => Bo3, flatMapIterator: () => V52, flatMapToMutable: () => Tv, flatten: () => o_, flattenCommaList: () => kj, flattenDestructuringAssignment: () => flattenDestructuringAssignment, flattenDestructuringBinding: () => flattenDestructuringBinding, flattenDiagnosticMessageText: () => flattenDiagnosticMessageText, forEach: () => yr5, forEachAncestor: () => Wk, forEachAncestorDirectory: () => e4, forEachChild: () => Bt7, forEachChildRecursively: () => eg, forEachEmittedFile: () => forEachEmittedFile, forEachEnclosingBlockScopeContainer: () => qD, forEachEntry: () => Vk2, forEachExternalModuleToImportFrom: () => forEachExternalModuleToImportFrom, forEachImportClauseDeclaration: () => mI, forEachKey: () => Hk, forEachLeadingCommentRange: () => WE, forEachNameInAccessChainWalkingLeft: () => JO, forEachPropertyAssignment: () => a2, forEachResolvedProjectReference: () => forEachResolvedProjectReference, forEachReturnStatement: () => uP, forEachRight: () => M52, forEachTrailingCommentRange: () => VE, forEachTsConfigPropArray: () => Y32, forEachUnique: () => forEachUnique, forEachYieldExpression: () => pP, forSomeAncestorDirectory: () => kO, formatColorAndReset: () => formatColorAndReset, formatDiagnostic: () => formatDiagnostic, formatDiagnostics: () => formatDiagnostics, formatDiagnosticsWithColorAndContext: () => formatDiagnosticsWithColorAndContext, formatGeneratedName: () => Pd, formatGeneratedNamePart: () => Z0, formatLocation: () => formatLocation, formatMessage: () => HO, formatStringFromArgs: () => I_, formatting: () => ts_formatting_exports, fullTripleSlashAMDReferencePathRegEx: () => K23, fullTripleSlashReferencePathRegEx: () => Y23, generateDjb2Hash: () => generateDjb2Hash, generateTSConfig: () => generateTSConfig, generatorHelper: () => generatorHelper, getAdjustedReferenceLocation: () => getAdjustedReferenceLocation, getAdjustedRenameLocation: () => getAdjustedRenameLocation, getAliasDeclarationFromName: () => ET, getAllAccessorDeclarations: () => P23, getAllDecoratorsOfClass: () => getAllDecoratorsOfClass, getAllDecoratorsOfClassElement: () => getAllDecoratorsOfClassElement, getAllJSDocTags: () => Q42, getAllJSDocTagsOfKind: () => vA, getAllKeys: () => vC, getAllProjectOutputs: () => getAllProjectOutputs, getAllSuperTypeNodes: () => IT, getAllUnscopedEmitHelpers: () => getAllUnscopedEmitHelpers, getAllowJSCompilerOption: () => BS, getAllowSyntheticDefaultImports: () => iM, getAncestor: () => RI, getAnyExtensionFromPath: () => dd, getAreDeclarationMapsEnabled: () => nM, getAssignedExpandoInitializer: () => nI, getAssignedName: () => M42, getAssignedNameOfIdentifier: () => getAssignedNameOfIdentifier, getAssignmentDeclarationKind: () => Ja4, getAssignmentDeclarationPropertyAccessKind: () => uT, getAssignmentTargetKind: () => TT, getAutomaticTypeDirectiveNames: () => getAutomaticTypeDirectiveNames, getBaseFileName: () => T_, getBinaryOperatorPrecedence: () => pl3, getBuildInfo: () => getBuildInfo, getBuildInfoFileVersionMap: () => getBuildInfoFileVersionMap, getBuildInfoText: () => getBuildInfoText, getBuildOrderFromAnyBuildOrder: () => getBuildOrderFromAnyBuildOrder, getBuilderCreationParameters: () => getBuilderCreationParameters, getBuilderFileEmit: () => getBuilderFileEmit, getCheckFlags: () => CS, getClassExtendsHeritageElement: () => DT, getClassLikeDeclarationOfSymbol: () => kS, getCombinedLocalAndExportSymbolFlags: () => TO, getCombinedModifierFlags: () => $d, getCombinedNodeFlags: () => C_, getCombinedNodeFlagsAlwaysIncludeJSDoc: () => aA, getCommentRange: () => getCommentRange, getCommonSourceDirectory: () => getCommonSourceDirectory, getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig, getCompilerOptionValue: () => j02, getCompilerOptionsDiffValue: () => getCompilerOptionsDiffValue, getConditions: () => getConditions, getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics, getConstantValue: () => getConstantValue, getContainerFlags: () => getContainerFlags, getContainerNode: () => getContainerNode, getContainingClass: () => E02, getContainingClassExcludingClassDecorators: () => PP, getContainingClassStaticBlock: () => kP, getContainingFunction: () => EP, getContainingFunctionDeclaration: () => AP, getContainingFunctionOrClassStaticBlock: () => DP, getContainingNodeArray: () => rL, getContainingObjectLiteralElement: () => p7, getContextualTypeFromParent: () => getContextualTypeFromParent, getContextualTypeFromParentOrAncestorTypeNode: () => getContextualTypeFromParentOrAncestorTypeNode, getCurrentTime: () => getCurrentTime, getDeclarationDiagnostics: () => getDeclarationDiagnostics, getDeclarationEmitExtensionForPath: () => XT, getDeclarationEmitOutputFilePath: () => hN, getDeclarationEmitOutputFilePathWorker: () => GT, getDeclarationFromName: () => OI, getDeclarationModifierFlagsFromSymbol: () => bO, getDeclarationOfKind: () => jk, getDeclarationsOfKind: () => Fk, getDeclaredExpandoInitializer: () => tI, getDecorators: () => _A, getDefaultCompilerOptions: () => _7, getDefaultExportInfoWorker: () => getDefaultExportInfoWorker, getDefaultFormatCodeSettings: () => getDefaultFormatCodeSettings, getDefaultLibFileName: () => T4, getDefaultLibFilePath: () => sB, getDefaultLikeExportInfo: () => getDefaultLikeExportInfo, getDiagnosticText: () => getDiagnosticText, getDiagnosticsWithinSpan: () => getDiagnosticsWithinSpan, getDirectoryPath: () => $i5, getDirectoryToWatchFailedLookupLocation: () => getDirectoryToWatchFailedLookupLocation, getDirectoryToWatchFailedLookupLocationFromTypeRoot: () => getDirectoryToWatchFailedLookupLocationFromTypeRoot, getDocumentPositionMapper: () => getDocumentPositionMapper, getESModuleInterop: () => U23, getEditsForFileRename: () => getEditsForFileRename, getEffectiveBaseTypeNode: () => kT, getEffectiveConstraintOfTypeParameter: () => wA, getEffectiveContainerForJSDocTemplateTag: () => SI, getEffectiveImplementsTypeNodes: () => PT, getEffectiveInitializer: () => sT, getEffectiveJSDocHost: () => y23, getEffectiveModifierFlags: () => bm, getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => cS, getEffectiveModifierFlagsNoCache: () => uS, getEffectiveReturnTypeNode: () => AN, getEffectiveSetAccessorTypeAnnotationNode: () => DN, getEffectiveTypeAnnotationNode: () => I23, getEffectiveTypeParameterDeclarations: () => xA, getEffectiveTypeRoots: () => getEffectiveTypeRoots, getElementOrPropertyAccessArgumentExpressionOrName: () => fm, getElementOrPropertyAccessName: () => io4, getElementsOfBindingOrAssignmentPattern: () => j8, getEmitDeclarations: () => z23, getEmitFlags: () => ti7, getEmitHelpers: () => getEmitHelpers, getEmitModuleDetectionKind: () => jS, getEmitModuleKind: () => ni7, getEmitModuleResolutionKind: () => O_, getEmitScriptTarget: () => Ql3, getEmitStandardClassFields: () => uM, getEnclosingBlockScopeContainer: () => S02, getEnclosingContainer: () => UD, getEncodedSemanticClassifications: () => getEncodedSemanticClassifications, getEncodedSyntacticClassifications: () => getEncodedSyntacticClassifications, getEndLinePosition: () => P32, getEntityNameFromTypeNode: () => BP, getEntrypointsFromPackageJsonInfo: () => getEntrypointsFromPackageJsonInfo, getErrorCountForSummary: () => getErrorCountForSummary, getErrorSpanForNode: () => Zg, getErrorSummaryText: () => getErrorSummaryText, getEscapedTextOfIdentifierOrLiteral: () => JT, getEscapedTextOfJsxAttributeName: () => yL, getEscapedTextOfJsxNamespacedName: () => Yl4, getExpandoInitializer: () => A_, getExportAssignmentExpression: () => AT, getExportInfoMap: () => getExportInfoMap, getExportNeedsImportStarHelper: () => getExportNeedsImportStarHelper, getExpressionAssociativity: () => tN, getExpressionPrecedence: () => rN, getExternalHelpersModuleName: () => O8, getExternalModuleImportEqualsDeclarationExpression: () => VP, getExternalModuleName: () => d23, getExternalModuleNameFromDeclaration: () => dN, getExternalModuleNameFromPath: () => E23, getExternalModuleNameLiteral: () => jR, getExternalModuleRequireArgument: () => HP, getFallbackOptions: () => getFallbackOptions, getFileEmitOutput: () => getFileEmitOutput, getFileMatcherPatterns: () => zS, getFileNamesFromConfigSpecs: () => getFileNamesFromConfigSpecs, getFileWatcherEventKind: () => getFileWatcherEventKind, getFilesInErrorForSummary: () => getFilesInErrorForSummary, getFirstConstructorWithBody: () => YT, getFirstIdentifier: () => qN, getFirstNonSpaceCharacterPosition: () => getFirstNonSpaceCharacterPosition, getFirstProjectOutput: () => getFirstProjectOutput, getFixableErrorSpanExpression: () => getFixableErrorSpanExpression, getFormatCodeSettingsForWriting: () => getFormatCodeSettingsForWriting, getFullWidth: () => om, getFunctionFlags: () => zI, getHeritageClause: () => mm, getHostSignatureFromJSDoc: () => h22, getIdentifierAutoGenerate: () => getIdentifierAutoGenerate, getIdentifierGeneratedImportReference: () => getIdentifierGeneratedImportReference, getIdentifierTypeArguments: () => getIdentifierTypeArguments, getImmediatelyInvokedFunctionExpression: () => LP, getImpliedNodeFormatForFile: () => getImpliedNodeFormatForFile, getImpliedNodeFormatForFileWorker: () => getImpliedNodeFormatForFileWorker, getImportNeedsImportDefaultHelper: () => getImportNeedsImportDefaultHelper, getImportNeedsImportStarHelper: () => getImportNeedsImportStarHelper, getIndentSize: () => Jo2, getIndentString: () => w23, getInferredLibraryNameResolveFrom: () => getInferredLibraryNameResolveFrom, getInitializedVariables: () => hO, getInitializerOfBinaryExpression: () => pT, getInitializerOfBindingOrAssignmentElement: () => J8, getInterfaceBaseTypeNodes: () => NT, getInternalEmitFlags: () => xD, getInvokedExpression: () => UP, getIsolatedModules: () => B23, getJSDocAugmentsTag: () => B42, getJSDocClassTag: () => lA, getJSDocCommentRanges: () => G32, getJSDocCommentsAndTags: () => gT, getJSDocDeprecatedTag: () => mA, getJSDocDeprecatedTagNoCache: () => G42, getJSDocEnumTag: () => hA, getJSDocHost: () => vT, getJSDocImplementsTags: () => U42, getJSDocOverrideTagNoCache: () => H42, getJSDocParameterTags: () => Kd, getJSDocParameterTagsNoCache: () => J42, getJSDocPrivateTag: () => pA, getJSDocPrivateTagNoCache: () => z42, getJSDocProtectedTag: () => fA, getJSDocProtectedTagNoCache: () => W42, getJSDocPublicTag: () => uA, getJSDocPublicTagNoCache: () => q42, getJSDocReadonlyTag: () => dA, getJSDocReadonlyTagNoCache: () => V42, getJSDocReturnTag: () => X42, getJSDocReturnType: () => $42, getJSDocRoot: () => g22, getJSDocSatisfiesExpressionType: () => hL, getJSDocSatisfiesTag: () => kg3, getJSDocTags: () => Ul4, getJSDocTagsNoCache: () => bA, getJSDocTemplateTag: () => gA, getJSDocThisTag: () => yA, getJSDocType: () => em, getJSDocTypeAliasName: () => K0, getJSDocTypeAssertionType: () => NR, getJSDocTypeParameterDeclarations: () => eS, getJSDocTypeParameterTags: () => j42, getJSDocTypeParameterTagsNoCache: () => F42, getJSDocTypeTag: () => Zd, getJSXImplicitImportBase: () => hM, getJSXRuntimeImport: () => yM, getJSXTransformEnabled: () => mM, getKeyForCompilerOptions: () => getKeyForCompilerOptions, getLanguageVariant: () => R02, getLastChild: () => DS, getLeadingCommentRanges: () => Wo3, getLeadingCommentRangesOfNode: () => cP, getLeftmostAccessExpression: () => R23, getLeftmostExpression: () => RO, getLineAndCharacterOfPosition: () => to3, getLineInfo: () => getLineInfo, getLineOfLocalPosition: () => SN, getLineOfLocalPositionFromLineMap: () => Ca5, getLineStartPositionForPosition: () => getLineStartPositionForPosition, getLineStarts: () => Ia4, getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => fO, getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => pO, getLinesBetweenPositions: () => x_, getLinesBetweenRangeEndAndRangeStart: () => cO, getLinesBetweenRangeEndPositions: () => lO, getLiteralText: () => wD, getLocalNameForExternalImport: () => RR, getLocalSymbolForExportDefault: () => GN, getLocaleSpecificMessage: () => N_, getLocaleTimeString: () => getLocaleTimeString, getMappedContextSpan: () => getMappedContextSpan, getMappedDocumentSpan: () => getMappedDocumentSpan, getMappedLocation: () => getMappedLocation, getMatchedFileSpec: () => getMatchedFileSpec, getMatchedIncludeSpec: () => getMatchedIncludeSpec, getMeaningFromDeclaration: () => getMeaningFromDeclaration, getMeaningFromLocation: () => getMeaningFromLocation, getMembersOfDeclaration: () => dP, getModeForFileReference: () => getModeForFileReference, getModeForResolutionAtIndex: () => getModeForResolutionAtIndex, getModeForUsageLocation: () => getModeForUsageLocation, getModifiedTime: () => getModifiedTime, getModifiers: () => hd, getModuleInstanceState: () => getModuleInstanceState, getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt, getModuleSpecifierEndingPreference: () => PM2, getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost, getNameForExportedSymbol: () => getNameForExportedSymbol, getNameFromIndexInfo: () => zD, getNameFromPropertyName: () => getNameFromPropertyName, getNameOfAccessExpression: () => OO, getNameOfCompilerOptionValue: () => getNameOfCompilerOptionValue, getNameOfDeclaration: () => Bl3, getNameOfExpando: () => oI, getNameOfJSDocTypedef: () => O42, getNameOrArgument: () => lT, getNameTable: () => tB, getNamesForExportedSymbol: () => getNamesForExportedSymbol, getNamespaceDeclarationNode: () => dT, getNewLineCharacter: () => TS, getNewLineKind: () => getNewLineKind, getNewLineOrDefaultFromHost: () => getNewLineOrDefaultFromHost, getNewTargetContainer: () => OP, getNextJSDocCommentLocation: () => bT, getNodeForGeneratedName: () => vj, getNodeId: () => getNodeId, getNodeKind: () => getNodeKind, getNodeModifiers: () => getNodeModifiers, getNodeModulePathParts: () => cL, getNonAssignedNameOfDeclaration: () => Yd, getNonAssignmentOperatorForCompoundAssignment: () => getNonAssignmentOperatorForCompoundAssignment, getNonAugmentationDeclaration: () => B32, getNonDecoratorTokenPosOfNode: () => bD, getNormalizedAbsolutePath: () => Pa3, getNormalizedAbsolutePathWithoutRoot: () => PE, getNormalizedPathComponents: () => Wd, getObjectFlags: () => Rf, getOperator: () => x23, getOperatorAssociativity: () => FT, getOperatorPrecedence: () => BT, getOptionFromName: () => getOptionFromName, getOptionsForLibraryResolution: () => getOptionsForLibraryResolution, getOptionsNameMap: () => getOptionsNameMap, getOrCreateEmitNode: () => getOrCreateEmitNode, getOrCreateExternalHelpersModuleNameIfNeeded: () => M8, getOrUpdate: () => $52, getOriginalNode: () => jl3, getOriginalNodeId: () => getOriginalNodeId, getOriginalSourceFile: () => eN, getOutputDeclarationFileName: () => getOutputDeclarationFileName, getOutputExtension: () => getOutputExtension, getOutputFileNames: () => getOutputFileNames, getOutputPathsFor: () => getOutputPathsFor, getOutputPathsForBundle: () => getOutputPathsForBundle, getOwnEmitOutputFilePath: () => mN, getOwnKeys: () => sg, getOwnValues: () => TC, getPackageJsonInfo: () => getPackageJsonInfo, getPackageJsonTypesVersionsPaths: () => getPackageJsonTypesVersionsPaths, getPackageJsonsVisibleToFile: () => getPackageJsonsVisibleToFile, getPackageNameFromTypesPackageName: () => getPackageNameFromTypesPackageName, getPackageScopeForPath: () => getPackageScopeForPath, getParameterSymbolFromJSDoc: () => TI, getParameterTypeNode: () => lL, getParentNodeInSpan: () => getParentNodeInSpan, getParseTreeNode: () => Fl3, getParsedCommandLineOfConfigFile: () => getParsedCommandLineOfConfigFile, getPathComponents: () => Ai7, getPathComponentsRelativeTo: () => gg2, getPathFromPathComponents: () => Uo2, getPathUpdater: () => getPathUpdater, getPathsBasePath: () => gN, getPatternFromSpec: () => CM2, getPendingEmitKind: () => getPendingEmitKind, getPositionOfLineAndCharacter: () => UE, getPossibleGenericSignatures: () => getPossibleGenericSignatures, getPossibleOriginalInputExtensionForExtension: () => yN, getPossibleTypeArgumentsInfo: () => getPossibleTypeArgumentsInfo, getPreEmitDiagnostics: () => getPreEmitDiagnostics, getPrecedingNonSpaceCharacterPosition: () => getPrecedingNonSpaceCharacterPosition, getPrivateIdentifier: () => getPrivateIdentifier, getProperties: () => getProperties, getProperty: () => bC, getPropertyArrayElementValue: () => wP, getPropertyAssignmentAliasLikeExpression: () => JI, getPropertyNameForPropertyNameNode: () => gd, getPropertyNameForUniqueESSymbol: () => VI, getPropertyNameFromType: () => SL, getPropertyNameOfBindingOrAssignmentElement: () => qR, getPropertySymbolFromBindingElement: () => getPropertySymbolFromBindingElement, getPropertySymbolsFromContextualType: () => f7, getQuoteFromPreference: () => getQuoteFromPreference, getQuotePreference: () => getQuotePreference, getRangesWhere: () => eC, getRefactorContextSpan: () => getRefactorContextSpan, getReferencedFileLocation: () => getReferencedFileLocation, getRegexFromPattern: () => Ff, getRegularExpressionForWildcard: () => jf, getRegularExpressionsForWildcards: () => V23, getRelativePathFromDirectory: () => Zv, getRelativePathFromFile: () => JE, getRelativePathToDirectoryOrUrl: () => bg3, getRenameLocation: () => getRenameLocation, getReplacementSpanForContextToken: () => getReplacementSpanForContextToken, getResolutionDiagnostic: () => getResolutionDiagnostic, getResolutionModeOverrideForClause: () => getResolutionModeOverrideForClause, getResolveJsonModule: () => FS, getResolvePackageJsonExports: () => oM, getResolvePackageJsonImports: () => sM, getResolvedExternalModuleName: () => HT, getResolvedModule: () => $k, getResolvedTypeReferenceDirective: () => Kk, getRestIndicatorOfBindingOrAssignmentElement: () => UR, getRestParameterElementType: () => fP, getRightMostAssignedExpression: () => l22, getRootDeclaration: () => hm, getRootDirectoryOfResolutionCache: () => getRootDirectoryOfResolutionCache, getRootLength: () => Ei7, getRootPathSplitLength: () => getRootPathSplitLength, getScriptKind: () => getScriptKind, getScriptKindFromFileName: () => VS, getScriptTargetFeatures: () => getScriptTargetFeatures, getSelectedEffectiveModifierFlags: () => sS, getSelectedSyntacticModifierFlags: () => _S, getSemanticClassifications: () => getSemanticClassifications, getSemanticJsxChildren: () => nN, getSetAccessorTypeAnnotationNode: () => xN, getSetAccessorValueParameter: () => D23, getSetExternalModuleIndicator: () => RS, getShebang: () => c4, getSingleInitializerOfVariableStatementOrPropertyDeclaration: () => m22, getSingleVariableOfVariableStatement: () => Cl2, getSnapshotText: () => getSnapshotText, getSnippetElement: () => getSnippetElement, getSourceFileOfModule: () => sD, getSourceFileOfNode: () => ri7, getSourceFilePathInNewDir: () => $T, getSourceFilePathInNewDirWorker: () => k23, getSourceFileVersionAsHashFromText: () => getSourceFileVersionAsHashFromText, getSourceFilesToEmit: () => bN, getSourceMapRange: () => getSourceMapRange, getSourceMapper: () => getSourceMapper, getSourceTextOfNodeFromSourceFile: () => Xo2, getSpanOfTokenAtPosition: () => Ys5, getSpellingSuggestion: () => Jv, getStartPositionOfLine: () => lD, getStartPositionOfRange: () => f_, getStartsOnNewLine: () => getStartsOnNewLine, getStaticPropertiesAndClassStaticBlock: () => getStaticPropertiesAndClassStaticBlock, getStrictOptionValue: () => W23, getStringComparer: () => _g, getSuperCallFromStatement: () => getSuperCallFromStatement, getSuperContainer: () => MP, getSupportedCodeFixes: () => c7, getSupportedExtensions: () => HS, getSupportedExtensionsWithJsonIfResolveJsonModule: () => GS, getSwitchedType: () => getSwitchedType, getSymbolId: () => getSymbolId, getSymbolNameForPrivateIdentifier: () => HI, getSymbolTarget: () => getSymbolTarget, getSyntacticClassifications: () => getSyntacticClassifications, getSyntacticModifierFlags: () => M23, getSyntacticModifierFlagsNoCache: () => L23, getSynthesizedDeepClone: () => getSynthesizedDeepClone, getSynthesizedDeepCloneWithReplacements: () => getSynthesizedDeepCloneWithReplacements, getSynthesizedDeepClones: () => getSynthesizedDeepClones, getSynthesizedDeepClonesWithReplacements: () => getSynthesizedDeepClonesWithReplacements, getSyntheticLeadingComments: () => getSyntheticLeadingComments, getSyntheticTrailingComments: () => getSyntheticTrailingComments, getTargetLabel: () => getTargetLabel, getTargetOfBindingOrAssignmentElement: () => Mo2, getTemporaryModuleResolutionState: () => getTemporaryModuleResolutionState, getTextOfConstantValue: () => ED, getTextOfIdentifierOrLiteral: () => bd, getTextOfJSDocComment: () => TA, getTextOfJsxAttributeName: () => gL, getTextOfJsxNamespacedName: () => Kl3, getTextOfNode: () => sm, getTextOfNodeFromSourceText: () => t_, getTextOfPropertyName: () => VD, getThisContainer: () => o2, getThisParameter: () => KT, getTokenAtPosition: () => getTokenAtPosition, getTokenPosOfNode: () => Go2, getTokenSourceMapRange: () => getTokenSourceMapRange, getTouchingPropertyName: () => getTouchingPropertyName, getTouchingToken: () => getTouchingToken, getTrailingCommentRanges: () => _42, getTrailingSemicolonDeferringWriter: () => fN, getTransformFlagsSubtreeExclusions: () => Rx, getTransformers: () => getTransformers, getTsBuildInfoEmitOutputFilePath: () => getTsBuildInfoEmitOutputFilePath, getTsConfigObjectLiteralExpression: () => Q32, getTsConfigPropArrayElementValue: () => CP, getTypeAnnotationNode: () => EN, getTypeArgumentOrTypeParameterList: () => getTypeArgumentOrTypeParameterList, getTypeKeywordOfTypeOnlyImport: () => getTypeKeywordOfTypeOnlyImport, getTypeNode: () => getTypeNode, getTypeNodeIfAccessible: () => getTypeNodeIfAccessible, getTypeParameterFromJsDoc: () => xI, getTypeParameterOwner: () => iA, getTypesPackageName: () => getTypesPackageName, getUILocale: () => WC, getUniqueName: () => getUniqueName, getUniqueSymbolId: () => getUniqueSymbolId, getUseDefineForClassFields: () => lM, getWatchErrorSummaryDiagnosticMessage: () => getWatchErrorSummaryDiagnosticMessage, getWatchFactory: () => getWatchFactory, group: () => EC, groupBy: () => AC, guessIndentation: () => Lk, handleNoEmitOptions: () => handleNoEmitOptions, hasAbstractModifier: () => iS, hasAccessorModifier: () => oS, hasAmbientModifier: () => aS, hasChangesInResolutions: () => aD, hasChildOfKind: () => hasChildOfKind, hasContextSensitiveParameters: () => nL, hasDecorators: () => El3, hasDocComment: () => hasDocComment, hasDynamicName: () => LT, hasEffectiveModifier: () => N23, hasEffectiveModifiers: () => MN, hasEffectiveReadonlyModifier: () => O02, hasExtension: () => Qv, hasIndexSignature: () => hasIndexSignature, hasInitializer: () => E32, hasInvalidEscape: () => UT, hasJSDocNodes: () => Wi4, hasJSDocParameterTags: () => cA, hasJSFileExtension: () => H23, hasJsonModuleEmitEnabled: () => ZO, hasOnlyExpressionInitializer: () => Ok, hasOverrideModifier: () => JN, hasPossibleExternalModuleReference: () => BD, hasProperty: () => Qr6, hasPropertyAccessExpressionWithName: () => hasPropertyAccessExpressionWithName, hasQuestionToken: () => hI, hasRecordedExternalHelpers: () => LR, hasRestParameter: () => Jk, hasScopeMarker: () => ck, hasStaticModifier: () => gm, hasSyntacticModifier: () => gr6, hasSyntacticModifiers: () => LN, hasTSFileExtension: () => G23, hasTabstop: () => cx, hasTrailingDirectorySeparator: () => zd, hasType: () => Nk, hasTypeArguments: () => wI, hasZeroOrOneAsteriskCharacter: () => gM, helperString: () => helperString, hostGetCanonicalFileName: () => VT, hostUsesCaseSensitiveFileNames: () => C23, idText: () => Ot10, identifierIsThisKeyword: () => ZT, identifierToKeywordKind: () => P42, identity: () => bt7, identitySourceMapConsumer: () => identitySourceMapConsumer, ignoreSourceNewlines: () => ignoreSourceNewlines, ignoredPaths: () => ignoredPaths, importDefaultHelper: () => importDefaultHelper, importFromModuleSpecifier: () => dI, importNameElisionDisabled: () => eM, importStarHelper: () => importStarHelper, indexOfAnyCharCode: () => vv, indexOfNode: () => SD, indicesOf: () => ag, inferredTypesContainingFile: () => inferredTypesContainingFile, injectClassNamedEvaluationHelperBlockIfMissing: () => injectClassNamedEvaluationHelperBlockIfMissing, injectClassThisAssignmentIfMissing: () => injectClassThisAssignmentIfMissing, insertImports: () => insertImports, insertLeadingStatement: () => SR, insertSorted: () => yl3, insertStatementAfterCustomPrologue: () => hD, insertStatementAfterStandardPrologue: () => mD, insertStatementsAfterCustomPrologue: () => dD, insertStatementsAfterStandardPrologue: () => fD, intersperse: () => R52, intrinsicTagNameToString: () => vL, introducesArgumentsExoticObject: () => gP, inverseJsxOptionMap: () => inverseJsxOptionMap, isAbstractConstructorSymbol: () => AO, isAbstractModifier: () => tJ, isAccessExpression: () => $o3, isAccessibilityModifier: () => isAccessibilityModifier, isAccessor: () => nm, isAccessorModifier: () => nJ, isAliasSymbolDeclaration: () => LI, isAliasableExpression: () => b23, isAmbientModule: () => _m2, isAmbientPropertyDeclaration: () => JD, isAnonymousFunctionDefinition: () => Ks5, isAnyDirectorySeparator: () => dg, isAnyImportOrBareOrAccessedRequire: () => jD, isAnyImportOrReExport: () => lm, isAnyImportSyntax: () => $g2, isAnySupportedFileExtension: () => RM2, isApplicableVersionedTypesKey: () => isApplicableVersionedTypesKey, isArgumentExpressionOfElementAccess: () => isArgumentExpressionOfElementAccess, isArray: () => zt6, isArrayBindingElement: () => QA, isArrayBindingOrAssignmentElement: () => m3, isArrayBindingOrAssignmentPattern: () => d32, isArrayBindingPattern: () => _J, isArrayLiteralExpression: () => iu4, isArrayLiteralOrObjectLiteralDestructuringPattern: () => isArrayLiteralOrObjectLiteralDestructuringPattern, isArrayTypeNode: () => $x, isArrowFunction: () => km, isAsExpression: () => hJ, isAssertClause: () => jJ, isAssertEntry: () => FJ, isAssertionExpression: () => sk, isAssertionKey: () => FA2, isAssertsKeyword: () => KL, isAssignmentDeclaration: () => k0, isAssignmentExpression: () => Na2, isAssignmentOperator: () => D_, isAssignmentPattern: () => u3, isAssignmentTarget: () => CI, isAsteriskToken: () => GL, isAsyncFunction: () => WI, isAsyncModifier: () => al3, isAutoAccessorPropertyDeclaration: () => l3, isAwaitExpression: () => pJ, isAwaitKeyword: () => ZL, isBigIntLiteral: () => o6, isBinaryExpression: () => Ct9, isBinaryOperatorToken: () => mj, isBindableObjectDefinePropertyCall: () => p22, isBindableStaticAccessExpression: () => k_, isBindableStaticElementAccessExpression: () => f22, isBindableStaticNameExpression: () => p_, isBindingElement: () => nu4, isBindingElementOfBareOrAccessedRequire: () => KP, isBindingName: () => WA, isBindingOrAssignmentElement: () => YA, isBindingOrAssignmentPattern: () => KA, isBindingPattern: () => im, isBlock: () => au4, isBlockOrCatchScoped: () => kD, isBlockScope: () => U32, isBlockScopedContainerTopLevel: () => OD, isBooleanLiteral: () => VA, isBreakOrContinueStatement: () => DA, isBreakStatement: () => kJ, isBuildInfoFile: () => isBuildInfoFile, isBuilderProgram: () => isBuilderProgram2, isBundle: () => YJ, isBundleFileTextLike: () => MO, isCallChain: () => y0, isCallExpression: () => j_, isCallExpressionTarget: () => isCallExpressionTarget, isCallLikeExpression: () => tk, isCallOrNewExpression: () => rk, isCallOrNewExpressionTarget: () => isCallOrNewExpressionTarget, isCallSignatureDeclaration: () => c6, isCallToHelper: () => isCallToHelper, isCaseBlock: () => LJ, isCaseClause: () => XJ, isCaseKeyword: () => iJ, isCaseOrDefaultClause: () => Ik, isCatchClause: () => $J, isCatchClauseVariableDeclaration: () => ix, isCatchClauseVariableDeclarationOrBindingElement: () => R32, isCheckJsEnabledForFile: () => jM, isChildOfNodeWithKind: () => lP, isCircularBuildOrder: () => isCircularBuildOrder, isClassDeclaration: () => Yo3, isClassElement: () => no3, isClassExpression: () => Il3, isClassLike: () => dn5, isClassMemberModifier: () => s3, isClassNamedEvaluationHelperBlock: () => isClassNamedEvaluationHelperBlock, isClassOrTypeElement: () => XA, isClassStaticBlockDeclaration: () => eu5, isClassThisAssignmentBlock: () => isClassThisAssignmentBlock, isCollapsedRange: () => nO, isColonToken: () => XL, isCommaExpression: () => Jm, isCommaListExpression: () => F_, isCommaSequence: () => IR, isCommaToken: () => Ux, isComment: () => isComment, isCommonJsExportPropertyAssignment: () => i22, isCommonJsExportedExpression: () => hP, isCompoundAssignment: () => isCompoundAssignment, isComputedNonLiteralName: () => WD, isComputedPropertyName: () => ao4, isConciseBody: () => fk, isConditionalExpression: () => fJ, isConditionalTypeNode: () => t82, isConstTypeReference: () => Z42, isConstructSignatureDeclaration: () => Hx, isConstructorDeclaration: () => J_, isConstructorTypeNode: () => u6, isContextualKeyword: () => v22, isContinueStatement: () => AJ, isCustomPrologue: () => um, isDebuggerStatement: () => MJ, isDeclaration: () => Ho4, isDeclarationBindingElement: () => Bg2, isDeclarationFileName: () => G82, isDeclarationName: () => wT, isDeclarationNameOfEnumOrNamespace: () => mO, isDeclarationReadonly: () => nP, isDeclarationStatement: () => wk, isDeclarationWithTypeParameterChildren: () => q32, isDeclarationWithTypeParameters: () => RD, isDecorator: () => L_, isDecoratorTarget: () => isDecoratorTarget, isDefaultClause: () => h8, isDefaultImport: () => mT, isDefaultModifier: () => YL, isDefaultedExpandoInitializer: () => aI, isDeleteExpression: () => lJ, isDeleteTarget: () => II, isDeprecatedDeclaration: () => isDeprecatedDeclaration, isDestructuringAssignment: () => UN, isDiagnosticWithLocation: () => isDiagnosticWithLocation, isDiskPathRoot: () => wE, isDoStatement: () => xJ, isDocumentRegistryEntry: () => isDocumentRegistryEntry, isDotDotDotToken: () => HL, isDottedName: () => L02, isDynamicName: () => S23, isESSymbolIdentifier: () => $I, isEffectiveExternalModule: () => Xg, isEffectiveModuleDeclaration: () => j32, isEffectiveStrictModeSourceFile: () => LD, isElementAccessChain: () => K42, isElementAccessExpression: () => Ra3, isEmittedFileOfProgram: () => isEmittedFileOfProgram, isEmptyArrayLiteral: () => HN, isEmptyBindingElement: () => k4, isEmptyBindingPattern: () => A42, isEmptyObjectLiteral: () => VN, isEmptyStatement: () => TJ, isEmptyStringLiteral: () => Z32, isEntityName: () => zA, isEntityNameExpression: () => co5, isEnumConst: () => rP, isEnumDeclaration: () => S6, isEnumMember: () => g8, isEqualityOperatorKind: () => isEqualityOperatorKind, isEqualsGreaterThanToken: () => QL, isExclamationToken: () => Dd, isExcludedFile: () => isExcludedFile, isExclusivelyTypeOnlyImportOrExport: () => isExclusivelyTypeOnlyImportOrExport, isExportAssignment: () => ss7, isExportDeclaration: () => B_, isExportModifier: () => qx, isExportName: () => PR, isExportNamespaceAsDefaultDeclaration: () => J32, isExportOrDefaultModifier: () => yj, isExportSpecifier: () => m8, isExportsIdentifier: () => _T, isExportsOrModuleExportsOrAlias: () => isExportsOrModuleExportsOrAlias, isExpression: () => am, isExpressionNode: () => _23, isExpressionOfExternalModuleImportEqualsDeclaration: () => isExpressionOfExternalModuleImportEqualsDeclaration, isExpressionOfOptionalChainRoot: () => EA, isExpressionStatement: () => ou5, isExpressionWithTypeArguments: () => g6, isExpressionWithTypeArgumentsInClassExtendsClause: () => M02, isExternalModule: () => Zo2, isExternalModuleAugmentation: () => Gg, isExternalModuleImportEqualsDeclaration: () => rT, isExternalModuleIndicator: () => uk, isExternalModuleNameRelative: () => XE, isExternalModuleReference: () => Nm, isExternalModuleSymbol: () => isExternalModuleSymbol, isExternalOrCommonJsModule: () => tP, isFileLevelReservedGeneratedIdentifier: () => UA, isFileLevelUniqueName: () => I32, isFileProbablyExternalModule: () => ml3, isFirstDeclarationOfSymbolParameter: () => isFirstDeclarationOfSymbolParameter, isFixablePromiseHandler: () => isFixablePromiseHandler, isForInOrOfStatement: () => pk, isForInStatement: () => CJ, isForInitializer: () => mk, isForOfStatement: () => EJ, isForStatement: () => l8, isFunctionBlock: () => $32, isFunctionBody: () => dk, isFunctionDeclaration: () => os9, isFunctionExpression: () => Am, isFunctionExpressionOrArrowFunction: () => oL, isFunctionLike: () => Gi5, isFunctionLikeDeclaration: () => _32, isFunctionLikeKind: () => Jg, isFunctionLikeOrClassStaticBlockDeclaration: () => rm, isFunctionOrConstructorTypeNode: () => $A, isFunctionOrModuleBlock: () => HA, isFunctionSymbol: () => pI, isFunctionTypeNode: () => tu4, isFutureReservedKeyword: () => jI, isGeneratedIdentifier: () => wa2, isGeneratedPrivateIdentifier: () => Mg2, isGetAccessor: () => el3, isGetAccessorDeclaration: () => m_, isGetOrSetAccessorDeclaration: () => CA, isGlobalDeclaration: () => isGlobalDeclaration, isGlobalScopeAugmentation: () => cm, isGrammarError: () => pD, isHeritageClause: () => Nl3, isHoistedFunction: () => w02, isHoistedVariableStatement: () => C0, isIdentifier: () => Ee6, isIdentifierANonContextualKeyword: () => UI, isIdentifierName: () => MI, isIdentifierOrThisTypeNode: () => GR, isIdentifierPart: () => Qa6, isIdentifierStart: () => un6, isIdentifierText: () => Cg2, isIdentifierTypePredicate: () => SP, isIdentifierTypeReference: () => QM, isIfStatement: () => SJ, isIgnoredFileFromWildCardWatching: () => isIgnoredFileFromWildCardWatching, isImplicitGlob: () => US, isImportCall: () => t23, isImportClause: () => JJ, isImportDeclaration: () => C6, isImportEqualsDeclaration: () => w6, isImportKeyword: () => Wx, isImportMeta: () => x0, isImportOrExportSpecifier: () => RA, isImportOrExportSpecifierName: () => isImportOrExportSpecifierName, isImportSpecifier: () => f8, isImportTypeAssertionContainer: () => RJ, isImportTypeNode: () => ru5, isImportableFile: () => isImportableFile, isInComment: () => isInComment, isInExpressionContext: () => eT, isInJSDoc: () => nT, isInJSFile: () => Wt6, isInJSXText: () => isInJSXText, isInJsonFile: () => $P, isInNonReferenceComment: () => isInNonReferenceComment, isInReferenceComment: () => isInReferenceComment, isInRightSideOfInternalImportEqualsDeclaration: () => isInRightSideOfInternalImportEqualsDeclaration, isInString: () => isInString, isInTemplateString: () => isInTemplateString, isInTopLevelContext: () => NP, isInTypeQuery: () => wN, isIncrementalCompilation: () => cM, isIndexSignatureDeclaration: () => l6, isIndexedAccessTypeNode: () => i8, isInferTypeNode: () => r8, isInfinityOrNaNString: () => iL, isInitializedProperty: () => isInitializedProperty, isInitializedVariable: () => wS, isInsideJsxElement: () => isInsideJsxElement, isInsideJsxElementOrAttribute: () => isInsideJsxElementOrAttribute, isInsideNodeModules: () => isInsideNodeModules, isInsideTemplateLiteral: () => isInsideTemplateLiteral, isInstantiatedModule: () => isInstantiatedModule, isInterfaceDeclaration: () => su5, isInternalDeclaration: () => isInternalDeclaration, isInternalModuleImportEqualsDeclaration: () => GP, isInternalName: () => DR, isIntersectionTypeNode: () => e8, isIntrinsicJsxName: () => WT, isIterationStatement: () => b32, isJSDoc: () => cs4, isJSDocAllType: () => rR, isJSDocAugmentsTag: () => Mm, isJSDocAuthorTag: () => _R, isJSDocCallbackTag: () => cR, isJSDocClassTag: () => T8, isJSDocCommentContainingNode: () => C32, isJSDocConstructSignature: () => yI, isJSDocDeprecatedTag: () => J62, isJSDocEnumTag: () => x8, isJSDocFunctionType: () => Om, isJSDocImplementsTag: () => C8, isJSDocIndexSignature: () => YP, isJSDocLikeText: () => z8, isJSDocLink: () => ZJ, isJSDocLinkCode: () => eR, isJSDocLinkLike: () => ul4, isJSDocLinkPlain: () => tR, isJSDocMemberName: () => r_, isJSDocNameReference: () => zf, isJSDocNamepathType: () => sR, isJSDocNamespaceBody: () => gk, isJSDocNode: () => zg, isJSDocNonNullableType: () => iR, isJSDocNullableType: () => v82, isJSDocOptionalParameter: () => lx, isJSDocOptionalType: () => aR, isJSDocOverloadTag: () => L62, isJSDocOverrideTag: () => S8, isJSDocParameterTag: () => h_, isJSDocPrivateTag: () => N62, isJSDocPropertyLikeTag: () => Ig, isJSDocPropertyTag: () => fR, isJSDocProtectedTag: () => O62, isJSDocPublicTag: () => I6, isJSDocReadonlyTag: () => M62, isJSDocReturnTag: () => R62, isJSDocSatisfiesExpression: () => mL, isJSDocSatisfiesTag: () => j62, isJSDocSeeTag: () => lR, isJSDocSignature: () => cu4, isJSDocTag: () => Wg2, isJSDocTemplateTag: () => Ko3, isJSDocThisTag: () => w8, isJSDocThrowsTag: () => dR, isJSDocTypeAlias: () => Hl3, isJSDocTypeAssertion: () => N8, isJSDocTypeExpression: () => b8, isJSDocTypeLiteral: () => P62, isJSDocTypeTag: () => lu3, isJSDocTypedefTag: () => uR, isJSDocUnknownTag: () => pR, isJSDocUnknownType: () => nR, isJSDocVariadicType: () => oR, isJSXTagName: () => Mf, isJsonEqual: () => $23, isJsonSourceFile: () => e22, isJsxAttribute: () => VJ, isJsxAttributeLike: () => Dk, isJsxAttributeName: () => bL, isJsxAttributes: () => D6, isJsxChild: () => x32, isJsxClosingElement: () => qf, isJsxClosingFragment: () => WJ, isJsxElement: () => Q0, isJsxExpression: () => GJ, isJsxFragment: () => dl2, isJsxNamespacedName: () => U_, isJsxOpeningElement: () => Oo2, isJsxOpeningFragment: () => k6, isJsxOpeningLikeElement: () => w32, isJsxOpeningLikeElementTagName: () => isJsxOpeningLikeElementTagName, isJsxSelfClosingElement: () => zJ, isJsxSpreadAttribute: () => HJ, isJsxTagNameExpression: () => kk, isJsxText: () => kd, isJumpStatementTarget: () => isJumpStatementTarget, isKeyword: () => Si6, isKeywordOrPunctuation: () => Jf, isKnownSymbol: () => GI, isLabelName: () => isLabelName, isLabelOfLabeledStatement: () => isLabelOfLabeledStatement, isLabeledStatement: () => u8, isLateVisibilityPaintedStatement: () => FD, isLeftHandSideExpression: () => Lo4, isLeftHandSideOfAssignment: () => BN, isLet: () => oP, isLineBreak: () => mr6, isLiteralComputedPropertyDeclarationName: () => CT, isLiteralExpression: () => Og, isLiteralExpressionOfObject: () => MA, isLiteralImportTypeNode: () => H32, isLiteralKind: () => Ng, isLiteralLikeAccess: () => Lf, isLiteralLikeElementAccess: () => Vl3, isLiteralNameOfPropertyDeclarationOrIndexAccess: () => isLiteralNameOfPropertyDeclarationOrIndexAccess, isLiteralTypeLikeExpression: () => YR, isLiteralTypeLiteral: () => ak, isLiteralTypeNode: () => m6, isLocalName: () => Y0, isLogicalOperator: () => RN, isLogicalOrCoalescingAssignmentExpression: () => jN, isLogicalOrCoalescingAssignmentOperator: () => vm, isLogicalOrCoalescingBinaryExpression: () => FN, isLogicalOrCoalescingBinaryOperator: () => fS, isMappedTypeNode: () => a8, isMemberName: () => ro3, isMetaProperty: () => b6, isMethodDeclaration: () => d_, isMethodOrAccessor: () => Rg, isMethodSignature: () => Vx, isMinusToken: () => _6, isMissingDeclaration: () => UJ, isModifier: () => Lg2, isModifierKind: () => bi8, isModifierLike: () => Of, isModuleAugmentationExternal: () => F32, isModuleBlock: () => p8, isModuleBody: () => hk, isModuleDeclaration: () => Yi5, isModuleExportsAccessExpression: () => u22, isModuleIdentifier: () => cT, isModuleName: () => QR, isModuleOrEnumDeclaration: () => vk, isModuleReference: () => Ak, isModuleSpecifierLike: () => isModuleSpecifierLike, isModuleWithStringLiteralName: () => DD, isNameOfFunctionDeclaration: () => isNameOfFunctionDeclaration, isNameOfModuleDeclaration: () => isNameOfModuleDeclaration, isNamedClassElement: () => GA, isNamedDeclaration: () => Qd, isNamedEvaluation: () => QI, isNamedEvaluationSource: () => jT, isNamedExportBindings: () => PA, isNamedExports: () => d8, isNamedImportBindings: () => bk, isNamedImports: () => BJ, isNamedImportsOrExports: () => LO, isNamedTupleMember: () => p6, isNamespaceBody: () => yk, isNamespaceExport: () => Im, isNamespaceExportDeclaration: () => x62, isNamespaceImport: () => E6, isNamespaceReexportDeclaration: () => WP, isNewExpression: () => o8, isNewExpressionTarget: () => isNewExpressionTarget, isNightly: () => uN, isNoSubstitutionTemplateLiteral: () => Bx, isNode: () => NA, isNodeArray: () => va2, isNodeArrayMultiLine: () => uO, isNodeDescendantOf: () => NI, isNodeKind: () => ql3, isNodeLikeSystem: () => pE, isNodeModulesDirectory: () => RE, isNodeWithPossibleHoistedDeclaration: () => EI, isNonContextualKeyword: () => MT, isNonExportDefaultModifier: () => gj, isNonGlobalAmbientModule: () => PD, isNonGlobalDeclaration: () => isNonGlobalDeclaration, isNonNullAccess: () => dL, isNonNullChain: () => e3, isNonNullExpression: () => jo2, isNonStaticMethodOrAccessorWithPrivateName: () => isNonStaticMethodOrAccessorWithPrivateName, isNotEmittedOrPartiallyEmittedNode: () => _k, isNotEmittedStatement: () => A6, isNullishCoalesce: () => kA, isNumber: () => LC, isNumericLiteral: () => lo3, isNumericLiteralName: () => ax, isObjectBindingElementWithoutPropertyName: () => isObjectBindingElementWithoutPropertyName, isObjectBindingOrAssignmentElement: () => f3, isObjectBindingOrAssignmentPattern: () => p32, isObjectBindingPattern: () => sJ, isObjectLiteralElement: () => b0, isObjectLiteralElementLike: () => Fg3, isObjectLiteralExpression: () => uo4, isObjectLiteralMethod: () => vP, isObjectLiteralOrClassExpressionMethodOrAccessor: () => TP, isObjectTypeDeclaration: () => NO, isOctalDigit: () => If, isOmittedExpression: () => Pm, isOptionalChain: () => Dg2, isOptionalChainRoot: () => Pg, isOptionalDeclaration: () => fL, isOptionalJSDocPropertyLikeTag: () => _x, isOptionalTypeNode: () => Yx, isOuterExpression: () => Rm2, isOutermostOptionalChain: () => AA, isOverrideModifier: () => rJ, isPackedArrayLiteral: () => eL, isParameter: () => Ma3, isParameterDeclaration: () => KI, isParameterOrCatchClauseVariable: () => aL, isParameterPropertyDeclaration: () => E42, isParameterPropertyModifier: () => o3, isParenthesizedExpression: () => is7, isParenthesizedTypeNode: () => f6, isParseTreeNode: () => Tl3, isPartOfTypeNode: () => r22, isPartOfTypeQuery: () => tT, isPartiallyEmittedExpression: () => c8, isPatternMatch: () => lg, isPinnedComment: () => L32, isPlainJsFile: () => _D, isPlusToken: () => s6, isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition, isPostfixUnaryExpression: () => _8, isPrefixUnaryExpression: () => Dm2, isPrivateIdentifier: () => jr6, isPrivateIdentifierClassElementDeclaration: () => a3, isPrivateIdentifierPropertyAccessExpression: () => qA, isPrivateIdentifierSymbol: () => XI, isProgramBundleEmitBuildInfo: () => isProgramBundleEmitBuildInfo, isProgramUptoDate: () => isProgramUptoDate, isPrologueDirective: () => Ea3, isPropertyAccessChain: () => Y42, isPropertyAccessEntityNameExpression: () => hS, isPropertyAccessExpression: () => Br6, isPropertyAccessOrQualifiedName: () => ek, isPropertyAccessOrQualifiedNameOrImportTypeNode: () => ZA, isPropertyAssignment: () => _s7, isPropertyDeclaration: () => oo3, isPropertyName: () => zl3, isPropertyNameLiteral: () => P0, isPropertySignature: () => Zl3, isProtoSetter: () => RT, isPrototypeAccess: () => $l3, isPrototypePropertyAssignment: () => cI, isPunctuation: () => OT, isPushOrUnshiftIdentifier: () => YI, isQualifiedName: () => M_, isQuestionDotToken: () => $L, isQuestionOrExclamationToken: () => HR, isQuestionOrPlusOrMinusToken: () => $R, isQuestionToken: () => Pl3, isRawSourceMap: () => isRawSourceMap, isReadonlyKeyword: () => zx, isReadonlyKeywordOrPlusOrMinusToken: () => XR, isRecognizedTripleSlashComment: () => yD, isReferenceFileLocation: () => isReferenceFileLocation, isReferencedFile: () => isReferencedFile, isRegularExpressionLiteral: () => qL, isRequireCall: () => Wl3, isRequireVariableStatement: () => oT, isRestParameter: () => A32, isRestTypeNode: () => Kx, isReturnStatement: () => DJ, isReturnStatementWithFixablePromiseHandler: () => isReturnStatementWithFixablePromiseHandler, isRightSideOfAccessExpression: () => yS, isRightSideOfPropertyAccess: () => isRightSideOfPropertyAccess, isRightSideOfQualifiedName: () => isRightSideOfQualifiedName, isRightSideOfQualifiedNameOrPropertyAccess: () => zN, isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => WN, isRootedDiskPath: () => v_, isSameEntityName: () => u_, isSatisfiesExpression: () => yJ, isScopeMarker: () => v32, isSemicolonClassElement: () => vJ, isSetAccessor: () => Zc2, isSetAccessorDeclaration: () => Qo3, isShebangTrivia: () => xg3, isShorthandAmbientModuleSymbol: () => ID, isShorthandPropertyAssignment: () => _u3, isSignedNumericLiteral: () => T23, isSimpleCopiableExpression: () => isSimpleCopiableExpression, isSimpleInlineableExpression: () => isSimpleInlineableExpression, isSingleOrDoubleQuote: () => ZP, isSourceFile: () => ii8, isSourceFileFromLibrary: () => isSourceFileFromLibrary, isSourceFileJS: () => c22, isSourceFileNotJS: () => XP, isSourceFileNotJson: () => QP, isSourceMapping: () => isSourceMapping, isSpecialPropertyDeclaration: () => lI, isSpreadAssignment: () => y8, isSpreadElement: () => y6, isStatement: () => T32, isStatementButNotDeclaration: () => Ck, isStatementOrBlock: () => S32, isStatementWithLocals: () => cD, isStatic: () => N02, isStaticModifier: () => eJ, isString: () => b_, isStringAKeyword: () => BI, isStringANonContextualKeyword: () => FI, isStringAndEmptyAnonymousObjectIntersection: () => isStringAndEmptyAnonymousObjectIntersection, isStringDoubleQuoted: () => eI, isStringLiteral: () => mn6, isStringLiteralLike: () => Kn5, isStringLiteralOrJsxExpression: () => Pk, isStringLiteralOrTemplate: () => isStringLiteralOrTemplate, isStringOrNumericLiteralLike: () => Qi5, isStringOrRegularExpressionOrTemplateLiteral: () => isStringOrRegularExpressionOrTemplateLiteral, isStringTextContainingNode: () => BA, isSuperCall: () => sP, isSuperKeyword: () => Uf, isSuperOrSuperProperty: () => JP, isSuperProperty: () => yd, isSupportedSourceFileName: () => NM2, isSwitchStatement: () => IJ, isSyntaxList: () => mR, isSyntheticExpression: () => gJ, isSyntheticReference: () => qJ, isTagName: () => isTagName, isTaggedTemplateExpression: () => s8, isTaggedTemplateTag: () => isTaggedTemplateTag, isTemplateExpression: () => dJ, isTemplateHead: () => zL, isTemplateLiteral: () => nk, isTemplateLiteralKind: () => Sl2, isTemplateLiteralToken: () => LA, isTemplateLiteralTypeNode: () => oJ, isTemplateLiteralTypeSpan: () => aJ, isTemplateMiddle: () => WL, isTemplateMiddleOrTemplateTail: () => JA, isTemplateSpan: () => bJ, isTemplateTail: () => VL, isTextWhiteSpaceLike: () => isTextWhiteSpaceLike, isThis: () => isThis, isThisContainerOrFunctionBlock: () => IP, isThisIdentifier: () => ym, isThisInTypeQuery: () => CN, isThisInitializedDeclaration: () => jP, isThisInitializedObjectBindingExpression: () => FP, isThisProperty: () => RP, isThisTypeNode: () => d6, isThisTypeParameter: () => ox, isThisTypePredicate: () => xP, isThrowStatement: () => NJ, isToken: () => OA, isTokenKind: () => r3, isTraceEnabled: () => isTraceEnabled, isTransientSymbol: () => T02, isTrivia: () => qI, isTryStatement: () => OJ, isTupleTypeNode: () => Qx, isTypeAlias: () => gI, isTypeAliasDeclaration: () => T6, isTypeAssertionExpression: () => cJ, isTypeDeclaration: () => sx, isTypeElement: () => jg, isTypeKeyword: () => isTypeKeyword, isTypeKeywordToken: () => isTypeKeywordToken, isTypeKeywordTokenOrIdentifier: () => isTypeKeywordTokenOrIdentifier, isTypeLiteralNode: () => Em, isTypeNode: () => g0, isTypeNodeKind: () => PS, isTypeOfExpression: () => uJ, isTypeOnlyExportDeclaration: () => i3, isTypeOnlyImportDeclaration: () => n3, isTypeOnlyImportOrExportDeclaration: () => jA, isTypeOperatorNode: () => n8, isTypeParameterDeclaration: () => No3, isTypePredicateNode: () => Gx, isTypeQueryNode: () => Xx, isTypeReferenceNode: () => R_, isTypeReferenceType: () => Mk, isTypeUsableAsPropertyName: () => TL, isUMDExportSymbol: () => DO, isUnaryExpression: () => y32, isUnaryExpressionWithWrite: () => ik, isUnicodeIdentifierStart: () => i4, isUnionTypeNode: () => Zx, isUnparsedNode: () => IA, isUnparsedPrepend: () => QJ, isUnparsedSource: () => KJ, isUnparsedTextLike: () => t32, isUrl: () => xE, isValidBigIntString: () => ex, isValidESSymbolDeclaration: () => yP, isValidTypeOnlyAliasUseSite: () => HM, isValueSignatureDeclaration: () => AI, isVarAwaitUsing: () => iP, isVarConst: () => V32, isVarUsing: () => aP, isVariableDeclaration: () => ki7, isVariableDeclarationInVariableStatement: () => X32, isVariableDeclarationInitializedToBareOrAccessedRequire: () => pm, isVariableDeclarationInitializedToRequire: () => iT, isVariableDeclarationList: () => v62, isVariableLike: () => n22, isVariableLikeOrAccessor: () => mP, isVariableStatement: () => as6, isVoidExpression: () => h6, isWatchSet: () => yO, isWhileStatement: () => wJ, isWhiteSpaceLike: () => Vi5, isWhiteSpaceSingleLine: () => Io2, isWithStatement: () => PJ, isWriteAccess: () => xO, isWriteOnlyAccess: () => SO, isYieldExpression: () => mJ, jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport, keywordPart: () => keywordPart, last: () => ka3, lastOrUndefined: () => wi7, length: () => Ka4, libMap: () => libMap, libs: () => libs, lineBreakPart: () => lineBreakPart, linkNamePart: () => linkNamePart, linkPart: () => linkPart, linkTextPart: () => linkTextPart, listFiles: () => listFiles, loadModuleFromGlobalCache: () => loadModuleFromGlobalCache, loadWithModeAwareCache: () => loadWithModeAwareCache, makeIdentifierFromModuleName: () => AD, makeImport: () => makeImport, makeImportIfNecessary: () => makeImportIfNecessary, makeStringLiteral: () => makeStringLiteral, mangleScopedPackageName: () => mangleScopedPackageName, map: () => Aa4, mapAllOrFail: () => H52, mapDefined: () => Za3, mapDefinedEntries: () => X52, mapDefinedIterator: () => G52, mapEntries: () => Z52, mapIterator: () => z52, mapOneOrMany: () => mapOneOrMany, mapToDisplayParts: () => mapToDisplayParts, matchFiles: () => EM2, matchPatternOrExact: () => FM, matchedText: () => tE, matchesExclude: () => matchesExclude, maybeBind: () => rr7, maybeSetLocalizedDiagnosticMessages: () => OS, memoize: () => ry, memoizeCached: () => FC, memoizeOne: () => Nn6, memoizeWeak: () => jC, metadataHelper: () => metadataHelper, min: () => qC, minAndMax: () => UM, missingFileModifiedTime: () => missingFileModifiedTime, modifierToFlag: () => J23, modifiersToFlags: () => ln6, moduleOptionDeclaration: () => moduleOptionDeclaration, moduleResolutionIsEqualTo: () => eD, moduleResolutionNameAndModeGetter: () => moduleResolutionNameAndModeGetter, moduleResolutionOptionDeclarations: () => moduleResolutionOptionDeclarations, moduleResolutionSupportsPackageJsonExportsAndImports: () => q23, moduleResolutionUsesNodeModules: () => moduleResolutionUsesNodeModules, moduleSpecifiers: () => ts_moduleSpecifiers_exports, moveEmitHelpers: () => moveEmitHelpers, moveRangeEnd: () => tO, moveRangePastDecorators: () => SS, moveRangePastModifiers: () => rO, moveRangePos: () => Sd, moveSyntheticComments: () => moveSyntheticComments, mutateMap: () => EO, mutateMapSkippingNewValues: () => AS, needsParentheses: () => needsParentheses, needsScopeMarker: () => lk, newCaseClauseTracker: () => newCaseClauseTracker, newPrivateEnvironment: () => newPrivateEnvironment, noEmitNotification: () => noEmitNotification, noEmitSubstitution: () => noEmitSubstitution, noTransformers: () => noTransformers, noTruncationMaximumTruncationLength: () => dx, nodeCanBeDecorated: () => K32, nodeHasName: () => N42, nodeIsDecorated: () => l_, nodeIsMissing: () => zi6, nodeIsPresent: () => wl2, nodeIsSynthesized: () => Ta2, nodeModuleNameResolver: () => nodeModuleNameResolver, nodeModulesPathPart: () => nodeModulesPathPart, nodeNextJsonConfigResolver: () => nodeNextJsonConfigResolver, nodeOrChildIsDecorated: () => A0, nodeOverlapsWithStartEnd: () => nodeOverlapsWithStartEnd, nodePosToString: () => uD, nodeSeenTracker: () => nodeSeenTracker, nodeStartsNewLexicalEnvironment: () => ZI, nodeToDisplayParts: () => nodeToDisplayParts, noop: () => Rn5, noopFileWatcher: () => noopFileWatcher, normalizePath: () => pn6, normalizeSlashes: () => qo3, not: () => iE, notImplemented: () => RC, notImplementedResolver: () => notImplementedResolver, nullNodeConverters: () => nullNodeConverters, nullParenthesizerRules: () => i6, nullTransformationContext: () => nullTransformationContext, objectAllocator: () => wt7, operatorPart: () => operatorPart, optionDeclarations: () => optionDeclarations, optionMapToObject: () => optionMapToObject, optionsAffectingProgramStructure: () => optionsAffectingProgramStructure, optionsForBuild: () => optionsForBuild, optionsForWatch: () => optionsForWatch, optionsHaveChanges: () => E_, optionsHaveModuleResolutionChanges: () => k32, or: () => ug, orderedRemoveItem: () => KC, orderedRemoveItemAt: () => Rv, outFile: () => A23, packageIdToPackageName: () => D32, packageIdToString: () => nD, padLeft: () => qv, padRight: () => _E, paramHelper: () => paramHelper, parameterIsThisKeyword: () => Xl3, parameterNamePart: () => parameterNamePart, parseBaseNodeFactory: () => tg, parseBigInt: () => VM, parseBuildCommand: () => parseBuildCommand, parseCommandLine: () => parseCommandLine, parseCommandLineWorker: () => parseCommandLineWorker, parseConfigFileTextToJson: () => parseConfigFileTextToJson, parseConfigFileWithSystem: () => parseConfigFileWithSystem, parseConfigHostFromCompilerHostLike: () => parseConfigHostFromCompilerHostLike, parseCustomTypeOption: () => parseCustomTypeOption, parseIsolatedEntityName: () => Jj, parseIsolatedJSDocComment: () => jj, parseJSDocTypeExpressionForTests: () => Fj, parseJsonConfigFileContent: () => parseJsonConfigFileContent, parseJsonSourceFileConfigFileContent: () => parseJsonSourceFileConfigFileContent, parseJsonText: () => Rj, parseListTypeOption: () => parseListTypeOption, parseNodeFactory: () => z_, parseNodeModuleFromPath: () => parseNodeModuleFromPath, parsePackageName: () => parsePackageName, parsePseudoBigInt: () => Sm, parseValidBigInt: () => ZS, patchWriteFileEnsuringDirectory: () => patchWriteFileEnsuringDirectory, pathContainsNodeModules: () => pathContainsNodeModules, pathIsAbsolute: () => mg2, pathIsBareSpecifier: () => CE, pathIsRelative: () => rs6, patternText: () => eE, perfLogger: () => Yf, performIncrementalCompilation: () => performIncrementalCompilation, performance: () => ts_performance_exports, plainJSErrors: () => plainJSErrors, positionBelongsToNode: () => positionBelongsToNode, positionIsASICandidate: () => positionIsASICandidate, positionIsSynthesized: () => Oa3, positionsAreOnSameLine: () => P_, preProcessFile: () => preProcessFile, probablyUsesSemicolons: () => probablyUsesSemicolons, processCommentPragmas: () => X82, processPragmasIntoFields: () => $8, processTaggedTemplateExpression: () => processTaggedTemplateExpression, programContainsEsModules: () => programContainsEsModules, programContainsModules: () => programContainsModules, projectReferenceIsEqualTo: () => Zk, propKeyHelper: () => propKeyHelper, propertyNamePart: () => propertyNamePart, pseudoBigIntToString: () => Q23, punctuationPart: () => punctuationPart, pushIfUnique: () => Ol2, quote: () => quote, quotePreferenceFromString: () => quotePreferenceFromString, rangeContainsPosition: () => rangeContainsPosition, rangeContainsPositionExclusive: () => rangeContainsPositionExclusive, rangeContainsRange: () => rangeContainsRange, rangeContainsRangeExclusive: () => rangeContainsRangeExclusive, rangeContainsStartEnd: () => rangeContainsStartEnd, rangeEndIsOnSameLineAsRangeStart: () => _O, rangeEndPositionsAreOnSameLine: () => sO, rangeEquals: () => fC, rangeIsOnSingleLine: () => aO, rangeOfNode: () => qM, rangeOfTypeParameters: () => zM, rangeOverlapsWithStartEnd: () => rangeOverlapsWithStartEnd, rangeStartIsOnSameLineAsRangeEnd: () => xS, rangeStartPositionsAreOnSameLine: () => oO, readBuilderProgram: () => readBuilderProgram, readConfigFile: () => readConfigFile, readHelper: () => readHelper, readJson: () => eO, readJsonConfigFile: () => readJsonConfigFile, readJsonOrUndefined: () => bS, realizeDiagnostics: () => realizeDiagnostics, reduceEachLeadingCommentRange: () => a4, reduceEachTrailingCommentRange: () => o4, reduceLeft: () => Jd, reduceLeftIterator: () => J52, reducePathComponents: () => Da2, refactor: () => ts_refactor_exports, regExpEscape: () => xM, relativeComplement: () => lC, removeAllComments: () => removeAllComments, removeEmitHelper: () => removeEmitHelper, removeExtension: () => QS, removeFileExtension: () => Al2, removeIgnoredPath: () => removeIgnoredPath, removeMinAndVersionNumbers: () => YC, removeOptionality: () => removeOptionality, removePrefix: () => rE, removeSuffix: () => $C, removeTrailingDirectorySeparator: () => S_, repeatString: () => repeatString, replaceElement: () => gC, resolutionExtensionIsTSOrJson: () => JM, resolveConfigFileProjectName: () => resolveConfigFileProjectName, resolveJSModule: () => resolveJSModule, resolveLibrary: () => resolveLibrary, resolveModuleName: () => resolveModuleName, resolveModuleNameFromCache: () => resolveModuleNameFromCache, resolvePackageNameToPackageJson: () => resolvePackageNameToPackageJson, resolvePath: () => d02, resolveProjectReferencePath: () => resolveProjectReferencePath, resolveTripleslashReference: () => resolveTripleslashReference, resolveTypeReferenceDirective: () => resolveTypeReferenceDirective, resolvingEmptyArray: () => px, restHelper: () => restHelper, returnFalse: () => Xf, returnNoopFileWatcher: () => returnNoopFileWatcher, returnTrue: () => Iv, returnUndefined: () => JC, returnsPromise: () => returnsPromise, runInitializersHelper: () => runInitializersHelper, sameFlatMap: () => Sv, sameMap: () => W52, sameMapping: () => sameMapping, scanShebangTrivia: () => wg2, scanTokenAtPosition: () => ZD, scanner: () => Fo3, screenStartingMessageCodes: () => screenStartingMessageCodes, semanticDiagnosticsOptionDeclarations: () => semanticDiagnosticsOptionDeclarations, serializeCompilerOptions: () => serializeCompilerOptions, server: () => ts_server_exports, servicesVersion: () => d7, setCommentRange: () => setCommentRange, setConfigFileInOptions: () => setConfigFileInOptions, setConstantValue: () => setConstantValue, setEachParent: () => a_, setEmitFlags: () => setEmitFlags, setFunctionNameHelper: () => setFunctionNameHelper, setGetSourceFileAsHashVersioned: () => setGetSourceFileAsHashVersioned, setIdentifierAutoGenerate: () => setIdentifierAutoGenerate, setIdentifierGeneratedImportReference: () => setIdentifierGeneratedImportReference, setIdentifierTypeArguments: () => setIdentifierTypeArguments, setInternalEmitFlags: () => setInternalEmitFlags, setLocalizedDiagnosticMessages: () => NS, setModuleDefaultHelper: () => setModuleDefaultHelper, setNodeFlags: () => KM, setObjectAllocator: () => IS, setOriginalNode: () => Xr7, setParent: () => Xi4, setParentRecursive: () => rx, setPrivateIdentifier: () => setPrivateIdentifier, setResolvedModule: () => Qk, setResolvedTypeReferenceDirective: () => Yk, setSnippetElement: () => setSnippetElement, setSourceMapRange: () => setSourceMapRange, setStackTraceLimit: () => setStackTraceLimit, setStartsOnNewLine: () => setStartsOnNewLine, setSyntheticLeadingComments: () => setSyntheticLeadingComments, setSyntheticTrailingComments: () => setSyntheticTrailingComments, setSys: () => setSys, setSysLog: () => setSysLog, setTextRange: () => Ve9, setTextRangeEnd: () => tx, setTextRangePos: () => wd, setTextRangePosEnd: () => Ya4, setTextRangePosWidth: () => Cd, setTokenSourceMapRange: () => setTokenSourceMapRange, setTypeNode: () => setTypeNode, setUILocale: () => Lv, setValueDeclaration: () => uI, shouldAllowImportingTsExtension: () => shouldAllowImportingTsExtension, shouldPreserveConstEnums: () => _M, shouldResolveJsRequire: () => aM, shouldUseUriStyleNodeCoreModules: () => shouldUseUriStyleNodeCoreModules, showModuleSpecifier: () => PO, signatureHasLiteralTypes: () => signatureHasLiteralTypes, signatureHasRestParameter: () => signatureHasRestParameter, signatureToDisplayParts: () => signatureToDisplayParts, single: () => hC, singleElementArray: () => $f, singleIterator: () => Y52, singleOrMany: () => yC, singleOrUndefined: () => Ld, skipAlias: () => vO, skipAssertions: () => MR, skipConstraint: () => skipConstraint, skipOuterExpressions: () => ls6, skipParentheses: () => Gl4, skipPartiallyEmittedExpressions: () => tm, skipTrivia: () => Nt9, skipTypeChecking: () => WM, skipTypeParentheses: () => PI, skipWhile: () => lE, sliceAfter: () => BM, some: () => mt7, sort: () => Gf, sortAndDeduplicate: () => wv, sortAndDeduplicateDiagnostics: () => $E, sourceFileAffectingCompilerOptions: () => sourceFileAffectingCompilerOptions, sourceFileMayBeEmitted: () => I02, sourceMapCommentRegExp: () => sourceMapCommentRegExp, sourceMapCommentRegExpDontCareLineStart: () => sourceMapCommentRegExpDontCareLineStart, spacePart: () => spacePart, spanMap: () => K52, spreadArrayHelper: () => spreadArrayHelper, stableSort: () => Av, startEndContainsRange: () => startEndContainsRange, startEndOverlapsWithStartEnd: () => startEndOverlapsWithStartEnd, startOnNewLine: () => jm, startTracing: () => startTracing, startsWith: () => Fr5, startsWithDirectory: () => ME, startsWithUnderscore: () => startsWithUnderscore, startsWithUseStrict: () => I8, stringContains: () => eo3, stringContainsAt: () => stringContainsAt, stringToToken: () => Rl3, stripQuotes: () => cN, supportedDeclarationExtensions: () => n6, supportedJSExtensions: () => H0, supportedJSExtensionsFlat: () => r6, supportedLocaleDirectories: () => Hg, supportedTSExtensions: () => Ro3, supportedTSExtensionsFlat: () => t62, supportedTSImplementationExtensions: () => Ox, suppressLeadingAndTrailingTrivia: () => suppressLeadingAndTrailingTrivia, suppressLeadingTrivia: () => suppressLeadingTrivia, suppressTrailingTrivia: () => suppressTrailingTrivia, symbolEscapedNameNoDefault: () => symbolEscapedNameNoDefault, symbolName: () => md, symbolNameNoDefault: () => symbolNameNoDefault, symbolPart: () => symbolPart, symbolToDisplayParts: () => symbolToDisplayParts, syntaxMayBeASICandidate: () => syntaxMayBeASICandidate, syntaxRequiresTrailingSemicolonOrASI: () => syntaxRequiresTrailingSemicolonOrASI, sys: () => f02, sysLog: () => sysLog, tagNamesAreEquivalent: () => Ti7, takeWhile: () => cE, targetOptionDeclaration: () => targetOptionDeclaration, templateObjectHelper: () => templateObjectHelper, testFormatSettings: () => testFormatSettings, textChangeRangeIsUnchanged: () => C42, textChangeRangeNewSpan: () => Qs6, textChanges: () => ts_textChanges_exports, textOrKeywordPart: () => textOrKeywordPart, textPart: () => textPart, textRangeContainsPositionInclusive: () => YE2, textSpanContainsPosition: () => QE, textSpanContainsTextSpan: () => KE, textSpanEnd: () => Kt6, textSpanIntersection: () => w4, textSpanIntersectsWith: () => tA, textSpanIntersectsWithPosition: () => rA, textSpanIntersectsWithTextSpan: () => eA, textSpanIsEmpty: () => S42, textSpanOverlap: () => x42, textSpanOverlapsWith: () => ZE, textSpansEqual: () => textSpansEqual, textToKeywordObj: () => cl3, timestamp: () => Sa4, toArray: () => Pf, toBuilderFileEmit: () => toBuilderFileEmit, toBuilderStateFileInfoForMultiEmit: () => toBuilderStateFileInfoForMultiEmit, toEditorSettings: () => sl3, toFileNameLowerCase: () => Ov, toLowerCase: () => Nv, toPath: () => xi8, toProgramEmitPending: () => toProgramEmitPending, tokenIsIdentifierOrKeyword: () => kt8, tokenIsIdentifierOrKeywordOrGreaterThan: () => n4, tokenToString: () => nr7, trace: () => trace, tracing: () => xa2, tracingEnabled: () => tracingEnabled, transform: () => transform, transformClassFields: () => transformClassFields, transformDeclarations: () => transformDeclarations, transformECMAScriptModule: () => transformECMAScriptModule, transformES2015: () => transformES2015, transformES2016: () => transformES2016, transformES2017: () => transformES2017, transformES2018: () => transformES2018, transformES2019: () => transformES2019, transformES2020: () => transformES2020, transformES2021: () => transformES2021, transformES5: () => transformES5, transformESDecorators: () => transformESDecorators, transformESNext: () => transformESNext, transformGenerators: () => transformGenerators, transformJsx: () => transformJsx, transformLegacyDecorators: () => transformLegacyDecorators, transformModule: () => transformModule, transformNamedEvaluation: () => transformNamedEvaluation, transformNodeModule: () => transformNodeModule, transformNodes: () => transformNodes, transformSystemModule: () => transformSystemModule, transformTypeScript: () => transformTypeScript, transpile: () => transpile, transpileModule: () => transpileModule, transpileOptionValueCompilerOptions: () => transpileOptionValueCompilerOptions, trimString: () => Ud, trimStringEnd: () => n_, trimStringStart: () => gl3, tryAddToSet: () => Q52, tryAndIgnoreErrors: () => tryAndIgnoreErrors, tryCast: () => On6, tryDirectoryExists: () => tryDirectoryExists, tryExtractTSExtension: () => $N, tryFileExists: () => tryFileExists, tryGetClassExtendingExpressionWithTypeArguments: () => dS, tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => mS, tryGetDirectories: () => tryGetDirectories, tryGetExtensionFromPath: () => X23, tryGetImportFromModuleSpecifier: () => fT, tryGetJSDocSatisfiesTypeNode: () => ux, tryGetModuleNameFromFile: () => L8, tryGetModuleSpecifierFromDeclaration: () => fI, tryGetNativePerformanceHooks: () => hE, tryGetPropertyAccessOrIdentifierToString: () => J02, tryGetPropertyNameOfBindingOrAssignmentElement: () => R82, tryGetSourceMappingURL: () => tryGetSourceMappingURL, tryGetTextOfPropertyName: () => Qg, tryIOAndConsumeErrors: () => tryIOAndConsumeErrors, tryParsePattern: () => YS, tryParsePatterns: () => LM, tryParseRawSourceMap: () => tryParseRawSourceMap, tryReadDirectory: () => tryReadDirectory, tryReadFile: () => tryReadFile, tryRemoveDirectoryPrefix: () => SM, tryRemoveExtension: () => $S, tryRemovePrefix: () => Bv, tryRemoveSuffix: () => QC, typeAcquisitionDeclarations: () => typeAcquisitionDeclarations, typeAliasNamePart: () => typeAliasNamePart, typeDirectiveIsEqualTo: () => iD, typeKeywords: () => typeKeywords, typeParameterNamePart: () => typeParameterNamePart, typeReferenceResolutionNameAndModeGetter: () => typeReferenceResolutionNameAndModeGetter, typeToDisplayParts: () => typeToDisplayParts, unchangedPollThresholds: () => unchangedPollThresholds, unchangedTextChangeRange: () => Vg, unescapeLeadingUnderscores: () => Vo3, unmangleScopedPackageName: () => unmangleScopedPackageName, unorderedRemoveItem: () => jv, unorderedRemoveItemAt: () => cg, unreachableCodeIsError: () => tM, unusedLabelIsError: () => rM, unwrapInnermostStatementOfLabel: () => bP, updateErrorForNoInputFiles: () => updateErrorForNoInputFiles, updateLanguageServiceSourceFile: () => u7, updateMissingFilePathsWatch: () => updateMissingFilePathsWatch, updatePackageJsonWatch: () => updatePackageJsonWatch, updateResolutionField: () => updateResolutionField, updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher, updateSourceFile: () => q62, updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories, usesExtensionsOnImports: () => XS, usingSingleLineStringWriter: () => Xk, utf16EncodeAsString: () => Nf, validateLocaleAndSetLanguage: () => sA, valuesHelper: () => valuesHelper, version: () => Hf, versionMajorMinor: () => gv, visitArray: () => visitArray, visitCommaListElements: () => visitCommaListElements, visitEachChild: () => visitEachChild, visitFunctionBody: () => visitFunctionBody, visitIterationBody: () => visitIterationBody, visitLexicalEnvironment: () => visitLexicalEnvironment, visitNode: () => visitNode, visitNodes: () => visitNodes2, visitParameterList: () => visitParameterList, walkUpBindingElementsAndPatterns: () => D42, walkUpLexicalEnvironments: () => walkUpLexicalEnvironments, walkUpOuterExpressions: () => OR, walkUpParenthesizedExpressions: () => xT, walkUpParenthesizedTypes: () => kI, walkUpParenthesizedTypesAndGetParentAndChild: () => DI, whitespaceOrMapCommentRegExp: () => whitespaceOrMapCommentRegExp, writeCommentRange: () => NN, writeFile: () => vN, writeFileEnsuringDirectories: () => TN, zipToModeAwareCache: () => zipToModeAwareCache, zipWith: () => ey }); - var hv = Vt4({ "src/typescript/_namespaces/ts.ts"() { - "use strict"; - Dr5(), Z82(), C7(), kB(); - } }), DB = I5({ "src/typescript/typescript.ts"(e10, t12) { - hv(), hv(), typeof console < "u" && (N6.loggingHost = { log(r9, a) { - switch (r9) { - case 1: - return console.error(a); - case 2: - return console.warn(a); - case 3: - return console.log(a); - case 4: - return console.log(a); - } - } }), t12.exports = E7; - } }); - A7.exports = DB(); - }); - V6 = ut4((k7) => { - k7.typescriptVersionIsAtLeast = new Proxy({}, { get: () => true }); - }); - H62 = ut4((ai7) => { - "use strict"; - var PB = ai7 && ai7.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), IB = ai7 && ai7.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), NB = ai7 && ai7.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && PB(t12, e3, r3); - return IB(t12, e3), t12; - }; - Object.defineProperty(ai7, "__esModule", { value: true }); - ai7.getDecorators = ai7.getModifiers = void 0; - var W_ = NB(Dt8()), OB = V6(), D7 = OB.typescriptVersionIsAtLeast["4.8"]; - function MB(e3, t12 = false) { - var r3; - if (e3 != null) { - if (D7) { - if (t12 || W_.canHaveModifiers(e3)) { - let a = W_.getModifiers(e3); - return a ? Array.from(a) : void 0; - } - return; - } - return (r3 = e3.modifiers) == null ? void 0 : r3.filter((a) => !W_.isDecorator(a)); - } - } - ai7.getModifiers = MB; - function LB(e3, t12 = false) { - var r3; - if (e3 != null) { - if (D7) { - if (t12 || W_.canHaveDecorators(e3)) { - let a = W_.getDecorators(e3); - return a ? Array.from(a) : void 0; - } - return; - } - return (r3 = e3.decorators) == null ? void 0 : r3.filter(W_.isDecorator); - } - } - ai7.getDecorators = LB; - }); - P72 = ut4((Fm2) => { - "use strict"; - Object.defineProperty(Fm2, "__esModule", { value: true }); - Fm2.xhtmlEntities = void 0; - Fm2.xhtmlEntities = { quot: '"', amp: "&", apos: "'", lt: "<", gt: ">", nbsp: "\xA0", iexcl: "\xA1", cent: "\xA2", pound: "\xA3", curren: "\xA4", yen: "\xA5", brvbar: "\xA6", sect: "\xA7", uml: "\xA8", copy: "\xA9", ordf: "\xAA", laquo: "\xAB", not: "\xAC", shy: "\xAD", reg: "\xAE", macr: "\xAF", deg: "\xB0", plusmn: "\xB1", sup2: "\xB2", sup3: "\xB3", acute: "\xB4", micro: "\xB5", para: "\xB6", middot: "\xB7", cedil: "\xB8", sup1: "\xB9", ordm: "\xBA", raquo: "\xBB", frac14: "\xBC", frac12: "\xBD", frac34: "\xBE", iquest: "\xBF", Agrave: "\xC0", Aacute: "\xC1", Acirc: "\xC2", Atilde: "\xC3", Auml: "\xC4", Aring: "\xC5", AElig: "\xC6", Ccedil: "\xC7", Egrave: "\xC8", Eacute: "\xC9", Ecirc: "\xCA", Euml: "\xCB", Igrave: "\xCC", Iacute: "\xCD", Icirc: "\xCE", Iuml: "\xCF", ETH: "\xD0", Ntilde: "\xD1", Ograve: "\xD2", Oacute: "\xD3", Ocirc: "\xD4", Otilde: "\xD5", Ouml: "\xD6", times: "\xD7", Oslash: "\xD8", Ugrave: "\xD9", Uacute: "\xDA", Ucirc: "\xDB", Uuml: "\xDC", Yacute: "\xDD", THORN: "\xDE", szlig: "\xDF", agrave: "\xE0", aacute: "\xE1", acirc: "\xE2", atilde: "\xE3", auml: "\xE4", aring: "\xE5", aelig: "\xE6", ccedil: "\xE7", egrave: "\xE8", eacute: "\xE9", ecirc: "\xEA", euml: "\xEB", igrave: "\xEC", iacute: "\xED", icirc: "\xEE", iuml: "\xEF", eth: "\xF0", ntilde: "\xF1", ograve: "\xF2", oacute: "\xF3", ocirc: "\xF4", otilde: "\xF5", ouml: "\xF6", divide: "\xF7", oslash: "\xF8", ugrave: "\xF9", uacute: "\xFA", ucirc: "\xFB", uuml: "\xFC", yacute: "\xFD", thorn: "\xFE", yuml: "\xFF", OElig: "\u0152", oelig: "\u0153", Scaron: "\u0160", scaron: "\u0161", Yuml: "\u0178", fnof: "\u0192", circ: "\u02C6", tilde: "\u02DC", Alpha: "\u0391", Beta: "\u0392", Gamma: "\u0393", Delta: "\u0394", Epsilon: "\u0395", Zeta: "\u0396", Eta: "\u0397", Theta: "\u0398", Iota: "\u0399", Kappa: "\u039A", Lambda: "\u039B", Mu: "\u039C", Nu: "\u039D", Xi: "\u039E", Omicron: "\u039F", Pi: "\u03A0", Rho: "\u03A1", Sigma: "\u03A3", Tau: "\u03A4", Upsilon: "\u03A5", Phi: "\u03A6", Chi: "\u03A7", Psi: "\u03A8", Omega: "\u03A9", alpha: "\u03B1", beta: "\u03B2", gamma: "\u03B3", delta: "\u03B4", epsilon: "\u03B5", zeta: "\u03B6", eta: "\u03B7", theta: "\u03B8", iota: "\u03B9", kappa: "\u03BA", lambda: "\u03BB", mu: "\u03BC", nu: "\u03BD", xi: "\u03BE", omicron: "\u03BF", pi: "\u03C0", rho: "\u03C1", sigmaf: "\u03C2", sigma: "\u03C3", tau: "\u03C4", upsilon: "\u03C5", phi: "\u03C6", chi: "\u03C7", psi: "\u03C8", omega: "\u03C9", thetasym: "\u03D1", upsih: "\u03D2", piv: "\u03D6", ensp: "\u2002", emsp: "\u2003", thinsp: "\u2009", zwnj: "\u200C", zwj: "\u200D", lrm: "\u200E", rlm: "\u200F", ndash: "\u2013", mdash: "\u2014", lsquo: "\u2018", rsquo: "\u2019", sbquo: "\u201A", ldquo: "\u201C", rdquo: "\u201D", bdquo: "\u201E", dagger: "\u2020", Dagger: "\u2021", bull: "\u2022", hellip: "\u2026", permil: "\u2030", prime: "\u2032", Prime: "\u2033", lsaquo: "\u2039", rsaquo: "\u203A", oline: "\u203E", frasl: "\u2044", euro: "\u20AC", image: "\u2111", weierp: "\u2118", real: "\u211C", trade: "\u2122", alefsym: "\u2135", larr: "\u2190", uarr: "\u2191", rarr: "\u2192", darr: "\u2193", harr: "\u2194", crarr: "\u21B5", lArr: "\u21D0", uArr: "\u21D1", rArr: "\u21D2", dArr: "\u21D3", hArr: "\u21D4", forall: "\u2200", part: "\u2202", exist: "\u2203", empty: "\u2205", nabla: "\u2207", isin: "\u2208", notin: "\u2209", ni: "\u220B", prod: "\u220F", sum: "\u2211", minus: "\u2212", lowast: "\u2217", radic: "\u221A", prop: "\u221D", infin: "\u221E", ang: "\u2220", and: "\u2227", or: "\u2228", cap: "\u2229", cup: "\u222A", int: "\u222B", there4: "\u2234", sim: "\u223C", cong: "\u2245", asymp: "\u2248", ne: "\u2260", equiv: "\u2261", le: "\u2264", ge: "\u2265", sub: "\u2282", sup: "\u2283", nsub: "\u2284", sube: "\u2286", supe: "\u2287", oplus: "\u2295", otimes: "\u2297", perp: "\u22A5", sdot: "\u22C5", lceil: "\u2308", rceil: "\u2309", lfloor: "\u230A", rfloor: "\u230B", lang: "\u2329", rang: "\u232A", loz: "\u25CA", spades: "\u2660", clubs: "\u2663", hearts: "\u2665", diams: "\u2666" }; - }); - G62 = ut4((V_) => { - "use strict"; - Object.defineProperty(V_, "__esModule", { value: true }); - V_.AST_TOKEN_TYPES = V_.AST_NODE_TYPES = void 0; - var I7; - (function(e3) { - e3.AccessorProperty = "AccessorProperty", e3.ArrayExpression = "ArrayExpression", e3.ArrayPattern = "ArrayPattern", e3.ArrowFunctionExpression = "ArrowFunctionExpression", e3.AssignmentExpression = "AssignmentExpression", e3.AssignmentPattern = "AssignmentPattern", e3.AwaitExpression = "AwaitExpression", e3.BinaryExpression = "BinaryExpression", e3.BlockStatement = "BlockStatement", e3.BreakStatement = "BreakStatement", e3.CallExpression = "CallExpression", e3.CatchClause = "CatchClause", e3.ChainExpression = "ChainExpression", e3.ClassBody = "ClassBody", e3.ClassDeclaration = "ClassDeclaration", e3.ClassExpression = "ClassExpression", e3.ConditionalExpression = "ConditionalExpression", e3.ContinueStatement = "ContinueStatement", e3.DebuggerStatement = "DebuggerStatement", e3.Decorator = "Decorator", e3.DoWhileStatement = "DoWhileStatement", e3.EmptyStatement = "EmptyStatement", e3.ExportAllDeclaration = "ExportAllDeclaration", e3.ExportDefaultDeclaration = "ExportDefaultDeclaration", e3.ExportNamedDeclaration = "ExportNamedDeclaration", e3.ExportSpecifier = "ExportSpecifier", e3.ExpressionStatement = "ExpressionStatement", e3.ForInStatement = "ForInStatement", e3.ForOfStatement = "ForOfStatement", e3.ForStatement = "ForStatement", e3.FunctionDeclaration = "FunctionDeclaration", e3.FunctionExpression = "FunctionExpression", e3.Identifier = "Identifier", e3.IfStatement = "IfStatement", e3.ImportAttribute = "ImportAttribute", e3.ImportDeclaration = "ImportDeclaration", e3.ImportDefaultSpecifier = "ImportDefaultSpecifier", e3.ImportExpression = "ImportExpression", e3.ImportNamespaceSpecifier = "ImportNamespaceSpecifier", e3.ImportSpecifier = "ImportSpecifier", e3.JSXAttribute = "JSXAttribute", e3.JSXClosingElement = "JSXClosingElement", e3.JSXClosingFragment = "JSXClosingFragment", e3.JSXElement = "JSXElement", e3.JSXEmptyExpression = "JSXEmptyExpression", e3.JSXExpressionContainer = "JSXExpressionContainer", e3.JSXFragment = "JSXFragment", e3.JSXIdentifier = "JSXIdentifier", e3.JSXMemberExpression = "JSXMemberExpression", e3.JSXNamespacedName = "JSXNamespacedName", e3.JSXOpeningElement = "JSXOpeningElement", e3.JSXOpeningFragment = "JSXOpeningFragment", e3.JSXSpreadAttribute = "JSXSpreadAttribute", e3.JSXSpreadChild = "JSXSpreadChild", e3.JSXText = "JSXText", e3.LabeledStatement = "LabeledStatement", e3.Literal = "Literal", e3.LogicalExpression = "LogicalExpression", e3.MemberExpression = "MemberExpression", e3.MetaProperty = "MetaProperty", e3.MethodDefinition = "MethodDefinition", e3.NewExpression = "NewExpression", e3.ObjectExpression = "ObjectExpression", e3.ObjectPattern = "ObjectPattern", e3.PrivateIdentifier = "PrivateIdentifier", e3.Program = "Program", e3.Property = "Property", e3.PropertyDefinition = "PropertyDefinition", e3.RestElement = "RestElement", e3.ReturnStatement = "ReturnStatement", e3.SequenceExpression = "SequenceExpression", e3.SpreadElement = "SpreadElement", e3.StaticBlock = "StaticBlock", e3.Super = "Super", e3.SwitchCase = "SwitchCase", e3.SwitchStatement = "SwitchStatement", e3.TaggedTemplateExpression = "TaggedTemplateExpression", e3.TemplateElement = "TemplateElement", e3.TemplateLiteral = "TemplateLiteral", e3.ThisExpression = "ThisExpression", e3.ThrowStatement = "ThrowStatement", e3.TryStatement = "TryStatement", e3.UnaryExpression = "UnaryExpression", e3.UpdateExpression = "UpdateExpression", e3.VariableDeclaration = "VariableDeclaration", e3.VariableDeclarator = "VariableDeclarator", e3.WhileStatement = "WhileStatement", e3.WithStatement = "WithStatement", e3.YieldExpression = "YieldExpression", e3.TSAbstractAccessorProperty = "TSAbstractAccessorProperty", e3.TSAbstractKeyword = "TSAbstractKeyword", e3.TSAbstractMethodDefinition = "TSAbstractMethodDefinition", e3.TSAbstractPropertyDefinition = "TSAbstractPropertyDefinition", e3.TSAnyKeyword = "TSAnyKeyword", e3.TSArrayType = "TSArrayType", e3.TSAsExpression = "TSAsExpression", e3.TSAsyncKeyword = "TSAsyncKeyword", e3.TSBigIntKeyword = "TSBigIntKeyword", e3.TSBooleanKeyword = "TSBooleanKeyword", e3.TSCallSignatureDeclaration = "TSCallSignatureDeclaration", e3.TSClassImplements = "TSClassImplements", e3.TSConditionalType = "TSConditionalType", e3.TSConstructorType = "TSConstructorType", e3.TSConstructSignatureDeclaration = "TSConstructSignatureDeclaration", e3.TSDeclareFunction = "TSDeclareFunction", e3.TSDeclareKeyword = "TSDeclareKeyword", e3.TSEmptyBodyFunctionExpression = "TSEmptyBodyFunctionExpression", e3.TSEnumDeclaration = "TSEnumDeclaration", e3.TSEnumMember = "TSEnumMember", e3.TSExportAssignment = "TSExportAssignment", e3.TSExportKeyword = "TSExportKeyword", e3.TSExternalModuleReference = "TSExternalModuleReference", e3.TSFunctionType = "TSFunctionType", e3.TSInstantiationExpression = "TSInstantiationExpression", e3.TSImportEqualsDeclaration = "TSImportEqualsDeclaration", e3.TSImportType = "TSImportType", e3.TSIndexedAccessType = "TSIndexedAccessType", e3.TSIndexSignature = "TSIndexSignature", e3.TSInferType = "TSInferType", e3.TSInterfaceBody = "TSInterfaceBody", e3.TSInterfaceDeclaration = "TSInterfaceDeclaration", e3.TSInterfaceHeritage = "TSInterfaceHeritage", e3.TSIntersectionType = "TSIntersectionType", e3.TSIntrinsicKeyword = "TSIntrinsicKeyword", e3.TSLiteralType = "TSLiteralType", e3.TSMappedType = "TSMappedType", e3.TSMethodSignature = "TSMethodSignature", e3.TSModuleBlock = "TSModuleBlock", e3.TSModuleDeclaration = "TSModuleDeclaration", e3.TSNamedTupleMember = "TSNamedTupleMember", e3.TSNamespaceExportDeclaration = "TSNamespaceExportDeclaration", e3.TSNeverKeyword = "TSNeverKeyword", e3.TSNonNullExpression = "TSNonNullExpression", e3.TSNullKeyword = "TSNullKeyword", e3.TSNumberKeyword = "TSNumberKeyword", e3.TSObjectKeyword = "TSObjectKeyword", e3.TSOptionalType = "TSOptionalType", e3.TSParameterProperty = "TSParameterProperty", e3.TSPrivateKeyword = "TSPrivateKeyword", e3.TSPropertySignature = "TSPropertySignature", e3.TSProtectedKeyword = "TSProtectedKeyword", e3.TSPublicKeyword = "TSPublicKeyword", e3.TSQualifiedName = "TSQualifiedName", e3.TSReadonlyKeyword = "TSReadonlyKeyword", e3.TSRestType = "TSRestType", e3.TSSatisfiesExpression = "TSSatisfiesExpression", e3.TSStaticKeyword = "TSStaticKeyword", e3.TSStringKeyword = "TSStringKeyword", e3.TSSymbolKeyword = "TSSymbolKeyword", e3.TSTemplateLiteralType = "TSTemplateLiteralType", e3.TSThisType = "TSThisType", e3.TSTupleType = "TSTupleType", e3.TSTypeAliasDeclaration = "TSTypeAliasDeclaration", e3.TSTypeAnnotation = "TSTypeAnnotation", e3.TSTypeAssertion = "TSTypeAssertion", e3.TSTypeLiteral = "TSTypeLiteral", e3.TSTypeOperator = "TSTypeOperator", e3.TSTypeParameter = "TSTypeParameter", e3.TSTypeParameterDeclaration = "TSTypeParameterDeclaration", e3.TSTypeParameterInstantiation = "TSTypeParameterInstantiation", e3.TSTypePredicate = "TSTypePredicate", e3.TSTypeQuery = "TSTypeQuery", e3.TSTypeReference = "TSTypeReference", e3.TSUndefinedKeyword = "TSUndefinedKeyword", e3.TSUnionType = "TSUnionType", e3.TSUnknownKeyword = "TSUnknownKeyword", e3.TSVoidKeyword = "TSVoidKeyword"; - })(I7 || (V_.AST_NODE_TYPES = I7 = {})); - var N7; - (function(e3) { - e3.Boolean = "Boolean", e3.Identifier = "Identifier", e3.JSXIdentifier = "JSXIdentifier", e3.JSXText = "JSXText", e3.Keyword = "Keyword", e3.Null = "Null", e3.Numeric = "Numeric", e3.Punctuator = "Punctuator", e3.RegularExpression = "RegularExpression", e3.String = "String", e3.Template = "Template", e3.Block = "Block", e3.Line = "Line"; - })(N7 || (V_.AST_TOKEN_TYPES = N7 = {})); - }); - M72 = ut4((O7) => { - "use strict"; - Object.defineProperty(O7, "__esModule", { value: true }); - }); - J7 = ut4((L7) => { - "use strict"; - Object.defineProperty(L7, "__esModule", { value: true }); - }); - R72 = ut4((Ki6) => { - "use strict"; - var JB2 = Ki6 && Ki6.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), RB = Ki6 && Ki6.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), jB2 = Ki6 && Ki6.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && JB2(t12, e3, r3); - return RB(t12, e3), t12; - }; - Object.defineProperty(Ki6, "__esModule", { value: true }); - Ki6.TSESTree = void 0; - Ki6.TSESTree = jB2(G62()); - }); - F7 = ut4((jn6) => { - "use strict"; - var FB2 = jn6 && jn6.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), X62 = jn6 && jn6.__exportStar || function(e3, t12) { - for (var r3 in e3) - r3 !== "default" && !Object.prototype.hasOwnProperty.call(t12, r3) && FB2(t12, e3, r3); - }; - Object.defineProperty(jn6, "__esModule", { value: true }); - jn6.AST_TOKEN_TYPES = jn6.AST_NODE_TYPES = void 0; - var j72 = G62(); - Object.defineProperty(jn6, "AST_NODE_TYPES", { enumerable: true, get: function() { - return j72.AST_NODE_TYPES; - } }); - Object.defineProperty(jn6, "AST_TOKEN_TYPES", { enumerable: true, get: function() { - return j72.AST_TOKEN_TYPES; - } }); - X62(M72(), jn6); - X62(J7(), jn6); - X62(R72(), jn6); - }); - U72 = ut4((B72) => { - "use strict"; - Object.defineProperty(B72, "__esModule", { value: true }); - }); - z72 = ut4((q72) => { - "use strict"; - Object.defineProperty(q72, "__esModule", { value: true }); - }); - Bm = ut4((hn6) => { - "use strict"; - var BB = hn6 && hn6.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), W7 = hn6 && hn6.__exportStar || function(e3, t12) { - for (var r3 in e3) - r3 !== "default" && !Object.prototype.hasOwnProperty.call(t12, r3) && BB(t12, e3, r3); - }; - Object.defineProperty(hn6, "__esModule", { value: true }); - hn6.TSESTree = hn6.AST_TOKEN_TYPES = hn6.AST_NODE_TYPES = void 0; - var $62 = F7(); - Object.defineProperty(hn6, "AST_NODE_TYPES", { enumerable: true, get: function() { - return $62.AST_NODE_TYPES; - } }); - Object.defineProperty(hn6, "AST_TOKEN_TYPES", { enumerable: true, get: function() { - return $62.AST_TOKEN_TYPES; - } }); - Object.defineProperty(hn6, "TSESTree", { enumerable: true, get: function() { - return $62.TSESTree; - } }); - W7(U72(), hn6); - W7(z72(), hn6); - }); - zm = ut4((me8) => { - "use strict"; - var UB = me8 && me8.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), qB2 = me8 && me8.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), zB = me8 && me8.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && UB(t12, e3, r3); - return qB2(t12, e3), t12; - }; - Object.defineProperty(me8, "__esModule", { value: true }); - me8.getNamespaceModifiers = me8.nodeCanBeDecorated = me8.getContainingFunction = me8.nodeIsPresent = me8.isThisInTypeQuery = me8.isThisIdentifier = me8.identifierIsThisKeyword = me8.firstDefined = me8.nodeHasTokens = me8.nodeHasIllegalDecorators = me8.createError = me8.TSError = me8.convertTokens = me8.convertToken = me8.getTokenType = me8.isChildUnwrappableOptionalChain = me8.isChainExpression = me8.isOptional = me8.isComputedProperty = me8.unescapeStringLiteralText = me8.hasJSXAncestor = me8.findFirstMatchingAncestor = me8.findNextToken = me8.getTSNodeAccessibility = me8.getDeclarationKind = me8.isJSXToken = me8.getRange = me8.canContainDirective = me8.getLocFor = me8.getLineAndCharacterFor = me8.getBinaryExpressionType = me8.isComment = me8.isComma = me8.getLastModifier = me8.hasModifier = me8.isESTreeClassMember = me8.getTextForTokenKind = me8.isESTreeBinaryOperator = me8.isLogicalOperator = void 0; - var Qe10 = zB(Dt8()), uu5 = H62(), WB = P72(), ir7 = Bm(), VB2 = V6(), V7 = VB2.typescriptVersionIsAtLeast["5.0"], ye6 = Qe10.SyntaxKind, HB2 = /* @__PURE__ */ new Set([ye6.BarBarToken, ye6.AmpersandAmpersandToken, ye6.QuestionQuestionToken]), GB2 = /* @__PURE__ */ new Set([Qe10.SyntaxKind.EqualsToken, Qe10.SyntaxKind.PlusEqualsToken, Qe10.SyntaxKind.MinusEqualsToken, Qe10.SyntaxKind.AsteriskEqualsToken, Qe10.SyntaxKind.AsteriskAsteriskEqualsToken, Qe10.SyntaxKind.SlashEqualsToken, Qe10.SyntaxKind.PercentEqualsToken, Qe10.SyntaxKind.LessThanLessThanEqualsToken, Qe10.SyntaxKind.GreaterThanGreaterThanEqualsToken, Qe10.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken, Qe10.SyntaxKind.AmpersandEqualsToken, Qe10.SyntaxKind.BarEqualsToken, Qe10.SyntaxKind.BarBarEqualsToken, Qe10.SyntaxKind.AmpersandAmpersandEqualsToken, Qe10.SyntaxKind.QuestionQuestionEqualsToken, Qe10.SyntaxKind.CaretEqualsToken]), XB2 = /* @__PURE__ */ new Set([ye6.InstanceOfKeyword, ye6.InKeyword, ye6.AsteriskAsteriskToken, ye6.AsteriskToken, ye6.SlashToken, ye6.PercentToken, ye6.PlusToken, ye6.MinusToken, ye6.AmpersandToken, ye6.BarToken, ye6.CaretToken, ye6.LessThanLessThanToken, ye6.GreaterThanGreaterThanToken, ye6.GreaterThanGreaterThanGreaterThanToken, ye6.AmpersandAmpersandToken, ye6.BarBarToken, ye6.LessThanToken, ye6.LessThanEqualsToken, ye6.GreaterThanToken, ye6.GreaterThanEqualsToken, ye6.EqualsEqualsToken, ye6.EqualsEqualsEqualsToken, ye6.ExclamationEqualsEqualsToken, ye6.ExclamationEqualsToken]); - function $B(e3) { - return GB2.has(e3.kind); - } - function H72(e3) { - return HB2.has(e3.kind); - } - me8.isLogicalOperator = H72; - function G72(e3) { - return XB2.has(e3.kind); - } - me8.isESTreeBinaryOperator = G72; - function Um(e3) { - return Qe10.tokenToString(e3); - } - me8.getTextForTokenKind = Um; - function QB2(e3) { - return e3.kind !== ye6.SemicolonClassElement; - } - me8.isESTreeClassMember = QB2; - function X72(e3, t12) { - let r3 = (0, uu5.getModifiers)(t12); - return (r3 == null ? void 0 : r3.some((a) => a.kind === e3)) === true; - } - me8.hasModifier = X72; - function YB2(e3) { - let t12 = (0, uu5.getModifiers)(e3); - return t12 == null ? null : t12[t12.length - 1] ?? null; - } - me8.getLastModifier = YB2; - function KB(e3) { - return e3.kind === ye6.CommaToken; - } - me8.isComma = KB; - function $72(e3) { - return e3.kind === ye6.SingleLineCommentTrivia || e3.kind === ye6.MultiLineCommentTrivia; - } - me8.isComment = $72; - function ZB(e3) { - return e3.kind === ye6.JSDocComment; - } - function eU(e3) { - if ($B(e3)) - return { type: ir7.AST_NODE_TYPES.AssignmentExpression, operator: Um(e3.kind) }; - if (H72(e3)) - return { type: ir7.AST_NODE_TYPES.LogicalExpression, operator: Um(e3.kind) }; - if (G72(e3)) - return { type: ir7.AST_NODE_TYPES.BinaryExpression, operator: Um(e3.kind) }; - throw new Error(`Unexpected binary operator ${Qe10.tokenToString(e3.kind)}`); - } - me8.getBinaryExpressionType = eU; - function Q7(e3, t12) { - let r3 = t12.getLineAndCharacterOfPosition(e3); - return { line: r3.line + 1, column: r3.character }; - } - me8.getLineAndCharacterFor = Q7; - function Y72(e3, t12) { - let [r3, a] = e3.map((_6) => Q7(_6, t12)); - return { start: r3, end: a }; - } - me8.getLocFor = Y72; - function tU(e3) { - if (e3.kind === Qe10.SyntaxKind.Block) - switch (e3.parent.kind) { - case Qe10.SyntaxKind.Constructor: - case Qe10.SyntaxKind.GetAccessor: - case Qe10.SyntaxKind.SetAccessor: - case Qe10.SyntaxKind.ArrowFunction: - case Qe10.SyntaxKind.FunctionExpression: - case Qe10.SyntaxKind.FunctionDeclaration: - case Qe10.SyntaxKind.MethodDeclaration: - return true; - default: - return false; - } - return true; - } - me8.canContainDirective = tU; - function rU(e3, t12) { - return [e3.getStart(t12), e3.getEnd()]; - } - me8.getRange = rU; - function nU(e3) { - return e3.kind >= ye6.FirstToken && e3.kind <= ye6.LastToken; - } - function Q62(e3) { - return e3.kind >= ye6.JsxElement && e3.kind <= ye6.JsxAttribute; - } - me8.isJSXToken = Q62; - function iU(e3) { - return e3.flags & Qe10.NodeFlags.Let ? "let" : (e3.flags & Qe10.NodeFlags.AwaitUsing) === Qe10.NodeFlags.AwaitUsing ? "await using" : e3.flags & Qe10.NodeFlags.Const ? "const" : e3.flags & Qe10.NodeFlags.Using ? "using" : "var"; - } - me8.getDeclarationKind = iU; - function aU(e3) { - let t12 = (0, uu5.getModifiers)(e3); - if (t12 != null) - for (let r3 of t12) - switch (r3.kind) { - case ye6.PublicKeyword: - return "public"; - case ye6.ProtectedKeyword: - return "protected"; - case ye6.PrivateKeyword: - return "private"; - default: - break; - } - } - me8.getTSNodeAccessibility = aU; - function oU(e3, t12, r3) { - return a(t12); - function a(_6) { - return Qe10.isToken(_6) && _6.pos === e3.end ? _6 : iw(_6.getChildren(r3), (p4) => (p4.pos <= e3.pos && p4.end > e3.end || p4.pos === e3.end) && nw(p4, r3) ? a(p4) : void 0); - } - } - me8.findNextToken = oU; - function K7(e3, t12) { - for (; e3; ) { - if (t12(e3)) - return e3; - e3 = e3.parent; - } - } - me8.findFirstMatchingAncestor = K7; - function Z72(e3) { - return !!K7(e3, Q62); - } - me8.hasJSXAncestor = Z72; - function sU(e3) { - return e3.replace(/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g, (t12) => { - let r3 = t12.slice(1, -1); - if (r3[0] === "#") { - let a = r3[1] === "x" ? parseInt(r3.slice(2), 16) : parseInt(r3.slice(1), 10); - return a > 1114111 ? t12 : String.fromCodePoint(a); - } - return WB.xhtmlEntities[r3] || t12; - }); - } - me8.unescapeStringLiteralText = sU; - function _U(e3) { - return e3.kind === ye6.ComputedPropertyName; - } - me8.isComputedProperty = _U; - function cU(e3) { - return e3.questionToken ? e3.questionToken.kind === ye6.QuestionToken : false; - } - me8.isOptional = cU; - function ew(e3) { - return e3.type === ir7.AST_NODE_TYPES.ChainExpression; - } - me8.isChainExpression = ew; - function lU(e3, t12) { - return ew(t12) && e3.expression.kind !== Qe10.SyntaxKind.ParenthesizedExpression; - } - me8.isChildUnwrappableOptionalChain = lU; - function tw(e3) { - let t12; - if (V7 && e3.kind === ye6.Identifier ? t12 = Qe10.identifierToKeywordKind(e3) : "originalKeywordKind" in e3 && (t12 = e3.originalKeywordKind), t12) - return t12 === ye6.NullKeyword ? ir7.AST_TOKEN_TYPES.Null : t12 >= ye6.FirstFutureReservedWord && t12 <= ye6.LastKeyword ? ir7.AST_TOKEN_TYPES.Identifier : ir7.AST_TOKEN_TYPES.Keyword; - if (e3.kind >= ye6.FirstKeyword && e3.kind <= ye6.LastFutureReservedWord) - return e3.kind === ye6.FalseKeyword || e3.kind === ye6.TrueKeyword ? ir7.AST_TOKEN_TYPES.Boolean : ir7.AST_TOKEN_TYPES.Keyword; - if (e3.kind >= ye6.FirstPunctuation && e3.kind <= ye6.LastPunctuation) - return ir7.AST_TOKEN_TYPES.Punctuator; - if (e3.kind >= ye6.NoSubstitutionTemplateLiteral && e3.kind <= ye6.TemplateTail) - return ir7.AST_TOKEN_TYPES.Template; - switch (e3.kind) { - case ye6.NumericLiteral: - return ir7.AST_TOKEN_TYPES.Numeric; - case ye6.JsxText: - return ir7.AST_TOKEN_TYPES.JSXText; - case ye6.StringLiteral: - return e3.parent.kind === ye6.JsxAttribute || e3.parent.kind === ye6.JsxElement ? ir7.AST_TOKEN_TYPES.JSXText : ir7.AST_TOKEN_TYPES.String; - case ye6.RegularExpressionLiteral: - return ir7.AST_TOKEN_TYPES.RegularExpression; - case ye6.Identifier: - case ye6.ConstructorKeyword: - case ye6.GetKeyword: - case ye6.SetKeyword: - default: - } - return e3.kind === ye6.Identifier && (Q62(e3.parent) || e3.parent.kind === ye6.PropertyAccessExpression && Z72(e3)) ? ir7.AST_TOKEN_TYPES.JSXIdentifier : ir7.AST_TOKEN_TYPES.Identifier; - } - me8.getTokenType = tw; - function rw(e3, t12) { - let r3 = e3.kind === ye6.JsxText ? e3.getFullStart() : e3.getStart(t12), a = e3.getEnd(), _6 = t12.text.slice(r3, a), p4 = tw(e3), d5 = [r3, a], h4 = Y72(d5, t12); - return p4 === ir7.AST_TOKEN_TYPES.RegularExpression ? { type: p4, value: _6, range: d5, loc: h4, regex: { pattern: _6.slice(1, _6.lastIndexOf("/")), flags: _6.slice(_6.lastIndexOf("/") + 1) } } : { type: p4, value: _6, range: d5, loc: h4 }; - } - me8.convertToken = rw; - function uU(e3) { - let t12 = []; - function r3(a) { - if (!($72(a) || ZB(a))) - if (nU(a) && a.kind !== ye6.EndOfFileToken) { - let _6 = rw(a, e3); - _6 && t12.push(_6); - } else - a.getChildren(e3).forEach(r3); - } - return r3(e3), t12; - } - me8.convertTokens = uU; - var qm2 = class extends Error { - constructor(t12, r3, a) { - super(t12), this.fileName = r3, this.location = a, Object.defineProperty(this, "name", { value: new.target.name, enumerable: false, configurable: true }); - } - get index() { - return this.location.start.offset; - } - get lineNumber() { - return this.location.start.line; - } - get column() { - return this.location.start.column; - } - }; - me8.TSError = qm2; - function pU(e3, t12, r3, a = r3) { - let [_6, p4] = [r3, a].map((d5) => { - let { line: h4, character: l } = t12.getLineAndCharacterOfPosition(d5); - return { line: h4 + 1, column: l, offset: d5 }; - }); - return new qm2(e3, t12.fileName, { start: _6, end: p4 }); - } - me8.createError = pU; - function fU(e3) { - var t12; - return !!("illegalDecorators" in e3 && ((t12 = e3.illegalDecorators) != null && t12.length)); - } - me8.nodeHasIllegalDecorators = fU; - function nw(e3, t12) { - return e3.kind === ye6.EndOfFileToken ? !!e3.jsDoc : e3.getWidth(t12) !== 0; - } - me8.nodeHasTokens = nw; - function iw(e3, t12) { - if (e3 !== void 0) - for (let r3 = 0; r3 < e3.length; r3++) { - let a = t12(e3[r3], r3); - if (a !== void 0) - return a; - } - } - me8.firstDefined = iw; - function aw(e3) { - return (V7 ? Qe10.identifierToKeywordKind(e3) : e3.originalKeywordKind) === ye6.ThisKeyword; - } - me8.identifierIsThisKeyword = aw; - function Y62(e3) { - return !!e3 && e3.kind === ye6.Identifier && aw(e3); - } - me8.isThisIdentifier = Y62; - function dU(e3) { - if (!Y62(e3)) - return false; - for (; Qe10.isQualifiedName(e3.parent) && e3.parent.left === e3; ) - e3 = e3.parent; - return e3.parent.kind === ye6.TypeQuery; - } - me8.isThisInTypeQuery = dU; - function mU(e3) { - return e3 === void 0 ? true : e3.pos === e3.end && e3.pos >= 0 && e3.kind !== ye6.EndOfFileToken; - } - function hU(e3) { - return !mU(e3); - } - me8.nodeIsPresent = hU; - function yU(e3) { - return Qe10.findAncestor(e3.parent, Qe10.isFunctionLike); - } - me8.getContainingFunction = yU; - function gU(e3) { - return X72(ye6.AbstractKeyword, e3); - } - function bU(e3) { - if (e3.parameters.length && !Qe10.isJSDocSignature(e3)) { - let t12 = e3.parameters[0]; - if (vU(t12)) - return t12; - } - return null; - } - function vU(e3) { - return Y62(e3.name); - } - function TU(e3) { - switch (e3.kind) { - case ye6.ClassDeclaration: - return true; - case ye6.ClassExpression: - return true; - case ye6.PropertyDeclaration: { - let { parent: t12 } = e3; - return !!(Qe10.isClassDeclaration(t12) || Qe10.isClassLike(t12) && !gU(e3)); - } - case ye6.GetAccessor: - case ye6.SetAccessor: - case ye6.MethodDeclaration: { - let { parent: t12 } = e3; - return !!e3.body && (Qe10.isClassDeclaration(t12) || Qe10.isClassLike(t12)); - } - case ye6.Parameter: { - let { parent: t12 } = e3, r3 = t12.parent; - return !!t12 && "body" in t12 && !!t12.body && (t12.kind === ye6.Constructor || t12.kind === ye6.MethodDeclaration || t12.kind === ye6.SetAccessor) && bU(t12) !== e3 && !!r3 && r3.kind === ye6.ClassDeclaration; - } - } - return false; - } - me8.nodeCanBeDecorated = TU; - function SU(e3) { - let t12 = (0, uu5.getModifiers)(e3), r3 = e3; - for (; (!t12 || t12.length === 0) && Qe10.isModuleDeclaration(r3.parent) && r3.parent.name; ) { - let a = (0, uu5.getModifiers)(r3.parent); - a && (a == null ? void 0 : a.length) > 0 && (t12 = a), r3 = r3.parent; - } - return t12; - } - me8.getNamespaceModifiers = SU; - }); - Z62 = ut4((yn6) => { - "use strict"; - var xU = yn6 && yn6.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), wU = yn6 && yn6.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), CU = yn6 && yn6.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && xU(t12, e3, r3); - return wU(t12, e3), t12; - }, Ne7 = yn6 && yn6.__classPrivateFieldGet || function(e3, t12, r3, a) { - if (r3 === "a" && !a) - throw new TypeError("Private accessor was defined without a getter"); - if (typeof t12 == "function" ? e3 !== t12 || !a : !t12.has(e3)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return r3 === "m" ? a : r3 === "a" ? a.call(e3) : a ? a.value : t12.get(e3); - }, Pe10, ow, br5, oi7, st5; - Object.defineProperty(yn6, "__esModule", { value: true }); - yn6.Converter = yn6.convertError = void 0; - var _t6 = CU(Dt8()), Zi7 = H62(), pe7 = zm(), J8 = Bm(), E6 = _t6.SyntaxKind; - function EU(e3) { - return (0, pe7.createError)("message" in e3 && e3.message || e3.messageText, e3.file, e3.start); - } - yn6.convertError = EU; - var K62 = class { - constructor(t12, r3) { - Pe10.add(this), this.esTreeNodeToTSNodeMap = /* @__PURE__ */ new WeakMap(), this.tsNodeToESTreeNodeMap = /* @__PURE__ */ new WeakMap(), this.allowPattern = false, this.ast = t12, this.options = { ...r3 }; - } - getASTMaps() { - return { esTreeNodeToTSNodeMap: this.esTreeNodeToTSNodeMap, tsNodeToESTreeNodeMap: this.tsNodeToESTreeNodeMap }; - } - convertProgram() { - return this.converter(this.ast); - } - converter(t12, r3, a) { - if (!t12) - return null; - Ne7(this, Pe10, "m", ow).call(this, t12); - let _6 = this.allowPattern; - a !== void 0 && (this.allowPattern = a); - let p4 = this.convertNode(t12, r3 ?? t12.parent); - return this.registerTSNodeInNodeMap(t12, p4), this.allowPattern = _6, p4; - } - fixExports(t12, r3) { - let _6 = _t6.isModuleDeclaration(t12) && !!(t12.flags & _t6.NodeFlags.Namespace) ? (0, pe7.getNamespaceModifiers)(t12) : (0, Zi7.getModifiers)(t12); - if ((_6 == null ? void 0 : _6[0].kind) === E6.ExportKeyword) { - this.registerTSNodeInNodeMap(t12, r3); - let p4 = _6[0], d5 = _6[1], h4 = (d5 == null ? void 0 : d5.kind) === E6.DefaultKeyword, l = h4 ? (0, pe7.findNextToken)(d5, this.ast, this.ast) : (0, pe7.findNextToken)(p4, this.ast, this.ast); - if (r3.range[0] = l.getStart(this.ast), r3.loc = (0, pe7.getLocFor)(r3.range, this.ast), h4) - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportDefaultDeclaration, declaration: r3, range: [p4.getStart(this.ast), r3.range[1]], exportKind: "value" }); - let v7 = r3.type === J8.AST_NODE_TYPES.TSInterfaceDeclaration || r3.type === J8.AST_NODE_TYPES.TSTypeAliasDeclaration, y5 = "declare" in r3 && r3.declare === true; - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportNamedDeclaration, declaration: r3, specifiers: [], source: null, exportKind: v7 || y5 ? "type" : "value", range: [p4.getStart(this.ast), r3.range[1]], assertions: [] }); - } - return r3; - } - registerTSNodeInNodeMap(t12, r3) { - r3 && this.options.shouldPreserveNodeMaps && (this.tsNodeToESTreeNodeMap.has(t12) || this.tsNodeToESTreeNodeMap.set(t12, r3)); - } - convertPattern(t12, r3) { - return this.converter(t12, r3, true); - } - convertChild(t12, r3) { - return this.converter(t12, r3, false); - } - createNode(t12, r3) { - let a = r3; - return a.range ?? (a.range = (0, pe7.getRange)(t12, this.ast)), a.loc ?? (a.loc = (0, pe7.getLocFor)(a.range, this.ast)), a && this.options.shouldPreserveNodeMaps && this.esTreeNodeToTSNodeMap.set(a, t12), a; - } - convertBindingNameWithTypeAnnotation(t12, r3, a) { - let _6 = this.convertPattern(t12); - return r3 && (_6.typeAnnotation = this.convertTypeAnnotation(r3, a), this.fixParentLocation(_6, _6.typeAnnotation.range)), _6; - } - convertTypeAnnotation(t12, r3) { - let a = (r3 == null ? void 0 : r3.kind) === E6.FunctionType || (r3 == null ? void 0 : r3.kind) === E6.ConstructorType ? 2 : 1, p4 = [t12.getFullStart() - a, t12.end], d5 = (0, pe7.getLocFor)(p4, this.ast); - return { type: J8.AST_NODE_TYPES.TSTypeAnnotation, loc: d5, range: p4, typeAnnotation: this.convertChild(t12) }; - } - convertBodyExpressions(t12, r3) { - let a = (0, pe7.canContainDirective)(r3); - return t12.map((_6) => { - let p4 = this.convertChild(_6); - if (a) { - if (p4 != null && p4.expression && _t6.isExpressionStatement(_6) && _t6.isStringLiteral(_6.expression)) { - let d5 = p4.expression.raw; - return p4.directive = d5.slice(1, -1), p4; - } - a = false; - } - return p4; - }).filter((_6) => _6); - } - convertTypeArgumentsToTypeParameterInstantiation(t12, r3) { - let a = (0, pe7.findNextToken)(t12, this.ast, this.ast); - return this.createNode(r3, { type: J8.AST_NODE_TYPES.TSTypeParameterInstantiation, range: [t12.pos - 1, a.end], params: t12.map((_6) => this.convertChild(_6)) }); - } - convertTSTypeParametersToTypeParametersDeclaration(t12) { - let r3 = (0, pe7.findNextToken)(t12, this.ast, this.ast), a = [t12.pos - 1, r3.end]; - return { type: J8.AST_NODE_TYPES.TSTypeParameterDeclaration, range: a, loc: (0, pe7.getLocFor)(a, this.ast), params: t12.map((_6) => this.convertChild(_6)) }; - } - convertParameters(t12) { - return t12 != null && t12.length ? t12.map((r3) => { - var _6; - let a = this.convertChild(r3); - return a.decorators = ((_6 = (0, Zi7.getDecorators)(r3)) == null ? void 0 : _6.map((p4) => this.convertChild(p4))) ?? [], a; - }) : []; - } - convertChainExpression(t12, r3) { - let { child: a, isOptional: _6 } = (() => t12.type === J8.AST_NODE_TYPES.MemberExpression ? { child: t12.object, isOptional: t12.optional } : t12.type === J8.AST_NODE_TYPES.CallExpression ? { child: t12.callee, isOptional: t12.optional } : { child: t12.expression, isOptional: false })(), p4 = (0, pe7.isChildUnwrappableOptionalChain)(r3, a); - if (!p4 && !_6) - return t12; - if (p4 && (0, pe7.isChainExpression)(a)) { - let d5 = a.expression; - t12.type === J8.AST_NODE_TYPES.MemberExpression ? t12.object = d5 : t12.type === J8.AST_NODE_TYPES.CallExpression ? t12.callee = d5 : t12.expression = d5; - } - return this.createNode(r3, { type: J8.AST_NODE_TYPES.ChainExpression, expression: t12 }); - } - deeplyCopy(t12) { - t12.kind === _t6.SyntaxKind.JSDocFunctionType && Ne7(this, Pe10, "m", st5).call(this, t12, "JSDoc types can only be used inside documentation comments."); - let r3 = `TS${E6[t12.kind]}`; - if (this.options.errorOnUnknownASTType && !J8.AST_NODE_TYPES[r3]) - throw new Error(`Unknown AST_NODE_TYPE: "${r3}"`); - let a = this.createNode(t12, { type: r3 }); - "type" in t12 && (a.typeAnnotation = t12.type && "kind" in t12.type && _t6.isTypeNode(t12.type) ? this.convertTypeAnnotation(t12.type, t12) : null), "typeArguments" in t12 && (a.typeArguments = t12.typeArguments && "pos" in t12.typeArguments ? this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) : null, Ne7(this, Pe10, "m", oi7).call(this, a, "typeParameters", "typeArguments")), "typeParameters" in t12 && (a.typeParameters = t12.typeParameters && "pos" in t12.typeParameters ? this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) : null); - let _6 = (0, Zi7.getDecorators)(t12); - _6 != null && _6.length && (a.decorators = _6.map((d5) => this.convertChild(d5))); - let p4 = /* @__PURE__ */ new Set(["_children", "decorators", "end", "flags", "illegalDecorators", "heritageClauses", "locals", "localSymbol", "jsDoc", "kind", "modifierFlagsCache", "modifiers", "nextContainer", "parent", "pos", "symbol", "transformFlags", "type", "typeArguments", "typeParameters"]); - return Object.entries(t12).filter(([d5]) => !p4.has(d5)).forEach(([d5, h4]) => { - Array.isArray(h4) ? a[d5] = h4.map((l) => this.convertChild(l)) : h4 && typeof h4 == "object" && h4.kind ? a[d5] = this.convertChild(h4) : a[d5] = h4; - }), a; - } - convertJSXIdentifier(t12) { - let r3 = this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXIdentifier, name: t12.getText() }); - return this.registerTSNodeInNodeMap(t12, r3), r3; - } - convertJSXNamespaceOrIdentifier(t12) { - if (t12.kind === _t6.SyntaxKind.JsxNamespacedName) { - let _6 = this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXNamespacedName, namespace: this.createNode(t12.namespace, { type: J8.AST_NODE_TYPES.JSXIdentifier, name: t12.namespace.text }), name: this.createNode(t12.name, { type: J8.AST_NODE_TYPES.JSXIdentifier, name: t12.name.text }) }); - return this.registerTSNodeInNodeMap(t12, _6), _6; - } - let r3 = t12.getText(), a = r3.indexOf(":"); - if (a > 0) { - let _6 = (0, pe7.getRange)(t12, this.ast), p4 = this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXNamespacedName, namespace: this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXIdentifier, name: r3.slice(0, a), range: [_6[0], _6[0] + a] }), name: this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXIdentifier, name: r3.slice(a + 1), range: [_6[0] + a + 1, _6[1]] }), range: _6 }); - return this.registerTSNodeInNodeMap(t12, p4), p4; - } - return this.convertJSXIdentifier(t12); - } - convertJSXTagName(t12, r3) { - let a; - switch (t12.kind) { - case E6.PropertyAccessExpression: - t12.name.kind === E6.PrivateIdentifier && Ne7(this, Pe10, "m", st5).call(this, t12.name, "Non-private identifier expected."), a = this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXMemberExpression, object: this.convertJSXTagName(t12.expression, r3), property: this.convertJSXIdentifier(t12.name) }); - break; - case E6.ThisKeyword: - case E6.Identifier: - default: - return this.convertJSXNamespaceOrIdentifier(t12); - } - return this.registerTSNodeInNodeMap(t12, a), a; - } - convertMethodSignature(t12) { - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSMethodSignature, accessibility: (0, pe7.getTSNodeAccessibility)(t12), computed: (0, pe7.isComputedProperty)(t12.name), key: this.convertChild(t12.name), kind: (() => { - switch (t12.kind) { - case E6.GetAccessor: - return "get"; - case E6.SetAccessor: - return "set"; - case E6.MethodSignature: - return "method"; - } - })(), optional: (0, pe7.isOptional)(t12), params: this.convertParameters(t12.parameters), returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), readonly: (0, pe7.hasModifier)(E6.ReadonlyKeyword, t12), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - } - convertAssertClasue(t12) { - return t12 === void 0 ? [] : t12.elements.map((r3) => this.convertChild(r3)); - } - fixParentLocation(t12, r3) { - r3[0] < t12.range[0] && (t12.range[0] = r3[0], t12.loc.start = (0, pe7.getLineAndCharacterFor)(t12.range[0], this.ast)), r3[1] > t12.range[1] && (t12.range[1] = r3[1], t12.loc.end = (0, pe7.getLineAndCharacterFor)(t12.range[1], this.ast)); - } - assertModuleSpecifier(t12, r3) { - var a; - !r3 && t12.moduleSpecifier == null && Ne7(this, Pe10, "m", br5).call(this, t12, "Module specifier must be a string literal."), t12.moduleSpecifier && ((a = t12.moduleSpecifier) == null ? void 0 : a.kind) !== E6.StringLiteral && Ne7(this, Pe10, "m", br5).call(this, t12.moduleSpecifier, "Module specifier must be a string literal."); - } - convertNode(t12, r3) { - var a, _6, p4, d5, h4; - switch (t12.kind) { - case E6.SourceFile: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Program, body: this.convertBodyExpressions(t12.statements, t12), comments: void 0, range: [t12.getStart(this.ast), t12.endOfFileToken.end], sourceType: t12.externalModuleIndicator ? "module" : "script", tokens: void 0 }); - case E6.Block: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.BlockStatement, body: this.convertBodyExpressions(t12.statements, t12) }); - case E6.Identifier: - return (0, pe7.isThisInTypeQuery)(t12) ? this.createNode(t12, { type: J8.AST_NODE_TYPES.ThisExpression }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.Identifier, decorators: [], name: t12.text, optional: false, typeAnnotation: void 0 }); - case E6.PrivateIdentifier: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.PrivateIdentifier, name: t12.text.slice(1) }); - case E6.WithStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.WithStatement, object: this.convertChild(t12.expression), body: this.convertChild(t12.statement) }); - case E6.ReturnStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ReturnStatement, argument: this.convertChild(t12.expression) }); - case E6.LabeledStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.LabeledStatement, label: this.convertChild(t12.label), body: this.convertChild(t12.statement) }); - case E6.ContinueStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ContinueStatement, label: this.convertChild(t12.label) }); - case E6.BreakStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.BreakStatement, label: this.convertChild(t12.label) }); - case E6.IfStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.IfStatement, test: this.convertChild(t12.expression), consequent: this.convertChild(t12.thenStatement), alternate: this.convertChild(t12.elseStatement) }); - case E6.SwitchStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.SwitchStatement, discriminant: this.convertChild(t12.expression), cases: t12.caseBlock.clauses.map((l) => this.convertChild(l)) }); - case E6.CaseClause: - case E6.DefaultClause: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.SwitchCase, test: t12.kind === E6.CaseClause ? this.convertChild(t12.expression) : null, consequent: t12.statements.map((l) => this.convertChild(l)) }); - case E6.ThrowStatement: - return t12.expression.end === t12.expression.pos && Ne7(this, Pe10, "m", br5).call(this, t12, "A throw statement must throw an expression."), this.createNode(t12, { type: J8.AST_NODE_TYPES.ThrowStatement, argument: this.convertChild(t12.expression) }); - case E6.TryStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TryStatement, block: this.convertChild(t12.tryBlock), handler: this.convertChild(t12.catchClause), finalizer: this.convertChild(t12.finallyBlock) }); - case E6.CatchClause: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.CatchClause, param: t12.variableDeclaration ? this.convertBindingNameWithTypeAnnotation(t12.variableDeclaration.name, t12.variableDeclaration.type) : null, body: this.convertChild(t12.block) }); - case E6.WhileStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.WhileStatement, test: this.convertChild(t12.expression), body: this.convertChild(t12.statement) }); - case E6.DoStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.DoWhileStatement, test: this.convertChild(t12.expression), body: this.convertChild(t12.statement) }); - case E6.ForStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ForStatement, init: this.convertChild(t12.initializer), test: this.convertChild(t12.condition), update: this.convertChild(t12.incrementor), body: this.convertChild(t12.statement) }); - case E6.ForInStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ForInStatement, left: this.convertPattern(t12.initializer), right: this.convertChild(t12.expression), body: this.convertChild(t12.statement) }); - case E6.ForOfStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ForOfStatement, left: this.convertPattern(t12.initializer), right: this.convertChild(t12.expression), body: this.convertChild(t12.statement), await: !!(t12.awaitModifier && t12.awaitModifier.kind === E6.AwaitKeyword) }); - case E6.FunctionDeclaration: { - let l = (0, pe7.hasModifier)(E6.DeclareKeyword, t12), v7 = this.createNode(t12, { type: l || !t12.body ? J8.AST_NODE_TYPES.TSDeclareFunction : J8.AST_NODE_TYPES.FunctionDeclaration, async: (0, pe7.hasModifier)(E6.AsyncKeyword, t12), body: this.convertChild(t12.body) || void 0, declare: l, expression: false, generator: !!t12.asteriskToken, id: this.convertChild(t12.name), params: this.convertParameters(t12.parameters), returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - return this.fixExports(t12, v7); - } - case E6.VariableDeclaration: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.VariableDeclarator, definite: !!t12.exclamationToken, id: this.convertBindingNameWithTypeAnnotation(t12.name, t12.type, t12), init: this.convertChild(t12.initializer) }); - case E6.VariableStatement: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.VariableDeclaration, declarations: t12.declarationList.declarations.map((v7) => this.convertChild(v7)), declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), kind: (0, pe7.getDeclarationKind)(t12.declarationList) }); - return l.declarations.length || Ne7(this, Pe10, "m", br5).call(this, t12, "A variable declaration list must have at least one variable declarator."), (l.kind === "using" || l.kind === "await using") && t12.declarationList.declarations.forEach((v7, y5) => { - l.declarations[y5].init == null && Ne7(this, Pe10, "m", st5).call(this, v7, `'${l.kind}' declarations must be initialized.`), l.declarations[y5].id.type !== J8.AST_NODE_TYPES.Identifier && Ne7(this, Pe10, "m", st5).call(this, v7.name, `'${l.kind}' declarations may not have binding patterns.`); - }), this.fixExports(t12, l); - } - case E6.VariableDeclarationList: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.VariableDeclaration, declarations: t12.declarations.map((v7) => this.convertChild(v7)), declare: false, kind: (0, pe7.getDeclarationKind)(t12) }); - return (l.kind === "using" || l.kind === "await using") && t12.declarations.forEach((v7, y5) => { - l.declarations[y5].init != null && Ne7(this, Pe10, "m", st5).call(this, v7, `'${l.kind}' declarations may not be initialized in for statement.`), l.declarations[y5].id.type !== J8.AST_NODE_TYPES.Identifier && Ne7(this, Pe10, "m", st5).call(this, v7.name, `'${l.kind}' declarations may not have binding patterns.`); - }), l; - } - case E6.ExpressionStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ExpressionStatement, directive: void 0, expression: this.convertChild(t12.expression) }); - case E6.ThisKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ThisExpression }); - case E6.ArrayLiteralExpression: - return this.allowPattern ? this.createNode(t12, { type: J8.AST_NODE_TYPES.ArrayPattern, decorators: [], elements: t12.elements.map((l) => this.convertPattern(l)), optional: false, typeAnnotation: void 0 }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.ArrayExpression, elements: t12.elements.map((l) => this.convertChild(l)) }); - case E6.ObjectLiteralExpression: { - if (this.allowPattern) - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ObjectPattern, decorators: [], optional: false, properties: t12.properties.map((v7) => this.convertPattern(v7)), typeAnnotation: void 0 }); - let l = []; - for (let v7 of t12.properties) - (v7.kind === E6.GetAccessor || v7.kind === E6.SetAccessor || v7.kind === E6.MethodDeclaration) && !v7.body && Ne7(this, Pe10, "m", br5).call(this, v7.end - 1, "'{' expected."), l.push(this.convertChild(v7)); - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ObjectExpression, properties: l }); - } - case E6.PropertyAssignment: { - let { questionToken: l, exclamationToken: v7 } = t12; - return l && Ne7(this, Pe10, "m", st5).call(this, l, "A property assignment cannot have a question token."), v7 && Ne7(this, Pe10, "m", st5).call(this, v7, "A property assignment cannot have an exclamation token."), this.createNode(t12, { type: J8.AST_NODE_TYPES.Property, key: this.convertChild(t12.name), value: this.converter(t12.initializer, t12, this.allowPattern), computed: (0, pe7.isComputedProperty)(t12.name), method: false, optional: false, shorthand: false, kind: "init" }); - } - case E6.ShorthandPropertyAssignment: { - let { modifiers: l, questionToken: v7, exclamationToken: y5 } = t12; - return l && Ne7(this, Pe10, "m", st5).call(this, l[0], "A shorthand property assignment cannot have modifiers."), v7 && Ne7(this, Pe10, "m", st5).call(this, v7, "A shorthand property assignment cannot have a question token."), y5 && Ne7(this, Pe10, "m", st5).call(this, y5, "A shorthand property assignment cannot have an exclamation token."), t12.objectAssignmentInitializer ? this.createNode(t12, { type: J8.AST_NODE_TYPES.Property, key: this.convertChild(t12.name), value: this.createNode(t12, { type: J8.AST_NODE_TYPES.AssignmentPattern, decorators: [], left: this.convertPattern(t12.name), optional: false, right: this.convertChild(t12.objectAssignmentInitializer), typeAnnotation: void 0 }), computed: false, method: false, optional: false, shorthand: true, kind: "init" }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.Property, computed: false, key: this.convertChild(t12.name), kind: "init", method: false, optional: false, shorthand: true, value: this.convertChild(t12.name) }); - } - case E6.ComputedPropertyName: - return this.convertChild(t12.expression); - case E6.PropertyDeclaration: { - let l = (0, pe7.hasModifier)(E6.AbstractKeyword, t12); - l && t12.initializer && Ne7(this, Pe10, "m", st5).call(this, t12.initializer, "Abstract property cannot have an initializer."); - let v7 = (0, pe7.hasModifier)(E6.AccessorKeyword, t12), y5 = (() => v7 ? l ? J8.AST_NODE_TYPES.TSAbstractAccessorProperty : J8.AST_NODE_TYPES.AccessorProperty : l ? J8.AST_NODE_TYPES.TSAbstractPropertyDefinition : J8.AST_NODE_TYPES.PropertyDefinition)(), C6 = this.convertChild(t12.name); - return this.createNode(t12, { type: y5, key: C6, accessibility: (0, pe7.getTSNodeAccessibility)(t12), value: l ? null : this.convertChild(t12.initializer), computed: (0, pe7.isComputedProperty)(t12.name), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12), readonly: (0, pe7.hasModifier)(E6.ReadonlyKeyword, t12), decorators: ((a = (0, Zi7.getDecorators)(t12)) == null ? void 0 : a.map((S6) => this.convertChild(S6))) ?? [], declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), override: (0, pe7.hasModifier)(E6.OverrideKeyword, t12), typeAnnotation: t12.type && this.convertTypeAnnotation(t12.type, t12), optional: (C6.type === J8.AST_NODE_TYPES.Literal || t12.name.kind === E6.Identifier || t12.name.kind === E6.ComputedPropertyName || t12.name.kind === E6.PrivateIdentifier) && !!t12.questionToken, definite: !!t12.exclamationToken }); - } - case E6.GetAccessor: - case E6.SetAccessor: - if (t12.parent.kind === E6.InterfaceDeclaration || t12.parent.kind === E6.TypeLiteral) - return this.convertMethodSignature(t12); - case E6.MethodDeclaration: { - let l = this.createNode(t12, { type: t12.body ? J8.AST_NODE_TYPES.FunctionExpression : J8.AST_NODE_TYPES.TSEmptyBodyFunctionExpression, id: null, generator: !!t12.asteriskToken, expression: false, async: (0, pe7.hasModifier)(E6.AsyncKeyword, t12), body: this.convertChild(t12.body), declare: false, range: [t12.parameters.pos - 1, t12.end], params: [], returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - l.typeParameters && this.fixParentLocation(l, l.typeParameters.range); - let v7; - if (r3.kind === E6.ObjectLiteralExpression) - l.params = t12.parameters.map((y5) => this.convertChild(y5)), v7 = this.createNode(t12, { type: J8.AST_NODE_TYPES.Property, key: this.convertChild(t12.name), value: l, computed: (0, pe7.isComputedProperty)(t12.name), optional: !!t12.questionToken, method: t12.kind === E6.MethodDeclaration, shorthand: false, kind: "init" }); - else { - l.params = this.convertParameters(t12.parameters); - let y5 = (0, pe7.hasModifier)(E6.AbstractKeyword, t12) ? J8.AST_NODE_TYPES.TSAbstractMethodDefinition : J8.AST_NODE_TYPES.MethodDefinition; - v7 = this.createNode(t12, { type: y5, accessibility: (0, pe7.getTSNodeAccessibility)(t12), computed: (0, pe7.isComputedProperty)(t12.name), decorators: ((_6 = (0, Zi7.getDecorators)(t12)) == null ? void 0 : _6.map((C6) => this.convertChild(C6))) ?? [], key: this.convertChild(t12.name), kind: "method", optional: !!t12.questionToken, override: (0, pe7.hasModifier)(E6.OverrideKeyword, t12), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12), value: l }); - } - return t12.kind === E6.GetAccessor ? v7.kind = "get" : t12.kind === E6.SetAccessor ? v7.kind = "set" : !v7.static && t12.name.kind === E6.StringLiteral && t12.name.text === "constructor" && v7.type !== J8.AST_NODE_TYPES.Property && (v7.kind = "constructor"), v7; - } - case E6.Constructor: { - let l = (0, pe7.getLastModifier)(t12), v7 = (l && (0, pe7.findNextToken)(l, t12, this.ast)) ?? t12.getFirstToken(), y5 = this.createNode(t12, { type: t12.body ? J8.AST_NODE_TYPES.FunctionExpression : J8.AST_NODE_TYPES.TSEmptyBodyFunctionExpression, async: false, body: this.convertChild(t12.body), declare: false, expression: false, generator: false, id: null, params: this.convertParameters(t12.parameters), range: [t12.parameters.pos - 1, t12.end], returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - y5.typeParameters && this.fixParentLocation(y5, y5.typeParameters.range); - let C6 = this.createNode(t12, { type: J8.AST_NODE_TYPES.Identifier, decorators: [], name: "constructor", optional: false, range: [v7.getStart(this.ast), v7.end], typeAnnotation: void 0 }), S6 = (0, pe7.hasModifier)(E6.StaticKeyword, t12); - return this.createNode(t12, { type: (0, pe7.hasModifier)(E6.AbstractKeyword, t12) ? J8.AST_NODE_TYPES.TSAbstractMethodDefinition : J8.AST_NODE_TYPES.MethodDefinition, accessibility: (0, pe7.getTSNodeAccessibility)(t12), computed: false, decorators: [], optional: false, key: C6, kind: S6 ? "method" : "constructor", override: false, static: S6, value: y5 }); - } - case E6.FunctionExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.FunctionExpression, async: (0, pe7.hasModifier)(E6.AsyncKeyword, t12), body: this.convertChild(t12.body), declare: false, expression: false, generator: !!t12.asteriskToken, id: this.convertChild(t12.name), params: this.convertParameters(t12.parameters), returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - case E6.SuperKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Super }); - case E6.ArrayBindingPattern: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ArrayPattern, decorators: [], elements: t12.elements.map((l) => this.convertPattern(l)), optional: false, typeAnnotation: void 0 }); - case E6.OmittedExpression: - return null; - case E6.ObjectBindingPattern: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ObjectPattern, decorators: [], optional: false, properties: t12.elements.map((l) => this.convertPattern(l)), typeAnnotation: void 0 }); - case E6.BindingElement: { - if (r3.kind === E6.ArrayBindingPattern) { - let v7 = this.convertChild(t12.name, r3); - return t12.initializer ? this.createNode(t12, { type: J8.AST_NODE_TYPES.AssignmentPattern, decorators: [], left: v7, optional: false, right: this.convertChild(t12.initializer), typeAnnotation: void 0 }) : t12.dotDotDotToken ? this.createNode(t12, { type: J8.AST_NODE_TYPES.RestElement, argument: v7, decorators: [], optional: false, typeAnnotation: void 0, value: void 0 }) : v7; - } - let l; - return t12.dotDotDotToken ? l = this.createNode(t12, { type: J8.AST_NODE_TYPES.RestElement, argument: this.convertChild(t12.propertyName ?? t12.name), decorators: [], optional: false, typeAnnotation: void 0, value: void 0 }) : l = this.createNode(t12, { type: J8.AST_NODE_TYPES.Property, key: this.convertChild(t12.propertyName ?? t12.name), value: this.convertChild(t12.name), computed: !!(t12.propertyName && t12.propertyName.kind === E6.ComputedPropertyName), method: false, optional: false, shorthand: !t12.propertyName, kind: "init" }), t12.initializer && (l.value = this.createNode(t12, { type: J8.AST_NODE_TYPES.AssignmentPattern, decorators: [], left: this.convertChild(t12.name), optional: false, range: [t12.name.getStart(this.ast), t12.initializer.end], right: this.convertChild(t12.initializer), typeAnnotation: void 0 })), l; - } - case E6.ArrowFunction: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ArrowFunctionExpression, generator: false, id: null, params: this.convertParameters(t12.parameters), body: this.convertChild(t12.body), async: (0, pe7.hasModifier)(E6.AsyncKeyword, t12), expression: t12.body.kind !== E6.Block, returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - case E6.YieldExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.YieldExpression, delegate: !!t12.asteriskToken, argument: this.convertChild(t12.expression) }); - case E6.AwaitExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.AwaitExpression, argument: this.convertChild(t12.expression) }); - case E6.NoSubstitutionTemplateLiteral: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TemplateLiteral, quasis: [this.createNode(t12, { type: J8.AST_NODE_TYPES.TemplateElement, value: { raw: this.ast.text.slice(t12.getStart(this.ast) + 1, t12.end - 1), cooked: t12.text }, tail: true })], expressions: [] }); - case E6.TemplateExpression: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TemplateLiteral, quasis: [this.convertChild(t12.head)], expressions: [] }); - return t12.templateSpans.forEach((v7) => { - l.expressions.push(this.convertChild(v7.expression)), l.quasis.push(this.convertChild(v7.literal)); - }), l; - } - case E6.TaggedTemplateExpression: - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.TaggedTemplateExpression, typeArguments: t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12), tag: this.convertChild(t12.tag), quasi: this.convertChild(t12.template) }, "typeParameters", "typeArguments")); - case E6.TemplateHead: - case E6.TemplateMiddle: - case E6.TemplateTail: { - let l = t12.kind === E6.TemplateTail; - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TemplateElement, value: { raw: this.ast.text.slice(t12.getStart(this.ast) + 1, t12.end - (l ? 1 : 2)), cooked: t12.text }, tail: l }); - } - case E6.SpreadAssignment: - case E6.SpreadElement: - return this.allowPattern ? this.createNode(t12, { type: J8.AST_NODE_TYPES.RestElement, argument: this.convertPattern(t12.expression), decorators: [], optional: false, typeAnnotation: void 0, value: void 0 }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.SpreadElement, argument: this.convertChild(t12.expression) }); - case E6.Parameter: { - let l, v7; - return t12.dotDotDotToken ? l = v7 = this.createNode(t12, { type: J8.AST_NODE_TYPES.RestElement, argument: this.convertChild(t12.name), decorators: [], optional: false, typeAnnotation: void 0, value: void 0 }) : t12.initializer ? (l = this.convertChild(t12.name), v7 = this.createNode(t12, { type: J8.AST_NODE_TYPES.AssignmentPattern, decorators: [], left: l, optional: false, right: this.convertChild(t12.initializer), typeAnnotation: void 0 }), (0, Zi7.getModifiers)(t12) && (v7.range[0] = l.range[0], v7.loc = (0, pe7.getLocFor)(v7.range, this.ast))) : l = v7 = this.convertChild(t12.name, r3), t12.type && (l.typeAnnotation = this.convertTypeAnnotation(t12.type, t12), this.fixParentLocation(l, l.typeAnnotation.range)), t12.questionToken && (t12.questionToken.end > l.range[1] && (l.range[1] = t12.questionToken.end, l.loc.end = (0, pe7.getLineAndCharacterFor)(l.range[1], this.ast)), l.optional = true), (0, Zi7.getModifiers)(t12) ? this.createNode(t12, { type: J8.AST_NODE_TYPES.TSParameterProperty, accessibility: (0, pe7.getTSNodeAccessibility)(t12), decorators: [], override: (0, pe7.hasModifier)(E6.OverrideKeyword, t12), parameter: v7, readonly: (0, pe7.hasModifier)(E6.ReadonlyKeyword, t12), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12) }) : v7; - } - case E6.ClassDeclaration: - !t12.name && (!(0, pe7.hasModifier)(_t6.SyntaxKind.ExportKeyword, t12) || !(0, pe7.hasModifier)(_t6.SyntaxKind.DefaultKeyword, t12)) && Ne7(this, Pe10, "m", br5).call(this, t12, "A class declaration without the 'default' modifier must have a name."); - case E6.ClassExpression: { - let l = t12.heritageClauses ?? [], v7 = t12.kind === E6.ClassDeclaration ? J8.AST_NODE_TYPES.ClassDeclaration : J8.AST_NODE_TYPES.ClassExpression, y5, C6; - for (let k4 of l) { - let { token: L7, types: G10 } = k4; - G10.length === 0 && Ne7(this, Pe10, "m", br5).call(this, k4, `'${_t6.tokenToString(L7)}' list cannot be empty.`), L7 === E6.ExtendsKeyword ? (y5 && Ne7(this, Pe10, "m", br5).call(this, k4, "'extends' clause already seen."), C6 && Ne7(this, Pe10, "m", br5).call(this, k4, "'extends' clause must precede 'implements' clause."), G10.length > 1 && Ne7(this, Pe10, "m", br5).call(this, G10[1], "Classes can only extend a single class."), y5 ?? (y5 = k4)) : L7 === E6.ImplementsKeyword && (C6 && Ne7(this, Pe10, "m", br5).call(this, k4, "'implements' clause already seen."), C6 ?? (C6 = k4)); - } - let S6 = this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: v7, abstract: (0, pe7.hasModifier)(E6.AbstractKeyword, t12), body: this.createNode(t12, { type: J8.AST_NODE_TYPES.ClassBody, body: t12.members.filter(pe7.isESTreeClassMember).map((k4) => this.convertChild(k4)), range: [t12.members.pos - 1, t12.end] }), declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), decorators: ((p4 = (0, Zi7.getDecorators)(t12)) == null ? void 0 : p4.map((k4) => this.convertChild(k4))) ?? [], id: this.convertChild(t12.name), implements: (C6 == null ? void 0 : C6.types.map((k4) => this.convertChild(k4))) ?? [], superClass: y5 != null && y5.types[0] ? this.convertChild(y5.types[0].expression) : null, superTypeArguments: void 0, typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }, "superTypeParameters", "superTypeArguments")); - return (d5 = y5 == null ? void 0 : y5.types[0]) != null && d5.typeArguments && (S6.superTypeArguments = this.convertTypeArgumentsToTypeParameterInstantiation(y5.types[0].typeArguments, y5.types[0])), this.fixExports(t12, S6); - } - case E6.ModuleBlock: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSModuleBlock, body: this.convertBodyExpressions(t12.statements, t12) }); - case E6.ImportDeclaration: { - this.assertModuleSpecifier(t12, false); - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportDeclaration, source: this.convertChild(t12.moduleSpecifier), specifiers: [], importKind: "value", assertions: this.convertAssertClasue(t12.assertClause) }); - if (t12.importClause && (t12.importClause.isTypeOnly && (l.importKind = "type"), t12.importClause.name && l.specifiers.push(this.convertChild(t12.importClause)), t12.importClause.namedBindings)) - switch (t12.importClause.namedBindings.kind) { - case E6.NamespaceImport: - l.specifiers.push(this.convertChild(t12.importClause.namedBindings)); - break; - case E6.NamedImports: - l.specifiers = l.specifiers.concat(t12.importClause.namedBindings.elements.map((v7) => this.convertChild(v7))); - break; - } - return l; - } - case E6.NamespaceImport: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportNamespaceSpecifier, local: this.convertChild(t12.name) }); - case E6.ImportSpecifier: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportSpecifier, local: this.convertChild(t12.name), imported: this.convertChild(t12.propertyName ?? t12.name), importKind: t12.isTypeOnly ? "type" : "value" }); - case E6.ImportClause: { - let l = this.convertChild(t12.name); - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportDefaultSpecifier, local: l, range: l.range }); - } - case E6.ExportDeclaration: - return ((h4 = t12.exportClause) == null ? void 0 : h4.kind) === E6.NamedExports ? (this.assertModuleSpecifier(t12, true), this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportNamedDeclaration, source: this.convertChild(t12.moduleSpecifier), specifiers: t12.exportClause.elements.map((l) => this.convertChild(l)), exportKind: t12.isTypeOnly ? "type" : "value", declaration: null, assertions: this.convertAssertClasue(t12.assertClause) })) : (this.assertModuleSpecifier(t12, false), this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportAllDeclaration, source: this.convertChild(t12.moduleSpecifier), exportKind: t12.isTypeOnly ? "type" : "value", exported: t12.exportClause && t12.exportClause.kind === E6.NamespaceExport ? this.convertChild(t12.exportClause.name) : null, assertions: this.convertAssertClasue(t12.assertClause) })); - case E6.ExportSpecifier: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportSpecifier, local: this.convertChild(t12.propertyName ?? t12.name), exported: this.convertChild(t12.name), exportKind: t12.isTypeOnly ? "type" : "value" }); - case E6.ExportAssignment: - return t12.isExportEquals ? this.createNode(t12, { type: J8.AST_NODE_TYPES.TSExportAssignment, expression: this.convertChild(t12.expression) }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.ExportDefaultDeclaration, declaration: this.convertChild(t12.expression), exportKind: "value" }); - case E6.PrefixUnaryExpression: - case E6.PostfixUnaryExpression: { - let l = (0, pe7.getTextForTokenKind)(t12.operator); - return l === "++" || l === "--" ? this.createNode(t12, { type: J8.AST_NODE_TYPES.UpdateExpression, operator: l, prefix: t12.kind === E6.PrefixUnaryExpression, argument: this.convertChild(t12.operand) }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.UnaryExpression, operator: l, prefix: t12.kind === E6.PrefixUnaryExpression, argument: this.convertChild(t12.operand) }); - } - case E6.DeleteExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.UnaryExpression, operator: "delete", prefix: true, argument: this.convertChild(t12.expression) }); - case E6.VoidExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.UnaryExpression, operator: "void", prefix: true, argument: this.convertChild(t12.expression) }); - case E6.TypeOfExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.UnaryExpression, operator: "typeof", prefix: true, argument: this.convertChild(t12.expression) }); - case E6.TypeOperator: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeOperator, operator: (0, pe7.getTextForTokenKind)(t12.operator), typeAnnotation: this.convertChild(t12.type) }); - case E6.BinaryExpression: { - if ((0, pe7.isComma)(t12.operatorToken)) { - let v7 = this.createNode(t12, { type: J8.AST_NODE_TYPES.SequenceExpression, expressions: [] }), y5 = this.convertChild(t12.left); - return y5.type === J8.AST_NODE_TYPES.SequenceExpression && t12.left.kind !== E6.ParenthesizedExpression ? v7.expressions = v7.expressions.concat(y5.expressions) : v7.expressions.push(y5), v7.expressions.push(this.convertChild(t12.right)), v7; - } - let l = (0, pe7.getBinaryExpressionType)(t12.operatorToken); - return this.allowPattern && l.type === J8.AST_NODE_TYPES.AssignmentExpression ? this.createNode(t12, { type: J8.AST_NODE_TYPES.AssignmentPattern, decorators: [], left: this.convertPattern(t12.left, t12), optional: false, right: this.convertChild(t12.right), typeAnnotation: void 0 }) : this.createNode(t12, { ...l, left: this.converter(t12.left, t12, l.type === J8.AST_NODE_TYPES.AssignmentExpression), right: this.convertChild(t12.right) }); - } - case E6.PropertyAccessExpression: { - let l = this.convertChild(t12.expression), v7 = this.convertChild(t12.name), y5 = false, C6 = this.createNode(t12, { type: J8.AST_NODE_TYPES.MemberExpression, object: l, property: v7, computed: y5, optional: t12.questionDotToken !== void 0 }); - return this.convertChainExpression(C6, t12); - } - case E6.ElementAccessExpression: { - let l = this.convertChild(t12.expression), v7 = this.convertChild(t12.argumentExpression), y5 = true, C6 = this.createNode(t12, { type: J8.AST_NODE_TYPES.MemberExpression, object: l, property: v7, computed: y5, optional: t12.questionDotToken !== void 0 }); - return this.convertChainExpression(C6, t12); - } - case E6.CallExpression: { - if (t12.expression.kind === E6.ImportKeyword) - return t12.arguments.length !== 1 && t12.arguments.length !== 2 && Ne7(this, Pe10, "m", br5).call(this, t12.arguments[2] ?? t12, "Dynamic import requires exactly one or two arguments."), this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportExpression, source: this.convertChild(t12.arguments[0]), attributes: t12.arguments[1] ? this.convertChild(t12.arguments[1]) : null }); - let l = this.convertChild(t12.expression), v7 = t12.arguments.map((S6) => this.convertChild(S6)), y5 = t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12), C6 = this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.CallExpression, callee: l, arguments: v7, optional: t12.questionDotToken !== void 0, typeArguments: y5 }, "typeParameters", "typeArguments")); - return this.convertChainExpression(C6, t12); - } - case E6.NewExpression: { - let l = t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12); - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.NewExpression, arguments: t12.arguments ? t12.arguments.map((v7) => this.convertChild(v7)) : [], callee: this.convertChild(t12.expression), typeArguments: l }, "typeParameters", "typeArguments")); - } - case E6.ConditionalExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ConditionalExpression, test: this.convertChild(t12.condition), consequent: this.convertChild(t12.whenTrue), alternate: this.convertChild(t12.whenFalse) }); - case E6.MetaProperty: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.MetaProperty, meta: this.createNode(t12.getFirstToken(), { type: J8.AST_NODE_TYPES.Identifier, decorators: [], name: (0, pe7.getTextForTokenKind)(t12.keywordToken), optional: false, typeAnnotation: void 0 }), property: this.convertChild(t12.name) }); - case E6.Decorator: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Decorator, expression: this.convertChild(t12.expression) }); - case E6.StringLiteral: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: r3.kind === E6.JsxAttribute ? (0, pe7.unescapeStringLiteralText)(t12.text) : t12.text, raw: t12.getText() }); - case E6.NumericLiteral: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: Number(t12.text), raw: t12.getText() }); - case E6.BigIntLiteral: { - let l = (0, pe7.getRange)(t12, this.ast), v7 = this.ast.text.slice(l[0], l[1]), y5 = v7.slice(0, -1).replace(/_/g, ""), C6 = typeof BigInt < "u" ? BigInt(y5) : null; - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, raw: v7, value: C6, bigint: C6 == null ? y5 : String(C6), range: l }); - } - case E6.RegularExpressionLiteral: { - let l = t12.text.slice(1, t12.text.lastIndexOf("/")), v7 = t12.text.slice(t12.text.lastIndexOf("/") + 1), y5 = null; - try { - y5 = new RegExp(l, v7); - } catch { - } - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: y5, raw: t12.text, regex: { pattern: l, flags: v7 } }); - } - case E6.TrueKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: true, raw: "true" }); - case E6.FalseKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: false, raw: "false" }); - case E6.NullKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.Literal, value: null, raw: "null" }); - case E6.EmptyStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.EmptyStatement }); - case E6.DebuggerStatement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.DebuggerStatement }); - case E6.JsxElement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXElement, openingElement: this.convertChild(t12.openingElement), closingElement: this.convertChild(t12.closingElement), children: t12.children.map((l) => this.convertChild(l)) }); - case E6.JsxFragment: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXFragment, openingFragment: this.convertChild(t12.openingFragment), closingFragment: this.convertChild(t12.closingFragment), children: t12.children.map((l) => this.convertChild(l)) }); - case E6.JsxSelfClosingElement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXElement, openingElement: this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.JSXOpeningElement, typeArguments: t12.typeArguments ? this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) : void 0, selfClosing: true, name: this.convertJSXTagName(t12.tagName, t12), attributes: t12.attributes.properties.map((l) => this.convertChild(l)), range: (0, pe7.getRange)(t12, this.ast) }, "typeParameters", "typeArguments")), closingElement: null, children: [] }); - case E6.JsxOpeningElement: - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.JSXOpeningElement, typeArguments: t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12), selfClosing: false, name: this.convertJSXTagName(t12.tagName, t12), attributes: t12.attributes.properties.map((l) => this.convertChild(l)) }, "typeParameters", "typeArguments")); - case E6.JsxClosingElement: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXClosingElement, name: this.convertJSXTagName(t12.tagName, t12) }); - case E6.JsxOpeningFragment: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXOpeningFragment }); - case E6.JsxClosingFragment: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXClosingFragment }); - case E6.JsxExpression: { - let l = t12.expression ? this.convertChild(t12.expression) : this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXEmptyExpression, range: [t12.getStart(this.ast) + 1, t12.getEnd() - 1] }); - return t12.dotDotDotToken ? this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXSpreadChild, expression: l }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXExpressionContainer, expression: l }); - } - case E6.JsxAttribute: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXAttribute, name: this.convertJSXNamespaceOrIdentifier(t12.name), value: this.convertChild(t12.initializer) }); - case E6.JsxText: { - let l = t12.getFullStart(), v7 = t12.getEnd(), y5 = this.ast.text.slice(l, v7); - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXText, value: (0, pe7.unescapeStringLiteralText)(y5), raw: y5, range: [l, v7] }); - } - case E6.JsxSpreadAttribute: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.JSXSpreadAttribute, argument: this.convertChild(t12.expression) }); - case E6.QualifiedName: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSQualifiedName, left: this.convertChild(t12.left), right: this.convertChild(t12.right) }); - case E6.TypeReference: - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.TSTypeReference, typeName: this.convertChild(t12.typeName), typeArguments: t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) }, "typeParameters", "typeArguments")); - case E6.TypeParameter: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeParameter, name: this.convertChild(t12.name), constraint: t12.constraint && this.convertChild(t12.constraint), default: t12.default ? this.convertChild(t12.default) : void 0, in: (0, pe7.hasModifier)(E6.InKeyword, t12), out: (0, pe7.hasModifier)(E6.OutKeyword, t12), const: (0, pe7.hasModifier)(E6.ConstKeyword, t12) }); - case E6.ThisType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSThisType }); - case E6.AnyKeyword: - case E6.BigIntKeyword: - case E6.BooleanKeyword: - case E6.NeverKeyword: - case E6.NumberKeyword: - case E6.ObjectKeyword: - case E6.StringKeyword: - case E6.SymbolKeyword: - case E6.UnknownKeyword: - case E6.VoidKeyword: - case E6.UndefinedKeyword: - case E6.IntrinsicKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES[`TS${E6[t12.kind]}`] }); - case E6.NonNullExpression: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSNonNullExpression, expression: this.convertChild(t12.expression) }); - return this.convertChainExpression(l, t12); - } - case E6.TypeLiteral: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeLiteral, members: t12.members.map((l) => this.convertChild(l)) }); - case E6.ArrayType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSArrayType, elementType: this.convertChild(t12.elementType) }); - case E6.IndexedAccessType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSIndexedAccessType, objectType: this.convertChild(t12.objectType), indexType: this.convertChild(t12.indexType) }); - case E6.ConditionalType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSConditionalType, checkType: this.convertChild(t12.checkType), extendsType: this.convertChild(t12.extendsType), trueType: this.convertChild(t12.trueType), falseType: this.convertChild(t12.falseType) }); - case E6.TypeQuery: - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.TSTypeQuery, exprName: this.convertChild(t12.exprName), typeArguments: t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) }, "typeParameters", "typeArguments")); - case E6.MappedType: - return t12.members && t12.members.length > 0 && Ne7(this, Pe10, "m", br5).call(this, t12.members[0], "A mapped type may not declare properties or methods."), this.createNode(t12, { type: J8.AST_NODE_TYPES.TSMappedType, nameType: this.convertChild(t12.nameType) ?? null, optional: t12.questionToken && (t12.questionToken.kind === E6.QuestionToken || (0, pe7.getTextForTokenKind)(t12.questionToken.kind)), readonly: t12.readonlyToken && (t12.readonlyToken.kind === E6.ReadonlyKeyword || (0, pe7.getTextForTokenKind)(t12.readonlyToken.kind)), typeAnnotation: t12.type && this.convertChild(t12.type), typeParameter: this.convertChild(t12.typeParameter) }); - case E6.ParenthesizedExpression: - return this.convertChild(t12.expression, r3); - case E6.TypeAliasDeclaration: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeAliasDeclaration, declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), id: this.convertChild(t12.name), typeAnnotation: this.convertChild(t12.type), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - return this.fixExports(t12, l); - } - case E6.MethodSignature: - return this.convertMethodSignature(t12); - case E6.PropertySignature: { - let { initializer: l } = t12; - return l && Ne7(this, Pe10, "m", st5).call(this, l, "A property signature cannot have an initializer."), this.createNode(t12, { type: J8.AST_NODE_TYPES.TSPropertySignature, accessibility: (0, pe7.getTSNodeAccessibility)(t12), computed: (0, pe7.isComputedProperty)(t12.name), key: this.convertChild(t12.name), optional: (0, pe7.isOptional)(t12), readonly: (0, pe7.hasModifier)(E6.ReadonlyKeyword, t12), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12), typeAnnotation: t12.type && this.convertTypeAnnotation(t12.type, t12) }); - } - case E6.IndexSignature: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSIndexSignature, accessibility: (0, pe7.getTSNodeAccessibility)(t12), parameters: t12.parameters.map((l) => this.convertChild(l)), readonly: (0, pe7.hasModifier)(E6.ReadonlyKeyword, t12), static: (0, pe7.hasModifier)(E6.StaticKeyword, t12), typeAnnotation: t12.type && this.convertTypeAnnotation(t12.type, t12) }); - case E6.ConstructorType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSConstructorType, abstract: (0, pe7.hasModifier)(E6.AbstractKeyword, t12), params: this.convertParameters(t12.parameters), returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - case E6.FunctionType: { - let { modifiers: l } = t12; - l && Ne7(this, Pe10, "m", st5).call(this, l[0], "A function type cannot have modifiers."); - } - case E6.ConstructSignature: - case E6.CallSignature: { - let l = t12.kind === E6.ConstructSignature ? J8.AST_NODE_TYPES.TSConstructSignatureDeclaration : t12.kind === E6.CallSignature ? J8.AST_NODE_TYPES.TSCallSignatureDeclaration : J8.AST_NODE_TYPES.TSFunctionType; - return this.createNode(t12, { type: l, params: this.convertParameters(t12.parameters), returnType: t12.type && this.convertTypeAnnotation(t12.type, t12), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - } - case E6.ExpressionWithTypeArguments: { - let l = r3.kind, v7 = l === E6.InterfaceDeclaration ? J8.AST_NODE_TYPES.TSInterfaceHeritage : l === E6.HeritageClause ? J8.AST_NODE_TYPES.TSClassImplements : J8.AST_NODE_TYPES.TSInstantiationExpression; - return this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: v7, expression: this.convertChild(t12.expression), typeArguments: t12.typeArguments && this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) }, "typeParameters", "typeArguments")); - } - case E6.InterfaceDeclaration: { - let l = t12.heritageClauses ?? [], v7 = []; - for (let C6 of l) { - C6.token !== E6.ExtendsKeyword && Ne7(this, Pe10, "m", st5).call(this, C6, C6.token === E6.ImplementsKeyword ? "Interface declaration cannot have 'implements' clause." : "Unexpected token."); - for (let S6 of C6.types) - v7.push(this.convertChild(S6, t12)); - } - let y5 = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSInterfaceDeclaration, body: this.createNode(t12, { type: J8.AST_NODE_TYPES.TSInterfaceBody, body: t12.members.map((C6) => this.convertChild(C6)), range: [t12.members.pos - 1, t12.end] }), declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), extends: v7, id: this.convertChild(t12.name), typeParameters: t12.typeParameters && this.convertTSTypeParametersToTypeParametersDeclaration(t12.typeParameters) }); - return this.fixExports(t12, y5); - } - case E6.TypePredicate: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypePredicate, asserts: t12.assertsModifier !== void 0, parameterName: this.convertChild(t12.parameterName), typeAnnotation: null }); - return t12.type && (l.typeAnnotation = this.convertTypeAnnotation(t12.type, t12), l.typeAnnotation.loc = l.typeAnnotation.typeAnnotation.loc, l.typeAnnotation.range = l.typeAnnotation.typeAnnotation.range), l; - } - case E6.ImportType: { - let l = (0, pe7.getRange)(t12, this.ast); - if (t12.isTypeOf) { - let y5 = (0, pe7.findNextToken)(t12.getFirstToken(), t12, this.ast); - l[0] = y5.getStart(this.ast); - } - let v7 = this.createNode(t12, Ne7(this, Pe10, "m", oi7).call(this, { type: J8.AST_NODE_TYPES.TSImportType, argument: this.convertChild(t12.argument), qualifier: this.convertChild(t12.qualifier), typeArguments: t12.typeArguments ? this.convertTypeArgumentsToTypeParameterInstantiation(t12.typeArguments, t12) : null, range: l }, "typeParameters", "typeArguments")); - return t12.isTypeOf ? this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeQuery, exprName: v7, typeArguments: void 0, typeParameters: void 0 }) : v7; - } - case E6.EnumDeclaration: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSEnumDeclaration, const: (0, pe7.hasModifier)(E6.ConstKeyword, t12), declare: (0, pe7.hasModifier)(E6.DeclareKeyword, t12), id: this.convertChild(t12.name), members: t12.members.map((v7) => this.convertChild(v7)) }); - return this.fixExports(t12, l); - } - case E6.EnumMember: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSEnumMember, computed: t12.name.kind === _t6.SyntaxKind.ComputedPropertyName, id: this.convertChild(t12.name), initializer: t12.initializer && this.convertChild(t12.initializer) }); - case E6.ModuleDeclaration: { - let l = (0, pe7.hasModifier)(E6.DeclareKeyword, t12), v7 = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSModuleDeclaration, ...(() => { - if (t12.flags & _t6.NodeFlags.GlobalAugmentation) { - let C6 = this.convertChild(t12.name), S6 = this.convertChild(t12.body); - return (S6 == null || S6.type === J8.AST_NODE_TYPES.TSModuleDeclaration) && Ne7(this, Pe10, "m", br5).call(this, t12.body ?? t12, "Expected a valid module body"), C6.type !== J8.AST_NODE_TYPES.Identifier && Ne7(this, Pe10, "m", br5).call(this, t12.name, "global module augmentation must have an Identifier id"), { kind: "global", body: S6, declare: false, global: false, id: C6 }; - } - if (!(t12.flags & _t6.NodeFlags.Namespace)) { - let C6 = this.convertChild(t12.body); - return { kind: "module", ...C6 != null ? { body: C6 } : {}, declare: false, global: false, id: this.convertChild(t12.name) }; - } - t12.body == null && Ne7(this, Pe10, "m", br5).call(this, t12, "Expected a module body"), t12.name.kind !== _t6.SyntaxKind.Identifier && Ne7(this, Pe10, "m", br5).call(this, t12.name, "`namespace`s must have an Identifier id"); - let y5 = this.createNode(t12.name, { decorators: [], name: t12.name.text, optional: false, range: [t12.name.getStart(this.ast), t12.name.getEnd()], type: J8.AST_NODE_TYPES.Identifier, typeAnnotation: void 0 }); - for (; t12.body && _t6.isModuleDeclaration(t12.body) && t12.body.name; ) { - t12 = t12.body, l || (l = (0, pe7.hasModifier)(E6.DeclareKeyword, t12)); - let C6 = t12.name, S6 = this.createNode(C6, { decorators: [], name: C6.text, optional: false, range: [C6.getStart(this.ast), C6.getEnd()], type: J8.AST_NODE_TYPES.Identifier, typeAnnotation: void 0 }); - y5 = this.createNode(C6, { left: y5, right: S6, range: [y5.range[0], S6.range[1]], type: J8.AST_NODE_TYPES.TSQualifiedName }); - } - return { kind: "namespace", body: this.convertChild(t12.body), declare: false, global: false, id: y5 }; - })() }); - return v7.declare = l, t12.flags & _t6.NodeFlags.GlobalAugmentation && (v7.global = true), this.fixExports(t12, v7); - } - case E6.ParenthesizedType: - return this.convertChild(t12.type); - case E6.UnionType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSUnionType, types: t12.types.map((l) => this.convertChild(l)) }); - case E6.IntersectionType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSIntersectionType, types: t12.types.map((l) => this.convertChild(l)) }); - case E6.AsExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSAsExpression, expression: this.convertChild(t12.expression), typeAnnotation: this.convertChild(t12.type) }); - case E6.InferType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSInferType, typeParameter: this.convertChild(t12.typeParameter) }); - case E6.LiteralType: - return t12.literal.kind === E6.NullKeyword ? this.createNode(t12.literal, { type: J8.AST_NODE_TYPES.TSNullKeyword }) : this.createNode(t12, { type: J8.AST_NODE_TYPES.TSLiteralType, literal: this.convertChild(t12.literal) }); - case E6.TypeAssertionExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTypeAssertion, typeAnnotation: this.convertChild(t12.type), expression: this.convertChild(t12.expression) }); - case E6.ImportEqualsDeclaration: - return this.fixExports(t12, this.createNode(t12, { type: J8.AST_NODE_TYPES.TSImportEqualsDeclaration, id: this.convertChild(t12.name), importKind: t12.isTypeOnly ? "type" : "value", moduleReference: this.convertChild(t12.moduleReference) })); - case E6.ExternalModuleReference: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSExternalModuleReference, expression: this.convertChild(t12.expression) }); - case E6.NamespaceExportDeclaration: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSNamespaceExportDeclaration, id: this.convertChild(t12.name) }); - case E6.AbstractKeyword: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSAbstractKeyword }); - case E6.TupleType: { - let l = "elementTypes" in t12 ? t12.elementTypes.map((v7) => this.convertChild(v7)) : t12.elements.map((v7) => this.convertChild(v7)); - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTupleType, elementTypes: l }); - } - case E6.NamedTupleMember: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSNamedTupleMember, elementType: this.convertChild(t12.type, t12), label: this.convertChild(t12.name, t12), optional: t12.questionToken != null }); - return t12.dotDotDotToken ? (l.range[0] = l.label.range[0], l.loc.start = l.label.loc.start, this.createNode(t12, { type: J8.AST_NODE_TYPES.TSRestType, typeAnnotation: l })) : l; - } - case E6.OptionalType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSOptionalType, typeAnnotation: this.convertChild(t12.type) }); - case E6.RestType: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSRestType, typeAnnotation: this.convertChild(t12.type) }); - case E6.TemplateLiteralType: { - let l = this.createNode(t12, { type: J8.AST_NODE_TYPES.TSTemplateLiteralType, quasis: [this.convertChild(t12.head)], types: [] }); - return t12.templateSpans.forEach((v7) => { - l.types.push(this.convertChild(v7.type)), l.quasis.push(this.convertChild(v7.literal)); - }), l; - } - case E6.ClassStaticBlockDeclaration: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.StaticBlock, body: this.convertBodyExpressions(t12.body.statements, t12) }); - case E6.AssertEntry: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.ImportAttribute, key: this.convertChild(t12.name), value: this.convertChild(t12.value) }); - case E6.SatisfiesExpression: - return this.createNode(t12, { type: J8.AST_NODE_TYPES.TSSatisfiesExpression, expression: this.convertChild(t12.expression), typeAnnotation: this.convertChild(t12.type) }); - default: - return this.deeplyCopy(t12); - } - } - }; - yn6.Converter = K62; - Pe10 = /* @__PURE__ */ new WeakSet(), ow = function(t12) { - if (!this.options.allowInvalidAST) { - (0, pe7.nodeHasIllegalDecorators)(t12) && Ne7(this, Pe10, "m", st5).call(this, t12.illegalDecorators[0], "Decorators are not valid here."); - for (let r3 of (0, Zi7.getDecorators)(t12, true) ?? []) - (0, pe7.nodeCanBeDecorated)(t12) || (_t6.isMethodDeclaration(t12) && !(0, pe7.nodeIsPresent)(t12.body) ? Ne7(this, Pe10, "m", st5).call(this, r3, "A decorator can only decorate a method implementation, not an overload.") : Ne7(this, Pe10, "m", st5).call(this, r3, "Decorators are not valid here.")); - for (let r3 of (0, Zi7.getModifiers)(t12, true) ?? []) { - if (r3.kind !== E6.ReadonlyKeyword && ((t12.kind === E6.PropertySignature || t12.kind === E6.MethodSignature) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on a type member`), t12.kind === E6.IndexSignature && (r3.kind !== E6.StaticKeyword || !_t6.isClassLike(t12.parent)) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on an index signature`)), r3.kind !== E6.InKeyword && r3.kind !== E6.OutKeyword && r3.kind !== E6.ConstKeyword && t12.kind === E6.TypeParameter && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on a type parameter`), (r3.kind === E6.InKeyword || r3.kind === E6.OutKeyword) && (t12.kind !== E6.TypeParameter || !(_t6.isInterfaceDeclaration(t12.parent) || _t6.isClassLike(t12.parent) || _t6.isTypeAliasDeclaration(t12.parent))) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`), r3.kind === E6.ReadonlyKeyword && t12.kind !== E6.PropertyDeclaration && t12.kind !== E6.PropertySignature && t12.kind !== E6.IndexSignature && t12.kind !== E6.Parameter && Ne7(this, Pe10, "m", st5).call(this, r3, "'readonly' modifier can only appear on a property declaration or index signature."), r3.kind === E6.DeclareKeyword && _t6.isClassLike(t12.parent) && !_t6.isPropertyDeclaration(t12) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on class elements of this kind.`), r3.kind === E6.DeclareKeyword && _t6.isVariableStatement(t12)) { - let a = (0, pe7.getDeclarationKind)(t12.declarationList); - (a === "using" || a === "await using") && Ne7(this, Pe10, "m", st5).call(this, r3, `'declare' modifier cannot appear on a '${a}' declaration.`); - } - if (r3.kind === E6.AbstractKeyword && t12.kind !== E6.ClassDeclaration && t12.kind !== E6.ConstructorType && t12.kind !== E6.MethodDeclaration && t12.kind !== E6.PropertyDeclaration && t12.kind !== E6.GetAccessor && t12.kind !== E6.SetAccessor && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier can only appear on a class, method, or property declaration.`), (r3.kind === E6.StaticKeyword || r3.kind === E6.PublicKeyword || r3.kind === E6.ProtectedKeyword || r3.kind === E6.PrivateKeyword) && (t12.parent.kind === E6.ModuleBlock || t12.parent.kind === E6.SourceFile) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on a module or namespace element.`), r3.kind === E6.AccessorKeyword && t12.kind !== E6.PropertyDeclaration && Ne7(this, Pe10, "m", st5).call(this, r3, "'accessor' modifier can only appear on a property declaration."), r3.kind === E6.AsyncKeyword && t12.kind !== E6.MethodDeclaration && t12.kind !== E6.FunctionDeclaration && t12.kind !== E6.FunctionExpression && t12.kind !== E6.ArrowFunction && Ne7(this, Pe10, "m", st5).call(this, r3, "'async' modifier cannot be used here."), t12.kind === E6.Parameter && (r3.kind === E6.StaticKeyword || r3.kind === E6.ExportKeyword || r3.kind === E6.DeclareKeyword || r3.kind === E6.AsyncKeyword) && Ne7(this, Pe10, "m", st5).call(this, r3, `'${_t6.tokenToString(r3.kind)}' modifier cannot appear on a parameter.`), t12.kind === E6.Parameter && (r3.kind === E6.PublicKeyword || r3.kind === E6.PrivateKeyword || r3.kind === E6.ProtectedKeyword || r3.kind === E6.ReadonlyKeyword || r3.kind === E6.OverrideKeyword)) { - let a = (0, pe7.getContainingFunction)(t12); - a.kind === E6.Constructor && (0, pe7.nodeIsPresent)(a.body) || Ne7(this, Pe10, "m", st5).call(this, r3, "A parameter property is only allowed in a constructor implementation."); - } - } - } - }, br5 = function(t12, r3) { - this.options.allowInvalidAST || Ne7(this, Pe10, "m", st5).call(this, t12, r3); - }, oi7 = function(t12, r3, a) { - let _6 = false; - return Object.defineProperty(t12, r3, { configurable: true, get: this.options.suppressDeprecatedPropertyWarnings ? () => t12[a] : () => (_6 || ((void 0)(`The '${r3}' property is deprecated on ${t12.type} nodes. Use '${a}' instead. See https://typescript-eslint.io/linting/troubleshooting#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`, "DeprecationWarning"), _6 = true), t12[a]), set(p4) { - Object.defineProperty(t12, r3, { enumerable: true, writable: true, value: p4 }); - } }), t12; - }, st5 = function(t12, r3) { - let a, _6; - throw typeof t12 == "number" ? a = _6 = t12 : (a = t12.getStart(this.ast), _6 = t12.getEnd()), (0, pe7.createError)(r3, this.ast, a, _6); - }; - }); - e9 = ut4((CH, Zw) => { - "use strict"; - var AU = Object.create, Wm = Object.defineProperty, kU = Object.getOwnPropertyDescriptor, DU = Object.getOwnPropertyNames, PU = Object.getPrototypeOf, IU = Object.prototype.hasOwnProperty, NU = (e3, t12) => { - for (var r3 in t12) - Wm(e3, r3, { get: t12[r3], enumerable: true }); - }, lw = (e3, t12, r3, a) => { - if (t12 && typeof t12 == "object" || typeof t12 == "function") - for (let _6 of DU(t12)) - !IU.call(e3, _6) && _6 !== r3 && Wm(e3, _6, { get: () => t12[_6], enumerable: !(a = kU(t12, _6)) || a.enumerable }); - return e3; - }, Pr7 = (e3, t12, r3) => (r3 = e3 != null ? AU(PU(e3)) : {}, lw(t12 || !e3 || !e3.__esModule ? Wm(r3, "default", { value: e3, enumerable: true }) : r3, e3)), OU = (e3) => lw(Wm({}, "__esModule", { value: true }), e3), uw = {}; - NU(uw, { forEachComment: () => LU, forEachToken: () => pw, getCallSignaturesOfType: () => tb, getPropertyOfType: () => gb, getWellKnownSymbolPropertyOfType: () => Zz, hasDecorators: () => Bq, hasExpressionInitializer: () => Ow, hasInitializer: () => Uq, hasJSDoc: () => qq, hasModifiers: () => zq, hasType: () => Wq, hasTypeArguments: () => Vq, includesModifier: () => jU, intersectionTypeParts: () => iW2, isAbstractKeyword: () => FU, isAccessExpression: () => kq, isAccessibilityModifier: () => sb, isAccessorDeclaration: () => _b, isAccessorKeyword: () => hw, isAnyKeyword: () => BU, isArrayBindingElement: () => Dq, isArrayBindingOrAssignmentPattern: () => kw, isAssertKeyword: () => UU, isAssertsKeyword: () => qU, isAssignmentKind: () => yz, isAssignmentPattern: () => Pq, isAsyncKeyword: () => zU, isAwaitKeyword: () => WU, isBigIntKeyword: () => VU, isBigIntLiteralType: () => Hz, isBindingOrAssignmentElementRestIndicator: () => Iq, isBindingOrAssignmentElementTarget: () => Nq, isBindingOrAssignmentPattern: () => Dw, isBindingPattern: () => cb, isBlockLike: () => Oq, isBooleanKeyword: () => HU, isBooleanLiteral: () => Pw, isBooleanLiteralType: () => hb, isClassLikeDeclaration: () => Vm, isClassMemberModifier: () => Mq, isColonToken: () => GU, isCompilerOptionEnabled: () => ja4, isConditionalType: () => Mz, isConstAssertionExpression: () => Jw, isConstKeyword: () => XU, isDeclarationName: () => Iw, isDeclarationWithTypeParameterChildren: () => Nw, isDeclarationWithTypeParameters: () => Lq, isDeclareKeyword: () => $U, isDefaultKeyword: () => QU, isDestructuringPattern: () => Jq, isDotToken: () => YU, isEndOfFileToken: () => yw, isEntityNameExpression: () => hu4, isEntityNameOrEntityNameExpression: () => Rq, isEnumType: () => Lz, isEqualsGreaterThanToken: () => KU, isEqualsToken: () => ZU, isEvolvingArrayType: () => Wz, isExclamationToken: () => eq, isExportKeyword: () => tq, isFalseKeyword: () => rq, isFalseLiteral: () => gw, isFalseLiteralType: () => yb, isFalsyType: () => nW2, isForInOrOfStatement: () => jq, isFreshableIntrinsicType: () => Vz, isFreshableType: () => Hw, isFunctionLikeDeclaration: () => Fq, isFunctionScopeBoundary: () => hz, isImportExpression: () => nq, isImportKeyword: () => iq, isInKeyword: () => aq, isIndexType: () => Jz, isIndexedAccessType: () => Rz, isInputFiles: () => oq, isInstantiableType: () => jz, isIntersectionType: () => Hm, isIntrinsicAnyType: () => vz, isIntrinsicBigIntType: () => Sz, isIntrinsicBooleanType: () => Tz, isIntrinsicESSymbolType: () => wz, isIntrinsicErrorType: () => xz, isIntrinsicNeverType: () => Ez, isIntrinsicNonPrimitiveType: () => Az, isIntrinsicNullType: () => kz, isIntrinsicNumberType: () => Dz, isIntrinsicStringType: () => Pz, isIntrinsicType: () => fb, isIntrinsicUndefinedType: () => Iz, isIntrinsicUnknownType: () => Nz, isIntrinsicVoidType: () => Oz, isIterationStatement: () => mz, isJSDocComment: () => Hq, isJSDocNamespaceBody: () => lb, isJSDocNamespaceDeclaration: () => Rw, isJSDocText: () => bw, isJSDocTypeReferencingNode: () => Gq, isJsonMinusNumericLiteral: () => vw, isJsonObjectExpression: () => Xq, isJsxAttributeLike: () => $q, isJsxAttributeValue: () => Qq, isJsxChild: () => Yq, isJsxTagNameExpression: () => Mw, isJsxTagNamePropertyAccess: () => jw, isLiteralToken: () => Kq, isLiteralType: () => Gz, isModifierFlagSet: () => fw, isModuleBody: () => Zq, isModuleName: () => ez, isModuleReference: () => tz, isNamedDeclarationWithName: () => Fw, isNamedImportBindings: () => rz, isNamedImportsOrExports: () => nz, isNamespaceBody: () => ub, isNamespaceDeclaration: () => Bw, isNeverKeyword: () => sq, isNodeFlagSet: () => dw, isNullKeyword: () => _q, isNullLiteral: () => Tw, isNumberKeyword: () => cq, isNumberLiteralType: () => Xz, isNumericOrStringLikeLiteral: () => Uw, isNumericPropertyName: () => Vw, isObjectBindingOrAssignmentElement: () => iz, isObjectBindingOrAssignmentPattern: () => Lw, isObjectFlagSet: () => mu3, isObjectKeyword: () => lq, isObjectType: () => yu3, isObjectTypeDeclaration: () => az, isOutKeyword: () => uq, isOverrideKeyword: () => pq, isParameterPropertyModifier: () => oz, isPrivateKeyword: () => Sw, isPropertyAccessEntityNameExpression: () => qw, isPropertyNameLiteral: () => sz, isPropertyReadonlyInType: () => Yw, isProtectedKeyword: () => xw, isPseudoLiteralToken: () => _z, isPublicKeyword: () => ww, isQuestionDotToken: () => fq, isQuestionToken: () => dq, isReadonlyKeyword: () => ab, isSignatureDeclaration: () => pb, isStaticKeyword: () => Cw, isStrictCompilerOptionEnabled: () => rb, isStringKeyword: () => mq, isStringLiteralType: () => $z, isStringMappingType: () => Fz, isSubstitutionType: () => Bz, isSuperElementAccessExpression: () => zw, isSuperExpression: () => ob, isSuperKeyword: () => hq, isSuperProperty: () => cz, isSuperPropertyAccessExpression: () => Ww, isSymbolFlagSet: () => mw, isSymbolKeyword: () => yq, isSyntaxList: () => gq, isTemplateLiteralType: () => Qz, isThenableType: () => cW, isThisExpression: () => Ew, isThisKeyword: () => bq, isTrueKeyword: () => vq, isTrueLiteral: () => Aw, isTrueLiteralType: () => Yz, isTupleType: () => Xw, isTupleTypeReference: () => Qw, isTypeFlagSet: () => tt9, isTypeOnlyCompatibleAliasDeclaration: () => lz, isTypeParameter: () => Uz, isTypeReference: () => $w, isTypeReferenceType: () => uz, isTypeVariable: () => qz, isUndefinedKeyword: () => Tq, isUnionOrIntersectionType: () => zz, isUnionOrIntersectionTypeNode: () => pz, isUnionType: () => mb, isUniqueESSymbolType: () => Gw, isUnknownKeyword: () => Sq, isUnknownLiteralType: () => Kz, isUnparsedPrologue: () => xq, isUnparsedSourceText: () => fz, isUnparsedSyntheticReference: () => wq, isValidPropertyAccess: () => gz, isVariableLikeDeclaration: () => dz, isVoidKeyword: () => Cq, symbolHasReadonlyDeclaration: () => Kw, unionTypeParts: () => du3 }); - Zw.exports = OU(uw); - var Zr7 = Pr7(Dt8(), 1), sw = Pr7(Dt8(), 1); - function pw(e3, t12, r3 = e3.getSourceFile()) { - let a = []; - for (; ; ) { - if (sw.default.isTokenKind(e3.kind)) - t12(e3); - else if (e3.kind !== sw.default.SyntaxKind.JSDocComment) { - let _6 = e3.getChildren(r3); - if (_6.length === 1) { - e3 = _6[0]; - continue; - } - for (let p4 = _6.length - 1; p4 >= 0; --p4) - a.push(_6[p4]); - } - if (a.length === 0) - break; - e3 = a.pop(); - } - } - function MU(e3) { - switch (e3.kind) { - case Zr7.default.SyntaxKind.CloseBraceToken: - return e3.parent.kind !== Zr7.default.SyntaxKind.JsxExpression || !eb(e3.parent.parent); - case Zr7.default.SyntaxKind.GreaterThanToken: - switch (e3.parent.kind) { - case Zr7.default.SyntaxKind.JsxOpeningElement: - return e3.end !== e3.parent.end; - case Zr7.default.SyntaxKind.JsxOpeningFragment: - return false; - case Zr7.default.SyntaxKind.JsxSelfClosingElement: - return e3.end !== e3.parent.end || !eb(e3.parent.parent); - case Zr7.default.SyntaxKind.JsxClosingElement: - case Zr7.default.SyntaxKind.JsxClosingFragment: - return !eb(e3.parent.parent.parent); - } - } - return true; - } - function eb(e3) { - return e3.kind === Zr7.default.SyntaxKind.JsxElement || e3.kind === Zr7.default.SyntaxKind.JsxFragment; - } - function LU(e3, t12, r3 = e3.getSourceFile()) { - let a = r3.text, _6 = r3.languageVariant !== Zr7.default.LanguageVariant.JSX; - return pw(e3, (d5) => { - if (d5.pos !== d5.end && (d5.kind !== Zr7.default.SyntaxKind.JsxText && Zr7.default.forEachLeadingCommentRange(a, d5.pos === 0 ? (Zr7.default.getShebang(a) ?? "").length : d5.pos, p4), _6 || MU(d5))) - return Zr7.default.forEachTrailingCommentRange(a, d5.end, p4); - }, r3); - function p4(d5, h4, l) { - t12(a, { pos: d5, end: h4, kind: l }); - } - } - var JU = Pr7(Dt8(), 1); - function ja4(e3, t12) { - switch (t12) { - case "stripInternal": - case "declarationMap": - case "emitDeclarationOnly": - return e3[t12] === true && ja4(e3, "declaration"); - case "declaration": - return e3.declaration || ja4(e3, "composite"); - case "incremental": - return e3.incremental === void 0 ? ja4(e3, "composite") : e3.incremental; - case "skipDefaultLibCheck": - return e3.skipDefaultLibCheck || ja4(e3, "skipLibCheck"); - case "suppressImplicitAnyIndexErrors": - return e3.suppressImplicitAnyIndexErrors === true && ja4(e3, "noImplicitAny"); - case "allowSyntheticDefaultImports": - return e3.allowSyntheticDefaultImports !== void 0 ? e3.allowSyntheticDefaultImports : ja4(e3, "esModuleInterop") || e3.module === JU.default.ModuleKind.System; - case "noUncheckedIndexedAccess": - return e3.noUncheckedIndexedAccess === true && ja4(e3, "strictNullChecks"); - case "allowJs": - return e3.allowJs === void 0 ? ja4(e3, "checkJs") : e3.allowJs; - case "noImplicitAny": - case "noImplicitThis": - case "strictNullChecks": - case "strictFunctionTypes": - case "strictPropertyInitialization": - case "alwaysStrict": - case "strictBindCallApply": - return rb(e3, t12); - } - return e3[t12] === true; - } - function rb(e3, t12) { - return (e3.strict ? e3[t12] !== false : e3[t12] === true) && (t12 !== "strictPropertyInitialization" || rb(e3, "strictNullChecks")); - } - var RU = Pr7(Dt8(), 1); - function nb(e3, t12) { - return (e3 & t12) !== 0; - } - function ib(e3, t12) { - return nb(e3.flags, t12); - } - function fw(e3, t12) { - return nb(RU.default.getCombinedModifierFlags(e3), t12); - } - var dw = ib; - function mu3(e3, t12) { - return nb(e3.objectFlags, t12); - } - var mw = ib, tt9 = ib; - function jU(e3, ...t12) { - if (e3 === void 0) - return false; - for (let r3 of e3) - if (t12.includes(r3.kind)) - return true; - return false; - } - var pr6 = Pr7(Dt8(), 1), Fe9 = Pr7(Dt8(), 1); - function FU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AbstractKeyword; - } - function hw(e3) { - return e3.kind === Fe9.default.SyntaxKind.AccessorKeyword; - } - function BU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AnyKeyword; - } - function UU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AssertKeyword; - } - function qU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AssertsKeyword; - } - function zU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AsyncKeyword; - } - function WU(e3) { - return e3.kind === Fe9.default.SyntaxKind.AwaitKeyword; - } - function VU(e3) { - return e3.kind === Fe9.default.SyntaxKind.BigIntKeyword; - } - function HU(e3) { - return e3.kind === Fe9.default.SyntaxKind.BooleanKeyword; - } - function GU(e3) { - return e3.kind === Fe9.default.SyntaxKind.ColonToken; - } - function XU(e3) { - return e3.kind === Fe9.default.SyntaxKind.ConstKeyword; - } - function $U(e3) { - return e3.kind === Fe9.default.SyntaxKind.DeclareKeyword; - } - function QU(e3) { - return e3.kind === Fe9.default.SyntaxKind.DefaultKeyword; - } - function YU(e3) { - return e3.kind === Fe9.default.SyntaxKind.DotToken; - } - function yw(e3) { - return e3.kind === Fe9.default.SyntaxKind.EndOfFileToken; - } - function KU(e3) { - return e3.kind === Fe9.default.SyntaxKind.EqualsGreaterThanToken; - } - function ZU(e3) { - return e3.kind === Fe9.default.SyntaxKind.EqualsToken; - } - function eq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ExclamationToken; - } - function tq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ExportKeyword; - } - function rq(e3) { - return e3.kind === Fe9.default.SyntaxKind.FalseKeyword; - } - function gw(e3) { - return e3.kind === Fe9.default.SyntaxKind.FalseKeyword; - } - function nq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ImportKeyword; - } - function iq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ImportKeyword; - } - function aq(e3) { - return e3.kind === Fe9.default.SyntaxKind.InKeyword; - } - function oq(e3) { - return e3.kind === Fe9.default.SyntaxKind.InputFiles; - } - function bw(e3) { - return e3.kind === Fe9.default.SyntaxKind.JSDocText; - } - function vw(e3) { - return e3.kind === Fe9.default.SyntaxKind.PrefixUnaryExpression; - } - function sq(e3) { - return e3.kind === Fe9.default.SyntaxKind.NeverKeyword; - } - function _q(e3) { - return e3.kind === Fe9.default.SyntaxKind.NullKeyword; - } - function Tw(e3) { - return e3.kind === Fe9.default.SyntaxKind.NullKeyword; - } - function cq(e3) { - return e3.kind === Fe9.default.SyntaxKind.NumberKeyword; - } - function lq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ObjectKeyword; - } - function uq(e3) { - return e3.kind === Fe9.default.SyntaxKind.OutKeyword; - } - function pq(e3) { - return e3.kind === Fe9.default.SyntaxKind.OverrideKeyword; - } - function Sw(e3) { - return e3.kind === Fe9.default.SyntaxKind.PrivateKeyword; - } - function xw(e3) { - return e3.kind === Fe9.default.SyntaxKind.ProtectedKeyword; - } - function ww(e3) { - return e3.kind === Fe9.default.SyntaxKind.PublicKeyword; - } - function fq(e3) { - return e3.kind === Fe9.default.SyntaxKind.QuestionDotToken; - } - function dq(e3) { - return e3.kind === Fe9.default.SyntaxKind.QuestionToken; - } - function ab(e3) { - return e3.kind === Fe9.default.SyntaxKind.ReadonlyKeyword; - } - function Cw(e3) { - return e3.kind === Fe9.default.SyntaxKind.StaticKeyword; - } - function mq(e3) { - return e3.kind === Fe9.default.SyntaxKind.StringKeyword; - } - function ob(e3) { - return e3.kind === Fe9.default.SyntaxKind.SuperKeyword; - } - function hq(e3) { - return e3.kind === Fe9.default.SyntaxKind.SuperKeyword; - } - function yq(e3) { - return e3.kind === Fe9.default.SyntaxKind.SymbolKeyword; - } - function gq(e3) { - return e3.kind === Fe9.default.SyntaxKind.SyntaxList; - } - function Ew(e3) { - return e3.kind === Fe9.default.SyntaxKind.ThisKeyword; - } - function bq(e3) { - return e3.kind === Fe9.default.SyntaxKind.ThisKeyword; - } - function vq(e3) { - return e3.kind === Fe9.default.SyntaxKind.TrueKeyword; - } - function Aw(e3) { - return e3.kind === Fe9.default.SyntaxKind.TrueKeyword; - } - function Tq(e3) { - return e3.kind === Fe9.default.SyntaxKind.UndefinedKeyword; - } - function Sq(e3) { - return e3.kind === Fe9.default.SyntaxKind.UnknownKeyword; - } - function xq(e3) { - return e3.kind === Fe9.default.SyntaxKind.UnparsedPrologue; - } - function wq(e3) { - return e3.kind === Fe9.default.SyntaxKind.UnparsedSyntheticReference; - } - function Cq(e3) { - return e3.kind === Fe9.default.SyntaxKind.VoidKeyword; - } - var D6 = Pr7(Dt8(), 1), Eq = Pr7(Dt8(), 1), [_w, Aq] = Eq.default.versionMajorMinor.split(".").map((e3) => Number.parseInt(e3, 10)); - function fu3(e3, t12 = 0) { - return _w > e3 || _w === e3 && Aq >= t12; - } - function kq(e3) { - return D6.default.isPropertyAccessExpression(e3) || D6.default.isElementAccessExpression(e3); - } - function sb(e3) { - return ww(e3) || Sw(e3) || xw(e3); - } - function _b(e3) { - return D6.default.isGetAccessorDeclaration(e3) || D6.default.isSetAccessorDeclaration(e3); - } - function Dq(e3) { - return D6.default.isBindingElement(e3) || D6.default.isOmittedExpression(e3); - } - function kw(e3) { - return D6.default.isArrayBindingPattern(e3) || D6.default.isArrayLiteralExpression(e3); - } - function Pq(e3) { - return D6.default.isObjectLiteralExpression(e3) || D6.default.isArrayLiteralExpression(e3); - } - function Iq(e3) { - return D6.default.isSpreadElement(e3) || D6.default.isSpreadAssignment(e3) ? true : fu3(4, 4) ? D6.default.isDotDotDotToken(e3) : false; - } - function Nq(e3) { - return Dw(e3) || D6.default.isIdentifier(e3) || D6.default.isPropertyAccessExpression(e3) || D6.default.isElementAccessExpression(e3) || D6.default.isOmittedExpression(e3); - } - function Dw(e3) { - return Lw(e3) || kw(e3); - } - function cb(e3) { - return D6.default.isObjectBindingPattern(e3) || D6.default.isArrayBindingPattern(e3); - } - function Oq(e3) { - return D6.default.isSourceFile(e3) || D6.default.isBlock(e3) || D6.default.isModuleBlock(e3) || D6.default.isCaseOrDefaultClause(e3); - } - function Pw(e3) { - return Aw(e3) || gw(e3); - } - function Vm(e3) { - return D6.default.isClassDeclaration(e3) || D6.default.isClassExpression(e3); - } - function Mq(e3) { - return sb(e3) || ab(e3) || Cw(e3) || hw(e3); - } - function Iw(e3) { - return D6.default.isIdentifier(e3) || D6.default.isPrivateIdentifier(e3) || D6.default.isStringLiteralLike(e3) || D6.default.isNumericLiteral(e3) || D6.default.isComputedPropertyName(e3) || D6.default.isElementAccessExpression(e3) || cb(e3) || hu4(e3); - } - function Nw(e3) { - return pb(e3) || Vm(e3) || D6.default.isInterfaceDeclaration(e3) || D6.default.isTypeAliasDeclaration(e3) || D6.default.isJSDocTemplateTag(e3); - } - function Lq(e3) { - return Nw(e3) || D6.default.isJSDocTypedefTag(e3) || D6.default.isJSDocCallbackTag(e3) || D6.default.isJSDocSignature(e3); - } - function Jq(e3) { - return cb(e3) || D6.default.isObjectLiteralExpression(e3) || D6.default.isArrayLiteralExpression(e3); - } - function hu4(e3) { - return D6.default.isIdentifier(e3) || qw(e3); - } - function Rq(e3) { - return D6.default.isEntityName(e3) || hu4(e3); - } - function jq(e3) { - return D6.default.isForInStatement(e3) || D6.default.isForOfStatement(e3); - } - function Fq(e3) { - return D6.default.isFunctionDeclaration(e3) || D6.default.isMethodDeclaration(e3) || D6.default.isGetAccessorDeclaration(e3) || D6.default.isSetAccessorDeclaration(e3) || D6.default.isConstructorDeclaration(e3) || D6.default.isFunctionExpression(e3) || D6.default.isArrowFunction(e3); - } - function Bq(e3) { - return D6.default.isParameter(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isMethodDeclaration(e3) || D6.default.isGetAccessorDeclaration(e3) || D6.default.isSetAccessorDeclaration(e3) || D6.default.isClassExpression(e3) || D6.default.isClassDeclaration(e3); - } - function Ow(e3) { - return D6.default.isVariableDeclaration(e3) || D6.default.isParameter(e3) || D6.default.isBindingElement(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isPropertyAssignment(e3) || D6.default.isEnumMember(e3); - } - function Uq(e3) { - return Ow(e3) || D6.default.isForStatement(e3) || D6.default.isForInStatement(e3) || D6.default.isForOfStatement(e3) || D6.default.isJsxAttribute(e3); - } - function qq(e3) { - return !!(_b(e3) || D6.default.isArrowFunction(e3) || D6.default.isBlock(e3) || D6.default.isBreakStatement(e3) || D6.default.isCallSignatureDeclaration(e3) || D6.default.isCaseClause(e3) || Vm(e3) || D6.default.isConstructorDeclaration(e3) || D6.default.isConstructorTypeNode(e3) || D6.default.isConstructSignatureDeclaration(e3) || D6.default.isContinueStatement(e3) || D6.default.isDebuggerStatement(e3) || D6.default.isDoStatement(e3) || D6.default.isEmptyStatement(e3) || yw(e3) || D6.default.isEnumDeclaration(e3) || D6.default.isEnumMember(e3) || D6.default.isExportAssignment(e3) || D6.default.isExportDeclaration(e3) || D6.default.isExportSpecifier(e3) || D6.default.isExpressionStatement(e3) || D6.default.isForInStatement(e3) || D6.default.isForOfStatement(e3) || D6.default.isForStatement(e3) || D6.default.isFunctionDeclaration(e3) || D6.default.isFunctionExpression(e3) || D6.default.isFunctionTypeNode(e3) || D6.default.isIfStatement(e3) || D6.default.isImportDeclaration(e3) || D6.default.isImportEqualsDeclaration(e3) || D6.default.isIndexSignatureDeclaration(e3) || D6.default.isInterfaceDeclaration(e3) || D6.default.isJSDocFunctionType(e3) || D6.default.isLabeledStatement(e3) || D6.default.isMethodDeclaration(e3) || D6.default.isMethodSignature(e3) || D6.default.isModuleDeclaration(e3) || D6.default.isNamedTupleMember(e3) || D6.default.isNamespaceExportDeclaration(e3) || D6.default.isParameter(e3) || D6.default.isParenthesizedExpression(e3) || D6.default.isPropertyAssignment(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isPropertySignature(e3) || D6.default.isReturnStatement(e3) || D6.default.isShorthandPropertyAssignment(e3) || D6.default.isSpreadAssignment(e3) || D6.default.isSwitchStatement(e3) || D6.default.isThrowStatement(e3) || D6.default.isTryStatement(e3) || D6.default.isTypeAliasDeclaration(e3) || D6.default.isVariableDeclaration(e3) || D6.default.isVariableStatement(e3) || D6.default.isWhileStatement(e3) || D6.default.isWithStatement(e3) || fu3(4, 4) && D6.default.isClassStaticBlockDeclaration(e3) || fu3(5, 0) && (D6.default.isBinaryExpression(e3) || D6.default.isElementAccessExpression(e3) || D6.default.isIdentifier(e3) || D6.default.isJSDocSignature(e3) || D6.default.isObjectLiteralExpression(e3) || D6.default.isPropertyAccessExpression(e3) || D6.default.isTypeParameterDeclaration(e3))); - } - function zq(e3) { - return D6.default.isTypeParameterDeclaration(e3) || D6.default.isParameter(e3) || D6.default.isConstructorTypeNode(e3) || D6.default.isPropertySignature(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isMethodSignature(e3) || D6.default.isMethodDeclaration(e3) || D6.default.isConstructorDeclaration(e3) || D6.default.isGetAccessorDeclaration(e3) || D6.default.isSetAccessorDeclaration(e3) || D6.default.isIndexSignatureDeclaration(e3) || D6.default.isFunctionExpression(e3) || D6.default.isArrowFunction(e3) || D6.default.isClassExpression(e3) || D6.default.isVariableStatement(e3) || D6.default.isFunctionDeclaration(e3) || D6.default.isClassDeclaration(e3) || D6.default.isInterfaceDeclaration(e3) || D6.default.isTypeAliasDeclaration(e3) || D6.default.isEnumDeclaration(e3) || D6.default.isModuleDeclaration(e3) || D6.default.isImportEqualsDeclaration(e3) || D6.default.isImportDeclaration(e3) || D6.default.isExportAssignment(e3) || D6.default.isExportDeclaration(e3); - } - function Wq(e3) { - return pb(e3) || D6.default.isVariableDeclaration(e3) || D6.default.isParameter(e3) || D6.default.isPropertySignature(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isTypePredicateNode(e3) || D6.default.isParenthesizedTypeNode(e3) || D6.default.isTypeOperatorNode(e3) || D6.default.isMappedTypeNode(e3) || D6.default.isAssertionExpression(e3) || D6.default.isTypeAliasDeclaration(e3) || D6.default.isJSDocTypeExpression(e3) || D6.default.isJSDocNonNullableType(e3) || D6.default.isJSDocNullableType(e3) || D6.default.isJSDocOptionalType(e3) || D6.default.isJSDocVariadicType(e3); - } - function Vq(e3) { - return D6.default.isCallExpression(e3) || D6.default.isNewExpression(e3) || D6.default.isTaggedTemplateExpression(e3) || D6.default.isJsxOpeningElement(e3) || D6.default.isJsxSelfClosingElement(e3); - } - function Hq(e3) { - return bw(e3) ? true : fu3(4, 4) ? D6.default.isJSDocLink(e3) || D6.default.isJSDocLinkCode(e3) || D6.default.isJSDocLinkPlain(e3) : false; - } - function lb(e3) { - return D6.default.isIdentifier(e3) || Rw(e3); - } - function Gq(e3) { - return D6.default.isJSDocVariadicType(e3) || D6.default.isJSDocOptionalType(e3) || D6.default.isJSDocNullableType(e3) || D6.default.isJSDocNonNullableType(e3); - } - function Xq(e3) { - return D6.default.isObjectLiteralExpression(e3) || D6.default.isArrayLiteralExpression(e3) || vw(e3) || D6.default.isNumericLiteral(e3) || D6.default.isStringLiteral(e3) || Pw(e3) || Tw(e3); - } - function $q(e3) { - return D6.default.isJsxAttribute(e3) || D6.default.isJsxSpreadAttribute(e3); - } - function Qq(e3) { - return D6.default.isStringLiteral(e3) || D6.default.isJsxExpression(e3) || D6.default.isJsxElement(e3) || D6.default.isJsxSelfClosingElement(e3) || D6.default.isJsxFragment(e3); - } - function Yq(e3) { - return D6.default.isJsxText(e3) || D6.default.isJsxExpression(e3) || D6.default.isJsxElement(e3) || D6.default.isJsxSelfClosingElement(e3) || D6.default.isJsxFragment(e3); - } - function Mw(e3) { - return D6.default.isIdentifier(e3) || Ew(e3) || jw(e3); - } - function Kq(e3) { - return D6.default.isNumericLiteral(e3) || D6.default.isBigIntLiteral(e3) || D6.default.isStringLiteral(e3) || D6.default.isJsxText(e3) || D6.default.isRegularExpressionLiteral(e3) || D6.default.isNoSubstitutionTemplateLiteral(e3); - } - function Zq(e3) { - return ub(e3) || lb(e3); - } - function ez(e3) { - return D6.default.isIdentifier(e3) || D6.default.isStringLiteral(e3); - } - function tz(e3) { - return D6.default.isEntityName(e3) || D6.default.isExternalModuleReference(e3); - } - function rz(e3) { - return D6.default.isNamespaceImport(e3) || D6.default.isNamedImports(e3); - } - function nz(e3) { - return D6.default.isNamedImports(e3) || D6.default.isNamedExports(e3); - } - function ub(e3) { - return D6.default.isModuleBlock(e3) || Bw(e3); - } - function iz(e3) { - return D6.default.isBindingElement(e3) || D6.default.isPropertyAssignment(e3) || D6.default.isShorthandPropertyAssignment(e3) || D6.default.isSpreadAssignment(e3); - } - function Lw(e3) { - return D6.default.isObjectBindingPattern(e3) || D6.default.isObjectLiteralExpression(e3); - } - function az(e3) { - return Vm(e3) || D6.default.isInterfaceDeclaration(e3) || D6.default.isTypeLiteralNode(e3); - } - function oz(e3) { - return sb(e3) || ab(e3); - } - function sz(e3) { - return D6.default.isIdentifier(e3) || D6.default.isStringLiteralLike(e3) || D6.default.isNumericLiteral(e3); - } - function _z(e3) { - return D6.default.isTemplateHead(e3) || D6.default.isTemplateMiddle(e3) || D6.default.isTemplateTail(e3); - } - function pb(e3) { - return D6.default.isCallSignatureDeclaration(e3) || D6.default.isConstructSignatureDeclaration(e3) || D6.default.isMethodSignature(e3) || D6.default.isIndexSignatureDeclaration(e3) || D6.default.isFunctionTypeNode(e3) || D6.default.isConstructorTypeNode(e3) || D6.default.isJSDocFunctionType(e3) || D6.default.isFunctionDeclaration(e3) || D6.default.isMethodDeclaration(e3) || D6.default.isConstructorDeclaration(e3) || _b(e3) || D6.default.isFunctionExpression(e3) || D6.default.isArrowFunction(e3); - } - function cz(e3) { - return Ww(e3) || zw(e3); - } - function lz(e3) { - return !!(D6.default.isImportClause(e3) || D6.default.isImportEqualsDeclaration(e3) || D6.default.isNamespaceImport(e3) || D6.default.isImportOrExportSpecifier(e3) || fu3(5, 0) && (D6.default.isExportDeclaration(e3) || D6.default.isNamespaceExport(e3))); - } - function uz(e3) { - return D6.default.isTypeReferenceNode(e3) || D6.default.isExpressionWithTypeArguments(e3); - } - function pz(e3) { - return D6.default.isUnionTypeNode(e3) || D6.default.isIntersectionTypeNode(e3); - } - function fz(e3) { - return D6.default.isUnparsedPrepend(e3) || D6.default.isUnparsedTextLike(e3); - } - function dz(e3) { - return D6.default.isVariableDeclaration(e3) || D6.default.isParameter(e3) || D6.default.isBindingElement(e3) || D6.default.isPropertyDeclaration(e3) || D6.default.isPropertyAssignment(e3) || D6.default.isPropertySignature(e3) || D6.default.isJsxAttribute(e3) || D6.default.isShorthandPropertyAssignment(e3) || D6.default.isEnumMember(e3) || D6.default.isJSDocPropertyTag(e3) || D6.default.isJSDocParameterTag(e3); - } - function Jw(e3) { - return pr6.default.isTypeReferenceNode(e3.type) && pr6.default.isIdentifier(e3.type.typeName) && e3.type.typeName.escapedText === "const"; - } - function mz(e3) { - switch (e3.kind) { - case pr6.default.SyntaxKind.DoStatement: - case pr6.default.SyntaxKind.ForInStatement: - case pr6.default.SyntaxKind.ForOfStatement: - case pr6.default.SyntaxKind.ForStatement: - case pr6.default.SyntaxKind.WhileStatement: - return true; - default: - return false; - } - } - function Rw(e3) { - return pr6.default.isModuleDeclaration(e3) && pr6.default.isIdentifier(e3.name) && (e3.body === void 0 || lb(e3.body)); - } - function jw(e3) { - return pr6.default.isPropertyAccessExpression(e3) && Mw(e3.expression); - } - function Fw(e3) { - return "name" in e3 && e3.name !== void 0 && e3.name !== null && Iw(e3.name); - } - function Bw(e3) { - return pr6.default.isModuleDeclaration(e3) && pr6.default.isIdentifier(e3.name) && e3.body !== void 0 && ub(e3.body); - } - function Uw(e3) { - switch (e3.kind) { - case pr6.default.SyntaxKind.StringLiteral: - case pr6.default.SyntaxKind.NumericLiteral: - case pr6.default.SyntaxKind.NoSubstitutionTemplateLiteral: - return true; - default: - return false; - } - } - function qw(e3) { - return pr6.default.isPropertyAccessExpression(e3) && pr6.default.isIdentifier(e3.name) && hu4(e3.expression); - } - function zw(e3) { - return pr6.default.isElementAccessExpression(e3) && ob(e3.expression); - } - function Ww(e3) { - return pr6.default.isPropertyAccessExpression(e3) && ob(e3.expression); - } - var vr6 = Pr7(Dt8(), 1); - function hz(e3) { - switch (e3.kind) { - case vr6.default.SyntaxKind.FunctionExpression: - case vr6.default.SyntaxKind.ArrowFunction: - case vr6.default.SyntaxKind.Constructor: - case vr6.default.SyntaxKind.ModuleDeclaration: - case vr6.default.SyntaxKind.ClassDeclaration: - case vr6.default.SyntaxKind.ClassExpression: - case vr6.default.SyntaxKind.EnumDeclaration: - case vr6.default.SyntaxKind.MethodDeclaration: - case vr6.default.SyntaxKind.FunctionDeclaration: - case vr6.default.SyntaxKind.GetAccessor: - case vr6.default.SyntaxKind.SetAccessor: - case vr6.default.SyntaxKind.MethodSignature: - case vr6.default.SyntaxKind.CallSignature: - case vr6.default.SyntaxKind.ConstructSignature: - case vr6.default.SyntaxKind.ConstructorType: - case vr6.default.SyntaxKind.FunctionType: - return true; - case vr6.default.SyntaxKind.SourceFile: - return vr6.default.isExternalModule(e3); - default: - return false; - } - } - var pu4 = Pr7(Dt8(), 1); - function yz(e3) { - return e3 >= pu4.default.SyntaxKind.FirstAssignment && e3 <= pu4.default.SyntaxKind.LastAssignment; - } - function Vw(e3) { - return String(+e3) === e3; - } - function cw(e3) { - return e3 >= 65536 ? 2 : 1; - } - function gz(e3, t12 = pu4.default.ScriptTarget.Latest) { - if (e3.length === 0) - return false; - let r3 = e3.codePointAt(0); - if (!pu4.default.isIdentifierStart(r3, t12)) - return false; - for (let a = cw(r3); a < e3.length; a += cw(r3)) - if (r3 = e3.codePointAt(a), !pu4.default.isIdentifierPart(r3, t12)) - return false; - return true; - } - var bz = Pr7(Dt8(), 1), Pt9 = Pr7(Dt8(), 1); - function vz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Any); - } - function Tz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Boolean); - } - function Sz(e3) { - return tt9(e3, Pt9.default.TypeFlags.BigInt); - } - function xz(e3) { - return fb(e3) && e3.intrinsicName === "error"; - } - function wz(e3) { - return tt9(e3, Pt9.default.TypeFlags.ESSymbol); - } - var Cz = Pt9.default.TypeFlags.Intrinsic ?? Pt9.default.TypeFlags.Any | Pt9.default.TypeFlags.Unknown | Pt9.default.TypeFlags.String | Pt9.default.TypeFlags.Number | Pt9.default.TypeFlags.BigInt | Pt9.default.TypeFlags.Boolean | Pt9.default.TypeFlags.BooleanLiteral | Pt9.default.TypeFlags.ESSymbol | Pt9.default.TypeFlags.Void | Pt9.default.TypeFlags.Undefined | Pt9.default.TypeFlags.Null | Pt9.default.TypeFlags.Never | Pt9.default.TypeFlags.NonPrimitive; - function fb(e3) { - return tt9(e3, Cz); - } - function Ez(e3) { - return tt9(e3, Pt9.default.TypeFlags.Never); - } - function Az(e3) { - return tt9(e3, Pt9.default.TypeFlags.NonPrimitive); - } - function kz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Null); - } - function Dz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Number); - } - function Pz(e3) { - return tt9(e3, Pt9.default.TypeFlags.String); - } - function Iz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Undefined); - } - function Nz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Unknown); - } - function Oz(e3) { - return tt9(e3, Pt9.default.TypeFlags.Void); - } - var db = Pr7(Dt8(), 1), en6 = Pr7(Dt8(), 1); - function Mz(e3) { - return tt9(e3, en6.default.TypeFlags.Conditional); - } - function Lz(e3) { - return tt9(e3, en6.default.TypeFlags.Enum); - } - function Hw(e3) { - return tt9(e3, en6.default.TypeFlags.Freshable); - } - function Jz(e3) { - return tt9(e3, en6.default.TypeFlags.Index); - } - function Rz(e3) { - return tt9(e3, en6.default.TypeFlags.IndexedAccess); - } - function jz(e3) { - return tt9(e3, en6.default.TypeFlags.Instantiable); - } - function Hm(e3) { - return tt9(e3, en6.default.TypeFlags.Intersection); - } - function yu3(e3) { - return tt9(e3, en6.default.TypeFlags.Object); - } - function Fz(e3) { - return tt9(e3, en6.default.TypeFlags.StringMapping); - } - function Bz(e3) { - return tt9(e3, en6.default.TypeFlags.Substitution); - } - function Uz(e3) { - return tt9(e3, en6.default.TypeFlags.TypeParameter); - } - function qz(e3) { - return tt9(e3, en6.default.TypeFlags.TypeVariable); - } - function mb(e3) { - return tt9(e3, en6.default.TypeFlags.Union); - } - function zz(e3) { - return tt9(e3, en6.default.TypeFlags.UnionOrIntersection); - } - function Gw(e3) { - return tt9(e3, en6.default.TypeFlags.UniqueESSymbol); - } - function Wz(e3) { - return yu3(e3) && mu3(e3, db.default.ObjectFlags.EvolvingArray); - } - function Xw(e3) { - return yu3(e3) && mu3(e3, db.default.ObjectFlags.Tuple); - } - function $w(e3) { - return yu3(e3) && mu3(e3, db.default.ObjectFlags.Reference); - } - function Vz(e3) { - return fb(e3) && Hw(e3); - } - function Qw(e3) { - return $w(e3) && Xw(e3.target); - } - var us6 = Pr7(Dt8(), 1); - function hb(e3) { - return tt9(e3, us6.default.TypeFlags.BooleanLiteral); - } - function Hz(e3) { - return tt9(e3, us6.default.TypeFlags.BigIntLiteral); - } - function yb(e3) { - return hb(e3) && e3.intrinsicName === "false"; - } - function Gz(e3) { - return tt9(e3, us6.default.TypeFlags.Literal); - } - function Xz(e3) { - return tt9(e3, us6.default.TypeFlags.NumberLiteral); - } - function $z(e3) { - return tt9(e3, us6.default.TypeFlags.StringLiteral); - } - function Qz(e3) { - return tt9(e3, us6.default.TypeFlags.TemplateLiteral); - } - function Yz(e3) { - return hb(e3) && e3.intrinsicName === "true"; - } - function Kz(e3) { - return tt9(e3, us6.default.TypeFlags.Literal); - } - function tb(e3) { - if (mb(e3)) { - let t12 = []; - for (let r3 of e3.types) - t12.push(...tb(r3)); - return t12; - } - if (Hm(e3)) { - let t12; - for (let r3 of e3.types) { - let a = tb(r3); - if (a.length !== 0) { - if (t12 !== void 0) - return []; - t12 = a; - } - } - return t12 === void 0 ? [] : t12; - } - return e3.getCallSignatures(); - } - function gb(e3, t12) { - return t12.startsWith("__") ? e3.getProperties().find((r3) => r3.escapedName === t12) : e3.getProperty(t12); - } - function Zz(e3, t12, r3) { - let a = "__@" + t12; - for (let _6 of e3.getProperties()) { - if (!_6.name.startsWith(a)) - continue; - let p4 = _6.valueDeclaration ?? _6.getDeclarations()[0]; - if (!Fw(p4) || p4.name === void 0 || !bz.default.isComputedPropertyName(p4.name)) - continue; - let d5 = r3.getApparentType(r3.getTypeAtLocation(p4.name.expression)).symbol; - if (_6.escapedName === eW2(r3, d5, t12)) - return _6; - } - } - function eW2(e3, t12, r3) { - let a = t12 && e3.getTypeOfSymbolAtLocation(t12, t12.valueDeclaration).getProperty(r3), _6 = a && e3.getTypeOfSymbolAtLocation(a, a.valueDeclaration); - return _6 && Gw(_6) ? _6.escapedName : "__@" + r3; - } - var ur8 = Pr7(Dt8(), 1), gn7 = Pr7(Dt8(), 1); - function tW2(e3) { - return e3.arguments.length === 3 && hu4(e3.arguments[0]) && Uw(e3.arguments[1]) && gn7.default.isPropertyAccessExpression(e3.expression) && e3.expression.name.escapedText === "defineProperty" && gn7.default.isIdentifier(e3.expression.expression) && e3.expression.expression.escapedText === "Object"; - } - function rW2(e3) { - let t12 = e3; - for (; ; ) { - let r3 = t12.parent; - e: - switch (r3.kind) { - case gn7.default.SyntaxKind.TypeAssertionExpression: - case gn7.default.SyntaxKind.AsExpression: - return Jw(r3); - case gn7.default.SyntaxKind.PrefixUnaryExpression: - if (t12.kind !== gn7.default.SyntaxKind.NumericLiteral) - return false; - switch (r3.operator) { - case gn7.default.SyntaxKind.PlusToken: - case gn7.default.SyntaxKind.MinusToken: - t12 = r3; - break e; - default: - return false; - } - case gn7.default.SyntaxKind.PropertyAssignment: - if (r3.initializer !== t12) - return false; - t12 = r3.parent; - break; - case gn7.default.SyntaxKind.ShorthandPropertyAssignment: - t12 = r3.parent; - break; - case gn7.default.SyntaxKind.ParenthesizedExpression: - case gn7.default.SyntaxKind.ArrayLiteralExpression: - case gn7.default.SyntaxKind.ObjectLiteralExpression: - case gn7.default.SyntaxKind.TemplateExpression: - t12 = r3; - break; - default: - return false; - } - } - } - function nW2(e3) { - return tt9(e3, ur8.default.TypeFlags.Undefined | ur8.default.TypeFlags.Null | ur8.default.TypeFlags.Void) ? true : e3.isLiteral() ? !e3.value : yb(e3); - } - function iW2(e3) { - return Hm(e3) ? e3.types : [e3]; - } - function aW(e3, t12, r3) { - return (Hm(e3) ? e3.types : [e3]).some((_6) => { - let p4 = gb(_6, t12); - if (p4 === void 0) - return false; - if (p4.flags & ur8.default.SymbolFlags.Transient) { - if (/^(?:[1-9]\d*|0)$/.test(t12) && Qw(_6)) - return _6.target.readonly; - switch (oW(_6, t12, r3)) { - case true: - return true; - case false: - return false; - default: - } - } - return !!(mw(p4, ur8.default.SymbolFlags.ValueModule) || Kw(p4, r3)); - }); - } - function oW(e3, t12, r3) { - if (!yu3(e3) || !mu3(e3, ur8.default.ObjectFlags.Mapped)) - return; - let a = e3.symbol.declarations[0]; - if (a.readonlyToken !== void 0 && !/^__@[^@]+$/.test(t12)) - return a.readonlyToken.kind !== ur8.default.SyntaxKind.MinusToken; - let { modifiersType: _6 } = e3; - return _6 && Yw(_6, t12, r3); - } - function sW(e3, t12, r3) { - let a = e3.getApparentType(e3.getTypeOfSymbolAtLocation(t12, r3)); - if (t12.valueDeclaration.dotDotDotToken && (a = a.getNumberIndexType(), a === void 0)) - return false; - for (let _6 of du3(a)) - if (_6.getCallSignatures().length !== 0) - return true; - return false; - } - function Yw(e3, t12, r3) { - let a = false, _6 = false; - for (let p4 of du3(e3)) - if (gb(p4, t12) === void 0) { - let d5 = (Vw(t12) ? r3.getIndexInfoOfType(p4, ur8.default.IndexKind.Number) : void 0) ?? r3.getIndexInfoOfType(p4, ur8.default.IndexKind.String); - if (d5 != null && d5.isReadonly) { - if (a) - return true; - _6 = true; - } - } else { - if (_6 || aW(p4, t12, r3)) - return true; - a = true; - } - return false; - } - function _W(e3, t12) { - if (!tW2(e3)) - return false; - let r3 = t12.getTypeAtLocation(e3.arguments[2]); - if (r3.getProperty("value") === void 0) - return r3.getProperty("set") === void 0; - let a = r3.getProperty("writable"); - if (a === void 0) - return false; - let _6 = a.valueDeclaration !== void 0 && ur8.default.isPropertyAssignment(a.valueDeclaration) ? t12.getTypeAtLocation(a.valueDeclaration.initializer) : t12.getTypeOfSymbolAtLocation(a, e3.arguments[2]); - return yb(_6); - } - function cW(e3, t12, r3 = e3.getTypeAtLocation(t12)) { - for (let a of du3(e3.getApparentType(r3))) { - let _6 = a.getProperty("then"); - if (_6 === void 0) - continue; - let p4 = e3.getTypeOfSymbolAtLocation(_6, t12); - for (let d5 of du3(p4)) - for (let h4 of d5.getCallSignatures()) - if (h4.parameters.length !== 0 && sW(e3, h4.parameters[0], t12)) - return true; - } - return false; - } - function Kw(e3, t12) { - var r3; - return !!((e3.flags & ur8.default.SymbolFlags.Accessor) === ur8.default.SymbolFlags.GetAccessor || (r3 = e3.declarations) != null && r3.some((a) => fw(a, ur8.default.ModifierFlags.Readonly) || ur8.default.isVariableDeclaration(a) && dw(a.parent, ur8.default.NodeFlags.Const) || ur8.default.isCallExpression(a) && _W(a, t12) || ur8.default.isEnumMember(a) || (ur8.default.isPropertyAssignment(a) || ur8.default.isShorthandPropertyAssignment(a)) && rW2(a.parent))); - } - function du3(e3) { - return mb(e3) ? e3.types : [e3]; - } - }); - i9 = ut4((ea4) => { - "use strict"; - var lW = ea4 && ea4.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), uW2 = ea4 && ea4.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), n92 = ea4 && ea4.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && lW(t12, e3, r3); - return uW2(t12, e3), t12; - }; - Object.defineProperty(ea4, "__esModule", { value: true }); - ea4.convertComments = void 0; - var pW = n92(e9()), t92 = n92(Dt8()), fW = zm(), r9 = Bm(); - function dW(e3, t12) { - let r3 = []; - return pW.forEachComment(e3, (a, _6) => { - let p4 = _6.kind === t92.SyntaxKind.SingleLineCommentTrivia ? r9.AST_TOKEN_TYPES.Line : r9.AST_TOKEN_TYPES.Block, d5 = [_6.pos, _6.end], h4 = (0, fW.getLocFor)(d5, e3), l = d5[0] + 2, v7 = _6.kind === t92.SyntaxKind.SingleLineCommentTrivia ? d5[1] - l : d5[1] - l - 2; - r3.push({ type: p4, value: t12.slice(l, l + v7), range: d5, loc: h4 }); - }, e3), r3; - } - ea4.convertComments = dW; - }); - o9 = ut4((Gm) => { - "use strict"; - Object.defineProperty(Gm, "__esModule", { value: true }); - Gm.astConverter = void 0; - var a9 = Z62(), mW = i9(), hW = zm(), yW = {}; - function gW(e3, t12, r3) { - let { parseDiagnostics: a } = e3; - if (a.length) - throw (0, a9.convertError)(a[0]); - let _6 = new a9.Converter(e3, { allowInvalidAST: t12.allowInvalidAST, errorOnUnknownASTType: t12.errorOnUnknownASTType, shouldPreserveNodeMaps: r3, suppressDeprecatedPropertyWarnings: t12.suppressDeprecatedPropertyWarnings }), p4 = _6.convertProgram(); - (!t12.range || !t12.loc) && (0, yW.simpleTraverse)(p4, { enter: (h4) => { - t12.range || delete h4.range, t12.loc || delete h4.loc; - } }), t12.tokens && (p4.tokens = (0, hW.convertTokens)(e3)), t12.comment && (p4.comments = (0, mW.convertComments)(e3, t12.codeFullText)); - let d5 = _6.getASTMaps(); - return { estree: p4, astMaps: d5 }; - } - Gm.astConverter = gW; - }); - bb = ut4((si8) => { - "use strict"; - var bW = si8 && si8.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), vW = si8 && si8.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), TW = si8 && si8.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && bW(t12, e3, r3); - return vW(t12, e3), t12; - }; - Object.defineProperty(si8, "__esModule", { value: true }); - si8.getCodeText = si8.isSourceFile = void 0; - var SW = TW(Dt8()); - function s9(e3) { - if (typeof e3 != "object" || e3 == null) - return false; - let t12 = e3; - return t12.kind === SW.SyntaxKind.SourceFile && typeof t12.getFullText == "function"; - } - si8.isSourceFile = s9; - function xW2(e3) { - return s9(e3) ? e3.getFullText(e3) : e3; - } - si8.getCodeText = xW2; - }); - _9 = ut4((bn5) => { - "use strict"; - var wW = bn5 && bn5.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), CW = bn5 && bn5.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), EW = bn5 && bn5.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && wW(t12, e3, r3); - return CW(t12, e3), t12; - }, AW = bn5 && bn5.__importDefault || function(e3) { - return e3 && e3.__esModule ? e3 : { default: e3 }; - }; - Object.defineProperty(bn5, "__esModule", { value: true }); - bn5.getLanguageVariant = bn5.getScriptKind = void 0; - var kW = AW({ extname: (e3) => "." + e3.split(".").pop() }), Ht3 = EW(Dt8()); - function DW(e3, t12) { - switch (kW.default.extname(e3).toLowerCase()) { - case Ht3.Extension.Js: - case Ht3.Extension.Cjs: - case Ht3.Extension.Mjs: - return Ht3.ScriptKind.JS; - case Ht3.Extension.Jsx: - return Ht3.ScriptKind.JSX; - case Ht3.Extension.Ts: - case Ht3.Extension.Cts: - case Ht3.Extension.Mts: - return Ht3.ScriptKind.TS; - case Ht3.Extension.Tsx: - return Ht3.ScriptKind.TSX; - case Ht3.Extension.Json: - return Ht3.ScriptKind.JSON; - default: - return t12 ? Ht3.ScriptKind.TSX : Ht3.ScriptKind.TS; - } - } - bn5.getScriptKind = DW; - function PW(e3) { - switch (e3) { - case Ht3.ScriptKind.TSX: - case Ht3.ScriptKind.JSX: - case Ht3.ScriptKind.JS: - case Ht3.ScriptKind.JSON: - return Ht3.LanguageVariant.JSX; - default: - return Ht3.LanguageVariant.Standard; - } - } - bn5.getLanguageVariant = PW; - }); - u9 = ut4((vn5) => { - "use strict"; - var IW = vn5 && vn5.__createBinding || (Object.create ? function(e3, t12, r3, a) { - a === void 0 && (a = r3); - var _6 = Object.getOwnPropertyDescriptor(t12, r3); - (!_6 || ("get" in _6 ? !t12.__esModule : _6.writable || _6.configurable)) && (_6 = { enumerable: true, get: function() { - return t12[r3]; - } }), Object.defineProperty(e3, a, _6); - } : function(e3, t12, r3, a) { - a === void 0 && (a = r3), e3[a] = t12[r3]; - }), NW = vn5 && vn5.__setModuleDefault || (Object.create ? function(e3, t12) { - Object.defineProperty(e3, "default", { enumerable: true, value: t12 }); - } : function(e3, t12) { - e3.default = t12; - }), OW = vn5 && vn5.__importStar || function(e3) { - if (e3 && e3.__esModule) - return e3; - var t12 = {}; - if (e3 != null) - for (var r3 in e3) - r3 !== "default" && Object.prototype.hasOwnProperty.call(e3, r3) && IW(t12, e3, r3); - return NW(t12, e3), t12; - }, MW = vn5 && vn5.__importDefault || function(e3) { - return e3 && e3.__esModule ? e3 : { default: e3 }; - }; - Object.defineProperty(vn5, "__esModule", { value: true }); - vn5.createNoProgram = vn5.createSourceFile = void 0; - var LW = MW((Cf(), Hh(wf))), c9 = OW(Dt8()), JW = bb(), RW = _9(), jW = (0, LW.default)("typescript-eslint:typescript-estree:createSourceFile"); - function l9(e3) { - return jW("Getting AST without type information in %s mode for: %s", e3.jsx ? "TSX" : "TS", e3.filePath), (0, JW.isSourceFile)(e3.code) ? e3.code : c9.createSourceFile(e3.filePath, e3.codeFullText, c9.ScriptTarget.Latest, true, (0, RW.getScriptKind)(e3.filePath, e3.jsx)); - } - vn5.createSourceFile = l9; - function FW(e3) { - return { ast: l9(e3), program: null }; - } - vn5.createNoProgram = FW; - }); - p9 = ut4(() => { - }); - f9 = ut4((Xm) => { - "use strict"; - Object.defineProperty(Xm, "__esModule", { value: true }); - Xm.createParserServices = void 0; - function BW(e3, t12) { - if (!t12) - return { program: t12, ...e3 }; - let r3 = t12.getTypeChecker(); - return { program: t12, ...e3, getSymbolAtLocation: (a) => r3.getSymbolAtLocation(e3.esTreeNodeToTSNodeMap.get(a)), getTypeAtLocation: (a) => r3.getTypeAtLocation(e3.esTreeNodeToTSNodeMap.get(a)) }; - } - Xm.createParserServices = BW; - }); - d9 = ut4(() => { - }); - h9 = ut4((m9) => { - m9.ExpiringCache = class { - }; - }); - g9 = ut4((y9) => { - y9.resolveProjectList = () => []; - }); - v9 = ut4((b9) => { - b9.inferSingleRun = () => false; - }); - S9 = ut4((T9) => { - T9.warnAboutTSVersion = () => { - }; - }); - C9 = ut4((ta4) => { - "use strict"; - var UW = ta4 && ta4.__importDefault || function(e3) { - return e3 && e3.__esModule ? e3 : { default: e3 }; - }; - Object.defineProperty(ta4, "__esModule", { value: true }); - ta4.clearTSServerProjectService = ta4.clearTSConfigMatchCache = ta4.createParseSettings = void 0; - var vb = UW((Cf(), Hh(wf))), qW = d9(), zW = { ensureAbsolutePath: (e3) => e3 }, WW = bb(), x9 = h9(), UH = g9(), VW = v9(), HW = S9(), GW = (0, vb.default)("typescript-eslint:typescript-estree:parser:parseSettings:createParseSettings"), $m2, w9 = null; - function XW(e3, t12 = {}) { - var d5; - let r3 = YW(e3), a = (0, VW.inferSingleRun)(t12), _6 = typeof t12.tsconfigRootDir == "string" ? t12.tsconfigRootDir : "/prettier-security-dirname-placeholder", p4 = { allowInvalidAST: t12.allowInvalidAST === true, code: e3, codeFullText: r3, comment: t12.comment === true, comments: [], DEPRECATED__createDefaultProgram: t12.DEPRECATED__createDefaultProgram === true, debugLevel: t12.debugLevel === true ? /* @__PURE__ */ new Set(["typescript-eslint"]) : Array.isArray(t12.debugLevel) ? new Set(t12.debugLevel) : /* @__PURE__ */ new Set(), errorOnTypeScriptSyntacticAndSemanticIssues: false, errorOnUnknownASTType: t12.errorOnUnknownASTType === true, EXPERIMENTAL_projectService: t12.EXPERIMENTAL_useProjectService === true ? w9 ?? (w9 = (0, qW.createProjectService)()) : void 0, EXPERIMENTAL_useSourceOfProjectReferenceRedirect: t12.EXPERIMENTAL_useSourceOfProjectReferenceRedirect === true, extraFileExtensions: Array.isArray(t12.extraFileExtensions) && t12.extraFileExtensions.every((h4) => typeof h4 == "string") ? t12.extraFileExtensions : [], filePath: (0, zW.ensureAbsolutePath)(typeof t12.filePath == "string" && t12.filePath !== "" ? t12.filePath : KW(t12.jsx), _6), jsx: t12.jsx === true, loc: t12.loc === true, log: typeof t12.loggerFn == "function" ? t12.loggerFn : t12.loggerFn === false ? () => { - } : console.log, preserveNodeMaps: t12.preserveNodeMaps !== false, programs: Array.isArray(t12.programs) ? t12.programs : null, projects: [], range: t12.range === true, singleRun: a, suppressDeprecatedPropertyWarnings: t12.suppressDeprecatedPropertyWarnings ?? true, tokens: t12.tokens === true ? [] : null, tsconfigMatchCache: $m2 ?? ($m2 = new x9.ExpiringCache(a ? "Infinity" : ((d5 = t12.cacheLifetime) == null ? void 0 : d5.glob) ?? x9.DEFAULT_TSCONFIG_CACHE_DURATION_SECONDS)), tsconfigRootDir: _6 }; - if (p4.debugLevel.size > 0) { - let h4 = []; - p4.debugLevel.has("typescript-eslint") && h4.push("typescript-eslint:*"), (p4.debugLevel.has("eslint") || vb.default.enabled("eslint:*,-eslint:code-path")) && h4.push("eslint:*,-eslint:code-path"), vb.default.enable(h4.join(",")); - } - if (Array.isArray(t12.programs)) { - if (!t12.programs.length) - throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting."); - GW("parserOptions.programs was provided, so parserOptions.project will be ignored."); - } - return !p4.programs && !p4.EXPERIMENTAL_projectService && (p4.projects = []), (0, HW.warnAboutTSVersion)(p4), p4; - } - ta4.createParseSettings = XW; - function $W() { - $m2 == null || $m2.clear(); - } - ta4.clearTSConfigMatchCache = $W; - function QW() { - w9 = null; - } - ta4.clearTSServerProjectService = QW; - function YW(e3) { - return (0, WW.isSourceFile)(e3) ? e3.getFullText(e3) : typeof e3 == "string" ? e3 : String(e3); - } - function KW(e3) { - return e3 ? "estree.tsx" : "estree.ts"; - } - }); - D9 = ut4((Qm) => { - "use strict"; - Object.defineProperty(Qm, "__esModule", { value: true }); - Qm.getFirstSemanticOrSyntacticError = void 0; - var E9 = Dt8(); - function ZW(e3, t12) { - try { - let r3 = A9(e3.getSyntacticDiagnostics(t12)); - if (r3.length > 0) - return k9(r3[0]); - let a = A9(e3.getSemanticDiagnostics(t12)); - return a.length > 0 ? k9(a[0]) : void 0; - } catch (r3) { - console.warn(`Warning From TSC: "${r3.message}`); - return; - } - } - Qm.getFirstSemanticOrSyntacticError = ZW; - function A9(e3) { - return e3.filter((t12) => { - switch (t12.code) { - case 1013: - case 1014: - case 1044: - case 1045: - case 1048: - case 1049: - case 1070: - case 1071: - case 1085: - case 1090: - case 1096: - case 1097: - case 1098: - case 1099: - case 1117: - case 1121: - case 1123: - case 1141: - case 1162: - case 1164: - case 1172: - case 1173: - case 1175: - case 1176: - case 1190: - case 1196: - case 1200: - case 1206: - case 1211: - case 1242: - case 1246: - case 1255: - case 1308: - case 2364: - case 2369: - case 2452: - case 2462: - case 8017: - case 17012: - case 17013: - return true; - } - return false; - }); - } - function k9(e3) { - return { ...e3, message: (0, E9.flattenDiagnosticMessageText)(e3.messageText, E9.sys.newLine) }; - } - }); - P9 = ut4(() => { - }); - J9 = ut4((_i6) => { - "use strict"; - var eV = _i6 && _i6.__importDefault || function(e3) { - return e3 && e3.__esModule ? e3 : { default: e3 }; - }; - Object.defineProperty(_i6, "__esModule", { value: true }); - _i6.clearParseAndGenerateServicesCalls = _i6.clearProgramCache = _i6.parseAndGenerateServices = _i6.parse = void 0; - var tV = eV((Cf(), Hh(wf))), I9 = o9(), rV = Z62(), nV = {}, N9 = {}, iV = {}, O9 = u9(), aV = p9(), M9 = {}, oV = f9(), L9 = C9(), sV = D9(), _V = P9(), cV = (0, tV.default)("typescript-eslint:typescript-estree:parser"), Tb = /* @__PURE__ */ new Map(); - function lV() { - Tb.clear(); - } - _i6.clearProgramCache = lV; - function uV(e3, t12) { - if (e3.EXPERIMENTAL_projectService) { - let a = (0, _V.useProgramFromProjectService)(e3.EXPERIMENTAL_projectService, e3); - if (a) - return a; - } - if (e3.programs) { - let a = (0, M9.useProvidedPrograms)(e3.programs, e3); - if (a) - return a; - } - if (!t12) - return (0, O9.createNoProgram)(e3); - let r3 = (0, iV.createProjectProgram)(e3, (0, aV.getWatchProgramsForProjects)(e3)); - if (r3) - return r3; - if (e3.DEPRECATED__createDefaultProgram) { - let a = (0, nV.createDefaultProgram)(e3); - if (a) - return a; - } - return (0, N9.createIsolatedProgram)(e3); - } - function pV(e3, t12) { - let { ast: r3 } = fV(e3, t12, false); - return r3; - } - _i6.parse = pV; - function fV(e3, t12, r3) { - let a = (0, L9.createParseSettings)(e3, t12); - if (t12 != null && t12.errorOnTypeScriptSyntacticAndSemanticIssues) - throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()'); - let _6 = (0, O9.createSourceFile)(a), { estree: p4, astMaps: d5 } = (0, I9.astConverter)(_6, a, r3); - return { ast: p4, esTreeNodeToTSNodeMap: d5.esTreeNodeToTSNodeMap, tsNodeToESTreeNodeMap: d5.tsNodeToESTreeNodeMap }; - } - var Ym2 = {}; - function dV() { - Ym2 = {}; - } - _i6.clearParseAndGenerateServicesCalls = dV; - function mV(e3, t12) { - var v7, y5; - let r3 = (0, L9.createParseSettings)(e3, t12); - r3.singleRun && !r3.programs && ((v7 = r3.projects) == null ? void 0 : v7.length) > 0 && (r3.programs = { *[Symbol.iterator]() { - for (let C6 of r3.projects) { - let S6 = Tb.get(C6); - if (S6) - yield S6; - else { - cV("Detected single-run/CLI usage, creating Program once ahead of time for project: %s", C6); - let k4 = (0, M9.createProgramFromConfigFile)(C6); - Tb.set(C6, k4), yield k4; - } - } - } }); - let a = r3.programs != null || ((y5 = r3.projects) == null ? void 0 : y5.length) > 0; - if (t12 !== void 0 && (typeof t12.errorOnTypeScriptSyntacticAndSemanticIssues == "boolean" && t12.errorOnTypeScriptSyntacticAndSemanticIssues && (r3.errorOnTypeScriptSyntacticAndSemanticIssues = true), r3.errorOnTypeScriptSyntacticAndSemanticIssues && !a)) - throw new Error("Cannot calculate TypeScript semantic issues without a valid project."); - r3.singleRun && t12.filePath && (Ym2[t12.filePath] = (Ym2[t12.filePath] || 0) + 1); - let { ast: _6, program: p4 } = r3.singleRun && t12.filePath && Ym2[t12.filePath] > 1 ? (0, N9.createIsolatedProgram)(r3) : uV(r3, a), d5 = typeof r3.preserveNodeMaps == "boolean" ? r3.preserveNodeMaps : true, { estree: h4, astMaps: l } = (0, I9.astConverter)(_6, r3, d5); - if (p4 && r3.errorOnTypeScriptSyntacticAndSemanticIssues) { - let C6 = (0, sV.getFirstSemanticOrSyntacticError)(p4, _6); - if (C6) - throw (0, rV.convertError)(C6); - } - return { ast: h4, services: (0, oV.createParserServices)(l, p4) }; - } - _i6.parseAndGenerateServices = mV; - }); - V9 = ut4((ps4) => { - "use strict"; - Object.defineProperty(ps4, "__esModule", { value: true }); - ps4.extract = xV; - ps4.parse = CV; - ps4.parseWithComments = W9; - ps4.print = EV; - ps4.strip = wV; - var gV = /\*\/$/, bV = /^\/\*\*?/, q9 = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/, vV = /(^|\s+)\/\/([^\r\n]*)/g, F9 = /^(\r?\n)+/, TV = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g, B9 = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g, SV = /(\r?\n|^) *\* ?/g, z9 = []; - function xV(e3) { - let t12 = e3.match(q9); - return t12 ? t12[0].trimLeft() : ""; - } - function wV(e3) { - let t12 = e3.match(q9); - return t12 && t12[0] ? e3.substring(t12[0].length) : e3; - } - function CV(e3) { - return W9(e3).pragmas; - } - function W9(e3) { - let t12 = ` -`; - e3 = e3.replace(bV, "").replace(gV, "").replace(SV, "$1"); - let r3 = ""; - for (; r3 !== e3; ) - r3 = e3, e3 = e3.replace(TV, `${t12}$1 $2${t12}`); - e3 = e3.replace(F9, "").trimRight(); - let a = /* @__PURE__ */ Object.create(null), _6 = e3.replace(B9, "").replace(F9, "").trimRight(), p4; - for (; p4 = B9.exec(e3); ) { - let d5 = p4[2].replace(vV, ""); - typeof a[p4[1]] == "string" || Array.isArray(a[p4[1]]) ? a[p4[1]] = z9.concat(a[p4[1]], d5) : a[p4[1]] = d5; - } - return { comments: _6, pragmas: a }; - } - function EV({ comments: e3 = "", pragmas: t12 = {} }) { - let r3 = ` -`, a = "/**", _6 = " *", p4 = " */", d5 = Object.keys(t12), h4 = d5.map((v7) => U9(v7, t12[v7])).reduce((v7, y5) => v7.concat(y5), []).map((v7) => `${_6} ${v7}${r3}`).join(""); - if (!e3) { - if (d5.length === 0) - return ""; - if (d5.length === 1 && !Array.isArray(t12[d5[0]])) { - let v7 = t12[d5[0]]; - return `${a} ${U9(d5[0], v7)[0]}${p4}`; - } - } - let l = e3.split(r3).map((v7) => `${_6} ${v7}`).join(r3) + r3; - return a + r3 + (e3 ? l : "") + (e3 && d5.length ? _6 + r3 : "") + h4 + p4; - } - function U9(e3, t12) { - return z9.concat(t12).map((r3) => `@${e3} ${r3}`.trim()); - } - }); - Db = {}; - Vh(Db, { parsers: () => kb }); - kb = {}; - Vh(kb, { typescript: () => HV }); - n5 = Mb(J9(), 1); - R9 = hV; - j9 = yV; - H_ = Mb(V9(), 1); - H9 = AV; - Km = DV; - X9 = PV; - $9 = IV; - NV = (e3, t12, r3) => { - if (!(e3 && t12 == null)) - return Array.isArray(t12) || typeof t12 == "string" ? t12[r3 < 0 ? t12.length + r3 : r3] : t12.at(r3); - }; - Sb = NV; - Q9 = OV; - MV = Q9(["Block", "CommentBlock", "MultiLine"]); - gu3 = MV; - Y92 = LV; - xb = JV; - bu3 = null; - RV = 10; - for (let e3 = 0; e3 <= RV; e3++) - vu5(); - K9 = jV; - Z9 = { ArrayExpression: ["elements"], AssignmentExpression: ["left", "right"], BinaryExpression: ["left", "right"], InterpreterDirective: [], Directive: ["value"], DirectiveLiteral: [], BlockStatement: ["directives", "body"], BreakStatement: ["label"], CallExpression: ["callee", "arguments", "typeParameters", "typeArguments"], CatchClause: ["param", "body"], ConditionalExpression: ["test", "consequent", "alternate"], ContinueStatement: ["label"], DebuggerStatement: [], DoWhileStatement: ["test", "body"], EmptyStatement: [], ExpressionStatement: ["expression"], File: ["program"], ForInStatement: ["left", "right", "body"], ForStatement: ["init", "test", "update", "body"], FunctionDeclaration: ["id", "params", "body", "returnType", "typeParameters", "predicate"], FunctionExpression: ["id", "params", "body", "returnType", "typeParameters"], Identifier: ["typeAnnotation", "decorators"], IfStatement: ["test", "consequent", "alternate"], LabeledStatement: ["label", "body"], StringLiteral: [], NumericLiteral: [], NullLiteral: [], BooleanLiteral: [], RegExpLiteral: [], LogicalExpression: ["left", "right"], MemberExpression: ["object", "property"], NewExpression: ["callee", "arguments", "typeParameters", "typeArguments"], Program: ["directives", "body"], ObjectExpression: ["properties"], ObjectMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], ObjectProperty: ["key", "value", "decorators"], RestElement: ["argument", "typeAnnotation", "decorators"], ReturnStatement: ["argument"], SequenceExpression: ["expressions"], ParenthesizedExpression: ["expression"], SwitchCase: ["test", "consequent"], SwitchStatement: ["discriminant", "cases"], ThisExpression: [], ThrowStatement: ["argument"], TryStatement: ["block", "handler", "finalizer"], UnaryExpression: ["argument"], UpdateExpression: ["argument"], VariableDeclaration: ["declarations"], VariableDeclarator: ["id", "init"], WhileStatement: ["test", "body"], WithStatement: ["object", "body"], AssignmentPattern: ["left", "right", "decorators", "typeAnnotation"], ArrayPattern: ["elements", "typeAnnotation", "decorators"], ArrowFunctionExpression: ["params", "body", "returnType", "typeParameters", "predicate"], ClassBody: ["body"], ClassExpression: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"], ClassDeclaration: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators", "superTypeArguments"], ExportAllDeclaration: ["source", "attributes", "assertions", "exported"], ExportDefaultDeclaration: ["declaration"], ExportNamedDeclaration: ["declaration", "specifiers", "source", "attributes", "assertions"], ExportSpecifier: ["local", "exported"], ForOfStatement: ["left", "right", "body"], ImportDeclaration: ["specifiers", "source", "attributes", "assertions"], ImportDefaultSpecifier: ["local"], ImportNamespaceSpecifier: ["local"], ImportSpecifier: ["local", "imported"], MetaProperty: ["meta", "property"], ClassMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], ObjectPattern: ["properties", "typeAnnotation", "decorators"], SpreadElement: ["argument"], Super: [], TaggedTemplateExpression: ["tag", "quasi", "typeParameters", "typeArguments"], TemplateElement: [], TemplateLiteral: ["quasis", "expressions"], YieldExpression: ["argument"], AwaitExpression: ["argument"], Import: [], BigIntLiteral: [], ExportNamespaceSpecifier: ["exported"], OptionalMemberExpression: ["object", "property"], OptionalCallExpression: ["callee", "arguments", "typeParameters", "typeArguments"], ClassProperty: ["key", "value", "typeAnnotation", "decorators", "variance"], ClassAccessorProperty: ["key", "value", "typeAnnotation", "decorators"], ClassPrivateProperty: ["key", "value", "decorators", "typeAnnotation", "variance"], ClassPrivateMethod: ["key", "params", "body", "decorators", "returnType", "typeParameters"], PrivateName: ["id"], StaticBlock: ["body"], AnyTypeAnnotation: [], ArrayTypeAnnotation: ["elementType"], BooleanTypeAnnotation: [], BooleanLiteralTypeAnnotation: [], NullLiteralTypeAnnotation: [], ClassImplements: ["id", "typeParameters"], DeclareClass: ["id", "typeParameters", "extends", "mixins", "implements", "body"], DeclareFunction: ["id", "predicate"], DeclareInterface: ["id", "typeParameters", "extends", "body"], DeclareModule: ["id", "body"], DeclareModuleExports: ["typeAnnotation"], DeclareTypeAlias: ["id", "typeParameters", "right"], DeclareOpaqueType: ["id", "typeParameters", "supertype"], DeclareVariable: ["id"], DeclareExportDeclaration: ["declaration", "specifiers", "source"], DeclareExportAllDeclaration: ["source"], DeclaredPredicate: ["value"], ExistsTypeAnnotation: [], FunctionTypeAnnotation: ["typeParameters", "params", "rest", "returnType", "this"], FunctionTypeParam: ["name", "typeAnnotation"], GenericTypeAnnotation: ["id", "typeParameters"], InferredPredicate: [], InterfaceExtends: ["id", "typeParameters"], InterfaceDeclaration: ["id", "typeParameters", "extends", "body"], InterfaceTypeAnnotation: ["extends", "body"], IntersectionTypeAnnotation: ["types"], MixedTypeAnnotation: [], EmptyTypeAnnotation: [], NullableTypeAnnotation: ["typeAnnotation"], NumberLiteralTypeAnnotation: [], NumberTypeAnnotation: [], ObjectTypeAnnotation: ["properties", "indexers", "callProperties", "internalSlots"], ObjectTypeInternalSlot: ["id", "value", "optional", "static", "method"], ObjectTypeCallProperty: ["value"], ObjectTypeIndexer: ["id", "key", "value", "variance"], ObjectTypeProperty: ["key", "value", "variance"], ObjectTypeSpreadProperty: ["argument"], OpaqueType: ["id", "typeParameters", "supertype", "impltype"], QualifiedTypeIdentifier: ["id", "qualification"], StringLiteralTypeAnnotation: [], StringTypeAnnotation: [], SymbolTypeAnnotation: [], ThisTypeAnnotation: [], TupleTypeAnnotation: ["types", "elementTypes"], TypeofTypeAnnotation: ["argument"], TypeAlias: ["id", "typeParameters", "right"], TypeAnnotation: ["typeAnnotation"], TypeCastExpression: ["expression", "typeAnnotation"], TypeParameter: ["bound", "default", "variance"], TypeParameterDeclaration: ["params"], TypeParameterInstantiation: ["params"], UnionTypeAnnotation: ["types"], Variance: [], VoidTypeAnnotation: [], EnumDeclaration: ["id", "body"], EnumBooleanBody: ["members"], EnumNumberBody: ["members"], EnumStringBody: ["members"], EnumSymbolBody: ["members"], EnumBooleanMember: ["id", "init"], EnumNumberMember: ["id", "init"], EnumStringMember: ["id", "init"], EnumDefaultedMember: ["id"], IndexedAccessType: ["objectType", "indexType"], OptionalIndexedAccessType: ["objectType", "indexType"], JSXAttribute: ["name", "value"], JSXClosingElement: ["name"], JSXElement: ["openingElement", "children", "closingElement"], JSXEmptyExpression: [], JSXExpressionContainer: ["expression"], JSXSpreadChild: ["expression"], JSXIdentifier: [], JSXMemberExpression: ["object", "property"], JSXNamespacedName: ["namespace", "name"], JSXOpeningElement: ["name", "attributes", "typeArguments", "typeParameters"], JSXSpreadAttribute: ["argument"], JSXText: [], JSXFragment: ["openingFragment", "children", "closingFragment"], JSXOpeningFragment: [], JSXClosingFragment: [], Noop: [], Placeholder: [], V8IntrinsicIdentifier: [], ArgumentPlaceholder: [], BindExpression: ["object", "callee"], ImportAttribute: ["key", "value"], Decorator: ["expression"], DoExpression: ["body"], ExportDefaultSpecifier: ["exported"], RecordExpression: ["properties"], TupleExpression: ["elements"], DecimalLiteral: [], ModuleExpression: ["body"], TopicReference: [], PipelineTopicExpression: ["expression"], PipelineBareFunction: ["callee"], PipelinePrimaryTopicReference: [], TSParameterProperty: ["parameter", "decorators"], TSDeclareFunction: ["id", "typeParameters", "params", "returnType", "body"], TSDeclareMethod: ["decorators", "key", "typeParameters", "params", "returnType"], TSQualifiedName: ["left", "right"], TSCallSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSConstructSignatureDeclaration: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSPropertySignature: ["key", "typeAnnotation"], TSMethodSignature: ["key", "typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSIndexSignature: ["parameters", "typeAnnotation"], TSAnyKeyword: [], TSBooleanKeyword: [], TSBigIntKeyword: [], TSIntrinsicKeyword: [], TSNeverKeyword: [], TSNullKeyword: [], TSNumberKeyword: [], TSObjectKeyword: [], TSStringKeyword: [], TSSymbolKeyword: [], TSUndefinedKeyword: [], TSUnknownKeyword: [], TSVoidKeyword: [], TSThisType: [], TSFunctionType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSConstructorType: ["typeParameters", "parameters", "typeAnnotation", "params", "returnType"], TSTypeReference: ["typeName", "typeParameters", "typeArguments"], TSTypePredicate: ["parameterName", "typeAnnotation"], TSTypeQuery: ["exprName", "typeParameters", "typeArguments"], TSTypeLiteral: ["members"], TSArrayType: ["elementType"], TSTupleType: ["elementTypes"], TSOptionalType: ["typeAnnotation"], TSRestType: ["typeAnnotation"], TSNamedTupleMember: ["label", "elementType"], TSUnionType: ["types"], TSIntersectionType: ["types"], TSConditionalType: ["checkType", "extendsType", "trueType", "falseType"], TSInferType: ["typeParameter"], TSParenthesizedType: ["typeAnnotation"], TSTypeOperator: ["typeAnnotation"], TSIndexedAccessType: ["objectType", "indexType"], TSMappedType: ["typeParameter", "typeAnnotation", "nameType"], TSLiteralType: ["literal"], TSExpressionWithTypeArguments: ["expression", "typeParameters"], TSInterfaceDeclaration: ["id", "typeParameters", "extends", "body"], TSInterfaceBody: ["body"], TSTypeAliasDeclaration: ["id", "typeParameters", "typeAnnotation"], TSInstantiationExpression: ["expression", "typeParameters", "typeArguments"], TSAsExpression: ["expression", "typeAnnotation"], TSSatisfiesExpression: ["expression", "typeAnnotation"], TSTypeAssertion: ["typeAnnotation", "expression"], TSEnumDeclaration: ["id", "members"], TSEnumMember: ["id", "initializer"], TSModuleDeclaration: ["id", "body"], TSModuleBlock: ["body"], TSImportType: ["argument", "qualifier", "typeParameters", "typeArguments"], TSImportEqualsDeclaration: ["id", "moduleReference"], TSExternalModuleReference: ["expression"], TSNonNullExpression: ["expression"], TSExportAssignment: ["expression"], TSNamespaceExportDeclaration: ["id"], TSTypeAnnotation: ["typeAnnotation"], TSTypeParameterInstantiation: ["params"], TSTypeParameterDeclaration: ["params"], TSTypeParameter: ["constraint", "default", "name"], ChainExpression: ["expression"], ExperimentalRestProperty: ["argument"], ExperimentalSpreadProperty: ["argument"], ImportExpression: ["source", "attributes"], Literal: [], MethodDefinition: ["decorators", "key", "value"], PrivateIdentifier: [], Property: ["key", "value"], PropertyDefinition: ["decorators", "key", "typeAnnotation", "value", "variance"], AccessorProperty: ["decorators", "key", "typeAnnotation", "value"], TSAbstractAccessorProperty: ["decorators", "key", "typeAnnotation"], TSAbstractKeyword: [], TSAbstractMethodDefinition: ["key", "value"], TSAbstractPropertyDefinition: ["decorators", "key", "typeAnnotation"], TSAsyncKeyword: [], TSClassImplements: ["expression", "typeArguments", "typeParameters"], TSDeclareKeyword: [], TSEmptyBodyFunctionExpression: ["id", "typeParameters", "params", "returnType"], TSExportKeyword: [], TSInterfaceHeritage: ["expression", "typeArguments", "typeParameters"], TSPrivateKeyword: [], TSProtectedKeyword: [], TSPublicKeyword: [], TSReadonlyKeyword: [], TSStaticKeyword: [], TSTemplateLiteralType: ["quasis", "types"], BigIntLiteralTypeAnnotation: [], BigIntTypeAnnotation: [], ConditionalTypeAnnotation: ["checkType", "extendsType", "trueType", "falseType"], DeclareEnum: ["id", "body"], InferTypeAnnotation: ["typeParameter"], KeyofTypeAnnotation: ["argument"], ObjectTypeMappedTypeProperty: ["keyTparam", "propType", "sourceType", "variance"], QualifiedTypeofIdentifier: ["qualification", "id"], TupleTypeLabeledElement: ["label", "elementType", "variance"], TupleTypeSpreadElement: ["label", "typeAnnotation"], TypePredicate: ["parameterName", "typeAnnotation", "asserts"], NGRoot: ["node"], NGPipeExpression: ["left", "right", "arguments"], NGChainedExpression: ["expressions"], NGEmptyExpression: [], NGMicrosyntax: ["body"], NGMicrosyntaxKey: [], NGMicrosyntaxExpression: ["expression", "alias"], NGMicrosyntaxKeyedExpression: ["key", "expression"], NGMicrosyntaxLet: ["key", "value"], NGMicrosyntaxAs: ["key", "alias"], JsExpressionRoot: ["node"], JsonRoot: ["node"], TSJSDocAllType: [], TSJSDocUnknownType: [], TSJSDocNullableType: ["typeAnnotation"], TSJSDocNonNullableType: ["typeAnnotation"], NeverTypeAnnotation: [], UndefinedTypeAnnotation: [], UnknownTypeAnnotation: [] }; - FV = K9(Z9); - e5 = FV; - Zm = Cb; - r5 = BV; - Ab = { loc: true, range: true, comment: true, tokens: true, loggerFn: false, project: [], suppressDeprecatedPropertyWarnings: true }; - qV = (e3) => /\.(?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$/i.test(e3); - HV = X9(WV); - UG = Db; - } -}); - -// node_modules/prettier/plugins/yaml.mjs -var yaml_exports = {}; -__export(yaml_exports, { - default: () => yh, - languages: () => bi7, - options: () => Ni6, - parsers: () => er7, - printers: () => Ja3 -}); -function Ii5(t12) { - if (typeof t12 == "string") - return je10; - if (Array.isArray(t12)) - return Qe9; - if (!t12) - return; - let { type: e3 } = t12; - if (Et8.has(e3)) - return e3; -} -function _i5(t12) { - let e3 = t12 === null ? "null" : typeof t12; - if (e3 !== "string" && e3 !== "object") - return `Unexpected doc '${e3}', -Expected it to be 'string' or 'object'.`; - if (et8(t12)) - throw new Error("doc is valid."); - let n = Object.prototype.toString.call(t12); - if (n !== "[object Object]") - return `Unexpected doc '${n}'.`; - let r3 = Pi6([...Et8].map((s3) => `'${s3}'`)); - return `Unexpected doc.type '${t12.type}'. -Expected it to be ${r3}.`; -} -function tt8(t12, e3) { - return he8(e3), { type: Oe10, contents: e3, n: t12 }; -} -function ke8(t12, e3 = {}) { - return he8(t12), St7(e3.expandedStates, true), { type: Le6, id: e3.id, contents: t12, break: !!e3.shouldBreak, expandedStates: e3.expandedStates }; -} -function on5(t12) { - return tt8(Number.NEGATIVE_INFINITY, t12); -} -function ir6(t12) { - return tt8({ type: "root" }, t12); -} -function or6(t12) { - return tt8(-1, t12); -} -function an5(t12, e3) { - return ke8(t12[0], { ...e3, expandedStates: t12 }); -} -function wt6(t12) { - return St7(t12), { type: Ae6, parts: t12 }; -} -function nt6(t12, e3 = "", n = {}) { - return he8(t12), e3 !== "" && he8(e3), { type: Te9, breakContents: t12, flatContents: e3, groupId: n.groupId }; -} -function ar5(t12) { - return he8(t12), { type: Ce9, contents: t12 }; -} -function v6(t12, e3) { - he8(t12), St7(e3); - let n = []; - for (let r3 = 0; r3 < e3.length; r3++) - r3 !== 0 && n.push(t12), n.push(e3[r3]); - return n; -} -function Yi4(t12, e3) { - if (typeof t12 == "string") - return e3(t12); - let n = /* @__PURE__ */ new Map(); - return r3(t12); - function r3(i) { - if (n.has(i)) - return n.get(i); - let o2 = s3(i); - return n.set(i, o2), o2; - } - function s3(i) { - switch (et8(i)) { - case Qe9: - return e3(i.map(r3)); - case Ae6: - return e3({ ...i, parts: i.parts.map(r3) }); - case Te9: - return e3({ ...i, breakContents: r3(i.breakContents), flatContents: r3(i.flatContents) }); - case Le6: { - let { expandedStates: o2, contents: a } = i; - return o2 ? (o2 = o2.map(r3), a = o2[0]) : a = r3(a), e3({ ...i, contents: a, expandedStates: o2 }); - } - case Oe10: - case Ge8: - case Xe8: - case Ze10: - case Ce9: - return e3({ ...i, contents: r3(i.contents) }); - case je10: - case Je9: - case He8: - case ze10: - case te8: - case Me8: - return e3(i); - default: - throw new sn6(i); - } - } -} -function cr5(t12, e3 = rt7) { - return Yi4(t12, (n) => typeof n == "string" ? v6(e3, n.split(` -`)) : n); -} -function Bi6(t12, e3, n) { - let r3 = !!(n != null && n.backwards); - if (e3 === false) - return false; - let s3 = t12.charAt(e3); - if (r3) { - if (t12.charAt(e3 - 1) === "\r" && s3 === ` -`) - return e3 - 2; - if (s3 === ` -` || s3 === "\r" || s3 === "\u2028" || s3 === "\u2029") - return e3 - 1; - } else { - if (s3 === "\r" && t12.charAt(e3 + 1) === ` -`) - return e3 + 2; - if (s3 === ` -` || s3 === "\r" || s3 === "\u2028" || s3 === "\u2029") - return e3 + 1; - } - return e3; -} -function Ot9(t12) { - return (e3, n, r3) => { - let s3 = !!(r3 != null && r3.backwards); - if (n === false) - return false; - let { length: i } = e3, o2 = n; - for (; o2 >= 0 && o2 < i; ) { - let a = e3.charAt(o2); - if (t12 instanceof RegExp) { - if (!t12.test(a)) - return o2; - } else if (!t12.includes(a)) - return o2; - s3 ? o2-- : o2++; - } - return o2 === -1 || o2 === i ? o2 : false; - }; -} -function $i4(t12, e3) { - let n = e3 - 1; - n = ln5(t12, n, { backwards: true }), n = cn5(t12, n, { backwards: true }), n = ln5(t12, n, { backwards: true }); - let r3 = cn5(t12, n, { backwards: true }); - return n !== r3; -} -function ur7(t12) { - return /^\s*@(?:prettier|format)\s*$/.test(t12); -} -function pr5(t12) { - return /^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/.test(t12); -} -function mr5(t12) { - return `# @format - -${t12}`; -} -function ve8(t12) { - return t12.position.start.offset; -} -function hr4(t12) { - return t12.position.end.offset; -} -function gr5(t12, e3) { - let { node: n } = t12; - if (n.type === "root" && e3.filepath && /(?:[/\\]|^)\.(?:prettier|stylelint|lintstaged)rc$/.test(e3.filepath)) - return async (r3) => { - let s3 = await r3(e3.originalText, { parser: "json" }); - return s3 ? [s3, N5] : void 0; - }; -} -function Fi6(t12) { - return Array.isArray(t12) && t12.length > 0; -} -function G8(t12, e3) { - return typeof (t12 == null ? void 0 : t12.type) == "string" && (!e3 || e3.includes(t12.type)); -} -function un5(t12, e3, n) { - return e3("children" in t12 ? { ...t12, children: t12.children.map((r3) => un5(r3, e3, t12)) } : t12, n); -} -function Pe9(t12, e3, n) { - Object.defineProperty(t12, e3, { get: n, enumerable: false }); -} -function Er5(t12, e3) { - let n = 0, r3 = e3.length; - for (let s3 = t12.position.end.offset - 1; s3 < r3; s3++) { - let i = e3[s3]; - if (i === ` -` && n++, n === 1 && /\S/.test(i)) - return false; - if (n === 2) - return true; - } - return false; -} -function Lt8(t12) { - let { node: e3 } = t12; - switch (e3.type) { - case "tag": - case "anchor": - case "comment": - return false; - } - let n = t12.stack.length; - for (let r3 = 1; r3 < n; r3++) { - let s3 = t12.stack[r3], i = t12.stack[r3 - 1]; - if (Array.isArray(i) && typeof s3 == "number" && s3 !== i.length - 1) - return false; - } - return true; -} -function At7(t12) { - return Ie7(t12.children) ? At7(x6(false, t12.children, -1)) : t12; -} -function yr4(t12) { - return t12.value.trim() === "prettier-ignore"; -} -function Sr6(t12) { - let { node: e3 } = t12; - if (e3.type === "documentBody") { - let n = t12.parent.head; - return R8(n) && yr4(x6(false, n.endComments, -1)); - } - return Z10(e3) && yr4(x6(false, e3.leadingComments, -1)); -} -function _e10(t12) { - return !Ie7(t12.children) && !qi5(t12); -} -function qi5(t12) { - return Z10(t12) || ie5(t12) || pn5(t12) || H8(t12) || R8(t12); -} -function Z10(t12) { - return Ie7(t12 == null ? void 0 : t12.leadingComments); -} -function ie5(t12) { - return Ie7(t12 == null ? void 0 : t12.middleComments); -} -function pn5(t12) { - return t12 == null ? void 0 : t12.indicatorComment; -} -function H8(t12) { - return t12 == null ? void 0 : t12.trailingComment; -} -function R8(t12) { - return Ie7(t12 == null ? void 0 : t12.endComments); -} -function wr6(t12) { - let e3 = [], n; - for (let r3 of t12.split(/( +)/)) - r3 !== " " ? n === " " ? e3.push(r3) : e3.push((e3.pop() || "") + r3) : n === void 0 && e3.unshift(""), n = r3; - return n === " " && e3.push((e3.pop() || "") + " "), e3[0] === "" && (e3.shift(), e3.unshift(" " + (e3.shift() || ""))), e3; -} -function br4(t12, e3, n) { - let r3 = e3.split(` -`).map((s3, i, o2) => i === 0 && i === o2.length - 1 ? s3 : i !== 0 && i !== o2.length - 1 ? s3.trim() : i === 0 ? s3.trimEnd() : s3.trimStart()); - return n.proseWrap === "preserve" ? r3.map((s3) => s3.length === 0 ? [] : [s3]) : r3.map((s3) => s3.length === 0 ? [] : wr6(s3)).reduce((s3, i, o2) => o2 !== 0 && r3[o2 - 1].length > 0 && i.length > 0 && !(t12 === "quoteDouble" && x6(false, x6(false, s3, -1), -1).endsWith("\\")) ? [...s3.slice(0, -1), [...x6(false, s3, -1), ...i]] : [...s3, i], []).map((s3) => n.proseWrap === "never" ? [s3.join(" ")] : s3); -} -function Nr6(t12, { parentIndent: e3, isLastDescendant: n, options: r3 }) { - let s3 = t12.position.start.line === t12.position.end.line ? "" : r3.originalText.slice(t12.position.start.offset, t12.position.end.offset).match(/^[^\n]*\n(.*)$/s)[1], i; - if (t12.indent === null) { - let c3 = s3.match(/^(? *)[^\n\r ]/m); - i = c3 ? c3.groups.leadingSpace.length : Number.POSITIVE_INFINITY; - } else - i = t12.indent - 1 + e3; - let o2 = s3.split(` -`).map((c3) => c3.slice(i)); - if (r3.proseWrap === "preserve" || t12.type === "blockLiteral") - return a(o2.map((c3) => c3.length === 0 ? [] : [c3])); - return a(o2.map((c3) => c3.length === 0 ? [] : wr6(c3)).reduce((c3, l, f3) => f3 !== 0 && o2[f3 - 1].length > 0 && l.length > 0 && !/^\s/.test(l[0]) && !/^\s|\s$/.test(x6(false, c3, -1)) ? [...c3.slice(0, -1), [...x6(false, c3, -1), ...l]] : [...c3, l], []).map((c3) => c3.reduce((l, f3) => l.length > 0 && /\s$/.test(x6(false, l, -1)) ? [...l.slice(0, -1), x6(false, l, -1) + " " + f3] : [...l, f3], [])).map((c3) => r3.proseWrap === "never" ? [c3.join(" ")] : c3)); - function a(c3) { - if (t12.chomping === "keep") - return x6(false, c3, -1).length === 0 ? c3.slice(0, -1) : c3; - let l = 0; - for (let f3 = c3.length - 1; f3 >= 0 && c3[f3].length === 0; f3--) - l++; - return l === 0 ? c3 : l >= 2 && !n ? c3.slice(0, -(l - 1)) : c3.slice(0, -l); - } -} -function st4(t12) { - if (!t12) - return true; - switch (t12.type) { - case "plain": - case "quoteDouble": - case "quoteSingle": - case "alias": - case "flowMapping": - case "flowSequence": - return true; - default: - return false; - } -} -function ot7(t12) { - if (it5 !== null && typeof it5.property) { - let e3 = it5; - return it5 = ot7.prototype = null, e3; - } - return it5 = ot7.prototype = t12 ?? /* @__PURE__ */ Object.create(null), new ot7(); -} -function mn5(t12) { - return ot7(t12); -} -function Ki5(t12, e3 = "type") { - mn5(t12); - function n(r3) { - let s3 = r3[e3], i = t12[s3]; - if (!Array.isArray(i)) - throw Object.assign(new Error(`Missing visitor keys for '${s3}'.`), { node: r3 }); - return i; - } - return n; -} -function ji4(t12) { - return un5(t12, Qi4); -} -function Qi4(t12) { - switch (t12.type) { - case "document": - Pe9(t12, "head", () => t12.children[0]), Pe9(t12, "body", () => t12.children[1]); - break; - case "documentBody": - case "sequenceItem": - case "flowSequenceItem": - case "mappingKey": - case "mappingValue": - Pe9(t12, "content", () => t12.children[0]); - break; - case "mappingItem": - case "flowMappingItem": - Pe9(t12, "key", () => t12.children[0]), Pe9(t12, "value", () => t12.children[1]); - break; - } - return t12; -} -function Tt5(t12, e3) { - let { node: n, root: r3 } = t12, s3; - return hn5.has(r3) ? s3 = hn5.get(r3) : (s3 = /* @__PURE__ */ new Set(), hn5.set(r3, s3)), !s3.has(n.position.end.line) && (s3.add(n.position.end.line), Er5(n, e3) && !gn6(t12.parent)) ? Nt8 : ""; -} -function gn6(t12) { - return R8(t12) && !G8(t12, ["documentHead", "documentBody", "flowMapping", "flowSequence"]); -} -function I4(t12, e3) { - return tt8(" ".repeat(t12), e3); -} -function Ct8(t12, e3, n) { - let { node: r3 } = t12, s3 = r3.type === "flowMapping", i = s3 ? "{" : "[", o2 = s3 ? "}" : "]", a = Nt8; - s3 && r3.children.length > 0 && n.bracketSpacing && (a = ne9); - let c3 = x6(false, r3.children, -1), l = (c3 == null ? void 0 : c3.type) === "flowMappingItem" && _e10(c3.key) && _e10(c3.value); - return [i, I4(n.tabWidth, [a, Ji5(t12, e3, n), n.trailingComma === "none" ? "" : nt6(","), R8(r3) ? [N5, v6(N5, t12.map(e3, "endComments"))] : ""]), l ? "" : a, o2]; -} -function Ji5(t12, e3, n) { - return t12.map(({ isLast: r3, node: s3, next: i }) => [e3(), r3 ? "" : [",", ne9, s3.position.start.line !== i.position.start.line ? Tt5(t12, n.originalText) : ""]], "children"); -} -function Gi4(t12, e3, n) { - var C6; - let { node: r3, parent: s3 } = t12, { key: i, value: o2 } = r3, a = _e10(i), c3 = _e10(o2); - if (a && c3) - return ": "; - let l = e3("key"), f3 = Hi4(r3) ? " " : ""; - if (c3) - return r3.type === "flowMappingItem" && s3.type === "flowMapping" ? l : r3.type === "mappingItem" && dn4(i.content, n) && !H8(i.content) && ((C6 = s3.tag) == null ? void 0 : C6.value) !== "tag:yaml.org,2002:set" ? [l, f3, ":"] : ["? ", I4(2, l)]; - let m3 = e3("value"); - if (a) - return [": ", I4(2, m3)]; - if (Z10(o2) || !st4(i.content)) - return ["? ", I4(2, l), N5, ...t12.map(() => [e3(), N5], "value", "leadingComments"), ": ", I4(2, m3)]; - if (Xi3(i.content) && !Z10(i.content) && !ie5(i.content) && !H8(i.content) && !R8(i) && !Z10(o2.content) && !ie5(o2.content) && !R8(o2) && dn4(o2.content, n)) - return [l, f3, ": ", m3]; - let d5 = Symbol("mappingKey"), y5 = ke8([nt6("? "), ke8(I4(2, l), { id: d5 })]), h4 = [N5, ": ", I4(2, m3)], g3 = [f3, ":"]; - Z10(o2.content) || R8(o2) && o2.content && !G8(o2.content, ["mapping", "sequence"]) || s3.type === "mapping" && H8(i.content) && st4(o2.content) || G8(o2.content, ["mapping", "sequence"]) && o2.content.tag === null && o2.content.anchor === null ? g3.push(N5) : o2.content && g3.push(ne9), g3.push(m3); - let w4 = I4(n.tabWidth, g3); - return dn4(i.content, n) && !Z10(i.content) && !ie5(i.content) && !R8(i) ? an5([[l, w4]]) : an5([[y5, nt6(h4, w4, { groupId: d5 })]]); -} -function dn4(t12, e3) { - if (!t12) - return true; - switch (t12.type) { - case "plain": - case "quoteSingle": - case "quoteDouble": - break; - case "alias": - return true; - default: - return false; - } - if (e3.proseWrap === "preserve") - return t12.position.start.line === t12.position.end.line; - if (/\\$/m.test(e3.originalText.slice(t12.position.start.offset, t12.position.end.offset))) - return false; - switch (e3.proseWrap) { - case "never": - return !t12.value.includes(` -`); - case "always": - return !/[\n ]/.test(t12.value); - default: - return false; - } -} -function Hi4(t12) { - var e3; - return ((e3 = t12.key.content) == null ? void 0 : e3.type) === "alias"; -} -function Xi3(t12) { - if (!t12) - return true; - switch (t12.type) { - case "plain": - case "quoteDouble": - case "quoteSingle": - return t12.position.start.line === t12.position.end.line; - case "alias": - return true; - default: - return false; - } -} -function zi5(t12, e3, n) { - let { node: r3 } = t12, s3 = t12.ancestors.filter((l) => l.type === "sequence" || l.type === "mapping").length, i = Lt8(t12), o2 = [r3.type === "blockFolded" ? ">" : "|"]; - r3.indent !== null && o2.push(r3.indent.toString()), r3.chomping !== "clip" && o2.push(r3.chomping === "keep" ? "+" : "-"), pn5(r3) && o2.push(" ", e3("indicatorComment")); - let a = Nr6(r3, { parentIndent: s3, isLastDescendant: i, options: n }), c3 = []; - for (let [l, f3] of a.entries()) - l === 0 && c3.push(N5), c3.push(wt6(v6(ne9, f3))), l !== a.length - 1 ? c3.push(f3.length === 0 ? N5 : ir6(rt7)) : r3.chomping === "keep" && i && c3.push(on5(f3.length === 0 ? N5 : rt7)); - return r3.indent === null ? o2.push(or6(I4(n.tabWidth, c3))) : o2.push(on5(I4(r3.indent - 1 + s3, c3))), o2; -} -function Zi6(t12, e3, n) { - let { node: r3 } = t12, s3 = []; - r3.type !== "mappingValue" && Z10(r3) && s3.push([v6(N5, t12.map(n, "leadingComments")), N5]); - let { tag: i, anchor: o2 } = r3; - i && s3.push(n("tag")), i && o2 && s3.push(" "), o2 && s3.push(n("anchor")); - let a = ""; - return G8(r3, ["mapping", "sequence", "comment", "directive", "mappingItem", "sequenceItem"]) && !Lt8(t12) && (a = Tt5(t12, e3.originalText)), (i || o2) && (G8(r3, ["sequence", "mapping"]) && !ie5(r3) ? s3.push(N5) : s3.push(" ")), ie5(r3) && s3.push([r3.middleComments.length === 1 ? "" : N5, v6(N5, t12.map(n, "middleComments")), N5]), Sr6(t12) ? s3.push(cr5(e3.originalText.slice(r3.position.start.offset, r3.position.end.offset).trimEnd())) : s3.push(ke8(eo2(t12, e3, n))), H8(r3) && !G8(r3, ["document", "documentHead"]) && s3.push(ar5([r3.type === "mappingValue" && !r3.content ? "" : " ", t12.parent.type === "mappingKey" && t12.getParentNode(2).type === "mapping" && st4(r3) ? "" : bt6, n("trailingComment")])), gn6(r3) && s3.push(I4(r3.type === "sequenceItem" ? 2 : 0, [N5, v6(N5, t12.map(({ node: c3 }) => [lr6(e3.originalText, ve8(c3)) ? N5 : "", n()], "endComments"))])), s3.push(a), s3; -} -function eo2(t12, e3, n) { - let { node: r3 } = t12; - switch (r3.type) { - case "root": { - let s3 = []; - t12.each(({ node: o2, next: a, isFirst: c3 }) => { - c3 || s3.push(N5), s3.push(n()), kr6(o2, a) ? (s3.push(N5, "..."), H8(o2) && s3.push(" ", n("trailingComment"))) : a && !H8(a.head) && s3.push(N5, "---"); - }, "children"); - let i = At7(r3); - return (!G8(i, ["blockLiteral", "blockFolded"]) || i.chomping !== "keep") && s3.push(N5), s3; - } - case "document": { - let s3 = []; - return no2(t12, e3) === "head" && ((r3.head.children.length > 0 || r3.head.endComments.length > 0) && s3.push(n("head")), H8(r3.head) ? s3.push(["---", " ", n(["head", "trailingComment"])]) : s3.push("---")), to2(r3) && s3.push(n("body")), v6(N5, s3); - } - case "documentHead": - return v6(N5, [...t12.map(n, "children"), ...t12.map(n, "endComments")]); - case "documentBody": { - let { children: s3, endComments: i } = r3, o2 = ""; - if (s3.length > 0 && i.length > 0) { - let a = At7(r3); - G8(a, ["blockFolded", "blockLiteral"]) ? a.chomping !== "keep" && (o2 = [N5, N5]) : o2 = N5; - } - return [v6(N5, t12.map(n, "children")), o2, v6(N5, t12.map(n, "endComments"))]; - } - case "directive": - return ["%", v6(" ", [r3.name, ...r3.parameters])]; - case "comment": - return ["#", r3.value]; - case "alias": - return ["*", r3.value]; - case "tag": - return e3.originalText.slice(r3.position.start.offset, r3.position.end.offset); - case "anchor": - return ["&", r3.value]; - case "plain": - return at5(r3.type, e3.originalText.slice(r3.position.start.offset, r3.position.end.offset), e3); - case "quoteDouble": - case "quoteSingle": { - let s3 = "'", i = '"', o2 = e3.originalText.slice(r3.position.start.offset + 1, r3.position.end.offset - 1); - if (r3.type === "quoteSingle" && o2.includes("\\") || r3.type === "quoteDouble" && /\\[^"]/.test(o2)) { - let c3 = r3.type === "quoteDouble" ? i : s3; - return [c3, at5(r3.type, o2, e3), c3]; - } - if (o2.includes(i)) - return [s3, at5(r3.type, r3.type === "quoteDouble" ? yt6(false, yt6(false, o2, '\\"', i), "'", s3.repeat(2)) : o2, e3), s3]; - if (o2.includes(s3)) - return [i, at5(r3.type, r3.type === "quoteSingle" ? yt6(false, o2, "''", s3) : o2, e3), i]; - let a = e3.singleQuote ? s3 : i; - return [a, at5(r3.type, o2, e3), a]; - } - case "blockFolded": - case "blockLiteral": - return Mr3(t12, n, e3); - case "mapping": - case "sequence": - return v6(N5, t12.map(n, "children")); - case "sequenceItem": - return ["- ", I4(2, r3.content ? n("content") : "")]; - case "mappingKey": - case "mappingValue": - return r3.content ? n("content") : ""; - case "mappingItem": - case "flowMappingItem": - return Cr5(t12, n, e3); - case "flowMapping": - return Ct8(t12, n, e3); - case "flowSequence": - return Ct8(t12, n, e3); - case "flowSequenceItem": - return n("content"); - default: - throw new fr5(r3, "YAML"); - } -} -function to2(t12) { - return t12.body.children.length > 0 || R8(t12.body); -} -function kr6(t12, e3) { - return H8(t12) || e3 && (e3.head.children.length > 0 || R8(e3.head)); -} -function no2(t12, e3) { - let n = t12.node; - if (t12.isFirst && /---(?:\s|$)/.test(e3.originalText.slice(ve8(n), ve8(n) + 4)) || n.head.children.length > 0 || R8(n.head) || H8(n.head)) - return "head"; - let r3 = t12.next; - return kr6(n, r3) ? false : r3 ? "root" : false; -} -function at5(t12, e3, n) { - let r3 = br4(t12, e3, n); - return v6(N5, r3.map((s3) => wt6(v6(ne9, s3)))); -} -function ro2(t12, e3) { - if (G8(e3)) - switch (delete e3.position, e3.type) { - case "comment": - if (ur7(e3.value)) - return null; - break; - case "quoteDouble": - case "quoteSingle": - e3.type = "quote"; - break; - } -} -function B7(t12, e3 = null) { - "children" in t12 && t12.children.forEach((n) => B7(n, t12)), "anchor" in t12 && t12.anchor && B7(t12.anchor, t12), "tag" in t12 && t12.tag && B7(t12.tag, t12), "leadingComments" in t12 && t12.leadingComments.forEach((n) => B7(n, t12)), "middleComments" in t12 && t12.middleComments.forEach((n) => B7(n, t12)), "indicatorComment" in t12 && t12.indicatorComment && B7(t12.indicatorComment, t12), "trailingComment" in t12 && t12.trailingComment && B7(t12.trailingComment, t12), "endComments" in t12 && t12.endComments.forEach((n) => B7(n, t12)), Object.defineProperty(t12, "_parent", { value: e3, enumerable: false }); -} -function ge5(t12) { - return `${t12.line}:${t12.column}`; -} -function _r5(t12) { - B7(t12); - let e3 = io3(t12), n = t12.children.slice(); - t12.comments.sort((r3, s3) => r3.position.start.offset - s3.position.end.offset).filter((r3) => !r3._parent).forEach((r3) => { - for (; n.length > 1 && r3.position.start.line > n[0].position.end.line; ) - n.shift(); - oo2(r3, e3, n[0]); - }); -} -function io3(t12) { - let e3 = Array.from(new Array(t12.position.end.line), () => ({})); - for (let n of t12.comments) - e3[n.position.start.line - 1].comment = n; - return xr4(e3, t12), e3; -} -function xr4(t12, e3) { - if (e3.position.start.offset !== e3.position.end.offset) { - if ("leadingComments" in e3) { - let { start: n } = e3.position, { leadingAttachableNode: r3 } = t12[n.line - 1]; - (!r3 || n.column < r3.position.start.column) && (t12[n.line - 1].leadingAttachableNode = e3); - } - if ("trailingComment" in e3 && e3.position.end.column > 1 && e3.type !== "document" && e3.type !== "documentHead") { - let { end: n } = e3.position, { trailingAttachableNode: r3 } = t12[n.line - 1]; - (!r3 || n.column >= r3.position.end.column) && (t12[n.line - 1].trailingAttachableNode = e3); - } - if (e3.type !== "root" && e3.type !== "document" && e3.type !== "documentHead" && e3.type !== "documentBody") { - let { start: n, end: r3 } = e3.position, s3 = [r3.line].concat(n.line === r3.line ? [] : n.line); - for (let i of s3) { - let o2 = t12[i - 1].trailingNode; - (!o2 || r3.column >= o2.position.end.column) && (t12[i - 1].trailingNode = e3); - } - } - "children" in e3 && e3.children.forEach((n) => { - xr4(t12, n); - }); - } -} -function oo2(t12, e3, n) { - let r3 = t12.position.start.line, { trailingAttachableNode: s3 } = e3[r3 - 1]; - if (s3) { - if (s3.trailingComment) - throw new Error(`Unexpected multiple trailing comment at ${ge5(t12.position.start)}`); - B7(t12, s3), s3.trailingComment = t12; - return; - } - for (let o2 = r3; o2 >= n.position.start.line; o2--) { - let { trailingNode: a } = e3[o2 - 1], c3; - if (a) - c3 = a; - else if (o2 !== r3 && e3[o2 - 1].comment) - c3 = e3[o2 - 1].comment._parent; - else - continue; - if ((c3.type === "sequence" || c3.type === "mapping") && (c3 = c3.children[0]), c3.type === "mappingItem") { - let [l, f3] = c3.children; - c3 = Rr6(l) ? l : f3; - } - for (; ; ) { - if (ao3(c3, t12)) { - B7(t12, c3), c3.endComments.push(t12); - return; - } - if (!c3._parent) - break; - c3 = c3._parent; - } - break; - } - for (let o2 = r3 + 1; o2 <= n.position.end.line; o2++) { - let { leadingAttachableNode: a } = e3[o2 - 1]; - if (a) { - B7(t12, a), a.leadingComments.push(t12); - return; - } - } - let i = n.children[1]; - B7(t12, i), i.endComments.push(t12); -} -function ao3(t12, e3) { - if (t12.position.start.offset < e3.position.start.offset && t12.position.end.offset > e3.position.end.offset) - switch (t12.type) { - case "flowMapping": - case "flowSequence": - return t12.children.length === 0 || e3.position.start.line > t12.children[t12.children.length - 1].position.end.line; - } - if (e3.position.end.offset < t12.position.end.offset) - return false; - switch (t12.type) { - case "sequenceItem": - return e3.position.start.column > t12.position.start.column; - case "mappingKey": - case "mappingValue": - return e3.position.start.column > t12._parent.position.start.column && (t12.children.length === 0 || t12.children.length === 1 && t12.children[0].type !== "blockFolded" && t12.children[0].type !== "blockLiteral") && (t12.type === "mappingValue" || Rr6(t12)); - default: - return false; - } -} -function Rr6(t12) { - return t12.position.start !== t12.position.end && (t12.children.length === 0 || t12.position.start.offset !== t12.children[0].position.start.offset); -} -function b4(t12, e3) { - return { type: t12, position: e3 }; -} -function Dr4(t12, e3, n) { - return { ...b4("root", t12), children: e3, comments: n }; -} -function ct6(t12) { - switch (t12.type) { - case "DOCUMENT": - for (let e3 = t12.contents.length - 1; e3 >= 0; e3--) - t12.contents[e3].type === "BLANK_LINE" ? t12.contents.splice(e3, 1) : ct6(t12.contents[e3]); - for (let e3 = t12.directives.length - 1; e3 >= 0; e3--) - t12.directives[e3].type === "BLANK_LINE" && t12.directives.splice(e3, 1); - break; - case "FLOW_MAP": - case "FLOW_SEQ": - case "MAP": - case "SEQ": - for (let e3 = t12.items.length - 1; e3 >= 0; e3--) { - let n = t12.items[e3]; - "char" in n || (n.type === "BLANK_LINE" ? t12.items.splice(e3, 1) : ct6(n)); - } - break; - case "MAP_KEY": - case "MAP_VALUE": - case "SEQ_ITEM": - t12.node && ct6(t12.node); - break; - case "ALIAS": - case "BLANK_LINE": - case "BLOCK_FOLDED": - case "BLOCK_LITERAL": - case "COMMENT": - case "DIRECTIVE": - case "PLAIN": - case "QUOTE_DOUBLE": - case "QUOTE_SINGLE": - break; - default: - throw new Error(`Unexpected node type ${JSON.stringify(t12.type)}`); - } -} -function X8() { - return { leadingComments: [] }; -} -function oe7(t12 = null) { - return { trailingComment: t12 }; -} -function $7() { - return { ...X8(), ...oe7() }; -} -function Yr6(t12, e3, n) { - return { ...b4("alias", t12), ...$7(), ...e3, value: n }; -} -function Br5(t12, e3) { - let n = t12.cstNode; - return Yr6(e3.transformRange({ origStart: n.valueRange.origStart - 1, origEnd: n.valueRange.origEnd }), e3.transformContent(t12), n.rawValue); -} -function $r3(t12) { - return { ...t12, type: "blockFolded" }; -} -function Fr4(t12, e3, n, r3, s3, i) { - return { ...b4("blockValue", t12), ...X8(), ...e3, chomping: n, indent: r3, value: s3, indicatorComment: i }; -} -function qr6(t12, e3) { - return { ...b4("anchor", t12), value: e3 }; -} -function xe8(t12, e3) { - return { ...b4("comment", t12), value: e3 }; -} -function Ur4(t12, e3, n) { - return { anchor: e3, tag: t12, middleComments: n }; -} -function Kr5(t12, e3) { - return { ...b4("tag", t12), value: e3 }; -} -function kt7(t12, e3, n = () => false) { - let r3 = t12.cstNode, s3 = [], i = null, o2 = null, a = null; - for (let c3 of r3.props) { - let l = e3.text[c3.origStart]; - switch (l) { - case ae7.Tag: - i = i || c3, o2 = Kr5(e3.transformRange(c3), t12.tag); - break; - case ae7.Anchor: - i = i || c3, a = qr6(e3.transformRange(c3), r3.anchor); - break; - case ae7.Comment: { - let f3 = xe8(e3.transformRange(c3), e3.text.slice(c3.origStart + 1, c3.origEnd)); - e3.comments.push(f3), !n(f3) && i && i.origEnd <= c3.origStart && c3.origEnd <= r3.valueRange.origStart && s3.push(f3); - break; - } - default: - throw new Error(`Unexpected leading character ${JSON.stringify(l)}`); - } - } - return Ur4(o2, a, s3); -} -function vt8(t12, e3) { - let n = t12.cstNode, r3 = 1, s3 = n.chomping === "CLIP" ? 0 : 1, o2 = n.header.origEnd - n.header.origStart - r3 - s3 !== 0, a = e3.transformRange({ origStart: n.header.origStart, origEnd: n.valueRange.origEnd }), c3 = null, l = kt7(t12, e3, (f3) => { - if (!(a.start.offset < f3.position.start.offset && f3.position.end.offset < a.end.offset)) - return false; - if (c3) - throw new Error(`Unexpected multiple indicator comments at ${ge5(f3.position.start)}`); - return c3 = f3, true; - }); - return Fr4(a, l, yn5[n.chomping], o2 ? n.blockIndent : null, n.strValue, c3); -} -function Vr5(t12, e3) { - return $r3(vt8(t12, e3)); -} -function Wr5(t12) { - return { ...t12, type: "blockLiteral" }; -} -function jr5(t12, e3) { - return Wr5(vt8(t12, e3)); -} -function Qr5(t12, e3) { - return xe8(e3.transformRange(t12.range), t12.comment); -} -function Jr5(t12, e3, n) { - return { ...b4("directive", t12), ...$7(), name: e3, parameters: n }; -} -function Re9(t12, e3) { - for (let n of t12.props) { - let r3 = e3.text[n.origStart]; - switch (r3) { - case ae7.Comment: - e3.comments.push(xe8(e3.transformRange(n), e3.text.slice(n.origStart + 1, n.origEnd))); - break; - default: - throw new Error(`Unexpected leading character ${JSON.stringify(r3)}`); - } - } -} -function Gr5(t12, e3) { - return Re9(t12, e3), Jr5(e3.transformRange(t12.range), t12.name, t12.parameters); -} -function Hr5(t12, e3, n, r3) { - return { ...b4("document", t12), ...oe7(r3), children: [e3, n] }; -} -function K6(t12, e3) { - return { start: t12, end: e3 }; -} -function En5(t12) { - return { start: t12, end: t12 }; -} -function F4(t12 = []) { - return { endComments: t12 }; -} -function Xr6(t12, e3, n) { - return { ...b4("documentBody", t12), ...F4(n), children: e3 ? [e3] : [] }; -} -function q7(t12) { - return t12[t12.length - 1]; -} -function It7(t12, e3) { - let n = t12.match(e3); - return n ? n.index : -1; -} -function zr5(t12, e3, n) { - let r3 = t12.cstNode, { comments: s3, endComments: i, documentTrailingComment: o2, documentHeadTrailingComment: a } = co4(r3, e3, n), c3 = e3.transformNode(t12.contents), { position: l, documentEndPoint: f3 } = lo2(r3, c3, e3); - return e3.comments.push(...s3, ...i), { documentBody: Xr6(l, c3, i), documentEndPoint: f3, documentTrailingComment: o2, documentHeadTrailingComment: a }; -} -function co4(t12, e3, n) { - let r3 = [], s3 = [], i = [], o2 = [], a = false; - for (let c3 = t12.contents.length - 1; c3 >= 0; c3--) { - let l = t12.contents[c3]; - if (l.type === "COMMENT") { - let f3 = e3.transformNode(l); - n && n.line === f3.position.start.line ? o2.unshift(f3) : a ? r3.unshift(f3) : f3.position.start.offset >= t12.valueRange.origEnd ? i.unshift(f3) : r3.unshift(f3); - } else - a = true; - } - if (i.length > 1) - throw new Error(`Unexpected multiple document trailing comments at ${ge5(i[1].position.start)}`); - if (o2.length > 1) - throw new Error(`Unexpected multiple documentHead trailing comments at ${ge5(o2[1].position.start)}`); - return { comments: r3, endComments: s3, documentTrailingComment: q7(i) || null, documentHeadTrailingComment: q7(o2) || null }; -} -function lo2(t12, e3, n) { - let r3 = It7(n.text.slice(t12.valueRange.origEnd), /^\.\.\./), s3 = r3 === -1 ? t12.valueRange.origEnd : Math.max(0, t12.valueRange.origEnd - 1); - n.text[s3 - 1] === "\r" && s3--; - let i = n.transformRange({ origStart: e3 !== null ? e3.position.start.offset : s3, origEnd: s3 }), o2 = r3 === -1 ? i.end : n.transformOffset(t12.valueRange.origEnd + 3); - return { position: i, documentEndPoint: o2 }; -} -function Zr6(t12, e3, n, r3) { - return { ...b4("documentHead", t12), ...F4(n), ...oe7(r3), children: e3 }; -} -function es6(t12, e3) { - let n = t12.cstNode, { directives: r3, comments: s3, endComments: i } = fo2(n, e3), { position: o2, endMarkerPoint: a } = uo3(n, r3, e3); - return e3.comments.push(...s3, ...i), { createDocumentHeadWithTrailingComment: (l) => (l && e3.comments.push(l), Zr6(o2, r3, i, l)), documentHeadEndMarkerPoint: a }; -} -function fo2(t12, e3) { - let n = [], r3 = [], s3 = [], i = false; - for (let o2 = t12.directives.length - 1; o2 >= 0; o2--) { - let a = e3.transformNode(t12.directives[o2]); - a.type === "comment" ? i ? r3.unshift(a) : s3.unshift(a) : (i = true, n.unshift(a)); - } - return { directives: n, comments: r3, endComments: s3 }; -} -function uo3(t12, e3, n) { - let r3 = It7(n.text.slice(0, t12.valueRange.origStart), /---\s*$/); - r3 > 0 && !/[\r\n]/.test(n.text[r3 - 1]) && (r3 = -1); - let s3 = r3 === -1 ? { origStart: t12.valueRange.origStart, origEnd: t12.valueRange.origStart } : { origStart: r3, origEnd: r3 + 3 }; - return e3.length !== 0 && (s3.origStart = e3[0].position.start.offset), { position: n.transformRange(s3), endMarkerPoint: r3 === -1 ? null : n.transformOffset(r3) }; -} -function ts5(t12, e3) { - let { createDocumentHeadWithTrailingComment: n, documentHeadEndMarkerPoint: r3 } = es6(t12, e3), { documentBody: s3, documentEndPoint: i, documentTrailingComment: o2, documentHeadTrailingComment: a } = zr5(t12, e3, r3), c3 = n(a); - return o2 && e3.comments.push(o2), Hr5(K6(c3.position.start, i), c3, s3, o2); -} -function Pt8(t12, e3, n) { - return { ...b4("flowCollection", t12), ...$7(), ...F4(), ...e3, children: n }; -} -function ns5(t12, e3, n) { - return { ...Pt8(t12, e3, n), type: "flowMapping" }; -} -function _t5(t12, e3, n) { - return { ...b4("flowMappingItem", t12), ...X8(), children: [e3, n] }; -} -function ce8(t12, e3) { - let n = []; - for (let r3 of t12) - r3 && "type" in r3 && r3.type === "COMMENT" ? e3.comments.push(e3.transformNode(r3)) : n.push(r3); - return n; -} -function xt7(t12) { - let [e3, n] = ["?", ":"].map((r3) => { - let s3 = t12.find((i) => "char" in i && i.char === r3); - return s3 ? { origStart: s3.origOffset, origEnd: s3.origOffset + 1 } : null; - }); - return { additionalKeyRange: e3, additionalValueRange: n }; -} -function Rt7(t12, e3) { - let n = e3; - return (r3) => t12.slice(n, n = r3); -} -function Dt9(t12) { - let e3 = [], n = Rt7(t12, 1), r3 = false; - for (let s3 = 1; s3 < t12.length - 1; s3++) { - let i = t12[s3]; - if ("char" in i && i.char === ",") { - e3.push(n(s3)), n(s3 + 1), r3 = false; - continue; - } - r3 = true; - } - return r3 && e3.push(n(t12.length - 1)), e3; -} -function Sn5(t12, e3) { - return { ...b4("mappingKey", t12), ...oe7(), ...F4(), children: e3 ? [e3] : [] }; -} -function wn4(t12, e3) { - return { ...b4("mappingValue", t12), ...$7(), ...F4(), children: e3 ? [e3] : [] }; -} -function De8(t12, e3, n, r3, s3) { - let i = e3.transformNode(t12.key), o2 = e3.transformNode(t12.value), a = i || r3 ? Sn5(e3.transformRange({ origStart: r3 ? r3.origStart : i.position.start.offset, origEnd: i ? i.position.end.offset : r3.origStart + 1 }), i) : null, c3 = o2 || s3 ? wn4(e3.transformRange({ origStart: s3 ? s3.origStart : o2.position.start.offset, origEnd: o2 ? o2.position.end.offset : s3.origStart + 1 }), o2) : null; - return n(K6(a ? a.position.start : c3.position.start, c3 ? c3.position.end : a.position.end), a || Sn5(En5(c3.position.start), null), c3 || wn4(En5(a.position.end), null)); -} -function rs5(t12, e3) { - let n = ce8(t12.cstNode.items, e3), r3 = Dt9(n), s3 = t12.items.map((a, c3) => { - let l = r3[c3], { additionalKeyRange: f3, additionalValueRange: m3 } = xt7(l); - return De8(a, e3, _t5, f3, m3); - }), i = n[0], o2 = q7(n); - return ns5(e3.transformRange({ origStart: i.origOffset, origEnd: o2.origOffset + 1 }), e3.transformContent(t12), s3); -} -function ss6(t12, e3, n) { - return { ...Pt8(t12, e3, n), type: "flowSequence" }; -} -function is6(t12, e3) { - return { ...b4("flowSequenceItem", t12), children: [e3] }; -} -function os7(t12, e3) { - let n = ce8(t12.cstNode.items, e3), r3 = Dt9(n), s3 = t12.items.map((a, c3) => { - if (a.type !== "PAIR") { - let l = e3.transformNode(a); - return is6(K6(l.position.start, l.position.end), l); - } else { - let l = r3[c3], { additionalKeyRange: f3, additionalValueRange: m3 } = xt7(l); - return De8(a, e3, _t5, f3, m3); - } - }), i = n[0], o2 = q7(n); - return ss6(e3.transformRange({ origStart: i.origOffset, origEnd: o2.origOffset + 1 }), e3.transformContent(t12), s3); -} -function as5(t12, e3, n) { - return { ...b4("mapping", t12), ...X8(), ...e3, children: n }; -} -function cs3(t12, e3, n) { - return { ...b4("mappingItem", t12), ...X8(), children: [e3, n] }; -} -function ls5(t12, e3) { - let n = t12.cstNode; - n.items.filter((o2) => o2.type === "MAP_KEY" || o2.type === "MAP_VALUE").forEach((o2) => Re9(o2, e3)); - let r3 = ce8(n.items, e3), s3 = po2(r3), i = t12.items.map((o2, a) => { - let c3 = s3[a], [l, f3] = c3[0].type === "MAP_VALUE" ? [null, c3[0].range] : [c3[0].range, c3.length === 1 ? null : c3[1].range]; - return De8(o2, e3, cs3, l, f3); - }); - return as5(K6(i[0].position.start, q7(i).position.end), e3.transformContent(t12), i); -} -function po2(t12) { - let e3 = [], n = Rt7(t12, 0), r3 = false; - for (let s3 = 0; s3 < t12.length; s3++) { - if (t12[s3].type === "MAP_VALUE") { - e3.push(n(s3 + 1)), r3 = false; - continue; - } - r3 && e3.push(n(s3)), r3 = true; - } - return r3 && e3.push(n(1 / 0)), e3; -} -function fs9(t12, e3, n) { - return { ...b4("plain", t12), ...$7(), ...e3, value: n }; -} -function us5(t12, e3, n) { - for (let r3 = e3; r3 >= 0; r3--) - if (n.test(t12[r3])) - return r3; - return -1; -} -function ps3(t12, e3) { - let n = t12.cstNode; - return fs9(e3.transformRange({ origStart: n.valueRange.origStart, origEnd: us5(e3.text, n.valueRange.origEnd - 1, /\S/) + 1 }), e3.transformContent(t12), n.strValue); -} -function ms6(t12) { - return { ...t12, type: "quoteDouble" }; -} -function hs4(t12, e3, n) { - return { ...b4("quoteValue", t12), ...e3, ...$7(), value: n }; -} -function Yt5(t12, e3) { - let n = t12.cstNode; - return hs4(e3.transformRange(n.valueRange), e3.transformContent(t12), n.strValue); -} -function gs7(t12, e3) { - return ms6(Yt5(t12, e3)); -} -function ds4(t12) { - return { ...t12, type: "quoteSingle" }; -} -function ys6(t12, e3) { - return ds4(Yt5(t12, e3)); -} -function Es5(t12, e3, n) { - return { ...b4("sequence", t12), ...X8(), ...F4(), ...e3, children: n }; -} -function Ss5(t12, e3) { - return { ...b4("sequenceItem", t12), ...$7(), ...F4(), children: e3 ? [e3] : [] }; -} -function ws6(t12, e3) { - let r3 = ce8(t12.cstNode.items, e3).map((s3, i) => { - Re9(s3, e3); - let o2 = e3.transformNode(t12.items[i]); - return Ss5(K6(e3.transformOffset(s3.valueRange.origStart), o2 === null ? e3.transformOffset(s3.valueRange.origStart + 1) : o2.position.end), o2); - }); - return Es5(K6(r3[0].position.start, q7(r3).position.end), e3.transformContent(t12), r3); -} -function bs6(t12, e3) { - if (t12 === null || t12.type === void 0 && t12.value === null) - return null; - switch (t12.type) { - case "ALIAS": - return Br5(t12, e3); - case "BLOCK_FOLDED": - return Vr5(t12, e3); - case "BLOCK_LITERAL": - return jr5(t12, e3); - case "COMMENT": - return Qr5(t12, e3); - case "DIRECTIVE": - return Gr5(t12, e3); - case "DOCUMENT": - return ts5(t12, e3); - case "FLOW_MAP": - return rs5(t12, e3); - case "FLOW_SEQ": - return os7(t12, e3); - case "MAP": - return ls5(t12, e3); - case "PLAIN": - return ps3(t12, e3); - case "QUOTE_DOUBLE": - return gs7(t12, e3); - case "QUOTE_SINGLE": - return ys6(t12, e3); - case "SEQ": - return ws6(t12, e3); - default: - throw new Error(`Unexpected node type ${t12.type}`); - } -} -function Ns7(t12, e3, n) { - let r3 = new SyntaxError(t12); - return r3.name = "YAMLSyntaxError", r3.source = e3, r3.position = n, r3; -} -function Os7(t12, e3) { - let n = t12.source.range || t12.source.valueRange; - return Ns7(t12.message, e3.text, e3.transformRange(n)); -} -function Ls6(t12, e3, n) { - return { offset: t12, line: e3, column: n }; -} -function As7(t12, e3) { - t12 < 0 ? t12 = 0 : t12 > e3.text.length && (t12 = e3.text.length); - let n = e3.locator.locationForIndex(t12); - return Ls6(t12, n.line + 1, n.column + 1); -} -function Ts7(t12, e3) { - return K6(e3.transformOffset(t12.origStart), e3.transformOffset(t12.origEnd)); -} -function Cs5(t12) { - if (!t12.setOrigRanges()) { - let e3 = (n) => { - if (mo2(n)) - return n.origStart = n.start, n.origEnd = n.end, true; - if (ho3(n)) - return n.origOffset = n.offset, true; - }; - t12.forEach((n) => bn4(n, e3)); - } -} -function bn4(t12, e3) { - if (!(!t12 || typeof t12 != "object") && e3(t12) !== true) - for (let n of Object.keys(t12)) { - if (n === "context" || n === "error") - continue; - let r3 = t12[n]; - Array.isArray(r3) ? r3.forEach((s3) => bn4(s3, e3)) : bn4(r3, e3); - } -} -function mo2(t12) { - return typeof t12.start == "number"; -} -function ho3(t12) { - return typeof t12.offset == "number"; -} -function Nn5(t12) { - if ("children" in t12) { - if (t12.children.length === 1) { - let e3 = t12.children[0]; - if (e3.type === "plain" && e3.tag === null && e3.anchor === null && e3.value === "") - return t12.children.splice(0, 1), t12; - } - t12.children.forEach(Nn5); - } - return t12; -} -function On5(t12, e3, n, r3) { - let s3 = e3(t12); - return (i) => { - r3(s3, i) && n(t12, s3 = i); - }; -} -function Ln6(t12) { - if (t12 === null || !("children" in t12)) - return; - let e3 = t12.children; - if (e3.forEach(Ln6), t12.type === "document") { - let [i, o2] = t12.children; - i.position.start.offset === i.position.end.offset ? i.position.start = i.position.end = o2.position.start : o2.position.start.offset === o2.position.end.offset && (o2.position.start = o2.position.end = i.position.end); - } - let n = On5(t12.position, go2, yo2, wo3), r3 = On5(t12.position, Eo3, So2, bo2); - "endComments" in t12 && t12.endComments.length !== 0 && (n(t12.endComments[0].position.start), r3(q7(t12.endComments).position.end)); - let s3 = e3.filter((i) => i !== null); - if (s3.length !== 0) { - let i = s3[0], o2 = q7(s3); - n(i.position.start), r3(o2.position.end), "leadingComments" in i && i.leadingComments.length !== 0 && n(i.leadingComments[0].position.start), "tag" in i && i.tag && n(i.tag.position.start), "anchor" in i && i.anchor && n(i.anchor.position.start), "trailingComment" in o2 && o2.trailingComment && r3(o2.trailingComment.position.end); - } -} -function go2(t12) { - return t12.start; -} -function yo2(t12, e3) { - t12.start = e3; -} -function Eo3(t12) { - return t12.end; -} -function So2(t12, e3) { - t12.end = e3; -} -function wo3(t12, e3) { - return e3.offset < t12.offset; -} -function bo2(t12, e3) { - return e3.offset > t12.offset; -} -function Si5(t12) { - let e3 = Ei6(t12); - Cs5(e3); - let n = e3.map((a) => new yi6({ merge: false, keepCstNodes: true }).parse(a)), r3 = new Pr6(t12), s3 = [], i = { text: t12, locator: r3, comments: s3, transformOffset: (a) => As7(a, i), transformRange: (a) => Ts7(a, i), transformNode: (a) => bs6(a, i), transformContent: (a) => kt7(a, i) }; - for (let a of n) - for (let c3 of a.errors) - if (!(c3 instanceof Zn5 && c3.message === 'Map keys must be unique; "<<" is repeated')) - throw Os7(c3, i); - n.forEach((a) => ct6(a.cstNode)); - let o2 = Dr4(i.transformRange({ origStart: 0, origEnd: i.text.length }), n.map(i.transformNode), s3); - return _r5(o2), Ln6(o2), Nn5(o2), o2; -} -function Va4(t12, e3) { - let n = new SyntaxError(t12 + " (" + e3.loc.start.line + ":" + e3.loc.start.column + ")"); - return Object.assign(n, e3); -} -function Wa4(t12) { - try { - let e3 = Si5(t12); - return delete e3.comments, e3; - } catch (e3) { - throw e3 != null && e3.position ? wi6(e3.message, { loc: e3.position, cause: e3 }) : e3; - } -} -var Li5, nn6, Ai6, Ti6, Ci6, Mi5, ee9, nr6, ki6, rr6, le9, Is5, $e8, jn5, Hn5, li6, pi7, hi7, gi6, tr7, vi7, yt6, je10, Qe9, Je9, Ge8, Oe10, He8, Le6, Ae6, Te9, Xe8, Ce9, ze10, te8, Ze10, Me8, Et8, et8, Pi6, rn6, sn6, sr6, he8, St7, bt6, xi7, Ri4, ne9, Nt8, N5, rt7, Di6, x6, cn5, Oc4, ln5, Lc4, Ac3, lr6, fn5, fr5, dr5, Ie7, it5, Ui6, Or4, Vi4, Lr6, Wi3, Ar7, Tr5, hn5, Cr5, Mr3, so2, vr5, er7, Mt7, Ir6, Pr6, ae7, yn5, di6, J6, _m, xm, Rm, Dm, Ym, Bm2, $m, qa4, Fm, Zn5, Ua3, qm, yi6, Ei6, wi6, ja3, bi7, tn6, Qa5, Ni6, Ja3, yh; -var init_yaml = __esm({ - "node_modules/prettier/plugins/yaml.mjs"() { - Li5 = Object.create; - nn6 = Object.defineProperty; - Ai6 = Object.getOwnPropertyDescriptor; - Ti6 = Object.getOwnPropertyNames; - Ci6 = Object.getPrototypeOf; - Mi5 = Object.prototype.hasOwnProperty; - ee9 = (t12, e3) => () => (e3 || t12((e3 = { exports: {} }).exports, e3), e3.exports); - nr6 = (t12, e3) => { - for (var n in e3) - nn6(t12, n, { get: e3[n], enumerable: true }); - }; - ki6 = (t12, e3, n, r3) => { - if (e3 && typeof e3 == "object" || typeof e3 == "function") - for (let s3 of Ti6(e3)) - !Mi5.call(t12, s3) && s3 !== n && nn6(t12, s3, { get: () => e3[s3], enumerable: !(r3 = Ai6(e3, s3)) || r3.enumerable }); - return t12; - }; - rr6 = (t12, e3, n) => (n = t12 != null ? Li5(Ci6(t12)) : {}, ki6(e3 || !t12 || !t12.__esModule ? nn6(n, "default", { value: t12, enumerable: true }) : n, t12)); - le9 = ee9((U8) => { - "use strict"; - var re9 = { ANCHOR: "&", COMMENT: "#", TAG: "!", DIRECTIVES_END: "-", DOCUMENT_END: "." }, lt5 = { ALIAS: "ALIAS", BLANK_LINE: "BLANK_LINE", BLOCK_FOLDED: "BLOCK_FOLDED", BLOCK_LITERAL: "BLOCK_LITERAL", COMMENT: "COMMENT", DIRECTIVE: "DIRECTIVE", DOCUMENT: "DOCUMENT", FLOW_MAP: "FLOW_MAP", FLOW_SEQ: "FLOW_SEQ", MAP: "MAP", MAP_KEY: "MAP_KEY", MAP_VALUE: "MAP_VALUE", PLAIN: "PLAIN", QUOTE_DOUBLE: "QUOTE_DOUBLE", QUOTE_SINGLE: "QUOTE_SINGLE", SEQ: "SEQ", SEQ_ITEM: "SEQ_ITEM" }, No3 = "tag:yaml.org,2002:", Oo2 = { MAP: "tag:yaml.org,2002:map", SEQ: "tag:yaml.org,2002:seq", STR: "tag:yaml.org,2002:str" }; - function Ms6(t12) { - let e3 = [0], n = t12.indexOf(` -`); - for (; n !== -1; ) - n += 1, e3.push(n), n = t12.indexOf(` -`, n); - return e3; - } - function ks7(t12) { - let e3, n; - return typeof t12 == "string" ? (e3 = Ms6(t12), n = t12) : (Array.isArray(t12) && (t12 = t12[0]), t12 && t12.context && (t12.lineStarts || (t12.lineStarts = Ms6(t12.context.src)), e3 = t12.lineStarts, n = t12.context.src)), { lineStarts: e3, src: n }; - } - function An4(t12, e3) { - if (typeof t12 != "number" || t12 < 0) - return null; - let { lineStarts: n, src: r3 } = ks7(e3); - if (!n || !r3 || t12 > r3.length) - return null; - for (let i = 0; i < n.length; ++i) { - let o2 = n[i]; - if (t12 < o2) - return { line: i, col: t12 - n[i - 1] + 1 }; - if (t12 === o2) - return { line: i + 1, col: 1 }; - } - let s3 = n.length; - return { line: s3, col: t12 - n[s3 - 1] + 1 }; - } - function Lo4(t12, e3) { - let { lineStarts: n, src: r3 } = ks7(e3); - if (!n || !(t12 >= 1) || t12 > n.length) - return null; - let s3 = n[t12 - 1], i = n[t12]; - for (; i && i > s3 && r3[i - 1] === ` -`; ) - --i; - return r3.slice(s3, i); - } - function Ao2({ start: t12, end: e3 }, n, r3 = 80) { - let s3 = Lo4(t12.line, n); - if (!s3) - return null; - let { col: i } = t12; - if (s3.length > r3) - if (i <= r3 - 10) - s3 = s3.substr(0, r3 - 1) + "\u2026"; - else { - let f3 = Math.round(r3 / 2); - s3.length > i + f3 && (s3 = s3.substr(0, i + f3 - 1) + "\u2026"), i -= s3.length - r3, s3 = "\u2026" + s3.substr(1 - r3); - } - let o2 = 1, a = ""; - e3 && (e3.line === t12.line && i + (e3.col - t12.col) <= r3 + 1 ? o2 = e3.col - t12.col : (o2 = Math.min(s3.length + 1, r3) - i, a = "\u2026")); - let c3 = i > 1 ? " ".repeat(i - 1) : "", l = "^".repeat(o2); - return `${s3} -${c3}${l}${a}`; - } - var Ye7 = class t12 { - static copy(e3) { - return new t12(e3.start, e3.end); - } - constructor(e3, n) { - this.start = e3, this.end = n || e3; - } - isEmpty() { - return typeof this.start != "number" || !this.end || this.end <= this.start; - } - setOrigRange(e3, n) { - let { start: r3, end: s3 } = this; - if (e3.length === 0 || s3 <= e3[0]) - return this.origStart = r3, this.origEnd = s3, n; - let i = n; - for (; i < e3.length && !(e3[i] > r3); ) - ++i; - this.origStart = r3 + i; - let o2 = i; - for (; i < e3.length && !(e3[i] >= s3); ) - ++i; - return this.origEnd = s3 + i, o2; - } - }, se7 = class t12 { - static addStringTerminator(e3, n, r3) { - if (r3[r3.length - 1] === ` -`) - return r3; - let s3 = t12.endOfWhiteSpace(e3, n); - return s3 >= e3.length || e3[s3] === ` -` ? r3 + ` -` : r3; - } - static atDocumentBoundary(e3, n, r3) { - let s3 = e3[n]; - if (!s3) - return true; - let i = e3[n - 1]; - if (i && i !== ` -`) - return false; - if (r3) { - if (s3 !== r3) - return false; - } else if (s3 !== re9.DIRECTIVES_END && s3 !== re9.DOCUMENT_END) - return false; - let o2 = e3[n + 1], a = e3[n + 2]; - if (o2 !== s3 || a !== s3) - return false; - let c3 = e3[n + 3]; - return !c3 || c3 === ` -` || c3 === " " || c3 === " "; - } - static endOfIdentifier(e3, n) { - let r3 = e3[n], s3 = r3 === "<", i = s3 ? [` -`, " ", " ", ">"] : [` -`, " ", " ", "[", "]", "{", "}", ","]; - for (; r3 && i.indexOf(r3) === -1; ) - r3 = e3[n += 1]; - return s3 && r3 === ">" && (n += 1), n; - } - static endOfIndent(e3, n) { - let r3 = e3[n]; - for (; r3 === " "; ) - r3 = e3[n += 1]; - return n; - } - static endOfLine(e3, n) { - let r3 = e3[n]; - for (; r3 && r3 !== ` -`; ) - r3 = e3[n += 1]; - return n; - } - static endOfWhiteSpace(e3, n) { - let r3 = e3[n]; - for (; r3 === " " || r3 === " "; ) - r3 = e3[n += 1]; - return n; - } - static startOfLine(e3, n) { - let r3 = e3[n - 1]; - if (r3 === ` -`) - return n; - for (; r3 && r3 !== ` -`; ) - r3 = e3[n -= 1]; - return n + 1; - } - static endOfBlockIndent(e3, n, r3) { - let s3 = t12.endOfIndent(e3, r3); - if (s3 > r3 + n) - return s3; - { - let i = t12.endOfWhiteSpace(e3, s3), o2 = e3[i]; - if (!o2 || o2 === ` -`) - return i; - } - return null; - } - static atBlank(e3, n, r3) { - let s3 = e3[n]; - return s3 === ` -` || s3 === " " || s3 === " " || r3 && !s3; - } - static nextNodeIsIndented(e3, n, r3) { - return !e3 || n < 0 ? false : n > 0 ? true : r3 && e3 === "-"; - } - static normalizeOffset(e3, n) { - let r3 = e3[n]; - return r3 ? r3 !== ` -` && e3[n - 1] === ` -` ? n - 1 : t12.endOfWhiteSpace(e3, n) : n; - } - static foldNewline(e3, n, r3) { - let s3 = 0, i = false, o2 = "", a = e3[n + 1]; - for (; a === " " || a === " " || a === ` -`; ) { - switch (a) { - case ` -`: - s3 = 0, n += 1, o2 += ` -`; - break; - case " ": - s3 <= r3 && (i = true), n = t12.endOfWhiteSpace(e3, n + 2) - 1; - break; - case " ": - s3 += 1, n += 1; - break; - } - a = e3[n + 1]; - } - return o2 || (o2 = " "), a && s3 <= r3 && (i = true), { fold: o2, offset: n, error: i }; - } - constructor(e3, n, r3) { - Object.defineProperty(this, "context", { value: r3 || null, writable: true }), this.error = null, this.range = null, this.valueRange = null, this.props = n || [], this.type = e3, this.value = null; - } - getPropValue(e3, n, r3) { - if (!this.context) - return null; - let { src: s3 } = this.context, i = this.props[e3]; - return i && s3[i.start] === n ? s3.slice(i.start + (r3 ? 1 : 0), i.end) : null; - } - get anchor() { - for (let e3 = 0; e3 < this.props.length; ++e3) { - let n = this.getPropValue(e3, re9.ANCHOR, true); - if (n != null) - return n; - } - return null; - } - get comment() { - let e3 = []; - for (let n = 0; n < this.props.length; ++n) { - let r3 = this.getPropValue(n, re9.COMMENT, true); - r3 != null && e3.push(r3); - } - return e3.length > 0 ? e3.join(` -`) : null; - } - commentHasRequiredWhitespace(e3) { - let { src: n } = this.context; - if (this.header && e3 === this.header.end || !this.valueRange) - return false; - let { end: r3 } = this.valueRange; - return e3 !== r3 || t12.atBlank(n, r3 - 1); - } - get hasComment() { - if (this.context) { - let { src: e3 } = this.context; - for (let n = 0; n < this.props.length; ++n) - if (e3[this.props[n].start] === re9.COMMENT) - return true; - } - return false; - } - get hasProps() { - if (this.context) { - let { src: e3 } = this.context; - for (let n = 0; n < this.props.length; ++n) - if (e3[this.props[n].start] !== re9.COMMENT) - return true; - } - return false; - } - get includesTrailingLines() { - return false; - } - get jsonLike() { - return [lt5.FLOW_MAP, lt5.FLOW_SEQ, lt5.QUOTE_DOUBLE, lt5.QUOTE_SINGLE].indexOf(this.type) !== -1; - } - get rangeAsLinePos() { - if (!this.range || !this.context) - return; - let e3 = An4(this.range.start, this.context.root); - if (!e3) - return; - let n = An4(this.range.end, this.context.root); - return { start: e3, end: n }; - } - get rawValue() { - if (!this.valueRange || !this.context) - return null; - let { start: e3, end: n } = this.valueRange; - return this.context.src.slice(e3, n); - } - get tag() { - for (let e3 = 0; e3 < this.props.length; ++e3) { - let n = this.getPropValue(e3, re9.TAG, false); - if (n != null) { - if (n[1] === "<") - return { verbatim: n.slice(2, -1) }; - { - let [r3, s3, i] = n.match(/^(.*!)([^!]*)$/); - return { handle: s3, suffix: i }; - } - } - } - return null; - } - get valueRangeContainsNewline() { - if (!this.valueRange || !this.context) - return false; - let { start: e3, end: n } = this.valueRange, { src: r3 } = this.context; - for (let s3 = e3; s3 < n; ++s3) - if (r3[s3] === ` -`) - return true; - return false; - } - parseComment(e3) { - let { src: n } = this.context; - if (n[e3] === re9.COMMENT) { - let r3 = t12.endOfLine(n, e3 + 1), s3 = new Ye7(e3, r3); - return this.props.push(s3), r3; - } - return e3; - } - setOrigRanges(e3, n) { - return this.range && (n = this.range.setOrigRange(e3, n)), this.valueRange && this.valueRange.setOrigRange(e3, n), this.props.forEach((r3) => r3.setOrigRange(e3, n)), n; - } - toString() { - let { context: { src: e3 }, range: n, value: r3 } = this; - if (r3 != null) - return r3; - let s3 = e3.slice(n.start, n.end); - return t12.addStringTerminator(e3, n.end, s3); - } - }, de7 = class extends Error { - constructor(e3, n, r3) { - if (!r3 || !(n instanceof se7)) - throw new Error(`Invalid arguments for new ${e3}`); - super(), this.name = e3, this.message = r3, this.source = n; - } - makePretty() { - if (!this.source) - return; - this.nodeType = this.source.type; - let e3 = this.source.context && this.source.context.root; - if (typeof this.offset == "number") { - this.range = new Ye7(this.offset, this.offset + 1); - let n = e3 && An4(this.offset, e3); - if (n) { - let r3 = { line: n.line, col: n.col + 1 }; - this.linePos = { start: n, end: r3 }; - } - delete this.offset; - } else - this.range = this.source.range, this.linePos = this.source.rangeAsLinePos; - if (this.linePos) { - let { line: n, col: r3 } = this.linePos.start; - this.message += ` at line ${n}, column ${r3}`; - let s3 = e3 && Ao2(this.linePos, e3); - s3 && (this.message += `: - -${s3} -`); - } - delete this.source; - } - }, Tn3 = class extends de7 { - constructor(e3, n) { - super("YAMLReferenceError", e3, n); - } - }, ft6 = class extends de7 { - constructor(e3, n) { - super("YAMLSemanticError", e3, n); - } - }, Cn4 = class extends de7 { - constructor(e3, n) { - super("YAMLSyntaxError", e3, n); - } - }, Mn5 = class extends de7 { - constructor(e3, n) { - super("YAMLWarning", e3, n); - } - }; - function To2(t12, e3, n) { - return e3 in t12 ? Object.defineProperty(t12, e3, { value: n, enumerable: true, configurable: true, writable: true }) : t12[e3] = n, t12; - } - var kn4 = class t12 extends se7 { - static endOfLine(e3, n, r3) { - let s3 = e3[n], i = n; - for (; s3 && s3 !== ` -` && !(r3 && (s3 === "[" || s3 === "]" || s3 === "{" || s3 === "}" || s3 === ",")); ) { - let o2 = e3[i + 1]; - if (s3 === ":" && (!o2 || o2 === ` -` || o2 === " " || o2 === " " || r3 && o2 === ",") || (s3 === " " || s3 === " ") && o2 === "#") - break; - i += 1, s3 = o2; - } - return i; - } - get strValue() { - if (!this.valueRange || !this.context) - return null; - let { start: e3, end: n } = this.valueRange, { src: r3 } = this.context, s3 = r3[n - 1]; - for (; e3 < n && (s3 === ` -` || s3 === " " || s3 === " "); ) - s3 = r3[--n - 1]; - let i = ""; - for (let a = e3; a < n; ++a) { - let c3 = r3[a]; - if (c3 === ` -`) { - let { fold: l, offset: f3 } = se7.foldNewline(r3, a, -1); - i += l, a = f3; - } else if (c3 === " " || c3 === " ") { - let l = a, f3 = r3[a + 1]; - for (; a < n && (f3 === " " || f3 === " "); ) - a += 1, f3 = r3[a + 1]; - f3 !== ` -` && (i += a > l ? r3.slice(l, a + 1) : c3); - } else - i += c3; - } - let o2 = r3[e3]; - switch (o2) { - case " ": { - let a = "Plain value cannot start with a tab character"; - return { errors: [new ft6(this, a)], str: i }; - } - case "@": - case "`": { - let a = `Plain value cannot start with reserved character ${o2}`; - return { errors: [new ft6(this, a)], str: i }; - } - default: - return i; - } - } - parseBlockValue(e3) { - let { indent: n, inFlow: r3, src: s3 } = this.context, i = e3, o2 = e3; - for (let a = s3[i]; a === ` -` && !se7.atDocumentBoundary(s3, i + 1); a = s3[i]) { - let c3 = se7.endOfBlockIndent(s3, n, i + 1); - if (c3 === null || s3[c3] === "#") - break; - s3[c3] === ` -` ? i = c3 : (o2 = t12.endOfLine(s3, c3, r3), i = o2); - } - return this.valueRange.isEmpty() && (this.valueRange.start = e3), this.valueRange.end = o2, o2; - } - parse(e3, n) { - this.context = e3; - let { inFlow: r3, src: s3 } = e3, i = n, o2 = s3[i]; - return o2 && o2 !== "#" && o2 !== ` -` && (i = t12.endOfLine(s3, n, r3)), this.valueRange = new Ye7(n, i), i = se7.endOfWhiteSpace(s3, i), i = this.parseComment(i), (!this.hasComment || this.valueRange.isEmpty()) && (i = this.parseBlockValue(i)), i; - } - }; - U8.Char = re9; - U8.Node = se7; - U8.PlainValue = kn4; - U8.Range = Ye7; - U8.Type = lt5; - U8.YAMLError = de7; - U8.YAMLReferenceError = Tn3; - U8.YAMLSemanticError = ft6; - U8.YAMLSyntaxError = Cn4; - U8.YAMLWarning = Mn5; - U8._defineProperty = To2; - U8.defaultTagPrefix = No3; - U8.defaultTags = Oo2; - }); - Is5 = ee9((vs7) => { - "use strict"; - var u = le9(), Ee6 = class extends u.Node { - constructor() { - super(u.Type.BLANK_LINE); - } - get includesTrailingLines() { - return true; - } - parse(e3, n) { - return this.context = e3, this.range = new u.Range(n, n + 1), n + 1; - } - }, ut5 = class extends u.Node { - constructor(e3, n) { - super(e3, n), this.node = null; - } - get includesTrailingLines() { - return !!this.node && this.node.includesTrailingLines; - } - parse(e3, n) { - this.context = e3; - let { parseNode: r3, src: s3 } = e3, { atLineStart: i, lineStart: o2 } = e3; - !i && this.type === u.Type.SEQ_ITEM && (this.error = new u.YAMLSemanticError(this, "Sequence items must not have preceding content on the same line")); - let a = i ? n - o2 : e3.indent, c3 = u.Node.endOfWhiteSpace(s3, n + 1), l = s3[c3], f3 = l === "#", m3 = [], d5 = null; - for (; l === ` -` || l === "#"; ) { - if (l === "#") { - let h4 = u.Node.endOfLine(s3, c3 + 1); - m3.push(new u.Range(c3, h4)), c3 = h4; - } else { - i = true, o2 = c3 + 1; - let h4 = u.Node.endOfWhiteSpace(s3, o2); - s3[h4] === ` -` && m3.length === 0 && (d5 = new Ee6(), o2 = d5.parse({ src: s3 }, o2)), c3 = u.Node.endOfIndent(s3, o2); - } - l = s3[c3]; - } - if (u.Node.nextNodeIsIndented(l, c3 - (o2 + a), this.type !== u.Type.SEQ_ITEM) ? this.node = r3({ atLineStart: i, inCollection: false, indent: a, lineStart: o2, parent: this }, c3) : l && o2 > n + 1 && (c3 = o2 - 1), this.node) { - if (d5) { - let h4 = e3.parent.items || e3.parent.contents; - h4 && h4.push(d5); - } - m3.length && Array.prototype.push.apply(this.props, m3), c3 = this.node.range.end; - } else if (f3) { - let h4 = m3[0]; - this.props.push(h4), c3 = h4.end; - } else - c3 = u.Node.endOfLine(s3, n + 1); - let y5 = this.node ? this.node.valueRange.end : c3; - return this.valueRange = new u.Range(n, y5), c3; - } - setOrigRanges(e3, n) { - return n = super.setOrigRanges(e3, n), this.node ? this.node.setOrigRanges(e3, n) : n; - } - toString() { - let { context: { src: e3 }, node: n, range: r3, value: s3 } = this; - if (s3 != null) - return s3; - let i = n ? e3.slice(r3.start, n.range.start) + String(n) : e3.slice(r3.start, r3.end); - return u.Node.addStringTerminator(e3, r3.end, i); - } - }, ye6 = class extends u.Node { - constructor() { - super(u.Type.COMMENT); - } - parse(e3, n) { - this.context = e3; - let r3 = this.parseComment(n); - return this.range = new u.Range(n, r3), r3; - } - }; - function vn5(t12) { - let e3 = t12; - for (; e3 instanceof ut5; ) - e3 = e3.node; - if (!(e3 instanceof Bt7)) - return null; - let n = e3.items.length, r3 = -1; - for (let o2 = n - 1; o2 >= 0; --o2) { - let a = e3.items[o2]; - if (a.type === u.Type.COMMENT) { - let { indent: c3, lineStart: l } = a.context; - if (c3 > 0 && a.range.start >= l + c3) - break; - r3 = o2; - } else if (a.type === u.Type.BLANK_LINE) - r3 = o2; - else - break; - } - if (r3 === -1) - return null; - let s3 = e3.items.splice(r3, n - r3), i = s3[0].range.start; - for (; e3.range.end = i, e3.valueRange && e3.valueRange.end > i && (e3.valueRange.end = i), e3 !== t12; ) - e3 = e3.context.parent; - return s3; - } - var Bt7 = class t12 extends u.Node { - static nextContentHasIndent(e3, n, r3) { - let s3 = u.Node.endOfLine(e3, n) + 1; - n = u.Node.endOfWhiteSpace(e3, s3); - let i = e3[n]; - return i ? n >= s3 + r3 ? true : i !== "#" && i !== ` -` ? false : t12.nextContentHasIndent(e3, n, r3) : false; - } - constructor(e3) { - super(e3.type === u.Type.SEQ_ITEM ? u.Type.SEQ : u.Type.MAP); - for (let r3 = e3.props.length - 1; r3 >= 0; --r3) - if (e3.props[r3].start < e3.context.lineStart) { - this.props = e3.props.slice(0, r3 + 1), e3.props = e3.props.slice(r3 + 1); - let s3 = e3.props[0] || e3.valueRange; - e3.range.start = s3.start; - break; - } - this.items = [e3]; - let n = vn5(e3); - n && Array.prototype.push.apply(this.items, n); - } - get includesTrailingLines() { - return this.items.length > 0; - } - parse(e3, n) { - this.context = e3; - let { parseNode: r3, src: s3 } = e3, i = u.Node.startOfLine(s3, n), o2 = this.items[0]; - o2.context.parent = this, this.valueRange = u.Range.copy(o2.valueRange); - let a = o2.range.start - o2.context.lineStart, c3 = n; - c3 = u.Node.normalizeOffset(s3, c3); - let l = s3[c3], f3 = u.Node.endOfWhiteSpace(s3, i) === c3, m3 = false; - for (; l; ) { - for (; l === ` -` || l === "#"; ) { - if (f3 && l === ` -` && !m3) { - let h4 = new Ee6(); - if (c3 = h4.parse({ src: s3 }, c3), this.valueRange.end = c3, c3 >= s3.length) { - l = null; - break; - } - this.items.push(h4), c3 -= 1; - } else if (l === "#") { - if (c3 < i + a && !t12.nextContentHasIndent(s3, c3, a)) - return c3; - let h4 = new ye6(); - if (c3 = h4.parse({ indent: a, lineStart: i, src: s3 }, c3), this.items.push(h4), this.valueRange.end = c3, c3 >= s3.length) { - l = null; - break; - } - } - if (i = c3 + 1, c3 = u.Node.endOfIndent(s3, i), u.Node.atBlank(s3, c3)) { - let h4 = u.Node.endOfWhiteSpace(s3, c3), g3 = s3[h4]; - (!g3 || g3 === ` -` || g3 === "#") && (c3 = h4); - } - l = s3[c3], f3 = true; - } - if (!l) - break; - if (c3 !== i + a && (f3 || l !== ":")) { - if (c3 < i + a) { - i > n && (c3 = i); - break; - } else if (!this.error) { - let h4 = "All collection items must start at the same column"; - this.error = new u.YAMLSyntaxError(this, h4); - } - } - if (o2.type === u.Type.SEQ_ITEM) { - if (l !== "-") { - i > n && (c3 = i); - break; - } - } else if (l === "-" && !this.error) { - let h4 = s3[c3 + 1]; - if (!h4 || h4 === ` -` || h4 === " " || h4 === " ") { - let g3 = "A collection cannot be both a mapping and a sequence"; - this.error = new u.YAMLSyntaxError(this, g3); - } - } - let d5 = r3({ atLineStart: f3, inCollection: true, indent: a, lineStart: i, parent: this }, c3); - if (!d5) - return c3; - if (this.items.push(d5), this.valueRange.end = d5.valueRange.end, c3 = u.Node.normalizeOffset(s3, d5.range.end), l = s3[c3], f3 = false, m3 = d5.includesTrailingLines, l) { - let h4 = c3 - 1, g3 = s3[h4]; - for (; g3 === " " || g3 === " "; ) - g3 = s3[--h4]; - g3 === ` -` && (i = h4 + 1, f3 = true); - } - let y5 = vn5(d5); - y5 && Array.prototype.push.apply(this.items, y5); - } - return c3; - } - setOrigRanges(e3, n) { - return n = super.setOrigRanges(e3, n), this.items.forEach((r3) => { - n = r3.setOrigRanges(e3, n); - }), n; - } - toString() { - let { context: { src: e3 }, items: n, range: r3, value: s3 } = this; - if (s3 != null) - return s3; - let i = e3.slice(r3.start, n[0].range.start) + String(n[0]); - for (let o2 = 1; o2 < n.length; ++o2) { - let a = n[o2], { atLineStart: c3, indent: l } = a.context; - if (c3) - for (let f3 = 0; f3 < l; ++f3) - i += " "; - i += String(a); - } - return u.Node.addStringTerminator(e3, r3.end, i); - } - }, In4 = class extends u.Node { - constructor() { - super(u.Type.DIRECTIVE), this.name = null; - } - get parameters() { - let e3 = this.rawValue; - return e3 ? e3.trim().split(/[ \t]+/) : []; - } - parseName(e3) { - let { src: n } = this.context, r3 = e3, s3 = n[r3]; - for (; s3 && s3 !== ` -` && s3 !== " " && s3 !== " "; ) - s3 = n[r3 += 1]; - return this.name = n.slice(e3, r3), r3; - } - parseParameters(e3) { - let { src: n } = this.context, r3 = e3, s3 = n[r3]; - for (; s3 && s3 !== ` -` && s3 !== "#"; ) - s3 = n[r3 += 1]; - return this.valueRange = new u.Range(e3, r3), r3; - } - parse(e3, n) { - this.context = e3; - let r3 = this.parseName(n + 1); - return r3 = this.parseParameters(r3), r3 = this.parseComment(r3), this.range = new u.Range(n, r3), r3; - } - }, Pn5 = class t12 extends u.Node { - static startCommentOrEndBlankLine(e3, n) { - let r3 = u.Node.endOfWhiteSpace(e3, n), s3 = e3[r3]; - return s3 === "#" || s3 === ` -` ? r3 : n; - } - constructor() { - super(u.Type.DOCUMENT), this.directives = null, this.contents = null, this.directivesEndMarker = null, this.documentEndMarker = null; - } - parseDirectives(e3) { - let { src: n } = this.context; - this.directives = []; - let r3 = true, s3 = false, i = e3; - for (; !u.Node.atDocumentBoundary(n, i, u.Char.DIRECTIVES_END); ) - switch (i = t12.startCommentOrEndBlankLine(n, i), n[i]) { - case ` -`: - if (r3) { - let o2 = new Ee6(); - i = o2.parse({ src: n }, i), i < n.length && this.directives.push(o2); - } else - i += 1, r3 = true; - break; - case "#": - { - let o2 = new ye6(); - i = o2.parse({ src: n }, i), this.directives.push(o2), r3 = false; - } - break; - case "%": - { - let o2 = new In4(); - i = o2.parse({ parent: this, src: n }, i), this.directives.push(o2), s3 = true, r3 = false; - } - break; - default: - return s3 ? this.error = new u.YAMLSemanticError(this, "Missing directives-end indicator line") : this.directives.length > 0 && (this.contents = this.directives, this.directives = []), i; - } - return n[i] ? (this.directivesEndMarker = new u.Range(i, i + 3), i + 3) : (s3 ? this.error = new u.YAMLSemanticError(this, "Missing directives-end indicator line") : this.directives.length > 0 && (this.contents = this.directives, this.directives = []), i); - } - parseContents(e3) { - let { parseNode: n, src: r3 } = this.context; - this.contents || (this.contents = []); - let s3 = e3; - for (; r3[s3 - 1] === "-"; ) - s3 -= 1; - let i = u.Node.endOfWhiteSpace(r3, e3), o2 = s3 === e3; - for (this.valueRange = new u.Range(i); !u.Node.atDocumentBoundary(r3, i, u.Char.DOCUMENT_END); ) { - switch (r3[i]) { - case ` -`: - if (o2) { - let a = new Ee6(); - i = a.parse({ src: r3 }, i), i < r3.length && this.contents.push(a); - } else - i += 1, o2 = true; - s3 = i; - break; - case "#": - { - let a = new ye6(); - i = a.parse({ src: r3 }, i), this.contents.push(a), o2 = false; - } - break; - default: { - let a = u.Node.endOfIndent(r3, i), l = n({ atLineStart: o2, indent: -1, inFlow: false, inCollection: false, lineStart: s3, parent: this }, a); - if (!l) - return this.valueRange.end = a; - this.contents.push(l), i = l.range.end, o2 = false; - let f3 = vn5(l); - f3 && Array.prototype.push.apply(this.contents, f3); - } - } - i = t12.startCommentOrEndBlankLine(r3, i); - } - if (this.valueRange.end = i, r3[i] && (this.documentEndMarker = new u.Range(i, i + 3), i += 3, r3[i])) { - if (i = u.Node.endOfWhiteSpace(r3, i), r3[i] === "#") { - let a = new ye6(); - i = a.parse({ src: r3 }, i), this.contents.push(a); - } - switch (r3[i]) { - case ` -`: - i += 1; - break; - case void 0: - break; - default: - this.error = new u.YAMLSyntaxError(this, "Document end marker line cannot have a non-comment suffix"); - } - } - return i; - } - parse(e3, n) { - e3.root = this, this.context = e3; - let { src: r3 } = e3, s3 = r3.charCodeAt(n) === 65279 ? n + 1 : n; - return s3 = this.parseDirectives(s3), s3 = this.parseContents(s3), s3; - } - setOrigRanges(e3, n) { - return n = super.setOrigRanges(e3, n), this.directives.forEach((r3) => { - n = r3.setOrigRanges(e3, n); - }), this.directivesEndMarker && (n = this.directivesEndMarker.setOrigRange(e3, n)), this.contents.forEach((r3) => { - n = r3.setOrigRanges(e3, n); - }), this.documentEndMarker && (n = this.documentEndMarker.setOrigRange(e3, n)), n; - } - toString() { - let { contents: e3, directives: n, value: r3 } = this; - if (r3 != null) - return r3; - let s3 = n.join(""); - return e3.length > 0 && ((n.length > 0 || e3[0].type === u.Type.COMMENT) && (s3 += `--- -`), s3 += e3.join("")), s3[s3.length - 1] !== ` -` && (s3 += ` -`), s3; - } - }, _n5 = class extends u.Node { - parse(e3, n) { - this.context = e3; - let { src: r3 } = e3, s3 = u.Node.endOfIdentifier(r3, n + 1); - return this.valueRange = new u.Range(n + 1, s3), s3 = u.Node.endOfWhiteSpace(r3, s3), s3 = this.parseComment(s3), s3; - } - }, fe8 = { CLIP: "CLIP", KEEP: "KEEP", STRIP: "STRIP" }, xn4 = class extends u.Node { - constructor(e3, n) { - super(e3, n), this.blockIndent = null, this.chomping = fe8.CLIP, this.header = null; - } - get includesTrailingLines() { - return this.chomping === fe8.KEEP; - } - get strValue() { - if (!this.valueRange || !this.context) - return null; - let { start: e3, end: n } = this.valueRange, { indent: r3, src: s3 } = this.context; - if (this.valueRange.isEmpty()) - return ""; - let i = null, o2 = s3[n - 1]; - for (; o2 === ` -` || o2 === " " || o2 === " "; ) { - if (n -= 1, n <= e3) { - if (this.chomping === fe8.KEEP) - break; - return ""; - } - o2 === ` -` && (i = n), o2 = s3[n - 1]; - } - let a = n + 1; - i && (this.chomping === fe8.KEEP ? (a = i, n = this.valueRange.end) : n = i); - let c3 = r3 + this.blockIndent, l = this.type === u.Type.BLOCK_FOLDED, f3 = true, m3 = "", d5 = "", y5 = false; - for (let h4 = e3; h4 < n; ++h4) { - for (let w4 = 0; w4 < c3 && s3[h4] === " "; ++w4) - h4 += 1; - let g3 = s3[h4]; - if (g3 === ` -`) - d5 === ` -` ? m3 += ` -` : d5 = ` -`; - else { - let w4 = u.Node.endOfLine(s3, h4), C6 = s3.slice(h4, w4); - h4 = w4, l && (g3 === " " || g3 === " ") && h4 < a ? (d5 === " " ? d5 = ` -` : !y5 && !f3 && d5 === ` -` && (d5 = ` - -`), m3 += d5 + C6, d5 = w4 < n && s3[w4] || "", y5 = true) : (m3 += d5 + C6, d5 = l && h4 < a ? " " : ` -`, y5 = false), f3 && C6 !== "" && (f3 = false); - } - } - return this.chomping === fe8.STRIP ? m3 : m3 + ` -`; - } - parseBlockHeader(e3) { - let { src: n } = this.context, r3 = e3 + 1, s3 = ""; - for (; ; ) { - let i = n[r3]; - switch (i) { - case "-": - this.chomping = fe8.STRIP; - break; - case "+": - this.chomping = fe8.KEEP; - break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - s3 += i; - break; - default: - return this.blockIndent = Number(s3) || null, this.header = new u.Range(e3, r3), r3; - } - r3 += 1; - } - } - parseBlockValue(e3) { - let { indent: n, src: r3 } = this.context, s3 = !!this.blockIndent, i = e3, o2 = e3, a = 1; - for (let c3 = r3[i]; c3 === ` -` && (i += 1, !u.Node.atDocumentBoundary(r3, i)); c3 = r3[i]) { - let l = u.Node.endOfBlockIndent(r3, n, i); - if (l === null) - break; - let f3 = r3[l], m3 = l - (i + n); - if (this.blockIndent) { - if (f3 && f3 !== ` -` && m3 < this.blockIndent) { - if (r3[l] === "#") - break; - if (!this.error) { - let y5 = `Block scalars must not be less indented than their ${s3 ? "explicit indentation indicator" : "first line"}`; - this.error = new u.YAMLSemanticError(this, y5); - } - } - } else if (r3[l] !== ` -`) { - if (m3 < a) { - let d5 = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator"; - this.error = new u.YAMLSemanticError(this, d5); - } - this.blockIndent = m3; - } else - m3 > a && (a = m3); - r3[l] === ` -` ? i = l : i = o2 = u.Node.endOfLine(r3, l); - } - return this.chomping !== fe8.KEEP && (i = r3[o2] ? o2 + 1 : o2), this.valueRange = new u.Range(e3 + 1, i), i; - } - parse(e3, n) { - this.context = e3; - let { src: r3 } = e3, s3 = this.parseBlockHeader(n); - return s3 = u.Node.endOfWhiteSpace(r3, s3), s3 = this.parseComment(s3), s3 = this.parseBlockValue(s3), s3; - } - setOrigRanges(e3, n) { - return n = super.setOrigRanges(e3, n), this.header ? this.header.setOrigRange(e3, n) : n; - } - }, Rn5 = class extends u.Node { - constructor(e3, n) { - super(e3, n), this.items = null; - } - prevNodeIsJsonLike(e3 = this.items.length) { - let n = this.items[e3 - 1]; - return !!n && (n.jsonLike || n.type === u.Type.COMMENT && this.prevNodeIsJsonLike(e3 - 1)); - } - parse(e3, n) { - this.context = e3; - let { parseNode: r3, src: s3 } = e3, { indent: i, lineStart: o2 } = e3, a = s3[n]; - this.items = [{ char: a, offset: n }]; - let c3 = u.Node.endOfWhiteSpace(s3, n + 1); - for (a = s3[c3]; a && a !== "]" && a !== "}"; ) { - switch (a) { - case ` -`: - { - o2 = c3 + 1; - let l = u.Node.endOfWhiteSpace(s3, o2); - if (s3[l] === ` -`) { - let f3 = new Ee6(); - o2 = f3.parse({ src: s3 }, o2), this.items.push(f3); - } - if (c3 = u.Node.endOfIndent(s3, o2), c3 <= o2 + i && (a = s3[c3], c3 < o2 + i || a !== "]" && a !== "}")) { - let f3 = "Insufficient indentation in flow collection"; - this.error = new u.YAMLSemanticError(this, f3); - } - } - break; - case ",": - this.items.push({ char: a, offset: c3 }), c3 += 1; - break; - case "#": - { - let l = new ye6(); - c3 = l.parse({ src: s3 }, c3), this.items.push(l); - } - break; - case "?": - case ":": { - let l = s3[c3 + 1]; - if (l === ` -` || l === " " || l === " " || l === "," || a === ":" && this.prevNodeIsJsonLike()) { - this.items.push({ char: a, offset: c3 }), c3 += 1; - break; - } - } - default: { - let l = r3({ atLineStart: false, inCollection: false, inFlow: true, indent: -1, lineStart: o2, parent: this }, c3); - if (!l) - return this.valueRange = new u.Range(n, c3), c3; - this.items.push(l), c3 = u.Node.normalizeOffset(s3, l.range.end); - } - } - c3 = u.Node.endOfWhiteSpace(s3, c3), a = s3[c3]; - } - return this.valueRange = new u.Range(n, c3 + 1), a && (this.items.push({ char: a, offset: c3 }), c3 = u.Node.endOfWhiteSpace(s3, c3 + 1), c3 = this.parseComment(c3)), c3; - } - setOrigRanges(e3, n) { - return n = super.setOrigRanges(e3, n), this.items.forEach((r3) => { - if (r3 instanceof u.Node) - n = r3.setOrigRanges(e3, n); - else if (e3.length === 0) - r3.origOffset = r3.offset; - else { - let s3 = n; - for (; s3 < e3.length && !(e3[s3] > r3.offset); ) - ++s3; - r3.origOffset = r3.offset + s3, n = s3; - } - }), n; - } - toString() { - let { context: { src: e3 }, items: n, range: r3, value: s3 } = this; - if (s3 != null) - return s3; - let i = n.filter((c3) => c3 instanceof u.Node), o2 = "", a = r3.start; - return i.forEach((c3) => { - let l = e3.slice(a, c3.range.start); - a = c3.range.end, o2 += l + String(c3), o2[o2.length - 1] === ` -` && e3[a - 1] !== ` -` && e3[a] === ` -` && (a += 1); - }), o2 += e3.slice(a, r3.end), u.Node.addStringTerminator(e3, r3.end, o2); - } - }, Dn5 = class t12 extends u.Node { - static endOfQuote(e3, n) { - let r3 = e3[n]; - for (; r3 && r3 !== '"'; ) - n += r3 === "\\" ? 2 : 1, r3 = e3[n]; - return n + 1; - } - get strValue() { - if (!this.valueRange || !this.context) - return null; - let e3 = [], { start: n, end: r3 } = this.valueRange, { indent: s3, src: i } = this.context; - i[r3 - 1] !== '"' && e3.push(new u.YAMLSyntaxError(this, 'Missing closing "quote')); - let o2 = ""; - for (let a = n + 1; a < r3 - 1; ++a) { - let c3 = i[a]; - if (c3 === ` -`) { - u.Node.atDocumentBoundary(i, a + 1) && e3.push(new u.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); - let { fold: l, offset: f3, error: m3 } = u.Node.foldNewline(i, a, s3); - o2 += l, a = f3, m3 && e3.push(new u.YAMLSemanticError(this, "Multi-line double-quoted string needs to be sufficiently indented")); - } else if (c3 === "\\") - switch (a += 1, i[a]) { - case "0": - o2 += "\0"; - break; - case "a": - o2 += "\x07"; - break; - case "b": - o2 += "\b"; - break; - case "e": - o2 += "\x1B"; - break; - case "f": - o2 += "\f"; - break; - case "n": - o2 += ` -`; - break; - case "r": - o2 += "\r"; - break; - case "t": - o2 += " "; - break; - case "v": - o2 += "\v"; - break; - case "N": - o2 += "\x85"; - break; - case "_": - o2 += "\xA0"; - break; - case "L": - o2 += "\u2028"; - break; - case "P": - o2 += "\u2029"; - break; - case " ": - o2 += " "; - break; - case '"': - o2 += '"'; - break; - case "/": - o2 += "/"; - break; - case "\\": - o2 += "\\"; - break; - case " ": - o2 += " "; - break; - case "x": - o2 += this.parseCharCode(a + 1, 2, e3), a += 2; - break; - case "u": - o2 += this.parseCharCode(a + 1, 4, e3), a += 4; - break; - case "U": - o2 += this.parseCharCode(a + 1, 8, e3), a += 8; - break; - case ` -`: - for (; i[a + 1] === " " || i[a + 1] === " "; ) - a += 1; - break; - default: - e3.push(new u.YAMLSyntaxError(this, `Invalid escape sequence ${i.substr(a - 1, 2)}`)), o2 += "\\" + i[a]; - } - else if (c3 === " " || c3 === " ") { - let l = a, f3 = i[a + 1]; - for (; f3 === " " || f3 === " "; ) - a += 1, f3 = i[a + 1]; - f3 !== ` -` && (o2 += a > l ? i.slice(l, a + 1) : c3); - } else - o2 += c3; - } - return e3.length > 0 ? { errors: e3, str: o2 } : o2; - } - parseCharCode(e3, n, r3) { - let { src: s3 } = this.context, i = s3.substr(e3, n), a = i.length === n && /^[0-9a-fA-F]+$/.test(i) ? parseInt(i, 16) : NaN; - return isNaN(a) ? (r3.push(new u.YAMLSyntaxError(this, `Invalid escape sequence ${s3.substr(e3 - 2, n + 2)}`)), s3.substr(e3 - 2, n + 2)) : String.fromCodePoint(a); - } - parse(e3, n) { - this.context = e3; - let { src: r3 } = e3, s3 = t12.endOfQuote(r3, n + 1); - return this.valueRange = new u.Range(n, s3), s3 = u.Node.endOfWhiteSpace(r3, s3), s3 = this.parseComment(s3), s3; - } - }, Yn5 = class t12 extends u.Node { - static endOfQuote(e3, n) { - let r3 = e3[n]; - for (; r3; ) - if (r3 === "'") { - if (e3[n + 1] !== "'") - break; - r3 = e3[n += 2]; - } else - r3 = e3[n += 1]; - return n + 1; - } - get strValue() { - if (!this.valueRange || !this.context) - return null; - let e3 = [], { start: n, end: r3 } = this.valueRange, { indent: s3, src: i } = this.context; - i[r3 - 1] !== "'" && e3.push(new u.YAMLSyntaxError(this, "Missing closing 'quote")); - let o2 = ""; - for (let a = n + 1; a < r3 - 1; ++a) { - let c3 = i[a]; - if (c3 === ` -`) { - u.Node.atDocumentBoundary(i, a + 1) && e3.push(new u.YAMLSemanticError(this, "Document boundary indicators are not allowed within string values")); - let { fold: l, offset: f3, error: m3 } = u.Node.foldNewline(i, a, s3); - o2 += l, a = f3, m3 && e3.push(new u.YAMLSemanticError(this, "Multi-line single-quoted string needs to be sufficiently indented")); - } else if (c3 === "'") - o2 += c3, a += 1, i[a] !== "'" && e3.push(new u.YAMLSyntaxError(this, "Unescaped single quote? This should not happen.")); - else if (c3 === " " || c3 === " ") { - let l = a, f3 = i[a + 1]; - for (; f3 === " " || f3 === " "; ) - a += 1, f3 = i[a + 1]; - f3 !== ` -` && (o2 += a > l ? i.slice(l, a + 1) : c3); - } else - o2 += c3; - } - return e3.length > 0 ? { errors: e3, str: o2 } : o2; - } - parse(e3, n) { - this.context = e3; - let { src: r3 } = e3, s3 = t12.endOfQuote(r3, n + 1); - return this.valueRange = new u.Range(n, s3), s3 = u.Node.endOfWhiteSpace(r3, s3), s3 = this.parseComment(s3), s3; - } - }; - function Co2(t12, e3) { - switch (t12) { - case u.Type.ALIAS: - return new _n5(t12, e3); - case u.Type.BLOCK_FOLDED: - case u.Type.BLOCK_LITERAL: - return new xn4(t12, e3); - case u.Type.FLOW_MAP: - case u.Type.FLOW_SEQ: - return new Rn5(t12, e3); - case u.Type.MAP_KEY: - case u.Type.MAP_VALUE: - case u.Type.SEQ_ITEM: - return new ut5(t12, e3); - case u.Type.COMMENT: - case u.Type.PLAIN: - return new u.PlainValue(t12, e3); - case u.Type.QUOTE_DOUBLE: - return new Dn5(t12, e3); - case u.Type.QUOTE_SINGLE: - return new Yn5(t12, e3); - default: - return null; - } - } - var Bn4 = class t12 { - static parseType(e3, n, r3) { - switch (e3[n]) { - case "*": - return u.Type.ALIAS; - case ">": - return u.Type.BLOCK_FOLDED; - case "|": - return u.Type.BLOCK_LITERAL; - case "{": - return u.Type.FLOW_MAP; - case "[": - return u.Type.FLOW_SEQ; - case "?": - return !r3 && u.Node.atBlank(e3, n + 1, true) ? u.Type.MAP_KEY : u.Type.PLAIN; - case ":": - return !r3 && u.Node.atBlank(e3, n + 1, true) ? u.Type.MAP_VALUE : u.Type.PLAIN; - case "-": - return !r3 && u.Node.atBlank(e3, n + 1, true) ? u.Type.SEQ_ITEM : u.Type.PLAIN; - case '"': - return u.Type.QUOTE_DOUBLE; - case "'": - return u.Type.QUOTE_SINGLE; - default: - return u.Type.PLAIN; - } - } - constructor(e3 = {}, { atLineStart: n, inCollection: r3, inFlow: s3, indent: i, lineStart: o2, parent: a } = {}) { - u._defineProperty(this, "parseNode", (c3, l) => { - if (u.Node.atDocumentBoundary(this.src, l)) - return null; - let f3 = new t12(this, c3), { props: m3, type: d5, valueStart: y5 } = f3.parseProps(l), h4 = Co2(d5, m3), g3 = h4.parse(f3, y5); - if (h4.range = new u.Range(l, g3), g3 <= l && (h4.error = new Error("Node#parse consumed no characters"), h4.error.parseEnd = g3, h4.error.source = h4, h4.range.end = l + 1), f3.nodeStartsCollection(h4)) { - !h4.error && !f3.atLineStart && f3.parent.type === u.Type.DOCUMENT && (h4.error = new u.YAMLSyntaxError(h4, "Block collection must not have preceding content here (e.g. directives-end indicator)")); - let w4 = new Bt7(h4); - return g3 = w4.parse(new t12(f3), g3), w4.range = new u.Range(l, g3), w4; - } - return h4; - }), this.atLineStart = n ?? (e3.atLineStart || false), this.inCollection = r3 ?? (e3.inCollection || false), this.inFlow = s3 ?? (e3.inFlow || false), this.indent = i ?? e3.indent, this.lineStart = o2 ?? e3.lineStart, this.parent = a ?? (e3.parent || {}), this.root = e3.root, this.src = e3.src; - } - nodeStartsCollection(e3) { - let { inCollection: n, inFlow: r3, src: s3 } = this; - if (n || r3) - return false; - if (e3 instanceof ut5) - return true; - let i = e3.range.end; - return s3[i] === ` -` || s3[i - 1] === ` -` ? false : (i = u.Node.endOfWhiteSpace(s3, i), s3[i] === ":"); - } - parseProps(e3) { - let { inFlow: n, parent: r3, src: s3 } = this, i = [], o2 = false; - e3 = this.atLineStart ? u.Node.endOfIndent(s3, e3) : u.Node.endOfWhiteSpace(s3, e3); - let a = s3[e3]; - for (; a === u.Char.ANCHOR || a === u.Char.COMMENT || a === u.Char.TAG || a === ` -`; ) { - if (a === ` -`) { - let l = e3, f3; - do - f3 = l + 1, l = u.Node.endOfIndent(s3, f3); - while (s3[l] === ` -`); - let m3 = l - (f3 + this.indent), d5 = r3.type === u.Type.SEQ_ITEM && r3.context.atLineStart; - if (s3[l] !== "#" && !u.Node.nextNodeIsIndented(s3[l], m3, !d5)) - break; - this.atLineStart = true, this.lineStart = f3, o2 = false, e3 = l; - } else if (a === u.Char.COMMENT) { - let l = u.Node.endOfLine(s3, e3 + 1); - i.push(new u.Range(e3, l)), e3 = l; - } else { - let l = u.Node.endOfIdentifier(s3, e3 + 1); - a === u.Char.TAG && s3[l] === "," && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(s3.slice(e3 + 1, l + 13)) && (l = u.Node.endOfIdentifier(s3, l + 5)), i.push(new u.Range(e3, l)), o2 = true, e3 = u.Node.endOfWhiteSpace(s3, l); - } - a = s3[e3]; - } - o2 && a === ":" && u.Node.atBlank(s3, e3 + 1, true) && (e3 -= 1); - let c3 = t12.parseType(s3, e3, n); - return { props: i, type: c3, valueStart: e3 }; - } - }; - function Mo2(t12) { - let e3 = []; - t12.indexOf("\r") !== -1 && (t12 = t12.replace(/\r\n?/g, (s3, i) => (s3.length > 1 && e3.push(i), ` -`))); - let n = [], r3 = 0; - do { - let s3 = new Pn5(), i = new Bn4({ src: t12 }); - r3 = s3.parse(i, r3), n.push(s3); - } while (r3 < t12.length); - return n.setOrigRanges = () => { - if (e3.length === 0) - return false; - for (let i = 1; i < e3.length; ++i) - e3[i] -= i; - let s3 = 0; - for (let i = 0; i < n.length; ++i) - s3 = n[i].setOrigRanges(e3, s3); - return e3.splice(0, e3.length), true; - }, n.toString = () => n.join(`... -`), n; - } - vs7.parse = Mo2; - }); - $e8 = ee9((k4) => { - "use strict"; - var p4 = le9(); - function ko2(t12, e3, n) { - return n ? `#${n.replace(/[\s\S]^/gm, `$&${e3}#`)} -${e3}${t12}` : t12; - } - function Be9(t12, e3, n) { - return n ? n.indexOf(` -`) === -1 ? `${t12} #${n}` : `${t12} -` + n.replace(/^/gm, `${e3 || ""}#`) : t12; - } - var V7 = class { - }; - function ue7(t12, e3, n) { - if (Array.isArray(t12)) - return t12.map((r3, s3) => ue7(r3, String(s3), n)); - if (t12 && typeof t12.toJSON == "function") { - let r3 = n && n.anchors && n.anchors.get(t12); - r3 && (n.onCreate = (i) => { - r3.res = i, delete n.onCreate; - }); - let s3 = t12.toJSON(e3, n); - return r3 && n.onCreate && n.onCreate(s3), s3; - } - return (!n || !n.keep) && typeof t12 == "bigint" ? Number(t12) : t12; - } - var P10 = class extends V7 { - constructor(e3) { - super(), this.value = e3; - } - toJSON(e3, n) { - return n && n.keep ? this.value : ue7(this.value, e3, n); - } - toString() { - return String(this.value); - } - }; - function Ps7(t12, e3, n) { - let r3 = n; - for (let s3 = e3.length - 1; s3 >= 0; --s3) { - let i = e3[s3]; - if (Number.isInteger(i) && i >= 0) { - let o2 = []; - o2[i] = r3, r3 = o2; - } else { - let o2 = {}; - Object.defineProperty(o2, i, { value: r3, writable: true, enumerable: true, configurable: true }), r3 = o2; - } - } - return t12.createNode(r3, false); - } - var Rs6 = (t12) => t12 == null || typeof t12 == "object" && t12[Symbol.iterator]().next().done, W7 = class t12 extends V7 { - constructor(e3) { - super(), p4._defineProperty(this, "items", []), this.schema = e3; - } - addIn(e3, n) { - if (Rs6(e3)) - this.add(n); - else { - let [r3, ...s3] = e3, i = this.get(r3, true); - if (i instanceof t12) - i.addIn(s3, n); - else if (i === void 0 && this.schema) - this.set(r3, Ps7(this.schema, s3, n)); - else - throw new Error(`Expected YAML collection at ${r3}. Remaining path: ${s3}`); - } - } - deleteIn([e3, ...n]) { - if (n.length === 0) - return this.delete(e3); - let r3 = this.get(e3, true); - if (r3 instanceof t12) - return r3.deleteIn(n); - throw new Error(`Expected YAML collection at ${e3}. Remaining path: ${n}`); - } - getIn([e3, ...n], r3) { - let s3 = this.get(e3, true); - return n.length === 0 ? !r3 && s3 instanceof P10 ? s3.value : s3 : s3 instanceof t12 ? s3.getIn(n, r3) : void 0; - } - hasAllNullValues() { - return this.items.every((e3) => { - if (!e3 || e3.type !== "PAIR") - return false; - let n = e3.value; - return n == null || n instanceof P10 && n.value == null && !n.commentBefore && !n.comment && !n.tag; - }); - } - hasIn([e3, ...n]) { - if (n.length === 0) - return this.has(e3); - let r3 = this.get(e3, true); - return r3 instanceof t12 ? r3.hasIn(n) : false; - } - setIn([e3, ...n], r3) { - if (n.length === 0) - this.set(e3, r3); - else { - let s3 = this.get(e3, true); - if (s3 instanceof t12) - s3.setIn(n, r3); - else if (s3 === void 0 && this.schema) - this.set(e3, Ps7(this.schema, n, r3)); - else - throw new Error(`Expected YAML collection at ${e3}. Remaining path: ${n}`); - } - } - toJSON() { - return null; - } - toString(e3, { blockItem: n, flowChars: r3, isMap: s3, itemIndent: i }, o2, a) { - let { indent: c3, indentStep: l, stringify: f3 } = e3, m3 = this.type === p4.Type.FLOW_MAP || this.type === p4.Type.FLOW_SEQ || e3.inFlow; - m3 && (i += l); - let d5 = s3 && this.hasAllNullValues(); - e3 = Object.assign({}, e3, { allNullValues: d5, indent: i, inFlow: m3, type: null }); - let y5 = false, h4 = false, g3 = this.items.reduce((C6, L7, M8) => { - let A6; - L7 && (!y5 && L7.spaceBefore && C6.push({ type: "comment", str: "" }), L7.commentBefore && L7.commentBefore.match(/^.*$/gm).forEach((Oi6) => { - C6.push({ type: "comment", str: `#${Oi6}` }); - }), L7.comment && (A6 = L7.comment), m3 && (!y5 && L7.spaceBefore || L7.commentBefore || L7.comment || L7.key && (L7.key.commentBefore || L7.key.comment) || L7.value && (L7.value.commentBefore || L7.value.comment)) && (h4 = true)), y5 = false; - let _6 = f3(L7, e3, () => A6 = null, () => y5 = true); - return m3 && !h4 && _6.includes(` -`) && (h4 = true), m3 && M8 < this.items.length - 1 && (_6 += ","), _6 = Be9(_6, i, A6), y5 && (A6 || m3) && (y5 = false), C6.push({ type: "item", str: _6 }), C6; - }, []), w4; - if (g3.length === 0) - w4 = r3.start + r3.end; - else if (m3) { - let { start: C6, end: L7 } = r3, M8 = g3.map((A6) => A6.str); - if (h4 || M8.reduce((A6, _6) => A6 + _6.length + 2, 2) > t12.maxFlowStringSingleLineLength) { - w4 = C6; - for (let A6 of M8) - w4 += A6 ? ` -${l}${c3}${A6}` : ` -`; - w4 += ` -${c3}${L7}`; - } else - w4 = `${C6} ${M8.join(" ")} ${L7}`; - } else { - let C6 = g3.map(n); - w4 = C6.shift(); - for (let L7 of C6) - w4 += L7 ? ` -${c3}${L7}` : ` -`; - } - return this.comment ? (w4 += ` -` + this.comment.replace(/^/gm, `${c3}#`), o2 && o2()) : y5 && a && a(), w4; - } - }; - p4._defineProperty(W7, "maxFlowStringSingleLineLength", 60); - function $t8(t12) { - let e3 = t12 instanceof P10 ? t12.value : t12; - return e3 && typeof e3 == "string" && (e3 = Number(e3)), Number.isInteger(e3) && e3 >= 0 ? e3 : null; - } - var pe7 = class extends W7 { - add(e3) { - this.items.push(e3); - } - delete(e3) { - let n = $t8(e3); - return typeof n != "number" ? false : this.items.splice(n, 1).length > 0; - } - get(e3, n) { - let r3 = $t8(e3); - if (typeof r3 != "number") - return; - let s3 = this.items[r3]; - return !n && s3 instanceof P10 ? s3.value : s3; - } - has(e3) { - let n = $t8(e3); - return typeof n == "number" && n < this.items.length; - } - set(e3, n) { - let r3 = $t8(e3); - if (typeof r3 != "number") - throw new Error(`Expected a valid index, not ${e3}.`); - this.items[r3] = n; - } - toJSON(e3, n) { - let r3 = []; - n && n.onCreate && n.onCreate(r3); - let s3 = 0; - for (let i of this.items) - r3.push(ue7(i, String(s3++), n)); - return r3; - } - toString(e3, n, r3) { - return e3 ? super.toString(e3, { blockItem: (s3) => s3.type === "comment" ? s3.str : `- ${s3.str}`, flowChars: { start: "[", end: "]" }, isMap: false, itemIndent: (e3.indent || "") + " " }, n, r3) : JSON.stringify(this); - } - }, vo3 = (t12, e3, n) => e3 === null ? "" : typeof e3 != "object" ? String(e3) : t12 instanceof V7 && n && n.doc ? t12.toString({ anchors: /* @__PURE__ */ Object.create(null), doc: n.doc, indent: "", indentStep: n.indentStep, inFlow: true, inStringifyKey: true, stringify: n.stringify }) : JSON.stringify(e3), T4 = class t12 extends V7 { - constructor(e3, n = null) { - super(), this.key = e3, this.value = n, this.type = t12.Type.PAIR; - } - get commentBefore() { - return this.key instanceof V7 ? this.key.commentBefore : void 0; - } - set commentBefore(e3) { - if (this.key == null && (this.key = new P10(null)), this.key instanceof V7) - this.key.commentBefore = e3; - else { - let n = "Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node."; - throw new Error(n); - } - } - addToJSMap(e3, n) { - let r3 = ue7(this.key, "", e3); - if (n instanceof Map) { - let s3 = ue7(this.value, r3, e3); - n.set(r3, s3); - } else if (n instanceof Set) - n.add(r3); - else { - let s3 = vo3(this.key, r3, e3), i = ue7(this.value, s3, e3); - s3 in n ? Object.defineProperty(n, s3, { value: i, writable: true, enumerable: true, configurable: true }) : n[s3] = i; - } - return n; - } - toJSON(e3, n) { - let r3 = n && n.mapAsMap ? /* @__PURE__ */ new Map() : {}; - return this.addToJSMap(n, r3); - } - toString(e3, n, r3) { - if (!e3 || !e3.doc) - return JSON.stringify(this); - let { indent: s3, indentSeq: i, simpleKeys: o2 } = e3.doc.options, { key: a, value: c3 } = this, l = a instanceof V7 && a.comment; - if (o2) { - if (l) - throw new Error("With simple keys, key nodes cannot have comments"); - if (a instanceof W7) { - let _6 = "With simple keys, collection cannot be used as a key value"; - throw new Error(_6); - } - } - let f3 = !o2 && (!a || l || (a instanceof V7 ? a instanceof W7 || a.type === p4.Type.BLOCK_FOLDED || a.type === p4.Type.BLOCK_LITERAL : typeof a == "object")), { doc: m3, indent: d5, indentStep: y5, stringify: h4 } = e3; - e3 = Object.assign({}, e3, { implicitKey: !f3, indent: d5 + y5 }); - let g3 = false, w4 = h4(a, e3, () => l = null, () => g3 = true); - if (w4 = Be9(w4, e3.indent, l), !f3 && w4.length > 1024) { - if (o2) - throw new Error("With simple keys, single line scalar must not span more than 1024 characters"); - f3 = true; - } - if (e3.allNullValues && !o2) - return this.comment ? (w4 = Be9(w4, e3.indent, this.comment), n && n()) : g3 && !l && r3 && r3(), e3.inFlow && !f3 ? w4 : `? ${w4}`; - w4 = f3 ? `? ${w4} -${d5}:` : `${w4}:`, this.comment && (w4 = Be9(w4, e3.indent, this.comment), n && n()); - let C6 = "", L7 = null; - if (c3 instanceof V7) { - if (c3.spaceBefore && (C6 = ` -`), c3.commentBefore) { - let _6 = c3.commentBefore.replace(/^/gm, `${e3.indent}#`); - C6 += ` -${_6}`; - } - L7 = c3.comment; - } else - c3 && typeof c3 == "object" && (c3 = m3.schema.createNode(c3, true)); - e3.implicitKey = false, !f3 && !this.comment && c3 instanceof P10 && (e3.indentAtStart = w4.length + 1), g3 = false, !i && s3 >= 2 && !e3.inFlow && !f3 && c3 instanceof pe7 && c3.type !== p4.Type.FLOW_SEQ && !c3.tag && !m3.anchors.getName(c3) && (e3.indent = e3.indent.substr(2)); - let M8 = h4(c3, e3, () => L7 = null, () => g3 = true), A6 = " "; - return C6 || this.comment ? A6 = `${C6} -${e3.indent}` : !f3 && c3 instanceof W7 ? (!(M8[0] === "[" || M8[0] === "{") || M8.includes(` -`)) && (A6 = ` -${e3.indent}`) : M8[0] === ` -` && (A6 = ""), g3 && !L7 && r3 && r3(), Be9(w4 + A6 + M8, e3.indent, L7); - } - }; - p4._defineProperty(T4, "Type", { PAIR: "PAIR", MERGE_PAIR: "MERGE_PAIR" }); - var Ft7 = (t12, e3) => { - if (t12 instanceof we9) { - let n = e3.get(t12.source); - return n.count * n.aliasCount; - } else if (t12 instanceof W7) { - let n = 0; - for (let r3 of t12.items) { - let s3 = Ft7(r3, e3); - s3 > n && (n = s3); - } - return n; - } else if (t12 instanceof T4) { - let n = Ft7(t12.key, e3), r3 = Ft7(t12.value, e3); - return Math.max(n, r3); - } - return 1; - }, we9 = class t12 extends V7 { - static stringify({ range: e3, source: n }, { anchors: r3, doc: s3, implicitKey: i, inStringifyKey: o2 }) { - let a = Object.keys(r3).find((l) => r3[l] === n); - if (!a && o2 && (a = s3.anchors.getName(n) || s3.anchors.newName()), a) - return `*${a}${i ? " " : ""}`; - let c3 = s3.anchors.getName(n) ? "Alias node must be after source node" : "Source node not found for alias node"; - throw new Error(`${c3} [${e3}]`); - } - constructor(e3) { - super(), this.source = e3, this.type = p4.Type.ALIAS; - } - set tag(e3) { - throw new Error("Alias nodes cannot have tags"); - } - toJSON(e3, n) { - if (!n) - return ue7(this.source, e3, n); - let { anchors: r3, maxAliasCount: s3 } = n, i = r3.get(this.source); - if (!i || i.res === void 0) { - let o2 = "This should not happen: Alias anchor was not resolved?"; - throw this.cstNode ? new p4.YAMLReferenceError(this.cstNode, o2) : new ReferenceError(o2); - } - if (s3 >= 0 && (i.count += 1, i.aliasCount === 0 && (i.aliasCount = Ft7(this.source, r3)), i.count * i.aliasCount > s3)) { - let o2 = "Excessive alias count indicates a resource exhaustion attack"; - throw this.cstNode ? new p4.YAMLReferenceError(this.cstNode, o2) : new ReferenceError(o2); - } - return i.res; - } - toString(e3) { - return t12.stringify(this, e3); - } - }; - p4._defineProperty(we9, "default", true); - function pt5(t12, e3) { - let n = e3 instanceof P10 ? e3.value : e3; - for (let r3 of t12) - if (r3 instanceof T4 && (r3.key === e3 || r3.key === n || r3.key && r3.key.value === n)) - return r3; - } - var mt7 = class extends W7 { - add(e3, n) { - e3 ? e3 instanceof T4 || (e3 = new T4(e3.key || e3, e3.value)) : e3 = new T4(e3); - let r3 = pt5(this.items, e3.key), s3 = this.schema && this.schema.sortMapEntries; - if (r3) - if (n) - r3.value = e3.value; - else - throw new Error(`Key ${e3.key} already set`); - else if (s3) { - let i = this.items.findIndex((o2) => s3(e3, o2) < 0); - i === -1 ? this.items.push(e3) : this.items.splice(i, 0, e3); - } else - this.items.push(e3); - } - delete(e3) { - let n = pt5(this.items, e3); - return n ? this.items.splice(this.items.indexOf(n), 1).length > 0 : false; - } - get(e3, n) { - let r3 = pt5(this.items, e3), s3 = r3 && r3.value; - return !n && s3 instanceof P10 ? s3.value : s3; - } - has(e3) { - return !!pt5(this.items, e3); - } - set(e3, n) { - this.add(new T4(e3, n), true); - } - toJSON(e3, n, r3) { - let s3 = r3 ? new r3() : n && n.mapAsMap ? /* @__PURE__ */ new Map() : {}; - n && n.onCreate && n.onCreate(s3); - for (let i of this.items) - i.addToJSMap(n, s3); - return s3; - } - toString(e3, n, r3) { - if (!e3) - return JSON.stringify(this); - for (let s3 of this.items) - if (!(s3 instanceof T4)) - throw new Error(`Map items must all be pairs; found ${JSON.stringify(s3)} instead`); - return super.toString(e3, { blockItem: (s3) => s3.str, flowChars: { start: "{", end: "}" }, isMap: true, itemIndent: e3.indent || "" }, n, r3); - } - }, Ds8 = "<<", Kt6 = class extends T4 { - constructor(e3) { - if (e3 instanceof T4) { - let n = e3.value; - n instanceof pe7 || (n = new pe7(), n.items.push(e3.value), n.range = e3.value.range), super(e3.key, n), this.range = e3.range; - } else - super(new P10(Ds8), new pe7()); - this.type = T4.Type.MERGE_PAIR; - } - addToJSMap(e3, n) { - for (let { source: r3 } of this.value.items) { - if (!(r3 instanceof mt7)) - throw new Error("Merge sources must be maps"); - let s3 = r3.toJSON(null, e3, Map); - for (let [i, o2] of s3) - n instanceof Map ? n.has(i) || n.set(i, o2) : n instanceof Set ? n.add(i) : Object.prototype.hasOwnProperty.call(n, i) || Object.defineProperty(n, i, { value: o2, writable: true, enumerable: true, configurable: true }); - } - return n; - } - toString(e3, n) { - let r3 = this.value; - if (r3.items.length > 1) - return super.toString(e3, n); - this.value = r3.items[0]; - let s3 = super.toString(e3, n); - return this.value = r3, s3; - } - }, Io2 = { defaultType: p4.Type.BLOCK_LITERAL, lineWidth: 76 }, Po2 = { trueStr: "true", falseStr: "false" }, _o3 = { asBigInt: false }, xo3 = { nullStr: "null" }, be11 = { defaultType: p4.Type.PLAIN, doubleQuoted: { jsonEncoding: false, minMultiLineLength: 40 }, fold: { lineWidth: 80, minContentWidth: 20 } }; - function Fn6(t12, e3, n) { - for (let { format: r3, test: s3, resolve: i } of e3) - if (s3) { - let o2 = t12.match(s3); - if (o2) { - let a = i.apply(null, o2); - return a instanceof P10 || (a = new P10(a)), r3 && (a.format = r3), a; - } - } - return n && (t12 = n(t12)), new P10(t12); - } - var Ys5 = "flow", $n5 = "block", qt4 = "quoted", _s7 = (t12, e3) => { - let n = t12[e3 + 1]; - for (; n === " " || n === " "; ) { - do - n = t12[e3 += 1]; - while (n && n !== ` -`); - n = t12[e3 + 1]; - } - return e3; - }; - function Vt4(t12, e3, n, { indentAtStart: r3, lineWidth: s3 = 80, minContentWidth: i = 20, onFold: o2, onOverflow: a }) { - if (!s3 || s3 < 0) - return t12; - let c3 = Math.max(1 + i, 1 + s3 - e3.length); - if (t12.length <= c3) - return t12; - let l = [], f3 = {}, m3 = s3 - e3.length; - typeof r3 == "number" && (r3 > s3 - Math.max(2, i) ? l.push(0) : m3 = s3 - r3); - let d5, y5, h4 = false, g3 = -1, w4 = -1, C6 = -1; - n === $n5 && (g3 = _s7(t12, g3), g3 !== -1 && (m3 = g3 + c3)); - for (let M8; M8 = t12[g3 += 1]; ) { - if (n === qt4 && M8 === "\\") { - switch (w4 = g3, t12[g3 + 1]) { - case "x": - g3 += 3; - break; - case "u": - g3 += 5; - break; - case "U": - g3 += 9; - break; - default: - g3 += 1; - } - C6 = g3; - } - if (M8 === ` -`) - n === $n5 && (g3 = _s7(t12, g3)), m3 = g3 + c3, d5 = void 0; - else { - if (M8 === " " && y5 && y5 !== " " && y5 !== ` -` && y5 !== " ") { - let A6 = t12[g3 + 1]; - A6 && A6 !== " " && A6 !== ` -` && A6 !== " " && (d5 = g3); - } - if (g3 >= m3) - if (d5) - l.push(d5), m3 = d5 + c3, d5 = void 0; - else if (n === qt4) { - for (; y5 === " " || y5 === " "; ) - y5 = M8, M8 = t12[g3 += 1], h4 = true; - let A6 = g3 > C6 + 1 ? g3 - 2 : w4 - 1; - if (f3[A6]) - return t12; - l.push(A6), f3[A6] = true, m3 = A6 + c3, d5 = void 0; - } else - h4 = true; - } - y5 = M8; - } - if (h4 && a && a(), l.length === 0) - return t12; - o2 && o2(); - let L7 = t12.slice(0, l[0]); - for (let M8 = 0; M8 < l.length; ++M8) { - let A6 = l[M8], _6 = l[M8 + 1] || t12.length; - A6 === 0 ? L7 = ` -${e3}${t12.slice(0, _6)}` : (n === qt4 && f3[A6] && (L7 += `${t12[A6]}\\`), L7 += ` -${e3}${t12.slice(A6 + 1, _6)}`); - } - return L7; - } - var qn5 = ({ indentAtStart: t12 }) => t12 ? Object.assign({ indentAtStart: t12 }, be11.fold) : be11.fold, Wt6 = (t12) => /^(%|---|\.\.\.)/m.test(t12); - function Ro3(t12, e3, n) { - if (!e3 || e3 < 0) - return false; - let r3 = e3 - n, s3 = t12.length; - if (s3 <= r3) - return false; - for (let i = 0, o2 = 0; i < s3; ++i) - if (t12[i] === ` -`) { - if (i - o2 > r3) - return true; - if (o2 = i + 1, s3 - o2 <= r3) - return false; - } - return true; - } - function Se9(t12, e3) { - let { implicitKey: n } = e3, { jsonEncoding: r3, minMultiLineLength: s3 } = be11.doubleQuoted, i = JSON.stringify(t12); - if (r3) - return i; - let o2 = e3.indent || (Wt6(t12) ? " " : ""), a = "", c3 = 0; - for (let l = 0, f3 = i[l]; f3; f3 = i[++l]) - if (f3 === " " && i[l + 1] === "\\" && i[l + 2] === "n" && (a += i.slice(c3, l) + "\\ ", l += 1, c3 = l, f3 = "\\"), f3 === "\\") - switch (i[l + 1]) { - case "u": - { - a += i.slice(c3, l); - let m3 = i.substr(l + 2, 4); - switch (m3) { - case "0000": - a += "\\0"; - break; - case "0007": - a += "\\a"; - break; - case "000b": - a += "\\v"; - break; - case "001b": - a += "\\e"; - break; - case "0085": - a += "\\N"; - break; - case "00a0": - a += "\\_"; - break; - case "2028": - a += "\\L"; - break; - case "2029": - a += "\\P"; - break; - default: - m3.substr(0, 2) === "00" ? a += "\\x" + m3.substr(2) : a += i.substr(l, 6); - } - l += 5, c3 = l + 1; - } - break; - case "n": - if (n || i[l + 2] === '"' || i.length < s3) - l += 1; - else { - for (a += i.slice(c3, l) + ` - -`; i[l + 2] === "\\" && i[l + 3] === "n" && i[l + 4] !== '"'; ) - a += ` -`, l += 2; - a += o2, i[l + 2] === " " && (a += "\\"), l += 1, c3 = l + 1; - } - break; - default: - l += 1; - } - return a = c3 ? a + i.slice(c3) : i, n ? a : Vt4(a, o2, qt4, qn5(e3)); - } - function Bs7(t12, e3) { - if (e3.implicitKey) { - if (/\n/.test(t12)) - return Se9(t12, e3); - } else if (/[ \t]\n|\n[ \t]/.test(t12)) - return Se9(t12, e3); - let n = e3.indent || (Wt6(t12) ? " " : ""), r3 = "'" + t12.replace(/'/g, "''").replace(/\n+/g, `$& -${n}`) + "'"; - return e3.implicitKey ? r3 : Vt4(r3, n, Ys5, qn5(e3)); - } - function Ut5({ comment: t12, type: e3, value: n }, r3, s3, i) { - if (/\n[\t ]+$/.test(n) || /^\s*$/.test(n)) - return Se9(n, r3); - let o2 = r3.indent || (r3.forceBlockIndent || Wt6(n) ? " " : ""), a = o2 ? "2" : "1", c3 = e3 === p4.Type.BLOCK_FOLDED ? false : e3 === p4.Type.BLOCK_LITERAL ? true : !Ro3(n, be11.fold.lineWidth, o2.length), l = c3 ? "|" : ">"; - if (!n) - return l + ` -`; - let f3 = "", m3 = ""; - if (n = n.replace(/[\n\t ]*$/, (y5) => { - let h4 = y5.indexOf(` -`); - return h4 === -1 ? l += "-" : (n === y5 || h4 !== y5.length - 1) && (l += "+", i && i()), m3 = y5.replace(/\n$/, ""), ""; - }).replace(/^[\n ]*/, (y5) => { - y5.indexOf(" ") !== -1 && (l += a); - let h4 = y5.match(/ +$/); - return h4 ? (f3 = y5.slice(0, -h4[0].length), h4[0]) : (f3 = y5, ""); - }), m3 && (m3 = m3.replace(/\n+(?!\n|$)/g, `$&${o2}`)), f3 && (f3 = f3.replace(/\n+/g, `$&${o2}`)), t12 && (l += " #" + t12.replace(/ ?[\r\n]+/g, " "), s3 && s3()), !n) - return `${l}${a} -${o2}${m3}`; - if (c3) - return n = n.replace(/\n+/g, `$&${o2}`), `${l} -${o2}${f3}${n}${m3}`; - n = n.replace(/\n+/g, ` -$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${o2}`); - let d5 = Vt4(`${f3}${n}${m3}`, o2, $n5, be11.fold); - return `${l} -${o2}${d5}`; - } - function Do2(t12, e3, n, r3) { - let { comment: s3, type: i, value: o2 } = t12, { actualString: a, implicitKey: c3, indent: l, inFlow: f3 } = e3; - if (c3 && /[\n[\]{},]/.test(o2) || f3 && /[[\]{},]/.test(o2)) - return Se9(o2, e3); - if (!o2 || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o2)) - return c3 || f3 || o2.indexOf(` -`) === -1 ? o2.indexOf('"') !== -1 && o2.indexOf("'") === -1 ? Bs7(o2, e3) : Se9(o2, e3) : Ut5(t12, e3, n, r3); - if (!c3 && !f3 && i !== p4.Type.PLAIN && o2.indexOf(` -`) !== -1) - return Ut5(t12, e3, n, r3); - if (l === "" && Wt6(o2)) - return e3.forceBlockIndent = true, Ut5(t12, e3, n, r3); - let m3 = o2.replace(/\n+/g, `$& -${l}`); - if (a) { - let { tags: y5 } = e3.doc.schema; - if (typeof Fn6(m3, y5, y5.scalarFallback).value != "string") - return Se9(o2, e3); - } - let d5 = c3 ? m3 : Vt4(m3, l, Ys5, qn5(e3)); - return s3 && !f3 && (d5.indexOf(` -`) !== -1 || s3.indexOf(` -`) !== -1) ? (n && n(), ko2(d5, l, s3)) : d5; - } - function Yo3(t12, e3, n, r3) { - let { defaultType: s3 } = be11, { implicitKey: i, inFlow: o2 } = e3, { type: a, value: c3 } = t12; - typeof c3 != "string" && (c3 = String(c3), t12 = Object.assign({}, t12, { value: c3 })); - let l = (m3) => { - switch (m3) { - case p4.Type.BLOCK_FOLDED: - case p4.Type.BLOCK_LITERAL: - return Ut5(t12, e3, n, r3); - case p4.Type.QUOTE_DOUBLE: - return Se9(c3, e3); - case p4.Type.QUOTE_SINGLE: - return Bs7(c3, e3); - case p4.Type.PLAIN: - return Do2(t12, e3, n, r3); - default: - return null; - } - }; - (a !== p4.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(c3) || (i || o2) && (a === p4.Type.BLOCK_FOLDED || a === p4.Type.BLOCK_LITERAL)) && (a = p4.Type.QUOTE_DOUBLE); - let f3 = l(a); - if (f3 === null && (f3 = l(s3), f3 === null)) - throw new Error(`Unsupported default string type ${s3}`); - return f3; - } - function Bo3({ format: t12, minFractionDigits: e3, tag: n, value: r3 }) { - if (typeof r3 == "bigint") - return String(r3); - if (!isFinite(r3)) - return isNaN(r3) ? ".nan" : r3 < 0 ? "-.inf" : ".inf"; - let s3 = JSON.stringify(r3); - if (!t12 && e3 && (!n || n === "tag:yaml.org,2002:float") && /^\d/.test(s3)) { - let i = s3.indexOf("."); - i < 0 && (i = s3.length, s3 += "."); - let o2 = e3 - (s3.length - i - 1); - for (; o2-- > 0; ) - s3 += "0"; - } - return s3; - } - function $s6(t12, e3) { - let n, r3; - switch (e3.type) { - case p4.Type.FLOW_MAP: - n = "}", r3 = "flow map"; - break; - case p4.Type.FLOW_SEQ: - n = "]", r3 = "flow sequence"; - break; - default: - t12.push(new p4.YAMLSemanticError(e3, "Not a flow collection!?")); - return; - } - let s3; - for (let i = e3.items.length - 1; i >= 0; --i) { - let o2 = e3.items[i]; - if (!o2 || o2.type !== p4.Type.COMMENT) { - s3 = o2; - break; - } - } - if (s3 && s3.char !== n) { - let i = `Expected ${r3} to end with ${n}`, o2; - typeof s3.offset == "number" ? (o2 = new p4.YAMLSemanticError(e3, i), o2.offset = s3.offset + 1) : (o2 = new p4.YAMLSemanticError(s3, i), s3.range && s3.range.end && (o2.offset = s3.range.end - s3.range.start)), t12.push(o2); - } - } - function Fs7(t12, e3) { - let n = e3.context.src[e3.range.start - 1]; - if (n !== ` -` && n !== " " && n !== " ") { - let r3 = "Comments must be separated from other tokens by white space characters"; - t12.push(new p4.YAMLSemanticError(e3, r3)); - } - } - function qs6(t12, e3) { - let n = String(e3), r3 = n.substr(0, 8) + "..." + n.substr(-8); - return new p4.YAMLSemanticError(t12, `The "${r3}" key is too long`); - } - function Us7(t12, e3) { - for (let { afterKey: n, before: r3, comment: s3 } of e3) { - let i = t12.items[r3]; - i ? (n && i.value && (i = i.value), s3 === void 0 ? (n || !i.commentBefore) && (i.spaceBefore = true) : i.commentBefore ? i.commentBefore += ` -` + s3 : i.commentBefore = s3) : s3 !== void 0 && (t12.comment ? t12.comment += ` -` + s3 : t12.comment = s3); - } - } - function Un5(t12, e3) { - let n = e3.strValue; - return n ? typeof n == "string" ? n : (n.errors.forEach((r3) => { - r3.source || (r3.source = e3), t12.errors.push(r3); - }), n.str) : ""; - } - function $o3(t12, e3) { - let { handle: n, suffix: r3 } = e3.tag, s3 = t12.tagPrefixes.find((i) => i.handle === n); - if (!s3) { - let i = t12.getDefaults().tagPrefixes; - if (i && (s3 = i.find((o2) => o2.handle === n)), !s3) - throw new p4.YAMLSemanticError(e3, `The ${n} tag handle is non-default and was not declared.`); - } - if (!r3) - throw new p4.YAMLSemanticError(e3, `The ${n} tag has no suffix.`); - if (n === "!" && (t12.version || t12.options.version) === "1.0") { - if (r3[0] === "^") - return t12.warnings.push(new p4.YAMLWarning(e3, "YAML 1.0 ^ tag expansion is not supported")), r3; - if (/[:/]/.test(r3)) { - let i = r3.match(/^([a-z0-9-]+)\/(.*)/i); - return i ? `tag:${i[1]}.yaml.org,2002:${i[2]}` : `tag:${r3}`; - } - } - return s3.prefix + decodeURIComponent(r3); - } - function Fo3(t12, e3) { - let { tag: n, type: r3 } = e3, s3 = false; - if (n) { - let { handle: i, suffix: o2, verbatim: a } = n; - if (a) { - if (a !== "!" && a !== "!!") - return a; - let c3 = `Verbatim tags aren't resolved, so ${a} is invalid.`; - t12.errors.push(new p4.YAMLSemanticError(e3, c3)); - } else if (i === "!" && !o2) - s3 = true; - else - try { - return $o3(t12, e3); - } catch (c3) { - t12.errors.push(c3); - } - } - switch (r3) { - case p4.Type.BLOCK_FOLDED: - case p4.Type.BLOCK_LITERAL: - case p4.Type.QUOTE_DOUBLE: - case p4.Type.QUOTE_SINGLE: - return p4.defaultTags.STR; - case p4.Type.FLOW_MAP: - case p4.Type.MAP: - return p4.defaultTags.MAP; - case p4.Type.FLOW_SEQ: - case p4.Type.SEQ: - return p4.defaultTags.SEQ; - case p4.Type.PLAIN: - return s3 ? p4.defaultTags.STR : null; - default: - return null; - } - } - function xs5(t12, e3, n) { - let { tags: r3 } = t12.schema, s3 = []; - for (let o2 of r3) - if (o2.tag === n) - if (o2.test) - s3.push(o2); - else { - let a = o2.resolve(t12, e3); - return a instanceof W7 ? a : new P10(a); - } - let i = Un5(t12, e3); - return typeof i == "string" && s3.length > 0 ? Fn6(i, s3, r3.scalarFallback) : null; - } - function qo3({ type: t12 }) { - switch (t12) { - case p4.Type.FLOW_MAP: - case p4.Type.MAP: - return p4.defaultTags.MAP; - case p4.Type.FLOW_SEQ: - case p4.Type.SEQ: - return p4.defaultTags.SEQ; - default: - return p4.defaultTags.STR; - } - } - function Uo2(t12, e3, n) { - try { - let r3 = xs5(t12, e3, n); - if (r3) - return n && e3.tag && (r3.tag = n), r3; - } catch (r3) { - return r3.source || (r3.source = e3), t12.errors.push(r3), null; - } - try { - let r3 = qo3(e3); - if (!r3) - throw new Error(`The tag ${n} is unavailable`); - let s3 = `The tag ${n} is unavailable, falling back to ${r3}`; - t12.warnings.push(new p4.YAMLWarning(e3, s3)); - let i = xs5(t12, e3, r3); - return i.tag = n, i; - } catch (r3) { - let s3 = new p4.YAMLReferenceError(e3, r3.message); - return s3.stack = r3.stack, t12.errors.push(s3), null; - } - } - var Ko3 = (t12) => { - if (!t12) - return false; - let { type: e3 } = t12; - return e3 === p4.Type.MAP_KEY || e3 === p4.Type.MAP_VALUE || e3 === p4.Type.SEQ_ITEM; - }; - function Vo3(t12, e3) { - let n = { before: [], after: [] }, r3 = false, s3 = false, i = Ko3(e3.context.parent) ? e3.context.parent.props.concat(e3.props) : e3.props; - for (let { start: o2, end: a } of i) - switch (e3.context.src[o2]) { - case p4.Char.COMMENT: { - if (!e3.commentHasRequiredWhitespace(o2)) { - let m3 = "Comments must be separated from other tokens by white space characters"; - t12.push(new p4.YAMLSemanticError(e3, m3)); - } - let { header: c3, valueRange: l } = e3; - (l && (o2 > l.start || c3 && o2 > c3.start) ? n.after : n.before).push(e3.context.src.slice(o2 + 1, a)); - break; - } - case p4.Char.ANCHOR: - if (r3) { - let c3 = "A node can have at most one anchor"; - t12.push(new p4.YAMLSemanticError(e3, c3)); - } - r3 = true; - break; - case p4.Char.TAG: - if (s3) { - let c3 = "A node can have at most one tag"; - t12.push(new p4.YAMLSemanticError(e3, c3)); - } - s3 = true; - break; - } - return { comments: n, hasAnchor: r3, hasTag: s3 }; - } - function Wo3(t12, e3) { - let { anchors: n, errors: r3, schema: s3 } = t12; - if (e3.type === p4.Type.ALIAS) { - let o2 = e3.rawValue, a = n.getNode(o2); - if (!a) { - let l = `Aliased anchor not found: ${o2}`; - return r3.push(new p4.YAMLReferenceError(e3, l)), null; - } - let c3 = new we9(a); - return n._cstAliases.push(c3), c3; - } - let i = Fo3(t12, e3); - if (i) - return Uo2(t12, e3, i); - if (e3.type !== p4.Type.PLAIN) { - let o2 = `Failed to resolve ${e3.type} node here`; - return r3.push(new p4.YAMLSyntaxError(e3, o2)), null; - } - try { - let o2 = Un5(t12, e3); - return Fn6(o2, s3.tags, s3.tags.scalarFallback); - } catch (o2) { - return o2.source || (o2.source = e3), r3.push(o2), null; - } - } - function me8(t12, e3) { - if (!e3) - return null; - e3.error && t12.errors.push(e3.error); - let { comments: n, hasAnchor: r3, hasTag: s3 } = Vo3(t12.errors, e3); - if (r3) { - let { anchors: o2 } = t12, a = e3.anchor, c3 = o2.getNode(a); - c3 && (o2.map[o2.newName(a)] = c3), o2.map[a] = e3; - } - if (e3.type === p4.Type.ALIAS && (r3 || s3)) { - let o2 = "An alias node must not specify any properties"; - t12.errors.push(new p4.YAMLSemanticError(e3, o2)); - } - let i = Wo3(t12, e3); - if (i) { - i.range = [e3.range.start, e3.range.end], t12.options.keepCstNodes && (i.cstNode = e3), t12.options.keepNodeTypes && (i.type = e3.type); - let o2 = n.before.join(` -`); - o2 && (i.commentBefore = i.commentBefore ? `${i.commentBefore} -${o2}` : o2); - let a = n.after.join(` -`); - a && (i.comment = i.comment ? `${i.comment} -${a}` : a); - } - return e3.resolved = i; - } - function jo2(t12, e3) { - if (e3.type !== p4.Type.MAP && e3.type !== p4.Type.FLOW_MAP) { - let o2 = `A ${e3.type} node cannot be resolved as a mapping`; - return t12.errors.push(new p4.YAMLSyntaxError(e3, o2)), null; - } - let { comments: n, items: r3 } = e3.type === p4.Type.FLOW_MAP ? Ho4(t12, e3) : Go2(t12, e3), s3 = new mt7(); - s3.items = r3, Us7(s3, n); - let i = false; - for (let o2 = 0; o2 < r3.length; ++o2) { - let { key: a } = r3[o2]; - if (a instanceof W7 && (i = true), t12.schema.merge && a && a.value === Ds8) { - r3[o2] = new Kt6(r3[o2]); - let c3 = r3[o2].value.items, l = null; - c3.some((f3) => { - if (f3 instanceof we9) { - let { type: m3 } = f3.source; - return m3 === p4.Type.MAP || m3 === p4.Type.FLOW_MAP ? false : l = "Merge nodes aliases can only point to maps"; - } - return l = "Merge nodes can only have Alias nodes as values"; - }), l && t12.errors.push(new p4.YAMLSemanticError(e3, l)); - } else - for (let c3 = o2 + 1; c3 < r3.length; ++c3) { - let { key: l } = r3[c3]; - if (a === l || a && l && Object.prototype.hasOwnProperty.call(a, "value") && a.value === l.value) { - let f3 = `Map keys must be unique; "${a}" is repeated`; - t12.errors.push(new p4.YAMLSemanticError(e3, f3)); - break; - } - } - } - if (i && !t12.options.mapAsMap) { - let o2 = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this."; - t12.warnings.push(new p4.YAMLWarning(e3, o2)); - } - return e3.resolved = s3, s3; - } - var Qo3 = ({ context: { lineStart: t12, node: e3, src: n }, props: r3 }) => { - if (r3.length === 0) - return false; - let { start: s3 } = r3[0]; - if (e3 && s3 > e3.valueRange.start || n[s3] !== p4.Char.COMMENT) - return false; - for (let i = t12; i < s3; ++i) - if (n[i] === ` -`) - return false; - return true; - }; - function Jo2(t12, e3) { - if (!Qo3(t12)) - return; - let n = t12.getPropValue(0, p4.Char.COMMENT, true), r3 = false, s3 = e3.value.commentBefore; - if (s3 && s3.startsWith(n)) - e3.value.commentBefore = s3.substr(n.length + 1), r3 = true; - else { - let i = e3.value.comment; - !t12.node && i && i.startsWith(n) && (e3.value.comment = i.substr(n.length + 1), r3 = true); - } - r3 && (e3.comment = n); - } - function Go2(t12, e3) { - let n = [], r3 = [], s3, i = null; - for (let o2 = 0; o2 < e3.items.length; ++o2) { - let a = e3.items[o2]; - switch (a.type) { - case p4.Type.BLANK_LINE: - n.push({ afterKey: !!s3, before: r3.length }); - break; - case p4.Type.COMMENT: - n.push({ afterKey: !!s3, before: r3.length, comment: a.comment }); - break; - case p4.Type.MAP_KEY: - s3 !== void 0 && r3.push(new T4(s3)), a.error && t12.errors.push(a.error), s3 = me8(t12, a.node), i = null; - break; - case p4.Type.MAP_VALUE: - { - if (s3 === void 0 && (s3 = null), a.error && t12.errors.push(a.error), !a.context.atLineStart && a.node && a.node.type === p4.Type.MAP && !a.node.context.atLineStart) { - let f3 = "Nested mappings are not allowed in compact mappings"; - t12.errors.push(new p4.YAMLSemanticError(a.node, f3)); - } - let c3 = a.node; - if (!c3 && a.props.length > 0) { - c3 = new p4.PlainValue(p4.Type.PLAIN, []), c3.context = { parent: a, src: a.context.src }; - let f3 = a.range.start + 1; - if (c3.range = { start: f3, end: f3 }, c3.valueRange = { start: f3, end: f3 }, typeof a.range.origStart == "number") { - let m3 = a.range.origStart + 1; - c3.range.origStart = c3.range.origEnd = m3, c3.valueRange.origStart = c3.valueRange.origEnd = m3; - } - } - let l = new T4(s3, me8(t12, c3)); - Jo2(a, l), r3.push(l), s3 && typeof i == "number" && a.range.start > i + 1024 && t12.errors.push(qs6(e3, s3)), s3 = void 0, i = null; - } - break; - default: - s3 !== void 0 && r3.push(new T4(s3)), s3 = me8(t12, a), i = a.range.start, a.error && t12.errors.push(a.error); - e: - for (let c3 = o2 + 1; ; ++c3) { - let l = e3.items[c3]; - switch (l && l.type) { - case p4.Type.BLANK_LINE: - case p4.Type.COMMENT: - continue e; - case p4.Type.MAP_VALUE: - break e; - default: { - let f3 = "Implicit map keys need to be followed by map values"; - t12.errors.push(new p4.YAMLSemanticError(a, f3)); - break e; - } - } - } - if (a.valueRangeContainsNewline) { - let c3 = "Implicit map keys need to be on a single line"; - t12.errors.push(new p4.YAMLSemanticError(a, c3)); - } - } - } - return s3 !== void 0 && r3.push(new T4(s3)), { comments: n, items: r3 }; - } - function Ho4(t12, e3) { - let n = [], r3 = [], s3, i = false, o2 = "{"; - for (let a = 0; a < e3.items.length; ++a) { - let c3 = e3.items[a]; - if (typeof c3.char == "string") { - let { char: l, offset: f3 } = c3; - if (l === "?" && s3 === void 0 && !i) { - i = true, o2 = ":"; - continue; - } - if (l === ":") { - if (s3 === void 0 && (s3 = null), o2 === ":") { - o2 = ","; - continue; - } - } else if (i && (s3 === void 0 && l !== "," && (s3 = null), i = false), s3 !== void 0 && (r3.push(new T4(s3)), s3 = void 0, l === ",")) { - o2 = ":"; - continue; - } - if (l === "}") { - if (a === e3.items.length - 1) - continue; - } else if (l === o2) { - o2 = ":"; - continue; - } - let m3 = `Flow map contains an unexpected ${l}`, d5 = new p4.YAMLSyntaxError(e3, m3); - d5.offset = f3, t12.errors.push(d5); - } else - c3.type === p4.Type.BLANK_LINE ? n.push({ afterKey: !!s3, before: r3.length }) : c3.type === p4.Type.COMMENT ? (Fs7(t12.errors, c3), n.push({ afterKey: !!s3, before: r3.length, comment: c3.comment })) : s3 === void 0 ? (o2 === "," && t12.errors.push(new p4.YAMLSemanticError(c3, "Separator , missing in flow map")), s3 = me8(t12, c3)) : (o2 !== "," && t12.errors.push(new p4.YAMLSemanticError(c3, "Indicator : missing in flow map entry")), r3.push(new T4(s3, me8(t12, c3))), s3 = void 0, i = false); - } - return $s6(t12.errors, e3), s3 !== void 0 && r3.push(new T4(s3)), { comments: n, items: r3 }; - } - function Xo2(t12, e3) { - if (e3.type !== p4.Type.SEQ && e3.type !== p4.Type.FLOW_SEQ) { - let i = `A ${e3.type} node cannot be resolved as a sequence`; - return t12.errors.push(new p4.YAMLSyntaxError(e3, i)), null; - } - let { comments: n, items: r3 } = e3.type === p4.Type.FLOW_SEQ ? Zo2(t12, e3) : zo3(t12, e3), s3 = new pe7(); - if (s3.items = r3, Us7(s3, n), !t12.options.mapAsMap && r3.some((i) => i instanceof T4 && i.key instanceof W7)) { - let i = "Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this."; - t12.warnings.push(new p4.YAMLWarning(e3, i)); - } - return e3.resolved = s3, s3; - } - function zo3(t12, e3) { - let n = [], r3 = []; - for (let s3 = 0; s3 < e3.items.length; ++s3) { - let i = e3.items[s3]; - switch (i.type) { - case p4.Type.BLANK_LINE: - n.push({ before: r3.length }); - break; - case p4.Type.COMMENT: - n.push({ comment: i.comment, before: r3.length }); - break; - case p4.Type.SEQ_ITEM: - if (i.error && t12.errors.push(i.error), r3.push(me8(t12, i.node)), i.hasProps) { - let o2 = "Sequence items cannot have tags or anchors before the - indicator"; - t12.errors.push(new p4.YAMLSemanticError(i, o2)); - } - break; - default: - i.error && t12.errors.push(i.error), t12.errors.push(new p4.YAMLSyntaxError(i, `Unexpected ${i.type} node in sequence`)); - } - } - return { comments: n, items: r3 }; - } - function Zo2(t12, e3) { - let n = [], r3 = [], s3 = false, i, o2 = null, a = "[", c3 = null; - for (let l = 0; l < e3.items.length; ++l) { - let f3 = e3.items[l]; - if (typeof f3.char == "string") { - let { char: m3, offset: d5 } = f3; - if (m3 !== ":" && (s3 || i !== void 0) && (s3 && i === void 0 && (i = a ? r3.pop() : null), r3.push(new T4(i)), s3 = false, i = void 0, o2 = null), m3 === a) - a = null; - else if (!a && m3 === "?") - s3 = true; - else if (a !== "[" && m3 === ":" && i === void 0) { - if (a === ",") { - if (i = r3.pop(), i instanceof T4) { - let y5 = "Chaining flow sequence pairs is invalid", h4 = new p4.YAMLSemanticError(e3, y5); - h4.offset = d5, t12.errors.push(h4); - } - if (!s3 && typeof o2 == "number") { - let y5 = f3.range ? f3.range.start : f3.offset; - y5 > o2 + 1024 && t12.errors.push(qs6(e3, i)); - let { src: h4 } = c3.context; - for (let g3 = o2; g3 < y5; ++g3) - if (h4[g3] === ` -`) { - let w4 = "Implicit keys of flow sequence pairs need to be on a single line"; - t12.errors.push(new p4.YAMLSemanticError(c3, w4)); - break; - } - } - } else - i = null; - o2 = null, s3 = false, a = null; - } else if (a === "[" || m3 !== "]" || l < e3.items.length - 1) { - let y5 = `Flow sequence contains an unexpected ${m3}`, h4 = new p4.YAMLSyntaxError(e3, y5); - h4.offset = d5, t12.errors.push(h4); - } - } else if (f3.type === p4.Type.BLANK_LINE) - n.push({ before: r3.length }); - else if (f3.type === p4.Type.COMMENT) - Fs7(t12.errors, f3), n.push({ comment: f3.comment, before: r3.length }); - else { - if (a) { - let d5 = `Expected a ${a} in flow sequence`; - t12.errors.push(new p4.YAMLSemanticError(f3, d5)); - } - let m3 = me8(t12, f3); - i === void 0 ? (r3.push(m3), c3 = f3) : (r3.push(new T4(i, m3)), i = void 0), o2 = f3.range.start, a = ","; - } - } - return $s6(t12.errors, e3), i !== void 0 && r3.push(new T4(i)), { comments: n, items: r3 }; - } - k4.Alias = we9; - k4.Collection = W7; - k4.Merge = Kt6; - k4.Node = V7; - k4.Pair = T4; - k4.Scalar = P10; - k4.YAMLMap = mt7; - k4.YAMLSeq = pe7; - k4.addComment = Be9; - k4.binaryOptions = Io2; - k4.boolOptions = Po2; - k4.findPair = pt5; - k4.intOptions = _o3; - k4.isEmptyPath = Rs6; - k4.nullOptions = xo3; - k4.resolveMap = jo2; - k4.resolveNode = me8; - k4.resolveSeq = Xo2; - k4.resolveString = Un5; - k4.strOptions = be11; - k4.stringifyNumber = Bo3; - k4.stringifyString = Yo3; - k4.toJSON = ue7; - }); - jn5 = ee9((z8) => { - "use strict"; - var j8 = le9(), O7 = $e8(), ea4 = { identify: (t12) => t12 instanceof Uint8Array, default: false, tag: "tag:yaml.org,2002:binary", resolve: (t12, e3) => { - let n = O7.resolveString(t12, e3); - if (typeof Buffer == "function") - return Buffer.from(n, "base64"); - if (typeof atob == "function") { - let r3 = atob(n.replace(/[\n\r]/g, "")), s3 = new Uint8Array(r3.length); - for (let i = 0; i < r3.length; ++i) - s3[i] = r3.charCodeAt(i); - return s3; - } else { - let r3 = "This environment does not support reading binary tags; either Buffer or atob is required"; - return t12.errors.push(new j8.YAMLReferenceError(e3, r3)), null; - } - }, options: O7.binaryOptions, stringify: ({ comment: t12, type: e3, value: n }, r3, s3, i) => { - let o2; - if (typeof Buffer == "function") - o2 = n instanceof Buffer ? n.toString("base64") : Buffer.from(n.buffer).toString("base64"); - else if (typeof btoa == "function") { - let a = ""; - for (let c3 = 0; c3 < n.length; ++c3) - a += String.fromCharCode(n[c3]); - o2 = btoa(a); - } else - throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required"); - if (e3 || (e3 = O7.binaryOptions.defaultType), e3 === j8.Type.QUOTE_DOUBLE) - n = o2; - else { - let { lineWidth: a } = O7.binaryOptions, c3 = Math.ceil(o2.length / a), l = new Array(c3); - for (let f3 = 0, m3 = 0; f3 < c3; ++f3, m3 += a) - l[f3] = o2.substr(m3, a); - n = l.join(e3 === j8.Type.BLOCK_LITERAL ? ` -` : " "); - } - return O7.stringifyString({ comment: t12, type: e3, value: n }, r3, s3, i); - } }; - function Vs5(t12, e3) { - let n = O7.resolveSeq(t12, e3); - for (let r3 = 0; r3 < n.items.length; ++r3) { - let s3 = n.items[r3]; - if (!(s3 instanceof O7.Pair)) { - if (s3 instanceof O7.YAMLMap) { - if (s3.items.length > 1) { - let o2 = "Each pair must have its own sequence indicator"; - throw new j8.YAMLSemanticError(e3, o2); - } - let i = s3.items[0] || new O7.Pair(); - s3.commentBefore && (i.commentBefore = i.commentBefore ? `${s3.commentBefore} -${i.commentBefore}` : s3.commentBefore), s3.comment && (i.comment = i.comment ? `${s3.comment} -${i.comment}` : s3.comment), s3 = i; - } - n.items[r3] = s3 instanceof O7.Pair ? s3 : new O7.Pair(s3); - } - } - return n; - } - function Ws6(t12, e3, n) { - let r3 = new O7.YAMLSeq(t12); - r3.tag = "tag:yaml.org,2002:pairs"; - for (let s3 of e3) { - let i, o2; - if (Array.isArray(s3)) - if (s3.length === 2) - i = s3[0], o2 = s3[1]; - else - throw new TypeError(`Expected [key, value] tuple: ${s3}`); - else if (s3 && s3 instanceof Object) { - let c3 = Object.keys(s3); - if (c3.length === 1) - i = c3[0], o2 = s3[i]; - else - throw new TypeError(`Expected { key: value } tuple: ${s3}`); - } else - i = s3; - let a = t12.createPair(i, o2, n); - r3.items.push(a); - } - return r3; - } - var ta4 = { default: false, tag: "tag:yaml.org,2002:pairs", resolve: Vs5, createNode: Ws6 }, Fe9 = class t12 extends O7.YAMLSeq { - constructor() { - super(), j8._defineProperty(this, "add", O7.YAMLMap.prototype.add.bind(this)), j8._defineProperty(this, "delete", O7.YAMLMap.prototype.delete.bind(this)), j8._defineProperty(this, "get", O7.YAMLMap.prototype.get.bind(this)), j8._defineProperty(this, "has", O7.YAMLMap.prototype.has.bind(this)), j8._defineProperty(this, "set", O7.YAMLMap.prototype.set.bind(this)), this.tag = t12.tag; - } - toJSON(e3, n) { - let r3 = /* @__PURE__ */ new Map(); - n && n.onCreate && n.onCreate(r3); - for (let s3 of this.items) { - let i, o2; - if (s3 instanceof O7.Pair ? (i = O7.toJSON(s3.key, "", n), o2 = O7.toJSON(s3.value, i, n)) : i = O7.toJSON(s3, "", n), r3.has(i)) - throw new Error("Ordered maps must not include duplicate keys"); - r3.set(i, o2); - } - return r3; - } - }; - j8._defineProperty(Fe9, "tag", "tag:yaml.org,2002:omap"); - function na4(t12, e3) { - let n = Vs5(t12, e3), r3 = []; - for (let { key: s3 } of n.items) - if (s3 instanceof O7.Scalar) - if (r3.includes(s3.value)) { - let i = "Ordered maps must not include duplicate keys"; - throw new j8.YAMLSemanticError(e3, i); - } else - r3.push(s3.value); - return Object.assign(new Fe9(), n); - } - function ra5(t12, e3, n) { - let r3 = Ws6(t12, e3, n), s3 = new Fe9(); - return s3.items = r3.items, s3; - } - var sa4 = { identify: (t12) => t12 instanceof Map, nodeClass: Fe9, default: false, tag: "tag:yaml.org,2002:omap", resolve: na4, createNode: ra5 }, qe8 = class t12 extends O7.YAMLMap { - constructor() { - super(), this.tag = t12.tag; - } - add(e3) { - let n = e3 instanceof O7.Pair ? e3 : new O7.Pair(e3); - O7.findPair(this.items, n.key) || this.items.push(n); - } - get(e3, n) { - let r3 = O7.findPair(this.items, e3); - return !n && r3 instanceof O7.Pair ? r3.key instanceof O7.Scalar ? r3.key.value : r3.key : r3; - } - set(e3, n) { - if (typeof n != "boolean") - throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`); - let r3 = O7.findPair(this.items, e3); - r3 && !n ? this.items.splice(this.items.indexOf(r3), 1) : !r3 && n && this.items.push(new O7.Pair(e3)); - } - toJSON(e3, n) { - return super.toJSON(e3, n, Set); - } - toString(e3, n, r3) { - if (!e3) - return JSON.stringify(this); - if (this.hasAllNullValues()) - return super.toString(e3, n, r3); - throw new Error("Set items must all have null values"); - } - }; - j8._defineProperty(qe8, "tag", "tag:yaml.org,2002:set"); - function ia5(t12, e3) { - let n = O7.resolveMap(t12, e3); - if (!n.hasAllNullValues()) - throw new j8.YAMLSemanticError(e3, "Set items must all have null values"); - return Object.assign(new qe8(), n); - } - function oa5(t12, e3, n) { - let r3 = new qe8(); - for (let s3 of e3) - r3.items.push(t12.createPair(s3, null, n)); - return r3; - } - var aa4 = { identify: (t12) => t12 instanceof Set, nodeClass: qe8, default: false, tag: "tag:yaml.org,2002:set", resolve: ia5, createNode: oa5 }, Kn5 = (t12, e3) => { - let n = e3.split(":").reduce((r3, s3) => r3 * 60 + Number(s3), 0); - return t12 === "-" ? -n : n; - }, js7 = ({ value: t12 }) => { - if (isNaN(t12) || !isFinite(t12)) - return O7.stringifyNumber(t12); - let e3 = ""; - t12 < 0 && (e3 = "-", t12 = Math.abs(t12)); - let n = [t12 % 60]; - return t12 < 60 ? n.unshift(0) : (t12 = Math.round((t12 - n[0]) / 60), n.unshift(t12 % 60), t12 >= 60 && (t12 = Math.round((t12 - n[0]) / 60), n.unshift(t12))), e3 + n.map((r3) => r3 < 10 ? "0" + String(r3) : String(r3)).join(":").replace(/000000\d*$/, ""); - }, ca5 = { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:int", format: "TIME", test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, resolve: (t12, e3, n) => Kn5(e3, n.replace(/_/g, "")), stringify: js7 }, la5 = { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", format: "TIME", test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, resolve: (t12, e3, n) => Kn5(e3, n.replace(/_/g, "")), stringify: js7 }, fa4 = { identify: (t12) => t12 instanceof Date, default: true, tag: "tag:yaml.org,2002:timestamp", test: RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"), resolve: (t12, e3, n, r3, s3, i, o2, a, c3) => { - a && (a = (a + "00").substr(1, 3)); - let l = Date.UTC(e3, n - 1, r3, s3 || 0, i || 0, o2 || 0, a || 0); - if (c3 && c3 !== "Z") { - let f3 = Kn5(c3[0], c3.slice(1)); - Math.abs(f3) < 30 && (f3 *= 60), l -= 6e4 * f3; - } - return new Date(l); - }, stringify: ({ value: t12 }) => t12.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "") }; - function Vn5(t12) { - let e3 = {}; - return t12 ? typeof YAML_SILENCE_DEPRECATION_WARNINGS < "u" ? !YAML_SILENCE_DEPRECATION_WARNINGS : !e3.YAML_SILENCE_DEPRECATION_WARNINGS : typeof YAML_SILENCE_WARNINGS < "u" ? !YAML_SILENCE_WARNINGS : !e3.YAML_SILENCE_WARNINGS; - } - function Wn4(t12, e3) { - Vn5(false) && console.warn(e3 ? `${e3}: ${t12}` : t12); - } - function ua5(t12) { - if (Vn5(true)) { - let e3 = t12.replace(/.*yaml[/\\]/i, "").replace(/\.js$/, "").replace(/\\/g, "/"); - Wn4(`The endpoint 'yaml/${e3}' will be removed in a future release.`, "DeprecationWarning"); - } - } - var Ks5 = {}; - function pa5(t12, e3) { - if (!Ks5[t12] && Vn5(true)) { - Ks5[t12] = true; - let n = `The option '${t12}' will be removed in a future release`; - n += e3 ? `, use '${e3}' instead.` : ".", Wn4(n, "DeprecationWarning"); - } - } - z8.binary = ea4; - z8.floatTime = la5; - z8.intTime = ca5; - z8.omap = sa4; - z8.pairs = ta4; - z8.set = aa4; - z8.timestamp = fa4; - z8.warn = Wn4; - z8.warnFileDeprecation = ua5; - z8.warnOptionDeprecation = pa5; - }); - Hn5 = ee9((ii8) => { - "use strict"; - var Jt6 = le9(), E6 = $e8(), D6 = jn5(); - function ma3(t12, e3, n) { - let r3 = new E6.YAMLMap(t12); - if (e3 instanceof Map) - for (let [s3, i] of e3) - r3.items.push(t12.createPair(s3, i, n)); - else if (e3 && typeof e3 == "object") - for (let s3 of Object.keys(e3)) - r3.items.push(t12.createPair(s3, e3[s3], n)); - return typeof t12.sortMapEntries == "function" && r3.items.sort(t12.sortMapEntries), r3; - } - var gt7 = { createNode: ma3, default: true, nodeClass: E6.YAMLMap, tag: "tag:yaml.org,2002:map", resolve: E6.resolveMap }; - function ha5(t12, e3, n) { - let r3 = new E6.YAMLSeq(t12); - if (e3 && e3[Symbol.iterator]) - for (let s3 of e3) { - let i = t12.createNode(s3, n.wrapScalars, null, n); - r3.items.push(i); - } - return r3; - } - var Gt5 = { createNode: ha5, default: true, nodeClass: E6.YAMLSeq, tag: "tag:yaml.org,2002:seq", resolve: E6.resolveSeq }, ga3 = { identify: (t12) => typeof t12 == "string", default: true, tag: "tag:yaml.org,2002:str", resolve: E6.resolveString, stringify(t12, e3, n, r3) { - return e3 = Object.assign({ actualString: true }, e3), E6.stringifyString(t12, e3, n, r3); - }, options: E6.strOptions }, Jn5 = [gt7, Gt5, ga3], Ht3 = (t12) => typeof t12 == "bigint" || Number.isInteger(t12), Gn5 = (t12, e3, n) => E6.intOptions.asBigInt ? BigInt(t12) : parseInt(e3, n); - function Gs6(t12, e3, n) { - let { value: r3 } = t12; - return Ht3(r3) && r3 >= 0 ? n + r3.toString(e3) : E6.stringifyNumber(t12); - } - var Hs5 = { identify: (t12) => t12 == null, createNode: (t12, e3, n) => n.wrapScalars ? new E6.Scalar(null) : null, default: true, tag: "tag:yaml.org,2002:null", test: /^(?:~|[Nn]ull|NULL)?$/, resolve: () => null, options: E6.nullOptions, stringify: () => E6.nullOptions.nullStr }, Xs6 = { identify: (t12) => typeof t12 == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, resolve: (t12) => t12[0] === "t" || t12[0] === "T", options: E6.boolOptions, stringify: ({ value: t12 }) => t12 ? E6.boolOptions.trueStr : E6.boolOptions.falseStr }, zs6 = { identify: (t12) => Ht3(t12) && t12 >= 0, default: true, tag: "tag:yaml.org,2002:int", format: "OCT", test: /^0o([0-7]+)$/, resolve: (t12, e3) => Gn5(t12, e3, 8), options: E6.intOptions, stringify: (t12) => Gs6(t12, 8, "0o") }, Zs6 = { identify: Ht3, default: true, tag: "tag:yaml.org,2002:int", test: /^[-+]?[0-9]+$/, resolve: (t12) => Gn5(t12, t12, 10), options: E6.intOptions, stringify: E6.stringifyNumber }, ei7 = { identify: (t12) => Ht3(t12) && t12 >= 0, default: true, tag: "tag:yaml.org,2002:int", format: "HEX", test: /^0x([0-9a-fA-F]+)$/, resolve: (t12, e3) => Gn5(t12, e3, 16), options: E6.intOptions, stringify: (t12) => Gs6(t12, 16, "0x") }, ti7 = { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^(?:[-+]?\.inf|(\.nan))$/i, resolve: (t12, e3) => e3 ? NaN : t12[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, stringify: E6.stringifyNumber }, ni7 = { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", format: "EXP", test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, resolve: (t12) => parseFloat(t12), stringify: ({ value: t12 }) => Number(t12).toExponential() }, ri7 = { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, resolve(t12, e3, n) { - let r3 = e3 || n, s3 = new E6.Scalar(parseFloat(t12)); - return r3 && r3[r3.length - 1] === "0" && (s3.minFractionDigits = r3.length), s3; - }, stringify: E6.stringifyNumber }, da4 = Jn5.concat([Hs5, Xs6, zs6, Zs6, ei7, ti7, ni7, ri7]), Qs6 = (t12) => typeof t12 == "bigint" || Number.isInteger(t12), jt5 = ({ value: t12 }) => JSON.stringify(t12), si8 = [gt7, Gt5, { identify: (t12) => typeof t12 == "string", default: true, tag: "tag:yaml.org,2002:str", resolve: E6.resolveString, stringify: jt5 }, { identify: (t12) => t12 == null, createNode: (t12, e3, n) => n.wrapScalars ? new E6.Scalar(null) : null, default: true, tag: "tag:yaml.org,2002:null", test: /^null$/, resolve: () => null, stringify: jt5 }, { identify: (t12) => typeof t12 == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^true|false$/, resolve: (t12) => t12 === "true", stringify: jt5 }, { identify: Qs6, default: true, tag: "tag:yaml.org,2002:int", test: /^-?(?:0|[1-9][0-9]*)$/, resolve: (t12) => E6.intOptions.asBigInt ? BigInt(t12) : parseInt(t12, 10), stringify: ({ value: t12 }) => Qs6(t12) ? t12.toString() : JSON.stringify(t12) }, { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, resolve: (t12) => parseFloat(t12), stringify: jt5 }]; - si8.scalarFallback = (t12) => { - throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(t12)}`); - }; - var Js7 = ({ value: t12 }) => t12 ? E6.boolOptions.trueStr : E6.boolOptions.falseStr, ht4 = (t12) => typeof t12 == "bigint" || Number.isInteger(t12); - function Qt5(t12, e3, n) { - let r3 = e3.replace(/_/g, ""); - if (E6.intOptions.asBigInt) { - switch (n) { - case 2: - r3 = `0b${r3}`; - break; - case 8: - r3 = `0o${r3}`; - break; - case 16: - r3 = `0x${r3}`; - break; - } - let i = BigInt(r3); - return t12 === "-" ? BigInt(-1) * i : i; - } - let s3 = parseInt(r3, n); - return t12 === "-" ? -1 * s3 : s3; - } - function Qn4(t12, e3, n) { - let { value: r3 } = t12; - if (ht4(r3)) { - let s3 = r3.toString(e3); - return r3 < 0 ? "-" + n + s3.substr(1) : n + s3; - } - return E6.stringifyNumber(t12); - } - var ya2 = Jn5.concat([{ identify: (t12) => t12 == null, createNode: (t12, e3, n) => n.wrapScalars ? new E6.Scalar(null) : null, default: true, tag: "tag:yaml.org,2002:null", test: /^(?:~|[Nn]ull|NULL)?$/, resolve: () => null, options: E6.nullOptions, stringify: () => E6.nullOptions.nullStr }, { identify: (t12) => typeof t12 == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, resolve: () => true, options: E6.boolOptions, stringify: Js7 }, { identify: (t12) => typeof t12 == "boolean", default: true, tag: "tag:yaml.org,2002:bool", test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, resolve: () => false, options: E6.boolOptions, stringify: Js7 }, { identify: ht4, default: true, tag: "tag:yaml.org,2002:int", format: "BIN", test: /^([-+]?)0b([0-1_]+)$/, resolve: (t12, e3, n) => Qt5(e3, n, 2), stringify: (t12) => Qn4(t12, 2, "0b") }, { identify: ht4, default: true, tag: "tag:yaml.org,2002:int", format: "OCT", test: /^([-+]?)0([0-7_]+)$/, resolve: (t12, e3, n) => Qt5(e3, n, 8), stringify: (t12) => Qn4(t12, 8, "0") }, { identify: ht4, default: true, tag: "tag:yaml.org,2002:int", test: /^([-+]?)([0-9][0-9_]*)$/, resolve: (t12, e3, n) => Qt5(e3, n, 10), stringify: E6.stringifyNumber }, { identify: ht4, default: true, tag: "tag:yaml.org,2002:int", format: "HEX", test: /^([-+]?)0x([0-9a-fA-F_]+)$/, resolve: (t12, e3, n) => Qt5(e3, n, 16), stringify: (t12) => Qn4(t12, 16, "0x") }, { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^(?:[-+]?\.inf|(\.nan))$/i, resolve: (t12, e3) => e3 ? NaN : t12[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, stringify: E6.stringifyNumber }, { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", format: "EXP", test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, resolve: (t12) => parseFloat(t12.replace(/_/g, "")), stringify: ({ value: t12 }) => Number(t12).toExponential() }, { identify: (t12) => typeof t12 == "number", default: true, tag: "tag:yaml.org,2002:float", test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, resolve(t12, e3) { - let n = new E6.Scalar(parseFloat(t12.replace(/_/g, ""))); - if (e3) { - let r3 = e3.replace(/_/g, ""); - r3[r3.length - 1] === "0" && (n.minFractionDigits = r3.length); - } - return n; - }, stringify: E6.stringifyNumber }], D6.binary, D6.omap, D6.pairs, D6.set, D6.intTime, D6.floatTime, D6.timestamp), Ea3 = { core: da4, failsafe: Jn5, json: si8, yaml11: ya2 }, Sa4 = { binary: D6.binary, bool: Xs6, float: ri7, floatExp: ni7, floatNaN: ti7, floatTime: D6.floatTime, int: Zs6, intHex: ei7, intOct: zs6, intTime: D6.intTime, map: gt7, null: Hs5, omap: D6.omap, pairs: D6.pairs, seq: Gt5, set: D6.set, timestamp: D6.timestamp }; - function wa2(t12, e3, n) { - if (e3) { - let r3 = n.filter((i) => i.tag === e3), s3 = r3.find((i) => !i.format) || r3[0]; - if (!s3) - throw new Error(`Tag ${e3} not found`); - return s3; - } - return n.find((r3) => (r3.identify && r3.identify(t12) || r3.class && t12 instanceof r3.class) && !r3.format); - } - function ba3(t12, e3, n) { - if (t12 instanceof E6.Node) - return t12; - let { defaultPrefix: r3, onTagObj: s3, prevObjects: i, schema: o2, wrapScalars: a } = n; - e3 && e3.startsWith("!!") && (e3 = r3 + e3.slice(2)); - let c3 = wa2(t12, e3, o2.tags); - if (!c3) { - if (typeof t12.toJSON == "function" && (t12 = t12.toJSON()), !t12 || typeof t12 != "object") - return a ? new E6.Scalar(t12) : t12; - c3 = t12 instanceof Map ? gt7 : t12[Symbol.iterator] ? Gt5 : gt7; - } - s3 && (s3(c3), delete n.onTagObj); - let l = { value: void 0, node: void 0 }; - if (t12 && typeof t12 == "object" && i) { - let f3 = i.get(t12); - if (f3) { - let m3 = new E6.Alias(f3); - return n.aliasNodes.push(m3), m3; - } - l.value = t12, i.set(t12, l); - } - return l.node = c3.createNode ? c3.createNode(n.schema, t12, n) : a ? new E6.Scalar(t12) : t12, e3 && l.node instanceof E6.Node && (l.node.tag = e3), l.node; - } - function Na2(t12, e3, n, r3) { - let s3 = t12[r3.replace(/\W/g, "")]; - if (!s3) { - let i = Object.keys(t12).map((o2) => JSON.stringify(o2)).join(", "); - throw new Error(`Unknown schema "${r3}"; use one of ${i}`); - } - if (Array.isArray(n)) - for (let i of n) - s3 = s3.concat(i); - else - typeof n == "function" && (s3 = n(s3.slice())); - for (let i = 0; i < s3.length; ++i) { - let o2 = s3[i]; - if (typeof o2 == "string") { - let a = e3[o2]; - if (!a) { - let c3 = Object.keys(e3).map((l) => JSON.stringify(l)).join(", "); - throw new Error(`Unknown custom tag "${o2}"; use one of ${c3}`); - } - s3[i] = a; - } - } - return s3; - } - var Oa3 = (t12, e3) => t12.key < e3.key ? -1 : t12.key > e3.key ? 1 : 0, dt7 = class t12 { - constructor({ customTags: e3, merge: n, schema: r3, sortMapEntries: s3, tags: i }) { - this.merge = !!n, this.name = r3, this.sortMapEntries = s3 === true ? Oa3 : s3 || null, !e3 && i && D6.warnOptionDeprecation("tags", "customTags"), this.tags = Na2(Ea3, Sa4, e3 || i, r3); - } - createNode(e3, n, r3, s3) { - let i = { defaultPrefix: t12.defaultPrefix, schema: this, wrapScalars: n }, o2 = s3 ? Object.assign(s3, i) : i; - return ba3(e3, r3, o2); - } - createPair(e3, n, r3) { - r3 || (r3 = { wrapScalars: true }); - let s3 = this.createNode(e3, r3.wrapScalars, null, r3), i = this.createNode(n, r3.wrapScalars, null, r3); - return new E6.Pair(s3, i); - } - }; - Jt6._defineProperty(dt7, "defaultPrefix", Jt6.defaultTagPrefix); - Jt6._defineProperty(dt7, "defaultTags", Jt6.defaultTags); - ii8.Schema = dt7; - }); - li6 = ee9((en6) => { - "use strict"; - var Y10 = le9(), S6 = $e8(), oi7 = Hn5(), La2 = { anchorPrefix: "a", customTags: null, indent: 2, indentSeq: true, keepCstNodes: false, keepNodeTypes: true, keepBlobsInJSON: true, mapAsMap: false, maxAliasCount: 100, prettyErrors: false, simpleKeys: false, version: "1.2" }, Aa4 = { get binary() { - return S6.binaryOptions; - }, set binary(t12) { - Object.assign(S6.binaryOptions, t12); - }, get bool() { - return S6.boolOptions; - }, set bool(t12) { - Object.assign(S6.boolOptions, t12); - }, get int() { - return S6.intOptions; - }, set int(t12) { - Object.assign(S6.intOptions, t12); - }, get null() { - return S6.nullOptions; - }, set null(t12) { - Object.assign(S6.nullOptions, t12); - }, get str() { - return S6.strOptions; - }, set str(t12) { - Object.assign(S6.strOptions, t12); - } }, ci6 = { "1.0": { schema: "yaml-1.1", merge: true, tagPrefixes: [{ handle: "!", prefix: Y10.defaultTagPrefix }, { handle: "!!", prefix: "tag:private.yaml.org,2002:" }] }, 1.1: { schema: "yaml-1.1", merge: true, tagPrefixes: [{ handle: "!", prefix: "!" }, { handle: "!!", prefix: Y10.defaultTagPrefix }] }, 1.2: { schema: "core", merge: false, tagPrefixes: [{ handle: "!", prefix: "!" }, { handle: "!!", prefix: Y10.defaultTagPrefix }] } }; - function ai7(t12, e3) { - if ((t12.version || t12.options.version) === "1.0") { - let s3 = e3.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); - if (s3) - return "!" + s3[1]; - let i = e3.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); - return i ? `!${i[1]}/${i[2]}` : `!${e3.replace(/^tag:/, "")}`; - } - let n = t12.tagPrefixes.find((s3) => e3.indexOf(s3.prefix) === 0); - if (!n) { - let s3 = t12.getDefaults().tagPrefixes; - n = s3 && s3.find((i) => e3.indexOf(i.prefix) === 0); - } - if (!n) - return e3[0] === "!" ? e3 : `!<${e3}>`; - let r3 = e3.substr(n.prefix.length).replace(/[!,[\]{}]/g, (s3) => ({ "!": "%21", ",": "%2C", "[": "%5B", "]": "%5D", "{": "%7B", "}": "%7D" })[s3]); - return n.handle + r3; - } - function Ta2(t12, e3) { - if (e3 instanceof S6.Alias) - return S6.Alias; - if (e3.tag) { - let s3 = t12.filter((i) => i.tag === e3.tag); - if (s3.length > 0) - return s3.find((i) => i.format === e3.format) || s3[0]; - } - let n, r3; - if (e3 instanceof S6.Scalar) { - r3 = e3.value; - let s3 = t12.filter((i) => i.identify && i.identify(r3) || i.class && r3 instanceof i.class); - n = s3.find((i) => i.format === e3.format) || s3.find((i) => !i.format); - } else - r3 = e3, n = t12.find((s3) => s3.nodeClass && r3 instanceof s3.nodeClass); - if (!n) { - let s3 = r3 && r3.constructor ? r3.constructor.name : typeof r3; - throw new Error(`Tag not resolved for ${s3} value`); - } - return n; - } - function Ca5(t12, e3, { anchors: n, doc: r3 }) { - let s3 = [], i = r3.anchors.getName(t12); - return i && (n[i] = t12, s3.push(`&${i}`)), t12.tag ? s3.push(ai7(r3, t12.tag)) : e3.default || s3.push(ai7(r3, e3.tag)), s3.join(" "); - } - function Xt5(t12, e3, n, r3) { - let { anchors: s3, schema: i } = e3.doc, o2; - if (!(t12 instanceof S6.Node)) { - let l = { aliasNodes: [], onTagObj: (f3) => o2 = f3, prevObjects: /* @__PURE__ */ new Map() }; - t12 = i.createNode(t12, true, null, l); - for (let f3 of l.aliasNodes) { - f3.source = f3.source.node; - let m3 = s3.getName(f3.source); - m3 || (m3 = s3.newName(), s3.map[m3] = f3.source); - } - } - if (t12 instanceof S6.Pair) - return t12.toString(e3, n, r3); - o2 || (o2 = Ta2(i.tags, t12)); - let a = Ca5(t12, o2, e3); - a.length > 0 && (e3.indentAtStart = (e3.indentAtStart || 0) + a.length + 1); - let c3 = typeof o2.stringify == "function" ? o2.stringify(t12, e3, n, r3) : t12 instanceof S6.Scalar ? S6.stringifyString(t12, e3, n, r3) : t12.toString(e3, n, r3); - return a ? t12 instanceof S6.Scalar || c3[0] === "{" || c3[0] === "[" ? `${a} ${c3}` : `${a} -${e3.indent}${c3}` : c3; - } - var Xn6 = class t12 { - static validAnchorNode(e3) { - return e3 instanceof S6.Scalar || e3 instanceof S6.YAMLSeq || e3 instanceof S6.YAMLMap; - } - constructor(e3) { - Y10._defineProperty(this, "map", /* @__PURE__ */ Object.create(null)), this.prefix = e3; - } - createAlias(e3, n) { - return this.setAnchor(e3, n), new S6.Alias(e3); - } - createMergePair(...e3) { - let n = new S6.Merge(); - return n.value.items = e3.map((r3) => { - if (r3 instanceof S6.Alias) { - if (r3.source instanceof S6.YAMLMap) - return r3; - } else if (r3 instanceof S6.YAMLMap) - return this.createAlias(r3); - throw new Error("Merge sources must be Map nodes or their Aliases"); - }), n; - } - getName(e3) { - let { map: n } = this; - return Object.keys(n).find((r3) => n[r3] === e3); - } - getNames() { - return Object.keys(this.map); - } - getNode(e3) { - return this.map[e3]; - } - newName(e3) { - e3 || (e3 = this.prefix); - let n = Object.keys(this.map); - for (let r3 = 1; ; ++r3) { - let s3 = `${e3}${r3}`; - if (!n.includes(s3)) - return s3; - } - } - resolveNodes() { - let { map: e3, _cstAliases: n } = this; - Object.keys(e3).forEach((r3) => { - e3[r3] = e3[r3].resolved; - }), n.forEach((r3) => { - r3.source = r3.source.resolved; - }), delete this._cstAliases; - } - setAnchor(e3, n) { - if (e3 != null && !t12.validAnchorNode(e3)) - throw new Error("Anchors may only be set for Scalar, Seq and Map nodes"); - if (n && /[\x00-\x19\s,[\]{}]/.test(n)) - throw new Error("Anchor names must not contain whitespace or control characters"); - let { map: r3 } = this, s3 = e3 && Object.keys(r3).find((i) => r3[i] === e3); - if (s3) - if (n) - s3 !== n && (delete r3[s3], r3[n] = e3); - else - return s3; - else { - if (!n) { - if (!e3) - return null; - n = this.newName(); - } - r3[n] = e3; - } - return n; - } - }, zt6 = (t12, e3) => { - if (t12 && typeof t12 == "object") { - let { tag: n } = t12; - t12 instanceof S6.Collection ? (n && (e3[n] = true), t12.items.forEach((r3) => zt6(r3, e3))) : t12 instanceof S6.Pair ? (zt6(t12.key, e3), zt6(t12.value, e3)) : t12 instanceof S6.Scalar && n && (e3[n] = true); - } - return e3; - }, Ma3 = (t12) => Object.keys(zt6(t12, {})); - function ka3(t12, e3) { - let n = { before: [], after: [] }, r3, s3 = false; - for (let i of e3) - if (i.valueRange) { - if (r3 !== void 0) { - let a = "Document contains trailing content not separated by a ... or --- line"; - t12.errors.push(new Y10.YAMLSyntaxError(i, a)); - break; - } - let o2 = S6.resolveNode(t12, i); - s3 && (o2.spaceBefore = true, s3 = false), r3 = o2; - } else - i.comment !== null ? (r3 === void 0 ? n.before : n.after).push(i.comment) : i.type === Y10.Type.BLANK_LINE && (s3 = true, r3 === void 0 && n.before.length > 0 && !t12.commentBefore && (t12.commentBefore = n.before.join(` -`), n.before = [])); - if (t12.contents = r3 || null, !r3) - t12.comment = n.before.concat(n.after).join(` -`) || null; - else { - let i = n.before.join(` -`); - if (i) { - let o2 = r3 instanceof S6.Collection && r3.items[0] ? r3.items[0] : r3; - o2.commentBefore = o2.commentBefore ? `${i} -${o2.commentBefore}` : i; - } - t12.comment = n.after.join(` -`) || null; - } - } - function va2({ tagPrefixes: t12 }, e3) { - let [n, r3] = e3.parameters; - if (!n || !r3) { - let s3 = "Insufficient parameters given for %TAG directive"; - throw new Y10.YAMLSemanticError(e3, s3); - } - if (t12.some((s3) => s3.handle === n)) { - let s3 = "The %TAG directive must only be given at most once per handle in the same document."; - throw new Y10.YAMLSemanticError(e3, s3); - } - return { handle: n, prefix: r3 }; - } - function Ia4(t12, e3) { - let [n] = e3.parameters; - if (e3.name === "YAML:1.0" && (n = "1.0"), !n) { - let r3 = "Insufficient parameters given for %YAML directive"; - throw new Y10.YAMLSemanticError(e3, r3); - } - if (!ci6[n]) { - let s3 = `Document will be parsed as YAML ${t12.version || t12.options.version} rather than YAML ${n}`; - t12.warnings.push(new Y10.YAMLWarning(e3, s3)); - } - return n; - } - function Pa3(t12, e3, n) { - let r3 = [], s3 = false; - for (let i of e3) { - let { comment: o2, name: a } = i; - switch (a) { - case "TAG": - try { - t12.tagPrefixes.push(va2(t12, i)); - } catch (c3) { - t12.errors.push(c3); - } - s3 = true; - break; - case "YAML": - case "YAML:1.0": - if (t12.version) { - let c3 = "The %YAML directive must only be given at most once per document."; - t12.errors.push(new Y10.YAMLSemanticError(i, c3)); - } - try { - t12.version = Ia4(t12, i); - } catch (c3) { - t12.errors.push(c3); - } - s3 = true; - break; - default: - if (a) { - let c3 = `YAML only supports %TAG and %YAML directives, and not %${a}`; - t12.warnings.push(new Y10.YAMLWarning(i, c3)); - } - } - o2 && r3.push(o2); - } - if (n && !s3 && (t12.version || n.version || t12.options.version) === "1.1") { - let i = ({ handle: o2, prefix: a }) => ({ handle: o2, prefix: a }); - t12.tagPrefixes = n.tagPrefixes.map(i), t12.version = n.version; - } - t12.commentBefore = r3.join(` -`) || null; - } - function Ue8(t12) { - if (t12 instanceof S6.Collection) - return true; - throw new Error("Expected a YAML collection as document contents"); - } - var Zt5 = class t12 { - constructor(e3) { - this.anchors = new Xn6(e3.anchorPrefix), this.commentBefore = null, this.comment = null, this.contents = null, this.directivesEndMarker = null, this.errors = [], this.options = e3, this.schema = null, this.tagPrefixes = [], this.version = null, this.warnings = []; - } - add(e3) { - return Ue8(this.contents), this.contents.add(e3); - } - addIn(e3, n) { - Ue8(this.contents), this.contents.addIn(e3, n); - } - delete(e3) { - return Ue8(this.contents), this.contents.delete(e3); - } - deleteIn(e3) { - return S6.isEmptyPath(e3) ? this.contents == null ? false : (this.contents = null, true) : (Ue8(this.contents), this.contents.deleteIn(e3)); - } - getDefaults() { - return t12.defaults[this.version] || t12.defaults[this.options.version] || {}; - } - get(e3, n) { - return this.contents instanceof S6.Collection ? this.contents.get(e3, n) : void 0; - } - getIn(e3, n) { - return S6.isEmptyPath(e3) ? !n && this.contents instanceof S6.Scalar ? this.contents.value : this.contents : this.contents instanceof S6.Collection ? this.contents.getIn(e3, n) : void 0; - } - has(e3) { - return this.contents instanceof S6.Collection ? this.contents.has(e3) : false; - } - hasIn(e3) { - return S6.isEmptyPath(e3) ? this.contents !== void 0 : this.contents instanceof S6.Collection ? this.contents.hasIn(e3) : false; - } - set(e3, n) { - Ue8(this.contents), this.contents.set(e3, n); - } - setIn(e3, n) { - S6.isEmptyPath(e3) ? this.contents = n : (Ue8(this.contents), this.contents.setIn(e3, n)); - } - setSchema(e3, n) { - if (!e3 && !n && this.schema) - return; - typeof e3 == "number" && (e3 = e3.toFixed(1)), e3 === "1.0" || e3 === "1.1" || e3 === "1.2" ? (this.version ? this.version = e3 : this.options.version = e3, delete this.options.schema) : e3 && typeof e3 == "string" && (this.options.schema = e3), Array.isArray(n) && (this.options.customTags = n); - let r3 = Object.assign({}, this.getDefaults(), this.options); - this.schema = new oi7.Schema(r3); - } - parse(e3, n) { - this.options.keepCstNodes && (this.cstNode = e3), this.options.keepNodeTypes && (this.type = "DOCUMENT"); - let { directives: r3 = [], contents: s3 = [], directivesEndMarker: i, error: o2, valueRange: a } = e3; - if (o2 && (o2.source || (o2.source = this), this.errors.push(o2)), Pa3(this, r3, n), i && (this.directivesEndMarker = true), this.range = a ? [a.start, a.end] : null, this.setSchema(), this.anchors._cstAliases = [], ka3(this, s3), this.anchors.resolveNodes(), this.options.prettyErrors) { - for (let c3 of this.errors) - c3 instanceof Y10.YAMLError && c3.makePretty(); - for (let c3 of this.warnings) - c3 instanceof Y10.YAMLError && c3.makePretty(); - } - return this; - } - listNonDefaultTags() { - return Ma3(this.contents).filter((e3) => e3.indexOf(oi7.Schema.defaultPrefix) !== 0); - } - setTagPrefix(e3, n) { - if (e3[0] !== "!" || e3[e3.length - 1] !== "!") - throw new Error("Handle must start and end with !"); - if (n) { - let r3 = this.tagPrefixes.find((s3) => s3.handle === e3); - r3 ? r3.prefix = n : this.tagPrefixes.push({ handle: e3, prefix: n }); - } else - this.tagPrefixes = this.tagPrefixes.filter((r3) => r3.handle !== e3); - } - toJSON(e3, n) { - let { keepBlobsInJSON: r3, mapAsMap: s3, maxAliasCount: i } = this.options, o2 = r3 && (typeof e3 != "string" || !(this.contents instanceof S6.Scalar)), a = { doc: this, indentStep: " ", keep: o2, mapAsMap: o2 && !!s3, maxAliasCount: i, stringify: Xt5 }, c3 = Object.keys(this.anchors.map); - c3.length > 0 && (a.anchors = new Map(c3.map((f3) => [this.anchors.map[f3], { alias: [], aliasCount: 0, count: 1 }]))); - let l = S6.toJSON(this.contents, e3, a); - if (typeof n == "function" && a.anchors) - for (let { count: f3, res: m3 } of a.anchors.values()) - n(m3, f3); - return l; - } - toString() { - if (this.errors.length > 0) - throw new Error("Document with errors cannot be stringified"); - let e3 = this.options.indent; - if (!Number.isInteger(e3) || e3 <= 0) { - let c3 = JSON.stringify(e3); - throw new Error(`"indent" option must be a positive integer, not ${c3}`); - } - this.setSchema(); - let n = [], r3 = false; - if (this.version) { - let c3 = "%YAML 1.2"; - this.schema.name === "yaml-1.1" && (this.version === "1.0" ? c3 = "%YAML:1.0" : this.version === "1.1" && (c3 = "%YAML 1.1")), n.push(c3), r3 = true; - } - let s3 = this.listNonDefaultTags(); - this.tagPrefixes.forEach(({ handle: c3, prefix: l }) => { - s3.some((f3) => f3.indexOf(l) === 0) && (n.push(`%TAG ${c3} ${l}`), r3 = true); - }), (r3 || this.directivesEndMarker) && n.push("---"), this.commentBefore && ((r3 || !this.directivesEndMarker) && n.unshift(""), n.unshift(this.commentBefore.replace(/^/gm, "#"))); - let i = { anchors: /* @__PURE__ */ Object.create(null), doc: this, indent: "", indentStep: " ".repeat(e3), stringify: Xt5 }, o2 = false, a = null; - if (this.contents) { - this.contents instanceof S6.Node && (this.contents.spaceBefore && (r3 || this.directivesEndMarker) && n.push(""), this.contents.commentBefore && n.push(this.contents.commentBefore.replace(/^/gm, "#")), i.forceBlockIndent = !!this.comment, a = this.contents.comment); - let c3 = a ? null : () => o2 = true, l = Xt5(this.contents, i, () => a = null, c3); - n.push(S6.addComment(l, "", a)); - } else - this.contents !== void 0 && n.push(Xt5(this.contents, i)); - return this.comment && ((!o2 || a) && n[n.length - 1] !== "" && n.push(""), n.push(this.comment.replace(/^/gm, "#"))), n.join(` -`) + ` -`; - } - }; - Y10._defineProperty(Zt5, "defaults", ci6); - en6.Document = Zt5; - en6.defaultOptions = La2; - en6.scalarOptions = Aa4; - }); - pi7 = ee9((ui7) => { - "use strict"; - var zn4 = Is5(), Ne7 = li6(), _a3 = Hn5(), xa2 = le9(), Ra3 = jn5(); - $e8(); - function Da2(t12, e3 = true, n) { - n === void 0 && typeof e3 == "string" && (n = e3, e3 = true); - let r3 = Object.assign({}, Ne7.Document.defaults[Ne7.defaultOptions.version], Ne7.defaultOptions); - return new _a3.Schema(r3).createNode(t12, e3, n); - } - var Ke8 = class extends Ne7.Document { - constructor(e3) { - super(Object.assign({}, Ne7.defaultOptions, e3)); - } - }; - function Ya4(t12, e3) { - let n = [], r3; - for (let s3 of zn4.parse(t12)) { - let i = new Ke8(e3); - i.parse(s3, r3), n.push(i), r3 = i; - } - return n; - } - function fi7(t12, e3) { - let n = zn4.parse(t12), r3 = new Ke8(e3).parse(n[0]); - if (n.length > 1) { - let s3 = "Source contains multiple documents; please use YAML.parseAllDocuments()"; - r3.errors.unshift(new xa2.YAMLSemanticError(n[1], s3)); - } - return r3; - } - function Ba3(t12, e3) { - let n = fi7(t12, e3); - if (n.warnings.forEach((r3) => Ra3.warn(r3)), n.errors.length > 0) - throw n.errors[0]; - return n.toJSON(); - } - function $a3(t12, e3) { - let n = new Ke8(e3); - return n.contents = t12, String(n); - } - var Fa2 = { createNode: Da2, defaultOptions: Ne7.defaultOptions, Document: Ke8, parse: Ba3, parseAllDocuments: Ya4, parseCST: zn4.parse, parseDocument: fi7, scalarOptions: Ne7.scalarOptions, stringify: $a3 }; - ui7.YAML = Fa2; - }); - hi7 = ee9((Im, mi6) => { - mi6.exports = pi7().YAML; - }); - gi6 = ee9((Q7) => { - "use strict"; - var Ve9 = $e8(), We8 = le9(); - Q7.findPair = Ve9.findPair; - Q7.parseMap = Ve9.resolveMap; - Q7.parseSeq = Ve9.resolveSeq; - Q7.stringifyNumber = Ve9.stringifyNumber; - Q7.stringifyString = Ve9.stringifyString; - Q7.toJSON = Ve9.toJSON; - Q7.Type = We8.Type; - Q7.YAMLError = We8.YAMLError; - Q7.YAMLReferenceError = We8.YAMLReferenceError; - Q7.YAMLSemanticError = We8.YAMLSemanticError; - Q7.YAMLSyntaxError = We8.YAMLSyntaxError; - Q7.YAMLWarning = We8.YAMLWarning; - }); - tr7 = {}; - nr6(tr7, { languages: () => bi7, options: () => Ni6, parsers: () => er7, printers: () => Ja3 }); - vi7 = (t12, e3, n, r3) => { - if (!(t12 && e3 == null)) - return e3.replaceAll ? e3.replaceAll(n, r3) : n.global ? e3.replace(n, r3) : e3.split(n).join(r3); - }; - yt6 = vi7; - je10 = "string"; - Qe9 = "array"; - Je9 = "cursor"; - Ge8 = "indent"; - Oe10 = "align"; - He8 = "trim"; - Le6 = "group"; - Ae6 = "fill"; - Te9 = "if-break"; - Xe8 = "indent-if-break"; - Ce9 = "line-suffix"; - ze10 = "line-suffix-boundary"; - te8 = "line"; - Ze10 = "label"; - Me8 = "break-parent"; - Et8 = /* @__PURE__ */ new Set([Je9, Ge8, Oe10, He8, Le6, Ae6, Te9, Xe8, Ce9, ze10, te8, Ze10, Me8]); - et8 = Ii5; - Pi6 = (t12) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(t12); - rn6 = class extends Error { - name = "InvalidDocError"; - constructor(e3) { - super(_i5(e3)), this.doc = e3; - } - }; - sn6 = rn6; - sr6 = () => { - }; - he8 = sr6; - St7 = sr6; - bt6 = { type: Me8 }; - xi7 = { type: te8, hard: true }; - Ri4 = { type: te8, hard: true, literal: true }; - ne9 = { type: te8 }; - Nt8 = { type: te8, soft: true }; - N5 = [xi7, bt6]; - rt7 = [Ri4, bt6]; - Di6 = (t12, e3, n) => { - if (!(t12 && e3 == null)) - return Array.isArray(e3) || typeof e3 == "string" ? e3[n < 0 ? e3.length + n : n] : e3.at(n); - }; - x6 = Di6; - cn5 = Bi6; - Oc4 = Ot9(/\s/); - ln5 = Ot9(" "); - Lc4 = Ot9(",; "); - Ac3 = Ot9(/[^\n\r]/); - lr6 = $i4; - fn5 = class extends Error { - name = "UnexpectedNodeError"; - constructor(e3, n, r3 = "type") { - super(`Unexpected ${n} node ${r3}: ${JSON.stringify(e3[r3])}.`), this.node = e3; - } - }; - fr5 = fn5; - gr5.getVisitorKeys = () => []; - dr5 = gr5; - Ie7 = Fi6; - it5 = null; - Ui6 = 10; - for (let t12 = 0; t12 <= Ui6; t12++) - ot7(); - Or4 = Ki5; - Vi4 = Object.fromEntries(Object.entries({ root: ["children"], document: ["head", "body", "children"], documentHead: ["children"], documentBody: ["children"], directive: [], alias: [], blockLiteral: [], blockFolded: ["children"], plain: ["children"], quoteSingle: [], quoteDouble: [], mapping: ["children"], mappingItem: ["key", "value", "children"], mappingKey: ["content", "children"], mappingValue: ["content", "children"], sequence: ["children"], sequenceItem: ["content", "children"], flowMapping: ["children"], flowMappingItem: ["key", "value", "children"], flowSequence: ["children"], flowSequenceItem: ["content", "children"], comment: [], tag: [], anchor: [] }).map(([t12, e3]) => [t12, [...e3, "anchor", "tag", "indicatorComment", "leadingComments", "middleComments", "trailingComment", "endComments"]])); - Lr6 = Vi4; - Wi3 = Or4(Lr6); - Ar7 = Wi3; - Tr5 = ji4; - hn5 = /* @__PURE__ */ new WeakMap(); - Cr5 = Gi4; - Mr3 = zi5; - so2 = { preprocess: Tr5, embed: dr5, print: Zi6, massageAstNode: ro2, insertPragma: mr5, getVisitorKeys: Ar7 }; - vr5 = so2; - er7 = {}; - nr6(er7, { yaml: () => ja3 }); - Mt7 = ` -`; - Ir6 = "\r"; - Pr6 = function() { - function t12(e3) { - this.length = e3.length; - for (var n = [0], r3 = 0; r3 < e3.length; ) - switch (e3[r3]) { - case Mt7: - r3 += Mt7.length, n.push(r3); - break; - case Ir6: - r3 += Ir6.length, e3[r3] === Mt7 && (r3 += Mt7.length), n.push(r3); - break; - default: - r3++; - break; - } - this.offsets = n; - } - return t12.prototype.locationForIndex = function(e3) { - if (e3 < 0 || e3 > this.length) - return null; - for (var n = 0, r3 = this.offsets; r3[n + 1] <= e3; ) - n++; - var s3 = e3 - r3[n]; - return { line: n, column: s3 }; - }, t12.prototype.indexForLocation = function(e3) { - var n = e3.line, r3 = e3.column; - return n < 0 || n >= this.offsets.length || r3 < 0 || r3 > this.lengthOfLine(n) ? null : this.offsets[n] + r3; - }, t12.prototype.lengthOfLine = function(e3) { - var n = this.offsets[e3], r3 = e3 === this.offsets.length - 1 ? this.length : this.offsets[e3 + 1]; - return r3 - n; - }, t12; - }(); - (function(t12) { - t12.Tag = "!", t12.Anchor = "&", t12.Comment = "#"; - })(ae7 || (ae7 = {})); - (function(t12) { - t12.CLIP = "clip", t12.STRIP = "strip", t12.KEEP = "keep"; - })(yn5 || (yn5 = {})); - di6 = rr6(hi7(), 1); - J6 = rr6(gi6(), 1); - _m = J6.default.findPair; - xm = J6.default.toJSON; - Rm = J6.default.parseMap; - Dm = J6.default.parseSeq; - Ym = J6.default.stringifyNumber; - Bm2 = J6.default.stringifyString; - $m = J6.default.Type; - qa4 = J6.default.YAMLError; - Fm = J6.default.YAMLReferenceError; - Zn5 = J6.default.YAMLSemanticError; - Ua3 = J6.default.YAMLSyntaxError; - qm = J6.default.YAMLWarning; - ({ Document: yi6, parseCST: Ei6 } = di6.default); - wi6 = Va4; - ja3 = { astFormat: "yaml", parse: Wa4, hasPragma: pr5, locStart: ve8, locEnd: hr4 }; - bi7 = [{ linguistLanguageId: 407, name: "YAML", type: "data", color: "#cb171e", tmScope: "source.yaml", aliases: ["yml"], extensions: [".yml", ".mir", ".reek", ".rviz", ".sublime-syntax", ".syntax", ".yaml", ".yaml-tmlanguage", ".yaml.sed", ".yml.mysql"], filenames: [".clang-format", ".clang-tidy", ".gemrc", "CITATION.cff", "glide.lock", ".prettierrc", ".stylelintrc", ".lintstagedrc"], aceMode: "yaml", codemirrorMode: "yaml", codemirrorMimeType: "text/x-yaml", parsers: ["yaml"], vscodeLanguageIds: ["yaml", "ansible", "home-assistant"] }]; - tn6 = { bracketSpacing: { category: "Common", type: "boolean", default: true, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, singleQuote: { category: "Common", type: "boolean", default: false, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: false, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: false, description: "Enforce single attribute per line in HTML, Vue and JSX." } }; - Qa5 = { bracketSpacing: tn6.bracketSpacing, singleQuote: tn6.singleQuote, proseWrap: tn6.proseWrap }; - Ni6 = Qa5; - Ja3 = { yaml: vr5 }; - yh = tr7; - } -}); - -// src/inputs.ts -var fs3 = __toESM(require("node:fs")); -var path = __toESM(require("node:path")); -var nconf = __toESM(require_nconf()); - -// src/Action.ts -var fs = __toESM(require("node:fs")); - -// node_modules/js-yaml/dist/js-yaml.mjs -function isNothing(subject) { - return typeof subject === "undefined" || subject === null; -} -function isObject(subject) { - return typeof subject === "object" && subject !== null; -} -function toArray(sequence) { - if (Array.isArray(sequence)) - return sequence; - else if (isNothing(sequence)) - return []; - return [sequence]; -} -function extend(target, source) { - var index, length, key, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } - return target; -} -function repeat(string, count) { - var result = "", cycle; - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } - return result; -} -function isNegativeZero(number) { - return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; -} -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; -function formatError(exception2, compact) { - var where = "", message = exception2.reason || "(unknown reason)"; - if (!exception2.mark) - return message; - if (exception2.mark.name) { - where += 'in "' + exception2.mark.name + '" '; - } - where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; - if (!compact && exception2.mark.snippet) { - where += "\n\n" + exception2.mark.snippet; - } - return message + " " + where; -} -function YAMLException$1(reason, mark) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark; - this.message = formatError(this, false); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } -} -YAMLException$1.prototype = Object.create(Error.prototype); -YAMLException$1.prototype.constructor = YAMLException$1; -YAMLException$1.prototype.toString = function toString2(compact) { - return this.name + ": " + formatError(this, compact); -}; -var exception = YAMLException$1; -function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { - var head = ""; - var tail = ""; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position - lineStart > maxHalfLength) { - head = " ... "; - lineStart = position - maxHalfLength + head.length; - } - if (lineEnd - position > maxHalfLength) { - tail = " ..."; - lineEnd = position + maxHalfLength - tail.length; - } - return { - str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, - pos: position - lineStart + head.length - // relative position - }; -} -function padStart(string, max) { - return common.repeat(" ", max - string.length) + string; -} -function makeSnippet(mark, options8) { - options8 = Object.create(options8 || null); - if (!mark.buffer) - return null; - if (!options8.maxLength) - options8.maxLength = 79; - if (typeof options8.indent !== "number") - options8.indent = 1; - if (typeof options8.linesBefore !== "number") - options8.linesBefore = 3; - if (typeof options8.linesAfter !== "number") - options8.linesAfter = 2; - var re9 = /\r?\n|\r|\0/g; - var lineStarts = [0]; - var lineEnds = []; - var match; - var foundLineNo = -1; - while (match = re9.exec(mark.buffer)) { - lineEnds.push(match.index); - lineStarts.push(match.index + match[0].length); - if (mark.position <= match.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } - if (foundLineNo < 0) - foundLineNo = lineStarts.length - 1; - var result = "", i, line3; - var lineNoLength = Math.min(mark.line + options8.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options8.maxLength - (options8.indent + lineNoLength + 3); - for (i = 1; i <= options8.linesBefore; i++) { - if (foundLineNo - i < 0) - break; - line3 = getLine( - mark.buffer, - lineStarts[foundLineNo - i], - lineEnds[foundLineNo - i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), - maxLineLength - ); - result = common.repeat(" ", options8.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line3.str + "\n" + result; - } - line3 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common.repeat(" ", options8.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line3.str + "\n"; - result += common.repeat("-", options8.indent + lineNoLength + 3 + line3.pos) + "^\n"; - for (i = 1; i <= options8.linesAfter; i++) { - if (foundLineNo + i >= lineEnds.length) - break; - line3 = getLine( - mark.buffer, - lineStarts[foundLineNo + i], - lineEnds[foundLineNo + i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), - maxLineLength - ); - result += common.repeat(" ", options8.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line3.str + "\n"; - } - return result.replace(/\n$/, ""); -} -var snippet = makeSnippet; -var TYPE_CONSTRUCTOR_OPTIONS = [ - "kind", - "multi", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "representName", - "defaultStyle", - "styleAliases" -]; -var YAML_NODE_KINDS = [ - "scalar", - "sequence", - "mapping" -]; -function compileStyleAliases(map2) { - var result = {}; - if (map2 !== null) { - Object.keys(map2).forEach(function(style) { - map2[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; -} -function Type$1(tag, options8) { - options8 = options8 || {}; - Object.keys(options8).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.options = options8; - this.tag = tag; - this.kind = options8["kind"] || null; - this.resolve = options8["resolve"] || function() { - return true; - }; - this.construct = options8["construct"] || function(data) { - return data; - }; - this.instanceOf = options8["instanceOf"] || null; - this.predicate = options8["predicate"] || null; - this.represent = options8["represent"] || null; - this.representName = options8["representName"] || null; - this.defaultStyle = options8["defaultStyle"] || null; - this.multi = options8["multi"] || false; - this.styleAliases = compileStyleAliases(options8["styleAliases"] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} -var type = Type$1; -function compileList(schema2, name) { - var result = []; - schema2[name].forEach(function(currentType) { - var newIndex = result.length; - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; - } - }); - result[newIndex] = currentType; - }); - return result; -} -function compileMap() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] - } - }, index, length; - function collectType(type2) { - if (type2.multi) { - result.multi[type2.kind].push(type2); - result.multi["fallback"].push(type2); - } else { - result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; - } - } - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} -function Schema$1(definition) { - return this.extend(definition); -} -Schema$1.prototype.extend = function extend2(definition) { - var implicit = []; - var explicit = []; - if (definition instanceof type) { - explicit.push(definition); - } else if (Array.isArray(definition)) { - explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - if (definition.implicit) - implicit = implicit.concat(definition.implicit); - if (definition.explicit) - explicit = explicit.concat(definition.explicit); - } else { - throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); - } - implicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - if (type$1.loadKind && type$1.loadKind !== "scalar") { - throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - if (type$1.multi) { - throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); - } - }); - explicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - }); - var result = Object.create(Schema$1.prototype); - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList(result, "implicit"); - result.compiledExplicit = compileList(result, "explicit"); - result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); - return result; -}; -var schema = Schema$1; -var str = new type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data) { - return data !== null ? data : ""; - } -}); -var seq = new type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data) { - return data !== null ? data : []; - } -}); -var map = new type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data) { - return data !== null ? data : {}; - } -}); -var failsafe = new schema({ - explicit: [ - str, - seq, - map - ] -}); -function resolveYamlNull(data) { - if (data === null) - return true; - var max = data.length; - return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); -} -function constructYamlNull() { - return null; -} -function isNull(object) { - return object === null; -} -var _null = new type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - }, - empty: function() { - return ""; - } - }, - defaultStyle: "lowercase" -}); -function resolveYamlBoolean(data) { - if (data === null) - return false; - var max = data.length; - return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); -} -function constructYamlBoolean(data) { - return data === "true" || data === "True" || data === "TRUE"; -} -function isBoolean(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; -} -var bool = new type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" -}); -function isHexCode(c3) { - return 48 <= c3 && c3 <= 57 || 65 <= c3 && c3 <= 70 || 97 <= c3 && c3 <= 102; -} -function isOctCode(c3) { - return 48 <= c3 && c3 <= 55; -} -function isDecCode(c3) { - return 48 <= c3 && c3 <= 57; -} -function resolveYamlInteger(data) { - if (data === null) - return false; - var max = data.length, index = 0, hasDigits = false, ch; - if (!max) - return false; - ch = data[index]; - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - if (ch === "0") { - if (index + 1 === max) - return true; - ch = data[++index]; - if (ch === "b") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (ch !== "0" && ch !== "1") - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "x") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isHexCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "o") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isOctCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - } - if (ch === "_") - return false; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch === "_") - return false; - return true; -} -function constructYamlInteger(data) { - var value = data, sign = 1, ch; - if (value.indexOf("_") !== -1) { - value = value.replace(/_/g, ""); - } - ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") - sign = -1; - value = value.slice(1); - ch = value[0]; - } - if (value === "0") - return 0; - if (ch === "0") { - if (value[1] === "b") - return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") - return sign * parseInt(value.slice(2), 16); - if (value[1] === "o") - return sign * parseInt(value.slice(2), 8); - } - return sign * parseInt(value, 10); -} -function isInteger(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); -} -var int = new type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - /* eslint-disable max-len */ - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } -}); -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" -); -function resolveYamlFloat(data) { - if (data === null) - return false; - if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_") { - return false; - } - return true; -} -function constructYamlFloat(data) { - var value, sign; - value = data.replace(/_/g, "").toLowerCase(); - sign = value[0] === "-" ? -1 : 1; - if ("+-".indexOf(value[0]) >= 0) { - value = value.slice(1); - } - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value === ".nan") { - return NaN; - } - return sign * parseFloat(value, 10); -} -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; -function representYamlFloat(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} -function isFloat(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); -} -var float = new type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: "lowercase" -}); -var json = failsafe.extend({ - implicit: [ - _null, - bool, - int, - float - ] -}); -var core = json; -var YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" -); -var YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" -); -function resolveYamlTimestamp(data) { - if (data === null) - return false; - if (YAML_DATE_REGEXP.exec(data) !== null) - return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) - return true; - return false; -} -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP.exec(data); - if (match === null) - match = YAML_TIMESTAMP_REGEXP.exec(data); - if (match === null) - throw new Error("Date resolve error"); - year = +match[1]; - month = +match[2] - 1; - day = +match[3]; - if (!match[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match[4]; - minute = +match[5]; - second = +match[6]; - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match[9]) { - tz_hour = +match[10]; - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match[9] === "-") - delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) - date.setTime(date.getTime() - delta); - return date; -} -function representYamlTimestamp(object) { - return object.toISOString(); -} -var timestamp = new type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); -function resolveYamlMerge(data) { - return data === "<<" || data === null; -} -var merge = new type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge -}); -var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; -function resolveYamlBinary(data) { - if (data === null) - return false; - var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - code = map2.indexOf(data.charAt(idx)); - if (code > 64) - continue; - if (code < 0) - return false; - bitlen += 6; - } - return bitlen % 8 === 0; -} -function constructYamlBinary(data) { - var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = []; - for (idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map2.indexOf(input.charAt(idx)); - } - tailbits = max % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - return new Uint8Array(result); -} -function representYamlBinary(object) { - var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max % 3; - if (tail === 0) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } else if (tail === 2) { - result += map2[bits >> 10 & 63]; - result += map2[bits >> 4 & 63]; - result += map2[bits << 2 & 63]; - result += map2[64]; - } else if (tail === 1) { - result += map2[bits >> 2 & 63]; - result += map2[bits << 4 & 63]; - result += map2[64]; - result += map2[64]; - } - return result; -} -function isBinary(obj) { - return Object.prototype.toString.call(obj) === "[object Uint8Array]"; -} -var binary = new type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; -var _toString$2 = Object.prototype.toString; -function resolveYamlOmap(data) { - if (data === null) - return true; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - if (_toString$2.call(pair) !== "[object Object]") - return false; - for (pairKey in pair) { - if (_hasOwnProperty$3.call(pair, pairKey)) { - if (!pairHasKey) - pairHasKey = true; - else - return false; - } - } - if (!pairHasKey) - return false; - if (objectKeys.indexOf(pairKey) === -1) - objectKeys.push(pairKey); - else - return false; - } - return true; -} -function constructYamlOmap(data) { - return data !== null ? data : []; -} -var omap = new type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); -var _toString$1 = Object.prototype.toString; -function resolveYamlPairs(data) { - if (data === null) - return true; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - if (_toString$1.call(pair) !== "[object Object]") - return false; - keys = Object.keys(pair); - if (keys.length !== 1) - return false; - result[index] = [keys[0], pair[keys[0]]]; - } - return true; -} -function constructYamlPairs(data) { - if (data === null) - return []; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - keys = Object.keys(pair); - result[index] = [keys[0], pair[keys[0]]]; - } - return result; -} -var pairs = new type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function resolveYamlSet(data) { - if (data === null) - return true; - var key, object = data; - for (key in object) { - if (_hasOwnProperty$2.call(object, key)) { - if (object[key] !== null) - return false; - } - } - return true; -} -function constructYamlSet(data) { - return data !== null ? data : {}; -} -var set = new type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet, - construct: constructYamlSet -}); -var _default = core.extend({ - implicit: [ - timestamp, - merge - ], - explicit: [ - binary, - omap, - pairs, - set - ] -}); -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class(obj) { - return Object.prototype.toString.call(obj); -} -function is_EOL(c3) { - return c3 === 10 || c3 === 13; -} -function is_WHITE_SPACE(c3) { - return c3 === 9 || c3 === 32; -} -function is_WS_OR_EOL(c3) { - return c3 === 9 || c3 === 32 || c3 === 10 || c3 === 13; -} -function is_FLOW_INDICATOR(c3) { - return c3 === 44 || c3 === 91 || c3 === 93 || c3 === 123 || c3 === 125; -} -function fromHexCode(c3) { - var lc3; - if (48 <= c3 && c3 <= 57) { - return c3 - 48; - } - lc3 = c3 | 32; - if (97 <= lc3 && lc3 <= 102) { - return lc3 - 97 + 10; - } - return -1; -} -function escapedHexLen(c3) { - if (c3 === 120) { - return 2; - } - if (c3 === 117) { - return 4; - } - if (c3 === 85) { - return 8; - } - return 0; -} -function fromDecimalCode(c3) { - if (48 <= c3 && c3 <= 57) { - return c3 - 48; - } - return -1; -} -function simpleEscapeSequence(c3) { - return c3 === 48 ? "\0" : c3 === 97 ? "\x07" : c3 === 98 ? "\b" : c3 === 116 ? " " : c3 === 9 ? " " : c3 === 110 ? "\n" : c3 === 118 ? "\v" : c3 === 102 ? "\f" : c3 === 114 ? "\r" : c3 === 101 ? "\x1B" : c3 === 32 ? " " : c3 === 34 ? '"' : c3 === 47 ? "/" : c3 === 92 ? "\\" : c3 === 78 ? "\x85" : c3 === 95 ? "\xA0" : c3 === 76 ? "\u2028" : c3 === 80 ? "\u2029" : ""; -} -function charFromCodepoint(c3) { - if (c3 <= 65535) { - return String.fromCharCode(c3); - } - return String.fromCharCode( - (c3 - 65536 >> 10) + 55296, - (c3 - 65536 & 1023) + 56320 - ); -} -var simpleEscapeCheck = new Array(256); -var simpleEscapeMap = new Array(256); -for (i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} -var i; -function State$1(input, options8) { - this.input = input; - this.filename = options8["filename"] || null; - this.schema = options8["schema"] || _default; - this.onWarning = options8["onWarning"] || null; - this.legacy = options8["legacy"] || false; - this.json = options8["json"] || false; - this.listener = options8["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.firstTabInLine = -1; - this.documents = []; -} -function generateError(state, message) { - var mark = { - name: state.filename, - buffer: state.input.slice(0, -1), - // omit trailing \0 - position: state.position, - line: state.line, - column: state.position - state.lineStart - }; - mark.snippet = snippet(mark); - return new exception(message, mark); -} -function throwError(state, message) { - throw generateError(state, message); -} -function throwWarning(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError(state, message)); - } -} -var directiveHandlers = { - YAML: function handleYamlDirective(state, name, args) { - var match, major, minor; - if (state.version !== null) { - throwError(state, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError(state, "YAML directive accepts exactly one argument"); - } - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match === null) { - throwError(state, "ill-formed argument of the YAML directive"); - } - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - if (major !== 1) { - throwError(state, "unacceptable YAML version of the document"); - } - state.version = args[0]; - state.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning(state, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective(state, name, args) { - var handle, prefix; - if (args.length !== 2) { - throwError(state, "TAG directive accepts exactly two arguments"); - } - handle = args[0]; - prefix = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty$1.call(state.tagMap, handle)) { - throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state, "ill-formed tag prefix (second argument) of the TAG directive"); - } - try { - prefix = decodeURIComponent(prefix); - } catch (err) { - throwError(state, "tag prefix is malformed: " + prefix); - } - state.tagMap[handle] = prefix; - } -}; -function captureSegment(state, start, end, checkJson) { - var _position, _length, _character, _result; - if (start < end) { - _result = state.input.slice(start, end); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError(state, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state, "the stream contains non-printable characters"); - } - state.result += _result; - } -} -function mergeMappings(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - if (!common.isObject(source)) { - throwError(state, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - if (!_hasOwnProperty$1.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} -function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { - keyNode[index] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { - state.line = startLine || state.line; - state.lineStart = startLineStart || state.lineStart; - state.position = startPos || state.position; - throwError(state, "duplicated mapping key"); - } - if (keyNode === "__proto__") { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } - return _result; -} -function readLineBreak(state) { - var ch; - ch = state.input.charCodeAt(state.position); - if (ch === 10) { - state.position++; - } else if (ch === 13) { - state.position++; - if (state.input.charCodeAt(state.position) === 10) { - state.position++; - } - } else { - throwError(state, "a line break is expected"); - } - state.line += 1; - state.lineStart = state.position; - state.firstTabInLine = -1; -} -function skipSeparationSpace(state, allowComments, checkIndent) { - var lineBreaks = 0, ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - if (ch === 9 && state.firstTabInLine === -1) { - state.firstTabInLine = state.position; - } - ch = state.input.charCodeAt(++state.position); - } - if (allowComments && ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 10 && ch !== 13 && ch !== 0); - } - if (is_EOL(ch)) { - readLineBreak(state); - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - while (ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning(state, "deficient indentation"); - } - return lineBreaks; -} -function testDocumentSeparator(state) { - var _position = state.position, ch; - ch = state.input.charCodeAt(_position); - if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - return false; -} -function writeFoldedLines(state, count) { - if (count === 1) { - state.result += " "; - } else if (count > 1) { - state.result += common.repeat("\n", count - 1); - } -} -function readPlainScalar(state, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; - ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { - return false; - } - if (ch === 63 || ch === 45) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - state.kind = "scalar"; - state.result = ""; - captureStart = captureEnd = state.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 58) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - } else if (ch === 35) { - preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL(preceding)) { - break; - } - } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - } else if (is_EOL(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace(state, false, -1); - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment(state, captureStart, captureEnd, false); - writeFoldedLines(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state.position + 1; - } - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, captureEnd, false); - if (state.result) { - return true; - } - state.kind = _kind; - state.result = _result; - return false; -} -function readSingleQuotedScalar(state, nodeIndent) { - var ch, captureStart, captureEnd; - ch = state.input.charCodeAt(state.position); - if (ch !== 39) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 39) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (ch === 39) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, "unexpected end of the document within a single quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError(state, "unexpected end of the stream within a single quoted scalar"); -} -function readDoubleQuotedScalar(state, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 34) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 34) { - captureSegment(state, captureStart, state.position, true); - state.position++; - return true; - } else if (ch === 92) { - captureSegment(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (is_EOL(ch)) { - skipSeparationSpace(state, false, nodeIndent); - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state.result += simpleEscapeMap[ch]; - state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError(state, "expected hexadecimal character"); - } - } - state.result += charFromCodepoint(hexResult); - state.position++; - } else { - throwError(state, "unknown escape sequence"); - } - captureStart = captureEnd = state.position; - } else if (is_EOL(ch)) { - captureSegment(state, captureStart, captureEnd, true); - writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { - throwError(state, "unexpected end of the document within a double quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError(state, "unexpected end of the stream within a double quoted scalar"); -} -function readFlowCollection(state, nodeIndent) { - var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(++state.position); - while (ch !== 0) { - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? "mapping" : "sequence"; - state.result = _result; - return true; - } else if (!readNext) { - throwError(state, "missed comma between flow collection entries"); - } else if (ch === 44) { - throwError(state, "expected the node content, but found ','"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch === 63) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace(state, true, nodeIndent); - } - } - _line = state.line; - _lineStart = state.lineStart; - _pos = state.position; - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if ((isExplicitPair || state.line === _line) && ch === 58) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace(state, true, nodeIndent); - composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state.result; - } - if (isMapping) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === 44) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - throwError(state, "unexpected end of the stream within a flow collection"); -} -function readBlockScalar(state, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 124) { - folding = false; - } else if (ch === 62) { - folding = true; - } else { - return false; - } - state.kind = "scalar"; - state.result = ""; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - if (ch === 43 || ch === 45) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE(ch)) { - do { - ch = state.input.charCodeAt(++state.position); - } while (is_WHITE_SPACE(ch)); - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (!is_EOL(ch) && ch !== 0); - } - } - while (ch !== 0) { - readLineBreak(state); - state.lineIndent = 0; - ch = state.input.charCodeAt(state.position); - while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - if (is_EOL(ch)) { - emptyLines++; - continue; - } - if (state.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP) { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - state.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state.result += " "; - } - } else { - state.result += common.repeat("\n", emptyLines); - } - } else { - state.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - while (!is_EOL(ch) && ch !== 0) { - ch = state.input.charCodeAt(++state.position); - } - captureSegment(state, captureStart, state.position, false); - } - return true; -} -function readBlockSequence(state, nodeIndent) { - var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, "tab characters must not be used in indentation"); - } - if (ch !== 45) { - break; - } - following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL(following)) { - break; - } - detected = true; - state.position++; - if (skipSeparationSpace(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - _line = state.line; - composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state.result); - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError(state, "bad indentation of a sequence entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "sequence"; - state.result = _result; - return true; - } - return false; -} -function readBlockMapping(state, nodeIndent, flowIndent) { - var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (!atExplicitKey && state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError(state, "tab characters must not be used in indentation"); - } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; - if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { - if (ch === 63) { - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state.position += 1; - ch = following; - } else { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - break; - } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 58) { - ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL(ch)) { - throwError(state, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - } else if (detected) { - throwError(state, "can not read an implicit mapping pair; a colon is missed"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } else if (detected) { - throwError(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } - if (state.line === _line || state.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - } - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - if (!atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError(state, "bad indentation of a mapping entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "mapping"; - state.result = _result; - } - return detected; -} -function readTagProperty(state) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 33) - return false; - if (state.tag !== null) { - throwError(state, "duplication of a tag property"); - } - ch = state.input.charCodeAt(++state.position); - if (ch === 60) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 33) { - isNamed = true; - tagHandle = "!!"; - ch = state.input.charCodeAt(++state.position); - } else { - tagHandle = "!"; - } - _position = state.position; - if (isVerbatim) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && ch !== 62); - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError(state, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - if (ch === 33) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state.position + 1; - } else { - throwError(state, "tag suffix cannot contain exclamation marks"); - } - } - ch = state.input.charCodeAt(++state.position); - } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state, "tag name cannot contain such characters: " + tagName); - } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError(state, "tag name is malformed: " + tagName); - } - if (isVerbatim) { - state.tag = tagName; - } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError(state, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; -} -function readAnchorProperty(state) { - var _position, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 38) - return false; - if (state.anchor !== null) { - throwError(state, "duplication of an anchor property"); - } - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError(state, "name of an anchor node must contain at least one character"); - } - state.anchor = state.input.slice(_position, state.position); - return true; -} -function readAlias(state) { - var _position, alias, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 42) - return false; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError(state, "name of an alias node must contain at least one character"); - } - alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { - throwError(state, 'unidentified alias "' + alias + '"'); - } - state.result = state.anchorMap[alias]; - skipSeparationSpace(state, true, -1); - return true; -} -function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; - if (state.listener !== null) { - state.listener("open", state); - } - state.tag = null; - state.anchor = null; - state.kind = null; - state.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty(state) || readAnchorProperty(state)) { - if (skipSeparationSpace(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state.position - state.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { - hasContent = true; - } else if (readAlias(state)) { - hasContent = true; - if (state.tag !== null || state.anchor !== null) { - throwError(state, "alias node should not have any properties"); - } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - if (state.tag === null) { - state.tag = "?"; - } - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); - } - } - if (state.tag === null) { - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } else if (state.tag === "?") { - if (state.result !== null && state.kind !== "scalar") { - throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type2 = state.implicitTypes[typeIndex]; - if (type2.resolve(state.result)) { - state.result = type2.construct(state.result); - state.tag = type2.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (state.tag !== "!") { - if (_hasOwnProperty$1.call(state.typeMap[state.kind || "fallback"], state.tag)) { - type2 = state.typeMap[state.kind || "fallback"][state.tag]; - } else { - type2 = null; - typeList = state.typeMap.multi[state.kind || "fallback"]; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type2 = typeList[typeIndex]; - break; - } - } - } - if (!type2) { - throwError(state, "unknown tag !<" + state.tag + ">"); - } - if (state.result !== null && type2.kind !== state.kind) { - throwError(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"'); - } - if (!type2.resolve(state.result, state.tag)) { - throwError(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); - } else { - state.result = type2.construct(state.result, state.tag); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } - if (state.listener !== null) { - state.listener("close", state); - } - return state.tag !== null || state.anchor !== null || hasContent; -} -function readDocument(state) { - var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = /* @__PURE__ */ Object.create(null); - state.anchorMap = /* @__PURE__ */ Object.create(null); - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if (state.lineIndent > 0 || ch !== 37) { - break; - } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError(state, "directive name must not be less than one character in length"); - } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && !is_EOL(ch)); - break; - } - if (is_EOL(ch)) - break; - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveArgs.push(state.input.slice(_position, state.position)); - } - if (ch !== 0) - readLineBreak(state); - if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning(state, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace(state, true, -1); - if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { - throwError(state, "directives end mark is expected"); - } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state, true, -1); - if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { - throwWarning(state, "non-ASCII line breaks are interpreted as content"); - } - state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator(state)) { - if (state.input.charCodeAt(state.position) === 46) { - state.position += 3; - skipSeparationSpace(state, true, -1); - } - return; - } - if (state.position < state.length - 1) { - throwError(state, "end of the stream or a document separator is expected"); - } else { - return; - } -} -function loadDocuments(input, options8) { - input = String(input); - options8 = options8 || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state = new State$1(input, options8); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state.position = nullpos; - throwError(state, "null byte is not allowed in input"); - } - state.input += "\0"; - while (state.input.charCodeAt(state.position) === 32) { - state.lineIndent += 1; - state.position += 1; - } - while (state.position < state.length - 1) { - readDocument(state); - } - return state.documents; -} -function loadAll$1(input, iterator, options8) { - if (iterator !== null && typeof iterator === "object" && typeof options8 === "undefined") { - options8 = iterator; - iterator = null; - } - var documents = loadDocuments(input, options8); - if (typeof iterator !== "function") { - return documents; - } - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} -function load$1(input, options8) { - var documents = loadDocuments(input, options8); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception("expected a single document in the stream, but found more"); -} -var loadAll_1 = loadAll$1; -var load_1 = load$1; -var loader = { - loadAll: loadAll_1, - load: load_1 -}; -var _toString = Object.prototype.toString; -var _hasOwnProperty = Object.prototype.hasOwnProperty; -var CHAR_BOM = 65279; -var CHAR_TAB = 9; -var CHAR_LINE_FEED = 10; -var CHAR_CARRIAGE_RETURN = 13; -var CHAR_SPACE = 32; -var CHAR_EXCLAMATION = 33; -var CHAR_DOUBLE_QUOTE = 34; -var CHAR_SHARP = 35; -var CHAR_PERCENT = 37; -var CHAR_AMPERSAND = 38; -var CHAR_SINGLE_QUOTE = 39; -var CHAR_ASTERISK = 42; -var CHAR_COMMA = 44; -var CHAR_MINUS = 45; -var CHAR_COLON = 58; -var CHAR_EQUALS = 61; -var CHAR_GREATER_THAN = 62; -var CHAR_QUESTION = 63; -var CHAR_COMMERCIAL_AT = 64; -var CHAR_LEFT_SQUARE_BRACKET = 91; -var CHAR_RIGHT_SQUARE_BRACKET = 93; -var CHAR_GRAVE_ACCENT = 96; -var CHAR_LEFT_CURLY_BRACKET = 123; -var CHAR_VERTICAL_LINE = 124; -var CHAR_RIGHT_CURLY_BRACKET = 125; -var ESCAPE_SEQUENCES = {}; -ESCAPE_SEQUENCES[0] = "\\0"; -ESCAPE_SEQUENCES[7] = "\\a"; -ESCAPE_SEQUENCES[8] = "\\b"; -ESCAPE_SEQUENCES[9] = "\\t"; -ESCAPE_SEQUENCES[10] = "\\n"; -ESCAPE_SEQUENCES[11] = "\\v"; -ESCAPE_SEQUENCES[12] = "\\f"; -ESCAPE_SEQUENCES[13] = "\\r"; -ESCAPE_SEQUENCES[27] = "\\e"; -ESCAPE_SEQUENCES[34] = '\\"'; -ESCAPE_SEQUENCES[92] = "\\\\"; -ESCAPE_SEQUENCES[133] = "\\N"; -ESCAPE_SEQUENCES[160] = "\\_"; -ESCAPE_SEQUENCES[8232] = "\\L"; -ESCAPE_SEQUENCES[8233] = "\\P"; -var DEPRECATED_BOOLEANS_SYNTAX = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF" -]; -var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; -function compileStyleMap(schema2, map2) { - var result, keys, index, length, tag, style, type2; - if (map2 === null) - return {}; - result = {}; - keys = Object.keys(map2); - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map2[tag]); - if (tag.slice(0, 2) === "!!") { - tag = "tag:yaml.org,2002:" + tag.slice(2); - } - type2 = schema2.compiledTypeMap["fallback"][tag]; - if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) { - style = type2.styleAliases[style]; - } - result[tag] = style; - } - return result; -} -function encodeHex(character) { - var string, handle, length; - string = character.toString(16).toUpperCase(); - if (character <= 255) { - handle = "x"; - length = 2; - } else if (character <= 65535) { - handle = "u"; - length = 4; - } else if (character <= 4294967295) { - handle = "U"; - length = 8; - } else { - throw new exception("code point within a string may not be greater than 0xFFFFFFFF"); - } - return "\\" + handle + common.repeat("0", length - string.length) + string; -} -var QUOTING_TYPE_SINGLE = 1; -var QUOTING_TYPE_DOUBLE = 2; -function State(options8) { - this.schema = options8["schema"] || _default; - this.indent = Math.max(1, options8["indent"] || 2); - this.noArrayIndent = options8["noArrayIndent"] || false; - this.skipInvalid = options8["skipInvalid"] || false; - this.flowLevel = common.isNothing(options8["flowLevel"]) ? -1 : options8["flowLevel"]; - this.styleMap = compileStyleMap(this.schema, options8["styles"] || null); - this.sortKeys = options8["sortKeys"] || false; - this.lineWidth = options8["lineWidth"] || 80; - this.noRefs = options8["noRefs"] || false; - this.noCompatMode = options8["noCompatMode"] || false; - this.condenseFlow = options8["condenseFlow"] || false; - this.quotingType = options8["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; - this.forceQuotes = options8["forceQuotes"] || false; - this.replacer = typeof options8["replacer"] === "function" ? options8["replacer"] : null; - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; - this.result = ""; - this.duplicates = []; - this.usedDuplicates = null; -} -function indentString(string, spaces) { - var ind = common.repeat(" ", spaces), position = 0, next = -1, result = "", line3, length = string.length; - while (position < length) { - next = string.indexOf("\n", position); - if (next === -1) { - line3 = string.slice(position); - position = length; - } else { - line3 = string.slice(position, next + 1); - position = next + 1; - } - if (line3.length && line3 !== "\n") - result += ind; - result += line3; - } - return result; -} -function generateNextLine(state, level) { - return "\n" + common.repeat(" ", state.indent * level); -} -function testImplicitResolving(state, str2) { - var index, length, type2; - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type2 = state.implicitTypes[index]; - if (type2.resolve(str2)) { - return true; - } - } - return false; -} -function isWhitespace(c3) { - return c3 === CHAR_SPACE || c3 === CHAR_TAB; -} -function isPrintable(c3) { - return 32 <= c3 && c3 <= 126 || 161 <= c3 && c3 <= 55295 && c3 !== 8232 && c3 !== 8233 || 57344 <= c3 && c3 <= 65533 && c3 !== CHAR_BOM || 65536 <= c3 && c3 <= 1114111; -} -function isNsCharOrWhitespace(c3) { - return isPrintable(c3) && c3 !== CHAR_BOM && c3 !== CHAR_CARRIAGE_RETURN && c3 !== CHAR_LINE_FEED; -} -function isPlainSafe(c3, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c3); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c3); - return ( - // ns-plain-safe - (inblock ? ( - // c = flow-in - cIsNsCharOrWhitespace - ) : cIsNsCharOrWhitespace && c3 !== CHAR_COMMA && c3 !== CHAR_LEFT_SQUARE_BRACKET && c3 !== CHAR_RIGHT_SQUARE_BRACKET && c3 !== CHAR_LEFT_CURLY_BRACKET && c3 !== CHAR_RIGHT_CURLY_BRACKET) && c3 !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c3 === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar - ); -} -function isPlainSafeFirst(c3) { - return isPrintable(c3) && c3 !== CHAR_BOM && !isWhitespace(c3) && c3 !== CHAR_MINUS && c3 !== CHAR_QUESTION && c3 !== CHAR_COLON && c3 !== CHAR_COMMA && c3 !== CHAR_LEFT_SQUARE_BRACKET && c3 !== CHAR_RIGHT_SQUARE_BRACKET && c3 !== CHAR_LEFT_CURLY_BRACKET && c3 !== CHAR_RIGHT_CURLY_BRACKET && c3 !== CHAR_SHARP && c3 !== CHAR_AMPERSAND && c3 !== CHAR_ASTERISK && c3 !== CHAR_EXCLAMATION && c3 !== CHAR_VERTICAL_LINE && c3 !== CHAR_EQUALS && c3 !== CHAR_GREATER_THAN && c3 !== CHAR_SINGLE_QUOTE && c3 !== CHAR_DOUBLE_QUOTE && c3 !== CHAR_PERCENT && c3 !== CHAR_COMMERCIAL_AT && c3 !== CHAR_GRAVE_ACCENT; -} -function isPlainSafeLast(c3) { - return !isWhitespace(c3) && c3 !== CHAR_COLON; -} -function codePointAt(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 56320 && second <= 57343) { - return (first - 55296) * 1024 + second - 56320 + 65536; - } - } - return first; -} -function needIndentIndicator(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); -} -var STYLE_PLAIN = 1; -var STYLE_SINGLE = 2; -var STYLE_LITERAL = 3; -var STYLE_FOLDED = 4; -var STYLE_DOUBLE = 5; -function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { - var i; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; - var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1)); - if (singleLineOnly || forceQuotes) { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - } else { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - if (char === CHAR_LINE_FEED) { - hasLineBreak = true; - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. - i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; - previousLineBreak = i; - } - } else if (!isPrintable(char)) { - return STYLE_DOUBLE; - } - plain = plain && isPlainSafe(char, prevChar, inblock); - prevChar = char; - } - hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "); - } - if (!hasLineBreak && !hasFoldableLine) { - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; - } - if (indentPerLevel > 9 && needIndentIndicator(string)) { - return STYLE_DOUBLE; - } - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; - } - return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; -} -function writeScalar(state, string, level, iskey, inblock) { - state.dump = function() { - if (string.length === 0) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''"; - } - if (!state.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) { - return state.quotingType === QUOTING_TYPE_DOUBLE ? '"' + string + '"' : "'" + string + "'"; - } - } - var indent3 = state.indent * Math.max(1, level); - var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent3); - var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; - function testAmbiguity(string2) { - return testImplicitResolving(state, string2); - } - switch (chooseScalarStyle( - string, - singleLineOnly, - state.indent, - lineWidth, - testAmbiguity, - state.quotingType, - state.forceQuotes && !iskey, - inblock - )) { - case STYLE_PLAIN: - return string; - case STYLE_SINGLE: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL: - return "|" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent3)); - case STYLE_FOLDED: - return ">" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent3)); - case STYLE_DOUBLE: - return '"' + escapeString(string) + '"'; - default: - throw new exception("impossible error: invalid scalar style"); - } - }(); -} -function blockHeader(string, indentPerLevel) { - var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ""; - var clip = string[string.length - 1] === "\n"; - var keep = clip && (string[string.length - 2] === "\n" || string === "\n"); - var chomp = keep ? "+" : clip ? "" : "-"; - return indentIndicator + chomp + "\n"; -} -function dropEndingNewline(string) { - return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; -} -function foldString(string, width) { - var lineRe = /(\n+)([^\n]*)/g; - var result = function() { - var nextLF = string.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine(string.slice(0, nextLF), width); - }(); - var prevMoreIndented = string[0] === "\n" || string[0] === " "; - var moreIndented; - var match; - while (match = lineRe.exec(string)) { - var prefix = match[1], line3 = match[2]; - moreIndented = line3[0] === " "; - result += prefix + (!prevMoreIndented && !moreIndented && line3 !== "" ? "\n" : "") + foldLine(line3, width); - prevMoreIndented = moreIndented; - } - return result; -} -function foldLine(line3, width) { - if (line3 === "" || line3[0] === " ") - return line3; - var breakRe = / [^ ]/g; - var match; - var start = 0, end, curr = 0, next = 0; - var result = ""; - while (match = breakRe.exec(line3)) { - next = match.index; - if (next - start > width) { - end = curr > start ? curr : next; - result += "\n" + line3.slice(start, end); - start = end + 1; - } - curr = next; - } - result += "\n"; - if (line3.length - start > width && curr > start) { - result += line3.slice(start, curr) + "\n" + line3.slice(curr + 1); - } else { - result += line3.slice(start); - } - return result.slice(1); -} -function escapeString(string) { - var result = ""; - var char = 0; - var escapeSeq; - for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt(string, i); - escapeSeq = ESCAPE_SEQUENCES[char]; - if (!escapeSeq && isPrintable(char)) { - result += string[i]; - if (char >= 65536) - result += string[i + 1]; - } else { - result += escapeSeq || encodeHex(char); - } - } - return result; -} -function writeFlowSequence(state, level, object) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode(state, level, value, false, false) || typeof value === "undefined" && writeNode(state, level, null, false, false)) { - if (_result !== "") - _result += "," + (!state.condenseFlow ? " " : ""); - _result += state.dump; - } - } - state.tag = _tag; - state.dump = "[" + _result + "]"; -} -function writeBlockSequence(state, level, object, compact) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode(state, level + 1, null, true, true, false, true)) { - if (!compact || _result !== "") { - _result += generateNextLine(state, level); - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - _result += state.dump; - } - } - state.tag = _tag; - state.dump = _result || "[]"; -} -function writeFlowMapping(state, level, object) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer; - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (_result !== "") - pairBuffer += ", "; - if (state.condenseFlow) - pairBuffer += '"'; - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state, level, objectKey, false, false)) { - continue; - } - if (state.dump.length > 1024) - pairBuffer += "? "; - pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); - if (!writeNode(state, level, objectValue, false, false)) { - continue; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = "{" + _result + "}"; -} -function writeBlockMapping(state, level, object, compact) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer; - if (state.sortKeys === true) { - objectKeyList.sort(); - } else if (typeof state.sortKeys === "function") { - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - throw new exception("sortKeys must be a boolean or a function"); - } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (!compact || _result !== "") { - pairBuffer += generateNextLine(state, level); - } - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; - } - explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - pairBuffer += state.dump; - if (explicitPair) { - pairBuffer += generateNextLine(state, level); - } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; - } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = _result || "{}"; -} -function detectType(state, object, explicit) { - var _result, typeList, index, length, type2, style; - typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (index = 0, length = typeList.length; index < length; index += 1) { - type2 = typeList[index]; - if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { - if (explicit) { - if (type2.multi && type2.representName) { - state.tag = type2.representName(object); - } else { - state.tag = type2.tag; - } - } else { - state.tag = "?"; - } - if (type2.represent) { - style = state.styleMap[type2.tag] || type2.defaultStyle; - if (_toString.call(type2.represent) === "[object Function]") { - _result = type2.represent(object, style); - } else if (_hasOwnProperty.call(type2.represent, style)) { - _result = type2.represent[style](object, style); - } else { - throw new exception("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); - } - state.dump = _result; - } - return true; - } - } - return false; -} -function writeNode(state, level, object, block, compact, iskey, isblockseq) { - state.tag = null; - state.dump = object; - if (!detectType(state, object, false)) { - detectType(state, object, true); - } - var type2 = _toString.call(state.dump); - var inblock = block; - var tagStr; - if (block) { - block = state.flowLevel < 0 || state.flowLevel > level; - } - var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { - compact = false; - } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = "*ref_" + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type2 === "[object Object]") { - if (block && Object.keys(state.dump).length !== 0) { - writeBlockMapping(state, level, state.dump, compact); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowMapping(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object Array]") { - if (block && state.dump.length !== 0) { - if (state.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence(state, level - 1, state.dump, compact); - } else { - writeBlockSequence(state, level, state.dump, compact); - } - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowSequence(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object String]") { - if (state.tag !== "?") { - writeScalar(state, state.dump, level, iskey, inblock); - } - } else if (type2 === "[object Undefined]") { - return false; - } else { - if (state.skipInvalid) - return false; - throw new exception("unacceptable kind of an object to dump " + type2); - } - if (state.tag !== null && state.tag !== "?") { - tagStr = encodeURI( - state.tag[0] === "!" ? state.tag.slice(1) : state.tag - ).replace(/!/g, "%21"); - if (state.tag[0] === "!") { - tagStr = "!" + tagStr; - } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { - tagStr = "!!" + tagStr.slice(18); - } else { - tagStr = "!<" + tagStr + ">"; - } - state.dump = tagStr + " " + state.dump; - } - } - return true; -} -function getDuplicateReferences(object, state) { - var objects = [], duplicatesIndexes = [], index, length; - inspectNode(object, objects, duplicatesIndexes); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); -} -function inspectNode(object, objects, duplicatesIndexes) { - var objectKeyList, index, length; - if (object !== null && typeof object === "object") { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } -} -function dump$1(input, options8) { - options8 = options8 || {}; - var state = new State(options8); - if (!state.noRefs) - getDuplicateReferences(input, state); - var value = input; - if (state.replacer) { - value = state.replacer.call({ "": value }, "", value); - } - if (writeNode(state, 0, value, true, true)) - return state.dump + "\n"; - return ""; -} -var dump_1 = dump$1; -var dumper = { - dump: dump_1 -}; -function renamed(from, to3) { - return function() { - throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to3 + " instead, which is now safe by default."); - }; -} -var load = loader.load; -var loadAll = loader.loadAll; -var dump = dumper.dump; -var safeLoad = renamed("safeLoad", "load"); -var safeLoadAll = renamed("safeLoadAll", "loadAll"); -var safeDump = renamed("safeDump", "dump"); - -// src/logtask/index.ts -var core2 = __toESM(require_core()); -var chalkClass = __toESM(require_source()); - -// node_modules/node-emoji/lib/index.js -var import_emojilib = __toESM(require_emojilib(), 1); -var import_char_regex = __toESM(require_char_regex(), 1); -var import_is = __toESM(require_dist(), 1); -var import_skin_tone = __toESM(require_skin_tone(), 1); -var charRegexMatcher = (0, import_char_regex.default)(); -var NON_SPACING_MARK = String.fromCharCode(65039); -var nonSpacingRegex = new RegExp(NON_SPACING_MARK, "g"); -function normalizeCode(code) { - return code.replace(nonSpacingRegex, ""); -} -function normalizeName(name) { - return /:.+:/.test(name) ? name.slice(1, -1) : name; -} -var emojiData = Object.entries(import_emojilib.default.lib).map( - ([name, { char: emoji }]) => [name, emoji] -); -var emojiCodesByName = new Map(emojiData); -var emojiNamesByCode = new Map( - emojiData.map(([name, emoji]) => [normalizeCode(emoji), name]) -); -var get = (codeOrName) => { - import_is.assert.string(codeOrName); - return emojiCodesByName.get(normalizeName(codeOrName)); -}; - -// src/logtask/index.ts -var NO_GROUP = 0; -var START_GROUP = 1; -var END_GROUP = 2; -var IS_ERROR = 3; -var IS_FAILED = 5; -var IS_TITLE = 6; -var chalk = chalkClass.default; -var LogTask = class _LogTask { - name; - static ingroup_setting = {}; - static indentWidth = 5; - constructor(name) { - this.name = name.trim(); - if (_LogTask.ingroup_setting[this.name] === void 0) { - _LogTask.ingroup_setting[this.name] = false; - } - } - get ingroup() { - return _LogTask.ingroup_setting[this.name] ?? false; - } - set ingroup(value) { - _LogTask.ingroup_setting[this.name] = value; - } - async logStep(emojiStr, step, description, startGroup2 = NO_GROUP) { - if (step.length > _LogTask.indentWidth) { - _LogTask.indentWidth = step.length; - } - let desc; - switch (step) { - case "START": { - desc = chalk.yellowBright(`${description}`); - break; - } - case "INFO": { - desc = chalk.green(`${description}`); - break; - } - case "WARN": { - desc = chalk.yellow(`${description}`); - break; - } - case "SUCCESS": { - desc = chalk.greenBright(`${description}`); - break; - } - case "FAILURE": { - desc = chalk.redBright(`${description}`); - break; - } - case "ERROR": { - desc = chalk.redBright(`${description}`); - break; - } - case "#####": { - desc = chalk.cyan(`${description}`); - break; - } - default: { - desc = chalk.white(`${description}`); - break; - } - } - let msg; - if (this.ingroup && !process.env["GITHUB_ACTIONS"]) { - const indentStr = [...Array.from({ length: _LogTask.indentWidth }).fill(" ")].join(""); - msg = `${indentStr} ${emojiStr}: ${this.name} > ${desc}`; - } else { - const stepStr = [ - ...step, - ...Array.from({ length: _LogTask.indentWidth - step.length }).fill(" ") - ].join(""); - msg = `[${stepStr}] ${emojiStr}: ${desc}`; - } - switch (step) { - case "START": { - msg = chalk.yellowBright(`${msg}`); - break; - } - case "SUCCESS": { - msg = chalk.whiteBright(`${msg}`); - break; - } - case "FAILURE": { - msg = chalk.red(`${msg}`); - break; - } - case "ERROR": { - msg = chalk.red(`${msg}`); - break; - } - default: { - break; - } - } - const isErroring = startGroup2 === IS_ERROR || startGroup2 === IS_FAILED; - if (process.env["GITHUB_ACTIONS"]) { - switch (startGroup2) { - case START_GROUP: { - core2.startGroup(msg); - break; - } - case END_GROUP: { - core2.endGroup(); - break; - } - case IS_ERROR: { - core2.error(chalk.bgRedBright(msg)); - break; - } - case IS_FAILED: { - core2.setFailed(chalk.bgRedBright(msg)); - break; - } - default: { - core2.info(msg); - } - } - } else if (isErroring) { - core2.error(msg); - } else { - core2.info(msg); - } - } - debug(description = "") { - if (process.env["DEBUG"] === "true") { - this.logStep("\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F", "DEBUG", description); - } - } - start(description = "") { - const desc = description === "" ? `Starting ${this.name}...` : description; - this.logStep(get("rocket") ?? "", "START", desc, START_GROUP); - } - info(description = "") { - this.logStep(get("sparkles") ?? "", "INFO", description); - } - warn(description = "") { - this.logStep(get("anger") ?? "", "WARN", description); - } - success(description = "", ingroup = true) { - const desc = description === "" ? `Completed ${this.name}.` : description; - if (ingroup) { - this.ingroup = false; - if (process.env["GITHUB_ACTIONS"]) { - core2.endGroup(); - } - } - this.logStep(get("white_check_mark") ?? "", "SUCCESS", desc); - } - fail(description = "", ingroup = true) { - const desc = description === "" ? `Failed ${this.name}.` : description; - if (ingroup) { - this.ingroup = false; - if (process.env["GITHUB_ACTIONS"]) { - core2.endGroup(); - } - } - const msgtype = process.env["GITHUB_ACTIONS"] ? IS_FAILED : IS_ERROR; - this.logStep(get("x") ?? "", "FAILURE", desc, msgtype); - } - error(description = "") { - this.logStep(get("x") ?? "", "ERROR", description, IS_ERROR); - } - title(description = "") { - this.logStep("\u{1F4D3}", "#####", description, IS_TITLE); - } -}; -var logtask_default = LogTask; - -// src/Action.ts -var Action = class { - // Load the action.yml - name; - description; - branding; - inputs; - outputs; - runs; - constructor(actionPath) { - const log3 = new logtask_default("action"); - let tmpActionYaml = null; - try { - log3.debug(`loading action.yml from ${actionPath}`); - tmpActionYaml = load(fs.readFileSync(actionPath, "utf8")); - log3.success("loaded configuration successfully"); - } catch { - log3.error(`failed to load ${actionPath}`); - } - if (typeof tmpActionYaml !== "object" || tmpActionYaml === null) { - log3.error("action.yml file read in isn't an object (no yaml in it)"); - } - const actionYaml = tmpActionYaml; - this.name = actionYaml.name; - this.description = actionYaml.description; - this.branding = actionYaml.branding; - this.inputs = actionYaml.inputs; - this.outputs = actionYaml.outputs; - this.runs = actionYaml.runs; - } -}; - -// src/helpers.ts -var fs2 = __toESM(require("node:fs")); - -// src/editorconfig.ts -var editorconfig = __toESM(require_lib2()); -var log = new logtask_default("Editorconfig"); -var DEFAULT_EDITORCONFIG_MAX_LINE_LENGTH = 80; -var Editorconfig = class { - props; - constructor() { - const defaults = { max_line_length: DEFAULT_EDITORCONFIG_MAX_LINE_LENGTH }; - try { - this.props = { ...defaults, ...editorconfig.parseSync(process.cwd()) }; - log.debug("Editor config: JSON.stringify(this.props)"); - } catch (error2) { - log.error(`Error parsing editorconfig: ${JSON.stringify(error2)}`); - this.props = defaults; - } - } -}; -var editorconfig_default = new Editorconfig(); - -// src/helpers.ts -var unicodeWordMatch = ( - // trunk-ignore(eslint/unicorn/better-regex,eslint/unicorn/no-hex-escape,eslint/optimize-regex/optimize-regex) - /(?:[\dA-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g -); -function titlecase(text) { - if (!text) - return void 0; - if (typeof text !== "string") { - throw new TypeError(`Invalid argument type provided to titlecase(): ${typeof text}`); - } - return text.replaceAll( - unicodeWordMatch, - (txt) => txt[0] ? txt[0].toUpperCase() + txt.slice(1).toLowerCase() : txt - ); -} -function wrapText(text, content, prepend = "") { - if (!text) - return content; - const width = editorconfig_default.props.max_line_length; - let description = text.trim().replaceAll("\r\n", "\n").replaceAll(/ +/g, " ").replaceAll(" \n", "\n"); - while (description) { - let segment; - if (description.length > width) { - segment = description.slice(0, Math.max(0, width + 1)); - while (!segment.endsWith(" ") && !segment.endsWith("\n") && segment) { - segment = segment.slice(0, Math.max(0, segment.length - 1)); - } - if (segment.length < width * 0.67) { - segment = description; - } - } else { - segment = description; - } - const newlineIndex = segment.indexOf("\n"); - if (newlineIndex >= 0) { - segment = segment.slice(0, Math.max(0, newlineIndex + 1)); - } - content.push(`${prepend}${segment}`.trimEnd()); - description = description.slice(segment.length); - } - return content; -} -function repositoryFinder(inputRepo, context) { - const log3 = new logtask_default("repositoryFinder"); - const obj = {}; - const result = obj; - if (inputRepo) { - [result.owner, result.repo] = inputRepo.split("/"); - log3.info(`repositoryFinder using input ${inputRepo} and returns ${JSON.stringify(result)}`); - return result; - } - if (process.env["GITHUB_REPOSITORY"]) { - [result.owner, result.repo] = process.env["GITHUB_REPOSITORY"].split("/"); - log3.info( - `repositoryFinder using GITHUB_REPOSITORY ${process.env["GITHUB_REPOSITORY"]} and returns ${JSON.stringify(result)}` - ); - return result; - } - if (context) { - result.owner = context.repo.owner; - result.repo = context.repo.repo; - log3.info( - `repositoryFinder using GITHUB_REPOSITORY ${process.env["GITHUB_REPOSITORY"]} and returns ${JSON.stringify(result)}` - ); - return result; - } - if (process.env["INPUT_OWNER"] && process.env["INPUT_REPO"]) { - result.owner = process.env["INPUT_OWNER"]; - result.repo = process.env["INPUT_REPO"]; - return result; - } - try { - const fileContent = fs2.readFileSync(".git/config", "utf8"); - const pattern = /url( )?=( )?.*github\.com[/:](?.*)\/(?.*)\.git/; - const results = fileContent.match(pattern); - if (results !== null) { - log3.debug(JSON.stringify(results.groups)); - result.owner = results.groups.owner ?? ""; - result.repo = results.groups.repo ?? ""; - } - return result; - } catch (error2) { - log3.debug(`Couldn't find any owner or repo: ${error2}`); - } - return result; -} -function columnHeader(value) { - if (!value) { - return ""; - } - const normalisedHeader = titlecase( - value.trim().replace(/^[*_~]+/, "").replace(/[*_~]+$/, "") - ); - if (normalisedHeader) { - return `**${normalisedHeader}**`; - } - return ""; -} -function rowHeader(value) { - if (!value) { - return ""; - } - const normalisedHeader = value.trim().replace(/^\*+/, "").replace(/\*+$/, ""); - return `\`**${normalisedHeader}**\``; -} -function getCurrentVersionString(inputs2) { - let versionString = ""; - if (inputs2.config.get("versioning:enabled")) { - const oRide = inputs2.config.get("versioning:override"); - versionString = oRide && oRide.length > 0 ? oRide : process.env["npm_package_version"] ?? "0.0.0"; - if (versionString && !versionString.startsWith(inputs2.config.get("versioning:prefix"))) { - versionString = `${inputs2.config.get("versioning:prefix")}${versionString}`; - } - } else { - versionString = inputs2.config.get("versioning:branch"); - } - return versionString; -} - -// src/working-directory.ts -function workingDirectory() { - return process.env["GITHUB_WORKSPACE"] ?? process.env["INIT_CWD"] ?? process.cwd(); -} - -// src/inputs.ts -var log2 = new logtask_default("inputs"); -process.chdir(workingDirectory()); -var githubEventPath = process.env["GITHUB_EVENT_PATH"] ?? ""; -var githubEvent = null; -try { - githubEvent = JSON.parse(fs3.readFileSync(githubEventPath, "utf8")); -} catch { - log2.debug(`GITHUB_EVENT_PATH not found: ${githubEventPath}`); -} -var configFileName = ".ghadocs.json"; -var pathsAction = "paths:action"; -var pathsReadme = "paths:readme"; -var configKeys = [ - "save", - pathsAction, - pathsReadme, - "show_logo", - "versioning:enabled", - "versioning:override", - "versioning:prefix", - "versioning:branch", - "owner", - "repo", - "title_prefix", - "pretty", - "include_github_version_badge" -]; -var Inputs = class { - config; - constructor() { - this.config = new nconf.Provider(); - const repositoryDetail = repositoryFinder(null, githubEvent); - if (process.env["GITHUB_ACTION"]) { - log2.info("running in GitHub action"); - } - this.config.use("memory"); - this.config.env({ - lowerCase: true, - parseValues: true, - match: /^INPUT_/, - transform: (obj) => { - if (obj.key.startsWith("input_")) { - const newObj = { - key: obj.key, - value: obj.value - }; - const keyParsed = obj.key.replace(/^(INPUT|input)_/, ""); - switch (keyParsed) { - case "readme": { - newObj.key = pathsReadme; - break; - } - case "action": { - newObj.key = pathsAction; - break; - } - case "versioning_enabled": { - newObj.key = "versioning:enabled"; - break; - } - case "version_prefix": { - newObj.key = "versioning:prefix"; - break; - } - case "versioning_default_branch": { - newObj.key = "versioning:branch"; - break; - } - case "version_override": { - newObj.key = "versioning:override"; - break; - } - case "include_github_version_badge": { - newObj.key = "versioning:badge"; - break; - } - default: { - newObj.key = keyParsed; - break; - } - } - if (newObj.value) { - this.config.set(newObj.key, newObj.value); - } - return newObj; - } - return void 0; - } - }); - this.config.argv({ - "save": { - alias: "save", - describe: `Save this config to ${configFileName}`, - parseValues: true, - type: "boolean" - }, - "paths:action": { - alias: ["pathsAction", "action"], - type: "string", - describe: "Path to the action.yml" - }, - "paths:readme": { - alias: ["pathsReadme", "readme"], - type: "string", - describe: "Path to the README file" - }, - "show_logo": { - alias: "logo", - describe: "Display the action's logo in the README" - }, - "owner": { - alias: "owner", - describe: "The GitHub Action repository owner. i.e: `bitflight-devops`" - }, - "repo": { - alias: "repo", - describe: "The GitHub Action repository name. i.e: `github-action-readme-generator`" - }, - "prettier": { - alias: "pretty", - describe: "Format the markdown using prettier formatter", - parseValues: true, - type: "boolean" - }, - "versioning:enabled": { - alias: ["versioning", "versioning_enabled"], - describe: "Enable the update of the usage version to match the latest version in the package.json file", - parseValues: true, - type: "boolean" - }, - "versioning:override": { - alias: ["setversion", "versioning_override", "version_override"], - describe: "Set a specific version to display in the README.md", - parseValues: true - }, - "versioning:prefix": { - alias: ["vp", "version_prefix"], - describe: "Prefix the version with this value (if it isn't already prefixed)", - parseValues: true - }, - "versioning:branch": { - alias: ["branch", "versioning_default_branch"], - describe: "If versioning is disabled show this branch instead", - parseValues: true - }, - "versioning:badge": { - alias: ["version-badge", "versioning_badge"], - describe: "Display the current version as a badge", - parseValues: true, - type: "boolean" - }, - "title_prefix": { - alias: ["prefix", "title_prefix"], - describe: "Add a prefix to the README title", - parseValues: true - } - }); - this.config.file({ file: configFileName, dir: workingDirectory() }); - this.config.defaults({ - save: true, - owner: repositoryDetail == null ? void 0 : repositoryDetail.owner, - repo: repositoryDetail == null ? void 0 : repositoryDetail.repo, - paths: { - action: "action.yml", - readme: "README.md" - }, - show_logo: true, - pretty: true, - versioning: { - enabled: true, - override: "", - prefix: "v", - branch: "main", - badges: true - }, - title_prefix: "GitHub Action: ", - sections: ["title", "description", "usage", "inputs", "outputs", "contents", "badges"] - }); - this.config.required(["owner", "repo"]); - for (const k4 of configKeys) { - log2.debug(`${k4}: ${this.config.get(k4)}`); - } - this.sections = this.config.get("sections"); - this.readmePath = path.relative(workingDirectory(), this.config.get(pathsReadme)); - const actionPath = path.relative(workingDirectory(), this.config.get(pathsAction)); - this.action = new Action(actionPath); - } - sections; - readmePath; - action; -}; - -// src/save.ts -function save(inputs2) { - const log3 = new logtask_default("save"); - if (inputs2.config.get("save").toString() === "true") { - for (const k4 of Object.keys(configKeys)) { - inputs2.config.set(k4, inputs2.config.get(k4)); - } - inputs2.config.save((err) => { - if (err && "message" in err && err.message) { - log3.error(err.message); - return; - } - log3.info("Configuration saved successfully."); - }); - } -} - -// src/readme-writer.ts -var fs11 = __toESM(require("node:fs")); -var import_node_os = require("node:os"); - -// src/config.ts -var startTokenFormat = ""; -var endTokenFormat = ""; - -// node_modules/prettier/index.mjs -var import_module2 = require("module"); -var import_url2 = require("url"); -var import_path2 = require("path"); -var import_process = __toESM(require("process"), 1); -var import_os = __toESM(require("os"), 1); -var import_tty = __toESM(require("tty"), 1); -var import_fs = __toESM(require("fs"), 1); -var import_assert = __toESM(require("assert"), 1); -var import_assert2 = __toESM(require("assert"), 1); -var import_path3 = __toESM(require("path"), 1); -var import_path4 = __toESM(require("path"), 1); -var import_fs2 = __toESM(require("fs"), 1); -var import_path5 = __toESM(require("path"), 1); - -// node_modules/prettier/internal/internal.mjs -var import_module = require("module"); -var import_url = require("url"); -var import_path = require("path"); -var import_promises = __toESM(require("fs/promises"), 1); -var import_meta = {}; -var require2 = (0, import_module.createRequire)(import_meta.url); -var __filename = (0, import_url.fileURLToPath)(import_meta.url); -var __dirname2 = (0, import_path.dirname)(__filename); -var __create2 = Object.create; -var __defProp2 = Object.defineProperty; -var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; -var __getOwnPropNames2 = Object.getOwnPropertyNames; -var __getProtoOf2 = Object.getPrototypeOf; -var __hasOwnProp2 = Object.prototype.hasOwnProperty; -var __require = /* @__PURE__ */ ((x7) => typeof require2 !== "undefined" ? require2 : typeof Proxy !== "undefined" ? new Proxy(x7, { - get: (a, b5) => (typeof require2 !== "undefined" ? require2 : a)[b5] -}) : x7)(function(x7) { - if (typeof require2 !== "undefined") - return require2.apply(this, arguments); - throw Error('Dynamic require of "' + x7 + '" is not supported'); -}); -var __commonJS2 = (cb, mod) => function __require22() { - return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __copyProps2 = (to3, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to3, key) && key !== except) - __defProp2(to3, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); - } - return to3; -}; -var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var require_cacheWrapper = __commonJS2({ - "node_modules/cosmiconfig/dist/cacheWrapper.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.cacheWrapper = cacheWrapper; - exports.cacheWrapperSync = cacheWrapperSync; - async function cacheWrapper(cache, key, fn6) { - const cached = cache.get(key); - if (cached !== void 0) { - return cached; - } - const result = await fn6(); - cache.set(key, result); - return result; - } - function cacheWrapperSync(cache, key, fn6) { - const cached = cache.get(key); - if (cached !== void 0) { - return cached; - } - const result = fn6(); - cache.set(key, result); - return result; - } - } -}); -var require_getPropertyByPath = __commonJS2({ - "node_modules/cosmiconfig/dist/getPropertyByPath.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getPropertyByPath = getPropertyByPath; - function getPropertyByPath(source, path9) { - if (typeof path9 === "string" && Object.prototype.hasOwnProperty.call(source, path9)) { - return source[path9]; - } - const parsedPath = typeof path9 === "string" ? path9.split(".") : path9; - return parsedPath.reduce((previous, key) => { - if (previous === void 0) { - return previous; - } - return previous[key]; - }, source); - } - } -}); -var require_resolve_from = __commonJS2({ - "node_modules/import-fresh/node_modules/resolve-from/index.js"(exports, module2) { - "use strict"; - var path9 = __require("path"); - var Module = __require("module"); - var fs23 = __require("fs"); - var resolveFrom = (fromDir, moduleId, silent) => { - if (typeof fromDir !== "string") { - throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``); - } - if (typeof moduleId !== "string") { - throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``); - } - try { - fromDir = fs23.realpathSync(fromDir); - } catch (err) { - if (err.code === "ENOENT") { - fromDir = path9.resolve(fromDir); - } else if (silent) { - return null; - } else { - throw err; - } - } - const fromFile = path9.join(fromDir, "noop.js"); - const resolveFileName = () => Module._resolveFilename(moduleId, { - id: fromFile, - filename: fromFile, - paths: Module._nodeModulePaths(fromDir) - }); - if (silent) { - try { - return resolveFileName(); - } catch (err) { - return null; - } - } - return resolveFileName(); - }; - module2.exports = (fromDir, moduleId) => resolveFrom(fromDir, moduleId); - module2.exports.silent = (fromDir, moduleId) => resolveFrom(fromDir, moduleId, true); - } -}); -var require_parent_module = __commonJS2({ - "scripts/build/shims/parent-module.cjs"(exports, module2) { - "use strict"; - var parentModule = (file) => file; - module2.exports = parentModule; - } -}); -var require_import_fresh = __commonJS2({ - "node_modules/import-fresh/index.js"(exports, module2) { - "use strict"; - var path9 = __require("path"); - var resolveFrom = require_resolve_from(); - var parentModule = require_parent_module(); - module2.exports = (moduleId) => { - if (typeof moduleId !== "string") { - throw new TypeError("Expected a string"); - } - const parentPath = parentModule(__filename); - const cwd = parentPath ? path9.dirname(parentPath) : __dirname2; - const filePath = resolveFrom(cwd, moduleId); - const oldModule = __require.cache[filePath]; - if (oldModule && oldModule.parent) { - let i = oldModule.parent.children.length; - while (i--) { - if (oldModule.parent.children[i].id === filePath) { - oldModule.parent.children.splice(i, 1); - } - } - } - delete __require.cache[filePath]; - const parent = __require.cache[parentPath]; - return parent === void 0 ? __require(filePath) : parent.require(filePath); - }; - } -}); -var require_is_arrayish = __commonJS2({ - "node_modules/is-arrayish/index.js"(exports, module2) { - "use strict"; - module2.exports = function isArrayish(obj) { - if (!obj) { - return false; - } - return obj instanceof Array || Array.isArray(obj) || obj.length >= 0 && obj.splice instanceof Function; - }; - } -}); -var require_error_ex = __commonJS2({ - "node_modules/error-ex/index.js"(exports, module2) { - "use strict"; - var util = __require("util"); - var isArrayish = require_is_arrayish(); - var errorEx = function errorEx2(name, properties) { - if (!name || name.constructor !== String) { - properties = name || {}; - name = Error.name; - } - var errorExError = function ErrorEXError(message) { - if (!this) { - return new ErrorEXError(message); - } - message = message instanceof Error ? message.message : message || this.message; - Error.call(this, message); - Error.captureStackTrace(this, errorExError); - this.name = name; - Object.defineProperty(this, "message", { - configurable: true, - enumerable: false, - get: function() { - var newMessage = message.split(/\r?\n/g); - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } - var modifier = properties[key]; - if ("message" in modifier) { - newMessage = modifier.message(this[key], newMessage) || newMessage; - if (!isArrayish(newMessage)) { - newMessage = [newMessage]; - } - } - } - return newMessage.join("\n"); - }, - set: function(v7) { - message = v7; - } - }); - var overwrittenStack = null; - var stackDescriptor = Object.getOwnPropertyDescriptor(this, "stack"); - var stackGetter = stackDescriptor.get; - var stackValue = stackDescriptor.value; - delete stackDescriptor.value; - delete stackDescriptor.writable; - stackDescriptor.set = function(newstack) { - overwrittenStack = newstack; - }; - stackDescriptor.get = function() { - var stack = (overwrittenStack || (stackGetter ? stackGetter.call(this) : stackValue)).split(/\r?\n+/g); - if (!overwrittenStack) { - stack[0] = this.name + ": " + this.message; - } - var lineCount = 1; - for (var key in properties) { - if (!properties.hasOwnProperty(key)) { - continue; - } - var modifier = properties[key]; - if ("line" in modifier) { - var line3 = modifier.line(this[key]); - if (line3) { - stack.splice(lineCount++, 0, " " + line3); - } - } - if ("stack" in modifier) { - modifier.stack(this[key], stack); - } - } - return stack.join("\n"); - }; - Object.defineProperty(this, "stack", stackDescriptor); - }; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(errorExError.prototype, Error.prototype); - Object.setPrototypeOf(errorExError, Error); - } else { - util.inherits(errorExError, Error); - } - return errorExError; - }; - errorEx.append = function(str2, def) { - return { - message: function(v7, message) { - v7 = v7 || def; - if (v7) { - message[0] += " " + str2.replace("%s", v7.toString()); - } - return message; - } - }; - }; - errorEx.line = function(str2, def) { - return { - line: function(v7) { - v7 = v7 || def; - if (v7) { - return str2.replace("%s", v7.toString()); - } - return null; - } - }; - }; - module2.exports = errorEx; - } -}); -var require_json_parse_even_better_errors = __commonJS2({ - "node_modules/json-parse-even-better-errors/index.js"(exports, module2) { - "use strict"; - var hexify = (char) => { - const h4 = char.charCodeAt(0).toString(16).toUpperCase(); - return "0x" + (h4.length % 2 ? "0" : "") + h4; - }; - var parseError = (e3, txt, context) => { - if (!txt) { - return { - message: e3.message + " while parsing empty string", - position: 0 - }; - } - const badToken = e3.message.match(/^Unexpected token (.) .*position\s+(\d+)/i); - const errIdx = badToken ? +badToken[2] : e3.message.match(/^Unexpected end of JSON.*/i) ? txt.length - 1 : null; - const msg = badToken ? e3.message.replace(/^Unexpected token ./, `Unexpected token ${JSON.stringify(badToken[1])} (${hexify(badToken[1])})`) : e3.message; - if (errIdx !== null && errIdx !== void 0) { - const start = errIdx <= context ? 0 : errIdx - context; - const end = errIdx + context >= txt.length ? txt.length : errIdx + context; - const slice = (start === 0 ? "" : "...") + txt.slice(start, end) + (end === txt.length ? "" : "..."); - const near = txt === slice ? "" : "near "; - return { - message: msg + ` while parsing ${near}${JSON.stringify(slice)}`, - position: errIdx - }; - } else { - return { - message: msg + ` while parsing '${txt.slice(0, context * 2)}'`, - position: 0 - }; - } - }; - var JSONParseError = class extends SyntaxError { - constructor(er8, txt, context, caller) { - context = context || 20; - const metadata = parseError(er8, txt, context); - super(metadata.message); - Object.assign(this, metadata); - this.code = "EJSONPARSE"; - this.systemError = er8; - Error.captureStackTrace(this, caller || this.constructor); - } - get name() { - return this.constructor.name; - } - set name(n) { - } - get [Symbol.toStringTag]() { - return this.constructor.name; - } - }; - var kIndent = Symbol.for("indent"); - var kNewline = Symbol.for("newline"); - var formatRE = /^\s*[{\[]((?:\r?\n)+)([\s\t]*)/; - var emptyRE = /^(?:\{\}|\[\])((?:\r?\n)+)?$/; - var parseJson = (txt, reviver, context) => { - const parseText = stripBOM(txt); - context = context || 20; - try { - const [, newline = "\n", indent3 = " "] = parseText.match(emptyRE) || parseText.match(formatRE) || [, "", ""]; - const result = JSON.parse(parseText, reviver); - if (result && typeof result === "object") { - result[kNewline] = newline; - result[kIndent] = indent3; - } - return result; - } catch (e3) { - if (typeof txt !== "string" && !Buffer.isBuffer(txt)) { - const isEmptyArray = Array.isArray(txt) && txt.length === 0; - throw Object.assign(new TypeError( - `Cannot parse ${isEmptyArray ? "an empty array" : String(txt)}` - ), { - code: "EJSONPARSE", - systemError: e3 - }); - } - throw new JSONParseError(e3, parseText, context, parseJson); - } - }; - var stripBOM = (txt) => String(txt).replace(/^\uFEFF/, ""); - module2.exports = parseJson; - parseJson.JSONParseError = JSONParseError; - parseJson.noExceptions = (txt, reviver) => { - try { - return JSON.parse(stripBOM(txt), reviver); - } catch (e3) { - } - }; - } -}); -var require_build5 = __commonJS2({ - "node_modules/parse-json/node_modules/lines-and-columns/build/index.js"(exports) { - "use strict"; - exports.__esModule = true; - exports.LinesAndColumns = void 0; - var LF = "\n"; - var CR = "\r"; - var LinesAndColumns = ( - /** @class */ - function() { - function LinesAndColumns2(string) { - this.string = string; - var offsets = [0]; - for (var offset = 0; offset < string.length; ) { - switch (string[offset]) { - case LF: - offset += LF.length; - offsets.push(offset); - break; - case CR: - offset += CR.length; - if (string[offset] === LF) { - offset += LF.length; - } - offsets.push(offset); - break; - default: - offset++; - break; - } - } - this.offsets = offsets; - } - LinesAndColumns2.prototype.locationForIndex = function(index) { - if (index < 0 || index > this.string.length) { - return null; - } - var line3 = 0; - var offsets = this.offsets; - while (offsets[line3 + 1] <= index) { - line3++; - } - var column = index - offsets[line3]; - return { line: line3, column }; - }; - LinesAndColumns2.prototype.indexForLocation = function(location) { - var line3 = location.line, column = location.column; - if (line3 < 0 || line3 >= this.offsets.length) { - return null; - } - if (column < 0 || column > this.lengthOfLine(line3)) { - return null; - } - return this.offsets[line3] + column; - }; - LinesAndColumns2.prototype.lengthOfLine = function(line3) { - var offset = this.offsets[line3]; - var nextOffset = line3 === this.offsets.length - 1 ? this.string.length : this.offsets[line3 + 1]; - return nextOffset - offset; - }; - return LinesAndColumns2; - }() - ); - exports.LinesAndColumns = LinesAndColumns; - exports["default"] = LinesAndColumns; - } -}); -var require_js_tokens = __commonJS2({ - "node_modules/js-tokens/index.js"(exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; - exports.matchToToken = function(match) { - var token = { type: "invalid", value: match[0], closed: void 0 }; - if (match[1]) - token.type = "string", token.closed = !!(match[3] || match[4]); - else if (match[5]) - token.type = "comment"; - else if (match[6]) - token.type = "comment", token.closed = !!match[7]; - else if (match[8]) - token.type = "regex"; - else if (match[9]) - token.type = "number"; - else if (match[10]) - token.type = "name"; - else if (match[11]) - token.type = "punctuator"; - else if (match[12]) - token.type = "whitespace"; - return token; - }; - } -}); -var require_identifier = __commonJS2({ - "node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isIdentifierChar = isIdentifierChar; - exports.isIdentifierName = isIdentifierName; - exports.isIdentifierStart = isIdentifierStart; - var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; - var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; - var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - function isInAstralSet(code, set2) { - let pos = 65536; - for (let i = 0, length = set2.length; i < length; i += 2) { - pos += set2[i]; - if (pos > code) - return false; - pos += set2[i + 1]; - if (pos >= code) - return true; - } - return false; - } - function isIdentifierStart(code) { - if (code < 65) - return code === 36; - if (code <= 90) - return true; - if (code < 97) - return code === 95; - if (code <= 122) - return true; - if (code <= 65535) { - return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes); - } - function isIdentifierChar(code) { - if (code < 48) - return code === 36; - if (code < 58) - return true; - if (code < 65) - return false; - if (code <= 90) - return true; - if (code < 97) - return code === 95; - if (code <= 122) - return true; - if (code <= 65535) { - return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); - } - function isIdentifierName(name) { - let isFirst = true; - for (let i = 0; i < name.length; i++) { - let cp2 = name.charCodeAt(i); - if ((cp2 & 64512) === 55296 && i + 1 < name.length) { - const trail = name.charCodeAt(++i); - if ((trail & 64512) === 56320) { - cp2 = 65536 + ((cp2 & 1023) << 10) + (trail & 1023); - } - } - if (isFirst) { - isFirst = false; - if (!isIdentifierStart(cp2)) { - return false; - } - } else if (!isIdentifierChar(cp2)) { - return false; - } - } - return !isFirst; - } - } -}); -var require_keyword = __commonJS2({ - "node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isKeyword = isKeyword; - exports.isReservedWord = isReservedWord; - exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; - exports.isStrictBindReservedWord = isStrictBindReservedWord; - exports.isStrictReservedWord = isStrictReservedWord; - var reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] - }; - var keywords = new Set(reservedWords.keyword); - var reservedWordsStrictSet = new Set(reservedWords.strict); - var reservedWordsStrictBindSet = new Set(reservedWords.strictBind); - function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; - } - function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); - } - function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); - } - function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); - } - function isKeyword(word) { - return keywords.has(word); - } - } -}); -var require_lib3 = __commonJS2({ - "node_modules/@babel/helper-validator-identifier/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function() { - return _identifier.isIdentifierChar; - } - }); - Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function() { - return _identifier.isIdentifierName; - } - }); - Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function() { - return _identifier.isIdentifierStart; - } - }); - Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function() { - return _keyword.isKeyword; - } - }); - Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function() { - return _keyword.isReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictBindOnlyReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictBindReservedWord; - } - }); - Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictReservedWord; - } - }); - var _identifier = require_identifier(); - var _keyword = require_keyword(); - } -}); -var require_escape_string_regexp = __commonJS2({ - "node_modules/@babel/code-frame/node_modules/escape-string-regexp/index.js"(exports, module2) { - "use strict"; - var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - module2.exports = function(str2) { - if (typeof str2 !== "string") { - throw new TypeError("Expected a string"); - } - return str2.replace(matchOperatorsRe, "\\$&"); - }; - } -}); -var require_color_name2 = __commonJS2({ - "node_modules/color-name/index.js"(exports, module2) { - "use strict"; - module2.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 require_conversions2 = __commonJS2({ - "node_modules/color-convert/conversions.js"(exports, module2) { - var cssKeywords = require_color_name2(); - var reverseKeywords = {}; - for (key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } - } - var key; - var convert = module2.exports = { - 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"] } - }; - for (model in convert) { - if (convert.hasOwnProperty(model)) { - if (!("channels" in convert[model])) { - throw new Error("missing channels property: " + model); - } - if (!("labels" in convert[model])) { - throw new Error("missing channel labels property: " + model); - } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error("channel and label counts mismatch: " + model); - } - channels = convert[model].channels; - labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], "channels", { value: channels }); - Object.defineProperty(convert[model], "labels", { value: labels }); - } - } - var channels; - var labels; - var model; - convert.rgb.hsl = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var min = Math.min(r3, g3, b5); - var max = Math.max(r3, g3, b5); - var delta = max - min; - var h4; - var s3; - var l; - if (max === min) { - h4 = 0; - } else if (r3 === max) { - h4 = (g3 - b5) / delta; - } else if (g3 === max) { - h4 = 2 + (b5 - r3) / delta; - } else if (b5 === max) { - h4 = 4 + (r3 - g3) / delta; - } - h4 = Math.min(h4 * 60, 360); - if (h4 < 0) { - h4 += 360; - } - l = (min + max) / 2; - if (max === min) { - s3 = 0; - } else if (l <= 0.5) { - s3 = delta / (max + min); - } else { - s3 = delta / (2 - max - min); - } - return [h4, s3 * 100, l * 100]; - }; - convert.rgb.hsv = function(rgb) { - var rdif; - var gdif; - var bdif; - var h4; - var s3; - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var v7 = Math.max(r3, g3, b5); - var diff = v7 - Math.min(r3, g3, b5); - var diffc = function(c3) { - return (v7 - c3) / 6 / diff + 1 / 2; - }; - if (diff === 0) { - h4 = s3 = 0; - } else { - s3 = diff / v7; - rdif = diffc(r3); - gdif = diffc(g3); - bdif = diffc(b5); - if (r3 === v7) { - h4 = bdif - gdif; - } else if (g3 === v7) { - h4 = 1 / 3 + rdif - bdif; - } else if (b5 === v7) { - h4 = 2 / 3 + gdif - rdif; - } - if (h4 < 0) { - h4 += 1; - } else if (h4 > 1) { - h4 -= 1; - } - } - return [ - h4 * 360, - s3 * 100, - v7 * 100 - ]; - }; - convert.rgb.hwb = function(rgb) { - var r3 = rgb[0]; - var g3 = rgb[1]; - var b5 = rgb[2]; - var h4 = convert.rgb.hsl(rgb)[0]; - var w4 = 1 / 255 * Math.min(r3, Math.min(g3, b5)); - b5 = 1 - 1 / 255 * Math.max(r3, Math.max(g3, b5)); - return [h4, w4 * 100, b5 * 100]; - }; - convert.rgb.cmyk = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var c3; - var m3; - var y5; - var k4; - k4 = Math.min(1 - r3, 1 - g3, 1 - b5); - c3 = (1 - r3 - k4) / (1 - k4) || 0; - m3 = (1 - g3 - k4) / (1 - k4) || 0; - y5 = (1 - b5 - k4) / (1 - k4) || 0; - return [c3 * 100, m3 * 100, y5 * 100, k4 * 100]; - }; - function comparativeDistance(x7, y5) { - return Math.pow(x7[0] - y5[0], 2) + Math.pow(x7[1] - y5[1], 2) + Math.pow(x7[2] - y5[2], 2); - } - convert.rgb.keyword = function(rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - var currentClosestDistance = Infinity; - var currentClosestKeyword; - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value = cssKeywords[keyword]; - var distance = comparativeDistance(rgb, value); - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } - return currentClosestKeyword; - }; - convert.keyword.rgb = function(keyword) { - return cssKeywords[keyword]; - }; - convert.rgb.xyz = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - r3 = r3 > 0.04045 ? Math.pow((r3 + 0.055) / 1.055, 2.4) : r3 / 12.92; - g3 = g3 > 0.04045 ? Math.pow((g3 + 0.055) / 1.055, 2.4) : g3 / 12.92; - b5 = b5 > 0.04045 ? Math.pow((b5 + 0.055) / 1.055, 2.4) : b5 / 12.92; - var x7 = r3 * 0.4124 + g3 * 0.3576 + b5 * 0.1805; - var y5 = r3 * 0.2126 + g3 * 0.7152 + b5 * 0.0722; - var z8 = r3 * 0.0193 + g3 * 0.1192 + b5 * 0.9505; - return [x7 * 100, y5 * 100, z8 * 100]; - }; - convert.rgb.lab = function(rgb) { - var xyz = convert.rgb.xyz(rgb); - var x7 = xyz[0]; - var y5 = xyz[1]; - var z8 = xyz[2]; - var l; - var a; - var b5; - x7 /= 95.047; - y5 /= 100; - z8 /= 108.883; - x7 = x7 > 8856e-6 ? Math.pow(x7, 1 / 3) : 7.787 * x7 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z8 = z8 > 8856e-6 ? Math.pow(z8, 1 / 3) : 7.787 * z8 + 16 / 116; - l = 116 * y5 - 16; - a = 500 * (x7 - y5); - b5 = 200 * (y5 - z8); - return [l, a, b5]; - }; - convert.hsl.rgb = function(hsl) { - var h4 = hsl[0] / 360; - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var t12; - var t23; - var t32; - var rgb; - var val; - if (s3 === 0) { - val = l * 255; - return [val, val, val]; - } - if (l < 0.5) { - t23 = l * (1 + s3); - } else { - t23 = l + s3 - l * s3; - } - t12 = 2 * l - t23; - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t32 = h4 + 1 / 3 * -(i - 1); - if (t32 < 0) { - t32++; - } - if (t32 > 1) { - t32--; - } - if (6 * t32 < 1) { - val = t12 + (t23 - t12) * 6 * t32; - } else if (2 * t32 < 1) { - val = t23; - } else if (3 * t32 < 2) { - val = t12 + (t23 - t12) * (2 / 3 - t32) * 6; - } else { - val = t12; - } - rgb[i] = val * 255; - } - return rgb; - }; - convert.hsl.hsv = function(hsl) { - var h4 = hsl[0]; - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s3; - var lmin = Math.max(l, 0.01); - var sv; - var v7; - l *= 2; - s3 *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v7 = (l + s3) / 2; - sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s3 / (l + s3); - return [h4, sv * 100, v7 * 100]; - }; - convert.hsv.rgb = function(hsv) { - var h4 = hsv[0] / 60; - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var hi8 = Math.floor(h4) % 6; - var f3 = h4 - Math.floor(h4); - var p4 = 255 * v7 * (1 - s3); - var q8 = 255 * v7 * (1 - s3 * f3); - var t12 = 255 * v7 * (1 - s3 * (1 - f3)); - v7 *= 255; - switch (hi8) { - case 0: - return [v7, t12, p4]; - case 1: - return [q8, v7, p4]; - case 2: - return [p4, v7, t12]; - case 3: - return [p4, q8, v7]; - case 4: - return [t12, p4, v7]; - case 5: - return [v7, p4, q8]; - } - }; - convert.hsv.hsl = function(hsv) { - var h4 = hsv[0]; - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var vmin = Math.max(v7, 0.01); - var lmin; - var sl3; - var l; - l = (2 - s3) * v7; - lmin = (2 - s3) * vmin; - sl3 = s3 * vmin; - sl3 /= lmin <= 1 ? lmin : 2 - lmin; - sl3 = sl3 || 0; - l /= 2; - return [h4, sl3 * 100, l * 100]; - }; - convert.hwb.rgb = function(hwb) { - var h4 = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl2 = hwb[2] / 100; - var ratio = wh + bl2; - var i; - var v7; - var f3; - var n; - if (ratio > 1) { - wh /= ratio; - bl2 /= ratio; - } - i = Math.floor(6 * h4); - v7 = 1 - bl2; - f3 = 6 * h4 - i; - if ((i & 1) !== 0) { - f3 = 1 - f3; - } - n = wh + f3 * (v7 - wh); - var r3; - var g3; - var b5; - switch (i) { - default: - case 6: - case 0: - r3 = v7; - g3 = n; - b5 = wh; - break; - case 1: - r3 = n; - g3 = v7; - b5 = wh; - break; - case 2: - r3 = wh; - g3 = v7; - b5 = n; - break; - case 3: - r3 = wh; - g3 = n; - b5 = v7; - break; - case 4: - r3 = n; - g3 = wh; - b5 = v7; - break; - case 5: - r3 = v7; - g3 = wh; - b5 = n; - break; - } - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.cmyk.rgb = function(cmyk) { - var c3 = cmyk[0] / 100; - var m3 = cmyk[1] / 100; - var y5 = cmyk[2] / 100; - var k4 = cmyk[3] / 100; - var r3; - var g3; - var b5; - r3 = 1 - Math.min(1, c3 * (1 - k4) + k4); - g3 = 1 - Math.min(1, m3 * (1 - k4) + k4); - b5 = 1 - Math.min(1, y5 * (1 - k4) + k4); - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.xyz.rgb = function(xyz) { - var x7 = xyz[0] / 100; - var y5 = xyz[1] / 100; - var z8 = xyz[2] / 100; - var r3; - var g3; - var b5; - r3 = x7 * 3.2406 + y5 * -1.5372 + z8 * -0.4986; - g3 = x7 * -0.9689 + y5 * 1.8758 + z8 * 0.0415; - b5 = x7 * 0.0557 + y5 * -0.204 + z8 * 1.057; - r3 = r3 > 31308e-7 ? 1.055 * Math.pow(r3, 1 / 2.4) - 0.055 : r3 * 12.92; - g3 = g3 > 31308e-7 ? 1.055 * Math.pow(g3, 1 / 2.4) - 0.055 : g3 * 12.92; - b5 = b5 > 31308e-7 ? 1.055 * Math.pow(b5, 1 / 2.4) - 0.055 : b5 * 12.92; - r3 = Math.min(Math.max(0, r3), 1); - g3 = Math.min(Math.max(0, g3), 1); - b5 = Math.min(Math.max(0, b5), 1); - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.xyz.lab = function(xyz) { - var x7 = xyz[0]; - var y5 = xyz[1]; - var z8 = xyz[2]; - var l; - var a; - var b5; - x7 /= 95.047; - y5 /= 100; - z8 /= 108.883; - x7 = x7 > 8856e-6 ? Math.pow(x7, 1 / 3) : 7.787 * x7 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z8 = z8 > 8856e-6 ? Math.pow(z8, 1 / 3) : 7.787 * z8 + 16 / 116; - l = 116 * y5 - 16; - a = 500 * (x7 - y5); - b5 = 200 * (y5 - z8); - return [l, a, b5]; - }; - convert.lab.xyz = function(lab) { - var l = lab[0]; - var a = lab[1]; - var b5 = lab[2]; - var x7; - var y5; - var z8; - y5 = (l + 16) / 116; - x7 = a / 500 + y5; - z8 = y5 - b5 / 200; - var y23 = Math.pow(y5, 3); - var x23 = Math.pow(x7, 3); - var z23 = Math.pow(z8, 3); - y5 = y23 > 8856e-6 ? y23 : (y5 - 16 / 116) / 7.787; - x7 = x23 > 8856e-6 ? x23 : (x7 - 16 / 116) / 7.787; - z8 = z23 > 8856e-6 ? z23 : (z8 - 16 / 116) / 7.787; - x7 *= 95.047; - y5 *= 100; - z8 *= 108.883; - return [x7, y5, z8]; - }; - convert.lab.lch = function(lab) { - var l = lab[0]; - var a = lab[1]; - var b5 = lab[2]; - var hr5; - var h4; - var c3; - hr5 = Math.atan2(b5, a); - h4 = hr5 * 360 / 2 / Math.PI; - if (h4 < 0) { - h4 += 360; - } - c3 = Math.sqrt(a * a + b5 * b5); - return [l, c3, h4]; - }; - convert.lch.lab = function(lch) { - var l = lch[0]; - var c3 = lch[1]; - var h4 = lch[2]; - var a; - var b5; - var hr5; - hr5 = h4 / 360 * 2 * Math.PI; - a = c3 * Math.cos(hr5); - b5 = c3 * Math.sin(hr5); - return [l, a, b5]; - }; - convert.rgb.ansi16 = function(args) { - var r3 = args[0]; - var g3 = args[1]; - var b5 = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; - value = Math.round(value / 50); - if (value === 0) { - return 30; - } - var ansi = 30 + (Math.round(b5 / 255) << 2 | Math.round(g3 / 255) << 1 | Math.round(r3 / 255)); - if (value === 2) { - ansi += 60; - } - return ansi; - }; - convert.hsv.ansi16 = function(args) { - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); - }; - convert.rgb.ansi256 = function(args) { - var r3 = args[0]; - var g3 = args[1]; - var b5 = args[2]; - if (r3 === g3 && g3 === b5) { - if (r3 < 8) { - return 16; - } - if (r3 > 248) { - return 231; - } - return Math.round((r3 - 8) / 247 * 24) + 232; - } - var ansi = 16 + 36 * Math.round(r3 / 255 * 5) + 6 * Math.round(g3 / 255 * 5) + Math.round(b5 / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function(args) { - var color = args % 10; - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - color = color / 10.5 * 255; - return [color, color, color]; - } - var mult = (~~(args > 50) + 1) * 0.5; - var r3 = (color & 1) * mult * 255; - var g3 = (color >> 1 & 1) * mult * 255; - var b5 = (color >> 2 & 1) * mult * 255; - return [r3, g3, b5]; - }; - convert.ansi256.rgb = function(args) { - if (args >= 232) { - var c3 = (args - 232) * 10 + 8; - return [c3, c3, c3]; - } - args -= 16; - var rem; - var r3 = Math.floor(args / 36) / 5 * 255; - var g3 = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b5 = rem % 6 / 5 * 255; - return [r3, g3, b5]; - }; - convert.rgb.hex = function(args) { - var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.hex.rgb = function(args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - var colorString = match[0]; - if (match[0].length === 3) { - colorString = colorString.split("").map(function(char) { - return char + char; - }).join(""); - } - var integer = parseInt(colorString, 16); - var r3 = integer >> 16 & 255; - var g3 = integer >> 8 & 255; - var b5 = integer & 255; - return [r3, g3, b5]; - }; - convert.rgb.hcg = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var max = Math.max(Math.max(r3, g3), b5); - var min = Math.min(Math.min(r3, g3), b5); - var chroma = max - min; - var grayscale; - var hue; - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - if (chroma <= 0) { - hue = 0; - } else if (max === r3) { - hue = (g3 - b5) / chroma % 6; - } else if (max === g3) { - hue = 2 + (b5 - r3) / chroma; - } else { - hue = 4 + (r3 - g3) / chroma + 4; - } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - convert.hsl.hcg = function(hsl) { - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var c3 = 1; - var f3 = 0; - if (l < 0.5) { - c3 = 2 * s3 * l; - } else { - c3 = 2 * s3 * (1 - l); - } - if (c3 < 1) { - f3 = (l - 0.5 * c3) / (1 - c3); - } - return [hsl[0], c3 * 100, f3 * 100]; - }; - convert.hsv.hcg = function(hsv) { - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var c3 = s3 * v7; - var f3 = 0; - if (c3 < 1) { - f3 = (v7 - c3) / (1 - c3); - } - return [hsv[0], c3 * 100, f3 * 100]; - }; - convert.hcg.rgb = function(hcg) { - var h4 = hcg[0] / 360; - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - if (c3 === 0) { - return [g3 * 255, g3 * 255, g3 * 255]; - } - var pure = [0, 0, 0]; - var hi8 = h4 % 1 * 6; - var v7 = hi8 % 1; - var w4 = 1 - v7; - var mg2 = 0; - switch (Math.floor(hi8)) { - case 0: - pure[0] = 1; - pure[1] = v7; - pure[2] = 0; - break; - case 1: - pure[0] = w4; - pure[1] = 1; - pure[2] = 0; - break; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v7; - break; - case 3: - pure[0] = 0; - pure[1] = w4; - pure[2] = 1; - break; - case 4: - pure[0] = v7; - pure[1] = 0; - pure[2] = 1; - break; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w4; - } - mg2 = (1 - c3) * g3; - return [ - (c3 * pure[0] + mg2) * 255, - (c3 * pure[1] + mg2) * 255, - (c3 * pure[2] + mg2) * 255 - ]; - }; - convert.hcg.hsv = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var v7 = c3 + g3 * (1 - c3); - var f3 = 0; - if (v7 > 0) { - f3 = c3 / v7; - } - return [hcg[0], f3 * 100, v7 * 100]; - }; - convert.hcg.hsl = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var l = g3 * (1 - c3) + 0.5 * c3; - var s3 = 0; - if (l > 0 && l < 0.5) { - s3 = c3 / (2 * l); - } else if (l >= 0.5 && l < 1) { - s3 = c3 / (2 * (1 - l)); - } - return [hcg[0], s3 * 100, l * 100]; - }; - convert.hcg.hwb = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var v7 = c3 + g3 * (1 - c3); - return [hcg[0], (v7 - c3) * 100, (1 - v7) * 100]; - }; - convert.hwb.hcg = function(hwb) { - var w4 = hwb[1] / 100; - var b5 = hwb[2] / 100; - var v7 = 1 - b5; - var c3 = v7 - w4; - var g3 = 0; - if (c3 < 1) { - g3 = (v7 - c3) / (1 - c3); - } - return [hwb[0], c3 * 100, g3 * 100]; - }; - convert.apple.rgb = function(apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - convert.rgb.apple = function(rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; - convert.gray.rgb = function(args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - convert.gray.hsl = convert.gray.hsv = function(args) { - return [0, 0, args[0]]; - }; - convert.gray.hwb = function(gray) { - return [0, 100, gray[0]]; - }; - convert.gray.cmyk = function(gray) { - return [0, 0, 0, gray[0]]; - }; - convert.gray.lab = function(gray) { - return [gray[0], 0, 0]; - }; - convert.gray.hex = function(gray) { - var val = Math.round(gray[0] / 100 * 255) & 255; - var integer = (val << 16) + (val << 8) + val; - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.rgb.gray = function(rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; - } -}); -var require_route2 = __commonJS2({ - "node_modules/color-convert/route.js"(exports, module2) { - var conversions = require_conversions2(); - function buildGraph() { - var graph = {}; - var models = Object.keys(conversions); - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - return graph; - } - function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; - graph[fromModel].distance = 0; - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - return graph; - } - function link(from, to3) { - return function(args) { - return to3(from(args)); - }; - } - function wrapConversion(toModel, graph) { - var path9 = [graph[toModel].parent, toModel]; - var fn6 = conversions[graph[toModel].parent][toModel]; - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path9.unshift(graph[cur].parent); - fn6 = link(conversions[graph[cur].parent][cur], fn6); - cur = graph[cur].parent; - } - fn6.conversion = path9; - return fn6; - } - module2.exports = function(fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; - if (node.parent === null) { - continue; - } - conversion[toModel] = wrapConversion(toModel, graph); - } - return conversion; - }; - } -}); -var require_color_convert2 = __commonJS2({ - "node_modules/color-convert/index.js"(exports, module2) { - var conversions = require_conversions2(); - var route = require_route2(); - var convert = {}; - var models = Object.keys(conversions); - function wrapRaw(fn6) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - return fn6(args); - }; - if ("conversion" in fn6) { - wrappedFn.conversion = fn6.conversion; - } - return wrappedFn; - } - function wrapRounded(fn6) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - var result = fn6(args); - if (typeof result === "object") { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - return result; - }; - if ("conversion" in fn6) { - wrappedFn.conversion = fn6.conversion; - } - return wrappedFn; - } - models.forEach(function(fromModel) { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); - Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); - var routes = route(fromModel); - var routeModels = Object.keys(routes); - routeModels.forEach(function(toModel) { - var fn6 = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn6); - convert[fromModel][toModel].raw = wrapRaw(fn6); - }); - }); - module2.exports = convert; - } -}); -var require_ansi_styles2 = __commonJS2({ - "node_modules/ansi-styles/index.js"(exports, module2) { - "use strict"; - var colorConvert = require_color_convert2(); - var wrapAnsi162 = (fn6, offset) => function() { - const code = fn6.apply(colorConvert, arguments); - return `\x1B[${code + offset}m`; - }; - var wrapAnsi2562 = (fn6, offset) => function() { - const code = fn6.apply(colorConvert, arguments); - return `\x1B[${38 + offset};5;${code}m`; - }; - var wrapAnsi16m2 = (fn6, offset) => function() { - const rgb = fn6.apply(colorConvert, arguments); - return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; - }; - function assembleStyles2() { - const codes2 = /* @__PURE__ */ new Map(); - const styles3 = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - 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], - gray: [90, 39], - // Bright color - 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], - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - styles3.color.grey = styles3.color.gray; - for (const groupName of Object.keys(styles3)) { - const group2 = styles3[groupName]; - for (const styleName of Object.keys(group2)) { - const style = group2[styleName]; - styles3[styleName] = { - open: `\x1B[${style[0]}m`, - close: `\x1B[${style[1]}m` - }; - group2[styleName] = styles3[styleName]; - codes2.set(style[0], style[1]); - } - Object.defineProperty(styles3, groupName, { - value: group2, - enumerable: false - }); - Object.defineProperty(styles3, "codes", { - value: codes2, - enumerable: false - }); - } - const ansi2ansi = (n) => n; - const rgb2rgb = (r3, g3, b5) => [r3, g3, b5]; - styles3.color.close = "\x1B[39m"; - styles3.bgColor.close = "\x1B[49m"; - styles3.color.ansi = { - ansi: wrapAnsi162(ansi2ansi, 0) - }; - styles3.color.ansi256 = { - ansi256: wrapAnsi2562(ansi2ansi, 0) - }; - styles3.color.ansi16m = { - rgb: wrapAnsi16m2(rgb2rgb, 0) - }; - styles3.bgColor.ansi = { - ansi: wrapAnsi162(ansi2ansi, 10) - }; - styles3.bgColor.ansi256 = { - ansi256: wrapAnsi2562(ansi2ansi, 10) - }; - styles3.bgColor.ansi16m = { - rgb: wrapAnsi16m2(rgb2rgb, 10) - }; - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== "object") { - continue; - } - const suite = colorConvert[key]; - if (key === "ansi16") { - key = "ansi"; - } - if ("ansi16" in suite) { - styles3.color.ansi[key] = wrapAnsi162(suite.ansi16, 0); - styles3.bgColor.ansi[key] = wrapAnsi162(suite.ansi16, 10); - } - if ("ansi256" in suite) { - styles3.color.ansi256[key] = wrapAnsi2562(suite.ansi256, 0); - styles3.bgColor.ansi256[key] = wrapAnsi2562(suite.ansi256, 10); - } - if ("rgb" in suite) { - styles3.color.ansi16m[key] = wrapAnsi16m2(suite.rgb, 0); - styles3.bgColor.ansi16m[key] = wrapAnsi16m2(suite.rgb, 10); - } - } - return styles3; - } - Object.defineProperty(module2, "exports", { - enumerable: true, - get: assembleStyles2 - }); - } -}); -var require_has_flag2 = __commonJS2({ - "node_modules/@babel/code-frame/node_modules/has-flag/index.js"(exports, module2) { - "use strict"; - module2.exports = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf("--"); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); - }; - } -}); -var require_supports_color2 = __commonJS2({ - "node_modules/@babel/code-frame/node_modules/supports-color/index.js"(exports, module2) { - "use strict"; - var os9 = __require("os"); - var hasFlag2 = require_has_flag2(); - var env2 = process.env; - var forceColor; - if (hasFlag2("no-color") || hasFlag2("no-colors") || hasFlag2("color=false")) { - forceColor = false; - } else if (hasFlag2("color") || hasFlag2("colors") || hasFlag2("color=true") || hasFlag2("color=always")) { - forceColor = true; - } - if ("FORCE_COLOR" in env2) { - forceColor = env2.FORCE_COLOR.length === 0 || parseInt(env2.FORCE_COLOR, 10) !== 0; - } - function translateLevel2(level) { - if (level === 0) { - return false; - } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; - } - function supportsColor2(stream) { - if (forceColor === false) { - return 0; - } - if (hasFlag2("color=16m") || hasFlag2("color=full") || hasFlag2("color=truecolor")) { - return 3; - } - if (hasFlag2("color=256")) { - return 2; - } - if (stream && !stream.isTTY && forceColor !== true) { - return 0; - } - const min = forceColor ? 1 : 0; - if (process.platform === "win32") { - const osRelease = os9.release().split("."); - if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - return 1; - } - if ("CI" in env2) { - if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env2) || env2.CI_NAME === "codeship") { - return 1; - } - return min; - } - if ("TEAMCITY_VERSION" in env2) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env2.TEAMCITY_VERSION) ? 1 : 0; - } - if (env2.COLORTERM === "truecolor") { - return 3; - } - if ("TERM_PROGRAM" in env2) { - const version2 = parseInt((env2.TERM_PROGRAM_VERSION || "").split(".")[0], 10); - switch (env2.TERM_PROGRAM) { - case "iTerm.app": - return version2 >= 3 ? 3 : 2; - case "Apple_Terminal": - return 2; - } - } - if (/-256(color)?$/i.test(env2.TERM)) { - return 2; - } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env2.TERM)) { - return 1; - } - if ("COLORTERM" in env2) { - return 1; - } - if (env2.TERM === "dumb") { - return min; - } - return min; - } - function getSupportLevel(stream) { - const level = supportsColor2(stream); - return translateLevel2(level); - } - module2.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) - }; - } -}); -var require_templates2 = __commonJS2({ - "node_modules/@babel/code-frame/node_modules/chalk/templates.js"(exports, module2) { - "use strict"; - var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; - var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; - var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; - var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; - var ESCAPES = /* @__PURE__ */ new Map([ - ["n", "\n"], - ["r", "\r"], - ["t", " "], - ["b", "\b"], - ["f", "\f"], - ["v", "\v"], - ["0", "\0"], - ["\\", "\\"], - ["e", "\x1B"], - ["a", "\x07"] - ]); - function unescape2(c3) { - if (c3[0] === "u" && c3.length === 5 || c3[0] === "x" && c3.length === 3) { - return String.fromCharCode(parseInt(c3.slice(1), 16)); - } - return ESCAPES.get(c3) || c3; - } - function parseArguments(name, args) { - const results = []; - const chunks = args.trim().split(/\s*,\s*/g); - let matches; - for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); - } else if (matches = chunk.match(STRING_REGEX)) { - results.push(matches[2].replace(ESCAPE_REGEX, (m3, escape, chr) => escape ? unescape2(escape) : chr)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } - return results; - } - function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; - const results = []; - let matches; - while ((matches = STYLE_REGEX.exec(style)) !== null) { - const name = matches[1]; - if (matches[2]) { - const args = parseArguments(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } - return results; - } - function buildStyle(chalk3, styles3) { - const enabled = {}; - for (const layer of styles3) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } - let current = chalk3; - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } - } - } - return current; - } - module2.exports = (chalk3, tmp) => { - const styles3 = []; - const chunks = []; - let chunk = []; - tmp.replace(TEMPLATE_REGEX, (m3, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape2(escapeChar)); - } else if (style) { - const str2 = chunk.join(""); - chunk = []; - chunks.push(styles3.length === 0 ? str2 : buildStyle(chalk3, styles3)(str2)); - styles3.push({ inverse, styles: parseStyle(style) }); - } else if (close) { - if (styles3.length === 0) { - throw new Error("Found extraneous } in Chalk template literal"); - } - chunks.push(buildStyle(chalk3, styles3)(chunk.join(""))); - chunk = []; - styles3.pop(); - } else { - chunk.push(chr); - } - }); - chunks.push(chunk.join("")); - if (styles3.length > 0) { - const errMsg = `Chalk template literal is missing ${styles3.length} closing bracket${styles3.length === 1 ? "" : "s"} (\`}\`)`; - throw new Error(errMsg); - } - return chunks.join(""); - }; - } -}); -var require_chalk = __commonJS2({ - "node_modules/@babel/code-frame/node_modules/chalk/index.js"(exports, module2) { - "use strict"; - var escapeStringRegexp2 = require_escape_string_regexp(); - var ansiStyles2 = require_ansi_styles2(); - var stdoutColor2 = require_supports_color2().stdout; - var template = require_templates2(); - var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm"); - var levelMapping2 = ["ansi", "ansi", "ansi256", "ansi16m"]; - var skipModels = /* @__PURE__ */ new Set(["gray"]); - var styles3 = /* @__PURE__ */ Object.create(null); - function applyOptions2(obj, options8) { - options8 = options8 || {}; - const scLevel = stdoutColor2 ? stdoutColor2.level : 0; - obj.level = options8.level === void 0 ? scLevel : options8.level; - obj.enabled = "enabled" in options8 ? options8.enabled : obj.level > 0; - } - function Chalk(options8) { - if (!this || !(this instanceof Chalk) || this.template) { - const chalk3 = {}; - applyOptions2(chalk3, options8); - chalk3.template = function() { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk3.template].concat(args)); - }; - Object.setPrototypeOf(chalk3, Chalk.prototype); - Object.setPrototypeOf(chalk3.template, chalk3); - chalk3.template.constructor = Chalk; - return chalk3.template; - } - applyOptions2(this, options8); - } - if (isSimpleWindowsTerm) { - ansiStyles2.blue.open = "\x1B[94m"; - } - for (const key of Object.keys(ansiStyles2)) { - ansiStyles2[key].closeRe = new RegExp(escapeStringRegexp2(ansiStyles2[key].close), "g"); - styles3[key] = { - get() { - const codes2 = ansiStyles2[key]; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, key); - } - }; - } - styles3.visible = { - get() { - return build.call(this, this._styles || [], true, "visible"); - } - }; - ansiStyles2.color.closeRe = new RegExp(escapeStringRegexp2(ansiStyles2.color.close), "g"); - for (const model of Object.keys(ansiStyles2.color.ansi)) { - if (skipModels.has(model)) { - continue; - } - styles3[model] = { - get() { - const level = this.level; - return function() { - const open = ansiStyles2.color[levelMapping2[level]][model].apply(null, arguments); - const codes2 = { - open, - close: ansiStyles2.color.close, - closeRe: ansiStyles2.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, model); - }; - } - }; - } - ansiStyles2.bgColor.closeRe = new RegExp(escapeStringRegexp2(ansiStyles2.bgColor.close), "g"); - for (const model of Object.keys(ansiStyles2.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } - const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); - styles3[bgModel] = { - get() { - const level = this.level; - return function() { - const open = ansiStyles2.bgColor[levelMapping2[level]][model].apply(null, arguments); - const codes2 = { - open, - close: ansiStyles2.bgColor.close, - closeRe: ansiStyles2.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, model); - }; - } - }; - } - var proto2 = Object.defineProperties(() => { - }, styles3); - function build(_styles, _empty, key) { - const builder = function() { - return applyStyle2.apply(builder, arguments); - }; - builder._styles = _styles; - builder._empty = _empty; - const self2 = this; - Object.defineProperty(builder, "level", { - enumerable: true, - get() { - return self2.level; - }, - set(level) { - self2.level = level; - } - }); - Object.defineProperty(builder, "enabled", { - enumerable: true, - get() { - return self2.enabled; - }, - set(enabled) { - self2.enabled = enabled; - } - }); - builder.hasGrey = this.hasGrey || key === "gray" || key === "grey"; - builder.__proto__ = proto2; - return builder; - } - function applyStyle2() { - const args = arguments; - const argsLen = args.length; - let str2 = String(arguments[0]); - if (argsLen === 0) { - return ""; - } - if (argsLen > 1) { - for (let a = 1; a < argsLen; a++) { - str2 += " " + args[a]; - } - } - if (!this.enabled || this.level <= 0 || !str2) { - return this._empty ? "" : str2; - } - const originalDim = ansiStyles2.dim.open; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles2.dim.open = ""; - } - for (const code of this._styles.slice().reverse()) { - str2 = code.open + str2.replace(code.closeRe, code.open) + code.close; - str2 = str2.replace(/\r?\n/g, `${code.close}$&${code.open}`); - } - ansiStyles2.dim.open = originalDim; - return str2; - } - function chalkTag(chalk3, strings) { - if (!Array.isArray(strings)) { - return [].slice.call(arguments, 1).join(" "); - } - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&")); - parts.push(String(strings.raw[i])); - } - return template(chalk3, parts.join("")); - } - Object.defineProperties(Chalk.prototype, styles3); - module2.exports = Chalk(); - module2.exports.supportsColor = stdoutColor2; - module2.exports.default = module2.exports; - } -}); -var require_lib22 = __commonJS2({ - "node_modules/@babel/highlight/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = highlight; - exports.shouldHighlight = shouldHighlight; - var _jsTokens = require_js_tokens(); - var _helperValidatorIdentifier = require_lib3(); - var _chalk2 = require_chalk(); - var chalk3 = _chalk2; - var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]); - function getDefs(chalk22) { - return { - keyword: chalk22.cyan, - capitalized: chalk22.yellow, - jsxIdentifier: chalk22.yellow, - punctuator: chalk22.yellow, - number: chalk22.magenta, - string: chalk22.green, - regex: chalk22.magenta, - comment: chalk22.grey, - invalid: chalk22.white.bgRed.bold - }; - } - var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - var BRACKET = /^[()[\]{}]$/; - var tokenize; - { - const JSX_TAG = /^[a-z][\w-]*$/i; - const getTokenType = function(token, offset, text) { - if (token.type === "name") { - if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { - return "keyword"; - } - if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == " colorize(str2)).join("\n"); - } else { - highlighted += value; - } - } - return highlighted; - } - function shouldHighlight(options8) { - return !!chalk3.supportsColor || options8.forceColor; - } - var chalkWithForcedColor = void 0; - function getChalk(forceColor) { - if (forceColor) { - var _chalkWithForcedColor; - (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new chalk3.constructor({ - enabled: true, - level: 1 - }); - return chalkWithForcedColor; - } - return chalk3; - } - { - { - exports.getChalk = (options8) => getChalk(options8.forceColor); - } - } - function highlight(code, options8 = {}) { - if (code !== "" && shouldHighlight(options8)) { - const defs = getDefs(getChalk(options8.forceColor)); - return highlightTokens(defs, code); - } else { - return code; - } - } - } -}); -var require_lib32 = __commonJS2({ - "node_modules/@babel/code-frame/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.codeFrameColumns = codeFrameColumns; - exports.default = _default2; - var _highlight = require_lib22(); - var _chalk2 = require_chalk(); - var chalk3 = _chalk2; - var chalkWithForcedColor = void 0; - function getChalk(forceColor) { - if (forceColor) { - var _chalkWithForcedColor; - (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new chalk3.constructor({ - enabled: true, - level: 1 - }); - return chalkWithForcedColor; - } - return chalk3; - } - var deprecationWarningShown = false; - function getDefs(chalk22) { - return { - gutter: chalk22.grey, - marker: chalk22.red.bold, - message: chalk22.red.bold - }; - } - var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - function getMarkerLines(loc, source, opts) { - const startLoc = Object.assign({ - column: 0, - line: -1 - }, loc.start); - const endLoc = Object.assign({}, startLoc, loc.end); - const { - linesAbove = 2, - linesBelow = 3 - } = opts || {}; - const startLine = startLoc.line; - const startColumn = startLoc.column; - const endLine = endLoc.line; - const endColumn = endLoc.column; - let start = Math.max(startLine - (linesAbove + 1), 0); - let end = Math.min(source.length, endLine + linesBelow); - if (startLine === -1) { - start = 0; - } - if (endLine === -1) { - end = source.length; - } - const lineDiff = endLine - startLine; - const markerLines = {}; - if (lineDiff) { - for (let i = 0; i <= lineDiff; i++) { - const lineNumber = i + startLine; - if (!startColumn) { - markerLines[lineNumber] = true; - } else if (i === 0) { - const sourceLength = source[lineNumber - 1].length; - markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; - } else if (i === lineDiff) { - markerLines[lineNumber] = [0, endColumn]; - } else { - const sourceLength = source[lineNumber - i].length; - markerLines[lineNumber] = [0, sourceLength]; - } - } - } else { - if (startColumn === endColumn) { - if (startColumn) { - markerLines[startLine] = [startColumn, 0]; - } else { - markerLines[startLine] = true; - } - } else { - markerLines[startLine] = [startColumn, endColumn - startColumn]; - } - } - return { - start, - end, - markerLines - }; - } - function codeFrameColumns(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); - const chalk22 = getChalk(opts.forceColor); - const defs = getDefs(chalk22); - const maybeHighlight = (chalkFn, string) => { - return highlighted ? chalkFn(string) : string; - }; - const lines = rawLines.split(NEWLINE); - const { - start, - end, - markerLines - } = getMarkerLines(loc, lines, opts); - const hasColumns = loc.start && typeof loc.start.column === "number"; - const numberMaxWidth = String(end).length; - const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line3, index) => { - const number = start + 1 + index; - const paddedNumber = ` ${number}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} |`; - const hasMarker = markerLines[number]; - const lastMarkerLine = !markerLines[number + 1]; - if (hasMarker) { - let markerLine = ""; - if (Array.isArray(hasMarker)) { - const markerSpacing = line3.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); - const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); - if (lastMarkerLine && opts.message) { - markerLine += " " + maybeHighlight(defs.message, opts.message); - } - } - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line3.length > 0 ? ` ${line3}` : "", markerLine].join(""); - } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line3.length > 0 ? ` ${line3}` : ""}`; - } - }).join("\n"); - if (opts.message && !hasColumns) { - frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message} -${frame}`; - } - if (highlighted) { - return chalk22.reset(frame); - } else { - return frame; - } - } - function _default2(rawLines, lineNumber, colNumber, opts = {}) { - if (!deprecationWarningShown) { - deprecationWarningShown = true; - const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; - if (process.emitWarning) { - process.emitWarning(message, "DeprecationWarning"); - } else { - const deprecationError = new Error(message); - deprecationError.name = "DeprecationWarning"; - console.warn(new Error(message)); - } - } - colNumber = Math.max(colNumber, 0); - const location = { - start: { - column: colNumber, - line: lineNumber - } - }; - return codeFrameColumns(rawLines, location, opts); - } - } -}); -var require_parse_json = __commonJS2({ - "node_modules/parse-json/index.js"(exports, module2) { - "use strict"; - var errorEx = require_error_ex(); - var fallback = require_json_parse_even_better_errors(); - var { default: LinesAndColumns } = require_build5(); - var { codeFrameColumns } = require_lib32(); - var JSONError = errorEx("JSONError", { - fileName: errorEx.append("in %s"), - codeFrame: errorEx.append("\n\n%s\n") - }); - var parseJson = (string, reviver, filename) => { - if (typeof reviver === "string") { - filename = reviver; - reviver = null; - } - try { - try { - return JSON.parse(string, reviver); - } catch (error2) { - fallback(string, reviver); - throw error2; - } - } catch (error2) { - error2.message = error2.message.replace(/\n/g, ""); - const indexMatch = error2.message.match(/in JSON at position (\d+) while parsing/); - const jsonError = new JSONError(error2); - if (filename) { - jsonError.fileName = filename; - } - if (indexMatch && indexMatch.length > 0) { - const lines = new LinesAndColumns(string); - const index = Number(indexMatch[1]); - const location = lines.locationForIndex(index); - const codeFrame = codeFrameColumns( - string, - { start: { line: location.line + 1, column: location.column + 1 } }, - { highlightCode: true } - ); - jsonError.codeFrame = codeFrame; - } - throw jsonError; - } - }; - parseJson.JSONError = JSONError; - module2.exports = parseJson; - } -}); -var require_common2 = __commonJS2({ - "node_modules/js-yaml/lib/common.js"(exports, module2) { - "use strict"; - function isNothing2(subject) { - return typeof subject === "undefined" || subject === null; - } - function isObject3(subject) { - return typeof subject === "object" && subject !== null; - } - function toArray2(sequence) { - if (Array.isArray(sequence)) - return sequence; - else if (isNothing2(sequence)) - return []; - return [sequence]; - } - function extend3(target, source) { - var index, length, key, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } - return target; - } - function repeat2(string, count) { - var result = "", cycle; - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } - return result; - } - function isNegativeZero2(number) { - return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; - } - module2.exports.isNothing = isNothing2; - module2.exports.isObject = isObject3; - module2.exports.toArray = toArray2; - module2.exports.repeat = repeat2; - module2.exports.isNegativeZero = isNegativeZero2; - module2.exports.extend = extend3; - } -}); -var require_exception = __commonJS2({ - "node_modules/js-yaml/lib/exception.js"(exports, module2) { - "use strict"; - function formatError2(exception2, compact) { - var where = "", message = exception2.reason || "(unknown reason)"; - if (!exception2.mark) - return message; - if (exception2.mark.name) { - where += 'in "' + exception2.mark.name + '" '; - } - where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; - if (!compact && exception2.mark.snippet) { - where += "\n\n" + exception2.mark.snippet; - } - return message + " " + where; - } - function YAMLException(reason, mark) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark; - this.message = formatError2(this, false); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } - } - YAMLException.prototype = Object.create(Error.prototype); - YAMLException.prototype.constructor = YAMLException; - YAMLException.prototype.toString = function toString3(compact) { - return this.name + ": " + formatError2(this, compact); - }; - module2.exports = YAMLException; - } -}); -var require_snippet = __commonJS2({ - "node_modules/js-yaml/lib/snippet.js"(exports, module2) { - "use strict"; - var common2 = require_common2(); - function getLine2(buffer, lineStart, lineEnd, position, maxLineLength) { - var head = ""; - var tail = ""; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position - lineStart > maxHalfLength) { - head = " ... "; - lineStart = position - maxHalfLength + head.length; - } - if (lineEnd - position > maxHalfLength) { - tail = " ..."; - lineEnd = position + maxHalfLength - tail.length; - } - return { - str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "\u2192") + tail, - pos: position - lineStart + head.length - // relative position - }; - } - function padStart2(string, max) { - return common2.repeat(" ", max - string.length) + string; - } - function makeSnippet2(mark, options8) { - options8 = Object.create(options8 || null); - if (!mark.buffer) - return null; - if (!options8.maxLength) - options8.maxLength = 79; - if (typeof options8.indent !== "number") - options8.indent = 1; - if (typeof options8.linesBefore !== "number") - options8.linesBefore = 3; - if (typeof options8.linesAfter !== "number") - options8.linesAfter = 2; - var re9 = /\r?\n|\r|\0/g; - var lineStarts = [0]; - var lineEnds = []; - var match; - var foundLineNo = -1; - while (match = re9.exec(mark.buffer)) { - lineEnds.push(match.index); - lineStarts.push(match.index + match[0].length); - if (mark.position <= match.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } - if (foundLineNo < 0) - foundLineNo = lineStarts.length - 1; - var result = "", i, line3; - var lineNoLength = Math.min(mark.line + options8.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options8.maxLength - (options8.indent + lineNoLength + 3); - for (i = 1; i <= options8.linesBefore; i++) { - if (foundLineNo - i < 0) - break; - line3 = getLine2( - mark.buffer, - lineStarts[foundLineNo - i], - lineEnds[foundLineNo - i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), - maxLineLength - ); - result = common2.repeat(" ", options8.indent) + padStart2((mark.line - i + 1).toString(), lineNoLength) + " | " + line3.str + "\n" + result; - } - line3 = getLine2(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common2.repeat(" ", options8.indent) + padStart2((mark.line + 1).toString(), lineNoLength) + " | " + line3.str + "\n"; - result += common2.repeat("-", options8.indent + lineNoLength + 3 + line3.pos) + "^\n"; - for (i = 1; i <= options8.linesAfter; i++) { - if (foundLineNo + i >= lineEnds.length) - break; - line3 = getLine2( - mark.buffer, - lineStarts[foundLineNo + i], - lineEnds[foundLineNo + i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), - maxLineLength - ); - result += common2.repeat(" ", options8.indent) + padStart2((mark.line + i + 1).toString(), lineNoLength) + " | " + line3.str + "\n"; - } - return result.replace(/\n$/, ""); - } - module2.exports = makeSnippet2; - } -}); -var require_type = __commonJS2({ - "node_modules/js-yaml/lib/type.js"(exports, module2) { - "use strict"; - var YAMLException = require_exception(); - var TYPE_CONSTRUCTOR_OPTIONS2 = [ - "kind", - "multi", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "representName", - "defaultStyle", - "styleAliases" - ]; - var YAML_NODE_KINDS2 = [ - "scalar", - "sequence", - "mapping" - ]; - function compileStyleAliases2(map2) { - var result = {}; - if (map2 !== null) { - Object.keys(map2).forEach(function(style) { - map2[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; - } - function Type(tag, options8) { - options8 = options8 || {}; - Object.keys(options8).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS2.indexOf(name) === -1) { - throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.options = options8; - this.tag = tag; - this.kind = options8["kind"] || null; - this.resolve = options8["resolve"] || function() { - return true; - }; - this.construct = options8["construct"] || function(data) { - return data; - }; - this.instanceOf = options8["instanceOf"] || null; - this.predicate = options8["predicate"] || null; - this.represent = options8["represent"] || null; - this.representName = options8["representName"] || null; - this.defaultStyle = options8["defaultStyle"] || null; - this.multi = options8["multi"] || false; - this.styleAliases = compileStyleAliases2(options8["styleAliases"] || null); - if (YAML_NODE_KINDS2.indexOf(this.kind) === -1) { - throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } - } - module2.exports = Type; - } -}); -var require_schema = __commonJS2({ - "node_modules/js-yaml/lib/schema.js"(exports, module2) { - "use strict"; - var YAMLException = require_exception(); - var Type = require_type(); - function compileList2(schema2, name) { - var result = []; - schema2[name].forEach(function(currentType) { - var newIndex = result.length; - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; - } - }); - result[newIndex] = currentType; - }); - return result; - } - function compileMap2() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] - } - }, index, length; - function collectType(type2) { - if (type2.multi) { - result.multi[type2.kind].push(type2); - result.multi["fallback"].push(type2); - } else { - result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; - } - } - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; - } - function Schema2(definition) { - return this.extend(definition); - } - Schema2.prototype.extend = function extend3(definition) { - var implicit = []; - var explicit = []; - if (definition instanceof Type) { - explicit.push(definition); - } else if (Array.isArray(definition)) { - explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - if (definition.implicit) - implicit = implicit.concat(definition.implicit); - if (definition.explicit) - explicit = explicit.concat(definition.explicit); - } else { - throw new YAMLException("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); - } - implicit.forEach(function(type2) { - if (!(type2 instanceof Type)) { - throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - if (type2.loadKind && type2.loadKind !== "scalar") { - throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - if (type2.multi) { - throw new YAMLException("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); - } - }); - explicit.forEach(function(type2) { - if (!(type2 instanceof Type)) { - throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - }); - var result = Object.create(Schema2.prototype); - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList2(result, "implicit"); - result.compiledExplicit = compileList2(result, "explicit"); - result.compiledTypeMap = compileMap2(result.compiledImplicit, result.compiledExplicit); - return result; - }; - module2.exports = Schema2; - } -}); -var require_str = __commonJS2({ - "node_modules/js-yaml/lib/type/str.js"(exports, module2) { - "use strict"; - var Type = require_type(); - module2.exports = new Type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data) { - return data !== null ? data : ""; - } - }); - } -}); -var require_seq = __commonJS2({ - "node_modules/js-yaml/lib/type/seq.js"(exports, module2) { - "use strict"; - var Type = require_type(); - module2.exports = new Type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data) { - return data !== null ? data : []; - } - }); - } -}); -var require_map = __commonJS2({ - "node_modules/js-yaml/lib/type/map.js"(exports, module2) { - "use strict"; - var Type = require_type(); - module2.exports = new Type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data) { - return data !== null ? data : {}; - } - }); - } -}); -var require_failsafe = __commonJS2({ - "node_modules/js-yaml/lib/schema/failsafe.js"(exports, module2) { - "use strict"; - var Schema2 = require_schema(); - module2.exports = new Schema2({ - explicit: [ - require_str(), - require_seq(), - require_map() - ] - }); - } -}); -var require_null = __commonJS2({ - "node_modules/js-yaml/lib/type/null.js"(exports, module2) { - "use strict"; - var Type = require_type(); - function resolveYamlNull2(data) { - if (data === null) - return true; - var max = data.length; - return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); - } - function constructYamlNull2() { - return null; - } - function isNull2(object) { - return object === null; - } - module2.exports = new Type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull2, - construct: constructYamlNull2, - predicate: isNull2, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - }, - empty: function() { - return ""; - } - }, - defaultStyle: "lowercase" - }); - } -}); -var require_bool = __commonJS2({ - "node_modules/js-yaml/lib/type/bool.js"(exports, module2) { - "use strict"; - var Type = require_type(); - function resolveYamlBoolean2(data) { - if (data === null) - return false; - var max = data.length; - return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); - } - function constructYamlBoolean2(data) { - return data === "true" || data === "True" || data === "TRUE"; - } - function isBoolean2(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; - } - module2.exports = new Type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean2, - construct: constructYamlBoolean2, - predicate: isBoolean2, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" - }); - } -}); -var require_int = __commonJS2({ - "node_modules/js-yaml/lib/type/int.js"(exports, module2) { - "use strict"; - var common2 = require_common2(); - var Type = require_type(); - function isHexCode2(c3) { - return 48 <= c3 && c3 <= 57 || 65 <= c3 && c3 <= 70 || 97 <= c3 && c3 <= 102; - } - function isOctCode2(c3) { - return 48 <= c3 && c3 <= 55; - } - function isDecCode2(c3) { - return 48 <= c3 && c3 <= 57; - } - function resolveYamlInteger2(data) { - if (data === null) - return false; - var max = data.length, index = 0, hasDigits = false, ch; - if (!max) - return false; - ch = data[index]; - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - if (ch === "0") { - if (index + 1 === max) - return true; - ch = data[++index]; - if (ch === "b") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (ch !== "0" && ch !== "1") - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "x") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isHexCode2(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "o") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isOctCode2(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - } - if (ch === "_") - return false; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isDecCode2(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch === "_") - return false; - return true; - } - function constructYamlInteger2(data) { - var value = data, sign = 1, ch; - if (value.indexOf("_") !== -1) { - value = value.replace(/_/g, ""); - } - ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") - sign = -1; - value = value.slice(1); - ch = value[0]; - } - if (value === "0") - return 0; - if (ch === "0") { - if (value[1] === "b") - return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") - return sign * parseInt(value.slice(2), 16); - if (value[1] === "o") - return sign * parseInt(value.slice(2), 8); - } - return sign * parseInt(value, 10); - } - function isInteger2(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common2.isNegativeZero(object)); - } - module2.exports = new Type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger2, - construct: constructYamlInteger2, - predicate: isInteger2, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - /* eslint-disable max-len */ - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } - }); - } -}); -var require_float = __commonJS2({ - "node_modules/js-yaml/lib/type/float.js"(exports, module2) { - "use strict"; - var common2 = require_common2(); - var Type = require_type(); - var YAML_FLOAT_PATTERN2 = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" - ); - function resolveYamlFloat2(data) { - if (data === null) - return false; - if (!YAML_FLOAT_PATTERN2.test(data) || // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_") { - return false; - } - return true; - } - function constructYamlFloat2(data) { - var value, sign; - value = data.replace(/_/g, "").toLowerCase(); - sign = value[0] === "-" ? -1 : 1; - if ("+-".indexOf(value[0]) >= 0) { - value = value.slice(1); - } - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value === ".nan") { - return NaN; - } - return sign * parseFloat(value, 10); - } - var SCIENTIFIC_WITHOUT_DOT2 = /^[-+]?[0-9]+e/; - function representYamlFloat2(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common2.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT2.test(res) ? res.replace("e", ".e") : res; - } - function isFloat2(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common2.isNegativeZero(object)); - } - module2.exports = new Type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat2, - construct: constructYamlFloat2, - predicate: isFloat2, - represent: representYamlFloat2, - defaultStyle: "lowercase" - }); - } -}); -var require_json = __commonJS2({ - "node_modules/js-yaml/lib/schema/json.js"(exports, module2) { - "use strict"; - module2.exports = require_failsafe().extend({ - implicit: [ - require_null(), - require_bool(), - require_int(), - require_float() - ] - }); - } -}); -var require_core2 = __commonJS2({ - "node_modules/js-yaml/lib/schema/core.js"(exports, module2) { - "use strict"; - module2.exports = require_json(); - } -}); -var require_timestamp = __commonJS2({ - "node_modules/js-yaml/lib/type/timestamp.js"(exports, module2) { - "use strict"; - var Type = require_type(); - var YAML_DATE_REGEXP2 = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" - ); - var YAML_TIMESTAMP_REGEXP2 = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" - ); - function resolveYamlTimestamp2(data) { - if (data === null) - return false; - if (YAML_DATE_REGEXP2.exec(data) !== null) - return true; - if (YAML_TIMESTAMP_REGEXP2.exec(data) !== null) - return true; - return false; - } - function constructYamlTimestamp2(data) { - var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP2.exec(data); - if (match === null) - match = YAML_TIMESTAMP_REGEXP2.exec(data); - if (match === null) - throw new Error("Date resolve error"); - year = +match[1]; - month = +match[2] - 1; - day = +match[3]; - if (!match[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match[4]; - minute = +match[5]; - second = +match[6]; - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match[9]) { - tz_hour = +match[10]; - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match[9] === "-") - delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) - date.setTime(date.getTime() - delta); - return date; - } - function representYamlTimestamp2(object) { - return object.toISOString(); - } - module2.exports = new Type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp2, - construct: constructYamlTimestamp2, - instanceOf: Date, - represent: representYamlTimestamp2 - }); - } -}); -var require_merge = __commonJS2({ - "node_modules/js-yaml/lib/type/merge.js"(exports, module2) { - "use strict"; - var Type = require_type(); - function resolveYamlMerge2(data) { - return data === "<<" || data === null; - } - module2.exports = new Type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge2 - }); - } -}); -var require_binary = __commonJS2({ - "node_modules/js-yaml/lib/type/binary.js"(exports, module2) { - "use strict"; - var Type = require_type(); - var BASE64_MAP2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; - function resolveYamlBinary2(data) { - if (data === null) - return false; - var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP2; - for (idx = 0; idx < max; idx++) { - code = map2.indexOf(data.charAt(idx)); - if (code > 64) - continue; - if (code < 0) - return false; - bitlen += 6; - } - return bitlen % 8 === 0; - } - function constructYamlBinary2(data) { - var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP2, bits = 0, result = []; - for (idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map2.indexOf(input.charAt(idx)); - } - tailbits = max % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - return new Uint8Array(result); - } - function representYamlBinary2(object) { - var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP2; - for (idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max % 3; - if (tail === 0) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } else if (tail === 2) { - result += map2[bits >> 10 & 63]; - result += map2[bits >> 4 & 63]; - result += map2[bits << 2 & 63]; - result += map2[64]; - } else if (tail === 1) { - result += map2[bits >> 2 & 63]; - result += map2[bits << 4 & 63]; - result += map2[64]; - result += map2[64]; - } - return result; - } - function isBinary2(obj) { - return Object.prototype.toString.call(obj) === "[object Uint8Array]"; - } - module2.exports = new Type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary2, - construct: constructYamlBinary2, - predicate: isBinary2, - represent: representYamlBinary2 - }); - } -}); -var require_omap = __commonJS2({ - "node_modules/js-yaml/lib/type/omap.js"(exports, module2) { - "use strict"; - var Type = require_type(); - var _hasOwnProperty2 = Object.prototype.hasOwnProperty; - var _toString2 = Object.prototype.toString; - function resolveYamlOmap2(data) { - if (data === null) - return true; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - if (_toString2.call(pair) !== "[object Object]") - return false; - for (pairKey in pair) { - if (_hasOwnProperty2.call(pair, pairKey)) { - if (!pairHasKey) - pairHasKey = true; - else - return false; - } - } - if (!pairHasKey) - return false; - if (objectKeys.indexOf(pairKey) === -1) - objectKeys.push(pairKey); - else - return false; - } - return true; - } - function constructYamlOmap2(data) { - return data !== null ? data : []; - } - module2.exports = new Type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap2, - construct: constructYamlOmap2 - }); - } -}); -var require_pairs = __commonJS2({ - "node_modules/js-yaml/lib/type/pairs.js"(exports, module2) { - "use strict"; - var Type = require_type(); - var _toString2 = Object.prototype.toString; - function resolveYamlPairs2(data) { - if (data === null) - return true; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - if (_toString2.call(pair) !== "[object Object]") - return false; - keys = Object.keys(pair); - if (keys.length !== 1) - return false; - result[index] = [keys[0], pair[keys[0]]]; - } - return true; - } - function constructYamlPairs2(data) { - if (data === null) - return []; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - keys = Object.keys(pair); - result[index] = [keys[0], pair[keys[0]]]; - } - return result; - } - module2.exports = new Type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs2, - construct: constructYamlPairs2 - }); - } -}); -var require_set = __commonJS2({ - "node_modules/js-yaml/lib/type/set.js"(exports, module2) { - "use strict"; - var Type = require_type(); - var _hasOwnProperty2 = Object.prototype.hasOwnProperty; - function resolveYamlSet2(data) { - if (data === null) - return true; - var key, object = data; - for (key in object) { - if (_hasOwnProperty2.call(object, key)) { - if (object[key] !== null) - return false; - } - } - return true; - } - function constructYamlSet2(data) { - return data !== null ? data : {}; - } - module2.exports = new Type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet2, - construct: constructYamlSet2 - }); - } -}); -var require_default = __commonJS2({ - "node_modules/js-yaml/lib/schema/default.js"(exports, module2) { - "use strict"; - module2.exports = require_core2().extend({ - implicit: [ - require_timestamp(), - require_merge() - ], - explicit: [ - require_binary(), - require_omap(), - require_pairs(), - require_set() - ] - }); - } -}); -var require_loader = __commonJS2({ - "node_modules/js-yaml/lib/loader.js"(exports, module2) { - "use strict"; - var common2 = require_common2(); - var YAMLException = require_exception(); - var makeSnippet2 = require_snippet(); - var DEFAULT_SCHEMA = require_default(); - var _hasOwnProperty2 = Object.prototype.hasOwnProperty; - var CONTEXT_FLOW_IN2 = 1; - var CONTEXT_FLOW_OUT2 = 2; - var CONTEXT_BLOCK_IN2 = 3; - var CONTEXT_BLOCK_OUT2 = 4; - var CHOMPING_CLIP2 = 1; - var CHOMPING_STRIP2 = 2; - var CHOMPING_KEEP2 = 3; - var PATTERN_NON_PRINTABLE2 = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var PATTERN_NON_ASCII_LINE_BREAKS2 = /[\x85\u2028\u2029]/; - var PATTERN_FLOW_INDICATORS2 = /[,\[\]\{\}]/; - var PATTERN_TAG_HANDLE2 = /^(?:!|!!|![a-z\-]+!)$/i; - var PATTERN_TAG_URI2 = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - function _class2(obj) { - return Object.prototype.toString.call(obj); - } - function is_EOL2(c3) { - return c3 === 10 || c3 === 13; - } - function is_WHITE_SPACE2(c3) { - return c3 === 9 || c3 === 32; - } - function is_WS_OR_EOL2(c3) { - return c3 === 9 || c3 === 32 || c3 === 10 || c3 === 13; - } - function is_FLOW_INDICATOR2(c3) { - return c3 === 44 || c3 === 91 || c3 === 93 || c3 === 123 || c3 === 125; - } - function fromHexCode2(c3) { - var lc3; - if (48 <= c3 && c3 <= 57) { - return c3 - 48; - } - lc3 = c3 | 32; - if (97 <= lc3 && lc3 <= 102) { - return lc3 - 97 + 10; - } - return -1; - } - function escapedHexLen2(c3) { - if (c3 === 120) { - return 2; - } - if (c3 === 117) { - return 4; - } - if (c3 === 85) { - return 8; - } - return 0; - } - function fromDecimalCode2(c3) { - if (48 <= c3 && c3 <= 57) { - return c3 - 48; - } - return -1; - } - function simpleEscapeSequence2(c3) { - return c3 === 48 ? "\0" : c3 === 97 ? "\x07" : c3 === 98 ? "\b" : c3 === 116 ? " " : c3 === 9 ? " " : c3 === 110 ? "\n" : c3 === 118 ? "\v" : c3 === 102 ? "\f" : c3 === 114 ? "\r" : c3 === 101 ? "\x1B" : c3 === 32 ? " " : c3 === 34 ? '"' : c3 === 47 ? "/" : c3 === 92 ? "\\" : c3 === 78 ? "\x85" : c3 === 95 ? "\xA0" : c3 === 76 ? "\u2028" : c3 === 80 ? "\u2029" : ""; - } - function charFromCodepoint2(c3) { - if (c3 <= 65535) { - return String.fromCharCode(c3); - } - return String.fromCharCode( - (c3 - 65536 >> 10) + 55296, - (c3 - 65536 & 1023) + 56320 - ); - } - var simpleEscapeCheck2 = new Array(256); - var simpleEscapeMap2 = new Array(256); - for (i = 0; i < 256; i++) { - simpleEscapeCheck2[i] = simpleEscapeSequence2(i) ? 1 : 0; - simpleEscapeMap2[i] = simpleEscapeSequence2(i); - } - var i; - function State2(input, options8) { - this.input = input; - this.filename = options8["filename"] || null; - this.schema = options8["schema"] || DEFAULT_SCHEMA; - this.onWarning = options8["onWarning"] || null; - this.legacy = options8["legacy"] || false; - this.json = options8["json"] || false; - this.listener = options8["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.firstTabInLine = -1; - this.documents = []; - } - function generateError2(state, message) { - var mark = { - name: state.filename, - buffer: state.input.slice(0, -1), - // omit trailing \0 - position: state.position, - line: state.line, - column: state.position - state.lineStart - }; - mark.snippet = makeSnippet2(mark); - return new YAMLException(message, mark); - } - function throwError2(state, message) { - throw generateError2(state, message); - } - function throwWarning2(state, message) { - if (state.onWarning) { - state.onWarning.call(null, generateError2(state, message)); - } - } - var directiveHandlers2 = { - YAML: function handleYamlDirective2(state, name, args) { - var match, major, minor; - if (state.version !== null) { - throwError2(state, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError2(state, "YAML directive accepts exactly one argument"); - } - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match === null) { - throwError2(state, "ill-formed argument of the YAML directive"); - } - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - if (major !== 1) { - throwError2(state, "unacceptable YAML version of the document"); - } - state.version = args[0]; - state.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning2(state, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective2(state, name, args) { - var handle, prefix; - if (args.length !== 2) { - throwError2(state, "TAG directive accepts exactly two arguments"); - } - handle = args[0]; - prefix = args[1]; - if (!PATTERN_TAG_HANDLE2.test(handle)) { - throwError2(state, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty2.call(state.tagMap, handle)) { - throwError2(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - if (!PATTERN_TAG_URI2.test(prefix)) { - throwError2(state, "ill-formed tag prefix (second argument) of the TAG directive"); - } - try { - prefix = decodeURIComponent(prefix); - } catch (err) { - throwError2(state, "tag prefix is malformed: " + prefix); - } - state.tagMap[handle] = prefix; - } - }; - function captureSegment2(state, start, end, checkJson) { - var _position, _length, _character, _result; - if (start < end) { - _result = state.input.slice(start, end); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError2(state, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE2.test(_result)) { - throwError2(state, "the stream contains non-printable characters"); - } - state.result += _result; - } - } - function mergeMappings2(state, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - if (!common2.isObject(source)) { - throwError2(state, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - if (!_hasOwnProperty2.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } - } - function storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError2(state, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class2(keyNode[index]) === "[object Object]") { - keyNode[index] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class2(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings2(state, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings2(state, _result, valueNode, overridableKeys); - } - } else { - if (!state.json && !_hasOwnProperty2.call(overridableKeys, keyNode) && _hasOwnProperty2.call(_result, keyNode)) { - state.line = startLine || state.line; - state.lineStart = startLineStart || state.lineStart; - state.position = startPos || state.position; - throwError2(state, "duplicated mapping key"); - } - if (keyNode === "__proto__") { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } - return _result; - } - function readLineBreak2(state) { - var ch; - ch = state.input.charCodeAt(state.position); - if (ch === 10) { - state.position++; - } else if (ch === 13) { - state.position++; - if (state.input.charCodeAt(state.position) === 10) { - state.position++; - } - } else { - throwError2(state, "a line break is expected"); - } - state.line += 1; - state.lineStart = state.position; - state.firstTabInLine = -1; - } - function skipSeparationSpace2(state, allowComments, checkIndent) { - var lineBreaks = 0, ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - while (is_WHITE_SPACE2(ch)) { - if (ch === 9 && state.firstTabInLine === -1) { - state.firstTabInLine = state.position; - } - ch = state.input.charCodeAt(++state.position); - } - if (allowComments && ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 10 && ch !== 13 && ch !== 0); - } - if (is_EOL2(ch)) { - readLineBreak2(state); - ch = state.input.charCodeAt(state.position); - lineBreaks++; - state.lineIndent = 0; - while (ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { - throwWarning2(state, "deficient indentation"); - } - return lineBreaks; - } - function testDocumentSeparator2(state) { - var _position = state.position, ch; - ch = state.input.charCodeAt(_position); - if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL2(ch)) { - return true; - } - } - return false; - } - function writeFoldedLines2(state, count) { - if (count === 1) { - state.result += " "; - } else if (count > 1) { - state.result += common2.repeat("\n", count - 1); - } - } - function readPlainScalar2(state, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch; - ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL2(ch) || is_FLOW_INDICATOR2(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { - return false; - } - if (ch === 63 || ch === 45) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL2(following) || withinFlowCollection && is_FLOW_INDICATOR2(following)) { - return false; - } - } - state.kind = "scalar"; - state.result = ""; - captureStart = captureEnd = state.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 58) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL2(following) || withinFlowCollection && is_FLOW_INDICATOR2(following)) { - break; - } - } else if (ch === 35) { - preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL2(preceding)) { - break; - } - } else if (state.position === state.lineStart && testDocumentSeparator2(state) || withinFlowCollection && is_FLOW_INDICATOR2(ch)) { - break; - } else if (is_EOL2(ch)) { - _line = state.line; - _lineStart = state.lineStart; - _lineIndent = state.lineIndent; - skipSeparationSpace2(state, false, -1); - if (state.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state.input.charCodeAt(state.position); - continue; - } else { - state.position = captureEnd; - state.line = _line; - state.lineStart = _lineStart; - state.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment2(state, captureStart, captureEnd, false); - writeFoldedLines2(state, state.line - _line); - captureStart = captureEnd = state.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE2(ch)) { - captureEnd = state.position + 1; - } - ch = state.input.charCodeAt(++state.position); - } - captureSegment2(state, captureStart, captureEnd, false); - if (state.result) { - return true; - } - state.kind = _kind; - state.result = _result; - return false; - } - function readSingleQuotedScalar2(state, nodeIndent) { - var ch, captureStart, captureEnd; - ch = state.input.charCodeAt(state.position); - if (ch !== 39) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 39) { - captureSegment2(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (ch === 39) { - captureStart = state.position; - state.position++; - captureEnd = state.position; - } else { - return true; - } - } else if (is_EOL2(ch)) { - captureSegment2(state, captureStart, captureEnd, true); - writeFoldedLines2(state, skipSeparationSpace2(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator2(state)) { - throwError2(state, "unexpected end of the document within a single quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError2(state, "unexpected end of the stream within a single quoted scalar"); - } - function readDoubleQuotedScalar2(state, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 34) { - return false; - } - state.kind = "scalar"; - state.result = ""; - state.position++; - captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 34) { - captureSegment2(state, captureStart, state.position, true); - state.position++; - return true; - } else if (ch === 92) { - captureSegment2(state, captureStart, state.position, true); - ch = state.input.charCodeAt(++state.position); - if (is_EOL2(ch)) { - skipSeparationSpace2(state, false, nodeIndent); - } else if (ch < 256 && simpleEscapeCheck2[ch]) { - state.result += simpleEscapeMap2[ch]; - state.position++; - } else if ((tmp = escapedHexLen2(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode2(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError2(state, "expected hexadecimal character"); - } - } - state.result += charFromCodepoint2(hexResult); - state.position++; - } else { - throwError2(state, "unknown escape sequence"); - } - captureStart = captureEnd = state.position; - } else if (is_EOL2(ch)) { - captureSegment2(state, captureStart, captureEnd, true); - writeFoldedLines2(state, skipSeparationSpace2(state, false, nodeIndent)); - captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator2(state)) { - throwError2(state, "unexpected end of the document within a double quoted scalar"); - } else { - state.position++; - captureEnd = state.position; - } - } - throwError2(state, "unexpected end of the stream within a double quoted scalar"); - } - function readFlowCollection2(state, nodeIndent) { - var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(++state.position); - while (ch !== 0) { - skipSeparationSpace2(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === terminator) { - state.position++; - state.tag = _tag; - state.anchor = _anchor; - state.kind = isMapping ? "mapping" : "sequence"; - state.result = _result; - return true; - } else if (!readNext) { - throwError2(state, "missed comma between flow collection entries"); - } else if (ch === 44) { - throwError2(state, "expected the node content, but found ','"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch === 63) { - following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL2(following)) { - isPair = isExplicitPair = true; - state.position++; - skipSeparationSpace2(state, true, nodeIndent); - } - } - _line = state.line; - _lineStart = state.lineStart; - _pos = state.position; - composeNode2(state, nodeIndent, CONTEXT_FLOW_IN2, false, true); - keyTag = state.tag; - keyNode = state.result; - skipSeparationSpace2(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if ((isExplicitPair || state.line === _line) && ch === 58) { - isPair = true; - ch = state.input.charCodeAt(++state.position); - skipSeparationSpace2(state, true, nodeIndent); - composeNode2(state, nodeIndent, CONTEXT_FLOW_IN2, false, true); - valueNode = state.result; - } - if (isMapping) { - storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair2(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } - skipSeparationSpace2(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === 44) { - readNext = true; - ch = state.input.charCodeAt(++state.position); - } else { - readNext = false; - } - } - throwError2(state, "unexpected end of the stream within a flow collection"); - } - function readBlockScalar2(state, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP2, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; - ch = state.input.charCodeAt(state.position); - if (ch === 124) { - folding = false; - } else if (ch === 62) { - folding = true; - } else { - return false; - } - state.kind = "scalar"; - state.result = ""; - while (ch !== 0) { - ch = state.input.charCodeAt(++state.position); - if (ch === 43 || ch === 45) { - if (CHOMPING_CLIP2 === chomping) { - chomping = ch === 43 ? CHOMPING_KEEP2 : CHOMPING_STRIP2; - } else { - throwError2(state, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode2(ch)) >= 0) { - if (tmp === 0) { - throwError2(state, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError2(state, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE2(ch)) { - do { - ch = state.input.charCodeAt(++state.position); - } while (is_WHITE_SPACE2(ch)); - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (!is_EOL2(ch) && ch !== 0); - } - } - while (ch !== 0) { - readLineBreak2(state); - state.lineIndent = 0; - ch = state.input.charCodeAt(state.position); - while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) { - state.lineIndent++; - ch = state.input.charCodeAt(++state.position); - } - if (!detectedIndent && state.lineIndent > textIndent) { - textIndent = state.lineIndent; - } - if (is_EOL2(ch)) { - emptyLines++; - continue; - } - if (state.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP2) { - state.result += common2.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP2) { - if (didReadContent) { - state.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE2(ch)) { - atMoreIndented = true; - state.result += common2.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state.result += common2.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state.result += " "; - } - } else { - state.result += common2.repeat("\n", emptyLines); - } - } else { - state.result += common2.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state.position; - while (!is_EOL2(ch) && ch !== 0) { - ch = state.input.charCodeAt(++state.position); - } - captureSegment2(state, captureStart, state.position, false); - } - return true; - } - function readBlockSequence2(state, nodeIndent) { - var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError2(state, "tab characters must not be used in indentation"); - } - if (ch !== 45) { - break; - } - following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL2(following)) { - break; - } - detected = true; - state.position++; - if (skipSeparationSpace2(state, true, -1)) { - if (state.lineIndent <= nodeIndent) { - _result.push(null); - ch = state.input.charCodeAt(state.position); - continue; - } - } - _line = state.line; - composeNode2(state, nodeIndent, CONTEXT_BLOCK_IN2, false, true); - _result.push(state.result); - skipSeparationSpace2(state, true, -1); - ch = state.input.charCodeAt(state.position); - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError2(state, "bad indentation of a sequence entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "sequence"; - state.result = _result; - return true; - } - return false; - } - function readBlockMapping2(state, nodeIndent, flowIndent) { - var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; - if (state.firstTabInLine !== -1) - return false; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = _result; - } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { - if (!atExplicitKey && state.firstTabInLine !== -1) { - state.position = state.firstTabInLine; - throwError2(state, "tab characters must not be used in indentation"); - } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; - if ((ch === 63 || ch === 58) && is_WS_OR_EOL2(following)) { - if (ch === 63) { - if (atExplicitKey) { - storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError2(state, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state.position += 1; - ch = following; - } else { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - if (!composeNode2(state, flowIndent, CONTEXT_FLOW_OUT2, false, true)) { - break; - } - if (state.line === _line) { - ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 58) { - ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL2(ch)) { - throwError2(state, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state.tag; - keyNode = state.result; - } else if (detected) { - throwError2(state, "can not read an implicit mapping pair; a colon is missed"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } else if (detected) { - throwError2(state, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state.tag = _tag; - state.anchor = _anchor; - return true; - } - } - if (state.line === _line || state.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state.line; - _keyLineStart = state.lineStart; - _keyPos = state.position; - } - if (composeNode2(state, nodeIndent, CONTEXT_BLOCK_OUT2, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state.result; - } else { - valueNode = state.result; - } - } - if (!atExplicitKey) { - storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace2(state, true, -1); - ch = state.input.charCodeAt(state.position); - } - if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) { - throwError2(state, "bad indentation of a mapping entry"); - } else if (state.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair2(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } - if (detected) { - state.tag = _tag; - state.anchor = _anchor; - state.kind = "mapping"; - state.result = _result; - } - return detected; - } - function readTagProperty2(state) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 33) - return false; - if (state.tag !== null) { - throwError2(state, "duplication of a tag property"); - } - ch = state.input.charCodeAt(++state.position); - if (ch === 60) { - isVerbatim = true; - ch = state.input.charCodeAt(++state.position); - } else if (ch === 33) { - isNamed = true; - tagHandle = "!!"; - ch = state.input.charCodeAt(++state.position); - } else { - tagHandle = "!"; - } - _position = state.position; - if (isVerbatim) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && ch !== 62); - if (state.position < state.length) { - tagName = state.input.slice(_position, state.position); - ch = state.input.charCodeAt(++state.position); - } else { - throwError2(state, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL2(ch)) { - if (ch === 33) { - if (!isNamed) { - tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE2.test(tagHandle)) { - throwError2(state, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state.position + 1; - } else { - throwError2(state, "tag suffix cannot contain exclamation marks"); - } - } - ch = state.input.charCodeAt(++state.position); - } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS2.test(tagName)) { - throwError2(state, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI2.test(tagName)) { - throwError2(state, "tag name cannot contain such characters: " + tagName); - } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError2(state, "tag name is malformed: " + tagName); - } - if (isVerbatim) { - state.tag = tagName; - } else if (_hasOwnProperty2.call(state.tagMap, tagHandle)) { - state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError2(state, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; - } - function readAnchorProperty2(state) { - var _position, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 38) - return false; - if (state.anchor !== null) { - throwError2(state, "duplication of an anchor property"); - } - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL2(ch) && !is_FLOW_INDICATOR2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError2(state, "name of an anchor node must contain at least one character"); - } - state.anchor = state.input.slice(_position, state.position); - return true; - } - function readAlias2(state) { - var _position, alias, ch; - ch = state.input.charCodeAt(state.position); - if (ch !== 42) - return false; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL2(ch) && !is_FLOW_INDICATOR2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (state.position === _position) { - throwError2(state, "name of an alias node must contain at least one character"); - } - alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty2.call(state.anchorMap, alias)) { - throwError2(state, 'unidentified alias "' + alias + '"'); - } - state.result = state.anchorMap[alias]; - skipSeparationSpace2(state, true, -1); - return true; - } - function composeNode2(state, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; - if (state.listener !== null) { - state.listener("open", state); - } - state.tag = null; - state.anchor = null; - state.kind = null; - state.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT2 === nodeContext || CONTEXT_BLOCK_IN2 === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace2(state, true, -1)) { - atNewLine = true; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty2(state) || readAnchorProperty2(state)) { - if (skipSeparationSpace2(state, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT2 === nodeContext) { - if (CONTEXT_FLOW_IN2 === nodeContext || CONTEXT_FLOW_OUT2 === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state.position - state.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence2(state, blockIndent) || readBlockMapping2(state, blockIndent, flowIndent)) || readFlowCollection2(state, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar2(state, flowIndent) || readSingleQuotedScalar2(state, flowIndent) || readDoubleQuotedScalar2(state, flowIndent)) { - hasContent = true; - } else if (readAlias2(state)) { - hasContent = true; - if (state.tag !== null || state.anchor !== null) { - throwError2(state, "alias node should not have any properties"); - } - } else if (readPlainScalar2(state, flowIndent, CONTEXT_FLOW_IN2 === nodeContext)) { - hasContent = true; - if (state.tag === null) { - state.tag = "?"; - } - } - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence2(state, blockIndent); - } - } - if (state.tag === null) { - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } else if (state.tag === "?") { - if (state.result !== null && state.kind !== "scalar") { - throwError2(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type2 = state.implicitTypes[typeIndex]; - if (type2.resolve(state.result)) { - state.result = type2.construct(state.result); - state.tag = type2.tag; - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - break; - } - } - } else if (state.tag !== "!") { - if (_hasOwnProperty2.call(state.typeMap[state.kind || "fallback"], state.tag)) { - type2 = state.typeMap[state.kind || "fallback"][state.tag]; - } else { - type2 = null; - typeList = state.typeMap.multi[state.kind || "fallback"]; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type2 = typeList[typeIndex]; - break; - } - } - } - if (!type2) { - throwError2(state, "unknown tag !<" + state.tag + ">"); - } - if (state.result !== null && type2.kind !== state.kind) { - throwError2(state, "unacceptable node kind for !<" + state.tag + '> tag; it should be "' + type2.kind + '", not "' + state.kind + '"'); - } - if (!type2.resolve(state.result, state.tag)) { - throwError2(state, "cannot resolve a node with !<" + state.tag + "> explicit tag"); - } else { - state.result = type2.construct(state.result, state.tag); - if (state.anchor !== null) { - state.anchorMap[state.anchor] = state.result; - } - } - } - if (state.listener !== null) { - state.listener("close", state); - } - return state.tag !== null || state.anchor !== null || hasContent; - } - function readDocument2(state) { - var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; - state.version = null; - state.checkLineBreaks = state.legacy; - state.tagMap = /* @__PURE__ */ Object.create(null); - state.anchorMap = /* @__PURE__ */ Object.create(null); - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - skipSeparationSpace2(state, true, -1); - ch = state.input.charCodeAt(state.position); - if (state.lineIndent > 0 || ch !== 37) { - break; - } - hasDirectives = true; - ch = state.input.charCodeAt(++state.position); - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveName = state.input.slice(_position, state.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError2(state, "directive name must not be less than one character in length"); - } - while (ch !== 0) { - while (is_WHITE_SPACE2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - if (ch === 35) { - do { - ch = state.input.charCodeAt(++state.position); - } while (ch !== 0 && !is_EOL2(ch)); - break; - } - if (is_EOL2(ch)) - break; - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL2(ch)) { - ch = state.input.charCodeAt(++state.position); - } - directiveArgs.push(state.input.slice(_position, state.position)); - } - if (ch !== 0) - readLineBreak2(state); - if (_hasOwnProperty2.call(directiveHandlers2, directiveName)) { - directiveHandlers2[directiveName](state, directiveName, directiveArgs); - } else { - throwWarning2(state, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace2(state, true, -1); - if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) { - state.position += 3; - skipSeparationSpace2(state, true, -1); - } else if (hasDirectives) { - throwError2(state, "directives end mark is expected"); - } - composeNode2(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT2, false, true); - skipSeparationSpace2(state, true, -1); - if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS2.test(state.input.slice(documentStart, state.position))) { - throwWarning2(state, "non-ASCII line breaks are interpreted as content"); - } - state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator2(state)) { - if (state.input.charCodeAt(state.position) === 46) { - state.position += 3; - skipSeparationSpace2(state, true, -1); - } - return; - } - if (state.position < state.length - 1) { - throwError2(state, "end of the stream or a document separator is expected"); - } else { - return; - } - } - function loadDocuments2(input, options8) { - input = String(input); - options8 = options8 || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state = new State2(input, options8); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state.position = nullpos; - throwError2(state, "null byte is not allowed in input"); - } - state.input += "\0"; - while (state.input.charCodeAt(state.position) === 32) { - state.lineIndent += 1; - state.position += 1; - } - while (state.position < state.length - 1) { - readDocument2(state); - } - return state.documents; - } - function loadAll2(input, iterator, options8) { - if (iterator !== null && typeof iterator === "object" && typeof options8 === "undefined") { - options8 = iterator; - iterator = null; - } - var documents = loadDocuments2(input, options8); - if (typeof iterator !== "function") { - return documents; - } - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } - } - function load2(input, options8) { - var documents = loadDocuments2(input, options8); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new YAMLException("expected a single document in the stream, but found more"); - } - module2.exports.loadAll = loadAll2; - module2.exports.load = load2; - } -}); -var require_dumper = __commonJS2({ - "node_modules/js-yaml/lib/dumper.js"(exports, module2) { - "use strict"; - var common2 = require_common2(); - var YAMLException = require_exception(); - var DEFAULT_SCHEMA = require_default(); - var _toString2 = Object.prototype.toString; - var _hasOwnProperty2 = Object.prototype.hasOwnProperty; - var CHAR_BOM2 = 65279; - var CHAR_TAB2 = 9; - var CHAR_LINE_FEED2 = 10; - var CHAR_CARRIAGE_RETURN2 = 13; - var CHAR_SPACE2 = 32; - var CHAR_EXCLAMATION2 = 33; - var CHAR_DOUBLE_QUOTE2 = 34; - var CHAR_SHARP2 = 35; - var CHAR_PERCENT2 = 37; - var CHAR_AMPERSAND2 = 38; - var CHAR_SINGLE_QUOTE2 = 39; - var CHAR_ASTERISK2 = 42; - var CHAR_COMMA2 = 44; - var CHAR_MINUS2 = 45; - var CHAR_COLON2 = 58; - var CHAR_EQUALS2 = 61; - var CHAR_GREATER_THAN2 = 62; - var CHAR_QUESTION2 = 63; - var CHAR_COMMERCIAL_AT2 = 64; - var CHAR_LEFT_SQUARE_BRACKET2 = 91; - var CHAR_RIGHT_SQUARE_BRACKET2 = 93; - var CHAR_GRAVE_ACCENT2 = 96; - var CHAR_LEFT_CURLY_BRACKET2 = 123; - var CHAR_VERTICAL_LINE2 = 124; - var CHAR_RIGHT_CURLY_BRACKET2 = 125; - var ESCAPE_SEQUENCES2 = {}; - ESCAPE_SEQUENCES2[0] = "\\0"; - ESCAPE_SEQUENCES2[7] = "\\a"; - ESCAPE_SEQUENCES2[8] = "\\b"; - ESCAPE_SEQUENCES2[9] = "\\t"; - ESCAPE_SEQUENCES2[10] = "\\n"; - ESCAPE_SEQUENCES2[11] = "\\v"; - ESCAPE_SEQUENCES2[12] = "\\f"; - ESCAPE_SEQUENCES2[13] = "\\r"; - ESCAPE_SEQUENCES2[27] = "\\e"; - ESCAPE_SEQUENCES2[34] = '\\"'; - ESCAPE_SEQUENCES2[92] = "\\\\"; - ESCAPE_SEQUENCES2[133] = "\\N"; - ESCAPE_SEQUENCES2[160] = "\\_"; - ESCAPE_SEQUENCES2[8232] = "\\L"; - ESCAPE_SEQUENCES2[8233] = "\\P"; - var DEPRECATED_BOOLEANS_SYNTAX2 = [ - "y", - "Y", - "yes", - "Yes", - "YES", - "on", - "On", - "ON", - "n", - "N", - "no", - "No", - "NO", - "off", - "Off", - "OFF" - ]; - var DEPRECATED_BASE60_SYNTAX2 = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; - function compileStyleMap2(schema2, map2) { - var result, keys, index, length, tag, style, type2; - if (map2 === null) - return {}; - result = {}; - keys = Object.keys(map2); - for (index = 0, length = keys.length; index < length; index += 1) { - tag = keys[index]; - style = String(map2[tag]); - if (tag.slice(0, 2) === "!!") { - tag = "tag:yaml.org,2002:" + tag.slice(2); - } - type2 = schema2.compiledTypeMap["fallback"][tag]; - if (type2 && _hasOwnProperty2.call(type2.styleAliases, style)) { - style = type2.styleAliases[style]; - } - result[tag] = style; - } - return result; - } - function encodeHex2(character) { - var string, handle, length; - string = character.toString(16).toUpperCase(); - if (character <= 255) { - handle = "x"; - length = 2; - } else if (character <= 65535) { - handle = "u"; - length = 4; - } else if (character <= 4294967295) { - handle = "U"; - length = 8; - } else { - throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF"); - } - return "\\" + handle + common2.repeat("0", length - string.length) + string; - } - var QUOTING_TYPE_SINGLE2 = 1; - var QUOTING_TYPE_DOUBLE2 = 2; - function State2(options8) { - this.schema = options8["schema"] || DEFAULT_SCHEMA; - this.indent = Math.max(1, options8["indent"] || 2); - this.noArrayIndent = options8["noArrayIndent"] || false; - this.skipInvalid = options8["skipInvalid"] || false; - this.flowLevel = common2.isNothing(options8["flowLevel"]) ? -1 : options8["flowLevel"]; - this.styleMap = compileStyleMap2(this.schema, options8["styles"] || null); - this.sortKeys = options8["sortKeys"] || false; - this.lineWidth = options8["lineWidth"] || 80; - this.noRefs = options8["noRefs"] || false; - this.noCompatMode = options8["noCompatMode"] || false; - this.condenseFlow = options8["condenseFlow"] || false; - this.quotingType = options8["quotingType"] === '"' ? QUOTING_TYPE_DOUBLE2 : QUOTING_TYPE_SINGLE2; - this.forceQuotes = options8["forceQuotes"] || false; - this.replacer = typeof options8["replacer"] === "function" ? options8["replacer"] : null; - this.implicitTypes = this.schema.compiledImplicit; - this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; - this.result = ""; - this.duplicates = []; - this.usedDuplicates = null; - } - function indentString2(string, spaces) { - var ind = common2.repeat(" ", spaces), position = 0, next = -1, result = "", line3, length = string.length; - while (position < length) { - next = string.indexOf("\n", position); - if (next === -1) { - line3 = string.slice(position); - position = length; - } else { - line3 = string.slice(position, next + 1); - position = next + 1; - } - if (line3.length && line3 !== "\n") - result += ind; - result += line3; - } - return result; - } - function generateNextLine2(state, level) { - return "\n" + common2.repeat(" ", state.indent * level); - } - function testImplicitResolving2(state, str2) { - var index, length, type2; - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { - type2 = state.implicitTypes[index]; - if (type2.resolve(str2)) { - return true; - } - } - return false; - } - function isWhitespace2(c3) { - return c3 === CHAR_SPACE2 || c3 === CHAR_TAB2; - } - function isPrintable2(c3) { - return 32 <= c3 && c3 <= 126 || 161 <= c3 && c3 <= 55295 && c3 !== 8232 && c3 !== 8233 || 57344 <= c3 && c3 <= 65533 && c3 !== CHAR_BOM2 || 65536 <= c3 && c3 <= 1114111; - } - function isNsCharOrWhitespace2(c3) { - return isPrintable2(c3) && c3 !== CHAR_BOM2 && c3 !== CHAR_CARRIAGE_RETURN2 && c3 !== CHAR_LINE_FEED2; - } - function isPlainSafe2(c3, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace2(c3); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace2(c3); - return ( - // ns-plain-safe - (inblock ? ( - // c = flow-in - cIsNsCharOrWhitespace - ) : cIsNsCharOrWhitespace && c3 !== CHAR_COMMA2 && c3 !== CHAR_LEFT_SQUARE_BRACKET2 && c3 !== CHAR_RIGHT_SQUARE_BRACKET2 && c3 !== CHAR_LEFT_CURLY_BRACKET2 && c3 !== CHAR_RIGHT_CURLY_BRACKET2) && c3 !== CHAR_SHARP2 && !(prev === CHAR_COLON2 && !cIsNsChar) || isNsCharOrWhitespace2(prev) && !isWhitespace2(prev) && c3 === CHAR_SHARP2 || prev === CHAR_COLON2 && cIsNsChar - ); - } - function isPlainSafeFirst2(c3) { - return isPrintable2(c3) && c3 !== CHAR_BOM2 && !isWhitespace2(c3) && c3 !== CHAR_MINUS2 && c3 !== CHAR_QUESTION2 && c3 !== CHAR_COLON2 && c3 !== CHAR_COMMA2 && c3 !== CHAR_LEFT_SQUARE_BRACKET2 && c3 !== CHAR_RIGHT_SQUARE_BRACKET2 && c3 !== CHAR_LEFT_CURLY_BRACKET2 && c3 !== CHAR_RIGHT_CURLY_BRACKET2 && c3 !== CHAR_SHARP2 && c3 !== CHAR_AMPERSAND2 && c3 !== CHAR_ASTERISK2 && c3 !== CHAR_EXCLAMATION2 && c3 !== CHAR_VERTICAL_LINE2 && c3 !== CHAR_EQUALS2 && c3 !== CHAR_GREATER_THAN2 && c3 !== CHAR_SINGLE_QUOTE2 && c3 !== CHAR_DOUBLE_QUOTE2 && c3 !== CHAR_PERCENT2 && c3 !== CHAR_COMMERCIAL_AT2 && c3 !== CHAR_GRAVE_ACCENT2; - } - function isPlainSafeLast2(c3) { - return !isWhitespace2(c3) && c3 !== CHAR_COLON2; - } - function codePointAt2(string, pos) { - var first = string.charCodeAt(pos), second; - if (first >= 55296 && first <= 56319 && pos + 1 < string.length) { - second = string.charCodeAt(pos + 1); - if (second >= 56320 && second <= 57343) { - return (first - 55296) * 1024 + second - 56320 + 65536; - } - } - return first; - } - function needIndentIndicator2(string) { - var leadingSpaceRe = /^\n* /; - return leadingSpaceRe.test(string); - } - var STYLE_PLAIN2 = 1; - var STYLE_SINGLE2 = 2; - var STYLE_LITERAL2 = 3; - var STYLE_FOLDED2 = 4; - var STYLE_DOUBLE2 = 5; - function chooseScalarStyle2(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { - var i; - var char = 0; - var prevChar = null; - var hasLineBreak = false; - var hasFoldableLine = false; - var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; - var plain = isPlainSafeFirst2(codePointAt2(string, 0)) && isPlainSafeLast2(codePointAt2(string, string.length - 1)); - if (singleLineOnly || forceQuotes) { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt2(string, i); - if (!isPrintable2(char)) { - return STYLE_DOUBLE2; - } - plain = plain && isPlainSafe2(char, prevChar, inblock); - prevChar = char; - } - } else { - for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt2(string, i); - if (char === CHAR_LINE_FEED2) { - hasLineBreak = true; - if (shouldTrackWidth) { - hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented. - i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "; - previousLineBreak = i; - } - } else if (!isPrintable2(char)) { - return STYLE_DOUBLE2; - } - plain = plain && isPlainSafe2(char, prevChar, inblock); - prevChar = char; - } - hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== " "); - } - if (!hasLineBreak && !hasFoldableLine) { - if (plain && !forceQuotes && !testAmbiguousType(string)) { - return STYLE_PLAIN2; - } - return quotingType === QUOTING_TYPE_DOUBLE2 ? STYLE_DOUBLE2 : STYLE_SINGLE2; - } - if (indentPerLevel > 9 && needIndentIndicator2(string)) { - return STYLE_DOUBLE2; - } - if (!forceQuotes) { - return hasFoldableLine ? STYLE_FOLDED2 : STYLE_LITERAL2; - } - return quotingType === QUOTING_TYPE_DOUBLE2 ? STYLE_DOUBLE2 : STYLE_SINGLE2; - } - function writeScalar2(state, string, level, iskey, inblock) { - state.dump = function() { - if (string.length === 0) { - return state.quotingType === QUOTING_TYPE_DOUBLE2 ? '""' : "''"; - } - if (!state.noCompatMode) { - if (DEPRECATED_BOOLEANS_SYNTAX2.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX2.test(string)) { - return state.quotingType === QUOTING_TYPE_DOUBLE2 ? '"' + string + '"' : "'" + string + "'"; - } - } - var indent3 = state.indent * Math.max(1, level); - var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent3); - var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel; - function testAmbiguity(string2) { - return testImplicitResolving2(state, string2); - } - switch (chooseScalarStyle2( - string, - singleLineOnly, - state.indent, - lineWidth, - testAmbiguity, - state.quotingType, - state.forceQuotes && !iskey, - inblock - )) { - case STYLE_PLAIN2: - return string; - case STYLE_SINGLE2: - return "'" + string.replace(/'/g, "''") + "'"; - case STYLE_LITERAL2: - return "|" + blockHeader2(string, state.indent) + dropEndingNewline2(indentString2(string, indent3)); - case STYLE_FOLDED2: - return ">" + blockHeader2(string, state.indent) + dropEndingNewline2(indentString2(foldString2(string, lineWidth), indent3)); - case STYLE_DOUBLE2: - return '"' + escapeString2(string, lineWidth) + '"'; - default: - throw new YAMLException("impossible error: invalid scalar style"); - } - }(); - } - function blockHeader2(string, indentPerLevel) { - var indentIndicator = needIndentIndicator2(string) ? String(indentPerLevel) : ""; - var clip = string[string.length - 1] === "\n"; - var keep = clip && (string[string.length - 2] === "\n" || string === "\n"); - var chomp = keep ? "+" : clip ? "" : "-"; - return indentIndicator + chomp + "\n"; - } - function dropEndingNewline2(string) { - return string[string.length - 1] === "\n" ? string.slice(0, -1) : string; - } - function foldString2(string, width) { - var lineRe = /(\n+)([^\n]*)/g; - var result = function() { - var nextLF = string.indexOf("\n"); - nextLF = nextLF !== -1 ? nextLF : string.length; - lineRe.lastIndex = nextLF; - return foldLine2(string.slice(0, nextLF), width); - }(); - var prevMoreIndented = string[0] === "\n" || string[0] === " "; - var moreIndented; - var match; - while (match = lineRe.exec(string)) { - var prefix = match[1], line3 = match[2]; - moreIndented = line3[0] === " "; - result += prefix + (!prevMoreIndented && !moreIndented && line3 !== "" ? "\n" : "") + foldLine2(line3, width); - prevMoreIndented = moreIndented; - } - return result; - } - function foldLine2(line3, width) { - if (line3 === "" || line3[0] === " ") - return line3; - var breakRe = / [^ ]/g; - var match; - var start = 0, end, curr = 0, next = 0; - var result = ""; - while (match = breakRe.exec(line3)) { - next = match.index; - if (next - start > width) { - end = curr > start ? curr : next; - result += "\n" + line3.slice(start, end); - start = end + 1; - } - curr = next; - } - result += "\n"; - if (line3.length - start > width && curr > start) { - result += line3.slice(start, curr) + "\n" + line3.slice(curr + 1); - } else { - result += line3.slice(start); - } - return result.slice(1); - } - function escapeString2(string) { - var result = ""; - var char = 0; - var escapeSeq; - for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) { - char = codePointAt2(string, i); - escapeSeq = ESCAPE_SEQUENCES2[char]; - if (!escapeSeq && isPrintable2(char)) { - result += string[i]; - if (char >= 65536) - result += string[i + 1]; - } else { - result += escapeSeq || encodeHex2(char); - } - } - return result; - } - function writeFlowSequence2(state, level, object) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode2(state, level, value, false, false) || typeof value === "undefined" && writeNode2(state, level, null, false, false)) { - if (_result !== "") - _result += "," + (!state.condenseFlow ? " " : ""); - _result += state.dump; - } - } - state.tag = _tag; - state.dump = "[" + _result + "]"; - } - function writeBlockSequence2(state, level, object, compact) { - var _result = "", _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { - value = object[index]; - if (state.replacer) { - value = state.replacer.call(object, String(index), value); - } - if (writeNode2(state, level + 1, value, true, true, false, true) || typeof value === "undefined" && writeNode2(state, level + 1, null, true, true, false, true)) { - if (!compact || _result !== "") { - _result += generateNextLine2(state, level); - } - if (state.dump && CHAR_LINE_FEED2 === state.dump.charCodeAt(0)) { - _result += "-"; - } else { - _result += "- "; - } - _result += state.dump; - } - } - state.tag = _tag; - state.dump = _result || "[]"; - } - function writeFlowMapping2(state, level, object) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer; - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (_result !== "") - pairBuffer += ", "; - if (state.condenseFlow) - pairBuffer += '"'; - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode2(state, level, objectKey, false, false)) { - continue; - } - if (state.dump.length > 1024) - pairBuffer += "? "; - pairBuffer += state.dump + (state.condenseFlow ? '"' : "") + ":" + (state.condenseFlow ? "" : " "); - if (!writeNode2(state, level, objectValue, false, false)) { - continue; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = "{" + _result + "}"; - } - function writeBlockMapping2(state, level, object, compact) { - var _result = "", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer; - if (state.sortKeys === true) { - objectKeyList.sort(); - } else if (typeof state.sortKeys === "function") { - objectKeyList.sort(state.sortKeys); - } else if (state.sortKeys) { - throw new YAMLException("sortKeys must be a boolean or a function"); - } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ""; - if (!compact || _result !== "") { - pairBuffer += generateNextLine2(state, level); - } - objectKey = objectKeyList[index]; - objectValue = object[objectKey]; - if (state.replacer) { - objectValue = state.replacer.call(object, objectKey, objectValue); - } - if (!writeNode2(state, level + 1, objectKey, true, true, true)) { - continue; - } - explicitPair = state.tag !== null && state.tag !== "?" || state.dump && state.dump.length > 1024; - if (explicitPair) { - if (state.dump && CHAR_LINE_FEED2 === state.dump.charCodeAt(0)) { - pairBuffer += "?"; - } else { - pairBuffer += "? "; - } - } - pairBuffer += state.dump; - if (explicitPair) { - pairBuffer += generateNextLine2(state, level); - } - if (!writeNode2(state, level + 1, objectValue, true, explicitPair)) { - continue; - } - if (state.dump && CHAR_LINE_FEED2 === state.dump.charCodeAt(0)) { - pairBuffer += ":"; - } else { - pairBuffer += ": "; - } - pairBuffer += state.dump; - _result += pairBuffer; - } - state.tag = _tag; - state.dump = _result || "{}"; - } - function detectType2(state, object, explicit) { - var _result, typeList, index, length, type2, style; - typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (index = 0, length = typeList.length; index < length; index += 1) { - type2 = typeList[index]; - if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === "object" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) { - if (explicit) { - if (type2.multi && type2.representName) { - state.tag = type2.representName(object); - } else { - state.tag = type2.tag; - } - } else { - state.tag = "?"; - } - if (type2.represent) { - style = state.styleMap[type2.tag] || type2.defaultStyle; - if (_toString2.call(type2.represent) === "[object Function]") { - _result = type2.represent(object, style); - } else if (_hasOwnProperty2.call(type2.represent, style)) { - _result = type2.represent[style](object, style); - } else { - throw new YAMLException("!<" + type2.tag + '> tag resolver accepts not "' + style + '" style'); - } - state.dump = _result; - } - return true; - } - } - return false; - } - function writeNode2(state, level, object, block, compact, iskey, isblockseq) { - state.tag = null; - state.dump = object; - if (!detectType2(state, object, false)) { - detectType2(state, object, true); - } - var type2 = _toString2.call(state.dump); - var inblock = block; - var tagStr; - if (block) { - block = state.flowLevel < 0 || state.flowLevel > level; - } - var objectOrArray = type2 === "[object Object]" || type2 === "[object Array]", duplicateIndex, duplicate; - if (objectOrArray) { - duplicateIndex = state.duplicates.indexOf(object); - duplicate = duplicateIndex !== -1; - } - if (state.tag !== null && state.tag !== "?" || duplicate || state.indent !== 2 && level > 0) { - compact = false; - } - if (duplicate && state.usedDuplicates[duplicateIndex]) { - state.dump = "*ref_" + duplicateIndex; - } else { - if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { - state.usedDuplicates[duplicateIndex] = true; - } - if (type2 === "[object Object]") { - if (block && Object.keys(state.dump).length !== 0) { - writeBlockMapping2(state, level, state.dump, compact); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowMapping2(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object Array]") { - if (block && state.dump.length !== 0) { - if (state.noArrayIndent && !isblockseq && level > 0) { - writeBlockSequence2(state, level - 1, state.dump, compact); - } else { - writeBlockSequence2(state, level, state.dump, compact); - } - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + state.dump; - } - } else { - writeFlowSequence2(state, level, state.dump); - if (duplicate) { - state.dump = "&ref_" + duplicateIndex + " " + state.dump; - } - } - } else if (type2 === "[object String]") { - if (state.tag !== "?") { - writeScalar2(state, state.dump, level, iskey, inblock); - } - } else if (type2 === "[object Undefined]") { - return false; - } else { - if (state.skipInvalid) - return false; - throw new YAMLException("unacceptable kind of an object to dump " + type2); - } - if (state.tag !== null && state.tag !== "?") { - tagStr = encodeURI( - state.tag[0] === "!" ? state.tag.slice(1) : state.tag - ).replace(/!/g, "%21"); - if (state.tag[0] === "!") { - tagStr = "!" + tagStr; - } else if (tagStr.slice(0, 18) === "tag:yaml.org,2002:") { - tagStr = "!!" + tagStr.slice(18); - } else { - tagStr = "!<" + tagStr + ">"; - } - state.dump = tagStr + " " + state.dump; - } - } - return true; - } - function getDuplicateReferences2(object, state) { - var objects = [], duplicatesIndexes = [], index, length; - inspectNode2(object, objects, duplicatesIndexes); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { - state.duplicates.push(objects[duplicatesIndexes[index]]); - } - state.usedDuplicates = new Array(length); - } - function inspectNode2(object, objects, duplicatesIndexes) { - var objectKeyList, index, length; - if (object !== null && typeof object === "object") { - index = objects.indexOf(object); - if (index !== -1) { - if (duplicatesIndexes.indexOf(index) === -1) { - duplicatesIndexes.push(index); - } - } else { - objects.push(object); - if (Array.isArray(object)) { - for (index = 0, length = object.length; index < length; index += 1) { - inspectNode2(object[index], objects, duplicatesIndexes); - } - } else { - objectKeyList = Object.keys(object); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - inspectNode2(object[objectKeyList[index]], objects, duplicatesIndexes); - } - } - } - } - } - function dump2(input, options8) { - options8 = options8 || {}; - var state = new State2(options8); - if (!state.noRefs) - getDuplicateReferences2(input, state); - var value = input; - if (state.replacer) { - value = state.replacer.call({ "": value }, "", value); - } - if (writeNode2(state, 0, value, true, true)) - return state.dump + "\n"; - return ""; - } - module2.exports.dump = dump2; - } -}); -var require_js_yaml = __commonJS2({ - "node_modules/js-yaml/index.js"(exports, module2) { - "use strict"; - var loader2 = require_loader(); - var dumper2 = require_dumper(); - function renamed2(from, to3) { - return function() { - throw new Error("Function yaml." + from + " is removed in js-yaml 4. Use yaml." + to3 + " instead, which is now safe by default."); - }; - } - module2.exports.Type = require_type(); - module2.exports.Schema = require_schema(); - module2.exports.FAILSAFE_SCHEMA = require_failsafe(); - module2.exports.JSON_SCHEMA = require_json(); - module2.exports.CORE_SCHEMA = require_core2(); - module2.exports.DEFAULT_SCHEMA = require_default(); - module2.exports.load = loader2.load; - module2.exports.loadAll = loader2.loadAll; - module2.exports.dump = dumper2.dump; - module2.exports.YAMLException = require_exception(); - module2.exports.types = { - binary: require_binary(), - float: require_float(), - map: require_map(), - null: require_null(), - pairs: require_pairs(), - set: require_set(), - timestamp: require_timestamp(), - bool: require_bool(), - int: require_int(), - merge: require_merge(), - omap: require_omap(), - seq: require_seq(), - str: require_str() - }; - module2.exports.safeLoad = renamed2("safeLoad", "load"); - module2.exports.safeLoadAll = renamed2("safeLoadAll", "loadAll"); - module2.exports.safeDump = renamed2("safeDump", "dump"); - } -}); -var require_loaders = __commonJS2({ - "node_modules/cosmiconfig/dist/loaders.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.loaders = void 0; - var _url = __require("url"); - var importFresh; - var loadJsSync = function loadJsSync2(filepath) { - if (importFresh === void 0) { - importFresh = require_import_fresh(); - } - const result = importFresh(filepath); - return result; - }; - var loadJs = async function loadJs2(filepath) { - try { - const { - href - } = (0, _url.pathToFileURL)(filepath); - return (await import(href)).default; - } catch (error2) { - return loadJsSync(filepath, ""); - } - }; - var parseJson; - var loadJson = function loadJson2(filepath, content) { - if (parseJson === void 0) { - parseJson = require_parse_json(); - } - try { - const result = parseJson(content); - return result; - } catch (error2) { - error2.message = `JSON Error in ${filepath}: -${error2.message}`; - throw error2; - } - }; - var yaml; - var loadYaml = function loadYaml2(filepath, content) { - if (yaml === void 0) { - yaml = require_js_yaml(); - } - try { - const result = yaml.load(content); - return result; - } catch (error2) { - error2.message = `YAML Error in ${filepath}: -${error2.message}`; - throw error2; - } - }; - var loaders2 = { - loadJs, - loadJsSync, - loadJson, - loadYaml - }; - exports.loaders = loaders2; - } -}); -var require_ExplorerBase = __commonJS2({ - "node_modules/cosmiconfig/dist/ExplorerBase.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.ExplorerBase = void 0; - exports.getExtensionDescription = getExtensionDescription; - var _path = _interopRequireDefault(__require("path")); - var _getPropertyByPath = require_getPropertyByPath(); - var _loaders = require_loaders(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var ExplorerBase = class { - constructor(options8) { - if (options8.cache) { - this.loadCache = /* @__PURE__ */ new Map(); - this.searchCache = /* @__PURE__ */ new Map(); - } - this.config = options8; - this.validateConfig(); - } - clearLoadCache() { - if (this.loadCache) { - this.loadCache.clear(); - } - } - clearSearchCache() { - if (this.searchCache) { - this.searchCache.clear(); - } - } - clearCaches() { - this.clearLoadCache(); - this.clearSearchCache(); - } - validateConfig() { - const config = this.config; - config.searchPlaces.forEach((place) => { - const loaderKey = _path.default.extname(place) || "noExt"; - const loader2 = config.loaders[loaderKey]; - if (!loader2) { - throw new Error(`No loader specified for ${getExtensionDescription(place)}, so searchPlaces item "${place}" is invalid`); - } - if (typeof loader2 !== "function") { - throw new Error(`loader for ${getExtensionDescription(place)} is not a function (type provided: "${typeof loader2}"), so searchPlaces item "${place}" is invalid`); - } - }); - } - shouldSearchStopWithResult(result) { - if (result === null) - return false; - return !(result.isEmpty && this.config.ignoreEmptySearchPlaces); - } - nextDirectoryToSearch(currentDir, currentResult) { - if (this.shouldSearchStopWithResult(currentResult)) { - return null; - } - const nextDir = nextDirUp(currentDir); - if (nextDir === currentDir || currentDir === this.config.stopDir) { - return null; - } - return nextDir; - } - loadPackageProp(filepath, content) { - const parsedContent = _loaders.loaders.loadJson(filepath, content); - const packagePropValue = (0, _getPropertyByPath.getPropertyByPath)(parsedContent, this.config.packageProp); - return packagePropValue || null; - } - getLoaderEntryForFile(filepath) { - if (_path.default.basename(filepath) === "package.json") { - return this.loadPackageProp.bind(this); - } - const loaderKey = _path.default.extname(filepath) || "noExt"; - const loader2 = this.config.loaders[loaderKey]; - if (!loader2) { - throw new Error(`No loader specified for ${getExtensionDescription(filepath)}`); - } - return loader2; - } - loadedContentToCosmiconfigResult(filepath, loadedContent, forceProp) { - if (loadedContent === null) { - return null; - } - if (loadedContent === void 0) { - return { - filepath, - config: void 0, - isEmpty: true - }; - } - if (this.config.usePackagePropInConfigFiles || forceProp) { - loadedContent = (0, _getPropertyByPath.getPropertyByPath)(loadedContent, this.config.packageProp); - } - if (loadedContent === void 0) { - return { - filepath, - config: void 0, - isEmpty: true - }; - } - return { - config: loadedContent, - filepath - }; - } - validateFilePath(filepath) { - if (!filepath) { - throw new Error("load must pass a non-empty string"); - } - } - }; - exports.ExplorerBase = ExplorerBase; - function nextDirUp(dir) { - return _path.default.dirname(dir); - } - function getExtensionDescription(filepath) { - const ext = _path.default.extname(filepath); - return ext ? `extension "${ext}"` : "files without extensions"; - } - } -}); -var require_path_type = __commonJS2({ - "node_modules/path-type/index.js"(exports) { - "use strict"; - var { promisify } = __require("util"); - var fs23 = __require("fs"); - async function isType(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== "string") { - throw new TypeError(`Expected a string, got ${typeof filePath}`); - } - try { - const stats = await promisify(fs23[fsStatType])(filePath); - return stats[statsMethodName](); - } catch (error2) { - if (error2.code === "ENOENT") { - return false; - } - throw error2; - } - } - function isTypeSync(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== "string") { - throw new TypeError(`Expected a string, got ${typeof filePath}`); - } - try { - return fs23[fsStatType](filePath)[statsMethodName](); - } catch (error2) { - if (error2.code === "ENOENT") { - return false; - } - throw error2; - } - } - exports.isFile = isType.bind(null, "stat", "isFile"); - exports.isDirectory = isType.bind(null, "stat", "isDirectory"); - exports.isSymlink = isType.bind(null, "lstat", "isSymbolicLink"); - exports.isFileSync = isTypeSync.bind(null, "statSync", "isFile"); - exports.isDirectorySync = isTypeSync.bind(null, "statSync", "isDirectory"); - exports.isSymlinkSync = isTypeSync.bind(null, "lstatSync", "isSymbolicLink"); - } -}); -var require_getDirectory = __commonJS2({ - "node_modules/cosmiconfig/dist/getDirectory.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.getDirectory = getDirectory; - exports.getDirectorySync = getDirectorySync; - var _path = _interopRequireDefault(__require("path")); - var _pathType = require_path_type(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - async function getDirectory(filepath) { - const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath); - if (filePathIsDirectory === true) { - return filepath; - } - const directory = _path.default.dirname(filepath); - return directory; - } - function getDirectorySync(filepath) { - const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath); - if (filePathIsDirectory === true) { - return filepath; - } - const directory = _path.default.dirname(filepath); - return directory; - } - } -}); -var require_readFile = __commonJS2({ - "node_modules/cosmiconfig/dist/readFile.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.readFile = readFile2; - exports.readFileSync = readFileSync5; - var _fs = _interopRequireDefault(__require("fs")); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - async function fsReadFileAsync(pathname, encoding) { - return new Promise((resolve2, reject) => { - _fs.default.readFile(pathname, encoding, (error2, contents) => { - if (error2) { - reject(error2); - return; - } - resolve2(contents); - }); - }); - } - async function readFile2(filepath, options8 = {}) { - const throwNotFound = options8.throwNotFound === true; - try { - const content = await fsReadFileAsync(filepath, "utf8"); - return content; - } catch (error2) { - if (throwNotFound === false && (error2.code === "ENOENT" || error2.code === "EISDIR")) { - return null; - } - throw error2; - } - } - function readFileSync5(filepath, options8 = {}) { - const throwNotFound = options8.throwNotFound === true; - try { - const content = _fs.default.readFileSync(filepath, "utf8"); - return content; - } catch (error2) { - if (throwNotFound === false && (error2.code === "ENOENT" || error2.code === "EISDIR")) { - return null; - } - throw error2; - } - } - } -}); -var require_Explorer = __commonJS2({ - "node_modules/cosmiconfig/dist/Explorer.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Explorer = void 0; - var _path = _interopRequireDefault(__require("path")); - var _cacheWrapper = require_cacheWrapper(); - var _ExplorerBase = require_ExplorerBase(); - var _getDirectory = require_getDirectory(); - var _readFile = require_readFile(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var Explorer = class extends _ExplorerBase.ExplorerBase { - constructor(options8) { - super(options8); - } - async search(searchFrom = process.cwd()) { - if (this.config.metaConfigFilePath) { - const config = await this._loadFile(this.config.metaConfigFilePath, true); - if (config && !config.isEmpty) { - return config; - } - } - return await this.searchFromDirectory(await (0, _getDirectory.getDirectory)(searchFrom)); - } - async searchFromDirectory(dir) { - const absoluteDir = _path.default.resolve(process.cwd(), dir); - const run = async () => { - const result = await this.searchDirectory(absoluteDir); - const nextDir = this.nextDirectoryToSearch(absoluteDir, result); - if (nextDir) { - return this.searchFromDirectory(nextDir); - } - return await this.config.transform(result); - }; - if (this.searchCache) { - return (0, _cacheWrapper.cacheWrapper)(this.searchCache, absoluteDir, run); - } - return run(); - } - async searchDirectory(dir) { - for await (const place of this.config.searchPlaces) { - const placeResult = await this.loadSearchPlace(dir, place); - if (this.shouldSearchStopWithResult(placeResult)) { - return placeResult; - } - } - return null; - } - async loadSearchPlace(dir, place) { - const filepath = _path.default.join(dir, place); - const fileContents = await (0, _readFile.readFile)(filepath); - return await this.createCosmiconfigResult(filepath, fileContents, false); - } - async loadFileContent(filepath, content) { - if (content === null) { - return null; - } - if (content.trim() === "") { - return void 0; - } - const loader2 = this.getLoaderEntryForFile(filepath); - try { - return await loader2(filepath, content); - } catch (e3) { - e3.filepath = filepath; - throw e3; - } - } - async createCosmiconfigResult(filepath, content, forceProp) { - const fileContent = await this.loadFileContent(filepath, content); - return this.loadedContentToCosmiconfigResult(filepath, fileContent, forceProp); - } - async load(filepath) { - return this._loadFile(filepath, false); - } - async _loadFile(filepath, forceProp) { - this.validateFilePath(filepath); - const absoluteFilePath = _path.default.resolve(process.cwd(), filepath); - const runLoad = async () => { - const fileContents = await (0, _readFile.readFile)(absoluteFilePath, { - throwNotFound: true - }); - const result = await this.createCosmiconfigResult(absoluteFilePath, fileContents, forceProp); - return await this.config.transform(result); - }; - if (this.loadCache) { - return (0, _cacheWrapper.cacheWrapper)(this.loadCache, absoluteFilePath, runLoad); - } - return runLoad(); - } - }; - exports.Explorer = Explorer; - } -}); -var require_ExplorerSync = __commonJS2({ - "node_modules/cosmiconfig/dist/ExplorerSync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.ExplorerSync = void 0; - var _path = _interopRequireDefault(__require("path")); - var _cacheWrapper = require_cacheWrapper(); - var _ExplorerBase = require_ExplorerBase(); - var _getDirectory = require_getDirectory(); - var _readFile = require_readFile(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var ExplorerSync = class extends _ExplorerBase.ExplorerBase { - constructor(options8) { - super(options8); - } - searchSync(searchFrom = process.cwd()) { - if (this.config.metaConfigFilePath) { - const config = this._loadFileSync(this.config.metaConfigFilePath, true); - if (config && !config.isEmpty) { - return config; - } - } - return this.searchFromDirectorySync((0, _getDirectory.getDirectorySync)(searchFrom)); - } - searchFromDirectorySync(dir) { - const absoluteDir = _path.default.resolve(process.cwd(), dir); - const run = () => { - const result = this.searchDirectorySync(absoluteDir); - const nextDir = this.nextDirectoryToSearch(absoluteDir, result); - if (nextDir) { - return this.searchFromDirectorySync(nextDir); - } - return this.config.transform(result); - }; - if (this.searchCache) { - return (0, _cacheWrapper.cacheWrapperSync)(this.searchCache, absoluteDir, run); - } - return run(); - } - searchDirectorySync(dir) { - for (const place of this.config.searchPlaces) { - const placeResult = this.loadSearchPlaceSync(dir, place); - if (this.shouldSearchStopWithResult(placeResult)) { - return placeResult; - } - } - return null; - } - loadSearchPlaceSync(dir, place) { - const filepath = _path.default.join(dir, place); - const content = (0, _readFile.readFileSync)(filepath); - return this.createCosmiconfigResultSync(filepath, content, false); - } - loadFileContentSync(filepath, content) { - if (content === null) { - return null; - } - if (content.trim() === "") { - return void 0; - } - const loader2 = this.getLoaderEntryForFile(filepath); - try { - return loader2(filepath, content); - } catch (e3) { - e3.filepath = filepath; - throw e3; - } - } - createCosmiconfigResultSync(filepath, content, forceProp) { - const fileContent = this.loadFileContentSync(filepath, content); - return this.loadedContentToCosmiconfigResult(filepath, fileContent, forceProp); - } - loadSync(filepath) { - return this._loadFileSync(filepath, false); - } - _loadFileSync(filepath, forceProp) { - this.validateFilePath(filepath); - const absoluteFilePath = _path.default.resolve(process.cwd(), filepath); - const runLoadSync = () => { - const content = (0, _readFile.readFileSync)(absoluteFilePath, { - throwNotFound: true - }); - const cosmiconfigResult = this.createCosmiconfigResultSync(absoluteFilePath, content, forceProp); - return this.config.transform(cosmiconfigResult); - }; - if (this.loadCache) { - return (0, _cacheWrapper.cacheWrapperSync)(this.loadCache, absoluteFilePath, runLoadSync); - } - return runLoadSync(); - } - }; - exports.ExplorerSync = ExplorerSync; - } -}); -var require_types = __commonJS2({ - "node_modules/cosmiconfig/dist/types.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - } -}); -var require_dist2 = __commonJS2({ - "node_modules/cosmiconfig/dist/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.cosmiconfig = cosmiconfig2; - exports.cosmiconfigSync = cosmiconfigSync; - exports.metaSearchPlaces = exports.defaultLoadersSync = exports.defaultLoaders = void 0; - var _os = _interopRequireDefault(__require("os")); - var _Explorer = require_Explorer(); - var _ExplorerSync = require_ExplorerSync(); - var _loaders = require_loaders(); - var _types = require_types(); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { default: obj }; - } - var metaSearchPlaces = ["package.json", ".config.json", ".config.yaml", ".config.yml", ".config.js", ".config.cjs", ".config.mjs"]; - exports.metaSearchPlaces = metaSearchPlaces; - var defaultLoaders = Object.freeze({ - ".mjs": _loaders.loaders.loadJs, - ".cjs": _loaders.loaders.loadJs, - ".js": _loaders.loaders.loadJs, - ".json": _loaders.loaders.loadJson, - ".yaml": _loaders.loaders.loadYaml, - ".yml": _loaders.loaders.loadYaml, - noExt: _loaders.loaders.loadYaml - }); - exports.defaultLoaders = defaultLoaders; - var defaultLoadersSync = Object.freeze({ - ".cjs": _loaders.loaders.loadJsSync, - ".js": _loaders.loaders.loadJsSync, - ".json": _loaders.loaders.loadJson, - ".yaml": _loaders.loaders.loadYaml, - ".yml": _loaders.loaders.loadYaml, - noExt: _loaders.loaders.loadYaml - }); - exports.defaultLoadersSync = defaultLoadersSync; - var identity = function identity2(x7) { - return x7; - }; - function replaceMetaPlaceholders(paths, moduleName) { - return paths.map((path9) => path9.replace("{name}", moduleName)); - } - function getExplorerOptions(moduleName, options8) { - var _metaConfig$config; - const metaExplorer = new _ExplorerSync.ExplorerSync({ - packageProp: "cosmiconfig", - stopDir: process.cwd(), - searchPlaces: metaSearchPlaces, - ignoreEmptySearchPlaces: false, - usePackagePropInConfigFiles: true, - loaders: defaultLoaders, - transform: identity, - cache: true, - metaConfigFilePath: null - }); - const metaConfig = metaExplorer.searchSync(); - if (!metaConfig) { - return options8; - } - if ((_metaConfig$config = metaConfig.config) !== null && _metaConfig$config !== void 0 && _metaConfig$config.loaders) { - throw new Error("Can not specify loaders in meta config file"); - } - const overrideOptions = metaConfig.config ?? {}; - if (overrideOptions.searchPlaces) { - overrideOptions.searchPlaces = replaceMetaPlaceholders(overrideOptions.searchPlaces, moduleName); - } - overrideOptions.metaConfigFilePath = metaConfig.filepath; - return { - ...options8, - ...overrideOptions - }; - } - function cosmiconfig2(moduleName, options8 = {}) { - const explorerOptions = getExplorerOptions(moduleName, options8); - const normalizedOptions = normalizeOptions2(moduleName, explorerOptions); - const explorer = new _Explorer.Explorer(normalizedOptions); - return { - search: explorer.search.bind(explorer), - load: explorer.load.bind(explorer), - clearLoadCache: explorer.clearLoadCache.bind(explorer), - clearSearchCache: explorer.clearSearchCache.bind(explorer), - clearCaches: explorer.clearCaches.bind(explorer) - }; - } - function cosmiconfigSync(moduleName, options8 = {}) { - const explorerOptions = getExplorerOptions(moduleName, options8); - const normalizedOptions = normalizeOptionsSync(moduleName, explorerOptions); - const explorerSync = new _ExplorerSync.ExplorerSync(normalizedOptions); - return { - search: explorerSync.searchSync.bind(explorerSync), - load: explorerSync.loadSync.bind(explorerSync), - clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync), - clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync), - clearCaches: explorerSync.clearCaches.bind(explorerSync) - }; - } - function normalizeOptions2(moduleName, options8) { - const defaults = { - packageProp: moduleName, - searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `.${moduleName}rc.mjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `.config/${moduleName}rc.mjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`, `${moduleName}.config.mjs`].filter(Boolean), - ignoreEmptySearchPlaces: true, - stopDir: _os.default.homedir(), - cache: true, - transform: identity, - loaders: defaultLoaders, - metaConfigFilePath: null - }; - const normalizedOptions = { - ...defaults, - ...options8, - loaders: { - ...defaults.loaders, - ...options8.loaders - } - }; - return normalizedOptions; - } - function normalizeOptionsSync(moduleName, options8) { - const defaults = { - packageProp: moduleName, - searchPlaces: ["package.json", `.${moduleName}rc`, `.${moduleName}rc.json`, `.${moduleName}rc.yaml`, `.${moduleName}rc.yml`, `.${moduleName}rc.js`, `.${moduleName}rc.cjs`, `.config/${moduleName}rc`, `.config/${moduleName}rc.json`, `.config/${moduleName}rc.yaml`, `.config/${moduleName}rc.yml`, `.config/${moduleName}rc.js`, `.config/${moduleName}rc.cjs`, `${moduleName}.config.js`, `${moduleName}.config.cjs`], - ignoreEmptySearchPlaces: true, - stopDir: _os.default.homedir(), - cache: true, - transform: identity, - loaders: defaultLoadersSync, - metaConfigFilePath: null - }; - const normalizedOptions = { - ...defaults, - ...options8, - loaders: { - ...defaults.loaders, - ...options8.loaders - } - }; - return normalizedOptions; - } - } -}); -var require_find_parent_dir = __commonJS2({ - "node_modules/find-parent-dir/index.js"(exports, module2) { - "use strict"; - var path9 = __require("path"); - var fs23 = __require("fs"); - var exists = fs23.exists || path9.exists; - var existsSync = fs23.existsSync || path9.existsSync; - function splitPath(path22) { - var parts = path22.split(/(\/|\\)/); - if (!parts.length) - return parts; - return !parts[0].length ? parts.slice(1) : parts; - } - exports = module2.exports = function(currentFullPath, clue, cb) { - function testDir(parts) { - if (parts.length === 0) - return cb(null, null); - var p4 = parts.join(""); - exists(path9.join(p4, clue), function(itdoes) { - if (itdoes) - return cb(null, p4); - testDir(parts.slice(0, -1)); - }); - } - testDir(splitPath(currentFullPath)); - }; - exports.sync = function(currentFullPath, clue) { - function testDir(parts) { - if (parts.length === 0) - return null; - var p4 = parts.join(""); - var itdoes = existsSync(path9.join(p4, clue)); - return itdoes ? p4 : testDir(parts.slice(0, -1)); - } - return testDir(splitPath(currentFullPath)); - }; - } -}); -var require_vendors = __commonJS2({ - "node_modules/ci-info/vendors.json"(exports, module2) { - module2.exports = [ - { - name: "Appcircle", - constant: "APPCIRCLE", - env: "AC_APPCIRCLE" - }, - { - name: "AppVeyor", - constant: "APPVEYOR", - env: "APPVEYOR", - pr: "APPVEYOR_PULL_REQUEST_NUMBER" - }, - { - name: "AWS CodeBuild", - constant: "CODEBUILD", - env: "CODEBUILD_BUILD_ARN" - }, - { - name: "Azure Pipelines", - constant: "AZURE_PIPELINES", - env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI", - pr: "SYSTEM_PULLREQUEST_PULLREQUESTID" - }, - { - name: "Bamboo", - constant: "BAMBOO", - env: "bamboo_planKey" - }, - { - name: "Bitbucket Pipelines", - constant: "BITBUCKET", - env: "BITBUCKET_COMMIT", - pr: "BITBUCKET_PR_ID" - }, - { - name: "Bitrise", - constant: "BITRISE", - env: "BITRISE_IO", - pr: "BITRISE_PULL_REQUEST" - }, - { - name: "Buddy", - constant: "BUDDY", - env: "BUDDY_WORKSPACE_ID", - pr: "BUDDY_EXECUTION_PULL_REQUEST_ID" - }, - { - name: "Buildkite", - constant: "BUILDKITE", - env: "BUILDKITE", - pr: { - env: "BUILDKITE_PULL_REQUEST", - ne: "false" - } - }, - { - name: "CircleCI", - constant: "CIRCLE", - env: "CIRCLECI", - pr: "CIRCLE_PULL_REQUEST" - }, - { - name: "Cirrus CI", - constant: "CIRRUS", - env: "CIRRUS_CI", - pr: "CIRRUS_PR" - }, - { - name: "Codefresh", - constant: "CODEFRESH", - env: "CF_BUILD_ID", - pr: { - any: [ - "CF_PULL_REQUEST_NUMBER", - "CF_PULL_REQUEST_ID" - ] - } - }, - { - name: "Codemagic", - constant: "CODEMAGIC", - env: "CM_BUILD_ID", - pr: "CM_PULL_REQUEST" - }, - { - name: "Codeship", - constant: "CODESHIP", - env: { - CI_NAME: "codeship" - } - }, - { - name: "Drone", - constant: "DRONE", - env: "DRONE", - pr: { - DRONE_BUILD_EVENT: "pull_request" - } - }, - { - name: "dsari", - constant: "DSARI", - env: "DSARI" - }, - { - name: "Expo Application Services", - constant: "EAS", - env: "EAS_BUILD" - }, - { - name: "Gerrit", - constant: "GERRIT", - env: "GERRIT_PROJECT" - }, - { - name: "GitHub Actions", - constant: "GITHUB_ACTIONS", - env: "GITHUB_ACTIONS", - pr: { - GITHUB_EVENT_NAME: "pull_request" - } - }, - { - name: "GitLab CI", - constant: "GITLAB", - env: "GITLAB_CI", - pr: "CI_MERGE_REQUEST_ID" - }, - { - name: "GoCD", - constant: "GOCD", - env: "GO_PIPELINE_LABEL" - }, - { - name: "Google Cloud Build", - constant: "GOOGLE_CLOUD_BUILD", - env: "BUILDER_OUTPUT" - }, - { - name: "Harness CI", - constant: "HARNESS", - env: "HARNESS_BUILD_ID" - }, - { - name: "Heroku", - constant: "HEROKU", - env: { - env: "NODE", - includes: "/app/.heroku/node/bin/node" - } - }, - { - name: "Hudson", - constant: "HUDSON", - env: "HUDSON_URL" - }, - { - name: "Jenkins", - constant: "JENKINS", - env: [ - "JENKINS_URL", - "BUILD_ID" - ], - pr: { - any: [ - "ghprbPullId", - "CHANGE_ID" - ] - } - }, - { - name: "LayerCI", - constant: "LAYERCI", - env: "LAYERCI", - pr: "LAYERCI_PULL_REQUEST" - }, - { - name: "Magnum CI", - constant: "MAGNUM", - env: "MAGNUM" - }, - { - name: "Netlify CI", - constant: "NETLIFY", - env: "NETLIFY", - pr: { - env: "PULL_REQUEST", - ne: "false" - } - }, - { - name: "Nevercode", - constant: "NEVERCODE", - env: "NEVERCODE", - pr: { - env: "NEVERCODE_PULL_REQUEST", - ne: "false" - } - }, - { - name: "ReleaseHub", - constant: "RELEASEHUB", - env: "RELEASE_BUILD_ID" - }, - { - name: "Render", - constant: "RENDER", - env: "RENDER", - pr: { - IS_PULL_REQUEST: "true" - } - }, - { - name: "Sail CI", - constant: "SAIL", - env: "SAILCI", - pr: "SAIL_PULL_REQUEST_NUMBER" - }, - { - name: "Screwdriver", - constant: "SCREWDRIVER", - env: "SCREWDRIVER", - pr: { - env: "SD_PULL_REQUEST", - ne: "false" - } - }, - { - name: "Semaphore", - constant: "SEMAPHORE", - env: "SEMAPHORE", - pr: "PULL_REQUEST_NUMBER" - }, - { - name: "Shippable", - constant: "SHIPPABLE", - env: "SHIPPABLE", - pr: { - IS_PULL_REQUEST: "true" - } - }, - { - name: "Solano CI", - constant: "SOLANO", - env: "TDDIUM", - pr: "TDDIUM_PR_ID" - }, - { - name: "Sourcehut", - constant: "SOURCEHUT", - env: { - CI_NAME: "sourcehut" - } - }, - { - name: "Strider CD", - constant: "STRIDER", - env: "STRIDER" - }, - { - name: "TaskCluster", - constant: "TASKCLUSTER", - env: [ - "TASK_ID", - "RUN_ID" - ] - }, - { - name: "TeamCity", - constant: "TEAMCITY", - env: "TEAMCITY_VERSION" - }, - { - name: "Travis CI", - constant: "TRAVIS", - env: "TRAVIS", - pr: { - env: "TRAVIS_PULL_REQUEST", - ne: "false" - } - }, - { - name: "Vercel", - constant: "VERCEL", - env: { - any: [ - "NOW_BUILDER", - "VERCEL" - ] - } - }, - { - name: "Visual Studio App Center", - constant: "APPCENTER", - env: "APPCENTER_BUILD_ID" - }, - { - name: "Woodpecker", - constant: "WOODPECKER", - env: { - CI: "woodpecker" - }, - pr: { - CI_BUILD_EVENT: "pull_request" - } - }, - { - name: "Xcode Cloud", - constant: "XCODE_CLOUD", - env: "CI_XCODE_PROJECT", - pr: "CI_PULL_REQUEST_NUMBER" - }, - { - name: "Xcode Server", - constant: "XCODE_SERVER", - env: "XCS" - } - ]; - } -}); -var require_ci_info = __commonJS2({ - "node_modules/ci-info/index.js"(exports) { - "use strict"; - var vendors = require_vendors(); - var env2 = process.env; - Object.defineProperty(exports, "_vendors", { - value: vendors.map(function(v7) { - return v7.constant; - }) - }); - exports.name = null; - exports.isPR = null; - vendors.forEach(function(vendor) { - const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]; - const isCI2 = envs.every(function(obj) { - return checkEnv(obj); - }); - exports[vendor.constant] = isCI2; - if (!isCI2) { - return; - } - exports.name = vendor.name; - switch (typeof vendor.pr) { - case "string": - exports.isPR = !!env2[vendor.pr]; - break; - case "object": - if ("env" in vendor.pr) { - exports.isPR = vendor.pr.env in env2 && env2[vendor.pr.env] !== vendor.pr.ne; - } else if ("any" in vendor.pr) { - exports.isPR = vendor.pr.any.some(function(key) { - return !!env2[key]; - }); - } else { - exports.isPR = checkEnv(vendor.pr); - } - break; - default: - exports.isPR = null; - } - }); - exports.isCI = !!(env2.CI !== "false" && // Bypass all checks if CI env is explicitly set to 'false' - (env2.BUILD_ID || // Jenkins, Cloudbees - env2.BUILD_NUMBER || // Jenkins, TeamCity - env2.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari - env2.CI_APP_ID || // Appflow - env2.CI_BUILD_ID || // Appflow - env2.CI_BUILD_NUMBER || // Appflow - env2.CI_NAME || // Codeship and others - env2.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI - env2.RUN_ID || // TaskCluster, dsari - exports.name || false)); - function checkEnv(obj) { - if (typeof obj === "string") - return !!env2[obj]; - if ("env" in obj) { - return env2[obj.env] && env2[obj.env].includes(obj.includes); - } - if ("any" in obj) { - return obj.any.some(function(k4) { - return !!env2[k4]; - }); - } - return Object.keys(obj).every(function(k4) { - return env2[k4] === obj[k4]; - }); - } - } -}); -var import_cosmiconfig = __toESM2(require_dist2(), 1); -var import_find_parent_dir = __toESM2(require_find_parent_dir(), 1); -var { stdin } = process; -async function getStdin() { - let result = ""; - if (stdin.isTTY) { - return result; - } - stdin.setEncoding("utf8"); - for await (const chunk of stdin) { - result += chunk; - } - return result; -} -getStdin.buffer = async () => { - const result = []; - let length = 0; - if (stdin.isTTY) { - return Buffer.concat([]); - } - for await (const chunk of stdin) { - result.push(chunk); - length += chunk.length; - } - return Buffer.concat(result, length); -}; -var import_ci_info = __toESM2(require_ci_info(), 1); -function writeFormattedFile(file, data) { - return import_promises.default.writeFile(file, data); -} -var mockable = { - cosmiconfig: import_cosmiconfig.cosmiconfig, - findParentDir: import_find_parent_dir.sync, - getStdin, - isCI: () => import_ci_info.isCI, - writeFormattedFile -}; -var mockable_default = mockable; - -// node_modules/prettier/index.mjs -var import_module3 = require("module"); -var import_url3 = require("url"); -var import_assert3 = __toESM(require("assert"), 1); -var import_fs3 = require("fs"); -var import_process2 = __toESM(require("process"), 1); -var import_url4 = require("url"); -var import_path6 = __toESM(require("path"), 1); -var import_module4 = require("module"); -var import_url5 = require("url"); -var import_url6 = require("url"); -var import_v8 = __toESM(require("v8"), 1); -var import_process3 = __toESM(require("process"), 1); -var import_assert4 = __toESM(require("assert"), 1); -var import_util = require("util"); -var import_fs4 = __toESM(require("fs"), 1); -var import_path7 = __toESM(require("path"), 1); -var import_path8 = __toESM(require("path"), 1); -var import_promises2 = __toESM(require("fs/promises"), 1); -var import_url7 = require("url"); -var import_path9 = __toESM(require("path"), 1); -var import_path10 = __toESM(require("path"), 1); - -// node_modules/prettier/doc.mjs -var doc_exports = {}; -__export(doc_exports, { - builders: () => builders, - default: () => public_default, - printer: () => printer, - utils: () => utils -}); -var __defProp3 = Object.defineProperty; -var __export2 = (target, all) => { - for (var name in all) - __defProp3(target, name, { get: all[name], enumerable: true }); -}; -var public_exports = {}; -__export2(public_exports, { - builders: () => builders, - printer: () => printer, - utils: () => utils -}); -var DOC_TYPE_STRING = "string"; -var DOC_TYPE_ARRAY = "array"; -var DOC_TYPE_CURSOR = "cursor"; -var DOC_TYPE_INDENT = "indent"; -var DOC_TYPE_ALIGN = "align"; -var DOC_TYPE_TRIM = "trim"; -var DOC_TYPE_GROUP = "group"; -var DOC_TYPE_FILL = "fill"; -var DOC_TYPE_IF_BREAK = "if-break"; -var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break"; -var DOC_TYPE_LINE_SUFFIX = "line-suffix"; -var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary"; -var DOC_TYPE_LINE = "line"; -var DOC_TYPE_LABEL = "label"; -var DOC_TYPE_BREAK_PARENT = "break-parent"; -var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([ - DOC_TYPE_CURSOR, - DOC_TYPE_INDENT, - DOC_TYPE_ALIGN, - DOC_TYPE_TRIM, - DOC_TYPE_GROUP, - DOC_TYPE_FILL, - DOC_TYPE_IF_BREAK, - DOC_TYPE_INDENT_IF_BREAK, - DOC_TYPE_LINE_SUFFIX, - DOC_TYPE_LINE_SUFFIX_BOUNDARY, - DOC_TYPE_LINE, - DOC_TYPE_LABEL, - DOC_TYPE_BREAK_PARENT -]); -function getDocType(doc) { - if (typeof doc === "string") { - return DOC_TYPE_STRING; - } - if (Array.isArray(doc)) { - return DOC_TYPE_ARRAY; - } - if (!doc) { - return; - } - const { type: type2 } = doc; - if (VALID_OBJECT_DOC_TYPES.has(type2)) { - return type2; - } -} -var get_doc_type_default = getDocType; -var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); -function getDocErrorMessage(doc) { - const type2 = doc === null ? "null" : typeof doc; - if (type2 !== "string" && type2 !== "object") { - return `Unexpected doc '${type2}', -Expected it to be 'string' or 'object'.`; - } - if (get_doc_type_default(doc)) { - throw new Error("doc is valid."); - } - const objectType = Object.prototype.toString.call(doc); - if (objectType !== "[object Object]") { - return `Unexpected doc '${objectType}'.`; - } - const EXPECTED_TYPE_VALUES = disjunctionListFormat( - [...VALID_OBJECT_DOC_TYPES].map((type22) => `'${type22}'`) - ); - return `Unexpected doc.type '${doc.type}'. -Expected it to be ${EXPECTED_TYPE_VALUES}.`; -} -var InvalidDocError = class extends Error { - name = "InvalidDocError"; - constructor(doc) { - super(getDocErrorMessage(doc)); - this.doc = doc; - } -}; -var invalid_doc_error_default = InvalidDocError; -var traverseDocOnExitStackMarker = {}; -function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc]; - while (docsStack.length > 0) { - const doc2 = docsStack.pop(); - if (doc2 === traverseDocOnExitStackMarker) { - onExit(docsStack.pop()); - continue; - } - if (onExit) { - docsStack.push(doc2, traverseDocOnExitStackMarker); - } - const docType = get_doc_type_default(doc2); - if (!docType) { - throw new invalid_doc_error_default(doc2); - } - if ((onEnter == null ? void 0 : onEnter(doc2)) === false) { - continue; - } - switch (docType) { - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts; - for (let ic3 = parts.length, i = ic3 - 1; i >= 0; --i) { - docsStack.push(parts[i]); - } - break; - } - case DOC_TYPE_IF_BREAK: - docsStack.push(doc2.flatContents, doc2.breakContents); - break; - case DOC_TYPE_GROUP: - if (shouldTraverseConditionalGroups && doc2.expandedStates) { - for (let ic3 = doc2.expandedStates.length, i = ic3 - 1; i >= 0; --i) { - docsStack.push(doc2.expandedStates[i]); - } - } else { - docsStack.push(doc2.contents); - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - docsStack.push(doc2.contents); - break; - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - } -} -var traverse_doc_default = traverseDoc; -var noop = () => { -}; -var assertDoc = true ? noop : function(doc) { - traverse_doc_default(doc, (doc2) => { - if (checked.has(doc2)) { - return false; - } - if (typeof doc2 !== "string") { - checked.add(doc2); - } - }); -}; -var assertDocArray = true ? noop : function(docs, optional = false) { - if (optional && !docs) { - return; - } - if (!Array.isArray(docs)) { - throw new TypeError("Unexpected doc array."); - } - for (const doc of docs) { - assertDoc(doc); - } -}; -function indent(contents) { - assertDoc(contents); - return { type: DOC_TYPE_INDENT, contents }; -} -function align(widthOrString, contents) { - assertDoc(contents); - return { type: DOC_TYPE_ALIGN, contents, n: widthOrString }; -} -function group(contents, opts = {}) { - assertDoc(contents); - assertDocArray( - opts.expandedStates, - /* optional */ - true - ); - return { - type: DOC_TYPE_GROUP, - id: opts.id, - contents, - break: Boolean(opts.shouldBreak), - expandedStates: opts.expandedStates - }; -} -function dedentToRoot(contents) { - return align(Number.NEGATIVE_INFINITY, contents); -} -function markAsRoot(contents) { - return align({ type: "root" }, contents); -} -function dedent(contents) { - return align(-1, contents); -} -function conditionalGroup(states, opts) { - return group(states[0], { ...opts, expandedStates: states }); -} -function fill(parts) { - assertDocArray(parts); - return { type: DOC_TYPE_FILL, parts }; -} -function ifBreak(breakContents, flatContents = "", opts = {}) { - assertDoc(breakContents); - if (flatContents !== "") { - assertDoc(flatContents); - } - return { - type: DOC_TYPE_IF_BREAK, - breakContents, - flatContents, - groupId: opts.groupId - }; -} -function indentIfBreak(contents, opts) { - assertDoc(contents); - return { - type: DOC_TYPE_INDENT_IF_BREAK, - contents, - groupId: opts.groupId, - negate: opts.negate - }; -} -function lineSuffix(contents) { - assertDoc(contents); - return { type: DOC_TYPE_LINE_SUFFIX, contents }; -} -var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY }; -var breakParent = { type: DOC_TYPE_BREAK_PARENT }; -var trim = { type: DOC_TYPE_TRIM }; -var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true }; -var literallineWithoutBreakParent = { - type: DOC_TYPE_LINE, - hard: true, - literal: true -}; -var line = { type: DOC_TYPE_LINE }; -var softline = { type: DOC_TYPE_LINE, soft: true }; -var hardline = [hardlineWithoutBreakParent, breakParent]; -var literalline = [literallineWithoutBreakParent, breakParent]; -var cursor = { type: DOC_TYPE_CURSOR }; -function join(separator, docs) { - assertDoc(separator); - assertDocArray(docs); - const parts = []; - for (let i = 0; i < docs.length; i++) { - if (i !== 0) { - parts.push(separator); - } - parts.push(docs[i]); - } - return parts; -} -function addAlignmentToDoc(doc, size, tabWidth) { - assertDoc(doc); - let aligned = doc; - if (size > 0) { - for (let i = 0; i < Math.floor(size / tabWidth); ++i) { - aligned = indent(aligned); - } - aligned = align(size % tabWidth, aligned); - aligned = align(Number.NEGATIVE_INFINITY, aligned); - } - return aligned; -} -function label(label2, contents) { - assertDoc(contents); - return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents; -} -var at = (isOptionalObject, object, index) => { - if (isOptionalObject && (object === void 0 || object === null)) { - return; - } - if (Array.isArray(object) || typeof object === "string") { - return object[index < 0 ? object.length + index : index]; - } - return object.at(index); -}; -var at_default = at; -var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => { - if (isOptionalObject && (original === void 0 || original === null)) { - return; - } - if (original.replaceAll) { - return original.replaceAll(pattern, replacement); - } - if (pattern.global) { - return original.replace(pattern, replacement); - } - return original.split(pattern).join(replacement); -}; -var string_replace_all_default = stringReplaceAll; -function convertEndOfLineToChars(value) { - switch (value) { - case "cr": - return "\r"; - case "crlf": - return "\r\n"; - default: - return "\n"; - } -} -var emoji_regex_default = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; -}; -var eastasianwidth_default = { - eastAsianWidth(character) { - var x7 = character.charCodeAt(0); - var y5 = character.length == 2 ? character.charCodeAt(1) : 0; - var codePoint = x7; - if (55296 <= x7 && x7 <= 56319 && 56320 <= y5 && y5 <= 57343) { - x7 &= 1023; - y5 &= 1023; - codePoint = x7 << 10 | y5; - codePoint += 65536; - } - if (12288 == codePoint || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510) { - return "F"; - } - if (4352 <= codePoint && codePoint <= 4447 || 4515 <= codePoint && codePoint <= 4519 || 4602 <= codePoint && codePoint <= 4607 || 9001 <= codePoint && codePoint <= 9002 || 11904 <= codePoint && codePoint <= 11929 || 11931 <= codePoint && codePoint <= 12019 || 12032 <= codePoint && codePoint <= 12245 || 12272 <= codePoint && codePoint <= 12283 || 12289 <= codePoint && codePoint <= 12350 || 12353 <= codePoint && codePoint <= 12438 || 12441 <= codePoint && codePoint <= 12543 || 12549 <= codePoint && codePoint <= 12589 || 12593 <= codePoint && codePoint <= 12686 || 12688 <= codePoint && codePoint <= 12730 || 12736 <= codePoint && codePoint <= 12771 || 12784 <= codePoint && codePoint <= 12830 || 12832 <= codePoint && codePoint <= 12871 || 12880 <= codePoint && codePoint <= 13054 || 13056 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42124 || 42128 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 55216 <= codePoint && codePoint <= 55238 || 55243 <= codePoint && codePoint <= 55291 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65106 || 65108 <= codePoint && codePoint <= 65126 || 65128 <= codePoint && codePoint <= 65131 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127490 || 127504 <= codePoint && codePoint <= 127546 || 127552 <= codePoint && codePoint <= 127560 || 127568 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 194367 || 177984 <= codePoint && codePoint <= 196605 || 196608 <= codePoint && codePoint <= 262141) { - return "W"; - } - return "N"; - } -}; -var notAsciiRegex = /[^\x20-\x7F]/; -function getStringWidth(text) { - if (!text) { - return 0; - } - if (!notAsciiRegex.test(text)) { - return text.length; - } - text = text.replace(emoji_regex_default(), " "); - let width = 0; - for (const character of text) { - const codePoint = character.codePointAt(0); - if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { - continue; - } - if (codePoint >= 768 && codePoint <= 879) { - continue; - } - const code = eastasianwidth_default.eastAsianWidth(character); - width += code === "F" || code === "W" ? 2 : 1; - } - return width; -} -var get_string_width_default = getStringWidth; -var getDocParts = (doc) => { - if (Array.isArray(doc)) { - return doc; - } - if (doc.type !== DOC_TYPE_FILL) { - throw new Error(`Expect doc to be 'array' or '${DOC_TYPE_FILL}'.`); - } - return doc.parts; -}; -function mapDoc(doc, cb) { - if (typeof doc === "string") { - return cb(doc); - } - const mapped = /* @__PURE__ */ new Map(); - return rec(doc); - function rec(doc2) { - if (mapped.has(doc2)) { - return mapped.get(doc2); - } - const result = process22(doc2); - mapped.set(doc2, result); - return result; - } - function process22(doc2) { - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_ARRAY: - return cb(doc2.map(rec)); - case DOC_TYPE_FILL: - return cb({ - ...doc2, - parts: doc2.parts.map(rec) - }); - case DOC_TYPE_IF_BREAK: - return cb({ - ...doc2, - breakContents: rec(doc2.breakContents), - flatContents: rec(doc2.flatContents) - }); - case DOC_TYPE_GROUP: { - let { - expandedStates, - contents - } = doc2; - if (expandedStates) { - expandedStates = expandedStates.map(rec); - contents = expandedStates[0]; - } else { - contents = rec(contents); - } - return cb({ - ...doc2, - contents, - expandedStates - }); - } - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - case DOC_TYPE_LINE_SUFFIX: - return cb({ - ...doc2, - contents: rec(doc2.contents) - }); - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - return cb(doc2); - default: - throw new invalid_doc_error_default(doc2); - } - } -} -function findInDoc(doc, fn6, defaultValue) { - let result = defaultValue; - let shouldSkipFurtherProcessing = false; - function findInDocOnEnterFn(doc2) { - if (shouldSkipFurtherProcessing) { - return false; - } - const maybeResult = fn6(doc2); - if (maybeResult !== void 0) { - shouldSkipFurtherProcessing = true; - result = maybeResult; - } - } - traverse_doc_default(doc, findInDocOnEnterFn); - return result; -} -function willBreakFn(doc) { - if (doc.type === DOC_TYPE_GROUP && doc.break) { - return true; - } - if (doc.type === DOC_TYPE_LINE && doc.hard) { - return true; - } - if (doc.type === DOC_TYPE_BREAK_PARENT) { - return true; - } -} -function willBreak(doc) { - return findInDoc(doc, willBreakFn, false); -} -function breakParentGroup(groupStack) { - if (groupStack.length > 0) { - const parentGroup = at_default( - /* isOptionalObject*/ - false, - groupStack, - -1 - ); - if (!parentGroup.expandedStates && !parentGroup.break) { - parentGroup.break = "propagated"; - } - } - return null; -} -function propagateBreaks(doc) { - const alreadyVisitedSet = /* @__PURE__ */ new Set(); - const groupStack = []; - function propagateBreaksOnEnterFn(doc2) { - if (doc2.type === DOC_TYPE_BREAK_PARENT) { - breakParentGroup(groupStack); - } - if (doc2.type === DOC_TYPE_GROUP) { - groupStack.push(doc2); - if (alreadyVisitedSet.has(doc2)) { - return false; - } - alreadyVisitedSet.add(doc2); - } - } - function propagateBreaksOnExitFn(doc2) { - if (doc2.type === DOC_TYPE_GROUP) { - const group2 = groupStack.pop(); - if (group2.break) { - breakParentGroup(groupStack); - } - } - } - traverse_doc_default( - doc, - propagateBreaksOnEnterFn, - propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true - ); -} -function removeLinesFn(doc) { - if (doc.type === DOC_TYPE_LINE && !doc.hard) { - return doc.soft ? "" : " "; - } - if (doc.type === DOC_TYPE_IF_BREAK) { - return doc.flatContents; - } - return doc; -} -function removeLines(doc) { - return mapDoc(doc, removeLinesFn); -} -function stripTrailingHardlineFromParts(parts) { - parts = [...parts]; - while (parts.length >= 2 && at_default( - /* isOptionalObject*/ - false, - parts, - -2 - ).type === DOC_TYPE_LINE && at_default( - /* isOptionalObject*/ - false, - parts, - -1 - ).type === DOC_TYPE_BREAK_PARENT) { - parts.length -= 2; - } - if (parts.length > 0) { - const lastPart = stripTrailingHardlineFromDoc(at_default( - /* isOptionalObject*/ - false, - parts, - -1 - )); - parts[parts.length - 1] = lastPart; - } - return parts; -} -function stripTrailingHardlineFromDoc(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_GROUP: - case DOC_TYPE_LINE_SUFFIX: - case DOC_TYPE_LABEL: { - const contents = stripTrailingHardlineFromDoc(doc.contents); - return { - ...doc, - contents - }; - } - case DOC_TYPE_IF_BREAK: - return { - ...doc, - breakContents: stripTrailingHardlineFromDoc(doc.breakContents), - flatContents: stripTrailingHardlineFromDoc(doc.flatContents) - }; - case DOC_TYPE_FILL: - return { - ...doc, - parts: stripTrailingHardlineFromParts(doc.parts) - }; - case DOC_TYPE_ARRAY: - return stripTrailingHardlineFromParts(doc); - case DOC_TYPE_STRING: - return doc.replace(/[\n\r]*$/, ""); - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; -} -function stripTrailingHardline(doc) { - return stripTrailingHardlineFromDoc(cleanDoc(doc)); -} -function cleanDocFn(doc) { - switch (get_doc_type_default(doc)) { - case DOC_TYPE_FILL: - if (doc.parts.every((part) => part === "")) { - return ""; - } - break; - case DOC_TYPE_GROUP: - if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { - return ""; - } - if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { - return doc.contents; - } - break; - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LINE_SUFFIX: - if (!doc.contents) { - return ""; - } - break; - case DOC_TYPE_IF_BREAK: - if (!doc.flatContents && !doc.breakContents) { - return ""; - } - break; - case DOC_TYPE_ARRAY: { - const parts = []; - for (const part of doc) { - if (!part) { - continue; - } - const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; - if (typeof currentPart === "string" && typeof at_default( - /* isOptionalObject*/ - false, - parts, - -1 - ) === "string") { - parts[parts.length - 1] += currentPart; - } else { - parts.push(currentPart); - } - parts.push(...restParts); - } - if (parts.length === 0) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - return parts; - } - case DOC_TYPE_STRING: - case DOC_TYPE_CURSOR: - case DOC_TYPE_TRIM: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - case DOC_TYPE_LINE: - case DOC_TYPE_LABEL: - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc); - } - return doc; -} -function cleanDoc(doc) { - return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc)); -} -function replaceEndOfLine(doc, replacement = literalline) { - return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc); -} -function canBreakFn(doc) { - if (doc.type === DOC_TYPE_LINE) { - return true; - } -} -function canBreak(doc) { - return findInDoc(doc, canBreakFn, false); -} -var MODE_BREAK = Symbol("MODE_BREAK"); -var MODE_FLAT = Symbol("MODE_FLAT"); -var CURSOR_PLACEHOLDER = Symbol("cursor"); -function rootIndent() { - return { - value: "", - length: 0, - queue: [] - }; -} -function makeIndent(ind, options8) { - return generateInd(ind, { - type: "indent" - }, options8); -} -function makeAlign(indent22, widthOrDoc, options8) { - if (widthOrDoc === Number.NEGATIVE_INFINITY) { - return indent22.root || rootIndent(); - } - if (widthOrDoc < 0) { - return generateInd(indent22, { - type: "dedent" - }, options8); - } - if (!widthOrDoc) { - return indent22; - } - if (widthOrDoc.type === "root") { - return { - ...indent22, - root: indent22 - }; - } - const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; - return generateInd(indent22, { - type: alignType, - n: widthOrDoc - }, options8); -} -function generateInd(ind, newPart, options8) { - const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; - let value = ""; - let length = 0; - let lastTabs = 0; - let lastSpaces = 0; - for (const part of queue) { - switch (part.type) { - case "indent": - flush(); - if (options8.useTabs) { - addTabs(1); - } else { - addSpaces(options8.tabWidth); - } - break; - case "stringAlign": - flush(); - value += part.n; - length += part.n.length; - break; - case "numberAlign": - lastTabs += 1; - lastSpaces += part.n; - break; - default: - throw new Error(`Unexpected type '${part.type}'`); - } - } - flushSpaces(); - return { - ...ind, - value, - length, - queue - }; - function addTabs(count) { - value += " ".repeat(count); - length += options8.tabWidth * count; - } - function addSpaces(count) { - value += " ".repeat(count); - length += count; - } - function flush() { - if (options8.useTabs) { - flushTabs(); - } else { - flushSpaces(); - } - } - function flushTabs() { - if (lastTabs > 0) { - addTabs(lastTabs); - } - resetLast(); - } - function flushSpaces() { - if (lastSpaces > 0) { - addSpaces(lastSpaces); - } - resetLast(); - } - function resetLast() { - lastTabs = 0; - lastSpaces = 0; - } -} -function trim2(out) { - let trimCount = 0; - let cursorCount = 0; - let outIndex = out.length; - outer: - while (outIndex--) { - const last = out[outIndex]; - if (last === CURSOR_PLACEHOLDER) { - cursorCount++; - continue; - } - if (false) { - throw new Error(`Unexpected value in trim: '${typeof last}'`); - } - for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) { - const char = last[charIndex]; - if (char === " " || char === " ") { - trimCount++; - } else { - out[outIndex] = last.slice(0, charIndex + 1); - break outer; - } - } - } - if (trimCount > 0 || cursorCount > 0) { - out.length = outIndex + 1; - while (cursorCount-- > 0) { - out.push(CURSOR_PLACEHOLDER); - } - } - return trimCount; -} -function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) { - if (width === Number.POSITIVE_INFINITY) { - return true; - } - let restIdx = restCommands.length; - const cmds = [next]; - const out = []; - while (width >= 0) { - if (cmds.length === 0) { - if (restIdx === 0) { - return true; - } - cmds.push(restCommands[--restIdx]); - continue; - } - const { - mode, - doc - } = cmds.pop(); - switch (get_doc_type_default(doc)) { - case DOC_TYPE_STRING: - out.push(doc); - width -= get_string_width_default(doc); - break; - case DOC_TYPE_ARRAY: - case DOC_TYPE_FILL: { - const parts = getDocParts(doc); - for (let i = parts.length - 1; i >= 0; i--) { - cmds.push({ - mode, - doc: parts[i] - }); - } - break; - } - case DOC_TYPE_INDENT: - case DOC_TYPE_ALIGN: - case DOC_TYPE_INDENT_IF_BREAK: - case DOC_TYPE_LABEL: - cmds.push({ - mode, - doc: doc.contents - }); - break; - case DOC_TYPE_TRIM: - width += trim2(out); - break; - case DOC_TYPE_GROUP: { - if (mustBeFlat && doc.break) { - return false; - } - const groupMode = doc.break ? MODE_BREAK : mode; - const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default( - /* isOptionalObject*/ - false, - doc.expandedStates, - -1 - ) : doc.contents; - cmds.push({ - mode: groupMode, - doc: contents - }); - break; - } - case DOC_TYPE_IF_BREAK: { - const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode; - const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents; - if (contents) { - cmds.push({ - mode, - doc: contents - }); - } - break; - } - case DOC_TYPE_LINE: - if (mode === MODE_BREAK || doc.hard) { - return true; - } - if (!doc.soft) { - out.push(" "); - width--; - } - break; - case DOC_TYPE_LINE_SUFFIX: - hasLineSuffix = true; - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (hasLineSuffix) { - return false; - } - break; - } - } - return false; -} -function printDocToString(doc, options8) { - const groupModeMap = {}; - const width = options8.printWidth; - const newLine = convertEndOfLineToChars(options8.endOfLine); - let pos = 0; - const cmds = [{ - ind: rootIndent(), - mode: MODE_BREAK, - doc - }]; - const out = []; - let shouldRemeasure = false; - const lineSuffix22 = []; - let printedCursorCount = 0; - propagateBreaks(doc); - while (cmds.length > 0) { - const { - ind, - mode, - doc: doc2 - } = cmds.pop(); - switch (get_doc_type_default(doc2)) { - case DOC_TYPE_STRING: { - const formatted = newLine !== "\n" ? string_replace_all_default( - /* isOptionalObject*/ - false, - doc2, - "\n", - newLine - ) : doc2; - out.push(formatted); - if (cmds.length > 0) { - pos += get_string_width_default(formatted); - } - break; - } - case DOC_TYPE_ARRAY: - for (let i = doc2.length - 1; i >= 0; i--) { - cmds.push({ - ind, - mode, - doc: doc2[i] - }); - } - break; - case DOC_TYPE_CURSOR: - if (printedCursorCount >= 2) { - throw new Error("There are too many 'cursor' in doc."); - } - out.push(CURSOR_PLACEHOLDER); - printedCursorCount++; - break; - case DOC_TYPE_INDENT: - cmds.push({ - ind: makeIndent(ind, options8), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_ALIGN: - cmds.push({ - ind: makeAlign(ind, doc2.n, options8), - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_TRIM: - pos -= trim2(out); - break; - case DOC_TYPE_GROUP: - switch (mode) { - case MODE_FLAT: - if (!shouldRemeasure) { - cmds.push({ - ind, - mode: doc2.break ? MODE_BREAK : MODE_FLAT, - doc: doc2.contents - }); - break; - } - case MODE_BREAK: { - shouldRemeasure = false; - const next = { - ind, - mode: MODE_FLAT, - doc: doc2.contents - }; - const rem = width - pos; - const hasLineSuffix = lineSuffix22.length > 0; - if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) { - cmds.push(next); - } else { - if (doc2.expandedStates) { - const mostExpanded = at_default( - /* isOptionalObject*/ - false, - doc2.expandedStates, - -1 - ); - if (doc2.break) { - cmds.push({ - ind, - mode: MODE_BREAK, - doc: mostExpanded - }); - break; - } else { - for (let i = 1; i < doc2.expandedStates.length + 1; i++) { - if (i >= doc2.expandedStates.length) { - cmds.push({ - ind, - mode: MODE_BREAK, - doc: mostExpanded - }); - break; - } else { - const state = doc2.expandedStates[i]; - const cmd = { - ind, - mode: MODE_FLAT, - doc: state - }; - if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) { - cmds.push(cmd); - break; - } - } - } - } - } else { - cmds.push({ - ind, - mode: MODE_BREAK, - doc: doc2.contents - }); - } - } - break; - } - } - if (doc2.id) { - groupModeMap[doc2.id] = at_default( - /* isOptionalObject*/ - false, - cmds, - -1 - ).mode; - } - break; - case DOC_TYPE_FILL: { - const rem = width - pos; - const { - parts - } = doc2; - if (parts.length === 0) { - break; - } - const [content, whitespace] = parts; - const contentFlatCmd = { - ind, - mode: MODE_FLAT, - doc: content - }; - const contentBreakCmd = { - ind, - mode: MODE_BREAK, - doc: content - }; - const contentFits = fits(contentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true); - if (parts.length === 1) { - if (contentFits) { - cmds.push(contentFlatCmd); - } else { - cmds.push(contentBreakCmd); - } - break; - } - const whitespaceFlatCmd = { - ind, - mode: MODE_FLAT, - doc: whitespace - }; - const whitespaceBreakCmd = { - ind, - mode: MODE_BREAK, - doc: whitespace - }; - if (parts.length === 2) { - if (contentFits) { - cmds.push(whitespaceFlatCmd, contentFlatCmd); - } else { - cmds.push(whitespaceBreakCmd, contentBreakCmd); - } - break; - } - parts.splice(0, 2); - const remainingCmd = { - ind, - mode, - doc: fill(parts) - }; - const secondContent = parts[0]; - const firstAndSecondContentFlatCmd = { - ind, - mode: MODE_FLAT, - doc: [content, whitespace, secondContent] - }; - const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true); - if (firstAndSecondContentFits) { - cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); - } else if (contentFits) { - cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); - } else { - cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); - } - break; - } - case DOC_TYPE_IF_BREAK: - case DOC_TYPE_INDENT_IF_BREAK: { - const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode; - if (groupMode === MODE_BREAK) { - const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents); - if (breakContents) { - cmds.push({ - ind, - mode, - doc: breakContents - }); - } - } - if (groupMode === MODE_FLAT) { - const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents; - if (flatContents) { - cmds.push({ - ind, - mode, - doc: flatContents - }); - } - } - break; - } - case DOC_TYPE_LINE_SUFFIX: - lineSuffix22.push({ - ind, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY: - if (lineSuffix22.length > 0) { - cmds.push({ - ind, - mode, - doc: hardlineWithoutBreakParent - }); - } - break; - case DOC_TYPE_LINE: - switch (mode) { - case MODE_FLAT: - if (!doc2.hard) { - if (!doc2.soft) { - out.push(" "); - pos += 1; - } - break; - } else { - shouldRemeasure = true; - } - case MODE_BREAK: - if (lineSuffix22.length > 0) { - cmds.push({ - ind, - mode, - doc: doc2 - }, ...lineSuffix22.reverse()); - lineSuffix22.length = 0; - break; - } - if (doc2.literal) { - if (ind.root) { - out.push(newLine, ind.root.value); - pos = ind.root.length; - } else { - out.push(newLine); - pos = 0; - } - } else { - pos -= trim2(out); - out.push(newLine + ind.value); - pos = ind.length; - } - break; - } - break; - case DOC_TYPE_LABEL: - cmds.push({ - ind, - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_BREAK_PARENT: - break; - default: - throw new invalid_doc_error_default(doc2); - } - if (cmds.length === 0 && lineSuffix22.length > 0) { - cmds.push(...lineSuffix22.reverse()); - lineSuffix22.length = 0; - } - } - const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER); - if (cursorPlaceholderIndex !== -1) { - const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1); - const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); - const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); - const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); - return { - formatted: beforeCursor + aroundCursor + afterCursor, - cursorNodeStart: beforeCursor.length, - cursorNodeText: aroundCursor - }; - } - return { - formatted: out.join("") - }; -} -var builders = { - join, - line, - softline, - hardline, - literalline, - group, - conditionalGroup, - fill, - lineSuffix, - lineSuffixBoundary, - cursor, - breakParent, - ifBreak, - trim, - indent, - indentIfBreak, - align, - addAlignmentToDoc, - markAsRoot, - dedentToRoot, - dedent, - hardlineWithoutBreakParent, - literallineWithoutBreakParent, - label, - // TODO: Remove this in v4 - concat: (parts) => parts -}; -var printer = { printDocToString }; -var utils = { - willBreak, - traverseDoc: traverse_doc_default, - findInDoc, - mapDoc, - removeLines, - stripTrailingHardline, - replaceEndOfLine, - canBreak -}; -var public_default = public_exports; - -// node_modules/prettier/index.mjs -var import_meta2 = {}; -var require3 = (0, import_module2.createRequire)(import_meta2.url); -var __filename2 = (0, import_url2.fileURLToPath)(import_meta2.url); -var __dirname3 = (0, import_path2.dirname)(__filename2); -var __create3 = Object.create; -var __defProp4 = Object.defineProperty; -var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; -var __getOwnPropNames3 = Object.getOwnPropertyNames; -var __getProtoOf3 = Object.getPrototypeOf; -var __hasOwnProp3 = Object.prototype.hasOwnProperty; -var __require2 = /* @__PURE__ */ ((x7) => typeof require3 !== "undefined" ? require3 : typeof Proxy !== "undefined" ? new Proxy(x7, { - get: (a, b5) => (typeof require3 !== "undefined" ? require3 : a)[b5] -}) : x7)(function(x7) { - if (typeof require3 !== "undefined") - return require3.apply(this, arguments); - throw Error('Dynamic require of "' + x7 + '" is not supported'); -}); -var __commonJS3 = (cb, mod) => function __require22() { - return mod || (0, cb[__getOwnPropNames3(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __export3 = (target, all) => { - for (var name in all) - __defProp4(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps3 = (to3, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames3(from)) - if (!__hasOwnProp3.call(to3, key) && key !== except) - __defProp4(to3, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); - } - return to3; -}; -var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp4(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __accessCheck = (obj, member, msg) => { - if (!member.has(obj)) - throw TypeError("Cannot " + msg); -}; -var __privateAdd = (obj, member, value) => { - if (member.has(obj)) - throw TypeError("Cannot add the same private member more than once"); - member instanceof WeakSet ? member.add(obj) : member.set(obj, value); -}; -var __privateMethod = (obj, member, method) => { - __accessCheck(obj, member, "access private method"); - return method; -}; -var require_array = __commonJS3({ - "node_modules/fast-glob/out/utils/array.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.splitWhen = exports.flatten = void 0; - function flatten(items) { - return items.reduce((collection, item) => [].concat(collection, item), []); - } - exports.flatten = flatten; - function splitWhen(items, predicate) { - const result = [[]]; - let groupIndex = 0; - for (const item of items) { - if (predicate(item)) { - groupIndex++; - result[groupIndex] = []; - } else { - result[groupIndex].push(item); - } - } - return result; - } - exports.splitWhen = splitWhen; - } -}); -var require_errno = __commonJS3({ - "node_modules/fast-glob/out/utils/errno.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isEnoentCodeError = void 0; - function isEnoentCodeError(error2) { - return error2.code === "ENOENT"; - } - exports.isEnoentCodeError = isEnoentCodeError; - } -}); -var require_fs = __commonJS3({ - "node_modules/fast-glob/out/utils/fs.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createDirentFromStats = void 0; - var DirentFromStats = class { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } - }; - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); - } - exports.createDirentFromStats = createDirentFromStats; - } -}); -var require_path = __commonJS3({ - "node_modules/fast-glob/out/utils/path.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0; - var os22 = __require2("os"); - var path9 = __require2("path"); - var IS_WINDOWS_PLATFORM = os22.platform() === "win32"; - var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; - var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g; - var WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([(){}]|^!|[!+@](?=\())/g; - var DOS_DEVICE_PATH_RE = /^\\\\([.?])/; - var WINDOWS_BACKSLASHES_RE = /\\(?![!()+@{}])/g; - function unixify(filepath) { - return filepath.replace(/\\/g, "/"); - } - exports.unixify = unixify; - function makeAbsolute(cwd, filepath) { - return path9.resolve(cwd, filepath); - } - exports.makeAbsolute = makeAbsolute; - function removeLeadingDotSegment(entry) { - if (entry.charAt(0) === ".") { - const secondCharactery = entry.charAt(1); - if (secondCharactery === "/" || secondCharactery === "\\") { - return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); - } - } - return entry; - } - exports.removeLeadingDotSegment = removeLeadingDotSegment; - exports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath; - function escapeWindowsPath(pattern) { - return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, "\\$2"); - } - exports.escapeWindowsPath = escapeWindowsPath; - function escapePosixPath(pattern) { - return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, "\\$2"); - } - exports.escapePosixPath = escapePosixPath; - exports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern; - function convertWindowsPathToPattern(filepath) { - return escapeWindowsPath(filepath).replace(DOS_DEVICE_PATH_RE, "//$1").replace(WINDOWS_BACKSLASHES_RE, "/"); - } - exports.convertWindowsPathToPattern = convertWindowsPathToPattern; - function convertPosixPathToPattern(filepath) { - return escapePosixPath(filepath); - } - exports.convertPosixPathToPattern = convertPosixPathToPattern; - } -}); -var require_is_extglob = __commonJS3({ - "node_modules/is-extglob/index.js"(exports, module2) { - module2.exports = function isExtglob(str2) { - if (typeof str2 !== "string" || str2 === "") { - return false; - } - var match; - while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str2)) { - if (match[2]) - return true; - str2 = str2.slice(match.index + match[0].length); - } - return false; - }; - } -}); -var require_is_glob = __commonJS3({ - "node_modules/is-glob/index.js"(exports, module2) { - var isExtglob = require_is_extglob(); - var chars = { "{": "}", "(": ")", "[": "]" }; - var strictCheck = function(str2) { - if (str2[0] === "!") { - return true; - } - var index = 0; - var pipeIndex = -2; - var closeSquareIndex = -2; - var closeCurlyIndex = -2; - var closeParenIndex = -2; - var backSlashIndex = -2; - while (index < str2.length) { - if (str2[index] === "*") { - return true; - } - if (str2[index + 1] === "?" && /[\].+)]/.test(str2[index])) { - return true; - } - if (closeSquareIndex !== -1 && str2[index] === "[" && str2[index + 1] !== "]") { - if (closeSquareIndex < index) { - closeSquareIndex = str2.indexOf("]", index); - } - if (closeSquareIndex > index) { - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; - } - backSlashIndex = str2.indexOf("\\", index); - if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { - return true; - } - } - } - if (closeCurlyIndex !== -1 && str2[index] === "{" && str2[index + 1] !== "}") { - closeCurlyIndex = str2.indexOf("}", index); - if (closeCurlyIndex > index) { - backSlashIndex = str2.indexOf("\\", index); - if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { - return true; - } - } - } - if (closeParenIndex !== -1 && str2[index] === "(" && str2[index + 1] === "?" && /[:!=]/.test(str2[index + 2]) && str2[index + 3] !== ")") { - closeParenIndex = str2.indexOf(")", index); - if (closeParenIndex > index) { - backSlashIndex = str2.indexOf("\\", index); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; - } - } - } - if (pipeIndex !== -1 && str2[index] === "(" && str2[index + 1] !== "|") { - if (pipeIndex < index) { - pipeIndex = str2.indexOf("|", index); - } - if (pipeIndex !== -1 && str2[pipeIndex + 1] !== ")") { - closeParenIndex = str2.indexOf(")", pipeIndex); - if (closeParenIndex > pipeIndex) { - backSlashIndex = str2.indexOf("\\", pipeIndex); - if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { - return true; - } - } - } - } - if (str2[index] === "\\") { - var open = str2[index + 1]; - index += 2; - var close = chars[open]; - if (close) { - var n = str2.indexOf(close, index); - if (n !== -1) { - index = n + 1; - } - } - if (str2[index] === "!") { - return true; - } - } else { - index++; - } - } - return false; - }; - var relaxedCheck = function(str2) { - if (str2[0] === "!") { - return true; - } - var index = 0; - while (index < str2.length) { - if (/[*?{}()[\]]/.test(str2[index])) { - return true; - } - if (str2[index] === "\\") { - var open = str2[index + 1]; - index += 2; - var close = chars[open]; - if (close) { - var n = str2.indexOf(close, index); - if (n !== -1) { - index = n + 1; - } - } - if (str2[index] === "!") { - return true; - } - } else { - index++; - } - } - return false; - }; - module2.exports = function isGlob(str2, options8) { - if (typeof str2 !== "string" || str2 === "") { - return false; - } - if (isExtglob(str2)) { - return true; - } - var check2 = strictCheck; - if (options8 && options8.strict === false) { - check2 = relaxedCheck; - } - return check2(str2); - }; - } -}); -var require_glob_parent = __commonJS3({ - "node_modules/glob-parent/index.js"(exports, module2) { - "use strict"; - var isGlob = require_is_glob(); - var pathPosixDirname = __require2("path").posix.dirname; - var isWin32 = __require2("os").platform() === "win32"; - var slash2 = "/"; - var backslash = /\\/g; - var enclosure = /[\{\[].*[\}\]]$/; - var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; - var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; - module2.exports = function globParent(str2, opts) { - var options8 = Object.assign({ flipBackslashes: true }, opts); - if (options8.flipBackslashes && isWin32 && str2.indexOf(slash2) < 0) { - str2 = str2.replace(backslash, slash2); - } - if (enclosure.test(str2)) { - str2 += slash2; - } - str2 += "a"; - do { - str2 = pathPosixDirname(str2); - } while (isGlob(str2) || globby.test(str2)); - return str2.replace(escaped, "$1"); - }; - } -}); -var require_utils2 = __commonJS3({ - "node_modules/braces/lib/utils.js"(exports) { - "use strict"; - exports.isInteger = (num) => { - if (typeof num === "number") { - return Number.isInteger(num); - } - if (typeof num === "string" && num.trim() !== "") { - return Number.isInteger(Number(num)); - } - return false; - }; - exports.find = (node, type2) => node.nodes.find((node2) => node2.type === type2); - exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) - return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) - return false; - return (Number(max) - Number(min)) / Number(step) >= limit; - }; - exports.escapeNode = (block, n = 0, type2) => { - let node = block.nodes[n]; - if (!node) - return; - if (type2 && node.type === type2 || node.type === "open" || node.type === "close") { - if (node.escaped !== true) { - node.value = "\\" + node.value; - node.escaped = true; - } - } - }; - exports.encloseBrace = (node) => { - if (node.type !== "brace") - return false; - if (node.commas >> 0 + node.ranges >> 0 === 0) { - node.invalid = true; - return true; - } - return false; - }; - exports.isInvalidBrace = (block) => { - if (block.type !== "brace") - return false; - if (block.invalid === true || block.dollar) - return true; - if (block.commas >> 0 + block.ranges >> 0 === 0) { - block.invalid = true; - return true; - } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; - } - return false; - }; - exports.isOpenOrClose = (node) => { - if (node.type === "open" || node.type === "close") { - return true; - } - return node.open === true || node.close === true; - }; - exports.reduce = (nodes) => nodes.reduce((acc, node) => { - if (node.type === "text") - acc.push(node.value); - if (node.type === "range") - node.type = "text"; - return acc; - }, []); - exports.flatten = (...args) => { - const result = []; - const flat = (arr) => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); - } - return result; - }; - flat(args); - return result; - }; - } -}); -var require_stringify = __commonJS3({ - "node_modules/braces/lib/stringify.js"(exports, module2) { - "use strict"; - var utils2 = require_utils2(); - module2.exports = (ast, options8 = {}) => { - let stringify2 = (node, parent = {}) => { - let invalidBlock = options8.escapeInvalid && utils2.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options8.escapeInvalid === true; - let output = ""; - if (node.value) { - if ((invalidBlock || invalidNode) && utils2.isOpenOrClose(node)) { - return "\\" + node.value; - } - return node.value; - } - if (node.value) { - return node.value; - } - if (node.nodes) { - for (let child of node.nodes) { - output += stringify2(child); - } - } - return output; - }; - return stringify2(ast); - }; - } -}); -var require_is_number = __commonJS3({ - "node_modules/is-number/index.js"(exports, module2) { - "use strict"; - module2.exports = function(num) { - if (typeof num === "number") { - return num - num === 0; - } - if (typeof num === "string" && num.trim() !== "") { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); - } - return false; - }; - } -}); -var require_to_regex_range = __commonJS3({ - "node_modules/to-regex-range/index.js"(exports, module2) { - "use strict"; - var isNumber = require_is_number(); - var toRegexRange = (min, max, options8) => { - if (isNumber(min) === false) { - throw new TypeError("toRegexRange: expected the first argument to be a number"); - } - if (max === void 0 || min === max) { - return String(min); - } - if (isNumber(max) === false) { - throw new TypeError("toRegexRange: expected the second argument to be a number."); - } - let opts = { relaxZeros: true, ...options8 }; - if (typeof opts.strictZeros === "boolean") { - opts.relaxZeros = opts.strictZeros === false; - } - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min + ":" + max + "=" + relax + shorthand + capture + wrap; - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; - } - let a = Math.min(min, max); - let b5 = Math.max(min, max); - if (Math.abs(a - b5) === 1) { - let result = min + "|" + max; - if (opts.capture) { - return `(${result})`; - } - if (opts.wrap === false) { - return result; - } - return `(?:${result})`; - } - let isPadded = hasPadding(min) || hasPadding(max); - let state = { min, max, a, b: b5 }; - let positives = []; - let negatives = []; - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } - if (a < 0) { - let newMin = b5 < 0 ? Math.abs(b5) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } - if (b5 >= 0) { - positives = splitToPatterns(a, b5, state, opts); - } - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives, opts); - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && positives.length + negatives.length > 1) { - state.result = `(?:${state.result})`; - } - toRegexRange.cache[cacheKey] = state; - return state.result; - }; - function collatePatterns(neg, pos, options8) { - let onlyNegative = filterPatterns(neg, pos, "-", false, options8) || []; - let onlyPositive = filterPatterns(pos, neg, "", false, options8) || []; - let intersected = filterPatterns(neg, pos, "-?", true, options8) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join("|"); - } - function splitToRanges(min, max) { - let nines = 1; - let zeros = 1; - let stop = countNines(min, nines); - let stops = /* @__PURE__ */ new Set([max]); - while (min <= stop && stop <= max) { - stops.add(stop); - nines += 1; - stop = countNines(min, nines); - } - stop = countZeros(max + 1, zeros) - 1; - while (min < stop && stop <= max) { - stops.add(stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; - } - stops = [...stops]; - stops.sort(compare); - return stops; - } - function rangeToPattern(start, stop, options8) { - if (start === stop) { - return { pattern: start, count: [], digits: 0 }; - } - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ""; - let count = 0; - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; - if (startDigit === stopDigit) { - pattern += startDigit; - } else if (startDigit !== "0" || stopDigit !== "9") { - pattern += toCharacterClass(startDigit, stopDigit, options8); - } else { - count++; - } - } - if (count) { - pattern += options8.shorthand === true ? "\\d" : "[0-9]"; - } - return { pattern, count: [count], digits }; - } - function splitToPatterns(min, max, tok, options8) { - let ranges = splitToRanges(min, max); - let tokens = []; - let start = min; - let prev; - for (let i = 0; i < ranges.length; i++) { - let max2 = ranges[i]; - let obj = rangeToPattern(String(start), String(max2), options8); - let zeros = ""; - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); - } - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max2 + 1; - continue; - } - if (tok.isPadded) { - zeros = padZeros(max2, tok, options8); - } - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max2 + 1; - prev = obj; - } - return tokens; - } - function filterPatterns(arr, comparison, prefix, intersection, options8) { - let result = []; - for (let ele of arr) { - let { string } = ele; - if (!intersection && !contains(comparison, "string", string)) { - result.push(prefix + string); - } - if (intersection && contains(comparison, "string", string)) { - result.push(prefix + string); - } - } - return result; - } - function zip(a, b5) { - let arr = []; - for (let i = 0; i < a.length; i++) - arr.push([a[i], b5[i]]); - return arr; - } - function compare(a, b5) { - return a > b5 ? 1 : b5 > a ? -1 : 0; - } - function contains(arr, key, val) { - return arr.some((ele) => ele[key] === val); - } - function countNines(min, len) { - return Number(String(min).slice(0, -len) + "9".repeat(len)); - } - function countZeros(integer, zeros) { - return integer - integer % Math.pow(10, zeros); - } - function toQuantifier(digits) { - let [start = 0, stop = ""] = digits; - if (stop || start > 1) { - return `{${start + (stop ? "," + stop : "")}}`; - } - return ""; - } - function toCharacterClass(a, b5, options8) { - return `[${a}${b5 - a === 1 ? "" : "-"}${b5}]`; - } - function hasPadding(str2) { - return /^-?(0+)\d/.test(str2); - } - function padZeros(value, tok, options8) { - if (!tok.isPadded) { - return value; - } - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options8.relaxZeros !== false; - switch (diff) { - case 0: - return ""; - case 1: - return relax ? "0?" : "0"; - case 2: - return relax ? "0{0,2}" : "00"; - default: { - return relax ? `0{0,${diff}}` : `0{${diff}}`; - } - } - } - toRegexRange.cache = {}; - toRegexRange.clearCache = () => toRegexRange.cache = {}; - module2.exports = toRegexRange; - } -}); -var require_fill_range = __commonJS3({ - "node_modules/fill-range/index.js"(exports, module2) { - "use strict"; - var util = __require2("util"); - var toRegexRange = require_to_regex_range(); - var isObject22 = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - var transform22 = (toNumber) => { - return (value) => toNumber === true ? Number(value) : String(value); - }; - var isValidValue = (value) => { - return typeof value === "number" || typeof value === "string" && value !== ""; - }; - var isNumber = (num) => Number.isInteger(+num); - var zeros = (input) => { - let value = `${input}`; - let index = -1; - if (value[0] === "-") - value = value.slice(1); - if (value === "0") - return false; - while (value[++index] === "0") - ; - return index > 0; - }; - var stringify2 = (start, end, options8) => { - if (typeof start === "string" || typeof end === "string") { - return true; - } - return options8.stringify === true; - }; - var pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === "-" ? "-" : ""; - if (dash) - input = input.slice(1); - input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0"); - } - if (toNumber === false) { - return String(input); - } - return input; - }; - var toMaxLen = (input, maxLength) => { - let negative = input[0] === "-" ? "-" : ""; - if (negative) { - input = input.slice(1); - maxLength--; - } - while (input.length < maxLength) - input = "0" + input; - return negative ? "-" + input : input; - }; - var toSequence = (parts, options8) => { - parts.negatives.sort((a, b5) => a < b5 ? -1 : a > b5 ? 1 : 0); - parts.positives.sort((a, b5) => a < b5 ? -1 : a > b5 ? 1 : 0); - let prefix = options8.capture ? "" : "?:"; - let positives = ""; - let negatives = ""; - let result; - if (parts.positives.length) { - positives = parts.positives.join("|"); - } - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join("|")})`; - } - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; - } - if (options8.wrap) { - return `(${prefix}${result})`; - } - return result; - }; - var toRange = (a, b5, isNumbers, options8) => { - if (isNumbers) { - return toRegexRange(a, b5, { wrap: false, ...options8 }); - } - let start = String.fromCharCode(a); - if (a === b5) - return start; - let stop = String.fromCharCode(b5); - return `[${start}-${stop}]`; - }; - var toRegex = (start, end, options8) => { - if (Array.isArray(start)) { - let wrap = options8.wrap === true; - let prefix = options8.capture ? "" : "?:"; - return wrap ? `(${prefix}${start.join("|")})` : start.join("|"); - } - return toRegexRange(start, end, options8); - }; - var rangeError = (...args) => { - return new RangeError("Invalid range arguments: " + util.inspect(...args)); - }; - var invalidRange = (start, end, options8) => { - if (options8.strictRanges === true) - throw rangeError([start, end]); - return []; - }; - var invalidStep = (step, options8) => { - if (options8.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } - return []; - }; - var fillNumbers = (start, end, step = 1, options8 = {}) => { - let a = Number(start); - let b5 = Number(end); - if (!Number.isInteger(a) || !Number.isInteger(b5)) { - if (options8.strictRanges === true) - throw rangeError([start, end]); - return []; - } - if (a === 0) - a = 0; - if (b5 === 0) - b5 = 0; - let descending = a > b5; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify2(start, end, options8) === false; - let format3 = options8.transform || transform22(toNumber); - if (options8.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options8); - } - let parts = { negatives: [], positives: [] }; - let push = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num)); - let range = []; - let index = 0; - while (descending ? a >= b5 : a <= b5) { - if (options8.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format3(a, index), maxLen, toNumber)); - } - a = descending ? a - step : a + step; - index++; - } - if (options8.toRegex === true) { - return step > 1 ? toSequence(parts, options8) : toRegex(range, null, { wrap: false, ...options8 }); - } - return range; - }; - var fillLetters = (start, end, step = 1, options8 = {}) => { - if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { - return invalidRange(start, end, options8); - } - let format3 = options8.transform || ((val) => String.fromCharCode(val)); - let a = `${start}`.charCodeAt(0); - let b5 = `${end}`.charCodeAt(0); - let descending = a > b5; - let min = Math.min(a, b5); - let max = Math.max(a, b5); - if (options8.toRegex && step === 1) { - return toRange(min, max, false, options8); - } - let range = []; - let index = 0; - while (descending ? a >= b5 : a <= b5) { - range.push(format3(a, index)); - a = descending ? a - step : a + step; - index++; - } - if (options8.toRegex === true) { - return toRegex(range, null, { wrap: false, options: options8 }); - } - return range; - }; - var fill22 = (start, end, step, options8 = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options8); - } - if (typeof step === "function") { - return fill22(start, end, 1, { transform: step }); - } - if (isObject22(step)) { - return fill22(start, end, 0, step); - } - let opts = { ...options8 }; - if (opts.capture === true) - opts.wrap = true; - step = step || opts.step || 1; - if (!isNumber(step)) { - if (step != null && !isObject22(step)) - return invalidStep(step, opts); - return fill22(start, end, 1, step); - } - if (isNumber(start) && isNumber(end)) { - return fillNumbers(start, end, step, opts); - } - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); - }; - module2.exports = fill22; - } -}); -var require_compile = __commonJS3({ - "node_modules/braces/lib/compile.js"(exports, module2) { - "use strict"; - var fill22 = require_fill_range(); - var utils2 = require_utils2(); - var compile = (ast, options8 = {}) => { - let walk = (node, parent = {}) => { - let invalidBlock = utils2.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options8.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options8.escapeInvalid === true ? "\\" : ""; - let output = ""; - if (node.isOpen === true) { - return prefix + node.value; - } - if (node.isClose === true) { - return prefix + node.value; - } - if (node.type === "open") { - return invalid ? prefix + node.value : "("; - } - if (node.type === "close") { - return invalid ? prefix + node.value : ")"; - } - if (node.type === "comma") { - return node.prev.type === "comma" ? "" : invalid ? node.value : "|"; - } - if (node.value) { - return node.value; - } - if (node.nodes && node.ranges > 0) { - let args = utils2.reduce(node.nodes); - let range = fill22(...args, { ...options8, wrap: false, toRegex: true }); - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; - } - } - if (node.nodes) { - for (let child of node.nodes) { - output += walk(child, node); - } - } - return output; - }; - return walk(ast); - }; - module2.exports = compile; - } -}); -var require_expand = __commonJS3({ - "node_modules/braces/lib/expand.js"(exports, module2) { - "use strict"; - var fill22 = require_fill_range(); - var stringify2 = require_stringify(); - var utils2 = require_utils2(); - var append = (queue = "", stash = "", enclose = false) => { - let result = []; - queue = [].concat(queue); - stash = [].concat(stash); - if (!stash.length) - return queue; - if (!queue.length) { - return enclose ? utils2.flatten(stash).map((ele) => `{${ele}}`) : stash; - } - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); - } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === "string") - ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); - } - } - } - return utils2.flatten(result); - }; - var expand = (ast, options8 = {}) => { - let rangeLimit = options8.rangeLimit === void 0 ? 1e3 : options8.rangeLimit; - let walk = (node, parent = {}) => { - node.queue = []; - let p4 = parent; - let q8 = parent.queue; - while (p4.type !== "brace" && p4.type !== "root" && p4.parent) { - p4 = p4.parent; - q8 = p4.queue; - } - if (node.invalid || node.dollar) { - q8.push(append(q8.pop(), stringify2(node, options8))); - return; - } - if (node.type === "brace" && node.invalid !== true && node.nodes.length === 2) { - q8.push(append(q8.pop(), ["{}"])); - return; - } - if (node.nodes && node.ranges > 0) { - let args = utils2.reduce(node.nodes); - if (utils2.exceedsLimit(...args, options8.step, rangeLimit)) { - throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit."); - } - let range = fill22(...args, options8); - if (range.length === 0) { - range = stringify2(node, options8); - } - q8.push(append(q8.pop(), range)); - node.nodes = []; - return; - } - let enclose = utils2.encloseBrace(node); - let queue = node.queue; - let block = node; - while (block.type !== "brace" && block.type !== "root" && block.parent) { - block = block.parent; - queue = block.queue; - } - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; - if (child.type === "comma" && node.type === "brace") { - if (i === 1) - queue.push(""); - queue.push(""); - continue; - } - if (child.type === "close") { - q8.push(append(q8.pop(), queue, enclose)); - continue; - } - if (child.value && child.type !== "open") { - queue.push(append(queue.pop(), child.value)); - continue; - } - if (child.nodes) { - walk(child, node); - } - } - return queue; - }; - return utils2.flatten(walk(ast)); - }; - module2.exports = expand; - } -}); -var require_constants2 = __commonJS3({ - "node_modules/braces/lib/constants.js"(exports, module2) { - "use strict"; - module2.exports = { - MAX_LENGTH: 1024 * 64, - // Digits - CHAR_0: "0", - /* 0 */ - CHAR_9: "9", - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: "A", - /* A */ - CHAR_LOWERCASE_A: "a", - /* a */ - CHAR_UPPERCASE_Z: "Z", - /* Z */ - CHAR_LOWERCASE_Z: "z", - /* z */ - CHAR_LEFT_PARENTHESES: "(", - /* ( */ - CHAR_RIGHT_PARENTHESES: ")", - /* ) */ - CHAR_ASTERISK: "*", - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: "&", - /* & */ - CHAR_AT: "@", - /* @ */ - CHAR_BACKSLASH: "\\", - /* \ */ - CHAR_BACKTICK: "`", - /* ` */ - CHAR_CARRIAGE_RETURN: "\r", - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: "^", - /* ^ */ - CHAR_COLON: ":", - /* : */ - CHAR_COMMA: ",", - /* , */ - CHAR_DOLLAR: "$", - /* . */ - CHAR_DOT: ".", - /* . */ - CHAR_DOUBLE_QUOTE: '"', - /* " */ - CHAR_EQUAL: "=", - /* = */ - CHAR_EXCLAMATION_MARK: "!", - /* ! */ - CHAR_FORM_FEED: "\f", - /* \f */ - CHAR_FORWARD_SLASH: "/", - /* / */ - CHAR_HASH: "#", - /* # */ - CHAR_HYPHEN_MINUS: "-", - /* - */ - CHAR_LEFT_ANGLE_BRACKET: "<", - /* < */ - CHAR_LEFT_CURLY_BRACE: "{", - /* { */ - CHAR_LEFT_SQUARE_BRACKET: "[", - /* [ */ - CHAR_LINE_FEED: "\n", - /* \n */ - CHAR_NO_BREAK_SPACE: "\xA0", - /* \u00A0 */ - CHAR_PERCENT: "%", - /* % */ - CHAR_PLUS: "+", - /* + */ - CHAR_QUESTION_MARK: "?", - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: ">", - /* > */ - CHAR_RIGHT_CURLY_BRACE: "}", - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: "]", - /* ] */ - CHAR_SEMICOLON: ";", - /* ; */ - CHAR_SINGLE_QUOTE: "'", - /* ' */ - CHAR_SPACE: " ", - /* */ - CHAR_TAB: " ", - /* \t */ - CHAR_UNDERSCORE: "_", - /* _ */ - CHAR_VERTICAL_LINE: "|", - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF" - /* \uFEFF */ - }; - } -}); -var require_parse2 = __commonJS3({ - "node_modules/braces/lib/parse.js"(exports, module2) { - "use strict"; - var stringify2 = require_stringify(); - var { - MAX_LENGTH, - CHAR_BACKSLASH, - /* \ */ - CHAR_BACKTICK, - /* ` */ - CHAR_COMMA: CHAR_COMMA2, - /* , */ - CHAR_DOT, - /* . */ - CHAR_LEFT_PARENTHESES, - /* ( */ - CHAR_RIGHT_PARENTHESES, - /* ) */ - CHAR_LEFT_CURLY_BRACE, - /* { */ - CHAR_RIGHT_CURLY_BRACE, - /* } */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET2, - /* [ */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET2, - /* ] */ - CHAR_DOUBLE_QUOTE: CHAR_DOUBLE_QUOTE2, - /* " */ - CHAR_SINGLE_QUOTE: CHAR_SINGLE_QUOTE2, - /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE - } = require_constants2(); - var parse3 = (input, options8 = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected a string"); - } - let opts = options8 || {}; - let max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); - } - let ast = { type: "root", input, nodes: [] }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; - let memo = {}; - const advance = () => input[index++]; - const push = (node) => { - if (node.type === "text" && prev.type === "dot") { - prev.type = "text"; - } - if (prev && prev.type === "text" && node.type === "text") { - prev.value += node.value; - return; - } - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; - push({ type: "bos" }); - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - if (value === CHAR_BACKSLASH) { - push({ type: "text", value: (options8.keepEscaping ? value : "") + advance() }); - continue; - } - if (value === CHAR_RIGHT_SQUARE_BRACKET2) { - push({ type: "text", value: "\\" + value }); - continue; - } - if (value === CHAR_LEFT_SQUARE_BRACKET2) { - brackets++; - let closed = true; - let next; - while (index < length && (next = advance())) { - value += next; - if (next === CHAR_LEFT_SQUARE_BRACKET2) { - brackets++; - continue; - } - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET2) { - brackets--; - if (brackets === 0) { - break; - } - } - } - push({ type: "text", value }); - continue; - } - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ type: "paren", nodes: [] }); - stack.push(block); - push({ type: "text", value }); - continue; - } - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== "paren") { - push({ type: "text", value }); - continue; - } - block = stack.pop(); - push({ type: "text", value }); - block = stack[stack.length - 1]; - continue; - } - if (value === CHAR_DOUBLE_QUOTE2 || value === CHAR_SINGLE_QUOTE2 || value === CHAR_BACKTICK) { - let open = value; - let next; - if (options8.keepQuotes !== true) { - value = ""; - } - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } - if (next === open) { - if (options8.keepQuotes === true) - value += next; - break; - } - value += next; - } - push({ type: "text", value }); - continue; - } - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - let dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true; - let brace = { - type: "brace", - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - block = push(brace); - stack.push(block); - push({ type: "open", value }); - continue; - } - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== "brace") { - push({ type: "text", value }); - continue; - } - let type2 = "close"; - block = stack.pop(); - block.close = true; - push({ type: type2, value }); - depth--; - block = stack[stack.length - 1]; - continue; - } - if (value === CHAR_COMMA2 && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { type: "text", value: stringify2(block) }]; - } - push({ type: "comma", value }); - block.commas++; - continue; - } - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - let siblings = block.nodes; - if (depth === 0 || siblings.length === 0) { - push({ type: "text", value }); - continue; - } - if (prev.type === "dot") { - block.range = []; - prev.value += value; - prev.type = "range"; - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = "text"; - continue; - } - block.ranges++; - block.args = []; - continue; - } - if (prev.type === "range") { - siblings.pop(); - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } - push({ type: "dot", value }); - continue; - } - push({ type: "text", value }); - } - do { - block = stack.pop(); - if (block.type !== "root") { - block.nodes.forEach((node) => { - if (!node.nodes) { - if (node.type === "open") - node.isOpen = true; - if (node.type === "close") - node.isClose = true; - if (!node.nodes) - node.type = "text"; - node.invalid = true; - } - }); - let parent = stack[stack.length - 1]; - let index2 = parent.nodes.indexOf(block); - parent.nodes.splice(index2, 1, ...block.nodes); - } - } while (stack.length > 0); - push({ type: "eos" }); - return ast; - }; - module2.exports = parse3; - } -}); -var require_braces = __commonJS3({ - "node_modules/braces/index.js"(exports, module2) { - "use strict"; - var stringify2 = require_stringify(); - var compile = require_compile(); - var expand = require_expand(); - var parse3 = require_parse2(); - var braces = (input, options8 = {}) => { - let output = []; - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options8); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } - } - } else { - output = [].concat(braces.create(input, options8)); - } - if (options8 && options8.expand === true && options8.nodupes === true) { - output = [...new Set(output)]; - } - return output; - }; - braces.parse = (input, options8 = {}) => parse3(input, options8); - braces.stringify = (input, options8 = {}) => { - if (typeof input === "string") { - return stringify2(braces.parse(input, options8), options8); - } - return stringify2(input, options8); - }; - braces.compile = (input, options8 = {}) => { - if (typeof input === "string") { - input = braces.parse(input, options8); - } - return compile(input, options8); - }; - braces.expand = (input, options8 = {}) => { - if (typeof input === "string") { - input = braces.parse(input, options8); - } - let result = expand(input, options8); - if (options8.noempty === true) { - result = result.filter(Boolean); - } - if (options8.nodupes === true) { - result = [...new Set(result)]; - } - return result; - }; - braces.create = (input, options8 = {}) => { - if (input === "" || input.length < 3) { - return [input]; - } - return options8.expand !== true ? braces.compile(input, options8) : braces.expand(input, options8); - }; - module2.exports = braces; - } -}); -var require_constants22 = __commonJS3({ - "node_modules/picomatch/lib/constants.js"(exports, module2) { - "use strict"; - var path9 = __require2("path"); - var WIN_SLASH = "\\\\/"; - var WIN_NO_SLASH = `[^${WIN_SLASH}]`; - var DOT_LITERAL = "\\."; - var PLUS_LITERAL = "\\+"; - var QMARK_LITERAL = "\\?"; - var SLASH_LITERAL = "\\/"; - var ONE_CHAR = "(?=.)"; - var QMARK = "[^/]"; - var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; - var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; - var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; - var NO_DOT = `(?!${DOT_LITERAL})`; - var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; - var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; - var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; - var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; - var STAR = `${QMARK}*?`; - var POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR - }; - var WINDOWS_CHARS = { - ...POSIX_CHARS, - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` - }; - var POSIX_REGEX_SOURCE = { - alnum: "a-zA-Z0-9", - alpha: "a-zA-Z", - ascii: "\\x00-\\x7F", - blank: " \\t", - cntrl: "\\x00-\\x1F\\x7F", - digit: "0-9", - graph: "\\x21-\\x7E", - lower: "a-z", - print: "\\x20-\\x7E ", - punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", - space: " \\t\\r\\n\\v\\f", - upper: "A-Z", - word: "A-Za-z0-9_", - xdigit: "A-Fa-f0-9" - }; - module2.exports = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - "***": "*", - "**/**": "**", - "**/**/**": "**" - }, - // Digits - CHAR_0: 48, - /* 0 */ - CHAR_9: 57, - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, - /* A */ - CHAR_LOWERCASE_A: 97, - /* a */ - CHAR_UPPERCASE_Z: 90, - /* Z */ - CHAR_LOWERCASE_Z: 122, - /* z */ - CHAR_LEFT_PARENTHESES: 40, - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, - /* ) */ - CHAR_ASTERISK: 42, - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, - /* & */ - CHAR_AT: 64, - /* @ */ - CHAR_BACKWARD_SLASH: 92, - /* \ */ - CHAR_CARRIAGE_RETURN: 13, - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, - /* ^ */ - CHAR_COLON: 58, - /* : */ - CHAR_COMMA: 44, - /* , */ - CHAR_DOT: 46, - /* . */ - CHAR_DOUBLE_QUOTE: 34, - /* " */ - CHAR_EQUAL: 61, - /* = */ - CHAR_EXCLAMATION_MARK: 33, - /* ! */ - CHAR_FORM_FEED: 12, - /* \f */ - CHAR_FORWARD_SLASH: 47, - /* / */ - CHAR_GRAVE_ACCENT: 96, - /* ` */ - CHAR_HASH: 35, - /* # */ - CHAR_HYPHEN_MINUS: 45, - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, - /* [ */ - CHAR_LINE_FEED: 10, - /* \n */ - CHAR_NO_BREAK_SPACE: 160, - /* \u00A0 */ - CHAR_PERCENT: 37, - /* % */ - CHAR_PLUS: 43, - /* + */ - CHAR_QUESTION_MARK: 63, - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, - /* ] */ - CHAR_SEMICOLON: 59, - /* ; */ - CHAR_SINGLE_QUOTE: 39, - /* ' */ - CHAR_SPACE: 32, - /* */ - CHAR_TAB: 9, - /* \t */ - CHAR_UNDERSCORE: 95, - /* _ */ - CHAR_VERTICAL_LINE: 124, - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - /* \uFEFF */ - SEP: path9.sep, - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars) { - return { - "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars.STAR})` }, - "?": { type: "qmark", open: "(?:", close: ")?" }, - "+": { type: "plus", open: "(?:", close: ")+" }, - "*": { type: "star", open: "(?:", close: ")*" }, - "@": { type: "at", open: "(?:", close: ")" } - }; - }, - /** - * Create GLOB_CHARS - */ - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; - } - }; - } -}); -var require_utils22 = __commonJS3({ - "node_modules/picomatch/lib/utils.js"(exports) { - "use strict"; - var path9 = __require2("path"); - var win32 = process.platform === "win32"; - var { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = require_constants22(); - exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - exports.hasRegexChars = (str2) => REGEX_SPECIAL_CHARS.test(str2); - exports.isRegexChar = (str2) => str2.length === 1 && exports.hasRegexChars(str2); - exports.escapeRegex = (str2) => str2.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); - exports.toPosixSlashes = (str2) => str2.replace(REGEX_BACKSLASH, "/"); - exports.removeBackslashes = (str2) => { - return str2.replace(REGEX_REMOVE_BACKSLASH, (match) => { - return match === "\\" ? "" : match; - }); - }; - exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split(".").map(Number); - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; - } - return false; - }; - exports.isWindows = (options8) => { - if (options8 && typeof options8.windows === "boolean") { - return options8.windows; - } - return win32 === true || path9.sep === "\\"; - }; - exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) - return input; - if (input[idx - 1] === "\\") - return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; - }; - exports.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith("./")) { - output = output.slice(2); - state.prefix = "./"; - } - return output; - }; - exports.wrapOutput = (input, state = {}, options8 = {}) => { - const prepend = options8.contains ? "" : "^"; - const append = options8.contains ? "" : "$"; - let output = `${prepend}(?:${input})${append}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } - return output; - }; - } -}); -var require_scan = __commonJS3({ - "node_modules/picomatch/lib/scan.js"(exports, module2) { - "use strict"; - var utils2 = require_utils22(); - var { - CHAR_ASTERISK: CHAR_ASTERISK2, - /* * */ - CHAR_AT, - /* @ */ - CHAR_BACKWARD_SLASH, - /* \ */ - CHAR_COMMA: CHAR_COMMA2, - /* , */ - CHAR_DOT, - /* . */ - CHAR_EXCLAMATION_MARK, - /* ! */ - CHAR_FORWARD_SLASH, - /* / */ - CHAR_LEFT_CURLY_BRACE, - /* { */ - CHAR_LEFT_PARENTHESES, - /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET2, - /* [ */ - CHAR_PLUS, - /* + */ - CHAR_QUESTION_MARK, - /* ? */ - CHAR_RIGHT_CURLY_BRACE, - /* } */ - CHAR_RIGHT_PARENTHESES, - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET2 - /* ] */ - } = require_constants22(); - var isPathSeparator = (code) => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; - }; - var depth = (token) => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; - } - }; - var scan = (input, options8) => { - const opts = options8 || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str2 = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let negatedExtglob = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { value: "", depth: 0, isGlob: false }; - const eos = () => index >= length; - const peek = () => str2.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str2.charCodeAt(++index); - }; - while (index < length) { - code = advance(); - let next; - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - if (code === CHAR_LEFT_CURLY_BRACE) { - braceEscaped = true; - } - continue; - } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { - braces++; - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (code === CHAR_LEFT_CURLY_BRACE) { - braces++; - continue; - } - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (braceEscaped !== true && code === CHAR_COMMA2) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_RIGHT_CURLY_BRACE) { - braces--; - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: "", depth: 0, isGlob: false }; - if (finished === true) - continue; - if (prev === CHAR_DOT && index === start + 1) { - start += 2; - continue; - } - lastIndex = index + 1; - continue; - } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK2 || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; - if (code === CHAR_EXCLAMATION_MARK && index === start) { - negatedExtglob = true; - } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } - if (code === CHAR_ASTERISK2) { - if (prev === CHAR_ASTERISK2) - isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_LEFT_SQUARE_BRACKET2) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET2) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; - break; - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - finished = true; - break; - } - } - continue; - } - break; - } - if (isGlob === true) { - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; - } - let base = str2; - let prefix = ""; - let glob = ""; - if (start > 0) { - prefix = str2.slice(0, start); - str2 = str2.slice(start); - lastIndex -= start; - } - if (base && isGlob === true && lastIndex > 0) { - base = str2.slice(0, lastIndex); - glob = str2.slice(lastIndex); - } else if (isGlob === true) { - base = ""; - glob = str2; - } else { - base = str2; - } - if (base && base !== "" && base !== "/" && base !== str2) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); - } - } - if (opts.unescape === true) { - if (glob) - glob = utils2.removeBackslashes(glob); - if (base && backslashes === true) { - base = utils2.removeBackslashes(base); - } - } - const state = { - prefix, - input, - start, - base, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated, - negatedExtglob - }; - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); - } - state.tokens = tokens; - } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; - for (let idx = 0; idx < slashes.length; idx++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n, i); - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; - } - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } - if (idx !== 0 || value !== "") { - parts.push(value); - } - prevIndex = i; - } - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } - } - state.slashes = slashes; - state.parts = parts; - } - return state; - }; - module2.exports = scan; - } -}); -var require_parse22 = __commonJS3({ - "node_modules/picomatch/lib/parse.js"(exports, module2) { - "use strict"; - var constants = require_constants22(); - var utils2 = require_utils22(); - var { - MAX_LENGTH, - POSIX_REGEX_SOURCE, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS - } = constants; - var expandRange = (args, options8) => { - if (typeof options8.expandRange === "function") { - return options8.expandRange(...args, options8); - } - args.sort(); - const value = `[${args.join("-")}]`; - try { - new RegExp(value); - } catch (ex) { - return args.map((v7) => utils2.escapeRegex(v7)).join(".."); - } - return value; - }; - var syntaxError = (type2, char) => { - return `Missing ${type2}: "${char}" - use "\\\\${char}" to match literal characters`; - }; - var parse3 = (input, options8) => { - if (typeof input !== "string") { - throw new TypeError("Expected a string"); - } - input = REPLACEMENTS[input] || input; - const opts = { ...options8 }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - let len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - const bos = { type: "bos", value: "", output: opts.prepend || "" }; - const tokens = [bos]; - const capture = opts.capture ? "" : "?:"; - const win32 = utils2.isWindows(options8); - const PLATFORM_CHARS = constants.globChars(win32); - const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; - const globstar = (opts2) => { - return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; - const nodot = opts.dot ? "" : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; - if (opts.capture) { - star = `(${star})`; - } - if (typeof opts.noext === "boolean") { - opts.noextglob = opts.noext; - } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: "", - output: "", - prefix: "", - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils2.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; - const eos = () => state.index === len - 1; - const peek = state.peek = (n = 1) => input[state.index + n]; - const advance = state.advance = () => input[++state.index] || ""; - const remaining = () => input.slice(state.index + 1); - const consume = (value2 = "", num = 0) => { - state.consumed += value2; - state.index += num; - }; - const append = (token) => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; - const negate = () => { - let count = 1; - while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { - advance(); - state.start++; - count++; - } - if (count % 2 === 0) { - return false; - } - state.negated = true; - state.start++; - return true; - }; - const increment = (type2) => { - state[type2]++; - stack.push(type2); - }; - const decrement = (type2) => { - state[type2]--; - stack.pop(); - }; - const push = (tok) => { - if (prev.type === "globstar") { - const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); - const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); - if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = "star"; - prev.value = "*"; - prev.output = star; - state.output += prev.output; - } - } - if (extglobs.length && tok.type !== "paren") { - extglobs[extglobs.length - 1].inner += tok.value; - } - if (tok.value || tok.output) - append(tok); - if (prev && prev.type === "text" && tok.type === "text") { - prev.value += tok.value; - prev.output = (prev.output || "") + tok.value; - return; - } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; - const extglobOpen = (type2, value2) => { - const token = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: "" }; - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? "(" : "") + token.open; - increment("parens"); - push({ type: type2, value: value2, output: state.output ? "" : ONE_CHAR }); - push({ type: "paren", extglob: true, value: advance(), output }); - extglobs.push(token); - }; - const extglobClose = (token) => { - let output = token.close + (opts.capture ? ")" : ""); - let rest; - if (token.type === "negate") { - let extglobStar = star; - if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { - extglobStar = globstar(opts); - } - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } - if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { - const expression = parse3(rest, { ...options8, fastpaths: false }).output; - output = token.close = `)${expression})${extglobStar})`; - } - if (token.prev.type === "bos") { - state.negatedExtglob = true; - } - } - push({ type: "paren", extglob: true, value, output }); - decrement("parens"); - }; - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m3, esc, chars, first, rest, index) => { - if (first === "\\") { - backslashes = true; - return m3; - } - if (first === "?") { - if (esc) { - return esc + first + (rest ? QMARK.repeat(rest.length) : ""); - } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ""); - } - return QMARK.repeat(chars.length); - } - if (first === ".") { - return DOT_LITERAL.repeat(chars.length); - } - if (first === "*") { - if (esc) { - return esc + first + (rest ? star : ""); - } - return star; - } - return esc ? m3 : `\\${m3}`; - }); - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ""); - } else { - output = output.replace(/\\+/g, (m3) => { - return m3.length % 2 === 0 ? "\\\\" : m3 ? "\\" : ""; - }); - } - } - if (output === input && opts.contains === true) { - state.output = input; - return state; - } - state.output = utils2.wrapOutput(output, state, options8); - return state; - } - while (!eos()) { - value = advance(); - if (value === "\0") { - continue; - } - if (value === "\\") { - const next = peek(); - if (next === "/" && opts.bash !== true) { - continue; - } - if (next === "." || next === ";") { - continue; - } - if (!next) { - value += "\\"; - push({ type: "text", value }); - continue; - } - const match = /^\\+/.exec(remaining()); - let slashes = 0; - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value += "\\"; - } - } - if (opts.unescape === true) { - value = advance(); - } else { - value += advance(); - } - if (state.brackets === 0) { - push({ type: "text", value }); - continue; - } - } - if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { - if (opts.posix !== false && value === ":") { - const inner = prev.value.slice(1); - if (inner.includes("[")) { - prev.posix = true; - if (inner.includes(":")) { - const idx = prev.value.lastIndexOf("["); - const pre = prev.value.slice(0, idx); - const rest2 = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE[rest2]; - if (posix) { - prev.value = pre + posix; - state.backtrack = true; - advance(); - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } - continue; - } - } - } - } - if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { - value = `\\${value}`; - } - if (value === "]" && (prev.value === "[" || prev.value === "[^")) { - value = `\\${value}`; - } - if (opts.posix === true && value === "!" && prev.value === "[") { - value = "^"; - } - prev.value += value; - append({ value }); - continue; - } - if (state.quotes === 1 && value !== '"') { - value = utils2.escapeRegex(value); - prev.value += value; - append({ value }); - continue; - } - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push({ type: "text", value }); - } - continue; - } - if (value === "(") { - increment("parens"); - push({ type: "paren", value }); - continue; - } - if (value === ")") { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "(")); - } - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } - push({ type: "paren", value, output: state.parens ? ")" : "\\)" }); - decrement("parens"); - continue; - } - if (value === "[") { - if (opts.nobracket === true || !remaining().includes("]")) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("closing", "]")); - } - value = `\\${value}`; - } else { - increment("brackets"); - } - push({ type: "bracket", value }); - continue; - } - if (value === "]") { - if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { - push({ type: "text", value, output: `\\${value}` }); - continue; - } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "[")); - } - push({ type: "text", value, output: `\\${value}` }); - continue; - } - decrement("brackets"); - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { - value = `/${value}`; - } - prev.value += value; - append({ value }); - if (opts.literalBrackets === false || utils2.hasRegexChars(prevValue)) { - continue; - } - const escaped = utils2.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } - if (value === "{" && opts.nobrace !== true) { - increment("braces"); - const open = { - type: "brace", - value, - output: "(", - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces.push(open); - push(open); - continue; - } - if (value === "}") { - const brace = braces[braces.length - 1]; - if (opts.nobrace === true || !brace) { - push({ type: "text", value, output: value }); - continue; - } - let output = ")"; - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === "brace") { - break; - } - if (arr[i].type !== "dots") { - range.unshift(arr[i].value); - } - } - output = expandRange(range, opts); - state.backtrack = true; - } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = "\\{"; - value = output = "\\}"; - state.output = out; - for (const t12 of toks) { - state.output += t12.output || t12.value; - } - } - push({ type: "brace", value, output }); - decrement("braces"); - braces.pop(); - continue; - } - if (value === "|") { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push({ type: "text", value }); - continue; - } - if (value === ",") { - let output = value; - const brace = braces[braces.length - 1]; - if (brace && stack[stack.length - 1] === "braces") { - brace.comma = true; - output = "|"; - } - push({ type: "comma", value, output }); - continue; - } - if (value === "/") { - if (prev.type === "dot" && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ""; - state.output = ""; - tokens.pop(); - prev = bos; - continue; - } - push({ type: "slash", value, output: SLASH_LITERAL }); - continue; - } - if (value === ".") { - if (state.braces > 0 && prev.type === "dot") { - if (prev.value === ".") - prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = "dots"; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } - if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { - push({ type: "text", value, output: DOT_LITERAL }); - continue; - } - push({ type: "dot", value, output: DOT_LITERAL }); - continue; - } - if (value === "?") { - const isGroup = prev && prev.value === "("; - if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("qmark", value); - continue; - } - if (prev && prev.type === "paren") { - const next = peek(); - let output = value; - if (next === "<" && !utils2.supportsLookbehinds()) { - throw new Error("Node.js v10 or higher is required for regex lookbehinds"); - } - if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value}`; - } - push({ type: "text", value, output }); - continue; - } - if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { - push({ type: "qmark", value, output: QMARK_NO_DOT }); - continue; - } - push({ type: "qmark", value, output: QMARK }); - continue; - } - if (value === "!") { - if (opts.noextglob !== true && peek() === "(") { - if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { - extglobOpen("negate", value); - continue; - } - } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } - if (value === "+") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("plus", value); - continue; - } - if (prev && prev.value === "(" || opts.regex === false) { - push({ type: "plus", value, output: PLUS_LITERAL }); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { - push({ type: "plus", value }); - continue; - } - push({ type: "plus", value: PLUS_LITERAL }); - continue; - } - if (value === "@") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - push({ type: "at", extglob: true, value, output: "" }); - continue; - } - push({ type: "text", value }); - continue; - } - if (value !== "*") { - if (value === "$" || value === "^") { - value = `\\${value}`; - } - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match) { - value += match[0]; - state.index += match[0].length; - } - push({ type: "text", value }); - continue; - } - if (prev && (prev.type === "globstar" || prev.star === true)) { - prev.type = "star"; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; - } - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen("star", value); - continue; - } - if (prev.type === "star") { - if (opts.noglobstar === true) { - consume(value); - continue; - } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === "slash" || prior.type === "bos"; - const afterStar = before && (before.type === "star" || before.type === "globstar"); - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { - push({ type: "star", value, output: "" }); - continue; - } - const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); - const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); - if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { - push({ type: "star", value, output: "" }); - continue; - } - while (rest.slice(0, 3) === "/**") { - const after = input[state.index + 4]; - if (after && after !== "/") { - break; - } - rest = rest.slice(3); - consume("/**", 3); - } - if (prior.type === "bos" && eos()) { - prev.type = "globstar"; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { - const end = rest[1] !== void 0 ? "|$" : ""; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - if (prior.type === "bos" && rest[0] === "/") { - prev.type = "globstar"; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - state.output = state.output.slice(0, -prev.output.length); - prev.type = "globstar"; - prev.output = globstar(opts); - prev.value += value; - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } - const token = { type: "star", value, output: star }; - if (opts.bash === true) { - token.output = ".*?"; - if (prev.type === "bos" || prev.type === "slash") { - token.output = nodot + token.output; - } - push(token); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { - token.output = value; - push(token); - continue; - } - if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { - if (prev.type === "dot") { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; - } else { - state.output += nodot; - prev.output += nodot; - } - if (peek() !== "*") { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } - } - push(token); - } - while (state.brackets > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", "]")); - state.output = utils2.escapeLast(state.output, "["); - decrement("brackets"); - } - while (state.parens > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", ")")); - state.output = utils2.escapeLast(state.output, "("); - decrement("parens"); - } - while (state.braces > 0) { - if (opts.strictBrackets === true) - throw new SyntaxError(syntaxError("closing", "}")); - state.output = utils2.escapeLast(state.output, "{"); - decrement("braces"); - } - if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { - push({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL}?` }); - } - if (state.backtrack === true) { - state.output = ""; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; - if (token.suffix) { - state.output += token.suffix; - } - } - } - return state; - }; - parse3.fastpaths = (input, options8) => { - const opts = { ...options8 }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - const len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - input = REPLACEMENTS[input] || input; - const win32 = utils2.isWindows(options8); - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants.globChars(win32); - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? "" : "?:"; - const state = { negated: false, prefix: "" }; - let star = opts.bash === true ? ".*?" : STAR; - if (opts.capture) { - star = `(${star})`; - } - const globstar = (opts2) => { - if (opts2.noglobstar === true) - return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; - const create = (str2) => { - switch (str2) { - case "*": - return `${nodot}${ONE_CHAR}${star}`; - case ".*": - return `${DOT_LITERAL}${ONE_CHAR}${star}`; - case "*.*": - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - case "*/*": - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - case "**": - return nodot + globstar(opts); - case "**/*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; - case "**/*.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - case "**/.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; - default: { - const match = /^(.*?)\.(\w+)$/.exec(str2); - if (!match) - return; - const source2 = create(match[1]); - if (!source2) - return; - return source2 + DOT_LITERAL + match[2]; - } - } - }; - const output = utils2.removePrefix(input, state); - let source = create(output); - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; - } - return source; - }; - module2.exports = parse3; - } -}); -var require_picomatch = __commonJS3({ - "node_modules/picomatch/lib/picomatch.js"(exports, module2) { - "use strict"; - var path9 = __require2("path"); - var scan = require_scan(); - var parse3 = require_parse22(); - var utils2 = require_utils22(); - var constants = require_constants22(); - var isObject22 = (val) => val && typeof val === "object" && !Array.isArray(val); - var picomatch = (glob, options8, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map((input) => picomatch(input, options8, returnState)); - const arrayMatcher = (str2) => { - for (const isMatch of fns) { - const state2 = isMatch(str2); - if (state2) - return state2; - } - return false; - }; - return arrayMatcher; - } - const isState = isObject22(glob) && glob.tokens && glob.input; - if (glob === "" || typeof glob !== "string" && !isState) { - throw new TypeError("Expected pattern to be a non-empty string"); - } - const opts = options8 || {}; - const posix = utils2.isWindows(options8); - const regex = isState ? picomatch.compileRe(glob, options8) : picomatch.makeRe(glob, options8, false, true); - const state = regex.state; - delete regex.state; - let isIgnored2 = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options8, ignore: null, onMatch: null, onResult: null }; - isIgnored2 = picomatch(opts.ignore, ignoreOpts, returnState); - } - const matcher = (input, returnObject = false) => { - const { isMatch, match, output } = picomatch.test(input, regex, options8, { glob, posix }); - const result = { glob, state, regex, posix, input, output, match, isMatch }; - if (typeof opts.onResult === "function") { - opts.onResult(result); - } - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; - } - if (isIgnored2(input)) { - if (typeof opts.onIgnore === "function") { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; - } - if (typeof opts.onMatch === "function") { - opts.onMatch(result); - } - return returnObject ? result : true; - }; - if (returnState) { - matcher.state = state; - } - return matcher; - }; - picomatch.test = (input, regex, options8, { glob, posix } = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected input to be a string"); - } - if (input === "") { - return { isMatch: false, output: "" }; - } - const opts = options8 || {}; - const format3 = opts.format || (posix ? utils2.toPosixSlashes : null); - let match = input === glob; - let output = match && format3 ? format3(input) : input; - if (match === false) { - output = format3 ? format3(input) : input; - match = output === glob; - } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options8, posix); - } else { - match = regex.exec(output); - } - } - return { isMatch: Boolean(match), match, output }; - }; - picomatch.matchBase = (input, glob, options8, posix = utils2.isWindows(options8)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options8); - return regex.test(path9.basename(input)); - }; - picomatch.isMatch = (str2, patterns, options8) => picomatch(patterns, options8)(str2); - picomatch.parse = (pattern, options8) => { - if (Array.isArray(pattern)) - return pattern.map((p4) => picomatch.parse(p4, options8)); - return parse3(pattern, { ...options8, fastpaths: false }); - }; - picomatch.scan = (input, options8) => scan(input, options8); - picomatch.compileRe = (state, options8, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return state.output; - } - const opts = options8 || {}; - const prepend = opts.contains ? "" : "^"; - const append = opts.contains ? "" : "$"; - let source = `${prepend}(?:${state.output})${append}`; - if (state && state.negated === true) { - source = `^(?!${source}).*$`; - } - const regex = picomatch.toRegex(source, options8); - if (returnState === true) { - regex.state = state; - } - return regex; - }; - picomatch.makeRe = (input, options8 = {}, returnOutput = false, returnState = false) => { - if (!input || typeof input !== "string") { - throw new TypeError("Expected a non-empty string"); - } - let parsed = { negated: false, fastpaths: true }; - if (options8.fastpaths !== false && (input[0] === "." || input[0] === "*")) { - parsed.output = parse3.fastpaths(input, options8); - } - if (!parsed.output) { - parsed = parse3(input, options8); - } - return picomatch.compileRe(parsed, options8, returnOutput, returnState); - }; - picomatch.toRegex = (source, options8) => { - try { - const opts = options8 || {}; - return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); - } catch (err) { - if (options8 && options8.debug === true) - throw err; - return /$^/; - } - }; - picomatch.constants = constants; - module2.exports = picomatch; - } -}); -var require_picomatch2 = __commonJS3({ - "node_modules/picomatch/index.js"(exports, module2) { - "use strict"; - module2.exports = require_picomatch(); - } -}); -var require_micromatch = __commonJS3({ - "node_modules/micromatch/index.js"(exports, module2) { - "use strict"; - var util = __require2("util"); - var braces = require_braces(); - var picomatch = require_picomatch2(); - var utils2 = require_utils22(); - var isEmptyString = (val) => val === "" || val === "./"; - var micromatch2 = (list, patterns, options8) => { - patterns = [].concat(patterns); - list = [].concat(list); - let omit2 = /* @__PURE__ */ new Set(); - let keep = /* @__PURE__ */ new Set(); - let items = /* @__PURE__ */ new Set(); - let negatives = 0; - let onResult = (state) => { - items.add(state.output); - if (options8 && options8.onResult) { - options8.onResult(state); - } - }; - for (let i = 0; i < patterns.length; i++) { - let isMatch = picomatch(String(patterns[i]), { ...options8, onResult }, true); - let negated = isMatch.state.negated || isMatch.state.negatedExtglob; - if (negated) - negatives++; - for (let item of list) { - let matched = isMatch(item, true); - let match = negated ? !matched.isMatch : matched.isMatch; - if (!match) - continue; - if (negated) { - omit2.add(matched.output); - } else { - omit2.delete(matched.output); - keep.add(matched.output); - } - } - } - let result = negatives === patterns.length ? [...items] : [...keep]; - let matches = result.filter((item) => !omit2.has(item)); - if (options8 && matches.length === 0) { - if (options8.failglob === true) { - throw new Error(`No matches found for "${patterns.join(", ")}"`); - } - if (options8.nonull === true || options8.nullglob === true) { - return options8.unescape ? patterns.map((p4) => p4.replace(/\\/g, "")) : patterns; - } - } - return matches; - }; - micromatch2.match = micromatch2; - micromatch2.matcher = (pattern, options8) => picomatch(pattern, options8); - micromatch2.isMatch = (str2, patterns, options8) => picomatch(patterns, options8)(str2); - micromatch2.any = micromatch2.isMatch; - micromatch2.not = (list, patterns, options8 = {}) => { - patterns = [].concat(patterns).map(String); - let result = /* @__PURE__ */ new Set(); - let items = []; - let onResult = (state) => { - if (options8.onResult) - options8.onResult(state); - items.push(state.output); - }; - let matches = new Set(micromatch2(list, patterns, { ...options8, onResult })); - for (let item of items) { - if (!matches.has(item)) { - result.add(item); - } - } - return [...result]; - }; - micromatch2.contains = (str2, pattern, options8) => { - if (typeof str2 !== "string") { - throw new TypeError(`Expected a string: "${util.inspect(str2)}"`); - } - if (Array.isArray(pattern)) { - return pattern.some((p4) => micromatch2.contains(str2, p4, options8)); - } - if (typeof pattern === "string") { - if (isEmptyString(str2) || isEmptyString(pattern)) { - return false; - } - if (str2.includes(pattern) || str2.startsWith("./") && str2.slice(2).includes(pattern)) { - return true; - } - } - return micromatch2.isMatch(str2, pattern, { ...options8, contains: true }); - }; - micromatch2.matchKeys = (obj, patterns, options8) => { - if (!utils2.isObject(obj)) { - throw new TypeError("Expected the first argument to be an object"); - } - let keys = micromatch2(Object.keys(obj), patterns, options8); - let res = {}; - for (let key of keys) - res[key] = obj[key]; - return res; - }; - micromatch2.some = (list, patterns, options8) => { - let items = [].concat(list); - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch(String(pattern), options8); - if (items.some((item) => isMatch(item))) { - return true; - } - } - return false; - }; - micromatch2.every = (list, patterns, options8) => { - let items = [].concat(list); - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch(String(pattern), options8); - if (!items.every((item) => isMatch(item))) { - return false; - } - } - return true; - }; - micromatch2.all = (str2, patterns, options8) => { - if (typeof str2 !== "string") { - throw new TypeError(`Expected a string: "${util.inspect(str2)}"`); - } - return [].concat(patterns).every((p4) => picomatch(p4, options8)(str2)); - }; - micromatch2.capture = (glob, input, options8) => { - let posix = utils2.isWindows(options8); - let regex = picomatch.makeRe(String(glob), { ...options8, capture: true }); - let match = regex.exec(posix ? utils2.toPosixSlashes(input) : input); - if (match) { - return match.slice(1).map((v7) => v7 === void 0 ? "" : v7); - } - }; - micromatch2.makeRe = (...args) => picomatch.makeRe(...args); - micromatch2.scan = (...args) => picomatch.scan(...args); - micromatch2.parse = (patterns, options8) => { - let res = []; - for (let pattern of [].concat(patterns || [])) { - for (let str2 of braces(String(pattern), options8)) { - res.push(picomatch.parse(str2, options8)); - } - } - return res; - }; - micromatch2.braces = (pattern, options8) => { - if (typeof pattern !== "string") - throw new TypeError("Expected a string"); - if (options8 && options8.nobrace === true || !/\{.*\}/.test(pattern)) { - return [pattern]; - } - return braces(pattern, options8); - }; - micromatch2.braceExpand = (pattern, options8) => { - if (typeof pattern !== "string") - throw new TypeError("Expected a string"); - return micromatch2.braces(pattern, { ...options8, expand: true }); - }; - module2.exports = micromatch2; - } -}); -var require_pattern = __commonJS3({ - "node_modules/fast-glob/out/utils/pattern.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; - var path9 = __require2("path"); - var globParent = require_glob_parent(); - var micromatch2 = require_micromatch(); - var GLOBSTAR = "**"; - var ESCAPE_SYMBOL = "\\"; - var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; - var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; - var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; - var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; - var BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; - var DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; - function isStaticPattern(pattern, options8 = {}) { - return !isDynamicPattern(pattern, options8); - } - exports.isStaticPattern = isStaticPattern; - function isDynamicPattern(pattern, options8 = {}) { - if (pattern === "") { - return false; - } - if (options8.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { - return true; - } - if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { - return true; - } - if (options8.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { - return true; - } - if (options8.braceExpansion !== false && hasBraceExpansion(pattern)) { - return true; - } - return false; - } - exports.isDynamicPattern = isDynamicPattern; - function hasBraceExpansion(pattern) { - const openingBraceIndex = pattern.indexOf("{"); - if (openingBraceIndex === -1) { - return false; - } - const closingBraceIndex = pattern.indexOf("}", openingBraceIndex + 1); - if (closingBraceIndex === -1) { - return false; - } - const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); - return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); - } - function convertToPositivePattern(pattern) { - return isNegativePattern(pattern) ? pattern.slice(1) : pattern; - } - exports.convertToPositivePattern = convertToPositivePattern; - function convertToNegativePattern(pattern) { - return "!" + pattern; - } - exports.convertToNegativePattern = convertToNegativePattern; - function isNegativePattern(pattern) { - return pattern.startsWith("!") && pattern[1] !== "("; - } - exports.isNegativePattern = isNegativePattern; - function isPositivePattern(pattern) { - return !isNegativePattern(pattern); - } - exports.isPositivePattern = isPositivePattern; - function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); - } - exports.getNegativePatterns = getNegativePatterns; - function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); - } - exports.getPositivePatterns = getPositivePatterns; - function getPatternsInsideCurrentDirectory(patterns) { - return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); - } - exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; - function getPatternsOutsideCurrentDirectory(patterns) { - return patterns.filter(isPatternRelatedToParentDirectory); - } - exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; - function isPatternRelatedToParentDirectory(pattern) { - return pattern.startsWith("..") || pattern.startsWith("./.."); - } - exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; - function getBaseDirectory(pattern) { - return globParent(pattern, { flipBackslashes: false }); - } - exports.getBaseDirectory = getBaseDirectory; - function hasGlobStar(pattern) { - return pattern.includes(GLOBSTAR); - } - exports.hasGlobStar = hasGlobStar; - function endsWithSlashGlobStar(pattern) { - return pattern.endsWith("/" + GLOBSTAR); - } - exports.endsWithSlashGlobStar = endsWithSlashGlobStar; - function isAffectDepthOfReadingPattern(pattern) { - const basename = path9.basename(pattern); - return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); - } - exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; - function expandPatternsWithBraceExpansion(patterns) { - return patterns.reduce((collection, pattern) => { - return collection.concat(expandBraceExpansion(pattern)); - }, []); - } - exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; - function expandBraceExpansion(pattern) { - const patterns = micromatch2.braces(pattern, { expand: true, nodupes: true }); - patterns.sort((a, b5) => a.length - b5.length); - return patterns.filter((pattern2) => pattern2 !== ""); - } - exports.expandBraceExpansion = expandBraceExpansion; - function getPatternParts(pattern, options8) { - let { parts } = micromatch2.scan(pattern, Object.assign(Object.assign({}, options8), { parts: true })); - if (parts.length === 0) { - parts = [pattern]; - } - if (parts[0].startsWith("/")) { - parts[0] = parts[0].slice(1); - parts.unshift(""); - } - return parts; - } - exports.getPatternParts = getPatternParts; - function makeRe(pattern, options8) { - return micromatch2.makeRe(pattern, options8); - } - exports.makeRe = makeRe; - function convertPatternsToRe(patterns, options8) { - return patterns.map((pattern) => makeRe(pattern, options8)); - } - exports.convertPatternsToRe = convertPatternsToRe; - function matchAny(entry, patternsRe) { - return patternsRe.some((patternRe) => patternRe.test(entry)); - } - exports.matchAny = matchAny; - function removeDuplicateSlashes(pattern) { - return pattern.replace(DOUBLE_SLASH_RE, "/"); - } - exports.removeDuplicateSlashes = removeDuplicateSlashes; - } -}); -var require_merge2 = __commonJS3({ - "node_modules/merge2/index.js"(exports, module2) { - "use strict"; - var Stream = __require2("stream"); - var PassThrough = Stream.PassThrough; - var slice = Array.prototype.slice; - module2.exports = merge2; - function merge2() { - const streamsQueue = []; - const args = slice.call(arguments); - let merging = false; - let options8 = args[args.length - 1]; - if (options8 && !Array.isArray(options8) && options8.pipe == null) { - args.pop(); - } else { - options8 = {}; - } - const doEnd = options8.end !== false; - const doPipeError = options8.pipeError === true; - if (options8.objectMode == null) { - options8.objectMode = true; - } - if (options8.highWaterMark == null) { - options8.highWaterMark = 64 * 1024; - } - const mergedStream = PassThrough(options8); - function addStream() { - for (let i = 0, len = arguments.length; i < len; i++) { - streamsQueue.push(pauseStreams(arguments[i], options8)); - } - mergeStream(); - return this; - } - function mergeStream() { - if (merging) { - return; - } - merging = true; - let streams = streamsQueue.shift(); - if (!streams) { - process.nextTick(endStream); - return; - } - if (!Array.isArray(streams)) { - streams = [streams]; - } - let pipesCount = streams.length + 1; - function next() { - if (--pipesCount > 0) { - return; - } - merging = false; - mergeStream(); - } - function pipe(stream) { - function onend() { - stream.removeListener("merge2UnpipeEnd", onend); - stream.removeListener("end", onend); - if (doPipeError) { - stream.removeListener("error", onerror); - } - next(); - } - function onerror(err) { - mergedStream.emit("error", err); - } - if (stream._readableState.endEmitted) { - return next(); - } - stream.on("merge2UnpipeEnd", onend); - stream.on("end", onend); - if (doPipeError) { - stream.on("error", onerror); - } - stream.pipe(mergedStream, { end: false }); - stream.resume(); - } - for (let i = 0; i < streams.length; i++) { - pipe(streams[i]); - } - next(); - } - function endStream() { - merging = false; - mergedStream.emit("queueDrain"); - if (doEnd) { - mergedStream.end(); - } - } - mergedStream.setMaxListeners(0); - mergedStream.add = addStream; - mergedStream.on("unpipe", function(stream) { - stream.emit("merge2UnpipeEnd"); - }); - if (args.length) { - addStream.apply(null, args); - } - return mergedStream; - } - function pauseStreams(streams, options8) { - if (!Array.isArray(streams)) { - if (!streams._readableState && streams.pipe) { - streams = streams.pipe(PassThrough(options8)); - } - if (!streams._readableState || !streams.pause || !streams.pipe) { - throw new Error("Only readable stream can be merged."); - } - streams.pause(); - } else { - for (let i = 0, len = streams.length; i < len; i++) { - streams[i] = pauseStreams(streams[i], options8); - } - } - return streams; - } - } -}); -var require_stream = __commonJS3({ - "node_modules/fast-glob/out/utils/stream.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.merge = void 0; - var merge2 = require_merge2(); - function merge3(streams) { - const mergedStream = merge2(streams); - streams.forEach((stream) => { - stream.once("error", (error2) => mergedStream.emit("error", error2)); - }); - mergedStream.once("close", () => propagateCloseEventToSources(streams)); - mergedStream.once("end", () => propagateCloseEventToSources(streams)); - return mergedStream; - } - exports.merge = merge3; - function propagateCloseEventToSources(streams) { - streams.forEach((stream) => stream.emit("close")); - } - } -}); -var require_string = __commonJS3({ - "node_modules/fast-glob/out/utils/string.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isEmpty = exports.isString = void 0; - function isString(input) { - return typeof input === "string"; - } - exports.isString = isString; - function isEmpty(input) { - return input === ""; - } - exports.isEmpty = isEmpty; - } -}); -var require_utils3 = __commonJS3({ - "node_modules/fast-glob/out/utils/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; - var array2 = require_array(); - exports.array = array2; - var errno = require_errno(); - exports.errno = errno; - var fs52 = require_fs(); - exports.fs = fs52; - var path9 = require_path(); - exports.path = path9; - var pattern = require_pattern(); - exports.pattern = pattern; - var stream = require_stream(); - exports.stream = stream; - var string = require_string(); - exports.string = string; - } -}); -var require_tasks = __commonJS3({ - "node_modules/fast-glob/out/managers/tasks.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; - var utils2 = require_utils3(); - function generate(input, settings) { - const patterns = processPatterns(input, settings); - const ignore = processPatterns(settings.ignore, settings); - const positivePatterns = getPositivePatterns(patterns); - const negativePatterns = getNegativePatternsAsPositive(patterns, ignore); - const staticPatterns = positivePatterns.filter((pattern) => utils2.pattern.isStaticPattern(pattern, settings)); - const dynamicPatterns = positivePatterns.filter((pattern) => utils2.pattern.isDynamicPattern(pattern, settings)); - const staticTasks = convertPatternsToTasks( - staticPatterns, - negativePatterns, - /* dynamic */ - false - ); - const dynamicTasks = convertPatternsToTasks( - dynamicPatterns, - negativePatterns, - /* dynamic */ - true - ); - return staticTasks.concat(dynamicTasks); - } - exports.generate = generate; - function processPatterns(input, settings) { - let patterns = input; - if (settings.braceExpansion) { - patterns = utils2.pattern.expandPatternsWithBraceExpansion(patterns); - } - if (settings.baseNameMatch) { - patterns = patterns.map((pattern) => pattern.includes("/") ? pattern : `**/${pattern}`); - } - return patterns.map((pattern) => utils2.pattern.removeDuplicateSlashes(pattern)); - } - function convertPatternsToTasks(positive, negative, dynamic) { - const tasks = []; - const patternsOutsideCurrentDirectory = utils2.pattern.getPatternsOutsideCurrentDirectory(positive); - const patternsInsideCurrentDirectory = utils2.pattern.getPatternsInsideCurrentDirectory(positive); - const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); - const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); - tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); - if ("." in insideCurrentDirectoryGroup) { - tasks.push(convertPatternGroupToTask(".", patternsInsideCurrentDirectory, negative, dynamic)); - } else { - tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); - } - return tasks; - } - exports.convertPatternsToTasks = convertPatternsToTasks; - function getPositivePatterns(patterns) { - return utils2.pattern.getPositivePatterns(patterns); - } - exports.getPositivePatterns = getPositivePatterns; - function getNegativePatternsAsPositive(patterns, ignore) { - const negative = utils2.pattern.getNegativePatterns(patterns).concat(ignore); - const positive = negative.map(utils2.pattern.convertToPositivePattern); - return positive; - } - exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; - function groupPatternsByBaseDirectory(patterns) { - const group2 = {}; - return patterns.reduce((collection, pattern) => { - const base = utils2.pattern.getBaseDirectory(pattern); - if (base in collection) { - collection[base].push(pattern); - } else { - collection[base] = [pattern]; - } - return collection; - }, group2); - } - exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; - function convertPatternGroupsToTasks(positive, negative, dynamic) { - return Object.keys(positive).map((base) => { - return convertPatternGroupToTask(base, positive[base], negative, dynamic); - }); - } - exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; - function convertPatternGroupToTask(base, positive, negative, dynamic) { - return { - dynamic, - positive, - negative, - base, - patterns: [].concat(positive, negative.map(utils2.pattern.convertToNegativePattern)) - }; - } - exports.convertPatternGroupToTask = convertPatternGroupToTask; - } -}); -var require_async2 = __commonJS3({ - "node_modules/@nodelib/fs.stat/out/providers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.read = void 0; - function read2(path9, settings, callback) { - settings.fs.lstat(path9, (lstatError, lstat) => { - if (lstatError !== null) { - callFailureCallback(callback, lstatError); - return; - } - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - callSuccessCallback(callback, lstat); - return; - } - settings.fs.stat(path9, (statError, stat) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - callFailureCallback(callback, statError); - return; - } - callSuccessCallback(callback, lstat); - return; - } - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } - callSuccessCallback(callback, stat); - }); - }); - } - exports.read = read2; - function callFailureCallback(callback, error2) { - callback(error2); - } - function callSuccessCallback(callback, result) { - callback(null, result); - } - } -}); -var require_sync2 = __commonJS3({ - "node_modules/@nodelib/fs.stat/out/providers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.read = void 0; - function read2(path9, settings) { - const lstat = settings.fs.lstatSync(path9); - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - return lstat; - } - try { - const stat = settings.fs.statSync(path9); - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } - return stat; - } catch (error2) { - if (!settings.throwErrorOnBrokenSymbolicLink) { - return lstat; - } - throw error2; - } - } - exports.read = read2; - } -}); -var require_fs2 = __commonJS3({ - "node_modules/@nodelib/fs.stat/out/adapters/fs.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; - var fs52 = __require2("fs"); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs52.lstat, - stat: fs52.stat, - lstatSync: fs52.lstatSync, - statSync: fs52.statSync - }; - function createFileSystemAdapter(fsMethods) { - if (fsMethods === void 0) { - return exports.FILE_SYSTEM_ADAPTER; - } - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); - } - exports.createFileSystemAdapter = createFileSystemAdapter; - } -}); -var require_settings = __commonJS3({ - "node_modules/@nodelib/fs.stat/out/settings.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var fs52 = require_fs2(); - var Settings = class { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); - this.fs = fs52.createFileSystemAdapter(this._options.fs); - this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - } - _getValue(option, value) { - return option !== null && option !== void 0 ? option : value; - } - }; - exports.default = Settings; - } -}); -var require_out = __commonJS3({ - "node_modules/@nodelib/fs.stat/out/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.statSync = exports.stat = exports.Settings = void 0; - var async = require_async2(); - var sync = require_sync2(); - var settings_1 = require_settings(); - exports.Settings = settings_1.default; - function stat(path9, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === "function") { - async.read(path9, getSettings(), optionsOrSettingsOrCallback); - return; - } - async.read(path9, getSettings(optionsOrSettingsOrCallback), callback); - } - exports.stat = stat; - function statSync2(path9, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync.read(path9, settings); - } - exports.statSync = statSync2; - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings_1.default) { - return settingsOrOptions; - } - return new settings_1.default(settingsOrOptions); - } - } -}); -var require_queue_microtask = __commonJS3({ - "node_modules/queue-microtask/index.js"(exports, module2) { - var promise; - module2.exports = typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : global) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err) => setTimeout(() => { - throw err; - }, 0)); - } -}); -var require_run_parallel = __commonJS3({ - "node_modules/run-parallel/index.js"(exports, module2) { - module2.exports = runParallel; - var queueMicrotask2 = require_queue_microtask(); - function runParallel(tasks, cb) { - let results, pending, keys; - let isSync = true; - if (Array.isArray(tasks)) { - results = []; - pending = tasks.length; - } else { - keys = Object.keys(tasks); - results = {}; - pending = keys.length; - } - function done(err) { - function end() { - if (cb) - cb(err, results); - cb = null; - } - if (isSync) - queueMicrotask2(end); - else - end(); - } - function each(i, err, result) { - results[i] = result; - if (--pending === 0 || err) { - done(err); - } - } - if (!pending) { - done(null); - } else if (keys) { - keys.forEach(function(key) { - tasks[key](function(err, result) { - each(key, err, result); - }); - }); - } else { - tasks.forEach(function(task, i) { - task(function(err, result) { - each(i, err, result); - }); - }); - } - isSync = false; - } - } -}); -var require_constants3 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/constants.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; - var NODE_PROCESS_VERSION_PARTS = process.versions.node.split("."); - if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) { - throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); - } - var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); - var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); - var SUPPORTED_MAJOR_VERSION = 10; - var SUPPORTED_MINOR_VERSION = 10; - var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; - var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; - exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; - } -}); -var require_fs3 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/utils/fs.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createDirentFromStats = void 0; - var DirentFromStats = class { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } - }; - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); - } - exports.createDirentFromStats = createDirentFromStats; - } -}); -var require_utils4 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/utils/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.fs = void 0; - var fs52 = require_fs3(); - exports.fs = fs52; - } -}); -var require_common3 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/providers/common.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.joinPathSegments = void 0; - function joinPathSegments(a, b5, separator) { - if (a.endsWith(separator)) { - return a + b5; - } - return a + separator + b5; - } - exports.joinPathSegments = joinPathSegments; - } -}); -var require_async22 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/providers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - var fsStat = require_out(); - var rpl = require_run_parallel(); - var constants_1 = require_constants3(); - var utils2 = require_utils4(); - var common2 = require_common3(); - function read2(directory, settings, callback) { - if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - readdirWithFileTypes(directory, settings, callback); - return; - } - readdir(directory, settings, callback); - } - exports.read = read2; - function readdirWithFileTypes(directory, settings, callback) { - settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => { - if (readdirError !== null) { - callFailureCallback(callback, readdirError); - return; - } - const entries = dirents.map((dirent) => ({ - dirent, - name: dirent.name, - path: common2.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) - })); - if (!settings.followSymbolicLinks) { - callSuccessCallback(callback, entries); - return; - } - const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); - rpl(tasks, (rplError, rplEntries) => { - if (rplError !== null) { - callFailureCallback(callback, rplError); - return; - } - callSuccessCallback(callback, rplEntries); - }); - }); - } - exports.readdirWithFileTypes = readdirWithFileTypes; - function makeRplTaskEntry(entry, settings) { - return (done) => { - if (!entry.dirent.isSymbolicLink()) { - done(null, entry); - return; - } - settings.fs.stat(entry.path, (statError, stats) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - done(statError); - return; - } - done(null, entry); - return; - } - entry.dirent = utils2.fs.createDirentFromStats(entry.name, stats); - done(null, entry); - }); - }; - } - function readdir(directory, settings, callback) { - settings.fs.readdir(directory, (readdirError, names) => { - if (readdirError !== null) { - callFailureCallback(callback, readdirError); - return; - } - const tasks = names.map((name) => { - const path9 = common2.joinPathSegments(directory, name, settings.pathSegmentSeparator); - return (done) => { - fsStat.stat(path9, settings.fsStatSettings, (error2, stats) => { - if (error2 !== null) { - done(error2); - return; - } - const entry = { - name, - path: path9, - dirent: utils2.fs.createDirentFromStats(name, stats) - }; - if (settings.stats) { - entry.stats = stats; - } - done(null, entry); - }); - }; - }); - rpl(tasks, (rplError, entries) => { - if (rplError !== null) { - callFailureCallback(callback, rplError); - return; - } - callSuccessCallback(callback, entries); - }); - }); - } - exports.readdir = readdir; - function callFailureCallback(callback, error2) { - callback(error2); - } - function callSuccessCallback(callback, result) { - callback(null, result); - } - } -}); -var require_sync22 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/providers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - var fsStat = require_out(); - var constants_1 = require_constants3(); - var utils2 = require_utils4(); - var common2 = require_common3(); - function read2(directory, settings) { - if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - return readdirWithFileTypes(directory, settings); - } - return readdir(directory, settings); - } - exports.read = read2; - function readdirWithFileTypes(directory, settings) { - const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); - return dirents.map((dirent) => { - const entry = { - dirent, - name: dirent.name, - path: common2.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) - }; - if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { - try { - const stats = settings.fs.statSync(entry.path); - entry.dirent = utils2.fs.createDirentFromStats(entry.name, stats); - } catch (error2) { - if (settings.throwErrorOnBrokenSymbolicLink) { - throw error2; - } - } - } - return entry; - }); - } - exports.readdirWithFileTypes = readdirWithFileTypes; - function readdir(directory, settings) { - const names = settings.fs.readdirSync(directory); - return names.map((name) => { - const entryPath = common2.joinPathSegments(directory, name, settings.pathSegmentSeparator); - const stats = fsStat.statSync(entryPath, settings.fsStatSettings); - const entry = { - name, - path: entryPath, - dirent: utils2.fs.createDirentFromStats(name, stats) - }; - if (settings.stats) { - entry.stats = stats; - } - return entry; - }); - } - exports.readdir = readdir; - } -}); -var require_fs4 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/adapters/fs.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; - var fs52 = __require2("fs"); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs52.lstat, - stat: fs52.stat, - lstatSync: fs52.lstatSync, - statSync: fs52.statSync, - readdir: fs52.readdir, - readdirSync: fs52.readdirSync - }; - function createFileSystemAdapter(fsMethods) { - if (fsMethods === void 0) { - return exports.FILE_SYSTEM_ADAPTER; - } - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); - } - exports.createFileSystemAdapter = createFileSystemAdapter; - } -}); -var require_settings2 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/settings.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var path9 = __require2("path"); - var fsStat = require_out(); - var fs52 = require_fs4(); - var Settings = class { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); - this.fs = fs52.createFileSystemAdapter(this._options.fs); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path9.sep); - this.stats = this._getValue(this._options.stats, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - this.fsStatSettings = new fsStat.Settings({ - followSymbolicLink: this.followSymbolicLinks, - fs: this.fs, - throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink - }); - } - _getValue(option, value) { - return option !== null && option !== void 0 ? option : value; - } - }; - exports.default = Settings; - } -}); -var require_out2 = __commonJS3({ - "node_modules/@nodelib/fs.scandir/out/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Settings = exports.scandirSync = exports.scandir = void 0; - var async = require_async22(); - var sync = require_sync22(); - var settings_1 = require_settings2(); - exports.Settings = settings_1.default; - function scandir(path9, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === "function") { - async.read(path9, getSettings(), optionsOrSettingsOrCallback); - return; - } - async.read(path9, getSettings(optionsOrSettingsOrCallback), callback); - } - exports.scandir = scandir; - function scandirSync(path9, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync.read(path9, settings); - } - exports.scandirSync = scandirSync; - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings_1.default) { - return settingsOrOptions; - } - return new settings_1.default(settingsOrOptions); - } - } -}); -var require_reusify = __commonJS3({ - "node_modules/reusify/reusify.js"(exports, module2) { - "use strict"; - function reusify(Constructor) { - var head = new Constructor(); - var tail = head; - function get2() { - var current = head; - if (current.next) { - head = current.next; - } else { - head = new Constructor(); - tail = head; - } - current.next = null; - return current; - } - function release(obj) { - tail.next = obj; - tail = obj; - } - return { - get: get2, - release - }; - } - module2.exports = reusify; - } -}); -var require_queue = __commonJS3({ - "node_modules/fastq/queue.js"(exports, module2) { - "use strict"; - var reusify = require_reusify(); - function fastqueue(context, worker, concurrency) { - if (typeof context === "function") { - concurrency = worker; - worker = context; - context = null; - } - if (concurrency < 1) { - throw new Error("fastqueue concurrency must be greater than 1"); - } - var cache = reusify(Task); - var queueHead = null; - var queueTail = null; - var _running = 0; - var errorHandler = null; - var self2 = { - push, - drain: noop22, - saturated: noop22, - pause, - paused: false, - concurrency, - running, - resume, - idle, - length, - getQueue, - unshift, - empty: noop22, - kill, - killAndDrain, - error: error2 - }; - return self2; - function running() { - return _running; - } - function pause() { - self2.paused = true; - } - function length() { - var current = queueHead; - var counter = 0; - while (current) { - current = current.next; - counter++; - } - return counter; - } - function getQueue() { - var current = queueHead; - var tasks = []; - while (current) { - tasks.push(current.value); - current = current.next; - } - return tasks; - } - function resume() { - if (!self2.paused) - return; - self2.paused = false; - for (var i = 0; i < self2.concurrency; i++) { - _running++; - release(); - } - } - function idle() { - return _running === 0 && self2.length() === 0; - } - function push(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop22; - current.errorHandler = errorHandler; - if (_running === self2.concurrency || self2.paused) { - if (queueTail) { - queueTail.next = current; - queueTail = current; - } else { - queueHead = current; - queueTail = current; - self2.saturated(); - } - } else { - _running++; - worker.call(context, current.value, current.worked); - } - } - function unshift(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop22; - if (_running === self2.concurrency || self2.paused) { - if (queueHead) { - current.next = queueHead; - queueHead = current; - } else { - queueHead = current; - queueTail = current; - self2.saturated(); - } - } else { - _running++; - worker.call(context, current.value, current.worked); - } - } - function release(holder) { - if (holder) { - cache.release(holder); - } - var next = queueHead; - if (next) { - if (!self2.paused) { - if (queueTail === queueHead) { - queueTail = null; - } - queueHead = next.next; - next.next = null; - worker.call(context, next.value, next.worked); - if (queueTail === null) { - self2.empty(); - } - } else { - _running--; - } - } else if (--_running === 0) { - self2.drain(); - } - } - function kill() { - queueHead = null; - queueTail = null; - self2.drain = noop22; - } - function killAndDrain() { - queueHead = null; - queueTail = null; - self2.drain(); - self2.drain = noop22; - } - function error2(handler) { - errorHandler = handler; - } - } - function noop22() { - } - function Task() { - this.value = null; - this.callback = noop22; - this.next = null; - this.release = noop22; - this.context = null; - this.errorHandler = null; - var self2 = this; - this.worked = function worked(err, result) { - var callback = self2.callback; - var errorHandler = self2.errorHandler; - var val = self2.value; - self2.value = null; - self2.callback = noop22; - if (self2.errorHandler) { - errorHandler(err, val); - } - callback.call(self2.context, err, result); - self2.release(self2); - }; - } - function queueAsPromised(context, worker, concurrency) { - if (typeof context === "function") { - concurrency = worker; - worker = context; - context = null; - } - function asyncWrapper(arg, cb) { - worker.call(this, arg).then(function(res) { - cb(null, res); - }, cb); - } - var queue = fastqueue(context, asyncWrapper, concurrency); - var pushCb = queue.push; - var unshiftCb = queue.unshift; - queue.push = push; - queue.unshift = unshift; - queue.drained = drained; - return queue; - function push(value) { - var p4 = new Promise(function(resolve2, reject) { - pushCb(value, function(err, result) { - if (err) { - reject(err); - return; - } - resolve2(result); - }); - }); - p4.catch(noop22); - return p4; - } - function unshift(value) { - var p4 = new Promise(function(resolve2, reject) { - unshiftCb(value, function(err, result) { - if (err) { - reject(err); - return; - } - resolve2(result); - }); - }); - p4.catch(noop22); - return p4; - } - function drained() { - if (queue.idle()) { - return new Promise(function(resolve2) { - resolve2(); - }); - } - var previousDrain = queue.drain; - var p4 = new Promise(function(resolve2) { - queue.drain = function() { - previousDrain(); - resolve2(); - }; - }); - return p4; - } - } - module2.exports = fastqueue; - module2.exports.promise = queueAsPromised; - } -}); -var require_common22 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/readers/common.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; - function isFatalError(settings, error2) { - if (settings.errorFilter === null) { - return true; - } - return !settings.errorFilter(error2); - } - exports.isFatalError = isFatalError; - function isAppliedFilter(filter, value) { - return filter === null || filter(value); - } - exports.isAppliedFilter = isAppliedFilter; - function replacePathSegmentSeparator(filepath, separator) { - return filepath.split(/[/\\]/).join(separator); - } - exports.replacePathSegmentSeparator = replacePathSegmentSeparator; - function joinPathSegments(a, b5, separator) { - if (a === "") { - return b5; - } - if (a.endsWith(separator)) { - return a + b5; - } - return a + separator + b5; - } - exports.joinPathSegments = joinPathSegments; - } -}); -var require_reader = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/readers/reader.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var common2 = require_common22(); - var Reader = class { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._root = common2.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); - } - }; - exports.default = Reader; - } -}); -var require_async3 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/readers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var events_1 = __require2("events"); - var fsScandir = require_out2(); - var fastq = require_queue(); - var common2 = require_common22(); - var reader_1 = require_reader(); - var AsyncReader = class extends reader_1.default { - constructor(_root, _settings) { - super(_root, _settings); - this._settings = _settings; - this._scandir = fsScandir.scandir; - this._emitter = new events_1.EventEmitter(); - this._queue = fastq(this._worker.bind(this), this._settings.concurrency); - this._isFatalError = false; - this._isDestroyed = false; - this._queue.drain = () => { - if (!this._isFatalError) { - this._emitter.emit("end"); - } - }; - } - read() { - this._isFatalError = false; - this._isDestroyed = false; - setImmediate(() => { - this._pushToQueue(this._root, this._settings.basePath); - }); - return this._emitter; - } - get isDestroyed() { - return this._isDestroyed; - } - destroy() { - if (this._isDestroyed) { - throw new Error("The reader is already destroyed"); - } - this._isDestroyed = true; - this._queue.killAndDrain(); - } - onEntry(callback) { - this._emitter.on("entry", callback); - } - onError(callback) { - this._emitter.once("error", callback); - } - onEnd(callback) { - this._emitter.once("end", callback); - } - _pushToQueue(directory, base) { - const queueItem = { directory, base }; - this._queue.push(queueItem, (error2) => { - if (error2 !== null) { - this._handleError(error2); - } - }); - } - _worker(item, done) { - this._scandir(item.directory, this._settings.fsScandirSettings, (error2, entries) => { - if (error2 !== null) { - done(error2, void 0); - return; - } - for (const entry of entries) { - this._handleEntry(entry, item.base); - } - done(null, void 0); - }); - } - _handleError(error2) { - if (this._isDestroyed || !common2.isFatalError(this._settings, error2)) { - return; - } - this._isFatalError = true; - this._isDestroyed = true; - this._emitter.emit("error", error2); - } - _handleEntry(entry, base) { - if (this._isDestroyed || this._isFatalError) { - return; - } - const fullpath = entry.path; - if (base !== void 0) { - entry.path = common2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } - if (common2.isAppliedFilter(this._settings.entryFilter, entry)) { - this._emitEntry(entry); - } - if (entry.dirent.isDirectory() && common2.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); - } - } - _emitEntry(entry) { - this._emitter.emit("entry", entry); - } - }; - exports.default = AsyncReader; - } -}); -var require_async4 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/providers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var async_1 = require_async3(); - var AsyncProvider = class { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async_1.default(this._root, this._settings); - this._storage = []; - } - read(callback) { - this._reader.onError((error2) => { - callFailureCallback(callback, error2); - }); - this._reader.onEntry((entry) => { - this._storage.push(entry); - }); - this._reader.onEnd(() => { - callSuccessCallback(callback, this._storage); - }); - this._reader.read(); - } - }; - exports.default = AsyncProvider; - function callFailureCallback(callback, error2) { - callback(error2); - } - function callSuccessCallback(callback, entries) { - callback(null, entries); - } - } -}); -var require_stream2 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/providers/stream.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var stream_1 = __require2("stream"); - var async_1 = require_async3(); - var StreamProvider = class { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async_1.default(this._root, this._settings); - this._stream = new stream_1.Readable({ - objectMode: true, - read: () => { - }, - destroy: () => { - if (!this._reader.isDestroyed) { - this._reader.destroy(); - } - } - }); - } - read() { - this._reader.onError((error2) => { - this._stream.emit("error", error2); - }); - this._reader.onEntry((entry) => { - this._stream.push(entry); - }); - this._reader.onEnd(() => { - this._stream.push(null); - }); - this._reader.read(); - return this._stream; - } - }; - exports.default = StreamProvider; - } -}); -var require_sync3 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/readers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var fsScandir = require_out2(); - var common2 = require_common22(); - var reader_1 = require_reader(); - var SyncReader = class extends reader_1.default { - constructor() { - super(...arguments); - this._scandir = fsScandir.scandirSync; - this._storage = []; - this._queue = /* @__PURE__ */ new Set(); - } - read() { - this._pushToQueue(this._root, this._settings.basePath); - this._handleQueue(); - return this._storage; - } - _pushToQueue(directory, base) { - this._queue.add({ directory, base }); - } - _handleQueue() { - for (const item of this._queue.values()) { - this._handleDirectory(item.directory, item.base); - } - } - _handleDirectory(directory, base) { - try { - const entries = this._scandir(directory, this._settings.fsScandirSettings); - for (const entry of entries) { - this._handleEntry(entry, base); - } - } catch (error2) { - this._handleError(error2); - } - } - _handleError(error2) { - if (!common2.isFatalError(this._settings, error2)) { - return; - } - throw error2; - } - _handleEntry(entry, base) { - const fullpath = entry.path; - if (base !== void 0) { - entry.path = common2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } - if (common2.isAppliedFilter(this._settings.entryFilter, entry)) { - this._pushToStorage(entry); - } - if (entry.dirent.isDirectory() && common2.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path); - } - } - _pushToStorage(entry) { - this._storage.push(entry); - } - }; - exports.default = SyncReader; - } -}); -var require_sync4 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/providers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var sync_1 = require_sync3(); - var SyncProvider = class { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new sync_1.default(this._root, this._settings); - } - read() { - return this._reader.read(); - } - }; - exports.default = SyncProvider; - } -}); -var require_settings3 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/settings.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var path9 = __require2("path"); - var fsScandir = require_out2(); - var Settings = class { - constructor(_options = {}) { - this._options = _options; - this.basePath = this._getValue(this._options.basePath, void 0); - this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); - this.deepFilter = this._getValue(this._options.deepFilter, null); - this.entryFilter = this._getValue(this._options.entryFilter, null); - this.errorFilter = this._getValue(this._options.errorFilter, null); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path9.sep); - this.fsScandirSettings = new fsScandir.Settings({ - followSymbolicLinks: this._options.followSymbolicLinks, - fs: this._options.fs, - pathSegmentSeparator: this._options.pathSegmentSeparator, - stats: this._options.stats, - throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink - }); - } - _getValue(option, value) { - return option !== null && option !== void 0 ? option : value; - } - }; - exports.default = Settings; - } -}); -var require_out3 = __commonJS3({ - "node_modules/@nodelib/fs.walk/out/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; - var async_1 = require_async4(); - var stream_1 = require_stream2(); - var sync_1 = require_sync4(); - var settings_1 = require_settings3(); - exports.Settings = settings_1.default; - function walk(directory, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === "function") { - new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); - return; - } - new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); - } - exports.walk = walk; - function walkSync(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new sync_1.default(directory, settings); - return provider.read(); - } - exports.walkSync = walkSync; - function walkStream(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new stream_1.default(directory, settings); - return provider.read(); - } - exports.walkStream = walkStream; - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings_1.default) { - return settingsOrOptions; - } - return new settings_1.default(settingsOrOptions); - } - } -}); -var require_reader2 = __commonJS3({ - "node_modules/fast-glob/out/readers/reader.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var path9 = __require2("path"); - var fsStat = require_out(); - var utils2 = require_utils3(); - var Reader = class { - constructor(_settings) { - this._settings = _settings; - this._fsStatSettings = new fsStat.Settings({ - followSymbolicLink: this._settings.followSymbolicLinks, - fs: this._settings.fs, - throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks - }); - } - _getFullEntryPath(filepath) { - return path9.resolve(this._settings.cwd, filepath); - } - _makeEntry(stats, pattern) { - const entry = { - name: pattern, - path: pattern, - dirent: utils2.fs.createDirentFromStats(pattern, stats) - }; - if (this._settings.stats) { - entry.stats = stats; - } - return entry; - } - _isFatalError(error2) { - return !utils2.errno.isEnoentCodeError(error2) && !this._settings.suppressErrors; - } - }; - exports.default = Reader; - } -}); -var require_stream3 = __commonJS3({ - "node_modules/fast-glob/out/readers/stream.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var stream_1 = __require2("stream"); - var fsStat = require_out(); - var fsWalk = require_out3(); - var reader_1 = require_reader2(); - var ReaderStream = class extends reader_1.default { - constructor() { - super(...arguments); - this._walkStream = fsWalk.walkStream; - this._stat = fsStat.stat; - } - dynamic(root, options8) { - return this._walkStream(root, options8); - } - static(patterns, options8) { - const filepaths = patterns.map(this._getFullEntryPath, this); - const stream = new stream_1.PassThrough({ objectMode: true }); - stream._write = (index, _enc, done) => { - return this._getEntry(filepaths[index], patterns[index], options8).then((entry) => { - if (entry !== null && options8.entryFilter(entry)) { - stream.push(entry); - } - if (index === filepaths.length - 1) { - stream.end(); - } - done(); - }).catch(done); - }; - for (let i = 0; i < filepaths.length; i++) { - stream.write(i); - } - return stream; - } - _getEntry(filepath, pattern, options8) { - return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern)).catch((error2) => { - if (options8.errorFilter(error2)) { - return null; - } - throw error2; - }); - } - _getStat(filepath) { - return new Promise((resolve2, reject) => { - this._stat(filepath, this._fsStatSettings, (error2, stats) => { - return error2 === null ? resolve2(stats) : reject(error2); - }); - }); - } - }; - exports.default = ReaderStream; - } -}); -var require_async5 = __commonJS3({ - "node_modules/fast-glob/out/readers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var fsWalk = require_out3(); - var reader_1 = require_reader2(); - var stream_1 = require_stream3(); - var ReaderAsync = class extends reader_1.default { - constructor() { - super(...arguments); - this._walkAsync = fsWalk.walk; - this._readerStream = new stream_1.default(this._settings); - } - dynamic(root, options8) { - return new Promise((resolve2, reject) => { - this._walkAsync(root, options8, (error2, entries) => { - if (error2 === null) { - resolve2(entries); - } else { - reject(error2); - } - }); - }); - } - async static(patterns, options8) { - const entries = []; - const stream = this._readerStream.static(patterns, options8); - return new Promise((resolve2, reject) => { - stream.once("error", reject); - stream.on("data", (entry) => entries.push(entry)); - stream.once("end", () => resolve2(entries)); - }); - } - }; - exports.default = ReaderAsync; - } -}); -var require_matcher = __commonJS3({ - "node_modules/fast-glob/out/providers/matchers/matcher.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var utils2 = require_utils3(); - var Matcher = class { - constructor(_patterns, _settings, _micromatchOptions) { - this._patterns = _patterns; - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this._storage = []; - this._fillStorage(); - } - _fillStorage() { - for (const pattern of this._patterns) { - const segments = this._getPatternSegments(pattern); - const sections = this._splitSegmentsIntoSections(segments); - this._storage.push({ - complete: sections.length <= 1, - pattern, - segments, - sections - }); - } - } - _getPatternSegments(pattern) { - const parts = utils2.pattern.getPatternParts(pattern, this._micromatchOptions); - return parts.map((part) => { - const dynamic = utils2.pattern.isDynamicPattern(part, this._settings); - if (!dynamic) { - return { - dynamic: false, - pattern: part - }; - } - return { - dynamic: true, - pattern: part, - patternRe: utils2.pattern.makeRe(part, this._micromatchOptions) - }; - }); - } - _splitSegmentsIntoSections(segments) { - return utils2.array.splitWhen(segments, (segment) => segment.dynamic && utils2.pattern.hasGlobStar(segment.pattern)); - } - }; - exports.default = Matcher; - } -}); -var require_partial = __commonJS3({ - "node_modules/fast-glob/out/providers/matchers/partial.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var matcher_1 = require_matcher(); - var PartialMatcher = class extends matcher_1.default { - match(filepath) { - const parts = filepath.split("/"); - const levels = parts.length; - const patterns = this._storage.filter((info2) => !info2.complete || info2.segments.length > levels); - for (const pattern of patterns) { - const section = pattern.sections[0]; - if (!pattern.complete && levels > section.length) { - return true; - } - const match = parts.every((part, index) => { - const segment = pattern.segments[index]; - if (segment.dynamic && segment.patternRe.test(part)) { - return true; - } - if (!segment.dynamic && segment.pattern === part) { - return true; - } - return false; - }); - if (match) { - return true; - } - } - return false; - } - }; - exports.default = PartialMatcher; - } -}); -var require_deep = __commonJS3({ - "node_modules/fast-glob/out/providers/filters/deep.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var utils2 = require_utils3(); - var partial_1 = require_partial(); - var DeepFilter = class { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - } - getFilter(basePath, positive, negative) { - const matcher = this._getMatcher(positive); - const negativeRe = this._getNegativePatternsRe(negative); - return (entry) => this._filter(basePath, entry, matcher, negativeRe); - } - _getMatcher(patterns) { - return new partial_1.default(patterns, this._settings, this._micromatchOptions); - } - _getNegativePatternsRe(patterns) { - const affectDepthOfReadingPatterns = patterns.filter(utils2.pattern.isAffectDepthOfReadingPattern); - return utils2.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); - } - _filter(basePath, entry, matcher, negativeRe) { - if (this._isSkippedByDeep(basePath, entry.path)) { - return false; - } - if (this._isSkippedSymbolicLink(entry)) { - return false; - } - const filepath = utils2.path.removeLeadingDotSegment(entry.path); - if (this._isSkippedByPositivePatterns(filepath, matcher)) { - return false; - } - return this._isSkippedByNegativePatterns(filepath, negativeRe); - } - _isSkippedByDeep(basePath, entryPath) { - if (this._settings.deep === Infinity) { - return false; - } - return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; - } - _getEntryLevel(basePath, entryPath) { - const entryPathDepth = entryPath.split("/").length; - if (basePath === "") { - return entryPathDepth; - } - const basePathDepth = basePath.split("/").length; - return entryPathDepth - basePathDepth; - } - _isSkippedSymbolicLink(entry) { - return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); - } - _isSkippedByPositivePatterns(entryPath, matcher) { - return !this._settings.baseNameMatch && !matcher.match(entryPath); - } - _isSkippedByNegativePatterns(entryPath, patternsRe) { - return !utils2.pattern.matchAny(entryPath, patternsRe); - } - }; - exports.default = DeepFilter; - } -}); -var require_entry = __commonJS3({ - "node_modules/fast-glob/out/providers/filters/entry.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var utils2 = require_utils3(); - var EntryFilter = class { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this.index = /* @__PURE__ */ new Map(); - } - getFilter(positive, negative) { - const positiveRe = utils2.pattern.convertPatternsToRe(positive, this._micromatchOptions); - const negativeRe = utils2.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })); - return (entry) => this._filter(entry, positiveRe, negativeRe); - } - _filter(entry, positiveRe, negativeRe) { - const filepath = utils2.path.removeLeadingDotSegment(entry.path); - if (this._settings.unique && this._isDuplicateEntry(filepath)) { - return false; - } - if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { - return false; - } - if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) { - return false; - } - const isDirectory = entry.dirent.isDirectory(); - const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory); - if (this._settings.unique && isMatched) { - this._createIndexRecord(filepath); - } - return isMatched; - } - _isDuplicateEntry(filepath) { - return this.index.has(filepath); - } - _createIndexRecord(filepath) { - this.index.set(filepath, void 0); - } - _onlyFileFilter(entry) { - return this._settings.onlyFiles && !entry.dirent.isFile(); - } - _onlyDirectoryFilter(entry) { - return this._settings.onlyDirectories && !entry.dirent.isDirectory(); - } - _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { - if (!this._settings.absolute) { - return false; - } - const fullpath = utils2.path.makeAbsolute(this._settings.cwd, entryPath); - return utils2.pattern.matchAny(fullpath, patternsRe); - } - _isMatchToPatterns(filepath, patternsRe, isDirectory) { - const isMatched = utils2.pattern.matchAny(filepath, patternsRe); - if (!isMatched && isDirectory) { - return utils2.pattern.matchAny(filepath + "/", patternsRe); - } - return isMatched; - } - }; - exports.default = EntryFilter; - } -}); -var require_error = __commonJS3({ - "node_modules/fast-glob/out/providers/filters/error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var utils2 = require_utils3(); - var ErrorFilter = class { - constructor(_settings) { - this._settings = _settings; - } - getFilter() { - return (error2) => this._isNonFatalError(error2); - } - _isNonFatalError(error2) { - return utils2.errno.isEnoentCodeError(error2) || this._settings.suppressErrors; - } - }; - exports.default = ErrorFilter; - } -}); -var require_entry2 = __commonJS3({ - "node_modules/fast-glob/out/providers/transformers/entry.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var utils2 = require_utils3(); - var EntryTransformer = class { - constructor(_settings) { - this._settings = _settings; - } - getTransformer() { - return (entry) => this._transform(entry); - } - _transform(entry) { - let filepath = entry.path; - if (this._settings.absolute) { - filepath = utils2.path.makeAbsolute(this._settings.cwd, filepath); - filepath = utils2.path.unixify(filepath); - } - if (this._settings.markDirectories && entry.dirent.isDirectory()) { - filepath += "/"; - } - if (!this._settings.objectMode) { - return filepath; - } - return Object.assign(Object.assign({}, entry), { path: filepath }); - } - }; - exports.default = EntryTransformer; - } -}); -var require_provider2 = __commonJS3({ - "node_modules/fast-glob/out/providers/provider.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var path9 = __require2("path"); - var deep_1 = require_deep(); - var entry_1 = require_entry(); - var error_1 = require_error(); - var entry_2 = require_entry2(); - var Provider2 = class { - constructor(_settings) { - this._settings = _settings; - this.errorFilter = new error_1.default(this._settings); - this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); - this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); - this.entryTransformer = new entry_2.default(this._settings); - } - _getRootDirectory(task) { - return path9.resolve(this._settings.cwd, task.base); - } - _getReaderOptions(task) { - const basePath = task.base === "." ? "" : task.base; - return { - basePath, - pathSegmentSeparator: "/", - concurrency: this._settings.concurrency, - deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), - entryFilter: this.entryFilter.getFilter(task.positive, task.negative), - errorFilter: this.errorFilter.getFilter(), - followSymbolicLinks: this._settings.followSymbolicLinks, - fs: this._settings.fs, - stats: this._settings.stats, - throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, - transform: this.entryTransformer.getTransformer() - }; - } - _getMicromatchOptions() { - return { - dot: this._settings.dot, - matchBase: this._settings.baseNameMatch, - nobrace: !this._settings.braceExpansion, - nocase: !this._settings.caseSensitiveMatch, - noext: !this._settings.extglob, - noglobstar: !this._settings.globstar, - posix: true, - strictSlashes: false - }; - } - }; - exports.default = Provider2; - } -}); -var require_async6 = __commonJS3({ - "node_modules/fast-glob/out/providers/async.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var async_1 = require_async5(); - var provider_1 = require_provider2(); - var ProviderAsync = class extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new async_1.default(this._settings); - } - async read(task) { - const root = this._getRootDirectory(task); - const options8 = this._getReaderOptions(task); - const entries = await this.api(root, task, options8); - return entries.map((entry) => options8.transform(entry)); - } - api(root, task, options8) { - if (task.dynamic) { - return this._reader.dynamic(root, options8); - } - return this._reader.static(task.patterns, options8); - } - }; - exports.default = ProviderAsync; - } -}); -var require_stream4 = __commonJS3({ - "node_modules/fast-glob/out/providers/stream.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var stream_1 = __require2("stream"); - var stream_2 = require_stream3(); - var provider_1 = require_provider2(); - var ProviderStream = class extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new stream_2.default(this._settings); - } - read(task) { - const root = this._getRootDirectory(task); - const options8 = this._getReaderOptions(task); - const source = this.api(root, task, options8); - const destination = new stream_1.Readable({ objectMode: true, read: () => { - } }); - source.once("error", (error2) => destination.emit("error", error2)).on("data", (entry) => destination.emit("data", options8.transform(entry))).once("end", () => destination.emit("end")); - destination.once("close", () => source.destroy()); - return destination; - } - api(root, task, options8) { - if (task.dynamic) { - return this._reader.dynamic(root, options8); - } - return this._reader.static(task.patterns, options8); - } - }; - exports.default = ProviderStream; - } -}); -var require_sync5 = __commonJS3({ - "node_modules/fast-glob/out/readers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var fsStat = require_out(); - var fsWalk = require_out3(); - var reader_1 = require_reader2(); - var ReaderSync = class extends reader_1.default { - constructor() { - super(...arguments); - this._walkSync = fsWalk.walkSync; - this._statSync = fsStat.statSync; - } - dynamic(root, options8) { - return this._walkSync(root, options8); - } - static(patterns, options8) { - const entries = []; - for (const pattern of patterns) { - const filepath = this._getFullEntryPath(pattern); - const entry = this._getEntry(filepath, pattern, options8); - if (entry === null || !options8.entryFilter(entry)) { - continue; - } - entries.push(entry); - } - return entries; - } - _getEntry(filepath, pattern, options8) { - try { - const stats = this._getStat(filepath); - return this._makeEntry(stats, pattern); - } catch (error2) { - if (options8.errorFilter(error2)) { - return null; - } - throw error2; - } - } - _getStat(filepath) { - return this._statSync(filepath, this._fsStatSettings); - } - }; - exports.default = ReaderSync; - } -}); -var require_sync6 = __commonJS3({ - "node_modules/fast-glob/out/providers/sync.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var sync_1 = require_sync5(); - var provider_1 = require_provider2(); - var ProviderSync = class extends provider_1.default { - constructor() { - super(...arguments); - this._reader = new sync_1.default(this._settings); - } - read(task) { - const root = this._getRootDirectory(task); - const options8 = this._getReaderOptions(task); - const entries = this.api(root, task, options8); - return entries.map(options8.transform); - } - api(root, task, options8) { - if (task.dynamic) { - return this._reader.dynamic(root, options8); - } - return this._reader.static(task.patterns, options8); - } - }; - exports.default = ProviderSync; - } -}); -var require_settings4 = __commonJS3({ - "node_modules/fast-glob/out/settings.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; - var fs52 = __require2("fs"); - var os22 = __require2("os"); - var CPU_COUNT = Math.max(os22.cpus().length, 1); - exports.DEFAULT_FILE_SYSTEM_ADAPTER = { - lstat: fs52.lstat, - lstatSync: fs52.lstatSync, - stat: fs52.stat, - statSync: fs52.statSync, - readdir: fs52.readdir, - readdirSync: fs52.readdirSync - }; - var Settings = class { - constructor(_options = {}) { - this._options = _options; - this.absolute = this._getValue(this._options.absolute, false); - this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); - this.braceExpansion = this._getValue(this._options.braceExpansion, true); - this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); - this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); - this.cwd = this._getValue(this._options.cwd, process.cwd()); - this.deep = this._getValue(this._options.deep, Infinity); - this.dot = this._getValue(this._options.dot, false); - this.extglob = this._getValue(this._options.extglob, true); - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); - this.fs = this._getFileSystemMethods(this._options.fs); - this.globstar = this._getValue(this._options.globstar, true); - this.ignore = this._getValue(this._options.ignore, []); - this.markDirectories = this._getValue(this._options.markDirectories, false); - this.objectMode = this._getValue(this._options.objectMode, false); - this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); - this.onlyFiles = this._getValue(this._options.onlyFiles, true); - this.stats = this._getValue(this._options.stats, false); - this.suppressErrors = this._getValue(this._options.suppressErrors, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); - this.unique = this._getValue(this._options.unique, true); - if (this.onlyDirectories) { - this.onlyFiles = false; - } - if (this.stats) { - this.objectMode = true; - } - this.ignore = [].concat(this.ignore); - } - _getValue(option, value) { - return option === void 0 ? value : option; - } - _getFileSystemMethods(methods = {}) { - return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); - } - }; - exports.default = Settings; - } -}); -var require_out4 = __commonJS3({ - "node_modules/fast-glob/out/index.js"(exports, module2) { - "use strict"; - var taskManager = require_tasks(); - var async_1 = require_async6(); - var stream_1 = require_stream4(); - var sync_1 = require_sync6(); - var settings_1 = require_settings4(); - var utils2 = require_utils3(); - async function FastGlob(source, options8) { - assertPatternsInput(source); - const works = getWorks(source, async_1.default, options8); - const result = await Promise.all(works); - return utils2.array.flatten(result); - } - (function(FastGlob2) { - FastGlob2.glob = FastGlob2; - FastGlob2.globSync = sync; - FastGlob2.globStream = stream; - FastGlob2.async = FastGlob2; - function sync(source, options8) { - assertPatternsInput(source); - const works = getWorks(source, sync_1.default, options8); - return utils2.array.flatten(works); - } - FastGlob2.sync = sync; - function stream(source, options8) { - assertPatternsInput(source); - const works = getWorks(source, stream_1.default, options8); - return utils2.stream.merge(works); - } - FastGlob2.stream = stream; - function generateTasks(source, options8) { - assertPatternsInput(source); - const patterns = [].concat(source); - const settings = new settings_1.default(options8); - return taskManager.generate(patterns, settings); - } - FastGlob2.generateTasks = generateTasks; - function isDynamicPattern(source, options8) { - assertPatternsInput(source); - const settings = new settings_1.default(options8); - return utils2.pattern.isDynamicPattern(source, settings); - } - FastGlob2.isDynamicPattern = isDynamicPattern; - function escapePath(source) { - assertPatternsInput(source); - return utils2.path.escape(source); - } - FastGlob2.escapePath = escapePath; - function convertPathToPattern(source) { - assertPatternsInput(source); - return utils2.path.convertPathToPattern(source); - } - FastGlob2.convertPathToPattern = convertPathToPattern; - let posix; - (function(posix2) { - function escapePath2(source) { - assertPatternsInput(source); - return utils2.path.escapePosixPath(source); - } - posix2.escapePath = escapePath2; - function convertPathToPattern2(source) { - assertPatternsInput(source); - return utils2.path.convertPosixPathToPattern(source); - } - posix2.convertPathToPattern = convertPathToPattern2; - })(posix = FastGlob2.posix || (FastGlob2.posix = {})); - let win32; - (function(win322) { - function escapePath2(source) { - assertPatternsInput(source); - return utils2.path.escapeWindowsPath(source); - } - win322.escapePath = escapePath2; - function convertPathToPattern2(source) { - assertPatternsInput(source); - return utils2.path.convertWindowsPathToPattern(source); - } - win322.convertPathToPattern = convertPathToPattern2; - })(win32 = FastGlob2.win32 || (FastGlob2.win32 = {})); - })(FastGlob || (FastGlob = {})); - function getWorks(source, _Provider, options8) { - const patterns = [].concat(source); - const settings = new settings_1.default(options8); - const tasks = taskManager.generate(patterns, settings); - const provider = new _Provider(settings); - return tasks.map(provider.read, provider); - } - function assertPatternsInput(input) { - const source = [].concat(input); - const isValidSource = source.every((item) => utils2.string.isString(item) && !utils2.string.isEmpty(item)); - if (!isValidSource) { - throw new TypeError("Patterns must be a string (non empty) or an array of strings"); - } - } - module2.exports = FastGlob; - } -}); -var require_base = __commonJS3({ - "node_modules/diff/lib/diff/base.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = Diff; - function Diff() { - } - Diff.prototype = { - /*istanbul ignore start*/ - /*istanbul ignore end*/ - diff: function diff(oldString, newString) { - var options8 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - var callback = options8.callback; - if (typeof options8 === "function") { - callback = options8; - options8 = {}; - } - this.options = options8; - var self2 = this; - function done(value) { - if (callback) { - setTimeout(function() { - callback(void 0, value); - }, 0); - return true; - } else { - return value; - } - } - oldString = this.castInput(oldString); - newString = this.castInput(newString); - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - var newLen = newString.length, oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - if (options8.maxEditLength) { - maxEditLength = Math.min(maxEditLength, options8.maxEditLength); - } - var bestPath = [{ - newPos: -1, - components: [] - }]; - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - return done([{ - value: this.join(newString), - count: newString.length - }]); - } - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = ( - /*istanbul ignore start*/ - void 0 - ); - var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - if (addPath) { - bestPath[diagonalPath - 1] = void 0; - } - var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - if (!canAdd && !canRemove) { - bestPath[diagonalPath] = void 0; - continue; - } - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self2.pushComponent(basePath.components, void 0, true); - } else { - basePath = addPath; - basePath.newPos++; - self2.pushComponent(basePath.components, true, void 0); - } - _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self2, basePath.components, newString, oldString, self2.useLongestToken)); - } else { - bestPath[diagonalPath] = basePath; - } - } - editLength++; - } - if (callback) { - (function exec() { - setTimeout(function() { - if (editLength > maxEditLength) { - return callback(); - } - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - if (ret) { - return ret; - } - } - } - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - if (last && last.added === added && last.removed === removed) { - components[components.length - 1] = { - count: last.count + 1, - added, - removed - }; - } else { - components.push({ - count: 1, - added, - removed - }); - } - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - if (commonCount) { - basePath.components.push({ - count: commonCount - }); - } - basePath.newPos = newPos; - return oldPos; - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - removeEmpty: function removeEmpty(array2) { - var ret = []; - for (var i = 0; i < array2.length; i++) { - if (array2[i]) { - ret.push(array2[i]); - } - } - return ret; - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - castInput: function castInput(value) { - return value; - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - tokenize: function tokenize(value) { - return value.split(""); - }, - /*istanbul ignore start*/ - /*istanbul ignore end*/ - join: function join2(chars) { - return chars.join(""); - } - }; - function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function(value2, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value2.length ? oldValue : value2; - }); - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - newPos += component.count; - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } - var lastComponent = components[componentLen - 1]; - if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - return components; - } - function clonePath(path9) { - return { - newPos: path9.newPos, - components: path9.components.slice(0) - }; - } - } -}); -var require_array2 = __commonJS3({ - "node_modules/diff/lib/diff/array.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.diffArrays = diffArrays2; - exports.arrayDiff = void 0; - var _base = _interopRequireDefault(require_base()); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var arrayDiff = new /*istanbul ignore start*/ - _base[ - /*istanbul ignore start*/ - "default" - /*istanbul ignore end*/ - ](); - exports.arrayDiff = arrayDiff; - arrayDiff.tokenize = function(value) { - return value.slice(); - }; - arrayDiff.join = arrayDiff.removeEmpty = function(value) { - return value; - }; - function diffArrays2(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); - } - } -}); -var require_readlines = __commonJS3({ - "node_modules/n-readlines/readlines.js"(exports, module2) { - "use strict"; - var fs52 = __require2("fs"); - var LineByLine = class { - constructor(file, options8) { - options8 = options8 || {}; - if (!options8.readChunk) - options8.readChunk = 1024; - if (!options8.newLineCharacter) { - options8.newLineCharacter = 10; - } else { - options8.newLineCharacter = options8.newLineCharacter.charCodeAt(0); - } - if (typeof file === "number") { - this.fd = file; - } else { - this.fd = fs52.openSync(file, "r"); - } - this.options = options8; - this.newLineCharacter = options8.newLineCharacter; - this.reset(); - } - _searchInBuffer(buffer, hexNeedle) { - let found = -1; - for (let i = 0; i <= buffer.length; i++) { - let b_byte = buffer[i]; - if (b_byte === hexNeedle) { - found = i; - break; - } - } - return found; - } - reset() { - this.eofReached = false; - this.linesCache = []; - this.fdPosition = 0; - } - close() { - fs52.closeSync(this.fd); - this.fd = null; - } - _extractLines(buffer) { - let line22; - const lines = []; - let bufferPosition = 0; - let lastNewLineBufferPosition = 0; - while (true) { - let bufferPositionValue = buffer[bufferPosition++]; - if (bufferPositionValue === this.newLineCharacter) { - line22 = buffer.slice(lastNewLineBufferPosition, bufferPosition); - lines.push(line22); - lastNewLineBufferPosition = bufferPosition; - } else if (bufferPositionValue === void 0) { - break; - } - } - let leftovers = buffer.slice(lastNewLineBufferPosition, bufferPosition); - if (leftovers.length) { - lines.push(leftovers); - } - return lines; - } - _readChunk(lineLeftovers) { - let totalBytesRead = 0; - let bytesRead; - const buffers = []; - do { - const readBuffer = Buffer.alloc(this.options.readChunk); - bytesRead = fs52.readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition); - totalBytesRead = totalBytesRead + bytesRead; - this.fdPosition = this.fdPosition + bytesRead; - buffers.push(readBuffer); - } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1); - let bufferData = Buffer.concat(buffers); - if (bytesRead < this.options.readChunk) { - this.eofReached = true; - bufferData = bufferData.slice(0, totalBytesRead); - } - if (totalBytesRead) { - this.linesCache = this._extractLines(bufferData); - if (lineLeftovers) { - this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]); - } - } - return totalBytesRead; - } - next() { - if (!this.fd) - return false; - let line22 = false; - if (this.eofReached && this.linesCache.length === 0) { - return line22; - } - let bytesRead; - if (!this.linesCache.length) { - bytesRead = this._readChunk(); - } - if (this.linesCache.length) { - line22 = this.linesCache.shift(); - const lastLineCharacter = line22[line22.length - 1]; - if (lastLineCharacter !== this.newLineCharacter) { - bytesRead = this._readChunk(line22); - if (bytesRead) { - line22 = this.linesCache.shift(); - } - } - } - if (this.eofReached && this.linesCache.length === 0) { - this.close(); - } - if (line22 && line22[line22.length - 1] === this.newLineCharacter) { - line22 = line22.slice(0, line22.length - 1); - } - return line22; - } - }; - module2.exports = LineByLine; - } -}); -var require_js_tokens2 = __commonJS3({ - "node_modules/js-tokens/index.js"(exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; - exports.matchToToken = function(match) { - var token = { type: "invalid", value: match[0], closed: void 0 }; - if (match[1]) - token.type = "string", token.closed = !!(match[3] || match[4]); - else if (match[5]) - token.type = "comment"; - else if (match[6]) - token.type = "comment", token.closed = !!match[7]; - else if (match[8]) - token.type = "regex"; - else if (match[9]) - token.type = "number"; - else if (match[10]) - token.type = "name"; - else if (match[11]) - token.type = "punctuator"; - else if (match[12]) - token.type = "whitespace"; - return token; - }; - } -}); -var require_identifier2 = __commonJS3({ - "node_modules/@babel/helper-validator-identifier/lib/identifier.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isIdentifierChar = isIdentifierChar; - exports.isIdentifierName = isIdentifierName; - exports.isIdentifierStart = isIdentifierStart; - var nonASCIIidentifierStartChars = "\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"; - var nonASCIIidentifierChars = "\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; - var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - function isInAstralSet(code, set2) { - let pos = 65536; - for (let i = 0, length = set2.length; i < length; i += 2) { - pos += set2[i]; - if (pos > code) - return false; - pos += set2[i + 1]; - if (pos >= code) - return true; - } - return false; - } - function isIdentifierStart(code) { - if (code < 65) - return code === 36; - if (code <= 90) - return true; - if (code < 97) - return code === 95; - if (code <= 122) - return true; - if (code <= 65535) { - return code >= 170 && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes); - } - function isIdentifierChar(code) { - if (code < 48) - return code === 36; - if (code < 58) - return true; - if (code < 65) - return false; - if (code <= 90) - return true; - if (code < 97) - return code === 95; - if (code <= 122) - return true; - if (code <= 65535) { - return code >= 170 && nonASCIIidentifier.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); - } - function isIdentifierName(name) { - let isFirst = true; - for (let i = 0; i < name.length; i++) { - let cp2 = name.charCodeAt(i); - if ((cp2 & 64512) === 55296 && i + 1 < name.length) { - const trail = name.charCodeAt(++i); - if ((trail & 64512) === 56320) { - cp2 = 65536 + ((cp2 & 1023) << 10) + (trail & 1023); - } - } - if (isFirst) { - isFirst = false; - if (!isIdentifierStart(cp2)) { - return false; - } - } else if (!isIdentifierChar(cp2)) { - return false; - } - } - return !isFirst; - } - } -}); -var require_keyword2 = __commonJS3({ - "node_modules/@babel/helper-validator-identifier/lib/keyword.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isKeyword = isKeyword; - exports.isReservedWord = isReservedWord; - exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; - exports.isStrictBindReservedWord = isStrictBindReservedWord; - exports.isStrictReservedWord = isStrictReservedWord; - var reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] - }; - var keywords = new Set(reservedWords.keyword); - var reservedWordsStrictSet = new Set(reservedWords.strict); - var reservedWordsStrictBindSet = new Set(reservedWords.strictBind); - function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; - } - function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); - } - function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); - } - function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); - } - function isKeyword(word) { - return keywords.has(word); - } - } -}); -var require_lib4 = __commonJS3({ - "node_modules/@babel/helper-validator-identifier/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function() { - return _identifier.isIdentifierChar; - } - }); - Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function() { - return _identifier.isIdentifierName; - } - }); - Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function() { - return _identifier.isIdentifierStart; - } - }); - Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function() { - return _keyword.isKeyword; - } - }); - Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function() { - return _keyword.isReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictBindOnlyReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictBindReservedWord; - } - }); - Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function() { - return _keyword.isStrictReservedWord; - } - }); - var _identifier = require_identifier2(); - var _keyword = require_keyword2(); - } -}); -var require_escape_string_regexp2 = __commonJS3({ - "node_modules/@babel/code-frame/node_modules/escape-string-regexp/index.js"(exports, module2) { - "use strict"; - var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - module2.exports = function(str2) { - if (typeof str2 !== "string") { - throw new TypeError("Expected a string"); - } - return str2.replace(matchOperatorsRe, "\\$&"); - }; - } -}); -var require_color_name3 = __commonJS3({ - "node_modules/color-name/index.js"(exports, module2) { - "use strict"; - module2.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 require_conversions3 = __commonJS3({ - "node_modules/color-convert/conversions.js"(exports, module2) { - var cssKeywords = require_color_name3(); - var reverseKeywords = {}; - for (key in cssKeywords) { - if (cssKeywords.hasOwnProperty(key)) { - reverseKeywords[cssKeywords[key]] = key; - } - } - var key; - var convert = module2.exports = { - 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"] } - }; - for (model in convert) { - if (convert.hasOwnProperty(model)) { - if (!("channels" in convert[model])) { - throw new Error("missing channels property: " + model); - } - if (!("labels" in convert[model])) { - throw new Error("missing channel labels property: " + model); - } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error("channel and label counts mismatch: " + model); - } - channels = convert[model].channels; - labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], "channels", { value: channels }); - Object.defineProperty(convert[model], "labels", { value: labels }); - } - } - var channels; - var labels; - var model; - convert.rgb.hsl = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var min = Math.min(r3, g3, b5); - var max = Math.max(r3, g3, b5); - var delta = max - min; - var h4; - var s3; - var l; - if (max === min) { - h4 = 0; - } else if (r3 === max) { - h4 = (g3 - b5) / delta; - } else if (g3 === max) { - h4 = 2 + (b5 - r3) / delta; - } else if (b5 === max) { - h4 = 4 + (r3 - g3) / delta; - } - h4 = Math.min(h4 * 60, 360); - if (h4 < 0) { - h4 += 360; - } - l = (min + max) / 2; - if (max === min) { - s3 = 0; - } else if (l <= 0.5) { - s3 = delta / (max + min); - } else { - s3 = delta / (2 - max - min); - } - return [h4, s3 * 100, l * 100]; - }; - convert.rgb.hsv = function(rgb) { - var rdif; - var gdif; - var bdif; - var h4; - var s3; - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var v7 = Math.max(r3, g3, b5); - var diff = v7 - Math.min(r3, g3, b5); - var diffc = function(c3) { - return (v7 - c3) / 6 / diff + 1 / 2; - }; - if (diff === 0) { - h4 = s3 = 0; - } else { - s3 = diff / v7; - rdif = diffc(r3); - gdif = diffc(g3); - bdif = diffc(b5); - if (r3 === v7) { - h4 = bdif - gdif; - } else if (g3 === v7) { - h4 = 1 / 3 + rdif - bdif; - } else if (b5 === v7) { - h4 = 2 / 3 + gdif - rdif; - } - if (h4 < 0) { - h4 += 1; - } else if (h4 > 1) { - h4 -= 1; - } - } - return [ - h4 * 360, - s3 * 100, - v7 * 100 - ]; - }; - convert.rgb.hwb = function(rgb) { - var r3 = rgb[0]; - var g3 = rgb[1]; - var b5 = rgb[2]; - var h4 = convert.rgb.hsl(rgb)[0]; - var w4 = 1 / 255 * Math.min(r3, Math.min(g3, b5)); - b5 = 1 - 1 / 255 * Math.max(r3, Math.max(g3, b5)); - return [h4, w4 * 100, b5 * 100]; - }; - convert.rgb.cmyk = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var c3; - var m3; - var y5; - var k4; - k4 = Math.min(1 - r3, 1 - g3, 1 - b5); - c3 = (1 - r3 - k4) / (1 - k4) || 0; - m3 = (1 - g3 - k4) / (1 - k4) || 0; - y5 = (1 - b5 - k4) / (1 - k4) || 0; - return [c3 * 100, m3 * 100, y5 * 100, k4 * 100]; - }; - function comparativeDistance(x7, y5) { - return Math.pow(x7[0] - y5[0], 2) + Math.pow(x7[1] - y5[1], 2) + Math.pow(x7[2] - y5[2], 2); - } - convert.rgb.keyword = function(rgb) { - var reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - var currentClosestDistance = Infinity; - var currentClosestKeyword; - for (var keyword in cssKeywords) { - if (cssKeywords.hasOwnProperty(keyword)) { - var value = cssKeywords[keyword]; - var distance = comparativeDistance(rgb, value); - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } - return currentClosestKeyword; - }; - convert.keyword.rgb = function(keyword) { - return cssKeywords[keyword]; - }; - convert.rgb.xyz = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - r3 = r3 > 0.04045 ? Math.pow((r3 + 0.055) / 1.055, 2.4) : r3 / 12.92; - g3 = g3 > 0.04045 ? Math.pow((g3 + 0.055) / 1.055, 2.4) : g3 / 12.92; - b5 = b5 > 0.04045 ? Math.pow((b5 + 0.055) / 1.055, 2.4) : b5 / 12.92; - var x7 = r3 * 0.4124 + g3 * 0.3576 + b5 * 0.1805; - var y5 = r3 * 0.2126 + g3 * 0.7152 + b5 * 0.0722; - var z8 = r3 * 0.0193 + g3 * 0.1192 + b5 * 0.9505; - return [x7 * 100, y5 * 100, z8 * 100]; - }; - convert.rgb.lab = function(rgb) { - var xyz = convert.rgb.xyz(rgb); - var x7 = xyz[0]; - var y5 = xyz[1]; - var z8 = xyz[2]; - var l; - var a; - var b5; - x7 /= 95.047; - y5 /= 100; - z8 /= 108.883; - x7 = x7 > 8856e-6 ? Math.pow(x7, 1 / 3) : 7.787 * x7 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z8 = z8 > 8856e-6 ? Math.pow(z8, 1 / 3) : 7.787 * z8 + 16 / 116; - l = 116 * y5 - 16; - a = 500 * (x7 - y5); - b5 = 200 * (y5 - z8); - return [l, a, b5]; - }; - convert.hsl.rgb = function(hsl) { - var h4 = hsl[0] / 360; - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var t12; - var t23; - var t32; - var rgb; - var val; - if (s3 === 0) { - val = l * 255; - return [val, val, val]; - } - if (l < 0.5) { - t23 = l * (1 + s3); - } else { - t23 = l + s3 - l * s3; - } - t12 = 2 * l - t23; - rgb = [0, 0, 0]; - for (var i = 0; i < 3; i++) { - t32 = h4 + 1 / 3 * -(i - 1); - if (t32 < 0) { - t32++; - } - if (t32 > 1) { - t32--; - } - if (6 * t32 < 1) { - val = t12 + (t23 - t12) * 6 * t32; - } else if (2 * t32 < 1) { - val = t23; - } else if (3 * t32 < 2) { - val = t12 + (t23 - t12) * (2 / 3 - t32) * 6; - } else { - val = t12; - } - rgb[i] = val * 255; - } - return rgb; - }; - convert.hsl.hsv = function(hsl) { - var h4 = hsl[0]; - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s3; - var lmin = Math.max(l, 0.01); - var sv; - var v7; - l *= 2; - s3 *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v7 = (l + s3) / 2; - sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s3 / (l + s3); - return [h4, sv * 100, v7 * 100]; - }; - convert.hsv.rgb = function(hsv) { - var h4 = hsv[0] / 60; - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var hi8 = Math.floor(h4) % 6; - var f3 = h4 - Math.floor(h4); - var p4 = 255 * v7 * (1 - s3); - var q8 = 255 * v7 * (1 - s3 * f3); - var t12 = 255 * v7 * (1 - s3 * (1 - f3)); - v7 *= 255; - switch (hi8) { - case 0: - return [v7, t12, p4]; - case 1: - return [q8, v7, p4]; - case 2: - return [p4, v7, t12]; - case 3: - return [p4, q8, v7]; - case 4: - return [t12, p4, v7]; - case 5: - return [v7, p4, q8]; - } - }; - convert.hsv.hsl = function(hsv) { - var h4 = hsv[0]; - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var vmin = Math.max(v7, 0.01); - var lmin; - var sl3; - var l; - l = (2 - s3) * v7; - lmin = (2 - s3) * vmin; - sl3 = s3 * vmin; - sl3 /= lmin <= 1 ? lmin : 2 - lmin; - sl3 = sl3 || 0; - l /= 2; - return [h4, sl3 * 100, l * 100]; - }; - convert.hwb.rgb = function(hwb) { - var h4 = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl2 = hwb[2] / 100; - var ratio = wh + bl2; - var i; - var v7; - var f3; - var n; - if (ratio > 1) { - wh /= ratio; - bl2 /= ratio; - } - i = Math.floor(6 * h4); - v7 = 1 - bl2; - f3 = 6 * h4 - i; - if ((i & 1) !== 0) { - f3 = 1 - f3; - } - n = wh + f3 * (v7 - wh); - var r3; - var g3; - var b5; - switch (i) { - default: - case 6: - case 0: - r3 = v7; - g3 = n; - b5 = wh; - break; - case 1: - r3 = n; - g3 = v7; - b5 = wh; - break; - case 2: - r3 = wh; - g3 = v7; - b5 = n; - break; - case 3: - r3 = wh; - g3 = n; - b5 = v7; - break; - case 4: - r3 = n; - g3 = wh; - b5 = v7; - break; - case 5: - r3 = v7; - g3 = wh; - b5 = n; - break; - } - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.cmyk.rgb = function(cmyk) { - var c3 = cmyk[0] / 100; - var m3 = cmyk[1] / 100; - var y5 = cmyk[2] / 100; - var k4 = cmyk[3] / 100; - var r3; - var g3; - var b5; - r3 = 1 - Math.min(1, c3 * (1 - k4) + k4); - g3 = 1 - Math.min(1, m3 * (1 - k4) + k4); - b5 = 1 - Math.min(1, y5 * (1 - k4) + k4); - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.xyz.rgb = function(xyz) { - var x7 = xyz[0] / 100; - var y5 = xyz[1] / 100; - var z8 = xyz[2] / 100; - var r3; - var g3; - var b5; - r3 = x7 * 3.2406 + y5 * -1.5372 + z8 * -0.4986; - g3 = x7 * -0.9689 + y5 * 1.8758 + z8 * 0.0415; - b5 = x7 * 0.0557 + y5 * -0.204 + z8 * 1.057; - r3 = r3 > 31308e-7 ? 1.055 * Math.pow(r3, 1 / 2.4) - 0.055 : r3 * 12.92; - g3 = g3 > 31308e-7 ? 1.055 * Math.pow(g3, 1 / 2.4) - 0.055 : g3 * 12.92; - b5 = b5 > 31308e-7 ? 1.055 * Math.pow(b5, 1 / 2.4) - 0.055 : b5 * 12.92; - r3 = Math.min(Math.max(0, r3), 1); - g3 = Math.min(Math.max(0, g3), 1); - b5 = Math.min(Math.max(0, b5), 1); - return [r3 * 255, g3 * 255, b5 * 255]; - }; - convert.xyz.lab = function(xyz) { - var x7 = xyz[0]; - var y5 = xyz[1]; - var z8 = xyz[2]; - var l; - var a; - var b5; - x7 /= 95.047; - y5 /= 100; - z8 /= 108.883; - x7 = x7 > 8856e-6 ? Math.pow(x7, 1 / 3) : 7.787 * x7 + 16 / 116; - y5 = y5 > 8856e-6 ? Math.pow(y5, 1 / 3) : 7.787 * y5 + 16 / 116; - z8 = z8 > 8856e-6 ? Math.pow(z8, 1 / 3) : 7.787 * z8 + 16 / 116; - l = 116 * y5 - 16; - a = 500 * (x7 - y5); - b5 = 200 * (y5 - z8); - return [l, a, b5]; - }; - convert.lab.xyz = function(lab) { - var l = lab[0]; - var a = lab[1]; - var b5 = lab[2]; - var x7; - var y5; - var z8; - y5 = (l + 16) / 116; - x7 = a / 500 + y5; - z8 = y5 - b5 / 200; - var y23 = Math.pow(y5, 3); - var x23 = Math.pow(x7, 3); - var z23 = Math.pow(z8, 3); - y5 = y23 > 8856e-6 ? y23 : (y5 - 16 / 116) / 7.787; - x7 = x23 > 8856e-6 ? x23 : (x7 - 16 / 116) / 7.787; - z8 = z23 > 8856e-6 ? z23 : (z8 - 16 / 116) / 7.787; - x7 *= 95.047; - y5 *= 100; - z8 *= 108.883; - return [x7, y5, z8]; - }; - convert.lab.lch = function(lab) { - var l = lab[0]; - var a = lab[1]; - var b5 = lab[2]; - var hr5; - var h4; - var c3; - hr5 = Math.atan2(b5, a); - h4 = hr5 * 360 / 2 / Math.PI; - if (h4 < 0) { - h4 += 360; - } - c3 = Math.sqrt(a * a + b5 * b5); - return [l, c3, h4]; - }; - convert.lch.lab = function(lch) { - var l = lch[0]; - var c3 = lch[1]; - var h4 = lch[2]; - var a; - var b5; - var hr5; - hr5 = h4 / 360 * 2 * Math.PI; - a = c3 * Math.cos(hr5); - b5 = c3 * Math.sin(hr5); - return [l, a, b5]; - }; - convert.rgb.ansi16 = function(args) { - var r3 = args[0]; - var g3 = args[1]; - var b5 = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; - value = Math.round(value / 50); - if (value === 0) { - return 30; - } - var ansi = 30 + (Math.round(b5 / 255) << 2 | Math.round(g3 / 255) << 1 | Math.round(r3 / 255)); - if (value === 2) { - ansi += 60; - } - return ansi; - }; - convert.hsv.ansi16 = function(args) { - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); - }; - convert.rgb.ansi256 = function(args) { - var r3 = args[0]; - var g3 = args[1]; - var b5 = args[2]; - if (r3 === g3 && g3 === b5) { - if (r3 < 8) { - return 16; - } - if (r3 > 248) { - return 231; - } - return Math.round((r3 - 8) / 247 * 24) + 232; - } - var ansi = 16 + 36 * Math.round(r3 / 255 * 5) + 6 * Math.round(g3 / 255 * 5) + Math.round(b5 / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function(args) { - var color = args % 10; - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - color = color / 10.5 * 255; - return [color, color, color]; - } - var mult = (~~(args > 50) + 1) * 0.5; - var r3 = (color & 1) * mult * 255; - var g3 = (color >> 1 & 1) * mult * 255; - var b5 = (color >> 2 & 1) * mult * 255; - return [r3, g3, b5]; - }; - convert.ansi256.rgb = function(args) { - if (args >= 232) { - var c3 = (args - 232) * 10 + 8; - return [c3, c3, c3]; - } - args -= 16; - var rem; - var r3 = Math.floor(args / 36) / 5 * 255; - var g3 = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b5 = rem % 6 / 5 * 255; - return [r3, g3, b5]; - }; - convert.rgb.hex = function(args) { - var integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.hex.rgb = function(args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - var colorString = match[0]; - if (match[0].length === 3) { - colorString = colorString.split("").map(function(char) { - return char + char; - }).join(""); - } - var integer = parseInt(colorString, 16); - var r3 = integer >> 16 & 255; - var g3 = integer >> 8 & 255; - var b5 = integer & 255; - return [r3, g3, b5]; - }; - convert.rgb.hcg = function(rgb) { - var r3 = rgb[0] / 255; - var g3 = rgb[1] / 255; - var b5 = rgb[2] / 255; - var max = Math.max(Math.max(r3, g3), b5); - var min = Math.min(Math.min(r3, g3), b5); - var chroma = max - min; - var grayscale; - var hue; - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - if (chroma <= 0) { - hue = 0; - } else if (max === r3) { - hue = (g3 - b5) / chroma % 6; - } else if (max === g3) { - hue = 2 + (b5 - r3) / chroma; - } else { - hue = 4 + (r3 - g3) / chroma + 4; - } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - convert.hsl.hcg = function(hsl) { - var s3 = hsl[1] / 100; - var l = hsl[2] / 100; - var c3 = 1; - var f3 = 0; - if (l < 0.5) { - c3 = 2 * s3 * l; - } else { - c3 = 2 * s3 * (1 - l); - } - if (c3 < 1) { - f3 = (l - 0.5 * c3) / (1 - c3); - } - return [hsl[0], c3 * 100, f3 * 100]; - }; - convert.hsv.hcg = function(hsv) { - var s3 = hsv[1] / 100; - var v7 = hsv[2] / 100; - var c3 = s3 * v7; - var f3 = 0; - if (c3 < 1) { - f3 = (v7 - c3) / (1 - c3); - } - return [hsv[0], c3 * 100, f3 * 100]; - }; - convert.hcg.rgb = function(hcg) { - var h4 = hcg[0] / 360; - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - if (c3 === 0) { - return [g3 * 255, g3 * 255, g3 * 255]; - } - var pure = [0, 0, 0]; - var hi8 = h4 % 1 * 6; - var v7 = hi8 % 1; - var w4 = 1 - v7; - var mg2 = 0; - switch (Math.floor(hi8)) { - case 0: - pure[0] = 1; - pure[1] = v7; - pure[2] = 0; - break; - case 1: - pure[0] = w4; - pure[1] = 1; - pure[2] = 0; - break; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v7; - break; - case 3: - pure[0] = 0; - pure[1] = w4; - pure[2] = 1; - break; - case 4: - pure[0] = v7; - pure[1] = 0; - pure[2] = 1; - break; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w4; - } - mg2 = (1 - c3) * g3; - return [ - (c3 * pure[0] + mg2) * 255, - (c3 * pure[1] + mg2) * 255, - (c3 * pure[2] + mg2) * 255 - ]; - }; - convert.hcg.hsv = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var v7 = c3 + g3 * (1 - c3); - var f3 = 0; - if (v7 > 0) { - f3 = c3 / v7; - } - return [hcg[0], f3 * 100, v7 * 100]; - }; - convert.hcg.hsl = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var l = g3 * (1 - c3) + 0.5 * c3; - var s3 = 0; - if (l > 0 && l < 0.5) { - s3 = c3 / (2 * l); - } else if (l >= 0.5 && l < 1) { - s3 = c3 / (2 * (1 - l)); - } - return [hcg[0], s3 * 100, l * 100]; - }; - convert.hcg.hwb = function(hcg) { - var c3 = hcg[1] / 100; - var g3 = hcg[2] / 100; - var v7 = c3 + g3 * (1 - c3); - return [hcg[0], (v7 - c3) * 100, (1 - v7) * 100]; - }; - convert.hwb.hcg = function(hwb) { - var w4 = hwb[1] / 100; - var b5 = hwb[2] / 100; - var v7 = 1 - b5; - var c3 = v7 - w4; - var g3 = 0; - if (c3 < 1) { - g3 = (v7 - c3) / (1 - c3); - } - return [hwb[0], c3 * 100, g3 * 100]; - }; - convert.apple.rgb = function(apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - convert.rgb.apple = function(rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; - convert.gray.rgb = function(args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - convert.gray.hsl = convert.gray.hsv = function(args) { - return [0, 0, args[0]]; - }; - convert.gray.hwb = function(gray) { - return [0, 100, gray[0]]; - }; - convert.gray.cmyk = function(gray) { - return [0, 0, 0, gray[0]]; - }; - convert.gray.lab = function(gray) { - return [gray[0], 0, 0]; - }; - convert.gray.hex = function(gray) { - var val = Math.round(gray[0] / 100 * 255) & 255; - var integer = (val << 16) + (val << 8) + val; - var string = integer.toString(16).toUpperCase(); - return "000000".substring(string.length) + string; - }; - convert.rgb.gray = function(rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; - } -}); -var require_route3 = __commonJS3({ - "node_modules/color-convert/route.js"(exports, module2) { - var conversions = require_conversions3(); - function buildGraph() { - var graph = {}; - var models = Object.keys(conversions); - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - return graph; - } - function deriveBFS(fromModel) { - var graph = buildGraph(); - var queue = [fromModel]; - graph[fromModel].distance = 0; - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - return graph; - } - function link(from, to3) { - return function(args) { - return to3(from(args)); - }; - } - function wrapConversion(toModel, graph) { - var path9 = [graph[toModel].parent, toModel]; - var fn6 = conversions[graph[toModel].parent][toModel]; - var cur = graph[toModel].parent; - while (graph[cur].parent) { - path9.unshift(graph[cur].parent); - fn6 = link(conversions[graph[cur].parent][cur], fn6); - cur = graph[cur].parent; - } - fn6.conversion = path9; - return fn6; - } - module2.exports = function(fromModel) { - var graph = deriveBFS(fromModel); - var conversion = {}; - var models = Object.keys(graph); - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; - if (node.parent === null) { - continue; - } - conversion[toModel] = wrapConversion(toModel, graph); - } - return conversion; - }; - } -}); -var require_color_convert3 = __commonJS3({ - "node_modules/color-convert/index.js"(exports, module2) { - var conversions = require_conversions3(); - var route = require_route3(); - var convert = {}; - var models = Object.keys(conversions); - function wrapRaw(fn6) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - return fn6(args); - }; - if ("conversion" in fn6) { - wrappedFn.conversion = fn6.conversion; - } - return wrappedFn; - } - function wrapRounded(fn6) { - var wrappedFn = function(args) { - if (args === void 0 || args === null) { - return args; - } - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - var result = fn6(args); - if (typeof result === "object") { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - return result; - }; - if ("conversion" in fn6) { - wrappedFn.conversion = fn6.conversion; - } - return wrappedFn; - } - models.forEach(function(fromModel) { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }); - Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels }); - var routes = route(fromModel); - var routeModels = Object.keys(routes); - routeModels.forEach(function(toModel) { - var fn6 = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn6); - convert[fromModel][toModel].raw = wrapRaw(fn6); - }); - }); - module2.exports = convert; - } -}); -var require_ansi_styles3 = __commonJS3({ - "node_modules/ansi-styles/index.js"(exports, module2) { - "use strict"; - var colorConvert = require_color_convert3(); - var wrapAnsi162 = (fn6, offset) => function() { - const code = fn6.apply(colorConvert, arguments); - return `\x1B[${code + offset}m`; - }; - var wrapAnsi2562 = (fn6, offset) => function() { - const code = fn6.apply(colorConvert, arguments); - return `\x1B[${38 + offset};5;${code}m`; - }; - var wrapAnsi16m2 = (fn6, offset) => function() { - const rgb = fn6.apply(colorConvert, arguments); - return `\x1B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; - }; - function assembleStyles2() { - const codes2 = /* @__PURE__ */ new Map(); - const styles3 = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - 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], - gray: [90, 39], - // Bright color - 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], - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - styles3.color.grey = styles3.color.gray; - for (const groupName of Object.keys(styles3)) { - const group2 = styles3[groupName]; - for (const styleName of Object.keys(group2)) { - const style = group2[styleName]; - styles3[styleName] = { - open: `\x1B[${style[0]}m`, - close: `\x1B[${style[1]}m` - }; - group2[styleName] = styles3[styleName]; - codes2.set(style[0], style[1]); - } - Object.defineProperty(styles3, groupName, { - value: group2, - enumerable: false - }); - Object.defineProperty(styles3, "codes", { - value: codes2, - enumerable: false - }); - } - const ansi2ansi = (n) => n; - const rgb2rgb = (r3, g3, b5) => [r3, g3, b5]; - styles3.color.close = "\x1B[39m"; - styles3.bgColor.close = "\x1B[49m"; - styles3.color.ansi = { - ansi: wrapAnsi162(ansi2ansi, 0) - }; - styles3.color.ansi256 = { - ansi256: wrapAnsi2562(ansi2ansi, 0) - }; - styles3.color.ansi16m = { - rgb: wrapAnsi16m2(rgb2rgb, 0) - }; - styles3.bgColor.ansi = { - ansi: wrapAnsi162(ansi2ansi, 10) - }; - styles3.bgColor.ansi256 = { - ansi256: wrapAnsi2562(ansi2ansi, 10) - }; - styles3.bgColor.ansi16m = { - rgb: wrapAnsi16m2(rgb2rgb, 10) - }; - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== "object") { - continue; - } - const suite = colorConvert[key]; - if (key === "ansi16") { - key = "ansi"; - } - if ("ansi16" in suite) { - styles3.color.ansi[key] = wrapAnsi162(suite.ansi16, 0); - styles3.bgColor.ansi[key] = wrapAnsi162(suite.ansi16, 10); - } - if ("ansi256" in suite) { - styles3.color.ansi256[key] = wrapAnsi2562(suite.ansi256, 0); - styles3.bgColor.ansi256[key] = wrapAnsi2562(suite.ansi256, 10); - } - if ("rgb" in suite) { - styles3.color.ansi16m[key] = wrapAnsi16m2(suite.rgb, 0); - styles3.bgColor.ansi16m[key] = wrapAnsi16m2(suite.rgb, 10); - } - } - return styles3; - } - Object.defineProperty(module2, "exports", { - enumerable: true, - get: assembleStyles2 - }); - } -}); -var require_has_flag3 = __commonJS3({ - "node_modules/@babel/code-frame/node_modules/has-flag/index.js"(exports, module2) { - "use strict"; - module2.exports = (flag, argv) => { - argv = argv || process.argv; - const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; - const pos = argv.indexOf(prefix + flag); - const terminatorPos = argv.indexOf("--"); - return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); - }; - } -}); -var require_supports_color3 = __commonJS3({ - "node_modules/@babel/code-frame/node_modules/supports-color/index.js"(exports, module2) { - "use strict"; - var os22 = __require2("os"); - var hasFlag2 = require_has_flag3(); - var env2 = process.env; - var forceColor; - if (hasFlag2("no-color") || hasFlag2("no-colors") || hasFlag2("color=false")) { - forceColor = false; - } else if (hasFlag2("color") || hasFlag2("colors") || hasFlag2("color=true") || hasFlag2("color=always")) { - forceColor = true; - } - if ("FORCE_COLOR" in env2) { - forceColor = env2.FORCE_COLOR.length === 0 || parseInt(env2.FORCE_COLOR, 10) !== 0; - } - function translateLevel2(level) { - if (level === 0) { - return false; - } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; - } - function supportsColor2(stream) { - if (forceColor === false) { - return 0; - } - if (hasFlag2("color=16m") || hasFlag2("color=full") || hasFlag2("color=truecolor")) { - return 3; - } - if (hasFlag2("color=256")) { - return 2; - } - if (stream && !stream.isTTY && forceColor !== true) { - return 0; - } - const min = forceColor ? 1 : 0; - if (process.platform === "win32") { - const osRelease = os22.release().split("."); - if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - return 1; - } - if ("CI" in env2) { - if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env2) || env2.CI_NAME === "codeship") { - return 1; - } - return min; - } - if ("TEAMCITY_VERSION" in env2) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env2.TEAMCITY_VERSION) ? 1 : 0; - } - if (env2.COLORTERM === "truecolor") { - return 3; - } - if ("TERM_PROGRAM" in env2) { - const version2 = parseInt((env2.TERM_PROGRAM_VERSION || "").split(".")[0], 10); - switch (env2.TERM_PROGRAM) { - case "iTerm.app": - return version2 >= 3 ? 3 : 2; - case "Apple_Terminal": - return 2; - } - } - if (/-256(color)?$/i.test(env2.TERM)) { - return 2; - } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env2.TERM)) { - return 1; - } - if ("COLORTERM" in env2) { - return 1; - } - if (env2.TERM === "dumb") { - return min; - } - return min; - } - function getSupportLevel(stream) { - const level = supportsColor2(stream); - return translateLevel2(level); - } - module2.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) - }; - } -}); -var require_templates3 = __commonJS3({ - "node_modules/@babel/code-frame/node_modules/chalk/templates.js"(exports, module2) { - "use strict"; - var TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; - var STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; - var STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; - var ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; - var ESCAPES = /* @__PURE__ */ new Map([ - ["n", "\n"], - ["r", "\r"], - ["t", " "], - ["b", "\b"], - ["f", "\f"], - ["v", "\v"], - ["0", "\0"], - ["\\", "\\"], - ["e", "\x1B"], - ["a", "\x07"] - ]); - function unescape2(c3) { - if (c3[0] === "u" && c3.length === 5 || c3[0] === "x" && c3.length === 3) { - return String.fromCharCode(parseInt(c3.slice(1), 16)); - } - return ESCAPES.get(c3) || c3; - } - function parseArguments(name, args) { - const results = []; - const chunks = args.trim().split(/\s*,\s*/g); - let matches; - for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); - } else if (matches = chunk.match(STRING_REGEX)) { - results.push(matches[2].replace(ESCAPE_REGEX, (m3, escape, chr) => escape ? unescape2(escape) : chr)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } - return results; - } - function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; - const results = []; - let matches; - while ((matches = STYLE_REGEX.exec(style)) !== null) { - const name = matches[1]; - if (matches[2]) { - const args = parseArguments(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } - return results; - } - function buildStyle(chalk22, styles3) { - const enabled = {}; - for (const layer of styles3) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } - let current = chalk22; - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } - } - } - return current; - } - module2.exports = (chalk22, tmp) => { - const styles3 = []; - const chunks = []; - let chunk = []; - tmp.replace(TEMPLATE_REGEX, (m3, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape2(escapeChar)); - } else if (style) { - const str2 = chunk.join(""); - chunk = []; - chunks.push(styles3.length === 0 ? str2 : buildStyle(chalk22, styles3)(str2)); - styles3.push({ inverse, styles: parseStyle(style) }); - } else if (close) { - if (styles3.length === 0) { - throw new Error("Found extraneous } in Chalk template literal"); - } - chunks.push(buildStyle(chalk22, styles3)(chunk.join(""))); - chunk = []; - styles3.pop(); - } else { - chunk.push(chr); - } - }); - chunks.push(chunk.join("")); - if (styles3.length > 0) { - const errMsg = `Chalk template literal is missing ${styles3.length} closing bracket${styles3.length === 1 ? "" : "s"} (\`}\`)`; - throw new Error(errMsg); - } - return chunks.join(""); - }; - } -}); -var require_chalk2 = __commonJS3({ - "node_modules/@babel/code-frame/node_modules/chalk/index.js"(exports, module2) { - "use strict"; - var escapeStringRegexp2 = require_escape_string_regexp2(); - var ansiStyles2 = require_ansi_styles3(); - var stdoutColor2 = require_supports_color3().stdout; - var template = require_templates3(); - var isSimpleWindowsTerm = process.platform === "win32" && !(process.env.TERM || "").toLowerCase().startsWith("xterm"); - var levelMapping2 = ["ansi", "ansi", "ansi256", "ansi16m"]; - var skipModels = /* @__PURE__ */ new Set(["gray"]); - var styles3 = /* @__PURE__ */ Object.create(null); - function applyOptions2(obj, options8) { - options8 = options8 || {}; - const scLevel = stdoutColor2 ? stdoutColor2.level : 0; - obj.level = options8.level === void 0 ? scLevel : options8.level; - obj.enabled = "enabled" in options8 ? options8.enabled : obj.level > 0; - } - function Chalk(options8) { - if (!this || !(this instanceof Chalk) || this.template) { - const chalk22 = {}; - applyOptions2(chalk22, options8); - chalk22.template = function() { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk22.template].concat(args)); - }; - Object.setPrototypeOf(chalk22, Chalk.prototype); - Object.setPrototypeOf(chalk22.template, chalk22); - chalk22.template.constructor = Chalk; - return chalk22.template; - } - applyOptions2(this, options8); - } - if (isSimpleWindowsTerm) { - ansiStyles2.blue.open = "\x1B[94m"; - } - for (const key of Object.keys(ansiStyles2)) { - ansiStyles2[key].closeRe = new RegExp(escapeStringRegexp2(ansiStyles2[key].close), "g"); - styles3[key] = { - get() { - const codes2 = ansiStyles2[key]; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, key); - } - }; - } - styles3.visible = { - get() { - return build.call(this, this._styles || [], true, "visible"); - } - }; - ansiStyles2.color.closeRe = new RegExp(escapeStringRegexp2(ansiStyles2.color.close), "g"); - for (const model of Object.keys(ansiStyles2.color.ansi)) { - if (skipModels.has(model)) { - continue; - } - styles3[model] = { - get() { - const level = this.level; - return function() { - const open = ansiStyles2.color[levelMapping2[level]][model].apply(null, arguments); - const codes2 = { - open, - close: ansiStyles2.color.close, - closeRe: ansiStyles2.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, model); - }; - } - }; - } - ansiStyles2.bgColor.closeRe = new RegExp(escapeStringRegexp2(ansiStyles2.bgColor.close), "g"); - for (const model of Object.keys(ansiStyles2.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } - const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); - styles3[bgModel] = { - get() { - const level = this.level; - return function() { - const open = ansiStyles2.bgColor[levelMapping2[level]][model].apply(null, arguments); - const codes2 = { - open, - close: ansiStyles2.bgColor.close, - closeRe: ansiStyles2.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes2) : [codes2], this._empty, model); - }; - } - }; - } - var proto2 = Object.defineProperties(() => { - }, styles3); - function build(_styles, _empty, key) { - const builder = function() { - return applyStyle2.apply(builder, arguments); - }; - builder._styles = _styles; - builder._empty = _empty; - const self2 = this; - Object.defineProperty(builder, "level", { - enumerable: true, - get() { - return self2.level; - }, - set(level) { - self2.level = level; - } - }); - Object.defineProperty(builder, "enabled", { - enumerable: true, - get() { - return self2.enabled; - }, - set(enabled) { - self2.enabled = enabled; - } - }); - builder.hasGrey = this.hasGrey || key === "gray" || key === "grey"; - builder.__proto__ = proto2; - return builder; - } - function applyStyle2() { - const args = arguments; - const argsLen = args.length; - let str2 = String(arguments[0]); - if (argsLen === 0) { - return ""; - } - if (argsLen > 1) { - for (let a = 1; a < argsLen; a++) { - str2 += " " + args[a]; - } - } - if (!this.enabled || this.level <= 0 || !str2) { - return this._empty ? "" : str2; - } - const originalDim = ansiStyles2.dim.open; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles2.dim.open = ""; - } - for (const code of this._styles.slice().reverse()) { - str2 = code.open + str2.replace(code.closeRe, code.open) + code.close; - str2 = str2.replace(/\r?\n/g, `${code.close}$&${code.open}`); - } - ansiStyles2.dim.open = originalDim; - return str2; - } - function chalkTag(chalk22, strings) { - if (!Array.isArray(strings)) { - return [].slice.call(arguments, 1).join(" "); - } - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, "\\$&")); - parts.push(String(strings.raw[i])); - } - return template(chalk22, parts.join("")); - } - Object.defineProperties(Chalk.prototype, styles3); - module2.exports = Chalk(); - module2.exports.supportsColor = stdoutColor2; - module2.exports.default = module2.exports; - } -}); -var require_lib23 = __commonJS3({ - "node_modules/@babel/highlight/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = highlight; - exports.shouldHighlight = shouldHighlight; - var _jsTokens = require_js_tokens2(); - var _helperValidatorIdentifier = require_lib4(); - var _chalk2 = require_chalk2(); - var chalk22 = _chalk2; - var sometimesKeywords = /* @__PURE__ */ new Set(["as", "async", "from", "get", "of", "set"]); - function getDefs(chalk3) { - return { - keyword: chalk3.cyan, - capitalized: chalk3.yellow, - jsxIdentifier: chalk3.yellow, - punctuator: chalk3.yellow, - number: chalk3.magenta, - string: chalk3.green, - regex: chalk3.magenta, - comment: chalk3.grey, - invalid: chalk3.white.bgRed.bold - }; - } - var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - var BRACKET = /^[()[\]{}]$/; - var tokenize; - { - const JSX_TAG = /^[a-z][\w-]*$/i; - const getTokenType = function(token, offset, text) { - if (token.type === "name") { - if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { - return "keyword"; - } - if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) == " colorize(str2)).join("\n"); - } else { - highlighted += value; - } - } - return highlighted; - } - function shouldHighlight(options8) { - return !!chalk22.supportsColor || options8.forceColor; - } - var chalkWithForcedColor = void 0; - function getChalk(forceColor) { - if (forceColor) { - var _chalkWithForcedColor; - (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new chalk22.constructor({ - enabled: true, - level: 1 - }); - return chalkWithForcedColor; - } - return chalk22; - } - { - { - exports.getChalk = (options8) => getChalk(options8.forceColor); - } - } - function highlight(code, options8 = {}) { - if (code !== "" && shouldHighlight(options8)) { - const defs = getDefs(getChalk(options8.forceColor)); - return highlightTokens(defs, code); - } else { - return code; - } - } - } -}); -var require_lib33 = __commonJS3({ - "node_modules/@babel/code-frame/lib/index.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.codeFrameColumns = codeFrameColumns2; - exports.default = _default2; - var _highlight = require_lib23(); - var _chalk2 = require_chalk2(); - var chalk22 = _chalk2; - var chalkWithForcedColor = void 0; - function getChalk(forceColor) { - if (forceColor) { - var _chalkWithForcedColor; - (_chalkWithForcedColor = chalkWithForcedColor) != null ? _chalkWithForcedColor : chalkWithForcedColor = new chalk22.constructor({ - enabled: true, - level: 1 - }); - return chalkWithForcedColor; - } - return chalk22; - } - var deprecationWarningShown = false; - function getDefs(chalk3) { - return { - gutter: chalk3.grey, - marker: chalk3.red.bold, - message: chalk3.red.bold - }; - } - var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - function getMarkerLines(loc, source, opts) { - const startLoc = Object.assign({ - column: 0, - line: -1 - }, loc.start); - const endLoc = Object.assign({}, startLoc, loc.end); - const { - linesAbove = 2, - linesBelow = 3 - } = opts || {}; - const startLine = startLoc.line; - const startColumn = startLoc.column; - const endLine = endLoc.line; - const endColumn = endLoc.column; - let start = Math.max(startLine - (linesAbove + 1), 0); - let end = Math.min(source.length, endLine + linesBelow); - if (startLine === -1) { - start = 0; - } - if (endLine === -1) { - end = source.length; - } - const lineDiff = endLine - startLine; - const markerLines = {}; - if (lineDiff) { - for (let i = 0; i <= lineDiff; i++) { - const lineNumber = i + startLine; - if (!startColumn) { - markerLines[lineNumber] = true; - } else if (i === 0) { - const sourceLength = source[lineNumber - 1].length; - markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; - } else if (i === lineDiff) { - markerLines[lineNumber] = [0, endColumn]; - } else { - const sourceLength = source[lineNumber - i].length; - markerLines[lineNumber] = [0, sourceLength]; - } - } - } else { - if (startColumn === endColumn) { - if (startColumn) { - markerLines[startLine] = [startColumn, 0]; - } else { - markerLines[startLine] = true; - } - } else { - markerLines[startLine] = [startColumn, endColumn - startColumn]; - } - } - return { - start, - end, - markerLines - }; - } - function codeFrameColumns2(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); - const chalk3 = getChalk(opts.forceColor); - const defs = getDefs(chalk3); - const maybeHighlight = (chalkFn, string) => { - return highlighted ? chalkFn(string) : string; - }; - const lines = rawLines.split(NEWLINE); - const { - start, - end, - markerLines - } = getMarkerLines(loc, lines, opts); - const hasColumns = loc.start && typeof loc.start.column === "number"; - const numberMaxWidth = String(end).length; - const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line22, index) => { - const number = start + 1 + index; - const paddedNumber = ` ${number}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} |`; - const hasMarker = markerLines[number]; - const lastMarkerLine = !markerLines[number + 1]; - if (hasMarker) { - let markerLine = ""; - if (Array.isArray(hasMarker)) { - const markerSpacing = line22.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); - const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); - if (lastMarkerLine && opts.message) { - markerLine += " " + maybeHighlight(defs.message, opts.message); - } - } - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line22.length > 0 ? ` ${line22}` : "", markerLine].join(""); - } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line22.length > 0 ? ` ${line22}` : ""}`; - } - }).join("\n"); - if (opts.message && !hasColumns) { - frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message} -${frame}`; - } - if (highlighted) { - return chalk3.reset(frame); - } else { - return frame; - } - } - function _default2(rawLines, lineNumber, colNumber, opts = {}) { - if (!deprecationWarningShown) { - deprecationWarningShown = true; - const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; - if (process.emitWarning) { - process.emitWarning(message, "DeprecationWarning"); - } else { - const deprecationError = new Error(message); - deprecationError.name = "DeprecationWarning"; - console.warn(new Error(message)); - } - } - colNumber = Math.max(colNumber, 0); - const location = { - start: { - column: colNumber, - line: lineNumber - } - }; - return codeFrameColumns2(rawLines, location, opts); - } - } -}); -var require_p_defer = __commonJS3({ - "node_modules/p-defer/index.js"(exports, module2) { - "use strict"; - module2.exports = () => { - const ret = {}; - ret.promise = new Promise((resolve2, reject) => { - ret.resolve = resolve2; - ret.reject = reject; - }); - return ret; - }; - } -}); -var require_dist3 = __commonJS3({ - "node_modules/map-age-cleaner/dist/index.js"(exports, module2) { - "use strict"; - var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P10, generator) { - return new (P10 || (P10 = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e3) { - reject(e3); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e3) { - reject(e3); - } - } - function step(result) { - result.done ? resolve2(result.value) : new P10(function(resolve3) { - resolve3(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var p_defer_1 = __importDefault(require_p_defer()); - function mapAgeCleaner2(map2, property = "maxAge") { - let processingKey; - let processingTimer; - let processingDeferred; - const cleanup = () => __awaiter(this, void 0, void 0, function* () { - if (processingKey !== void 0) { - return; - } - const setupTimer = (item) => __awaiter(this, void 0, void 0, function* () { - processingDeferred = p_defer_1.default(); - const delay = item[1][property] - Date.now(); - if (delay <= 0) { - map2.delete(item[0]); - processingDeferred.resolve(); - return; - } - processingKey = item[0]; - processingTimer = setTimeout(() => { - map2.delete(item[0]); - if (processingDeferred) { - processingDeferred.resolve(); - } - }, delay); - if (typeof processingTimer.unref === "function") { - processingTimer.unref(); - } - return processingDeferred.promise; - }); - try { - for (const entry of map2) { - yield setupTimer(entry); - } - } catch (_a3) { - } - processingKey = void 0; - }); - const reset = () => { - processingKey = void 0; - if (processingTimer !== void 0) { - clearTimeout(processingTimer); - processingTimer = void 0; - } - if (processingDeferred !== void 0) { - processingDeferred.reject(void 0); - processingDeferred = void 0; - } - }; - const originalSet = map2.set.bind(map2); - map2.set = (key, value) => { - if (map2.has(key)) { - map2.delete(key); - } - const result = originalSet(key, value); - if (processingKey && processingKey === key) { - reset(); - } - cleanup(); - return result; - }; - cleanup(); - return map2; - } - exports.default = mapAgeCleaner2; - module2.exports = mapAgeCleaner2; - module2.exports.default = mapAgeCleaner2; - } -}); -var require_debug2 = __commonJS3({ - "node_modules/semver/internal/debug.js"(exports, module2) { - var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { - }; - module2.exports = debug; - } -}); -var require_constants4 = __commonJS3({ - "node_modules/semver/internal/constants.js"(exports, module2) { - var SEMVER_SPEC_VERSION = "2.0.0"; - var MAX_LENGTH = 256; - var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ - 9007199254740991; - var MAX_SAFE_COMPONENT_LENGTH = 16; - var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; - var RELEASE_TYPES = [ - "major", - "premajor", - "minor", - "preminor", - "patch", - "prepatch", - "prerelease" - ]; - module2.exports = { - MAX_LENGTH, - MAX_SAFE_COMPONENT_LENGTH, - MAX_SAFE_BUILD_LENGTH, - MAX_SAFE_INTEGER, - RELEASE_TYPES, - SEMVER_SPEC_VERSION, - FLAG_INCLUDE_PRERELEASE: 1, - FLAG_LOOSE: 2 - }; - } -}); -var require_re2 = __commonJS3({ - "node_modules/semver/internal/re.js"(exports, module2) { - var { - MAX_SAFE_COMPONENT_LENGTH, - MAX_SAFE_BUILD_LENGTH, - MAX_LENGTH - } = require_constants4(); - var debug = require_debug2(); - exports = module2.exports = {}; - var re9 = exports.re = []; - var safeRe = exports.safeRe = []; - var src = exports.src = []; - var t12 = exports.t = {}; - var R10 = 0; - var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; - var safeRegexReplacements = [ - ["\\s", 1], - ["\\d", MAX_LENGTH], - [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] - ]; - var makeSafeRegex = (value) => { - for (const [token, max] of safeRegexReplacements) { - value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); - } - return value; - }; - var createToken = (name, value, isGlobal) => { - const safe = makeSafeRegex(value); - const index = R10++; - debug(name, index, value); - t12[name] = index; - src[index] = value; - re9[index] = new RegExp(value, isGlobal ? "g" : void 0); - safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); - }; - createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); - createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); - createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); - createToken("MAINVERSION", `(${src[t12.NUMERICIDENTIFIER]})\\.(${src[t12.NUMERICIDENTIFIER]})\\.(${src[t12.NUMERICIDENTIFIER]})`); - createToken("MAINVERSIONLOOSE", `(${src[t12.NUMERICIDENTIFIERLOOSE]})\\.(${src[t12.NUMERICIDENTIFIERLOOSE]})\\.(${src[t12.NUMERICIDENTIFIERLOOSE]})`); - createToken("PRERELEASEIDENTIFIER", `(?:${src[t12.NUMERICIDENTIFIER]}|${src[t12.NONNUMERICIDENTIFIER]})`); - createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t12.NUMERICIDENTIFIERLOOSE]}|${src[t12.NONNUMERICIDENTIFIER]})`); - createToken("PRERELEASE", `(?:-(${src[t12.PRERELEASEIDENTIFIER]}(?:\\.${src[t12.PRERELEASEIDENTIFIER]})*))`); - createToken("PRERELEASELOOSE", `(?:-?(${src[t12.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t12.PRERELEASEIDENTIFIERLOOSE]})*))`); - createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); - createToken("BUILD", `(?:\\+(${src[t12.BUILDIDENTIFIER]}(?:\\.${src[t12.BUILDIDENTIFIER]})*))`); - createToken("FULLPLAIN", `v?${src[t12.MAINVERSION]}${src[t12.PRERELEASE]}?${src[t12.BUILD]}?`); - createToken("FULL", `^${src[t12.FULLPLAIN]}$`); - createToken("LOOSEPLAIN", `[v=\\s]*${src[t12.MAINVERSIONLOOSE]}${src[t12.PRERELEASELOOSE]}?${src[t12.BUILD]}?`); - createToken("LOOSE", `^${src[t12.LOOSEPLAIN]}$`); - createToken("GTLT", "((?:<|>)?=?)"); - createToken("XRANGEIDENTIFIERLOOSE", `${src[t12.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); - createToken("XRANGEIDENTIFIER", `${src[t12.NUMERICIDENTIFIER]}|x|X|\\*`); - createToken("XRANGEPLAIN", `[v=\\s]*(${src[t12.XRANGEIDENTIFIER]})(?:\\.(${src[t12.XRANGEIDENTIFIER]})(?:\\.(${src[t12.XRANGEIDENTIFIER]})(?:${src[t12.PRERELEASE]})?${src[t12.BUILD]}?)?)?`); - createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t12.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t12.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t12.XRANGEIDENTIFIERLOOSE]})(?:${src[t12.PRERELEASELOOSE]})?${src[t12.BUILD]}?)?)?`); - createToken("XRANGE", `^${src[t12.GTLT]}\\s*${src[t12.XRANGEPLAIN]}$`); - createToken("XRANGELOOSE", `^${src[t12.GTLT]}\\s*${src[t12.XRANGEPLAINLOOSE]}$`); - createToken("COERCE", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:$|[^\\d])`); - createToken("COERCERTL", src[t12.COERCE], true); - createToken("LONETILDE", "(?:~>?)"); - createToken("TILDETRIM", `(\\s*)${src[t12.LONETILDE]}\\s+`, true); - exports.tildeTrimReplace = "$1~"; - createToken("TILDE", `^${src[t12.LONETILDE]}${src[t12.XRANGEPLAIN]}$`); - createToken("TILDELOOSE", `^${src[t12.LONETILDE]}${src[t12.XRANGEPLAINLOOSE]}$`); - createToken("LONECARET", "(?:\\^)"); - createToken("CARETTRIM", `(\\s*)${src[t12.LONECARET]}\\s+`, true); - exports.caretTrimReplace = "$1^"; - createToken("CARET", `^${src[t12.LONECARET]}${src[t12.XRANGEPLAIN]}$`); - createToken("CARETLOOSE", `^${src[t12.LONECARET]}${src[t12.XRANGEPLAINLOOSE]}$`); - createToken("COMPARATORLOOSE", `^${src[t12.GTLT]}\\s*(${src[t12.LOOSEPLAIN]})$|^$`); - createToken("COMPARATOR", `^${src[t12.GTLT]}\\s*(${src[t12.FULLPLAIN]})$|^$`); - createToken("COMPARATORTRIM", `(\\s*)${src[t12.GTLT]}\\s*(${src[t12.LOOSEPLAIN]}|${src[t12.XRANGEPLAIN]})`, true); - exports.comparatorTrimReplace = "$1$2$3"; - createToken("HYPHENRANGE", `^\\s*(${src[t12.XRANGEPLAIN]})\\s+-\\s+(${src[t12.XRANGEPLAIN]})\\s*$`); - createToken("HYPHENRANGELOOSE", `^\\s*(${src[t12.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t12.XRANGEPLAINLOOSE]})\\s*$`); - createToken("STAR", "(<|>)?=?\\s*\\*"); - createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); - createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); - } -}); -var require_parse_options2 = __commonJS3({ - "node_modules/semver/internal/parse-options.js"(exports, module2) { - var looseOption = Object.freeze({ loose: true }); - var emptyOpts = Object.freeze({}); - var parseOptions = (options8) => { - if (!options8) { - return emptyOpts; - } - if (typeof options8 !== "object") { - return looseOption; - } - return options8; - }; - module2.exports = parseOptions; - } -}); -var require_identifiers2 = __commonJS3({ - "node_modules/semver/internal/identifiers.js"(exports, module2) { - var numeric = /^[0-9]+$/; - var compareIdentifiers = (a, b5) => { - const anum = numeric.test(a); - const bnum = numeric.test(b5); - if (anum && bnum) { - a = +a; - b5 = +b5; - } - return a === b5 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b5 ? -1 : 1; - }; - var rcompareIdentifiers = (a, b5) => compareIdentifiers(b5, a); - module2.exports = { - compareIdentifiers, - rcompareIdentifiers - }; - } -}); -var require_semver3 = __commonJS3({ - "node_modules/semver/classes/semver.js"(exports, module2) { - var debug = require_debug2(); - var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants4(); - var { safeRe: re9, t: t12 } = require_re2(); - var parseOptions = require_parse_options2(); - var { compareIdentifiers } = require_identifiers2(); - var SemVer = class _SemVer { - constructor(version2, options8) { - options8 = parseOptions(options8); - if (version2 instanceof _SemVer) { - if (version2.loose === !!options8.loose && version2.includePrerelease === !!options8.includePrerelease) { - return version2; - } else { - version2 = version2.version; - } - } else if (typeof version2 !== "string") { - throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version2}".`); - } - if (version2.length > MAX_LENGTH) { - throw new TypeError( - `version is longer than ${MAX_LENGTH} characters` - ); - } - debug("SemVer", version2, options8); - this.options = options8; - this.loose = !!options8.loose; - this.includePrerelease = !!options8.includePrerelease; - const m3 = version2.trim().match(options8.loose ? re9[t12.LOOSE] : re9[t12.FULL]); - if (!m3) { - throw new TypeError(`Invalid Version: ${version2}`); - } - this.raw = version2; - this.major = +m3[1]; - this.minor = +m3[2]; - this.patch = +m3[3]; - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError("Invalid major version"); - } - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError("Invalid minor version"); - } - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError("Invalid patch version"); - } - if (!m3[4]) { - this.prerelease = []; - } else { - this.prerelease = m3[4].split(".").map((id2) => { - if (/^[0-9]+$/.test(id2)) { - const num = +id2; - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num; - } - } - return id2; - }); - } - this.build = m3[5] ? m3[5].split(".") : []; - this.format(); - } - format() { - this.version = `${this.major}.${this.minor}.${this.patch}`; - if (this.prerelease.length) { - this.version += `-${this.prerelease.join(".")}`; - } - return this.version; - } - toString() { - return this.version; - } - compare(other) { - debug("SemVer.compare", this.version, this.options, other); - if (!(other instanceof _SemVer)) { - if (typeof other === "string" && other === this.version) { - return 0; - } - other = new _SemVer(other, this.options); - } - if (other.version === this.version) { - return 0; - } - return this.compareMain(other) || this.comparePre(other); - } - compareMain(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); - } - comparePre(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - if (this.prerelease.length && !other.prerelease.length) { - return -1; - } else if (!this.prerelease.length && other.prerelease.length) { - return 1; - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0; - } - let i = 0; - do { - const a = this.prerelease[i]; - const b5 = other.prerelease[i]; - debug("prerelease compare", i, a, b5); - if (a === void 0 && b5 === void 0) { - return 0; - } else if (b5 === void 0) { - return 1; - } else if (a === void 0) { - return -1; - } else if (a === b5) { - continue; - } else { - return compareIdentifiers(a, b5); - } - } while (++i); - } - compareBuild(other) { - if (!(other instanceof _SemVer)) { - other = new _SemVer(other, this.options); - } - let i = 0; - do { - const a = this.build[i]; - const b5 = other.build[i]; - debug("prerelease compare", i, a, b5); - if (a === void 0 && b5 === void 0) { - return 0; - } else if (b5 === void 0) { - return 1; - } else if (a === void 0) { - return -1; - } else if (a === b5) { - continue; - } else { - return compareIdentifiers(a, b5); - } - } while (++i); - } - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - inc(release, identifier, identifierBase) { - switch (release) { - case "premajor": - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc("pre", identifier, identifierBase); - break; - case "preminor": - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc("pre", identifier, identifierBase); - break; - case "prepatch": - this.prerelease.length = 0; - this.inc("patch", identifier, identifierBase); - this.inc("pre", identifier, identifierBase); - break; - case "prerelease": - if (this.prerelease.length === 0) { - this.inc("patch", identifier, identifierBase); - } - this.inc("pre", identifier, identifierBase); - break; - case "major": - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { - this.major++; - } - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; - case "minor": - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++; - } - this.patch = 0; - this.prerelease = []; - break; - case "patch": - if (this.prerelease.length === 0) { - this.patch++; - } - this.prerelease = []; - break; - case "pre": { - const base = Number(identifierBase) ? 1 : 0; - if (!identifier && identifierBase === false) { - throw new Error("invalid increment argument: identifier is empty"); - } - if (this.prerelease.length === 0) { - this.prerelease = [base]; - } else { - let i = this.prerelease.length; - while (--i >= 0) { - if (typeof this.prerelease[i] === "number") { - this.prerelease[i]++; - i = -2; - } - } - if (i === -1) { - if (identifier === this.prerelease.join(".") && identifierBase === false) { - throw new Error("invalid increment argument: identifier already exists"); - } - this.prerelease.push(base); - } - } - if (identifier) { - let prerelease = [identifier, base]; - if (identifierBase === false) { - prerelease = [identifier]; - } - if (compareIdentifiers(this.prerelease[0], identifier) === 0) { - if (isNaN(this.prerelease[1])) { - this.prerelease = prerelease; - } - } else { - this.prerelease = prerelease; - } - } - break; - } - default: - throw new Error(`invalid increment argument: ${release}`); - } - this.raw = this.format(); - if (this.build.length) { - this.raw += `+${this.build.join(".")}`; - } - return this; - } - }; - module2.exports = SemVer; - } -}); -var require_compare2 = __commonJS3({ - "node_modules/semver/functions/compare.js"(exports, module2) { - var SemVer = require_semver3(); - var compare = (a, b5, loose) => new SemVer(a, loose).compare(new SemVer(b5, loose)); - module2.exports = compare; - } -}); -var require_gte2 = __commonJS3({ - "node_modules/semver/functions/gte.js"(exports, module2) { - var compare = require_compare2(); - var gte = (a, b5, loose) => compare(a, b5, loose) >= 0; - module2.exports = gte; - } -}); -var require_pseudomap = __commonJS3({ - "node_modules/pseudomap/pseudomap.js"(exports, module2) { - var hasOwnProperty2 = Object.prototype.hasOwnProperty; - module2.exports = PseudoMap; - function PseudoMap(set22) { - if (!(this instanceof PseudoMap)) - throw new TypeError("Constructor PseudoMap requires 'new'"); - this.clear(); - if (set22) { - if (set22 instanceof PseudoMap || typeof Map === "function" && set22 instanceof Map) - set22.forEach(function(value, key) { - this.set(key, value); - }, this); - else if (Array.isArray(set22)) - set22.forEach(function(kv) { - this.set(kv[0], kv[1]); - }, this); - else - throw new TypeError("invalid argument"); - } - } - PseudoMap.prototype.forEach = function(fn6, thisp) { - thisp = thisp || this; - Object.keys(this._data).forEach(function(k4) { - if (k4 !== "size") - fn6.call(thisp, this._data[k4].value, this._data[k4].key); - }, this); - }; - PseudoMap.prototype.has = function(k4) { - return !!find(this._data, k4); - }; - PseudoMap.prototype.get = function(k4) { - var res = find(this._data, k4); - return res && res.value; - }; - PseudoMap.prototype.set = function(k4, v7) { - set2(this._data, k4, v7); - }; - PseudoMap.prototype.delete = function(k4) { - var res = find(this._data, k4); - if (res) { - delete this._data[res._index]; - this._data.size--; - } - }; - PseudoMap.prototype.clear = function() { - var data = /* @__PURE__ */ Object.create(null); - data.size = 0; - Object.defineProperty(this, "_data", { - value: data, - enumerable: false, - configurable: true, - writable: false - }); - }; - Object.defineProperty(PseudoMap.prototype, "size", { - get: function() { - return this._data.size; - }, - set: function(n) { - }, - enumerable: true, - configurable: true - }); - PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function() { - throw new Error("iterators are not implemented in this version"); - }; - function same(a, b5) { - return a === b5 || a !== a && b5 !== b5; - } - function Entry(k4, v7, i) { - this.key = k4; - this.value = v7; - this._index = i; - } - function find(data, k4) { - for (var i = 0, s3 = "_" + k4, key = s3; hasOwnProperty2.call(data, key); key = s3 + i++) { - if (same(data[key].key, k4)) - return data[key]; - } - } - function set2(data, k4, v7) { - for (var i = 0, s3 = "_" + k4, key = s3; hasOwnProperty2.call(data, key); key = s3 + i++) { - if (same(data[key].key, k4)) { - data[key].value = v7; - return; - } - } - data.size++; - data[key] = new Entry(k4, v7, key); - } - } -}); -var require_map2 = __commonJS3({ - "node_modules/pseudomap/map.js"(exports, module2) { - if (process.env.npm_package_name === "pseudomap" && process.env.npm_lifecycle_script === "test") - process.env.TEST_PSEUDOMAP = "true"; - if (typeof Map === "function" && !process.env.TEST_PSEUDOMAP) { - module2.exports = Map; - } else { - module2.exports = require_pseudomap(); - } - } -}); -var require_yallist2 = __commonJS3({ - "node_modules/editorconfig/node_modules/yallist/yallist.js"(exports, module2) { - module2.exports = Yallist; - Yallist.Node = Node; - Yallist.create = Yallist; - function Yallist(list) { - var self2 = this; - if (!(self2 instanceof Yallist)) { - self2 = new Yallist(); - } - self2.tail = null; - self2.head = null; - self2.length = 0; - if (list && typeof list.forEach === "function") { - list.forEach(function(item) { - self2.push(item); - }); - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self2.push(arguments[i]); - } - } - return self2; - } - Yallist.prototype.removeNode = function(node) { - if (node.list !== this) { - throw new Error("removing node which does not belong to this list"); - } - var next = node.next; - var prev = node.prev; - if (next) { - next.prev = prev; - } - if (prev) { - prev.next = next; - } - if (node === this.head) { - this.head = next; - } - if (node === this.tail) { - this.tail = prev; - } - node.list.length--; - node.next = null; - node.prev = null; - node.list = null; - }; - Yallist.prototype.unshiftNode = function(node) { - if (node === this.head) { - return; - } - if (node.list) { - node.list.removeNode(node); - } - var head = this.head; - node.list = this; - node.next = head; - if (head) { - head.prev = node; - } - this.head = node; - if (!this.tail) { - this.tail = node; - } - this.length++; - }; - Yallist.prototype.pushNode = function(node) { - if (node === this.tail) { - return; - } - if (node.list) { - node.list.removeNode(node); - } - var tail = this.tail; - node.list = this; - node.prev = tail; - if (tail) { - tail.next = node; - } - this.tail = node; - if (!this.head) { - this.head = node; - } - this.length++; - }; - Yallist.prototype.push = function() { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]); - } - return this.length; - }; - Yallist.prototype.unshift = function() { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]); - } - return this.length; - }; - Yallist.prototype.pop = function() { - if (!this.tail) { - return void 0; - } - var res = this.tail.value; - this.tail = this.tail.prev; - if (this.tail) { - this.tail.next = null; - } else { - this.head = null; - } - this.length--; - return res; - }; - Yallist.prototype.shift = function() { - if (!this.head) { - return void 0; - } - var res = this.head.value; - this.head = this.head.next; - if (this.head) { - this.head.prev = null; - } else { - this.tail = null; - } - this.length--; - return res; - }; - Yallist.prototype.forEach = function(fn6, thisp) { - thisp = thisp || this; - for (var walker = this.head, i = 0; walker !== null; i++) { - fn6.call(thisp, walker.value, i, this); - walker = walker.next; - } - }; - Yallist.prototype.forEachReverse = function(fn6, thisp) { - thisp = thisp || this; - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn6.call(thisp, walker.value, i, this); - walker = walker.prev; - } - }; - Yallist.prototype.get = function(n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - walker = walker.next; - } - if (i === n && walker !== null) { - return walker.value; - } - }; - Yallist.prototype.getReverse = function(n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - walker = walker.prev; - } - if (i === n && walker !== null) { - return walker.value; - } - }; - Yallist.prototype.map = function(fn6, thisp) { - thisp = thisp || this; - var res = new Yallist(); - for (var walker = this.head; walker !== null; ) { - res.push(fn6.call(thisp, walker.value, this)); - walker = walker.next; - } - return res; - }; - Yallist.prototype.mapReverse = function(fn6, thisp) { - thisp = thisp || this; - var res = new Yallist(); - for (var walker = this.tail; walker !== null; ) { - res.push(fn6.call(thisp, walker.value, this)); - walker = walker.prev; - } - return res; - }; - Yallist.prototype.reduce = function(fn6, initial) { - var acc; - var walker = this.head; - if (arguments.length > 1) { - acc = initial; - } else if (this.head) { - walker = this.head.next; - acc = this.head.value; - } else { - throw new TypeError("Reduce of empty list with no initial value"); - } - for (var i = 0; walker !== null; i++) { - acc = fn6(acc, walker.value, i); - walker = walker.next; - } - return acc; - }; - Yallist.prototype.reduceReverse = function(fn6, initial) { - var acc; - var walker = this.tail; - if (arguments.length > 1) { - acc = initial; - } else if (this.tail) { - walker = this.tail.prev; - acc = this.tail.value; - } else { - throw new TypeError("Reduce of empty list with no initial value"); - } - for (var i = this.length - 1; walker !== null; i--) { - acc = fn6(acc, walker.value, i); - walker = walker.prev; - } - return acc; - }; - Yallist.prototype.toArray = function() { - var arr = new Array(this.length); - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.next; - } - return arr; - }; - Yallist.prototype.toArrayReverse = function() { - var arr = new Array(this.length); - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.prev; - } - return arr; - }; - Yallist.prototype.slice = function(from, to3) { - to3 = to3 || this.length; - if (to3 < 0) { - to3 += this.length; - } - from = from || 0; - if (from < 0) { - from += this.length; - } - var ret = new Yallist(); - if (to3 < from || to3 < 0) { - return ret; - } - if (from < 0) { - from = 0; - } - if (to3 > this.length) { - to3 = this.length; - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next; - } - for (; walker !== null && i < to3; i++, walker = walker.next) { - ret.push(walker.value); - } - return ret; - }; - Yallist.prototype.sliceReverse = function(from, to3) { - to3 = to3 || this.length; - if (to3 < 0) { - to3 += this.length; - } - from = from || 0; - if (from < 0) { - from += this.length; - } - var ret = new Yallist(); - if (to3 < from || to3 < 0) { - return ret; - } - if (from < 0) { - from = 0; - } - if (to3 > this.length) { - to3 = this.length; - } - for (var i = this.length, walker = this.tail; walker !== null && i > to3; i--) { - walker = walker.prev; - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value); - } - return ret; - }; - Yallist.prototype.reverse = function() { - var head = this.head; - var tail = this.tail; - for (var walker = head; walker !== null; walker = walker.prev) { - var p4 = walker.prev; - walker.prev = walker.next; - walker.next = p4; - } - this.head = tail; - this.tail = head; - return this; - }; - function push(self2, item) { - self2.tail = new Node(item, self2.tail, null, self2); - if (!self2.head) { - self2.head = self2.tail; - } - self2.length++; - } - function unshift(self2, item) { - self2.head = new Node(item, null, self2.head, self2); - if (!self2.tail) { - self2.tail = self2.head; - } - self2.length++; - } - function Node(value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list); - } - this.list = list; - this.value = value; - if (prev) { - prev.next = this; - this.prev = prev; - } else { - this.prev = null; - } - if (next) { - next.prev = this; - this.next = next; - } else { - this.next = null; - } - } - } -}); -var require_lru_cache2 = __commonJS3({ - "node_modules/editorconfig/node_modules/lru-cache/index.js"(exports, module2) { - "use strict"; - module2.exports = LRUCache; - var Map2 = require_map2(); - var util = __require2("util"); - var Yallist = require_yallist2(); - var hasSymbol = typeof Symbol === "function" && process.env._nodeLRUCacheForceNoSymbol !== "1"; - var makeSymbol; - if (hasSymbol) { - makeSymbol = function(key) { - return Symbol(key); - }; - } else { - makeSymbol = function(key) { - return "_" + key; - }; - } - var MAX = makeSymbol("max"); - var LENGTH = makeSymbol("length"); - var LENGTH_CALCULATOR = makeSymbol("lengthCalculator"); - var ALLOW_STALE = makeSymbol("allowStale"); - var MAX_AGE = makeSymbol("maxAge"); - var DISPOSE = makeSymbol("dispose"); - var NO_DISPOSE_ON_SET = makeSymbol("noDisposeOnSet"); - var LRU_LIST = makeSymbol("lruList"); - var CACHE = makeSymbol("cache"); - function naiveLength() { - return 1; - } - function LRUCache(options8) { - if (!(this instanceof LRUCache)) { - return new LRUCache(options8); - } - if (typeof options8 === "number") { - options8 = { max: options8 }; - } - if (!options8) { - options8 = {}; - } - var max = this[MAX] = options8.max; - if (!max || !(typeof max === "number") || max <= 0) { - this[MAX] = Infinity; - } - var lc3 = options8.length || naiveLength; - if (typeof lc3 !== "function") { - lc3 = naiveLength; - } - this[LENGTH_CALCULATOR] = lc3; - this[ALLOW_STALE] = options8.stale || false; - this[MAX_AGE] = options8.maxAge || 0; - this[DISPOSE] = options8.dispose; - this[NO_DISPOSE_ON_SET] = options8.noDisposeOnSet || false; - this.reset(); - } - Object.defineProperty(LRUCache.prototype, "max", { - set: function(mL) { - if (!mL || !(typeof mL === "number") || mL <= 0) { - mL = Infinity; - } - this[MAX] = mL; - trim22(this); - }, - get: function() { - return this[MAX]; - }, - enumerable: true - }); - Object.defineProperty(LRUCache.prototype, "allowStale", { - set: function(allowStale) { - this[ALLOW_STALE] = !!allowStale; - }, - get: function() { - return this[ALLOW_STALE]; - }, - enumerable: true - }); - Object.defineProperty(LRUCache.prototype, "maxAge", { - set: function(mA) { - if (!mA || !(typeof mA === "number") || mA < 0) { - mA = 0; - } - this[MAX_AGE] = mA; - trim22(this); - }, - get: function() { - return this[MAX_AGE]; - }, - enumerable: true - }); - Object.defineProperty(LRUCache.prototype, "lengthCalculator", { - set: function(lC) { - if (typeof lC !== "function") { - lC = naiveLength; - } - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC; - this[LENGTH] = 0; - this[LRU_LIST].forEach(function(hit) { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); - this[LENGTH] += hit.length; - }, this); - } - trim22(this); - }, - get: function() { - return this[LENGTH_CALCULATOR]; - }, - enumerable: true - }); - Object.defineProperty(LRUCache.prototype, "length", { - get: function() { - return this[LENGTH]; - }, - enumerable: true - }); - Object.defineProperty(LRUCache.prototype, "itemCount", { - get: function() { - return this[LRU_LIST].length; - }, - enumerable: true - }); - LRUCache.prototype.rforEach = function(fn6, thisp) { - thisp = thisp || this; - for (var walker = this[LRU_LIST].tail; walker !== null; ) { - var prev = walker.prev; - forEachStep(this, fn6, walker, thisp); - walker = prev; - } - }; - function forEachStep(self2, fn6, node, thisp) { - var hit = node.value; - if (isStale(self2, hit)) { - del(self2, node); - if (!self2[ALLOW_STALE]) { - hit = void 0; - } - } - if (hit) { - fn6.call(thisp, hit.value, hit.key, self2); - } - } - LRUCache.prototype.forEach = function(fn6, thisp) { - thisp = thisp || this; - for (var walker = this[LRU_LIST].head; walker !== null; ) { - var next = walker.next; - forEachStep(this, fn6, walker, thisp); - walker = next; - } - }; - LRUCache.prototype.keys = function() { - return this[LRU_LIST].toArray().map(function(k4) { - return k4.key; - }, this); - }; - LRUCache.prototype.values = function() { - return this[LRU_LIST].toArray().map(function(k4) { - return k4.value; - }, this); - }; - LRUCache.prototype.reset = function() { - if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { - this[LRU_LIST].forEach(function(hit) { - this[DISPOSE](hit.key, hit.value); - }, this); - } - this[CACHE] = new Map2(); - this[LRU_LIST] = new Yallist(); - this[LENGTH] = 0; - }; - LRUCache.prototype.dump = function() { - return this[LRU_LIST].map(function(hit) { - if (!isStale(this, hit)) { - return { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }; - } - }, this).toArray().filter(function(h4) { - return h4; - }); - }; - LRUCache.prototype.dumpLru = function() { - return this[LRU_LIST]; - }; - LRUCache.prototype.inspect = function(n, opts) { - var str2 = "LRUCache {"; - var extras = false; - var as6 = this[ALLOW_STALE]; - if (as6) { - str2 += "\n allowStale: true"; - extras = true; - } - var max = this[MAX]; - if (max && max !== Infinity) { - if (extras) { - str2 += ","; - } - str2 += "\n max: " + util.inspect(max, opts); - extras = true; - } - var maxAge = this[MAX_AGE]; - if (maxAge) { - if (extras) { - str2 += ","; - } - str2 += "\n maxAge: " + util.inspect(maxAge, opts); - extras = true; - } - var lc3 = this[LENGTH_CALCULATOR]; - if (lc3 && lc3 !== naiveLength) { - if (extras) { - str2 += ","; - } - str2 += "\n length: " + util.inspect(this[LENGTH], opts); - extras = true; - } - var didFirst = false; - this[LRU_LIST].forEach(function(item) { - if (didFirst) { - str2 += ",\n "; - } else { - if (extras) { - str2 += ",\n"; - } - didFirst = true; - str2 += "\n "; - } - var key = util.inspect(item.key).split("\n").join("\n "); - var val = { value: item.value }; - if (item.maxAge !== maxAge) { - val.maxAge = item.maxAge; - } - if (lc3 !== naiveLength) { - val.length = item.length; - } - if (isStale(this, item)) { - val.stale = true; - } - val = util.inspect(val, opts).split("\n").join("\n "); - str2 += key + " => " + val; - }); - if (didFirst || extras) { - str2 += "\n"; - } - str2 += "}"; - return str2; - }; - LRUCache.prototype.set = function(key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE]; - var now = maxAge ? Date.now() : 0; - var len = this[LENGTH_CALCULATOR](value, key); - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)); - return false; - } - var node = this[CACHE].get(key); - var item = node.value; - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) { - this[DISPOSE](key, item.value); - } - } - item.now = now; - item.maxAge = maxAge; - item.value = value; - this[LENGTH] += len - item.length; - item.length = len; - this.get(key); - trim22(this); - return true; - } - var hit = new Entry(key, value, len, now, maxAge); - if (hit.length > this[MAX]) { - if (this[DISPOSE]) { - this[DISPOSE](key, value); - } - return false; - } - this[LENGTH] += hit.length; - this[LRU_LIST].unshift(hit); - this[CACHE].set(key, this[LRU_LIST].head); - trim22(this); - return true; - }; - LRUCache.prototype.has = function(key) { - if (!this[CACHE].has(key)) - return false; - var hit = this[CACHE].get(key).value; - if (isStale(this, hit)) { - return false; - } - return true; - }; - LRUCache.prototype.get = function(key) { - return get2(this, key, true); - }; - LRUCache.prototype.peek = function(key) { - return get2(this, key, false); - }; - LRUCache.prototype.pop = function() { - var node = this[LRU_LIST].tail; - if (!node) - return null; - del(this, node); - return node.value; - }; - LRUCache.prototype.del = function(key) { - del(this, this[CACHE].get(key)); - }; - LRUCache.prototype.load = function(arr) { - this.reset(); - var now = Date.now(); - for (var l = arr.length - 1; l >= 0; l--) { - var hit = arr[l]; - var expiresAt = hit.e || 0; - if (expiresAt === 0) { - this.set(hit.k, hit.v); - } else { - var maxAge = expiresAt - now; - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge); - } - } - } - }; - LRUCache.prototype.prune = function() { - var self2 = this; - this[CACHE].forEach(function(value, key) { - get2(self2, key, false); - }); - }; - function get2(self2, key, doUse) { - var node = self2[CACHE].get(key); - if (node) { - var hit = node.value; - if (isStale(self2, hit)) { - del(self2, node); - if (!self2[ALLOW_STALE]) - hit = void 0; - } else { - if (doUse) { - self2[LRU_LIST].unshiftNode(node); - } - } - if (hit) - hit = hit.value; - } - return hit; - } - function isStale(self2, hit) { - if (!hit || !hit.maxAge && !self2[MAX_AGE]) { - return false; - } - var stale = false; - var diff = Date.now() - hit.now; - if (hit.maxAge) { - stale = diff > hit.maxAge; - } else { - stale = self2[MAX_AGE] && diff > self2[MAX_AGE]; - } - return stale; - } - function trim22(self2) { - if (self2[LENGTH] > self2[MAX]) { - for (var walker = self2[LRU_LIST].tail; self2[LENGTH] > self2[MAX] && walker !== null; ) { - var prev = walker.prev; - del(self2, walker); - walker = prev; - } - } - } - function del(self2, node) { - if (node) { - var hit = node.value; - if (self2[DISPOSE]) { - self2[DISPOSE](hit.key, hit.value); - } - self2[LENGTH] -= hit.length; - self2[CACHE].delete(hit.key); - self2[LRU_LIST].removeNode(node); - } - } - function Entry(key, value, length, now, maxAge) { - this.key = key; - this.value = value; - this.length = length; - this.now = now; - this.maxAge = maxAge || 0; - } - } -}); -var require_sigmund = __commonJS3({ - "node_modules/sigmund/sigmund.js"(exports, module2) { - module2.exports = sigmund; - function sigmund(subject, maxSessions) { - maxSessions = maxSessions || 10; - var notes = []; - var analysis = ""; - var RE = RegExp; - function psychoAnalyze(subject2, session) { - if (session > maxSessions) - return; - if (typeof subject2 === "function" || typeof subject2 === "undefined") { - return; - } - if (typeof subject2 !== "object" || !subject2 || subject2 instanceof RE) { - analysis += subject2; - return; - } - if (notes.indexOf(subject2) !== -1 || session === maxSessions) - return; - notes.push(subject2); - analysis += "{"; - Object.keys(subject2).forEach(function(issue, _6, __) { - if (issue.charAt(0) === "_") - return; - var to3 = typeof subject2[issue]; - if (to3 === "function" || to3 === "undefined") - return; - analysis += issue; - psychoAnalyze(subject2[issue], session + 1); - }); - } - psychoAnalyze(subject, 0); - return analysis; - } - } -}); -var require_fnmatch = __commonJS3({ - "node_modules/editorconfig/src/lib/fnmatch.js"(exports, module2) { - var platform = typeof process === "object" ? process.platform : "win32"; - if (module2) - module2.exports = minimatch; - else - exports.minimatch = minimatch; - minimatch.Minimatch = Minimatch; - var LRU = require_lru_cache2(); - var cache = minimatch.cache = new LRU({ max: 100 }); - var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; - var sigmund = require_sigmund(); - var path9 = __require2("path"); - var qmark = "[^/]"; - var star = qmark + "*?"; - var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; - var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; - var reSpecials = charSet("().*{}+?[]^$\\!"); - function charSet(s3) { - return s3.split("").reduce(function(set2, c3) { - set2[c3] = true; - return set2; - }, {}); - } - var slashSplit = /\/+/; - minimatch.monkeyPatch = monkeyPatch; - function monkeyPatch() { - var desc = Object.getOwnPropertyDescriptor(String.prototype, "match"); - var orig = desc.value; - desc.value = function(p4) { - if (p4 instanceof Minimatch) - return p4.match(this); - return orig.call(this, p4); - }; - Object.defineProperty(String.prototype, desc); - } - minimatch.filter = filter; - function filter(pattern, options8) { - options8 = options8 || {}; - return function(p4, i, list) { - return minimatch(p4, pattern, options8); - }; - } - function ext(a, b5) { - a = a || {}; - b5 = b5 || {}; - var t12 = {}; - Object.keys(b5).forEach(function(k4) { - t12[k4] = b5[k4]; - }); - Object.keys(a).forEach(function(k4) { - t12[k4] = a[k4]; - }); - return t12; - } - minimatch.defaults = function(def) { - if (!def || !Object.keys(def).length) - return minimatch; - var orig = minimatch; - var m3 = function minimatch2(p4, pattern, options8) { - return orig.minimatch(p4, pattern, ext(def, options8)); - }; - m3.Minimatch = function Minimatch2(pattern, options8) { - return new orig.Minimatch(pattern, ext(def, options8)); - }; - return m3; - }; - Minimatch.defaults = function(def) { - if (!def || !Object.keys(def).length) - return Minimatch; - return minimatch.defaults(def).Minimatch; - }; - function minimatch(p4, pattern, options8) { - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required"); - } - if (!options8) - options8 = {}; - if (!options8.nocomment && pattern.charAt(0) === "#") { - return false; - } - if (pattern.trim() === "") - return p4 === ""; - return new Minimatch(pattern, options8).match(p4); - } - function Minimatch(pattern, options8) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options8, cache); - } - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required"); - } - if (!options8) - options8 = {}; - if (platform === "win32") { - pattern = pattern.split("\\").join("/"); - } - var cacheKey = pattern + "\n" + sigmund(options8); - var cached = minimatch.cache.get(cacheKey); - if (cached) - return cached; - minimatch.cache.set(cacheKey, this); - this.options = options8; - this.set = []; - this.pattern = pattern; - this.regexp = null; - this.negate = false; - this.comment = false; - this.empty = false; - this.make(); - } - Minimatch.prototype.make = make; - function make() { - if (this._made) - return; - var pattern = this.pattern; - var options8 = this.options; - if (!options8.nocomment && pattern.charAt(0) === "#") { - this.comment = true; - return; - } - if (!pattern) { - this.empty = true; - return; - } - this.parseNegate(); - var set2 = this.globSet = this.braceExpand(); - if (options8.debug) - console.error(this.pattern, set2); - set2 = this.globParts = set2.map(function(s3) { - return s3.split(slashSplit); - }); - if (options8.debug) - console.error(this.pattern, set2); - set2 = set2.map(function(s3, si8, set22) { - return s3.map(this.parse, this); - }, this); - if (options8.debug) - console.error(this.pattern, set2); - set2 = set2.filter(function(s3) { - return -1 === s3.indexOf(false); - }); - if (options8.debug) - console.error(this.pattern, set2); - this.set = set2; - } - Minimatch.prototype.parseNegate = parseNegate; - function parseNegate() { - var pattern = this.pattern, negate = false, options8 = this.options, negateOffset = 0; - if (options8.nonegate) - return; - for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) { - negate = !negate; - negateOffset++; - } - if (negateOffset) - this.pattern = pattern.substr(negateOffset); - this.negate = negate; - } - minimatch.braceExpand = function(pattern, options8) { - return new Minimatch(pattern, options8).braceExpand(); - }; - Minimatch.prototype.braceExpand = braceExpand; - function braceExpand(pattern, options8) { - options8 = options8 || this.options; - pattern = typeof pattern === "undefined" ? this.pattern : pattern; - if (typeof pattern === "undefined") { - throw new Error("undefined pattern"); - } - if (options8.nobrace || !pattern.match(/\{.*\}/)) { - return [pattern]; - } - var escaping = false; - if (pattern.charAt(0) !== "{") { - var prefix = null; - for (var i = 0, l = pattern.length; i < l; i++) { - var c3 = pattern.charAt(i); - if (c3 === "\\") { - escaping = !escaping; - } else if (c3 === "{" && !escaping) { - prefix = pattern.substr(0, i); - break; - } - } - if (prefix === null) { - return [pattern]; - } - var tail = braceExpand(pattern.substr(i), options8); - return tail.map(function(t12) { - return prefix + t12; - }); - } - var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/); - if (numset) { - var suf = braceExpand(pattern.substr(numset[0].length), options8), start = +numset[1], end = +numset[2], inc = start > end ? -1 : 1, set2 = []; - for (var i = start; i != end + inc; i += inc) { - for (var ii8 = 0, ll3 = suf.length; ii8 < ll3; ii8++) { - set2.push(i + suf[ii8]); - } - } - return set2; - } - var i = 1, depth = 1, set2 = [], member = "", sawEnd = false, escaping = false; - function addMember() { - set2.push(member); - member = ""; - } - FOR: - for (i = 1, l = pattern.length; i < l; i++) { - var c3 = pattern.charAt(i); - if (escaping) { - escaping = false; - member += "\\" + c3; - } else { - switch (c3) { - case "\\": - escaping = true; - continue; - case "{": - depth++; - member += "{"; - continue; - case "}": - depth--; - if (depth === 0) { - addMember(); - i++; - break FOR; - } else { - member += c3; - continue; - } - case ",": - if (depth === 1) { - addMember(); - } else { - member += c3; - } - continue; - default: - member += c3; - continue; - } - } - } - if (depth !== 0) { - return braceExpand("\\" + pattern, options8); - } - var suf = braceExpand(pattern.substr(i), options8); - var addBraces = set2.length === 1; - set2 = set2.map(function(p4) { - return braceExpand(p4, options8); - }); - set2 = set2.reduce(function(l22, r3) { - return l22.concat(r3); - }); - if (addBraces) { - set2 = set2.map(function(s3) { - return "{" + s3 + "}"; - }); - } - var ret = []; - for (var i = 0, l = set2.length; i < l; i++) { - for (var ii8 = 0, ll3 = suf.length; ii8 < ll3; ii8++) { - ret.push(set2[i] + suf[ii8]); - } - } - return ret; - } - Minimatch.prototype.parse = parse3; - var SUBPARSE = {}; - function parse3(pattern, isSub) { - var options8 = this.options; - if (!options8.noglobstar && pattern === "**") - return GLOBSTAR; - if (pattern === "") - return ""; - var re9 = "", hasMagic = !!options8.nocase, escaping = false, patternListStack = [], plType, stateChar, inClass = false, reClassStart = -1, classStart = -1, patternStart = pattern.charAt(0) === "." ? "" : options8.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; - function clearStateChar() { - if (stateChar) { - switch (stateChar) { - case "*": - re9 += star; - hasMagic = true; - break; - case "?": - re9 += qmark; - hasMagic = true; - break; - default: - re9 += "\\" + stateChar; - break; - } - stateChar = false; - } - } - for (var i = 0, len = pattern.length, c3; i < len && (c3 = pattern.charAt(i)); i++) { - if (options8.debug) { - console.error("%s %s %s %j", pattern, i, re9, c3); - } - if (escaping && reSpecials[c3]) { - re9 += "\\" + c3; - escaping = false; - continue; - } - SWITCH: - switch (c3) { - case "/": - return false; - case "\\": - clearStateChar(); - escaping = true; - continue; - case "?": - case "*": - case "+": - case "@": - case "!": - if (options8.debug) { - console.error("%s %s %s %j <-- stateChar", pattern, i, re9, c3); - } - if (inClass) { - if (c3 === "!" && i === classStart + 1) - c3 = "^"; - re9 += c3; - continue; - } - clearStateChar(); - stateChar = c3; - if (options8.noext) - clearStateChar(); - continue; - case "(": - if (inClass) { - re9 += "("; - continue; - } - if (!stateChar) { - re9 += "\\("; - continue; - } - plType = stateChar; - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re9.length - }); - re9 += stateChar === "!" ? "(?:(?!" : "(?:"; - stateChar = false; - continue; - case ")": - if (inClass || !patternListStack.length) { - re9 += "\\)"; - continue; - } - hasMagic = true; - re9 += ")"; - plType = patternListStack.pop().type; - switch (plType) { - case "!": - re9 += "[^/]*?)"; - break; - case "?": - case "+": - case "*": - re9 += plType; - case "@": - break; - } - continue; - case "|": - if (inClass || !patternListStack.length || escaping) { - re9 += "\\|"; - escaping = false; - continue; - } - re9 += "|"; - continue; - case "[": - clearStateChar(); - if (inClass) { - re9 += "\\" + c3; - continue; - } - inClass = true; - classStart = i; - reClassStart = re9.length; - re9 += c3; - continue; - case "]": - if (i === classStart + 1 || !inClass) { - re9 += "\\" + c3; - escaping = false; - continue; - } - hasMagic = true; - inClass = false; - re9 += c3; - continue; - default: - clearStateChar(); - if (escaping) { - escaping = false; - } else if (reSpecials[c3] && !(c3 === "^" && inClass)) { - re9 += "\\"; - } - re9 += c3; - } - } - if (inClass) { - var cs4 = pattern.substr(classStart + 1), sp2 = this.parse(cs4, SUBPARSE); - re9 = re9.substr(0, reClassStart) + "\\[" + sp2[0]; - hasMagic = hasMagic || sp2[1]; - } - var pl3; - while (pl3 = patternListStack.pop()) { - var tail = re9.slice(pl3.reStart + 3); - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function(_6, $12, $23) { - if (!$23) { - $23 = "\\"; - } - return $12 + $12 + $23 + "|"; - }); - var t12 = pl3.type === "*" ? star : pl3.type === "?" ? qmark : "\\" + pl3.type; - hasMagic = true; - re9 = re9.slice(0, pl3.reStart) + t12 + "\\(" + tail; - } - clearStateChar(); - if (escaping) { - re9 += "\\\\"; - } - var addPatternStart = false; - switch (re9.charAt(0)) { - case ".": - case "[": - case "(": - addPatternStart = true; - } - if (re9 !== "" && hasMagic) - re9 = "(?=.)" + re9; - if (addPatternStart) - re9 = patternStart + re9; - if (isSub === SUBPARSE) { - return [re9, hasMagic]; - } - if (!hasMagic) { - return globUnescape(pattern); - } - var flags = options8.nocase ? "i" : "", regExp = new RegExp("^" + re9 + "$", flags); - regExp._glob = pattern; - regExp._src = re9; - return regExp; - } - minimatch.makeRe = function(pattern, options8) { - return new Minimatch(pattern, options8 || {}).makeRe(); - }; - Minimatch.prototype.makeRe = makeRe; - function makeRe() { - if (this.regexp || this.regexp === false) - return this.regexp; - var set2 = this.set; - if (!set2.length) - return this.regexp = false; - var options8 = this.options; - var twoStar = options8.noglobstar ? star : options8.dot ? twoStarDot : twoStarNoDot, flags = options8.nocase ? "i" : ""; - var re9 = set2.map(function(pattern) { - return pattern.map(function(p4) { - return p4 === GLOBSTAR ? twoStar : typeof p4 === "string" ? regExpEscape(p4) : p4._src; - }).join("\\/"); - }).join("|"); - re9 = "^(?:" + re9 + ")$"; - if (this.negate) - re9 = "^(?!" + re9 + ").*$"; - try { - return this.regexp = new RegExp(re9, flags); - } catch (ex) { - return this.regexp = false; - } - } - minimatch.match = function(list, pattern, options8) { - var mm = new Minimatch(pattern, options8); - list = list.filter(function(f3) { - return mm.match(f3); - }); - if (options8.nonull && !list.length) { - list.push(pattern); - } - return list; - }; - Minimatch.prototype.match = match; - function match(f3, partial) { - if (this.comment) - return false; - if (this.empty) - return f3 === ""; - if (f3 === "/" && partial) - return true; - var options8 = this.options; - if (platform === "win32") { - f3 = f3.split("\\").join("/"); - } - f3 = f3.split(slashSplit); - if (options8.debug) { - console.error(this.pattern, "split", f3); - } - var set2 = this.set; - for (var i = 0, l = set2.length; i < l; i++) { - var pattern = set2[i]; - var hit = this.matchOne(f3, pattern, partial); - if (hit) { - if (options8.flipNegate) - return true; - return !this.negate; - } - } - if (options8.flipNegate) - return false; - return this.negate; - } - Minimatch.prototype.matchOne = function(file, pattern, partial) { - var options8 = this.options; - if (options8.debug) { - console.error( - "matchOne", - { - "this": this, - file, - pattern - } - ); - } - if (options8.matchBase && pattern.length === 1) { - file = path9.basename(file.join("/")).split("/"); - } - if (options8.debug) { - console.error("matchOne", file.length, pattern.length); - } - for (var fi7 = 0, pi8 = 0, fl2 = file.length, pl3 = pattern.length; fi7 < fl2 && pi8 < pl3; fi7++, pi8++) { - if (options8.debug) { - console.error("matchOne loop"); - } - var p4 = pattern[pi8], f3 = file[fi7]; - if (options8.debug) { - console.error(pattern, p4, f3); - } - if (p4 === false) - return false; - if (p4 === GLOBSTAR) { - if (options8.debug) - console.error("GLOBSTAR", [pattern, p4, f3]); - var fr6 = fi7, pr6 = pi8 + 1; - if (pr6 === pl3) { - if (options8.debug) - console.error("** at the end"); - for (; fi7 < fl2; fi7++) { - if (file[fi7] === "." || file[fi7] === ".." || !options8.dot && file[fi7].charAt(0) === ".") - return false; - } - return true; - } - WHILE: - while (fr6 < fl2) { - var swallowee = file[fr6]; - if (options8.debug) { - console.error( - "\nglobstar while", - file, - fr6, - pattern, - pr6, - swallowee - ); - } - if (this.matchOne(file.slice(fr6), pattern.slice(pr6), partial)) { - if (options8.debug) - console.error("globstar found match!", fr6, fl2, swallowee); - return true; - } else { - if (swallowee === "." || swallowee === ".." || !options8.dot && swallowee.charAt(0) === ".") { - if (options8.debug) - console.error("dot detected!", file, fr6, pattern, pr6); - break WHILE; - } - if (options8.debug) - console.error("globstar swallow a segment, and continue"); - fr6++; - } - } - if (partial) { - if (fr6 === fl2) - return true; - } - return false; - } - var hit; - if (typeof p4 === "string") { - if (options8.nocase) { - hit = f3.toLowerCase() === p4.toLowerCase(); - } else { - hit = f3 === p4; - } - if (options8.debug) { - console.error("string match", p4, f3, hit); - } - } else { - hit = f3.match(p4); - if (options8.debug) { - console.error("pattern match", p4, f3, hit); - } - } - if (!hit) - return false; - } - if (fi7 === fl2 && pi8 === pl3) { - return true; - } else if (fi7 === fl2) { - return partial; - } else if (pi8 === pl3) { - var emptyFileEnd = fi7 === fl2 - 1 && file[fi7] === ""; - return emptyFileEnd; - } - throw new Error("wtf?"); - }; - function globUnescape(s3) { - return s3.replace(/\\(.)/g, "$1"); - } - function regExpEscape(s3) { - return s3.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - } - } -}); -var require_ini2 = __commonJS3({ - "node_modules/editorconfig/src/lib/ini.js"(exports) { - "use strict"; - var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P10, generator) { - return new (P10 || (P10 = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e3) { - reject(e3); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e3) { - reject(e3); - } - } - function step(result) { - result.done ? resolve2(result.value) : new P10(function(resolve3) { - resolve3(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var __generator = exports && exports.__generator || function(thisArg, body) { - var _6 = { label: 0, sent: function() { - if (t12[0] & 1) - throw t12[1]; - return t12[1]; - }, trys: [], ops: [] }, f3, y5, t12, g3; - return g3 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g3[Symbol.iterator] = function() { - return this; - }), g3; - function verb(n) { - return function(v7) { - return step([n, v7]); - }; - } - function step(op2) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_6) - try { - if (f3 = 1, y5 && (t12 = op2[0] & 2 ? y5["return"] : op2[0] ? y5["throw"] || ((t12 = y5["return"]) && t12.call(y5), 0) : y5.next) && !(t12 = t12.call(y5, op2[1])).done) - return t12; - if (y5 = 0, t12) - op2 = [op2[0] & 2, t12.value]; - switch (op2[0]) { - case 0: - case 1: - t12 = op2; - break; - case 4: - _6.label++; - return { value: op2[1], done: false }; - case 5: - _6.label++; - y5 = op2[1]; - op2 = [0]; - continue; - case 7: - op2 = _6.ops.pop(); - _6.trys.pop(); - continue; - default: - if (!(t12 = _6.trys, t12 = t12.length > 0 && t12[t12.length - 1]) && (op2[0] === 6 || op2[0] === 2)) { - _6 = 0; - continue; - } - if (op2[0] === 3 && (!t12 || op2[1] > t12[0] && op2[1] < t12[3])) { - _6.label = op2[1]; - break; - } - if (op2[0] === 6 && _6.label < t12[1]) { - _6.label = t12[1]; - t12 = op2; - break; - } - if (t12 && _6.label < t12[2]) { - _6.label = t12[2]; - _6.ops.push(op2); - break; - } - if (t12[2]) - _6.ops.pop(); - _6.trys.pop(); - continue; - } - op2 = body.call(thisArg, _6); - } catch (e3) { - op2 = [6, e3]; - y5 = 0; - } finally { - f3 = t12 = 0; - } - if (op2[0] & 5) - throw op2[1]; - return { value: op2[0] ? op2[1] : void 0, done: true }; - } - }; - var __importStar = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k4 in mod) - if (Object.hasOwnProperty.call(mod, k4)) - result[k4] = mod[k4]; - } - result["default"] = mod; - return result; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var fs52 = __importStar(__require2("fs")); - var regex = { - section: /^\s*\[(([^#;]|\\#|\\;)+)\]\s*([#;].*)?$/, - param: /^\s*([\w\.\-\_]+)\s*[=:]\s*(.*?)\s*([#;].*)?$/, - comment: /^\s*[#;].*$/ - }; - function parse3(file) { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a3) { - return [2, new Promise(function(resolve2, reject) { - fs52.readFile(file, "utf8", function(err, data) { - if (err) { - reject(err); - return; - } - resolve2(parseString(data)); - }); - })]; - }); - }); - } - exports.parse = parse3; - function parseSync2(file) { - return parseString(fs52.readFileSync(file, "utf8")); - } - exports.parseSync = parseSync2; - function parseString(data) { - var sectionBody = {}; - var sectionName = null; - var value = [[sectionName, sectionBody]]; - var lines = data.split(/\r\n|\r|\n/); - lines.forEach(function(line22) { - var match; - if (regex.comment.test(line22)) { - return; - } - if (regex.param.test(line22)) { - match = line22.match(regex.param); - sectionBody[match[1]] = match[2]; - } else if (regex.section.test(line22)) { - match = line22.match(regex.section); - sectionName = match[1]; - sectionBody = {}; - value.push([sectionName, sectionBody]); - } - }); - return value; - } - exports.parseString = parseString; - } -}); -var require_package3 = __commonJS3({ - "node_modules/editorconfig/package.json"(exports, module2) { - module2.exports = { - name: "editorconfig", - version: "0.15.3", - description: "EditorConfig File Locator and Interpreter for Node.js", - keywords: [ - "editorconfig", - "core" - ], - main: "src/index.js", - contributors: [ - "Hong Xu (topbug.net)", - "Jed Mao (https://github.com/jedmao/)", - "Trey Hunner (http://treyhunner.com)" - ], - directories: { - bin: "./bin", - lib: "./lib" - }, - scripts: { - clean: "rimraf dist", - prebuild: "npm run clean", - build: "tsc", - pretest: "npm run lint && npm run build && npm run copy && cmake .", - test: "ctest .", - "pretest:ci": "npm run pretest", - "test:ci": "ctest -VV --output-on-failure .", - lint: "npm run eclint && npm run tslint", - eclint: 'eclint check --indent_size ignore "src/**"', - tslint: "tslint --project tsconfig.json --exclude package.json", - copy: "cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib", - prepub: "npm run lint && npm run build && npm run copy", - pub: "npm publish ./dist" - }, - repository: { - type: "git", - url: "git://github.com/editorconfig/editorconfig-core-js.git" - }, - bugs: "https://github.com/editorconfig/editorconfig-core-js/issues", - author: "EditorConfig Team", - license: "MIT", - dependencies: { - commander: "^2.19.0", - "lru-cache": "^4.1.5", - semver: "^5.6.0", - sigmund: "^1.0.1" - }, - devDependencies: { - "@types/mocha": "^5.2.6", - "@types/node": "^10.12.29", - "@types/semver": "^5.5.0", - "cpy-cli": "^2.0.0", - eclint: "^2.8.1", - mocha: "^5.2.0", - rimraf: "^2.6.3", - should: "^13.2.3", - tslint: "^5.13.1", - typescript: "^3.3.3333" - } - }; - } -}); -var require_src = __commonJS3({ - "node_modules/editorconfig/src/index.js"(exports) { - "use strict"; - var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P10, generator) { - return new (P10 || (P10 = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e3) { - reject(e3); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e3) { - reject(e3); - } - } - function step(result) { - result.done ? resolve2(result.value) : new P10(function(resolve3) { - resolve3(result.value); - }).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var __generator = exports && exports.__generator || function(thisArg, body) { - var _6 = { label: 0, sent: function() { - if (t12[0] & 1) - throw t12[1]; - return t12[1]; - }, trys: [], ops: [] }, f3, y5, t12, g3; - return g3 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g3[Symbol.iterator] = function() { - return this; - }), g3; - function verb(n) { - return function(v7) { - return step([n, v7]); - }; - } - function step(op2) { - if (f3) - throw new TypeError("Generator is already executing."); - while (_6) - try { - if (f3 = 1, y5 && (t12 = op2[0] & 2 ? y5["return"] : op2[0] ? y5["throw"] || ((t12 = y5["return"]) && t12.call(y5), 0) : y5.next) && !(t12 = t12.call(y5, op2[1])).done) - return t12; - if (y5 = 0, t12) - op2 = [op2[0] & 2, t12.value]; - switch (op2[0]) { - case 0: - case 1: - t12 = op2; - break; - case 4: - _6.label++; - return { value: op2[1], done: false }; - case 5: - _6.label++; - y5 = op2[1]; - op2 = [0]; - continue; - case 7: - op2 = _6.ops.pop(); - _6.trys.pop(); - continue; - default: - if (!(t12 = _6.trys, t12 = t12.length > 0 && t12[t12.length - 1]) && (op2[0] === 6 || op2[0] === 2)) { - _6 = 0; - continue; - } - if (op2[0] === 3 && (!t12 || op2[1] > t12[0] && op2[1] < t12[3])) { - _6.label = op2[1]; - break; - } - if (op2[0] === 6 && _6.label < t12[1]) { - _6.label = t12[1]; - t12 = op2; - break; - } - if (t12 && _6.label < t12[2]) { - _6.label = t12[2]; - _6.ops.push(op2); - break; - } - if (t12[2]) - _6.ops.pop(); - _6.trys.pop(); - continue; - } - op2 = body.call(thisArg, _6); - } catch (e3) { - op2 = [6, e3]; - y5 = 0; - } finally { - f3 = t12 = 0; - } - if (op2[0] & 5) - throw op2[1]; - return { value: op2[0] ? op2[1] : void 0, done: true }; - } - }; - var __importStar = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k4 in mod) - if (Object.hasOwnProperty.call(mod, k4)) - result[k4] = mod[k4]; - } - result["default"] = mod; - return result; - }; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var fs52 = __importStar(__require2("fs")); - var path9 = __importStar(__require2("path")); - var semver = { - gte: require_gte2() - }; - var fnmatch_1 = __importDefault(require_fnmatch()); - var ini_1 = require_ini2(); - exports.parseString = ini_1.parseString; - var package_json_1 = __importDefault(require_package3()); - var knownProps = { - end_of_line: true, - indent_style: true, - indent_size: true, - insert_final_newline: true, - trim_trailing_whitespace: true, - charset: true - }; - function fnmatch(filepath, glob) { - var matchOptions = { matchBase: true, dot: true, noext: true }; - glob = glob.replace(/\*\*/g, "{*,**/**/**}"); - return fnmatch_1.default(filepath, glob, matchOptions); - } - function getConfigFileNames(filepath, options8) { - var paths = []; - do { - filepath = path9.dirname(filepath); - paths.push(path9.join(filepath, options8.config)); - } while (filepath !== options8.root); - return paths; - } - function processMatches(matches, version2) { - if ("indent_style" in matches && matches.indent_style === "tab" && !("indent_size" in matches) && semver.gte(version2, "0.10.0")) { - matches.indent_size = "tab"; - } - if ("indent_size" in matches && !("tab_width" in matches) && matches.indent_size !== "tab") { - matches.tab_width = matches.indent_size; - } - if ("indent_size" in matches && "tab_width" in matches && matches.indent_size === "tab") { - matches.indent_size = matches.tab_width; - } - return matches; - } - function processOptions(options8, filepath) { - if (options8 === void 0) { - options8 = {}; - } - return { - config: options8.config || ".editorconfig", - version: options8.version || package_json_1.default.version, - root: path9.resolve(options8.root || path9.parse(filepath).root) - }; - } - function buildFullGlob(pathPrefix, glob) { - switch (glob.indexOf("/")) { - case -1: - glob = "**/" + glob; - break; - case 0: - glob = glob.substring(1); - break; - default: - break; - } - return path9.join(pathPrefix, glob); - } - function extendProps(props, options8) { - if (props === void 0) { - props = {}; - } - if (options8 === void 0) { - options8 = {}; - } - for (var key in options8) { - if (options8.hasOwnProperty(key)) { - var value = options8[key]; - var key2 = key.toLowerCase(); - var value2 = value; - if (knownProps[key2]) { - value2 = value.toLowerCase(); - } - try { - value2 = JSON.parse(value); - } catch (e3) { - } - if (typeof value === "undefined" || value === null) { - value2 = String(value); - } - props[key2] = value2; - } - } - return props; - } - function parseFromConfigs(configs, filepath, options8) { - return processMatches(configs.reverse().reduce(function(matches, file) { - var pathPrefix = path9.dirname(file.name); - file.contents.forEach(function(section) { - var glob = section[0]; - var options22 = section[1]; - if (!glob) { - return; - } - var fullGlob = buildFullGlob(pathPrefix, glob); - if (!fnmatch(filepath, fullGlob)) { - return; - } - matches = extendProps(matches, options22); - }); - return matches; - }, {}), options8.version); - } - function getConfigsForFiles(files) { - var configs = []; - for (var i in files) { - if (files.hasOwnProperty(i)) { - var file = files[i]; - var contents = ini_1.parseString(file.contents); - configs.push({ - name: file.name, - contents - }); - if ((contents[0][1].root || "").toLowerCase() === "true") { - break; - } - } - } - return configs; - } - function readConfigFiles(filepaths) { - return __awaiter(this, void 0, void 0, function() { - return __generator(this, function(_a3) { - return [2, Promise.all(filepaths.map(function(name) { - return new Promise(function(resolve2) { - fs52.readFile(name, "utf8", function(err, data) { - resolve2({ - name, - contents: err ? "" : data - }); - }); - }); - }))]; - }); - }); - } - function readConfigFilesSync(filepaths) { - var files = []; - var file; - filepaths.forEach(function(filepath) { - try { - file = fs52.readFileSync(filepath, "utf8"); - } catch (e3) { - file = ""; - } - files.push({ - name: filepath, - contents: file - }); - }); - return files; - } - function opts(filepath, options8) { - if (options8 === void 0) { - options8 = {}; - } - var resolvedFilePath = path9.resolve(filepath); - return [ - resolvedFilePath, - processOptions(options8, resolvedFilePath) - ]; - } - function parseFromFiles(filepath, files, options8) { - if (options8 === void 0) { - options8 = {}; - } - return __awaiter(this, void 0, void 0, function() { - var _a3, resolvedFilePath, processedOptions; - return __generator(this, function(_b) { - _a3 = opts(filepath, options8), resolvedFilePath = _a3[0], processedOptions = _a3[1]; - return [2, files.then(getConfigsForFiles).then(function(configs) { - return parseFromConfigs(configs, resolvedFilePath, processedOptions); - })]; - }); - }); - } - exports.parseFromFiles = parseFromFiles; - function parseFromFilesSync(filepath, files, options8) { - if (options8 === void 0) { - options8 = {}; - } - var _a3 = opts(filepath, options8), resolvedFilePath = _a3[0], processedOptions = _a3[1]; - return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); - } - exports.parseFromFilesSync = parseFromFilesSync; - function parse3(_filepath, _options) { - if (_options === void 0) { - _options = {}; - } - return __awaiter(this, void 0, void 0, function() { - var _a3, resolvedFilePath, processedOptions, filepaths; - return __generator(this, function(_b) { - _a3 = opts(_filepath, _options), resolvedFilePath = _a3[0], processedOptions = _a3[1]; - filepaths = getConfigFileNames(resolvedFilePath, processedOptions); - return [2, readConfigFiles(filepaths).then(getConfigsForFiles).then(function(configs) { - return parseFromConfigs(configs, resolvedFilePath, processedOptions); - })]; - }); - }); - } - exports.parse = parse3; - function parseSync2(_filepath, _options) { - if (_options === void 0) { - _options = {}; - } - var _a3 = opts(_filepath, _options), resolvedFilePath = _a3[0], processedOptions = _a3[1]; - var filepaths = getConfigFileNames(resolvedFilePath, processedOptions); - var files = readConfigFilesSync(filepaths); - return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); - } - exports.parseSync = parseSync2; - } -}); -var require_editorconfig_to_prettier = __commonJS3({ - "node_modules/editorconfig-to-prettier/index.js"(exports, module2) { - module2.exports = editorConfigToPrettier2; - function removeUnset(editorConfig) { - const result = {}; - const keys = Object.keys(editorConfig); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (editorConfig[key] === "unset") { - continue; - } - result[key] = editorConfig[key]; - } - return result; - } - function editorConfigToPrettier2(editorConfig) { - if (!editorConfig) { - return null; - } - editorConfig = removeUnset(editorConfig); - if (Object.keys(editorConfig).length === 0) { - return null; - } - const result = {}; - if (editorConfig.indent_style) { - result.useTabs = editorConfig.indent_style === "tab"; - } - if (editorConfig.indent_size === "tab") { - result.useTabs = true; - } - if (result.useTabs && editorConfig.tab_width) { - result.tabWidth = editorConfig.tab_width; - } else if (editorConfig.indent_style === "space" && editorConfig.indent_size && editorConfig.indent_size !== "tab") { - result.tabWidth = editorConfig.indent_size; - } else if (editorConfig.tab_width !== void 0) { - result.tabWidth = editorConfig.tab_width; - } - if (editorConfig.max_line_length) { - if (editorConfig.max_line_length === "off") { - result.printWidth = Number.POSITIVE_INFINITY; - } else { - result.printWidth = editorConfig.max_line_length; - } - } - if (editorConfig.quote_type === "single") { - result.singleQuote = true; - } else if (editorConfig.quote_type === "double") { - result.singleQuote = false; - } - if (["cr", "crlf", "lf"].indexOf(editorConfig.end_of_line) !== -1) { - result.endOfLine = editorConfig.end_of_line; - } - if (editorConfig.insert_final_newline === false || editorConfig.insert_final_newline === true) { - result.insertFinalNewline = editorConfig.insert_final_newline; - } - return result; - } - } -}); -var require_parser = __commonJS3({ - "node_modules/@iarna/toml/lib/parser.js"(exports, module2) { - "use strict"; - var ParserEND = 1114112; - var ParserError = class _ParserError extends Error { - /* istanbul ignore next */ - constructor(msg, filename, linenumber) { - super("[ParserError] " + msg, filename, linenumber); - this.name = "ParserError"; - this.code = "ParserError"; - if (Error.captureStackTrace) - Error.captureStackTrace(this, _ParserError); - } - }; - var State2 = class { - constructor(parser) { - this.parser = parser; - this.buf = ""; - this.returned = null; - this.result = null; - this.resultTable = null; - this.resultArr = null; - } - }; - var Parser = class { - constructor() { - this.pos = 0; - this.col = 0; - this.line = 0; - this.obj = {}; - this.ctx = this.obj; - this.stack = []; - this._buf = ""; - this.char = null; - this.ii = 0; - this.state = new State2(this.parseStart); - } - parse(str2) { - if (str2.length === 0 || str2.length == null) - return; - this._buf = String(str2); - this.ii = -1; - this.char = -1; - let getNext; - while (getNext === false || this.nextChar()) { - getNext = this.runOne(); - } - this._buf = null; - } - nextChar() { - if (this.char === 10) { - ++this.line; - this.col = -1; - } - ++this.ii; - this.char = this._buf.codePointAt(this.ii); - ++this.pos; - ++this.col; - return this.haveBuffer(); - } - haveBuffer() { - return this.ii < this._buf.length; - } - runOne() { - return this.state.parser.call(this, this.state.returned); - } - finish() { - this.char = ParserEND; - let last; - do { - last = this.state.parser; - this.runOne(); - } while (this.state.parser !== last); - this.ctx = null; - this.state = null; - this._buf = null; - return this.obj; - } - next(fn6) { - if (typeof fn6 !== "function") - throw new ParserError("Tried to set state to non-existent state: " + JSON.stringify(fn6)); - this.state.parser = fn6; - } - goto(fn6) { - this.next(fn6); - return this.runOne(); - } - call(fn6, returnWith) { - if (returnWith) - this.next(returnWith); - this.stack.push(this.state); - this.state = new State2(fn6); - } - callNow(fn6, returnWith) { - this.call(fn6, returnWith); - return this.runOne(); - } - return(value) { - if (this.stack.length === 0) - throw this.error(new ParserError("Stack underflow")); - if (value === void 0) - value = this.state.buf; - this.state = this.stack.pop(); - this.state.returned = value; - } - returnNow(value) { - this.return(value); - return this.runOne(); - } - consume() { - if (this.char === ParserEND) - throw this.error(new ParserError("Unexpected end-of-buffer")); - this.state.buf += this._buf[this.ii]; - } - error(err) { - err.line = this.line; - err.col = this.col; - err.pos = this.pos; - return err; - } - /* istanbul ignore next */ - parseStart() { - throw new ParserError("Must declare a parseStart method"); - } - }; - Parser.END = ParserEND; - Parser.Error = ParserError; - module2.exports = Parser; - } -}); -var require_create_datetime = __commonJS3({ - "node_modules/@iarna/toml/lib/create-datetime.js"(exports, module2) { - "use strict"; - module2.exports = (value) => { - const date = new Date(value); - if (isNaN(date)) { - throw new TypeError("Invalid Datetime"); - } else { - return date; - } - }; - } -}); -var require_format_num = __commonJS3({ - "node_modules/@iarna/toml/lib/format-num.js"(exports, module2) { - "use strict"; - module2.exports = (d5, num) => { - num = String(num); - while (num.length < d5) - num = "0" + num; - return num; - }; - } -}); -var require_create_datetime_float = __commonJS3({ - "node_modules/@iarna/toml/lib/create-datetime-float.js"(exports, module2) { - "use strict"; - var f3 = require_format_num(); - var FloatingDateTime = class extends Date { - constructor(value) { - super(value + "Z"); - this.isFloating = true; - } - toISOString() { - const date = `${this.getUTCFullYear()}-${f3(2, this.getUTCMonth() + 1)}-${f3(2, this.getUTCDate())}`; - const time = `${f3(2, this.getUTCHours())}:${f3(2, this.getUTCMinutes())}:${f3(2, this.getUTCSeconds())}.${f3(3, this.getUTCMilliseconds())}`; - return `${date}T${time}`; - } - }; - module2.exports = (value) => { - const date = new FloatingDateTime(value); - if (isNaN(date)) { - throw new TypeError("Invalid Datetime"); - } else { - return date; - } - }; - } -}); -var require_create_date = __commonJS3({ - "node_modules/@iarna/toml/lib/create-date.js"(exports, module2) { - "use strict"; - var f3 = require_format_num(); - var DateTime = global.Date; - var Date2 = class extends DateTime { - constructor(value) { - super(value); - this.isDate = true; - } - toISOString() { - return `${this.getUTCFullYear()}-${f3(2, this.getUTCMonth() + 1)}-${f3(2, this.getUTCDate())}`; - } - }; - module2.exports = (value) => { - const date = new Date2(value); - if (isNaN(date)) { - throw new TypeError("Invalid Datetime"); - } else { - return date; - } - }; - } -}); -var require_create_time = __commonJS3({ - "node_modules/@iarna/toml/lib/create-time.js"(exports, module2) { - "use strict"; - var f3 = require_format_num(); - var Time = class extends Date { - constructor(value) { - super(`0000-01-01T${value}Z`); - this.isTime = true; - } - toISOString() { - return `${f3(2, this.getUTCHours())}:${f3(2, this.getUTCMinutes())}:${f3(2, this.getUTCSeconds())}.${f3(3, this.getUTCMilliseconds())}`; - } - }; - module2.exports = (value) => { - const date = new Time(value); - if (isNaN(date)) { - throw new TypeError("Invalid Datetime"); - } else { - return date; - } - }; - } -}); -var require_toml_parser = __commonJS3({ - "node_modules/@iarna/toml/lib/toml-parser.js"(exports, module2) { - "use strict"; - module2.exports = makeParserClass(require_parser()); - module2.exports.makeParserClass = makeParserClass; - var TomlError = class _TomlError extends Error { - constructor(msg) { - super(msg); - this.name = "TomlError"; - if (Error.captureStackTrace) - Error.captureStackTrace(this, _TomlError); - this.fromTOML = true; - this.wrapped = null; - } - }; - TomlError.wrap = (err) => { - const terr = new TomlError(err.message); - terr.code = err.code; - terr.wrapped = err; - return terr; - }; - module2.exports.TomlError = TomlError; - var createDateTime = require_create_datetime(); - var createDateTimeFloat = require_create_datetime_float(); - var createDate = require_create_date(); - var createTime = require_create_time(); - var CTRL_I = 9; - var CTRL_J = 10; - var CTRL_M = 13; - var CTRL_CHAR_BOUNDARY = 31; - var CHAR_SP = 32; - var CHAR_QUOT = 34; - var CHAR_NUM = 35; - var CHAR_APOS = 39; - var CHAR_PLUS = 43; - var CHAR_COMMA2 = 44; - var CHAR_HYPHEN = 45; - var CHAR_PERIOD = 46; - var CHAR_0 = 48; - var CHAR_1 = 49; - var CHAR_7 = 55; - var CHAR_9 = 57; - var CHAR_COLON2 = 58; - var CHAR_EQUALS2 = 61; - var CHAR_A = 65; - var CHAR_E = 69; - var CHAR_F = 70; - var CHAR_T = 84; - var CHAR_U = 85; - var CHAR_Z = 90; - var CHAR_LOWBAR = 95; - var CHAR_a = 97; - var CHAR_b = 98; - var CHAR_e = 101; - var CHAR_f = 102; - var CHAR_i = 105; - var CHAR_l = 108; - var CHAR_n = 110; - var CHAR_o = 111; - var CHAR_r = 114; - var CHAR_s = 115; - var CHAR_t = 116; - var CHAR_u = 117; - var CHAR_x = 120; - var CHAR_z = 122; - var CHAR_LCUB = 123; - var CHAR_RCUB = 125; - var CHAR_LSQB = 91; - var CHAR_BSOL = 92; - var CHAR_RSQB = 93; - var CHAR_DEL = 127; - var SURROGATE_FIRST = 55296; - var SURROGATE_LAST = 57343; - var escapes = { - [CHAR_b]: "\b", - [CHAR_t]: " ", - [CHAR_n]: "\n", - [CHAR_f]: "\f", - [CHAR_r]: "\r", - [CHAR_QUOT]: '"', - [CHAR_BSOL]: "\\" - }; - function isDigit(cp2) { - return cp2 >= CHAR_0 && cp2 <= CHAR_9; - } - function isHexit(cp2) { - return cp2 >= CHAR_A && cp2 <= CHAR_F || cp2 >= CHAR_a && cp2 <= CHAR_f || cp2 >= CHAR_0 && cp2 <= CHAR_9; - } - function isBit(cp2) { - return cp2 === CHAR_1 || cp2 === CHAR_0; - } - function isOctit(cp2) { - return cp2 >= CHAR_0 && cp2 <= CHAR_7; - } - function isAlphaNumQuoteHyphen(cp2) { - return cp2 >= CHAR_A && cp2 <= CHAR_Z || cp2 >= CHAR_a && cp2 <= CHAR_z || cp2 >= CHAR_0 && cp2 <= CHAR_9 || cp2 === CHAR_APOS || cp2 === CHAR_QUOT || cp2 === CHAR_LOWBAR || cp2 === CHAR_HYPHEN; - } - function isAlphaNumHyphen(cp2) { - return cp2 >= CHAR_A && cp2 <= CHAR_Z || cp2 >= CHAR_a && cp2 <= CHAR_z || cp2 >= CHAR_0 && cp2 <= CHAR_9 || cp2 === CHAR_LOWBAR || cp2 === CHAR_HYPHEN; - } - var _type = Symbol("type"); - var _declared = Symbol("declared"); - var hasOwnProperty2 = Object.prototype.hasOwnProperty; - var defineProperty = Object.defineProperty; - var descriptor = { configurable: true, enumerable: true, writable: true, value: void 0 }; - function hasKey(obj, key) { - if (hasOwnProperty2.call(obj, key)) - return true; - if (key === "__proto__") - defineProperty(obj, "__proto__", descriptor); - return false; - } - var INLINE_TABLE = Symbol("inline-table"); - function InlineTable() { - return Object.defineProperties({}, { - [_type]: { value: INLINE_TABLE } - }); - } - function isInlineTable(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === INLINE_TABLE; - } - var TABLE = Symbol("table"); - function Table() { - return Object.defineProperties({}, { - [_type]: { value: TABLE }, - [_declared]: { value: false, writable: true } - }); - } - function isTable(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === TABLE; - } - var _contentType = Symbol("content-type"); - var INLINE_LIST = Symbol("inline-list"); - function InlineList(type2) { - return Object.defineProperties([], { - [_type]: { value: INLINE_LIST }, - [_contentType]: { value: type2 } - }); - } - function isInlineList(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === INLINE_LIST; - } - var LIST = Symbol("list"); - function List() { - return Object.defineProperties([], { - [_type]: { value: LIST } - }); - } - function isList(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === LIST; - } - var _custom; - try { - const utilInspect = __require2("util").inspect; - _custom = utilInspect.custom; - } catch (_6) { - } - var _inspect = _custom || "inspect"; - var BoxedBigInt = class { - constructor(value) { - try { - this.value = global.BigInt.asIntN(64, value); - } catch (_6) { - this.value = null; - } - Object.defineProperty(this, _type, { value: INTEGER }); - } - isNaN() { - return this.value === null; - } - /* istanbul ignore next */ - toString() { - return String(this.value); - } - /* istanbul ignore next */ - [_inspect]() { - return `[BigInt: ${this.toString()}]}`; - } - valueOf() { - return this.value; - } - }; - var INTEGER = Symbol("integer"); - function Integer(value) { - let num = Number(value); - if (Object.is(num, -0)) - num = 0; - if (global.BigInt && !Number.isSafeInteger(num)) { - return new BoxedBigInt(value); - } else { - return Object.defineProperties(new Number(num), { - isNaN: { value: function() { - return isNaN(this); - } }, - [_type]: { value: INTEGER }, - [_inspect]: { value: () => `[Integer: ${value}]` } - }); - } - } - function isInteger2(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === INTEGER; - } - var FLOAT = Symbol("float"); - function Float(value) { - return Object.defineProperties(new Number(value), { - [_type]: { value: FLOAT }, - [_inspect]: { value: () => `[Float: ${value}]` } - }); - } - function isFloat2(obj) { - if (obj === null || typeof obj !== "object") - return false; - return obj[_type] === FLOAT; - } - function tomlType(value) { - const type2 = typeof value; - if (type2 === "object") { - if (value === null) - return "null"; - if (value instanceof Date) - return "datetime"; - if (_type in value) { - switch (value[_type]) { - case INLINE_TABLE: - return "inline-table"; - case INLINE_LIST: - return "inline-list"; - case TABLE: - return "table"; - case LIST: - return "list"; - case FLOAT: - return "float"; - case INTEGER: - return "integer"; - } - } - } - return type2; - } - function makeParserClass(Parser) { - class TOMLParser extends Parser { - constructor() { - super(); - this.ctx = this.obj = Table(); - } - /* MATCH HELPER */ - atEndOfWord() { - return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine(); - } - atEndOfLine() { - return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M; - } - parseStart() { - if (this.char === Parser.END) { - return null; - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseTableOrList); - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else if (isAlphaNumQuoteHyphen(this.char)) { - return this.callNow(this.parseAssignStatement); - } else { - throw this.error(new TomlError(`Unknown character "${this.char}"`)); - } - } - // HELPER, this strips any whitespace and comments to the end of the line - // then RETURNS. Last state in a production. - parseWhitespaceToEOL() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else if (this.char === CHAR_NUM) { - return this.goto(this.parseComment); - } else if (this.char === Parser.END || this.char === CTRL_J) { - return this.return(); - } else { - throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line")); - } - } - /* ASSIGNMENT: key = value */ - parseAssignStatement() { - return this.callNow(this.parseAssign, this.recordAssignStatement); - } - recordAssignStatement(kv) { - let target = this.ctx; - let finalKey = kv.key.pop(); - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } - target = target[kw] = target[kw] || Table(); - } - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")); - } - if (isInteger2(kv.value) || isFloat2(kv.value)) { - target[finalKey] = kv.value.valueOf(); - } else { - target[finalKey] = kv.value; - } - return this.goto(this.parseWhitespaceToEOL); - } - /* ASSSIGNMENT expression, key = value possibly inside an inline table */ - parseAssign() { - return this.callNow(this.parseKeyword, this.recordAssignKeyword); - } - recordAssignKeyword(key) { - if (this.state.resultTable) { - this.state.resultTable.push(key); - } else { - this.state.resultTable = [key]; - } - return this.goto(this.parseAssignKeywordPreDot); - } - parseAssignKeywordPreDot() { - if (this.char === CHAR_PERIOD) { - return this.next(this.parseAssignKeywordPostDot); - } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.goto(this.parseAssignEqual); - } - } - parseAssignKeywordPostDot() { - if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.callNow(this.parseKeyword, this.recordAssignKeyword); - } - } - parseAssignEqual() { - if (this.char === CHAR_EQUALS2) { - return this.next(this.parseAssignPreValue); - } else { - throw this.error(new TomlError('Invalid character, expected "="')); - } - } - parseAssignPreValue() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseValue, this.recordAssignValue); - } - } - recordAssignValue(value) { - return this.returnNow({ key: this.state.resultTable, value }); - } - /* COMMENTS: #...eol */ - parseComment() { - do { - if (this.char === Parser.END || this.char === CTRL_J) { - return this.return(); - } - } while (this.nextChar()); - } - /* TABLES AND LISTS, [foo] and [[foo]] */ - parseTableOrList() { - if (this.char === CHAR_LSQB) { - this.next(this.parseList); - } else { - return this.goto(this.parseTable); - } - } - /* TABLE [foo.bar.baz] */ - parseTable() { - this.ctx = this.obj; - return this.goto(this.parseTableNext); - } - parseTableNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseKeyword, this.parseTableMore); - } - } - parseTableMore(keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CHAR_RSQB) { - if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } else { - this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table(); - this.ctx[_declared] = true; - } - return this.next(this.parseWhitespaceToEOL); - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table(); - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword]; - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; - } else { - throw this.error(new TomlError("Can't redefine existing key")); - } - return this.next(this.parseTableNext); - } else { - throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); - } - } - /* LIST [[a.b.c]] */ - parseList() { - this.ctx = this.obj; - return this.goto(this.parseListNext); - } - parseListNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseKeyword, this.parseListMore); - } - } - parseListMore(keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CHAR_RSQB) { - if (!hasKey(this.ctx, keyword)) { - this.ctx[keyword] = List(); - } - if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")); - } else if (isList(this.ctx[keyword])) { - const next = Table(); - this.ctx[keyword].push(next); - this.ctx = next; - } else { - throw this.error(new TomlError("Can't redefine an existing key")); - } - return this.next(this.parseListEnd); - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table(); - } else if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")); - } else if (isInlineTable(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline table")); - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword]; - } else { - throw this.error(new TomlError("Can't redefine an existing key")); - } - return this.next(this.parseListNext); - } else { - throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); - } - } - parseListEnd(keyword) { - if (this.char === CHAR_RSQB) { - return this.next(this.parseWhitespaceToEOL); - } else { - throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]")); - } - } - /* VALUE string, number, boolean, inline list, inline object */ - parseValue() { - if (this.char === Parser.END) { - throw this.error(new TomlError("Key without value")); - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseDoubleString); - } - if (this.char === CHAR_APOS) { - return this.next(this.parseSingleString); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - return this.goto(this.parseNumberSign); - } else if (this.char === CHAR_i) { - return this.next(this.parseInf); - } else if (this.char === CHAR_n) { - return this.next(this.parseNan); - } else if (isDigit(this.char)) { - return this.goto(this.parseNumberOrDateTime); - } else if (this.char === CHAR_t || this.char === CHAR_f) { - return this.goto(this.parseBoolean); - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseInlineList, this.recordValue); - } else if (this.char === CHAR_LCUB) { - return this.call(this.parseInlineTable, this.recordValue); - } else { - throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table")); - } - } - recordValue(value) { - return this.returnNow(value); - } - parseInf() { - if (this.char === CHAR_n) { - return this.next(this.parseInf2); - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); - } - } - parseInf2() { - if (this.char === CHAR_f) { - if (this.state.buf === "-") { - return this.return(-Infinity); - } else { - return this.return(Infinity); - } - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); - } - } - parseNan() { - if (this.char === CHAR_a) { - return this.next(this.parseNan2); - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')); - } - } - parseNan2() { - if (this.char === CHAR_n) { - return this.return(NaN); - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')); - } - } - /* KEYS, barewords or basic, literal, or dotted */ - parseKeyword() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseBasicString); - } else if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralString); - } else { - return this.goto(this.parseBareKey); - } - } - /* KEYS: barewords */ - parseBareKey() { - do { - if (this.char === Parser.END) { - throw this.error(new TomlError("Key ended without value")); - } else if (isAlphaNumHyphen(this.char)) { - this.consume(); - } else if (this.state.buf.length === 0) { - throw this.error(new TomlError("Empty bare keys are not allowed")); - } else { - return this.returnNow(); - } - } while (this.nextChar()); - } - /* STRINGS, single quoted (literal) */ - parseSingleString() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiStringMaybe); - } else { - return this.goto(this.parseLiteralString); - } - } - parseLiteralString() { - do { - if (this.char === CHAR_APOS) { - return this.return(); - } else if (this.atEndOfLine()) { - throw this.error(new TomlError("Unterminated string")); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } - parseLiteralMultiStringMaybe() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiString); - } else { - return this.returnNow(); - } - } - parseLiteralMultiString() { - if (this.char === CTRL_M) { - return null; - } else if (this.char === CTRL_J) { - return this.next(this.parseLiteralMultiStringContent); - } else { - return this.goto(this.parseLiteralMultiStringContent); - } - } - parseLiteralMultiStringContent() { - do { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd); - } else if (this.char === Parser.END) { - throw this.error(new TomlError("Unterminated multi-line string")); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } - parseLiteralMultiEnd() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd2); - } else { - this.state.buf += "'"; - return this.goto(this.parseLiteralMultiStringContent); - } - } - parseLiteralMultiEnd2() { - if (this.char === CHAR_APOS) { - return this.return(); - } else { - this.state.buf += "''"; - return this.goto(this.parseLiteralMultiStringContent); - } - } - /* STRINGS double quoted */ - parseDoubleString() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiStringMaybe); - } else { - return this.goto(this.parseBasicString); - } - } - parseBasicString() { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseEscape, this.recordEscapeReplacement); - } else if (this.char === CHAR_QUOT) { - return this.return(); - } else if (this.atEndOfLine()) { - throw this.error(new TomlError("Unterminated string")); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } - recordEscapeReplacement(replacement) { - this.state.buf += replacement; - return this.goto(this.parseBasicString); - } - parseMultiStringMaybe() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiString); - } else { - return this.returnNow(); - } - } - parseMultiString() { - if (this.char === CTRL_M) { - return null; - } else if (this.char === CTRL_J) { - return this.next(this.parseMultiStringContent); - } else { - return this.goto(this.parseMultiStringContent); - } - } - parseMultiStringContent() { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement); - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd); - } else if (this.char === Parser.END) { - throw this.error(new TomlError("Unterminated multi-line string")); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } - errorControlCharInString() { - let displayCode = "\\u00"; - if (this.char < 16) { - displayCode += "0"; - } - displayCode += this.char.toString(16); - return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`)); - } - recordMultiEscapeReplacement(replacement) { - this.state.buf += replacement; - return this.goto(this.parseMultiStringContent); - } - parseMultiEnd() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd2); - } else { - this.state.buf += '"'; - return this.goto(this.parseMultiStringContent); - } - } - parseMultiEnd2() { - if (this.char === CHAR_QUOT) { - return this.return(); - } else { - this.state.buf += '""'; - return this.goto(this.parseMultiStringContent); - } - } - parseMultiEscape() { - if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim); - } else if (this.char === CHAR_SP || this.char === CTRL_I) { - return this.next(this.parsePreMultiTrim); - } else { - return this.goto(this.parseEscape); - } - } - parsePreMultiTrim() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim); - } else { - throw this.error(new TomlError("Can't escape whitespace")); - } - } - parseMultiTrim() { - if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else { - return this.returnNow(); - } - } - parseEscape() { - if (this.char in escapes) { - return this.return(escapes[this.char]); - } else if (this.char === CHAR_u) { - return this.call(this.parseSmallUnicode, this.parseUnicodeReturn); - } else if (this.char === CHAR_U) { - return this.call(this.parseLargeUnicode, this.parseUnicodeReturn); - } else { - throw this.error(new TomlError("Unknown escape character: " + this.char)); - } - } - parseUnicodeReturn(char) { - try { - const codePoint = parseInt(char, 16); - if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { - throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved")); - } - return this.returnNow(String.fromCodePoint(codePoint)); - } catch (err) { - throw this.error(TomlError.wrap(err)); - } - } - parseSmallUnicode() { - if (!isHexit(this.char)) { - throw this.error(new TomlError("Invalid character in unicode sequence, expected hex")); - } else { - this.consume(); - if (this.state.buf.length >= 4) - return this.return(); - } - } - parseLargeUnicode() { - if (!isHexit(this.char)) { - throw this.error(new TomlError("Invalid character in unicode sequence, expected hex")); - } else { - this.consume(); - if (this.state.buf.length >= 8) - return this.return(); - } - } - /* NUMBERS */ - parseNumberSign() { - this.consume(); - return this.next(this.parseMaybeSignedInfOrNan); - } - parseMaybeSignedInfOrNan() { - if (this.char === CHAR_i) { - return this.next(this.parseInf); - } else if (this.char === CHAR_n) { - return this.next(this.parseNan); - } else { - return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart); - } - } - parseNumberIntegerStart() { - if (this.char === CHAR_0) { - this.consume(); - return this.next(this.parseNumberIntegerExponentOrDecimal); - } else { - return this.goto(this.parseNumberInteger); - } - } - parseNumberIntegerExponentOrDecimal() { - if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } - parseNumberInteger() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else { - const result = Integer(this.state.buf); - if (result.isNaN()) { - throw this.error(new TomlError("Invalid number")); - } else { - return this.returnNow(result); - } - } - } - parseNoUnder() { - if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { - throw this.error(new TomlError("Unexpected character, expected digit")); - } else if (this.atEndOfWord()) { - throw this.error(new TomlError("Incomplete number")); - } - return this.returnNow(); - } - parseNoUnderHexOctBinLiteral() { - if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) { - throw this.error(new TomlError("Unexpected character, expected digit")); - } else if (this.atEndOfWord()) { - throw this.error(new TomlError("Incomplete number")); - } - return this.returnNow(); - } - parseNumberFloat() { - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else { - return this.returnNow(Float(this.state.buf)); - } - } - parseNumberExponentSign() { - if (isDigit(this.char)) { - return this.goto(this.parseNumberExponent); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.call(this.parseNoUnder, this.parseNumberExponent); - } else { - throw this.error(new TomlError("Unexpected character, expected -, + or digit")); - } - } - parseNumberExponent() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder); - } else { - return this.returnNow(Float(this.state.buf)); - } - } - /* NUMBERS or DATETIMES */ - parseNumberOrDateTime() { - if (this.char === CHAR_0) { - this.consume(); - return this.next(this.parseNumberBaseOrDateTime); - } else { - return this.goto(this.parseNumberOrDateTimeOnly); - } - } - parseNumberOrDateTimeOnly() { - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberInteger); - } else if (isDigit(this.char)) { - this.consume(); - if (this.state.buf.length > 4) - this.next(this.parseNumberInteger); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime); - } else if (this.char === CHAR_COLON2) { - return this.goto(this.parseOnlyTimeHour); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } - parseDateTimeOnly() { - if (this.state.buf.length < 4) { - if (isDigit(this.char)) { - return this.consume(); - } else if (this.char === CHAR_COLON2) { - return this.goto(this.parseOnlyTimeHour); - } else { - throw this.error(new TomlError("Expected digit while parsing year part of a date")); - } - } else { - if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime); - } else { - throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date")); - } - } - } - parseNumberBaseOrDateTime() { - if (this.char === CHAR_b) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin); - } else if (this.char === CHAR_o) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct); - } else if (this.char === CHAR_x) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex); - } else if (this.char === CHAR_PERIOD) { - return this.goto(this.parseNumberInteger); - } else if (isDigit(this.char)) { - return this.goto(this.parseDateTimeOnly); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } - parseIntegerHex() { - if (isHexit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - if (result.isNaN()) { - throw this.error(new TomlError("Invalid number")); - } else { - return this.returnNow(result); - } - } - } - parseIntegerOct() { - if (isOctit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - if (result.isNaN()) { - throw this.error(new TomlError("Invalid number")); - } else { - return this.returnNow(result); - } - } - } - parseIntegerBin() { - if (isBit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - if (result.isNaN()) { - throw this.error(new TomlError("Invalid number")); - } else { - return this.returnNow(result); - } - } - } - /* DATETIME */ - parseDateTime() { - if (this.state.buf.length < 4) { - throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters")); - } - this.state.result = this.state.buf; - this.state.buf = ""; - return this.next(this.parseDateMonth); - } - parseDateMonth() { - if (this.char === CHAR_HYPHEN) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError("Months less than 10 must be zero padded to two characters")); - } - this.state.result += "-" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseDateDay); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError("Incomplete datetime")); - } - } - parseDateDay() { - if (this.char === CHAR_T || this.char === CHAR_SP) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError("Days less than 10 must be zero padded to two characters")); - } - this.state.result += "-" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseStartTimeHour); - } else if (this.atEndOfWord()) { - return this.returnNow(createDate(this.state.result + "-" + this.state.buf)); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError("Incomplete datetime")); - } - } - parseStartTimeHour() { - if (this.atEndOfWord()) { - return this.returnNow(createDate(this.state.result)); - } else { - return this.goto(this.parseTimeHour); - } - } - parseTimeHour() { - if (this.char === CHAR_COLON2) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters")); - } - this.state.result += "T" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseTimeMin); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError("Incomplete datetime")); - } - } - parseTimeMin() { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON2) { - this.state.result += ":" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseTimeSec); - } else { - throw this.error(new TomlError("Incomplete datetime")); - } - } - parseTimeSec() { - if (isDigit(this.char)) { - this.consume(); - if (this.state.buf.length === 2) { - this.state.result += ":" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseTimeZoneOrFraction); - } - } else { - throw this.error(new TomlError("Incomplete datetime")); - } - } - parseOnlyTimeHour() { - if (this.char === CHAR_COLON2) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters")); - } - this.state.result = this.state.buf; - this.state.buf = ""; - return this.next(this.parseOnlyTimeMin); - } else { - throw this.error(new TomlError("Incomplete time")); - } - } - parseOnlyTimeMin() { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON2) { - this.state.result += ":" + this.state.buf; - this.state.buf = ""; - return this.next(this.parseOnlyTimeSec); - } else { - throw this.error(new TomlError("Incomplete time")); - } - } - parseOnlyTimeSec() { - if (isDigit(this.char)) { - this.consume(); - if (this.state.buf.length === 2) { - return this.next(this.parseOnlyTimeFractionMaybe); - } - } else { - throw this.error(new TomlError("Incomplete time")); - } - } - parseOnlyTimeFractionMaybe() { - this.state.result += ":" + this.state.buf; - if (this.char === CHAR_PERIOD) { - this.state.buf = ""; - this.next(this.parseOnlyTimeFraction); - } else { - return this.return(createTime(this.state.result)); - } - } - parseOnlyTimeFraction() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.atEndOfWord()) { - if (this.state.buf.length === 0) - throw this.error(new TomlError("Expected digit in milliseconds")); - return this.returnNow(createTime(this.state.result + "." + this.state.buf)); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); - } - } - parseTimeZoneOrFraction() { - if (this.char === CHAR_PERIOD) { - this.consume(); - this.next(this.parseDateTimeFraction); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.next(this.parseTimeZoneHour); - } else if (this.char === CHAR_Z) { - this.consume(); - return this.return(createDateTime(this.state.result + this.state.buf)); - } else if (this.atEndOfWord()) { - return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); - } - } - parseDateTimeFraction() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 1) { - throw this.error(new TomlError("Expected digit in milliseconds")); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.next(this.parseTimeZoneHour); - } else if (this.char === CHAR_Z) { - this.consume(); - return this.return(createDateTime(this.state.result + this.state.buf)); - } else if (this.atEndOfWord()) { - return this.returnNow(createDateTimeFloat(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z")); - } - } - parseTimeZoneHour() { - if (isDigit(this.char)) { - this.consume(); - if (/\d\d$/.test(this.state.buf)) - return this.next(this.parseTimeZoneSep); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected digit")); - } - } - parseTimeZoneSep() { - if (this.char === CHAR_COLON2) { - this.consume(); - this.next(this.parseTimeZoneMin); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected colon")); - } - } - parseTimeZoneMin() { - if (isDigit(this.char)) { - this.consume(); - if (/\d\d$/.test(this.state.buf)) - return this.return(createDateTime(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError("Unexpected character in datetime, expected digit")); - } - } - /* BOOLEAN */ - parseBoolean() { - if (this.char === CHAR_t) { - this.consume(); - return this.next(this.parseTrue_r); - } else if (this.char === CHAR_f) { - this.consume(); - return this.next(this.parseFalse_a); - } - } - parseTrue_r() { - if (this.char === CHAR_r) { - this.consume(); - return this.next(this.parseTrue_u); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseTrue_u() { - if (this.char === CHAR_u) { - this.consume(); - return this.next(this.parseTrue_e); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseTrue_e() { - if (this.char === CHAR_e) { - return this.return(true); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseFalse_a() { - if (this.char === CHAR_a) { - this.consume(); - return this.next(this.parseFalse_l); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseFalse_l() { - if (this.char === CHAR_l) { - this.consume(); - return this.next(this.parseFalse_s); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseFalse_s() { - if (this.char === CHAR_s) { - this.consume(); - return this.next(this.parseFalse_e); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - parseFalse_e() { - if (this.char === CHAR_e) { - return this.return(false); - } else { - throw this.error(new TomlError("Invalid boolean, expected true or false")); - } - } - /* INLINE LISTS */ - parseInlineList() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null; - } else if (this.char === Parser.END) { - throw this.error(new TomlError("Unterminated inline array")); - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CHAR_RSQB) { - return this.return(this.state.resultArr || InlineList()); - } else { - return this.callNow(this.parseValue, this.recordInlineListValue); - } - } - recordInlineListValue(value) { - if (this.state.resultArr) { - const listType = this.state.resultArr[_contentType]; - const valueType = tomlType(value); - if (listType !== valueType) { - throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)); - } - } else { - this.state.resultArr = InlineList(tomlType(value)); - } - if (isFloat2(value) || isInteger2(value)) { - this.state.resultArr.push(value.valueOf()); - } else { - this.state.resultArr.push(value); - } - return this.goto(this.parseInlineListNext); - } - parseInlineListNext() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null; - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CHAR_COMMA2) { - return this.next(this.parseInlineList); - } else if (this.char === CHAR_RSQB) { - return this.goto(this.parseInlineList); - } else { - throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])")); - } - } - /* INLINE TABLE */ - parseInlineTable() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError("Unterminated inline array")); - } else if (this.char === CHAR_RCUB) { - return this.return(this.state.resultTable || InlineTable()); - } else { - if (!this.state.resultTable) - this.state.resultTable = InlineTable(); - return this.callNow(this.parseAssign, this.recordInlineTableValue); - } - } - recordInlineTableValue(kv) { - let target = this.state.resultTable; - let finalKey = kv.key.pop(); - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } - target = target[kw] = target[kw] || Table(); - } - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")); - } - if (isInteger2(kv.value) || isFloat2(kv.value)) { - target[finalKey] = kv.value.valueOf(); - } else { - target[finalKey] = kv.value; - } - return this.goto(this.parseInlineTableNext); - } - parseInlineTableNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError("Unterminated inline array")); - } else if (this.char === CHAR_COMMA2) { - return this.next(this.parseInlineTable); - } else if (this.char === CHAR_RCUB) { - return this.goto(this.parseInlineTable); - } else { - throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])")); - } - } - } - return TOMLParser; - } - } -}); -var require_parse_pretty_error = __commonJS3({ - "node_modules/@iarna/toml/parse-pretty-error.js"(exports, module2) { - "use strict"; - module2.exports = prettyError; - function prettyError(err, buf) { - if (err.pos == null || err.line == null) - return err; - let msg = err.message; - msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}: -`; - if (buf && buf.split) { - const lines = buf.split(/\n/); - const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length; - let linePadding = " "; - while (linePadding.length < lineNumWidth) - linePadding += " "; - for (let ii8 = Math.max(0, err.line - 1); ii8 < Math.min(lines.length, err.line + 2); ++ii8) { - let lineNum = String(ii8 + 1); - if (lineNum.length < lineNumWidth) - lineNum = " " + lineNum; - if (err.line === ii8) { - msg += lineNum + "> " + lines[ii8] + "\n"; - msg += linePadding + " "; - for (let hh = 0; hh < err.col; ++hh) { - msg += " "; - } - msg += "^\n"; - } else { - msg += lineNum + ": " + lines[ii8] + "\n"; - } - } - } - err.message = msg + "\n"; - return err; - } - } -}); -var require_parse_async = __commonJS3({ - "node_modules/@iarna/toml/parse-async.js"(exports, module2) { - "use strict"; - module2.exports = parseAsync; - var TOMLParser = require_toml_parser(); - var prettyError = require_parse_pretty_error(); - function parseAsync(str2, opts) { - if (!opts) - opts = {}; - const index = 0; - const blocksize = opts.blocksize || 40960; - const parser = new TOMLParser(); - return new Promise((resolve2, reject) => { - setImmediate(parseAsyncNext, index, blocksize, resolve2, reject); - }); - function parseAsyncNext(index2, blocksize2, resolve2, reject) { - if (index2 >= str2.length) { - try { - return resolve2(parser.finish()); - } catch (err) { - return reject(prettyError(err, str2)); - } - } - try { - parser.parse(str2.slice(index2, index2 + blocksize2)); - setImmediate(parseAsyncNext, index2 + blocksize2, blocksize2, resolve2, reject); - } catch (err) { - reject(prettyError(err, str2)); - } - } - } - } -}); -var require_unicode = __commonJS3({ - "node_modules/json5/lib/unicode.js"(exports, module2) { - module2.exports.Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; - module2.exports.ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; - module2.exports.ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; - } -}); -var require_util2 = __commonJS3({ - "node_modules/json5/lib/util.js"(exports, module2) { - var unicode = require_unicode(); - module2.exports = { - isSpaceSeparator(c3) { - return typeof c3 === "string" && unicode.Space_Separator.test(c3); - }, - isIdStartChar(c3) { - return typeof c3 === "string" && (c3 >= "a" && c3 <= "z" || c3 >= "A" && c3 <= "Z" || c3 === "$" || c3 === "_" || unicode.ID_Start.test(c3)); - }, - isIdContinueChar(c3) { - return typeof c3 === "string" && (c3 >= "a" && c3 <= "z" || c3 >= "A" && c3 <= "Z" || c3 >= "0" && c3 <= "9" || c3 === "$" || c3 === "_" || c3 === "\u200C" || c3 === "\u200D" || unicode.ID_Continue.test(c3)); - }, - isDigit(c3) { - return typeof c3 === "string" && /[0-9]/.test(c3); - }, - isHexDigit(c3) { - return typeof c3 === "string" && /[0-9A-Fa-f]/.test(c3); - } - }; - } -}); -var require_parse3 = __commonJS3({ - "node_modules/json5/lib/parse.js"(exports, module2) { - var util = require_util2(); - var source; - var parseState; - var stack; - var pos; - var line22; - var column; - var token; - var key; - var root; - module2.exports = function parse3(text, reviver) { - source = String(text); - parseState = "start"; - stack = []; - pos = 0; - line22 = 1; - column = 0; - token = void 0; - key = void 0; - root = void 0; - do { - token = lex(); - parseStates[parseState](); - } while (token.type !== "eof"); - if (typeof reviver === "function") { - return internalize({ "": root }, "", reviver); - } - return root; - }; - function internalize(holder, name, reviver) { - const value = holder[name]; - if (value != null && typeof value === "object") { - if (Array.isArray(value)) { - for (let i = 0; i < value.length; i++) { - const key2 = String(i); - const replacement = internalize(value, key2, reviver); - if (replacement === void 0) { - delete value[key2]; - } else { - Object.defineProperty(value, key2, { - value: replacement, - writable: true, - enumerable: true, - configurable: true - }); - } - } - } else { - for (const key2 in value) { - const replacement = internalize(value, key2, reviver); - if (replacement === void 0) { - delete value[key2]; - } else { - Object.defineProperty(value, key2, { - value: replacement, - writable: true, - enumerable: true, - configurable: true - }); - } - } - } - } - return reviver.call(holder, name, value); - } - var lexState; - var buffer; - var doubleQuote; - var sign; - var c3; - function lex() { - lexState = "default"; - buffer = ""; - doubleQuote = false; - sign = 1; - for (; ; ) { - c3 = peek(); - const token2 = lexStates[lexState](); - if (token2) { - return token2; - } - } - } - function peek() { - if (source[pos]) { - return String.fromCodePoint(source.codePointAt(pos)); - } - } - function read2() { - const c22 = peek(); - if (c22 === "\n") { - line22++; - column = 0; - } else if (c22) { - column += c22.length; - } else { - column++; - } - if (c22) { - pos += c22.length; - } - return c22; - } - var lexStates = { - default() { - switch (c3) { - case " ": - case "\v": - case "\f": - case " ": - case "\xA0": - case "\uFEFF": - case "\n": - case "\r": - case "\u2028": - case "\u2029": - read2(); - return; - case "/": - read2(); - lexState = "comment"; - return; - case void 0: - read2(); - return newToken("eof"); - } - if (util.isSpaceSeparator(c3)) { - read2(); - return; - } - return lexStates[parseState](); - }, - comment() { - switch (c3) { - case "*": - read2(); - lexState = "multiLineComment"; - return; - case "/": - read2(); - lexState = "singleLineComment"; - return; - } - throw invalidChar(read2()); - }, - multiLineComment() { - switch (c3) { - case "*": - read2(); - lexState = "multiLineCommentAsterisk"; - return; - case void 0: - throw invalidChar(read2()); - } - read2(); - }, - multiLineCommentAsterisk() { - switch (c3) { - case "*": - read2(); - return; - case "/": - read2(); - lexState = "default"; - return; - case void 0: - throw invalidChar(read2()); - } - read2(); - lexState = "multiLineComment"; - }, - singleLineComment() { - switch (c3) { - case "\n": - case "\r": - case "\u2028": - case "\u2029": - read2(); - lexState = "default"; - return; - case void 0: - read2(); - return newToken("eof"); - } - read2(); - }, - value() { - switch (c3) { - case "{": - case "[": - return newToken("punctuator", read2()); - case "n": - read2(); - literal("ull"); - return newToken("null", null); - case "t": - read2(); - literal("rue"); - return newToken("boolean", true); - case "f": - read2(); - literal("alse"); - return newToken("boolean", false); - case "-": - case "+": - if (read2() === "-") { - sign = -1; - } - lexState = "sign"; - return; - case ".": - buffer = read2(); - lexState = "decimalPointLeading"; - return; - case "0": - buffer = read2(); - lexState = "zero"; - return; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - buffer = read2(); - lexState = "decimalInteger"; - return; - case "I": - read2(); - literal("nfinity"); - return newToken("numeric", Infinity); - case "N": - read2(); - literal("aN"); - return newToken("numeric", NaN); - case '"': - case "'": - doubleQuote = read2() === '"'; - buffer = ""; - lexState = "string"; - return; - } - throw invalidChar(read2()); - }, - identifierNameStartEscape() { - if (c3 !== "u") { - throw invalidChar(read2()); - } - read2(); - const u = unicodeEscape(); - switch (u) { - case "$": - case "_": - break; - default: - if (!util.isIdStartChar(u)) { - throw invalidIdentifier(); - } - break; - } - buffer += u; - lexState = "identifierName"; - }, - identifierName() { - switch (c3) { - case "$": - case "_": - case "\u200C": - case "\u200D": - buffer += read2(); - return; - case "\\": - read2(); - lexState = "identifierNameEscape"; - return; - } - if (util.isIdContinueChar(c3)) { - buffer += read2(); - return; - } - return newToken("identifier", buffer); - }, - identifierNameEscape() { - if (c3 !== "u") { - throw invalidChar(read2()); - } - read2(); - const u = unicodeEscape(); - switch (u) { - case "$": - case "_": - case "\u200C": - case "\u200D": - break; - default: - if (!util.isIdContinueChar(u)) { - throw invalidIdentifier(); - } - break; - } - buffer += u; - lexState = "identifierName"; - }, - sign() { - switch (c3) { - case ".": - buffer = read2(); - lexState = "decimalPointLeading"; - return; - case "0": - buffer = read2(); - lexState = "zero"; - return; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - buffer = read2(); - lexState = "decimalInteger"; - return; - case "I": - read2(); - literal("nfinity"); - return newToken("numeric", sign * Infinity); - case "N": - read2(); - literal("aN"); - return newToken("numeric", NaN); - } - throw invalidChar(read2()); - }, - zero() { - switch (c3) { - case ".": - buffer += read2(); - lexState = "decimalPoint"; - return; - case "e": - case "E": - buffer += read2(); - lexState = "decimalExponent"; - return; - case "x": - case "X": - buffer += read2(); - lexState = "hexadecimal"; - return; - } - return newToken("numeric", sign * 0); - }, - decimalInteger() { - switch (c3) { - case ".": - buffer += read2(); - lexState = "decimalPoint"; - return; - case "e": - case "E": - buffer += read2(); - lexState = "decimalExponent"; - return; - } - if (util.isDigit(c3)) { - buffer += read2(); - return; - } - return newToken("numeric", sign * Number(buffer)); - }, - decimalPointLeading() { - if (util.isDigit(c3)) { - buffer += read2(); - lexState = "decimalFraction"; - return; - } - throw invalidChar(read2()); - }, - decimalPoint() { - switch (c3) { - case "e": - case "E": - buffer += read2(); - lexState = "decimalExponent"; - return; - } - if (util.isDigit(c3)) { - buffer += read2(); - lexState = "decimalFraction"; - return; - } - return newToken("numeric", sign * Number(buffer)); - }, - decimalFraction() { - switch (c3) { - case "e": - case "E": - buffer += read2(); - lexState = "decimalExponent"; - return; - } - if (util.isDigit(c3)) { - buffer += read2(); - return; - } - return newToken("numeric", sign * Number(buffer)); - }, - decimalExponent() { - switch (c3) { - case "+": - case "-": - buffer += read2(); - lexState = "decimalExponentSign"; - return; - } - if (util.isDigit(c3)) { - buffer += read2(); - lexState = "decimalExponentInteger"; - return; - } - throw invalidChar(read2()); - }, - decimalExponentSign() { - if (util.isDigit(c3)) { - buffer += read2(); - lexState = "decimalExponentInteger"; - return; - } - throw invalidChar(read2()); - }, - decimalExponentInteger() { - if (util.isDigit(c3)) { - buffer += read2(); - return; - } - return newToken("numeric", sign * Number(buffer)); - }, - hexadecimal() { - if (util.isHexDigit(c3)) { - buffer += read2(); - lexState = "hexadecimalInteger"; - return; - } - throw invalidChar(read2()); - }, - hexadecimalInteger() { - if (util.isHexDigit(c3)) { - buffer += read2(); - return; - } - return newToken("numeric", sign * Number(buffer)); - }, - string() { - switch (c3) { - case "\\": - read2(); - buffer += escape(); - return; - case '"': - if (doubleQuote) { - read2(); - return newToken("string", buffer); - } - buffer += read2(); - return; - case "'": - if (!doubleQuote) { - read2(); - return newToken("string", buffer); - } - buffer += read2(); - return; - case "\n": - case "\r": - throw invalidChar(read2()); - case "\u2028": - case "\u2029": - separatorChar(c3); - break; - case void 0: - throw invalidChar(read2()); - } - buffer += read2(); - }, - start() { - switch (c3) { - case "{": - case "[": - return newToken("punctuator", read2()); - } - lexState = "value"; - }, - beforePropertyName() { - switch (c3) { - case "$": - case "_": - buffer = read2(); - lexState = "identifierName"; - return; - case "\\": - read2(); - lexState = "identifierNameStartEscape"; - return; - case "}": - return newToken("punctuator", read2()); - case '"': - case "'": - doubleQuote = read2() === '"'; - lexState = "string"; - return; - } - if (util.isIdStartChar(c3)) { - buffer += read2(); - lexState = "identifierName"; - return; - } - throw invalidChar(read2()); - }, - afterPropertyName() { - if (c3 === ":") { - return newToken("punctuator", read2()); - } - throw invalidChar(read2()); - }, - beforePropertyValue() { - lexState = "value"; - }, - afterPropertyValue() { - switch (c3) { - case ",": - case "}": - return newToken("punctuator", read2()); - } - throw invalidChar(read2()); - }, - beforeArrayValue() { - if (c3 === "]") { - return newToken("punctuator", read2()); - } - lexState = "value"; - }, - afterArrayValue() { - switch (c3) { - case ",": - case "]": - return newToken("punctuator", read2()); - } - throw invalidChar(read2()); - }, - end() { - throw invalidChar(read2()); - } - }; - function newToken(type2, value) { - return { - type: type2, - value, - line: line22, - column - }; - } - function literal(s3) { - for (const c22 of s3) { - const p4 = peek(); - if (p4 !== c22) { - throw invalidChar(read2()); - } - read2(); - } - } - function escape() { - const c22 = peek(); - switch (c22) { - case "b": - read2(); - return "\b"; - case "f": - read2(); - return "\f"; - case "n": - read2(); - return "\n"; - case "r": - read2(); - return "\r"; - case "t": - read2(); - return " "; - case "v": - read2(); - return "\v"; - case "0": - read2(); - if (util.isDigit(peek())) { - throw invalidChar(read2()); - } - return "\0"; - case "x": - read2(); - return hexEscape(); - case "u": - read2(); - return unicodeEscape(); - case "\n": - case "\u2028": - case "\u2029": - read2(); - return ""; - case "\r": - read2(); - if (peek() === "\n") { - read2(); - } - return ""; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - throw invalidChar(read2()); - case void 0: - throw invalidChar(read2()); - } - return read2(); - } - function hexEscape() { - let buffer2 = ""; - let c22 = peek(); - if (!util.isHexDigit(c22)) { - throw invalidChar(read2()); - } - buffer2 += read2(); - c22 = peek(); - if (!util.isHexDigit(c22)) { - throw invalidChar(read2()); - } - buffer2 += read2(); - return String.fromCodePoint(parseInt(buffer2, 16)); - } - function unicodeEscape() { - let buffer2 = ""; - let count = 4; - while (count-- > 0) { - const c22 = peek(); - if (!util.isHexDigit(c22)) { - throw invalidChar(read2()); - } - buffer2 += read2(); - } - return String.fromCodePoint(parseInt(buffer2, 16)); - } - var parseStates = { - start() { - if (token.type === "eof") { - throw invalidEOF(); - } - push(); - }, - beforePropertyName() { - switch (token.type) { - case "identifier": - case "string": - key = token.value; - parseState = "afterPropertyName"; - return; - case "punctuator": - pop(); - return; - case "eof": - throw invalidEOF(); - } - }, - afterPropertyName() { - if (token.type === "eof") { - throw invalidEOF(); - } - parseState = "beforePropertyValue"; - }, - beforePropertyValue() { - if (token.type === "eof") { - throw invalidEOF(); - } - push(); - }, - beforeArrayValue() { - if (token.type === "eof") { - throw invalidEOF(); - } - if (token.type === "punctuator" && token.value === "]") { - pop(); - return; - } - push(); - }, - afterPropertyValue() { - if (token.type === "eof") { - throw invalidEOF(); - } - switch (token.value) { - case ",": - parseState = "beforePropertyName"; - return; - case "}": - pop(); - } - }, - afterArrayValue() { - if (token.type === "eof") { - throw invalidEOF(); - } - switch (token.value) { - case ",": - parseState = "beforeArrayValue"; - return; - case "]": - pop(); - } - }, - end() { - } - }; - function push() { - let value; - switch (token.type) { - case "punctuator": - switch (token.value) { - case "{": - value = {}; - break; - case "[": - value = []; - break; - } - break; - case "null": - case "boolean": - case "numeric": - case "string": - value = token.value; - break; - } - if (root === void 0) { - root = value; - } else { - const parent = stack[stack.length - 1]; - if (Array.isArray(parent)) { - parent.push(value); - } else { - Object.defineProperty(parent, key, { - value, - writable: true, - enumerable: true, - configurable: true - }); - } - } - if (value !== null && typeof value === "object") { - stack.push(value); - if (Array.isArray(value)) { - parseState = "beforeArrayValue"; - } else { - parseState = "beforePropertyName"; - } - } else { - const current = stack[stack.length - 1]; - if (current == null) { - parseState = "end"; - } else if (Array.isArray(current)) { - parseState = "afterArrayValue"; - } else { - parseState = "afterPropertyValue"; - } - } - } - function pop() { - stack.pop(); - const current = stack[stack.length - 1]; - if (current == null) { - parseState = "end"; - } else if (Array.isArray(current)) { - parseState = "afterArrayValue"; - } else { - parseState = "afterPropertyValue"; - } - } - function invalidChar(c22) { - if (c22 === void 0) { - return syntaxError(`JSON5: invalid end of input at ${line22}:${column}`); - } - return syntaxError(`JSON5: invalid character '${formatChar(c22)}' at ${line22}:${column}`); - } - function invalidEOF() { - return syntaxError(`JSON5: invalid end of input at ${line22}:${column}`); - } - function invalidIdentifier() { - column -= 5; - return syntaxError(`JSON5: invalid identifier character at ${line22}:${column}`); - } - function separatorChar(c22) { - console.warn(`JSON5: '${formatChar(c22)}' in strings is not valid ECMAScript; consider escaping`); - } - function formatChar(c22) { - const replacements = { - "'": "\\'", - '"': '\\"', - "\\": "\\\\", - "\b": "\\b", - "\f": "\\f", - "\n": "\\n", - "\r": "\\r", - " ": "\\t", - "\v": "\\v", - "\0": "\\0", - "\u2028": "\\u2028", - "\u2029": "\\u2029" - }; - if (replacements[c22]) { - return replacements[c22]; - } - if (c22 < " ") { - const hexString = c22.charCodeAt(0).toString(16); - return "\\x" + ("00" + hexString).substring(hexString.length); - } - return c22; - } - function syntaxError(message) { - const err = new SyntaxError(message); - err.lineNumber = line22; - err.columnNumber = column; - return err; - } - } -}); -var require_ignore = __commonJS3({ - "node_modules/ignore/index.js"(exports, module2) { - function makeArray(subject) { - return Array.isArray(subject) ? subject : [subject]; - } - var EMPTY = ""; - var SPACE = " "; - var ESCAPE = "\\"; - var REGEX_TEST_BLANK_LINE = /^\s+$/; - var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; - var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; - var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; - var REGEX_SPLITALL_CRLF = /\r?\n/g; - var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; - var SLASH = "/"; - var TMP_KEY_IGNORE = "node-ignore"; - if (typeof Symbol !== "undefined") { - TMP_KEY_IGNORE = Symbol.for("node-ignore"); - } - var KEY_IGNORE = TMP_KEY_IGNORE; - var define2 = (object, key, value) => Object.defineProperty(object, key, { value }); - var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; - var RETURN_FALSE = () => false; - var sanitizeRange = (range) => range.replace( - REGEX_REGEXP_RANGE, - (match, from, to3) => from.charCodeAt(0) <= to3.charCodeAt(0) ? match : EMPTY - ); - var cleanRangeBackSlash = (slashes) => { - const { length } = slashes; - return slashes.slice(0, length - length % 2); - }; - var REPLACERS = [ - // > Trailing spaces are ignored unless they are quoted with backslash ("\") - [ - // (a\ ) -> (a ) - // (a ) -> (a) - // (a \ ) -> (a ) - /\\?\s+$/, - (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY - ], - // replace (\ ) with ' ' - [ - /\\\s/g, - () => SPACE - ], - // Escape metacharacters - // which is written down by users but means special for regular expressions. - // > There are 12 characters with special meanings: - // > - the backslash \, - // > - the caret ^, - // > - the dollar sign $, - // > - the period or dot ., - // > - the vertical bar or pipe symbol |, - // > - the question mark ?, - // > - the asterisk or star *, - // > - the plus sign +, - // > - the opening parenthesis (, - // > - the closing parenthesis ), - // > - and the opening square bracket [, - // > - the opening curly brace {, - // > These special characters are often called "metacharacters". - [ - /[\\$.|*+(){^]/g, - (match) => `\\${match}` - ], - [ - // > a question mark (?) matches a single character - /(?!\\)\?/g, - () => "[^/]" - ], - // leading slash - [ - // > A leading slash matches the beginning of the pathname. - // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". - // A leading slash matches the beginning of the pathname - /^\//, - () => "^" - ], - // replace special metacharacter slash after the leading slash - [ - /\//g, - () => "\\/" - ], - [ - // > A leading "**" followed by a slash means match in all directories. - // > For example, "**/foo" matches file or directory "foo" anywhere, - // > the same as pattern "foo". - // > "**/foo/bar" matches file or directory "bar" anywhere that is directly - // > under directory "foo". - // Notice that the '*'s have been replaced as '\\*' - /^\^*\\\*\\\*\\\//, - // '**/foo' <-> 'foo' - () => "^(?:.*\\/)?" - ], - // starting - [ - // there will be no leading '/' - // (which has been replaced by section "leading slash") - // If starts with '**', adding a '^' to the regular expression also works - /^(?=[^^])/, - function startingReplacer() { - return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; - } - ], - // two globstars - [ - // Use lookahead assertions so that we could match more than one `'/**'` - /\\\/\\\*\\\*(?=\\\/|$)/g, - // Zero, one or several directories - // should not use '*', or it will be replaced by the next replacer - // Check if it is not the last `'/**'` - (_6, index, str2) => index + 6 < str2.length ? "(?:\\/[^\\/]+)*" : "\\/.+" - ], - // normal intermediate wildcards - [ - // Never replace escaped '*' - // ignore rule '\*' will match the path '*' - // 'abc.*/' -> go - // 'abc.*' -> skip this rule, - // coz trailing single wildcard will be handed by [trailing wildcard] - /(^|[^\\]+)(\\\*)+(?=.+)/g, - // '*.js' matches '.js' - // '*.js' doesn't match 'abc' - (_6, p12, p22) => { - const unescaped = p22.replace(/\\\*/g, "[^\\/]*"); - return p12 + unescaped; - } - ], - [ - // unescape, revert step 3 except for back slash - // For example, if a user escape a '\\*', - // after step 3, the result will be '\\\\\\*' - /\\\\\\(?=[$.|*+(){^])/g, - () => ESCAPE - ], - [ - // '\\\\' -> '\\' - /\\\\/g, - () => ESCAPE - ], - [ - // > The range notation, e.g. [a-zA-Z], - // > can be used to match one of the characters in a range. - // `\` is escaped by step 3 - /(\\)?\[([^\]/]*?)(\\*)($|\])/g, - (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" - ], - // ending - [ - // 'js' will not match 'js.' - // 'ab' will not match 'abc' - /(?:[^*])$/, - // WTF! - // https://git-scm.com/docs/gitignore - // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) - // which re-fixes #24, #38 - // > If there is a separator at the end of the pattern then the pattern - // > will only match directories, otherwise the pattern can match both - // > files and directories. - // 'js*' will not match 'a.js' - // 'js/' will not match 'a.js' - // 'js' will match 'a.js' and 'a.js/' - (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` - ], - // trailing wildcard - [ - /(\^|\\\/)?\\\*$/, - (_6, p12) => { - const prefix = p12 ? `${p12}[^/]+` : "[^/]*"; - return `${prefix}(?=$|\\/$)`; - } - ] - ]; - var regexCache = /* @__PURE__ */ Object.create(null); - var makeRegex = (pattern, ignoreCase) => { - let source = regexCache[pattern]; - if (!source) { - source = REPLACERS.reduce( - (prev, current) => prev.replace(current[0], current[1].bind(pattern)), - pattern - ); - regexCache[pattern] = source; - } - return ignoreCase ? new RegExp(source, "i") : new RegExp(source); - }; - var isString = (subject) => typeof subject === "string"; - var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0; - var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); - var IgnoreRule = class { - constructor(origin, pattern, negative, regex) { - this.origin = origin; - this.pattern = pattern; - this.negative = negative; - this.regex = regex; - } - }; - var createRule = (pattern, ignoreCase) => { - const origin = pattern; - let negative = false; - if (pattern.indexOf("!") === 0) { - negative = true; - pattern = pattern.substr(1); - } - pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); - const regex = makeRegex(pattern, ignoreCase); - return new IgnoreRule( - origin, - pattern, - negative, - regex - ); - }; - var throwError2 = (message, Ctor) => { - throw new Ctor(message); - }; - var checkPath = (path9, originalPath, doThrow) => { - if (!isString(path9)) { - return doThrow( - `path must be a string, but got \`${originalPath}\``, - TypeError - ); - } - if (!path9) { - return doThrow(`path must not be empty`, TypeError); - } - if (checkPath.isNotRelative(path9)) { - const r3 = "`path.relative()`d"; - return doThrow( - `path should be a ${r3} string, but got "${originalPath}"`, - RangeError - ); - } - return true; - }; - var isNotRelative = (path9) => REGEX_TEST_INVALID_PATH.test(path9); - checkPath.isNotRelative = isNotRelative; - checkPath.convert = (p4) => p4; - var Ignore = class { - constructor({ - ignorecase = true, - ignoreCase = ignorecase, - allowRelativePaths = false - } = {}) { - define2(this, KEY_IGNORE, true); - this._rules = []; - this._ignoreCase = ignoreCase; - this._allowRelativePaths = allowRelativePaths; - this._initCache(); - } - _initCache() { - this._ignoreCache = /* @__PURE__ */ Object.create(null); - this._testCache = /* @__PURE__ */ Object.create(null); - } - _addPattern(pattern) { - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules); - this._added = true; - return; - } - if (checkPattern(pattern)) { - const rule = createRule(pattern, this._ignoreCase); - this._added = true; - this._rules.push(rule); - } - } - // @param {Array | string | Ignore} pattern - add(pattern) { - this._added = false; - makeArray( - isString(pattern) ? splitPattern(pattern) : pattern - ).forEach(this._addPattern, this); - if (this._added) { - this._initCache(); - } - return this; - } - // legacy - addPattern(pattern) { - return this.add(pattern); - } - // | ignored : unignored - // negative | 0:0 | 0:1 | 1:0 | 1:1 - // -------- | ------- | ------- | ------- | -------- - // 0 | TEST | TEST | SKIP | X - // 1 | TESTIF | SKIP | TEST | X - // - SKIP: always skip - // - TEST: always test - // - TESTIF: only test if checkUnignored - // - X: that never happen - // @param {boolean} whether should check if the path is unignored, - // setting `checkUnignored` to `false` could reduce additional - // path matching. - // @returns {TestResult} true if a file is ignored - _testOne(path9, checkUnignored) { - let ignored = false; - let unignored = false; - this._rules.forEach((rule) => { - const { negative } = rule; - if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { - return; - } - const matched = rule.regex.test(path9); - if (matched) { - ignored = !negative; - unignored = negative; - } - }); - return { - ignored, - unignored - }; - } - // @returns {TestResult} - _test(originalPath, cache, checkUnignored, slices) { - const path9 = originalPath && checkPath.convert(originalPath); - checkPath( - path9, - originalPath, - this._allowRelativePaths ? RETURN_FALSE : throwError2 - ); - return this._t(path9, cache, checkUnignored, slices); - } - _t(path9, cache, checkUnignored, slices) { - if (path9 in cache) { - return cache[path9]; - } - if (!slices) { - slices = path9.split(SLASH); - } - slices.pop(); - if (!slices.length) { - return cache[path9] = this._testOne(path9, checkUnignored); - } - const parent = this._t( - slices.join(SLASH) + SLASH, - cache, - checkUnignored, - slices - ); - return cache[path9] = parent.ignored ? parent : this._testOne(path9, checkUnignored); - } - ignores(path9) { - return this._test(path9, this._ignoreCache, false).ignored; - } - createFilter() { - return (path9) => !this.ignores(path9); - } - filter(paths) { - return makeArray(paths).filter(this.createFilter()); - } - // @returns {TestResult} - test(path9) { - return this._test(path9, this._testCache, true); - } - }; - var factory = (options8) => new Ignore(options8); - var isPathValid = (path9) => checkPath(path9 && checkPath.convert(path9), path9, RETURN_FALSE); - factory.isPathValid = isPathValid; - factory.default = factory; - module2.exports = factory; - if ( - // Detect `process` so that it can run in browsers. - typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32") - ) { - const makePosix = (str2) => /^\\\\\?\\/.test(str2) || /["<>|\u0000-\u001F]+/u.test(str2) ? str2 : str2.replace(/\\/g, "/"); - checkPath.convert = makePosix; - const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; - checkPath.isNotRelative = (path9) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path9) || isNotRelative(path9); - } - } -}); -var src_exports = {}; -__export3(src_exports, { - __debug: () => debugApis, - __internal: () => sharedWithCli, - check: () => check, - clearConfigCache: () => clearCache3, - doc: () => doc_exports, - format: () => format2, - formatWithCursor: () => formatWithCursor2, - getFileInfo: () => getFileInfo2, - getSupportInfo: () => getSupportInfo2, - resolveConfig: () => resolveConfig, - resolveConfigFile: () => resolveConfigFile, - util: () => public_exports2, - version: () => version_evaluate_default -}); -var apiDescriptor = { - key: (key) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key) ? key : JSON.stringify(key), - value(value) { - if (value === null || typeof value !== "object") { - return JSON.stringify(value); - } - if (Array.isArray(value)) { - return `[${value.map((subValue) => apiDescriptor.value(subValue)).join(", ")}]`; - } - const keys = Object.keys(value); - return keys.length === 0 ? "{}" : `{ ${keys.map((key) => `${apiDescriptor.key(key)}: ${apiDescriptor.value(value[key])}`).join(", ")} }`; - }, - pair: ({ key, value }) => apiDescriptor.value({ [key]: value }) -}; -var ANSI_BACKGROUND_OFFSET = 10; -var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`; -var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`; -var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`; -var styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - overline: [53, 55], - 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], - // Bright color - blackBright: [90, 39], - gray: [90, 39], - // Alias of `blackBright` - grey: [90, 39], - // Alias of `blackBright` - 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], - // Bright color - bgBlackBright: [100, 49], - bgGray: [100, 49], - // Alias of `bgBlackBright` - bgGrey: [100, 49], - // Alias of `bgBlackBright` - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } -}; -var modifierNames = Object.keys(styles.modifier); -var foregroundColorNames = Object.keys(styles.color); -var backgroundColorNames = Object.keys(styles.bgColor); -var colorNames = [...foregroundColorNames, ...backgroundColorNames]; -function assembleStyles() { - const codes2 = /* @__PURE__ */ new Map(); - for (const [groupName, group2] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group2)) { - styles[styleName] = { - open: `\x1B[${style[0]}m`, - close: `\x1B[${style[1]}m` - }; - group2[styleName] = styles[styleName]; - codes2.set(style[0], style[1]); - } - Object.defineProperty(styles, groupName, { - value: group2, - enumerable: false - }); - } - Object.defineProperty(styles, "codes", { - value: codes2, - enumerable: false - }); - styles.color.close = "\x1B[39m"; - styles.bgColor.close = "\x1B[49m"; - styles.color.ansi = wrapAnsi16(); - styles.color.ansi256 = wrapAnsi256(); - styles.color.ansi16m = wrapAnsi16m(); - styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); - styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); - styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); - Object.defineProperties(styles, { - rgbToAnsi256: { - value(red, green, blue) { - if (red === green && green === blue) { - if (red < 8) { - return 16; - } - if (red > 248) { - return 231; - } - return Math.round((red - 8) / 247 * 24) + 232; - } - return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5); - }, - enumerable: false - }, - hexToRgb: { - value(hex) { - const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16)); - if (!matches) { - return [0, 0, 0]; - } - let [colorString] = matches; - if (colorString.length === 3) { - colorString = [...colorString].map((character) => character + character).join(""); - } - const integer = Number.parseInt(colorString, 16); - return [ - /* eslint-disable no-bitwise */ - integer >> 16 & 255, - integer >> 8 & 255, - integer & 255 - /* eslint-enable no-bitwise */ - ]; - }, - enumerable: false - }, - hexToAnsi256: { - value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), - enumerable: false - }, - ansi256ToAnsi: { - value(code) { - if (code < 8) { - return 30 + code; - } - if (code < 16) { - return 90 + (code - 8); - } - let red; - let green; - let blue; - if (code >= 232) { - red = ((code - 232) * 10 + 8) / 255; - green = red; - blue = red; - } else { - code -= 16; - const remainder = code % 36; - red = Math.floor(code / 36) / 5; - green = Math.floor(remainder / 6) / 5; - blue = remainder % 6 / 5; - } - const value = Math.max(red, green, blue) * 2; - if (value === 0) { - return 30; - } - let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red)); - if (value === 2) { - result += 60; - } - return result; - }, - enumerable: false - }, - rgbToAnsi: { - value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), - enumerable: false - }, - hexToAnsi: { - value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), - enumerable: false - } - }); - return styles; -} -var ansiStyles = assembleStyles(); -var ansi_styles_default = ansiStyles; -function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_process.default.argv) { - const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf("--"); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -} -var { env } = import_process.default; -var flagForceColor; -if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { - flagForceColor = 0; -} else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { - flagForceColor = 1; -} -function envForceColor() { - if ("FORCE_COLOR" in env) { - if (env.FORCE_COLOR === "true") { - return 1; - } - if (env.FORCE_COLOR === "false") { - return 0; - } - return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); - } -} -function translateLevel(level) { - if (level === 0) { - return false; - } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} -function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { - const noFlagForceColor = envForceColor(); - if (noFlagForceColor !== void 0) { - flagForceColor = noFlagForceColor; - } - const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; - if (forceColor === 0) { - return 0; - } - if (sniffFlags) { - if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { - return 3; - } - if (hasFlag("color=256")) { - return 2; - } - } - if ("TF_BUILD" in env && "AGENT_NAME" in env) { - return 1; - } - if (haveStream && !streamIsTTY && forceColor === void 0) { - return 0; - } - const min = forceColor || 0; - if (env.TERM === "dumb") { - return min; - } - if (import_process.default.platform === "win32") { - const osRelease = import_os.default.release().split("."); - if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - return 1; - } - if ("CI" in env) { - if ("GITHUB_ACTIONS" in env || "GITEA_ACTIONS" in env) { - return 3; - } - if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { - return 1; - } - return min; - } - if ("TEAMCITY_VERSION" in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - if (env.COLORTERM === "truecolor") { - return 3; - } - if (env.TERM === "xterm-kitty") { - return 3; - } - if ("TERM_PROGRAM" in env) { - const version2 = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); - switch (env.TERM_PROGRAM) { - case "iTerm.app": { - return version2 >= 3 ? 3 : 2; - } - case "Apple_Terminal": { - return 2; - } - } - } - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - if ("COLORTERM" in env) { - return 1; - } - return min; -} -function createSupportsColor(stream, options8 = {}) { - const level = _supportsColor(stream, { - streamIsTTY: stream && stream.isTTY, - ...options8 - }); - return translateLevel(level); -} -var supportsColor = { - stdout: createSupportsColor({ isTTY: import_tty.default.isatty(1) }), - stderr: createSupportsColor({ isTTY: import_tty.default.isatty(2) }) -}; -var supports_color_default = supportsColor; -function stringReplaceAll2(string, substring, replacer) { - let index = string.indexOf(substring); - if (index === -1) { - return string; - } - const substringLength = substring.length; - let endIndex = 0; - let returnValue = ""; - do { - returnValue += string.slice(endIndex, index) + substring + replacer; - endIndex = index + substringLength; - index = string.indexOf(substring, endIndex); - } while (index !== -1); - returnValue += string.slice(endIndex); - return returnValue; -} -function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) { - let endIndex = 0; - let returnValue = ""; - do { - const gotCR = string[index - 1] === "\r"; - returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix; - endIndex = index + 1; - index = string.indexOf("\n", endIndex); - } while (index !== -1); - returnValue += string.slice(endIndex); - return returnValue; -} -var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default; -var GENERATOR = Symbol("GENERATOR"); -var STYLER = Symbol("STYLER"); -var IS_EMPTY = Symbol("IS_EMPTY"); -var levelMapping = [ - "ansi", - "ansi", - "ansi256", - "ansi16m" -]; -var styles2 = /* @__PURE__ */ Object.create(null); -var applyOptions = (object, options8 = {}) => { - if (options8.level && !(Number.isInteger(options8.level) && options8.level >= 0 && options8.level <= 3)) { - throw new Error("The `level` option should be an integer from 0 to 3"); - } - const colorLevel = stdoutColor ? stdoutColor.level : 0; - object.level = options8.level === void 0 ? colorLevel : options8.level; -}; -var chalkFactory = (options8) => { - const chalk22 = (...strings) => strings.join(" "); - applyOptions(chalk22, options8); - Object.setPrototypeOf(chalk22, createChalk.prototype); - return chalk22; -}; -function createChalk(options8) { - return chalkFactory(options8); -} -Object.setPrototypeOf(createChalk.prototype, Function.prototype); -for (const [styleName, style] of Object.entries(ansi_styles_default)) { - styles2[styleName] = { - get() { - const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]); - Object.defineProperty(this, styleName, { value: builder }); - return builder; - } - }; -} -styles2.visible = { - get() { - const builder = createBuilder(this, this[STYLER], true); - Object.defineProperty(this, "visible", { value: builder }); - return builder; - } -}; -var getModelAnsi = (model, level, type2, ...arguments_) => { - if (model === "rgb") { - if (level === "ansi16m") { - return ansi_styles_default[type2].ansi16m(...arguments_); - } - if (level === "ansi256") { - return ansi_styles_default[type2].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)); - } - return ansi_styles_default[type2].ansi(ansi_styles_default.rgbToAnsi(...arguments_)); - } - if (model === "hex") { - return getModelAnsi("rgb", level, type2, ...ansi_styles_default.hexToRgb(...arguments_)); - } - return ansi_styles_default[type2][model](...arguments_); -}; -var usedModels = ["rgb", "hex", "ansi256"]; -for (const model of usedModels) { - styles2[model] = { - get() { - const { level } = this; - return function(...arguments_) { - const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]); - return createBuilder(this, styler, this[IS_EMPTY]); - }; - } - }; - const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); - styles2[bgModel] = { - get() { - const { level } = this; - return function(...arguments_) { - const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]); - return createBuilder(this, styler, this[IS_EMPTY]); - }; - } - }; -} -var proto = Object.defineProperties(() => { -}, { - ...styles2, - level: { - enumerable: true, - get() { - return this[GENERATOR].level; - }, - set(level) { - this[GENERATOR].level = level; - } - } -}); -var createStyler = (open, close, parent) => { - let openAll; - let closeAll; - if (parent === void 0) { - openAll = open; - closeAll = close; - } else { - openAll = parent.openAll + open; - closeAll = close + parent.closeAll; - } - return { - open, - close, - openAll, - closeAll, - parent - }; -}; -var createBuilder = (self2, _styler, _isEmpty) => { - const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" ")); - Object.setPrototypeOf(builder, proto); - builder[GENERATOR] = self2; - builder[STYLER] = _styler; - builder[IS_EMPTY] = _isEmpty; - return builder; -}; -var applyStyle = (self2, string) => { - if (self2.level <= 0 || !string) { - return self2[IS_EMPTY] ? "" : string; - } - let styler = self2[STYLER]; - if (styler === void 0) { - return string; - } - const { openAll, closeAll } = styler; - if (string.includes("\x1B")) { - while (styler !== void 0) { - string = stringReplaceAll2(string, styler.close, styler.open); - styler = styler.parent; - } - } - const lfIndex = string.indexOf("\n"); - if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); - } - return openAll + string + closeAll; -}; -Object.defineProperties(createChalk.prototype, styles2); -var chalk2 = createChalk(); -var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 }); -var source_default = chalk2; -var commonDeprecatedHandler = (keyOrPair, redirectTo, { descriptor }) => { - const messages2 = [ - `${source_default.yellow(typeof keyOrPair === "string" ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated` - ]; - if (redirectTo) { - messages2.push(`we now treat it as ${source_default.blue(typeof redirectTo === "string" ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`); - } - return messages2.join("; ") + "."; -}; -var VALUE_NOT_EXIST = Symbol.for("vnopts.VALUE_NOT_EXIST"); -var VALUE_UNCHANGED = Symbol.for("vnopts.VALUE_UNCHANGED"); -var INDENTATION = " ".repeat(2); -var commonInvalidHandler = (key, value, utils2) => { - const { text, list } = utils2.normalizeExpectedResult(utils2.schemas[key].expected(utils2)); - const descriptions = []; - if (text) { - descriptions.push(getDescription(key, value, text, utils2.descriptor)); - } - if (list) { - descriptions.push([getDescription(key, value, list.title, utils2.descriptor)].concat(list.values.map((valueDescription) => getListDescription(valueDescription, utils2.loggerPrintWidth))).join("\n")); - } - return chooseDescription(descriptions, utils2.loggerPrintWidth); -}; -function getDescription(key, value, expected, descriptor) { - return [ - `Invalid ${source_default.red(descriptor.key(key))} value.`, - `Expected ${source_default.blue(expected)},`, - `but received ${value === VALUE_NOT_EXIST ? source_default.gray("nothing") : source_default.red(descriptor.value(value))}.` - ].join(" "); -} -function getListDescription({ text, list }, printWidth) { - const descriptions = []; - if (text) { - descriptions.push(`- ${source_default.blue(text)}`); - } - if (list) { - descriptions.push([`- ${source_default.blue(list.title)}:`].concat(list.values.map((valueDescription) => getListDescription(valueDescription, printWidth - INDENTATION.length).replace(/^|\n/g, `$&${INDENTATION}`))).join("\n")); - } - return chooseDescription(descriptions, printWidth); -} -function chooseDescription(descriptions, printWidth) { - if (descriptions.length === 1) { - return descriptions[0]; - } - const [firstDescription, secondDescription] = descriptions; - const [firstWidth, secondWidth] = descriptions.map((description) => description.split("\n", 1)[0].length); - return firstWidth > printWidth && firstWidth > secondWidth ? secondDescription : firstDescription; -} -var array = []; -var characterCodeCache = []; -function leven(first, second) { - if (first === second) { - return 0; - } - const swap = first; - if (first.length > second.length) { - first = second; - second = swap; - } - let firstLength = first.length; - let secondLength = second.length; - while (firstLength > 0 && first.charCodeAt(~-firstLength) === second.charCodeAt(~-secondLength)) { - firstLength--; - secondLength--; - } - let start = 0; - while (start < firstLength && first.charCodeAt(start) === second.charCodeAt(start)) { - start++; - } - firstLength -= start; - secondLength -= start; - if (firstLength === 0) { - return secondLength; - } - let bCharacterCode; - let result; - let temporary; - let temporary2; - let index = 0; - let index2 = 0; - while (index < firstLength) { - characterCodeCache[index] = first.charCodeAt(start + index); - array[index] = ++index; - } - while (index2 < secondLength) { - bCharacterCode = second.charCodeAt(start + index2); - temporary = index2++; - result = index2; - for (index = 0; index < firstLength; index++) { - temporary2 = bCharacterCode === characterCodeCache[index] ? temporary : temporary + 1; - temporary = array[index]; - result = array[index] = temporary > result ? temporary2 > result ? result + 1 : temporary2 : temporary2 > temporary ? temporary + 1 : temporary2; - } - } - return result; -} -var levenUnknownHandler = (key, value, { descriptor, logger, schemas }) => { - const messages2 = [ - `Ignored unknown option ${source_default.yellow(descriptor.pair({ key, value }))}.` - ]; - const suggestion = Object.keys(schemas).sort().find((knownKey) => leven(key, knownKey) < 3); - if (suggestion) { - messages2.push(`Did you mean ${source_default.blue(descriptor.key(suggestion))}?`); - } - logger.warn(messages2.join(" ")); -}; -var HANDLER_KEYS = [ - "default", - "expected", - "validate", - "deprecated", - "forward", - "redirect", - "overlap", - "preprocess", - "postprocess" -]; -function createSchema(SchemaConstructor, parameters) { - const schema2 = new SchemaConstructor(parameters); - const subSchema = Object.create(schema2); - for (const handlerKey of HANDLER_KEYS) { - if (handlerKey in parameters) { - subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema2, Schema.prototype[handlerKey].length); - } - } - return subSchema; -} -var Schema = class { - static create(parameters) { - return createSchema(this, parameters); - } - constructor(parameters) { - this.name = parameters.name; - } - default(_utils) { - return void 0; - } - // this is actually an abstract method but we need a placeholder to get `function.length` - /* c8 ignore start */ - expected(_utils) { - return "nothing"; - } - /* c8 ignore stop */ - // this is actually an abstract method but we need a placeholder to get `function.length` - /* c8 ignore start */ - validate(_value, _utils) { - return false; - } - /* c8 ignore stop */ - deprecated(_value, _utils) { - return false; - } - forward(_value, _utils) { - return void 0; - } - redirect(_value, _utils) { - return void 0; - } - overlap(currentValue, _newValue, _utils) { - return currentValue; - } - preprocess(value, _utils) { - return value; - } - postprocess(_value, _utils) { - return VALUE_UNCHANGED; - } -}; -function normalizeHandler(handler, superSchema, handlerArgumentsLength) { - return typeof handler === "function" ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler; -} -var AliasSchema = class extends Schema { - constructor(parameters) { - super(parameters); - this._sourceName = parameters.sourceName; - } - expected(utils2) { - return utils2.schemas[this._sourceName].expected(utils2); - } - validate(value, utils2) { - return utils2.schemas[this._sourceName].validate(value, utils2); - } - redirect(_value, _utils) { - return this._sourceName; - } -}; -var AnySchema = class extends Schema { - expected() { - return "anything"; - } - validate() { - return true; - } -}; -var ArraySchema = class extends Schema { - constructor({ valueSchema, name = valueSchema.name, ...handlers }) { - super({ ...handlers, name }); - this._valueSchema = valueSchema; - } - expected(utils2) { - const { text, list } = utils2.normalizeExpectedResult(this._valueSchema.expected(utils2)); - return { - text: text && `an array of ${text}`, - list: list && { - title: `an array of the following values`, - values: [{ list }] - } - }; - } - validate(value, utils2) { - if (!Array.isArray(value)) { - return false; - } - const invalidValues = []; - for (const subValue of value) { - const subValidateResult = utils2.normalizeValidateResult(this._valueSchema.validate(subValue, utils2), subValue); - if (subValidateResult !== true) { - invalidValues.push(subValidateResult.value); - } - } - return invalidValues.length === 0 ? true : { value: invalidValues }; - } - deprecated(value, utils2) { - const deprecatedResult = []; - for (const subValue of value) { - const subDeprecatedResult = utils2.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils2), subValue); - if (subDeprecatedResult !== false) { - deprecatedResult.push(...subDeprecatedResult.map(({ value: deprecatedValue }) => ({ - value: [deprecatedValue] - }))); - } - } - return deprecatedResult; - } - forward(value, utils2) { - const forwardResult = []; - for (const subValue of value) { - const subForwardResult = utils2.normalizeForwardResult(this._valueSchema.forward(subValue, utils2), subValue); - forwardResult.push(...subForwardResult.map(wrapTransferResult)); - } - return forwardResult; - } - redirect(value, utils2) { - const remain = []; - const redirect = []; - for (const subValue of value) { - const subRedirectResult = utils2.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils2), subValue); - if ("remain" in subRedirectResult) { - remain.push(subRedirectResult.remain); - } - redirect.push(...subRedirectResult.redirect.map(wrapTransferResult)); - } - return remain.length === 0 ? { redirect } : { redirect, remain }; - } - overlap(currentValue, newValue) { - return currentValue.concat(newValue); - } -}; -function wrapTransferResult({ from, to: to3 }) { - return { from: [from], to: to3 }; -} -var BooleanSchema = class extends Schema { - expected() { - return "true or false"; - } - validate(value) { - return typeof value === "boolean"; - } -}; -function recordFromArray(array2, mainKey) { - const record = /* @__PURE__ */ Object.create(null); - for (const value of array2) { - const key = value[mainKey]; - if (record[key]) { - throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); - } - record[key] = value; - } - return record; -} -function mapFromArray(array2, mainKey) { - const map2 = /* @__PURE__ */ new Map(); - for (const value of array2) { - const key = value[mainKey]; - if (map2.has(key)) { - throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); - } - map2.set(key, value); - } - return map2; -} -function createAutoChecklist() { - const map2 = /* @__PURE__ */ Object.create(null); - return (id2) => { - const idString = JSON.stringify(id2); - if (map2[idString]) { - return true; - } - map2[idString] = true; - return false; - }; -} -function partition(array2, predicate) { - const trueArray = []; - const falseArray = []; - for (const value of array2) { - if (predicate(value)) { - trueArray.push(value); - } else { - falseArray.push(value); - } - } - return [trueArray, falseArray]; -} -function isInt(value) { - return value === Math.floor(value); -} -function comparePrimitive(a, b5) { - if (a === b5) { - return 0; - } - const typeofA = typeof a; - const typeofB = typeof b5; - const orders = [ - "undefined", - "object", - "boolean", - "number", - "string" - ]; - if (typeofA !== typeofB) { - return orders.indexOf(typeofA) - orders.indexOf(typeofB); - } - if (typeofA !== "string") { - return Number(a) - Number(b5); - } - return a.localeCompare(b5); -} -function normalizeInvalidHandler(invalidHandler) { - return (...args) => { - const errorMessageOrError = invalidHandler(...args); - return typeof errorMessageOrError === "string" ? new Error(errorMessageOrError) : errorMessageOrError; - }; -} -function normalizeDefaultResult(result) { - return result === void 0 ? {} : result; -} -function normalizeExpectedResult(result) { - if (typeof result === "string") { - return { text: result }; - } - const { text, list } = result; - assert((text || list) !== void 0, "Unexpected `expected` result, there should be at least one field."); - if (!list) { - return { text }; - } - return { - text, - list: { - title: list.title, - values: list.values.map(normalizeExpectedResult) - } - }; -} -function normalizeValidateResult(result, value) { - return result === true ? true : result === false ? { value } : result; -} -function normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) { - return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ value }] : "value" in result ? [result] : result.length === 0 ? false : result; -} -function normalizeTransferResult(result, value) { - return typeof result === "string" || "key" in result ? { from: value, to: result } : "from" in result ? { from: result.from, to: result.to } : { from: value, to: result.to }; -} -function normalizeForwardResult(result, value) { - return result === void 0 ? [] : Array.isArray(result) ? result.map((transferResult) => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)]; -} -function normalizeRedirectResult(result, value) { - const redirect = normalizeForwardResult(typeof result === "object" && "redirect" in result ? result.redirect : result, value); - return redirect.length === 0 ? { remain: value, redirect } : typeof result === "object" && "remain" in result ? { remain: result.remain, redirect } : { redirect }; -} -function assert(isValid, message) { - if (!isValid) { - throw new Error(message); - } -} -var ChoiceSchema = class extends Schema { - constructor(parameters) { - super(parameters); - this._choices = mapFromArray(parameters.choices.map((choice) => choice && typeof choice === "object" ? choice : { value: choice }), "value"); - } - expected({ descriptor }) { - const choiceDescriptions = Array.from(this._choices.keys()).map((value) => this._choices.get(value)).filter(({ hidden }) => !hidden).map((choiceInfo) => choiceInfo.value).sort(comparePrimitive).map(descriptor.value); - const head = choiceDescriptions.slice(0, -2); - const tail = choiceDescriptions.slice(-2); - const message = head.concat(tail.join(" or ")).join(", "); - return { - text: message, - list: { - title: "one of the following values", - values: choiceDescriptions - } - }; - } - validate(value) { - return this._choices.has(value); - } - deprecated(value) { - const choiceInfo = this._choices.get(value); - return choiceInfo && choiceInfo.deprecated ? { value } : false; - } - forward(value) { - const choiceInfo = this._choices.get(value); - return choiceInfo ? choiceInfo.forward : void 0; - } - redirect(value) { - const choiceInfo = this._choices.get(value); - return choiceInfo ? choiceInfo.redirect : void 0; - } -}; -var NumberSchema = class extends Schema { - expected() { - return "a number"; - } - validate(value, _utils) { - return typeof value === "number"; - } -}; -var IntegerSchema = class extends NumberSchema { - expected() { - return "an integer"; - } - validate(value, utils2) { - return utils2.normalizeValidateResult(super.validate(value, utils2), value) === true && isInt(value); - } -}; -var StringSchema = class extends Schema { - expected() { - return "a string"; - } - validate(value) { - return typeof value === "string"; - } -}; -var defaultDescriptor = apiDescriptor; -var defaultUnknownHandler = levenUnknownHandler; -var defaultInvalidHandler = commonInvalidHandler; -var defaultDeprecatedHandler = commonDeprecatedHandler; -var Normalizer = class { - constructor(schemas, opts) { - const { logger = console, loggerPrintWidth = 80, descriptor = defaultDescriptor, unknown = defaultUnknownHandler, invalid = defaultInvalidHandler, deprecated = defaultDeprecatedHandler, missing = () => false, required = () => false, preprocess = (x7) => x7, postprocess = () => VALUE_UNCHANGED } = opts || {}; - this._utils = { - descriptor, - logger: ( - /* c8 ignore next */ - logger || { warn: () => { - } } - ), - loggerPrintWidth, - schemas: recordFromArray(schemas, "name"), - normalizeDefaultResult, - normalizeExpectedResult, - normalizeDeprecatedResult, - normalizeForwardResult, - normalizeRedirectResult, - normalizeValidateResult - }; - this._unknownHandler = unknown; - this._invalidHandler = normalizeInvalidHandler(invalid); - this._deprecatedHandler = deprecated; - this._identifyMissing = (k4, o2) => !(k4 in o2) || missing(k4, o2); - this._identifyRequired = required; - this._preprocess = preprocess; - this._postprocess = postprocess; - this.cleanHistory(); - } - cleanHistory() { - this._hasDeprecationWarned = createAutoChecklist(); - } - normalize(options8) { - const newOptions = {}; - const preprocessed = this._preprocess(options8, this._utils); - const restOptionsArray = [preprocessed]; - const applyNormalization = () => { - while (restOptionsArray.length !== 0) { - const currentOptions = restOptionsArray.shift(); - const transferredOptionsArray = this._applyNormalization(currentOptions, newOptions); - restOptionsArray.push(...transferredOptionsArray); - } - }; - applyNormalization(); - for (const key of Object.keys(this._utils.schemas)) { - const schema2 = this._utils.schemas[key]; - if (!(key in newOptions)) { - const defaultResult = normalizeDefaultResult(schema2.default(this._utils)); - if ("value" in defaultResult) { - restOptionsArray.push({ [key]: defaultResult.value }); - } - } - } - applyNormalization(); - for (const key of Object.keys(this._utils.schemas)) { - if (!(key in newOptions)) { - continue; - } - const schema2 = this._utils.schemas[key]; - const value = newOptions[key]; - const newValue = schema2.postprocess(value, this._utils); - if (newValue === VALUE_UNCHANGED) { - continue; - } - this._applyValidation(newValue, key, schema2); - newOptions[key] = newValue; - } - this._applyPostprocess(newOptions); - this._applyRequiredCheck(newOptions); - return newOptions; - } - _applyNormalization(options8, newOptions) { - const transferredOptionsArray = []; - const { knownKeys, unknownKeys } = this._partitionOptionKeys(options8); - for (const key of knownKeys) { - const schema2 = this._utils.schemas[key]; - const value = schema2.preprocess(options8[key], this._utils); - this._applyValidation(value, key, schema2); - const appendTransferredOptions = ({ from, to: to3 }) => { - transferredOptionsArray.push(typeof to3 === "string" ? { [to3]: from } : { [to3.key]: to3.value }); - }; - const warnDeprecated = ({ value: currentValue, redirectTo }) => { - const deprecatedResult = normalizeDeprecatedResult( - schema2.deprecated(currentValue, this._utils), - value, - /* doNotNormalizeTrue */ - true - ); - if (deprecatedResult === false) { - return; - } - if (deprecatedResult === true) { - if (!this._hasDeprecationWarned(key)) { - this._utils.logger.warn(this._deprecatedHandler(key, redirectTo, this._utils)); - } - } else { - for (const { value: deprecatedValue } of deprecatedResult) { - const pair = { key, value: deprecatedValue }; - if (!this._hasDeprecationWarned(pair)) { - const redirectToPair = typeof redirectTo === "string" ? { key: redirectTo, value: deprecatedValue } : redirectTo; - this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils)); - } - } - } - }; - const forwardResult = normalizeForwardResult(schema2.forward(value, this._utils), value); - forwardResult.forEach(appendTransferredOptions); - const redirectResult = normalizeRedirectResult(schema2.redirect(value, this._utils), value); - redirectResult.redirect.forEach(appendTransferredOptions); - if ("remain" in redirectResult) { - const remainingValue = redirectResult.remain; - newOptions[key] = key in newOptions ? schema2.overlap(newOptions[key], remainingValue, this._utils) : remainingValue; - warnDeprecated({ value: remainingValue }); - } - for (const { from, to: to3 } of redirectResult.redirect) { - warnDeprecated({ value: from, redirectTo: to3 }); - } - } - for (const key of unknownKeys) { - const value = options8[key]; - this._applyUnknownHandler(key, value, newOptions, (knownResultKey, knownResultValue) => { - transferredOptionsArray.push({ [knownResultKey]: knownResultValue }); - }); - } - return transferredOptionsArray; - } - _applyRequiredCheck(options8) { - for (const key of Object.keys(this._utils.schemas)) { - if (this._identifyMissing(key, options8)) { - if (this._identifyRequired(key)) { - throw this._invalidHandler(key, VALUE_NOT_EXIST, this._utils); - } - } - } - } - _partitionOptionKeys(options8) { - const [knownKeys, unknownKeys] = partition(Object.keys(options8).filter((key) => !this._identifyMissing(key, options8)), (key) => key in this._utils.schemas); - return { knownKeys, unknownKeys }; - } - _applyValidation(value, key, schema2) { - const validateResult = normalizeValidateResult(schema2.validate(value, this._utils), value); - if (validateResult !== true) { - throw this._invalidHandler(key, validateResult.value, this._utils); - } - } - _applyUnknownHandler(key, value, newOptions, knownResultHandler) { - const unknownResult = this._unknownHandler(key, value, this._utils); - if (!unknownResult) { - return; - } - for (const resultKey of Object.keys(unknownResult)) { - if (this._identifyMissing(resultKey, unknownResult)) { - continue; - } - const resultValue = unknownResult[resultKey]; - if (resultKey in this._utils.schemas) { - knownResultHandler(resultKey, resultValue); - } else { - newOptions[resultKey] = resultValue; - } - } - } - _applyPostprocess(options8) { - const postprocessed = this._postprocess(options8, this._utils); - if (postprocessed === VALUE_UNCHANGED) { - return; - } - if (postprocessed.delete) { - for (const deleteKey of postprocessed.delete) { - delete options8[deleteKey]; - } - } - if (postprocessed.override) { - const { knownKeys, unknownKeys } = this._partitionOptionKeys(postprocessed.override); - for (const key of knownKeys) { - const value = postprocessed.override[key]; - this._applyValidation(value, key, this._utils.schemas[key]); - options8[key] = value; - } - for (const key of unknownKeys) { - const value = postprocessed.override[key]; - this._applyUnknownHandler(key, value, options8, (knownResultKey, knownResultValue) => { - const schema2 = this._utils.schemas[knownResultKey]; - this._applyValidation(knownResultValue, knownResultKey, schema2); - options8[knownResultKey] = knownResultValue; - }); - } - } - } -}; -var import_fast_glob = __toESM3(require_out4(), 1); -var stringReplaceAll22 = (isOptionalObject, original, pattern, replacement) => { - if (isOptionalObject && (original === void 0 || original === null)) { - return; - } - if (original.replaceAll) { - return original.replaceAll(pattern, replacement); - } - if (pattern.global) { - return original.replace(pattern, replacement); - } - return original.split(pattern).join(replacement); -}; -var string_replace_all_default2 = stringReplaceAll22; -var import_diff = __toESM3(require_array2(), 1); -var DOC_TYPE_STRING2 = "string"; -var DOC_TYPE_ARRAY2 = "array"; -var DOC_TYPE_CURSOR2 = "cursor"; -var DOC_TYPE_INDENT2 = "indent"; -var DOC_TYPE_ALIGN2 = "align"; -var DOC_TYPE_TRIM2 = "trim"; -var DOC_TYPE_GROUP2 = "group"; -var DOC_TYPE_FILL2 = "fill"; -var DOC_TYPE_IF_BREAK2 = "if-break"; -var DOC_TYPE_INDENT_IF_BREAK2 = "indent-if-break"; -var DOC_TYPE_LINE_SUFFIX2 = "line-suffix"; -var DOC_TYPE_LINE_SUFFIX_BOUNDARY2 = "line-suffix-boundary"; -var DOC_TYPE_LINE2 = "line"; -var DOC_TYPE_LABEL2 = "label"; -var DOC_TYPE_BREAK_PARENT2 = "break-parent"; -var VALID_OBJECT_DOC_TYPES2 = /* @__PURE__ */ new Set([ - DOC_TYPE_CURSOR2, - DOC_TYPE_INDENT2, - DOC_TYPE_ALIGN2, - DOC_TYPE_TRIM2, - DOC_TYPE_GROUP2, - DOC_TYPE_FILL2, - DOC_TYPE_IF_BREAK2, - DOC_TYPE_INDENT_IF_BREAK2, - DOC_TYPE_LINE_SUFFIX2, - DOC_TYPE_LINE_SUFFIX_BOUNDARY2, - DOC_TYPE_LINE2, - DOC_TYPE_LABEL2, - DOC_TYPE_BREAK_PARENT2 -]); -function getDocType2(doc2) { - if (typeof doc2 === "string") { - return DOC_TYPE_STRING2; - } - if (Array.isArray(doc2)) { - return DOC_TYPE_ARRAY2; - } - if (!doc2) { - return; - } - const { type: type2 } = doc2; - if (VALID_OBJECT_DOC_TYPES2.has(type2)) { - return type2; - } -} -var get_doc_type_default2 = getDocType2; -var disjunctionListFormat2 = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list); -function getDocErrorMessage2(doc2) { - const type2 = doc2 === null ? "null" : typeof doc2; - if (type2 !== "string" && type2 !== "object") { - return `Unexpected doc '${type2}', -Expected it to be 'string' or 'object'.`; - } - if (get_doc_type_default2(doc2)) { - throw new Error("doc is valid."); - } - const objectType = Object.prototype.toString.call(doc2); - if (objectType !== "[object Object]") { - return `Unexpected doc '${objectType}'.`; - } - const EXPECTED_TYPE_VALUES = disjunctionListFormat2( - [...VALID_OBJECT_DOC_TYPES2].map((type22) => `'${type22}'`) - ); - return `Unexpected doc.type '${doc2.type}'. -Expected it to be ${EXPECTED_TYPE_VALUES}.`; -} -var InvalidDocError2 = class extends Error { - name = "InvalidDocError"; - constructor(doc2) { - super(getDocErrorMessage2(doc2)); - this.doc = doc2; - } -}; -var invalid_doc_error_default2 = InvalidDocError2; -var traverseDocOnExitStackMarker2 = {}; -function traverseDoc2(doc2, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc2]; - while (docsStack.length > 0) { - const doc3 = docsStack.pop(); - if (doc3 === traverseDocOnExitStackMarker2) { - onExit(docsStack.pop()); - continue; - } - if (onExit) { - docsStack.push(doc3, traverseDocOnExitStackMarker2); - } - const docType = get_doc_type_default2(doc3); - if (!docType) { - throw new invalid_doc_error_default2(doc3); - } - if ((onEnter == null ? void 0 : onEnter(doc3)) === false) { - continue; - } - switch (docType) { - case DOC_TYPE_ARRAY2: - case DOC_TYPE_FILL2: { - const parts = docType === DOC_TYPE_ARRAY2 ? doc3 : doc3.parts; - for (let ic3 = parts.length, i = ic3 - 1; i >= 0; --i) { - docsStack.push(parts[i]); - } - break; - } - case DOC_TYPE_IF_BREAK2: - docsStack.push(doc3.flatContents, doc3.breakContents); - break; - case DOC_TYPE_GROUP2: - if (shouldTraverseConditionalGroups && doc3.expandedStates) { - for (let ic3 = doc3.expandedStates.length, i = ic3 - 1; i >= 0; --i) { - docsStack.push(doc3.expandedStates[i]); - } - } else { - docsStack.push(doc3.contents); - } - break; - case DOC_TYPE_ALIGN2: - case DOC_TYPE_INDENT2: - case DOC_TYPE_INDENT_IF_BREAK2: - case DOC_TYPE_LABEL2: - case DOC_TYPE_LINE_SUFFIX2: - docsStack.push(doc3.contents); - break; - case DOC_TYPE_STRING2: - case DOC_TYPE_CURSOR2: - case DOC_TYPE_TRIM2: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - case DOC_TYPE_LINE2: - case DOC_TYPE_BREAK_PARENT2: - break; - default: - throw new invalid_doc_error_default2(doc3); - } - } -} -var traverse_doc_default2 = traverseDoc2; -var noop2 = () => { -}; -var assertDoc2 = true ? noop2 : function(doc2) { - traverse_doc_default2(doc2, (doc3) => { - if (checked.has(doc3)) { - return false; - } - if (typeof doc3 !== "string") { - checked.add(doc3); - } - }); -}; -var assertDocArray2 = true ? noop2 : function(docs, optional = false) { - if (optional && !docs) { - return; - } - if (!Array.isArray(docs)) { - throw new TypeError("Unexpected doc array."); - } - for (const doc2 of docs) { - assertDoc2(doc2); - } -}; -function indent2(contents) { - assertDoc2(contents); - return { type: DOC_TYPE_INDENT2, contents }; -} -function align2(widthOrString, contents) { - assertDoc2(contents); - return { type: DOC_TYPE_ALIGN2, contents, n: widthOrString }; -} -function fill2(parts) { - assertDocArray2(parts); - return { type: DOC_TYPE_FILL2, parts }; -} -function lineSuffix2(contents) { - assertDoc2(contents); - return { type: DOC_TYPE_LINE_SUFFIX2, contents }; -} -var breakParent2 = { type: DOC_TYPE_BREAK_PARENT2 }; -var hardlineWithoutBreakParent2 = { type: DOC_TYPE_LINE2, hard: true }; -var line2 = { type: DOC_TYPE_LINE2 }; -var hardline2 = [hardlineWithoutBreakParent2, breakParent2]; -var cursor2 = { type: DOC_TYPE_CURSOR2 }; -function addAlignmentToDoc2(doc2, size, tabWidth) { - assertDoc2(doc2); - let aligned = doc2; - if (size > 0) { - for (let i = 0; i < Math.floor(size / tabWidth); ++i) { - aligned = indent2(aligned); - } - aligned = align2(size % tabWidth, aligned); - aligned = align2(Number.NEGATIVE_INFINITY, aligned); - } - return aligned; -} -var at6 = (isOptionalObject, object, index) => { - if (isOptionalObject && (object === void 0 || object === null)) { - return; - } - if (Array.isArray(object) || typeof object === "string") { - return object[index < 0 ? object.length + index : index]; - } - return object.at(index); -}; -var at_default2 = at6; -function guessEndOfLine(text) { - const index = text.indexOf("\r"); - if (index >= 0) { - return text.charAt(index + 1) === "\n" ? "crlf" : "cr"; - } - return "lf"; -} -function convertEndOfLineToChars2(value) { - switch (value) { - case "cr": - return "\r"; - case "crlf": - return "\r\n"; - default: - return "\n"; - } -} -function countEndOfLineChars(text, eol) { - let regex; - switch (eol) { - case "\n": - regex = /\n/g; - break; - case "\r": - regex = /\r/g; - break; - case "\r\n": - regex = /\r\n/g; - break; - default: - throw new Error(`Unexpected "eol" ${JSON.stringify(eol)}.`); - } - const endOfLines = text.match(regex); - return endOfLines ? endOfLines.length : 0; -} -function normalizeEndOfLine(text) { - return string_replace_all_default2( - /* isOptionalObject*/ - false, - text, - /\r\n?/g, - "\n" - ); -} -var emoji_regex_default2 = () => { - return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC08\uDC26](?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g; -}; -var eastasianwidth_default2 = { - eastAsianWidth(character) { - var x7 = character.charCodeAt(0); - var y5 = character.length == 2 ? character.charCodeAt(1) : 0; - var codePoint = x7; - if (55296 <= x7 && x7 <= 56319 && 56320 <= y5 && y5 <= 57343) { - x7 &= 1023; - y5 &= 1023; - codePoint = x7 << 10 | y5; - codePoint += 65536; - } - if (12288 == codePoint || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510) { - return "F"; - } - if (4352 <= codePoint && codePoint <= 4447 || 4515 <= codePoint && codePoint <= 4519 || 4602 <= codePoint && codePoint <= 4607 || 9001 <= codePoint && codePoint <= 9002 || 11904 <= codePoint && codePoint <= 11929 || 11931 <= codePoint && codePoint <= 12019 || 12032 <= codePoint && codePoint <= 12245 || 12272 <= codePoint && codePoint <= 12283 || 12289 <= codePoint && codePoint <= 12350 || 12353 <= codePoint && codePoint <= 12438 || 12441 <= codePoint && codePoint <= 12543 || 12549 <= codePoint && codePoint <= 12589 || 12593 <= codePoint && codePoint <= 12686 || 12688 <= codePoint && codePoint <= 12730 || 12736 <= codePoint && codePoint <= 12771 || 12784 <= codePoint && codePoint <= 12830 || 12832 <= codePoint && codePoint <= 12871 || 12880 <= codePoint && codePoint <= 13054 || 13056 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42124 || 42128 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 55216 <= codePoint && codePoint <= 55238 || 55243 <= codePoint && codePoint <= 55291 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65106 || 65108 <= codePoint && codePoint <= 65126 || 65128 <= codePoint && codePoint <= 65131 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127490 || 127504 <= codePoint && codePoint <= 127546 || 127552 <= codePoint && codePoint <= 127560 || 127568 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 194367 || 177984 <= codePoint && codePoint <= 196605 || 196608 <= codePoint && codePoint <= 262141) { - return "W"; - } - return "N"; - } -}; -var notAsciiRegex2 = /[^\x20-\x7F]/; -function getStringWidth2(text) { - if (!text) { - return 0; - } - if (!notAsciiRegex2.test(text)) { - return text.length; - } - text = text.replace(emoji_regex_default2(), " "); - let width = 0; - for (const character of text) { - const codePoint = character.codePointAt(0); - if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { - continue; - } - if (codePoint >= 768 && codePoint <= 879) { - continue; - } - const code = eastasianwidth_default2.eastAsianWidth(character); - width += code === "F" || code === "W" ? 2 : 1; - } - return width; -} -var get_string_width_default2 = getStringWidth2; -var getDocParts2 = (doc2) => { - if (Array.isArray(doc2)) { - return doc2; - } - if (doc2.type !== DOC_TYPE_FILL2) { - throw new Error(`Expect doc to be 'array' or '${DOC_TYPE_FILL2}'.`); - } - return doc2.parts; -}; -function mapDoc2(doc2, cb) { - if (typeof doc2 === "string") { - return cb(doc2); - } - const mapped = /* @__PURE__ */ new Map(); - return rec(doc2); - function rec(doc3) { - if (mapped.has(doc3)) { - return mapped.get(doc3); - } - const result = process5(doc3); - mapped.set(doc3, result); - return result; - } - function process5(doc3) { - switch (get_doc_type_default2(doc3)) { - case DOC_TYPE_ARRAY2: - return cb(doc3.map(rec)); - case DOC_TYPE_FILL2: - return cb({ - ...doc3, - parts: doc3.parts.map(rec) - }); - case DOC_TYPE_IF_BREAK2: - return cb({ - ...doc3, - breakContents: rec(doc3.breakContents), - flatContents: rec(doc3.flatContents) - }); - case DOC_TYPE_GROUP2: { - let { - expandedStates, - contents - } = doc3; - if (expandedStates) { - expandedStates = expandedStates.map(rec); - contents = expandedStates[0]; - } else { - contents = rec(contents); - } - return cb({ - ...doc3, - contents, - expandedStates - }); - } - case DOC_TYPE_ALIGN2: - case DOC_TYPE_INDENT2: - case DOC_TYPE_INDENT_IF_BREAK2: - case DOC_TYPE_LABEL2: - case DOC_TYPE_LINE_SUFFIX2: - return cb({ - ...doc3, - contents: rec(doc3.contents) - }); - case DOC_TYPE_STRING2: - case DOC_TYPE_CURSOR2: - case DOC_TYPE_TRIM2: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - case DOC_TYPE_LINE2: - case DOC_TYPE_BREAK_PARENT2: - return cb(doc3); - default: - throw new invalid_doc_error_default2(doc3); - } - } -} -function breakParentGroup2(groupStack) { - if (groupStack.length > 0) { - const parentGroup = at_default2( - /* isOptionalObject*/ - false, - groupStack, - -1 - ); - if (!parentGroup.expandedStates && !parentGroup.break) { - parentGroup.break = "propagated"; - } - } - return null; -} -function propagateBreaks2(doc2) { - const alreadyVisitedSet = /* @__PURE__ */ new Set(); - const groupStack = []; - function propagateBreaksOnEnterFn(doc3) { - if (doc3.type === DOC_TYPE_BREAK_PARENT2) { - breakParentGroup2(groupStack); - } - if (doc3.type === DOC_TYPE_GROUP2) { - groupStack.push(doc3); - if (alreadyVisitedSet.has(doc3)) { - return false; - } - alreadyVisitedSet.add(doc3); - } - } - function propagateBreaksOnExitFn(doc3) { - if (doc3.type === DOC_TYPE_GROUP2) { - const group2 = groupStack.pop(); - if (group2.break) { - breakParentGroup2(groupStack); - } - } - } - traverse_doc_default2( - doc2, - propagateBreaksOnEnterFn, - propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true - ); -} -function stripTrailingHardlineFromParts2(parts) { - parts = [...parts]; - while (parts.length >= 2 && at_default2( - /* isOptionalObject*/ - false, - parts, - -2 - ).type === DOC_TYPE_LINE2 && at_default2( - /* isOptionalObject*/ - false, - parts, - -1 - ).type === DOC_TYPE_BREAK_PARENT2) { - parts.length -= 2; - } - if (parts.length > 0) { - const lastPart = stripTrailingHardlineFromDoc2(at_default2( - /* isOptionalObject*/ - false, - parts, - -1 - )); - parts[parts.length - 1] = lastPart; - } - return parts; -} -function stripTrailingHardlineFromDoc2(doc2) { - switch (get_doc_type_default2(doc2)) { - case DOC_TYPE_ALIGN2: - case DOC_TYPE_INDENT2: - case DOC_TYPE_INDENT_IF_BREAK2: - case DOC_TYPE_GROUP2: - case DOC_TYPE_LINE_SUFFIX2: - case DOC_TYPE_LABEL2: { - const contents = stripTrailingHardlineFromDoc2(doc2.contents); - return { - ...doc2, - contents - }; - } - case DOC_TYPE_IF_BREAK2: - return { - ...doc2, - breakContents: stripTrailingHardlineFromDoc2(doc2.breakContents), - flatContents: stripTrailingHardlineFromDoc2(doc2.flatContents) - }; - case DOC_TYPE_FILL2: - return { - ...doc2, - parts: stripTrailingHardlineFromParts2(doc2.parts) - }; - case DOC_TYPE_ARRAY2: - return stripTrailingHardlineFromParts2(doc2); - case DOC_TYPE_STRING2: - return doc2.replace(/[\n\r]*$/, ""); - case DOC_TYPE_CURSOR2: - case DOC_TYPE_TRIM2: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - case DOC_TYPE_LINE2: - case DOC_TYPE_BREAK_PARENT2: - break; - default: - throw new invalid_doc_error_default2(doc2); - } - return doc2; -} -function stripTrailingHardline2(doc2) { - return stripTrailingHardlineFromDoc2(cleanDoc2(doc2)); -} -function cleanDocFn2(doc2) { - switch (get_doc_type_default2(doc2)) { - case DOC_TYPE_FILL2: - if (doc2.parts.every((part) => part === "")) { - return ""; - } - break; - case DOC_TYPE_GROUP2: - if (!doc2.contents && !doc2.id && !doc2.break && !doc2.expandedStates) { - return ""; - } - if (doc2.contents.type === DOC_TYPE_GROUP2 && doc2.contents.id === doc2.id && doc2.contents.break === doc2.break && doc2.contents.expandedStates === doc2.expandedStates) { - return doc2.contents; - } - break; - case DOC_TYPE_ALIGN2: - case DOC_TYPE_INDENT2: - case DOC_TYPE_INDENT_IF_BREAK2: - case DOC_TYPE_LINE_SUFFIX2: - if (!doc2.contents) { - return ""; - } - break; - case DOC_TYPE_IF_BREAK2: - if (!doc2.flatContents && !doc2.breakContents) { - return ""; - } - break; - case DOC_TYPE_ARRAY2: { - const parts = []; - for (const part of doc2) { - if (!part) { - continue; - } - const [currentPart, ...restParts] = Array.isArray(part) ? part : [part]; - if (typeof currentPart === "string" && typeof at_default2( - /* isOptionalObject*/ - false, - parts, - -1 - ) === "string") { - parts[parts.length - 1] += currentPart; - } else { - parts.push(currentPart); - } - parts.push(...restParts); - } - if (parts.length === 0) { - return ""; - } - if (parts.length === 1) { - return parts[0]; - } - return parts; - } - case DOC_TYPE_STRING2: - case DOC_TYPE_CURSOR2: - case DOC_TYPE_TRIM2: - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - case DOC_TYPE_LINE2: - case DOC_TYPE_LABEL2: - case DOC_TYPE_BREAK_PARENT2: - break; - default: - throw new invalid_doc_error_default2(doc2); - } - return doc2; -} -function cleanDoc2(doc2) { - return mapDoc2(doc2, (currentDoc) => cleanDocFn2(currentDoc)); -} -function inheritLabel(doc2, fn6) { - return doc2.type === DOC_TYPE_LABEL2 ? { - ...doc2, - contents: fn6(doc2.contents) - } : fn6(doc2); -} -var MODE_BREAK2 = Symbol("MODE_BREAK"); -var MODE_FLAT2 = Symbol("MODE_FLAT"); -var CURSOR_PLACEHOLDER2 = Symbol("cursor"); -function rootIndent2() { - return { - value: "", - length: 0, - queue: [] - }; -} -function makeIndent2(ind, options8) { - return generateInd2(ind, { - type: "indent" - }, options8); -} -function makeAlign2(indent22, widthOrDoc, options8) { - if (widthOrDoc === Number.NEGATIVE_INFINITY) { - return indent22.root || rootIndent2(); - } - if (widthOrDoc < 0) { - return generateInd2(indent22, { - type: "dedent" - }, options8); - } - if (!widthOrDoc) { - return indent22; - } - if (widthOrDoc.type === "root") { - return { - ...indent22, - root: indent22 - }; - } - const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; - return generateInd2(indent22, { - type: alignType, - n: widthOrDoc - }, options8); -} -function generateInd2(ind, newPart, options8) { - const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; - let value = ""; - let length = 0; - let lastTabs = 0; - let lastSpaces = 0; - for (const part of queue) { - switch (part.type) { - case "indent": - flush(); - if (options8.useTabs) { - addTabs(1); - } else { - addSpaces(options8.tabWidth); - } - break; - case "stringAlign": - flush(); - value += part.n; - length += part.n.length; - break; - case "numberAlign": - lastTabs += 1; - lastSpaces += part.n; - break; - default: - throw new Error(`Unexpected type '${part.type}'`); - } - } - flushSpaces(); - return { - ...ind, - value, - length, - queue - }; - function addTabs(count) { - value += " ".repeat(count); - length += options8.tabWidth * count; - } - function addSpaces(count) { - value += " ".repeat(count); - length += count; - } - function flush() { - if (options8.useTabs) { - flushTabs(); - } else { - flushSpaces(); - } - } - function flushTabs() { - if (lastTabs > 0) { - addTabs(lastTabs); - } - resetLast(); - } - function flushSpaces() { - if (lastSpaces > 0) { - addSpaces(lastSpaces); - } - resetLast(); - } - function resetLast() { - lastTabs = 0; - lastSpaces = 0; - } -} -function trim3(out) { - let trimCount = 0; - let cursorCount = 0; - let outIndex = out.length; - outer: - while (outIndex--) { - const last = out[outIndex]; - if (last === CURSOR_PLACEHOLDER2) { - cursorCount++; - continue; - } - if (false) { - throw new Error(`Unexpected value in trim: '${typeof last}'`); - } - for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) { - const char = last[charIndex]; - if (char === " " || char === " ") { - trimCount++; - } else { - out[outIndex] = last.slice(0, charIndex + 1); - break outer; - } - } - } - if (trimCount > 0 || cursorCount > 0) { - out.length = outIndex + 1; - while (cursorCount-- > 0) { - out.push(CURSOR_PLACEHOLDER2); - } - } - return trimCount; -} -function fits2(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) { - if (width === Number.POSITIVE_INFINITY) { - return true; - } - let restIdx = restCommands.length; - const cmds = [next]; - const out = []; - while (width >= 0) { - if (cmds.length === 0) { - if (restIdx === 0) { - return true; - } - cmds.push(restCommands[--restIdx]); - continue; - } - const { - mode, - doc: doc2 - } = cmds.pop(); - switch (get_doc_type_default2(doc2)) { - case DOC_TYPE_STRING2: - out.push(doc2); - width -= get_string_width_default2(doc2); - break; - case DOC_TYPE_ARRAY2: - case DOC_TYPE_FILL2: { - const parts = getDocParts2(doc2); - for (let i = parts.length - 1; i >= 0; i--) { - cmds.push({ - mode, - doc: parts[i] - }); - } - break; - } - case DOC_TYPE_INDENT2: - case DOC_TYPE_ALIGN2: - case DOC_TYPE_INDENT_IF_BREAK2: - case DOC_TYPE_LABEL2: - cmds.push({ - mode, - doc: doc2.contents - }); - break; - case DOC_TYPE_TRIM2: - width += trim3(out); - break; - case DOC_TYPE_GROUP2: { - if (mustBeFlat && doc2.break) { - return false; - } - const groupMode = doc2.break ? MODE_BREAK2 : mode; - const contents = doc2.expandedStates && groupMode === MODE_BREAK2 ? at_default2( - /* isOptionalObject*/ - false, - doc2.expandedStates, - -1 - ) : doc2.contents; - cmds.push({ - mode: groupMode, - doc: contents - }); - break; - } - case DOC_TYPE_IF_BREAK2: { - const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] || MODE_FLAT2 : mode; - const contents = groupMode === MODE_BREAK2 ? doc2.breakContents : doc2.flatContents; - if (contents) { - cmds.push({ - mode, - doc: contents - }); - } - break; - } - case DOC_TYPE_LINE2: - if (mode === MODE_BREAK2 || doc2.hard) { - return true; - } - if (!doc2.soft) { - out.push(" "); - width--; - } - break; - case DOC_TYPE_LINE_SUFFIX2: - hasLineSuffix = true; - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - if (hasLineSuffix) { - return false; - } - break; - } - } - return false; -} -function printDocToString2(doc2, options8) { - const groupModeMap = {}; - const width = options8.printWidth; - const newLine = convertEndOfLineToChars2(options8.endOfLine); - let pos = 0; - const cmds = [{ - ind: rootIndent2(), - mode: MODE_BREAK2, - doc: doc2 - }]; - const out = []; - let shouldRemeasure = false; - const lineSuffix22 = []; - let printedCursorCount = 0; - propagateBreaks2(doc2); - while (cmds.length > 0) { - const { - ind, - mode, - doc: doc3 - } = cmds.pop(); - switch (get_doc_type_default2(doc3)) { - case DOC_TYPE_STRING2: { - const formatted = newLine !== "\n" ? string_replace_all_default2( - /* isOptionalObject*/ - false, - doc3, - "\n", - newLine - ) : doc3; - out.push(formatted); - if (cmds.length > 0) { - pos += get_string_width_default2(formatted); - } - break; - } - case DOC_TYPE_ARRAY2: - for (let i = doc3.length - 1; i >= 0; i--) { - cmds.push({ - ind, - mode, - doc: doc3[i] - }); - } - break; - case DOC_TYPE_CURSOR2: - if (printedCursorCount >= 2) { - throw new Error("There are too many 'cursor' in doc."); - } - out.push(CURSOR_PLACEHOLDER2); - printedCursorCount++; - break; - case DOC_TYPE_INDENT2: - cmds.push({ - ind: makeIndent2(ind, options8), - mode, - doc: doc3.contents - }); - break; - case DOC_TYPE_ALIGN2: - cmds.push({ - ind: makeAlign2(ind, doc3.n, options8), - mode, - doc: doc3.contents - }); - break; - case DOC_TYPE_TRIM2: - pos -= trim3(out); - break; - case DOC_TYPE_GROUP2: - switch (mode) { - case MODE_FLAT2: - if (!shouldRemeasure) { - cmds.push({ - ind, - mode: doc3.break ? MODE_BREAK2 : MODE_FLAT2, - doc: doc3.contents - }); - break; - } - case MODE_BREAK2: { - shouldRemeasure = false; - const next = { - ind, - mode: MODE_FLAT2, - doc: doc3.contents - }; - const rem = width - pos; - const hasLineSuffix = lineSuffix22.length > 0; - if (!doc3.break && fits2(next, cmds, rem, hasLineSuffix, groupModeMap)) { - cmds.push(next); - } else { - if (doc3.expandedStates) { - const mostExpanded = at_default2( - /* isOptionalObject*/ - false, - doc3.expandedStates, - -1 - ); - if (doc3.break) { - cmds.push({ - ind, - mode: MODE_BREAK2, - doc: mostExpanded - }); - break; - } else { - for (let i = 1; i < doc3.expandedStates.length + 1; i++) { - if (i >= doc3.expandedStates.length) { - cmds.push({ - ind, - mode: MODE_BREAK2, - doc: mostExpanded - }); - break; - } else { - const state = doc3.expandedStates[i]; - const cmd = { - ind, - mode: MODE_FLAT2, - doc: state - }; - if (fits2(cmd, cmds, rem, hasLineSuffix, groupModeMap)) { - cmds.push(cmd); - break; - } - } - } - } - } else { - cmds.push({ - ind, - mode: MODE_BREAK2, - doc: doc3.contents - }); - } - } - break; - } - } - if (doc3.id) { - groupModeMap[doc3.id] = at_default2( - /* isOptionalObject*/ - false, - cmds, - -1 - ).mode; - } - break; - case DOC_TYPE_FILL2: { - const rem = width - pos; - const { - parts - } = doc3; - if (parts.length === 0) { - break; - } - const [content, whitespace] = parts; - const contentFlatCmd = { - ind, - mode: MODE_FLAT2, - doc: content - }; - const contentBreakCmd = { - ind, - mode: MODE_BREAK2, - doc: content - }; - const contentFits = fits2(contentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true); - if (parts.length === 1) { - if (contentFits) { - cmds.push(contentFlatCmd); - } else { - cmds.push(contentBreakCmd); - } - break; - } - const whitespaceFlatCmd = { - ind, - mode: MODE_FLAT2, - doc: whitespace - }; - const whitespaceBreakCmd = { - ind, - mode: MODE_BREAK2, - doc: whitespace - }; - if (parts.length === 2) { - if (contentFits) { - cmds.push(whitespaceFlatCmd, contentFlatCmd); - } else { - cmds.push(whitespaceBreakCmd, contentBreakCmd); - } - break; - } - parts.splice(0, 2); - const remainingCmd = { - ind, - mode, - doc: fill2(parts) - }; - const secondContent = parts[0]; - const firstAndSecondContentFlatCmd = { - ind, - mode: MODE_FLAT2, - doc: [content, whitespace, secondContent] - }; - const firstAndSecondContentFits = fits2(firstAndSecondContentFlatCmd, [], rem, lineSuffix22.length > 0, groupModeMap, true); - if (firstAndSecondContentFits) { - cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); - } else if (contentFits) { - cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); - } else { - cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); - } - break; - } - case DOC_TYPE_IF_BREAK2: - case DOC_TYPE_INDENT_IF_BREAK2: { - const groupMode = doc3.groupId ? groupModeMap[doc3.groupId] : mode; - if (groupMode === MODE_BREAK2) { - const breakContents = doc3.type === DOC_TYPE_IF_BREAK2 ? doc3.breakContents : doc3.negate ? doc3.contents : indent2(doc3.contents); - if (breakContents) { - cmds.push({ - ind, - mode, - doc: breakContents - }); - } - } - if (groupMode === MODE_FLAT2) { - const flatContents = doc3.type === DOC_TYPE_IF_BREAK2 ? doc3.flatContents : doc3.negate ? indent2(doc3.contents) : doc3.contents; - if (flatContents) { - cmds.push({ - ind, - mode, - doc: flatContents - }); - } - } - break; - } - case DOC_TYPE_LINE_SUFFIX2: - lineSuffix22.push({ - ind, - mode, - doc: doc3.contents - }); - break; - case DOC_TYPE_LINE_SUFFIX_BOUNDARY2: - if (lineSuffix22.length > 0) { - cmds.push({ - ind, - mode, - doc: hardlineWithoutBreakParent2 - }); - } - break; - case DOC_TYPE_LINE2: - switch (mode) { - case MODE_FLAT2: - if (!doc3.hard) { - if (!doc3.soft) { - out.push(" "); - pos += 1; - } - break; - } else { - shouldRemeasure = true; - } - case MODE_BREAK2: - if (lineSuffix22.length > 0) { - cmds.push({ - ind, - mode, - doc: doc3 - }, ...lineSuffix22.reverse()); - lineSuffix22.length = 0; - break; - } - if (doc3.literal) { - if (ind.root) { - out.push(newLine, ind.root.value); - pos = ind.root.length; - } else { - out.push(newLine); - pos = 0; - } - } else { - pos -= trim3(out); - out.push(newLine + ind.value); - pos = ind.length; - } - break; - } - break; - case DOC_TYPE_LABEL2: - cmds.push({ - ind, - mode, - doc: doc3.contents - }); - break; - case DOC_TYPE_BREAK_PARENT2: - break; - default: - throw new invalid_doc_error_default2(doc3); - } - if (cmds.length === 0 && lineSuffix22.length > 0) { - cmds.push(...lineSuffix22.reverse()); - lineSuffix22.length = 0; - } - } - const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER2); - if (cursorPlaceholderIndex !== -1) { - const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER2, cursorPlaceholderIndex + 1); - const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); - const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); - const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); - return { - formatted: beforeCursor + aroundCursor + afterCursor, - cursorNodeStart: beforeCursor.length, - cursorNodeText: aroundCursor - }; - } - return { - formatted: out.join("") - }; -} -function flattenDoc(doc2) { - var _a3; - if (!doc2) { - return ""; - } - if (Array.isArray(doc2)) { - const res = []; - for (const part of doc2) { - if (Array.isArray(part)) { - res.push(...flattenDoc(part)); - } else { - const flattened = flattenDoc(part); - if (flattened !== "") { - res.push(flattened); - } - } - } - return res; - } - if (doc2.type === DOC_TYPE_IF_BREAK2) { - return { - ...doc2, - breakContents: flattenDoc(doc2.breakContents), - flatContents: flattenDoc(doc2.flatContents) - }; - } - if (doc2.type === DOC_TYPE_GROUP2) { - return { - ...doc2, - contents: flattenDoc(doc2.contents), - expandedStates: (_a3 = doc2.expandedStates) == null ? void 0 : _a3.map(flattenDoc) - }; - } - if (doc2.type === DOC_TYPE_FILL2) { - return { type: "fill", parts: doc2.parts.map(flattenDoc) }; - } - if (doc2.contents) { - return { ...doc2, contents: flattenDoc(doc2.contents) }; - } - return doc2; -} -function printDocToDebug(doc2) { - const printedSymbols = /* @__PURE__ */ Object.create(null); - const usedKeysForSymbols = /* @__PURE__ */ new Set(); - return printDoc(flattenDoc(doc2)); - function printDoc(doc3, index, parentParts) { - var _a3, _b; - if (typeof doc3 === "string") { - return JSON.stringify(doc3); - } - if (Array.isArray(doc3)) { - const printed = doc3.map(printDoc).filter(Boolean); - return printed.length === 1 ? printed[0] : `[${printed.join(", ")}]`; - } - if (doc3.type === DOC_TYPE_LINE2) { - const withBreakParent = ((_a3 = parentParts == null ? void 0 : parentParts[index + 1]) == null ? void 0 : _a3.type) === DOC_TYPE_BREAK_PARENT2; - if (doc3.literal) { - return withBreakParent ? "literalline" : "literallineWithoutBreakParent"; - } - if (doc3.hard) { - return withBreakParent ? "hardline" : "hardlineWithoutBreakParent"; - } - if (doc3.soft) { - return "softline"; - } - return "line"; - } - if (doc3.type === DOC_TYPE_BREAK_PARENT2) { - const afterHardline = ((_b = parentParts == null ? void 0 : parentParts[index - 1]) == null ? void 0 : _b.type) === DOC_TYPE_LINE2 && parentParts[index - 1].hard; - return afterHardline ? void 0 : "breakParent"; - } - if (doc3.type === DOC_TYPE_TRIM2) { - return "trim"; - } - if (doc3.type === DOC_TYPE_INDENT2) { - return "indent(" + printDoc(doc3.contents) + ")"; - } - if (doc3.type === DOC_TYPE_ALIGN2) { - return doc3.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + printDoc(doc3.contents) + ")" : doc3.n < 0 ? "dedent(" + printDoc(doc3.contents) + ")" : doc3.n.type === "root" ? "markAsRoot(" + printDoc(doc3.contents) + ")" : "align(" + JSON.stringify(doc3.n) + ", " + printDoc(doc3.contents) + ")"; - } - if (doc3.type === DOC_TYPE_IF_BREAK2) { - return "ifBreak(" + printDoc(doc3.breakContents) + (doc3.flatContents ? ", " + printDoc(doc3.flatContents) : "") + (doc3.groupId ? (!doc3.flatContents ? ', ""' : "") + `, { groupId: ${printGroupId(doc3.groupId)} }` : "") + ")"; - } - if (doc3.type === DOC_TYPE_INDENT_IF_BREAK2) { - const optionsParts = []; - if (doc3.negate) { - optionsParts.push("negate: true"); - } - if (doc3.groupId) { - optionsParts.push(`groupId: ${printGroupId(doc3.groupId)}`); - } - const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : ""; - return `indentIfBreak(${printDoc(doc3.contents)}${options8})`; - } - if (doc3.type === DOC_TYPE_GROUP2) { - const optionsParts = []; - if (doc3.break && doc3.break !== "propagated") { - optionsParts.push("shouldBreak: true"); - } - if (doc3.id) { - optionsParts.push(`id: ${printGroupId(doc3.id)}`); - } - const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : ""; - if (doc3.expandedStates) { - return `conditionalGroup([${doc3.expandedStates.map((part) => printDoc(part)).join(",")}]${options8})`; - } - return `group(${printDoc(doc3.contents)}${options8})`; - } - if (doc3.type === DOC_TYPE_FILL2) { - return `fill([${doc3.parts.map((part) => printDoc(part)).join(", ")}])`; - } - if (doc3.type === DOC_TYPE_LINE_SUFFIX2) { - return "lineSuffix(" + printDoc(doc3.contents) + ")"; - } - if (doc3.type === DOC_TYPE_LINE_SUFFIX_BOUNDARY2) { - return "lineSuffixBoundary"; - } - if (doc3.type === DOC_TYPE_LABEL2) { - return `label(${JSON.stringify(doc3.label)}, ${printDoc(doc3.contents)})`; - } - throw new Error("Unknown doc type " + doc3.type); - } - function printGroupId(id2) { - if (typeof id2 !== "symbol") { - return JSON.stringify(String(id2)); - } - if (id2 in printedSymbols) { - return printedSymbols[id2]; - } - const prefix = id2.description || "symbol"; - for (let counter = 0; ; counter++) { - const key = prefix + (counter > 0 ? ` #${counter}` : ""); - if (!usedKeysForSymbols.has(key)) { - usedKeysForSymbols.add(key); - return printedSymbols[id2] = `Symbol.for(${JSON.stringify(key)})`; - } - } - } -} -function getAlignmentSize(text, tabWidth, startIndex = 0) { - let size = 0; - for (let i = startIndex; i < text.length; ++i) { - if (text[i] === " ") { - size = size + tabWidth - size % tabWidth; - } else { - size++; - } - } - return size; -} -var get_alignment_size_default = getAlignmentSize; -var errors_exports = {}; -__export3(errors_exports, { - ArgExpansionBailout: () => ArgExpansionBailout, - ConfigError: () => ConfigError, - UndefinedParserError: () => UndefinedParserError -}); -var ConfigError = class extends Error { - name = "ConfigError"; -}; -var UndefinedParserError = class extends Error { - name = "UndefinedParserError"; -}; -var ArgExpansionBailout = class extends Error { - name = "ArgExpansionBailout"; -}; -var core_options_evaluate_default = { - "cursorOffset": { - "category": "Special", - "type": "int", - "default": -1, - "range": { - "start": -1, - "end": Infinity, - "step": 1 - }, - "description": "Print (to stderr) where a cursor at the given position would move to after formatting.\nThis option cannot be used with --range-start and --range-end.", - "cliCategory": "Editor" - }, - "endOfLine": { - "category": "Global", - "type": "choice", - "default": "lf", - "description": "Which end of line characters to apply.", - "choices": [ - { - "value": "lf", - "description": "Line Feed only (\\n), common on Linux and macOS as well as inside git repos" - }, - { - "value": "crlf", - "description": "Carriage Return + Line Feed characters (\\r\\n), common on Windows" - }, - { - "value": "cr", - "description": "Carriage Return character only (\\r), used very rarely" - }, - { - "value": "auto", - "description": "Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)" - } - ] - }, - "filepath": { - "category": "Special", - "type": "path", - "description": "Specify the input filepath. This will be used to do parser inference.", - "cliName": "stdin-filepath", - "cliCategory": "Other", - "cliDescription": "Path to the file to pretend that stdin comes from." - }, - "insertPragma": { - "category": "Special", - "type": "boolean", - "default": false, - "description": "Insert @format pragma into file's first docblock comment.", - "cliCategory": "Other" - }, - "parser": { - "category": "Global", - "type": "choice", - "default": void 0, - "description": "Which parser to use.", - "exception": (value) => typeof value === "string" || typeof value === "function", - "choices": [ - { - "value": "flow", - "description": "Flow" - }, - { - "value": "babel", - "description": "JavaScript" - }, - { - "value": "babel-flow", - "description": "Flow" - }, - { - "value": "babel-ts", - "description": "TypeScript" - }, - { - "value": "typescript", - "description": "TypeScript" - }, - { - "value": "acorn", - "description": "JavaScript" - }, - { - "value": "espree", - "description": "JavaScript" - }, - { - "value": "meriyah", - "description": "JavaScript" - }, - { - "value": "css", - "description": "CSS" - }, - { - "value": "less", - "description": "Less" - }, - { - "value": "scss", - "description": "SCSS" - }, - { - "value": "json", - "description": "JSON" - }, - { - "value": "json5", - "description": "JSON5" - }, - { - "value": "json-stringify", - "description": "JSON.stringify" - }, - { - "value": "graphql", - "description": "GraphQL" - }, - { - "value": "markdown", - "description": "Markdown" - }, - { - "value": "mdx", - "description": "MDX" - }, - { - "value": "vue", - "description": "Vue" - }, - { - "value": "yaml", - "description": "YAML" - }, - { - "value": "glimmer", - "description": "Ember / Handlebars" - }, - { - "value": "html", - "description": "HTML" - }, - { - "value": "angular", - "description": "Angular" - }, - { - "value": "lwc", - "description": "Lightning Web Components" - } - ] - }, - "plugins": { - "type": "path", - "array": true, - "default": [ - { - "value": [] - } - ], - "category": "Global", - "description": "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.", - "exception": (value) => typeof value === "string" || typeof value === "object", - "cliName": "plugin", - "cliCategory": "Config" - }, - "printWidth": { - "category": "Global", - "type": "int", - "default": 80, - "description": "The line length where Prettier will try wrap.", - "range": { - "start": 0, - "end": Infinity, - "step": 1 - } - }, - "rangeEnd": { - "category": "Special", - "type": "int", - "default": Infinity, - "range": { - "start": 0, - "end": Infinity, - "step": 1 - }, - "description": "Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.\nThis option cannot be used with --cursor-offset.", - "cliCategory": "Editor" - }, - "rangeStart": { - "category": "Special", - "type": "int", - "default": 0, - "range": { - "start": 0, - "end": Infinity, - "step": 1 - }, - "description": "Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.\nThis option cannot be used with --cursor-offset.", - "cliCategory": "Editor" - }, - "requirePragma": { - "category": "Special", - "type": "boolean", - "default": false, - "description": "Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.", - "cliCategory": "Other" - }, - "tabWidth": { - "type": "int", - "category": "Global", - "default": 2, - "description": "Number of spaces per indentation level.", - "range": { - "start": 0, - "end": Infinity, - "step": 1 - } - }, - "useTabs": { - "category": "Global", - "type": "boolean", - "default": false, - "description": "Indent with tabs instead of spaces." - }, - "embeddedLanguageFormatting": { - "category": "Global", - "type": "choice", - "default": "auto", - "description": "Control how Prettier formats quoted code embedded in the file.", - "choices": [ - { - "value": "auto", - "description": "Format embedded code if Prettier can automatically identify it." - }, - { - "value": "off", - "description": "Never automatically format embedded code." - } - ] - } -}; -function getSupportInfo({ - plugins = [], - showDeprecated = false -} = {}) { - const languages2 = plugins.flatMap((plugin) => plugin.languages ?? []); - const options8 = []; - for (const option of normalizeOptionSettings(Object.assign({}, ...plugins.map(({ - options: options9 - }) => options9), core_options_evaluate_default))) { - if (!showDeprecated && option.deprecated) { - continue; - } - if (Array.isArray(option.choices)) { - if (!showDeprecated) { - option.choices = option.choices.filter((choice) => !choice.deprecated); - } - if (option.name === "parser") { - option.choices = [...option.choices, ...collectParsersFromLanguages(option.choices, languages2, plugins)]; - } - } - option.pluginDefaults = Object.fromEntries(plugins.filter((plugin) => { - var _a3; - return ((_a3 = plugin.defaultOptions) == null ? void 0 : _a3[option.name]) !== void 0; - }).map((plugin) => [plugin.name, plugin.defaultOptions[option.name]])); - options8.push(option); - } - return { - languages: languages2, - options: options8 - }; -} -function* collectParsersFromLanguages(parserChoices, languages2, plugins) { - const existingParsers = new Set(parserChoices.map((choice) => choice.value)); - for (const language of languages2) { - if (language.parsers) { - for (const parserName of language.parsers) { - if (!existingParsers.has(parserName)) { - existingParsers.add(parserName); - const plugin = plugins.find((plugin2) => plugin2.parsers && Object.prototype.hasOwnProperty.call(plugin2.parsers, parserName)); - let description = language.name; - if (plugin == null ? void 0 : plugin.name) { - description += ` (plugin: ${plugin.name})`; - } - yield { - value: parserName, - description - }; - } - } - } - } -} -function normalizeOptionSettings(settings) { - const options8 = []; - for (const [name, originalOption] of Object.entries(settings)) { - const option = { - name, - ...originalOption - }; - if (Array.isArray(option.default)) { - option.default = at_default2( - /* isOptionalObject*/ - false, - option.default, - -1 - ).value; - } - options8.push(option); - } - return options8; -} -var import_n_readlines = __toESM3(require_readlines(), 1); -function getInterpreter(filepath) { - if (typeof filepath !== "string") { - return ""; - } - let fd; - try { - fd = import_fs.default.openSync(filepath, "r"); - } catch { - return ""; - } - try { - const liner = new import_n_readlines.default(fd); - const firstLine = liner.next().toString("utf8"); - const m12 = firstLine.match(/^#!\/(?:usr\/)?bin\/env\s+(\S+)/); - if (m12) { - return m12[1]; - } - const m22 = firstLine.match(/^#!\/(?:usr\/(?:local\/)?)?bin\/(\S+)/); - if (m22) { - return m22[1]; - } - return ""; - } catch { - return ""; - } finally { - try { - import_fs.default.closeSync(fd); - } catch { - } - } -} -var get_interpreter_default = getInterpreter; -var getFileBasename = (file) => file.split(/[/\\]/).pop(); -function getLanguageByFilename(languages2, filename) { - if (!filename) { - return; - } - const basename = getFileBasename(filename).toLowerCase(); - return languages2.find( - (language) => { - var _a3, _b; - return ((_a3 = language.extensions) == null ? void 0 : _a3.some((extension) => basename.endsWith(extension))) || ((_b = language.filenames) == null ? void 0 : _b.some((name) => name.toLowerCase() === basename)); - } - ); -} -function getLanguageByName(languages2, languageName) { - if (!languageName) { - return; - } - return languages2.find(({ name }) => name.toLowerCase() === languageName) ?? languages2.find(({ aliases }) => aliases == null ? void 0 : aliases.includes(languageName)) ?? languages2.find(({ extensions }) => extensions == null ? void 0 : extensions.includes(`.${languageName}`)); -} -function getLanguageByInterpreter(languages2, file) { - if (!file || getFileBasename(file).includes(".")) { - return; - } - const interpreter = get_interpreter_default(file); - if (!interpreter) { - return; - } - return languages2.find( - (language) => { - var _a3; - return (_a3 = language.interpreters) == null ? void 0 : _a3.includes(interpreter); - } - ); -} -function inferParser(options8, fileInfo) { - const languages2 = options8.plugins.flatMap( - (plugin) => ( - // @ts-expect-error -- Safe - plugin.languages ?? [] - ) - ); - const language = getLanguageByName(languages2, fileInfo.language) ?? getLanguageByFilename(languages2, fileInfo.physicalFile) ?? getLanguageByFilename(languages2, fileInfo.file) ?? getLanguageByInterpreter(languages2, fileInfo.physicalFile); - return language == null ? void 0 : language.parsers[0]; -} -var infer_parser_default = inferParser; -var hasDeprecationWarned; -function normalizeOptions(options8, optionInfos, { - logger = false, - isCLI = false, - passThrough = false, - FlagSchema, - descriptor -} = {}) { - if (isCLI) { - if (!FlagSchema) { - throw new Error("'FlagSchema' option is required."); - } - if (!descriptor) { - throw new Error("'descriptor' option is required."); - } - } else { - descriptor = apiDescriptor; - } - const unknown = !passThrough ? (key, value, options9) => { - const { - _: _6, - ...schemas2 - } = options9.schemas; - return levenUnknownHandler(key, value, { - ...options9, - schemas: schemas2 - }); - } : Array.isArray(passThrough) ? (key, value) => !passThrough.includes(key) ? void 0 : { - [key]: value - } : (key, value) => ({ - [key]: value - }); - const schemas = optionInfosToSchemas(optionInfos, { - isCLI, - FlagSchema - }); - const normalizer = new Normalizer(schemas, { - logger, - unknown, - descriptor - }); - const shouldSuppressDuplicateDeprecationWarnings = logger !== false; - if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) { - normalizer._hasDeprecationWarned = hasDeprecationWarned; - } - const normalized = normalizer.normalize(options8); - if (shouldSuppressDuplicateDeprecationWarnings) { - hasDeprecationWarned = normalizer._hasDeprecationWarned; - } - return normalized; -} -function optionInfosToSchemas(optionInfos, { - isCLI, - FlagSchema -}) { - const schemas = []; - if (isCLI) { - schemas.push(AnySchema.create({ - name: "_" - })); - } - for (const optionInfo of optionInfos) { - schemas.push(optionInfoToSchema(optionInfo, { - isCLI, - optionInfos, - FlagSchema - })); - if (optionInfo.alias && isCLI) { - schemas.push(AliasSchema.create({ - // @ts-expect-error - name: optionInfo.alias, - sourceName: optionInfo.name - })); - } - } - return schemas; -} -function optionInfoToSchema(optionInfo, { - isCLI, - optionInfos, - FlagSchema -}) { - const { - name - } = optionInfo; - const parameters = { - name - }; - let SchemaConstructor; - const handlers = {}; - switch (optionInfo.type) { - case "int": - SchemaConstructor = IntegerSchema; - if (isCLI) { - parameters.preprocess = Number; - } - break; - case "string": - SchemaConstructor = StringSchema; - break; - case "choice": - SchemaConstructor = ChoiceSchema; - parameters.choices = optionInfo.choices.map((choiceInfo) => (choiceInfo == null ? void 0 : choiceInfo.redirect) ? { - ...choiceInfo, - redirect: { - to: { - key: optionInfo.name, - value: choiceInfo.redirect - } - } - } : choiceInfo); - break; - case "boolean": - SchemaConstructor = BooleanSchema; - break; - case "flag": - SchemaConstructor = FlagSchema; - parameters.flags = optionInfos.flatMap((optionInfo2) => [optionInfo2.alias, optionInfo2.description && optionInfo2.name, optionInfo2.oppositeDescription && `no-${optionInfo2.name}`].filter(Boolean)); - break; - case "path": - SchemaConstructor = StringSchema; - break; - default: - throw new Error(`Unexpected type ${optionInfo.type}`); - } - if (optionInfo.exception) { - parameters.validate = (value, schema2, utils2) => optionInfo.exception(value) || schema2.validate(value, utils2); - } else { - parameters.validate = (value, schema2, utils2) => value === void 0 || schema2.validate(value, utils2); - } - if (optionInfo.redirect) { - handlers.redirect = (value) => !value ? void 0 : { - to: { - key: optionInfo.redirect.option, - value: optionInfo.redirect.value - } - }; - } - if (optionInfo.deprecated) { - handlers.deprecated = true; - } - if (isCLI && !optionInfo.array) { - const originalPreprocess = parameters.preprocess || ((x7) => x7); - parameters.preprocess = (value, schema2, utils2) => schema2.preprocess(originalPreprocess(Array.isArray(value) ? at_default2( - /* isOptionalObject*/ - false, - value, - -1 - ) : value), utils2); - } - return optionInfo.array ? ArraySchema.create({ - ...isCLI ? { - preprocess: (v7) => Array.isArray(v7) ? v7 : [v7] - } : {}, - ...handlers, - // @ts-expect-error - valueSchema: SchemaConstructor.create(parameters) - }) : SchemaConstructor.create({ - ...parameters, - ...handlers - }); -} -var normalize_options_default = normalizeOptions; -function getParserPluginByParserName(plugins, parserName) { - if (!parserName) { - throw new Error("parserName is required."); - } - for (let index = plugins.length - 1; index >= 0; index--) { - const plugin = plugins[index]; - if (plugin.parsers && Object.prototype.hasOwnProperty.call(plugin.parsers, parserName)) { - return plugin; - } - } - let message = `Couldn't resolve parser "${parserName}".`; - if (false) { - message += " Plugins must be explicitly added to the standalone bundle."; - } - throw new ConfigError(message); -} -function getPrinterPluginByAstFormat(plugins, astFormat) { - if (!astFormat) { - throw new Error("astFormat is required."); - } - for (let index = plugins.length - 1; index >= 0; index--) { - const plugin = plugins[index]; - if (plugin.printers && Object.prototype.hasOwnProperty.call(plugin.printers, astFormat)) { - return plugin; - } - } - let message = `Couldn't find plugin for AST format "${astFormat}".`; - if (false) { - message += " Plugins must be explicitly added to the standalone bundle."; - } - throw new ConfigError(message); -} -function resolveParser({ - plugins, - parser -}) { - const plugin = getParserPluginByParserName(plugins, parser); - return initParser(plugin, parser); -} -function initParser(plugin, parserName) { - const parserOrParserInitFunction = plugin.parsers[parserName]; - return typeof parserOrParserInitFunction === "function" ? parserOrParserInitFunction() : parserOrParserInitFunction; -} -function initPrinter(plugin, astFormat) { - const printerOrPrinterInitFunction = plugin.printers[astFormat]; - return typeof printerOrPrinterInitFunction === "function" ? printerOrPrinterInitFunction() : printerOrPrinterInitFunction; -} -var formatOptionsHiddenDefaults = { - astFormat: "estree", - printer: {}, - originalText: void 0, - locStart: null, - locEnd: null -}; -async function normalizeFormatOptions(options8, opts = {}) { - var _a3; - const rawOptions = { ...options8 }; - if (!rawOptions.parser) { - if (!rawOptions.filepath) { - throw new UndefinedParserError( - "No parser and no file path given, couldn't infer a parser." - ); - } else { - rawOptions.parser = infer_parser_default(rawOptions, { - physicalFile: rawOptions.filepath - }); - if (!rawOptions.parser) { - throw new UndefinedParserError( - `No parser could be inferred for file "${rawOptions.filepath}".` - ); - } - } - } - const supportOptions = getSupportInfo({ - plugins: options8.plugins, - showDeprecated: true - }).options; - const defaults = { - ...formatOptionsHiddenDefaults, - ...Object.fromEntries( - supportOptions.filter((optionInfo) => optionInfo.default !== void 0).map((option) => [option.name, option.default]) - ) - }; - const parserPlugin = getParserPluginByParserName( - rawOptions.plugins, - rawOptions.parser - ); - const parser = await initParser(parserPlugin, rawOptions.parser); - rawOptions.astFormat = parser.astFormat; - rawOptions.locEnd = parser.locEnd; - rawOptions.locStart = parser.locStart; - const printerPlugin = ((_a3 = parserPlugin.printers) == null ? void 0 : _a3[parser.astFormat]) ? parserPlugin : getPrinterPluginByAstFormat(rawOptions.plugins, parser.astFormat); - const printer2 = await initPrinter(printerPlugin, parser.astFormat); - rawOptions.printer = printer2; - const pluginDefaults = printerPlugin.defaultOptions ? Object.fromEntries( - Object.entries(printerPlugin.defaultOptions).filter( - ([, value]) => value !== void 0 - ) - ) : {}; - const mixedDefaults = { ...defaults, ...pluginDefaults }; - for (const [k4, value] of Object.entries(mixedDefaults)) { - if (rawOptions[k4] === null || rawOptions[k4] === void 0) { - rawOptions[k4] = value; - } - } - if (rawOptions.parser === "json") { - rawOptions.trailingComma = "none"; - } - return normalize_options_default(rawOptions, supportOptions, { - passThrough: Object.keys(formatOptionsHiddenDefaults), - ...opts - }); -} -var normalize_format_options_default = normalizeFormatOptions; -var nonTraversableKeys = /* @__PURE__ */ new Set([ - "tokens", - "comments", - "parent", - "enclosingNode", - "precedingNode", - "followingNode" -]); -var defaultGetVisitorKeys = (node) => Object.keys(node).filter((key) => !nonTraversableKeys.has(key)); -function createGetVisitorKeysFunction(printerGetVisitorKeys) { - return printerGetVisitorKeys ? (node) => printerGetVisitorKeys(node, nonTraversableKeys) : defaultGetVisitorKeys; -} -var create_get_visitor_keys_function_default = createGetVisitorKeysFunction; -function massageAst(ast, options8) { - const { - printer: { - massageAstNode: cleanFunction, - getVisitorKeys: printerGetVisitorKeys - } - } = options8; - if (!cleanFunction) { - return ast; - } - const getVisitorKeys = create_get_visitor_keys_function_default(printerGetVisitorKeys); - const ignoredProperties = cleanFunction.ignoredProperties ?? /* @__PURE__ */ new Set(); - return recurse(ast); - function recurse(node, parent) { - if (!(node !== null && typeof node === "object")) { - return node; - } - if (Array.isArray(node)) { - return node.map((child) => recurse(child, parent)).filter(Boolean); - } - const newObj = {}; - const childrenKeys = new Set(getVisitorKeys(node)); - for (const key in node) { - if (!Object.prototype.hasOwnProperty.call(node, key) || ignoredProperties.has(key)) { - continue; - } - if (childrenKeys.has(key)) { - newObj[key] = recurse(node[key], node); - } else { - newObj[key] = node[key]; - } - } - const result = cleanFunction(node, newObj, parent); - if (result === null) { - return; - } - return result ?? newObj; - } -} -var massage_ast_default = massageAst; -var import_code_frame = __toESM3(require_lib33(), 1); -async function parse2(originalText, options8) { - const parser = await resolveParser(options8); - const text = parser.preprocess ? parser.preprocess(originalText, options8) : originalText; - options8.originalText = text; - let ast; - try { - ast = await parser.parse( - text, - options8, - // TODO: remove the third argument in v4 - // The duplicated argument is passed as intended, see #10156 - options8 - ); - } catch (error2) { - handleParseError(error2, originalText); - } - return { text, ast }; -} -function handleParseError(error2, text) { - const { loc } = error2; - if (loc) { - const codeFrame = (0, import_code_frame.codeFrameColumns)(text, loc, { highlightCode: true }); - error2.message += "\n" + codeFrame; - error2.codeFrame = codeFrame; - throw error2; - } - throw error2; -} -var parse_default2 = parse2; -var _getNodeStackIndex; -var getNodeStackIndex_fn; -var _getAncestors; -var getAncestors_fn; -var AstPath = class { - constructor(value) { - __privateAdd(this, _getNodeStackIndex); - __privateAdd(this, _getAncestors); - this.stack = [value]; - } - /** @type {string | null} */ - get key() { - const { - stack, - siblings - } = this; - return at_default2( - /* isOptionalObject*/ - false, - stack, - siblings === null ? -2 : -4 - ) ?? null; - } - /** @type {number | null} */ - get index() { - return this.siblings === null ? null : at_default2( - /* isOptionalObject*/ - false, - this.stack, - -2 - ); - } - /** @type {object} */ - get node() { - return at_default2( - /* isOptionalObject*/ - false, - this.stack, - -1 - ); - } - /** @type {object | null} */ - get parent() { - return this.getNode(1); - } - /** @type {object | null} */ - get grandparent() { - return this.getNode(2); - } - /** @type {boolean} */ - get isInArray() { - return this.siblings !== null; - } - /** @type {object[] | null} */ - get siblings() { - const { - stack - } = this; - const maybeArray = at_default2( - /* isOptionalObject*/ - false, - stack, - -3 - ); - return Array.isArray(maybeArray) ? maybeArray : null; - } - /** @type {object | null} */ - get next() { - const { - siblings - } = this; - return siblings === null ? null : siblings[this.index + 1]; - } - /** @type {object | null} */ - get previous() { - const { - siblings - } = this; - return siblings === null ? null : siblings[this.index - 1]; - } - /** @type {boolean} */ - get isFirst() { - return this.index === 0; - } - /** @type {boolean} */ - get isLast() { - const { - siblings, - index - } = this; - return siblings !== null && index === siblings.length - 1; - } - /** @type {boolean} */ - get isRoot() { - return this.stack.length === 1; - } - /** @type {object} */ - get root() { - return this.stack[0]; - } - /** @type {object[]} */ - get ancestors() { - return [...__privateMethod(this, _getAncestors, getAncestors_fn).call(this)]; - } - // The name of the current property is always the penultimate element of - // this.stack, and always a string/number/symbol. - getName() { - const { - stack - } = this; - const { - length - } = stack; - if (length > 1) { - return at_default2( - /* isOptionalObject*/ - false, - stack, - -2 - ); - } - return null; - } - // The value of the current property is always the final element of - // this.stack. - getValue() { - return at_default2( - /* isOptionalObject*/ - false, - this.stack, - -1 - ); - } - getNode(count = 0) { - const stackIndex = __privateMethod(this, _getNodeStackIndex, getNodeStackIndex_fn).call(this, count); - return stackIndex === -1 ? null : this.stack[stackIndex]; - } - getParentNode(count = 0) { - return this.getNode(count + 1); - } - // Temporarily push properties named by string arguments given after the - // callback function onto this.stack, then call the callback with a - // reference to this (modified) AstPath object. Note that the stack will - // be restored to its original state after the callback is finished, so it - // is probably a mistake to retain a reference to the path. - call(callback, ...names) { - const { - stack - } = this; - const { - length - } = stack; - let value = at_default2( - /* isOptionalObject*/ - false, - stack, - -1 - ); - for (const name of names) { - value = value[name]; - stack.push(name, value); - } - try { - return callback(this); - } finally { - stack.length = length; - } - } - callParent(callback, count = 0) { - const stackIndex = __privateMethod(this, _getNodeStackIndex, getNodeStackIndex_fn).call(this, count + 1); - const parentValues = this.stack.splice(stackIndex + 1); - try { - return callback(this); - } finally { - this.stack.push(...parentValues); - } - } - // Similar to AstPath.prototype.call, except that the value obtained by - // accessing this.getValue()[name1][name2]... should be array. The - // callback will be called with a reference to this path object for each - // element of the array. - each(callback, ...names) { - const { - stack - } = this; - const { - length - } = stack; - let value = at_default2( - /* isOptionalObject*/ - false, - stack, - -1 - ); - for (const name of names) { - value = value[name]; - stack.push(name, value); - } - try { - for (let i = 0; i < value.length; ++i) { - stack.push(i, value[i]); - callback(this, i, value); - stack.length -= 2; - } - } finally { - stack.length = length; - } - } - // Similar to AstPath.prototype.each, except that the results of the - // callback function invocations are stored in an array and returned at - // the end of the iteration. - map(callback, ...names) { - const result = []; - this.each((path9, index, value) => { - result[index] = callback(path9, index, value); - }, ...names); - return result; - } - /** - * @param {...( - * | ((node: any, name: string | null, number: number | null) => boolean) - * | undefined - * )} predicates - */ - match(...predicates) { - let stackPointer = this.stack.length - 1; - let name = null; - let node = this.stack[stackPointer--]; - for (const predicate of predicates) { - if (node === void 0) { - return false; - } - let number = null; - if (typeof name === "number") { - number = name; - name = this.stack[stackPointer--]; - node = this.stack[stackPointer--]; - } - if (predicate && !predicate(node, name, number)) { - return false; - } - name = this.stack[stackPointer--]; - node = this.stack[stackPointer--]; - } - return true; - } - /** - * Traverses the ancestors of the current node heading toward the tree root - * until it finds a node that matches the provided predicate function. Will - * return the first matching ancestor. If no such node exists, returns undefined. - * @param {(node: any) => boolean} predicate - * @internal Unstable API. Don't use in plugins for now. - */ - findAncestor(predicate) { - for (const node of __privateMethod(this, _getAncestors, getAncestors_fn).call(this)) { - if (predicate(node)) { - return node; - } - } - } - /** - * Traverses the ancestors of the current node heading toward the tree root - * until it finds a node that matches the provided predicate function. - * returns true if matched node found. - * @param {(node: any) => boolean} predicate - * @returns {boolean} - * @internal Unstable API. Don't use in plugins for now. - */ - hasAncestor(predicate) { - for (const node of __privateMethod(this, _getAncestors, getAncestors_fn).call(this)) { - if (predicate(node)) { - return true; - } - } - return false; - } -}; -_getNodeStackIndex = /* @__PURE__ */ new WeakSet(); -getNodeStackIndex_fn = function(count) { - const { - stack - } = this; - for (let i = stack.length - 1; i >= 0; i -= 2) { - if (!Array.isArray(stack[i]) && --count < 0) { - return i; - } - } - return -1; -}; -_getAncestors = /* @__PURE__ */ new WeakSet(); -getAncestors_fn = function* () { - const { - stack - } = this; - for (let index = stack.length - 3; index >= 0; index -= 2) { - const value = stack[index]; - if (!Array.isArray(value)) { - yield value; - } - } -}; -var ast_path_default = AstPath; -function skip(characters) { - return (text, startIndex, options8) => { - const backwards = Boolean(options8 == null ? void 0 : options8.backwards); - if (startIndex === false) { - return false; - } - const { length } = text; - let cursor22 = startIndex; - while (cursor22 >= 0 && cursor22 < length) { - const character = text.charAt(cursor22); - if (characters instanceof RegExp) { - if (!characters.test(character)) { - return cursor22; - } - } else if (!characters.includes(character)) { - return cursor22; - } - backwards ? cursor22-- : cursor22++; - } - if (cursor22 === -1 || cursor22 === length) { - return cursor22; - } - return false; - }; -} -var skipWhitespace = skip(/\s/); -var skipSpaces = skip(" "); -var skipToLineEnd = skip(",; "); -var skipEverythingButNewLine = skip(/[^\n\r]/); -function skipNewline(text, startIndex, options8) { - const backwards = Boolean(options8 == null ? void 0 : options8.backwards); - if (startIndex === false) { - return false; - } - const character = text.charAt(startIndex); - if (backwards) { - if (text.charAt(startIndex - 1) === "\r" && character === "\n") { - return startIndex - 2; - } - if (character === "\n" || character === "\r" || character === "\u2028" || character === "\u2029") { - return startIndex - 1; - } - } else { - if (character === "\r" && text.charAt(startIndex + 1) === "\n") { - return startIndex + 2; - } - if (character === "\n" || character === "\r" || character === "\u2028" || character === "\u2029") { - return startIndex + 1; - } - } - return startIndex; -} -var skip_newline_default = skipNewline; -function hasNewline(text, startIndex, options8 = {}) { - const idx = skipSpaces( - text, - options8.backwards ? startIndex - 1 : startIndex, - options8 - ); - const idx2 = skip_newline_default(text, idx, options8); - return idx !== idx2; -} -var has_newline_default = hasNewline; -function isNonEmptyArray(object) { - return Array.isArray(object) && object.length > 0; -} -var is_non_empty_array_default = isNonEmptyArray; -function isObject2(object) { - return object !== null && typeof object === "object"; -} -var is_object_default = isObject2; -function* getChildren(node, options8) { - const { getVisitorKeys, filter = () => true } = options8; - const isMatchedNode = (node2) => is_object_default(node2) && filter(node2); - for (const key of getVisitorKeys(node)) { - const value = node[key]; - if (Array.isArray(value)) { - for (const child of value) { - if (isMatchedNode(child)) { - yield child; - } - } - } else if (isMatchedNode(value)) { - yield value; - } - } -} -function* getDescendants(node, options8) { - const queue = [node]; - for (let index = 0; index < queue.length; index++) { - const node2 = queue[index]; - for (const child of getChildren(node2, options8)) { - yield child; - queue.push(child); - } - } -} -function describeNodeForDebugging(node) { - const nodeType = node.type || node.kind || "(unknown type)"; - let nodeName = String( - node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || "" - ); - if (nodeName.length > 20) { - nodeName = nodeName.slice(0, 19) + "\u2026"; - } - return nodeType + (nodeName ? " " + nodeName : ""); -} -function addCommentHelper(node, comment) { - const comments = node.comments ?? (node.comments = []); - comments.push(comment); - comment.printed = false; - comment.nodeDescription = describeNodeForDebugging(node); -} -function addLeadingComment(node, comment) { - comment.leading = true; - comment.trailing = false; - addCommentHelper(node, comment); -} -function addDanglingComment(node, comment, marker) { - comment.leading = false; - comment.trailing = false; - if (marker) { - comment.marker = marker; - } - addCommentHelper(node, comment); -} -function addTrailingComment(node, comment) { - comment.leading = false; - comment.trailing = true; - addCommentHelper(node, comment); -} -var childNodesCache = /* @__PURE__ */ new WeakMap(); -function getSortedChildNodes(node, options8) { - if (childNodesCache.has(node)) { - return childNodesCache.get(node); - } - const { - printer: { - getCommentChildNodes, - canAttachComment, - getVisitorKeys: printerGetVisitorKeys - }, - locStart, - locEnd - } = options8; - if (!canAttachComment) { - return []; - } - const childNodes = ((getCommentChildNodes == null ? void 0 : getCommentChildNodes(node, options8)) ?? [ - ...getChildren(node, { - getVisitorKeys: create_get_visitor_keys_function_default(printerGetVisitorKeys) - }) - ]).flatMap( - (node2) => canAttachComment(node2) ? [node2] : getSortedChildNodes(node2, options8) - ); - childNodes.sort( - (nodeA, nodeB) => locStart(nodeA) - locStart(nodeB) || locEnd(nodeA) - locEnd(nodeB) - ); - childNodesCache.set(node, childNodes); - return childNodes; -} -function decorateComment(node, comment, options8, enclosingNode) { - const { locStart, locEnd } = options8; - const commentStart = locStart(comment); - const commentEnd = locEnd(comment); - const childNodes = getSortedChildNodes(node, options8); - let precedingNode; - let followingNode; - let left = 0; - let right = childNodes.length; - while (left < right) { - const middle = left + right >> 1; - const child = childNodes[middle]; - const start = locStart(child); - const end = locEnd(child); - if (start <= commentStart && commentEnd <= end) { - return decorateComment(child, comment, options8, child); - } - if (end <= commentStart) { - precedingNode = child; - left = middle + 1; - continue; - } - if (commentEnd <= start) { - followingNode = child; - right = middle; - continue; - } - throw new Error("Comment location overlaps with node location"); - } - if ((enclosingNode == null ? void 0 : enclosingNode.type) === "TemplateLiteral") { - const { quasis } = enclosingNode; - const commentIndex = findExpressionIndexForComment( - quasis, - comment, - options8 - ); - if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options8) !== commentIndex) { - precedingNode = null; - } - if (followingNode && findExpressionIndexForComment(quasis, followingNode, options8) !== commentIndex) { - followingNode = null; - } - } - return { enclosingNode, precedingNode, followingNode }; -} -var returnFalse = () => false; -function attachComments(ast, options8) { - const { comments } = ast; - delete ast.comments; - if (!is_non_empty_array_default(comments) || !options8.printer.canAttachComment) { - return; - } - const tiesToBreak = []; - const { - locStart, - locEnd, - printer: { - experimentalFeatures: { - // TODO: Make this as default behavior - avoidAstMutation = false - } = {}, - handleComments = {} - }, - originalText: text - } = options8; - const { - ownLine: handleOwnLineComment = returnFalse, - endOfLine: handleEndOfLineComment = returnFalse, - remaining: handleRemainingComment = returnFalse - } = handleComments; - const decoratedComments = comments.map((comment, index) => ({ - ...decorateComment(ast, comment, options8), - comment, - text, - options: options8, - ast, - isLastComment: comments.length - 1 === index - })); - for (const [index, context] of decoratedComments.entries()) { - const { - comment, - precedingNode, - enclosingNode, - followingNode, - text: text2, - options: options9, - ast: ast2, - isLastComment - } = context; - if (options9.parser === "json" || options9.parser === "json5" || options9.parser === "__js_expression" || options9.parser === "__ts_expression" || options9.parser === "__vue_expression" || options9.parser === "__vue_ts_expression") { - if (locStart(comment) - locStart(ast2) <= 0) { - addLeadingComment(ast2, comment); - continue; - } - if (locEnd(comment) - locEnd(ast2) >= 0) { - addTrailingComment(ast2, comment); - continue; - } - } - let args; - if (avoidAstMutation) { - args = [context]; - } else { - comment.enclosingNode = enclosingNode; - comment.precedingNode = precedingNode; - comment.followingNode = followingNode; - args = [comment, text2, options9, ast2, isLastComment]; - } - if (isOwnLineComment(text2, options9, decoratedComments, index)) { - comment.placement = "ownLine"; - if (handleOwnLineComment(...args)) { - } else if (followingNode) { - addLeadingComment(followingNode, comment); - } else if (precedingNode) { - addTrailingComment(precedingNode, comment); - } else if (enclosingNode) { - addDanglingComment(enclosingNode, comment); - } else { - addDanglingComment(ast2, comment); - } - } else if (isEndOfLineComment(text2, options9, decoratedComments, index)) { - comment.placement = "endOfLine"; - if (handleEndOfLineComment(...args)) { - } else if (precedingNode) { - addTrailingComment(precedingNode, comment); - } else if (followingNode) { - addLeadingComment(followingNode, comment); - } else if (enclosingNode) { - addDanglingComment(enclosingNode, comment); - } else { - addDanglingComment(ast2, comment); - } - } else { - comment.placement = "remaining"; - if (handleRemainingComment(...args)) { - } else if (precedingNode && followingNode) { - const tieCount = tiesToBreak.length; - if (tieCount > 0) { - const lastTie = tiesToBreak[tieCount - 1]; - if (lastTie.followingNode !== followingNode) { - breakTies(tiesToBreak, options9); - } - } - tiesToBreak.push(context); - } else if (precedingNode) { - addTrailingComment(precedingNode, comment); - } else if (followingNode) { - addLeadingComment(followingNode, comment); - } else if (enclosingNode) { - addDanglingComment(enclosingNode, comment); - } else { - addDanglingComment(ast2, comment); - } - } - } - breakTies(tiesToBreak, options8); - if (!avoidAstMutation) { - for (const comment of comments) { - delete comment.precedingNode; - delete comment.enclosingNode; - delete comment.followingNode; - } - } -} -var isAllEmptyAndNoLineBreak = (text) => !/[\S\n\u2028\u2029]/.test(text); -function isOwnLineComment(text, options8, decoratedComments, commentIndex) { - const { comment, precedingNode } = decoratedComments[commentIndex]; - const { locStart, locEnd } = options8; - let start = locStart(comment); - if (precedingNode) { - for (let index = commentIndex - 1; index >= 0; index--) { - const { comment: comment2, precedingNode: currentCommentPrecedingNode } = decoratedComments[index]; - if (currentCommentPrecedingNode !== precedingNode || !isAllEmptyAndNoLineBreak(text.slice(locEnd(comment2), start))) { - break; - } - start = locStart(comment2); - } - } - return has_newline_default(text, start, { backwards: true }); -} -function isEndOfLineComment(text, options8, decoratedComments, commentIndex) { - const { comment, followingNode } = decoratedComments[commentIndex]; - const { locStart, locEnd } = options8; - let end = locEnd(comment); - if (followingNode) { - for (let index = commentIndex + 1; index < decoratedComments.length; index++) { - const { comment: comment2, followingNode: currentCommentFollowingNode } = decoratedComments[index]; - if (currentCommentFollowingNode !== followingNode || !isAllEmptyAndNoLineBreak(text.slice(end, locStart(comment2)))) { - break; - } - end = locEnd(comment2); - } - } - return has_newline_default(text, end); -} -function breakTies(tiesToBreak, options8) { - var _a3, _b; - const tieCount = tiesToBreak.length; - if (tieCount === 0) { - return; - } - const { precedingNode, followingNode } = tiesToBreak[0]; - let gapEndPos = options8.locStart(followingNode); - let indexOfFirstLeadingComment; - for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) { - const { - comment, - precedingNode: currentCommentPrecedingNode, - followingNode: currentCommentFollowingNode - } = tiesToBreak[indexOfFirstLeadingComment - 1]; - import_assert.default.strictEqual(currentCommentPrecedingNode, precedingNode); - import_assert.default.strictEqual(currentCommentFollowingNode, followingNode); - const gap = options8.originalText.slice(options8.locEnd(comment), gapEndPos); - if (((_b = (_a3 = options8.printer).isGap) == null ? void 0 : _b.call(_a3, gap, options8)) ?? /^[\s(]*$/.test(gap)) { - gapEndPos = options8.locStart(comment); - } else { - break; - } - } - for (const [i, { comment }] of tiesToBreak.entries()) { - if (i < indexOfFirstLeadingComment) { - addTrailingComment(precedingNode, comment); - } else { - addLeadingComment(followingNode, comment); - } - } - for (const node of [precedingNode, followingNode]) { - if (node.comments && node.comments.length > 1) { - node.comments.sort((a, b5) => options8.locStart(a) - options8.locStart(b5)); - } - } - tiesToBreak.length = 0; -} -function findExpressionIndexForComment(quasis, comment, options8) { - const startPos = options8.locStart(comment) - 1; - for (let i = 1; i < quasis.length; ++i) { - if (startPos < options8.locStart(quasis[i])) { - return i - 1; - } - } - return 0; -} -function isPreviousLineEmpty(text, startIndex) { - let idx = startIndex - 1; - idx = skipSpaces(text, idx, { backwards: true }); - idx = skip_newline_default(text, idx, { backwards: true }); - idx = skipSpaces(text, idx, { backwards: true }); - const idx2 = skip_newline_default(text, idx, { backwards: true }); - return idx !== idx2; -} -var is_previous_line_empty_default = isPreviousLineEmpty; -function printComment(path9, options8) { - const comment = path9.node; - comment.printed = true; - return options8.printer.printComment(path9, options8); -} -function printLeadingComment(path9, options8) { - var _a3; - const comment = path9.node; - const parts = [printComment(path9, options8)]; - const { printer: printer2, originalText, locStart, locEnd } = options8; - const isBlock = (_a3 = printer2.isBlockComment) == null ? void 0 : _a3.call(printer2, comment); - if (isBlock) { - const lineBreak = has_newline_default(originalText, locEnd(comment)) ? has_newline_default(originalText, locStart(comment), { - backwards: true - }) ? hardline2 : line2 : " "; - parts.push(lineBreak); - } else { - parts.push(hardline2); - } - const index = skip_newline_default( - originalText, - skipSpaces(originalText, locEnd(comment)) - ); - if (index !== false && has_newline_default(originalText, index)) { - parts.push(hardline2); - } - return parts; -} -function printTrailingComment(path9, options8, previousComment) { - var _a3; - const comment = path9.node; - const printed = printComment(path9, options8); - const { printer: printer2, originalText, locStart } = options8; - const isBlock = (_a3 = printer2.isBlockComment) == null ? void 0 : _a3.call(printer2, comment); - if ((previousComment == null ? void 0 : previousComment.hasLineSuffix) && !(previousComment == null ? void 0 : previousComment.isBlock) || has_newline_default(originalText, locStart(comment), { backwards: true })) { - const isLineBeforeEmpty = is_previous_line_empty_default( - originalText, - locStart(comment) - ); - return { - doc: lineSuffix2([hardline2, isLineBeforeEmpty ? hardline2 : "", printed]), - isBlock, - hasLineSuffix: true - }; - } - if (!isBlock || (previousComment == null ? void 0 : previousComment.hasLineSuffix)) { - return { - doc: [lineSuffix2([" ", printed]), breakParent2], - isBlock, - hasLineSuffix: true - }; - } - return { doc: [" ", printed], isBlock, hasLineSuffix: false }; -} -function printCommentsSeparately(path9, options8) { - const value = path9.node; - if (!value) { - return {}; - } - const ignored = options8[Symbol.for("printedComments")]; - const comments = (value.comments || []).filter( - (comment) => !ignored.has(comment) - ); - if (comments.length === 0) { - return { leading: "", trailing: "" }; - } - const leadingParts = []; - const trailingParts = []; - let printedTrailingComment; - path9.each(() => { - const comment = path9.node; - if (ignored == null ? void 0 : ignored.has(comment)) { - return; - } - const { leading, trailing } = comment; - if (leading) { - leadingParts.push(printLeadingComment(path9, options8)); - } else if (trailing) { - printedTrailingComment = printTrailingComment( - path9, - options8, - printedTrailingComment - ); - trailingParts.push(printedTrailingComment.doc); - } - }, "comments"); - return { leading: leadingParts, trailing: trailingParts }; -} -function printComments(path9, doc2, options8) { - const { leading, trailing } = printCommentsSeparately(path9, options8); - if (!leading && !trailing) { - return doc2; - } - return inheritLabel(doc2, (doc3) => [leading, doc3, trailing]); -} -function ensureAllCommentsPrinted(options8) { - const { - [Symbol.for("comments")]: comments, - [Symbol.for("printedComments")]: printedComments - } = options8; - for (const comment of comments) { - if (!comment.printed && !printedComments.has(comment)) { - throw new Error( - 'Comment "' + comment.value.trim() + '" was not printed. Please report this error!' - ); - } - delete comment.printed; - } -} -async function printEmbeddedLanguages(path9, genericPrint, options8, printAstToDoc2, embeds) { - const { - embeddedLanguageFormatting, - printer: { - embed, - hasPrettierIgnore = () => false, - getVisitorKeys: printerGetVisitorKeys - } - } = options8; - if (!embed || embeddedLanguageFormatting !== "auto") { - return; - } - if (embed.length > 2) { - throw new Error( - "printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed" - ); - } - const getVisitorKeys = create_get_visitor_keys_function_default( - embed.getVisitorKeys ?? printerGetVisitorKeys - ); - const embedCallResults = []; - recurse(); - const originalPathStack = path9.stack; - for (const { print, node, pathStack } of embedCallResults) { - try { - path9.stack = pathStack; - const doc2 = await print(textToDocForEmbed, genericPrint, path9, options8); - if (doc2) { - embeds.set(node, doc2); - } - } catch (error2) { - if (process.env.PRETTIER_DEBUG) { - throw error2; - } - } - } - path9.stack = originalPathStack; - function textToDocForEmbed(text, partialNextOptions) { - return textToDoc(text, partialNextOptions, options8, printAstToDoc2); - } - function recurse() { - const { node } = path9; - if (node === null || typeof node !== "object" || hasPrettierIgnore(path9)) { - return; - } - for (const key of getVisitorKeys(node)) { - if (Array.isArray(node[key])) { - path9.each(recurse, key); - } else { - path9.call(recurse, key); - } - } - const result = embed(path9, options8); - if (!result) { - return; - } - if (typeof result === "function") { - embedCallResults.push({ - print: result, - node, - pathStack: [...path9.stack] - }); - return; - } - if (false) { - throw new Error( - "`embed` should return an async function instead of Promise." - ); - } - embeds.set(node, result); - } -} -async function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc2) { - const options8 = await normalize_format_options_default( - { - ...parentOptions, - ...partialNextOptions, - parentParser: parentOptions.parser, - originalText: text - }, - { passThrough: true } - ); - const { ast } = await parse_default2(text, options8); - const doc2 = await printAstToDoc2(ast, options8); - return stripTrailingHardline2(doc2); -} -function createPrintPreCheckFunction(options8) { - if (true) { - return () => { - }; - } - const getVisitorKeys = create_get_visitor_keys_function_default( - options8.printer.getVisitorKeys - ); - return function(path9) { - if (path9.isRoot) { - return; - } - const { key, parent } = path9; - const visitorKeys = getVisitorKeys(parent); - if (visitorKeys.includes(key)) { - return; - } - throw Object.assign(new Error("Calling `print()` on non-node object."), { - parentNode: parent, - allowedProperties: visitorKeys, - printingProperty: key, - printingValue: path9.node, - pathStack: path9.stack.length > 5 ? ["...", ...path9.stack.slice(-5)] : [...path9.stack] - }); - }; -} -var create_print_pre_check_function_default = createPrintPreCheckFunction; -function printIgnored(path9, options8) { - const { - originalText, - [Symbol.for("comments")]: comments, - locStart, - locEnd, - [Symbol.for("printedComments")]: printedComments - } = options8; - const { node } = path9; - const start = locStart(node); - const end = locEnd(node); - for (const comment of comments) { - if (locStart(comment) >= start && locEnd(comment) <= end) { - printedComments.add(comment); - } - } - return originalText.slice(start, end); -} -var print_ignored_default = printIgnored; -async function printAstToDoc(ast, options8) { - ({ ast } = await prepareToPrint(ast, options8)); - const cache = /* @__PURE__ */ new Map(); - const path9 = new ast_path_default(ast); - const ensurePrintingNode = create_print_pre_check_function_default(options8); - const embeds = /* @__PURE__ */ new Map(); - await printEmbeddedLanguages(path9, mainPrint, options8, printAstToDoc, embeds); - const doc2 = await callPluginPrintFunction( - path9, - options8, - mainPrint, - void 0, - embeds - ); - ensureAllCommentsPrinted(options8); - return doc2; - function mainPrint(selector, args) { - if (selector === void 0 || selector === path9) { - return mainPrintInternal(args); - } - if (Array.isArray(selector)) { - return path9.call(() => mainPrintInternal(args), ...selector); - } - return path9.call(() => mainPrintInternal(args), selector); - } - function mainPrintInternal(args) { - ensurePrintingNode(path9); - const value = path9.node; - if (value === void 0 || value === null) { - return ""; - } - const shouldCache = value && typeof value === "object" && args === void 0; - if (shouldCache && cache.has(value)) { - return cache.get(value); - } - const doc3 = callPluginPrintFunction(path9, options8, mainPrint, args, embeds); - if (shouldCache) { - cache.set(value, doc3); - } - return doc3; - } -} -function callPluginPrintFunction(path9, options8, printPath, args, embeds) { - var _a3; - const { node } = path9; - const { printer: printer2 } = options8; - let doc2; - if ((_a3 = printer2.hasPrettierIgnore) == null ? void 0 : _a3.call(printer2, path9)) { - doc2 = print_ignored_default(path9, options8); - } else if (embeds.has(node)) { - doc2 = embeds.get(node); - } else { - doc2 = printer2.print(path9, options8, printPath, args); - } - if (node === options8.cursorNode) { - doc2 = inheritLabel(doc2, (doc3) => [cursor2, doc3, cursor2]); - } - if (printer2.printComment && (!printer2.willPrintOwnComments || !printer2.willPrintOwnComments(path9, options8))) { - doc2 = printComments(path9, doc2, options8); - } - return doc2; -} -async function prepareToPrint(ast, options8) { - const comments = ast.comments ?? []; - options8[Symbol.for("comments")] = comments; - options8[Symbol.for("tokens")] = ast.tokens ?? []; - options8[Symbol.for("printedComments")] = /* @__PURE__ */ new Set(); - attachComments(ast, options8); - const { - printer: { preprocess } - } = options8; - ast = preprocess ? await preprocess(ast, options8) : ast; - return { ast, comments }; -} -var isJsonParser = ({ parser }) => parser === "json" || parser === "json5" || parser === "json-stringify"; -function findCommonAncestor(startNodeAndParents, endNodeAndParents) { - const startNodeAndAncestors = [ - startNodeAndParents.node, - ...startNodeAndParents.parentNodes - ]; - const endNodeAndAncestors = /* @__PURE__ */ new Set([ - endNodeAndParents.node, - ...endNodeAndParents.parentNodes - ]); - return startNodeAndAncestors.find( - (node) => jsonSourceElements.has(node.type) && endNodeAndAncestors.has(node) - ); -} -function dropRootParents(parents) { - let lastParentIndex = parents.length - 1; - for (; ; ) { - const parent = parents[lastParentIndex]; - if ((parent == null ? void 0 : parent.type) === "Program" || (parent == null ? void 0 : parent.type) === "File") { - lastParentIndex--; - } else { - break; - } - } - return parents.slice(0, lastParentIndex + 1); -} -function findSiblingAncestors(startNodeAndParents, endNodeAndParents, { locStart, locEnd }) { - let resultStartNode = startNodeAndParents.node; - let resultEndNode = endNodeAndParents.node; - if (resultStartNode === resultEndNode) { - return { - startNode: resultStartNode, - endNode: resultEndNode - }; - } - const startNodeStart = locStart(startNodeAndParents.node); - for (const endParent of dropRootParents(endNodeAndParents.parentNodes)) { - if (locStart(endParent) >= startNodeStart) { - resultEndNode = endParent; - } else { - break; - } - } - const endNodeEnd = locEnd(endNodeAndParents.node); - for (const startParent of dropRootParents(startNodeAndParents.parentNodes)) { - if (locEnd(startParent) <= endNodeEnd) { - resultStartNode = startParent; - } else { - break; - } - if (resultStartNode === resultEndNode) { - break; - } - } - return { - startNode: resultStartNode, - endNode: resultEndNode - }; -} -function findNodeAtOffset(node, offset, options8, predicate, parentNodes = [], type2) { - const { locStart, locEnd } = options8; - const start = locStart(node); - const end = locEnd(node); - if (offset > end || offset < start || type2 === "rangeEnd" && offset === start || type2 === "rangeStart" && offset === end) { - return; - } - for (const childNode of getSortedChildNodes(node, options8)) { - const childResult = findNodeAtOffset( - childNode, - offset, - options8, - predicate, - [node, ...parentNodes], - type2 - ); - if (childResult) { - return childResult; - } - } - if (!predicate || predicate(node, parentNodes[0])) { - return { - node, - parentNodes - }; - } -} -function isJsSourceElement(type2, parentType) { - return parentType !== "DeclareExportDeclaration" && type2 !== "TypeParameterDeclaration" && (type2 === "Directive" || type2 === "TypeAlias" || type2 === "TSExportAssignment" || type2.startsWith("Declare") || type2.startsWith("TSDeclare") || type2.endsWith("Statement") || type2.endsWith("Declaration")); -} -var jsonSourceElements = /* @__PURE__ */ new Set([ - "JsonRoot", - "ObjectExpression", - "ArrayExpression", - "StringLiteral", - "NumericLiteral", - "BooleanLiteral", - "NullLiteral", - "UnaryExpression", - "TemplateLiteral" -]); -var graphqlSourceElements = /* @__PURE__ */ new Set([ - "OperationDefinition", - "FragmentDefinition", - "VariableDefinition", - "TypeExtensionDefinition", - "ObjectTypeDefinition", - "FieldDefinition", - "DirectiveDefinition", - "EnumTypeDefinition", - "EnumValueDefinition", - "InputValueDefinition", - "InputObjectTypeDefinition", - "SchemaDefinition", - "OperationTypeDefinition", - "InterfaceTypeDefinition", - "UnionTypeDefinition", - "ScalarTypeDefinition" -]); -function isSourceElement(opts, node, parentNode) { - if (!node) { - return false; - } - switch (opts.parser) { - case "flow": - case "babel": - case "babel-flow": - case "babel-ts": - case "typescript": - case "acorn": - case "espree": - case "meriyah": - case "__babel_estree": - return isJsSourceElement(node.type, parentNode == null ? void 0 : parentNode.type); - case "json": - case "json5": - case "json-stringify": - return jsonSourceElements.has(node.type); - case "graphql": - return graphqlSourceElements.has(node.kind); - case "vue": - return node.tag !== "root"; - } - return false; -} -function calculateRange(text, opts, ast) { - let { rangeStart: start, rangeEnd: end, locStart, locEnd } = opts; - import_assert2.default.ok(end > start); - const firstNonWhitespaceCharacterIndex = text.slice(start, end).search(/\S/); - const isAllWhitespace = firstNonWhitespaceCharacterIndex === -1; - if (!isAllWhitespace) { - start += firstNonWhitespaceCharacterIndex; - for (; end > start; --end) { - if (/\S/.test(text[end - 1])) { - break; - } - } - } - const startNodeAndParents = findNodeAtOffset( - ast, - start, - opts, - (node, parentNode) => isSourceElement(opts, node, parentNode), - [], - "rangeStart" - ); - const endNodeAndParents = ( - // No need find Node at `end`, it will be the same as `startNodeAndParents` - isAllWhitespace ? startNodeAndParents : findNodeAtOffset( - ast, - end, - opts, - (node) => isSourceElement(opts, node), - [], - "rangeEnd" - ) - ); - if (!startNodeAndParents || !endNodeAndParents) { - return { - rangeStart: 0, - rangeEnd: 0 - }; - } - let startNode; - let endNode; - if (isJsonParser(opts)) { - const commonAncestor = findCommonAncestor( - startNodeAndParents, - endNodeAndParents - ); - startNode = commonAncestor; - endNode = commonAncestor; - } else { - ({ startNode, endNode } = findSiblingAncestors( - startNodeAndParents, - endNodeAndParents, - opts - )); - } - return { - rangeStart: Math.min(locStart(startNode), locStart(endNode)), - rangeEnd: Math.max(locEnd(startNode), locEnd(endNode)) - }; -} -function getCursorNode(ast, options8) { - const { cursorOffset, locStart, locEnd } = options8; - const getVisitorKeys = create_get_visitor_keys_function_default( - options8.printer.getVisitorKeys - ); - const nodeContainsCursor = (node) => locStart(node) <= cursorOffset && locEnd(node) >= cursorOffset; - let cursorNode = ast; - for (const node of getDescendants(ast, { - getVisitorKeys, - filter: nodeContainsCursor - })) { - cursorNode = node; - } - return cursorNode; -} -var get_cursor_node_default = getCursorNode; -var BOM = "\uFEFF"; -var CURSOR = Symbol("cursor"); -async function coreFormat(originalText, opts, addAlignmentSize = 0) { - if (!originalText || originalText.trim().length === 0) { - return { - formatted: "", - cursorOffset: -1, - comments: [] - }; - } - const { - ast, - text - } = await parse_default2(originalText, opts); - if (opts.cursorOffset >= 0) { - opts.cursorNode = get_cursor_node_default(ast, opts); - } - let doc2 = await printAstToDoc(ast, opts, addAlignmentSize); - if (addAlignmentSize > 0) { - doc2 = addAlignmentToDoc2([hardline2, doc2], addAlignmentSize, opts.tabWidth); - } - const result = printDocToString2(doc2, opts); - if (addAlignmentSize > 0) { - const trimmed = result.formatted.trim(); - if (result.cursorNodeStart !== void 0) { - result.cursorNodeStart -= result.formatted.indexOf(trimmed); - } - result.formatted = trimmed + convertEndOfLineToChars2(opts.endOfLine); - } - const comments = opts[Symbol.for("comments")]; - if (opts.cursorOffset >= 0) { - let oldCursorNodeStart; - let oldCursorNodeText; - let cursorOffsetRelativeToOldCursorNode; - let newCursorNodeStart; - let newCursorNodeText; - if (opts.cursorNode && result.cursorNodeText) { - oldCursorNodeStart = opts.locStart(opts.cursorNode); - oldCursorNodeText = text.slice(oldCursorNodeStart, opts.locEnd(opts.cursorNode)); - cursorOffsetRelativeToOldCursorNode = opts.cursorOffset - oldCursorNodeStart; - newCursorNodeStart = result.cursorNodeStart; - newCursorNodeText = result.cursorNodeText; - } else { - oldCursorNodeStart = 0; - oldCursorNodeText = text; - cursorOffsetRelativeToOldCursorNode = opts.cursorOffset; - newCursorNodeStart = 0; - newCursorNodeText = result.formatted; - } - if (oldCursorNodeText === newCursorNodeText) { - return { - formatted: result.formatted, - cursorOffset: newCursorNodeStart + cursorOffsetRelativeToOldCursorNode, - comments - }; - } - const oldCursorNodeCharArray = oldCursorNodeText.split(""); - oldCursorNodeCharArray.splice(cursorOffsetRelativeToOldCursorNode, 0, CURSOR); - const newCursorNodeCharArray = newCursorNodeText.split(""); - const cursorNodeDiff = (0, import_diff.diffArrays)(oldCursorNodeCharArray, newCursorNodeCharArray); - let cursorOffset = newCursorNodeStart; - for (const entry of cursorNodeDiff) { - if (entry.removed) { - if (entry.value.includes(CURSOR)) { - break; - } - } else { - cursorOffset += entry.count; - } - } - return { - formatted: result.formatted, - cursorOffset, - comments - }; - } - return { - formatted: result.formatted, - cursorOffset: -1, - comments - }; -} -async function formatRange(originalText, opts) { - const { - ast, - text - } = await parse_default2(originalText, opts); - const { - rangeStart, - rangeEnd - } = calculateRange(text, opts, ast); - const rangeString = text.slice(rangeStart, rangeEnd); - const rangeStart2 = Math.min(rangeStart, text.lastIndexOf("\n", rangeStart) + 1); - const indentString2 = text.slice(rangeStart2, rangeStart).match(/^\s*/)[0]; - const alignmentSize = get_alignment_size_default(indentString2, opts.tabWidth); - const rangeResult = await coreFormat(rangeString, { - ...opts, - rangeStart: 0, - rangeEnd: Number.POSITIVE_INFINITY, - // Track the cursor offset only if it's within our range - cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset <= rangeEnd ? opts.cursorOffset - rangeStart : -1, - // Always use `lf` to format, we'll replace it later - endOfLine: "lf" - }, alignmentSize); - const rangeTrimmed = rangeResult.formatted.trimEnd(); - let { - cursorOffset - } = opts; - if (cursorOffset > rangeEnd) { - cursorOffset += rangeTrimmed.length - rangeString.length; - } else if (rangeResult.cursorOffset >= 0) { - cursorOffset = rangeResult.cursorOffset + rangeStart; - } - let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd); - if (opts.endOfLine !== "lf") { - const eol = convertEndOfLineToChars2(opts.endOfLine); - if (cursorOffset >= 0 && eol === "\r\n") { - cursorOffset += countEndOfLineChars(formatted.slice(0, cursorOffset), "\n"); - } - formatted = string_replace_all_default2( - /* isOptionalObject*/ - false, - formatted, - "\n", - eol - ); - } - return { - formatted, - cursorOffset, - comments: rangeResult.comments - }; -} -function ensureIndexInText(text, index, defaultValue) { - if (typeof index !== "number" || Number.isNaN(index) || index < 0 || index > text.length) { - return defaultValue; - } - return index; -} -function normalizeIndexes(text, options8) { - let { - cursorOffset, - rangeStart, - rangeEnd - } = options8; - cursorOffset = ensureIndexInText(text, cursorOffset, -1); - rangeStart = ensureIndexInText(text, rangeStart, 0); - rangeEnd = ensureIndexInText(text, rangeEnd, text.length); - return { - ...options8, - cursorOffset, - rangeStart, - rangeEnd - }; -} -function normalizeInputAndOptions(text, options8) { - let { - cursorOffset, - rangeStart, - rangeEnd, - endOfLine - } = normalizeIndexes(text, options8); - const hasBOM = text.charAt(0) === BOM; - if (hasBOM) { - text = text.slice(1); - cursorOffset--; - rangeStart--; - rangeEnd--; - } - if (endOfLine === "auto") { - endOfLine = guessEndOfLine(text); - } - if (text.includes("\r")) { - const countCrlfBefore = (index) => countEndOfLineChars(text.slice(0, Math.max(index, 0)), "\r\n"); - cursorOffset -= countCrlfBefore(cursorOffset); - rangeStart -= countCrlfBefore(rangeStart); - rangeEnd -= countCrlfBefore(rangeEnd); - text = normalizeEndOfLine(text); - } - return { - hasBOM, - text, - options: normalizeIndexes(text, { - ...options8, - cursorOffset, - rangeStart, - rangeEnd, - endOfLine - }) - }; -} -async function hasPragma(text, options8) { - const selectedParser = await resolveParser(options8); - return !selectedParser.hasPragma || selectedParser.hasPragma(text); -} -async function formatWithCursor(originalText, originalOptions) { - let { - hasBOM, - text, - options: options8 - } = normalizeInputAndOptions(originalText, await normalize_format_options_default(originalOptions)); - if (options8.rangeStart >= options8.rangeEnd && text !== "" || options8.requirePragma && !await hasPragma(text, options8)) { - return { - formatted: originalText, - cursorOffset: originalOptions.cursorOffset, - comments: [] - }; - } - let result; - if (options8.rangeStart > 0 || options8.rangeEnd < text.length) { - result = await formatRange(text, options8); - } else { - if (!options8.requirePragma && options8.insertPragma && options8.printer.insertPragma && !await hasPragma(text, options8)) { - text = options8.printer.insertPragma(text); - } - result = await coreFormat(text, options8); - } - if (hasBOM) { - result.formatted = BOM + result.formatted; - if (result.cursorOffset >= 0) { - result.cursorOffset++; - } - } - return result; -} -async function parse22(originalText, originalOptions, devOptions) { - const { - text, - options: options8 - } = normalizeInputAndOptions(originalText, await normalize_format_options_default(originalOptions)); - const parsed = await parse_default2(text, options8); - if (devOptions) { - if (devOptions.preprocessForPrint) { - parsed.ast = await prepareToPrint(parsed.ast, options8); - } - if (devOptions.massage) { - parsed.ast = massage_ast_default(parsed.ast, options8); - } - } - return parsed; -} -async function formatAst(ast, options8) { - options8 = await normalize_format_options_default(options8); - const doc2 = await printAstToDoc(ast, options8); - return printDocToString2(doc2, options8); -} -async function formatDoc(doc2, options8) { - const text = printDocToDebug(doc2); - const { - formatted - } = await formatWithCursor(text, { - ...options8, - parser: "__js_expression" - }); - return formatted; -} -async function printToDoc(originalText, options8) { - options8 = await normalize_format_options_default(options8); - const { - ast - } = await parse_default2(originalText, options8); - return printAstToDoc(ast, options8); -} -async function printDocToString22(doc2, options8) { - return printDocToString2(doc2, await normalize_format_options_default(options8)); -} -var import_micromatch = __toESM3(require_micromatch(), 1); -var copyProperty = (to3, from, property, ignoreNonConfigurable) => { - if (property === "length" || property === "prototype") { - return; - } - if (property === "arguments" || property === "caller") { - return; - } - const toDescriptor = Object.getOwnPropertyDescriptor(to3, property); - const fromDescriptor = Object.getOwnPropertyDescriptor(from, property); - if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) { - return; - } - Object.defineProperty(to3, property, fromDescriptor); -}; -var canCopyProperty = function(toDescriptor, fromDescriptor) { - return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value); -}; -var changePrototype = (to3, from) => { - const fromPrototype = Object.getPrototypeOf(from); - if (fromPrototype === Object.getPrototypeOf(to3)) { - return; - } - Object.setPrototypeOf(to3, fromPrototype); -}; -var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/ -${fromBody}`; -var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString"); -var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name"); -var changeToString = (to3, from, name) => { - const withName = name === "" ? "" : `with ${name.trim()}() `; - const newToString = wrappedToString.bind(null, withName, from.toString()); - Object.defineProperty(newToString, "name", toStringName); - Object.defineProperty(to3, "toString", { ...toStringDescriptor, value: newToString }); -}; -function mimicFunction(to3, from, { ignoreNonConfigurable = false } = {}) { - const { name } = to3; - for (const property of Reflect.ownKeys(from)) { - copyProperty(to3, from, property, ignoreNonConfigurable); - } - changePrototype(to3, from); - changeToString(to3, from, name); - return to3; -} -var import_map_age_cleaner = __toESM3(require_dist3(), 1); -var cacheStore = /* @__PURE__ */ new WeakMap(); -function mem(fn6, { cacheKey, cache = /* @__PURE__ */ new Map(), maxAge } = {}) { - if (typeof maxAge === "number") { - (0, import_map_age_cleaner.default)(cache); - } - const memoized = function(...arguments_) { - const key = cacheKey ? cacheKey(arguments_) : arguments_[0]; - const cacheItem = cache.get(key); - if (cacheItem) { - return cacheItem.data; - } - const result = fn6.apply(this, arguments_); - cache.set(key, { - data: result, - maxAge: maxAge ? Date.now() + maxAge : Number.POSITIVE_INFINITY - }); - return result; - }; - mimicFunction(memoized, fn6, { - ignoreNonConfigurable: true - }); - cacheStore.set(memoized, cache); - return memoized; -} -function memClear(fn6) { - const cache = cacheStore.get(fn6); - if (!cache) { - throw new TypeError("Can't clear a function that was not memoized!"); - } - if (typeof cache.clear !== "function") { - throw new TypeError("The cache Map can't be cleared!"); - } - cache.clear(); -} -function partition2(array2, predicate) { - const result = [[], []]; - for (const value of array2) { - result[predicate(value) ? 0 : 1].push(value); - } - return result; -} -var partition_default = partition2; -var import_editorconfig2 = __toESM3(require_src(), 1); -var import_editorconfig_to_prettier = __toESM3(require_editorconfig_to_prettier(), 1); -var MARKERS = [".git", ".hg"]; -var markerExists = (directory) => MARKERS.some((mark) => import_fs2.default.existsSync(import_path5.default.join(directory, mark))); -function findProjectRoot(directory) { - while (!markerExists(directory)) { - const parentDirectory = import_path5.default.resolve(directory, ".."); - if (parentDirectory === directory) { - break; - } - directory = parentDirectory; - } - return directory; -} -var find_project_root_default = findProjectRoot; -async function loadEditorConfig(filePath) { - const editorConfig = await import_editorconfig2.default.parse(filePath, { - root: find_project_root_default(import_path4.default.dirname(import_path4.default.resolve(filePath))) - }); - const config = (0, import_editorconfig_to_prettier.default)(editorConfig); - if (config) { - delete config.insertFinalNewline; - } - return config; -} -var resolve_editorconfig_default = loadEditorConfig; -var import_parse_async = __toESM3(require_parse_async(), 1); -var import_parse3 = __toESM3(require_parse3(), 1); -function requireFromFile(id2, parent) { - const require22 = (0, import_module3.createRequire)(parent); - return require22(id2); -} -var require_from_file_default = requireFromFile; -var isWindows = import_process3.default.platform === "win32"; -var own = {}.hasOwnProperty; -var classRegExp = /^([A-Z][a-z\d]*)+$/; -var kTypes = /* @__PURE__ */ new Set([ - "string", - "function", - "number", - "object", - // Accept 'Function' and 'Object' as alternative to the lower cased version. - "Function", - "Object", - "boolean", - "bigint", - "symbol" -]); -var codes = {}; -function formatList(array2, type2 = "and") { - return array2.length < 3 ? array2.join(` ${type2} `) : `${array2.slice(0, -1).join(", ")}, ${type2} ${array2[array2.length - 1]}`; -} -var messages = /* @__PURE__ */ new Map(); -var nodeInternalPrefix = "__node_internal_"; -var userStackTraceLimit; -codes.ERR_INVALID_ARG_TYPE = createError( - "ERR_INVALID_ARG_TYPE", - /** - * @param {string} name - * @param {Array | string} expected - * @param {unknown} actual - */ - (name, expected, actual) => { - (0, import_assert4.default)(typeof name === "string", "'name' must be a string"); - if (!Array.isArray(expected)) { - expected = [expected]; - } - let message = "The "; - if (name.endsWith(" argument")) { - message += `${name} `; - } else { - const type2 = name.includes(".") ? "property" : "argument"; - message += `"${name}" ${type2} `; - } - message += "must be "; - const types = []; - const instances = []; - const other = []; - for (const value of expected) { - (0, import_assert4.default)( - typeof value === "string", - "All expected entries have to be of type string" - ); - if (kTypes.has(value)) { - types.push(value.toLowerCase()); - } else if (classRegExp.exec(value) === null) { - (0, import_assert4.default)( - value !== "object", - 'The value "object" should be written as "Object"' - ); - other.push(value); - } else { - instances.push(value); - } - } - if (instances.length > 0) { - const pos = types.indexOf("object"); - if (pos !== -1) { - types.slice(pos, 1); - instances.push("Object"); - } - } - if (types.length > 0) { - message += `${types.length > 1 ? "one of type" : "of type"} ${formatList( - types, - "or" - )}`; - if (instances.length > 0 || other.length > 0) - message += " or "; - } - if (instances.length > 0) { - message += `an instance of ${formatList(instances, "or")}`; - if (other.length > 0) - message += " or "; - } - if (other.length > 0) { - if (other.length > 1) { - message += `one of ${formatList(other, "or")}`; - } else { - if (other[0].toLowerCase() !== other[0]) - message += "an "; - message += `${other[0]}`; - } - } - message += `. Received ${determineSpecificType(actual)}`; - return message; - }, - TypeError -); -codes.ERR_INVALID_MODULE_SPECIFIER = createError( - "ERR_INVALID_MODULE_SPECIFIER", - /** - * @param {string} request - * @param {string} reason - * @param {string} [base] - */ - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ""}`; - }, - TypeError -); -codes.ERR_INVALID_PACKAGE_CONFIG = createError( - "ERR_INVALID_PACKAGE_CONFIG", - /** - * @param {string} path - * @param {string} [base] - * @param {string} [message] - */ - (path9, base, message) => { - return `Invalid package config ${path9}${base ? ` while importing ${base}` : ""}${message ? `. ${message}` : ""}`; - }, - Error -); -codes.ERR_INVALID_PACKAGE_TARGET = createError( - "ERR_INVALID_PACKAGE_TARGET", - /** - * @param {string} pkgPath - * @param {string} key - * @param {unknown} target - * @param {boolean} [isImport=false] - * @param {string} [base] - */ - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === "string" && !isImport && target.length > 0 && !target.startsWith("./"); - if (key === ".") { - (0, import_assert4.default)(isImport === false); - return `Invalid "exports" main target ${JSON.stringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ""}${relError ? '; targets must start with "./"' : ""}`; - } - return `Invalid "${isImport ? "imports" : "exports"}" target ${JSON.stringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ""}${relError ? '; targets must start with "./"' : ""}`; - }, - Error -); -codes.ERR_MODULE_NOT_FOUND = createError( - "ERR_MODULE_NOT_FOUND", - /** - * @param {string} path - * @param {string} base - * @param {string} [type] - */ - (path9, base, type2 = "package") => { - return `Cannot find ${type2} '${path9}' imported from ${base}`; - }, - Error -); -codes.ERR_NETWORK_IMPORT_DISALLOWED = createError( - "ERR_NETWORK_IMPORT_DISALLOWED", - "import of '%s' by %s is not supported: %s", - Error -); -codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError( - "ERR_PACKAGE_IMPORT_NOT_DEFINED", - /** - * @param {string} specifier - * @param {string} packagePath - * @param {string} base - */ - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ""} imported from ${base}`; - }, - TypeError -); -codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError( - "ERR_PACKAGE_PATH_NOT_EXPORTED", - /** - * @param {string} pkgPath - * @param {string} subpath - * @param {string} [base] - */ - (pkgPath, subpath, base = void 0) => { - if (subpath === ".") - return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - }, - Error -); -codes.ERR_UNSUPPORTED_DIR_IMPORT = createError( - "ERR_UNSUPPORTED_DIR_IMPORT", - "Directory import '%s' is not supported resolving ES modules imported from %s", - Error -); -codes.ERR_UNKNOWN_FILE_EXTENSION = createError( - "ERR_UNKNOWN_FILE_EXTENSION", - /** - * @param {string} ext - * @param {string} path - */ - (ext, path9) => { - return `Unknown file extension "${ext}" for ${path9}`; - }, - TypeError -); -codes.ERR_INVALID_ARG_VALUE = createError( - "ERR_INVALID_ARG_VALUE", - /** - * @param {string} name - * @param {unknown} value - * @param {string} [reason='is invalid'] - */ - (name, value, reason = "is invalid") => { - let inspected = (0, import_util.inspect)(value); - if (inspected.length > 128) { - inspected = `${inspected.slice(0, 128)}...`; - } - const type2 = name.includes(".") ? "property" : "argument"; - return `The ${type2} '${name}' ${reason}. Received ${inspected}`; - }, - TypeError - // Note: extra classes have been shaken out. - // , RangeError -); -codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError( - "ERR_UNSUPPORTED_ESM_URL_SCHEME", - /** - * @param {URL} url - * @param {Array} supported - */ - (url, supported) => { - let message = `Only URLs with a scheme in: ${formatList( - supported - )} are supported by the default ESM loader`; - if (isWindows && url.protocol.length === 2) { - message += ". On Windows, absolute paths must be valid file:// URLs"; - } - message += `. Received protocol '${url.protocol}'`; - return message; - }, - Error -); -function createError(sym, value, def) { - messages.set(sym, value); - return makeNodeErrorWithCode(def, sym); -} -function makeNodeErrorWithCode(Base, key) { - return NodeError; - function NodeError(...args) { - const limit = Error.stackTraceLimit; - if (isErrorStackTraceLimitWritable()) - Error.stackTraceLimit = 0; - const error2 = new Base(); - if (isErrorStackTraceLimitWritable()) - Error.stackTraceLimit = limit; - const message = getMessage(key, args, error2); - Object.defineProperties(error2, { - // Note: no need to implement `kIsNodeError` symbol, would be hard, - // probably. - message: { - value: message, - enumerable: false, - writable: true, - configurable: true - }, - toString: { - /** @this {Error} */ - value() { - return `${this.name} [${key}]: ${this.message}`; - }, - enumerable: false, - writable: true, - configurable: true - } - }); - captureLargerStackTrace(error2); - error2.code = key; - return error2; - } -} -function isErrorStackTraceLimitWritable() { - try { - if (import_v8.default.startupSnapshot.isBuildingSnapshot()) { - return false; - } - } catch { - } - const desc = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit"); - if (desc === void 0) { - return Object.isExtensible(Error); - } - return own.call(desc, "writable") && desc.writable !== void 0 ? desc.writable : desc.set !== void 0; -} -function hideStackFrames(fn6) { - const hidden = nodeInternalPrefix + fn6.name; - Object.defineProperty(fn6, "name", { value: hidden }); - return fn6; -} -var captureLargerStackTrace = hideStackFrames( - /** - * @param {Error} error - * @returns {Error} - */ - // @ts-expect-error: fine - function(error2) { - const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); - if (stackTraceLimitIsWritable) { - userStackTraceLimit = Error.stackTraceLimit; - Error.stackTraceLimit = Number.POSITIVE_INFINITY; - } - Error.captureStackTrace(error2); - if (stackTraceLimitIsWritable) - Error.stackTraceLimit = userStackTraceLimit; - return error2; - } -); -function getMessage(key, args, self2) { - const message = messages.get(key); - (0, import_assert4.default)(message !== void 0, "expected `message` to be found"); - if (typeof message === "function") { - (0, import_assert4.default)( - message.length <= args.length, - // Default options do not count. - `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${message.length}).` - ); - return Reflect.apply(message, self2, args); - } - const regex = /%[dfijoOs]/g; - let expectedLength = 0; - while (regex.exec(message) !== null) - expectedLength++; - (0, import_assert4.default)( - expectedLength === args.length, - `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).` - ); - if (args.length === 0) - return message; - args.unshift(message); - return Reflect.apply(import_util.format, null, args); -} -function determineSpecificType(value) { - if (value === null || value === void 0) { - return String(value); - } - if (typeof value === "function" && value.name) { - return `function ${value.name}`; - } - if (typeof value === "object") { - if (value.constructor && value.constructor.name) { - return `an instance of ${value.constructor.name}`; - } - return `${(0, import_util.inspect)(value, { depth: -1 })}`; - } - let inspected = (0, import_util.inspect)(value, { colors: false }); - if (inspected.length > 28) { - inspected = `${inspected.slice(0, 25)}...`; - } - return `type ${typeof value} (${inspected})`; -} -var reader = { read }; -var package_json_reader_default = reader; -function read(jsonPath) { - try { - const string = import_fs4.default.readFileSync( - import_path7.default.toNamespacedPath(import_path7.default.join(import_path7.default.dirname(jsonPath), "package.json")), - "utf8" - ); - return { string }; - } catch (error2) { - const exception2 = ( - /** @type {ErrnoException} */ - error2 - ); - if (exception2.code === "ENOENT") { - return { string: void 0 }; - } - throw exception2; - } -} -var { ERR_INVALID_PACKAGE_CONFIG } = codes; -var packageJsonCache = /* @__PURE__ */ new Map(); -function getPackageConfig(path9, specifier, base) { - const existing = packageJsonCache.get(path9); - if (existing !== void 0) { - return existing; - } - const source = package_json_reader_default.read(path9).string; - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path9, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJsonCache.set(path9, packageConfig2); - return packageConfig2; - } - let packageJson; - try { - packageJson = JSON.parse(source); - } catch (error2) { - const exception2 = ( - /** @type {ErrnoException} */ - error2 - ); - throw new ERR_INVALID_PACKAGE_CONFIG( - path9, - (base ? `"${specifier}" from ` : "") + (0, import_url6.fileURLToPath)(base || specifier), - exception2.message - ); - } - const { exports, imports, main, name, type: type2 } = packageJson; - const packageConfig = { - pjsonPath: path9, - exists: true, - main: typeof main === "string" ? main : void 0, - name: typeof name === "string" ? name : void 0, - type: type2 === "module" || type2 === "commonjs" ? type2 : "none", - // @ts-expect-error Assume `Record`. - exports, - // @ts-expect-error Assume `Record`. - imports: imports && typeof imports === "object" ? imports : void 0 - }; - packageJsonCache.set(path9, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved) { - let packageJsonUrl = new import_url6.URL("package.json", resolved); - while (true) { - const packageJsonPath2 = packageJsonUrl.pathname; - if (packageJsonPath2.endsWith("node_modules/package.json")) - break; - const packageConfig2 = getPackageConfig( - (0, import_url6.fileURLToPath)(packageJsonUrl), - resolved - ); - if (packageConfig2.exists) - return packageConfig2; - const lastPackageJsonUrl = packageJsonUrl; - packageJsonUrl = new import_url6.URL("../package.json", packageJsonUrl); - if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) - break; - } - const packageJsonPath = (0, import_url6.fileURLToPath)(packageJsonUrl); - const packageConfig = { - pjsonPath: packageJsonPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJsonCache.set(packageJsonPath, packageConfig); - return packageConfig; -} -function getPackageType(url) { - const packageConfig = getPackageScopeConfig(url); - return packageConfig.type; -} -var { ERR_UNKNOWN_FILE_EXTENSION } = codes; -var hasOwnProperty = {}.hasOwnProperty; -var extensionFormatMap = { - // @ts-expect-error: hush. - __proto__: null, - ".cjs": "commonjs", - ".js": "module", - ".json": "json", - ".mjs": "module" -}; -function mimeToFormat(mime) { - if (mime && /\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?/i.test(mime)) - return "module"; - if (mime === "application/json") - return "json"; - return null; -} -var protocolHandlers = { - // @ts-expect-error: hush. - __proto__: null, - "data:": getDataProtocolModuleFormat, - "file:": getFileProtocolModuleFormat, - "http:": getHttpProtocolModuleFormat, - "https:": getHttpProtocolModuleFormat, - "node:"() { - return "builtin"; - } -}; -function getDataProtocolModuleFormat(parsed) { - const { 1: mime } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec( - parsed.pathname - ) || [null, null, null]; - return mimeToFormat(mime); -} -function extname(url) { - const pathname = url.pathname; - let index = pathname.length; - while (index--) { - const code = pathname.codePointAt(index); - if (code === 47) { - return ""; - } - if (code === 46) { - return pathname.codePointAt(index - 1) === 47 ? "" : pathname.slice(index); - } - } - return ""; -} -function getFileProtocolModuleFormat(url, _context, ignoreErrors) { - const ext = extname(url); - if (ext === ".js") { - return getPackageType(url) === "module" ? "module" : "commonjs"; - } - const format3 = extensionFormatMap[ext]; - if (format3) - return format3; - if (ignoreErrors) { - return void 0; - } - const filepath = (0, import_url5.fileURLToPath)(url); - throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath); -} -function getHttpProtocolModuleFormat() { -} -function defaultGetFormatWithoutErrors(url, context) { - if (!hasOwnProperty.call(protocolHandlers, url.protocol)) { - return null; - } - return protocolHandlers[url.protocol](url, context, true) || null; -} -var { ERR_INVALID_ARG_VALUE } = codes; -var DEFAULT_CONDITIONS = Object.freeze(["node", "import"]); -var DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); -function getDefaultConditions() { - return DEFAULT_CONDITIONS; -} -function getDefaultConditionsSet() { - return DEFAULT_CONDITIONS_SET; -} -function getConditionsSet(conditions) { - if (conditions !== void 0 && conditions !== getDefaultConditions()) { - if (!Array.isArray(conditions)) { - throw new ERR_INVALID_ARG_VALUE( - "conditions", - conditions, - "expected an array" - ); - } - return new Set(conditions); - } - return getDefaultConditionsSet(); -} -var RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace]; -var experimentalNetworkImports = false; -var { - ERR_NETWORK_IMPORT_DISALLOWED, - ERR_INVALID_MODULE_SPECIFIER, - ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG2, - ERR_INVALID_PACKAGE_TARGET, - ERR_MODULE_NOT_FOUND, - ERR_PACKAGE_IMPORT_NOT_DEFINED, - ERR_PACKAGE_PATH_NOT_EXPORTED, - ERR_UNSUPPORTED_DIR_IMPORT, - ERR_UNSUPPORTED_ESM_URL_SCHEME -} = codes; -var own2 = {}.hasOwnProperty; -var invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i; -var deprecatedInvalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -var invalidPackageNameRegEx = /^\.|%|\\/; -var patternRegEx = /\*/g; -var encodedSepRegEx = /%2f|%5c/i; -var emittedPackageWarnings = /* @__PURE__ */ new Set(); -var doubleSlashRegEx = /[/\\]{2}/; -function emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) { - const pjsonPath = (0, import_url4.fileURLToPath)(packageJsonUrl); - const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null; - import_process2.default.emitWarning( - `Use of deprecated ${double ? "double slash" : "leading or trailing slash matching"} resolving "${target}" for module request "${request}" ${request === match ? "" : `matched to "${match}" `}in the "${internal ? "imports" : "exports"}" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, import_url4.fileURLToPath)(base)}` : ""}.`, - "DeprecationWarning", - "DEP0166" - ); -} -function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { - const format3 = defaultGetFormatWithoutErrors(url, { parentURL: base.href }); - if (format3 !== "module") - return; - const path9 = (0, import_url4.fileURLToPath)(url.href); - const pkgPath = (0, import_url4.fileURLToPath)(new import_url4.URL(".", packageJsonUrl)); - const basePath = (0, import_url4.fileURLToPath)(base); - if (main) - import_process2.default.emitWarning( - `Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, excluding the full filename and extension to the resolved file at "${path9.slice( - pkgPath.length - )}", imported from ${basePath}. - Automatic extension resolution of the "main" field isdeprecated for ES modules.`, - "DeprecationWarning", - "DEP0151" - ); - else - import_process2.default.emitWarning( - `No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path9.slice( - pkgPath.length - )}", imported from ${basePath}. -Default "index" lookups for the main are deprecated for ES modules.`, - "DeprecationWarning", - "DEP0151" - ); -} -function tryStatSync(path9) { - try { - return (0, import_fs3.statSync)(path9); - } catch { - return new import_fs3.Stats(); - } -} -function fileExists(url) { - const stats = (0, import_fs3.statSync)(url, { throwIfNoEntry: false }); - const isFile = stats ? stats.isFile() : void 0; - return isFile === null || isFile === void 0 ? false : isFile; -} -function legacyMainResolve(packageJsonUrl, packageConfig, base) { - let guess; - if (packageConfig.main !== void 0) { - guess = new import_url4.URL(packageConfig.main, packageJsonUrl); - if (fileExists(guess)) - return guess; - const tries2 = [ - `./${packageConfig.main}.js`, - `./${packageConfig.main}.json`, - `./${packageConfig.main}.node`, - `./${packageConfig.main}/index.js`, - `./${packageConfig.main}/index.json`, - `./${packageConfig.main}/index.node` - ]; - let i22 = -1; - while (++i22 < tries2.length) { - guess = new import_url4.URL(tries2[i22], packageJsonUrl); - if (fileExists(guess)) - break; - guess = void 0; - } - if (guess) { - emitLegacyIndexDeprecation( - guess, - packageJsonUrl, - base, - packageConfig.main - ); - return guess; - } - } - const tries = ["./index.js", "./index.json", "./index.node"]; - let i = -1; - while (++i < tries.length) { - guess = new import_url4.URL(tries[i], packageJsonUrl); - if (fileExists(guess)) - break; - guess = void 0; - } - if (guess) { - emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); - return guess; - } - throw new ERR_MODULE_NOT_FOUND( - (0, import_url4.fileURLToPath)(new import_url4.URL(".", packageJsonUrl)), - (0, import_url4.fileURLToPath)(base) - ); -} -function finalizeResolution(resolved, base, preserveSymlinks) { - if (encodedSepRegEx.exec(resolved.pathname) !== null) - throw new ERR_INVALID_MODULE_SPECIFIER( - resolved.pathname, - 'must not include encoded "/" or "\\" characters', - (0, import_url4.fileURLToPath)(base) - ); - const filePath = (0, import_url4.fileURLToPath)(resolved); - const stats = tryStatSync( - filePath.endsWith("/") ? filePath.slice(-1) : filePath - ); - if (stats.isDirectory()) { - const error2 = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, (0, import_url4.fileURLToPath)(base)); - error2.url = String(resolved); - throw error2; - } - if (!stats.isFile()) { - throw new ERR_MODULE_NOT_FOUND( - filePath || resolved.pathname, - base && (0, import_url4.fileURLToPath)(base), - "module" - ); - } - if (!preserveSymlinks) { - const real = (0, import_fs3.realpathSync)(filePath); - const { search, hash } = resolved; - resolved = (0, import_url4.pathToFileURL)(real + (filePath.endsWith(import_path6.default.sep) ? "/" : "")); - resolved.search = search; - resolved.hash = hash; - } - return resolved; -} -function importNotDefined(specifier, packageJsonUrl, base) { - return new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJsonUrl && (0, import_url4.fileURLToPath)(new import_url4.URL(".", packageJsonUrl)), - (0, import_url4.fileURLToPath)(base) - ); -} -function exportsNotFound(subpath, packageJsonUrl, base) { - return new ERR_PACKAGE_PATH_NOT_EXPORTED( - (0, import_url4.fileURLToPath)(new import_url4.URL(".", packageJsonUrl)), - subpath, - base && (0, import_url4.fileURLToPath)(base) - ); -} -function throwInvalidSubpath(request, match, packageJsonUrl, internal, base) { - const reason = `request is not a valid match in pattern "${match}" for the "${internal ? "imports" : "exports"}" resolution of ${(0, import_url4.fileURLToPath)(packageJsonUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - request, - reason, - base && (0, import_url4.fileURLToPath)(base) - ); -} -function invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { - target = typeof target === "object" && target !== null ? JSON.stringify(target, null, "") : `${target}`; - return new ERR_INVALID_PACKAGE_TARGET( - (0, import_url4.fileURLToPath)(new import_url4.URL(".", packageJsonUrl)), - subpath, - target, - internal, - base && (0, import_url4.fileURLToPath)(base) - ); -} -function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, isPathMap, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); - if (!target.startsWith("./")) { - if (internal && !target.startsWith("../") && !target.startsWith("/")) { - let isURL2 = false; - try { - new import_url4.URL(target); - isURL2 = true; - } catch { - } - if (!isURL2) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace.call( - patternRegEx, - target, - () => subpath - ) : target + subpath; - return packageResolve(exportTarget, packageJsonUrl, conditions); - } - } - throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); - } - if (invalidSegmentRegEx.exec(target.slice(2)) !== null) { - if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) { - if (!isPathMap) { - const request = pattern ? match.replace("*", () => subpath) : match + subpath; - const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call( - patternRegEx, - target, - () => subpath - ) : target; - emitInvalidSegmentDeprecation( - resolvedTarget, - request, - match, - packageJsonUrl, - internal, - base, - true - ); - } - } else { - throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); - } - } - const resolved = new import_url4.URL(target, packageJsonUrl); - const resolvedPath = resolved.pathname; - const packagePath = new import_url4.URL(".", packageJsonUrl).pathname; - if (!resolvedPath.startsWith(packagePath)) - throw invalidPackageTarget(match, target, packageJsonUrl, internal, base); - if (subpath === "") - return resolved; - if (invalidSegmentRegEx.exec(subpath) !== null) { - const request = pattern ? match.replace("*", () => subpath) : match + subpath; - if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) { - if (!isPathMap) { - const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call( - patternRegEx, - target, - () => subpath - ) : target; - emitInvalidSegmentDeprecation( - resolvedTarget, - request, - match, - packageJsonUrl, - internal, - base, - false - ); - } - } else { - throwInvalidSubpath(request, match, packageJsonUrl, internal, base); - } - } - if (pattern) { - return new import_url4.URL( - RegExpPrototypeSymbolReplace.call( - patternRegEx, - resolved.href, - () => subpath - ) - ); - } - return new import_url4.URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNumber = Number(key); - if (`${keyNumber}` !== key) - return false; - return keyNumber >= 0 && keyNumber < 4294967295; -} -function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJsonUrl, - base, - pattern, - internal, - isPathMap, - conditions - ); - } - if (Array.isArray(target)) { - const targetList = target; - if (targetList.length === 0) - return null; - let lastException; - let i = -1; - while (++i < targetList.length) { - const targetItem = targetList[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJsonUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - isPathMap, - conditions - ); - } catch (error2) { - const exception2 = ( - /** @type {ErrnoException} */ - error2 - ); - lastException = exception2; - if (exception2.code === "ERR_INVALID_PACKAGE_TARGET") - continue; - throw error2; - } - if (resolveResult === void 0) - continue; - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) { - return null; - } - throw lastException; - } - if (typeof target === "object" && target !== null) { - const keys = Object.getOwnPropertyNames(target); - let i = -1; - while (++i < keys.length) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG2( - (0, import_url4.fileURLToPath)(packageJsonUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - i = -1; - while (++i < keys.length) { - const key = keys[i]; - if (key === "default" || conditions && conditions.has(key)) { - const conditionalTarget = ( - /** @type {unknown} */ - target[key] - ); - const resolveResult = resolvePackageTarget( - packageJsonUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - isPathMap, - conditions - ); - if (resolveResult === void 0) - continue; - return resolveResult; - } - } - return null; - } - if (target === null) { - return null; - } - throw invalidPackageTarget( - packageSubpath, - target, - packageJsonUrl, - internal, - base - ); -} -function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { - if (typeof exports === "string" || Array.isArray(exports)) - return true; - if (typeof exports !== "object" || exports === null) - return false; - const keys = Object.getOwnPropertyNames(exports); - let isConditionalSugar = false; - let i = 0; - let j8 = -1; - while (++j8 < keys.length) { - const key = keys[j8]; - const curIsConditionalSugar = key === "" || key[0] !== "."; - if (i++ === 0) { - isConditionalSugar = curIsConditionalSugar; - } else if (isConditionalSugar !== curIsConditionalSugar) { - throw new ERR_INVALID_PACKAGE_CONFIG2( - (0, import_url4.fileURLToPath)(packageJsonUrl), - base, - `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` - ); - } - } - return isConditionalSugar; -} -function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { - const pjsonPath = (0, import_url4.fileURLToPath)(pjsonUrl); - if (emittedPackageWarnings.has(pjsonPath + "|" + match)) - return; - emittedPackageWarnings.add(pjsonPath + "|" + match); - import_process2.default.emitWarning( - `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, import_url4.fileURLToPath)(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, - "DeprecationWarning", - "DEP0155" - ); -} -function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { - let exports = packageConfig.exports; - if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) { - exports = { ".": exports }; - } - if (own2.call(exports, packageSubpath) && !packageSubpath.includes("*") && !packageSubpath.endsWith("/")) { - const target = exports[packageSubpath]; - const resolveResult = resolvePackageTarget( - packageJsonUrl, - target, - "", - packageSubpath, - base, - false, - false, - false, - conditions - ); - if (resolveResult === null || resolveResult === void 0) { - throw exportsNotFound(packageSubpath, packageJsonUrl, base); - } - return resolveResult; - } - let bestMatch = ""; - let bestMatchSubpath = ""; - const keys = Object.getOwnPropertyNames(exports); - let i = -1; - while (++i < keys.length) { - const key = keys[i]; - const patternIndex = key.indexOf("*"); - if (patternIndex !== -1 && packageSubpath.startsWith(key.slice(0, patternIndex))) { - if (packageSubpath.endsWith("/")) { - emitTrailingSlashPatternDeprecation( - packageSubpath, - packageJsonUrl, - base - ); - } - const patternTrailer = key.slice(patternIndex + 1); - if (packageSubpath.length >= key.length && packageSubpath.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf("*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = packageSubpath.slice( - patternIndex, - packageSubpath.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = ( - /** @type {unknown} */ - exports[bestMatch] - ); - const resolveResult = resolvePackageTarget( - packageJsonUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - false, - packageSubpath.endsWith("/"), - conditions - ); - if (resolveResult === null || resolveResult === void 0) { - throw exportsNotFound(packageSubpath, packageJsonUrl, base); - } - return resolveResult; - } - throw exportsNotFound(packageSubpath, packageJsonUrl, base); -} -function patternKeyCompare(a, b5) { - const aPatternIndex = a.indexOf("*"); - const bPatternIndex = b5.indexOf("*"); - const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLengthB = bPatternIndex === -1 ? b5.length : bPatternIndex + 1; - if (baseLengthA > baseLengthB) - return -1; - if (baseLengthB > baseLengthA) - return 1; - if (aPatternIndex === -1) - return 1; - if (bPatternIndex === -1) - return -1; - if (a.length > b5.length) - return -1; - if (b5.length > a.length) - return 1; - return 0; -} -function packageImportsResolve(name, base, conditions) { - if (name === "#" || name.startsWith("#/") || name.endsWith("/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, import_url4.fileURLToPath)(base)); - } - let packageJsonUrl; - const packageConfig = getPackageScopeConfig(base); - if (packageConfig.exists) { - packageJsonUrl = (0, import_url4.pathToFileURL)(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (own2.call(imports, name) && !name.includes("*")) { - const resolveResult = resolvePackageTarget( - packageJsonUrl, - imports[name], - "", - name, - base, - false, - true, - false, - conditions - ); - if (resolveResult !== null && resolveResult !== void 0) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath = ""; - const keys = Object.getOwnPropertyNames(imports); - let i = -1; - while (++i < keys.length) { - const key = keys[i]; - const patternIndex = key.indexOf("*"); - if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) { - const patternTrailer = key.slice(patternIndex + 1); - if (name.length >= key.length && name.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && key.lastIndexOf("*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = name.slice( - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJsonUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - false, - conditions - ); - if (resolveResult !== null && resolveResult !== void 0) { - return resolveResult; - } - } - } - } - } - throw importNotDefined(name, packageJsonUrl, base); -} -function parsePackageName2(specifier, base) { - let separatorIndex = specifier.indexOf("/"); - let validPackageName = true; - let isScoped = false; - if (specifier[0] === "@") { - isScoped = true; - if (separatorIndex === -1 || specifier.length === 0) { - validPackageName = false; - } else { - separatorIndex = specifier.indexOf("/", separatorIndex + 1); - } - } - const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); - if (invalidPackageNameRegEx.exec(packageName) !== null) { - validPackageName = false; - } - if (!validPackageName) { - throw new ERR_INVALID_MODULE_SPECIFIER( - specifier, - "is not a valid package name", - (0, import_url4.fileURLToPath)(base) - ); - } - const packageSubpath = "." + (separatorIndex === -1 ? "" : specifier.slice(separatorIndex)); - return { packageName, packageSubpath, isScoped }; -} -function packageResolve(specifier, base, conditions) { - if (import_module4.builtinModules.includes(specifier)) { - return new import_url4.URL("node:" + specifier); - } - const { packageName, packageSubpath, isScoped } = parsePackageName2( - specifier, - base - ); - const packageConfig = getPackageScopeConfig(base); - if (packageConfig.exists) { - const packageJsonUrl2 = (0, import_url4.pathToFileURL)(packageConfig.pjsonPath); - if (packageConfig.name === packageName && packageConfig.exports !== void 0 && packageConfig.exports !== null) { - return packageExportsResolve( - packageJsonUrl2, - packageSubpath, - packageConfig, - base, - conditions - ); - } - } - let packageJsonUrl = new import_url4.URL( - "./node_modules/" + packageName + "/package.json", - base - ); - let packageJsonPath = (0, import_url4.fileURLToPath)(packageJsonUrl); - let lastPath; - do { - const stat = tryStatSync(packageJsonPath.slice(0, -13)); - if (!stat.isDirectory()) { - lastPath = packageJsonPath; - packageJsonUrl = new import_url4.URL( - (isScoped ? "../../../../node_modules/" : "../../../node_modules/") + packageName + "/package.json", - packageJsonUrl - ); - packageJsonPath = (0, import_url4.fileURLToPath)(packageJsonUrl); - continue; - } - const packageConfig2 = getPackageConfig(packageJsonPath, specifier, base); - if (packageConfig2.exports !== void 0 && packageConfig2.exports !== null) { - return packageExportsResolve( - packageJsonUrl, - packageSubpath, - packageConfig2, - base, - conditions - ); - } - if (packageSubpath === ".") { - return legacyMainResolve(packageJsonUrl, packageConfig2, base); - } - return new import_url4.URL(packageSubpath, packageJsonUrl); - } while (packageJsonPath.length !== lastPath.length); - throw new ERR_MODULE_NOT_FOUND(packageName, (0, import_url4.fileURLToPath)(base)); -} -function isRelativeSpecifier(specifier) { - if (specifier[0] === ".") { - if (specifier.length === 1 || specifier[1] === "/") - return true; - if (specifier[1] === "." && (specifier.length === 2 || specifier[2] === "/")) { - return true; - } - } - return false; -} -function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { - if (specifier === "") - return false; - if (specifier[0] === "/") - return true; - return isRelativeSpecifier(specifier); -} -function moduleResolve(specifier, base, conditions, preserveSymlinks) { - const protocol = base.protocol; - const isRemote = protocol === "http:" || protocol === "https:"; - let resolved; - if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { - resolved = new import_url4.URL(specifier, base); - } else if (!isRemote && specifier[0] === "#") { - resolved = packageImportsResolve(specifier, base, conditions); - } else { - try { - resolved = new import_url4.URL(specifier); - } catch { - if (!isRemote) { - resolved = packageResolve(specifier, base, conditions); - } - } - } - (0, import_assert3.default)(resolved !== void 0, "expected to be defined"); - if (resolved.protocol !== "file:") { - return resolved; - } - return finalizeResolution(resolved, base, preserveSymlinks); -} -function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { - if (parsedParentURL) { - const parentProtocol = parsedParentURL.protocol; - if (parentProtocol === "http:" || parentProtocol === "https:") { - if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { - const parsedProtocol = parsed == null ? void 0 : parsed.protocol; - if (parsedProtocol && parsedProtocol !== "https:" && parsedProtocol !== "http:") { - throw new ERR_NETWORK_IMPORT_DISALLOWED( - specifier, - parsedParentURL, - "remote imports cannot import from a local location." - ); - } - return { url: (parsed == null ? void 0 : parsed.href) || "" }; - } - if (import_module4.builtinModules.includes(specifier)) { - throw new ERR_NETWORK_IMPORT_DISALLOWED( - specifier, - parsedParentURL, - "remote imports cannot import from a local location." - ); - } - throw new ERR_NETWORK_IMPORT_DISALLOWED( - specifier, - parsedParentURL, - "only relative and absolute specifiers are supported." - ); - } - } -} -function isURL(self2) { - return Boolean( - self2 && typeof self2 === "object" && "href" in self2 && typeof self2.href === "string" && "protocol" in self2 && typeof self2.protocol === "string" && self2.href && self2.protocol - ); -} -function throwIfInvalidParentURL(parentURL) { - if (parentURL === void 0) { - return; - } - if (typeof parentURL !== "string" && !isURL(parentURL)) { - throw new codes.ERR_INVALID_ARG_TYPE( - "parentURL", - ["string", "URL"], - parentURL - ); - } -} -function throwIfUnsupportedURLProtocol(url) { - const protocol = url.protocol; - if (protocol !== "file:" && protocol !== "data:" && protocol !== "node:") { - throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(url); - } -} -function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports2) { - const protocol = parsed == null ? void 0 : parsed.protocol; - if (protocol && protocol !== "file:" && protocol !== "data:" && (!experimentalNetworkImports2 || protocol !== "https:" && protocol !== "http:")) { - throw new ERR_UNSUPPORTED_ESM_URL_SCHEME( - parsed, - ["file", "data"].concat( - experimentalNetworkImports2 ? ["https", "http"] : [] - ) - ); - } -} -function defaultResolve(specifier, context = {}) { - const { parentURL } = context; - (0, import_assert3.default)(parentURL !== void 0, "expected `parentURL` to be defined"); - throwIfInvalidParentURL(parentURL); - let parsedParentURL; - if (parentURL) { - try { - parsedParentURL = new import_url4.URL(parentURL); - } catch { - } - } - let parsed; - try { - parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new import_url4.URL(specifier, parsedParentURL) : new import_url4.URL(specifier); - const protocol = parsed.protocol; - if (protocol === "data:" || experimentalNetworkImports && (protocol === "https:" || protocol === "http:")) { - return { url: parsed.href, format: null }; - } - } catch { - } - const maybeReturn = checkIfDisallowedImport( - specifier, - parsed, - parsedParentURL - ); - if (maybeReturn) - return maybeReturn; - if (parsed && parsed.protocol === "node:") - return { url: specifier }; - throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports); - const conditions = getConditionsSet(context.conditions); - const url = moduleResolve(specifier, new import_url4.URL(parentURL), conditions, false); - throwIfUnsupportedURLProtocol(url); - return { - // Do NOT cast `url` to a string: that will work even when there are real - // problems, silencing them - url: url.href, - format: defaultGetFormatWithoutErrors(url, { parentURL }) - }; -} -function resolve(specifier, parent) { - if (!parent) { - throw new Error( - "Please pass `parent`: `import-meta-resolve` cannot ponyfill that" - ); - } - try { - return defaultResolve(specifier, { parentURL: parent }).url; - } catch (error2) { - const exception2 = ( - /** @type {ErrnoException} */ - error2 - ); - if (exception2.code === "ERR_UNSUPPORTED_DIR_IMPORT" && typeof exception2.url === "string") { - return exception2.url; - } - throw error2; - } -} -function importFromFile(specifier, parent) { - const url = resolve(specifier, (0, import_url3.pathToFileURL)(parent).href); - return import(url); -} -var import_from_file_default = importFromFile; -var requireErrorCodesShouldBeIgnored = /* @__PURE__ */ new Set([ - "MODULE_NOT_FOUND", - "ERR_REQUIRE_ESM", - "ERR_PACKAGE_PATH_NOT_EXPORTED" -]); -async function loadExternalConfig(config, filepath) { - try { - return require_from_file_default(config, filepath); - } catch (error2) { - if (!requireErrorCodesShouldBeIgnored.has(error2 == null ? void 0 : error2.code)) { - throw error2; - } - } - const module2 = await import_from_file_default(config, filepath); - return module2.default; -} -var load_external_config_default = loadExternalConfig; -var { cosmiconfig } = mockable_default; -var searchPlaces = [ - "package.json", - ".prettierrc", - ".prettierrc.json", - ".prettierrc.yaml", - ".prettierrc.yml", - ".prettierrc.json5", - ".prettierrc.js", - ".prettierrc.mjs", - ".prettierrc.cjs", - "prettier.config.js", - "prettier.config.mjs", - "prettier.config.cjs", - ".prettierrc.toml" -]; -var loaders = { - async ".toml"(filePath, content) { - try { - return await (0, import_parse_async.default)(content); - } catch (error2) { - error2.message = `TOML Error in ${filePath}: -${error2.message}`; - throw error2; - } - }, - ".json5"(filePath, content) { - try { - return (0, import_parse3.default)(content); - } catch (error2) { - error2.message = `JSON5 Error in ${filePath}: -${error2.message}`; - throw error2; - } - } -}; -async function transform2(result) { - if (!(result == null ? void 0 : result.config)) { - return result; - } - let { config, filepath } = result; - if (typeof config === "string") { - config = await load_external_config_default(config, filepath); - result.config = config; - } - if (typeof config !== "object") { - throw new TypeError( - `Config is only allowed to be an object, but received ${typeof config} in "${filepath}"` - ); - } - delete config.$schema; - return result; -} -function getExplorer(options8) { - return cosmiconfig("prettier", { - cache: options8.cache, - transform: transform2, - searchPlaces, - loaders - }); -} -var get_prettier_config_explorer_default = getExplorer; -var getPrettierConfigExplorer = mem(get_prettier_config_explorer_default, { - cacheKey: ([options8]) => options8.cache -}); -var memoizedLoadEditorConfig = mem(resolve_editorconfig_default); -function clearCache() { - memClear(getPrettierConfigExplorer); - memClear(memoizedLoadEditorConfig); -} -function loadEditorConfig2(filePath, options8) { - if (!filePath || !options8.editorconfig) { - return; - } - return (options8.useCache ? memoizedLoadEditorConfig : resolve_editorconfig_default)(filePath); -} -function loadPrettierConfig(filePath, options8) { - const { useCache, config: configPath } = options8; - const { load: load2, search } = getPrettierConfigExplorer({ - cache: Boolean(useCache) - }); - return configPath ? load2(configPath) : search(filePath); -} -async function resolveConfig(filePath, options8) { - options8 = { useCache: true, ...options8 }; - const [result, editorConfigured] = await Promise.all([ - loadPrettierConfig(filePath, options8), - loadEditorConfig2(filePath, options8) - ]); - if (!result && !editorConfigured) { - return null; - } - const merged = { - ...editorConfigured, - ...mergeOverrides(result, filePath) - }; - if (Array.isArray(merged.plugins)) { - merged.plugins = merged.plugins.map( - (value) => typeof value === "string" && value.startsWith(".") ? import_path3.default.resolve(import_path3.default.dirname(result.filepath), value) : value - ); - } - return merged; -} -async function resolveConfigFile(filePath) { - const { search } = getPrettierConfigExplorer({ cache: false }); - const result = await search(filePath); - return result ? result.filepath : null; -} -function mergeOverrides(configResult, filePath) { - const { config, filepath: configPath } = configResult || {}; - const { overrides, ...options8 } = config || {}; - if (filePath && overrides) { - const relativeFilePath = import_path3.default.relative(import_path3.default.dirname(configPath), filePath); - for (const override of overrides) { - if (pathMatchesGlobs( - relativeFilePath, - override.files, - override.excludeFiles - )) { - Object.assign(options8, override.options); - } - } - } - return options8; -} -function pathMatchesGlobs(filePath, patterns, excludedPatterns) { - const patternList = Array.isArray(patterns) ? patterns : [patterns]; - const [withSlashes, withoutSlashes] = partition_default( - patternList, - (pattern) => pattern.includes("/") - ); - return import_micromatch.default.isMatch(filePath, withoutSlashes, { - ignore: excludedPatterns, - basename: true, - dot: true - }) || import_micromatch.default.isMatch(filePath, withSlashes, { - ignore: excludedPatterns, - basename: false, - dot: true - }); -} -var import_ignore = __toESM3(require_ignore(), 1); -async function readFile(filename) { - try { - return await import_promises2.default.readFile(filename, "utf8"); - } catch (error2) { - if (error2.code === "ENOENT") { - return; - } - throw new Error(`Unable to read '${filename}': ${error2.message}`); - } -} -var read_file_default = readFile; -var createIgnore = import_ignore.default.default; -var slash = import_path8.default.sep === "\\" ? (filepath) => string_replace_all_default2( - /* isOptionalObject*/ - false, - filepath, - "\\", - "/" -) : (filepath) => filepath; -async function createSingleIsIgnoredFunction(ignoreFilePath, withNodeModules) { - let content = ""; - if (ignoreFilePath) { - content += await read_file_default(ignoreFilePath) ?? ""; - } - if (!withNodeModules) { - content += "\nnode_modules"; - } - if (!content) { - return; - } - const ignore = createIgnore({ - allowRelativePaths: true - }).add(content); - return (filepath) => { - filepath = import_path8.default.resolve(filepath); - const relativePath = ignoreFilePath ? import_path8.default.relative(import_path8.default.dirname(ignoreFilePath), filepath) : import_path8.default.relative(process.cwd(), filepath); - return ignore.ignores(slash(relativePath)); - }; -} -async function createIsIgnoredFunction(ignoreFilePaths, withNodeModules) { - if (ignoreFilePaths.length === 0 && !withNodeModules) { - ignoreFilePaths = [void 0]; - } - const isIgnoredFunctions = (await Promise.all(ignoreFilePaths.map((ignoreFilePath) => createSingleIsIgnoredFunction(ignoreFilePath, withNodeModules)))).filter(Boolean); - return (filepath) => isIgnoredFunctions.some((isIgnored2) => isIgnored2(filepath)); -} -async function isIgnored(filepath, options8) { - const { - ignorePath, - withNodeModules - } = options8; - const isIgnored2 = await createIsIgnoredFunction(ignorePath, withNodeModules); - return isIgnored2(filepath); -} -async function getFileInfo(filePath, options8) { - if (typeof filePath !== "string") { - throw new TypeError( - `expect \`filePath\` to be a string, got \`${typeof filePath}\`` - ); - } - let { ignorePath, withNodeModules } = options8; - if (!Array.isArray(ignorePath)) { - ignorePath = [ignorePath]; - } - const ignored = await isIgnored(filePath, { ignorePath, withNodeModules }); - let inferredParser; - if (!ignored) { - inferredParser = await getParser(filePath, options8); - } - return { - ignored, - inferredParser: inferredParser ?? null - }; -} -async function getParser(filePath, options8) { - let config; - if (options8.resolveConfig !== false) { - config = await resolveConfig(filePath); - } - return (config == null ? void 0 : config.parser) ?? infer_parser_default(options8, { physicalFile: filePath }); -} -var get_file_info_default = getFileInfo; -function importFromDirectory(specifier, directory) { - return import_from_file_default(specifier, import_path10.default.join(directory, "noop.js")); -} -var import_from_directory_default = importFromDirectory; -function normalizePlugin(pluginInstanceOfPluginModule, name) { - const plugin = pluginInstanceOfPluginModule.default ?? pluginInstanceOfPluginModule; - return { name, ...plugin }; -} -var loadPluginFromDirectory = mem( - async (name, directory) => normalizePlugin(await import_from_directory_default(name, directory), name), - { cacheKey: JSON.stringify } -); -var importPlugin = mem(async (name) => { - try { - return await import((0, import_url7.pathToFileURL)(import_path9.default.resolve(name)).href); - } catch { - return import_from_directory_default(name, process.cwd()); - } -}); -async function loadPlugin(plugin) { - if (typeof plugin === "string") { - return normalizePlugin(await importPlugin(plugin), plugin); - } - return plugin; -} -function clearCache2() { - memClear(loadPluginFromDirectory); - memClear(importPlugin); -} -var builtin_plugins_proxy_exports = {}; -__export3(builtin_plugins_proxy_exports, { - languages: () => languages, - options: () => options7, - parsers: () => parsers, - printers: () => printers -}); -var common_options_evaluate_default = { - "bracketSpacing": { - "category": "Common", - "type": "boolean", - "default": true, - "description": "Print spaces between brackets.", - "oppositeDescription": "Do not print spaces between brackets." - }, - "singleQuote": { - "category": "Common", - "type": "boolean", - "default": false, - "description": "Use single quotes instead of double quotes." - }, - "proseWrap": { - "category": "Common", - "type": "choice", - "default": "preserve", - "description": "How to wrap prose.", - "choices": [ - { - "value": "always", - "description": "Wrap prose if it exceeds the print width." - }, - { - "value": "never", - "description": "Do not wrap prose." - }, - { - "value": "preserve", - "description": "Wrap prose as-is." - } - ] - }, - "bracketSameLine": { - "category": "Common", - "type": "boolean", - "default": false, - "description": "Put > of opening tags on the last line instead of on a new line." - }, - "singleAttributePerLine": { - "category": "Common", - "type": "boolean", - "default": false, - "description": "Enforce single attribute per line in HTML, Vue and JSX." - } -}; -var options = { - singleQuote: common_options_evaluate_default.singleQuote -}; -var options_default = options; -var languages_evaluate_default = [ - { - "linguistLanguageId": 50, - "name": "CSS", - "type": "markup", - "tmScope": "source.css", - "aceMode": "css", - "codemirrorMode": "css", - "codemirrorMimeType": "text/css", - "color": "#563d7c", - "extensions": [ - ".css", - ".wxss" - ], - "parsers": [ - "css" - ], - "vscodeLanguageIds": [ - "css" - ] - }, - { - "linguistLanguageId": 262764437, - "name": "PostCSS", - "type": "markup", - "color": "#dc3a0c", - "tmScope": "source.postcss", - "group": "CSS", - "extensions": [ - ".pcss", - ".postcss" - ], - "aceMode": "text", - "parsers": [ - "css" - ], - "vscodeLanguageIds": [ - "postcss" - ] - }, - { - "linguistLanguageId": 198, - "name": "Less", - "type": "markup", - "color": "#1d365d", - "aliases": [ - "less-css" - ], - "extensions": [ - ".less" - ], - "tmScope": "source.css.less", - "aceMode": "less", - "codemirrorMode": "css", - "codemirrorMimeType": "text/css", - "parsers": [ - "less" - ], - "vscodeLanguageIds": [ - "less" - ] - }, - { - "linguistLanguageId": 329, - "name": "SCSS", - "type": "markup", - "color": "#c6538c", - "tmScope": "source.css.scss", - "aceMode": "scss", - "codemirrorMode": "css", - "codemirrorMimeType": "text/x-scss", - "extensions": [ - ".scss" - ], - "parsers": [ - "scss" - ], - "vscodeLanguageIds": [ - "scss" - ] - } -]; -var options2 = { - bracketSpacing: common_options_evaluate_default.bracketSpacing -}; -var options_default2 = options2; -var languages_evaluate_default2 = [ - { - "linguistLanguageId": 139, - "name": "GraphQL", - "type": "data", - "color": "#e10098", - "extensions": [ - ".graphql", - ".gql", - ".graphqls" - ], - "tmScope": "source.graphql", - "aceMode": "text", - "parsers": [ - "graphql" - ], - "vscodeLanguageIds": [ - "graphql" - ] - } -]; -var languages_evaluate_default3 = [ - { - "linguistLanguageId": 155, - "name": "Handlebars", - "type": "markup", - "color": "#f7931e", - "aliases": [ - "hbs", - "htmlbars" - ], - "extensions": [ - ".handlebars", - ".hbs" - ], - "tmScope": "text.html.handlebars", - "aceMode": "handlebars", - "parsers": [ - "glimmer" - ], - "vscodeLanguageIds": [ - "handlebars" - ] - } -]; -var CATEGORY_HTML = "HTML"; -var options3 = { - bracketSameLine: common_options_evaluate_default.bracketSameLine, - htmlWhitespaceSensitivity: { - category: CATEGORY_HTML, - type: "choice", - default: "css", - description: "How to handle whitespaces in HTML.", - choices: [ - { - value: "css", - description: "Respect the default value of CSS display property." - }, - { - value: "strict", - description: "Whitespaces are considered sensitive." - }, - { - value: "ignore", - description: "Whitespaces are considered insensitive." - } - ] - }, - singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine, - vueIndentScriptAndStyle: { - category: CATEGORY_HTML, - type: "boolean", - default: false, - description: "Indent script and style tags in Vue files." - } -}; -var options_default3 = options3; -var languages_evaluate_default4 = [ - { - "linguistLanguageId": 146, - "name": "Angular", - "type": "markup", - "tmScope": "text.html.basic", - "aceMode": "html", - "codemirrorMode": "htmlmixed", - "codemirrorMimeType": "text/html", - "color": "#e34c26", - "aliases": [ - "xhtml" - ], - "extensions": [ - ".component.html" - ], - "parsers": [ - "angular" - ], - "vscodeLanguageIds": [ - "html" - ], - "filenames": [] - }, - { - "linguistLanguageId": 146, - "name": "HTML", - "type": "markup", - "tmScope": "text.html.basic", - "aceMode": "html", - "codemirrorMode": "htmlmixed", - "codemirrorMimeType": "text/html", - "color": "#e34c26", - "aliases": [ - "xhtml" - ], - "extensions": [ - ".html", - ".hta", - ".htm", - ".html.hl", - ".inc", - ".xht", - ".xhtml", - ".mjml" - ], - "parsers": [ - "html" - ], - "vscodeLanguageIds": [ - "html" - ] - }, - { - "linguistLanguageId": 146, - "name": "Lightning Web Components", - "type": "markup", - "tmScope": "text.html.basic", - "aceMode": "html", - "codemirrorMode": "htmlmixed", - "codemirrorMimeType": "text/html", - "color": "#e34c26", - "aliases": [ - "xhtml" - ], - "extensions": [], - "parsers": [ - "lwc" - ], - "vscodeLanguageIds": [ - "html" - ], - "filenames": [] - }, - { - "linguistLanguageId": 391, - "name": "Vue", - "type": "markup", - "color": "#41b883", - "extensions": [ - ".vue" - ], - "tmScope": "text.html.vue", - "aceMode": "html", - "parsers": [ - "vue" - ], - "vscodeLanguageIds": [ - "vue" - ] - } -]; -var CATEGORY_JAVASCRIPT = "JavaScript"; -var options4 = { - arrowParens: { - category: CATEGORY_JAVASCRIPT, - type: "choice", - default: "always", - description: "Include parentheses around a sole arrow function parameter.", - choices: [ - { - value: "always", - description: "Always include parens. Example: `(x) => x`" - }, - { - value: "avoid", - description: "Omit parens when possible. Example: `x => x`" - } - ] - }, - bracketSameLine: common_options_evaluate_default.bracketSameLine, - bracketSpacing: common_options_evaluate_default.bracketSpacing, - jsxBracketSameLine: { - category: CATEGORY_JAVASCRIPT, - type: "boolean", - description: "Put > on the last line instead of at a new line.", - deprecated: "2.4.0" - }, - semi: { - category: CATEGORY_JAVASCRIPT, - type: "boolean", - default: true, - description: "Print semicolons.", - oppositeDescription: "Do not print semicolons, except at the beginning of lines which may need them." - }, - singleQuote: common_options_evaluate_default.singleQuote, - jsxSingleQuote: { - category: CATEGORY_JAVASCRIPT, - type: "boolean", - default: false, - description: "Use single quotes in JSX." - }, - quoteProps: { - category: CATEGORY_JAVASCRIPT, - type: "choice", - default: "as-needed", - description: "Change when properties in objects are quoted.", - choices: [ - { - value: "as-needed", - description: "Only add quotes around object properties where required." - }, - { - value: "consistent", - description: "If at least one property in an object requires quotes, quote all properties." - }, - { - value: "preserve", - description: "Respect the input use of quotes in object properties." - } - ] - }, - trailingComma: { - category: CATEGORY_JAVASCRIPT, - type: "choice", - default: "all", - description: "Print trailing commas wherever possible when multi-line.", - choices: [ - { - value: "all", - description: "Trailing commas wherever possible (including function arguments)." - }, - { - value: "es5", - description: "Trailing commas where valid in ES5 (objects, arrays, etc.)" - }, - { value: "none", description: "No trailing commas." } - ] - }, - singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine -}; -var options_default4 = options4; -var languages_evaluate_default5 = [ - { - "linguistLanguageId": 183, - "name": "JavaScript", - "type": "programming", - "tmScope": "source.js", - "aceMode": "javascript", - "codemirrorMode": "javascript", - "codemirrorMimeType": "text/javascript", - "color": "#f1e05a", - "aliases": [ - "js", - "node" - ], - "extensions": [ - ".js", - "._js", - ".bones", - ".cjs", - ".es", - ".es6", - ".frag", - ".gs", - ".jake", - ".javascript", - ".jsb", - ".jscad", - ".jsfl", - ".jslib", - ".jsm", - ".jspre", - ".jss", - ".mjs", - ".njs", - ".pac", - ".sjs", - ".ssjs", - ".xsjs", - ".xsjslib", - ".wxs" - ], - "filenames": [ - "Jakefile" - ], - "interpreters": [ - "chakra", - "d8", - "gjs", - "js", - "node", - "nodejs", - "qjs", - "rhino", - "v8", - "v8-shell", - "zx" - ], - "parsers": [ - "babel", - "acorn", - "espree", - "meriyah", - "babel-flow", - "babel-ts", - "flow", - "typescript" - ], - "vscodeLanguageIds": [ - "javascript", - "mongo" - ] - }, - { - "linguistLanguageId": 183, - "name": "Flow", - "type": "programming", - "tmScope": "source.js", - "aceMode": "javascript", - "codemirrorMode": "javascript", - "codemirrorMimeType": "text/javascript", - "color": "#f1e05a", - "aliases": [], - "extensions": [ - ".js.flow" - ], - "filenames": [], - "interpreters": [ - "chakra", - "d8", - "gjs", - "js", - "node", - "nodejs", - "qjs", - "rhino", - "v8", - "v8-shell" - ], - "parsers": [ - "flow", - "babel-flow" - ], - "vscodeLanguageIds": [ - "javascript" - ] - }, - { - "linguistLanguageId": 183, - "name": "JSX", - "type": "programming", - "tmScope": "source.js.jsx", - "aceMode": "javascript", - "codemirrorMode": "jsx", - "codemirrorMimeType": "text/jsx", - "color": void 0, - "aliases": void 0, - "extensions": [ - ".jsx" - ], - "filenames": void 0, - "interpreters": void 0, - "parsers": [ - "babel", - "babel-flow", - "babel-ts", - "flow", - "typescript", - "espree", - "meriyah" - ], - "vscodeLanguageIds": [ - "javascriptreact" - ], - "group": "JavaScript" - }, - { - "linguistLanguageId": 378, - "name": "TypeScript", - "type": "programming", - "color": "#3178c6", - "aliases": [ - "ts" - ], - "interpreters": [ - "deno", - "ts-node" - ], - "extensions": [ - ".ts", - ".cts", - ".mts" - ], - "tmScope": "source.ts", - "aceMode": "typescript", - "codemirrorMode": "javascript", - "codemirrorMimeType": "application/typescript", - "parsers": [ - "typescript", - "babel-ts" - ], - "vscodeLanguageIds": [ - "typescript" - ] - }, - { - "linguistLanguageId": 94901924, - "name": "TSX", - "type": "programming", - "color": "#3178c6", - "group": "TypeScript", - "extensions": [ - ".tsx" - ], - "tmScope": "source.tsx", - "aceMode": "javascript", - "codemirrorMode": "jsx", - "codemirrorMimeType": "text/jsx", - "parsers": [ - "typescript", - "babel-ts" - ], - "vscodeLanguageIds": [ - "typescriptreact" - ] - } -]; -var languages_evaluate_default6 = [ - { - "linguistLanguageId": 174, - "name": "JSON.stringify", - "type": "data", - "color": "#292929", - "tmScope": "source.json", - "aceMode": "json", - "codemirrorMode": "javascript", - "codemirrorMimeType": "application/json", - "aliases": [ - "geojson", - "jsonl", - "topojson" - ], - "extensions": [ - ".importmap" - ], - "filenames": [ - "package.json", - "package-lock.json", - "composer.json" - ], - "parsers": [ - "json-stringify" - ], - "vscodeLanguageIds": [ - "json" - ] - }, - { - "linguistLanguageId": 174, - "name": "JSON", - "type": "data", - "color": "#292929", - "tmScope": "source.json", - "aceMode": "json", - "codemirrorMode": "javascript", - "codemirrorMimeType": "application/json", - "aliases": [ - "geojson", - "jsonl", - "topojson" - ], - "extensions": [ - ".json", - ".4DForm", - ".4DProject", - ".avsc", - ".geojson", - ".gltf", - ".har", - ".ice", - ".JSON-tmLanguage", - ".mcmeta", - ".tfstate", - ".tfstate.backup", - ".topojson", - ".webapp", - ".webmanifest", - ".yy", - ".yyp" - ], - "filenames": [ - ".all-contributorsrc", - ".arcconfig", - ".auto-changelog", - ".c8rc", - ".htmlhintrc", - ".imgbotconfig", - ".nycrc", - ".tern-config", - ".tern-project", - ".watchmanconfig", - "Pipfile.lock", - "composer.lock", - "flake.lock", - "mcmod.info" - ], - "parsers": [ - "json" - ], - "vscodeLanguageIds": [ - "json" - ] - }, - { - "linguistLanguageId": 423, - "name": "JSON with Comments", - "type": "data", - "color": "#292929", - "group": "JSON", - "tmScope": "source.js", - "aceMode": "javascript", - "codemirrorMode": "javascript", - "codemirrorMimeType": "text/javascript", - "aliases": [ - "jsonc" - ], - "extensions": [ - ".jsonc", - ".code-snippets", - ".sublime-build", - ".sublime-commands", - ".sublime-completions", - ".sublime-keymap", - ".sublime-macro", - ".sublime-menu", - ".sublime-mousemap", - ".sublime-project", - ".sublime-settings", - ".sublime-theme", - ".sublime-workspace", - ".sublime_metrics", - ".sublime_session" - ], - "filenames": [ - ".babelrc", - ".devcontainer.json", - ".eslintrc.json", - ".jscsrc", - ".jshintrc", - ".jslintrc", - ".swcrc", - "api-extractor.json", - "devcontainer.json", - "jsconfig.json", - "language-configuration.json", - "tsconfig.json", - "tslint.json", - ".eslintrc" - ], - "parsers": [ - "json" - ], - "vscodeLanguageIds": [ - "jsonc" - ] - }, - { - "linguistLanguageId": 175, - "name": "JSON5", - "type": "data", - "color": "#267CB9", - "extensions": [ - ".json5" - ], - "tmScope": "source.js", - "aceMode": "javascript", - "codemirrorMode": "javascript", - "codemirrorMimeType": "application/json", - "parsers": [ - "json5" - ], - "vscodeLanguageIds": [ - "json5" - ] - } -]; -var options5 = { - proseWrap: common_options_evaluate_default.proseWrap, - singleQuote: common_options_evaluate_default.singleQuote -}; -var options_default5 = options5; -var languages_evaluate_default7 = [ - { - "linguistLanguageId": 222, - "name": "Markdown", - "type": "prose", - "color": "#083fa1", - "aliases": [ - "md", - "pandoc" - ], - "aceMode": "markdown", - "codemirrorMode": "gfm", - "codemirrorMimeType": "text/x-gfm", - "wrap": true, - "extensions": [ - ".md", - ".livemd", - ".markdown", - ".mdown", - ".mdwn", - ".mkd", - ".mkdn", - ".mkdown", - ".ronn", - ".scd", - ".workbook" - ], - "filenames": [ - "contents.lr", - "README" - ], - "tmScope": "text.md", - "parsers": [ - "markdown" - ], - "vscodeLanguageIds": [ - "markdown" - ] - }, - { - "linguistLanguageId": 222, - "name": "MDX", - "type": "prose", - "color": "#083fa1", - "aliases": [ - "md", - "pandoc" - ], - "aceMode": "markdown", - "codemirrorMode": "gfm", - "codemirrorMimeType": "text/x-gfm", - "wrap": true, - "extensions": [ - ".mdx" - ], - "filenames": [], - "tmScope": "text.md", - "parsers": [ - "mdx" - ], - "vscodeLanguageIds": [ - "mdx" - ] - } -]; -var options6 = { - bracketSpacing: common_options_evaluate_default.bracketSpacing, - singleQuote: common_options_evaluate_default.singleQuote, - proseWrap: common_options_evaluate_default.proseWrap -}; -var options_default6 = options6; -var languages_evaluate_default8 = [ - { - "linguistLanguageId": 407, - "name": "YAML", - "type": "data", - "color": "#cb171e", - "tmScope": "source.yaml", - "aliases": [ - "yml" - ], - "extensions": [ - ".yml", - ".mir", - ".reek", - ".rviz", - ".sublime-syntax", - ".syntax", - ".yaml", - ".yaml-tmlanguage", - ".yaml.sed", - ".yml.mysql" - ], - "filenames": [ - ".clang-format", - ".clang-tidy", - ".gemrc", - "CITATION.cff", - "glide.lock", - ".prettierrc", - ".stylelintrc", - ".lintstagedrc" - ], - "aceMode": "yaml", - "codemirrorMode": "yaml", - "codemirrorMimeType": "text/x-yaml", - "parsers": [ - "yaml" - ], - "vscodeLanguageIds": [ - "yaml", - "ansible", - "home-assistant" - ] - } -]; -function createParsersAndPrinters(modules) { - const parsers2 = /* @__PURE__ */ Object.create(null); - const printers2 = /* @__PURE__ */ Object.create(null); - for (const { - importPlugin: importPlugin2, - parsers: parserNames = [], - printers: printerNames = [] - } of modules) { - const loadPlugin2 = async () => { - const plugin = await importPlugin2(); - Object.assign(parsers2, plugin.parsers); - Object.assign(printers2, plugin.printers); - return plugin; - }; - for (const parserName of parserNames) { - parsers2[parserName] = async () => (await loadPlugin2()).parsers[parserName]; - } - for (const printerName of printerNames) { - printers2[printerName] = async () => (await loadPlugin2()).printers[printerName]; - } - } - return { parsers: parsers2, printers: printers2 }; -} -var options7 = { - ...options_default, - ...options_default2, - ...options_default3, - ...options_default4, - ...options_default5, - ...options_default6 -}; -var languages = [ - ...languages_evaluate_default, - ...languages_evaluate_default2, - ...languages_evaluate_default3, - ...languages_evaluate_default4, - ...languages_evaluate_default5, - ...languages_evaluate_default6, - ...languages_evaluate_default7, - ...languages_evaluate_default8 -]; -var { parsers, printers } = createParsersAndPrinters([ - { - importPlugin: () => Promise.resolve().then(() => (init_acorn(), acorn_exports)), - parsers: ["acorn", "espree"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_angular(), angular_exports)), - parsers: [ - "__ng_action", - "__ng_binding", - "__ng_interpolation", - "__ng_directive" - ] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_babel(), babel_exports)), - parsers: [ - "babel", - "babel-flow", - "babel-ts", - "__js_expression", - "__ts_expression", - "__vue_expression", - "__vue_ts_expression", - "__vue_event_binding", - "__vue_ts_event_binding", - "__babel_estree", - "json", - "json5", - "json-stringify" - ] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_estree(), estree_exports)), - printers: ["estree", "estree-json"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_flow(), flow_exports)), - parsers: ["flow"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_glimmer(), glimmer_exports)), - parsers: ["glimmer"], - printers: ["glimmer"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_graphql(), graphql_exports)), - parsers: ["graphql"], - printers: ["graphql"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_html(), html_exports)), - parsers: ["html", "angular", "vue", "lwc"], - printers: ["html"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_markdown(), markdown_exports)), - parsers: ["markdown", "mdx", "remark"], - printers: ["mdast"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_meriyah(), meriyah_exports)), - parsers: ["meriyah"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_postcss(), postcss_exports)), - parsers: ["css", "less", "scss"], - printers: ["postcss"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_typescript(), typescript_exports)), - parsers: ["typescript"] - }, - { - importPlugin: () => Promise.resolve().then(() => (init_yaml(), yaml_exports)), - parsers: ["yaml"], - printers: ["yaml"] - } -]); -function loadBuiltinPlugins() { - return [builtin_plugins_proxy_exports]; -} -var load_builtin_plugins_default = loadBuiltinPlugins; -function loadPlugins(plugins = []) { - return Promise.all(plugins.map((plugin) => loadPlugin(plugin))); -} -var load_plugins_default = loadPlugins; -var option_categories_exports = {}; -__export3(option_categories_exports, { - CATEGORY_CONFIG: () => CATEGORY_CONFIG, - CATEGORY_EDITOR: () => CATEGORY_EDITOR, - CATEGORY_FORMAT: () => CATEGORY_FORMAT, - CATEGORY_GLOBAL: () => CATEGORY_GLOBAL, - CATEGORY_OTHER: () => CATEGORY_OTHER, - CATEGORY_OUTPUT: () => CATEGORY_OUTPUT, - CATEGORY_SPECIAL: () => CATEGORY_SPECIAL -}); -var CATEGORY_CONFIG = "Config"; -var CATEGORY_EDITOR = "Editor"; -var CATEGORY_FORMAT = "Format"; -var CATEGORY_OTHER = "Other"; -var CATEGORY_OUTPUT = "Output"; -var CATEGORY_GLOBAL = "Global"; -var CATEGORY_SPECIAL = "Special"; -function omit(object, keys) { - keys = new Set(keys); - return Object.fromEntries( - Object.entries(object).filter(([key]) => !keys.has(key)) - ); -} -var object_omit_default = omit; -var public_exports2 = {}; -__export3(public_exports2, { - addDanglingComment: () => addDanglingComment, - addLeadingComment: () => addLeadingComment, - addTrailingComment: () => addTrailingComment, - getAlignmentSize: () => get_alignment_size_default, - getIndentSize: () => get_indent_size_default, - getMaxContinuousCount: () => get_max_continuous_count_default, - getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default, - getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2, - getStringWidth: () => get_string_width_default2, - hasNewline: () => has_newline_default, - hasNewlineInRange: () => has_newline_in_range_default, - hasSpaces: () => has_spaces_default, - isNextLineEmpty: () => isNextLineEmpty2, - isNextLineEmptyAfterIndex: () => is_next_line_empty_default, - isPreviousLineEmpty: () => isPreviousLineEmpty2, - makeString: () => make_string_default, - skip: () => skip, - skipEverythingButNewLine: () => skipEverythingButNewLine, - skipInlineComment: () => skip_inline_comment_default, - skipNewline: () => skip_newline_default, - skipSpaces: () => skipSpaces, - skipToLineEnd: () => skipToLineEnd, - skipTrailingComment: () => skip_trailing_comment_default, - skipWhitespace: () => skipWhitespace -}); -function skipInlineComment(text, startIndex) { - if (startIndex === false) { - return false; - } - if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "*") { - for (let i = startIndex + 2; i < text.length; ++i) { - if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { - return i + 2; - } - } - } - return startIndex; -} -var skip_inline_comment_default = skipInlineComment; -function skipTrailingComment(text, startIndex) { - if (startIndex === false) { - return false; - } - if (text.charAt(startIndex) === "/" && text.charAt(startIndex + 1) === "/") { - return skipEverythingButNewLine(text, startIndex); - } - return startIndex; -} -var skip_trailing_comment_default = skipTrailingComment; -function getNextNonSpaceNonCommentCharacterIndex(text, startIndex) { - let oldIdx = null; - let nextIdx = startIndex; - while (nextIdx !== oldIdx) { - oldIdx = nextIdx; - nextIdx = skipSpaces(text, nextIdx); - nextIdx = skip_inline_comment_default(text, nextIdx); - nextIdx = skip_trailing_comment_default(text, nextIdx); - nextIdx = skip_newline_default(text, nextIdx); - } - return nextIdx; -} -var get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex; -function isNextLineEmpty(text, startIndex) { - let oldIdx = null; - let idx = startIndex; - while (idx !== oldIdx) { - oldIdx = idx; - idx = skipToLineEnd(text, idx); - idx = skip_inline_comment_default(text, idx); - idx = skipSpaces(text, idx); - } - idx = skip_trailing_comment_default(text, idx); - idx = skip_newline_default(text, idx); - return idx !== false && has_newline_default(text, idx); -} -var is_next_line_empty_default = isNextLineEmpty; -function escapeStringRegexp(string) { - if (typeof string !== "string") { - throw new TypeError("Expected a string"); - } - return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); -} -function getMaxContinuousCount(text, searchString) { - const results = text.match( - new RegExp(`(${escapeStringRegexp(searchString)})+`, "g") - ); - if (results === null) { - return 0; - } - return results.reduce( - (maxCount, result) => Math.max(maxCount, result.length / searchString.length), - 0 - ); -} -var get_max_continuous_count_default = getMaxContinuousCount; -function getIndentSize(value, tabWidth) { - const lastNewlineIndex = value.lastIndexOf("\n"); - if (lastNewlineIndex === -1) { - return 0; - } - return get_alignment_size_default( - // All the leading whitespaces - value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], - tabWidth - ); -} -var get_indent_size_default = getIndentSize; -function hasNewlineInRange(text, startIndex, endIndex) { - for (let i = startIndex; i < endIndex; ++i) { - if (text.charAt(i) === "\n") { - return true; - } - } - return false; -} -var has_newline_in_range_default = hasNewlineInRange; -function hasSpaces(text, startIndex, options8 = {}) { - const idx = skipSpaces( - text, - options8.backwards ? startIndex - 1 : startIndex, - options8 - ); - return idx !== startIndex; -} -var has_spaces_default = hasSpaces; -function getNextNonSpaceNonCommentCharacter(text, startIndex) { - const index = get_next_non_space_non_comment_character_index_default(text, startIndex); - return index === false ? "" : text.charAt(index); -} -var get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter; -function makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) { - const otherQuote = enclosingQuote === '"' ? "'" : '"'; - const regex = /\\(.)|(["'])/gs; - const raw = string_replace_all_default2( - /* isOptionalObject*/ - false, - rawText, - regex, - (match, escaped, quote2) => { - if (escaped === otherQuote) { - return escaped; - } - if (quote2 === enclosingQuote) { - return "\\" + quote2; - } - if (quote2) { - return quote2; - } - return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped; - } - ); - return enclosingQuote + raw + enclosingQuote; -} -var make_string_default = makeString; -function legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { - return get_next_non_space_non_comment_character_index_default( - text, - locEnd(node) - ); -} -function getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments) - ); -} -function legacyIsPreviousLineEmpty(text, node, locStart) { - return is_previous_line_empty_default(text, locStart(node)); -} -function isPreviousLineEmpty2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? is_previous_line_empty_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyIsPreviousLineEmpty(...arguments) - ); -} -function legacyIsNextLineEmpty(text, node, locEnd) { - return is_next_line_empty_default(text, locEnd(node)); -} -function isNextLineEmpty2(text, startIndex) { - return arguments.length === 2 || typeof startIndex === "number" ? is_next_line_empty_default(text, startIndex) : ( - // @ts-expect-error -- expected - // eslint-disable-next-line prefer-rest-params - legacyIsNextLineEmpty(...arguments) - ); -} -var version_evaluate_default = "3.0.3"; -function withPlugins(fn6, optionsArgumentIndex = 1) { - return async (...args) => { - const options8 = args[optionsArgumentIndex] ?? {}; - const { plugins = [] } = options8; - args[optionsArgumentIndex] = { - ...options8, - plugins: (await Promise.all([ - load_builtin_plugins_default(), - // TODO: standalone version allow `plugins` to be `prettierPlugins` which is an object, should allow that too - load_plugins_default(plugins) - ])).flat() - }; - return fn6(...args); - }; -} -var formatWithCursor2 = withPlugins(formatWithCursor); -async function format2(text, options8) { - const { formatted } = await formatWithCursor2(text, { - ...options8, - cursorOffset: -1 - }); - return formatted; -} -async function check(text, options8) { - return await format2(text, options8) === text; -} -async function clearCache3() { - clearCache(); - clearCache2(); -} -var getFileInfo2 = withPlugins(get_file_info_default); -var getSupportInfo2 = withPlugins(getSupportInfo, 0); -var sharedWithCli = { - errors: errors_exports, - optionCategories: option_categories_exports, - createIsIgnoredFunction, - formatOptionsHiddenDefaults, - normalizeOptions: normalize_options_default, - getSupportInfoWithoutPlugins: getSupportInfo, - normalizeOptionSettings, - vnopts: { - ChoiceSchema, - apiDescriptor - }, - fastGlob: import_fast_glob.default, - utils: { - isNonEmptyArray: is_non_empty_array_default, - partition: partition_default, - omit: object_omit_default - } -}; -var debugApis = { - parse: withPlugins(parse22), - formatAST: withPlugins(formatAst), - formatDoc: withPlugins(formatDoc), - printToDoc: withPlugins(printToDoc), - printDocToString: withPlugins(printDocToString22) -}; - -// src/prettier.ts -async function formatMarkdown(value, filepath) { - const fp2 = filepath ? { filepath } : {}; - return format2(value, { - semi: false, - parser: "markdown", - embeddedLanguageFormatting: "auto", - ...fp2 - }); -} - -// src/readme-writer.ts -async function readmeWriter(content, tokenName, readmePath) { - const log3 = new logtask_default(tokenName); - if (!content || content.length === 0) { - log3.info(`readmeWriter passed no content from ${tokenName} parser`); - return; - } - log3.info(`Looking for the ${tokenName} token in ${readmePath}`); - const originalReadme = fs11.readFileSync(readmePath).toString(); - const startToken = startTokenFormat.replace("%s", tokenName); - const endToken = endTokenFormat.replace("%s", tokenName); - const startTokenIndex = originalReadme.indexOf(startToken); - if (startTokenIndex < 0) { - throw new Error(`Start token '${startToken}' not found`); - } - log3.info(`Found the start ${tokenName} token`); - const endTokenIndex = originalReadme.indexOf(endToken); - if (endTokenIndex < 0) { - throw new Error(`End token '${endToken}' not found`); - } else if (endTokenIndex < startTokenIndex) { - throw new Error("Start token must appear before end token"); - } - log3.info(`Found the end ${tokenName} token`); - const newReadme = []; - const len = startToken.length; - newReadme.push( - originalReadme.slice(0, Math.max(0, startTokenIndex + len)), - ...content, - originalReadme.slice(endTokenIndex) - // Append the end - ); - const fileContent = newReadme.join(import_node_os.EOL); - const formattedReadme = await formatMarkdown(fileContent); - fs11.writeFileSync(readmePath, formattedReadme); - log3.info(`successfully updated the ${tokenName} section`); -} - -// src/sections/update-badges.ts -async function updateBadges(token, inputs2) { - const log3 = new logtask_default(token); - const enableVersioning = inputs2.config.get("versioning:badges"); - const badges = []; - const repos = { - owner: inputs2.config.get("owner"), - repo: inputs2.config.get("repo") - }; - function githubBadges() { - const repoUrl = `https://github.com/${repos.owner}/${repos.repo}`; - return [ - { - img: `https://img.shields.io/github/v/release/${repos.owner}/${repos.repo}?display_name=tag&sort=semver&logo=github&style=flat-square`, - alt: "Release", - url: `${repoUrl}/releases/latest` - }, - { - img: `https://img.shields.io/github/release-date/${repos.owner}/${repos.repo}?display_name=tag&sort=semver&logo=github&style=flat-square`, - alt: "Release", - url: `${repoUrl}/releases/latest` - }, - { - img: `https://img.shields.io/github/last-commit/${repos.owner}/${repos.repo}?logo=github&style=flat-square`, - alt: "Commit" - }, - { - img: `https://img.shields.io/github/issues/${repos.owner}/${repos.repo}?logo=github&style=flat-square`, - alt: "Open Issues", - url: `${repoUrl}/issues` - }, - { - img: `https://img.shields.io/github/downloads/${repos.owner}/${repos.repo}/total?logo=github&style=flat-square`, - alt: "Downloads" - } - ]; - } - function generateBadge(item) { - const badgeTemplate = `${item.alt || `; - if (item.url) { - return `${badgeTemplate}`; - } - return badgeTemplate; - } - function generateBadges() { - const badgeArray = []; - for (const b5 of badges) { - badgeArray.push(generateBadge(b5)); - } - return [badgeArray.join("")]; - } - log3.start(); - if (enableVersioning) { - badges.push(...githubBadges()); - } - const content = generateBadges(); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); -} - -// src/sections/update-description.ts -async function updateDescription(token, inputs2) { - var _a3; - const log3 = new logtask_default(token); - const content = []; - if ((_a3 = inputs2 == null ? void 0 : inputs2.action) == null ? void 0 : _a3.description) { - log3.start(); - const desc = inputs2.action.description.trim().replaceAll("\r\n", "\n").replaceAll(/ +/g, " ").replaceAll(" \n", "\n").replace("\n", "
"); - log3.info(`Writing ${desc.length} characters to the description section`); - content.push(desc); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); - } -} - -// src/markdowner/index.ts -function markdownEscapeTableCell(text) { - return text.replaceAll("\n", "
").replaceAll("|", "\\|"); -} -function markdownEscapeInlineCode(content) { - return content.replaceAll(/([\s*_]|^)`([^`]+)`([\s*_]|$)/g, "$1$2$3"); -} -function ArrayOfArraysToMarkdownTable(providedTableContent) { - const tableContent = []; - const outputStrings = []; - for (const rowA of providedTableContent) { - tableContent.push([...rowA]); - } - const maxRows = tableContent.length; - let maxCols = 0; - let minCols = 0; - for (const [i, e3] of tableContent.entries()) { - if (tableContent[i] !== void 0) { - const numCols = e3.length; - if (numCols > maxCols) { - maxCols = numCols; - } - if (numCols < minCols || minCols === 0) { - minCols = numCols; - } - } - } - if (maxCols !== minCols) { - for (const [i, e3] of tableContent.entries()) { - if (tableContent[i] === void 0) { - tableContent[i] = Array.from({ length: maxCols }).fill(""); - } else if (e3.length < maxCols) { - tableContent[i] = [ - ...e3, - ...Array.from({ length: maxCols - e3.length }).fill("undefined") - ]; - } - } - } - const markdownArrayRowsLength = maxRows + 1; - const markdownArrayEntriesLength = maxCols * 2 + 1; - const markdownArrays = Array.from({ length: markdownArrayRowsLength }).fill( - Array.from({ length: markdownArrayEntriesLength }).fill("|") - ); - for (const [i, row] of markdownArrays.entries()) { - let col = 0; - const idx = i > 1 ? i - 1 : 0; - const dataRow = tableContent[idx]; - for (const [j8] of row.entries()) { - let content = markdownEscapeTableCell(dataRow[col] ?? ""); - content = markdownEscapeInlineCode(content); - if (j8 % 2 === 1) { - if (i === 0) { - markdownArrays[i][j8] = ` **${content.trim()}** `; - } else if (i === 1) { - markdownArrays[i][j8] = "---"; - } else { - markdownArrays[i][j8] = ` ${content.trim()} `; - } - col += 1; - } - } - outputStrings.push(`${markdownArrays[i].join("")} -`); - } - return outputStrings.join(""); -} -var markdowner_default = ArrayOfArraysToMarkdownTable; - -// src/sections/update-inputs.ts -async function updateInputs(token, inputs2) { - const log3 = new logtask_default(token); - const content = []; - const markdownArray = []; - const titleArray = ["Input", "Description", "Default", "Required"]; - const titles = []; - for (const t12 of titleArray) { - titles.push(columnHeader(t12)); - } - markdownArray.push(titles); - const vars = inputs2.action.inputs; - const tI = vars ? Object.keys(vars).length : 0; - if (tI > 0) { - log3.start(); - for (const key of Object.keys(vars)) { - const values = vars[key]; - let description = (values == null ? void 0 : values.description) ?? ""; - const matches = description.match("(.*?)\n\n([Ss]*)"); - if (matches && matches.length >= 2) { - description = matches[1] || description; - } - description = description.trim().replace("\n", "
"); - const row = [ - rowHeader(key), - description, - (values == null ? void 0 : values.default) ? `\`${values.default}\`` : "", - (values == null ? void 0 : values.required) ? "**true**" : "__false__" - ]; - log3.debug(JSON.stringify(row)); - markdownArray.push(row); - } - content.push(markdowner_default(markdownArray)); - log3.info(`Action has ${tI} total ${token}`); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); - } else { - log3.debug(`Action has no ${token}`); - } -} - -// src/sections/update-outputs.ts -async function updateOutputs(token, inputs2) { - const log3 = new logtask_default(token); - const content = []; - const markdownArray = []; - const titleArray = ["Output", "Description"]; - const titles = []; - for (const t12 of titleArray) { - titles.push(columnHeader(t12)); - } - markdownArray.push(titles); - const vars = inputs2.action.outputs; - const tI = vars ? Object.keys(vars).length : 0; - if (tI > 0) { - log3.start(); - for (const key of Object.keys(vars)) { - const values = vars[key]; - let description = (values == null ? void 0 : values.description) ?? ""; - const matches = description.match("(.*?)\n\n([Ss]*)"); - if (matches && matches.length >= 2) { - description = matches[1] || description; - } - description = description.trim().replace("\n", "
"); - const row = [rowHeader(key), description]; - log3.debug(JSON.stringify(row)); - markdownArray.push(row); - } - content.push(markdowner_default(markdownArray)); - log3.info(`Action has ${tI} total ${token}`); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); - } else { - log3.debug(`Action has no ${token}`); - } -} - -// src/sections/update-title.ts -async function updateTitle(token, inputs2) { - const log3 = new logtask_default(token); - const content = []; - let name = ""; - if (inputs2.action.name) { - log3.start(); - name = inputs2.action.name; - log3.info(`Writing ${name.length} characters to the title`); - const title = `# ${inputs2.config.get("title_prefix")}${inputs2.action.name}`; - log3.info(`Title: ${title}`); - content.push(title); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); - } -} - -// src/sections/update-usage.ts -async function updateUsage(token, inputs2) { - var _a3; - const log3 = new logtask_default(token); - log3.start(); - const actionName = `${inputs2.config.get("owner")}/${inputs2.config.get("repo")}`; - log3.info(`Action name: ${actionName}`); - const versionString = getCurrentVersionString(inputs2); - log3.info(`Version string: ${versionString}`); - const actionReference = `${actionName}@${versionString}`; - if (!actionReference) { - throw new Error("Parameter actionReference must not be empty"); - } - const content = []; - content.push("```yaml", `- uses: ${actionReference}`, " with:"); - const inp = inputs2.action.inputs; - let firstInput = true; - if (inp) { - for (const key of Object.keys(inp)) { - const input = inp[key]; - if (input !== void 0) { - if (!firstInput) { - content.push(""); - } - wrapText(input.description, content, " # "); - if (input.default !== void 0) { - if ((_a3 = input.description) == null ? void 0 : _a3.trimEnd().match(/\n *\r?\n/)) { - content.push(" #"); - } - content.push(` # Default: ${input.default}`); - } - content.push(` ${key}: ''`); - firstInput = false; - } - } - } - content.push("```\n"); - await readmeWriter(content, token, inputs2.readmePath); - log3.success(); -} - -// src/sections/index.ts -async function updateSection(section, inputs2) { - const log3 = new logtask_default("updateSection"); - try { - switch (section) { - case "badges": { - await updateBadges(section, inputs2); - break; - } - case "usage": { - await updateUsage(section, inputs2); - break; - } - case "title": { - await updateTitle(section, inputs2); - break; - } - case "description": { - await updateDescription(section, inputs2); - break; - } - case "inputs": { - await updateInputs(section, inputs2); - break; - } - case "outputs": { - await updateOutputs(section, inputs2); - break; - } - default: { - log3.debug(`unknown section ${section}`); - } - } - } catch (error2) { - if (error2 && "message" in error2 && error2.message) - log3.fail(error2.message); - } -} - -// src/generate-docs.ts -var inputs = new Inputs(); -async function generateDocs() { - const log3 = new logtask_default("generating readme"); - try { - const sectionsPromises = []; - for (const section of inputs.sections) { - sectionsPromises.push(updateSection(section, inputs)); - } - return Promise.all(sectionsPromises).then(() => save(inputs)); - } catch (error2) { - if (error2 && "message" in error2 && error2.message) - log3.error(error2.message); - } -} - -// src/index.ts -generateDocs(); -/*! Bundled license information: - -js-yaml/dist/js-yaml.mjs: - (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) -*/ -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL2FzeW5jL2Rpc3QvYXN5bmMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL25jb25mL25vZGVfbW9kdWxlcy9pbmkvaW5pLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9uY29uZi9saWIvbmNvbmYvZm9ybWF0cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvbmNvbmYvbGliL25jb25mL3N0b3Jlcy9tZW1vcnkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL25jb25mL2xpYi9uY29uZi9jb21tb24uanMiLCAiLi4vbm9kZV9tb2R1bGVzL25jb25mL2xpYi9uY29uZi9wcm92aWRlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvbmNvbmYvcGFja2FnZS5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy95MThuL2J1aWxkL2luZGV4LmNqcyIsICIuLi9ub2RlX21vZHVsZXMveWFyZ3MtcGFyc2VyL2J1aWxkL2luZGV4LmNqcyIsICIuLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9zdHJpbmctd2lkdGgvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NvbG9yLW5hbWUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvY29udmVyc2lvbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvcm91dGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Fuc2ktc3R5bGVzL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy93cmFwLWFuc2kvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2NsaXVpL2J1aWxkL2luZGV4LmNqcyIsICIuLi9ub2RlX21vZHVsZXMvZXNjYWxhZGUvc3luYy9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZ2V0LWNhbGxlci1maWxlL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy9yZXF1aXJlLWRpcmVjdG9yeS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMveWFyZ3MvYnVpbGQvaW5kZXguY2pzIiwgIi4uL25vZGVfbW9kdWxlcy95YXJncy9pbmRleC5janMiLCAiLi4vbm9kZV9tb2R1bGVzL25jb25mL2xpYi9uY29uZi9zdG9yZXMvYXJndi5qcyIsICIuLi9ub2RlX21vZHVsZXMvbmNvbmYvbGliL25jb25mL3N0b3Jlcy9lbnYuanMiLCAiLi4vbm9kZV9tb2R1bGVzL25jb25mL2xpYi9uY29uZi9zdG9yZXMvZmlsZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvbmNvbmYvbGliL25jb25mL3N0b3Jlcy9saXRlcmFsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9uY29uZi9saWIvbmNvbmYuanMiLCAiLi4vbm9kZV9tb2R1bGVzL0BhY3Rpb25zL2NvcmUvc3JjL3V0aWxzLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9AYWN0aW9ucy9jb3JlL3NyYy9jb21tYW5kLnRzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvcm5nLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvcmVnZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tbm9kZS92YWxpZGF0ZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3N0cmluZ2lmeS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3YxLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvcGFyc2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tbm9kZS92MzUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tbm9kZS9tZDUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tbm9kZS92My5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3Y0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvc2hhMS5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL3Y1LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvbmlsLmpzIiwgIi4uL25vZGVfbW9kdWxlcy91dWlkL2Rpc3QvZXNtLW5vZGUvdmVyc2lvbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1ub2RlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9AYWN0aW9ucy9jb3JlL3NyYy9maWxlLWNvbW1hbmQudHMiLCAiLi4vbm9kZV9tb2R1bGVzL0BhY3Rpb25zL2h0dHAtY2xpZW50L3NyYy9wcm94eS50cyIsICIuLi9ub2RlX21vZHVsZXMvdHVubmVsL2xpYi90dW5uZWwuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3R1bm5lbC9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvQGFjdGlvbnMvaHR0cC1jbGllbnQvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy9AYWN0aW9ucy9odHRwLWNsaWVudC9zcmMvYXV0aC50cyIsICIuLi9ub2RlX21vZHVsZXMvQGFjdGlvbnMvY29yZS9zcmMvb2lkYy11dGlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvQGFjdGlvbnMvY29yZS9zcmMvc3VtbWFyeS50cyIsICIuLi9ub2RlX21vZHVsZXMvQGFjdGlvbnMvY29yZS9zcmMvcGF0aC11dGlscy50cyIsICIuLi9ub2RlX21vZHVsZXMvQGFjdGlvbnMvY29yZS9zcmMvY29yZS50cyIsICIuLi9ub2RlX21vZHVsZXMvaGFzLWZsYWcvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3N1cHBvcnRzLWNvbG9yL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvdXRpbC5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2hhbGsvc291cmNlL3RlbXBsYXRlcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvY2hhbGsvc291cmNlL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9Ac2luZHJlc29yaHVzL2lzL2Rpc3QvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2Vtb2ppbGliL2Vtb2ppcy5qc29uIiwgIi4uL25vZGVfbW9kdWxlcy9lbW9qaWxpYi9vcmRlcmVkLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2Vtb2ppbGliL2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9jaGFyLXJlZ2V4L2luZGV4LmpzIiwgIi4uL25vZGVfbW9kdWxlcy91bmljb2RlLWVtb2ppLW1vZGlmaWVyLWJhc2UvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3NraW4tdG9uZS9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvaW50ZXJuYWwvY29uc3RhbnRzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9kZWJ1Zy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvaW50ZXJuYWwvcmUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL3BhcnNlLW9wdGlvbnMuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL2lkZW50aWZpZXJzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9jbGFzc2VzL3NlbXZlci5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL3BhcnNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvdmFsaWQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9jbGVhbi5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL2luYy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL2RpZmYuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9tYWpvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL21pbm9yLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvcGF0Y2guanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9wcmVyZWxlYXNlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvY29tcGFyZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL3Jjb21wYXJlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvY29tcGFyZS1sb29zZS5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL2NvbXBhcmUtYnVpbGQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9zb3J0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvcnNvcnQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9ndC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL2x0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvZXEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9uZXEuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9ndGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9sdGUuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9jbXAuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9jb2VyY2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhbGxpc3QvaXRlcmF0b3IuanMiLCAiLi4vbm9kZV9tb2R1bGVzL3lhbGxpc3QveWFsbGlzdC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9scnUtY2FjaGUvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2NsYXNzZXMvcmFuZ2UuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL2NsYXNzZXMvY29tcGFyYXRvci5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL3NhdGlzZmllcy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvcmFuZ2VzL3RvLWNvbXBhcmF0b3JzLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvbWF4LXNhdGlzZnlpbmcuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL3Jhbmdlcy9taW4tc2F0aXNmeWluZy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvcmFuZ2VzL21pbi12ZXJzaW9uLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvdmFsaWQuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvc2VtdmVyL3Jhbmdlcy9vdXRzaWRlLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvZ3RyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvbHRyLmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvaW50ZXJzZWN0cy5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9zZW12ZXIvcmFuZ2VzL3NpbXBsaWZ5LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9yYW5nZXMvc3Vic2V0LmpzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL3NlbXZlci9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvYmFsYW5jZWQtbWF0Y2gvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL2JyYWNlLWV4cGFuc2lvbi9pbmRleC5qcyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9taW5pbWF0Y2gvc3JjL2Fzc2VydC12YWxpZC1wYXR0ZXJuLnRzIiwgIi4uL25vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvbm9kZV9tb2R1bGVzL21pbmltYXRjaC9zcmMvYnJhY2UtZXhwcmVzc2lvbnMudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvbWluaW1hdGNoL3NyYy91bmVzY2FwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9taW5pbWF0Y2gvc3JjL2FzdC50cyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9taW5pbWF0Y2gvc3JjL2VzY2FwZS50cyIsICIuLi9ub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9taW5pbWF0Y2gvc3JjL2luZGV4LnRzIiwgIi4uL25vZGVfbW9kdWxlcy9Ab25lLWluaS93YXNtL29uZV9pbmkuanMiLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9wYWNrYWdlLmpzb24iLCAiLi4vbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9saWIvaW5kZXguanMiLCAiLi4vbm9kZV9tb2R1bGVzL3ByZXR0aWVyL3BsdWdpbnMvYWNvcm4ubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2FuZ3VsYXIubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2JhYmVsLm1qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy9lc3RyZWUubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2Zsb3cubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2dsaW1tZXIubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2dyYXBocWwubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL2h0bWwubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9wbHVnaW5zL21hcmtkb3duLm1qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy9tZXJpeWFoLm1qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy9wb3N0Y3NzLm1qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy90eXBlc2NyaXB0Lm1qcyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvcGx1Z2lucy95YW1sLm1qcyIsICIuLi9zcmMvaW5wdXRzLnRzIiwgIi4uL3NyYy9BY3Rpb24udHMiLCAiLi4vbm9kZV9tb2R1bGVzL2pzLXlhbWwvZGlzdC9qcy15YW1sLm1qcyIsICIuLi9zcmMvbG9ndGFzay9pbmRleC50cyIsICIuLi9ub2RlX21vZHVsZXMvbm9kZS1lbW9qaS9saWIvaW5kZXguanMiLCAiLi4vc3JjL2hlbHBlcnMudHMiLCAiLi4vc3JjL2VkaXRvcmNvbmZpZy50cyIsICIuLi9zcmMvd29ya2luZy1kaXJlY3RvcnkudHMiLCAiLi4vc3JjL3NhdmUudHMiLCAiLi4vc3JjL3JlYWRtZS13cml0ZXIudHMiLCAiLi4vc3JjL2NvbmZpZy50cyIsICIuLi9ub2RlX21vZHVsZXMvcHJldHRpZXIvaW5kZXgubWpzIiwgIi4uL25vZGVfbW9kdWxlcy9wcmV0dGllci9pbnRlcm5hbC9pbnRlcm5hbC5tanMiLCAiLi4vbm9kZV9tb2R1bGVzL3ByZXR0aWVyL2RvYy5tanMiLCAiLi4vc3JjL3ByZXR0aWVyLnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtYmFkZ2VzLnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtZGVzY3JpcHRpb24udHMiLCAiLi4vc3JjL21hcmtkb3duZXIvaW5kZXgudHMiLCAiLi4vc3JjL3NlY3Rpb25zL3VwZGF0ZS1pbnB1dHMudHMiLCAiLi4vc3JjL3NlY3Rpb25zL3VwZGF0ZS1vdXRwdXRzLnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtdGl0bGUudHMiLCAiLi4vc3JjL3NlY3Rpb25zL3VwZGF0ZS11c2FnZS50cyIsICIuLi9zcmMvc2VjdGlvbnMvaW5kZXgudHMiLCAiLi4vc3JjL2dlbmVyYXRlLWRvY3MudHMiLCAiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IGZhY3RvcnkoZXhwb3J0cykgOlxuICAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSkgOlxuICAgIChmYWN0b3J5KChnbG9iYWwuYXN5bmMgPSB7fSkpKTtcbn0odGhpcywgKGZ1bmN0aW9uIChleHBvcnRzKSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb250aW51YXRpb24gZnVuY3Rpb24gd2l0aCBzb21lIGFyZ3VtZW50cyBhbHJlYWR5IGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBVc2VmdWwgYXMgYSBzaG9ydGhhbmQgd2hlbiBjb21iaW5lZCB3aXRoIG90aGVyIGNvbnRyb2wgZmxvdyBmdW5jdGlvbnMuIEFueVxuICAgICAqIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJldHVybmVkIGZ1bmN0aW9uIGFyZSBhZGRlZCB0byB0aGUgYXJndW1lbnRzXG4gICAgICogb3JpZ2luYWxseSBwYXNzZWQgdG8gYXBwbHkuXG4gICAgICpcbiAgICAgKiBAbmFtZSBhcHBseVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOlV0aWxzXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gLSBUaGUgZnVuY3Rpb24geW91IHdhbnQgdG8gZXZlbnR1YWxseSBhcHBseSBhbGxcbiAgICAgKiBhcmd1bWVudHMgdG8uIEludm9rZXMgd2l0aCAoYXJndW1lbnRzLi4uKS5cbiAgICAgKiBAcGFyYW0gey4uLip9IGFyZ3VtZW50cy4uLiAtIEFueSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIGF1dG9tYXRpY2FsbHkgYXBwbHlcbiAgICAgKiB3aGVuIHRoZSBjb250aW51YXRpb24gaXMgY2FsbGVkLlxuICAgICAqIEByZXR1cm5zIHtGdW5jdGlvbn0gdGhlIHBhcnRpYWxseS1hcHBsaWVkIGZ1bmN0aW9uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIHVzaW5nIGFwcGx5XG4gICAgICogYXN5bmMucGFyYWxsZWwoW1xuICAgICAqICAgICBhc3luYy5hcHBseShmcy53cml0ZUZpbGUsICd0ZXN0ZmlsZTEnLCAndGVzdDEnKSxcbiAgICAgKiAgICAgYXN5bmMuYXBwbHkoZnMud3JpdGVGaWxlLCAndGVzdGZpbGUyJywgJ3Rlc3QyJylcbiAgICAgKiBdKTtcbiAgICAgKlxuICAgICAqXG4gICAgICogLy8gdGhlIHNhbWUgcHJvY2VzcyB3aXRob3V0IHVzaW5nIGFwcGx5XG4gICAgICogYXN5bmMucGFyYWxsZWwoW1xuICAgICAqICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgZnMud3JpdGVGaWxlKCd0ZXN0ZmlsZTEnLCAndGVzdDEnLCBjYWxsYmFjayk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBmcy53cml0ZUZpbGUoJ3Rlc3RmaWxlMicsICd0ZXN0MicsIGNhbGxiYWNrKTtcbiAgICAgKiAgICAgfVxuICAgICAqIF0pO1xuICAgICAqXG4gICAgICogLy8gSXQncyBwb3NzaWJsZSB0byBwYXNzIGFueSBudW1iZXIgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgd2hlbiBjYWxsaW5nIHRoZVxuICAgICAqIC8vIGNvbnRpbnVhdGlvbjpcbiAgICAgKlxuICAgICAqIG5vZGU+IHZhciBmbiA9IGFzeW5jLmFwcGx5KHN5cy5wdXRzLCAnb25lJyk7XG4gICAgICogbm9kZT4gZm4oJ3R3bycsICd0aHJlZScpO1xuICAgICAqIG9uZVxuICAgICAqIHR3b1xuICAgICAqIHRocmVlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXBwbHkoZm4sIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuICguLi5jYWxsQXJncykgPT4gZm4oLi4uYXJncywuLi5jYWxsQXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5pdGlhbFBhcmFtcyAoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzLyosIGNhbGxiYWNrKi8pIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBhcmdzLCBjYWxsYmFjayk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cblxuICAgIHZhciBoYXNRdWV1ZU1pY3JvdGFzayA9IHR5cGVvZiBxdWV1ZU1pY3JvdGFzayA9PT0gJ2Z1bmN0aW9uJyAmJiBxdWV1ZU1pY3JvdGFzaztcbiAgICB2YXIgaGFzU2V0SW1tZWRpYXRlID0gdHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiBzZXRJbW1lZGlhdGU7XG4gICAgdmFyIGhhc05leHRUaWNrID0gdHlwZW9mIHByb2Nlc3MgPT09ICdvYmplY3QnICYmIHR5cGVvZiBwcm9jZXNzLm5leHRUaWNrID09PSAnZnVuY3Rpb24nO1xuXG4gICAgZnVuY3Rpb24gZmFsbGJhY2soZm4pIHtcbiAgICAgICAgc2V0VGltZW91dChmbiwgMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd3JhcChkZWZlcikge1xuICAgICAgICByZXR1cm4gKGZuLCAuLi5hcmdzKSA9PiBkZWZlcigoKSA9PiBmbiguLi5hcmdzKSk7XG4gICAgfVxuXG4gICAgdmFyIF9kZWZlcjtcblxuICAgIGlmIChoYXNRdWV1ZU1pY3JvdGFzaykge1xuICAgICAgICBfZGVmZXIgPSBxdWV1ZU1pY3JvdGFzaztcbiAgICB9IGVsc2UgaWYgKGhhc1NldEltbWVkaWF0ZSkge1xuICAgICAgICBfZGVmZXIgPSBzZXRJbW1lZGlhdGU7XG4gICAgfSBlbHNlIGlmIChoYXNOZXh0VGljaykge1xuICAgICAgICBfZGVmZXIgPSBwcm9jZXNzLm5leHRUaWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIF9kZWZlciA9IGZhbGxiYWNrO1xuICAgIH1cblxuICAgIHZhciBzZXRJbW1lZGlhdGUkMSA9IHdyYXAoX2RlZmVyKTtcblxuICAgIC8qKlxuICAgICAqIFRha2UgYSBzeW5jIGZ1bmN0aW9uIGFuZCBtYWtlIGl0IGFzeW5jLCBwYXNzaW5nIGl0cyByZXR1cm4gdmFsdWUgdG8gYVxuICAgICAqIGNhbGxiYWNrLiBUaGlzIGlzIHVzZWZ1bCBmb3IgcGx1Z2dpbmcgc3luYyBmdW5jdGlvbnMgaW50byBhIHdhdGVyZmFsbCxcbiAgICAgKiBzZXJpZXMsIG9yIG90aGVyIGFzeW5jIGZ1bmN0aW9ucy4gQW55IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGdlbmVyYXRlZFxuICAgICAqIGZ1bmN0aW9uIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIChleGNlcHQgZm9yIHRoZSBmaW5hbFxuICAgICAqIGNhbGxiYWNrIGFyZ3VtZW50KS4gRXJyb3JzIHRocm93biB3aWxsIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiBJZiB0aGUgZnVuY3Rpb24gcGFzc2VkIHRvIGBhc3luY2lmeWAgcmV0dXJucyBhIFByb21pc2UsIHRoYXQgcHJvbWlzZXMnc1xuICAgICAqIHJlc29sdmVkL3JlamVjdGVkIHN0YXRlIHdpbGwgYmUgdXNlZCB0byBjYWxsIHRoZSBjYWxsYmFjaywgcmF0aGVyIHRoYW4gc2ltcGx5XG4gICAgICogdGhlIHN5bmNocm9ub3VzIHJldHVybiB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgYWxzbyBtZWFucyB5b3UgY2FuIGFzeW5jaWZ5IEVTMjAxNyBgYXN5bmNgIGZ1bmN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBuYW1lIGFzeW5jaWZ5XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6VXRpbHNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGFsaWFzIHdyYXBTeW5jXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIC0gVGhlIHN5bmNocm9ub3VzIGZ1bmN0aW9uLCBvciBQcm9taXNlLXJldHVybmluZ1xuICAgICAqIGZ1bmN0aW9uIHRvIGNvbnZlcnQgdG8gYW4ge0BsaW5rIEFzeW5jRnVuY3Rpb259LlxuICAgICAqIEByZXR1cm5zIHtBc3luY0Z1bmN0aW9ufSBBbiBhc3luY2hyb25vdXMgd3JhcHBlciBvZiB0aGUgYGZ1bmNgLiBUbyBiZVxuICAgICAqIGludm9rZWQgd2l0aCBgKGFyZ3MuLi4sIGNhbGxiYWNrKWAuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIHBhc3NpbmcgYSByZWd1bGFyIHN5bmNocm9ub3VzIGZ1bmN0aW9uXG4gICAgICogYXN5bmMud2F0ZXJmYWxsKFtcbiAgICAgKiAgICAgYXN5bmMuYXBwbHkoZnMucmVhZEZpbGUsIGZpbGVuYW1lLCBcInV0ZjhcIiksXG4gICAgICogICAgIGFzeW5jLmFzeW5jaWZ5KEpTT04ucGFyc2UpLFxuICAgICAqICAgICBmdW5jdGlvbiAoZGF0YSwgbmV4dCkge1xuICAgICAqICAgICAgICAgLy8gZGF0YSBpcyB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIHRleHQuXG4gICAgICogICAgICAgICAvLyBJZiB0aGVyZSB3YXMgYSBwYXJzaW5nIGVycm9yLCBpdCB3b3VsZCBoYXZlIGJlZW4gY2F1Z2h0LlxuICAgICAqICAgICB9XG4gICAgICogXSwgY2FsbGJhY2spO1xuICAgICAqXG4gICAgICogLy8gcGFzc2luZyBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHByb21pc2VcbiAgICAgKiBhc3luYy53YXRlcmZhbGwoW1xuICAgICAqICAgICBhc3luYy5hcHBseShmcy5yZWFkRmlsZSwgZmlsZW5hbWUsIFwidXRmOFwiKSxcbiAgICAgKiAgICAgYXN5bmMuYXN5bmNpZnkoZnVuY3Rpb24gKGNvbnRlbnRzKSB7XG4gICAgICogICAgICAgICByZXR1cm4gZGIubW9kZWwuY3JlYXRlKGNvbnRlbnRzKTtcbiAgICAgKiAgICAgfSksXG4gICAgICogICAgIGZ1bmN0aW9uIChtb2RlbCwgbmV4dCkge1xuICAgICAqICAgICAgICAgLy8gYG1vZGVsYCBpcyB0aGUgaW5zdGFudGlhdGVkIG1vZGVsIG9iamVjdC5cbiAgICAgKiAgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhbiBlcnJvciwgdGhpcyBmdW5jdGlvbiB3b3VsZCBiZSBza2lwcGVkLlxuICAgICAqICAgICB9XG4gICAgICogXSwgY2FsbGJhY2spO1xuICAgICAqXG4gICAgICogLy8gZXMyMDE3IGV4YW1wbGUsIHRob3VnaCBgYXN5bmNpZnlgIGlzIG5vdCBuZWVkZWQgaWYgeW91ciBKUyBlbnZpcm9ubWVudFxuICAgICAqIC8vIHN1cHBvcnRzIGFzeW5jIGZ1bmN0aW9ucyBvdXQgb2YgdGhlIGJveFxuICAgICAqIHZhciBxID0gYXN5bmMucXVldWUoYXN5bmMuYXN5bmNpZnkoYXN5bmMgZnVuY3Rpb24oZmlsZSkge1xuICAgICAqICAgICB2YXIgaW50ZXJtZWRpYXRlU3RlcCA9IGF3YWl0IHByb2Nlc3NGaWxlKGZpbGUpO1xuICAgICAqICAgICByZXR1cm4gYXdhaXQgc29tZVByb21pc2UoaW50ZXJtZWRpYXRlU3RlcClcbiAgICAgKiB9KSk7XG4gICAgICpcbiAgICAgKiBxLnB1c2goZmlsZXMpO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGFzeW5jaWZ5KGZ1bmMpIHtcbiAgICAgICAgaWYgKGlzQXN5bmMoZnVuYykpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncy8qLCBjYWxsYmFjayovKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSBhcmdzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVQcm9taXNlKHByb21pc2UsIGNhbGxiYWNrKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluaXRpYWxQYXJhbXMoZnVuY3Rpb24gKGFyZ3MsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIHJlc3VsdCBpcyBQcm9taXNlIG9iamVjdFxuICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiB0eXBlb2YgcmVzdWx0LnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlUHJvbWlzZShyZXN1bHQsIGNhbGxiYWNrKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9taXNlKHByb21pc2UsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4odmFsdWUgPT4ge1xuICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHZhbHVlKTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCBlcnIgJiYgZXJyLm1lc3NhZ2UgPyBlcnIgOiBuZXcgRXJyb3IoZXJyKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGludm9rZUNhbGxiYWNrKGNhbGxiYWNrLCBlcnJvciwgdmFsdWUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yLCB2YWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgc2V0SW1tZWRpYXRlJDEoZSA9PiB7IHRocm93IGUgfSwgZXJyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQXN5bmMoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZuW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdBc3luY0Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FzeW5jR2VuZXJhdG9yKGZuKSB7XG4gICAgICAgIHJldHVybiBmbltTeW1ib2wudG9TdHJpbmdUYWddID09PSAnQXN5bmNHZW5lcmF0b3InO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZShvYmopIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmpbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdyYXBBc3luYyhhc3luY0ZuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYXN5bmNGbiAhPT0gJ2Z1bmN0aW9uJykgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCBhIGZ1bmN0aW9uJylcbiAgICAgICAgcmV0dXJuIGlzQXN5bmMoYXN5bmNGbikgPyBhc3luY2lmeShhc3luY0ZuKSA6IGFzeW5jRm47XG4gICAgfVxuXG4gICAgLy8gY29uZGl0aW9uYWxseSBwcm9taXNpZnkgYSBmdW5jdGlvbi5cbiAgICAvLyBvbmx5IHJldHVybiBhIHByb21pc2UgaWYgYSBjYWxsYmFjayBpcyBvbWl0dGVkXG4gICAgZnVuY3Rpb24gYXdhaXRpZnkgKGFzeW5jRm4sIGFyaXR5ID0gYXN5bmNGbi5sZW5ndGgpIHtcbiAgICAgICAgaWYgKCFhcml0eSkgdGhyb3cgbmV3IEVycm9yKCdhcml0eSBpcyB1bmRlZmluZWQnKVxuICAgICAgICBmdW5jdGlvbiBhd2FpdGFibGUgKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYXJnc1thcml0eSAtIDFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzeW5jRm4uYXBwbHkodGhpcywgYXJncylcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBhcmdzW2FyaXR5IC0gMV0gPSAoZXJyLCAuLi5jYkFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2JBcmdzLmxlbmd0aCA+IDEgPyBjYkFyZ3MgOiBjYkFyZ3NbMF0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYXN5bmNGbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXRhYmxlXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXBwbHlFYWNoIChlYWNoZm4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIGFwcGx5RWFjaChmbnMsIC4uLmNhbGxBcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBnbyA9IGF3YWl0aWZ5KGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gZWFjaGZuKGZucywgKGZuLCBjYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB3cmFwQXN5bmMoZm4pLmFwcGx5KHRoYXQsIGNhbGxBcmdzLmNvbmNhdChjYikpO1xuICAgICAgICAgICAgICAgIH0sIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGdvO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIF9hc3luY01hcChlYWNoZm4sIGFyciwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGFyciA9IGFyciB8fCBbXTtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgdmFyIGNvdW50ZXIgPSAwO1xuICAgICAgICB2YXIgX2l0ZXJhdGVlID0gd3JhcEFzeW5jKGl0ZXJhdGVlKTtcblxuICAgICAgICByZXR1cm4gZWFjaGZuKGFyciwgKHZhbHVlLCBfLCBpdGVyQ2IpID0+IHtcbiAgICAgICAgICAgIHZhciBpbmRleCA9IGNvdW50ZXIrKztcbiAgICAgICAgICAgIF9pdGVyYXRlZSh2YWx1ZSwgKGVyciwgdikgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNbaW5kZXhdID0gdjtcbiAgICAgICAgICAgICAgICBpdGVyQ2IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyLCByZXN1bHRzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUubGVuZ3RoID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgdmFsdWUubGVuZ3RoID49IDAgJiZcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCAlIDEgPT09IDA7XG4gICAgfVxuXG4gICAgLy8gQSB0ZW1wb3JhcnkgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgbG9vcCBzaG91bGQgYmUgYnJva2VuLlxuICAgIC8vIFNlZSAjMTA2NCwgIzEyOTNcbiAgICBjb25zdCBicmVha0xvb3AgPSB7fTtcblxuICAgIGZ1bmN0aW9uIG9uY2UoZm4pIHtcbiAgICAgICAgZnVuY3Rpb24gd3JhcHBlciAoLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKGZuID09PSBudWxsKSByZXR1cm47XG4gICAgICAgICAgICB2YXIgY2FsbEZuID0gZm47XG4gICAgICAgICAgICBmbiA9IG51bGw7XG4gICAgICAgICAgICBjYWxsRm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih3cmFwcGVyLCBmbik7XG4gICAgICAgIHJldHVybiB3cmFwcGVyXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3IgKGNvbGwpIHtcbiAgICAgICAgcmV0dXJuIGNvbGxbU3ltYm9sLml0ZXJhdG9yXSAmJiBjb2xsW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVBcnJheUl0ZXJhdG9yKGNvbGwpIHtcbiAgICAgICAgdmFyIGkgPSAtMTtcbiAgICAgICAgdmFyIGxlbiA9IGNvbGwubGVuZ3RoO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gbmV4dCgpIHtcbiAgICAgICAgICAgIHJldHVybiArK2kgPCBsZW4gPyB7dmFsdWU6IGNvbGxbaV0sIGtleTogaX0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRVMyMDE1SXRlcmF0b3IoaXRlcmF0b3IpIHtcbiAgICAgICAgdmFyIGkgPSAtMTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgICB2YXIgaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgIGlmIChpdGVtLmRvbmUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpdGVtLnZhbHVlLCBrZXk6IGl9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0SXRlcmF0b3Iob2JqKSB7XG4gICAgICAgIHZhciBva2V5cyA9IG9iaiA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbiAgICAgICAgdmFyIGkgPSAtMTtcbiAgICAgICAgdmFyIGxlbiA9IG9rZXlzLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gb2tleXNbKytpXTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdfX3Byb3RvX18nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpIDwgbGVuID8ge3ZhbHVlOiBvYmpba2V5XSwga2V5fSA6IG51bGw7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSXRlcmF0b3IoY29sbCkge1xuICAgICAgICBpZiAoaXNBcnJheUxpa2UoY29sbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yKGNvbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gZ2V0SXRlcmF0b3IoY29sbCk7XG4gICAgICAgIHJldHVybiBpdGVyYXRvciA/IGNyZWF0ZUVTMjAxNUl0ZXJhdG9yKGl0ZXJhdG9yKSA6IGNyZWF0ZU9iamVjdEl0ZXJhdG9yKGNvbGwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9ubHlPbmNlKGZuKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKGZuID09PSBudWxsKSB0aHJvdyBuZXcgRXJyb3IoXCJDYWxsYmFjayB3YXMgYWxyZWFkeSBjYWxsZWQuXCIpO1xuICAgICAgICAgICAgdmFyIGNhbGxGbiA9IGZuO1xuICAgICAgICAgICAgZm4gPSBudWxsO1xuICAgICAgICAgICAgY2FsbEZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIGZvciBhc3luYyBnZW5lcmF0b3JzXG4gICAgZnVuY3Rpb24gYXN5bmNFYWNoT2ZMaW1pdChnZW5lcmF0b3IsIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgbGV0IGRvbmUgPSBmYWxzZTtcbiAgICAgICAgbGV0IGNhbmNlbGVkID0gZmFsc2U7XG4gICAgICAgIGxldCBhd2FpdGluZyA9IGZhbHNlO1xuICAgICAgICBsZXQgcnVubmluZyA9IDA7XG4gICAgICAgIGxldCBpZHggPSAwO1xuXG4gICAgICAgIGZ1bmN0aW9uIHJlcGxlbmlzaCgpIHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3JlcGxlbmlzaCcpXG4gICAgICAgICAgICBpZiAocnVubmluZyA+PSBsaW1pdCB8fCBhd2FpdGluZyB8fCBkb25lKSByZXR1cm5cbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3JlcGxlbmlzaCBhd2FpdGluZycpXG4gICAgICAgICAgICBhd2FpdGluZyA9IHRydWU7XG4gICAgICAgICAgICBnZW5lcmF0b3IubmV4dCgpLnRoZW4oKHt2YWx1ZSwgZG9uZTogaXRlckRvbmV9KSA9PiB7XG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnZ290IHZhbHVlJywgdmFsdWUpXG4gICAgICAgICAgICAgICAgaWYgKGNhbmNlbGVkIHx8IGRvbmUpIHJldHVyblxuICAgICAgICAgICAgICAgIGF3YWl0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZXJEb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAocnVubmluZyA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdkb25lIG5leHRDYicpXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJ1bm5pbmcrKztcbiAgICAgICAgICAgICAgICBpdGVyYXRlZSh2YWx1ZSwgaWR4LCBpdGVyYXRlZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZHgrKztcbiAgICAgICAgICAgICAgICByZXBsZW5pc2goKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKGhhbmRsZUVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGl0ZXJhdGVlQ2FsbGJhY2soZXJyLCByZXN1bHQpIHtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ2l0ZXJhdGVlQ2FsbGJhY2snKVxuICAgICAgICAgICAgcnVubmluZyAtPSAxO1xuICAgICAgICAgICAgaWYgKGNhbmNlbGVkKSByZXR1cm5cbiAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBoYW5kbGVFcnJvcihlcnIpXG5cbiAgICAgICAgICAgIGlmIChlcnIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBicmVha0xvb3AgfHwgKGRvbmUgJiYgcnVubmluZyA8PSAwKSkge1xuICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ2RvbmUgaXRlckNiJylcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXBsZW5pc2goKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycikge1xuICAgICAgICAgICAgaWYgKGNhbmNlbGVkKSByZXR1cm5cbiAgICAgICAgICAgIGF3YWl0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICByZXBsZW5pc2goKTtcbiAgICB9XG5cbiAgICB2YXIgZWFjaE9mTGltaXQgPSAobGltaXQpID0+IHtcbiAgICAgICAgcmV0dXJuIChvYmosIGl0ZXJhdGVlLCBjYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBvbmNlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChsaW1pdCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2NvbmN1cnJlbmN5IGxpbWl0IGNhbm5vdCBiZSBsZXNzIHRoYW4gMScpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0FzeW5jR2VuZXJhdG9yKG9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmNFYWNoT2ZMaW1pdChvYmosIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNBc3luY0l0ZXJhYmxlKG9iaikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXN5bmNFYWNoT2ZMaW1pdChvYmpbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCksIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgbmV4dEVsZW0gPSBjcmVhdGVJdGVyYXRvcihvYmopO1xuICAgICAgICAgICAgdmFyIGRvbmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBjYW5jZWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIHJ1bm5pbmcgPSAwO1xuICAgICAgICAgICAgdmFyIGxvb3BpbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgZnVuY3Rpb24gaXRlcmF0ZWVDYWxsYmFjayhlcnIsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbmNlbGVkKSByZXR1cm5cbiAgICAgICAgICAgICAgICBydW5uaW5nIC09IDE7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZXJyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSA9PT0gYnJlYWtMb29wIHx8IChkb25lICYmIHJ1bm5pbmcgPD0gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIWxvb3BpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiByZXBsZW5pc2ggKCkge1xuICAgICAgICAgICAgICAgIGxvb3BpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHdoaWxlIChydW5uaW5nIDwgbGltaXQgJiYgIWRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW0gPSBuZXh0RWxlbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVubmluZyA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcnVubmluZyArPSAxO1xuICAgICAgICAgICAgICAgICAgICBpdGVyYXRlZShlbGVtLnZhbHVlLCBlbGVtLmtleSwgb25seU9uY2UoaXRlcmF0ZWVDYWxsYmFjaykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb29waW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlcGxlbmlzaCgpO1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYGVhY2hPZmBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5lYWNoT2Z9IGJ1dCBydW5zIGEgbWF4aW11bSBvZiBgbGltaXRgIGFzeW5jIG9wZXJhdGlvbnMgYXQgYVxuICAgICAqIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBlYWNoT2ZMaW1pdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmVhY2hPZl17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmVhY2hPZn1cbiAgICAgKiBAYWxpYXMgZm9yRWFjaE9mTGltaXRcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaFxuICAgICAqIGl0ZW0gaW4gYGNvbGxgLiBUaGUgYGtleWAgaXMgdGhlIGl0ZW0ncyBrZXksIG9yIGluZGV4IGluIHRoZSBjYXNlIG9mIGFuXG4gICAgICogYXJyYXkuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBrZXksIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGxcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIEludm9rZWQgd2l0aCAoZXJyKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBhIGNhbGxiYWNrIGlzIG9taXR0ZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlYWNoT2ZMaW1pdCQxKGNvbGwsIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIGVhY2hPZkxpbWl0KGxpbWl0KShjb2xsLCB3cmFwQXN5bmMoaXRlcmF0ZWUpLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgdmFyIGVhY2hPZkxpbWl0JDIgPSBhd2FpdGlmeShlYWNoT2ZMaW1pdCQxLCA0KTtcblxuICAgIC8vIGVhY2hPZiBpbXBsZW1lbnRhdGlvbiBvcHRpbWl6ZWQgZm9yIGFycmF5LWxpa2VzXG4gICAgZnVuY3Rpb24gZWFjaE9mQXJyYXlMaWtlKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spO1xuICAgICAgICB2YXIgaW5kZXggPSAwLFxuICAgICAgICAgICAgY29tcGxldGVkID0gMCxcbiAgICAgICAgICAgIHtsZW5ndGh9ID0gY29sbCxcbiAgICAgICAgICAgIGNhbmNlbGVkID0gZmFsc2U7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gaXRlcmF0b3JDYWxsYmFjayhlcnIsIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxlZCA9PT0gdHJ1ZSkgcmV0dXJuXG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKCsrY29tcGxldGVkID09PSBsZW5ndGgpIHx8IHZhbHVlID09PSBicmVha0xvb3ApIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgaXRlcmF0ZWUoY29sbFtpbmRleF0sIGluZGV4LCBvbmx5T25jZShpdGVyYXRvckNhbGxiYWNrKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhIGdlbmVyaWMgdmVyc2lvbiBvZiBlYWNoT2Ygd2hpY2ggY2FuIGhhbmRsZSBhcnJheSwgb2JqZWN0LCBhbmQgaXRlcmF0b3IgY2FzZXMuXG4gICAgZnVuY3Rpb24gZWFjaE9mR2VuZXJpYyAoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBlYWNoT2ZMaW1pdCQyKGNvbGwsIEluZmluaXR5LCBpdGVyYXRlZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExpa2UgW2BlYWNoYF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmVhY2h9LCBleGNlcHQgdGhhdCBpdCBwYXNzZXMgdGhlIGtleSAob3IgaW5kZXgpIGFzIHRoZSBzZWNvbmQgYXJndW1lbnRcbiAgICAgKiB0byB0aGUgaXRlcmF0ZWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBlYWNoT2ZcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAYWxpYXMgZm9yRWFjaE9mXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAc2VlIFthc3luYy5lYWNoXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZWFjaH1cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQSBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoXG4gICAgICogaXRlbSBpbiBgY29sbGAuXG4gICAgICogVGhlIGBrZXlgIGlzIHRoZSBpdGVtJ3Mga2V5LCBvciBpbmRleCBpbiB0aGUgY2FzZSBvZiBhbiBhcnJheS5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGtleSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbFxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBkZXYuanNvbiBpcyBhIGZpbGUgY29udGFpbmluZyBhIHZhbGlkIGpzb24gb2JqZWN0IGNvbmZpZyBmb3IgZGV2IGVudmlyb25tZW50XG4gICAgICogLy8gZGV2Lmpzb24gaXMgYSBmaWxlIGNvbnRhaW5pbmcgYSB2YWxpZCBqc29uIG9iamVjdCBjb25maWcgZm9yIHRlc3QgZW52aXJvbm1lbnRcbiAgICAgKiAvLyBwcm9kLmpzb24gaXMgYSBmaWxlIGNvbnRhaW5pbmcgYSB2YWxpZCBqc29uIG9iamVjdCBjb25maWcgZm9yIHByb2QgZW52aXJvbm1lbnRcbiAgICAgKiAvLyBpbnZhbGlkLmpzb24gaXMgYSBmaWxlIHdpdGggYSBtYWxmb3JtZWQganNvbiBvYmplY3RcbiAgICAgKlxuICAgICAqIGxldCBjb25maWdzID0ge307IC8vZ2xvYmFsIHZhcmlhYmxlXG4gICAgICogbGV0IHZhbGlkQ29uZmlnRmlsZU1hcCA9IHtkZXY6ICdkZXYuanNvbicsIHRlc3Q6ICd0ZXN0Lmpzb24nLCBwcm9kOiAncHJvZC5qc29uJ307XG4gICAgICogbGV0IGludmFsaWRDb25maWdGaWxlTWFwID0ge2RldjogJ2Rldi5qc29uJywgdGVzdDogJ3Rlc3QuanNvbicsIGludmFsaWQ6ICdpbnZhbGlkLmpzb24nfTtcbiAgICAgKlxuICAgICAqIC8vIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IHJlYWRzIGEganNvbiBmaWxlIGFuZCBwYXJzZXMgdGhlIGNvbnRlbnRzIGFzIGpzb24gb2JqZWN0XG4gICAgICogZnVuY3Rpb24gcGFyc2VGaWxlKGZpbGUsIGtleSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZnMucmVhZEZpbGUoZmlsZSwgXCJ1dGY4XCIsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAqICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGJhY2soZXJyKTtcbiAgICAgKiAgICAgICAgIHRyeSB7XG4gICAgICogICAgICAgICAgICAgY29uZmlnc1trZXldID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgKiAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZSk7XG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgICBjYWxsYmFjaygpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBjYWxsYmFja3NcbiAgICAgKiBhc3luYy5mb3JFYWNoT2YodmFsaWRDb25maWdGaWxlTWFwLCBwYXJzZUZpbGUsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgKiAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAqICAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coY29uZmlncyk7XG4gICAgICogICAgICAgICAvLyBjb25maWdzIGlzIG5vdyBhIG1hcCBvZiBKU09OIGRhdGEsIGUuZy5cbiAgICAgKiAgICAgICAgIC8vIHsgZGV2OiAvL3BhcnNlZCBkZXYuanNvbiwgdGVzdDogLy9wYXJzZWQgdGVzdC5qc29uLCBwcm9kOiAvL3BhcnNlZCBwcm9kLmpzb259XG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vRXJyb3IgaGFuZGluZ1xuICAgICAqIGFzeW5jLmZvckVhY2hPZihpbnZhbGlkQ29uZmlnRmlsZU1hcCwgcGFyc2VGaWxlLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICogICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgKiAgICAgICAgIC8vIEpTT04gcGFyc2UgZXJyb3IgZXhjZXB0aW9uXG4gICAgICogICAgIH0gZWxzZSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhjb25maWdzKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5mb3JFYWNoT2YodmFsaWRDb25maWdGaWxlTWFwLCBwYXJzZUZpbGUpXG4gICAgICogLnRoZW4oICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coY29uZmlncyk7XG4gICAgICogICAgIC8vIGNvbmZpZ3MgaXMgbm93IGEgbWFwIG9mIEpTT04gZGF0YSwgZS5nLlxuICAgICAqICAgICAvLyB7IGRldjogLy9wYXJzZWQgZGV2Lmpzb24sIHRlc3Q6IC8vcGFyc2VkIHRlc3QuanNvbiwgcHJvZDogLy9wYXJzZWQgcHJvZC5qc29ufVxuICAgICAqIH0pLmNhdGNoKCBlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvL0Vycm9yIGhhbmRpbmdcbiAgICAgKiBhc3luYy5mb3JFYWNoT2YoaW52YWxpZENvbmZpZ0ZpbGVNYXAsIHBhcnNlRmlsZSlcbiAgICAgKiAudGhlbiggKCkgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhjb25maWdzKTtcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAqICAgICAvLyBKU09OIHBhcnNlIGVycm9yIGV4Y2VwdGlvblxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMuZm9yRWFjaE9mKHZhbGlkQ29uZmlnRmlsZU1hcCwgcGFyc2VGaWxlKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGNvbmZpZ3MpO1xuICAgICAqICAgICAgICAgLy8gY29uZmlncyBpcyBub3cgYSBtYXAgb2YgSlNPTiBkYXRhLCBlLmcuXG4gICAgICogICAgICAgICAvLyB7IGRldjogLy9wYXJzZWQgZGV2Lmpzb24sIHRlc3Q6IC8vcGFyc2VkIHRlc3QuanNvbiwgcHJvZDogLy9wYXJzZWQgcHJvZC5qc29ufVxuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvL0Vycm9yIGhhbmRpbmdcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMuZm9yRWFjaE9mKGludmFsaWRDb25maWdGaWxlTWFwLCBwYXJzZUZpbGUpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coY29uZmlncyk7XG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgICAgIC8vIEpTT04gcGFyc2UgZXJyb3IgZXhjZXB0aW9uXG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlYWNoT2YoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBlYWNoT2ZJbXBsZW1lbnRhdGlvbiA9IGlzQXJyYXlMaWtlKGNvbGwpID8gZWFjaE9mQXJyYXlMaWtlIDogZWFjaE9mR2VuZXJpYztcbiAgICAgICAgcmV0dXJuIGVhY2hPZkltcGxlbWVudGF0aW9uKGNvbGwsIHdyYXBBc3luYyhpdGVyYXRlZSksIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICB2YXIgZWFjaE9mJDEgPSBhd2FpdGlmeShlYWNoT2YsIDMpO1xuXG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYSBuZXcgY29sbGVjdGlvbiBvZiB2YWx1ZXMgYnkgbWFwcGluZyBlYWNoIHZhbHVlIGluIGBjb2xsYCB0aHJvdWdoXG4gICAgICogdGhlIGBpdGVyYXRlZWAgZnVuY3Rpb24uIFRoZSBgaXRlcmF0ZWVgIGlzIGNhbGxlZCB3aXRoIGFuIGl0ZW0gZnJvbSBgY29sbGBcbiAgICAgKiBhbmQgYSBjYWxsYmFjayBmb3Igd2hlbiBpdCBoYXMgZmluaXNoZWQgcHJvY2Vzc2luZy4gRWFjaCBvZiB0aGVzZSBjYWxsYmFja3NcbiAgICAgKiB0YWtlcyAyIGFyZ3VtZW50czogYW4gYGVycm9yYCwgYW5kIHRoZSB0cmFuc2Zvcm1lZCBpdGVtIGZyb20gYGNvbGxgLiBJZlxuICAgICAqIGBpdGVyYXRlZWAgcGFzc2VzIGFuIGVycm9yIHRvIGl0cyBjYWxsYmFjaywgdGhlIG1haW4gYGNhbGxiYWNrYCAoZm9yIHRoZVxuICAgICAqIGBtYXBgIGZ1bmN0aW9uKSBpcyBpbW1lZGlhdGVseSBjYWxsZWQgd2l0aCB0aGUgZXJyb3IuXG4gICAgICpcbiAgICAgKiBOb3RlLCB0aGF0IHNpbmNlIHRoaXMgZnVuY3Rpb24gYXBwbGllcyB0aGUgYGl0ZXJhdGVlYCB0byBlYWNoIGl0ZW0gaW5cbiAgICAgKiBwYXJhbGxlbCwgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGBpdGVyYXRlZWAgZnVuY3Rpb25zIHdpbGwgY29tcGxldGVcbiAgICAgKiBpbiBvcmRlci4gSG93ZXZlciwgdGhlIHJlc3VsdHMgYXJyYXkgd2lsbCBiZSBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGVcbiAgICAgKiBvcmlnaW5hbCBgY29sbGAuXG4gICAgICpcbiAgICAgKiBJZiBgbWFwYCBpcyBwYXNzZWQgYW4gT2JqZWN0LCB0aGUgcmVzdWx0cyB3aWxsIGJlIGFuIEFycmF5LiAgVGhlIHJlc3VsdHNcbiAgICAgKiB3aWxsIHJvdWdobHkgYmUgaW4gdGhlIG9yZGVyIG9mIHRoZSBvcmlnaW5hbCBPYmplY3RzJyBrZXlzIChidXQgdGhpcyBjYW5cbiAgICAgKiB2YXJ5IGFjcm9zcyBKYXZhU2NyaXB0IGVuZ2luZXMpLlxuICAgICAqXG4gICAgICogQG5hbWUgbWFwXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluXG4gICAgICogYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgdHJhbnNmb3JtZWQgaXRlbS5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGwgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIFJlc3VsdHMgaXMgYW4gQXJyYXkgb2YgdGhlXG4gICAgICogdHJhbnNmb3JtZWQgaXRlbXMgZnJvbSB0aGUgYGNvbGxgLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGZpbGUxLnR4dCBpcyBhIGZpbGUgdGhhdCBpcyAxMDAwIGJ5dGVzIGluIHNpemVcbiAgICAgKiAvLyBmaWxlMi50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMjAwMCBieXRlcyBpbiBzaXplXG4gICAgICogLy8gZmlsZTMudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDMwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIGZpbGU0LnR4dCBkb2VzIG5vdCBleGlzdFxuICAgICAqXG4gICAgICogY29uc3QgZmlsZUxpc3QgPSBbJ2ZpbGUxLnR4dCcsJ2ZpbGUyLnR4dCcsJ2ZpbGUzLnR4dCddO1xuICAgICAqIGNvbnN0IHdpdGhNaXNzaW5nRmlsZUxpc3QgPSBbJ2ZpbGUxLnR4dCcsJ2ZpbGUyLnR4dCcsJ2ZpbGU0LnR4dCddO1xuICAgICAqXG4gICAgICogLy8gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgZmlsZSBzaXplIGluIGJ5dGVzXG4gICAgICogZnVuY3Rpb24gZ2V0RmlsZVNpemVJbkJ5dGVzKGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgICogICAgIGZzLnN0YXQoZmlsZSwgZnVuY3Rpb24oZXJyLCBzdGF0KSB7XG4gICAgICogICAgICAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICogICAgICAgICB9XG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCBzdGF0LnNpemUpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBjYWxsYmFja3NcbiAgICAgKiBhc3luYy5tYXAoZmlsZUxpc3QsIGdldEZpbGVTaXplSW5CeXRlcywgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH0gZWxzZSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdHMgaXMgbm93IGFuIGFycmF5IG9mIHRoZSBmaWxlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2ggZmlsZSwgZS5nLlxuICAgICAqICAgICAgICAgLy8gWyAxMDAwLCAyMDAwLCAzMDAwXVxuICAgICAqICAgICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBIYW5kbGluZ1xuICAgICAqIGFzeW5jLm1hcCh3aXRoTWlzc2luZ0ZpbGVMaXN0LCBnZXRGaWxlU2l6ZUluQnl0ZXMsIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBQcm9taXNlc1xuICAgICAqIGFzeW5jLm1hcChmaWxlTGlzdCwgZ2V0RmlsZVNpemVJbkJ5dGVzKVxuICAgICAqIC50aGVuKCByZXN1bHRzID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgIC8vIHJlc3VsdHMgaXMgbm93IGFuIGFycmF5IG9mIHRoZSBmaWxlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2ggZmlsZSwgZS5nLlxuICAgICAqICAgICAvLyBbIDEwMDAsIDIwMDAsIDMwMDBdXG4gICAgICogfSkuY2F0Y2goIGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBIYW5kbGluZ1xuICAgICAqIGFzeW5jLm1hcCh3aXRoTWlzc2luZ0ZpbGVMaXN0LCBnZXRGaWxlU2l6ZUluQnl0ZXMpXG4gICAgICogLnRoZW4oIHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBhc3luYy5tYXAoZmlsZUxpc3QsIGdldEZpbGVTaXplSW5CeXRlcyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdHMgaXMgbm93IGFuIGFycmF5IG9mIHRoZSBmaWxlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2ggZmlsZSwgZS5nLlxuICAgICAqICAgICAgICAgLy8gWyAxMDAwLCAyMDAwLCAzMDAwXVxuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBIYW5kbGluZ1xuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgYXN5bmMubWFwKHdpdGhNaXNzaW5nRmlsZUxpc3QsIGdldEZpbGVTaXplSW5CeXRlcyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcCAoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfYXN5bmNNYXAoZWFjaE9mJDEsIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIG1hcCQxID0gYXdhaXRpZnkobWFwLCAzKTtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyB0byBlYWNoIGZ1bmN0aW9uIGluIHRoZSBhcnJheSwgY2FsbGluZ1xuICAgICAqIGBjYWxsYmFja2AgYWZ0ZXIgYWxsIGZ1bmN0aW9ucyBoYXZlIGNvbXBsZXRlZC4gSWYgeW91IG9ubHkgcHJvdmlkZSB0aGUgZmlyc3RcbiAgICAgKiBhcmd1bWVudCwgYGZuc2AsIHRoZW4gaXQgd2lsbCByZXR1cm4gYSBmdW5jdGlvbiB3aGljaCBsZXRzIHlvdSBwYXNzIGluIHRoZVxuICAgICAqIGFyZ3VtZW50cyBhcyBpZiBpdCB3ZXJlIGEgc2luZ2xlIGZ1bmN0aW9uIGNhbGwuIElmIG1vcmUgYXJndW1lbnRzIGFyZVxuICAgICAqIHByb3ZpZGVkLCBgY2FsbGJhY2tgIGlzIHJlcXVpcmVkIHdoaWxlIGBhcmdzYCBpcyBzdGlsbCBvcHRpb25hbC4gVGhlIHJlc3VsdHNcbiAgICAgKiBmb3IgZWFjaCBvZiB0aGUgYXBwbGllZCBhc3luYyBmdW5jdGlvbnMgYXJlIHBhc3NlZCB0byB0aGUgZmluYWwgY2FsbGJhY2tcbiAgICAgKiBhcyBhbiBhcnJheS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGFwcGx5RWFjaFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBmbnMgLSBBIGNvbGxlY3Rpb24gb2Yge0BsaW5rIEFzeW5jRnVuY3Rpb259c1xuICAgICAqIHRvIGFsbCBjYWxsIHdpdGggdGhlIHNhbWUgYXJndW1lbnRzXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gLSBhbnkgbnVtYmVyIG9mIHNlcGFyYXRlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZVxuICAgICAqIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSB0aGUgZmluYWwgYXJndW1lbnQgc2hvdWxkIGJlIHRoZSBjYWxsYmFjayxcbiAgICAgKiBjYWxsZWQgd2hlbiBhbGwgZnVuY3Rpb25zIGhhdmUgY29tcGxldGVkIHByb2Nlc3NpbmcuXG4gICAgICogQHJldHVybnMge0FzeW5jRnVuY3Rpb259IC0gUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gYXJncyBvdGhlciB0aGFuXG4gICAgICogYW4gb3B0aW9uYWwgY2FsbGJhY2ssIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgYGFyZ3NgIHRvIGVhY2hcbiAgICAgKiBvZiB0aGUgZnVuY3Rpb25zLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBjb25zdCBhcHBsaWVkRm4gPSBhc3luYy5hcHBseUVhY2goW2VuYWJsZVNlYXJjaCwgdXBkYXRlU2NoZW1hXSwgJ2J1Y2tldCcpXG4gICAgICpcbiAgICAgKiBhcHBsaWVkRm4oKGVyciwgcmVzdWx0cykgPT4ge1xuICAgICAqICAgICAvLyByZXN1bHRzWzBdIGlzIHRoZSByZXN1bHRzIGZvciBgZW5hYmxlU2VhcmNoYFxuICAgICAqICAgICAvLyByZXN1bHRzWzFdIGlzIHRoZSByZXN1bHRzIGZvciBgdXBkYXRlU2NoZW1hYFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gcGFydGlhbCBhcHBsaWNhdGlvbiBleGFtcGxlOlxuICAgICAqIGFzeW5jLmVhY2goXG4gICAgICogICAgIGJ1Y2tldHMsXG4gICAgICogICAgIGFzeW5jIChidWNrZXQpID0+IGFzeW5jLmFwcGx5RWFjaChbZW5hYmxlU2VhcmNoLCB1cGRhdGVTY2hlbWFdLCBidWNrZXQpKCksXG4gICAgICogICAgIGNhbGxiYWNrXG4gICAgICogKTtcbiAgICAgKi9cbiAgICB2YXIgYXBwbHlFYWNoJDEgPSBhcHBseUVhY2gobWFwJDEpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMgW2BlYWNoT2ZgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZWFjaE9mfSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBlYWNoT2ZTZXJpZXNcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5lYWNoT2Zde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5lYWNoT2Z9XG4gICAgICogQGFsaWFzIGZvckVhY2hPZlNlcmllc1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpblxuICAgICAqIGBjb2xsYC5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGtleSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbCBgaXRlcmF0ZWVgXG4gICAgICogZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVhY2hPZlNlcmllcyhjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIGVhY2hPZkxpbWl0JDIoY29sbCwgMSwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgZWFjaE9mU2VyaWVzJDEgPSBhd2FpdGlmeShlYWNoT2ZTZXJpZXMsIDMpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMgW2BtYXBgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMubWFwfSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBtYXBTZXJpZXNcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5tYXBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5tYXB9XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluXG4gICAgICogYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgdHJhbnNmb3JtZWQgaXRlbS5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGwgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIFJlc3VsdHMgaXMgYW4gYXJyYXkgb2YgdGhlXG4gICAgICogdHJhbnNmb3JtZWQgaXRlbXMgZnJvbSB0aGUgYGNvbGxgLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwU2VyaWVzIChjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIF9hc3luY01hcChlYWNoT2ZTZXJpZXMkMSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgbWFwU2VyaWVzJDEgPSBhd2FpdGlmeShtYXBTZXJpZXMsIDMpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMgW2BhcHBseUVhY2hgXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cuYXBwbHlFYWNofSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBhcHBseUVhY2hTZXJpZXNcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5hcHBseUVhY2hde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5hcHBseUVhY2h9XG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGZucyAtIEEgY29sbGVjdGlvbiBvZiB7QGxpbmsgQXN5bmNGdW5jdGlvbn1zIHRvIGFsbFxuICAgICAqIGNhbGwgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHNcbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSAtIGFueSBudW1iZXIgb2Ygc2VwYXJhdGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlXG4gICAgICogZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIHRoZSBmaW5hbCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIGNhbGxiYWNrLFxuICAgICAqIGNhbGxlZCB3aGVuIGFsbCBmdW5jdGlvbnMgaGF2ZSBjb21wbGV0ZWQgcHJvY2Vzc2luZy5cbiAgICAgKiBAcmV0dXJucyB7QXN5bmNGdW5jdGlvbn0gLSBBIGZ1bmN0aW9uLCB0aGF0IHdoZW4gY2FsbGVkLCBpcyB0aGUgcmVzdWx0IG9mXG4gICAgICogYXBwbGluZyB0aGUgYGFyZ3NgIHRvIHRoZSBsaXN0IG9mIGZ1bmN0aW9ucy4gIEl0IHRha2VzIG5vIGFyZ3MsIG90aGVyIHRoYW5cbiAgICAgKiBhIGNhbGxiYWNrLlxuICAgICAqL1xuICAgIHZhciBhcHBseUVhY2hTZXJpZXMgPSBhcHBseUVhY2gobWFwU2VyaWVzJDEpO1xuXG4gICAgY29uc3QgUFJPTUlTRV9TWU1CT0wgPSBTeW1ib2woJ3Byb21pc2VDYWxsYmFjaycpO1xuXG4gICAgZnVuY3Rpb24gcHJvbWlzZUNhbGxiYWNrICgpIHtcbiAgICAgICAgbGV0IHJlc29sdmUsIHJlamVjdDtcbiAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sgKGVyciwgLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdChlcnIpXG4gICAgICAgICAgICByZXNvbHZlKGFyZ3MubGVuZ3RoID4gMSA/IGFyZ3MgOiBhcmdzWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrW1BST01JU0VfU1lNQk9MXSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSA9IHJlcyxcbiAgICAgICAgICAgIHJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgYmVzdCBvcmRlciBmb3IgcnVubmluZyB0aGUge0BsaW5rIEFzeW5jRnVuY3Rpb259cyBpbiBgdGFza3NgLCBiYXNlZCBvblxuICAgICAqIHRoZWlyIHJlcXVpcmVtZW50cy4gRWFjaCBmdW5jdGlvbiBjYW4gb3B0aW9uYWxseSBkZXBlbmQgb24gb3RoZXIgZnVuY3Rpb25zXG4gICAgICogYmVpbmcgY29tcGxldGVkIGZpcnN0LCBhbmQgZWFjaCBmdW5jdGlvbiBpcyBydW4gYXMgc29vbiBhcyBpdHMgcmVxdWlyZW1lbnRzXG4gICAgICogYXJlIHNhdGlzZmllZC5cbiAgICAgKlxuICAgICAqIElmIGFueSBvZiB0aGUge0BsaW5rIEFzeW5jRnVuY3Rpb259cyBwYXNzIGFuIGVycm9yIHRvIHRoZWlyIGNhbGxiYWNrLCB0aGUgYGF1dG9gIHNlcXVlbmNlXG4gICAgICogd2lsbCBzdG9wLiBGdXJ0aGVyIHRhc2tzIHdpbGwgbm90IGV4ZWN1dGUgKHNvIGFueSBvdGhlciBmdW5jdGlvbnMgZGVwZW5kaW5nXG4gICAgICogb24gaXQgd2lsbCBub3QgcnVuKSwgYW5kIHRoZSBtYWluIGBjYWxsYmFja2AgaXMgaW1tZWRpYXRlbHkgY2FsbGVkIHdpdGggdGhlXG4gICAgICogZXJyb3IuXG4gICAgICpcbiAgICAgKiB7QGxpbmsgQXN5bmNGdW5jdGlvbn1zIGFsc28gcmVjZWl2ZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzdWx0cyBvZiBmdW5jdGlvbnMgd2hpY2hcbiAgICAgKiBoYXZlIGNvbXBsZXRlZCBzbyBmYXIgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCBpZiB0aGV5IGhhdmUgZGVwZW5kZW5jaWVzLiBJZiBhXG4gICAgICogdGFzayBmdW5jdGlvbiBoYXMgbm8gZGVwZW5kZW5jaWVzLCBpdCB3aWxsIG9ubHkgYmUgcGFzc2VkIGEgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiBAbmFtZSBhdXRvXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB0YXNrcyAtIEFuIG9iamVjdC4gRWFjaCBvZiBpdHMgcHJvcGVydGllcyBpcyBlaXRoZXIgYVxuICAgICAqIGZ1bmN0aW9uIG9yIGFuIGFycmF5IG9mIHJlcXVpcmVtZW50cywgd2l0aCB0aGUge0BsaW5rIEFzeW5jRnVuY3Rpb259IGl0c2VsZiB0aGUgbGFzdCBpdGVtXG4gICAgICogaW4gdGhlIGFycmF5LiBUaGUgb2JqZWN0J3Mga2V5IG9mIGEgcHJvcGVydHkgc2VydmVzIGFzIHRoZSBuYW1lIG9mIHRoZSB0YXNrXG4gICAgICogZGVmaW5lZCBieSB0aGF0IHByb3BlcnR5LCBpLmUuIGNhbiBiZSB1c2VkIHdoZW4gc3BlY2lmeWluZyByZXF1aXJlbWVudHMgZm9yXG4gICAgICogb3RoZXIgdGFza3MuIFRoZSBmdW5jdGlvbiByZWNlaXZlcyBvbmUgb3IgdHdvIGFyZ3VtZW50czpcbiAgICAgKiAqIGEgYHJlc3VsdHNgIG9iamVjdCwgY29udGFpbmluZyB0aGUgcmVzdWx0cyBvZiB0aGUgcHJldmlvdXNseSBleGVjdXRlZFxuICAgICAqICAgZnVuY3Rpb25zLCBvbmx5IHBhc3NlZCBpZiB0aGUgdGFzayBoYXMgYW55IGRlcGVuZGVuY2llcyxcbiAgICAgKiAqIGEgYGNhbGxiYWNrKGVyciwgcmVzdWx0KWAgZnVuY3Rpb24sIHdoaWNoIG11c3QgYmUgY2FsbGVkIHdoZW4gZmluaXNoZWQsXG4gICAgICogICBwYXNzaW5nIGFuIGBlcnJvcmAgKHdoaWNoIGNhbiBiZSBgbnVsbGApIGFuZCB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbidzXG4gICAgICogICBleGVjdXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb25jdXJyZW5jeT1JbmZpbml0eV0gLSBBbiBvcHRpb25hbCBgaW50ZWdlcmAgZm9yXG4gICAgICogZGV0ZXJtaW5pbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRhc2tzIHRoYXQgY2FuIGJlIHJ1biBpbiBwYXJhbGxlbC4gQnlcbiAgICAgKiBkZWZhdWx0LCBhcyBtYW55IGFzIHBvc3NpYmxlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGxcbiAgICAgKiB0aGUgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gSXQgcmVjZWl2ZXMgdGhlIGBlcnJgIGFyZ3VtZW50IGlmIGFueSBgdGFza3NgXG4gICAgICogcGFzcyBhbiBlcnJvciB0byB0aGVpciBjYWxsYmFjay4gUmVzdWx0cyBhcmUgYWx3YXlzIHJldHVybmVkOyBob3dldmVyLCBpZiBhblxuICAgICAqIGVycm9yIG9jY3Vycywgbm8gZnVydGhlciBgdGFza3NgIHdpbGwgYmUgcGVyZm9ybWVkLCBhbmQgdGhlIHJlc3VsdHMgb2JqZWN0XG4gICAgICogd2lsbCBvbmx5IGNvbnRhaW4gcGFydGlhbCByZXN1bHRzLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgYSBjYWxsYmFjayBpcyBub3QgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgQ2FsbGJhY2tzXG4gICAgICogYXN5bmMuYXV0byh7XG4gICAgICogICAgIGdldF9kYXRhOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gYXN5bmMgY29kZSB0byBnZXQgc29tZSBkYXRhXG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCAnZGF0YScsICdjb252ZXJ0ZWQgdG8gYXJyYXknKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgbWFrZV9mb2xkZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBhc3luYyBjb2RlIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeSB0byBzdG9yZSBhIGZpbGUgaW5cbiAgICAgKiAgICAgICAgIC8vIHRoaXMgaXMgcnVuIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ2V0dGluZyB0aGUgZGF0YVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ2ZvbGRlcicpO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICB3cml0ZV9maWxlOiBbJ2dldF9kYXRhJywgJ21ha2VfZm9sZGVyJywgZnVuY3Rpb24ocmVzdWx0cywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIC8vIG9uY2UgdGhlcmUgaXMgc29tZSBkYXRhIGFuZCB0aGUgZGlyZWN0b3J5IGV4aXN0cyxcbiAgICAgKiAgICAgICAgIC8vIHdyaXRlIHRoZSBkYXRhIHRvIGEgZmlsZSBpbiB0aGUgZGlyZWN0b3J5XG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCAnZmlsZW5hbWUnKTtcbiAgICAgKiAgICAgfV0sXG4gICAgICogICAgIGVtYWlsX2xpbms6IFsnd3JpdGVfZmlsZScsIGZ1bmN0aW9uKHJlc3VsdHMsIGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBvbmNlIHRoZSBmaWxlIGlzIHdyaXR0ZW4gbGV0J3MgZW1haWwgYSBsaW5rIHRvIGl0Li4uXG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCB7J2ZpbGUnOnJlc3VsdHMud3JpdGVfZmlsZSwgJ2VtYWlsJzondXNlckBleGFtcGxlLmNvbSd9KTtcbiAgICAgKiAgICAgfV1cbiAgICAgKiB9LCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coJ2VyciA9ICcsIGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY29uc29sZS5sb2coJ3Jlc3VsdHMgPSAnLCByZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyA9IHtcbiAgICAgKiAgICAgLy8gICAgIGdldF9kYXRhOiBbJ2RhdGEnLCAnY29udmVydGVkIHRvIGFycmF5J11cbiAgICAgKiAgICAgLy8gICAgIG1ha2VfZm9sZGVyOyAnZm9sZGVyJyxcbiAgICAgKiAgICAgLy8gICAgIHdyaXRlX2ZpbGU6ICdmaWxlbmFtZSdcbiAgICAgKiAgICAgLy8gICAgIGVtYWlsX2xpbms6IHsgZmlsZTogJ2ZpbGVuYW1lJywgZW1haWw6ICd1c2VyQGV4YW1wbGUuY29tJyB9XG4gICAgICogICAgIC8vIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5hdXRvKHtcbiAgICAgKiAgICAgZ2V0X2RhdGE6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZygnaW4gZ2V0X2RhdGEnKTtcbiAgICAgKiAgICAgICAgIC8vIGFzeW5jIGNvZGUgdG8gZ2V0IHNvbWUgZGF0YVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ2RhdGEnLCAnY29udmVydGVkIHRvIGFycmF5Jyk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIG1ha2VfZm9sZGVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coJ2luIG1ha2VfZm9sZGVyJyk7XG4gICAgICogICAgICAgICAvLyBhc3luYyBjb2RlIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeSB0byBzdG9yZSBhIGZpbGUgaW5cbiAgICAgKiAgICAgICAgIC8vIHRoaXMgaXMgcnVuIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ2V0dGluZyB0aGUgZGF0YVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ2ZvbGRlcicpO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICB3cml0ZV9maWxlOiBbJ2dldF9kYXRhJywgJ21ha2VfZm9sZGVyJywgZnVuY3Rpb24ocmVzdWx0cywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIC8vIG9uY2UgdGhlcmUgaXMgc29tZSBkYXRhIGFuZCB0aGUgZGlyZWN0b3J5IGV4aXN0cyxcbiAgICAgKiAgICAgICAgIC8vIHdyaXRlIHRoZSBkYXRhIHRvIGEgZmlsZSBpbiB0aGUgZGlyZWN0b3J5XG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCAnZmlsZW5hbWUnKTtcbiAgICAgKiAgICAgfV0sXG4gICAgICogICAgIGVtYWlsX2xpbms6IFsnd3JpdGVfZmlsZScsIGZ1bmN0aW9uKHJlc3VsdHMsIGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBvbmNlIHRoZSBmaWxlIGlzIHdyaXR0ZW4gbGV0J3MgZW1haWwgYSBsaW5rIHRvIGl0Li4uXG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCB7J2ZpbGUnOnJlc3VsdHMud3JpdGVfZmlsZSwgJ2VtYWlsJzondXNlckBleGFtcGxlLmNvbSd9KTtcbiAgICAgKiAgICAgfV1cbiAgICAgKiB9KS50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZygncmVzdWx0cyA9ICcsIHJlc3VsdHMpO1xuICAgICAqICAgICAvLyByZXN1bHRzID0ge1xuICAgICAqICAgICAvLyAgICAgZ2V0X2RhdGE6IFsnZGF0YScsICdjb252ZXJ0ZWQgdG8gYXJyYXknXVxuICAgICAqICAgICAvLyAgICAgbWFrZV9mb2xkZXI7ICdmb2xkZXInLFxuICAgICAqICAgICAvLyAgICAgd3JpdGVfZmlsZTogJ2ZpbGVuYW1lJ1xuICAgICAqICAgICAvLyAgICAgZW1haWxfbGluazogeyBmaWxlOiAnZmlsZW5hbWUnLCBlbWFpbDogJ3VzZXJAZXhhbXBsZS5jb20nIH1cbiAgICAgKiAgICAgLy8gfVxuICAgICAqIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdlcnIgPSAnLCBlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy9Vc2luZyBhc3luYy9hd2FpdFxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgYXN5bmMuYXV0byh7XG4gICAgICogICAgICAgICAgICAgZ2V0X2RhdGE6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAgICAgICAgIC8vIGFzeW5jIGNvZGUgdG8gZ2V0IHNvbWUgZGF0YVxuICAgICAqICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAnZGF0YScsICdjb252ZXJ0ZWQgdG8gYXJyYXknKTtcbiAgICAgKiAgICAgICAgICAgICB9LFxuICAgICAqICAgICAgICAgICAgIG1ha2VfZm9sZGVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgICAgICAgICAvLyBhc3luYyBjb2RlIHRvIGNyZWF0ZSBhIGRpcmVjdG9yeSB0byBzdG9yZSBhIGZpbGUgaW5cbiAgICAgKiAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBydW4gYXQgdGhlIHNhbWUgdGltZSBhcyBnZXR0aW5nIHRoZSBkYXRhXG4gICAgICogICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICdmb2xkZXInKTtcbiAgICAgKiAgICAgICAgICAgICB9LFxuICAgICAqICAgICAgICAgICAgIHdyaXRlX2ZpbGU6IFsnZ2V0X2RhdGEnLCAnbWFrZV9mb2xkZXInLCBmdW5jdGlvbihyZXN1bHRzLCBjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgICAgICAgICAvLyBvbmNlIHRoZXJlIGlzIHNvbWUgZGF0YSBhbmQgdGhlIGRpcmVjdG9yeSBleGlzdHMsXG4gICAgICogICAgICAgICAgICAgICAgIC8vIHdyaXRlIHRoZSBkYXRhIHRvIGEgZmlsZSBpbiB0aGUgZGlyZWN0b3J5XG4gICAgICogICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICdmaWxlbmFtZScpO1xuICAgICAqICAgICAgICAgICAgIH1dLFxuICAgICAqICAgICAgICAgICAgIGVtYWlsX2xpbms6IFsnd3JpdGVfZmlsZScsIGZ1bmN0aW9uKHJlc3VsdHMsIGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAgICAgICAgIC8vIG9uY2UgdGhlIGZpbGUgaXMgd3JpdHRlbiBsZXQncyBlbWFpbCBhIGxpbmsgdG8gaXQuLi5cbiAgICAgKiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgeydmaWxlJzpyZXN1bHRzLndyaXRlX2ZpbGUsICdlbWFpbCc6J3VzZXJAZXhhbXBsZS5jb20nfSk7XG4gICAgICogICAgICAgICAgICAgfV1cbiAgICAgKiAgICAgICAgIH0pO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdHMgPSAnLCByZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdHMgPSB7XG4gICAgICogICAgICAgICAvLyAgICAgZ2V0X2RhdGE6IFsnZGF0YScsICdjb252ZXJ0ZWQgdG8gYXJyYXknXVxuICAgICAqICAgICAgICAgLy8gICAgIG1ha2VfZm9sZGVyOyAnZm9sZGVyJyxcbiAgICAgKiAgICAgICAgIC8vICAgICB3cml0ZV9maWxlOiAnZmlsZW5hbWUnXG4gICAgICogICAgICAgICAvLyAgICAgZW1haWxfbGluazogeyBmaWxlOiAnZmlsZW5hbWUnLCBlbWFpbDogJ3VzZXJAZXhhbXBsZS5jb20nIH1cbiAgICAgKiAgICAgICAgIC8vIH1cbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gYXV0byh0YXNrcywgY29uY3VycmVuY3ksIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uY3VycmVuY3kgIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAvLyBjb25jdXJyZW5jeSBpcyBvcHRpb25hbCwgc2hpZnQgdGhlIGFyZ3MuXG4gICAgICAgICAgICBjYWxsYmFjayA9IGNvbmN1cnJlbmN5O1xuICAgICAgICAgICAgY29uY3VycmVuY3kgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNhbGxiYWNrID0gb25jZShjYWxsYmFjayB8fCBwcm9taXNlQ2FsbGJhY2soKSk7XG4gICAgICAgIHZhciBudW1UYXNrcyA9IE9iamVjdC5rZXlzKHRhc2tzKS5sZW5ndGg7XG4gICAgICAgIGlmICghbnVtVGFza3MpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbmN1cnJlbmN5KSB7XG4gICAgICAgICAgICBjb25jdXJyZW5jeSA9IG51bVRhc2tzO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlc3VsdHMgPSB7fTtcbiAgICAgICAgdmFyIHJ1bm5pbmdUYXNrcyA9IDA7XG4gICAgICAgIHZhciBjYW5jZWxlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgaGFzRXJyb3IgPSBmYWxzZTtcblxuICAgICAgICB2YXIgbGlzdGVuZXJzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgICAgICB2YXIgcmVhZHlUYXNrcyA9IFtdO1xuXG4gICAgICAgIC8vIGZvciBjeWNsZSBkZXRlY3Rpb246XG4gICAgICAgIHZhciByZWFkeVRvQ2hlY2sgPSBbXTsgLy8gdGFza3MgdGhhdCBoYXZlIGJlZW4gaWRlbnRpZmllZCBhcyByZWFjaGFibGVcbiAgICAgICAgLy8gd2l0aG91dCB0aGUgcG9zc2liaWxpdHkgb2YgcmV0dXJuaW5nIHRvIGFuIGFuY2VzdG9yIHRhc2tcbiAgICAgICAgdmFyIHVuY2hlY2tlZERlcGVuZGVuY2llcyA9IHt9O1xuXG4gICAgICAgIE9iamVjdC5rZXlzKHRhc2tzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICB2YXIgdGFzayA9IHRhc2tzW2tleV07XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFzaykpIHtcbiAgICAgICAgICAgICAgICAvLyBubyBkZXBlbmRlbmNpZXNcbiAgICAgICAgICAgICAgICBlbnF1ZXVlVGFzayhrZXksIFt0YXNrXSk7XG4gICAgICAgICAgICAgICAgcmVhZHlUb0NoZWNrLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBkZXBlbmRlbmNpZXMgPSB0YXNrLnNsaWNlKDAsIHRhc2subGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB2YXIgcmVtYWluaW5nRGVwZW5kZW5jaWVzID0gZGVwZW5kZW5jaWVzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChyZW1haW5pbmdEZXBlbmRlbmNpZXMgPT09IDApIHtcbiAgICAgICAgICAgICAgICBlbnF1ZXVlVGFzayhrZXksIHRhc2spO1xuICAgICAgICAgICAgICAgIHJlYWR5VG9DaGVjay5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdW5jaGVja2VkRGVwZW5kZW5jaWVzW2tleV0gPSByZW1haW5pbmdEZXBlbmRlbmNpZXM7XG5cbiAgICAgICAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKGRlcGVuZGVuY3lOYW1lID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRhc2tzW2RlcGVuZGVuY3lOYW1lXSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FzeW5jLmF1dG8gdGFzayBgJyArIGtleSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnYCBoYXMgYSBub24tZXhpc3RlbnQgZGVwZW5kZW5jeSBgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmN5TmFtZSArICdgIGluICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihkZXBlbmRlbmN5TmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdEZXBlbmRlbmNpZXMtLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZ0RlcGVuZGVuY2llcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5xdWV1ZVRhc2soa2V5LCB0YXNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNoZWNrRm9yRGVhZGxvY2tzKCk7XG4gICAgICAgIHByb2Nlc3NRdWV1ZSgpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGVucXVldWVUYXNrKGtleSwgdGFzaykge1xuICAgICAgICAgICAgcmVhZHlUYXNrcy5wdXNoKCgpID0+IHJ1blRhc2soa2V5LCB0YXNrKSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBwcm9jZXNzUXVldWUoKSB7XG4gICAgICAgICAgICBpZiAoY2FuY2VsZWQpIHJldHVyblxuICAgICAgICAgICAgaWYgKHJlYWR5VGFza3MubGVuZ3RoID09PSAwICYmIHJ1bm5pbmdUYXNrcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCByZXN1bHRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlKHJlYWR5VGFza3MubGVuZ3RoICYmIHJ1bm5pbmdUYXNrcyA8IGNvbmN1cnJlbmN5KSB7XG4gICAgICAgICAgICAgICAgdmFyIHJ1biA9IHJlYWR5VGFza3Muc2hpZnQoKTtcbiAgICAgICAgICAgICAgICBydW4oKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYWRkTGlzdGVuZXIodGFza05hbWUsIGZuKSB7XG4gICAgICAgICAgICB2YXIgdGFza0xpc3RlbmVycyA9IGxpc3RlbmVyc1t0YXNrTmFtZV07XG4gICAgICAgICAgICBpZiAoIXRhc2tMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICB0YXNrTGlzdGVuZXJzID0gbGlzdGVuZXJzW3Rhc2tOYW1lXSA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXNrTGlzdGVuZXJzLnB1c2goZm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdGFza0NvbXBsZXRlKHRhc2tOYW1lKSB7XG4gICAgICAgICAgICB2YXIgdGFza0xpc3RlbmVycyA9IGxpc3RlbmVyc1t0YXNrTmFtZV0gfHwgW107XG4gICAgICAgICAgICB0YXNrTGlzdGVuZXJzLmZvckVhY2goZm4gPT4gZm4oKSk7XG4gICAgICAgICAgICBwcm9jZXNzUXVldWUoKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZnVuY3Rpb24gcnVuVGFzayhrZXksIHRhc2spIHtcbiAgICAgICAgICAgIGlmIChoYXNFcnJvcikgcmV0dXJuO1xuXG4gICAgICAgICAgICB2YXIgdGFza0NhbGxiYWNrID0gb25seU9uY2UoKGVyciwgLi4ucmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgcnVubmluZ1Rhc2tzLS07XG4gICAgICAgICAgICAgICAgaWYgKGVyciA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIFtyZXN1bHRdID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzYWZlUmVzdWx0cyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXN1bHRzKS5mb3JFYWNoKHJrZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2FmZVJlc3VsdHNbcmtleV0gPSByZXN1bHRzW3JrZXldO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc2FmZVJlc3VsdHNba2V5XSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FuY2VsZWQpIHJldHVyblxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIsIHNhZmVSZXN1bHRzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzW2tleV0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tDb21wbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBydW5uaW5nVGFza3MrKztcbiAgICAgICAgICAgIHZhciB0YXNrRm4gPSB3cmFwQXN5bmModGFza1t0YXNrLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICAgIGlmICh0YXNrLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0YXNrRm4ocmVzdWx0cywgdGFza0NhbGxiYWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFza0ZuKHRhc2tDYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBjaGVja0ZvckRlYWRsb2NrcygpIHtcbiAgICAgICAgICAgIC8vIEthaG4ncyBhbGdvcml0aG1cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RvcG9sb2dpY2FsX3NvcnRpbmcjS2Fobi4yN3NfYWxnb3JpdGhtXG4gICAgICAgICAgICAvLyBodHRwOi8vY29ubmFsbGUuYmxvZ3Nwb3QuY29tLzIwMTMvMTAvdG9wb2xvZ2ljYWwtc29ydGluZ2thaG4tYWxnb3JpdGhtLmh0bWxcbiAgICAgICAgICAgIHZhciBjdXJyZW50VGFzaztcbiAgICAgICAgICAgIHZhciBjb3VudGVyID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChyZWFkeVRvQ2hlY2subGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhc2sgPSByZWFkeVRvQ2hlY2sucG9wKCk7XG4gICAgICAgICAgICAgICAgY291bnRlcisrO1xuICAgICAgICAgICAgICAgIGdldERlcGVuZGVudHMoY3VycmVudFRhc2spLmZvckVhY2goZGVwZW5kZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC0tdW5jaGVja2VkRGVwZW5kZW5jaWVzW2RlcGVuZGVudF0gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5VG9DaGVjay5wdXNoKGRlcGVuZGVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bVRhc2tzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAnYXN5bmMuYXV0byBjYW5ub3QgZXhlY3V0ZSB0YXNrcyBkdWUgdG8gYSByZWN1cnNpdmUgZGVwZW5kZW5jeSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZ2V0RGVwZW5kZW50cyh0YXNrTmFtZSkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGFza3MpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXNrID0gdGFza3Nba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXNrKSAmJiB0YXNrLmluZGV4T2YodGFza05hbWUpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FsbGJhY2tbUFJPTUlTRV9TWU1CT0xdXG4gICAgfVxuXG4gICAgdmFyIEZOX0FSR1MgPSAvXig/OmFzeW5jXFxzKyk/KD86ZnVuY3Rpb24pP1xccypcXHcqXFxzKlxcKFxccyooW14pXSspXFxzKlxcKSg/Olxccyp7KS87XG4gICAgdmFyIEFSUk9XX0ZOX0FSR1MgPSAvXig/OmFzeW5jXFxzKyk/XFwoP1xccyooW14pPV0rKVxccypcXCk/KD86XFxzKj0+KS87XG4gICAgdmFyIEZOX0FSR19TUExJVCA9IC8sLztcbiAgICB2YXIgRk5fQVJHID0gLyg9LispPyhcXHMqKSQvO1xuXG4gICAgZnVuY3Rpb24gc3RyaXBDb21tZW50cyhzdHJpbmcpIHtcbiAgICAgICAgbGV0IHN0cmlwcGVkID0gJyc7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBlbmRCbG9ja0NvbW1lbnQgPSBzdHJpbmcuaW5kZXhPZignKi8nKTtcbiAgICAgICAgd2hpbGUgKGluZGV4IDwgc3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHN0cmluZ1tpbmRleF0gPT09ICcvJyAmJiBzdHJpbmdbaW5kZXgrMV0gPT09ICcvJykge1xuICAgICAgICAgICAgICAgIC8vIGlubGluZSBjb21tZW50XG4gICAgICAgICAgICAgICAgbGV0IGVuZEluZGV4ID0gc3RyaW5nLmluZGV4T2YoJ1xcbicsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IChlbmRJbmRleCA9PT0gLTEpID8gc3RyaW5nLmxlbmd0aCA6IGVuZEluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoZW5kQmxvY2tDb21tZW50ICE9PSAtMSkgJiYgKHN0cmluZ1tpbmRleF0gPT09ICcvJykgJiYgKHN0cmluZ1tpbmRleCsxXSA9PT0gJyonKSkge1xuICAgICAgICAgICAgICAgIC8vIGJsb2NrIGNvbW1lbnRcbiAgICAgICAgICAgICAgICBsZXQgZW5kSW5kZXggPSBzdHJpbmcuaW5kZXhPZignKi8nLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKGVuZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGVuZEluZGV4ICsgMjtcbiAgICAgICAgICAgICAgICAgICAgZW5kQmxvY2tDb21tZW50ID0gc3RyaW5nLmluZGV4T2YoJyovJywgaW5kZXgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmlwcGVkICs9IHN0cmluZ1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHJpcHBlZCArPSBzdHJpbmdbaW5kZXhdO1xuICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmlwcGVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGFyYW1zKGZ1bmMpIHtcbiAgICAgICAgY29uc3Qgc3JjID0gc3RyaXBDb21tZW50cyhmdW5jLnRvU3RyaW5nKCkpO1xuICAgICAgICBsZXQgbWF0Y2ggPSBzcmMubWF0Y2goRk5fQVJHUyk7XG4gICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgIG1hdGNoID0gc3JjLm1hdGNoKEFSUk9XX0ZOX0FSR1MpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWF0Y2gpIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHBhcnNlIGFyZ3MgaW4gYXV0b0luamVjdFxcblNvdXJjZTpcXG4nICsgc3JjKVxuICAgICAgICBsZXQgWywgYXJnc10gPSBtYXRjaDtcbiAgICAgICAgcmV0dXJuIGFyZ3NcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHMvZywgJycpXG4gICAgICAgICAgICAuc3BsaXQoRk5fQVJHX1NQTElUKVxuICAgICAgICAgICAgLm1hcCgoYXJnKSA9PiBhcmcucmVwbGFjZShGTl9BUkcsICcnKS50cmltKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgZGVwZW5kZW5jeS1pbmplY3RlZCB2ZXJzaW9uIG9mIHRoZSBbYXN5bmMuYXV0b117QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LmF1dG99IGZ1bmN0aW9uLiBEZXBlbmRlbnRcbiAgICAgKiB0YXNrcyBhcmUgc3BlY2lmaWVkIGFzIHBhcmFtZXRlcnMgdG8gdGhlIGZ1bmN0aW9uLCBhZnRlciB0aGUgdXN1YWwgY2FsbGJhY2tcbiAgICAgKiBwYXJhbWV0ZXIsIHdpdGggdGhlIHBhcmFtZXRlciBuYW1lcyBtYXRjaGluZyB0aGUgbmFtZXMgb2YgdGhlIHRhc2tzIGl0XG4gICAgICogZGVwZW5kcyBvbi4gVGhpcyBjYW4gcHJvdmlkZSBldmVuIG1vcmUgcmVhZGFibGUgdGFzayBncmFwaHMgd2hpY2ggY2FuIGJlXG4gICAgICogZWFzaWVyIHRvIG1haW50YWluLlxuICAgICAqXG4gICAgICogSWYgYSBmaW5hbCBjYWxsYmFjayBpcyBzcGVjaWZpZWQsIHRoZSB0YXNrIHJlc3VsdHMgYXJlIHNpbWlsYXJseSBpbmplY3RlZCxcbiAgICAgKiBzcGVjaWZpZWQgYXMgbmFtZWQgcGFyYW1ldGVycyBhZnRlciB0aGUgaW5pdGlhbCBlcnJvciBwYXJhbWV0ZXIuXG4gICAgICpcbiAgICAgKiBUaGUgYXV0b0luamVjdCBmdW5jdGlvbiBpcyBwdXJlbHkgc3ludGFjdGljIHN1Z2FyIGFuZCBpdHMgc2VtYW50aWNzIGFyZVxuICAgICAqIG90aGVyd2lzZSBlcXVpdmFsZW50IHRvIFthc3luYy5hdXRvXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cuYXV0b30uXG4gICAgICpcbiAgICAgKiBAbmFtZSBhdXRvSW5qZWN0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuYXV0b117QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LmF1dG99XG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSB0YXNrcyAtIEFuIG9iamVjdCwgZWFjaCBvZiB3aG9zZSBwcm9wZXJ0aWVzIGlzIGFuIHtAbGluayBBc3luY0Z1bmN0aW9ufSBvZlxuICAgICAqIHRoZSBmb3JtICdmdW5jKFtkZXBlbmRlbmNpZXMuLi5dLCBjYWxsYmFjaykuIFRoZSBvYmplY3QncyBrZXkgb2YgYSBwcm9wZXJ0eVxuICAgICAqIHNlcnZlcyBhcyB0aGUgbmFtZSBvZiB0aGUgdGFzayBkZWZpbmVkIGJ5IHRoYXQgcHJvcGVydHksIGkuZS4gY2FuIGJlIHVzZWRcbiAgICAgKiB3aGVuIHNwZWNpZnlpbmcgcmVxdWlyZW1lbnRzIGZvciBvdGhlciB0YXNrcy5cbiAgICAgKiAqIFRoZSBgY2FsbGJhY2tgIHBhcmFtZXRlciBpcyBhIGBjYWxsYmFjayhlcnIsIHJlc3VsdClgIHdoaWNoIG11c3QgYmUgY2FsbGVkXG4gICAgICogICB3aGVuIGZpbmlzaGVkLCBwYXNzaW5nIGFuIGBlcnJvcmAgKHdoaWNoIGNhbiBiZSBgbnVsbGApIGFuZCB0aGUgcmVzdWx0IG9mXG4gICAgICogICB0aGUgZnVuY3Rpb24ncyBleGVjdXRpb24uIFRoZSByZW1haW5pbmcgcGFyYW1ldGVycyBuYW1lIG90aGVyIHRhc2tzIG9uXG4gICAgICogICB3aGljaCB0aGUgdGFzayBpcyBkZXBlbmRlbnQsIGFuZCB0aGUgcmVzdWx0cyBmcm9tIHRob3NlIHRhc2tzIGFyZSB0aGVcbiAgICAgKiAgIGFyZ3VtZW50cyBvZiB0aG9zZSBwYXJhbWV0ZXJzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGxcbiAgICAgKiB0aGUgdGFza3MgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gSXQgcmVjZWl2ZXMgdGhlIGBlcnJgIGFyZ3VtZW50IGlmIGFueSBgdGFza3NgXG4gICAgICogcGFzcyBhbiBlcnJvciB0byB0aGVpciBjYWxsYmFjaywgYW5kIGEgYHJlc3VsdHNgIG9iamVjdCB3aXRoIGFueSBjb21wbGV0ZWRcbiAgICAgKiB0YXNrIHJlc3VsdHMsIHNpbWlsYXIgdG8gYGF1dG9gLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyAgVGhlIGV4YW1wbGUgZnJvbSBgYXV0b2AgY2FuIGJlIHJld3JpdHRlbiBhcyBmb2xsb3dzOlxuICAgICAqIGFzeW5jLmF1dG9JbmplY3Qoe1xuICAgICAqICAgICBnZXRfZGF0YTogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIC8vIGFzeW5jIGNvZGUgdG8gZ2V0IHNvbWUgZGF0YVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ2RhdGEnLCAnY29udmVydGVkIHRvIGFycmF5Jyk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIG1ha2VfZm9sZGVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gYXN5bmMgY29kZSB0byBjcmVhdGUgYSBkaXJlY3RvcnkgdG8gc3RvcmUgYSBmaWxlIGluXG4gICAgICogICAgICAgICAvLyB0aGlzIGlzIHJ1biBhdCB0aGUgc2FtZSB0aW1lIGFzIGdldHRpbmcgdGhlIGRhdGFcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdmb2xkZXInKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgd3JpdGVfZmlsZTogZnVuY3Rpb24oZ2V0X2RhdGEsIG1ha2VfZm9sZGVyLCBjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gb25jZSB0aGVyZSBpcyBzb21lIGRhdGEgYW5kIHRoZSBkaXJlY3RvcnkgZXhpc3RzLFxuICAgICAqICAgICAgICAgLy8gd3JpdGUgdGhlIGRhdGEgdG8gYSBmaWxlIGluIHRoZSBkaXJlY3RvcnlcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdmaWxlbmFtZScpO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICBlbWFpbF9saW5rOiBmdW5jdGlvbih3cml0ZV9maWxlLCBjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gb25jZSB0aGUgZmlsZSBpcyB3cml0dGVuIGxldCdzIGVtYWlsIGEgbGluayB0byBpdC4uLlxuICAgICAqICAgICAgICAgLy8gd3JpdGVfZmlsZSBjb250YWlucyB0aGUgZmlsZW5hbWUgcmV0dXJuZWQgYnkgd3JpdGVfZmlsZS5cbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIHsnZmlsZSc6d3JpdGVfZmlsZSwgJ2VtYWlsJzondXNlckBleGFtcGxlLmNvbSd9KTtcbiAgICAgKiAgICAgfVxuICAgICAqIH0sIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnZXJyID0gJywgZXJyKTtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2VtYWlsX2xpbmsgPSAnLCByZXN1bHRzLmVtYWlsX2xpbmspO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gSWYgeW91IGFyZSB1c2luZyBhIEpTIG1pbmlmaWVyIHRoYXQgbWFuZ2xlcyBwYXJhbWV0ZXIgbmFtZXMsIGBhdXRvSW5qZWN0YFxuICAgICAqIC8vIHdpbGwgbm90IHdvcmsgd2l0aCBwbGFpbiBmdW5jdGlvbnMsIHNpbmNlIHRoZSBwYXJhbWV0ZXIgbmFtZXMgd2lsbCBiZVxuICAgICAqIC8vIGNvbGxhcHNlZCB0byBhIHNpbmdsZSBsZXR0ZXIgaWRlbnRpZmllci4gIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHlvdSBjYW5cbiAgICAgKiAvLyBleHBsaWNpdGx5IHNwZWNpZnkgdGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJzIHlvdXIgdGFzayBmdW5jdGlvbiBuZWVkc1xuICAgICAqIC8vIGluIGFuIGFycmF5LCBzaW1pbGFyIHRvIEFuZ3VsYXIuanMgZGVwZW5kZW5jeSBpbmplY3Rpb24uXG4gICAgICpcbiAgICAgKiAvLyBUaGlzIHN0aWxsIGhhcyBhbiBhZHZhbnRhZ2Ugb3ZlciBwbGFpbiBgYXV0b2AsIHNpbmNlIHRoZSByZXN1bHRzIGEgdGFza1xuICAgICAqIC8vIGRlcGVuZHMgb24gYXJlIHN0aWxsIHNwcmVhZCBpbnRvIGFyZ3VtZW50cy5cbiAgICAgKiBhc3luYy5hdXRvSW5qZWN0KHtcbiAgICAgKiAgICAgLy8uLi5cbiAgICAgKiAgICAgd3JpdGVfZmlsZTogWydnZXRfZGF0YScsICdtYWtlX2ZvbGRlcicsIGZ1bmN0aW9uKGdldF9kYXRhLCBtYWtlX2ZvbGRlciwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdmaWxlbmFtZScpO1xuICAgICAqICAgICB9XSxcbiAgICAgKiAgICAgZW1haWxfbGluazogWyd3cml0ZV9maWxlJywgZnVuY3Rpb24od3JpdGVfZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIHsnZmlsZSc6d3JpdGVfZmlsZSwgJ2VtYWlsJzondXNlckBleGFtcGxlLmNvbSd9KTtcbiAgICAgKiAgICAgfV1cbiAgICAgKiAgICAgLy8uLi5cbiAgICAgKiB9LCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2VyciA9ICcsIGVycik7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdlbWFpbF9saW5rID0gJywgcmVzdWx0cy5lbWFpbF9saW5rKTtcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhdXRvSW5qZWN0KHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgbmV3VGFza3MgPSB7fTtcblxuICAgICAgICBPYmplY3Qua2V5cyh0YXNrcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgdmFyIHRhc2tGbiA9IHRhc2tzW2tleV07XG4gICAgICAgICAgICB2YXIgcGFyYW1zO1xuICAgICAgICAgICAgdmFyIGZuSXNBc3luYyA9IGlzQXN5bmModGFza0ZuKTtcbiAgICAgICAgICAgIHZhciBoYXNOb0RlcHMgPVxuICAgICAgICAgICAgICAgICghZm5Jc0FzeW5jICYmIHRhc2tGbi5sZW5ndGggPT09IDEpIHx8XG4gICAgICAgICAgICAgICAgKGZuSXNBc3luYyAmJiB0YXNrRm4ubGVuZ3RoID09PSAwKTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFza0ZuKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IFsuLi50YXNrRm5dO1xuICAgICAgICAgICAgICAgIHRhc2tGbiA9IHBhcmFtcy5wb3AoKTtcblxuICAgICAgICAgICAgICAgIG5ld1Rhc2tzW2tleV0gPSBwYXJhbXMuY29uY2F0KHBhcmFtcy5sZW5ndGggPiAwID8gbmV3VGFzayA6IHRhc2tGbik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhhc05vRGVwcykge1xuICAgICAgICAgICAgICAgIC8vIG5vIGRlcGVuZGVuY2llcywgdXNlIHRoZSBmdW5jdGlvbiBhcy1pc1xuICAgICAgICAgICAgICAgIG5ld1Rhc2tzW2tleV0gPSB0YXNrRm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKHRhc2tGbik7XG4gICAgICAgICAgICAgICAgaWYgKCh0YXNrRm4ubGVuZ3RoID09PSAwICYmICFmbklzQXN5bmMpICYmIHBhcmFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXV0b0luamVjdCB0YXNrIGZ1bmN0aW9ucyByZXF1aXJlIGV4cGxpY2l0IHBhcmFtZXRlcnMuXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBjYWxsYmFjayBwYXJhbVxuICAgICAgICAgICAgICAgIGlmICghZm5Jc0FzeW5jKSBwYXJhbXMucG9wKCk7XG5cbiAgICAgICAgICAgICAgICBuZXdUYXNrc1trZXldID0gcGFyYW1zLmNvbmNhdChuZXdUYXNrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnVuY3Rpb24gbmV3VGFzayhyZXN1bHRzLCB0YXNrQ2IpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3QXJncyA9IHBhcmFtcy5tYXAobmFtZSA9PiByZXN1bHRzW25hbWVdKTtcbiAgICAgICAgICAgICAgICBuZXdBcmdzLnB1c2godGFza0NiKTtcbiAgICAgICAgICAgICAgICB3cmFwQXN5bmModGFza0ZuKSguLi5uZXdBcmdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGF1dG8obmV3VGFza3MsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGUgZG91Ymx5IGxpbmtlZCBsaXN0IChodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Eb3VibHlfbGlua2VkX2xpc3QpIGltcGxlbWVudGF0aW9uXG4gICAgLy8gdXNlZCBmb3IgcXVldWVzLiBUaGlzIGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCB0aGUgbm9kZSBwcm92aWRlZCBieSB0aGUgdXNlciBjYW4gYmUgbW9kaWZpZWRcbiAgICAvLyB0byBhZGp1c3QgdGhlIG5leHQgYW5kIGxhc3QgcHJvcGVydGllcy4gV2UgaW1wbGVtZW50IG9ubHkgdGhlIG1pbmltYWwgZnVuY3Rpb25hbGl0eVxuICAgIC8vIGZvciBxdWV1ZSBzdXBwb3J0LlxuICAgIGNsYXNzIERMTCB7XG4gICAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbW92ZUxpbmsobm9kZSkge1xuICAgICAgICAgICAgaWYgKG5vZGUucHJldikgbm9kZS5wcmV2Lm5leHQgPSBub2RlLm5leHQ7XG4gICAgICAgICAgICBlbHNlIHRoaXMuaGVhZCA9IG5vZGUubmV4dDtcbiAgICAgICAgICAgIGlmIChub2RlLm5leHQpIG5vZGUubmV4dC5wcmV2ID0gbm9kZS5wcmV2O1xuICAgICAgICAgICAgZWxzZSB0aGlzLnRhaWwgPSBub2RlLnByZXY7XG5cbiAgICAgICAgICAgIG5vZGUucHJldiA9IG5vZGUubmV4dCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCAtPSAxO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBlbXB0eSAoKSB7XG4gICAgICAgICAgICB3aGlsZSh0aGlzLmhlYWQpIHRoaXMuc2hpZnQoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0QWZ0ZXIobm9kZSwgbmV3Tm9kZSkge1xuICAgICAgICAgICAgbmV3Tm9kZS5wcmV2ID0gbm9kZTtcbiAgICAgICAgICAgIG5ld05vZGUubmV4dCA9IG5vZGUubmV4dDtcbiAgICAgICAgICAgIGlmIChub2RlLm5leHQpIG5vZGUubmV4dC5wcmV2ID0gbmV3Tm9kZTtcbiAgICAgICAgICAgIGVsc2UgdGhpcy50YWlsID0gbmV3Tm9kZTtcbiAgICAgICAgICAgIG5vZGUubmV4dCA9IG5ld05vZGU7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCArPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0QmVmb3JlKG5vZGUsIG5ld05vZGUpIHtcbiAgICAgICAgICAgIG5ld05vZGUucHJldiA9IG5vZGUucHJldjtcbiAgICAgICAgICAgIG5ld05vZGUubmV4dCA9IG5vZGU7XG4gICAgICAgICAgICBpZiAobm9kZS5wcmV2KSBub2RlLnByZXYubmV4dCA9IG5ld05vZGU7XG4gICAgICAgICAgICBlbHNlIHRoaXMuaGVhZCA9IG5ld05vZGU7XG4gICAgICAgICAgICBub2RlLnByZXYgPSBuZXdOb2RlO1xuICAgICAgICAgICAgdGhpcy5sZW5ndGggKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVuc2hpZnQobm9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGVhZCkgdGhpcy5pbnNlcnRCZWZvcmUodGhpcy5oZWFkLCBub2RlKTtcbiAgICAgICAgICAgIGVsc2Ugc2V0SW5pdGlhbCh0aGlzLCBub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1c2gobm9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFpbCkgdGhpcy5pbnNlcnRBZnRlcih0aGlzLnRhaWwsIG5vZGUpO1xuICAgICAgICAgICAgZWxzZSBzZXRJbml0aWFsKHRoaXMsIG5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2hpZnQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oZWFkICYmIHRoaXMucmVtb3ZlTGluayh0aGlzLmhlYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9wKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGFpbCAmJiB0aGlzLnJlbW92ZUxpbmsodGhpcy50YWlsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvQXJyYXkoKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnRoaXNdXG4gICAgICAgIH1cblxuICAgICAgICAqW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgICAgICAgICAgdmFyIGN1ciA9IHRoaXMuaGVhZDtcbiAgICAgICAgICAgIHdoaWxlIChjdXIpIHtcbiAgICAgICAgICAgICAgICB5aWVsZCBjdXIuZGF0YTtcbiAgICAgICAgICAgICAgICBjdXIgPSBjdXIubmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJlbW92ZSAodGVzdEZuKSB7XG4gICAgICAgICAgICB2YXIgY3VyciA9IHRoaXMuaGVhZDtcbiAgICAgICAgICAgIHdoaWxlKGN1cnIpIHtcbiAgICAgICAgICAgICAgICB2YXIge25leHR9ID0gY3VycjtcbiAgICAgICAgICAgICAgICBpZiAodGVzdEZuKGN1cnIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlTGluayhjdXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VyciA9IG5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldEluaXRpYWwoZGxsLCBub2RlKSB7XG4gICAgICAgIGRsbC5sZW5ndGggPSAxO1xuICAgICAgICBkbGwuaGVhZCA9IGRsbC50YWlsID0gbm9kZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBxdWV1ZSh3b3JrZXIsIGNvbmN1cnJlbmN5LCBwYXlsb2FkKSB7XG4gICAgICAgIGlmIChjb25jdXJyZW5jeSA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25jdXJyZW5jeSA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihjb25jdXJyZW5jeSA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0NvbmN1cnJlbmN5IG11c3Qgbm90IGJlIHplcm8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfd29ya2VyID0gd3JhcEFzeW5jKHdvcmtlcik7XG4gICAgICAgIHZhciBudW1SdW5uaW5nID0gMDtcbiAgICAgICAgdmFyIHdvcmtlcnNMaXN0ID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHtcbiAgICAgICAgICAgIGVycm9yOiBbXSxcbiAgICAgICAgICAgIGRyYWluOiBbXSxcbiAgICAgICAgICAgIHNhdHVyYXRlZDogW10sXG4gICAgICAgICAgICB1bnNhdHVyYXRlZDogW10sXG4gICAgICAgICAgICBlbXB0eTogW11cbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBvbiAoZXZlbnQsIGhhbmRsZXIpIHtcbiAgICAgICAgICAgIGV2ZW50c1tldmVudF0ucHVzaChoYW5kbGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIG9uY2UgKGV2ZW50LCBoYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVBbmRSZW1vdmUgPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIG9mZihldmVudCwgaGFuZGxlQW5kUmVtb3ZlKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVyKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGV2ZW50c1tldmVudF0ucHVzaChoYW5kbGVBbmRSZW1vdmUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gb2ZmIChldmVudCwgaGFuZGxlcikge1xuICAgICAgICAgICAgaWYgKCFldmVudCkgcmV0dXJuIE9iamVjdC5rZXlzKGV2ZW50cykuZm9yRWFjaChldiA9PiBldmVudHNbZXZdID0gW10pXG4gICAgICAgICAgICBpZiAoIWhhbmRsZXIpIHJldHVybiBldmVudHNbZXZlbnRdID0gW11cbiAgICAgICAgICAgIGV2ZW50c1tldmVudF0gPSBldmVudHNbZXZlbnRdLmZpbHRlcihldiA9PiBldiAhPT0gaGFuZGxlcik7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiB0cmlnZ2VyIChldmVudCwgLi4uYXJncykge1xuICAgICAgICAgICAgZXZlbnRzW2V2ZW50XS5mb3JFYWNoKGhhbmRsZXIgPT4gaGFuZGxlciguLi5hcmdzKSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcHJvY2Vzc2luZ1NjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICBmdW5jdGlvbiBfaW5zZXJ0KGRhdGEsIGluc2VydEF0RnJvbnQsIHJlamVjdE9uRXJyb3IsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2sgIT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rhc2sgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBxLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB2YXIgcmVzLCByZWo7XG4gICAgICAgICAgICBmdW5jdGlvbiBwcm9taXNlQ2FsbGJhY2sgKGVyciwgLi4uYXJncykge1xuICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIGVycm9yLCBsZXQgdGhlIGdsb2JhbCBlcnJvciBoYW5kbGVyXG4gICAgICAgICAgICAgICAgLy8gZGVhbCB3aXRoIGl0XG4gICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIHJlamVjdE9uRXJyb3IgPyByZWooZXJyKSA6IHJlcygpXG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoIDw9IDEpIHJldHVybiByZXMoYXJnc1swXSlcbiAgICAgICAgICAgICAgICByZXMoYXJncyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBpdGVtID0gcS5fY3JlYXRlVGFza0l0ZW0oXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWplY3RPbkVycm9yID8gcHJvbWlzZUNhbGxiYWNrIDpcbiAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIHx8IHByb21pc2VDYWxsYmFjaylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChpbnNlcnRBdEZyb250KSB7XG4gICAgICAgICAgICAgICAgcS5fdGFza3MudW5zaGlmdChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcS5fdGFza3MucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwcm9jZXNzaW5nU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2luZ1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0SW1tZWRpYXRlJDEoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHEucHJvY2VzcygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVqZWN0T25FcnJvciB8fCAhY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXMgPSByZXNvbHZlO1xuICAgICAgICAgICAgICAgICAgICByZWogPSByZWplY3Q7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIF9jcmVhdGVDQih0YXNrcykge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlcnIsIC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICBudW1SdW5uaW5nIC09IDE7XG5cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHRhc2tzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFzayA9IHRhc2tzW2ldO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHdvcmtlcnNMaXN0LmluZGV4T2YodGFzayk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd29ya2Vyc0xpc3Quc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0YXNrLmNhbGxiYWNrKGVyciwgLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKCdlcnJvcicsIGVyciwgdGFzay5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChudW1SdW5uaW5nIDw9IChxLmNvbmN1cnJlbmN5IC0gcS5idWZmZXIpICkge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKCd1bnNhdHVyYXRlZCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChxLmlkbGUoKSkge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKCdkcmFpbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBxLnByb2Nlc3MoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBfbWF5YmVEcmFpbihkYXRhKSB7XG4gICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDAgJiYgcS5pZGxlKCkpIHtcbiAgICAgICAgICAgICAgICAvLyBjYWxsIGRyYWluIGltbWVkaWF0ZWx5IGlmIHRoZXJlIGFyZSBubyB0YXNrc1xuICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZSQxKCgpID0+IHRyaWdnZXIoJ2RyYWluJykpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV2ZW50TWV0aG9kID0gKG5hbWUpID0+IChoYW5kbGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvbmNlKG5hbWUsIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiByZWplY3QoZXJyKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9mZihuYW1lKTtcbiAgICAgICAgICAgIG9uKG5hbWUsIGhhbmRsZXIpO1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICB2YXIgcSA9IHtcbiAgICAgICAgICAgIF90YXNrczogbmV3IERMTCgpLFxuICAgICAgICAgICAgX2NyZWF0ZVRhc2tJdGVtIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAqW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgICAgICAgICAgICAgIHlpZWxkKiBxLl90YXNrc1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uY3VycmVuY3ksXG4gICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgYnVmZmVyOiBjb25jdXJyZW5jeSAvIDQsXG4gICAgICAgICAgICBzdGFydGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdXNlZDogZmFsc2UsXG4gICAgICAgICAgICBwdXNoIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfbWF5YmVEcmFpbihkYXRhKSkgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChkYXR1bSA9PiBfaW5zZXJ0KGRhdHVtLCBmYWxzZSwgZmFsc2UsIGNhbGxiYWNrKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9pbnNlcnQoZGF0YSwgZmFsc2UsIGZhbHNlLCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHVzaEFzeW5jIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfbWF5YmVEcmFpbihkYXRhKSkgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm1hcChkYXR1bSA9PiBfaW5zZXJ0KGRhdHVtLCBmYWxzZSwgdHJ1ZSwgY2FsbGJhY2spKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2luc2VydChkYXRhLCBmYWxzZSwgdHJ1ZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtpbGwgKCkge1xuICAgICAgICAgICAgICAgIG9mZigpO1xuICAgICAgICAgICAgICAgIHEuX3Rhc2tzLmVtcHR5KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zaGlmdCAoZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoX21heWJlRHJhaW4oZGF0YSkpIHJldHVyblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5tYXAoZGF0dW0gPT4gX2luc2VydChkYXR1bSwgdHJ1ZSwgZmFsc2UsIGNhbGxiYWNrKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9pbnNlcnQoZGF0YSwgdHJ1ZSwgZmFsc2UsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bnNoaWZ0QXN5bmMgKGRhdGEsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9tYXliZURyYWluKGRhdGEpKSByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubWFwKGRhdHVtID0+IF9pbnNlcnQoZGF0dW0sIHRydWUsIHRydWUsIGNhbGxiYWNrKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9pbnNlcnQoZGF0YSwgdHJ1ZSwgdHJ1ZSwgY2FsbGJhY2spO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlbW92ZSAodGVzdEZuKSB7XG4gICAgICAgICAgICAgICAgcS5fdGFza3MucmVtb3ZlKHRlc3RGbik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvY2VzcyAoKSB7XG4gICAgICAgICAgICAgICAgLy8gQXZvaWQgdHJ5aW5nIHRvIHN0YXJ0IHRvbyBtYW55IHByb2Nlc3Npbmcgb3BlcmF0aW9ucy4gVGhpcyBjYW4gb2NjdXJcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGNhbGxiYWNrcyByZXNvbHZlIHN5bmNocm9ub3VzbHkgKCMxMjY3KS5cbiAgICAgICAgICAgICAgICBpZiAoaXNQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB3aGlsZSghcS5wYXVzZWQgJiYgbnVtUnVubmluZyA8IHEuY29uY3VycmVuY3kgJiYgcS5fdGFza3MubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhc2tzID0gW10sIGRhdGEgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGwgPSBxLl90YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxLnBheWxvYWQpIGwgPSBNYXRoLm1pbihsLCBxLnBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBxLl90YXNrcy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFza3MucHVzaChub2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcnNMaXN0LnB1c2gobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnB1c2gobm9kZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG51bVJ1bm5pbmcgKz0gMTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocS5fdGFza3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKCdlbXB0eScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVJ1bm5pbmcgPT09IHEuY29uY3VycmVuY3kpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoJ3NhdHVyYXRlZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiID0gb25seU9uY2UoX2NyZWF0ZUNCKHRhc2tzKSk7XG4gICAgICAgICAgICAgICAgICAgIF93b3JrZXIoZGF0YSwgY2IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZW5ndGggKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBxLl90YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcnVubmluZyAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bVJ1bm5pbmc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd29ya2Vyc0xpc3QgKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3b3JrZXJzTGlzdDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpZGxlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBxLl90YXNrcy5sZW5ndGggKyBudW1SdW5uaW5nID09PSAwO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhdXNlICgpIHtcbiAgICAgICAgICAgICAgICBxLnBhdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdW1lICgpIHtcbiAgICAgICAgICAgICAgICBpZiAocS5wYXVzZWQgPT09IGZhbHNlKSB7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgIHEucGF1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc2V0SW1tZWRpYXRlJDEocS5wcm9jZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgLy8gZGVmaW5lIHRoZXNlIGFzIGZpeGVkIHByb3BlcnRpZXMsIHNvIHBlb3BsZSBnZXQgdXNlZnVsIGVycm9ycyB3aGVuIHVwZGF0aW5nXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHEsIHtcbiAgICAgICAgICAgIHNhdHVyYXRlZDoge1xuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZXZlbnRNZXRob2QoJ3NhdHVyYXRlZCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zYXR1cmF0ZWQ6IHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGV2ZW50TWV0aG9kKCd1bnNhdHVyYXRlZCcpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW1wdHk6IHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGV2ZW50TWV0aG9kKCdlbXB0eScpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZHJhaW46IHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGV2ZW50TWV0aG9kKCdkcmFpbicpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGV2ZW50TWV0aG9kKCdlcnJvcicpXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIGBjYXJnb2Agb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBwYXlsb2FkLiBUYXNrcyBhZGRlZCB0byB0aGVcbiAgICAgKiBjYXJnbyB3aWxsIGJlIHByb2Nlc3NlZCBhbHRvZ2V0aGVyICh1cCB0byB0aGUgYHBheWxvYWRgIGxpbWl0KS4gSWYgdGhlXG4gICAgICogYHdvcmtlcmAgaXMgaW4gcHJvZ3Jlc3MsIHRoZSB0YXNrIGlzIHF1ZXVlZCB1bnRpbCBpdCBiZWNvbWVzIGF2YWlsYWJsZS4gT25jZVxuICAgICAqIHRoZSBgd29ya2VyYCBoYXMgY29tcGxldGVkIHNvbWUgdGFza3MsIGVhY2ggY2FsbGJhY2sgb2YgdGhvc2UgdGFza3MgaXNcbiAgICAgKiBjYWxsZWQuIENoZWNrIG91dCBbdGhlc2VdKGh0dHBzOi8vY2Ftby5naXRodWJ1c2VyY29udGVudC5jb20vNmJiZDM2ZjRjZjViMzVhMGYxMWE5NmRjZDJlOTc3MTFmZmMyZmIzNy82ODc0NzQ3MDczM2EyZjJmNjYyZTYzNmM2Zjc1NjQyZTY3Njk3NDY4NzU2MjJlNjM2ZjZkMmY2MTczNzM2NTc0NzMyZjMxMzYzNzM2MzgzNzMxMmYzNjM4MzEzMDM4MmY2MjYyNjMzMDYzNjY2MjMwMmQzNTY2MzIzOTJkMzEzMTY1MzIyZDM5MzczNDY2MmQzMzMzMzkzNzYzMzYzNDY0NjMzODM1MzgyZTY3Njk2NikgW2FuaW1hdGlvbnNdKGh0dHBzOi8vY2Ftby5naXRodWJ1c2VyY29udGVudC5jb20vZjQ4MTBlMDBlMWM1ZjVmOGFkZGJlM2U5ZjQ5MDY0ZmQ1ZDEwMjY5OS82ODc0NzQ3MDczM2EyZjJmNjYyZTYzNmM2Zjc1NjQyZTY3Njk3NDY4NzU2MjJlNjM2ZjZkMmY2MTczNzM2NTc0NzMyZjMxMzYzNzM2MzgzNzMxMmYzNjM4MzEzMDMxMmYzODM0NjMzOTMyMzAzNjM2MmQzNTY2MzIzOTJkMzEzMTY1MzIyZDM4MzEzNDY2MmQzOTY0MzM2NDMwMzIzNDMxMzM2MjY2NjQyZTY3Njk2NilcbiAgICAgKiBmb3IgaG93IGBjYXJnb2AgYW5kIGBxdWV1ZWAgd29yay5cbiAgICAgKlxuICAgICAqIFdoaWxlIFtgcXVldWVgXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cucXVldWV9IHBhc3NlcyBvbmx5IG9uZSB0YXNrIHRvIG9uZSBvZiBhIGdyb3VwIG9mIHdvcmtlcnNcbiAgICAgKiBhdCBhIHRpbWUsIGNhcmdvIHBhc3NlcyBhbiBhcnJheSBvZiB0YXNrcyB0byBhIHNpbmdsZSB3b3JrZXIsIHJlcGVhdGluZ1xuICAgICAqIHdoZW4gdGhlIHdvcmtlciBpcyBmaW5pc2hlZC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNhcmdvXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMucXVldWVde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5xdWV1ZX1cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSB3b3JrZXIgLSBBbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gZm9yIHByb2Nlc3NpbmcgYW4gYXJyYXlcbiAgICAgKiBvZiBxdWV1ZWQgdGFza3MuIEludm9rZWQgd2l0aCBgKHRhc2tzLCBjYWxsYmFjaylgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcGF5bG9hZD1JbmZpbml0eV0gLSBBbiBvcHRpb25hbCBgaW50ZWdlcmAgZm9yIGRldGVybWluaW5nXG4gICAgICogaG93IG1hbnkgdGFza3Mgc2hvdWxkIGJlIHByb2Nlc3NlZCBwZXIgcm91bmQ7IGlmIG9taXR0ZWQsIHRoZSBkZWZhdWx0IGlzXG4gICAgICogdW5saW1pdGVkLlxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6Q29udHJvbEZsb3cuUXVldWVPYmplY3R9IEEgY2FyZ28gb2JqZWN0IHRvIG1hbmFnZSB0aGUgdGFza3MuIENhbGxiYWNrcyBjYW5cbiAgICAgKiBhdHRhY2hlZCBhcyBjZXJ0YWluIHByb3BlcnRpZXMgdG8gbGlzdGVuIGZvciBzcGVjaWZpYyBldmVudHMgZHVyaW5nIHRoZVxuICAgICAqIGxpZmVjeWNsZSBvZiB0aGUgY2FyZ28gYW5kIGlubmVyIHF1ZXVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBjcmVhdGUgYSBjYXJnbyBvYmplY3Qgd2l0aCBwYXlsb2FkIDJcbiAgICAgKiB2YXIgY2FyZ28gPSBhc3luYy5jYXJnbyhmdW5jdGlvbih0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZm9yICh2YXIgaT0wOyBpPHRhc2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZygnaGVsbG8gJyArIHRhc2tzW2ldLm5hbWUpO1xuICAgICAqICAgICB9XG4gICAgICogICAgIGNhbGxiYWNrKCk7XG4gICAgICogfSwgMik7XG4gICAgICpcbiAgICAgKiAvLyBhZGQgc29tZSBpdGVtc1xuICAgICAqIGNhcmdvLnB1c2goe25hbWU6ICdmb28nfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdmaW5pc2hlZCBwcm9jZXNzaW5nIGZvbycpO1xuICAgICAqIH0pO1xuICAgICAqIGNhcmdvLnB1c2goe25hbWU6ICdiYXInfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdmaW5pc2hlZCBwcm9jZXNzaW5nIGJhcicpO1xuICAgICAqIH0pO1xuICAgICAqIGF3YWl0IGNhcmdvLnB1c2goe25hbWU6ICdiYXonfSk7XG4gICAgICogY29uc29sZS5sb2coJ2ZpbmlzaGVkIHByb2Nlc3NpbmcgYmF6Jyk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FyZ28od29ya2VyLCBwYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiBxdWV1ZSh3b3JrZXIsIDEsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgY2FyZ29RdWV1ZWAgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBwYXlsb2FkLiBUYXNrcyBhZGRlZCB0byB0aGVcbiAgICAgKiBjYXJnb1F1ZXVlIHdpbGwgYmUgcHJvY2Vzc2VkIHRvZ2V0aGVyICh1cCB0byB0aGUgYHBheWxvYWRgIGxpbWl0KSBpbiBgY29uY3VycmVuY3lgIHBhcmFsbGVsIHdvcmtlcnMuXG4gICAgICogSWYgdGhlIGFsbCBgd29ya2Vyc2AgYXJlIGluIHByb2dyZXNzLCB0aGUgdGFzayBpcyBxdWV1ZWQgdW50aWwgb25lIGJlY29tZXMgYXZhaWxhYmxlLiBPbmNlXG4gICAgICogYSBgd29ya2VyYCBoYXMgY29tcGxldGVkIHNvbWUgdGFza3MsIGVhY2ggY2FsbGJhY2sgb2YgdGhvc2UgdGFza3MgaXNcbiAgICAgKiBjYWxsZWQuIENoZWNrIG91dCBbdGhlc2VdKGh0dHBzOi8vY2Ftby5naXRodWJ1c2VyY29udGVudC5jb20vNmJiZDM2ZjRjZjViMzVhMGYxMWE5NmRjZDJlOTc3MTFmZmMyZmIzNy82ODc0NzQ3MDczM2EyZjJmNjYyZTYzNmM2Zjc1NjQyZTY3Njk3NDY4NzU2MjJlNjM2ZjZkMmY2MTczNzM2NTc0NzMyZjMxMzYzNzM2MzgzNzMxMmYzNjM4MzEzMDM4MmY2MjYyNjMzMDYzNjY2MjMwMmQzNTY2MzIzOTJkMzEzMTY1MzIyZDM5MzczNDY2MmQzMzMzMzkzNzYzMzYzNDY0NjMzODM1MzgyZTY3Njk2NikgW2FuaW1hdGlvbnNdKGh0dHBzOi8vY2Ftby5naXRodWJ1c2VyY29udGVudC5jb20vZjQ4MTBlMDBlMWM1ZjVmOGFkZGJlM2U5ZjQ5MDY0ZmQ1ZDEwMjY5OS82ODc0NzQ3MDczM2EyZjJmNjYyZTYzNmM2Zjc1NjQyZTY3Njk3NDY4NzU2MjJlNjM2ZjZkMmY2MTczNzM2NTc0NzMyZjMxMzYzNzM2MzgzNzMxMmYzNjM4MzEzMDMxMmYzODM0NjMzOTMyMzAzNjM2MmQzNTY2MzIzOTJkMzEzMTY1MzIyZDM4MzEzNDY2MmQzOTY0MzM2NDMwMzIzNDMxMzM2MjY2NjQyZTY3Njk2NilcbiAgICAgKiBmb3IgaG93IGBjYXJnb2AgYW5kIGBxdWV1ZWAgd29yay5cbiAgICAgKlxuICAgICAqIFdoaWxlIFtgcXVldWVgXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cucXVldWV9IHBhc3NlcyBvbmx5IG9uZSB0YXNrIHRvIG9uZSBvZiBhIGdyb3VwIG9mIHdvcmtlcnNcbiAgICAgKiBhdCBhIHRpbWUsIGFuZCBbYGNhcmdvYF17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LmNhcmdvfSBwYXNzZXMgYW4gYXJyYXkgb2YgdGFza3MgdG8gYSBzaW5nbGUgd29ya2VyLFxuICAgICAqIHRoZSBjYXJnb1F1ZXVlIHBhc3NlcyBhbiBhcnJheSBvZiB0YXNrcyB0byBtdWx0aXBsZSBwYXJhbGxlbCB3b3JrZXJzLlxuICAgICAqXG4gICAgICogQG5hbWUgY2FyZ29RdWV1ZVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnF1ZXVlXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cucXVldWV9XG4gICAgICogQHNlZSBbYXN5bmMuY2FyZ29de0BsaW5rIG1vZHVsZTpDb250cm9sRkxvdy5jYXJnb31cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSB3b3JrZXIgLSBBbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gZm9yIHByb2Nlc3NpbmcgYW4gYXJyYXlcbiAgICAgKiBvZiBxdWV1ZWQgdGFza3MuIEludm9rZWQgd2l0aCBgKHRhc2tzLCBjYWxsYmFjaylgLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29uY3VycmVuY3k9MV0gLSBBbiBgaW50ZWdlcmAgZm9yIGRldGVybWluaW5nIGhvdyBtYW55XG4gICAgICogYHdvcmtlcmAgZnVuY3Rpb25zIHNob3VsZCBiZSBydW4gaW4gcGFyYWxsZWwuICBJZiBvbWl0dGVkLCB0aGUgY29uY3VycmVuY3lcbiAgICAgKiBkZWZhdWx0cyB0byBgMWAuICBJZiB0aGUgY29uY3VycmVuY3kgaXMgYDBgLCBhbiBlcnJvciBpcyB0aHJvd24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtwYXlsb2FkPUluZmluaXR5XSAtIEFuIG9wdGlvbmFsIGBpbnRlZ2VyYCBmb3IgZGV0ZXJtaW5pbmdcbiAgICAgKiBob3cgbWFueSB0YXNrcyBzaG91bGQgYmUgcHJvY2Vzc2VkIHBlciByb3VuZDsgaWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgaXNcbiAgICAgKiB1bmxpbWl0ZWQuXG4gICAgICogQHJldHVybnMge21vZHVsZTpDb250cm9sRmxvdy5RdWV1ZU9iamVjdH0gQSBjYXJnb1F1ZXVlIG9iamVjdCB0byBtYW5hZ2UgdGhlIHRhc2tzLiBDYWxsYmFja3MgY2FuXG4gICAgICogYXR0YWNoZWQgYXMgY2VydGFpbiBwcm9wZXJ0aWVzIHRvIGxpc3RlbiBmb3Igc3BlY2lmaWMgZXZlbnRzIGR1cmluZyB0aGVcbiAgICAgKiBsaWZlY3ljbGUgb2YgdGhlIGNhcmdvUXVldWUgYW5kIGlubmVyIHF1ZXVlLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBjcmVhdGUgYSBjYXJnb1F1ZXVlIG9iamVjdCB3aXRoIHBheWxvYWQgMiBhbmQgY29uY3VycmVuY3kgMlxuICAgICAqIHZhciBjYXJnb1F1ZXVlID0gYXN5bmMuY2FyZ29RdWV1ZShmdW5jdGlvbih0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZm9yICh2YXIgaT0wOyBpPHRhc2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZygnaGVsbG8gJyArIHRhc2tzW2ldLm5hbWUpO1xuICAgICAqICAgICB9XG4gICAgICogICAgIGNhbGxiYWNrKCk7XG4gICAgICogfSwgMiwgMik7XG4gICAgICpcbiAgICAgKiAvLyBhZGQgc29tZSBpdGVtc1xuICAgICAqIGNhcmdvUXVldWUucHVzaCh7bmFtZTogJ2Zvbyd9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2ZpbmlzaGVkIHByb2Nlc3NpbmcgZm9vJyk7XG4gICAgICogfSk7XG4gICAgICogY2FyZ29RdWV1ZS5wdXNoKHtuYW1lOiAnYmFyJ30sIGZ1bmN0aW9uKGVycikge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnZmluaXNoZWQgcHJvY2Vzc2luZyBiYXInKTtcbiAgICAgKiB9KTtcbiAgICAgKiBjYXJnb1F1ZXVlLnB1c2goe25hbWU6ICdiYXonfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdmaW5pc2hlZCBwcm9jZXNzaW5nIGJheicpO1xuICAgICAqIH0pO1xuICAgICAqIGNhcmdvUXVldWUucHVzaCh7bmFtZTogJ2Jvbyd9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2ZpbmlzaGVkIHByb2Nlc3NpbmcgYm9vJyk7XG4gICAgICogfSk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gY2FyZ28kMSh3b3JrZXIsIGNvbmN1cnJlbmN5LCBwYXlsb2FkKSB7XG4gICAgICAgIHJldHVybiBxdWV1ZSh3b3JrZXIsIGNvbmN1cnJlbmN5LCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWR1Y2VzIGBjb2xsYCBpbnRvIGEgc2luZ2xlIHZhbHVlIHVzaW5nIGFuIGFzeW5jIGBpdGVyYXRlZWAgdG8gcmV0dXJuIGVhY2hcbiAgICAgKiBzdWNjZXNzaXZlIHN0ZXAuIGBtZW1vYCBpcyB0aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgcmVkdWN0aW9uLiBUaGlzIGZ1bmN0aW9uXG4gICAgICogb25seSBvcGVyYXRlcyBpbiBzZXJpZXMuXG4gICAgICpcbiAgICAgKiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgaXQgbWF5IG1ha2Ugc2Vuc2UgdG8gc3BsaXQgYSBjYWxsIHRvIHRoaXMgZnVuY3Rpb25cbiAgICAgKiBpbnRvIGEgcGFyYWxsZWwgbWFwLCBhbmQgdGhlbiB1c2UgdGhlIG5vcm1hbCBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgb24gdGhlXG4gICAgICogcmVzdWx0cy4gVGhpcyBmdW5jdGlvbiBpcyBmb3Igc2l0dWF0aW9ucyB3aGVyZSBlYWNoIHN0ZXAgaW4gdGhlIHJlZHVjdGlvblxuICAgICAqIG5lZWRzIHRvIGJlIGFzeW5jOyBpZiB5b3UgY2FuIGdldCB0aGUgZGF0YSBiZWZvcmUgcmVkdWNpbmcgaXQsIHRoZW4gaXQnc1xuICAgICAqIHByb2JhYmx5IGEgZ29vZCBpZGVhIHRvIGRvIHNvLlxuICAgICAqXG4gICAgICogQG5hbWUgcmVkdWNlXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGFsaWFzIGluamVjdFxuICAgICAqIEBhbGlhcyBmb2xkbFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHsqfSBtZW1vIC0gVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIHJlZHVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQSBmdW5jdGlvbiBhcHBsaWVkIHRvIGVhY2ggaXRlbSBpbiB0aGVcbiAgICAgKiBhcnJheSB0byBwcm9kdWNlIHRoZSBuZXh0IHN0ZXAgaW4gdGhlIHJlZHVjdGlvbi5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgbmV4dCBzdGF0ZSBvZiB0aGUgcmVkdWN0aW9uLlxuICAgICAqIElmIHRoZSBpdGVyYXRlZSBjb21wbGV0ZXMgd2l0aCBhbiBlcnJvciwgdGhlIHJlZHVjdGlvbiBpcyBzdG9wcGVkIGFuZCB0aGVcbiAgICAgKiBtYWluIGBjYWxsYmFja2AgaXMgaW1tZWRpYXRlbHkgY2FsbGVkIHdpdGggdGhlIGVycm9yLlxuICAgICAqIEludm9rZWQgd2l0aCAobWVtbywgaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC4gUmVzdWx0IGlzIHRoZSByZWR1Y2VkIHZhbHVlLiBJbnZva2VkIHdpdGhcbiAgICAgKiAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBmaWxlMS50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMTAwMCBieXRlcyBpbiBzaXplXG4gICAgICogLy8gZmlsZTIudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDIwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIGZpbGUzLnR4dCBpcyBhIGZpbGUgdGhhdCBpcyAzMDAwIGJ5dGVzIGluIHNpemVcbiAgICAgKiAvLyBmaWxlNC50eHQgZG9lcyBub3QgZXhpc3RcbiAgICAgKlxuICAgICAqIGNvbnN0IGZpbGVMaXN0ID0gWydmaWxlMS50eHQnLCdmaWxlMi50eHQnLCdmaWxlMy50eHQnXTtcbiAgICAgKiBjb25zdCB3aXRoTWlzc2luZ0ZpbGVMaXN0ID0gWydmaWxlMS50eHQnLCdmaWxlMi50eHQnLCdmaWxlMy50eHQnLCAnZmlsZTQudHh0J107XG4gICAgICpcbiAgICAgKiAvLyBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBjb21wdXRlcyB0aGUgZmlsZSBzaXplIGluIGJ5dGVzXG4gICAgICogLy8gZmlsZSBzaXplIGlzIGFkZGVkIHRvIHRoZSBtZW1vaXplZCB2YWx1ZSwgdGhlbiByZXR1cm5lZFxuICAgICAqIGZ1bmN0aW9uIGdldEZpbGVTaXplSW5CeXRlcyhtZW1vLCBmaWxlLCBjYWxsYmFjaykge1xuICAgICAqICAgICBmcy5zdGF0KGZpbGUsIGZ1bmN0aW9uKGVyciwgc3RhdCkge1xuICAgICAqICAgICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgbWVtbyArIHN0YXQuc2l6ZSk7XG4gICAgICogICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLnJlZHVjZShmaWxlTGlzdCwgMCwgZ2V0RmlsZVNpemVJbkJ5dGVzLCBmdW5jdGlvbihlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgIC8vIDYwMDBcbiAgICAgKiAgICAgICAgIC8vIHdoaWNoIGlzIHRoZSBzdW0gb2YgdGhlIGZpbGUgc2l6ZXMgb2YgdGhlIHRocmVlIGZpbGVzXG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgICogYXN5bmMucmVkdWNlKHdpdGhNaXNzaW5nRmlsZUxpc3QsIDAsIGdldEZpbGVTaXplSW5CeXRlcywgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogICAgIH0gZWxzZSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBQcm9taXNlc1xuICAgICAqIGFzeW5jLnJlZHVjZShmaWxlTGlzdCwgMCwgZ2V0RmlsZVNpemVJbkJ5dGVzKVxuICAgICAqIC50aGVuKCByZXN1bHQgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAvLyA2MDAwXG4gICAgICogICAgIC8vIHdoaWNoIGlzIHRoZSBzdW0gb2YgdGhlIGZpbGUgc2l6ZXMgb2YgdGhlIHRocmVlIGZpbGVzXG4gICAgICogfSkuY2F0Y2goIGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBIYW5kbGluZ1xuICAgICAqIGFzeW5jLnJlZHVjZSh3aXRoTWlzc2luZ0ZpbGVMaXN0LCAwLCBnZXRGaWxlU2l6ZUluQnl0ZXMpXG4gICAgICogLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogfSkuY2F0Y2goIGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBhc3luYy9hd2FpdFxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBhc3luYy5yZWR1Y2UoZmlsZUxpc3QsIDAsIGdldEZpbGVTaXplSW5CeXRlcyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8gNjAwMFxuICAgICAqICAgICAgICAgLy8gd2hpY2ggaXMgdGhlIHN1bSBvZiB0aGUgZmlsZSBzaXplcyBvZiB0aGUgdGhyZWUgZmlsZXNcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMucmVkdWNlKHdpdGhNaXNzaW5nRmlsZUxpc3QsIDAsIGdldEZpbGVTaXplSW5CeXRlcyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgICAgICAvLyBbIEVycm9yOiBFTk9FTlQ6IG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgXVxuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVkdWNlKGNvbGwsIG1lbW8sIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spO1xuICAgICAgICB2YXIgX2l0ZXJhdGVlID0gd3JhcEFzeW5jKGl0ZXJhdGVlKTtcbiAgICAgICAgcmV0dXJuIGVhY2hPZlNlcmllcyQxKGNvbGwsICh4LCBpLCBpdGVyQ2IpID0+IHtcbiAgICAgICAgICAgIF9pdGVyYXRlZShtZW1vLCB4LCAoZXJyLCB2KSA9PiB7XG4gICAgICAgICAgICAgICAgbWVtbyA9IHY7XG4gICAgICAgICAgICAgICAgaXRlckNiKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZXJyID0+IGNhbGxiYWNrKGVyciwgbWVtbykpO1xuICAgIH1cbiAgICB2YXIgcmVkdWNlJDEgPSBhd2FpdGlmeShyZWR1Y2UsIDQpO1xuXG4gICAgLyoqXG4gICAgICogVmVyc2lvbiBvZiB0aGUgY29tcG9zZSBmdW5jdGlvbiB0aGF0IGlzIG1vcmUgbmF0dXJhbCB0byByZWFkLiBFYWNoIGZ1bmN0aW9uXG4gICAgICogY29uc3VtZXMgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgcHJldmlvdXMgZnVuY3Rpb24uIEl0IGlzIHRoZSBlcXVpdmFsZW50IG9mXG4gICAgICogW2NvbXBvc2Vde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5jb21wb3NlfSB3aXRoIHRoZSBhcmd1bWVudHMgcmV2ZXJzZWQuXG4gICAgICpcbiAgICAgKiBFYWNoIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBjb21wb3NlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBuYW1lIHNlcVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmNvbXBvc2Vde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5jb21wb3NlfVxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0gey4uLkFzeW5jRnVuY3Rpb259IGZ1bmN0aW9ucyAtIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb25zIHRvIGNvbXBvc2VcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IGEgZnVuY3Rpb24gdGhhdCBjb21wb3NlcyB0aGUgYGZ1bmN0aW9uc2AgaW4gb3JkZXJcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gUmVxdWlyZXMgbG9kYXNoIChvciB1bmRlcnNjb3JlKSwgZXhwcmVzczMgYW5kIGRyZXNlbmRlJ3Mgb3JtMi5cbiAgICAgKiAvLyBQYXJ0IG9mIGFuIGFwcCwgdGhhdCBmZXRjaGVzIGNhdHMgb2YgdGhlIGxvZ2dlZCB1c2VyLlxuICAgICAqIC8vIFRoaXMgZXhhbXBsZSB1c2VzIGBzZXFgIGZ1bmN0aW9uIHRvIGF2b2lkIG92ZXJuZXN0aW5nIGFuZCBlcnJvclxuICAgICAqIC8vIGhhbmRsaW5nIGNsdXR0ZXIuXG4gICAgICogYXBwLmdldCgnL2NhdHMnLCBmdW5jdGlvbihyZXF1ZXN0LCByZXNwb25zZSkge1xuICAgICAqICAgICB2YXIgVXNlciA9IHJlcXVlc3QubW9kZWxzLlVzZXI7XG4gICAgICogICAgIGFzeW5jLnNlcShcbiAgICAgKiAgICAgICAgIFVzZXIuZ2V0LmJpbmQoVXNlciksICAvLyAnVXNlci5nZXQnIGhhcyBzaWduYXR1cmUgKGlkLCBjYWxsYmFjayhlcnIsIGRhdGEpKVxuICAgICAqICAgICAgICAgZnVuY3Rpb24odXNlciwgZm4pIHtcbiAgICAgKiAgICAgICAgICAgICB1c2VyLmdldENhdHMoZm4pOyAgICAgIC8vICdnZXRDYXRzJyBoYXMgc2lnbmF0dXJlIChjYWxsYmFjayhlcnIsIGRhdGEpKVxuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICApKHJlcS5zZXNzaW9uLnVzZXJfaWQsIGZ1bmN0aW9uIChlcnIsIGNhdHMpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICogICAgICAgICAgICAgcmVzcG9uc2UuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XG4gICAgICogICAgICAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICAgICAgIHJlc3BvbnNlLmpzb24oeyBzdGF0dXM6ICdvaycsIG1lc3NhZ2U6ICdDYXRzIGZvdW5kJywgZGF0YTogY2F0cyB9KTtcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgfSk7XG4gICAgICogfSk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gc2VxKC4uLmZ1bmN0aW9ucykge1xuICAgICAgICB2YXIgX2Z1bmN0aW9ucyA9IGZ1bmN0aW9ucy5tYXAod3JhcEFzeW5jKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICAgICAgICAgIHZhciBjYiA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGFyZ3MucG9wKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNiID0gcHJvbWlzZUNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlZHVjZSQxKF9mdW5jdGlvbnMsIGFyZ3MsIChuZXdhcmdzLCBmbiwgaXRlckNiKSA9PiB7XG4gICAgICAgICAgICAgICAgZm4uYXBwbHkodGhhdCwgbmV3YXJncy5jb25jYXQoKGVyciwgLi4ubmV4dGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlckNiKGVyciwgbmV4dGFyZ3MpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyLCByZXN1bHRzKSA9PiBjYihlcnIsIC4uLnJlc3VsdHMpKTtcblxuICAgICAgICAgICAgcmV0dXJuIGNiW1BST01JU0VfU1lNQk9MXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBmdW5jdGlvbiB3aGljaCBpcyBhIGNvbXBvc2l0aW9uIG9mIHRoZSBwYXNzZWQgYXN5bmNocm9ub3VzXG4gICAgICogZnVuY3Rpb25zLiBFYWNoIGZ1bmN0aW9uIGNvbnN1bWVzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZ1bmN0aW9uIHRoYXRcbiAgICAgKiBmb2xsb3dzLiBDb21wb3NpbmcgZnVuY3Rpb25zIGBmKClgLCBgZygpYCwgYW5kIGBoKClgIHdvdWxkIHByb2R1Y2UgdGhlIHJlc3VsdFxuICAgICAqIG9mIGBmKGcoaCgpKSlgLCBvbmx5IHRoaXMgdmVyc2lvbiB1c2VzIGNhbGxiYWNrcyB0byBvYnRhaW4gdGhlIHJldHVybiB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgbGFzdCBhcmd1bWVudCB0byB0aGUgY29tcG9zZWQgZnVuY3Rpb24gaXMgbm90IGEgZnVuY3Rpb24sIGEgcHJvbWlzZVxuICAgICAqIGlzIHJldHVybmVkIHdoZW4geW91IGNhbGwgaXQuXG4gICAgICpcbiAgICAgKiBFYWNoIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIHRoZSBjb21wb3NlZCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNvbXBvc2VcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHsuLi5Bc3luY0Z1bmN0aW9ufSBmdW5jdGlvbnMgLSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9ucyB0byBjb21wb3NlXG4gICAgICogQHJldHVybnMge0Z1bmN0aW9ufSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBpcyB0aGUgY29tcG9zZWRcbiAgICAgKiBhc3luY2hyb25vdXMgYGZ1bmN0aW9uc2BcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gYWRkMShuLCBjYWxsYmFjaykge1xuICAgICAqICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIG4gKyAxKTtcbiAgICAgKiAgICAgfSwgMTApO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGZ1bmN0aW9uIG11bDMobiwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCBuICogMyk7XG4gICAgICogICAgIH0sIDEwKTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiB2YXIgYWRkMW11bDMgPSBhc3luYy5jb21wb3NlKG11bDMsIGFkZDEpO1xuICAgICAqIGFkZDFtdWwzKDQsIGZ1bmN0aW9uIChlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICAvLyByZXN1bHQgbm93IGVxdWFscyAxNVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbXBvc2UoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc2VxKC4uLmFyZ3MucmV2ZXJzZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYG1hcGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5tYXB9IGJ1dCBydW5zIGEgbWF4aW11bSBvZiBgbGltaXRgIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqXG4gICAgICogQG5hbWUgbWFwTGltaXRcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5tYXBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5tYXB9XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpblxuICAgICAqIGBjb2xsYC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggdGhlIHRyYW5zZm9ybWVkIGl0ZW0uXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gYWxsIGBpdGVyYXRlZWBcbiAgICAgKiBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBSZXN1bHRzIGlzIGFuIGFycmF5IG9mIHRoZVxuICAgICAqIHRyYW5zZm9ybWVkIGl0ZW1zIGZyb20gdGhlIGBjb2xsYC4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdHMpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcExpbWl0IChjb2xsLCBsaW1pdCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfYXN5bmNNYXAoZWFjaE9mTGltaXQobGltaXQpLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBtYXBMaW1pdCQxID0gYXdhaXRpZnkobWFwTGltaXQsIDQpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMgW2Bjb25jYXRgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuY29uY2F0fSBidXQgcnVucyBhIG1heGltdW0gb2YgYGxpbWl0YCBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNvbmNhdExpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuY29uY2F0XXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuY29uY2F0fVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQGFsaWFzIGZsYXRNYXBMaW1pdFxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQSBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW4gYGNvbGxgLFxuICAgICAqIHdoaWNoIHNob3VsZCB1c2UgYW4gYXJyYXkgYXMgaXRzIHJlc3VsdC4gSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIGFsbCB0aGVcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIFJlc3VsdHMgaXMgYW4gYXJyYXlcbiAgICAgKiBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmVzdWx0cyBvZiB0aGUgYGl0ZXJhdGVlYCBmdW5jdGlvbi4gSW52b2tlZCB3aXRoXG4gICAgICogKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlLCBpZiBubyBjYWxsYmFjayBpcyBwYXNzZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25jYXRMaW1pdChjb2xsLCBsaW1pdCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfaXRlcmF0ZWUgPSB3cmFwQXN5bmMoaXRlcmF0ZWUpO1xuICAgICAgICByZXR1cm4gbWFwTGltaXQkMShjb2xsLCBsaW1pdCwgKHZhbCwgaXRlckNiKSA9PiB7XG4gICAgICAgICAgICBfaXRlcmF0ZWUodmFsLCAoZXJyLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGl0ZXJDYihlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVyQ2IoZXJyLCBhcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoZXJyLCBtYXBSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcFJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwUmVzdWx0c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KC4uLm1hcFJlc3VsdHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVyciwgcmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHZhciBjb25jYXRMaW1pdCQxID0gYXdhaXRpZnkoY29uY2F0TGltaXQsIDQpO1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyBgaXRlcmF0ZWVgIHRvIGVhY2ggaXRlbSBpbiBgY29sbGAsIGNvbmNhdGVuYXRpbmcgdGhlIHJlc3VsdHMuIFJldHVybnNcbiAgICAgKiB0aGUgY29uY2F0ZW5hdGVkIGxpc3QuIFRoZSBgaXRlcmF0ZWVgcyBhcmUgY2FsbGVkIGluIHBhcmFsbGVsLCBhbmQgdGhlXG4gICAgICogcmVzdWx0cyBhcmUgY29uY2F0ZW5hdGVkIGFzIHRoZXkgcmV0dXJuLiBUaGUgcmVzdWx0cyBhcnJheSB3aWxsIGJlIHJldHVybmVkIGluXG4gICAgICogdGhlIG9yaWdpbmFsIG9yZGVyIG9mIGBjb2xsYCBwYXNzZWQgdG8gdGhlIGBpdGVyYXRlZWAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAbmFtZSBjb25jYXRcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBhbGlhcyBmbGF0TWFwXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluIGBjb2xsYCxcbiAgICAgKiB3aGljaCBzaG91bGQgdXNlIGFuIGFycmF5IGFzIGl0cyByZXN1bHQuIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBSZXN1bHRzIGlzIGFuIGFycmF5XG4gICAgICogY29udGFpbmluZyB0aGUgY29uY2F0ZW5hdGVkIHJlc3VsdHMgb2YgdGhlIGBpdGVyYXRlZWAgZnVuY3Rpb24uIEludm9rZWQgd2l0aFxuICAgICAqIChlcnIsIHJlc3VsdHMpLlxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGRpcjEgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlMS50eHQsIGZpbGUyLnR4dFxuICAgICAqIC8vIGRpcjIgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlMy50eHQsIGZpbGU0LnR4dFxuICAgICAqIC8vIGRpcjMgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlNS50eHRcbiAgICAgKiAvLyBkaXI0IGRvZXMgbm90IGV4aXN0XG4gICAgICpcbiAgICAgKiBsZXQgZGlyZWN0b3J5TGlzdCA9IFsnZGlyMScsJ2RpcjInLCdkaXIzJ107XG4gICAgICogbGV0IHdpdGhNaXNzaW5nRGlyZWN0b3J5TGlzdCA9IFsnZGlyMScsJ2RpcjInLCdkaXIzJywgJ2RpcjQnXTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLmNvbmNhdChkaXJlY3RvcnlMaXN0LCBmcy5yZWFkZGlyLCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgICAgIC8vIFsgJ2ZpbGUxLnR4dCcsICdmaWxlMi50eHQnLCAnZmlsZTMudHh0JywgJ2ZpbGU0LnR4dCcsIGZpbGU1LnR4dCBdXG4gICAgICogICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAgKiBhc3luYy5jb25jYXQod2l0aE1pc3NpbmdEaXJlY3RvcnlMaXN0LCBmcy5yZWFkZGlyLCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogICAgICAgIC8vIHNpbmNlIGRpcjQgZG9lcyBub3QgZXhpc3RcbiAgICAgKiAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBQcm9taXNlc1xuICAgICAqIGFzeW5jLmNvbmNhdChkaXJlY3RvcnlMaXN0LCBmcy5yZWFkZGlyKVxuICAgICAqIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gWyAnZmlsZTEudHh0JywgJ2ZpbGUyLnR4dCcsICdmaWxlMy50eHQnLCAnZmlsZTQudHh0JywgZmlsZTUudHh0IF1cbiAgICAgKiB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAqICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgICogYXN5bmMuY29uY2F0KHdpdGhNaXNzaW5nRGlyZWN0b3J5TGlzdCwgZnMucmVhZGRpcilcbiAgICAgKiAudGhlbihyZXN1bHRzID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgLy8gc2luY2UgZGlyNCBkb2VzIG5vdCBleGlzdFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IGFzeW5jLmNvbmNhdChkaXJlY3RvcnlMaXN0LCBmcy5yZWFkZGlyKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAgICAgLy8gWyAnZmlsZTEudHh0JywgJ2ZpbGUyLnR4dCcsICdmaWxlMy50eHQnLCAnZmlsZTQudHh0JywgZmlsZTUudHh0IF1cbiAgICAgKiAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IGFzeW5jLmNvbmNhdCh3aXRoTWlzc2luZ0RpcmVjdG9yeUxpc3QsIGZzLnJlYWRkaXIpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogICAgICAgICAvLyBzaW5jZSBkaXI0IGRvZXMgbm90IGV4aXN0XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25jYXQoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBjb25jYXRMaW1pdCQxKGNvbGwsIEluZmluaXR5LCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBjb25jYXQkMSA9IGF3YWl0aWZ5KGNvbmNhdCwgMyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYGNvbmNhdGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5jb25jYXR9IGJ1dCBydW5zIG9ubHkgYSBzaW5nbGUgYXN5bmMgb3BlcmF0aW9uIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGNvbmNhdFNlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmNvbmNhdF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmNvbmNhdH1cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBhbGlhcyBmbGF0TWFwU2VyaWVzXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluIGBjb2xsYC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYW4gYXJyYXkgYW4gYXJyYXkgb2YgcmVzdWx0cy5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHRoZVxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gUmVzdWx0cyBpcyBhbiBhcnJheVxuICAgICAqIGNvbnRhaW5pbmcgdGhlIGNvbmNhdGVuYXRlZCByZXN1bHRzIG9mIHRoZSBgaXRlcmF0ZWVgIGZ1bmN0aW9uLiBJbnZva2VkIHdpdGhcbiAgICAgKiAoZXJyLCByZXN1bHRzKS5cbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGNvbmNhdFNlcmllcyhjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIGNvbmNhdExpbWl0JDEoY29sbCwgMSwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgY29uY2F0U2VyaWVzJDEgPSBhd2FpdGlmeShjb25jYXRTZXJpZXMsIDMpO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgd2hlbiBjYWxsZWQsIGNhbGxzLWJhY2sgd2l0aCB0aGUgdmFsdWVzIHByb3ZpZGVkLlxuICAgICAqIFVzZWZ1bCBhcyB0aGUgZmlyc3QgZnVuY3Rpb24gaW4gYSBbYHdhdGVyZmFsbGBde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy53YXRlcmZhbGx9LCBvciBmb3IgcGx1Z2dpbmcgdmFsdWVzIGluIHRvXG4gICAgICogW2BhdXRvYF17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LmF1dG99LlxuICAgICAqXG4gICAgICogQG5hbWUgY29uc3RhbnRcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpVdGlsc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7Li4uKn0gYXJndW1lbnRzLi4uIC0gQW55IG51bWJlciBvZiBhcmd1bWVudHMgdG8gYXV0b21hdGljYWxseSBpbnZva2VcbiAgICAgKiBjYWxsYmFjayB3aXRoLlxuICAgICAqIEByZXR1cm5zIHtBc3luY0Z1bmN0aW9ufSBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCB3aGVuIGludm9rZWQsIGF1dG9tYXRpY2FsbHlcbiAgICAgKiBpbnZva2VzIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBwcmV2aW91cyBnaXZlbiBhcmd1bWVudHMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGFzeW5jLndhdGVyZmFsbChbXG4gICAgICogICAgIGFzeW5jLmNvbnN0YW50KDQyKSxcbiAgICAgKiAgICAgZnVuY3Rpb24gKHZhbHVlLCBuZXh0KSB7XG4gICAgICogICAgICAgICAvLyB2YWx1ZSA9PT0gNDJcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgLy8uLi5cbiAgICAgKiBdLCBjYWxsYmFjayk7XG4gICAgICpcbiAgICAgKiBhc3luYy53YXRlcmZhbGwoW1xuICAgICAqICAgICBhc3luYy5jb25zdGFudChmaWxlbmFtZSwgXCJ1dGY4XCIpLFxuICAgICAqICAgICBmcy5yZWFkRmlsZSxcbiAgICAgKiAgICAgZnVuY3Rpb24gKGZpbGVEYXRhLCBuZXh0KSB7XG4gICAgICogICAgICAgICAvLy4uLlxuICAgICAqICAgICB9XG4gICAgICogICAgIC8vLi4uXG4gICAgICogXSwgY2FsbGJhY2spO1xuICAgICAqXG4gICAgICogYXN5bmMuYXV0byh7XG4gICAgICogICAgIGhvc3RuYW1lOiBhc3luYy5jb25zdGFudChcImh0dHBzOi8vc2VydmVyLm5ldC9cIiksXG4gICAgICogICAgIHBvcnQ6IGZpbmRGcmVlUG9ydCxcbiAgICAgKiAgICAgbGF1bmNoU2VydmVyOiBbXCJob3N0bmFtZVwiLCBcInBvcnRcIiwgZnVuY3Rpb24gKG9wdGlvbnMsIGNiKSB7XG4gICAgICogICAgICAgICBzdGFydFNlcnZlcihvcHRpb25zLCBjYik7XG4gICAgICogICAgIH1dLFxuICAgICAqICAgICAvLy4uLlxuICAgICAqIH0sIGNhbGxiYWNrKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjb25zdGFudCguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoLi4uaWdub3JlZEFyZ3MvKiwgY2FsbGJhY2sqLykge1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gaWdub3JlZEFyZ3MucG9wKCk7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgLi4uYXJncyk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX2NyZWF0ZVRlc3RlcihjaGVjaywgZ2V0UmVzdWx0KSB7XG4gICAgICAgIHJldHVybiAoZWFjaGZuLCBhcnIsIF9pdGVyYXRlZSwgY2IpID0+IHtcbiAgICAgICAgICAgIHZhciB0ZXN0UGFzc2VkID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgdGVzdFJlc3VsdDtcbiAgICAgICAgICAgIGNvbnN0IGl0ZXJhdGVlID0gd3JhcEFzeW5jKF9pdGVyYXRlZSk7XG4gICAgICAgICAgICBlYWNoZm4oYXJyLCAodmFsdWUsIF8sIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlcmF0ZWUodmFsdWUsIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIHx8IGVyciA9PT0gZmFsc2UpIHJldHVybiBjYWxsYmFjayhlcnIpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVjayhyZXN1bHQpICYmICF0ZXN0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSZXN1bHQgPSBnZXRSZXN1bHQodHJ1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIGJyZWFrTG9vcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNiKGVycik7XG4gICAgICAgICAgICAgICAgY2IobnVsbCwgdGVzdFBhc3NlZCA/IHRlc3RSZXN1bHQgOiBnZXRSZXN1bHQoZmFsc2UpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbHVlIGluIGBjb2xsYCB0aGF0IHBhc3NlcyBhbiBhc3luYyB0cnV0aCB0ZXN0LiBUaGVcbiAgICAgKiBgaXRlcmF0ZWVgIGlzIGFwcGxpZWQgaW4gcGFyYWxsZWwsIG1lYW5pbmcgdGhlIGZpcnN0IGl0ZXJhdGVlIHRvIHJldHVyblxuICAgICAqIGB0cnVlYCB3aWxsIGZpcmUgdGhlIGRldGVjdCBgY2FsbGJhY2tgIHdpdGggdGhhdCByZXN1bHQuIFRoYXQgbWVhbnMgdGhlXG4gICAgICogcmVzdWx0IG1pZ2h0IG5vdCBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgb3JpZ2luYWwgYGNvbGxgIChpbiB0ZXJtcyBvZiBvcmRlcilcbiAgICAgKiB0aGF0IHBhc3NlcyB0aGUgdGVzdC5cblxuICAgICAqIElmIG9yZGVyIHdpdGhpbiB0aGUgb3JpZ2luYWwgYGNvbGxgIGlzIGltcG9ydGFudCwgdGhlbiBsb29rIGF0XG4gICAgICogW2BkZXRlY3RTZXJpZXNgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZGV0ZWN0U2VyaWVzfS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGRldGVjdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBhbGlhcyBmaW5kXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25zXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW4gYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBtdXN0IGNvbXBsZXRlIHdpdGggYSBib29sZWFuIHZhbHVlIGFzIGl0cyByZXN1bHQuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFzIHNvb24gYXMgYW55XG4gICAgICogaXRlcmF0ZWUgcmV0dXJucyBgdHJ1ZWAsIG9yIGFmdGVyIGFsbCB0aGUgYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC5cbiAgICAgKiBSZXN1bHQgd2lsbCBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXkgdGhhdCBwYXNzZXMgdGhlIHRydXRoIHRlc3RcbiAgICAgKiAoaXRlcmF0ZWUpIG9yIHRoZSB2YWx1ZSBgdW5kZWZpbmVkYCBpZiBub25lIHBhc3NlZC4gSW52b2tlZCB3aXRoXG4gICAgICogKGVyciwgcmVzdWx0KS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBhIGNhbGxiYWNrIGlzIG9taXR0ZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZGlyMSBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUxLnR4dCwgZmlsZTIudHh0XG4gICAgICogLy8gZGlyMiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUzLnR4dCwgZmlsZTQudHh0XG4gICAgICogLy8gZGlyMyBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGU1LnR4dFxuICAgICAqXG4gICAgICogLy8gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIGEgZmlsZSBleGlzdHNcbiAgICAgKiBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgICogICAgZnMuYWNjZXNzKGZpbGUsIGZzLmNvbnN0YW50cy5GX09LLCAoZXJyKSA9PiB7XG4gICAgICogICAgICAgIGNhbGxiYWNrKG51bGwsICFlcnIpO1xuICAgICAqICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGFzeW5jLmRldGVjdChbJ2ZpbGUzLnR4dCcsJ2ZpbGUyLnR4dCcsJ2RpcjEvZmlsZTEudHh0J10sIGZpbGVFeGlzdHMsXG4gICAgICogICAgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgLy8gZGlyMS9maWxlMS50eHRcbiAgICAgKiAgICAgICAgLy8gcmVzdWx0IG5vdyBlcXVhbHMgdGhlIGZpcnN0IGZpbGUgaW4gdGhlIGxpc3QgdGhhdCBleGlzdHNcbiAgICAgKiAgICB9XG4gICAgICopO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5kZXRlY3QoWydmaWxlMy50eHQnLCdmaWxlMi50eHQnLCdkaXIxL2ZpbGUxLnR4dCddLCBmaWxlRXhpc3RzKVxuICAgICAqIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIGRpcjEvZmlsZTEudHh0XG4gICAgICogICAgIC8vIHJlc3VsdCBub3cgZXF1YWxzIHRoZSBmaXJzdCBmaWxlIGluIHRoZSBsaXN0IHRoYXQgZXhpc3RzXG4gICAgICogfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGFzeW5jLmRldGVjdChbJ2ZpbGUzLnR4dCcsJ2ZpbGUyLnR4dCcsJ2RpcjEvZmlsZTEudHh0J10sIGZpbGVFeGlzdHMpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgIC8vIGRpcjEvZmlsZTEudHh0XG4gICAgICogICAgICAgICAvLyByZXN1bHQgbm93IGVxdWFscyB0aGUgZmlsZSBpbiB0aGUgbGlzdCB0aGF0IGV4aXN0c1xuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZXRlY3QoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfY3JlYXRlVGVzdGVyKGJvb2wgPT4gYm9vbCwgKHJlcywgaXRlbSkgPT4gaXRlbSkoZWFjaE9mJDEsIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIGRldGVjdCQxID0gYXdhaXRpZnkoZGV0ZWN0LCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZGV0ZWN0YF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmRldGVjdH0gYnV0IHJ1bnMgYSBtYXhpbXVtIG9mIGBsaW1pdGAgYXN5bmMgb3BlcmF0aW9ucyBhdCBhXG4gICAgICogdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGRldGVjdExpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuZGV0ZWN0XXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZGV0ZWN0fVxuICAgICAqIEBhbGlhcyBmaW5kTGltaXRcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvbnNcbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW4gYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBtdXN0IGNvbXBsZXRlIHdpdGggYSBib29sZWFuIHZhbHVlIGFzIGl0cyByZXN1bHQuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFzIHNvb24gYXMgYW55XG4gICAgICogaXRlcmF0ZWUgcmV0dXJucyBgdHJ1ZWAsIG9yIGFmdGVyIGFsbCB0aGUgYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC5cbiAgICAgKiBSZXN1bHQgd2lsbCBiZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXkgdGhhdCBwYXNzZXMgdGhlIHRydXRoIHRlc3RcbiAgICAgKiAoaXRlcmF0ZWUpIG9yIHRoZSB2YWx1ZSBgdW5kZWZpbmVkYCBpZiBub25lIHBhc3NlZC4gSW52b2tlZCB3aXRoXG4gICAgICogKGVyciwgcmVzdWx0KS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBhIGNhbGxiYWNrIGlzIG9taXR0ZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBkZXRlY3RMaW1pdChjb2xsLCBsaW1pdCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfY3JlYXRlVGVzdGVyKGJvb2wgPT4gYm9vbCwgKHJlcywgaXRlbSkgPT4gaXRlbSkoZWFjaE9mTGltaXQobGltaXQpLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBkZXRlY3RMaW1pdCQxID0gYXdhaXRpZnkoZGV0ZWN0TGltaXQsIDQpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHNhbWUgYXMgW2BkZXRlY3RgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZGV0ZWN0fSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBkZXRlY3RTZXJpZXNcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5kZXRlY3Rde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5kZXRlY3R9XG4gICAgICogQGFsaWFzIGZpbmRTZXJpZXNcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvbnNcbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQSB0cnV0aCB0ZXN0IHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpbiBgY29sbGAuXG4gICAgICogVGhlIGl0ZXJhdGVlIG11c3QgY29tcGxldGUgd2l0aCBhIGJvb2xlYW4gdmFsdWUgYXMgaXRzIHJlc3VsdC5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYXMgc29vbiBhcyBhbnlcbiAgICAgKiBpdGVyYXRlZSByZXR1cm5zIGB0cnVlYCwgb3IgYWZ0ZXIgYWxsIHRoZSBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLlxuICAgICAqIFJlc3VsdCB3aWxsIGJlIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBhcnJheSB0aGF0IHBhc3NlcyB0aGUgdHJ1dGggdGVzdFxuICAgICAqIChpdGVyYXRlZSkgb3IgdGhlIHZhbHVlIGB1bmRlZmluZWRgIGlmIG5vbmUgcGFzc2VkLiBJbnZva2VkIHdpdGhcbiAgICAgKiAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRldGVjdFNlcmllcyhjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIF9jcmVhdGVUZXN0ZXIoYm9vbCA9PiBib29sLCAocmVzLCBpdGVtKSA9PiBpdGVtKShlYWNoT2ZMaW1pdCgxKSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cblxuICAgIHZhciBkZXRlY3RTZXJpZXMkMSA9IGF3YWl0aWZ5KGRldGVjdFNlcmllcywgMyk7XG5cbiAgICBmdW5jdGlvbiBjb25zb2xlRnVuYyhuYW1lKSB7XG4gICAgICAgIHJldHVybiAoZm4sIC4uLmFyZ3MpID0+IHdyYXBBc3luYyhmbikoLi4uYXJncywgKGVyciwgLi4ucmVzdWx0QXJncykgPT4ge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnNvbGUuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uc29sZVtuYW1lXSkgeyAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRBcmdzLmZvckVhY2goeCA9PiBjb25zb2xlW25hbWVdKHgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9ncyB0aGUgcmVzdWx0IG9mIGFuIFtgYXN5bmNgIGZ1bmN0aW9uXXtAbGluayBBc3luY0Z1bmN0aW9ufSB0byB0aGVcbiAgICAgKiBgY29uc29sZWAgdXNpbmcgYGNvbnNvbGUuZGlyYCB0byBkaXNwbGF5IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXN1bHRpbmcgb2JqZWN0LlxuICAgICAqIE9ubHkgd29ya3MgaW4gTm9kZS5qcyBvciBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgYGNvbnNvbGUuZGlyYCBhbmRcbiAgICAgKiBgY29uc29sZS5lcnJvcmAgKHN1Y2ggYXMgRkYgYW5kIENocm9tZSkuXG4gICAgICogSWYgbXVsdGlwbGUgYXJndW1lbnRzIGFyZSByZXR1cm5lZCBmcm9tIHRoZSBhc3luYyBmdW5jdGlvbixcbiAgICAgKiBgY29uc29sZS5kaXJgIGlzIGNhbGxlZCBvbiBlYWNoIGFyZ3VtZW50IGluIG9yZGVyLlxuICAgICAqXG4gICAgICogQG5hbWUgZGlyXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6VXRpbHNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGZ1bmN0aW9uIC0gVGhlIGZ1bmN0aW9uIHlvdSB3YW50IHRvIGV2ZW50dWFsbHkgYXBwbHlcbiAgICAgKiBhbGwgYXJndW1lbnRzIHRvLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gYXJndW1lbnRzLi4uIC0gQW55IG51bWJlciBvZiBhcmd1bWVudHMgdG8gYXBwbHkgdG8gdGhlIGZ1bmN0aW9uLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBpbiBhIG1vZHVsZVxuICAgICAqIHZhciBoZWxsbyA9IGZ1bmN0aW9uKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCB7aGVsbG86IG5hbWV9KTtcbiAgICAgKiAgICAgfSwgMTAwMCk7XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIC8vIGluIHRoZSBub2RlIHJlcGxcbiAgICAgKiBub2RlPiBhc3luYy5kaXIoaGVsbG8sICd3b3JsZCcpO1xuICAgICAqIHtoZWxsbzogJ3dvcmxkJ31cbiAgICAgKi9cbiAgICB2YXIgZGlyID0gY29uc29sZUZ1bmMoJ2RpcicpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHBvc3QtY2hlY2sgdmVyc2lvbiBvZiBbYHdoaWxzdGBde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy53aGlsc3R9LiBUbyByZWZsZWN0IHRoZSBkaWZmZXJlbmNlIGluXG4gICAgICogdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMsIHRoZSBhcmd1bWVudHMgYHRlc3RgIGFuZCBgaXRlcmF0ZWVgIGFyZSBzd2l0Y2hlZC5cbiAgICAgKlxuICAgICAqIGBkb1doaWxzdGAgaXMgdG8gYHdoaWxzdGAgYXMgYGRvIHdoaWxlYCBpcyB0byBgd2hpbGVgIGluIHBsYWluIEphdmFTY3JpcHQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBkb1doaWxzdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLndoaWxzdF17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LndoaWxzdH1cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGVhY2ggdGltZSBgdGVzdGBcbiAgICAgKiBwYXNzZXMuIEludm9rZWQgd2l0aCAoY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gdGVzdCAtIGFzeW5jaHJvbm91cyB0cnV0aCB0ZXN0IHRvIHBlcmZvcm0gYWZ0ZXIgZWFjaFxuICAgICAqIGV4ZWN1dGlvbiBvZiBgaXRlcmF0ZWVgLiBJbnZva2VkIHdpdGggKC4uLmFyZ3MsIGNhbGxiYWNrKSwgd2hlcmUgYC4uLmFyZ3NgIGFyZSB0aGVcbiAgICAgKiBub24tZXJyb3IgYXJncyBmcm9tIHRoZSBwcmV2aW91cyBjYWxsYmFjayBvZiBgaXRlcmF0ZWVgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciB0aGUgdGVzdFxuICAgICAqIGZ1bmN0aW9uIGhhcyBmYWlsZWQgYW5kIHJlcGVhdGVkIGV4ZWN1dGlvbiBvZiBgaXRlcmF0ZWVgIGhhcyBzdG9wcGVkLlxuICAgICAqIGBjYWxsYmFja2Agd2lsbCBiZSBwYXNzZWQgYW4gZXJyb3IgYW5kIGFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmaW5hbFxuICAgICAqIGBpdGVyYXRlZWAncyBjYWxsYmFjay4gSW52b2tlZCB3aXRoIChlcnIsIFtyZXN1bHRzXSk7XG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9XaGlsc3QoaXRlcmF0ZWUsIHRlc3QsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNhbGxiYWNrID0gb25seU9uY2UoY2FsbGJhY2spO1xuICAgICAgICB2YXIgX2ZuID0gd3JhcEFzeW5jKGl0ZXJhdGVlKTtcbiAgICAgICAgdmFyIF90ZXN0ID0gd3JhcEFzeW5jKHRlc3QpO1xuICAgICAgICB2YXIgcmVzdWx0cztcblxuICAgICAgICBmdW5jdGlvbiBuZXh0KGVyciwgLi4uYXJncykge1xuICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzdWx0cyA9IGFyZ3M7XG4gICAgICAgICAgICBfdGVzdCguLi5hcmdzLCBjaGVjayk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBjaGVjayhlcnIsIHRydXRoKSB7XG4gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgIGlmIChlcnIgPT09IGZhbHNlKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoIXRydXRoKSByZXR1cm4gY2FsbGJhY2sobnVsbCwgLi4ucmVzdWx0cyk7XG4gICAgICAgICAgICBfZm4obmV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hlY2sobnVsbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdmFyIGRvV2hpbHN0JDEgPSBhd2FpdGlmeShkb1doaWxzdCwgMyk7XG5cbiAgICAvKipcbiAgICAgKiBMaWtlIFsnZG9XaGlsc3QnXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cuZG9XaGlsc3R9LCBleGNlcHQgdGhlIGB0ZXN0YCBpcyBpbnZlcnRlZC4gTm90ZSB0aGVcbiAgICAgKiBhcmd1bWVudCBvcmRlcmluZyBkaWZmZXJzIGZyb20gYHVudGlsYC5cbiAgICAgKlxuICAgICAqIEBuYW1lIGRvVW50aWxcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5kb1doaWxzdF17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LmRvV2hpbHN0fVxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGVhY2ggdGltZVxuICAgICAqIGB0ZXN0YCBmYWlscy4gSW52b2tlZCB3aXRoIChjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSB0ZXN0IC0gYXN5bmNocm9ub3VzIHRydXRoIHRlc3QgdG8gcGVyZm9ybSBhZnRlciBlYWNoXG4gICAgICogZXhlY3V0aW9uIG9mIGBpdGVyYXRlZWAuIEludm9rZWQgd2l0aCAoLi4uYXJncywgY2FsbGJhY2spLCB3aGVyZSBgLi4uYXJnc2AgYXJlIHRoZVxuICAgICAqIG5vbi1lcnJvciBhcmdzIGZyb20gdGhlIHByZXZpb3VzIGNhbGxiYWNrIG9mIGBpdGVyYXRlZWBcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHRlc3RcbiAgICAgKiBmdW5jdGlvbiBoYXMgcGFzc2VkIGFuZCByZXBlYXRlZCBleGVjdXRpb24gb2YgYGl0ZXJhdGVlYCBoYXMgc3RvcHBlZC4gYGNhbGxiYWNrYFxuICAgICAqIHdpbGwgYmUgcGFzc2VkIGFuIGVycm9yIGFuZCBhbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZmluYWwgYGl0ZXJhdGVlYCdzXG4gICAgICogY2FsbGJhY2suIEludm9rZWQgd2l0aCAoZXJyLCBbcmVzdWx0c10pO1xuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGRvVW50aWwoaXRlcmF0ZWUsIHRlc3QsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IF90ZXN0ID0gd3JhcEFzeW5jKHRlc3QpO1xuICAgICAgICByZXR1cm4gZG9XaGlsc3QkMShpdGVyYXRlZSwgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJncy5wb3AoKTtcbiAgICAgICAgICAgIF90ZXN0KC4uLmFyZ3MsIChlcnIsIHRydXRoKSA9PiBjYiAoZXJyLCAhdHJ1dGgpKTtcbiAgICAgICAgfSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIF93aXRob3V0SW5kZXgoaXRlcmF0ZWUpIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZSwgaW5kZXgsIGNhbGxiYWNrKSA9PiBpdGVyYXRlZSh2YWx1ZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgdGhlIGZ1bmN0aW9uIGBpdGVyYXRlZWAgdG8gZWFjaCBpdGVtIGluIGBjb2xsYCwgaW4gcGFyYWxsZWwuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgY2FsbGVkIHdpdGggYW4gaXRlbSBmcm9tIHRoZSBsaXN0LCBhbmQgYSBjYWxsYmFjayBmb3Igd2hlblxuICAgICAqIGl0IGhhcyBmaW5pc2hlZC4gSWYgdGhlIGBpdGVyYXRlZWAgcGFzc2VzIGFuIGVycm9yIHRvIGl0cyBgY2FsbGJhY2tgLCB0aGVcbiAgICAgKiBtYWluIGBjYWxsYmFja2AgKGZvciB0aGUgYGVhY2hgIGZ1bmN0aW9uKSBpcyBpbW1lZGlhdGVseSBjYWxsZWQgd2l0aCB0aGVcbiAgICAgKiBlcnJvci5cbiAgICAgKlxuICAgICAqIE5vdGUsIHRoYXQgc2luY2UgdGhpcyBmdW5jdGlvbiBhcHBsaWVzIGBpdGVyYXRlZWAgdG8gZWFjaCBpdGVtIGluIHBhcmFsbGVsLFxuICAgICAqIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBpdGVyYXRlZSBmdW5jdGlvbnMgd2lsbCBjb21wbGV0ZSBpbiBvcmRlci5cbiAgICAgKlxuICAgICAqIEBuYW1lIGVhY2hcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAYWxpYXMgZm9yRWFjaFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIGFwcGx5IHRvXG4gICAgICogZWFjaCBpdGVtIGluIGBjb2xsYC4gSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogVGhlIGFycmF5IGluZGV4IGlzIG5vdCBwYXNzZWQgdG8gdGhlIGl0ZXJhdGVlLlxuICAgICAqIElmIHlvdSBuZWVkIHRoZSBpbmRleCwgdXNlIGBlYWNoT2ZgLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbFxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBkaXIxIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTEudHh0LCBmaWxlMi50eHRcbiAgICAgKiAvLyBkaXIyIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTMudHh0LCBmaWxlNC50eHRcbiAgICAgKiAvLyBkaXIzIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTUudHh0XG4gICAgICogLy8gZGlyNCBkb2VzIG5vdCBleGlzdFxuICAgICAqXG4gICAgICogY29uc3QgZmlsZUxpc3QgPSBbICdkaXIxL2ZpbGUyLnR4dCcsICdkaXIyL2ZpbGUzLnR4dCcsICdkaXIvZmlsZTUudHh0J107XG4gICAgICogY29uc3Qgd2l0aE1pc3NpbmdGaWxlTGlzdCA9IFsnZGlyMS9maWxlMS50eHQnLCAnZGlyNC9maWxlMi50eHQnXTtcbiAgICAgKlxuICAgICAqIC8vIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IGRlbGV0ZXMgYSBmaWxlXG4gICAgICogY29uc3QgZGVsZXRlRmlsZSA9IGZ1bmN0aW9uKGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgICogICAgIGZzLnVubGluayhmaWxlLCBjYWxsYmFjayk7XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLmVhY2goZmlsZUxpc3QsIGRlbGV0ZUZpbGUsIGZ1bmN0aW9uKGVycikge1xuICAgICAqICAgICBpZiggZXJyICkge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKCdBbGwgZmlsZXMgaGF2ZSBiZWVuIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgICogYXN5bmMuZWFjaCh3aXRoTWlzc2luZ0ZpbGVMaXN0LCBkZWxldGVGaWxlLCBmdW5jdGlvbihlcnIpe1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAvLyBbIEVycm9yOiBFTk9FTlQ6IG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgXVxuICAgICAqICAgICAvLyBzaW5jZSBkaXI0L2ZpbGUyLnR4dCBkb2VzIG5vdCBleGlzdFxuICAgICAqICAgICAvLyBkaXIxL2ZpbGUxLnR4dCBjb3VsZCBoYXZlIGJlZW4gZGVsZXRlZFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5lYWNoKGZpbGVMaXN0LCBkZWxldGVGaWxlKVxuICAgICAqIC50aGVuKCAoKSA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdBbGwgZmlsZXMgaGF2ZSBiZWVuIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICogfSkuY2F0Y2goIGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBIYW5kbGluZ1xuICAgICAqIGFzeW5jLmVhY2goZmlsZUxpc3QsIGRlbGV0ZUZpbGUpXG4gICAgICogLnRoZW4oICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ0FsbCBmaWxlcyBoYXZlIGJlZW4gZGVsZXRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgLy8gc2luY2UgZGlyNC9maWxlMi50eHQgZG9lcyBub3QgZXhpc3RcbiAgICAgKiAgICAgLy8gZGlyMS9maWxlMS50eHQgY291bGQgaGF2ZSBiZWVuIGRlbGV0ZWRcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgYXdhaXQgYXN5bmMuZWFjaChmaWxlcywgZGVsZXRlRmlsZSk7XG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIEVycm9yIEhhbmRsaW5nXG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgYXdhaXQgYXN5bmMuZWFjaCh3aXRoTWlzc2luZ0ZpbGVMaXN0LCBkZWxldGVGaWxlKTtcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgICAgIC8vIHNpbmNlIGRpcjQvZmlsZTIudHh0IGRvZXMgbm90IGV4aXN0XG4gICAgICogICAgICAgICAvLyBkaXIxL2ZpbGUxLnR4dCBjb3VsZCBoYXZlIGJlZW4gZGVsZXRlZFxuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gZWFjaExpbWl0KGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gZWFjaE9mJDEoY29sbCwgX3dpdGhvdXRJbmRleCh3cmFwQXN5bmMoaXRlcmF0ZWUpKSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHZhciBlYWNoID0gYXdhaXRpZnkoZWFjaExpbWl0LCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZWFjaGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5lYWNofSBidXQgcnVucyBhIG1heGltdW0gb2YgYGxpbWl0YCBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGVhY2hMaW1pdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmVhY2hde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5lYWNofVxuICAgICAqIEBhbGlhcyBmb3JFYWNoTGltaXRcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluXG4gICAgICogYGNvbGxgLlxuICAgICAqIFRoZSBhcnJheSBpbmRleCBpcyBub3QgcGFzc2VkIHRvIHRoZSBpdGVyYXRlZS5cbiAgICAgKiBJZiB5b3UgbmVlZCB0aGUgaW5kZXgsIHVzZSBgZWFjaE9mTGltaXRgLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbFxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVhY2hMaW1pdCQxKGNvbGwsIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIGVhY2hPZkxpbWl0KGxpbWl0KShjb2xsLCBfd2l0aG91dEluZGV4KHdyYXBBc3luYyhpdGVyYXRlZSkpLCBjYWxsYmFjayk7XG4gICAgfVxuICAgIHZhciBlYWNoTGltaXQkMiA9IGF3YWl0aWZ5KGVhY2hMaW1pdCQxLCA0KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZWFjaGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5lYWNofSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBOb3RlLCB0aGF0IHVubGlrZSBbYGVhY2hgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZWFjaH0sIHRoaXMgZnVuY3Rpb24gYXBwbGllcyBpdGVyYXRlZSB0byBlYWNoIGl0ZW1cbiAgICAgKiBpbiBzZXJpZXMgYW5kIHRoZXJlZm9yZSB0aGUgaXRlcmF0ZWUgZnVuY3Rpb25zIHdpbGwgY29tcGxldGUgaW4gb3JkZXIuXG5cbiAgICAgKiBAbmFtZSBlYWNoU2VyaWVzXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuZWFjaF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmVhY2h9XG4gICAgICogQGFsaWFzIGZvckVhY2hTZXJpZXNcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoXG4gICAgICogaXRlbSBpbiBgY29sbGAuXG4gICAgICogVGhlIGFycmF5IGluZGV4IGlzIG5vdCBwYXNzZWQgdG8gdGhlIGl0ZXJhdGVlLlxuICAgICAqIElmIHlvdSBuZWVkIHRoZSBpbmRleCwgdXNlIGBlYWNoT2ZTZXJpZXNgLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbFxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgb21pdHRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVhY2hTZXJpZXMoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBlYWNoTGltaXQkMihjb2xsLCAxLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBlYWNoU2VyaWVzJDEgPSBhd2FpdGlmeShlYWNoU2VyaWVzLCAzKTtcblxuICAgIC8qKlxuICAgICAqIFdyYXAgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIGVuc3VyZSBpdCBjYWxscyBpdHMgY2FsbGJhY2sgb24gYSBsYXRlciB0aWNrIG9mXG4gICAgICogdGhlIGV2ZW50IGxvb3AuICBJZiB0aGUgZnVuY3Rpb24gYWxyZWFkeSBjYWxscyBpdHMgY2FsbGJhY2sgb24gYSBuZXh0IHRpY2ssXG4gICAgICogbm8gZXh0cmEgZGVmZXJyYWwgaXMgYWRkZWQuIFRoaXMgaXMgdXNlZnVsIGZvciBwcmV2ZW50aW5nIHN0YWNrIG92ZXJmbG93c1xuICAgICAqIChgUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRgKSBhbmQgZ2VuZXJhbGx5IGtlZXBpbmdcbiAgICAgKiBbWmFsZ29dKGh0dHA6Ly9ibG9nLml6cy5tZS9wb3N0LzU5MTQyNzQyMTQzL2Rlc2lnbmluZy1hcGlzLWZvci1hc3luY2hyb255KVxuICAgICAqIGNvbnRhaW5lZC4gRVMyMDE3IGBhc3luY2AgZnVuY3Rpb25zIGFyZSByZXR1cm5lZCBhcy1pcyAtLSB0aGV5IGFyZSBpbW11bmVcbiAgICAgKiB0byBaYWxnbydzIGNvcnJ1cHRpbmcgaW5mbHVlbmNlcywgYXMgdGhleSBhbHdheXMgcmVzb2x2ZSBvbiBhIGxhdGVyIHRpY2suXG4gICAgICpcbiAgICAgKiBAbmFtZSBlbnN1cmVBc3luY1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOlV0aWxzXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBmbiAtIGFuIGFzeW5jIGZ1bmN0aW9uLCBvbmUgdGhhdCBleHBlY3RzIGEgbm9kZS1zdHlsZVxuICAgICAqIGNhbGxiYWNrIGFzIGl0cyBsYXN0IGFyZ3VtZW50LlxuICAgICAqIEByZXR1cm5zIHtBc3luY0Z1bmN0aW9ufSBSZXR1cm5zIGEgd3JhcHBlZCBmdW5jdGlvbiB3aXRoIHRoZSBleGFjdCBzYW1lIGNhbGxcbiAgICAgKiBzaWduYXR1cmUgYXMgdGhlIGZ1bmN0aW9uIHBhc3NlZCBpbi5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogZnVuY3Rpb24gc29tZXRpbWVzQXN5bmMoYXJnLCBjYWxsYmFjaykge1xuICAgICAqICAgICBpZiAoY2FjaGVbYXJnXSkge1xuICAgICAqICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIGNhY2hlW2FyZ10pOyAvLyB0aGlzIHdvdWxkIGJlIHN5bmNocm9ub3VzISFcbiAgICAgKiAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIGRvU29tZUlPKGFyZywgY2FsbGJhY2spOyAvLyB0aGlzIElPIHdvdWxkIGJlIGFzeW5jaHJvbm91c1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gdGhpcyBoYXMgYSByaXNrIG9mIHN0YWNrIG92ZXJmbG93cyBpZiBtYW55IHJlc3VsdHMgYXJlIGNhY2hlZCBpbiBhIHJvd1xuICAgICAqIGFzeW5jLm1hcFNlcmllcyhhcmdzLCBzb21ldGltZXNBc3luYywgZG9uZSk7XG4gICAgICpcbiAgICAgKiAvLyB0aGlzIHdpbGwgZGVmZXIgc29tZXRpbWVzQXN5bmMncyBjYWxsYmFjayBpZiBuZWNlc3NhcnksXG4gICAgICogLy8gcHJldmVudGluZyBzdGFjayBvdmVyZmxvd3NcbiAgICAgKiBhc3luYy5tYXBTZXJpZXMoYXJncywgYXN5bmMuZW5zdXJlQXN5bmMoc29tZXRpbWVzQXN5bmMpLCBkb25lKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlbnN1cmVBc3luYyhmbikge1xuICAgICAgICBpZiAoaXNBc3luYyhmbikpIHJldHVybiBmbjtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzLyosIGNhbGxiYWNrKi8pIHtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3MucG9wKCk7XG4gICAgICAgICAgICB2YXIgc3luYyA9IHRydWU7XG4gICAgICAgICAgICBhcmdzLnB1c2goKC4uLmlubmVyQXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzeW5jKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEltbWVkaWF0ZSQxKCgpID0+IGNhbGxiYWNrKC4uLmlubmVyQXJncykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKC4uLmlubmVyQXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgICAgIHN5bmMgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBldmVyeSBlbGVtZW50IGluIGBjb2xsYCBzYXRpc2ZpZXMgYW4gYXN5bmMgdGVzdC4gSWYgYW55XG4gICAgICogaXRlcmF0ZWUgY2FsbCByZXR1cm5zIGBmYWxzZWAsIHRoZSBtYWluIGBjYWxsYmFja2AgaXMgaW1tZWRpYXRlbHkgY2FsbGVkLlxuICAgICAqXG4gICAgICogQG5hbWUgZXZlcnlcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAYWxpYXMgYWxsXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW1cbiAgICAgKiBpbiB0aGUgY29sbGVjdGlvbiBpbiBwYXJhbGxlbC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgbXVzdCBjb21wbGV0ZSB3aXRoIGEgYm9vbGVhbiByZXN1bHQgdmFsdWUuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIGFsbCB0aGVcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLiBSZXN1bHQgd2lsbCBiZSBlaXRoZXIgYHRydWVgIG9yIGBmYWxzZWBcbiAgICAgKiBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZiB0aGUgYXN5bmMgdGVzdHMuIEludm9rZWQgd2l0aCAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIHByb3ZpZGVkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGRpcjEgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlMS50eHQsIGZpbGUyLnR4dFxuICAgICAqIC8vIGRpcjIgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlMy50eHQsIGZpbGU0LnR4dFxuICAgICAqIC8vIGRpcjMgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBmaWxlNS50eHRcbiAgICAgKiAvLyBkaXI0IGRvZXMgbm90IGV4aXN0XG4gICAgICpcbiAgICAgKiBjb25zdCBmaWxlTGlzdCA9IFsnZGlyMS9maWxlMS50eHQnLCdkaXIyL2ZpbGUzLnR4dCcsJ2RpcjMvZmlsZTUudHh0J107XG4gICAgICogY29uc3Qgd2l0aE1pc3NpbmdGaWxlTGlzdCA9IFsnZmlsZTEudHh0JywnZmlsZTIudHh0JywnZmlsZTQudHh0J107XG4gICAgICpcbiAgICAgKiAvLyBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgYSBmaWxlIGV4aXN0c1xuICAgICAqIGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICBmcy5hY2Nlc3MoZmlsZSwgZnMuY29uc3RhbnRzLkZfT0ssIChlcnIpID0+IHtcbiAgICAgKiAgICAgICAgY2FsbGJhY2sobnVsbCwgIWVycik7XG4gICAgICogICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gVXNpbmcgY2FsbGJhY2tzXG4gICAgICogYXN5bmMuZXZlcnkoZmlsZUxpc3QsIGZpbGVFeGlzdHMsIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIHRydWVcbiAgICAgKiAgICAgLy8gcmVzdWx0IGlzIHRydWUgc2luY2UgZXZlcnkgZmlsZSBleGlzdHNcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGFzeW5jLmV2ZXJ5KHdpdGhNaXNzaW5nRmlsZUxpc3QsIGZpbGVFeGlzdHMsIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIGZhbHNlXG4gICAgICogICAgIC8vIHJlc3VsdCBpcyBmYWxzZSBzaW5jZSBOT1QgZXZlcnkgZmlsZSBleGlzdHNcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIFByb21pc2VzXG4gICAgICogYXN5bmMuZXZlcnkoZmlsZUxpc3QsIGZpbGVFeGlzdHMpXG4gICAgICogLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIHRydWVcbiAgICAgKiAgICAgLy8gcmVzdWx0IGlzIHRydWUgc2luY2UgZXZlcnkgZmlsZSBleGlzdHNcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIGFzeW5jLmV2ZXJ5KHdpdGhNaXNzaW5nRmlsZUxpc3QsIGZpbGVFeGlzdHMpXG4gICAgICogLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIGZhbHNlXG4gICAgICogICAgIC8vIHJlc3VsdCBpcyBmYWxzZSBzaW5jZSBOT1QgZXZlcnkgZmlsZSBleGlzdHNcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGFzeW5jLmV2ZXJ5KGZpbGVMaXN0LCBmaWxlRXhpc3RzKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgICAgICAvLyB0cnVlXG4gICAgICogICAgICAgICAvLyByZXN1bHQgaXMgdHJ1ZSBzaW5jZSBldmVyeSBmaWxlIGV4aXN0c1xuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMuZXZlcnkod2l0aE1pc3NpbmdGaWxlTGlzdCwgZmlsZUV4aXN0cyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8gZmFsc2VcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdCBpcyBmYWxzZSBzaW5jZSBOT1QgZXZlcnkgZmlsZSBleGlzdHNcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gZXZlcnkoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfY3JlYXRlVGVzdGVyKGJvb2wgPT4gIWJvb2wsIHJlcyA9PiAhcmVzKShlYWNoT2YkMSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgZXZlcnkkMSA9IGF3YWl0aWZ5KGV2ZXJ5LCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZXZlcnlgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZXZlcnl9IGJ1dCBydW5zIGEgbWF4aW11bSBvZiBgbGltaXRgIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqXG4gICAgICogQG5hbWUgZXZlcnlMaW1pdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmV2ZXJ5XXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZXZlcnl9XG4gICAgICogQGFsaWFzIGFsbExpbWl0XG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIHRydXRoIHRlc3QgdG8gYXBwbHkgdG8gZWFjaCBpdGVtXG4gICAgICogaW4gdGhlIGNvbGxlY3Rpb24gaW4gcGFyYWxsZWwuXG4gICAgICogVGhlIGl0ZXJhdGVlIG11c3QgY29tcGxldGUgd2l0aCBhIGJvb2xlYW4gcmVzdWx0IHZhbHVlLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC4gUmVzdWx0IHdpbGwgYmUgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgXG4gICAgICogZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZXMgb2YgdGhlIGFzeW5jIHRlc3RzLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0KS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBwcm92aWRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV2ZXJ5TGltaXQoY29sbCwgbGltaXQsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2NyZWF0ZVRlc3Rlcihib29sID0+ICFib29sLCByZXMgPT4gIXJlcykoZWFjaE9mTGltaXQobGltaXQpLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBldmVyeUxpbWl0JDEgPSBhd2FpdGlmeShldmVyeUxpbWl0LCA0KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZXZlcnlgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZXZlcnl9IGJ1dCBydW5zIG9ubHkgYSBzaW5nbGUgYXN5bmMgb3BlcmF0aW9uIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGV2ZXJ5U2VyaWVzXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuZXZlcnlde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5ldmVyeX1cbiAgICAgKiBAYWxpYXMgYWxsU2VyaWVzXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW1cbiAgICAgKiBpbiB0aGUgY29sbGVjdGlvbiBpbiBzZXJpZXMuXG4gICAgICogVGhlIGl0ZXJhdGVlIG11c3QgY29tcGxldGUgd2l0aCBhIGJvb2xlYW4gcmVzdWx0IHZhbHVlLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC4gUmVzdWx0IHdpbGwgYmUgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgXG4gICAgICogZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZXMgb2YgdGhlIGFzeW5jIHRlc3RzLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0KS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBwcm92aWRlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV2ZXJ5U2VyaWVzKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2NyZWF0ZVRlc3Rlcihib29sID0+ICFib29sLCByZXMgPT4gIXJlcykoZWFjaE9mU2VyaWVzJDEsIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIGV2ZXJ5U2VyaWVzJDEgPSBhd2FpdGlmeShldmVyeVNlcmllcywgMyk7XG5cbiAgICBmdW5jdGlvbiBmaWx0ZXJBcnJheShlYWNoZm4sIGFyciwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciB0cnV0aFZhbHVlcyA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgICAgICAgZWFjaGZuKGFyciwgKHgsIGluZGV4LCBpdGVyQ2IpID0+IHtcbiAgICAgICAgICAgIGl0ZXJhdGVlKHgsIChlcnIsIHYpID0+IHtcbiAgICAgICAgICAgICAgICB0cnV0aFZhbHVlc1tpbmRleF0gPSAhIXY7XG4gICAgICAgICAgICAgICAgaXRlckNiKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRydXRoVmFsdWVzW2ldKSByZXN1bHRzLnB1c2goYXJyW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHJlc3VsdHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaWx0ZXJHZW5lcmljKGVhY2hmbiwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciByZXN1bHRzID0gW107XG4gICAgICAgIGVhY2hmbihjb2xsLCAoeCwgaW5kZXgsIGl0ZXJDYikgPT4ge1xuICAgICAgICAgICAgaXRlcmF0ZWUoeCwgKGVyciwgdikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBpdGVyQ2IoZXJyKTtcbiAgICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goe2luZGV4LCB2YWx1ZTogeH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpdGVyQ2IoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHRzXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KVxuICAgICAgICAgICAgICAgIC5tYXAodiA9PiB2LnZhbHVlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIF9maWx0ZXIoZWFjaGZuLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZpbHRlciA9IGlzQXJyYXlMaWtlKGNvbGwpID8gZmlsdGVyQXJyYXkgOiBmaWx0ZXJHZW5lcmljO1xuICAgICAgICByZXR1cm4gZmlsdGVyKGVhY2hmbiwgY29sbCwgd3JhcEFzeW5jKGl0ZXJhdGVlKSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBuZXcgYXJyYXkgb2YgYWxsIHRoZSB2YWx1ZXMgaW4gYGNvbGxgIHdoaWNoIHBhc3MgYW4gYXN5bmMgdHJ1dGhcbiAgICAgKiB0ZXN0LiBUaGlzIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgaW4gcGFyYWxsZWwsIGJ1dCB0aGUgcmVzdWx0cyBhcnJheSB3aWxsIGJlXG4gICAgICogaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIG9yaWdpbmFsLlxuICAgICAqXG4gICAgICogQG5hbWUgZmlsdGVyXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGFsaWFzIHNlbGVjdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBIHRydXRoIHRlc3QgdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluIGBjb2xsYC5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBpcyBwYXNzZWQgYSBgY2FsbGJhY2soZXJyLCB0cnV0aFZhbHVlKWAsIHdoaWNoIG11c3QgYmUgY2FsbGVkXG4gICAgICogd2l0aCBhIGJvb2xlYW4gYXJndW1lbnQgb25jZSBpdCBoYXMgY29tcGxldGVkLiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHRoZVxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQuIEludm9rZWQgd2l0aCAoZXJyLCByZXN1bHRzKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBwcm92aWRlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBkaXIxIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTEudHh0LCBmaWxlMi50eHRcbiAgICAgKiAvLyBkaXIyIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTMudHh0LCBmaWxlNC50eHRcbiAgICAgKiAvLyBkaXIzIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgZmlsZTUudHh0XG4gICAgICpcbiAgICAgKiBjb25zdCBmaWxlcyA9IFsnZGlyMS9maWxlMS50eHQnLCdkaXIyL2ZpbGUzLnR4dCcsJ2RpcjMvZmlsZTYudHh0J107XG4gICAgICpcbiAgICAgKiAvLyBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBjaGVja3MgaWYgYSBmaWxlIGV4aXN0c1xuICAgICAqIGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICBmcy5hY2Nlc3MoZmlsZSwgZnMuY29uc3RhbnRzLkZfT0ssIChlcnIpID0+IHtcbiAgICAgKiAgICAgICAgY2FsbGJhY2sobnVsbCwgIWVycik7XG4gICAgICogICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gVXNpbmcgY2FsbGJhY2tzXG4gICAgICogYXN5bmMuZmlsdGVyKGZpbGVzLCBmaWxlRXhpc3RzLCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICBpZihlcnIpIHtcbiAgICAgKiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgLy8gWyAnZGlyMS9maWxlMS50eHQnLCAnZGlyMi9maWxlMy50eHQnIF1cbiAgICAgKiAgICAgICAgLy8gcmVzdWx0cyBpcyBub3cgYW4gYXJyYXkgb2YgdGhlIGV4aXN0aW5nIGZpbGVzXG4gICAgICogICAgfVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5maWx0ZXIoZmlsZXMsIGZpbGVFeGlzdHMpXG4gICAgICogLnRoZW4ocmVzdWx0cyA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAvLyBbICdkaXIxL2ZpbGUxLnR4dCcsICdkaXIyL2ZpbGUzLnR4dCcgXVxuICAgICAqICAgICAvLyByZXN1bHRzIGlzIG5vdyBhbiBhcnJheSBvZiB0aGUgZXhpc3RpbmcgZmlsZXNcbiAgICAgKiB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IGFzeW5jLmZpbHRlcihmaWxlcywgZmlsZUV4aXN0cyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIFsgJ2RpcjEvZmlsZTEudHh0JywgJ2RpcjIvZmlsZTMudHh0JyBdXG4gICAgICogICAgICAgICAvLyByZXN1bHRzIGlzIG5vdyBhbiBhcnJheSBvZiB0aGUgZXhpc3RpbmcgZmlsZXNcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gZmlsdGVyIChjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIF9maWx0ZXIoZWFjaE9mJDEsIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIGZpbHRlciQxID0gYXdhaXRpZnkoZmlsdGVyLCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgZmlsdGVyYF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmZpbHRlcn0gYnV0IHJ1bnMgYSBtYXhpbXVtIG9mIGBsaW1pdGAgYXN5bmMgb3BlcmF0aW9ucyBhdCBhXG4gICAgICogdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGZpbHRlckxpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuZmlsdGVyXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZmlsdGVyfVxuICAgICAqIEBhbGlhcyBzZWxlY3RMaW1pdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIC0gQSB0cnV0aCB0ZXN0IHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpbiBgY29sbGAuXG4gICAgICogVGhlIGBpdGVyYXRlZWAgaXMgcGFzc2VkIGEgYGNhbGxiYWNrKGVyciwgdHJ1dGhWYWx1ZSlgLCB3aGljaCBtdXN0IGJlIGNhbGxlZFxuICAgICAqIHdpdGggYSBib29sZWFuIGFyZ3VtZW50IG9uY2UgaXQgaGFzIGNvbXBsZXRlZC4gSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIGFsbCB0aGVcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWx0ZXJMaW1pdCAoY29sbCwgbGltaXQsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2ZpbHRlcihlYWNoT2ZMaW1pdChsaW1pdCksIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIGZpbHRlckxpbWl0JDEgPSBhd2FpdGlmeShmaWx0ZXJMaW1pdCwgNCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYGZpbHRlcmBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5maWx0ZXJ9IGJ1dCBydW5zIG9ubHkgYSBzaW5nbGUgYXN5bmMgb3BlcmF0aW9uIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGZpbHRlclNlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmZpbHRlcl17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLmZpbHRlcn1cbiAgICAgKiBAYWxpYXMgc2VsZWN0U2VyaWVzXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW4gYGNvbGxgLlxuICAgICAqIFRoZSBgaXRlcmF0ZWVgIGlzIHBhc3NlZCBhIGBjYWxsYmFjayhlcnIsIHRydXRoVmFsdWUpYCwgd2hpY2ggbXVzdCBiZSBjYWxsZWRcbiAgICAgKiB3aXRoIGEgYm9vbGVhbiBhcmd1bWVudCBvbmNlIGl0IGhhcyBjb21wbGV0ZWQuIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdHMpXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmaWx0ZXJTZXJpZXMgKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2ZpbHRlcihlYWNoT2ZTZXJpZXMkMSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgZmlsdGVyU2VyaWVzJDEgPSBhd2FpdGlmeShmaWx0ZXJTZXJpZXMsIDMpO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBgZm5gIHdpdGggYSBjYWxsYmFjayBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgaXRcbiAgICAgKiB0byBjYWxsIGl0c2VsZiBhZ2FpbiwgaW4gc2VyaWVzLCBpbmRlZmluaXRlbHkuXG5cbiAgICAgKiBJZiBhbiBlcnJvciBpcyBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIHRoZW4gYGVycmJhY2tgIGlzIGNhbGxlZCB3aXRoIHRoZVxuICAgICAqIGVycm9yLCBhbmQgZXhlY3V0aW9uIHN0b3BzLCBvdGhlcndpc2UgaXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuXG4gICAgICpcbiAgICAgKiBAbmFtZSBmb3JldmVyXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gZm4gLSBhbiBhc3luYyBmdW5jdGlvbiB0byBjYWxsIHJlcGVhdGVkbHkuXG4gICAgICogSW52b2tlZCB3aXRoIChuZXh0KS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbZXJyYmFja10gLSB3aGVuIGBmbmAgcGFzc2VzIGFuIGVycm9yIHRvIGl0J3MgY2FsbGJhY2ssXG4gICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCwgYW5kIGV4ZWN1dGlvbiBzdG9wcy4gSW52b2tlZCB3aXRoIChlcnIpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UgdGhhdCByZWplY3RzIGlmIGFuIGVycm9yIG9jY3VycyBhbmQgYW4gZXJyYmFja1xuICAgICAqIGlzIG5vdCBwYXNzZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogYXN5bmMuZm9yZXZlcihcbiAgICAgKiAgICAgZnVuY3Rpb24obmV4dCkge1xuICAgICAqICAgICAgICAgLy8gbmV4dCBpcyBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byB0aGluZ3MgdGhhdCBuZWVkIGEgY2FsbGJhY2soZXJyIFssIHdoYXRldmVyXSk7XG4gICAgICogICAgICAgICAvLyBpdCB3aWxsIHJlc3VsdCBpbiB0aGlzIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBhZ2Fpbi5cbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgICAgICAvLyBpZiBuZXh0IGlzIGNhbGxlZCB3aXRoIGEgdmFsdWUgaW4gaXRzIGZpcnN0IHBhcmFtZXRlciwgaXQgd2lsbCBhcHBlYXJcbiAgICAgKiAgICAgICAgIC8vIGluIGhlcmUgYXMgJ2VycicsIGFuZCBleGVjdXRpb24gd2lsbCBzdG9wLlxuICAgICAqICAgICB9XG4gICAgICogKTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JldmVyKGZuLCBlcnJiYWNrKSB7XG4gICAgICAgIHZhciBkb25lID0gb25seU9uY2UoZXJyYmFjayk7XG4gICAgICAgIHZhciB0YXNrID0gd3JhcEFzeW5jKGVuc3VyZUFzeW5jKGZuKSk7XG5cbiAgICAgICAgZnVuY3Rpb24gbmV4dChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBkb25lKGVycik7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuO1xuICAgICAgICAgICAgdGFzayhuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgIH1cbiAgICB2YXIgZm9yZXZlciQxID0gYXdhaXRpZnkoZm9yZXZlciwgMik7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYGdyb3VwQnlgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZ3JvdXBCeX0gYnV0IHJ1bnMgYSBtYXhpbXVtIG9mIGBsaW1pdGAgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBncm91cEJ5TGltaXRcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5ncm91cEJ5XXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZ3JvdXBCeX1cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW1pdCAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBpdGVtIGluXG4gICAgICogYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBzaG91bGQgY29tcGxldGUgd2l0aCBhIGBrZXlgIHRvIGdyb3VwIHRoZSB2YWx1ZSB1bmRlci5cbiAgICAgKiBJbnZva2VkIHdpdGggKHZhbHVlLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gYWxsIGBpdGVyYXRlZWBcbiAgICAgKiBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBSZXN1bHQgaXMgYW4gYE9iamVjdGAgd2hvc2VzXG4gICAgICogcHJvcGVydGllcyBhcmUgYXJyYXlzIG9mIHZhbHVlcyB3aGljaCByZXR1cm5lZCB0aGUgY29ycmVzcG9uZGluZyBrZXkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ3JvdXBCeUxpbWl0KGNvbGwsIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF9pdGVyYXRlZSA9IHdyYXBBc3luYyhpdGVyYXRlZSk7XG4gICAgICAgIHJldHVybiBtYXBMaW1pdCQxKGNvbGwsIGxpbWl0LCAodmFsLCBpdGVyQ2IpID0+IHtcbiAgICAgICAgICAgIF9pdGVyYXRlZSh2YWwsIChlcnIsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBpdGVyQ2IoZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlckNiKGVyciwge2tleSwgdmFsfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgKGVyciwgbWFwUmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgLy8gZnJvbSBNRE4sIGhhbmRsZSBvYmplY3QgaGF2aW5nIGFuIGBoYXNPd25Qcm9wZXJ0eWAgcHJvcFxuICAgICAgICAgICAgdmFyIHtoYXNPd25Qcm9wZXJ0eX0gPSBPYmplY3QucHJvdG90eXBlO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcFJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwUmVzdWx0c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIge2tleX0gPSBtYXBSZXN1bHRzW2ldO1xuICAgICAgICAgICAgICAgICAgICB2YXIge3ZhbH0gPSBtYXBSZXN1bHRzW2ldO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHJlc3VsdCwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVyciwgcmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIGdyb3VwQnlMaW1pdCQxID0gYXdhaXRpZnkoZ3JvdXBCeUxpbWl0LCA0KTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBuZXcgb2JqZWN0LCB3aGVyZSBlYWNoIHZhbHVlIGNvcnJlc3BvbmRzIHRvIGFuIGFycmF5IG9mIGl0ZW1zLCBmcm9tXG4gICAgICogYGNvbGxgLCB0aGF0IHJldHVybmVkIHRoZSBjb3JyZXNwb25kaW5nIGtleS4gVGhhdCBpcywgdGhlIGtleXMgb2YgdGhlIG9iamVjdFxuICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIHZhbHVlcyBwYXNzZWQgdG8gdGhlIGBpdGVyYXRlZWAgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiBOb3RlOiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGFwcGxpZXMgdGhlIGBpdGVyYXRlZWAgdG8gZWFjaCBpdGVtIGluIHBhcmFsbGVsLFxuICAgICAqIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyB3aWxsIGNvbXBsZXRlIGluIG9yZGVyLlxuICAgICAqIEhvd2V2ZXIsIHRoZSB2YWx1ZXMgZm9yIGVhY2gga2V5IGluIHRoZSBgcmVzdWx0YCB3aWxsIGJlIGluIHRoZSBzYW1lIG9yZGVyIGFzXG4gICAgICogdGhlIG9yaWdpbmFsIGBjb2xsYC4gRm9yIE9iamVjdHMsIHRoZSB2YWx1ZXMgd2lsbCByb3VnaGx5IGJlIGluIHRoZSBvcmRlciBvZlxuICAgICAqIHRoZSBvcmlnaW5hbCBPYmplY3RzJyBrZXlzIChidXQgdGhpcyBjYW4gdmFyeSBhY3Jvc3MgSmF2YVNjcmlwdCBlbmdpbmVzKS5cbiAgICAgKlxuICAgICAqIEBuYW1lIGdyb3VwQnlcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW5cbiAgICAgKiBgY29sbGAuXG4gICAgICogVGhlIGl0ZXJhdGVlIHNob3VsZCBjb21wbGV0ZSB3aXRoIGEgYGtleWAgdG8gZ3JvdXAgdGhlIHZhbHVlIHVuZGVyLlxuICAgICAqIEludm9rZWQgd2l0aCAodmFsdWUsIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGwgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIFJlc3VsdCBpcyBhbiBgT2JqZWN0YCB3aG9zZXNcbiAgICAgKiBwcm9wZXJ0aWVzIGFyZSBhcnJheXMgb2YgdmFsdWVzIHdoaWNoIHJldHVybmVkIHRoZSBjb3JyZXNwb25kaW5nIGtleS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBpcyBwYXNzZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZGlyMSBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUxLnR4dCwgZmlsZTIudHh0XG4gICAgICogLy8gZGlyMiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUzLnR4dCwgZmlsZTQudHh0XG4gICAgICogLy8gZGlyMyBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGU1LnR4dFxuICAgICAqIC8vIGRpcjQgZG9lcyBub3QgZXhpc3RcbiAgICAgKlxuICAgICAqIGNvbnN0IGZpbGVzID0gWydkaXIxL2ZpbGUxLnR4dCcsJ2RpcjInLCdkaXI0J11cbiAgICAgKlxuICAgICAqIC8vIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IGRldGVjdHMgZmlsZSB0eXBlIGFzIG5vbmUsIGZpbGUsIG9yIGRpcmVjdG9yeVxuICAgICAqIGZ1bmN0aW9uIGRldGVjdEZpbGUoZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZnMuc3RhdChmaWxlLCBmdW5jdGlvbihlcnIsIHN0YXQpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwgJ25vbmUnKTtcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIHN0YXQuaXNEaXJlY3RvcnkoKSA/ICdkaXJlY3RvcnknIDogJ2ZpbGUnKTtcbiAgICAgKiAgICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy9Vc2luZyBjYWxsYmFja3NcbiAgICAgKiBhc3luYy5ncm91cEJ5KGZpbGVzLCBkZXRlY3RGaWxlLCBmdW5jdGlvbihlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICBpZihlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH0gZWxzZSB7XG4gICAgICpcdCAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8ge1xuICAgICAqICAgICAgICAgLy8gICAgIGZpbGU6IFsgJ2RpcjEvZmlsZTEudHh0JyBdLFxuICAgICAqICAgICAgICAgLy8gICAgIG5vbmU6IFsgJ2RpcjQnIF0sXG4gICAgICogICAgICAgICAvLyAgICAgZGlyZWN0b3J5OiBbICdkaXIyJ11cbiAgICAgKiAgICAgICAgIC8vIH1cbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdCBpcyBvYmplY3QgY29udGFpbmluZyB0aGUgZmlsZXMgZ3JvdXBlZCBieSB0eXBlXG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIFByb21pc2VzXG4gICAgICogYXN5bmMuZ3JvdXBCeShmaWxlcywgZGV0ZWN0RmlsZSlcbiAgICAgKiAudGhlbiggcmVzdWx0ID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgLy8ge1xuICAgICAqICAgICAvLyAgICAgZmlsZTogWyAnZGlyMS9maWxlMS50eHQnIF0sXG4gICAgICogICAgIC8vICAgICBub25lOiBbICdkaXI0JyBdLFxuICAgICAqICAgICAvLyAgICAgZGlyZWN0b3J5OiBbICdkaXIyJ11cbiAgICAgKiAgICAgLy8gfVxuICAgICAqICAgICAvLyByZXN1bHQgaXMgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbGVzIGdyb3VwZWQgYnkgdHlwZVxuICAgICAqIH0pLmNhdGNoKCBlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMuZ3JvdXBCeShmaWxlcywgZGV0ZWN0RmlsZSk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8ge1xuICAgICAqICAgICAgICAgLy8gICAgIGZpbGU6IFsgJ2RpcjEvZmlsZTEudHh0JyBdLFxuICAgICAqICAgICAgICAgLy8gICAgIG5vbmU6IFsgJ2RpcjQnIF0sXG4gICAgICogICAgICAgICAvLyAgICAgZGlyZWN0b3J5OiBbICdkaXIyJ11cbiAgICAgKiAgICAgICAgIC8vIH1cbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdCBpcyBvYmplY3QgY29udGFpbmluZyB0aGUgZmlsZXMgZ3JvdXBlZCBieSB0eXBlXG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdyb3VwQnkgKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gZ3JvdXBCeUxpbWl0JDEoY29sbCwgSW5maW5pdHksIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYGdyb3VwQnlgXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZ3JvdXBCeX0gYnV0IHJ1bnMgb25seSBhIHNpbmdsZSBhc3luYyBvcGVyYXRpb24gYXQgYSB0aW1lLlxuICAgICAqXG4gICAgICogQG5hbWUgZ3JvdXBCeVNlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLmdyb3VwQnlde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5ncm91cEJ5fVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpblxuICAgICAqIGBjb2xsYC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSBga2V5YCB0byBncm91cCB0aGUgdmFsdWUgdW5kZXIuXG4gICAgICogSW52b2tlZCB3aXRoICh2YWx1ZSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGFsbCBgaXRlcmF0ZWVgXG4gICAgICogZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQsIG9yIGFuIGVycm9yIG9jY3Vycy4gUmVzdWx0IGlzIGFuIGBPYmplY3RgIHdob3NlXG4gICAgICogcHJvcGVydGllcyBhcmUgYXJyYXlzIG9mIHZhbHVlcyB3aGljaCByZXR1cm5lZCB0aGUgY29ycmVzcG9uZGluZyBrZXkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ3JvdXBCeVNlcmllcyAoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBncm91cEJ5TGltaXQkMShjb2xsLCAxLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9ncyB0aGUgcmVzdWx0IG9mIGFuIGBhc3luY2AgZnVuY3Rpb24gdG8gdGhlIGBjb25zb2xlYC4gT25seSB3b3JrcyBpblxuICAgICAqIE5vZGUuanMgb3IgaW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGBjb25zb2xlLmxvZ2AgYW5kIGBjb25zb2xlLmVycm9yYCAoc3VjaFxuICAgICAqIGFzIEZGIGFuZCBDaHJvbWUpLiBJZiBtdWx0aXBsZSBhcmd1bWVudHMgYXJlIHJldHVybmVkIGZyb20gdGhlIGFzeW5jXG4gICAgICogZnVuY3Rpb24sIGBjb25zb2xlLmxvZ2AgaXMgY2FsbGVkIG9uIGVhY2ggYXJndW1lbnQgaW4gb3JkZXIuXG4gICAgICpcbiAgICAgKiBAbmFtZSBsb2dcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpVdGlsc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gZnVuY3Rpb24gLSBUaGUgZnVuY3Rpb24geW91IHdhbnQgdG8gZXZlbnR1YWxseSBhcHBseVxuICAgICAqIGFsbCBhcmd1bWVudHMgdG8uXG4gICAgICogQHBhcmFtIHsuLi4qfSBhcmd1bWVudHMuLi4gLSBBbnkgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBhcHBseSB0byB0aGUgZnVuY3Rpb24uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGluIGEgbW9kdWxlXG4gICAgICogdmFyIGhlbGxvID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdoZWxsbyAnICsgbmFtZSk7XG4gICAgICogICAgIH0sIDEwMDApO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiAvLyBpbiB0aGUgbm9kZSByZXBsXG4gICAgICogbm9kZT4gYXN5bmMubG9nKGhlbGxvLCAnd29ybGQnKTtcbiAgICAgKiAnaGVsbG8gd29ybGQnXG4gICAgICovXG4gICAgdmFyIGxvZyA9IGNvbnNvbGVGdW5jKCdsb2cnKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgbWFwVmFsdWVzYF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLm1hcFZhbHVlc30gYnV0IHJ1bnMgYSBtYXhpbXVtIG9mIGBsaW1pdGAgYXN5bmMgb3BlcmF0aW9ucyBhdCBhXG4gICAgICogdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIG1hcFZhbHVlc0xpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMubWFwVmFsdWVzXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMubWFwVmFsdWVzfVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggdmFsdWUgYW5kIGtleVxuICAgICAqIGluIGBjb2xsYC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggdGhlIHRyYW5zZm9ybWVkIHZhbHVlIGFzIGl0cyByZXN1bHQuXG4gICAgICogSW52b2tlZCB3aXRoICh2YWx1ZSwga2V5LCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gYWxsIGBpdGVyYXRlZWBcbiAgICAgKiBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBgcmVzdWx0YCBpcyBhIG5ldyBvYmplY3QgY29uc2lzdGluZ1xuICAgICAqIG9mIGVhY2gga2V5IGZyb20gYG9iamAsIHdpdGggZWFjaCB0cmFuc2Zvcm1lZCB2YWx1ZSBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlLlxuICAgICAqIEludm9rZWQgd2l0aCAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG1hcFZhbHVlc0xpbWl0KG9iaiwgbGltaXQsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spO1xuICAgICAgICB2YXIgbmV3T2JqID0ge307XG4gICAgICAgIHZhciBfaXRlcmF0ZWUgPSB3cmFwQXN5bmMoaXRlcmF0ZWUpO1xuICAgICAgICByZXR1cm4gZWFjaE9mTGltaXQobGltaXQpKG9iaiwgKHZhbCwga2V5LCBuZXh0KSA9PiB7XG4gICAgICAgICAgICBfaXRlcmF0ZWUodmFsLCBrZXksIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgbmV4dChlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVyciA9PiBjYWxsYmFjayhlcnIsIG5ld09iaikpO1xuICAgIH1cblxuICAgIHZhciBtYXBWYWx1ZXNMaW1pdCQxID0gYXdhaXRpZnkobWFwVmFsdWVzTGltaXQsIDQpO1xuXG4gICAgLyoqXG4gICAgICogQSByZWxhdGl2ZSBvZiBbYG1hcGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5tYXB9LCBkZXNpZ25lZCBmb3IgdXNlIHdpdGggb2JqZWN0cy5cbiAgICAgKlxuICAgICAqIFByb2R1Y2VzIGEgbmV3IE9iamVjdCBieSBtYXBwaW5nIGVhY2ggdmFsdWUgb2YgYG9iamAgdGhyb3VnaCB0aGUgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9uLiBUaGUgYGl0ZXJhdGVlYCBpcyBjYWxsZWQgZWFjaCBgdmFsdWVgIGFuZCBga2V5YCBmcm9tIGBvYmpgIGFuZCBhXG4gICAgICogY2FsbGJhY2sgZm9yIHdoZW4gaXQgaGFzIGZpbmlzaGVkIHByb2Nlc3NpbmcuIEVhY2ggb2YgdGhlc2UgY2FsbGJhY2tzIHRha2VzXG4gICAgICogdHdvIGFyZ3VtZW50czogYW4gYGVycm9yYCwgYW5kIHRoZSB0cmFuc2Zvcm1lZCBpdGVtIGZyb20gYG9iamAuIElmIGBpdGVyYXRlZWBcbiAgICAgKiBwYXNzZXMgYW4gZXJyb3IgdG8gaXRzIGNhbGxiYWNrLCB0aGUgbWFpbiBgY2FsbGJhY2tgIChmb3IgdGhlIGBtYXBWYWx1ZXNgXG4gICAgICogZnVuY3Rpb24pIGlzIGltbWVkaWF0ZWx5IGNhbGxlZCB3aXRoIHRoZSBlcnJvci5cbiAgICAgKlxuICAgICAqIE5vdGUsIHRoZSBvcmRlciBvZiB0aGUga2V5cyBpbiB0aGUgcmVzdWx0IGlzIG5vdCBndWFyYW50ZWVkLiAgVGhlIGtleXMgd2lsbFxuICAgICAqIGJlIHJvdWdobHkgaW4gdGhlIG9yZGVyIHRoZXkgY29tcGxldGUsIChidXQgdGhpcyBpcyB2ZXJ5IGVuZ2luZS1zcGVjaWZpYylcbiAgICAgKlxuICAgICAqIEBuYW1lIG1hcFZhbHVlc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB2YWx1ZSBhbmQga2V5XG4gICAgICogaW4gYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgdHJhbnNmb3JtZWQgdmFsdWUgYXMgaXRzIHJlc3VsdC5cbiAgICAgKiBJbnZva2VkIHdpdGggKHZhbHVlLCBrZXksIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGwgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIGByZXN1bHRgIGlzIGEgbmV3IG9iamVjdCBjb25zaXN0aW5nXG4gICAgICogb2YgZWFjaCBrZXkgZnJvbSBgb2JqYCwgd2l0aCBlYWNoIHRyYW5zZm9ybWVkIHZhbHVlIG9uIHRoZSByaWdodC1oYW5kIHNpZGUuXG4gICAgICogSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGZpbGUxLnR4dCBpcyBhIGZpbGUgdGhhdCBpcyAxMDAwIGJ5dGVzIGluIHNpemVcbiAgICAgKiAvLyBmaWxlMi50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMjAwMCBieXRlcyBpbiBzaXplXG4gICAgICogLy8gZmlsZTMudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDMwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIGZpbGU0LnR4dCBkb2VzIG5vdCBleGlzdFxuICAgICAqXG4gICAgICogY29uc3QgZmlsZU1hcCA9IHtcbiAgICAgKiAgICAgZjE6ICdmaWxlMS50eHQnLFxuICAgICAqICAgICBmMjogJ2ZpbGUyLnR4dCcsXG4gICAgICogICAgIGYzOiAnZmlsZTMudHh0J1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBjb25zdCB3aXRoTWlzc2luZ0ZpbGVNYXAgPSB7XG4gICAgICogICAgIGYxOiAnZmlsZTEudHh0JyxcbiAgICAgKiAgICAgZjI6ICdmaWxlMi50eHQnLFxuICAgICAqICAgICBmMzogJ2ZpbGU0LnR4dCdcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogLy8gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgZmlsZSBzaXplIGluIGJ5dGVzXG4gICAgICogZnVuY3Rpb24gZ2V0RmlsZVNpemVJbkJ5dGVzKGZpbGUsIGtleSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZnMuc3RhdChmaWxlLCBmdW5jdGlvbihlcnIsIHN0YXQpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIHN0YXQuc2l6ZSk7XG4gICAgICogICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLm1hcFZhbHVlcyhmaWxlTWFwLCBnZXRGaWxlU2l6ZUluQnl0ZXMsIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH0gZWxzZSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8gcmVzdWx0IGlzIG5vdyBhIG1hcCBvZiBmaWxlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2ggZmlsZSwgZS5nLlxuICAgICAqICAgICAgICAgLy8ge1xuICAgICAqICAgICAgICAgLy8gICAgIGYxOiAxMDAwLFxuICAgICAqICAgICAgICAgLy8gICAgIGYyOiAyMDAwLFxuICAgICAqICAgICAgICAgLy8gICAgIGYzOiAzMDAwXG4gICAgICogICAgICAgICAvLyB9XG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgICogYXN5bmMubWFwVmFsdWVzKHdpdGhNaXNzaW5nRmlsZU1hcCwgZ2V0RmlsZVNpemVJbkJ5dGVzLCBmdW5jdGlvbihlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICBpZiAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIFByb21pc2VzXG4gICAgICogYXN5bmMubWFwVmFsdWVzKGZpbGVNYXAsIGdldEZpbGVTaXplSW5CeXRlcylcbiAgICAgKiAudGhlbiggcmVzdWx0ID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgLy8gcmVzdWx0IGlzIG5vdyBhIG1hcCBvZiBmaWxlIHNpemUgaW4gYnl0ZXMgZm9yIGVhY2ggZmlsZSwgZS5nLlxuICAgICAqICAgICAvLyB7XG4gICAgICogICAgIC8vICAgICBmMTogMTAwMCxcbiAgICAgKiAgICAgLy8gICAgIGYyOiAyMDAwLFxuICAgICAqICAgICAvLyAgICAgZjM6IDMwMDBcbiAgICAgKiAgICAgLy8gfVxuICAgICAqIH0pLmNhdGNoIChlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAgKiBhc3luYy5tYXBWYWx1ZXMod2l0aE1pc3NpbmdGaWxlTWFwLCBnZXRGaWxlU2l6ZUluQnl0ZXMpXG4gICAgICogLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogfSkuY2F0Y2ggKGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBhc3luYy9hd2FpdFxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBhc3luYy5tYXBWYWx1ZXMoZmlsZU1hcCwgZ2V0RmlsZVNpemVJbkJ5dGVzKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgICAgICAvLyByZXN1bHQgaXMgbm93IGEgbWFwIG9mIGZpbGUgc2l6ZSBpbiBieXRlcyBmb3IgZWFjaCBmaWxlLCBlLmcuXG4gICAgICogICAgICAgICAvLyB7XG4gICAgICogICAgICAgICAvLyAgICAgZjE6IDEwMDAsXG4gICAgICogICAgICAgICAvLyAgICAgZjI6IDIwMDAsXG4gICAgICogICAgICAgICAvLyAgICAgZjM6IDMwMDBcbiAgICAgKiAgICAgICAgIC8vIH1cbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gRXJyb3IgSGFuZGxpbmdcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYXN5bmMubWFwVmFsdWVzKHdpdGhNaXNzaW5nRmlsZU1hcCwgZ2V0RmlsZVNpemVJbkJ5dGVzKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgICAgIC8vIFsgRXJyb3I6IEVOT0VOVDogbm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSBdXG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIG1hcFZhbHVlc0xpbWl0JDEob2JqLCBJbmZpbml0eSwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgbWFwVmFsdWVzYF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLm1hcFZhbHVlc30gYnV0IHJ1bnMgb25seSBhIHNpbmdsZSBhc3luYyBvcGVyYXRpb24gYXQgYSB0aW1lLlxuICAgICAqXG4gICAgICogQG5hbWUgbWFwVmFsdWVzU2VyaWVzXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMubWFwVmFsdWVzXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMubWFwVmFsdWVzfVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCB2YWx1ZSBhbmQga2V5XG4gICAgICogaW4gYGNvbGxgLlxuICAgICAqIFRoZSBpdGVyYXRlZSBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgdHJhbnNmb3JtZWQgdmFsdWUgYXMgaXRzIHJlc3VsdC5cbiAgICAgKiBJbnZva2VkIHdpdGggKHZhbHVlLCBrZXksIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbGwgYGl0ZXJhdGVlYFxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLCBvciBhbiBlcnJvciBvY2N1cnMuIGByZXN1bHRgIGlzIGEgbmV3IG9iamVjdCBjb25zaXN0aW5nXG4gICAgICogb2YgZWFjaCBrZXkgZnJvbSBgb2JqYCwgd2l0aCBlYWNoIHRyYW5zZm9ybWVkIHZhbHVlIG9uIHRoZSByaWdodC1oYW5kIHNpZGUuXG4gICAgICogSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWFwVmFsdWVzU2VyaWVzKG9iaiwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBtYXBWYWx1ZXNMaW1pdCQxKG9iaiwgMSwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhY2hlcyB0aGUgcmVzdWx0cyBvZiBhbiBhc3luYyBmdW5jdGlvbi4gV2hlbiBjcmVhdGluZyBhIGhhc2ggdG8gc3RvcmVcbiAgICAgKiBmdW5jdGlvbiByZXN1bHRzIGFnYWluc3QsIHRoZSBjYWxsYmFjayBpcyBvbWl0dGVkIGZyb20gdGhlIGhhc2ggYW5kIGFuXG4gICAgICogb3B0aW9uYWwgaGFzaCBmdW5jdGlvbiBjYW4gYmUgdXNlZC5cbiAgICAgKlxuICAgICAqICoqTm90ZTogaWYgdGhlIGFzeW5jIGZ1bmN0aW9uIGVycnMsIHRoZSByZXN1bHQgd2lsbCBub3QgYmUgY2FjaGVkIGFuZFxuICAgICAqIHN1YnNlcXVlbnQgY2FsbHMgd2lsbCBjYWxsIHRoZSB3cmFwcGVkIGZ1bmN0aW9uLioqXG4gICAgICpcbiAgICAgKiBJZiBubyBoYXNoIGZ1bmN0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIHVzZWQgYXMgYSBoYXNoIGtleSxcbiAgICAgKiB3aGljaCBtYXkgd29yayByZWFzb25hYmx5IGlmIGl0IGlzIGEgc3RyaW5nIG9yIGEgZGF0YSB0eXBlIHRoYXQgY29udmVydHMgdG8gYVxuICAgICAqIGRpc3RpbmN0IHN0cmluZy4gTm90ZSB0aGF0IG9iamVjdHMgYW5kIGFycmF5cyB3aWxsIG5vdCBiZWhhdmUgcmVhc29uYWJseS5cbiAgICAgKiBOZWl0aGVyIHdpbGwgY2FzZXMgd2hlcmUgdGhlIG90aGVyIGFyZ3VtZW50cyBhcmUgc2lnbmlmaWNhbnQuIEluIHN1Y2ggY2FzZXMsXG4gICAgICogc3BlY2lmeSB5b3VyIG93biBoYXNoIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogVGhlIGNhY2hlIG9mIHJlc3VsdHMgaXMgZXhwb3NlZCBhcyB0aGUgYG1lbW9gIHByb3BlcnR5IG9mIHRoZSBmdW5jdGlvblxuICAgICAqIHJldHVybmVkIGJ5IGBtZW1vaXplYC5cbiAgICAgKlxuICAgICAqIEBuYW1lIG1lbW9pemVcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpVdGlsc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gZm4gLSBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gcHJveHkgYW5kIGNhY2hlIHJlc3VsdHMgZnJvbS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYXNoZXIgLSBBbiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBhIGN1c3RvbSBoYXNoXG4gICAgICogZm9yIHN0b3JpbmcgcmVzdWx0cy4gSXQgaGFzIGFsbCB0aGUgYXJndW1lbnRzIGFwcGxpZWQgdG8gaXQgYXBhcnQgZnJvbSB0aGVcbiAgICAgKiBjYWxsYmFjaywgYW5kIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAgICogQHJldHVybnMge0FzeW5jRnVuY3Rpb259IGEgbWVtb2l6ZWQgdmVyc2lvbiBvZiBgZm5gXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBzbG93X2ZuID0gZnVuY3Rpb24obmFtZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICogICAgIGNhbGxiYWNrKG51bGwsIHJlc3VsdCk7XG4gICAgICogfTtcbiAgICAgKiB2YXIgZm4gPSBhc3luYy5tZW1vaXplKHNsb3dfZm4pO1xuICAgICAqXG4gICAgICogLy8gZm4gY2FuIG5vdyBiZSB1c2VkIGFzIGlmIGl0IHdlcmUgc2xvd19mblxuICAgICAqIGZuKCdzb21lIG5hbWUnLCBmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgLy8gY2FsbGJhY2tcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtZW1vaXplKGZuLCBoYXNoZXIgPSB2ID0+IHYpIHtcbiAgICAgICAgdmFyIG1lbW8gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB2YXIgcXVldWVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdmFyIF9mbiA9IHdyYXBBc3luYyhmbik7XG4gICAgICAgIHZhciBtZW1vaXplZCA9IGluaXRpYWxQYXJhbXMoKGFyZ3MsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB2YXIga2V5ID0gaGFzaGVyKC4uLmFyZ3MpO1xuICAgICAgICAgICAgaWYgKGtleSBpbiBtZW1vKSB7XG4gICAgICAgICAgICAgICAgc2V0SW1tZWRpYXRlJDEoKCkgPT4gY2FsbGJhY2sobnVsbCwgLi4ubWVtb1trZXldKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSBpbiBxdWV1ZXMpIHtcbiAgICAgICAgICAgICAgICBxdWV1ZXNba2V5XS5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcXVldWVzW2tleV0gPSBbY2FsbGJhY2tdO1xuICAgICAgICAgICAgICAgIF9mbiguLi5hcmdzLCAoZXJyLCAuLi5yZXN1bHRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vICMxNDY1IGRvbid0IG1lbW9pemUgaWYgYW4gZXJyb3Igb2NjdXJyZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9ba2V5XSA9IHJlc3VsdEFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIHEgPSBxdWV1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXVlc1trZXldO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBxW2ldKGVyciwgLi4ucmVzdWx0QXJncyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG1lbW9pemVkLm1lbW8gPSBtZW1vO1xuICAgICAgICBtZW1vaXplZC51bm1lbW9pemVkID0gZm47XG4gICAgICAgIHJldHVybiBtZW1vaXplZDtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgYGNhbGxiYWNrYCBvbiBhIGxhdGVyIGxvb3AgYXJvdW5kIHRoZSBldmVudCBsb29wLiBJbiBOb2RlLmpzIHRoaXMganVzdFxuICAgICAqIGNhbGxzIGBwcm9jZXNzLm5leHRUaWNrYC4gIEluIHRoZSBicm93c2VyIGl0IHdpbGwgdXNlIGBzZXRJbW1lZGlhdGVgIGlmXG4gICAgICogYXZhaWxhYmxlLCBvdGhlcndpc2UgYHNldFRpbWVvdXQoY2FsbGJhY2ssIDApYCwgd2hpY2ggbWVhbnMgb3RoZXIgaGlnaGVyXG4gICAgICogcHJpb3JpdHkgZXZlbnRzIG1heSBwcmVjZWRlIHRoZSBleGVjdXRpb24gb2YgYGNhbGxiYWNrYC5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGZvciBicm93c2VyLWNvbXBhdGliaWxpdHkgcHVycG9zZXMuXG4gICAgICpcbiAgICAgKiBAbmFtZSBuZXh0VGlja1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOlV0aWxzXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnNldEltbWVkaWF0ZV17QGxpbmsgbW9kdWxlOlV0aWxzLnNldEltbWVkaWF0ZX1cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwgb24gYSBsYXRlciBsb29wIGFyb3VuZFxuICAgICAqIHRoZSBldmVudCBsb29wLiBJbnZva2VkIHdpdGggKGFyZ3MuLi4pLlxuICAgICAqIEBwYXJhbSB7Li4uKn0gYXJncy4uLiAtIGFueSBudW1iZXIgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGVcbiAgICAgKiBjYWxsYmFjayBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiB2YXIgY2FsbF9vcmRlciA9IFtdO1xuICAgICAqIGFzeW5jLm5leHRUaWNrKGZ1bmN0aW9uKCkge1xuICAgICAqICAgICBjYWxsX29yZGVyLnB1c2goJ3R3bycpO1xuICAgICAqICAgICAvLyBjYWxsX29yZGVyIG5vdyBlcXVhbHMgWydvbmUnLCd0d28nXVxuICAgICAqIH0pO1xuICAgICAqIGNhbGxfb3JkZXIucHVzaCgnb25lJyk7XG4gICAgICpcbiAgICAgKiBhc3luYy5zZXRJbW1lZGlhdGUoZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgKiAgICAgLy8gYSwgYiwgYW5kIGMgZXF1YWwgMSwgMiwgYW5kIDNcbiAgICAgKiB9LCAxLCAyLCAzKTtcbiAgICAgKi9cbiAgICB2YXIgX2RlZmVyJDE7XG5cbiAgICBpZiAoaGFzTmV4dFRpY2spIHtcbiAgICAgICAgX2RlZmVyJDEgPSBwcm9jZXNzLm5leHRUaWNrO1xuICAgIH0gZWxzZSBpZiAoaGFzU2V0SW1tZWRpYXRlKSB7XG4gICAgICAgIF9kZWZlciQxID0gc2V0SW1tZWRpYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIF9kZWZlciQxID0gZmFsbGJhY2s7XG4gICAgfVxuXG4gICAgdmFyIG5leHRUaWNrID0gd3JhcChfZGVmZXIkMSk7XG5cbiAgICB2YXIgcGFyYWxsZWwgPSBhd2FpdGlmeSgoZWFjaGZuLCB0YXNrcywgY2FsbGJhY2spID0+IHtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBpc0FycmF5TGlrZSh0YXNrcykgPyBbXSA6IHt9O1xuXG4gICAgICAgIGVhY2hmbih0YXNrcywgKHRhc2ssIGtleSwgdGFza0NiKSA9PiB7XG4gICAgICAgICAgICB3cmFwQXN5bmModGFzaykoKGVyciwgLi4ucmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIFtyZXN1bHRdID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHRzW2tleV0gPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGFza0NiKGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgZXJyID0+IGNhbGxiYWNrKGVyciwgcmVzdWx0cykpO1xuICAgIH0sIDMpO1xuXG4gICAgLyoqXG4gICAgICogUnVuIHRoZSBgdGFza3NgIGNvbGxlY3Rpb24gb2YgZnVuY3Rpb25zIGluIHBhcmFsbGVsLCB3aXRob3V0IHdhaXRpbmcgdW50aWxcbiAgICAgKiB0aGUgcHJldmlvdXMgZnVuY3Rpb24gaGFzIGNvbXBsZXRlZC4gSWYgYW55IG9mIHRoZSBmdW5jdGlvbnMgcGFzcyBhbiBlcnJvciB0b1xuICAgICAqIGl0cyBjYWxsYmFjaywgdGhlIG1haW4gYGNhbGxiYWNrYCBpcyBpbW1lZGlhdGVseSBjYWxsZWQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlXG4gICAgICogZXJyb3IuIE9uY2UgdGhlIGB0YXNrc2AgaGF2ZSBjb21wbGV0ZWQsIHRoZSByZXN1bHRzIGFyZSBwYXNzZWQgdG8gdGhlIGZpbmFsXG4gICAgICogYGNhbGxiYWNrYCBhcyBhbiBhcnJheS5cbiAgICAgKlxuICAgICAqICoqTm90ZToqKiBgcGFyYWxsZWxgIGlzIGFib3V0IGtpY2tpbmctb2ZmIEkvTyB0YXNrcyBpbiBwYXJhbGxlbCwgbm90IGFib3V0XG4gICAgICogcGFyYWxsZWwgZXhlY3V0aW9uIG9mIGNvZGUuICBJZiB5b3VyIHRhc2tzIGRvIG5vdCB1c2UgYW55IHRpbWVycyBvciBwZXJmb3JtXG4gICAgICogYW55IEkvTywgdGhleSB3aWxsIGFjdHVhbGx5IGJlIGV4ZWN1dGVkIGluIHNlcmllcy4gIEFueSBzeW5jaHJvbm91cyBzZXR1cFxuICAgICAqIHNlY3Rpb25zIGZvciBlYWNoIHRhc2sgd2lsbCBoYXBwZW4gb25lIGFmdGVyIHRoZSBvdGhlci4gIEphdmFTY3JpcHQgcmVtYWluc1xuICAgICAqIHNpbmdsZS10aHJlYWRlZC5cbiAgICAgKlxuICAgICAqICoqSGludDoqKiBVc2UgW2ByZWZsZWN0YF17QGxpbmsgbW9kdWxlOlV0aWxzLnJlZmxlY3R9IHRvIGNvbnRpbnVlIHRoZVxuICAgICAqIGV4ZWN1dGlvbiBvZiBvdGhlciB0YXNrcyB3aGVuIGEgdGFzayBmYWlscy5cbiAgICAgKlxuICAgICAqIEl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5LiBFYWNoIHByb3BlcnR5IHdpbGxcbiAgICAgKiBiZSBydW4gYXMgYSBmdW5jdGlvbiBhbmQgdGhlIHJlc3VsdHMgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGZpbmFsIGBjYWxsYmFja2BcbiAgICAgKiBhcyBhbiBvYmplY3QgaW5zdGVhZCBvZiBhbiBhcnJheS4gVGhpcyBjYW4gYmUgYSBtb3JlIHJlYWRhYmxlIHdheSBvZiBoYW5kbGluZ1xuICAgICAqIHJlc3VsdHMgZnJvbSB7QGxpbmsgYXN5bmMucGFyYWxsZWx9LlxuICAgICAqXG4gICAgICogQG5hbWUgcGFyYWxsZWxcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gdGFza3MgLSBBIGNvbGxlY3Rpb24gb2ZcbiAgICAgKiBbYXN5bmMgZnVuY3Rpb25zXXtAbGluayBBc3luY0Z1bmN0aW9ufSB0byBydW4uXG4gICAgICogRWFjaCBhc3luYyBmdW5jdGlvbiBjYW4gY29tcGxldGUgd2l0aCBhbnkgbnVtYmVyIG9mIG9wdGlvbmFsIGByZXN1bHRgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgdG8gcnVuIG9uY2UgYWxsIHRoZVxuICAgICAqIGZ1bmN0aW9ucyBoYXZlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuIFRoaXMgZnVuY3Rpb24gZ2V0cyBhIHJlc3VsdHMgYXJyYXlcbiAgICAgKiAob3Igb2JqZWN0KSBjb250YWluaW5nIGFsbCB0aGUgcmVzdWx0IGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHRhc2sgY2FsbGJhY2tzLlxuICAgICAqIEludm9rZWQgd2l0aCAoZXJyLCByZXN1bHRzKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBhIGNhbGxiYWNrIGlzIG5vdCBwYXNzZWRcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvL1VzaW5nIENhbGxiYWNrc1xuICAgICAqIGFzeW5jLnBhcmFsbGVsKFtcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScpO1xuICAgICAqICAgICAgICAgfSwgMjAwKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ3R3bycpO1xuICAgICAqICAgICAgICAgfSwgMTAwKTtcbiAgICAgKiAgICAgfVxuICAgICAqIF0sIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyBpcyBlcXVhbCB0byBbJ29uZScsJ3R3byddIGV2ZW4gdGhvdWdoXG4gICAgICogICAgIC8vIHRoZSBzZWNvbmQgZnVuY3Rpb24gaGFkIGEgc2hvcnRlciB0aW1lb3V0LlxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gYW4gZXhhbXBsZSB1c2luZyBhbiBvYmplY3QgaW5zdGVhZCBvZiBhbiBhcnJheVxuICAgICAqIGFzeW5jLnBhcmFsbGVsKHtcbiAgICAgKiAgICAgb25lOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAxKTtcbiAgICAgKiAgICAgICAgIH0sIDIwMCk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIHR3bzogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgMik7XG4gICAgICogICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICB9XG4gICAgICogfSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAvLyByZXN1bHRzIGlzIGVxdWFsIHRvOiB7IG9uZTogMSwgdHdvOiAyIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5wYXJhbGxlbChbXG4gICAgICogICAgIGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICdvbmUnKTtcbiAgICAgKiAgICAgICAgIH0sIDIwMCk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICd0d28nKTtcbiAgICAgKiAgICAgICAgIH0sIDEwMCk7XG4gICAgICogICAgIH1cbiAgICAgKiBdKS50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyBpcyBlcXVhbCB0byBbJ29uZScsJ3R3byddIGV2ZW4gdGhvdWdoXG4gICAgICogICAgIC8vIHRoZSBzZWNvbmQgZnVuY3Rpb24gaGFkIGEgc2hvcnRlciB0aW1lb3V0LlxuICAgICAqIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBhbiBleGFtcGxlIHVzaW5nIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5XG4gICAgICogYXN5bmMucGFyYWxsZWwoe1xuICAgICAqICAgICBvbmU6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIDEpO1xuICAgICAqICAgICAgICAgfSwgMjAwKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgdHdvOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAyKTtcbiAgICAgKiAgICAgICAgIH0sIDEwMCk7XG4gICAgICogICAgIH1cbiAgICAgKiB9KS50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyBpcyBlcXVhbCB0bzogeyBvbmU6IDEsIHR3bzogMiB9XG4gICAgICogfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IGFzeW5jLnBhcmFsbGVsKFtcbiAgICAgKiAgICAgICAgICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScpO1xuICAgICAqICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICAgICAgICAgIH0sXG4gICAgICogICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICd0d28nKTtcbiAgICAgKiAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgKiAgICAgICAgICAgICB9XG4gICAgICogICAgICAgICBdKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAgICAgLy8gcmVzdWx0cyBpcyBlcXVhbCB0byBbJ29uZScsJ3R3byddIGV2ZW4gdGhvdWdoXG4gICAgICogICAgICAgICAvLyB0aGUgc2Vjb25kIGZ1bmN0aW9uIGhhZCBhIHNob3J0ZXIgdGltZW91dC5cbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gYW4gZXhhbXBsZSB1c2luZyBhbiBvYmplY3QgaW5zdGVhZCBvZiBhbiBhcnJheVxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgYXN5bmMucGFyYWxsZWwoe1xuICAgICAqICAgICAgICAgICAgIG9uZTogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIDEpO1xuICAgICAqICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICAgICAgICAgIH0sXG4gICAgICogICAgICAgICAgICB0d286IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAyKTtcbiAgICAgKiAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgKiAgICAgICAgICAgIH1cbiAgICAgKiAgICAgICAgIH0pO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgICAgICAvLyByZXN1bHRzIGlzIGVxdWFsIHRvOiB7IG9uZTogMSwgdHdvOiAyIH1cbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyYWxsZWwkMSh0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHBhcmFsbGVsKGVhY2hPZiQxLCB0YXNrcywgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgcGFyYWxsZWxgXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cucGFyYWxsZWx9IGJ1dCBydW5zIGEgbWF4aW11bSBvZiBgbGltaXRgIGFzeW5jIG9wZXJhdGlvbnMgYXQgYVxuICAgICAqIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBwYXJhbGxlbExpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMucGFyYWxsZWxde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5wYXJhbGxlbH1cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gdGFza3MgLSBBIGNvbGxlY3Rpb24gb2ZcbiAgICAgKiBbYXN5bmMgZnVuY3Rpb25zXXtAbGluayBBc3luY0Z1bmN0aW9ufSB0byBydW4uXG4gICAgICogRWFjaCBhc3luYyBmdW5jdGlvbiBjYW4gY29tcGxldGUgd2l0aCBhbnkgbnVtYmVyIG9mIG9wdGlvbmFsIGByZXN1bHRgIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEFuIG9wdGlvbmFsIGNhbGxiYWNrIHRvIHJ1biBvbmNlIGFsbCB0aGVcbiAgICAgKiBmdW5jdGlvbnMgaGF2ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiBUaGlzIGZ1bmN0aW9uIGdldHMgYSByZXN1bHRzIGFycmF5XG4gICAgICogKG9yIG9iamVjdCkgY29udGFpbmluZyBhbGwgdGhlIHJlc3VsdCBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSB0YXNrIGNhbGxiYWNrcy5cbiAgICAgKiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgYSBjYWxsYmFjayBpcyBub3QgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gcGFyYWxsZWxMaW1pdCh0YXNrcywgbGltaXQsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBwYXJhbGxlbChlYWNoT2ZMaW1pdChsaW1pdCksIHRhc2tzLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBxdWV1ZSBvZiB0YXNrcyBmb3IgdGhlIHdvcmtlciBmdW5jdGlvbiB0byBjb21wbGV0ZS5cbiAgICAgKiBAdHlwZWRlZiB7SXRlcmFibGV9IFF1ZXVlT2JqZWN0XG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBwcm9wZXJ0eSB7RnVuY3Rpb259IGxlbmd0aCAtIGEgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBudW1iZXIgb2YgaXRlbXNcbiAgICAgKiB3YWl0aW5nIHRvIGJlIHByb2Nlc3NlZC4gSW52b2tlIHdpdGggYHF1ZXVlLmxlbmd0aCgpYC5cbiAgICAgKiBAcHJvcGVydHkge2Jvb2xlYW59IHN0YXJ0ZWQgLSBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBhbnlcbiAgICAgKiBpdGVtcyBoYXZlIGJlZW4gcHVzaGVkIGFuZCBwcm9jZXNzZWQgYnkgdGhlIHF1ZXVlLlxuICAgICAqIEBwcm9wZXJ0eSB7RnVuY3Rpb259IHJ1bm5pbmcgLSBhIGZ1bmN0aW9uIHJldHVybmluZyB0aGUgbnVtYmVyIG9mIGl0ZW1zXG4gICAgICogY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZC4gSW52b2tlIHdpdGggYHF1ZXVlLnJ1bm5pbmcoKWAuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gd29ya2Vyc0xpc3QgLSBhIGZ1bmN0aW9uIHJldHVybmluZyB0aGUgYXJyYXkgb2YgaXRlbXNcbiAgICAgKiBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLiBJbnZva2Ugd2l0aCBgcXVldWUud29ya2Vyc0xpc3QoKWAuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gaWRsZSAtIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGZhbHNlIGlmIHRoZXJlIGFyZSBpdGVtc1xuICAgICAqIHdhaXRpbmcgb3IgYmVpbmcgcHJvY2Vzc2VkLCBvciB0cnVlIGlmIG5vdC4gSW52b2tlIHdpdGggYHF1ZXVlLmlkbGUoKWAuXG4gICAgICogQHByb3BlcnR5IHtudW1iZXJ9IGNvbmN1cnJlbmN5IC0gYW4gaW50ZWdlciBmb3IgZGV0ZXJtaW5pbmcgaG93IG1hbnkgYHdvcmtlcmBcbiAgICAgKiBmdW5jdGlvbnMgc2hvdWxkIGJlIHJ1biBpbiBwYXJhbGxlbC4gVGhpcyBwcm9wZXJ0eSBjYW4gYmUgY2hhbmdlZCBhZnRlciBhXG4gICAgICogYHF1ZXVlYCBpcyBjcmVhdGVkIHRvIGFsdGVyIHRoZSBjb25jdXJyZW5jeSBvbi10aGUtZmx5LlxuICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwYXlsb2FkIC0gYW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBhcmVcbiAgICAgKiBwYXNzZWQgdG8gdGhlIHdvcmtlciBmdW5jdGlvbiBhdCBhIHRpbWUuIG9ubHkgYXBwbGllcyBpZiB0aGlzIGlzIGFcbiAgICAgKiBbY2FyZ29de0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5jYXJnb30gb2JqZWN0XG4gICAgICogQHByb3BlcnR5IHtBc3luY0Z1bmN0aW9ufSBwdXNoIC0gYWRkIGEgbmV3IHRhc2sgdG8gdGhlIGBxdWV1ZWAuIENhbGxzIGBjYWxsYmFja2BcbiAgICAgKiBvbmNlIHRoZSBgd29ya2VyYCBoYXMgZmluaXNoZWQgcHJvY2Vzc2luZyB0aGUgdGFzay4gSW5zdGVhZCBvZiBhIHNpbmdsZSB0YXNrLFxuICAgICAqIGEgYHRhc2tzYCBhcnJheSBjYW4gYmUgc3VibWl0dGVkLiBUaGUgcmVzcGVjdGl2ZSBjYWxsYmFjayBpcyB1c2VkIGZvciBldmVyeVxuICAgICAqIHRhc2sgaW4gdGhlIGxpc3QuIEludm9rZSB3aXRoIGBxdWV1ZS5wdXNoKHRhc2ssIFtjYWxsYmFja10pYCxcbiAgICAgKiBAcHJvcGVydHkge0FzeW5jRnVuY3Rpb259IHVuc2hpZnQgLSBhZGQgYSBuZXcgdGFzayB0byB0aGUgZnJvbnQgb2YgdGhlIGBxdWV1ZWAuXG4gICAgICogSW52b2tlIHdpdGggYHF1ZXVlLnVuc2hpZnQodGFzaywgW2NhbGxiYWNrXSlgLlxuICAgICAqIEBwcm9wZXJ0eSB7QXN5bmNGdW5jdGlvbn0gcHVzaEFzeW5jIC0gdGhlIHNhbWUgYXMgYHEucHVzaGAsIGV4Y2VwdCB0aGlzIHJldHVybnNcbiAgICAgKiBhIHByb21pc2UgdGhhdCByZWplY3RzIGlmIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKiBAcHJvcGVydHkge0FzeW5jRnVuY3Rpb259IHVuc2hpZnRBc3luYyAtIHRoZSBzYW1lIGFzIGBxLnVuc2hpZnRgLCBleGNlcHQgdGhpcyByZXR1cm5zXG4gICAgICogYSBwcm9taXNlIHRoYXQgcmVqZWN0cyBpZiBhbiBlcnJvciBvY2N1cnMuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gcmVtb3ZlIC0gcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIHF1ZXVlIHRoYXQgbWF0Y2ggYSB0ZXN0XG4gICAgICogZnVuY3Rpb24uICBUaGUgdGVzdCBmdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCBhbiBvYmplY3Qgd2l0aCBhIGBkYXRhYCBwcm9wZXJ0eSxcbiAgICAgKiBhbmQgYSBgcHJpb3JpdHlgIHByb3BlcnR5LCBpZiB0aGlzIGlzIGFcbiAgICAgKiBbcHJpb3JpdHlRdWV1ZV17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnByaW9yaXR5UXVldWV9IG9iamVjdC5cbiAgICAgKiBJbnZva2VkIHdpdGggYHF1ZXVlLnJlbW92ZSh0ZXN0Rm4pYCwgd2hlcmUgYHRlc3RGbmAgaXMgb2YgdGhlIGZvcm1cbiAgICAgKiBgZnVuY3Rpb24gKHtkYXRhLCBwcmlvcml0eX0pIHt9YCBhbmQgcmV0dXJucyBhIEJvb2xlYW4uXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gc2F0dXJhdGVkIC0gYSBmdW5jdGlvbiB0aGF0IHNldHMgYSBjYWxsYmFjayB0aGF0IGlzXG4gICAgICogY2FsbGVkIHdoZW4gdGhlIG51bWJlciBvZiBydW5uaW5nIHdvcmtlcnMgaGl0cyB0aGUgYGNvbmN1cnJlbmN5YCBsaW1pdCwgYW5kXG4gICAgICogZnVydGhlciB0YXNrcyB3aWxsIGJlIHF1ZXVlZC4gIElmIHRoZSBjYWxsYmFjayBpcyBvbWl0dGVkLCBgcS5zYXR1cmF0ZWQoKWBcbiAgICAgKiByZXR1cm5zIGEgcHJvbWlzZSBmb3IgdGhlIG5leHQgb2NjdXJyZW5jZS5cbiAgICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1bnNhdHVyYXRlZCAtIGEgZnVuY3Rpb24gdGhhdCBzZXRzIGEgY2FsbGJhY2sgdGhhdCBpc1xuICAgICAqIGNhbGxlZCB3aGVuIHRoZSBudW1iZXIgb2YgcnVubmluZyB3b3JrZXJzIGlzIGxlc3MgdGhhbiB0aGUgYGNvbmN1cnJlbmN5YCAmXG4gICAgICogYGJ1ZmZlcmAgbGltaXRzLCBhbmQgZnVydGhlciB0YXNrcyB3aWxsIG5vdCBiZSBxdWV1ZWQuIElmIHRoZSBjYWxsYmFjayBpc1xuICAgICAqIG9taXR0ZWQsIGBxLnVuc2F0dXJhdGVkKClgIHJldHVybnMgYSBwcm9taXNlIGZvciB0aGUgbmV4dCBvY2N1cnJlbmNlLlxuICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBidWZmZXIgLSBBIG1pbmltdW0gdGhyZXNob2xkIGJ1ZmZlciBpbiBvcmRlciB0byBzYXkgdGhhdFxuICAgICAqIHRoZSBgcXVldWVgIGlzIGB1bnNhdHVyYXRlZGAuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZW1wdHkgLSBhIGZ1bmN0aW9uIHRoYXQgc2V0cyBhIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkXG4gICAgICogd2hlbiB0aGUgbGFzdCBpdGVtIGZyb20gdGhlIGBxdWV1ZWAgaXMgZ2l2ZW4gdG8gYSBgd29ya2VyYC4gSWYgdGhlIGNhbGxiYWNrXG4gICAgICogaXMgb21pdHRlZCwgYHEuZW1wdHkoKWAgcmV0dXJucyBhIHByb21pc2UgZm9yIHRoZSBuZXh0IG9jY3VycmVuY2UuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZHJhaW4gLSBhIGZ1bmN0aW9uIHRoYXQgc2V0cyBhIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkXG4gICAgICogd2hlbiB0aGUgbGFzdCBpdGVtIGZyb20gdGhlIGBxdWV1ZWAgaGFzIHJldHVybmVkIGZyb20gdGhlIGB3b3JrZXJgLiBJZiB0aGVcbiAgICAgKiBjYWxsYmFjayBpcyBvbWl0dGVkLCBgcS5kcmFpbigpYCByZXR1cm5zIGEgcHJvbWlzZSBmb3IgdGhlIG5leHQgb2NjdXJyZW5jZS5cbiAgICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSBlcnJvciAtIGEgZnVuY3Rpb24gdGhhdCBzZXRzIGEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWRcbiAgICAgKiB3aGVuIGEgdGFzayBlcnJvcnMuIEhhcyB0aGUgc2lnbmF0dXJlIGBmdW5jdGlvbihlcnJvciwgdGFzaylgLiBJZiB0aGVcbiAgICAgKiBjYWxsYmFjayBpcyBvbWl0dGVkLCBgZXJyb3IoKWAgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZWplY3RzIG9uIHRoZSBuZXh0XG4gICAgICogZXJyb3IuXG4gICAgICogQHByb3BlcnR5IHtib29sZWFufSBwYXVzZWQgLSBhIGJvb2xlYW4gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIHF1ZXVlIGlzXG4gICAgICogaW4gYSBwYXVzZWQgc3RhdGUuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gcGF1c2UgLSBhIGZ1bmN0aW9uIHRoYXQgcGF1c2VzIHRoZSBwcm9jZXNzaW5nIG9mIHRhc2tzXG4gICAgICogdW50aWwgYHJlc3VtZSgpYCBpcyBjYWxsZWQuIEludm9rZSB3aXRoIGBxdWV1ZS5wYXVzZSgpYC5cbiAgICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSByZXN1bWUgLSBhIGZ1bmN0aW9uIHRoYXQgcmVzdW1lcyB0aGUgcHJvY2Vzc2luZyBvZlxuICAgICAqIHF1ZXVlZCB0YXNrcyB3aGVuIHRoZSBxdWV1ZSBpcyBwYXVzZWQuIEludm9rZSB3aXRoIGBxdWV1ZS5yZXN1bWUoKWAuXG4gICAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0ga2lsbCAtIGEgZnVuY3Rpb24gdGhhdCByZW1vdmVzIHRoZSBgZHJhaW5gIGNhbGxiYWNrIGFuZFxuICAgICAqIGVtcHRpZXMgcmVtYWluaW5nIHRhc2tzIGZyb20gdGhlIHF1ZXVlIGZvcmNpbmcgaXQgdG8gZ28gaWRsZS4gTm8gbW9yZSB0YXNrc1xuICAgICAqIHNob3VsZCBiZSBwdXNoZWQgdG8gdGhlIHF1ZXVlIGFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4gSW52b2tlIHdpdGggYHF1ZXVlLmtpbGwoKWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHEgPSBhc3luYy5xdWV1ZSh3b3JrZXIsIDIpXG4gICAgICogcS5wdXNoKGl0ZW0xKVxuICAgICAqIHEucHVzaChpdGVtMilcbiAgICAgKiBxLnB1c2goaXRlbTMpXG4gICAgICogLy8gcXVldWVzIGFyZSBpdGVyYWJsZSwgc3ByZWFkIGludG8gYW4gYXJyYXkgdG8gaW5zcGVjdFxuICAgICAqIGNvbnN0IGl0ZW1zID0gWy4uLnFdIC8vIFtpdGVtMSwgaXRlbTIsIGl0ZW0zXVxuICAgICAqIC8vIG9yIHVzZSBmb3Igb2ZcbiAgICAgKiBmb3IgKGxldCBpdGVtIG9mIHEpIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coaXRlbSlcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBxLmRyYWluKCgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2FsbCBkb25lJylcbiAgICAgKiB9KVxuICAgICAqIC8vIG9yXG4gICAgICogYXdhaXQgcS5kcmFpbigpXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgYHF1ZXVlYCBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGBjb25jdXJyZW5jeWAuIFRhc2tzIGFkZGVkIHRvIHRoZVxuICAgICAqIGBxdWV1ZWAgYXJlIHByb2Nlc3NlZCBpbiBwYXJhbGxlbCAodXAgdG8gdGhlIGBjb25jdXJyZW5jeWAgbGltaXQpLiBJZiBhbGxcbiAgICAgKiBgd29ya2VyYHMgYXJlIGluIHByb2dyZXNzLCB0aGUgdGFzayBpcyBxdWV1ZWQgdW50aWwgb25lIGJlY29tZXMgYXZhaWxhYmxlLlxuICAgICAqIE9uY2UgYSBgd29ya2VyYCBjb21wbGV0ZXMgYSBgdGFza2AsIHRoYXQgYHRhc2tgJ3MgY2FsbGJhY2sgaXMgY2FsbGVkLlxuICAgICAqXG4gICAgICogQG5hbWUgcXVldWVcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSB3b3JrZXIgLSBBbiBhc3luYyBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBhIHF1ZXVlZCB0YXNrLlxuICAgICAqIElmIHlvdSB3YW50IHRvIGhhbmRsZSBlcnJvcnMgZnJvbSBhbiBpbmRpdmlkdWFsIHRhc2ssIHBhc3MgYSBjYWxsYmFjayB0b1xuICAgICAqIGBxLnB1c2goKWAuIEludm9rZWQgd2l0aCAodGFzaywgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29uY3VycmVuY3k9MV0gLSBBbiBgaW50ZWdlcmAgZm9yIGRldGVybWluaW5nIGhvdyBtYW55XG4gICAgICogYHdvcmtlcmAgZnVuY3Rpb25zIHNob3VsZCBiZSBydW4gaW4gcGFyYWxsZWwuICBJZiBvbWl0dGVkLCB0aGUgY29uY3VycmVuY3lcbiAgICAgKiBkZWZhdWx0cyB0byBgMWAuICBJZiB0aGUgY29uY3VycmVuY3kgaXMgYDBgLCBhbiBlcnJvciBpcyB0aHJvd24uXG4gICAgICogQHJldHVybnMge21vZHVsZTpDb250cm9sRmxvdy5RdWV1ZU9iamVjdH0gQSBxdWV1ZSBvYmplY3QgdG8gbWFuYWdlIHRoZSB0YXNrcy4gQ2FsbGJhY2tzIGNhbiBiZVxuICAgICAqIGF0dGFjaGVkIGFzIGNlcnRhaW4gcHJvcGVydGllcyB0byBsaXN0ZW4gZm9yIHNwZWNpZmljIGV2ZW50cyBkdXJpbmcgdGhlXG4gICAgICogbGlmZWN5Y2xlIG9mIHRoZSBxdWV1ZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gY3JlYXRlIGEgcXVldWUgb2JqZWN0IHdpdGggY29uY3VycmVuY3kgMlxuICAgICAqIHZhciBxID0gYXN5bmMucXVldWUoZnVuY3Rpb24odGFzaywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2hlbGxvICcgKyB0YXNrLm5hbWUpO1xuICAgICAqICAgICBjYWxsYmFjaygpO1xuICAgICAqIH0sIDIpO1xuICAgICAqXG4gICAgICogLy8gYXNzaWduIGEgY2FsbGJhY2tcbiAgICAgKiBxLmRyYWluKGZ1bmN0aW9uKCkge1xuICAgICAqICAgICBjb25zb2xlLmxvZygnYWxsIGl0ZW1zIGhhdmUgYmVlbiBwcm9jZXNzZWQnKTtcbiAgICAgKiB9KTtcbiAgICAgKiAvLyBvciBhd2FpdCB0aGUgZW5kXG4gICAgICogYXdhaXQgcS5kcmFpbigpXG4gICAgICpcbiAgICAgKiAvLyBhc3NpZ24gYW4gZXJyb3IgY2FsbGJhY2tcbiAgICAgKiBxLmVycm9yKGZ1bmN0aW9uKGVyciwgdGFzaykge1xuICAgICAqICAgICBjb25zb2xlLmVycm9yKCd0YXNrIGV4cGVyaWVuY2VkIGFuIGVycm9yJyk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBhZGQgc29tZSBpdGVtcyB0byB0aGUgcXVldWVcbiAgICAgKiBxLnB1c2goe25hbWU6ICdmb28nfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdmaW5pc2hlZCBwcm9jZXNzaW5nIGZvbycpO1xuICAgICAqIH0pO1xuICAgICAqIC8vIGNhbGxiYWNrIGlzIG9wdGlvbmFsXG4gICAgICogcS5wdXNoKHtuYW1lOiAnYmFyJ30pO1xuICAgICAqXG4gICAgICogLy8gYWRkIHNvbWUgaXRlbXMgdG8gdGhlIHF1ZXVlIChiYXRjaC13aXNlKVxuICAgICAqIHEucHVzaChbe25hbWU6ICdiYXonfSx7bmFtZTogJ2JheSd9LHtuYW1lOiAnYmF4J31dLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ2ZpbmlzaGVkIHByb2Nlc3NpbmcgaXRlbScpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gYWRkIHNvbWUgaXRlbXMgdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZVxuICAgICAqIHEudW5zaGlmdCh7bmFtZTogJ2Jhcid9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKCdmaW5pc2hlZCBwcm9jZXNzaW5nIGJhcicpO1xuICAgICAqIH0pO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHF1ZXVlJDEgKHdvcmtlciwgY29uY3VycmVuY3kpIHtcbiAgICAgICAgdmFyIF93b3JrZXIgPSB3cmFwQXN5bmMod29ya2VyKTtcbiAgICAgICAgcmV0dXJuIHF1ZXVlKChpdGVtcywgY2IpID0+IHtcbiAgICAgICAgICAgIF93b3JrZXIoaXRlbXNbMF0sIGNiKTtcbiAgICAgICAgfSwgY29uY3VycmVuY3ksIDEpO1xuICAgIH1cblxuICAgIC8vIEJpbmFyeSBtaW4taGVhcCBpbXBsZW1lbnRhdGlvbiB1c2VkIGZvciBwcmlvcml0eSBxdWV1ZS5cbiAgICAvLyBJbXBsZW1lbnRhdGlvbiBpcyBzdGFibGUsIGkuZS4gcHVzaCB0aW1lIGlzIGNvbnNpZGVyZWQgZm9yIGVxdWFsIHByaW9yaXRpZXNcbiAgICBjbGFzcyBIZWFwIHtcbiAgICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICB0aGlzLmhlYXAgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucHVzaENvdW50ID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG4gICAgICAgIH1cblxuICAgICAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGVhcC5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICBlbXB0eSAoKSB7XG4gICAgICAgICAgICB0aGlzLmhlYXAgPSBbXTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgcGVyY1VwKGluZGV4KSB7XG4gICAgICAgICAgICBsZXQgcDtcblxuICAgICAgICAgICAgd2hpbGUgKGluZGV4ID4gMCAmJiBzbWFsbGVyKHRoaXMuaGVhcFtpbmRleF0sIHRoaXMuaGVhcFtwPXBhcmVudChpbmRleCldKSkge1xuICAgICAgICAgICAgICAgIGxldCB0ID0gdGhpcy5oZWFwW2luZGV4XTtcbiAgICAgICAgICAgICAgICB0aGlzLmhlYXBbaW5kZXhdID0gdGhpcy5oZWFwW3BdO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhcFtwXSA9IHQ7XG5cbiAgICAgICAgICAgICAgICBpbmRleCA9IHA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwZXJjRG93bihpbmRleCkge1xuICAgICAgICAgICAgbGV0IGw7XG5cbiAgICAgICAgICAgIHdoaWxlICgobD1sZWZ0Q2hpKGluZGV4KSkgPCB0aGlzLmhlYXAubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGwrMSA8IHRoaXMuaGVhcC5sZW5ndGggJiYgc21hbGxlcih0aGlzLmhlYXBbbCsxXSwgdGhpcy5oZWFwW2xdKSkge1xuICAgICAgICAgICAgICAgICAgICBsID0gbCsxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChzbWFsbGVyKHRoaXMuaGVhcFtpbmRleF0sIHRoaXMuaGVhcFtsXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHQgPSB0aGlzLmhlYXBbaW5kZXhdO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhcFtpbmRleF0gPSB0aGlzLmhlYXBbbF07XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFwW2xdID0gdDtcblxuICAgICAgICAgICAgICAgIGluZGV4ID0gbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHB1c2gobm9kZSkge1xuICAgICAgICAgICAgbm9kZS5wdXNoQ291bnQgPSArK3RoaXMucHVzaENvdW50O1xuICAgICAgICAgICAgdGhpcy5oZWFwLnB1c2gobm9kZSk7XG4gICAgICAgICAgICB0aGlzLnBlcmNVcCh0aGlzLmhlYXAubGVuZ3RoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdW5zaGlmdChub2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oZWFwLnB1c2gobm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzaGlmdCgpIHtcbiAgICAgICAgICAgIGxldCBbdG9wXSA9IHRoaXMuaGVhcDtcblxuICAgICAgICAgICAgdGhpcy5oZWFwWzBdID0gdGhpcy5oZWFwW3RoaXMuaGVhcC5sZW5ndGgtMV07XG4gICAgICAgICAgICB0aGlzLmhlYXAucG9wKCk7XG4gICAgICAgICAgICB0aGlzLnBlcmNEb3duKDApO1xuXG4gICAgICAgICAgICByZXR1cm4gdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgdG9BcnJheSgpIHtcbiAgICAgICAgICAgIHJldHVybiBbLi4udGhpc107XG4gICAgICAgIH1cblxuICAgICAgICAqW1N5bWJvbC5pdGVyYXRvcl0gKCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmhlYXAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmhlYXBbaV0uZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJlbW92ZSAodGVzdEZuKSB7XG4gICAgICAgICAgICBsZXQgaiA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaGVhcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGVzdEZuKHRoaXMuaGVhcFtpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFwW2pdID0gdGhpcy5oZWFwW2ldO1xuICAgICAgICAgICAgICAgICAgICBqKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmhlYXAuc3BsaWNlKGopO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gcGFyZW50KHRoaXMuaGVhcC5sZW5ndGgtMSk7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJjRG93bihpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsZWZ0Q2hpKGkpIHtcbiAgICAgICAgcmV0dXJuIChpPDwxKSsxO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcmVudChpKSB7XG4gICAgICAgIHJldHVybiAoKGkrMSk+PjEpLTE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc21hbGxlcih4LCB5KSB7XG4gICAgICAgIGlmICh4LnByaW9yaXR5ICE9PSB5LnByaW9yaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4geC5wcmlvcml0eSA8IHkucHJpb3JpdHk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geC5wdXNoQ291bnQgPCB5LnB1c2hDb3VudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFthc3luYy5xdWV1ZV17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnF1ZXVlfSBvbmx5IHRhc2tzIGFyZSBhc3NpZ25lZCBhIHByaW9yaXR5IGFuZFxuICAgICAqIGNvbXBsZXRlZCBpbiBhc2NlbmRpbmcgcHJpb3JpdHkgb3JkZXIuXG4gICAgICpcbiAgICAgKiBAbmFtZSBwcmlvcml0eVF1ZXVlXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMucXVldWVde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5xdWV1ZX1cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSB3b3JrZXIgLSBBbiBhc3luYyBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZyBhIHF1ZXVlZCB0YXNrLlxuICAgICAqIElmIHlvdSB3YW50IHRvIGhhbmRsZSBlcnJvcnMgZnJvbSBhbiBpbmRpdmlkdWFsIHRhc2ssIHBhc3MgYSBjYWxsYmFjayB0b1xuICAgICAqIGBxLnB1c2goKWAuXG4gICAgICogSW52b2tlZCB3aXRoICh0YXNrLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGNvbmN1cnJlbmN5IC0gQW4gYGludGVnZXJgIGZvciBkZXRlcm1pbmluZyBob3cgbWFueSBgd29ya2VyYFxuICAgICAqIGZ1bmN0aW9ucyBzaG91bGQgYmUgcnVuIGluIHBhcmFsbGVsLiAgSWYgb21pdHRlZCwgdGhlIGNvbmN1cnJlbmN5IGRlZmF1bHRzIHRvXG4gICAgICogYDFgLiAgSWYgdGhlIGNvbmN1cnJlbmN5IGlzIGAwYCwgYW4gZXJyb3IgaXMgdGhyb3duLlxuICAgICAqIEByZXR1cm5zIHttb2R1bGU6Q29udHJvbEZsb3cuUXVldWVPYmplY3R9IEEgcHJpb3JpdHlRdWV1ZSBvYmplY3QgdG8gbWFuYWdlIHRoZSB0YXNrcy4gVGhlcmUgYXJlIHRocmVlXG4gICAgICogZGlmZmVyZW5jZXMgYmV0d2VlbiBgcXVldWVgIGFuZCBgcHJpb3JpdHlRdWV1ZWAgb2JqZWN0czpcbiAgICAgKiAqIGBwdXNoKHRhc2ssIHByaW9yaXR5LCBbY2FsbGJhY2tdKWAgLSBgcHJpb3JpdHlgIHNob3VsZCBiZSBhIG51bWJlci4gSWYgYW5cbiAgICAgKiAgIGFycmF5IG9mIGB0YXNrc2AgaXMgZ2l2ZW4sIGFsbCB0YXNrcyB3aWxsIGJlIGFzc2lnbmVkIHRoZSBzYW1lIHByaW9yaXR5LlxuICAgICAqICogYHB1c2hBc3luYyh0YXNrLCBwcmlvcml0eSwgW2NhbGxiYWNrXSlgIC0gdGhlIHNhbWUgYXMgYHByaW9yaXR5UXVldWUucHVzaGAsXG4gICAgICogICBleGNlcHQgdGhpcyByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgaWYgYW4gZXJyb3Igb2NjdXJzLlxuICAgICAqICogVGhlIGB1bnNoaWZ0YCBhbmQgYHVuc2hpZnRBc3luY2AgbWV0aG9kcyB3ZXJlIHJlbW92ZWQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gcHJpb3JpdHlRdWV1ZSh3b3JrZXIsIGNvbmN1cnJlbmN5KSB7XG4gICAgICAgIC8vIFN0YXJ0IHdpdGggYSBub3JtYWwgcXVldWVcbiAgICAgICAgdmFyIHEgPSBxdWV1ZSQxKHdvcmtlciwgY29uY3VycmVuY3kpO1xuXG4gICAgICAgIHZhciB7XG4gICAgICAgICAgICBwdXNoLFxuICAgICAgICAgICAgcHVzaEFzeW5jXG4gICAgICAgIH0gPSBxO1xuXG4gICAgICAgIHEuX3Rhc2tzID0gbmV3IEhlYXAoKTtcbiAgICAgICAgcS5fY3JlYXRlVGFza0l0ZW0gPSAoe2RhdGEsIHByaW9yaXR5fSwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVEYXRhSXRlbXModGFza3MsIHByaW9yaXR5KSB7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFza3MpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtkYXRhOiB0YXNrcywgcHJpb3JpdHl9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRhc2tzLm1hcChkYXRhID0+IHsgcmV0dXJuIHtkYXRhLCBwcmlvcml0eX07IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgcHVzaCB0byBhY2NlcHQgc2Vjb25kIHBhcmFtZXRlciByZXByZXNlbnRpbmcgcHJpb3JpdHlcbiAgICAgICAgcS5wdXNoID0gZnVuY3Rpb24oZGF0YSwgcHJpb3JpdHkgPSAwLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgcmV0dXJuIHB1c2goY3JlYXRlRGF0YUl0ZW1zKGRhdGEsIHByaW9yaXR5KSwgY2FsbGJhY2spO1xuICAgICAgICB9O1xuXG4gICAgICAgIHEucHVzaEFzeW5jID0gZnVuY3Rpb24oZGF0YSwgcHJpb3JpdHkgPSAwLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgcmV0dXJuIHB1c2hBc3luYyhjcmVhdGVEYXRhSXRlbXMoZGF0YSwgcHJpb3JpdHkpLCBjYWxsYmFjayk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVuc2hpZnQgZnVuY3Rpb25zXG4gICAgICAgIGRlbGV0ZSBxLnVuc2hpZnQ7XG4gICAgICAgIGRlbGV0ZSBxLnVuc2hpZnRBc3luYztcblxuICAgICAgICByZXR1cm4gcTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSdW5zIHRoZSBgdGFza3NgIGFycmF5IG9mIGZ1bmN0aW9ucyBpbiBwYXJhbGxlbCwgd2l0aG91dCB3YWl0aW5nIHVudGlsIHRoZVxuICAgICAqIHByZXZpb3VzIGZ1bmN0aW9uIGhhcyBjb21wbGV0ZWQuIE9uY2UgYW55IG9mIHRoZSBgdGFza3NgIGNvbXBsZXRlIG9yIHBhc3MgYW5cbiAgICAgKiBlcnJvciB0byBpdHMgY2FsbGJhY2ssIHRoZSBtYWluIGBjYWxsYmFja2AgaXMgaW1tZWRpYXRlbHkgY2FsbGVkLiBJdCdzXG4gICAgICogZXF1aXZhbGVudCB0byBgUHJvbWlzZS5yYWNlKClgLlxuICAgICAqXG4gICAgICogQG5hbWUgcmFjZVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB0YXNrcyAtIEFuIGFycmF5IGNvbnRhaW5pbmcgW2FzeW5jIGZ1bmN0aW9uc117QGxpbmsgQXN5bmNGdW5jdGlvbn1cbiAgICAgKiB0byBydW4uIEVhY2ggZnVuY3Rpb24gY2FuIGNvbXBsZXRlIHdpdGggYW4gb3B0aW9uYWwgYHJlc3VsdGAgdmFsdWUuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBBIGNhbGxiYWNrIHRvIHJ1biBvbmNlIGFueSBvZiB0aGUgZnVuY3Rpb25zIGhhdmVcbiAgICAgKiBjb21wbGV0ZWQuIFRoaXMgZnVuY3Rpb24gZ2V0cyBhbiBlcnJvciBvciByZXN1bHQgZnJvbSB0aGUgZmlyc3QgZnVuY3Rpb24gdGhhdFxuICAgICAqIGNvbXBsZXRlZC4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgYSBjYWxsYmFjayBpcyBvbWl0dGVkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGFzeW5jLnJhY2UoW1xuICAgICAqICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAnb25lJyk7XG4gICAgICogICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAndHdvJyk7XG4gICAgICogICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICB9XG4gICAgICogXSxcbiAgICAgKiAvLyBtYWluIGNhbGxiYWNrXG4gICAgICogZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgLy8gdGhlIHJlc3VsdCB3aWxsIGJlIGVxdWFsIHRvICd0d28nIGFzIGl0IGZpbmlzaGVzIGVhcmxpZXJcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByYWNlKHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICBjYWxsYmFjayA9IG9uY2UoY2FsbGJhY2spO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFza3MpKSByZXR1cm4gY2FsbGJhY2sobmV3IFR5cGVFcnJvcignRmlyc3QgYXJndW1lbnQgdG8gcmFjZSBtdXN0IGJlIGFuIGFycmF5IG9mIGZ1bmN0aW9ucycpKTtcbiAgICAgICAgaWYgKCF0YXNrcy5sZW5ndGgpIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHRhc2tzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgd3JhcEFzeW5jKHRhc2tzW2ldKShjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmFjZSQxID0gYXdhaXRpZnkocmFjZSwgMik7XG5cbiAgICAvKipcbiAgICAgKiBTYW1lIGFzIFtgcmVkdWNlYF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLnJlZHVjZX0sIG9ubHkgb3BlcmF0ZXMgb24gYGFycmF5YCBpbiByZXZlcnNlIG9yZGVyLlxuICAgICAqXG4gICAgICogQG5hbWUgcmVkdWNlUmlnaHRcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb2xsZWN0aW9uc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5yZWR1Y2Vde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5yZWR1Y2V9XG4gICAgICogQGFsaWFzIGZvbGRyXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fSBhcnJheSAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHsqfSBtZW1vIC0gVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIHJlZHVjdGlvbi5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQSBmdW5jdGlvbiBhcHBsaWVkIHRvIGVhY2ggaXRlbSBpbiB0aGVcbiAgICAgKiBhcnJheSB0byBwcm9kdWNlIHRoZSBuZXh0IHN0ZXAgaW4gdGhlIHJlZHVjdGlvbi5cbiAgICAgKiBUaGUgYGl0ZXJhdGVlYCBzaG91bGQgY29tcGxldGUgd2l0aCB0aGUgbmV4dCBzdGF0ZSBvZiB0aGUgcmVkdWN0aW9uLlxuICAgICAqIElmIHRoZSBpdGVyYXRlZSBjb21wbGV0ZXMgd2l0aCBhbiBlcnJvciwgdGhlIHJlZHVjdGlvbiBpcyBzdG9wcGVkIGFuZCB0aGVcbiAgICAgKiBtYWluIGBjYWxsYmFja2AgaXMgaW1tZWRpYXRlbHkgY2FsbGVkIHdpdGggdGhlIGVycm9yLlxuICAgICAqIEludm9rZWQgd2l0aCAobWVtbywgaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZC4gUmVzdWx0IGlzIHRoZSByZWR1Y2VkIHZhbHVlLiBJbnZva2VkIHdpdGhcbiAgICAgKiAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHBhc3NlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlZHVjZVJpZ2h0IChhcnJheSwgbWVtbywgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciByZXZlcnNlZCA9IFsuLi5hcnJheV0ucmV2ZXJzZSgpO1xuICAgICAgICByZXR1cm4gcmVkdWNlJDEocmV2ZXJzZWQsIG1lbW8sIGl0ZXJhdGVlLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV3JhcHMgdGhlIGFzeW5jIGZ1bmN0aW9uIGluIGFub3RoZXIgZnVuY3Rpb24gdGhhdCBhbHdheXMgY29tcGxldGVzIHdpdGggYVxuICAgICAqIHJlc3VsdCBvYmplY3QsIGV2ZW4gd2hlbiBpdCBlcnJvcnMuXG4gICAgICpcbiAgICAgKiBUaGUgcmVzdWx0IG9iamVjdCBoYXMgZWl0aGVyIHRoZSBwcm9wZXJ0eSBgZXJyb3JgIG9yIGB2YWx1ZWAuXG4gICAgICpcbiAgICAgKiBAbmFtZSByZWZsZWN0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6VXRpbHNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IFV0aWxcbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGZuIC0gVGhlIGFzeW5jIGZ1bmN0aW9uIHlvdSB3YW50IHRvIHdyYXBcbiAgICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IC0gQSBmdW5jdGlvbiB0aGF0IGFsd2F5cyBwYXNzZXMgbnVsbCB0byBpdCdzIGNhbGxiYWNrIGFzXG4gICAgICogdGhlIGVycm9yLiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjYWxsYmFjayB3aWxsIGJlIGFuIGBvYmplY3RgIHdpdGhcbiAgICAgKiBlaXRoZXIgYW4gYGVycm9yYCBvciBhIGB2YWx1ZWAgcHJvcGVydHkuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGFzeW5jLnBhcmFsbGVsKFtcbiAgICAgKiAgICAgYXN5bmMucmVmbGVjdChmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gZG8gc29tZSBzdHVmZiAuLi5cbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdvbmUnKTtcbiAgICAgKiAgICAgfSksXG4gICAgICogICAgIGFzeW5jLnJlZmxlY3QoZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIC8vIGRvIHNvbWUgbW9yZSBzdHVmZiBidXQgZXJyb3IgLi4uXG4gICAgICogICAgICAgICBjYWxsYmFjaygnYmFkIHN0dWZmIGhhcHBlbmVkJyk7XG4gICAgICogICAgIH0pLFxuICAgICAqICAgICBhc3luYy5yZWZsZWN0KGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBkbyBzb21lIG1vcmUgc3R1ZmYgLi4uXG4gICAgICogICAgICAgICBjYWxsYmFjayhudWxsLCAndHdvJyk7XG4gICAgICogICAgIH0pXG4gICAgICogXSxcbiAgICAgKiAvLyBvcHRpb25hbCBjYWxsYmFja1xuICAgICAqIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICAvLyB2YWx1ZXNcbiAgICAgKiAgICAgLy8gcmVzdWx0c1swXS52YWx1ZSA9ICdvbmUnXG4gICAgICogICAgIC8vIHJlc3VsdHNbMV0uZXJyb3IgPSAnYmFkIHN0dWZmIGhhcHBlbmVkJ1xuICAgICAqICAgICAvLyByZXN1bHRzWzJdLnZhbHVlID0gJ3R3bydcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZWZsZWN0KGZuKSB7XG4gICAgICAgIHZhciBfZm4gPSB3cmFwQXN5bmMoZm4pO1xuICAgICAgICByZXR1cm4gaW5pdGlhbFBhcmFtcyhmdW5jdGlvbiByZWZsZWN0T24oYXJncywgcmVmbGVjdENhbGxiYWNrKSB7XG4gICAgICAgICAgICBhcmdzLnB1c2goKGVycm9yLCAuLi5jYkFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmV0VmFsID0ge307XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldFZhbC5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2JBcmdzLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBjYkFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYkFyZ3MubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV0gPSBjYkFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0VmFsLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlZmxlY3RDYWxsYmFjayhudWxsLCByZXRWYWwpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBfZm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYW4gYXJyYXkgb3IgYW4gb2JqZWN0IG9mIGZ1bmN0aW9ucyB3aXRoIGByZWZsZWN0YC5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJlZmxlY3RBbGxcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpVdGlsc1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5yZWZsZWN0XXtAbGluayBtb2R1bGU6VXRpbHMucmVmbGVjdH1cbiAgICAgKiBAY2F0ZWdvcnkgVXRpbFxuICAgICAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fEl0ZXJhYmxlfSB0YXNrcyAtIFRoZSBjb2xsZWN0aW9uIG9mXG4gICAgICogW2FzeW5jIGZ1bmN0aW9uc117QGxpbmsgQXN5bmNGdW5jdGlvbn0gdG8gd3JhcCBpbiBgYXN5bmMucmVmbGVjdGAuXG4gICAgICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIGFuIGFycmF5IG9mIGFzeW5jIGZ1bmN0aW9ucywgZWFjaCB3cmFwcGVkIGluXG4gICAgICogYGFzeW5jLnJlZmxlY3RgXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIGxldCB0YXNrcyA9IFtcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScpO1xuICAgICAqICAgICAgICAgfSwgMjAwKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIC8vIGRvIHNvbWUgbW9yZSBzdHVmZiBidXQgZXJyb3IgLi4uXG4gICAgICogICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ2JhZCBzdHVmZiBoYXBwZW5lZCcpKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ3R3bycpO1xuICAgICAqICAgICAgICAgfSwgMTAwKTtcbiAgICAgKiAgICAgfVxuICAgICAqIF07XG4gICAgICpcbiAgICAgKiBhc3luYy5wYXJhbGxlbChhc3luYy5yZWZsZWN0QWxsKHRhc2tzKSxcbiAgICAgKiAvLyBvcHRpb25hbCBjYWxsYmFja1xuICAgICAqIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICAvLyB2YWx1ZXNcbiAgICAgKiAgICAgLy8gcmVzdWx0c1swXS52YWx1ZSA9ICdvbmUnXG4gICAgICogICAgIC8vIHJlc3VsdHNbMV0uZXJyb3IgPSBFcnJvcignYmFkIHN0dWZmIGhhcHBlbmVkJylcbiAgICAgKiAgICAgLy8gcmVzdWx0c1syXS52YWx1ZSA9ICd0d28nXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBhbiBleGFtcGxlIHVzaW5nIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5XG4gICAgICogbGV0IHRhc2tzID0ge1xuICAgICAqICAgICBvbmU6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICdvbmUnKTtcbiAgICAgKiAgICAgICAgIH0sIDIwMCk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIHR3bzogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKCd0d28nKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgdGhyZWU6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsICd0aHJlZScpO1xuICAgICAqICAgICAgICAgfSwgMTAwKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH07XG4gICAgICpcbiAgICAgKiBhc3luYy5wYXJhbGxlbChhc3luYy5yZWZsZWN0QWxsKHRhc2tzKSxcbiAgICAgKiAvLyBvcHRpb25hbCBjYWxsYmFja1xuICAgICAqIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICAvLyB2YWx1ZXNcbiAgICAgKiAgICAgLy8gcmVzdWx0cy5vbmUudmFsdWUgPSAnb25lJ1xuICAgICAqICAgICAvLyByZXN1bHRzLnR3by5lcnJvciA9ICd0d28nXG4gICAgICogICAgIC8vIHJlc3VsdHMudGhyZWUudmFsdWUgPSAndGhyZWUnXG4gICAgICogfSk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVmbGVjdEFsbCh0YXNrcykge1xuICAgICAgICB2YXIgcmVzdWx0cztcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFza3MpKSB7XG4gICAgICAgICAgICByZXN1bHRzID0gdGFza3MubWFwKHJlZmxlY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0cyA9IHt9O1xuICAgICAgICAgICAgT2JqZWN0LmtleXModGFza3MpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHRzW2tleV0gPSByZWZsZWN0LmNhbGwodGhpcywgdGFza3Nba2V5XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWplY3QoZWFjaGZuLCBhcnIsIF9pdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgY29uc3QgaXRlcmF0ZWUgPSB3cmFwQXN5bmMoX2l0ZXJhdGVlKTtcbiAgICAgICAgcmV0dXJuIF9maWx0ZXIoZWFjaGZuLCBhcnIsICh2YWx1ZSwgY2IpID0+IHtcbiAgICAgICAgICAgIGl0ZXJhdGVlKHZhbHVlLCAoZXJyLCB2KSA9PiB7XG4gICAgICAgICAgICAgICAgY2IoZXJyLCAhdik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHBvc2l0ZSBvZiBbYGZpbHRlcmBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5maWx0ZXJ9LiBSZW1vdmVzIHZhbHVlcyB0aGF0IHBhc3MgYW4gYGFzeW5jYCB0cnV0aCB0ZXN0LlxuICAgICAqXG4gICAgICogQG5hbWUgcmVqZWN0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuZmlsdGVyXXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMuZmlsdGVyfVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyB0cnV0aCB0ZXN0IHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpblxuICAgICAqIGBjb2xsYC5cbiAgICAgKiBUaGUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSBib29sZWFuIHZhbHVlIGFzIGl0cyBgcmVzdWx0YC5cbiAgICAgKiBJbnZva2VkIHdpdGggKGl0ZW0sIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHRoZVxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQuIEludm9rZWQgd2l0aCAoZXJyLCByZXN1bHRzKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBpcyBwYXNzZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZGlyMSBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUxLnR4dCwgZmlsZTIudHh0XG4gICAgICogLy8gZGlyMiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUzLnR4dCwgZmlsZTQudHh0XG4gICAgICogLy8gZGlyMyBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGU1LnR4dFxuICAgICAqXG4gICAgICogY29uc3QgZmlsZUxpc3QgPSBbJ2RpcjEvZmlsZTEudHh0JywnZGlyMi9maWxlMy50eHQnLCdkaXIzL2ZpbGU2LnR4dCddO1xuICAgICAqXG4gICAgICogLy8gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGlmIGEgZmlsZSBleGlzdHNcbiAgICAgKiBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGUsIGNhbGxiYWNrKSB7XG4gICAgICogICAgZnMuYWNjZXNzKGZpbGUsIGZzLmNvbnN0YW50cy5GX09LLCAoZXJyKSA9PiB7XG4gICAgICogICAgICAgIGNhbGxiYWNrKG51bGwsICFlcnIpO1xuICAgICAqICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLnJlamVjdChmaWxlTGlzdCwgZmlsZUV4aXN0cywgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgLy8gWyAnZGlyMy9maWxlNi50eHQnIF1cbiAgICAgKiAgICAvLyByZXN1bHRzIG5vdyBlcXVhbHMgYW4gYXJyYXkgb2YgdGhlIG5vbi1leGlzdGluZyBmaWxlc1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5yZWplY3QoZmlsZUxpc3QsIGZpbGVFeGlzdHMpXG4gICAgICogLnRoZW4oIHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gWyAnZGlyMy9maWxlNi50eHQnIF1cbiAgICAgKiAgICAgLy8gcmVzdWx0cyBub3cgZXF1YWxzIGFuIGFycmF5IG9mIHRoZSBub24tZXhpc3RpbmcgZmlsZXNcbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBhc3luYy5yZWplY3QoZmlsZUxpc3QsIGZpbGVFeGlzdHMpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgICAgICAvLyBbICdkaXIzL2ZpbGU2LnR4dCcgXVxuICAgICAqICAgICAgICAgLy8gcmVzdWx0cyBub3cgZXF1YWxzIGFuIGFycmF5IG9mIHRoZSBub24tZXhpc3RpbmcgZmlsZXNcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVqZWN0JDEgKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVhY2hPZiQxLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciByZWplY3QkMiA9IGF3YWl0aWZ5KHJlamVjdCQxLCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgcmVqZWN0YF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLnJlamVjdH0gYnV0IHJ1bnMgYSBtYXhpbXVtIG9mIGBsaW1pdGAgYXN5bmMgb3BlcmF0aW9ucyBhdCBhXG4gICAgICogdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJlamVjdExpbWl0XG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMucmVqZWN0XXtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMucmVqZWN0fVxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW5cbiAgICAgKiBgY29sbGAuXG4gICAgICogVGhlIHNob3VsZCBjb21wbGV0ZSB3aXRoIGEgYm9vbGVhbiB2YWx1ZSBhcyBpdHMgYHJlc3VsdGAuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIGFsbCB0aGVcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVqZWN0TGltaXQgKGNvbGwsIGxpbWl0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlYWNoT2ZMaW1pdChsaW1pdCksIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIHJlamVjdExpbWl0JDEgPSBhd2FpdGlmeShyZWplY3RMaW1pdCwgNCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2FtZSBhcyBbYHJlamVjdGBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5yZWplY3R9IGJ1dCBydW5zIG9ubHkgYSBzaW5nbGUgYXN5bmMgb3BlcmF0aW9uIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHJlamVjdFNlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnJlamVjdF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLnJlamVjdH1cbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgdHJ1dGggdGVzdCB0byBhcHBseSB0byBlYWNoIGl0ZW0gaW5cbiAgICAgKiBgY29sbGAuXG4gICAgICogVGhlIHNob3VsZCBjb21wbGV0ZSB3aXRoIGEgYm9vbGVhbiB2YWx1ZSBhcyBpdHMgYHJlc3VsdGAuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2NhbGxiYWNrXSAtIEEgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGFmdGVyIGFsbCB0aGVcbiAgICAgKiBgaXRlcmF0ZWVgIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVqZWN0U2VyaWVzIChjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlYWNoT2ZTZXJpZXMkMSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgcmVqZWN0U2VyaWVzJDEgPSBhd2FpdGlmeShyZWplY3RTZXJpZXMsIDMpO1xuXG4gICAgZnVuY3Rpb24gY29uc3RhbnQkMSh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXR0ZW1wdHMgdG8gZ2V0IGEgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGB0YXNrYCBubyBtb3JlIHRoYW4gYHRpbWVzYCB0aW1lc1xuICAgICAqIGJlZm9yZSByZXR1cm5pbmcgYW4gZXJyb3IuIElmIHRoZSB0YXNrIGlzIHN1Y2Nlc3NmdWwsIHRoZSBgY2FsbGJhY2tgIHdpbGwgYmVcbiAgICAgKiBwYXNzZWQgdGhlIHJlc3VsdCBvZiB0aGUgc3VjY2Vzc2Z1bCB0YXNrLiBJZiBhbGwgYXR0ZW1wdHMgZmFpbCwgdGhlIGNhbGxiYWNrXG4gICAgICogd2lsbCBiZSBwYXNzZWQgdGhlIGVycm9yIGFuZCByZXN1bHQgKGlmIGFueSkgb2YgdGhlIGZpbmFsIGF0dGVtcHQuXG4gICAgICpcbiAgICAgKiBAbmFtZSByZXRyeVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAc2VlIFthc3luYy5yZXRyeWFibGVde0BsaW5rIG1vZHVsZTpDb250cm9sRmxvdy5yZXRyeWFibGV9XG4gICAgICogQHBhcmFtIHtPYmplY3R8bnVtYmVyfSBbb3B0cyA9IHt0aW1lczogNSwgaW50ZXJ2YWw6IDB9fCA1XSAtIENhbiBiZSBlaXRoZXIgYW5cbiAgICAgKiBvYmplY3Qgd2l0aCBgdGltZXNgIGFuZCBgaW50ZXJ2YWxgIG9yIGEgbnVtYmVyLlxuICAgICAqICogYHRpbWVzYCAtIFRoZSBudW1iZXIgb2YgYXR0ZW1wdHMgdG8gbWFrZSBiZWZvcmUgZ2l2aW5nIHVwLiAgVGhlIGRlZmF1bHRcbiAgICAgKiAgIGlzIGA1YC5cbiAgICAgKiAqIGBpbnRlcnZhbGAgLSBUaGUgdGltZSB0byB3YWl0IGJldHdlZW4gcmV0cmllcywgaW4gbWlsbGlzZWNvbmRzLiAgVGhlXG4gICAgICogICBkZWZhdWx0IGlzIGAwYC4gVGhlIGludGVydmFsIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhIGZ1bmN0aW9uIG9mIHRoZVxuICAgICAqICAgcmV0cnkgY291bnQgKHNlZSBleGFtcGxlKS5cbiAgICAgKiAqIGBlcnJvckZpbHRlcmAgLSBBbiBvcHRpb25hbCBzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IGlzIGludm9rZWQgb25cbiAgICAgKiAgIGVycm9uZW91cyByZXN1bHQuIElmIGl0IHJldHVybnMgYHRydWVgIHRoZSByZXRyeSBhdHRlbXB0cyB3aWxsIGNvbnRpbnVlO1xuICAgICAqICAgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYGZhbHNlYCB0aGUgcmV0cnkgZmxvdyBpcyBhYm9ydGVkIHdpdGggdGhlIGN1cnJlbnRcbiAgICAgKiAgIGF0dGVtcHQncyBlcnJvciBhbmQgcmVzdWx0IGJlaW5nIHJldHVybmVkIHRvIHRoZSBmaW5hbCBjYWxsYmFjay5cbiAgICAgKiAgIEludm9rZWQgd2l0aCAoZXJyKS5cbiAgICAgKiAqIElmIGBvcHRzYCBpcyBhIG51bWJlciwgdGhlIG51bWJlciBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXRyeSxcbiAgICAgKiAgIHdpdGggdGhlIGRlZmF1bHQgaW50ZXJ2YWwgb2YgYDBgLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gdGFzayAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIHJldHJ5LlxuICAgICAqIEludm9rZWQgd2l0aCAoY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiB0aGVcbiAgICAgKiB0YXNrIGhhcyBzdWNjZWVkZWQsIG9yIGFmdGVyIHRoZSBmaW5hbCBmYWlsZWQgYXR0ZW1wdC4gSXQgcmVjZWl2ZXMgdGhlIGBlcnJgXG4gICAgICogYW5kIGByZXN1bHRgIGFyZ3VtZW50cyBvZiB0aGUgbGFzdCBhdHRlbXB0IGF0IGNvbXBsZXRpbmcgdGhlIGB0YXNrYC4gSW52b2tlZFxuICAgICAqIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSBpZiBubyBjYWxsYmFjayBwcm92aWRlZFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIFRoZSBgcmV0cnlgIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGFzIGEgc3RhbmQtYWxvbmUgY29udHJvbCBmbG93IGJ5IHBhc3NpbmdcbiAgICAgKiAvLyBhIGNhbGxiYWNrLCBhcyBzaG93biBiZWxvdzpcbiAgICAgKlxuICAgICAqIC8vIHRyeSBjYWxsaW5nIGFwaU1ldGhvZCAzIHRpbWVzXG4gICAgICogYXN5bmMucmV0cnkoMywgYXBpTWV0aG9kLCBmdW5jdGlvbihlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyB0cnkgY2FsbGluZyBhcGlNZXRob2QgMyB0aW1lcywgd2FpdGluZyAyMDAgbXMgYmV0d2VlbiBlYWNoIHJldHJ5XG4gICAgICogYXN5bmMucmV0cnkoe3RpbWVzOiAzLCBpbnRlcnZhbDogMjAwfSwgYXBpTWV0aG9kLCBmdW5jdGlvbihlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyB0cnkgY2FsbGluZyBhcGlNZXRob2QgMTAgdGltZXMgd2l0aCBleHBvbmVudGlhbCBiYWNrb2ZmXG4gICAgICogLy8gKGkuZS4gaW50ZXJ2YWxzIG9mIDEwMCwgMjAwLCA0MDAsIDgwMCwgMTYwMCwgLi4uIG1pbGxpc2Vjb25kcylcbiAgICAgKiBhc3luYy5yZXRyeSh7XG4gICAgICogICB0aW1lczogMTAsXG4gICAgICogICBpbnRlcnZhbDogZnVuY3Rpb24ocmV0cnlDb3VudCkge1xuICAgICAqICAgICByZXR1cm4gNTAgKiBNYXRoLnBvdygyLCByZXRyeUNvdW50KTtcbiAgICAgKiAgIH1cbiAgICAgKiB9LCBhcGlNZXRob2QsIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIHRyeSBjYWxsaW5nIGFwaU1ldGhvZCB0aGUgZGVmYXVsdCA1IHRpbWVzIG5vIGRlbGF5IGJldHdlZW4gZWFjaCByZXRyeVxuICAgICAqIGFzeW5jLnJldHJ5KGFwaU1ldGhvZCwgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gdHJ5IGNhbGxpbmcgYXBpTWV0aG9kIG9ubHkgd2hlbiBlcnJvciBjb25kaXRpb24gc2F0aXNmaWVzLCBhbGwgb3RoZXJcbiAgICAgKiAvLyBlcnJvcnMgd2lsbCBhYm9ydCB0aGUgcmV0cnkgY29udHJvbCBmbG93IGFuZCByZXR1cm4gdG8gZmluYWwgY2FsbGJhY2tcbiAgICAgKiBhc3luYy5yZXRyeSh7XG4gICAgICogICBlcnJvckZpbHRlcjogZnVuY3Rpb24oZXJyKSB7XG4gICAgICogICAgIHJldHVybiBlcnIubWVzc2FnZSA9PT0gJ1RlbXBvcmFyeSBlcnJvcic7IC8vIG9ubHkgcmV0cnkgb24gYSBzcGVjaWZpYyBlcnJvclxuICAgICAqICAgfVxuICAgICAqIH0sIGFwaU1ldGhvZCwgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdFxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gdG8gcmV0cnkgaW5kaXZpZHVhbCBtZXRob2RzIHRoYXQgYXJlIG5vdCBhcyByZWxpYWJsZSB3aXRoaW4gb3RoZXJcbiAgICAgKiAvLyBjb250cm9sIGZsb3cgZnVuY3Rpb25zLCB1c2UgdGhlIGByZXRyeWFibGVgIHdyYXBwZXI6XG4gICAgICogYXN5bmMuYXV0byh7XG4gICAgICogICAgIHVzZXJzOiBhcGkuZ2V0VXNlcnMuYmluZChhcGkpLFxuICAgICAqICAgICBwYXltZW50czogYXN5bmMucmV0cnlhYmxlKDMsIGFwaS5nZXRQYXltZW50cy5iaW5kKGFwaSkpXG4gICAgICogfSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSByZXN1bHRzXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKi9cbiAgICBjb25zdCBERUZBVUxUX1RJTUVTID0gNTtcbiAgICBjb25zdCBERUZBVUxUX0lOVEVSVkFMID0gMDtcblxuICAgIGZ1bmN0aW9uIHJldHJ5KG9wdHMsIHRhc2ssIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgICAgdGltZXM6IERFRkFVTFRfVElNRVMsXG4gICAgICAgICAgICBpbnRlcnZhbEZ1bmM6IGNvbnN0YW50JDEoREVGQVVMVF9JTlRFUlZBTClcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDMgJiYgdHlwZW9mIG9wdHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gdGFzayB8fCBwcm9taXNlQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIHRhc2sgPSBvcHRzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyc2VUaW1lcyhvcHRpb25zLCBvcHRzKTtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2sgfHwgcHJvbWlzZUNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRhc2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYXJndW1lbnRzIGZvciBhc3luYy5yZXRyeVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfdGFzayA9IHdyYXBBc3luYyh0YXNrKTtcblxuICAgICAgICB2YXIgYXR0ZW1wdCA9IDE7XG4gICAgICAgIGZ1bmN0aW9uIHJldHJ5QXR0ZW1wdCgpIHtcbiAgICAgICAgICAgIF90YXNrKChlcnIsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuXG4gICAgICAgICAgICAgICAgaWYgKGVyciAmJiBhdHRlbXB0KysgPCBvcHRpb25zLnRpbWVzICYmXG4gICAgICAgICAgICAgICAgICAgICh0eXBlb2Ygb3B0aW9ucy5lcnJvckZpbHRlciAhPSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmVycm9yRmlsdGVyKGVycikpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmV0cnlBdHRlbXB0LCBvcHRpb25zLmludGVydmFsRnVuYyhhdHRlbXB0IC0gMSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVyciwgLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXRyeUF0dGVtcHQoKTtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrW1BST01JU0VfU1lNQk9MXVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVGltZXMoYWNjLCB0KSB7XG4gICAgICAgIGlmICh0eXBlb2YgdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFjYy50aW1lcyA9ICt0LnRpbWVzIHx8IERFRkFVTFRfVElNRVM7XG5cbiAgICAgICAgICAgIGFjYy5pbnRlcnZhbEZ1bmMgPSB0eXBlb2YgdC5pbnRlcnZhbCA9PT0gJ2Z1bmN0aW9uJyA/XG4gICAgICAgICAgICAgICAgdC5pbnRlcnZhbCA6XG4gICAgICAgICAgICAgICAgY29uc3RhbnQkMSgrdC5pbnRlcnZhbCB8fCBERUZBVUxUX0lOVEVSVkFMKTtcblxuICAgICAgICAgICAgYWNjLmVycm9yRmlsdGVyID0gdC5lcnJvckZpbHRlcjtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBhY2MudGltZXMgPSArdCB8fCBERUZBVUxUX1RJTUVTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhcmd1bWVudHMgZm9yIGFzeW5jLnJldHJ5XCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBjbG9zZSByZWxhdGl2ZSBvZiBbYHJldHJ5YF17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnJldHJ5fS4gIFRoaXMgbWV0aG9kXG4gICAgICogd3JhcHMgYSB0YXNrIGFuZCBtYWtlcyBpdCByZXRyeWFibGUsIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5IGNhbGxpbmcgaXRcbiAgICAgKiB3aXRoIHJldHJpZXMuXG4gICAgICpcbiAgICAgKiBAbmFtZSByZXRyeWFibGVcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG1lbWJlck9mIG1vZHVsZTpDb250cm9sRmxvd1xuICAgICAqIEBtZXRob2RcbiAgICAgKiBAc2VlIFthc3luYy5yZXRyeV17QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnJldHJ5fVxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge09iamVjdHxudW1iZXJ9IFtvcHRzID0ge3RpbWVzOiA1LCBpbnRlcnZhbDogMH18IDVdIC0gb3B0aW9uYWxcbiAgICAgKiBvcHRpb25zLCBleGFjdGx5IHRoZSBzYW1lIGFzIGZyb20gYHJldHJ5YCwgZXhjZXB0IGZvciBhIGBvcHRzLmFyaXR5YCB0aGF0XG4gICAgICogaXMgdGhlIGFyaXR5IG9mIHRoZSBgdGFza2AgZnVuY3Rpb24sIGRlZmF1bHRpbmcgdG8gYHRhc2subGVuZ3RoYFxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gdGFzayAtIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gd3JhcC5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgcGFzc2VkIGFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSByZXR1cm5lZCB3cmFwcGVyLlxuICAgICAqIEludm9rZWQgd2l0aCAoLi4uYXJncywgY2FsbGJhY2spLlxuICAgICAqIEByZXR1cm5zIHtBc3luY0Z1bmN0aW9ufSBUaGUgd3JhcHBlZCBmdW5jdGlvbiwgd2hpY2ggd2hlbiBpbnZva2VkLCB3aWxsXG4gICAgICogcmV0cnkgb24gYW4gZXJyb3IsIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXJzIHNwZWNpZmllZCBpbiBgb3B0c2AuXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGFjY2VwdCB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIGB0YXNrYC5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogYXN5bmMuYXV0byh7XG4gICAgICogICAgIGRlcDE6IGFzeW5jLnJldHJ5YWJsZSgzLCBnZXRGcm9tRmxha3lTZXJ2aWNlKSxcbiAgICAgKiAgICAgcHJvY2VzczogW1wiZGVwMVwiLCBhc3luYy5yZXRyeWFibGUoMywgZnVuY3Rpb24gKHJlc3VsdHMsIGNiKSB7XG4gICAgICogICAgICAgICBtYXliZVByb2Nlc3NEYXRhKHJlc3VsdHMuZGVwMSwgY2IpO1xuICAgICAqICAgICB9KV1cbiAgICAgKiB9LCBjYWxsYmFjayk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gcmV0cnlhYmxlIChvcHRzLCB0YXNrKSB7XG4gICAgICAgIGlmICghdGFzaykge1xuICAgICAgICAgICAgdGFzayA9IG9wdHM7XG4gICAgICAgICAgICBvcHRzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYXJpdHkgPSAob3B0cyAmJiBvcHRzLmFyaXR5KSB8fCB0YXNrLmxlbmd0aDtcbiAgICAgICAgaWYgKGlzQXN5bmModGFzaykpIHtcbiAgICAgICAgICAgIGFyaXR5ICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIF90YXNrID0gd3JhcEFzeW5jKHRhc2spO1xuICAgICAgICByZXR1cm4gaW5pdGlhbFBhcmFtcygoYXJncywgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA8IGFyaXR5IC0gMSB8fCBjYWxsYmFjayA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYXJncy5wdXNoKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayA9IHByb21pc2VDYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnVuY3Rpb24gdGFza0ZuKGNiKSB7XG4gICAgICAgICAgICAgICAgX3Rhc2soLi4uYXJncywgY2IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0cykgcmV0cnkob3B0cywgdGFza0ZuLCBjYWxsYmFjayk7XG4gICAgICAgICAgICBlbHNlIHJldHJ5KHRhc2tGbiwgY2FsbGJhY2spO1xuXG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2tbUFJPTUlTRV9TWU1CT0xdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJ1biB0aGUgZnVuY3Rpb25zIGluIHRoZSBgdGFza3NgIGNvbGxlY3Rpb24gaW4gc2VyaWVzLCBlYWNoIG9uZSBydW5uaW5nIG9uY2VcbiAgICAgKiB0aGUgcHJldmlvdXMgZnVuY3Rpb24gaGFzIGNvbXBsZXRlZC4gSWYgYW55IGZ1bmN0aW9ucyBpbiB0aGUgc2VyaWVzIHBhc3MgYW5cbiAgICAgKiBlcnJvciB0byBpdHMgY2FsbGJhY2ssIG5vIG1vcmUgZnVuY3Rpb25zIGFyZSBydW4sIGFuZCBgY2FsbGJhY2tgIGlzXG4gICAgICogaW1tZWRpYXRlbHkgY2FsbGVkIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBlcnJvci4gT3RoZXJ3aXNlLCBgY2FsbGJhY2tgXG4gICAgICogcmVjZWl2ZXMgYW4gYXJyYXkgb2YgcmVzdWx0cyB3aGVuIGB0YXNrc2AgaGF2ZSBjb21wbGV0ZWQuXG4gICAgICpcbiAgICAgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSBhbiBvYmplY3QgaW5zdGVhZCBvZiBhbiBhcnJheS4gRWFjaCBwcm9wZXJ0eSB3aWxsXG4gICAgICogYmUgcnVuIGFzIGEgZnVuY3Rpb24sIGFuZCB0aGUgcmVzdWx0cyB3aWxsIGJlIHBhc3NlZCB0byB0aGUgZmluYWwgYGNhbGxiYWNrYFxuICAgICAqIGFzIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5LiBUaGlzIGNhbiBiZSBhIG1vcmUgcmVhZGFibGUgd2F5IG9mIGhhbmRsaW5nXG4gICAgICogIHJlc3VsdHMgZnJvbSB7QGxpbmsgYXN5bmMuc2VyaWVzfS5cbiAgICAgKlxuICAgICAqICoqTm90ZSoqIHRoYXQgd2hpbGUgbWFueSBpbXBsZW1lbnRhdGlvbnMgcHJlc2VydmUgdGhlIG9yZGVyIG9mIG9iamVjdFxuICAgICAqIHByb3BlcnRpZXMsIHRoZSBbRUNNQVNjcmlwdCBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNS4xLyNzZWMtOC42KVxuICAgICAqIGV4cGxpY2l0bHkgc3RhdGVzIHRoYXRcbiAgICAgKlxuICAgICAqID4gVGhlIG1lY2hhbmljcyBhbmQgb3JkZXIgb2YgZW51bWVyYXRpbmcgdGhlIHByb3BlcnRpZXMgaXMgbm90IHNwZWNpZmllZC5cbiAgICAgKlxuICAgICAqIFNvIGlmIHlvdSByZWx5IG9uIHRoZSBvcmRlciBpbiB3aGljaCB5b3VyIHNlcmllcyBvZiBmdW5jdGlvbnMgYXJlIGV4ZWN1dGVkLFxuICAgICAqIGFuZCB3YW50IHRoaXMgdG8gd29yayBvbiBhbGwgcGxhdGZvcm1zLCBjb25zaWRlciB1c2luZyBhbiBhcnJheS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHNlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSB0YXNrcyAtIEEgY29sbGVjdGlvbiBjb250YWluaW5nXG4gICAgICogW2FzeW5jIGZ1bmN0aW9uc117QGxpbmsgQXN5bmNGdW5jdGlvbn0gdG8gcnVuIGluIHNlcmllcy5cbiAgICAgKiBFYWNoIGZ1bmN0aW9uIGNhbiBjb21wbGV0ZSB3aXRoIGFueSBudW1iZXIgb2Ygb3B0aW9uYWwgYHJlc3VsdGAgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB0byBydW4gb25jZSBhbGwgdGhlXG4gICAgICogZnVuY3Rpb25zIGhhdmUgY29tcGxldGVkLiBUaGlzIGZ1bmN0aW9uIGdldHMgYSByZXN1bHRzIGFycmF5IChvciBvYmplY3QpXG4gICAgICogY29udGFpbmluZyBhbGwgdGhlIHJlc3VsdCBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBgdGFza2AgY2FsbGJhY2tzLiBJbnZva2VkXG4gICAgICogd2l0aCAoZXJyLCByZXN1bHQpLlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgQ2FsbGJhY2tzXG4gICAgICogYXN5bmMuc2VyaWVzKFtcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgLy8gZG8gc29tZSBhc3luYyB0YXNrXG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScpO1xuICAgICAqICAgICAgICAgfSwgMjAwKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgLy8gdGhlbiBkbyBhbm90aGVyIGFzeW5jIHRhc2tcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAndHdvJyk7XG4gICAgICogICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICB9XG4gICAgICogXSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAvLyByZXN1bHRzIGlzIGVxdWFsIHRvIFsnb25lJywndHdvJ11cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIGFuIGV4YW1wbGUgdXNpbmcgb2JqZWN0cyBpbnN0ZWFkIG9mIGFycmF5c1xuICAgICAqIGFzeW5jLnNlcmllcyh7XG4gICAgICogICAgIG9uZTogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgLy8gZG8gc29tZSBhc3luYyB0YXNrXG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgMSk7XG4gICAgICogICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICB0d286IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIC8vIHRoZW4gZG8gYW5vdGhlciBhc3luYyB0YXNrXG4gICAgICogICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgMik7XG4gICAgICogICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICB9XG4gICAgICogfSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqICAgICAvLyByZXN1bHRzIGlzIGVxdWFsIHRvOiB7IG9uZTogMSwgdHdvOiAyIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5zZXJpZXMoW1xuICAgICAqICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAnb25lJyk7XG4gICAgICogICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAndHdvJyk7XG4gICAgICogICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICB9XG4gICAgICogXSkudGhlbihyZXN1bHRzID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgIC8vIHJlc3VsdHMgaXMgZXF1YWwgdG8gWydvbmUnLCd0d28nXVxuICAgICAqIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBhbiBleGFtcGxlIHVzaW5nIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5XG4gICAgICogYXN5bmMuc2VyaWVzKHtcbiAgICAgKiAgICAgb25lOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICAvLyBkbyBzb21lIGFzeW5jIHRhc2tcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAxKTtcbiAgICAgKiAgICAgICAgIH0sIDIwMCk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIHR3bzogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICogICAgICAgICAgICAgLy8gdGhlbiBkbyBhbm90aGVyIGFzeW5jIHRhc2tcbiAgICAgKiAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAyKTtcbiAgICAgKiAgICAgICAgIH0sIDEwMCk7XG4gICAgICogICAgIH1cbiAgICAgKiB9KS50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyBpcyBlcXVhbCB0bzogeyBvbmU6IDEsIHR3bzogMiB9XG4gICAgICogfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiBhc3luYyAoKSA9PiB7XG4gICAgICogICAgIHRyeSB7XG4gICAgICogICAgICAgICBsZXQgcmVzdWx0cyA9IGF3YWl0IGFzeW5jLnNlcmllcyhbXG4gICAgICogICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIC8vIGRvIHNvbWUgYXN5bmMgdGFza1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScpO1xuICAgICAqICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAqICAgICAgICAgICAgIH0sXG4gICAgICogICAgICAgICAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gZG8gYW5vdGhlciBhc3luYyB0YXNrXG4gICAgICogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAndHdvJyk7XG4gICAgICogICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICogICAgICAgICAgICAgfVxuICAgICAqICAgICAgICAgXSk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdHMgaXMgZXF1YWwgdG8gWydvbmUnLCd0d28nXVxuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyBhbiBleGFtcGxlIHVzaW5nIGFuIG9iamVjdCBpbnN0ZWFkIG9mIGFuIGFycmF5XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBhc3luYy5wYXJhbGxlbCh7XG4gICAgICogICAgICAgICAgICAgb25lOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgLy8gZG8gc29tZSBhc3luYyB0YXNrXG4gICAgICogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLCAxKTtcbiAgICAgKiAgICAgICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgKiAgICAgICAgICAgICB9LFxuICAgICAqICAgICAgICAgICAgdHdvOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiBkbyBhbm90aGVyIGFzeW5jIHRhc2tcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIDIpO1xuICAgICAqICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAqICAgICAgICAgICAgfVxuICAgICAqICAgICAgICAgfSk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgIC8vIHJlc3VsdHMgaXMgZXF1YWwgdG86IHsgb25lOiAxLCB0d286IDIgfVxuICAgICAqICAgICB9XG4gICAgICogICAgIGNhdGNoIChlcnIpIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgIH1cbiAgICAgKiB9XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXJpZXModGFza3MsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBwYXJhbGxlbChlYWNoT2ZTZXJpZXMkMSwgdGFza3MsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiB0aGUgYGNvbGxgIHNhdGlzZmllcyBhbiBhc3luYyB0ZXN0LlxuICAgICAqIElmIGFueSBpdGVyYXRlZSBjYWxsIHJldHVybnMgYHRydWVgLCB0aGUgbWFpbiBgY2FsbGJhY2tgIGlzIGltbWVkaWF0ZWx5XG4gICAgICogY2FsbGVkLlxuICAgICAqXG4gICAgICogQG5hbWUgc29tZVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBhbGlhcyBhbnlcbiAgICAgKiBAY2F0ZWdvcnkgQ29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7QXJyYXl8SXRlcmFibGV8QXN5bmNJdGVyYWJsZXxPYmplY3R9IGNvbGwgLSBBIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyB0cnV0aCB0ZXN0IHRvIGFwcGx5IHRvIGVhY2ggaXRlbVxuICAgICAqIGluIHRoZSBjb2xsZWN0aW9ucyBpbiBwYXJhbGxlbC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSBib29sZWFuIGByZXN1bHRgIHZhbHVlLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhcyBzb29uIGFzIGFueVxuICAgICAqIGl0ZXJhdGVlIHJldHVybnMgYHRydWVgLCBvciBhZnRlciBhbGwgdGhlIGl0ZXJhdGVlIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLlxuICAgICAqIFJlc3VsdCB3aWxsIGJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNlYCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZiB0aGUgYXN5bmNcbiAgICAgKiB0ZXN0cy4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZGlyMSBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUxLnR4dCwgZmlsZTIudHh0XG4gICAgICogLy8gZGlyMiBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGUzLnR4dCwgZmlsZTQudHh0XG4gICAgICogLy8gZGlyMyBpcyBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGZpbGU1LnR4dFxuICAgICAqIC8vIGRpcjQgZG9lcyBub3QgZXhpc3RcbiAgICAgKlxuICAgICAqIC8vIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiBhIGZpbGUgZXhpc3RzXG4gICAgICogZnVuY3Rpb24gZmlsZUV4aXN0cyhmaWxlLCBjYWxsYmFjaykge1xuICAgICAqICAgIGZzLmFjY2VzcyhmaWxlLCBmcy5jb25zdGFudHMuRl9PSywgKGVycikgPT4ge1xuICAgICAqICAgICAgICBjYWxsYmFjayhudWxsLCAhZXJyKTtcbiAgICAgKiAgICB9KTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBjYWxsYmFja3NcbiAgICAgKiBhc3luYy5zb21lKFsnZGlyMS9taXNzaW5nLnR4dCcsJ2RpcjIvbWlzc2luZy50eHQnLCdkaXIzL2ZpbGU1LnR4dCddLCBmaWxlRXhpc3RzLFxuICAgICAqICAgIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgICAgIC8vIHRydWVcbiAgICAgKiAgICAgICAgLy8gcmVzdWx0IGlzIHRydWUgc2luY2Ugc29tZSBmaWxlIGluIHRoZSBsaXN0IGV4aXN0c1xuICAgICAqICAgIH1cbiAgICAgKik7XG4gICAgICpcbiAgICAgKiBhc3luYy5zb21lKFsnZGlyMS9taXNzaW5nLnR4dCcsJ2RpcjIvbWlzc2luZy50eHQnLCdkaXI0L21pc3NpbmcudHh0J10sIGZpbGVFeGlzdHMsXG4gICAgICogICAgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgLy8gZmFsc2VcbiAgICAgKiAgICAgICAgLy8gcmVzdWx0IGlzIGZhbHNlIHNpbmNlIG5vbmUgb2YgdGhlIGZpbGVzIGV4aXN0c1xuICAgICAqICAgIH1cbiAgICAgKik7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBQcm9taXNlc1xuICAgICAqIGFzeW5jLnNvbWUoWydkaXIxL21pc3NpbmcudHh0JywnZGlyMi9taXNzaW5nLnR4dCcsJ2RpcjMvZmlsZTUudHh0J10sIGZpbGVFeGlzdHMpXG4gICAgICogLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIHRydWVcbiAgICAgKiAgICAgLy8gcmVzdWx0IGlzIHRydWUgc2luY2Ugc29tZSBmaWxlIGluIHRoZSBsaXN0IGV4aXN0c1xuICAgICAqIH0pLmNhdGNoKCBlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogYXN5bmMuc29tZShbJ2RpcjEvbWlzc2luZy50eHQnLCdkaXIyL21pc3NpbmcudHh0JywnZGlyNC9taXNzaW5nLnR4dCddLCBmaWxlRXhpc3RzKVxuICAgICAqIC50aGVuKCByZXN1bHQgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAvLyBmYWxzZVxuICAgICAqICAgICAvLyByZXN1bHQgaXMgZmFsc2Ugc2luY2Ugbm9uZSBvZiB0aGUgZmlsZXMgZXhpc3RzXG4gICAgICogfSkuY2F0Y2goIGVyciA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBhc3luYy9hd2FpdFxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBhc3luYy5zb21lKFsnZGlyMS9taXNzaW5nLnR4dCcsJ2RpcjIvbWlzc2luZy50eHQnLCdkaXIzL2ZpbGU1LnR4dCddLCBmaWxlRXhpc3RzKTtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgICAgICAvLyB0cnVlXG4gICAgICogICAgICAgICAvLyByZXN1bHQgaXMgdHJ1ZSBzaW5jZSBzb21lIGZpbGUgaW4gdGhlIGxpc3QgZXhpc3RzXG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBhc3luYy5zb21lKFsnZGlyMS9taXNzaW5nLnR4dCcsJ2RpcjIvbWlzc2luZy50eHQnLCdkaXI0L21pc3NpbmcudHh0J10sIGZpbGVFeGlzdHMpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgIC8vIGZhbHNlXG4gICAgICogICAgICAgICAvLyByZXN1bHQgaXMgZmFsc2Ugc2luY2Ugbm9uZSBvZiB0aGUgZmlsZXMgZXhpc3RzXG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvbWUoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBfY3JlYXRlVGVzdGVyKEJvb2xlYW4sIHJlcyA9PiByZXMpKGVhY2hPZiQxLCBjb2xsLCBpdGVyYXRlZSwgY2FsbGJhY2spXG4gICAgfVxuICAgIHZhciBzb21lJDEgPSBhd2FpdGlmeShzb21lLCAzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgc29tZWBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5zb21lfSBidXQgcnVucyBhIG1heGltdW0gb2YgYGxpbWl0YCBhc3luYyBvcGVyYXRpb25zIGF0IGEgdGltZS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHNvbWVMaW1pdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnNvbWVde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5zb21lfVxuICAgICAqIEBhbGlhcyBhbnlMaW1pdFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGFzeW5jIG9wZXJhdGlvbnMgYXQgYSB0aW1lLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyB0cnV0aCB0ZXN0IHRvIGFwcGx5IHRvIGVhY2ggaXRlbVxuICAgICAqIGluIHRoZSBjb2xsZWN0aW9ucyBpbiBwYXJhbGxlbC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSBib29sZWFuIGByZXN1bHRgIHZhbHVlLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhcyBzb29uIGFzIGFueVxuICAgICAqIGl0ZXJhdGVlIHJldHVybnMgYHRydWVgLCBvciBhZnRlciBhbGwgdGhlIGl0ZXJhdGVlIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLlxuICAgICAqIFJlc3VsdCB3aWxsIGJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNlYCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZiB0aGUgYXN5bmNcbiAgICAgKiB0ZXN0cy4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb21lTGltaXQoY29sbCwgbGltaXQsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2NyZWF0ZVRlc3RlcihCb29sZWFuLCByZXMgPT4gcmVzKShlYWNoT2ZMaW1pdChsaW1pdCksIGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG4gICAgdmFyIHNvbWVMaW1pdCQxID0gYXdhaXRpZnkoc29tZUxpbWl0LCA0KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFtgc29tZWBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5zb21lfSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSBzb21lU2VyaWVzXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMuc29tZV17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLnNvbWV9XG4gICAgICogQGFsaWFzIGFueVNlcmllc1xuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIHRydXRoIHRlc3QgdG8gYXBwbHkgdG8gZWFjaCBpdGVtXG4gICAgICogaW4gdGhlIGNvbGxlY3Rpb25zIGluIHNlcmllcy5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSBib29sZWFuIGByZXN1bHRgIHZhbHVlLlxuICAgICAqIEludm9rZWQgd2l0aCAoaXRlbSwgY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhcyBzb29uIGFzIGFueVxuICAgICAqIGl0ZXJhdGVlIHJldHVybnMgYHRydWVgLCBvciBhZnRlciBhbGwgdGhlIGl0ZXJhdGVlIGZ1bmN0aW9ucyBoYXZlIGZpbmlzaGVkLlxuICAgICAqIFJlc3VsdCB3aWxsIGJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNlYCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZiB0aGUgYXN5bmNcbiAgICAgKiB0ZXN0cy4gSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzb21lU2VyaWVzKGNvbGwsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gX2NyZWF0ZVRlc3RlcihCb29sZWFuLCByZXMgPT4gcmVzKShlYWNoT2ZTZXJpZXMkMSwgY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cbiAgICB2YXIgc29tZVNlcmllcyQxID0gYXdhaXRpZnkoc29tZVNlcmllcywgMyk7XG5cbiAgICAvKipcbiAgICAgKiBTb3J0cyBhIGxpc3QgYnkgdGhlIHJlc3VsdHMgb2YgcnVubmluZyBlYWNoIGBjb2xsYCB2YWx1ZSB0aHJvdWdoIGFuIGFzeW5jXG4gICAgICogYGl0ZXJhdGVlYC5cbiAgICAgKlxuICAgICAqIEBuYW1lIHNvcnRCeVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbGxlY3Rpb25zXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheXxJdGVyYWJsZXxBc3luY0l0ZXJhYmxlfE9iamVjdH0gY29sbCAtIEEgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEFuIGFzeW5jIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggaXRlbSBpblxuICAgICAqIGBjb2xsYC5cbiAgICAgKiBUaGUgaXRlcmF0ZWUgc2hvdWxkIGNvbXBsZXRlIHdpdGggYSB2YWx1ZSB0byB1c2UgYXMgdGhlIHNvcnQgY3JpdGVyaWEgYXNcbiAgICAgKiBpdHMgYHJlc3VsdGAuXG4gICAgICogSW52b2tlZCB3aXRoIChpdGVtLCBjYWxsYmFjaykuXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciBhbGwgdGhlXG4gICAgICogYGl0ZXJhdGVlYCBmdW5jdGlvbnMgaGF2ZSBmaW5pc2hlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBSZXN1bHRzIGlzIHRoZSBpdGVtc1xuICAgICAqIGZyb20gdGhlIG9yaWdpbmFsIGBjb2xsYCBzb3J0ZWQgYnkgdGhlIHZhbHVlcyByZXR1cm5lZCBieSB0aGUgYGl0ZXJhdGVlYFxuICAgICAqIGNhbGxzLiBJbnZva2VkIHdpdGggKGVyciwgcmVzdWx0cykuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIC8vIGJpZ2ZpbGUudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDI1MTEwMCBieXRlcyBpbiBzaXplXG4gICAgICogLy8gbWVkaXVtZmlsZS50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMTEwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIHNtYWxsZmlsZS50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMTIxIGJ5dGVzIGluIHNpemVcbiAgICAgKlxuICAgICAqIC8vIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGZpbGUgc2l6ZSBpbiBieXRlc1xuICAgICAqIGZ1bmN0aW9uIGdldEZpbGVTaXplSW5CeXRlcyhmaWxlLCBjYWxsYmFjaykge1xuICAgICAqICAgICBmcy5zdGF0KGZpbGUsIGZ1bmN0aW9uKGVyciwgc3RhdCkge1xuICAgICAqICAgICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgc3RhdC5zaXplKTtcbiAgICAgKiAgICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogLy8gVXNpbmcgY2FsbGJhY2tzXG4gICAgICogYXN5bmMuc29ydEJ5KFsnbWVkaXVtZmlsZS50eHQnLCdzbWFsbGZpbGUudHh0JywnYmlnZmlsZS50eHQnXSwgZ2V0RmlsZVNpemVJbkJ5dGVzLFxuICAgICAqICAgICBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgICAgICAvLyByZXN1bHRzIGlzIG5vdyB0aGUgb3JpZ2luYWwgYXJyYXkgb2YgZmlsZXMgc29ydGVkIGJ5XG4gICAgICogICAgICAgICAgICAgLy8gZmlsZSBzaXplIChhc2NlbmRpbmcgYnkgZGVmYXVsdCksIGUuZy5cbiAgICAgKiAgICAgICAgICAgICAvLyBbICdzbWFsbGZpbGUudHh0JywgJ21lZGl1bWZpbGUudHh0JywgJ2JpZ2ZpbGUudHh0J11cbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgfVxuICAgICAqICk7XG4gICAgICpcbiAgICAgKiAvLyBCeSBtb2RpZnlpbmcgdGhlIGNhbGxiYWNrIHBhcmFtZXRlciB0aGVcbiAgICAgKiAvLyBzb3J0aW5nIG9yZGVyIGNhbiBiZSBpbmZsdWVuY2VkOlxuICAgICAqXG4gICAgICogLy8gYXNjZW5kaW5nIG9yZGVyXG4gICAgICogYXN5bmMuc29ydEJ5KFsnbWVkaXVtZmlsZS50eHQnLCdzbWFsbGZpbGUudHh0JywnYmlnZmlsZS50eHQnXSwgZnVuY3Rpb24oZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZ2V0RmlsZVNpemVJbkJ5dGVzKGZpbGUsIGZ1bmN0aW9uKGdldEZpbGVTaXplRXJyLCBmaWxlU2l6ZSkge1xuICAgICAqICAgICAgICAgaWYgKGdldEZpbGVTaXplRXJyKSByZXR1cm4gY2FsbGJhY2soZ2V0RmlsZVNpemVFcnIpO1xuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgZmlsZVNpemUpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiB9LCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgICAgICAvLyByZXN1bHRzIGlzIG5vdyB0aGUgb3JpZ2luYWwgYXJyYXkgb2YgZmlsZXMgc29ydGVkIGJ5XG4gICAgICogICAgICAgICAgICAgLy8gZmlsZSBzaXplIChhc2NlbmRpbmcgYnkgZGVmYXVsdCksIGUuZy5cbiAgICAgKiAgICAgICAgICAgICAvLyBbICdzbWFsbGZpbGUudHh0JywgJ21lZGl1bWZpbGUudHh0JywgJ2JpZ2ZpbGUudHh0J11cbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgfVxuICAgICAqICk7XG4gICAgICpcbiAgICAgKiAvLyBkZXNjZW5kaW5nIG9yZGVyXG4gICAgICogYXN5bmMuc29ydEJ5KFsnYmlnZmlsZS50eHQnLCdtZWRpdW1maWxlLnR4dCcsJ3NtYWxsZmlsZS50eHQnXSwgZnVuY3Rpb24oZmlsZSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZ2V0RmlsZVNpemVJbkJ5dGVzKGZpbGUsIGZ1bmN0aW9uKGdldEZpbGVTaXplRXJyLCBmaWxlU2l6ZSkge1xuICAgICAqICAgICAgICAgaWYgKGdldEZpbGVTaXplRXJyKSB7XG4gICAgICogICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGdldEZpbGVTaXplRXJyKTtcbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsIGZpbGVTaXplICogLTEpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiB9LCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgICAgICAgICAvLyByZXN1bHRzIGlzIG5vdyB0aGUgb3JpZ2luYWwgYXJyYXkgb2YgZmlsZXMgc29ydGVkIGJ5XG4gICAgICogICAgICAgICAgICAgLy8gZmlsZSBzaXplIChhc2NlbmRpbmcgYnkgZGVmYXVsdCksIGUuZy5cbiAgICAgKiAgICAgICAgICAgICAvLyBbICdiaWdmaWxlLnR4dCcsICdtZWRpdW1maWxlLnR4dCcsICdzbWFsbGZpbGUudHh0J11cbiAgICAgKiAgICAgICAgIH1cbiAgICAgKiAgICAgfVxuICAgICAqICk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBoYW5kbGluZ1xuICAgICAqIGFzeW5jLnNvcnRCeShbJ21lZGl1bWZpbGUudHh0Jywnc21hbGxmaWxlLnR4dCcsJ21pc3NpbmdmaWxlLnR4dCddLCBnZXRGaWxlU2l6ZUluQnl0ZXMsXG4gICAgICogICAgIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICogICAgICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgICAgIH0gZWxzZSB7XG4gICAgICogICAgICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgICAgICB9XG4gICAgICogICAgIH1cbiAgICAgKiApO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgUHJvbWlzZXNcbiAgICAgKiBhc3luYy5zb3J0QnkoWydtZWRpdW1maWxlLnR4dCcsJ3NtYWxsZmlsZS50eHQnLCdiaWdmaWxlLnR4dCddLCBnZXRGaWxlU2l6ZUluQnl0ZXMpXG4gICAgICogLnRoZW4oIHJlc3VsdHMgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgLy8gcmVzdWx0cyBpcyBub3cgdGhlIG9yaWdpbmFsIGFycmF5IG9mIGZpbGVzIHNvcnRlZCBieVxuICAgICAqICAgICAvLyBmaWxlIHNpemUgKGFzY2VuZGluZyBieSBkZWZhdWx0KSwgZS5nLlxuICAgICAqICAgICAvLyBbICdzbWFsbGZpbGUudHh0JywgJ21lZGl1bWZpbGUudHh0JywgJ2JpZ2ZpbGUudHh0J11cbiAgICAgKiB9KS5jYXRjaCggZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgICogYXN5bmMuc29ydEJ5KFsnbWVkaXVtZmlsZS50eHQnLCdzbWFsbGZpbGUudHh0JywnbWlzc2luZ2ZpbGUudHh0J10sIGdldEZpbGVTaXplSW5CeXRlcylcbiAgICAgKiAudGhlbiggcmVzdWx0cyA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xuICAgICAqIH0pLmNhdGNoKCBlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAvLyBbIEVycm9yOiBFTk9FTlQ6IG5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgXVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiAoYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBhc3luYy5zb3J0QnkoWydiaWdmaWxlLnR4dCcsJ21lZGl1bWZpbGUudHh0Jywnc21hbGxmaWxlLnR4dCddLCBnZXRGaWxlU2l6ZUluQnl0ZXMpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0cyk7XG4gICAgICogICAgICAgICAvLyByZXN1bHRzIGlzIG5vdyB0aGUgb3JpZ2luYWwgYXJyYXkgb2YgZmlsZXMgc29ydGVkIGJ5XG4gICAgICogICAgICAgICAvLyBmaWxlIHNpemUgKGFzY2VuZGluZyBieSBkZWZhdWx0KSwgZS5nLlxuICAgICAqICAgICAgICAgLy8gWyAnc21hbGxmaWxlLnR4dCcsICdtZWRpdW1maWxlLnR4dCcsICdiaWdmaWxlLnR4dCddXG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH0pKCk7XG4gICAgICpcbiAgICAgKiAvLyBFcnJvciBoYW5kbGluZ1xuICAgICAqIGFzeW5jICgpID0+IHtcbiAgICAgKiAgICAgdHJ5IHtcbiAgICAgKiAgICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgYXN5bmMuc29ydEJ5KFsnbWlzc2luZ2ZpbGUudHh0JywnbWVkaXVtZmlsZS50eHQnLCdzbWFsbGZpbGUudHh0J10sIGdldEZpbGVTaXplSW5CeXRlcyk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRzKTtcbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICAgICAgLy8gWyBFcnJvcjogRU5PRU5UOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IF1cbiAgICAgKiAgICAgfVxuICAgICAqIH1cbiAgICAgKlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNvcnRCeSAoY29sbCwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfaXRlcmF0ZWUgPSB3cmFwQXN5bmMoaXRlcmF0ZWUpO1xuICAgICAgICByZXR1cm4gbWFwJDEoY29sbCwgKHgsIGl0ZXJDYikgPT4ge1xuICAgICAgICAgICAgX2l0ZXJhdGVlKHgsIChlcnIsIGNyaXRlcmlhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGl0ZXJDYihlcnIpO1xuICAgICAgICAgICAgICAgIGl0ZXJDYihlcnIsIHt2YWx1ZTogeCwgY3JpdGVyaWF9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoZXJyLCByZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHJlc3VsdHMuc29ydChjb21wYXJhdG9yKS5tYXAodiA9PiB2LnZhbHVlKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmF0b3IobGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgIHZhciBhID0gbGVmdC5jcml0ZXJpYSwgYiA9IHJpZ2h0LmNyaXRlcmlhO1xuICAgICAgICAgICAgcmV0dXJuIGEgPCBiID8gLTEgOiBhID4gYiA/IDEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBzb3J0QnkkMSA9IGF3YWl0aWZ5KHNvcnRCeSwgMyk7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdGltZSBsaW1pdCBvbiBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24uIElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCBjYWxsXG4gICAgICogaXRzIGNhbGxiYWNrIHdpdGhpbiB0aGUgc3BlY2lmaWVkIG1pbGxpc2Vjb25kcywgaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBhXG4gICAgICogdGltZW91dCBlcnJvci4gVGhlIGNvZGUgcHJvcGVydHkgZm9yIHRoZSBlcnJvciBvYmplY3Qgd2lsbCBiZSBgJ0VUSU1FRE9VVCdgLlxuICAgICAqXG4gICAgICogQG5hbWUgdGltZW91dFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOlV0aWxzXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBhc3luY0ZuIC0gVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGxpbWl0IGluIHRpbWUuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1pbGxpc2Vjb25kcyAtIFRoZSBzcGVjaWZpZWQgdGltZSBsaW1pdC5cbiAgICAgKiBAcGFyYW0geyp9IFtpbmZvXSAtIEFueSB2YXJpYWJsZSB5b3Ugd2FudCBhdHRhY2hlZCAoYHN0cmluZ2AsIGBvYmplY3RgLCBldGMpXG4gICAgICogdG8gdGltZW91dCBFcnJvciBmb3IgbW9yZSBpbmZvcm1hdGlvbi4uXG4gICAgICogQHJldHVybnMge0FzeW5jRnVuY3Rpb259IFJldHVybnMgYSB3cmFwcGVkIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBhbnlcbiAgICAgKiBvZiB0aGUgY29udHJvbCBmbG93IGZ1bmN0aW9ucy5cbiAgICAgKiBJbnZva2UgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgeW91IHdvdWxkIGBhc3luY0Z1bmNgLlxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiBmdW5jdGlvbiBteUZ1bmN0aW9uKGZvbywgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgZG9Bc3luY1Rhc2soZm9vLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgKiAgICAgICAgIC8vIGhhbmRsZSBlcnJvcnNcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAqXG4gICAgICogICAgICAgICAvLyBkbyBzb21lIHN0dWZmIC4uLlxuICAgICAqXG4gICAgICogICAgICAgICAvLyByZXR1cm4gcHJvY2Vzc2VkIGRhdGFcbiAgICAgKiAgICAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCBkYXRhKTtcbiAgICAgKiAgICAgfSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogdmFyIHdyYXBwZWQgPSBhc3luYy50aW1lb3V0KG15RnVuY3Rpb24sIDEwMDApO1xuICAgICAqXG4gICAgICogLy8gY2FsbCBgd3JhcHBlZGAgYXMgeW91IHdvdWxkIGBteUZ1bmN0aW9uYFxuICAgICAqIHdyYXBwZWQoeyBiYXI6ICdiYXInIH0sIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAqICAgICAvLyBpZiBgbXlGdW5jdGlvbmAgdGFrZXMgPCAxMDAwIG1zIHRvIGV4ZWN1dGUsIGBlcnJgXG4gICAgICogICAgIC8vIGFuZCBgZGF0YWAgd2lsbCBoYXZlIHRoZWlyIGV4cGVjdGVkIHZhbHVlc1xuICAgICAqXG4gICAgICogICAgIC8vIGVsc2UgYGVycmAgd2lsbCBiZSBhbiBFcnJvciB3aXRoIHRoZSBjb2RlICdFVElNRURPVVQnXG4gICAgICogfSk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZW91dChhc3luY0ZuLCBtaWxsaXNlY29uZHMsIGluZm8pIHtcbiAgICAgICAgdmFyIGZuID0gd3JhcEFzeW5jKGFzeW5jRm4pO1xuXG4gICAgICAgIHJldHVybiBpbml0aWFsUGFyYW1zKChhcmdzLCBjYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgdmFyIHRpbWVkT3V0ID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgdGltZXI7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHRpbWVvdXRDYWxsYmFjaygpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGFzeW5jRm4ubmFtZSB8fCAnYW5vbnltb3VzJztcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3IgID0gbmV3IEVycm9yKCdDYWxsYmFjayBmdW5jdGlvbiBcIicgKyBuYW1lICsgJ1wiIHRpbWVkIG91dC4nKTtcbiAgICAgICAgICAgICAgICBlcnJvci5jb2RlID0gJ0VUSU1FRE9VVCc7XG4gICAgICAgICAgICAgICAgaWYgKGluZm8pIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuaW5mbyA9IGluZm87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRpbWVkT3V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFyZ3MucHVzaCgoLi4uY2JBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aW1lZE91dCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayguLi5jYkFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBzZXR1cCB0aW1lciBhbmQgY2FsbCBvcmlnaW5hbCBmdW5jdGlvblxuICAgICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KHRpbWVvdXRDYWxsYmFjaywgbWlsbGlzZWNvbmRzKTtcbiAgICAgICAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByYW5nZShzaXplKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBBcnJheShzaXplKTtcbiAgICAgICAgd2hpbGUgKHNpemUtLSkge1xuICAgICAgICAgICAgcmVzdWx0W3NpemVdID0gc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFt0aW1lc117QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnRpbWVzfSBidXQgcnVucyBhIG1heGltdW0gb2YgYGxpbWl0YCBhc3luYyBvcGVyYXRpb25zIGF0IGFcbiAgICAgKiB0aW1lLlxuICAgICAqXG4gICAgICogQG5hbWUgdGltZXNMaW1pdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnRpbWVzXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cudGltZXN9XG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudCAtIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgb3BlcmF0aW9ucyBhdCBhIHRpbWUuXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsIGBuYCB0aW1lcy5cbiAgICAgKiBJbnZva2VkIHdpdGggdGhlIGl0ZXJhdGlvbiBpbmRleCBhbmQgYSBjYWxsYmFjazogKG4sIG5leHQpLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gc2VlIFthc3luYy5tYXBde0BsaW5rIG1vZHVsZTpDb2xsZWN0aW9ucy5tYXB9LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIG5vIGNhbGxiYWNrIGlzIHByb3ZpZGVkXG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZXNMaW1pdChjb3VudCwgbGltaXQsIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgX2l0ZXJhdGVlID0gd3JhcEFzeW5jKGl0ZXJhdGVlKTtcbiAgICAgICAgcmV0dXJuIG1hcExpbWl0JDEocmFuZ2UoY291bnQpLCBsaW1pdCwgX2l0ZXJhdGVlLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgdGhlIGBpdGVyYXRlZWAgZnVuY3Rpb24gYG5gIHRpbWVzLCBhbmQgYWNjdW11bGF0ZXMgcmVzdWx0cyBpbiB0aGUgc2FtZVxuICAgICAqIG1hbm5lciB5b3Ugd291bGQgdXNlIHdpdGggW21hcF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLm1hcH0uXG4gICAgICpcbiAgICAgKiBAbmFtZSB0aW1lc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLm1hcF17QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLm1hcH1cbiAgICAgKiBAY2F0ZWdvcnkgQ29udHJvbCBGbG93XG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG4gLSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsIGBuYCB0aW1lcy5cbiAgICAgKiBJbnZva2VkIHdpdGggdGhlIGl0ZXJhdGlvbiBpbmRleCBhbmQgYSBjYWxsYmFjazogKG4sIG5leHQpLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gc2VlIHtAbGluayBtb2R1bGU6Q29sbGVjdGlvbnMubWFwfS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBpcyBwcm92aWRlZFxuICAgICAqIEBleGFtcGxlXG4gICAgICpcbiAgICAgKiAvLyBQcmV0ZW5kIHRoaXMgaXMgc29tZSBjb21wbGljYXRlZCBhc3luYyBmYWN0b3J5XG4gICAgICogdmFyIGNyZWF0ZVVzZXIgPSBmdW5jdGlvbihpZCwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgY2FsbGJhY2sobnVsbCwge1xuICAgICAqICAgICAgICAgaWQ6ICd1c2VyJyArIGlkXG4gICAgICogICAgIH0pO1xuICAgICAqIH07XG4gICAgICpcbiAgICAgKiAvLyBnZW5lcmF0ZSA1IHVzZXJzXG4gICAgICogYXN5bmMudGltZXMoNSwgZnVuY3Rpb24obiwgbmV4dCkge1xuICAgICAqICAgICBjcmVhdGVVc2VyKG4sIGZ1bmN0aW9uKGVyciwgdXNlcikge1xuICAgICAqICAgICAgICAgbmV4dChlcnIsIHVzZXIpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiB9LCBmdW5jdGlvbihlcnIsIHVzZXJzKSB7XG4gICAgICogICAgIC8vIHdlIHNob3VsZCBub3cgaGF2ZSA1IHVzZXJzXG4gICAgICogfSk7XG4gICAgICovXG4gICAgZnVuY3Rpb24gdGltZXMgKG4sIGl0ZXJhdGVlLCBjYWxsYmFjaykge1xuICAgICAgICByZXR1cm4gdGltZXNMaW1pdChuLCBJbmZpbml0eSwgaXRlcmF0ZWUsIGNhbGxiYWNrKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBzYW1lIGFzIFt0aW1lc117QGxpbmsgbW9kdWxlOkNvbnRyb2xGbG93LnRpbWVzfSBidXQgcnVucyBvbmx5IGEgc2luZ2xlIGFzeW5jIG9wZXJhdGlvbiBhdCBhIHRpbWUuXG4gICAgICpcbiAgICAgKiBAbmFtZSB0aW1lc1Nlcmllc1xuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLnRpbWVzXXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cudGltZXN9XG4gICAgICogQGNhdGVnb3J5IENvbnRyb2wgRmxvd1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuIC0gVGhlIG51bWJlciBvZiB0aW1lcyB0byBydW4gdGhlIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbCBgbmAgdGltZXMuXG4gICAgICogSW52b2tlZCB3aXRoIHRoZSBpdGVyYXRpb24gaW5kZXggYW5kIGEgY2FsbGJhY2s6IChuLCBuZXh0KS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIHNlZSB7QGxpbmsgbW9kdWxlOkNvbGxlY3Rpb25zLm1hcH0uXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcHJvdmlkZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0aW1lc1NlcmllcyAobiwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiB0aW1lc0xpbWl0KG4sIDEsIGl0ZXJhdGVlLCBjYWxsYmFjaylcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBIHJlbGF0aXZlIG9mIGByZWR1Y2VgLiAgVGFrZXMgYW4gT2JqZWN0IG9yIEFycmF5LCBhbmQgaXRlcmF0ZXMgb3ZlciBlYWNoXG4gICAgICogZWxlbWVudCBpbiBwYXJhbGxlbCwgZWFjaCBzdGVwIHBvdGVudGlhbGx5IG11dGF0aW5nIGFuIGBhY2N1bXVsYXRvcmAgdmFsdWUuXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIGFjY3VtdWxhdG9yIGRlZmF1bHRzIHRvIHRoZSB0eXBlIG9mIGNvbGxlY3Rpb24gcGFzc2VkIGluLlxuICAgICAqXG4gICAgICogQG5hbWUgdHJhbnNmb3JtXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29sbGVjdGlvbnNcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSBjb2xsIC0gQSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAgICAgKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gLSBUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgdHJhbnNmb3JtLiAgSWYgb21pdHRlZCxcbiAgICAgKiBpdCB3aWxsIGRlZmF1bHQgdG8gYW4gZW1wdHkgT2JqZWN0IG9yIEFycmF5LCBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgYGNvbGxgXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBpdGVyYXRlZSAtIEEgZnVuY3Rpb24gYXBwbGllZCB0byBlYWNoIGl0ZW0gaW4gdGhlXG4gICAgICogY29sbGVjdGlvbiB0aGF0IHBvdGVudGlhbGx5IG1vZGlmaWVzIHRoZSBhY2N1bXVsYXRvci5cbiAgICAgKiBJbnZva2VkIHdpdGggKGFjY3VtdWxhdG9yLCBpdGVtLCBrZXksIGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHRoZVxuICAgICAqIGBpdGVyYXRlZWAgZnVuY3Rpb25zIGhhdmUgZmluaXNoZWQuIFJlc3VsdCBpcyB0aGUgdHJhbnNmb3JtZWQgYWNjdW11bGF0b3IuXG4gICAgICogSW52b2tlZCB3aXRoIChlcnIsIHJlc3VsdCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgcHJvdmlkZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZmlsZTEudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDEwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIGZpbGUyLnR4dCBpcyBhIGZpbGUgdGhhdCBpcyAyMDAwIGJ5dGVzIGluIHNpemVcbiAgICAgKiAvLyBmaWxlMy50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMzAwMCBieXRlcyBpbiBzaXplXG4gICAgICpcbiAgICAgKiAvLyBoZWxwZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGh1bWFuLXJlYWRhYmxlIHNpemUgZm9ybWF0IGZyb20gYnl0ZXNcbiAgICAgKiBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlcywgZGVjaW1hbHMgPSAyKSB7XG4gICAgICogICAvLyBpbXBsZW1lbnRhdGlvbiBub3QgaW5jbHVkZWQgZm9yIGJyZXZpdHlcbiAgICAgKiAgIHJldHVybiBodW1hblJlYWRibGVGaWxlc2l6ZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBjb25zdCBmaWxlTGlzdCA9IFsnZmlsZTEudHh0JywnZmlsZTIudHh0JywnZmlsZTMudHh0J107XG4gICAgICpcbiAgICAgKiAvLyBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBmaWxlIHNpemUsIHRyYW5zZm9ybWVkIHRvIGh1bWFuLXJlYWRhYmxlIGZvcm1hdFxuICAgICAqIC8vIGUuZy4gMTAyNCBieXRlcyA9IDFLQiwgMTIzNCBieXRlcyA9IDEuMjEgS0IsIDEwNDg1NzYgYnl0ZXMgPSAxTUIsIGV0Yy5cbiAgICAgKiBmdW5jdGlvbiB0cmFuc2Zvcm1GaWxlU2l6ZShhY2MsIHZhbHVlLCBrZXksIGNhbGxiYWNrKSB7XG4gICAgICogICAgIGZzLnN0YXQodmFsdWUsIGZ1bmN0aW9uKGVyciwgc3RhdCkge1xuICAgICAqICAgICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgICAgYWNjW2tleV0gPSBmb3JtYXRCeXRlcyhzdGF0LnNpemUpO1xuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCk7XG4gICAgICogICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLnRyYW5zZm9ybShmaWxlTGlzdCwgdHJhbnNmb3JtRmlsZVNpemUsIGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICogICAgIGlmKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfSBlbHNlIHtcbiAgICAgKiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgICAgICAvLyBbICcxMDAwIEJ5dGVzJywgJzEuOTUgS0InLCAnMi45MyBLQicgXVxuICAgICAqICAgICB9XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiAvLyBVc2luZyBQcm9taXNlc1xuICAgICAqIGFzeW5jLnRyYW5zZm9ybShmaWxlTGlzdCwgdHJhbnNmb3JtRmlsZVNpemUpXG4gICAgICogLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgLy8gWyAnMTAwMCBCeXRlcycsICcxLjk1IEtCJywgJzIuOTMgS0InIF1cbiAgICAgKiB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAqICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gVXNpbmcgYXN5bmMvYXdhaXRcbiAgICAgKiAoYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGFzeW5jLnRyYW5zZm9ybShmaWxlTGlzdCwgdHJhbnNmb3JtRmlsZVNpemUpO1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgIC8vIFsgJzEwMDAgQnl0ZXMnLCAnMS45NSBLQicsICcyLjkzIEtCJyBdXG4gICAgICogICAgIH1cbiAgICAgKiAgICAgY2F0Y2ggKGVycikge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiAgICAgfVxuICAgICAqIH0pKCk7XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogLy8gZmlsZTEudHh0IGlzIGEgZmlsZSB0aGF0IGlzIDEwMDAgYnl0ZXMgaW4gc2l6ZVxuICAgICAqIC8vIGZpbGUyLnR4dCBpcyBhIGZpbGUgdGhhdCBpcyAyMDAwIGJ5dGVzIGluIHNpemVcbiAgICAgKiAvLyBmaWxlMy50eHQgaXMgYSBmaWxlIHRoYXQgaXMgMzAwMCBieXRlcyBpbiBzaXplXG4gICAgICpcbiAgICAgKiAvLyBoZWxwZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGh1bWFuLXJlYWRhYmxlIHNpemUgZm9ybWF0IGZyb20gYnl0ZXNcbiAgICAgKiBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlcywgZGVjaW1hbHMgPSAyKSB7XG4gICAgICogICAvLyBpbXBsZW1lbnRhdGlvbiBub3QgaW5jbHVkZWQgZm9yIGJyZXZpdHlcbiAgICAgKiAgIHJldHVybiBodW1hblJlYWRibGVGaWxlc2l6ZTtcbiAgICAgKiB9XG4gICAgICpcbiAgICAgKiBjb25zdCBmaWxlTWFwID0geyBmMTogJ2ZpbGUxLnR4dCcsIGYyOiAnZmlsZTIudHh0JywgZjM6ICdmaWxlMy50eHQnIH07XG4gICAgICpcbiAgICAgKiAvLyBhc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBmaWxlIHNpemUsIHRyYW5zZm9ybWVkIHRvIGh1bWFuLXJlYWRhYmxlIGZvcm1hdFxuICAgICAqIC8vIGUuZy4gMTAyNCBieXRlcyA9IDFLQiwgMTIzNCBieXRlcyA9IDEuMjEgS0IsIDEwNDg1NzYgYnl0ZXMgPSAxTUIsIGV0Yy5cbiAgICAgKiBmdW5jdGlvbiB0cmFuc2Zvcm1GaWxlU2l6ZShhY2MsIHZhbHVlLCBrZXksIGNhbGxiYWNrKSB7XG4gICAgICogICAgIGZzLnN0YXQodmFsdWUsIGZ1bmN0aW9uKGVyciwgc3RhdCkge1xuICAgICAqICAgICAgICAgaWYgKGVycikge1xuICAgICAqICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAqICAgICAgICAgfVxuICAgICAqICAgICAgICAgYWNjW2tleV0gPSBmb3JtYXRCeXRlcyhzdGF0LnNpemUpO1xuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCk7XG4gICAgICogICAgIH0pO1xuICAgICAqIH1cbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGNhbGxiYWNrc1xuICAgICAqIGFzeW5jLnRyYW5zZm9ybShmaWxlTWFwLCB0cmFuc2Zvcm1GaWxlU2l6ZSwgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgKiAgICAgaWYoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9IGVsc2Uge1xuICAgICAqICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcbiAgICAgKiAgICAgICAgIC8vIHsgZjE6ICcxMDAwIEJ5dGVzJywgZjI6ICcxLjk1IEtCJywgZjM6ICcyLjkzIEtCJyB9XG4gICAgICogICAgIH1cbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIFByb21pc2VzXG4gICAgICogYXN5bmMudHJhbnNmb3JtKGZpbGVNYXAsIHRyYW5zZm9ybUZpbGVTaXplKVxuICAgICAqIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICogICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICogICAgIC8vIHsgZjE6ICcxMDAwIEJ5dGVzJywgZjI6ICcxLjk1IEtCJywgZjM6ICcyLjkzIEtCJyB9XG4gICAgICogfSkuY2F0Y2goZXJyID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIFVzaW5nIGFzeW5jL2F3YWl0XG4gICAgICogYXN5bmMgKCkgPT4ge1xuICAgICAqICAgICB0cnkge1xuICAgICAqICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGFzeW5jLnRyYW5zZm9ybShmaWxlTWFwLCB0cmFuc2Zvcm1GaWxlU2l6ZSk7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAqICAgICAgICAgLy8geyBmMTogJzEwMDAgQnl0ZXMnLCBmMjogJzEuOTUgS0InLCBmMzogJzIuOTMgS0InIH1cbiAgICAgKiAgICAgfVxuICAgICAqICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICogICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAqICAgICB9XG4gICAgICogfVxuICAgICAqXG4gICAgICovXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtIChjb2xsLCBhY2N1bXVsYXRvciwgaXRlcmF0ZWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDw9IDMgJiYgdHlwZW9mIGFjY3VtdWxhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IGl0ZXJhdGVlO1xuICAgICAgICAgICAgaXRlcmF0ZWUgPSBhY2N1bXVsYXRvcjtcbiAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gQXJyYXkuaXNBcnJheShjb2xsKSA/IFtdIDoge307XG4gICAgICAgIH1cbiAgICAgICAgY2FsbGJhY2sgPSBvbmNlKGNhbGxiYWNrIHx8IHByb21pc2VDYWxsYmFjaygpKTtcbiAgICAgICAgdmFyIF9pdGVyYXRlZSA9IHdyYXBBc3luYyhpdGVyYXRlZSk7XG5cbiAgICAgICAgZWFjaE9mJDEoY29sbCwgKHYsIGssIGNiKSA9PiB7XG4gICAgICAgICAgICBfaXRlcmF0ZWUoYWNjdW11bGF0b3IsIHYsIGssIGNiKTtcbiAgICAgICAgfSwgZXJyID0+IGNhbGxiYWNrKGVyciwgYWNjdW11bGF0b3IpKTtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrW1BST01JU0VfU1lNQk9MXVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0IHJ1bnMgZWFjaCB0YXNrIGluIHNlcmllcyBidXQgc3RvcHMgd2hlbmV2ZXIgYW55IG9mIHRoZSBmdW5jdGlvbnMgd2VyZVxuICAgICAqIHN1Y2Nlc3NmdWwuIElmIG9uZSBvZiB0aGUgdGFza3Mgd2VyZSBzdWNjZXNzZnVsLCB0aGUgYGNhbGxiYWNrYCB3aWxsIGJlXG4gICAgICogcGFzc2VkIHRoZSByZXN1bHQgb2YgdGhlIHN1Y2Nlc3NmdWwgdGFzay4gSWYgYWxsIHRhc2tzIGZhaWwsIHRoZSBjYWxsYmFja1xuICAgICAqIHdpbGwgYmUgcGFzc2VkIHRoZSBlcnJvciBhbmQgcmVzdWx0IChpZiBhbnkpIG9mIHRoZSBmaW5hbCBhdHRlbXB0LlxuICAgICAqXG4gICAgICogQG5hbWUgdHJ5RWFjaFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FycmF5fEl0ZXJhYmxlfEFzeW5jSXRlcmFibGV8T2JqZWN0fSB0YXNrcyAtIEEgY29sbGVjdGlvbiBjb250YWluaW5nIGZ1bmN0aW9ucyB0b1xuICAgICAqIHJ1biwgZWFjaCBmdW5jdGlvbiBpcyBwYXNzZWQgYSBgY2FsbGJhY2soZXJyLCByZXN1bHQpYCBpdCBtdXN0IGNhbGwgb25cbiAgICAgKiBjb21wbGV0aW9uIHdpdGggYW4gZXJyb3IgYGVycmAgKHdoaWNoIGNhbiBiZSBgbnVsbGApIGFuZCBhbiBvcHRpb25hbCBgcmVzdWx0YFxuICAgICAqIHZhbHVlLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiBvbmVcbiAgICAgKiBvZiB0aGUgdGFza3MgaGFzIHN1Y2NlZWRlZCwgb3IgYWxsIGhhdmUgZmFpbGVkLiBJdCByZWNlaXZlcyB0aGUgYGVycmAgYW5kXG4gICAgICogYHJlc3VsdGAgYXJndW1lbnRzIG9mIHRoZSBsYXN0IGF0dGVtcHQgYXQgY29tcGxldGluZyB0aGUgYHRhc2tgLiBJbnZva2VkIHdpdGhcbiAgICAgKiAoZXJyLCByZXN1bHRzKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBubyBjYWxsYmFjayBpcyBwYXNzZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGFzeW5jLnRyeUVhY2goW1xuICAgICAqICAgICBmdW5jdGlvbiBnZXREYXRhRnJvbUZpcnN0V2Vic2l0ZShjYWxsYmFjaykge1xuICAgICAqICAgICAgICAgLy8gVHJ5IGdldHRpbmcgdGhlIGRhdGEgZnJvbSB0aGUgZmlyc3Qgd2Vic2l0ZVxuICAgICAqICAgICAgICAgY2FsbGJhY2soZXJyLCBkYXRhKTtcbiAgICAgKiAgICAgfSxcbiAgICAgKiAgICAgZnVuY3Rpb24gZ2V0RGF0YUZyb21TZWNvbmRXZWJzaXRlKGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBGaXJzdCB3ZWJzaXRlIGZhaWxlZCxcbiAgICAgKiAgICAgICAgIC8vIFRyeSBnZXR0aW5nIHRoZSBkYXRhIGZyb20gdGhlIGJhY2t1cCB3ZWJzaXRlXG4gICAgICogICAgICAgICBjYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgICAqICAgICB9XG4gICAgICogXSxcbiAgICAgKiAvLyBvcHRpb25hbCBjYWxsYmFja1xuICAgICAqIGZ1bmN0aW9uKGVyciwgcmVzdWx0cykge1xuICAgICAqICAgICBOb3cgZG8gc29tZXRoaW5nIHdpdGggdGhlIGRhdGEuXG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0cnlFYWNoKHRhc2tzLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgZXJyb3IgPSBudWxsO1xuICAgICAgICB2YXIgcmVzdWx0O1xuICAgICAgICByZXR1cm4gZWFjaFNlcmllcyQxKHRhc2tzLCAodGFzaywgdGFza0NiKSA9PiB7XG4gICAgICAgICAgICB3cmFwQXN5bmModGFzaykoKGVyciwgLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIgPT09IGZhbHNlKSByZXR1cm4gdGFza0NiKGVycik7XG5cbiAgICAgICAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIFtyZXN1bHRdID0gYXJncztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhcmdzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgICB0YXNrQ2IoZXJyID8gbnVsbCA6IHt9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoKSA9PiBjYWxsYmFjayhlcnJvciwgcmVzdWx0KSk7XG4gICAgfVxuXG4gICAgdmFyIHRyeUVhY2gkMSA9IGF3YWl0aWZ5KHRyeUVhY2gpO1xuXG4gICAgLyoqXG4gICAgICogVW5kb2VzIGEgW21lbW9pemVde0BsaW5rIG1vZHVsZTpVdGlscy5tZW1vaXplfWQgZnVuY3Rpb24sIHJldmVydGluZyBpdCB0byB0aGUgb3JpZ2luYWwsXG4gICAgICogdW5tZW1vaXplZCBmb3JtLiBIYW5keSBmb3IgdGVzdGluZy5cbiAgICAgKlxuICAgICAqIEBuYW1lIHVubWVtb2l6ZVxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOlV0aWxzXG4gICAgICogQG1ldGhvZFxuICAgICAqIEBzZWUgW2FzeW5jLm1lbW9pemVde0BsaW5rIG1vZHVsZTpVdGlscy5tZW1vaXplfVxuICAgICAqIEBjYXRlZ29yeSBVdGlsXG4gICAgICogQHBhcmFtIHtBc3luY0Z1bmN0aW9ufSBmbiAtIHRoZSBtZW1vaXplZCBmdW5jdGlvblxuICAgICAqIEByZXR1cm5zIHtBc3luY0Z1bmN0aW9ufSBhIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIG9yaWdpbmFsIHVubWVtb2l6ZWQgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bm1lbW9pemUoZm4pIHtcbiAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGZuLnVubWVtb2l6ZWQgfHwgZm4pKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGVhdGVkbHkgY2FsbCBgaXRlcmF0ZWVgLCB3aGlsZSBgdGVzdGAgcmV0dXJucyBgdHJ1ZWAuIENhbGxzIGBjYWxsYmFja2Agd2hlblxuICAgICAqIHN0b3BwZWQsIG9yIGFuIGVycm9yIG9jY3Vycy5cbiAgICAgKlxuICAgICAqIEBuYW1lIHdoaWxzdFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IHRlc3QgLSBhc3luY2hyb25vdXMgdHJ1dGggdGVzdCB0byBwZXJmb3JtIGJlZm9yZSBlYWNoXG4gICAgICogZXhlY3V0aW9uIG9mIGBpdGVyYXRlZWAuIEludm9rZWQgd2l0aCAoKS5cbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IGl0ZXJhdGVlIC0gQW4gYXN5bmMgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGVhY2ggdGltZVxuICAgICAqIGB0ZXN0YCBwYXNzZXMuIEludm9rZWQgd2l0aCAoY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBhZnRlciB0aGUgdGVzdFxuICAgICAqIGZ1bmN0aW9uIGhhcyBmYWlsZWQgYW5kIHJlcGVhdGVkIGV4ZWN1dGlvbiBvZiBgaXRlcmF0ZWVgIGhhcyBzdG9wcGVkLiBgY2FsbGJhY2tgXG4gICAgICogd2lsbCBiZSBwYXNzZWQgYW4gZXJyb3IgYW5kIGFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmaW5hbCBgaXRlcmF0ZWVgJ3NcbiAgICAgKiBjYWxsYmFjay4gSW52b2tlZCB3aXRoIChlcnIsIFtyZXN1bHRzXSk7XG4gICAgICogQHJldHVybnMge1Byb21pc2V9IGEgcHJvbWlzZSwgaWYgbm8gY2FsbGJhY2sgaXMgcGFzc2VkXG4gICAgICogQGV4YW1wbGVcbiAgICAgKlxuICAgICAqIHZhciBjb3VudCA9IDA7XG4gICAgICogYXN5bmMud2hpbHN0KFxuICAgICAqICAgICBmdW5jdGlvbiB0ZXN0KGNiKSB7IGNiKG51bGwsIGNvdW50IDwgNSk7IH0sXG4gICAgICogICAgIGZ1bmN0aW9uIGl0ZXIoY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIGNvdW50Kys7XG4gICAgICogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAqICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGNvdW50KTtcbiAgICAgKiAgICAgICAgIH0sIDEwMDApO1xuICAgICAqICAgICB9LFxuICAgICAqICAgICBmdW5jdGlvbiAoZXJyLCBuKSB7XG4gICAgICogICAgICAgICAvLyA1IHNlY29uZHMgaGF2ZSBwYXNzZWQsIG4gPSA1XG4gICAgICogICAgIH1cbiAgICAgKiApO1xuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdoaWxzdCh0ZXN0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvbmx5T25jZShjYWxsYmFjayk7XG4gICAgICAgIHZhciBfZm4gPSB3cmFwQXN5bmMoaXRlcmF0ZWUpO1xuICAgICAgICB2YXIgX3Rlc3QgPSB3cmFwQXN5bmModGVzdCk7XG4gICAgICAgIHZhciByZXN1bHRzID0gW107XG5cbiAgICAgICAgZnVuY3Rpb24gbmV4dChlcnIsIC4uLnJlc3QpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgcmVzdWx0cyA9IHJlc3Q7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuO1xuICAgICAgICAgICAgX3Rlc3QoY2hlY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gY2hlY2soZXJyLCB0cnV0aCkge1xuICAgICAgICAgICAgaWYgKGVycikgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0cnV0aCkgcmV0dXJuIGNhbGxiYWNrKG51bGwsIC4uLnJlc3VsdHMpO1xuICAgICAgICAgICAgX2ZuKG5leHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF90ZXN0KGNoZWNrKTtcbiAgICB9XG4gICAgdmFyIHdoaWxzdCQxID0gYXdhaXRpZnkod2hpbHN0LCAzKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGVhdGVkbHkgY2FsbCBgaXRlcmF0ZWVgIHVudGlsIGB0ZXN0YCByZXR1cm5zIGB0cnVlYC4gQ2FsbHMgYGNhbGxiYWNrYCB3aGVuXG4gICAgICogc3RvcHBlZCwgb3IgYW4gZXJyb3Igb2NjdXJzLiBgY2FsbGJhY2tgIHdpbGwgYmUgcGFzc2VkIGFuIGVycm9yIGFuZCBhbnlcbiAgICAgKiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmaW5hbCBgaXRlcmF0ZWVgJ3MgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiBUaGUgaW52ZXJzZSBvZiBbd2hpbHN0XXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cud2hpbHN0fS5cbiAgICAgKlxuICAgICAqIEBuYW1lIHVudGlsXG4gICAgICogQHN0YXRpY1xuICAgICAqIEBtZW1iZXJPZiBtb2R1bGU6Q29udHJvbEZsb3dcbiAgICAgKiBAbWV0aG9kXG4gICAgICogQHNlZSBbYXN5bmMud2hpbHN0XXtAbGluayBtb2R1bGU6Q29udHJvbEZsb3cud2hpbHN0fVxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FzeW5jRnVuY3Rpb259IHRlc3QgLSBhc3luY2hyb25vdXMgdHJ1dGggdGVzdCB0byBwZXJmb3JtIGJlZm9yZSBlYWNoXG4gICAgICogZXhlY3V0aW9uIG9mIGBpdGVyYXRlZWAuIEludm9rZWQgd2l0aCAoY2FsbGJhY2spLlxuICAgICAqIEBwYXJhbSB7QXN5bmNGdW5jdGlvbn0gaXRlcmF0ZWUgLSBBbiBhc3luYyBmdW5jdGlvbiB3aGljaCBpcyBjYWxsZWQgZWFjaCB0aW1lXG4gICAgICogYHRlc3RgIGZhaWxzLiBJbnZva2VkIHdpdGggKGNhbGxiYWNrKS5cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHRlc3RcbiAgICAgKiBmdW5jdGlvbiBoYXMgcGFzc2VkIGFuZCByZXBlYXRlZCBleGVjdXRpb24gb2YgYGl0ZXJhdGVlYCBoYXMgc3RvcHBlZC4gYGNhbGxiYWNrYFxuICAgICAqIHdpbGwgYmUgcGFzc2VkIGFuIGVycm9yIGFuZCBhbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgZmluYWwgYGl0ZXJhdGVlYCdzXG4gICAgICogY2FsbGJhY2suIEludm9rZWQgd2l0aCAoZXJyLCBbcmVzdWx0c10pO1xuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBhIHByb21pc2UsIGlmIGEgY2FsbGJhY2sgaXMgbm90IHBhc3NlZFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByZXN1bHRzID0gW11cbiAgICAgKiBsZXQgZmluaXNoZWQgPSBmYWxzZVxuICAgICAqIGFzeW5jLnVudGlsKGZ1bmN0aW9uIHRlc3QoY2IpIHtcbiAgICAgKiAgICAgY2IobnVsbCwgZmluaXNoZWQpXG4gICAgICogfSwgZnVuY3Rpb24gaXRlcihuZXh0KSB7XG4gICAgICogICAgIGZldGNoUGFnZSh1cmwsIChlcnIsIGJvZHkpID0+IHtcbiAgICAgKiAgICAgICAgIGlmIChlcnIpIHJldHVybiBuZXh0KGVycilcbiAgICAgKiAgICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmNvbmNhdChib2R5Lm9iamVjdHMpXG4gICAgICogICAgICAgICBmaW5pc2hlZCA9ICEhYm9keS5uZXh0XG4gICAgICogICAgICAgICBuZXh0KGVycilcbiAgICAgKiAgICAgfSlcbiAgICAgKiB9LCBmdW5jdGlvbiBkb25lIChlcnIpIHtcbiAgICAgKiAgICAgLy8gYWxsIHBhZ2VzIGhhdmUgYmVlbiBmZXRjaGVkXG4gICAgICogfSlcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB1bnRpbCh0ZXN0LCBpdGVyYXRlZSwgY2FsbGJhY2spIHtcbiAgICAgICAgY29uc3QgX3Rlc3QgPSB3cmFwQXN5bmModGVzdCk7XG4gICAgICAgIHJldHVybiB3aGlsc3QkMSgoY2IpID0+IF90ZXN0KChlcnIsIHRydXRoKSA9PiBjYiAoZXJyLCAhdHJ1dGgpKSwgaXRlcmF0ZWUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSdW5zIHRoZSBgdGFza3NgIGFycmF5IG9mIGZ1bmN0aW9ucyBpbiBzZXJpZXMsIGVhY2ggcGFzc2luZyB0aGVpciByZXN1bHRzIHRvXG4gICAgICogdGhlIG5leHQgaW4gdGhlIGFycmF5LiBIb3dldmVyLCBpZiBhbnkgb2YgdGhlIGB0YXNrc2AgcGFzcyBhbiBlcnJvciB0byB0aGVpclxuICAgICAqIG93biBjYWxsYmFjaywgdGhlIG5leHQgZnVuY3Rpb24gaXMgbm90IGV4ZWN1dGVkLCBhbmQgdGhlIG1haW4gYGNhbGxiYWNrYCBpc1xuICAgICAqIGltbWVkaWF0ZWx5IGNhbGxlZCB3aXRoIHRoZSBlcnJvci5cbiAgICAgKlxuICAgICAqIEBuYW1lIHdhdGVyZmFsbFxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAbWVtYmVyT2YgbW9kdWxlOkNvbnRyb2xGbG93XG4gICAgICogQG1ldGhvZFxuICAgICAqIEBjYXRlZ29yeSBDb250cm9sIEZsb3dcbiAgICAgKiBAcGFyYW0ge0FycmF5fSB0YXNrcyAtIEFuIGFycmF5IG9mIFthc3luYyBmdW5jdGlvbnNde0BsaW5rIEFzeW5jRnVuY3Rpb259XG4gICAgICogdG8gcnVuLlxuICAgICAqIEVhY2ggZnVuY3Rpb24gc2hvdWxkIGNvbXBsZXRlIHdpdGggYW55IG51bWJlciBvZiBgcmVzdWx0YCB2YWx1ZXMuXG4gICAgICogVGhlIGByZXN1bHRgIHZhbHVlcyB3aWxsIGJlIHBhc3NlZCBhcyBhcmd1bWVudHMsIGluIG9yZGVyLCB0byB0aGUgbmV4dCB0YXNrLlxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IFtjYWxsYmFja10gLSBBbiBvcHRpb25hbCBjYWxsYmFjayB0byBydW4gb25jZSBhbGwgdGhlXG4gICAgICogZnVuY3Rpb25zIGhhdmUgY29tcGxldGVkLiBUaGlzIHdpbGwgYmUgcGFzc2VkIHRoZSByZXN1bHRzIG9mIHRoZSBsYXN0IHRhc2snc1xuICAgICAqIGNhbGxiYWNrLiBJbnZva2VkIHdpdGggKGVyciwgW3Jlc3VsdHNdKS5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gYSBwcm9taXNlLCBpZiBhIGNhbGxiYWNrIGlzIG9taXR0ZWRcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogYXN5bmMud2F0ZXJmYWxsKFtcbiAgICAgKiAgICAgZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgICAgIGNhbGxiYWNrKG51bGwsICdvbmUnLCAndHdvJyk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIGZ1bmN0aW9uKGFyZzEsIGFyZzIsIGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBhcmcxIG5vdyBlcXVhbHMgJ29uZScgYW5kIGFyZzIgbm93IGVxdWFscyAndHdvJ1xuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ3RocmVlJyk7XG4gICAgICogICAgIH0sXG4gICAgICogICAgIGZ1bmN0aW9uKGFyZzEsIGNhbGxiYWNrKSB7XG4gICAgICogICAgICAgICAvLyBhcmcxIG5vdyBlcXVhbHMgJ3RocmVlJ1xuICAgICAqICAgICAgICAgY2FsbGJhY2sobnVsbCwgJ2RvbmUnKTtcbiAgICAgKiAgICAgfVxuICAgICAqIF0sIGZ1bmN0aW9uIChlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICAvLyByZXN1bHQgbm93IGVxdWFscyAnZG9uZSdcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIC8vIE9yLCB3aXRoIG5hbWVkIGZ1bmN0aW9uczpcbiAgICAgKiBhc3luYy53YXRlcmZhbGwoW1xuICAgICAqICAgICBteUZpcnN0RnVuY3Rpb24sXG4gICAgICogICAgIG15U2Vjb25kRnVuY3Rpb24sXG4gICAgICogICAgIG15TGFzdEZ1bmN0aW9uLFxuICAgICAqIF0sIGZ1bmN0aW9uIChlcnIsIHJlc3VsdCkge1xuICAgICAqICAgICAvLyByZXN1bHQgbm93IGVxdWFscyAnZG9uZSdcbiAgICAgKiB9KTtcbiAgICAgKiBmdW5jdGlvbiBteUZpcnN0RnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgKiAgICAgY2FsbGJhY2sobnVsbCwgJ29uZScsICd0d28nKTtcbiAgICAgKiB9XG4gICAgICogZnVuY3Rpb24gbXlTZWNvbmRGdW5jdGlvbihhcmcxLCBhcmcyLCBjYWxsYmFjaykge1xuICAgICAqICAgICAvLyBhcmcxIG5vdyBlcXVhbHMgJ29uZScgYW5kIGFyZzIgbm93IGVxdWFscyAndHdvJ1xuICAgICAqICAgICBjYWxsYmFjayhudWxsLCAndGhyZWUnKTtcbiAgICAgKiB9XG4gICAgICogZnVuY3Rpb24gbXlMYXN0RnVuY3Rpb24oYXJnMSwgY2FsbGJhY2spIHtcbiAgICAgKiAgICAgLy8gYXJnMSBub3cgZXF1YWxzICd0aHJlZSdcbiAgICAgKiAgICAgY2FsbGJhY2sobnVsbCwgJ2RvbmUnKTtcbiAgICAgKiB9XG4gICAgICovXG4gICAgZnVuY3Rpb24gd2F0ZXJmYWxsICh0YXNrcywgY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2sgPSBvbmNlKGNhbGxiYWNrKTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRhc2tzKSkgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcignRmlyc3QgYXJndW1lbnQgdG8gd2F0ZXJmYWxsIG11c3QgYmUgYW4gYXJyYXkgb2YgZnVuY3Rpb25zJykpO1xuICAgICAgICBpZiAoIXRhc2tzLmxlbmd0aCkgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgIHZhciB0YXNrSW5kZXggPSAwO1xuXG4gICAgICAgIGZ1bmN0aW9uIG5leHRUYXNrKGFyZ3MpIHtcbiAgICAgICAgICAgIHZhciB0YXNrID0gd3JhcEFzeW5jKHRhc2tzW3Rhc2tJbmRleCsrXSk7XG4gICAgICAgICAgICB0YXNrKC4uLmFyZ3MsIG9ubHlPbmNlKG5leHQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIG5leHQoZXJyLCAuLi5hcmdzKSB7XG4gICAgICAgICAgICBpZiAoZXJyID09PSBmYWxzZSkgcmV0dXJuXG4gICAgICAgICAgICBpZiAoZXJyIHx8IHRhc2tJbmRleCA9PT0gdGFza3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVyciwgLi4uYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0VGFzayhhcmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHRUYXNrKFtdKTtcbiAgICB9XG5cbiAgICB2YXIgd2F0ZXJmYWxsJDEgPSBhd2FpdGlmeSh3YXRlcmZhbGwpO1xuXG4gICAgLyoqXG4gICAgICogQW4gXCJhc3luYyBmdW5jdGlvblwiIGluIHRoZSBjb250ZXh0IG9mIEFzeW5jIGlzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB3aXRoXG4gICAgICogYSB2YXJpYWJsZSBudW1iZXIgb2YgcGFyYW1ldGVycywgd2l0aCB0aGUgZmluYWwgcGFyYW1ldGVyIGJlaW5nIGEgY2FsbGJhY2suXG4gICAgICogKGBmdW5jdGlvbiAoYXJnMSwgYXJnMiwgLi4uLCBjYWxsYmFjaykge31gKVxuICAgICAqIFRoZSBmaW5hbCBjYWxsYmFjayBpcyBvZiB0aGUgZm9ybSBgY2FsbGJhY2soZXJyLCByZXN1bHRzLi4uKWAsIHdoaWNoIG11c3QgYmVcbiAgICAgKiBjYWxsZWQgb25jZSB0aGUgZnVuY3Rpb24gaXMgY29tcGxldGVkLiAgVGhlIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBhXG4gICAgICogRXJyb3IgYXMgaXRzIGZpcnN0IGFyZ3VtZW50IHRvIHNpZ25hbCB0aGF0IGFuIGVycm9yIG9jY3VycmVkLlxuICAgICAqIE90aGVyd2lzZSwgaWYgbm8gZXJyb3Igb2NjdXJyZWQsIGl0IHNob3VsZCBiZSBjYWxsZWQgd2l0aCBgbnVsbGAgYXMgdGhlIGZpcnN0XG4gICAgICogYXJndW1lbnQsIGFuZCBhbnkgYWRkaXRpb25hbCBgcmVzdWx0YCBhcmd1bWVudHMgdGhhdCBtYXkgYXBwbHksIHRvIHNpZ25hbFxuICAgICAqIHN1Y2Nlc3NmdWwgY29tcGxldGlvbi5cbiAgICAgKiBUaGUgY2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlLCBpZGVhbGx5IG9uIGEgbGF0ZXIgdGljayBvZiB0aGVcbiAgICAgKiBKYXZhU2NyaXB0IGV2ZW50IGxvb3AuXG4gICAgICpcbiAgICAgKiBUaGlzIHR5cGUgb2YgZnVuY3Rpb24gaXMgYWxzbyByZWZlcnJlZCB0byBhcyBhIFwiTm9kZS1zdHlsZSBhc3luYyBmdW5jdGlvblwiLFxuICAgICAqIG9yIGEgXCJjb250aW51YXRpb24gcGFzc2luZy1zdHlsZSBmdW5jdGlvblwiIChDUFMpLiBNb3N0IG9mIHRoZSBtZXRob2RzIG9mIHRoaXNcbiAgICAgKiBsaWJyYXJ5IGFyZSB0aGVtc2VsdmVzIENQUy9Ob2RlLXN0eWxlIGFzeW5jIGZ1bmN0aW9ucywgb3IgZnVuY3Rpb25zIHRoYXRcbiAgICAgKiByZXR1cm4gQ1BTL05vZGUtc3R5bGUgYXN5bmMgZnVuY3Rpb25zLlxuICAgICAqXG4gICAgICogV2hlcmV2ZXIgd2UgYWNjZXB0IGEgTm9kZS1zdHlsZSBhc3luYyBmdW5jdGlvbiwgd2UgYWxzbyBkaXJlY3RseSBhY2NlcHQgYW5cbiAgICAgKiBbRVMyMDE3IGBhc3luY2AgZnVuY3Rpb25de0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL1N0YXRlbWVudHMvYXN5bmNfZnVuY3Rpb259LlxuICAgICAqIEluIHRoaXMgY2FzZSwgdGhlIGBhc3luY2AgZnVuY3Rpb24gd2lsbCBub3QgYmUgcGFzc2VkIGEgZmluYWwgY2FsbGJhY2tcbiAgICAgKiBhcmd1bWVudCwgYW5kIGFueSB0aHJvd24gZXJyb3Igd2lsbCBiZSB1c2VkIGFzIHRoZSBgZXJyYCBhcmd1bWVudCBvZiB0aGVcbiAgICAgKiBpbXBsaWNpdCBjYWxsYmFjaywgYW5kIHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSB1c2VkIGFzIHRoZSBgcmVzdWx0YCB2YWx1ZS5cbiAgICAgKiAoaS5lLiBhIGByZWplY3RlZGAgb2YgdGhlIHJldHVybmVkIFByb21pc2UgYmVjb21lcyB0aGUgYGVycmAgY2FsbGJhY2tcbiAgICAgKiBhcmd1bWVudCwgYW5kIGEgYHJlc29sdmVkYCB2YWx1ZSBiZWNvbWVzIHRoZSBgcmVzdWx0YC4pXG4gICAgICpcbiAgICAgKiBOb3RlLCBkdWUgdG8gSmF2YVNjcmlwdCBsaW1pdGF0aW9ucywgd2UgY2FuIG9ubHkgZGV0ZWN0IG5hdGl2ZSBgYXN5bmNgXG4gICAgICogZnVuY3Rpb25zIGFuZCBub3QgdHJhbnNwaWxpZWQgaW1wbGVtZW50YXRpb25zLlxuICAgICAqIFlvdXIgZW52aXJvbm1lbnQgbXVzdCBoYXZlIGBhc3luY2AvYGF3YWl0YCBzdXBwb3J0IGZvciB0aGlzIHRvIHdvcmsuXG4gICAgICogKGUuZy4gTm9kZSA+IHY3LjYsIG9yIGEgcmVjZW50IHZlcnNpb24gb2YgYSBtb2Rlcm4gYnJvd3NlcikuXG4gICAgICogSWYgeW91IGFyZSB1c2luZyBgYXN5bmNgIGZ1bmN0aW9ucyB0aHJvdWdoIGEgdHJhbnNwaWxlciAoZS5nLiBCYWJlbCksIHlvdVxuICAgICAqIG11c3Qgc3RpbGwgd3JhcCB0aGUgZnVuY3Rpb24gd2l0aCBbYXN5bmNpZnlde0BsaW5rIG1vZHVsZTpVdGlscy5hc3luY2lmeX0sXG4gICAgICogYmVjYXVzZSB0aGUgYGFzeW5jIGZ1bmN0aW9uYCB3aWxsIGJlIGNvbXBpbGVkIHRvIGFuIG9yZGluYXJ5IGZ1bmN0aW9uIHRoYXRcbiAgICAgKiByZXR1cm5zIGEgcHJvbWlzZS5cbiAgICAgKlxuICAgICAqIEB0eXBlZGVmIHtGdW5jdGlvbn0gQXN5bmNGdW5jdGlvblxuICAgICAqIEBzdGF0aWNcbiAgICAgKi9cblxuICAgIHZhciBpbmRleCA9IHtcbiAgICAgICAgYXBwbHksXG4gICAgICAgIGFwcGx5RWFjaDogYXBwbHlFYWNoJDEsXG4gICAgICAgIGFwcGx5RWFjaFNlcmllcyxcbiAgICAgICAgYXN5bmNpZnksXG4gICAgICAgIGF1dG8sXG4gICAgICAgIGF1dG9JbmplY3QsXG4gICAgICAgIGNhcmdvLFxuICAgICAgICBjYXJnb1F1ZXVlOiBjYXJnbyQxLFxuICAgICAgICBjb21wb3NlLFxuICAgICAgICBjb25jYXQ6IGNvbmNhdCQxLFxuICAgICAgICBjb25jYXRMaW1pdDogY29uY2F0TGltaXQkMSxcbiAgICAgICAgY29uY2F0U2VyaWVzOiBjb25jYXRTZXJpZXMkMSxcbiAgICAgICAgY29uc3RhbnQsXG4gICAgICAgIGRldGVjdDogZGV0ZWN0JDEsXG4gICAgICAgIGRldGVjdExpbWl0OiBkZXRlY3RMaW1pdCQxLFxuICAgICAgICBkZXRlY3RTZXJpZXM6IGRldGVjdFNlcmllcyQxLFxuICAgICAgICBkaXIsXG4gICAgICAgIGRvVW50aWwsXG4gICAgICAgIGRvV2hpbHN0OiBkb1doaWxzdCQxLFxuICAgICAgICBlYWNoLFxuICAgICAgICBlYWNoTGltaXQ6IGVhY2hMaW1pdCQyLFxuICAgICAgICBlYWNoT2Y6IGVhY2hPZiQxLFxuICAgICAgICBlYWNoT2ZMaW1pdDogZWFjaE9mTGltaXQkMixcbiAgICAgICAgZWFjaE9mU2VyaWVzOiBlYWNoT2ZTZXJpZXMkMSxcbiAgICAgICAgZWFjaFNlcmllczogZWFjaFNlcmllcyQxLFxuICAgICAgICBlbnN1cmVBc3luYyxcbiAgICAgICAgZXZlcnk6IGV2ZXJ5JDEsXG4gICAgICAgIGV2ZXJ5TGltaXQ6IGV2ZXJ5TGltaXQkMSxcbiAgICAgICAgZXZlcnlTZXJpZXM6IGV2ZXJ5U2VyaWVzJDEsXG4gICAgICAgIGZpbHRlcjogZmlsdGVyJDEsXG4gICAgICAgIGZpbHRlckxpbWl0OiBmaWx0ZXJMaW1pdCQxLFxuICAgICAgICBmaWx0ZXJTZXJpZXM6IGZpbHRlclNlcmllcyQxLFxuICAgICAgICBmb3JldmVyOiBmb3JldmVyJDEsXG4gICAgICAgIGdyb3VwQnksXG4gICAgICAgIGdyb3VwQnlMaW1pdDogZ3JvdXBCeUxpbWl0JDEsXG4gICAgICAgIGdyb3VwQnlTZXJpZXMsXG4gICAgICAgIGxvZyxcbiAgICAgICAgbWFwOiBtYXAkMSxcbiAgICAgICAgbWFwTGltaXQ6IG1hcExpbWl0JDEsXG4gICAgICAgIG1hcFNlcmllczogbWFwU2VyaWVzJDEsXG4gICAgICAgIG1hcFZhbHVlcyxcbiAgICAgICAgbWFwVmFsdWVzTGltaXQ6IG1hcFZhbHVlc0xpbWl0JDEsXG4gICAgICAgIG1hcFZhbHVlc1NlcmllcyxcbiAgICAgICAgbWVtb2l6ZSxcbiAgICAgICAgbmV4dFRpY2ssXG4gICAgICAgIHBhcmFsbGVsOiBwYXJhbGxlbCQxLFxuICAgICAgICBwYXJhbGxlbExpbWl0LFxuICAgICAgICBwcmlvcml0eVF1ZXVlLFxuICAgICAgICBxdWV1ZTogcXVldWUkMSxcbiAgICAgICAgcmFjZTogcmFjZSQxLFxuICAgICAgICByZWR1Y2U6IHJlZHVjZSQxLFxuICAgICAgICByZWR1Y2VSaWdodCxcbiAgICAgICAgcmVmbGVjdCxcbiAgICAgICAgcmVmbGVjdEFsbCxcbiAgICAgICAgcmVqZWN0OiByZWplY3QkMixcbiAgICAgICAgcmVqZWN0TGltaXQ6IHJlamVjdExpbWl0JDEsXG4gICAgICAgIHJlamVjdFNlcmllczogcmVqZWN0U2VyaWVzJDEsXG4gICAgICAgIHJldHJ5LFxuICAgICAgICByZXRyeWFibGUsXG4gICAgICAgIHNlcSxcbiAgICAgICAgc2VyaWVzLFxuICAgICAgICBzZXRJbW1lZGlhdGU6IHNldEltbWVkaWF0ZSQxLFxuICAgICAgICBzb21lOiBzb21lJDEsXG4gICAgICAgIHNvbWVMaW1pdDogc29tZUxpbWl0JDEsXG4gICAgICAgIHNvbWVTZXJpZXM6IHNvbWVTZXJpZXMkMSxcbiAgICAgICAgc29ydEJ5OiBzb3J0QnkkMSxcbiAgICAgICAgdGltZW91dCxcbiAgICAgICAgdGltZXMsXG4gICAgICAgIHRpbWVzTGltaXQsXG4gICAgICAgIHRpbWVzU2VyaWVzLFxuICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgIHRyeUVhY2g6IHRyeUVhY2gkMSxcbiAgICAgICAgdW5tZW1vaXplLFxuICAgICAgICB1bnRpbCxcbiAgICAgICAgd2F0ZXJmYWxsOiB3YXRlcmZhbGwkMSxcbiAgICAgICAgd2hpbHN0OiB3aGlsc3QkMSxcblxuICAgICAgICAvLyBhbGlhc2VzXG4gICAgICAgIGFsbDogZXZlcnkkMSxcbiAgICAgICAgYWxsTGltaXQ6IGV2ZXJ5TGltaXQkMSxcbiAgICAgICAgYWxsU2VyaWVzOiBldmVyeVNlcmllcyQxLFxuICAgICAgICBhbnk6IHNvbWUkMSxcbiAgICAgICAgYW55TGltaXQ6IHNvbWVMaW1pdCQxLFxuICAgICAgICBhbnlTZXJpZXM6IHNvbWVTZXJpZXMkMSxcbiAgICAgICAgZmluZDogZGV0ZWN0JDEsXG4gICAgICAgIGZpbmRMaW1pdDogZGV0ZWN0TGltaXQkMSxcbiAgICAgICAgZmluZFNlcmllczogZGV0ZWN0U2VyaWVzJDEsXG4gICAgICAgIGZsYXRNYXA6IGNvbmNhdCQxLFxuICAgICAgICBmbGF0TWFwTGltaXQ6IGNvbmNhdExpbWl0JDEsXG4gICAgICAgIGZsYXRNYXBTZXJpZXM6IGNvbmNhdFNlcmllcyQxLFxuICAgICAgICBmb3JFYWNoOiBlYWNoLFxuICAgICAgICBmb3JFYWNoU2VyaWVzOiBlYWNoU2VyaWVzJDEsXG4gICAgICAgIGZvckVhY2hMaW1pdDogZWFjaExpbWl0JDIsXG4gICAgICAgIGZvckVhY2hPZjogZWFjaE9mJDEsXG4gICAgICAgIGZvckVhY2hPZlNlcmllczogZWFjaE9mU2VyaWVzJDEsXG4gICAgICAgIGZvckVhY2hPZkxpbWl0OiBlYWNoT2ZMaW1pdCQyLFxuICAgICAgICBpbmplY3Q6IHJlZHVjZSQxLFxuICAgICAgICBmb2xkbDogcmVkdWNlJDEsXG4gICAgICAgIGZvbGRyOiByZWR1Y2VSaWdodCxcbiAgICAgICAgc2VsZWN0OiBmaWx0ZXIkMSxcbiAgICAgICAgc2VsZWN0TGltaXQ6IGZpbHRlckxpbWl0JDEsXG4gICAgICAgIHNlbGVjdFNlcmllczogZmlsdGVyU2VyaWVzJDEsXG4gICAgICAgIHdyYXBTeW5jOiBhc3luY2lmeSxcbiAgICAgICAgZHVyaW5nOiB3aGlsc3QkMSxcbiAgICAgICAgZG9EdXJpbmc6IGRvV2hpbHN0JDFcbiAgICB9O1xuXG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gaW5kZXg7XG4gICAgZXhwb3J0cy5hcHBseSA9IGFwcGx5O1xuICAgIGV4cG9ydHMuYXBwbHlFYWNoID0gYXBwbHlFYWNoJDE7XG4gICAgZXhwb3J0cy5hcHBseUVhY2hTZXJpZXMgPSBhcHBseUVhY2hTZXJpZXM7XG4gICAgZXhwb3J0cy5hc3luY2lmeSA9IGFzeW5jaWZ5O1xuICAgIGV4cG9ydHMuYXV0byA9IGF1dG87XG4gICAgZXhwb3J0cy5hdXRvSW5qZWN0ID0gYXV0b0luamVjdDtcbiAgICBleHBvcnRzLmNhcmdvID0gY2FyZ287XG4gICAgZXhwb3J0cy5jYXJnb1F1ZXVlID0gY2FyZ28kMTtcbiAgICBleHBvcnRzLmNvbXBvc2UgPSBjb21wb3NlO1xuICAgIGV4cG9ydHMuY29uY2F0ID0gY29uY2F0JDE7XG4gICAgZXhwb3J0cy5jb25jYXRMaW1pdCA9IGNvbmNhdExpbWl0JDE7XG4gICAgZXhwb3J0cy5jb25jYXRTZXJpZXMgPSBjb25jYXRTZXJpZXMkMTtcbiAgICBleHBvcnRzLmNvbnN0YW50ID0gY29uc3RhbnQ7XG4gICAgZXhwb3J0cy5kZXRlY3QgPSBkZXRlY3QkMTtcbiAgICBleHBvcnRzLmRldGVjdExpbWl0ID0gZGV0ZWN0TGltaXQkMTtcbiAgICBleHBvcnRzLmRldGVjdFNlcmllcyA9IGRldGVjdFNlcmllcyQxO1xuICAgIGV4cG9ydHMuZGlyID0gZGlyO1xuICAgIGV4cG9ydHMuZG9VbnRpbCA9IGRvVW50aWw7XG4gICAgZXhwb3J0cy5kb1doaWxzdCA9IGRvV2hpbHN0JDE7XG4gICAgZXhwb3J0cy5lYWNoID0gZWFjaDtcbiAgICBleHBvcnRzLmVhY2hMaW1pdCA9IGVhY2hMaW1pdCQyO1xuICAgIGV4cG9ydHMuZWFjaE9mID0gZWFjaE9mJDE7XG4gICAgZXhwb3J0cy5lYWNoT2ZMaW1pdCA9IGVhY2hPZkxpbWl0JDI7XG4gICAgZXhwb3J0cy5lYWNoT2ZTZXJpZXMgPSBlYWNoT2ZTZXJpZXMkMTtcbiAgICBleHBvcnRzLmVhY2hTZXJpZXMgPSBlYWNoU2VyaWVzJDE7XG4gICAgZXhwb3J0cy5lbnN1cmVBc3luYyA9IGVuc3VyZUFzeW5jO1xuICAgIGV4cG9ydHMuZXZlcnkgPSBldmVyeSQxO1xuICAgIGV4cG9ydHMuZXZlcnlMaW1pdCA9IGV2ZXJ5TGltaXQkMTtcbiAgICBleHBvcnRzLmV2ZXJ5U2VyaWVzID0gZXZlcnlTZXJpZXMkMTtcbiAgICBleHBvcnRzLmZpbHRlciA9IGZpbHRlciQxO1xuICAgIGV4cG9ydHMuZmlsdGVyTGltaXQgPSBmaWx0ZXJMaW1pdCQxO1xuICAgIGV4cG9ydHMuZmlsdGVyU2VyaWVzID0gZmlsdGVyU2VyaWVzJDE7XG4gICAgZXhwb3J0cy5mb3JldmVyID0gZm9yZXZlciQxO1xuICAgIGV4cG9ydHMuZ3JvdXBCeSA9IGdyb3VwQnk7XG4gICAgZXhwb3J0cy5ncm91cEJ5TGltaXQgPSBncm91cEJ5TGltaXQkMTtcbiAgICBleHBvcnRzLmdyb3VwQnlTZXJpZXMgPSBncm91cEJ5U2VyaWVzO1xuICAgIGV4cG9ydHMubG9nID0gbG9nO1xuICAgIGV4cG9ydHMubWFwID0gbWFwJDE7XG4gICAgZXhwb3J0cy5tYXBMaW1pdCA9IG1hcExpbWl0JDE7XG4gICAgZXhwb3J0cy5tYXBTZXJpZXMgPSBtYXBTZXJpZXMkMTtcbiAgICBleHBvcnRzLm1hcFZhbHVlcyA9IG1hcFZhbHVlcztcbiAgICBleHBvcnRzLm1hcFZhbHVlc0xpbWl0ID0gbWFwVmFsdWVzTGltaXQkMTtcbiAgICBleHBvcnRzLm1hcFZhbHVlc1NlcmllcyA9IG1hcFZhbHVlc1NlcmllcztcbiAgICBleHBvcnRzLm1lbW9pemUgPSBtZW1vaXplO1xuICAgIGV4cG9ydHMubmV4dFRpY2sgPSBuZXh0VGljaztcbiAgICBleHBvcnRzLnBhcmFsbGVsID0gcGFyYWxsZWwkMTtcbiAgICBleHBvcnRzLnBhcmFsbGVsTGltaXQgPSBwYXJhbGxlbExpbWl0O1xuICAgIGV4cG9ydHMucHJpb3JpdHlRdWV1ZSA9IHByaW9yaXR5UXVldWU7XG4gICAgZXhwb3J0cy5xdWV1ZSA9IHF1ZXVlJDE7XG4gICAgZXhwb3J0cy5yYWNlID0gcmFjZSQxO1xuICAgIGV4cG9ydHMucmVkdWNlID0gcmVkdWNlJDE7XG4gICAgZXhwb3J0cy5yZWR1Y2VSaWdodCA9IHJlZHVjZVJpZ2h0O1xuICAgIGV4cG9ydHMucmVmbGVjdCA9IHJlZmxlY3Q7XG4gICAgZXhwb3J0cy5yZWZsZWN0QWxsID0gcmVmbGVjdEFsbDtcbiAgICBleHBvcnRzLnJlamVjdCA9IHJlamVjdCQyO1xuICAgIGV4cG9ydHMucmVqZWN0TGltaXQgPSByZWplY3RMaW1pdCQxO1xuICAgIGV4cG9ydHMucmVqZWN0U2VyaWVzID0gcmVqZWN0U2VyaWVzJDE7XG4gICAgZXhwb3J0cy5yZXRyeSA9IHJldHJ5O1xuICAgIGV4cG9ydHMucmV0cnlhYmxlID0gcmV0cnlhYmxlO1xuICAgIGV4cG9ydHMuc2VxID0gc2VxO1xuICAgIGV4cG9ydHMuc2VyaWVzID0gc2VyaWVzO1xuICAgIGV4cG9ydHMuc2V0SW1tZWRpYXRlID0gc2V0SW1tZWRpYXRlJDE7XG4gICAgZXhwb3J0cy5zb21lID0gc29tZSQxO1xuICAgIGV4cG9ydHMuc29tZUxpbWl0ID0gc29tZUxpbWl0JDE7XG4gICAgZXhwb3J0cy5zb21lU2VyaWVzID0gc29tZVNlcmllcyQxO1xuICAgIGV4cG9ydHMuc29ydEJ5ID0gc29ydEJ5JDE7XG4gICAgZXhwb3J0cy50aW1lb3V0ID0gdGltZW91dDtcbiAgICBleHBvcnRzLnRpbWVzID0gdGltZXM7XG4gICAgZXhwb3J0cy50aW1lc0xpbWl0ID0gdGltZXNMaW1pdDtcbiAgICBleHBvcnRzLnRpbWVzU2VyaWVzID0gdGltZXNTZXJpZXM7XG4gICAgZXhwb3J0cy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07XG4gICAgZXhwb3J0cy50cnlFYWNoID0gdHJ5RWFjaCQxO1xuICAgIGV4cG9ydHMudW5tZW1vaXplID0gdW5tZW1vaXplO1xuICAgIGV4cG9ydHMudW50aWwgPSB1bnRpbDtcbiAgICBleHBvcnRzLndhdGVyZmFsbCA9IHdhdGVyZmFsbCQxO1xuICAgIGV4cG9ydHMud2hpbHN0ID0gd2hpbHN0JDE7XG4gICAgZXhwb3J0cy5hbGwgPSBldmVyeSQxO1xuICAgIGV4cG9ydHMuYWxsTGltaXQgPSBldmVyeUxpbWl0JDE7XG4gICAgZXhwb3J0cy5hbGxTZXJpZXMgPSBldmVyeVNlcmllcyQxO1xuICAgIGV4cG9ydHMuYW55ID0gc29tZSQxO1xuICAgIGV4cG9ydHMuYW55TGltaXQgPSBzb21lTGltaXQkMTtcbiAgICBleHBvcnRzLmFueVNlcmllcyA9IHNvbWVTZXJpZXMkMTtcbiAgICBleHBvcnRzLmZpbmQgPSBkZXRlY3QkMTtcbiAgICBleHBvcnRzLmZpbmRMaW1pdCA9IGRldGVjdExpbWl0JDE7XG4gICAgZXhwb3J0cy5maW5kU2VyaWVzID0gZGV0ZWN0U2VyaWVzJDE7XG4gICAgZXhwb3J0cy5mbGF0TWFwID0gY29uY2F0JDE7XG4gICAgZXhwb3J0cy5mbGF0TWFwTGltaXQgPSBjb25jYXRMaW1pdCQxO1xuICAgIGV4cG9ydHMuZmxhdE1hcFNlcmllcyA9IGNvbmNhdFNlcmllcyQxO1xuICAgIGV4cG9ydHMuZm9yRWFjaCA9IGVhY2g7XG4gICAgZXhwb3J0cy5mb3JFYWNoU2VyaWVzID0gZWFjaFNlcmllcyQxO1xuICAgIGV4cG9ydHMuZm9yRWFjaExpbWl0ID0gZWFjaExpbWl0JDI7XG4gICAgZXhwb3J0cy5mb3JFYWNoT2YgPSBlYWNoT2YkMTtcbiAgICBleHBvcnRzLmZvckVhY2hPZlNlcmllcyA9IGVhY2hPZlNlcmllcyQxO1xuICAgIGV4cG9ydHMuZm9yRWFjaE9mTGltaXQgPSBlYWNoT2ZMaW1pdCQyO1xuICAgIGV4cG9ydHMuaW5qZWN0ID0gcmVkdWNlJDE7XG4gICAgZXhwb3J0cy5mb2xkbCA9IHJlZHVjZSQxO1xuICAgIGV4cG9ydHMuZm9sZHIgPSByZWR1Y2VSaWdodDtcbiAgICBleHBvcnRzLnNlbGVjdCA9IGZpbHRlciQxO1xuICAgIGV4cG9ydHMuc2VsZWN0TGltaXQgPSBmaWx0ZXJMaW1pdCQxO1xuICAgIGV4cG9ydHMuc2VsZWN0U2VyaWVzID0gZmlsdGVyU2VyaWVzJDE7XG4gICAgZXhwb3J0cy53cmFwU3luYyA9IGFzeW5jaWZ5O1xuICAgIGV4cG9ydHMuZHVyaW5nID0gd2hpbHN0JDE7XG4gICAgZXhwb3J0cy5kb0R1cmluZyA9IGRvV2hpbHN0JDE7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuXG59KSkpO1xuIiwgImNvbnN0IHsgaGFzT3duUHJvcGVydHkgfSA9IE9iamVjdC5wcm90b3R5cGVcblxuY29uc3QgZW9sID0gdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmXG4gIHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyAnXFxyXFxuJyA6ICdcXG4nXG5cbmNvbnN0IGVuY29kZSA9IChvYmosIG9wdCkgPT4ge1xuICBjb25zdCBjaGlsZHJlbiA9IFtdXG4gIGxldCBvdXQgPSAnJ1xuXG4gIGlmICh0eXBlb2Ygb3B0ID09PSAnc3RyaW5nJykge1xuICAgIG9wdCA9IHtcbiAgICAgIHNlY3Rpb246IG9wdCxcbiAgICAgIHdoaXRlc3BhY2U6IGZhbHNlLFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvcHQgPSBvcHQgfHwgT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIG9wdC53aGl0ZXNwYWNlID0gb3B0LndoaXRlc3BhY2UgPT09IHRydWVcbiAgfVxuXG4gIGNvbnN0IHNlcGFyYXRvciA9IG9wdC53aGl0ZXNwYWNlID8gJyA9ICcgOiAnPSdcblxuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgIGNvbnN0IHZhbCA9IG9ialtrXVxuICAgIGlmICh2YWwgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsKVxuICAgICAgICBvdXQgKz0gc2FmZShrICsgJ1tdJykgKyBzZXBhcmF0b3IgKyBzYWZlKGl0ZW0pICsgJ1xcbidcbiAgICB9IGVsc2UgaWYgKHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JylcbiAgICAgIGNoaWxkcmVuLnB1c2goaylcbiAgICBlbHNlXG4gICAgICBvdXQgKz0gc2FmZShrKSArIHNlcGFyYXRvciArIHNhZmUodmFsKSArIGVvbFxuICB9XG5cbiAgaWYgKG9wdC5zZWN0aW9uICYmIG91dC5sZW5ndGgpXG4gICAgb3V0ID0gJ1snICsgc2FmZShvcHQuc2VjdGlvbikgKyAnXScgKyBlb2wgKyBvdXRcblxuICBmb3IgKGNvbnN0IGsgb2YgY2hpbGRyZW4pIHtcbiAgICBjb25zdCBuayA9IGRvdFNwbGl0KGspLmpvaW4oJ1xcXFwuJylcbiAgICBjb25zdCBzZWN0aW9uID0gKG9wdC5zZWN0aW9uID8gb3B0LnNlY3Rpb24gKyAnLicgOiAnJykgKyBua1xuICAgIGNvbnN0IHsgd2hpdGVzcGFjZSB9ID0gb3B0XG4gICAgY29uc3QgY2hpbGQgPSBlbmNvZGUob2JqW2tdLCB7XG4gICAgICBzZWN0aW9uLFxuICAgICAgd2hpdGVzcGFjZSxcbiAgICB9KVxuICAgIGlmIChvdXQubGVuZ3RoICYmIGNoaWxkLmxlbmd0aClcbiAgICAgIG91dCArPSBlb2xcblxuICAgIG91dCArPSBjaGlsZFxuICB9XG5cbiAgcmV0dXJuIG91dFxufVxuXG5jb25zdCBkb3RTcGxpdCA9IHN0ciA9PlxuICBzdHIucmVwbGFjZSgvXFwxL2csICdcXHUwMDAyTElURVJBTFxcXFwxTElURVJBTFxcdTAwMDInKVxuICAgIC5yZXBsYWNlKC9cXFxcXFwuL2csICdcXHUwMDAxJylcbiAgICAuc3BsaXQoL1xcLi8pXG4gICAgLm1hcChwYXJ0ID0+XG4gICAgICBwYXJ0LnJlcGxhY2UoL1xcMS9nLCAnXFxcXC4nKVxuICAgICAgICAucmVwbGFjZSgvXFwyTElURVJBTFxcXFwxTElURVJBTFxcMi9nLCAnXFx1MDAwMScpKVxuXG5jb25zdCBkZWNvZGUgPSBzdHIgPT4ge1xuICBjb25zdCBvdXQgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gIGxldCBwID0gb3V0XG4gIGxldCBzZWN0aW9uID0gbnVsbFxuICAvLyAgICAgICAgICBzZWN0aW9uICAgICB8a2V5ICAgICAgPSB2YWx1ZVxuICBjb25zdCByZSA9IC9eXFxbKFteXFxdXSopXFxdJHxeKFtePV0rKSg9KC4qKSk/JC9pXG4gIGNvbnN0IGxpbmVzID0gc3RyLnNwbGl0KC9bXFxyXFxuXSsvZylcblxuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBpZiAoIWxpbmUgfHwgbGluZS5tYXRjaCgvXlxccypbOyNdLykpXG4gICAgICBjb250aW51ZVxuICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaChyZSlcbiAgICBpZiAoIW1hdGNoKVxuICAgICAgY29udGludWVcbiAgICBpZiAobWF0Y2hbMV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2VjdGlvbiA9IHVuc2FmZShtYXRjaFsxXSlcbiAgICAgIGlmIChzZWN0aW9uID09PSAnX19wcm90b19fJykge1xuICAgICAgICAvLyBub3QgYWxsb3dlZFxuICAgICAgICAvLyBrZWVwIHBhcnNpbmcgdGhlIHNlY3Rpb24sIGJ1dCBkb24ndCBhdHRhY2ggaXQuXG4gICAgICAgIHAgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBwID0gb3V0W3NlY3Rpb25dID0gb3V0W3NlY3Rpb25dIHx8IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGtleVJhdyA9IHVuc2FmZShtYXRjaFsyXSlcbiAgICBjb25zdCBpc0FycmF5ID0ga2V5UmF3Lmxlbmd0aCA+IDIgJiYga2V5UmF3LnNsaWNlKC0yKSA9PT0gJ1tdJ1xuICAgIGNvbnN0IGtleSA9IGlzQXJyYXkgPyBrZXlSYXcuc2xpY2UoMCwgLTIpIDoga2V5UmF3XG4gICAgaWYgKGtleSA9PT0gJ19fcHJvdG9fXycpXG4gICAgICBjb250aW51ZVxuICAgIGNvbnN0IHZhbHVlUmF3ID0gbWF0Y2hbM10gPyB1bnNhZmUobWF0Y2hbNF0pIDogdHJ1ZVxuICAgIGNvbnN0IHZhbHVlID0gdmFsdWVSYXcgPT09ICd0cnVlJyB8fFxuICAgICAgdmFsdWVSYXcgPT09ICdmYWxzZScgfHxcbiAgICAgIHZhbHVlUmF3ID09PSAnbnVsbCcgPyBKU09OLnBhcnNlKHZhbHVlUmF3KVxuICAgICAgOiB2YWx1ZVJhd1xuXG4gICAgLy8gQ29udmVydCBrZXlzIHdpdGggJ1tdJyBzdWZmaXggdG8gYW4gYXJyYXlcbiAgICBpZiAoaXNBcnJheSkge1xuICAgICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHAsIGtleSkpXG4gICAgICAgIHBba2V5XSA9IFtdXG4gICAgICBlbHNlIGlmICghQXJyYXkuaXNBcnJheShwW2tleV0pKVxuICAgICAgICBwW2tleV0gPSBbcFtrZXldXVxuICAgIH1cblxuICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IHJlc2V0dGluZyBhIHByZXZpb3VzbHkgZGVmaW5lZFxuICAgIC8vIGFycmF5IGJ5IGFjY2lkZW50YWxseSBmb3JnZXR0aW5nIHRoZSBicmFja2V0c1xuICAgIGlmIChBcnJheS5pc0FycmF5KHBba2V5XSkpXG4gICAgICBwW2tleV0ucHVzaCh2YWx1ZSlcbiAgICBlbHNlXG4gICAgICBwW2tleV0gPSB2YWx1ZVxuICB9XG5cbiAgLy8ge2E6e3k6MX0sXCJhLmJcIjp7eDoyfX0gLS0+IHthOnt5OjEsYjp7eDoyfX19XG4gIC8vIHVzZSBhIGZpbHRlciB0byByZXR1cm4gdGhlIGtleXMgdGhhdCBoYXZlIHRvIGJlIGRlbGV0ZWQuXG4gIGNvbnN0IHJlbW92ZSA9IFtdXG4gIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhvdXQpKSB7XG4gICAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKG91dCwgaykgfHxcbiAgICAgICAgdHlwZW9mIG91dFtrXSAhPT0gJ29iamVjdCcgfHxcbiAgICAgICAgQXJyYXkuaXNBcnJheShvdXRba10pKVxuICAgICAgY29udGludWVcblxuICAgIC8vIHNlZSBpZiB0aGUgcGFyZW50IHNlY3Rpb24gaXMgYWxzbyBhbiBvYmplY3QuXG4gICAgLy8gaWYgc28sIGFkZCBpdCB0byB0aGF0LCBhbmQgbWFyayB0aGlzIG9uZSBmb3IgZGVsZXRpb25cbiAgICBjb25zdCBwYXJ0cyA9IGRvdFNwbGl0KGspXG4gICAgbGV0IHAgPSBvdXRcbiAgICBjb25zdCBsID0gcGFydHMucG9wKClcbiAgICBjb25zdCBubCA9IGwucmVwbGFjZSgvXFxcXFxcLi9nLCAnLicpXG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgICBpZiAocGFydCA9PT0gJ19fcHJvdG9fXycpXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICBpZiAoIWhhc093blByb3BlcnR5LmNhbGwocCwgcGFydCkgfHwgdHlwZW9mIHBbcGFydF0gIT09ICdvYmplY3QnKVxuICAgICAgICBwW3BhcnRdID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgICAgcCA9IHBbcGFydF1cbiAgICB9XG4gICAgaWYgKHAgPT09IG91dCAmJiBubCA9PT0gbClcbiAgICAgIGNvbnRpbnVlXG5cbiAgICBwW25sXSA9IG91dFtrXVxuICAgIHJlbW92ZS5wdXNoKGspXG4gIH1cbiAgZm9yIChjb25zdCBkZWwgb2YgcmVtb3ZlKVxuICAgIGRlbGV0ZSBvdXRbZGVsXVxuXG4gIHJldHVybiBvdXRcbn1cblxuY29uc3QgaXNRdW90ZWQgPSB2YWwgPT5cbiAgKHZhbC5jaGFyQXQoMCkgPT09ICdcIicgJiYgdmFsLnNsaWNlKC0xKSA9PT0gJ1wiJykgfHxcbiAgICAodmFsLmNoYXJBdCgwKSA9PT0gXCInXCIgJiYgdmFsLnNsaWNlKC0xKSA9PT0gXCInXCIpXG5cbmNvbnN0IHNhZmUgPSB2YWwgPT5cbiAgKHR5cGVvZiB2YWwgIT09ICdzdHJpbmcnIHx8XG4gICAgdmFsLm1hdGNoKC9bPVxcclxcbl0vKSB8fFxuICAgIHZhbC5tYXRjaCgvXlxcWy8pIHx8XG4gICAgKHZhbC5sZW5ndGggPiAxICYmXG4gICAgIGlzUXVvdGVkKHZhbCkpIHx8XG4gICAgdmFsICE9PSB2YWwudHJpbSgpKVxuICAgID8gSlNPTi5zdHJpbmdpZnkodmFsKVxuICAgIDogdmFsLnJlcGxhY2UoLzsvZywgJ1xcXFw7JykucmVwbGFjZSgvIy9nLCAnXFxcXCMnKVxuXG5jb25zdCB1bnNhZmUgPSAodmFsLCBkb1VuZXNjKSA9PiB7XG4gIHZhbCA9ICh2YWwgfHwgJycpLnRyaW0oKVxuICBpZiAoaXNRdW90ZWQodmFsKSkge1xuICAgIC8vIHJlbW92ZSB0aGUgc2luZ2xlIHF1b3RlcyBiZWZvcmUgY2FsbGluZyBKU09OLnBhcnNlXG4gICAgaWYgKHZhbC5jaGFyQXQoMCkgPT09IFwiJ1wiKVxuICAgICAgdmFsID0gdmFsLnN1YnN0cigxLCB2YWwubGVuZ3RoIC0gMilcblxuICAgIHRyeSB7XG4gICAgICB2YWwgPSBKU09OLnBhcnNlKHZhbClcbiAgICB9IGNhdGNoIChfKSB7fVxuICB9IGVsc2Uge1xuICAgIC8vIHdhbGsgdGhlIHZhbCB0byBmaW5kIHRoZSBmaXJzdCBub3QtZXNjYXBlZCA7IGNoYXJhY3RlclxuICAgIGxldCBlc2MgPSBmYWxzZVxuICAgIGxldCB1bmVzYyA9ICcnXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB2YWwubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gdmFsLmNoYXJBdChpKVxuICAgICAgaWYgKGVzYykge1xuICAgICAgICBpZiAoJ1xcXFw7IycuaW5kZXhPZihjKSAhPT0gLTEpXG4gICAgICAgICAgdW5lc2MgKz0gY1xuICAgICAgICBlbHNlXG4gICAgICAgICAgdW5lc2MgKz0gJ1xcXFwnICsgY1xuXG4gICAgICAgIGVzYyA9IGZhbHNlXG4gICAgICB9IGVsc2UgaWYgKCc7IycuaW5kZXhPZihjKSAhPT0gLTEpXG4gICAgICAgIGJyZWFrXG4gICAgICBlbHNlIGlmIChjID09PSAnXFxcXCcpXG4gICAgICAgIGVzYyA9IHRydWVcbiAgICAgIGVsc2VcbiAgICAgICAgdW5lc2MgKz0gY1xuICAgIH1cbiAgICBpZiAoZXNjKVxuICAgICAgdW5lc2MgKz0gJ1xcXFwnXG5cbiAgICByZXR1cm4gdW5lc2MudHJpbSgpXG4gIH1cbiAgcmV0dXJuIHZhbFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcGFyc2U6IGRlY29kZSxcbiAgZGVjb2RlLFxuICBzdHJpbmdpZnk6IGVuY29kZSxcbiAgZW5jb2RlLFxuICBzYWZlLFxuICB1bnNhZmUsXG59XG4iLCAiLypcbiAqIGZvcm1hdHMuanM6IERlZmF1bHQgZm9ybWF0cyBzdXBwb3J0ZWQgYnkgbmNvbmZcbiAqXG4gKiAoQykgMjAxMSwgQ2hhcmxpZSBSb2JiaW5zIGFuZCB0aGUgQ29udHJpYnV0b3JzLlxuICpcbiAqL1xuXG52YXIgaW5pID0gcmVxdWlyZSgnaW5pJyk7XG5cbnZhciBmb3JtYXRzID0gZXhwb3J0cztcblxuLy9cbi8vICMjIyBAanNvblxuLy8gU3RhbmRhcmQgSlNPTiBmb3JtYXQgd2hpY2ggcHJldHR5IHByaW50cyBgLnN0cmluZ2lmeSgpYC5cbi8vXG5mb3JtYXRzLmpzb24gPSB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gKG9iaiwgcmVwbGFjZXIsIHNwYWNpbmcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCByZXBsYWNlciB8fCBudWxsLCBzcGFjaW5nIHx8IDIpXG4gIH0sXG4gIHBhcnNlOiBKU09OLnBhcnNlXG59O1xuXG4vL1xuLy8gIyMjIEBpbmlcbi8vIFN0YW5kYXJkIElOSSBmb3JtYXQgc3VwcGxpZWQgZnJvbSB0aGUgYGluaWAgbW9kdWxlXG4vLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lOSV9maWxlXG4vL1xuZm9ybWF0cy5pbmkgPSBpbmk7XG4iLCAiLypcbiAqIG1lbW9yeS5qczogU2ltcGxlIG1lbW9yeSBzdG9yYWdlIGVuZ2luZSBmb3IgbmNvbmYgY29uZmlndXJhdGlvbihzKVxuICpcbiAqIChDKSAyMDExLCBDaGFybGllIFJvYmJpbnMgYW5kIHRoZSBDb250cmlidXRvcnMuXG4gKlxuICovXG5cbmNvbnN0IGNvbW1vbiA9IHJlcXVpcmUoJy4uL2NvbW1vbicpO1xuXG5jb25zdCBERUZBVUxUX0FDQ0VTU19TRVBBUkFUT1IgPSAnOic7XG5jb25zdCBERUZBVUxUX0lOUFVUX1NFUEFSQVRPUiA9ICdfXyc7XG5cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgcHJlcGFyaW5nIGEgc3RyaW5nIGZvciByZWdleCBtYXRjaGluZ1xuZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cmluZykge1xuICByZXR1cm4gdHlwZW9mIHN0cmluZyA9PT0gJ3N0cmluZycgJiYgc3RyaW5nLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7IC8vICQmIG1lYW5zIHRoZSB3aG9sZSBtYXRjaGVkIHN0cmluZ1xufVxuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIE1lbW9yeSAob3B0aW9ucylcbi8vICMjIyMgQG9wdGlvbnMge09iamVjdH0gT3B0aW9ucyBmb3IgdGhpcyBpbnN0YW5jZVxuLy8gQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBNZW1vcnkgbmNvbmYgc3RvcmUgd2hpY2ggbWFpbnRhaW5zXG4vLyBhIG5lc3RlZCBqc29uIHN0cnVjdHVyZSBiYXNlZCBvbiBrZXkgZGVsaW1pdGVycyBgOmAuXG4vL1xuLy8gZS5nLiBgbXk6bmVzdGVkOmtleWAgPT0+IGB7IG15OiB7IG5lc3RlZDogeyBrZXk6IH0gfSB9YFxuLy9cbnZhciBNZW1vcnkgPSBleHBvcnRzLk1lbW9yeSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIG9wdGlvbnMgICAgICAgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLnR5cGUgICAgID0gJ21lbW9yeSc7XG4gIHRoaXMuc3RvcmUgICAgPSB7fTtcbiAgdGhpcy5tdGltZXMgICA9IHt9O1xuICB0aGlzLnJlYWRPbmx5ID0gZmFsc2U7XG4gIHRoaXMubG9hZEZyb20gPSBvcHRpb25zLmxvYWRGcm9tIHx8IG51bGw7XG4gIHRoaXMuYWNjZXNzU2VwYXJhdG9yID0gb3B0aW9ucy5hY2Nlc3NTZXBhcmF0b3IgfHwgREVGQVVMVF9BQ0NFU1NfU0VQQVJBVE9SO1xuICB0aGlzLmlucHV0U2VwYXJhdG9yID0gb3B0aW9ucy5pbnB1dFNlcGFyYXRvciB8fCBERUZBVUxUX0lOUFVUX1NFUEFSQVRPUjtcbiAgdGhpcy5wYXJzZVZhbHVlcyA9IG9wdGlvbnMucGFyc2VWYWx1ZXMgfHwgZmFsc2U7XG4gIHRoaXMuZGlzYWJsZURlZmF1bHRBY2Nlc3NTZXBhcmF0b3IgPSBvcHRpb25zLmRpc2FibGVEZWZhdWx0QWNjZXNzU2VwYXJhdG9yIHx8IGZhbHNlO1xuXG4gIGlmICh0eXBlb2Yob3B0aW9ucykgPT09ICdzdHJpbmcnIHx8IG9wdGlvbnMgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICB0aGlzLmlucHV0U2VwYXJhdG9yID0gb3B0aW9ucztcbiAgfVxuXG4gIGlmICh0aGlzLmxvYWRGcm9tKSB7XG4gICAgdGhpcy5zdG9yZSA9IGNvbW1vbi5sb2FkRmlsZXNTeW5jKHRoaXMubG9hZEZyb20pO1xuICB9XG59O1xuXG5NZW1vcnkucHJvdG90eXBlLl9ub3JtYWxpemVLZXkgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIGxldCBpbnB1dFNlcGFyYXRvciA9IHRoaXMuaW5wdXRTZXBhcmF0b3I7XG4gIGlmIChpbnB1dFNlcGFyYXRvciBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIGlucHV0U2VwYXJhdG9yID0gaW5wdXRTZXBhcmF0b3Iuc291cmNlO1xuICB9IGVsc2Uge1xuICAgIGlucHV0U2VwYXJhdG9yID0gZXNjYXBlUmVnRXhwKGlucHV0U2VwYXJhdG9yKTtcbiAgfVxuICBsZXQgc2VwYXJhdG9yUmVnZXhTdHIgPSBgJHtlc2NhcGVSZWdFeHAodGhpcy5hY2Nlc3NTZXBhcmF0b3IpfXwke2lucHV0U2VwYXJhdG9yfWA7XG5cbiAgaWYgKCF0aGlzLmRpc2FibGVEZWZhdWx0QWNjZXNzU2VwYXJhdG9yKSB7XG4gICAgc2VwYXJhdG9yUmVnZXhTdHIgKz0gYHwke0RFRkFVTFRfQUNDRVNTX1NFUEFSQVRPUn1gO1xuICB9XG5cbiAgY29uc3Qgc2VwYXJhdG9yUmVnRXggPSBuZXcgUmVnRXhwKHNlcGFyYXRvclJlZ2V4U3RyLCAnZycpO1xuICByZXR1cm4ga2V5ICYmIGtleS5yZXBsYWNlKHNlcGFyYXRvclJlZ0V4LCB0aGlzLmFjY2Vzc1NlcGFyYXRvcik7XG59XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gZ2V0IChrZXkpXG4vLyAjIyMjIEBrZXkge3N0cmluZ30gS2V5IHRvIHJldHJpZXZlIGZvciB0aGlzIGluc3RhbmNlLlxuLy8gUmV0cmlldmVzIHRoZSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkgKGlmIGFueSkuXG4vL1xuTWVtb3J5LnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHZhciB0YXJnZXQgPSB0aGlzLnN0b3JlLFxuICAgICAgcGF0aCAgID0gY29tbW9uLnBhdGgodGhpcy5fbm9ybWFsaXplS2V5KGtleSksIHRoaXMuYWNjZXNzU2VwYXJhdG9yKTtcblxuICAvL1xuICAvLyBTY29wZSBpbnRvIHRoZSBvYmplY3QgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBuZXN0ZWQgY29udGV4dFxuICAvL1xuICB3aGlsZSAocGF0aC5sZW5ndGggPiAwKSB7XG4gICAga2V5ID0gcGF0aC5zaGlmdCgpO1xuICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCAhPT0gJ3N0cmluZycgJiYgT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBrZXkpKSB7XG4gICAgICB0YXJnZXQgPSB0YXJnZXRba2V5XTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gc2V0IChrZXksIHZhbHVlKVxuLy8gIyMjIyBAa2V5IHtzdHJpbmd9IEtleSB0byBzZXQgaW4gdGhpcyBpbnN0YW5jZVxuLy8gIyMjIyBAdmFsdWUge2xpdGVyYWx8T2JqZWN0fSBWYWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXlcbi8vIFNldHMgdGhlIGB2YWx1ZWAgZm9yIHRoZSBzcGVjaWZpZWQgYGtleWAgaW4gdGhpcyBpbnN0YW5jZS5cbi8vXG5NZW1vcnkucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHRhcmdldCA9IHRoaXMuc3RvcmUsXG4gICAgICBwYXRoICAgPSBjb21tb24ucGF0aCh0aGlzLl9ub3JtYWxpemVLZXkoa2V5KSwgdGhpcy5hY2Nlc3NTZXBhcmF0b3IpO1xuXG4gIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vXG4gICAgLy8gUm9vdCBtdXN0IGJlIGFuIG9iamVjdFxuICAgIC8vXG4gICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdGhpcy5zdG9yZSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gVXBkYXRlIHRoZSBgbXRpbWVgIChtb2RpZmllZCB0aW1lKSBvZiB0aGUga2V5XG4gIC8vXG4gIHRoaXMubXRpbWVzW2tleV0gPSBEYXRlLm5vdygpO1xuXG4gIC8vXG4gIC8vIFNjb3BlIGludG8gdGhlIG9iamVjdCB0byBnZXQgdGhlIGFwcHJvcHJpYXRlIG5lc3RlZCBjb250ZXh0XG4gIC8vXG4gIHdoaWxlIChwYXRoLmxlbmd0aCA+IDEpIHtcbiAgICBrZXkgPSBwYXRoLnNoaWZ0KCk7XG4gICAgaWYgKCF0YXJnZXRba2V5XSB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICB0YXJnZXRba2V5XSA9IHt9O1xuICAgIH1cblxuICAgIHRhcmdldCA9IHRhcmdldFtrZXldO1xuICB9XG5cbiAgLy8gU2V0IHRoZSBzcGVjaWZpZWQgdmFsdWUgaW4gdGhlIG5lc3RlZCBKU09OIHN0cnVjdHVyZVxuICBrZXkgPSBwYXRoLnNoaWZ0KCk7XG4gIGlmICh0aGlzLnBhcnNlVmFsdWVzKSB7XG4gICAgdmFsdWUgPSBjb21tb24ucGFyc2VWYWx1ZXMuY2FsbChjb21tb24sIHZhbHVlKTtcbiAgfVxuICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gY2xlYXIgKGtleSlcbi8vICMjIyMgQGtleSB7c3RyaW5nfSBLZXkgdG8gcmVtb3ZlIGZyb20gdGhpcyBpbnN0YW5jZVxuLy8gUmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgYGtleWAgZnJvbSB0aGlzIGluc3RhbmNlLlxuLy9cbk1lbW9yeS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHRhcmdldCA9IHRoaXMuc3RvcmUsXG4gICAgICB2YWx1ZSAgPSB0YXJnZXQsXG4gICAgICBwYXRoICAgPSBjb21tb24ucGF0aChrZXksIHRoaXMuYWNjZXNzU2VwYXJhdG9yKTtcblxuICAvL1xuICAvLyBSZW1vdmUgdGhlIGtleSBmcm9tIHRoZSBzZXQgb2YgYG10aW1lc2AgKG1vZGlmaWVkIHRpbWVzKVxuICAvL1xuICBkZWxldGUgdGhpcy5tdGltZXNba2V5XTtcblxuICAvL1xuICAvLyBTY29wZSBpbnRvIHRoZSBvYmplY3QgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBuZXN0ZWQgY29udGV4dFxuICAvL1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAga2V5ID0gcGF0aFtpXTtcbiAgICB2YWx1ZSA9IHRhcmdldFtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0YXJnZXQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIERlbGV0ZSB0aGUga2V5IGZyb20gdGhlIG5lc3RlZCBKU09OIHN0cnVjdHVyZVxuICBrZXkgPSBwYXRoW2ldO1xuICBkZWxldGUgdGFyZ2V0W2tleV07XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBtZXJnZSAoa2V5LCB2YWx1ZSlcbi8vICMjIyMgQGtleSB7c3RyaW5nfSBLZXkgdG8gbWVyZ2UgdGhlIHZhbHVlIGludG9cbi8vICMjIyMgQHZhbHVlIHtsaXRlcmFsfE9iamVjdH0gVmFsdWUgdG8gbWVyZ2UgaW50byB0aGUga2V5XG4vLyBNZXJnZXMgdGhlIHByb3BlcnRpZXMgaW4gYHZhbHVlYCBpbnRvIHRoZSBleGlzdGluZyBvYmplY3QgdmFsdWVcbi8vIGF0IGBrZXlgLiBJZiB0aGUgZXhpc3RpbmcgdmFsdWUgYGtleWAgaXMgbm90IGFuIE9iamVjdCwgaXQgd2lsbCBiZVxuLy8gY29tcGxldGVseSBvdmVyd3JpdHRlbi5cbi8vXG5NZW1vcnkucHJvdG90eXBlLm1lcmdlID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvL1xuICAvLyBJZiB0aGUga2V5IGlzIG5vdCBhbiBgT2JqZWN0YCBvciBpcyBhbiBgQXJyYXlgLFxuICAvLyB0aGVuIHNpbXBseSBzZXQgaXQuIE1lcmdpbmcgaXMgZm9yIE9iamVjdHMuXG4gIC8vXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgdmFyIHNlbGYgICAgPSB0aGlzLFxuICAgICAgdGFyZ2V0ICA9IHRoaXMuc3RvcmUsXG4gICAgICBwYXRoICAgID0gY29tbW9uLnBhdGgoa2V5LCB0aGlzLmFjY2Vzc1NlcGFyYXRvciksXG4gICAgICBmdWxsS2V5ID0ga2V5O1xuXG4gIC8vXG4gIC8vIFVwZGF0ZSB0aGUgYG10aW1lYCAobW9kaWZpZWQgdGltZSkgb2YgdGhlIGtleVxuICAvL1xuICB0aGlzLm10aW1lc1trZXldID0gRGF0ZS5ub3coKTtcblxuICAvL1xuICAvLyBTY29wZSBpbnRvIHRoZSBvYmplY3QgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBuZXN0ZWQgY29udGV4dFxuICAvL1xuICB3aGlsZSAocGF0aC5sZW5ndGggPiAxKSB7XG4gICAga2V5ID0gcGF0aC5zaGlmdCgpO1xuICAgIGlmICghdGFyZ2V0W2tleV0pIHtcbiAgICAgIHRhcmdldFtrZXldID0ge307XG4gICAgfVxuXG4gICAgdGFyZ2V0ID0gdGFyZ2V0W2tleV07XG4gIH1cblxuICAvLyBTZXQgdGhlIHNwZWNpZmllZCB2YWx1ZSBpbiB0aGUgbmVzdGVkIEpTT04gc3RydWN0dXJlXG4gIGtleSA9IHBhdGguc2hpZnQoKTtcblxuICAvL1xuICAvLyBJZiB0aGUgY3VycmVudCB2YWx1ZSBhdCB0aGUga2V5IHRhcmdldCBpcyBub3QgYW4gYE9iamVjdGAsXG4gIC8vIG9yIGlzIGFuIGBBcnJheWAgdGhlbiBzaW1wbHkgb3ZlcnJpZGUgaXQgYmVjYXVzZSB0aGUgbmV3IHZhbHVlXG4gIC8vIGlzIGFuIE9iamVjdC5cbiAgLy9cbiAgaWYgKHR5cGVvZiB0YXJnZXRba2V5XSAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh0YXJnZXRba2V5XSkpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbHVlKS5ldmVyeShmdW5jdGlvbiAobmVzdGVkKSB7XG4gICAgcmV0dXJuIHNlbGYubWVyZ2UoY29tbW9uLmtleWVkKHNlbGYuYWNjZXNzU2VwYXJhdG9yLCBmdWxsS2V5LCBuZXN0ZWQpLCB2YWx1ZVtuZXN0ZWRdKTtcbiAgfSk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHJlc2V0IChjYWxsYmFjaylcbi8vIENsZWFycyBhbGwga2V5cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS5cbi8vXG5NZW1vcnkucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHRoaXMubXRpbWVzID0ge307XG4gIHRoaXMuc3RvcmUgID0ge307XG4gIHJldHVybiB0cnVlO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBsb2FkU3luY1xuLy8gUmV0dXJucyB0aGUgc3RvcmUgbWFuYWdlZCBieSB0aGlzIGluc3RhbmNlXG4vL1xuTWVtb3J5LnByb3RvdHlwZS5sb2FkU3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuc3RvcmUgfHwge307XG59O1xuIiwgIi8qXG4gKiB1dGlscy5qczogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRoZSBuY29uZiBtb2R1bGUuXG4gKlxuICogKEMpIDIwMTEsIENoYXJsaWUgUm9iYmlucyBhbmQgdGhlIENvbnRyaWJ1dG9ycy5cbiAqXG4gKi9cblxudmFyIGZzID0gcmVxdWlyZSgnZnMnKSxcbiAgICBhc3luYyA9IHJlcXVpcmUoJ2FzeW5jJyksXG4gICAgZm9ybWF0cyA9IHJlcXVpcmUoJy4vZm9ybWF0cycpLFxuICAgIE1lbW9yeSA9IHJlcXVpcmUoJy4vc3RvcmVzL21lbW9yeScpLk1lbW9yeTtcblxudmFyIGNvbW1vbiA9IGV4cG9ydHM7XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gcGF0aCAoa2V5KVxuLy8gIyMjIyBAa2V5IHtzdHJpbmd9IFRoZSAnOicgZGVsaW1pdGVkIGtleSB0byBzcGxpdFxuLy8gUmV0dXJucyBhIGZ1bGx5LXF1YWxpZmllZCBwYXRoIHRvIGEgbmVzdGVkIG5jb25mIGtleS5cbi8vIElmIGdpdmVuIG51bGwgb3IgdW5kZWZpbmVkIGl0IHNob3VsZCByZXR1cm4gYW4gZW1wdHkgcGF0aC5cbi8vICcnIHNob3VsZCBzdGlsbCBiZSByZXNwZWN0ZWQgYXMgYSBwYXRoLlxuLy9cbmNvbW1vbi5wYXRoID0gZnVuY3Rpb24gKGtleSwgc2VwYXJhdG9yKSB7XG4gIHNlcGFyYXRvciA9IHNlcGFyYXRvciB8fCAnOic7XG4gIHJldHVybiBrZXkgPT0gbnVsbCA/IFtdIDoga2V5LnNwbGl0KHNlcGFyYXRvcik7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGtleSAoYXJndW1lbnRzKVxuLy8gUmV0dXJucyBhIGA6YCBqb2luZWQgc3RyaW5nIGZyb20gdGhlIGBhcmd1bWVudHNgLlxuLy9cbmNvbW1vbi5rZXkgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4oJzonKTtcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24ga2V5IChhcmd1bWVudHMpXG4vLyBSZXR1cm5zIGEgam9pbmVkIHN0cmluZyBmcm9tIHRoZSBgYXJndW1lbnRzYCxcbi8vIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBqb2luIGRlbGltaXRlci5cbi8vXG5jb21tb24ua2V5ZWQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLmpvaW4oYXJndW1lbnRzWzBdKTtcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gbG9hZEZpbGVzIChmaWxlcywgY2FsbGJhY2spXG4vLyAjIyMjIEBmaWxlcyB7T2JqZWN0fEFycmF5fSBMaXN0IG9mIGZpbGVzIChvciBzZXR0aW5ncyBvYmplY3QpIHRvIGxvYWQuXG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259IENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4vLyBMb2FkcyBhbGwgdGhlIGRhdGEgaW4gdGhlIHNwZWNpZmllZCBgZmlsZXNgLlxuLy9cbmNvbW1vbi5sb2FkRmlsZXMgPSBmdW5jdGlvbiAoZmlsZXMsIGNhbGxiYWNrKSB7XG4gIGlmICghZmlsZXMpIHtcbiAgICByZXR1cm4gY2FsbGJhY2sobnVsbCwge30pO1xuICB9XG5cbiAgdmFyIG9wdGlvbnMgPSBBcnJheS5pc0FycmF5KGZpbGVzKSA/IHsgZmlsZXM6IGZpbGVzIH0gOiBmaWxlcztcblxuICAvL1xuICAvLyBTZXQgdGhlIGRlZmF1bHQgSlNPTiBmb3JtYXQgaWYgbm90IGFscmVhZHlcbiAgLy8gc3BlY2lmaWVkXG4gIC8vXG4gIG9wdGlvbnMuZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQgfHwgZm9ybWF0cy5qc29uO1xuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZSAoZmlsZSwgbmV4dCkge1xuICAgIGZzLnJlYWRGaWxlKGZpbGUsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIHJldHVybiAhZXJyXG4gICAgICAgID8gbmV4dChudWxsLCBvcHRpb25zLmZvcm1hdC5wYXJzZShkYXRhLnRvU3RyaW5nKCkpKVxuICAgICAgICA6IG5leHQoZXJyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jLm1hcChvcHRpb25zLmZpbGVzLCBwYXJzZUZpbGUsIGZ1bmN0aW9uIChlcnIsIG9ianMpIHtcbiAgICByZXR1cm4gZXJyID8gY2FsbGJhY2soZXJyKSA6IGNhbGxiYWNrKG51bGwsIGNvbW1vbi5tZXJnZShvYmpzKSk7XG4gIH0pO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBsb2FkRmlsZXNTeW5jIChmaWxlcylcbi8vICMjIyMgQGZpbGVzIHtPYmplY3R8QXJyYXl9IExpc3Qgb2YgZmlsZXMgKG9yIHNldHRpbmdzIG9iamVjdCkgdG8gbG9hZC5cbi8vIExvYWRzIGFsbCB0aGUgZGF0YSBpbiB0aGUgc3BlY2lmaWVkIGBmaWxlc2Agc3luY2hyb25vdXNseS5cbi8vXG5jb21tb24ubG9hZEZpbGVzU3luYyA9IGZ1bmN0aW9uIChmaWxlcykge1xuICBpZiAoIWZpbGVzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy9cbiAgLy8gU2V0IHRoZSBkZWZhdWx0IEpTT04gZm9ybWF0IGlmIG5vdCBhbHJlYWR5XG4gIC8vIHNwZWNpZmllZFxuICAvL1xuICB2YXIgb3B0aW9ucyA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8geyBmaWxlczogZmlsZXMgfSA6IGZpbGVzO1xuICBvcHRpb25zLmZvcm1hdCA9IG9wdGlvbnMuZm9ybWF0IHx8IGZvcm1hdHMuanNvbjtcblxuICByZXR1cm4gY29tbW9uLm1lcmdlKG9wdGlvbnMuZmlsZXMubWFwKGZ1bmN0aW9uIChmaWxlKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuZm9ybWF0LnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlLCAndXRmOCcpKTtcbiAgfSkpO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBtZXJnZSAob2Jqcylcbi8vICMjIyMgQG9ianMge0FycmF5fSBBcnJheSBvZiBvYmplY3QgbGl0ZXJhbHMgdG8gbWVyZ2Vcbi8vIE1lcmdlcyB0aGUgc3BlY2lmaWVkIGBvYmpzYCB1c2luZyBhIHRlbXBvcmFyeSBpbnN0YW5jZVxuLy8gb2YgYHN0b3Jlcy5NZW1vcnlgLlxuLy9cbmNvbW1vbi5tZXJnZSA9IGZ1bmN0aW9uIChvYmpzKSB7XG4gIHZhciBzdG9yZSA9IG5ldyBNZW1vcnkoKTtcblxuICBvYmpzLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xuICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBzdG9yZS5tZXJnZShrZXksIG9ialtrZXldKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHN0b3JlLnN0b3JlO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBjYXBpdGFsaXplIChzdHIpXG4vLyAjIyMjIEBzdHIge3N0cmluZ30gU3RyaW5nIHRvIGNhcGl0YWxpemVcbi8vIENhcGl0YWxpemVzIHRoZSBzcGVjaWZpZWQgYHN0cmAuXG4vL1xuY29tbW9uLmNhcGl0YWxpemUgPSBmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIgJiYgc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHBhcnNlVmFsdWVzIChhbnkpXG4vLyAjIyMjIEBhbnkge3N0cmluZ30gU3RyaW5nIHRvIHBhcnNlIGFzIG5hdGl2ZSBkYXRhLXR5cGUgb3IgcmV0dXJuIGFzIGlzXG4vLyB0cnkgdG8gcGFyc2UgYGFueWAgYXMgYSBuYXRpdmUgZGF0YS10eXBlXG4vL1xuY29tbW9uLnBhcnNlVmFsdWVzID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHZhciB2YWwgPSB2YWx1ZTtcbiAgXG4gIHRyeSB7XG4gICAgdmFsID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gIH0gY2F0Y2ggKGlnbm9yZSkge1xuICAgIC8vIENoZWNrIGZvciBhbnkgb3RoZXIgd2VsbC1rbm93biBzdHJpbmdzIHRoYXQgc2hvdWxkIGJlIFwicGFyc2VkXCJcbiAgICBpZiAodmFsdWUgPT09ICd1bmRlZmluZWQnKXtcbiAgICAgIHZhbCA9IHZvaWQgMDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiB0cmFuc2Zvcm0obWFwLCBmbilcbi8vICMjIyMgQG1hcCB7b2JqZWN0fSBPYmplY3Qgb2Yga2V5L3ZhbHVlIHBhaXJzIHRvIGFwcGx5IGBmbmAgdG9cbi8vICMjIyMgQGZuIHtmdW5jdGlvbn0gVHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gZXZlcnkga2V5L3ZhbHVlIHBhaXJcbi8vIHRyYW5zZm9ybSBhIHNldCBvZiBrZXkvdmFsdWUgcGFpcnMgYW5kIHJldHVybiB0aGUgdHJhbnNmb3JtZWQgcmVzdWx0XG5jb21tb24udHJhbnNmb3JtID0gZnVuY3Rpb24obWFwLCBmbikge1xuICB2YXIgcGFpcnMgPSBPYmplY3Qua2V5cyhtYXApLm1hcChmdW5jdGlvbihrZXkpIHtcbiAgICB2YXIgb2JqID0geyBrZXk6IGtleSwgdmFsdWU6IG1hcFtrZXldfTtcbiAgICB2YXIgcmVzdWx0ID0gZm4uY2FsbChudWxsLCBvYmopO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAocmVzdWx0LmtleSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ1RyYW5zZm9ybSBmdW5jdGlvbiBwYXNzZWQgdG8gc3RvcmUgcmV0dXJuZWQgYW4gaW52YWxpZCBmb3JtYXQ6ICcgKyBKU09OLnN0cmluZ2lmeShyZXN1bHQpKTtcbiAgICBlcnJvci5uYW1lID0gJ1J1bnRpbWVFcnJvcic7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xuXG5cbiAgcmV0dXJuIHBhaXJzXG4gICAgLmZpbHRlcihmdW5jdGlvbihwYWlyKSB7XG4gICAgICByZXR1cm4gcGFpciAhPT0gbnVsbDtcbiAgICB9KVxuICAgIC5yZWR1Y2UoZnVuY3Rpb24oYWNjdW11bGF0b3IsIHBhaXIpIHtcbiAgICAgIGFjY3VtdWxhdG9yW3BhaXIua2V5XSA9IHBhaXIudmFsdWU7XG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfSwge30pO1xufVxuIiwgIi8qXG4gKiBwcm92aWRlci5qczogQWJzdHJhY3Rpb24gcHJvdmlkaW5nIGFuIGludGVyZmFjZSBpbnRvIHBsdWdnYWJsZSBjb25maWd1cmF0aW9uIHN0b3JhZ2UuXG4gKlxuICogKEMpIDIwMTEsIENoYXJsaWUgUm9iYmlucyBhbmQgdGhlIENvbnRyaWJ1dG9ycy5cbiAqXG4gKi9cblxudmFyIGFzeW5jID0gcmVxdWlyZSgnYXN5bmMnKSxcbiAgICBjb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIFByb3ZpZGVyIChvcHRpb25zKVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuLy8gQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBQcm92aWRlciBvYmplY3QgcmVzcG9uc2libGVcbi8vIGZvciBleHBvc2luZyB0aGUgcGx1Z2dhYmxlIHN0b3JhZ2UgZmVhdHVyZXMgb2YgYG5jb25mYC5cbi8vXG52YXIgUHJvdmlkZXIgPSBleHBvcnRzLlByb3ZpZGVyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgLy9cbiAgLy8gU2V0dXAgZGVmYXVsdCBvcHRpb25zIGZvciB3b3JraW5nIHdpdGggYHN0b3Jlc2AsXG4gIC8vIGBvdmVycmlkZXNgLCBgcHJvY2Vzcy5lbnZgIGFuZCBgcHJvY2Vzcy5hcmd2YC5cbiAgLy9cbiAgb3B0aW9ucyAgICAgICA9IG9wdGlvbnMgfHwge307XG4gIHRoaXMuc3RvcmVzICA9IHt9O1xuICB0aGlzLnNvdXJjZXMgPSBbXTtcbiAgdGhpcy5pbml0KG9wdGlvbnMpO1xufTtcblxuLy9cbi8vIERlZmluZSB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgdXNpbmcgYmFzaWMgc3RvcmVzXG4vLyBpbiB0aGlzIGluc3RhbmNlXG4vL1xuXG5bJ2FyZ3YnLCAnZW52J10uZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICBQcm92aWRlci5wcm90b3R5cGVbdHlwZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFyZ3MgPSBbdHlwZV0uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgIHJldHVybiB0aGlzLmFkZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfTtcbn0pO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGZpbGUgKGtleSwgb3B0aW9ucylcbi8vICMjIyMgQGtleSB7c3RyaW5nfE9iamVjdH0gRnVsbHkgcXVhbGlmaWVkIG9wdGlvbnMsIG5hbWUgb2YgZmlsZSBzdG9yZSwgb3IgcGF0aC5cbi8vICMjIyMgQHBhdGgge3N0cmluZ3xPYmplY3R9ICoqT3B0aW9uYWwqKiBGdWxsIHF1YWxpZmllZCBvcHRpb25zLCBvciBwYXRoLlxuLy8gQWRkcyBhIG5ldyBgRmlsZWAgc3RvcmUgdG8gdGhpcyBpbnN0YW5jZS4gQWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbnNcbi8vXG4vLyAgICBuY29uZi5maWxlKHsgZmlsZTogJy5qaXRzdWNvbmYnLCBkaXI6IHByb2Nlc3MuZW52LkhPTUUsIHNlYXJjaDogdHJ1ZSB9KTtcbi8vICAgIG5jb25mLmZpbGUoJ3BhdGgvdG8vY29uZmlnL2ZpbGUnKTtcbi8vICAgIG5jb25mLmZpbGUoJ3VzZXJjb25maWcnLCAncGF0aC90by9jb25maWcvZmlsZScpO1xuLy8gICAgbmNvbmYuZmlsZSgndXNlcmNvbmZpZycsIHsgZmlsZTogJy5qaXRzdWNvbmYnLCBzZWFyY2g6IHRydWUgfSk7XG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLmZpbGUgPSBmdW5jdGlvbiAoa2V5LCBvcHRpb25zKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHtcbiAgICBvcHRpb25zID0gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgPyB7IGZpbGU6IGtleSB9IDoga2V5O1xuICAgIGtleSA9ICdmaWxlJztcbiAgfVxuICBlbHNlIHtcbiAgICBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnXG4gICAgICA/IHsgZmlsZTogb3B0aW9ucyB9XG4gICAgICA6IG9wdGlvbnM7XG4gIH1cblxuICBvcHRpb25zLnR5cGUgPSAnZmlsZSc7XG4gIHJldHVybiB0aGlzLmFkZChrZXksIG9wdGlvbnMpO1xufTtcblxuLy9cbi8vIERlZmluZSB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgdXNpbmdcbi8vIG92ZXJyaWRlcyBhbmQgZGVmYXVsdHNcbi8vXG5bJ2RlZmF1bHRzJywgJ292ZXJyaWRlcyddLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgUHJvdmlkZXIucHJvdG90eXBlW3R5cGVdID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBpZiAoIW9wdGlvbnMudHlwZSkge1xuICAgICAgb3B0aW9ucy50eXBlID0gJ2xpdGVyYWwnO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFkZCh0eXBlLCBvcHRpb25zKTtcbiAgfTtcbn0pO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHVzZSAobmFtZSwgb3B0aW9ucylcbi8vICMjIyMgQHR5cGUge3N0cmluZ30gVHlwZSBvZiB0aGUgbmNvbmYgc3RvcmUgdG8gdXNlLlxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGUgc3RvcmUgaW5zdGFuY2UuXG4vLyBBZGRzIChvciByZXBsYWNlcykgYSBuZXcgc3RvcmUgd2l0aCB0aGUgc3BlY2lmaWVkIGBuYW1lYFxuLy8gYW5kIGBvcHRpb25zYC4gSWYgYG9wdGlvbnMudHlwZWAgaXMgbm90IHNldCwgdGhlbiBgbmFtZWBcbi8vIHdpbGwgYmUgdXNlZCBpbnN0ZWFkOlxuLy9cbi8vICAgIHByb3ZpZGVyLnVzZSgnZmlsZScpO1xuLy8gICAgcHJvdmlkZXIudXNlKCdmaWxlJywgeyB0eXBlOiAnZmlsZScsIGZpbGVuYW1lOiAnL3BhdGgvdG8vdXNlcmNvbmYnIH0pXG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uIChuYW1lLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgID0gb3B0aW9ucyAgICAgIHx8IHt9O1xuXG4gIGZ1bmN0aW9uIHNhbWVPcHRpb25zIChzdG9yZSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvcHRpb25zKS5ldmVyeShmdW5jdGlvbiAoa2V5KSB7XG4gICAgICByZXR1cm4gb3B0aW9uc1trZXldID09PSBzdG9yZVtrZXldO1xuICAgIH0pO1xuICB9XG5cbiAgdmFyIHN0b3JlID0gdGhpcy5zdG9yZXNbbmFtZV0sXG4gICAgICB1cGRhdGUgPSBzdG9yZSAmJiAhc2FtZU9wdGlvbnMoc3RvcmUpO1xuXG4gIGlmICghc3RvcmUgfHwgdXBkYXRlKSB7XG4gICAgaWYgKHVwZGF0ZSkge1xuICAgICAgdGhpcy5yZW1vdmUobmFtZSk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGQobmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gYWRkIChuYW1lLCBvcHRpb25zKVxuLy8gIyMjIyBAbmFtZSB7c3RyaW5nfSBOYW1lIG9mIHRoZSBzdG9yZSB0byBhZGQgdG8gdGhpcyBpbnN0YW5jZVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGUgc3RvcmUgdG8gY3JlYXRlXG4vLyBBZGRzIGEgbmV3IHN0b3JlIHdpdGggdGhlIHNwZWNpZmllZCBgbmFtZWAgYW5kIGBvcHRpb25zYC4gSWYgYG9wdGlvbnMudHlwZWBcbi8vIGlzIG5vdCBzZXQsIHRoZW4gYG5hbWVgIHdpbGwgYmUgdXNlZCBpbnN0ZWFkOlxuLy9cbi8vICAgIHByb3ZpZGVyLmFkZCgnbWVtb3J5Jyk7XG4vLyAgICBwcm92aWRlci5hZGQoJ3VzZXJjb25mJywgeyB0eXBlOiAnZmlsZScsIGZpbGVuYW1lOiAnL3BhdGgvdG8vdXNlcmNvbmYnIH0pXG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChuYW1lLCBvcHRpb25zLCB1c2FnZSkge1xuICBvcHRpb25zICA9IG9wdGlvbnMgICAgICB8fCB7fTtcbiAgdmFyIHR5cGUgPSBvcHRpb25zLnR5cGUgfHwgbmFtZTtcblxuICBpZiAoIXJlcXVpcmUoJy4uL25jb25mJylbY29tbW9uLmNhcGl0YWxpemUodHlwZSldKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWRkIHN0b3JlIHdpdGggdW5rbm93biB0eXBlOiAnICsgdHlwZSk7XG4gIH1cblxuICB0aGlzLnN0b3Jlc1tuYW1lXSA9IHRoaXMuY3JlYXRlKHR5cGUsIG9wdGlvbnMsIHVzYWdlKTtcblxuICBpZiAodGhpcy5zdG9yZXNbbmFtZV0ubG9hZFN5bmMpIHtcbiAgICB0aGlzLnN0b3Jlc1tuYW1lXS5sb2FkU3luYygpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHJlbW92ZSAobmFtZSlcbi8vICMjIyMgQG5hbWUge3N0cmluZ30gTmFtZSBvZiB0aGUgc3RvcmUgdG8gcmVtb3ZlIGZyb20gdGhpcyBpbnN0YW5jZVxuLy8gUmVtb3ZlcyBhIHN0b3JlIHdpdGggdGhlIHNwZWNpZmllZCBgbmFtZWAgZnJvbSB0aGlzIGluc3RhbmNlLiBVc2Vyc1xuLy8gYXJlIGFsbG93ZWQgdG8gcGFzcyBpbiBhIHR5cGUgYXJndW1lbnQgKGUuZy4gYG1lbW9yeWApIGFzIG5hbWUgaWZcbi8vIHRoaXMgd2FzIHVzZWQgaW4gdGhlIGNhbGwgdG8gYC5hZGQoKWAuXG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIGRlbGV0ZSB0aGlzLnN0b3Jlc1tuYW1lXTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGNyZWF0ZSAodHlwZSwgb3B0aW9ucylcbi8vICMjIyMgQHR5cGUge3N0cmluZ30gVHlwZSBvZiB0aGUgbmNvbmYgc3RvcmUgdG8gdXNlLlxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGUgc3RvcmUgaW5zdGFuY2UuXG4vLyBDcmVhdGVzIGEgc3RvcmUgb2YgdGhlIHNwZWNpZmllZCBgdHlwZWAgdXNpbmcgdGhlXG4vLyBzcGVjaWZpZWQgYG9wdGlvbnNgLlxuLy9cblByb3ZpZGVyLnByb3RvdHlwZS5jcmVhdGUgPSBmdW5jdGlvbiAodHlwZSwgb3B0aW9ucywgdXNhZ2UpIHtcbiAgcmV0dXJuIG5ldyAocmVxdWlyZSgnLi4vbmNvbmYnKVtjb21tb24uY2FwaXRhbGl6ZSh0eXBlLnRvTG93ZXJDYXNlKCkpXSkob3B0aW9ucywgdXNhZ2UpO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBpbml0IChvcHRpb25zKVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIHRvIGluaXRpYWxpemUgdGhpcyBpbnN0YW5jZSB3aXRoLlxuLy8gSW5pdGlhbGl6ZXMgdGhpcyBpbnN0YW5jZSB3aXRoIGFkZGl0aW9uYWwgYHN0b3Jlc2Agb3IgYHNvdXJjZXNgIGluIHRoZVxuLy8gYG9wdGlvbnNgIHN1cHBsaWVkLlxuLy9cblByb3ZpZGVyLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIC8vXG4gIC8vIEFkZCBhbnkgc3RvcmVzIHBhc3NlZCBpbiB0aHJvdWdoIHRoZSBvcHRpb25zXG4gIC8vIHRvIHRoaXMgaW5zdGFuY2UuXG4gIC8vXG4gIGlmIChvcHRpb25zLnR5cGUpIHtcbiAgICB0aGlzLmFkZChvcHRpb25zLnR5cGUsIG9wdGlvbnMpO1xuICB9XG4gIGVsc2UgaWYgKG9wdGlvbnMuc3RvcmUpIHtcbiAgICB0aGlzLmFkZChvcHRpb25zLnN0b3JlLm5hbWUgfHwgb3B0aW9ucy5zdG9yZS50eXBlLCBvcHRpb25zLnN0b3JlKTtcbiAgfVxuICBlbHNlIGlmIChvcHRpb25zLnN0b3Jlcykge1xuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMuc3RvcmVzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgc3RvcmUgPSBvcHRpb25zLnN0b3Jlc1tuYW1lXTtcbiAgICAgIHNlbGYuYWRkKHN0b3JlLm5hbWUgfHwgbmFtZSB8fCBzdG9yZS50eXBlLCBzdG9yZSk7XG4gICAgfSk7XG4gIH1cblxuICAvL1xuICAvLyBBZGQgYW55IHJlYWQtb25seSBzb3VyY2VzIHRvIHRoaXMgaW5zdGFuY2VcbiAgLy9cbiAgaWYgKG9wdGlvbnMuc291cmNlKSB7XG4gICAgdGhpcy5zb3VyY2VzLnB1c2godGhpcy5jcmVhdGUob3B0aW9ucy5zb3VyY2UudHlwZSB8fCBvcHRpb25zLnNvdXJjZS5uYW1lLCBvcHRpb25zLnNvdXJjZSkpO1xuICB9XG4gIGVsc2UgaWYgKG9wdGlvbnMuc291cmNlcykge1xuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMuc291cmNlcykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdmFyIHNvdXJjZSA9IG9wdGlvbnMuc291cmNlc1tuYW1lXTtcbiAgICAgIHNlbGYuc291cmNlcy5wdXNoKHNlbGYuY3JlYXRlKHNvdXJjZS50eXBlIHx8IHNvdXJjZS5uYW1lIHx8IG5hbWUsIHNvdXJjZSkpO1xuICAgIH0pO1xuICB9XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGdldCAoa2V5LCBjYWxsYmFjaylcbi8vICMjIyMgQGtleSB7c3RyaW5nfSBLZXkgdG8gcmV0cmlldmUgZm9yIHRoaXMgaW5zdGFuY2UuXG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqT3B0aW9uYWwqKiBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gUmV0cmlldmVzIHRoZSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkgKGlmIGFueSkuXG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGNhbGxiYWNrKSB7XG4gIGlmICh0eXBlb2Yga2V5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gQWxsb3cgYSAqIGtleSBjYWxsIHRvIGJlIG1hZGVcbiAgICBjYWxsYmFjayA9IGtleTtcbiAgICBrZXkgPSBudWxsO1xuICB9XG5cbiAgLy9cbiAgLy8gSWYgdGhlcmUgaXMgbm8gY2FsbGJhY2sgd2UgY2FuIHNob3J0LWNpcmN1aXQgaW50byB0aGUgZGVmYXVsdFxuICAvLyBsb2dpYyBmb3IgdHJhdmVyc2luZyBzdG9yZXMuXG4gIC8vXG4gIGlmICghY2FsbGJhY2spIHtcbiAgICByZXR1cm4gdGhpcy5fZXhlY3V0ZSgnZ2V0JywgMSwga2V5LCBjYWxsYmFjayk7XG4gIH1cblxuICAvL1xuICAvLyBPdGhlcndpc2UgdGhlIGFzeW5jaHJvbm91cywgaGllcmFyY2hpY2FsIGBnZXRgIGlzXG4gIC8vIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgYmVjYXVzZSB3ZSBkbyBub3QgbmVlZCB0byB0cmF2ZXJzZVxuICAvLyB0aGUgZW50aXJlIHNldCBvZiBzdG9yZXMsIGJ1dCB1cCB1bnRpbCB0aGVyZSBpcyBhIGRlZmluZWQgdmFsdWUuXG4gIC8vXG4gIHZhciBjdXJyZW50ID0gMCxcbiAgICAgIG5hbWVzID0gT2JqZWN0LmtleXModGhpcy5zdG9yZXMpLFxuICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICByZXNwb25zZSxcbiAgICAgIG1lcmdlT2JqcyA9IFtdO1xuXG4gIGFzeW5jLndoaWxzdChmdW5jdGlvbiAoY2IpIHtcbiAgICBjYihudWxsLCB0eXBlb2YgcmVzcG9uc2UgPT09ICd1bmRlZmluZWQnICYmIGN1cnJlbnQgPCBuYW1lcy5sZW5ndGgpO1xuICB9LCBmdW5jdGlvbiAobmV4dCkge1xuICAgIHZhciBzdG9yZSA9IHNlbGYuc3RvcmVzW25hbWVzW2N1cnJlbnRdXTtcbiAgICBjdXJyZW50Kys7XG5cbiAgICBpZiAoc3RvcmUuZ2V0Lmxlbmd0aCA+PSAyKSB7XG4gICAgICByZXR1cm4gc3RvcmUuZ2V0KGtleSwgZnVuY3Rpb24gKGVyciwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgIH1cblxuICAgICAgICByZXNwb25zZSA9IHZhbHVlO1xuXG4gICAgICAgIC8vIE1lcmdlIG9iamVjdHMgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmIChyZXNwb25zZSAmJiB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc3BvbnNlKSkge1xuICAgICAgICAgIG1lcmdlT2Jqcy5wdXNoKHJlc3BvbnNlKTtcbiAgICAgICAgICByZXNwb25zZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlc3BvbnNlID0gc3RvcmUuZ2V0KGtleSk7XG5cbiAgICAvLyBNZXJnZSBvYmplY3RzIGlmIG5lY2Vzc2FyeVxuICAgIGlmIChyZXNwb25zZSAmJiB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc3BvbnNlKSkge1xuICAgICAgbWVyZ2VPYmpzLnB1c2gocmVzcG9uc2UpO1xuICAgICAgcmVzcG9uc2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgbmV4dCgpO1xuICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKCFlcnIgJiYgbWVyZ2VPYmpzLmxlbmd0aCkge1xuICAgICAgcmVzcG9uc2UgPSBjb21tb24ubWVyZ2UobWVyZ2VPYmpzLnJldmVyc2UoKSk7XG4gICAgfVxuICAgIHJldHVybiBlcnIgPyBjYWxsYmFjayhlcnIpIDogY2FsbGJhY2sobnVsbCwgcmVzcG9uc2UpO1xuICB9KTtcbn07XG5cblxuLy9cbi8vICMjIyBmdW5jdGlvbiBhbnkgKGtleXMsIGNhbGxiYWNrKVxuLy8gIyMjIyBAa2V5cyB7YXJyYXl8c3RyaW5nLi4ufSBBcnJheSBvZiBrZXlzIHRvIHF1ZXJ5LCBvciBhIHZhcmlhYmxlIGxpc3Qgb2Ygc3RyaW5nc1xuLy8gIyMjIyBAY2FsbGJhY2sge2Z1bmN0aW9ufSAqKk9wdGlvbmFsKiogQ29udGludWF0aW9uIHRvIHJlc3BvbmQgdG8gd2hlbiBjb21wbGV0ZS5cbi8vIFJldHJpZXZlcyB0aGUgZmlyc3QgdHJ1dGh5IHZhbHVlIChpZiBhbnkpIGZvciB0aGUgc3BlY2lmaWVkIGxpc3Qgb2Yga2V5cy5cbi8vXG5Qcm92aWRlci5wcm90b3R5cGUuYW55ID0gZnVuY3Rpb24gKGtleXMsIGNhbGxiYWNrKSB7XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XG4gICAga2V5cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID4gMCAmJiB0eXBlb2Yga2V5c1trZXlzLmxlbmd0aCAtIDFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IGtleXMucG9wKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBJZiB0aGVyZSBpcyBubyBjYWxsYmFjaywgdXNlIHRoZSBzaG9ydC1jaXJjdWl0ZWQgXCJnZXRcIlxuICAvLyBvbiBlYWNoIGtleSBpbiB0dXJuLlxuICAvL1xuICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgdmFyIHZhbDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIHZhbCA9IHRoaXMuX2V4ZWN1dGUoJ2dldCcsIDEsIGtleXNbaV0sIGNhbGxiYWNrKTtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIga2V5SW5kZXggPSAwLFxuICAgICAgcmVzdWx0LFxuICAgICAgc2VsZiA9IHRoaXM7XG4gIFxuICBhc3luYy53aGlsc3QoZnVuY3Rpb24oY2IpIHtcbiAgICBjYihudWxsLCAhcmVzdWx0ICYmIGtleUluZGV4IDwga2V5cy5sZW5ndGgpO1xuICB9LCBmdW5jdGlvbihuZXh0KSB7XG4gICAgdmFyIGtleSA9IGtleXNba2V5SW5kZXhdO1xuICAgIGtleUluZGV4Kys7XG5cbiAgICBzZWxmLmdldChrZXksIGZ1bmN0aW9uKGVyciwgdikge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBuZXh0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB2O1xuICAgICAgICBuZXh0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIGZ1bmN0aW9uKGVycikge1xuICAgIHJldHVybiBlcnIgPyBjYWxsYmFjayhlcnIpIDogY2FsbGJhY2sobnVsbCwgcmVzdWx0KTtcbiAgfSk7XG59O1xuXG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gc2V0IChrZXksIHZhbHVlLCBjYWxsYmFjaylcbi8vICMjIyMgQGtleSB7c3RyaW5nfSBLZXkgdG8gc2V0IGluIHRoaXMgaW5zdGFuY2Vcbi8vICMjIyMgQHZhbHVlIHtsaXRlcmFsfE9iamVjdH0gVmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQga2V5XG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqT3B0aW9uYWwqKiBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gU2V0cyB0aGUgYHZhbHVlYCBmb3IgdGhlIHNwZWNpZmllZCBga2V5YCBpbiB0aGlzIGluc3RhbmNlLlxuLy9cblByb3ZpZGVyLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIHRoaXMuX2V4ZWN1dGUoJ3NldCcsIDIsIGtleSwgdmFsdWUsIGNhbGxiYWNrKTtcbn07XG5cblxuLy9cbi8vICMjIyBmdW5jdGlvbiByZXF1aXJlZCAoa2V5cylcbi8vICMjIyMgQGtleXMge2FycmF5fSBMaXN0IG9mIGtleXNcbi8vIFRocm93cyBhbiBlcnJvciBpZiBhbnkgb2YgYGtleXNgIGhhcyBubyB2YWx1ZSwgb3RoZXJ3aXNlIHJldHVybnMgYHRydWVgXG5Qcm92aWRlci5wcm90b3R5cGUucmVxdWlyZWQgPSBmdW5jdGlvbiAoa2V5cykge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0luY29ycmVjdCBwYXJhbWV0ZXIsIGFycmF5IGV4cGVjdGVkJyk7XG4gIH1cblxuICB2YXIgbWlzc2luZyA9IFtdO1xuICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmdldChrZXkpID09PSAndW5kZWZpbmVkJykge1xuICAgICAgbWlzc2luZy5wdXNoKGtleSk7XG4gICAgfVxuICB9LCB0aGlzKTtcblxuICBpZiAobWlzc2luZy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcmVxdWlyZWQga2V5czogJyArIG1pc3Npbmcuam9pbignLCAnKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiByZXNldCAoY2FsbGJhY2spXG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqT3B0aW9uYWwqKiBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gQ2xlYXJzIGFsbCBrZXlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLlxuLy9cblByb3ZpZGVyLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICByZXR1cm4gdGhpcy5fZXhlY3V0ZSgncmVzZXQnLCAwLCBjYWxsYmFjayk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGNsZWFyIChrZXksIGNhbGxiYWNrKVxuLy8gIyMjIyBAa2V5IHtzdHJpbmd9IEtleSB0byByZW1vdmUgZnJvbSB0aGlzIGluc3RhbmNlXG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqT3B0aW9uYWwqKiBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gUmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgYGtleWAgZnJvbSB0aGlzIGluc3RhbmNlLlxuLy9cblByb3ZpZGVyLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIChrZXksIGNhbGxiYWNrKSB7XG4gIHJldHVybiB0aGlzLl9leGVjdXRlKCdjbGVhcicsIDEsIGtleSwgY2FsbGJhY2spO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBtZXJnZSAoW2tleSxdIHZhbHVlIFssIGNhbGxiYWNrXSlcbi8vICMjIyMgQGtleSB7c3RyaW5nfSBLZXkgdG8gbWVyZ2UgdGhlIHZhbHVlIGludG9cbi8vICMjIyMgQHZhbHVlIHtsaXRlcmFsfE9iamVjdH0gVmFsdWUgdG8gbWVyZ2UgaW50byB0aGUga2V5XG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqT3B0aW9uYWwqKiBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gTWVyZ2VzIHRoZSBwcm9wZXJ0aWVzIGluIGB2YWx1ZWAgaW50byB0aGUgZXhpc3Rpbmcgb2JqZWN0IHZhbHVlIGF0IGBrZXlgLlxuLy9cbi8vIDEuIElmIHRoZSBleGlzdGluZyB2YWx1ZSBga2V5YCBpcyBub3QgYW4gT2JqZWN0LCBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgb3ZlcndyaXR0ZW4uXG4vLyAyLiBJZiBga2V5YCBpcyBub3Qgc3VwcGxpZWQsIHRoZW4gdGhlIGB2YWx1ZWAgd2lsbCBiZSBtZXJnZWQgaW50byB0aGUgcm9vdC5cbi8vXG5Qcm92aWRlci5wcm90b3R5cGUubWVyZ2UgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcyxcbiAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLFxuICAgICAgY2FsbGJhY2sgPSB0eXBlb2YgYXJnc1thcmdzLmxlbmd0aCAtIDFdID09PSAnZnVuY3Rpb24nICYmIGFyZ3MucG9wKCksXG4gICAgICB2YWx1ZSA9IGFyZ3MucG9wKCksXG4gICAgICBrZXkgPSBhcmdzLnBvcCgpO1xuXG4gIGZ1bmN0aW9uIG1lcmdlUHJvcGVydHkgKHByb3AsIG5leHQpIHtcbiAgICByZXR1cm4gc2VsZi5fZXhlY3V0ZSgnbWVyZ2UnLCAyLCBwcm9wLCB2YWx1ZVtwcm9wXSwgbmV4dCk7XG4gIH1cblxuICBpZiAoIWtleSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gb25FcnJvcihuZXcgRXJyb3IoJ0Nhbm5vdCBtZXJnZSBub24tT2JqZWN0IGludG8gdG9wLWxldmVsLicpLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jLmZvckVhY2goT2JqZWN0LmtleXModmFsdWUpLCBtZXJnZVByb3BlcnR5LCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7IH0pXG4gIH1cblxuICByZXR1cm4gdGhpcy5fZXhlY3V0ZSgnbWVyZ2UnLCAyLCBrZXksIHZhbHVlLCBjYWxsYmFjayk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWQgKGNhbGxiYWNrKVxuLy8gIyMjIyBAY2FsbGJhY2sge2Z1bmN0aW9ufSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gUmVzcG9uZHMgd2l0aCBhbiBPYmplY3QgcmVwcmVzZW50aW5nIGFsbCBrZXlzIGFzc29jaWF0ZWQgaW4gdGhpcyBpbnN0YW5jZS5cbi8vXG5Qcm92aWRlci5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgZnVuY3Rpb24gZ2V0U3RvcmVzICgpIHtcbiAgICB2YXIgc3RvcmVzID0gT2JqZWN0LmtleXMoc2VsZi5zdG9yZXMpO1xuICAgIHN0b3Jlcy5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIHN0b3Jlcy5tYXAoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHJldHVybiBzZWxmLnN0b3Jlc1tuYW1lXTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxvYWRTdG9yZVN5bmMoc3RvcmUpIHtcbiAgICBpZiAoIXN0b3JlLmxvYWRTeW5jKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25jb25mIHN0b3JlICcgKyBzdG9yZS50eXBlICsgJyBoYXMgbm8gbG9hZFN5bmMoKSBtZXRob2QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RvcmUubG9hZFN5bmMoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGxvYWRTdG9yZShzdG9yZSwgbmV4dCkge1xuICAgIGlmICghc3RvcmUubG9hZCAmJiAhc3RvcmUubG9hZFN5bmMpIHtcbiAgICAgIHJldHVybiBuZXh0KG5ldyBFcnJvcignbmNvbmYgc3RvcmUgJyArIHN0b3JlLnR5cGUgKyAnIGhhcyBubyBsb2FkKCkgbWV0aG9kJykpO1xuICAgIH1cblxuICAgIHJldHVybiBzdG9yZS5sb2FkU3luY1xuICAgICAgPyBuZXh0KG51bGwsIHN0b3JlLmxvYWRTeW5jKCkpXG4gICAgICA6IHN0b3JlLmxvYWQobmV4dCk7XG4gIH1cblxuICBmdW5jdGlvbiBsb2FkQmF0Y2ggKHRhcmdldHMsIGRvbmUpIHtcbiAgICBpZiAoIWRvbmUpIHtcbiAgICAgIHJldHVybiBjb21tb24ubWVyZ2UodGFyZ2V0cy5tYXAobG9hZFN0b3JlU3luYykpO1xuICAgIH1cblxuICAgIGFzeW5jLm1hcCh0YXJnZXRzLCBsb2FkU3RvcmUsIGZ1bmN0aW9uIChlcnIsIG9ianMpIHtcbiAgICAgIHJldHVybiBlcnIgPyBkb25lKGVycikgOiBkb25lKG51bGwsIGNvbW1vbi5tZXJnZShvYmpzKSk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZVNvdXJjZXMgKGRhdGEpIHtcbiAgICAvL1xuICAgIC8vIElmIGBkYXRhYCB3YXMgcmV0dXJuZWQgdGhlbiBtZXJnZSBpdCBpbnRvXG4gICAgLy8gdGhlIHN5c3RlbSBzdG9yZS5cbiAgICAvL1xuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgc2VsZi51c2UoJ3NvdXJjZXMnLCB7XG4gICAgICAgIHR5cGU6ICdsaXRlcmFsJyxcbiAgICAgICAgc3RvcmU6IGRhdGFcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGxvYWRTb3VyY2VzICgpIHtcbiAgICB2YXIgc291cmNlSGllcmFyY2h5ID0gc2VsZi5zb3VyY2VzLnNwbGljZSgwKTtcbiAgICBzb3VyY2VIaWVyYXJjaHkucmV2ZXJzZSgpO1xuXG4gICAgLy9cbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY2FsbGJhY2sgYW5kIHRoZSBjdXJyZW50XG4gICAgLy8gc3RvcmUgaXMgY2FwYWJsZSBvZiBsb2FkaW5nIHN5bmNocm9ub3VzbHlcbiAgICAvLyB0aGVuIGRvIHNvLlxuICAgIC8vXG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgbWVyZ2VTb3VyY2VzKGxvYWRCYXRjaChzb3VyY2VIaWVyYXJjaHkpKTtcbiAgICAgIHJldHVybiBsb2FkQmF0Y2goZ2V0U3RvcmVzKCkpO1xuICAgIH1cblxuICAgIGxvYWRCYXRjaChzb3VyY2VIaWVyYXJjaHksIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICB9XG5cbiAgICAgIG1lcmdlU291cmNlcyhkYXRhKTtcbiAgICAgIHJldHVybiBsb2FkQmF0Y2goZ2V0U3RvcmVzKCksIGNhbGxiYWNrKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzZWxmLnNvdXJjZXMubGVuZ3RoXG4gICAgPyBsb2FkU291cmNlcygpXG4gICAgOiBsb2FkQmF0Y2goZ2V0U3RvcmVzKCksIGNhbGxiYWNrKTtcbn07XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gc2F2ZSAoY2FsbGJhY2spXG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259ICoqb3B0aW9uYWwqKiAgQ29udGludWF0aW9uIHRvIHJlc3BvbmQgdG8gd2hlblxuLy8gY29tcGxldGUuXG4vLyBJbnN0cnVjdHMgZWFjaCBwcm92aWRlciB0byBzYXZlLiAgSWYgYSBjYWxsYmFjayBpcyBwcm92aWRlZCwgd2Ugd2lsbCBhdHRlbXB0XG4vLyBhc3luY2hyb25vdXMgc2F2ZXMgb24gdGhlIHByb3ZpZGVycywgZmFsbGluZyBiYWNrIHRvIHN5bmNocm9ub3VzIHNhdmVzIGlmXG4vLyB0aGlzIGlzbid0IHBvc3NpYmxlLiAgSWYgYSBwcm92aWRlciBkb2VzIG5vdCBrbm93IGhvdyB0byBzYXZlLCBpdCB3aWxsIGJlXG4vLyBpZ25vcmVkLiAgUmV0dXJucyBhbiBvYmplY3QgY29uc2lzdGluZyBvZiBhbGwgb2YgdGhlIGRhdGEgd2hpY2ggd2FzXG4vLyBhY3R1YWxseSBzYXZlZC5cbi8vXG5Qcm92aWRlci5wcm90b3R5cGUuc2F2ZSA9IGZ1bmN0aW9uICh2YWx1ZSwgY2FsbGJhY2spIHtcbiAgaWYgKCFjYWxsYmFjayAmJiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayA9IHZhbHVlO1xuICAgIHZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIHZhciBzZWxmID0gdGhpcyxcbiAgICAgIG5hbWVzID0gT2JqZWN0LmtleXModGhpcy5zdG9yZXMpO1xuXG4gIGZ1bmN0aW9uIHNhdmVTdG9yZVN5bmMobWVtbywgbmFtZSkge1xuICAgIHZhciBzdG9yZSA9IHNlbGYuc3RvcmVzW25hbWVdO1xuXG4gICAgLy9cbiAgICAvLyBJZiB0aGUgYHN0b3JlYCBkb2Vzbid0IGhhdmUgYSBgc2F2ZVN5bmNgIG1ldGhvZCxcbiAgICAvLyBqdXN0IGlnbm9yZSBpdCBhbmQgY29udGludWUuXG4gICAgLy9cbiAgICBpZiAoc3RvcmUuc2F2ZVN5bmMpIHtcbiAgICAgIHZhciByZXQgPSBzdG9yZS5zYXZlU3luYygpO1xuICAgICAgaWYgKHR5cGVvZiByZXQgPT0gJ29iamVjdCcgJiYgcmV0ICE9PSBudWxsKSB7XG4gICAgICAgIG1lbW8ucHVzaChyZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVtbztcbiAgfVxuXG4gIGZ1bmN0aW9uIHNhdmVTdG9yZShtZW1vLCBuYW1lLCBuZXh0KSB7XG4gICAgdmFyIHN0b3JlID0gc2VsZi5zdG9yZXNbbmFtZV07XG5cbiAgICAvL1xuICAgIC8vIElmIHRoZSBgc3RvcmVgIGRvZXNuJ3QgaGF2ZSBhIGBzYXZlYCBvciBzYXZlU3luY2BcbiAgICAvLyBtZXRob2QocyksIGp1c3QgaWdub3JlIGl0IGFuZCBjb250aW51ZS5cbiAgICAvL1xuXG4gICAgaWYgKHN0b3JlLnNhdmUpIHtcbiAgICAgIHJldHVybiBzdG9yZS5zYXZlKHZhbHVlLCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICdvYmplY3QnICYmIGRhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICBtZW1vLnB1c2goZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBuZXh0KG51bGwsIG1lbW8pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHN0b3JlLnNhdmVTeW5jKSB7XG4gICAgICBtZW1vLnB1c2goc3RvcmUuc2F2ZVN5bmMoKSk7XG4gICAgfVxuXG4gICAgbmV4dChudWxsLCBtZW1vKTtcbiAgfVxuXG4gIC8vXG4gIC8vIElmIHdlIGRvbid0IGhhdmUgYSBjYWxsYmFjayBhbmQgdGhlIGN1cnJlbnRcbiAgLy8gc3RvcmUgaXMgY2FwYWJsZSBvZiBzYXZpbmcgc3luY2hyb25vdXNseVxuICAvLyB0aGVuIGRvIHNvLlxuICAvL1xuICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIGNvbW1vbi5tZXJnZShuYW1lcy5yZWR1Y2Uoc2F2ZVN0b3JlU3luYywgW10pKTtcbiAgfVxuXG4gIGFzeW5jLnJlZHVjZShuYW1lcywgW10sIHNhdmVTdG9yZSwgZnVuY3Rpb24gKGVyciwgb2Jqcykge1xuICAgIHJldHVybiBlcnIgPyBjYWxsYmFjayhlcnIpIDogY2FsbGJhY2sobnVsbCwgY29tbW9uLm1lcmdlKG9ianMpKTtcbiAgfSk7XG59O1xuXG4vL1xuLy8gIyMjIEBwcml2YXRlIGZ1bmN0aW9uIF9leGVjdXRlIChhY3Rpb24sIHN5bmNMZW5ndGgsIFthcmd1bWVudHNdKVxuLy8gIyMjIyBAYWN0aW9uIHtzdHJpbmd9IEFjdGlvbiB0byBleGVjdXRlIG9uIGB0aGlzLnN0b3JlYC5cbi8vICMjIyMgQHN5bmNMZW5ndGgge251bWJlcn0gRnVuY3Rpb24gbGVuZ3RoIG9mIHRoZSBzeW5jIHZlcnNpb24uXG4vLyAjIyMjIEBhcmd1bWVudHMge0FycmF5fSBBcmd1bWVudHMgYXJyYXkgdG8gYXBwbHkgdG8gdGhlIGFjdGlvblxuLy8gRXhlY3V0ZXMgdGhlIHNwZWNpZmllZCBgYWN0aW9uYCBvbiBhbGwgc3RvcmVzIGZvciB0aGlzIGluc3RhbmNlLCBlbnN1cmluZyBhIGNhbGxiYWNrIHN1cHBsaWVkXG4vLyB0byBhIHN5bmNocm9ub3VzIHN0b3JlIGZ1bmN0aW9uIGlzIHN0aWxsIGludm9rZWQuXG4vL1xuUHJvdmlkZXIucHJvdG90eXBlLl9leGVjdXRlID0gZnVuY3Rpb24gKGFjdGlvbiwgc3luY0xlbmd0aCAvKiBbYXJndW1lbnRzXSAqLykge1xuICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMiksXG4gICAgICBjYWxsYmFjayA9IHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09ICdmdW5jdGlvbicgJiYgYXJncy5wb3AoKSxcbiAgICAgIGRlc3RydWN0aXZlID0gWydzZXQnLCAnY2xlYXInLCAnbWVyZ2UnLCAncmVzZXQnXS5pbmRleE9mKGFjdGlvbikgIT09IC0xLFxuICAgICAgc2VsZiA9IHRoaXMsXG4gICAgICByZXNwb25zZSxcbiAgICAgIG1lcmdlT2JqcyA9IFtdLFxuICAgICAga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVzKTtcblxuXG4gIGZ1bmN0aW9uIHJ1bkFjdGlvbiAobmFtZSwgbmV4dCkge1xuICAgIHZhciBzdG9yZSA9IHNlbGYuc3RvcmVzW25hbWVdO1xuXG4gICAgaWYgKGRlc3RydWN0aXZlICYmIHN0b3JlLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm4gbmV4dCgpO1xuICAgIH1cblxuICAgIHJldHVybiBzdG9yZVthY3Rpb25dLmxlbmd0aCA+IHN5bmNMZW5ndGhcbiAgICAgID8gc3RvcmVbYWN0aW9uXS5hcHBseShzdG9yZSwgYXJncy5jb25jYXQobmV4dCkpXG4gICAgICA6IG5leHQobnVsbCwgc3RvcmVbYWN0aW9uXS5hcHBseShzdG9yZSwgYXJncykpO1xuICB9XG5cbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIGFzeW5jLmZvckVhY2goa2V5cywgcnVuQWN0aW9uLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICByZXR1cm4gZXJyID8gY2FsbGJhY2soZXJyKSA6IGNhbGxiYWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIHN0b3JlID0gc2VsZi5zdG9yZXNbbmFtZV07XG5cbiAgICAgIGlmIChkZXN0cnVjdGl2ZSAmJiBzdG9yZS5yZWFkT25seSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlID0gc3RvcmVbYWN0aW9uXS5hcHBseShzdG9yZSwgYXJncyk7XG5cbiAgICAgIC8vIE1lcmdlIG9iamVjdHMgaWYgbmVjZXNzYXJ5XG4gICAgICBpZiAocmVzcG9uc2UgJiYgYWN0aW9uID09PSAnZ2V0JyAmJiB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc3BvbnNlKSkge1xuICAgICAgICBtZXJnZU9ianMucHVzaChyZXNwb25zZSk7XG4gICAgICAgIHJlc3BvbnNlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgaWYgKG1lcmdlT2Jqcy5sZW5ndGgpIHtcbiAgICByZXNwb25zZSA9IGNvbW1vbi5tZXJnZShtZXJnZU9ianMucmV2ZXJzZSgpKTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZTtcbn1cblxuLy9cbi8vIFRocm93IHRoZSBgZXJyYCBpZiBhIGNhbGxiYWNrIGlzIG5vdCBzdXBwbGllZFxuLy9cbmZ1bmN0aW9uIG9uRXJyb3IoZXJyLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gY2FsbGJhY2soZXJyKTtcbiAgfVxuXG4gIHRocm93IGVycjtcbn1cbiIsICJ7XG4gIFwibmFtZVwiOiBcIm5jb25mXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJIaWVyYXJjaGljYWwgbm9kZS5qcyBjb25maWd1cmF0aW9uIHdpdGggZmlsZXMsIGVudmlyb25tZW50IHZhcmlhYmxlcywgY29tbWFuZC1saW5lIGFyZ3VtZW50cywgYW5kIGF0b21pYyBvYmplY3QgbWVyZ2luZy5cIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMS4wLjAtYmV0YS4wXCIsXG4gIFwiYXV0aG9yXCI6IFwiQ2hhcmxpZSBSb2JiaW5zIDxjaGFybGllLnJvYmJpbnNAZ21haWwuY29tPlwiLFxuICBcImNvbnRyaWJ1dG9yc1wiOiBbXG4gICAgXCJNYXR0IEhhbWFubiA8bWF0dGhldy5oYW1hbm5AZ21haWwuY29tPlwiLFxuICAgIFwiTWFjaWVqIE1hXHUwMTQyZWNraSA8bWVAbW1hbGVja2kuY29tPlwiLFxuICAgIFwiSmFycmV0dCBDcnVnZXIgPGpjcnVnenpAZ21haWwuY29tPlwiLFxuICAgIFwiQWRyaWVuIEJlY2NoaXNcIlxuICBdLFxuICBcInJlcG9zaXRvcnlcIjoge1xuICAgIFwidHlwZVwiOiBcImdpdFwiLFxuICAgIFwidXJsXCI6IFwiaHR0cDovL2dpdGh1Yi5jb20vZmxhdGlyb24vbmNvbmYuZ2l0XCJcbiAgfSxcbiAgXCJrZXl3b3Jkc1wiOiBbXG4gICAgXCJjb25maWd1cmF0aW9uXCIsXG4gICAgXCJrZXkgdmFsdWUgc3RvcmVcIixcbiAgICBcInBsdWdhYmJsZVwiXG4gIF0sXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImluaVwiOiBcIl4yLjAuMFwiLFxuICAgIFwieWFyZ3NcIjogXCJeMTcuMC4wXCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiYXN5bmNcIjogXCJeMy4wLjBcIixcbiAgICBcImNvdmVyYWxsc1wiOiBcIl4zLjAuMlwiLFxuICAgIFwiZXNsaW50XCI6IFwiXjguMC4wXCIsXG4gICAgXCJpc3RhbmJ1bFwiOiBcIl4wLjQuMVwiLFxuICAgIFwiamVzdFwiOiBcIl4yNy4wLjBcIixcbiAgICBcIm5jb25mLXlhbWxcIjogXCJeMS4wLjJcIlxuICB9LFxuICBcIm1haW5cIjogXCIuL2xpYi9uY29uZlwiLFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwidGVzdFwiOiBcImplc3QgLS12ZXJib3NlXCIsXG4gICAgXCJjb3ZlclwiOiBcImplc3QgLS1jb3ZlcmFnZVwiLFxuICAgIFwiY292ZXJhbGxzXCI6IFwiY2F0IGNvdmVyYWdlL2xjb3YuaW5mbyB8IGNvdmVyYWxsc1wiLFxuICAgIFwibGludFwiOiBcImVzbGludCAuXCJcbiAgfSxcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJsaWJcIlxuICBdLFxuICBcImVuZ2luZXNcIjoge1xuICAgIFwibm9kZVwiOiBcIj49IDAuNC4wXCJcbiAgfSxcbiAgXCJsaWNlbnNlXCI6IFwiTUlUXCJcbn1cbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5sZXQgc2hpbTtcbmNsYXNzIFkxOE4ge1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgLy8gY29uZmlndXJhYmxlIG9wdGlvbnMuXG4gICAgICAgIG9wdHMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB0aGlzLmRpcmVjdG9yeSA9IG9wdHMuZGlyZWN0b3J5IHx8ICcuL2xvY2FsZXMnO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGVzID0gdHlwZW9mIG9wdHMudXBkYXRlRmlsZXMgPT09ICdib29sZWFuJyA/IG9wdHMudXBkYXRlRmlsZXMgOiB0cnVlO1xuICAgICAgICB0aGlzLmxvY2FsZSA9IG9wdHMubG9jYWxlIHx8ICdlbic7XG4gICAgICAgIHRoaXMuZmFsbGJhY2tUb0xhbmd1YWdlID0gdHlwZW9mIG9wdHMuZmFsbGJhY2tUb0xhbmd1YWdlID09PSAnYm9vbGVhbicgPyBvcHRzLmZhbGxiYWNrVG9MYW5ndWFnZSA6IHRydWU7XG4gICAgICAgIC8vIGludGVybmFsIHN0dWZmLlxuICAgICAgICB0aGlzLmNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy53cml0ZVF1ZXVlID0gW107XG4gICAgfVxuICAgIF9fKC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbMF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGFnZ2VkTGl0ZXJhbChhcmd1bWVudHNbMF0sIC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyID0gYXJncy5zaGlmdCgpO1xuICAgICAgICBsZXQgY2IgPSBmdW5jdGlvbiAoKSB7IH07IC8vIHN0YXJ0IHdpdGggbm9vcC5cbiAgICAgICAgaWYgKHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gPT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICBjYiA9IGFyZ3MucG9wKCk7XG4gICAgICAgIGNiID0gY2IgfHwgZnVuY3Rpb24gKCkgeyB9OyAvLyBub29wLlxuICAgICAgICBpZiAoIXRoaXMuY2FjaGVbdGhpcy5sb2NhbGVdKVxuICAgICAgICAgICAgdGhpcy5fcmVhZExvY2FsZUZpbGUoKTtcbiAgICAgICAgLy8gd2UndmUgb2JzZXJ2ZWQgYSBuZXcgc3RyaW5nLCB1cGRhdGUgdGhlIGxhbmd1YWdlIGZpbGUuXG4gICAgICAgIGlmICghdGhpcy5jYWNoZVt0aGlzLmxvY2FsZV1bc3RyXSAmJiB0aGlzLnVwZGF0ZUZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlW3RoaXMubG9jYWxlXVtzdHJdID0gc3RyO1xuICAgICAgICAgICAgLy8gaW5jbHVkZSB0aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIGxvY2FsZSxcbiAgICAgICAgICAgIC8vIHNpbmNlIHRoZXNlIHZhbHVlcyBjb3VsZCBjaGFuZ2UgYmVmb3JlIHRoZVxuICAgICAgICAgICAgLy8gd3JpdGUgaXMgcGVyZm9ybWVkLlxuICAgICAgICAgICAgdGhpcy5fZW5xdWV1ZVdyaXRlKHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rvcnk6IHRoaXMuZGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2IoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2hpbS5mb3JtYXQuYXBwbHkoc2hpbS5mb3JtYXQsIFt0aGlzLmNhY2hlW3RoaXMubG9jYWxlXVtzdHJdIHx8IHN0cl0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gICAgX19uKCkge1xuICAgICAgICBjb25zdCBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgY29uc3Qgc2luZ3VsYXIgPSBhcmdzLnNoaWZ0KCk7XG4gICAgICAgIGNvbnN0IHBsdXJhbCA9IGFyZ3Muc2hpZnQoKTtcbiAgICAgICAgY29uc3QgcXVhbnRpdHkgPSBhcmdzLnNoaWZ0KCk7XG4gICAgICAgIGxldCBjYiA9IGZ1bmN0aW9uICgpIHsgfTsgLy8gc3RhcnQgd2l0aCBub29wLlxuICAgICAgICBpZiAodHlwZW9mIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIGNiID0gYXJncy5wb3AoKTtcbiAgICAgICAgaWYgKCF0aGlzLmNhY2hlW3RoaXMubG9jYWxlXSlcbiAgICAgICAgICAgIHRoaXMuX3JlYWRMb2NhbGVGaWxlKCk7XG4gICAgICAgIGxldCBzdHIgPSBxdWFudGl0eSA9PT0gMSA/IHNpbmd1bGFyIDogcGx1cmFsO1xuICAgICAgICBpZiAodGhpcy5jYWNoZVt0aGlzLmxvY2FsZV1bc2luZ3VsYXJdKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuY2FjaGVbdGhpcy5sb2NhbGVdW3Npbmd1bGFyXTtcbiAgICAgICAgICAgIHN0ciA9IGVudHJ5W3F1YW50aXR5ID09PSAxID8gJ29uZScgOiAnb3RoZXInXTtcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSd2ZSBvYnNlcnZlZCBhIG5ldyBzdHJpbmcsIHVwZGF0ZSB0aGUgbGFuZ3VhZ2UgZmlsZS5cbiAgICAgICAgaWYgKCF0aGlzLmNhY2hlW3RoaXMubG9jYWxlXVtzaW5ndWxhcl0gJiYgdGhpcy51cGRhdGVGaWxlcykge1xuICAgICAgICAgICAgdGhpcy5jYWNoZVt0aGlzLmxvY2FsZV1bc2luZ3VsYXJdID0ge1xuICAgICAgICAgICAgICAgIG9uZTogc2luZ3VsYXIsXG4gICAgICAgICAgICAgICAgb3RoZXI6IHBsdXJhbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIGluY2x1ZGUgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBsb2NhbGUsXG4gICAgICAgICAgICAvLyBzaW5jZSB0aGVzZSB2YWx1ZXMgY291bGQgY2hhbmdlIGJlZm9yZSB0aGVcbiAgICAgICAgICAgIC8vIHdyaXRlIGlzIHBlcmZvcm1lZC5cbiAgICAgICAgICAgIHRoaXMuX2VucXVldWVXcml0ZSh7XG4gICAgICAgICAgICAgICAgZGlyZWN0b3J5OiB0aGlzLmRpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMubG9jYWxlLFxuICAgICAgICAgICAgICAgIGNiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgYSAlZCBwbGFjZWhvbGRlciBpcyBwcm92aWRlZCwgYWRkIHF1YW50aXR5XG4gICAgICAgIC8vIHRvIHRoZSBhcmd1bWVudHMgZXhwYW5kZWQgYnkgdXRpbC5mb3JtYXQuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IFtzdHJdO1xuICAgICAgICBpZiAofnN0ci5pbmRleE9mKCclZCcpKVxuICAgICAgICAgICAgdmFsdWVzLnB1c2gocXVhbnRpdHkpO1xuICAgICAgICByZXR1cm4gc2hpbS5mb3JtYXQuYXBwbHkoc2hpbS5mb3JtYXQsIHZhbHVlcy5jb25jYXQoYXJncykpO1xuICAgIH1cbiAgICBzZXRMb2NhbGUobG9jYWxlKSB7XG4gICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgIH1cbiAgICBnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZTtcbiAgICB9XG4gICAgdXBkYXRlTG9jYWxlKG9iaikge1xuICAgICAgICBpZiAoIXRoaXMuY2FjaGVbdGhpcy5sb2NhbGVdKVxuICAgICAgICAgICAgdGhpcy5fcmVhZExvY2FsZUZpbGUoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVbdGhpcy5sb2NhbGVdW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfdGFnZ2VkTGl0ZXJhbChwYXJ0cywgLi4uYXJncykge1xuICAgICAgICBsZXQgc3RyID0gJyc7XG4gICAgICAgIHBhcnRzLmZvckVhY2goZnVuY3Rpb24gKHBhcnQsIGkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZyA9IGFyZ3NbaSArIDFdO1xuICAgICAgICAgICAgc3RyICs9IHBhcnQ7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGFyZyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gJyVzJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9fLmFwcGx5KHRoaXMsIFtzdHJdLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3MsIDEpKSk7XG4gICAgfVxuICAgIF9lbnF1ZXVlV3JpdGUod29yaykge1xuICAgICAgICB0aGlzLndyaXRlUXVldWUucHVzaCh3b3JrKTtcbiAgICAgICAgaWYgKHRoaXMud3JpdGVRdWV1ZS5sZW5ndGggPT09IDEpXG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzV3JpdGVRdWV1ZSgpO1xuICAgIH1cbiAgICBfcHJvY2Vzc1dyaXRlUXVldWUoKSB7XG4gICAgICAgIGNvbnN0IF90aGlzID0gdGhpcztcbiAgICAgICAgY29uc3Qgd29yayA9IHRoaXMud3JpdGVRdWV1ZVswXTtcbiAgICAgICAgLy8gZGVzdHJ1Y3R1cmUgdGhlIGVucXVldWVkIHdvcmsuXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeSA9IHdvcmsuZGlyZWN0b3J5O1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB3b3JrLmxvY2FsZTtcbiAgICAgICAgY29uc3QgY2IgPSB3b3JrLmNiO1xuICAgICAgICBjb25zdCBsYW5ndWFnZUZpbGUgPSB0aGlzLl9yZXNvbHZlTG9jYWxlRmlsZShkaXJlY3RvcnksIGxvY2FsZSk7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2NhbGUgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmNhY2hlW2xvY2FsZV0sIG51bGwsIDIpO1xuICAgICAgICBzaGltLmZzLndyaXRlRmlsZShsYW5ndWFnZUZpbGUsIHNlcmlhbGl6ZWRMb2NhbGUsICd1dGYtOCcsIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgICAgIF90aGlzLndyaXRlUXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChfdGhpcy53cml0ZVF1ZXVlLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgX3RoaXMuX3Byb2Nlc3NXcml0ZVF1ZXVlKCk7XG4gICAgICAgICAgICBjYihlcnIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgX3JlYWRMb2NhbGVGaWxlKCkge1xuICAgICAgICBsZXQgbG9jYWxlTG9va3VwID0ge307XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlRmlsZSA9IHRoaXMuX3Jlc29sdmVMb2NhbGVGaWxlKHRoaXMuZGlyZWN0b3J5LCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHVzaW5nIGEgYnVuZGxlciBzdWNoIGFzIHdlYnBhY2ssIHJlYWRGaWxlU3luYyBtYXkgbm90IGJlIGRlZmluZWQ6XG4gICAgICAgICAgICBpZiAoc2hpbS5mcy5yZWFkRmlsZVN5bmMpIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVMb29rdXAgPSBKU09OLnBhcnNlKHNoaW0uZnMucmVhZEZpbGVTeW5jKGxhbmd1YWdlRmlsZSwgJ3V0Zi04JykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgICAgICAgICAgIGVyci5tZXNzYWdlID0gJ3N5bnRheCBlcnJvciBpbiAnICsgbGFuZ3VhZ2VGaWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVyci5jb2RlID09PSAnRU5PRU5UJylcbiAgICAgICAgICAgICAgICBsb2NhbGVMb29rdXAgPSB7fTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYWNoZVt0aGlzLmxvY2FsZV0gPSBsb2NhbGVMb29rdXA7XG4gICAgfVxuICAgIF9yZXNvbHZlTG9jYWxlRmlsZShkaXJlY3RvcnksIGxvY2FsZSkge1xuICAgICAgICBsZXQgZmlsZSA9IHNoaW0ucmVzb2x2ZShkaXJlY3RvcnksICcuLycsIGxvY2FsZSArICcuanNvbicpO1xuICAgICAgICBpZiAodGhpcy5mYWxsYmFja1RvTGFuZ3VhZ2UgJiYgIXRoaXMuX2ZpbGVFeGlzdHNTeW5jKGZpbGUpICYmIH5sb2NhbGUubGFzdEluZGV4T2YoJ18nKSkge1xuICAgICAgICAgICAgLy8gYXR0ZW1wdCBmYWxsYmFjayB0byBsYW5ndWFnZSBvbmx5XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUZpbGUgPSBzaGltLnJlc29sdmUoZGlyZWN0b3J5LCAnLi8nLCBsb2NhbGUuc3BsaXQoJ18nKVswXSArICcuanNvbicpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2ZpbGVFeGlzdHNTeW5jKGxhbmd1YWdlRmlsZSkpXG4gICAgICAgICAgICAgICAgZmlsZSA9IGxhbmd1YWdlRmlsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG4gICAgX2ZpbGVFeGlzdHNTeW5jKGZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHNoaW0uZXhpc3RzKGZpbGUpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHkxOG4kMShvcHRzLCBfc2hpbSkge1xuICAgIHNoaW0gPSBfc2hpbTtcbiAgICBjb25zdCB5MThuID0gbmV3IFkxOE4ob3B0cyk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgX186IHkxOG4uX18uYmluZCh5MThuKSxcbiAgICAgICAgX19uOiB5MThuLl9fbi5iaW5kKHkxOG4pLFxuICAgICAgICBzZXRMb2NhbGU6IHkxOG4uc2V0TG9jYWxlLmJpbmQoeTE4biksXG4gICAgICAgIGdldExvY2FsZTogeTE4bi5nZXRMb2NhbGUuYmluZCh5MThuKSxcbiAgICAgICAgdXBkYXRlTG9jYWxlOiB5MThuLnVwZGF0ZUxvY2FsZS5iaW5kKHkxOG4pLFxuICAgICAgICBsb2NhbGU6IHkxOG4ubG9jYWxlXG4gICAgfTtcbn1cblxudmFyIG5vZGVQbGF0Zm9ybVNoaW0gPSB7XG4gICAgZnM6IHtcbiAgICAgICAgcmVhZEZpbGVTeW5jOiBmcy5yZWFkRmlsZVN5bmMsXG4gICAgICAgIHdyaXRlRmlsZTogZnMud3JpdGVGaWxlXG4gICAgfSxcbiAgICBmb3JtYXQ6IHV0aWwuZm9ybWF0LFxuICAgIHJlc29sdmU6IHBhdGgucmVzb2x2ZSxcbiAgICBleGlzdHM6IChmaWxlKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZnMuc3RhdFN5bmMoZmlsZSkuaXNGaWxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuY29uc3QgeTE4biA9IChvcHRzKSA9PiB7XG4gICAgcmV0dXJuIHkxOG4kMShvcHRzLCBub2RlUGxhdGZvcm1TaGltKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0geTE4bjtcbiIsICIndXNlIHN0cmljdCc7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xudmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG52YXIgZnMgPSByZXF1aXJlKCdmcycpO1xuXG5mdW5jdGlvbiBjYW1lbENhc2Uoc3RyKSB7XG4gICAgY29uc3QgaXNDYW1lbENhc2UgPSBzdHIgIT09IHN0ci50b0xvd2VyQ2FzZSgpICYmIHN0ciAhPT0gc3RyLnRvVXBwZXJDYXNlKCk7XG4gICAgaWYgKCFpc0NhbWVsQ2FzZSkge1xuICAgICAgICBzdHIgPSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICB9XG4gICAgaWYgKHN0ci5pbmRleE9mKCctJykgPT09IC0xICYmIHN0ci5pbmRleE9mKCdfJykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBsZXQgY2FtZWxjYXNlID0gJyc7XG4gICAgICAgIGxldCBuZXh0Q2hyVXBwZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbGVhZGluZ0h5cGhlbnMgPSBzdHIubWF0Y2goL14tKy8pO1xuICAgICAgICBmb3IgKGxldCBpID0gbGVhZGluZ0h5cGhlbnMgPyBsZWFkaW5nSHlwaGVuc1swXS5sZW5ndGggOiAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgY2hyID0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgICAgIGlmIChuZXh0Q2hyVXBwZXIpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2hyVXBwZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjaHIgPSBjaHIudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpICE9PSAwICYmIChjaHIgPT09ICctJyB8fCBjaHIgPT09ICdfJykpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2hyVXBwZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2hyICE9PSAnLScgJiYgY2hyICE9PSAnXycpIHtcbiAgICAgICAgICAgICAgICBjYW1lbGNhc2UgKz0gY2hyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYW1lbGNhc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gZGVjYW1lbGl6ZShzdHIsIGpvaW5TdHJpbmcpIHtcbiAgICBjb25zdCBsb3dlcmNhc2UgPSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICBqb2luU3RyaW5nID0gam9pblN0cmluZyB8fCAnLSc7XG4gICAgbGV0IG5vdENhbWVsY2FzZSA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNockxvd2VyID0gbG93ZXJjYXNlLmNoYXJBdChpKTtcbiAgICAgICAgY29uc3QgY2hyU3RyaW5nID0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgaWYgKGNockxvd2VyICE9PSBjaHJTdHJpbmcgJiYgaSA+IDApIHtcbiAgICAgICAgICAgIG5vdENhbWVsY2FzZSArPSBgJHtqb2luU3RyaW5nfSR7bG93ZXJjYXNlLmNoYXJBdChpKX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbm90Q2FtZWxjYXNlICs9IGNoclN0cmluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm90Q2FtZWxjYXNlO1xufVxuZnVuY3Rpb24gbG9va3NMaWtlTnVtYmVyKHgpIHtcbiAgICBpZiAoeCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAodHlwZW9mIHggPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoL14weFswLTlhLWZdKyQvaS50ZXN0KHgpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoL14wW14uXS8udGVzdCh4KSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAvXlstXT8oPzpcXGQrKD86XFwuXFxkKik/fFxcLlxcZCspKGVbLStdP1xcZCspPyQvLnRlc3QoeCk7XG59XG5cbmZ1bmN0aW9uIHRva2VuaXplQXJnU3RyaW5nKGFyZ1N0cmluZykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ1N0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIGFyZ1N0cmluZy5tYXAoZSA9PiB0eXBlb2YgZSAhPT0gJ3N0cmluZycgPyBlICsgJycgOiBlKTtcbiAgICB9XG4gICAgYXJnU3RyaW5nID0gYXJnU3RyaW5nLnRyaW0oKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IHByZXZDID0gbnVsbDtcbiAgICBsZXQgYyA9IG51bGw7XG4gICAgbGV0IG9wZW5pbmcgPSBudWxsO1xuICAgIGNvbnN0IGFyZ3MgPSBbXTtcbiAgICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgYXJnU3RyaW5nLmxlbmd0aDsgaWkrKykge1xuICAgICAgICBwcmV2QyA9IGM7XG4gICAgICAgIGMgPSBhcmdTdHJpbmcuY2hhckF0KGlpKTtcbiAgICAgICAgaWYgKGMgPT09ICcgJyAmJiAhb3BlbmluZykge1xuICAgICAgICAgICAgaWYgKCEocHJldkMgPT09ICcgJykpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyA9PT0gb3BlbmluZykge1xuICAgICAgICAgICAgb3BlbmluZyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKGMgPT09IFwiJ1wiIHx8IGMgPT09ICdcIicpICYmICFvcGVuaW5nKSB7XG4gICAgICAgICAgICBvcGVuaW5nID0gYztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFyZ3NbaV0pXG4gICAgICAgICAgICBhcmdzW2ldID0gJyc7XG4gICAgICAgIGFyZ3NbaV0gKz0gYztcbiAgICB9XG4gICAgcmV0dXJuIGFyZ3M7XG59XG5cbnZhciBEZWZhdWx0VmFsdWVzRm9yVHlwZUtleTtcbihmdW5jdGlvbiAoRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkpIHtcbiAgICBEZWZhdWx0VmFsdWVzRm9yVHlwZUtleVtcIkJPT0xFQU5cIl0gPSBcImJvb2xlYW5cIjtcbiAgICBEZWZhdWx0VmFsdWVzRm9yVHlwZUtleVtcIlNUUklOR1wiXSA9IFwic3RyaW5nXCI7XG4gICAgRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXlbXCJOVU1CRVJcIl0gPSBcIm51bWJlclwiO1xuICAgIERlZmF1bHRWYWx1ZXNGb3JUeXBlS2V5W1wiQVJSQVlcIl0gPSBcImFycmF5XCI7XG59KShEZWZhdWx0VmFsdWVzRm9yVHlwZUtleSB8fCAoRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkgPSB7fSkpO1xuXG5sZXQgbWl4aW47XG5jbGFzcyBZYXJnc1BhcnNlciB7XG4gICAgY29uc3RydWN0b3IoX21peGluKSB7XG4gICAgICAgIG1peGluID0gX21peGluO1xuICAgIH1cbiAgICBwYXJzZShhcmdzSW5wdXQsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgICAgYWxpYXM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFycmF5OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBib29sZWFuOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBjb25maWc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvbmZpZ09iamVjdHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvZXJjZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY291bnQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGVudlByZWZpeDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbmFyZzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbm9ybWFsaXplOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzdHJpbmc6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG51bWJlcjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgX186IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGtleTogdW5kZWZpbmVkXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBhcmdzID0gdG9rZW5pemVBcmdTdHJpbmcoYXJnc0lucHV0KTtcbiAgICAgICAgY29uc3QgaW5wdXRJc1N0cmluZyA9IHR5cGVvZiBhcmdzSW5wdXQgPT09ICdzdHJpbmcnO1xuICAgICAgICBjb25zdCBhbGlhc2VzID0gY29tYmluZUFsaWFzZXMoT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLCBvcHRzLmFsaWFzKSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgICdib29sZWFuLW5lZ2F0aW9uJzogdHJ1ZSxcbiAgICAgICAgICAgICdjYW1lbC1jYXNlLWV4cGFuc2lvbic6IHRydWUsXG4gICAgICAgICAgICAnY29tYmluZS1hcnJheXMnOiBmYWxzZSxcbiAgICAgICAgICAgICdkb3Qtbm90YXRpb24nOiB0cnVlLFxuICAgICAgICAgICAgJ2R1cGxpY2F0ZS1hcmd1bWVudHMtYXJyYXknOiB0cnVlLFxuICAgICAgICAgICAgJ2ZsYXR0ZW4tZHVwbGljYXRlLWFycmF5cyc6IHRydWUsXG4gICAgICAgICAgICAnZ3JlZWR5LWFycmF5cyc6IHRydWUsXG4gICAgICAgICAgICAnaGFsdC1hdC1ub24tb3B0aW9uJzogZmFsc2UsXG4gICAgICAgICAgICAnbmFyZ3MtZWF0cy1vcHRpb25zJzogZmFsc2UsXG4gICAgICAgICAgICAnbmVnYXRpb24tcHJlZml4JzogJ25vLScsXG4gICAgICAgICAgICAncGFyc2UtbnVtYmVycyc6IHRydWUsXG4gICAgICAgICAgICAncGFyc2UtcG9zaXRpb25hbC1udW1iZXJzJzogdHJ1ZSxcbiAgICAgICAgICAgICdwb3B1bGF0ZS0tJzogZmFsc2UsXG4gICAgICAgICAgICAnc2V0LXBsYWNlaG9sZGVyLWtleSc6IGZhbHNlLFxuICAgICAgICAgICAgJ3Nob3J0LW9wdGlvbi1ncm91cHMnOiB0cnVlLFxuICAgICAgICAgICAgJ3N0cmlwLWFsaWFzZWQnOiBmYWxzZSxcbiAgICAgICAgICAgICdzdHJpcC1kYXNoZWQnOiBmYWxzZSxcbiAgICAgICAgICAgICd1bmtub3duLW9wdGlvbnMtYXMtYXJncyc6IGZhbHNlXG4gICAgICAgIH0sIG9wdHMuY29uZmlndXJhdGlvbik7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLCBvcHRzLmRlZmF1bHQpO1xuICAgICAgICBjb25zdCBjb25maWdPYmplY3RzID0gb3B0cy5jb25maWdPYmplY3RzIHx8IFtdO1xuICAgICAgICBjb25zdCBlbnZQcmVmaXggPSBvcHRzLmVudlByZWZpeDtcbiAgICAgICAgY29uc3Qgbm90RmxhZ3NPcHRpb24gPSBjb25maWd1cmF0aW9uWydwb3B1bGF0ZS0tJ107XG4gICAgICAgIGNvbnN0IG5vdEZsYWdzQXJndiA9IG5vdEZsYWdzT3B0aW9uID8gJy0tJyA6ICdfJztcbiAgICAgICAgY29uc3QgbmV3QWxpYXNlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRlZCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGNvbnN0IF9fID0gb3B0cy5fXyB8fCBtaXhpbi5mb3JtYXQ7XG4gICAgICAgIGNvbnN0IGZsYWdzID0ge1xuICAgICAgICAgICAgYWxpYXNlczogT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgICAgICAgIGFycmF5czogT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgICAgICAgIGJvb2xzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuICAgICAgICAgICAgc3RyaW5nczogT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgICAgICAgIG51bWJlcnM6IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICAgICAgICBjb3VudHM6IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICAgICAgICBub3JtYWxpemU6IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICAgICAgICBjb25maWdzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuICAgICAgICAgICAgbmFyZ3M6IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICAgICAgICBjb2VyY2lvbnM6IE9iamVjdC5jcmVhdGUobnVsbCksXG4gICAgICAgICAgICBrZXlzOiBbXVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBuZWdhdGl2ZSA9IC9eLShbMC05XSsoXFwuWzAtOV0rKT98XFwuWzAtOV0rKSQvO1xuICAgICAgICBjb25zdCBuZWdhdGVkQm9vbGVhbiA9IG5ldyBSZWdFeHAoJ14tLScgKyBjb25maWd1cmF0aW9uWyduZWdhdGlvbi1wcmVmaXgnXSArICcoLispJyk7XG4gICAgICAgIFtdLmNvbmNhdChvcHRzLmFycmF5IHx8IFtdKS5maWx0ZXIoQm9vbGVhbikuZm9yRWFjaChmdW5jdGlvbiAob3B0KSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSB0eXBlb2Ygb3B0ID09PSAnb2JqZWN0JyA/IG9wdC5rZXkgOiBvcHQ7XG4gICAgICAgICAgICBjb25zdCBhc3NpZ25tZW50ID0gT2JqZWN0LmtleXMob3B0KS5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5RmxhZ0tleXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJvb2xlYW46ICdib29scycsXG4gICAgICAgICAgICAgICAgICAgIHN0cmluZzogJ3N0cmluZ3MnLFxuICAgICAgICAgICAgICAgICAgICBudW1iZXI6ICdudW1iZXJzJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5RmxhZ0tleXNba2V5XTtcbiAgICAgICAgICAgIH0pLmZpbHRlcihCb29sZWFuKS5wb3AoKTtcbiAgICAgICAgICAgIGlmIChhc3NpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgZmxhZ3NbYXNzaWdubWVudF1ba2V5XSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmbGFncy5hcnJheXNba2V5XSA9IHRydWU7XG4gICAgICAgICAgICBmbGFncy5rZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFtdLmNvbmNhdChvcHRzLmJvb2xlYW4gfHwgW10pLmZpbHRlcihCb29sZWFuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGZsYWdzLmJvb2xzW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgZmxhZ3Mua2V5cy5wdXNoKGtleSk7XG4gICAgICAgIH0pO1xuICAgICAgICBbXS5jb25jYXQob3B0cy5zdHJpbmcgfHwgW10pLmZpbHRlcihCb29sZWFuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGZsYWdzLnN0cmluZ3Nba2V5XSA9IHRydWU7XG4gICAgICAgICAgICBmbGFncy5rZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFtdLmNvbmNhdChvcHRzLm51bWJlciB8fCBbXSkuZmlsdGVyKEJvb2xlYW4pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgZmxhZ3MubnVtYmVyc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsYWdzLmtleXMucHVzaChrZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgW10uY29uY2F0KG9wdHMuY291bnQgfHwgW10pLmZpbHRlcihCb29sZWFuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGZsYWdzLmNvdW50c1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsYWdzLmtleXMucHVzaChrZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgW10uY29uY2F0KG9wdHMubm9ybWFsaXplIHx8IFtdKS5maWx0ZXIoQm9vbGVhbikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBmbGFncy5ub3JtYWxpemVba2V5XSA9IHRydWU7XG4gICAgICAgICAgICBmbGFncy5rZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0cy5uYXJnID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0cy5uYXJnKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICBmbGFncy5uYXJnc1trZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmtleXMucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0cy5jb2VyY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRzLmNvZXJjZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBmbGFncy5jb2VyY2lvbnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBmbGFncy5rZXlzLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdHMuY29uZmlnICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0cy5jb25maWcpIHx8IHR5cGVvZiBvcHRzLmNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBbXS5jb25jYXQob3B0cy5jb25maWcpLmZpbHRlcihCb29sZWFuKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MuY29uZmlnc1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRzLmNvbmZpZyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRzLmNvbmZpZykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLmNvbmZpZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXh0ZW5kQWxpYXNlcyhvcHRzLmtleSwgYWxpYXNlcywgb3B0cy5kZWZhdWx0LCBmbGFncy5hcnJheXMpO1xuICAgICAgICBPYmplY3Qua2V5cyhkZWZhdWx0cykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAoZmxhZ3MuYWxpYXNlc1trZXldIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChhbGlhcykge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW2FsaWFzXSA9IGRlZmF1bHRzW2tleV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBlcnJvciA9IG51bGw7XG4gICAgICAgIGNoZWNrQ29uZmlndXJhdGlvbigpO1xuICAgICAgICBsZXQgbm90RmxhZ3MgPSBbXTtcbiAgICAgICAgY29uc3QgYXJndiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSwgeyBfOiBbXSB9KTtcbiAgICAgICAgY29uc3QgYXJndlJldHVybiA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZyA9IGFyZ3NbaV07XG4gICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWRBcmcgPSBhcmcucmVwbGFjZSgvXi17Myx9LywgJy0tLScpO1xuICAgICAgICAgICAgbGV0IGJyb2tlbjtcbiAgICAgICAgICAgIGxldCBrZXk7XG4gICAgICAgICAgICBsZXQgbGV0dGVycztcbiAgICAgICAgICAgIGxldCBtO1xuICAgICAgICAgICAgbGV0IG5leHQ7XG4gICAgICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgICAgICBpZiAoYXJnICE9PSAnLS0nICYmIC9eLS8udGVzdChhcmcpICYmIGlzVW5rbm93bk9wdGlvbkFzQXJnKGFyZykpIHtcbiAgICAgICAgICAgICAgICBwdXNoUG9zaXRpb25hbChhcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHJ1bmNhdGVkQXJnLm1hdGNoKC9eLS0tKyg9fCQpLykpIHtcbiAgICAgICAgICAgICAgICBwdXNoUG9zaXRpb25hbChhcmcpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYXJnLm1hdGNoKC9eLS0uKz0vKSB8fCAoIWNvbmZpZ3VyYXRpb25bJ3Nob3J0LW9wdGlvbi1ncm91cHMnXSAmJiBhcmcubWF0Y2goL14tLis9LykpKSB7XG4gICAgICAgICAgICAgICAgbSA9IGFyZy5tYXRjaCgvXi0tPyhbXj1dKyk9KFtcXHNcXFNdKikkLyk7XG4gICAgICAgICAgICAgICAgaWYgKG0gIT09IG51bGwgJiYgQXJyYXkuaXNBcnJheShtKSAmJiBtLmxlbmd0aCA+PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja0FsbEFsaWFzZXMobVsxXSwgZmxhZ3MuYXJyYXlzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGVhdEFycmF5KGksIG1bMV0sIGFyZ3MsIG1bMl0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrQWxsQWxpYXNlcyhtWzFdLCBmbGFncy5uYXJncykgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gZWF0TmFyZ3MoaSwgbVsxXSwgYXJncywgbVsyXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcobVsxXSwgbVsyXSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhcmcubWF0Y2gobmVnYXRlZEJvb2xlYW4pICYmIGNvbmZpZ3VyYXRpb25bJ2Jvb2xlYW4tbmVnYXRpb24nXSkge1xuICAgICAgICAgICAgICAgIG0gPSBhcmcubWF0Y2gobmVnYXRlZEJvb2xlYW4pO1xuICAgICAgICAgICAgICAgIGlmIChtICE9PSBudWxsICYmIEFycmF5LmlzQXJyYXkobSkgJiYgbS5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBtWzFdO1xuICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5hcnJheXMpID8gW2ZhbHNlXSA6IGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhcmcubWF0Y2goL14tLS4rLykgfHwgKCFjb25maWd1cmF0aW9uWydzaG9ydC1vcHRpb24tZ3JvdXBzJ10gJiYgYXJnLm1hdGNoKC9eLVteLV0rLykpKSB7XG4gICAgICAgICAgICAgICAgbSA9IGFyZy5tYXRjaCgvXi0tPyguKykvKTtcbiAgICAgICAgICAgICAgICBpZiAobSAhPT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KG0pICYmIG0ubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5ID0gbVsxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmFycmF5cykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBlYXRBcnJheShpLCBrZXksIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLm5hcmdzKSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBlYXROYXJncyhpLCBrZXksIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGFyZ3NbaSArIDFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCAmJiAoIW5leHQubWF0Y2goL14tLykgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Lm1hdGNoKG5lZ2F0aXZlKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuYm9vbHMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmNvdW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgvXih0cnVlfGZhbHNlKSQvLnRlc3QobmV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBkZWZhdWx0VmFsdWUoa2V5KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhcmcubWF0Y2goL14tLlxcLi4rPS8pKSB7XG4gICAgICAgICAgICAgICAgbSA9IGFyZy5tYXRjaCgvXi0oW149XSspPShbXFxzXFxTXSopJC8pO1xuICAgICAgICAgICAgICAgIGlmIChtICE9PSBudWxsICYmIEFycmF5LmlzQXJyYXkobSkgJiYgbS5sZW5ndGggPj0gMykge1xuICAgICAgICAgICAgICAgICAgICBzZXRBcmcobVsxXSwgbVsyXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYXJnLm1hdGNoKC9eLS5cXC4uKy8pICYmICFhcmcubWF0Y2gobmVnYXRpdmUpKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IGFyZ3NbaSArIDFdO1xuICAgICAgICAgICAgICAgIG0gPSBhcmcubWF0Y2goL14tKC5cXC4uKykvKTtcbiAgICAgICAgICAgICAgICBpZiAobSAhPT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KG0pICYmIG0ubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgICAgICAgICAga2V5ID0gbVsxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCAmJiAhbmV4dC5tYXRjaCgvXi0vKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmJvb2xzKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmNvdW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEFyZyhrZXksIG5leHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0QXJnKGtleSwgZGVmYXVsdFZhbHVlKGtleSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYXJnLm1hdGNoKC9eLVteLV0rLykgJiYgIWFyZy5tYXRjaChuZWdhdGl2ZSkpIHtcbiAgICAgICAgICAgICAgICBsZXR0ZXJzID0gYXJnLnNsaWNlKDEsIC0xKS5zcGxpdCgnJyk7XG4gICAgICAgICAgICAgICAgYnJva2VuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsZXR0ZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBhcmcuc2xpY2UoaiArIDIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGV0dGVyc1tqICsgMV0gJiYgbGV0dGVyc1tqICsgMV0gPT09ICc9Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhcmcuc2xpY2UoaiArIDMpO1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gbGV0dGVyc1tqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5hcnJheXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGVhdEFycmF5KGksIGtleSwgYXJncywgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MubmFyZ3MpICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBlYXROYXJncyhpLCBrZXksIGFyZ3MsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEFyZyhrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyb2tlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcobGV0dGVyc1tqXSwgbmV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoL1tBLVphLXpdLy50ZXN0KGxldHRlcnNbal0pICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAvXi0/XFxkKyhcXC5cXGQqKT8oZS0/XFxkKyk/JC8udGVzdChuZXh0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tBbGxBbGlhc2VzKG5leHQsIGZsYWdzLmJvb2xzKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEFyZyhsZXR0ZXJzW2pdLCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyb2tlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAobGV0dGVyc1tqICsgMV0gJiYgbGV0dGVyc1tqICsgMV0ubWF0Y2goL1xcVy8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcobGV0dGVyc1tqXSwgbmV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicm9rZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcobGV0dGVyc1tqXSwgZGVmYXVsdFZhbHVlKGxldHRlcnNbal0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBrZXkgPSBhcmcuc2xpY2UoLTEpWzBdO1xuICAgICAgICAgICAgICAgIGlmICghYnJva2VuICYmIGtleSAhPT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5hcnJheXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gZWF0QXJyYXkoaSwga2V5LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5uYXJncykgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gZWF0TmFyZ3MoaSwga2V5LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBhcmdzW2kgKyAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgKCEvXigtfC0tKVteLV0vLnRlc3QobmV4dCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Lm1hdGNoKG5lZ2F0aXZlKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuYm9vbHMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmNvdW50cykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgvXih0cnVlfGZhbHNlKSQvLnRlc3QobmV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCBkZWZhdWx0VmFsdWUoa2V5KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChhcmcubWF0Y2goL14tWzAtOV0kLykgJiZcbiAgICAgICAgICAgICAgICBhcmcubWF0Y2gobmVnYXRpdmUpICYmXG4gICAgICAgICAgICAgICAgY2hlY2tBbGxBbGlhc2VzKGFyZy5zbGljZSgxKSwgZmxhZ3MuYm9vbHMpKSB7XG4gICAgICAgICAgICAgICAga2V5ID0gYXJnLnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgIHNldEFyZyhrZXksIGRlZmF1bHRWYWx1ZShrZXkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGFyZyA9PT0gJy0tJykge1xuICAgICAgICAgICAgICAgIG5vdEZsYWdzID0gYXJncy5zbGljZShpICsgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb25maWd1cmF0aW9uWydoYWx0LWF0LW5vbi1vcHRpb24nXSkge1xuICAgICAgICAgICAgICAgIG5vdEZsYWdzID0gYXJncy5zbGljZShpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHB1c2hQb3NpdGlvbmFsKGFyZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXBwbHlFbnZWYXJzKGFyZ3YsIHRydWUpO1xuICAgICAgICBhcHBseUVudlZhcnMoYXJndiwgZmFsc2UpO1xuICAgICAgICBzZXRDb25maWcoYXJndik7XG4gICAgICAgIHNldENvbmZpZ09iamVjdHMoKTtcbiAgICAgICAgYXBwbHlEZWZhdWx0c0FuZEFsaWFzZXMoYXJndiwgZmxhZ3MuYWxpYXNlcywgZGVmYXVsdHMsIHRydWUpO1xuICAgICAgICBhcHBseUNvZXJjaW9ucyhhcmd2KTtcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25bJ3NldC1wbGFjZWhvbGRlci1rZXknXSlcbiAgICAgICAgICAgIHNldFBsYWNlaG9sZGVyS2V5cyhhcmd2KTtcbiAgICAgICAgT2JqZWN0LmtleXMoZmxhZ3MuY291bnRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmICghaGFzS2V5KGFyZ3YsIGtleS5zcGxpdCgnLicpKSlcbiAgICAgICAgICAgICAgICBzZXRBcmcoa2V5LCAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChub3RGbGFnc09wdGlvbiAmJiBub3RGbGFncy5sZW5ndGgpXG4gICAgICAgICAgICBhcmd2W25vdEZsYWdzQXJndl0gPSBbXTtcbiAgICAgICAgbm90RmxhZ3MuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBhcmd2W25vdEZsYWdzQXJndl0ucHVzaChrZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25bJ2NhbWVsLWNhc2UtZXhwYW5zaW9uJ10gJiYgY29uZmlndXJhdGlvblsnc3RyaXAtZGFzaGVkJ10pIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGFyZ3YpLmZpbHRlcihrZXkgPT4ga2V5ICE9PSAnLS0nICYmIGtleS5pbmNsdWRlcygnLScpKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGFyZ3Zba2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uWydzdHJpcC1hbGlhc2VkJ10pIHtcbiAgICAgICAgICAgIFtdLmNvbmNhdCguLi5PYmplY3Qua2V5cyhhbGlhc2VzKS5tYXAoayA9PiBhbGlhc2VzW2tdKSkuZm9yRWFjaChhbGlhcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25bJ2NhbWVsLWNhc2UtZXhwYW5zaW9uJ10gJiYgYWxpYXMuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgYXJndlthbGlhcy5zcGxpdCgnLicpLm1hcChwcm9wID0+IGNhbWVsQ2FzZShwcm9wKSkuam9pbignLicpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVsZXRlIGFyZ3ZbYWxpYXNdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHVzaFBvc2l0aW9uYWwoYXJnKSB7XG4gICAgICAgICAgICBjb25zdCBtYXliZUNvZXJjZWROdW1iZXIgPSBtYXliZUNvZXJjZU51bWJlcignXycsIGFyZyk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1heWJlQ29lcmNlZE51bWJlciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG1heWJlQ29lcmNlZE51bWJlciA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBhcmd2Ll8ucHVzaChtYXliZUNvZXJjZWROdW1iZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVhdE5hcmdzKGksIGtleSwgYXJncywgYXJnQWZ0ZXJFcXVhbFNpZ24pIHtcbiAgICAgICAgICAgIGxldCBpaTtcbiAgICAgICAgICAgIGxldCB0b0VhdCA9IGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLm5hcmdzKTtcbiAgICAgICAgICAgIHRvRWF0ID0gdHlwZW9mIHRvRWF0ICE9PSAnbnVtYmVyJyB8fCBpc05hTih0b0VhdCkgPyAxIDogdG9FYXQ7XG4gICAgICAgICAgICBpZiAodG9FYXQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGFyZ0FmdGVyRXF1YWxTaWduKSkge1xuICAgICAgICAgICAgICAgICAgICBlcnJvciA9IEVycm9yKF9fKCdBcmd1bWVudCB1bmV4cGVjdGVkIGZvcjogJXMnLCBrZXkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0QXJnKGtleSwgZGVmYXVsdFZhbHVlKGtleSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGF2YWlsYWJsZSA9IGlzVW5kZWZpbmVkKGFyZ0FmdGVyRXF1YWxTaWduKSA/IDAgOiAxO1xuICAgICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25bJ25hcmdzLWVhdHMtb3B0aW9ucyddKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoIC0gKGkgKyAxKSArIGF2YWlsYWJsZSA8IHRvRWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gRXJyb3IoX18oJ05vdCBlbm91Z2ggYXJndW1lbnRzIGZvbGxvd2luZzogJXMnLCBrZXkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlID0gdG9FYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3IgKGlpID0gaSArIDE7IGlpIDwgYXJncy5sZW5ndGg7IGlpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdzW2lpXS5tYXRjaCgvXi1bXjAtOV0vKSB8fCBhcmdzW2lpXS5tYXRjaChuZWdhdGl2ZSkgfHwgaXNVbmtub3duT3B0aW9uQXNBcmcoYXJnc1tpaV0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlKys7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxlIDwgdG9FYXQpXG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gRXJyb3IoX18oJ05vdCBlbm91Z2ggYXJndW1lbnRzIGZvbGxvd2luZzogJXMnLCBrZXkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjb25zdW1lZCA9IE1hdGgubWluKGF2YWlsYWJsZSwgdG9FYXQpO1xuICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChhcmdBZnRlckVxdWFsU2lnbikgJiYgY29uc3VtZWQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2V0QXJnKGtleSwgYXJnQWZ0ZXJFcXVhbFNpZ24pO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVkLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGlpID0gaSArIDE7IGlpIDwgKGNvbnN1bWVkICsgaSArIDEpOyBpaSsrKSB7XG4gICAgICAgICAgICAgICAgc2V0QXJnKGtleSwgYXJnc1tpaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChpICsgY29uc3VtZWQpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGVhdEFycmF5KGksIGtleSwgYXJncywgYXJnQWZ0ZXJFcXVhbFNpZ24pIHtcbiAgICAgICAgICAgIGxldCBhcmdzVG9TZXQgPSBbXTtcbiAgICAgICAgICAgIGxldCBuZXh0ID0gYXJnQWZ0ZXJFcXVhbFNpZ24gfHwgYXJnc1tpICsgMV07XG4gICAgICAgICAgICBjb25zdCBuYXJnc0NvdW50ID0gY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MubmFyZ3MpO1xuICAgICAgICAgICAgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmJvb2xzKSAmJiAhKC9eKHRydWV8ZmFsc2UpJC8udGVzdChuZXh0KSkpIHtcbiAgICAgICAgICAgICAgICBhcmdzVG9TZXQucHVzaCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzVW5kZWZpbmVkKG5leHQpIHx8XG4gICAgICAgICAgICAgICAgKGlzVW5kZWZpbmVkKGFyZ0FmdGVyRXF1YWxTaWduKSAmJiAvXi0vLnRlc3QobmV4dCkgJiYgIW5lZ2F0aXZlLnRlc3QobmV4dCkgJiYgIWlzVW5rbm93bk9wdGlvbkFzQXJnKG5leHQpKSkge1xuICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0c1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmVmFsID0gZGVmYXVsdHNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1RvU2V0ID0gQXJyYXkuaXNBcnJheShkZWZWYWwpID8gZGVmVmFsIDogW2RlZlZhbF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChhcmdBZnRlckVxdWFsU2lnbikpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1RvU2V0LnB1c2gocHJvY2Vzc1ZhbHVlKGtleSwgYXJnQWZ0ZXJFcXVhbFNpZ24sIHRydWUpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaWkgPSBpICsgMTsgaWkgPCBhcmdzLmxlbmd0aDsgaWkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoKCFjb25maWd1cmF0aW9uWydncmVlZHktYXJyYXlzJ10gJiYgYXJnc1RvU2V0Lmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAobmFyZ3NDb3VudCAmJiB0eXBlb2YgbmFyZ3NDb3VudCA9PT0gJ251bWJlcicgJiYgYXJnc1RvU2V0Lmxlbmd0aCA+PSBuYXJnc0NvdW50KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gYXJnc1tpaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICgvXi0vLnRlc3QobmV4dCkgJiYgIW5lZ2F0aXZlLnRlc3QobmV4dCkgJiYgIWlzVW5rbm93bk9wdGlvbkFzQXJnKG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGkgPSBpaTtcbiAgICAgICAgICAgICAgICAgICAgYXJnc1RvU2V0LnB1c2gocHJvY2Vzc1ZhbHVlKGtleSwgbmV4dCwgaW5wdXRJc1N0cmluZykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmFyZ3NDb3VudCA9PT0gJ251bWJlcicgJiYgKChuYXJnc0NvdW50ICYmIGFyZ3NUb1NldC5sZW5ndGggPCBuYXJnc0NvdW50KSB8fFxuICAgICAgICAgICAgICAgIChpc05hTihuYXJnc0NvdW50KSAmJiBhcmdzVG9TZXQubGVuZ3RoID09PSAwKSkpIHtcbiAgICAgICAgICAgICAgICBlcnJvciA9IEVycm9yKF9fKCdOb3QgZW5vdWdoIGFyZ3VtZW50cyBmb2xsb3dpbmc6ICVzJywga2V5KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRBcmcoa2V5LCBhcmdzVG9TZXQpO1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc2V0QXJnKGtleSwgdmFsLCBzaG91bGRTdHJpcFF1b3RlcyA9IGlucHV0SXNTdHJpbmcpIHtcbiAgICAgICAgICAgIGlmICgvLS8udGVzdChrZXkpICYmIGNvbmZpZ3VyYXRpb25bJ2NhbWVsLWNhc2UtZXhwYW5zaW9uJ10pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbGlhcyA9IGtleS5zcGxpdCgnLicpLm1hcChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FtZWxDYXNlKHByb3ApO1xuICAgICAgICAgICAgICAgIH0pLmpvaW4oJy4nKTtcbiAgICAgICAgICAgICAgICBhZGROZXdBbGlhcyhrZXksIGFsaWFzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvY2Vzc1ZhbHVlKGtleSwgdmFsLCBzaG91bGRTdHJpcFF1b3Rlcyk7XG4gICAgICAgICAgICBjb25zdCBzcGxpdEtleSA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgc2V0S2V5KGFyZ3YsIHNwbGl0S2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZmxhZ3MuYWxpYXNlc1trZXldKSB7XG4gICAgICAgICAgICAgICAgZmxhZ3MuYWxpYXNlc1trZXldLmZvckVhY2goZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5UHJvcGVydGllcyA9IHguc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0S2V5KGFyZ3YsIGtleVByb3BlcnRpZXMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzcGxpdEtleS5sZW5ndGggPiAxICYmIGNvbmZpZ3VyYXRpb25bJ2RvdC1ub3RhdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgKGZsYWdzLmFsaWFzZXNbc3BsaXRLZXlbMF1dIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBrZXlQcm9wZXJ0aWVzID0geC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gW10uY29uY2F0KHNwbGl0S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgYS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICBrZXlQcm9wZXJ0aWVzID0ga2V5UHJvcGVydGllcy5jb25jYXQoYSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKGZsYWdzLmFsaWFzZXNba2V5XSB8fCBbXSkuaW5jbHVkZXMoa2V5UHJvcGVydGllcy5qb2luKCcuJykpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRLZXkoYXJndiwga2V5UHJvcGVydGllcywgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3Mubm9ybWFsaXplKSAmJiAhY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuYXJyYXlzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBba2V5XS5jb25jYXQoZmxhZ3MuYWxpYXNlc1trZXldIHx8IFtdKTtcbiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJndlJldHVybiwga2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0KHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IG1peGluLm5vcm1hbGl6ZSh2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYWRkTmV3QWxpYXMoa2V5LCBhbGlhcykge1xuICAgICAgICAgICAgaWYgKCEoZmxhZ3MuYWxpYXNlc1trZXldICYmIGZsYWdzLmFsaWFzZXNba2V5XS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgZmxhZ3MuYWxpYXNlc1trZXldID0gW2FsaWFzXTtcbiAgICAgICAgICAgICAgICBuZXdBbGlhc2VzW2FsaWFzXSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShmbGFncy5hbGlhc2VzW2FsaWFzXSAmJiBmbGFncy5hbGlhc2VzW2FsaWFzXS5sZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgYWRkTmV3QWxpYXMoYWxpYXMsIGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc1ZhbHVlKGtleSwgdmFsLCBzaG91bGRTdHJpcFF1b3Rlcykge1xuICAgICAgICAgICAgaWYgKHNob3VsZFN0cmlwUXVvdGVzKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gc3RyaXBRdW90ZXModmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5ib29scykgfHwgY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuY291bnRzKSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJylcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsID09PSAndHJ1ZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbClcbiAgICAgICAgICAgICAgICA/IHZhbC5tYXAoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG1heWJlQ29lcmNlTnVtYmVyKGtleSwgdik7IH0pXG4gICAgICAgICAgICAgICAgOiBtYXliZUNvZXJjZU51bWJlcihrZXksIHZhbCk7XG4gICAgICAgICAgICBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuY291bnRzKSAmJiAoaXNVbmRlZmluZWQodmFsdWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaW5jcmVtZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3Mubm9ybWFsaXplKSAmJiBjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5hcnJheXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSlcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWwubWFwKCh2YWwpID0+IHsgcmV0dXJuIG1peGluLm5vcm1hbGl6ZSh2YWwpOyB9KTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbWl4aW4ubm9ybWFsaXplKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gbWF5YmVDb2VyY2VOdW1iZXIoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uWydwYXJzZS1wb3NpdGlvbmFsLW51bWJlcnMnXSAmJiBrZXkgPT09ICdfJylcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICBpZiAoIWNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLnN0cmluZ3MpICYmICFjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5ib29scykgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkQ29lcmNlTnVtYmVyID0gbG9va3NMaWtlTnVtYmVyKHZhbHVlKSAmJiBjb25maWd1cmF0aW9uWydwYXJzZS1udW1iZXJzJ10gJiYgKE51bWJlci5pc1NhZmVJbnRlZ2VyKE1hdGguZmxvb3IocGFyc2VGbG9hdChgJHt2YWx1ZX1gKSkpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQ29lcmNlTnVtYmVyIHx8ICghaXNVbmRlZmluZWQodmFsdWUpICYmIGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLm51bWJlcnMpKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldENvbmZpZyhhcmd2KSB7XG4gICAgICAgICAgICBjb25zdCBjb25maWdMb29rdXAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICAgICAgYXBwbHlEZWZhdWx0c0FuZEFsaWFzZXMoY29uZmlnTG9va3VwLCBmbGFncy5hbGlhc2VzLCBkZWZhdWx0cyk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmbGFncy5jb25maWdzKS5mb3JFYWNoKGZ1bmN0aW9uIChjb25maWdLZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWdQYXRoID0gYXJndltjb25maWdLZXldIHx8IGNvbmZpZ0xvb2t1cFtjb25maWdLZXldO1xuICAgICAgICAgICAgICAgIGlmIChjb25maWdQYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29uZmlnID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlnUGF0aCA9IG1peGluLnJlc29sdmUobWl4aW4uY3dkKCksIGNvbmZpZ1BhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZUNvbmZpZyA9IGZsYWdzLmNvbmZpZ3NbY29uZmlnS2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZUNvbmZpZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyA9IHJlc29sdmVDb25maWcocmVzb2x2ZWRDb25maWdQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gY29uZmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gbWl4aW4ucmVxdWlyZShyZXNvbHZlZENvbmZpZ1BhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29uZmlnT2JqZWN0KGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXgubmFtZSA9PT0gJ1Blcm1pc3Npb25EZW5pZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmd2W2NvbmZpZ0tleV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBFcnJvcihfXygnSW52YWxpZCBKU09OIGNvbmZpZyBmaWxlOiAlcycsIGNvbmZpZ1BhdGgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldENvbmZpZ09iamVjdChjb25maWcsIHByZXYpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbmZpZykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb25maWdba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCBmdWxsS2V5ID0gcHJldiA/IHByZXYgKyAnLicgKyBrZXkgOiBrZXk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIGNvbmZpZ3VyYXRpb25bJ2RvdC1ub3RhdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldENvbmZpZ09iamVjdCh2YWx1ZSwgZnVsbEtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0tleShhcmd2LCBmdWxsS2V5LnNwbGl0KCcuJykpIHx8IChjaGVja0FsbEFsaWFzZXMoZnVsbEtleSwgZmxhZ3MuYXJyYXlzKSAmJiBjb25maWd1cmF0aW9uWydjb21iaW5lLWFycmF5cyddKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0QXJnKGZ1bGxLZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldENvbmZpZ09iamVjdHMoKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbmZpZ09iamVjdHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnT2JqZWN0cy5mb3JFYWNoKGZ1bmN0aW9uIChjb25maWdPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0Q29uZmlnT2JqZWN0KGNvbmZpZ09iamVjdCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXBwbHlFbnZWYXJzKGFyZ3YsIGNvbmZpZ09ubHkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZW52UHJlZml4ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSB0eXBlb2YgZW52UHJlZml4ID09PSAnc3RyaW5nJyA/IGVudlByZWZpeCA6ICcnO1xuICAgICAgICAgICAgY29uc3QgZW52ID0gbWl4aW4uZW52KCk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhlbnYpLmZvckVhY2goZnVuY3Rpb24gKGVudlZhcikge1xuICAgICAgICAgICAgICAgIGlmIChwcmVmaXggPT09ICcnIHx8IGVudlZhci5sYXN0SW5kZXhPZihwcmVmaXgsIDApID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleXMgPSBlbnZWYXIuc3BsaXQoJ19fJykubWFwKGZ1bmN0aW9uIChrZXksIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0ga2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYW1lbENhc2Uoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoKGNvbmZpZ09ubHkgJiYgZmxhZ3MuY29uZmlnc1trZXlzLmpvaW4oJy4nKV0pIHx8ICFjb25maWdPbmx5KSAmJiAhaGFzS2V5KGFyZ3YsIGtleXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBcmcoa2V5cy5qb2luKCcuJyksIGVudltlbnZWYXJdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFwcGx5Q29lcmNpb25zKGFyZ3YpIHtcbiAgICAgICAgICAgIGxldCBjb2VyY2U7XG4gICAgICAgICAgICBjb25zdCBhcHBsaWVkID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoYXJndikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFhcHBsaWVkLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvZXJjZSA9IGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmNvZXJjaW9ucyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29lcmNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbWF5YmVDb2VyY2VOdW1iZXIoa2V5LCBjb2VyY2UoYXJndltrZXldKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtdLmNvbmNhdChmbGFncy5hbGlhc2VzW2tleV0gfHwgW10sIGtleSkpLmZvckVhY2goYWxpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZC5hZGQoYWxpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndlthbGldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzZXRQbGFjZWhvbGRlcktleXMoYXJndikge1xuICAgICAgICAgICAgZmxhZ3Mua2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAofmtleS5pbmRleE9mKCcuJykpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3Zba2V5XSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICAgICAgICAgIGFyZ3Zba2V5XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3Y7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYXBwbHlEZWZhdWx0c0FuZEFsaWFzZXMob2JqLCBhbGlhc2VzLCBkZWZhdWx0cywgY2FuTG9nID0gZmFsc2UpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRlZmF1bHRzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc0tleShvYmosIGtleS5zcGxpdCgnLicpKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRLZXkob2JqLCBrZXkuc3BsaXQoJy4nKSwgZGVmYXVsdHNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYW5Mb2cpXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0ZWRba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIChhbGlhc2VzW2tleV0gfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNLZXkob2JqLCB4LnNwbGl0KCcuJykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEtleShvYmosIHguc3BsaXQoJy4nKSwgZGVmYXVsdHNba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc0tleShvYmosIGtleXMpIHtcbiAgICAgICAgICAgIGxldCBvID0gb2JqO1xuICAgICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uWydkb3Qtbm90YXRpb24nXSlcbiAgICAgICAgICAgICAgICBrZXlzID0gW2tleXMuam9pbignLicpXTtcbiAgICAgICAgICAgIGtleXMuc2xpY2UoMCwgLTEpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgIG8gPSAob1trZXldIHx8IHt9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1trZXlzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JylcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleSBpbiBvO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHNldEtleShvYmosIGtleXMsIHZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgbyA9IG9iajtcbiAgICAgICAgICAgIGlmICghY29uZmlndXJhdGlvblsnZG90LW5vdGF0aW9uJ10pXG4gICAgICAgICAgICAgICAga2V5cyA9IFtrZXlzLmpvaW4oJy4nKV07XG4gICAgICAgICAgICBrZXlzLnNsaWNlKDAsIC0xKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICBrZXkgPSBzYW5pdGl6ZUtleShrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbyA9PT0gJ29iamVjdCcgJiYgb1trZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgb1trZXldID0ge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb1trZXldICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KG9ba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob1trZXldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb1trZXldLnB1c2goe30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb1trZXldID0gW29ba2V5XSwge31dO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG8gPSBvW2tleV1bb1trZXldLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbyA9IG9ba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHNhbml0aXplS2V5KGtleXNba2V5cy5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICBjb25zdCBpc1R5cGVBcnJheSA9IGNoZWNrQWxsQWxpYXNlcyhrZXlzLmpvaW4oJy4nKSwgZmxhZ3MuYXJyYXlzKTtcbiAgICAgICAgICAgIGNvbnN0IGlzVmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgICAgICAgICAgbGV0IGR1cGxpY2F0ZSA9IGNvbmZpZ3VyYXRpb25bJ2R1cGxpY2F0ZS1hcmd1bWVudHMtYXJyYXknXTtcbiAgICAgICAgICAgIGlmICghZHVwbGljYXRlICYmIGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLm5hcmdzKSkge1xuICAgICAgICAgICAgICAgIGR1cGxpY2F0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKCghaXNVbmRlZmluZWQob1trZXldKSAmJiBmbGFncy5uYXJnc1trZXldID09PSAxKSB8fCAoQXJyYXkuaXNBcnJheShvW2tleV0pICYmIG9ba2V5XS5sZW5ndGggPT09IGZsYWdzLm5hcmdzW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ba2V5XSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IGluY3JlbWVudCgpKSB7XG4gICAgICAgICAgICAgICAgb1trZXldID0gaW5jcmVtZW50KG9ba2V5XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9ba2V5XSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZHVwbGljYXRlICYmIGlzVHlwZUFycmF5ICYmIGlzVmFsdWVBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBvW2tleV0gPSBjb25maWd1cmF0aW9uWydmbGF0dGVuLWR1cGxpY2F0ZS1hcnJheXMnXSA/IG9ba2V5XS5jb25jYXQodmFsdWUpIDogKEFycmF5LmlzQXJyYXkob1trZXldWzBdKSA/IG9ba2V5XSA6IFtvW2tleV1dKS5jb25jYXQoW3ZhbHVlXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFkdXBsaWNhdGUgJiYgQm9vbGVhbihpc1R5cGVBcnJheSkgPT09IEJvb2xlYW4oaXNWYWx1ZUFycmF5KSkge1xuICAgICAgICAgICAgICAgICAgICBvW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ba2V5XSA9IG9ba2V5XS5jb25jYXQoW3ZhbHVlXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAob1trZXldID09PSB1bmRlZmluZWQgJiYgaXNUeXBlQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBvW2tleV0gPSBpc1ZhbHVlQXJyYXkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChkdXBsaWNhdGUgJiYgIShvW2tleV0gPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgIGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmNvdW50cykgfHxcbiAgICAgICAgICAgICAgICBjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5ib29scykpKSB7XG4gICAgICAgICAgICAgICAgb1trZXldID0gW29ba2V5XSwgdmFsdWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb1trZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXh0ZW5kQWxpYXNlcyguLi5hcmdzKSB7XG4gICAgICAgICAgICBhcmdzLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKG9iaiB8fCB7fSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGFncy5hbGlhc2VzW2tleV0pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmFsaWFzZXNba2V5XSA9IFtdLmNvbmNhdChhbGlhc2VzW2tleV0gfHwgW10pO1xuICAgICAgICAgICAgICAgICAgICBmbGFncy5hbGlhc2VzW2tleV0uY29uY2F0KGtleSkuZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8tLy50ZXN0KHgpICYmIGNvbmZpZ3VyYXRpb25bJ2NhbWVsLWNhc2UtZXhwYW5zaW9uJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gY2FtZWxDYXNlKHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9PSBrZXkgJiYgZmxhZ3MuYWxpYXNlc1trZXldLmluZGV4T2YoYykgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLmFsaWFzZXNba2V5XS5wdXNoKGMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdBbGlhc2VzW2NdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBmbGFncy5hbGlhc2VzW2tleV0uY29uY2F0KGtleSkuZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgubGVuZ3RoID4gMSAmJiAvW0EtWl0vLnRlc3QoeCkgJiYgY29uZmlndXJhdGlvblsnY2FtZWwtY2FzZS1leHBhbnNpb24nXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBkZWNhbWVsaXplKHgsICctJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT09IGtleSAmJiBmbGFncy5hbGlhc2VzW2tleV0uaW5kZXhPZihjKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MuYWxpYXNlc1trZXldLnB1c2goYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0FsaWFzZXNbY10gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmFsaWFzZXNba2V5XS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncy5hbGlhc2VzW3hdID0gW2tleV0uY29uY2F0KGZsYWdzLmFsaWFzZXNba2V5XS5maWx0ZXIoZnVuY3Rpb24gKHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geCAhPT0geTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFnKSB7XG4gICAgICAgICAgICBjb25zdCB0b0NoZWNrID0gW10uY29uY2F0KGZsYWdzLmFsaWFzZXNba2V5XSB8fCBbXSwga2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmbGFnKTtcbiAgICAgICAgICAgIGNvbnN0IHNldEFsaWFzID0gdG9DaGVjay5maW5kKGtleSA9PiBrZXlzLmluY2x1ZGVzKGtleSkpO1xuICAgICAgICAgICAgcmV0dXJuIHNldEFsaWFzID8gZmxhZ1tzZXRBbGlhc10gOiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBoYXNBbnlGbGFnKGtleSkge1xuICAgICAgICAgICAgY29uc3QgZmxhZ3NLZXlzID0gT2JqZWN0LmtleXMoZmxhZ3MpO1xuICAgICAgICAgICAgY29uc3QgdG9DaGVjayA9IFtdLmNvbmNhdChmbGFnc0tleXMubWFwKGsgPT4gZmxhZ3Nba10pKTtcbiAgICAgICAgICAgIHJldHVybiB0b0NoZWNrLnNvbWUoZnVuY3Rpb24gKGZsYWcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmbGFnKSA/IGZsYWcuaW5jbHVkZXMoa2V5KSA6IGZsYWdba2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhc0ZsYWdzTWF0Y2hpbmcoYXJnLCAuLi5wYXR0ZXJucykge1xuICAgICAgICAgICAgY29uc3QgdG9DaGVjayA9IFtdLmNvbmNhdCguLi5wYXR0ZXJucyk7XG4gICAgICAgICAgICByZXR1cm4gdG9DaGVjay5zb21lKGZ1bmN0aW9uIChwYXR0ZXJuKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBhcmcubWF0Y2gocGF0dGVybik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoICYmIGhhc0FueUZsYWcobWF0Y2hbMV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaGFzQWxsU2hvcnRGbGFncyhhcmcpIHtcbiAgICAgICAgICAgIGlmIChhcmcubWF0Y2gobmVnYXRpdmUpIHx8ICFhcmcubWF0Y2goL14tW14tXSsvKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBoYXNBbGxGbGFncyA9IHRydWU7XG4gICAgICAgICAgICBsZXQgbmV4dDtcbiAgICAgICAgICAgIGNvbnN0IGxldHRlcnMgPSBhcmcuc2xpY2UoMSkuc3BsaXQoJycpO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsZXR0ZXJzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IGFyZy5zbGljZShqICsgMik7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBbnlGbGFnKGxldHRlcnNbal0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0FsbEZsYWdzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKGxldHRlcnNbaiArIDFdICYmIGxldHRlcnNbaiArIDFdID09PSAnPScpIHx8XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPT09ICctJyB8fFxuICAgICAgICAgICAgICAgICAgICAoL1tBLVphLXpdLy50ZXN0KGxldHRlcnNbal0pICYmIC9eLT9cXGQrKFxcLlxcZCopPyhlLT9cXGQrKT8kLy50ZXN0KG5leHQpKSB8fFxuICAgICAgICAgICAgICAgICAgICAobGV0dGVyc1tqICsgMV0gJiYgbGV0dGVyc1tqICsgMV0ubWF0Y2goL1xcVy8pKSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaGFzQWxsRmxhZ3M7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNVbmtub3duT3B0aW9uQXNBcmcoYXJnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvblsndW5rbm93bi1vcHRpb25zLWFzLWFyZ3MnXSAmJiBpc1Vua25vd25PcHRpb24oYXJnKTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBpc1Vua25vd25PcHRpb24oYXJnKSB7XG4gICAgICAgICAgICBhcmcgPSBhcmcucmVwbGFjZSgvXi17Myx9LywgJy0tJyk7XG4gICAgICAgICAgICBpZiAoYXJnLm1hdGNoKG5lZ2F0aXZlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBbGxTaG9ydEZsYWdzKGFyZykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmbGFnV2l0aEVxdWFscyA9IC9eLSsoW149XSs/KT1bXFxzXFxTXSokLztcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbEZsYWcgPSAvXi0rKFtePV0rPykkLztcbiAgICAgICAgICAgIGNvbnN0IGZsYWdFbmRpbmdJbkh5cGhlbiA9IC9eLSsoW149XSs/KS0kLztcbiAgICAgICAgICAgIGNvbnN0IGZsYWdFbmRpbmdJbkRpZ2l0cyA9IC9eLSsoW149XSs/XFxkKykkLztcbiAgICAgICAgICAgIGNvbnN0IGZsYWdFbmRpbmdJbk5vbldvcmRDaGFyYWN0ZXJzID0gL14tKyhbXj1dKz8pXFxXKy4qJC87XG4gICAgICAgICAgICByZXR1cm4gIWhhc0ZsYWdzTWF0Y2hpbmcoYXJnLCBmbGFnV2l0aEVxdWFscywgbmVnYXRlZEJvb2xlYW4sIG5vcm1hbEZsYWcsIGZsYWdFbmRpbmdJbkh5cGhlbiwgZmxhZ0VuZGluZ0luRGlnaXRzLCBmbGFnRW5kaW5nSW5Ob25Xb3JkQ2hhcmFjdGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZGVmYXVsdFZhbHVlKGtleSkge1xuICAgICAgICAgICAgaWYgKCFjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5ib29scykgJiZcbiAgICAgICAgICAgICAgICAhY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MuY291bnRzKSAmJlxuICAgICAgICAgICAgICAgIGAke2tleX1gIGluIGRlZmF1bHRzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdEZvclR5cGUoZ3Vlc3NUeXBlKGtleSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGRlZmF1bHRGb3JUeXBlKHR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZiA9IHtcbiAgICAgICAgICAgICAgICBbRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkuQk9PTEVBTl06IHRydWUsXG4gICAgICAgICAgICAgICAgW0RlZmF1bHRWYWx1ZXNGb3JUeXBlS2V5LlNUUklOR106ICcnLFxuICAgICAgICAgICAgICAgIFtEZWZhdWx0VmFsdWVzRm9yVHlwZUtleS5OVU1CRVJdOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgW0RlZmF1bHRWYWx1ZXNGb3JUeXBlS2V5LkFSUkFZXTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gZGVmW3R5cGVdO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGd1ZXNzVHlwZShrZXkpIHtcbiAgICAgICAgICAgIGxldCB0eXBlID0gRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkuQk9PTEVBTjtcbiAgICAgICAgICAgIGlmIChjaGVja0FsbEFsaWFzZXMoa2V5LCBmbGFncy5zdHJpbmdzKSlcbiAgICAgICAgICAgICAgICB0eXBlID0gRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkuU1RSSU5HO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MubnVtYmVycykpXG4gICAgICAgICAgICAgICAgdHlwZSA9IERlZmF1bHRWYWx1ZXNGb3JUeXBlS2V5Lk5VTUJFUjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmJvb2xzKSlcbiAgICAgICAgICAgICAgICB0eXBlID0gRGVmYXVsdFZhbHVlc0ZvclR5cGVLZXkuQk9PTEVBTjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmFycmF5cykpXG4gICAgICAgICAgICAgICAgdHlwZSA9IERlZmF1bHRWYWx1ZXNGb3JUeXBlS2V5LkFSUkFZO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gaXNVbmRlZmluZWQobnVtKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtID09PSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gY2hlY2tDb25maWd1cmF0aW9uKCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZmxhZ3MuY291bnRzKS5maW5kKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQWxsQWxpYXNlcyhrZXksIGZsYWdzLmFycmF5cykpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBFcnJvcihfXygnSW52YWxpZCBjb25maWd1cmF0aW9uOiAlcywgb3B0cy5jb3VudCBleGNsdWRlcyBvcHRzLmFycmF5LicsIGtleSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2tBbGxBbGlhc2VzKGtleSwgZmxhZ3MubmFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gRXJyb3IoX18oJ0ludmFsaWQgY29uZmlndXJhdGlvbjogJXMsIG9wdHMuY291bnQgZXhjbHVkZXMgb3B0cy5uYXJnLicsIGtleSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFsaWFzZXM6IE9iamVjdC5hc3NpZ24oe30sIGZsYWdzLmFsaWFzZXMpLFxuICAgICAgICAgICAgYXJndjogT2JqZWN0LmFzc2lnbihhcmd2UmV0dXJuLCBhcmd2KSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICBkZWZhdWx0ZWQ6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRlZCksXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgICBuZXdBbGlhc2VzOiBPYmplY3QuYXNzaWduKHt9LCBuZXdBbGlhc2VzKVxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNvbWJpbmVBbGlhc2VzKGFsaWFzZXMpIHtcbiAgICBjb25zdCBhbGlhc0FycmF5cyA9IFtdO1xuICAgIGNvbnN0IGNvbWJpbmVkID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICBsZXQgY2hhbmdlID0gdHJ1ZTtcbiAgICBPYmplY3Qua2V5cyhhbGlhc2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgYWxpYXNBcnJheXMucHVzaChbXS5jb25jYXQoYWxpYXNlc1trZXldLCBrZXkpKTtcbiAgICB9KTtcbiAgICB3aGlsZSAoY2hhbmdlKSB7XG4gICAgICAgIGNoYW5nZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFsaWFzQXJyYXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpaSA9IGkgKyAxOyBpaSA8IGFsaWFzQXJyYXlzLmxlbmd0aDsgaWkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGludGVyc2VjdCA9IGFsaWFzQXJyYXlzW2ldLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWxpYXNBcnJheXNbaWldLmluZGV4T2YodikgIT09IC0xO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChpbnRlcnNlY3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzQXJyYXlzW2ldID0gYWxpYXNBcnJheXNbaV0uY29uY2F0KGFsaWFzQXJyYXlzW2lpXSk7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzQXJyYXlzLnNwbGljZShpaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhbGlhc0FycmF5cy5mb3JFYWNoKGZ1bmN0aW9uIChhbGlhc0FycmF5KSB7XG4gICAgICAgIGFsaWFzQXJyYXkgPSBhbGlhc0FycmF5LmZpbHRlcihmdW5jdGlvbiAodiwgaSwgc2VsZikge1xuICAgICAgICAgICAgcmV0dXJuIHNlbGYuaW5kZXhPZih2KSA9PT0gaTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxhc3RBbGlhcyA9IGFsaWFzQXJyYXkucG9wKCk7XG4gICAgICAgIGlmIChsYXN0QWxpYXMgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbGFzdEFsaWFzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29tYmluZWRbbGFzdEFsaWFzXSA9IGFsaWFzQXJyYXk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29tYmluZWQ7XG59XG5mdW5jdGlvbiBpbmNyZW1lbnQob3JpZykge1xuICAgIHJldHVybiBvcmlnICE9PSB1bmRlZmluZWQgPyBvcmlnICsgMSA6IDE7XG59XG5mdW5jdGlvbiBzYW5pdGl6ZUtleShrZXkpIHtcbiAgICBpZiAoa2V5ID09PSAnX19wcm90b19fJylcbiAgICAgICAgcmV0dXJuICdfX19wcm90b19fXyc7XG4gICAgcmV0dXJuIGtleTtcbn1cbmZ1bmN0aW9uIHN0cmlwUXVvdGVzKHZhbCkge1xuICAgIHJldHVybiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgKHZhbFswXSA9PT0gXCInXCIgfHwgdmFsWzBdID09PSAnXCInKSAmJlxuICAgICAgICB2YWxbdmFsLmxlbmd0aCAtIDFdID09PSB2YWxbMF0pXG4gICAgICAgID8gdmFsLnN1YnN0cmluZygxLCB2YWwubGVuZ3RoIC0gMSlcbiAgICAgICAgOiB2YWw7XG59XG5cbnZhciBfYSwgX2IsIF9jO1xuY29uc3QgbWluTm9kZVZlcnNpb24gPSAocHJvY2VzcyAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5ZQVJHU19NSU5fTk9ERV9WRVJTSU9OKVxuICAgID8gTnVtYmVyKHByb2Nlc3MuZW52LllBUkdTX01JTl9OT0RFX1ZFUlNJT04pXG4gICAgOiAxMjtcbmNvbnN0IG5vZGVWZXJzaW9uID0gKF9iID0gKF9hID0gcHJvY2VzcyA9PT0gbnVsbCB8fCBwcm9jZXNzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9jZXNzLnZlcnNpb25zKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogKF9jID0gcHJvY2VzcyA9PT0gbnVsbCB8fCBwcm9jZXNzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9jZXNzLnZlcnNpb24pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5zbGljZSgxKTtcbmlmIChub2RlVmVyc2lvbikge1xuICAgIGNvbnN0IG1ham9yID0gTnVtYmVyKG5vZGVWZXJzaW9uLm1hdGNoKC9eKFteLl0rKS8pWzFdKTtcbiAgICBpZiAobWFqb3IgPCBtaW5Ob2RlVmVyc2lvbikge1xuICAgICAgICB0aHJvdyBFcnJvcihgeWFyZ3MgcGFyc2VyIHN1cHBvcnRzIGEgbWluaW11bSBOb2RlLmpzIHZlcnNpb24gb2YgJHttaW5Ob2RlVmVyc2lvbn0uIFJlYWQgb3VyIHZlcnNpb24gc3VwcG9ydCBwb2xpY3k6IGh0dHBzOi8vZ2l0aHViLmNvbS95YXJncy95YXJncy1wYXJzZXIjc3VwcG9ydGVkLW5vZGVqcy12ZXJzaW9uc2ApO1xuICAgIH1cbn1cbmNvbnN0IGVudiA9IHByb2Nlc3MgPyBwcm9jZXNzLmVudiA6IHt9O1xuY29uc3QgcGFyc2VyID0gbmV3IFlhcmdzUGFyc2VyKHtcbiAgICBjd2Q6IHByb2Nlc3MuY3dkLFxuICAgIGVudjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gZW52O1xuICAgIH0sXG4gICAgZm9ybWF0OiB1dGlsLmZvcm1hdCxcbiAgICBub3JtYWxpemU6IHBhdGgubm9ybWFsaXplLFxuICAgIHJlc29sdmU6IHBhdGgucmVzb2x2ZSxcbiAgICByZXF1aXJlOiAocGF0aCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHJlcXVpcmUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVxdWlyZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwYXRoLm1hdGNoKC9cXC5qc29uJC8pKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aCwgJ3V0ZjgnKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignb25seSAuanNvbiBjb25maWcgZmlsZXMgYXJlIHN1cHBvcnRlZCBpbiBFU00nKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuY29uc3QgeWFyZ3NQYXJzZXIgPSBmdW5jdGlvbiBQYXJzZXIoYXJncywgb3B0cykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlci5wYXJzZShhcmdzLnNsaWNlKCksIG9wdHMpO1xuICAgIHJldHVybiByZXN1bHQuYXJndjtcbn07XG55YXJnc1BhcnNlci5kZXRhaWxlZCA9IGZ1bmN0aW9uIChhcmdzLCBvcHRzKSB7XG4gICAgcmV0dXJuIHBhcnNlci5wYXJzZShhcmdzLnNsaWNlKCksIG9wdHMpO1xufTtcbnlhcmdzUGFyc2VyLmNhbWVsQ2FzZSA9IGNhbWVsQ2FzZTtcbnlhcmdzUGFyc2VyLmRlY2FtZWxpemUgPSBkZWNhbWVsaXplO1xueWFyZ3NQYXJzZXIubG9va3NMaWtlTnVtYmVyID0gbG9va3NMaWtlTnVtYmVyO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHlhcmdzUGFyc2VyO1xuIiwgIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSAoe29ubHlGaXJzdCA9IGZhbHNlfSA9IHt9KSA9PiB7XG5cdGNvbnN0IHBhdHRlcm4gPSBbXG5cdFx0J1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYW5zaVJlZ2V4ID0gcmVxdWlyZSgnYW5zaS1yZWdleCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZyA9PiB0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJyA/IHN0cmluZy5yZXBsYWNlKGFuc2lSZWdleCgpLCAnJykgOiBzdHJpbmc7XG4iLCAiLyogZXNsaW50LWRpc2FibGUgeW9kYSAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBpc0Z1bGx3aWR0aENvZGVQb2ludCA9IGNvZGVQb2ludCA9PiB7XG5cdGlmIChOdW1iZXIuaXNOYU4oY29kZVBvaW50KSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIENvZGUgcG9pbnRzIGFyZSBkZXJpdmVkIGZyb206XG5cdC8vIGh0dHA6Ly93d3cudW5peC5vcmcvUHVibGljL1VOSURBVEEvRWFzdEFzaWFuV2lkdGgudHh0XG5cdGlmIChcblx0XHRjb2RlUG9pbnQgPj0gMHgxMTAwICYmIChcblx0XHRcdGNvZGVQb2ludCA8PSAweDExNUYgfHwgLy8gSGFuZ3VsIEphbW9cblx0XHRcdGNvZGVQb2ludCA9PT0gMHgyMzI5IHx8IC8vIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Y29kZVBvaW50ID09PSAweDIzMkEgfHwgLy8gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Ly8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQgLi4gRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRoc1xuXHRcdFx0KDB4MkU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MzI0NyAmJiBjb2RlUG9pbnQgIT09IDB4MzAzRikgfHxcblx0XHRcdC8vIEVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMgLi4gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQVxuXHRcdFx0KDB4MzI1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4NERCRikgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgLi4gWWkgUmFkaWNhbHNcblx0XHRcdCgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdFx0XHQvLyBIYW5ndWwgSmFtbyBFeHRlbmRlZC1BXG5cdFx0XHQoMHhBOTYwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhBOTdDKSB8fFxuXHRcdFx0Ly8gSGFuZ3VsIFN5bGxhYmxlc1xuXHRcdFx0KDB4QUMwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RDdBMykgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHNcblx0XHRcdCgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdFx0XHQvLyBWZXJ0aWNhbCBGb3Jtc1xuXHRcdFx0KDB4RkUxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkUxOSkgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IEZvcm1zIC4uIFNtYWxsIEZvcm0gVmFyaWFudHNcblx0XHRcdCgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdFx0XHQvLyBIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3Jtc1xuXHRcdFx0KDB4RkYwMSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkY2MCkgfHxcblx0XHRcdCgweEZGRTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZGRTYpIHx8XG5cdFx0XHQvLyBLYW5hIFN1cHBsZW1lbnRcblx0XHRcdCgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0XHRcdC8vIEVuY2xvc2VkIElkZW9ncmFwaGljIFN1cHBsZW1lbnRcblx0XHRcdCgweDFGMjAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI1MSkgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEIgLi4gVGVydGlhcnkgSWRlb2dyYXBoaWMgUGxhbmVcblx0XHRcdCgweDIwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzRkZGRClcblx0XHQpXG5cdCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbiIsICJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuICByZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkNcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDXFx1REZGQnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkZcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ10pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEZ8XFx1RDgzRFtcXHVEQzY2XFx1REM2N118XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfCg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRkJcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQlxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZDXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KVxcdUQ4M0NcXHVERkZCfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRVxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSkoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdTIwMEQoPzpcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY5XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjlcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8KD86KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSlcXHVGRTBGfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ2LVxcdURERERdKSg/Oig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXSl8XFx1RDgzQ1xcdURGRjRcXHUyMDBEXFx1MjYyMClcXHVGRTBGfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNDXFx1REZGM1xcdUZFMEZcXHUyMDBEXFx1RDgzQ1xcdURGMDh8XFx1RDgzRFxcdURDMTVcXHUyMDBEXFx1RDgzRVxcdUREQkF8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjd8XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdUQ4M0NcXHVEREY2XFx1RDgzQ1xcdURERTZ8WyNcXCowLTldXFx1RkUwRlxcdTIwRTN8XFx1RDgzQ1xcdURERTcoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVBKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV0pfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1RERGNyg/OlxcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdKXxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzQ1xcdURERjIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYwKD86XFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVEKD86XFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdKXxcXHVEODNDXFx1RERFOSg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl0pfFxcdUQ4M0NcXHVEREZFKD86XFx1RDgzQ1tcXHVEREVBXFx1RERGOV0pfFxcdUQ4M0NcXHVEREVDKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXSl8XFx1RDgzQ1xcdURERjgoPzpcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZCKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXSl8XFx1RDgzQ1xcdURERjMoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU4KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjVcXHVEREY3XFx1RERGQS1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjEoPzpcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZGKD86XFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdKXxcXHVEODNDXFx1RERGQyg/OlxcdUQ4M0NbXFx1RERFQlxcdURERjhdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86W1xcdTI2MURcXHUyNzBBLVxcdTI3MERdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcwXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQ0FBXFx1REQ3NFxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXXxcXHVEODNFW1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNlxcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDItXFx1RERENV0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzBBXFx1MjcwQlxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3NTdcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVdfFxcdUQ4M0NbXFx1REMwNFxcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGN0NcXHVERjdFLVxcdURGOTNcXHVERkEwLVxcdURGQ0FcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY0XFx1REZGOC1cXHVERkZGXXxcXHVEODNEW1xcdURDMDAtXFx1REMzRVxcdURDNDBcXHVEQzQyLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERGQi1cXHVERTRGXFx1REU4MC1cXHVERUM1XFx1REVDQ1xcdURFRDAtXFx1REVEMlxcdURFRDVcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKXwoPzpbI1xcKjAtOVxceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFOS1cXHUyM0YzXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCLVxcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MURcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyLVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM1XFx1MjZDOFxcdTI2Q0VcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkQ0XFx1MjZFOVxcdTI2RUFcXHUyNkYwLVxcdTI2RjVcXHUyNkY3LVxcdTI2RkFcXHUyNkZEXFx1MjcwMlxcdTI3MDVcXHUyNzA4LVxcdTI3MERcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzI4XFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3NjNcXHUyNzY0XFx1Mjc5NS1cXHUyNzk3XFx1MjdBMVxcdTI3QjBcXHUyN0JGXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMDJcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIxXFx1REYyNC1cXHVERjkzXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFLVxcdURGRjBcXHVERkYzLVxcdURGRjVcXHVERkY3LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQ0ZEXFx1RENGRi1cXHVERDNEXFx1REQ0OS1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1REQ2RlxcdURENzBcXHVERDczLVxcdUREN0FcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1REQ5MFxcdUREOTVcXHVERDk2XFx1RERBNFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNCLVxcdURFRDJcXHVERUQ1XFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRUJcXHVERUVDXFx1REVGMFxcdURFRjMtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKVxcdUZFMEZ8KD86W1xcdTI2MURcXHUyNkY5XFx1MjcwQS1cXHUyNzBEXXxcXHVEODNDW1xcdURGODVcXHVERkMyLVxcdURGQzRcXHVERkM3XFx1REZDQS1cXHVERkNDXXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2Ni1cXHVEQzc4XFx1REM3Q1xcdURDODEtXFx1REM4M1xcdURDODUtXFx1REM4N1xcdURDOEZcXHVEQzkxXFx1RENBQVxcdURENzRcXHVERDc1XFx1REQ3QVxcdUREOTBcXHVERDk1XFx1REQ5NlxcdURFNDUtXFx1REU0N1xcdURFNEItXFx1REU0RlxcdURFQTNcXHVERUI0LVxcdURFQjZcXHVERUMwXFx1REVDQ118XFx1RDgzRVtcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQyNlxcdUREMzAtXFx1REQzOVxcdUREM0MtXFx1REQzRVxcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZztcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgc3RyaXBBbnNpID0gcmVxdWlyZSgnc3RyaXAtYW5zaScpO1xuY29uc3QgaXNGdWxsd2lkdGhDb2RlUG9pbnQgPSByZXF1aXJlKCdpcy1mdWxsd2lkdGgtY29kZS1wb2ludCcpO1xuY29uc3QgZW1vamlSZWdleCA9IHJlcXVpcmUoJ2Vtb2ppLXJlZ2V4Jyk7XG5cbmNvbnN0IHN0cmluZ1dpZHRoID0gc3RyaW5nID0+IHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnIHx8IHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdHN0cmluZyA9IHN0cmlwQW5zaShzdHJpbmcpO1xuXG5cdGlmIChzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShlbW9qaVJlZ2V4KCksICcgICcpO1xuXG5cdGxldCB3aWR0aCA9IDA7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBjb2RlID0gc3RyaW5nLmNvZGVQb2ludEF0KGkpO1xuXG5cdFx0Ly8gSWdub3JlIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlIDw9IDB4MUYgfHwgKGNvZGUgPj0gMHg3RiAmJiBjb2RlIDw9IDB4OUYpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZSA+PSAweDMwMCAmJiBjb2RlIDw9IDB4MzZGKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBTdXJyb2dhdGVzXG5cdFx0aWYgKGNvZGUgPiAweEZGRkYpIHtcblx0XHRcdGkrKztcblx0XHR9XG5cblx0XHR3aWR0aCArPSBpc0Z1bGx3aWR0aENvZGVQb2ludChjb2RlKSA/IDIgOiAxO1xuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpbmdXaWR0aDtcbi8vIFRPRE86IHJlbW92ZSB0aGlzIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb25cbm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBzdHJpbmdXaWR0aDtcbiIsICIndXNlIHN0cmljdCdcclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cdFwiYWxpY2VibHVlXCI6IFsyNDAsIDI0OCwgMjU1XSxcclxuXHRcImFudGlxdWV3aGl0ZVwiOiBbMjUwLCAyMzUsIDIxNV0sXHJcblx0XCJhcXVhXCI6IFswLCAyNTUsIDI1NV0sXHJcblx0XCJhcXVhbWFyaW5lXCI6IFsxMjcsIDI1NSwgMjEyXSxcclxuXHRcImF6dXJlXCI6IFsyNDAsIDI1NSwgMjU1XSxcclxuXHRcImJlaWdlXCI6IFsyNDUsIDI0NSwgMjIwXSxcclxuXHRcImJpc3F1ZVwiOiBbMjU1LCAyMjgsIDE5Nl0sXHJcblx0XCJibGFja1wiOiBbMCwgMCwgMF0sXHJcblx0XCJibGFuY2hlZGFsbW9uZFwiOiBbMjU1LCAyMzUsIDIwNV0sXHJcblx0XCJibHVlXCI6IFswLCAwLCAyNTVdLFxyXG5cdFwiYmx1ZXZpb2xldFwiOiBbMTM4LCA0MywgMjI2XSxcclxuXHRcImJyb3duXCI6IFsxNjUsIDQyLCA0Ml0sXHJcblx0XCJidXJseXdvb2RcIjogWzIyMiwgMTg0LCAxMzVdLFxyXG5cdFwiY2FkZXRibHVlXCI6IFs5NSwgMTU4LCAxNjBdLFxyXG5cdFwiY2hhcnRyZXVzZVwiOiBbMTI3LCAyNTUsIDBdLFxyXG5cdFwiY2hvY29sYXRlXCI6IFsyMTAsIDEwNSwgMzBdLFxyXG5cdFwiY29yYWxcIjogWzI1NSwgMTI3LCA4MF0sXHJcblx0XCJjb3JuZmxvd2VyYmx1ZVwiOiBbMTAwLCAxNDksIDIzN10sXHJcblx0XCJjb3Juc2lsa1wiOiBbMjU1LCAyNDgsIDIyMF0sXHJcblx0XCJjcmltc29uXCI6IFsyMjAsIDIwLCA2MF0sXHJcblx0XCJjeWFuXCI6IFswLCAyNTUsIDI1NV0sXHJcblx0XCJkYXJrYmx1ZVwiOiBbMCwgMCwgMTM5XSxcclxuXHRcImRhcmtjeWFuXCI6IFswLCAxMzksIDEzOV0sXHJcblx0XCJkYXJrZ29sZGVucm9kXCI6IFsxODQsIDEzNCwgMTFdLFxyXG5cdFwiZGFya2dyYXlcIjogWzE2OSwgMTY5LCAxNjldLFxyXG5cdFwiZGFya2dyZWVuXCI6IFswLCAxMDAsIDBdLFxyXG5cdFwiZGFya2dyZXlcIjogWzE2OSwgMTY5LCAxNjldLFxyXG5cdFwiZGFya2toYWtpXCI6IFsxODksIDE4MywgMTA3XSxcclxuXHRcImRhcmttYWdlbnRhXCI6IFsxMzksIDAsIDEzOV0sXHJcblx0XCJkYXJrb2xpdmVncmVlblwiOiBbODUsIDEwNywgNDddLFxyXG5cdFwiZGFya29yYW5nZVwiOiBbMjU1LCAxNDAsIDBdLFxyXG5cdFwiZGFya29yY2hpZFwiOiBbMTUzLCA1MCwgMjA0XSxcclxuXHRcImRhcmtyZWRcIjogWzEzOSwgMCwgMF0sXHJcblx0XCJkYXJrc2FsbW9uXCI6IFsyMzMsIDE1MCwgMTIyXSxcclxuXHRcImRhcmtzZWFncmVlblwiOiBbMTQzLCAxODgsIDE0M10sXHJcblx0XCJkYXJrc2xhdGVibHVlXCI6IFs3MiwgNjEsIDEzOV0sXHJcblx0XCJkYXJrc2xhdGVncmF5XCI6IFs0NywgNzksIDc5XSxcclxuXHRcImRhcmtzbGF0ZWdyZXlcIjogWzQ3LCA3OSwgNzldLFxyXG5cdFwiZGFya3R1cnF1b2lzZVwiOiBbMCwgMjA2LCAyMDldLFxyXG5cdFwiZGFya3Zpb2xldFwiOiBbMTQ4LCAwLCAyMTFdLFxyXG5cdFwiZGVlcHBpbmtcIjogWzI1NSwgMjAsIDE0N10sXHJcblx0XCJkZWVwc2t5Ymx1ZVwiOiBbMCwgMTkxLCAyNTVdLFxyXG5cdFwiZGltZ3JheVwiOiBbMTA1LCAxMDUsIDEwNV0sXHJcblx0XCJkaW1ncmV5XCI6IFsxMDUsIDEwNSwgMTA1XSxcclxuXHRcImRvZGdlcmJsdWVcIjogWzMwLCAxNDQsIDI1NV0sXHJcblx0XCJmaXJlYnJpY2tcIjogWzE3OCwgMzQsIDM0XSxcclxuXHRcImZsb3JhbHdoaXRlXCI6IFsyNTUsIDI1MCwgMjQwXSxcclxuXHRcImZvcmVzdGdyZWVuXCI6IFszNCwgMTM5LCAzNF0sXHJcblx0XCJmdWNoc2lhXCI6IFsyNTUsIDAsIDI1NV0sXHJcblx0XCJnYWluc2Jvcm9cIjogWzIyMCwgMjIwLCAyMjBdLFxyXG5cdFwiZ2hvc3R3aGl0ZVwiOiBbMjQ4LCAyNDgsIDI1NV0sXHJcblx0XCJnb2xkXCI6IFsyNTUsIDIxNSwgMF0sXHJcblx0XCJnb2xkZW5yb2RcIjogWzIxOCwgMTY1LCAzMl0sXHJcblx0XCJncmF5XCI6IFsxMjgsIDEyOCwgMTI4XSxcclxuXHRcImdyZWVuXCI6IFswLCAxMjgsIDBdLFxyXG5cdFwiZ3JlZW55ZWxsb3dcIjogWzE3MywgMjU1LCA0N10sXHJcblx0XCJncmV5XCI6IFsxMjgsIDEyOCwgMTI4XSxcclxuXHRcImhvbmV5ZGV3XCI6IFsyNDAsIDI1NSwgMjQwXSxcclxuXHRcImhvdHBpbmtcIjogWzI1NSwgMTA1LCAxODBdLFxyXG5cdFwiaW5kaWFucmVkXCI6IFsyMDUsIDkyLCA5Ml0sXHJcblx0XCJpbmRpZ29cIjogWzc1LCAwLCAxMzBdLFxyXG5cdFwiaXZvcnlcIjogWzI1NSwgMjU1LCAyNDBdLFxyXG5cdFwia2hha2lcIjogWzI0MCwgMjMwLCAxNDBdLFxyXG5cdFwibGF2ZW5kZXJcIjogWzIzMCwgMjMwLCAyNTBdLFxyXG5cdFwibGF2ZW5kZXJibHVzaFwiOiBbMjU1LCAyNDAsIDI0NV0sXHJcblx0XCJsYXduZ3JlZW5cIjogWzEyNCwgMjUyLCAwXSxcclxuXHRcImxlbW9uY2hpZmZvblwiOiBbMjU1LCAyNTAsIDIwNV0sXHJcblx0XCJsaWdodGJsdWVcIjogWzE3MywgMjE2LCAyMzBdLFxyXG5cdFwibGlnaHRjb3JhbFwiOiBbMjQwLCAxMjgsIDEyOF0sXHJcblx0XCJsaWdodGN5YW5cIjogWzIyNCwgMjU1LCAyNTVdLFxyXG5cdFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIjogWzI1MCwgMjUwLCAyMTBdLFxyXG5cdFwibGlnaHRncmF5XCI6IFsyMTEsIDIxMSwgMjExXSxcclxuXHRcImxpZ2h0Z3JlZW5cIjogWzE0NCwgMjM4LCAxNDRdLFxyXG5cdFwibGlnaHRncmV5XCI6IFsyMTEsIDIxMSwgMjExXSxcclxuXHRcImxpZ2h0cGlua1wiOiBbMjU1LCAxODIsIDE5M10sXHJcblx0XCJsaWdodHNhbG1vblwiOiBbMjU1LCAxNjAsIDEyMl0sXHJcblx0XCJsaWdodHNlYWdyZWVuXCI6IFszMiwgMTc4LCAxNzBdLFxyXG5cdFwibGlnaHRza3libHVlXCI6IFsxMzUsIDIwNiwgMjUwXSxcclxuXHRcImxpZ2h0c2xhdGVncmF5XCI6IFsxMTksIDEzNiwgMTUzXSxcclxuXHRcImxpZ2h0c2xhdGVncmV5XCI6IFsxMTksIDEzNiwgMTUzXSxcclxuXHRcImxpZ2h0c3RlZWxibHVlXCI6IFsxNzYsIDE5NiwgMjIyXSxcclxuXHRcImxpZ2h0eWVsbG93XCI6IFsyNTUsIDI1NSwgMjI0XSxcclxuXHRcImxpbWVcIjogWzAsIDI1NSwgMF0sXHJcblx0XCJsaW1lZ3JlZW5cIjogWzUwLCAyMDUsIDUwXSxcclxuXHRcImxpbmVuXCI6IFsyNTAsIDI0MCwgMjMwXSxcclxuXHRcIm1hZ2VudGFcIjogWzI1NSwgMCwgMjU1XSxcclxuXHRcIm1hcm9vblwiOiBbMTI4LCAwLCAwXSxcclxuXHRcIm1lZGl1bWFxdWFtYXJpbmVcIjogWzEwMiwgMjA1LCAxNzBdLFxyXG5cdFwibWVkaXVtYmx1ZVwiOiBbMCwgMCwgMjA1XSxcclxuXHRcIm1lZGl1bW9yY2hpZFwiOiBbMTg2LCA4NSwgMjExXSxcclxuXHRcIm1lZGl1bXB1cnBsZVwiOiBbMTQ3LCAxMTIsIDIxOV0sXHJcblx0XCJtZWRpdW1zZWFncmVlblwiOiBbNjAsIDE3OSwgMTEzXSxcclxuXHRcIm1lZGl1bXNsYXRlYmx1ZVwiOiBbMTIzLCAxMDQsIDIzOF0sXHJcblx0XCJtZWRpdW1zcHJpbmdncmVlblwiOiBbMCwgMjUwLCAxNTRdLFxyXG5cdFwibWVkaXVtdHVycXVvaXNlXCI6IFs3MiwgMjA5LCAyMDRdLFxyXG5cdFwibWVkaXVtdmlvbGV0cmVkXCI6IFsxOTksIDIxLCAxMzNdLFxyXG5cdFwibWlkbmlnaHRibHVlXCI6IFsyNSwgMjUsIDExMl0sXHJcblx0XCJtaW50Y3JlYW1cIjogWzI0NSwgMjU1LCAyNTBdLFxyXG5cdFwibWlzdHlyb3NlXCI6IFsyNTUsIDIyOCwgMjI1XSxcclxuXHRcIm1vY2Nhc2luXCI6IFsyNTUsIDIyOCwgMTgxXSxcclxuXHRcIm5hdmFqb3doaXRlXCI6IFsyNTUsIDIyMiwgMTczXSxcclxuXHRcIm5hdnlcIjogWzAsIDAsIDEyOF0sXHJcblx0XCJvbGRsYWNlXCI6IFsyNTMsIDI0NSwgMjMwXSxcclxuXHRcIm9saXZlXCI6IFsxMjgsIDEyOCwgMF0sXHJcblx0XCJvbGl2ZWRyYWJcIjogWzEwNywgMTQyLCAzNV0sXHJcblx0XCJvcmFuZ2VcIjogWzI1NSwgMTY1LCAwXSxcclxuXHRcIm9yYW5nZXJlZFwiOiBbMjU1LCA2OSwgMF0sXHJcblx0XCJvcmNoaWRcIjogWzIxOCwgMTEyLCAyMTRdLFxyXG5cdFwicGFsZWdvbGRlbnJvZFwiOiBbMjM4LCAyMzIsIDE3MF0sXHJcblx0XCJwYWxlZ3JlZW5cIjogWzE1MiwgMjUxLCAxNTJdLFxyXG5cdFwicGFsZXR1cnF1b2lzZVwiOiBbMTc1LCAyMzgsIDIzOF0sXHJcblx0XCJwYWxldmlvbGV0cmVkXCI6IFsyMTksIDExMiwgMTQ3XSxcclxuXHRcInBhcGF5YXdoaXBcIjogWzI1NSwgMjM5LCAyMTNdLFxyXG5cdFwicGVhY2hwdWZmXCI6IFsyNTUsIDIxOCwgMTg1XSxcclxuXHRcInBlcnVcIjogWzIwNSwgMTMzLCA2M10sXHJcblx0XCJwaW5rXCI6IFsyNTUsIDE5MiwgMjAzXSxcclxuXHRcInBsdW1cIjogWzIyMSwgMTYwLCAyMjFdLFxyXG5cdFwicG93ZGVyYmx1ZVwiOiBbMTc2LCAyMjQsIDIzMF0sXHJcblx0XCJwdXJwbGVcIjogWzEyOCwgMCwgMTI4XSxcclxuXHRcInJlYmVjY2FwdXJwbGVcIjogWzEwMiwgNTEsIDE1M10sXHJcblx0XCJyZWRcIjogWzI1NSwgMCwgMF0sXHJcblx0XCJyb3N5YnJvd25cIjogWzE4OCwgMTQzLCAxNDNdLFxyXG5cdFwicm95YWxibHVlXCI6IFs2NSwgMTA1LCAyMjVdLFxyXG5cdFwic2FkZGxlYnJvd25cIjogWzEzOSwgNjksIDE5XSxcclxuXHRcInNhbG1vblwiOiBbMjUwLCAxMjgsIDExNF0sXHJcblx0XCJzYW5keWJyb3duXCI6IFsyNDQsIDE2NCwgOTZdLFxyXG5cdFwic2VhZ3JlZW5cIjogWzQ2LCAxMzksIDg3XSxcclxuXHRcInNlYXNoZWxsXCI6IFsyNTUsIDI0NSwgMjM4XSxcclxuXHRcInNpZW5uYVwiOiBbMTYwLCA4MiwgNDVdLFxyXG5cdFwic2lsdmVyXCI6IFsxOTIsIDE5MiwgMTkyXSxcclxuXHRcInNreWJsdWVcIjogWzEzNSwgMjA2LCAyMzVdLFxyXG5cdFwic2xhdGVibHVlXCI6IFsxMDYsIDkwLCAyMDVdLFxyXG5cdFwic2xhdGVncmF5XCI6IFsxMTIsIDEyOCwgMTQ0XSxcclxuXHRcInNsYXRlZ3JleVwiOiBbMTEyLCAxMjgsIDE0NF0sXHJcblx0XCJzbm93XCI6IFsyNTUsIDI1MCwgMjUwXSxcclxuXHRcInNwcmluZ2dyZWVuXCI6IFswLCAyNTUsIDEyN10sXHJcblx0XCJzdGVlbGJsdWVcIjogWzcwLCAxMzAsIDE4MF0sXHJcblx0XCJ0YW5cIjogWzIxMCwgMTgwLCAxNDBdLFxyXG5cdFwidGVhbFwiOiBbMCwgMTI4LCAxMjhdLFxyXG5cdFwidGhpc3RsZVwiOiBbMjE2LCAxOTEsIDIxNl0sXHJcblx0XCJ0b21hdG9cIjogWzI1NSwgOTksIDcxXSxcclxuXHRcInR1cnF1b2lzZVwiOiBbNjQsIDIyNCwgMjA4XSxcclxuXHRcInZpb2xldFwiOiBbMjM4LCAxMzAsIDIzOF0sXHJcblx0XCJ3aGVhdFwiOiBbMjQ1LCAyMjIsIDE3OV0sXHJcblx0XCJ3aGl0ZVwiOiBbMjU1LCAyNTUsIDI1NV0sXHJcblx0XCJ3aGl0ZXNtb2tlXCI6IFsyNDUsIDI0NSwgMjQ1XSxcclxuXHRcInllbGxvd1wiOiBbMjU1LCAyNTUsIDBdLFxyXG5cdFwieWVsbG93Z3JlZW5cIjogWzE1NCwgMjA1LCA1MF1cclxufTtcclxuIiwgIi8qIE1JVCBsaWNlbnNlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1taXhlZC1vcGVyYXRvcnMgKi9cbmNvbnN0IGNzc0tleXdvcmRzID0gcmVxdWlyZSgnY29sb3ItbmFtZScpO1xuXG4vLyBOT1RFOiBjb252ZXJzaW9ucyBzaG91bGQgb25seSByZXR1cm4gcHJpbWl0aXZlIHZhbHVlcyAoaS5lLiBhcnJheXMsIG9yXG4vLyAgICAgICB2YWx1ZXMgdGhhdCBnaXZlIGNvcnJlY3QgYHR5cGVvZmAgcmVzdWx0cykuXG4vLyAgICAgICBkbyBub3QgdXNlIGJveCB2YWx1ZXMgdHlwZXMgKGkuZS4gTnVtYmVyKCksIFN0cmluZygpLCBldGMuKVxuXG5jb25zdCByZXZlcnNlS2V5d29yZHMgPSB7fTtcbmZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNzc0tleXdvcmRzKSkge1xuXHRyZXZlcnNlS2V5d29yZHNbY3NzS2V5d29yZHNba2V5XV0gPSBrZXk7XG59XG5cbmNvbnN0IGNvbnZlcnQgPSB7XG5cdHJnYjoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICdyZ2InfSxcblx0aHNsOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogJ2hzbCd9LFxuXHRoc3Y6IHtjaGFubmVsczogMywgbGFiZWxzOiAnaHN2J30sXG5cdGh3Yjoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICdod2InfSxcblx0Y215azoge2NoYW5uZWxzOiA0LCBsYWJlbHM6ICdjbXlrJ30sXG5cdHh5ejoge2NoYW5uZWxzOiAzLCBsYWJlbHM6ICd4eXonfSxcblx0bGFiOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogJ2xhYid9LFxuXHRsY2g6IHtjaGFubmVsczogMywgbGFiZWxzOiAnbGNoJ30sXG5cdGhleDoge2NoYW5uZWxzOiAxLCBsYWJlbHM6IFsnaGV4J119LFxuXHRrZXl3b3JkOiB7Y2hhbm5lbHM6IDEsIGxhYmVsczogWydrZXl3b3JkJ119LFxuXHRhbnNpMTY6IHtjaGFubmVsczogMSwgbGFiZWxzOiBbJ2Fuc2kxNiddfSxcblx0YW5zaTI1Njoge2NoYW5uZWxzOiAxLCBsYWJlbHM6IFsnYW5zaTI1NiddfSxcblx0aGNnOiB7Y2hhbm5lbHM6IDMsIGxhYmVsczogWydoJywgJ2MnLCAnZyddfSxcblx0YXBwbGU6IHtjaGFubmVsczogMywgbGFiZWxzOiBbJ3IxNicsICdnMTYnLCAnYjE2J119LFxuXHRncmF5OiB7Y2hhbm5lbHM6IDEsIGxhYmVsczogWydncmF5J119XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnQ7XG5cbi8vIEhpZGUgLmNoYW5uZWxzIGFuZCAubGFiZWxzIHByb3BlcnRpZXNcbmZvciAoY29uc3QgbW9kZWwgb2YgT2JqZWN0LmtleXMoY29udmVydCkpIHtcblx0aWYgKCEoJ2NoYW5uZWxzJyBpbiBjb252ZXJ0W21vZGVsXSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgY2hhbm5lbHMgcHJvcGVydHk6ICcgKyBtb2RlbCk7XG5cdH1cblxuXHRpZiAoISgnbGFiZWxzJyBpbiBjb252ZXJ0W21vZGVsXSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgY2hhbm5lbCBsYWJlbHMgcHJvcGVydHk6ICcgKyBtb2RlbCk7XG5cdH1cblxuXHRpZiAoY29udmVydFttb2RlbF0ubGFiZWxzLmxlbmd0aCAhPT0gY29udmVydFttb2RlbF0uY2hhbm5lbHMpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2NoYW5uZWwgYW5kIGxhYmVsIGNvdW50cyBtaXNtYXRjaDogJyArIG1vZGVsKTtcblx0fVxuXG5cdGNvbnN0IHtjaGFubmVscywgbGFiZWxzfSA9IGNvbnZlcnRbbW9kZWxdO1xuXHRkZWxldGUgY29udmVydFttb2RlbF0uY2hhbm5lbHM7XG5cdGRlbGV0ZSBjb252ZXJ0W21vZGVsXS5sYWJlbHM7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W21vZGVsXSwgJ2NoYW5uZWxzJywge3ZhbHVlOiBjaGFubmVsc30pO1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udmVydFttb2RlbF0sICdsYWJlbHMnLCB7dmFsdWU6IGxhYmVsc30pO1xufVxuXG5jb252ZXJ0LnJnYi5oc2wgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG5cdGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cdGNvbnN0IG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuXHRjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcblx0Y29uc3QgZGVsdGEgPSBtYXggLSBtaW47XG5cdGxldCBoO1xuXHRsZXQgcztcblxuXHRpZiAobWF4ID09PSBtaW4pIHtcblx0XHRoID0gMDtcblx0fSBlbHNlIGlmIChyID09PSBtYXgpIHtcblx0XHRoID0gKGcgLSBiKSAvIGRlbHRhO1xuXHR9IGVsc2UgaWYgKGcgPT09IG1heCkge1xuXHRcdGggPSAyICsgKGIgLSByKSAvIGRlbHRhO1xuXHR9IGVsc2UgaWYgKGIgPT09IG1heCkge1xuXHRcdGggPSA0ICsgKHIgLSBnKSAvIGRlbHRhO1xuXHR9XG5cblx0aCA9IE1hdGgubWluKGggKiA2MCwgMzYwKTtcblxuXHRpZiAoaCA8IDApIHtcblx0XHRoICs9IDM2MDtcblx0fVxuXG5cdGNvbnN0IGwgPSAobWluICsgbWF4KSAvIDI7XG5cblx0aWYgKG1heCA9PT0gbWluKSB7XG5cdFx0cyA9IDA7XG5cdH0gZWxzZSBpZiAobCA8PSAwLjUpIHtcblx0XHRzID0gZGVsdGEgLyAobWF4ICsgbWluKTtcblx0fSBlbHNlIHtcblx0XHRzID0gZGVsdGEgLyAoMiAtIG1heCAtIG1pbik7XG5cdH1cblxuXHRyZXR1cm4gW2gsIHMgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IuaHN2ID0gZnVuY3Rpb24gKHJnYikge1xuXHRsZXQgcmRpZjtcblx0bGV0IGdkaWY7XG5cdGxldCBiZGlmO1xuXHRsZXQgaDtcblx0bGV0IHM7XG5cblx0Y29uc3QgciA9IHJnYlswXSAvIDI1NTtcblx0Y29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcblx0Y29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblx0Y29uc3QgdiA9IE1hdGgubWF4KHIsIGcsIGIpO1xuXHRjb25zdCBkaWZmID0gdiAtIE1hdGgubWluKHIsIGcsIGIpO1xuXHRjb25zdCBkaWZmYyA9IGZ1bmN0aW9uIChjKSB7XG5cdFx0cmV0dXJuICh2IC0gYykgLyA2IC8gZGlmZiArIDEgLyAyO1xuXHR9O1xuXG5cdGlmIChkaWZmID09PSAwKSB7XG5cdFx0aCA9IDA7XG5cdFx0cyA9IDA7XG5cdH0gZWxzZSB7XG5cdFx0cyA9IGRpZmYgLyB2O1xuXHRcdHJkaWYgPSBkaWZmYyhyKTtcblx0XHRnZGlmID0gZGlmZmMoZyk7XG5cdFx0YmRpZiA9IGRpZmZjKGIpO1xuXG5cdFx0aWYgKHIgPT09IHYpIHtcblx0XHRcdGggPSBiZGlmIC0gZ2RpZjtcblx0XHR9IGVsc2UgaWYgKGcgPT09IHYpIHtcblx0XHRcdGggPSAoMSAvIDMpICsgcmRpZiAtIGJkaWY7XG5cdFx0fSBlbHNlIGlmIChiID09PSB2KSB7XG5cdFx0XHRoID0gKDIgLyAzKSArIGdkaWYgLSByZGlmO1xuXHRcdH1cblxuXHRcdGlmIChoIDwgMCkge1xuXHRcdFx0aCArPSAxO1xuXHRcdH0gZWxzZSBpZiAoaCA+IDEpIHtcblx0XHRcdGggLT0gMTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gW1xuXHRcdGggKiAzNjAsXG5cdFx0cyAqIDEwMCxcblx0XHR2ICogMTAwXG5cdF07XG59O1xuXG5jb252ZXJ0LnJnYi5od2IgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF07XG5cdGNvbnN0IGcgPSByZ2JbMV07XG5cdGxldCBiID0gcmdiWzJdO1xuXHRjb25zdCBoID0gY29udmVydC5yZ2IuaHNsKHJnYilbMF07XG5cdGNvbnN0IHcgPSAxIC8gMjU1ICogTWF0aC5taW4ociwgTWF0aC5taW4oZywgYikpO1xuXG5cdGIgPSAxIC0gMSAvIDI1NSAqIE1hdGgubWF4KHIsIE1hdGgubWF4KGcsIGIpKTtcblxuXHRyZXR1cm4gW2gsIHcgKiAxMDAsIGIgKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IuY215ayA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgciA9IHJnYlswXSAvIDI1NTtcblx0Y29uc3QgZyA9IHJnYlsxXSAvIDI1NTtcblx0Y29uc3QgYiA9IHJnYlsyXSAvIDI1NTtcblxuXHRjb25zdCBrID0gTWF0aC5taW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG5cdGNvbnN0IGMgPSAoMSAtIHIgLSBrKSAvICgxIC0gaykgfHwgMDtcblx0Y29uc3QgbSA9ICgxIC0gZyAtIGspIC8gKDEgLSBrKSB8fCAwO1xuXHRjb25zdCB5ID0gKDEgLSBiIC0gaykgLyAoMSAtIGspIHx8IDA7XG5cblx0cmV0dXJuIFtjICogMTAwLCBtICogMTAwLCB5ICogMTAwLCBrICogMTAwXTtcbn07XG5cbmZ1bmN0aW9uIGNvbXBhcmF0aXZlRGlzdGFuY2UoeCwgeSkge1xuXHQvKlxuXHRcdFNlZSBodHRwczovL2VuLm0ud2lraXBlZGlhLm9yZy93aWtpL0V1Y2xpZGVhbl9kaXN0YW5jZSNTcXVhcmVkX0V1Y2xpZGVhbl9kaXN0YW5jZVxuXHQqL1xuXHRyZXR1cm4gKFxuXHRcdCgoeFswXSAtIHlbMF0pICoqIDIpICtcblx0XHQoKHhbMV0gLSB5WzFdKSAqKiAyKSArXG5cdFx0KCh4WzJdIC0geVsyXSkgKiogMilcblx0KTtcbn1cblxuY29udmVydC5yZ2Iua2V5d29yZCA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgcmV2ZXJzZWQgPSByZXZlcnNlS2V5d29yZHNbcmdiXTtcblx0aWYgKHJldmVyc2VkKSB7XG5cdFx0cmV0dXJuIHJldmVyc2VkO1xuXHR9XG5cblx0bGV0IGN1cnJlbnRDbG9zZXN0RGlzdGFuY2UgPSBJbmZpbml0eTtcblx0bGV0IGN1cnJlbnRDbG9zZXN0S2V5d29yZDtcblxuXHRmb3IgKGNvbnN0IGtleXdvcmQgb2YgT2JqZWN0LmtleXMoY3NzS2V5d29yZHMpKSB7XG5cdFx0Y29uc3QgdmFsdWUgPSBjc3NLZXl3b3Jkc1trZXl3b3JkXTtcblxuXHRcdC8vIENvbXB1dGUgY29tcGFyYXRpdmUgZGlzdGFuY2Vcblx0XHRjb25zdCBkaXN0YW5jZSA9IGNvbXBhcmF0aXZlRGlzdGFuY2UocmdiLCB2YWx1ZSk7XG5cblx0XHQvLyBDaGVjayBpZiBpdHMgbGVzcywgaWYgc28gc2V0IGFzIGNsb3Nlc3Rcblx0XHRpZiAoZGlzdGFuY2UgPCBjdXJyZW50Q2xvc2VzdERpc3RhbmNlKSB7XG5cdFx0XHRjdXJyZW50Q2xvc2VzdERpc3RhbmNlID0gZGlzdGFuY2U7XG5cdFx0XHRjdXJyZW50Q2xvc2VzdEtleXdvcmQgPSBrZXl3b3JkO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjdXJyZW50Q2xvc2VzdEtleXdvcmQ7XG59O1xuXG5jb252ZXJ0LmtleXdvcmQucmdiID0gZnVuY3Rpb24gKGtleXdvcmQpIHtcblx0cmV0dXJuIGNzc0tleXdvcmRzW2tleXdvcmRdO1xufTtcblxuY29udmVydC5yZ2IueHl6ID0gZnVuY3Rpb24gKHJnYikge1xuXHRsZXQgciA9IHJnYlswXSAvIDI1NTtcblx0bGV0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGxldCBiID0gcmdiWzJdIC8gMjU1O1xuXG5cdC8vIEFzc3VtZSBzUkdCXG5cdHIgPSByID4gMC4wNDA0NSA/ICgoKHIgKyAwLjA1NSkgLyAxLjA1NSkgKiogMi40KSA6IChyIC8gMTIuOTIpO1xuXHRnID0gZyA+IDAuMDQwNDUgPyAoKChnICsgMC4wNTUpIC8gMS4wNTUpICoqIDIuNCkgOiAoZyAvIDEyLjkyKTtcblx0YiA9IGIgPiAwLjA0MDQ1ID8gKCgoYiArIDAuMDU1KSAvIDEuMDU1KSAqKiAyLjQpIDogKGIgLyAxMi45Mik7XG5cblx0Y29uc3QgeCA9IChyICogMC40MTI0KSArIChnICogMC4zNTc2KSArIChiICogMC4xODA1KTtcblx0Y29uc3QgeSA9IChyICogMC4yMTI2KSArIChnICogMC43MTUyKSArIChiICogMC4wNzIyKTtcblx0Y29uc3QgeiA9IChyICogMC4wMTkzKSArIChnICogMC4xMTkyKSArIChiICogMC45NTA1KTtcblxuXHRyZXR1cm4gW3ggKiAxMDAsIHkgKiAxMDAsIHogKiAxMDBdO1xufTtcblxuY29udmVydC5yZ2IubGFiID0gZnVuY3Rpb24gKHJnYikge1xuXHRjb25zdCB4eXogPSBjb252ZXJ0LnJnYi54eXoocmdiKTtcblx0bGV0IHggPSB4eXpbMF07XG5cdGxldCB5ID0geHl6WzFdO1xuXHRsZXQgeiA9IHh5elsyXTtcblxuXHR4IC89IDk1LjA0Nztcblx0eSAvPSAxMDA7XG5cdHogLz0gMTA4Ljg4MztcblxuXHR4ID0geCA+IDAuMDA4ODU2ID8gKHggKiogKDEgLyAzKSkgOiAoNy43ODcgKiB4KSArICgxNiAvIDExNik7XG5cdHkgPSB5ID4gMC4wMDg4NTYgPyAoeSAqKiAoMSAvIDMpKSA6ICg3Ljc4NyAqIHkpICsgKDE2IC8gMTE2KTtcblx0eiA9IHogPiAwLjAwODg1NiA/ICh6ICoqICgxIC8gMykpIDogKDcuNzg3ICogeikgKyAoMTYgLyAxMTYpO1xuXG5cdGNvbnN0IGwgPSAoMTE2ICogeSkgLSAxNjtcblx0Y29uc3QgYSA9IDUwMCAqICh4IC0geSk7XG5cdGNvbnN0IGIgPSAyMDAgKiAoeSAtIHopO1xuXG5cdHJldHVybiBbbCwgYSwgYl07XG59O1xuXG5jb252ZXJ0LmhzbC5yZ2IgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IGggPSBoc2xbMF0gLyAzNjA7XG5cdGNvbnN0IHMgPSBoc2xbMV0gLyAxMDA7XG5cdGNvbnN0IGwgPSBoc2xbMl0gLyAxMDA7XG5cdGxldCB0Mjtcblx0bGV0IHQzO1xuXHRsZXQgdmFsO1xuXG5cdGlmIChzID09PSAwKSB7XG5cdFx0dmFsID0gbCAqIDI1NTtcblx0XHRyZXR1cm4gW3ZhbCwgdmFsLCB2YWxdO1xuXHR9XG5cblx0aWYgKGwgPCAwLjUpIHtcblx0XHR0MiA9IGwgKiAoMSArIHMpO1xuXHR9IGVsc2Uge1xuXHRcdHQyID0gbCArIHMgLSBsICogcztcblx0fVxuXG5cdGNvbnN0IHQxID0gMiAqIGwgLSB0MjtcblxuXHRjb25zdCByZ2IgPSBbMCwgMCwgMF07XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG5cdFx0dDMgPSBoICsgMSAvIDMgKiAtKGkgLSAxKTtcblx0XHRpZiAodDMgPCAwKSB7XG5cdFx0XHR0MysrO1xuXHRcdH1cblxuXHRcdGlmICh0MyA+IDEpIHtcblx0XHRcdHQzLS07XG5cdFx0fVxuXG5cdFx0aWYgKDYgKiB0MyA8IDEpIHtcblx0XHRcdHZhbCA9IHQxICsgKHQyIC0gdDEpICogNiAqIHQzO1xuXHRcdH0gZWxzZSBpZiAoMiAqIHQzIDwgMSkge1xuXHRcdFx0dmFsID0gdDI7XG5cdFx0fSBlbHNlIGlmICgzICogdDMgPCAyKSB7XG5cdFx0XHR2YWwgPSB0MSArICh0MiAtIHQxKSAqICgyIC8gMyAtIHQzKSAqIDY7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbCA9IHQxO1xuXHRcdH1cblxuXHRcdHJnYltpXSA9IHZhbCAqIDI1NTtcblx0fVxuXG5cdHJldHVybiByZ2I7XG59O1xuXG5jb252ZXJ0LmhzbC5oc3YgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IGggPSBoc2xbMF07XG5cdGxldCBzID0gaHNsWzFdIC8gMTAwO1xuXHRsZXQgbCA9IGhzbFsyXSAvIDEwMDtcblx0bGV0IHNtaW4gPSBzO1xuXHRjb25zdCBsbWluID0gTWF0aC5tYXgobCwgMC4wMSk7XG5cblx0bCAqPSAyO1xuXHRzICo9IChsIDw9IDEpID8gbCA6IDIgLSBsO1xuXHRzbWluICo9IGxtaW4gPD0gMSA/IGxtaW4gOiAyIC0gbG1pbjtcblx0Y29uc3QgdiA9IChsICsgcykgLyAyO1xuXHRjb25zdCBzdiA9IGwgPT09IDAgPyAoMiAqIHNtaW4pIC8gKGxtaW4gKyBzbWluKSA6ICgyICogcykgLyAobCArIHMpO1xuXG5cdHJldHVybiBbaCwgc3YgKiAxMDAsIHYgKiAxMDBdO1xufTtcblxuY29udmVydC5oc3YucmdiID0gZnVuY3Rpb24gKGhzdikge1xuXHRjb25zdCBoID0gaHN2WzBdIC8gNjA7XG5cdGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG5cdGxldCB2ID0gaHN2WzJdIC8gMTAwO1xuXHRjb25zdCBoaSA9IE1hdGguZmxvb3IoaCkgJSA2O1xuXG5cdGNvbnN0IGYgPSBoIC0gTWF0aC5mbG9vcihoKTtcblx0Y29uc3QgcCA9IDI1NSAqIHYgKiAoMSAtIHMpO1xuXHRjb25zdCBxID0gMjU1ICogdiAqICgxIC0gKHMgKiBmKSk7XG5cdGNvbnN0IHQgPSAyNTUgKiB2ICogKDEgLSAocyAqICgxIC0gZikpKTtcblx0diAqPSAyNTU7XG5cblx0c3dpdGNoIChoaSkge1xuXHRcdGNhc2UgMDpcblx0XHRcdHJldHVybiBbdiwgdCwgcF07XG5cdFx0Y2FzZSAxOlxuXHRcdFx0cmV0dXJuIFtxLCB2LCBwXTtcblx0XHRjYXNlIDI6XG5cdFx0XHRyZXR1cm4gW3AsIHYsIHRdO1xuXHRcdGNhc2UgMzpcblx0XHRcdHJldHVybiBbcCwgcSwgdl07XG5cdFx0Y2FzZSA0OlxuXHRcdFx0cmV0dXJuIFt0LCBwLCB2XTtcblx0XHRjYXNlIDU6XG5cdFx0XHRyZXR1cm4gW3YsIHAsIHFdO1xuXHR9XG59O1xuXG5jb252ZXJ0Lmhzdi5oc2wgPSBmdW5jdGlvbiAoaHN2KSB7XG5cdGNvbnN0IGggPSBoc3ZbMF07XG5cdGNvbnN0IHMgPSBoc3ZbMV0gLyAxMDA7XG5cdGNvbnN0IHYgPSBoc3ZbMl0gLyAxMDA7XG5cdGNvbnN0IHZtaW4gPSBNYXRoLm1heCh2LCAwLjAxKTtcblx0bGV0IHNsO1xuXHRsZXQgbDtcblxuXHRsID0gKDIgLSBzKSAqIHY7XG5cdGNvbnN0IGxtaW4gPSAoMiAtIHMpICogdm1pbjtcblx0c2wgPSBzICogdm1pbjtcblx0c2wgLz0gKGxtaW4gPD0gMSkgPyBsbWluIDogMiAtIGxtaW47XG5cdHNsID0gc2wgfHwgMDtcblx0bCAvPSAyO1xuXG5cdHJldHVybiBbaCwgc2wgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLWNvbG9yLyNod2ItdG8tcmdiXG5jb252ZXJ0Lmh3Yi5yZ2IgPSBmdW5jdGlvbiAoaHdiKSB7XG5cdGNvbnN0IGggPSBod2JbMF0gLyAzNjA7XG5cdGxldCB3aCA9IGh3YlsxXSAvIDEwMDtcblx0bGV0IGJsID0gaHdiWzJdIC8gMTAwO1xuXHRjb25zdCByYXRpbyA9IHdoICsgYmw7XG5cdGxldCBmO1xuXG5cdC8vIFdoICsgYmwgY2FudCBiZSA+IDFcblx0aWYgKHJhdGlvID4gMSkge1xuXHRcdHdoIC89IHJhdGlvO1xuXHRcdGJsIC89IHJhdGlvO1xuXHR9XG5cblx0Y29uc3QgaSA9IE1hdGguZmxvb3IoNiAqIGgpO1xuXHRjb25zdCB2ID0gMSAtIGJsO1xuXHRmID0gNiAqIGggLSBpO1xuXG5cdGlmICgoaSAmIDB4MDEpICE9PSAwKSB7XG5cdFx0ZiA9IDEgLSBmO1xuXHR9XG5cblx0Y29uc3QgbiA9IHdoICsgZiAqICh2IC0gd2gpOyAvLyBMaW5lYXIgaW50ZXJwb2xhdGlvblxuXG5cdGxldCByO1xuXHRsZXQgZztcblx0bGV0IGI7XG5cdC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzLXBlci1saW5lLG5vLW11bHRpLXNwYWNlcyAqL1xuXHRzd2l0Y2ggKGkpIHtcblx0XHRkZWZhdWx0OlxuXHRcdGNhc2UgNjpcblx0XHRjYXNlIDA6IHIgPSB2OyAgZyA9IG47ICBiID0gd2g7IGJyZWFrO1xuXHRcdGNhc2UgMTogciA9IG47ICBnID0gdjsgIGIgPSB3aDsgYnJlYWs7XG5cdFx0Y2FzZSAyOiByID0gd2g7IGcgPSB2OyAgYiA9IG47IGJyZWFrO1xuXHRcdGNhc2UgMzogciA9IHdoOyBnID0gbjsgIGIgPSB2OyBicmVhaztcblx0XHRjYXNlIDQ6IHIgPSBuOyAgZyA9IHdoOyBiID0gdjsgYnJlYWs7XG5cdFx0Y2FzZSA1OiByID0gdjsgIGcgPSB3aDsgYiA9IG47IGJyZWFrO1xuXHR9XG5cdC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMtcGVyLWxpbmUsbm8tbXVsdGktc3BhY2VzICovXG5cblx0cmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbn07XG5cbmNvbnZlcnQuY215ay5yZ2IgPSBmdW5jdGlvbiAoY215aykge1xuXHRjb25zdCBjID0gY215a1swXSAvIDEwMDtcblx0Y29uc3QgbSA9IGNteWtbMV0gLyAxMDA7XG5cdGNvbnN0IHkgPSBjbXlrWzJdIC8gMTAwO1xuXHRjb25zdCBrID0gY215a1szXSAvIDEwMDtcblxuXHRjb25zdCByID0gMSAtIE1hdGgubWluKDEsIGMgKiAoMSAtIGspICsgayk7XG5cdGNvbnN0IGcgPSAxIC0gTWF0aC5taW4oMSwgbSAqICgxIC0gaykgKyBrKTtcblx0Y29uc3QgYiA9IDEgLSBNYXRoLm1pbigxLCB5ICogKDEgLSBrKSArIGspO1xuXG5cdHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG59O1xuXG5jb252ZXJ0Lnh5ei5yZ2IgPSBmdW5jdGlvbiAoeHl6KSB7XG5cdGNvbnN0IHggPSB4eXpbMF0gLyAxMDA7XG5cdGNvbnN0IHkgPSB4eXpbMV0gLyAxMDA7XG5cdGNvbnN0IHogPSB4eXpbMl0gLyAxMDA7XG5cdGxldCByO1xuXHRsZXQgZztcblx0bGV0IGI7XG5cblx0ciA9ICh4ICogMy4yNDA2KSArICh5ICogLTEuNTM3MikgKyAoeiAqIC0wLjQ5ODYpO1xuXHRnID0gKHggKiAtMC45Njg5KSArICh5ICogMS44NzU4KSArICh6ICogMC4wNDE1KTtcblx0YiA9ICh4ICogMC4wNTU3KSArICh5ICogLTAuMjA0MCkgKyAoeiAqIDEuMDU3MCk7XG5cblx0Ly8gQXNzdW1lIHNSR0Jcblx0ciA9IHIgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAociAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiByICogMTIuOTI7XG5cblx0ZyA9IGcgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAoZyAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiBnICogMTIuOTI7XG5cblx0YiA9IGIgPiAwLjAwMzEzMDhcblx0XHQ/ICgoMS4wNTUgKiAoYiAqKiAoMS4wIC8gMi40KSkpIC0gMC4wNTUpXG5cdFx0OiBiICogMTIuOTI7XG5cblx0ciA9IE1hdGgubWluKE1hdGgubWF4KDAsIHIpLCAxKTtcblx0ZyA9IE1hdGgubWluKE1hdGgubWF4KDAsIGcpLCAxKTtcblx0YiA9IE1hdGgubWluKE1hdGgubWF4KDAsIGIpLCAxKTtcblxuXHRyZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xufTtcblxuY29udmVydC54eXoubGFiID0gZnVuY3Rpb24gKHh5eikge1xuXHRsZXQgeCA9IHh5elswXTtcblx0bGV0IHkgPSB4eXpbMV07XG5cdGxldCB6ID0geHl6WzJdO1xuXG5cdHggLz0gOTUuMDQ3O1xuXHR5IC89IDEwMDtcblx0eiAvPSAxMDguODgzO1xuXG5cdHggPSB4ID4gMC4wMDg4NTYgPyAoeCAqKiAoMSAvIDMpKSA6ICg3Ljc4NyAqIHgpICsgKDE2IC8gMTE2KTtcblx0eSA9IHkgPiAwLjAwODg1NiA/ICh5ICoqICgxIC8gMykpIDogKDcuNzg3ICogeSkgKyAoMTYgLyAxMTYpO1xuXHR6ID0geiA+IDAuMDA4ODU2ID8gKHogKiogKDEgLyAzKSkgOiAoNy43ODcgKiB6KSArICgxNiAvIDExNik7XG5cblx0Y29uc3QgbCA9ICgxMTYgKiB5KSAtIDE2O1xuXHRjb25zdCBhID0gNTAwICogKHggLSB5KTtcblx0Y29uc3QgYiA9IDIwMCAqICh5IC0geik7XG5cblx0cmV0dXJuIFtsLCBhLCBiXTtcbn07XG5cbmNvbnZlcnQubGFiLnh5eiA9IGZ1bmN0aW9uIChsYWIpIHtcblx0Y29uc3QgbCA9IGxhYlswXTtcblx0Y29uc3QgYSA9IGxhYlsxXTtcblx0Y29uc3QgYiA9IGxhYlsyXTtcblx0bGV0IHg7XG5cdGxldCB5O1xuXHRsZXQgejtcblxuXHR5ID0gKGwgKyAxNikgLyAxMTY7XG5cdHggPSBhIC8gNTAwICsgeTtcblx0eiA9IHkgLSBiIC8gMjAwO1xuXG5cdGNvbnN0IHkyID0geSAqKiAzO1xuXHRjb25zdCB4MiA9IHggKiogMztcblx0Y29uc3QgejIgPSB6ICoqIDM7XG5cdHkgPSB5MiA+IDAuMDA4ODU2ID8geTIgOiAoeSAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuXHR4ID0geDIgPiAwLjAwODg1NiA/IHgyIDogKHggLSAxNiAvIDExNikgLyA3Ljc4Nztcblx0eiA9IHoyID4gMC4wMDg4NTYgPyB6MiA6ICh6IC0gMTYgLyAxMTYpIC8gNy43ODc7XG5cblx0eCAqPSA5NS4wNDc7XG5cdHkgKj0gMTAwO1xuXHR6ICo9IDEwOC44ODM7XG5cblx0cmV0dXJuIFt4LCB5LCB6XTtcbn07XG5cbmNvbnZlcnQubGFiLmxjaCA9IGZ1bmN0aW9uIChsYWIpIHtcblx0Y29uc3QgbCA9IGxhYlswXTtcblx0Y29uc3QgYSA9IGxhYlsxXTtcblx0Y29uc3QgYiA9IGxhYlsyXTtcblx0bGV0IGg7XG5cblx0Y29uc3QgaHIgPSBNYXRoLmF0YW4yKGIsIGEpO1xuXHRoID0gaHIgKiAzNjAgLyAyIC8gTWF0aC5QSTtcblxuXHRpZiAoaCA8IDApIHtcblx0XHRoICs9IDM2MDtcblx0fVxuXG5cdGNvbnN0IGMgPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XG5cblx0cmV0dXJuIFtsLCBjLCBoXTtcbn07XG5cbmNvbnZlcnQubGNoLmxhYiA9IGZ1bmN0aW9uIChsY2gpIHtcblx0Y29uc3QgbCA9IGxjaFswXTtcblx0Y29uc3QgYyA9IGxjaFsxXTtcblx0Y29uc3QgaCA9IGxjaFsyXTtcblxuXHRjb25zdCBociA9IGggLyAzNjAgKiAyICogTWF0aC5QSTtcblx0Y29uc3QgYSA9IGMgKiBNYXRoLmNvcyhocik7XG5cdGNvbnN0IGIgPSBjICogTWF0aC5zaW4oaHIpO1xuXG5cdHJldHVybiBbbCwgYSwgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5hbnNpMTYgPSBmdW5jdGlvbiAoYXJncywgc2F0dXJhdGlvbiA9IG51bGwpIHtcblx0Y29uc3QgW3IsIGcsIGJdID0gYXJncztcblx0bGV0IHZhbHVlID0gc2F0dXJhdGlvbiA9PT0gbnVsbCA/IGNvbnZlcnQucmdiLmhzdihhcmdzKVsyXSA6IHNhdHVyYXRpb247IC8vIEhzdiAtPiBhbnNpMTYgb3B0aW1pemF0aW9uXG5cblx0dmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gNTApO1xuXG5cdGlmICh2YWx1ZSA9PT0gMCkge1xuXHRcdHJldHVybiAzMDtcblx0fVxuXG5cdGxldCBhbnNpID0gMzBcblx0XHQrICgoTWF0aC5yb3VuZChiIC8gMjU1KSA8PCAyKVxuXHRcdHwgKE1hdGgucm91bmQoZyAvIDI1NSkgPDwgMSlcblx0XHR8IE1hdGgucm91bmQociAvIDI1NSkpO1xuXG5cdGlmICh2YWx1ZSA9PT0gMikge1xuXHRcdGFuc2kgKz0gNjA7XG5cdH1cblxuXHRyZXR1cm4gYW5zaTtcbn07XG5cbmNvbnZlcnQuaHN2LmFuc2kxNiA9IGZ1bmN0aW9uIChhcmdzKSB7XG5cdC8vIE9wdGltaXphdGlvbiBoZXJlOyB3ZSBhbHJlYWR5IGtub3cgdGhlIHZhbHVlIGFuZCBkb24ndCBuZWVkIHRvIGdldFxuXHQvLyBpdCBjb252ZXJ0ZWQgZm9yIHVzLlxuXHRyZXR1cm4gY29udmVydC5yZ2IuYW5zaTE2KGNvbnZlcnQuaHN2LnJnYihhcmdzKSwgYXJnc1syXSk7XG59O1xuXG5jb252ZXJ0LnJnYi5hbnNpMjU2ID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0Y29uc3QgciA9IGFyZ3NbMF07XG5cdGNvbnN0IGcgPSBhcmdzWzFdO1xuXHRjb25zdCBiID0gYXJnc1syXTtcblxuXHQvLyBXZSB1c2UgdGhlIGV4dGVuZGVkIGdyZXlzY2FsZSBwYWxldHRlIGhlcmUsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZlxuXHQvLyBibGFjayBhbmQgd2hpdGUuIG5vcm1hbCBwYWxldHRlIG9ubHkgaGFzIDQgZ3JleXNjYWxlIHNoYWRlcy5cblx0aWYgKHIgPT09IGcgJiYgZyA9PT0gYikge1xuXHRcdGlmIChyIDwgOCkge1xuXHRcdFx0cmV0dXJuIDE2O1xuXHRcdH1cblxuXHRcdGlmIChyID4gMjQ4KSB7XG5cdFx0XHRyZXR1cm4gMjMxO1xuXHRcdH1cblxuXHRcdHJldHVybiBNYXRoLnJvdW5kKCgociAtIDgpIC8gMjQ3KSAqIDI0KSArIDIzMjtcblx0fVxuXG5cdGNvbnN0IGFuc2kgPSAxNlxuXHRcdCsgKDM2ICogTWF0aC5yb3VuZChyIC8gMjU1ICogNSkpXG5cdFx0KyAoNiAqIE1hdGgucm91bmQoZyAvIDI1NSAqIDUpKVxuXHRcdCsgTWF0aC5yb3VuZChiIC8gMjU1ICogNSk7XG5cblx0cmV0dXJuIGFuc2k7XG59O1xuXG5jb252ZXJ0LmFuc2kxNi5yZ2IgPSBmdW5jdGlvbiAoYXJncykge1xuXHRsZXQgY29sb3IgPSBhcmdzICUgMTA7XG5cblx0Ly8gSGFuZGxlIGdyZXlzY2FsZVxuXHRpZiAoY29sb3IgPT09IDAgfHwgY29sb3IgPT09IDcpIHtcblx0XHRpZiAoYXJncyA+IDUwKSB7XG5cdFx0XHRjb2xvciArPSAzLjU7XG5cdFx0fVxuXG5cdFx0Y29sb3IgPSBjb2xvciAvIDEwLjUgKiAyNTU7XG5cblx0XHRyZXR1cm4gW2NvbG9yLCBjb2xvciwgY29sb3JdO1xuXHR9XG5cblx0Y29uc3QgbXVsdCA9ICh+fihhcmdzID4gNTApICsgMSkgKiAwLjU7XG5cdGNvbnN0IHIgPSAoKGNvbG9yICYgMSkgKiBtdWx0KSAqIDI1NTtcblx0Y29uc3QgZyA9ICgoKGNvbG9yID4+IDEpICYgMSkgKiBtdWx0KSAqIDI1NTtcblx0Y29uc3QgYiA9ICgoKGNvbG9yID4+IDIpICYgMSkgKiBtdWx0KSAqIDI1NTtcblxuXHRyZXR1cm4gW3IsIGcsIGJdO1xufTtcblxuY29udmVydC5hbnNpMjU2LnJnYiA9IGZ1bmN0aW9uIChhcmdzKSB7XG5cdC8vIEhhbmRsZSBncmV5c2NhbGVcblx0aWYgKGFyZ3MgPj0gMjMyKSB7XG5cdFx0Y29uc3QgYyA9IChhcmdzIC0gMjMyKSAqIDEwICsgODtcblx0XHRyZXR1cm4gW2MsIGMsIGNdO1xuXHR9XG5cblx0YXJncyAtPSAxNjtcblxuXHRsZXQgcmVtO1xuXHRjb25zdCByID0gTWF0aC5mbG9vcihhcmdzIC8gMzYpIC8gNSAqIDI1NTtcblx0Y29uc3QgZyA9IE1hdGguZmxvb3IoKHJlbSA9IGFyZ3MgJSAzNikgLyA2KSAvIDUgKiAyNTU7XG5cdGNvbnN0IGIgPSAocmVtICUgNikgLyA1ICogMjU1O1xuXG5cdHJldHVybiBbciwgZywgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5oZXggPSBmdW5jdGlvbiAoYXJncykge1xuXHRjb25zdCBpbnRlZ2VyID0gKChNYXRoLnJvdW5kKGFyZ3NbMF0pICYgMHhGRikgPDwgMTYpXG5cdFx0KyAoKE1hdGgucm91bmQoYXJnc1sxXSkgJiAweEZGKSA8PCA4KVxuXHRcdCsgKE1hdGgucm91bmQoYXJnc1syXSkgJiAweEZGKTtcblxuXHRjb25zdCBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRyZXR1cm4gJzAwMDAwMCcuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufTtcblxuY29udmVydC5oZXgucmdiID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0Y29uc3QgbWF0Y2ggPSBhcmdzLnRvU3RyaW5nKDE2KS5tYXRjaCgvW2EtZjAtOV17Nn18W2EtZjAtOV17M30vaSk7XG5cdGlmICghbWF0Y2gpIHtcblx0XHRyZXR1cm4gWzAsIDAsIDBdO1xuXHR9XG5cblx0bGV0IGNvbG9yU3RyaW5nID0gbWF0Y2hbMF07XG5cblx0aWYgKG1hdGNoWzBdLmxlbmd0aCA9PT0gMykge1xuXHRcdGNvbG9yU3RyaW5nID0gY29sb3JTdHJpbmcuc3BsaXQoJycpLm1hcChjaGFyID0+IHtcblx0XHRcdHJldHVybiBjaGFyICsgY2hhcjtcblx0XHR9KS5qb2luKCcnKTtcblx0fVxuXG5cdGNvbnN0IGludGVnZXIgPSBwYXJzZUludChjb2xvclN0cmluZywgMTYpO1xuXHRjb25zdCByID0gKGludGVnZXIgPj4gMTYpICYgMHhGRjtcblx0Y29uc3QgZyA9IChpbnRlZ2VyID4+IDgpICYgMHhGRjtcblx0Y29uc3QgYiA9IGludGVnZXIgJiAweEZGO1xuXG5cdHJldHVybiBbciwgZywgYl07XG59O1xuXG5jb252ZXJ0LnJnYi5oY2cgPSBmdW5jdGlvbiAocmdiKSB7XG5cdGNvbnN0IHIgPSByZ2JbMF0gLyAyNTU7XG5cdGNvbnN0IGcgPSByZ2JbMV0gLyAyNTU7XG5cdGNvbnN0IGIgPSByZ2JbMl0gLyAyNTU7XG5cdGNvbnN0IG1heCA9IE1hdGgubWF4KE1hdGgubWF4KHIsIGcpLCBiKTtcblx0Y29uc3QgbWluID0gTWF0aC5taW4oTWF0aC5taW4ociwgZyksIGIpO1xuXHRjb25zdCBjaHJvbWEgPSAobWF4IC0gbWluKTtcblx0bGV0IGdyYXlzY2FsZTtcblx0bGV0IGh1ZTtcblxuXHRpZiAoY2hyb21hIDwgMSkge1xuXHRcdGdyYXlzY2FsZSA9IG1pbiAvICgxIC0gY2hyb21hKTtcblx0fSBlbHNlIHtcblx0XHRncmF5c2NhbGUgPSAwO1xuXHR9XG5cblx0aWYgKGNocm9tYSA8PSAwKSB7XG5cdFx0aHVlID0gMDtcblx0fSBlbHNlXG5cdGlmIChtYXggPT09IHIpIHtcblx0XHRodWUgPSAoKGcgLSBiKSAvIGNocm9tYSkgJSA2O1xuXHR9IGVsc2Vcblx0aWYgKG1heCA9PT0gZykge1xuXHRcdGh1ZSA9IDIgKyAoYiAtIHIpIC8gY2hyb21hO1xuXHR9IGVsc2Uge1xuXHRcdGh1ZSA9IDQgKyAociAtIGcpIC8gY2hyb21hO1xuXHR9XG5cblx0aHVlIC89IDY7XG5cdGh1ZSAlPSAxO1xuXG5cdHJldHVybiBbaHVlICogMzYwLCBjaHJvbWEgKiAxMDAsIGdyYXlzY2FsZSAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmhzbC5oY2cgPSBmdW5jdGlvbiAoaHNsKSB7XG5cdGNvbnN0IHMgPSBoc2xbMV0gLyAxMDA7XG5cdGNvbnN0IGwgPSBoc2xbMl0gLyAxMDA7XG5cblx0Y29uc3QgYyA9IGwgPCAwLjUgPyAoMi4wICogcyAqIGwpIDogKDIuMCAqIHMgKiAoMS4wIC0gbCkpO1xuXG5cdGxldCBmID0gMDtcblx0aWYgKGMgPCAxLjApIHtcblx0XHRmID0gKGwgLSAwLjUgKiBjKSAvICgxLjAgLSBjKTtcblx0fVxuXG5cdHJldHVybiBbaHNsWzBdLCBjICogMTAwLCBmICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaHN2LmhjZyA9IGZ1bmN0aW9uIChoc3YpIHtcblx0Y29uc3QgcyA9IGhzdlsxXSAvIDEwMDtcblx0Y29uc3QgdiA9IGhzdlsyXSAvIDEwMDtcblxuXHRjb25zdCBjID0gcyAqIHY7XG5cdGxldCBmID0gMDtcblxuXHRpZiAoYyA8IDEuMCkge1xuXHRcdGYgPSAodiAtIGMpIC8gKDEgLSBjKTtcblx0fVxuXG5cdHJldHVybiBbaHN2WzBdLCBjICogMTAwLCBmICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaGNnLnJnYiA9IGZ1bmN0aW9uIChoY2cpIHtcblx0Y29uc3QgaCA9IGhjZ1swXSAvIDM2MDtcblx0Y29uc3QgYyA9IGhjZ1sxXSAvIDEwMDtcblx0Y29uc3QgZyA9IGhjZ1syXSAvIDEwMDtcblxuXHRpZiAoYyA9PT0gMC4wKSB7XG5cdFx0cmV0dXJuIFtnICogMjU1LCBnICogMjU1LCBnICogMjU1XTtcblx0fVxuXG5cdGNvbnN0IHB1cmUgPSBbMCwgMCwgMF07XG5cdGNvbnN0IGhpID0gKGggJSAxKSAqIDY7XG5cdGNvbnN0IHYgPSBoaSAlIDE7XG5cdGNvbnN0IHcgPSAxIC0gdjtcblx0bGV0IG1nID0gMDtcblxuXHQvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cy1wZXItbGluZSAqL1xuXHRzd2l0Y2ggKE1hdGguZmxvb3IoaGkpKSB7XG5cdFx0Y2FzZSAwOlxuXHRcdFx0cHVyZVswXSA9IDE7IHB1cmVbMV0gPSB2OyBwdXJlWzJdID0gMDsgYnJlYWs7XG5cdFx0Y2FzZSAxOlxuXHRcdFx0cHVyZVswXSA9IHc7IHB1cmVbMV0gPSAxOyBwdXJlWzJdID0gMDsgYnJlYWs7XG5cdFx0Y2FzZSAyOlxuXHRcdFx0cHVyZVswXSA9IDA7IHB1cmVbMV0gPSAxOyBwdXJlWzJdID0gdjsgYnJlYWs7XG5cdFx0Y2FzZSAzOlxuXHRcdFx0cHVyZVswXSA9IDA7IHB1cmVbMV0gPSB3OyBwdXJlWzJdID0gMTsgYnJlYWs7XG5cdFx0Y2FzZSA0OlxuXHRcdFx0cHVyZVswXSA9IHY7IHB1cmVbMV0gPSAwOyBwdXJlWzJdID0gMTsgYnJlYWs7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHB1cmVbMF0gPSAxOyBwdXJlWzFdID0gMDsgcHVyZVsyXSA9IHc7XG5cdH1cblx0LyogZXNsaW50LWVuYWJsZSBtYXgtc3RhdGVtZW50cy1wZXItbGluZSAqL1xuXG5cdG1nID0gKDEuMCAtIGMpICogZztcblxuXHRyZXR1cm4gW1xuXHRcdChjICogcHVyZVswXSArIG1nKSAqIDI1NSxcblx0XHQoYyAqIHB1cmVbMV0gKyBtZykgKiAyNTUsXG5cdFx0KGMgKiBwdXJlWzJdICsgbWcpICogMjU1XG5cdF07XG59O1xuXG5jb252ZXJ0LmhjZy5oc3YgPSBmdW5jdGlvbiAoaGNnKSB7XG5cdGNvbnN0IGMgPSBoY2dbMV0gLyAxMDA7XG5cdGNvbnN0IGcgPSBoY2dbMl0gLyAxMDA7XG5cblx0Y29uc3QgdiA9IGMgKyBnICogKDEuMCAtIGMpO1xuXHRsZXQgZiA9IDA7XG5cblx0aWYgKHYgPiAwLjApIHtcblx0XHRmID0gYyAvIHY7XG5cdH1cblxuXHRyZXR1cm4gW2hjZ1swXSwgZiAqIDEwMCwgdiAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmhjZy5oc2wgPSBmdW5jdGlvbiAoaGNnKSB7XG5cdGNvbnN0IGMgPSBoY2dbMV0gLyAxMDA7XG5cdGNvbnN0IGcgPSBoY2dbMl0gLyAxMDA7XG5cblx0Y29uc3QgbCA9IGcgKiAoMS4wIC0gYykgKyAwLjUgKiBjO1xuXHRsZXQgcyA9IDA7XG5cblx0aWYgKGwgPiAwLjAgJiYgbCA8IDAuNSkge1xuXHRcdHMgPSBjIC8gKDIgKiBsKTtcblx0fSBlbHNlXG5cdGlmIChsID49IDAuNSAmJiBsIDwgMS4wKSB7XG5cdFx0cyA9IGMgLyAoMiAqICgxIC0gbCkpO1xuXHR9XG5cblx0cmV0dXJuIFtoY2dbMF0sIHMgKiAxMDAsIGwgKiAxMDBdO1xufTtcblxuY29udmVydC5oY2cuaHdiID0gZnVuY3Rpb24gKGhjZykge1xuXHRjb25zdCBjID0gaGNnWzFdIC8gMTAwO1xuXHRjb25zdCBnID0gaGNnWzJdIC8gMTAwO1xuXHRjb25zdCB2ID0gYyArIGcgKiAoMS4wIC0gYyk7XG5cdHJldHVybiBbaGNnWzBdLCAodiAtIGMpICogMTAwLCAoMSAtIHYpICogMTAwXTtcbn07XG5cbmNvbnZlcnQuaHdiLmhjZyA9IGZ1bmN0aW9uIChod2IpIHtcblx0Y29uc3QgdyA9IGh3YlsxXSAvIDEwMDtcblx0Y29uc3QgYiA9IGh3YlsyXSAvIDEwMDtcblx0Y29uc3QgdiA9IDEgLSBiO1xuXHRjb25zdCBjID0gdiAtIHc7XG5cdGxldCBnID0gMDtcblxuXHRpZiAoYyA8IDEpIHtcblx0XHRnID0gKHYgLSBjKSAvICgxIC0gYyk7XG5cdH1cblxuXHRyZXR1cm4gW2h3YlswXSwgYyAqIDEwMCwgZyAqIDEwMF07XG59O1xuXG5jb252ZXJ0LmFwcGxlLnJnYiA9IGZ1bmN0aW9uIChhcHBsZSkge1xuXHRyZXR1cm4gWyhhcHBsZVswXSAvIDY1NTM1KSAqIDI1NSwgKGFwcGxlWzFdIC8gNjU1MzUpICogMjU1LCAoYXBwbGVbMl0gLyA2NTUzNSkgKiAyNTVdO1xufTtcblxuY29udmVydC5yZ2IuYXBwbGUgPSBmdW5jdGlvbiAocmdiKSB7XG5cdHJldHVybiBbKHJnYlswXSAvIDI1NSkgKiA2NTUzNSwgKHJnYlsxXSAvIDI1NSkgKiA2NTUzNSwgKHJnYlsyXSAvIDI1NSkgKiA2NTUzNV07XG59O1xuXG5jb252ZXJ0LmdyYXkucmdiID0gZnVuY3Rpb24gKGFyZ3MpIHtcblx0cmV0dXJuIFthcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1XTtcbn07XG5cbmNvbnZlcnQuZ3JheS5oc2wgPSBmdW5jdGlvbiAoYXJncykge1xuXHRyZXR1cm4gWzAsIDAsIGFyZ3NbMF1dO1xufTtcblxuY29udmVydC5ncmF5LmhzdiA9IGNvbnZlcnQuZ3JheS5oc2w7XG5cbmNvbnZlcnQuZ3JheS5od2IgPSBmdW5jdGlvbiAoZ3JheSkge1xuXHRyZXR1cm4gWzAsIDEwMCwgZ3JheVswXV07XG59O1xuXG5jb252ZXJ0LmdyYXkuY215ayA9IGZ1bmN0aW9uIChncmF5KSB7XG5cdHJldHVybiBbMCwgMCwgMCwgZ3JheVswXV07XG59O1xuXG5jb252ZXJ0LmdyYXkubGFiID0gZnVuY3Rpb24gKGdyYXkpIHtcblx0cmV0dXJuIFtncmF5WzBdLCAwLCAwXTtcbn07XG5cbmNvbnZlcnQuZ3JheS5oZXggPSBmdW5jdGlvbiAoZ3JheSkge1xuXHRjb25zdCB2YWwgPSBNYXRoLnJvdW5kKGdyYXlbMF0gLyAxMDAgKiAyNTUpICYgMHhGRjtcblx0Y29uc3QgaW50ZWdlciA9ICh2YWwgPDwgMTYpICsgKHZhbCA8PCA4KSArIHZhbDtcblxuXHRjb25zdCBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuXHRyZXR1cm4gJzAwMDAwMCcuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufTtcblxuY29udmVydC5yZ2IuZ3JheSA9IGZ1bmN0aW9uIChyZ2IpIHtcblx0Y29uc3QgdmFsID0gKHJnYlswXSArIHJnYlsxXSArIHJnYlsyXSkgLyAzO1xuXHRyZXR1cm4gW3ZhbCAvIDI1NSAqIDEwMF07XG59O1xuIiwgImNvbnN0IGNvbnZlcnNpb25zID0gcmVxdWlyZSgnLi9jb252ZXJzaW9ucycpO1xuXG4vKlxuXHRUaGlzIGZ1bmN0aW9uIHJvdXRlcyBhIG1vZGVsIHRvIGFsbCBvdGhlciBtb2RlbHMuXG5cblx0YWxsIGZ1bmN0aW9ucyB0aGF0IGFyZSByb3V0ZWQgaGF2ZSBhIHByb3BlcnR5IGAuY29udmVyc2lvbmAgYXR0YWNoZWRcblx0dG8gdGhlIHJldHVybmVkIHN5bnRoZXRpYyBmdW5jdGlvbi4gVGhpcyBwcm9wZXJ0eSBpcyBhbiBhcnJheVxuXHRvZiBzdHJpbmdzLCBlYWNoIHdpdGggdGhlIHN0ZXBzIGluIGJldHdlZW4gdGhlICdmcm9tJyBhbmQgJ3RvJ1xuXHRjb2xvciBtb2RlbHMgKGluY2x1c2l2ZSkuXG5cblx0Y29udmVyc2lvbnMgdGhhdCBhcmUgbm90IHBvc3NpYmxlIHNpbXBseSBhcmUgbm90IGluY2x1ZGVkLlxuKi9cblxuZnVuY3Rpb24gYnVpbGRHcmFwaCgpIHtcblx0Y29uc3QgZ3JhcGggPSB7fTtcblx0Ly8gaHR0cHM6Ly9qc3BlcmYuY29tL29iamVjdC1rZXlzLXZzLWZvci1pbi13aXRoLWNsb3N1cmUvM1xuXHRjb25zdCBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG5cblx0Zm9yIChsZXQgbGVuID0gbW9kZWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdGdyYXBoW21vZGVsc1tpXV0gPSB7XG5cdFx0XHQvLyBodHRwOi8vanNwZXJmLmNvbS8xLXZzLWluZmluaXR5XG5cdFx0XHQvLyBtaWNyby1vcHQsIGJ1dCB0aGlzIGlzIHNpbXBsZS5cblx0XHRcdGRpc3RhbmNlOiAtMSxcblx0XHRcdHBhcmVudDogbnVsbFxuXHRcdH07XG5cdH1cblxuXHRyZXR1cm4gZ3JhcGg7XG59XG5cbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JyZWFkdGgtZmlyc3Rfc2VhcmNoXG5mdW5jdGlvbiBkZXJpdmVCRlMoZnJvbU1vZGVsKSB7XG5cdGNvbnN0IGdyYXBoID0gYnVpbGRHcmFwaCgpO1xuXHRjb25zdCBxdWV1ZSA9IFtmcm9tTW9kZWxdOyAvLyBVbnNoaWZ0IC0+IHF1ZXVlIC0+IHBvcFxuXG5cdGdyYXBoW2Zyb21Nb2RlbF0uZGlzdGFuY2UgPSAwO1xuXG5cdHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcblx0XHRjb25zdCBjdXJyZW50ID0gcXVldWUucG9wKCk7XG5cdFx0Y29uc3QgYWRqYWNlbnRzID0gT2JqZWN0LmtleXMoY29udmVyc2lvbnNbY3VycmVudF0pO1xuXG5cdFx0Zm9yIChsZXQgbGVuID0gYWRqYWNlbnRzLmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0Y29uc3QgYWRqYWNlbnQgPSBhZGphY2VudHNbaV07XG5cdFx0XHRjb25zdCBub2RlID0gZ3JhcGhbYWRqYWNlbnRdO1xuXG5cdFx0XHRpZiAobm9kZS5kaXN0YW5jZSA9PT0gLTEpIHtcblx0XHRcdFx0bm9kZS5kaXN0YW5jZSA9IGdyYXBoW2N1cnJlbnRdLmRpc3RhbmNlICsgMTtcblx0XHRcdFx0bm9kZS5wYXJlbnQgPSBjdXJyZW50O1xuXHRcdFx0XHRxdWV1ZS51bnNoaWZ0KGFkamFjZW50KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZ3JhcGg7XG59XG5cbmZ1bmN0aW9uIGxpbmsoZnJvbSwgdG8pIHtcblx0cmV0dXJuIGZ1bmN0aW9uIChhcmdzKSB7XG5cdFx0cmV0dXJuIHRvKGZyb20oYXJncykpO1xuXHR9O1xufVxuXG5mdW5jdGlvbiB3cmFwQ29udmVyc2lvbih0b01vZGVsLCBncmFwaCkge1xuXHRjb25zdCBwYXRoID0gW2dyYXBoW3RvTW9kZWxdLnBhcmVudCwgdG9Nb2RlbF07XG5cdGxldCBmbiA9IGNvbnZlcnNpb25zW2dyYXBoW3RvTW9kZWxdLnBhcmVudF1bdG9Nb2RlbF07XG5cblx0bGV0IGN1ciA9IGdyYXBoW3RvTW9kZWxdLnBhcmVudDtcblx0d2hpbGUgKGdyYXBoW2N1cl0ucGFyZW50KSB7XG5cdFx0cGF0aC51bnNoaWZ0KGdyYXBoW2N1cl0ucGFyZW50KTtcblx0XHRmbiA9IGxpbmsoY29udmVyc2lvbnNbZ3JhcGhbY3VyXS5wYXJlbnRdW2N1cl0sIGZuKTtcblx0XHRjdXIgPSBncmFwaFtjdXJdLnBhcmVudDtcblx0fVxuXG5cdGZuLmNvbnZlcnNpb24gPSBwYXRoO1xuXHRyZXR1cm4gZm47XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZyb21Nb2RlbCkge1xuXHRjb25zdCBncmFwaCA9IGRlcml2ZUJGUyhmcm9tTW9kZWwpO1xuXHRjb25zdCBjb252ZXJzaW9uID0ge307XG5cblx0Y29uc3QgbW9kZWxzID0gT2JqZWN0LmtleXMoZ3JhcGgpO1xuXHRmb3IgKGxldCBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0Y29uc3QgdG9Nb2RlbCA9IG1vZGVsc1tpXTtcblx0XHRjb25zdCBub2RlID0gZ3JhcGhbdG9Nb2RlbF07XG5cblx0XHRpZiAobm9kZS5wYXJlbnQgPT09IG51bGwpIHtcblx0XHRcdC8vIE5vIHBvc3NpYmxlIGNvbnZlcnNpb24sIG9yIHRoaXMgbm9kZSBpcyB0aGUgc291cmNlIG1vZGVsLlxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Y29udmVyc2lvblt0b01vZGVsXSA9IHdyYXBDb252ZXJzaW9uKHRvTW9kZWwsIGdyYXBoKTtcblx0fVxuXG5cdHJldHVybiBjb252ZXJzaW9uO1xufTtcblxuIiwgImNvbnN0IGNvbnZlcnNpb25zID0gcmVxdWlyZSgnLi9jb252ZXJzaW9ucycpO1xuY29uc3Qgcm91dGUgPSByZXF1aXJlKCcuL3JvdXRlJyk7XG5cbmNvbnN0IGNvbnZlcnQgPSB7fTtcblxuY29uc3QgbW9kZWxzID0gT2JqZWN0LmtleXMoY29udmVyc2lvbnMpO1xuXG5mdW5jdGlvbiB3cmFwUmF3KGZuKSB7XG5cdGNvbnN0IHdyYXBwZWRGbiA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG5cdFx0Y29uc3QgYXJnMCA9IGFyZ3NbMF07XG5cdFx0aWYgKGFyZzAgPT09IHVuZGVmaW5lZCB8fCBhcmcwID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gYXJnMDtcblx0XHR9XG5cblx0XHRpZiAoYXJnMC5sZW5ndGggPiAxKSB7XG5cdFx0XHRhcmdzID0gYXJnMDtcblx0XHR9XG5cblx0XHRyZXR1cm4gZm4oYXJncyk7XG5cdH07XG5cblx0Ly8gUHJlc2VydmUgLmNvbnZlcnNpb24gcHJvcGVydHkgaWYgdGhlcmUgaXMgb25lXG5cdGlmICgnY29udmVyc2lvbicgaW4gZm4pIHtcblx0XHR3cmFwcGVkRm4uY29udmVyc2lvbiA9IGZuLmNvbnZlcnNpb247XG5cdH1cblxuXHRyZXR1cm4gd3JhcHBlZEZuO1xufVxuXG5mdW5jdGlvbiB3cmFwUm91bmRlZChmbikge1xuXHRjb25zdCB3cmFwcGVkRm4gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuXHRcdGNvbnN0IGFyZzAgPSBhcmdzWzBdO1xuXG5cdFx0aWYgKGFyZzAgPT09IHVuZGVmaW5lZCB8fCBhcmcwID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gYXJnMDtcblx0XHR9XG5cblx0XHRpZiAoYXJnMC5sZW5ndGggPiAxKSB7XG5cdFx0XHRhcmdzID0gYXJnMDtcblx0XHR9XG5cblx0XHRjb25zdCByZXN1bHQgPSBmbihhcmdzKTtcblxuXHRcdC8vIFdlJ3JlIGFzc3VtaW5nIHRoZSByZXN1bHQgaXMgYW4gYXJyYXkgaGVyZS5cblx0XHQvLyBzZWUgbm90aWNlIGluIGNvbnZlcnNpb25zLmpzOyBkb24ndCB1c2UgYm94IHR5cGVzXG5cdFx0Ly8gaW4gY29udmVyc2lvbiBmdW5jdGlvbnMuXG5cdFx0aWYgKHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRmb3IgKGxldCBsZW4gPSByZXN1bHQubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRcdHJlc3VsdFtpXSA9IE1hdGgucm91bmQocmVzdWx0W2ldKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xuXG5cdC8vIFByZXNlcnZlIC5jb252ZXJzaW9uIHByb3BlcnR5IGlmIHRoZXJlIGlzIG9uZVxuXHRpZiAoJ2NvbnZlcnNpb24nIGluIGZuKSB7XG5cdFx0d3JhcHBlZEZuLmNvbnZlcnNpb24gPSBmbi5jb252ZXJzaW9uO1xuXHR9XG5cblx0cmV0dXJuIHdyYXBwZWRGbjtcbn1cblxubW9kZWxzLmZvckVhY2goZnJvbU1vZGVsID0+IHtcblx0Y29udmVydFtmcm9tTW9kZWxdID0ge307XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgJ2NoYW5uZWxzJywge3ZhbHVlOiBjb252ZXJzaW9uc1tmcm9tTW9kZWxdLmNoYW5uZWxzfSk7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W2Zyb21Nb2RlbF0sICdsYWJlbHMnLCB7dmFsdWU6IGNvbnZlcnNpb25zW2Zyb21Nb2RlbF0ubGFiZWxzfSk7XG5cblx0Y29uc3Qgcm91dGVzID0gcm91dGUoZnJvbU1vZGVsKTtcblx0Y29uc3Qgcm91dGVNb2RlbHMgPSBPYmplY3Qua2V5cyhyb3V0ZXMpO1xuXG5cdHJvdXRlTW9kZWxzLmZvckVhY2godG9Nb2RlbCA9PiB7XG5cdFx0Y29uc3QgZm4gPSByb3V0ZXNbdG9Nb2RlbF07XG5cblx0XHRjb252ZXJ0W2Zyb21Nb2RlbF1bdG9Nb2RlbF0gPSB3cmFwUm91bmRlZChmbik7XG5cdFx0Y29udmVydFtmcm9tTW9kZWxdW3RvTW9kZWxdLnJhdyA9IHdyYXBSYXcoZm4pO1xuXHR9KTtcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnQ7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCB3cmFwQW5zaTE2ID0gKGZuLCBvZmZzZXQpID0+ICguLi5hcmdzKSA9PiB7XG5cdGNvbnN0IGNvZGUgPSBmbiguLi5hcmdzKTtcblx0cmV0dXJuIGBcXHUwMDFCWyR7Y29kZSArIG9mZnNldH1tYDtcbn07XG5cbmNvbnN0IHdyYXBBbnNpMjU2ID0gKGZuLCBvZmZzZXQpID0+ICguLi5hcmdzKSA9PiB7XG5cdGNvbnN0IGNvZGUgPSBmbiguLi5hcmdzKTtcblx0cmV0dXJuIGBcXHUwMDFCWyR7MzggKyBvZmZzZXR9OzU7JHtjb2RlfW1gO1xufTtcblxuY29uc3Qgd3JhcEFuc2kxNm0gPSAoZm4sIG9mZnNldCkgPT4gKC4uLmFyZ3MpID0+IHtcblx0Y29uc3QgcmdiID0gZm4oLi4uYXJncyk7XG5cdHJldHVybiBgXFx1MDAxQlskezM4ICsgb2Zmc2V0fTsyOyR7cmdiWzBdfTske3JnYlsxXX07JHtyZ2JbMl19bWA7XG59O1xuXG5jb25zdCBhbnNpMmFuc2kgPSBuID0+IG47XG5jb25zdCByZ2IycmdiID0gKHIsIGcsIGIpID0+IFtyLCBnLCBiXTtcblxuY29uc3Qgc2V0TGF6eVByb3BlcnR5ID0gKG9iamVjdCwgcHJvcGVydHksIGdldCkgPT4ge1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eSwge1xuXHRcdGdldDogKCkgPT4ge1xuXHRcdFx0Y29uc3QgdmFsdWUgPSBnZXQoKTtcblxuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHksIHtcblx0XHRcdFx0dmFsdWUsXG5cdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZVxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9LFxuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0Y29uZmlndXJhYmxlOiB0cnVlXG5cdH0pO1xufTtcblxuLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCdjb2xvci1jb252ZXJ0Jyl9ICovXG5sZXQgY29sb3JDb252ZXJ0O1xuY29uc3QgbWFrZUR5bmFtaWNTdHlsZXMgPSAod3JhcCwgdGFyZ2V0U3BhY2UsIGlkZW50aXR5LCBpc0JhY2tncm91bmQpID0+IHtcblx0aWYgKGNvbG9yQ29udmVydCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Y29sb3JDb252ZXJ0ID0gcmVxdWlyZSgnY29sb3ItY29udmVydCcpO1xuXHR9XG5cblx0Y29uc3Qgb2Zmc2V0ID0gaXNCYWNrZ3JvdW5kID8gMTAgOiAwO1xuXHRjb25zdCBzdHlsZXMgPSB7fTtcblxuXHRmb3IgKGNvbnN0IFtzb3VyY2VTcGFjZSwgc3VpdGVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbG9yQ29udmVydCkpIHtcblx0XHRjb25zdCBuYW1lID0gc291cmNlU3BhY2UgPT09ICdhbnNpMTYnID8gJ2Fuc2knIDogc291cmNlU3BhY2U7XG5cdFx0aWYgKHNvdXJjZVNwYWNlID09PSB0YXJnZXRTcGFjZSkge1xuXHRcdFx0c3R5bGVzW25hbWVdID0gd3JhcChpZGVudGl0eSwgb2Zmc2V0KTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBzdWl0ZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdHN0eWxlc1tuYW1lXSA9IHdyYXAoc3VpdGVbdGFyZ2V0U3BhY2VdLCBvZmZzZXQpO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBzdHlsZXM7XG59O1xuXG5mdW5jdGlvbiBhc3NlbWJsZVN0eWxlcygpIHtcblx0Y29uc3QgY29kZXMgPSBuZXcgTWFwKCk7XG5cdGNvbnN0IHN0eWxlcyA9IHtcblx0XHRtb2RpZmllcjoge1xuXHRcdFx0cmVzZXQ6IFswLCAwXSxcblx0XHRcdC8vIDIxIGlzbid0IHdpZGVseSBzdXBwb3J0ZWQgYW5kIDIyIGRvZXMgdGhlIHNhbWUgdGhpbmdcblx0XHRcdGJvbGQ6IFsxLCAyMl0sXG5cdFx0XHRkaW06IFsyLCAyMl0sXG5cdFx0XHRpdGFsaWM6IFszLCAyM10sXG5cdFx0XHR1bmRlcmxpbmU6IFs0LCAyNF0sXG5cdFx0XHRpbnZlcnNlOiBbNywgMjddLFxuXHRcdFx0aGlkZGVuOiBbOCwgMjhdLFxuXHRcdFx0c3RyaWtldGhyb3VnaDogWzksIDI5XVxuXHRcdH0sXG5cdFx0Y29sb3I6IHtcblx0XHRcdGJsYWNrOiBbMzAsIDM5XSxcblx0XHRcdHJlZDogWzMxLCAzOV0sXG5cdFx0XHRncmVlbjogWzMyLCAzOV0sXG5cdFx0XHR5ZWxsb3c6IFszMywgMzldLFxuXHRcdFx0Ymx1ZTogWzM0LCAzOV0sXG5cdFx0XHRtYWdlbnRhOiBbMzUsIDM5XSxcblx0XHRcdGN5YW46IFszNiwgMzldLFxuXHRcdFx0d2hpdGU6IFszNywgMzldLFxuXG5cdFx0XHQvLyBCcmlnaHQgY29sb3Jcblx0XHRcdGJsYWNrQnJpZ2h0OiBbOTAsIDM5XSxcblx0XHRcdHJlZEJyaWdodDogWzkxLCAzOV0sXG5cdFx0XHRncmVlbkJyaWdodDogWzkyLCAzOV0sXG5cdFx0XHR5ZWxsb3dCcmlnaHQ6IFs5MywgMzldLFxuXHRcdFx0Ymx1ZUJyaWdodDogWzk0LCAzOV0sXG5cdFx0XHRtYWdlbnRhQnJpZ2h0OiBbOTUsIDM5XSxcblx0XHRcdGN5YW5CcmlnaHQ6IFs5NiwgMzldLFxuXHRcdFx0d2hpdGVCcmlnaHQ6IFs5NywgMzldXG5cdFx0fSxcblx0XHRiZ0NvbG9yOiB7XG5cdFx0XHRiZ0JsYWNrOiBbNDAsIDQ5XSxcblx0XHRcdGJnUmVkOiBbNDEsIDQ5XSxcblx0XHRcdGJnR3JlZW46IFs0MiwgNDldLFxuXHRcdFx0YmdZZWxsb3c6IFs0MywgNDldLFxuXHRcdFx0YmdCbHVlOiBbNDQsIDQ5XSxcblx0XHRcdGJnTWFnZW50YTogWzQ1LCA0OV0sXG5cdFx0XHRiZ0N5YW46IFs0NiwgNDldLFxuXHRcdFx0YmdXaGl0ZTogWzQ3LCA0OV0sXG5cblx0XHRcdC8vIEJyaWdodCBjb2xvclxuXHRcdFx0YmdCbGFja0JyaWdodDogWzEwMCwgNDldLFxuXHRcdFx0YmdSZWRCcmlnaHQ6IFsxMDEsIDQ5XSxcblx0XHRcdGJnR3JlZW5CcmlnaHQ6IFsxMDIsIDQ5XSxcblx0XHRcdGJnWWVsbG93QnJpZ2h0OiBbMTAzLCA0OV0sXG5cdFx0XHRiZ0JsdWVCcmlnaHQ6IFsxMDQsIDQ5XSxcblx0XHRcdGJnTWFnZW50YUJyaWdodDogWzEwNSwgNDldLFxuXHRcdFx0YmdDeWFuQnJpZ2h0OiBbMTA2LCA0OV0sXG5cdFx0XHRiZ1doaXRlQnJpZ2h0OiBbMTA3LCA0OV1cblx0XHR9XG5cdH07XG5cblx0Ly8gQWxpYXMgYnJpZ2h0IGJsYWNrIGFzIGdyYXkgKGFuZCBncmV5KVxuXHRzdHlsZXMuY29sb3IuZ3JheSA9IHN0eWxlcy5jb2xvci5ibGFja0JyaWdodDtcblx0c3R5bGVzLmJnQ29sb3IuYmdHcmF5ID0gc3R5bGVzLmJnQ29sb3IuYmdCbGFja0JyaWdodDtcblx0c3R5bGVzLmNvbG9yLmdyZXkgPSBzdHlsZXMuY29sb3IuYmxhY2tCcmlnaHQ7XG5cdHN0eWxlcy5iZ0NvbG9yLmJnR3JleSA9IHN0eWxlcy5iZ0NvbG9yLmJnQmxhY2tCcmlnaHQ7XG5cblx0Zm9yIChjb25zdCBbZ3JvdXBOYW1lLCBncm91cF0gb2YgT2JqZWN0LmVudHJpZXMoc3R5bGVzKSkge1xuXHRcdGZvciAoY29uc3QgW3N0eWxlTmFtZSwgc3R5bGVdIG9mIE9iamVjdC5lbnRyaWVzKGdyb3VwKSkge1xuXHRcdFx0c3R5bGVzW3N0eWxlTmFtZV0gPSB7XG5cdFx0XHRcdG9wZW46IGBcXHUwMDFCWyR7c3R5bGVbMF19bWAsXG5cdFx0XHRcdGNsb3NlOiBgXFx1MDAxQlske3N0eWxlWzFdfW1gXG5cdFx0XHR9O1xuXG5cdFx0XHRncm91cFtzdHlsZU5hbWVdID0gc3R5bGVzW3N0eWxlTmFtZV07XG5cblx0XHRcdGNvZGVzLnNldChzdHlsZVswXSwgc3R5bGVbMV0pO1xuXHRcdH1cblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsIGdyb3VwTmFtZSwge1xuXHRcdFx0dmFsdWU6IGdyb3VwLFxuXHRcdFx0ZW51bWVyYWJsZTogZmFsc2Vcblx0XHR9KTtcblx0fVxuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsICdjb2RlcycsIHtcblx0XHR2YWx1ZTogY29kZXMsXG5cdFx0ZW51bWVyYWJsZTogZmFsc2Vcblx0fSk7XG5cblx0c3R5bGVzLmNvbG9yLmNsb3NlID0gJ1xcdTAwMUJbMzltJztcblx0c3R5bGVzLmJnQ29sb3IuY2xvc2UgPSAnXFx1MDAxQls0OW0nO1xuXG5cdHNldExhenlQcm9wZXJ0eShzdHlsZXMuY29sb3IsICdhbnNpJywgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNiwgJ2Fuc2kxNicsIGFuc2kyYW5zaSwgZmFsc2UpKTtcblx0c2V0TGF6eVByb3BlcnR5KHN0eWxlcy5jb2xvciwgJ2Fuc2kyNTYnLCAoKSA9PiBtYWtlRHluYW1pY1N0eWxlcyh3cmFwQW5zaTI1NiwgJ2Fuc2kyNTYnLCBhbnNpMmFuc2ksIGZhbHNlKSk7XG5cdHNldExhenlQcm9wZXJ0eShzdHlsZXMuY29sb3IsICdhbnNpMTZtJywgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNm0sICdyZ2InLCByZ2IycmdiLCBmYWxzZSkpO1xuXHRzZXRMYXp5UHJvcGVydHkoc3R5bGVzLmJnQ29sb3IsICdhbnNpJywgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kxNiwgJ2Fuc2kxNicsIGFuc2kyYW5zaSwgdHJ1ZSkpO1xuXHRzZXRMYXp5UHJvcGVydHkoc3R5bGVzLmJnQ29sb3IsICdhbnNpMjU2JywgKCkgPT4gbWFrZUR5bmFtaWNTdHlsZXMod3JhcEFuc2kyNTYsICdhbnNpMjU2JywgYW5zaTJhbnNpLCB0cnVlKSk7XG5cdHNldExhenlQcm9wZXJ0eShzdHlsZXMuYmdDb2xvciwgJ2Fuc2kxNm0nLCAoKSA9PiBtYWtlRHluYW1pY1N0eWxlcyh3cmFwQW5zaTE2bSwgJ3JnYicsIHJnYjJyZ2IsIHRydWUpKTtcblxuXHRyZXR1cm4gc3R5bGVzO1xufVxuXG4vLyBNYWtlIHRoZSBleHBvcnQgaW1tdXRhYmxlXG5PYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCAnZXhwb3J0cycsIHtcblx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0Z2V0OiBhc3NlbWJsZVN0eWxlc1xufSk7XG4iLCAiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgc3RyaW5nV2lkdGggPSByZXF1aXJlKCdzdHJpbmctd2lkdGgnKTtcbmNvbnN0IHN0cmlwQW5zaSA9IHJlcXVpcmUoJ3N0cmlwLWFuc2knKTtcbmNvbnN0IGFuc2lTdHlsZXMgPSByZXF1aXJlKCdhbnNpLXN0eWxlcycpO1xuXG5jb25zdCBFU0NBUEVTID0gbmV3IFNldChbXG5cdCdcXHUwMDFCJyxcblx0J1xcdTAwOUInXG5dKTtcblxuY29uc3QgRU5EX0NPREUgPSAzOTtcblxuY29uc3QgQU5TSV9FU0NBUEVfQkVMTCA9ICdcXHUwMDA3JztcbmNvbnN0IEFOU0lfQ1NJID0gJ1snO1xuY29uc3QgQU5TSV9PU0MgPSAnXSc7XG5jb25zdCBBTlNJX1NHUl9URVJNSU5BVE9SID0gJ20nO1xuY29uc3QgQU5TSV9FU0NBUEVfTElOSyA9IGAke0FOU0lfT1NDfTg7O2A7XG5cbmNvbnN0IHdyYXBBbnNpID0gY29kZSA9PiBgJHtFU0NBUEVTLnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke0FOU0lfQ1NJfSR7Y29kZX0ke0FOU0lfU0dSX1RFUk1JTkFUT1J9YDtcbmNvbnN0IHdyYXBBbnNpSHlwZXJsaW5rID0gdXJpID0+IGAke0VTQ0FQRVMudmFsdWVzKCkubmV4dCgpLnZhbHVlfSR7QU5TSV9FU0NBUEVfTElOS30ke3VyaX0ke0FOU0lfRVNDQVBFX0JFTEx9YDtcblxuLy8gQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2Ygd29yZHMgc3BsaXQgb24gJyAnLCBpZ25vcmluZ1xuLy8gdGhlIGV4dHJhIGNoYXJhY3RlcnMgYWRkZWQgYnkgYW5zaSBlc2NhcGUgY29kZXNcbmNvbnN0IHdvcmRMZW5ndGhzID0gc3RyaW5nID0+IHN0cmluZy5zcGxpdCgnICcpLm1hcChjaGFyYWN0ZXIgPT4gc3RyaW5nV2lkdGgoY2hhcmFjdGVyKSk7XG5cbi8vIFdyYXAgYSBsb25nIHdvcmQgYWNyb3NzIG11bHRpcGxlIHJvd3Ncbi8vIEFuc2kgZXNjYXBlIGNvZGVzIGRvIG5vdCBjb3VudCB0b3dhcmRzIGxlbmd0aFxuY29uc3Qgd3JhcFdvcmQgPSAocm93cywgd29yZCwgY29sdW1ucykgPT4ge1xuXHRjb25zdCBjaGFyYWN0ZXJzID0gWy4uLndvcmRdO1xuXG5cdGxldCBpc0luc2lkZUVzY2FwZSA9IGZhbHNlO1xuXHRsZXQgaXNJbnNpZGVMaW5rRXNjYXBlID0gZmFsc2U7XG5cdGxldCB2aXNpYmxlID0gc3RyaW5nV2lkdGgoc3RyaXBBbnNpKHJvd3Nbcm93cy5sZW5ndGggLSAxXSkpO1xuXG5cdGZvciAoY29uc3QgW2luZGV4LCBjaGFyYWN0ZXJdIG9mIGNoYXJhY3RlcnMuZW50cmllcygpKSB7XG5cdFx0Y29uc3QgY2hhcmFjdGVyTGVuZ3RoID0gc3RyaW5nV2lkdGgoY2hhcmFjdGVyKTtcblxuXHRcdGlmICh2aXNpYmxlICsgY2hhcmFjdGVyTGVuZ3RoIDw9IGNvbHVtbnMpIHtcblx0XHRcdHJvd3Nbcm93cy5sZW5ndGggLSAxXSArPSBjaGFyYWN0ZXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJvd3MucHVzaChjaGFyYWN0ZXIpO1xuXHRcdFx0dmlzaWJsZSA9IDA7XG5cdFx0fVxuXG5cdFx0aWYgKEVTQ0FQRVMuaGFzKGNoYXJhY3RlcikpIHtcblx0XHRcdGlzSW5zaWRlRXNjYXBlID0gdHJ1ZTtcblx0XHRcdGlzSW5zaWRlTGlua0VzY2FwZSA9IGNoYXJhY3RlcnMuc2xpY2UoaW5kZXggKyAxKS5qb2luKCcnKS5zdGFydHNXaXRoKEFOU0lfRVNDQVBFX0xJTkspO1xuXHRcdH1cblxuXHRcdGlmIChpc0luc2lkZUVzY2FwZSkge1xuXHRcdFx0aWYgKGlzSW5zaWRlTGlua0VzY2FwZSkge1xuXHRcdFx0XHRpZiAoY2hhcmFjdGVyID09PSBBTlNJX0VTQ0FQRV9CRUxMKSB7XG5cdFx0XHRcdFx0aXNJbnNpZGVFc2NhcGUgPSBmYWxzZTtcblx0XHRcdFx0XHRpc0luc2lkZUxpbmtFc2NhcGUgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IEFOU0lfU0dSX1RFUk1JTkFUT1IpIHtcblx0XHRcdFx0aXNJbnNpZGVFc2NhcGUgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0dmlzaWJsZSArPSBjaGFyYWN0ZXJMZW5ndGg7XG5cblx0XHRpZiAodmlzaWJsZSA9PT0gY29sdW1ucyAmJiBpbmRleCA8IGNoYXJhY3RlcnMubGVuZ3RoIC0gMSkge1xuXHRcdFx0cm93cy5wdXNoKCcnKTtcblx0XHRcdHZpc2libGUgPSAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgbGFzdCByb3cgd2UgY29weSBvdmVyIGlzIG9ubHlcblx0Ly8gYW5zaSBlc2NhcGUgY2hhcmFjdGVycywgaGFuZGxlIHRoaXMgZWRnZS1jYXNlXG5cdGlmICghdmlzaWJsZSAmJiByb3dzW3Jvd3MubGVuZ3RoIC0gMV0ubGVuZ3RoID4gMCAmJiByb3dzLmxlbmd0aCA+IDEpIHtcblx0XHRyb3dzW3Jvd3MubGVuZ3RoIC0gMl0gKz0gcm93cy5wb3AoKTtcblx0fVxufTtcblxuLy8gVHJpbXMgc3BhY2VzIGZyb20gYSBzdHJpbmcgaWdub3JpbmcgaW52aXNpYmxlIHNlcXVlbmNlc1xuY29uc3Qgc3RyaW5nVmlzaWJsZVRyaW1TcGFjZXNSaWdodCA9IHN0cmluZyA9PiB7XG5cdGNvbnN0IHdvcmRzID0gc3RyaW5nLnNwbGl0KCcgJyk7XG5cdGxldCBsYXN0ID0gd29yZHMubGVuZ3RoO1xuXG5cdHdoaWxlIChsYXN0ID4gMCkge1xuXHRcdGlmIChzdHJpbmdXaWR0aCh3b3Jkc1tsYXN0IC0gMV0pID4gMCkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXG5cdFx0bGFzdC0tO1xuXHR9XG5cblx0aWYgKGxhc3QgPT09IHdvcmRzLmxlbmd0aCkge1xuXHRcdHJldHVybiBzdHJpbmc7XG5cdH1cblxuXHRyZXR1cm4gd29yZHMuc2xpY2UoMCwgbGFzdCkuam9pbignICcpICsgd29yZHMuc2xpY2UobGFzdCkuam9pbignJyk7XG59O1xuXG4vLyBUaGUgd3JhcC1hbnNpIG1vZHVsZSBjYW4gYmUgaW52b2tlZCBpbiBlaXRoZXIgJ2hhcmQnIG9yICdzb2Z0JyB3cmFwIG1vZGVcbi8vXG4vLyAnaGFyZCcgd2lsbCBuZXZlciBhbGxvdyBhIHN0cmluZyB0byB0YWtlIHVwIG1vcmUgdGhhbiBjb2x1bW5zIGNoYXJhY3RlcnNcbi8vXG4vLyAnc29mdCcgYWxsb3dzIGxvbmcgd29yZHMgdG8gZXhwYW5kIHBhc3QgdGhlIGNvbHVtbiBsZW5ndGhcbmNvbnN0IGV4ZWMgPSAoc3RyaW5nLCBjb2x1bW5zLCBvcHRpb25zID0ge30pID0+IHtcblx0aWYgKG9wdGlvbnMudHJpbSAhPT0gZmFsc2UgJiYgc3RyaW5nLnRyaW0oKSA9PT0gJycpIHtcblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRsZXQgcmV0dXJuVmFsdWUgPSAnJztcblx0bGV0IGVzY2FwZUNvZGU7XG5cdGxldCBlc2NhcGVVcmw7XG5cblx0Y29uc3QgbGVuZ3RocyA9IHdvcmRMZW5ndGhzKHN0cmluZyk7XG5cdGxldCByb3dzID0gWycnXTtcblxuXHRmb3IgKGNvbnN0IFtpbmRleCwgd29yZF0gb2Ygc3RyaW5nLnNwbGl0KCcgJykuZW50cmllcygpKSB7XG5cdFx0aWYgKG9wdGlvbnMudHJpbSAhPT0gZmFsc2UpIHtcblx0XHRcdHJvd3Nbcm93cy5sZW5ndGggLSAxXSA9IHJvd3Nbcm93cy5sZW5ndGggLSAxXS50cmltU3RhcnQoKTtcblx0XHR9XG5cblx0XHRsZXQgcm93TGVuZ3RoID0gc3RyaW5nV2lkdGgocm93c1tyb3dzLmxlbmd0aCAtIDFdKTtcblxuXHRcdGlmIChpbmRleCAhPT0gMCkge1xuXHRcdFx0aWYgKHJvd0xlbmd0aCA+PSBjb2x1bW5zICYmIChvcHRpb25zLndvcmRXcmFwID09PSBmYWxzZSB8fCBvcHRpb25zLnRyaW0gPT09IGZhbHNlKSkge1xuXHRcdFx0XHQvLyBJZiB3ZSBzdGFydCB3aXRoIGEgbmV3IHdvcmQgYnV0IHRoZSBjdXJyZW50IHJvdyBsZW5ndGggZXF1YWxzIHRoZSBsZW5ndGggb2YgdGhlIGNvbHVtbnMsIGFkZCBhIG5ldyByb3dcblx0XHRcdFx0cm93cy5wdXNoKCcnKTtcblx0XHRcdFx0cm93TGVuZ3RoID0gMDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHJvd0xlbmd0aCA+IDAgfHwgb3B0aW9ucy50cmltID09PSBmYWxzZSkge1xuXHRcdFx0XHRyb3dzW3Jvd3MubGVuZ3RoIC0gMV0gKz0gJyAnO1xuXHRcdFx0XHRyb3dMZW5ndGgrKztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJbiAnaGFyZCcgd3JhcCBtb2RlLCB0aGUgbGVuZ3RoIG9mIGEgbGluZSBpcyBuZXZlciBhbGxvd2VkIHRvIGV4dGVuZCBwYXN0ICdjb2x1bW5zJ1xuXHRcdGlmIChvcHRpb25zLmhhcmQgJiYgbGVuZ3Roc1tpbmRleF0gPiBjb2x1bW5zKSB7XG5cdFx0XHRjb25zdCByZW1haW5pbmdDb2x1bW5zID0gKGNvbHVtbnMgLSByb3dMZW5ndGgpO1xuXHRcdFx0Y29uc3QgYnJlYWtzU3RhcnRpbmdUaGlzTGluZSA9IDEgKyBNYXRoLmZsb29yKChsZW5ndGhzW2luZGV4XSAtIHJlbWFpbmluZ0NvbHVtbnMgLSAxKSAvIGNvbHVtbnMpO1xuXHRcdFx0Y29uc3QgYnJlYWtzU3RhcnRpbmdOZXh0TGluZSA9IE1hdGguZmxvb3IoKGxlbmd0aHNbaW5kZXhdIC0gMSkgLyBjb2x1bW5zKTtcblx0XHRcdGlmIChicmVha3NTdGFydGluZ05leHRMaW5lIDwgYnJlYWtzU3RhcnRpbmdUaGlzTGluZSkge1xuXHRcdFx0XHRyb3dzLnB1c2goJycpO1xuXHRcdFx0fVxuXG5cdFx0XHR3cmFwV29yZChyb3dzLCB3b3JkLCBjb2x1bW5zKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGlmIChyb3dMZW5ndGggKyBsZW5ndGhzW2luZGV4XSA+IGNvbHVtbnMgJiYgcm93TGVuZ3RoID4gMCAmJiBsZW5ndGhzW2luZGV4XSA+IDApIHtcblx0XHRcdGlmIChvcHRpb25zLndvcmRXcmFwID09PSBmYWxzZSAmJiByb3dMZW5ndGggPCBjb2x1bW5zKSB7XG5cdFx0XHRcdHdyYXBXb3JkKHJvd3MsIHdvcmQsIGNvbHVtbnMpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0cm93cy5wdXNoKCcnKTtcblx0XHR9XG5cblx0XHRpZiAocm93TGVuZ3RoICsgbGVuZ3Roc1tpbmRleF0gPiBjb2x1bW5zICYmIG9wdGlvbnMud29yZFdyYXAgPT09IGZhbHNlKSB7XG5cdFx0XHR3cmFwV29yZChyb3dzLCB3b3JkLCBjb2x1bW5zKTtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHJvd3Nbcm93cy5sZW5ndGggLSAxXSArPSB3b3JkO1xuXHR9XG5cblx0aWYgKG9wdGlvbnMudHJpbSAhPT0gZmFsc2UpIHtcblx0XHRyb3dzID0gcm93cy5tYXAoc3RyaW5nVmlzaWJsZVRyaW1TcGFjZXNSaWdodCk7XG5cdH1cblxuXHRjb25zdCBwcmUgPSBbLi4ucm93cy5qb2luKCdcXG4nKV07XG5cblx0Zm9yIChjb25zdCBbaW5kZXgsIGNoYXJhY3Rlcl0gb2YgcHJlLmVudHJpZXMoKSkge1xuXHRcdHJldHVyblZhbHVlICs9IGNoYXJhY3RlcjtcblxuXHRcdGlmIChFU0NBUEVTLmhhcyhjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjb25zdCB7Z3JvdXBzfSA9IG5ldyBSZWdFeHAoYCg/OlxcXFwke0FOU0lfQ1NJfSg/PGNvZGU+XFxcXGQrKW18XFxcXCR7QU5TSV9FU0NBUEVfTElOS30oPzx1cmk+LiopJHtBTlNJX0VTQ0FQRV9CRUxMfSlgKS5leGVjKHByZS5zbGljZShpbmRleCkuam9pbignJykpIHx8IHtncm91cHM6IHt9fTtcblx0XHRcdGlmIChncm91cHMuY29kZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGNvbnN0IGNvZGUgPSBOdW1iZXIucGFyc2VGbG9hdChncm91cHMuY29kZSk7XG5cdFx0XHRcdGVzY2FwZUNvZGUgPSBjb2RlID09PSBFTkRfQ09ERSA/IHVuZGVmaW5lZCA6IGNvZGU7XG5cdFx0XHR9IGVsc2UgaWYgKGdyb3Vwcy51cmkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRlc2NhcGVVcmwgPSBncm91cHMudXJpLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGdyb3Vwcy51cmk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgY29kZSA9IGFuc2lTdHlsZXMuY29kZXMuZ2V0KE51bWJlcihlc2NhcGVDb2RlKSk7XG5cblx0XHRpZiAocHJlW2luZGV4ICsgMV0gPT09ICdcXG4nKSB7XG5cdFx0XHRpZiAoZXNjYXBlVXJsKSB7XG5cdFx0XHRcdHJldHVyblZhbHVlICs9IHdyYXBBbnNpSHlwZXJsaW5rKCcnKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGVzY2FwZUNvZGUgJiYgY29kZSkge1xuXHRcdFx0XHRyZXR1cm5WYWx1ZSArPSB3cmFwQW5zaShjb2RlKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gJ1xcbicpIHtcblx0XHRcdGlmIChlc2NhcGVDb2RlICYmIGNvZGUpIHtcblx0XHRcdFx0cmV0dXJuVmFsdWUgKz0gd3JhcEFuc2koZXNjYXBlQ29kZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChlc2NhcGVVcmwpIHtcblx0XHRcdFx0cmV0dXJuVmFsdWUgKz0gd3JhcEFuc2lIeXBlcmxpbmsoZXNjYXBlVXJsKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG4vLyBGb3IgZWFjaCBuZXdsaW5lLCBpbnZva2UgdGhlIG1ldGhvZCBzZXBhcmF0ZWx5XG5tb2R1bGUuZXhwb3J0cyA9IChzdHJpbmcsIGNvbHVtbnMsIG9wdGlvbnMpID0+IHtcblx0cmV0dXJuIFN0cmluZyhzdHJpbmcpXG5cdFx0Lm5vcm1hbGl6ZSgpXG5cdFx0LnJlcGxhY2UoL1xcclxcbi9nLCAnXFxuJylcblx0XHQuc3BsaXQoJ1xcbicpXG5cdFx0Lm1hcChsaW5lID0+IGV4ZWMobGluZSwgY29sdW1ucywgb3B0aW9ucykpXG5cdFx0LmpvaW4oJ1xcbicpO1xufTtcbiIsICIndXNlIHN0cmljdCc7XG5cbmNvbnN0IGFsaWduID0ge1xuICAgIHJpZ2h0OiBhbGlnblJpZ2h0LFxuICAgIGNlbnRlcjogYWxpZ25DZW50ZXJcbn07XG5jb25zdCB0b3AgPSAwO1xuY29uc3QgcmlnaHQgPSAxO1xuY29uc3QgYm90dG9tID0gMjtcbmNvbnN0IGxlZnQgPSAzO1xuY2xhc3MgVUkge1xuICAgIGNvbnN0cnVjdG9yKG9wdHMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB0aGlzLndpZHRoID0gb3B0cy53aWR0aDtcbiAgICAgICAgdGhpcy53cmFwID0gKF9hID0gb3B0cy53cmFwKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0cnVlO1xuICAgICAgICB0aGlzLnJvd3MgPSBbXTtcbiAgICB9XG4gICAgc3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGNvbHMgPSB0aGlzLmRpdiguLi5hcmdzKTtcbiAgICAgICAgY29scy5zcGFuID0gdHJ1ZTtcbiAgICB9XG4gICAgcmVzZXRPdXRwdXQoKSB7XG4gICAgICAgIHRoaXMucm93cyA9IFtdO1xuICAgIH1cbiAgICBkaXYoLi4uYXJncykge1xuICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZGl2KCcnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy53cmFwICYmIHRoaXMuc2hvdWxkQXBwbHlMYXlvdXREU0woLi4uYXJncykgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxheW91dERTTChhcmdzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xzID0gYXJncy5tYXAoYXJnID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbEZyb21TdHJpbmcoYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcmc7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJvd3MucHVzaChjb2xzKTtcbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfVxuICAgIHNob3VsZEFwcGx5TGF5b3V0RFNMKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgL1tcXHRcXG5dLy50ZXN0KGFyZ3NbMF0pO1xuICAgIH1cbiAgICBhcHBseUxheW91dERTTChzdHIpIHtcbiAgICAgICAgY29uc3Qgcm93cyA9IHN0ci5zcGxpdCgnXFxuJykubWFwKHJvdyA9PiByb3cuc3BsaXQoJ1xcdCcpKTtcbiAgICAgICAgbGV0IGxlZnRDb2x1bW5XaWR0aCA9IDA7XG4gICAgICAgIC8vIHNpbXBsZSBoZXVyaXN0aWMgZm9yIGxheW91dCwgbWFrZSBzdXJlIHRoZVxuICAgICAgICAvLyBzZWNvbmQgY29sdW1uIGxpbmVzIHVwIGFsb25nIHRoZSBsZWZ0LWhhbmQuXG4gICAgICAgIC8vIGRvbid0IGFsbG93IHRoZSBmaXJzdCBjb2x1bW4gdG8gdGFrZSB1cCBtb3JlXG4gICAgICAgIC8vIHRoYW4gNTAlIG9mIHRoZSBzY3JlZW4uXG4gICAgICAgIHJvd3MuZm9yRWFjaChjb2x1bW5zID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA+IDEgJiYgbWl4aW4uc3RyaW5nV2lkdGgoY29sdW1uc1swXSkgPiBsZWZ0Q29sdW1uV2lkdGgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0Q29sdW1uV2lkdGggPSBNYXRoLm1pbihNYXRoLmZsb29yKHRoaXMud2lkdGggKiAwLjUpLCBtaXhpbi5zdHJpbmdXaWR0aChjb2x1bW5zWzBdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBnZW5lcmF0ZSBhIHRhYmxlOlxuICAgICAgICAvLyAgcmVwbGFjaW5nICcgJyB3aXRoIHBhZGRpbmcgY2FsY3VsYXRpb25zLlxuICAgICAgICAvLyAgdXNpbmcgdGhlIGFsZ29yaXRobWljYWxseSBnZW5lcmF0ZWQgd2lkdGguXG4gICAgICAgIHJvd3MuZm9yRWFjaChjb2x1bW5zID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGl2KC4uLmNvbHVtbnMubWFwKChyLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogci50cmltKCksXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHRoaXMubWVhc3VyZVBhZGRpbmcociksXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAoaSA9PT0gMCAmJiBjb2x1bW5zLmxlbmd0aCA+IDEpID8gbGVmdENvbHVtbldpZHRoIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd3NbdGhpcy5yb3dzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICBjb2xGcm9tU3RyaW5nKHRleHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICBwYWRkaW5nOiB0aGlzLm1lYXN1cmVQYWRkaW5nKHRleHQpXG4gICAgICAgIH07XG4gICAgfVxuICAgIG1lYXN1cmVQYWRkaW5nKHN0cikge1xuICAgICAgICAvLyBtZWFzdXJlIHBhZGRpbmcgd2l0aG91dCBhbnNpIGVzY2FwZSBjb2Rlc1xuICAgICAgICBjb25zdCBub0Fuc2kgPSBtaXhpbi5zdHJpcEFuc2koc3RyKTtcbiAgICAgICAgcmV0dXJuIFswLCBub0Fuc2kubWF0Y2goL1xccyokLylbMF0ubGVuZ3RoLCAwLCBub0Fuc2kubWF0Y2goL15cXHMqLylbMF0ubGVuZ3RoXTtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgICAgIHRoaXMucm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvd1RvU3RyaW5nKHJvdywgbGluZXMpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gZG9uJ3QgZGlzcGxheSBhbnkgbGluZXMgd2l0aCB0aGVcbiAgICAgICAgLy8gaGlkZGVuIGZsYWcgc2V0LlxuICAgICAgICByZXR1cm4gbGluZXNcbiAgICAgICAgICAgIC5maWx0ZXIobGluZSA9PiAhbGluZS5oaWRkZW4pXG4gICAgICAgICAgICAubWFwKGxpbmUgPT4gbGluZS50ZXh0KVxuICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICByb3dUb1N0cmluZyhyb3csIGxpbmVzKSB7XG4gICAgICAgIHRoaXMucmFzdGVyaXplKHJvdykuZm9yRWFjaCgocnJvdywgcikgPT4ge1xuICAgICAgICAgICAgbGV0IHN0ciA9ICcnO1xuICAgICAgICAgICAgcnJvdy5mb3JFYWNoKChjb2wsIGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoIH0gPSByb3dbY107IC8vIHRoZSB3aWR0aCB3aXRoIHBhZGRpbmcuXG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcFdpZHRoID0gdGhpcy5uZWdhdGVQYWRkaW5nKHJvd1tjXSk7IC8vIHRoZSB3aWR0aCB3aXRob3V0IHBhZGRpbmcuXG4gICAgICAgICAgICAgICAgbGV0IHRzID0gY29sOyAvLyB0ZW1wb3Jhcnkgc3RyaW5nIHVzZWQgZHVyaW5nIGFsaWdubWVudC9wYWRkaW5nLlxuICAgICAgICAgICAgICAgIGlmICh3cmFwV2lkdGggPiBtaXhpbi5zdHJpbmdXaWR0aChjb2wpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRzICs9ICcgJy5yZXBlYXQod3JhcFdpZHRoIC0gbWl4aW4uc3RyaW5nV2lkdGgoY29sKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGFsaWduIHRoZSBzdHJpbmcgd2l0aGluIGl0cyBjb2x1bW4uXG4gICAgICAgICAgICAgICAgaWYgKHJvd1tjXS5hbGlnbiAmJiByb3dbY10uYWxpZ24gIT09ICdsZWZ0JyAmJiB0aGlzLndyYXApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm4gPSBhbGlnbltyb3dbY10uYWxpZ25dO1xuICAgICAgICAgICAgICAgICAgICB0cyA9IGZuKHRzLCB3cmFwV2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWl4aW4uc3RyaW5nV2lkdGgodHMpIDwgd3JhcFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cyArPSAnICcucmVwZWF0KCh3aWR0aCB8fCAwKSAtIG1peGluLnN0cmluZ1dpZHRoKHRzKSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGFwcGx5IGJvcmRlciBhbmQgcGFkZGluZyB0byBzdHJpbmcuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFkZGluZyA9IHJvd1tjXS5wYWRkaW5nIHx8IFswLCAwLCAwLCAwXTtcbiAgICAgICAgICAgICAgICBpZiAocGFkZGluZ1tsZWZ0XSkge1xuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJyAnLnJlcGVhdChwYWRkaW5nW2xlZnRdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyICs9IGFkZEJvcmRlcihyb3dbY10sIHRzLCAnfCAnKTtcbiAgICAgICAgICAgICAgICBzdHIgKz0gdHM7XG4gICAgICAgICAgICAgICAgc3RyICs9IGFkZEJvcmRlcihyb3dbY10sIHRzLCAnIHwnKTtcbiAgICAgICAgICAgICAgICBpZiAocGFkZGluZ1tyaWdodF0pIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyICs9ICcgJy5yZXBlYXQocGFkZGluZ1tyaWdodF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpZiBwcmlvciByb3cgaXMgc3BhbiwgdHJ5IHRvIHJlbmRlciB0aGVcbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHJvdyBvbiB0aGUgcHJpb3IgbGluZS5cbiAgICAgICAgICAgICAgICBpZiAociA9PT0gMCAmJiBsaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHRoaXMucmVuZGVySW5saW5lKHN0ciwgbGluZXNbbGluZXMubGVuZ3RoIC0gMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuXG4gICAgICAgICAgICBsaW5lcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBzdHIucmVwbGFjZSgvICskLywgJycpLFxuICAgICAgICAgICAgICAgIHNwYW46IHJvdy5zcGFuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG4gICAgLy8gaWYgdGhlIGZ1bGwgJ3NvdXJjZScgY2FuIHJlbmRlciBpblxuICAgIC8vIHRoZSB0YXJnZXQgbGluZSwgZG8gc28uXG4gICAgcmVuZGVySW5saW5lKHNvdXJjZSwgcHJldmlvdXNMaW5lKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gc291cmNlLm1hdGNoKC9eICovKTtcbiAgICAgICAgY29uc3QgbGVhZGluZ1doaXRlc3BhY2UgPSBtYXRjaCA/IG1hdGNoWzBdLmxlbmd0aCA6IDA7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHByZXZpb3VzTGluZS50ZXh0O1xuICAgICAgICBjb25zdCB0YXJnZXRUZXh0V2lkdGggPSBtaXhpbi5zdHJpbmdXaWR0aCh0YXJnZXQudHJpbVJpZ2h0KCkpO1xuICAgICAgICBpZiAoIXByZXZpb3VzTGluZS5zcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBhcHBseWluZyB3cmFwcGluZyBsb2dpYyxcbiAgICAgICAgLy8ganVzdCBhbHdheXMgYXBwZW5kIHRvIHRoZSBzcGFuLlxuICAgICAgICBpZiAoIXRoaXMud3JhcCkge1xuICAgICAgICAgICAgcHJldmlvdXNMaW5lLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0ICsgc291cmNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsZWFkaW5nV2hpdGVzcGFjZSA8IHRhcmdldFRleHRXaWR0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgfVxuICAgICAgICBwcmV2aW91c0xpbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRhcmdldC50cmltUmlnaHQoKSArICcgJy5yZXBlYXQobGVhZGluZ1doaXRlc3BhY2UgLSB0YXJnZXRUZXh0V2lkdGgpICsgc291cmNlLnRyaW1MZWZ0KCk7XG4gICAgfVxuICAgIHJhc3Rlcml6ZShyb3cpIHtcbiAgICAgICAgY29uc3QgcnJvd3MgPSBbXTtcbiAgICAgICAgY29uc3Qgd2lkdGhzID0gdGhpcy5jb2x1bW5XaWR0aHMocm93KTtcbiAgICAgICAgbGV0IHdyYXBwZWQ7XG4gICAgICAgIC8vIHdvcmQgd3JhcCBhbGwgY29sdW1ucywgYW5kIGNyZWF0ZVxuICAgICAgICAvLyBhIGRhdGEtc3RydWN0dXJlIHRoYXQgaXMgZWFzeSB0byByYXN0ZXJpemUuXG4gICAgICAgIHJvdy5mb3JFYWNoKChjb2wsIGMpID0+IHtcbiAgICAgICAgICAgIC8vIGxlYXZlIHJvb20gZm9yIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcuXG4gICAgICAgICAgICBjb2wud2lkdGggPSB3aWR0aHNbY107XG4gICAgICAgICAgICBpZiAodGhpcy53cmFwKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlZCA9IG1peGluLndyYXAoY29sLnRleHQsIHRoaXMubmVnYXRlUGFkZGluZyhjb2wpLCB7IGhhcmQ6IHRydWUgfSkuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlZCA9IGNvbC50ZXh0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb2wuYm9yZGVyKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlZC51bnNoaWZ0KCcuJyArICctJy5yZXBlYXQodGhpcy5uZWdhdGVQYWRkaW5nKGNvbCkgKyAyKSArICcuJyk7XG4gICAgICAgICAgICAgICAgd3JhcHBlZC5wdXNoKFwiJ1wiICsgJy0nLnJlcGVhdCh0aGlzLm5lZ2F0ZVBhZGRpbmcoY29sKSArIDIpICsgXCInXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gYWRkIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcuXG4gICAgICAgICAgICBpZiAoY29sLnBhZGRpbmcpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVkLnVuc2hpZnQoLi4ubmV3IEFycmF5KGNvbC5wYWRkaW5nW3RvcF0gfHwgMCkuZmlsbCgnJykpO1xuICAgICAgICAgICAgICAgIHdyYXBwZWQucHVzaCguLi5uZXcgQXJyYXkoY29sLnBhZGRpbmdbYm90dG9tXSB8fCAwKS5maWxsKCcnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cmFwcGVkLmZvckVhY2goKHN0ciwgcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcnJvd3Nbcl0pIHtcbiAgICAgICAgICAgICAgICAgICAgcnJvd3MucHVzaChbXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJyb3cgPSBycm93c1tyXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocnJvd1tpXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBycm93LnB1c2goJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJyb3cucHVzaChzdHIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcnJvd3M7XG4gICAgfVxuICAgIG5lZ2F0ZVBhZGRpbmcoY29sKSB7XG4gICAgICAgIGxldCB3cmFwV2lkdGggPSBjb2wud2lkdGggfHwgMDtcbiAgICAgICAgaWYgKGNvbC5wYWRkaW5nKSB7XG4gICAgICAgICAgICB3cmFwV2lkdGggLT0gKGNvbC5wYWRkaW5nW2xlZnRdIHx8IDApICsgKGNvbC5wYWRkaW5nW3JpZ2h0XSB8fCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sLmJvcmRlcikge1xuICAgICAgICAgICAgd3JhcFdpZHRoIC09IDQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdyYXBXaWR0aDtcbiAgICB9XG4gICAgY29sdW1uV2lkdGhzKHJvdykge1xuICAgICAgICBpZiAoIXRoaXMud3JhcCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy5tYXAoY29sID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sLndpZHRoIHx8IG1peGluLnN0cmluZ1dpZHRoKGNvbC50ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1bnNldCA9IHJvdy5sZW5ndGg7XG4gICAgICAgIGxldCByZW1haW5pbmdXaWR0aCA9IHRoaXMud2lkdGg7XG4gICAgICAgIC8vIGNvbHVtbiB3aWR0aHMgY2FuIGJlIHNldCBpbiBjb25maWcuXG4gICAgICAgIGNvbnN0IHdpZHRocyA9IHJvdy5tYXAoY29sID0+IHtcbiAgICAgICAgICAgIGlmIChjb2wud2lkdGgpIHtcbiAgICAgICAgICAgICAgICB1bnNldC0tO1xuICAgICAgICAgICAgICAgIHJlbWFpbmluZ1dpZHRoIC09IGNvbC53aWR0aDtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sLndpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGFueSB1bnNldCB3aWR0aHMgc2hvdWxkIGJlIGNhbGN1bGF0ZWQuXG4gICAgICAgIGNvbnN0IHVuc2V0V2lkdGggPSB1bnNldCA/IE1hdGguZmxvb3IocmVtYWluaW5nV2lkdGggLyB1bnNldCkgOiAwO1xuICAgICAgICByZXR1cm4gd2lkdGhzLm1hcCgodywgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKHcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCh1bnNldFdpZHRoLCBfbWluV2lkdGgocm93W2ldKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdztcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gYWRkQm9yZGVyKGNvbCwgdHMsIHN0eWxlKSB7XG4gICAgaWYgKGNvbC5ib3JkZXIpIHtcbiAgICAgICAgaWYgKC9bLiddLStbLiddLy50ZXN0KHRzKSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0cy50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcgICc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbn1cbi8vIGNhbGN1bGF0ZXMgdGhlIG1pbmltdW0gd2lkdGggb2Zcbi8vIGEgY29sdW1uLCBiYXNlZCBvbiBwYWRkaW5nIHByZWZlcmVuY2VzLlxuZnVuY3Rpb24gX21pbldpZHRoKGNvbCkge1xuICAgIGNvbnN0IHBhZGRpbmcgPSBjb2wucGFkZGluZyB8fCBbXTtcbiAgICBjb25zdCBtaW5XaWR0aCA9IDEgKyAocGFkZGluZ1tsZWZ0XSB8fCAwKSArIChwYWRkaW5nW3JpZ2h0XSB8fCAwKTtcbiAgICBpZiAoY29sLmJvcmRlcikge1xuICAgICAgICByZXR1cm4gbWluV2lkdGggKyA0O1xuICAgIH1cbiAgICByZXR1cm4gbWluV2lkdGg7XG59XG5mdW5jdGlvbiBnZXRXaW5kb3dXaWR0aCgpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogZGVwZW5kcyBvbiB0ZXJtaW5hbCAqL1xuICAgIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgcHJvY2Vzcy5zdGRvdXQgJiYgcHJvY2Vzcy5zdGRvdXQuY29sdW1ucykge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGRvdXQuY29sdW1ucztcbiAgICB9XG4gICAgcmV0dXJuIDgwO1xufVxuZnVuY3Rpb24gYWxpZ25SaWdodChzdHIsIHdpZHRoKSB7XG4gICAgc3RyID0gc3RyLnRyaW0oKTtcbiAgICBjb25zdCBzdHJXaWR0aCA9IG1peGluLnN0cmluZ1dpZHRoKHN0cik7XG4gICAgaWYgKHN0cldpZHRoIDwgd2lkdGgpIHtcbiAgICAgICAgcmV0dXJuICcgJy5yZXBlYXQod2lkdGggLSBzdHJXaWR0aCkgKyBzdHI7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG59XG5mdW5jdGlvbiBhbGlnbkNlbnRlcihzdHIsIHdpZHRoKSB7XG4gICAgc3RyID0gc3RyLnRyaW0oKTtcbiAgICBjb25zdCBzdHJXaWR0aCA9IG1peGluLnN0cmluZ1dpZHRoKHN0cik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoc3RyV2lkdGggPj0gd2lkdGgpIHtcbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgcmV0dXJuICcgJy5yZXBlYXQoKHdpZHRoIC0gc3RyV2lkdGgpID4+IDEpICsgc3RyO1xufVxubGV0IG1peGluO1xuZnVuY3Rpb24gY2xpdWkob3B0cywgX21peGluKSB7XG4gICAgbWl4aW4gPSBfbWl4aW47XG4gICAgcmV0dXJuIG5ldyBVSSh7XG4gICAgICAgIHdpZHRoOiAob3B0cyA9PT0gbnVsbCB8fCBvcHRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRzLndpZHRoKSB8fCBnZXRXaW5kb3dXaWR0aCgpLFxuICAgICAgICB3cmFwOiBvcHRzID09PSBudWxsIHx8IG9wdHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdHMud3JhcFxuICAgIH0pO1xufVxuXG4vLyBCb290c3RyYXAgY2xpdWkgd2l0aCBDb21tb25KUyBkZXBlbmRlbmNpZXM6XG5jb25zdCBzdHJpbmdXaWR0aCA9IHJlcXVpcmUoJ3N0cmluZy13aWR0aCcpO1xuY29uc3Qgc3RyaXBBbnNpID0gcmVxdWlyZSgnc3RyaXAtYW5zaScpO1xuY29uc3Qgd3JhcCA9IHJlcXVpcmUoJ3dyYXAtYW5zaScpO1xuZnVuY3Rpb24gdWkob3B0cykge1xuICAgIHJldHVybiBjbGl1aShvcHRzLCB7XG4gICAgICAgIHN0cmluZ1dpZHRoLFxuICAgICAgICBzdHJpcEFuc2ksXG4gICAgICAgIHdyYXBcbiAgICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1aTtcbiIsICJjb25zdCB7IGRpcm5hbWUsIHJlc29sdmUgfSA9IHJlcXVpcmUoJ3BhdGgnKTtcbmNvbnN0IHsgcmVhZGRpclN5bmMsIHN0YXRTeW5jIH0gPSByZXF1aXJlKCdmcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChzdGFydCwgY2FsbGJhY2spIHtcblx0bGV0IGRpciA9IHJlc29sdmUoJy4nLCBzdGFydCk7XG5cdGxldCB0bXAsIHN0YXRzID0gc3RhdFN5bmMoZGlyKTtcblxuXHRpZiAoIXN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcblx0XHRkaXIgPSBkaXJuYW1lKGRpcik7XG5cdH1cblxuXHR3aGlsZSAodHJ1ZSkge1xuXHRcdHRtcCA9IGNhbGxiYWNrKGRpciwgcmVhZGRpclN5bmMoZGlyKSk7XG5cdFx0aWYgKHRtcCkgcmV0dXJuIHJlc29sdmUoZGlyLCB0bXApO1xuXHRcdGRpciA9IGRpcm5hbWUodG1wID0gZGlyKTtcblx0XHRpZiAodG1wID09PSBkaXIpIGJyZWFrO1xuXHR9XG59XG4iLCBudWxsLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnMgPSByZXF1aXJlKCdmcycpLFxuICBqb2luID0gcmVxdWlyZSgncGF0aCcpLmpvaW4sXG4gIHJlc29sdmUgPSByZXF1aXJlKCdwYXRoJykucmVzb2x2ZSxcbiAgZGlybmFtZSA9IHJlcXVpcmUoJ3BhdGgnKS5kaXJuYW1lLFxuICBkZWZhdWx0T3B0aW9ucyA9IHtcbiAgICBleHRlbnNpb25zOiBbJ2pzJywgJ2pzb24nLCAnY29mZmVlJ10sXG4gICAgcmVjdXJzZTogdHJ1ZSxcbiAgICByZW5hbWU6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9LFxuICAgIHZpc2l0OiBmdW5jdGlvbiAob2JqKSB7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgfTtcblxuZnVuY3Rpb24gY2hlY2tGaWxlSW5jbHVzaW9uKHBhdGgsIGZpbGVuYW1lLCBvcHRpb25zKSB7XG4gIHJldHVybiAoXG4gICAgLy8gdmVyaWZ5IGZpbGUgaGFzIHZhbGlkIGV4dGVuc2lvblxuICAgIChuZXcgUmVnRXhwKCdcXFxcLignICsgb3B0aW9ucy5leHRlbnNpb25zLmpvaW4oJ3wnKSArICcpJCcsICdpJykudGVzdChmaWxlbmFtZSkpICYmXG5cbiAgICAvLyBpZiBvcHRpb25zLmluY2x1ZGUgaXMgYSBSZWdFeHAsIGV2YWx1YXRlIGl0IGFuZCBtYWtlIHN1cmUgdGhlIHBhdGggcGFzc2VzXG4gICAgIShvcHRpb25zLmluY2x1ZGUgJiYgb3B0aW9ucy5pbmNsdWRlIGluc3RhbmNlb2YgUmVnRXhwICYmICFvcHRpb25zLmluY2x1ZGUudGVzdChwYXRoKSkgJiZcblxuICAgIC8vIGlmIG9wdGlvbnMuaW5jbHVkZSBpcyBhIGZ1bmN0aW9uLCBldmFsdWF0ZSBpdCBhbmQgbWFrZSBzdXJlIHRoZSBwYXRoIHBhc3Nlc1xuICAgICEob3B0aW9ucy5pbmNsdWRlICYmIHR5cGVvZiBvcHRpb25zLmluY2x1ZGUgPT09ICdmdW5jdGlvbicgJiYgIW9wdGlvbnMuaW5jbHVkZShwYXRoLCBmaWxlbmFtZSkpICYmXG5cbiAgICAvLyBpZiBvcHRpb25zLmV4Y2x1ZGUgaXMgYSBSZWdFeHAsIGV2YWx1YXRlIGl0IGFuZCBtYWtlIHN1cmUgdGhlIHBhdGggZG9lc24ndCBwYXNzXG4gICAgIShvcHRpb25zLmV4Y2x1ZGUgJiYgb3B0aW9ucy5leGNsdWRlIGluc3RhbmNlb2YgUmVnRXhwICYmIG9wdGlvbnMuZXhjbHVkZS50ZXN0KHBhdGgpKSAmJlxuXG4gICAgLy8gaWYgb3B0aW9ucy5leGNsdWRlIGlzIGEgZnVuY3Rpb24sIGV2YWx1YXRlIGl0IGFuZCBtYWtlIHN1cmUgdGhlIHBhdGggZG9lc24ndCBwYXNzXG4gICAgIShvcHRpb25zLmV4Y2x1ZGUgJiYgdHlwZW9mIG9wdGlvbnMuZXhjbHVkZSA9PT0gJ2Z1bmN0aW9uJyAmJiBvcHRpb25zLmV4Y2x1ZGUocGF0aCwgZmlsZW5hbWUpKVxuICApO1xufVxuXG5mdW5jdGlvbiByZXF1aXJlRGlyZWN0b3J5KG0sIHBhdGgsIG9wdGlvbnMpIHtcbiAgdmFyIHJldHZhbCA9IHt9O1xuXG4gIC8vIHBhdGggaXMgb3B0aW9uYWxcbiAgaWYgKHBhdGggJiYgIW9wdGlvbnMgJiYgdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgb3B0aW9ucyA9IHBhdGg7XG4gICAgcGF0aCA9IG51bGw7XG4gIH1cblxuICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGZvciAodmFyIHByb3AgaW4gZGVmYXVsdE9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnNbcHJvcF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBvcHRpb25zW3Byb3BdID0gZGVmYXVsdE9wdGlvbnNbcHJvcF07XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgbm8gcGF0aCB3YXMgcGFzc2VkIGluLCBhc3N1bWUgdGhlIGVxdWl2ZWxhbnQgb2YgX19kaXJuYW1lIGZyb20gY2FsbGVyXG4gIC8vIG90aGVyd2lzZSwgcmVzb2x2ZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBlcXVpdmFsZW50IG9mIF9fZGlybmFtZVxuICBwYXRoID0gIXBhdGggPyBkaXJuYW1lKG0uZmlsZW5hbWUpIDogcmVzb2x2ZShkaXJuYW1lKG0uZmlsZW5hbWUpLCBwYXRoKTtcblxuICAvLyBnZXQgdGhlIHBhdGggb2YgZWFjaCBmaWxlIGluIHNwZWNpZmllZCBkaXJlY3RvcnksIGFwcGVuZCB0byBjdXJyZW50IHRyZWUgbm9kZSwgcmVjdXJzZVxuICBmcy5yZWFkZGlyU3luYyhwYXRoKS5mb3JFYWNoKGZ1bmN0aW9uIChmaWxlbmFtZSkge1xuICAgIHZhciBqb2luZWQgPSBqb2luKHBhdGgsIGZpbGVuYW1lKSxcbiAgICAgIGZpbGVzLFxuICAgICAga2V5LFxuICAgICAgb2JqO1xuXG4gICAgaWYgKGZzLnN0YXRTeW5jKGpvaW5lZCkuaXNEaXJlY3RvcnkoKSAmJiBvcHRpb25zLnJlY3Vyc2UpIHtcbiAgICAgIC8vIHRoaXMgbm9kZSBpcyBhIGRpcmVjdG9yeTsgcmVjdXJzZVxuICAgICAgZmlsZXMgPSByZXF1aXJlRGlyZWN0b3J5KG0sIGpvaW5lZCwgb3B0aW9ucyk7XG4gICAgICAvLyBleGNsdWRlIGVtcHR5IGRpcmVjdG9yaWVzXG4gICAgICBpZiAoT2JqZWN0LmtleXMoZmlsZXMpLmxlbmd0aCkge1xuICAgICAgICByZXR2YWxbb3B0aW9ucy5yZW5hbWUoZmlsZW5hbWUsIGpvaW5lZCwgZmlsZW5hbWUpXSA9IGZpbGVzO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoam9pbmVkICE9PSBtLmZpbGVuYW1lICYmIGNoZWNrRmlsZUluY2x1c2lvbihqb2luZWQsIGZpbGVuYW1lLCBvcHRpb25zKSkge1xuICAgICAgICAvLyBoYXNoIG5vZGUga2V5IHNob3VsZG4ndCBpbmNsdWRlIGZpbGUgZXh0ZW5zaW9uXG4gICAgICAgIGtleSA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZignLicpKTtcbiAgICAgICAgb2JqID0gbS5yZXF1aXJlKGpvaW5lZCk7XG4gICAgICAgIHJldHZhbFtvcHRpb25zLnJlbmFtZShrZXksIGpvaW5lZCwgZmlsZW5hbWUpXSA9IG9wdGlvbnMudmlzaXQob2JqLCBqb2luZWQsIGZpbGVuYW1lKSB8fCBvYmo7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmV0dmFsO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVEaXJlY3Rvcnk7XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0cyA9IGRlZmF1bHRPcHRpb25zO1xuIiwgIlwidXNlIHN0cmljdFwiO3ZhciB0PXJlcXVpcmUoXCJhc3NlcnRcIik7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHR8fFwieWFyZ3MgZXJyb3JcIiksdGhpcy5uYW1lPVwiWUVycm9yXCIsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSl9fWxldCBzLGk9W107ZnVuY3Rpb24gbih0LG8sYSxoKXtzPWg7bGV0IGw9e307aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsXCJleHRlbmRzXCIpKXtpZihcInN0cmluZ1wiIT10eXBlb2YgdC5leHRlbmRzKXJldHVybiBsO2NvbnN0IHI9L1xcLmpzb258XFwuLipyYyQvLnRlc3QodC5leHRlbmRzKTtsZXQgaD1udWxsO2lmKHIpaD1mdW5jdGlvbih0LGUpe3JldHVybiBzLnBhdGgucmVzb2x2ZSh0LGUpfShvLHQuZXh0ZW5kcyk7ZWxzZSB0cnl7aD1yZXF1aXJlLnJlc29sdmUodC5leHRlbmRzKX1jYXRjaChlKXtyZXR1cm4gdH0hZnVuY3Rpb24odCl7aWYoaS5pbmRleE9mKHQpPi0xKXRocm93IG5ldyBlKGBDaXJjdWxhciBleHRlbmRlZCBjb25maWd1cmF0aW9uczogJyR7dH0nLmApfShoKSxpLnB1c2goaCksbD1yP0pTT04ucGFyc2Uocy5yZWFkRmlsZVN5bmMoaCxcInV0ZjhcIikpOnJlcXVpcmUodC5leHRlbmRzKSxkZWxldGUgdC5leHRlbmRzLGw9bihsLHMucGF0aC5kaXJuYW1lKGgpLGEscyl9cmV0dXJuIGk9W10sYT9yKGwsdCk6T2JqZWN0LmFzc2lnbih7fSxsLHQpfWZ1bmN0aW9uIHIodCxlKXtjb25zdCBzPXt9O2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiYhQXJyYXkuaXNBcnJheSh0KX1PYmplY3QuYXNzaWduKHMsdCk7Zm9yKGNvbnN0IG4gb2YgT2JqZWN0LmtleXMoZSkpaShlW25dKSYmaShzW25dKT9zW25dPXIodFtuXSxlW25dKTpzW25dPWVbbl07cmV0dXJuIHN9ZnVuY3Rpb24gbyh0KXtjb25zdCBlPXQucmVwbGFjZSgvXFxzezIsfS9nLFwiIFwiKS5zcGxpdCgvXFxzKyg/IVteW10qXXxbXjxdKj4pLykscz0vXFwuKltcXF1bPD5dL2csaT1lLnNoaWZ0KCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKGBObyBjb21tYW5kIGZvdW5kIGluOiAke3R9YCk7Y29uc3Qgbj17Y21kOmkucmVwbGFjZShzLFwiXCIpLGRlbWFuZGVkOltdLG9wdGlvbmFsOltdfTtyZXR1cm4gZS5mb3JFYWNoKCgodCxpKT0+e2xldCByPSExO3Q9dC5yZXBsYWNlKC9cXHMvZyxcIlwiKSwvXFwuK1tcXF0+XS8udGVzdCh0KSYmaT09PWUubGVuZ3RoLTEmJihyPSEwKSwvXlxcWy8udGVzdCh0KT9uLm9wdGlvbmFsLnB1c2goe2NtZDp0LnJlcGxhY2UocyxcIlwiKS5zcGxpdChcInxcIiksdmFyaWFkaWM6cn0pOm4uZGVtYW5kZWQucHVzaCh7Y21kOnQucmVwbGFjZShzLFwiXCIpLnNwbGl0KFwifFwiKSx2YXJpYWRpYzpyfSl9KSksbn1jb25zdCBhPVtcImZpcnN0XCIsXCJzZWNvbmRcIixcInRoaXJkXCIsXCJmb3VydGhcIixcImZpZnRoXCIsXCJzaXh0aFwiXTtmdW5jdGlvbiBoKHQscyxpKXt0cnl7bGV0IG49MDtjb25zdFtyLGEsaF09XCJvYmplY3RcIj09dHlwZW9mIHQ/W3tkZW1hbmRlZDpbXSxvcHRpb25hbDpbXX0sdCxzXTpbbyhgY21kICR7dH1gKSxzLGldLGY9W10uc2xpY2UuY2FsbChhKTtmb3IoO2YubGVuZ3RoJiZ2b2lkIDA9PT1mW2YubGVuZ3RoLTFdOylmLnBvcCgpO2NvbnN0IGQ9aHx8Zi5sZW5ndGg7aWYoZDxyLmRlbWFuZGVkLmxlbmd0aCl0aHJvdyBuZXcgZShgTm90IGVub3VnaCBhcmd1bWVudHMgcHJvdmlkZWQuIEV4cGVjdGVkICR7ci5kZW1hbmRlZC5sZW5ndGh9IGJ1dCByZWNlaXZlZCAke2YubGVuZ3RofS5gKTtjb25zdCB1PXIuZGVtYW5kZWQubGVuZ3RoK3Iub3B0aW9uYWwubGVuZ3RoO2lmKGQ+dSl0aHJvdyBuZXcgZShgVG9vIG1hbnkgYXJndW1lbnRzIHByb3ZpZGVkLiBFeHBlY3RlZCBtYXggJHt1fSBidXQgcmVjZWl2ZWQgJHtkfS5gKTtyLmRlbWFuZGVkLmZvckVhY2goKHQ9Pntjb25zdCBlPWwoZi5zaGlmdCgpKTswPT09dC5jbWQuZmlsdGVyKCh0PT50PT09ZXx8XCIqXCI9PT10KSkubGVuZ3RoJiZjKGUsdC5jbWQsbiksbis9MX0pKSxyLm9wdGlvbmFsLmZvckVhY2goKHQ9PntpZigwPT09Zi5sZW5ndGgpcmV0dXJuO2NvbnN0IGU9bChmLnNoaWZ0KCkpOzA9PT10LmNtZC5maWx0ZXIoKHQ9PnQ9PT1lfHxcIipcIj09PXQpKS5sZW5ndGgmJmMoZSx0LmNtZCxuKSxuKz0xfSkpfWNhdGNoKHQpe2NvbnNvbGUud2Fybih0LnN0YWNrKX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9cImFycmF5XCI6bnVsbD09PXQ/XCJudWxsXCI6dHlwZW9mIHR9ZnVuY3Rpb24gYyh0LHMsaSl7dGhyb3cgbmV3IGUoYEludmFsaWQgJHthW2ldfHxcIm1hbnlpdGhcIn0gYXJndW1lbnQuIEV4cGVjdGVkICR7cy5qb2luKFwiIG9yIFwiKX0gYnV0IHJlY2VpdmVkICR7dH0uYCl9ZnVuY3Rpb24gZih0KXtyZXR1cm4hIXQmJiEhdC50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW59ZnVuY3Rpb24gZCh0LGUscyxpKXtzLmFzc2VydC5ub3RTdHJpY3RFcXVhbCh0LGUsaSl9ZnVuY3Rpb24gdSh0LGUpe2UuYXNzZXJ0LnN0cmljdEVxdWFsKHR5cGVvZiB0LFwic3RyaW5nXCIpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpfWZ1bmN0aW9uIGcodD17fSxlPSgoKT0+ITApKXtjb25zdCBzPXt9O3JldHVybiBwKHQpLmZvckVhY2goKGk9PntlKGksdFtpXSkmJihzW2ldPXRbaV0pfSkpLHN9ZnVuY3Rpb24gbSgpe3JldHVybiBwcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uJiYhcHJvY2Vzcy5kZWZhdWx0QXBwPzA6MX1mdW5jdGlvbiB5KCl7cmV0dXJuIHByb2Nlc3MuYXJndlttKCldfXZhciBiPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGhpZGVCaW46ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UobSgpKzEpfSxnZXRQcm9jZXNzQXJndkJpbjp5fSk7ZnVuY3Rpb24gdih0LGUscyxpKXtpZihcImFcIj09PXMmJiFpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXJcIik7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZT90IT09ZXx8IWk6IWUuaGFzKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXRcIik7cmV0dXJuXCJtXCI9PT1zP2k6XCJhXCI9PT1zP2kuY2FsbCh0KTppP2kudmFsdWU6ZS5nZXQodCl9ZnVuY3Rpb24gTyh0LGUscyxpLG4pe2lmKFwibVwiPT09aSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlXCIpO2lmKFwiYVwiPT09aSYmIW4pdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlclwiKTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP3QhPT1lfHwhbjohZS5oYXModCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO3JldHVyblwiYVwiPT09aT9uLmNhbGwodCxzKTpuP24udmFsdWU9czplLnNldCh0LHMpLHN9Y2xhc3Mgd3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmdsb2JhbE1pZGRsZXdhcmU9W10sdGhpcy5mcm96ZW5zPVtdLHRoaXMueWFyZ3M9dH1hZGRNaWRkbGV3YXJlKHQsZSxzPSEwLGk9ITEpe2lmKGgoXCI8YXJyYXl8ZnVuY3Rpb24+IFtib29sZWFuXSBbYm9vbGVhbl0gW2Jvb2xlYW5dXCIsW3QsZSxzXSxhcmd1bWVudHMubGVuZ3RoKSxBcnJheS5pc0FycmF5KHQpKXtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdFtpXSl0aHJvdyBFcnJvcihcIm1pZGRsZXdhcmUgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO2NvbnN0IG49dFtpXTtuLmFwcGx5QmVmb3JlVmFsaWRhdGlvbj1lLG4uZ2xvYmFsPXN9QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy5nbG9iYWxNaWRkbGV3YXJlLHQpfWVsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdCl7Y29uc3Qgbj10O24uYXBwbHlCZWZvcmVWYWxpZGF0aW9uPWUsbi5nbG9iYWw9cyxuLm11dGF0ZXM9aSx0aGlzLmdsb2JhbE1pZGRsZXdhcmUucHVzaCh0KX1yZXR1cm4gdGhpcy55YXJnc31hZGRDb2VyY2VNaWRkbGV3YXJlKHQsZSl7Y29uc3Qgcz10aGlzLnlhcmdzLmdldEFsaWFzZXMoKTtyZXR1cm4gdGhpcy5nbG9iYWxNaWRkbGV3YXJlPXRoaXMuZ2xvYmFsTWlkZGxld2FyZS5maWx0ZXIoKHQ9Pntjb25zdCBpPVsuLi5zW2VdfHxbXSxlXTtyZXR1cm4hdC5vcHRpb258fCFpLmluY2x1ZGVzKHQub3B0aW9uKX0pKSx0Lm9wdGlvbj1lLHRoaXMuYWRkTWlkZGxld2FyZSh0LCEwLCEwLCEwKX1nZXRNaWRkbGV3YXJlKCl7cmV0dXJuIHRoaXMuZ2xvYmFsTWlkZGxld2FyZX1mcmVlemUoKXt0aGlzLmZyb3plbnMucHVzaChbLi4udGhpcy5nbG9iYWxNaWRkbGV3YXJlXSl9dW5mcmVlemUoKXtjb25zdCB0PXRoaXMuZnJvemVucy5wb3AoKTt2b2lkIDAhPT10JiYodGhpcy5nbG9iYWxNaWRkbGV3YXJlPXQpfXJlc2V0KCl7dGhpcy5nbG9iYWxNaWRkbGV3YXJlPXRoaXMuZ2xvYmFsTWlkZGxld2FyZS5maWx0ZXIoKHQ9PnQuZ2xvYmFsKSl9fWZ1bmN0aW9uIEModCxlLHMsaSl7cmV0dXJuIHMucmVkdWNlKCgodCxzKT0+e2lmKHMuYXBwbHlCZWZvcmVWYWxpZGF0aW9uIT09aSlyZXR1cm4gdDtpZihzLm11dGF0ZXMpe2lmKHMuYXBwbGllZClyZXR1cm4gdDtzLmFwcGxpZWQ9ITB9aWYoZih0KSlyZXR1cm4gdC50aGVuKCh0PT5Qcm9taXNlLmFsbChbdCxzKHQsZSldKSkpLnRoZW4oKChbdCxlXSk9Pk9iamVjdC5hc3NpZ24odCxlKSkpO3tjb25zdCBpPXModCxlKTtyZXR1cm4gZihpKT9pLnRoZW4oKGU9Pk9iamVjdC5hc3NpZ24odCxlKSkpOk9iamVjdC5hc3NpZ24odCxpKX19KSx0KX1mdW5jdGlvbiBqKHQsZSxzPSh0PT57dGhyb3cgdH0pKXt0cnl7Y29uc3Qgcz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoKTp0O3JldHVybiBmKHMpP3MudGhlbigodD0+ZSh0KSkpOmUocyl9Y2F0Y2godCl7cmV0dXJuIHModCl9fWNvbnN0IF89LyheXFwqKXwoXlxcJDApLztjbGFzcyBNe2NvbnN0cnVjdG9yKHQsZSxzLGkpe3RoaXMucmVxdWlyZUNhY2hlPW5ldyBTZXQsdGhpcy5oYW5kbGVycz17fSx0aGlzLmFsaWFzTWFwPXt9LHRoaXMuZnJvemVucz1bXSx0aGlzLnNoaW09aSx0aGlzLnVzYWdlPXQsdGhpcy5nbG9iYWxNaWRkbGV3YXJlPXMsdGhpcy52YWxpZGF0aW9uPWV9YWRkRGlyZWN0b3J5KHQsZSxzLGkpe1wiYm9vbGVhblwiIT10eXBlb2YoaT1pfHx7fSkucmVjdXJzZSYmKGkucmVjdXJzZT0hMSksQXJyYXkuaXNBcnJheShpLmV4dGVuc2lvbnMpfHwoaS5leHRlbnNpb25zPVtcImpzXCJdKTtjb25zdCBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGkudmlzaXQ/aS52aXNpdDp0PT50O2kudmlzaXQ9KHQsZSxzKT0+e2NvbnN0IGk9bih0LGUscyk7aWYoaSl7aWYodGhpcy5yZXF1aXJlQ2FjaGUuaGFzKGUpKXJldHVybiBpO3RoaXMucmVxdWlyZUNhY2hlLmFkZChlKSx0aGlzLmFkZEhhbmRsZXIoaSl9cmV0dXJuIGl9LHRoaXMuc2hpbS5yZXF1aXJlRGlyZWN0b3J5KHtyZXF1aXJlOmUsZmlsZW5hbWU6c30sdCxpKX1hZGRIYW5kbGVyKHQsZSxzLGksbixyKXtsZXQgYT1bXTtjb25zdCBoPWZ1bmN0aW9uKHQpe3JldHVybiB0P3QubWFwKCh0PT4odC5hcHBseUJlZm9yZVZhbGlkYXRpb249ITEsdCkpKTpbXX0obik7aWYoaT1pfHwoKCk9Pnt9KSxBcnJheS5pc0FycmF5KHQpKWlmKGZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KCh0PT5cInN0cmluZ1wiPT10eXBlb2YgdCkpfSh0KSlbdCwuLi5hXT10O2Vsc2UgZm9yKGNvbnN0IGUgb2YgdCl0aGlzLmFkZEhhbmRsZXIoZSk7ZWxzZXtpZihmdW5jdGlvbih0KXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgdCYmIUFycmF5LmlzQXJyYXkodCl9KHQpKXtsZXQgZT1BcnJheS5pc0FycmF5KHQuY29tbWFuZCl8fFwic3RyaW5nXCI9PXR5cGVvZiB0LmNvbW1hbmQ/dC5jb21tYW5kOnRoaXMubW9kdWxlTmFtZSh0KTtyZXR1cm4gdC5hbGlhc2VzJiYoZT1bXS5jb25jYXQoZSkuY29uY2F0KHQuYWxpYXNlcykpLHZvaWQgdGhpcy5hZGRIYW5kbGVyKGUsdGhpcy5leHRyYWN0RGVzYyh0KSx0LmJ1aWxkZXIsdC5oYW5kbGVyLHQubWlkZGxld2FyZXMsdC5kZXByZWNhdGVkKX1pZihrKHMpKXJldHVybiB2b2lkIHRoaXMuYWRkSGFuZGxlcihbdF0uY29uY2F0KGEpLGUscy5idWlsZGVyLHMuaGFuZGxlcixzLm1pZGRsZXdhcmVzLHMuZGVwcmVjYXRlZCl9aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQpe2NvbnN0IG49byh0KTthPWEubWFwKCh0PT5vKHQpLmNtZCkpO2xldCBsPSExO2NvbnN0IGM9W24uY21kXS5jb25jYXQoYSkuZmlsdGVyKCh0PT4hXy50ZXN0KHQpfHwobD0hMCwhMSkpKTswPT09Yy5sZW5ndGgmJmwmJmMucHVzaChcIiQwXCIpLGwmJihuLmNtZD1jWzBdLGE9Yy5zbGljZSgxKSx0PXQucmVwbGFjZShfLG4uY21kKSksYS5mb3JFYWNoKCh0PT57dGhpcy5hbGlhc01hcFt0XT1uLmNtZH0pKSwhMSE9PWUmJnRoaXMudXNhZ2UuY29tbWFuZCh0LGUsbCxhLHIpLHRoaXMuaGFuZGxlcnNbbi5jbWRdPXtvcmlnaW5hbDp0LGRlc2NyaXB0aW9uOmUsaGFuZGxlcjppLGJ1aWxkZXI6c3x8e30sbWlkZGxld2FyZXM6aCxkZXByZWNhdGVkOnIsZGVtYW5kZWQ6bi5kZW1hbmRlZCxvcHRpb25hbDpuLm9wdGlvbmFsfSxsJiYodGhpcy5kZWZhdWx0Q29tbWFuZD10aGlzLmhhbmRsZXJzW24uY21kXSl9fWdldENvbW1hbmRIYW5kbGVycygpe3JldHVybiB0aGlzLmhhbmRsZXJzfWdldENvbW1hbmRzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuaGFuZGxlcnMpLmNvbmNhdChPYmplY3Qua2V5cyh0aGlzLmFsaWFzTWFwKSl9aGFzRGVmYXVsdENvbW1hbmQoKXtyZXR1cm4hIXRoaXMuZGVmYXVsdENvbW1hbmR9cnVuQ29tbWFuZCh0LGUscyxpLG4scil7Y29uc3Qgbz10aGlzLmhhbmRsZXJzW3RdfHx0aGlzLmhhbmRsZXJzW3RoaXMuYWxpYXNNYXBbdF1dfHx0aGlzLmRlZmF1bHRDb21tYW5kLGE9ZS5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRDb250ZXh0KCksaD1hLmNvbW1hbmRzLnNsaWNlKCksbD0hdDt0JiYoYS5jb21tYW5kcy5wdXNoKHQpLGEuZnVsbENvbW1hbmRzLnB1c2goby5vcmlnaW5hbCkpO2NvbnN0IGM9dGhpcy5hcHBseUJ1aWxkZXJVcGRhdGVVc2FnZUFuZFBhcnNlKGwsbyxlLHMuYWxpYXNlcyxoLGksbixyKTtyZXR1cm4gZihjKT9jLnRoZW4oKHQ9PnRoaXMuYXBwbHlNaWRkbGV3YXJlQW5kR2V0UmVzdWx0KGwsbyx0LmlubmVyQXJndixhLG4sdC5hbGlhc2VzLGUpKSk6dGhpcy5hcHBseU1pZGRsZXdhcmVBbmRHZXRSZXN1bHQobCxvLGMuaW5uZXJBcmd2LGEsbixjLmFsaWFzZXMsZSl9YXBwbHlCdWlsZGVyVXBkYXRlVXNhZ2VBbmRQYXJzZSh0LGUscyxpLG4scixvLGEpe2NvbnN0IGg9ZS5idWlsZGVyO2xldCBsPXM7aWYoeChoKSl7Y29uc3QgYz1oKHMuZ2V0SW50ZXJuYWxNZXRob2RzKCkucmVzZXQoaSksYSk7aWYoZihjKSlyZXR1cm4gYy50aGVuKChpPT57dmFyIGE7cmV0dXJuIGw9KGE9aSkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0SW50ZXJuYWxNZXRob2RzP2k6cyx0aGlzLnBhcnNlQW5kVXBkYXRlVXNhZ2UodCxlLGwsbixyLG8pfSkpfWVsc2UoZnVuY3Rpb24odCl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIHR9KShoKSYmKGw9cy5nZXRJbnRlcm5hbE1ldGhvZHMoKS5yZXNldChpKSxPYmplY3Qua2V5cyhlLmJ1aWxkZXIpLmZvckVhY2goKHQ9PntsLm9wdGlvbih0LGhbdF0pfSkpKTtyZXR1cm4gdGhpcy5wYXJzZUFuZFVwZGF0ZVVzYWdlKHQsZSxsLG4scixvKX1wYXJzZUFuZFVwZGF0ZVVzYWdlKHQsZSxzLGksbixyKXt0JiZzLmdldEludGVybmFsTWV0aG9kcygpLmdldFVzYWdlSW5zdGFuY2UoKS51bmZyZWV6ZSghMCksdGhpcy5zaG91bGRVcGRhdGVVc2FnZShzKSYmcy5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRVc2FnZUluc3RhbmNlKCkudXNhZ2UodGhpcy51c2FnZUZyb21QYXJlbnRDb21tYW5kc0NvbW1hbmRIYW5kbGVyKGksZSksZS5kZXNjcmlwdGlvbik7Y29uc3Qgbz1zLmdldEludGVybmFsTWV0aG9kcygpLnJ1bllhcmdzUGFyc2VyQW5kRXhlY3V0ZUNvbW1hbmRzKG51bGwsdm9pZCAwLCEwLG4scik7cmV0dXJuIGYobyk/by50aGVuKCh0PT4oe2FsaWFzZXM6cy5wYXJzZWQuYWxpYXNlcyxpbm5lckFyZ3Y6dH0pKSk6e2FsaWFzZXM6cy5wYXJzZWQuYWxpYXNlcyxpbm5lckFyZ3Y6b319c2hvdWxkVXBkYXRlVXNhZ2UodCl7cmV0dXJuIXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0VXNhZ2VJbnN0YW5jZSgpLmdldFVzYWdlRGlzYWJsZWQoKSYmMD09PXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0VXNhZ2VJbnN0YW5jZSgpLmdldFVzYWdlKCkubGVuZ3RofXVzYWdlRnJvbVBhcmVudENvbW1hbmRzQ29tbWFuZEhhbmRsZXIodCxlKXtjb25zdCBzPV8udGVzdChlLm9yaWdpbmFsKT9lLm9yaWdpbmFsLnJlcGxhY2UoXyxcIlwiKS50cmltKCk6ZS5vcmlnaW5hbCxpPXQuZmlsdGVyKCh0PT4hXy50ZXN0KHQpKSk7cmV0dXJuIGkucHVzaChzKSxgJDAgJHtpLmpvaW4oXCIgXCIpfWB9aGFuZGxlVmFsaWRhdGlvbkFuZEdldFJlc3VsdCh0LGUscyxpLG4scixvLGEpe2lmKCFyLmdldEludGVybmFsTWV0aG9kcygpLmdldEhhc091dHB1dCgpKXtjb25zdCBlPXIuZ2V0SW50ZXJuYWxNZXRob2RzKCkucnVuVmFsaWRhdGlvbihuLGEsci5wYXJzZWQuZXJyb3IsdCk7cz1qKHMsKHQ9PihlKHQpLHQpKSl9aWYoZS5oYW5kbGVyJiYhci5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRIYXNPdXRwdXQoKSl7ci5nZXRJbnRlcm5hbE1ldGhvZHMoKS5zZXRIYXNPdXRwdXQoKTtjb25zdCBpPSEhci5nZXRPcHRpb25zKCkuY29uZmlndXJhdGlvbltcInBvcHVsYXRlLS1cIl07ci5nZXRJbnRlcm5hbE1ldGhvZHMoKS5wb3N0UHJvY2VzcyhzLGksITEsITEpLHM9aihzPUMocyxyLG8sITEpLCh0PT57Y29uc3Qgcz1lLmhhbmRsZXIodCk7cmV0dXJuIGYocyk/cy50aGVuKCgoKT0+dCkpOnR9KSksdHx8ci5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRVc2FnZUluc3RhbmNlKCkuY2FjaGVIZWxwTWVzc2FnZSgpLGYocykmJiFyLmdldEludGVybmFsTWV0aG9kcygpLmhhc1BhcnNlQ2FsbGJhY2soKSYmcy5jYXRjaCgodD0+e3RyeXtyLmdldEludGVybmFsTWV0aG9kcygpLmdldFVzYWdlSW5zdGFuY2UoKS5mYWlsKG51bGwsdCl9Y2F0Y2godCl7fX0pKX1yZXR1cm4gdHx8KGkuY29tbWFuZHMucG9wKCksaS5mdWxsQ29tbWFuZHMucG9wKCkpLHN9YXBwbHlNaWRkbGV3YXJlQW5kR2V0UmVzdWx0KHQsZSxzLGksbixyLG8pe2xldCBhPXt9O2lmKG4pcmV0dXJuIHM7by5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRIYXNPdXRwdXQoKXx8KGE9dGhpcy5wb3B1bGF0ZVBvc2l0aW9uYWxzKGUscyxpLG8pKTtjb25zdCBoPXRoaXMuZ2xvYmFsTWlkZGxld2FyZS5nZXRNaWRkbGV3YXJlKCkuc2xpY2UoMCkuY29uY2F0KGUubWlkZGxld2FyZXMpLGw9QyhzLG8saCwhMCk7cmV0dXJuIGYobCk/bC50aGVuKChzPT50aGlzLmhhbmRsZVZhbGlkYXRpb25BbmRHZXRSZXN1bHQodCxlLHMsaSxyLG8saCxhKSkpOnRoaXMuaGFuZGxlVmFsaWRhdGlvbkFuZEdldFJlc3VsdCh0LGUsbCxpLHIsbyxoLGEpfXBvcHVsYXRlUG9zaXRpb25hbHModCxlLHMsaSl7ZS5fPWUuXy5zbGljZShzLmNvbW1hbmRzLmxlbmd0aCk7Y29uc3Qgbj10LmRlbWFuZGVkLnNsaWNlKDApLHI9dC5vcHRpb25hbC5zbGljZSgwKSxvPXt9O2Zvcih0aGlzLnZhbGlkYXRpb24ucG9zaXRpb25hbENvdW50KG4ubGVuZ3RoLGUuXy5sZW5ndGgpO24ubGVuZ3RoOyl7Y29uc3QgdD1uLnNoaWZ0KCk7dGhpcy5wb3B1bGF0ZVBvc2l0aW9uYWwodCxlLG8pfWZvcig7ci5sZW5ndGg7KXtjb25zdCB0PXIuc2hpZnQoKTt0aGlzLnBvcHVsYXRlUG9zaXRpb25hbCh0LGUsbyl9cmV0dXJuIGUuXz1zLmNvbW1hbmRzLmNvbmNhdChlLl8ubWFwKCh0PT5cIlwiK3QpKSksdGhpcy5wb3N0UHJvY2Vzc1Bvc2l0aW9uYWxzKGUsbyx0aGlzLmNtZFRvUGFyc2VPcHRpb25zKHQub3JpZ2luYWwpLGkpLG99cG9wdWxhdGVQb3NpdGlvbmFsKHQsZSxzKXtjb25zdCBpPXQuY21kWzBdO3QudmFyaWFkaWM/c1tpXT1lLl8uc3BsaWNlKDApLm1hcChTdHJpbmcpOmUuXy5sZW5ndGgmJihzW2ldPVtTdHJpbmcoZS5fLnNoaWZ0KCkpXSl9Y21kVG9QYXJzZU9wdGlvbnModCl7Y29uc3QgZT17YXJyYXk6W10sZGVmYXVsdDp7fSxhbGlhczp7fSxkZW1hbmQ6e319LHM9byh0KTtyZXR1cm4gcy5kZW1hbmRlZC5mb3JFYWNoKCh0PT57Y29uc3RbcywuLi5pXT10LmNtZDt0LnZhcmlhZGljJiYoZS5hcnJheS5wdXNoKHMpLGUuZGVmYXVsdFtzXT1bXSksZS5hbGlhc1tzXT1pLGUuZGVtYW5kW3NdPSEwfSkpLHMub3B0aW9uYWwuZm9yRWFjaCgodD0+e2NvbnN0W3MsLi4uaV09dC5jbWQ7dC52YXJpYWRpYyYmKGUuYXJyYXkucHVzaChzKSxlLmRlZmF1bHRbc109W10pLGUuYWxpYXNbc109aX0pKSxlfXBvc3RQcm9jZXNzUG9zaXRpb25hbHModCxlLHMsaSl7Y29uc3Qgbj1PYmplY3QuYXNzaWduKHt9LGkuZ2V0T3B0aW9ucygpKTtuLmRlZmF1bHQ9T2JqZWN0LmFzc2lnbihzLmRlZmF1bHQsbi5kZWZhdWx0KTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhzLmFsaWFzKSluLmFsaWFzW3RdPShuLmFsaWFzW3RdfHxbXSkuY29uY2F0KHMuYWxpYXNbdF0pO24uYXJyYXk9bi5hcnJheS5jb25jYXQocy5hcnJheSksbi5jb25maWc9e307Y29uc3Qgcj1bXTtpZihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57ZVt0XS5tYXAoKGU9PntuLmNvbmZpZ3VyYXRpb25bXCJ1bmtub3duLW9wdGlvbnMtYXMtYXJnc1wiXSYmKG4ua2V5W3RdPSEwKSxyLnB1c2goYC0tJHt0fWApLHIucHVzaChlKX0pKX0pKSwhci5sZW5ndGgpcmV0dXJuO2NvbnN0IG89T2JqZWN0LmFzc2lnbih7fSxuLmNvbmZpZ3VyYXRpb24se1wicG9wdWxhdGUtLVwiOiExfSksYT10aGlzLnNoaW0uUGFyc2VyLmRldGFpbGVkKHIsT2JqZWN0LmFzc2lnbih7fSxuLHtjb25maWd1cmF0aW9uOm99KSk7aWYoYS5lcnJvcilpLmdldEludGVybmFsTWV0aG9kcygpLmdldFVzYWdlSW5zdGFuY2UoKS5mYWlsKGEuZXJyb3IubWVzc2FnZSxhLmVycm9yKTtlbHNle2NvbnN0IHM9T2JqZWN0LmtleXMoZSk7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e3MucHVzaCguLi5hLmFsaWFzZXNbdF0pfSkpLE9iamVjdC5rZXlzKGEuYXJndikuZm9yRWFjaCgobj0+e3MuaW5jbHVkZXMobikmJihlW25dfHwoZVtuXT1hLmFyZ3Zbbl0pLCF0aGlzLmlzSW5Db25maWdzKGksbikmJiF0aGlzLmlzRGVmYXVsdGVkKGksbikmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYS5hcmd2LG4pJiYoQXJyYXkuaXNBcnJheSh0W25dKXx8QXJyYXkuaXNBcnJheShhLmFyZ3Zbbl0pKT90W25dPVtdLmNvbmNhdCh0W25dLGEuYXJndltuXSk6dFtuXT1hLmFyZ3Zbbl0pfSkpfX1pc0RlZmF1bHRlZCh0LGUpe2NvbnN0e2RlZmF1bHQ6c309dC5nZXRPcHRpb25zKCk7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGUpfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyx0aGlzLnNoaW0uUGFyc2VyLmNhbWVsQ2FzZShlKSl9aXNJbkNvbmZpZ3ModCxlKXtjb25zdHtjb25maWdPYmplY3RzOnN9PXQuZ2V0T3B0aW9ucygpO3JldHVybiBzLnNvbWUoKHQ9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKSl8fHMuc29tZSgodD0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsdGhpcy5zaGltLlBhcnNlci5jYW1lbENhc2UoZSkpKSl9cnVuRGVmYXVsdEJ1aWxkZXJPbih0KXtpZighdGhpcy5kZWZhdWx0Q29tbWFuZClyZXR1cm47aWYodGhpcy5zaG91bGRVcGRhdGVVc2FnZSh0KSl7Y29uc3QgZT1fLnRlc3QodGhpcy5kZWZhdWx0Q29tbWFuZC5vcmlnaW5hbCk/dGhpcy5kZWZhdWx0Q29tbWFuZC5vcmlnaW5hbDp0aGlzLmRlZmF1bHRDb21tYW5kLm9yaWdpbmFsLnJlcGxhY2UoL15bXltcXF08Pl0qLyxcIiQwIFwiKTt0LmdldEludGVybmFsTWV0aG9kcygpLmdldFVzYWdlSW5zdGFuY2UoKS51c2FnZShlLHRoaXMuZGVmYXVsdENvbW1hbmQuZGVzY3JpcHRpb24pfWNvbnN0IGU9dGhpcy5kZWZhdWx0Q29tbWFuZC5idWlsZGVyO2lmKHgoZSkpcmV0dXJuIGUodCwhMCk7ayhlKXx8T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgocz0+e3Qub3B0aW9uKHMsZVtzXSl9KSl9bW9kdWxlTmFtZSh0KXtjb25zdCBlPWZ1bmN0aW9uKHQpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiByZXF1aXJlKXJldHVybiBudWxsO2ZvcihsZXQgZSxzPTAsaT1PYmplY3Qua2V5cyhyZXF1aXJlLmNhY2hlKTtzPGkubGVuZ3RoO3MrKylpZihlPXJlcXVpcmUuY2FjaGVbaVtzXV0sZS5leHBvcnRzPT09dClyZXR1cm4gZTtyZXR1cm4gbnVsbH0odCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKGBObyBjb21tYW5kIG5hbWUgZ2l2ZW4gZm9yIG1vZHVsZTogJHt0aGlzLnNoaW0uaW5zcGVjdCh0KX1gKTtyZXR1cm4gdGhpcy5jb21tYW5kRnJvbUZpbGVuYW1lKGUuZmlsZW5hbWUpfWNvbW1hbmRGcm9tRmlsZW5hbWUodCl7cmV0dXJuIHRoaXMuc2hpbS5wYXRoLmJhc2VuYW1lKHQsdGhpcy5zaGltLnBhdGguZXh0bmFtZSh0KSl9ZXh0cmFjdERlc2Moe2Rlc2NyaWJlOnQsZGVzY3JpcHRpb246ZSxkZXNjOnN9KXtmb3IoY29uc3QgaSBvZlt0LGUsc10pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBpfHwhMT09PWkpcmV0dXJuIGk7ZChpLCEwLHRoaXMuc2hpbSl9cmV0dXJuITF9ZnJlZXplKCl7dGhpcy5mcm96ZW5zLnB1c2goe2hhbmRsZXJzOnRoaXMuaGFuZGxlcnMsYWxpYXNNYXA6dGhpcy5hbGlhc01hcCxkZWZhdWx0Q29tbWFuZDp0aGlzLmRlZmF1bHRDb21tYW5kfSl9dW5mcmVlemUoKXtjb25zdCB0PXRoaXMuZnJvemVucy5wb3AoKTtkKHQsdm9pZCAwLHRoaXMuc2hpbSksKHtoYW5kbGVyczp0aGlzLmhhbmRsZXJzLGFsaWFzTWFwOnRoaXMuYWxpYXNNYXAsZGVmYXVsdENvbW1hbmQ6dGhpcy5kZWZhdWx0Q29tbWFuZH09dCl9cmVzZXQoKXtyZXR1cm4gdGhpcy5oYW5kbGVycz17fSx0aGlzLmFsaWFzTWFwPXt9LHRoaXMuZGVmYXVsdENvbW1hbmQ9dm9pZCAwLHRoaXMucmVxdWlyZUNhY2hlPW5ldyBTZXQsdGhpc319ZnVuY3Rpb24gayh0KXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgdCYmISF0LmJ1aWxkZXImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQuaGFuZGxlcn1mdW5jdGlvbiB4KHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHR9ZnVuY3Rpb24gRSh0KXtcInVuZGVmaW5lZFwiIT10eXBlb2YgcHJvY2VzcyYmW3Byb2Nlc3Muc3Rkb3V0LHByb2Nlc3Muc3RkZXJyXS5mb3JFYWNoKChlPT57Y29uc3Qgcz1lO3MuX2hhbmRsZSYmcy5pc1RUWSYmXCJmdW5jdGlvblwiPT10eXBlb2Ygcy5faGFuZGxlLnNldEJsb2NraW5nJiZzLl9oYW5kbGUuc2V0QmxvY2tpbmcodCl9KSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIHR9ZnVuY3Rpb24gUCh0LHMpe2NvbnN0IGk9cy55MThuLl9fLG49e30scj1bXTtuLmZhaWxGbj1mdW5jdGlvbih0KXtyLnB1c2godCl9O2xldCBvPW51bGwsYT1udWxsLGg9ITA7bi5zaG93SGVscE9uRmFpbD1mdW5jdGlvbihlPSEwLHMpe2NvbnN0W2kscl09XCJzdHJpbmdcIj09dHlwZW9mIGU/WyEwLGVdOltlLHNdO3JldHVybiB0LmdldEludGVybmFsTWV0aG9kcygpLmlzR2xvYmFsQ29udGV4dCgpJiYoYT1yKSxvPXIsaD1pLG59O2xldCBsPSExO24uZmFpbD1mdW5jdGlvbihzLGkpe2NvbnN0IGM9dC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRMb2dnZXJJbnN0YW5jZSgpO2lmKCFyLmxlbmd0aCl7aWYodC5nZXRFeGl0UHJvY2VzcygpJiZFKCEwKSwhbCl7bD0hMCxoJiYodC5zaG93SGVscChcImVycm9yXCIpLGMuZXJyb3IoKSksKHN8fGkpJiZjLmVycm9yKHN8fGkpO2NvbnN0IGU9b3x8YTtlJiYoKHN8fGkpJiZjLmVycm9yKFwiXCIpLGMuZXJyb3IoZSkpfWlmKGk9aXx8bmV3IGUocyksdC5nZXRFeGl0UHJvY2VzcygpKXJldHVybiB0LmV4aXQoMSk7aWYodC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5oYXNQYXJzZUNhbGxiYWNrKCkpcmV0dXJuIHQuZXhpdCgxLGkpO3Rocm93IGl9Zm9yKGxldCB0PXIubGVuZ3RoLTE7dD49MDstLXQpe2NvbnN0IGU9clt0XTtpZihBKGUpKXtpZihpKXRocm93IGk7aWYocyl0aHJvdyBFcnJvcihzKX1lbHNlIGUocyxpLG4pfX07bGV0IGM9W10sZj0hMTtuLnVzYWdlPSh0LGUpPT5udWxsPT09dD8oZj0hMCxjPVtdLG4pOihmPSExLGMucHVzaChbdCxlfHxcIlwiXSksbiksbi5nZXRVc2FnZT0oKT0+YyxuLmdldFVzYWdlRGlzYWJsZWQ9KCk9PmYsbi5nZXRQb3NpdGlvbmFsR3JvdXBOYW1lPSgpPT5pKFwiUG9zaXRpb25hbHM6XCIpO2xldCBkPVtdO24uZXhhbXBsZT0odCxlKT0+e2QucHVzaChbdCxlfHxcIlwiXSl9O2xldCB1PVtdO24uY29tbWFuZD1mdW5jdGlvbih0LGUscyxpLG49ITEpe3MmJih1PXUubWFwKCh0PT4odFsyXT0hMSx0KSkpKSx1LnB1c2goW3QsZXx8XCJcIixzLGksbl0pfSxuLmdldENvbW1hbmRzPSgpPT51O2xldCBwPXt9O24uZGVzY3JpYmU9ZnVuY3Rpb24odCxlKXtBcnJheS5pc0FycmF5KHQpP3QuZm9yRWFjaCgodD0+e24uZGVzY3JpYmUodCxlKX0pKTpcIm9iamVjdFwiPT10eXBlb2YgdD9PYmplY3Qua2V5cyh0KS5mb3JFYWNoKChlPT57bi5kZXNjcmliZShlLHRbZV0pfSkpOnBbdF09ZX0sbi5nZXREZXNjcmlwdGlvbnM9KCk9PnA7bGV0IG09W107bi5lcGlsb2c9dD0+e20ucHVzaCh0KX07bGV0IHksYj0hMTtmdW5jdGlvbiB2KCl7cmV0dXJuIGJ8fCh5PWZ1bmN0aW9uKCl7Y29uc3QgdD04MDtyZXR1cm4gcy5wcm9jZXNzLnN0ZENvbHVtbnM/TWF0aC5taW4odCxzLnByb2Nlc3Muc3RkQ29sdW1ucyk6dH0oKSxiPSEwKSx5fW4ud3JhcD10PT57Yj0hMCx5PXR9O2NvbnN0IE89XCJfX3lhcmdzU3RyaW5nX186XCI7ZnVuY3Rpb24gdyh0LGUsaSl7bGV0IG49MDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8KHQ9T2JqZWN0LnZhbHVlcyh0KS5tYXAoKHQ9Plt0XSkpKSx0LmZvckVhY2goKHQ9PntuPU1hdGgubWF4KHMuc3RyaW5nV2lkdGgoaT9gJHtpfSAke0kodFswXSl9YDpJKHRbMF0pKSskKHRbMF0pLG4pfSkpLGUmJihuPU1hdGgubWluKG4scGFyc2VJbnQoKC41KmUpLnRvU3RyaW5nKCksMTApKSksbn1sZXQgQztmdW5jdGlvbiBqKGUpe3JldHVybiB0LmdldE9wdGlvbnMoKS5oaWRkZW5PcHRpb25zLmluZGV4T2YoZSk8MHx8dC5wYXJzZWQuYXJndlt0LmdldE9wdGlvbnMoKS5zaG93SGlkZGVuT3B0XX1mdW5jdGlvbiBfKHQsZSl7bGV0IHM9YFske2koXCJkZWZhdWx0OlwiKX0gYDtpZih2b2lkIDA9PT10JiYhZSlyZXR1cm4gbnVsbDtpZihlKXMrPWU7ZWxzZSBzd2l0Y2godHlwZW9mIHQpe2Nhc2VcInN0cmluZ1wiOnMrPWBcIiR7dH1cImA7YnJlYWs7Y2FzZVwib2JqZWN0XCI6cys9SlNPTi5zdHJpbmdpZnkodCk7YnJlYWs7ZGVmYXVsdDpzKz10fXJldHVybmAke3N9XWB9bi5kZWZlclkxOG5Mb29rdXA9dD0+Tyt0LG4uaGVscD1mdW5jdGlvbigpe2lmKEMpcmV0dXJuIEM7IWZ1bmN0aW9uKCl7Y29uc3QgZT10LmdldERlbWFuZGVkT3B0aW9ucygpLHM9dC5nZXRPcHRpb25zKCk7KE9iamVjdC5rZXlzKHMuYWxpYXMpfHxbXSkuZm9yRWFjaCgoaT0+e3MuYWxpYXNbaV0uZm9yRWFjaCgocj0+e3Bbcl0mJm4uZGVzY3JpYmUoaSxwW3JdKSxyIGluIGUmJnQuZGVtYW5kT3B0aW9uKGksZVtyXSkscy5ib29sZWFuLmluY2x1ZGVzKHIpJiZ0LmJvb2xlYW4oaSkscy5jb3VudC5pbmNsdWRlcyhyKSYmdC5jb3VudChpKSxzLnN0cmluZy5pbmNsdWRlcyhyKSYmdC5zdHJpbmcoaSkscy5ub3JtYWxpemUuaW5jbHVkZXMocikmJnQubm9ybWFsaXplKGkpLHMuYXJyYXkuaW5jbHVkZXMocikmJnQuYXJyYXkoaSkscy5udW1iZXIuaW5jbHVkZXMocikmJnQubnVtYmVyKGkpfSkpfSkpfSgpO2NvbnN0IGU9dC5jdXN0b21TY3JpcHROYW1lP3QuJDA6cy5wYXRoLmJhc2VuYW1lKHQuJDApLHI9dC5nZXREZW1hbmRlZE9wdGlvbnMoKSxvPXQuZ2V0RGVtYW5kZWRDb21tYW5kcygpLGE9dC5nZXREZXByZWNhdGVkT3B0aW9ucygpLGg9dC5nZXRHcm91cHMoKSxsPXQuZ2V0T3B0aW9ucygpO2xldCBnPVtdO2c9Zy5jb25jYXQoT2JqZWN0LmtleXMocCkpLGc9Zy5jb25jYXQoT2JqZWN0LmtleXMocikpLGc9Zy5jb25jYXQoT2JqZWN0LmtleXMobykpLGc9Zy5jb25jYXQoT2JqZWN0LmtleXMobC5kZWZhdWx0KSksZz1nLmZpbHRlcihqKSxnPU9iamVjdC5rZXlzKGcucmVkdWNlKCgodCxlKT0+KFwiX1wiIT09ZSYmKHRbZV09ITApLHQpKSx7fSkpO2NvbnN0IHk9digpLGI9cy5jbGl1aSh7d2lkdGg6eSx3cmFwOiEheX0pO2lmKCFmKWlmKGMubGVuZ3RoKWMuZm9yRWFjaCgodD0+e2IuZGl2KHt0ZXh0OmAke3RbMF0ucmVwbGFjZSgvXFwkMC9nLGUpfWB9KSx0WzFdJiZiLmRpdih7dGV4dDpgJHt0WzFdfWAscGFkZGluZzpbMSwwLDAsMF19KX0pKSxiLmRpdigpO2Vsc2UgaWYodS5sZW5ndGgpe2xldCB0PW51bGw7dD1vLl8/YCR7ZX0gPCR7aShcImNvbW1hbmRcIil9PlxcbmA6YCR7ZX0gWyR7aShcImNvbW1hbmRcIil9XVxcbmAsYi5kaXYoYCR7dH1gKX1pZih1Lmxlbmd0aD4xfHwxPT09dS5sZW5ndGgmJiF1WzBdWzJdKXtiLmRpdihpKFwiQ29tbWFuZHM6XCIpKTtjb25zdCBzPXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0Q29udGV4dCgpLG49cy5jb21tYW5kcy5sZW5ndGg/YCR7cy5jb21tYW5kcy5qb2luKFwiIFwiKX0gYDpcIlwiOyEwPT09dC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRQYXJzZXJDb25maWd1cmF0aW9uKClbXCJzb3J0LWNvbW1hbmRzXCJdJiYodT11LnNvcnQoKCh0LGUpPT50WzBdLmxvY2FsZUNvbXBhcmUoZVswXSkpKSk7Y29uc3Qgcj1lP2Ake2V9IGA6XCJcIjt1LmZvckVhY2goKHQ9Pntjb25zdCBzPWAke3J9JHtufSR7dFswXS5yZXBsYWNlKC9eXFwkMCA/LyxcIlwiKX1gO2Iuc3Bhbih7dGV4dDpzLHBhZGRpbmc6WzAsMiwwLDJdLHdpZHRoOncodSx5LGAke2V9JHtufWApKzR9LHt0ZXh0OnRbMV19KTtjb25zdCBvPVtdO3RbMl0mJm8ucHVzaChgWyR7aShcImRlZmF1bHRcIil9XWApLHRbM10mJnRbM10ubGVuZ3RoJiZvLnB1c2goYFske2koXCJhbGlhc2VzOlwiKX0gJHt0WzNdLmpvaW4oXCIsIFwiKX1dYCksdFs0XSYmKFwic3RyaW5nXCI9PXR5cGVvZiB0WzRdP28ucHVzaChgWyR7aShcImRlcHJlY2F0ZWQ6ICVzXCIsdFs0XSl9XWApOm8ucHVzaChgWyR7aShcImRlcHJlY2F0ZWRcIil9XWApKSxvLmxlbmd0aD9iLmRpdih7dGV4dDpvLmpvaW4oXCIgXCIpLHBhZGRpbmc6WzAsMCwwLDJdLGFsaWduOlwicmlnaHRcIn0pOmIuZGl2KCl9KSksYi5kaXYoKX1jb25zdCBNPShPYmplY3Qua2V5cyhsLmFsaWFzKXx8W10pLmNvbmNhdChPYmplY3Qua2V5cyh0LnBhcnNlZC5uZXdBbGlhc2VzKXx8W10pO2c9Zy5maWx0ZXIoKGU9PiF0LnBhcnNlZC5uZXdBbGlhc2VzW2VdJiZNLmV2ZXJ5KCh0PT4tMT09PShsLmFsaWFzW3RdfHxbXSkuaW5kZXhPZihlKSkpKSk7Y29uc3Qgaz1pKFwiT3B0aW9uczpcIik7aFtrXXx8KGhba109W10pLGZ1bmN0aW9uKHQsZSxzLGkpe2xldCBuPVtdLHI9bnVsbDtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKCh0PT57bj1uLmNvbmNhdChzW3RdKX0pKSx0LmZvckVhY2goKHQ9PntyPVt0XS5jb25jYXQoZVt0XSksci5zb21lKCh0PT4tMSE9PW4uaW5kZXhPZih0KSkpfHxzW2ldLnB1c2godCl9KSl9KGcsbC5hbGlhcyxoLGspO2NvbnN0IHg9dD0+L14tLS8udGVzdChJKHQpKSxFPU9iamVjdC5rZXlzKGgpLmZpbHRlcigodD0+aFt0XS5sZW5ndGg+MCkpLm1hcCgodD0+KHtncm91cE5hbWU6dCxub3JtYWxpemVkS2V5czpoW3RdLmZpbHRlcihqKS5tYXAoKHQ9PntpZihNLmluY2x1ZGVzKHQpKXJldHVybiB0O2ZvcihsZXQgZSxzPTA7dm9pZCAwIT09KGU9TVtzXSk7cysrKWlmKChsLmFsaWFzW2VdfHxbXSkuaW5jbHVkZXModCkpcmV0dXJuIGU7cmV0dXJuIHR9KSl9KSkpLmZpbHRlcigoKHtub3JtYWxpemVkS2V5czp0fSk9PnQubGVuZ3RoPjApKS5tYXAoKCh7Z3JvdXBOYW1lOnQsbm9ybWFsaXplZEtleXM6ZX0pPT57Y29uc3Qgcz1lLnJlZHVjZSgoKGUscyk9PihlW3NdPVtzXS5jb25jYXQobC5hbGlhc1tzXXx8W10pLm1hcCgoZT0+dD09PW4uZ2V0UG9zaXRpb25hbEdyb3VwTmFtZSgpP2U6KC9eWzAtOV0kLy50ZXN0KGUpP2wuYm9vbGVhbi5pbmNsdWRlcyhzKT9cIi1cIjpcIi0tXCI6ZS5sZW5ndGg+MT9cIi0tXCI6XCItXCIpK2UpKS5zb3J0KCgodCxlKT0+eCh0KT09PXgoZSk/MDp4KHQpPzE6LTEpKS5qb2luKFwiLCBcIiksZSkpLHt9KTtyZXR1cm57Z3JvdXBOYW1lOnQsbm9ybWFsaXplZEtleXM6ZSxzd2l0Y2hlczpzfX0pKTtpZihFLmZpbHRlcigoKHtncm91cE5hbWU6dH0pPT50IT09bi5nZXRQb3NpdGlvbmFsR3JvdXBOYW1lKCkpKS5zb21lKCgoe25vcm1hbGl6ZWRLZXlzOnQsc3dpdGNoZXM6ZX0pPT4hdC5ldmVyeSgodD0+eChlW3RdKSkpKSkmJkUuZmlsdGVyKCgoe2dyb3VwTmFtZTp0fSk9PnQhPT1uLmdldFBvc2l0aW9uYWxHcm91cE5hbWUoKSkpLmZvckVhY2goKCh7bm9ybWFsaXplZEtleXM6dCxzd2l0Y2hlczplfSk9Pnt0LmZvckVhY2goKHQ9Pnt2YXIgcyxpO3goZVt0XSkmJihlW3RdPShzPWVbdF0saT1cIi14LCBcIi5sZW5ndGgsUyhzKT97dGV4dDpzLnRleHQsaW5kZW50YXRpb246cy5pbmRlbnRhdGlvbitpfTp7dGV4dDpzLGluZGVudGF0aW9uOml9KSl9KSl9KSksRS5mb3JFYWNoKCgoe2dyb3VwTmFtZTp0LG5vcm1hbGl6ZWRLZXlzOmUsc3dpdGNoZXM6c30pPT57Yi5kaXYodCksZS5mb3JFYWNoKCh0PT57Y29uc3QgZT1zW3RdO2xldCBvPXBbdF18fFwiXCIsaD1udWxsO28uaW5jbHVkZXMoTykmJihvPWkoby5zdWJzdHJpbmcoTy5sZW5ndGgpKSksbC5ib29sZWFuLmluY2x1ZGVzKHQpJiYoaD1gWyR7aShcImJvb2xlYW5cIil9XWApLGwuY291bnQuaW5jbHVkZXModCkmJihoPWBbJHtpKFwiY291bnRcIil9XWApLGwuc3RyaW5nLmluY2x1ZGVzKHQpJiYoaD1gWyR7aShcInN0cmluZ1wiKX1dYCksbC5ub3JtYWxpemUuaW5jbHVkZXModCkmJihoPWBbJHtpKFwic3RyaW5nXCIpfV1gKSxsLmFycmF5LmluY2x1ZGVzKHQpJiYoaD1gWyR7aShcImFycmF5XCIpfV1gKSxsLm51bWJlci5pbmNsdWRlcyh0KSYmKGg9YFske2koXCJudW1iZXJcIil9XWApO2NvbnN0IGM9W3QgaW4gYT8oZj1hW3RdLFwic3RyaW5nXCI9PXR5cGVvZiBmP2BbJHtpKFwiZGVwcmVjYXRlZDogJXNcIixmKX1dYDpgWyR7aShcImRlcHJlY2F0ZWRcIil9XWApOm51bGwsaCx0IGluIHI/YFske2koXCJyZXF1aXJlZFwiKX1dYDpudWxsLGwuY2hvaWNlcyYmbC5jaG9pY2VzW3RdP2BbJHtpKFwiY2hvaWNlczpcIil9ICR7bi5zdHJpbmdpZmllZFZhbHVlcyhsLmNob2ljZXNbdF0pfV1gOm51bGwsXyhsLmRlZmF1bHRbdF0sbC5kZWZhdWx0RGVzY3JpcHRpb25bdF0pXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7dmFyIGY7Yi5zcGFuKHt0ZXh0OkkoZSkscGFkZGluZzpbMCwyLDAsMiskKGUpXSx3aWR0aDp3KHMseSkrNH0sbyksYz9iLmRpdih7dGV4dDpjLHBhZGRpbmc6WzAsMCwwLDJdLGFsaWduOlwicmlnaHRcIn0pOmIuZGl2KCl9KSksYi5kaXYoKX0pKSxkLmxlbmd0aCYmKGIuZGl2KGkoXCJFeGFtcGxlczpcIikpLGQuZm9yRWFjaCgodD0+e3RbMF09dFswXS5yZXBsYWNlKC9cXCQwL2csZSl9KSksZC5mb3JFYWNoKCh0PT57XCJcIj09PXRbMV0/Yi5kaXYoe3RleHQ6dFswXSxwYWRkaW5nOlswLDIsMCwyXX0pOmIuZGl2KHt0ZXh0OnRbMF0scGFkZGluZzpbMCwyLDAsMl0sd2lkdGg6dyhkLHkpKzR9LHt0ZXh0OnRbMV19KX0pKSxiLmRpdigpKSxtLmxlbmd0aD4wKXtjb25zdCB0PW0ubWFwKCh0PT50LnJlcGxhY2UoL1xcJDAvZyxlKSkpLmpvaW4oXCJcXG5cIik7Yi5kaXYoYCR7dH1cXG5gKX1yZXR1cm4gYi50b1N0cmluZygpLnJlcGxhY2UoL1xccyokLyxcIlwiKX0sbi5jYWNoZUhlbHBNZXNzYWdlPWZ1bmN0aW9uKCl7Qz10aGlzLmhlbHAoKX0sbi5jbGVhckNhY2hlZEhlbHBNZXNzYWdlPWZ1bmN0aW9uKCl7Qz12b2lkIDB9LG4uaGFzQ2FjaGVkSGVscE1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4hIUN9LG4uc2hvd0hlbHA9ZT0+e2NvbnN0IHM9dC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRMb2dnZXJJbnN0YW5jZSgpO2V8fChlPVwiZXJyb3JcIik7KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpzW2VdKShuLmhlbHAoKSl9LG4uZnVuY3Rpb25EZXNjcmlwdGlvbj10PT5bXCIoXCIsdC5uYW1lP3MuUGFyc2VyLmRlY2FtZWxpemUodC5uYW1lLFwiLVwiKTppKFwiZ2VuZXJhdGVkLXZhbHVlXCIpLFwiKVwiXS5qb2luKFwiXCIpLG4uc3RyaW5naWZpZWRWYWx1ZXM9ZnVuY3Rpb24odCxlKXtsZXQgcz1cIlwiO2NvbnN0IGk9ZXx8XCIsIFwiLG49W10uY29uY2F0KHQpO3JldHVybiB0JiZuLmxlbmd0aD8obi5mb3JFYWNoKCh0PT57cy5sZW5ndGgmJihzKz1pKSxzKz1KU09OLnN0cmluZ2lmeSh0KX0pKSxzKTpzfTtsZXQgTT1udWxsO24udmVyc2lvbj10PT57TT10fSxuLnNob3dWZXJzaW9uPWU9Pntjb25zdCBzPXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0TG9nZ2VySW5zdGFuY2UoKTtlfHwoZT1cImVycm9yXCIpOyhcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6c1tlXSkoTSl9LG4ucmVzZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG89bnVsbCxsPSExLGM9W10sZj0hMSxtPVtdLGQ9W10sdT1bXSxwPWcocCwoZT0+IXRbZV0pKSxufTtjb25zdCBrPVtdO3JldHVybiBuLmZyZWV6ZT1mdW5jdGlvbigpe2sucHVzaCh7ZmFpbE1lc3NhZ2U6byxmYWlsdXJlT3V0cHV0OmwsdXNhZ2VzOmMsdXNhZ2VEaXNhYmxlZDpmLGVwaWxvZ3M6bSxleGFtcGxlczpkLGNvbW1hbmRzOnUsZGVzY3JpcHRpb25zOnB9KX0sbi51bmZyZWV6ZT1mdW5jdGlvbih0PSExKXtjb25zdCBlPWsucG9wKCk7ZSYmKHQ/KHA9ey4uLmUuZGVzY3JpcHRpb25zLC4uLnB9LHU9Wy4uLmUuY29tbWFuZHMsLi4udV0sYz1bLi4uZS51c2FnZXMsLi4uY10sZD1bLi4uZS5leGFtcGxlcywuLi5kXSxtPVsuLi5lLmVwaWxvZ3MsLi4ubV0pOih7ZmFpbE1lc3NhZ2U6byxmYWlsdXJlT3V0cHV0OmwsdXNhZ2VzOmMsdXNhZ2VEaXNhYmxlZDpmLGVwaWxvZ3M6bSxleGFtcGxlczpkLGNvbW1hbmRzOnUsZGVzY3JpcHRpb25zOnB9PWUpKX0sbn1mdW5jdGlvbiBTKHQpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiB0fWZ1bmN0aW9uICQodCl7cmV0dXJuIFModCk/dC5pbmRlbnRhdGlvbjowfWZ1bmN0aW9uIEkodCl7cmV0dXJuIFModCk/dC50ZXh0OnR9Y2xhc3MgRHtjb25zdHJ1Y3Rvcih0LGUscyxpKXt2YXIgbixyLG87dGhpcy55YXJncz10LHRoaXMudXNhZ2U9ZSx0aGlzLmNvbW1hbmQ9cyx0aGlzLnNoaW09aSx0aGlzLmNvbXBsZXRpb25LZXk9XCJnZXQteWFyZ3MtY29tcGxldGlvbnNcIix0aGlzLmFsaWFzZXM9bnVsbCx0aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbj1udWxsLHRoaXMuaW5kZXhBZnRlckxhc3RSZXNldD0wLHRoaXMuenNoU2hlbGw9bnVsbCE9PShvPShudWxsPT09KG49dGhpcy5zaGltLmdldEVudihcIlNIRUxMXCIpKXx8dm9pZCAwPT09bj92b2lkIDA6bi5pbmNsdWRlcyhcInpzaFwiKSl8fChudWxsPT09KHI9dGhpcy5zaGltLmdldEVudihcIlpTSF9OQU1FXCIpKXx8dm9pZCAwPT09cj92b2lkIDA6ci5pbmNsdWRlcyhcInpzaFwiKSkpJiZ2b2lkIDAhPT1vJiZvfWRlZmF1bHRDb21wbGV0aW9uKHQsZSxzLGkpe2NvbnN0IG49dGhpcy5jb21tYW5kLmdldENvbW1hbmRIYW5kbGVycygpO2ZvcihsZXQgZT0wLHM9dC5sZW5ndGg7ZTxzOysrZSlpZihuW3RbZV1dJiZuW3RbZV1dLmJ1aWxkZXIpe2NvbnN0IHM9blt0W2VdXS5idWlsZGVyO2lmKHgocykpe3RoaXMuaW5kZXhBZnRlckxhc3RSZXNldD1lKzE7Y29uc3QgdD10aGlzLnlhcmdzLmdldEludGVybmFsTWV0aG9kcygpLnJlc2V0KCk7cmV0dXJuIHModCwhMCksdC5hcmd2fX1jb25zdCByPVtdO3RoaXMuY29tbWFuZENvbXBsZXRpb25zKHIsdCxzKSx0aGlzLm9wdGlvbkNvbXBsZXRpb25zKHIsdCxlLHMpLHRoaXMuY2hvaWNlc0Zyb21PcHRpb25zQ29tcGxldGlvbnMocix0LGUscyksdGhpcy5jaG9pY2VzRnJvbVBvc2l0aW9uYWxzQ29tcGxldGlvbnMocix0LGUscyksaShudWxsLHIpfWNvbW1hbmRDb21wbGV0aW9ucyh0LGUscyl7Y29uc3QgaT10aGlzLnlhcmdzLmdldEludGVybmFsTWV0aG9kcygpLmdldENvbnRleHQoKS5jb21tYW5kcztzLm1hdGNoKC9eLS8pfHxpW2kubGVuZ3RoLTFdPT09c3x8dGhpcy5wcmV2aW91c0FyZ0hhc0Nob2ljZXMoZSl8fHRoaXMudXNhZ2UuZ2V0Q29tbWFuZHMoKS5mb3JFYWNoKChzPT57Y29uc3QgaT1vKHNbMF0pLmNtZDtpZigtMT09PWUuaW5kZXhPZihpKSlpZih0aGlzLnpzaFNoZWxsKXtjb25zdCBlPXNbMV18fFwiXCI7dC5wdXNoKGkucmVwbGFjZSgvOi9nLFwiXFxcXDpcIikrXCI6XCIrZSl9ZWxzZSB0LnB1c2goaSl9KSl9b3B0aW9uQ29tcGxldGlvbnModCxlLHMsaSl7aWYoKGkubWF0Y2goL14tLyl8fFwiXCI9PT1pJiYwPT09dC5sZW5ndGgpJiYhdGhpcy5wcmV2aW91c0FyZ0hhc0Nob2ljZXMoZSkpe2NvbnN0IHM9dGhpcy55YXJncy5nZXRPcHRpb25zKCksbj10aGlzLnlhcmdzLmdldEdyb3VwcygpW3RoaXMudXNhZ2UuZ2V0UG9zaXRpb25hbEdyb3VwTmFtZSgpXXx8W107T2JqZWN0LmtleXMocy5rZXkpLmZvckVhY2goKHI9Pntjb25zdCBvPSEhcy5jb25maWd1cmF0aW9uW1wiYm9vbGVhbi1uZWdhdGlvblwiXSYmcy5ib29sZWFuLmluY2x1ZGVzKHIpO24uaW5jbHVkZXMocil8fHMuaGlkZGVuT3B0aW9ucy5pbmNsdWRlcyhyKXx8dGhpcy5hcmdzQ29udGFpbktleShlLHIsbyl8fCh0aGlzLmNvbXBsZXRlT3B0aW9uS2V5KHIsdCxpKSxvJiZzLmRlZmF1bHRbcl0mJnRoaXMuY29tcGxldGVPcHRpb25LZXkoYG5vLSR7cn1gLHQsaSkpfSkpfX1jaG9pY2VzRnJvbU9wdGlvbnNDb21wbGV0aW9ucyh0LGUscyxpKXtpZih0aGlzLnByZXZpb3VzQXJnSGFzQ2hvaWNlcyhlKSl7Y29uc3Qgcz10aGlzLmdldFByZXZpb3VzQXJnQ2hvaWNlcyhlKTtzJiZzLmxlbmd0aD4wJiZ0LnB1c2goLi4ucy5tYXAoKHQ9PnQucmVwbGFjZSgvOi9nLFwiXFxcXDpcIikpKSl9fWNob2ljZXNGcm9tUG9zaXRpb25hbHNDb21wbGV0aW9ucyh0LGUscyxpKXtpZihcIlwiPT09aSYmdC5sZW5ndGg+MCYmdGhpcy5wcmV2aW91c0FyZ0hhc0Nob2ljZXMoZSkpcmV0dXJuO2NvbnN0IG49dGhpcy55YXJncy5nZXRHcm91cHMoKVt0aGlzLnVzYWdlLmdldFBvc2l0aW9uYWxHcm91cE5hbWUoKV18fFtdLHI9TWF0aC5tYXgodGhpcy5pbmRleEFmdGVyTGFzdFJlc2V0LHRoaXMueWFyZ3MuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0Q29udGV4dCgpLmNvbW1hbmRzLmxlbmd0aCsxKSxvPW5bcy5fLmxlbmd0aC1yLTFdO2lmKCFvKXJldHVybjtjb25zdCBhPXRoaXMueWFyZ3MuZ2V0T3B0aW9ucygpLmNob2ljZXNbb118fFtdO2Zvcihjb25zdCBlIG9mIGEpZS5zdGFydHNXaXRoKGkpJiZ0LnB1c2goZS5yZXBsYWNlKC86L2csXCJcXFxcOlwiKSl9Z2V0UHJldmlvdXNBcmdDaG9pY2VzKHQpe2lmKHQubGVuZ3RoPDEpcmV0dXJuO2xldCBlPXRbdC5sZW5ndGgtMV0scz1cIlwiO2lmKCFlLnN0YXJ0c1dpdGgoXCItXCIpJiZ0Lmxlbmd0aD4xJiYocz1lLGU9dFt0Lmxlbmd0aC0yXSksIWUuc3RhcnRzV2l0aChcIi1cIikpcmV0dXJuO2NvbnN0IGk9ZS5yZXBsYWNlKC9eLSsvLFwiXCIpLG49dGhpcy55YXJncy5nZXRPcHRpb25zKCkscj1baSwuLi50aGlzLnlhcmdzLmdldEFsaWFzZXMoKVtpXXx8W11dO2xldCBvO2Zvcihjb25zdCB0IG9mIHIpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4ua2V5LHQpJiZBcnJheS5pc0FycmF5KG4uY2hvaWNlc1t0XSkpe289bi5jaG9pY2VzW3RdO2JyZWFrfXJldHVybiBvP28uZmlsdGVyKCh0PT4hc3x8dC5zdGFydHNXaXRoKHMpKSk6dm9pZCAwfXByZXZpb3VzQXJnSGFzQ2hvaWNlcyh0KXtjb25zdCBlPXRoaXMuZ2V0UHJldmlvdXNBcmdDaG9pY2VzKHQpO3JldHVybiB2b2lkIDAhPT1lJiZlLmxlbmd0aD4wfWFyZ3NDb250YWluS2V5KHQsZSxzKXtjb25zdCBpPWU9Pi0xIT09dC5pbmRleE9mKCgvXlteMC05XSQvLnRlc3QoZSk/XCItXCI6XCItLVwiKStlKTtpZihpKGUpKXJldHVybiEwO2lmKHMmJmkoYG5vLSR7ZX1gKSlyZXR1cm4hMDtpZih0aGlzLmFsaWFzZXMpZm9yKGNvbnN0IHQgb2YgdGhpcy5hbGlhc2VzW2VdKWlmKGkodCkpcmV0dXJuITA7cmV0dXJuITF9Y29tcGxldGVPcHRpb25LZXkodCxlLHMpe2NvbnN0IGk9dGhpcy51c2FnZS5nZXREZXNjcmlwdGlvbnMoKSxuPSEvXi0tLy50ZXN0KHMpJiYodD0+L15bXjAtOV0kLy50ZXN0KHQpKSh0KT9cIi1cIjpcIi0tXCI7aWYodGhpcy56c2hTaGVsbCl7Y29uc3Qgcz1pW3RdfHxcIlwiO2UucHVzaChuK2Ake3QucmVwbGFjZSgvOi9nLFwiXFxcXDpcIil9OiR7cy5yZXBsYWNlKFwiX195YXJnc1N0cmluZ19fOlwiLFwiXCIpfWApfWVsc2UgZS5wdXNoKG4rdCl9Y3VzdG9tQ29tcGxldGlvbih0LGUscyxpKXtpZihkKHRoaXMuY3VzdG9tQ29tcGxldGlvbkZ1bmN0aW9uLG51bGwsdGhpcy5zaGltKSx0aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbi5sZW5ndGg8Myl7Y29uc3QgdD10aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbihzLGUpO3JldHVybiBmKHQpP3QudGhlbigodD0+e3RoaXMuc2hpbS5wcm9jZXNzLm5leHRUaWNrKCgoKT0+e2kobnVsbCx0KX0pKX0pKS5jYXRjaCgodD0+e3RoaXMuc2hpbS5wcm9jZXNzLm5leHRUaWNrKCgoKT0+e2kodCx2b2lkIDApfSkpfSkpOmkobnVsbCx0KX1yZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjN9KHRoaXMuY3VzdG9tQ29tcGxldGlvbkZ1bmN0aW9uKT90aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbihzLGUsKChuPWkpPT50aGlzLmRlZmF1bHRDb21wbGV0aW9uKHQsZSxzLG4pKSwodD0+e2kobnVsbCx0KX0pKTp0aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbihzLGUsKHQ9PntpKG51bGwsdCl9KSl9Z2V0Q29tcGxldGlvbih0LGUpe2NvbnN0IHM9dC5sZW5ndGg/dFt0Lmxlbmd0aC0xXTpcIlwiLGk9dGhpcy55YXJncy5wYXJzZSh0LCEwKSxuPXRoaXMuY3VzdG9tQ29tcGxldGlvbkZ1bmN0aW9uP2k9PnRoaXMuY3VzdG9tQ29tcGxldGlvbih0LGkscyxlKTppPT50aGlzLmRlZmF1bHRDb21wbGV0aW9uKHQsaSxzLGUpO3JldHVybiBmKGkpP2kudGhlbihuKTpuKGkpfWdlbmVyYXRlQ29tcGxldGlvblNjcmlwdCh0LGUpe2xldCBzPXRoaXMuenNoU2hlbGw/JyNjb21wZGVmIHt7YXBwX25hbWV9fVxcbiMjIy1iZWdpbi17e2FwcF9uYW1lfX0tY29tcGxldGlvbnMtIyMjXFxuI1xcbiMgeWFyZ3MgY29tbWFuZCBjb21wbGV0aW9uIHNjcmlwdFxcbiNcXG4jIEluc3RhbGxhdGlvbjoge3thcHBfcGF0aH19IHt7Y29tcGxldGlvbl9jb21tYW5kfX0gPj4gfi8uenNocmNcXG4jICAgIG9yIHt7YXBwX3BhdGh9fSB7e2NvbXBsZXRpb25fY29tbWFuZH19ID4+IH4vLnpwcm9maWxlIG9uIE9TWC5cXG4jXFxuX3t7YXBwX25hbWV9fV95YXJnc19jb21wbGV0aW9ucygpXFxue1xcbiAgbG9jYWwgcmVwbHlcXG4gIGxvY2FsIHNpPSRJRlNcXG4gIElGUz0kXFwnXFxuXFwnIHJlcGx5PSgkKENPTVBfQ1dPUkQ9XCIkKChDVVJSRU5ULTEpKVwiIENPTVBfTElORT1cIiRCVUZGRVJcIiBDT01QX1BPSU5UPVwiJENVUlNPUlwiIHt7YXBwX3BhdGh9fSAtLWdldC15YXJncy1jb21wbGV0aW9ucyBcIiR7d29yZHNbQF19XCIpKVxcbiAgSUZTPSRzaVxcbiAgX2Rlc2NyaWJlIFxcJ3ZhbHVlc1xcJyByZXBseVxcbn1cXG5jb21wZGVmIF97e2FwcF9uYW1lfX1feWFyZ3NfY29tcGxldGlvbnMge3thcHBfbmFtZX19XFxuIyMjLWVuZC17e2FwcF9uYW1lfX0tY29tcGxldGlvbnMtIyMjXFxuJzonIyMjLWJlZ2luLXt7YXBwX25hbWV9fS1jb21wbGV0aW9ucy0jIyNcXG4jXFxuIyB5YXJncyBjb21tYW5kIGNvbXBsZXRpb24gc2NyaXB0XFxuI1xcbiMgSW5zdGFsbGF0aW9uOiB7e2FwcF9wYXRofX0ge3tjb21wbGV0aW9uX2NvbW1hbmR9fSA+PiB+Ly5iYXNocmNcXG4jICAgIG9yIHt7YXBwX3BhdGh9fSB7e2NvbXBsZXRpb25fY29tbWFuZH19ID4+IH4vLmJhc2hfcHJvZmlsZSBvbiBPU1guXFxuI1xcbl97e2FwcF9uYW1lfX1feWFyZ3NfY29tcGxldGlvbnMoKVxcbntcXG4gICAgbG9jYWwgY3VyX3dvcmQgYXJncyB0eXBlX2xpc3RcXG5cXG4gICAgY3VyX3dvcmQ9XCIke0NPTVBfV09SRFNbQ09NUF9DV09SRF19XCJcXG4gICAgYXJncz0oXCIke0NPTVBfV09SRFNbQF19XCIpXFxuXFxuICAgICMgYXNrIHlhcmdzIHRvIGdlbmVyYXRlIGNvbXBsZXRpb25zLlxcbiAgICB0eXBlX2xpc3Q9JCh7e2FwcF9wYXRofX0gLS1nZXQteWFyZ3MtY29tcGxldGlvbnMgXCIke2FyZ3NbQF19XCIpXFxuXFxuICAgIENPTVBSRVBMWT0oICQoY29tcGdlbiAtVyBcIiR7dHlwZV9saXN0fVwiIC0tICR7Y3VyX3dvcmR9KSApXFxuXFxuICAgICMgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kLCBmYWxsIGJhY2sgdG8gZmlsZW5hbWUgY29tcGxldGlvblxcbiAgICBpZiBbICR7I0NPTVBSRVBMWVtAXX0gLWVxIDAgXTsgdGhlblxcbiAgICAgIENPTVBSRVBMWT0oKVxcbiAgICBmaVxcblxcbiAgICByZXR1cm4gMFxcbn1cXG5jb21wbGV0ZSAtbyBiYXNoZGVmYXVsdCAtbyBkZWZhdWx0IC1GIF97e2FwcF9uYW1lfX1feWFyZ3NfY29tcGxldGlvbnMge3thcHBfbmFtZX19XFxuIyMjLWVuZC17e2FwcF9uYW1lfX0tY29tcGxldGlvbnMtIyMjXFxuJztjb25zdCBpPXRoaXMuc2hpbS5wYXRoLmJhc2VuYW1lKHQpO3JldHVybiB0Lm1hdGNoKC9cXC5qcyQvKSYmKHQ9YC4vJHt0fWApLHM9cy5yZXBsYWNlKC97e2FwcF9uYW1lfX0vZyxpKSxzPXMucmVwbGFjZSgve3tjb21wbGV0aW9uX2NvbW1hbmR9fS9nLGUpLHMucmVwbGFjZSgve3thcHBfcGF0aH19L2csdCl9cmVnaXN0ZXJGdW5jdGlvbih0KXt0aGlzLmN1c3RvbUNvbXBsZXRpb25GdW5jdGlvbj10fXNldFBhcnNlZCh0KXt0aGlzLmFsaWFzZXM9dC5hbGlhc2VzfX1mdW5jdGlvbiBOKHQsZSl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBlLmxlbmd0aDtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIHQubGVuZ3RoO2NvbnN0IHM9W107bGV0IGksbjtmb3IoaT0wO2k8PWUubGVuZ3RoO2krKylzW2ldPVtpXTtmb3Iobj0wO248PXQubGVuZ3RoO24rKylzWzBdW25dPW47Zm9yKGk9MTtpPD1lLmxlbmd0aDtpKyspZm9yKG49MTtuPD10Lmxlbmd0aDtuKyspZS5jaGFyQXQoaS0xKT09PXQuY2hhckF0KG4tMSk/c1tpXVtuXT1zW2ktMV1bbi0xXTppPjEmJm4+MSYmZS5jaGFyQXQoaS0yKT09PXQuY2hhckF0KG4tMSkmJmUuY2hhckF0KGktMSk9PT10LmNoYXJBdChuLTIpP3NbaV1bbl09c1tpLTJdW24tMl0rMTpzW2ldW25dPU1hdGgubWluKHNbaS0xXVtuLTFdKzEsTWF0aC5taW4oc1tpXVtuLTFdKzEsc1tpLTFdW25dKzEpKTtyZXR1cm4gc1tlLmxlbmd0aF1bdC5sZW5ndGhdfWNvbnN0IEg9W1wiJDBcIixcIi0tXCIsXCJfXCJdO3ZhciB6LHEsVyxGLFUsTCxWLEcsUixULEssQixZLEosWixYLFEsdHQsZXQsc3QsaXQsbnQscnQsb3QsYXQsaHQsbHQsY3QsZnQsZHQsdXQscHQsZ3QsbXQ7Y29uc3QgeXQ9U3ltYm9sKFwiY29weURvdWJsZURhc2hcIiksYnQ9U3ltYm9sKFwiY29weURvdWJsZURhc2hcIiksdnQ9U3ltYm9sKFwiZGVsZXRlRnJvbVBhcnNlckhpbnRPYmplY3RcIiksT3Q9U3ltYm9sKFwiZW1pdFdhcm5pbmdcIiksd3Q9U3ltYm9sKFwiZnJlZXplXCIpLEN0PVN5bWJvbChcImdldERvbGxhclplcm9cIiksanQ9U3ltYm9sKFwiZ2V0UGFyc2VyQ29uZmlndXJhdGlvblwiKSxfdD1TeW1ib2woXCJndWVzc0xvY2FsZVwiKSxNdD1TeW1ib2woXCJndWVzc1ZlcnNpb25cIiksa3Q9U3ltYm9sKFwicGFyc2VQb3NpdGlvbmFsTnVtYmVyc1wiKSx4dD1TeW1ib2woXCJwa2dVcFwiKSxFdD1TeW1ib2woXCJwb3B1bGF0ZVBhcnNlckhpbnRBcnJheVwiKSxBdD1TeW1ib2woXCJwb3B1bGF0ZVBhcnNlckhpbnRTaW5nbGVWYWx1ZURpY3Rpb25hcnlcIiksUHQ9U3ltYm9sKFwicG9wdWxhdGVQYXJzZXJIaW50QXJyYXlEaWN0aW9uYXJ5XCIpLFN0PVN5bWJvbChcInBvcHVsYXRlUGFyc2VySGludERpY3Rpb25hcnlcIiksJHQ9U3ltYm9sKFwic2FuaXRpemVLZXlcIiksSXQ9U3ltYm9sKFwic2V0S2V5XCIpLER0PVN5bWJvbChcInVuZnJlZXplXCIpLE50PVN5bWJvbChcInZhbGlkYXRlQXN5bmNcIiksSHQ9U3ltYm9sKFwiZ2V0Q29tbWFuZEluc3RhbmNlXCIpLHp0PVN5bWJvbChcImdldENvbnRleHRcIikscXQ9U3ltYm9sKFwiZ2V0SGFzT3V0cHV0XCIpLFd0PVN5bWJvbChcImdldExvZ2dlckluc3RhbmNlXCIpLEZ0PVN5bWJvbChcImdldFBhcnNlQ29udGV4dFwiKSxVdD1TeW1ib2woXCJnZXRVc2FnZUluc3RhbmNlXCIpLEx0PVN5bWJvbChcImdldFZhbGlkYXRpb25JbnN0YW5jZVwiKSxWdD1TeW1ib2woXCJoYXNQYXJzZUNhbGxiYWNrXCIpLEd0PVN5bWJvbChcImlzR2xvYmFsQ29udGV4dFwiKSxSdD1TeW1ib2woXCJwb3N0UHJvY2Vzc1wiKSxUdD1TeW1ib2woXCJyZWJhc2VcIiksS3Q9U3ltYm9sKFwicmVzZXRcIiksQnQ9U3ltYm9sKFwicnVuWWFyZ3NQYXJzZXJBbmRFeGVjdXRlQ29tbWFuZHNcIiksWXQ9U3ltYm9sKFwicnVuVmFsaWRhdGlvblwiKSxKdD1TeW1ib2woXCJzZXRIYXNPdXRwdXRcIiksWnQ9U3ltYm9sKFwia1RyYWNrTWFudWFsbHlTZXRLZXlzXCIpO2NsYXNzIFh0e2NvbnN0cnVjdG9yKHQ9W10sZSxzLGkpe3RoaXMuY3VzdG9tU2NyaXB0TmFtZT0hMSx0aGlzLnBhcnNlZD0hMSx6LnNldCh0aGlzLHZvaWQgMCkscS5zZXQodGhpcyx2b2lkIDApLFcuc2V0KHRoaXMse2NvbW1hbmRzOltdLGZ1bGxDb21tYW5kczpbXX0pLEYuc2V0KHRoaXMsbnVsbCksVS5zZXQodGhpcyxudWxsKSxMLnNldCh0aGlzLFwic2hvdy1oaWRkZW5cIiksVi5zZXQodGhpcyxudWxsKSxHLnNldCh0aGlzLCEwKSxSLnNldCh0aGlzLHt9KSxULnNldCh0aGlzLCEwKSxLLnNldCh0aGlzLFtdKSxCLnNldCh0aGlzLHZvaWQgMCksWS5zZXQodGhpcyx7fSksSi5zZXQodGhpcywhMSksWi5zZXQodGhpcyxudWxsKSxYLnNldCh0aGlzLCEwKSxRLnNldCh0aGlzLHZvaWQgMCksdHQuc2V0KHRoaXMsXCJcIiksZXQuc2V0KHRoaXMsdm9pZCAwKSxzdC5zZXQodGhpcyx2b2lkIDApLGl0LnNldCh0aGlzLHt9KSxudC5zZXQodGhpcyxudWxsKSxydC5zZXQodGhpcyxudWxsKSxvdC5zZXQodGhpcyx7fSksYXQuc2V0KHRoaXMse30pLGh0LnNldCh0aGlzLHZvaWQgMCksbHQuc2V0KHRoaXMsITEpLGN0LnNldCh0aGlzLHZvaWQgMCksZnQuc2V0KHRoaXMsITEpLGR0LnNldCh0aGlzLCExKSx1dC5zZXQodGhpcywhMSkscHQuc2V0KHRoaXMsdm9pZCAwKSxndC5zZXQodGhpcyxudWxsKSxtdC5zZXQodGhpcyx2b2lkIDApLE8odGhpcyxjdCxpLFwiZlwiKSxPKHRoaXMsaHQsdCxcImZcIiksTyh0aGlzLHEsZSxcImZcIiksTyh0aGlzLHN0LHMsXCJmXCIpLE8odGhpcyxCLG5ldyB3KHRoaXMpLFwiZlwiKSx0aGlzLiQwPXRoaXNbQ3RdKCksdGhpc1tLdF0oKSxPKHRoaXMseix2KHRoaXMseixcImZcIiksXCJmXCIpLE8odGhpcyxwdCx2KHRoaXMscHQsXCJmXCIpLFwiZlwiKSxPKHRoaXMsbXQsdih0aGlzLG10LFwiZlwiKSxcImZcIiksTyh0aGlzLGV0LHYodGhpcyxldCxcImZcIiksXCJmXCIpLHYodGhpcyxldCxcImZcIikuc2hvd0hpZGRlbk9wdD12KHRoaXMsTCxcImZcIiksTyh0aGlzLFEsdGhpc1tidF0oKSxcImZcIil9YWRkSGVscE9wdCh0LGUpe3JldHVybiBoKFwiW3N0cmluZ3xib29sZWFuXSBbc3RyaW5nXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHYodGhpcyxaLFwiZlwiKSYmKHRoaXNbdnRdKHYodGhpcyxaLFwiZlwiKSksTyh0aGlzLFosbnVsbCxcImZcIikpLCExPT09dCYmdm9pZCAwPT09ZXx8KE8odGhpcyxaLFwic3RyaW5nXCI9PXR5cGVvZiB0P3Q6XCJoZWxwXCIsXCJmXCIpLHRoaXMuYm9vbGVhbih2KHRoaXMsWixcImZcIikpLHRoaXMuZGVzY3JpYmUodih0aGlzLFosXCJmXCIpLGV8fHYodGhpcyxwdCxcImZcIikuZGVmZXJZMThuTG9va3VwKFwiU2hvdyBoZWxwXCIpKSksdGhpc31oZWxwKHQsZSl7cmV0dXJuIHRoaXMuYWRkSGVscE9wdCh0LGUpfWFkZFNob3dIaWRkZW5PcHQodCxlKXtpZihoKFwiW3N0cmluZ3xib29sZWFuXSBbc3RyaW5nXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLCExPT09dCYmdm9pZCAwPT09ZSlyZXR1cm4gdGhpcztjb25zdCBzPVwic3RyaW5nXCI9PXR5cGVvZiB0P3Q6dih0aGlzLEwsXCJmXCIpO3JldHVybiB0aGlzLmJvb2xlYW4ocyksdGhpcy5kZXNjcmliZShzLGV8fHYodGhpcyxwdCxcImZcIikuZGVmZXJZMThuTG9va3VwKFwiU2hvdyBoaWRkZW4gb3B0aW9uc1wiKSksdih0aGlzLGV0LFwiZlwiKS5zaG93SGlkZGVuT3B0PXMsdGhpc31zaG93SGlkZGVuKHQsZSl7cmV0dXJuIHRoaXMuYWRkU2hvd0hpZGRlbk9wdCh0LGUpfWFsaWFzKHQsZSl7cmV0dXJuIGgoXCI8b2JqZWN0fHN0cmluZ3xhcnJheT4gW3N0cmluZ3xhcnJheV1cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKSx0aGlzW1B0XSh0aGlzLmFsaWFzLmJpbmQodGhpcyksXCJhbGlhc1wiLHQsZSksdGhpc31hcnJheSh0KXtyZXR1cm4gaChcIjxhcnJheXxzdHJpbmc+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXNbRXRdKFwiYXJyYXlcIix0KSx0aGlzW1p0XSh0KSx0aGlzfWJvb2xlYW4odCl7cmV0dXJuIGgoXCI8YXJyYXl8c3RyaW5nPlwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSx0aGlzW0V0XShcImJvb2xlYW5cIix0KSx0aGlzW1p0XSh0KSx0aGlzfWNoZWNrKHQsZSl7cmV0dXJuIGgoXCI8ZnVuY3Rpb24+IFtib29sZWFuXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXMubWlkZGxld2FyZSgoKGUscyk9PmooKCgpPT50KGUscy5nZXRPcHRpb25zKCkpKSwocz0+KHM/KFwic3RyaW5nXCI9PXR5cGVvZiBzfHxzIGluc3RhbmNlb2YgRXJyb3IpJiZ2KHRoaXMscHQsXCJmXCIpLmZhaWwocy50b1N0cmluZygpLHMpOnYodGhpcyxwdCxcImZcIikuZmFpbCh2KHRoaXMsY3QsXCJmXCIpLnkxOG4uX18oXCJBcmd1bWVudCBjaGVjayBmYWlsZWQ6ICVzXCIsdC50b1N0cmluZygpKSksZSkpLCh0PT4odih0aGlzLHB0LFwiZlwiKS5mYWlsKHQubWVzc2FnZT90Lm1lc3NhZ2U6dC50b1N0cmluZygpLHQpLGUpKSkpLCExLGUpLHRoaXN9Y2hvaWNlcyh0LGUpe3JldHVybiBoKFwiPG9iamVjdHxzdHJpbmd8YXJyYXk+IFtzdHJpbmd8YXJyYXldXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksdGhpc1tQdF0odGhpcy5jaG9pY2VzLmJpbmQodGhpcyksXCJjaG9pY2VzXCIsdCxlKSx0aGlzfWNvZXJjZSh0LHMpe2lmKGgoXCI8b2JqZWN0fHN0cmluZ3xhcnJheT4gW2Z1bmN0aW9uXVwiLFt0LHNdLGFyZ3VtZW50cy5sZW5ndGgpLEFycmF5LmlzQXJyYXkodCkpe2lmKCFzKXRocm93IG5ldyBlKFwiY29lcmNlIGNhbGxiYWNrIG11c3QgYmUgcHJvdmlkZWRcIik7Zm9yKGNvbnN0IGUgb2YgdCl0aGlzLmNvZXJjZShlLHMpO3JldHVybiB0aGlzfWlmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXtmb3IoY29uc3QgZSBvZiBPYmplY3Qua2V5cyh0KSl0aGlzLmNvZXJjZShlLHRbZV0pO3JldHVybiB0aGlzfWlmKCFzKXRocm93IG5ldyBlKFwiY29lcmNlIGNhbGxiYWNrIG11c3QgYmUgcHJvdmlkZWRcIik7cmV0dXJuIHYodGhpcyxldCxcImZcIikua2V5W3RdPSEwLHYodGhpcyxCLFwiZlwiKS5hZGRDb2VyY2VNaWRkbGV3YXJlKCgoaSxuKT0+e2xldCByO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaSx0KT9qKCgoKT0+KHI9bi5nZXRBbGlhc2VzKCkscyhpW3RdKSkpLChlPT57aVt0XT1lO2NvbnN0IHM9bi5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRQYXJzZXJDb25maWd1cmF0aW9uKClbXCJzdHJpcC1hbGlhc2VkXCJdO2lmKHJbdF0mJiEwIT09cylmb3IoY29uc3QgcyBvZiByW3RdKWlbc109ZTtyZXR1cm4gaX0pLCh0PT57dGhyb3cgbmV3IGUodC5tZXNzYWdlKX0pKTppfSksdCksdGhpc31jb25mbGljdHModCxlKXtyZXR1cm4gaChcIjxzdHJpbmd8b2JqZWN0PiBbc3RyaW5nfGFycmF5XVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHYodGhpcyxtdCxcImZcIikuY29uZmxpY3RzKHQsZSksdGhpc31jb25maWcodD1cImNvbmZpZ1wiLGUscyl7cmV0dXJuIGgoXCJbb2JqZWN0fHN0cmluZ10gW3N0cmluZ3xmdW5jdGlvbl0gW2Z1bmN0aW9uXVwiLFt0LGUsc10sYXJndW1lbnRzLmxlbmd0aCksXCJvYmplY3RcIiE9dHlwZW9mIHR8fEFycmF5LmlzQXJyYXkodCk/KFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihzPWUsZT12b2lkIDApLHRoaXMuZGVzY3JpYmUodCxlfHx2KHRoaXMscHQsXCJmXCIpLmRlZmVyWTE4bkxvb2t1cChcIlBhdGggdG8gSlNPTiBjb25maWcgZmlsZVwiKSksKEFycmF5LmlzQXJyYXkodCk/dDpbdF0pLmZvckVhY2goKHQ9Pnt2KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ1t0XT1zfHwhMH0pKSx0aGlzKToodD1uKHQsdih0aGlzLHEsXCJmXCIpLHRoaXNbanRdKClbXCJkZWVwLW1lcmdlLWNvbmZpZ1wiXXx8ITEsdih0aGlzLGN0LFwiZlwiKSksdih0aGlzLGV0LFwiZlwiKS5jb25maWdPYmplY3RzPSh2KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ09iamVjdHN8fFtdKS5jb25jYXQodCksdGhpcyl9Y29tcGxldGlvbih0LGUscyl7cmV0dXJuIGgoXCJbc3RyaW5nXSBbc3RyaW5nfGJvb2xlYW58ZnVuY3Rpb25dIFtmdW5jdGlvbl1cIixbdCxlLHNdLGFyZ3VtZW50cy5sZW5ndGgpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihzPWUsZT12b2lkIDApLE8odGhpcyxVLHR8fHYodGhpcyxVLFwiZlwiKXx8XCJjb21wbGV0aW9uXCIsXCJmXCIpLGV8fCExPT09ZXx8KGU9XCJnZW5lcmF0ZSBjb21wbGV0aW9uIHNjcmlwdFwiKSx0aGlzLmNvbW1hbmQodih0aGlzLFUsXCJmXCIpLGUpLHMmJnYodGhpcyxGLFwiZlwiKS5yZWdpc3RlckZ1bmN0aW9uKHMpLHRoaXN9Y29tbWFuZCh0LGUscyxpLG4scil7cmV0dXJuIGgoXCI8c3RyaW5nfGFycmF5fG9iamVjdD4gW3N0cmluZ3xib29sZWFuXSBbZnVuY3Rpb258b2JqZWN0XSBbZnVuY3Rpb25dIFthcnJheV0gW2Jvb2xlYW58c3RyaW5nXVwiLFt0LGUscyxpLG4scl0sYXJndW1lbnRzLmxlbmd0aCksdih0aGlzLHosXCJmXCIpLmFkZEhhbmRsZXIodCxlLHMsaSxuLHIpLHRoaXN9Y29tbWFuZHModCxlLHMsaSxuLHIpe3JldHVybiB0aGlzLmNvbW1hbmQodCxlLHMsaSxuLHIpfWNvbW1hbmREaXIodCxlKXtoKFwiPHN0cmluZz4gW29iamVjdF1cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKTtjb25zdCBzPXYodGhpcyxzdCxcImZcIil8fHYodGhpcyxjdCxcImZcIikucmVxdWlyZTtyZXR1cm4gdih0aGlzLHosXCJmXCIpLmFkZERpcmVjdG9yeSh0LHMsdih0aGlzLGN0LFwiZlwiKS5nZXRDYWxsZXJGaWxlKCksZSksdGhpc31jb3VudCh0KXtyZXR1cm4gaChcIjxhcnJheXxzdHJpbmc+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXNbRXRdKFwiY291bnRcIix0KSx0aGlzW1p0XSh0KSx0aGlzfWRlZmF1bHQodCxlLHMpe3JldHVybiBoKFwiPG9iamVjdHxzdHJpbmd8YXJyYXk+IFsqXSBbc3RyaW5nXVwiLFt0LGUsc10sYXJndW1lbnRzLmxlbmd0aCkscyYmKHUodCx2KHRoaXMsY3QsXCJmXCIpKSx2KHRoaXMsZXQsXCJmXCIpLmRlZmF1bHREZXNjcmlwdGlvblt0XT1zKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYodSh0LHYodGhpcyxjdCxcImZcIikpLHYodGhpcyxldCxcImZcIikuZGVmYXVsdERlc2NyaXB0aW9uW3RdfHwodih0aGlzLGV0LFwiZlwiKS5kZWZhdWx0RGVzY3JpcHRpb25bdF09dih0aGlzLHB0LFwiZlwiKS5mdW5jdGlvbkRlc2NyaXB0aW9uKGUpKSxlPWUuY2FsbCgpKSx0aGlzW0F0XSh0aGlzLmRlZmF1bHQuYmluZCh0aGlzKSxcImRlZmF1bHRcIix0LGUpLHRoaXN9ZGVmYXVsdHModCxlLHMpe3JldHVybiB0aGlzLmRlZmF1bHQodCxlLHMpfWRlbWFuZENvbW1hbmQodD0xLGUscyxpKXtyZXR1cm4gaChcIltudW1iZXJdIFtudW1iZXJ8c3RyaW5nXSBbc3RyaW5nfG51bGx8dW5kZWZpbmVkXSBbc3RyaW5nfG51bGx8dW5kZWZpbmVkXVwiLFt0LGUscyxpXSxhcmd1bWVudHMubGVuZ3RoKSxcIm51bWJlclwiIT10eXBlb2YgZSYmKHM9ZSxlPTEvMCksdGhpcy5nbG9iYWwoXCJfXCIsITEpLHYodGhpcyxldCxcImZcIikuZGVtYW5kZWRDb21tYW5kcy5fPXttaW46dCxtYXg6ZSxtaW5Nc2c6cyxtYXhNc2c6aX0sdGhpc31kZW1hbmQodCxlLHMpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPyhlLmZvckVhY2goKHQ9PntkKHMsITAsdih0aGlzLGN0LFwiZlwiKSksdGhpcy5kZW1hbmRPcHRpb24odCxzKX0pKSxlPTEvMCk6XCJudW1iZXJcIiE9dHlwZW9mIGUmJihzPWUsZT0xLzApLFwibnVtYmVyXCI9PXR5cGVvZiB0PyhkKHMsITAsdih0aGlzLGN0LFwiZlwiKSksdGhpcy5kZW1hbmRDb21tYW5kKHQsZSxzLHMpKTpBcnJheS5pc0FycmF5KHQpP3QuZm9yRWFjaCgodD0+e2QocywhMCx2KHRoaXMsY3QsXCJmXCIpKSx0aGlzLmRlbWFuZE9wdGlvbih0LHMpfSkpOlwic3RyaW5nXCI9PXR5cGVvZiBzP3RoaXMuZGVtYW5kT3B0aW9uKHQscyk6ITAhPT1zJiZ2b2lkIDAhPT1zfHx0aGlzLmRlbWFuZE9wdGlvbih0KSx0aGlzfWRlbWFuZE9wdGlvbih0LGUpe3JldHVybiBoKFwiPG9iamVjdHxzdHJpbmd8YXJyYXk+IFtzdHJpbmddXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksdGhpc1tBdF0odGhpcy5kZW1hbmRPcHRpb24uYmluZCh0aGlzKSxcImRlbWFuZGVkT3B0aW9uc1wiLHQsZSksdGhpc31kZXByZWNhdGVPcHRpb24odCxlKXtyZXR1cm4gaChcIjxzdHJpbmc+IFtzdHJpbmd8Ym9vbGVhbl1cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKSx2KHRoaXMsZXQsXCJmXCIpLmRlcHJlY2F0ZWRPcHRpb25zW3RdPWUsdGhpc31kZXNjcmliZSh0LGUpe3JldHVybiBoKFwiPG9iamVjdHxzdHJpbmd8YXJyYXk+IFtzdHJpbmddXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksdGhpc1tJdF0odCwhMCksdih0aGlzLHB0LFwiZlwiKS5kZXNjcmliZSh0LGUpLHRoaXN9ZGV0ZWN0TG9jYWxlKHQpe3JldHVybiBoKFwiPGJvb2xlYW4+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLE8odGhpcyxHLHQsXCJmXCIpLHRoaXN9ZW52KHQpe3JldHVybiBoKFwiW3N0cmluZ3xib29sZWFuXVwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSwhMT09PXQ/ZGVsZXRlIHYodGhpcyxldCxcImZcIikuZW52UHJlZml4OnYodGhpcyxldCxcImZcIikuZW52UHJlZml4PXR8fFwiXCIsdGhpc31lcGlsb2d1ZSh0KXtyZXR1cm4gaChcIjxzdHJpbmc+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLHYodGhpcyxwdCxcImZcIikuZXBpbG9nKHQpLHRoaXN9ZXBpbG9nKHQpe3JldHVybiB0aGlzLmVwaWxvZ3VlKHQpfWV4YW1wbGUodCxlKXtyZXR1cm4gaChcIjxzdHJpbmd8YXJyYXk+IFtzdHJpbmddXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksQXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goKHQ9PnRoaXMuZXhhbXBsZSguLi50KSkpOnYodGhpcyxwdCxcImZcIikuZXhhbXBsZSh0LGUpLHRoaXN9ZXhpdCh0LGUpe08odGhpcyxKLCEwLFwiZlwiKSxPKHRoaXMsVixlLFwiZlwiKSx2KHRoaXMsVCxcImZcIikmJnYodGhpcyxjdCxcImZcIikucHJvY2Vzcy5leGl0KHQpfWV4aXRQcm9jZXNzKHQ9ITApe3JldHVybiBoKFwiW2Jvb2xlYW5dXCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLE8odGhpcyxULHQsXCJmXCIpLHRoaXN9ZmFpbCh0KXtpZihoKFwiPGZ1bmN0aW9ufGJvb2xlYW4+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLFwiYm9vbGVhblwiPT10eXBlb2YgdCYmITEhPT10KXRocm93IG5ldyBlKFwiSW52YWxpZCBmaXJzdCBhcmd1bWVudC4gRXhwZWN0ZWQgZnVuY3Rpb24gb3IgYm9vbGVhbiAnZmFsc2UnXCIpO3JldHVybiB2KHRoaXMscHQsXCJmXCIpLmZhaWxGbih0KSx0aGlzfWdldEFsaWFzZXMoKXtyZXR1cm4gdGhpcy5wYXJzZWQ/dGhpcy5wYXJzZWQuYWxpYXNlczp7fX1hc3luYyBnZXRDb21wbGV0aW9uKHQsZSl7cmV0dXJuIGgoXCI8YXJyYXk+IFtmdW5jdGlvbl1cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKSxlP3YodGhpcyxGLFwiZlwiKS5nZXRDb21wbGV0aW9uKHQsZSk6bmV3IFByb21pc2UoKChlLHMpPT57dih0aGlzLEYsXCJmXCIpLmdldENvbXBsZXRpb24odCwoKHQsaSk9Pnt0P3ModCk6ZShpKX0pKX0pKX1nZXREZW1hbmRlZE9wdGlvbnMoKXtyZXR1cm4gaChbXSwwKSx2KHRoaXMsZXQsXCJmXCIpLmRlbWFuZGVkT3B0aW9uc31nZXREZW1hbmRlZENvbW1hbmRzKCl7cmV0dXJuIGgoW10sMCksdih0aGlzLGV0LFwiZlwiKS5kZW1hbmRlZENvbW1hbmRzfWdldERlcHJlY2F0ZWRPcHRpb25zKCl7cmV0dXJuIGgoW10sMCksdih0aGlzLGV0LFwiZlwiKS5kZXByZWNhdGVkT3B0aW9uc31nZXREZXRlY3RMb2NhbGUoKXtyZXR1cm4gdih0aGlzLEcsXCJmXCIpfWdldEV4aXRQcm9jZXNzKCl7cmV0dXJuIHYodGhpcyxULFwiZlwiKX1nZXRHcm91cHMoKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx2KHRoaXMsWSxcImZcIiksdih0aGlzLGF0LFwiZlwiKSl9Z2V0SGVscCgpe2lmKE8odGhpcyxKLCEwLFwiZlwiKSwhdih0aGlzLHB0LFwiZlwiKS5oYXNDYWNoZWRIZWxwTWVzc2FnZSgpKXtpZighdGhpcy5wYXJzZWQpe2NvbnN0IHQ9dGhpc1tCdF0odih0aGlzLGh0LFwiZlwiKSx2b2lkIDAsdm9pZCAwLDAsITApO2lmKGYodCkpcmV0dXJuIHQudGhlbigoKCk9PnYodGhpcyxwdCxcImZcIikuaGVscCgpKSl9Y29uc3QgdD12KHRoaXMseixcImZcIikucnVuRGVmYXVsdEJ1aWxkZXJPbih0aGlzKTtpZihmKHQpKXJldHVybiB0LnRoZW4oKCgpPT52KHRoaXMscHQsXCJmXCIpLmhlbHAoKSkpfXJldHVybiBQcm9taXNlLnJlc29sdmUodih0aGlzLHB0LFwiZlwiKS5oZWxwKCkpfWdldE9wdGlvbnMoKXtyZXR1cm4gdih0aGlzLGV0LFwiZlwiKX1nZXRTdHJpY3QoKXtyZXR1cm4gdih0aGlzLGZ0LFwiZlwiKX1nZXRTdHJpY3RDb21tYW5kcygpe3JldHVybiB2KHRoaXMsZHQsXCJmXCIpfWdldFN0cmljdE9wdGlvbnMoKXtyZXR1cm4gdih0aGlzLHV0LFwiZlwiKX1nbG9iYWwodCxlKXtyZXR1cm4gaChcIjxzdHJpbmd8YXJyYXk+IFtib29sZWFuXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHQ9W10uY29uY2F0KHQpLCExIT09ZT92KHRoaXMsZXQsXCJmXCIpLmxvY2FsPXYodGhpcyxldCxcImZcIikubG9jYWwuZmlsdGVyKChlPT4tMT09PXQuaW5kZXhPZihlKSkpOnQuZm9yRWFjaCgodD0+e3YodGhpcyxldCxcImZcIikubG9jYWwuaW5jbHVkZXModCl8fHYodGhpcyxldCxcImZcIikubG9jYWwucHVzaCh0KX0pKSx0aGlzfWdyb3VwKHQsZSl7aChcIjxzdHJpbmd8YXJyYXk+IDxzdHJpbmc+XCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCk7Y29uc3Qgcz12KHRoaXMsYXQsXCJmXCIpW2VdfHx2KHRoaXMsWSxcImZcIilbZV07dih0aGlzLGF0LFwiZlwiKVtlXSYmZGVsZXRlIHYodGhpcyxhdCxcImZcIilbZV07Y29uc3QgaT17fTtyZXR1cm4gdih0aGlzLFksXCJmXCIpW2VdPShzfHxbXSkuY29uY2F0KHQpLmZpbHRlcigodD0+IWlbdF0mJihpW3RdPSEwKSkpLHRoaXN9aGlkZSh0KXtyZXR1cm4gaChcIjxzdHJpbmc+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLHYodGhpcyxldCxcImZcIikuaGlkZGVuT3B0aW9ucy5wdXNoKHQpLHRoaXN9aW1wbGllcyh0LGUpe3JldHVybiBoKFwiPHN0cmluZ3xvYmplY3Q+IFtudW1iZXJ8c3RyaW5nfGFycmF5XVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHYodGhpcyxtdCxcImZcIikuaW1wbGllcyh0LGUpLHRoaXN9bG9jYWxlKHQpe3JldHVybiBoKFwiW3N0cmluZ11cIixbdF0sYXJndW1lbnRzLmxlbmd0aCksdm9pZCAwPT09dD8odGhpc1tfdF0oKSx2KHRoaXMsY3QsXCJmXCIpLnkxOG4uZ2V0TG9jYWxlKCkpOihPKHRoaXMsRywhMSxcImZcIiksdih0aGlzLGN0LFwiZlwiKS55MThuLnNldExvY2FsZSh0KSx0aGlzKX1taWRkbGV3YXJlKHQsZSxzKXtyZXR1cm4gdih0aGlzLEIsXCJmXCIpLmFkZE1pZGRsZXdhcmUodCwhIWUscyl9bmFyZ3ModCxlKXtyZXR1cm4gaChcIjxzdHJpbmd8b2JqZWN0fGFycmF5PiBbbnVtYmVyXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXNbQXRdKHRoaXMubmFyZ3MuYmluZCh0aGlzKSxcIm5hcmdcIix0LGUpLHRoaXN9bm9ybWFsaXplKHQpe3JldHVybiBoKFwiPGFycmF5fHN0cmluZz5cIixbdF0sYXJndW1lbnRzLmxlbmd0aCksdGhpc1tFdF0oXCJub3JtYWxpemVcIix0KSx0aGlzfW51bWJlcih0KXtyZXR1cm4gaChcIjxhcnJheXxzdHJpbmc+XCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLHRoaXNbRXRdKFwibnVtYmVyXCIsdCksdGhpc1tadF0odCksdGhpc31vcHRpb24odCxlKXtpZihoKFwiPHN0cmluZ3xvYmplY3Q+IFtvYmplY3RdXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksXCJvYmplY3RcIj09dHlwZW9mIHQpT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZT0+e3RoaXMub3B0aW9ucyhlLHRbZV0pfSkpO2Vsc2V7XCJvYmplY3RcIiE9dHlwZW9mIGUmJihlPXt9KSx0aGlzW1p0XSh0KSwhdih0aGlzLGd0LFwiZlwiKXx8XCJ2ZXJzaW9uXCIhPT10JiZcInZlcnNpb25cIiE9PShudWxsPT1lP3ZvaWQgMDplLmFsaWFzKXx8dGhpc1tPdF0oWydcInZlcnNpb25cIiBpcyBhIHJlc2VydmVkIHdvcmQuJyxcIlBsZWFzZSBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZzpcIiwnLSBEaXNhYmxlIHZlcnNpb24gd2l0aCBgeWFyZ3MudmVyc2lvbihmYWxzZSlgIGlmIHVzaW5nIFwidmVyc2lvblwiIGFzIGFuIG9wdGlvbicsXCItIFVzZSB0aGUgYnVpbHQtaW4gYHlhcmdzLnZlcnNpb25gIG1ldGhvZCBpbnN0ZWFkIChpZiBhcHBsaWNhYmxlKVwiLFwiLSBVc2UgYSBkaWZmZXJlbnQgb3B0aW9uIGtleVwiLFwiaHR0cHM6Ly95YXJncy5qcy5vcmcvZG9jcy8jYXBpLXJlZmVyZW5jZS12ZXJzaW9uXCJdLmpvaW4oXCJcXG5cIiksdm9pZCAwLFwidmVyc2lvbldhcm5pbmdcIiksdih0aGlzLGV0LFwiZlwiKS5rZXlbdF09ITAsZS5hbGlhcyYmdGhpcy5hbGlhcyh0LGUuYWxpYXMpO2NvbnN0IHM9ZS5kZXByZWNhdGV8fGUuZGVwcmVjYXRlZDtzJiZ0aGlzLmRlcHJlY2F0ZU9wdGlvbih0LHMpO2NvbnN0IGk9ZS5kZW1hbmR8fGUucmVxdWlyZWR8fGUucmVxdWlyZTtpJiZ0aGlzLmRlbWFuZCh0LGkpLGUuZGVtYW5kT3B0aW9uJiZ0aGlzLmRlbWFuZE9wdGlvbih0LFwic3RyaW5nXCI9PXR5cGVvZiBlLmRlbWFuZE9wdGlvbj9lLmRlbWFuZE9wdGlvbjp2b2lkIDApLGUuY29uZmxpY3RzJiZ0aGlzLmNvbmZsaWN0cyh0LGUuY29uZmxpY3RzKSxcImRlZmF1bHRcImluIGUmJnRoaXMuZGVmYXVsdCh0LGUuZGVmYXVsdCksdm9pZCAwIT09ZS5pbXBsaWVzJiZ0aGlzLmltcGxpZXModCxlLmltcGxpZXMpLHZvaWQgMCE9PWUubmFyZ3MmJnRoaXMubmFyZ3ModCxlLm5hcmdzKSxlLmNvbmZpZyYmdGhpcy5jb25maWcodCxlLmNvbmZpZ1BhcnNlciksZS5ub3JtYWxpemUmJnRoaXMubm9ybWFsaXplKHQpLGUuY2hvaWNlcyYmdGhpcy5jaG9pY2VzKHQsZS5jaG9pY2VzKSxlLmNvZXJjZSYmdGhpcy5jb2VyY2UodCxlLmNvZXJjZSksZS5ncm91cCYmdGhpcy5ncm91cCh0LGUuZ3JvdXApLChlLmJvb2xlYW58fFwiYm9vbGVhblwiPT09ZS50eXBlKSYmKHRoaXMuYm9vbGVhbih0KSxlLmFsaWFzJiZ0aGlzLmJvb2xlYW4oZS5hbGlhcykpLChlLmFycmF5fHxcImFycmF5XCI9PT1lLnR5cGUpJiYodGhpcy5hcnJheSh0KSxlLmFsaWFzJiZ0aGlzLmFycmF5KGUuYWxpYXMpKSwoZS5udW1iZXJ8fFwibnVtYmVyXCI9PT1lLnR5cGUpJiYodGhpcy5udW1iZXIodCksZS5hbGlhcyYmdGhpcy5udW1iZXIoZS5hbGlhcykpLChlLnN0cmluZ3x8XCJzdHJpbmdcIj09PWUudHlwZSkmJih0aGlzLnN0cmluZyh0KSxlLmFsaWFzJiZ0aGlzLnN0cmluZyhlLmFsaWFzKSksKGUuY291bnR8fFwiY291bnRcIj09PWUudHlwZSkmJnRoaXMuY291bnQodCksXCJib29sZWFuXCI9PXR5cGVvZiBlLmdsb2JhbCYmdGhpcy5nbG9iYWwodCxlLmdsb2JhbCksZS5kZWZhdWx0RGVzY3JpcHRpb24mJih2KHRoaXMsZXQsXCJmXCIpLmRlZmF1bHREZXNjcmlwdGlvblt0XT1lLmRlZmF1bHREZXNjcmlwdGlvbiksZS5za2lwVmFsaWRhdGlvbiYmdGhpcy5za2lwVmFsaWRhdGlvbih0KTtjb25zdCBuPWUuZGVzY3JpYmV8fGUuZGVzY3JpcHRpb258fGUuZGVzYzt0aGlzLmRlc2NyaWJlKHQsbiksZS5oaWRkZW4mJnRoaXMuaGlkZSh0KSxlLnJlcXVpcmVzQXJnJiZ0aGlzLnJlcXVpcmVzQXJnKHQpfXJldHVybiB0aGlzfW9wdGlvbnModCxlKXtyZXR1cm4gdGhpcy5vcHRpb24odCxlKX1wYXJzZSh0LGUscyl7aChcIltzdHJpbmd8YXJyYXldIFtmdW5jdGlvbnxib29sZWFufG9iamVjdF0gW2Z1bmN0aW9uXVwiLFt0LGUsc10sYXJndW1lbnRzLmxlbmd0aCksdGhpc1t3dF0oKSx2b2lkIDA9PT10JiYodD12KHRoaXMsaHQsXCJmXCIpKSxcIm9iamVjdFwiPT10eXBlb2YgZSYmKE8odGhpcyxydCxlLFwiZlwiKSxlPXMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihPKHRoaXMsbnQsZSxcImZcIiksZT0hMSksZXx8Tyh0aGlzLGh0LHQsXCJmXCIpLHYodGhpcyxudCxcImZcIikmJk8odGhpcyxULCExLFwiZlwiKTtjb25zdCBpPXRoaXNbQnRdKHQsISFlKSxuPXRoaXMucGFyc2VkO3JldHVybiB2KHRoaXMsRixcImZcIikuc2V0UGFyc2VkKHRoaXMucGFyc2VkKSxmKGkpP2kudGhlbigodD0+KHYodGhpcyxudCxcImZcIikmJnYodGhpcyxudCxcImZcIikuY2FsbCh0aGlzLHYodGhpcyxWLFwiZlwiKSx0LHYodGhpcyx0dCxcImZcIikpLHQpKSkuY2F0Y2goKHQ9Pnt0aHJvdyB2KHRoaXMsbnQsXCJmXCIpJiZ2KHRoaXMsbnQsXCJmXCIpKHQsdGhpcy5wYXJzZWQuYXJndix2KHRoaXMsdHQsXCJmXCIpKSx0fSkpLmZpbmFsbHkoKCgpPT57dGhpc1tEdF0oKSx0aGlzLnBhcnNlZD1ufSkpOih2KHRoaXMsbnQsXCJmXCIpJiZ2KHRoaXMsbnQsXCJmXCIpLmNhbGwodGhpcyx2KHRoaXMsVixcImZcIiksaSx2KHRoaXMsdHQsXCJmXCIpKSx0aGlzW0R0XSgpLHRoaXMucGFyc2VkPW4saSl9cGFyc2VBc3luYyh0LGUscyl7Y29uc3QgaT10aGlzLnBhcnNlKHQsZSxzKTtyZXR1cm4gZihpKT9pOlByb21pc2UucmVzb2x2ZShpKX1wYXJzZVN5bmModCxzLGkpe2NvbnN0IG49dGhpcy5wYXJzZSh0LHMsaSk7aWYoZihuKSl0aHJvdyBuZXcgZShcIi5wYXJzZVN5bmMoKSBtdXN0IG5vdCBiZSB1c2VkIHdpdGggYXN5bmNocm9ub3VzIGJ1aWxkZXJzLCBoYW5kbGVycywgb3IgbWlkZGxld2FyZVwiKTtyZXR1cm4gbn1wYXJzZXJDb25maWd1cmF0aW9uKHQpe3JldHVybiBoKFwiPG9iamVjdD5cIixbdF0sYXJndW1lbnRzLmxlbmd0aCksTyh0aGlzLGl0LHQsXCJmXCIpLHRoaXN9cGtnQ29uZih0LGUpe2goXCI8c3RyaW5nPiBbc3RyaW5nXVwiLFt0LGVdLGFyZ3VtZW50cy5sZW5ndGgpO2xldCBzPW51bGw7Y29uc3QgaT10aGlzW3h0XShlfHx2KHRoaXMscSxcImZcIikpO3JldHVybiBpW3RdJiZcIm9iamVjdFwiPT10eXBlb2YgaVt0XSYmKHM9bihpW3RdLGV8fHYodGhpcyxxLFwiZlwiKSx0aGlzW2p0XSgpW1wiZGVlcC1tZXJnZS1jb25maWdcIl18fCExLHYodGhpcyxjdCxcImZcIikpLHYodGhpcyxldCxcImZcIikuY29uZmlnT2JqZWN0cz0odih0aGlzLGV0LFwiZlwiKS5jb25maWdPYmplY3RzfHxbXSkuY29uY2F0KHMpKSx0aGlzfXBvc2l0aW9uYWwodCxlKXtoKFwiPHN0cmluZz4gPG9iamVjdD5cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKTtjb25zdCBzPVtcImRlZmF1bHRcIixcImRlZmF1bHREZXNjcmlwdGlvblwiLFwiaW1wbGllc1wiLFwibm9ybWFsaXplXCIsXCJjaG9pY2VzXCIsXCJjb25mbGljdHNcIixcImNvZXJjZVwiLFwidHlwZVwiLFwiZGVzY3JpYmVcIixcImRlc2NcIixcImRlc2NyaXB0aW9uXCIsXCJhbGlhc1wiXTtlPWcoZSwoKHQsZSk9PiEoXCJ0eXBlXCI9PT10JiYhW1wic3RyaW5nXCIsXCJudW1iZXJcIixcImJvb2xlYW5cIl0uaW5jbHVkZXMoZSkpJiZzLmluY2x1ZGVzKHQpKSk7Y29uc3QgaT12KHRoaXMsVyxcImZcIikuZnVsbENvbW1hbmRzW3YodGhpcyxXLFwiZlwiKS5mdWxsQ29tbWFuZHMubGVuZ3RoLTFdLG49aT92KHRoaXMseixcImZcIikuY21kVG9QYXJzZU9wdGlvbnMoaSk6e2FycmF5OltdLGFsaWFzOnt9LGRlZmF1bHQ6e30sZGVtYW5kOnt9fTtyZXR1cm4gcChuKS5mb3JFYWNoKChzPT57Y29uc3QgaT1uW3NdO0FycmF5LmlzQXJyYXkoaSk/LTEhPT1pLmluZGV4T2YodCkmJihlW3NdPSEwKTppW3RdJiYhKHMgaW4gZSkmJihlW3NdPWlbdF0pfSkpLHRoaXMuZ3JvdXAodCx2KHRoaXMscHQsXCJmXCIpLmdldFBvc2l0aW9uYWxHcm91cE5hbWUoKSksdGhpcy5vcHRpb24odCxlKX1yZWNvbW1lbmRDb21tYW5kcyh0PSEwKXtyZXR1cm4gaChcIltib29sZWFuXVwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSxPKHRoaXMsbHQsdCxcImZcIiksdGhpc31yZXF1aXJlZCh0LGUscyl7cmV0dXJuIHRoaXMuZGVtYW5kKHQsZSxzKX1yZXF1aXJlKHQsZSxzKXtyZXR1cm4gdGhpcy5kZW1hbmQodCxlLHMpfXJlcXVpcmVzQXJnKHQpe3JldHVybiBoKFwiPGFycmF5fHN0cmluZ3xvYmplY3Q+IFtudW1iZXJdXCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLFwic3RyaW5nXCI9PXR5cGVvZiB0JiZ2KHRoaXMsZXQsXCJmXCIpLm5hcmdbdF18fHRoaXNbQXRdKHRoaXMucmVxdWlyZXNBcmcuYmluZCh0aGlzKSxcIm5hcmdcIix0LE5hTiksdGhpc31zaG93Q29tcGxldGlvblNjcmlwdCh0LGUpe3JldHVybiBoKFwiW3N0cmluZ10gW3N0cmluZ11cIixbdCxlXSxhcmd1bWVudHMubGVuZ3RoKSx0PXR8fHRoaXMuJDAsdih0aGlzLFEsXCJmXCIpLmxvZyh2KHRoaXMsRixcImZcIikuZ2VuZXJhdGVDb21wbGV0aW9uU2NyaXB0KHQsZXx8dih0aGlzLFUsXCJmXCIpfHxcImNvbXBsZXRpb25cIikpLHRoaXN9c2hvd0hlbHAodCl7aWYoaChcIltzdHJpbmd8ZnVuY3Rpb25dXCIsW3RdLGFyZ3VtZW50cy5sZW5ndGgpLE8odGhpcyxKLCEwLFwiZlwiKSwhdih0aGlzLHB0LFwiZlwiKS5oYXNDYWNoZWRIZWxwTWVzc2FnZSgpKXtpZighdGhpcy5wYXJzZWQpe2NvbnN0IGU9dGhpc1tCdF0odih0aGlzLGh0LFwiZlwiKSx2b2lkIDAsdm9pZCAwLDAsITApO2lmKGYoZSkpcmV0dXJuIGUudGhlbigoKCk9Pnt2KHRoaXMscHQsXCJmXCIpLnNob3dIZWxwKHQpfSkpLHRoaXN9Y29uc3QgZT12KHRoaXMseixcImZcIikucnVuRGVmYXVsdEJ1aWxkZXJPbih0aGlzKTtpZihmKGUpKXJldHVybiBlLnRoZW4oKCgpPT57dih0aGlzLHB0LFwiZlwiKS5zaG93SGVscCh0KX0pKSx0aGlzfXJldHVybiB2KHRoaXMscHQsXCJmXCIpLnNob3dIZWxwKHQpLHRoaXN9c2NyaXB0TmFtZSh0KXtyZXR1cm4gdGhpcy5jdXN0b21TY3JpcHROYW1lPSEwLHRoaXMuJDA9dCx0aGlzfXNob3dIZWxwT25GYWlsKHQsZSl7cmV0dXJuIGgoXCJbYm9vbGVhbnxzdHJpbmddIFtzdHJpbmddXCIsW3QsZV0sYXJndW1lbnRzLmxlbmd0aCksdih0aGlzLHB0LFwiZlwiKS5zaG93SGVscE9uRmFpbCh0LGUpLHRoaXN9c2hvd1ZlcnNpb24odCl7cmV0dXJuIGgoXCJbc3RyaW5nfGZ1bmN0aW9uXVwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSx2KHRoaXMscHQsXCJmXCIpLnNob3dWZXJzaW9uKHQpLHRoaXN9c2tpcFZhbGlkYXRpb24odCl7cmV0dXJuIGgoXCI8YXJyYXl8c3RyaW5nPlwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSx0aGlzW0V0XShcInNraXBWYWxpZGF0aW9uXCIsdCksdGhpc31zdHJpY3QodCl7cmV0dXJuIGgoXCJbYm9vbGVhbl1cIixbdF0sYXJndW1lbnRzLmxlbmd0aCksTyh0aGlzLGZ0LCExIT09dCxcImZcIiksdGhpc31zdHJpY3RDb21tYW5kcyh0KXtyZXR1cm4gaChcIltib29sZWFuXVwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSxPKHRoaXMsZHQsITEhPT10LFwiZlwiKSx0aGlzfXN0cmljdE9wdGlvbnModCl7cmV0dXJuIGgoXCJbYm9vbGVhbl1cIixbdF0sYXJndW1lbnRzLmxlbmd0aCksTyh0aGlzLHV0LCExIT09dCxcImZcIiksdGhpc31zdHJpbmcodCl7cmV0dXJuIGgoXCI8YXJyYXl8c3RyaW5nPlwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSx0aGlzW0V0XShcInN0cmluZ1wiLHQpLHRoaXNbWnRdKHQpLHRoaXN9dGVybWluYWxXaWR0aCgpe3JldHVybiBoKFtdLDApLHYodGhpcyxjdCxcImZcIikucHJvY2Vzcy5zdGRDb2x1bW5zfXVwZGF0ZUxvY2FsZSh0KXtyZXR1cm4gdGhpcy51cGRhdGVTdHJpbmdzKHQpfXVwZGF0ZVN0cmluZ3ModCl7cmV0dXJuIGgoXCI8b2JqZWN0PlwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSxPKHRoaXMsRywhMSxcImZcIiksdih0aGlzLGN0LFwiZlwiKS55MThuLnVwZGF0ZUxvY2FsZSh0KSx0aGlzfXVzYWdlKHQscyxpLG4pe2lmKGgoXCI8c3RyaW5nfG51bGx8dW5kZWZpbmVkPiBbc3RyaW5nfGJvb2xlYW5dIFtmdW5jdGlvbnxvYmplY3RdIFtmdW5jdGlvbl1cIixbdCxzLGksbl0sYXJndW1lbnRzLmxlbmd0aCksdm9pZCAwIT09cyl7aWYoZCh0LG51bGwsdih0aGlzLGN0LFwiZlwiKSksKHR8fFwiXCIpLm1hdGNoKC9eXFwkMCggfCQpLykpcmV0dXJuIHRoaXMuY29tbWFuZCh0LHMsaSxuKTt0aHJvdyBuZXcgZShcIi51c2FnZSgpIGRlc2NyaXB0aW9uIG11c3Qgc3RhcnQgd2l0aCAkMCBpZiBiZWluZyB1c2VkIGFzIGFsaWFzIGZvciAuY29tbWFuZCgpXCIpfXJldHVybiB2KHRoaXMscHQsXCJmXCIpLnVzYWdlKHQpLHRoaXN9dmVyc2lvbih0LGUscyl7Y29uc3QgaT1cInZlcnNpb25cIjtpZihoKFwiW2Jvb2xlYW58c3RyaW5nXSBbc3RyaW5nXSBbc3RyaW5nXVwiLFt0LGUsc10sYXJndW1lbnRzLmxlbmd0aCksdih0aGlzLGd0LFwiZlwiKSYmKHRoaXNbdnRdKHYodGhpcyxndCxcImZcIikpLHYodGhpcyxwdCxcImZcIikudmVyc2lvbih2b2lkIDApLE8odGhpcyxndCxudWxsLFwiZlwiKSksMD09PWFyZ3VtZW50cy5sZW5ndGgpcz10aGlzW010XSgpLHQ9aTtlbHNlIGlmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZighMT09PXQpcmV0dXJuIHRoaXM7cz10LHQ9aX1lbHNlIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYocz1lLGU9dm9pZCAwKTtyZXR1cm4gTyh0aGlzLGd0LFwic3RyaW5nXCI9PXR5cGVvZiB0P3Q6aSxcImZcIiksZT1lfHx2KHRoaXMscHQsXCJmXCIpLmRlZmVyWTE4bkxvb2t1cChcIlNob3cgdmVyc2lvbiBudW1iZXJcIiksdih0aGlzLHB0LFwiZlwiKS52ZXJzaW9uKHN8fHZvaWQgMCksdGhpcy5ib29sZWFuKHYodGhpcyxndCxcImZcIikpLHRoaXMuZGVzY3JpYmUodih0aGlzLGd0LFwiZlwiKSxlKSx0aGlzfXdyYXAodCl7cmV0dXJuIGgoXCI8bnVtYmVyfG51bGx8dW5kZWZpbmVkPlwiLFt0XSxhcmd1bWVudHMubGVuZ3RoKSx2KHRoaXMscHQsXCJmXCIpLndyYXAodCksdGhpc31bKHo9bmV3IFdlYWtNYXAscT1uZXcgV2Vha01hcCxXPW5ldyBXZWFrTWFwLEY9bmV3IFdlYWtNYXAsVT1uZXcgV2Vha01hcCxMPW5ldyBXZWFrTWFwLFY9bmV3IFdlYWtNYXAsRz1uZXcgV2Vha01hcCxSPW5ldyBXZWFrTWFwLFQ9bmV3IFdlYWtNYXAsSz1uZXcgV2Vha01hcCxCPW5ldyBXZWFrTWFwLFk9bmV3IFdlYWtNYXAsSj1uZXcgV2Vha01hcCxaPW5ldyBXZWFrTWFwLFg9bmV3IFdlYWtNYXAsUT1uZXcgV2Vha01hcCx0dD1uZXcgV2Vha01hcCxldD1uZXcgV2Vha01hcCxzdD1uZXcgV2Vha01hcCxpdD1uZXcgV2Vha01hcCxudD1uZXcgV2Vha01hcCxydD1uZXcgV2Vha01hcCxvdD1uZXcgV2Vha01hcCxhdD1uZXcgV2Vha01hcCxodD1uZXcgV2Vha01hcCxsdD1uZXcgV2Vha01hcCxjdD1uZXcgV2Vha01hcCxmdD1uZXcgV2Vha01hcCxkdD1uZXcgV2Vha01hcCx1dD1uZXcgV2Vha01hcCxwdD1uZXcgV2Vha01hcCxndD1uZXcgV2Vha01hcCxtdD1uZXcgV2Vha01hcCx5dCldKHQpe2lmKCF0Ll98fCF0W1wiLS1cIl0pcmV0dXJuIHQ7dC5fLnB1c2guYXBwbHkodC5fLHRbXCItLVwiXSk7dHJ5e2RlbGV0ZSB0W1wiLS1cIl19Y2F0Y2godCl7fXJldHVybiB0fVtidF0oKXtyZXR1cm57bG9nOiguLi50KT0+e3RoaXNbVnRdKCl8fGNvbnNvbGUubG9nKC4uLnQpLE8odGhpcyxKLCEwLFwiZlwiKSx2KHRoaXMsdHQsXCJmXCIpLmxlbmd0aCYmTyh0aGlzLHR0LHYodGhpcyx0dCxcImZcIikrXCJcXG5cIixcImZcIiksTyh0aGlzLHR0LHYodGhpcyx0dCxcImZcIikrdC5qb2luKFwiIFwiKSxcImZcIil9LGVycm9yOiguLi50KT0+e3RoaXNbVnRdKCl8fGNvbnNvbGUuZXJyb3IoLi4udCksTyh0aGlzLEosITAsXCJmXCIpLHYodGhpcyx0dCxcImZcIikubGVuZ3RoJiZPKHRoaXMsdHQsdih0aGlzLHR0LFwiZlwiKStcIlxcblwiLFwiZlwiKSxPKHRoaXMsdHQsdih0aGlzLHR0LFwiZlwiKSt0LmpvaW4oXCIgXCIpLFwiZlwiKX19fVt2dF0odCl7cCh2KHRoaXMsZXQsXCJmXCIpKS5mb3JFYWNoKChlPT57aWYoXCJjb25maWdPYmplY3RzXCI9PT1lKXJldHVybjtjb25zdCBzPXYodGhpcyxldCxcImZcIilbZV07QXJyYXkuaXNBcnJheShzKT9zLmluY2x1ZGVzKHQpJiZzLnNwbGljZShzLmluZGV4T2YodCksMSk6XCJvYmplY3RcIj09dHlwZW9mIHMmJmRlbGV0ZSBzW3RdfSkpLGRlbGV0ZSB2KHRoaXMscHQsXCJmXCIpLmdldERlc2NyaXB0aW9ucygpW3RdfVtPdF0odCxlLHMpe3YodGhpcyxSLFwiZlwiKVtzXXx8KHYodGhpcyxjdCxcImZcIikucHJvY2Vzcy5lbWl0V2FybmluZyh0LGUpLHYodGhpcyxSLFwiZlwiKVtzXT0hMCl9W3d0XSgpe3YodGhpcyxLLFwiZlwiKS5wdXNoKHtvcHRpb25zOnYodGhpcyxldCxcImZcIiksY29uZmlnT2JqZWN0czp2KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ09iamVjdHMuc2xpY2UoMCksZXhpdFByb2Nlc3M6dih0aGlzLFQsXCJmXCIpLGdyb3Vwczp2KHRoaXMsWSxcImZcIiksc3RyaWN0OnYodGhpcyxmdCxcImZcIiksc3RyaWN0Q29tbWFuZHM6dih0aGlzLGR0LFwiZlwiKSxzdHJpY3RPcHRpb25zOnYodGhpcyx1dCxcImZcIiksY29tcGxldGlvbkNvbW1hbmQ6dih0aGlzLFUsXCJmXCIpLG91dHB1dDp2KHRoaXMsdHQsXCJmXCIpLGV4aXRFcnJvcjp2KHRoaXMsVixcImZcIiksaGFzT3V0cHV0OnYodGhpcyxKLFwiZlwiKSxwYXJzZWQ6dGhpcy5wYXJzZWQscGFyc2VGbjp2KHRoaXMsbnQsXCJmXCIpLHBhcnNlQ29udGV4dDp2KHRoaXMscnQsXCJmXCIpfSksdih0aGlzLHB0LFwiZlwiKS5mcmVlemUoKSx2KHRoaXMsbXQsXCJmXCIpLmZyZWV6ZSgpLHYodGhpcyx6LFwiZlwiKS5mcmVlemUoKSx2KHRoaXMsQixcImZcIikuZnJlZXplKCl9W0N0XSgpe2xldCB0LGU9XCJcIjtyZXR1cm4gdD0vXFxiKG5vZGV8aW9qc3xlbGVjdHJvbikoXFwuZXhlKT8kLy50ZXN0KHYodGhpcyxjdCxcImZcIikucHJvY2Vzcy5hcmd2KClbMF0pP3YodGhpcyxjdCxcImZcIikucHJvY2Vzcy5hcmd2KCkuc2xpY2UoMSwyKTp2KHRoaXMsY3QsXCJmXCIpLnByb2Nlc3MuYXJndigpLnNsaWNlKDAsMSksZT10Lm1hcCgodD0+e2NvbnN0IGU9dGhpc1tUdF0odih0aGlzLHEsXCJmXCIpLHQpO3JldHVybiB0Lm1hdGNoKC9eKFxcL3woW2EtekEtWl06KT9cXFxcKS8pJiZlLmxlbmd0aDx0Lmxlbmd0aD9lOnR9KSkuam9pbihcIiBcIikudHJpbSgpLHYodGhpcyxjdCxcImZcIikuZ2V0RW52KFwiX1wiKSYmdih0aGlzLGN0LFwiZlwiKS5nZXRQcm9jZXNzQXJndkJpbigpPT09dih0aGlzLGN0LFwiZlwiKS5nZXRFbnYoXCJfXCIpJiYoZT12KHRoaXMsY3QsXCJmXCIpLmdldEVudihcIl9cIikucmVwbGFjZShgJHt2KHRoaXMsY3QsXCJmXCIpLnBhdGguZGlybmFtZSh2KHRoaXMsY3QsXCJmXCIpLnByb2Nlc3MuZXhlY1BhdGgoKSl9L2AsXCJcIikpLGV9W2p0XSgpe3JldHVybiB2KHRoaXMsaXQsXCJmXCIpfVtfdF0oKXtpZighdih0aGlzLEcsXCJmXCIpKXJldHVybjtjb25zdCB0PXYodGhpcyxjdCxcImZcIikuZ2V0RW52KFwiTENfQUxMXCIpfHx2KHRoaXMsY3QsXCJmXCIpLmdldEVudihcIkxDX01FU1NBR0VTXCIpfHx2KHRoaXMsY3QsXCJmXCIpLmdldEVudihcIkxBTkdcIil8fHYodGhpcyxjdCxcImZcIikuZ2V0RW52KFwiTEFOR1VBR0VcIil8fFwiZW5fVVNcIjt0aGlzLmxvY2FsZSh0LnJlcGxhY2UoL1suOl0uKi8sXCJcIikpfVtNdF0oKXtyZXR1cm4gdGhpc1t4dF0oKS52ZXJzaW9ufHxcInVua25vd25cIn1ba3RdKHQpe2NvbnN0IGU9dFtcIi0tXCJdP3RbXCItLVwiXTp0Ll87Zm9yKGxldCB0LHM9MDt2b2lkIDAhPT0odD1lW3NdKTtzKyspdih0aGlzLGN0LFwiZlwiKS5QYXJzZXIubG9va3NMaWtlTnVtYmVyKHQpJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihNYXRoLmZsb29yKHBhcnNlRmxvYXQoYCR7dH1gKSkpJiYoZVtzXT1OdW1iZXIodCkpO3JldHVybiB0fVt4dF0odCl7Y29uc3QgZT10fHxcIipcIjtpZih2KHRoaXMsb3QsXCJmXCIpW2VdKXJldHVybiB2KHRoaXMsb3QsXCJmXCIpW2VdO2xldCBzPXt9O3RyeXtsZXQgZT10fHx2KHRoaXMsY3QsXCJmXCIpLm1haW5GaWxlbmFtZTshdCYmdih0aGlzLGN0LFwiZlwiKS5wYXRoLmV4dG5hbWUoZSkmJihlPXYodGhpcyxjdCxcImZcIikucGF0aC5kaXJuYW1lKGUpKTtjb25zdCBpPXYodGhpcyxjdCxcImZcIikuZmluZFVwKGUsKCh0LGUpPT5lLmluY2x1ZGVzKFwicGFja2FnZS5qc29uXCIpP1wicGFja2FnZS5qc29uXCI6dm9pZCAwKSk7ZChpLHZvaWQgMCx2KHRoaXMsY3QsXCJmXCIpKSxzPUpTT04ucGFyc2Uodih0aGlzLGN0LFwiZlwiKS5yZWFkRmlsZVN5bmMoaSxcInV0ZjhcIikpfWNhdGNoKHQpe31yZXR1cm4gdih0aGlzLG90LFwiZlwiKVtlXT1zfHx7fSx2KHRoaXMsb3QsXCJmXCIpW2VdfVtFdF0odCxlKXsoZT1bXS5jb25jYXQoZSkpLmZvckVhY2goKGU9PntlPXRoaXNbJHRdKGUpLHYodGhpcyxldCxcImZcIilbdF0ucHVzaChlKX0pKX1bQXRdKHQsZSxzLGkpe3RoaXNbU3RdKHQsZSxzLGksKCh0LGUscyk9Pnt2KHRoaXMsZXQsXCJmXCIpW3RdW2VdPXN9KSl9W1B0XSh0LGUscyxpKXt0aGlzW1N0XSh0LGUscyxpLCgodCxlLHMpPT57dih0aGlzLGV0LFwiZlwiKVt0XVtlXT0odih0aGlzLGV0LFwiZlwiKVt0XVtlXXx8W10pLmNvbmNhdChzKX0pKX1bU3RdKHQsZSxzLGksbil7aWYoQXJyYXkuaXNBcnJheShzKSlzLmZvckVhY2goKGU9Pnt0KGUsaSl9KSk7ZWxzZSBpZigodD0+XCJvYmplY3RcIj09dHlwZW9mIHQpKHMpKWZvcihjb25zdCBlIG9mIHAocykpdChlLHNbZV0pO2Vsc2UgbihlLHRoaXNbJHRdKHMpLGkpfVskdF0odCl7cmV0dXJuXCJfX3Byb3RvX19cIj09PXQ/XCJfX19wcm90b19fX1wiOnR9W0l0XSh0LGUpe3JldHVybiB0aGlzW0F0XSh0aGlzW0l0XS5iaW5kKHRoaXMpLFwia2V5XCIsdCxlKSx0aGlzfVtEdF0oKXt2YXIgdCxlLHMsaSxuLHIsbyxhLGgsbCxjLGY7Y29uc3QgdT12KHRoaXMsSyxcImZcIikucG9wKCk7bGV0IHA7ZCh1LHZvaWQgMCx2KHRoaXMsY3QsXCJmXCIpKSx0PXRoaXMsZT10aGlzLHM9dGhpcyxpPXRoaXMsbj10aGlzLHI9dGhpcyxvPXRoaXMsYT10aGlzLGg9dGhpcyxsPXRoaXMsYz10aGlzLGY9dGhpcywoe29wdGlvbnM6e3NldCB2YWx1ZShlKXtPKHQsZXQsZSxcImZcIil9fS52YWx1ZSxjb25maWdPYmplY3RzOnAsZXhpdFByb2Nlc3M6e3NldCB2YWx1ZSh0KXtPKGUsVCx0LFwiZlwiKX19LnZhbHVlLGdyb3Vwczp7c2V0IHZhbHVlKHQpe08ocyxZLHQsXCJmXCIpfX0udmFsdWUsb3V0cHV0OntzZXQgdmFsdWUodCl7TyhpLHR0LHQsXCJmXCIpfX0udmFsdWUsZXhpdEVycm9yOntzZXQgdmFsdWUodCl7TyhuLFYsdCxcImZcIil9fS52YWx1ZSxoYXNPdXRwdXQ6e3NldCB2YWx1ZSh0KXtPKHIsSix0LFwiZlwiKX19LnZhbHVlLHBhcnNlZDp0aGlzLnBhcnNlZCxzdHJpY3Q6e3NldCB2YWx1ZSh0KXtPKG8sZnQsdCxcImZcIil9fS52YWx1ZSxzdHJpY3RDb21tYW5kczp7c2V0IHZhbHVlKHQpe08oYSxkdCx0LFwiZlwiKX19LnZhbHVlLHN0cmljdE9wdGlvbnM6e3NldCB2YWx1ZSh0KXtPKGgsdXQsdCxcImZcIil9fS52YWx1ZSxjb21wbGV0aW9uQ29tbWFuZDp7c2V0IHZhbHVlKHQpe08obCxVLHQsXCJmXCIpfX0udmFsdWUscGFyc2VGbjp7c2V0IHZhbHVlKHQpe08oYyxudCx0LFwiZlwiKX19LnZhbHVlLHBhcnNlQ29udGV4dDp7c2V0IHZhbHVlKHQpe08oZixydCx0LFwiZlwiKX19LnZhbHVlfT11KSx2KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ09iamVjdHM9cCx2KHRoaXMscHQsXCJmXCIpLnVuZnJlZXplKCksdih0aGlzLG10LFwiZlwiKS51bmZyZWV6ZSgpLHYodGhpcyx6LFwiZlwiKS51bmZyZWV6ZSgpLHYodGhpcyxCLFwiZlwiKS51bmZyZWV6ZSgpfVtOdF0odCxlKXtyZXR1cm4gaihlLChlPT4odChlKSxlKSkpfWdldEludGVybmFsTWV0aG9kcygpe3JldHVybntnZXRDb21tYW5kSW5zdGFuY2U6dGhpc1tIdF0uYmluZCh0aGlzKSxnZXRDb250ZXh0OnRoaXNbenRdLmJpbmQodGhpcyksZ2V0SGFzT3V0cHV0OnRoaXNbcXRdLmJpbmQodGhpcyksZ2V0TG9nZ2VySW5zdGFuY2U6dGhpc1tXdF0uYmluZCh0aGlzKSxnZXRQYXJzZUNvbnRleHQ6dGhpc1tGdF0uYmluZCh0aGlzKSxnZXRQYXJzZXJDb25maWd1cmF0aW9uOnRoaXNbanRdLmJpbmQodGhpcyksZ2V0VXNhZ2VJbnN0YW5jZTp0aGlzW1V0XS5iaW5kKHRoaXMpLGdldFZhbGlkYXRpb25JbnN0YW5jZTp0aGlzW0x0XS5iaW5kKHRoaXMpLGhhc1BhcnNlQ2FsbGJhY2s6dGhpc1tWdF0uYmluZCh0aGlzKSxpc0dsb2JhbENvbnRleHQ6dGhpc1tHdF0uYmluZCh0aGlzKSxwb3N0UHJvY2Vzczp0aGlzW1J0XS5iaW5kKHRoaXMpLHJlc2V0OnRoaXNbS3RdLmJpbmQodGhpcykscnVuVmFsaWRhdGlvbjp0aGlzW1l0XS5iaW5kKHRoaXMpLHJ1bllhcmdzUGFyc2VyQW5kRXhlY3V0ZUNvbW1hbmRzOnRoaXNbQnRdLmJpbmQodGhpcyksc2V0SGFzT3V0cHV0OnRoaXNbSnRdLmJpbmQodGhpcyl9fVtIdF0oKXtyZXR1cm4gdih0aGlzLHosXCJmXCIpfVt6dF0oKXtyZXR1cm4gdih0aGlzLFcsXCJmXCIpfVtxdF0oKXtyZXR1cm4gdih0aGlzLEosXCJmXCIpfVtXdF0oKXtyZXR1cm4gdih0aGlzLFEsXCJmXCIpfVtGdF0oKXtyZXR1cm4gdih0aGlzLHJ0LFwiZlwiKXx8e319W1V0XSgpe3JldHVybiB2KHRoaXMscHQsXCJmXCIpfVtMdF0oKXtyZXR1cm4gdih0aGlzLG10LFwiZlwiKX1bVnRdKCl7cmV0dXJuISF2KHRoaXMsbnQsXCJmXCIpfVtHdF0oKXtyZXR1cm4gdih0aGlzLFgsXCJmXCIpfVtSdF0odCxlLHMsaSl7aWYocylyZXR1cm4gdDtpZihmKHQpKXJldHVybiB0O2V8fCh0PXRoaXNbeXRdKHQpKTtyZXR1cm4odGhpc1tqdF0oKVtcInBhcnNlLXBvc2l0aW9uYWwtbnVtYmVyc1wiXXx8dm9pZCAwPT09dGhpc1tqdF0oKVtcInBhcnNlLXBvc2l0aW9uYWwtbnVtYmVyc1wiXSkmJih0PXRoaXNba3RdKHQpKSxpJiYodD1DKHQsdGhpcyx2KHRoaXMsQixcImZcIikuZ2V0TWlkZGxld2FyZSgpLCExKSksdH1bS3RdKHQ9e30pe08odGhpcyxldCx2KHRoaXMsZXQsXCJmXCIpfHx7fSxcImZcIik7Y29uc3QgZT17fTtlLmxvY2FsPXYodGhpcyxldCxcImZcIikubG9jYWx8fFtdLGUuY29uZmlnT2JqZWN0cz12KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ09iamVjdHN8fFtdO2NvbnN0IHM9e307ZS5sb2NhbC5mb3JFYWNoKChlPT57c1tlXT0hMCwodFtlXXx8W10pLmZvckVhY2goKHQ9PntzW3RdPSEwfSkpfSkpLE9iamVjdC5hc3NpZ24odih0aGlzLGF0LFwiZlwiKSxPYmplY3Qua2V5cyh2KHRoaXMsWSxcImZcIikpLnJlZHVjZSgoKHQsZSk9Pntjb25zdCBpPXYodGhpcyxZLFwiZlwiKVtlXS5maWx0ZXIoKHQ9PiEodCBpbiBzKSkpO3JldHVybiBpLmxlbmd0aD4wJiYodFtlXT1pKSx0fSkse30pKSxPKHRoaXMsWSx7fSxcImZcIik7cmV0dXJuW1wiYXJyYXlcIixcImJvb2xlYW5cIixcInN0cmluZ1wiLFwic2tpcFZhbGlkYXRpb25cIixcImNvdW50XCIsXCJub3JtYWxpemVcIixcIm51bWJlclwiLFwiaGlkZGVuT3B0aW9uc1wiXS5mb3JFYWNoKCh0PT57ZVt0XT0odih0aGlzLGV0LFwiZlwiKVt0XXx8W10pLmZpbHRlcigodD0+IXNbdF0pKX0pKSxbXCJuYXJnXCIsXCJrZXlcIixcImFsaWFzXCIsXCJkZWZhdWx0XCIsXCJkZWZhdWx0RGVzY3JpcHRpb25cIixcImNvbmZpZ1wiLFwiY2hvaWNlc1wiLFwiZGVtYW5kZWRPcHRpb25zXCIsXCJkZW1hbmRlZENvbW1hbmRzXCIsXCJkZXByZWNhdGVkT3B0aW9uc1wiXS5mb3JFYWNoKCh0PT57ZVt0XT1nKHYodGhpcyxldCxcImZcIilbdF0sKHQ9PiFzW3RdKSl9KSksZS5lbnZQcmVmaXg9dih0aGlzLGV0LFwiZlwiKS5lbnZQcmVmaXgsTyh0aGlzLGV0LGUsXCJmXCIpLE8odGhpcyxwdCx2KHRoaXMscHQsXCJmXCIpP3YodGhpcyxwdCxcImZcIikucmVzZXQocyk6UCh0aGlzLHYodGhpcyxjdCxcImZcIikpLFwiZlwiKSxPKHRoaXMsbXQsdih0aGlzLG10LFwiZlwiKT92KHRoaXMsbXQsXCJmXCIpLnJlc2V0KHMpOmZ1bmN0aW9uKHQsZSxzKXtjb25zdCBpPXMueTE4bi5fXyxuPXMueTE4bi5fX24scj17bm9uT3B0aW9uQ291bnQ6ZnVuY3Rpb24ocyl7Y29uc3QgaT10LmdldERlbWFuZGVkQ29tbWFuZHMoKSxyPXMuXy5sZW5ndGgrKHNbXCItLVwiXT9zW1wiLS1cIl0ubGVuZ3RoOjApLXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0Q29udGV4dCgpLmNvbW1hbmRzLmxlbmd0aDtpLl8mJihyPGkuXy5taW58fHI+aS5fLm1heCkmJihyPGkuXy5taW4/dm9pZCAwIT09aS5fLm1pbk1zZz9lLmZhaWwoaS5fLm1pbk1zZz9pLl8ubWluTXNnLnJlcGxhY2UoL1xcJDAvZyxyLnRvU3RyaW5nKCkpLnJlcGxhY2UoL1xcJDEvLGkuXy5taW4udG9TdHJpbmcoKSk6bnVsbCk6ZS5mYWlsKG4oXCJOb3QgZW5vdWdoIG5vbi1vcHRpb24gYXJndW1lbnRzOiBnb3QgJXMsIG5lZWQgYXQgbGVhc3QgJXNcIixcIk5vdCBlbm91Z2ggbm9uLW9wdGlvbiBhcmd1bWVudHM6IGdvdCAlcywgbmVlZCBhdCBsZWFzdCAlc1wiLHIsci50b1N0cmluZygpLGkuXy5taW4udG9TdHJpbmcoKSkpOnI+aS5fLm1heCYmKHZvaWQgMCE9PWkuXy5tYXhNc2c/ZS5mYWlsKGkuXy5tYXhNc2c/aS5fLm1heE1zZy5yZXBsYWNlKC9cXCQwL2csci50b1N0cmluZygpKS5yZXBsYWNlKC9cXCQxLyxpLl8ubWF4LnRvU3RyaW5nKCkpOm51bGwpOmUuZmFpbChuKFwiVG9vIG1hbnkgbm9uLW9wdGlvbiBhcmd1bWVudHM6IGdvdCAlcywgbWF4aW11bSBvZiAlc1wiLFwiVG9vIG1hbnkgbm9uLW9wdGlvbiBhcmd1bWVudHM6IGdvdCAlcywgbWF4aW11bSBvZiAlc1wiLHIsci50b1N0cmluZygpLGkuXy5tYXgudG9TdHJpbmcoKSkpKSl9LHBvc2l0aW9uYWxDb3VudDpmdW5jdGlvbih0LHMpe3M8dCYmZS5mYWlsKG4oXCJOb3QgZW5vdWdoIG5vbi1vcHRpb24gYXJndW1lbnRzOiBnb3QgJXMsIG5lZWQgYXQgbGVhc3QgJXNcIixcIk5vdCBlbm91Z2ggbm9uLW9wdGlvbiBhcmd1bWVudHM6IGdvdCAlcywgbmVlZCBhdCBsZWFzdCAlc1wiLHMscytcIlwiLHQrXCJcIikpfSxyZXF1aXJlZEFyZ3VtZW50czpmdW5jdGlvbih0LHMpe2xldCBpPW51bGw7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmtleXMocykpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJnZvaWQgMCE9PXRbZV18fChpPWl8fHt9LGlbZV09c1tlXSk7aWYoaSl7Y29uc3QgdD1bXTtmb3IoY29uc3QgZSBvZiBPYmplY3Qua2V5cyhpKSl7Y29uc3Qgcz1pW2VdO3MmJnQuaW5kZXhPZihzKTwwJiZ0LnB1c2gocyl9Y29uc3Qgcz10Lmxlbmd0aD9gXFxuJHt0LmpvaW4oXCJcXG5cIil9YDpcIlwiO2UuZmFpbChuKFwiTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudDogJXNcIixcIk1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnRzOiAlc1wiLE9iamVjdC5rZXlzKGkpLmxlbmd0aCxPYmplY3Qua2V5cyhpKS5qb2luKFwiLCBcIikrcykpfX0sdW5rbm93bkFyZ3VtZW50czpmdW5jdGlvbihzLGksbyxhLGg9ITApe3ZhciBsO2NvbnN0IGM9dC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRDb21tYW5kSW5zdGFuY2UoKS5nZXRDb21tYW5kcygpLGY9W10sZD10LmdldEludGVybmFsTWV0aG9kcygpLmdldENvbnRleHQoKTtpZihPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChlPT57SC5pbmNsdWRlcyhlKXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sZSl8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LmdldEludGVybmFsTWV0aG9kcygpLmdldFBhcnNlQ29udGV4dCgpLGUpfHxyLmlzVmFsaWRBbmRTb21lQWxpYXNJc05vdE5ldyhlLGkpfHxmLnB1c2goZSl9KSksaCYmKGQuY29tbWFuZHMubGVuZ3RoPjB8fGMubGVuZ3RoPjB8fGEpJiZzLl8uc2xpY2UoZC5jb21tYW5kcy5sZW5ndGgpLmZvckVhY2goKHQ9PntjLmluY2x1ZGVzKFwiXCIrdCl8fGYucHVzaChcIlwiK3QpfSkpLGgpe2NvbnN0IGU9KG51bGw9PT0obD10LmdldERlbWFuZGVkQ29tbWFuZHMoKS5fKXx8dm9pZCAwPT09bD92b2lkIDA6bC5tYXgpfHwwLGk9ZC5jb21tYW5kcy5sZW5ndGgrZTtpPHMuXy5sZW5ndGgmJnMuXy5zbGljZShpKS5mb3JFYWNoKCh0PT57dD1TdHJpbmcodCksZC5jb21tYW5kcy5pbmNsdWRlcyh0KXx8Zi5pbmNsdWRlcyh0KXx8Zi5wdXNoKHQpfSkpfWYubGVuZ3RoJiZlLmZhaWwobihcIlVua25vd24gYXJndW1lbnQ6ICVzXCIsXCJVbmtub3duIGFyZ3VtZW50czogJXNcIixmLmxlbmd0aCxmLm1hcCgodD0+dC50cmltKCk/dDpgXCIke3R9XCJgKSkuam9pbihcIiwgXCIpKSl9LHVua25vd25Db21tYW5kczpmdW5jdGlvbihzKXtjb25zdCBpPXQuZ2V0SW50ZXJuYWxNZXRob2RzKCkuZ2V0Q29tbWFuZEluc3RhbmNlKCkuZ2V0Q29tbWFuZHMoKSxyPVtdLG89dC5nZXRJbnRlcm5hbE1ldGhvZHMoKS5nZXRDb250ZXh0KCk7cmV0dXJuKG8uY29tbWFuZHMubGVuZ3RoPjB8fGkubGVuZ3RoPjApJiZzLl8uc2xpY2Uoby5jb21tYW5kcy5sZW5ndGgpLmZvckVhY2goKHQ9PntpLmluY2x1ZGVzKFwiXCIrdCl8fHIucHVzaChcIlwiK3QpfSkpLHIubGVuZ3RoPjAmJihlLmZhaWwobihcIlVua25vd24gY29tbWFuZDogJXNcIixcIlVua25vd24gY29tbWFuZHM6ICVzXCIsci5sZW5ndGgsci5qb2luKFwiLCBcIikpKSwhMCl9LGlzVmFsaWRBbmRTb21lQWxpYXNJc05vdE5ldzpmdW5jdGlvbihlLHMpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocyxlKSlyZXR1cm4hMTtjb25zdCBpPXQucGFyc2VkLm5ld0FsaWFzZXM7cmV0dXJuW2UsLi4uc1tlXV0uc29tZSgodD0+IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpLHQpfHwhaVtlXSkpfSxsaW1pdGVkQ2hvaWNlczpmdW5jdGlvbihzKXtjb25zdCBuPXQuZ2V0T3B0aW9ucygpLHI9e307aWYoIU9iamVjdC5rZXlzKG4uY2hvaWNlcykubGVuZ3RoKXJldHVybjtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKCh0PT57LTE9PT1ILmluZGV4T2YodCkmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLmNob2ljZXMsdCkmJltdLmNvbmNhdChzW3RdKS5mb3JFYWNoKChlPT57LTE9PT1uLmNob2ljZXNbdF0uaW5kZXhPZihlKSYmdm9pZCAwIT09ZSYmKHJbdF09KHJbdF18fFtdKS5jb25jYXQoZSkpfSkpfSkpO2NvbnN0IG89T2JqZWN0LmtleXMocik7aWYoIW8ubGVuZ3RoKXJldHVybjtsZXQgYT1pKFwiSW52YWxpZCB2YWx1ZXM6XCIpO28uZm9yRWFjaCgodD0+e2ErPWBcXG4gICR7aShcIkFyZ3VtZW50OiAlcywgR2l2ZW46ICVzLCBDaG9pY2VzOiAlc1wiLHQsZS5zdHJpbmdpZmllZFZhbHVlcyhyW3RdKSxlLnN0cmluZ2lmaWVkVmFsdWVzKG4uY2hvaWNlc1t0XSkpfWB9KSksZS5mYWlsKGEpfX07bGV0IG89e307ZnVuY3Rpb24gYSh0LGUpe2NvbnN0IHM9TnVtYmVyKGUpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZihlPWlzTmFOKHMpP2U6cyk/ZT10Ll8ubGVuZ3RoPj1lOmUubWF0Y2goL14tLW5vLS4rLyk/KGU9ZS5tYXRjaCgvXi0tbm8tKC4rKS8pWzFdLGU9IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpKTplPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpLGV9ci5pbXBsaWVzPWZ1bmN0aW9uKGUsaSl7aChcIjxzdHJpbmd8b2JqZWN0PiBbYXJyYXl8bnVtYmVyfHN0cmluZ11cIixbZSxpXSxhcmd1bWVudHMubGVuZ3RoKSxcIm9iamVjdFwiPT10eXBlb2YgZT9PYmplY3Qua2V5cyhlKS5mb3JFYWNoKCh0PT57ci5pbXBsaWVzKHQsZVt0XSl9KSk6KHQuZ2xvYmFsKGUpLG9bZV18fChvW2VdPVtdKSxBcnJheS5pc0FycmF5KGkpP2kuZm9yRWFjaCgodD0+ci5pbXBsaWVzKGUsdCkpKTooZChpLHZvaWQgMCxzKSxvW2VdLnB1c2goaSkpKX0sci5nZXRJbXBsaWVkPWZ1bmN0aW9uKCl7cmV0dXJuIG99LHIuaW1wbGljYXRpb25zPWZ1bmN0aW9uKHQpe2NvbnN0IHM9W107aWYoT2JqZWN0LmtleXMobykuZm9yRWFjaCgoZT0+e2NvbnN0IGk9ZTsob1tlXXx8W10pLmZvckVhY2goKGU9PntsZXQgbj1pO2NvbnN0IHI9ZTtuPWEodCxuKSxlPWEodCxlKSxuJiYhZSYmcy5wdXNoKGAgJHtpfSAtPiAke3J9YCl9KSl9KSkscy5sZW5ndGgpe2xldCB0PWAke2koXCJJbXBsaWNhdGlvbnMgZmFpbGVkOlwiKX1cXG5gO3MuZm9yRWFjaCgoZT0+e3QrPWV9KSksZS5mYWlsKHQpfX07bGV0IGw9e307ci5jb25mbGljdHM9ZnVuY3Rpb24oZSxzKXtoKFwiPHN0cmluZ3xvYmplY3Q+IFthcnJheXxzdHJpbmddXCIsW2Usc10sYXJndW1lbnRzLmxlbmd0aCksXCJvYmplY3RcIj09dHlwZW9mIGU/T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgodD0+e3IuY29uZmxpY3RzKHQsZVt0XSl9KSk6KHQuZ2xvYmFsKGUpLGxbZV18fChsW2VdPVtdKSxBcnJheS5pc0FycmF5KHMpP3MuZm9yRWFjaCgodD0+ci5jb25mbGljdHMoZSx0KSkpOmxbZV0ucHVzaChzKSl9LHIuZ2V0Q29uZmxpY3Rpbmc9KCk9Pmwsci5jb25mbGljdGluZz1mdW5jdGlvbihuKXtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKCh0PT57bFt0XSYmbFt0XS5mb3JFYWNoKChzPT57cyYmdm9pZCAwIT09blt0XSYmdm9pZCAwIT09bltzXSYmZS5mYWlsKGkoXCJBcmd1bWVudHMgJXMgYW5kICVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmVcIix0LHMpKX0pKX0pKSx0LmdldEludGVybmFsTWV0aG9kcygpLmdldFBhcnNlckNvbmZpZ3VyYXRpb24oKVtcInN0cmlwLWRhc2hlZFwiXSYmT2JqZWN0LmtleXMobCkuZm9yRWFjaCgodD0+e2xbdF0uZm9yRWFjaCgocj0+e3ImJnZvaWQgMCE9PW5bcy5QYXJzZXIuY2FtZWxDYXNlKHQpXSYmdm9pZCAwIT09bltzLlBhcnNlci5jYW1lbENhc2UocildJiZlLmZhaWwoaShcIkFyZ3VtZW50cyAlcyBhbmQgJXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVwiLHQscikpfSkpfSkpfSxyLnJlY29tbWVuZENvbW1hbmRzPWZ1bmN0aW9uKHQscyl7cz1zLnNvcnQoKCh0LGUpPT5lLmxlbmd0aC10Lmxlbmd0aCkpO2xldCBuPW51bGwscj0xLzA7Zm9yKGxldCBlLGk9MDt2b2lkIDAhPT0oZT1zW2ldKTtpKyspe2NvbnN0IHM9Tih0LGUpO3M8PTMmJnM8ciYmKHI9cyxuPWUpfW4mJmUuZmFpbChpKFwiRGlkIHlvdSBtZWFuICVzP1wiLG4pKX0sci5yZXNldD1mdW5jdGlvbih0KXtyZXR1cm4gbz1nKG8sKGU9PiF0W2VdKSksbD1nKGwsKGU9PiF0W2VdKSkscn07Y29uc3QgYz1bXTtyZXR1cm4gci5mcmVlemU9ZnVuY3Rpb24oKXtjLnB1c2goe2ltcGxpZWQ6byxjb25mbGljdGluZzpsfSl9LHIudW5mcmVlemU9ZnVuY3Rpb24oKXtjb25zdCB0PWMucG9wKCk7ZCh0LHZvaWQgMCxzKSwoe2ltcGxpZWQ6byxjb25mbGljdGluZzpsfT10KX0scn0odGhpcyx2KHRoaXMscHQsXCJmXCIpLHYodGhpcyxjdCxcImZcIikpLFwiZlwiKSxPKHRoaXMseix2KHRoaXMseixcImZcIik/dih0aGlzLHosXCJmXCIpLnJlc2V0KCk6ZnVuY3Rpb24odCxlLHMsaSl7cmV0dXJuIG5ldyBNKHQsZSxzLGkpfSh2KHRoaXMscHQsXCJmXCIpLHYodGhpcyxtdCxcImZcIiksdih0aGlzLEIsXCJmXCIpLHYodGhpcyxjdCxcImZcIikpLFwiZlwiKSx2KHRoaXMsRixcImZcIil8fE8odGhpcyxGLGZ1bmN0aW9uKHQsZSxzLGkpe3JldHVybiBuZXcgRCh0LGUscyxpKX0odGhpcyx2KHRoaXMscHQsXCJmXCIpLHYodGhpcyx6LFwiZlwiKSx2KHRoaXMsY3QsXCJmXCIpKSxcImZcIiksdih0aGlzLEIsXCJmXCIpLnJlc2V0KCksTyh0aGlzLFUsbnVsbCxcImZcIiksTyh0aGlzLHR0LFwiXCIsXCJmXCIpLE8odGhpcyxWLG51bGwsXCJmXCIpLE8odGhpcyxKLCExLFwiZlwiKSx0aGlzLnBhcnNlZD0hMSx0aGlzfVtUdF0odCxlKXtyZXR1cm4gdih0aGlzLGN0LFwiZlwiKS5wYXRoLnJlbGF0aXZlKHQsZSl9W0J0XSh0LHMsaSxuPTAscj0hMSl7bGV0IG89ISFpfHxyO3Q9dHx8dih0aGlzLGh0LFwiZlwiKSx2KHRoaXMsZXQsXCJmXCIpLl9fPXYodGhpcyxjdCxcImZcIikueTE4bi5fXyx2KHRoaXMsZXQsXCJmXCIpLmNvbmZpZ3VyYXRpb249dGhpc1tqdF0oKTtjb25zdCBhPSEhdih0aGlzLGV0LFwiZlwiKS5jb25maWd1cmF0aW9uW1wicG9wdWxhdGUtLVwiXSxoPU9iamVjdC5hc3NpZ24oe30sdih0aGlzLGV0LFwiZlwiKS5jb25maWd1cmF0aW9uLHtcInBvcHVsYXRlLS1cIjohMH0pLGw9dih0aGlzLGN0LFwiZlwiKS5QYXJzZXIuZGV0YWlsZWQodCxPYmplY3QuYXNzaWduKHt9LHYodGhpcyxldCxcImZcIikse2NvbmZpZ3VyYXRpb246e1wicGFyc2UtcG9zaXRpb25hbC1udW1iZXJzXCI6ITEsLi4uaH19KSksYz1PYmplY3QuYXNzaWduKGwuYXJndix2KHRoaXMscnQsXCJmXCIpKTtsZXQgZDtjb25zdCB1PWwuYWxpYXNlcztsZXQgcD0hMSxnPSExO09iamVjdC5rZXlzKGMpLmZvckVhY2goKHQ9Pnt0PT09dih0aGlzLFosXCJmXCIpJiZjW3RdP3A9ITA6dD09PXYodGhpcyxndCxcImZcIikmJmNbdF0mJihnPSEwKX0pKSxjLiQwPXRoaXMuJDAsdGhpcy5wYXJzZWQ9bCwwPT09biYmdih0aGlzLHB0LFwiZlwiKS5jbGVhckNhY2hlZEhlbHBNZXNzYWdlKCk7dHJ5e2lmKHRoaXNbX3RdKCkscylyZXR1cm4gdGhpc1tSdF0oYyxhLCEhaSwhMSk7aWYodih0aGlzLFosXCJmXCIpKXtbdih0aGlzLFosXCJmXCIpXS5jb25jYXQodVt2KHRoaXMsWixcImZcIildfHxbXSkuZmlsdGVyKCh0PT50Lmxlbmd0aD4xKSkuaW5jbHVkZXMoXCJcIitjLl9bYy5fLmxlbmd0aC0xXSkmJihjLl8ucG9wKCkscD0hMCl9Tyh0aGlzLFgsITEsXCJmXCIpO2NvbnN0IGg9dih0aGlzLHosXCJmXCIpLmdldENvbW1hbmRzKCksbT12KHRoaXMsRixcImZcIikuY29tcGxldGlvbktleSBpbiBjLHk9cHx8bXx8cjtpZihjLl8ubGVuZ3RoKXtpZihoLmxlbmd0aCl7bGV0IHQ7Zm9yKGxldCBlLHM9bnx8MDt2b2lkIDAhPT1jLl9bc107cysrKXtpZihlPVN0cmluZyhjLl9bc10pLGguaW5jbHVkZXMoZSkmJmUhPT12KHRoaXMsVSxcImZcIikpe2NvbnN0IHQ9dih0aGlzLHosXCJmXCIpLnJ1bkNvbW1hbmQoZSx0aGlzLGwscysxLHIscHx8Z3x8cik7cmV0dXJuIHRoaXNbUnRdKHQsYSwhIWksITEpfWlmKCF0JiZlIT09dih0aGlzLFUsXCJmXCIpKXt0PWU7YnJlYWt9fSF2KHRoaXMseixcImZcIikuaGFzRGVmYXVsdENvbW1hbmQoKSYmdih0aGlzLGx0LFwiZlwiKSYmdCYmIXkmJnYodGhpcyxtdCxcImZcIikucmVjb21tZW5kQ29tbWFuZHModCxoKX12KHRoaXMsVSxcImZcIikmJmMuXy5pbmNsdWRlcyh2KHRoaXMsVSxcImZcIikpJiYhbSYmKHYodGhpcyxULFwiZlwiKSYmRSghMCksdGhpcy5zaG93Q29tcGxldGlvblNjcmlwdCgpLHRoaXMuZXhpdCgwKSl9aWYodih0aGlzLHosXCJmXCIpLmhhc0RlZmF1bHRDb21tYW5kKCkmJiF5KXtjb25zdCB0PXYodGhpcyx6LFwiZlwiKS5ydW5Db21tYW5kKG51bGwsdGhpcyxsLDAscixwfHxnfHxyKTtyZXR1cm4gdGhpc1tSdF0odCxhLCEhaSwhMSl9aWYobSl7dih0aGlzLFQsXCJmXCIpJiZFKCEwKTtjb25zdCBzPSh0PVtdLmNvbmNhdCh0KSkuc2xpY2UodC5pbmRleE9mKGAtLSR7dih0aGlzLEYsXCJmXCIpLmNvbXBsZXRpb25LZXl9YCkrMSk7cmV0dXJuIHYodGhpcyxGLFwiZlwiKS5nZXRDb21wbGV0aW9uKHMsKCh0LHMpPT57aWYodCl0aHJvdyBuZXcgZSh0Lm1lc3NhZ2UpOyhzfHxbXSkuZm9yRWFjaCgodD0+e3YodGhpcyxRLFwiZlwiKS5sb2codCl9KSksdGhpcy5leGl0KDApfSkpLHRoaXNbUnRdKGMsIWEsISFpLCExKX1pZih2KHRoaXMsSixcImZcIil8fChwPyh2KHRoaXMsVCxcImZcIikmJkUoITApLG89ITAsdGhpcy5zaG93SGVscChcImxvZ1wiKSx0aGlzLmV4aXQoMCkpOmcmJih2KHRoaXMsVCxcImZcIikmJkUoITApLG89ITAsdih0aGlzLHB0LFwiZlwiKS5zaG93VmVyc2lvbihcImxvZ1wiKSx0aGlzLmV4aXQoMCkpKSwhbyYmdih0aGlzLGV0LFwiZlwiKS5za2lwVmFsaWRhdGlvbi5sZW5ndGg+MCYmKG89T2JqZWN0LmtleXMoYykuc29tZSgodD0+dih0aGlzLGV0LFwiZlwiKS5za2lwVmFsaWRhdGlvbi5pbmRleE9mKHQpPj0wJiYhMD09PWNbdF0pKSksIW8pe2lmKGwuZXJyb3IpdGhyb3cgbmV3IGUobC5lcnJvci5tZXNzYWdlKTtpZighbSl7Y29uc3QgdD10aGlzW1l0XSh1LHt9LGwuZXJyb3IpO2l8fChkPUMoYyx0aGlzLHYodGhpcyxCLFwiZlwiKS5nZXRNaWRkbGV3YXJlKCksITApKSxkPXRoaXNbTnRdKHQsbnVsbCE9ZD9kOmMpLGYoZCkmJiFpJiYoZD1kLnRoZW4oKCgpPT5DKGMsdGhpcyx2KHRoaXMsQixcImZcIikuZ2V0TWlkZGxld2FyZSgpLCExKSkpKX19fWNhdGNoKHQpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IHQ7dih0aGlzLHB0LFwiZlwiKS5mYWlsKHQubWVzc2FnZSx0KX1yZXR1cm4gdGhpc1tSdF0obnVsbCE9ZD9kOmMsYSwhIWksITApfVtZdF0odCxzLGksbil7Y29uc3Qgcj17Li4udGhpcy5nZXREZW1hbmRlZE9wdGlvbnMoKX07cmV0dXJuIG89PntpZihpKXRocm93IG5ldyBlKGkubWVzc2FnZSk7dih0aGlzLG10LFwiZlwiKS5ub25PcHRpb25Db3VudChvKSx2KHRoaXMsbXQsXCJmXCIpLnJlcXVpcmVkQXJndW1lbnRzKG8scik7bGV0IGE9ITE7dih0aGlzLGR0LFwiZlwiKSYmKGE9dih0aGlzLG10LFwiZlwiKS51bmtub3duQ29tbWFuZHMobykpLHYodGhpcyxmdCxcImZcIikmJiFhP3YodGhpcyxtdCxcImZcIikudW5rbm93bkFyZ3VtZW50cyhvLHQscywhIW4pOnYodGhpcyx1dCxcImZcIikmJnYodGhpcyxtdCxcImZcIikudW5rbm93bkFyZ3VtZW50cyhvLHQse30sITEsITEpLHYodGhpcyxtdCxcImZcIikubGltaXRlZENob2ljZXMobyksdih0aGlzLG10LFwiZlwiKS5pbXBsaWNhdGlvbnMobyksdih0aGlzLG10LFwiZlwiKS5jb25mbGljdGluZyhvKX19W0p0XSgpe08odGhpcyxKLCEwLFwiZlwiKX1bWnRdKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXYodGhpcyxldCxcImZcIikua2V5W3RdPSEwO2Vsc2UgZm9yKGNvbnN0IGUgb2YgdCl2KHRoaXMsZXQsXCJmXCIpLmtleVtlXT0hMH19dmFyIFF0LHRlO2NvbnN0e3JlYWRGaWxlU3luYzplZX09cmVxdWlyZShcImZzXCIpLHtpbnNwZWN0OnNlfT1yZXF1aXJlKFwidXRpbFwiKSx7cmVzb2x2ZTppZX09cmVxdWlyZShcInBhdGhcIiksbmU9cmVxdWlyZShcInkxOG5cIikscmU9cmVxdWlyZShcInlhcmdzLXBhcnNlclwiKTt2YXIgb2UsYWU9e2Fzc2VydDp7bm90U3RyaWN0RXF1YWw6dC5ub3RTdHJpY3RFcXVhbCxzdHJpY3RFcXVhbDp0LnN0cmljdEVxdWFsfSxjbGl1aTpyZXF1aXJlKFwiY2xpdWlcIiksZmluZFVwOnJlcXVpcmUoXCJlc2NhbGFkZS9zeW5jXCIpLGdldEVudjp0PT5wcm9jZXNzLmVudlt0XSxnZXRDYWxsZXJGaWxlOnJlcXVpcmUoXCJnZXQtY2FsbGVyLWZpbGVcIiksZ2V0UHJvY2Vzc0FyZ3ZCaW46eSxpbnNwZWN0OnNlLG1haW5GaWxlbmFtZTpudWxsIT09KHRlPW51bGw9PT0oUXQ9bnVsbD09PXJlcXVpcmV8fHZvaWQgMD09PXJlcXVpcmU/dm9pZCAwOnJlcXVpcmUubWFpbil8fHZvaWQgMD09PVF0P3ZvaWQgMDpRdC5maWxlbmFtZSkmJnZvaWQgMCE9PXRlP3RlOnByb2Nlc3MuY3dkKCksUGFyc2VyOnJlLHBhdGg6cmVxdWlyZShcInBhdGhcIikscHJvY2Vzczp7YXJndjooKT0+cHJvY2Vzcy5hcmd2LGN3ZDpwcm9jZXNzLmN3ZCxlbWl0V2FybmluZzoodCxlKT0+cHJvY2Vzcy5lbWl0V2FybmluZyh0LGUpLGV4ZWNQYXRoOigpPT5wcm9jZXNzLmV4ZWNQYXRoLGV4aXQ6dD0+e3Byb2Nlc3MuZXhpdCh0KX0sbmV4dFRpY2s6cHJvY2Vzcy5uZXh0VGljayxzdGRDb2x1bW5zOnZvaWQgMCE9PXByb2Nlc3Muc3Rkb3V0LmNvbHVtbnM/cHJvY2Vzcy5zdGRvdXQuY29sdW1uczpudWxsfSxyZWFkRmlsZVN5bmM6ZWUscmVxdWlyZTpyZXF1aXJlLHJlcXVpcmVEaXJlY3Rvcnk6cmVxdWlyZShcInJlcXVpcmUtZGlyZWN0b3J5XCIpLHN0cmluZ1dpZHRoOnJlcXVpcmUoXCJzdHJpbmctd2lkdGhcIikseTE4bjpuZSh7ZGlyZWN0b3J5OmllKF9fZGlybmFtZSxcIi4uL2xvY2FsZXNcIiksdXBkYXRlRmlsZXM6ITF9KX07Y29uc3QgaGU9KG51bGw9PT0ob2U9bnVsbD09PXByb2Nlc3N8fHZvaWQgMD09PXByb2Nlc3M/dm9pZCAwOnByb2Nlc3MuZW52KXx8dm9pZCAwPT09b2U/dm9pZCAwOm9lLllBUkdTX01JTl9OT0RFX1ZFUlNJT04pP051bWJlcihwcm9jZXNzLmVudi5ZQVJHU19NSU5fTk9ERV9WRVJTSU9OKToxMjtpZihwcm9jZXNzJiZwcm9jZXNzLnZlcnNpb24pe2lmKE51bWJlcihwcm9jZXNzLnZlcnNpb24ubWF0Y2goL3YoW14uXSspLylbMV0pPGhlKXRocm93IEVycm9yKGB5YXJncyBzdXBwb3J0cyBhIG1pbmltdW0gTm9kZS5qcyB2ZXJzaW9uIG9mICR7aGV9LiBSZWFkIG91ciB2ZXJzaW9uIHN1cHBvcnQgcG9saWN5OiBodHRwczovL2dpdGh1Yi5jb20veWFyZ3MveWFyZ3Mjc3VwcG9ydGVkLW5vZGVqcy12ZXJzaW9uc2ApfWNvbnN0IGxlPXJlcXVpcmUoXCJ5YXJncy1wYXJzZXJcIik7dmFyIGNlLGZlPXthcHBseUV4dGVuZHM6bixjanNQbGF0Zm9ybVNoaW06YWUsWWFyZ3M6KGNlPWFlLCh0PVtdLGU9Y2UucHJvY2Vzcy5jd2QoKSxzKT0+e2NvbnN0IGk9bmV3IFh0KHQsZSxzLGNlKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGksXCJhcmd2XCIse2dldDooKT0+aS5wYXJzZSgpLGVudW1lcmFibGU6ITB9KSxpLmhlbHAoKSxpLnZlcnNpb24oKSxpfSksYXJnc2VydDpoLGlzUHJvbWlzZTpmLG9iakZpbHRlcjpnLHBhcnNlQ29tbWFuZDpvLFBhcnNlcjpsZSxwcm9jZXNzQXJndjpiLFlFcnJvcjplfTttb2R1bGUuZXhwb3J0cz1mZTtcbiIsICIndXNlIHN0cmljdCc7XG4vLyBjbGFzc2ljIHNpbmdsZXRvbiB5YXJncyBBUEksIHRvIHVzZSB5YXJnc1xuLy8gd2l0aG91dCBydW5uaW5nIGFzIGEgc2luZ2xldG9uIGRvOlxuLy8gcmVxdWlyZSgneWFyZ3MveWFyZ3MnKShwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpXG5jb25zdCB7WWFyZ3MsIHByb2Nlc3NBcmd2fSA9IHJlcXVpcmUoJy4vYnVpbGQvaW5kZXguY2pzJyk7XG5cbkFyZ3YocHJvY2Vzc0FyZ3YuaGlkZUJpbihwcm9jZXNzLmFyZ3YpKTtcblxubW9kdWxlLmV4cG9ydHMgPSBBcmd2O1xuXG5mdW5jdGlvbiBBcmd2KHByb2Nlc3NBcmdzLCBjd2QpIHtcbiAgY29uc3QgYXJndiA9IFlhcmdzKHByb2Nlc3NBcmdzLCBjd2QsIHJlcXVpcmUpO1xuICBzaW5nbGV0b25pZnkoYXJndik7XG4gIC8vIFRPRE8oYmNvZSk6IHdhcm4gaWYgYXJndi5wYXJzZSgpIG9yIGFyZ3YuYXJndiBpcyB1c2VkIGRpcmVjdGx5LlxuICByZXR1cm4gYXJndjtcbn1cblxuZnVuY3Rpb24gZGVmaW5lR2V0dGVyKG9iaiwga2V5LCBnZXR0ZXIpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBnZXR0ZXIsXG4gIH0pO1xufVxuZnVuY3Rpb24gbG9va3VwR2V0dGVyKG9iaiwga2V5KSB7XG4gIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KTtcbiAgaWYgKHR5cGVvZiBkZXNjICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBkZXNjLmdldDtcbiAgfVxufVxuXG4vKiAgSGFjayBhbiBpbnN0YW5jZSBvZiBBcmd2IHdpdGggcHJvY2Vzcy5hcmd2IGludG8gQXJndlxuICAgIHNvIHBlb3BsZSBjYW4gZG9cbiAgICByZXF1aXJlKCd5YXJncycpKFsnLS1iZWVibGU9MScsJy16Jywneml6emxlJ10pLmFyZ3ZcbiAgICB0byBwYXJzZSBhIGxpc3Qgb2YgYXJncyBhbmRcbiAgICByZXF1aXJlKCd5YXJncycpLmFyZ3ZcbiAgICB0byBnZXQgYSBwYXJzZWQgdmVyc2lvbiBvZiBwcm9jZXNzLmFyZ3YuXG4qL1xuZnVuY3Rpb24gc2luZ2xldG9uaWZ5KGluc3QpIHtcbiAgW1xuICAgIC4uLk9iamVjdC5rZXlzKGluc3QpLFxuICAgIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGluc3QuY29uc3RydWN0b3IucHJvdG90eXBlKSxcbiAgXS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKGtleSA9PT0gJ2FyZ3YnKSB7XG4gICAgICBkZWZpbmVHZXR0ZXIoQXJndiwga2V5LCBsb29rdXBHZXR0ZXIoaW5zdCwga2V5KSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdFtrZXldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBBcmd2W2tleV0gPSBpbnN0W2tleV0uYmluZChpbnN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVmaW5lR2V0dGVyKEFyZ3YsICckMCcsICgpID0+IGluc3QuJDApO1xuICAgICAgZGVmaW5lR2V0dGVyKEFyZ3YsICdwYXJzZWQnLCAoKSA9PiBpbnN0LnBhcnNlZCk7XG4gICAgfVxuICB9KTtcbn1cbiIsICIvKlxuICogYXJndi5qczogU2ltcGxlIG1lbW9yeS1iYXNlZCBzdG9yZSBmb3IgY29tbWFuZC1saW5lIGFyZ3VtZW50cy5cbiAqXG4gKiAoQykgMjAxMSwgQ2hhcmxpZSBSb2JiaW5zIGFuZCB0aGUgQ29udHJpYnV0b3JzLlxuICpcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKSxcbiAgICBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKSxcbiAgICBNZW1vcnkgPSByZXF1aXJlKCcuL21lbW9yeScpLk1lbW9yeTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBBcmd2IChvcHRpb25zKVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuLy8gQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBBcmd2IG5jb25mIHN0b3JlLCBhIHNpbXBsZSBhYnN0cmFjdGlvblxuLy8gYXJvdW5kIHRoZSBNZW1vcnkgc3RvcmUgdGhhdCBjYW4gcmVhZCBjb21tYW5kLWxpbmUgYXJndW1lbnRzLlxuLy9cbnZhciBBcmd2ID0gZXhwb3J0cy5Bcmd2ID0gZnVuY3Rpb24gKG9wdGlvbnMsIHVzYWdlKSB7XG4gIE1lbW9yeS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIG9wdGlvbnMgICAgICAgID0gb3B0aW9ucyB8fCB7fTtcbiAgdGhpcy50eXBlICAgICA9ICdhcmd2JztcbiAgdGhpcy5yZWFkT25seSAgPSBvcHRpb25zLnJlYWRPbmx5ICE9PSB1bmRlZmluZWQ/IG9wdGlvbnMucmVhZE9ubHkgOiB0cnVlO1xuICB0aGlzLm9wdGlvbnMgID0gb3B0aW9ucztcbiAgdGhpcy51c2FnZSAgICA9IHVzYWdlO1xuXG4gIGlmKHR5cGVvZiBvcHRpb25zLnJlYWRPbmx5ID09PSAnYm9vbGVhbicpIHtcbiAgICB0aGlzLnJlYWRPbmx5ICA9IG9wdGlvbnMucmVhZE9ubHk7XG4gICAgZGVsZXRlIG9wdGlvbnMucmVhZE9ubHk7XG4gICAgLy8gRklYTUU7IHNob3VsZCBub3QgbXV0YXRlIG9wdGlvbnMhISEhXG4gIH0gZWxzZSB7XG4gICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbnMudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKVx1MDBBMHtcbiAgICAgIHRoaXMudHJhbnNmb3JtID0gb3B0aW9ucy50cmFuc2Zvcm07XG4gICAgICBkZWxldGUgb3B0aW9ucy50cmFuc2Zvcm07XG4gIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybSA9IGZhbHNlO1xuICB9XG59O1xuXG4vLyBJbmhlcml0IGZyb20gdGhlIE1lbW9yeSBzdG9yZVxudXRpbC5pbmhlcml0cyhBcmd2LCBNZW1vcnkpO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWRTeW5jICgpXG4vLyBMb2FkcyB0aGUgZGF0YSBwYXNzZWQgaW4gZnJvbSBgcHJvY2Vzcy5hcmd2YCBpbnRvIHRoaXMgaW5zdGFuY2UuXG4vL1xuQXJndi5wcm90b3R5cGUubG9hZFN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubG9hZEFyZ3YoKTtcbiAgcmV0dXJuIHRoaXMuc3RvcmU7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWRBcmd2ICgpXG4vLyBMb2FkcyB0aGUgZGF0YSBwYXNzZWQgaW4gZnJvbSB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuLy8gaW50byB0aGlzIGluc3RhbmNlLlxuLy9cbkFyZ3YucHJvdG90eXBlLmxvYWRBcmd2ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICB5YXJncywgYXJndjtcblxuICB5YXJncyA9IGlzWWFyZ3ModGhpcy5vcHRpb25zKSA/XG4gICAgdGhpcy5vcHRpb25zIDpcbiAgICB0eXBlb2YgdGhpcy5vcHRpb25zID09PSAnb2JqZWN0JyA/XG4gICAgICByZXF1aXJlKCd5YXJncycpKHByb2Nlc3MuYXJndi5zbGljZSgyKSkub3B0aW9ucyh0aGlzLm9wdGlvbnMpIDpcbiAgICAgIHJlcXVpcmUoJ3lhcmdzJykocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKTtcblxuICBpZiAodHlwZW9mIHRoaXMudXNhZ2UgPT09ICdzdHJpbmcnKSB7IHlhcmdzLnVzYWdlKHRoaXMudXNhZ2UpIH1cblxuICBhcmd2ID0geWFyZ3MuYXJndlxuXG4gIGlmICghYXJndikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh0aGlzLnRyYW5zZm9ybSkge1xuICAgIGFyZ3YgPSBjb21tb24udHJhbnNmb3JtKGFyZ3YsIHRoaXMudHJhbnNmb3JtKTtcbiAgfVxuXG4gIHZhciB0ZW1wV3JpdGUgPSBmYWxzZTtcblxuICBpZih0aGlzLnJlYWRPbmx5KSB7XG4gICAgdGhpcy5yZWFkT25seSA9IGZhbHNlO1xuICAgIHRlbXBXcml0ZSA9IHRydWU7XG4gIH1cblxuICBPYmplY3Qua2V5cyhhcmd2KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgdmFsID0gYXJndltrZXldO1xuXG4gICAgaWYgKHR5cGVvZiB2YWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAoc2VsZi5wYXJzZVZhbHVlcykge1xuICAgICAgICB2YWwgPSBjb21tb24ucGFyc2VWYWx1ZXModmFsKTtcbiAgICAgIH1cblxuICAgICAgc2VsZi5zZXQoa2V5LCB2YWwpO1xuICAgIH1cbiAgfSk7XG5cbiAgdGhpcy5zaG93SGVscCA9IHlhcmdzLnNob3dIZWxwXG4gIHRoaXMuaGVscCAgICAgPSB5YXJncy5oZWxwXG5cbiAgaWYgKHRlbXBXcml0ZSkge1xuICAgIHRoaXMucmVhZE9ubHkgPSB0cnVlO1xuICB9XG4gIHJldHVybiB0aGlzLnN0b3JlO1xufTtcblxuZnVuY3Rpb24gaXNZYXJncyhvYmopIHtcbiAgcmV0dXJuICh0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBvYmogPT09ICdvYmplY3QnKSAmJiAoJ2FyZ3YnIGluIG9iaik7XG59XG4iLCAiLypcbiAqIGVudi5qczogU2ltcGxlIG1lbW9yeS1iYXNlZCBzdG9yZSBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gKlxuICogKEMpIDIwMTEsIENoYXJsaWUgUm9iYmlucyBhbmQgdGhlIENvbnRyaWJ1dG9ycy5cbiAqXG4gKi9cblxudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyksXG4gICAgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyksXG4gICAgTWVtb3J5ID0gcmVxdWlyZSgnLi9tZW1vcnknKS5NZW1vcnk7XG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gRW52IChvcHRpb25zKVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlLlxuLy8gQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBFbnYgbmNvbmYgc3RvcmUsIGEgc2ltcGxlIGFic3RyYWN0aW9uXG4vLyBhcm91bmQgdGhlIE1lbW9yeSBzdG9yZSB0aGF0IGNhbiByZWFkIHByb2Nlc3MgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuLy9cbnZhciBFbnYgPSBleHBvcnRzLkVudiA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIE1lbW9yeS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIG9wdGlvbnMgICAgICAgID0gb3B0aW9ucyB8fCB7fTtcbiAgdGhpcy50eXBlICAgICAgPSAnZW52JztcbiAgdGhpcy5yZWFkT25seSAgPSBvcHRpb25zLnJlYWRPbmx5ICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnJlYWRPbmx5IDogdHJ1ZTtcbiAgdGhpcy53aGl0ZWxpc3QgPSBvcHRpb25zLndoaXRlbGlzdCB8fCBbXTtcbiAgdGhpcy5sb3dlckNhc2UgPSBvcHRpb25zLmxvd2VyQ2FzZSB8fCBmYWxzZTtcbiAgdGhpcy5wYXJzZVZhbHVlcyA9IG9wdGlvbnMucGFyc2VWYWx1ZXMgfHwgZmFsc2U7XG4gIHRoaXMudHJhbnNmb3JtID0gb3B0aW9ucy50cmFuc2Zvcm0gfHwgZmFsc2U7XG5cbiAgaWYgKCh7fSkudG9TdHJpbmcuY2FsbChvcHRpb25zLm1hdGNoKSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcbiAgICAgICYmIHR5cGVvZiBvcHRpb25zICE9PSAnc3RyaW5nJykge1xuICAgIHRoaXMubWF0Y2ggPSBvcHRpb25zLm1hdGNoO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHRoaXMud2hpdGVsaXN0ID0gb3B0aW9ucztcbiAgfVxufTtcblxuLy8gSW5oZXJpdCBmcm9tIHRoZSBNZW1vcnkgc3RvcmVcbnV0aWwuaW5oZXJpdHMoRW52LCBNZW1vcnkpO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWRTeW5jICgpXG4vLyBMb2FkcyB0aGUgZGF0YSBwYXNzZWQgaW4gZnJvbSBgcHJvY2Vzcy5lbnZgIGludG8gdGhpcyBpbnN0YW5jZS5cbi8vXG5FbnYucHJvdG90eXBlLmxvYWRTeW5jID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmxvYWRFbnYoKTtcbiAgcmV0dXJuIHRoaXMuc3RvcmU7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWRFbnYgKClcbi8vIExvYWRzIHRoZSBkYXRhIHBhc3NlZCBpbiBmcm9tIGBwcm9jZXNzLmVudmAgaW50byB0aGlzIGluc3RhbmNlLlxuLy9cbkVudi5wcm90b3R5cGUubG9hZEVudiA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIHZhciBlbnYgPSBwcm9jZXNzLmVudjtcblxuICBpZiAodGhpcy5sb3dlckNhc2UpIHtcbiAgICBlbnYgPSB7fTtcbiAgICBPYmplY3Qua2V5cyhwcm9jZXNzLmVudikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBlbnZba2V5LnRvTG93ZXJDYXNlKCldID0gcHJvY2Vzcy5lbnZba2V5XTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmICh0aGlzLnRyYW5zZm9ybSkge1xuICAgIGVudiA9IGNvbW1vbi50cmFuc2Zvcm0oZW52LCB0aGlzLnRyYW5zZm9ybSk7XG4gIH1cblxuICB2YXIgdGVtcFdyaXRlID0gZmFsc2U7XG5cbiAgaWYodGhpcy5yZWFkT25seSkge1xuICAgIHRoaXMucmVhZE9ubHkgPSBmYWxzZTtcbiAgICB0ZW1wV3JpdGUgPSB0cnVlO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoZW52KS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChzZWxmLm1hdGNoICYmIHNlbGYud2hpdGVsaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGtleS5tYXRjaChzZWxmLm1hdGNoKSB8fCBzZWxmLndoaXRlbGlzdC5pbmRleE9mKGtleSkgIT09IC0xXG4gICAgfVxuICAgIGVsc2UgaWYgKHNlbGYubWF0Y2gpIHtcbiAgICAgIHJldHVybiBrZXkubWF0Y2goc2VsZi5tYXRjaCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuICFzZWxmLndoaXRlbGlzdC5sZW5ndGggfHwgc2VsZi53aGl0ZWxpc3QuaW5kZXhPZihrZXkpICE9PSAtMVxuICAgIH1cbiAgfSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cbiAgICB2YXIgdmFsID0gZW52W2tleV07XG5cbiAgICBpZiAoc2VsZi5wYXJzZVZhbHVlcykge1xuICAgICAgdmFsID0gY29tbW9uLnBhcnNlVmFsdWVzKHZhbCk7XG4gICAgfVxuXG4gICAgc2VsZi5zZXQoa2V5LCB2YWwpO1xuICB9KTtcblxuICBpZiAodGVtcFdyaXRlKSB7XG4gICAgdGhpcy5yZWFkT25seSA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gdGhpcy5zdG9yZTtcbn07XG4iLCAiLypcbiAqIGZpbGUuanM6IFNpbXBsZSBmaWxlIHN0b3JhZ2UgZW5naW5lIGZvciBuY29uZiBmaWxlc1xuICpcbiAqIChDKSAyMDExLCBDaGFybGllIFJvYmJpbnMgYW5kIHRoZSBDb250cmlidXRvcnMuXG4gKlxuICovXG5cbnZhciBvcyA9IHJlcXVpcmUoJ29zJyksXG4gICAgZnMgPSByZXF1aXJlKCdmcycpLFxuICAgIHBhdGggPSByZXF1aXJlKCdwYXRoJyksXG4gICAgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKSxcbiAgICBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKSxcbiAgICBmb3JtYXRzID0gcmVxdWlyZSgnLi4vZm9ybWF0cycpLFxuICAgIE1lbW9yeSA9IHJlcXVpcmUoJy4vbWVtb3J5JykuTWVtb3J5O1xuXG52YXIgZXhpc3RzID0gZnMuZXhpc3RzIHx8IHBhdGguZXhpc3RzLFxuICAgIGV4aXN0c1N5bmMgPSBmcy5leGlzdHNTeW5jIHx8IHBhdGguZXhpc3RzU3luYztcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBGaWxlIChvcHRpb25zKVxuLy8gIyMjIyBAb3B0aW9ucyB7T2JqZWN0fSBPcHRpb25zIGZvciB0aGlzIGluc3RhbmNlXG4vLyBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgdGhlIEZpbGUgbmNvbmYgc3RvcmUsIGEgc2ltcGxlIGFic3RyYWN0aW9uXG4vLyBhcm91bmQgdGhlIE1lbW9yeSBzdG9yZSB0aGF0IGNhbiBwZXJzaXN0IGNvbmZpZ3VyYXRpb24gdG8gZGlzay5cbi8vXG52YXIgRmlsZSA9IGV4cG9ydHMuRmlsZSA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5maWxlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIG9wdGlvbiBgZmlsZWAnKTtcbiAgfVxuXG4gIE1lbW9yeS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIHRoaXMudHlwZSAgICA9ICdmaWxlJztcbiAgdGhpcy5maWxlICAgID0gb3B0aW9ucy5maWxlO1xuICB0aGlzLmRpciAgICAgPSBvcHRpb25zLmRpciAgICB8fCBwcm9jZXNzLmN3ZCgpO1xuICB0aGlzLmZvcm1hdCAgPSBvcHRpb25zLmZvcm1hdCB8fCBmb3JtYXRzLmpzb247XG4gIHRoaXMuc2VjdXJlICA9IG9wdGlvbnMuc2VjdXJlO1xuICB0aGlzLnNwYWNpbmcgPSBvcHRpb25zLmpzb25fc3BhY2luZ1xuICAgIHx8IG9wdGlvbnMuc3BhY2luZ1xuICAgIHx8IDI7XG4gIHRoaXMuZW9sICAgICA9ICEob3B0aW9ucy5lb2wgPT09IGZhbHNlKTtcblxuICBpZiAodGhpcy5zZWN1cmUpIHtcbiAgICB0aGlzLnNlY3VyZSA9IEJ1ZmZlci5pc0J1ZmZlcih0aGlzLnNlY3VyZSkgfHwgdHlwZW9mIHRoaXMuc2VjdXJlID09PSAnc3RyaW5nJ1xuICAgICAgPyB7IHNlY3JldDogdGhpcy5zZWN1cmUudG9TdHJpbmcoKSB9XG4gICAgICA6IHRoaXMuc2VjdXJlO1xuXG4gICAgdGhpcy5zZWN1cmUuYWxnID0gdGhpcy5zZWN1cmUuYWxnIHx8ICdhZXMtMjU2LWN0cic7XG4gICAgaWYgKHRoaXMuc2VjdXJlLnNlY3JldFBhdGgpIHtcbiAgICAgIHRoaXMuc2VjdXJlLnNlY3JldCA9IGZzLnJlYWRGaWxlU3luYyh0aGlzLnNlY3VyZS5zZWNyZXRQYXRoLCAndXRmOCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zZWN1cmUuc2VjcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlY3VyZS5zZWNyZXQgb3B0aW9uIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2VhcmNoKSB7XG4gICAgdGhpcy5zZWFyY2godGhpcy5kaXIpO1xuICB9XG59O1xuXG4vLyBJbmhlcml0IGZyb20gdGhlIE1lbW9yeSBzdG9yZVxudXRpbC5pbmhlcml0cyhGaWxlLCBNZW1vcnkpO1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHNhdmUgKHZhbHVlLCBjYWxsYmFjaylcbi8vICMjIyMgQHZhbHVlIHtPYmplY3R9IF9JZ25vcmVkXyBMZWZ0IGhlcmUgZm9yIGNvbnNpc3RlbmN5XG4vLyAjIyMjIEBjYWxsYmFjayB7ZnVuY3Rpb259IENvbnRpbnVhdGlvbiB0byByZXNwb25kIHRvIHdoZW4gY29tcGxldGUuXG4vLyBTYXZlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9iamVjdCB0byBkaXNrIGF0IGB0aGlzLmZpbGVgXG4vLyB1c2luZyB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSBgdGhpcy5mb3JtYXRgLlxuLy9cbkZpbGUucHJvdG90eXBlLnNhdmUgPSBmdW5jdGlvbiAodmFsdWUsIGNhbGxiYWNrKSB7XG4gIHRoaXMuc2F2ZVRvRmlsZSh0aGlzLmZpbGUsIHZhbHVlLCBjYWxsYmFjayk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHNhdmVUb0ZpbGUgKHBhdGgsIHZhbHVlLCBjYWxsYmFjaylcbi8vICMjIyMgQHBhdGgge3N0cmluZ30gVGhlIHBhdGggdG8gdGhlIGZpbGUgd2hlcmUgd2Ugc2F2ZSB0aGUgY29uZmlndXJhdGlvbiB0b1xuLy8gIyMjIyBAZm9ybWF0IHtPYmplY3R9IE9wdGlvbmFsIGZvcm1hdHRlciwgZGVmYXVsdCBiZWhpbmcgdGhlIG9uZSBvZiB0aGUgc3RvcmVcbi8vICMjIyMgQGNhbGxiYWNrIHtmdW5jdGlvbn0gQ29udGludWF0aW9uIHRvIHJlc3BvbmQgdG8gd2hlbiBjb21wbGV0ZS5cbi8vIFNhdmVzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGRpc2sgYXQgYHRoaXMuZmlsZWBcbi8vIHVzaW5nIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGJ5IGB0aGlzLmZvcm1hdGAuXG4vL1xuRmlsZS5wcm90b3R5cGUuc2F2ZVRvRmlsZSA9IGZ1bmN0aW9uIChwYXRoLCBmb3JtYXQsIGNhbGxiYWNrKSB7XG4gIGlmICghY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjayA9IGZvcm1hdDtcbiAgICBmb3JtYXQgPSB0aGlzLmZvcm1hdDtcbiAgfVxuXG4gIGZzLndyaXRlRmlsZShwYXRoLCB0aGlzLnN0cmluZ2lmeShmb3JtYXQpLCBjYWxsYmFjayk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHNhdmVTeW5jICh2YWx1ZSwgY2FsbGJhY2spXG4vLyBTYXZlcyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9iamVjdCB0byBkaXNrIGF0IGB0aGlzLmZpbGVgXG4vLyB1c2luZyB0aGUgZm9ybWF0IHNwZWNpZmllZCBieSBgdGhpcy5mb3JtYXRgIHN5bmNocm9ub3VzbHkuXG4vL1xuRmlsZS5wcm90b3R5cGUuc2F2ZVN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gIGZzLndyaXRlRmlsZVN5bmModGhpcy5maWxlLCB0aGlzLnN0cmluZ2lmeSgpKTtcbiAgcmV0dXJuIHRoaXMuc3RvcmU7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWQgKGNhbGxiYWNrKVxuLy8gIyMjIyBAY2FsbGJhY2sge2Z1bmN0aW9ufSBDb250aW51YXRpb24gdG8gcmVzcG9uZCB0byB3aGVuIGNvbXBsZXRlLlxuLy8gUmVzcG9uZHMgd2l0aCBhbiBPYmplY3QgcmVwcmVzZW50aW5nIGFsbCBrZXlzIGFzc29jaWF0ZWQgaW4gdGhpcyBpbnN0YW5jZS5cbi8vXG5GaWxlLnByb3RvdHlwZS5sb2FkID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICBleGlzdHMoc2VsZi5maWxlLCBmdW5jdGlvbiAoZXhpc3RzKSB7XG4gICAgaWYgKCFleGlzdHMpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhudWxsLCB7fSk7XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBFbHNlLCB0aGUgcGF0aCBleGlzdHMsIHJlYWQgaXQgZnJvbSBkaXNrXG4gICAgLy9cbiAgICBmcy5yZWFkRmlsZShzZWxmLmZpbGUsIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycik7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIERlYWxzIHdpdGggc3RyaW5nIHRoYXQgaW5jbHVkZSBCT01cbiAgICAgICAgdmFyIHN0cmluZ0RhdGEgPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChzdHJpbmdEYXRhLmNoYXJBdCgwKSA9PT0gJ1xcdUZFRkYnKSB7XG4gICAgICAgICAgc3RyaW5nRGF0YSA9IHN0cmluZ0RhdGEuc3Vic3RyKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZi5zdG9yZSA9IHNlbGYucGFyc2Uoc3RyaW5nRGF0YSk7XG4gICAgICB9XG4gICAgICBjYXRjaCAoZXgpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcihcIkVycm9yIHBhcnNpbmcgeW91ciBjb25maWd1cmF0aW9uIGZpbGU6IFtcIiArIHNlbGYuZmlsZSArICddOiAnICsgZXgubWVzc2FnZSkpO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhudWxsLCBzZWxmLnN0b3JlKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIGxvYWRTeW5jIChjYWxsYmFjaylcbi8vIEF0dGVtcHRzIHRvIGxvYWQgdGhlIGRhdGEgc3RvcmVkIGluIGB0aGlzLmZpbGVgIHN5bmNocm9ub3VzbHlcbi8vIGFuZCByZXNwb25kcyBhcHByb3ByaWF0ZWx5LlxuLy9cbkZpbGUucHJvdG90eXBlLmxvYWRTeW5jID0gZnVuY3Rpb24gKCkge1xuICBpZiAoIWV4aXN0c1N5bmModGhpcy5maWxlKSkge1xuICAgIHRoaXMuc3RvcmUgPSB7fTtcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcbiAgfVxuXG4gIC8vXG4gIC8vIEVsc2UsIHRoZSBwYXRoIGV4aXN0cywgcmVhZCBpdCBmcm9tIGRpc2tcbiAgLy9cbiAgdHJ5IHtcbiAgICAvLyBEZWFscyB3aXRoIGZpbGUgdGhhdCBpbmNsdWRlIEJPTVxuICAgIHZhciBmaWxlRGF0YSA9IGZzLnJlYWRGaWxlU3luYyh0aGlzLmZpbGUsICd1dGY4Jyk7XG4gICAgaWYgKGZpbGVEYXRhLmNoYXJBdCgwKSA9PT0gJ1xcdUZFRkYnKSB7XG4gICAgICBmaWxlRGF0YSA9IGZpbGVEYXRhLnN1YnN0cigxKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlID0gdGhpcy5wYXJzZShmaWxlRGF0YSk7XG4gIH1cbiAgY2F0Y2ggKGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgcGFyc2luZyB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZTogW1wiICsgdGhpcy5maWxlICsgJ106ICcgKyBleC5tZXNzYWdlKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLnN0b3JlO1xufTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBzdHJpbmdpZnkgKClcbi8vIFJldHVybnMgYW4gZW5jcnlwdGVkIHZlcnNpb24gb2YgdGhlIGNvbnRlbnRzIElJRlxuLy8gYHRoaXMuc2VjdXJlYCBpcyBlbmFibGVkXG4vL1xuRmlsZS5wcm90b3R5cGUuc3RyaW5naWZ5ID0gZnVuY3Rpb24gKGZvcm1hdCkge1xuICB2YXIgZGF0YSA9IHRoaXMuc3RvcmU7XG4gIGlmICghZm9ybWF0KSB7XG4gICAgICBmb3JtYXQgPSB0aGlzLmZvcm1hdFxuICB9XG5cbiAgaWYgKHRoaXMuc2VjdXJlKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGRhdGEgPSBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICB2YXIgdmFsdWUgPSBmb3JtYXQuc3RyaW5naWZ5KGRhdGFba2V5XSk7XG4gICAgICB2YXIgaXYgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMTYpO1xuICAgICAgdmFyIGNpcGhlciA9IGNyeXB0by5jcmVhdGVDaXBoZXJpdihzZWxmLnNlY3VyZS5hbGcsIHNlbGYuc2VjdXJlLnNlY3JldCwgaXYpO1xuICAgICAgdmFyIGNpcGhlcnRleHQgPSBjaXBoZXIudXBkYXRlKHZhbHVlLCAndXRmOCcsICdoZXgnKTtcbiAgICAgIGNpcGhlcnRleHQgKz0gY2lwaGVyLmZpbmFsKCdoZXgnKTtcbiAgICAgIGFjY1trZXldID0geyBhbGc6IHNlbGYuc2VjdXJlLmFsZywgdmFsdWU6IGNpcGhlcnRleHQsIGl2OiBpdi50b1N0cmluZygnaGV4JykgfTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgdmFyIHN0cmluZ2lmaWVkID0gZm9ybWF0LnN0cmluZ2lmeShkYXRhLCBudWxsLCB0aGlzLnNwYWNpbmcpO1xuICB2YXIgbmVlZHNFT0wgPSB0aGlzLmVvbCAmJiBzdHJpbmdpZmllZC5zbGljZSgtMSkgIT09IG9zLkVPTDtcblxuICByZXR1cm4gc3RyaW5naWZpZWQgKyAobmVlZHNFT0wgPyBvcy5FT0wgOiAnJyk7XG59O1xuXG4vL1xuLy8gIyMjIGZ1bmN0aW9uIHBhcnNlIChjb250ZW50cylcbi8vIFJldHVybnMgYSBkZWNyeXB0ZWQgdmVyc2lvbiBvZiB0aGUgY29udGVudHMgSUZGXG4vLyBgdGhpcy5zZWN1cmVgIGlzIGVuYWJsZWQuXG4vL1xuRmlsZS5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoY29udGVudHMpIHtcbiAgdmFyIHBhcnNlZCA9IHRoaXMuZm9ybWF0LnBhcnNlKGNvbnRlbnRzKTtcblxuICBpZiAodGhpcy5zZWN1cmUpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgcGFyc2VkID0gT2JqZWN0LmtleXMocGFyc2VkKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICB2YXIgdmFsdWUgPSBwYXJzZWRba2V5XTtcblxuICAgICAgaWYgKCF2YWx1ZS5pdikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdXIgZW5jcnlwdGVkIGZpbGUgaXMgb3V0ZGF0ZWQgKGVuY3J5cHRlZCB3aXRob3V0IGl2KS4gUGxlYXNlIHJlLWVuY3J5cHQgeW91ciBmaWxlIHVzaW5nIGEgcHJlLXYxIHJlbGVhc2Ugb2YgbmNvbmYsIHYwLjEwIG9yIGFib3ZlLicpO1xuICAgICAgfVxuICAgICAgbGV0IGRlY2lwaGVyID0gY3J5cHRvLmNyZWF0ZURlY2lwaGVyaXYodmFsdWUuYWxnLCBzZWxmLnNlY3VyZS5zZWNyZXQsIEJ1ZmZlci5mcm9tKHZhbHVlLml2LCAnaGV4JykpO1xuXG4gICAgICB2YXIgcGxhaW50ZXh0ID0gZGVjaXBoZXIudXBkYXRlKHZhbHVlLnZhbHVlLCAnaGV4JywgJ3V0ZjgnKTtcbiAgICAgIHBsYWludGV4dCArPSBkZWNpcGhlci5maW5hbCgndXRmOCcpO1xuICAgICAgYWNjW2tleV0gPSBzZWxmLmZvcm1hdC5wYXJzZShwbGFpbnRleHQpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VkO1xuXG59O1xuXG5cbi8vXG4vLyAjIyMgZnVuY3Rpb24gc2VhcmNoIChiYXNlKVxuLy8gIyMjIyBAYmFzZSB7c3RyaW5nfSBCYXNlIGRpcmVjdG9yeSAob3IgZmlsZSkgdG8gYmVnaW4gc2VhcmNoaW5nIGZvciB0aGUgdGFyZ2V0IGZpbGUuXG4vLyBBdHRlbXB0cyB0byBmaW5kIGB0aGlzLmZpbGVgIGJ5IGl0ZXJhdGl2ZWx5IHNlYXJjaGluZyB1cCB0aGVcbi8vIGRpcmVjdG9yeSBzdHJ1Y3R1cmVcbi8vXG5GaWxlLnByb3RvdHlwZS5zZWFyY2ggPSBmdW5jdGlvbiAoYmFzZSkge1xuICB2YXIgbG9va2luZyA9IHRydWUsXG4gICAgICBmdWxscGF0aCxcbiAgICAgIHByZXZpb3VzLFxuICAgICAgc3RhdHM7XG5cbiAgYmFzZSA9IGJhc2UgfHwgcHJvY2Vzcy5jd2QoKTtcblxuICBpZiAodGhpcy5maWxlWzBdID09PSAnLycpIHtcbiAgICAvL1xuICAgIC8vIElmIGZpbGVuYW1lIGZvciB0aGlzIGluc3RhbmNlIGlzIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGhcbiAgICAvLyAoaS5lLiBpdCBzdGFydHMgd2l0aCBhIGAnLydgKSB0aGVuIGNoZWNrIGlmIGl0IGV4aXN0c1xuICAgIC8vXG4gICAgdHJ5IHtcbiAgICAgIHN0YXRzID0gZnMuc3RhdFN5bmMoZnMucmVhbHBhdGhTeW5jKHRoaXMuZmlsZSkpO1xuICAgICAgaWYgKHN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICAgIGZ1bGxwYXRoID0gdGhpcy5maWxlO1xuICAgICAgICBsb29raW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGNhdGNoIChleCkge1xuICAgICAgLy9cbiAgICAgIC8vIElnbm9yZSBlcnJvcnNcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgaWYgKGxvb2tpbmcgJiYgYmFzZSkge1xuICAgIC8vXG4gICAgLy8gQXR0ZW1wdCB0byBzdGF0IHRoZSByZWFscGF0aCBsb2NhdGVkIGF0IGBiYXNlYFxuICAgIC8vIGlmIHRoZSBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QgdGhlbiByZXR1cm4gZmFsc2UuXG4gICAgLy9cbiAgICB0cnkge1xuICAgICAgdmFyIHN0YXQgPSBmcy5zdGF0U3luYyhmcy5yZWFscGF0aFN5bmMoYmFzZSkpO1xuICAgICAgbG9va2luZyA9IHN0YXQuaXNEaXJlY3RvcnkoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGV4KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKGxvb2tpbmcpIHtcbiAgICAvL1xuICAgIC8vIEl0ZXJhdGl2ZWx5IGxvb2sgdXAgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgZnJvbSBgYmFzZWBcbiAgICAvL1xuICAgIHRyeSB7XG4gICAgICBzdGF0cyA9IGZzLnN0YXRTeW5jKGZzLnJlYWxwYXRoU3luYyhmdWxscGF0aCA9IHBhdGguam9pbihiYXNlLCB0aGlzLmZpbGUpKSk7XG4gICAgICBsb29raW5nID0gc3RhdHMuaXNEaXJlY3RvcnkoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGV4KSB7XG4gICAgICBwcmV2aW91cyA9IGJhc2U7XG4gICAgICBiYXNlID0gcGF0aC5kaXJuYW1lKGJhc2UpO1xuXG4gICAgICBpZiAocHJldmlvdXMgPT09IGJhc2UpIHtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gSWYgd2UndmUgcmVhY2hlZCB0aGUgdG9wIG9mIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRoZW4gc2ltcGx5IHVzZVxuICAgICAgICAvLyB0aGUgZGVmYXVsdCBmaWxlIHBhdGguXG4gICAgICAgIC8vXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgc3RhdHMgPSBmcy5zdGF0U3luYyhmcy5yZWFscGF0aFN5bmMoZnVsbHBhdGggPSBwYXRoLmpvaW4odGhpcy5kaXIsIHRoaXMuZmlsZSkpKTtcbiAgICAgICAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgZnVsbHBhdGggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChleCkge1xuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gSWdub3JlIGVycm9yc1xuICAgICAgICAgIC8vXG4gICAgICAgIH1cblxuICAgICAgICBsb29raW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgLy8gU2V0IHRoZSBmaWxlIGZvciB0aGlzIGluc3RhbmNlIHRvIHRoZSBmdWxscGF0aFxuICAvLyB0aGF0IHdlIGhhdmUgZm91bmQgZHVyaW5nIHRoZSBzZWFyY2guIEluIHRoZSBldmVudCB0aGF0XG4gIC8vIHRoZSBzZWFyY2ggd2FzIHVuc3VjY2Vzc2Z1bCB1c2UgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciBgdGhpcy5maWxlYC5cbiAgLy9cbiAgdGhpcy5maWxlID0gZnVsbHBhdGggfHwgdGhpcy5maWxlO1xuXG4gIHJldHVybiBmdWxscGF0aDtcbn07XG4iLCAiLypcbiAqIGxpdGVyYWwuanM6IFNpbXBsZSBsaXRlcmFsIE9iamVjdCBzdG9yZSBmb3IgbmNvbmYuXG4gKlxuICogKEMpIDIwMTEsIENoYXJsaWUgUm9iYmlucyBhbmQgdGhlIENvbnRyaWJ1dG9ycy5cbiAqXG4gKi9cblxudmFyIHV0aWwgPSByZXF1aXJlKCd1dGlsJyksXG4gICAgTWVtb3J5ID0gcmVxdWlyZSgnLi9tZW1vcnknKS5NZW1vcnlcblxudmFyIExpdGVyYWwgPSBleHBvcnRzLkxpdGVyYWwgPSBmdW5jdGlvbiBMaXRlcmFsIChvcHRpb25zKSB7XG4gIE1lbW9yeS5jYWxsKHRoaXMsIG9wdGlvbnMpO1xuXG4gIG9wdGlvbnMgICAgICAgPSBvcHRpb25zIHx8IHt9XG4gIHRoaXMudHlwZSAgICAgPSAnbGl0ZXJhbCc7XG4gIHRoaXMucmVhZE9ubHkgPSB0cnVlO1xuICB0aGlzLnN0b3JlICAgID0gb3B0aW9ucy5zdG9yZSB8fCBvcHRpb25zO1xufTtcblxuLy8gSW5oZXJpdCBmcm9tIE1lbW9yeSBzdG9yZS5cbnV0aWwuaW5oZXJpdHMoTGl0ZXJhbCwgTWVtb3J5KTtcblxuLy9cbi8vICMjIyBmdW5jdGlvbiBsb2FkU3luYyAoY2FsbGJhY2spXG4vLyBSZXR1cm5zIHRoZSBkYXRhIHN0b3JlZCBpbiBgdGhpcy5zdG9yZWAgc3luY2hyb25vdXNseS5cbi8vXG5MaXRlcmFsLnByb3RvdHlwZS5sb2FkU3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuc3RvcmU7XG59OyIsICIvKlxuICogbmNvbmYuanM6IFRvcC1sZXZlbCBpbmNsdWRlIGZvciB0aGUgbmNvbmYgbW9kdWxlXG4gKlxuICogKEMpIDIwMTEsIENoYXJsaWUgUm9iYmlucyBhbmQgdGhlIENvbnRyaWJ1dG9ycy5cbiAqXG4gKi9cblxudmFyIGNvbW1vbiA9IHJlcXVpcmUoJy4vbmNvbmYvY29tbW9uJyksXG4gICAgUHJvdmlkZXIgPSByZXF1aXJlKCcuL25jb25mL3Byb3ZpZGVyJykuUHJvdmlkZXI7XG5cbi8vXG4vLyBgbmNvbmZgIGlzIGJ5IGRlZmF1bHQgYW4gaW5zdGFuY2Ugb2YgYG5jb25mLlByb3ZpZGVyYC5cbi8vXG52YXIgbmNvbmYgPSBtb2R1bGUuZXhwb3J0cyA9IG5ldyBQcm92aWRlcigpO1xuXG4vL1xuLy8gRXhwb3NlIHRoZSB2ZXJzaW9uIGZyb20gdGhlIHBhY2thZ2UuanNvblxuLy9cbm5jb25mLnZlcnNpb24gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG4vL1xuLy8gU2V0dXAgYWxsIHN0b3JlcyBhcyBsYXp5LWxvYWRlZCBnZXR0ZXJzLlxuLy9cbm5jb25mLl9fZGVmaW5lR2V0dGVyX18oJ0FyZ3YnLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vbmNvbmYvc3RvcmVzL2FyZ3YnKS5Bcmd2O1xufSk7XG5cbm5jb25mLl9fZGVmaW5lR2V0dGVyX18oJ0VudicsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9uY29uZi9zdG9yZXMvZW52JykuRW52O1xufSk7XG5cbm5jb25mLl9fZGVmaW5lR2V0dGVyX18oJ0ZpbGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vbmNvbmYvc3RvcmVzL2ZpbGUnKS5GaWxlO1xufSk7XG5cbm5jb25mLl9fZGVmaW5lR2V0dGVyX18oJ0xpdGVyYWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vbmNvbmYvc3RvcmVzL2xpdGVyYWwnKS5MaXRlcmFsO1xufSk7XG5cbm5jb25mLl9fZGVmaW5lR2V0dGVyX18oJ01lbW9yeScsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gcmVxdWlyZSgnLi9uY29uZi9zdG9yZXMvbWVtb3J5JykuTWVtb3J5O1xufSk7XG5cbi8vXG4vLyBFeHBvc2UgdGhlIHZhcmlvdXMgY29tcG9uZW50cyBpbmNsdWRlZCB3aXRoIG5jb25mXG4vL1xubmNvbmYua2V5ICAgICAgICAgICA9IGNvbW1vbi5rZXk7XG5uY29uZi5wYXRoICAgICAgICAgID0gY29tbW9uLnBhdGg7XG5uY29uZi5sb2FkRmlsZXMgICAgID0gY29tbW9uLmxvYWRGaWxlcztcbm5jb25mLmxvYWRGaWxlc1N5bmMgPSBjb21tb24ubG9hZEZpbGVzU3luYztcbm5jb25mLmZvcm1hdHMgICAgICAgPSByZXF1aXJlKCcuL25jb25mL2Zvcm1hdHMnKTtcbm5jb25mLlByb3ZpZGVyICAgICAgPSBQcm92aWRlcjtcbiIsIG51bGwsIG51bGwsICJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5jb25zdCBybmRzOFBvb2wgPSBuZXcgVWludDhBcnJheSgyNTYpOyAvLyAjIG9mIHJhbmRvbSB2YWx1ZXMgdG8gcHJlLWFsbG9jYXRlXG5cbmxldCBwb29sUHRyID0gcm5kczhQb29sLmxlbmd0aDtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJuZygpIHtcbiAgaWYgKHBvb2xQdHIgPiBybmRzOFBvb2wubGVuZ3RoIC0gMTYpIHtcbiAgICBjcnlwdG8ucmFuZG9tRmlsbFN5bmMocm5kczhQb29sKTtcbiAgICBwb29sUHRyID0gMDtcbiAgfVxuXG4gIHJldHVybiBybmRzOFBvb2wuc2xpY2UocG9vbFB0ciwgcG9vbFB0ciArPSAxNik7XG59IiwgImV4cG9ydCBkZWZhdWx0IC9eKD86WzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzEtNV1bMC05YS1mXXszfS1bODlhYl1bMC05YS1mXXszfS1bMC05YS1mXXsxMn18MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwKSQvaTsiLCAiaW1wb3J0IFJFR0VYIGZyb20gJy4vcmVnZXguanMnO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZSh1dWlkKSB7XG4gIHJldHVybiB0eXBlb2YgdXVpZCA9PT0gJ3N0cmluZycgJiYgUkVHRVgudGVzdCh1dWlkKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdGU7IiwgImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcbi8qKlxuICogQ29udmVydCBhcnJheSBvZiAxNiBieXRlIHZhbHVlcyB0byBVVUlEIHN0cmluZyBmb3JtYXQgb2YgdGhlIGZvcm06XG4gKiBYWFhYWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYWFhYWFhYWFhcbiAqL1xuXG5jb25zdCBieXRlVG9IZXggPSBbXTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7ICsraSkge1xuICBieXRlVG9IZXgucHVzaCgoaSArIDB4MTAwKS50b1N0cmluZygxNikuc3Vic3RyKDEpKTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5KGFyciwgb2Zmc2V0ID0gMCkge1xuICAvLyBOb3RlOiBCZSBjYXJlZnVsIGVkaXRpbmcgdGhpcyBjb2RlISAgSXQncyBiZWVuIHR1bmVkIGZvciBwZXJmb3JtYW5jZVxuICAvLyBhbmQgd29ya3MgaW4gd2F5cyB5b3UgbWF5IG5vdCBleHBlY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdXVpZGpzL3V1aWQvcHVsbC80MzRcbiAgY29uc3QgdXVpZCA9IChieXRlVG9IZXhbYXJyW29mZnNldCArIDBdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMV1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyAyXV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDNdXSArICctJyArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgNF1dICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA1XV0gKyAnLScgKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDZdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgN11dICsgJy0nICsgYnl0ZVRvSGV4W2FycltvZmZzZXQgKyA4XV0gKyBieXRlVG9IZXhbYXJyW29mZnNldCArIDldXSArICctJyArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTBdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTFdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTJdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTNdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTRdXSArIGJ5dGVUb0hleFthcnJbb2Zmc2V0ICsgMTVdXSkudG9Mb3dlckNhc2UoKTsgLy8gQ29uc2lzdGVuY3kgY2hlY2sgZm9yIHZhbGlkIFVVSUQuICBJZiB0aGlzIHRocm93cywgaXQncyBsaWtlbHkgZHVlIHRvIG9uZVxuICAvLyBvZiB0aGUgZm9sbG93aW5nOlxuICAvLyAtIE9uZSBvciBtb3JlIGlucHV0IGFycmF5IHZhbHVlcyBkb24ndCBtYXAgdG8gYSBoZXggb2N0ZXQgKGxlYWRpbmcgdG9cbiAgLy8gXCJ1bmRlZmluZWRcIiBpbiB0aGUgdXVpZClcbiAgLy8gLSBJbnZhbGlkIGlucHV0IHZhbHVlcyBmb3IgdGhlIFJGQyBgdmVyc2lvbmAgb3IgYHZhcmlhbnRgIGZpZWxkc1xuXG4gIGlmICghdmFsaWRhdGUodXVpZCkpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZ2lmaWVkIFVVSUQgaXMgaW52YWxpZCcpO1xuICB9XG5cbiAgcmV0dXJuIHV1aWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ2lmeTsiLCAiaW1wb3J0IHJuZyBmcm9tICcuL3JuZy5qcyc7XG5pbXBvcnQgc3RyaW5naWZ5IGZyb20gJy4vc3RyaW5naWZ5LmpzJzsgLy8gKipgdjEoKWAgLSBHZW5lcmF0ZSB0aW1lLWJhc2VkIFVVSUQqKlxuLy9cbi8vIEluc3BpcmVkIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9MaW9zSy9VVUlELmpzXG4vLyBhbmQgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3V1aWQuaHRtbFxuXG5sZXQgX25vZGVJZDtcblxubGV0IF9jbG9ja3NlcTsgLy8gUHJldmlvdXMgdXVpZCBjcmVhdGlvbiB0aW1lXG5cblxubGV0IF9sYXN0TVNlY3MgPSAwO1xubGV0IF9sYXN0TlNlY3MgPSAwOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3V1aWRqcy91dWlkIGZvciBBUEkgZGV0YWlsc1xuXG5mdW5jdGlvbiB2MShvcHRpb25zLCBidWYsIG9mZnNldCkge1xuICBsZXQgaSA9IGJ1ZiAmJiBvZmZzZXQgfHwgMDtcbiAgY29uc3QgYiA9IGJ1ZiB8fCBuZXcgQXJyYXkoMTYpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGV0IG5vZGUgPSBvcHRpb25zLm5vZGUgfHwgX25vZGVJZDtcbiAgbGV0IGNsb2Nrc2VxID0gb3B0aW9ucy5jbG9ja3NlcSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5jbG9ja3NlcSA6IF9jbG9ja3NlcTsgLy8gbm9kZSBhbmQgY2xvY2tzZXEgbmVlZCB0byBiZSBpbml0aWFsaXplZCB0byByYW5kb20gdmFsdWVzIGlmIHRoZXkncmUgbm90XG4gIC8vIHNwZWNpZmllZC4gIFdlIGRvIHRoaXMgbGF6aWx5IHRvIG1pbmltaXplIGlzc3VlcyByZWxhdGVkIHRvIGluc3VmZmljaWVudFxuICAvLyBzeXN0ZW0gZW50cm9weS4gIFNlZSAjMTg5XG5cbiAgaWYgKG5vZGUgPT0gbnVsbCB8fCBjbG9ja3NlcSA9PSBudWxsKSB7XG4gICAgY29uc3Qgc2VlZEJ5dGVzID0gb3B0aW9ucy5yYW5kb20gfHwgKG9wdGlvbnMucm5nIHx8IHJuZykoKTtcblxuICAgIGlmIChub2RlID09IG51bGwpIHtcbiAgICAgIC8vIFBlciA0LjUsIGNyZWF0ZSBhbmQgNDgtYml0IG5vZGUgaWQsICg0NyByYW5kb20gYml0cyArIG11bHRpY2FzdCBiaXQgPSAxKVxuICAgICAgbm9kZSA9IF9ub2RlSWQgPSBbc2VlZEJ5dGVzWzBdIHwgMHgwMSwgc2VlZEJ5dGVzWzFdLCBzZWVkQnl0ZXNbMl0sIHNlZWRCeXRlc1szXSwgc2VlZEJ5dGVzWzRdLCBzZWVkQnl0ZXNbNV1dO1xuICAgIH1cblxuICAgIGlmIChjbG9ja3NlcSA9PSBudWxsKSB7XG4gICAgICAvLyBQZXIgNC4yLjIsIHJhbmRvbWl6ZSAoMTQgYml0KSBjbG9ja3NlcVxuICAgICAgY2xvY2tzZXEgPSBfY2xvY2tzZXEgPSAoc2VlZEJ5dGVzWzZdIDw8IDggfCBzZWVkQnl0ZXNbN10pICYgMHgzZmZmO1xuICAgIH1cbiAgfSAvLyBVVUlEIHRpbWVzdGFtcHMgYXJlIDEwMCBuYW5vLXNlY29uZCB1bml0cyBzaW5jZSB0aGUgR3JlZ29yaWFuIGVwb2NoLFxuICAvLyAoMTU4Mi0xMC0xNSAwMDowMCkuICBKU051bWJlcnMgYXJlbid0IHByZWNpc2UgZW5vdWdoIGZvciB0aGlzLCBzb1xuICAvLyB0aW1lIGlzIGhhbmRsZWQgaW50ZXJuYWxseSBhcyAnbXNlY3MnIChpbnRlZ2VyIG1pbGxpc2Vjb25kcykgYW5kICduc2VjcydcbiAgLy8gKDEwMC1uYW5vc2Vjb25kcyBvZmZzZXQgZnJvbSBtc2Vjcykgc2luY2UgdW5peCBlcG9jaCwgMTk3MC0wMS0wMSAwMDowMC5cblxuXG4gIGxldCBtc2VjcyA9IG9wdGlvbnMubXNlY3MgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubXNlY3MgOiBEYXRlLm5vdygpOyAvLyBQZXIgNC4yLjEuMiwgdXNlIGNvdW50IG9mIHV1aWQncyBnZW5lcmF0ZWQgZHVyaW5nIHRoZSBjdXJyZW50IGNsb2NrXG4gIC8vIGN5Y2xlIHRvIHNpbXVsYXRlIGhpZ2hlciByZXNvbHV0aW9uIGNsb2NrXG5cbiAgbGV0IG5zZWNzID0gb3B0aW9ucy5uc2VjcyAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5uc2VjcyA6IF9sYXN0TlNlY3MgKyAxOyAvLyBUaW1lIHNpbmNlIGxhc3QgdXVpZCBjcmVhdGlvbiAoaW4gbXNlY3MpXG5cbiAgY29uc3QgZHQgPSBtc2VjcyAtIF9sYXN0TVNlY3MgKyAobnNlY3MgLSBfbGFzdE5TZWNzKSAvIDEwMDAwOyAvLyBQZXIgNC4yLjEuMiwgQnVtcCBjbG9ja3NlcSBvbiBjbG9jayByZWdyZXNzaW9uXG5cbiAgaWYgKGR0IDwgMCAmJiBvcHRpb25zLmNsb2Nrc2VxID09PSB1bmRlZmluZWQpIHtcbiAgICBjbG9ja3NlcSA9IGNsb2Nrc2VxICsgMSAmIDB4M2ZmZjtcbiAgfSAvLyBSZXNldCBuc2VjcyBpZiBjbG9jayByZWdyZXNzZXMgKG5ldyBjbG9ja3NlcSkgb3Igd2UndmUgbW92ZWQgb250byBhIG5ld1xuICAvLyB0aW1lIGludGVydmFsXG5cblxuICBpZiAoKGR0IDwgMCB8fCBtc2VjcyA+IF9sYXN0TVNlY3MpICYmIG9wdGlvbnMubnNlY3MgPT09IHVuZGVmaW5lZCkge1xuICAgIG5zZWNzID0gMDtcbiAgfSAvLyBQZXIgNC4yLjEuMiBUaHJvdyBlcnJvciBpZiB0b28gbWFueSB1dWlkcyBhcmUgcmVxdWVzdGVkXG5cblxuICBpZiAobnNlY3MgPj0gMTAwMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1dWlkLnYxKCk6IENhbid0IGNyZWF0ZSBtb3JlIHRoYW4gMTBNIHV1aWRzL3NlY1wiKTtcbiAgfVxuXG4gIF9sYXN0TVNlY3MgPSBtc2VjcztcbiAgX2xhc3ROU2VjcyA9IG5zZWNzO1xuICBfY2xvY2tzZXEgPSBjbG9ja3NlcTsgLy8gUGVyIDQuMS40IC0gQ29udmVydCBmcm9tIHVuaXggZXBvY2ggdG8gR3JlZ29yaWFuIGVwb2NoXG5cbiAgbXNlY3MgKz0gMTIyMTkyOTI4MDAwMDA7IC8vIGB0aW1lX2xvd2BcblxuICBjb25zdCB0bCA9ICgobXNlY3MgJiAweGZmZmZmZmYpICogMTAwMDAgKyBuc2VjcykgJSAweDEwMDAwMDAwMDtcbiAgYltpKytdID0gdGwgPj4+IDI0ICYgMHhmZjtcbiAgYltpKytdID0gdGwgPj4+IDE2ICYgMHhmZjtcbiAgYltpKytdID0gdGwgPj4+IDggJiAweGZmO1xuICBiW2krK10gPSB0bCAmIDB4ZmY7IC8vIGB0aW1lX21pZGBcblxuICBjb25zdCB0bWggPSBtc2VjcyAvIDB4MTAwMDAwMDAwICogMTAwMDAgJiAweGZmZmZmZmY7XG4gIGJbaSsrXSA9IHRtaCA+Pj4gOCAmIDB4ZmY7XG4gIGJbaSsrXSA9IHRtaCAmIDB4ZmY7IC8vIGB0aW1lX2hpZ2hfYW5kX3ZlcnNpb25gXG5cbiAgYltpKytdID0gdG1oID4+PiAyNCAmIDB4ZiB8IDB4MTA7IC8vIGluY2x1ZGUgdmVyc2lvblxuXG4gIGJbaSsrXSA9IHRtaCA+Pj4gMTYgJiAweGZmOyAvLyBgY2xvY2tfc2VxX2hpX2FuZF9yZXNlcnZlZGAgKFBlciA0LjIuMiAtIGluY2x1ZGUgdmFyaWFudClcblxuICBiW2krK10gPSBjbG9ja3NlcSA+Pj4gOCB8IDB4ODA7IC8vIGBjbG9ja19zZXFfbG93YFxuXG4gIGJbaSsrXSA9IGNsb2Nrc2VxICYgMHhmZjsgLy8gYG5vZGVgXG5cbiAgZm9yIChsZXQgbiA9IDA7IG4gPCA2OyArK24pIHtcbiAgICBiW2kgKyBuXSA9IG5vZGVbbl07XG4gIH1cblxuICByZXR1cm4gYnVmIHx8IHN0cmluZ2lmeShiKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdjE7IiwgImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcblxuZnVuY3Rpb24gcGFyc2UodXVpZCkge1xuICBpZiAoIXZhbGlkYXRlKHV1aWQpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdJbnZhbGlkIFVVSUQnKTtcbiAgfVxuXG4gIGxldCB2O1xuICBjb25zdCBhcnIgPSBuZXcgVWludDhBcnJheSgxNik7IC8vIFBhcnNlICMjIyMjIyMjLS4uLi4tLi4uLi0uLi4uLS4uLi4uLi4uLi4uLlxuXG4gIGFyclswXSA9ICh2ID0gcGFyc2VJbnQodXVpZC5zbGljZSgwLCA4KSwgMTYpKSA+Pj4gMjQ7XG4gIGFyclsxXSA9IHYgPj4+IDE2ICYgMHhmZjtcbiAgYXJyWzJdID0gdiA+Pj4gOCAmIDB4ZmY7XG4gIGFyclszXSA9IHYgJiAweGZmOyAvLyBQYXJzZSAuLi4uLi4uLi0jIyMjLS4uLi4tLi4uLi0uLi4uLi4uLi4uLi5cblxuICBhcnJbNF0gPSAodiA9IHBhcnNlSW50KHV1aWQuc2xpY2UoOSwgMTMpLCAxNikpID4+PiA4O1xuICBhcnJbNV0gPSB2ICYgMHhmZjsgLy8gUGFyc2UgLi4uLi4uLi4tLi4uLi0jIyMjLS4uLi4tLi4uLi4uLi4uLi4uXG5cbiAgYXJyWzZdID0gKHYgPSBwYXJzZUludCh1dWlkLnNsaWNlKDE0LCAxOCksIDE2KSkgPj4+IDg7XG4gIGFycls3XSA9IHYgJiAweGZmOyAvLyBQYXJzZSAuLi4uLi4uLi0uLi4uLS4uLi4tIyMjIy0uLi4uLi4uLi4uLi5cblxuICBhcnJbOF0gPSAodiA9IHBhcnNlSW50KHV1aWQuc2xpY2UoMTksIDIzKSwgMTYpKSA+Pj4gODtcbiAgYXJyWzldID0gdiAmIDB4ZmY7IC8vIFBhcnNlIC4uLi4uLi4uLS4uLi4tLi4uLi0uLi4uLSMjIyMjIyMjIyMjI1xuICAvLyAoVXNlIFwiL1wiIHRvIGF2b2lkIDMyLWJpdCB0cnVuY2F0aW9uIHdoZW4gYml0LXNoaWZ0aW5nIGhpZ2gtb3JkZXIgYnl0ZXMpXG5cbiAgYXJyWzEwXSA9ICh2ID0gcGFyc2VJbnQodXVpZC5zbGljZSgyNCwgMzYpLCAxNikpIC8gMHgxMDAwMDAwMDAwMCAmIDB4ZmY7XG4gIGFyclsxMV0gPSB2IC8gMHgxMDAwMDAwMDAgJiAweGZmO1xuICBhcnJbMTJdID0gdiA+Pj4gMjQgJiAweGZmO1xuICBhcnJbMTNdID0gdiA+Pj4gMTYgJiAweGZmO1xuICBhcnJbMTRdID0gdiA+Pj4gOCAmIDB4ZmY7XG4gIGFyclsxNV0gPSB2ICYgMHhmZjtcbiAgcmV0dXJuIGFycjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgcGFyc2U7IiwgImltcG9ydCBzdHJpbmdpZnkgZnJvbSAnLi9zdHJpbmdpZnkuanMnO1xuaW1wb3J0IHBhcnNlIGZyb20gJy4vcGFyc2UuanMnO1xuXG5mdW5jdGlvbiBzdHJpbmdUb0J5dGVzKHN0cikge1xuICBzdHIgPSB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoc3RyKSk7IC8vIFVURjggZXNjYXBlXG5cbiAgY29uc3QgYnl0ZXMgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIGJ5dGVzLnB1c2goc3RyLmNoYXJDb2RlQXQoaSkpO1xuICB9XG5cbiAgcmV0dXJuIGJ5dGVzO1xufVxuXG5leHBvcnQgY29uc3QgRE5TID0gJzZiYTdiODEwLTlkYWQtMTFkMS04MGI0LTAwYzA0ZmQ0MzBjOCc7XG5leHBvcnQgY29uc3QgVVJMID0gJzZiYTdiODExLTlkYWQtMTFkMS04MGI0LTAwYzA0ZmQ0MzBjOCc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAobmFtZSwgdmVyc2lvbiwgaGFzaGZ1bmMpIHtcbiAgZnVuY3Rpb24gZ2VuZXJhdGVVVUlEKHZhbHVlLCBuYW1lc3BhY2UsIGJ1Ziwgb2Zmc2V0KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gc3RyaW5nVG9CeXRlcyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuYW1lc3BhY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBuYW1lc3BhY2UgPSBwYXJzZShuYW1lc3BhY2UpO1xuICAgIH1cblxuICAgIGlmIChuYW1lc3BhY2UubGVuZ3RoICE9PSAxNikge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdOYW1lc3BhY2UgbXVzdCBiZSBhcnJheS1saWtlICgxNiBpdGVyYWJsZSBpbnRlZ2VyIHZhbHVlcywgMC0yNTUpJyk7XG4gICAgfSAvLyBDb21wdXRlIGhhc2ggb2YgbmFtZXNwYWNlIGFuZCB2YWx1ZSwgUGVyIDQuM1xuICAgIC8vIEZ1dHVyZTogVXNlIHNwcmVhZCBzeW50YXggd2hlbiBzdXBwb3J0ZWQgb24gYWxsIHBsYXRmb3JtcywgZS5nLiBgYnl0ZXMgPVxuICAgIC8vIGhhc2hmdW5jKFsuLi5uYW1lc3BhY2UsIC4uLiB2YWx1ZV0pYFxuXG5cbiAgICBsZXQgYnl0ZXMgPSBuZXcgVWludDhBcnJheSgxNiArIHZhbHVlLmxlbmd0aCk7XG4gICAgYnl0ZXMuc2V0KG5hbWVzcGFjZSk7XG4gICAgYnl0ZXMuc2V0KHZhbHVlLCBuYW1lc3BhY2UubGVuZ3RoKTtcbiAgICBieXRlcyA9IGhhc2hmdW5jKGJ5dGVzKTtcbiAgICBieXRlc1s2XSA9IGJ5dGVzWzZdICYgMHgwZiB8IHZlcnNpb247XG4gICAgYnl0ZXNbOF0gPSBieXRlc1s4XSAmIDB4M2YgfCAweDgwO1xuXG4gICAgaWYgKGJ1Zikge1xuICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDA7XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTY7ICsraSkge1xuICAgICAgICBidWZbb2Zmc2V0ICsgaV0gPSBieXRlc1tpXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ1ZjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5naWZ5KGJ5dGVzKTtcbiAgfSAvLyBGdW5jdGlvbiNuYW1lIGlzIG5vdCBzZXR0YWJsZSBvbiBzb21lIHBsYXRmb3JtcyAoIzI3MClcblxuXG4gIHRyeSB7XG4gICAgZ2VuZXJhdGVVVUlELm5hbWUgPSBuYW1lOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHlcbiAgfSBjYXRjaCAoZXJyKSB7fSAvLyBGb3IgQ29tbW9uSlMgZGVmYXVsdCBleHBvcnQgc3VwcG9ydFxuXG5cbiAgZ2VuZXJhdGVVVUlELkROUyA9IEROUztcbiAgZ2VuZXJhdGVVVUlELlVSTCA9IFVSTDtcbiAgcmV0dXJuIGdlbmVyYXRlVVVJRDtcbn0iLCAiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5mdW5jdGlvbiBtZDUoYnl0ZXMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYnl0ZXMpKSB7XG4gICAgYnl0ZXMgPSBCdWZmZXIuZnJvbShieXRlcyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJ5dGVzID09PSAnc3RyaW5nJykge1xuICAgIGJ5dGVzID0gQnVmZmVyLmZyb20oYnl0ZXMsICd1dGY4Jyk7XG4gIH1cblxuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ21kNScpLnVwZGF0ZShieXRlcykuZGlnZXN0KCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1kNTsiLCAiaW1wb3J0IHYzNSBmcm9tICcuL3YzNS5qcyc7XG5pbXBvcnQgbWQ1IGZyb20gJy4vbWQ1LmpzJztcbmNvbnN0IHYzID0gdjM1KCd2MycsIDB4MzAsIG1kNSk7XG5leHBvcnQgZGVmYXVsdCB2MzsiLCAiaW1wb3J0IHJuZyBmcm9tICcuL3JuZy5qcyc7XG5pbXBvcnQgc3RyaW5naWZ5IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcblxuZnVuY3Rpb24gdjQob3B0aW9ucywgYnVmLCBvZmZzZXQpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGNvbnN0IHJuZHMgPSBvcHRpb25zLnJhbmRvbSB8fCAob3B0aW9ucy5ybmcgfHwgcm5nKSgpOyAvLyBQZXIgNC40LCBzZXQgYml0cyBmb3IgdmVyc2lvbiBhbmQgYGNsb2NrX3NlcV9oaV9hbmRfcmVzZXJ2ZWRgXG5cbiAgcm5kc1s2XSA9IHJuZHNbNl0gJiAweDBmIHwgMHg0MDtcbiAgcm5kc1s4XSA9IHJuZHNbOF0gJiAweDNmIHwgMHg4MDsgLy8gQ29weSBieXRlcyB0byBidWZmZXIsIGlmIHByb3ZpZGVkXG5cbiAgaWYgKGJ1Zikge1xuICAgIG9mZnNldCA9IG9mZnNldCB8fCAwO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNjsgKytpKSB7XG4gICAgICBidWZbb2Zmc2V0ICsgaV0gPSBybmRzW2ldO1xuICAgIH1cblxuICAgIHJldHVybiBidWY7XG4gIH1cblxuICByZXR1cm4gc3RyaW5naWZ5KHJuZHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB2NDsiLCAiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5mdW5jdGlvbiBzaGExKGJ5dGVzKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGJ5dGVzKSkge1xuICAgIGJ5dGVzID0gQnVmZmVyLmZyb20oYnl0ZXMpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBieXRlcyA9PT0gJ3N0cmluZycpIHtcbiAgICBieXRlcyA9IEJ1ZmZlci5mcm9tKGJ5dGVzLCAndXRmOCcpO1xuICB9XG5cbiAgcmV0dXJuIGNyeXB0by5jcmVhdGVIYXNoKCdzaGExJykudXBkYXRlKGJ5dGVzKS5kaWdlc3QoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2hhMTsiLCAiaW1wb3J0IHYzNSBmcm9tICcuL3YzNS5qcyc7XG5pbXBvcnQgc2hhMSBmcm9tICcuL3NoYTEuanMnO1xuY29uc3QgdjUgPSB2MzUoJ3Y1JywgMHg1MCwgc2hhMSk7XG5leHBvcnQgZGVmYXVsdCB2NTsiLCAiZXhwb3J0IGRlZmF1bHQgJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCc7IiwgImltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL3ZhbGlkYXRlLmpzJztcblxuZnVuY3Rpb24gdmVyc2lvbih1dWlkKSB7XG4gIGlmICghdmFsaWRhdGUodXVpZCkpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0ludmFsaWQgVVVJRCcpO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlSW50KHV1aWQuc3Vic3RyKDE0LCAxKSwgMTYpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB2ZXJzaW9uOyIsICJleHBvcnQgeyBkZWZhdWx0IGFzIHYxIH0gZnJvbSAnLi92MS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHYzIH0gZnJvbSAnLi92My5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHY0IH0gZnJvbSAnLi92NC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHY1IH0gZnJvbSAnLi92NS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE5JTCB9IGZyb20gJy4vbmlsLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZhbGlkYXRlIH0gZnJvbSAnLi92YWxpZGF0ZS5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHN0cmluZ2lmeSB9IGZyb20gJy4vc3RyaW5naWZ5LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFyc2UgfSBmcm9tICcuL3BhcnNlLmpzJzsiLCBudWxsLCBudWxsLCAiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbmV0ID0gcmVxdWlyZSgnbmV0Jyk7XG52YXIgdGxzID0gcmVxdWlyZSgndGxzJyk7XG52YXIgaHR0cCA9IHJlcXVpcmUoJ2h0dHAnKTtcbnZhciBodHRwcyA9IHJlcXVpcmUoJ2h0dHBzJyk7XG52YXIgZXZlbnRzID0gcmVxdWlyZSgnZXZlbnRzJyk7XG52YXIgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcblxuXG5leHBvcnRzLmh0dHBPdmVySHR0cCA9IGh0dHBPdmVySHR0cDtcbmV4cG9ydHMuaHR0cHNPdmVySHR0cCA9IGh0dHBzT3Zlckh0dHA7XG5leHBvcnRzLmh0dHBPdmVySHR0cHMgPSBodHRwT3Zlckh0dHBzO1xuZXhwb3J0cy5odHRwc092ZXJIdHRwcyA9IGh0dHBzT3Zlckh0dHBzO1xuXG5cbmZ1bmN0aW9uIGh0dHBPdmVySHR0cChvcHRpb25zKSB7XG4gIHZhciBhZ2VudCA9IG5ldyBUdW5uZWxpbmdBZ2VudChvcHRpb25zKTtcbiAgYWdlbnQucmVxdWVzdCA9IGh0dHAucmVxdWVzdDtcbiAgcmV0dXJuIGFnZW50O1xufVxuXG5mdW5jdGlvbiBodHRwc092ZXJIdHRwKG9wdGlvbnMpIHtcbiAgdmFyIGFnZW50ID0gbmV3IFR1bm5lbGluZ0FnZW50KG9wdGlvbnMpO1xuICBhZ2VudC5yZXF1ZXN0ID0gaHR0cC5yZXF1ZXN0O1xuICBhZ2VudC5jcmVhdGVTb2NrZXQgPSBjcmVhdGVTZWN1cmVTb2NrZXQ7XG4gIGFnZW50LmRlZmF1bHRQb3J0ID0gNDQzO1xuICByZXR1cm4gYWdlbnQ7XG59XG5cbmZ1bmN0aW9uIGh0dHBPdmVySHR0cHMob3B0aW9ucykge1xuICB2YXIgYWdlbnQgPSBuZXcgVHVubmVsaW5nQWdlbnQob3B0aW9ucyk7XG4gIGFnZW50LnJlcXVlc3QgPSBodHRwcy5yZXF1ZXN0O1xuICByZXR1cm4gYWdlbnQ7XG59XG5cbmZ1bmN0aW9uIGh0dHBzT3Zlckh0dHBzKG9wdGlvbnMpIHtcbiAgdmFyIGFnZW50ID0gbmV3IFR1bm5lbGluZ0FnZW50KG9wdGlvbnMpO1xuICBhZ2VudC5yZXF1ZXN0ID0gaHR0cHMucmVxdWVzdDtcbiAgYWdlbnQuY3JlYXRlU29ja2V0ID0gY3JlYXRlU2VjdXJlU29ja2V0O1xuICBhZ2VudC5kZWZhdWx0UG9ydCA9IDQ0MztcbiAgcmV0dXJuIGFnZW50O1xufVxuXG5cbmZ1bmN0aW9uIFR1bm5lbGluZ0FnZW50KG9wdGlvbnMpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBzZWxmLnByb3h5T3B0aW9ucyA9IHNlbGYub3B0aW9ucy5wcm94eSB8fCB7fTtcbiAgc2VsZi5tYXhTb2NrZXRzID0gc2VsZi5vcHRpb25zLm1heFNvY2tldHMgfHwgaHR0cC5BZ2VudC5kZWZhdWx0TWF4U29ja2V0cztcbiAgc2VsZi5yZXF1ZXN0cyA9IFtdO1xuICBzZWxmLnNvY2tldHMgPSBbXTtcblxuICBzZWxmLm9uKCdmcmVlJywgZnVuY3Rpb24gb25GcmVlKHNvY2tldCwgaG9zdCwgcG9ydCwgbG9jYWxBZGRyZXNzKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB0b09wdGlvbnMoaG9zdCwgcG9ydCwgbG9jYWxBZGRyZXNzKTtcbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gc2VsZi5yZXF1ZXN0cy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgdmFyIHBlbmRpbmcgPSBzZWxmLnJlcXVlc3RzW2ldO1xuICAgICAgaWYgKHBlbmRpbmcuaG9zdCA9PT0gb3B0aW9ucy5ob3N0ICYmIHBlbmRpbmcucG9ydCA9PT0gb3B0aW9ucy5wb3J0KSB7XG4gICAgICAgIC8vIERldGVjdCB0aGUgcmVxdWVzdCB0byBjb25uZWN0IHNhbWUgb3JpZ2luIHNlcnZlcixcbiAgICAgICAgLy8gcmV1c2UgdGhlIGNvbm5lY3Rpb24uXG4gICAgICAgIHNlbGYucmVxdWVzdHMuc3BsaWNlKGksIDEpO1xuICAgICAgICBwZW5kaW5nLnJlcXVlc3Qub25Tb2NrZXQoc29ja2V0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgIHNlbGYucmVtb3ZlU29ja2V0KHNvY2tldCk7XG4gIH0pO1xufVxudXRpbC5pbmhlcml0cyhUdW5uZWxpbmdBZ2VudCwgZXZlbnRzLkV2ZW50RW1pdHRlcik7XG5cblR1bm5lbGluZ0FnZW50LnByb3RvdHlwZS5hZGRSZXF1ZXN0ID0gZnVuY3Rpb24gYWRkUmVxdWVzdChyZXEsIGhvc3QsIHBvcnQsIGxvY2FsQWRkcmVzcykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBvcHRpb25zID0gbWVyZ2VPcHRpb25zKHtyZXF1ZXN0OiByZXF9LCBzZWxmLm9wdGlvbnMsIHRvT3B0aW9ucyhob3N0LCBwb3J0LCBsb2NhbEFkZHJlc3MpKTtcblxuICBpZiAoc2VsZi5zb2NrZXRzLmxlbmd0aCA+PSB0aGlzLm1heFNvY2tldHMpIHtcbiAgICAvLyBXZSBhcmUgb3ZlciBsaW1pdCBzbyB3ZSdsbCBhZGQgaXQgdG8gdGhlIHF1ZXVlLlxuICAgIHNlbGYucmVxdWVzdHMucHVzaChvcHRpb25zKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBJZiB3ZSBhcmUgdW5kZXIgbWF4U29ja2V0cyBjcmVhdGUgYSBuZXcgb25lLlxuICBzZWxmLmNyZWF0ZVNvY2tldChvcHRpb25zLCBmdW5jdGlvbihzb2NrZXQpIHtcbiAgICBzb2NrZXQub24oJ2ZyZWUnLCBvbkZyZWUpO1xuICAgIHNvY2tldC5vbignY2xvc2UnLCBvbkNsb3NlT3JSZW1vdmUpO1xuICAgIHNvY2tldC5vbignYWdlbnRSZW1vdmUnLCBvbkNsb3NlT3JSZW1vdmUpO1xuICAgIHJlcS5vblNvY2tldChzb2NrZXQpO1xuXG4gICAgZnVuY3Rpb24gb25GcmVlKCkge1xuICAgICAgc2VsZi5lbWl0KCdmcmVlJywgc29ja2V0LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvbkNsb3NlT3JSZW1vdmUoZXJyKSB7XG4gICAgICBzZWxmLnJlbW92ZVNvY2tldChzb2NrZXQpO1xuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdmcmVlJywgb25GcmVlKTtcbiAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvbkNsb3NlT3JSZW1vdmUpO1xuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdhZ2VudFJlbW92ZScsIG9uQ2xvc2VPclJlbW92ZSk7XG4gICAgfVxuICB9KTtcbn07XG5cblR1bm5lbGluZ0FnZW50LnByb3RvdHlwZS5jcmVhdGVTb2NrZXQgPSBmdW5jdGlvbiBjcmVhdGVTb2NrZXQob3B0aW9ucywgY2IpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgcGxhY2Vob2xkZXIgPSB7fTtcbiAgc2VsZi5zb2NrZXRzLnB1c2gocGxhY2Vob2xkZXIpO1xuXG4gIHZhciBjb25uZWN0T3B0aW9ucyA9IG1lcmdlT3B0aW9ucyh7fSwgc2VsZi5wcm94eU9wdGlvbnMsIHtcbiAgICBtZXRob2Q6ICdDT05ORUNUJyxcbiAgICBwYXRoOiBvcHRpb25zLmhvc3QgKyAnOicgKyBvcHRpb25zLnBvcnQsXG4gICAgYWdlbnQ6IGZhbHNlLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIGhvc3Q6IG9wdGlvbnMuaG9zdCArICc6JyArIG9wdGlvbnMucG9ydFxuICAgIH1cbiAgfSk7XG4gIGlmIChvcHRpb25zLmxvY2FsQWRkcmVzcykge1xuICAgIGNvbm5lY3RPcHRpb25zLmxvY2FsQWRkcmVzcyA9IG9wdGlvbnMubG9jYWxBZGRyZXNzO1xuICB9XG4gIGlmIChjb25uZWN0T3B0aW9ucy5wcm94eUF1dGgpIHtcbiAgICBjb25uZWN0T3B0aW9ucy5oZWFkZXJzID0gY29ubmVjdE9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICBjb25uZWN0T3B0aW9ucy5oZWFkZXJzWydQcm94eS1BdXRob3JpemF0aW9uJ10gPSAnQmFzaWMgJyArXG4gICAgICAgIG5ldyBCdWZmZXIoY29ubmVjdE9wdGlvbnMucHJveHlBdXRoKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICBkZWJ1ZygnbWFraW5nIENPTk5FQ1QgcmVxdWVzdCcpO1xuICB2YXIgY29ubmVjdFJlcSA9IHNlbGYucmVxdWVzdChjb25uZWN0T3B0aW9ucyk7XG4gIGNvbm5lY3RSZXEudXNlQ2h1bmtlZEVuY29kaW5nQnlEZWZhdWx0ID0gZmFsc2U7IC8vIGZvciB2MC42XG4gIGNvbm5lY3RSZXEub25jZSgncmVzcG9uc2UnLCBvblJlc3BvbnNlKTsgLy8gZm9yIHYwLjZcbiAgY29ubmVjdFJlcS5vbmNlKCd1cGdyYWRlJywgb25VcGdyYWRlKTsgICAvLyBmb3IgdjAuNlxuICBjb25uZWN0UmVxLm9uY2UoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpOyAgIC8vIGZvciB2MC43IG9yIGxhdGVyXG4gIGNvbm5lY3RSZXEub25jZSgnZXJyb3InLCBvbkVycm9yKTtcbiAgY29ubmVjdFJlcS5lbmQoKTtcblxuICBmdW5jdGlvbiBvblJlc3BvbnNlKHJlcykge1xuICAgIC8vIFZlcnkgaGFja3kuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIGh0dHAtcGFyc2VyIGxlYWtzLlxuICAgIHJlcy51cGdyYWRlID0gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uVXBncmFkZShyZXMsIHNvY2tldCwgaGVhZCkge1xuICAgIC8vIEhhY2t5LlxuICAgIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKSB7XG4gICAgICBvbkNvbm5lY3QocmVzLCBzb2NrZXQsIGhlYWQpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gb25Db25uZWN0KHJlcywgc29ja2V0LCBoZWFkKSB7XG4gICAgY29ubmVjdFJlcS5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICBzb2NrZXQucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICBpZiAocmVzLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuICAgICAgZGVidWcoJ3R1bm5lbGluZyBzb2NrZXQgY291bGQgbm90IGJlIGVzdGFibGlzaGVkLCBzdGF0dXNDb2RlPSVkJyxcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUpO1xuICAgICAgc29ja2V0LmRlc3Ryb3koKTtcbiAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcigndHVubmVsaW5nIHNvY2tldCBjb3VsZCBub3QgYmUgZXN0YWJsaXNoZWQsICcgK1xuICAgICAgICAnc3RhdHVzQ29kZT0nICsgcmVzLnN0YXR1c0NvZGUpO1xuICAgICAgZXJyb3IuY29kZSA9ICdFQ09OTlJFU0VUJztcbiAgICAgIG9wdGlvbnMucmVxdWVzdC5lbWl0KCdlcnJvcicsIGVycm9yKTtcbiAgICAgIHNlbGYucmVtb3ZlU29ja2V0KHBsYWNlaG9sZGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGhlYWQubGVuZ3RoID4gMCkge1xuICAgICAgZGVidWcoJ2dvdCBpbGxlZ2FsIHJlc3BvbnNlIGJvZHkgZnJvbSBwcm94eScpO1xuICAgICAgc29ja2V0LmRlc3Ryb3koKTtcbiAgICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcignZ290IGlsbGVnYWwgcmVzcG9uc2UgYm9keSBmcm9tIHByb3h5Jyk7XG4gICAgICBlcnJvci5jb2RlID0gJ0VDT05OUkVTRVQnO1xuICAgICAgb3B0aW9ucy5yZXF1ZXN0LmVtaXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgICAgc2VsZi5yZW1vdmVTb2NrZXQocGxhY2Vob2xkZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkZWJ1ZygndHVubmVsaW5nIGNvbm5lY3Rpb24gaGFzIGVzdGFibGlzaGVkJyk7XG4gICAgc2VsZi5zb2NrZXRzW3NlbGYuc29ja2V0cy5pbmRleE9mKHBsYWNlaG9sZGVyKV0gPSBzb2NrZXQ7XG4gICAgcmV0dXJuIGNiKHNvY2tldCk7XG4gIH1cblxuICBmdW5jdGlvbiBvbkVycm9yKGNhdXNlKSB7XG4gICAgY29ubmVjdFJlcS5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblxuICAgIGRlYnVnKCd0dW5uZWxpbmcgc29ja2V0IGNvdWxkIG5vdCBiZSBlc3RhYmxpc2hlZCwgY2F1c2U9JXNcXG4nLFxuICAgICAgICAgIGNhdXNlLm1lc3NhZ2UsIGNhdXNlLnN0YWNrKTtcbiAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ3R1bm5lbGluZyBzb2NrZXQgY291bGQgbm90IGJlIGVzdGFibGlzaGVkLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdXNlPScgKyBjYXVzZS5tZXNzYWdlKTtcbiAgICBlcnJvci5jb2RlID0gJ0VDT05OUkVTRVQnO1xuICAgIG9wdGlvbnMucmVxdWVzdC5lbWl0KCdlcnJvcicsIGVycm9yKTtcbiAgICBzZWxmLnJlbW92ZVNvY2tldChwbGFjZWhvbGRlcik7XG4gIH1cbn07XG5cblR1bm5lbGluZ0FnZW50LnByb3RvdHlwZS5yZW1vdmVTb2NrZXQgPSBmdW5jdGlvbiByZW1vdmVTb2NrZXQoc29ja2V0KSB7XG4gIHZhciBwb3MgPSB0aGlzLnNvY2tldHMuaW5kZXhPZihzb2NrZXQpXG4gIGlmIChwb3MgPT09IC0xKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRoaXMuc29ja2V0cy5zcGxpY2UocG9zLCAxKTtcblxuICB2YXIgcGVuZGluZyA9IHRoaXMucmVxdWVzdHMuc2hpZnQoKTtcbiAgaWYgKHBlbmRpbmcpIHtcbiAgICAvLyBJZiB3ZSBoYXZlIHBlbmRpbmcgcmVxdWVzdHMgYW5kIGEgc29ja2V0IGdldHMgY2xvc2VkIGEgbmV3IG9uZVxuICAgIC8vIG5lZWRzIHRvIGJlIGNyZWF0ZWQgdG8gdGFrZSBvdmVyIGluIHRoZSBwb29sIGZvciB0aGUgb25lIHRoYXQgY2xvc2VkLlxuICAgIHRoaXMuY3JlYXRlU29ja2V0KHBlbmRpbmcsIGZ1bmN0aW9uKHNvY2tldCkge1xuICAgICAgcGVuZGluZy5yZXF1ZXN0Lm9uU29ja2V0KHNvY2tldCk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVNlY3VyZVNvY2tldChvcHRpb25zLCBjYikge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIFR1bm5lbGluZ0FnZW50LnByb3RvdHlwZS5jcmVhdGVTb2NrZXQuY2FsbChzZWxmLCBvcHRpb25zLCBmdW5jdGlvbihzb2NrZXQpIHtcbiAgICB2YXIgaG9zdEhlYWRlciA9IG9wdGlvbnMucmVxdWVzdC5nZXRIZWFkZXIoJ2hvc3QnKTtcbiAgICB2YXIgdGxzT3B0aW9ucyA9IG1lcmdlT3B0aW9ucyh7fSwgc2VsZi5vcHRpb25zLCB7XG4gICAgICBzb2NrZXQ6IHNvY2tldCxcbiAgICAgIHNlcnZlcm5hbWU6IGhvc3RIZWFkZXIgPyBob3N0SGVhZGVyLnJlcGxhY2UoLzouKiQvLCAnJykgOiBvcHRpb25zLmhvc3RcbiAgICB9KTtcblxuICAgIC8vIDAgaXMgZHVtbXkgcG9ydCBmb3IgdjAuNlxuICAgIHZhciBzZWN1cmVTb2NrZXQgPSB0bHMuY29ubmVjdCgwLCB0bHNPcHRpb25zKTtcbiAgICBzZWxmLnNvY2tldHNbc2VsZi5zb2NrZXRzLmluZGV4T2Yoc29ja2V0KV0gPSBzZWN1cmVTb2NrZXQ7XG4gICAgY2Ioc2VjdXJlU29ja2V0KTtcbiAgfSk7XG59XG5cblxuZnVuY3Rpb24gdG9PcHRpb25zKGhvc3QsIHBvcnQsIGxvY2FsQWRkcmVzcykge1xuICBpZiAodHlwZW9mIGhvc3QgPT09ICdzdHJpbmcnKSB7IC8vIHNpbmNlIHYwLjEwXG4gICAgcmV0dXJuIHtcbiAgICAgIGhvc3Q6IGhvc3QsXG4gICAgICBwb3J0OiBwb3J0LFxuICAgICAgbG9jYWxBZGRyZXNzOiBsb2NhbEFkZHJlc3NcbiAgICB9O1xuICB9XG4gIHJldHVybiBob3N0OyAvLyBmb3IgdjAuMTEgb3IgbGF0ZXJcbn1cblxuZnVuY3Rpb24gbWVyZ2VPcHRpb25zKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgdmFyIG92ZXJyaWRlcyA9IGFyZ3VtZW50c1tpXTtcbiAgICBpZiAodHlwZW9mIG92ZXJyaWRlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob3ZlcnJpZGVzKTtcbiAgICAgIGZvciAodmFyIGogPSAwLCBrZXlMZW4gPSBrZXlzLmxlbmd0aDsgaiA8IGtleUxlbjsgKytqKSB7XG4gICAgICAgIHZhciBrID0ga2V5c1tqXTtcbiAgICAgICAgaWYgKG92ZXJyaWRlc1trXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGFyZ2V0W2tdID0gb3ZlcnJpZGVzW2tdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cblxudmFyIGRlYnVnO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfREVCVUcgJiYgL1xcYnR1bm5lbFxcYi8udGVzdChwcm9jZXNzLmVudi5OT0RFX0RFQlVHKSkge1xuICBkZWJ1ZyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBhcmdzWzBdID0gJ1RVTk5FTDogJyArIGFyZ3NbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyZ3MudW5zaGlmdCgnVFVOTkVMOicpO1xuICAgIH1cbiAgICBjb25zb2xlLmVycm9yLmFwcGx5KGNvbnNvbGUsIGFyZ3MpO1xuICB9XG59IGVsc2Uge1xuICBkZWJ1ZyA9IGZ1bmN0aW9uKCkge307XG59XG5leHBvcnRzLmRlYnVnID0gZGVidWc7IC8vIGZvciB0ZXN0XG4iLCAibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi90dW5uZWwnKTtcbiIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gKGZsYWcsIGFyZ3YgPSBwcm9jZXNzLmFyZ3YpID0+IHtcblx0Y29uc3QgcHJlZml4ID0gZmxhZy5zdGFydHNXaXRoKCctJykgPyAnJyA6IChmbGFnLmxlbmd0aCA9PT0gMSA/ICctJyA6ICctLScpO1xuXHRjb25zdCBwb3NpdGlvbiA9IGFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcblx0Y29uc3QgdGVybWluYXRvclBvc2l0aW9uID0gYXJndi5pbmRleE9mKCctLScpO1xuXHRyZXR1cm4gcG9zaXRpb24gIT09IC0xICYmICh0ZXJtaW5hdG9yUG9zaXRpb24gPT09IC0xIHx8IHBvc2l0aW9uIDwgdGVybWluYXRvclBvc2l0aW9uKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuY29uc3Qgb3MgPSByZXF1aXJlKCdvcycpO1xuY29uc3QgdHR5ID0gcmVxdWlyZSgndHR5Jyk7XG5jb25zdCBoYXNGbGFnID0gcmVxdWlyZSgnaGFzLWZsYWcnKTtcblxuY29uc3Qge2Vudn0gPSBwcm9jZXNzO1xuXG5sZXQgZm9yY2VDb2xvcjtcbmlmIChoYXNGbGFnKCduby1jb2xvcicpIHx8XG5cdGhhc0ZsYWcoJ25vLWNvbG9ycycpIHx8XG5cdGhhc0ZsYWcoJ2NvbG9yPWZhbHNlJykgfHxcblx0aGFzRmxhZygnY29sb3I9bmV2ZXInKSkge1xuXHRmb3JjZUNvbG9yID0gMDtcbn0gZWxzZSBpZiAoaGFzRmxhZygnY29sb3InKSB8fFxuXHRoYXNGbGFnKCdjb2xvcnMnKSB8fFxuXHRoYXNGbGFnKCdjb2xvcj10cnVlJykgfHxcblx0aGFzRmxhZygnY29sb3I9YWx3YXlzJykpIHtcblx0Zm9yY2VDb2xvciA9IDE7XG59XG5cbmlmICgnRk9SQ0VfQ09MT1InIGluIGVudikge1xuXHRpZiAoZW52LkZPUkNFX0NPTE9SID09PSAndHJ1ZScpIHtcblx0XHRmb3JjZUNvbG9yID0gMTtcblx0fSBlbHNlIGlmIChlbnYuRk9SQ0VfQ09MT1IgPT09ICdmYWxzZScpIHtcblx0XHRmb3JjZUNvbG9yID0gMDtcblx0fSBlbHNlIHtcblx0XHRmb3JjZUNvbG9yID0gZW52LkZPUkNFX0NPTE9SLmxlbmd0aCA9PT0gMCA/IDEgOiBNYXRoLm1pbihwYXJzZUludChlbnYuRk9SQ0VfQ09MT1IsIDEwKSwgMyk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdHJhbnNsYXRlTGV2ZWwobGV2ZWwpIHtcblx0aWYgKGxldmVsID09PSAwKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRsZXZlbCxcblx0XHRoYXNCYXNpYzogdHJ1ZSxcblx0XHRoYXMyNTY6IGxldmVsID49IDIsXG5cdFx0aGFzMTZtOiBsZXZlbCA+PSAzXG5cdH07XG59XG5cbmZ1bmN0aW9uIHN1cHBvcnRzQ29sb3IoaGF2ZVN0cmVhbSwgc3RyZWFtSXNUVFkpIHtcblx0aWYgKGZvcmNlQ29sb3IgPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGlmIChoYXNGbGFnKCdjb2xvcj0xNm0nKSB8fFxuXHRcdGhhc0ZsYWcoJ2NvbG9yPWZ1bGwnKSB8fFxuXHRcdGhhc0ZsYWcoJ2NvbG9yPXRydWVjb2xvcicpKSB7XG5cdFx0cmV0dXJuIDM7XG5cdH1cblxuXHRpZiAoaGFzRmxhZygnY29sb3I9MjU2JykpIHtcblx0XHRyZXR1cm4gMjtcblx0fVxuXG5cdGlmIChoYXZlU3RyZWFtICYmICFzdHJlYW1Jc1RUWSAmJiBmb3JjZUNvbG9yID09PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IG1pbiA9IGZvcmNlQ29sb3IgfHwgMDtcblxuXHRpZiAoZW52LlRFUk0gPT09ICdkdW1iJykge1xuXHRcdHJldHVybiBtaW47XG5cdH1cblxuXHRpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuXHRcdC8vIFdpbmRvd3MgMTAgYnVpbGQgMTA1ODYgaXMgdGhlIGZpcnN0IFdpbmRvd3MgcmVsZWFzZSB0aGF0IHN1cHBvcnRzIDI1NiBjb2xvcnMuXG5cdFx0Ly8gV2luZG93cyAxMCBidWlsZCAxNDkzMSBpcyB0aGUgZmlyc3QgcmVsZWFzZSB0aGF0IHN1cHBvcnRzIDE2bS9UcnVlQ29sb3IuXG5cdFx0Y29uc3Qgb3NSZWxlYXNlID0gb3MucmVsZWFzZSgpLnNwbGl0KCcuJyk7XG5cdFx0aWYgKFxuXHRcdFx0TnVtYmVyKG9zUmVsZWFzZVswXSkgPj0gMTAgJiZcblx0XHRcdE51bWJlcihvc1JlbGVhc2VbMl0pID49IDEwNTg2XG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTQ5MzEgPyAzIDogMjtcblx0XHR9XG5cblx0XHRyZXR1cm4gMTtcblx0fVxuXG5cdGlmICgnQ0knIGluIGVudikge1xuXHRcdGlmIChbJ1RSQVZJUycsICdDSVJDTEVDSScsICdBUFBWRVlPUicsICdHSVRMQUJfQ0knLCAnR0lUSFVCX0FDVElPTlMnLCAnQlVJTERLSVRFJ10uc29tZShzaWduID0+IHNpZ24gaW4gZW52KSB8fCBlbnYuQ0lfTkFNRSA9PT0gJ2NvZGVzaGlwJykge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1pbjtcblx0fVxuXG5cdGlmICgnVEVBTUNJVFlfVkVSU0lPTicgaW4gZW52KSB7XG5cdFx0cmV0dXJuIC9eKDlcXC4oMCpbMS05XVxcZCopXFwufFxcZHsyLH1cXC4pLy50ZXN0KGVudi5URUFNQ0lUWV9WRVJTSU9OKSA/IDEgOiAwO1xuXHR9XG5cblx0aWYgKGVudi5DT0xPUlRFUk0gPT09ICd0cnVlY29sb3InKSB7XG5cdFx0cmV0dXJuIDM7XG5cdH1cblxuXHRpZiAoJ1RFUk1fUFJPR1JBTScgaW4gZW52KSB7XG5cdFx0Y29uc3QgdmVyc2lvbiA9IHBhcnNlSW50KChlbnYuVEVSTV9QUk9HUkFNX1ZFUlNJT04gfHwgJycpLnNwbGl0KCcuJylbMF0sIDEwKTtcblxuXHRcdHN3aXRjaCAoZW52LlRFUk1fUFJPR1JBTSkge1xuXHRcdFx0Y2FzZSAnaVRlcm0uYXBwJzpcblx0XHRcdFx0cmV0dXJuIHZlcnNpb24gPj0gMyA/IDMgOiAyO1xuXHRcdFx0Y2FzZSAnQXBwbGVfVGVybWluYWwnOlxuXHRcdFx0XHRyZXR1cm4gMjtcblx0XHRcdC8vIE5vIGRlZmF1bHRcblx0XHR9XG5cdH1cblxuXHRpZiAoLy0yNTYoY29sb3IpPyQvaS50ZXN0KGVudi5URVJNKSkge1xuXHRcdHJldHVybiAyO1xuXHR9XG5cblx0aWYgKC9ec2NyZWVufF54dGVybXxednQxMDB8XnZ0MjIwfF5yeHZ0fGNvbG9yfGFuc2l8Y3lnd2lufGxpbnV4L2kudGVzdChlbnYuVEVSTSkpIHtcblx0XHRyZXR1cm4gMTtcblx0fVxuXG5cdGlmICgnQ09MT1JURVJNJyBpbiBlbnYpIHtcblx0XHRyZXR1cm4gMTtcblx0fVxuXG5cdHJldHVybiBtaW47XG59XG5cbmZ1bmN0aW9uIGdldFN1cHBvcnRMZXZlbChzdHJlYW0pIHtcblx0Y29uc3QgbGV2ZWwgPSBzdXBwb3J0c0NvbG9yKHN0cmVhbSwgc3RyZWFtICYmIHN0cmVhbS5pc1RUWSk7XG5cdHJldHVybiB0cmFuc2xhdGVMZXZlbChsZXZlbCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuXHRzdXBwb3J0c0NvbG9yOiBnZXRTdXBwb3J0TGV2ZWwsXG5cdHN0ZG91dDogdHJhbnNsYXRlTGV2ZWwoc3VwcG9ydHNDb2xvcih0cnVlLCB0dHkuaXNhdHR5KDEpKSksXG5cdHN0ZGVycjogdHJhbnNsYXRlTGV2ZWwoc3VwcG9ydHNDb2xvcih0cnVlLCB0dHkuaXNhdHR5KDIpKSlcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBzdHJpbmdSZXBsYWNlQWxsID0gKHN0cmluZywgc3Vic3RyaW5nLCByZXBsYWNlcikgPT4ge1xuXHRsZXQgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihzdWJzdHJpbmcpO1xuXHRpZiAoaW5kZXggPT09IC0xKSB7XG5cdFx0cmV0dXJuIHN0cmluZztcblx0fVxuXG5cdGNvbnN0IHN1YnN0cmluZ0xlbmd0aCA9IHN1YnN0cmluZy5sZW5ndGg7XG5cdGxldCBlbmRJbmRleCA9IDA7XG5cdGxldCByZXR1cm5WYWx1ZSA9ICcnO1xuXHRkbyB7XG5cdFx0cmV0dXJuVmFsdWUgKz0gc3RyaW5nLnN1YnN0cihlbmRJbmRleCwgaW5kZXggLSBlbmRJbmRleCkgKyBzdWJzdHJpbmcgKyByZXBsYWNlcjtcblx0XHRlbmRJbmRleCA9IGluZGV4ICsgc3Vic3RyaW5nTGVuZ3RoO1xuXHRcdGluZGV4ID0gc3RyaW5nLmluZGV4T2Yoc3Vic3RyaW5nLCBlbmRJbmRleCk7XG5cdH0gd2hpbGUgKGluZGV4ICE9PSAtMSk7XG5cblx0cmV0dXJuVmFsdWUgKz0gc3RyaW5nLnN1YnN0cihlbmRJbmRleCk7XG5cdHJldHVybiByZXR1cm5WYWx1ZTtcbn07XG5cbmNvbnN0IHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleCA9IChzdHJpbmcsIHByZWZpeCwgcG9zdGZpeCwgaW5kZXgpID0+IHtcblx0bGV0IGVuZEluZGV4ID0gMDtcblx0bGV0IHJldHVyblZhbHVlID0gJyc7XG5cdGRvIHtcblx0XHRjb25zdCBnb3RDUiA9IHN0cmluZ1tpbmRleCAtIDFdID09PSAnXFxyJztcblx0XHRyZXR1cm5WYWx1ZSArPSBzdHJpbmcuc3Vic3RyKGVuZEluZGV4LCAoZ290Q1IgPyBpbmRleCAtIDEgOiBpbmRleCkgLSBlbmRJbmRleCkgKyBwcmVmaXggKyAoZ290Q1IgPyAnXFxyXFxuJyA6ICdcXG4nKSArIHBvc3RmaXg7XG5cdFx0ZW5kSW5kZXggPSBpbmRleCArIDE7XG5cdFx0aW5kZXggPSBzdHJpbmcuaW5kZXhPZignXFxuJywgZW5kSW5kZXgpO1xuXHR9IHdoaWxlIChpbmRleCAhPT0gLTEpO1xuXG5cdHJldHVyblZhbHVlICs9IHN0cmluZy5zdWJzdHIoZW5kSW5kZXgpO1xuXHRyZXR1cm4gcmV0dXJuVmFsdWU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblx0c3RyaW5nUmVwbGFjZUFsbCxcblx0c3RyaW5nRW5jYXNlQ1JMRldpdGhGaXJzdEluZGV4XG59O1xuIiwgIid1c2Ugc3RyaWN0JztcbmNvbnN0IFRFTVBMQVRFX1JFR0VYID0gLyg/OlxcXFwodSg/OlthLWZcXGRdezR9fFxce1thLWZcXGRdezEsNn1cXH0pfHhbYS1mXFxkXXsyfXwuKSl8KD86XFx7KH4pPyhcXHcrKD86XFwoW14pXSpcXCkpPyg/OlxcLlxcdysoPzpcXChbXildKlxcKSk/KSopKD86WyBcXHRdfCg/PVxccj9cXG4pKSl8KFxcfSl8KCg/Oi58W1xcclxcblxcZl0pKz8pL2dpO1xuY29uc3QgU1RZTEVfUkVHRVggPSAvKD86XnxcXC4pKFxcdyspKD86XFwoKFteKV0qKVxcKSk/L2c7XG5jb25zdCBTVFJJTkdfUkVHRVggPSAvXihbJ1wiXSkoKD86XFxcXC58KD8hXFwxKVteXFxcXF0pKilcXDEkLztcbmNvbnN0IEVTQ0FQRV9SRUdFWCA9IC9cXFxcKHUoPzpbYS1mXFxkXXs0fXx7W2EtZlxcZF17MSw2fX0pfHhbYS1mXFxkXXsyfXwuKXwoW15cXFxcXSkvZ2k7XG5cbmNvbnN0IEVTQ0FQRVMgPSBuZXcgTWFwKFtcblx0WyduJywgJ1xcbiddLFxuXHRbJ3InLCAnXFxyJ10sXG5cdFsndCcsICdcXHQnXSxcblx0WydiJywgJ1xcYiddLFxuXHRbJ2YnLCAnXFxmJ10sXG5cdFsndicsICdcXHYnXSxcblx0WycwJywgJ1xcMCddLFxuXHRbJ1xcXFwnLCAnXFxcXCddLFxuXHRbJ2UnLCAnXFx1MDAxQiddLFxuXHRbJ2EnLCAnXFx1MDAwNyddXG5dKTtcblxuZnVuY3Rpb24gdW5lc2NhcGUoYykge1xuXHRjb25zdCB1ID0gY1swXSA9PT0gJ3UnO1xuXHRjb25zdCBicmFja2V0ID0gY1sxXSA9PT0gJ3snO1xuXG5cdGlmICgodSAmJiAhYnJhY2tldCAmJiBjLmxlbmd0aCA9PT0gNSkgfHwgKGNbMF0gPT09ICd4JyAmJiBjLmxlbmd0aCA9PT0gMykpIHtcblx0XHRyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjLnNsaWNlKDEpLCAxNikpO1xuXHR9XG5cblx0aWYgKHUgJiYgYnJhY2tldCkge1xuXHRcdHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChjLnNsaWNlKDIsIC0xKSwgMTYpKTtcblx0fVxuXG5cdHJldHVybiBFU0NBUEVTLmdldChjKSB8fCBjO1xufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3VtZW50cyhuYW1lLCBhcmd1bWVudHNfKSB7XG5cdGNvbnN0IHJlc3VsdHMgPSBbXTtcblx0Y29uc3QgY2h1bmtzID0gYXJndW1lbnRzXy50cmltKCkuc3BsaXQoL1xccyosXFxzKi9nKTtcblx0bGV0IG1hdGNoZXM7XG5cblx0Zm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MpIHtcblx0XHRjb25zdCBudW1iZXIgPSBOdW1iZXIoY2h1bmspO1xuXHRcdGlmICghTnVtYmVyLmlzTmFOKG51bWJlcikpIHtcblx0XHRcdHJlc3VsdHMucHVzaChudW1iZXIpO1xuXHRcdH0gZWxzZSBpZiAoKG1hdGNoZXMgPSBjaHVuay5tYXRjaChTVFJJTkdfUkVHRVgpKSkge1xuXHRcdFx0cmVzdWx0cy5wdXNoKG1hdGNoZXNbMl0ucmVwbGFjZShFU0NBUEVfUkVHRVgsIChtLCBlc2NhcGUsIGNoYXJhY3RlcikgPT4gZXNjYXBlID8gdW5lc2NhcGUoZXNjYXBlKSA6IGNoYXJhY3RlcikpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ2hhbGsgdGVtcGxhdGUgc3R5bGUgYXJndW1lbnQ6ICR7Y2h1bmt9IChpbiBzdHlsZSAnJHtuYW1lfScpYCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIHBhcnNlU3R5bGUoc3R5bGUpIHtcblx0U1RZTEVfUkVHRVgubGFzdEluZGV4ID0gMDtcblxuXHRjb25zdCByZXN1bHRzID0gW107XG5cdGxldCBtYXRjaGVzO1xuXG5cdHdoaWxlICgobWF0Y2hlcyA9IFNUWUxFX1JFR0VYLmV4ZWMoc3R5bGUpKSAhPT0gbnVsbCkge1xuXHRcdGNvbnN0IG5hbWUgPSBtYXRjaGVzWzFdO1xuXG5cdFx0aWYgKG1hdGNoZXNbMl0pIHtcblx0XHRcdGNvbnN0IGFyZ3MgPSBwYXJzZUFyZ3VtZW50cyhuYW1lLCBtYXRjaGVzWzJdKTtcblx0XHRcdHJlc3VsdHMucHVzaChbbmFtZV0uY29uY2F0KGFyZ3MpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0cy5wdXNoKFtuYW1lXSk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkU3R5bGUoY2hhbGssIHN0eWxlcykge1xuXHRjb25zdCBlbmFibGVkID0ge307XG5cblx0Zm9yIChjb25zdCBsYXllciBvZiBzdHlsZXMpIHtcblx0XHRmb3IgKGNvbnN0IHN0eWxlIG9mIGxheWVyLnN0eWxlcykge1xuXHRcdFx0ZW5hYmxlZFtzdHlsZVswXV0gPSBsYXllci5pbnZlcnNlID8gbnVsbCA6IHN0eWxlLnNsaWNlKDEpO1xuXHRcdH1cblx0fVxuXG5cdGxldCBjdXJyZW50ID0gY2hhbGs7XG5cdGZvciAoY29uc3QgW3N0eWxlTmFtZSwgc3R5bGVzXSBvZiBPYmplY3QuZW50cmllcyhlbmFibGVkKSkge1xuXHRcdGlmICghQXJyYXkuaXNBcnJheShzdHlsZXMpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoIShzdHlsZU5hbWUgaW4gY3VycmVudCkpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgVW5rbm93biBDaGFsayBzdHlsZTogJHtzdHlsZU5hbWV9YCk7XG5cdFx0fVxuXG5cdFx0Y3VycmVudCA9IHN0eWxlcy5sZW5ndGggPiAwID8gY3VycmVudFtzdHlsZU5hbWVdKC4uLnN0eWxlcykgOiBjdXJyZW50W3N0eWxlTmFtZV07XG5cdH1cblxuXHRyZXR1cm4gY3VycmVudDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSAoY2hhbGssIHRlbXBvcmFyeSkgPT4ge1xuXHRjb25zdCBzdHlsZXMgPSBbXTtcblx0Y29uc3QgY2h1bmtzID0gW107XG5cdGxldCBjaHVuayA9IFtdO1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtcGFyYW1zXG5cdHRlbXBvcmFyeS5yZXBsYWNlKFRFTVBMQVRFX1JFR0VYLCAobSwgZXNjYXBlQ2hhcmFjdGVyLCBpbnZlcnNlLCBzdHlsZSwgY2xvc2UsIGNoYXJhY3RlcikgPT4ge1xuXHRcdGlmIChlc2NhcGVDaGFyYWN0ZXIpIHtcblx0XHRcdGNodW5rLnB1c2godW5lc2NhcGUoZXNjYXBlQ2hhcmFjdGVyKSk7XG5cdFx0fSBlbHNlIGlmIChzdHlsZSkge1xuXHRcdFx0Y29uc3Qgc3RyaW5nID0gY2h1bmsuam9pbignJyk7XG5cdFx0XHRjaHVuayA9IFtdO1xuXHRcdFx0Y2h1bmtzLnB1c2goc3R5bGVzLmxlbmd0aCA9PT0gMCA/IHN0cmluZyA6IGJ1aWxkU3R5bGUoY2hhbGssIHN0eWxlcykoc3RyaW5nKSk7XG5cdFx0XHRzdHlsZXMucHVzaCh7aW52ZXJzZSwgc3R5bGVzOiBwYXJzZVN0eWxlKHN0eWxlKX0pO1xuXHRcdH0gZWxzZSBpZiAoY2xvc2UpIHtcblx0XHRcdGlmIChzdHlsZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignRm91bmQgZXh0cmFuZW91cyB9IGluIENoYWxrIHRlbXBsYXRlIGxpdGVyYWwnKTtcblx0XHRcdH1cblxuXHRcdFx0Y2h1bmtzLnB1c2goYnVpbGRTdHlsZShjaGFsaywgc3R5bGVzKShjaHVuay5qb2luKCcnKSkpO1xuXHRcdFx0Y2h1bmsgPSBbXTtcblx0XHRcdHN0eWxlcy5wb3AoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y2h1bmsucHVzaChjaGFyYWN0ZXIpO1xuXHRcdH1cblx0fSk7XG5cblx0Y2h1bmtzLnB1c2goY2h1bmsuam9pbignJykpO1xuXG5cdGlmIChzdHlsZXMubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IGVyck1lc3NhZ2UgPSBgQ2hhbGsgdGVtcGxhdGUgbGl0ZXJhbCBpcyBtaXNzaW5nICR7c3R5bGVzLmxlbmd0aH0gY2xvc2luZyBicmFja2V0JHtzdHlsZXMubGVuZ3RoID09PSAxID8gJycgOiAncyd9IChcXGB9XFxgKWA7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuXHR9XG5cblx0cmV0dXJuIGNodW5rcy5qb2luKCcnKTtcbn07XG4iLCAiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYW5zaVN0eWxlcyA9IHJlcXVpcmUoJ2Fuc2ktc3R5bGVzJyk7XG5jb25zdCB7c3Rkb3V0OiBzdGRvdXRDb2xvciwgc3RkZXJyOiBzdGRlcnJDb2xvcn0gPSByZXF1aXJlKCdzdXBwb3J0cy1jb2xvcicpO1xuY29uc3Qge1xuXHRzdHJpbmdSZXBsYWNlQWxsLFxuXHRzdHJpbmdFbmNhc2VDUkxGV2l0aEZpcnN0SW5kZXhcbn0gPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuY29uc3Qge2lzQXJyYXl9ID0gQXJyYXk7XG5cbi8vIGBzdXBwb3J0c0NvbG9yLmxldmVsYCBcdTIxOTIgYGFuc2lTdHlsZXMuY29sb3JbbmFtZV1gIG1hcHBpbmdcbmNvbnN0IGxldmVsTWFwcGluZyA9IFtcblx0J2Fuc2knLFxuXHQnYW5zaScsXG5cdCdhbnNpMjU2Jyxcblx0J2Fuc2kxNm0nXG5dO1xuXG5jb25zdCBzdHlsZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5jb25zdCBhcHBseU9wdGlvbnMgPSAob2JqZWN0LCBvcHRpb25zID0ge30pID0+IHtcblx0aWYgKG9wdGlvbnMubGV2ZWwgJiYgIShOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnMubGV2ZWwpICYmIG9wdGlvbnMubGV2ZWwgPj0gMCAmJiBvcHRpb25zLmxldmVsIDw9IDMpKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdUaGUgYGxldmVsYCBvcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgZnJvbSAwIHRvIDMnKTtcblx0fVxuXG5cdC8vIERldGVjdCBsZXZlbCBpZiBub3Qgc2V0IG1hbnVhbGx5XG5cdGNvbnN0IGNvbG9yTGV2ZWwgPSBzdGRvdXRDb2xvciA/IHN0ZG91dENvbG9yLmxldmVsIDogMDtcblx0b2JqZWN0LmxldmVsID0gb3B0aW9ucy5sZXZlbCA9PT0gdW5kZWZpbmVkID8gY29sb3JMZXZlbCA6IG9wdGlvbnMubGV2ZWw7XG59O1xuXG5jbGFzcyBDaGFsa0NsYXNzIHtcblx0Y29uc3RydWN0b3Iob3B0aW9ucykge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdHJ1Y3Rvci1yZXR1cm5cblx0XHRyZXR1cm4gY2hhbGtGYWN0b3J5KG9wdGlvbnMpO1xuXHR9XG59XG5cbmNvbnN0IGNoYWxrRmFjdG9yeSA9IG9wdGlvbnMgPT4ge1xuXHRjb25zdCBjaGFsayA9IHt9O1xuXHRhcHBseU9wdGlvbnMoY2hhbGssIG9wdGlvbnMpO1xuXG5cdGNoYWxrLnRlbXBsYXRlID0gKC4uLmFyZ3VtZW50c18pID0+IGNoYWxrVGFnKGNoYWxrLnRlbXBsYXRlLCAuLi5hcmd1bWVudHNfKTtcblxuXHRPYmplY3Quc2V0UHJvdG90eXBlT2YoY2hhbGssIENoYWxrLnByb3RvdHlwZSk7XG5cdE9iamVjdC5zZXRQcm90b3R5cGVPZihjaGFsay50ZW1wbGF0ZSwgY2hhbGspO1xuXG5cdGNoYWxrLnRlbXBsYXRlLmNvbnN0cnVjdG9yID0gKCkgPT4ge1xuXHRcdHRocm93IG5ldyBFcnJvcignYGNoYWxrLmNvbnN0cnVjdG9yKClgIGlzIGRlcHJlY2F0ZWQuIFVzZSBgbmV3IGNoYWxrLkluc3RhbmNlKClgIGluc3RlYWQuJyk7XG5cdH07XG5cblx0Y2hhbGsudGVtcGxhdGUuSW5zdGFuY2UgPSBDaGFsa0NsYXNzO1xuXG5cdHJldHVybiBjaGFsay50ZW1wbGF0ZTtcbn07XG5cbmZ1bmN0aW9uIENoYWxrKG9wdGlvbnMpIHtcblx0cmV0dXJuIGNoYWxrRmFjdG9yeShvcHRpb25zKTtcbn1cblxuZm9yIChjb25zdCBbc3R5bGVOYW1lLCBzdHlsZV0gb2YgT2JqZWN0LmVudHJpZXMoYW5zaVN0eWxlcykpIHtcblx0c3R5bGVzW3N0eWxlTmFtZV0gPSB7XG5cdFx0Z2V0KCkge1xuXHRcdFx0Y29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIodGhpcywgY3JlYXRlU3R5bGVyKHN0eWxlLm9wZW4sIHN0eWxlLmNsb3NlLCB0aGlzLl9zdHlsZXIpLCB0aGlzLl9pc0VtcHR5KTtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBzdHlsZU5hbWUsIHt2YWx1ZTogYnVpbGRlcn0pO1xuXHRcdFx0cmV0dXJuIGJ1aWxkZXI7XG5cdFx0fVxuXHR9O1xufVxuXG5zdHlsZXMudmlzaWJsZSA9IHtcblx0Z2V0KCkge1xuXHRcdGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRoaXMsIHRoaXMuX3N0eWxlciwgdHJ1ZSk7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd2aXNpYmxlJywge3ZhbHVlOiBidWlsZGVyfSk7XG5cdFx0cmV0dXJuIGJ1aWxkZXI7XG5cdH1cbn07XG5cbmNvbnN0IHVzZWRNb2RlbHMgPSBbJ3JnYicsICdoZXgnLCAna2V5d29yZCcsICdoc2wnLCAnaHN2JywgJ2h3YicsICdhbnNpJywgJ2Fuc2kyNTYnXTtcblxuZm9yIChjb25zdCBtb2RlbCBvZiB1c2VkTW9kZWxzKSB7XG5cdHN0eWxlc1ttb2RlbF0gPSB7XG5cdFx0Z2V0KCkge1xuXHRcdFx0Y29uc3Qge2xldmVsfSA9IHRoaXM7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3VtZW50c18pIHtcblx0XHRcdFx0Y29uc3Qgc3R5bGVyID0gY3JlYXRlU3R5bGVyKGFuc2lTdHlsZXMuY29sb3JbbGV2ZWxNYXBwaW5nW2xldmVsXV1bbW9kZWxdKC4uLmFyZ3VtZW50c18pLCBhbnNpU3R5bGVzLmNvbG9yLmNsb3NlLCB0aGlzLl9zdHlsZXIpO1xuXHRcdFx0XHRyZXR1cm4gY3JlYXRlQnVpbGRlcih0aGlzLCBzdHlsZXIsIHRoaXMuX2lzRW1wdHkpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH07XG59XG5cbmZvciAoY29uc3QgbW9kZWwgb2YgdXNlZE1vZGVscykge1xuXHRjb25zdCBiZ01vZGVsID0gJ2JnJyArIG1vZGVsWzBdLnRvVXBwZXJDYXNlKCkgKyBtb2RlbC5zbGljZSgxKTtcblx0c3R5bGVzW2JnTW9kZWxdID0ge1xuXHRcdGdldCgpIHtcblx0XHRcdGNvbnN0IHtsZXZlbH0gPSB0aGlzO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uICguLi5hcmd1bWVudHNfKSB7XG5cdFx0XHRcdGNvbnN0IHN0eWxlciA9IGNyZWF0ZVN0eWxlcihhbnNpU3R5bGVzLmJnQ29sb3JbbGV2ZWxNYXBwaW5nW2xldmVsXV1bbW9kZWxdKC4uLmFyZ3VtZW50c18pLCBhbnNpU3R5bGVzLmJnQ29sb3IuY2xvc2UsIHRoaXMuX3N0eWxlcik7XG5cdFx0XHRcdHJldHVybiBjcmVhdGVCdWlsZGVyKHRoaXMsIHN0eWxlciwgdGhpcy5faXNFbXB0eSk7XG5cdFx0XHR9O1xuXHRcdH1cblx0fTtcbn1cblxuY29uc3QgcHJvdG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcygoKSA9PiB7fSwge1xuXHQuLi5zdHlsZXMsXG5cdGxldmVsOiB7XG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRnZXQoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZ2VuZXJhdG9yLmxldmVsO1xuXHRcdH0sXG5cdFx0c2V0KGxldmVsKSB7XG5cdFx0XHR0aGlzLl9nZW5lcmF0b3IubGV2ZWwgPSBsZXZlbDtcblx0XHR9XG5cdH1cbn0pO1xuXG5jb25zdCBjcmVhdGVTdHlsZXIgPSAob3BlbiwgY2xvc2UsIHBhcmVudCkgPT4ge1xuXHRsZXQgb3BlbkFsbDtcblx0bGV0IGNsb3NlQWxsO1xuXHRpZiAocGFyZW50ID09PSB1bmRlZmluZWQpIHtcblx0XHRvcGVuQWxsID0gb3Blbjtcblx0XHRjbG9zZUFsbCA9IGNsb3NlO1xuXHR9IGVsc2Uge1xuXHRcdG9wZW5BbGwgPSBwYXJlbnQub3BlbkFsbCArIG9wZW47XG5cdFx0Y2xvc2VBbGwgPSBjbG9zZSArIHBhcmVudC5jbG9zZUFsbDtcblx0fVxuXG5cdHJldHVybiB7XG5cdFx0b3Blbixcblx0XHRjbG9zZSxcblx0XHRvcGVuQWxsLFxuXHRcdGNsb3NlQWxsLFxuXHRcdHBhcmVudFxuXHR9O1xufTtcblxuY29uc3QgY3JlYXRlQnVpbGRlciA9IChzZWxmLCBfc3R5bGVyLCBfaXNFbXB0eSkgPT4ge1xuXHRjb25zdCBidWlsZGVyID0gKC4uLmFyZ3VtZW50c18pID0+IHtcblx0XHRpZiAoaXNBcnJheShhcmd1bWVudHNfWzBdKSAmJiBpc0FycmF5KGFyZ3VtZW50c19bMF0ucmF3KSkge1xuXHRcdFx0Ly8gQ2FsbGVkIGFzIGEgdGVtcGxhdGUgbGl0ZXJhbCwgZm9yIGV4YW1wbGU6IGNoYWxrLnJlZGAyICsgMyA9IHtib2xkICR7MiszfX1gXG5cdFx0XHRyZXR1cm4gYXBwbHlTdHlsZShidWlsZGVyLCBjaGFsa1RhZyhidWlsZGVyLCAuLi5hcmd1bWVudHNfKSk7XG5cdFx0fVxuXG5cdFx0Ly8gU2luZ2xlIGFyZ3VtZW50IGlzIGhvdCBwYXRoLCBpbXBsaWNpdCBjb2VyY2lvbiBpcyBmYXN0ZXIgdGhhbiBhbnl0aGluZ1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1pbXBsaWNpdC1jb2VyY2lvblxuXHRcdHJldHVybiBhcHBseVN0eWxlKGJ1aWxkZXIsIChhcmd1bWVudHNfLmxlbmd0aCA9PT0gMSkgPyAoJycgKyBhcmd1bWVudHNfWzBdKSA6IGFyZ3VtZW50c18uam9pbignICcpKTtcblx0fTtcblxuXHQvLyBXZSBhbHRlciB0aGUgcHJvdG90eXBlIGJlY2F1c2Ugd2UgbXVzdCByZXR1cm4gYSBmdW5jdGlvbiwgYnV0IHRoZXJlIGlzXG5cdC8vIG5vIHdheSB0byBjcmVhdGUgYSBmdW5jdGlvbiB3aXRoIGEgZGlmZmVyZW50IHByb3RvdHlwZVxuXHRPYmplY3Quc2V0UHJvdG90eXBlT2YoYnVpbGRlciwgcHJvdG8pO1xuXG5cdGJ1aWxkZXIuX2dlbmVyYXRvciA9IHNlbGY7XG5cdGJ1aWxkZXIuX3N0eWxlciA9IF9zdHlsZXI7XG5cdGJ1aWxkZXIuX2lzRW1wdHkgPSBfaXNFbXB0eTtcblxuXHRyZXR1cm4gYnVpbGRlcjtcbn07XG5cbmNvbnN0IGFwcGx5U3R5bGUgPSAoc2VsZiwgc3RyaW5nKSA9PiB7XG5cdGlmIChzZWxmLmxldmVsIDw9IDAgfHwgIXN0cmluZykge1xuXHRcdHJldHVybiBzZWxmLl9pc0VtcHR5ID8gJycgOiBzdHJpbmc7XG5cdH1cblxuXHRsZXQgc3R5bGVyID0gc2VsZi5fc3R5bGVyO1xuXG5cdGlmIChzdHlsZXIgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBzdHJpbmc7XG5cdH1cblxuXHRjb25zdCB7b3BlbkFsbCwgY2xvc2VBbGx9ID0gc3R5bGVyO1xuXHRpZiAoc3RyaW5nLmluZGV4T2YoJ1xcdTAwMUInKSAhPT0gLTEpIHtcblx0XHR3aGlsZSAoc3R5bGVyICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdC8vIFJlcGxhY2UgYW55IGluc3RhbmNlcyBhbHJlYWR5IHByZXNlbnQgd2l0aCBhIHJlLW9wZW5pbmcgY29kZVxuXHRcdFx0Ly8gb3RoZXJ3aXNlIG9ubHkgdGhlIHBhcnQgb2YgdGhlIHN0cmluZyB1bnRpbCBzYWlkIGNsb3NpbmcgY29kZVxuXHRcdFx0Ly8gd2lsbCBiZSBjb2xvcmVkLCBhbmQgdGhlIHJlc3Qgd2lsbCBzaW1wbHkgYmUgJ3BsYWluJy5cblx0XHRcdHN0cmluZyA9IHN0cmluZ1JlcGxhY2VBbGwoc3RyaW5nLCBzdHlsZXIuY2xvc2UsIHN0eWxlci5vcGVuKTtcblxuXHRcdFx0c3R5bGVyID0gc3R5bGVyLnBhcmVudDtcblx0XHR9XG5cdH1cblxuXHQvLyBXZSBjYW4gbW92ZSBib3RoIG5leHQgYWN0aW9ucyBvdXQgb2YgbG9vcCwgYmVjYXVzZSByZW1haW5pbmcgYWN0aW9ucyBpbiBsb29wIHdvbid0IGhhdmVcblx0Ly8gYW55L3Zpc2libGUgZWZmZWN0IG9uIHBhcnRzIHdlIGFkZCBoZXJlLiBDbG9zZSB0aGUgc3R5bGluZyBiZWZvcmUgYSBsaW5lYnJlYWsgYW5kIHJlb3BlblxuXHQvLyBhZnRlciBuZXh0IGxpbmUgdG8gZml4IGEgYmxlZWQgaXNzdWUgb24gbWFjT1M6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaGFsay9jaGFsay9wdWxsLzkyXG5cdGNvbnN0IGxmSW5kZXggPSBzdHJpbmcuaW5kZXhPZignXFxuJyk7XG5cdGlmIChsZkluZGV4ICE9PSAtMSkge1xuXHRcdHN0cmluZyA9IHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleChzdHJpbmcsIGNsb3NlQWxsLCBvcGVuQWxsLCBsZkluZGV4KTtcblx0fVxuXG5cdHJldHVybiBvcGVuQWxsICsgc3RyaW5nICsgY2xvc2VBbGw7XG59O1xuXG5sZXQgdGVtcGxhdGU7XG5jb25zdCBjaGFsa1RhZyA9IChjaGFsaywgLi4uc3RyaW5ncykgPT4ge1xuXHRjb25zdCBbZmlyc3RTdHJpbmddID0gc3RyaW5ncztcblxuXHRpZiAoIWlzQXJyYXkoZmlyc3RTdHJpbmcpIHx8ICFpc0FycmF5KGZpcnN0U3RyaW5nLnJhdykpIHtcblx0XHQvLyBJZiBjaGFsaygpIHdhcyBjYWxsZWQgYnkgaXRzZWxmIG9yIHdpdGggYSBzdHJpbmcsXG5cdFx0Ly8gcmV0dXJuIHRoZSBzdHJpbmcgaXRzZWxmIGFzIGEgc3RyaW5nLlxuXHRcdHJldHVybiBzdHJpbmdzLmpvaW4oJyAnKTtcblx0fVxuXG5cdGNvbnN0IGFyZ3VtZW50c18gPSBzdHJpbmdzLnNsaWNlKDEpO1xuXHRjb25zdCBwYXJ0cyA9IFtmaXJzdFN0cmluZy5yYXdbMF1dO1xuXG5cdGZvciAobGV0IGkgPSAxOyBpIDwgZmlyc3RTdHJpbmcubGVuZ3RoOyBpKyspIHtcblx0XHRwYXJ0cy5wdXNoKFxuXHRcdFx0U3RyaW5nKGFyZ3VtZW50c19baSAtIDFdKS5yZXBsYWNlKC9be31cXFxcXS9nLCAnXFxcXCQmJyksXG5cdFx0XHRTdHJpbmcoZmlyc3RTdHJpbmcucmF3W2ldKVxuXHRcdCk7XG5cdH1cblxuXHRpZiAodGVtcGxhdGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRlbXBsYXRlID0gcmVxdWlyZSgnLi90ZW1wbGF0ZXMnKTtcblx0fVxuXG5cdHJldHVybiB0ZW1wbGF0ZShjaGFsaywgcGFydHMuam9pbignJykpO1xufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2hhbGsucHJvdG90eXBlLCBzdHlsZXMpO1xuXG5jb25zdCBjaGFsayA9IENoYWxrKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuY2hhbGsuc3VwcG9ydHNDb2xvciA9IHN0ZG91dENvbG9yO1xuY2hhbGsuc3RkZXJyID0gQ2hhbGsoe2xldmVsOiBzdGRlcnJDb2xvciA/IHN0ZGVyckNvbG9yLmxldmVsIDogMH0pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbmNoYWxrLnN0ZGVyci5zdXBwb3J0c0NvbG9yID0gc3RkZXJyQ29sb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gY2hhbGs7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG4vLy8gPHJlZmVyZW5jZSBsaWI9XCJlczIwMThcIi8+XG4vLy8gPHJlZmVyZW5jZSBsaWI9XCJkb21cIi8+XG4vLy8gPHJlZmVyZW5jZSB0eXBlcz1cIm5vZGVcIi8+XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCB0eXBlZEFycmF5VHlwZU5hbWVzID0gW1xuICAgICdJbnQ4QXJyYXknLFxuICAgICdVaW50OEFycmF5JyxcbiAgICAnVWludDhDbGFtcGVkQXJyYXknLFxuICAgICdJbnQxNkFycmF5JyxcbiAgICAnVWludDE2QXJyYXknLFxuICAgICdJbnQzMkFycmF5JyxcbiAgICAnVWludDMyQXJyYXknLFxuICAgICdGbG9hdDMyQXJyYXknLFxuICAgICdGbG9hdDY0QXJyYXknLFxuICAgICdCaWdJbnQ2NEFycmF5JyxcbiAgICAnQmlnVWludDY0QXJyYXknXG5dO1xuZnVuY3Rpb24gaXNUeXBlZEFycmF5TmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIHR5cGVkQXJyYXlUeXBlTmFtZXMuaW5jbHVkZXMobmFtZSk7XG59XG5jb25zdCBvYmplY3RUeXBlTmFtZXMgPSBbXG4gICAgJ0Z1bmN0aW9uJyxcbiAgICAnR2VuZXJhdG9yJyxcbiAgICAnQXN5bmNHZW5lcmF0b3InLFxuICAgICdHZW5lcmF0b3JGdW5jdGlvbicsXG4gICAgJ0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24nLFxuICAgICdBc3luY0Z1bmN0aW9uJyxcbiAgICAnT2JzZXJ2YWJsZScsXG4gICAgJ0FycmF5JyxcbiAgICAnQnVmZmVyJyxcbiAgICAnT2JqZWN0JyxcbiAgICAnUmVnRXhwJyxcbiAgICAnRGF0ZScsXG4gICAgJ0Vycm9yJyxcbiAgICAnTWFwJyxcbiAgICAnU2V0JyxcbiAgICAnV2Vha01hcCcsXG4gICAgJ1dlYWtTZXQnLFxuICAgICdBcnJheUJ1ZmZlcicsXG4gICAgJ1NoYXJlZEFycmF5QnVmZmVyJyxcbiAgICAnRGF0YVZpZXcnLFxuICAgICdQcm9taXNlJyxcbiAgICAnVVJMJyxcbiAgICAnSFRNTEVsZW1lbnQnLFxuICAgIC4uLnR5cGVkQXJyYXlUeXBlTmFtZXNcbl07XG5mdW5jdGlvbiBpc09iamVjdFR5cGVOYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gb2JqZWN0VHlwZU5hbWVzLmluY2x1ZGVzKG5hbWUpO1xufVxuY29uc3QgcHJpbWl0aXZlVHlwZU5hbWVzID0gW1xuICAgICdudWxsJyxcbiAgICAndW5kZWZpbmVkJyxcbiAgICAnc3RyaW5nJyxcbiAgICAnbnVtYmVyJyxcbiAgICAnYmlnaW50JyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ3N5bWJvbCdcbl07XG5mdW5jdGlvbiBpc1ByaW1pdGl2ZVR5cGVOYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gcHJpbWl0aXZlVHlwZU5hbWVzLmluY2x1ZGVzKG5hbWUpO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmZ1bmN0aW9uIGlzT2ZUeXBlKHR5cGUpIHtcbiAgICByZXR1cm4gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09IHR5cGU7XG59XG5jb25zdCB7IHRvU3RyaW5nIH0gPSBPYmplY3QucHJvdG90eXBlO1xuY29uc3QgZ2V0T2JqZWN0VHlwZSA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IG9iamVjdFR5cGVOYW1lID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpO1xuICAgIGlmICgvSFRNTFxcdytFbGVtZW50Ly50ZXN0KG9iamVjdFR5cGVOYW1lKSAmJiBpcy5kb21FbGVtZW50KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gJ0hUTUxFbGVtZW50JztcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0VHlwZU5hbWUob2JqZWN0VHlwZU5hbWUpKSB7XG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5jb25zdCBpc09iamVjdE9mVHlwZSA9ICh0eXBlKSA9PiAodmFsdWUpID0+IGdldE9iamVjdFR5cGUodmFsdWUpID09PSB0eXBlO1xuZnVuY3Rpb24gaXModmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICdudWxsJztcbiAgICB9XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIHJldHVybiAnc3RyaW5nJztcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgICByZXR1cm4gJ0Z1bmN0aW9uJztcbiAgICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgICAgIHJldHVybiAnYmlnaW50JztcbiAgICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICB9XG4gICAgaWYgKGlzLm9ic2VydmFibGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAnT2JzZXJ2YWJsZSc7XG4gICAgfVxuICAgIGlmIChpcy5hcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICdBcnJheSc7XG4gICAgfVxuICAgIGlmIChpcy5idWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAnQnVmZmVyJztcbiAgICB9XG4gICAgY29uc3QgdGFnVHlwZSA9IGdldE9iamVjdFR5cGUodmFsdWUpO1xuICAgIGlmICh0YWdUeXBlKSB7XG4gICAgICAgIHJldHVybiB0YWdUeXBlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdmFsdWUgaW5zdGFuY2VvZiBCb29sZWFuIHx8IHZhbHVlIGluc3RhbmNlb2YgTnVtYmVyKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1BsZWFzZSBkb25cXCd0IHVzZSBvYmplY3Qgd3JhcHBlcnMgZm9yIHByaW1pdGl2ZSB0eXBlcycpO1xuICAgIH1cbiAgICByZXR1cm4gJ09iamVjdCc7XG59XG5pcy51bmRlZmluZWQgPSBpc09mVHlwZSgndW5kZWZpbmVkJyk7XG5pcy5zdHJpbmcgPSBpc09mVHlwZSgnc3RyaW5nJyk7XG5jb25zdCBpc051bWJlclR5cGUgPSBpc09mVHlwZSgnbnVtYmVyJyk7XG5pcy5udW1iZXIgPSAodmFsdWUpID0+IGlzTnVtYmVyVHlwZSh2YWx1ZSkgJiYgIWlzLm5hbih2YWx1ZSk7XG5pcy5iaWdpbnQgPSBpc09mVHlwZSgnYmlnaW50Jyk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuaXMuZnVuY3Rpb25fID0gaXNPZlR5cGUoJ2Z1bmN0aW9uJyk7XG5pcy5udWxsXyA9ICh2YWx1ZSkgPT4gdmFsdWUgPT09IG51bGw7XG5pcy5jbGFzc18gPSAodmFsdWUpID0+IGlzLmZ1bmN0aW9uXyh2YWx1ZSkgJiYgdmFsdWUudG9TdHJpbmcoKS5zdGFydHNXaXRoKCdjbGFzcyAnKTtcbmlzLmJvb2xlYW4gPSAodmFsdWUpID0+IHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZTtcbmlzLnN5bWJvbCA9IGlzT2ZUeXBlKCdzeW1ib2wnKTtcbmlzLm51bWVyaWNTdHJpbmcgPSAodmFsdWUpID0+IGlzLnN0cmluZyh2YWx1ZSkgJiYgIWlzLmVtcHR5U3RyaW5nT3JXaGl0ZXNwYWNlKHZhbHVlKSAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih2YWx1ZSkpO1xuaXMuYXJyYXkgPSAodmFsdWUsIGFzc2VydGlvbikgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWlzLmZ1bmN0aW9uXyhhc3NlcnRpb24pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUuZXZlcnkoYXNzZXJ0aW9uKTtcbn07XG5pcy5idWZmZXIgPSAodmFsdWUpID0+IHsgdmFyIF9hLCBfYiwgX2MsIF9kOyByZXR1cm4gKF9kID0gKF9jID0gKF9iID0gKF9hID0gdmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb25zdHJ1Y3RvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlzQnVmZmVyKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChfYiwgdmFsdWUpKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiBmYWxzZTsgfTtcbmlzLm51bGxPclVuZGVmaW5lZCA9ICh2YWx1ZSkgPT4gaXMubnVsbF8odmFsdWUpIHx8IGlzLnVuZGVmaW5lZCh2YWx1ZSk7XG5pcy5vYmplY3QgPSAodmFsdWUpID0+ICFpcy5udWxsXyh2YWx1ZSkgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgaXMuZnVuY3Rpb25fKHZhbHVlKSk7XG5pcy5pdGVyYWJsZSA9ICh2YWx1ZSkgPT4geyB2YXIgX2E7IHJldHVybiBpcy5mdW5jdGlvbl8oKF9hID0gdmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVtTeW1ib2wuaXRlcmF0b3JdKTsgfTtcbmlzLmFzeW5jSXRlcmFibGUgPSAodmFsdWUpID0+IHsgdmFyIF9hOyByZXR1cm4gaXMuZnVuY3Rpb25fKChfYSA9IHZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKTsgfTtcbmlzLmdlbmVyYXRvciA9ICh2YWx1ZSkgPT4gaXMuaXRlcmFibGUodmFsdWUpICYmIGlzLmZ1bmN0aW9uXyh2YWx1ZS5uZXh0KSAmJiBpcy5mdW5jdGlvbl8odmFsdWUudGhyb3cpO1xuaXMuYXN5bmNHZW5lcmF0b3IgPSAodmFsdWUpID0+IGlzLmFzeW5jSXRlcmFibGUodmFsdWUpICYmIGlzLmZ1bmN0aW9uXyh2YWx1ZS5uZXh0KSAmJiBpcy5mdW5jdGlvbl8odmFsdWUudGhyb3cpO1xuaXMubmF0aXZlUHJvbWlzZSA9ICh2YWx1ZSkgPT4gaXNPYmplY3RPZlR5cGUoJ1Byb21pc2UnKSh2YWx1ZSk7XG5jb25zdCBoYXNQcm9taXNlQVBJID0gKHZhbHVlKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICByZXR1cm4gaXMuZnVuY3Rpb25fKChfYSA9IHZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGhlbikgJiZcbiAgICAgICAgaXMuZnVuY3Rpb25fKChfYiA9IHZhbHVlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2F0Y2gpO1xufTtcbmlzLnByb21pc2UgPSAodmFsdWUpID0+IGlzLm5hdGl2ZVByb21pc2UodmFsdWUpIHx8IGhhc1Byb21pc2VBUEkodmFsdWUpO1xuaXMuZ2VuZXJhdG9yRnVuY3Rpb24gPSBpc09iamVjdE9mVHlwZSgnR2VuZXJhdG9yRnVuY3Rpb24nKTtcbmlzLmFzeW5jR2VuZXJhdG9yRnVuY3Rpb24gPSAodmFsdWUpID0+IGdldE9iamVjdFR5cGUodmFsdWUpID09PSAnQXN5bmNHZW5lcmF0b3JGdW5jdGlvbic7XG5pcy5hc3luY0Z1bmN0aW9uID0gKHZhbHVlKSA9PiBnZXRPYmplY3RUeXBlKHZhbHVlKSA9PT0gJ0FzeW5jRnVuY3Rpb24nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucywgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuaXMuYm91bmRGdW5jdGlvbiA9ICh2YWx1ZSkgPT4gaXMuZnVuY3Rpb25fKHZhbHVlKSAmJiAhdmFsdWUuaGFzT3duUHJvcGVydHkoJ3Byb3RvdHlwZScpO1xuaXMucmVnRXhwID0gaXNPYmplY3RPZlR5cGUoJ1JlZ0V4cCcpO1xuaXMuZGF0ZSA9IGlzT2JqZWN0T2ZUeXBlKCdEYXRlJyk7XG5pcy5lcnJvciA9IGlzT2JqZWN0T2ZUeXBlKCdFcnJvcicpO1xuaXMubWFwID0gKHZhbHVlKSA9PiBpc09iamVjdE9mVHlwZSgnTWFwJykodmFsdWUpO1xuaXMuc2V0ID0gKHZhbHVlKSA9PiBpc09iamVjdE9mVHlwZSgnU2V0JykodmFsdWUpO1xuaXMud2Vha01hcCA9ICh2YWx1ZSkgPT4gaXNPYmplY3RPZlR5cGUoJ1dlYWtNYXAnKSh2YWx1ZSk7XG5pcy53ZWFrU2V0ID0gKHZhbHVlKSA9PiBpc09iamVjdE9mVHlwZSgnV2Vha1NldCcpKHZhbHVlKTtcbmlzLmludDhBcnJheSA9IGlzT2JqZWN0T2ZUeXBlKCdJbnQ4QXJyYXknKTtcbmlzLnVpbnQ4QXJyYXkgPSBpc09iamVjdE9mVHlwZSgnVWludDhBcnJheScpO1xuaXMudWludDhDbGFtcGVkQXJyYXkgPSBpc09iamVjdE9mVHlwZSgnVWludDhDbGFtcGVkQXJyYXknKTtcbmlzLmludDE2QXJyYXkgPSBpc09iamVjdE9mVHlwZSgnSW50MTZBcnJheScpO1xuaXMudWludDE2QXJyYXkgPSBpc09iamVjdE9mVHlwZSgnVWludDE2QXJyYXknKTtcbmlzLmludDMyQXJyYXkgPSBpc09iamVjdE9mVHlwZSgnSW50MzJBcnJheScpO1xuaXMudWludDMyQXJyYXkgPSBpc09iamVjdE9mVHlwZSgnVWludDMyQXJyYXknKTtcbmlzLmZsb2F0MzJBcnJheSA9IGlzT2JqZWN0T2ZUeXBlKCdGbG9hdDMyQXJyYXknKTtcbmlzLmZsb2F0NjRBcnJheSA9IGlzT2JqZWN0T2ZUeXBlKCdGbG9hdDY0QXJyYXknKTtcbmlzLmJpZ0ludDY0QXJyYXkgPSBpc09iamVjdE9mVHlwZSgnQmlnSW50NjRBcnJheScpO1xuaXMuYmlnVWludDY0QXJyYXkgPSBpc09iamVjdE9mVHlwZSgnQmlnVWludDY0QXJyYXknKTtcbmlzLmFycmF5QnVmZmVyID0gaXNPYmplY3RPZlR5cGUoJ0FycmF5QnVmZmVyJyk7XG5pcy5zaGFyZWRBcnJheUJ1ZmZlciA9IGlzT2JqZWN0T2ZUeXBlKCdTaGFyZWRBcnJheUJ1ZmZlcicpO1xuaXMuZGF0YVZpZXcgPSBpc09iamVjdE9mVHlwZSgnRGF0YVZpZXcnKTtcbmlzLmRpcmVjdEluc3RhbmNlT2YgPSAoaW5zdGFuY2UsIGNsYXNzXykgPT4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGluc3RhbmNlKSA9PT0gY2xhc3NfLnByb3RvdHlwZTtcbmlzLnVybEluc3RhbmNlID0gKHZhbHVlKSA9PiBpc09iamVjdE9mVHlwZSgnVVJMJykodmFsdWUpO1xuaXMudXJsU3RyaW5nID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKCFpcy5zdHJpbmcodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbmV3IFVSTCh2YWx1ZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn07XG4vLyBUT0RPOiBVc2UgdGhlIGBub3RgIG9wZXJhdG9yIHdpdGggYSB0eXBlIGd1YXJkIGhlcmUgd2hlbiBpdCdzIGF2YWlsYWJsZS5cbi8vIEV4YW1wbGU6IGBpcy50cnV0aHkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyAobm90IGZhbHNlIHwgbm90IDAgfCBub3QgJycgfCBub3QgdW5kZWZpbmVkIHwgbm90IG51bGwpID0+IEJvb2xlYW4odmFsdWUpO2BcbmlzLnRydXRoeSA9ICh2YWx1ZSkgPT4gQm9vbGVhbih2YWx1ZSk7XG4vLyBFeGFtcGxlOiBgaXMuZmFsc3kgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyAobm90IHRydWUgfCAwIHwgJycgfCB1bmRlZmluZWQgfCBudWxsKSA9PiBCb29sZWFuKHZhbHVlKTtgXG5pcy5mYWxzeSA9ICh2YWx1ZSkgPT4gIXZhbHVlO1xuaXMubmFuID0gKHZhbHVlKSA9PiBOdW1iZXIuaXNOYU4odmFsdWUpO1xuaXMucHJpbWl0aXZlID0gKHZhbHVlKSA9PiBpcy5udWxsXyh2YWx1ZSkgfHwgaXNQcmltaXRpdmVUeXBlTmFtZSh0eXBlb2YgdmFsdWUpO1xuaXMuaW50ZWdlciA9ICh2YWx1ZSkgPT4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSk7XG5pcy5zYWZlSW50ZWdlciA9ICh2YWx1ZSkgPT4gTnVtYmVyLmlzU2FmZUludGVnZXIodmFsdWUpO1xuaXMucGxhaW5PYmplY3QgPSAodmFsdWUpID0+IHtcbiAgICAvLyBGcm9tOiBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL2lzLXBsYWluLW9iai9ibG9iL21hc3Rlci9pbmRleC5qc1xuICAgIGlmICh0b1N0cmluZy5jYWxsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICAgIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pO1xufTtcbmlzLnR5cGVkQXJyYXkgPSAodmFsdWUpID0+IGlzVHlwZWRBcnJheU5hbWUoZ2V0T2JqZWN0VHlwZSh2YWx1ZSkpO1xuY29uc3QgaXNWYWxpZExlbmd0aCA9ICh2YWx1ZSkgPT4gaXMuc2FmZUludGVnZXIodmFsdWUpICYmIHZhbHVlID49IDA7XG5pcy5hcnJheUxpa2UgPSAodmFsdWUpID0+ICFpcy5udWxsT3JVbmRlZmluZWQodmFsdWUpICYmICFpcy5mdW5jdGlvbl8odmFsdWUpICYmIGlzVmFsaWRMZW5ndGgodmFsdWUubGVuZ3RoKTtcbmlzLmluUmFuZ2UgPSAodmFsdWUsIHJhbmdlKSA9PiB7XG4gICAgaWYgKGlzLm51bWJlcihyYW5nZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID49IE1hdGgubWluKDAsIHJhbmdlKSAmJiB2YWx1ZSA8PSBNYXRoLm1heChyYW5nZSwgMCk7XG4gICAgfVxuICAgIGlmIChpcy5hcnJheShyYW5nZSkgJiYgcmFuZ2UubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA+PSBNYXRoLm1pbiguLi5yYW5nZSkgJiYgdmFsdWUgPD0gTWF0aC5tYXgoLi4ucmFuZ2UpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIHJhbmdlOiAke0pTT04uc3RyaW5naWZ5KHJhbmdlKX1gKTtcbn07XG5jb25zdCBOT0RFX1RZUEVfRUxFTUVOVCA9IDE7XG5jb25zdCBET01fUFJPUEVSVElFU19UT19DSEVDSyA9IFtcbiAgICAnaW5uZXJIVE1MJyxcbiAgICAnb3duZXJEb2N1bWVudCcsXG4gICAgJ3N0eWxlJyxcbiAgICAnYXR0cmlidXRlcycsXG4gICAgJ25vZGVWYWx1ZSdcbl07XG5pcy5kb21FbGVtZW50ID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIGlzLm9iamVjdCh2YWx1ZSkgJiZcbiAgICAgICAgdmFsdWUubm9kZVR5cGUgPT09IE5PREVfVFlQRV9FTEVNRU5UICYmXG4gICAgICAgIGlzLnN0cmluZyh2YWx1ZS5ub2RlTmFtZSkgJiZcbiAgICAgICAgIWlzLnBsYWluT2JqZWN0KHZhbHVlKSAmJlxuICAgICAgICBET01fUFJPUEVSVElFU19UT19DSEVDSy5ldmVyeShwcm9wZXJ0eSA9PiBwcm9wZXJ0eSBpbiB2YWx1ZSk7XG59O1xuaXMub2JzZXJ2YWJsZSA9ICh2YWx1ZSkgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1leHRlbmQtbmF0aXZlL25vLXVzZS1leHRlbmQtbmF0aXZlXG4gICAgaWYgKHZhbHVlID09PSAoKF9iID0gKF9hID0gdmFsdWUpW1N5bWJvbC5vYnNlcnZhYmxlXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSAoKF9kID0gKF9jID0gdmFsdWUpWydAQG9ic2VydmFibGUnXSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLmNhbGwoX2MpKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbmlzLm5vZGVTdHJlYW0gPSAodmFsdWUpID0+IGlzLm9iamVjdCh2YWx1ZSkgJiYgaXMuZnVuY3Rpb25fKHZhbHVlLnBpcGUpICYmICFpcy5vYnNlcnZhYmxlKHZhbHVlKTtcbmlzLmluZmluaXRlID0gKHZhbHVlKSA9PiB2YWx1ZSA9PT0gSW5maW5pdHkgfHwgdmFsdWUgPT09IC1JbmZpbml0eTtcbmNvbnN0IGlzQWJzb2x1dGVNb2QyID0gKHJlbWFpbmRlcikgPT4gKHZhbHVlKSA9PiBpcy5pbnRlZ2VyKHZhbHVlKSAmJiBNYXRoLmFicyh2YWx1ZSAlIDIpID09PSByZW1haW5kZXI7XG5pcy5ldmVuSW50ZWdlciA9IGlzQWJzb2x1dGVNb2QyKDApO1xuaXMub2RkSW50ZWdlciA9IGlzQWJzb2x1dGVNb2QyKDEpO1xuaXMuZW1wdHlBcnJheSA9ICh2YWx1ZSkgPT4gaXMuYXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMDtcbmlzLm5vbkVtcHR5QXJyYXkgPSAodmFsdWUpID0+IGlzLmFycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwO1xuaXMuZW1wdHlTdHJpbmcgPSAodmFsdWUpID0+IGlzLnN0cmluZyh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xuLy8gVE9ETzogVXNlIGBub3QgJydgIHdoZW4gdGhlIGBub3RgIG9wZXJhdG9yIGlzIGF2YWlsYWJsZS5cbmlzLm5vbkVtcHR5U3RyaW5nID0gKHZhbHVlKSA9PiBpcy5zdHJpbmcodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDA7XG5jb25zdCBpc1doaXRlU3BhY2VTdHJpbmcgPSAodmFsdWUpID0+IGlzLnN0cmluZyh2YWx1ZSkgJiYgIS9cXFMvLnRlc3QodmFsdWUpO1xuaXMuZW1wdHlTdHJpbmdPcldoaXRlc3BhY2UgPSAodmFsdWUpID0+IGlzLmVtcHR5U3RyaW5nKHZhbHVlKSB8fCBpc1doaXRlU3BhY2VTdHJpbmcodmFsdWUpO1xuaXMuZW1wdHlPYmplY3QgPSAodmFsdWUpID0+IGlzLm9iamVjdCh2YWx1ZSkgJiYgIWlzLm1hcCh2YWx1ZSkgJiYgIWlzLnNldCh2YWx1ZSkgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcbi8vIFRPRE86IFVzZSBgbm90YCBvcGVyYXRvciBoZXJlIHRvIHJlbW92ZSBgTWFwYCBhbmQgYFNldGAgZnJvbSB0eXBlIGd1YXJkOlxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvcHVsbC8yOTMxN1xuaXMubm9uRW1wdHlPYmplY3QgPSAodmFsdWUpID0+IGlzLm9iamVjdCh2YWx1ZSkgJiYgIWlzLm1hcCh2YWx1ZSkgJiYgIWlzLnNldCh2YWx1ZSkgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA+IDA7XG5pcy5lbXB0eVNldCA9ICh2YWx1ZSkgPT4gaXMuc2V0KHZhbHVlKSAmJiB2YWx1ZS5zaXplID09PSAwO1xuaXMubm9uRW1wdHlTZXQgPSAodmFsdWUpID0+IGlzLnNldCh2YWx1ZSkgJiYgdmFsdWUuc2l6ZSA+IDA7XG5pcy5lbXB0eU1hcCA9ICh2YWx1ZSkgPT4gaXMubWFwKHZhbHVlKSAmJiB2YWx1ZS5zaXplID09PSAwO1xuaXMubm9uRW1wdHlNYXAgPSAodmFsdWUpID0+IGlzLm1hcCh2YWx1ZSkgJiYgdmFsdWUuc2l6ZSA+IDA7XG5jb25zdCBwcmVkaWNhdGVPbkFycmF5ID0gKG1ldGhvZCwgcHJlZGljYXRlLCB2YWx1ZXMpID0+IHtcbiAgICBpZiAoIWlzLmZ1bmN0aW9uXyhwcmVkaWNhdGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgcHJlZGljYXRlOiAke0pTT04uc3RyaW5naWZ5KHByZWRpY2F0ZSl9YCk7XG4gICAgfVxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbnVtYmVyIG9mIHZhbHVlcycpO1xuICAgIH1cbiAgICByZXR1cm4gbWV0aG9kLmNhbGwodmFsdWVzLCBwcmVkaWNhdGUpO1xufTtcbmlzLmFueSA9IChwcmVkaWNhdGUsIC4uLnZhbHVlcykgPT4ge1xuICAgIGNvbnN0IHByZWRpY2F0ZXMgPSBpcy5hcnJheShwcmVkaWNhdGUpID8gcHJlZGljYXRlIDogW3ByZWRpY2F0ZV07XG4gICAgcmV0dXJuIHByZWRpY2F0ZXMuc29tZShzaW5nbGVQcmVkaWNhdGUgPT4gcHJlZGljYXRlT25BcnJheShBcnJheS5wcm90b3R5cGUuc29tZSwgc2luZ2xlUHJlZGljYXRlLCB2YWx1ZXMpKTtcbn07XG5pcy5hbGwgPSAocHJlZGljYXRlLCAuLi52YWx1ZXMpID0+IHByZWRpY2F0ZU9uQXJyYXkoQXJyYXkucHJvdG90eXBlLmV2ZXJ5LCBwcmVkaWNhdGUsIHZhbHVlcyk7XG5jb25zdCBhc3NlcnRUeXBlID0gKGNvbmRpdGlvbiwgZGVzY3JpcHRpb24sIHZhbHVlKSA9PiB7XG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgdmFsdWUgd2hpY2ggaXMgXFxgJHtkZXNjcmlwdGlvbn1cXGAsIHJlY2VpdmVkIHZhbHVlIG9mIHR5cGUgXFxgJHtpcyh2YWx1ZSl9XFxgLmApO1xuICAgIH1cbn07XG5leHBvcnRzLmFzc2VydCA9IHtcbiAgICAvLyBVbmtub3ducy5cbiAgICB1bmRlZmluZWQ6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy51bmRlZmluZWQodmFsdWUpLCAndW5kZWZpbmVkJywgdmFsdWUpLFxuICAgIHN0cmluZzogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnN0cmluZyh2YWx1ZSksICdzdHJpbmcnLCB2YWx1ZSksXG4gICAgbnVtYmVyOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubnVtYmVyKHZhbHVlKSwgJ251bWJlcicsIHZhbHVlKSxcbiAgICBiaWdpbnQ6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5iaWdpbnQodmFsdWUpLCAnYmlnaW50JywgdmFsdWUpLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgZnVuY3Rpb25fOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZnVuY3Rpb25fKHZhbHVlKSwgJ0Z1bmN0aW9uJywgdmFsdWUpLFxuICAgIG51bGxfOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubnVsbF8odmFsdWUpLCAnbnVsbCcsIHZhbHVlKSxcbiAgICBjbGFzc186ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5jbGFzc18odmFsdWUpLCBcIkNsYXNzXCIgLyogY2xhc3NfICovLCB2YWx1ZSksXG4gICAgYm9vbGVhbjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmJvb2xlYW4odmFsdWUpLCAnYm9vbGVhbicsIHZhbHVlKSxcbiAgICBzeW1ib2w6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5zeW1ib2wodmFsdWUpLCAnc3ltYm9sJywgdmFsdWUpLFxuICAgIG51bWVyaWNTdHJpbmc6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5udW1lcmljU3RyaW5nKHZhbHVlKSwgXCJzdHJpbmcgd2l0aCBhIG51bWJlclwiIC8qIG51bWVyaWNTdHJpbmcgKi8sIHZhbHVlKSxcbiAgICBhcnJheTogKHZhbHVlLCBhc3NlcnRpb24pID0+IHtcbiAgICAgICAgY29uc3QgYXNzZXJ0ID0gYXNzZXJ0VHlwZTtcbiAgICAgICAgYXNzZXJ0KGlzLmFycmF5KHZhbHVlKSwgJ0FycmF5JywgdmFsdWUpO1xuICAgICAgICBpZiAoYXNzZXJ0aW9uKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGFzc2VydGlvbik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGJ1ZmZlcjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmJ1ZmZlcih2YWx1ZSksICdCdWZmZXInLCB2YWx1ZSksXG4gICAgbnVsbE9yVW5kZWZpbmVkOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubnVsbE9yVW5kZWZpbmVkKHZhbHVlKSwgXCJudWxsIG9yIHVuZGVmaW5lZFwiIC8qIG51bGxPclVuZGVmaW5lZCAqLywgdmFsdWUpLFxuICAgIG9iamVjdDogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLm9iamVjdCh2YWx1ZSksICdPYmplY3QnLCB2YWx1ZSksXG4gICAgaXRlcmFibGU6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5pdGVyYWJsZSh2YWx1ZSksIFwiSXRlcmFibGVcIiAvKiBpdGVyYWJsZSAqLywgdmFsdWUpLFxuICAgIGFzeW5jSXRlcmFibGU6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5hc3luY0l0ZXJhYmxlKHZhbHVlKSwgXCJBc3luY0l0ZXJhYmxlXCIgLyogYXN5bmNJdGVyYWJsZSAqLywgdmFsdWUpLFxuICAgIGdlbmVyYXRvcjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmdlbmVyYXRvcih2YWx1ZSksICdHZW5lcmF0b3InLCB2YWx1ZSksXG4gICAgYXN5bmNHZW5lcmF0b3I6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5hc3luY0dlbmVyYXRvcih2YWx1ZSksICdBc3luY0dlbmVyYXRvcicsIHZhbHVlKSxcbiAgICBuYXRpdmVQcm9taXNlOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubmF0aXZlUHJvbWlzZSh2YWx1ZSksIFwibmF0aXZlIFByb21pc2VcIiAvKiBuYXRpdmVQcm9taXNlICovLCB2YWx1ZSksXG4gICAgcHJvbWlzZTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnByb21pc2UodmFsdWUpLCAnUHJvbWlzZScsIHZhbHVlKSxcbiAgICBnZW5lcmF0b3JGdW5jdGlvbjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmdlbmVyYXRvckZ1bmN0aW9uKHZhbHVlKSwgJ0dlbmVyYXRvckZ1bmN0aW9uJywgdmFsdWUpLFxuICAgIGFzeW5jR2VuZXJhdG9yRnVuY3Rpb246ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5hc3luY0dlbmVyYXRvckZ1bmN0aW9uKHZhbHVlKSwgJ0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24nLCB2YWx1ZSksXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICBhc3luY0Z1bmN0aW9uOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuYXN5bmNGdW5jdGlvbih2YWx1ZSksICdBc3luY0Z1bmN0aW9uJywgdmFsdWUpLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgYm91bmRGdW5jdGlvbjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmJvdW5kRnVuY3Rpb24odmFsdWUpLCAnRnVuY3Rpb24nLCB2YWx1ZSksXG4gICAgcmVnRXhwOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMucmVnRXhwKHZhbHVlKSwgJ1JlZ0V4cCcsIHZhbHVlKSxcbiAgICBkYXRlOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZGF0ZSh2YWx1ZSksICdEYXRlJywgdmFsdWUpLFxuICAgIGVycm9yOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZXJyb3IodmFsdWUpLCAnRXJyb3InLCB2YWx1ZSksXG4gICAgbWFwOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubWFwKHZhbHVlKSwgJ01hcCcsIHZhbHVlKSxcbiAgICBzZXQ6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5zZXQodmFsdWUpLCAnU2V0JywgdmFsdWUpLFxuICAgIHdlYWtNYXA6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy53ZWFrTWFwKHZhbHVlKSwgJ1dlYWtNYXAnLCB2YWx1ZSksXG4gICAgd2Vha1NldDogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLndlYWtTZXQodmFsdWUpLCAnV2Vha1NldCcsIHZhbHVlKSxcbiAgICBpbnQ4QXJyYXk6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5pbnQ4QXJyYXkodmFsdWUpLCAnSW50OEFycmF5JywgdmFsdWUpLFxuICAgIHVpbnQ4QXJyYXk6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy51aW50OEFycmF5KHZhbHVlKSwgJ1VpbnQ4QXJyYXknLCB2YWx1ZSksXG4gICAgdWludDhDbGFtcGVkQXJyYXk6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy51aW50OENsYW1wZWRBcnJheSh2YWx1ZSksICdVaW50OENsYW1wZWRBcnJheScsIHZhbHVlKSxcbiAgICBpbnQxNkFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuaW50MTZBcnJheSh2YWx1ZSksICdJbnQxNkFycmF5JywgdmFsdWUpLFxuICAgIHVpbnQxNkFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMudWludDE2QXJyYXkodmFsdWUpLCAnVWludDE2QXJyYXknLCB2YWx1ZSksXG4gICAgaW50MzJBcnJheTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmludDMyQXJyYXkodmFsdWUpLCAnSW50MzJBcnJheScsIHZhbHVlKSxcbiAgICB1aW50MzJBcnJheTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnVpbnQzMkFycmF5KHZhbHVlKSwgJ1VpbnQzMkFycmF5JywgdmFsdWUpLFxuICAgIGZsb2F0MzJBcnJheTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmZsb2F0MzJBcnJheSh2YWx1ZSksICdGbG9hdDMyQXJyYXknLCB2YWx1ZSksXG4gICAgZmxvYXQ2NEFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZmxvYXQ2NEFycmF5KHZhbHVlKSwgJ0Zsb2F0NjRBcnJheScsIHZhbHVlKSxcbiAgICBiaWdJbnQ2NEFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuYmlnSW50NjRBcnJheSh2YWx1ZSksICdCaWdJbnQ2NEFycmF5JywgdmFsdWUpLFxuICAgIGJpZ1VpbnQ2NEFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuYmlnVWludDY0QXJyYXkodmFsdWUpLCAnQmlnVWludDY0QXJyYXknLCB2YWx1ZSksXG4gICAgYXJyYXlCdWZmZXI6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5hcnJheUJ1ZmZlcih2YWx1ZSksICdBcnJheUJ1ZmZlcicsIHZhbHVlKSxcbiAgICBzaGFyZWRBcnJheUJ1ZmZlcjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnNoYXJlZEFycmF5QnVmZmVyKHZhbHVlKSwgJ1NoYXJlZEFycmF5QnVmZmVyJywgdmFsdWUpLFxuICAgIGRhdGFWaWV3OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZGF0YVZpZXcodmFsdWUpLCAnRGF0YVZpZXcnLCB2YWx1ZSksXG4gICAgdXJsSW5zdGFuY2U6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy51cmxJbnN0YW5jZSh2YWx1ZSksICdVUkwnLCB2YWx1ZSksXG4gICAgdXJsU3RyaW5nOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMudXJsU3RyaW5nKHZhbHVlKSwgXCJzdHJpbmcgd2l0aCBhIFVSTFwiIC8qIHVybFN0cmluZyAqLywgdmFsdWUpLFxuICAgIHRydXRoeTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnRydXRoeSh2YWx1ZSksIFwidHJ1dGh5XCIgLyogdHJ1dGh5ICovLCB2YWx1ZSksXG4gICAgZmFsc3k6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5mYWxzeSh2YWx1ZSksIFwiZmFsc3lcIiAvKiBmYWxzeSAqLywgdmFsdWUpLFxuICAgIG5hbjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLm5hbih2YWx1ZSksIFwiTmFOXCIgLyogbmFuICovLCB2YWx1ZSksXG4gICAgcHJpbWl0aXZlOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMucHJpbWl0aXZlKHZhbHVlKSwgXCJwcmltaXRpdmVcIiAvKiBwcmltaXRpdmUgKi8sIHZhbHVlKSxcbiAgICBpbnRlZ2VyOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuaW50ZWdlcih2YWx1ZSksIFwiaW50ZWdlclwiIC8qIGludGVnZXIgKi8sIHZhbHVlKSxcbiAgICBzYWZlSW50ZWdlcjogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnNhZmVJbnRlZ2VyKHZhbHVlKSwgXCJpbnRlZ2VyXCIgLyogc2FmZUludGVnZXIgKi8sIHZhbHVlKSxcbiAgICBwbGFpbk9iamVjdDogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLnBsYWluT2JqZWN0KHZhbHVlKSwgXCJwbGFpbiBvYmplY3RcIiAvKiBwbGFpbk9iamVjdCAqLywgdmFsdWUpLFxuICAgIHR5cGVkQXJyYXk6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy50eXBlZEFycmF5KHZhbHVlKSwgXCJUeXBlZEFycmF5XCIgLyogdHlwZWRBcnJheSAqLywgdmFsdWUpLFxuICAgIGFycmF5TGlrZTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmFycmF5TGlrZSh2YWx1ZSksIFwiYXJyYXktbGlrZVwiIC8qIGFycmF5TGlrZSAqLywgdmFsdWUpLFxuICAgIGRvbUVsZW1lbnQ6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5kb21FbGVtZW50KHZhbHVlKSwgXCJIVE1MRWxlbWVudFwiIC8qIGRvbUVsZW1lbnQgKi8sIHZhbHVlKSxcbiAgICBvYnNlcnZhYmxlOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMub2JzZXJ2YWJsZSh2YWx1ZSksICdPYnNlcnZhYmxlJywgdmFsdWUpLFxuICAgIG5vZGVTdHJlYW06ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5ub2RlU3RyZWFtKHZhbHVlKSwgXCJOb2RlLmpzIFN0cmVhbVwiIC8qIG5vZGVTdHJlYW0gKi8sIHZhbHVlKSxcbiAgICBpbmZpbml0ZTogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmluZmluaXRlKHZhbHVlKSwgXCJpbmZpbml0ZSBudW1iZXJcIiAvKiBpbmZpbml0ZSAqLywgdmFsdWUpLFxuICAgIGVtcHR5QXJyYXk6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5lbXB0eUFycmF5KHZhbHVlKSwgXCJlbXB0eSBhcnJheVwiIC8qIGVtcHR5QXJyYXkgKi8sIHZhbHVlKSxcbiAgICBub25FbXB0eUFycmF5OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubm9uRW1wdHlBcnJheSh2YWx1ZSksIFwibm9uLWVtcHR5IGFycmF5XCIgLyogbm9uRW1wdHlBcnJheSAqLywgdmFsdWUpLFxuICAgIGVtcHR5U3RyaW5nOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZW1wdHlTdHJpbmcodmFsdWUpLCBcImVtcHR5IHN0cmluZ1wiIC8qIGVtcHR5U3RyaW5nICovLCB2YWx1ZSksXG4gICAgbm9uRW1wdHlTdHJpbmc6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5ub25FbXB0eVN0cmluZyh2YWx1ZSksIFwibm9uLWVtcHR5IHN0cmluZ1wiIC8qIG5vbkVtcHR5U3RyaW5nICovLCB2YWx1ZSksXG4gICAgZW1wdHlTdHJpbmdPcldoaXRlc3BhY2U6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5lbXB0eVN0cmluZ09yV2hpdGVzcGFjZSh2YWx1ZSksIFwiZW1wdHkgc3RyaW5nIG9yIHdoaXRlc3BhY2VcIiAvKiBlbXB0eVN0cmluZ09yV2hpdGVzcGFjZSAqLywgdmFsdWUpLFxuICAgIGVtcHR5T2JqZWN0OiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMuZW1wdHlPYmplY3QodmFsdWUpLCBcImVtcHR5IG9iamVjdFwiIC8qIGVtcHR5T2JqZWN0ICovLCB2YWx1ZSksXG4gICAgbm9uRW1wdHlPYmplY3Q6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5ub25FbXB0eU9iamVjdCh2YWx1ZSksIFwibm9uLWVtcHR5IG9iamVjdFwiIC8qIG5vbkVtcHR5T2JqZWN0ICovLCB2YWx1ZSksXG4gICAgZW1wdHlTZXQ6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5lbXB0eVNldCh2YWx1ZSksIFwiZW1wdHkgc2V0XCIgLyogZW1wdHlTZXQgKi8sIHZhbHVlKSxcbiAgICBub25FbXB0eVNldDogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLm5vbkVtcHR5U2V0KHZhbHVlKSwgXCJub24tZW1wdHkgc2V0XCIgLyogbm9uRW1wdHlTZXQgKi8sIHZhbHVlKSxcbiAgICBlbXB0eU1hcDogKHZhbHVlKSA9PiBhc3NlcnRUeXBlKGlzLmVtcHR5TWFwKHZhbHVlKSwgXCJlbXB0eSBtYXBcIiAvKiBlbXB0eU1hcCAqLywgdmFsdWUpLFxuICAgIG5vbkVtcHR5TWFwOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMubm9uRW1wdHlNYXAodmFsdWUpLCBcIm5vbi1lbXB0eSBtYXBcIiAvKiBub25FbXB0eU1hcCAqLywgdmFsdWUpLFxuICAgIC8vIE51bWJlcnMuXG4gICAgZXZlbkludGVnZXI6ICh2YWx1ZSkgPT4gYXNzZXJ0VHlwZShpcy5ldmVuSW50ZWdlcih2YWx1ZSksIFwiZXZlbiBpbnRlZ2VyXCIgLyogZXZlbkludGVnZXIgKi8sIHZhbHVlKSxcbiAgICBvZGRJbnRlZ2VyOiAodmFsdWUpID0+IGFzc2VydFR5cGUoaXMub2RkSW50ZWdlcih2YWx1ZSksIFwib2RkIGludGVnZXJcIiAvKiBvZGRJbnRlZ2VyICovLCB2YWx1ZSksXG4gICAgLy8gVHdvIGFyZ3VtZW50cy5cbiAgICBkaXJlY3RJbnN0YW5jZU9mOiAoaW5zdGFuY2UsIGNsYXNzXykgPT4gYXNzZXJ0VHlwZShpcy5kaXJlY3RJbnN0YW5jZU9mKGluc3RhbmNlLCBjbGFzc18pLCBcIlRcIiAvKiBkaXJlY3RJbnN0YW5jZU9mICovLCBpbnN0YW5jZSksXG4gICAgaW5SYW5nZTogKHZhbHVlLCByYW5nZSkgPT4gYXNzZXJ0VHlwZShpcy5pblJhbmdlKHZhbHVlLCByYW5nZSksIFwiaW4gcmFuZ2VcIiAvKiBpblJhbmdlICovLCB2YWx1ZSksXG4gICAgLy8gVmFyaWFkaWMgZnVuY3Rpb25zLlxuICAgIGFueTogKHByZWRpY2F0ZSwgLi4udmFsdWVzKSA9PiBhc3NlcnRUeXBlKGlzLmFueShwcmVkaWNhdGUsIC4uLnZhbHVlcyksIFwicHJlZGljYXRlIHJldHVybnMgdHJ1dGh5IGZvciBhbnkgdmFsdWVcIiAvKiBhbnkgKi8sIHZhbHVlcyksXG4gICAgYWxsOiAocHJlZGljYXRlLCAuLi52YWx1ZXMpID0+IGFzc2VydFR5cGUoaXMuYWxsKHByZWRpY2F0ZSwgLi4udmFsdWVzKSwgXCJwcmVkaWNhdGUgcmV0dXJucyB0cnV0aHkgZm9yIGFsbCB2YWx1ZXNcIiAvKiBhbGwgKi8sIHZhbHVlcylcbn07XG4vLyBTb21lIGZldyBrZXl3b3JkcyBhcmUgcmVzZXJ2ZWQsIGJ1dCB3ZSdsbCBwb3B1bGF0ZSB0aGVtIGZvciBOb2RlLmpzIHVzZXJzXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8yNTM2XG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhpcywge1xuICAgIGNsYXNzOiB7XG4gICAgICAgIHZhbHVlOiBpcy5jbGFzc19cbiAgICB9LFxuICAgIGZ1bmN0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBpcy5mdW5jdGlvbl9cbiAgICB9LFxuICAgIG51bGw6IHtcbiAgICAgICAgdmFsdWU6IGlzLm51bGxfXG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhleHBvcnRzLmFzc2VydCwge1xuICAgIGNsYXNzOiB7XG4gICAgICAgIHZhbHVlOiBleHBvcnRzLmFzc2VydC5jbGFzc19cbiAgICB9LFxuICAgIGZ1bmN0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBleHBvcnRzLmFzc2VydC5mdW5jdGlvbl9cbiAgICB9LFxuICAgIG51bGw6IHtcbiAgICAgICAgdmFsdWU6IGV4cG9ydHMuYXNzZXJ0Lm51bGxfXG4gICAgfVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpcztcbi8vIEZvciBDb21tb25KUyBkZWZhdWx0IGV4cG9ydCBzdXBwb3J0XG5tb2R1bGUuZXhwb3J0cyA9IGlzO1xubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IGlzO1xubW9kdWxlLmV4cG9ydHMuYXNzZXJ0ID0gZXhwb3J0cy5hc3NlcnQ7XG4iLCAie1xuICBcImdyaW5uaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzbWlsZVwiLCBcImhhcHB5XCIsIFwiam95XCIsIFwiOkRcIiwgXCJncmluXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZ3JpbWFjaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJncmltYWNlXCIsIFwidGVldGhcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTJDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJncmluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcInNtaWxlXCIsIFwiam95XCIsIFwia2F3YWlpXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiam95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJjcnlcIiwgXCJ0ZWFyc1wiLCBcIndlZXBcIiwgXCJoYXBweVwiLCBcImhhcHB5dGVhcnNcIiwgXCJoYWhhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicm9mbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwicm9sbGluZ1wiLCBcImZsb29yXCIsIFwibGF1Z2hpbmdcIiwgXCJsb2xcIiwgXCJoYWhhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQyM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicGFydHlpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImNlbGVicmF0aW9uXCIsIFwid29vaG9vXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ3M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic21pbGV5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcImpveVwiLCBcImhhaGFcIiwgXCI6RFwiLCBcIjopXCIsIFwic21pbGVcIiwgXCJmdW5ueVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMDNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNtaWxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcImpveVwiLCBcImZ1bm55XCIsIFwiaGFoYVwiLCBcImxhdWdoXCIsIFwibGlrZVwiLCBcIjpEXCIsIFwiOilcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTA0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzd2VhdF9zbWlsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiaG90XCIsIFwiaGFwcHlcIiwgXCJsYXVnaFwiLCBcInN3ZWF0XCIsIFwic21pbGVcIiwgXCJyZWxpZWZcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTA1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJsYXVnaGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYXBweVwiLCBcImpveVwiLCBcImxvbFwiLCBcInNhdGlzZmllZFwiLCBcImhhaGFcIiwgXCJmYWNlXCIsIFwiZ2xhZFwiLCBcIlhEXCIsIFwibGF1Z2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTA2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJpbm5vY2VudFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiYW5nZWxcIiwgXCJoZWF2ZW5cIiwgXCJoYWxvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid2lua1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiaGFwcHlcIiwgXCJtaXNjaGlldm91c1wiLCBcInNlY3JldFwiLCBcIjspXCIsIFwic21pbGVcIiwgXCJleWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTA5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJibHVzaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic21pbGVcIiwgXCJoYXBweVwiLCBcImZsdXNoZWRcIiwgXCJjcnVzaFwiLCBcImVtYmFycmFzc2VkXCIsIFwic2h5XCIsIFwiam95XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic2xpZ2h0bHlfc21pbGluZ19mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzbWlsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFNDJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInVwc2lkZV9kb3duX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImZsaXBwZWRcIiwgXCJzaWxseVwiLCBcInNtaWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmVsYXhlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiYmx1c2hcIiwgXCJtYXNzYWdlXCIsIFwiaGFwcGluZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYzQVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwieXVtXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhcHB5XCIsIFwiam95XCIsIFwidG9uZ3VlXCIsIFwic21pbGVcIiwgXCJmYWNlXCIsIFwic2lsbHlcIiwgXCJ5dW1teVwiLCBcIm5vbVwiLCBcImRlbGljaW91c1wiLCBcInNhdm91cmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInJlbGlldmVkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJyZWxheGVkXCIsIFwicGhld1wiLCBcIm1hc3NhZ2VcIiwgXCJoYXBwaW5lc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTBDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJoZWFydF9leWVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcInZhbGVudGluZXNcIiwgXCJpbmZhdHVhdGlvblwiLCBcImNydXNoXCIsIFwiaGVhcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTBEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzbWlsaW5nX2ZhY2Vfd2l0aF90aHJlZV9oZWFydHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiLCBcImluZmF0dWF0aW9uXCIsIFwiY3J1c2hcIiwgXCJoZWFydHNcIiwgXCJhZG9yZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpc3NpbmdfaGVhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiLCBcImluZmF0dWF0aW9uXCIsIFwia2lzc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpc3NpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcImxpa2VcIiwgXCJmYWNlXCIsIFwiM1wiLCBcInZhbGVudGluZXNcIiwgXCJpbmZhdHVhdGlvblwiLCBcImtpc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTE3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJraXNzaW5nX3NtaWxpbmdfZXllc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiLCBcImluZmF0dWF0aW9uXCIsIFwia2lzc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpc3NpbmdfY2xvc2VkX2V5ZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiLCBcImluZmF0dWF0aW9uXCIsIFwia2lzc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInN0dWNrX291dF90b25ndWVfd2lua2luZ19leWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInByYW5rXCIsIFwiY2hpbGRpc2hcIiwgXCJwbGF5ZnVsXCIsIFwibWlzY2hpZXZvdXNcIiwgXCJzbWlsZVwiLCBcIndpbmtcIiwgXCJ0b25ndWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTFDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ6YW55XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJnb29meVwiLCBcImNyYXp5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQyQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmFpc2VkX2V5ZWJyb3dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImRpc3RydXN0XCIsIFwic2NlcHRpY2lzbVwiLCBcImRpc2FwcHJvdmFsXCIsIFwiZGlzYmVsaWVmXCIsIFwic3VycHJpc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDI4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtb25vY2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzdHVmZnlcIiwgXCJ3ZWFsdGh5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic3R1Y2tfb3V0X3Rvbmd1ZV9jbG9zZWRfZXllc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwicHJhbmtcIiwgXCJwbGF5ZnVsXCIsIFwibWlzY2hpZXZvdXNcIiwgXCJzbWlsZVwiLCBcInRvbmd1ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInN0dWNrX291dF90b25ndWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInByYW5rXCIsIFwiY2hpbGRpc2hcIiwgXCJwbGF5ZnVsXCIsIFwibWlzY2hpZXZvdXNcIiwgXCJzbWlsZVwiLCBcInRvbmd1ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1vbmV5X21vdXRoX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInJpY2hcIiwgXCJkb2xsYXJcIiwgXCJtb25leVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm5lcmRfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwibmVyZHlcIiwgXCJnZWVrXCIsIFwiZG9ya1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInN1bmdsYXNzZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImNvb2xcIiwgXCJzbWlsZVwiLCBcInN1bW1lclwiLCBcImJlYWNoXCIsIFwic3VuZ2xhc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTBFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzdGFyX3N0cnVja1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic21pbGVcIiwgXCJzdGFycnlcIiwgXCJleWVzXCIsIFwiZ3Jpbm5pbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDI5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjbG93bl9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDIxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb3dib3lfaGF0X2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImNvd2dpcmxcIiwgXCJoYXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDIwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJodWdzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzbWlsZVwiLCBcImh1Z1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNtaXJrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzbWlsZVwiLCBcIm1lYW5cIiwgXCJwcmFua1wiLCBcInNtdWdcIiwgXCJzYXJjYXNtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibm9fbW91dGhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImhlbGxva2l0dHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTM2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJuZXV0cmFsX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaW5kaWZmZXJlbmNlXCIsIFwibWVoXCIsIFwiOnxcIiwgXCJuZXV0cmFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUxMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZXhwcmVzc2lvbmxlc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImluZGlmZmVyZW50XCIsIFwiLV8tXCIsIFwibWVoXCIsIFwiZGVhZHBhblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInVuYW11c2VkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImluZGlmZmVyZW5jZVwiLCBcImJvcmVkXCIsIFwic3RyYWlnaHQgZmFjZVwiLCBcInNlcmlvdXNcIiwgXCJzYXJjYXNtXCIsIFwidW5pbXByZXNzZWRcIiwgXCJza2VwdGljYWxcIiwgXCJkdWJpb3VzXCIsIFwic2lkZV9leWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTEyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyb2xsX2V5ZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImV5ZXJvbGxcIiwgXCJmcnVzdHJhdGVkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidGhpbmtpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImhtbW1cIiwgXCJ0aGlua1wiLCBcImNvbnNpZGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQxNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibHlpbmdfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwibGllXCIsIFwicGlub2NjaGlvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQyNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiaGFuZF9vdmVyX21vdXRoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJ3aG9vcHNcIiwgXCJzaG9ja1wiLCBcInN1cnByaXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQyRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic2h1c2hpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInF1aWV0XCIsIFwic2hoaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInN5bWJvbHNfb3Zlcl9tb3V0aFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic3dlYXJpbmdcIiwgXCJjdXJzaW5nXCIsIFwiY3Vzc2luZ1wiLCBcInByb2Zhbml0eVwiLCBcImV4cGxldGl2ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImV4cGxvZGluZ19oZWFkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzaG9ja2VkXCIsIFwibWluZFwiLCBcImJsb3duXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQyRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmx1c2hlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiYmx1c2hcIiwgXCJzaHlcIiwgXCJmbGF0dGVyZWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTMzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkaXNhcHBvaW50ZWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInNhZFwiLCBcInVwc2V0XCIsIFwiZGVwcmVzc2VkXCIsIFwiOihcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTFFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b3JyaWVkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJjb25jZXJuXCIsIFwibmVydm91c1wiLCBcIjooXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUxRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYW5ncnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFkXCIsIFwiZmFjZVwiLCBcImFubm95ZWRcIiwgXCJmcnVzdHJhdGVkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUyMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmFnZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmdyeVwiLCBcIm1hZFwiLCBcImhhdGVcIiwgXCJkZXNwaXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUyMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicGVuc2l2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic2FkXCIsIFwiZGVwcmVzc2VkXCIsIFwidXBzZXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTE0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb25mdXNlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiaW5kaWZmZXJlbmNlXCIsIFwiaHVoXCIsIFwid2VpcmRcIiwgXCJobW1tXCIsIFwiOi9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTE1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzbGlnaHRseV9mcm93bmluZ19mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJmcm93bmluZ1wiLCBcImRpc2FwcG9pbnRlZFwiLCBcInNhZFwiLCBcInVwc2V0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZnJvd25pbmdfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic2FkXCIsIFwidXBzZXRcIiwgXCJmcm93blwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MzlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBlcnNldmVyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic2lja1wiLCBcIm5vXCIsIFwidXBzZXRcIiwgXCJvb3BzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUyM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY29uZm91bmRlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiY29uZnVzZWRcIiwgXCJzaWNrXCIsIFwidW53ZWxsXCIsIFwib29wc1wiLCBcIjpTXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUxNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidGlyZWRfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWNrXCIsIFwid2hpbmVcIiwgXCJ1cHNldFwiLCBcImZydXN0cmF0ZWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTJCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3ZWFyeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwidGlyZWRcIiwgXCJzbGVlcHlcIiwgXCJzYWRcIiwgXCJmcnVzdHJhdGVkXCIsIFwidXBzZXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTI5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwbGVhZGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiYmVnZ2luZ1wiLCBcIm1lcmN5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ3QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidHJpdW1waFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiZ2FzXCIsIFwicGhld1wiLCBcInByb3VkXCIsIFwicHJpZGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTI0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJvcGVuX21vdXRoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzdXJwcmlzZVwiLCBcImltcHJlc3NlZFwiLCBcIndvd1wiLCBcIndob2FcIiwgXCI6T1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNjcmVhbVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwibXVuY2hcIiwgXCJzY2FyZWRcIiwgXCJvbWdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTMxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmZWFyZnVsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJzY2FyZWRcIiwgXCJ0ZXJyaWZpZWRcIiwgXCJuZXJ2b3VzXCIsIFwib29wc1wiLCBcImh1aFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNvbGRfc3dlYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcIm5lcnZvdXNcIiwgXCJzd2VhdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImh1c2hlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwid29vXCIsIFwic2hoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUyRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZnJvd25pbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImF3XCIsIFwid2hhdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImFuZ3Vpc2hlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic3R1bm5lZFwiLCBcIm5lcnZvdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjcnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInRlYXJzXCIsIFwic2FkXCIsIFwiZGVwcmVzc2VkXCIsIFwidXBzZXRcIiwgXCI6JyhcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTIyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkaXNhcHBvaW50ZWRfcmVsaWV2ZWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInBoZXdcIiwgXCJzd2VhdFwiLCBcIm5lcnZvdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTI1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkcm9vbGluZ19mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDI0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzbGVlcHlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInRpcmVkXCIsIFwicmVzdFwiLCBcIm5hcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInN3ZWF0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJob3RcIiwgXCJzYWRcIiwgXCJ0aXJlZFwiLCBcImV4ZXJjaXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUxM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiaG90XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJmZXZlcmlzaFwiLCBcImhlYXRcIiwgXCJyZWRcIiwgXCJzd2VhdGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNvbGRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImJsdWVcIiwgXCJmcmVlemluZ1wiLCBcImZyb3plblwiLCBcImZyb3N0Yml0ZVwiLCBcImljaWNsZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDc2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzb2JcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImNyeVwiLCBcInRlYXJzXCIsIFwic2FkXCIsIFwidXBzZXRcIiwgXCJkZXByZXNzZWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTJEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkaXp6eV9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwZW50XCIsIFwidW5jb25zY2lvdXNcIiwgXCJ4b3hcIiwgXCJkaXp6eVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImFzdG9uaXNoZWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInhveFwiLCBcInN1cnByaXNlZFwiLCBcInBvaXNvbmVkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiemlwcGVyX21vdXRoX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInNlYWxlZFwiLCBcInppcHBlclwiLCBcInNlY3JldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm5hdXNlYXRlZF9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJ2b21pdFwiLCBcImdyb3NzXCIsIFwiZ3JlZW5cIiwgXCJzaWNrXCIsIFwidGhyb3cgdXBcIiwgXCJpbGxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDIyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzbmVlemluZ19mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJnZXN1bmRoZWl0XCIsIFwic25lZXplXCIsIFwic2lja1wiLCBcImFsbGVyZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ2b21pdGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwic2lja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hc2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcInNpY2tcIiwgXCJpbGxcIiwgXCJkaXNlYXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFjZV93aXRoX3RoZXJtb21ldGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpY2tcIiwgXCJ0ZW1wZXJhdHVyZVwiLCBcInRoZXJtb21ldGVyXCIsIFwiY29sZFwiLCBcImZldmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQxMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFjZV93aXRoX2hlYWRfYmFuZGFnZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpbmp1cmVkXCIsIFwiY2x1bXN5XCIsIFwiYmFuZGFnZVwiLCBcImh1cnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDE1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b296eVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiZGl6enlcIiwgXCJpbnRveGljYXRlZFwiLCBcInRpcHN5XCIsIFwid2F2eVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENzRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNsZWVwaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhY2VcIiwgXCJ0aXJlZFwiLCBcInNsZWVweVwiLCBcIm5pZ2h0XCIsIFwienp6XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwienp6XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNsZWVweVwiLCBcInRpcmVkXCIsIFwiZHJlYW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0E0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb29wXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmtleVwiLCBcInNoaXRmYWNlXCIsIFwiZmFpbFwiLCBcInR1cmRcIiwgXCJzaGl0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic21pbGluZ19pbXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGV2aWxcIiwgXCJob3Juc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImltcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkZXZpbFwiLCBcImFuZ3J5XCIsIFwiaG9ybnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzdGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJqYXBhbmVzZV9vZ3JlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbnN0ZXJcIiwgXCJyZWRcIiwgXCJtYXNrXCIsIFwiaGFsbG93ZWVuXCIsIFwic2NhcnlcIiwgXCJjcmVlcHlcIiwgXCJkZXZpbFwiLCBcImRlbW9uXCIsIFwiamFwYW5lc2VcIiwgXCJvZ3JlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiamFwYW5lc2VfZ29ibGluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJlZFwiLCBcImV2aWxcIiwgXCJtYXNrXCIsIFwibW9uc3RlclwiLCBcInNjYXJ5XCIsIFwiY3JlZXB5XCIsIFwiamFwYW5lc2VcIiwgXCJnb2JsaW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzdBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJza3VsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkZWFkXCIsIFwic2tlbGV0b25cIiwgXCJjcmVlcHlcIiwgXCJkZWF0aFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImdob3N0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbGxvd2VlblwiLCBcInNwb29reVwiLCBcInNjYXJ5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYWxpZW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiVUZPXCIsIFwicGF1bFwiLCBcIndlaXJkXCIsIFwib3V0ZXJfc3BhY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzdEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyb2JvdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb21wdXRlclwiLCBcIm1hY2hpbmVcIiwgXCJib3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDE2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzbWlsZXlfY2F0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNhdHNcIiwgXCJoYXBweVwiLCBcInNtaWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic21pbGVfY2F0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNhdHNcIiwgXCJzbWlsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFMzhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImpveV9jYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiY2F0c1wiLCBcImhhaGFcIiwgXCJoYXBweVwiLCBcInRlYXJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiaGVhcnRfZXllc19jYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibG92ZVwiLCBcImxpa2VcIiwgXCJhZmZlY3Rpb25cIiwgXCJjYXRzXCIsIFwidmFsZW50aW5lc1wiLCBcImhlYXJ0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic21pcmtfY2F0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNhdHNcIiwgXCJzbWlya1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFM0NcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpc3NpbmdfY2F0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNhdHNcIiwgXCJraXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic2NyZWFtX2NhdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJjYXRzXCIsIFwibXVuY2hcIiwgXCJzY2FyZWRcIiwgXCJzY3JlYW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTQwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjcnlpbmdfY2F0X2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwidGVhcnNcIiwgXCJ3ZWVwXCIsIFwic2FkXCIsIFwiY2F0c1wiLCBcInVwc2V0XCIsIFwiY3J5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REUzRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicG91dGluZ19jYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiY2F0c1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFM0VcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBhbG1zX3VwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmRzXCIsIFwiZ2VzdHVyZVwiLCBcImN1cHBlZFwiLCBcInByYXllclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmFpc2VkX2hhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdlc3R1cmVcIiwgXCJob29yYXlcIiwgXCJ5ZWFcIiwgXCJjZWxlYnJhdGlvblwiLCBcImhhbmRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjbGFwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmRzXCIsIFwicHJhaXNlXCIsIFwiYXBwbGF1c2VcIiwgXCJjb25ncmF0c1wiLCBcInlheVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid2F2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYW5kc1wiLCBcImdlc3R1cmVcIiwgXCJnb29kYnllXCIsIFwic29sb25nXCIsIFwiZmFyZXdlbGxcIiwgXCJoZWxsb1wiLCBcImhpXCIsIFwicGFsbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY2FsbF9tZV9oYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmRzXCIsIFwiZ2VzdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiKzFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGh1bWJzdXBcIiwgXCJ5ZXNcIiwgXCJhd2Vzb21lXCIsIFwiZ29vZFwiLCBcImFncmVlXCIsIFwiYWNjZXB0XCIsIFwiY29vbFwiLCBcImhhbmRcIiwgXCJsaWtlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM0RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCItMVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aHVtYnNkb3duXCIsIFwibm9cIiwgXCJkaXNsaWtlXCIsIFwiaGFuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNEVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFjZXB1bmNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuZ3J5XCIsIFwidmlvbGVuY2VcIiwgXCJmaXN0XCIsIFwiaGl0XCIsIFwiYXR0YWNrXCIsIFwiaGFuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNEFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmlzdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaW5nZXJzXCIsIFwiaGFuZFwiLCBcImdyYXNwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjcwQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmaXN0X2xlZnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFuZFwiLCBcImZpc3RidW1wXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQxQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmaXN0X3JpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmRcIiwgXCJmaXN0YnVtcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaW5nZXJzXCIsIFwib2h5ZWFoXCIsIFwiaGFuZFwiLCBcInBlYWNlXCIsIFwidmljdG9yeVwiLCBcInR3b1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MENcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwib2tfaGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaW5nZXJzXCIsIFwibGltYnNcIiwgXCJwZXJmZWN0XCIsIFwib2tcIiwgXCJva2F5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM0Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyYWlzZWRfaGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaW5nZXJzXCIsIFwic3RvcFwiLCBcImhpZ2hmaXZlXCIsIFwicGFsbVwiLCBcImJhblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmFpc2VkX2JhY2tfb2ZfaGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaW5nZXJzXCIsIFwicmFpc2VkXCIsIFwiYmFja2hhbmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDFBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm9wZW5faGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmluZ2Vyc1wiLCBcImJ1dHRlcmZseVwiLCBcImhhbmRzXCIsIFwib3BlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibXVzY2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFybVwiLCBcImZsZXhcIiwgXCJoYW5kXCIsIFwic3VtbWVyXCIsIFwic3Ryb25nXCIsIFwiYmljZXBzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwcmF5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBsZWFzZVwiLCBcImhvcGVcIiwgXCJ3aXNoXCIsIFwibmFtYXN0ZVwiLCBcImhpZ2hmaXZlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmb290XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtpY2tcIiwgXCJzdG9tcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREQjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibGVnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtpY2tcIiwgXCJsaW1iXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERCNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJoYW5kc2hha2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWdyZWVtZW50XCIsIFwic2hha2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDFEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb2ludF91cFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYW5kXCIsIFwiZmluZ2Vyc1wiLCBcImRpcmVjdGlvblwiLCBcInVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYxRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb2ludF91cF8yXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZpbmdlcnNcIiwgXCJoYW5kXCIsIFwiZGlyZWN0aW9uXCIsIFwidXBcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzQ2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBvaW50X2Rvd25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmluZ2Vyc1wiLCBcImhhbmRcIiwgXCJkaXJlY3Rpb25cIiwgXCJkb3duXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM0N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb2ludF9sZWZ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRpcmVjdGlvblwiLCBcImZpbmdlcnNcIiwgXCJoYW5kXCIsIFwibGVmdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicG9pbnRfcmlnaHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmluZ2Vyc1wiLCBcImhhbmRcIiwgXCJkaXJlY3Rpb25cIiwgXCJyaWdodFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNDlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZnVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFuZFwiLCBcImZpbmdlcnNcIiwgXCJydWRlXCIsIFwibWlkZGxlXCIsIFwiZmxpcHBpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDk1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInJhaXNlZF9oYW5kX3dpdGhfZmluZ2Vyc19zcGxheWVkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhhbmRcIiwgXCJmaW5nZXJzXCIsIFwicGFsbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREOTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibG92ZV95b3VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFuZFwiLCBcImZpbmdlcnNcIiwgXCJnZXN0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQxRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtZXRhbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYW5kXCIsIFwiZmluZ2Vyc1wiLCBcImV2aWxfZXllXCIsIFwic2lnbl9vZl9ob3Juc1wiLCBcInJvY2tfb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDE4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNyb3NzZWRfZmluZ2Vyc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnb29kXCIsIFwibHVja3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDFFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInZ1bGNhbl9zYWx1dGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFuZFwiLCBcImZpbmdlcnNcIiwgXCJzcG9ja1wiLCBcInN0YXIgdHJla1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREOTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid3JpdGluZ19oYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvd2VyX2xlZnRfYmFsbHBvaW50X3BlblwiLCBcInN0YXRpb25lcnlcIiwgXCJ3cml0ZVwiLCBcImNvbXBvc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzBEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNlbGZpZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYW1lcmFcIiwgXCJwaG9uZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibmFpbF9jYXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJlYXV0eVwiLCBcIm1hbmljdXJlXCIsIFwiZmluZ2VyXCIsIFwiZmFzaGlvblwiLCBcIm5haWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzg1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImxpcHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibW91dGhcIiwgXCJraXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM0NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidG9vdGhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGVldGhcIiwgXCJkZW50aXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERCN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidG9uZ3VlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vdXRoXCIsIFwicGxheWZ1bFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNDVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImVhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwiaGVhclwiLCBcInNvdW5kXCIsIFwibGlzdGVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM0MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJub3NlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNtZWxsXCIsIFwic25pZmZcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzQzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImV5ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYWNlXCIsIFwibG9va1wiLCBcInNlZVwiLCBcIndhdGNoXCIsIFwic3RhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzQxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJleWVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvb2tcIiwgXCJ3YXRjaFwiLCBcInN0YWxrXCIsIFwicGVla1wiLCBcInNlZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImJyYWluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNtYXJ0XCIsIFwiaW50ZWxsaWdlbnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREUwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJidXN0X2luX3NpbGhvdWV0dGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widXNlclwiLCBcInBlcnNvblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYnVzdHNfaW5fc2lsaG91ZXR0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1c2VyXCIsIFwicGVyc29uXCIsIFwiaHVtYW5cIiwgXCJncm91cFwiLCBcInRlYW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzcGVha2luZ19oZWFkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInVzZXJcIiwgXCJwZXJzb25cIiwgXCJodW1hblwiLCBcInNpbmdcIiwgXCJzYXlcIiwgXCJ0YWxrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYmFieVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjaGlsZFwiLCBcImJveVwiLCBcImdpcmxcIiwgXCJ0b2RkbGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjaGlsZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnZW5kZXItbmV1dHJhbFwiLCBcInlvdW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFuXCIsIFwibWFsZVwiLCBcImd1eVwiLCBcInRlZW5hZ2VyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJnaXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcIndvbWFuXCIsIFwidGVlbmFnZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImFkdWx0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdlbmRlci1uZXV0cmFsXCIsIFwicGVyc29uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXVzdGFjaGVcIiwgXCJmYXRoZXJcIiwgXCJkYWRcIiwgXCJndXlcIiwgXCJjbGFzc3lcIiwgXCJzaXJcIiwgXCJtb3VzdGFjaGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImdpcmxzXCIsIFwibGFkeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYmxvbmRlX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwiZ2lybFwiLCBcImJsb25kZVwiLCBcInBlcnNvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNzFcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYmxvbmRlX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJtYWxlXCIsIFwiYm95XCIsIFwiYmxvbmRlXCIsIFwiZ3V5XCIsIFwicGVyc29uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJiZWFyZGVkX3BlcnNvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwZXJzb25cIiwgXCJiZXdoaXNrZXJlZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwib2xkZXJfYWR1bHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaHVtYW5cIiwgXCJlbGRlclwiLCBcInNlbmlvclwiLCBcImdlbmRlci1uZXV0cmFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJvbGRlcl9tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaHVtYW5cIiwgXCJtYWxlXCIsIFwibWVuXCIsIFwib2xkXCIsIFwiZWxkZXJcIiwgXCJzZW5pb3JcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzc0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm9sZGVyX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImh1bWFuXCIsIFwiZmVtYWxlXCIsIFwid29tZW5cIiwgXCJsYWR5XCIsIFwib2xkXCIsIFwiZWxkZXJcIiwgXCJzZW5pb3JcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzc1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl93aXRoX2d1YV9waV9tYW9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFsZVwiLCBcImJveVwiLCBcImNoaW5lc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzcyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3dpdGhfaGVhZHNjYXJmXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImhpamFiXCIsIFwibWFudGlsbGFcIiwgXCJ0aWNoZWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREQ1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3dpdGhfdHVyYmFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImluZGlhblwiLCBcImhpbmR1aXNtXCIsIFwiYXJhYnNcIiwgXCJ3b21hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNzNcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3dpdGhfdHVyYmFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hbGVcIiwgXCJpbmRpYW5cIiwgXCJoaW5kdWlzbVwiLCBcImFyYWJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb2xpY2V3b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3b21hblwiLCBcInBvbGljZVwiLCBcImxhd1wiLCBcImxlZ2FsXCIsIFwiZW5mb3JjZW1lbnRcIiwgXCJhcnJlc3RcIiwgXCI5MTFcIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzZFXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBvbGljZW1hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJwb2xpY2VcIiwgXCJsYXdcIiwgXCJsZWdhbFwiLCBcImVuZm9yY2VtZW50XCIsIFwiYXJyZXN0XCIsIFwiOTExXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb25zdHJ1Y3Rpb25fd29ya2VyX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImh1bWFuXCIsIFwid2lwXCIsIFwiYnVpbGRcIiwgXCJjb25zdHJ1Y3Rpb25cIiwgXCJ3b3JrZXJcIiwgXCJsYWJvclwiLCBcIndvbWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3N1x1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb25zdHJ1Y3Rpb25fd29ya2VyX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiaHVtYW5cIiwgXCJ3aXBcIiwgXCJndXlcIiwgXCJidWlsZFwiLCBcImNvbnN0cnVjdGlvblwiLCBcIndvcmtlclwiLCBcImxhYm9yXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJndWFyZHN3b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1a1wiLCBcImdiXCIsIFwiYnJpdGlzaFwiLCBcImZlbWFsZVwiLCBcInJveWFsXCIsIFwid29tYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzgyXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImd1YXJkc21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1a1wiLCBcImdiXCIsIFwiYnJpdGlzaFwiLCBcIm1hbGVcIiwgXCJndXlcIiwgXCJyb3lhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmVtYWxlX2RldGVjdGl2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJodW1hblwiLCBcInNweVwiLCBcImRldGVjdGl2ZVwiLCBcImZlbWFsZVwiLCBcIndvbWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ3NVx1RkUwRlx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYWxlX2RldGVjdGl2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJodW1hblwiLCBcInNweVwiLCBcImRldGVjdGl2ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5faGVhbHRoX3dvcmtlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N0b3JcIiwgXCJudXJzZVwiLCBcInRoZXJhcGlzdFwiLCBcImhlYWx0aGNhcmVcIiwgXCJ3b21hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1MjY5NVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5faGVhbHRoX3dvcmtlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N0b3JcIiwgXCJudXJzZVwiLCBcInRoZXJhcGlzdFwiLCBcImhlYWx0aGNhcmVcIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdTI2OTVcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fZmFybWVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJhbmNoZXJcIiwgXCJnYXJkZW5lclwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNDXHVERjNFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9mYXJtZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmFuY2hlclwiLCBcImdhcmRlbmVyXCIsIFwibWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNDXHVERjNFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX2Nvb2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hlZlwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNDXHVERjczXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9jb29rXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNoZWZcIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0NcdURGNzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fc3R1ZGVudFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJncmFkdWF0ZVwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNDXHVERjkzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9zdHVkZW50XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdyYWR1YXRlXCIsIFwibWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNDXHVERjkzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3NpbmdlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyb2Nrc3RhclwiLCBcImVudGVydGFpbmVyXCIsIFwid29tYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0NcdURGQTRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3NpbmdlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyb2Nrc3RhclwiLCBcImVudGVydGFpbmVyXCIsIFwibWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNDXHVERkE0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3RlYWNoZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaW5zdHJ1Y3RvclwiLCBcInByb2Zlc3NvclwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNDXHVERkVCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl90ZWFjaGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImluc3RydWN0b3JcIiwgXCJwcm9mZXNzb3JcIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0NcdURGRUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fZmFjdG9yeV93b3JrZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXNzZW1ibHlcIiwgXCJpbmR1c3RyaWFsXCIsIFwid29tYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0NcdURGRURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2ZhY3Rvcnlfd29ya2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFzc2VtYmx5XCIsIFwiaW5kdXN0cmlhbFwiLCBcIm1hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzQ1x1REZFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbl90ZWNobm9sb2dpc3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY29kZXJcIiwgXCJkZXZlbG9wZXJcIiwgXCJlbmdpbmVlclwiLCBcInByb2dyYW1tZXJcIiwgXCJzb2Z0d2FyZVwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIiwgXCJsYXB0b3BcIiwgXCJjb21wdXRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDQkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3RlY2hub2xvZ2lzdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb2RlclwiLCBcImRldmVsb3BlclwiLCBcImVuZ2luZWVyXCIsIFwicHJvZ3JhbW1lclwiLCBcInNvZnR3YXJlXCIsIFwibWFuXCIsIFwiaHVtYW5cIiwgXCJsYXB0b3BcIiwgXCJjb21wdXRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDQkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fb2ZmaWNlX3dvcmtlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidXNpbmVzc1wiLCBcIm1hbmFnZXJcIiwgXCJ3b21hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1RENCQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fb2ZmaWNlX3dvcmtlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidXNpbmVzc1wiLCBcIm1hbmFnZXJcIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDQkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fbWVjaGFuaWNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGx1bWJlclwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIiwgXCJ3cmVuY2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNEXHVERDI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9tZWNoYW5pY1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbHVtYmVyXCIsIFwibWFuXCIsIFwiaHVtYW5cIiwgXCJ3cmVuY2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVERDI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3NjaWVudGlzdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiaW9sb2dpc3RcIiwgXCJjaGVtaXN0XCIsIFwiZW5naW5lZXJcIiwgXCJwaHlzaWNpc3RcIiwgXCJ3b21hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REQyQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fc2NpZW50aXN0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJpb2xvZ2lzdFwiLCBcImNoZW1pc3RcIiwgXCJlbmdpbmVlclwiLCBcInBoeXNpY2lzdFwiLCBcIm1hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REQyQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbl9hcnRpc3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFpbnRlclwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNDXHVERkE4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9hcnRpc3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFpbnRlclwiLCBcIm1hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzQ1x1REZBOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbl9maXJlZmlnaHRlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaXJlbWFuXCIsIFwid29tYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURFOTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2ZpcmVmaWdodGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZpcmVtYW5cIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURFOTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fcGlsb3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXZpYXRvclwiLCBcInBsYW5lXCIsIFwid29tYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdTI3MDhcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3BpbG90XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImF2aWF0b3JcIiwgXCJwbGFuZVwiLCBcIm1hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1MjcwOFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbl9hc3Ryb25hdXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BhY2VcIiwgXCJyb2NrZXRcIiwgXCJ3b21hblwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REU4MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fYXN0cm9uYXV0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwYWNlXCIsIFwicm9ja2V0XCIsIFwibWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVERTgwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX2p1ZGdlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImp1c3RpY2VcIiwgXCJjb3VydFwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHUyNjk2XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9qdWRnZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqdXN0aWNlXCIsIFwiY291cnRcIiwgXCJtYW5cIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdTI2OTZcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fc3VwZXJoZXJvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwiZ29vZFwiLCBcImhlcm9pbmVcIiwgXCJzdXBlcnBvd2Vyc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREQjhcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3N1cGVyaGVyb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJtYWxlXCIsIFwiZ29vZFwiLCBcImhlcm9cIiwgXCJzdXBlcnBvd2Vyc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREQjhcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fc3VwZXJ2aWxsYWluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwiZXZpbFwiLCBcImJhZFwiLCBcImNyaW1pbmFsXCIsIFwiaGVyb2luZVwiLCBcInN1cGVycG93ZXJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERCOVx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fc3VwZXJ2aWxsYWluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hblwiLCBcIm1hbGVcIiwgXCJldmlsXCIsIFwiYmFkXCIsIFwiY3JpbWluYWxcIiwgXCJoZXJvXCIsIFwic3VwZXJwb3dlcnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREI5XHUyMDBEXHUyNjQyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1yc19jbGF1c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3b21hblwiLCBcImZlbWFsZVwiLCBcInhtYXNcIiwgXCJtb3RoZXIgY2hyaXN0bWFzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJzYW50YVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZXN0aXZhbFwiLCBcIm1hblwiLCBcIm1hbGVcIiwgXCJ4bWFzXCIsIFwiZmF0aGVyIGNocmlzdG1hc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGODVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic29yY2VyZXNzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwibWFnZVwiLCBcIndpdGNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREOVx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3aXphcmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFuXCIsIFwibWFsZVwiLCBcIm1hZ2VcIiwgXCJzb3JjZXJlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDlcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fZWxmXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERERFx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fZWxmXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hblwiLCBcIm1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREREXHUyMDBEXHUyNjQyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX3ZhbXBpcmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERERCXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl92YW1waXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hblwiLCBcIm1hbGVcIiwgXCJkcmFjdWxhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREQlx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbl96b21iaWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tYW5cIiwgXCJmZW1hbGVcIiwgXCJ1bmRlYWRcIiwgXCJ3YWxraW5nIGRlYWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERERGXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fem9tYmllXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hblwiLCBcIm1hbGVcIiwgXCJkcmFjdWxhXCIsIFwidW5kZWFkXCIsIFwid2Fsa2luZyBkZWFkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERERlx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fZ2VuaWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERERFXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYW5fZ2VuaWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFuXCIsIFwibWFsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREREVcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1lcm1haWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tYW5cIiwgXCJmZW1hbGVcIiwgXCJtZXJ3b21hblwiLCBcImFyaWVsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREQ1x1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtZXJtYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFuXCIsIFwibWFsZVwiLCBcInRyaXRvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERENcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fZmFpcnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERERBXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbl9mYWlyeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREQVx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJhbmdlbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoZWF2ZW5cIiwgXCJ3aW5nc1wiLCBcImhhbG9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzdDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInByZWduYW50X3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhYnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDMwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImJyZWFzdGZlZWRpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibnVyc2luZ1wiLCBcImJhYnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDMxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInByaW5jZXNzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdpcmxcIiwgXCJ3b21hblwiLCBcImZlbWFsZVwiLCBcImJsb25kXCIsIFwiY3Jvd25cIiwgXCJyb3lhbFwiLCBcInF1ZWVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwcmluY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm95XCIsIFwibWFuXCIsIFwibWFsZVwiLCBcImNyb3duXCIsIFwicm95YWxcIiwgXCJraW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJicmlkZV93aXRoX3ZlaWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY291cGxlXCIsIFwibWFycmlhZ2VcIiwgXCJ3ZWRkaW5nXCIsIFwid29tYW5cIiwgXCJicmlkZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2luX3R1eGVkb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb3VwbGVcIiwgXCJtYXJyaWFnZVwiLCBcIndlZGRpbmdcIiwgXCJncm9vbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicnVubmluZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3b21hblwiLCBcIndhbGtpbmdcIiwgXCJleGVyY2lzZVwiLCBcInJhY2VcIiwgXCJydW5uaW5nXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDM1x1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJydW5uaW5nX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJ3YWxraW5nXCIsIFwiZXhlcmNpc2VcIiwgXCJyYWNlXCIsIFwicnVubmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid2Fsa2luZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJodW1hblwiLCBcImZlZXRcIiwgXCJzdGVwc1wiLCBcIndvbWFuXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVCNlx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3YWxraW5nX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJodW1hblwiLCBcImZlZXRcIiwgXCJzdGVwc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZGFuY2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImdpcmxcIiwgXCJ3b21hblwiLCBcImZ1blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2RhbmNpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFsZVwiLCBcImJveVwiLCBcImZ1blwiLCBcImRhbmNlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREN0FcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZGFuY2luZ193b21lblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZW1hbGVcIiwgXCJidW5ueVwiLCBcIndvbWVuXCIsIFwiZ2lybHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkYW5jaW5nX21lblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYnVubnlcIiwgXCJtZW5cIiwgXCJib3lzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2Rlx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY291cGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhaXJcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImxvdmVcIiwgXCJkYXRlXCIsIFwiZGF0aW5nXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcInZhbGVudGluZXNcIiwgXCJtYXJyaWFnZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInR3b19tZW5faG9sZGluZ19oYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYWlyXCIsIFwiY291cGxlXCIsIFwibG92ZVwiLCBcImxpa2VcIiwgXCJicm9tYW5jZVwiLCBcImZyaWVuZHNoaXBcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInR3b193b21lbl9ob2xkaW5nX2hhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhaXJcIiwgXCJmcmllbmRzaGlwXCIsIFwiY291cGxlXCIsIFwibG92ZVwiLCBcImxpa2VcIiwgXCJmZW1hbGVcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImJvd2luZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3b21hblwiLCBcImZlbWFsZVwiLCBcImdpcmxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTQ3XHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImJvd2luZ19tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFuXCIsIFwibWFsZVwiLCBcImJveVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFNDdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2ZhY2VwYWxtaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hblwiLCBcIm1hbGVcIiwgXCJib3lcIiwgXCJkaXNiZWxpZWZcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDI2XHUyMDBEXHUyNjQyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuX2ZhY2VwYWxtaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwiZ2lybFwiLCBcImRpc2JlbGllZlwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMjZcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5fc2hydWdnaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwiZ2lybFwiLCBcImNvbmZ1c2VkXCIsIFwiaW5kaWZmZXJlbnRcIiwgXCJkb3VidFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX3NocnVnZ2luZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJtYWxlXCIsIFwiYm95XCIsIFwiY29uZnVzZWRcIiwgXCJpbmRpZmZlcmVudFwiLCBcImRvdWJ0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzN1x1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ0aXBwaW5nX2hhbmRfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmVtYWxlXCIsIFwiZ2lybFwiLCBcIndvbWFuXCIsIFwiaHVtYW5cIiwgXCJpbmZvcm1hdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidGlwcGluZ19oYW5kX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYm95XCIsIFwibWFuXCIsIFwiaHVtYW5cIiwgXCJpbmZvcm1hdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODFcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibm9fZ29vZF93b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZW1hbGVcIiwgXCJnaXJsXCIsIFwid29tYW5cIiwgXCJub3BlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJub19nb29kX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYm95XCIsIFwibWFuXCIsIFwibm9wZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFNDVcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwib2tfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29tZW5cIiwgXCJnaXJsXCIsIFwiZmVtYWxlXCIsIFwicGlua1wiLCBcImh1bWFuXCIsIFwid29tYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTQ2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm9rX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtZW5cIiwgXCJib3lcIiwgXCJtYWxlXCIsIFwiYmx1ZVwiLCBcImh1bWFuXCIsIFwibWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0Nlx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyYWlzaW5nX2hhbmRfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmVtYWxlXCIsIFwiZ2lybFwiLCBcIndvbWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyYWlzaW5nX2hhbmRfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hbGVcIiwgXCJib3lcIiwgXCJtYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTRCXHUyMDBEXHUyNjQyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBvdXRpbmdfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmVtYWxlXCIsIFwiZ2lybFwiLCBcIndvbWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwb3V0aW5nX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYm95XCIsIFwibWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0RVx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmcm93bmluZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZW1hbGVcIiwgXCJnaXJsXCIsIFwid29tYW5cIiwgXCJzYWRcIiwgXCJkZXByZXNzZWRcIiwgXCJkaXNjb3VyYWdlZFwiLCBcInVuaGFwcHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTREXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZyb3duaW5nX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYm95XCIsIFwibWFuXCIsIFwic2FkXCIsIFwiZGVwcmVzc2VkXCIsIFwiZGlzY291cmFnZWRcIiwgXCJ1bmhhcHB5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0RFx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJoYWlyY3V0X3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlbWFsZVwiLCBcImdpcmxcIiwgXCJ3b21hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiaGFpcmN1dF9tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFsZVwiLCBcImJveVwiLCBcIm1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODdcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFzc2FnZV93b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZW1hbGVcIiwgXCJnaXJsXCIsIFwid29tYW5cIiwgXCJoZWFkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM4NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtYXNzYWdlX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxlXCIsIFwiYm95XCIsIFwibWFuXCIsIFwiaGVhZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODZcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwid29tYW5faW5fc3RlYW15X3Jvb21cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmVtYWxlXCIsIFwid29tYW5cIiwgXCJzcGFcIiwgXCJzdGVhbXJvb21cIiwgXCJzYXVuYVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDZcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibWFuX2luX3N0ZWFteV9yb29tXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hbGVcIiwgXCJtYW5cIiwgXCJzcGFcIiwgXCJzdGVhbXJvb21cIiwgXCJzYXVuYVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDZcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY291cGxlX3dpdGhfaGVhcnRfd29tYW5fbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhaXJcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcImh1bWFuXCIsIFwiZGF0aW5nXCIsIFwidmFsZW50aW5lc1wiLCBcIm1hcnJpYWdlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY291cGxlX3dpdGhfaGVhcnRfd29tYW5fd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFpclwiLCBcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwiaHVtYW5cIiwgXCJkYXRpbmdcIiwgXCJ2YWxlbnRpbmVzXCIsIFwibWFycmlhZ2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHUyNzY0XHVGRTBGXHUyMDBEXHVEODNEXHVEQzY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb3VwbGVfd2l0aF9oZWFydF9tYW5fbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhaXJcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcImh1bWFuXCIsIFwiZGF0aW5nXCIsIFwidmFsZW50aW5lc1wiLCBcIm1hcnJpYWdlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1Mjc2NFx1RkUwRlx1MjAwRFx1RDgzRFx1REM2OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY291cGxla2lzc19tYW5fd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFpclwiLCBcInZhbGVudGluZXNcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImRhdGluZ1wiLCBcIm1hcnJpYWdlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM4RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiY291cGxla2lzc193b21hbl93b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYWlyXCIsIFwidmFsZW50aW5lc1wiLCBcImxvdmVcIiwgXCJsaWtlXCIsIFwiZGF0aW5nXCIsIFwibWFycmlhZ2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHUyNzY0XHVGRTBGXHUyMDBEXHVEODNEXHVEQzhCXHUyMDBEXHVEODNEXHVEQzY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJjb3VwbGVraXNzX21hbl9tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFpclwiLCBcInZhbGVudGluZXNcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImRhdGluZ1wiLCBcIm1hcnJpYWdlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1Mjc2NFx1RkUwRlx1MjAwRFx1RDgzRFx1REM4Qlx1MjAwRFx1RDgzRFx1REM2OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl93b21hbl9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJjaGlsZFwiLCBcIm1vbVwiLCBcImRhZFwiLCBcImZhdGhlclwiLCBcIm1vdGhlclwiLCBcInBlb3BsZVwiLCBcImh1bWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl93b21hbl9naXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV9tYW5fd29tYW5fZ2lybF9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl93b21hbl9ib3lfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZHJlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjZcdTIwMERcdUQ4M0RcdURDNjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZHJlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjdcdTIwMERcdUQ4M0RcdURDNjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV93b21hbl93b21hbl9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZHJlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjdcdTIwMERcdUQ4M0RcdURDNjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV93b21hbl93b21hbl9ib3lfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZHJlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjZcdTIwMERcdUQ4M0RcdURDNjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV93b21hbl93b21hbl9naXJsX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9tYW5fYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRzXCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZHJlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDNjhcdTIwMERcdUQ4M0RcdURDNjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV9tYW5fbWFuX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9tYW5fZ2lybF9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9tYW5fYm95X2JveVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJob21lXCIsIFwicGFyZW50c1wiLCBcInBlb3BsZVwiLCBcImh1bWFuXCIsIFwiY2hpbGRyZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY2XHUyMDBEXHVEODNEXHVEQzY2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmYW1pbHlfbWFuX21hbl9naXJsX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudHNcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X3dvbWFuX2JveVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJob21lXCIsIFwicGFyZW50XCIsIFwicGVvcGxlXCIsIFwiaHVtYW5cIiwgXCJjaGlsZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjlcdTIwMERcdUQ4M0RcdURDNjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZhbWlseV93b21hbl9naXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X3dvbWFuX2dpcmxfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X3dvbWFuX2JveV9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudFwiLCBcInBlb3BsZVwiLCBcImh1bWFuXCIsIFwiY2hpbGRyZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY5XHUyMDBEXHVEODNEXHVEQzY2XHUyMDBEXHVEODNEXHVEQzY2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmYW1pbHlfd29tYW5fZ2lybF9naXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OVx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9ib3lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudFwiLCBcInBlb3BsZVwiLCBcImh1bWFuXCIsIFwiY2hpbGRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmYW1pbHlfbWFuX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudFwiLCBcInBlb3BsZVwiLCBcImh1bWFuXCIsIFwiY2hpbGRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmYW1pbHlfbWFuX2dpcmxfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2N1x1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9ib3lfYm95XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwYXJlbnRcIiwgXCJwZW9wbGVcIiwgXCJodW1hblwiLCBcImNoaWxkcmVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2OFx1MjAwRFx1RDgzRFx1REM2Nlx1MjAwRFx1RDgzRFx1REM2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZmFtaWx5X21hbl9naXJsX2dpcmxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG9tZVwiLCBcInBhcmVudFwiLCBcInBlb3BsZVwiLCBcImh1bWFuXCIsIFwiY2hpbGRyZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzY4XHUyMDBEXHVEODNEXHVEQzY3XHUyMDBEXHVEODNEXHVEQzY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ5YXJuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhbGxcIiwgXCJjcm9jaGV0XCIsIFwia25pdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInRocmVhZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuZWVkbGVcIiwgXCJzZXdpbmdcIiwgXCJzcG9vbFwiLCBcInN0cmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNvYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiamFja2V0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibGFiY29hdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N0b3JcIiwgXCJleHBlcmltZW50XCIsIFwic2NpZW50aXN0XCIsIFwiY2hlbWlzdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREN0NcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIndvbWFuc19jbG90aGVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhc2hpb25cIiwgXCJzaG9wcGluZ19iYWdzXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwidHNoaXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhc2hpb25cIiwgXCJjbG90aFwiLCBcImNhc3VhbFwiLCBcInNoaXJ0XCIsIFwidGVlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiamVhbnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFzaGlvblwiLCBcInNob3BwaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibmVja3RpZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaGlydFwiLCBcInN1aXR1cFwiLCBcImZvcm1hbFwiLCBcImZhc2hpb25cIiwgXCJjbG90aFwiLCBcImJ1c2luZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZHJlc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2xvdGhlc1wiLCBcImZhc2hpb25cIiwgXCJzaG9wcGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImJpa2luaVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzd2ltbWluZ1wiLCBcImZlbWFsZVwiLCBcIndvbWFuXCIsIFwiZ2lybFwiLCBcImZhc2hpb25cIiwgXCJiZWFjaFwiLCBcInN1bW1lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpbW9ub1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkcmVzc1wiLCBcImZhc2hpb25cIiwgXCJ3b21lblwiLCBcImZlbWFsZVwiLCBcImphcGFuZXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwibGlwc3RpY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmVtYWxlXCIsIFwiZ2lybFwiLCBcImZhc2hpb25cIiwgXCJ3b21hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDODRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImtpc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImxpcHNcIiwgXCJsb3ZlXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcInZhbGVudGluZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzhCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJmb290cHJpbnRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZlZXRcIiwgXCJ0cmFja2luZ1wiLCBcIndhbGtpbmdcIiwgXCJiZWFjaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImZsYXRfc2hvZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYWxsZXRcIiwgXCJzbGlwLW9uXCIsIFwic2xpcHBlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREN0ZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImhpZ2hfaGVlbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYXNoaW9uXCIsIFwic2hvZXNcIiwgXCJmZW1hbGVcIiwgXCJwdW1wc1wiLCBcInN0aWxldHRvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM2MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic2FuZGFsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNob2VzXCIsIFwiZmFzaGlvblwiLCBcImZsaXAgZmxvcHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJib290XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNob2VzXCIsIFwiZmFzaGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcIm1hbnNfc2hvZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYXNoaW9uXCIsIFwibWFsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImF0aGxldGljX3Nob2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hvZXNcIiwgXCJzcG9ydHNcIiwgXCJzbmVha2Vyc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImhpa2luZ19ib290XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhY2twYWNraW5nXCIsIFwiY2FtcGluZ1wiLCBcImhpa2luZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREN0VcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNvY2tzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0b2NraW5nc1wiLCBcImNsb3RoZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREU2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJnbG92ZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFuZHNcIiwgXCJ3aW50ZXJcIiwgXCJjbG90aGVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwic2NhcmZcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmVja1wiLCBcIndpbnRlclwiLCBcImNsb3RoZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ3b21hbnNfaGF0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhc2hpb25cIiwgXCJhY2Nlc3Nvcmllc1wiLCBcImZlbWFsZVwiLCBcImxhZHlcIiwgXCJzcHJpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzUyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJ0b3BoYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFnaWNcIiwgXCJnZW50bGVtYW5cIiwgXCJjbGFzc3lcIiwgXCJjaXJjdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkE5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJiaWxsZWRfaGF0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNhcFwiLCBcImJhc2ViYWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwicmVzY3VlX3dvcmtlcl9oZWxtZXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY29uc3RydWN0aW9uXCIsIFwiYnVpbGRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkQxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJtb3J0YXJfYm9hcmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2Nob29sXCIsIFwiY29sbGVnZVwiLCBcImRlZ3JlZVwiLCBcInVuaXZlcnNpdHlcIiwgXCJncmFkdWF0aW9uXCIsIFwiY2FwXCIsIFwiaGF0XCIsIFwibGVnYWxcIiwgXCJsZWFyblwiLCBcImVkdWNhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNyb3duXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtpbmdcIiwgXCJrb2RcIiwgXCJsZWFkZXJcIiwgXCJyb3lhbHR5XCIsIFwibG9yZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDNTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInNjaG9vbF9zYXRjaGVsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0dWRlbnRcIiwgXCJlZHVjYXRpb25cIiwgXCJiYWdcIiwgXCJiYWNrcGFja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImx1Z2dhZ2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFja2luZ1wiLCBcInRyYXZlbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcInBvdWNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhZ1wiLCBcImFjY2Vzc29yaWVzXCIsIFwic2hvcHBpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJwdXJzZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYXNoaW9uXCIsIFwiYWNjZXNzb3JpZXNcIiwgXCJtb25leVwiLCBcInNhbGVzXCIsIFwic2hvcHBpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzVCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJoYW5kYmFnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhc2hpb25cIiwgXCJhY2Nlc3NvcnlcIiwgXCJhY2Nlc3Nvcmllc1wiLCBcInNob3BwaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM1Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiYnJpZWZjYXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJ1c2luZXNzXCIsIFwiZG9jdW1lbnRzXCIsIFwid29ya1wiLCBcImxhd1wiLCBcImxlZ2FsXCIsIFwiam9iXCIsIFwiY2FyZWVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENCQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInBlb3BsZVwiXG4gIH0sXG4gIFwiZXllZ2xhc3Nlc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYXNoaW9uXCIsIFwiYWNjZXNzb3JpZXNcIiwgXCJleWVzaWdodFwiLCBcIm5lcmR5XCIsIFwiZG9ya1wiLCBcImdlZWtcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkYXJrX3N1bmdsYXNzZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFjZVwiLCBcImNvb2xcIiwgXCJhY2Nlc3Nvcmllc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENzZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImdvZ2dsZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZXllc1wiLCBcInByb3RlY3Rpb25cIiwgXCJzYWZldHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDdEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJyaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlZGRpbmdcIiwgXCJwcm9wb3NlXCIsIFwibWFycmlhZ2VcIiwgXCJ2YWxlbnRpbmVzXCIsIFwiZGlhbW9uZFwiLCBcImZhc2hpb25cIiwgXCJqZXdlbHJ5XCIsIFwiZ2VtXCIsIFwiZW5nYWdlbWVudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOERcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJwZW9wbGVcIlxuICB9LFxuICBcImNsb3NlZF91bWJyZWxsYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwicmFpblwiLCBcImRyaXp6bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjAyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwicGVvcGxlXCJcbiAgfSxcbiAgXCJkb2dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiZnJpZW5kXCIsIFwibmF0dXJlXCIsIFwid29vZlwiLCBcInB1cHB5XCIsIFwicGV0XCIsIFwiZmFpdGhmdWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzM2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibWVvd1wiLCBcIm5hdHVyZVwiLCBcInBldFwiLCBcImtpdHRlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMzFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIm1vdXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImNoZWVzZV93ZWRnZVwiLCBcInJvZGVudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImhhbXN0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicmFiYml0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInBldFwiLCBcInNwcmluZ1wiLCBcIm1hZ2ljXCIsIFwiYnVubnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzMwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmb3hfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJmYWNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ4QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYmVhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJ3aWxkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicGFuZGFfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJwYW5kYVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDM0NcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImtvYWxhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInRpZ2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNhdFwiLCBcImRhbmdlclwiLCBcIndpbGRcIiwgXCJuYXR1cmVcIiwgXCJyb2FyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDgxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjb3dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmVlZlwiLCBcIm94XCIsIFwiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwibW9vXCIsIFwibWlsa1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInBpZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJvaW5rXCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicGlnX25vc2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwib2lua1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDM0RcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImZyb2dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiY3JvYWtcIiwgXCJ0b2FkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3F1aWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwib2NlYW5cIiwgXCJzZWFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDkxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJvY3RvcHVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNyZWF0dXJlXCIsIFwib2NlYW5cIiwgXCJzZWFcIiwgXCJuYXR1cmVcIiwgXCJiZWFjaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNocmltcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJvY2VhblwiLCBcIm5hdHVyZVwiLCBcInNlYWZvb2RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDkwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJtb25rZXlfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJjaXJjdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzM1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJnb3JpbGxhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImNpcmN1c1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREOERcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNlZV9ub19ldmlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbmtleVwiLCBcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImhhaGFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTQ4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJoZWFyX25vX2V2aWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibW9ua2V5XCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU0OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3BlYWtfbm9fZXZpbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtb25rZXlcIiwgXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJvbWdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTRBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJtb25rZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiYmFuYW5hXCIsIFwiY2lyY3VzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY2hpY2tlblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJjbHVja1wiLCBcIm5hdHVyZVwiLCBcImJpcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzE0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwZW5ndWluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImJpcmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiZmx5XCIsIFwidHdlZXRcIiwgXCJzcHJpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzI2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJiYWJ5X2NoaWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNoaWNrZW5cIiwgXCJiaXJkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiaGF0Y2hpbmdfY2hpY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiY2hpY2tlblwiLCBcImVnZ1wiLCBcImJvcm5cIiwgXCJiYWJ5XCIsIFwiYmlyZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImhhdGNoZWRfY2hpY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiY2hpY2tlblwiLCBcImJhYnlcIiwgXCJiaXJkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZHVja1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJiaXJkXCIsIFwibWFsbGFyZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREODZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImVhZ2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImJpcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDg1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJvd2xcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiYmlyZFwiLCBcImhvb3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDg5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJiYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiYmxpbmRcIiwgXCJ2YW1waXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ4N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid29sZlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJ3aWxkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYm9hclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzE3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJob3JzZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJicm93blwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMzRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInVuaWNvcm5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwibXlzdGljYWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDg0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJob25leWJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJpbnNlY3RcIiwgXCJuYXR1cmVcIiwgXCJidWdcIiwgXCJzcHJpbmdcIiwgXCJob25leVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImJ1Z1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJpbnNlY3RcIiwgXCJuYXR1cmVcIiwgXCJ3b3JtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYnV0dGVyZmx5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImluc2VjdFwiLCBcIm5hdHVyZVwiLCBcImNhdGVycGlsbGFyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ4QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic25haWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2xvd1wiLCBcImFuaW1hbFwiLCBcInNoZWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMwQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYmVldGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImluc2VjdFwiLCBcIm5hdHVyZVwiLCBcImxhZHlidWdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzFFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJhbnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiaW5zZWN0XCIsIFwibmF0dXJlXCIsIFwiYnVnXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZ3Jhc3Nob3BwZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiY3JpY2tldFwiLCBcImNoaXJwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ5N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3BpZGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImFyYWNobmlkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ3N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic2NvcnBpb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiYXJhY2huaWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDgyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjcmFiXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImNydXN0YWNlYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDgwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzbmFrZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJldmlsXCIsIFwibmF0dXJlXCIsIFwiaGlzc1wiLCBcInB5dGhvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMERcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImxpemFyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJyZXB0aWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ4RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwidC1yZXhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiZGlub3NhdXJcIiwgXCJ0eXJhbm5vc2F1cnVzXCIsIFwiZXh0aW5jdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREOTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNhdXJvcG9kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImRpbm9zYXVyXCIsIFwiYnJhY2hpb3NhdXJ1c1wiLCBcImJyb250b3NhdXJ1c1wiLCBcImRpcGxvZG9jdXNcIiwgXCJleHRpbmN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ5NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwidHVydGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcInNsb3dcIiwgXCJuYXR1cmVcIiwgXCJ0b3J0b2lzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInRyb3BpY2FsX2Zpc2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwic3dpbVwiLCBcIm9jZWFuXCIsIFwiYmVhY2hcIiwgXCJuZW1vXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZmlzaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJmb29kXCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYmxvd2Zpc2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiZm9vZFwiLCBcInNlYVwiLCBcIm9jZWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZG9scGhpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJmaXNoXCIsIFwic2VhXCIsIFwib2NlYW5cIiwgXCJmbGlwcGVyXCIsIFwiZmluc1wiLCBcImJlYWNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMyQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic2hhcmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiZmlzaFwiLCBcInNlYVwiLCBcIm9jZWFuXCIsIFwiamF3c1wiLCBcImZpbnNcIiwgXCJiZWFjaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREODhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIndoYWxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInNlYVwiLCBcIm9jZWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMzM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2hhbGUyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInNlYVwiLCBcIm9jZWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMwQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY3JvY29kaWxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInJlcHRpbGVcIiwgXCJsaXphcmRcIiwgXCJhbGxpZ2F0b3JcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzBBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJsZW9wYXJkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMDZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInplYnJhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInN0cmlwZXNcIiwgXCJzYWZhcmlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDkzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJ0aWdlcjJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwicm9hclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMDVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIndhdGVyX2J1ZmZhbG9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwib3hcIiwgXCJjb3dcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzAzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJveFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJjb3dcIiwgXCJiZWVmXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMwMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY293MlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiZWVmXCIsIFwib3hcIiwgXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJtb29cIiwgXCJtaWxrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMwNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZGVlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJob3Juc1wiLCBcInZlbmlzb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDhDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJkcm9tZWRhcnlfY2FtZWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiaG90XCIsIFwiZGVzZXJ0XCIsIFwiaHVtcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImNhbWVsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImhvdFwiLCBcImRlc2VydFwiLCBcImh1bXBcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzJCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJnaXJhZmZlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInNwb3RzXCIsIFwic2FmYXJpXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ5MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZWxlcGhhbnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwibm9zZVwiLCBcInRoXCIsIFwiY2lyY3VzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicmhpbm9jZXJvc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJob3JuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ4RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZ29hdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzEwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJyYW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwic2hlZXBcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzaGVlcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJ3b29sXCIsIFwic2hpcGl0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicmFjZWhvcnNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImdhbWJsZVwiLCBcImx1Y2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzBFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwaWcyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInJhdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJtb3VzZVwiLCBcInJvZGVudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIm1vdXNlMlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJyb2RlbnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzAxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJyb29zdGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImNoaWNrZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzEzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJ0dXJrZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiYmlyZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREODNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImRvdmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwiYmlyZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENEFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImRvZzJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiZnJpZW5kXCIsIFwiZG9nZVwiLCBcInBldFwiLCBcImZhaXRoZnVsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMxNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicG9vZGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRvZ1wiLCBcImFuaW1hbFwiLCBcIjEwMVwiLCBcIm5hdHVyZVwiLCBcInBldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImNhdDJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibWVvd1wiLCBcInBldFwiLCBcImNhdHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzA4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJyYWJiaXQyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInBldFwiLCBcIm1hZ2ljXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REMwN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY2hpcG11bmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwicm9kZW50XCIsIFwic3F1aXJyZWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzNGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJoZWRnZWhvZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJuYXR1cmVcIiwgXCJzcGlueVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREOTRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInJhY2Nvb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ5RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibGxhbWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiYWxwYWNhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ5OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiaGlwcG9wb3RhbXVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREOUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImthbmdhcm9vXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImF1c3RyYWxpYVwiLCBcImpvZXlcIiwgXCJob3BcIiwgXCJtYXJzdXBpYWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDk4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJiYWRnZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiaG9uZXlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREExXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzd2FuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImJpcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREEyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwZWFjb2NrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcInBlYWhlblwiLCBcImJpcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDlBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwYXJyb3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibmF0dXJlXCIsIFwiYmlyZFwiLCBcInBpcmF0ZVwiLCBcInRhbGtcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDlDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJsb2JzdGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImJpc3F1ZVwiLCBcImNsYXdzXCIsIFwic2VhZm9vZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREOUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIm1vc3F1aXRvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm5hdHVyZVwiLCBcImluc2VjdFwiLCBcIm1hbGFyaWFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDlGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwYXdfcHJpbnRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcInRyYWNraW5nXCIsIFwiZm9vdHByaW50c1wiLCBcImRvZ1wiLCBcImNhdFwiLCBcInBldFwiLCBcImZlZXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzNFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJkcmFnb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW5pbWFsXCIsIFwibXl0aFwiLCBcIm5hdHVyZVwiLCBcImNoaW5lc2VcIiwgXCJncmVlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDMDlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImRyYWdvbl9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcIm15dGhcIiwgXCJuYXR1cmVcIiwgXCJjaGluZXNlXCIsIFwiZ3JlZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzMyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjYWN0dXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widmVnZXRhYmxlXCIsIFwicGxhbnRcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjM1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjaHJpc3RtYXNfdHJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZXN0aXZhbFwiLCBcInZhY2F0aW9uXCIsIFwiZGVjZW1iZXJcIiwgXCJ4bWFzXCIsIFwiY2VsZWJyYXRpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjg0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJldmVyZ3JlZW5fdHJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGFudFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImRlY2lkdW91c190cmVlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBsYW50XCIsIFwibmF0dXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwicGFsbV90cmVlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBsYW50XCIsIFwidmVnZXRhYmxlXCIsIFwibmF0dXJlXCIsIFwic3VtbWVyXCIsIFwiYmVhY2hcIiwgXCJtb2ppdG9cIiwgXCJ0cm9waWNhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMzRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNlZWRsaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBsYW50XCIsIFwibmF0dXJlXCIsIFwiZ3Jhc3NcIiwgXCJsYXduXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiaGVyYlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZWdldGFibGVcIiwgXCJwbGFudFwiLCBcIm1lZGljaW5lXCIsIFwid2VlZFwiLCBcImdyYXNzXCIsIFwibGF3blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGM0ZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNoYW1yb2NrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlZ2V0YWJsZVwiLCBcInBsYW50XCIsIFwibmF0dXJlXCIsIFwiaXJpc2hcIiwgXCJjbG92ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjE4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmb3VyX2xlYWZfY2xvdmVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlZ2V0YWJsZVwiLCBcInBsYW50XCIsIFwibmF0dXJlXCIsIFwibHVja3lcIiwgXCJpcmlzaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImJhbWJvb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGFudFwiLCBcIm5hdHVyZVwiLCBcInZlZ2V0YWJsZVwiLCBcInBhbmRhXCIsIFwicGluZV9kZWNvcmF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY4RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwidGFuYWJhdGFfdHJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGFudFwiLCBcIm5hdHVyZVwiLCBcImJyYW5jaFwiLCBcInN1bW1lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImxlYXZlc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXR1cmVcIiwgXCJwbGFudFwiLCBcInRyZWVcIiwgXCJ2ZWdldGFibGVcIiwgXCJncmFzc1wiLCBcImxhd25cIiwgXCJzcHJpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjQzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmYWxsZW5fbGVhZlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXR1cmVcIiwgXCJwbGFudFwiLCBcInZlZ2V0YWJsZVwiLCBcImxlYXZlc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNDJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIm1hcGxlX2xlYWZcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwicGxhbnRcIiwgXCJ2ZWdldGFibGVcIiwgXCJjYVwiLCBcImZhbGxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjQxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJlYXJfb2ZfcmljZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXR1cmVcIiwgXCJwbGFudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGM0VcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImhpYmlzY3VzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBsYW50XCIsIFwidmVnZXRhYmxlXCIsIFwiZmxvd2Vyc1wiLCBcImJlYWNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3VuZmxvd2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcInBsYW50XCIsIFwiZmFsbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGM0JcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInJvc2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmxvd2Vyc1wiLCBcInZhbGVudGluZXNcIiwgXCJsb3ZlXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2lsdGVkX2Zsb3dlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGFudFwiLCBcIm5hdHVyZVwiLCBcImZsb3dlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInR1bGlwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsb3dlcnNcIiwgXCJwbGFudFwiLCBcIm5hdHVyZVwiLCBcInN1bW1lclwiLCBcInNwcmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMzdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImJsb3Nzb21cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwiZmxvd2Vyc1wiLCBcInllbGxvd1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGM0NcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImNoZXJyeV9ibG9zc29tXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcInBsYW50XCIsIFwic3ByaW5nXCIsIFwiZmxvd2VyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiYm91cXVldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmbG93ZXJzXCIsIFwibmF0dXJlXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibXVzaHJvb21cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGxhbnRcIiwgXCJ2ZWdldGFibGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjQ0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjaGVzdG51dFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwic3F1aXJyZWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjMwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJqYWNrX29fbGFudGVyblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYWxsb3dlZW5cIiwgXCJsaWdodFwiLCBcInB1bXBraW5cIiwgXCJjcmVlcHlcIiwgXCJmYWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY4M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic2hlbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwic2VhXCIsIFwiYmVhY2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzFBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzcGlkZXJfd2ViXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFuaW1hbFwiLCBcImluc2VjdFwiLCBcImFyYWNobmlkXCIsIFwic2lsa1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENzhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImVhcnRoX2FtZXJpY2FzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdsb2JlXCIsIFwid29ybGRcIiwgXCJVU0FcIiwgXCJpbnRlcm5hdGlvbmFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZWFydGhfYWZyaWNhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdsb2JlXCIsIFwid29ybGRcIiwgXCJpbnRlcm5hdGlvbmFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZWFydGhfYXNpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnbG9iZVwiLCBcIndvcmxkXCIsIFwiZWFzdFwiLCBcImludGVybmF0aW9uYWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmdWxsX21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwieWVsbG93XCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2FuaW5nX2dpYmJvdXNfbW9vblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXR1cmVcIiwgXCJ0d2lsaWdodFwiLCBcInBsYW5ldFwiLCBcInNwYWNlXCIsIFwibmlnaHRcIiwgXCJldmVuaW5nXCIsIFwic2xlZXBcIiwgXCJ3YXhpbmdfZ2liYm91c19tb29uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibGFzdF9xdWFydGVyX21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2FuaW5nX2NyZXNjZW50X21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibmV3X21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2F4aW5nX2NyZXNjZW50X21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZmlyc3RfcXVhcnRlcl9tb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcInR3aWxpZ2h0XCIsIFwicGxhbmV0XCIsIFwic3BhY2VcIiwgXCJuaWdodFwiLCBcImV2ZW5pbmdcIiwgXCJzbGVlcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIndheGluZ19naWJib3VzX21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwibmlnaHRcIiwgXCJza3lcIiwgXCJncmF5XCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcImV2ZW5pbmdcIiwgXCJzbGVlcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMTRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcIm5ld19tb29uX3dpdGhfZmFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXR1cmVcIiwgXCJ0d2lsaWdodFwiLCBcInBsYW5ldFwiLCBcInNwYWNlXCIsIFwibmlnaHRcIiwgXCJldmVuaW5nXCIsIFwic2xlZXBcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjFBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmdWxsX21vb25fd2l0aF9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcInR3aWxpZ2h0XCIsIFwicGxhbmV0XCIsIFwic3BhY2VcIiwgXCJuaWdodFwiLCBcImV2ZW5pbmdcIiwgXCJzbGVlcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImZpcnN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwidHdpbGlnaHRcIiwgXCJwbGFuZXRcIiwgXCJzcGFjZVwiLCBcIm5pZ2h0XCIsIFwiZXZlbmluZ1wiLCBcInNsZWVwXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwibGFzdF9xdWFydGVyX21vb25fd2l0aF9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcInR3aWxpZ2h0XCIsIFwicGxhbmV0XCIsIFwic3BhY2VcIiwgXCJuaWdodFwiLCBcImV2ZW5pbmdcIiwgXCJzbGVlcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInN1bl93aXRoX2ZhY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwibW9ybmluZ1wiLCBcInNreVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImNyZXNjZW50X21vb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmlnaHRcIiwgXCJzbGVlcFwiLCBcInNreVwiLCBcImV2ZW5pbmdcIiwgXCJtYWdpY1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInN0YXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmlnaHRcIiwgXCJ5ZWxsb3dcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyQjUwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzdGFyMlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuaWdodFwiLCBcInNwYXJrbGVcIiwgXCJhd2Vzb21lXCIsIFwiZ29vZFwiLCBcIm1hZ2ljXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYxRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZGl6enlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhclwiLCBcInNwYXJrbGVcIiwgXCJzaG9vdFwiLCBcIm1hZ2ljXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3BhcmtsZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhcnNcIiwgXCJzaGluZVwiLCBcInNoaW55XCIsIFwiY29vbFwiLCBcImF3ZXNvbWVcIiwgXCJnb29kXCIsIFwibWFnaWNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzI4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjb21ldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcGFjZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MDRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInN1bm55XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIiwgXCJuYXR1cmVcIiwgXCJicmlnaHRuZXNzXCIsIFwic3VtbWVyXCIsIFwiYmVhY2hcIiwgXCJzcHJpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjAwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzdW5fYmVoaW5kX3NtYWxsX2Nsb3VkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjI0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJwYXJ0bHlfc3VubnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2VhdGhlclwiLCBcIm5hdHVyZVwiLCBcImNsb3VkeVwiLCBcIm1vcm5pbmdcIiwgXCJmYWxsXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZDNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3VuX2JlaGluZF9sYXJnZV9jbG91ZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYyNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic3VuX2JlaGluZF9yYWluX2Nsb3VkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjI2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjbG91ZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwic2t5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYwMVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY2xvdWRfd2l0aF9yYWluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjbG91ZF93aXRoX2xpZ2h0bmluZ19hbmRfcmFpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwibGlnaHRuaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZDOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiY2xvdWRfd2l0aF9saWdodG5pbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2VhdGhlclwiLCBcInRodW5kZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjI5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJ6YXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGh1bmRlclwiLCBcIndlYXRoZXJcIiwgXCJsaWdodG5pbmcgYm9sdFwiLCBcImZhc3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkExXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJmaXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvdFwiLCBcImNvb2tcIiwgXCJmbGFtZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImJvb21cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm9tYlwiLCBcImV4cGxvZGVcIiwgXCJleHBsb3Npb25cIiwgXCJjb2xsaXNpb25cIiwgXCJibG93blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNub3dmbGFrZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3aW50ZXJcIiwgXCJzZWFzb25cIiwgXCJjb2xkXCIsIFwid2VhdGhlclwiLCBcImNocmlzdG1hc1wiLCBcInhtYXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzQ0XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJjbG91ZF93aXRoX3Nub3dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2VhdGhlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcInNub3dtYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2ludGVyXCIsIFwic2Vhc29uXCIsIFwiY29sZFwiLCBcIndlYXRoZXJcIiwgXCJjaHJpc3RtYXNcIiwgXCJ4bWFzXCIsIFwiZnJvemVuXCIsIFwid2l0aG91dF9zbm93XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZDNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwic25vd21hbl93aXRoX3Nub3dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2ludGVyXCIsIFwic2Vhc29uXCIsIFwiY29sZFwiLCBcIndlYXRoZXJcIiwgXCJjaHJpc3RtYXNcIiwgXCJ4bWFzXCIsIFwiZnJvemVuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYwM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwid2luZF9mYWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImd1c3RcIiwgXCJhaXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjJDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJkYXNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndpbmRcIiwgXCJhaXJcIiwgXCJmYXN0XCIsIFwic2hvb1wiLCBcImZhcnRcIiwgXCJzbW9rZVwiLCBcInB1ZmZcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0E4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJ0b3JuYWRvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIiwgXCJjeWNsb25lXCIsIFwidHdpc3RlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhbmltYWxzX2FuZF9uYXR1cmVcIlxuICB9LFxuICBcImZvZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYyQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwib3Blbl91bWJyZWxsYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYwMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwidW1icmVsbGFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmFpbnlcIiwgXCJ3ZWF0aGVyXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYxNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZHJvcGxldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3YXRlclwiLCBcImRyaXBcIiwgXCJmYXVjZXRcIiwgXCJzcHJpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0E3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYW5pbWFsc19hbmRfbmF0dXJlXCJcbiAgfSxcbiAgXCJzd2VhdF9kcm9wc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3YXRlclwiLCBcImRyaXBcIiwgXCJvb3BzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwib2NlYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2VhXCIsIFwid2F0ZXJcIiwgXCJ3YXZlXCIsIFwibmF0dXJlXCIsIFwidHN1bmFtaVwiLCBcImRpc2FzdGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFuaW1hbHNfYW5kX25hdHVyZVwiXG4gIH0sXG4gIFwiZ3JlZW5fYXBwbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjRGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImFwcGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZydWl0XCIsIFwibWFjXCIsIFwic2Nob29sXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY0RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJwZWFyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZydWl0XCIsIFwibmF0dXJlXCIsIFwiZm9vZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwidGFuZ2VyaW5lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJmcnVpdFwiLCBcIm5hdHVyZVwiLCBcIm9yYW5nZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNEFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwibGVtb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjRCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImJhbmFuYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcImZvb2RcIiwgXCJtb25rZXlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjRDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIndhdGVybWVsb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJmb29kXCIsIFwicGljbmljXCIsIFwic3VtbWVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY0OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJncmFwZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJmb29kXCIsIFwid2luZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNDdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwic3RyYXdiZXJyeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcImZvb2RcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIm1lbG9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZydWl0XCIsIFwibmF0dXJlXCIsIFwiZm9vZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY2hlcnJpZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImZydWl0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJwZWFjaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcIm5hdHVyZVwiLCBcImZvb2RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjUxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInBpbmVhcHBsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcIm5hdHVyZVwiLCBcImZvb2RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjREXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImNvY29udXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJuYXR1cmVcIiwgXCJmb29kXCIsIFwicGFsbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwia2l3aV9mcnVpdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcImZvb2RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIm1hbmdvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZydWl0XCIsIFwiZm9vZFwiLCBcInRyb3BpY2FsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ2RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJhdm9jYWRvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZydWl0XCIsIFwiZm9vZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYnJvY2NvbGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJmb29kXCIsIFwidmVnZXRhYmxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJ0b21hdG9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZnJ1aXRcIiwgXCJ2ZWdldGFibGVcIiwgXCJuYXR1cmVcIiwgXCJmb29kXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY0NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJlZ2dwbGFudFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZWdldGFibGVcIiwgXCJuYXR1cmVcIiwgXCJmb29kXCIsIFwiYXViZXJnaW5lXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY0NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjdWN1bWJlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcnVpdFwiLCBcImZvb2RcIiwgXCJwaWNrbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDUyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImNhcnJvdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZWdldGFibGVcIiwgXCJmb29kXCIsIFwib3JhbmdlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJob3RfcGVwcGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJzcGljeVwiLCBcImNoaWxsaVwiLCBcImNoaWxpXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYzNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJwb3RhdG9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcInR1YmVyXCIsIFwidmVnYXRhYmxlXCIsIFwic3RhcmNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjb3JuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJ2ZWdldGFibGVcIiwgXCJwbGFudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGM0RcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwibGVhZnlfZ3JlZW5zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJ2ZWdldGFibGVcIiwgXCJwbGFudFwiLCBcImJvayBjaG95XCIsIFwiY2FiYmFnZVwiLCBcImthbGVcIiwgXCJsZXR0dWNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ2Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzd2VldF9wb3RhdG9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwicGVhbnV0c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwibnV0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJob25leV9wb3RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmVlc1wiLCBcInN3ZWV0XCIsIFwia2l0Y2hlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY3JvaXNzYW50XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJicmVhZFwiLCBcImZyZW5jaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYnJlYWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcIndoZWF0XCIsIFwiYnJlYWtmYXN0XCIsIFwidG9hc3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImJhZ3VldHRlX2JyZWFkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJicmVhZFwiLCBcImZyZW5jaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYmFnZWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImJyZWFkXCIsIFwiYmFrZXJ5XCIsIFwic2NobWVhclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwicHJldHplbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiYnJlYWRcIiwgXCJ0d2lzdGVkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ2OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjaGVlc2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImNoYWRkZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREMwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImVnZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiY2hpY2tlblwiLCBcImJyZWFrZmFzdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYmFjb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImJyZWFrZmFzdFwiLCBcInBvcmtcIiwgXCJwaWdcIiwgXCJtZWF0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzdGVha1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiY293XCIsIFwibWVhdFwiLCBcImN1dFwiLCBcImNob3BcIiwgXCJsYW1iY2hvcFwiLCBcInBvcmtjaG9wXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ2OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJwYW5jYWtlc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiYnJlYWtmYXN0XCIsIFwiZmxhcGphY2tzXCIsIFwiaG90Y2FrZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInBvdWx0cnlfbGVnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJtZWF0XCIsIFwiZHJ1bXN0aWNrXCIsIFwiYmlyZFwiLCBcImNoaWNrZW5cIiwgXCJ0dXJrZXlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjU3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIm1lYXRfb25fYm9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnb29kXCIsIFwiZm9vZFwiLCBcImRydW1zdGlja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYm9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJza2VsZXRvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREQjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiZnJpZWRfc2hyaW1wXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJhbmltYWxcIiwgXCJhcHBldGl6ZXJcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImZyaWVkX2VnZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiYnJlYWtmYXN0XCIsIFwia2l0Y2hlblwiLCBcImVnZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiaGFtYnVyZ2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1lYXRcIiwgXCJmYXN0IGZvb2RcIiwgXCJiZWVmXCIsIFwiY2hlZXNlYnVyZ2VyXCIsIFwibWNkb25hbGRzXCIsIFwiYnVyZ2VyIGtpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjU0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImZyaWVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNoaXBzXCIsIFwic25hY2tcIiwgXCJmYXN0IGZvb2RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjVGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInN0dWZmZWRfZmxhdGJyZWFkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJmbGF0YnJlYWRcIiwgXCJzdHVmZmVkXCIsIFwiZ3lyb1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiaG90ZG9nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJmcmFua2Z1cnRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwicGl6emFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcInBhcnR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzYW5kd2ljaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwibHVuY2hcIiwgXCJicmVhZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY2FubmVkX2Zvb2RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcInNvdXBcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDZCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInNwYWdoZXR0aVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiaXRhbGlhblwiLCBcIm5vb2RsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwidGFjb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwibWV4aWNhblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYnVycml0b1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwibWV4aWNhblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiZ3JlZW5fc2FsYWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImhlYWx0aHlcIiwgXCJsZXR0dWNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzaGFsbG93X3Bhbl9vZl9mb29kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJjb29raW5nXCIsIFwiY2Fzc2Vyb2xlXCIsIFwicGFlbGxhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJyYW1lblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiamFwYW5lc2VcIiwgXCJub29kbGVcIiwgXCJjaG9wc3RpY2tzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzdGV3XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJtZWF0XCIsIFwic291cFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiZmlzaF9jYWtlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJqYXBhblwiLCBcInNlYVwiLCBcImJlYWNoXCIsIFwibmFydXRvbWFraVwiLCBcInBpbmtcIiwgXCJzd2lybFwiLCBcImthbWFib2tvXCIsIFwic3VyaW1pXCIsIFwicmFtZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImZvcnR1bmVfY29va2llXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJwcm9waGVjeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwic3VzaGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImZpc2hcIiwgXCJqYXBhbmVzZVwiLCBcInJpY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImJlbnRvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJqYXBhbmVzZVwiLCBcImJveFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNzFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY3VycnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcInNwaWN5XCIsIFwiaG90XCIsIFwiaW5kaWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJyaWNlX2JhbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImphcGFuZXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJyaWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJjaGluYVwiLCBcImFzaWFuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJyaWNlX2NyYWNrZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImphcGFuZXNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY1OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJvZGVuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJqYXBhbmVzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiZGFuZ29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImRlc3NlcnRcIiwgXCJzd2VldFwiLCBcImphcGFuZXNlXCIsIFwiYmFyYmVjdWVcIiwgXCJtZWF0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY2MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzaGF2ZWRfaWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvdFwiLCBcImRlc3NlcnRcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImljZV9jcmVhbVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiaG90XCIsIFwiZGVzc2VydFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiaWNlY3JlYW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImhvdFwiLCBcImRlc3NlcnRcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjY2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInBpZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiZGVzc2VydFwiLCBcInBhc3RyeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY2FrZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiZGVzc2VydFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY3VwY2FrZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiZGVzc2VydFwiLCBcImJha2VyeVwiLCBcInN3ZWV0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERDMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJtb29uX2Nha2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImF1dHVtblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYmlydGhkYXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImRlc3NlcnRcIiwgXCJjYWtlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY4MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjdXN0YXJkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRlc3NlcnRcIiwgXCJmb29kXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY2RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjYW5keVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzbmFja1wiLCBcImRlc3NlcnRcIiwgXCJzd2VldFwiLCBcImxvbGx5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY2Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJsb2xsaXBvcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwic25hY2tcIiwgXCJjYW5keVwiLCBcInN3ZWV0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY2RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjaG9jb2xhdGVfYmFyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJzbmFja1wiLCBcImRlc3NlcnRcIiwgXCJzd2VldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwicG9wY29yblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwibW92aWUgdGhlYXRlclwiLCBcImZpbG1zXCIsIFwic25hY2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjdGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImR1bXBsaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJlbXBhbmFkYVwiLCBcInBpZXJvZ2lcIiwgXCJwb3RzdGlja2VyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ1RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJkb3VnaG51dFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiZGVzc2VydFwiLCBcInNuYWNrXCIsIFwic3dlZXRcIiwgXCJkb251dFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiY29va2llXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJzbmFja1wiLCBcIm9yZW9cIiwgXCJjaG9jb2xhdGVcIiwgXCJzd2VldFwiLCBcImRlc3NlcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjZBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIm1pbGtfZ2xhc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmV2ZXJhZ2VcIiwgXCJkcmlua1wiLCBcImNvd1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYmVlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyZWxheFwiLCBcImJldmVyYWdlXCIsIFwiZHJpbmtcIiwgXCJkcnVua1wiLCBcInBhcnR5XCIsIFwicHViXCIsIFwic3VtbWVyXCIsIFwiYWxjb2hvbFwiLCBcImJvb3plXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJiZWVyc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyZWxheFwiLCBcImJldmVyYWdlXCIsIFwiZHJpbmtcIiwgXCJkcnVua1wiLCBcInBhcnR5XCIsIFwicHViXCIsIFwic3VtbWVyXCIsIFwiYWxjb2hvbFwiLCBcImJvb3plXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjbGlua2luZ19nbGFzc2VzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJldmVyYWdlXCIsIFwiZHJpbmtcIiwgXCJwYXJ0eVwiLCBcImFsY29ob2xcIiwgXCJjZWxlYnJhdGVcIiwgXCJjaGVlcnNcIiwgXCJ3aW5lXCIsIFwiY2hhbXBhZ25lXCIsIFwidG9hc3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDQyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcIndpbmVfZ2xhc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJpbmtcIiwgXCJiZXZlcmFnZVwiLCBcImRydW5rXCIsIFwiYWxjb2hvbFwiLCBcImJvb3plXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJ0dW1ibGVyX2dsYXNzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRyaW5rXCIsIFwiYmV2ZXJhZ2VcIiwgXCJkcnVua1wiLCBcImFsY29ob2xcIiwgXCJsaXF1b3JcIiwgXCJib296ZVwiLCBcImJvdXJib25cIiwgXCJzY290Y2hcIiwgXCJ3aGlza3lcIiwgXCJnbGFzc1wiLCBcInNob3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDQzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImNvY2t0YWlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRyaW5rXCIsIFwiZHJ1bmtcIiwgXCJhbGNvaG9sXCIsIFwiYmV2ZXJhZ2VcIiwgXCJib296ZVwiLCBcIm1vaml0b1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGNzhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwidHJvcGljYWxfZHJpbmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmV2ZXJhZ2VcIiwgXCJjb2NrdGFpbFwiLCBcInN1bW1lclwiLCBcImJlYWNoXCIsIFwiYWxjb2hvbFwiLCBcImJvb3plXCIsIFwibW9qaXRvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjaGFtcGFnbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJpbmtcIiwgXCJ3aW5lXCIsIFwiYm90dGxlXCIsIFwiY2VsZWJyYXRpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjdFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInNha2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2luZVwiLCBcImRyaW5rXCIsIFwiZHJ1bmtcIiwgXCJiZXZlcmFnZVwiLCBcImphcGFuZXNlXCIsIFwiYWxjb2hvbFwiLCBcImJvb3plXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJ0ZWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJpbmtcIiwgXCJib3dsXCIsIFwiYnJlYWtmYXN0XCIsIFwiZ3JlZW5cIiwgXCJicml0aXNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY3NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJjdXBfd2l0aF9zdHJhd1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkcmlua1wiLCBcInNvZGFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImNvZmZlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiZXZlcmFnZVwiLCBcImNhZmZlaW5lXCIsIFwibGF0dGVcIiwgXCJlc3ByZXNzb1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYmFieV9ib3R0bGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiLCBcImNvbnRhaW5lclwiLCBcIm1pbGtcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjdDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInNhbHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY29uZGltZW50XCIsIFwic2hha2VyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERDMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZvb2RfYW5kX2RyaW5rXCJcbiAgfSxcbiAgXCJzcG9vblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjdXRsZXJ5XCIsIFwia2l0Y2hlblwiLCBcInRhYmxld2FyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENDRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiZm9ya19hbmRfa25pZmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY3V0bGVyeVwiLCBcImtpdGNoZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjc0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInBsYXRlX3dpdGhfY3V0bGVyeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiZWF0XCIsIFwibWVhbFwiLCBcImx1bmNoXCIsIFwiZGlubmVyXCIsIFwicmVzdGF1cmFudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGN0RcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwiYm93bF93aXRoX3Nwb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJicmVha2Zhc3RcIiwgXCJjZXJlYWxcIiwgXCJvYXRtZWFsXCIsIFwicG9ycmlkZ2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcInRha2VvdXRfYm94XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvb2RcIiwgXCJsZWZ0b3ZlcnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZm9vZF9hbmRfZHJpbmtcIlxuICB9LFxuICBcImNob3BzdGlja3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZm9vZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmb29kX2FuZF9kcmlua1wiXG4gIH0sXG4gIFwic29jY2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImZvb3RiYWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZCRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJiYXNrZXRiYWxsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJhbGxzXCIsIFwiTkJBXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJmb290YmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJiYWxsc1wiLCBcIk5GTFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQzhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiYmFzZWJhbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiYmFsbHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkJFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInNvZnRiYWxsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJhbGxzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJ0ZW5uaXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiYmFsbHNcIiwgXCJncmVlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwidm9sbGV5YmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJiYWxsc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwicnVnYnlfZm9vdGJhbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwidGVhbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQzlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiZmx5aW5nX2Rpc2NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiZnJpc2JlZVwiLCBcInVsdGltYXRlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCI4YmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwb29sXCIsIFwiaG9iYnlcIiwgXCJnYW1lXCIsIFwibHVja1wiLCBcIm1hZ2ljXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZCMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJnb2xmXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJ1c2luZXNzXCIsIFwiZmxhZ1wiLCBcImhvbGVcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImdvbGZpbmdfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiYnVzaW5lc3NcIiwgXCJ3b21hblwiLCBcImZlbWFsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQ0NcdUZFMEZcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiZ29sZmluZ19tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiYnVzaW5lc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkNDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwicGluZ19wb25nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcInBpbmdwb25nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZEM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJiYWRtaW50b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJnb2FsX25ldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDQ1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImljZV9ob2NrZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZEMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJmaWVsZF9ob2NrZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZEMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJsYWNyb3NzZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJiYWxsXCIsIFwic3RpY2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDREXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImNyaWNrZXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJza2lcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwid2ludGVyXCIsIFwiY29sZFwiLCBcInNub3dcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkJGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInNraWVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcIndpbnRlclwiLCBcInNub3dcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInNub3dib2FyZGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcIndpbnRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJwZXJzb25fZmVuY2luZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJmZW5jaW5nXCIsIFwic3dvcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDNBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIndvbWVuX3dyZXN0bGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJ3cmVzdGxlcnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDNDXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIm1lbl93cmVzdGxpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwid3Jlc3RsZXJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzQ1x1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJ3b21hbl9jYXJ0d2hlZWxpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ3ltbmFzdGljc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzhcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJtYW5fY2FydHdoZWVsaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImd5bW5hc3RpY3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDM4XHUyMDBEXHUyNjQyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwid29tYW5fcGxheWluZ19oYW5kYmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDNFXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibWFuX3BsYXlpbmdfaGFuZGJhbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzRVx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImljZV9za2F0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImN1cmxpbmdfc3RvbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJza2F0ZWJvYXJkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJvYXJkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJzbGVkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNsZWlnaFwiLCBcImx1Z2VcIiwgXCJ0b2JvZ2dhblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiYm93X2FuZF9hcnJvd1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImZpc2hpbmdfcG9sZV9hbmRfZmlzaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb29kXCIsIFwiaG9iYnlcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkEzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImJveGluZ19nbG92ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJmaWdodGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENEFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibWFydGlhbF9hcnRzX3VuaWZvcm1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wianVkb1wiLCBcImthcmF0ZVwiLCBcInRhZWt3b25kb1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURENEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwicm93aW5nX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImhvYmJ5XCIsIFwid2F0ZXJcIiwgXCJzaGlwXCIsIFwid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUEzXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwicm93aW5nX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJob2JieVwiLCBcIndhdGVyXCIsIFwic2hpcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJjbGltYmluZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJob2JieVwiLCBcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwicm9ja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDdcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJjbGltYmluZ19tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiaG9iYnlcIiwgXCJtYW5cIiwgXCJtYWxlXCIsIFwicm9ja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERDdcdTIwMERcdTI2NDJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJzd2ltbWluZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJleGVyY2lzZVwiLCBcImh1bWFuXCIsIFwiYXRobGV0ZVwiLCBcIndhdGVyXCIsIFwic3VtbWVyXCIsIFwid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkNBXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwic3dpbW1pbmdfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImV4ZXJjaXNlXCIsIFwiaHVtYW5cIiwgXCJhdGhsZXRlXCIsIFwid2F0ZXJcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkNBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwid29tYW5fcGxheWluZ193YXRlcl9wb2xvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcInBvb2xcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDNEXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibWFuX3BsYXlpbmdfd2F0ZXJfcG9sb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJwb29sXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzRFx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIndvbWFuX2luX2xvdHVzX3Bvc2l0aW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndvbWFuXCIsIFwiZmVtYWxlXCIsIFwibWVkaXRhdGlvblwiLCBcInlvZ2FcIiwgXCJzZXJlbml0eVwiLCBcInplblwiLCBcIm1pbmRmdWxuZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREOFx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIm1hbl9pbl9sb3R1c19wb3NpdGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYW5cIiwgXCJtYWxlXCIsIFwibWVkaXRhdGlvblwiLCBcInlvZ2FcIiwgXCJzZXJlbml0eVwiLCBcInplblwiLCBcIm1pbmRmdWxuZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REREOFx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInN1cmZpbmdfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwib2NlYW5cIiwgXCJzZWFcIiwgXCJzdW1tZXJcIiwgXCJiZWFjaFwiLCBcIndvbWFuXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDNFx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInN1cmZpbmdfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcIm9jZWFuXCIsIFwic2VhXCIsIFwic3VtbWVyXCIsIFwiYmVhY2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkM0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiYmF0aFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjbGVhblwiLCBcInNob3dlclwiLCBcImJhdGhyb29tXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVDMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImJhc2tldGJhbGxfd29tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiaHVtYW5cIiwgXCJ3b21hblwiLCBcImZlbWFsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2RjlcdUZFMEZcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJiYXNrZXRiYWxsX21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJodW1hblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2RjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJ3ZWlnaHRfbGlmdGluZ193b21hblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcG9ydHNcIiwgXCJ0cmFpbmluZ1wiLCBcImV4ZXJjaXNlXCIsIFwid29tYW5cIiwgXCJmZW1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkNCXHVGRTBGXHUyMDBEXHUyNjQwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwid2VpZ2h0X2xpZnRpbmdfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcInRyYWluaW5nXCIsIFwiZXhlcmNpc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkNCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiYmlraW5nX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJpa2VcIiwgXCJleGVyY2lzZVwiLCBcImhpcHN0ZXJcIiwgXCJ3b21hblwiLCBcImZlbWFsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQjRcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJiaWtpbmdfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJpa2VcIiwgXCJleGVyY2lzZVwiLCBcImhpcHN0ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUI0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibW91bnRhaW5fYmlraW5nX3dvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwic3BvcnRzXCIsIFwiaHVtYW5cIiwgXCJyYWNlXCIsIFwiYmlrZVwiLCBcIndvbWFuXCIsIFwiZmVtYWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVCNVx1MjAwRFx1MjY0MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIm1vdW50YWluX2Jpa2luZ19tYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJzcG9ydHNcIiwgXCJodW1hblwiLCBcInJhY2VcIiwgXCJiaWtlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVCNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImhvcnNlX3JhY2luZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmltYWxcIiwgXCJiZXR0aW5nXCIsIFwiY29tcGV0aXRpb25cIiwgXCJnYW1ibGluZ1wiLCBcImx1Y2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkM3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiB0cnVlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiYnVzaW5lc3Nfc3VpdF9sZXZpdGF0aW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN1aXRcIiwgXCJidXNpbmVzc1wiLCBcImxldml0YXRlXCIsIFwiaG92ZXJcIiwgXCJqdW1wXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ3NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInRyb3BoeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3aW5cIiwgXCJhd2FyZFwiLCBcImNvbnRlc3RcIiwgXCJwbGFjZVwiLCBcImZ0d1wiLCBcImNlcmVtb255XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJydW5uaW5nX3NoaXJ0X3dpdGhfc2FzaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGF5XCIsIFwicGFnZWFudFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibWVkYWxfc3BvcnRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImF3YXJkXCIsIFwid2lubmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwibWVkYWxfbWlsaXRhcnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXdhcmRcIiwgXCJ3aW5uaW5nXCIsIFwiYXJteVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiMXN0X3BsYWNlX21lZGFsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImF3YXJkXCIsIFwid2lubmluZ1wiLCBcImZpcnN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCIybmRfcGxhY2VfbWVkYWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXdhcmRcIiwgXCJzZWNvbmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVERDQ4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIjNyZF9wbGFjZV9tZWRhbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhd2FyZFwiLCBcInRoaXJkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJyZW1pbmRlcl9yaWJib25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiY2F1c2VcIiwgXCJzdXBwb3J0XCIsIFwiYXdhcmVuZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY5N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJyb3NldHRlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsb3dlclwiLCBcImRlY29yYXRpb25cIiwgXCJtaWxpdGFyeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwidGlja2V0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV2ZW50XCIsIFwiY29uY2VydFwiLCBcInBhc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkFCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInRpY2tldHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiY29uY2VydFwiLCBcImVudHJhbmNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY5RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJwZXJmb3JtaW5nX2FydHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWN0aW5nXCIsIFwidGhlYXRlclwiLCBcImRyYW1hXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGVzaWduXCIsIFwicGFpbnRcIiwgXCJkcmF3XCIsIFwiY29sb3JzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJjaXJjdXNfdGVudFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZXN0aXZhbFwiLCBcImNhcm5pdmFsXCIsIFwicGFydHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkFBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIndvbWFuX2p1Z2dsaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImp1Z2dsZVwiLCBcImJhbGFuY2VcIiwgXCJza2lsbFwiLCBcIm11bHRpdGFza1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdUREMzlcdTIwMERcdTI2NDBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IHRydWUsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJtYW5fanVnZ2xpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wianVnZ2xlXCIsIFwiYmFsYW5jZVwiLCBcInNraWxsXCIsIFwibXVsdGl0YXNrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQzOVx1MjAwRFx1MjY0Mlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcIm1pY3JvcGhvbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic291bmRcIiwgXCJtdXNpY1wiLCBcIlBBXCIsIFwic2luZ1wiLCBcInRhbGtzaG93XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJoZWFkcGhvbmVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm11c2ljXCIsIFwic2NvcmVcIiwgXCJnYWRnZXRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJtdXNpY2FsX3Njb3JlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyZWJsZVwiLCBcImNsZWZcIiwgXCJjb21wb3NlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZCQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJtdXNpY2FsX2tleWJvYXJkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBpYW5vXCIsIFwiaW5zdHJ1bWVudFwiLCBcImNvbXBvc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkI5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImRydW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXVzaWNcIiwgXCJpbnN0cnVtZW50XCIsIFwiZHJ1bXN0aWNrc1wiLCBcInNuYXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1REQ0MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJzYXhvcGhvbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXVzaWNcIiwgXCJpbnN0cnVtZW50XCIsIFwiamF6elwiLCBcImJsdWVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZCN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJ0cnVtcGV0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm11c2ljXCIsIFwiYnJhc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkJBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImd1aXRhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtdXNpY1wiLCBcImluc3RydW1lbnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkI4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInZpb2xpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtdXNpY1wiLCBcImluc3RydW1lbnRcIiwgXCJvcmNoZXN0cmFcIiwgXCJzeW1waG9ueVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwiY2xhcHBlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtb3ZpZVwiLCBcImZpbG1cIiwgXCJyZWNvcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkFDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInZpZGVvX2dhbWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGxheVwiLCBcImNvbnNvbGVcIiwgXCJQUzRcIiwgXCJjb250cm9sbGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJzcGFjZV9pbnZhZGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdhbWVcIiwgXCJhcmNhZGVcIiwgXCJwbGF5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM3RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJkYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdhbWVcIiwgXCJwbGF5XCIsIFwiYmFyXCIsIFwidGFyZ2V0XCIsIFwiYnVsbHNleWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkFGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImdhbWVfZGllXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRpY2VcIiwgXCJyYW5kb21cIiwgXCJ0YWJsZXRvcFwiLCBcInBsYXlcIiwgXCJsdWNrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZCMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJjaGVzc19wYXduXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV4cGVuZGFibGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjVGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcInNsb3RfbWFjaGluZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiZXRcIiwgXCJnYW1ibGVcIiwgXCJ2ZWdhc1wiLCBcImZydWl0IG1hY2hpbmVcIiwgXCJsdWNrXCIsIFwiY2FzaW5vXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZCMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImFjdGl2aXR5XCJcbiAgfSxcbiAgXCJqaWdzYXdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaW50ZXJsb2NraW5nXCIsIFwicHV6emxlXCIsIFwicGllY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiYWN0aXZpdHlcIlxuICB9LFxuICBcImJvd2xpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3BvcnRzXCIsIFwiZnVuXCIsIFwicGxheVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJhY3Rpdml0eVwiXG4gIH0sXG4gIFwicmVkX2NhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyZWRcIiwgXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTk3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInRheGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widWJlclwiLCBcInZlaGljbGVcIiwgXCJjYXJzXCIsIFwidHJhbnNwb3J0YXRpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTk1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImJsdWVfY2FyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwidmVoaWNsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiYnVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNhclwiLCBcInZlaGljbGVcIiwgXCJ0cmFuc3BvcnRhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOENcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwidHJvbGxleWJ1c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYXJ0XCIsIFwidHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU4RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJyYWNpbmdfY2FyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcInJhY2VcIiwgXCJmYXN0XCIsIFwiZm9ybXVsYVwiLCBcImYxXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJwb2xpY2VfY2FyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJjYXJzXCIsIFwidHJhbnNwb3J0YXRpb25cIiwgXCJsYXdcIiwgXCJsZWdhbFwiLCBcImVuZm9yY2VtZW50XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU5M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJhbWJ1bGFuY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGVhbHRoXCIsIFwiOTExXCIsIFwiaG9zcGl0YWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTkxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImZpcmVfZW5naW5lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwiY2Fyc1wiLCBcInZlaGljbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTkyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1pbmlidXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widmVoaWNsZVwiLCBcImNhclwiLCBcInRyYW5zcG9ydGF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU5MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ0cnVja1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYXJzXCIsIFwidHJhbnNwb3J0YXRpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTlBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImFydGljdWxhdGVkX2xvcnJ5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJjYXJzXCIsIFwidHJhbnNwb3J0YXRpb25cIiwgXCJleHByZXNzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU5QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ0cmFjdG9yXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJjYXJcIiwgXCJmYXJtaW5nXCIsIFwiYWdyaWN1bHR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTlDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImtpY2tfc2Nvb3RlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZWhpY2xlXCIsIFwia2lja1wiLCBcInJhem9yXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtb3RvcmN5Y2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJhY2VcIiwgXCJzcG9ydHNcIiwgXCJmYXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZDRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJiaWtlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwb3J0c1wiLCBcImJpY3ljbGVcIiwgXCJleGVyY2lzZVwiLCBcImhpcHN0ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUIyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1vdG9yX3Njb290ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widmVoaWNsZVwiLCBcInZlc3BhXCIsIFwic2FzaGFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInJvdGF0aW5nX2xpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBvbGljZVwiLCBcImFtYnVsYW5jZVwiLCBcIjkxMVwiLCBcImVtZXJnZW5jeVwiLCBcImFsZXJ0XCIsIFwiZXJyb3JcIiwgXCJwaW5nZWRcIiwgXCJsYXdcIiwgXCJsZWdhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwib25jb21pbmdfcG9saWNlX2NhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZWhpY2xlXCIsIFwibGF3XCIsIFwibGVnYWxcIiwgXCJlbmZvcmNlbWVudFwiLCBcIjkxMVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOTRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwib25jb21pbmdfYnVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJ0cmFuc3BvcnRhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOERcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwib25jb21pbmdfYXV0b21vYmlsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYXJcIiwgXCJ2ZWhpY2xlXCIsIFwidHJhbnNwb3J0YXRpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTk4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm9uY29taW5nX3RheGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widmVoaWNsZVwiLCBcImNhcnNcIiwgXCJ1YmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU5NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJhZXJpYWxfdHJhbXdheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIiwgXCJza2lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUExXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1vdW50YWluX2NhYmxld2F5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwidmVoaWNsZVwiLCBcInNraVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic3VzcGVuc2lvbl9yYWlsd2F5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJ0cmFuc3BvcnRhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwicmFpbHdheV9jYXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU4M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ0cmFpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIiwgXCJjYXJyaWFnZVwiLCBcInB1YmxpY1wiLCBcInRyYXZlbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFOEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwibW9ub3JhaWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU5RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJidWxsZXR0cmFpbl9zaWRlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwidmVoaWNsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFODRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiYnVsbGV0dHJhaW5fZnJvbnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCIsIFwic3BlZWRcIiwgXCJmYXN0XCIsIFwicHVibGljXCIsIFwidHJhdmVsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU4NVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJsaWdodF9yYWlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwidmVoaWNsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFODhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwibW91bnRhaW5fcmFpbHdheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTlFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInN0ZWFtX2xvY29tb3RpdmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCIsIFwidHJhaW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTgyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInRyYWluMlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTg2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1ldHJvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwiYmx1ZS1zcXVhcmVcIiwgXCJtcnRcIiwgXCJ1bmRlcmdyb3VuZFwiLCBcInR1YmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTg3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInRyYW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU4QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzdGF0aW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwidmVoaWNsZVwiLCBcInB1YmxpY1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFODlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiZmx5aW5nX3NhdWNlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIiwgXCJ1Zm9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImhlbGljb3B0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ2ZWhpY2xlXCIsIFwiZmx5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REU4MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzbWFsbF9haXJwbGFuZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmbGlnaHRcIiwgXCJ0cmFuc3BvcnRhdGlvblwiLCBcImZseVwiLCBcInZlaGljbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImFpcnBsYW5lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZlaGljbGVcIiwgXCJ0cmFuc3BvcnRhdGlvblwiLCBcImZsaWdodFwiLCBcImZseVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MDhcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiZmxpZ2h0X2RlcGFydHVyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhaXJwb3J0XCIsIFwiZmxpZ2h0XCIsIFwibGFuZGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiZmxpZ2h0X2Fycml2YWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWlycG9ydFwiLCBcImZsaWdodFwiLCBcImJvYXJkaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzYWlsYm9hdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaGlwXCIsIFwic3VtbWVyXCIsIFwidHJhbnNwb3J0YXRpb25cIiwgXCJ3YXRlclwiLCBcInNhaWxpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1vdG9yX2JvYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hpcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic3BlZWRib2F0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoaXBcIiwgXCJ0cmFuc3BvcnRhdGlvblwiLCBcInZlaGljbGVcIiwgXCJzdW1tZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUE0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImZlcnJ5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJvYXRcIiwgXCJzaGlwXCIsIFwieWFjaHRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInBhc3Nlbmdlcl9zaGlwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInlhY2h0XCIsIFwiY3J1aXNlXCIsIFwiZmVycnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInJvY2tldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsYXVuY2hcIiwgXCJzaGlwXCIsIFwic3RhZmZtb2RlXCIsIFwiTkFTQVwiLCBcIm91dGVyIHNwYWNlXCIsIFwib3V0ZXJfc3BhY2VcIiwgXCJmbHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERTgwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImFydGlmaWNpYWxfc2F0ZWxsaXRlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNvbW11bmljYXRpb25cIiwgXCJncHNcIiwgXCJvcmJpdFwiLCBcInNwYWNlZmxpZ2h0XCIsIFwiTkFTQVwiLCBcIklTU1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic2VhdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaXRcIiwgXCJhaXJwbGFuZVwiLCBcInRyYW5zcG9ydFwiLCBcImJ1c1wiLCBcImZsaWdodFwiLCBcImZseVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiY2Fub2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm9hdFwiLCBcInBhZGRsZVwiLCBcIndhdGVyXCIsIFwic2hpcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiYW5jaG9yXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoaXBcIiwgXCJmZXJyeVwiLCBcInNlYVwiLCBcImJvYXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjkzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImNvbnN0cnVjdGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3aXBcIiwgXCJwcm9ncmVzc1wiLCBcImNhdXRpb25cIiwgXCJ3YXJuaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJmdWVscHVtcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnYXMgc3RhdGlvblwiLCBcInBldHJvbGV1bVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2RkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiYnVzc3RvcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFuc3BvcnRhdGlvblwiLCBcIndhaXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERThGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInZlcnRpY2FsX3RyYWZmaWNfbGlnaHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJkcml2aW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ0cmFmZmljX2xpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRyYW5zcG9ydGF0aW9uXCIsIFwic2lnbmFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJjaGVja2VyZWRfZmxhZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb250ZXN0XCIsIFwiZmluaXNobGluZVwiLCBcInJhY2VcIiwgXCJnb2thcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkMxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInNoaXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhbnNwb3J0YXRpb25cIiwgXCJ0aXRhbmljXCIsIFwiZGVwbG95XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJmZXJyaXNfd2hlZWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJjYXJuaXZhbFwiLCBcImxvbmRvbmV5ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwicm9sbGVyX2NvYXN0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2Fybml2YWxcIiwgXCJwbGF5Z3JvdW5kXCIsIFwicGhvdG9cIiwgXCJmdW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkEyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImNhcm91c2VsX2hvcnNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiY2Fybml2YWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkEwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImJ1aWxkaW5nX2NvbnN0cnVjdGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3aXBcIiwgXCJ3b3JraW5nXCIsIFwicHJvZ3Jlc3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkQ3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImZvZ2d5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwibW91bnRhaW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjAxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInRva3lvX3Rvd2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiamFwYW5lc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREZDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImZhY3RvcnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJpbmR1c3RyeVwiLCBcInBvbGx1dGlvblwiLCBcInNtb2tlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJmb3VudGFpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwaG90b1wiLCBcInN1bW1lclwiLCBcIndhdGVyXCIsIFwiZnJlc2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkYyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInJpY2Vfc2NlbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJqYXBhblwiLCBcImFzaWFcIiwgXCJ0c3VraW1pXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY5MVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtb3VudGFpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwaG90b1wiLCBcIm5hdHVyZVwiLCBcImVudmlyb25tZW50XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtb3VudGFpbl9zbm93XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwibmF0dXJlXCIsIFwiZW52aXJvbm1lbnRcIiwgXCJ3aW50ZXJcIiwgXCJjb2xkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZENFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtb3VudF9mdWppXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwibW91bnRhaW5cIiwgXCJuYXR1cmVcIiwgXCJqYXBhbmVzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURERkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwidm9sY2Fub1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwaG90b1wiLCBcIm5hdHVyZVwiLCBcImRpc2FzdGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJqYXBhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiamFwYW5lc2VcIiwgXCJhc2lhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERGRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJjYW1waW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwib3V0ZG9vcnNcIiwgXCJ0ZW50XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZENVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ0ZW50XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiY2FtcGluZ1wiLCBcIm91dGRvb3JzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZGQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJuYXRpb25hbF9wYXJrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiZW52aXJvbm1lbnRcIiwgXCJuYXR1cmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkRFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm1vdG9yd2F5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJvYWRcIiwgXCJjdXBlcnRpbm9cIiwgXCJpbnRlcnN0YXRlXCIsIFwiaGlnaHdheVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwicmFpbHdheV90cmFja1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFpblwiLCBcInRyYW5zcG9ydGF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVFNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzdW5yaXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vcm5pbmdcIiwgXCJ2aWV3XCIsIFwidmFjYXRpb25cIiwgXCJwaG90b1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMDVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic3VucmlzZV9vdmVyX21vdW50YWluc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2aWV3XCIsIFwidmFjYXRpb25cIiwgXCJwaG90b1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMDRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiZGVzZXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwid2FybVwiLCBcInNhaGFyYWhcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkRDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImJlYWNoX3VtYnJlbGxhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXRoZXJcIiwgXCJzdW1tZXJcIiwgXCJzdW5ueVwiLCBcInNhbmRcIiwgXCJtb2ppdG9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkQ2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImRlc2VydF9pc2xhbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJ0cm9waWNhbFwiLCBcIm1vaml0b1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRERcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiY2l0eV9zdW5yaXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiZ29vZCBtb3JuaW5nXCIsIFwiZGF3blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMDdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiY2l0eV9zdW5zZXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJldmVuaW5nXCIsIFwic2t5XCIsIFwiYnVpbGRpbmdzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJjaXR5c2NhcGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJuaWdodCBsaWZlXCIsIFwidXJiYW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkQ5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm5pZ2h0X3dpdGhfc3RhcnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZXZlbmluZ1wiLCBcImNpdHlcIiwgXCJkb3dudG93blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMDNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiYnJpZGdlX2F0X25pZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwic2FuZnJhbmNpc2NvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtaWxreV93YXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJzcGFjZVwiLCBcInN0YXJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYwQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzdGFyc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJuaWdodFwiLCBcInBob3RvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REYyMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzcGFya2xlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdGFyc1wiLCBcIm5pZ2h0XCIsIFwic2hpbmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjg3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImZpcmV3b3Jrc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwaG90b1wiLCBcImZlc3RpdmFsXCIsIFwiY2Fybml2YWxcIiwgXCJjb25ncmF0dWxhdGlvbnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjg2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInJhaW5ib3dcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmF0dXJlXCIsIFwiaGFwcHlcIiwgXCJ1bmljb3JuX2ZhY2VcIiwgXCJwaG90b1wiLCBcInNreVwiLCBcInNwcmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiaG91c2VzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJ1aWxkaW5nc1wiLCBcInBob3RvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZEOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJldXJvcGVhbl9jYXN0bGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJyb3lhbHR5XCIsIFwiaGlzdG9yeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiamFwYW5lc2VfY2FzdGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvXCIsIFwiYnVpbGRpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkVGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInN0YWRpdW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9cIiwgXCJwbGFjZVwiLCBcInNwb3J0c1wiLCBcImNvbmNlcnRcIiwgXCJ2ZW51ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGREZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic3RhdHVlX29mX2xpYmVydHlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW1lcmljYW5cIiwgXCJuZXd5b3JrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERGRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJob3VzZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcImhvbWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkUwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImhvdXNlX3dpdGhfZ2FyZGVuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbWVcIiwgXCJwbGFudFwiLCBcIm5hdHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiZGVyZWxpY3RfaG91c2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWJhbmRvblwiLCBcImV2aWN0XCIsIFwiYnJva2VuXCIsIFwiYnVpbGRpbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkRBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIm9mZmljZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcImJ1cmVhdVwiLCBcIndvcmtcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkUyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImRlcGFydG1lbnRfc3RvcmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJzaG9wcGluZ1wiLCBcIm1hbGxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcInBvc3Rfb2ZmaWNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJ1aWxkaW5nXCIsIFwiZW52ZWxvcGVcIiwgXCJjb21tdW5pY2F0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJldXJvcGVhbl9wb3N0X29mZmljZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcImVtYWlsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJob3NwaXRhbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcImhlYWx0aFwiLCBcInN1cmdlcnlcIiwgXCJkb2N0b3JcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkU1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImJhbmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJtb25leVwiLCBcInNhbGVzXCIsIFwiY2FzaFwiLCBcImJ1c2luZXNzXCIsIFwiZW50ZXJwcmlzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwiaG90ZWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJhY2NvbW9kYXRpb25cIiwgXCJjaGVja2luXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJjb252ZW5pZW5jZV9zdG9yZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcInNob3BwaW5nXCIsIFwiZ3JvY2VyaWVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzY2hvb2xcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnVpbGRpbmdcIiwgXCJzdHVkZW50XCIsIFwiZWR1Y2F0aW9uXCIsIFwibGVhcm5cIiwgXCJ0ZWFjaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwibG92ZV9ob3RlbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwiZGF0aW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJ3ZWRkaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwiY291cGxlXCIsIFwibWFycmlhZ2VcIiwgXCJicmlkZVwiLCBcImdyb29tXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJjbGFzc2ljYWxfYnVpbGRpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXJ0XCIsIFwiY3VsdHVyZVwiLCBcImhpc3RvcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkRCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcImNodXJjaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidWlsZGluZ1wiLCBcInJlbGlnaW9uXCIsIFwiY2hyaXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJtb3NxdWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaXNsYW1cIiwgXCJ3b3JzaGlwXCIsIFwibWluYXJldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENENcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJ0cmF2ZWxfYW5kX3BsYWNlc1wiXG4gIH0sXG4gIFwic3luYWdvZ3VlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImp1ZGFpc21cIiwgXCJ3b3JzaGlwXCIsIFwidGVtcGxlXCIsIFwiamV3aXNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ0RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJrYWFiYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtZWNjYVwiLCBcIm1vc3F1ZVwiLCBcImlzbGFtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ0QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInRyYXZlbF9hbmRfcGxhY2VzXCJcbiAgfSxcbiAgXCJzaGludG9fc2hyaW5lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRlbXBsZVwiLCBcImphcGFuXCIsIFwia3lvdG9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwidHJhdmVsX2FuZF9wbGFjZXNcIlxuICB9LFxuICBcIndhdGNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJhY2Nlc3Nvcmllc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTIzMUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJpcGhvbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGVjaG5vbG9neVwiLCBcImFwcGxlXCIsIFwiZ2FkZ2V0c1wiLCBcImRpYWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0YxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2FsbGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpcGhvbmVcIiwgXCJpbmNvbWluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjb21wdXRlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0ZWNobm9sb2d5XCIsIFwibGFwdG9wXCIsIFwic2NyZWVuXCIsIFwiZGlzcGxheVwiLCBcIm1vbml0b3JcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0JCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwia2V5Ym9hcmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGVjaG5vbG9neVwiLCBcImNvbXB1dGVyXCIsIFwidHlwZVwiLCBcImlucHV0XCIsIFwidGV4dFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIzMjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJkZXNrdG9wX2NvbXB1dGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRlY2hub2xvZ3lcIiwgXCJjb21wdXRpbmdcIiwgXCJzY3JlZW5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREE1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicHJpbnRlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYXBlclwiLCBcImlua1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREQThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjb21wdXRlcl9tb3VzZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjbGlja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREQjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ0cmFja2JhbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGVjaG5vbG9neVwiLCBcInRyYWNrcGFkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERCMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImpveXN0aWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdhbWVcIiwgXCJwbGF5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ3OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNsYW1wXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvb2xcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERERDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibWluaWRpc2NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGVjaG5vbG9neVwiLCBcInJlY29yZFwiLCBcImRhdGFcIiwgXCJkaXNrXCIsIFwiOTBzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENCRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZsb3BweV9kaXNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9sZHNjaG9vbFwiLCBcInRlY2hub2xvZ3lcIiwgXCJzYXZlXCIsIFwiOTBzXCIsIFwiODBzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENCRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRlY2hub2xvZ3lcIiwgXCJkdmRcIiwgXCJkaXNrXCIsIFwiZGlzY1wiLCBcIjkwc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJkdmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2RcIiwgXCJkaXNrXCIsIFwiZGlzY1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ2aHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVjb3JkXCIsIFwidmlkZW9cIiwgXCJvbGRzY2hvb2xcIiwgXCI5MHNcIiwgXCI4MHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0ZDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2FtZXJhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdhZGdldHNcIiwgXCJwaG90b2dyYXBoeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjYW1lcmFfZmxhc2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhvdG9ncmFwaHlcIiwgXCJnYWRnZXRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInZpZGVvX2NhbWVyYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaWxtXCIsIFwicmVjb3JkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1vdmllX2NhbWVyYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaWxtXCIsIFwicmVjb3JkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZBNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZpbG1fcHJvamVjdG9yXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZpZGVvXCIsIFwidGFwZVwiLCBcInJlY29yZFwiLCBcIm1vdmllXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZpbG1fc3RyaXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibW92aWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjlFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidGVsZXBob25lX3JlY2VpdmVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRlY2hub2xvZ3lcIiwgXCJjb21tdW5pY2F0aW9uXCIsIFwiZGlhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDREVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwaG9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0ZWNobm9sb2d5XCIsIFwiY29tbXVuaWNhdGlvblwiLCBcImRpYWxcIiwgXCJ0ZWxlcGhvbmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjBFXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicGFnZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmJjYWxsXCIsIFwib2xkc2Nob29sXCIsIFwiOTBzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENERlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZheFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb21tdW5pY2F0aW9uXCIsIFwidGVjaG5vbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ0dlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0ZWNobm9sb2d5XCIsIFwicHJvZ3JhbVwiLCBcIm9sZHNjaG9vbFwiLCBcInNob3dcIiwgXCJ0ZWxldmlzaW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInJhZGlvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNvbW11bmljYXRpb25cIiwgXCJtdXNpY1wiLCBcInBvZGNhc3RcIiwgXCJwcm9ncmFtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInN0dWRpb19taWNyb3Bob25lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpbmdcIiwgXCJyZWNvcmRpbmdcIiwgXCJhcnRpc3RcIiwgXCJ0YWxrc2hvd1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJsZXZlbF9zbGlkZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2NhbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjlBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY29udHJvbF9rbm9ic1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkaWFsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY5QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNvbXBhc3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFnbmV0aWNcIiwgXCJuYXZpZ2F0aW9uXCIsIFwib3JpZW50ZWVyaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInN0b3B3YXRjaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwiZGVhZGxpbmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0YxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidGltZXJfY2xvY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWxhcm1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0YyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYWxhcm1fY2xvY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcIndha2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0YwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibWFudGVscGllY2VfY2xvY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJob3VyZ2xhc3NfZmxvd2luZ19zYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9sZHNjaG9vbFwiLCBcInRpbWVcIiwgXCJjb3VudGRvd25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0YzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiaG91cmdsYXNzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJjbG9ja1wiLCBcIm9sZHNjaG9vbFwiLCBcImxpbWl0XCIsIFwiZXhhbVwiLCBcInF1aXpcIiwgXCJ0ZXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjMxQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInNhdGVsbGl0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb21tdW5pY2F0aW9uXCIsIFwiZnV0dXJlXCIsIFwicmFkaW9cIiwgXCJzcGFjZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJiYXR0ZXJ5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBvd2VyXCIsIFwiZW5lcmd5XCIsIFwic3VzdGFpblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJlbGVjdHJpY19wbHVnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNoYXJnZXJcIiwgXCJwb3dlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMENcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJidWxiXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxpZ2h0XCIsIFwiZWxlY3RyaWNpdHlcIiwgXCJpZGVhXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZsYXNobGlnaHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGFya1wiLCBcImNhbXBpbmdcIiwgXCJzaWdodFwiLCBcIm5pZ2h0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNhbmRsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaXJlXCIsIFwid2F4XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ2RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZpcmVfZXh0aW5ndWlzaGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInF1ZW5jaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ3YXN0ZWJhc2tldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiaW5cIiwgXCJ0cmFzaFwiLCBcInJ1YmJpc2hcIiwgXCJnYXJiYWdlXCIsIFwidG9zc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURERDFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJvaWxfZHJ1bVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYXJyZWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVFMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1vbmV5X3dpdGhfd2luZ3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZG9sbGFyXCIsIFwiYmlsbHNcIiwgXCJwYXltZW50XCIsIFwic2FsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJkb2xsYXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibW9uZXlcIiwgXCJzYWxlc1wiLCBcImJpbGxcIiwgXCJjdXJyZW5jeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ5ZW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibW9uZXlcIiwgXCJzYWxlc1wiLCBcImphcGFuZXNlXCIsIFwiZG9sbGFyXCIsIFwiY3VycmVuY3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0I0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZXVyb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtb25leVwiLCBcInNhbGVzXCIsIFwiZG9sbGFyXCIsIFwiY3VycmVuY3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0I2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicG91bmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnJpdGlzaFwiLCBcInN0ZXJsaW5nXCIsIFwibW9uZXlcIiwgXCJzYWxlc1wiLCBcImJpbGxzXCIsIFwidWtcIiwgXCJlbmdsYW5kXCIsIFwiY3VycmVuY3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0I3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibW9uZXliYWdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZG9sbGFyXCIsIFwicGF5bWVudFwiLCBcImNvaW5zXCIsIFwic2FsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjcmVkaXRfY2FyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtb25leVwiLCBcInNhbGVzXCIsIFwiZG9sbGFyXCIsIFwiYmlsbFwiLCBcInBheW1lbnRcIiwgXCJzaG9wcGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJnZW1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZVwiLCBcInJ1YnlcIiwgXCJkaWFtb25kXCIsIFwiamV3ZWxyeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOEVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJiYWxhbmNlX3NjYWxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxhd1wiLCBcImZhaXJuZXNzXCIsIFwid2VpZ2h0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY5NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInRvb2xib3hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widG9vbHNcIiwgXCJkaXlcIiwgXCJmaXhcIiwgXCJtYWludGFpbmVyXCIsIFwibWVjaGFuaWNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREYwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwid3JlbmNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvb2xzXCIsIFwiZGl5XCIsIFwiaWtlYVwiLCBcImZpeFwiLCBcIm1haW50YWluZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiaGFtbWVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvb2xzXCIsIFwiYnVpbGRcIiwgXCJjcmVhdGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDI4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiaGFtbWVyX2FuZF9waWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvb2xzXCIsIFwiYnVpbGRcIiwgXCJjcmVhdGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjkyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiaGFtbWVyX2FuZF93cmVuY2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widG9vbHNcIiwgXCJidWlsZFwiLCBcImNyZWF0ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwaWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvb2xzXCIsIFwiZGlnXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZDRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm51dF9hbmRfYm9sdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYW5keVwiLCBcInRvb2xzXCIsIFwiZml4XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImdlYXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY29nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY5OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJyaWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJyaWNrc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjaGFpbnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG9ja1wiLCBcImFycmVzdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2RDNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJtYWduZXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXR0cmFjdGlvblwiLCBcIm1hZ25ldGljXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImd1blwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2aW9sZW5jZVwiLCBcIndlYXBvblwiLCBcInBpc3RvbFwiLCBcInJldm9sdmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJvbWJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm9vbVwiLCBcImV4cGxvZGVcIiwgXCJleHBsb3Npb25cIiwgXCJ0ZXJyb3Jpc21cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0EzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZmlyZWNyYWNrZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHluYW1pdGVcIiwgXCJib29tXCIsIFwiZXhwbG9kZVwiLCBcImV4cGxvc2lvblwiLCBcImV4cGxvc2l2ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJob2Nob1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJrbmlmZVwiLCBcImJsYWRlXCIsIFwiY3V0bGVyeVwiLCBcImtpdGNoZW5cIiwgXCJ3ZWFwb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDJBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZGFnZ2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXBvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURERTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjcm9zc2VkX3N3b3Jkc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWFwb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjk0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwic2hpZWxkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInByb3RlY3Rpb25cIiwgXCJzZWN1cml0eVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzbW9raW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtpbGxzXCIsIFwidG9iYWNjb1wiLCBcImNpZ2FyZXR0ZVwiLCBcImpvaW50XCIsIFwic21va2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUFDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwic2t1bGxfYW5kX2Nyb3NzYm9uZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicG9pc29uXCIsIFwiZGFuZ2VyXCIsIFwiZGVhZGx5XCIsIFwic2NhcnlcIiwgXCJkZWF0aFwiLCBcInBpcmF0ZVwiLCBcImV2aWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjIwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY29mZmluXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZhbXBpcmVcIiwgXCJkZWFkXCIsIFwiZGllXCIsIFwiZGVhdGhcIiwgXCJyaXBcIiwgXCJncmF2ZXlhcmRcIiwgXCJjZW1ldGVyeVwiLCBcImNhc2tldFwiLCBcImZ1bmVyYWxcIiwgXCJib3hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkIwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZnVuZXJhbF91cm5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGVhZFwiLCBcImRpZVwiLCBcImRlYXRoXCIsIFwicmlwXCIsIFwiYXNoZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNkIxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYW1waG9yYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2YXNlXCIsIFwiamFyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZGQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNyeXN0YWxfYmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkaXNjb1wiLCBcInBhcnR5XCIsIFwibWFnaWNcIiwgXCJjaXJjdXNcIiwgXCJmb3J0dW5lX3RlbGxlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwcmF5ZXJfYmVhZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGhpa3JcIiwgXCJyZWxpZ2lvdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0ZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibmF6YXJfYW11bGV0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJlYWRcIiwgXCJjaGFybVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJiYXJiZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGFpclwiLCBcInNhbG9uXCIsIFwic3R5bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzg4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYWxlbWJpY1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkaXN0aWxsaW5nXCIsIFwic2NpZW5jZVwiLCBcImV4cGVyaW1lbnRcIiwgXCJjaGVtaXN0cnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjk3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidGVsZXNjb3BlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXJzXCIsIFwic3BhY2VcIiwgXCJ6b29tXCIsIFwic2NpZW5jZVwiLCBcImFzdHJvbm9teVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJtaWNyb3Njb3BlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxhYm9yYXRvcnlcIiwgXCJleHBlcmltZW50XCIsIFwiem9vbWluXCIsIFwic2NpZW5jZVwiLCBcInN0dWR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImhvbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZW1iYXJyYXNzaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ3M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBpbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGVhbHRoXCIsIFwibWVkaWNpbmVcIiwgXCJkb2N0b3JcIiwgXCJwaGFybWFjeVwiLCBcImRydWdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzhBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwic3lyaW5nZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoZWFsdGhcIiwgXCJob3NwaXRhbFwiLCBcImRydWdzXCIsIFwiYmxvb2RcIiwgXCJtZWRpY2luZVwiLCBcIm5lZWRsZVwiLCBcImRvY3RvclwiLCBcIm51cnNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM4OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImRuYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiaW9sb2dpc3RcIiwgXCJnZW5ldGljc1wiLCBcImxpZmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibWljcm9iZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbW9lYmFcIiwgXCJiYWN0ZXJpYVwiLCBcImdlcm1zXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERBMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBldHJpX2Rpc2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmFjdGVyaWFcIiwgXCJiaW9sb2d5XCIsIFwiY3VsdHVyZVwiLCBcImxhYlwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ0ZXN0X3R1YmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hlbWlzdHJ5XCIsIFwiZXhwZXJpbWVudFwiLCBcImxhYlwiLCBcInNjaWVuY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidGhlcm1vbWV0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2VhdGhlclwiLCBcInRlbXBlcmF0dXJlXCIsIFwiaG90XCIsIFwiY29sZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJicm9vbVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjbGVhbmluZ1wiLCBcInN3ZWVwaW5nXCIsIFwid2l0Y2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYmFza2V0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxhdW5kcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREZBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidG9pbGV0X3BhcGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJvbGxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREZCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibGFiZWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2FsZVwiLCBcInRhZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJib29rbWFya1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmYXZvcml0ZVwiLCBcImxhYmVsXCIsIFwic2F2ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ0b2lsZXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVzdHJvb21cIiwgXCJ3Y1wiLCBcIndhc2hyb29tXCIsIFwiYmF0aHJvb21cIiwgXCJwb3R0eVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzaG93ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2xlYW5cIiwgXCJ3YXRlclwiLCBcImJhdGhyb29tXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVCRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJhdGh0dWJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2xlYW5cIiwgXCJzaG93ZXJcIiwgXCJiYXRocm9vbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQzFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzb2FwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhclwiLCBcImJhdGhpbmdcIiwgXCJjbGVhbmluZ1wiLCBcImxhdGhlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzcG9uZ2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWJzb3JiaW5nXCIsIFwiY2xlYW5pbmdcIiwgXCJwb3JvdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNFXHVEREZEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibG90aW9uX2JvdHRsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtb2lzdHVyaXplclwiLCBcInN1bnNjcmVlblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJrZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG9ja1wiLCBcImRvb3JcIiwgXCJwYXNzd29yZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJvbGRfa2V5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvY2tcIiwgXCJkb29yXCIsIFwicGFzc3dvcmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREREXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY291Y2hfYW5kX2xhbXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVhZFwiLCBcImNoaWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVDQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInNsZWVwaW5nX2JlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiZWRcIiwgXCJyZXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVDQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogdHJ1ZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYmVkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNsZWVwXCIsIFwicmVzdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQ0ZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJkb29yXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvdXNlXCIsIFwiZW50cnlcIiwgXCJleGl0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJlbGxob3BfYmVsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzZXJ2aWNlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVDRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInRlZGR5X2JlYXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGx1c2hcIiwgXCJzdHVmZmVkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZyYW1lZF9waWN0dXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBob3RvZ3JhcGh5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERCQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIndvcmxkX21hcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsb2NhdGlvblwiLCBcImRpcmVjdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwYXJhc29sX29uX2dyb3VuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwic3VtbWVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZGMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1veWFpXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJvY2tcIiwgXCJlYXN0ZXIgaXNsYW5kXCIsIFwibW9haVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzaG9wcGluZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWxsXCIsIFwiYnV5XCIsIFwicHVyY2hhc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUNEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwic2hvcHBpbmdfY2FydFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cm9sbGV5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVEMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJhbGxvb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGFydHlcIiwgXCJjZWxlYnJhdGlvblwiLCBcImJpcnRoZGF5XCIsIFwiY2lyY3VzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY4OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImZsYWdzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZpc2hcIiwgXCJqYXBhbmVzZVwiLCBcImtvaW5vYm9yaVwiLCBcImNhcnBcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjhGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicmliYm9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRlY29yYXRpb25cIiwgXCJwaW5rXCIsIFwiZ2lybFwiLCBcImJvd3RpZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGODBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJnaWZ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInByZXNlbnRcIiwgXCJiaXJ0aGRheVwiLCBcImNocmlzdG1hc1wiLCBcInhtYXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjgxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY29uZmV0dGlfYmFsbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmZXN0aXZhbFwiLCBcInBhcnR5XCIsIFwiYmlydGhkYXlcIiwgXCJjaXJjdXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjhBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidGFkYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYXJ0eVwiLCBcImNvbmdyYXR1bGF0aW9uc1wiLCBcImJpcnRoZGF5XCIsIFwibWFnaWNcIiwgXCJjaXJjdXNcIiwgXCJjZWxlYnJhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGODlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJkb2xsc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqYXBhbmVzZVwiLCBcInRveVwiLCBcImtpbW9ub1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGOEVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ3aW5kX2NoaW1lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hdHVyZVwiLCBcImRpbmdcIiwgXCJzcHJpbmdcIiwgXCJiZWxsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY5MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNyb3NzZWRfZmxhZ3NcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiamFwYW5lc2VcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYm9yZGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REY4Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIml6YWtheWFfbGFudGVyblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsaWdodFwiLCBcInBhcGVyXCIsIFwiaGFsbG93ZWVuXCIsIFwic3Bvb2t5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInJlZF9lbnZlbG9wZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnaWZ0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImVtYWlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxldHRlclwiLCBcInBvc3RhbFwiLCBcImluYm94XCIsIFwiY29tbXVuaWNhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MDlcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJlbnZlbG9wZV93aXRoX2Fycm93XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImVtYWlsXCIsIFwiY29tbXVuaWNhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJpbmNvbWluZ19lbnZlbG9wZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlbWFpbFwiLCBcImluYm94XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImUtbWFpbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb21tdW5pY2F0aW9uXCIsIFwiaW5ib3hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0U3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibG92ZV9sZXR0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZW1haWxcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwiZW52ZWxvcGVcIiwgXCJ2YWxlbnRpbmVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM4Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBvc3Rib3hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZW1haWxcIiwgXCJsZXR0ZXJcIiwgXCJlbnZlbG9wZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJtYWlsYm94X2Nsb3NlZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlbWFpbFwiLCBcImNvbW11bmljYXRpb25cIiwgXCJpbmJveFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJtYWlsYm94XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImVtYWlsXCIsIFwiaW5ib3hcIiwgXCJjb21tdW5pY2F0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENFQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1haWxib3hfd2l0aF9tYWlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImVtYWlsXCIsIFwiaW5ib3hcIiwgXCJjb21tdW5pY2F0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1haWxib3hfd2l0aF9ub19tYWlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImVtYWlsXCIsIFwiaW5ib3hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0VEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicGFja2FnZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWlsXCIsIFwiZ2lmdFwiLCBcImNhcmRib2FyZFwiLCBcImJveFwiLCBcIm1vdmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwb3N0YWxfaG9yblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpbnN0cnVtZW50XCIsIFwibXVzaWNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0VGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiaW5ib3hfdHJheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlbWFpbFwiLCBcImRvY3VtZW50c1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJvdXRib3hfdHJheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpbmJveFwiLCBcImVtYWlsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENFNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInNjcm9sbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N1bWVudHNcIiwgXCJhbmNpZW50XCIsIFwiaGlzdG9yeVwiLCBcInBhcGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENEQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBhZ2Vfd2l0aF9jdXJsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRvY3VtZW50c1wiLCBcIm9mZmljZVwiLCBcInBhcGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENDM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJvb2ttYXJrX3RhYnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmF2b3JpdGVcIiwgXCJzYXZlXCIsIFwib3JkZXJcIiwgXCJ0aWR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENEMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInJlY2VpcHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWNjb3VudGluZ1wiLCBcImV4cGVuc2VzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERGRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJhcl9jaGFydFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJncmFwaFwiLCBcInByZXNlbnRhdGlvblwiLCBcInN0YXRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENDQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNoYXJ0X3dpdGhfdXB3YXJkc190cmVuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJncmFwaFwiLCBcInByZXNlbnRhdGlvblwiLCBcInN0YXRzXCIsIFwicmVjb3ZlcnlcIiwgXCJidXNpbmVzc1wiLCBcImVjb25vbWljc1wiLCBcIm1vbmV5XCIsIFwic2FsZXNcIiwgXCJnb29kXCIsIFwic3VjY2Vzc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQzhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjaGFydF93aXRoX2Rvd253YXJkc190cmVuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJncmFwaFwiLCBcInByZXNlbnRhdGlvblwiLCBcInN0YXRzXCIsIFwicmVjZXNzaW9uXCIsIFwiYnVzaW5lc3NcIiwgXCJlY29ub21pY3NcIiwgXCJtb25leVwiLCBcInNhbGVzXCIsIFwiYmFkXCIsIFwiZmFpbHVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQzlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwYWdlX2ZhY2luZ191cFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N1bWVudHNcIiwgXCJvZmZpY2VcIiwgXCJwYXBlclwiLCBcImluZm9ybWF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENDNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImRhdGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2FsZW5kYXJcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQzVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJjYWxlbmRhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzY2hlZHVsZVwiLCBcImRhdGVcIiwgXCJwbGFubmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQzZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzcGlyYWxfY2FsZW5kYXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGF0ZVwiLCBcInNjaGVkdWxlXCIsIFwicGxhbm5pbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREQzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2FyZF9pbmRleFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidXNpbmVzc1wiLCBcInN0YXRpb25lcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0M3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2FyZF9maWxlX2JveFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidXNpbmVzc1wiLCBcInN0YXRpb25lcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREMzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYmFsbG90X2JveFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlbGVjdGlvblwiLCBcInZvdGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZmlsZV9jYWJpbmV0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZpbGluZ1wiLCBcIm9yZ2FuaXppbmdcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREM0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2xpcGJvYXJkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXRpb25lcnlcIiwgXCJkb2N1bWVudHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0NCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwic3BpcmFsX25vdGVwYWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWVtb1wiLCBcInN0YXRpb25lcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREQyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiZmlsZV9mb2xkZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZG9jdW1lbnRzXCIsIFwiYnVzaW5lc3NcIiwgXCJvZmZpY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0MxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwib3Blbl9maWxlX2ZvbGRlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N1bWVudHNcIiwgXCJsb2FkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENDMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImNhcmRfaW5kZXhfZGl2aWRlcnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wib3JnYW5pemluZ1wiLCBcImJ1c2luZXNzXCIsIFwic3RhdGlvbmVyeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREQzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJuZXdzcGFwZXJfcm9sbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwcmVzc1wiLCBcImhlYWRsaW5lXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERERVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm5ld3NwYXBlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwcmVzc1wiLCBcImhlYWRsaW5lXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm5vdGVib29rXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXRpb25lcnlcIiwgXCJyZWNvcmRcIiwgXCJub3Rlc1wiLCBcInBhcGVyXCIsIFwic3R1ZHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0QzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2xvc2VkX2Jvb2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVhZFwiLCBcImxpYnJhcnlcIiwgXCJrbm93bGVkZ2VcIiwgXCJ0ZXh0Ym9va1wiLCBcImxlYXJuXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENENVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImdyZWVuX2Jvb2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVhZFwiLCBcImxpYnJhcnlcIiwgXCJrbm93bGVkZ2VcIiwgXCJzdHVkeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRDdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJibHVlX2Jvb2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVhZFwiLCBcImxpYnJhcnlcIiwgXCJrbm93bGVkZ2VcIiwgXCJsZWFyblwiLCBcInN0dWR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENEOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm9yYW5nZV9ib29rXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJlYWRcIiwgXCJsaWJyYXJ5XCIsIFwia25vd2xlZGdlXCIsIFwidGV4dGJvb2tcIiwgXCJzdHVkeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRDlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJub3RlYm9va193aXRoX2RlY29yYXRpdmVfY292ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2xhc3Nyb29tXCIsIFwibm90ZXNcIiwgXCJyZWNvcmRcIiwgXCJwYXBlclwiLCBcInN0dWR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENENFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImxlZGdlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJub3Rlc1wiLCBcInBhcGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENEMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImJvb2tzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxpdGVyYXR1cmVcIiwgXCJsaWJyYXJ5XCIsIFwic3R1ZHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0RBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwib3Blbl9ib29rXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJvb2tcIiwgXCJyZWFkXCIsIFwibGlicmFyeVwiLCBcImtub3dsZWRnZVwiLCBcImxpdGVyYXR1cmVcIiwgXCJsZWFyblwiLCBcInN0dWR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENENlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInNhZmV0eV9waW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGlhcGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImxpbmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmluZ3NcIiwgXCJ1cmxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDE3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicGFwZXJjbGlwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRvY3VtZW50c1wiLCBcInN0YXRpb25lcnlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0NFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwicGFwZXJjbGlwc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb2N1bWVudHNcIiwgXCJzdGF0aW9uZXJ5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ4N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInNjaXNzb3JzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXRpb25lcnlcIiwgXCJjdXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzAyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidHJpYW5ndWxhcl9ydWxlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdGF0aW9uZXJ5XCIsIFwibWF0aFwiLCBcImFyY2hpdGVjdFwiLCBcInNrZXRjaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJzdHJhaWdodF9ydWxlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdGF0aW9uZXJ5XCIsIFwiY2FsY3VsYXRlXCIsIFwibGVuZ3RoXCIsIFwibWF0aFwiLCBcInNjaG9vbFwiLCBcImRyYXdpbmdcIiwgXCJhcmNoaXRlY3RcIiwgXCJza2V0Y2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0NGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiYWJhY3VzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNhbGN1bGF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRVx1RERFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInB1c2hwaW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhdGlvbmVyeVwiLCBcIm1hcmtcIiwgXCJoZXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENDQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInJvdW5kX3B1c2hwaW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhdGlvbmVyeVwiLCBcImxvY2F0aW9uXCIsIFwibWFwXCIsIFwiaGVyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQ0RcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJ0cmlhbmd1bGFyX2ZsYWdfb25fcG9zdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYXJrXCIsIFwibWlsZXN0b25lXCIsIFwicGxhY2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUE5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwid2hpdGVfZmxhZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsb3NpbmdcIiwgXCJsb3NlclwiLCBcImxvc3RcIiwgXCJzdXJyZW5kZXJcIiwgXCJnaXZlIHVwXCIsIFwiZmFpbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJibGFja19mbGFnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBpcmF0ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJyYWluYm93X2ZsYWdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmxhZ1wiLCBcInJhaW5ib3dcIiwgXCJwcmlkZVwiLCBcImdheVwiLCBcImxnYnRcIiwgXCJnbGJ0XCIsIFwicXVlZXJcIiwgXCJob21vc2V4dWFsXCIsIFwibGVzYmlhblwiLCBcImJpc2V4dWFsXCIsIFwidHJhbnNnZW5kZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkYzXHVGRTBGXHUyMDBEXHVEODNDXHVERjA4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY2xvc2VkX2xvY2tfd2l0aF9rZXlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2VjdXJpdHlcIiwgXCJwcml2YWN5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQxMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcImxvY2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2VjdXJpdHlcIiwgXCJwYXNzd29yZFwiLCBcInBhZGxvY2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDEyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwidW5sb2NrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInByaXZhY3lcIiwgXCJzZWN1cml0eVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJsb2NrX3dpdGhfaW5rX3BlblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzZWN1cml0eVwiLCBcInNlY3JldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJwZW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhdGlvbmVyeVwiLCBcIndyaXRpbmdcIiwgXCJ3cml0ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREOEFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJmb3VudGFpbl9wZW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhdGlvbmVyeVwiLCBcIndyaXRpbmdcIiwgXCJ3cml0ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREOEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJibGFja19uaWJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGVuXCIsIFwic3RhdGlvbmVyeVwiLCBcIndyaXRpbmdcIiwgXCJ3cml0ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MTJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJtZW1vXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndyaXRlXCIsIFwiZG9jdW1lbnRzXCIsIFwic3RhdGlvbmVyeVwiLCBcInBlbmNpbFwiLCBcInBhcGVyXCIsIFwid3JpdGluZ1wiLCBcImxlZ2FsXCIsIFwiZXhhbVwiLCBcInF1aXpcIiwgXCJ0ZXN0XCIsIFwic3R1ZHlcIiwgXCJjb21wb3NlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENERFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBlbmNpbDJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RhdGlvbmVyeVwiLCBcIndyaXRlXCIsIFwicGFwZXJcIiwgXCJ3cml0aW5nXCIsIFwic2Nob29sXCIsIFwic3R1ZHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzBGXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwiY3JheW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRyYXdpbmdcIiwgXCJjcmVhdGl2aXR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ4RFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcInBhaW50YnJ1c2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJhd2luZ1wiLCBcImNyZWF0aXZpdHlcIiwgXCJhcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDhDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwib2JqZWN0c1wiXG4gIH0sXG4gIFwibWFnXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNlYXJjaFwiLCBcInpvb21cIiwgXCJmaW5kXCIsIFwiZGV0ZWN0aXZlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQwRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcIm9iamVjdHNcIlxuICB9LFxuICBcIm1hZ19yaWdodFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzZWFyY2hcIiwgXCJ6b29tXCIsIFwiZmluZFwiLCBcImRldGVjdGl2ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMEVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJvYmplY3RzXCJcbiAgfSxcbiAgXCJoZWFydFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsb3ZlXCIsIFwibGlrZVwiLCBcInZhbGVudGluZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzY0XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib3JhbmdlX2hlYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0VcdURERTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ5ZWxsb3dfaGVhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcImxpa2VcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImdyZWVuX2hlYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJibHVlX2hlYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJwdXJwbGVfaGVhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcImxpa2VcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJsYWNrX2hlYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV2aWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEREE0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYnJva2VuX2hlYXJ0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNhZFwiLCBcInNvcnJ5XCIsIFwiYnJlYWtcIiwgXCJoZWFydFwiLCBcImhlYXJ0YnJlYWtcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzk0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaGVhdnlfaGVhcnRfZXhjbGFtYXRpb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGVjb3JhdGlvblwiLCBcImxvdmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidHdvX2hlYXJ0c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsb3ZlXCIsIFwibGlrZVwiLCBcImFmZmVjdGlvblwiLCBcInZhbGVudGluZXNcIiwgXCJoZWFydFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZXZvbHZpbmdfaGVhcnRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiYWZmZWN0aW9uXCIsIFwidmFsZW50aW5lc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJoZWFydGJlYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcImxpa2VcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCIsIFwicGlua1wiLCBcImhlYXJ0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImhlYXJ0cHVsc2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibGlrZVwiLCBcImxvdmVcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCIsIFwicGlua1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDOTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzcGFya2xpbmdfaGVhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcImxpa2VcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImN1cGlkXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxvdmVcIiwgXCJsaWtlXCIsIFwiaGVhcnRcIiwgXCJhZmZlY3Rpb25cIiwgXCJ2YWxlbnRpbmVzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REM5OFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImdpZnRfaGVhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG92ZVwiLCBcInZhbGVudGluZXNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzlEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaGVhcnRfZGVjb3JhdGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwdXJwbGUtc3F1YXJlXCIsIFwibG92ZVwiLCBcImxpa2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQzlGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicGVhY2Vfc3ltYm9sXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhpcHBpZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsYXRpbl9jcm9zc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjaHJpc3RpYW5pdHlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzFEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic3Rhcl9hbmRfY3Jlc2NlbnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaXNsYW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjJBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib21cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaGluZHVpc21cIiwgXCJidWRkaGlzbVwiLCBcInNpa2hpc21cIiwgXCJqYWluaXNtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ0OVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndoZWVsX29mX2RoYXJtYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoaW5kdWlzbVwiLCBcImJ1ZGRoaXNtXCIsIFwic2lraGlzbVwiLCBcImphaW5pc21cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjM4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic3Rhcl9vZl9kYXZpZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqdWRhaXNtXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjcyMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNpeF9wb2ludGVkX3N0YXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHVycGxlLXNxdWFyZVwiLCBcInJlbGlnaW9uXCIsIFwiamV3aXNoXCIsIFwiaGV4YWdyYW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDJGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibWVub3JhaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJoYW51a2thaFwiLCBcImNhbmRsZXNcIiwgXCJqZXdpc2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDRFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwieWluX3lhbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmFsYW5jZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJvcnRob2RveF9jcm9zc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdXBwZWRhbmV1bVwiLCBcInJlbGlnaW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYyNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInBsYWNlX29mX3dvcnNoaXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVsaWdpb25cIiwgXCJjaHVyY2hcIiwgXCJ0ZW1wbGVcIiwgXCJwcmF5ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUQwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib3BoaXVjaHVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpZ25cIiwgXCJwdXJwbGUtc3F1YXJlXCIsIFwiY29uc3RlbGxhdGlvblwiLCBcImFzdHJvbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2Q0VcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcmllc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWduXCIsIFwicHVycGxlLXNxdWFyZVwiLCBcInpvZGlhY1wiLCBcImFzdHJvbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2NDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ0YXVydXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHVycGxlLXNxdWFyZVwiLCBcInNpZ25cIiwgXCJ6b2RpYWNcIiwgXCJhc3Ryb2xvZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjQ5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZ2VtaW5pXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpZ25cIiwgXCJ6b2RpYWNcIiwgXCJwdXJwbGUtc3F1YXJlXCIsIFwiYXN0cm9sb2d5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY0QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNhbmNlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWduXCIsIFwiem9kaWFjXCIsIFwicHVycGxlLXNxdWFyZVwiLCBcImFzdHJvbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2NEJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsZW9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2lnblwiLCBcInB1cnBsZS1zcXVhcmVcIiwgXCJ6b2RpYWNcIiwgXCJhc3Ryb2xvZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjRDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidmlyZ29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2lnblwiLCBcInpvZGlhY1wiLCBcInB1cnBsZS1zcXVhcmVcIiwgXCJhc3Ryb2xvZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjREXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibGlicmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2lnblwiLCBcInB1cnBsZS1zcXVhcmVcIiwgXCJ6b2RpYWNcIiwgXCJhc3Ryb2xvZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjRFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic2NvcnBpdXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2lnblwiLCBcInpvZGlhY1wiLCBcInB1cnBsZS1zcXVhcmVcIiwgXCJhc3Ryb2xvZ3lcIiwgXCJzY29ycGlvXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY0RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNhZ2l0dGFyaXVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpZ25cIiwgXCJ6b2RpYWNcIiwgXCJwdXJwbGUtc3F1YXJlXCIsIFwiYXN0cm9sb2d5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY1MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNhcHJpY29yblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWduXCIsIFwiem9kaWFjXCIsIFwicHVycGxlLXNxdWFyZVwiLCBcImFzdHJvbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2NTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcXVhcml1c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWduXCIsIFwicHVycGxlLXNxdWFyZVwiLCBcInpvZGlhY1wiLCBcImFzdHJvbG9neVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2NTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJwaXNjZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHVycGxlLXNxdWFyZVwiLCBcInNpZ25cIiwgXCJ6b2RpYWNcIiwgXCJhc3Ryb2xvZ3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHVycGxlLXNxdWFyZVwiLCBcIndvcmRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ5NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImF0b21fc3ltYm9sXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNjaWVuY2VcIiwgXCJwaHlzaWNzXCIsIFwiY2hlbWlzdHJ5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY5QlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInU3YTdhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImthbmppXCIsIFwiamFwYW5lc2VcIiwgXCJjaGluZXNlXCIsIFwiZW1wdHlcIiwgXCJza3lcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURFMzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ1NTI3MlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjdXRcIiwgXCJkaXZpZGVcIiwgXCJjaGluZXNlXCIsIFwia2FuamlcIiwgXCJwaW5rLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURFMzlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyYWRpb2FjdGl2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJudWNsZWFyXCIsIFwiZGFuZ2VyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjYyMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJpb2hhemFyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkYW5nZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjIzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibW9iaWxlX3Bob25lX29mZlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtdXRlXCIsIFwib3JhbmdlLXNxdWFyZVwiLCBcInNpbGVuY2VcIiwgXCJxdWlldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ2aWJyYXRpb25fbW9kZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJvcmFuZ2Utc3F1YXJlXCIsIFwicGhvbmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0YzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidTY3MDlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wib3JhbmdlLXNxdWFyZVwiLCBcImNoaW5lc2VcIiwgXCJoYXZlXCIsIFwia2FuamlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTM2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidTcxMjFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibm90aGluZ1wiLCBcImNoaW5lc2VcIiwgXCJrYW5qaVwiLCBcImphcGFuZXNlXCIsIFwib3JhbmdlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURFMUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ1NzUzM1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjaGluZXNlXCIsIFwiamFwYW5lc2VcIiwgXCJrYW5qaVwiLCBcIm9yYW5nZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTM4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidTU1YjZcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiamFwYW5lc2VcIiwgXCJvcGVuaW5nIGhvdXJzXCIsIFwib3JhbmdlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURFM0FcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ1NjcwOFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjaGluZXNlXCIsIFwibW9udGhcIiwgXCJtb29uXCIsIFwiamFwYW5lc2VcIiwgXCJvcmFuZ2Utc3F1YXJlXCIsIFwia2FuamlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTM3XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZWlnaHRfcG9pbnRlZF9ibGFja19zdGFyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9yYW5nZS1zcXVhcmVcIiwgXCJzaGFwZVwiLCBcInBvbHlnb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzM0XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29yZHNcIiwgXCJvcmFuZ2Utc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ5QVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFjY2VwdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJva1wiLCBcImdvb2RcIiwgXCJjaGluZXNlXCIsIFwia2FuamlcIiwgXCJhZ3JlZVwiLCBcInllc1wiLCBcIm9yYW5nZS1jaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTUxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwid2hpdGVfZmxvd2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImphcGFuZXNlXCIsIFwic3ByaW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENBRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImlkZW9ncmFwaF9hZHZhbnRhZ2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hpbmVzZVwiLCBcImthbmppXCIsIFwib2J0YWluXCIsIFwiZ2V0XCIsIFwiY2lyY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REU1MFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNlY3JldFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwcml2YWN5XCIsIFwiY2hpbmVzZVwiLCBcInNzaGhcIiwgXCJrYW5qaVwiLCBcInJlZC1jaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUzMjk5XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY29uZ3JhdHVsYXRpb25zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNoaW5lc2VcIiwgXCJrYW5qaVwiLCBcImphcGFuZXNlXCIsIFwicmVkLWNpcmNsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTMyOTdcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ1NTQwOFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqYXBhbmVzZVwiLCBcImNoaW5lc2VcIiwgXCJqb2luXCIsIFwia2FuamlcIiwgXCJyZWQtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REUzNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInU2ZTgwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZ1bGxcIiwgXCJjaGluZXNlXCIsIFwiamFwYW5lc2VcIiwgXCJyZWQtc3F1YXJlXCIsIFwia2FuamlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTM1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidTc5ODFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wia2FuamlcIiwgXCJqYXBhbmVzZVwiLCBcImNoaW5lc2VcIiwgXCJmb3JiaWRkZW5cIiwgXCJsaW1pdFwiLCBcInJlc3RyaWN0ZWRcIiwgXCJyZWQtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REUzMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVkLXNxdWFyZVwiLCBcImFscGhhYmV0XCIsIFwibGV0dGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ3MFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicmVkLXNxdWFyZVwiLCBcImFscGhhYmV0XCIsIFwibGV0dGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ3MVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFiXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJlZC1zcXVhcmVcIiwgXCJhbHBoYWJldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdUREOEVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbHBoYWJldFwiLCBcIndvcmRzXCIsIFwicmVkLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdUREOTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJvMlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbHBoYWJldFwiLCBcInJlZC1zcXVhcmVcIiwgXCJsZXR0ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDdFXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic29zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhlbHBcIiwgXCJyZWQtc3F1YXJlXCIsIFwid29yZHNcIiwgXCJlbWVyZ2VuY3lcIiwgXCI5MTFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDk4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm9fZW50cnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibGltaXRcIiwgXCJzZWN1cml0eVwiLCBcInByaXZhY3lcIiwgXCJiYWRcIiwgXCJkZW5pZWRcIiwgXCJzdG9wXCIsIFwiY2lyY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjZENFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5hbWVfYmFkZ2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmlyZVwiLCBcImZvcmJpZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDREJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJub19lbnRyeV9zaWduXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZvcmJpZFwiLCBcInN0b3BcIiwgXCJsaW1pdFwiLCBcImRlbmllZFwiLCBcImRpc2FsbG93XCIsIFwiY2lyY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibm9cIiwgXCJkZWxldGVcIiwgXCJyZW1vdmVcIiwgXCJjYW5jZWxcIiwgXCJyZWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzRDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjaXJjbGVcIiwgXCJyb3VuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTJCNTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzdG9wX3NpZ25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3RvcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFRDFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhbmdlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbmdyeVwiLCBcIm1hZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJob3RzcHJpbmdzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhdGhcIiwgXCJ3YXJtXCIsIFwicmVsYXhcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjY4XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm9fcGVkZXN0cmlhbnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicnVsZXNcIiwgXCJjcm9zc2luZ1wiLCBcIndhbGtpbmdcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUI3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZG9fbm90X2xpdHRlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0cmFzaFwiLCBcImJpblwiLCBcImdhcmJhZ2VcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUFGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm9fYmljeWNsZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY3ljbGlzdFwiLCBcInByb2hpYml0ZWRcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUIzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm9uLXBvdGFibGVfd2F0ZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJpbmtcIiwgXCJmYXVjZXRcIiwgXCJ0YXBcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUIxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidW5kZXJhZ2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiMThcIiwgXCJkcmlua1wiLCBcInB1YlwiLCBcIm5pZ2h0XCIsIFwibWlub3JcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDFFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm9fbW9iaWxlX3Bob25lc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpcGhvbmVcIiwgXCJtdXRlXCIsIFwiY2lyY2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImV4Y2xhbWF0aW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhlYXZ5X2V4Y2xhbWF0aW9uX21hcmtcIiwgXCJkYW5nZXJcIiwgXCJzdXJwcmlzZVwiLCBcInB1bmN0dWF0aW9uXCIsIFwid293XCIsIFwid2FybmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3NTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJncmV5X2V4Y2xhbWF0aW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN1cnByaXNlXCIsIFwicHVuY3R1YXRpb25cIiwgXCJncmF5XCIsIFwid293XCIsIFwid2FybmluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3NTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJxdWVzdGlvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkb3VidFwiLCBcImNvbmZ1c2VkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1Mjc1M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImdyZXlfcXVlc3Rpb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZG91YnRzXCIsIFwiZ3JheVwiLCBcImh1aFwiLCBcImNvbmZ1c2VkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1Mjc1NFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJhbmdiYW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV4Y2xhbWF0aW9uXCIsIFwic3VycHJpc2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyMDNDXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaW50ZXJyb2JhbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2F0XCIsIFwicHVuY3R1YXRpb25cIiwgXCJzdXJwcmlzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIwNDlcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCIxMDBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2NvcmVcIiwgXCJwZXJmZWN0XCIsIFwibnVtYmVyc1wiLCBcImNlbnR1cnlcIiwgXCJleGFtXCIsIFwicXVpelwiLCBcInRlc3RcIiwgXCJwYXNzXCIsIFwiaHVuZHJlZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsb3dfYnJpZ2h0bmVzc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdW5cIiwgXCJhZnRlcm5vb25cIiwgXCJ3YXJtXCIsIFwic3VtbWVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQwNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImhpZ2hfYnJpZ2h0bmVzc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdW5cIiwgXCJsaWdodFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ0cmlkZW50XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIndlYXBvblwiLCBcInNwZWFyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQzMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImZsZXVyX2RlX2xpc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJkZWNvcmF0aXZlXCIsIFwic2NvdXRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjlDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicGFydF9hbHRlcm5hdGlvbl9tYXJrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdyYXBoXCIsIFwicHJlc2VudGF0aW9uXCIsIFwic3RhdHNcIiwgXCJidXNpbmVzc1wiLCBcImVjb25vbWljc1wiLCBcImJhZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTMwM0RcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ3YXJuaW5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV4Y2xhbWF0aW9uXCIsIFwid2lwXCIsIFwiYWxlcnRcIiwgXCJlcnJvclwiLCBcInByb2JsZW1cIiwgXCJpc3N1ZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2QTBcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjaGlsZHJlbl9jcm9zc2luZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzY2hvb2xcIiwgXCJ3YXJuaW5nXCIsIFwiZGFuZ2VyXCIsIFwic2lnblwiLCBcImRyaXZpbmdcIiwgXCJ5ZWxsb3ctZGlhbW9uZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJiZWdpbm5lclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYWRnZVwiLCBcInNoaWVsZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMzBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZWN5Y2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFycm93XCIsIFwiZW52aXJvbm1lbnRcIiwgXCJnYXJiYWdlXCIsIFwidHJhc2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjdCXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidTYzMDdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hpbmVzZVwiLCBcInBvaW50XCIsIFwiZ3JlZW4tc3F1YXJlXCIsIFwia2FuamlcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTJGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2hhcnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ3JlZW4tc3F1YXJlXCIsIFwiZ3JhcGhcIiwgXCJwcmVzZW50YXRpb25cIiwgXCJzdGF0c1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzcGFya2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXJzXCIsIFwiZ3JlZW4tc3F1YXJlXCIsIFwiYXdlc29tZVwiLCBcImdvb2RcIiwgXCJmaXJld29ya3NcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzQ3XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZWlnaHRfc3Bva2VkX2FzdGVyaXNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN0YXJcIiwgXCJzcGFya2xlXCIsIFwiZ3JlZW4tc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjczM1x1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5lZ2F0aXZlX3NxdWFyZWRfY3Jvc3NfbWFya1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ4XCIsIFwiZ3JlZW4tc3F1YXJlXCIsIFwibm9cIiwgXCJkZW55XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1Mjc0RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndoaXRlX2NoZWNrX21hcmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ3JlZW4tc3F1YXJlXCIsIFwib2tcIiwgXCJhZ3JlZVwiLCBcInZvdGVcIiwgXCJlbGVjdGlvblwiLCBcImFuc3dlclwiLCBcInRpY2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNzA1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZGlhbW9uZF9zaGFwZV93aXRoX2FfZG90X2luc2lkZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqZXdlbFwiLCBcImJsdWVcIiwgXCJnZW1cIiwgXCJjcnlzdGFsXCIsIFwiZmFuY3lcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0EwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY3ljbG9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3ZWF0aGVyXCIsIFwic3dpcmxcIiwgXCJibHVlXCIsIFwiY2xvdWRcIiwgXCJ2b3J0ZXhcIiwgXCJzcGlyYWxcIiwgXCJ3aGlybHBvb2xcIiwgXCJzcGluXCIsIFwidG9ybmFkb1wiLCBcImh1cnJpY2FuZVwiLCBcInR5cGhvb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERjAwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibG9vcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0YXBlXCIsIFwiY2Fzc2V0dGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyN0JGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZ2xvYmVfd2l0aF9tZXJpZGlhbnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZWFydGhcIiwgXCJpbnRlcm5hdGlvbmFsXCIsIFwid29ybGRcIiwgXCJpbnRlcm5ldFwiLCBcImludGVyd2ViXCIsIFwiaTE4blwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGMTBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJtXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFscGhhYmV0XCIsIFwiYmx1ZS1jaXJjbGVcIiwgXCJsZXR0ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNEMyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXRtXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbmV5XCIsIFwic2FsZXNcIiwgXCJjYXNoXCIsIFwiYmx1ZS1zcXVhcmVcIiwgXCJwYXltZW50XCIsIFwiYmFua1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqYXBhbmVzZVwiLCBcImJsdWUtc3F1YXJlXCIsIFwia2F0YWthbmFcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERTAyXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicGFzc3BvcnRfY29udHJvbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjdXN0b21cIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQzJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjdXN0b21zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhc3Nwb3J0XCIsIFwiYm9yZGVyXCIsIFwiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUMzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYmFnZ2FnZV9jbGFpbVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImFpcnBvcnRcIiwgXCJ0cmFuc3BvcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUM0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibGVmdF9sdWdnYWdlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwidHJhdmVsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVDNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndoZWVsY2hhaXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJkaXNhYmxlZFwiLCBcImExMXlcIiwgXCJhY2Nlc3NpYmlsaXR5XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY3RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5vX3Ntb2tpbmdcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2lnYXJldHRlXCIsIFwiYmx1ZS1zcXVhcmVcIiwgXCJzbWVsbFwiLCBcInNtb2tlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVBRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndjXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvaWxldFwiLCBcInJlc3Ryb29tXCIsIFwiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUJFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicGFya2luZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYXJzXCIsIFwiYmx1ZS1zcXVhcmVcIiwgXCJhbHBoYWJldFwiLCBcImxldHRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdUREN0ZcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJwb3RhYmxlX3dhdGVyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwibGlxdWlkXCIsIFwicmVzdHJvb21cIiwgXCJjbGVhbmluZ1wiLCBcImZhdWNldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJtZW5zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRvaWxldFwiLCBcInJlc3Ryb29tXCIsIFwid2NcIiwgXCJibHVlLXNxdWFyZVwiLCBcImdlbmRlclwiLCBcIm1hbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUI5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwid29tZW5zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInB1cnBsZS1zcXVhcmVcIiwgXCJ3b21hblwiLCBcImZlbWFsZVwiLCBcInRvaWxldFwiLCBcImxvb1wiLCBcInJlc3Ryb29tXCIsIFwiZ2VuZGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REVCQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJhYnlfc3ltYm9sXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9yYW5nZS1zcXVhcmVcIiwgXCJjaGlsZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZXN0cm9vbVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInRvaWxldFwiLCBcInJlZnJlc2hcIiwgXCJ3Y1wiLCBcImdlbmRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURFQkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJwdXRfbGl0dGVyX2luX2l0c19wbGFjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInNpZ25cIiwgXCJodW1hblwiLCBcImluZm9cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERUFFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2luZW1hXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwicmVjb3JkXCIsIFwiZmlsbVwiLCBcIm1vdmllXCIsIFwiY3VydGFpblwiLCBcInN0YWdlXCIsIFwidGhlYXRlclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzaWduYWxfc3RyZW5ndGhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJyZWNlcHRpb25cIiwgXCJwaG9uZVwiLCBcImludGVybmV0XCIsIFwiY29ubmVjdGlvblwiLCBcIndpZmlcIiwgXCJibHVldG9vdGhcIiwgXCJiYXJzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENGNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImtva29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJoZXJlXCIsIFwia2F0YWthbmFcIiwgXCJqYXBhbmVzZVwiLCBcImRlc3RpbmF0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REUwMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwid29yZHNcIiwgXCJzaGFwZVwiLCBcImljb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDk2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ29vZFwiLCBcImFncmVlXCIsIFwieWVzXCIsIFwiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDk3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidXBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJhYm92ZVwiLCBcImhpZ2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDk5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY29vbFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3b3Jkc1wiLCBcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ5MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5ld1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcIndvcmRzXCIsIFwic3RhcnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERDk1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZnJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcIndvcmRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REQ5M1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInplcm9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiMFwiLCBcIm51bWJlcnNcIiwgXCJibHVlLXNxdWFyZVwiLCBcIm51bGxcIl0sXG4gICAgXCJjaGFyXCI6IFwiMFx1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcIm51bWJlcnNcIiwgXCIxXCJdLFxuICAgIFwiY2hhclwiOiBcIjFcdUZFMEZcdTIwRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ0d29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibnVtYmVyc1wiLCBcIjJcIiwgXCJwcmltZVwiLCBcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIjJcdUZFMEZcdTIwRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ0aHJlZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCIzXCIsIFwibnVtYmVyc1wiLCBcInByaW1lXCIsIFwiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiM1x1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImZvdXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiNFwiLCBcIm51bWJlcnNcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCI0XHVGRTBGXHUyMEUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiZml2ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCI1XCIsIFwibnVtYmVyc1wiLCBcImJsdWUtc3F1YXJlXCIsIFwicHJpbWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiNVx1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNpeFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCI2XCIsIFwibnVtYmVyc1wiLCBcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIjZcdUZFMEZcdTIwRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzZXZlblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCI3XCIsIFwibnVtYmVyc1wiLCBcImJsdWUtc3F1YXJlXCIsIFwicHJpbWVcIl0sXG4gICAgXCJjaGFyXCI6IFwiN1x1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImVpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIjhcIiwgXCJibHVlLXNxdWFyZVwiLCBcIm51bWJlcnNcIl0sXG4gICAgXCJjaGFyXCI6IFwiOFx1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5pbmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJudW1iZXJzXCIsIFwiOVwiXSxcbiAgICBcImNoYXJcIjogXCI5XHVGRTBGXHUyMEUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwia2V5Y2FwX3RlblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJudW1iZXJzXCIsIFwiMTBcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhc3Rlcmlza1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzdGFyXCIsIFwia2V5Y2FwXCJdLFxuICAgIFwiY2hhclwiOiBcIipcdTIwRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCIxMjM0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm51bWJlcnNcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJlamVjdF9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0NGXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfZm9yd2FyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInJpZ2h0XCIsIFwiZGlyZWN0aW9uXCIsIFwicGxheVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI1QjZcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJwYXVzZV9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGF1c2VcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIzRjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJuZXh0X3RyYWNrX2J1dHRvblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb3J3YXJkXCIsIFwibmV4dFwiLCBcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjNFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInN0b3BfYnV0dG9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjNGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInJlY29yZF9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0ZBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicGxheV9vcl9wYXVzZV9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJwbGF5XCIsIFwicGF1c2VcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0VGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwicHJldmlvdXNfdHJhY2tfYnV0dG9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJhY2t3YXJkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjNFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImZhc3RfZm9yd2FyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInBsYXlcIiwgXCJzcGVlZFwiLCBcImNvbnRpbnVlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjNFOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInJld2luZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwbGF5XCIsIFwiYmx1ZS1zcXVhcmVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyM0VBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidHdpc3RlZF9yaWdodHdhcmRzX2Fycm93c1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInNodWZmbGVcIiwgXCJtdXNpY1wiLCBcInJhbmRvbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZXBlYXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibG9vcFwiLCBcInJlY29yZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZXBlYXRfb25lXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwibG9vcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd19iYWNrd2FyZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImxlZnRcIiwgXCJkaXJlY3Rpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNUMwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfdXBfc21hbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJ0cmlhbmdsZVwiLCBcImRpcmVjdGlvblwiLCBcInBvaW50XCIsIFwiZm9yd2FyZFwiLCBcInRvcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREM0NcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd19kb3duX3NtYWxsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwiZGlyZWN0aW9uXCIsIFwiYm90dG9tXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQzRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X2RvdWJsZV91cFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImRpcmVjdGlvblwiLCBcInRvcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIzRUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd19kb3VibGVfZG93blwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImRpcmVjdGlvblwiLCBcImJvdHRvbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIzRUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd19yaWdodFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcIm5leHRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyN0ExXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfbGVmdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcInByZXZpb3VzXCIsIFwiYmFja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTJCMDVcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd191cFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImNvbnRpbnVlXCIsIFwidG9wXCIsIFwiZGlyZWN0aW9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MkIwNlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X2Rvd25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJkaXJlY3Rpb25cIiwgXCJib3R0b21cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyQjA3XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfdXBwZXJfcmlnaHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJwb2ludFwiLCBcImRpcmVjdGlvblwiLCBcImRpYWdvbmFsXCIsIFwibm9ydGhlYXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjE5N1x1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X2xvd2VyX3JpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwiZGlyZWN0aW9uXCIsIFwiZGlhZ29uYWxcIiwgXCJzb3V0aGVhc3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyMTk4XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfbG93ZXJfbGVmdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImRpcmVjdGlvblwiLCBcImRpYWdvbmFsXCIsIFwic291dGh3ZXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjE5OVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X3VwcGVyX2xlZnRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJwb2ludFwiLCBcImRpcmVjdGlvblwiLCBcImRpYWdvbmFsXCIsIFwibm9ydGh3ZXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjE5Nlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X3VwX2Rvd25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJkaXJlY3Rpb25cIiwgXCJ3YXlcIiwgXCJ2ZXJ0aWNhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIxOTVcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsZWZ0X3JpZ2h0X2Fycm93XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwiZGlyZWN0aW9uXCIsIFwiaG9yaXpvbnRhbFwiLCBcInNpZGV3YXlzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjE5NFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93c19jb3VudGVyY2xvY2t3aXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJsdWUtc3F1YXJlXCIsIFwic3luY1wiLCBcImN5Y2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQwNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFycm93X3JpZ2h0X2hvb2tcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJyZXR1cm5cIiwgXCJyb3RhdGVcIiwgXCJkaXJlY3Rpb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyMUFBXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibGVmdHdhcmRzX2Fycm93X3dpdGhfaG9va1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYWNrXCIsIFwicmV0dXJuXCIsIFwiYmx1ZS1zcXVhcmVcIiwgXCJ1bmRvXCIsIFwiZW50ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyMUE5XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYXJyb3dfaGVhZGluZ191cFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImRpcmVjdGlvblwiLCBcInRvcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI5MzRcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd19oZWFkaW5nX2Rvd25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJkaXJlY3Rpb25cIiwgXCJib3R0b21cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyOTM1XHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaGFzaFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzeW1ib2xcIiwgXCJibHVlLXNxdWFyZVwiLCBcInR3aXR0ZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiI1x1RkUwRlx1MjBFM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImluZm9ybWF0aW9uX3NvdXJjZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImFscGhhYmV0XCIsIFwibGV0dGVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjEzOVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFiY1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibHVlLXNxdWFyZVwiLCBcImFscGhhYmV0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImFiY2RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJhbHBoYWJldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjYXBpdGFsX2FiY2RcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWxwaGFiZXRcIiwgXCJ3b3Jkc1wiLCBcImJsdWUtc3F1YXJlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQyMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInN5bWJvbHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmx1ZS1zcXVhcmVcIiwgXCJtdXNpY1wiLCBcIm5vdGVcIiwgXCJhbXBlcnNhbmRcIiwgXCJwZXJjZW50XCIsIFwiZ2x5cGhzXCIsIFwiY2hhcmFjdGVyc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJtdXNpY2FsX25vdGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2NvcmVcIiwgXCJ0b25lXCIsIFwic291bmRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkI1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibm90ZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXVzaWNcIiwgXCJzY29yZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGQjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ3YXZ5X2Rhc2hcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHJhd1wiLCBcImxpbmVcIiwgXCJtb3VzdGFjaGVcIiwgXCJtdXN0YWNoZVwiLCBcInNxdWlnZ2xlXCIsIFwic2NyaWJibGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUzMDMwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY3VybHlfbG9vcFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzY3JpYmJsZVwiLCBcImRyYXdcIiwgXCJzaGFwZVwiLCBcInNxdWlnZ2xlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjdCMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImhlYXZ5X2NoZWNrX21hcmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wib2tcIiwgXCJuaWtlXCIsIFwiYW5zd2VyXCIsIFwieWVzXCIsIFwidGlja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MTRcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJhcnJvd3NfY2xvY2t3aXNlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN5bmNcIiwgXCJjeWNsZVwiLCBcInJvdW5kXCIsIFwicmVwZWF0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQwM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImhlYXZ5X3BsdXNfc2lnblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYXRoXCIsIFwiY2FsY3VsYXRpb25cIiwgXCJhZGRpdGlvblwiLCBcIm1vcmVcIiwgXCJpbmNyZWFzZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3OTVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJoZWF2eV9taW51c19zaWduXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hdGhcIiwgXCJjYWxjdWxhdGlvblwiLCBcInN1YnRyYWN0XCIsIFwibGVzc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3OTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJoZWF2eV9kaXZpc2lvbl9zaWduXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRpdmlkZVwiLCBcIm1hdGhcIiwgXCJjYWxjdWxhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3OTdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJoZWF2eV9tdWx0aXBsaWNhdGlvbl94XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hdGhcIiwgXCJjYWxjdWxhdGlvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI3MTZcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJpbmZpbml0eVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmb3JldmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY3RVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImhlYXZ5X2RvbGxhcl9zaWduXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbmV5XCIsIFwic2FsZXNcIiwgXCJwYXltZW50XCIsIFwiY3VycmVuY3lcIiwgXCJidWNrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RENCMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImN1cnJlbmN5X2V4Y2hhbmdlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbmV5XCIsIFwic2FsZXNcIiwgXCJkb2xsYXJcIiwgXCJ0cmF2ZWxcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVEQ0IxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY29weXJpZ2h0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImlwXCIsIFwibGljZW5zZVwiLCBcImNpcmNsZVwiLCBcImxhd1wiLCBcImxlZ2FsXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MDBBOVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInJlZ2lzdGVyZWRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWxwaGFiZXRcIiwgXCJjaXJjbGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUwMEFFXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidG1cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJhZGVtYXJrXCIsIFwiYnJhbmRcIiwgXCJsYXdcIiwgXCJsZWdhbFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTIxMjJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJlbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29yZHNcIiwgXCJhcnJvd1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJiYWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFycm93XCIsIFwid29yZHNcIiwgXCJyZXR1cm5cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDE5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwib25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXJyb3dcIiwgXCJ3b3Jkc1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ0b3BcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29yZHNcIiwgXCJibHVlLXNxdWFyZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFycm93XCIsIFwid29yZHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDFDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYmFsbG90X2JveF93aXRoX2NoZWNrXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9rXCIsIFwiYWdyZWVcIiwgXCJjb25maXJtXCIsIFwiYmxhY2stc3F1YXJlXCIsIFwidm90ZVwiLCBcImVsZWN0aW9uXCIsIFwieWVzXCIsIFwidGlja1wiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2MTFcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyYWRpb19idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaW5wdXRcIiwgXCJvbGRcIiwgXCJtdXNpY1wiLCBcImNpcmNsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ3aGl0ZV9jaXJjbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJyb3VuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2QUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJibGFja19jaXJjbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJidXR0b25cIiwgXCJyb3VuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI2QUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyZWRfY2lyY2xlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwiZXJyb3JcIiwgXCJkYW5nZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDM0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibGFyZ2VfYmx1ZV9jaXJjbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJpY29uXCIsIFwiYnV0dG9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQzNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNtYWxsX29yYW5nZV9kaWFtb25kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwiamV3ZWxcIiwgXCJnZW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDM4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic21hbGxfYmx1ZV9kaWFtb25kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwiamV3ZWxcIiwgXCJnZW1cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDM5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibGFyZ2Vfb3JhbmdlX2RpYW1vbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJqZXdlbFwiLCBcImdlbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMzZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsYXJnZV9ibHVlX2RpYW1vbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJqZXdlbFwiLCBcImdlbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMzdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzbWFsbF9yZWRfdHJpYW5nbGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJkaXJlY3Rpb25cIiwgXCJ1cFwiLCBcInRvcFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREM0FcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJibGFja19zbWFsbF9zcXVhcmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJpY29uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjVBQVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndoaXRlX3NtYWxsX3NxdWFyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaGFwZVwiLCBcImljb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNUFCXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYmxhY2tfbGFyZ2Vfc3F1YXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwiaWNvblwiLCBcImJ1dHRvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTJCMUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ3aGl0ZV9sYXJnZV9zcXVhcmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJpY29uXCIsIFwic3RvbmVcIiwgXCJidXR0b25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyQjFDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwic21hbGxfcmVkX3RyaWFuZ2xlX2Rvd25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJkaXJlY3Rpb25cIiwgXCJib3R0b21cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDNCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYmxhY2tfbWVkaXVtX3NxdWFyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaGFwZVwiLCBcImJ1dHRvblwiLCBcImljb25cIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNUZDXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwid2hpdGVfbWVkaXVtX3NxdWFyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaGFwZVwiLCBcInN0b25lXCIsIFwiaWNvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI1RkJcdUZFMEZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJibGFja19tZWRpdW1fc21hbGxfc3F1YXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImljb25cIiwgXCJzaGFwZVwiLCBcImJ1dHRvblwiXSxcbiAgICBcImNoYXJcIjogXCJcdTI1RkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJ3aGl0ZV9tZWRpdW1fc21hbGxfc3F1YXJlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNoYXBlXCIsIFwic3RvbmVcIiwgXCJpY29uXCIsIFwiYnV0dG9uXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjVGRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImJsYWNrX3NxdWFyZV9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJpbnB1dFwiLCBcImZyYW1lXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQzMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIndoaXRlX3NxdWFyZV9idXR0b25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2hhcGVcIiwgXCJpbnB1dFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMzNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzcGVha2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNvdW5kXCIsIFwidm9sdW1lXCIsIFwic2lsZW5jZVwiLCBcImJyb2FkY2FzdFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzb3VuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2b2x1bWVcIiwgXCJzcGVha2VyXCIsIFwiYnJvYWRjYXN0XCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQwOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImxvdWRfc291bmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widm9sdW1lXCIsIFwibm9pc2VcIiwgXCJub2lzeVwiLCBcInNwZWFrZXJcIiwgXCJicm9hZGNhc3RcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDBBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibXV0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzb3VuZFwiLCBcInZvbHVtZVwiLCBcInNpbGVuY2VcIiwgXCJxdWlldFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdUREMDdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJtZWdhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNvdW5kXCIsIFwic3BlYWtlclwiLCBcInZvbHVtZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsb3Vkc3BlYWtlclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2b2x1bWVcIiwgXCJzb3VuZFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDRTJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJiZWxsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNvdW5kXCIsIFwibm90aWZpY2F0aW9uXCIsIFwiY2hyaXN0bWFzXCIsIFwieG1hc1wiLCBcImNoaW1lXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQxNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcIm5vX2JlbGxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic291bmRcIiwgXCJ2b2x1bWVcIiwgXCJtdXRlXCIsIFwicXVpZXRcIiwgXCJzaWxlbnRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDE1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYmxhY2tfam9rZXJcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicG9rZXJcIiwgXCJjYXJkc1wiLCBcImdhbWVcIiwgXCJwbGF5XCIsIFwibWFnaWNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEQ0NGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwibWFoam9uZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnYW1lXCIsIFwicGxheVwiLCBcImNoaW5lc2VcIiwgXCJrYW5qaVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURDMDRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJzcGFkZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicG9rZXJcIiwgXCJjYXJkc1wiLCBcInN1aXRzXCIsIFwibWFnaWNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjYwXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2x1YnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicG9rZXJcIiwgXCJjYXJkc1wiLCBcIm1hZ2ljXCIsIFwic3VpdHNcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHUyNjYzXHVGRTBGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiaGVhcnRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBva2VyXCIsIFwiY2FyZHNcIiwgXCJtYWdpY1wiLCBcInN1aXRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY2NVx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImRpYW1vbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBva2VyXCIsIFwiY2FyZHNcIiwgXCJtYWdpY1wiLCBcInN1aXRzXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1MjY2Nlx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImZsb3dlcl9wbGF5aW5nX2NhcmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdhbWVcIiwgXCJzdW5zZXRcIiwgXCJyZWRcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkI0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwidGhvdWdodF9iYWxsb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJ1YmJsZVwiLCBcImNsb3VkXCIsIFwic3BlZWNoXCIsIFwidGhpbmtpbmdcIiwgXCJkcmVhbVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJyaWdodF9hbmdlcl9idWJibGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2FwdGlvblwiLCBcInNwZWVjaFwiLCBcInRoaW5raW5nXCIsIFwibWFkXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERFRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcInNwZWVjaF9iYWxsb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJ1YmJsZVwiLCBcIndvcmRzXCIsIFwibWVzc2FnZVwiLCBcInRhbGtcIiwgXCJjaGF0dGluZ1wiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURDQUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJsZWZ0X3NwZWVjaF9idWJibGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid29yZHNcIiwgXCJtZXNzYWdlXCIsIFwidGFsa1wiLCBcImNoYXR0aW5nXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1RERFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrMVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDUwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2syXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENTFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ1MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrNFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDUzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2s1XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENTRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazZcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCIsIFwiZGF3blwiLCBcImR1c2tcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDU1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2s3XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazhcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ1N1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrOVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDU4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2sxMFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2sxMVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2sxMlwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibm9vblwiLCBcIm1pZG5pZ2h0XCIsIFwibWlkZGF5XCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDVCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2sxMzBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ1Q1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrMjMwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazMzMFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2s0MzBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ1RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrNTMwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazYzMFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2s3MzBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ2MlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrODMwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazkzMFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiY2xvY2sxMDMwXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInRpbWVcIiwgXCJsYXRlXCIsIFwiZWFybHlcIiwgXCJzY2hlZHVsZVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0RcdURENjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJzeW1ib2xzXCJcbiAgfSxcbiAgXCJjbG9jazExMzBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGltZVwiLCBcImxhdGVcIiwgXCJlYXJseVwiLCBcInNjaGVkdWxlXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzRFx1REQ2NlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcInN5bWJvbHNcIlxuICB9LFxuICBcImNsb2NrMTIzMFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1lXCIsIFwibGF0ZVwiLCBcImVhcmx5XCIsIFwic2NoZWR1bGVcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNEXHVERDY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwic3ltYm9sc1wiXG4gIH0sXG4gIFwiYWZnaGFuaXN0YW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYWZcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTZcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYWxhbmRfaXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJcdTAwQzVsYW5kXCIsIFwiaXNsYW5kc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhbGJhbmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFsXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU2XHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImFsZ2VyaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZHpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTlcdUQ4M0NcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYW1lcmljYW5fc2Ftb2FcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYW1lcmljYW5cIiwgXCJ3c1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhbmRvcnJhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFkXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU2XHVEODNDXHVEREU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImFuZ29sYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhbmd1aWxsYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhaVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhbnRhcmN0aWNhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImFxXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU2XHVEODNDXHVEREY2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImFudGlndWFfYmFyYnVkYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbnRpZ3VhXCIsIFwiYmFyYnVkYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhcmdlbnRpbmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXJcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTZcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYXJtZW5pYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhbVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhcnViYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhd1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhdXN0cmFsaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYXVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTZcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYXVzdHJpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJhdFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFNlx1RDgzQ1x1RERGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJhemVyYmFpamFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImF6XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU2XHVEODNDXHVEREZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJhaGFtYXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYmFocmFpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiaFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJiYW5nbGFkZXNoXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJkXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJhcmJhZG9zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJiXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREU3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJlbGFydXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnlcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYmVsZ2l1bVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiZVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJiZWxpemVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYmVuaW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYmpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYmVybXVkYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJibVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJiaHV0YW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYnRcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYm9saXZpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJib1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjYXJpYmJlYW5fbmV0aGVybGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm9uYWlyZVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERGNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJib3NuaWFfaGVyemVnb3ZpbmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm9zbmlhXCIsIFwiaGVyemVnb3ZpbmFcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYm90c3dhbmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYndcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTdcdUQ4M0NcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYnJhemlsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJyXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJyaXRpc2hfaW5kaWFuX29jZWFuX3RlcnJpdG9yeVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJicml0aXNoXCIsIFwiaW5kaWFuXCIsIFwib2NlYW5cIiwgXCJ0ZXJyaXRvcnlcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUVcdUQ4M0NcdURERjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiYnJpdGlzaF92aXJnaW5faXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJicml0aXNoXCIsIFwidmlyZ2luXCIsIFwiaXNsYW5kc1wiLCBcImJ2aVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQlx1RDgzQ1x1RERFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJicnVuZWlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiYm5cIiwgXCJkYXJ1c3NhbGFtXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJ1bGdhcmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJnXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImJ1cmtpbmFfZmFzb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJidXJraW5hXCIsIFwiZmFzb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFN1x1RDgzQ1x1RERFQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJidXJ1bmRpXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImJpXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNhcGVfdmVyZGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2Fib1wiLCBcInZlcmRlXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREZCXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNhbWJvZGlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtoXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNhbWVyb29uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNtXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREYyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNhbmFkYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjYW5hcnlfaXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjYW5hcnlcIiwgXCJpc2xhbmRzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVFXHVEODNDXHVEREU4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNheW1hbl9pc2xhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNheW1hblwiLCBcImlzbGFuZHNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjBcdUQ4M0NcdURERkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiY2VudHJhbF9hZnJpY2FuX3JlcHVibGljXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNlbnRyYWxcIiwgXCJhZnJpY2FuXCIsIFwicmVwdWJsaWNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERThcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiY2hhZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0ZFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERFOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjaGlsZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERThcdUQ4M0NcdURERjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiY25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hpbmFcIiwgXCJjaGluZXNlXCIsIFwicHJjXCIsIFwiZmxhZ1wiLCBcImNvdW50cnlcIiwgXCJuYXRpb25cIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNocmlzdG1hc19pc2xhbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY2hyaXN0bWFzXCIsIFwiaXNsYW5kXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREZEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNvY29zX2lzbGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY29jb3NcIiwgXCJrZWVsaW5nXCIsIFwiaXNsYW5kc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjb2xvbWJpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjb21vcm9zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImttXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREYyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNvbmdvX2JyYXp6YXZpbGxlXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNvbmdvXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNvbmdvX2tpbnNoYXNhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNvbmdvXCIsIFwiZGVtb2NyYXRpY1wiLCBcInJlcHVibGljXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNvb2tfaXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjb29rXCIsIFwiaXNsYW5kc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjb3N0YV9yaWNhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNvc3RhXCIsIFwicmljYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFOFx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJjcm9hdGlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhyXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVEXHVEODNDXHVEREY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImN1YmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiY3VcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERThcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiY3VyYWNhb1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJjdXJhXHUwMEU3YW9cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERThcdUQ4M0NcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiY3lwcnVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImN5XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREZFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImN6ZWNoX3JlcHVibGljXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImN6XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImRlbm1hcmtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGtcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTlcdUQ4M0NcdURERjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZGppYm91dGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZGpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTlcdUQ4M0NcdURERUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZG9taW5pY2FcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZG1cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTlcdUQ4M0NcdURERjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZG9taW5pY2FuX3JlcHVibGljXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImRvbWluaWNhblwiLCBcInJlcHVibGljXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU5XHVEODNDXHVEREY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImVjdWFkb3JcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZWNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUFcdUQ4M0NcdURERThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZWd5cHRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZWdcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUFcdUQ4M0NcdURERUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZWxfc2FsdmFkb3JcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZWxcIiwgXCJzYWx2YWRvclwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERGQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJlcXVhdG9yaWFsX2d1aW5lYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlcXVhdG9yaWFsXCIsIFwiZ25cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZXJpdHJlYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJlclwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQVx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJlc3RvbmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImVlXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVBXHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImV0aGlvcGlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV0XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVBXHVEODNDXHVEREY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImV1XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImV1cm9wZWFuXCIsIFwidW5pb25cIiwgXCJmbGFnXCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQVx1RDgzQ1x1RERGQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJmYWxrbGFuZF9pc2xhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZhbGtsYW5kXCIsIFwiaXNsYW5kc1wiLCBcIm1hbHZpbmFzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVCXHVEODNDXHVEREYwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImZhcm9lX2lzbGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmFyb2VcIiwgXCJpc2xhbmRzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVCXHVEODNDXHVEREY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImZpamlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUJcdUQ4M0NcdURERUZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZmlubGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmaVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQlx1RDgzQ1x1RERFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJmclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJiYW5uZXJcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiZnJhbmNlXCIsIFwiZnJlbmNoXCIsIFwiY291bnRyeVwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUJcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZnJlbmNoX2d1aWFuYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcmVuY2hcIiwgXCJndWlhbmFcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZnJlbmNoX3BvbHluZXNpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmcmVuY2hcIiwgXCJwb2x5bmVzaWFcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjVcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZnJlbmNoX3NvdXRoZXJuX3RlcnJpdG9yaWVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZyZW5jaFwiLCBcInNvdXRoZXJuXCIsIFwidGVycml0b3JpZXNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZ2Fib25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ2FcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERTZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZ2FtYmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdtXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVDXHVEODNDXHVEREYyXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImdlb3JnaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ2VcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZGVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ2VybWFuXCIsIFwibmF0aW9uXCIsIFwiZmxhZ1wiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU5XHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImdoYW5hXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdoXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVDXHVEODNDXHVEREVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImdpYnJhbHRhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnaVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJncmVlY2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ3JcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZ3JlZW5sYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImdsXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVDXHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImdyZW5hZGFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ2RcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZ3VhZGVsb3VwZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJncFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERGNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJndWFtXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImd1XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVDXHVEODNDXHVEREZBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImd1YXRlbWFsYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJndFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJndWVybnNleVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnZ1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJndWluZWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ25cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiZ3VpbmVhX2Jpc3NhdVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJnd1wiLCBcImJpc3NhdVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERGQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJndXlhbmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZ3lcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaGFpdGlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaHRcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERURcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaG9uZHVyYXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaG5cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERURcdUQ4M0NcdURERjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaG9uZ19rb25nXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImhvbmdcIiwgXCJrb25nXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVEXHVEODNDXHVEREYwXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImh1bmdhcnlcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaHVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERURcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaWNlbGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFRVx1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJpbmRpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpblwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFRVx1RDgzQ1x1RERGM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJpbmRvbmVzaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVFXHVEODNDXHVEREU5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImlyYW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiaXJhbixcIiwgXCJpc2xhbWljXCIsIFwicmVwdWJsaWNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUVcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaXJhcVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpcVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFRVx1RDgzQ1x1RERGNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJpcmVsYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImllXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVFXHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImlzbGVfb2ZfbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImlzbGVcIiwgXCJtYW5cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUVcdUQ4M0NcdURERjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiaXNyYWVsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImlsXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVFXHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIml0XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIml0YWx5XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVFXHVEODNDXHVEREY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImNvdGVfZGl2b2lyZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJpdm9yeVwiLCBcImNvYXN0XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImphbWFpY2FcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiam1cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUZcdUQ4M0NcdURERjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwianBcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiamFwYW5lc2VcIiwgXCJuYXRpb25cIiwgXCJmbGFnXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUZcdUQ4M0NcdURERjVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiamVyc2V5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImplXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVGXHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImpvcmRhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJqb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFRlx1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJrYXpha2hzdGFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImt6XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImtlbnlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtlXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImtpcmliYXRpXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImtpXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImtvc292b1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ4a1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGRFx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJrdXdhaXRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wia3dcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjBcdUQ4M0NcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwia3lyZ3l6c3RhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJrZ1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMFx1RDgzQ1x1RERFQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJsYW9zXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxhb1wiLCBcImRlbW9jcmF0aWNcIiwgXCJyZXB1YmxpY1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJsYXR2aWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibHZcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjFcdUQ4M0NcdURERkJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibGViYW5vblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsYlwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERFN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJsZXNvdGhvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImxzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYxXHVEODNDXHVEREY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImxpYmVyaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibHJcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjFcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibGlieWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibHlcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjFcdUQ4M0NcdURERkVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibGllY2h0ZW5zdGVpblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsaVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERFRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJsaXRodWFuaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibHRcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjFcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibHV4ZW1ib3VyZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJsdVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERGQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWNhdVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtYWNhb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWNlZG9uaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFjZWRvbmlhLFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWRhZ2FzY2FyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1nXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1hbGF3aVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtd1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWxheXNpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJteVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWxkaXZlc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtdlwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYWxpXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1sXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1hbHRhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm10XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREY5XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1hcnNoYWxsX2lzbGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWFyc2hhbGxcIiwgXCJpc2xhbmRzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1hcnRpbmlxdWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXFcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERjZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibWF1cml0YW5pYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtclwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtYXVyaXRpdXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibWF5b3R0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ5dFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGRVx1RDgzQ1x1RERGOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtZXhpY29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXhcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibWljcm9uZXNpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtaWNyb25lc2lhLFwiLCBcImZlZGVyYXRlZFwiLCBcInN0YXRlc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQlx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtb2xkb3ZhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1vbGRvdmEsXCIsIFwicmVwdWJsaWNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERTlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibW9uYWNvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1jXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREU4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1vbmdvbGlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1uXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1vbnRlbmVncm9cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibWVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibW9udHNlcnJhdFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJtb3JvY2NvXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm1hXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYyXHVEODNDXHVEREU2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm1vemFtYmlxdWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibXpcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjJcdUQ4M0NcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibXlhbm1hclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJtbVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJuYW1pYmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5hXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREU2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5hdXJ1XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5yXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREY3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5lcGFsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5wXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5ldGhlcmxhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5sXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5ld19jYWxlZG9uaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibmV3XCIsIFwiY2FsZWRvbmlhXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREU4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5ld196ZWFsYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5ld1wiLCBcInplYWxhbmRcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjNcdUQ4M0NcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibmljYXJhZ3VhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5pXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREVFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5pZ2VyXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm5lXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5pZ2VyaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYzXHVEODNDXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5pdWVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibnVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjNcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwibm9yZm9sa19pc2xhbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibm9yZm9sa1wiLCBcImlzbGFuZFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGM1x1RDgzQ1x1RERFQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJub3J0aGVybl9tYXJpYW5hX2lzbGFuZHNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wibm9ydGhlcm5cIiwgXCJtYXJpYW5hXCIsIFwiaXNsYW5kc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMlx1RDgzQ1x1RERGNVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJub3J0aF9rb3JlYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJub3J0aFwiLCBcImtvcmVhXCIsIFwibmF0aW9uXCIsIFwiZmxhZ1wiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREYwXHVEODNDXHVEREY1XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIm5vcndheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJub1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGM1x1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJvbWFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcIm9tX3N5bWJvbFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNFx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwYWtpc3RhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwa1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwYWxhdVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwd1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwYWxlc3Rpbmlhbl90ZXJyaXRvcmllc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYWxlc3RpbmVcIiwgXCJwYWxlc3RpbmlhblwiLCBcInRlcnJpdG9yaWVzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY1XHVEODNDXHVEREY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInBhbmFtYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwYXB1YV9uZXdfZ3VpbmVhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInBhcHVhXCIsIFwibmV3XCIsIFwiZ3VpbmVhXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY1XHVEODNDXHVEREVDXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInBhcmFndWF5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInB5XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY1XHVEODNDXHVEREZFXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInBlcnVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjVcdUQ4M0NcdURERUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwicGhpbGlwcGluZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGhcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjVcdUQ4M0NcdURERURcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwicGl0Y2Fpcm5faXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJwaXRjYWlyblwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwb2xhbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicGxcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjVcdUQ4M0NcdURERjFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwicG9ydHVnYWxcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHRcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjVcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwicHVlcnRvX3JpY29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wicHVlcnRvXCIsIFwicmljb1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJxYXRhclwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJxYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNlx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJyZXVuaW9uXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJcdTAwRTl1bmlvblwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGN1x1RDgzQ1x1RERFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJyb21hbmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJvXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY3XHVEODNDXHVEREY0XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInJ1XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInJ1c3NpYW5cIiwgXCJmZWRlcmF0aW9uXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY3XHVEODNDXHVEREZBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInJ3YW5kYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyd1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGN1x1RDgzQ1x1RERGQ1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdF9iYXJ0aGVsZW15XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNhaW50XCIsIFwiYmFydGhcdTAwRTlsZW15XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU3XHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInN0X2hlbGVuYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzYWludFwiLCBcImhlbGVuYVwiLCBcImFzY2Vuc2lvblwiLCBcInRyaXN0YW5cIiwgXCJjdW5oYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdF9raXR0c19uZXZpc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzYWludFwiLCBcImtpdHRzXCIsIFwibmV2aXNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjBcdUQ4M0NcdURERjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic3RfbHVjaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2FpbnRcIiwgXCJsdWNpYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdF9waWVycmVfbWlxdWVsb25cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2FpbnRcIiwgXCJwaWVycmVcIiwgXCJtaXF1ZWxvblwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGNVx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdF92aW5jZW50X2dyZW5hZGluZXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2FpbnRcIiwgXCJ2aW5jZW50XCIsIFwiZ3JlbmFkaW5lc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQlx1RDgzQ1x1RERFOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzYW1vYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3c1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQ1x1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzYW5fbWFyaW5vXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNhblwiLCBcIm1hcmlub1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzYW9fdG9tZV9wcmluY2lwZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzYW9cIiwgXCJ0b21lXCIsIFwicHJpbmNpcGVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic2F1ZGlfYXJhYmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzZW5lZ2FsXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNuXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY4XHVEODNDXHVEREYzXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInNlcmJpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJyc1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGN1x1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzZXljaGVsbGVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNjXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY4XHVEODNDXHVEREU4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInNpZXJyYV9sZW9uZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzaWVycmFcIiwgXCJsZW9uZVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERGMVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzaW5nYXBvcmVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2dcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic2ludF9tYWFydGVuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNpbnRcIiwgXCJtYWFydGVuXCIsIFwiZHV0Y2hcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERkRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic2xvdmFraWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2tcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERjBcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic2xvdmVuaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic2lcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic29sb21vbl9pc2xhbmRzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNvbG9tb25cIiwgXCJpc2xhbmRzXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY4XHVEODNDXHVEREU3XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInNvbWFsaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic29cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERjRcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic291dGhfYWZyaWNhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNvdXRoXCIsIFwiYWZyaWNhXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREZGXHVEODNDXHVEREU2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInNvdXRoX2dlb3JnaWFfc291dGhfc2FuZHdpY2hfaXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzb3V0aFwiLCBcImdlb3JnaWFcIiwgXCJzYW5kd2ljaFwiLCBcImlzbGFuZHNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERUNcdUQ4M0NcdURERjhcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwia3JcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic291dGhcIiwgXCJrb3JlYVwiLCBcIm5hdGlvblwiLCBcImZsYWdcIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMFx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzb3V0aF9zdWRhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzb3V0aFwiLCBcInNkXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY4XHVEODNDXHVEREY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcImVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNwYWluXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREVBXHVEODNDXHVEREY4XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInNyaV9sYW5rYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzcmlcIiwgXCJsYW5rYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGMVx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdWRhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzZFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERFOVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzdXJpbmFtZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJzclwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERGN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzd2F6aWxhbmRcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wic3pcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjhcdUQ4M0NcdURERkZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwic3dlZGVuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInNlXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY4XHVEODNDXHVEREVBXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInN3aXR6ZXJsYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImNoXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREU4XHVEODNDXHVEREVEXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInN5cmlhXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInN5cmlhblwiLCBcImFyYWJcIiwgXCJyZXB1YmxpY1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOFx1RDgzQ1x1RERGRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0YWl3YW5cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHdcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidGFqaWtpc3RhblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0alwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERFRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0YW56YW5pYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0YW56YW5pYSxcIiwgXCJ1bml0ZWRcIiwgXCJyZXB1YmxpY1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0aGFpbGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0aW1vcl9sZXN0ZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0aW1vclwiLCBcImxlc3RlXCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREY5XHVEODNDXHVEREYxXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInRvZ29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widGdcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidG9rZWxhdVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0a1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGMFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0b25nYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0b1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGNFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0cmluaWRhZF90b2JhZ29cIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widHJpbmlkYWRcIiwgXCJ0b2JhZ29cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERjlcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidHVuaXNpYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0blwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0clwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0dXJrZXlcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERjdcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidHVya21lbmlzdGFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGMlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ0dXJrc19jYWljb3NfaXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ0dXJrc1wiLCBcImNhaWNvc1wiLCBcImlzbGFuZHNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERjlcdUQ4M0NcdURERThcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidHV2YWx1XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGOVx1RDgzQ1x1RERGQlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ1Z2FuZGFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widWdcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkFcdUQ4M0NcdURERUNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidWtyYWluZVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1YVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQVx1RDgzQ1x1RERFNlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ1bml0ZWRfYXJhYl9lbWlyYXRlc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1bml0ZWRcIiwgXCJhcmFiXCIsIFwiZW1pcmF0ZXNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERTZcdUQ4M0NcdURERUFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidWtcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widW5pdGVkXCIsIFwia2luZ2RvbVwiLCBcImdyZWF0XCIsIFwiYnJpdGFpblwiLCBcIm5vcnRoZXJuXCIsIFwiaXJlbGFuZFwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCIsIFwiYnJpdGlzaFwiLCBcIlVLXCIsIFwiZW5nbGlzaFwiLCBcImVuZ2xhbmRcIiwgXCJ1bmlvbiBqYWNrXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQ1x1RDgzQ1x1RERFN1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJlbmdsYW5kXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsYWdcIiwgXCJlbmdsaXNoXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZGNFx1REI0MFx1REM2N1x1REI0MFx1REM2Mlx1REI0MFx1REM2NVx1REI0MFx1REM2RVx1REI0MFx1REM2N1x1REI0MFx1REM3RlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJzY290bGFuZFwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJmbGFnXCIsIFwic2NvdHRpc2hcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVERkY0XHVEQjQwXHVEQzY3XHVEQjQwXHVEQzYyXHVEQjQwXHVEQzczXHVEQjQwXHVEQzYzXHVEQjQwXHVEQzc0XHVEQjQwXHVEQzdGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcIndhbGVzXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcImZsYWdcIiwgXCJ3ZWxzaFwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURGRjRcdURCNDBcdURDNjdcdURCNDBcdURDNjJcdURCNDBcdURDNzdcdURCNDBcdURDNkNcdURCNDBcdURDNzNcdURCNDBcdURDN0ZcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidXNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widW5pdGVkXCIsIFwic3RhdGVzXCIsIFwiYW1lcmljYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQVx1RDgzQ1x1RERGOFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ1c192aXJnaW5faXNsYW5kc1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2aXJnaW5cIiwgXCJpc2xhbmRzXCIsIFwidXNcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkJcdUQ4M0NcdURERUVcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidXJ1Z3VheVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ1eVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQVx1RDgzQ1x1RERGRVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ1emJla2lzdGFuXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInV6XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREZBXHVEODNDXHVEREZGXCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInZhbnVhdHVcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widnVcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkJcdUQ4M0NcdURERkFcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidmF0aWNhbl9jaXR5XCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZhdGljYW5cIiwgXCJjaXR5XCIsIFwiZmxhZ1wiLCBcIm5hdGlvblwiLCBcImNvdW50cnlcIiwgXCJiYW5uZXJcIl0sXG4gICAgXCJjaGFyXCI6IFwiXHVEODNDXHVEREZCXHVEODNDXHVEREU2XCIsXG4gICAgXCJmaXR6cGF0cmlja19zY2FsZVwiOiBmYWxzZSxcbiAgICBcImNhdGVnb3J5XCI6IFwiZmxhZ3NcIlxuICB9LFxuICBcInZlbmV6dWVsYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ2ZVwiLCBcImJvbGl2YXJpYW5cIiwgXCJyZXB1YmxpY1wiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQlx1RDgzQ1x1RERFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ2aWV0bmFtXCI6IHtcbiAgICBcImtleXdvcmRzXCI6IFtcInZpZXRcIiwgXCJuYW1cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkJcdUQ4M0NcdURERjNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwid2FsbGlzX2Z1dHVuYVwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ3YWxsaXNcIiwgXCJmdXR1bmFcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkNcdUQ4M0NcdURERUJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwid2VzdGVybl9zYWhhcmFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wid2VzdGVyblwiLCBcInNhaGFyYVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERFQVx1RDgzQ1x1RERFRFwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ5ZW1lblwiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJ5ZVwiLCBcImZsYWdcIiwgXCJuYXRpb25cIiwgXCJjb3VudHJ5XCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGRVx1RDgzQ1x1RERFQVwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJ6YW1iaWFcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiem1cIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkZcdUQ4M0NcdURERjJcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwiemltYmFid2VcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1wiendcIiwgXCJmbGFnXCIsIFwibmF0aW9uXCIsIFwiY291bnRyeVwiLCBcImJhbm5lclwiXSxcbiAgICBcImNoYXJcIjogXCJcdUQ4M0NcdURERkZcdUQ4M0NcdURERkNcIixcbiAgICBcImZpdHpwYXRyaWNrX3NjYWxlXCI6IGZhbHNlLFxuICAgIFwiY2F0ZWdvcnlcIjogXCJmbGFnc1wiXG4gIH0sXG4gIFwidW5pdGVkX25hdGlvbnNcIjoge1xuICAgIFwia2V5d29yZHNcIjogW1widW5cIiwgXCJmbGFnXCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1RERGQVx1RDgzQ1x1RERGM1wiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfSxcbiAgXCJwaXJhdGVfZmxhZ1wiOiB7XG4gICAgXCJrZXl3b3Jkc1wiOiBbXCJza3VsbFwiLCBcImNyb3NzYm9uZXNcIiwgXCJmbGFnXCIsIFwiYmFubmVyXCJdLFxuICAgIFwiY2hhclwiOiBcIlx1RDgzQ1x1REZGNFx1MjAwRFx1MjYyMFx1RkUwRlwiLFxuICAgIFwiZml0enBhdHJpY2tfc2NhbGVcIjogZmFsc2UsXG4gICAgXCJjYXRlZ29yeVwiOiBcImZsYWdzXCJcbiAgfVxufVxuIiwgIltcbiAgXCJncmlubmluZ1wiLFxuICBcInNtaWxleVwiLFxuICBcInNtaWxlXCIsXG4gIFwiZ3JpblwiLFxuICBcImxhdWdoaW5nXCIsXG4gIFwic3dlYXRfc21pbGVcIixcbiAgXCJqb3lcIixcbiAgXCJyb2ZsXCIsXG4gIFwicmVsYXhlZFwiLFxuICBcImJsdXNoXCIsXG4gIFwiaW5ub2NlbnRcIixcbiAgXCJzbGlnaHRseV9zbWlsaW5nX2ZhY2VcIixcbiAgXCJ1cHNpZGVfZG93bl9mYWNlXCIsXG4gIFwid2lua1wiLFxuICBcInJlbGlldmVkXCIsXG4gIFwiaGVhcnRfZXllc1wiLFxuICBcInNtaWxpbmdfZmFjZV93aXRoX3RocmVlX2hlYXJ0c1wiLFxuICBcImtpc3NpbmdfaGVhcnRcIixcbiAgXCJraXNzaW5nXCIsXG4gIFwia2lzc2luZ19zbWlsaW5nX2V5ZXNcIixcbiAgXCJraXNzaW5nX2Nsb3NlZF9leWVzXCIsXG4gIFwieXVtXCIsXG4gIFwic3R1Y2tfb3V0X3Rvbmd1ZVwiLFxuICBcInN0dWNrX291dF90b25ndWVfY2xvc2VkX2V5ZXNcIixcbiAgXCJzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllXCIsXG4gIFwiemFueVwiLFxuICBcInJhaXNlZF9leWVicm93XCIsXG4gIFwibW9ub2NsZVwiLFxuICBcIm5lcmRfZmFjZVwiLFxuICBcInN1bmdsYXNzZXNcIixcbiAgXCJzdGFyX3N0cnVja1wiLFxuICBcInBhcnR5aW5nXCIsXG4gIFwic21pcmtcIixcbiAgXCJ1bmFtdXNlZFwiLFxuICBcImRpc2FwcG9pbnRlZFwiLFxuICBcInBlbnNpdmVcIixcbiAgXCJ3b3JyaWVkXCIsXG4gIFwiY29uZnVzZWRcIixcbiAgXCJzbGlnaHRseV9mcm93bmluZ19mYWNlXCIsXG4gIFwiZnJvd25pbmdfZmFjZVwiLFxuICBcInBlcnNldmVyZVwiLFxuICBcImNvbmZvdW5kZWRcIixcbiAgXCJ0aXJlZF9mYWNlXCIsXG4gIFwid2VhcnlcIixcbiAgXCJwbGVhZGluZ1wiLFxuICBcImNyeVwiLFxuICBcInNvYlwiLFxuICBcInRyaXVtcGhcIixcbiAgXCJhbmdyeVwiLFxuICBcInJhZ2VcIixcbiAgXCJzeW1ib2xzX292ZXJfbW91dGhcIixcbiAgXCJleHBsb2RpbmdfaGVhZFwiLFxuICBcImZsdXNoZWRcIixcbiAgXCJob3RcIixcbiAgXCJjb2xkXCIsXG4gIFwic2NyZWFtXCIsXG4gIFwiZmVhcmZ1bFwiLFxuICBcImNvbGRfc3dlYXRcIixcbiAgXCJkaXNhcHBvaW50ZWRfcmVsaWV2ZWRcIixcbiAgXCJzd2VhdFwiLFxuICBcImh1Z3NcIixcbiAgXCJ0aGlua2luZ1wiLFxuICBcImhhbmRfb3Zlcl9tb3V0aFwiLFxuICBcInNodXNoaW5nXCIsXG4gIFwibHlpbmdfZmFjZVwiLFxuICBcIm5vX21vdXRoXCIsXG4gIFwibmV1dHJhbF9mYWNlXCIsXG4gIFwiZXhwcmVzc2lvbmxlc3NcIixcbiAgXCJncmltYWNpbmdcIixcbiAgXCJyb2xsX2V5ZXNcIixcbiAgXCJodXNoZWRcIixcbiAgXCJmcm93bmluZ1wiLFxuICBcImFuZ3Vpc2hlZFwiLFxuICBcIm9wZW5fbW91dGhcIixcbiAgXCJhc3RvbmlzaGVkXCIsXG4gIFwic2xlZXBpbmdcIixcbiAgXCJkcm9vbGluZ19mYWNlXCIsXG4gIFwic2xlZXB5XCIsXG4gIFwiZGl6enlfZmFjZVwiLFxuICBcInppcHBlcl9tb3V0aF9mYWNlXCIsXG4gIFwid29venlcIixcbiAgXCJuYXVzZWF0ZWRfZmFjZVwiLFxuICBcInZvbWl0aW5nXCIsXG4gIFwic25lZXppbmdfZmFjZVwiLFxuICBcIm1hc2tcIixcbiAgXCJmYWNlX3dpdGhfdGhlcm1vbWV0ZXJcIixcbiAgXCJmYWNlX3dpdGhfaGVhZF9iYW5kYWdlXCIsXG4gIFwibW9uZXlfbW91dGhfZmFjZVwiLFxuICBcImNvd2JveV9oYXRfZmFjZVwiLFxuICBcInNtaWxpbmdfaW1wXCIsXG4gIFwiaW1wXCIsXG4gIFwiamFwYW5lc2Vfb2dyZVwiLFxuICBcImphcGFuZXNlX2dvYmxpblwiLFxuICBcImNsb3duX2ZhY2VcIixcbiAgXCJwb29wXCIsXG4gIFwiZ2hvc3RcIixcbiAgXCJza3VsbFwiLFxuICBcInNrdWxsX2FuZF9jcm9zc2JvbmVzXCIsXG4gIFwiYWxpZW5cIixcbiAgXCJzcGFjZV9pbnZhZGVyXCIsXG4gIFwicm9ib3RcIixcbiAgXCJqYWNrX29fbGFudGVyblwiLFxuICBcInNtaWxleV9jYXRcIixcbiAgXCJzbWlsZV9jYXRcIixcbiAgXCJqb3lfY2F0XCIsXG4gIFwiaGVhcnRfZXllc19jYXRcIixcbiAgXCJzbWlya19jYXRcIixcbiAgXCJraXNzaW5nX2NhdFwiLFxuICBcInNjcmVhbV9jYXRcIixcbiAgXCJjcnlpbmdfY2F0X2ZhY2VcIixcbiAgXCJwb3V0aW5nX2NhdFwiLFxuICBcInBhbG1zX3VwXCIsXG4gIFwib3Blbl9oYW5kc1wiLFxuICBcInJhaXNlZF9oYW5kc1wiLFxuICBcImNsYXBcIixcbiAgXCJoYW5kc2hha2VcIixcbiAgXCIrMVwiLFxuICBcIi0xXCIsXG4gIFwiZmFjZXB1bmNoXCIsXG4gIFwiZmlzdFwiLFxuICBcImZpc3RfbGVmdFwiLFxuICBcImZpc3RfcmlnaHRcIixcbiAgXCJjcm9zc2VkX2ZpbmdlcnNcIixcbiAgXCJ2XCIsXG4gIFwibG92ZV95b3VcIixcbiAgXCJtZXRhbFwiLFxuICBcIm9rX2hhbmRcIixcbiAgXCJwb2ludF9sZWZ0XCIsXG4gIFwicG9pbnRfcmlnaHRcIixcbiAgXCJwb2ludF91cFwiLFxuICBcInBvaW50X2Rvd25cIixcbiAgXCJwb2ludF91cF8yXCIsXG4gIFwicmFpc2VkX2hhbmRcIixcbiAgXCJyYWlzZWRfYmFja19vZl9oYW5kXCIsXG4gIFwicmFpc2VkX2hhbmRfd2l0aF9maW5nZXJzX3NwbGF5ZWRcIixcbiAgXCJ2dWxjYW5fc2FsdXRlXCIsXG4gIFwid2F2ZVwiLFxuICBcImNhbGxfbWVfaGFuZFwiLFxuICBcIm11c2NsZVwiLFxuICBcImZ1XCIsXG4gIFwid3JpdGluZ19oYW5kXCIsXG4gIFwicHJheVwiLFxuICBcImZvb3RcIixcbiAgXCJsZWdcIixcbiAgXCJyaW5nXCIsXG4gIFwibGlwc3RpY2tcIixcbiAgXCJraXNzXCIsXG4gIFwibGlwc1wiLFxuICBcInRvb3RoXCIsXG4gIFwidG9uZ3VlXCIsXG4gIFwiZWFyXCIsXG4gIFwibm9zZVwiLFxuICBcImZvb3RwcmludHNcIixcbiAgXCJleWVcIixcbiAgXCJleWVzXCIsXG4gIFwiYnJhaW5cIixcbiAgXCJzcGVha2luZ19oZWFkXCIsXG4gIFwiYnVzdF9pbl9zaWxob3VldHRlXCIsXG4gIFwiYnVzdHNfaW5fc2lsaG91ZXR0ZVwiLFxuICBcImJhYnlcIixcbiAgXCJnaXJsXCIsXG4gIFwiY2hpbGRcIixcbiAgXCJib3lcIixcbiAgXCJ3b21hblwiLFxuICBcImFkdWx0XCIsXG4gIFwibWFuXCIsXG4gIFwiYmxvbmRlX3dvbWFuXCIsXG4gIFwiYmxvbmRlX21hblwiLFxuICBcImJlYXJkZWRfcGVyc29uXCIsXG4gIFwib2xkZXJfd29tYW5cIixcbiAgXCJvbGRlcl9hZHVsdFwiLFxuICBcIm9sZGVyX21hblwiLFxuICBcIm1hbl93aXRoX2d1YV9waV9tYW9cIixcbiAgXCJ3b21hbl93aXRoX2hlYWRzY2FyZlwiLFxuICBcIndvbWFuX3dpdGhfdHVyYmFuXCIsXG4gIFwibWFuX3dpdGhfdHVyYmFuXCIsXG4gIFwicG9saWNld29tYW5cIixcbiAgXCJwb2xpY2VtYW5cIixcbiAgXCJjb25zdHJ1Y3Rpb25fd29ya2VyX3dvbWFuXCIsXG4gIFwiY29uc3RydWN0aW9uX3dvcmtlcl9tYW5cIixcbiAgXCJndWFyZHN3b21hblwiLFxuICBcImd1YXJkc21hblwiLFxuICBcImZlbWFsZV9kZXRlY3RpdmVcIixcbiAgXCJtYWxlX2RldGVjdGl2ZVwiLFxuICBcIndvbWFuX2hlYWx0aF93b3JrZXJcIixcbiAgXCJtYW5faGVhbHRoX3dvcmtlclwiLFxuICBcIndvbWFuX2Zhcm1lclwiLFxuICBcIm1hbl9mYXJtZXJcIixcbiAgXCJ3b21hbl9jb29rXCIsXG4gIFwibWFuX2Nvb2tcIixcbiAgXCJ3b21hbl9zdHVkZW50XCIsXG4gIFwibWFuX3N0dWRlbnRcIixcbiAgXCJ3b21hbl9zaW5nZXJcIixcbiAgXCJtYW5fc2luZ2VyXCIsXG4gIFwid29tYW5fdGVhY2hlclwiLFxuICBcIm1hbl90ZWFjaGVyXCIsXG4gIFwid29tYW5fZmFjdG9yeV93b3JrZXJcIixcbiAgXCJtYW5fZmFjdG9yeV93b3JrZXJcIixcbiAgXCJ3b21hbl90ZWNobm9sb2dpc3RcIixcbiAgXCJtYW5fdGVjaG5vbG9naXN0XCIsXG4gIFwid29tYW5fb2ZmaWNlX3dvcmtlclwiLFxuICBcIm1hbl9vZmZpY2Vfd29ya2VyXCIsXG4gIFwid29tYW5fbWVjaGFuaWNcIixcbiAgXCJtYW5fbWVjaGFuaWNcIixcbiAgXCJ3b21hbl9zY2llbnRpc3RcIixcbiAgXCJtYW5fc2NpZW50aXN0XCIsXG4gIFwid29tYW5fYXJ0aXN0XCIsXG4gIFwibWFuX2FydGlzdFwiLFxuICBcIndvbWFuX2ZpcmVmaWdodGVyXCIsXG4gIFwibWFuX2ZpcmVmaWdodGVyXCIsXG4gIFwid29tYW5fcGlsb3RcIixcbiAgXCJtYW5fcGlsb3RcIixcbiAgXCJ3b21hbl9hc3Ryb25hdXRcIixcbiAgXCJtYW5fYXN0cm9uYXV0XCIsXG4gIFwid29tYW5fanVkZ2VcIixcbiAgXCJtYW5fanVkZ2VcIixcbiAgXCJicmlkZV93aXRoX3ZlaWxcIixcbiAgXCJtYW5faW5fdHV4ZWRvXCIsXG4gIFwicHJpbmNlc3NcIixcbiAgXCJwcmluY2VcIixcbiAgXCJ3b21hbl9zdXBlcmhlcm9cIixcbiAgXCJtYW5fc3VwZXJoZXJvXCIsXG4gIFwid29tYW5fc3VwZXJ2aWxsYWluXCIsXG4gIFwibWFuX3N1cGVydmlsbGFpblwiLFxuICBcIm1yc19jbGF1c1wiLFxuICBcInNhbnRhXCIsXG4gIFwic29yY2VyZXNzXCIsXG4gIFwid2l6YXJkXCIsXG4gIFwid29tYW5fZWxmXCIsXG4gIFwibWFuX2VsZlwiLFxuICBcIndvbWFuX3ZhbXBpcmVcIixcbiAgXCJtYW5fdmFtcGlyZVwiLFxuICBcIndvbWFuX3pvbWJpZVwiLFxuICBcIm1hbl96b21iaWVcIixcbiAgXCJ3b21hbl9nZW5pZVwiLFxuICBcIm1hbl9nZW5pZVwiLFxuICBcIm1lcm1haWRcIixcbiAgXCJtZXJtYW5cIixcbiAgXCJ3b21hbl9mYWlyeVwiLFxuICBcIm1hbl9mYWlyeVwiLFxuICBcImFuZ2VsXCIsXG4gIFwicHJlZ25hbnRfd29tYW5cIixcbiAgXCJicmVhc3RmZWVkaW5nXCIsXG4gIFwiYm93aW5nX3dvbWFuXCIsXG4gIFwiYm93aW5nX21hblwiLFxuICBcInRpcHBpbmdfaGFuZF93b21hblwiLFxuICBcInRpcHBpbmdfaGFuZF9tYW5cIixcbiAgXCJub19nb29kX3dvbWFuXCIsXG4gIFwibm9fZ29vZF9tYW5cIixcbiAgXCJva193b21hblwiLFxuICBcIm9rX21hblwiLFxuICBcInJhaXNpbmdfaGFuZF93b21hblwiLFxuICBcInJhaXNpbmdfaGFuZF9tYW5cIixcbiAgXCJ3b21hbl9mYWNlcGFsbWluZ1wiLFxuICBcIm1hbl9mYWNlcGFsbWluZ1wiLFxuICBcIndvbWFuX3NocnVnZ2luZ1wiLFxuICBcIm1hbl9zaHJ1Z2dpbmdcIixcbiAgXCJwb3V0aW5nX3dvbWFuXCIsXG4gIFwicG91dGluZ19tYW5cIixcbiAgXCJmcm93bmluZ193b21hblwiLFxuICBcImZyb3duaW5nX21hblwiLFxuICBcImhhaXJjdXRfd29tYW5cIixcbiAgXCJoYWlyY3V0X21hblwiLFxuICBcIm1hc3NhZ2Vfd29tYW5cIixcbiAgXCJtYXNzYWdlX21hblwiLFxuICBcIndvbWFuX2luX3N0ZWFteV9yb29tXCIsXG4gIFwibWFuX2luX3N0ZWFteV9yb29tXCIsXG4gIFwibmFpbF9jYXJlXCIsXG4gIFwic2VsZmllXCIsXG4gIFwiZGFuY2VyXCIsXG4gIFwibWFuX2RhbmNpbmdcIixcbiAgXCJkYW5jaW5nX3dvbWVuXCIsXG4gIFwiZGFuY2luZ19tZW5cIixcbiAgXCJidXNpbmVzc19zdWl0X2xldml0YXRpbmdcIixcbiAgXCJ3YWxraW5nX3dvbWFuXCIsXG4gIFwid2Fsa2luZ19tYW5cIixcbiAgXCJydW5uaW5nX3dvbWFuXCIsXG4gIFwicnVubmluZ19tYW5cIixcbiAgXCJjb3VwbGVcIixcbiAgXCJ0d29fd29tZW5faG9sZGluZ19oYW5kc1wiLFxuICBcInR3b19tZW5faG9sZGluZ19oYW5kc1wiLFxuICBcImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX21hblwiLFxuICBcImNvdXBsZV93aXRoX2hlYXJ0X3dvbWFuX3dvbWFuXCIsXG4gIFwiY291cGxlX3dpdGhfaGVhcnRfbWFuX21hblwiLFxuICBcImNvdXBsZWtpc3NfbWFuX3dvbWFuXCIsXG4gIFwiY291cGxla2lzc193b21hbl93b21hblwiLFxuICBcImNvdXBsZWtpc3NfbWFuX21hblwiLFxuICBcImZhbWlseV9tYW5fd29tYW5fYm95XCIsXG4gIFwiZmFtaWx5X21hbl93b21hbl9naXJsXCIsXG4gIFwiZmFtaWx5X21hbl93b21hbl9naXJsX2JveVwiLFxuICBcImZhbWlseV9tYW5fd29tYW5fYm95X2JveVwiLFxuICBcImZhbWlseV9tYW5fd29tYW5fZ2lybF9naXJsXCIsXG4gIFwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveVwiLFxuICBcImZhbWlseV93b21hbl93b21hbl9naXJsXCIsXG4gIFwiZmFtaWx5X3dvbWFuX3dvbWFuX2dpcmxfYm95XCIsXG4gIFwiZmFtaWx5X3dvbWFuX3dvbWFuX2JveV9ib3lcIixcbiAgXCJmYW1pbHlfd29tYW5fd29tYW5fZ2lybF9naXJsXCIsXG4gIFwiZmFtaWx5X21hbl9tYW5fYm95XCIsXG4gIFwiZmFtaWx5X21hbl9tYW5fZ2lybFwiLFxuICBcImZhbWlseV9tYW5fbWFuX2dpcmxfYm95XCIsXG4gIFwiZmFtaWx5X21hbl9tYW5fYm95X2JveVwiLFxuICBcImZhbWlseV9tYW5fbWFuX2dpcmxfZ2lybFwiLFxuICBcImZhbWlseV93b21hbl9ib3lcIixcbiAgXCJmYW1pbHlfd29tYW5fZ2lybFwiLFxuICBcImZhbWlseV93b21hbl9naXJsX2JveVwiLFxuICBcImZhbWlseV93b21hbl9ib3lfYm95XCIsXG4gIFwiZmFtaWx5X3dvbWFuX2dpcmxfZ2lybFwiLFxuICBcImZhbWlseV9tYW5fYm95XCIsXG4gIFwiZmFtaWx5X21hbl9naXJsXCIsXG4gIFwiZmFtaWx5X21hbl9naXJsX2JveVwiLFxuICBcImZhbWlseV9tYW5fYm95X2JveVwiLFxuICBcImZhbWlseV9tYW5fZ2lybF9naXJsXCIsXG4gIFwieWFyblwiLFxuICBcInRocmVhZFwiLFxuICBcImNvYXRcIixcbiAgXCJsYWJjb2F0XCIsXG4gIFwid29tYW5zX2Nsb3RoZXNcIixcbiAgXCJ0c2hpcnRcIixcbiAgXCJqZWFuc1wiLFxuICBcIm5lY2t0aWVcIixcbiAgXCJkcmVzc1wiLFxuICBcImJpa2luaVwiLFxuICBcImtpbW9ub1wiLFxuICBcImZsYXRfc2hvZVwiLFxuICBcImhpZ2hfaGVlbFwiLFxuICBcInNhbmRhbFwiLFxuICBcImJvb3RcIixcbiAgXCJtYW5zX3Nob2VcIixcbiAgXCJhdGhsZXRpY19zaG9lXCIsXG4gIFwiaGlraW5nX2Jvb3RcIixcbiAgXCJzb2Nrc1wiLFxuICBcImdsb3Zlc1wiLFxuICBcInNjYXJmXCIsXG4gIFwidG9waGF0XCIsXG4gIFwiYmlsbGVkX2hhdFwiLFxuICBcIndvbWFuc19oYXRcIixcbiAgXCJtb3J0YXJfYm9hcmRcIixcbiAgXCJyZXNjdWVfd29ya2VyX2hlbG1ldFwiLFxuICBcImNyb3duXCIsXG4gIFwicG91Y2hcIixcbiAgXCJwdXJzZVwiLFxuICBcImhhbmRiYWdcIixcbiAgXCJicmllZmNhc2VcIixcbiAgXCJzY2hvb2xfc2F0Y2hlbFwiLFxuICBcImx1Z2dhZ2VcIixcbiAgXCJleWVnbGFzc2VzXCIsXG4gIFwiZGFya19zdW5nbGFzc2VzXCIsXG4gIFwiZ29nZ2xlc1wiLFxuICBcImNsb3NlZF91bWJyZWxsYVwiLFxuICBcImRvZ1wiLFxuICBcImNhdFwiLFxuICBcIm1vdXNlXCIsXG4gIFwiaGFtc3RlclwiLFxuICBcInJhYmJpdFwiLFxuICBcImZveF9mYWNlXCIsXG4gIFwiYmVhclwiLFxuICBcInBhbmRhX2ZhY2VcIixcbiAgXCJrb2FsYVwiLFxuICBcInRpZ2VyXCIsXG4gIFwibGlvblwiLFxuICBcImNvd1wiLFxuICBcInBpZ1wiLFxuICBcInBpZ19ub3NlXCIsXG4gIFwiZnJvZ1wiLFxuICBcIm1vbmtleV9mYWNlXCIsXG4gIFwic2VlX25vX2V2aWxcIixcbiAgXCJoZWFyX25vX2V2aWxcIixcbiAgXCJzcGVha19ub19ldmlsXCIsXG4gIFwibW9ua2V5XCIsXG4gIFwiY2hpY2tlblwiLFxuICBcInBlbmd1aW5cIixcbiAgXCJiaXJkXCIsXG4gIFwiYmFieV9jaGlja1wiLFxuICBcImhhdGNoaW5nX2NoaWNrXCIsXG4gIFwiaGF0Y2hlZF9jaGlja1wiLFxuICBcImR1Y2tcIixcbiAgXCJlYWdsZVwiLFxuICBcIm93bFwiLFxuICBcImJhdFwiLFxuICBcIndvbGZcIixcbiAgXCJib2FyXCIsXG4gIFwiaG9yc2VcIixcbiAgXCJ1bmljb3JuXCIsXG4gIFwiaG9uZXliZWVcIixcbiAgXCJidWdcIixcbiAgXCJidXR0ZXJmbHlcIixcbiAgXCJzbmFpbFwiLFxuICBcInNoZWxsXCIsXG4gIFwiYmVldGxlXCIsXG4gIFwiYW50XCIsXG4gIFwibW9zcXVpdG9cIixcbiAgXCJncmFzc2hvcHBlclwiLFxuICBcInNwaWRlclwiLFxuICBcInNwaWRlcl93ZWJcIixcbiAgXCJzY29ycGlvblwiLFxuICBcInR1cnRsZVwiLFxuICBcInNuYWtlXCIsXG4gIFwibGl6YXJkXCIsXG4gIFwidC1yZXhcIixcbiAgXCJzYXVyb3BvZFwiLFxuICBcIm9jdG9wdXNcIixcbiAgXCJzcXVpZFwiLFxuICBcInNocmltcFwiLFxuICBcImxvYnN0ZXJcIixcbiAgXCJjcmFiXCIsXG4gIFwiYmxvd2Zpc2hcIixcbiAgXCJ0cm9waWNhbF9maXNoXCIsXG4gIFwiZmlzaFwiLFxuICBcImRvbHBoaW5cIixcbiAgXCJ3aGFsZVwiLFxuICBcIndoYWxlMlwiLFxuICBcInNoYXJrXCIsXG4gIFwiY3JvY29kaWxlXCIsXG4gIFwidGlnZXIyXCIsXG4gIFwibGVvcGFyZFwiLFxuICBcInplYnJhXCIsXG4gIFwiZ29yaWxsYVwiLFxuICBcImVsZXBoYW50XCIsXG4gIFwiaGlwcG9wb3RhbXVzXCIsXG4gIFwicmhpbm9jZXJvc1wiLFxuICBcImRyb21lZGFyeV9jYW1lbFwiLFxuICBcImdpcmFmZmVcIixcbiAgXCJrYW5nYXJvb1wiLFxuICBcImNhbWVsXCIsXG4gIFwid2F0ZXJfYnVmZmFsb1wiLFxuICBcIm94XCIsXG4gIFwiY293MlwiLFxuICBcInJhY2Vob3JzZVwiLFxuICBcInBpZzJcIixcbiAgXCJyYW1cIixcbiAgXCJzaGVlcFwiLFxuICBcImxsYW1hXCIsXG4gIFwiZ29hdFwiLFxuICBcImRlZXJcIixcbiAgXCJkb2cyXCIsXG4gIFwicG9vZGxlXCIsXG4gIFwiY2F0MlwiLFxuICBcInJvb3N0ZXJcIixcbiAgXCJ0dXJrZXlcIixcbiAgXCJwZWFjb2NrXCIsXG4gIFwicGFycm90XCIsXG4gIFwic3dhblwiLFxuICBcImRvdmVcIixcbiAgXCJyYWJiaXQyXCIsXG4gIFwicmFjY29vblwiLFxuICBcImJhZGdlclwiLFxuICBcInJhdFwiLFxuICBcIm1vdXNlMlwiLFxuICBcImNoaXBtdW5rXCIsXG4gIFwiaGVkZ2Vob2dcIixcbiAgXCJwYXdfcHJpbnRzXCIsXG4gIFwiZHJhZ29uXCIsXG4gIFwiZHJhZ29uX2ZhY2VcIixcbiAgXCJjYWN0dXNcIixcbiAgXCJjaHJpc3RtYXNfdHJlZVwiLFxuICBcImV2ZXJncmVlbl90cmVlXCIsXG4gIFwiZGVjaWR1b3VzX3RyZWVcIixcbiAgXCJwYWxtX3RyZWVcIixcbiAgXCJzZWVkbGluZ1wiLFxuICBcImhlcmJcIixcbiAgXCJzaGFtcm9ja1wiLFxuICBcImZvdXJfbGVhZl9jbG92ZXJcIixcbiAgXCJiYW1ib29cIixcbiAgXCJ0YW5hYmF0YV90cmVlXCIsXG4gIFwibGVhdmVzXCIsXG4gIFwiZmFsbGVuX2xlYWZcIixcbiAgXCJtYXBsZV9sZWFmXCIsXG4gIFwiZWFyX29mX3JpY2VcIixcbiAgXCJoaWJpc2N1c1wiLFxuICBcInN1bmZsb3dlclwiLFxuICBcInJvc2VcIixcbiAgXCJ3aWx0ZWRfZmxvd2VyXCIsXG4gIFwidHVsaXBcIixcbiAgXCJibG9zc29tXCIsXG4gIFwiY2hlcnJ5X2Jsb3Nzb21cIixcbiAgXCJib3VxdWV0XCIsXG4gIFwibXVzaHJvb21cIixcbiAgXCJlYXJ0aF9hbWVyaWNhc1wiLFxuICBcImVhcnRoX2FmcmljYVwiLFxuICBcImVhcnRoX2FzaWFcIixcbiAgXCJmdWxsX21vb25cIixcbiAgXCJ3YW5pbmdfZ2liYm91c19tb29uXCIsXG4gIFwibGFzdF9xdWFydGVyX21vb25cIixcbiAgXCJ3YW5pbmdfY3Jlc2NlbnRfbW9vblwiLFxuICBcIm5ld19tb29uXCIsXG4gIFwid2F4aW5nX2NyZXNjZW50X21vb25cIixcbiAgXCJmaXJzdF9xdWFydGVyX21vb25cIixcbiAgXCJ3YXhpbmdfZ2liYm91c19tb29uXCIsXG4gIFwibmV3X21vb25fd2l0aF9mYWNlXCIsXG4gIFwiZnVsbF9tb29uX3dpdGhfZmFjZVwiLFxuICBcImZpcnN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2VcIixcbiAgXCJsYXN0X3F1YXJ0ZXJfbW9vbl93aXRoX2ZhY2VcIixcbiAgXCJzdW5fd2l0aF9mYWNlXCIsXG4gIFwiY3Jlc2NlbnRfbW9vblwiLFxuICBcInN0YXJcIixcbiAgXCJzdGFyMlwiLFxuICBcImRpenp5XCIsXG4gIFwic3BhcmtsZXNcIixcbiAgXCJjb21ldFwiLFxuICBcInN1bm55XCIsXG4gIFwic3VuX2JlaGluZF9zbWFsbF9jbG91ZFwiLFxuICBcInBhcnRseV9zdW5ueVwiLFxuICBcInN1bl9iZWhpbmRfbGFyZ2VfY2xvdWRcIixcbiAgXCJzdW5fYmVoaW5kX3JhaW5fY2xvdWRcIixcbiAgXCJjbG91ZFwiLFxuICBcImNsb3VkX3dpdGhfcmFpblwiLFxuICBcImNsb3VkX3dpdGhfbGlnaHRuaW5nX2FuZF9yYWluXCIsXG4gIFwiY2xvdWRfd2l0aF9saWdodG5pbmdcIixcbiAgXCJ6YXBcIixcbiAgXCJmaXJlXCIsXG4gIFwiYm9vbVwiLFxuICBcInNub3dmbGFrZVwiLFxuICBcImNsb3VkX3dpdGhfc25vd1wiLFxuICBcInNub3dtYW5cIixcbiAgXCJzbm93bWFuX3dpdGhfc25vd1wiLFxuICBcIndpbmRfZmFjZVwiLFxuICBcImRhc2hcIixcbiAgXCJ0b3JuYWRvXCIsXG4gIFwiZm9nXCIsXG4gIFwib3Blbl91bWJyZWxsYVwiLFxuICBcInVtYnJlbGxhXCIsXG4gIFwiZHJvcGxldFwiLFxuICBcInN3ZWF0X2Ryb3BzXCIsXG4gIFwib2NlYW5cIixcbiAgXCJncmVlbl9hcHBsZVwiLFxuICBcImFwcGxlXCIsXG4gIFwicGVhclwiLFxuICBcInRhbmdlcmluZVwiLFxuICBcImxlbW9uXCIsXG4gIFwiYmFuYW5hXCIsXG4gIFwid2F0ZXJtZWxvblwiLFxuICBcImdyYXBlc1wiLFxuICBcInN0cmF3YmVycnlcIixcbiAgXCJtZWxvblwiLFxuICBcImNoZXJyaWVzXCIsXG4gIFwicGVhY2hcIixcbiAgXCJtYW5nb1wiLFxuICBcInBpbmVhcHBsZVwiLFxuICBcImNvY29udXRcIixcbiAgXCJraXdpX2ZydWl0XCIsXG4gIFwidG9tYXRvXCIsXG4gIFwiZWdncGxhbnRcIixcbiAgXCJhdm9jYWRvXCIsXG4gIFwiYnJvY2NvbGlcIixcbiAgXCJsZWFmeV9ncmVlbnNcIixcbiAgXCJjdWN1bWJlclwiLFxuICBcImhvdF9wZXBwZXJcIixcbiAgXCJjb3JuXCIsXG4gIFwiY2Fycm90XCIsXG4gIFwicG90YXRvXCIsXG4gIFwic3dlZXRfcG90YXRvXCIsXG4gIFwiY3JvaXNzYW50XCIsXG4gIFwiYmFnZWxcIixcbiAgXCJicmVhZFwiLFxuICBcImJhZ3VldHRlX2JyZWFkXCIsXG4gIFwicHJldHplbFwiLFxuICBcImNoZWVzZVwiLFxuICBcImVnZ1wiLFxuICBcImZyaWVkX2VnZ1wiLFxuICBcInBhbmNha2VzXCIsXG4gIFwiYmFjb25cIixcbiAgXCJzdGVha1wiLFxuICBcInBvdWx0cnlfbGVnXCIsXG4gIFwibWVhdF9vbl9ib25lXCIsXG4gIFwiYm9uZVwiLFxuICBcImhvdGRvZ1wiLFxuICBcImhhbWJ1cmdlclwiLFxuICBcImZyaWVzXCIsXG4gIFwicGl6emFcIixcbiAgXCJzYW5kd2ljaFwiLFxuICBcInN0dWZmZWRfZmxhdGJyZWFkXCIsXG4gIFwidGFjb1wiLFxuICBcImJ1cnJpdG9cIixcbiAgXCJncmVlbl9zYWxhZFwiLFxuICBcInNoYWxsb3dfcGFuX29mX2Zvb2RcIixcbiAgXCJjYW5uZWRfZm9vZFwiLFxuICBcInNwYWdoZXR0aVwiLFxuICBcInJhbWVuXCIsXG4gIFwic3Rld1wiLFxuICBcImN1cnJ5XCIsXG4gIFwic3VzaGlcIixcbiAgXCJiZW50b1wiLFxuICBcImZyaWVkX3NocmltcFwiLFxuICBcInJpY2VfYmFsbFwiLFxuICBcInJpY2VcIixcbiAgXCJyaWNlX2NyYWNrZXJcIixcbiAgXCJmaXNoX2Nha2VcIixcbiAgXCJmb3J0dW5lX2Nvb2tpZVwiLFxuICBcIm1vb25fY2FrZVwiLFxuICBcIm9kZW5cIixcbiAgXCJkYW5nb1wiLFxuICBcInNoYXZlZF9pY2VcIixcbiAgXCJpY2VfY3JlYW1cIixcbiAgXCJpY2VjcmVhbVwiLFxuICBcInBpZVwiLFxuICBcImN1cGNha2VcIixcbiAgXCJjYWtlXCIsXG4gIFwiYmlydGhkYXlcIixcbiAgXCJjdXN0YXJkXCIsXG4gIFwibG9sbGlwb3BcIixcbiAgXCJjYW5keVwiLFxuICBcImNob2NvbGF0ZV9iYXJcIixcbiAgXCJwb3Bjb3JuXCIsXG4gIFwiZG91Z2hudXRcIixcbiAgXCJkdW1wbGluZ1wiLFxuICBcImNvb2tpZVwiLFxuICBcImNoZXN0bnV0XCIsXG4gIFwicGVhbnV0c1wiLFxuICBcImhvbmV5X3BvdFwiLFxuICBcIm1pbGtfZ2xhc3NcIixcbiAgXCJiYWJ5X2JvdHRsZVwiLFxuICBcImNvZmZlZVwiLFxuICBcInRlYVwiLFxuICBcImN1cF93aXRoX3N0cmF3XCIsXG4gIFwic2FrZVwiLFxuICBcImJlZXJcIixcbiAgXCJiZWVyc1wiLFxuICBcImNsaW5raW5nX2dsYXNzZXNcIixcbiAgXCJ3aW5lX2dsYXNzXCIsXG4gIFwidHVtYmxlcl9nbGFzc1wiLFxuICBcImNvY2t0YWlsXCIsXG4gIFwidHJvcGljYWxfZHJpbmtcIixcbiAgXCJjaGFtcGFnbmVcIixcbiAgXCJzcG9vblwiLFxuICBcImZvcmtfYW5kX2tuaWZlXCIsXG4gIFwicGxhdGVfd2l0aF9jdXRsZXJ5XCIsXG4gIFwiYm93bF93aXRoX3Nwb29uXCIsXG4gIFwidGFrZW91dF9ib3hcIixcbiAgXCJjaG9wc3RpY2tzXCIsXG4gIFwic2FsdFwiLFxuICBcInNvY2NlclwiLFxuICBcImJhc2tldGJhbGxcIixcbiAgXCJmb290YmFsbFwiLFxuICBcImJhc2ViYWxsXCIsXG4gIFwic29mdGJhbGxcIixcbiAgXCJ0ZW5uaXNcIixcbiAgXCJ2b2xsZXliYWxsXCIsXG4gIFwicnVnYnlfZm9vdGJhbGxcIixcbiAgXCJmbHlpbmdfZGlzY1wiLFxuICBcIjhiYWxsXCIsXG4gIFwiZ29sZlwiLFxuICBcImdvbGZpbmdfd29tYW5cIixcbiAgXCJnb2xmaW5nX21hblwiLFxuICBcInBpbmdfcG9uZ1wiLFxuICBcImJhZG1pbnRvblwiLFxuICBcImdvYWxfbmV0XCIsXG4gIFwiaWNlX2hvY2tleVwiLFxuICBcImZpZWxkX2hvY2tleVwiLFxuICBcImxhY3Jvc3NlXCIsXG4gIFwiY3JpY2tldFwiLFxuICBcInNraVwiLFxuICBcInNraWVyXCIsXG4gIFwic25vd2JvYXJkZXJcIixcbiAgXCJwZXJzb25fZmVuY2luZ1wiLFxuICBcIndvbWVuX3dyZXN0bGluZ1wiLFxuICBcIm1lbl93cmVzdGxpbmdcIixcbiAgXCJ3b21hbl9jYXJ0d2hlZWxpbmdcIixcbiAgXCJtYW5fY2FydHdoZWVsaW5nXCIsXG4gIFwid29tYW5fcGxheWluZ19oYW5kYmFsbFwiLFxuICBcIm1hbl9wbGF5aW5nX2hhbmRiYWxsXCIsXG4gIFwiaWNlX3NrYXRlXCIsXG4gIFwiY3VybGluZ19zdG9uZVwiLFxuICBcInNrYXRlYm9hcmRcIixcbiAgXCJzbGVkXCIsXG4gIFwiYm93X2FuZF9hcnJvd1wiLFxuICBcImZpc2hpbmdfcG9sZV9hbmRfZmlzaFwiLFxuICBcImJveGluZ19nbG92ZVwiLFxuICBcIm1hcnRpYWxfYXJ0c191bmlmb3JtXCIsXG4gIFwicm93aW5nX3dvbWFuXCIsXG4gIFwicm93aW5nX21hblwiLFxuICBcImNsaW1iaW5nX3dvbWFuXCIsXG4gIFwiY2xpbWJpbmdfbWFuXCIsXG4gIFwic3dpbW1pbmdfd29tYW5cIixcbiAgXCJzd2ltbWluZ19tYW5cIixcbiAgXCJ3b21hbl9wbGF5aW5nX3dhdGVyX3BvbG9cIixcbiAgXCJtYW5fcGxheWluZ193YXRlcl9wb2xvXCIsXG4gIFwid29tYW5faW5fbG90dXNfcG9zaXRpb25cIixcbiAgXCJtYW5faW5fbG90dXNfcG9zaXRpb25cIixcbiAgXCJzdXJmaW5nX3dvbWFuXCIsXG4gIFwic3VyZmluZ19tYW5cIixcbiAgXCJiYXNrZXRiYWxsX3dvbWFuXCIsXG4gIFwiYmFza2V0YmFsbF9tYW5cIixcbiAgXCJ3ZWlnaHRfbGlmdGluZ193b21hblwiLFxuICBcIndlaWdodF9saWZ0aW5nX21hblwiLFxuICBcImJpa2luZ193b21hblwiLFxuICBcImJpa2luZ19tYW5cIixcbiAgXCJtb3VudGFpbl9iaWtpbmdfd29tYW5cIixcbiAgXCJtb3VudGFpbl9iaWtpbmdfbWFuXCIsXG4gIFwiaG9yc2VfcmFjaW5nXCIsXG4gIFwidHJvcGh5XCIsXG4gIFwicnVubmluZ19zaGlydF93aXRoX3Nhc2hcIixcbiAgXCJtZWRhbF9zcG9ydHNcIixcbiAgXCJtZWRhbF9taWxpdGFyeVwiLFxuICBcIjFzdF9wbGFjZV9tZWRhbFwiLFxuICBcIjJuZF9wbGFjZV9tZWRhbFwiLFxuICBcIjNyZF9wbGFjZV9tZWRhbFwiLFxuICBcInJlbWluZGVyX3JpYmJvblwiLFxuICBcInJvc2V0dGVcIixcbiAgXCJ0aWNrZXRcIixcbiAgXCJ0aWNrZXRzXCIsXG4gIFwicGVyZm9ybWluZ19hcnRzXCIsXG4gIFwiYXJ0XCIsXG4gIFwiY2lyY3VzX3RlbnRcIixcbiAgXCJ3b21hbl9qdWdnbGluZ1wiLFxuICBcIm1hbl9qdWdnbGluZ1wiLFxuICBcIm1pY3JvcGhvbmVcIixcbiAgXCJoZWFkcGhvbmVzXCIsXG4gIFwibXVzaWNhbF9zY29yZVwiLFxuICBcIm11c2ljYWxfa2V5Ym9hcmRcIixcbiAgXCJkcnVtXCIsXG4gIFwic2F4b3Bob25lXCIsXG4gIFwidHJ1bXBldFwiLFxuICBcImd1aXRhclwiLFxuICBcInZpb2xpblwiLFxuICBcImNsYXBwZXJcIixcbiAgXCJ2aWRlb19nYW1lXCIsXG4gIFwiZGFydFwiLFxuICBcImdhbWVfZGllXCIsXG4gIFwiY2hlc3NfcGF3blwiLFxuICBcInNsb3RfbWFjaGluZVwiLFxuICBcImppZ3Nhd1wiLFxuICBcImJvd2xpbmdcIixcbiAgXCJyZWRfY2FyXCIsXG4gIFwidGF4aVwiLFxuICBcImJsdWVfY2FyXCIsXG4gIFwiYnVzXCIsXG4gIFwidHJvbGxleWJ1c1wiLFxuICBcInJhY2luZ19jYXJcIixcbiAgXCJwb2xpY2VfY2FyXCIsXG4gIFwiYW1idWxhbmNlXCIsXG4gIFwiZmlyZV9lbmdpbmVcIixcbiAgXCJtaW5pYnVzXCIsXG4gIFwidHJ1Y2tcIixcbiAgXCJhcnRpY3VsYXRlZF9sb3JyeVwiLFxuICBcInRyYWN0b3JcIixcbiAgXCJraWNrX3Njb290ZXJcIixcbiAgXCJtb3RvcmN5Y2xlXCIsXG4gIFwiYmlrZVwiLFxuICBcIm1vdG9yX3Njb290ZXJcIixcbiAgXCJyb3RhdGluZ19saWdodFwiLFxuICBcIm9uY29taW5nX3BvbGljZV9jYXJcIixcbiAgXCJvbmNvbWluZ19idXNcIixcbiAgXCJvbmNvbWluZ19hdXRvbW9iaWxlXCIsXG4gIFwib25jb21pbmdfdGF4aVwiLFxuICBcImFlcmlhbF90cmFtd2F5XCIsXG4gIFwibW91bnRhaW5fY2FibGV3YXlcIixcbiAgXCJzdXNwZW5zaW9uX3JhaWx3YXlcIixcbiAgXCJyYWlsd2F5X2NhclwiLFxuICBcInRyYWluXCIsXG4gIFwibW9ub3JhaWxcIixcbiAgXCJidWxsZXR0cmFpbl9zaWRlXCIsXG4gIFwiYnVsbGV0dHJhaW5fZnJvbnRcIixcbiAgXCJsaWdodF9yYWlsXCIsXG4gIFwibW91bnRhaW5fcmFpbHdheVwiLFxuICBcInN0ZWFtX2xvY29tb3RpdmVcIixcbiAgXCJ0cmFpbjJcIixcbiAgXCJtZXRyb1wiLFxuICBcInRyYW1cIixcbiAgXCJzdGF0aW9uXCIsXG4gIFwiZmx5aW5nX3NhdWNlclwiLFxuICBcImhlbGljb3B0ZXJcIixcbiAgXCJzbWFsbF9haXJwbGFuZVwiLFxuICBcImFpcnBsYW5lXCIsXG4gIFwiZmxpZ2h0X2RlcGFydHVyZVwiLFxuICBcImZsaWdodF9hcnJpdmFsXCIsXG4gIFwic2FpbGJvYXRcIixcbiAgXCJtb3Rvcl9ib2F0XCIsXG4gIFwic3BlZWRib2F0XCIsXG4gIFwiZmVycnlcIixcbiAgXCJwYXNzZW5nZXJfc2hpcFwiLFxuICBcInJvY2tldFwiLFxuICBcImFydGlmaWNpYWxfc2F0ZWxsaXRlXCIsXG4gIFwic2VhdFwiLFxuICBcImNhbm9lXCIsXG4gIFwiYW5jaG9yXCIsXG4gIFwiY29uc3RydWN0aW9uXCIsXG4gIFwiZnVlbHB1bXBcIixcbiAgXCJidXNzdG9wXCIsXG4gIFwidmVydGljYWxfdHJhZmZpY19saWdodFwiLFxuICBcInRyYWZmaWNfbGlnaHRcIixcbiAgXCJzaGlwXCIsXG4gIFwiZmVycmlzX3doZWVsXCIsXG4gIFwicm9sbGVyX2NvYXN0ZXJcIixcbiAgXCJjYXJvdXNlbF9ob3JzZVwiLFxuICBcImJ1aWxkaW5nX2NvbnN0cnVjdGlvblwiLFxuICBcImZvZ2d5XCIsXG4gIFwidG9reW9fdG93ZXJcIixcbiAgXCJmYWN0b3J5XCIsXG4gIFwiZm91bnRhaW5cIixcbiAgXCJyaWNlX3NjZW5lXCIsXG4gIFwibW91bnRhaW5cIixcbiAgXCJtb3VudGFpbl9zbm93XCIsXG4gIFwibW91bnRfZnVqaVwiLFxuICBcInZvbGNhbm9cIixcbiAgXCJqYXBhblwiLFxuICBcImNhbXBpbmdcIixcbiAgXCJ0ZW50XCIsXG4gIFwibmF0aW9uYWxfcGFya1wiLFxuICBcIm1vdG9yd2F5XCIsXG4gIFwicmFpbHdheV90cmFja1wiLFxuICBcInN1bnJpc2VcIixcbiAgXCJzdW5yaXNlX292ZXJfbW91bnRhaW5zXCIsXG4gIFwiZGVzZXJ0XCIsXG4gIFwiYmVhY2hfdW1icmVsbGFcIixcbiAgXCJkZXNlcnRfaXNsYW5kXCIsXG4gIFwiY2l0eV9zdW5yaXNlXCIsXG4gIFwiY2l0eV9zdW5zZXRcIixcbiAgXCJjaXR5c2NhcGVcIixcbiAgXCJuaWdodF93aXRoX3N0YXJzXCIsXG4gIFwiYnJpZGdlX2F0X25pZ2h0XCIsXG4gIFwibWlsa3lfd2F5XCIsXG4gIFwic3RhcnNcIixcbiAgXCJzcGFya2xlclwiLFxuICBcImZpcmV3b3Jrc1wiLFxuICBcInJhaW5ib3dcIixcbiAgXCJob3VzZXNcIixcbiAgXCJldXJvcGVhbl9jYXN0bGVcIixcbiAgXCJqYXBhbmVzZV9jYXN0bGVcIixcbiAgXCJzdGFkaXVtXCIsXG4gIFwic3RhdHVlX29mX2xpYmVydHlcIixcbiAgXCJob3VzZVwiLFxuICBcImhvdXNlX3dpdGhfZ2FyZGVuXCIsXG4gIFwiZGVyZWxpY3RfaG91c2VcIixcbiAgXCJvZmZpY2VcIixcbiAgXCJkZXBhcnRtZW50X3N0b3JlXCIsXG4gIFwicG9zdF9vZmZpY2VcIixcbiAgXCJldXJvcGVhbl9wb3N0X29mZmljZVwiLFxuICBcImhvc3BpdGFsXCIsXG4gIFwiYmFua1wiLFxuICBcImhvdGVsXCIsXG4gIFwiY29udmVuaWVuY2Vfc3RvcmVcIixcbiAgXCJzY2hvb2xcIixcbiAgXCJsb3ZlX2hvdGVsXCIsXG4gIFwid2VkZGluZ1wiLFxuICBcImNsYXNzaWNhbF9idWlsZGluZ1wiLFxuICBcImNodXJjaFwiLFxuICBcIm1vc3F1ZVwiLFxuICBcInN5bmFnb2d1ZVwiLFxuICBcImthYWJhXCIsXG4gIFwic2hpbnRvX3NocmluZVwiLFxuICBcIndhdGNoXCIsXG4gIFwiaXBob25lXCIsXG4gIFwiY2FsbGluZ1wiLFxuICBcImNvbXB1dGVyXCIsXG4gIFwia2V5Ym9hcmRcIixcbiAgXCJkZXNrdG9wX2NvbXB1dGVyXCIsXG4gIFwicHJpbnRlclwiLFxuICBcImNvbXB1dGVyX21vdXNlXCIsXG4gIFwidHJhY2tiYWxsXCIsXG4gIFwiam95c3RpY2tcIixcbiAgXCJjbGFtcFwiLFxuICBcIm1pbmlkaXNjXCIsXG4gIFwiZmxvcHB5X2Rpc2tcIixcbiAgXCJjZFwiLFxuICBcImR2ZFwiLFxuICBcInZoc1wiLFxuICBcImNhbWVyYVwiLFxuICBcImNhbWVyYV9mbGFzaFwiLFxuICBcInZpZGVvX2NhbWVyYVwiLFxuICBcIm1vdmllX2NhbWVyYVwiLFxuICBcImZpbG1fcHJvamVjdG9yXCIsXG4gIFwiZmlsbV9zdHJpcFwiLFxuICBcInRlbGVwaG9uZV9yZWNlaXZlclwiLFxuICBcInBob25lXCIsXG4gIFwicGFnZXJcIixcbiAgXCJmYXhcIixcbiAgXCJ0dlwiLFxuICBcInJhZGlvXCIsXG4gIFwic3R1ZGlvX21pY3JvcGhvbmVcIixcbiAgXCJsZXZlbF9zbGlkZXJcIixcbiAgXCJjb250cm9sX2tub2JzXCIsXG4gIFwiY29tcGFzc1wiLFxuICBcInN0b3B3YXRjaFwiLFxuICBcInRpbWVyX2Nsb2NrXCIsXG4gIFwiYWxhcm1fY2xvY2tcIixcbiAgXCJtYW50ZWxwaWVjZV9jbG9ja1wiLFxuICBcImhvdXJnbGFzc19mbG93aW5nX3NhbmRcIixcbiAgXCJob3VyZ2xhc3NcIixcbiAgXCJzYXRlbGxpdGVcIixcbiAgXCJiYXR0ZXJ5XCIsXG4gIFwiZWxlY3RyaWNfcGx1Z1wiLFxuICBcImJ1bGJcIixcbiAgXCJmbGFzaGxpZ2h0XCIsXG4gIFwiY2FuZGxlXCIsXG4gIFwiZmlyZV9leHRpbmd1aXNoZXJcIixcbiAgXCJ3YXN0ZWJhc2tldFwiLFxuICBcIm9pbF9kcnVtXCIsXG4gIFwibW9uZXlfd2l0aF93aW5nc1wiLFxuICBcImRvbGxhclwiLFxuICBcInllblwiLFxuICBcImV1cm9cIixcbiAgXCJwb3VuZFwiLFxuICBcIm1vbmV5YmFnXCIsXG4gIFwiY3JlZGl0X2NhcmRcIixcbiAgXCJnZW1cIixcbiAgXCJiYWxhbmNlX3NjYWxlXCIsXG4gIFwidG9vbGJveFwiLFxuICBcIndyZW5jaFwiLFxuICBcImhhbW1lclwiLFxuICBcImhhbW1lcl9hbmRfcGlja1wiLFxuICBcImhhbW1lcl9hbmRfd3JlbmNoXCIsXG4gIFwicGlja1wiLFxuICBcIm51dF9hbmRfYm9sdFwiLFxuICBcImdlYXJcIixcbiAgXCJicmlja1wiLFxuICBcImNoYWluc1wiLFxuICBcIm1hZ25ldFwiLFxuICBcImd1blwiLFxuICBcImJvbWJcIixcbiAgXCJmaXJlY3JhY2tlclwiLFxuICBcImhvY2hvXCIsXG4gIFwiZGFnZ2VyXCIsXG4gIFwiY3Jvc3NlZF9zd29yZHNcIixcbiAgXCJzaGllbGRcIixcbiAgXCJzbW9raW5nXCIsXG4gIFwiY29mZmluXCIsXG4gIFwiZnVuZXJhbF91cm5cIixcbiAgXCJhbXBob3JhXCIsXG4gIFwiY3J5c3RhbF9iYWxsXCIsXG4gIFwicHJheWVyX2JlYWRzXCIsXG4gIFwibmF6YXJfYW11bGV0XCIsXG4gIFwiYmFyYmVyXCIsXG4gIFwiYWxlbWJpY1wiLFxuICBcInRlbGVzY29wZVwiLFxuICBcIm1pY3Jvc2NvcGVcIixcbiAgXCJob2xlXCIsXG4gIFwicGlsbFwiLFxuICBcInN5cmluZ2VcIixcbiAgXCJkbmFcIixcbiAgXCJtaWNyb2JlXCIsXG4gIFwicGV0cmlfZGlzaFwiLFxuICBcInRlc3RfdHViZVwiLFxuICBcInRoZXJtb21ldGVyXCIsXG4gIFwiYnJvb21cIixcbiAgXCJiYXNrZXRcIixcbiAgXCJ0b2lsZXRfcGFwZXJcIixcbiAgXCJsYWJlbFwiLFxuICBcImJvb2ttYXJrXCIsXG4gIFwidG9pbGV0XCIsXG4gIFwic2hvd2VyXCIsXG4gIFwiYmF0aHR1YlwiLFxuICBcImJhdGhcIixcbiAgXCJzb2FwXCIsXG4gIFwic3BvbmdlXCIsXG4gIFwibG90aW9uX2JvdHRsZVwiLFxuICBcImtleVwiLFxuICBcIm9sZF9rZXlcIixcbiAgXCJjb3VjaF9hbmRfbGFtcFwiLFxuICBcInNsZWVwaW5nX2JlZFwiLFxuICBcImJlZFwiLFxuICBcImRvb3JcIixcbiAgXCJiZWxsaG9wX2JlbGxcIixcbiAgXCJ0ZWRkeV9iZWFyXCIsXG4gIFwiZnJhbWVkX3BpY3R1cmVcIixcbiAgXCJ3b3JsZF9tYXBcIixcbiAgXCJwYXJhc29sX29uX2dyb3VuZFwiLFxuICBcIm1veWFpXCIsXG4gIFwic2hvcHBpbmdcIixcbiAgXCJzaG9wcGluZ19jYXJ0XCIsXG4gIFwiYmFsbG9vblwiLFxuICBcImZsYWdzXCIsXG4gIFwicmliYm9uXCIsXG4gIFwiZ2lmdFwiLFxuICBcImNvbmZldHRpX2JhbGxcIixcbiAgXCJ0YWRhXCIsXG4gIFwiZG9sbHNcIixcbiAgXCJ3aW5kX2NoaW1lXCIsXG4gIFwiY3Jvc3NlZF9mbGFnc1wiLFxuICBcIml6YWtheWFfbGFudGVyblwiLFxuICBcInJlZF9lbnZlbG9wZVwiLFxuICBcImVtYWlsXCIsXG4gIFwiZW52ZWxvcGVfd2l0aF9hcnJvd1wiLFxuICBcImluY29taW5nX2VudmVsb3BlXCIsXG4gIFwiZS1tYWlsXCIsXG4gIFwibG92ZV9sZXR0ZXJcIixcbiAgXCJwb3N0Ym94XCIsXG4gIFwibWFpbGJveF9jbG9zZWRcIixcbiAgXCJtYWlsYm94XCIsXG4gIFwibWFpbGJveF93aXRoX21haWxcIixcbiAgXCJtYWlsYm94X3dpdGhfbm9fbWFpbFwiLFxuICBcInBhY2thZ2VcIixcbiAgXCJwb3N0YWxfaG9yblwiLFxuICBcImluYm94X3RyYXlcIixcbiAgXCJvdXRib3hfdHJheVwiLFxuICBcInNjcm9sbFwiLFxuICBcInBhZ2Vfd2l0aF9jdXJsXCIsXG4gIFwiYm9va21hcmtfdGFic1wiLFxuICBcInJlY2VpcHRcIixcbiAgXCJiYXJfY2hhcnRcIixcbiAgXCJjaGFydF93aXRoX3Vwd2FyZHNfdHJlbmRcIixcbiAgXCJjaGFydF93aXRoX2Rvd253YXJkc190cmVuZFwiLFxuICBcInBhZ2VfZmFjaW5nX3VwXCIsXG4gIFwiZGF0ZVwiLFxuICBcImNhbGVuZGFyXCIsXG4gIFwic3BpcmFsX2NhbGVuZGFyXCIsXG4gIFwiY2FyZF9pbmRleFwiLFxuICBcImNhcmRfZmlsZV9ib3hcIixcbiAgXCJiYWxsb3RfYm94XCIsXG4gIFwiZmlsZV9jYWJpbmV0XCIsXG4gIFwiY2xpcGJvYXJkXCIsXG4gIFwic3BpcmFsX25vdGVwYWRcIixcbiAgXCJmaWxlX2ZvbGRlclwiLFxuICBcIm9wZW5fZmlsZV9mb2xkZXJcIixcbiAgXCJjYXJkX2luZGV4X2RpdmlkZXJzXCIsXG4gIFwibmV3c3BhcGVyX3JvbGxcIixcbiAgXCJuZXdzcGFwZXJcIixcbiAgXCJub3RlYm9va1wiLFxuICBcImNsb3NlZF9ib29rXCIsXG4gIFwiZ3JlZW5fYm9va1wiLFxuICBcImJsdWVfYm9va1wiLFxuICBcIm9yYW5nZV9ib29rXCIsXG4gIFwibm90ZWJvb2tfd2l0aF9kZWNvcmF0aXZlX2NvdmVyXCIsXG4gIFwibGVkZ2VyXCIsXG4gIFwiYm9va3NcIixcbiAgXCJvcGVuX2Jvb2tcIixcbiAgXCJzYWZldHlfcGluXCIsXG4gIFwibGlua1wiLFxuICBcInBhcGVyY2xpcFwiLFxuICBcInBhcGVyY2xpcHNcIixcbiAgXCJzY2lzc29yc1wiLFxuICBcInRyaWFuZ3VsYXJfcnVsZXJcIixcbiAgXCJzdHJhaWdodF9ydWxlclwiLFxuICBcImFiYWN1c1wiLFxuICBcInB1c2hwaW5cIixcbiAgXCJyb3VuZF9wdXNocGluXCIsXG4gIFwiY2xvc2VkX2xvY2tfd2l0aF9rZXlcIixcbiAgXCJsb2NrXCIsXG4gIFwidW5sb2NrXCIsXG4gIFwibG9ja193aXRoX2lua19wZW5cIixcbiAgXCJwZW5cIixcbiAgXCJmb3VudGFpbl9wZW5cIixcbiAgXCJibGFja19uaWJcIixcbiAgXCJtZW1vXCIsXG4gIFwicGVuY2lsMlwiLFxuICBcImNyYXlvblwiLFxuICBcInBhaW50YnJ1c2hcIixcbiAgXCJtYWdcIixcbiAgXCJtYWdfcmlnaHRcIixcbiAgXCJoZWFydFwiLFxuICBcIm9yYW5nZV9oZWFydFwiLFxuICBcInllbGxvd19oZWFydFwiLFxuICBcImdyZWVuX2hlYXJ0XCIsXG4gIFwiYmx1ZV9oZWFydFwiLFxuICBcInB1cnBsZV9oZWFydFwiLFxuICBcImJsYWNrX2hlYXJ0XCIsXG4gIFwiYnJva2VuX2hlYXJ0XCIsXG4gIFwiaGVhdnlfaGVhcnRfZXhjbGFtYXRpb25cIixcbiAgXCJ0d29faGVhcnRzXCIsXG4gIFwicmV2b2x2aW5nX2hlYXJ0c1wiLFxuICBcImhlYXJ0YmVhdFwiLFxuICBcImhlYXJ0cHVsc2VcIixcbiAgXCJzcGFya2xpbmdfaGVhcnRcIixcbiAgXCJjdXBpZFwiLFxuICBcImdpZnRfaGVhcnRcIixcbiAgXCJoZWFydF9kZWNvcmF0aW9uXCIsXG4gIFwicGVhY2Vfc3ltYm9sXCIsXG4gIFwibGF0aW5fY3Jvc3NcIixcbiAgXCJzdGFyX2FuZF9jcmVzY2VudFwiLFxuICBcIm9tXCIsXG4gIFwid2hlZWxfb2ZfZGhhcm1hXCIsXG4gIFwic3Rhcl9vZl9kYXZpZFwiLFxuICBcInNpeF9wb2ludGVkX3N0YXJcIixcbiAgXCJtZW5vcmFoXCIsXG4gIFwieWluX3lhbmdcIixcbiAgXCJvcnRob2RveF9jcm9zc1wiLFxuICBcInBsYWNlX29mX3dvcnNoaXBcIixcbiAgXCJvcGhpdWNodXNcIixcbiAgXCJhcmllc1wiLFxuICBcInRhdXJ1c1wiLFxuICBcImdlbWluaVwiLFxuICBcImNhbmNlclwiLFxuICBcImxlb1wiLFxuICBcInZpcmdvXCIsXG4gIFwibGlicmFcIixcbiAgXCJzY29ycGl1c1wiLFxuICBcInNhZ2l0dGFyaXVzXCIsXG4gIFwiY2Fwcmljb3JuXCIsXG4gIFwiYXF1YXJpdXNcIixcbiAgXCJwaXNjZXNcIixcbiAgXCJpZFwiLFxuICBcImF0b21fc3ltYm9sXCIsXG4gIFwidTdhN2FcIixcbiAgXCJ1NTI3MlwiLFxuICBcInJhZGlvYWN0aXZlXCIsXG4gIFwiYmlvaGF6YXJkXCIsXG4gIFwibW9iaWxlX3Bob25lX29mZlwiLFxuICBcInZpYnJhdGlvbl9tb2RlXCIsXG4gIFwidTY3MDlcIixcbiAgXCJ1NzEyMVwiLFxuICBcInU3NTMzXCIsXG4gIFwidTU1YjZcIixcbiAgXCJ1NjcwOFwiLFxuICBcImVpZ2h0X3BvaW50ZWRfYmxhY2tfc3RhclwiLFxuICBcInZzXCIsXG4gIFwiYWNjZXB0XCIsXG4gIFwid2hpdGVfZmxvd2VyXCIsXG4gIFwiaWRlb2dyYXBoX2FkdmFudGFnZVwiLFxuICBcInNlY3JldFwiLFxuICBcImNvbmdyYXR1bGF0aW9uc1wiLFxuICBcInU1NDA4XCIsXG4gIFwidTZlODBcIixcbiAgXCJ1Nzk4MVwiLFxuICBcImFcIixcbiAgXCJiXCIsXG4gIFwiYWJcIixcbiAgXCJjbFwiLFxuICBcIm8yXCIsXG4gIFwic29zXCIsXG4gIFwibm9fZW50cnlcIixcbiAgXCJuYW1lX2JhZGdlXCIsXG4gIFwibm9fZW50cnlfc2lnblwiLFxuICBcInhcIixcbiAgXCJvXCIsXG4gIFwic3RvcF9zaWduXCIsXG4gIFwiYW5nZXJcIixcbiAgXCJob3RzcHJpbmdzXCIsXG4gIFwibm9fcGVkZXN0cmlhbnNcIixcbiAgXCJkb19ub3RfbGl0dGVyXCIsXG4gIFwibm9fYmljeWNsZXNcIixcbiAgXCJub24tcG90YWJsZV93YXRlclwiLFxuICBcInVuZGVyYWdlXCIsXG4gIFwibm9fbW9iaWxlX3Bob25lc1wiLFxuICBcImV4Y2xhbWF0aW9uXCIsXG4gIFwiZ3JleV9leGNsYW1hdGlvblwiLFxuICBcInF1ZXN0aW9uXCIsXG4gIFwiZ3JleV9xdWVzdGlvblwiLFxuICBcImJhbmdiYW5nXCIsXG4gIFwiaW50ZXJyb2JhbmdcIixcbiAgXCIxMDBcIixcbiAgXCJsb3dfYnJpZ2h0bmVzc1wiLFxuICBcImhpZ2hfYnJpZ2h0bmVzc1wiLFxuICBcInRyaWRlbnRcIixcbiAgXCJmbGV1cl9kZV9saXNcIixcbiAgXCJwYXJ0X2FsdGVybmF0aW9uX21hcmtcIixcbiAgXCJ3YXJuaW5nXCIsXG4gIFwiY2hpbGRyZW5fY3Jvc3NpbmdcIixcbiAgXCJiZWdpbm5lclwiLFxuICBcInJlY3ljbGVcIixcbiAgXCJ1NjMwN1wiLFxuICBcImNoYXJ0XCIsXG4gIFwic3BhcmtsZVwiLFxuICBcImVpZ2h0X3Nwb2tlZF9hc3Rlcmlza1wiLFxuICBcIm5lZ2F0aXZlX3NxdWFyZWRfY3Jvc3NfbWFya1wiLFxuICBcIndoaXRlX2NoZWNrX21hcmtcIixcbiAgXCJkaWFtb25kX3NoYXBlX3dpdGhfYV9kb3RfaW5zaWRlXCIsXG4gIFwiY3ljbG9uZVwiLFxuICBcImxvb3BcIixcbiAgXCJnbG9iZV93aXRoX21lcmlkaWFuc1wiLFxuICBcIm1cIixcbiAgXCJhdG1cIixcbiAgXCJ6enpcIixcbiAgXCJzYVwiLFxuICBcInBhc3Nwb3J0X2NvbnRyb2xcIixcbiAgXCJjdXN0b21zXCIsXG4gIFwiYmFnZ2FnZV9jbGFpbVwiLFxuICBcImxlZnRfbHVnZ2FnZVwiLFxuICBcIndoZWVsY2hhaXJcIixcbiAgXCJub19zbW9raW5nXCIsXG4gIFwid2NcIixcbiAgXCJwYXJraW5nXCIsXG4gIFwicG90YWJsZV93YXRlclwiLFxuICBcIm1lbnNcIixcbiAgXCJ3b21lbnNcIixcbiAgXCJiYWJ5X3N5bWJvbFwiLFxuICBcInJlc3Ryb29tXCIsXG4gIFwicHV0X2xpdHRlcl9pbl9pdHNfcGxhY2VcIixcbiAgXCJjaW5lbWFcIixcbiAgXCJzaWduYWxfc3RyZW5ndGhcIixcbiAgXCJrb2tvXCIsXG4gIFwibmdcIixcbiAgXCJva1wiLFxuICBcInVwXCIsXG4gIFwiY29vbFwiLFxuICBcIm5ld1wiLFxuICBcImZyZWVcIixcbiAgXCJ6ZXJvXCIsXG4gIFwib25lXCIsXG4gIFwidHdvXCIsXG4gIFwidGhyZWVcIixcbiAgXCJmb3VyXCIsXG4gIFwiZml2ZVwiLFxuICBcInNpeFwiLFxuICBcInNldmVuXCIsXG4gIFwiZWlnaHRcIixcbiAgXCJuaW5lXCIsXG4gIFwia2V5Y2FwX3RlblwiLFxuICBcImFzdGVyaXNrXCIsXG4gIFwiMTIzNFwiLFxuICBcImVqZWN0X2J1dHRvblwiLFxuICBcImFycm93X2ZvcndhcmRcIixcbiAgXCJwYXVzZV9idXR0b25cIixcbiAgXCJuZXh0X3RyYWNrX2J1dHRvblwiLFxuICBcInN0b3BfYnV0dG9uXCIsXG4gIFwicmVjb3JkX2J1dHRvblwiLFxuICBcInBsYXlfb3JfcGF1c2VfYnV0dG9uXCIsXG4gIFwicHJldmlvdXNfdHJhY2tfYnV0dG9uXCIsXG4gIFwiZmFzdF9mb3J3YXJkXCIsXG4gIFwicmV3aW5kXCIsXG4gIFwidHdpc3RlZF9yaWdodHdhcmRzX2Fycm93c1wiLFxuICBcInJlcGVhdFwiLFxuICBcInJlcGVhdF9vbmVcIixcbiAgXCJhcnJvd19iYWNrd2FyZFwiLFxuICBcImFycm93X3VwX3NtYWxsXCIsXG4gIFwiYXJyb3dfZG93bl9zbWFsbFwiLFxuICBcImFycm93X2RvdWJsZV91cFwiLFxuICBcImFycm93X2RvdWJsZV9kb3duXCIsXG4gIFwiYXJyb3dfcmlnaHRcIixcbiAgXCJhcnJvd19sZWZ0XCIsXG4gIFwiYXJyb3dfdXBcIixcbiAgXCJhcnJvd19kb3duXCIsXG4gIFwiYXJyb3dfdXBwZXJfcmlnaHRcIixcbiAgXCJhcnJvd19sb3dlcl9yaWdodFwiLFxuICBcImFycm93X2xvd2VyX2xlZnRcIixcbiAgXCJhcnJvd191cHBlcl9sZWZ0XCIsXG4gIFwiYXJyb3dfdXBfZG93blwiLFxuICBcImxlZnRfcmlnaHRfYXJyb3dcIixcbiAgXCJhcnJvd3NfY291bnRlcmNsb2Nrd2lzZVwiLFxuICBcImFycm93X3JpZ2h0X2hvb2tcIixcbiAgXCJsZWZ0d2FyZHNfYXJyb3dfd2l0aF9ob29rXCIsXG4gIFwiYXJyb3dfaGVhZGluZ191cFwiLFxuICBcImFycm93X2hlYWRpbmdfZG93blwiLFxuICBcImhhc2hcIixcbiAgXCJpbmZvcm1hdGlvbl9zb3VyY2VcIixcbiAgXCJhYmNcIixcbiAgXCJhYmNkXCIsXG4gIFwiY2FwaXRhbF9hYmNkXCIsXG4gIFwic3ltYm9sc1wiLFxuICBcIm11c2ljYWxfbm90ZVwiLFxuICBcIm5vdGVzXCIsXG4gIFwid2F2eV9kYXNoXCIsXG4gIFwiY3VybHlfbG9vcFwiLFxuICBcImhlYXZ5X2NoZWNrX21hcmtcIixcbiAgXCJhcnJvd3NfY2xvY2t3aXNlXCIsXG4gIFwiaGVhdnlfcGx1c19zaWduXCIsXG4gIFwiaGVhdnlfbWludXNfc2lnblwiLFxuICBcImhlYXZ5X2RpdmlzaW9uX3NpZ25cIixcbiAgXCJoZWF2eV9tdWx0aXBsaWNhdGlvbl94XCIsXG4gIFwiaW5maW5pdHlcIixcbiAgXCJoZWF2eV9kb2xsYXJfc2lnblwiLFxuICBcImN1cnJlbmN5X2V4Y2hhbmdlXCIsXG4gIFwiY29weXJpZ2h0XCIsXG4gIFwicmVnaXN0ZXJlZFwiLFxuICBcInRtXCIsXG4gIFwiZW5kXCIsXG4gIFwiYmFja1wiLFxuICBcIm9uXCIsXG4gIFwidG9wXCIsXG4gIFwic29vblwiLFxuICBcImJhbGxvdF9ib3hfd2l0aF9jaGVja1wiLFxuICBcInJhZGlvX2J1dHRvblwiLFxuICBcIndoaXRlX2NpcmNsZVwiLFxuICBcImJsYWNrX2NpcmNsZVwiLFxuICBcInJlZF9jaXJjbGVcIixcbiAgXCJsYXJnZV9ibHVlX2NpcmNsZVwiLFxuICBcInNtYWxsX29yYW5nZV9kaWFtb25kXCIsXG4gIFwic21hbGxfYmx1ZV9kaWFtb25kXCIsXG4gIFwibGFyZ2Vfb3JhbmdlX2RpYW1vbmRcIixcbiAgXCJsYXJnZV9ibHVlX2RpYW1vbmRcIixcbiAgXCJzbWFsbF9yZWRfdHJpYW5nbGVcIixcbiAgXCJibGFja19zbWFsbF9zcXVhcmVcIixcbiAgXCJ3aGl0ZV9zbWFsbF9zcXVhcmVcIixcbiAgXCJibGFja19sYXJnZV9zcXVhcmVcIixcbiAgXCJ3aGl0ZV9sYXJnZV9zcXVhcmVcIixcbiAgXCJzbWFsbF9yZWRfdHJpYW5nbGVfZG93blwiLFxuICBcImJsYWNrX21lZGl1bV9zcXVhcmVcIixcbiAgXCJ3aGl0ZV9tZWRpdW1fc3F1YXJlXCIsXG4gIFwiYmxhY2tfbWVkaXVtX3NtYWxsX3NxdWFyZVwiLFxuICBcIndoaXRlX21lZGl1bV9zbWFsbF9zcXVhcmVcIixcbiAgXCJibGFja19zcXVhcmVfYnV0dG9uXCIsXG4gIFwid2hpdGVfc3F1YXJlX2J1dHRvblwiLFxuICBcInNwZWFrZXJcIixcbiAgXCJzb3VuZFwiLFxuICBcImxvdWRfc291bmRcIixcbiAgXCJtdXRlXCIsXG4gIFwibWVnYVwiLFxuICBcImxvdWRzcGVha2VyXCIsXG4gIFwiYmVsbFwiLFxuICBcIm5vX2JlbGxcIixcbiAgXCJibGFja19qb2tlclwiLFxuICBcIm1haGpvbmdcIixcbiAgXCJzcGFkZXNcIixcbiAgXCJjbHVic1wiLFxuICBcImhlYXJ0c1wiLFxuICBcImRpYW1vbmRzXCIsXG4gIFwiZmxvd2VyX3BsYXlpbmdfY2FyZHNcIixcbiAgXCJ0aG91Z2h0X2JhbGxvb25cIixcbiAgXCJyaWdodF9hbmdlcl9idWJibGVcIixcbiAgXCJzcGVlY2hfYmFsbG9vblwiLFxuICBcImxlZnRfc3BlZWNoX2J1YmJsZVwiLFxuICBcImNsb2NrMVwiLFxuICBcImNsb2NrMlwiLFxuICBcImNsb2NrM1wiLFxuICBcImNsb2NrNFwiLFxuICBcImNsb2NrNVwiLFxuICBcImNsb2NrNlwiLFxuICBcImNsb2NrN1wiLFxuICBcImNsb2NrOFwiLFxuICBcImNsb2NrOVwiLFxuICBcImNsb2NrMTBcIixcbiAgXCJjbG9jazExXCIsXG4gIFwiY2xvY2sxMlwiLFxuICBcImNsb2NrMTMwXCIsXG4gIFwiY2xvY2syMzBcIixcbiAgXCJjbG9jazMzMFwiLFxuICBcImNsb2NrNDMwXCIsXG4gIFwiY2xvY2s1MzBcIixcbiAgXCJjbG9jazYzMFwiLFxuICBcImNsb2NrNzMwXCIsXG4gIFwiY2xvY2s4MzBcIixcbiAgXCJjbG9jazkzMFwiLFxuICBcImNsb2NrMTAzMFwiLFxuICBcImNsb2NrMTEzMFwiLFxuICBcImNsb2NrMTIzMFwiLFxuICBcIndoaXRlX2ZsYWdcIixcbiAgXCJibGFja19mbGFnXCIsXG4gIFwicGlyYXRlX2ZsYWdcIixcbiAgXCJjaGVja2VyZWRfZmxhZ1wiLFxuICBcInRyaWFuZ3VsYXJfZmxhZ19vbl9wb3N0XCIsXG4gIFwicmFpbmJvd19mbGFnXCIsXG4gIFwidW5pdGVkX25hdGlvbnNcIixcbiAgXCJhZmdoYW5pc3RhblwiLFxuICBcImFsYW5kX2lzbGFuZHNcIixcbiAgXCJhbGJhbmlhXCIsXG4gIFwiYWxnZXJpYVwiLFxuICBcImFtZXJpY2FuX3NhbW9hXCIsXG4gIFwiYW5kb3JyYVwiLFxuICBcImFuZ29sYVwiLFxuICBcImFuZ3VpbGxhXCIsXG4gIFwiYW50YXJjdGljYVwiLFxuICBcImFudGlndWFfYmFyYnVkYVwiLFxuICBcImFyZ2VudGluYVwiLFxuICBcImFybWVuaWFcIixcbiAgXCJhcnViYVwiLFxuICBcImF1c3RyYWxpYVwiLFxuICBcImF1c3RyaWFcIixcbiAgXCJhemVyYmFpamFuXCIsXG4gIFwiYmFoYW1hc1wiLFxuICBcImJhaHJhaW5cIixcbiAgXCJiYW5nbGFkZXNoXCIsXG4gIFwiYmFyYmFkb3NcIixcbiAgXCJiZWxhcnVzXCIsXG4gIFwiYmVsZ2l1bVwiLFxuICBcImJlbGl6ZVwiLFxuICBcImJlbmluXCIsXG4gIFwiYmVybXVkYVwiLFxuICBcImJodXRhblwiLFxuICBcImJvbGl2aWFcIixcbiAgXCJjYXJpYmJlYW5fbmV0aGVybGFuZHNcIixcbiAgXCJib3NuaWFfaGVyemVnb3ZpbmFcIixcbiAgXCJib3Rzd2FuYVwiLFxuICBcImJyYXppbFwiLFxuICBcImJyaXRpc2hfaW5kaWFuX29jZWFuX3RlcnJpdG9yeVwiLFxuICBcImJyaXRpc2hfdmlyZ2luX2lzbGFuZHNcIixcbiAgXCJicnVuZWlcIixcbiAgXCJidWxnYXJpYVwiLFxuICBcImJ1cmtpbmFfZmFzb1wiLFxuICBcImJ1cnVuZGlcIixcbiAgXCJjYXBlX3ZlcmRlXCIsXG4gIFwiY2FtYm9kaWFcIixcbiAgXCJjYW1lcm9vblwiLFxuICBcImNhbmFkYVwiLFxuICBcImNhbmFyeV9pc2xhbmRzXCIsXG4gIFwiY2F5bWFuX2lzbGFuZHNcIixcbiAgXCJjZW50cmFsX2FmcmljYW5fcmVwdWJsaWNcIixcbiAgXCJjaGFkXCIsXG4gIFwiY2hpbGVcIixcbiAgXCJjblwiLFxuICBcImNocmlzdG1hc19pc2xhbmRcIixcbiAgXCJjb2Nvc19pc2xhbmRzXCIsXG4gIFwiY29sb21iaWFcIixcbiAgXCJjb21vcm9zXCIsXG4gIFwiY29uZ29fYnJhenphdmlsbGVcIixcbiAgXCJjb25nb19raW5zaGFzYVwiLFxuICBcImNvb2tfaXNsYW5kc1wiLFxuICBcImNvc3RhX3JpY2FcIixcbiAgXCJjcm9hdGlhXCIsXG4gIFwiY3ViYVwiLFxuICBcImN1cmFjYW9cIixcbiAgXCJjeXBydXNcIixcbiAgXCJjemVjaF9yZXB1YmxpY1wiLFxuICBcImRlbm1hcmtcIixcbiAgXCJkamlib3V0aVwiLFxuICBcImRvbWluaWNhXCIsXG4gIFwiZG9taW5pY2FuX3JlcHVibGljXCIsXG4gIFwiZWN1YWRvclwiLFxuICBcImVneXB0XCIsXG4gIFwiZWxfc2FsdmFkb3JcIixcbiAgXCJlcXVhdG9yaWFsX2d1aW5lYVwiLFxuICBcImVyaXRyZWFcIixcbiAgXCJlc3RvbmlhXCIsXG4gIFwiZXRoaW9waWFcIixcbiAgXCJldVwiLFxuICBcImZhbGtsYW5kX2lzbGFuZHNcIixcbiAgXCJmYXJvZV9pc2xhbmRzXCIsXG4gIFwiZmlqaVwiLFxuICBcImZpbmxhbmRcIixcbiAgXCJmclwiLFxuICBcImZyZW5jaF9ndWlhbmFcIixcbiAgXCJmcmVuY2hfcG9seW5lc2lhXCIsXG4gIFwiZnJlbmNoX3NvdXRoZXJuX3RlcnJpdG9yaWVzXCIsXG4gIFwiZ2Fib25cIixcbiAgXCJnYW1iaWFcIixcbiAgXCJnZW9yZ2lhXCIsXG4gIFwiZGVcIixcbiAgXCJnaGFuYVwiLFxuICBcImdpYnJhbHRhclwiLFxuICBcImdyZWVjZVwiLFxuICBcImdyZWVubGFuZFwiLFxuICBcImdyZW5hZGFcIixcbiAgXCJndWFkZWxvdXBlXCIsXG4gIFwiZ3VhbVwiLFxuICBcImd1YXRlbWFsYVwiLFxuICBcImd1ZXJuc2V5XCIsXG4gIFwiZ3VpbmVhXCIsXG4gIFwiZ3VpbmVhX2Jpc3NhdVwiLFxuICBcImd1eWFuYVwiLFxuICBcImhhaXRpXCIsXG4gIFwiaG9uZHVyYXNcIixcbiAgXCJob25nX2tvbmdcIixcbiAgXCJodW5nYXJ5XCIsXG4gIFwiaWNlbGFuZFwiLFxuICBcImluZGlhXCIsXG4gIFwiaW5kb25lc2lhXCIsXG4gIFwiaXJhblwiLFxuICBcImlyYXFcIixcbiAgXCJpcmVsYW5kXCIsXG4gIFwiaXNsZV9vZl9tYW5cIixcbiAgXCJpc3JhZWxcIixcbiAgXCJpdFwiLFxuICBcImNvdGVfZGl2b2lyZVwiLFxuICBcImphbWFpY2FcIixcbiAgXCJqcFwiLFxuICBcImplcnNleVwiLFxuICBcImpvcmRhblwiLFxuICBcImthemFraHN0YW5cIixcbiAgXCJrZW55YVwiLFxuICBcImtpcmliYXRpXCIsXG4gIFwia29zb3ZvXCIsXG4gIFwia3V3YWl0XCIsXG4gIFwia3lyZ3l6c3RhblwiLFxuICBcImxhb3NcIixcbiAgXCJsYXR2aWFcIixcbiAgXCJsZWJhbm9uXCIsXG4gIFwibGVzb3Rob1wiLFxuICBcImxpYmVyaWFcIixcbiAgXCJsaWJ5YVwiLFxuICBcImxpZWNodGVuc3RlaW5cIixcbiAgXCJsaXRodWFuaWFcIixcbiAgXCJsdXhlbWJvdXJnXCIsXG4gIFwibWFjYXVcIixcbiAgXCJtYWNlZG9uaWFcIixcbiAgXCJtYWRhZ2FzY2FyXCIsXG4gIFwibWFsYXdpXCIsXG4gIFwibWFsYXlzaWFcIixcbiAgXCJtYWxkaXZlc1wiLFxuICBcIm1hbGlcIixcbiAgXCJtYWx0YVwiLFxuICBcIm1hcnNoYWxsX2lzbGFuZHNcIixcbiAgXCJtYXJ0aW5pcXVlXCIsXG4gIFwibWF1cml0YW5pYVwiLFxuICBcIm1hdXJpdGl1c1wiLFxuICBcIm1heW90dGVcIixcbiAgXCJtZXhpY29cIixcbiAgXCJtaWNyb25lc2lhXCIsXG4gIFwibW9sZG92YVwiLFxuICBcIm1vbmFjb1wiLFxuICBcIm1vbmdvbGlhXCIsXG4gIFwibW9udGVuZWdyb1wiLFxuICBcIm1vbnRzZXJyYXRcIixcbiAgXCJtb3JvY2NvXCIsXG4gIFwibW96YW1iaXF1ZVwiLFxuICBcIm15YW5tYXJcIixcbiAgXCJuYW1pYmlhXCIsXG4gIFwibmF1cnVcIixcbiAgXCJuZXBhbFwiLFxuICBcIm5ldGhlcmxhbmRzXCIsXG4gIFwibmV3X2NhbGVkb25pYVwiLFxuICBcIm5ld196ZWFsYW5kXCIsXG4gIFwibmljYXJhZ3VhXCIsXG4gIFwibmlnZXJcIixcbiAgXCJuaWdlcmlhXCIsXG4gIFwibml1ZVwiLFxuICBcIm5vcmZvbGtfaXNsYW5kXCIsXG4gIFwibm9ydGhlcm5fbWFyaWFuYV9pc2xhbmRzXCIsXG4gIFwibm9ydGhfa29yZWFcIixcbiAgXCJub3J3YXlcIixcbiAgXCJvbWFuXCIsXG4gIFwicGFraXN0YW5cIixcbiAgXCJwYWxhdVwiLFxuICBcInBhbGVzdGluaWFuX3RlcnJpdG9yaWVzXCIsXG4gIFwicGFuYW1hXCIsXG4gIFwicGFwdWFfbmV3X2d1aW5lYVwiLFxuICBcInBhcmFndWF5XCIsXG4gIFwicGVydVwiLFxuICBcInBoaWxpcHBpbmVzXCIsXG4gIFwicGl0Y2Fpcm5faXNsYW5kc1wiLFxuICBcInBvbGFuZFwiLFxuICBcInBvcnR1Z2FsXCIsXG4gIFwicHVlcnRvX3JpY29cIixcbiAgXCJxYXRhclwiLFxuICBcInJldW5pb25cIixcbiAgXCJyb21hbmlhXCIsXG4gIFwicnVcIixcbiAgXCJyd2FuZGFcIixcbiAgXCJzdF9iYXJ0aGVsZW15XCIsXG4gIFwic3RfaGVsZW5hXCIsXG4gIFwic3Rfa2l0dHNfbmV2aXNcIixcbiAgXCJzdF9sdWNpYVwiLFxuICBcInN0X3BpZXJyZV9taXF1ZWxvblwiLFxuICBcInN0X3ZpbmNlbnRfZ3JlbmFkaW5lc1wiLFxuICBcInNhbW9hXCIsXG4gIFwic2FuX21hcmlub1wiLFxuICBcInNhb190b21lX3ByaW5jaXBlXCIsXG4gIFwic2F1ZGlfYXJhYmlhXCIsXG4gIFwic2VuZWdhbFwiLFxuICBcInNlcmJpYVwiLFxuICBcInNleWNoZWxsZXNcIixcbiAgXCJzaWVycmFfbGVvbmVcIixcbiAgXCJzaW5nYXBvcmVcIixcbiAgXCJzaW50X21hYXJ0ZW5cIixcbiAgXCJzbG92YWtpYVwiLFxuICBcInNsb3ZlbmlhXCIsXG4gIFwic29sb21vbl9pc2xhbmRzXCIsXG4gIFwic29tYWxpYVwiLFxuICBcInNvdXRoX2FmcmljYVwiLFxuICBcInNvdXRoX2dlb3JnaWFfc291dGhfc2FuZHdpY2hfaXNsYW5kc1wiLFxuICBcImtyXCIsXG4gIFwic291dGhfc3VkYW5cIixcbiAgXCJlc1wiLFxuICBcInNyaV9sYW5rYVwiLFxuICBcInN1ZGFuXCIsXG4gIFwic3VyaW5hbWVcIixcbiAgXCJzd2F6aWxhbmRcIixcbiAgXCJzd2VkZW5cIixcbiAgXCJzd2l0emVybGFuZFwiLFxuICBcInN5cmlhXCIsXG4gIFwidGFpd2FuXCIsXG4gIFwidGFqaWtpc3RhblwiLFxuICBcInRhbnphbmlhXCIsXG4gIFwidGhhaWxhbmRcIixcbiAgXCJ0aW1vcl9sZXN0ZVwiLFxuICBcInRvZ29cIixcbiAgXCJ0b2tlbGF1XCIsXG4gIFwidG9uZ2FcIixcbiAgXCJ0cmluaWRhZF90b2JhZ29cIixcbiAgXCJ0dW5pc2lhXCIsXG4gIFwidHJcIixcbiAgXCJ0dXJrbWVuaXN0YW5cIixcbiAgXCJ0dXJrc19jYWljb3NfaXNsYW5kc1wiLFxuICBcInR1dmFsdVwiLFxuICBcInVnYW5kYVwiLFxuICBcInVrcmFpbmVcIixcbiAgXCJ1bml0ZWRfYXJhYl9lbWlyYXRlc1wiLFxuICBcInVrXCIsXG4gIFwiZW5nbGFuZFwiLFxuICBcInNjb3RsYW5kXCIsXG4gIFwid2FsZXNcIixcbiAgXCJ1c1wiLFxuICBcInVzX3Zpcmdpbl9pc2xhbmRzXCIsXG4gIFwidXJ1Z3VheVwiLFxuICBcInV6YmVraXN0YW5cIixcbiAgXCJ2YW51YXR1XCIsXG4gIFwidmF0aWNhbl9jaXR5XCIsXG4gIFwidmVuZXp1ZWxhXCIsXG4gIFwidmlldG5hbVwiLFxuICBcIndhbGxpc19mdXR1bmFcIixcbiAgXCJ3ZXN0ZXJuX3NhaGFyYVwiLFxuICBcInllbWVuXCIsXG4gIFwiemFtYmlhXCIsXG4gIFwiemltYmFid2VcIlxuXVxuIiwgIm1vZHVsZS5leHBvcnRzID0ge1xuICBsaWI6IHJlcXVpcmUoJy4vZW1vamlzJyksXG4gIG9yZGVyZWQ6IHJlcXVpcmUoJy4vb3JkZXJlZCcpLFxuICBmaXR6cGF0cmlja19zY2FsZV9tb2RpZmllcnM6IFtcIlx1RDgzQ1x1REZGQlwiLCBcIlx1RDgzQ1x1REZGQ1wiLCBcIlx1RDgzQ1x1REZGRFwiLCBcIlx1RDgzQ1x1REZGRVwiLCBcIlx1RDgzQ1x1REZGRlwiXVxufVxuIiwgIlwidXNlIHN0cmljdFwiXHJcblxyXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi82MDE4MzUwYWMxMGQ1Y2U2YTViN2RiNjI1MTQwYjgyYWVhYjgwNGRmLy5pbnRlcm5hbC91bmljb2RlU2l6ZS5qc1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSAoKSA9PiB7XHJcblx0Ly8gVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2hhcmFjdGVyIGNsYXNzZXMuXHJcblx0Y29uc3QgYXN0cmFsUmFuZ2UgPSBcIlxcXFx1ZDgwMC1cXFxcdWRmZmZcIlxyXG5cdGNvbnN0IGNvbWJvTWFya3NSYW5nZSA9IFwiXFxcXHUwMzAwLVxcXFx1MDM2ZlwiXHJcblx0Y29uc3QgY29tYm9IYWxmTWFya3NSYW5nZSA9IFwiXFxcXHVmZTIwLVxcXFx1ZmUyZlwiXHJcblx0Y29uc3QgY29tYm9TeW1ib2xzUmFuZ2UgPSBcIlxcXFx1MjBkMC1cXFxcdTIwZmZcIlxyXG5cdGNvbnN0IGNvbWJvTWFya3NFeHRlbmRlZFJhbmdlID0gXCJcXFxcdTFhYjAtXFxcXHUxYWZmXCJcclxuXHRjb25zdCBjb21ib01hcmtzU3VwcGxlbWVudFJhbmdlID0gXCJcXFxcdTFkYzAtXFxcXHUxZGZmXCJcclxuXHRjb25zdCBjb21ib1JhbmdlID0gY29tYm9NYXJrc1JhbmdlICsgY29tYm9IYWxmTWFya3NSYW5nZSArIGNvbWJvU3ltYm9sc1JhbmdlICsgY29tYm9NYXJrc0V4dGVuZGVkUmFuZ2UgKyBjb21ib01hcmtzU3VwcGxlbWVudFJhbmdlXHJcblx0Y29uc3QgdmFyUmFuZ2UgPSBcIlxcXFx1ZmUwZVxcXFx1ZmUwZlwiXHJcblx0Y29uc3QgZmFtaWx5UmFuZ2UgPSBcIlxcXFx1RDgzRFxcXFx1REM2OVxcXFx1RDgzQ1xcXFx1REZGQlxcXFx1MjAwRFxcXFx1RDgzQ1xcXFx1REY5M1wiXHJcblxyXG5cdC8vIFVzZWQgdG8gY29tcG9zZSB1bmljb2RlIGNhcHR1cmUgZ3JvdXBzLlxyXG5cdGNvbnN0IGFzdHJhbCA9IGBbJHthc3RyYWxSYW5nZX1dYFxyXG5cdGNvbnN0IGNvbWJvID0gYFske2NvbWJvUmFuZ2V9XWBcclxuXHRjb25zdCBmaXR6ID0gXCJcXFxcdWQ4M2NbXFxcXHVkZmZiLVxcXFx1ZGZmZl1cIlxyXG5cdGNvbnN0IG1vZGlmaWVyID0gYCg/OiR7Y29tYm99fCR7Zml0en0pYFxyXG5cdGNvbnN0IG5vbkFzdHJhbCA9IGBbXiR7YXN0cmFsUmFuZ2V9XWBcclxuXHRjb25zdCByZWdpb25hbCA9IFwiKD86XFxcXHVEODNDW1xcXFx1RERFNi1cXFxcdURERkZdKXsyfVwiXHJcblx0Y29uc3Qgc3Vycm9nYXRlUGFpciA9IFwiW1xcXFx1ZDgwMC1cXFxcdWRiZmZdW1xcXFx1ZGMwMC1cXFxcdWRmZmZdXCJcclxuXHRjb25zdCB6d2ogPSBcIlxcXFx1MjAwZFwiXHJcblx0Y29uc3QgYmxhY2tGbGFnID0gXCIoPzpcXFxcdWQ4M2NcXFxcdWRmZjRcXFxcdWRiNDBcXFxcdWRjNjdcXFxcdWRiNDBcXFxcdWRjNjJcXFxcdWRiNDAoPzpcXFxcdWRjNjV8XFxcXHVkYzczfFxcXFx1ZGM3NylcXFxcdWRiNDAoPzpcXFxcdWRjNmV8XFxcXHVkYzYzfFxcXFx1ZGM2YylcXFxcdWRiNDAoPzpcXFxcdWRjNjd8XFxcXHVkYzc0fFxcXFx1ZGM3MylcXFxcdWRiNDBcXFxcdWRjN2YpXCJcclxuXHRjb25zdCBmYW1pbHkgPSBgWyR7ZmFtaWx5UmFuZ2V9XWBcclxuXHJcblx0Ly8gVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgcmVnZXhlcy5cclxuXHRjb25zdCBvcHRNb2RpZmllciA9IGAke21vZGlmaWVyfT9gXHJcblx0Y29uc3Qgb3B0VmFyID0gYFske3ZhclJhbmdlfV0/YFxyXG5cdGNvbnN0IG9wdEpvaW4gPSBgKD86JHt6d2p9KD86JHtbbm9uQXN0cmFsLCByZWdpb25hbCwgc3Vycm9nYXRlUGFpcl0uam9pbihcInxcIil9KSR7b3B0VmFyICsgb3B0TW9kaWZpZXJ9KSpgXHJcblx0Y29uc3Qgc2VxID0gb3B0VmFyICsgb3B0TW9kaWZpZXIgKyBvcHRKb2luXHJcblx0Y29uc3Qgbm9uQXN0cmFsQ29tYm8gPSBgJHtub25Bc3RyYWx9JHtjb21ib30/YFxyXG5cdGNvbnN0IHN5bWJvbCA9IGAoPzoke1tub25Bc3RyYWxDb21ibywgY29tYm8sIHJlZ2lvbmFsLCBzdXJyb2dhdGVQYWlyLCBhc3RyYWwsIGZhbWlseV0uam9pbihcInxcIil9KWBcclxuXHJcblx0Ly8gVXNlZCB0byBtYXRjaCBbU3RyaW5nIHN5bWJvbHNdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LXVuaWNvZGUpLlxyXG5cdHJldHVybiBuZXcgUmVnRXhwKGAke2JsYWNrRmxhZ318JHtmaXR6fSg/PSR7Zml0en0pfCR7c3ltYm9sICsgc2VxfWAsIFwiZ1wiKVxyXG59XHJcbiIsICIvLyBHZW5lcmF0ZWQgdXNpbmcgYG5wbSBydW4gYnVpbGRgLiBEbyBub3QgZWRpdCFcbm1vZHVsZS5leHBvcnRzID0gbmV3IFNldChbXG5cdDB4MjYxRCxcblx0MHgyNkY5LFxuXHQweDI3MEEsXG5cdDB4MjcwQixcblx0MHgyNzBDLFxuXHQweDI3MEQsXG5cdDB4MUYzODUsXG5cdDB4MUYzQzMsXG5cdDB4MUYzQzQsXG5cdDB4MUYzQ0EsXG5cdDB4MUYzQ0IsXG5cdDB4MUY0NDIsXG5cdDB4MUY0NDMsXG5cdDB4MUY0NDYsXG5cdDB4MUY0NDcsXG5cdDB4MUY0NDgsXG5cdDB4MUY0NDksXG5cdDB4MUY0NEEsXG5cdDB4MUY0NEIsXG5cdDB4MUY0NEMsXG5cdDB4MUY0NEQsXG5cdDB4MUY0NEUsXG5cdDB4MUY0NEYsXG5cdDB4MUY0NTAsXG5cdDB4MUY0NjYsXG5cdDB4MUY0NjcsXG5cdDB4MUY0NjgsXG5cdDB4MUY0NjksXG5cdDB4MUY0NkUsXG5cdDB4MUY0NzAsXG5cdDB4MUY0NzEsXG5cdDB4MUY0NzIsXG5cdDB4MUY0NzMsXG5cdDB4MUY0NzQsXG5cdDB4MUY0NzUsXG5cdDB4MUY0NzYsXG5cdDB4MUY0NzcsXG5cdDB4MUY0NzgsXG5cdDB4MUY0N0MsXG5cdDB4MUY0ODEsXG5cdDB4MUY0ODIsXG5cdDB4MUY0ODMsXG5cdDB4MUY0ODUsXG5cdDB4MUY0ODYsXG5cdDB4MUY0ODcsXG5cdDB4MUY0QUEsXG5cdDB4MUY1NzUsXG5cdDB4MUY1N0EsXG5cdDB4MUY1OTAsXG5cdDB4MUY1OTUsXG5cdDB4MUY1OTYsXG5cdDB4MUY2NDUsXG5cdDB4MUY2NDYsXG5cdDB4MUY2NDcsXG5cdDB4MUY2NEIsXG5cdDB4MUY2NEMsXG5cdDB4MUY2NEQsXG5cdDB4MUY2NEUsXG5cdDB4MUY2NEYsXG5cdDB4MUY2QTMsXG5cdDB4MUY2QjQsXG5cdDB4MUY2QjUsXG5cdDB4MUY2QjYsXG5cdDB4MUY2QzAsXG5cdDB4MUY5MTgsXG5cdDB4MUY5MTksXG5cdDB4MUY5MUEsXG5cdDB4MUY5MUIsXG5cdDB4MUY5MUMsXG5cdDB4MUY5MUQsXG5cdDB4MUY5MUUsXG5cdDB4MUY5MjYsXG5cdDB4MUY5MzAsXG5cdDB4MUY5MzMsXG5cdDB4MUY5MzQsXG5cdDB4MUY5MzUsXG5cdDB4MUY5MzYsXG5cdDB4MUY5MzcsXG5cdDB4MUY5MzgsXG5cdDB4MUY5MzksXG5cdDB4MUY5M0MsXG5cdDB4MUY5M0QsXG5cdDB4MUY5M0Vcbl0pO1xuIiwgIid1c2Ugc3RyaWN0JztcbmNvbnN0IGVtb2ppTW9kaWZpZXJCYXNlID0gcmVxdWlyZSgndW5pY29kZS1lbW9qaS1tb2RpZmllci1iYXNlJyk7XG5cbmNvbnN0IHNraW5Ub25lcyA9IG5ldyBNYXAoW1xuXHRbJ25vbmUnLCAnJ10sXG5cdFsnd2hpdGUnLCAnXHVEODNDXHVERkZCJ10sXG5cdFsnY3JlYW1XaGl0ZScsICdcdUQ4M0NcdURGRkMnXSxcblx0WydsaWdodEJyb3duJywgJ1x1RDgzQ1x1REZGRCddLFxuXHRbJ2Jyb3duJywgJ1x1RDgzQ1x1REZGRSddLFxuXHRbJ2RhcmtCcm93bicsICdcdUQ4M0NcdURGRkYnXVxuXSk7XG5cbm1vZHVsZS5leHBvcnRzID0gKGVtb2ppLCB0b25lKSA9PiB7XG5cdGlmICghc2tpblRvbmVzLmhhcyh0b25lKSkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYFVuZXhwZWN0ZWQgXFxgc2tpblRvbmVcXGAgbmFtZTogJHt0b25lfWApO1xuXHR9XG5cblx0ZW1vamkgPSBlbW9qaS5yZXBsYWNlKC9bXFx1ezFmM2ZifS1cXHV7MWYzZmZ9XS91LCAnJyk7XG5cblx0aWYgKGVtb2ppTW9kaWZpZXJCYXNlLmhhcyhlbW9qaS5jb2RlUG9pbnRBdCgwKSkgJiYgdG9uZSAhPT0gJ25vbmUnKSB7XG5cdFx0ZW1vamkgKz0gc2tpblRvbmVzLmdldCh0b25lKTtcblx0fVxuXG5cdHJldHVybiBlbW9qaTtcbn07XG4iLCAiLy8gTm90ZTogdGhpcyBpcyB0aGUgc2VtdmVyLm9yZyB2ZXJzaW9uIG9mIHRoZSBzcGVjIHRoYXQgaXQgaW1wbGVtZW50c1xuLy8gTm90IG5lY2Vzc2FyaWx5IHRoZSBwYWNrYWdlIHZlcnNpb24gb2YgdGhpcyBjb2RlLlxuY29uc3QgU0VNVkVSX1NQRUNfVkVSU0lPTiA9ICcyLjAuMCdcblxuY29uc3QgTUFYX0xFTkdUSCA9IDI1NlxuY29uc3QgTUFYX1NBRkVfSU5URUdFUiA9IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIHx8XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyA5MDA3MTk5MjU0NzQwOTkxXG5cbi8vIE1heCBzYWZlIHNlZ21lbnQgbGVuZ3RoIGZvciBjb2VyY2lvbi5cbmNvbnN0IE1BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEggPSAxNlxuXG4vLyBNYXggc2FmZSBsZW5ndGggZm9yIGEgYnVpbGQgaWRlbnRpZmllci4gVGhlIG1heCBsZW5ndGggbWludXMgNiBjaGFyYWN0ZXJzIGZvclxuLy8gdGhlIHNob3J0ZXN0IHZlcnNpb24gd2l0aCBhIGJ1aWxkIDAuMC4wK0JVSUxELlxuY29uc3QgTUFYX1NBRkVfQlVJTERfTEVOR1RIID0gTUFYX0xFTkdUSCAtIDZcblxuY29uc3QgUkVMRUFTRV9UWVBFUyA9IFtcbiAgJ21ham9yJyxcbiAgJ3ByZW1ham9yJyxcbiAgJ21pbm9yJyxcbiAgJ3ByZW1pbm9yJyxcbiAgJ3BhdGNoJyxcbiAgJ3ByZXBhdGNoJyxcbiAgJ3ByZXJlbGVhc2UnLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgTUFYX0xFTkdUSCxcbiAgTUFYX1NBRkVfQ09NUE9ORU5UX0xFTkdUSCxcbiAgTUFYX1NBRkVfQlVJTERfTEVOR1RILFxuICBNQVhfU0FGRV9JTlRFR0VSLFxuICBSRUxFQVNFX1RZUEVTLFxuICBTRU1WRVJfU1BFQ19WRVJTSU9OLFxuICBGTEFHX0lOQ0xVREVfUFJFUkVMRUFTRTogMGIwMDEsXG4gIEZMQUdfTE9PU0U6IDBiMDEwLFxufVxuIiwgImNvbnN0IGRlYnVnID0gKFxuICB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiZcbiAgcHJvY2Vzcy5lbnYgJiZcbiAgcHJvY2Vzcy5lbnYuTk9ERV9ERUJVRyAmJlxuICAvXFxic2VtdmVyXFxiL2kudGVzdChwcm9jZXNzLmVudi5OT0RFX0RFQlVHKVxuKSA/ICguLi5hcmdzKSA9PiBjb25zb2xlLmVycm9yKCdTRU1WRVInLCAuLi5hcmdzKVxuICA6ICgpID0+IHt9XG5cbm1vZHVsZS5leHBvcnRzID0gZGVidWdcbiIsICJjb25zdCB7XG4gIE1BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEgsXG4gIE1BWF9TQUZFX0JVSUxEX0xFTkdUSCxcbiAgTUFYX0xFTkdUSCxcbn0gPSByZXF1aXJlKCcuL2NvbnN0YW50cycpXG5jb25zdCBkZWJ1ZyA9IHJlcXVpcmUoJy4vZGVidWcnKVxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0ge31cblxuLy8gVGhlIGFjdHVhbCByZWdleHBzIGdvIG9uIGV4cG9ydHMucmVcbmNvbnN0IHJlID0gZXhwb3J0cy5yZSA9IFtdXG5jb25zdCBzYWZlUmUgPSBleHBvcnRzLnNhZmVSZSA9IFtdXG5jb25zdCBzcmMgPSBleHBvcnRzLnNyYyA9IFtdXG5jb25zdCB0ID0gZXhwb3J0cy50ID0ge31cbmxldCBSID0gMFxuXG5jb25zdCBMRVRURVJEQVNITlVNQkVSID0gJ1thLXpBLVowLTktXSdcblxuLy8gUmVwbGFjZSBzb21lIGdyZWVkeSByZWdleCB0b2tlbnMgdG8gcHJldmVudCByZWdleCBkb3MgaXNzdWVzLiBUaGVzZSByZWdleCBhcmVcbi8vIHVzZWQgaW50ZXJuYWxseSB2aWEgdGhlIHNhZmVSZSBvYmplY3Qgc2luY2UgYWxsIGlucHV0cyBpbiB0aGlzIGxpYnJhcnkgZ2V0XG4vLyBub3JtYWxpemVkIGZpcnN0IHRvIHRyaW0gYW5kIGNvbGxhcHNlIGFsbCBleHRyYSB3aGl0ZXNwYWNlLiBUaGUgb3JpZ2luYWxcbi8vIHJlZ2V4ZXMgYXJlIGV4cG9ydGVkIGZvciB1c2VybGFuZCBjb25zdW1wdGlvbiBhbmQgbG93ZXIgbGV2ZWwgdXNhZ2UuIEFcbi8vIGZ1dHVyZSBicmVha2luZyBjaGFuZ2UgY291bGQgZXhwb3J0IHRoZSBzYWZlciByZWdleCBvbmx5IHdpdGggYSBub3RlIHRoYXRcbi8vIGFsbCBpbnB1dCBzaG91bGQgaGF2ZSBleHRyYSB3aGl0ZXNwYWNlIHJlbW92ZWQuXG5jb25zdCBzYWZlUmVnZXhSZXBsYWNlbWVudHMgPSBbXG4gIFsnXFxcXHMnLCAxXSxcbiAgWydcXFxcZCcsIE1BWF9MRU5HVEhdLFxuICBbTEVUVEVSREFTSE5VTUJFUiwgTUFYX1NBRkVfQlVJTERfTEVOR1RIXSxcbl1cblxuY29uc3QgbWFrZVNhZmVSZWdleCA9ICh2YWx1ZSkgPT4ge1xuICBmb3IgKGNvbnN0IFt0b2tlbiwgbWF4XSBvZiBzYWZlUmVnZXhSZXBsYWNlbWVudHMpIHtcbiAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAuc3BsaXQoYCR7dG9rZW59KmApLmpvaW4oYCR7dG9rZW59ezAsJHttYXh9fWApXG4gICAgICAuc3BsaXQoYCR7dG9rZW59K2ApLmpvaW4oYCR7dG9rZW59ezEsJHttYXh9fWApXG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbmNvbnN0IGNyZWF0ZVRva2VuID0gKG5hbWUsIHZhbHVlLCBpc0dsb2JhbCkgPT4ge1xuICBjb25zdCBzYWZlID0gbWFrZVNhZmVSZWdleCh2YWx1ZSlcbiAgY29uc3QgaW5kZXggPSBSKytcbiAgZGVidWcobmFtZSwgaW5kZXgsIHZhbHVlKVxuICB0W25hbWVdID0gaW5kZXhcbiAgc3JjW2luZGV4XSA9IHZhbHVlXG4gIHJlW2luZGV4XSA9IG5ldyBSZWdFeHAodmFsdWUsIGlzR2xvYmFsID8gJ2cnIDogdW5kZWZpbmVkKVxuICBzYWZlUmVbaW5kZXhdID0gbmV3IFJlZ0V4cChzYWZlLCBpc0dsb2JhbCA/ICdnJyA6IHVuZGVmaW5lZClcbn1cblxuLy8gVGhlIGZvbGxvd2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIGNhbiBiZSB1c2VkIGZvciB0b2tlbml6aW5nLFxuLy8gdmFsaWRhdGluZywgYW5kIHBhcnNpbmcgU2VtVmVyIHZlcnNpb24gc3RyaW5ncy5cblxuLy8gIyMgTnVtZXJpYyBJZGVudGlmaWVyXG4vLyBBIHNpbmdsZSBgMGAsIG9yIGEgbm9uLXplcm8gZGlnaXQgZm9sbG93ZWQgYnkgemVybyBvciBtb3JlIGRpZ2l0cy5cblxuY3JlYXRlVG9rZW4oJ05VTUVSSUNJREVOVElGSUVSJywgJzB8WzEtOV1cXFxcZConKVxuY3JlYXRlVG9rZW4oJ05VTUVSSUNJREVOVElGSUVSTE9PU0UnLCAnXFxcXGQrJylcblxuLy8gIyMgTm9uLW51bWVyaWMgSWRlbnRpZmllclxuLy8gWmVybyBvciBtb3JlIGRpZ2l0cywgZm9sbG93ZWQgYnkgYSBsZXR0ZXIgb3IgaHlwaGVuLCBhbmQgdGhlbiB6ZXJvIG9yXG4vLyBtb3JlIGxldHRlcnMsIGRpZ2l0cywgb3IgaHlwaGVucy5cblxuY3JlYXRlVG9rZW4oJ05PTk5VTUVSSUNJREVOVElGSUVSJywgYFxcXFxkKlthLXpBLVotXSR7TEVUVEVSREFTSE5VTUJFUn0qYClcblxuLy8gIyMgTWFpbiBWZXJzaW9uXG4vLyBUaHJlZSBkb3Qtc2VwYXJhdGVkIG51bWVyaWMgaWRlbnRpZmllcnMuXG5cbmNyZWF0ZVRva2VuKCdNQUlOVkVSU0lPTicsIGAoJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUl19KVxcXFwuYCArXG4gICAgICAgICAgICAgICAgICAgYCgke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSXX0pXFxcXC5gICtcbiAgICAgICAgICAgICAgICAgICBgKCR7c3JjW3QuTlVNRVJJQ0lERU5USUZJRVJdfSlgKVxuXG5jcmVhdGVUb2tlbignTUFJTlZFUlNJT05MT09TRScsIGAoJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUkxPT1NFXX0pXFxcXC5gICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGAoJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUkxPT1NFXX0pXFxcXC5gICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGAoJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUkxPT1NFXX0pYClcblxuLy8gIyMgUHJlLXJlbGVhc2UgVmVyc2lvbiBJZGVudGlmaWVyXG4vLyBBIG51bWVyaWMgaWRlbnRpZmllciwgb3IgYSBub24tbnVtZXJpYyBpZGVudGlmaWVyLlxuXG5jcmVhdGVUb2tlbignUFJFUkVMRUFTRUlERU5USUZJRVInLCBgKD86JHtzcmNbdC5OVU1FUklDSURFTlRJRklFUl1cbn18JHtzcmNbdC5OT05OVU1FUklDSURFTlRJRklFUl19KWApXG5cbmNyZWF0ZVRva2VuKCdQUkVSRUxFQVNFSURFTlRJRklFUkxPT1NFJywgYCg/OiR7c3JjW3QuTlVNRVJJQ0lERU5USUZJRVJMT09TRV1cbn18JHtzcmNbdC5OT05OVU1FUklDSURFTlRJRklFUl19KWApXG5cbi8vICMjIFByZS1yZWxlYXNlIFZlcnNpb25cbi8vIEh5cGhlbiwgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZG90LXNlcGFyYXRlZCBwcmUtcmVsZWFzZSB2ZXJzaW9uXG4vLyBpZGVudGlmaWVycy5cblxuY3JlYXRlVG9rZW4oJ1BSRVJFTEVBU0UnLCBgKD86LSgke3NyY1t0LlBSRVJFTEVBU0VJREVOVElGSUVSXVxufSg/OlxcXFwuJHtzcmNbdC5QUkVSRUxFQVNFSURFTlRJRklFUl19KSopKWApXG5cbmNyZWF0ZVRva2VuKCdQUkVSRUxFQVNFTE9PU0UnLCBgKD86LT8oJHtzcmNbdC5QUkVSRUxFQVNFSURFTlRJRklFUkxPT1NFXVxufSg/OlxcXFwuJHtzcmNbdC5QUkVSRUxFQVNFSURFTlRJRklFUkxPT1NFXX0pKikpYClcblxuLy8gIyMgQnVpbGQgTWV0YWRhdGEgSWRlbnRpZmllclxuLy8gQW55IGNvbWJpbmF0aW9uIG9mIGRpZ2l0cywgbGV0dGVycywgb3IgaHlwaGVucy5cblxuY3JlYXRlVG9rZW4oJ0JVSUxESURFTlRJRklFUicsIGAke0xFVFRFUkRBU0hOVU1CRVJ9K2ApXG5cbi8vICMjIEJ1aWxkIE1ldGFkYXRhXG4vLyBQbHVzIHNpZ24sIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIHBlcmlvZC1zZXBhcmF0ZWQgYnVpbGQgbWV0YWRhdGFcbi8vIGlkZW50aWZpZXJzLlxuXG5jcmVhdGVUb2tlbignQlVJTEQnLCBgKD86XFxcXCsoJHtzcmNbdC5CVUlMRElERU5USUZJRVJdXG59KD86XFxcXC4ke3NyY1t0LkJVSUxESURFTlRJRklFUl19KSopKWApXG5cbi8vICMjIEZ1bGwgVmVyc2lvbiBTdHJpbmdcbi8vIEEgbWFpbiB2ZXJzaW9uLCBmb2xsb3dlZCBvcHRpb25hbGx5IGJ5IGEgcHJlLXJlbGVhc2UgdmVyc2lvbiBhbmRcbi8vIGJ1aWxkIG1ldGFkYXRhLlxuXG4vLyBOb3RlIHRoYXQgdGhlIG9ubHkgbWFqb3IsIG1pbm9yLCBwYXRjaCwgYW5kIHByZS1yZWxlYXNlIHNlY3Rpb25zIG9mXG4vLyB0aGUgdmVyc2lvbiBzdHJpbmcgYXJlIGNhcHR1cmluZyBncm91cHMuICBUaGUgYnVpbGQgbWV0YWRhdGEgaXMgbm90IGFcbi8vIGNhcHR1cmluZyBncm91cCwgYmVjYXVzZSBpdCBzaG91bGQgbm90IGV2ZXIgYmUgdXNlZCBpbiB2ZXJzaW9uXG4vLyBjb21wYXJpc29uLlxuXG5jcmVhdGVUb2tlbignRlVMTFBMQUlOJywgYHY/JHtzcmNbdC5NQUlOVkVSU0lPTl1cbn0ke3NyY1t0LlBSRVJFTEVBU0VdfT8ke1xuICBzcmNbdC5CVUlMRF19P2ApXG5cbmNyZWF0ZVRva2VuKCdGVUxMJywgYF4ke3NyY1t0LkZVTExQTEFJTl19JGApXG5cbi8vIGxpa2UgZnVsbCwgYnV0IGFsbG93cyB2MS4yLjMgYW5kID0xLjIuMywgd2hpY2ggcGVvcGxlIGRvIHNvbWV0aW1lcy5cbi8vIGFsc28sIDEuMC4wYWxwaGExIChwcmVyZWxlYXNlIHdpdGhvdXQgdGhlIGh5cGhlbikgd2hpY2ggaXMgcHJldHR5XG4vLyBjb21tb24gaW4gdGhlIG5wbSByZWdpc3RyeS5cbmNyZWF0ZVRva2VuKCdMT09TRVBMQUlOJywgYFt2PVxcXFxzXSoke3NyY1t0Lk1BSU5WRVJTSU9OTE9PU0VdXG59JHtzcmNbdC5QUkVSRUxFQVNFTE9PU0VdfT8ke1xuICBzcmNbdC5CVUlMRF19P2ApXG5cbmNyZWF0ZVRva2VuKCdMT09TRScsIGBeJHtzcmNbdC5MT09TRVBMQUlOXX0kYClcblxuY3JlYXRlVG9rZW4oJ0dUTFQnLCAnKCg/Ojx8Pik/PT8pJylcblxuLy8gU29tZXRoaW5nIGxpa2UgXCIyLipcIiBvciBcIjEuMi54XCIuXG4vLyBOb3RlIHRoYXQgXCJ4LnhcIiBpcyBhIHZhbGlkIHhSYW5nZSBpZGVudGlmZXIsIG1lYW5pbmcgXCJhbnkgdmVyc2lvblwiXG4vLyBPbmx5IHRoZSBmaXJzdCBpdGVtIGlzIHN0cmljdGx5IHJlcXVpcmVkLlxuY3JlYXRlVG9rZW4oJ1hSQU5HRUlERU5USUZJRVJMT09TRScsIGAke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSTE9PU0VdfXx4fFh8XFxcXCpgKVxuY3JlYXRlVG9rZW4oJ1hSQU5HRUlERU5USUZJRVInLCBgJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUl19fHh8WHxcXFxcKmApXG5cbmNyZWF0ZVRva2VuKCdYUkFOR0VQTEFJTicsIGBbdj1cXFxcc10qKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUl19KWAgK1xuICAgICAgICAgICAgICAgICAgIGAoPzpcXFxcLigke3NyY1t0LlhSQU5HRUlERU5USUZJRVJdfSlgICtcbiAgICAgICAgICAgICAgICAgICBgKD86XFxcXC4oJHtzcmNbdC5YUkFOR0VJREVOVElGSUVSXX0pYCArXG4gICAgICAgICAgICAgICAgICAgYCg/OiR7c3JjW3QuUFJFUkVMRUFTRV19KT8ke1xuICAgICAgICAgICAgICAgICAgICAgc3JjW3QuQlVJTERdfT9gICtcbiAgICAgICAgICAgICAgICAgICBgKT8pP2ApXG5cbmNyZWF0ZVRva2VuKCdYUkFOR0VQTEFJTkxPT1NFJywgYFt2PVxcXFxzXSooJHtzcmNbdC5YUkFOR0VJREVOVElGSUVSTE9PU0VdfSlgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGAoPzpcXFxcLigke3NyY1t0LlhSQU5HRUlERU5USUZJRVJMT09TRV19KWAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYCg/OlxcXFwuKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUkxPT1NFXX0pYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgKD86JHtzcmNbdC5QUkVSRUxFQVNFTE9PU0VdfSk/JHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjW3QuQlVJTERdfT9gICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGApPyk/YClcblxuY3JlYXRlVG9rZW4oJ1hSQU5HRScsIGBeJHtzcmNbdC5HVExUXX1cXFxccyoke3NyY1t0LlhSQU5HRVBMQUlOXX0kYClcbmNyZWF0ZVRva2VuKCdYUkFOR0VMT09TRScsIGBeJHtzcmNbdC5HVExUXX1cXFxccyoke3NyY1t0LlhSQU5HRVBMQUlOTE9PU0VdfSRgKVxuXG4vLyBDb2VyY2lvbi5cbi8vIEV4dHJhY3QgYW55dGhpbmcgdGhhdCBjb3VsZCBjb25jZWl2YWJseSBiZSBhIHBhcnQgb2YgYSB2YWxpZCBzZW12ZXJcbmNyZWF0ZVRva2VuKCdDT0VSQ0UnLCBgJHsnKF58W15cXFxcZF0pJyArXG4gICAgICAgICAgICAgICcoXFxcXGR7MSwnfSR7TUFYX1NBRkVfQ09NUE9ORU5UX0xFTkdUSH19KWAgK1xuICAgICAgICAgICAgICBgKD86XFxcXC4oXFxcXGR7MSwke01BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEh9fSkpP2AgK1xuICAgICAgICAgICAgICBgKD86XFxcXC4oXFxcXGR7MSwke01BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEh9fSkpP2AgK1xuICAgICAgICAgICAgICBgKD86JHxbXlxcXFxkXSlgKVxuY3JlYXRlVG9rZW4oJ0NPRVJDRVJUTCcsIHNyY1t0LkNPRVJDRV0sIHRydWUpXG5cbi8vIFRpbGRlIHJhbmdlcy5cbi8vIE1lYW5pbmcgaXMgXCJyZWFzb25hYmx5IGF0IG9yIGdyZWF0ZXIgdGhhblwiXG5jcmVhdGVUb2tlbignTE9ORVRJTERFJywgJyg/On4+PyknKVxuXG5jcmVhdGVUb2tlbignVElMREVUUklNJywgYChcXFxccyopJHtzcmNbdC5MT05FVElMREVdfVxcXFxzK2AsIHRydWUpXG5leHBvcnRzLnRpbGRlVHJpbVJlcGxhY2UgPSAnJDF+J1xuXG5jcmVhdGVUb2tlbignVElMREUnLCBgXiR7c3JjW3QuTE9ORVRJTERFXX0ke3NyY1t0LlhSQU5HRVBMQUlOXX0kYClcbmNyZWF0ZVRva2VuKCdUSUxERUxPT1NFJywgYF4ke3NyY1t0LkxPTkVUSUxERV19JHtzcmNbdC5YUkFOR0VQTEFJTkxPT1NFXX0kYClcblxuLy8gQ2FyZXQgcmFuZ2VzLlxuLy8gTWVhbmluZyBpcyBcImF0IGxlYXN0IGFuZCBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoXCJcbmNyZWF0ZVRva2VuKCdMT05FQ0FSRVQnLCAnKD86XFxcXF4pJylcblxuY3JlYXRlVG9rZW4oJ0NBUkVUVFJJTScsIGAoXFxcXHMqKSR7c3JjW3QuTE9ORUNBUkVUXX1cXFxccytgLCB0cnVlKVxuZXhwb3J0cy5jYXJldFRyaW1SZXBsYWNlID0gJyQxXidcblxuY3JlYXRlVG9rZW4oJ0NBUkVUJywgYF4ke3NyY1t0LkxPTkVDQVJFVF19JHtzcmNbdC5YUkFOR0VQTEFJTl19JGApXG5jcmVhdGVUb2tlbignQ0FSRVRMT09TRScsIGBeJHtzcmNbdC5MT05FQ0FSRVRdfSR7c3JjW3QuWFJBTkdFUExBSU5MT09TRV19JGApXG5cbi8vIEEgc2ltcGxlIGd0L2x0L2VxIHRoaW5nLCBvciBqdXN0IFwiXCIgdG8gaW5kaWNhdGUgXCJhbnkgdmVyc2lvblwiXG5jcmVhdGVUb2tlbignQ09NUEFSQVRPUkxPT1NFJywgYF4ke3NyY1t0LkdUTFRdfVxcXFxzKigke3NyY1t0LkxPT1NFUExBSU5dfSkkfF4kYClcbmNyZWF0ZVRva2VuKCdDT01QQVJBVE9SJywgYF4ke3NyY1t0LkdUTFRdfVxcXFxzKigke3NyY1t0LkZVTExQTEFJTl19KSR8XiRgKVxuXG4vLyBBbiBleHByZXNzaW9uIHRvIHN0cmlwIGFueSB3aGl0ZXNwYWNlIGJldHdlZW4gdGhlIGd0bHQgYW5kIHRoZSB0aGluZ1xuLy8gaXQgbW9kaWZpZXMsIHNvIHRoYXQgYD4gMS4yLjNgID09PiBgPjEuMi4zYFxuY3JlYXRlVG9rZW4oJ0NPTVBBUkFUT1JUUklNJywgYChcXFxccyopJHtzcmNbdC5HVExUXVxufVxcXFxzKigke3NyY1t0LkxPT1NFUExBSU5dfXwke3NyY1t0LlhSQU5HRVBMQUlOXX0pYCwgdHJ1ZSlcbmV4cG9ydHMuY29tcGFyYXRvclRyaW1SZXBsYWNlID0gJyQxJDIkMydcblxuLy8gU29tZXRoaW5nIGxpa2UgYDEuMi4zIC0gMS4yLjRgXG4vLyBOb3RlIHRoYXQgdGhlc2UgYWxsIHVzZSB0aGUgbG9vc2UgZm9ybSwgYmVjYXVzZSB0aGV5J2xsIGJlXG4vLyBjaGVja2VkIGFnYWluc3QgZWl0aGVyIHRoZSBzdHJpY3Qgb3IgbG9vc2UgY29tcGFyYXRvciBmb3JtXG4vLyBsYXRlci5cbmNyZWF0ZVRva2VuKCdIWVBIRU5SQU5HRScsIGBeXFxcXHMqKCR7c3JjW3QuWFJBTkdFUExBSU5dfSlgICtcbiAgICAgICAgICAgICAgICAgICBgXFxcXHMrLVxcXFxzK2AgK1xuICAgICAgICAgICAgICAgICAgIGAoJHtzcmNbdC5YUkFOR0VQTEFJTl19KWAgK1xuICAgICAgICAgICAgICAgICAgIGBcXFxccyokYClcblxuY3JlYXRlVG9rZW4oJ0hZUEhFTlJBTkdFTE9PU0UnLCBgXlxcXFxzKigke3NyY1t0LlhSQU5HRVBMQUlOTE9PU0VdfSlgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGBcXFxccystXFxcXHMrYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgKCR7c3JjW3QuWFJBTkdFUExBSU5MT09TRV19KWAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYFxcXFxzKiRgKVxuXG4vLyBTdGFyIHJhbmdlcyBiYXNpY2FsbHkganVzdCBhbGxvdyBhbnl0aGluZyBhdCBhbGwuXG5jcmVhdGVUb2tlbignU1RBUicsICcoPHw+KT89P1xcXFxzKlxcXFwqJylcbi8vID49MC4wLjAgaXMgbGlrZSBhIHN0YXJcbmNyZWF0ZVRva2VuKCdHVEUwJywgJ15cXFxccyo+PVxcXFxzKjBcXFxcLjBcXFxcLjBcXFxccyokJylcbmNyZWF0ZVRva2VuKCdHVEUwUFJFJywgJ15cXFxccyo+PVxcXFxzKjBcXFxcLjBcXFxcLjAtMFxcXFxzKiQnKVxuIiwgIi8vIHBhcnNlIG91dCBqdXN0IHRoZSBvcHRpb25zIHdlIGNhcmUgYWJvdXRcbmNvbnN0IGxvb3NlT3B0aW9uID0gT2JqZWN0LmZyZWV6ZSh7IGxvb3NlOiB0cnVlIH0pXG5jb25zdCBlbXB0eU9wdHMgPSBPYmplY3QuZnJlZXplKHsgfSlcbmNvbnN0IHBhcnNlT3B0aW9ucyA9IG9wdGlvbnMgPT4ge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICByZXR1cm4gZW1wdHlPcHRzXG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGxvb3NlT3B0aW9uXG4gIH1cblxuICByZXR1cm4gb3B0aW9uc1xufVxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZU9wdGlvbnNcbiIsICJjb25zdCBudW1lcmljID0gL15bMC05XSskL1xuY29uc3QgY29tcGFyZUlkZW50aWZpZXJzID0gKGEsIGIpID0+IHtcbiAgY29uc3QgYW51bSA9IG51bWVyaWMudGVzdChhKVxuICBjb25zdCBibnVtID0gbnVtZXJpYy50ZXN0KGIpXG5cbiAgaWYgKGFudW0gJiYgYm51bSkge1xuICAgIGEgPSArYVxuICAgIGIgPSArYlxuICB9XG5cbiAgcmV0dXJuIGEgPT09IGIgPyAwXG4gICAgOiAoYW51bSAmJiAhYm51bSkgPyAtMVxuICAgIDogKGJudW0gJiYgIWFudW0pID8gMVxuICAgIDogYSA8IGIgPyAtMVxuICAgIDogMVxufVxuXG5jb25zdCByY29tcGFyZUlkZW50aWZpZXJzID0gKGEsIGIpID0+IGNvbXBhcmVJZGVudGlmaWVycyhiLCBhKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY29tcGFyZUlkZW50aWZpZXJzLFxuICByY29tcGFyZUlkZW50aWZpZXJzLFxufVxuIiwgImNvbnN0IGRlYnVnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvZGVidWcnKVxuY29uc3QgeyBNQVhfTEVOR1RILCBNQVhfU0FGRV9JTlRFR0VSIH0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9jb25zdGFudHMnKVxuY29uc3QgeyBzYWZlUmU6IHJlLCB0IH0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9yZScpXG5cbmNvbnN0IHBhcnNlT3B0aW9ucyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3BhcnNlLW9wdGlvbnMnKVxuY29uc3QgeyBjb21wYXJlSWRlbnRpZmllcnMgfSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lkZW50aWZpZXJzJylcbmNsYXNzIFNlbVZlciB7XG4gIGNvbnN0cnVjdG9yICh2ZXJzaW9uLCBvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucyhvcHRpb25zKVxuXG4gICAgaWYgKHZlcnNpb24gaW5zdGFuY2VvZiBTZW1WZXIpIHtcbiAgICAgIGlmICh2ZXJzaW9uLmxvb3NlID09PSAhIW9wdGlvbnMubG9vc2UgJiZcbiAgICAgICAgICB2ZXJzaW9uLmluY2x1ZGVQcmVyZWxlYXNlID09PSAhIW9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UpIHtcbiAgICAgICAgcmV0dXJuIHZlcnNpb25cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnZlcnNpb25cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ZXJzaW9uICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCB2ZXJzaW9uLiBNdXN0IGJlIGEgc3RyaW5nLiBHb3QgdHlwZSBcIiR7dHlwZW9mIHZlcnNpb259XCIuYClcbiAgICB9XG5cbiAgICBpZiAodmVyc2lvbi5sZW5ndGggPiBNQVhfTEVOR1RIKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBgdmVyc2lvbiBpcyBsb25nZXIgdGhhbiAke01BWF9MRU5HVEh9IGNoYXJhY3RlcnNgXG4gICAgICApXG4gICAgfVxuXG4gICAgZGVidWcoJ1NlbVZlcicsIHZlcnNpb24sIG9wdGlvbnMpXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMubG9vc2UgPSAhIW9wdGlvbnMubG9vc2VcbiAgICAvLyB0aGlzIGlzbid0IGFjdHVhbGx5IHJlbGV2YW50IGZvciB2ZXJzaW9ucywgYnV0IGtlZXAgaXQgc28gdGhhdCB3ZVxuICAgIC8vIGRvbid0IHJ1biBpbnRvIHRyb3VibGUgcGFzc2luZyB0aGlzLm9wdGlvbnMgYXJvdW5kLlxuICAgIHRoaXMuaW5jbHVkZVByZXJlbGVhc2UgPSAhIW9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2VcblxuICAgIGNvbnN0IG0gPSB2ZXJzaW9uLnRyaW0oKS5tYXRjaChvcHRpb25zLmxvb3NlID8gcmVbdC5MT09TRV0gOiByZVt0LkZVTExdKVxuXG4gICAgaWYgKCFtKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIFZlcnNpb246ICR7dmVyc2lvbn1gKVxuICAgIH1cblxuICAgIHRoaXMucmF3ID0gdmVyc2lvblxuXG4gICAgLy8gdGhlc2UgYXJlIGFjdHVhbGx5IG51bWJlcnNcbiAgICB0aGlzLm1ham9yID0gK21bMV1cbiAgICB0aGlzLm1pbm9yID0gK21bMl1cbiAgICB0aGlzLnBhdGNoID0gK21bM11cblxuICAgIGlmICh0aGlzLm1ham9yID4gTUFYX1NBRkVfSU5URUdFUiB8fCB0aGlzLm1ham9yIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBtYWpvciB2ZXJzaW9uJylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5vciA+IE1BWF9TQUZFX0lOVEVHRVIgfHwgdGhpcy5taW5vciA8IDApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbWlub3IgdmVyc2lvbicpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGF0Y2ggPiBNQVhfU0FGRV9JTlRFR0VSIHx8IHRoaXMucGF0Y2ggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHBhdGNoIHZlcnNpb24nKVxuICAgIH1cblxuICAgIC8vIG51bWJlcmlmeSBhbnkgcHJlcmVsZWFzZSBudW1lcmljIGlkc1xuICAgIGlmICghbVs0XSkge1xuICAgICAgdGhpcy5wcmVyZWxlYXNlID0gW11cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVyZWxlYXNlID0gbVs0XS5zcGxpdCgnLicpLm1hcCgoaWQpID0+IHtcbiAgICAgICAgaWYgKC9eWzAtOV0rJC8udGVzdChpZCkpIHtcbiAgICAgICAgICBjb25zdCBudW0gPSAraWRcbiAgICAgICAgICBpZiAobnVtID49IDAgJiYgbnVtIDwgTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgcmV0dXJuIG51bVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaWRcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdGhpcy5idWlsZCA9IG1bNV0gPyBtWzVdLnNwbGl0KCcuJykgOiBbXVxuICAgIHRoaXMuZm9ybWF0KClcbiAgfVxuXG4gIGZvcm1hdCAoKSB7XG4gICAgdGhpcy52ZXJzaW9uID0gYCR7dGhpcy5tYWpvcn0uJHt0aGlzLm1pbm9yfS4ke3RoaXMucGF0Y2h9YFxuICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZlcnNpb24gKz0gYC0ke3RoaXMucHJlcmVsZWFzZS5qb2luKCcuJyl9YFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uXG4gIH1cblxuICB0b1N0cmluZyAoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvblxuICB9XG5cbiAgY29tcGFyZSAob3RoZXIpIHtcbiAgICBkZWJ1ZygnU2VtVmVyLmNvbXBhcmUnLCB0aGlzLnZlcnNpb24sIHRoaXMub3B0aW9ucywgb3RoZXIpXG4gICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBTZW1WZXIpKSB7XG4gICAgICBpZiAodHlwZW9mIG90aGVyID09PSAnc3RyaW5nJyAmJiBvdGhlciA9PT0gdGhpcy52ZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9XG4gICAgICBvdGhlciA9IG5ldyBTZW1WZXIob3RoZXIsIHRoaXMub3B0aW9ucylcbiAgICB9XG5cbiAgICBpZiAob3RoZXIudmVyc2lvbiA9PT0gdGhpcy52ZXJzaW9uKSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbXBhcmVNYWluKG90aGVyKSB8fCB0aGlzLmNvbXBhcmVQcmUob3RoZXIpXG4gIH1cblxuICBjb21wYXJlTWFpbiAob3RoZXIpIHtcbiAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFNlbVZlcikpIHtcbiAgICAgIG90aGVyID0gbmV3IFNlbVZlcihvdGhlciwgdGhpcy5vcHRpb25zKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBjb21wYXJlSWRlbnRpZmllcnModGhpcy5tYWpvciwgb3RoZXIubWFqb3IpIHx8XG4gICAgICBjb21wYXJlSWRlbnRpZmllcnModGhpcy5taW5vciwgb3RoZXIubWlub3IpIHx8XG4gICAgICBjb21wYXJlSWRlbnRpZmllcnModGhpcy5wYXRjaCwgb3RoZXIucGF0Y2gpXG4gICAgKVxuICB9XG5cbiAgY29tcGFyZVByZSAob3RoZXIpIHtcbiAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFNlbVZlcikpIHtcbiAgICAgIG90aGVyID0gbmV3IFNlbVZlcihvdGhlciwgdGhpcy5vcHRpb25zKVxuICAgIH1cblxuICAgIC8vIE5PVCBoYXZpbmcgYSBwcmVyZWxlYXNlIGlzID4gaGF2aW5nIG9uZVxuICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoICYmICFvdGhlci5wcmVyZWxlYXNlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmICghdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCAmJiBvdGhlci5wcmVyZWxlYXNlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnByZXJlbGVhc2UubGVuZ3RoICYmICFvdGhlci5wcmVyZWxlYXNlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDBcbiAgICB9XG5cbiAgICBsZXQgaSA9IDBcbiAgICBkbyB7XG4gICAgICBjb25zdCBhID0gdGhpcy5wcmVyZWxlYXNlW2ldXG4gICAgICBjb25zdCBiID0gb3RoZXIucHJlcmVsZWFzZVtpXVxuICAgICAgZGVidWcoJ3ByZXJlbGVhc2UgY29tcGFyZScsIGksIGEsIGIpXG4gICAgICBpZiAoYSA9PT0gdW5kZWZpbmVkICYmIGIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfSBlbHNlIGlmIChiID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICAgIH0gZWxzZSBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgICAgfSBlbHNlIGlmIChhID09PSBiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29tcGFyZUlkZW50aWZpZXJzKGEsIGIpXG4gICAgICB9XG4gICAgfSB3aGlsZSAoKytpKVxuICB9XG5cbiAgY29tcGFyZUJ1aWxkIChvdGhlcikge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgU2VtVmVyKSkge1xuICAgICAgb3RoZXIgPSBuZXcgU2VtVmVyKG90aGVyLCB0aGlzLm9wdGlvbnMpXG4gICAgfVxuXG4gICAgbGV0IGkgPSAwXG4gICAgZG8ge1xuICAgICAgY29uc3QgYSA9IHRoaXMuYnVpbGRbaV1cbiAgICAgIGNvbnN0IGIgPSBvdGhlci5idWlsZFtpXVxuICAgICAgZGVidWcoJ3ByZXJlbGVhc2UgY29tcGFyZScsIGksIGEsIGIpXG4gICAgICBpZiAoYSA9PT0gdW5kZWZpbmVkICYmIGIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gMFxuICAgICAgfSBlbHNlIGlmIChiID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICAgIH0gZWxzZSBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgICAgfSBlbHNlIGlmIChhID09PSBiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29tcGFyZUlkZW50aWZpZXJzKGEsIGIpXG4gICAgICB9XG4gICAgfSB3aGlsZSAoKytpKVxuICB9XG5cbiAgLy8gcHJlbWlub3Igd2lsbCBidW1wIHRoZSB2ZXJzaW9uIHVwIHRvIHRoZSBuZXh0IG1pbm9yIHJlbGVhc2UsIGFuZCBpbW1lZGlhdGVseVxuICAvLyBkb3duIHRvIHByZS1yZWxlYXNlLiBwcmVtYWpvciBhbmQgcHJlcGF0Y2ggd29yayB0aGUgc2FtZSB3YXkuXG4gIGluYyAocmVsZWFzZSwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpIHtcbiAgICBzd2l0Y2ggKHJlbGVhc2UpIHtcbiAgICAgIGNhc2UgJ3ByZW1ham9yJzpcbiAgICAgICAgdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCA9IDBcbiAgICAgICAgdGhpcy5wYXRjaCA9IDBcbiAgICAgICAgdGhpcy5taW5vciA9IDBcbiAgICAgICAgdGhpcy5tYWpvcisrXG4gICAgICAgIHRoaXMuaW5jKCdwcmUnLCBpZGVudGlmaWVyLCBpZGVudGlmaWVyQmFzZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3ByZW1pbm9yJzpcbiAgICAgICAgdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCA9IDBcbiAgICAgICAgdGhpcy5wYXRjaCA9IDBcbiAgICAgICAgdGhpcy5taW5vcisrXG4gICAgICAgIHRoaXMuaW5jKCdwcmUnLCBpZGVudGlmaWVyLCBpZGVudGlmaWVyQmFzZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3ByZXBhdGNoJzpcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBhbHJlYWR5IGEgcHJlcmVsZWFzZSwgaXQgd2lsbCBidW1wIHRvIHRoZSBuZXh0IHZlcnNpb25cbiAgICAgICAgLy8gZHJvcCBhbnkgcHJlcmVsZWFzZXMgdGhhdCBtaWdodCBhbHJlYWR5IGV4aXN0LCBzaW5jZSB0aGV5IGFyZSBub3RcbiAgICAgICAgLy8gcmVsZXZhbnQgYXQgdGhpcyBwb2ludC5cbiAgICAgICAgdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCA9IDBcbiAgICAgICAgdGhpcy5pbmMoJ3BhdGNoJywgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpXG4gICAgICAgIHRoaXMuaW5jKCdwcmUnLCBpZGVudGlmaWVyLCBpZGVudGlmaWVyQmFzZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIC8vIElmIHRoZSBpbnB1dCBpcyBhIG5vbi1wcmVyZWxlYXNlIHZlcnNpb24sIHRoaXMgYWN0cyB0aGUgc2FtZSBhc1xuICAgICAgLy8gcHJlcGF0Y2guXG4gICAgICBjYXNlICdwcmVyZWxlYXNlJzpcbiAgICAgICAgaWYgKHRoaXMucHJlcmVsZWFzZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmluYygncGF0Y2gnLCBpZGVudGlmaWVyLCBpZGVudGlmaWVyQmFzZSlcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluYygncHJlJywgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ21ham9yJzpcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHByZS1tYWpvciB2ZXJzaW9uLCBidW1wIHVwIHRvIHRoZSBzYW1lIG1ham9yIHZlcnNpb24uXG4gICAgICAgIC8vIE90aGVyd2lzZSBpbmNyZW1lbnQgbWFqb3IuXG4gICAgICAgIC8vIDEuMC4wLTUgYnVtcHMgdG8gMS4wLjBcbiAgICAgICAgLy8gMS4xLjAgYnVtcHMgdG8gMi4wLjBcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMubWlub3IgIT09IDAgfHxcbiAgICAgICAgICB0aGlzLnBhdGNoICE9PSAwIHx8XG4gICAgICAgICAgdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm1ham9yKytcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1pbm9yID0gMFxuICAgICAgICB0aGlzLnBhdGNoID0gMFxuICAgICAgICB0aGlzLnByZXJlbGVhc2UgPSBbXVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWlub3InOlxuICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcHJlLW1pbm9yIHZlcnNpb24sIGJ1bXAgdXAgdG8gdGhlIHNhbWUgbWlub3IgdmVyc2lvbi5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIGluY3JlbWVudCBtaW5vci5cbiAgICAgICAgLy8gMS4yLjAtNSBidW1wcyB0byAxLjIuMFxuICAgICAgICAvLyAxLjIuMSBidW1wcyB0byAxLjMuMFxuICAgICAgICBpZiAodGhpcy5wYXRjaCAhPT0gMCB8fCB0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5taW5vcisrXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXRjaCA9IDBcbiAgICAgICAgdGhpcy5wcmVyZWxlYXNlID0gW11cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBub3QgYSBwcmUtcmVsZWFzZSB2ZXJzaW9uLCBpdCB3aWxsIGluY3JlbWVudCB0aGUgcGF0Y2guXG4gICAgICAgIC8vIElmIGl0IGlzIGEgcHJlLXJlbGVhc2UgaXQgd2lsbCBidW1wIHVwIHRvIHRoZSBzYW1lIHBhdGNoIHZlcnNpb24uXG4gICAgICAgIC8vIDEuMi4wLTUgcGF0Y2hlcyB0byAxLjIuMFxuICAgICAgICAvLyAxLjIuMCBwYXRjaGVzIHRvIDEuMi4xXG4gICAgICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5wYXRjaCsrXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmVyZWxlYXNlID0gW11cbiAgICAgICAgYnJlYWtcbiAgICAgIC8vIFRoaXMgcHJvYmFibHkgc2hvdWxkbid0IGJlIHVzZWQgcHVibGljbHkuXG4gICAgICAvLyAxLjAuMCAncHJlJyB3b3VsZCBiZWNvbWUgMS4wLjAtMCB3aGljaCBpcyB0aGUgd3JvbmcgZGlyZWN0aW9uLlxuICAgICAgY2FzZSAncHJlJzoge1xuICAgICAgICBjb25zdCBiYXNlID0gTnVtYmVyKGlkZW50aWZpZXJCYXNlKSA/IDEgOiAwXG5cbiAgICAgICAgaWYgKCFpZGVudGlmaWVyICYmIGlkZW50aWZpZXJCYXNlID09PSBmYWxzZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBpbmNyZW1lbnQgYXJndW1lbnQ6IGlkZW50aWZpZXIgaXMgZW1wdHknKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJlcmVsZWFzZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnByZXJlbGVhc2UgPSBbYmFzZV1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgaSA9IHRoaXMucHJlcmVsZWFzZS5sZW5ndGhcbiAgICAgICAgICB3aGlsZSAoLS1pID49IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmVyZWxlYXNlW2ldID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICB0aGlzLnByZXJlbGVhc2VbaV0rK1xuICAgICAgICAgICAgICBpID0gLTJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBkaWRuJ3QgaW5jcmVtZW50IGFueXRoaW5nXG4gICAgICAgICAgICBpZiAoaWRlbnRpZmllciA9PT0gdGhpcy5wcmVyZWxlYXNlLmpvaW4oJy4nKSAmJiBpZGVudGlmaWVyQmFzZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGluY3JlbWVudCBhcmd1bWVudDogaWRlbnRpZmllciBhbHJlYWR5IGV4aXN0cycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByZXJlbGVhc2UucHVzaChiYXNlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgICAgIC8vIDEuMi4wLWJldGEuMSBidW1wcyB0byAxLjIuMC1iZXRhLjIsXG4gICAgICAgICAgLy8gMS4yLjAtYmV0YS5mb29ibHogb3IgMS4yLjAtYmV0YSBidW1wcyB0byAxLjIuMC1iZXRhLjBcbiAgICAgICAgICBsZXQgcHJlcmVsZWFzZSA9IFtpZGVudGlmaWVyLCBiYXNlXVxuICAgICAgICAgIGlmIChpZGVudGlmaWVyQmFzZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHByZXJlbGVhc2UgPSBbaWRlbnRpZmllcl1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvbXBhcmVJZGVudGlmaWVycyh0aGlzLnByZXJlbGVhc2VbMF0sIGlkZW50aWZpZXIpID09PSAwKSB7XG4gICAgICAgICAgICBpZiAoaXNOYU4odGhpcy5wcmVyZWxlYXNlWzFdKSkge1xuICAgICAgICAgICAgICB0aGlzLnByZXJlbGVhc2UgPSBwcmVyZWxlYXNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IHByZXJlbGVhc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBpbmNyZW1lbnQgYXJndW1lbnQ6ICR7cmVsZWFzZX1gKVxuICAgIH1cbiAgICB0aGlzLnJhdyA9IHRoaXMuZm9ybWF0KClcbiAgICBpZiAodGhpcy5idWlsZC5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmF3ICs9IGArJHt0aGlzLmJ1aWxkLmpvaW4oJy4nKX1gXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTZW1WZXJcbiIsICJjb25zdCBTZW1WZXIgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3NlbXZlcicpXG5jb25zdCBwYXJzZSA9ICh2ZXJzaW9uLCBvcHRpb25zLCB0aHJvd0Vycm9ycyA9IGZhbHNlKSA9PiB7XG4gIGlmICh2ZXJzaW9uIGluc3RhbmNlb2YgU2VtVmVyKSB7XG4gICAgcmV0dXJuIHZlcnNpb25cbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBuZXcgU2VtVmVyKHZlcnNpb24sIG9wdGlvbnMpXG4gIH0gY2F0Y2ggKGVyKSB7XG4gICAgaWYgKCF0aHJvd0Vycm9ycykge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgdGhyb3cgZXJcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcnNlXG4iLCAiY29uc3QgcGFyc2UgPSByZXF1aXJlKCcuL3BhcnNlJylcbmNvbnN0IHZhbGlkID0gKHZlcnNpb24sIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgdiA9IHBhcnNlKHZlcnNpb24sIG9wdGlvbnMpXG4gIHJldHVybiB2ID8gdi52ZXJzaW9uIDogbnVsbFxufVxubW9kdWxlLmV4cG9ydHMgPSB2YWxpZFxuIiwgImNvbnN0IHBhcnNlID0gcmVxdWlyZSgnLi9wYXJzZScpXG5jb25zdCBjbGVhbiA9ICh2ZXJzaW9uLCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IHMgPSBwYXJzZSh2ZXJzaW9uLnRyaW0oKS5yZXBsYWNlKC9eWz12XSsvLCAnJyksIG9wdGlvbnMpXG4gIHJldHVybiBzID8gcy52ZXJzaW9uIDogbnVsbFxufVxubW9kdWxlLmV4cG9ydHMgPSBjbGVhblxuIiwgImNvbnN0IFNlbVZlciA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvc2VtdmVyJylcblxuY29uc3QgaW5jID0gKHZlcnNpb24sIHJlbGVhc2UsIG9wdGlvbnMsIGlkZW50aWZpZXIsIGlkZW50aWZpZXJCYXNlKSA9PiB7XG4gIGlmICh0eXBlb2YgKG9wdGlvbnMpID09PSAnc3RyaW5nJykge1xuICAgIGlkZW50aWZpZXJCYXNlID0gaWRlbnRpZmllclxuICAgIGlkZW50aWZpZXIgPSBvcHRpb25zXG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZFxuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFNlbVZlcihcbiAgICAgIHZlcnNpb24gaW5zdGFuY2VvZiBTZW1WZXIgPyB2ZXJzaW9uLnZlcnNpb24gOiB2ZXJzaW9uLFxuICAgICAgb3B0aW9uc1xuICAgICkuaW5jKHJlbGVhc2UsIGlkZW50aWZpZXIsIGlkZW50aWZpZXJCYXNlKS52ZXJzaW9uXG4gIH0gY2F0Y2ggKGVyKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBpbmNcbiIsICJjb25zdCBwYXJzZSA9IHJlcXVpcmUoJy4vcGFyc2UuanMnKVxuXG5jb25zdCBkaWZmID0gKHZlcnNpb24xLCB2ZXJzaW9uMikgPT4ge1xuICBjb25zdCB2MSA9IHBhcnNlKHZlcnNpb24xLCBudWxsLCB0cnVlKVxuICBjb25zdCB2MiA9IHBhcnNlKHZlcnNpb24yLCBudWxsLCB0cnVlKVxuICBjb25zdCBjb21wYXJpc29uID0gdjEuY29tcGFyZSh2MilcblxuICBpZiAoY29tcGFyaXNvbiA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCB2MUhpZ2hlciA9IGNvbXBhcmlzb24gPiAwXG4gIGNvbnN0IGhpZ2hWZXJzaW9uID0gdjFIaWdoZXIgPyB2MSA6IHYyXG4gIGNvbnN0IGxvd1ZlcnNpb24gPSB2MUhpZ2hlciA/IHYyIDogdjFcbiAgY29uc3QgaGlnaEhhc1ByZSA9ICEhaGlnaFZlcnNpb24ucHJlcmVsZWFzZS5sZW5ndGhcbiAgY29uc3QgbG93SGFzUHJlID0gISFsb3dWZXJzaW9uLnByZXJlbGVhc2UubGVuZ3RoXG5cbiAgaWYgKGxvd0hhc1ByZSAmJiAhaGlnaEhhc1ByZSkge1xuICAgIC8vIEdvaW5nIGZyb20gcHJlcmVsZWFzZSAtPiBubyBwcmVyZWxlYXNlIHJlcXVpcmVzIHNvbWUgc3BlY2lhbCBjYXNpbmdcblxuICAgIC8vIElmIHRoZSBsb3cgdmVyc2lvbiBoYXMgb25seSBhIG1ham9yLCB0aGVuIGl0IHdpbGwgYWx3YXlzIGJlIGEgbWFqb3JcbiAgICAvLyBTb21lIGV4YW1wbGVzOlxuICAgIC8vIDEuMC4wLTEgLT4gMS4wLjBcbiAgICAvLyAxLjAuMC0xIC0+IDEuMS4xXG4gICAgLy8gMS4wLjAtMSAtPiAyLjAuMFxuICAgIGlmICghbG93VmVyc2lvbi5wYXRjaCAmJiAhbG93VmVyc2lvbi5taW5vcikge1xuICAgICAgcmV0dXJuICdtYWpvcidcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgaXQgY2FuIGJlIGRldGVybWluZWQgYnkgY2hlY2tpbmcgdGhlIGhpZ2ggdmVyc2lvblxuXG4gICAgaWYgKGhpZ2hWZXJzaW9uLnBhdGNoKSB7XG4gICAgICAvLyBhbnl0aGluZyBoaWdoZXIgdGhhbiBhIHBhdGNoIGJ1bXAgd291bGQgcmVzdWx0IGluIHRoZSB3cm9uZyB2ZXJzaW9uXG4gICAgICByZXR1cm4gJ3BhdGNoJ1xuICAgIH1cblxuICAgIGlmIChoaWdoVmVyc2lvbi5taW5vcikge1xuICAgICAgLy8gYW55dGhpbmcgaGlnaGVyIHRoYW4gYSBtaW5vciBidW1wIHdvdWxkIHJlc3VsdCBpbiB0aGUgd3JvbmcgdmVyc2lvblxuICAgICAgcmV0dXJuICdtaW5vcidcbiAgICB9XG5cbiAgICAvLyBidW1waW5nIG1ham9yL21pbm9yL3BhdGNoIGFsbCBoYXZlIHNhbWUgcmVzdWx0XG4gICAgcmV0dXJuICdtYWpvcidcbiAgfVxuXG4gIC8vIGFkZCB0aGUgYHByZWAgcHJlZml4IGlmIHdlIGFyZSBnb2luZyB0byBhIHByZXJlbGVhc2UgdmVyc2lvblxuICBjb25zdCBwcmVmaXggPSBoaWdoSGFzUHJlID8gJ3ByZScgOiAnJ1xuXG4gIGlmICh2MS5tYWpvciAhPT0gdjIubWFqb3IpIHtcbiAgICByZXR1cm4gcHJlZml4ICsgJ21ham9yJ1xuICB9XG5cbiAgaWYgKHYxLm1pbm9yICE9PSB2Mi5taW5vcikge1xuICAgIHJldHVybiBwcmVmaXggKyAnbWlub3InXG4gIH1cblxuICBpZiAodjEucGF0Y2ggIT09IHYyLnBhdGNoKSB7XG4gICAgcmV0dXJuIHByZWZpeCArICdwYXRjaCdcbiAgfVxuXG4gIC8vIGhpZ2ggYW5kIGxvdyBhcmUgcHJlbGVhc2VzXG4gIHJldHVybiAncHJlcmVsZWFzZSdcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkaWZmXG4iLCAiY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgbWFqb3IgPSAoYSwgbG9vc2UpID0+IG5ldyBTZW1WZXIoYSwgbG9vc2UpLm1ham9yXG5tb2R1bGUuZXhwb3J0cyA9IG1ham9yXG4iLCAiY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgbWlub3IgPSAoYSwgbG9vc2UpID0+IG5ldyBTZW1WZXIoYSwgbG9vc2UpLm1pbm9yXG5tb2R1bGUuZXhwb3J0cyA9IG1pbm9yXG4iLCAiY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgcGF0Y2ggPSAoYSwgbG9vc2UpID0+IG5ldyBTZW1WZXIoYSwgbG9vc2UpLnBhdGNoXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGNoXG4iLCAiY29uc3QgcGFyc2UgPSByZXF1aXJlKCcuL3BhcnNlJylcbmNvbnN0IHByZXJlbGVhc2UgPSAodmVyc2lvbiwgb3B0aW9ucykgPT4ge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZSh2ZXJzaW9uLCBvcHRpb25zKVxuICByZXR1cm4gKHBhcnNlZCAmJiBwYXJzZWQucHJlcmVsZWFzZS5sZW5ndGgpID8gcGFyc2VkLnByZXJlbGVhc2UgOiBudWxsXG59XG5tb2R1bGUuZXhwb3J0cyA9IHByZXJlbGVhc2VcbiIsICJjb25zdCBTZW1WZXIgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3NlbXZlcicpXG5jb25zdCBjb21wYXJlID0gKGEsIGIsIGxvb3NlKSA9PlxuICBuZXcgU2VtVmVyKGEsIGxvb3NlKS5jb21wYXJlKG5ldyBTZW1WZXIoYiwgbG9vc2UpKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbXBhcmVcbiIsICJjb25zdCBjb21wYXJlID0gcmVxdWlyZSgnLi9jb21wYXJlJylcbmNvbnN0IHJjb21wYXJlID0gKGEsIGIsIGxvb3NlKSA9PiBjb21wYXJlKGIsIGEsIGxvb3NlKVxubW9kdWxlLmV4cG9ydHMgPSByY29tcGFyZVxuIiwgImNvbnN0IGNvbXBhcmUgPSByZXF1aXJlKCcuL2NvbXBhcmUnKVxuY29uc3QgY29tcGFyZUxvb3NlID0gKGEsIGIpID0+IGNvbXBhcmUoYSwgYiwgdHJ1ZSlcbm1vZHVsZS5leHBvcnRzID0gY29tcGFyZUxvb3NlXG4iLCAiY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgY29tcGFyZUJ1aWxkID0gKGEsIGIsIGxvb3NlKSA9PiB7XG4gIGNvbnN0IHZlcnNpb25BID0gbmV3IFNlbVZlcihhLCBsb29zZSlcbiAgY29uc3QgdmVyc2lvbkIgPSBuZXcgU2VtVmVyKGIsIGxvb3NlKVxuICByZXR1cm4gdmVyc2lvbkEuY29tcGFyZSh2ZXJzaW9uQikgfHwgdmVyc2lvbkEuY29tcGFyZUJ1aWxkKHZlcnNpb25CKVxufVxubW9kdWxlLmV4cG9ydHMgPSBjb21wYXJlQnVpbGRcbiIsICJjb25zdCBjb21wYXJlQnVpbGQgPSByZXF1aXJlKCcuL2NvbXBhcmUtYnVpbGQnKVxuY29uc3Qgc29ydCA9IChsaXN0LCBsb29zZSkgPT4gbGlzdC5zb3J0KChhLCBiKSA9PiBjb21wYXJlQnVpbGQoYSwgYiwgbG9vc2UpKVxubW9kdWxlLmV4cG9ydHMgPSBzb3J0XG4iLCAiY29uc3QgY29tcGFyZUJ1aWxkID0gcmVxdWlyZSgnLi9jb21wYXJlLWJ1aWxkJylcbmNvbnN0IHJzb3J0ID0gKGxpc3QsIGxvb3NlKSA9PiBsaXN0LnNvcnQoKGEsIGIpID0+IGNvbXBhcmVCdWlsZChiLCBhLCBsb29zZSkpXG5tb2R1bGUuZXhwb3J0cyA9IHJzb3J0XG4iLCAiY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4vY29tcGFyZScpXG5jb25zdCBndCA9IChhLCBiLCBsb29zZSkgPT4gY29tcGFyZShhLCBiLCBsb29zZSkgPiAwXG5tb2R1bGUuZXhwb3J0cyA9IGd0XG4iLCAiY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4vY29tcGFyZScpXG5jb25zdCBsdCA9IChhLCBiLCBsb29zZSkgPT4gY29tcGFyZShhLCBiLCBsb29zZSkgPCAwXG5tb2R1bGUuZXhwb3J0cyA9IGx0XG4iLCAiY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4vY29tcGFyZScpXG5jb25zdCBlcSA9IChhLCBiLCBsb29zZSkgPT4gY29tcGFyZShhLCBiLCBsb29zZSkgPT09IDBcbm1vZHVsZS5leHBvcnRzID0gZXFcbiIsICJjb25zdCBjb21wYXJlID0gcmVxdWlyZSgnLi9jb21wYXJlJylcbmNvbnN0IG5lcSA9IChhLCBiLCBsb29zZSkgPT4gY29tcGFyZShhLCBiLCBsb29zZSkgIT09IDBcbm1vZHVsZS5leHBvcnRzID0gbmVxXG4iLCAiY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4vY29tcGFyZScpXG5jb25zdCBndGUgPSAoYSwgYiwgbG9vc2UpID0+IGNvbXBhcmUoYSwgYiwgbG9vc2UpID49IDBcbm1vZHVsZS5leHBvcnRzID0gZ3RlXG4iLCAiY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4vY29tcGFyZScpXG5jb25zdCBsdGUgPSAoYSwgYiwgbG9vc2UpID0+IGNvbXBhcmUoYSwgYiwgbG9vc2UpIDw9IDBcbm1vZHVsZS5leHBvcnRzID0gbHRlXG4iLCAiY29uc3QgZXEgPSByZXF1aXJlKCcuL2VxJylcbmNvbnN0IG5lcSA9IHJlcXVpcmUoJy4vbmVxJylcbmNvbnN0IGd0ID0gcmVxdWlyZSgnLi9ndCcpXG5jb25zdCBndGUgPSByZXF1aXJlKCcuL2d0ZScpXG5jb25zdCBsdCA9IHJlcXVpcmUoJy4vbHQnKVxuY29uc3QgbHRlID0gcmVxdWlyZSgnLi9sdGUnKVxuXG5jb25zdCBjbXAgPSAoYSwgb3AsIGIsIGxvb3NlKSA9PiB7XG4gIHN3aXRjaCAob3ApIHtcbiAgICBjYXNlICc9PT0nOlxuICAgICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgICAgICBhID0gYS52ZXJzaW9uXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGIgPSBiLnZlcnNpb25cbiAgICAgIH1cbiAgICAgIHJldHVybiBhID09PSBiXG5cbiAgICBjYXNlICchPT0nOlxuICAgICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgICAgICBhID0gYS52ZXJzaW9uXG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGIgPSBiLnZlcnNpb25cbiAgICAgIH1cbiAgICAgIHJldHVybiBhICE9PSBiXG5cbiAgICBjYXNlICcnOlxuICAgIGNhc2UgJz0nOlxuICAgIGNhc2UgJz09JzpcbiAgICAgIHJldHVybiBlcShhLCBiLCBsb29zZSlcblxuICAgIGNhc2UgJyE9JzpcbiAgICAgIHJldHVybiBuZXEoYSwgYiwgbG9vc2UpXG5cbiAgICBjYXNlICc+JzpcbiAgICAgIHJldHVybiBndChhLCBiLCBsb29zZSlcblxuICAgIGNhc2UgJz49JzpcbiAgICAgIHJldHVybiBndGUoYSwgYiwgbG9vc2UpXG5cbiAgICBjYXNlICc8JzpcbiAgICAgIHJldHVybiBsdChhLCBiLCBsb29zZSlcblxuICAgIGNhc2UgJzw9JzpcbiAgICAgIHJldHVybiBsdGUoYSwgYiwgbG9vc2UpXG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBvcGVyYXRvcjogJHtvcH1gKVxuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IGNtcFxuIiwgImNvbnN0IFNlbVZlciA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvc2VtdmVyJylcbmNvbnN0IHBhcnNlID0gcmVxdWlyZSgnLi9wYXJzZScpXG5jb25zdCB7IHNhZmVSZTogcmUsIHQgfSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3JlJylcblxuY29uc3QgY29lcmNlID0gKHZlcnNpb24sIG9wdGlvbnMpID0+IHtcbiAgaWYgKHZlcnNpb24gaW5zdGFuY2VvZiBTZW1WZXIpIHtcbiAgICByZXR1cm4gdmVyc2lvblxuICB9XG5cbiAgaWYgKHR5cGVvZiB2ZXJzaW9uID09PSAnbnVtYmVyJykge1xuICAgIHZlcnNpb24gPSBTdHJpbmcodmVyc2lvbilcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmVyc2lvbiAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge31cblxuICBsZXQgbWF0Y2ggPSBudWxsXG4gIGlmICghb3B0aW9ucy5ydGwpIHtcbiAgICBtYXRjaCA9IHZlcnNpb24ubWF0Y2gocmVbdC5DT0VSQ0VdKVxuICB9IGVsc2Uge1xuICAgIC8vIEZpbmQgdGhlIHJpZ2h0LW1vc3QgY29lcmNpYmxlIHN0cmluZyB0aGF0IGRvZXMgbm90IHNoYXJlXG4gICAgLy8gYSB0ZXJtaW51cyB3aXRoIGEgbW9yZSBsZWZ0LXdhcmQgY29lcmNpYmxlIHN0cmluZy5cbiAgICAvLyBFZywgJzEuMi4zLjQnIHdhbnRzIHRvIGNvZXJjZSAnMi4zLjQnLCBub3QgJzMuNCcgb3IgJzQnXG4gICAgLy9cbiAgICAvLyBXYWxrIHRocm91Z2ggdGhlIHN0cmluZyBjaGVja2luZyB3aXRoIGEgL2cgcmVnZXhwXG4gICAgLy8gTWFudWFsbHkgc2V0IHRoZSBpbmRleCBzbyBhcyB0byBwaWNrIHVwIG92ZXJsYXBwaW5nIG1hdGNoZXMuXG4gICAgLy8gU3RvcCB3aGVuIHdlIGdldCBhIG1hdGNoIHRoYXQgZW5kcyBhdCB0aGUgc3RyaW5nIGVuZCwgc2luY2Ugbm9cbiAgICAvLyBjb2VyY2libGUgc3RyaW5nIGNhbiBiZSBtb3JlIHJpZ2h0LXdhcmQgd2l0aG91dCB0aGUgc2FtZSB0ZXJtaW51cy5cbiAgICBsZXQgbmV4dFxuICAgIHdoaWxlICgobmV4dCA9IHJlW3QuQ09FUkNFUlRMXS5leGVjKHZlcnNpb24pKSAmJlxuICAgICAgICAoIW1hdGNoIHx8IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoICE9PSB2ZXJzaW9uLmxlbmd0aClcbiAgICApIHtcbiAgICAgIGlmICghbWF0Y2ggfHxcbiAgICAgICAgICAgIG5leHQuaW5kZXggKyBuZXh0WzBdLmxlbmd0aCAhPT0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgpIHtcbiAgICAgICAgbWF0Y2ggPSBuZXh0XG4gICAgICB9XG4gICAgICByZVt0LkNPRVJDRVJUTF0ubGFzdEluZGV4ID0gbmV4dC5pbmRleCArIG5leHRbMV0ubGVuZ3RoICsgbmV4dFsyXS5sZW5ndGhcbiAgICB9XG4gICAgLy8gbGVhdmUgaXQgaW4gYSBjbGVhbiBzdGF0ZVxuICAgIHJlW3QuQ09FUkNFUlRMXS5sYXN0SW5kZXggPSAtMVxuICB9XG5cbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBwYXJzZShgJHttYXRjaFsyXX0uJHttYXRjaFszXSB8fCAnMCd9LiR7bWF0Y2hbNF0gfHwgJzAnfWAsIG9wdGlvbnMpXG59XG5tb2R1bGUuZXhwb3J0cyA9IGNvZXJjZVxuIiwgIid1c2Ugc3RyaWN0J1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoWWFsbGlzdCkge1xuICBZYWxsaXN0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24qICgpIHtcbiAgICBmb3IgKGxldCB3YWxrZXIgPSB0aGlzLmhlYWQ7IHdhbGtlcjsgd2Fsa2VyID0gd2Fsa2VyLm5leHQpIHtcbiAgICAgIHlpZWxkIHdhbGtlci52YWx1ZVxuICAgIH1cbiAgfVxufVxuIiwgIid1c2Ugc3RyaWN0J1xubW9kdWxlLmV4cG9ydHMgPSBZYWxsaXN0XG5cbllhbGxpc3QuTm9kZSA9IE5vZGVcbllhbGxpc3QuY3JlYXRlID0gWWFsbGlzdFxuXG5mdW5jdGlvbiBZYWxsaXN0IChsaXN0KSB7XG4gIHZhciBzZWxmID0gdGhpc1xuICBpZiAoIShzZWxmIGluc3RhbmNlb2YgWWFsbGlzdCkpIHtcbiAgICBzZWxmID0gbmV3IFlhbGxpc3QoKVxuICB9XG5cbiAgc2VsZi50YWlsID0gbnVsbFxuICBzZWxmLmhlYWQgPSBudWxsXG4gIHNlbGYubGVuZ3RoID0gMFxuXG4gIGlmIChsaXN0ICYmIHR5cGVvZiBsaXN0LmZvckVhY2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICBsaXN0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHNlbGYucHVzaChpdGVtKVxuICAgIH0pXG4gIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHNlbGYucHVzaChhcmd1bWVudHNbaV0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNlbGZcbn1cblxuWWFsbGlzdC5wcm90b3R5cGUucmVtb3ZlTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gIGlmIChub2RlLmxpc3QgIT09IHRoaXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlbW92aW5nIG5vZGUgd2hpY2ggZG9lcyBub3QgYmVsb25nIHRvIHRoaXMgbGlzdCcpXG4gIH1cblxuICB2YXIgbmV4dCA9IG5vZGUubmV4dFxuICB2YXIgcHJldiA9IG5vZGUucHJldlxuXG4gIGlmIChuZXh0KSB7XG4gICAgbmV4dC5wcmV2ID0gcHJldlxuICB9XG5cbiAgaWYgKHByZXYpIHtcbiAgICBwcmV2Lm5leHQgPSBuZXh0XG4gIH1cblxuICBpZiAobm9kZSA9PT0gdGhpcy5oZWFkKSB7XG4gICAgdGhpcy5oZWFkID0gbmV4dFxuICB9XG4gIGlmIChub2RlID09PSB0aGlzLnRhaWwpIHtcbiAgICB0aGlzLnRhaWwgPSBwcmV2XG4gIH1cblxuICBub2RlLmxpc3QubGVuZ3RoLS1cbiAgbm9kZS5uZXh0ID0gbnVsbFxuICBub2RlLnByZXYgPSBudWxsXG4gIG5vZGUubGlzdCA9IG51bGxcblxuICByZXR1cm4gbmV4dFxufVxuXG5ZYWxsaXN0LnByb3RvdHlwZS51bnNoaWZ0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gIGlmIChub2RlID09PSB0aGlzLmhlYWQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChub2RlLmxpc3QpIHtcbiAgICBub2RlLmxpc3QucmVtb3ZlTm9kZShub2RlKVxuICB9XG5cbiAgdmFyIGhlYWQgPSB0aGlzLmhlYWRcbiAgbm9kZS5saXN0ID0gdGhpc1xuICBub2RlLm5leHQgPSBoZWFkXG4gIGlmIChoZWFkKSB7XG4gICAgaGVhZC5wcmV2ID0gbm9kZVxuICB9XG5cbiAgdGhpcy5oZWFkID0gbm9kZVxuICBpZiAoIXRoaXMudGFpbCkge1xuICAgIHRoaXMudGFpbCA9IG5vZGVcbiAgfVxuICB0aGlzLmxlbmd0aCsrXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnB1c2hOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgaWYgKG5vZGUgPT09IHRoaXMudGFpbCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKG5vZGUubGlzdCkge1xuICAgIG5vZGUubGlzdC5yZW1vdmVOb2RlKG5vZGUpXG4gIH1cblxuICB2YXIgdGFpbCA9IHRoaXMudGFpbFxuICBub2RlLmxpc3QgPSB0aGlzXG4gIG5vZGUucHJldiA9IHRhaWxcbiAgaWYgKHRhaWwpIHtcbiAgICB0YWlsLm5leHQgPSBub2RlXG4gIH1cblxuICB0aGlzLnRhaWwgPSBub2RlXG4gIGlmICghdGhpcy5oZWFkKSB7XG4gICAgdGhpcy5oZWFkID0gbm9kZVxuICB9XG4gIHRoaXMubGVuZ3RoKytcbn1cblxuWWFsbGlzdC5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgcHVzaCh0aGlzLCBhcmd1bWVudHNbaV0pXG4gIH1cbiAgcmV0dXJuIHRoaXMubGVuZ3RoXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnVuc2hpZnQgPSBmdW5jdGlvbiAoKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHVuc2hpZnQodGhpcywgYXJndW1lbnRzW2ldKVxuICB9XG4gIHJldHVybiB0aGlzLmxlbmd0aFxufVxuXG5ZYWxsaXN0LnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICghdGhpcy50YWlsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgdmFyIHJlcyA9IHRoaXMudGFpbC52YWx1ZVxuICB0aGlzLnRhaWwgPSB0aGlzLnRhaWwucHJldlxuICBpZiAodGhpcy50YWlsKSB7XG4gICAgdGhpcy50YWlsLm5leHQgPSBudWxsXG4gIH0gZWxzZSB7XG4gICAgdGhpcy5oZWFkID0gbnVsbFxuICB9XG4gIHRoaXMubGVuZ3RoLS1cbiAgcmV0dXJuIHJlc1xufVxuXG5ZYWxsaXN0LnByb3RvdHlwZS5zaGlmdCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCF0aGlzLmhlYWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICB2YXIgcmVzID0gdGhpcy5oZWFkLnZhbHVlXG4gIHRoaXMuaGVhZCA9IHRoaXMuaGVhZC5uZXh0XG4gIGlmICh0aGlzLmhlYWQpIHtcbiAgICB0aGlzLmhlYWQucHJldiA9IG51bGxcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnRhaWwgPSBudWxsXG4gIH1cbiAgdGhpcy5sZW5ndGgtLVxuICByZXR1cm4gcmVzXG59XG5cbllhbGxpc3QucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbiAoZm4sIHRoaXNwKSB7XG4gIHRoaXNwID0gdGhpc3AgfHwgdGhpc1xuICBmb3IgKHZhciB3YWxrZXIgPSB0aGlzLmhlYWQsIGkgPSAwOyB3YWxrZXIgIT09IG51bGw7IGkrKykge1xuICAgIGZuLmNhbGwodGhpc3AsIHdhbGtlci52YWx1ZSwgaSwgdGhpcylcbiAgICB3YWxrZXIgPSB3YWxrZXIubmV4dFxuICB9XG59XG5cbllhbGxpc3QucHJvdG90eXBlLmZvckVhY2hSZXZlcnNlID0gZnVuY3Rpb24gKGZuLCB0aGlzcCkge1xuICB0aGlzcCA9IHRoaXNwIHx8IHRoaXNcbiAgZm9yICh2YXIgd2Fsa2VyID0gdGhpcy50YWlsLCBpID0gdGhpcy5sZW5ndGggLSAxOyB3YWxrZXIgIT09IG51bGw7IGktLSkge1xuICAgIGZuLmNhbGwodGhpc3AsIHdhbGtlci52YWx1ZSwgaSwgdGhpcylcbiAgICB3YWxrZXIgPSB3YWxrZXIucHJldlxuICB9XG59XG5cbllhbGxpc3QucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChuKSB7XG4gIGZvciAodmFyIGkgPSAwLCB3YWxrZXIgPSB0aGlzLmhlYWQ7IHdhbGtlciAhPT0gbnVsbCAmJiBpIDwgbjsgaSsrKSB7XG4gICAgLy8gYWJvcnQgb3V0IG9mIHRoZSBsaXN0IGVhcmx5IGlmIHdlIGhpdCBhIGN5Y2xlXG4gICAgd2Fsa2VyID0gd2Fsa2VyLm5leHRcbiAgfVxuICBpZiAoaSA9PT0gbiAmJiB3YWxrZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gd2Fsa2VyLnZhbHVlXG4gIH1cbn1cblxuWWFsbGlzdC5wcm90b3R5cGUuZ2V0UmV2ZXJzZSA9IGZ1bmN0aW9uIChuKSB7XG4gIGZvciAodmFyIGkgPSAwLCB3YWxrZXIgPSB0aGlzLnRhaWw7IHdhbGtlciAhPT0gbnVsbCAmJiBpIDwgbjsgaSsrKSB7XG4gICAgLy8gYWJvcnQgb3V0IG9mIHRoZSBsaXN0IGVhcmx5IGlmIHdlIGhpdCBhIGN5Y2xlXG4gICAgd2Fsa2VyID0gd2Fsa2VyLnByZXZcbiAgfVxuICBpZiAoaSA9PT0gbiAmJiB3YWxrZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4gd2Fsa2VyLnZhbHVlXG4gIH1cbn1cblxuWWFsbGlzdC5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24gKGZuLCB0aGlzcCkge1xuICB0aGlzcCA9IHRoaXNwIHx8IHRoaXNcbiAgdmFyIHJlcyA9IG5ldyBZYWxsaXN0KClcbiAgZm9yICh2YXIgd2Fsa2VyID0gdGhpcy5oZWFkOyB3YWxrZXIgIT09IG51bGw7KSB7XG4gICAgcmVzLnB1c2goZm4uY2FsbCh0aGlzcCwgd2Fsa2VyLnZhbHVlLCB0aGlzKSlcbiAgICB3YWxrZXIgPSB3YWxrZXIubmV4dFxuICB9XG4gIHJldHVybiByZXNcbn1cblxuWWFsbGlzdC5wcm90b3R5cGUubWFwUmV2ZXJzZSA9IGZ1bmN0aW9uIChmbiwgdGhpc3ApIHtcbiAgdGhpc3AgPSB0aGlzcCB8fCB0aGlzXG4gIHZhciByZXMgPSBuZXcgWWFsbGlzdCgpXG4gIGZvciAodmFyIHdhbGtlciA9IHRoaXMudGFpbDsgd2Fsa2VyICE9PSBudWxsOykge1xuICAgIHJlcy5wdXNoKGZuLmNhbGwodGhpc3AsIHdhbGtlci52YWx1ZSwgdGhpcykpXG4gICAgd2Fsa2VyID0gd2Fsa2VyLnByZXZcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnJlZHVjZSA9IGZ1bmN0aW9uIChmbiwgaW5pdGlhbCkge1xuICB2YXIgYWNjXG4gIHZhciB3YWxrZXIgPSB0aGlzLmhlYWRcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgYWNjID0gaW5pdGlhbFxuICB9IGVsc2UgaWYgKHRoaXMuaGVhZCkge1xuICAgIHdhbGtlciA9IHRoaXMuaGVhZC5uZXh0XG4gICAgYWNjID0gdGhpcy5oZWFkLnZhbHVlXG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignUmVkdWNlIG9mIGVtcHR5IGxpc3Qgd2l0aCBubyBpbml0aWFsIHZhbHVlJylcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyB3YWxrZXIgIT09IG51bGw7IGkrKykge1xuICAgIGFjYyA9IGZuKGFjYywgd2Fsa2VyLnZhbHVlLCBpKVxuICAgIHdhbGtlciA9IHdhbGtlci5uZXh0XG4gIH1cblxuICByZXR1cm4gYWNjXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnJlZHVjZVJldmVyc2UgPSBmdW5jdGlvbiAoZm4sIGluaXRpYWwpIHtcbiAgdmFyIGFjY1xuICB2YXIgd2Fsa2VyID0gdGhpcy50YWlsXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgIGFjYyA9IGluaXRpYWxcbiAgfSBlbHNlIGlmICh0aGlzLnRhaWwpIHtcbiAgICB3YWxrZXIgPSB0aGlzLnRhaWwucHJldlxuICAgIGFjYyA9IHRoaXMudGFpbC52YWx1ZVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1JlZHVjZSBvZiBlbXB0eSBsaXN0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZScpXG4gIH1cblxuICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyB3YWxrZXIgIT09IG51bGw7IGktLSkge1xuICAgIGFjYyA9IGZuKGFjYywgd2Fsa2VyLnZhbHVlLCBpKVxuICAgIHdhbGtlciA9IHdhbGtlci5wcmV2XG4gIH1cblxuICByZXR1cm4gYWNjXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBhcnIgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwLCB3YWxrZXIgPSB0aGlzLmhlYWQ7IHdhbGtlciAhPT0gbnVsbDsgaSsrKSB7XG4gICAgYXJyW2ldID0gd2Fsa2VyLnZhbHVlXG4gICAgd2Fsa2VyID0gd2Fsa2VyLm5leHRcbiAgfVxuICByZXR1cm4gYXJyXG59XG5cbllhbGxpc3QucHJvdG90eXBlLnRvQXJyYXlSZXZlcnNlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgYXJyID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMCwgd2Fsa2VyID0gdGhpcy50YWlsOyB3YWxrZXIgIT09IG51bGw7IGkrKykge1xuICAgIGFycltpXSA9IHdhbGtlci52YWx1ZVxuICAgIHdhbGtlciA9IHdhbGtlci5wcmV2XG4gIH1cbiAgcmV0dXJuIGFyclxufVxuXG5ZYWxsaXN0LnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIChmcm9tLCB0bykge1xuICB0byA9IHRvIHx8IHRoaXMubGVuZ3RoXG4gIGlmICh0byA8IDApIHtcbiAgICB0byArPSB0aGlzLmxlbmd0aFxuICB9XG4gIGZyb20gPSBmcm9tIHx8IDBcbiAgaWYgKGZyb20gPCAwKSB7XG4gICAgZnJvbSArPSB0aGlzLmxlbmd0aFxuICB9XG4gIHZhciByZXQgPSBuZXcgWWFsbGlzdCgpXG4gIGlmICh0byA8IGZyb20gfHwgdG8gPCAwKSB7XG4gICAgcmV0dXJuIHJldFxuICB9XG4gIGlmIChmcm9tIDwgMCkge1xuICAgIGZyb20gPSAwXG4gIH1cbiAgaWYgKHRvID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0byA9IHRoaXMubGVuZ3RoXG4gIH1cbiAgZm9yICh2YXIgaSA9IDAsIHdhbGtlciA9IHRoaXMuaGVhZDsgd2Fsa2VyICE9PSBudWxsICYmIGkgPCBmcm9tOyBpKyspIHtcbiAgICB3YWxrZXIgPSB3YWxrZXIubmV4dFxuICB9XG4gIGZvciAoOyB3YWxrZXIgIT09IG51bGwgJiYgaSA8IHRvOyBpKyssIHdhbGtlciA9IHdhbGtlci5uZXh0KSB7XG4gICAgcmV0LnB1c2god2Fsa2VyLnZhbHVlKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuWWFsbGlzdC5wcm90b3R5cGUuc2xpY2VSZXZlcnNlID0gZnVuY3Rpb24gKGZyb20sIHRvKSB7XG4gIHRvID0gdG8gfHwgdGhpcy5sZW5ndGhcbiAgaWYgKHRvIDwgMCkge1xuICAgIHRvICs9IHRoaXMubGVuZ3RoXG4gIH1cbiAgZnJvbSA9IGZyb20gfHwgMFxuICBpZiAoZnJvbSA8IDApIHtcbiAgICBmcm9tICs9IHRoaXMubGVuZ3RoXG4gIH1cbiAgdmFyIHJldCA9IG5ldyBZYWxsaXN0KClcbiAgaWYgKHRvIDwgZnJvbSB8fCB0byA8IDApIHtcbiAgICByZXR1cm4gcmV0XG4gIH1cbiAgaWYgKGZyb20gPCAwKSB7XG4gICAgZnJvbSA9IDBcbiAgfVxuICBpZiAodG8gPiB0aGlzLmxlbmd0aCkge1xuICAgIHRvID0gdGhpcy5sZW5ndGhcbiAgfVxuICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGgsIHdhbGtlciA9IHRoaXMudGFpbDsgd2Fsa2VyICE9PSBudWxsICYmIGkgPiB0bzsgaS0tKSB7XG4gICAgd2Fsa2VyID0gd2Fsa2VyLnByZXZcbiAgfVxuICBmb3IgKDsgd2Fsa2VyICE9PSBudWxsICYmIGkgPiBmcm9tOyBpLS0sIHdhbGtlciA9IHdhbGtlci5wcmV2KSB7XG4gICAgcmV0LnB1c2god2Fsa2VyLnZhbHVlKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuWWFsbGlzdC5wcm90b3R5cGUuc3BsaWNlID0gZnVuY3Rpb24gKHN0YXJ0LCBkZWxldGVDb3VudCwgLi4ubm9kZXMpIHtcbiAgaWYgKHN0YXJ0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHRoaXMubGVuZ3RoIC0gMVxuICB9XG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IHRoaXMubGVuZ3RoICsgc3RhcnQ7XG4gIH1cblxuICBmb3IgKHZhciBpID0gMCwgd2Fsa2VyID0gdGhpcy5oZWFkOyB3YWxrZXIgIT09IG51bGwgJiYgaSA8IHN0YXJ0OyBpKyspIHtcbiAgICB3YWxrZXIgPSB3YWxrZXIubmV4dFxuICB9XG5cbiAgdmFyIHJldCA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyB3YWxrZXIgJiYgaSA8IGRlbGV0ZUNvdW50OyBpKyspIHtcbiAgICByZXQucHVzaCh3YWxrZXIudmFsdWUpXG4gICAgd2Fsa2VyID0gdGhpcy5yZW1vdmVOb2RlKHdhbGtlcilcbiAgfVxuICBpZiAod2Fsa2VyID09PSBudWxsKSB7XG4gICAgd2Fsa2VyID0gdGhpcy50YWlsXG4gIH1cblxuICBpZiAod2Fsa2VyICE9PSB0aGlzLmhlYWQgJiYgd2Fsa2VyICE9PSB0aGlzLnRhaWwpIHtcbiAgICB3YWxrZXIgPSB3YWxrZXIucHJldlxuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgIHdhbGtlciA9IGluc2VydCh0aGlzLCB3YWxrZXIsIG5vZGVzW2ldKVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbllhbGxpc3QucHJvdG90eXBlLnJldmVyc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBoZWFkID0gdGhpcy5oZWFkXG4gIHZhciB0YWlsID0gdGhpcy50YWlsXG4gIGZvciAodmFyIHdhbGtlciA9IGhlYWQ7IHdhbGtlciAhPT0gbnVsbDsgd2Fsa2VyID0gd2Fsa2VyLnByZXYpIHtcbiAgICB2YXIgcCA9IHdhbGtlci5wcmV2XG4gICAgd2Fsa2VyLnByZXYgPSB3YWxrZXIubmV4dFxuICAgIHdhbGtlci5uZXh0ID0gcFxuICB9XG4gIHRoaXMuaGVhZCA9IHRhaWxcbiAgdGhpcy50YWlsID0gaGVhZFxuICByZXR1cm4gdGhpc1xufVxuXG5mdW5jdGlvbiBpbnNlcnQgKHNlbGYsIG5vZGUsIHZhbHVlKSB7XG4gIHZhciBpbnNlcnRlZCA9IG5vZGUgPT09IHNlbGYuaGVhZCA/XG4gICAgbmV3IE5vZGUodmFsdWUsIG51bGwsIG5vZGUsIHNlbGYpIDpcbiAgICBuZXcgTm9kZSh2YWx1ZSwgbm9kZSwgbm9kZS5uZXh0LCBzZWxmKVxuXG4gIGlmIChpbnNlcnRlZC5uZXh0ID09PSBudWxsKSB7XG4gICAgc2VsZi50YWlsID0gaW5zZXJ0ZWRcbiAgfVxuICBpZiAoaW5zZXJ0ZWQucHJldiA9PT0gbnVsbCkge1xuICAgIHNlbGYuaGVhZCA9IGluc2VydGVkXG4gIH1cblxuICBzZWxmLmxlbmd0aCsrXG5cbiAgcmV0dXJuIGluc2VydGVkXG59XG5cbmZ1bmN0aW9uIHB1c2ggKHNlbGYsIGl0ZW0pIHtcbiAgc2VsZi50YWlsID0gbmV3IE5vZGUoaXRlbSwgc2VsZi50YWlsLCBudWxsLCBzZWxmKVxuICBpZiAoIXNlbGYuaGVhZCkge1xuICAgIHNlbGYuaGVhZCA9IHNlbGYudGFpbFxuICB9XG4gIHNlbGYubGVuZ3RoKytcbn1cblxuZnVuY3Rpb24gdW5zaGlmdCAoc2VsZiwgaXRlbSkge1xuICBzZWxmLmhlYWQgPSBuZXcgTm9kZShpdGVtLCBudWxsLCBzZWxmLmhlYWQsIHNlbGYpXG4gIGlmICghc2VsZi50YWlsKSB7XG4gICAgc2VsZi50YWlsID0gc2VsZi5oZWFkXG4gIH1cbiAgc2VsZi5sZW5ndGgrK1xufVxuXG5mdW5jdGlvbiBOb2RlICh2YWx1ZSwgcHJldiwgbmV4dCwgbGlzdCkge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgTm9kZSkpIHtcbiAgICByZXR1cm4gbmV3IE5vZGUodmFsdWUsIHByZXYsIG5leHQsIGxpc3QpXG4gIH1cblxuICB0aGlzLmxpc3QgPSBsaXN0XG4gIHRoaXMudmFsdWUgPSB2YWx1ZVxuXG4gIGlmIChwcmV2KSB7XG4gICAgcHJldi5uZXh0ID0gdGhpc1xuICAgIHRoaXMucHJldiA9IHByZXZcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnByZXYgPSBudWxsXG4gIH1cblxuICBpZiAobmV4dCkge1xuICAgIG5leHQucHJldiA9IHRoaXNcbiAgICB0aGlzLm5leHQgPSBuZXh0XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5uZXh0ID0gbnVsbFxuICB9XG59XG5cbnRyeSB7XG4gIC8vIGFkZCBpZiBzdXBwb3J0IGZvciBTeW1ib2wuaXRlcmF0b3IgaXMgcHJlc2VudFxuICByZXF1aXJlKCcuL2l0ZXJhdG9yLmpzJykoWWFsbGlzdClcbn0gY2F0Y2ggKGVyKSB7fVxuIiwgIid1c2Ugc3RyaWN0J1xuXG4vLyBBIGxpbmtlZCBsaXN0IHRvIGtlZXAgdHJhY2sgb2YgcmVjZW50bHktdXNlZC1uZXNzXG5jb25zdCBZYWxsaXN0ID0gcmVxdWlyZSgneWFsbGlzdCcpXG5cbmNvbnN0IE1BWCA9IFN5bWJvbCgnbWF4JylcbmNvbnN0IExFTkdUSCA9IFN5bWJvbCgnbGVuZ3RoJylcbmNvbnN0IExFTkdUSF9DQUxDVUxBVE9SID0gU3ltYm9sKCdsZW5ndGhDYWxjdWxhdG9yJylcbmNvbnN0IEFMTE9XX1NUQUxFID0gU3ltYm9sKCdhbGxvd1N0YWxlJylcbmNvbnN0IE1BWF9BR0UgPSBTeW1ib2woJ21heEFnZScpXG5jb25zdCBESVNQT1NFID0gU3ltYm9sKCdkaXNwb3NlJylcbmNvbnN0IE5PX0RJU1BPU0VfT05fU0VUID0gU3ltYm9sKCdub0Rpc3Bvc2VPblNldCcpXG5jb25zdCBMUlVfTElTVCA9IFN5bWJvbCgnbHJ1TGlzdCcpXG5jb25zdCBDQUNIRSA9IFN5bWJvbCgnY2FjaGUnKVxuY29uc3QgVVBEQVRFX0FHRV9PTl9HRVQgPSBTeW1ib2woJ3VwZGF0ZUFnZU9uR2V0JylcblxuY29uc3QgbmFpdmVMZW5ndGggPSAoKSA9PiAxXG5cbi8vIGxydUxpc3QgaXMgYSB5YWxsaXN0IHdoZXJlIHRoZSBoZWFkIGlzIHRoZSB5b3VuZ2VzdFxuLy8gaXRlbSwgYW5kIHRoZSB0YWlsIGlzIHRoZSBvbGRlc3QuICB0aGUgbGlzdCBjb250YWlucyB0aGUgSGl0XG4vLyBvYmplY3RzIGFzIHRoZSBlbnRyaWVzLlxuLy8gRWFjaCBIaXQgb2JqZWN0IGhhcyBhIHJlZmVyZW5jZSB0byBpdHMgWWFsbGlzdC5Ob2RlLiAgVGhpc1xuLy8gbmV2ZXIgY2hhbmdlcy5cbi8vXG4vLyBjYWNoZSBpcyBhIE1hcCAob3IgUHNldWRvTWFwKSB0aGF0IG1hdGNoZXMgdGhlIGtleXMgdG9cbi8vIHRoZSBZYWxsaXN0Lk5vZGUgb2JqZWN0LlxuY2xhc3MgTFJVQ2FjaGUge1xuICBjb25zdHJ1Y3RvciAob3B0aW9ucykge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ251bWJlcicpXG4gICAgICBvcHRpb25zID0geyBtYXg6IG9wdGlvbnMgfVxuXG4gICAgaWYgKCFvcHRpb25zKVxuICAgICAgb3B0aW9ucyA9IHt9XG5cbiAgICBpZiAob3B0aW9ucy5tYXggJiYgKHR5cGVvZiBvcHRpb25zLm1heCAhPT0gJ251bWJlcicgfHwgb3B0aW9ucy5tYXggPCAwKSlcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlcicpXG4gICAgLy8gS2luZCBvZiB3ZWlyZCB0byBoYXZlIGEgZGVmYXVsdCBtYXggb2YgSW5maW5pdHksIGJ1dCBvaCB3ZWxsLlxuICAgIGNvbnN0IG1heCA9IHRoaXNbTUFYXSA9IG9wdGlvbnMubWF4IHx8IEluZmluaXR5XG5cbiAgICBjb25zdCBsYyA9IG9wdGlvbnMubGVuZ3RoIHx8IG5haXZlTGVuZ3RoXG4gICAgdGhpc1tMRU5HVEhfQ0FMQ1VMQVRPUl0gPSAodHlwZW9mIGxjICE9PSAnZnVuY3Rpb24nKSA/IG5haXZlTGVuZ3RoIDogbGNcbiAgICB0aGlzW0FMTE9XX1NUQUxFXSA9IG9wdGlvbnMuc3RhbGUgfHwgZmFsc2VcbiAgICBpZiAob3B0aW9ucy5tYXhBZ2UgJiYgdHlwZW9mIG9wdGlvbnMubWF4QWdlICE9PSAnbnVtYmVyJylcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heEFnZSBtdXN0IGJlIGEgbnVtYmVyJylcbiAgICB0aGlzW01BWF9BR0VdID0gb3B0aW9ucy5tYXhBZ2UgfHwgMFxuICAgIHRoaXNbRElTUE9TRV0gPSBvcHRpb25zLmRpc3Bvc2VcbiAgICB0aGlzW05PX0RJU1BPU0VfT05fU0VUXSA9IG9wdGlvbnMubm9EaXNwb3NlT25TZXQgfHwgZmFsc2VcbiAgICB0aGlzW1VQREFURV9BR0VfT05fR0VUXSA9IG9wdGlvbnMudXBkYXRlQWdlT25HZXQgfHwgZmFsc2VcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIC8vIHJlc2l6ZSB0aGUgY2FjaGUgd2hlbiB0aGUgbWF4IGNoYW5nZXMuXG4gIHNldCBtYXggKG1MKSB7XG4gICAgaWYgKHR5cGVvZiBtTCAhPT0gJ251bWJlcicgfHwgbUwgPCAwKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWF4IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyJylcblxuICAgIHRoaXNbTUFYXSA9IG1MIHx8IEluZmluaXR5XG4gICAgdHJpbSh0aGlzKVxuICB9XG4gIGdldCBtYXggKCkge1xuICAgIHJldHVybiB0aGlzW01BWF1cbiAgfVxuXG4gIHNldCBhbGxvd1N0YWxlIChhbGxvd1N0YWxlKSB7XG4gICAgdGhpc1tBTExPV19TVEFMRV0gPSAhIWFsbG93U3RhbGVcbiAgfVxuICBnZXQgYWxsb3dTdGFsZSAoKSB7XG4gICAgcmV0dXJuIHRoaXNbQUxMT1dfU1RBTEVdXG4gIH1cblxuICBzZXQgbWF4QWdlIChtQSkge1xuICAgIGlmICh0eXBlb2YgbUEgIT09ICdudW1iZXInKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWF4QWdlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyJylcblxuICAgIHRoaXNbTUFYX0FHRV0gPSBtQVxuICAgIHRyaW0odGhpcylcbiAgfVxuICBnZXQgbWF4QWdlICgpIHtcbiAgICByZXR1cm4gdGhpc1tNQVhfQUdFXVxuICB9XG5cbiAgLy8gcmVzaXplIHRoZSBjYWNoZSB3aGVuIHRoZSBsZW5ndGhDYWxjdWxhdG9yIGNoYW5nZXMuXG4gIHNldCBsZW5ndGhDYWxjdWxhdG9yIChsQykge1xuICAgIGlmICh0eXBlb2YgbEMgIT09ICdmdW5jdGlvbicpXG4gICAgICBsQyA9IG5haXZlTGVuZ3RoXG5cbiAgICBpZiAobEMgIT09IHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdKSB7XG4gICAgICB0aGlzW0xFTkdUSF9DQUxDVUxBVE9SXSA9IGxDXG4gICAgICB0aGlzW0xFTkdUSF0gPSAwXG4gICAgICB0aGlzW0xSVV9MSVNUXS5mb3JFYWNoKGhpdCA9PiB7XG4gICAgICAgIGhpdC5sZW5ndGggPSB0aGlzW0xFTkdUSF9DQUxDVUxBVE9SXShoaXQudmFsdWUsIGhpdC5rZXkpXG4gICAgICAgIHRoaXNbTEVOR1RIXSArPSBoaXQubGVuZ3RoXG4gICAgICB9KVxuICAgIH1cbiAgICB0cmltKHRoaXMpXG4gIH1cbiAgZ2V0IGxlbmd0aENhbGN1bGF0b3IgKCkgeyByZXR1cm4gdGhpc1tMRU5HVEhfQ0FMQ1VMQVRPUl0gfVxuXG4gIGdldCBsZW5ndGggKCkgeyByZXR1cm4gdGhpc1tMRU5HVEhdIH1cbiAgZ2V0IGl0ZW1Db3VudCAoKSB7IHJldHVybiB0aGlzW0xSVV9MSVNUXS5sZW5ndGggfVxuXG4gIHJmb3JFYWNoIChmbiwgdGhpc3ApIHtcbiAgICB0aGlzcCA9IHRoaXNwIHx8IHRoaXNcbiAgICBmb3IgKGxldCB3YWxrZXIgPSB0aGlzW0xSVV9MSVNUXS50YWlsOyB3YWxrZXIgIT09IG51bGw7KSB7XG4gICAgICBjb25zdCBwcmV2ID0gd2Fsa2VyLnByZXZcbiAgICAgIGZvckVhY2hTdGVwKHRoaXMsIGZuLCB3YWxrZXIsIHRoaXNwKVxuICAgICAgd2Fsa2VyID0gcHJldlxuICAgIH1cbiAgfVxuXG4gIGZvckVhY2ggKGZuLCB0aGlzcCkge1xuICAgIHRoaXNwID0gdGhpc3AgfHwgdGhpc1xuICAgIGZvciAobGV0IHdhbGtlciA9IHRoaXNbTFJVX0xJU1RdLmhlYWQ7IHdhbGtlciAhPT0gbnVsbDspIHtcbiAgICAgIGNvbnN0IG5leHQgPSB3YWxrZXIubmV4dFxuICAgICAgZm9yRWFjaFN0ZXAodGhpcywgZm4sIHdhbGtlciwgdGhpc3ApXG4gICAgICB3YWxrZXIgPSBuZXh0XG4gICAgfVxuICB9XG5cbiAga2V5cyAoKSB7XG4gICAgcmV0dXJuIHRoaXNbTFJVX0xJU1RdLnRvQXJyYXkoKS5tYXAoayA9PiBrLmtleSlcbiAgfVxuXG4gIHZhbHVlcyAoKSB7XG4gICAgcmV0dXJuIHRoaXNbTFJVX0xJU1RdLnRvQXJyYXkoKS5tYXAoayA9PiBrLnZhbHVlKVxuICB9XG5cbiAgcmVzZXQgKCkge1xuICAgIGlmICh0aGlzW0RJU1BPU0VdICYmXG4gICAgICAgIHRoaXNbTFJVX0xJU1RdICYmXG4gICAgICAgIHRoaXNbTFJVX0xJU1RdLmxlbmd0aCkge1xuICAgICAgdGhpc1tMUlVfTElTVF0uZm9yRWFjaChoaXQgPT4gdGhpc1tESVNQT1NFXShoaXQua2V5LCBoaXQudmFsdWUpKVxuICAgIH1cblxuICAgIHRoaXNbQ0FDSEVdID0gbmV3IE1hcCgpIC8vIGhhc2ggb2YgaXRlbXMgYnkga2V5XG4gICAgdGhpc1tMUlVfTElTVF0gPSBuZXcgWWFsbGlzdCgpIC8vIGxpc3Qgb2YgaXRlbXMgaW4gb3JkZXIgb2YgdXNlIHJlY2VuY3lcbiAgICB0aGlzW0xFTkdUSF0gPSAwIC8vIGxlbmd0aCBvZiBpdGVtcyBpbiB0aGUgbGlzdFxuICB9XG5cbiAgZHVtcCAoKSB7XG4gICAgcmV0dXJuIHRoaXNbTFJVX0xJU1RdLm1hcChoaXQgPT5cbiAgICAgIGlzU3RhbGUodGhpcywgaGl0KSA/IGZhbHNlIDoge1xuICAgICAgICBrOiBoaXQua2V5LFxuICAgICAgICB2OiBoaXQudmFsdWUsXG4gICAgICAgIGU6IGhpdC5ub3cgKyAoaGl0Lm1heEFnZSB8fCAwKVxuICAgICAgfSkudG9BcnJheSgpLmZpbHRlcihoID0+IGgpXG4gIH1cblxuICBkdW1wTHJ1ICgpIHtcbiAgICByZXR1cm4gdGhpc1tMUlVfTElTVF1cbiAgfVxuXG4gIHNldCAoa2V5LCB2YWx1ZSwgbWF4QWdlKSB7XG4gICAgbWF4QWdlID0gbWF4QWdlIHx8IHRoaXNbTUFYX0FHRV1cblxuICAgIGlmIChtYXhBZ2UgJiYgdHlwZW9mIG1heEFnZSAhPT0gJ251bWJlcicpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtYXhBZ2UgbXVzdCBiZSBhIG51bWJlcicpXG5cbiAgICBjb25zdCBub3cgPSBtYXhBZ2UgPyBEYXRlLm5vdygpIDogMFxuICAgIGNvbnN0IGxlbiA9IHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdKHZhbHVlLCBrZXkpXG5cbiAgICBpZiAodGhpc1tDQUNIRV0uaGFzKGtleSkpIHtcbiAgICAgIGlmIChsZW4gPiB0aGlzW01BWF0pIHtcbiAgICAgICAgZGVsKHRoaXMsIHRoaXNbQ0FDSEVdLmdldChrZXkpKVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm9kZSA9IHRoaXNbQ0FDSEVdLmdldChrZXkpXG4gICAgICBjb25zdCBpdGVtID0gbm9kZS52YWx1ZVxuXG4gICAgICAvLyBkaXNwb3NlIG9mIHRoZSBvbGQgb25lIGJlZm9yZSBvdmVyd3JpdGluZ1xuICAgICAgLy8gc3BsaXQgb3V0IGludG8gMiBpZnMgZm9yIGJldHRlciBjb3ZlcmFnZSB0cmFja2luZ1xuICAgICAgaWYgKHRoaXNbRElTUE9TRV0pIHtcbiAgICAgICAgaWYgKCF0aGlzW05PX0RJU1BPU0VfT05fU0VUXSlcbiAgICAgICAgICB0aGlzW0RJU1BPU0VdKGtleSwgaXRlbS52YWx1ZSlcbiAgICAgIH1cblxuICAgICAgaXRlbS5ub3cgPSBub3dcbiAgICAgIGl0ZW0ubWF4QWdlID0gbWF4QWdlXG4gICAgICBpdGVtLnZhbHVlID0gdmFsdWVcbiAgICAgIHRoaXNbTEVOR1RIXSArPSBsZW4gLSBpdGVtLmxlbmd0aFxuICAgICAgaXRlbS5sZW5ndGggPSBsZW5cbiAgICAgIHRoaXMuZ2V0KGtleSlcbiAgICAgIHRyaW0odGhpcylcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgaGl0ID0gbmV3IEVudHJ5KGtleSwgdmFsdWUsIGxlbiwgbm93LCBtYXhBZ2UpXG5cbiAgICAvLyBvdmVyc2l6ZWQgb2JqZWN0cyBmYWxsIG91dCBvZiBjYWNoZSBhdXRvbWF0aWNhbGx5LlxuICAgIGlmIChoaXQubGVuZ3RoID4gdGhpc1tNQVhdKSB7XG4gICAgICBpZiAodGhpc1tESVNQT1NFXSlcbiAgICAgICAgdGhpc1tESVNQT1NFXShrZXksIHZhbHVlKVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICB0aGlzW0xFTkdUSF0gKz0gaGl0Lmxlbmd0aFxuICAgIHRoaXNbTFJVX0xJU1RdLnVuc2hpZnQoaGl0KVxuICAgIHRoaXNbQ0FDSEVdLnNldChrZXksIHRoaXNbTFJVX0xJU1RdLmhlYWQpXG4gICAgdHJpbSh0aGlzKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBoYXMgKGtleSkge1xuICAgIGlmICghdGhpc1tDQUNIRV0uaGFzKGtleSkpIHJldHVybiBmYWxzZVxuICAgIGNvbnN0IGhpdCA9IHRoaXNbQ0FDSEVdLmdldChrZXkpLnZhbHVlXG4gICAgcmV0dXJuICFpc1N0YWxlKHRoaXMsIGhpdClcbiAgfVxuXG4gIGdldCAoa2V5KSB7XG4gICAgcmV0dXJuIGdldCh0aGlzLCBrZXksIHRydWUpXG4gIH1cblxuICBwZWVrIChrZXkpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsIGtleSwgZmFsc2UpXG4gIH1cblxuICBwb3AgKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzW0xSVV9MSVNUXS50YWlsXG4gICAgaWYgKCFub2RlKVxuICAgICAgcmV0dXJuIG51bGxcblxuICAgIGRlbCh0aGlzLCBub2RlKVxuICAgIHJldHVybiBub2RlLnZhbHVlXG4gIH1cblxuICBkZWwgKGtleSkge1xuICAgIGRlbCh0aGlzLCB0aGlzW0NBQ0hFXS5nZXQoa2V5KSlcbiAgfVxuXG4gIGxvYWQgKGFycikge1xuICAgIC8vIHJlc2V0IHRoZSBjYWNoZVxuICAgIHRoaXMucmVzZXQoKVxuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxuICAgIC8vIEEgcHJldmlvdXMgc2VyaWFsaXplZCBjYWNoZSBoYXMgdGhlIG1vc3QgcmVjZW50IGl0ZW1zIGZpcnN0XG4gICAgZm9yIChsZXQgbCA9IGFyci5sZW5ndGggLSAxOyBsID49IDA7IGwtLSkge1xuICAgICAgY29uc3QgaGl0ID0gYXJyW2xdXG4gICAgICBjb25zdCBleHBpcmVzQXQgPSBoaXQuZSB8fCAwXG4gICAgICBpZiAoZXhwaXJlc0F0ID09PSAwKVxuICAgICAgICAvLyB0aGUgaXRlbSB3YXMgY3JlYXRlZCB3aXRob3V0IGV4cGlyYXRpb24gaW4gYSBub24gYWdlZCBjYWNoZVxuICAgICAgICB0aGlzLnNldChoaXQuaywgaGl0LnYpXG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbWF4QWdlID0gZXhwaXJlc0F0IC0gbm93XG4gICAgICAgIC8vIGRvbnQgYWRkIGFscmVhZHkgZXhwaXJlZCBpdGVtc1xuICAgICAgICBpZiAobWF4QWdlID4gMCkge1xuICAgICAgICAgIHRoaXMuc2V0KGhpdC5rLCBoaXQudiwgbWF4QWdlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJ1bmUgKCkge1xuICAgIHRoaXNbQ0FDSEVdLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IGdldCh0aGlzLCBrZXksIGZhbHNlKSlcbiAgfVxufVxuXG5jb25zdCBnZXQgPSAoc2VsZiwga2V5LCBkb1VzZSkgPT4ge1xuICBjb25zdCBub2RlID0gc2VsZltDQUNIRV0uZ2V0KGtleSlcbiAgaWYgKG5vZGUpIHtcbiAgICBjb25zdCBoaXQgPSBub2RlLnZhbHVlXG4gICAgaWYgKGlzU3RhbGUoc2VsZiwgaGl0KSkge1xuICAgICAgZGVsKHNlbGYsIG5vZGUpXG4gICAgICBpZiAoIXNlbGZbQUxMT1dfU1RBTEVdKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkb1VzZSkge1xuICAgICAgICBpZiAoc2VsZltVUERBVEVfQUdFX09OX0dFVF0pXG4gICAgICAgICAgbm9kZS52YWx1ZS5ub3cgPSBEYXRlLm5vdygpXG4gICAgICAgIHNlbGZbTFJVX0xJU1RdLnVuc2hpZnROb2RlKG5vZGUpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoaXQudmFsdWVcbiAgfVxufVxuXG5jb25zdCBpc1N0YWxlID0gKHNlbGYsIGhpdCkgPT4ge1xuICBpZiAoIWhpdCB8fCAoIWhpdC5tYXhBZ2UgJiYgIXNlbGZbTUFYX0FHRV0pKVxuICAgIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IGRpZmYgPSBEYXRlLm5vdygpIC0gaGl0Lm5vd1xuICByZXR1cm4gaGl0Lm1heEFnZSA/IGRpZmYgPiBoaXQubWF4QWdlXG4gICAgOiBzZWxmW01BWF9BR0VdICYmIChkaWZmID4gc2VsZltNQVhfQUdFXSlcbn1cblxuY29uc3QgdHJpbSA9IHNlbGYgPT4ge1xuICBpZiAoc2VsZltMRU5HVEhdID4gc2VsZltNQVhdKSB7XG4gICAgZm9yIChsZXQgd2Fsa2VyID0gc2VsZltMUlVfTElTVF0udGFpbDtcbiAgICAgIHNlbGZbTEVOR1RIXSA+IHNlbGZbTUFYXSAmJiB3YWxrZXIgIT09IG51bGw7KSB7XG4gICAgICAvLyBXZSBrbm93IHRoYXQgd2UncmUgYWJvdXQgdG8gZGVsZXRlIHRoaXMgb25lLCBhbmQgYWxzb1xuICAgICAgLy8gd2hhdCB0aGUgbmV4dCBsZWFzdCByZWNlbnRseSB1c2VkIGtleSB3aWxsIGJlLCBzbyBqdXN0XG4gICAgICAvLyBnbyBhaGVhZCBhbmQgc2V0IGl0IG5vdy5cbiAgICAgIGNvbnN0IHByZXYgPSB3YWxrZXIucHJldlxuICAgICAgZGVsKHNlbGYsIHdhbGtlcilcbiAgICAgIHdhbGtlciA9IHByZXZcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgZGVsID0gKHNlbGYsIG5vZGUpID0+IHtcbiAgaWYgKG5vZGUpIHtcbiAgICBjb25zdCBoaXQgPSBub2RlLnZhbHVlXG4gICAgaWYgKHNlbGZbRElTUE9TRV0pXG4gICAgICBzZWxmW0RJU1BPU0VdKGhpdC5rZXksIGhpdC52YWx1ZSlcblxuICAgIHNlbGZbTEVOR1RIXSAtPSBoaXQubGVuZ3RoXG4gICAgc2VsZltDQUNIRV0uZGVsZXRlKGhpdC5rZXkpXG4gICAgc2VsZltMUlVfTElTVF0ucmVtb3ZlTm9kZShub2RlKVxuICB9XG59XG5cbmNsYXNzIEVudHJ5IHtcbiAgY29uc3RydWN0b3IgKGtleSwgdmFsdWUsIGxlbmd0aCwgbm93LCBtYXhBZ2UpIHtcbiAgICB0aGlzLmtleSA9IGtleVxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoXG4gICAgdGhpcy5ub3cgPSBub3dcbiAgICB0aGlzLm1heEFnZSA9IG1heEFnZSB8fCAwXG4gIH1cbn1cblxuY29uc3QgZm9yRWFjaFN0ZXAgPSAoc2VsZiwgZm4sIG5vZGUsIHRoaXNwKSA9PiB7XG4gIGxldCBoaXQgPSBub2RlLnZhbHVlXG4gIGlmIChpc1N0YWxlKHNlbGYsIGhpdCkpIHtcbiAgICBkZWwoc2VsZiwgbm9kZSlcbiAgICBpZiAoIXNlbGZbQUxMT1dfU1RBTEVdKVxuICAgICAgaGl0ID0gdW5kZWZpbmVkXG4gIH1cbiAgaWYgKGhpdClcbiAgICBmbi5jYWxsKHRoaXNwLCBoaXQudmFsdWUsIGhpdC5rZXksIHNlbGYpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gTFJVQ2FjaGVcbiIsICIvLyBob2lzdGVkIGNsYXNzIGZvciBjeWNsaWMgZGVwZW5kZW5jeVxuY2xhc3MgUmFuZ2Uge1xuICBjb25zdHJ1Y3RvciAocmFuZ2UsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpXG5cbiAgICBpZiAocmFuZ2UgaW5zdGFuY2VvZiBSYW5nZSkge1xuICAgICAgaWYgKFxuICAgICAgICByYW5nZS5sb29zZSA9PT0gISFvcHRpb25zLmxvb3NlICYmXG4gICAgICAgIHJhbmdlLmluY2x1ZGVQcmVyZWxlYXNlID09PSAhIW9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2VcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcmFuZ2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgUmFuZ2UocmFuZ2UucmF3LCBvcHRpb25zKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyYW5nZSBpbnN0YW5jZW9mIENvbXBhcmF0b3IpIHtcbiAgICAgIC8vIGp1c3QgcHV0IGl0IGluIHRoZSBzZXQgYW5kIHJldHVyblxuICAgICAgdGhpcy5yYXcgPSByYW5nZS52YWx1ZVxuICAgICAgdGhpcy5zZXQgPSBbW3JhbmdlXV1cbiAgICAgIHRoaXMuZm9ybWF0KClcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMubG9vc2UgPSAhIW9wdGlvbnMubG9vc2VcbiAgICB0aGlzLmluY2x1ZGVQcmVyZWxlYXNlID0gISFvcHRpb25zLmluY2x1ZGVQcmVyZWxlYXNlXG5cbiAgICAvLyBGaXJzdCByZWR1Y2UgYWxsIHdoaXRlc3BhY2UgYXMgbXVjaCBhcyBwb3NzaWJsZSBzbyB3ZSBkbyBub3QgaGF2ZSB0byByZWx5XG4gICAgLy8gb24gcG90ZW50aWFsbHkgc2xvdyByZWdleGVzIGxpa2UgXFxzKi4gVGhpcyBpcyB0aGVuIHN0b3JlZCBhbmQgdXNlZCBmb3JcbiAgICAvLyBmdXR1cmUgZXJyb3IgbWVzc2FnZXMgYXMgd2VsbC5cbiAgICB0aGlzLnJhdyA9IHJhbmdlXG4gICAgICAudHJpbSgpXG4gICAgICAuc3BsaXQoL1xccysvKVxuICAgICAgLmpvaW4oJyAnKVxuXG4gICAgLy8gRmlyc3QsIHNwbGl0IG9uIHx8XG4gICAgdGhpcy5zZXQgPSB0aGlzLnJhd1xuICAgICAgLnNwbGl0KCd8fCcpXG4gICAgICAvLyBtYXAgdGhlIHJhbmdlIHRvIGEgMmQgYXJyYXkgb2YgY29tcGFyYXRvcnNcbiAgICAgIC5tYXAociA9PiB0aGlzLnBhcnNlUmFuZ2Uoci50cmltKCkpKVxuICAgICAgLy8gdGhyb3cgb3V0IGFueSBjb21wYXJhdG9yIGxpc3RzIHRoYXQgYXJlIGVtcHR5XG4gICAgICAvLyB0aGlzIGdlbmVyYWxseSBtZWFucyB0aGF0IGl0IHdhcyBub3QgYSB2YWxpZCByYW5nZSwgd2hpY2ggaXMgYWxsb3dlZFxuICAgICAgLy8gaW4gbG9vc2UgbW9kZSwgYnV0IHdpbGwgc3RpbGwgdGhyb3cgaWYgdGhlIFdIT0xFIHJhbmdlIGlzIGludmFsaWQuXG4gICAgICAuZmlsdGVyKGMgPT4gYy5sZW5ndGgpXG5cbiAgICBpZiAoIXRoaXMuc2V0Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBTZW1WZXIgUmFuZ2U6ICR7dGhpcy5yYXd9YClcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBoYXZlIGFueSB0aGF0IGFyZSBub3QgdGhlIG51bGwgc2V0LCB0aHJvdyBvdXQgbnVsbCBzZXRzLlxuICAgIGlmICh0aGlzLnNldC5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBrZWVwIHRoZSBmaXJzdCBvbmUsIGluIGNhc2UgdGhleSdyZSBhbGwgbnVsbCBzZXRzXG4gICAgICBjb25zdCBmaXJzdCA9IHRoaXMuc2V0WzBdXG4gICAgICB0aGlzLnNldCA9IHRoaXMuc2V0LmZpbHRlcihjID0+ICFpc051bGxTZXQoY1swXSkpXG4gICAgICBpZiAodGhpcy5zZXQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuc2V0ID0gW2ZpcnN0XVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNldC5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYW55IHRoYXQgYXJlICosIHRoZW4gdGhlIHJhbmdlIGlzIGp1c3QgKlxuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgdGhpcy5zZXQpIHtcbiAgICAgICAgICBpZiAoYy5sZW5ndGggPT09IDEgJiYgaXNBbnkoY1swXSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0ID0gW2NdXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZm9ybWF0KClcbiAgfVxuXG4gIGZvcm1hdCAoKSB7XG4gICAgdGhpcy5yYW5nZSA9IHRoaXMuc2V0XG4gICAgICAubWFwKChjb21wcykgPT4gY29tcHMuam9pbignICcpLnRyaW0oKSlcbiAgICAgIC5qb2luKCd8fCcpXG4gICAgICAudHJpbSgpXG4gICAgcmV0dXJuIHRoaXMucmFuZ2VcbiAgfVxuXG4gIHRvU3RyaW5nICgpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZVxuICB9XG5cbiAgcGFyc2VSYW5nZSAocmFuZ2UpIHtcbiAgICAvLyBtZW1vaXplIHJhbmdlIHBhcnNpbmcgZm9yIHBlcmZvcm1hbmNlLlxuICAgIC8vIHRoaXMgaXMgYSB2ZXJ5IGhvdCBwYXRoLCBhbmQgZnVsbHkgZGV0ZXJtaW5pc3RpYy5cbiAgICBjb25zdCBtZW1vT3B0cyA9XG4gICAgICAodGhpcy5vcHRpb25zLmluY2x1ZGVQcmVyZWxlYXNlICYmIEZMQUdfSU5DTFVERV9QUkVSRUxFQVNFKSB8XG4gICAgICAodGhpcy5vcHRpb25zLmxvb3NlICYmIEZMQUdfTE9PU0UpXG4gICAgY29uc3QgbWVtb0tleSA9IG1lbW9PcHRzICsgJzonICsgcmFuZ2VcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQobWVtb0tleSlcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkXG4gICAgfVxuXG4gICAgY29uc3QgbG9vc2UgPSB0aGlzLm9wdGlvbnMubG9vc2VcbiAgICAvLyBgMS4yLjMgLSAxLjIuNGAgPT4gYD49MS4yLjMgPD0xLjIuNGBcbiAgICBjb25zdCBociA9IGxvb3NlID8gcmVbdC5IWVBIRU5SQU5HRUxPT1NFXSA6IHJlW3QuSFlQSEVOUkFOR0VdXG4gICAgcmFuZ2UgPSByYW5nZS5yZXBsYWNlKGhyLCBoeXBoZW5SZXBsYWNlKHRoaXMub3B0aW9ucy5pbmNsdWRlUHJlcmVsZWFzZSkpXG4gICAgZGVidWcoJ2h5cGhlbiByZXBsYWNlJywgcmFuZ2UpXG5cbiAgICAvLyBgPiAxLjIuMyA8IDEuMi41YCA9PiBgPjEuMi4zIDwxLjIuNWBcbiAgICByYW5nZSA9IHJhbmdlLnJlcGxhY2UocmVbdC5DT01QQVJBVE9SVFJJTV0sIGNvbXBhcmF0b3JUcmltUmVwbGFjZSlcbiAgICBkZWJ1ZygnY29tcGFyYXRvciB0cmltJywgcmFuZ2UpXG5cbiAgICAvLyBgfiAxLjIuM2AgPT4gYH4xLjIuM2BcbiAgICByYW5nZSA9IHJhbmdlLnJlcGxhY2UocmVbdC5USUxERVRSSU1dLCB0aWxkZVRyaW1SZXBsYWNlKVxuICAgIGRlYnVnKCd0aWxkZSB0cmltJywgcmFuZ2UpXG5cbiAgICAvLyBgXiAxLjIuM2AgPT4gYF4xLjIuM2BcbiAgICByYW5nZSA9IHJhbmdlLnJlcGxhY2UocmVbdC5DQVJFVFRSSU1dLCBjYXJldFRyaW1SZXBsYWNlKVxuICAgIGRlYnVnKCdjYXJldCB0cmltJywgcmFuZ2UpXG5cbiAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgcmFuZ2UgaXMgY29tcGxldGVseSB0cmltbWVkIGFuZFxuICAgIC8vIHJlYWR5IHRvIGJlIHNwbGl0IGludG8gY29tcGFyYXRvcnMuXG5cbiAgICBsZXQgcmFuZ2VMaXN0ID0gcmFuZ2VcbiAgICAgIC5zcGxpdCgnICcpXG4gICAgICAubWFwKGNvbXAgPT4gcGFyc2VDb21wYXJhdG9yKGNvbXAsIHRoaXMub3B0aW9ucykpXG4gICAgICAuam9pbignICcpXG4gICAgICAuc3BsaXQoL1xccysvKVxuICAgICAgLy8gPj0wLjAuMCBpcyBlcXVpdmFsZW50IHRvICpcbiAgICAgIC5tYXAoY29tcCA9PiByZXBsYWNlR1RFMChjb21wLCB0aGlzLm9wdGlvbnMpKVxuXG4gICAgaWYgKGxvb3NlKSB7XG4gICAgICAvLyBpbiBsb29zZSBtb2RlLCB0aHJvdyBvdXQgYW55IHRoYXQgYXJlIG5vdCB2YWxpZCBjb21wYXJhdG9yc1xuICAgICAgcmFuZ2VMaXN0ID0gcmFuZ2VMaXN0LmZpbHRlcihjb21wID0+IHtcbiAgICAgICAgZGVidWcoJ2xvb3NlIGludmFsaWQgZmlsdGVyJywgY29tcCwgdGhpcy5vcHRpb25zKVxuICAgICAgICByZXR1cm4gISFjb21wLm1hdGNoKHJlW3QuQ09NUEFSQVRPUkxPT1NFXSlcbiAgICAgIH0pXG4gICAgfVxuICAgIGRlYnVnKCdyYW5nZSBsaXN0JywgcmFuZ2VMaXN0KVxuXG4gICAgLy8gaWYgYW55IGNvbXBhcmF0b3JzIGFyZSB0aGUgbnVsbCBzZXQsIHRoZW4gcmVwbGFjZSB3aXRoIEpVU1QgbnVsbCBzZXRcbiAgICAvLyBpZiBtb3JlIHRoYW4gb25lIGNvbXBhcmF0b3IsIHJlbW92ZSBhbnkgKiBjb21wYXJhdG9yc1xuICAgIC8vIGFsc28sIGRvbid0IGluY2x1ZGUgdGhlIHNhbWUgY29tcGFyYXRvciBtb3JlIHRoYW4gb25jZVxuICAgIGNvbnN0IHJhbmdlTWFwID0gbmV3IE1hcCgpXG4gICAgY29uc3QgY29tcGFyYXRvcnMgPSByYW5nZUxpc3QubWFwKGNvbXAgPT4gbmV3IENvbXBhcmF0b3IoY29tcCwgdGhpcy5vcHRpb25zKSlcbiAgICBmb3IgKGNvbnN0IGNvbXAgb2YgY29tcGFyYXRvcnMpIHtcbiAgICAgIGlmIChpc051bGxTZXQoY29tcCkpIHtcbiAgICAgICAgcmV0dXJuIFtjb21wXVxuICAgICAgfVxuICAgICAgcmFuZ2VNYXAuc2V0KGNvbXAudmFsdWUsIGNvbXApXG4gICAgfVxuICAgIGlmIChyYW5nZU1hcC5zaXplID4gMSAmJiByYW5nZU1hcC5oYXMoJycpKSB7XG4gICAgICByYW5nZU1hcC5kZWxldGUoJycpXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLnJhbmdlTWFwLnZhbHVlcygpXVxuICAgIGNhY2hlLnNldChtZW1vS2V5LCByZXN1bHQpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgaW50ZXJzZWN0cyAocmFuZ2UsIG9wdGlvbnMpIHtcbiAgICBpZiAoIShyYW5nZSBpbnN0YW5jZW9mIFJhbmdlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignYSBSYW5nZSBpcyByZXF1aXJlZCcpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2V0LnNvbWUoKHRoaXNDb21wYXJhdG9ycykgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgaXNTYXRpc2ZpYWJsZSh0aGlzQ29tcGFyYXRvcnMsIG9wdGlvbnMpICYmXG4gICAgICAgIHJhbmdlLnNldC5zb21lKChyYW5nZUNvbXBhcmF0b3JzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlzU2F0aXNmaWFibGUocmFuZ2VDb21wYXJhdG9ycywgb3B0aW9ucykgJiZcbiAgICAgICAgICAgIHRoaXNDb21wYXJhdG9ycy5ldmVyeSgodGhpc0NvbXBhcmF0b3IpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlQ29tcGFyYXRvcnMuZXZlcnkoKHJhbmdlQ29tcGFyYXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzQ29tcGFyYXRvci5pbnRlcnNlY3RzKHJhbmdlQ29tcGFyYXRvciwgb3B0aW9ucylcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0pXG4gIH1cblxuICAvLyBpZiBBTlkgb2YgdGhlIHNldHMgbWF0Y2ggQUxMIG9mIGl0cyBjb21wYXJhdG9ycywgdGhlbiBwYXNzXG4gIHRlc3QgKHZlcnNpb24pIHtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmVyc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZlcnNpb24gPSBuZXcgU2VtVmVyKHZlcnNpb24sIHRoaXMub3B0aW9ucylcbiAgICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0ZXN0U2V0KHRoaXMuc2V0W2ldLCB2ZXJzaW9uLCB0aGlzLm9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmFuZ2VcblxuY29uc3QgTFJVID0gcmVxdWlyZSgnbHJ1LWNhY2hlJylcbmNvbnN0IGNhY2hlID0gbmV3IExSVSh7IG1heDogMTAwMCB9KVxuXG5jb25zdCBwYXJzZU9wdGlvbnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9wYXJzZS1vcHRpb25zJylcbmNvbnN0IENvbXBhcmF0b3IgPSByZXF1aXJlKCcuL2NvbXBhcmF0b3InKVxuY29uc3QgZGVidWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9kZWJ1ZycpXG5jb25zdCBTZW1WZXIgPSByZXF1aXJlKCcuL3NlbXZlcicpXG5jb25zdCB7XG4gIHNhZmVSZTogcmUsXG4gIHQsXG4gIGNvbXBhcmF0b3JUcmltUmVwbGFjZSxcbiAgdGlsZGVUcmltUmVwbGFjZSxcbiAgY2FyZXRUcmltUmVwbGFjZSxcbn0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9yZScpXG5jb25zdCB7IEZMQUdfSU5DTFVERV9QUkVSRUxFQVNFLCBGTEFHX0xPT1NFIH0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9jb25zdGFudHMnKVxuXG5jb25zdCBpc051bGxTZXQgPSBjID0+IGMudmFsdWUgPT09ICc8MC4wLjAtMCdcbmNvbnN0IGlzQW55ID0gYyA9PiBjLnZhbHVlID09PSAnJ1xuXG4vLyB0YWtlIGEgc2V0IG9mIGNvbXBhcmF0b3JzIGFuZCBkZXRlcm1pbmUgd2hldGhlciB0aGVyZVxuLy8gZXhpc3RzIGEgdmVyc2lvbiB3aGljaCBjYW4gc2F0aXNmeSBpdFxuY29uc3QgaXNTYXRpc2ZpYWJsZSA9IChjb21wYXJhdG9ycywgb3B0aW9ucykgPT4ge1xuICBsZXQgcmVzdWx0ID0gdHJ1ZVxuICBjb25zdCByZW1haW5pbmdDb21wYXJhdG9ycyA9IGNvbXBhcmF0b3JzLnNsaWNlKClcbiAgbGV0IHRlc3RDb21wYXJhdG9yID0gcmVtYWluaW5nQ29tcGFyYXRvcnMucG9wKClcblxuICB3aGlsZSAocmVzdWx0ICYmIHJlbWFpbmluZ0NvbXBhcmF0b3JzLmxlbmd0aCkge1xuICAgIHJlc3VsdCA9IHJlbWFpbmluZ0NvbXBhcmF0b3JzLmV2ZXJ5KChvdGhlckNvbXBhcmF0b3IpID0+IHtcbiAgICAgIHJldHVybiB0ZXN0Q29tcGFyYXRvci5pbnRlcnNlY3RzKG90aGVyQ29tcGFyYXRvciwgb3B0aW9ucylcbiAgICB9KVxuXG4gICAgdGVzdENvbXBhcmF0b3IgPSByZW1haW5pbmdDb21wYXJhdG9ycy5wb3AoKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vLyBjb21wcmlzZWQgb2YgeHJhbmdlcywgdGlsZGVzLCBzdGFycywgYW5kIGd0bHQncyBhdCB0aGlzIHBvaW50LlxuLy8gYWxyZWFkeSByZXBsYWNlZCB0aGUgaHlwaGVuIHJhbmdlc1xuLy8gdHVybiBpbnRvIGEgc2V0IG9mIEpVU1QgY29tcGFyYXRvcnMuXG5jb25zdCBwYXJzZUNvbXBhcmF0b3IgPSAoY29tcCwgb3B0aW9ucykgPT4ge1xuICBkZWJ1ZygnY29tcCcsIGNvbXAsIG9wdGlvbnMpXG4gIGNvbXAgPSByZXBsYWNlQ2FyZXRzKGNvbXAsIG9wdGlvbnMpXG4gIGRlYnVnKCdjYXJldCcsIGNvbXApXG4gIGNvbXAgPSByZXBsYWNlVGlsZGVzKGNvbXAsIG9wdGlvbnMpXG4gIGRlYnVnKCd0aWxkZXMnLCBjb21wKVxuICBjb21wID0gcmVwbGFjZVhSYW5nZXMoY29tcCwgb3B0aW9ucylcbiAgZGVidWcoJ3hyYW5nZScsIGNvbXApXG4gIGNvbXAgPSByZXBsYWNlU3RhcnMoY29tcCwgb3B0aW9ucylcbiAgZGVidWcoJ3N0YXJzJywgY29tcClcbiAgcmV0dXJuIGNvbXBcbn1cblxuY29uc3QgaXNYID0gaWQgPT4gIWlkIHx8IGlkLnRvTG93ZXJDYXNlKCkgPT09ICd4JyB8fCBpZCA9PT0gJyonXG5cbi8vIH4sIH4+IC0tPiAqIChhbnksIGtpbmRhIHNpbGx5KVxuLy8gfjIsIH4yLngsIH4yLngueCwgfj4yLCB+PjIueCB+PjIueC54IC0tPiA+PTIuMC4wIDwzLjAuMC0wXG4vLyB+Mi4wLCB+Mi4wLngsIH4+Mi4wLCB+PjIuMC54IC0tPiA+PTIuMC4wIDwyLjEuMC0wXG4vLyB+MS4yLCB+MS4yLngsIH4+MS4yLCB+PjEuMi54IC0tPiA+PTEuMi4wIDwxLjMuMC0wXG4vLyB+MS4yLjMsIH4+MS4yLjMgLS0+ID49MS4yLjMgPDEuMy4wLTBcbi8vIH4xLjIuMCwgfj4xLjIuMCAtLT4gPj0xLjIuMCA8MS4zLjAtMFxuLy8gfjAuMC4xIC0tPiA+PTAuMC4xIDwwLjEuMC0wXG5jb25zdCByZXBsYWNlVGlsZGVzID0gKGNvbXAsIG9wdGlvbnMpID0+IHtcbiAgcmV0dXJuIGNvbXBcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAubWFwKChjKSA9PiByZXBsYWNlVGlsZGUoYywgb3B0aW9ucykpXG4gICAgLmpvaW4oJyAnKVxufVxuXG5jb25zdCByZXBsYWNlVGlsZGUgPSAoY29tcCwgb3B0aW9ucykgPT4ge1xuICBjb25zdCByID0gb3B0aW9ucy5sb29zZSA/IHJlW3QuVElMREVMT09TRV0gOiByZVt0LlRJTERFXVxuICByZXR1cm4gY29tcC5yZXBsYWNlKHIsIChfLCBNLCBtLCBwLCBwcikgPT4ge1xuICAgIGRlYnVnKCd0aWxkZScsIGNvbXAsIF8sIE0sIG0sIHAsIHByKVxuICAgIGxldCByZXRcblxuICAgIGlmIChpc1goTSkpIHtcbiAgICAgIHJldCA9ICcnXG4gICAgfSBlbHNlIGlmIChpc1gobSkpIHtcbiAgICAgIHJldCA9IGA+PSR7TX0uMC4wIDwkeytNICsgMX0uMC4wLTBgXG4gICAgfSBlbHNlIGlmIChpc1gocCkpIHtcbiAgICAgIC8vIH4xLjIgPT0gPj0xLjIuMCA8MS4zLjAtMFxuICAgICAgcmV0ID0gYD49JHtNfS4ke219LjAgPCR7TX0uJHsrbSArIDF9LjAtMGBcbiAgICB9IGVsc2UgaWYgKHByKSB7XG4gICAgICBkZWJ1ZygncmVwbGFjZVRpbGRlIHByJywgcHIpXG4gICAgICByZXQgPSBgPj0ke019LiR7bX0uJHtwfS0ke3ByXG4gICAgICB9IDwke019LiR7K20gKyAxfS4wLTBgXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIH4xLjIuMyA9PSA+PTEuMi4zIDwxLjMuMC0wXG4gICAgICByZXQgPSBgPj0ke019LiR7bX0uJHtwXG4gICAgICB9IDwke019LiR7K20gKyAxfS4wLTBgXG4gICAgfVxuXG4gICAgZGVidWcoJ3RpbGRlIHJldHVybicsIHJldClcbiAgICByZXR1cm4gcmV0XG4gIH0pXG59XG5cbi8vIF4gLS0+ICogKGFueSwga2luZGEgc2lsbHkpXG4vLyBeMiwgXjIueCwgXjIueC54IC0tPiA+PTIuMC4wIDwzLjAuMC0wXG4vLyBeMi4wLCBeMi4wLnggLS0+ID49Mi4wLjAgPDMuMC4wLTBcbi8vIF4xLjIsIF4xLjIueCAtLT4gPj0xLjIuMCA8Mi4wLjAtMFxuLy8gXjEuMi4zIC0tPiA+PTEuMi4zIDwyLjAuMC0wXG4vLyBeMS4yLjAgLS0+ID49MS4yLjAgPDIuMC4wLTBcbi8vIF4wLjAuMSAtLT4gPj0wLjAuMSA8MC4wLjItMFxuLy8gXjAuMS4wIC0tPiA+PTAuMS4wIDwwLjIuMC0wXG5jb25zdCByZXBsYWNlQ2FyZXRzID0gKGNvbXAsIG9wdGlvbnMpID0+IHtcbiAgcmV0dXJuIGNvbXBcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAubWFwKChjKSA9PiByZXBsYWNlQ2FyZXQoYywgb3B0aW9ucykpXG4gICAgLmpvaW4oJyAnKVxufVxuXG5jb25zdCByZXBsYWNlQ2FyZXQgPSAoY29tcCwgb3B0aW9ucykgPT4ge1xuICBkZWJ1ZygnY2FyZXQnLCBjb21wLCBvcHRpb25zKVxuICBjb25zdCByID0gb3B0aW9ucy5sb29zZSA/IHJlW3QuQ0FSRVRMT09TRV0gOiByZVt0LkNBUkVUXVxuICBjb25zdCB6ID0gb3B0aW9ucy5pbmNsdWRlUHJlcmVsZWFzZSA/ICctMCcgOiAnJ1xuICByZXR1cm4gY29tcC5yZXBsYWNlKHIsIChfLCBNLCBtLCBwLCBwcikgPT4ge1xuICAgIGRlYnVnKCdjYXJldCcsIGNvbXAsIF8sIE0sIG0sIHAsIHByKVxuICAgIGxldCByZXRcblxuICAgIGlmIChpc1goTSkpIHtcbiAgICAgIHJldCA9ICcnXG4gICAgfSBlbHNlIGlmIChpc1gobSkpIHtcbiAgICAgIHJldCA9IGA+PSR7TX0uMC4wJHt6fSA8JHsrTSArIDF9LjAuMC0wYFxuICAgIH0gZWxzZSBpZiAoaXNYKHApKSB7XG4gICAgICBpZiAoTSA9PT0gJzAnKSB7XG4gICAgICAgIHJldCA9IGA+PSR7TX0uJHttfS4wJHt6fSA8JHtNfS4keyttICsgMX0uMC0wYFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0ID0gYD49JHtNfS4ke219LjAke3p9IDwkeytNICsgMX0uMC4wLTBgXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcikge1xuICAgICAgZGVidWcoJ3JlcGxhY2VDYXJldCBwcicsIHByKVxuICAgICAgaWYgKE0gPT09ICcwJykge1xuICAgICAgICBpZiAobSA9PT0gJzAnKSB7XG4gICAgICAgICAgcmV0ID0gYD49JHtNfS4ke219LiR7cH0tJHtwclxuICAgICAgICAgIH0gPCR7TX0uJHttfS4keytwICsgMX0tMGBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSBgPj0ke019LiR7bX0uJHtwfS0ke3ByXG4gICAgICAgICAgfSA8JHtNfS4keyttICsgMX0uMC0wYFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQgPSBgPj0ke019LiR7bX0uJHtwfS0ke3ByXG4gICAgICAgIH0gPCR7K00gKyAxfS4wLjAtMGBcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ25vIHByJylcbiAgICAgIGlmIChNID09PSAnMCcpIHtcbiAgICAgICAgaWYgKG0gPT09ICcwJykge1xuICAgICAgICAgIHJldCA9IGA+PSR7TX0uJHttfS4ke3BcbiAgICAgICAgICB9JHt6fSA8JHtNfS4ke219LiR7K3AgKyAxfS0wYFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldCA9IGA+PSR7TX0uJHttfS4ke3BcbiAgICAgICAgICB9JHt6fSA8JHtNfS4keyttICsgMX0uMC0wYFxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQgPSBgPj0ke019LiR7bX0uJHtwXG4gICAgICAgIH0gPCR7K00gKyAxfS4wLjAtMGBcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWJ1ZygnY2FyZXQgcmV0dXJuJywgcmV0KVxuICAgIHJldHVybiByZXRcbiAgfSlcbn1cblxuY29uc3QgcmVwbGFjZVhSYW5nZXMgPSAoY29tcCwgb3B0aW9ucykgPT4ge1xuICBkZWJ1ZygncmVwbGFjZVhSYW5nZXMnLCBjb21wLCBvcHRpb25zKVxuICByZXR1cm4gY29tcFxuICAgIC5zcGxpdCgvXFxzKy8pXG4gICAgLm1hcCgoYykgPT4gcmVwbGFjZVhSYW5nZShjLCBvcHRpb25zKSlcbiAgICAuam9pbignICcpXG59XG5cbmNvbnN0IHJlcGxhY2VYUmFuZ2UgPSAoY29tcCwgb3B0aW9ucykgPT4ge1xuICBjb21wID0gY29tcC50cmltKClcbiAgY29uc3QgciA9IG9wdGlvbnMubG9vc2UgPyByZVt0LlhSQU5HRUxPT1NFXSA6IHJlW3QuWFJBTkdFXVxuICByZXR1cm4gY29tcC5yZXBsYWNlKHIsIChyZXQsIGd0bHQsIE0sIG0sIHAsIHByKSA9PiB7XG4gICAgZGVidWcoJ3hSYW5nZScsIGNvbXAsIHJldCwgZ3RsdCwgTSwgbSwgcCwgcHIpXG4gICAgY29uc3QgeE0gPSBpc1goTSlcbiAgICBjb25zdCB4bSA9IHhNIHx8IGlzWChtKVxuICAgIGNvbnN0IHhwID0geG0gfHwgaXNYKHApXG4gICAgY29uc3QgYW55WCA9IHhwXG5cbiAgICBpZiAoZ3RsdCA9PT0gJz0nICYmIGFueVgpIHtcbiAgICAgIGd0bHQgPSAnJ1xuICAgIH1cblxuICAgIC8vIGlmIHdlJ3JlIGluY2x1ZGluZyBwcmVyZWxlYXNlcyBpbiB0aGUgbWF0Y2gsIHRoZW4gd2UgbmVlZFxuICAgIC8vIHRvIGZpeCB0aGlzIHRvIC0wLCB0aGUgbG93ZXN0IHBvc3NpYmxlIHByZXJlbGVhc2UgdmFsdWVcbiAgICBwciA9IG9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UgPyAnLTAnIDogJydcblxuICAgIGlmICh4TSkge1xuICAgICAgaWYgKGd0bHQgPT09ICc+JyB8fCBndGx0ID09PSAnPCcpIHtcbiAgICAgICAgLy8gbm90aGluZyBpcyBhbGxvd2VkXG4gICAgICAgIHJldCA9ICc8MC4wLjAtMCdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vdGhpbmcgaXMgZm9yYmlkZGVuXG4gICAgICAgIHJldCA9ICcqJ1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZ3RsdCAmJiBhbnlYKSB7XG4gICAgICAvLyB3ZSBrbm93IHBhdGNoIGlzIGFuIHgsIGJlY2F1c2Ugd2UgaGF2ZSBhbnkgeCBhdCBhbGwuXG4gICAgICAvLyByZXBsYWNlIFggd2l0aCAwXG4gICAgICBpZiAoeG0pIHtcbiAgICAgICAgbSA9IDBcbiAgICAgIH1cbiAgICAgIHAgPSAwXG5cbiAgICAgIGlmIChndGx0ID09PSAnPicpIHtcbiAgICAgICAgLy8gPjEgPT4gPj0yLjAuMFxuICAgICAgICAvLyA+MS4yID0+ID49MS4zLjBcbiAgICAgICAgZ3RsdCA9ICc+PSdcbiAgICAgICAgaWYgKHhtKSB7XG4gICAgICAgICAgTSA9ICtNICsgMVxuICAgICAgICAgIG0gPSAwXG4gICAgICAgICAgcCA9IDBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtID0gK20gKyAxXG4gICAgICAgICAgcCA9IDBcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChndGx0ID09PSAnPD0nKSB7XG4gICAgICAgIC8vIDw9MC43LnggaXMgYWN0dWFsbHkgPDAuOC4wLCBzaW5jZSBhbnkgMC43Lnggc2hvdWxkXG4gICAgICAgIC8vIHBhc3MuICBTaW1pbGFybHksIDw9Ny54IGlzIGFjdHVhbGx5IDw4LjAuMCwgZXRjLlxuICAgICAgICBndGx0ID0gJzwnXG4gICAgICAgIGlmICh4bSkge1xuICAgICAgICAgIE0gPSArTSArIDFcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtID0gK20gKyAxXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGd0bHQgPT09ICc8Jykge1xuICAgICAgICBwciA9ICctMCdcbiAgICAgIH1cblxuICAgICAgcmV0ID0gYCR7Z3RsdCArIE19LiR7bX0uJHtwfSR7cHJ9YFxuICAgIH0gZWxzZSBpZiAoeG0pIHtcbiAgICAgIHJldCA9IGA+PSR7TX0uMC4wJHtwcn0gPCR7K00gKyAxfS4wLjAtMGBcbiAgICB9IGVsc2UgaWYgKHhwKSB7XG4gICAgICByZXQgPSBgPj0ke019LiR7bX0uMCR7cHJcbiAgICAgIH0gPCR7TX0uJHsrbSArIDF9LjAtMGBcbiAgICB9XG5cbiAgICBkZWJ1ZygneFJhbmdlIHJldHVybicsIHJldClcblxuICAgIHJldHVybiByZXRcbiAgfSlcbn1cblxuLy8gQmVjYXVzZSAqIGlzIEFORC1lZCB3aXRoIGV2ZXJ5dGhpbmcgZWxzZSBpbiB0aGUgY29tcGFyYXRvcixcbi8vIGFuZCAnJyBtZWFucyBcImFueSB2ZXJzaW9uXCIsIGp1c3QgcmVtb3ZlIHRoZSAqcyBlbnRpcmVseS5cbmNvbnN0IHJlcGxhY2VTdGFycyA9IChjb21wLCBvcHRpb25zKSA9PiB7XG4gIGRlYnVnKCdyZXBsYWNlU3RhcnMnLCBjb21wLCBvcHRpb25zKVxuICAvLyBMb29zZW5lc3MgaXMgaWdub3JlZCBoZXJlLiAgc3RhciBpcyBhbHdheXMgYXMgbG9vc2UgYXMgaXQgZ2V0cyFcbiAgcmV0dXJuIGNvbXBcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2UocmVbdC5TVEFSXSwgJycpXG59XG5cbmNvbnN0IHJlcGxhY2VHVEUwID0gKGNvbXAsIG9wdGlvbnMpID0+IHtcbiAgZGVidWcoJ3JlcGxhY2VHVEUwJywgY29tcCwgb3B0aW9ucylcbiAgcmV0dXJuIGNvbXBcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2UocmVbb3B0aW9ucy5pbmNsdWRlUHJlcmVsZWFzZSA/IHQuR1RFMFBSRSA6IHQuR1RFMF0sICcnKVxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHBhc3NlZCB0byBzdHJpbmcucmVwbGFjZShyZVt0LkhZUEhFTlJBTkdFXSlcbi8vIE0sIG0sIHBhdGNoLCBwcmVyZWxlYXNlLCBidWlsZFxuLy8gMS4yIC0gMy40LjUgPT4gPj0xLjIuMCA8PTMuNC41XG4vLyAxLjIuMyAtIDMuNCA9PiA+PTEuMi4wIDwzLjUuMC0wIEFueSAzLjQueCB3aWxsIGRvXG4vLyAxLjIgLSAzLjQgPT4gPj0xLjIuMCA8My41LjAtMFxuY29uc3QgaHlwaGVuUmVwbGFjZSA9IGluY1ByID0+ICgkMCxcbiAgZnJvbSwgZk0sIGZtLCBmcCwgZnByLCBmYixcbiAgdG8sIHRNLCB0bSwgdHAsIHRwciwgdGIpID0+IHtcbiAgaWYgKGlzWChmTSkpIHtcbiAgICBmcm9tID0gJydcbiAgfSBlbHNlIGlmIChpc1goZm0pKSB7XG4gICAgZnJvbSA9IGA+PSR7Zk19LjAuMCR7aW5jUHIgPyAnLTAnIDogJyd9YFxuICB9IGVsc2UgaWYgKGlzWChmcCkpIHtcbiAgICBmcm9tID0gYD49JHtmTX0uJHtmbX0uMCR7aW5jUHIgPyAnLTAnIDogJyd9YFxuICB9IGVsc2UgaWYgKGZwcikge1xuICAgIGZyb20gPSBgPj0ke2Zyb219YFxuICB9IGVsc2Uge1xuICAgIGZyb20gPSBgPj0ke2Zyb219JHtpbmNQciA/ICctMCcgOiAnJ31gXG4gIH1cblxuICBpZiAoaXNYKHRNKSkge1xuICAgIHRvID0gJydcbiAgfSBlbHNlIGlmIChpc1godG0pKSB7XG4gICAgdG8gPSBgPCR7K3RNICsgMX0uMC4wLTBgXG4gIH0gZWxzZSBpZiAoaXNYKHRwKSkge1xuICAgIHRvID0gYDwke3RNfS4keyt0bSArIDF9LjAtMGBcbiAgfSBlbHNlIGlmICh0cHIpIHtcbiAgICB0byA9IGA8PSR7dE19LiR7dG19LiR7dHB9LSR7dHByfWBcbiAgfSBlbHNlIGlmIChpbmNQcikge1xuICAgIHRvID0gYDwke3RNfS4ke3RtfS4keyt0cCArIDF9LTBgXG4gIH0gZWxzZSB7XG4gICAgdG8gPSBgPD0ke3RvfWBcbiAgfVxuXG4gIHJldHVybiBgJHtmcm9tfSAke3RvfWAudHJpbSgpXG59XG5cbmNvbnN0IHRlc3RTZXQgPSAoc2V0LCB2ZXJzaW9uLCBvcHRpb25zKSA9PiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFzZXRbaV0udGVzdCh2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgaWYgKHZlcnNpb24ucHJlcmVsZWFzZS5sZW5ndGggJiYgIW9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UpIHtcbiAgICAvLyBGaW5kIHRoZSBzZXQgb2YgdmVyc2lvbnMgdGhhdCBhcmUgYWxsb3dlZCB0byBoYXZlIHByZXJlbGVhc2VzXG4gICAgLy8gRm9yIGV4YW1wbGUsIF4xLjIuMy1wci4xIGRlc3VnYXJzIHRvID49MS4yLjMtcHIuMSA8Mi4wLjBcbiAgICAvLyBUaGF0IHNob3VsZCBhbGxvdyBgMS4yLjMtcHIuMmAgdG8gcGFzcy5cbiAgICAvLyBIb3dldmVyLCBgMS4yLjQtYWxwaGEubm90cmVhZHlgIHNob3VsZCBOT1QgYmUgYWxsb3dlZCxcbiAgICAvLyBldmVuIHRob3VnaCBpdCdzIHdpdGhpbiB0aGUgcmFuZ2Ugc2V0IGJ5IHRoZSBjb21wYXJhdG9ycy5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldC5sZW5ndGg7IGkrKykge1xuICAgICAgZGVidWcoc2V0W2ldLnNlbXZlcilcbiAgICAgIGlmIChzZXRbaV0uc2VtdmVyID09PSBDb21wYXJhdG9yLkFOWSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2V0W2ldLnNlbXZlci5wcmVyZWxlYXNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgYWxsb3dlZCA9IHNldFtpXS5zZW12ZXJcbiAgICAgICAgaWYgKGFsbG93ZWQubWFqb3IgPT09IHZlcnNpb24ubWFqb3IgJiZcbiAgICAgICAgICAgIGFsbG93ZWQubWlub3IgPT09IHZlcnNpb24ubWlub3IgJiZcbiAgICAgICAgICAgIGFsbG93ZWQucGF0Y2ggPT09IHZlcnNpb24ucGF0Y2gpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmVyc2lvbiBoYXMgYSAtcHJlLCBidXQgaXQncyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGxpa2UuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuIiwgImNvbnN0IEFOWSA9IFN5bWJvbCgnU2VtVmVyIEFOWScpXG4vLyBob2lzdGVkIGNsYXNzIGZvciBjeWNsaWMgZGVwZW5kZW5jeVxuY2xhc3MgQ29tcGFyYXRvciB7XG4gIHN0YXRpYyBnZXQgQU5ZICgpIHtcbiAgICByZXR1cm4gQU5ZXG4gIH1cblxuICBjb25zdHJ1Y3RvciAoY29tcCwgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBwYXJzZU9wdGlvbnMob3B0aW9ucylcblxuICAgIGlmIChjb21wIGluc3RhbmNlb2YgQ29tcGFyYXRvcikge1xuICAgICAgaWYgKGNvbXAubG9vc2UgPT09ICEhb3B0aW9ucy5sb29zZSkge1xuICAgICAgICByZXR1cm4gY29tcFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcCA9IGNvbXAudmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wID0gY29tcC50cmltKCkuc3BsaXQoL1xccysvKS5qb2luKCcgJylcbiAgICBkZWJ1ZygnY29tcGFyYXRvcicsIGNvbXAsIG9wdGlvbnMpXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMubG9vc2UgPSAhIW9wdGlvbnMubG9vc2VcbiAgICB0aGlzLnBhcnNlKGNvbXApXG5cbiAgICBpZiAodGhpcy5zZW12ZXIgPT09IEFOWSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wZXJhdG9yICsgdGhpcy5zZW12ZXIudmVyc2lvblxuICAgIH1cblxuICAgIGRlYnVnKCdjb21wJywgdGhpcylcbiAgfVxuXG4gIHBhcnNlIChjb21wKSB7XG4gICAgY29uc3QgciA9IHRoaXMub3B0aW9ucy5sb29zZSA/IHJlW3QuQ09NUEFSQVRPUkxPT1NFXSA6IHJlW3QuQ09NUEFSQVRPUl1cbiAgICBjb25zdCBtID0gY29tcC5tYXRjaChyKVxuXG4gICAgaWYgKCFtKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGNvbXBhcmF0b3I6ICR7Y29tcH1gKVxuICAgIH1cblxuICAgIHRoaXMub3BlcmF0b3IgPSBtWzFdICE9PSB1bmRlZmluZWQgPyBtWzFdIDogJydcbiAgICBpZiAodGhpcy5vcGVyYXRvciA9PT0gJz0nKSB7XG4gICAgICB0aGlzLm9wZXJhdG9yID0gJydcbiAgICB9XG5cbiAgICAvLyBpZiBpdCBsaXRlcmFsbHkgaXMganVzdCAnPicgb3IgJycgdGhlbiBhbGxvdyBhbnl0aGluZy5cbiAgICBpZiAoIW1bMl0pIHtcbiAgICAgIHRoaXMuc2VtdmVyID0gQU5ZXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VtdmVyID0gbmV3IFNlbVZlcihtWzJdLCB0aGlzLm9wdGlvbnMubG9vc2UpXG4gICAgfVxuICB9XG5cbiAgdG9TdHJpbmcgKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlXG4gIH1cblxuICB0ZXN0ICh2ZXJzaW9uKSB7XG4gICAgZGVidWcoJ0NvbXBhcmF0b3IudGVzdCcsIHZlcnNpb24sIHRoaXMub3B0aW9ucy5sb29zZSlcblxuICAgIGlmICh0aGlzLnNlbXZlciA9PT0gQU5ZIHx8IHZlcnNpb24gPT09IEFOWSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZlcnNpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2ZXJzaW9uID0gbmV3IFNlbVZlcih2ZXJzaW9uLCB0aGlzLm9wdGlvbnMpXG4gICAgICB9IGNhdGNoIChlcikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY21wKHZlcnNpb24sIHRoaXMub3BlcmF0b3IsIHRoaXMuc2VtdmVyLCB0aGlzLm9wdGlvbnMpXG4gIH1cblxuICBpbnRlcnNlY3RzIChjb21wLCBvcHRpb25zKSB7XG4gICAgaWYgKCEoY29tcCBpbnN0YW5jZW9mIENvbXBhcmF0b3IpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdhIENvbXBhcmF0b3IgaXMgcmVxdWlyZWQnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9wZXJhdG9yID09PSAnJykge1xuICAgICAgaWYgKHRoaXMudmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFJhbmdlKGNvbXAudmFsdWUsIG9wdGlvbnMpLnRlc3QodGhpcy52YWx1ZSlcbiAgICB9IGVsc2UgaWYgKGNvbXAub3BlcmF0b3IgPT09ICcnKSB7XG4gICAgICBpZiAoY29tcC52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUmFuZ2UodGhpcy52YWx1ZSwgb3B0aW9ucykudGVzdChjb21wLnNlbXZlcilcbiAgICB9XG5cbiAgICBvcHRpb25zID0gcGFyc2VPcHRpb25zKG9wdGlvbnMpXG5cbiAgICAvLyBTcGVjaWFsIGNhc2VzIHdoZXJlIG5vdGhpbmcgY2FuIHBvc3NpYmx5IGJlIGxvd2VyXG4gICAgaWYgKG9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UgJiZcbiAgICAgICh0aGlzLnZhbHVlID09PSAnPDAuMC4wLTAnIHx8IGNvbXAudmFsdWUgPT09ICc8MC4wLjAtMCcpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLmluY2x1ZGVQcmVyZWxlYXNlICYmXG4gICAgICAodGhpcy52YWx1ZS5zdGFydHNXaXRoKCc8MC4wLjAnKSB8fCBjb21wLnZhbHVlLnN0YXJ0c1dpdGgoJzwwLjAuMCcpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gU2FtZSBkaXJlY3Rpb24gaW5jcmVhc2luZyAoPiBvciA+PSlcbiAgICBpZiAodGhpcy5vcGVyYXRvci5zdGFydHNXaXRoKCc+JykgJiYgY29tcC5vcGVyYXRvci5zdGFydHNXaXRoKCc+JykpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIFNhbWUgZGlyZWN0aW9uIGRlY3JlYXNpbmcgKDwgb3IgPD0pXG4gICAgaWYgKHRoaXMub3BlcmF0b3Iuc3RhcnRzV2l0aCgnPCcpICYmIGNvbXAub3BlcmF0b3Iuc3RhcnRzV2l0aCgnPCcpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICAvLyBzYW1lIFNlbVZlciBhbmQgYm90aCBzaWRlcyBhcmUgaW5jbHVzaXZlICg8PSBvciA+PSlcbiAgICBpZiAoXG4gICAgICAodGhpcy5zZW12ZXIudmVyc2lvbiA9PT0gY29tcC5zZW12ZXIudmVyc2lvbikgJiZcbiAgICAgIHRoaXMub3BlcmF0b3IuaW5jbHVkZXMoJz0nKSAmJiBjb21wLm9wZXJhdG9yLmluY2x1ZGVzKCc9JykpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIG9wcG9zaXRlIGRpcmVjdGlvbnMgbGVzcyB0aGFuXG4gICAgaWYgKGNtcCh0aGlzLnNlbXZlciwgJzwnLCBjb21wLnNlbXZlciwgb3B0aW9ucykgJiZcbiAgICAgIHRoaXMub3BlcmF0b3Iuc3RhcnRzV2l0aCgnPicpICYmIGNvbXAub3BlcmF0b3Iuc3RhcnRzV2l0aCgnPCcpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICAvLyBvcHBvc2l0ZSBkaXJlY3Rpb25zIGdyZWF0ZXIgdGhhblxuICAgIGlmIChjbXAodGhpcy5zZW12ZXIsICc+JywgY29tcC5zZW12ZXIsIG9wdGlvbnMpICYmXG4gICAgICB0aGlzLm9wZXJhdG9yLnN0YXJ0c1dpdGgoJzwnKSAmJiBjb21wLm9wZXJhdG9yLnN0YXJ0c1dpdGgoJz4nKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYXJhdG9yXG5cbmNvbnN0IHBhcnNlT3B0aW9ucyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3BhcnNlLW9wdGlvbnMnKVxuY29uc3QgeyBzYWZlUmU6IHJlLCB0IH0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9yZScpXG5jb25zdCBjbXAgPSByZXF1aXJlKCcuLi9mdW5jdGlvbnMvY21wJylcbmNvbnN0IGRlYnVnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvZGVidWcnKVxuY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi9zZW12ZXInKVxuY29uc3QgUmFuZ2UgPSByZXF1aXJlKCcuL3JhbmdlJylcbiIsICJjb25zdCBSYW5nZSA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvcmFuZ2UnKVxuY29uc3Qgc2F0aXNmaWVzID0gKHZlcnNpb24sIHJhbmdlLCBvcHRpb25zKSA9PiB7XG4gIHRyeSB7XG4gICAgcmFuZ2UgPSBuZXcgUmFuZ2UocmFuZ2UsIG9wdGlvbnMpXG4gIH0gY2F0Y2ggKGVyKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIHJhbmdlLnRlc3QodmVyc2lvbilcbn1cbm1vZHVsZS5leHBvcnRzID0gc2F0aXNmaWVzXG4iLCAiY29uc3QgUmFuZ2UgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3JhbmdlJylcblxuLy8gTW9zdGx5IGp1c3QgZm9yIHRlc3RpbmcgYW5kIGxlZ2FjeSBBUEkgcmVhc29uc1xuY29uc3QgdG9Db21wYXJhdG9ycyA9IChyYW5nZSwgb3B0aW9ucykgPT5cbiAgbmV3IFJhbmdlKHJhbmdlLCBvcHRpb25zKS5zZXRcbiAgICAubWFwKGNvbXAgPT4gY29tcC5tYXAoYyA9PiBjLnZhbHVlKS5qb2luKCcgJykudHJpbSgpLnNwbGl0KCcgJykpXG5cbm1vZHVsZS5leHBvcnRzID0gdG9Db21wYXJhdG9yc1xuIiwgImNvbnN0IFNlbVZlciA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvc2VtdmVyJylcbmNvbnN0IFJhbmdlID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9yYW5nZScpXG5cbmNvbnN0IG1heFNhdGlzZnlpbmcgPSAodmVyc2lvbnMsIHJhbmdlLCBvcHRpb25zKSA9PiB7XG4gIGxldCBtYXggPSBudWxsXG4gIGxldCBtYXhTViA9IG51bGxcbiAgbGV0IHJhbmdlT2JqID0gbnVsbFxuICB0cnkge1xuICAgIHJhbmdlT2JqID0gbmV3IFJhbmdlKHJhbmdlLCBvcHRpb25zKVxuICB9IGNhdGNoIChlcikge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgdmVyc2lvbnMuZm9yRWFjaCgodikgPT4ge1xuICAgIGlmIChyYW5nZU9iai50ZXN0KHYpKSB7XG4gICAgICAvLyBzYXRpc2ZpZXModiwgcmFuZ2UsIG9wdGlvbnMpXG4gICAgICBpZiAoIW1heCB8fCBtYXhTVi5jb21wYXJlKHYpID09PSAtMSkge1xuICAgICAgICAvLyBjb21wYXJlKG1heCwgdiwgdHJ1ZSlcbiAgICAgICAgbWF4ID0gdlxuICAgICAgICBtYXhTViA9IG5ldyBTZW1WZXIobWF4LCBvcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIG1heFxufVxubW9kdWxlLmV4cG9ydHMgPSBtYXhTYXRpc2Z5aW5nXG4iLCAiY29uc3QgU2VtVmVyID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgUmFuZ2UgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3JhbmdlJylcbmNvbnN0IG1pblNhdGlzZnlpbmcgPSAodmVyc2lvbnMsIHJhbmdlLCBvcHRpb25zKSA9PiB7XG4gIGxldCBtaW4gPSBudWxsXG4gIGxldCBtaW5TViA9IG51bGxcbiAgbGV0IHJhbmdlT2JqID0gbnVsbFxuICB0cnkge1xuICAgIHJhbmdlT2JqID0gbmV3IFJhbmdlKHJhbmdlLCBvcHRpb25zKVxuICB9IGNhdGNoIChlcikge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgdmVyc2lvbnMuZm9yRWFjaCgodikgPT4ge1xuICAgIGlmIChyYW5nZU9iai50ZXN0KHYpKSB7XG4gICAgICAvLyBzYXRpc2ZpZXModiwgcmFuZ2UsIG9wdGlvbnMpXG4gICAgICBpZiAoIW1pbiB8fCBtaW5TVi5jb21wYXJlKHYpID09PSAxKSB7XG4gICAgICAgIC8vIGNvbXBhcmUobWluLCB2LCB0cnVlKVxuICAgICAgICBtaW4gPSB2XG4gICAgICAgIG1pblNWID0gbmV3IFNlbVZlcihtaW4sIG9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuICByZXR1cm4gbWluXG59XG5tb2R1bGUuZXhwb3J0cyA9IG1pblNhdGlzZnlpbmdcbiIsICJjb25zdCBTZW1WZXIgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3NlbXZlcicpXG5jb25zdCBSYW5nZSA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvcmFuZ2UnKVxuY29uc3QgZ3QgPSByZXF1aXJlKCcuLi9mdW5jdGlvbnMvZ3QnKVxuXG5jb25zdCBtaW5WZXJzaW9uID0gKHJhbmdlLCBsb29zZSkgPT4ge1xuICByYW5nZSA9IG5ldyBSYW5nZShyYW5nZSwgbG9vc2UpXG5cbiAgbGV0IG1pbnZlciA9IG5ldyBTZW1WZXIoJzAuMC4wJylcbiAgaWYgKHJhbmdlLnRlc3QobWludmVyKSkge1xuICAgIHJldHVybiBtaW52ZXJcbiAgfVxuXG4gIG1pbnZlciA9IG5ldyBTZW1WZXIoJzAuMC4wLTAnKVxuICBpZiAocmFuZ2UudGVzdChtaW52ZXIpKSB7XG4gICAgcmV0dXJuIG1pbnZlclxuICB9XG5cbiAgbWludmVyID0gbnVsbFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhbmdlLnNldC5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNvbXBhcmF0b3JzID0gcmFuZ2Uuc2V0W2ldXG5cbiAgICBsZXQgc2V0TWluID0gbnVsbFxuICAgIGNvbXBhcmF0b3JzLmZvckVhY2goKGNvbXBhcmF0b3IpID0+IHtcbiAgICAgIC8vIENsb25lIHRvIGF2b2lkIG1hbmlwdWxhdGluZyB0aGUgY29tcGFyYXRvcidzIHNlbXZlciBvYmplY3QuXG4gICAgICBjb25zdCBjb21wdmVyID0gbmV3IFNlbVZlcihjb21wYXJhdG9yLnNlbXZlci52ZXJzaW9uKVxuICAgICAgc3dpdGNoIChjb21wYXJhdG9yLm9wZXJhdG9yKSB7XG4gICAgICAgIGNhc2UgJz4nOlxuICAgICAgICAgIGlmIChjb21wdmVyLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb21wdmVyLnBhdGNoKytcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcHZlci5wcmVyZWxlYXNlLnB1c2goMClcbiAgICAgICAgICB9XG4gICAgICAgICAgY29tcHZlci5yYXcgPSBjb21wdmVyLmZvcm1hdCgpXG4gICAgICAgICAgLyogZmFsbHRocm91Z2ggKi9cbiAgICAgICAgY2FzZSAnJzpcbiAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICAgIGlmICghc2V0TWluIHx8IGd0KGNvbXB2ZXIsIHNldE1pbikpIHtcbiAgICAgICAgICAgIHNldE1pbiA9IGNvbXB2ZXJcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnPCc6XG4gICAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgICAvKiBJZ25vcmUgbWF4aW11bSB2ZXJzaW9ucyAqL1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG9wZXJhdGlvbjogJHtjb21wYXJhdG9yLm9wZXJhdG9yfWApXG4gICAgICB9XG4gICAgfSlcbiAgICBpZiAoc2V0TWluICYmICghbWludmVyIHx8IGd0KG1pbnZlciwgc2V0TWluKSkpIHtcbiAgICAgIG1pbnZlciA9IHNldE1pblxuICAgIH1cbiAgfVxuXG4gIGlmIChtaW52ZXIgJiYgcmFuZ2UudGVzdChtaW52ZXIpKSB7XG4gICAgcmV0dXJuIG1pbnZlclxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cbm1vZHVsZS5leHBvcnRzID0gbWluVmVyc2lvblxuIiwgImNvbnN0IFJhbmdlID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9yYW5nZScpXG5jb25zdCB2YWxpZFJhbmdlID0gKHJhbmdlLCBvcHRpb25zKSA9PiB7XG4gIHRyeSB7XG4gICAgLy8gUmV0dXJuICcqJyBpbnN0ZWFkIG9mICcnIHNvIHRoYXQgdHJ1dGhpbmVzcyB3b3Jrcy5cbiAgICAvLyBUaGlzIHdpbGwgdGhyb3cgaWYgaXQncyBpbnZhbGlkIGFueXdheVxuICAgIHJldHVybiBuZXcgUmFuZ2UocmFuZ2UsIG9wdGlvbnMpLnJhbmdlIHx8ICcqJ1xuICB9IGNhdGNoIChlcikge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gdmFsaWRSYW5nZVxuIiwgImNvbnN0IFNlbVZlciA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvc2VtdmVyJylcbmNvbnN0IENvbXBhcmF0b3IgPSByZXF1aXJlKCcuLi9jbGFzc2VzL2NvbXBhcmF0b3InKVxuY29uc3QgeyBBTlkgfSA9IENvbXBhcmF0b3JcbmNvbnN0IFJhbmdlID0gcmVxdWlyZSgnLi4vY2xhc3Nlcy9yYW5nZScpXG5jb25zdCBzYXRpc2ZpZXMgPSByZXF1aXJlKCcuLi9mdW5jdGlvbnMvc2F0aXNmaWVzJylcbmNvbnN0IGd0ID0gcmVxdWlyZSgnLi4vZnVuY3Rpb25zL2d0JylcbmNvbnN0IGx0ID0gcmVxdWlyZSgnLi4vZnVuY3Rpb25zL2x0JylcbmNvbnN0IGx0ZSA9IHJlcXVpcmUoJy4uL2Z1bmN0aW9ucy9sdGUnKVxuY29uc3QgZ3RlID0gcmVxdWlyZSgnLi4vZnVuY3Rpb25zL2d0ZScpXG5cbmNvbnN0IG91dHNpZGUgPSAodmVyc2lvbiwgcmFuZ2UsIGhpbG8sIG9wdGlvbnMpID0+IHtcbiAgdmVyc2lvbiA9IG5ldyBTZW1WZXIodmVyc2lvbiwgb3B0aW9ucylcbiAgcmFuZ2UgPSBuZXcgUmFuZ2UocmFuZ2UsIG9wdGlvbnMpXG5cbiAgbGV0IGd0Zm4sIGx0ZWZuLCBsdGZuLCBjb21wLCBlY29tcFxuICBzd2l0Y2ggKGhpbG8pIHtcbiAgICBjYXNlICc+JzpcbiAgICAgIGd0Zm4gPSBndFxuICAgICAgbHRlZm4gPSBsdGVcbiAgICAgIGx0Zm4gPSBsdFxuICAgICAgY29tcCA9ICc+J1xuICAgICAgZWNvbXAgPSAnPj0nXG4gICAgICBicmVha1xuICAgIGNhc2UgJzwnOlxuICAgICAgZ3RmbiA9IGx0XG4gICAgICBsdGVmbiA9IGd0ZVxuICAgICAgbHRmbiA9IGd0XG4gICAgICBjb21wID0gJzwnXG4gICAgICBlY29tcCA9ICc8PSdcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ011c3QgcHJvdmlkZSBhIGhpbG8gdmFsIG9mIFwiPFwiIG9yIFwiPlwiJylcbiAgfVxuXG4gIC8vIElmIGl0IHNhdGlzZmllcyB0aGUgcmFuZ2UgaXQgaXMgbm90IG91dHNpZGVcbiAgaWYgKHNhdGlzZmllcyh2ZXJzaW9uLCByYW5nZSwgb3B0aW9ucykpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIEZyb20gbm93IG9uLCB2YXJpYWJsZSB0ZXJtcyBhcmUgYXMgaWYgd2UncmUgaW4gXCJndHJcIiBtb2RlLlxuICAvLyBidXQgbm90ZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgZmxpcHBlZCBmb3IgdGhlIFwibHRyXCIgZnVuY3Rpb24uXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZS5zZXQubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBjb21wYXJhdG9ycyA9IHJhbmdlLnNldFtpXVxuXG4gICAgbGV0IGhpZ2ggPSBudWxsXG4gICAgbGV0IGxvdyA9IG51bGxcblxuICAgIGNvbXBhcmF0b3JzLmZvckVhY2goKGNvbXBhcmF0b3IpID0+IHtcbiAgICAgIGlmIChjb21wYXJhdG9yLnNlbXZlciA9PT0gQU5ZKSB7XG4gICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgQ29tcGFyYXRvcignPj0wLjAuMCcpXG4gICAgICB9XG4gICAgICBoaWdoID0gaGlnaCB8fCBjb21wYXJhdG9yXG4gICAgICBsb3cgPSBsb3cgfHwgY29tcGFyYXRvclxuICAgICAgaWYgKGd0Zm4oY29tcGFyYXRvci5zZW12ZXIsIGhpZ2guc2VtdmVyLCBvcHRpb25zKSkge1xuICAgICAgICBoaWdoID0gY29tcGFyYXRvclxuICAgICAgfSBlbHNlIGlmIChsdGZuKGNvbXBhcmF0b3Iuc2VtdmVyLCBsb3cuc2VtdmVyLCBvcHRpb25zKSkge1xuICAgICAgICBsb3cgPSBjb21wYXJhdG9yXG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIElmIHRoZSBlZGdlIHZlcnNpb24gY29tcGFyYXRvciBoYXMgYSBvcGVyYXRvciB0aGVuIG91ciB2ZXJzaW9uXG4gICAgLy8gaXNuJ3Qgb3V0c2lkZSBpdFxuICAgIGlmIChoaWdoLm9wZXJhdG9yID09PSBjb21wIHx8IGhpZ2gub3BlcmF0b3IgPT09IGVjb21wKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgbG93ZXN0IHZlcnNpb24gY29tcGFyYXRvciBoYXMgYW4gb3BlcmF0b3IgYW5kIG91ciB2ZXJzaW9uXG4gICAgLy8gaXMgbGVzcyB0aGFuIGl0IHRoZW4gaXQgaXNuJ3QgaGlnaGVyIHRoYW4gdGhlIHJhbmdlXG4gICAgaWYgKCghbG93Lm9wZXJhdG9yIHx8IGxvdy5vcGVyYXRvciA9PT0gY29tcCkgJiZcbiAgICAgICAgbHRlZm4odmVyc2lvbiwgbG93LnNlbXZlcikpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSBpZiAobG93Lm9wZXJhdG9yID09PSBlY29tcCAmJiBsdGZuKHZlcnNpb24sIGxvdy5zZW12ZXIpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvdXRzaWRlXG4iLCAiLy8gRGV0ZXJtaW5lIGlmIHZlcnNpb24gaXMgZ3JlYXRlciB0aGFuIGFsbCB0aGUgdmVyc2lvbnMgcG9zc2libGUgaW4gdGhlIHJhbmdlLlxuY29uc3Qgb3V0c2lkZSA9IHJlcXVpcmUoJy4vb3V0c2lkZScpXG5jb25zdCBndHIgPSAodmVyc2lvbiwgcmFuZ2UsIG9wdGlvbnMpID0+IG91dHNpZGUodmVyc2lvbiwgcmFuZ2UsICc+Jywgb3B0aW9ucylcbm1vZHVsZS5leHBvcnRzID0gZ3RyXG4iLCAiY29uc3Qgb3V0c2lkZSA9IHJlcXVpcmUoJy4vb3V0c2lkZScpXG4vLyBEZXRlcm1pbmUgaWYgdmVyc2lvbiBpcyBsZXNzIHRoYW4gYWxsIHRoZSB2ZXJzaW9ucyBwb3NzaWJsZSBpbiB0aGUgcmFuZ2VcbmNvbnN0IGx0ciA9ICh2ZXJzaW9uLCByYW5nZSwgb3B0aW9ucykgPT4gb3V0c2lkZSh2ZXJzaW9uLCByYW5nZSwgJzwnLCBvcHRpb25zKVxubW9kdWxlLmV4cG9ydHMgPSBsdHJcbiIsICJjb25zdCBSYW5nZSA9IHJlcXVpcmUoJy4uL2NsYXNzZXMvcmFuZ2UnKVxuY29uc3QgaW50ZXJzZWN0cyA9IChyMSwgcjIsIG9wdGlvbnMpID0+IHtcbiAgcjEgPSBuZXcgUmFuZ2UocjEsIG9wdGlvbnMpXG4gIHIyID0gbmV3IFJhbmdlKHIyLCBvcHRpb25zKVxuICByZXR1cm4gcjEuaW50ZXJzZWN0cyhyMiwgb3B0aW9ucylcbn1cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJzZWN0c1xuIiwgIi8vIGdpdmVuIGEgc2V0IG9mIHZlcnNpb25zIGFuZCBhIHJhbmdlLCBjcmVhdGUgYSBcInNpbXBsaWZpZWRcIiByYW5nZVxuLy8gdGhhdCBpbmNsdWRlcyB0aGUgc2FtZSB2ZXJzaW9ucyB0aGF0IHRoZSBvcmlnaW5hbCByYW5nZSBkb2VzXG4vLyBJZiB0aGUgb3JpZ2luYWwgcmFuZ2UgaXMgc2hvcnRlciB0aGFuIHRoZSBzaW1wbGlmaWVkIG9uZSwgcmV0dXJuIHRoYXQuXG5jb25zdCBzYXRpc2ZpZXMgPSByZXF1aXJlKCcuLi9mdW5jdGlvbnMvc2F0aXNmaWVzLmpzJylcbmNvbnN0IGNvbXBhcmUgPSByZXF1aXJlKCcuLi9mdW5jdGlvbnMvY29tcGFyZS5qcycpXG5tb2R1bGUuZXhwb3J0cyA9ICh2ZXJzaW9ucywgcmFuZ2UsIG9wdGlvbnMpID0+IHtcbiAgY29uc3Qgc2V0ID0gW11cbiAgbGV0IGZpcnN0ID0gbnVsbFxuICBsZXQgcHJldiA9IG51bGxcbiAgY29uc3QgdiA9IHZlcnNpb25zLnNvcnQoKGEsIGIpID0+IGNvbXBhcmUoYSwgYiwgb3B0aW9ucykpXG4gIGZvciAoY29uc3QgdmVyc2lvbiBvZiB2KSB7XG4gICAgY29uc3QgaW5jbHVkZWQgPSBzYXRpc2ZpZXModmVyc2lvbiwgcmFuZ2UsIG9wdGlvbnMpXG4gICAgaWYgKGluY2x1ZGVkKSB7XG4gICAgICBwcmV2ID0gdmVyc2lvblxuICAgICAgaWYgKCFmaXJzdCkge1xuICAgICAgICBmaXJzdCA9IHZlcnNpb25cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgc2V0LnB1c2goW2ZpcnN0LCBwcmV2XSlcbiAgICAgIH1cbiAgICAgIHByZXYgPSBudWxsXG4gICAgICBmaXJzdCA9IG51bGxcbiAgICB9XG4gIH1cbiAgaWYgKGZpcnN0KSB7XG4gICAgc2V0LnB1c2goW2ZpcnN0LCBudWxsXSlcbiAgfVxuXG4gIGNvbnN0IHJhbmdlcyA9IFtdXG4gIGZvciAoY29uc3QgW21pbiwgbWF4XSBvZiBzZXQpIHtcbiAgICBpZiAobWluID09PSBtYXgpIHtcbiAgICAgIHJhbmdlcy5wdXNoKG1pbilcbiAgICB9IGVsc2UgaWYgKCFtYXggJiYgbWluID09PSB2WzBdKSB7XG4gICAgICByYW5nZXMucHVzaCgnKicpXG4gICAgfSBlbHNlIGlmICghbWF4KSB7XG4gICAgICByYW5nZXMucHVzaChgPj0ke21pbn1gKVxuICAgIH0gZWxzZSBpZiAobWluID09PSB2WzBdKSB7XG4gICAgICByYW5nZXMucHVzaChgPD0ke21heH1gKVxuICAgIH0gZWxzZSB7XG4gICAgICByYW5nZXMucHVzaChgJHttaW59IC0gJHttYXh9YClcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2ltcGxpZmllZCA9IHJhbmdlcy5qb2luKCcgfHwgJylcbiAgY29uc3Qgb3JpZ2luYWwgPSB0eXBlb2YgcmFuZ2UucmF3ID09PSAnc3RyaW5nJyA/IHJhbmdlLnJhdyA6IFN0cmluZyhyYW5nZSlcbiAgcmV0dXJuIHNpbXBsaWZpZWQubGVuZ3RoIDwgb3JpZ2luYWwubGVuZ3RoID8gc2ltcGxpZmllZCA6IHJhbmdlXG59XG4iLCAiY29uc3QgUmFuZ2UgPSByZXF1aXJlKCcuLi9jbGFzc2VzL3JhbmdlLmpzJylcbmNvbnN0IENvbXBhcmF0b3IgPSByZXF1aXJlKCcuLi9jbGFzc2VzL2NvbXBhcmF0b3IuanMnKVxuY29uc3QgeyBBTlkgfSA9IENvbXBhcmF0b3JcbmNvbnN0IHNhdGlzZmllcyA9IHJlcXVpcmUoJy4uL2Z1bmN0aW9ucy9zYXRpc2ZpZXMuanMnKVxuY29uc3QgY29tcGFyZSA9IHJlcXVpcmUoJy4uL2Z1bmN0aW9ucy9jb21wYXJlLmpzJylcblxuLy8gQ29tcGxleCByYW5nZSBgcjEgfHwgcjIgfHwgLi4uYCBpcyBhIHN1YnNldCBvZiBgUjEgfHwgUjIgfHwgLi4uYCBpZmY6XG4vLyAtIEV2ZXJ5IHNpbXBsZSByYW5nZSBgcjEsIHIyLCAuLi5gIGlzIGEgbnVsbCBzZXQsIE9SXG4vLyAtIEV2ZXJ5IHNpbXBsZSByYW5nZSBgcjEsIHIyLCAuLi5gIHdoaWNoIGlzIG5vdCBhIG51bGwgc2V0IGlzIGEgc3Vic2V0IG9mXG4vLyAgIHNvbWUgYFIxLCBSMiwgLi4uYFxuLy9cbi8vIFNpbXBsZSByYW5nZSBgYzEgYzIgLi4uYCBpcyBhIHN1YnNldCBvZiBzaW1wbGUgcmFuZ2UgYEMxIEMyIC4uLmAgaWZmOlxuLy8gLSBJZiBjIGlzIG9ubHkgdGhlIEFOWSBjb21wYXJhdG9yXG4vLyAgIC0gSWYgQyBpcyBvbmx5IHRoZSBBTlkgY29tcGFyYXRvciwgcmV0dXJuIHRydWVcbi8vICAgLSBFbHNlIGlmIGluIHByZXJlbGVhc2UgbW9kZSwgcmV0dXJuIGZhbHNlXG4vLyAgIC0gZWxzZSByZXBsYWNlIGMgd2l0aCBgWz49MC4wLjBdYFxuLy8gLSBJZiBDIGlzIG9ubHkgdGhlIEFOWSBjb21wYXJhdG9yXG4vLyAgIC0gaWYgaW4gcHJlcmVsZWFzZSBtb2RlLCByZXR1cm4gdHJ1ZVxuLy8gICAtIGVsc2UgcmVwbGFjZSBDIHdpdGggYFs+PTAuMC4wXWBcbi8vIC0gTGV0IEVRIGJlIHRoZSBzZXQgb2YgPSBjb21wYXJhdG9ycyBpbiBjXG4vLyAtIElmIEVRIGlzIG1vcmUgdGhhbiBvbmUsIHJldHVybiB0cnVlIChudWxsIHNldClcbi8vIC0gTGV0IEdUIGJlIHRoZSBoaWdoZXN0ID4gb3IgPj0gY29tcGFyYXRvciBpbiBjXG4vLyAtIExldCBMVCBiZSB0aGUgbG93ZXN0IDwgb3IgPD0gY29tcGFyYXRvciBpbiBjXG4vLyAtIElmIEdUIGFuZCBMVCwgYW5kIEdULnNlbXZlciA+IExULnNlbXZlciwgcmV0dXJuIHRydWUgKG51bGwgc2V0KVxuLy8gLSBJZiBhbnkgQyBpcyBhID0gcmFuZ2UsIGFuZCBHVCBvciBMVCBhcmUgc2V0LCByZXR1cm4gZmFsc2Vcbi8vIC0gSWYgRVFcbi8vICAgLSBJZiBHVCwgYW5kIEVRIGRvZXMgbm90IHNhdGlzZnkgR1QsIHJldHVybiB0cnVlIChudWxsIHNldClcbi8vICAgLSBJZiBMVCwgYW5kIEVRIGRvZXMgbm90IHNhdGlzZnkgTFQsIHJldHVybiB0cnVlIChudWxsIHNldClcbi8vICAgLSBJZiBFUSBzYXRpc2ZpZXMgZXZlcnkgQywgcmV0dXJuIHRydWVcbi8vICAgLSBFbHNlIHJldHVybiBmYWxzZVxuLy8gLSBJZiBHVFxuLy8gICAtIElmIEdULnNlbXZlciBpcyBsb3dlciB0aGFuIGFueSA+IG9yID49IGNvbXAgaW4gQywgcmV0dXJuIGZhbHNlXG4vLyAgIC0gSWYgR1QgaXMgPj0sIGFuZCBHVC5zZW12ZXIgZG9lcyBub3Qgc2F0aXNmeSBldmVyeSBDLCByZXR1cm4gZmFsc2Vcbi8vICAgLSBJZiBHVC5zZW12ZXIgaGFzIGEgcHJlcmVsZWFzZSwgYW5kIG5vdCBpbiBwcmVyZWxlYXNlIG1vZGVcbi8vICAgICAtIElmIG5vIEMgaGFzIGEgcHJlcmVsZWFzZSBhbmQgdGhlIEdULnNlbXZlciB0dXBsZSwgcmV0dXJuIGZhbHNlXG4vLyAtIElmIExUXG4vLyAgIC0gSWYgTFQuc2VtdmVyIGlzIGdyZWF0ZXIgdGhhbiBhbnkgPCBvciA8PSBjb21wIGluIEMsIHJldHVybiBmYWxzZVxuLy8gICAtIElmIExUIGlzIDw9LCBhbmQgTFQuc2VtdmVyIGRvZXMgbm90IHNhdGlzZnkgZXZlcnkgQywgcmV0dXJuIGZhbHNlXG4vLyAgIC0gSWYgR1Quc2VtdmVyIGhhcyBhIHByZXJlbGVhc2UsIGFuZCBub3QgaW4gcHJlcmVsZWFzZSBtb2RlXG4vLyAgICAgLSBJZiBubyBDIGhhcyBhIHByZXJlbGVhc2UgYW5kIHRoZSBMVC5zZW12ZXIgdHVwbGUsIHJldHVybiBmYWxzZVxuLy8gLSBFbHNlIHJldHVybiB0cnVlXG5cbmNvbnN0IHN1YnNldCA9IChzdWIsIGRvbSwgb3B0aW9ucyA9IHt9KSA9PiB7XG4gIGlmIChzdWIgPT09IGRvbSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBzdWIgPSBuZXcgUmFuZ2Uoc3ViLCBvcHRpb25zKVxuICBkb20gPSBuZXcgUmFuZ2UoZG9tLCBvcHRpb25zKVxuICBsZXQgc2F3Tm9uTnVsbCA9IGZhbHNlXG5cbiAgT1VURVI6IGZvciAoY29uc3Qgc2ltcGxlU3ViIG9mIHN1Yi5zZXQpIHtcbiAgICBmb3IgKGNvbnN0IHNpbXBsZURvbSBvZiBkb20uc2V0KSB7XG4gICAgICBjb25zdCBpc1N1YiA9IHNpbXBsZVN1YnNldChzaW1wbGVTdWIsIHNpbXBsZURvbSwgb3B0aW9ucylcbiAgICAgIHNhd05vbk51bGwgPSBzYXdOb25OdWxsIHx8IGlzU3ViICE9PSBudWxsXG4gICAgICBpZiAoaXNTdWIpIHtcbiAgICAgICAgY29udGludWUgT1VURVJcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdGhlIG51bGwgc2V0IGlzIGEgc3Vic2V0IG9mIGV2ZXJ5dGhpbmcsIGJ1dCBudWxsIHNpbXBsZSByYW5nZXMgaW5cbiAgICAvLyBhIGNvbXBsZXggcmFuZ2Ugc2hvdWxkIGJlIGlnbm9yZWQuICBzbyBpZiB3ZSBzYXcgYSBub24tbnVsbCByYW5nZSxcbiAgICAvLyB0aGVuIHdlIGtub3cgdGhpcyBpc24ndCBhIHN1YnNldCwgYnV0IGlmIEVWRVJZIHNpbXBsZSByYW5nZSB3YXMgbnVsbCxcbiAgICAvLyB0aGVuIGl0IGlzIGEgc3Vic2V0LlxuICAgIGlmIChzYXdOb25OdWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuY29uc3QgbWluaW11bVZlcnNpb25XaXRoUHJlUmVsZWFzZSA9IFtuZXcgQ29tcGFyYXRvcignPj0wLjAuMC0wJyldXG5jb25zdCBtaW5pbXVtVmVyc2lvbiA9IFtuZXcgQ29tcGFyYXRvcignPj0wLjAuMCcpXVxuXG5jb25zdCBzaW1wbGVTdWJzZXQgPSAoc3ViLCBkb20sIG9wdGlvbnMpID0+IHtcbiAgaWYgKHN1YiA9PT0gZG9tKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChzdWIubGVuZ3RoID09PSAxICYmIHN1YlswXS5zZW12ZXIgPT09IEFOWSkge1xuICAgIGlmIChkb20ubGVuZ3RoID09PSAxICYmIGRvbVswXS5zZW12ZXIgPT09IEFOWSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UpIHtcbiAgICAgIHN1YiA9IG1pbmltdW1WZXJzaW9uV2l0aFByZVJlbGVhc2VcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViID0gbWluaW11bVZlcnNpb25cbiAgICB9XG4gIH1cblxuICBpZiAoZG9tLmxlbmd0aCA9PT0gMSAmJiBkb21bMF0uc2VtdmVyID09PSBBTlkpIHtcbiAgICBpZiAob3B0aW9ucy5pbmNsdWRlUHJlcmVsZWFzZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgZG9tID0gbWluaW11bVZlcnNpb25cbiAgICB9XG4gIH1cblxuICBjb25zdCBlcVNldCA9IG5ldyBTZXQoKVxuICBsZXQgZ3QsIGx0XG4gIGZvciAoY29uc3QgYyBvZiBzdWIpIHtcbiAgICBpZiAoYy5vcGVyYXRvciA9PT0gJz4nIHx8IGMub3BlcmF0b3IgPT09ICc+PScpIHtcbiAgICAgIGd0ID0gaGlnaGVyR1QoZ3QsIGMsIG9wdGlvbnMpXG4gICAgfSBlbHNlIGlmIChjLm9wZXJhdG9yID09PSAnPCcgfHwgYy5vcGVyYXRvciA9PT0gJzw9Jykge1xuICAgICAgbHQgPSBsb3dlckxUKGx0LCBjLCBvcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBlcVNldC5hZGQoYy5zZW12ZXIpXG4gICAgfVxuICB9XG5cbiAgaWYgKGVxU2V0LnNpemUgPiAxKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGxldCBndGx0Q29tcFxuICBpZiAoZ3QgJiYgbHQpIHtcbiAgICBndGx0Q29tcCA9IGNvbXBhcmUoZ3Quc2VtdmVyLCBsdC5zZW12ZXIsIG9wdGlvbnMpXG4gICAgaWYgKGd0bHRDb21wID4gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9IGVsc2UgaWYgKGd0bHRDb21wID09PSAwICYmIChndC5vcGVyYXRvciAhPT0gJz49JyB8fCBsdC5vcGVyYXRvciAhPT0gJzw9JykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgLy8gd2lsbCBpdGVyYXRlIG9uZSBvciB6ZXJvIHRpbWVzXG4gIGZvciAoY29uc3QgZXEgb2YgZXFTZXQpIHtcbiAgICBpZiAoZ3QgJiYgIXNhdGlzZmllcyhlcSwgU3RyaW5nKGd0KSwgb3B0aW9ucykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKGx0ICYmICFzYXRpc2ZpZXMoZXEsIFN0cmluZyhsdCksIG9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYyBvZiBkb20pIHtcbiAgICAgIGlmICghc2F0aXNmaWVzKGVxLCBTdHJpbmcoYyksIG9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBsZXQgaGlnaGVyLCBsb3dlclxuICBsZXQgaGFzRG9tTFQsIGhhc0RvbUdUXG4gIC8vIGlmIHRoZSBzdWJzZXQgaGFzIGEgcHJlcmVsZWFzZSwgd2UgbmVlZCBhIGNvbXBhcmF0b3IgaW4gdGhlIHN1cGVyc2V0XG4gIC8vIHdpdGggdGhlIHNhbWUgdHVwbGUgYW5kIGEgcHJlcmVsZWFzZSwgb3IgaXQncyBub3QgYSBzdWJzZXRcbiAgbGV0IG5lZWREb21MVFByZSA9IGx0ICYmXG4gICAgIW9wdGlvbnMuaW5jbHVkZVByZXJlbGVhc2UgJiZcbiAgICBsdC5zZW12ZXIucHJlcmVsZWFzZS5sZW5ndGggPyBsdC5zZW12ZXIgOiBmYWxzZVxuICBsZXQgbmVlZERvbUdUUHJlID0gZ3QgJiZcbiAgICAhb3B0aW9ucy5pbmNsdWRlUHJlcmVsZWFzZSAmJlxuICAgIGd0LnNlbXZlci5wcmVyZWxlYXNlLmxlbmd0aCA/IGd0LnNlbXZlciA6IGZhbHNlXG4gIC8vIGV4Y2VwdGlvbjogPDEuMi4zLTAgaXMgdGhlIHNhbWUgYXMgPDEuMi4zXG4gIGlmIChuZWVkRG9tTFRQcmUgJiYgbmVlZERvbUxUUHJlLnByZXJlbGVhc2UubGVuZ3RoID09PSAxICYmXG4gICAgICBsdC5vcGVyYXRvciA9PT0gJzwnICYmIG5lZWREb21MVFByZS5wcmVyZWxlYXNlWzBdID09PSAwKSB7XG4gICAgbmVlZERvbUxUUHJlID0gZmFsc2VcbiAgfVxuXG4gIGZvciAoY29uc3QgYyBvZiBkb20pIHtcbiAgICBoYXNEb21HVCA9IGhhc0RvbUdUIHx8IGMub3BlcmF0b3IgPT09ICc+JyB8fCBjLm9wZXJhdG9yID09PSAnPj0nXG4gICAgaGFzRG9tTFQgPSBoYXNEb21MVCB8fCBjLm9wZXJhdG9yID09PSAnPCcgfHwgYy5vcGVyYXRvciA9PT0gJzw9J1xuICAgIGlmIChndCkge1xuICAgICAgaWYgKG5lZWREb21HVFByZSkge1xuICAgICAgICBpZiAoYy5zZW12ZXIucHJlcmVsZWFzZSAmJiBjLnNlbXZlci5wcmVyZWxlYXNlLmxlbmd0aCAmJlxuICAgICAgICAgICAgYy5zZW12ZXIubWFqb3IgPT09IG5lZWREb21HVFByZS5tYWpvciAmJlxuICAgICAgICAgICAgYy5zZW12ZXIubWlub3IgPT09IG5lZWREb21HVFByZS5taW5vciAmJlxuICAgICAgICAgICAgYy5zZW12ZXIucGF0Y2ggPT09IG5lZWREb21HVFByZS5wYXRjaCkge1xuICAgICAgICAgIG5lZWREb21HVFByZSA9IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjLm9wZXJhdG9yID09PSAnPicgfHwgYy5vcGVyYXRvciA9PT0gJz49Jykge1xuICAgICAgICBoaWdoZXIgPSBoaWdoZXJHVChndCwgYywgb3B0aW9ucylcbiAgICAgICAgaWYgKGhpZ2hlciA9PT0gYyAmJiBoaWdoZXIgIT09IGd0KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ3Qub3BlcmF0b3IgPT09ICc+PScgJiYgIXNhdGlzZmllcyhndC5zZW12ZXIsIFN0cmluZyhjKSwgb3B0aW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChsdCkge1xuICAgICAgaWYgKG5lZWREb21MVFByZSkge1xuICAgICAgICBpZiAoYy5zZW12ZXIucHJlcmVsZWFzZSAmJiBjLnNlbXZlci5wcmVyZWxlYXNlLmxlbmd0aCAmJlxuICAgICAgICAgICAgYy5zZW12ZXIubWFqb3IgPT09IG5lZWREb21MVFByZS5tYWpvciAmJlxuICAgICAgICAgICAgYy5zZW12ZXIubWlub3IgPT09IG5lZWREb21MVFByZS5taW5vciAmJlxuICAgICAgICAgICAgYy5zZW12ZXIucGF0Y2ggPT09IG5lZWREb21MVFByZS5wYXRjaCkge1xuICAgICAgICAgIG5lZWREb21MVFByZSA9IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjLm9wZXJhdG9yID09PSAnPCcgfHwgYy5vcGVyYXRvciA9PT0gJzw9Jykge1xuICAgICAgICBsb3dlciA9IGxvd2VyTFQobHQsIGMsIG9wdGlvbnMpXG4gICAgICAgIGlmIChsb3dlciA9PT0gYyAmJiBsb3dlciAhPT0gbHQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChsdC5vcGVyYXRvciA9PT0gJzw9JyAmJiAhc2F0aXNmaWVzKGx0LnNlbXZlciwgU3RyaW5nKGMpLCBvcHRpb25zKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFjLm9wZXJhdG9yICYmIChsdCB8fCBndCkgJiYgZ3RsdENvbXAgIT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIC8vIGlmIHRoZXJlIHdhcyBhIDwgb3IgPiwgYW5kIG5vdGhpbmcgaW4gdGhlIGRvbSwgdGhlbiBtdXN0IGJlIGZhbHNlXG4gIC8vIFVOTEVTUyBpdCB3YXMgbGltaXRlZCBieSBhbm90aGVyIHJhbmdlIGluIHRoZSBvdGhlciBkaXJlY3Rpb24uXG4gIC8vIEVnLCA+MS4wLjAgPDEuMC4xIGlzIHN0aWxsIGEgc3Vic2V0IG9mIDwyLjAuMFxuICBpZiAoZ3QgJiYgaGFzRG9tTFQgJiYgIWx0ICYmIGd0bHRDb21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobHQgJiYgaGFzRG9tR1QgJiYgIWd0ICYmIGd0bHRDb21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyB3ZSBuZWVkZWQgYSBwcmVyZWxlYXNlIHJhbmdlIGluIGEgc3BlY2lmaWMgdHVwbGUsIGJ1dCBkaWRuJ3QgZ2V0IG9uZVxuICAvLyB0aGVuIHRoaXMgaXNuJ3QgYSBzdWJzZXQuICBlZyA+PTEuMi4zLXByZSBpcyBub3QgYSBzdWJzZXQgb2YgPj0xLjAuMCxcbiAgLy8gYmVjYXVzZSBpdCBpbmNsdWRlcyBwcmVyZWxlYXNlcyBpbiB0aGUgMS4yLjMgdHVwbGVcbiAgaWYgKG5lZWREb21HVFByZSB8fCBuZWVkRG9tTFRQcmUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8vID49MS4yLjMgaXMgbG93ZXIgdGhhbiA+MS4yLjNcbmNvbnN0IGhpZ2hlckdUID0gKGEsIGIsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCFhKSB7XG4gICAgcmV0dXJuIGJcbiAgfVxuICBjb25zdCBjb21wID0gY29tcGFyZShhLnNlbXZlciwgYi5zZW12ZXIsIG9wdGlvbnMpXG4gIHJldHVybiBjb21wID4gMCA/IGFcbiAgICA6IGNvbXAgPCAwID8gYlxuICAgIDogYi5vcGVyYXRvciA9PT0gJz4nICYmIGEub3BlcmF0b3IgPT09ICc+PScgPyBiXG4gICAgOiBhXG59XG5cbi8vIDw9MS4yLjMgaXMgaGlnaGVyIHRoYW4gPDEuMi4zXG5jb25zdCBsb3dlckxUID0gKGEsIGIsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCFhKSB7XG4gICAgcmV0dXJuIGJcbiAgfVxuICBjb25zdCBjb21wID0gY29tcGFyZShhLnNlbXZlciwgYi5zZW12ZXIsIG9wdGlvbnMpXG4gIHJldHVybiBjb21wIDwgMCA/IGFcbiAgICA6IGNvbXAgPiAwID8gYlxuICAgIDogYi5vcGVyYXRvciA9PT0gJzwnICYmIGEub3BlcmF0b3IgPT09ICc8PScgPyBiXG4gICAgOiBhXG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3Vic2V0XG4iLCAiLy8ganVzdCBwcmUtbG9hZCBhbGwgdGhlIHN0dWZmIHRoYXQgaW5kZXguanMgbGF6aWx5IGV4cG9ydHNcbmNvbnN0IGludGVybmFsUmUgPSByZXF1aXJlKCcuL2ludGVybmFsL3JlJylcbmNvbnN0IGNvbnN0YW50cyA9IHJlcXVpcmUoJy4vaW50ZXJuYWwvY29uc3RhbnRzJylcbmNvbnN0IFNlbVZlciA9IHJlcXVpcmUoJy4vY2xhc3Nlcy9zZW12ZXInKVxuY29uc3QgaWRlbnRpZmllcnMgPSByZXF1aXJlKCcuL2ludGVybmFsL2lkZW50aWZpZXJzJylcbmNvbnN0IHBhcnNlID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvcGFyc2UnKVxuY29uc3QgdmFsaWQgPSByZXF1aXJlKCcuL2Z1bmN0aW9ucy92YWxpZCcpXG5jb25zdCBjbGVhbiA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL2NsZWFuJylcbmNvbnN0IGluYyA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL2luYycpXG5jb25zdCBkaWZmID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvZGlmZicpXG5jb25zdCBtYWpvciA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL21ham9yJylcbmNvbnN0IG1pbm9yID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvbWlub3InKVxuY29uc3QgcGF0Y2ggPSByZXF1aXJlKCcuL2Z1bmN0aW9ucy9wYXRjaCcpXG5jb25zdCBwcmVyZWxlYXNlID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvcHJlcmVsZWFzZScpXG5jb25zdCBjb21wYXJlID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvY29tcGFyZScpXG5jb25zdCByY29tcGFyZSA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL3Jjb21wYXJlJylcbmNvbnN0IGNvbXBhcmVMb29zZSA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL2NvbXBhcmUtbG9vc2UnKVxuY29uc3QgY29tcGFyZUJ1aWxkID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvY29tcGFyZS1idWlsZCcpXG5jb25zdCBzb3J0ID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvc29ydCcpXG5jb25zdCByc29ydCA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL3Jzb3J0JylcbmNvbnN0IGd0ID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvZ3QnKVxuY29uc3QgbHQgPSByZXF1aXJlKCcuL2Z1bmN0aW9ucy9sdCcpXG5jb25zdCBlcSA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL2VxJylcbmNvbnN0IG5lcSA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL25lcScpXG5jb25zdCBndGUgPSByZXF1aXJlKCcuL2Z1bmN0aW9ucy9ndGUnKVxuY29uc3QgbHRlID0gcmVxdWlyZSgnLi9mdW5jdGlvbnMvbHRlJylcbmNvbnN0IGNtcCA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL2NtcCcpXG5jb25zdCBjb2VyY2UgPSByZXF1aXJlKCcuL2Z1bmN0aW9ucy9jb2VyY2UnKVxuY29uc3QgQ29tcGFyYXRvciA9IHJlcXVpcmUoJy4vY2xhc3Nlcy9jb21wYXJhdG9yJylcbmNvbnN0IFJhbmdlID0gcmVxdWlyZSgnLi9jbGFzc2VzL3JhbmdlJylcbmNvbnN0IHNhdGlzZmllcyA9IHJlcXVpcmUoJy4vZnVuY3Rpb25zL3NhdGlzZmllcycpXG5jb25zdCB0b0NvbXBhcmF0b3JzID0gcmVxdWlyZSgnLi9yYW5nZXMvdG8tY29tcGFyYXRvcnMnKVxuY29uc3QgbWF4U2F0aXNmeWluZyA9IHJlcXVpcmUoJy4vcmFuZ2VzL21heC1zYXRpc2Z5aW5nJylcbmNvbnN0IG1pblNhdGlzZnlpbmcgPSByZXF1aXJlKCcuL3Jhbmdlcy9taW4tc2F0aXNmeWluZycpXG5jb25zdCBtaW5WZXJzaW9uID0gcmVxdWlyZSgnLi9yYW5nZXMvbWluLXZlcnNpb24nKVxuY29uc3QgdmFsaWRSYW5nZSA9IHJlcXVpcmUoJy4vcmFuZ2VzL3ZhbGlkJylcbmNvbnN0IG91dHNpZGUgPSByZXF1aXJlKCcuL3Jhbmdlcy9vdXRzaWRlJylcbmNvbnN0IGd0ciA9IHJlcXVpcmUoJy4vcmFuZ2VzL2d0cicpXG5jb25zdCBsdHIgPSByZXF1aXJlKCcuL3Jhbmdlcy9sdHInKVxuY29uc3QgaW50ZXJzZWN0cyA9IHJlcXVpcmUoJy4vcmFuZ2VzL2ludGVyc2VjdHMnKVxuY29uc3Qgc2ltcGxpZnlSYW5nZSA9IHJlcXVpcmUoJy4vcmFuZ2VzL3NpbXBsaWZ5JylcbmNvbnN0IHN1YnNldCA9IHJlcXVpcmUoJy4vcmFuZ2VzL3N1YnNldCcpXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcGFyc2UsXG4gIHZhbGlkLFxuICBjbGVhbixcbiAgaW5jLFxuICBkaWZmLFxuICBtYWpvcixcbiAgbWlub3IsXG4gIHBhdGNoLFxuICBwcmVyZWxlYXNlLFxuICBjb21wYXJlLFxuICByY29tcGFyZSxcbiAgY29tcGFyZUxvb3NlLFxuICBjb21wYXJlQnVpbGQsXG4gIHNvcnQsXG4gIHJzb3J0LFxuICBndCxcbiAgbHQsXG4gIGVxLFxuICBuZXEsXG4gIGd0ZSxcbiAgbHRlLFxuICBjbXAsXG4gIGNvZXJjZSxcbiAgQ29tcGFyYXRvcixcbiAgUmFuZ2UsXG4gIHNhdGlzZmllcyxcbiAgdG9Db21wYXJhdG9ycyxcbiAgbWF4U2F0aXNmeWluZyxcbiAgbWluU2F0aXNmeWluZyxcbiAgbWluVmVyc2lvbixcbiAgdmFsaWRSYW5nZSxcbiAgb3V0c2lkZSxcbiAgZ3RyLFxuICBsdHIsXG4gIGludGVyc2VjdHMsXG4gIHNpbXBsaWZ5UmFuZ2UsXG4gIHN1YnNldCxcbiAgU2VtVmVyLFxuICByZTogaW50ZXJuYWxSZS5yZSxcbiAgc3JjOiBpbnRlcm5hbFJlLnNyYyxcbiAgdG9rZW5zOiBpbnRlcm5hbFJlLnQsXG4gIFNFTVZFUl9TUEVDX1ZFUlNJT046IGNvbnN0YW50cy5TRU1WRVJfU1BFQ19WRVJTSU9OLFxuICBSRUxFQVNFX1RZUEVTOiBjb25zdGFudHMuUkVMRUFTRV9UWVBFUyxcbiAgY29tcGFyZUlkZW50aWZpZXJzOiBpZGVudGlmaWVycy5jb21wYXJlSWRlbnRpZmllcnMsXG4gIHJjb21wYXJlSWRlbnRpZmllcnM6IGlkZW50aWZpZXJzLnJjb21wYXJlSWRlbnRpZmllcnMsXG59XG4iLCAiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBiYWxhbmNlZDtcbmZ1bmN0aW9uIGJhbGFuY2VkKGEsIGIsIHN0cikge1xuICBpZiAoYSBpbnN0YW5jZW9mIFJlZ0V4cCkgYSA9IG1heWJlTWF0Y2goYSwgc3RyKTtcbiAgaWYgKGIgaW5zdGFuY2VvZiBSZWdFeHApIGIgPSBtYXliZU1hdGNoKGIsIHN0cik7XG5cbiAgdmFyIHIgPSByYW5nZShhLCBiLCBzdHIpO1xuXG4gIHJldHVybiByICYmIHtcbiAgICBzdGFydDogclswXSxcbiAgICBlbmQ6IHJbMV0sXG4gICAgcHJlOiBzdHIuc2xpY2UoMCwgclswXSksXG4gICAgYm9keTogc3RyLnNsaWNlKHJbMF0gKyBhLmxlbmd0aCwgclsxXSksXG4gICAgcG9zdDogc3RyLnNsaWNlKHJbMV0gKyBiLmxlbmd0aClcbiAgfTtcbn1cblxuZnVuY3Rpb24gbWF5YmVNYXRjaChyZWcsIHN0cikge1xuICB2YXIgbSA9IHN0ci5tYXRjaChyZWcpO1xuICByZXR1cm4gbSA/IG1bMF0gOiBudWxsO1xufVxuXG5iYWxhbmNlZC5yYW5nZSA9IHJhbmdlO1xuZnVuY3Rpb24gcmFuZ2UoYSwgYiwgc3RyKSB7XG4gIHZhciBiZWdzLCBiZWcsIGxlZnQsIHJpZ2h0LCByZXN1bHQ7XG4gIHZhciBhaSA9IHN0ci5pbmRleE9mKGEpO1xuICB2YXIgYmkgPSBzdHIuaW5kZXhPZihiLCBhaSArIDEpO1xuICB2YXIgaSA9IGFpO1xuXG4gIGlmIChhaSA+PSAwICYmIGJpID4gMCkge1xuICAgIGlmKGE9PT1iKSB7XG4gICAgICByZXR1cm4gW2FpLCBiaV07XG4gICAgfVxuICAgIGJlZ3MgPSBbXTtcbiAgICBsZWZ0ID0gc3RyLmxlbmd0aDtcblxuICAgIHdoaWxlIChpID49IDAgJiYgIXJlc3VsdCkge1xuICAgICAgaWYgKGkgPT0gYWkpIHtcbiAgICAgICAgYmVncy5wdXNoKGkpO1xuICAgICAgICBhaSA9IHN0ci5pbmRleE9mKGEsIGkgKyAxKTtcbiAgICAgIH0gZWxzZSBpZiAoYmVncy5sZW5ndGggPT0gMSkge1xuICAgICAgICByZXN1bHQgPSBbIGJlZ3MucG9wKCksIGJpIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZWcgPSBiZWdzLnBvcCgpO1xuICAgICAgICBpZiAoYmVnIDwgbGVmdCkge1xuICAgICAgICAgIGxlZnQgPSBiZWc7XG4gICAgICAgICAgcmlnaHQgPSBiaTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpID0gc3RyLmluZGV4T2YoYiwgaSArIDEpO1xuICAgICAgfVxuXG4gICAgICBpID0gYWkgPCBiaSAmJiBhaSA+PSAwID8gYWkgOiBiaTtcbiAgICB9XG5cbiAgICBpZiAoYmVncy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdCA9IFsgbGVmdCwgcmlnaHQgXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIiwgInZhciBiYWxhbmNlZCA9IHJlcXVpcmUoJ2JhbGFuY2VkLW1hdGNoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwYW5kVG9wO1xuXG52YXIgZXNjU2xhc2ggPSAnXFwwU0xBU0gnK01hdGgucmFuZG9tKCkrJ1xcMCc7XG52YXIgZXNjT3BlbiA9ICdcXDBPUEVOJytNYXRoLnJhbmRvbSgpKydcXDAnO1xudmFyIGVzY0Nsb3NlID0gJ1xcMENMT1NFJytNYXRoLnJhbmRvbSgpKydcXDAnO1xudmFyIGVzY0NvbW1hID0gJ1xcMENPTU1BJytNYXRoLnJhbmRvbSgpKydcXDAnO1xudmFyIGVzY1BlcmlvZCA9ICdcXDBQRVJJT0QnK01hdGgucmFuZG9tKCkrJ1xcMCc7XG5cbmZ1bmN0aW9uIG51bWVyaWMoc3RyKSB7XG4gIHJldHVybiBwYXJzZUludChzdHIsIDEwKSA9PSBzdHJcbiAgICA/IHBhcnNlSW50KHN0ciwgMTApXG4gICAgOiBzdHIuY2hhckNvZGVBdCgwKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlQnJhY2VzKHN0cikge1xuICByZXR1cm4gc3RyLnNwbGl0KCdcXFxcXFxcXCcpLmpvaW4oZXNjU2xhc2gpXG4gICAgICAgICAgICAuc3BsaXQoJ1xcXFx7Jykuam9pbihlc2NPcGVuKVxuICAgICAgICAgICAgLnNwbGl0KCdcXFxcfScpLmpvaW4oZXNjQ2xvc2UpXG4gICAgICAgICAgICAuc3BsaXQoJ1xcXFwsJykuam9pbihlc2NDb21tYSlcbiAgICAgICAgICAgIC5zcGxpdCgnXFxcXC4nKS5qb2luKGVzY1BlcmlvZCk7XG59XG5cbmZ1bmN0aW9uIHVuZXNjYXBlQnJhY2VzKHN0cikge1xuICByZXR1cm4gc3RyLnNwbGl0KGVzY1NsYXNoKS5qb2luKCdcXFxcJylcbiAgICAgICAgICAgIC5zcGxpdChlc2NPcGVuKS5qb2luKCd7JylcbiAgICAgICAgICAgIC5zcGxpdChlc2NDbG9zZSkuam9pbignfScpXG4gICAgICAgICAgICAuc3BsaXQoZXNjQ29tbWEpLmpvaW4oJywnKVxuICAgICAgICAgICAgLnNwbGl0KGVzY1BlcmlvZCkuam9pbignLicpO1xufVxuXG5cbi8vIEJhc2ljYWxseSBqdXN0IHN0ci5zcGxpdChcIixcIiksIGJ1dCBoYW5kbGluZyBjYXNlc1xuLy8gd2hlcmUgd2UgaGF2ZSBuZXN0ZWQgYnJhY2VkIHNlY3Rpb25zLCB3aGljaCBzaG91bGQgYmVcbi8vIHRyZWF0ZWQgYXMgaW5kaXZpZHVhbCBtZW1iZXJzLCBsaWtlIHthLHtiLGN9LGR9XG5mdW5jdGlvbiBwYXJzZUNvbW1hUGFydHMoc3RyKSB7XG4gIGlmICghc3RyKVxuICAgIHJldHVybiBbJyddO1xuXG4gIHZhciBwYXJ0cyA9IFtdO1xuICB2YXIgbSA9IGJhbGFuY2VkKCd7JywgJ30nLCBzdHIpO1xuXG4gIGlmICghbSlcbiAgICByZXR1cm4gc3RyLnNwbGl0KCcsJyk7XG5cbiAgdmFyIHByZSA9IG0ucHJlO1xuICB2YXIgYm9keSA9IG0uYm9keTtcbiAgdmFyIHBvc3QgPSBtLnBvc3Q7XG4gIHZhciBwID0gcHJlLnNwbGl0KCcsJyk7XG5cbiAgcFtwLmxlbmd0aC0xXSArPSAneycgKyBib2R5ICsgJ30nO1xuICB2YXIgcG9zdFBhcnRzID0gcGFyc2VDb21tYVBhcnRzKHBvc3QpO1xuICBpZiAocG9zdC5sZW5ndGgpIHtcbiAgICBwW3AubGVuZ3RoLTFdICs9IHBvc3RQYXJ0cy5zaGlmdCgpO1xuICAgIHAucHVzaC5hcHBseShwLCBwb3N0UGFydHMpO1xuICB9XG5cbiAgcGFydHMucHVzaC5hcHBseShwYXJ0cywgcCk7XG5cbiAgcmV0dXJuIHBhcnRzO1xufVxuXG5mdW5jdGlvbiBleHBhbmRUb3Aoc3RyKSB7XG4gIGlmICghc3RyKVxuICAgIHJldHVybiBbXTtcblxuICAvLyBJIGRvbid0IGtub3cgd2h5IEJhc2ggNC4zIGRvZXMgdGhpcywgYnV0IGl0IGRvZXMuXG4gIC8vIEFueXRoaW5nIHN0YXJ0aW5nIHdpdGgge30gd2lsbCBoYXZlIHRoZSBmaXJzdCB0d28gYnl0ZXMgcHJlc2VydmVkXG4gIC8vIGJ1dCAqb25seSogYXQgdGhlIHRvcCBsZXZlbCwgc28ge30sYX1iIHdpbGwgbm90IGV4cGFuZCB0byBhbnl0aGluZyxcbiAgLy8gYnV0IGF7fSxifWMgd2lsbCBiZSBleHBhbmRlZCB0byBbYX1jLGFiY10uXG4gIC8vIE9uZSBjb3VsZCBhcmd1ZSB0aGF0IHRoaXMgaXMgYSBidWcgaW4gQmFzaCwgYnV0IHNpbmNlIHRoZSBnb2FsIG9mXG4gIC8vIHRoaXMgbW9kdWxlIGlzIHRvIG1hdGNoIEJhc2gncyBydWxlcywgd2UgZXNjYXBlIGEgbGVhZGluZyB7fVxuICBpZiAoc3RyLnN1YnN0cigwLCAyKSA9PT0gJ3t9Jykge1xuICAgIHN0ciA9ICdcXFxce1xcXFx9JyArIHN0ci5zdWJzdHIoMik7XG4gIH1cblxuICByZXR1cm4gZXhwYW5kKGVzY2FwZUJyYWNlcyhzdHIpLCB0cnVlKS5tYXAodW5lc2NhcGVCcmFjZXMpO1xufVxuXG5mdW5jdGlvbiBlbWJyYWNlKHN0cikge1xuICByZXR1cm4gJ3snICsgc3RyICsgJ30nO1xufVxuZnVuY3Rpb24gaXNQYWRkZWQoZWwpIHtcbiAgcmV0dXJuIC9eLT8wXFxkLy50ZXN0KGVsKTtcbn1cblxuZnVuY3Rpb24gbHRlKGksIHkpIHtcbiAgcmV0dXJuIGkgPD0geTtcbn1cbmZ1bmN0aW9uIGd0ZShpLCB5KSB7XG4gIHJldHVybiBpID49IHk7XG59XG5cbmZ1bmN0aW9uIGV4cGFuZChzdHIsIGlzVG9wKSB7XG4gIHZhciBleHBhbnNpb25zID0gW107XG5cbiAgdmFyIG0gPSBiYWxhbmNlZCgneycsICd9Jywgc3RyKTtcbiAgaWYgKCFtKSByZXR1cm4gW3N0cl07XG5cbiAgLy8gbm8gbmVlZCB0byBleHBhbmQgcHJlLCBzaW5jZSBpdCBpcyBndWFyYW50ZWVkIHRvIGJlIGZyZWUgb2YgYnJhY2Utc2V0c1xuICB2YXIgcHJlID0gbS5wcmU7XG4gIHZhciBwb3N0ID0gbS5wb3N0Lmxlbmd0aFxuICAgID8gZXhwYW5kKG0ucG9zdCwgZmFsc2UpXG4gICAgOiBbJyddO1xuXG4gIGlmICgvXFwkJC8udGVzdChtLnByZSkpIHsgICAgXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCBwb3N0Lmxlbmd0aDsgaysrKSB7XG4gICAgICB2YXIgZXhwYW5zaW9uID0gcHJlKyAneycgKyBtLmJvZHkgKyAnfScgKyBwb3N0W2tdO1xuICAgICAgZXhwYW5zaW9ucy5wdXNoKGV4cGFuc2lvbik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBpc051bWVyaWNTZXF1ZW5jZSA9IC9eLT9cXGQrXFwuXFwuLT9cXGQrKD86XFwuXFwuLT9cXGQrKT8kLy50ZXN0KG0uYm9keSk7XG4gICAgdmFyIGlzQWxwaGFTZXF1ZW5jZSA9IC9eW2EtekEtWl1cXC5cXC5bYS16QS1aXSg/OlxcLlxcLi0/XFxkKyk/JC8udGVzdChtLmJvZHkpO1xuICAgIHZhciBpc1NlcXVlbmNlID0gaXNOdW1lcmljU2VxdWVuY2UgfHwgaXNBbHBoYVNlcXVlbmNlO1xuICAgIHZhciBpc09wdGlvbnMgPSBtLmJvZHkuaW5kZXhPZignLCcpID49IDA7XG4gICAgaWYgKCFpc1NlcXVlbmNlICYmICFpc09wdGlvbnMpIHtcbiAgICAgIC8vIHthfSxifVxuICAgICAgaWYgKG0ucG9zdC5tYXRjaCgvLC4qXFx9LykpIHtcbiAgICAgICAgc3RyID0gbS5wcmUgKyAneycgKyBtLmJvZHkgKyBlc2NDbG9zZSArIG0ucG9zdDtcbiAgICAgICAgcmV0dXJuIGV4cGFuZChzdHIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtzdHJdO1xuICAgIH1cblxuICAgIHZhciBuO1xuICAgIGlmIChpc1NlcXVlbmNlKSB7XG4gICAgICBuID0gbS5ib2R5LnNwbGl0KC9cXC5cXC4vKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbiA9IHBhcnNlQ29tbWFQYXJ0cyhtLmJvZHkpO1xuICAgICAgaWYgKG4ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIC8vIHh7e2EsYn19eSA9PT4geHthfXkgeHtifXlcbiAgICAgICAgbiA9IGV4cGFuZChuWzBdLCBmYWxzZSkubWFwKGVtYnJhY2UpO1xuICAgICAgICBpZiAobi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gcG9zdC5tYXAoZnVuY3Rpb24ocCkge1xuICAgICAgICAgICAgcmV0dXJuIG0ucHJlICsgblswXSArIHA7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhdCB0aGlzIHBvaW50LCBuIGlzIHRoZSBwYXJ0cywgYW5kIHdlIGtub3cgaXQncyBub3QgYSBjb21tYSBzZXRcbiAgICAvLyB3aXRoIGEgc2luZ2xlIGVudHJ5LlxuICAgIHZhciBOO1xuXG4gICAgaWYgKGlzU2VxdWVuY2UpIHtcbiAgICAgIHZhciB4ID0gbnVtZXJpYyhuWzBdKTtcbiAgICAgIHZhciB5ID0gbnVtZXJpYyhuWzFdKTtcbiAgICAgIHZhciB3aWR0aCA9IE1hdGgubWF4KG5bMF0ubGVuZ3RoLCBuWzFdLmxlbmd0aClcbiAgICAgIHZhciBpbmNyID0gbi5sZW5ndGggPT0gM1xuICAgICAgICA/IE1hdGguYWJzKG51bWVyaWMoblsyXSkpXG4gICAgICAgIDogMTtcbiAgICAgIHZhciB0ZXN0ID0gbHRlO1xuICAgICAgdmFyIHJldmVyc2UgPSB5IDwgeDtcbiAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgIGluY3IgKj0gLTE7XG4gICAgICAgIHRlc3QgPSBndGU7XG4gICAgICB9XG4gICAgICB2YXIgcGFkID0gbi5zb21lKGlzUGFkZGVkKTtcblxuICAgICAgTiA9IFtdO1xuXG4gICAgICBmb3IgKHZhciBpID0geDsgdGVzdChpLCB5KTsgaSArPSBpbmNyKSB7XG4gICAgICAgIHZhciBjO1xuICAgICAgICBpZiAoaXNBbHBoYVNlcXVlbmNlKSB7XG4gICAgICAgICAgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7XG4gICAgICAgICAgaWYgKGMgPT09ICdcXFxcJylcbiAgICAgICAgICAgIGMgPSAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjID0gU3RyaW5nKGkpO1xuICAgICAgICAgIGlmIChwYWQpIHtcbiAgICAgICAgICAgIHZhciBuZWVkID0gd2lkdGggLSBjLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChuZWVkID4gMCkge1xuICAgICAgICAgICAgICB2YXIgeiA9IG5ldyBBcnJheShuZWVkICsgMSkuam9pbignMCcpO1xuICAgICAgICAgICAgICBpZiAoaSA8IDApXG4gICAgICAgICAgICAgICAgYyA9ICctJyArIHogKyBjLnNsaWNlKDEpO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYyA9IHogKyBjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBOLnB1c2goYyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE4gPSBbXTtcblxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIE4ucHVzaC5hcHBseShOLCBleHBhbmQobltqXSwgZmFsc2UpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBqID0gMDsgaiA8IE4ubGVuZ3RoOyBqKyspIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcG9zdC5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgZXhwYW5zaW9uID0gcHJlICsgTltqXSArIHBvc3Rba107XG4gICAgICAgIGlmICghaXNUb3AgfHwgaXNTZXF1ZW5jZSB8fCBleHBhbnNpb24pXG4gICAgICAgICAgZXhwYW5zaW9ucy5wdXNoKGV4cGFuc2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4cGFuc2lvbnM7XG59XG5cbiIsICJjb25zdCBNQVhfUEFUVEVSTl9MRU5HVEggPSAxMDI0ICogNjRcbmV4cG9ydCBjb25zdCBhc3NlcnRWYWxpZFBhdHRlcm46IChwYXR0ZXJuOiBhbnkpID0+IHZvaWQgPSAoXG4gIHBhdHRlcm46IGFueVxuKTogYXNzZXJ0cyBwYXR0ZXJuIGlzIHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgcGF0dGVybiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpbnZhbGlkIHBhdHRlcm4nKVxuICB9XG5cbiAgaWYgKHBhdHRlcm4ubGVuZ3RoID4gTUFYX1BBVFRFUk5fTEVOR1RIKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGF0dGVybiBpcyB0b28gbG9uZycpXG4gIH1cbn1cbiIsICIvLyB0cmFuc2xhdGUgdGhlIHZhcmlvdXMgcG9zaXggY2hhcmFjdGVyIGNsYXNzZXMgaW50byB1bmljb2RlIHByb3BlcnRpZXNcbi8vIHRoaXMgd29ya3MgYWNyb3NzIGFsbCB1bmljb2RlIGxvY2FsZXNcblxuLy8geyA8cG9zaXggY2xhc3M+OiBbPHRyYW5zbGF0aW9uPiwgL3UgZmxhZyByZXF1aXJlZCwgbmVnYXRlZF1cbmNvbnN0IHBvc2l4Q2xhc3NlczogeyBbazogc3RyaW5nXTogW2U6IHN0cmluZywgdTogYm9vbGVhbiwgbj86IGJvb2xlYW5dIH0gPSB7XG4gICdbOmFsbnVtOl0nOiBbJ1xcXFxwe0x9XFxcXHB7Tmx9XFxcXHB7TmR9JywgdHJ1ZV0sXG4gICdbOmFscGhhOl0nOiBbJ1xcXFxwe0x9XFxcXHB7Tmx9JywgdHJ1ZV0sXG4gICdbOmFzY2lpOl0nOiBbJ1xcXFx4JyArICcwMC1cXFxceCcgKyAnN2YnLCBmYWxzZV0sXG4gICdbOmJsYW5rOl0nOiBbJ1xcXFxwe1pzfVxcXFx0JywgdHJ1ZV0sXG4gICdbOmNudHJsOl0nOiBbJ1xcXFxwe0NjfScsIHRydWVdLFxuICAnWzpkaWdpdDpdJzogWydcXFxccHtOZH0nLCB0cnVlXSxcbiAgJ1s6Z3JhcGg6XSc6IFsnXFxcXHB7Wn1cXFxccHtDfScsIHRydWUsIHRydWVdLFxuICAnWzpsb3dlcjpdJzogWydcXFxccHtMbH0nLCB0cnVlXSxcbiAgJ1s6cHJpbnQ6XSc6IFsnXFxcXHB7Q30nLCB0cnVlXSxcbiAgJ1s6cHVuY3Q6XSc6IFsnXFxcXHB7UH0nLCB0cnVlXSxcbiAgJ1s6c3BhY2U6XSc6IFsnXFxcXHB7Wn1cXFxcdFxcXFxyXFxcXG5cXFxcdlxcXFxmJywgdHJ1ZV0sXG4gICdbOnVwcGVyOl0nOiBbJ1xcXFxwe0x1fScsIHRydWVdLFxuICAnWzp3b3JkOl0nOiBbJ1xcXFxwe0x9XFxcXHB7Tmx9XFxcXHB7TmR9XFxcXHB7UGN9JywgdHJ1ZV0sXG4gICdbOnhkaWdpdDpdJzogWydBLUZhLWYwLTknLCBmYWxzZV0sXG59XG5cbi8vIG9ubHkgbmVlZCB0byBlc2NhcGUgYSBmZXcgdGhpbmdzIGluc2lkZSBvZiBicmFjZSBleHByZXNzaW9uc1xuLy8gZXNjYXBlczogWyBcXCBdIC1cbmNvbnN0IGJyYWNlRXNjYXBlID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9bW1xcXVxcXFwtXS9nLCAnXFxcXCQmJylcbi8vIGVzY2FwZSBhbGwgcmVnZXhwIG1hZ2ljIGNoYXJhY3RlcnNcbmNvbnN0IHJlZ2V4cEVzY2FwZSA9IChzOiBzdHJpbmcpID0+XG4gIHMucmVwbGFjZSgvWy1bXFxde30oKSorPy4sXFxcXF4kfCNcXHNdL2csICdcXFxcJCYnKVxuXG4vLyBldmVyeXRoaW5nIGhhcyBhbHJlYWR5IGJlZW4gZXNjYXBlZCwgd2UganVzdCBoYXZlIHRvIGpvaW5cbmNvbnN0IHJhbmdlc1RvU3RyaW5nID0gKHJhbmdlczogc3RyaW5nW10pOiBzdHJpbmcgPT4gcmFuZ2VzLmpvaW4oJycpXG5cbmV4cG9ydCB0eXBlIFBhcnNlQ2xhc3NSZXN1bHQgPSBbXG4gIHNyYzogc3RyaW5nLFxuICB1RmxhZzogYm9vbGVhbixcbiAgY29uc3VtZWQ6IG51bWJlcixcbiAgaGFzTWFnaWM6IGJvb2xlYW5cbl1cblxuLy8gdGFrZXMgYSBnbG9iIHN0cmluZyBhdCBhIHBvc2l4IGJyYWNlIGV4cHJlc3Npb24sIGFuZCByZXR1cm5zXG4vLyBhbiBlcXVpdmFsZW50IHJlZ3VsYXIgZXhwcmVzc2lvbiBzb3VyY2UsIGFuZCBib29sZWFuIGluZGljYXRpbmdcbi8vIHdoZXRoZXIgdGhlIC91IGZsYWcgbmVlZHMgdG8gYmUgYXBwbGllZCwgYW5kIHRoZSBudW1iZXIgb2YgY2hhcnNcbi8vIGNvbnN1bWVkIHRvIHBhcnNlIHRoZSBjaGFyYWN0ZXIgY2xhc3MuXG4vLyBUaGlzIGFsc28gcmVtb3ZlcyBvdXQgb2Ygb3JkZXIgcmFuZ2VzLCBhbmQgcmV0dXJucyAoJC4pIGlmIHRoZVxuLy8gZW50aXJlIGNsYXNzIGp1c3Qgbm8gZ29vZC5cbmV4cG9ydCBjb25zdCBwYXJzZUNsYXNzID0gKFxuICBnbG9iOiBzdHJpbmcsXG4gIHBvc2l0aW9uOiBudW1iZXJcbik6IFBhcnNlQ2xhc3NSZXN1bHQgPT4ge1xuICBjb25zdCBwb3MgPSBwb3NpdGlvblxuICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgaWYgKGdsb2IuY2hhckF0KHBvcykgIT09ICdbJykge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGluIGEgYnJhY2UgZXhwcmVzc2lvbicpXG4gIH1cbiAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgY29uc3QgcmFuZ2VzOiBzdHJpbmdbXSA9IFtdXG4gIGNvbnN0IG5lZ3M6IHN0cmluZ1tdID0gW11cblxuICBsZXQgaSA9IHBvcyArIDFcbiAgbGV0IHNhd1N0YXJ0ID0gZmFsc2VcbiAgbGV0IHVmbGFnID0gZmFsc2VcbiAgbGV0IGVzY2FwaW5nID0gZmFsc2VcbiAgbGV0IG5lZ2F0ZSA9IGZhbHNlXG4gIGxldCBlbmRQb3MgPSBwb3NcbiAgbGV0IHJhbmdlU3RhcnQgPSAnJ1xuICBXSElMRTogd2hpbGUgKGkgPCBnbG9iLmxlbmd0aCkge1xuICAgIGNvbnN0IGMgPSBnbG9iLmNoYXJBdChpKVxuICAgIGlmICgoYyA9PT0gJyEnIHx8IGMgPT09ICdeJykgJiYgaSA9PT0gcG9zICsgMSkge1xuICAgICAgbmVnYXRlID0gdHJ1ZVxuICAgICAgaSsrXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmIChjID09PSAnXScgJiYgc2F3U3RhcnQgJiYgIWVzY2FwaW5nKSB7XG4gICAgICBlbmRQb3MgPSBpICsgMVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBzYXdTdGFydCA9IHRydWVcbiAgICBpZiAoYyA9PT0gJ1xcXFwnKSB7XG4gICAgICBpZiAoIWVzY2FwaW5nKSB7XG4gICAgICAgIGVzY2FwaW5nID0gdHJ1ZVxuICAgICAgICBpKytcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIC8vIGVzY2FwZWQgXFwgY2hhciwgZmFsbCB0aHJvdWdoIGFuZCB0cmVhdCBsaWtlIG5vcm1hbCBjaGFyXG4gICAgfVxuICAgIGlmIChjID09PSAnWycgJiYgIWVzY2FwaW5nKSB7XG4gICAgICAvLyBlaXRoZXIgYSBwb3NpeCBjbGFzcywgYSBjb2xsYXRpb24gZXF1aXZhbGVudCwgb3IganVzdCBhIFtcbiAgICAgIGZvciAoY29uc3QgW2NscywgW3VuaXAsIHUsIG5lZ11dIG9mIE9iamVjdC5lbnRyaWVzKHBvc2l4Q2xhc3NlcykpIHtcbiAgICAgICAgaWYgKGdsb2Iuc3RhcnRzV2l0aChjbHMsIGkpKSB7XG4gICAgICAgICAgLy8gaW52YWxpZCwgW2EtW10gaXMgZmluZSwgYnV0IG5vdCBbYS1bOmFscGhhXV1cbiAgICAgICAgICBpZiAocmFuZ2VTdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIFsnJC4nLCBmYWxzZSwgZ2xvYi5sZW5ndGggLSBwb3MsIHRydWVdXG4gICAgICAgICAgfVxuICAgICAgICAgIGkgKz0gY2xzLmxlbmd0aFxuICAgICAgICAgIGlmIChuZWcpIG5lZ3MucHVzaCh1bmlwKVxuICAgICAgICAgIGVsc2UgcmFuZ2VzLnB1c2godW5pcClcbiAgICAgICAgICB1ZmxhZyA9IHVmbGFnIHx8IHVcbiAgICAgICAgICBjb250aW51ZSBXSElMRVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gbm93IGl0J3MganVzdCBhIG5vcm1hbCBjaGFyYWN0ZXIsIGVmZmVjdGl2ZWx5XG4gICAgZXNjYXBpbmcgPSBmYWxzZVxuICAgIGlmIChyYW5nZVN0YXJ0KSB7XG4gICAgICAvLyB0aHJvdyB0aGlzIHJhbmdlIGF3YXkgaWYgaXQncyBub3QgdmFsaWQsIGJ1dCBvdGhlcnNcbiAgICAgIC8vIGNhbiBzdGlsbCBtYXRjaC5cbiAgICAgIGlmIChjID4gcmFuZ2VTdGFydCkge1xuICAgICAgICByYW5nZXMucHVzaChicmFjZUVzY2FwZShyYW5nZVN0YXJ0KSArICctJyArIGJyYWNlRXNjYXBlKGMpKVxuICAgICAgfSBlbHNlIGlmIChjID09PSByYW5nZVN0YXJ0KSB7XG4gICAgICAgIHJhbmdlcy5wdXNoKGJyYWNlRXNjYXBlKGMpKVxuICAgICAgfVxuICAgICAgcmFuZ2VTdGFydCA9ICcnXG4gICAgICBpKytcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gbm93IG1pZ2h0IGJlIHRoZSBzdGFydCBvZiBhIHJhbmdlLlxuICAgIC8vIGNhbiBiZSBlaXRoZXIgYy1kIG9yIGMtXSBvciBjPG1vcmUuLi4+XSBvciBjXSBhdCB0aGlzIHBvaW50XG4gICAgaWYgKGdsb2Iuc3RhcnRzV2l0aCgnLV0nLCBpICsgMSkpIHtcbiAgICAgIHJhbmdlcy5wdXNoKGJyYWNlRXNjYXBlKGMgKyAnLScpKVxuICAgICAgaSArPSAyXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoZ2xvYi5zdGFydHNXaXRoKCctJywgaSArIDEpKSB7XG4gICAgICByYW5nZVN0YXJ0ID0gY1xuICAgICAgaSArPSAyXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIC8vIG5vdCB0aGUgc3RhcnQgb2YgYSByYW5nZSwganVzdCBhIHNpbmdsZSBjaGFyYWN0ZXJcbiAgICByYW5nZXMucHVzaChicmFjZUVzY2FwZShjKSlcbiAgICBpKytcbiAgfVxuXG4gIGlmIChlbmRQb3MgPCBpKSB7XG4gICAgLy8gZGlkbid0IHNlZSB0aGUgZW5kIG9mIHRoZSBjbGFzcywgbm90IGEgdmFsaWQgY2xhc3MsXG4gICAgLy8gYnV0IG1pZ2h0IHN0aWxsIGJlIHZhbGlkIGFzIGEgbGl0ZXJhbCBtYXRjaC5cbiAgICByZXR1cm4gWycnLCBmYWxzZSwgMCwgZmFsc2VdXG4gIH1cblxuICAvLyBpZiB3ZSBnb3Qgbm8gcmFuZ2VzIGFuZCBubyBuZWdhdGVzLCB0aGVuIHdlIGhhdmUgYSByYW5nZSB0aGF0XG4gIC8vIGNhbm5vdCBwb3NzaWJseSBtYXRjaCBhbnl0aGluZywgYW5kIHRoYXQgcG9pc29ucyB0aGUgd2hvbGUgZ2xvYlxuICBpZiAoIXJhbmdlcy5sZW5ndGggJiYgIW5lZ3MubGVuZ3RoKSB7XG4gICAgcmV0dXJuIFsnJC4nLCBmYWxzZSwgZ2xvYi5sZW5ndGggLSBwb3MsIHRydWVdXG4gIH1cblxuICAvLyBpZiB3ZSBnb3Qgb25lIHBvc2l0aXZlIHJhbmdlLCBhbmQgaXQncyBhIHNpbmdsZSBjaGFyYWN0ZXIsIHRoZW4gdGhhdCdzXG4gIC8vIG5vdCBhY3R1YWxseSBhIG1hZ2ljIHBhdHRlcm4sIGl0J3MganVzdCB0aGF0IG9uZSBsaXRlcmFsIGNoYXJhY3Rlci5cbiAgLy8gd2Ugc2hvdWxkIG5vdCB0cmVhdCB0aGF0IGFzIFwibWFnaWNcIiwgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIHRoZSBsaXRlcmFsXG4gIC8vIGNoYXJhY3Rlci4gW19dIGlzIGEgcGVyZmVjdGx5IHZhbGlkIHdheSB0byBlc2NhcGUgZ2xvYiBtYWdpYyBjaGFycy5cbiAgaWYgKFxuICAgIG5lZ3MubGVuZ3RoID09PSAwICYmXG4gICAgcmFuZ2VzLmxlbmd0aCA9PT0gMSAmJlxuICAgIC9eXFxcXD8uJC8udGVzdChyYW5nZXNbMF0pICYmXG4gICAgIW5lZ2F0ZVxuICApIHtcbiAgICBjb25zdCByID0gcmFuZ2VzWzBdLmxlbmd0aCA9PT0gMiA/IHJhbmdlc1swXS5zbGljZSgtMSkgOiByYW5nZXNbMF1cbiAgICByZXR1cm4gW3JlZ2V4cEVzY2FwZShyKSwgZmFsc2UsIGVuZFBvcyAtIHBvcywgZmFsc2VdXG4gIH1cblxuICBjb25zdCBzcmFuZ2VzID0gJ1snICsgKG5lZ2F0ZSA/ICdeJyA6ICcnKSArIHJhbmdlc1RvU3RyaW5nKHJhbmdlcykgKyAnXSdcbiAgY29uc3Qgc25lZ3MgPSAnWycgKyAobmVnYXRlID8gJycgOiAnXicpICsgcmFuZ2VzVG9TdHJpbmcobmVncykgKyAnXSdcbiAgY29uc3QgY29tYiA9XG4gICAgcmFuZ2VzLmxlbmd0aCAmJiBuZWdzLmxlbmd0aFxuICAgICAgPyAnKCcgKyBzcmFuZ2VzICsgJ3wnICsgc25lZ3MgKyAnKSdcbiAgICAgIDogcmFuZ2VzLmxlbmd0aFxuICAgICAgPyBzcmFuZ2VzXG4gICAgICA6IHNuZWdzXG5cbiAgcmV0dXJuIFtjb21iLCB1ZmxhZywgZW5kUG9zIC0gcG9zLCB0cnVlXVxufVxuIiwgImltcG9ydCB7IE1pbmltYXRjaE9wdGlvbnMgfSBmcm9tICcuL2luZGV4LmpzJ1xuLyoqXG4gKiBVbi1lc2NhcGUgYSBzdHJpbmcgdGhhdCBoYXMgYmVlbiBlc2NhcGVkIHdpdGgge0BsaW5rIGVzY2FwZX0uXG4gKlxuICogSWYgdGhlIHtAbGluayB3aW5kb3dzUGF0aHNOb0VzY2FwZX0gb3B0aW9uIGlzIHVzZWQsIHRoZW4gc3F1YXJlLWJyYWNlXG4gKiBlc2NhcGVzIGFyZSByZW1vdmVkLCBidXQgbm90IGJhY2tzbGFzaCBlc2NhcGVzLiAgRm9yIGV4YW1wbGUsIGl0IHdpbGwgdHVyblxuICogdGhlIHN0cmluZyBgJ1sqXSdgIGludG8gYCpgLCBidXQgaXQgd2lsbCBub3QgdHVybiBgJ1xcXFwqJ2AgaW50byBgJyonYCxcbiAqIGJlY3Vhc2UgYFxcYCBpcyBhIHBhdGggc2VwYXJhdG9yIGluIGB3aW5kb3dzUGF0aHNOb0VzY2FwZWAgbW9kZS5cbiAqXG4gKiBXaGVuIGB3aW5kb3dzUGF0aHNOb0VzY2FwZWAgaXMgbm90IHNldCwgdGhlbiBib3RoIGJyYWNlIGVzY2FwZXMgYW5kXG4gKiBiYWNrc2xhc2ggZXNjYXBlcyBhcmUgcmVtb3ZlZC5cbiAqXG4gKiBTbGFzaGVzIChhbmQgYmFja3NsYXNoZXMgaW4gYHdpbmRvd3NQYXRoc05vRXNjYXBlYCBtb2RlKSBjYW5ub3QgYmUgZXNjYXBlZFxuICogb3IgdW5lc2NhcGVkLlxuICovXG5leHBvcnQgY29uc3QgdW5lc2NhcGUgPSAoXG4gIHM6IHN0cmluZyxcbiAge1xuICAgIHdpbmRvd3NQYXRoc05vRXNjYXBlID0gZmFsc2UsXG4gIH06IFBpY2s8TWluaW1hdGNoT3B0aW9ucywgJ3dpbmRvd3NQYXRoc05vRXNjYXBlJz4gPSB7fVxuKSA9PiB7XG4gIHJldHVybiB3aW5kb3dzUGF0aHNOb0VzY2FwZVxuICAgID8gcy5yZXBsYWNlKC9cXFsoW15cXC9cXFxcXSlcXF0vZywgJyQxJylcbiAgICA6IHMucmVwbGFjZSgvKCg/IVxcXFwpLnxeKVxcWyhbXlxcL1xcXFxdKVxcXS9nLCAnJDEkMicpLnJlcGxhY2UoL1xcXFwoW15cXC9dKS9nLCAnJDEnKVxufVxuIiwgIi8vIHBhcnNlIGEgc2luZ2xlIHBhdGggcG9ydGlvblxuXG5pbXBvcnQgeyBwYXJzZUNsYXNzIH0gZnJvbSAnLi9icmFjZS1leHByZXNzaW9ucy5qcydcbmltcG9ydCB7IE1pbmltYXRjaE9wdGlvbnMsIE1NUmVnRXhwIH0gZnJvbSAnLi9pbmRleC5qcydcbmltcG9ydCB7IHVuZXNjYXBlIH0gZnJvbSAnLi91bmVzY2FwZS5qcydcblxuLy8gY2xhc3NlcyBbXSBhcmUgaGFuZGxlZCBieSB0aGUgcGFyc2VDbGFzcyBtZXRob2Rcbi8vIGZvciBwb3NpdGl2ZSBleHRnbG9icywgd2Ugc3ViLXBhcnNlIHRoZSBjb250ZW50cywgYW5kIGNvbWJpbmUsXG4vLyB3aXRoIHRoZSBhcHByb3ByaWF0ZSByZWdleHAgY2xvc2UuXG4vLyBmb3IgbmVnYXRpdmUgZXh0Z2xvYnMsIHdlIHN1Yi1wYXJzZSB0aGUgY29udGVudHMsIGJ1dCB0aGVuXG4vLyBoYXZlIHRvIGluY2x1ZGUgdGhlIHJlc3Qgb2YgdGhlIHBhdHRlcm4sIHRoZW4gdGhlIHBhcmVudCwgZXRjLixcbi8vIGFzIHRoZSB0aGluZyB0aGF0IGNhbm5vdCBiZSBiZWNhdXNlIFJlZ0V4cCBuZWdhdGl2ZSBsb29rYWhlYWRzXG4vLyBhcmUgZGlmZmVyZW50IGZyb20gZ2xvYnMuXG4vL1xuLy8gU28gZm9yIGV4YW1wbGU6XG4vLyBhQChpfHchKHh8eSl6fGopYiA9PiBeYShpfHcoKCE/KHh8eSl6YikuKil6fGopYiRcbi8vICAgMSAgIDIgMyAgIDQgNSA2ICAgICAgMSAgIDIgICAgMyAgIDQ2ICAgICAgNSA2XG4vL1xuLy8gQXNzZW1ibGluZyB0aGUgZXh0Z2xvYiByZXF1aXJlcyBub3QganVzdCB0aGUgbmVnYXRlZCBwYXR0ZXJucyB0aGVtc2VsdmVzLFxuLy8gYnV0IGFsc28gYW55dGhpbmcgZm9sbG93aW5nIHRoZSBuZWdhdGl2ZSBwYXR0ZXJucyB1cCB0byB0aGUgYm91bmRhcnlcbi8vIG9mIHRoZSBjdXJyZW50IHBhdHRlcm4sIHBsdXMgYW55dGhpbmcgZm9sbG93aW5nIGluIHRoZSBwYXJlbnQgcGF0dGVybi5cbi8vXG4vL1xuLy8gU28sIGZpcnN0LCB3ZSBwYXJzZSB0aGUgc3RyaW5nIGludG8gYW4gQVNUIG9mIGV4dGdsb2JzLCB3aXRob3V0IHR1cm5pbmdcbi8vIGFueXRoaW5nIGludG8gcmVnZXhwcyB5ZXQuXG4vL1xuLy8gWydhJywge0AgW1snaSddLCBbJ3cnLCB7IVsneCcsICd5J119LCAneiddLCBbJ2onXV19LCAnYiddXG4vL1xuLy8gVGhlbiwgZm9yIGFsbCB0aGUgbmVnYXRpdmUgZXh0Z2xvYnMsIHdlIGFwcGVuZCB3aGF0ZXZlciBjb21lcyBhZnRlciBpblxuLy8gZWFjaCBwYXJlbnQgYXMgdGhlaXIgdGFpbFxuLy9cbi8vIFsnYScsIHtAIFtbJ2knXSwgWyd3JywgeyFbJ3gnLCAneSddLCAneicsICdiJ30sICd6J10sIFsnaiddXX0sICdiJ11cbi8vXG4vLyBMYXN0bHksIHdlIHR1cm4gZWFjaCBvZiB0aGVzZSBwaWVjZXMgaW50byBhIHJlZ2V4cCwgYW5kIGpvaW5cbi8vXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtLS0tLSAuKiBiZWNhdXNlIHRoZXJlJ3MgbW9yZSBmb2xsb3dpbmcsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgICAgdiAgb3RoZXJ3aXNlLCAuKyBiZWNhdXNlIGl0IG11c3QgYmVcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAgICB2ICAqc29tZXRoaW5nKiB0aGVyZS5cbi8vIFsnXmEnLCB7QCBbJ2knLCAndyg/OighPyg/Onh8eSkuKnpiJCkuKil6JywgJ2onIF19LCAnYiQnXVxuLy8gICBjb3B5IHdoYXQgZm9sbG93cyBpbnRvIGhlcmUtLV5eXl5eXG4vLyBbJ15hJywgJyg/Oml8dyg/Oig/ISg/Onh8eSkuKnpiJCkuKil6fGopJywgJ2IkJ11cbi8vIFsnXmEoPzppfHcoPzooPyEoPzp4fHkpLip6YiQpLiopenxqKWIkJ11cblxuZXhwb3J0IHR5cGUgRXh0Z2xvYlR5cGUgPSAnIScgfCAnPycgfCAnKycgfCAnKicgfCAnQCdcbmNvbnN0IHR5cGVzID0gbmV3IFNldDxFeHRnbG9iVHlwZT4oWychJywgJz8nLCAnKycsICcqJywgJ0AnXSlcbmNvbnN0IGlzRXh0Z2xvYlR5cGUgPSAoYzogc3RyaW5nKTogYyBpcyBFeHRnbG9iVHlwZSA9PlxuICB0eXBlcy5oYXMoYyBhcyBFeHRnbG9iVHlwZSlcblxuLy8gUGF0dGVybnMgdGhhdCBnZXQgcHJlcGVuZGVkIHRvIGJpbmQgdG8gdGhlIHN0YXJ0IG9mIGVpdGhlciB0aGVcbi8vIGVudGlyZSBzdHJpbmcsIG9yIGp1c3QgYSBzaW5nbGUgcGF0aCBwb3J0aW9uLCB0byBwcmV2ZW50IGRvdHNcbi8vIGFuZC9vciB0cmF2ZXJzYWwgcGF0dGVybnMsIHdoZW4gbmVlZGVkLlxuLy8gRXh0cyBkb24ndCBuZWVkIHRoZSBeIG9yIC8gYml0LCBiZWNhdXNlIHRoZSByb290IGJpbmRzIHRoYXQgYWxyZWFkeS5cbmNvbnN0IHN0YXJ0Tm9UcmF2ZXJzYWwgPSAnKD8hKD86XnwvKVxcXFwuXFxcXC4/KD86JHwvKSknXG5jb25zdCBzdGFydE5vRG90ID0gJyg/IVxcXFwuKSdcblxuLy8gY2hhcmFjdGVycyB0aGF0IGluZGljYXRlIGEgc3RhcnQgb2YgcGF0dGVybiBuZWVkcyB0aGUgXCJubyBkb3RzXCIgYml0LFxuLy8gYmVjYXVzZSBhIGRvdCAqbWlnaHQqIGJlIG1hdGNoZWQuICggaXMgbm90IGluIHRoZSBsaXN0LCBiZWNhdXNlIGluXG4vLyB0aGUgY2FzZSBvZiBhIGNoaWxkIGV4dGdsb2IsIGl0IHdpbGwgaGFuZGxlIHRoZSBwcmV2ZW50aW9uIGl0c2VsZi5cbmNvbnN0IGFkZFBhdHRlcm5TdGFydCA9IG5ldyBTZXQoWydbJywgJy4nXSlcbi8vIGNhc2VzIHdoZXJlIHRyYXZlcnNhbCBpcyBBLU9LLCBubyBkb3QgcHJldmVudGlvbiBuZWVkZWRcbmNvbnN0IGp1c3REb3RzID0gbmV3IFNldChbJy4uJywgJy4nXSlcbmNvbnN0IHJlU3BlY2lhbHMgPSBuZXcgU2V0KCcoKS4qe30rP1tdXiRcXFxcIScpXG5jb25zdCByZWdFeHBFc2NhcGUgPSAoczogc3RyaW5nKSA9PlxuICBzLnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCAnXFxcXCQmJylcblxuLy8gYW55IHNpbmdsZSB0aGluZyBvdGhlciB0aGFuIC9cbmNvbnN0IHFtYXJrID0gJ1teL10nXG5cbi8vICogPT4gYW55IG51bWJlciBvZiBjaGFyYWN0ZXJzXG5jb25zdCBzdGFyID0gcW1hcmsgKyAnKj8nXG4vLyB1c2UgKyB3aGVuIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgKnNvbWV0aGluZyogbWF0Y2hlcywgYmVjYXVzZSB0aGUgKiBpc1xuLy8gdGhlIG9ubHkgdGhpbmcgaW4gdGhlIHBhdGggcG9ydGlvbi5cbmNvbnN0IHN0YXJOb0VtcHR5ID0gcW1hcmsgKyAnKz8nXG5cbi8vIHJlbW92ZSB0aGUgXFwgY2hhcnMgdGhhdCB3ZSBhZGRlZCBpZiB3ZSBlbmQgdXAgZG9pbmcgYSBub25tYWdpYyBjb21wYXJlXG4vLyBjb25zdCBkZXNsYXNoID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9cXFxcKC4pL2csICckMScpXG5cbmV4cG9ydCBjbGFzcyBBU1Qge1xuICB0eXBlOiBFeHRnbG9iVHlwZSB8IG51bGxcbiAgcmVhZG9ubHkgI3Jvb3Q6IEFTVFxuXG4gICNoYXNNYWdpYz86IGJvb2xlYW5cbiAgI3VmbGFnOiBib29sZWFuID0gZmFsc2VcbiAgI3BhcnRzOiAoc3RyaW5nIHwgQVNUKVtdID0gW11cbiAgcmVhZG9ubHkgI3BhcmVudD86IEFTVFxuICByZWFkb25seSAjcGFyZW50SW5kZXg6IG51bWJlclxuICAjbmVnczogQVNUW11cbiAgI2ZpbGxlZE5lZ3M6IGJvb2xlYW4gPSBmYWxzZVxuICAjb3B0aW9uczogTWluaW1hdGNoT3B0aW9uc1xuICAjdG9TdHJpbmc/OiBzdHJpbmdcbiAgLy8gc2V0IHRvIHRydWUgaWYgaXQncyBhbiBleHRnbG9iIHdpdGggbm8gY2hpbGRyZW5cbiAgLy8gKHdoaWNoIHJlYWxseSBtZWFucyBvbmUgY2hpbGQgb2YgJycpXG4gICNlbXB0eUV4dDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgdHlwZTogRXh0Z2xvYlR5cGUgfCBudWxsLFxuICAgIHBhcmVudD86IEFTVCxcbiAgICBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zID0ge31cbiAgKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZVxuICAgIC8vIGV4dGdsb2JzIGFyZSBpbmhlcmVudGx5IG1hZ2ljYWxcbiAgICBpZiAodHlwZSkgdGhpcy4jaGFzTWFnaWMgPSB0cnVlXG4gICAgdGhpcy4jcGFyZW50ID0gcGFyZW50XG4gICAgdGhpcy4jcm9vdCA9IHRoaXMuI3BhcmVudCA/IHRoaXMuI3BhcmVudC4jcm9vdCA6IHRoaXNcbiAgICB0aGlzLiNvcHRpb25zID0gdGhpcy4jcm9vdCA9PT0gdGhpcyA/IG9wdGlvbnMgOiB0aGlzLiNyb290LiNvcHRpb25zXG4gICAgdGhpcy4jbmVncyA9IHRoaXMuI3Jvb3QgPT09IHRoaXMgPyBbXSA6IHRoaXMuI3Jvb3QuI25lZ3NcbiAgICBpZiAodHlwZSA9PT0gJyEnICYmICF0aGlzLiNyb290LiNmaWxsZWROZWdzKSB0aGlzLiNuZWdzLnB1c2godGhpcylcbiAgICB0aGlzLiNwYXJlbnRJbmRleCA9IHRoaXMuI3BhcmVudCA/IHRoaXMuI3BhcmVudC4jcGFydHMubGVuZ3RoIDogMFxuICB9XG5cbiAgZ2V0IGhhc01hZ2ljKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIGlmICh0aGlzLiNoYXNNYWdpYyAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdGhpcy4jaGFzTWFnaWNcbiAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLiNwYXJ0cykge1xuICAgICAgaWYgKHR5cGVvZiBwID09PSAnc3RyaW5nJykgY29udGludWVcbiAgICAgIGlmIChwLnR5cGUgfHwgcC5oYXNNYWdpYykgcmV0dXJuICh0aGlzLiNoYXNNYWdpYyA9IHRydWUpXG4gICAgfVxuICAgIC8vIG5vdGU6IHdpbGwgYmUgdW5kZWZpbmVkIHVudGlsIHdlIGdlbmVyYXRlIHRoZSByZWdleHAgc3JjIGFuZCBmaW5kIG91dFxuICAgIHJldHVybiB0aGlzLiNoYXNNYWdpY1xuICB9XG5cbiAgLy8gcmVjb25zdHJ1Y3RzIHRoZSBwYXR0ZXJuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuI3RvU3RyaW5nICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLiN0b1N0cmluZ1xuICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICByZXR1cm4gKHRoaXMuI3RvU3RyaW5nID0gdGhpcy4jcGFydHMubWFwKHAgPT4gU3RyaW5nKHApKS5qb2luKCcnKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICh0aGlzLiN0b1N0cmluZyA9XG4gICAgICAgIHRoaXMudHlwZSArICcoJyArIHRoaXMuI3BhcnRzLm1hcChwID0+IFN0cmluZyhwKSkuam9pbignfCcpICsgJyknKVxuICAgIH1cbiAgfVxuXG4gICNmaWxsTmVncygpIHtcbiAgICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgICBpZiAodGhpcyAhPT0gdGhpcy4jcm9vdCkgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgb25seSBjYWxsIG9uIHJvb3QnKVxuICAgIGlmICh0aGlzLiNmaWxsZWROZWdzKSByZXR1cm4gdGhpc1xuICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG5cbiAgICAvLyBjYWxsIHRvU3RyaW5nKCkgb25jZSB0byBmaWxsIHRoaXMgb3V0XG4gICAgdGhpcy50b1N0cmluZygpXG4gICAgdGhpcy4jZmlsbGVkTmVncyA9IHRydWVcbiAgICBsZXQgbjogQVNUIHwgdW5kZWZpbmVkXG4gICAgd2hpbGUgKChuID0gdGhpcy4jbmVncy5wb3AoKSkpIHtcbiAgICAgIGlmIChuLnR5cGUgIT09ICchJykgY29udGludWVcbiAgICAgIC8vIHdhbGsgdXAgdGhlIHRyZWUsIGFwcGVuZGluZyBldmVydGhpbmcgdGhhdCBjb21lcyBBRlRFUiBwYXJlbnRJbmRleFxuICAgICAgbGV0IHA6IEFTVCB8IHVuZGVmaW5lZCA9IG5cbiAgICAgIGxldCBwcCA9IHAuI3BhcmVudFxuICAgICAgd2hpbGUgKHBwKSB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgbGV0IGkgPSBwLiNwYXJlbnRJbmRleCArIDE7XG4gICAgICAgICAgIXBwLnR5cGUgJiYgaSA8IHBwLiNwYXJ0cy5sZW5ndGg7XG4gICAgICAgICAgaSsrXG4gICAgICAgICkge1xuICAgICAgICAgIGZvciAoY29uc3QgcGFydCBvZiBuLiNwYXJ0cykge1xuICAgICAgICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3RyaW5nIHBhcnQgaW4gZXh0Z2xvYiBBU1Q/PycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICAgICAgICAgICAgcGFydC5jb3B5SW4ocHAuI3BhcnRzW2ldKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwID0gcHBcbiAgICAgICAgcHAgPSBwLiNwYXJlbnRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1c2goLi4ucGFydHM6IChzdHJpbmcgfCBBU1QpW10pIHtcbiAgICBmb3IgKGNvbnN0IHAgb2YgcGFydHMpIHtcbiAgICAgIGlmIChwID09PSAnJykgY29udGludWVcbiAgICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgICAgaWYgKHR5cGVvZiBwICE9PSAnc3RyaW5nJyAmJiAhKHAgaW5zdGFuY2VvZiBBU1QgJiYgcC4jcGFyZW50ID09PSB0aGlzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcGFydDogJyArIHApXG4gICAgICB9XG4gICAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICAgICAgdGhpcy4jcGFydHMucHVzaChwKVxuICAgIH1cbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCByZXQ6IGFueVtdID1cbiAgICAgIHRoaXMudHlwZSA9PT0gbnVsbFxuICAgICAgICA/IHRoaXMuI3BhcnRzLnNsaWNlKCkubWFwKHAgPT4gKHR5cGVvZiBwID09PSAnc3RyaW5nJyA/IHAgOiBwLnRvSlNPTigpKSlcbiAgICAgICAgOiBbdGhpcy50eXBlLCAuLi50aGlzLiNwYXJ0cy5tYXAocCA9PiAocCBhcyBBU1QpLnRvSlNPTigpKV1cbiAgICBpZiAodGhpcy5pc1N0YXJ0KCkgJiYgIXRoaXMudHlwZSkgcmV0LnVuc2hpZnQoW10pXG4gICAgaWYgKFxuICAgICAgdGhpcy5pc0VuZCgpICYmXG4gICAgICAodGhpcyA9PT0gdGhpcy4jcm9vdCB8fFxuICAgICAgICAodGhpcy4jcm9vdC4jZmlsbGVkTmVncyAmJiB0aGlzLiNwYXJlbnQ/LnR5cGUgPT09ICchJykpXG4gICAgKSB7XG4gICAgICByZXQucHVzaCh7fSlcbiAgICB9XG4gICAgcmV0dXJuIHJldFxuICB9XG5cbiAgaXNTdGFydCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jcm9vdCA9PT0gdGhpcykgcmV0dXJuIHRydWVcbiAgICAvLyBpZiAodGhpcy50eXBlKSByZXR1cm4gISF0aGlzLiNwYXJlbnQ/LmlzU3RhcnQoKVxuICAgIGlmICghdGhpcy4jcGFyZW50Py5pc1N0YXJ0KCkpIHJldHVybiBmYWxzZVxuICAgIGlmICh0aGlzLiNwYXJlbnRJbmRleCA9PT0gMCkgcmV0dXJuIHRydWVcbiAgICAvLyBpZiBldmVyeXRoaW5nIEFIRUFEIG9mIHRoaXMgaXMgYSBuZWdhdGlvbiwgdGhlbiBpdCdzIHN0aWxsIHRoZSBcInN0YXJ0XCJcbiAgICBjb25zdCBwID0gdGhpcy4jcGFyZW50XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLiNwYXJlbnRJbmRleDsgaSsrKSB7XG4gICAgICBjb25zdCBwcCA9IHAuI3BhcnRzW2ldXG4gICAgICBpZiAoIShwcCBpbnN0YW5jZW9mIEFTVCAmJiBwcC50eXBlID09PSAnIScpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaXNFbmQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuI3Jvb3QgPT09IHRoaXMpIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMuI3BhcmVudD8udHlwZSA9PT0gJyEnKSByZXR1cm4gdHJ1ZVxuICAgIGlmICghdGhpcy4jcGFyZW50Py5pc0VuZCgpKSByZXR1cm4gZmFsc2VcbiAgICBpZiAoIXRoaXMudHlwZSkgcmV0dXJuIHRoaXMuI3BhcmVudD8uaXNFbmQoKVxuICAgIC8vIGlmIG5vdCByb290LCBpdCdsbCBhbHdheXMgaGF2ZSBhIHBhcmVudFxuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIGNvbnN0IHBsID0gdGhpcy4jcGFyZW50ID8gdGhpcy4jcGFyZW50LiNwYXJ0cy5sZW5ndGggOiAwXG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICByZXR1cm4gdGhpcy4jcGFyZW50SW5kZXggPT09IHBsIC0gMVxuICB9XG5cbiAgY29weUluKHBhcnQ6IEFTVCB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgcGFydCA9PT0gJ3N0cmluZycpIHRoaXMucHVzaChwYXJ0KVxuICAgIGVsc2UgdGhpcy5wdXNoKHBhcnQuY2xvbmUodGhpcykpXG4gIH1cblxuICBjbG9uZShwYXJlbnQ6IEFTVCkge1xuICAgIGNvbnN0IGMgPSBuZXcgQVNUKHRoaXMudHlwZSwgcGFyZW50KVxuICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLiNwYXJ0cykge1xuICAgICAgYy5jb3B5SW4ocClcbiAgICB9XG4gICAgcmV0dXJuIGNcbiAgfVxuXG4gIHN0YXRpYyAjcGFyc2VBU1QoXG4gICAgc3RyOiBzdHJpbmcsXG4gICAgYXN0OiBBU1QsXG4gICAgcG9zOiBudW1iZXIsXG4gICAgb3B0OiBNaW5pbWF0Y2hPcHRpb25zXG4gICk6IG51bWJlciB7XG4gICAgbGV0IGVzY2FwaW5nID0gZmFsc2VcbiAgICBsZXQgaW5CcmFjZSA9IGZhbHNlXG4gICAgbGV0IGJyYWNlU3RhcnQgPSAtMVxuICAgIGxldCBicmFjZU5lZyA9IGZhbHNlXG4gICAgaWYgKGFzdC50eXBlID09PSBudWxsKSB7XG4gICAgICAvLyBvdXRzaWRlIG9mIGEgZXh0Z2xvYiwgYXBwZW5kIHVudGlsIHdlIGZpbmQgYSBzdGFydFxuICAgICAgbGV0IGkgPSBwb3NcbiAgICAgIGxldCBhY2MgPSAnJ1xuICAgICAgd2hpbGUgKGkgPCBzdHIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGMgPSBzdHIuY2hhckF0KGkrKylcbiAgICAgICAgLy8gc3RpbGwgYWNjdW11bGF0ZSBlc2NhcGVzIGF0IHRoaXMgcG9pbnQsIGJ1dCB3ZSBkbyBpZ25vcmVcbiAgICAgICAgLy8gc3RhcnRzIHRoYXQgYXJlIGVzY2FwZWRcbiAgICAgICAgaWYgKGVzY2FwaW5nIHx8IGMgPT09ICdcXFxcJykge1xuICAgICAgICAgIGVzY2FwaW5nID0gIWVzY2FwaW5nXG4gICAgICAgICAgYWNjICs9IGNcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluQnJhY2UpIHtcbiAgICAgICAgICBpZiAoaSA9PT0gYnJhY2VTdGFydCArIDEpIHtcbiAgICAgICAgICAgIGlmIChjID09PSAnXicgfHwgYyA9PT0gJyEnKSB7XG4gICAgICAgICAgICAgIGJyYWNlTmVnID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gJ10nICYmICEoaSA9PT0gYnJhY2VTdGFydCArIDIgJiYgYnJhY2VOZWcpKSB7XG4gICAgICAgICAgICBpbkJyYWNlID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgYWNjICs9IGNcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGMgPT09ICdbJykge1xuICAgICAgICAgIGluQnJhY2UgPSB0cnVlXG4gICAgICAgICAgYnJhY2VTdGFydCA9IGlcbiAgICAgICAgICBicmFjZU5lZyA9IGZhbHNlXG4gICAgICAgICAgYWNjICs9IGNcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHQubm9leHQgJiYgaXNFeHRnbG9iVHlwZShjKSAmJiBzdHIuY2hhckF0KGkpID09PSAnKCcpIHtcbiAgICAgICAgICBhc3QucHVzaChhY2MpXG4gICAgICAgICAgYWNjID0gJydcbiAgICAgICAgICBjb25zdCBleHQgPSBuZXcgQVNUKGMsIGFzdClcbiAgICAgICAgICBpID0gQVNULiNwYXJzZUFTVChzdHIsIGV4dCwgaSwgb3B0KVxuICAgICAgICAgIGFzdC5wdXNoKGV4dClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGFjYyArPSBjXG4gICAgICB9XG4gICAgICBhc3QucHVzaChhY2MpXG4gICAgICByZXR1cm4gaVxuICAgIH1cblxuICAgIC8vIHNvbWUga2luZCBvZiBleHRnbG9iLCBwb3MgaXMgYXQgdGhlIChcbiAgICAvLyBmaW5kIHRoZSBuZXh0IHwgb3IgKVxuICAgIGxldCBpID0gcG9zICsgMVxuICAgIGxldCBwYXJ0ID0gbmV3IEFTVChudWxsLCBhc3QpXG4gICAgY29uc3QgcGFydHM6IEFTVFtdID0gW11cbiAgICBsZXQgYWNjID0gJydcbiAgICB3aGlsZSAoaSA8IHN0ci5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGMgPSBzdHIuY2hhckF0KGkrKylcbiAgICAgIC8vIHN0aWxsIGFjY3VtdWxhdGUgZXNjYXBlcyBhdCB0aGlzIHBvaW50LCBidXQgd2UgZG8gaWdub3JlXG4gICAgICAvLyBzdGFydHMgdGhhdCBhcmUgZXNjYXBlZFxuICAgICAgaWYgKGVzY2FwaW5nIHx8IGMgPT09ICdcXFxcJykge1xuICAgICAgICBlc2NhcGluZyA9ICFlc2NhcGluZ1xuICAgICAgICBhY2MgKz0gY1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoaW5CcmFjZSkge1xuICAgICAgICBpZiAoaSA9PT0gYnJhY2VTdGFydCArIDEpIHtcbiAgICAgICAgICBpZiAoYyA9PT0gJ14nIHx8IGMgPT09ICchJykge1xuICAgICAgICAgICAgYnJhY2VOZWcgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGMgPT09ICddJyAmJiAhKGkgPT09IGJyYWNlU3RhcnQgKyAyICYmIGJyYWNlTmVnKSkge1xuICAgICAgICAgIGluQnJhY2UgPSBmYWxzZVxuICAgICAgICB9XG4gICAgICAgIGFjYyArPSBjXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9IGVsc2UgaWYgKGMgPT09ICdbJykge1xuICAgICAgICBpbkJyYWNlID0gdHJ1ZVxuICAgICAgICBicmFjZVN0YXJ0ID0gaVxuICAgICAgICBicmFjZU5lZyA9IGZhbHNlXG4gICAgICAgIGFjYyArPSBjXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0V4dGdsb2JUeXBlKGMpICYmIHN0ci5jaGFyQXQoaSkgPT09ICcoJykge1xuICAgICAgICBwYXJ0LnB1c2goYWNjKVxuICAgICAgICBhY2MgPSAnJ1xuICAgICAgICBjb25zdCBleHQgPSBuZXcgQVNUKGMsIHBhcnQpXG4gICAgICAgIHBhcnQucHVzaChleHQpXG4gICAgICAgIGkgPSBBU1QuI3BhcnNlQVNUKHN0ciwgZXh0LCBpLCBvcHQpXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoYyA9PT0gJ3wnKSB7XG4gICAgICAgIHBhcnQucHVzaChhY2MpXG4gICAgICAgIGFjYyA9ICcnXG4gICAgICAgIHBhcnRzLnB1c2gocGFydClcbiAgICAgICAgcGFydCA9IG5ldyBBU1QobnVsbCwgYXN0KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKGMgPT09ICcpJykge1xuICAgICAgICBpZiAoYWNjID09PSAnJyAmJiBhc3QuI3BhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGFzdC4jZW1wdHlFeHQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcGFydC5wdXNoKGFjYylcbiAgICAgICAgYWNjID0gJydcbiAgICAgICAgYXN0LnB1c2goLi4ucGFydHMsIHBhcnQpXG4gICAgICAgIHJldHVybiBpXG4gICAgICB9XG4gICAgICBhY2MgKz0gY1xuICAgIH1cblxuICAgIC8vIHVuZmluaXNoZWQgZXh0Z2xvYlxuICAgIC8vIGlmIHdlIGdvdCBoZXJlLCBpdCB3YXMgYSBtYWxmb3JtZWQgZXh0Z2xvYiEgbm90IGFuIGV4dGdsb2IsIGJ1dFxuICAgIC8vIG1heWJlIHNvbWV0aGluZyBlbHNlIGluIHRoZXJlLlxuICAgIGFzdC50eXBlID0gbnVsbFxuICAgIGFzdC4jaGFzTWFnaWMgPSB1bmRlZmluZWRcbiAgICBhc3QuI3BhcnRzID0gW3N0ci5zdWJzdHJpbmcocG9zIC0gMSldXG4gICAgcmV0dXJuIGlcbiAgfVxuXG4gIHN0YXRpYyBmcm9tR2xvYihwYXR0ZXJuOiBzdHJpbmcsIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGFzdCA9IG5ldyBBU1QobnVsbCwgdW5kZWZpbmVkLCBvcHRpb25zKVxuICAgIEFTVC4jcGFyc2VBU1QocGF0dGVybiwgYXN0LCAwLCBvcHRpb25zKVxuICAgIHJldHVybiBhc3RcbiAgfVxuXG4gIC8vIHJldHVybnMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpZiB0aGVyZSdzIG1hZ2ljLCBvciB0aGUgdW5lc2NhcGVkXG4gIC8vIHN0cmluZyBpZiBub3QuXG4gIHRvTU1QYXR0ZXJuKCk6IE1NUmVnRXhwIHwgc3RyaW5nIHtcbiAgICAvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gcm9vdFxuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIGlmICh0aGlzICE9PSB0aGlzLiNyb290KSByZXR1cm4gdGhpcy4jcm9vdC50b01NUGF0dGVybigpXG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICBjb25zdCBnbG9iID0gdGhpcy50b1N0cmluZygpXG4gICAgY29uc3QgW3JlLCBib2R5LCBoYXNNYWdpYywgdWZsYWddID0gdGhpcy50b1JlZ0V4cFNvdXJjZSgpXG4gICAgLy8gaWYgd2UncmUgaW4gbm9jYXNlIG1vZGUsIGFuZCBub3Qgbm9jYXNlTWFnaWNPbmx5LCB0aGVuIHdlIGRvXG4gICAgLy8gc3RpbGwgbmVlZCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBpZiB3ZSBoYXZlIHRvIGNhc2UtaW5zZW5zaXRpdmVseVxuICAgIC8vIG1hdGNoIGNhcGl0YWwvbG93ZXJjYXNlIGNoYXJhY3RlcnMuXG4gICAgY29uc3QgYW55TWFnaWMgPVxuICAgICAgaGFzTWFnaWMgfHxcbiAgICAgIHRoaXMuI2hhc01hZ2ljIHx8XG4gICAgICAodGhpcy4jb3B0aW9ucy5ub2Nhc2UgJiZcbiAgICAgICAgIXRoaXMuI29wdGlvbnMubm9jYXNlTWFnaWNPbmx5ICYmXG4gICAgICAgIGdsb2IudG9VcHBlckNhc2UoKSAhPT0gZ2xvYi50b0xvd2VyQ2FzZSgpKVxuICAgIGlmICghYW55TWFnaWMpIHtcbiAgICAgIHJldHVybiBib2R5XG4gICAgfVxuXG4gICAgY29uc3QgZmxhZ3MgPSAodGhpcy4jb3B0aW9ucy5ub2Nhc2UgPyAnaScgOiAnJykgKyAodWZsYWcgPyAndScgOiAnJylcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgUmVnRXhwKGBeJHtyZX0kYCwgZmxhZ3MpLCB7XG4gICAgICBfc3JjOiByZSxcbiAgICAgIF9nbG9iOiBnbG9iLFxuICAgIH0pXG4gIH1cblxuICAvLyByZXR1cm5zIHRoZSBzdHJpbmcgbWF0Y2gsIHRoZSByZWdleHAgc291cmNlLCB3aGV0aGVyIHRoZXJlJ3MgbWFnaWNcbiAgLy8gaW4gdGhlIHJlZ2V4cCAoc28gYSByZWd1bGFyIGV4cHJlc3Npb24gaXMgcmVxdWlyZWQpIGFuZCB3aGV0aGVyIG9yXG4gIC8vIG5vdCB0aGUgdWZsYWcgaXMgbmVlZGVkIGZvciB0aGUgcmVndWxhciBleHByZXNzaW9uIChmb3IgcG9zaXggY2xhc3NlcylcbiAgLy8gVE9ETzogaW5zdGVhZCBvZiBpbmplY3RpbmcgdGhlIHN0YXJ0L2VuZCBhdCB0aGlzIHBvaW50LCBqdXN0IHJldHVyblxuICAvLyB0aGUgQk9EWSBvZiB0aGUgcmVnZXhwLCBhbG9uZyB3aXRoIHRoZSBzdGFydC9lbmQgcG9ydGlvbnMgc3VpdGFibGVcbiAgLy8gZm9yIGJpbmRpbmcgdGhlIHN0YXJ0L2VuZCBpbiBlaXRoZXIgYSBqb2luZWQgZnVsbC1wYXRoIG1ha2VSZSBjb250ZXh0XG4gIC8vICh3aGVyZSB3ZSBiaW5kIHRvIChefC8pLCBvciBhIHN0YW5kYWxvbmUgbWF0Y2hQYXJ0IGNvbnRleHQgKHdoZXJlXG4gIC8vIHdlIGJpbmQgdG8gXiwgYW5kIG5vdCAvKS4gIE90aGVyd2lzZSBzbGFzaGVzIGdldCBkdXBlZCFcbiAgLy9cbiAgLy8gSW4gcGFydC1tYXRjaGluZyBtb2RlLCB0aGUgc3RhcnQgaXM6XG4gIC8vIC0gaWYgbm90IGlzU3RhcnQ6IG5vdGhpbmdcbiAgLy8gLSBpZiB0cmF2ZXJzYWwgcG9zc2libGUsIGJ1dCBub3QgYWxsb3dlZDogXig/IVxcLlxcLj8kKVxuICAvLyAtIGlmIGRvdHMgYWxsb3dlZCBvciBub3QgcG9zc2libGU6IF5cbiAgLy8gLSBpZiBkb3RzIHBvc3NpYmxlIGFuZCBub3QgYWxsb3dlZDogXig/IVxcLilcbiAgLy8gZW5kIGlzOlxuICAvLyAtIGlmIG5vdCBpc0VuZCgpOiBub3RoaW5nXG4gIC8vIC0gZWxzZTogJFxuICAvL1xuICAvLyBJbiBmdWxsLXBhdGggbWF0Y2hpbmcgbW9kZSwgd2UgcHV0IHRoZSBzbGFzaCBhdCB0aGUgU1RBUlQgb2YgdGhlXG4gIC8vIHBhdHRlcm4sIHNvIHN0YXJ0IGlzOlxuICAvLyAtIGlmIGZpcnN0IHBhdHRlcm46IHNhbWUgYXMgcGFydC1tYXRjaGluZyBtb2RlXG4gIC8vIC0gaWYgbm90IGlzU3RhcnQoKTogbm90aGluZ1xuICAvLyAtIGlmIHRyYXZlcnNhbCBwb3NzaWJsZSwgYnV0IG5vdCBhbGxvd2VkOiAvKD8hXFwuXFwuPyg/OiR8LykpXG4gIC8vIC0gaWYgZG90cyBhbGxvd2VkIG9yIG5vdCBwb3NzaWJsZTogL1xuICAvLyAtIGlmIGRvdHMgcG9zc2libGUgYW5kIG5vdCBhbGxvd2VkOiAvKD8hXFwuKVxuICAvLyBlbmQgaXM6XG4gIC8vIC0gaWYgbGFzdCBwYXR0ZXJuLCBzYW1lIGFzIHBhcnQtbWF0Y2hpbmcgbW9kZVxuICAvLyAtIGVsc2Ugbm90aGluZ1xuICAvL1xuICAvLyBBbHdheXMgcHV0IHRoZSAoPzokfC8pIG9uIG5lZ2F0ZWQgdGFpbHMsIHRob3VnaCwgYmVjYXVzZSB0aGF0IGhhcyB0byBiZVxuICAvLyB0aGVyZSB0byBiaW5kIHRoZSBlbmQgb2YgdGhlIG5lZ2F0ZWQgcGF0dGVybiBwb3J0aW9uLCBhbmQgaXQncyBlYXNpZXIgdG9cbiAgLy8ganVzdCBzdGljayBpdCBpbiBub3cgcmF0aGVyIHRoYW4gdHJ5IHRvIGluamVjdCBpdCBsYXRlciBpbiB0aGUgbWlkZGxlIG9mXG4gIC8vIHRoZSBwYXR0ZXJuLlxuICAvL1xuICAvLyBXZSBjYW4ganVzdCBhbHdheXMgcmV0dXJuIHRoZSBzYW1lIGVuZCwgYW5kIGxlYXZlIGl0IHVwIHRvIHRoZSBjYWxsZXJcbiAgLy8gdG8ga25vdyB3aGV0aGVyIGl0J3MgZ29pbmcgdG8gYmUgdXNlZCBqb2luZWQgb3IgaW4gcGFydHMuXG4gIC8vIEFuZCwgaWYgdGhlIHN0YXJ0IGlzIGFkanVzdGVkIHNsaWdodGx5LCBjYW4gZG8gdGhlIHNhbWUgdGhlcmU6XG4gIC8vIC0gaWYgbm90IGlzU3RhcnQ6IG5vdGhpbmdcbiAgLy8gLSBpZiB0cmF2ZXJzYWwgcG9zc2libGUsIGJ1dCBub3QgYWxsb3dlZDogKD86L3xeKSg/IVxcLlxcLj8kKVxuICAvLyAtIGlmIGRvdHMgYWxsb3dlZCBvciBub3QgcG9zc2libGU6ICg/Oi98XilcbiAgLy8gLSBpZiBkb3RzIHBvc3NpYmxlIGFuZCBub3QgYWxsb3dlZDogKD86L3xeKSg/IVxcLilcbiAgLy9cbiAgLy8gQnV0IGl0J3MgYmV0dGVyIHRvIGhhdmUgYSBzaW1wbGVyIGJpbmRpbmcgd2l0aG91dCBhIGNvbmRpdGlvbmFsLCBmb3JcbiAgLy8gcGVyZm9ybWFuY2UsIHNvIHByb2JhYmx5IGJldHRlciB0byByZXR1cm4gYm90aCBzdGFydCBvcHRpb25zLlxuICAvL1xuICAvLyBUaGVuIHRoZSBjYWxsZXIganVzdCBpZ25vcmVzIHRoZSBlbmQgaWYgaXQncyBub3QgdGhlIGZpcnN0IHBhdHRlcm4sXG4gIC8vIGFuZCB0aGUgc3RhcnQgYWx3YXlzIGdldHMgYXBwbGllZC5cbiAgLy9cbiAgLy8gQnV0IHRoYXQncyBhbHdheXMgZ29pbmcgdG8gYmUgJCBpZiBpdCdzIHRoZSBlbmRpbmcgcGF0dGVybiwgb3Igbm90aGluZyxcbiAgLy8gc28gdGhlIGNhbGxlciBjYW4ganVzdCBhdHRhY2ggJCBhdCB0aGUgZW5kIG9mIHRoZSBwYXR0ZXJuIHdoZW4gYnVpbGRpbmcuXG4gIC8vXG4gIC8vIFNvIHRoZSB0b2RvIGlzOlxuICAvLyAtIGJldHRlciBkZXRlY3Qgd2hhdCBraW5kIG9mIHN0YXJ0IGlzIG5lZWRlZFxuICAvLyAtIHJldHVybiBib3RoIGZsYXZvcnMgb2Ygc3RhcnRpbmcgcGF0dGVyblxuICAvLyAtIGF0dGFjaCAkIGF0IHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4gd2hlbiBjcmVhdGluZyB0aGUgYWN0dWFsIFJlZ0V4cFxuICAvL1xuICAvLyBBaCwgYnV0IHdhaXQsIG5vLCB0aGF0IGFsbCBvbmx5IGFwcGxpZXMgdG8gdGhlIHJvb3Qgd2hlbiB0aGUgZmlyc3QgcGF0dGVyblxuICAvLyBpcyBub3QgYW4gZXh0Z2xvYi4gSWYgdGhlIGZpcnN0IHBhdHRlcm4gSVMgYW4gZXh0Z2xvYiwgdGhlbiB3ZSBuZWVkIGFsbFxuICAvLyB0aGF0IGRvdCBwcmV2ZW50aW9uIGJpeiB0byBsaXZlIGluIHRoZSBleHRnbG9iIHBvcnRpb25zLCBiZWNhdXNlIGVnXG4gIC8vICsoKnwueCopIGNhbiBtYXRjaCAueHkgYnV0IG5vdCAueXguXG4gIC8vXG4gIC8vIFNvLCByZXR1cm4gdGhlIHR3byBmbGF2b3JzIGlmIGl0J3MgI3Jvb3QgYW5kIHRoZSBmaXJzdCBjaGlsZCBpcyBub3QgYW5cbiAgLy8gQVNULCBvdGhlcndpc2UgbGVhdmUgaXQgdG8gdGhlIGNoaWxkIEFTVCB0byBoYW5kbGUgaXQsIGFuZCB0aGVyZSxcbiAgLy8gdXNlIHRoZSAoPzpefC8pIHN0eWxlIG9mIHN0YXJ0IGJpbmRpbmcuXG4gIC8vXG4gIC8vIEV2ZW4gc2ltcGxpZmllZCBmdXJ0aGVyOlxuICAvLyAtIFNpbmNlIHRoZSBzdGFydCBmb3IgYSBqb2luIGlzIGVnIC8oPyFcXC4pIGFuZCB0aGUgc3RhcnQgZm9yIGEgcGFydFxuICAvLyBpcyBeKD8hXFwuKSwgd2UgY2FuIGp1c3QgcHJlcGVuZCAoPyFcXC4pIHRvIHRoZSBwYXR0ZXJuIChlaXRoZXIgcm9vdFxuICAvLyBvciBzdGFydCBvciB3aGF0ZXZlcikgYW5kIHByZXBlbmQgXiBvciAvIGF0IHRoZSBSZWdleHAgY29uc3RydWN0aW9uLlxuICB0b1JlZ0V4cFNvdXJjZShcbiAgICBhbGxvd0RvdD86IGJvb2xlYW5cbiAgKTogW3JlOiBzdHJpbmcsIGJvZHk6IHN0cmluZywgaGFzTWFnaWM6IGJvb2xlYW4sIHVmbGFnOiBib29sZWFuXSB7XG4gICAgY29uc3QgZG90ID0gYWxsb3dEb3QgPz8gISF0aGlzLiNvcHRpb25zLmRvdFxuICAgIGlmICh0aGlzLiNyb290ID09PSB0aGlzKSB0aGlzLiNmaWxsTmVncygpXG4gICAgaWYgKCF0aGlzLnR5cGUpIHtcbiAgICAgIGNvbnN0IG5vRW1wdHkgPSB0aGlzLmlzU3RhcnQoKSAmJiB0aGlzLmlzRW5kKClcbiAgICAgIGNvbnN0IHNyYyA9IHRoaXMuI3BhcnRzXG4gICAgICAgIC5tYXAocCA9PiB7XG4gICAgICAgICAgY29uc3QgW3JlLCBfLCBoYXNNYWdpYywgdWZsYWddID1cbiAgICAgICAgICAgIHR5cGVvZiBwID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IEFTVC4jcGFyc2VHbG9iKHAsIHRoaXMuI2hhc01hZ2ljLCBub0VtcHR5KVxuICAgICAgICAgICAgICA6IHAudG9SZWdFeHBTb3VyY2UoYWxsb3dEb3QpXG4gICAgICAgICAgdGhpcy4jaGFzTWFnaWMgPSB0aGlzLiNoYXNNYWdpYyB8fCBoYXNNYWdpY1xuICAgICAgICAgIHRoaXMuI3VmbGFnID0gdGhpcy4jdWZsYWcgfHwgdWZsYWdcbiAgICAgICAgICByZXR1cm4gcmVcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJycpXG5cbiAgICAgIGxldCBzdGFydCA9ICcnXG4gICAgICBpZiAodGhpcy5pc1N0YXJ0KCkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLiNwYXJ0c1swXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBzdHJpbmcgdGhhdCB3aWxsIG1hdGNoIHRoZSBzdGFydCBvZiB0aGUgcGF0dGVybixcbiAgICAgICAgICAvLyBzbyB3ZSBuZWVkIHRvIHByb3RlY3QgYWdhaW5zdCBkb3RzIGFuZCBzdWNoLlxuXG4gICAgICAgICAgLy8gJy4nIGFuZCAnLi4nIGNhbm5vdCBtYXRjaCB1bmxlc3MgdGhlIHBhdHRlcm4gaXMgdGhhdCBleGFjdGx5LFxuICAgICAgICAgIC8vIGV2ZW4gaWYgaXQgc3RhcnRzIHdpdGggLiBvciBkb3Q6dHJ1ZSBpcyBzZXQuXG4gICAgICAgICAgY29uc3QgZG90VHJhdkFsbG93ZWQgPVxuICAgICAgICAgICAgdGhpcy4jcGFydHMubGVuZ3RoID09PSAxICYmIGp1c3REb3RzLmhhcyh0aGlzLiNwYXJ0c1swXSlcbiAgICAgICAgICBpZiAoIWRvdFRyYXZBbGxvd2VkKSB7XG4gICAgICAgICAgICBjb25zdCBhcHMgPSBhZGRQYXR0ZXJuU3RhcnRcbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIHdlIGhhdmUgYSBwb3NzaWJpbGl0eSBvZiBtYXRjaGluZyAuIG9yIC4uLFxuICAgICAgICAgICAgLy8gYW5kIHByZXZlbnQgdGhhdC5cbiAgICAgICAgICAgIGNvbnN0IG5lZWROb1RyYXYgPVxuICAgICAgICAgICAgICAvLyBkb3RzIGFyZSBhbGxvd2VkLCBhbmQgdGhlIHBhdHRlcm4gc3RhcnRzIHdpdGggWyBvciAuXG4gICAgICAgICAgICAgIChkb3QgJiYgYXBzLmhhcyhzcmMuY2hhckF0KDApKSkgfHxcbiAgICAgICAgICAgICAgLy8gdGhlIHBhdHRlcm4gc3RhcnRzIHdpdGggXFwuLCBhbmQgdGhlbiBbIG9yIC5cbiAgICAgICAgICAgICAgKHNyYy5zdGFydHNXaXRoKCdcXFxcLicpICYmIGFwcy5oYXMoc3JjLmNoYXJBdCgyKSkpIHx8XG4gICAgICAgICAgICAgIC8vIHRoZSBwYXR0ZXJuIHN0YXJ0cyB3aXRoIFxcLlxcLiwgYW5kIHRoZW4gWyBvciAuXG4gICAgICAgICAgICAgIChzcmMuc3RhcnRzV2l0aCgnXFxcXC5cXFxcLicpICYmIGFwcy5oYXMoc3JjLmNoYXJBdCg0KSkpXG4gICAgICAgICAgICAvLyBubyBuZWVkIHRvIHByZXZlbnQgZG90cyBpZiBpdCBjYW4ndCBtYXRjaCBhIGRvdCwgb3IgaWYgYVxuICAgICAgICAgICAgLy8gc3ViLXBhdHRlcm4gd2lsbCBiZSBwcmV2ZW50aW5nIGl0IGFueXdheS5cbiAgICAgICAgICAgIGNvbnN0IG5lZWROb0RvdCA9ICFkb3QgJiYgIWFsbG93RG90ICYmIGFwcy5oYXMoc3JjLmNoYXJBdCgwKSlcblxuICAgICAgICAgICAgc3RhcnQgPSBuZWVkTm9UcmF2ID8gc3RhcnROb1RyYXZlcnNhbCA6IG5lZWROb0RvdCA/IHN0YXJ0Tm9Eb3QgOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBhcHBlbmQgdGhlIFwiZW5kIG9mIHBhdGggcG9ydGlvblwiIHBhdHRlcm4gdG8gbmVnYXRpb24gdGFpbHNcbiAgICAgIGxldCBlbmQgPSAnJ1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzRW5kKCkgJiZcbiAgICAgICAgdGhpcy4jcm9vdC4jZmlsbGVkTmVncyAmJlxuICAgICAgICB0aGlzLiNwYXJlbnQ/LnR5cGUgPT09ICchJ1xuICAgICAgKSB7XG4gICAgICAgIGVuZCA9ICcoPzokfFxcXFwvKSdcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbmFsID0gc3RhcnQgKyBzcmMgKyBlbmRcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGZpbmFsLFxuICAgICAgICB1bmVzY2FwZShzcmMpLFxuICAgICAgICAodGhpcy4jaGFzTWFnaWMgPSAhIXRoaXMuI2hhc01hZ2ljKSxcbiAgICAgICAgdGhpcy4jdWZsYWcsXG4gICAgICBdXG4gICAgfVxuXG4gICAgLy8gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlIGJvZHkgKnR3aWNlKiBpZiBpdCdzIGEgcmVwZWF0IHBhdHRlcm5cbiAgICAvLyBhdCB0aGUgc3RhcnQsIG9uY2UgaW4gbm9kb3QgbW9kZSwgdGhlbiBhZ2FpbiBpbiBkb3QgbW9kZSwgc28gYVxuICAgIC8vIHBhdHRlcm4gbGlrZSAqKD8pIGNhbiBtYXRjaCAneC55J1xuXG4gICAgY29uc3QgcmVwZWF0ZWQgPSB0aGlzLnR5cGUgPT09ICcqJyB8fCB0aGlzLnR5cGUgPT09ICcrJ1xuICAgIC8vIHNvbWUga2luZCBvZiBleHRnbG9iXG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnR5cGUgPT09ICchJyA/ICcoPzooPyEoPzonIDogJyg/OidcbiAgICBsZXQgYm9keSA9IHRoaXMuI3BhcnRzVG9SZWdFeHAoZG90KVxuXG4gICAgaWYgKHRoaXMuaXNTdGFydCgpICYmIHRoaXMuaXNFbmQoKSAmJiAhYm9keSAmJiB0aGlzLnR5cGUgIT09ICchJykge1xuICAgICAgLy8gaW52YWxpZCBleHRnbG9iLCBoYXMgdG8gYXQgbGVhc3QgYmUgKnNvbWV0aGluZyogcHJlc2VudCwgaWYgaXQnc1xuICAgICAgLy8gdGhlIGVudGlyZSBwYXRoIHBvcnRpb24uXG4gICAgICBjb25zdCBzID0gdGhpcy50b1N0cmluZygpXG4gICAgICB0aGlzLiNwYXJ0cyA9IFtzXVxuICAgICAgdGhpcy50eXBlID0gbnVsbFxuICAgICAgdGhpcy4jaGFzTWFnaWMgPSB1bmRlZmluZWRcbiAgICAgIHJldHVybiBbcywgdW5lc2NhcGUodGhpcy50b1N0cmluZygpKSwgZmFsc2UsIGZhbHNlXVxuICAgIH1cblxuICAgIC8vIFhYWCBhYnN0cmFjdCBvdXQgdGhpcyBtYXAgbWV0aG9kXG4gICAgbGV0IGJvZHlEb3RBbGxvd2VkID1cbiAgICAgICFyZXBlYXRlZCB8fCBhbGxvd0RvdCB8fCBkb3QgfHwgIXN0YXJ0Tm9Eb3RcbiAgICAgICAgPyAnJ1xuICAgICAgICA6IHRoaXMuI3BhcnRzVG9SZWdFeHAodHJ1ZSlcbiAgICBpZiAoYm9keURvdEFsbG93ZWQgPT09IGJvZHkpIHtcbiAgICAgIGJvZHlEb3RBbGxvd2VkID0gJydcbiAgICB9XG4gICAgaWYgKGJvZHlEb3RBbGxvd2VkKSB7XG4gICAgICBib2R5ID0gYCg/OiR7Ym9keX0pKD86JHtib2R5RG90QWxsb3dlZH0pKj9gXG4gICAgfVxuXG4gICAgLy8gYW4gZW1wdHkgISgpIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0byBhIHN0YXJOb0VtcHR5XG4gICAgbGV0IGZpbmFsID0gJydcbiAgICBpZiAodGhpcy50eXBlID09PSAnIScgJiYgdGhpcy4jZW1wdHlFeHQpIHtcbiAgICAgIGZpbmFsID0gKHRoaXMuaXNTdGFydCgpICYmICFkb3QgPyBzdGFydE5vRG90IDogJycpICsgc3Rhck5vRW1wdHlcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xvc2UgPVxuICAgICAgICB0aGlzLnR5cGUgPT09ICchJ1xuICAgICAgICAgID8gLy8gISgpIG11c3QgbWF0Y2ggc29tZXRoaW5nLGJ1dCAhKHgpIGNhbiBtYXRjaCAnJ1xuICAgICAgICAgICAgJykpJyArXG4gICAgICAgICAgICAodGhpcy5pc1N0YXJ0KCkgJiYgIWRvdCAmJiAhYWxsb3dEb3QgPyBzdGFydE5vRG90IDogJycpICtcbiAgICAgICAgICAgIHN0YXIgK1xuICAgICAgICAgICAgJyknXG4gICAgICAgICAgOiB0aGlzLnR5cGUgPT09ICdAJ1xuICAgICAgICAgID8gJyknXG4gICAgICAgICAgOiB0aGlzLnR5cGUgPT09ICc/J1xuICAgICAgICAgID8gJyk/J1xuICAgICAgICAgIDogdGhpcy50eXBlID09PSAnKycgJiYgYm9keURvdEFsbG93ZWRcbiAgICAgICAgICA/ICcpJ1xuICAgICAgICAgIDogdGhpcy50eXBlID09PSAnKicgJiYgYm9keURvdEFsbG93ZWRcbiAgICAgICAgICA/IGApP2BcbiAgICAgICAgICA6IGApJHt0aGlzLnR5cGV9YFxuICAgICAgZmluYWwgPSBzdGFydCArIGJvZHkgKyBjbG9zZVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgZmluYWwsXG4gICAgICB1bmVzY2FwZShib2R5KSxcbiAgICAgICh0aGlzLiNoYXNNYWdpYyA9ICEhdGhpcy4jaGFzTWFnaWMpLFxuICAgICAgdGhpcy4jdWZsYWcsXG4gICAgXVxuICB9XG5cbiAgI3BhcnRzVG9SZWdFeHAoZG90OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuI3BhcnRzXG4gICAgICAubWFwKHAgPT4ge1xuICAgICAgICAvLyBleHRnbG9iIEFTVHMgc2hvdWxkIG9ubHkgY29udGFpbiBwYXJlbnQgQVNUc1xuICAgICAgICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgICAgICAgaWYgKHR5cGVvZiBwID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3RyaW5nIHR5cGUgaW4gZXh0Z2xvYiBhc3Q/PycpXG4gICAgICAgIH1cbiAgICAgICAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgICAgICAgLy8gY2FuIGlnbm9yZSBoYXNNYWdpYywgYmVjYXVzZSBleHRnbG9icyBhcmUgYWxyZWFkeSBhbHdheXMgbWFnaWNcbiAgICAgICAgY29uc3QgW3JlLCBfLCBfaGFzTWFnaWMsIHVmbGFnXSA9IHAudG9SZWdFeHBTb3VyY2UoZG90KVxuICAgICAgICB0aGlzLiN1ZmxhZyA9IHRoaXMuI3VmbGFnIHx8IHVmbGFnXG4gICAgICAgIHJldHVybiByZVxuICAgICAgfSlcbiAgICAgIC5maWx0ZXIocCA9PiAhKHRoaXMuaXNTdGFydCgpICYmIHRoaXMuaXNFbmQoKSkgfHwgISFwKVxuICAgICAgLmpvaW4oJ3wnKVxuICB9XG5cbiAgc3RhdGljICNwYXJzZUdsb2IoXG4gICAgZ2xvYjogc3RyaW5nLFxuICAgIGhhc01hZ2ljOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICAgIG5vRW1wdHk6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBbcmU6IHN0cmluZywgYm9keTogc3RyaW5nLCBoYXNNYWdpYzogYm9vbGVhbiwgdWZsYWc6IGJvb2xlYW5dIHtcbiAgICBsZXQgZXNjYXBpbmcgPSBmYWxzZVxuICAgIGxldCByZSA9ICcnXG4gICAgbGV0IHVmbGFnID0gZmFsc2VcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdsb2IubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSBnbG9iLmNoYXJBdChpKVxuICAgICAgaWYgKGVzY2FwaW5nKSB7XG4gICAgICAgIGVzY2FwaW5nID0gZmFsc2VcbiAgICAgICAgcmUgKz0gKHJlU3BlY2lhbHMuaGFzKGMpID8gJ1xcXFwnIDogJycpICsgY1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKGMgPT09ICdcXFxcJykge1xuICAgICAgICBpZiAoaSA9PT0gZ2xvYi5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgcmUgKz0gJ1xcXFxcXFxcJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVzY2FwaW5nID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoYyA9PT0gJ1snKSB7XG4gICAgICAgIGNvbnN0IFtzcmMsIG5lZWRVZmxhZywgY29uc3VtZWQsIG1hZ2ljXSA9IHBhcnNlQ2xhc3MoZ2xvYiwgaSlcbiAgICAgICAgaWYgKGNvbnN1bWVkKSB7XG4gICAgICAgICAgcmUgKz0gc3JjXG4gICAgICAgICAgdWZsYWcgPSB1ZmxhZyB8fCBuZWVkVWZsYWdcbiAgICAgICAgICBpICs9IGNvbnN1bWVkIC0gMVxuICAgICAgICAgIGhhc01hZ2ljID0gaGFzTWFnaWMgfHwgbWFnaWNcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoYyA9PT0gJyonKSB7XG4gICAgICAgIGlmIChub0VtcHR5ICYmIGdsb2IgPT09ICcqJykgcmUgKz0gc3Rhck5vRW1wdHlcbiAgICAgICAgZWxzZSByZSArPSBzdGFyXG4gICAgICAgIGhhc01hZ2ljID0gdHJ1ZVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKGMgPT09ICc/Jykge1xuICAgICAgICByZSArPSBxbWFya1xuICAgICAgICBoYXNNYWdpYyA9IHRydWVcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHJlICs9IHJlZ0V4cEVzY2FwZShjKVxuICAgIH1cbiAgICByZXR1cm4gW3JlLCB1bmVzY2FwZShnbG9iKSwgISFoYXNNYWdpYywgdWZsYWddXG4gIH1cbn1cbiIsICJpbXBvcnQgeyBNaW5pbWF0Y2hPcHRpb25zIH0gZnJvbSAnLi9pbmRleC5qcydcbi8qKlxuICogRXNjYXBlIGFsbCBtYWdpYyBjaGFyYWN0ZXJzIGluIGEgZ2xvYiBwYXR0ZXJuLlxuICpcbiAqIElmIHRoZSB7QGxpbmsgd2luZG93c1BhdGhzTm9Fc2NhcGUgfCBHbG9iT3B0aW9ucy53aW5kb3dzUGF0aHNOb0VzY2FwZX1cbiAqIG9wdGlvbiBpcyB1c2VkLCB0aGVuIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgYnkgd3JhcHBpbmcgaW4gYFtdYCwgYmVjYXVzZVxuICogYSBtYWdpYyBjaGFyYWN0ZXIgd3JhcHBlZCBpbiBhIGNoYXJhY3RlciBjbGFzcyBjYW4gb25seSBiZSBzYXRpc2ZpZWQgYnlcbiAqIHRoYXQgZXhhY3QgY2hhcmFjdGVyLiAgSW4gdGhpcyBtb2RlLCBgXFxgIGlzIF9ub3RfIGVzY2FwZWQsIGJlY2F1c2UgaXQgaXNcbiAqIG5vdCBpbnRlcnByZXRlZCBhcyBhIG1hZ2ljIGNoYXJhY3RlciwgYnV0IGluc3RlYWQgYXMgYSBwYXRoIHNlcGFyYXRvci5cbiAqL1xuZXhwb3J0IGNvbnN0IGVzY2FwZSA9IChcbiAgczogc3RyaW5nLFxuICB7XG4gICAgd2luZG93c1BhdGhzTm9Fc2NhcGUgPSBmYWxzZSxcbiAgfTogUGljazxNaW5pbWF0Y2hPcHRpb25zLCAnd2luZG93c1BhdGhzTm9Fc2NhcGUnPiA9IHt9XG4pID0+IHtcbiAgLy8gZG9uJ3QgbmVlZCB0byBlc2NhcGUgK0AhIGJlY2F1c2Ugd2UgZXNjYXBlIHRoZSBwYXJlbnNcbiAgLy8gdGhhdCBtYWtlIHRob3NlIG1hZ2ljLCBhbmQgZXNjYXBpbmcgISBhcyBbIV0gaXNuJ3QgdmFsaWQsXG4gIC8vIGJlY2F1c2UgWyFdXSBpcyBhIHZhbGlkIGdsb2IgY2xhc3MgbWVhbmluZyBub3QgJ10nLlxuICByZXR1cm4gd2luZG93c1BhdGhzTm9Fc2NhcGVcbiAgICA/IHMucmVwbGFjZSgvWz8qKClbXFxdXS9nLCAnWyQmXScpXG4gICAgOiBzLnJlcGxhY2UoL1s/KigpW1xcXVxcXFxdL2csICdcXFxcJCYnKVxufVxuIiwgImltcG9ydCBleHBhbmQgZnJvbSAnYnJhY2UtZXhwYW5zaW9uJ1xuaW1wb3J0IHsgYXNzZXJ0VmFsaWRQYXR0ZXJuIH0gZnJvbSAnLi9hc3NlcnQtdmFsaWQtcGF0dGVybi5qcydcbmltcG9ydCB7IEFTVCwgRXh0Z2xvYlR5cGUgfSBmcm9tICcuL2FzdC5qcydcbmltcG9ydCB7IGVzY2FwZSB9IGZyb20gJy4vZXNjYXBlLmpzJ1xuaW1wb3J0IHsgdW5lc2NhcGUgfSBmcm9tICcuL3VuZXNjYXBlLmpzJ1xuXG50eXBlIFBsYXRmb3JtID1cbiAgfCAnYWl4J1xuICB8ICdhbmRyb2lkJ1xuICB8ICdkYXJ3aW4nXG4gIHwgJ2ZyZWVic2QnXG4gIHwgJ2hhaWt1J1xuICB8ICdsaW51eCdcbiAgfCAnb3BlbmJzZCdcbiAgfCAnc3Vub3MnXG4gIHwgJ3dpbjMyJ1xuICB8ICdjeWd3aW4nXG4gIHwgJ25ldGJzZCdcblxuZXhwb3J0IGludGVyZmFjZSBNaW5pbWF0Y2hPcHRpb25zIHtcbiAgbm9icmFjZT86IGJvb2xlYW5cbiAgbm9jb21tZW50PzogYm9vbGVhblxuICBub25lZ2F0ZT86IGJvb2xlYW5cbiAgZGVidWc/OiBib29sZWFuXG4gIG5vZ2xvYnN0YXI/OiBib29sZWFuXG4gIG5vZXh0PzogYm9vbGVhblxuICBub251bGw/OiBib29sZWFuXG4gIHdpbmRvd3NQYXRoc05vRXNjYXBlPzogYm9vbGVhblxuICBhbGxvd1dpbmRvd3NFc2NhcGU/OiBib29sZWFuXG4gIHBhcnRpYWw/OiBib29sZWFuXG4gIGRvdD86IGJvb2xlYW5cbiAgbm9jYXNlPzogYm9vbGVhblxuICBub2Nhc2VNYWdpY09ubHk/OiBib29sZWFuXG4gIG1hZ2ljYWxCcmFjZXM/OiBib29sZWFuXG4gIG1hdGNoQmFzZT86IGJvb2xlYW5cbiAgZmxpcE5lZ2F0ZT86IGJvb2xlYW5cbiAgcHJlc2VydmVNdWx0aXBsZVNsYXNoZXM/OiBib29sZWFuXG4gIG9wdGltaXphdGlvbkxldmVsPzogbnVtYmVyXG4gIHBsYXRmb3JtPzogUGxhdGZvcm1cbiAgd2luZG93c05vTWFnaWNSb290PzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgbWluaW1hdGNoID0gKFxuICBwOiBzdHJpbmcsXG4gIHBhdHRlcm46IHN0cmluZyxcbiAgb3B0aW9uczogTWluaW1hdGNoT3B0aW9ucyA9IHt9XG4pID0+IHtcbiAgYXNzZXJ0VmFsaWRQYXR0ZXJuKHBhdHRlcm4pXG5cbiAgLy8gc2hvcnRjdXQ6IGNvbW1lbnRzIG1hdGNoIG5vdGhpbmcuXG4gIGlmICghb3B0aW9ucy5ub2NvbW1lbnQgJiYgcGF0dGVybi5jaGFyQXQoMCkgPT09ICcjJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBNaW5pbWF0Y2gocGF0dGVybiwgb3B0aW9ucykubWF0Y2gocClcbn1cblxuLy8gT3B0aW1pemVkIGNoZWNraW5nIGZvciB0aGUgbW9zdCBjb21tb24gZ2xvYiBwYXR0ZXJucy5cbmNvbnN0IHN0YXJEb3RFeHRSRSA9IC9eXFwqKyhbXitAIT9cXCpcXFtcXChdKikkL1xuY29uc3Qgc3RhckRvdEV4dFRlc3QgPSAoZXh0OiBzdHJpbmcpID0+IChmOiBzdHJpbmcpID0+XG4gICFmLnN0YXJ0c1dpdGgoJy4nKSAmJiBmLmVuZHNXaXRoKGV4dClcbmNvbnN0IHN0YXJEb3RFeHRUZXN0RG90ID0gKGV4dDogc3RyaW5nKSA9PiAoZjogc3RyaW5nKSA9PiBmLmVuZHNXaXRoKGV4dClcbmNvbnN0IHN0YXJEb3RFeHRUZXN0Tm9jYXNlID0gKGV4dDogc3RyaW5nKSA9PiB7XG4gIGV4dCA9IGV4dC50b0xvd2VyQ2FzZSgpXG4gIHJldHVybiAoZjogc3RyaW5nKSA9PiAhZi5zdGFydHNXaXRoKCcuJykgJiYgZi50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dClcbn1cbmNvbnN0IHN0YXJEb3RFeHRUZXN0Tm9jYXNlRG90ID0gKGV4dDogc3RyaW5nKSA9PiB7XG4gIGV4dCA9IGV4dC50b0xvd2VyQ2FzZSgpXG4gIHJldHVybiAoZjogc3RyaW5nKSA9PiBmLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZXh0KVxufVxuY29uc3Qgc3RhckRvdFN0YXJSRSA9IC9eXFwqK1xcLlxcKiskL1xuY29uc3Qgc3RhckRvdFN0YXJUZXN0ID0gKGY6IHN0cmluZykgPT4gIWYuc3RhcnRzV2l0aCgnLicpICYmIGYuaW5jbHVkZXMoJy4nKVxuY29uc3Qgc3RhckRvdFN0YXJUZXN0RG90ID0gKGY6IHN0cmluZykgPT5cbiAgZiAhPT0gJy4nICYmIGYgIT09ICcuLicgJiYgZi5pbmNsdWRlcygnLicpXG5jb25zdCBkb3RTdGFyUkUgPSAvXlxcLlxcKiskL1xuY29uc3QgZG90U3RhclRlc3QgPSAoZjogc3RyaW5nKSA9PiBmICE9PSAnLicgJiYgZiAhPT0gJy4uJyAmJiBmLnN0YXJ0c1dpdGgoJy4nKVxuY29uc3Qgc3RhclJFID0gL15cXCorJC9cbmNvbnN0IHN0YXJUZXN0ID0gKGY6IHN0cmluZykgPT4gZi5sZW5ndGggIT09IDAgJiYgIWYuc3RhcnRzV2l0aCgnLicpXG5jb25zdCBzdGFyVGVzdERvdCA9IChmOiBzdHJpbmcpID0+IGYubGVuZ3RoICE9PSAwICYmIGYgIT09ICcuJyAmJiBmICE9PSAnLi4nXG5jb25zdCBxbWFya3NSRSA9IC9eXFw/KyhbXitAIT9cXCpcXFtcXChdKik/JC9cbmNvbnN0IHFtYXJrc1Rlc3ROb2Nhc2UgPSAoWyQwLCBleHQgPSAnJ106IFJlZ0V4cE1hdGNoQXJyYXkpID0+IHtcbiAgY29uc3Qgbm9leHQgPSBxbWFya3NUZXN0Tm9FeHQoWyQwXSlcbiAgaWYgKCFleHQpIHJldHVybiBub2V4dFxuICBleHQgPSBleHQudG9Mb3dlckNhc2UoKVxuICByZXR1cm4gKGY6IHN0cmluZykgPT4gbm9leHQoZikgJiYgZi50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dClcbn1cbmNvbnN0IHFtYXJrc1Rlc3ROb2Nhc2VEb3QgPSAoWyQwLCBleHQgPSAnJ106IFJlZ0V4cE1hdGNoQXJyYXkpID0+IHtcbiAgY29uc3Qgbm9leHQgPSBxbWFya3NUZXN0Tm9FeHREb3QoWyQwXSlcbiAgaWYgKCFleHQpIHJldHVybiBub2V4dFxuICBleHQgPSBleHQudG9Mb3dlckNhc2UoKVxuICByZXR1cm4gKGY6IHN0cmluZykgPT4gbm9leHQoZikgJiYgZi50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dClcbn1cbmNvbnN0IHFtYXJrc1Rlc3REb3QgPSAoWyQwLCBleHQgPSAnJ106IFJlZ0V4cE1hdGNoQXJyYXkpID0+IHtcbiAgY29uc3Qgbm9leHQgPSBxbWFya3NUZXN0Tm9FeHREb3QoWyQwXSlcbiAgcmV0dXJuICFleHQgPyBub2V4dCA6IChmOiBzdHJpbmcpID0+IG5vZXh0KGYpICYmIGYuZW5kc1dpdGgoZXh0KVxufVxuY29uc3QgcW1hcmtzVGVzdCA9IChbJDAsIGV4dCA9ICcnXTogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuICBjb25zdCBub2V4dCA9IHFtYXJrc1Rlc3ROb0V4dChbJDBdKVxuICByZXR1cm4gIWV4dCA/IG5vZXh0IDogKGY6IHN0cmluZykgPT4gbm9leHQoZikgJiYgZi5lbmRzV2l0aChleHQpXG59XG5jb25zdCBxbWFya3NUZXN0Tm9FeHQgPSAoWyQwXTogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuICBjb25zdCBsZW4gPSAkMC5sZW5ndGhcbiAgcmV0dXJuIChmOiBzdHJpbmcpID0+IGYubGVuZ3RoID09PSBsZW4gJiYgIWYuc3RhcnRzV2l0aCgnLicpXG59XG5jb25zdCBxbWFya3NUZXN0Tm9FeHREb3QgPSAoWyQwXTogUmVnRXhwTWF0Y2hBcnJheSkgPT4ge1xuICBjb25zdCBsZW4gPSAkMC5sZW5ndGhcbiAgcmV0dXJuIChmOiBzdHJpbmcpID0+IGYubGVuZ3RoID09PSBsZW4gJiYgZiAhPT0gJy4nICYmIGYgIT09ICcuLidcbn1cblxuLyogYzggaWdub3JlIHN0YXJ0ICovXG5jb25zdCBkZWZhdWx0UGxhdGZvcm06IFBsYXRmb3JtID0gKFxuICB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgcHJvY2Vzc1xuICAgID8gKHR5cGVvZiBwcm9jZXNzLmVudiA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuX19NSU5JTUFUQ0hfVEVTVElOR19QTEFURk9STV9fKSB8fFxuICAgICAgcHJvY2Vzcy5wbGF0Zm9ybVxuICAgIDogJ3Bvc2l4J1xuKSBhcyBQbGF0Zm9ybVxudHlwZSBTZXAgPSAnXFxcXCcgfCAnLydcbmNvbnN0IHBhdGg6IHsgW2s6IHN0cmluZ106IHsgc2VwOiBTZXAgfSB9ID0ge1xuICB3aW4zMjogeyBzZXA6ICdcXFxcJyB9LFxuICBwb3NpeDogeyBzZXA6ICcvJyB9LFxufVxuLyogYzggaWdub3JlIHN0b3AgKi9cblxuZXhwb3J0IGNvbnN0IHNlcCA9IGRlZmF1bHRQbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IHBhdGgud2luMzIuc2VwIDogcGF0aC5wb3NpeC5zZXBcbm1pbmltYXRjaC5zZXAgPSBzZXBcblxuZXhwb3J0IGNvbnN0IEdMT0JTVEFSID0gU3ltYm9sKCdnbG9ic3RhciAqKicpXG5taW5pbWF0Y2guR0xPQlNUQVIgPSBHTE9CU1RBUlxuXG4vLyBhbnkgc2luZ2xlIHRoaW5nIG90aGVyIHRoYW4gL1xuLy8gZG9uJ3QgbmVlZCB0byBlc2NhcGUgLyB3aGVuIHVzaW5nIG5ldyBSZWdFeHAoKVxuY29uc3QgcW1hcmsgPSAnW14vXSdcblxuLy8gKiA9PiBhbnkgbnVtYmVyIG9mIGNoYXJhY3RlcnNcbmNvbnN0IHN0YXIgPSBxbWFyayArICcqPydcblxuLy8gKiogd2hlbiBkb3RzIGFyZSBhbGxvd2VkLiAgQW55dGhpbmcgZ29lcywgZXhjZXB0IC4uIGFuZCAuXG4vLyBub3QgKF4gb3IgLyBmb2xsb3dlZCBieSBvbmUgb3IgdHdvIGRvdHMgZm9sbG93ZWQgYnkgJCBvciAvKSxcbi8vIGZvbGxvd2VkIGJ5IGFueXRoaW5nLCBhbnkgbnVtYmVyIG9mIHRpbWVzLlxuY29uc3QgdHdvU3RhckRvdCA9ICcoPzooPyEoPzpcXFxcL3xeKSg/OlxcXFwuezEsMn0pKCR8XFxcXC8pKS4pKj8nXG5cbi8vIG5vdCBhIF4gb3IgLyBmb2xsb3dlZCBieSBhIGRvdCxcbi8vIGZvbGxvd2VkIGJ5IGFueXRoaW5nLCBhbnkgbnVtYmVyIG9mIHRpbWVzLlxuY29uc3QgdHdvU3Rhck5vRG90ID0gJyg/Oig/ISg/OlxcXFwvfF4pXFxcXC4pLikqPydcblxuZXhwb3J0IGNvbnN0IGZpbHRlciA9XG4gIChwYXR0ZXJuOiBzdHJpbmcsIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkgPT5cbiAgKHA6IHN0cmluZykgPT5cbiAgICBtaW5pbWF0Y2gocCwgcGF0dGVybiwgb3B0aW9ucylcbm1pbmltYXRjaC5maWx0ZXIgPSBmaWx0ZXJcblxuY29uc3QgZXh0ID0gKGE6IE1pbmltYXRjaE9wdGlvbnMsIGI6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkgPT5cbiAgT2JqZWN0LmFzc2lnbih7fSwgYSwgYilcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0gKGRlZjogTWluaW1hdGNoT3B0aW9ucyk6IHR5cGVvZiBtaW5pbWF0Y2ggPT4ge1xuICBpZiAoIWRlZiB8fCB0eXBlb2YgZGVmICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMoZGVmKS5sZW5ndGgpIHtcbiAgICByZXR1cm4gbWluaW1hdGNoXG4gIH1cblxuICBjb25zdCBvcmlnID0gbWluaW1hdGNoXG5cbiAgY29uc3QgbSA9IChwOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZywgb3B0aW9uczogTWluaW1hdGNoT3B0aW9ucyA9IHt9KSA9PlxuICAgIG9yaWcocCwgcGF0dGVybiwgZXh0KGRlZiwgb3B0aW9ucykpXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24obSwge1xuICAgIE1pbmltYXRjaDogY2xhc3MgTWluaW1hdGNoIGV4dGVuZHMgb3JpZy5NaW5pbWF0Y2gge1xuICAgICAgY29uc3RydWN0b3IocGF0dGVybjogc3RyaW5nLCBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zID0ge30pIHtcbiAgICAgICAgc3VwZXIocGF0dGVybiwgZXh0KGRlZiwgb3B0aW9ucykpXG4gICAgICB9XG4gICAgICBzdGF0aWMgZGVmYXVsdHMob3B0aW9uczogTWluaW1hdGNoT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gb3JpZy5kZWZhdWx0cyhleHQoZGVmLCBvcHRpb25zKSkuTWluaW1hdGNoXG4gICAgICB9XG4gICAgfSxcblxuICAgIEFTVDogY2xhc3MgQVNUIGV4dGVuZHMgb3JpZy5BU1Qge1xuICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgdHlwZTogRXh0Z2xvYlR5cGUgfCBudWxsLFxuICAgICAgICBwYXJlbnQ/OiBBU1QsXG4gICAgICAgIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fVxuICAgICAgKSB7XG4gICAgICAgIHN1cGVyKHR5cGUsIHBhcmVudCwgZXh0KGRlZiwgb3B0aW9ucykpXG4gICAgICB9XG4gICAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG4gICAgICBzdGF0aWMgZnJvbUdsb2IocGF0dGVybjogc3RyaW5nLCBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zID0ge30pIHtcbiAgICAgICAgcmV0dXJuIG9yaWcuQVNULmZyb21HbG9iKHBhdHRlcm4sIGV4dChkZWYsIG9wdGlvbnMpKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICB1bmVzY2FwZTogKFxuICAgICAgczogc3RyaW5nLFxuICAgICAgb3B0aW9uczogUGljazxNaW5pbWF0Y2hPcHRpb25zLCAnd2luZG93c1BhdGhzTm9Fc2NhcGUnPiA9IHt9XG4gICAgKSA9PiBvcmlnLnVuZXNjYXBlKHMsIGV4dChkZWYsIG9wdGlvbnMpKSxcblxuICAgIGVzY2FwZTogKFxuICAgICAgczogc3RyaW5nLFxuICAgICAgb3B0aW9uczogUGljazxNaW5pbWF0Y2hPcHRpb25zLCAnd2luZG93c1BhdGhzTm9Fc2NhcGUnPiA9IHt9XG4gICAgKSA9PiBvcmlnLmVzY2FwZShzLCBleHQoZGVmLCBvcHRpb25zKSksXG5cbiAgICBmaWx0ZXI6IChwYXR0ZXJuOiBzdHJpbmcsIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkgPT5cbiAgICAgIG9yaWcuZmlsdGVyKHBhdHRlcm4sIGV4dChkZWYsIG9wdGlvbnMpKSxcblxuICAgIGRlZmF1bHRzOiAob3B0aW9uczogTWluaW1hdGNoT3B0aW9ucykgPT4gb3JpZy5kZWZhdWx0cyhleHQoZGVmLCBvcHRpb25zKSksXG5cbiAgICBtYWtlUmU6IChwYXR0ZXJuOiBzdHJpbmcsIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkgPT5cbiAgICAgIG9yaWcubWFrZVJlKHBhdHRlcm4sIGV4dChkZWYsIG9wdGlvbnMpKSxcblxuICAgIGJyYWNlRXhwYW5kOiAocGF0dGVybjogc3RyaW5nLCBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zID0ge30pID0+XG4gICAgICBvcmlnLmJyYWNlRXhwYW5kKHBhdHRlcm4sIGV4dChkZWYsIG9wdGlvbnMpKSxcblxuICAgIG1hdGNoOiAobGlzdDogc3RyaW5nW10sIHBhdHRlcm46IHN0cmluZywgb3B0aW9uczogTWluaW1hdGNoT3B0aW9ucyA9IHt9KSA9PlxuICAgICAgb3JpZy5tYXRjaChsaXN0LCBwYXR0ZXJuLCBleHQoZGVmLCBvcHRpb25zKSksXG5cbiAgICBzZXA6IG9yaWcuc2VwLFxuICAgIEdMT0JTVEFSOiBHTE9CU1RBUiBhcyB0eXBlb2YgR0xPQlNUQVIsXG4gIH0pXG59XG5taW5pbWF0Y2guZGVmYXVsdHMgPSBkZWZhdWx0c1xuXG4vLyBCcmFjZSBleHBhbnNpb246XG4vLyBhe2IsY31kIC0+IGFiZCBhY2Rcbi8vIGF7Yix9YyAtPiBhYmMgYWNcbi8vIGF7MC4uM31kIC0+IGEwZCBhMWQgYTJkIGEzZFxuLy8gYXtiLGN7ZCxlfWZ9ZyAtPiBhYmcgYWNkZmcgYWNlZmdcbi8vIGF7YixjfWR7ZSxmfWcgLT4gYWJkZWcgYWNkZWcgYWJkZWcgYWJkZmdcbi8vXG4vLyBJbnZhbGlkIHNldHMgYXJlIG5vdCBleHBhbmRlZC5cbi8vIGF7Mi4ufWIgLT4gYXsyLi59YlxuLy8gYXtifWMgLT4gYXtifWNcbmV4cG9ydCBjb25zdCBicmFjZUV4cGFuZCA9IChcbiAgcGF0dGVybjogc3RyaW5nLFxuICBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zID0ge31cbikgPT4ge1xuICBhc3NlcnRWYWxpZFBhdHRlcm4ocGF0dGVybilcblxuICAvLyBUaGFua3MgdG8gWWV0aW5nIExpIDxodHRwczovL2dpdGh1Yi5jb20veWV0aW5nbGk+IGZvclxuICAvLyBpbXByb3ZpbmcgdGhpcyByZWdleHAgdG8gYXZvaWQgYSBSZURPUyB2dWxuZXJhYmlsaXR5LlxuICBpZiAob3B0aW9ucy5ub2JyYWNlIHx8ICEvXFx7KD86KD8hXFx7KS4pKlxcfS8udGVzdChwYXR0ZXJuKSkge1xuICAgIC8vIHNob3J0Y3V0LiBubyBuZWVkIHRvIGV4cGFuZC5cbiAgICByZXR1cm4gW3BhdHRlcm5dXG4gIH1cblxuICByZXR1cm4gZXhwYW5kKHBhdHRlcm4pXG59XG5taW5pbWF0Y2guYnJhY2VFeHBhbmQgPSBicmFjZUV4cGFuZFxuXG4vLyBwYXJzZSBhIGNvbXBvbmVudCBvZiB0aGUgZXhwYW5kZWQgc2V0LlxuLy8gQXQgdGhpcyBwb2ludCwgbm8gcGF0dGVybiBtYXkgY29udGFpbiBcIi9cIiBpbiBpdFxuLy8gc28gd2UncmUgZ29pbmcgdG8gcmV0dXJuIGEgMmQgYXJyYXksIHdoZXJlIGVhY2ggZW50cnkgaXMgdGhlIGZ1bGxcbi8vIHBhdHRlcm4sIHNwbGl0IG9uICcvJywgYW5kIHRoZW4gdHVybmVkIGludG8gYSByZWd1bGFyIGV4cHJlc3Npb24uXG4vLyBBIHJlZ2V4cCBpcyBtYWRlIGF0IHRoZSBlbmQgd2hpY2ggam9pbnMgZWFjaCBhcnJheSB3aXRoIGFuXG4vLyBlc2NhcGVkIC8sIGFuZCBhbm90aGVyIGZ1bGwgb25lIHdoaWNoIGpvaW5zIGVhY2ggcmVnZXhwIHdpdGggfC5cbi8vXG4vLyBGb2xsb3dpbmcgdGhlIGxlYWQgb2YgQmFzaCA0LjEsIG5vdGUgdGhhdCBcIioqXCIgb25seSBoYXMgc3BlY2lhbCBtZWFuaW5nXG4vLyB3aGVuIGl0IGlzIHRoZSAqb25seSogdGhpbmcgaW4gYSBwYXRoIHBvcnRpb24uICBPdGhlcndpc2UsIGFueSBzZXJpZXNcbi8vIG9mICogaXMgZXF1aXZhbGVudCB0byBhIHNpbmdsZSAqLiAgR2xvYnN0YXIgYmVoYXZpb3IgaXMgZW5hYmxlZCBieVxuLy8gZGVmYXVsdCwgYW5kIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIG9wdGlvbnMubm9nbG9ic3Rhci5cblxuZXhwb3J0IGNvbnN0IG1ha2VSZSA9IChwYXR0ZXJuOiBzdHJpbmcsIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fSkgPT5cbiAgbmV3IE1pbmltYXRjaChwYXR0ZXJuLCBvcHRpb25zKS5tYWtlUmUoKVxubWluaW1hdGNoLm1ha2VSZSA9IG1ha2VSZVxuXG5leHBvcnQgY29uc3QgbWF0Y2ggPSAoXG4gIGxpc3Q6IHN0cmluZ1tdLFxuICBwYXR0ZXJuOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE1pbmltYXRjaE9wdGlvbnMgPSB7fVxuKSA9PiB7XG4gIGNvbnN0IG1tID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCBvcHRpb25zKVxuICBsaXN0ID0gbGlzdC5maWx0ZXIoZiA9PiBtbS5tYXRjaChmKSlcbiAgaWYgKG1tLm9wdGlvbnMubm9udWxsICYmICFsaXN0Lmxlbmd0aCkge1xuICAgIGxpc3QucHVzaChwYXR0ZXJuKVxuICB9XG4gIHJldHVybiBsaXN0XG59XG5taW5pbWF0Y2gubWF0Y2ggPSBtYXRjaFxuXG4vLyByZXBsYWNlIHN0dWZmIGxpa2UgXFwqIHdpdGggKlxuY29uc3QgZ2xvYk1hZ2ljID0gL1s/Kl18WytAIV1cXCguKj9cXCl8XFxbfFxcXS9cbmNvbnN0IHJlZ0V4cEVzY2FwZSA9IChzOiBzdHJpbmcpID0+XG4gIHMucmVwbGFjZSgvWy1bXFxde30oKSorPy4sXFxcXF4kfCNcXHNdL2csICdcXFxcJCYnKVxuXG5leHBvcnQgdHlwZSBNTVJlZ0V4cCA9IFJlZ0V4cCAmIHtcbiAgX3NyYz86IHN0cmluZ1xuICBfZ2xvYj86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZVJldHVybkZpbHRlcmVkID0gc3RyaW5nIHwgTU1SZWdFeHAgfCB0eXBlb2YgR0xPQlNUQVJcbmV4cG9ydCB0eXBlIFBhcnNlUmV0dXJuID0gUGFyc2VSZXR1cm5GaWx0ZXJlZCB8IGZhbHNlXG5cbmV4cG9ydCBjbGFzcyBNaW5pbWF0Y2gge1xuICBvcHRpb25zOiBNaW5pbWF0Y2hPcHRpb25zXG4gIHNldDogUGFyc2VSZXR1cm5GaWx0ZXJlZFtdW11cbiAgcGF0dGVybjogc3RyaW5nXG5cbiAgd2luZG93c1BhdGhzTm9Fc2NhcGU6IGJvb2xlYW5cbiAgbm9uZWdhdGU6IGJvb2xlYW5cbiAgbmVnYXRlOiBib29sZWFuXG4gIGNvbW1lbnQ6IGJvb2xlYW5cbiAgZW1wdHk6IGJvb2xlYW5cbiAgcHJlc2VydmVNdWx0aXBsZVNsYXNoZXM6IGJvb2xlYW5cbiAgcGFydGlhbDogYm9vbGVhblxuICBnbG9iU2V0OiBzdHJpbmdbXVxuICBnbG9iUGFydHM6IHN0cmluZ1tdW11cbiAgbm9jYXNlOiBib29sZWFuXG5cbiAgaXNXaW5kb3dzOiBib29sZWFuXG4gIHBsYXRmb3JtOiBQbGF0Zm9ybVxuICB3aW5kb3dzTm9NYWdpY1Jvb3Q6IGJvb2xlYW5cblxuICByZWdleHA6IGZhbHNlIHwgbnVsbCB8IE1NUmVnRXhwXG4gIGNvbnN0cnVjdG9yKHBhdHRlcm46IHN0cmluZywgb3B0aW9uczogTWluaW1hdGNoT3B0aW9ucyA9IHt9KSB7XG4gICAgYXNzZXJ0VmFsaWRQYXR0ZXJuKHBhdHRlcm4pXG5cbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuXG4gICAgdGhpcy5wbGF0Zm9ybSA9IG9wdGlvbnMucGxhdGZvcm0gfHwgZGVmYXVsdFBsYXRmb3JtXG4gICAgdGhpcy5pc1dpbmRvd3MgPSB0aGlzLnBsYXRmb3JtID09PSAnd2luMzInXG4gICAgdGhpcy53aW5kb3dzUGF0aHNOb0VzY2FwZSA9XG4gICAgICAhIW9wdGlvbnMud2luZG93c1BhdGhzTm9Fc2NhcGUgfHwgb3B0aW9ucy5hbGxvd1dpbmRvd3NFc2NhcGUgPT09IGZhbHNlXG4gICAgaWYgKHRoaXMud2luZG93c1BhdGhzTm9Fc2NhcGUpIHtcbiAgICAgIHRoaXMucGF0dGVybiA9IHRoaXMucGF0dGVybi5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICB9XG4gICAgdGhpcy5wcmVzZXJ2ZU11bHRpcGxlU2xhc2hlcyA9ICEhb3B0aW9ucy5wcmVzZXJ2ZU11bHRpcGxlU2xhc2hlc1xuICAgIHRoaXMucmVnZXhwID0gbnVsbFxuICAgIHRoaXMubmVnYXRlID0gZmFsc2VcbiAgICB0aGlzLm5vbmVnYXRlID0gISFvcHRpb25zLm5vbmVnYXRlXG4gICAgdGhpcy5jb21tZW50ID0gZmFsc2VcbiAgICB0aGlzLmVtcHR5ID0gZmFsc2VcbiAgICB0aGlzLnBhcnRpYWwgPSAhIW9wdGlvbnMucGFydGlhbFxuICAgIHRoaXMubm9jYXNlID0gISF0aGlzLm9wdGlvbnMubm9jYXNlXG4gICAgdGhpcy53aW5kb3dzTm9NYWdpY1Jvb3QgPVxuICAgICAgb3B0aW9ucy53aW5kb3dzTm9NYWdpY1Jvb3QgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IG9wdGlvbnMud2luZG93c05vTWFnaWNSb290XG4gICAgICAgIDogISEodGhpcy5pc1dpbmRvd3MgJiYgdGhpcy5ub2Nhc2UpXG5cbiAgICB0aGlzLmdsb2JTZXQgPSBbXVxuICAgIHRoaXMuZ2xvYlBhcnRzID0gW11cbiAgICB0aGlzLnNldCA9IFtdXG5cbiAgICAvLyBtYWtlIHRoZSBzZXQgb2YgcmVnZXhwcyBldGMuXG4gICAgdGhpcy5tYWtlKClcbiAgfVxuXG4gIGhhc01hZ2ljKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMubWFnaWNhbEJyYWNlcyAmJiB0aGlzLnNldC5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgdGhpcy5zZXQpIHtcbiAgICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXR0ZXJuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFydCAhPT0gJ3N0cmluZycpIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZGVidWcoLi4uXzogYW55W10pIHt9XG5cbiAgbWFrZSgpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5wYXR0ZXJuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuXG4gICAgLy8gZW1wdHkgcGF0dGVybnMgYW5kIGNvbW1lbnRzIG1hdGNoIG5vdGhpbmcuXG4gICAgaWYgKCFvcHRpb25zLm5vY29tbWVudCAmJiBwYXR0ZXJuLmNoYXJBdCgwKSA9PT0gJyMnKSB7XG4gICAgICB0aGlzLmNvbW1lbnQgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgIHRoaXMuZW1wdHkgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBzdGVwIDE6IGZpZ3VyZSBvdXQgbmVnYXRpb24sIGV0Yy5cbiAgICB0aGlzLnBhcnNlTmVnYXRlKClcblxuICAgIC8vIHN0ZXAgMjogZXhwYW5kIGJyYWNlc1xuICAgIHRoaXMuZ2xvYlNldCA9IFsuLi5uZXcgU2V0KHRoaXMuYnJhY2VFeHBhbmQoKSldXG5cbiAgICBpZiAob3B0aW9ucy5kZWJ1Zykge1xuICAgICAgdGhpcy5kZWJ1ZyA9ICguLi5hcmdzOiBhbnlbXSkgPT4gY29uc29sZS5lcnJvciguLi5hcmdzKVxuICAgIH1cblxuICAgIHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCB0aGlzLmdsb2JTZXQpXG5cbiAgICAvLyBzdGVwIDM6IG5vdyB3ZSBoYXZlIGEgc2V0LCBzbyB0dXJuIGVhY2ggb25lIGludG8gYSBzZXJpZXMgb2ZcbiAgICAvLyBwYXRoLXBvcnRpb24gbWF0Y2hpbmcgcGF0dGVybnMuXG4gICAgLy8gVGhlc2Ugd2lsbCBiZSByZWdleHBzLCBleGNlcHQgaW4gdGhlIGNhc2Ugb2YgXCIqKlwiLCB3aGljaCBpc1xuICAgIC8vIHNldCB0byB0aGUgR0xPQlNUQVIgb2JqZWN0IGZvciBnbG9ic3RhciBiZWhhdmlvcixcbiAgICAvLyBhbmQgd2lsbCBub3QgY29udGFpbiBhbnkgLyBjaGFyYWN0ZXJzXG4gICAgLy9cbiAgICAvLyBGaXJzdCwgd2UgcHJlcHJvY2VzcyB0byBtYWtlIHRoZSBnbG9iIHBhdHRlcm4gc2V0cyBhIGJpdCBzaW1wbGVyXG4gICAgLy8gYW5kIGRlZHVwZWQuICBUaGVyZSBhcmUgc29tZSBwZXJmLWtpbGxpbmcgcGF0dGVybnMgdGhhdCBjYW4gY2F1c2VcbiAgICAvLyBwcm9ibGVtcyB3aXRoIGEgZ2xvYiB3YWxrLCBidXQgd2UgY2FuIHNpbXBsaWZ5IHRoZW0gZG93biBhIGJpdC5cbiAgICBjb25zdCByYXdHbG9iUGFydHMgPSB0aGlzLmdsb2JTZXQubWFwKHMgPT4gdGhpcy5zbGFzaFNwbGl0KHMpKVxuICAgIHRoaXMuZ2xvYlBhcnRzID0gdGhpcy5wcmVwcm9jZXNzKHJhd0dsb2JQYXJ0cylcbiAgICB0aGlzLmRlYnVnKHRoaXMucGF0dGVybiwgdGhpcy5nbG9iUGFydHMpXG5cbiAgICAvLyBnbG9iIC0tPiByZWdleHBzXG4gICAgbGV0IHNldCA9IHRoaXMuZ2xvYlBhcnRzLm1hcCgocywgXywgX18pID0+IHtcbiAgICAgIGlmICh0aGlzLmlzV2luZG93cyAmJiB0aGlzLndpbmRvd3NOb01hZ2ljUm9vdCkge1xuICAgICAgICAvLyBjaGVjayBpZiBpdCdzIGEgZHJpdmUgb3IgdW5jIHBhdGguXG4gICAgICAgIGNvbnN0IGlzVU5DID1cbiAgICAgICAgICBzWzBdID09PSAnJyAmJlxuICAgICAgICAgIHNbMV0gPT09ICcnICYmXG4gICAgICAgICAgKHNbMl0gPT09ICc/JyB8fCAhZ2xvYk1hZ2ljLnRlc3Qoc1syXSkpICYmXG4gICAgICAgICAgIWdsb2JNYWdpYy50ZXN0KHNbM10pXG4gICAgICAgIGNvbnN0IGlzRHJpdmUgPSAvXlthLXpdOi9pLnRlc3Qoc1swXSlcbiAgICAgICAgaWYgKGlzVU5DKSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5zLnNsaWNlKDAsIDQpLCAuLi5zLnNsaWNlKDQpLm1hcChzcyA9PiB0aGlzLnBhcnNlKHNzKSldXG4gICAgICAgIH0gZWxzZSBpZiAoaXNEcml2ZSkge1xuICAgICAgICAgIHJldHVybiBbc1swXSwgLi4ucy5zbGljZSgxKS5tYXAoc3MgPT4gdGhpcy5wYXJzZShzcykpXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcy5tYXAoc3MgPT4gdGhpcy5wYXJzZShzcykpXG4gICAgfSlcblxuICAgIHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCBzZXQpXG5cbiAgICAvLyBmaWx0ZXIgb3V0IGV2ZXJ5dGhpbmcgdGhhdCBkaWRuJ3QgY29tcGlsZSBwcm9wZXJseS5cbiAgICB0aGlzLnNldCA9IHNldC5maWx0ZXIoXG4gICAgICBzID0+IHMuaW5kZXhPZihmYWxzZSkgPT09IC0xXG4gICAgKSBhcyBQYXJzZVJldHVybkZpbHRlcmVkW11bXVxuXG4gICAgLy8gZG8gbm90IHRyZWF0IHRoZSA/IGluIFVOQyBwYXRocyBhcyBtYWdpY1xuICAgIGlmICh0aGlzLmlzV2luZG93cykge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNldC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwID0gdGhpcy5zZXRbaV1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBbMF0gPT09ICcnICYmXG4gICAgICAgICAgcFsxXSA9PT0gJycgJiZcbiAgICAgICAgICB0aGlzLmdsb2JQYXJ0c1tpXVsyXSA9PT0gJz8nICYmXG4gICAgICAgICAgdHlwZW9mIHBbM10gPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgL15bYS16XTokL2kudGVzdChwWzNdKVxuICAgICAgICApIHtcbiAgICAgICAgICBwWzJdID0gJz8nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnKHRoaXMucGF0dGVybiwgdGhpcy5zZXQpXG4gIH1cblxuICAvLyB2YXJpb3VzIHRyYW5zZm9ybXMgdG8gZXF1aXZhbGVudCBwYXR0ZXJuIHNldHMgdGhhdCBhcmVcbiAgLy8gZmFzdGVyIHRvIHByb2Nlc3MgaW4gYSBmaWxlc3lzdGVtIHdhbGsuICBUaGUgZ29hbCBpcyB0b1xuICAvLyBlbGltaW5hdGUgd2hhdCB3ZSBjYW4sIGFuZCBwdXNoIGFsbCAqKiBwYXR0ZXJucyBhcyBmYXJcbiAgLy8gdG8gdGhlIHJpZ2h0IGFzIHBvc3NpYmxlLCBldmVuIGlmIGl0IGluY3JlYXNlcyB0aGUgbnVtYmVyXG4gIC8vIG9mIHBhdHRlcm5zIHRoYXQgd2UgaGF2ZSB0byBwcm9jZXNzLlxuICBwcmVwcm9jZXNzKGdsb2JQYXJ0czogc3RyaW5nW11bXSkge1xuICAgIC8vIGlmIHdlJ3JlIG5vdCBpbiBnbG9ic3RhciBtb2RlLCB0aGVuIHR1cm4gYWxsICoqIGludG8gKlxuICAgIGlmICh0aGlzLm9wdGlvbnMubm9nbG9ic3Rhcikge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnbG9iUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBnbG9iUGFydHNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZiAoZ2xvYlBhcnRzW2ldW2pdID09PSAnKionKSB7XG4gICAgICAgICAgICBnbG9iUGFydHNbaV1bal0gPSAnKidcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IG9wdGltaXphdGlvbkxldmVsID0gMSB9ID0gdGhpcy5vcHRpb25zXG5cbiAgICBpZiAob3B0aW1pemF0aW9uTGV2ZWwgPj0gMikge1xuICAgICAgLy8gYWdncmVzc2l2ZSBvcHRpbWl6YXRpb24gZm9yIHRoZSBwdXJwb3NlIG9mIGZzIHdhbGtpbmdcbiAgICAgIGdsb2JQYXJ0cyA9IHRoaXMuZmlyc3RQaGFzZVByZVByb2Nlc3MoZ2xvYlBhcnRzKVxuICAgICAgZ2xvYlBhcnRzID0gdGhpcy5zZWNvbmRQaGFzZVByZVByb2Nlc3MoZ2xvYlBhcnRzKVxuICAgIH0gZWxzZSBpZiAob3B0aW1pemF0aW9uTGV2ZWwgPj0gMSkge1xuICAgICAgLy8ganVzdCBiYXNpYyBvcHRpbWl6YXRpb25zIHRvIHJlbW92ZSBzb21lIC4uIHBhcnRzXG4gICAgICBnbG9iUGFydHMgPSB0aGlzLmxldmVsT25lT3B0aW1pemUoZ2xvYlBhcnRzKVxuICAgIH0gZWxzZSB7XG4gICAgICBnbG9iUGFydHMgPSB0aGlzLmFkamFzY2VudEdsb2JzdGFyT3B0aW1pemUoZ2xvYlBhcnRzKVxuICAgIH1cblxuICAgIHJldHVybiBnbG9iUGFydHNcbiAgfVxuXG4gIC8vIGp1c3QgZ2V0IHJpZCBvZiBhZGphc2NlbnQgKiogcG9ydGlvbnNcbiAgYWRqYXNjZW50R2xvYnN0YXJPcHRpbWl6ZShnbG9iUGFydHM6IHN0cmluZ1tdW10pIHtcbiAgICByZXR1cm4gZ2xvYlBhcnRzLm1hcChwYXJ0cyA9PiB7XG4gICAgICBsZXQgZ3M6IG51bWJlciA9IC0xXG4gICAgICB3aGlsZSAoLTEgIT09IChncyA9IHBhcnRzLmluZGV4T2YoJyoqJywgZ3MgKyAxKSkpIHtcbiAgICAgICAgbGV0IGkgPSBnc1xuICAgICAgICB3aGlsZSAocGFydHNbaSArIDFdID09PSAnKionKSB7XG4gICAgICAgICAgaSsrXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgIT09IGdzKSB7XG4gICAgICAgICAgcGFydHMuc3BsaWNlKGdzLCBpIC0gZ3MpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJ0c1xuICAgIH0pXG4gIH1cblxuICAvLyBnZXQgcmlkIG9mIGFkamFzY2VudCAqKiBhbmQgcmVzb2x2ZSAuLiBwb3J0aW9uc1xuICBsZXZlbE9uZU9wdGltaXplKGdsb2JQYXJ0czogc3RyaW5nW11bXSkge1xuICAgIHJldHVybiBnbG9iUGFydHMubWFwKHBhcnRzID0+IHtcbiAgICAgIHBhcnRzID0gcGFydHMucmVkdWNlKChzZXQ6IHN0cmluZ1tdLCBwYXJ0KSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBzZXRbc2V0Lmxlbmd0aCAtIDFdXG4gICAgICAgIGlmIChwYXJ0ID09PSAnKionICYmIHByZXYgPT09ICcqKicpIHtcbiAgICAgICAgICByZXR1cm4gc2V0XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcnQgPT09ICcuLicpIHtcbiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2ICE9PSAnLi4nICYmIHByZXYgIT09ICcuJyAmJiBwcmV2ICE9PSAnKionKSB7XG4gICAgICAgICAgICBzZXQucG9wKClcbiAgICAgICAgICAgIHJldHVybiBzZXRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0LnB1c2gocGFydClcbiAgICAgICAgcmV0dXJuIHNldFxuICAgICAgfSwgW10pXG4gICAgICByZXR1cm4gcGFydHMubGVuZ3RoID09PSAwID8gWycnXSA6IHBhcnRzXG4gICAgfSlcbiAgfVxuXG4gIGxldmVsVHdvRmlsZU9wdGltaXplKHBhcnRzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwYXJ0cykpIHtcbiAgICAgIHBhcnRzID0gdGhpcy5zbGFzaFNwbGl0KHBhcnRzKVxuICAgIH1cbiAgICBsZXQgZGlkU29tZXRoaW5nOiBib29sZWFuID0gZmFsc2VcbiAgICBkbyB7XG4gICAgICBkaWRTb21ldGhpbmcgPSBmYWxzZVxuICAgICAgLy8gPHByZT4vPGU+LzxyZXN0PiAtPiA8cHJlPi88cmVzdD5cbiAgICAgIGlmICghdGhpcy5wcmVzZXJ2ZU11bHRpcGxlU2xhc2hlcykge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHBhcnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHAgPSBwYXJ0c1tpXVxuICAgICAgICAgIC8vIGRvbid0IHNxdWVlemUgb3V0IFVOQyBwYXR0ZXJuc1xuICAgICAgICAgIGlmIChpID09PSAxICYmIHAgPT09ICcnICYmIHBhcnRzWzBdID09PSAnJykgY29udGludWVcbiAgICAgICAgICBpZiAocCA9PT0gJy4nIHx8IHAgPT09ICcnKSB7XG4gICAgICAgICAgICBkaWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMSlcbiAgICAgICAgICAgIGktLVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFydHNbMF0gPT09ICcuJyAmJlxuICAgICAgICAgIHBhcnRzLmxlbmd0aCA9PT0gMiAmJlxuICAgICAgICAgIChwYXJ0c1sxXSA9PT0gJy4nIHx8IHBhcnRzWzFdID09PSAnJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgZGlkU29tZXRoaW5nID0gdHJ1ZVxuICAgICAgICAgIHBhcnRzLnBvcCgpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gPHByZT4vPHA+Ly4uLzxyZXN0PiAtPiA8cHJlPi88cmVzdD5cbiAgICAgIGxldCBkZDogbnVtYmVyID0gMFxuICAgICAgd2hpbGUgKC0xICE9PSAoZGQgPSBwYXJ0cy5pbmRleE9mKCcuLicsIGRkICsgMSkpKSB7XG4gICAgICAgIGNvbnN0IHAgPSBwYXJ0c1tkZCAtIDFdXG4gICAgICAgIGlmIChwICYmIHAgIT09ICcuJyAmJiBwICE9PSAnLi4nICYmIHAgIT09ICcqKicpIHtcbiAgICAgICAgICBkaWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICAgICAgcGFydHMuc3BsaWNlKGRkIC0gMSwgMilcbiAgICAgICAgICBkZCAtPSAyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IHdoaWxlIChkaWRTb21ldGhpbmcpXG4gICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA9PT0gMCA/IFsnJ10gOiBwYXJ0c1xuICB9XG5cbiAgLy8gRmlyc3QgcGhhc2U6IHNpbmdsZS1wYXR0ZXJuIHByb2Nlc3NpbmdcbiAgLy8gPHByZT4gaXMgMSBvciBtb3JlIHBvcnRpb25zXG4gIC8vIDxyZXN0PiBpcyAxIG9yIG1vcmUgcG9ydGlvbnNcbiAgLy8gPHA+IGlzIGFueSBwb3J0aW9uIG90aGVyIHRoYW4gLiwgLi4sICcnLCBvciAqKlxuICAvLyA8ZT4gaXMgLiBvciAnJ1xuICAvL1xuICAvLyAqKi8uLiBpcyAqYnJ1dGFsKiBmb3IgZmlsZXN5c3RlbSB3YWxraW5nIHBlcmZvcm1hbmNlLCBiZWNhdXNlXG4gIC8vIGl0IGVmZmVjdGl2ZWx5IHJlc2V0cyB0aGUgcmVjdXJzaXZlIHdhbGsgZWFjaCB0aW1lIGl0IG9jY3VycyxcbiAgLy8gYW5kICoqIGNhbm5vdCBiZSByZWR1Y2VkIG91dCBieSBhIC4uIHBhdHRlcm4gcGFydCBsaWtlIGEgcmVnZXhwXG4gIC8vIG9yIG1vc3Qgc3RyaW5ncyAob3RoZXIgdGhhbiAuLiwgLiwgYW5kICcnKSBjYW4gYmUuXG4gIC8vXG4gIC8vIDxwcmU+LyoqLy4uLzxwPi88cD4vPHJlc3Q+IC0+IHs8cHJlPi8uLi88cD4vPHA+LzxyZXN0Piw8cHJlPi8qKi88cD4vPHA+LzxyZXN0Pn1cbiAgLy8gPHByZT4vPGU+LzxyZXN0PiAtPiA8cHJlPi88cmVzdD5cbiAgLy8gPHByZT4vPHA+Ly4uLzxyZXN0PiAtPiA8cHJlPi88cmVzdD5cbiAgLy8gKiovKiovPHJlc3Q+IC0+ICoqLzxyZXN0PlxuICAvL1xuICAvLyAqKi8qLzxyZXN0PiAtPiAqLyoqLzxyZXN0PiA8PT0gbm90IHZhbGlkIGJlY2F1c2UgKiogZG9lc24ndCBmb2xsb3dcbiAgLy8gdGhpcyBXT1VMRCBiZSBhbGxvd2VkIGlmICoqIGRpZCBmb2xsb3cgc3ltbGlua3MsIG9yICogZGlkbid0XG4gIGZpcnN0UGhhc2VQcmVQcm9jZXNzKGdsb2JQYXJ0czogc3RyaW5nW11bXSkge1xuICAgIGxldCBkaWRTb21ldGhpbmcgPSBmYWxzZVxuICAgIGRvIHtcbiAgICAgIGRpZFNvbWV0aGluZyA9IGZhbHNlXG4gICAgICAvLyA8cHJlPi8qKi8uLi88cD4vPHA+LzxyZXN0PiAtPiB7PHByZT4vLi4vPHA+LzxwPi88cmVzdD4sPHByZT4vKiovPHA+LzxwPi88cmVzdD59XG4gICAgICBmb3IgKGxldCBwYXJ0cyBvZiBnbG9iUGFydHMpIHtcbiAgICAgICAgbGV0IGdzOiBudW1iZXIgPSAtMVxuICAgICAgICB3aGlsZSAoLTEgIT09IChncyA9IHBhcnRzLmluZGV4T2YoJyoqJywgZ3MgKyAxKSkpIHtcbiAgICAgICAgICBsZXQgZ3NzOiBudW1iZXIgPSBnc1xuICAgICAgICAgIHdoaWxlIChwYXJ0c1tnc3MgKyAxXSA9PT0gJyoqJykge1xuICAgICAgICAgICAgLy8gPHByZT4vKiovKiovPHJlc3Q+IC0+IDxwcmU+LyoqLzxyZXN0PlxuICAgICAgICAgICAgZ3NzKytcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZWcsIGlmIGdzIGlzIDIgYW5kIGdzcyBpcyA0LCB0aGF0IG1lYW5zIHdlIGhhdmUgMyAqKlxuICAgICAgICAgIC8vIHBhcnRzLCBhbmQgY2FuIHJlbW92ZSAyIG9mIHRoZW0uXG4gICAgICAgICAgaWYgKGdzcyA+IGdzKSB7XG4gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoZ3MgKyAxLCBnc3MgLSBncylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgbmV4dCA9IHBhcnRzW2dzICsgMV1cbiAgICAgICAgICBjb25zdCBwID0gcGFydHNbZ3MgKyAyXVxuICAgICAgICAgIGNvbnN0IHAyID0gcGFydHNbZ3MgKyAzXVxuICAgICAgICAgIGlmIChuZXh0ICE9PSAnLi4nKSBjb250aW51ZVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFwIHx8XG4gICAgICAgICAgICBwID09PSAnLicgfHxcbiAgICAgICAgICAgIHAgPT09ICcuLicgfHxcbiAgICAgICAgICAgICFwMiB8fFxuICAgICAgICAgICAgcDIgPT09ICcuJyB8fFxuICAgICAgICAgICAgcDIgPT09ICcuLidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfVxuICAgICAgICAgIGRpZFNvbWV0aGluZyA9IHRydWVcbiAgICAgICAgICAvLyBlZGl0IHBhcnRzIGluIHBsYWNlLCBhbmQgcHVzaCB0aGUgbmV3IG9uZVxuICAgICAgICAgIHBhcnRzLnNwbGljZShncywgMSlcbiAgICAgICAgICBjb25zdCBvdGhlciA9IHBhcnRzLnNsaWNlKDApXG4gICAgICAgICAgb3RoZXJbZ3NdID0gJyoqJ1xuICAgICAgICAgIGdsb2JQYXJ0cy5wdXNoKG90aGVyKVxuICAgICAgICAgIGdzLS1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDxwcmU+LzxlPi88cmVzdD4gLT4gPHByZT4vPHJlc3Q+XG4gICAgICAgIGlmICghdGhpcy5wcmVzZXJ2ZU11bHRpcGxlU2xhc2hlcykge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBwID0gcGFydHNbaV1cbiAgICAgICAgICAgIC8vIGRvbid0IHNxdWVlemUgb3V0IFVOQyBwYXR0ZXJuc1xuICAgICAgICAgICAgaWYgKGkgPT09IDEgJiYgcCA9PT0gJycgJiYgcGFydHNbMF0gPT09ICcnKSBjb250aW51ZVxuICAgICAgICAgICAgaWYgKHAgPT09ICcuJyB8fCBwID09PSAnJykge1xuICAgICAgICAgICAgICBkaWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICAgICAgICAgIHBhcnRzLnNwbGljZShpLCAxKVxuICAgICAgICAgICAgICBpLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFydHNbMF0gPT09ICcuJyAmJlxuICAgICAgICAgICAgcGFydHMubGVuZ3RoID09PSAyICYmXG4gICAgICAgICAgICAocGFydHNbMV0gPT09ICcuJyB8fCBwYXJ0c1sxXSA9PT0gJycpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBkaWRTb21ldGhpbmcgPSB0cnVlXG4gICAgICAgICAgICBwYXJ0cy5wb3AoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDxwcmU+LzxwPi8uLi88cmVzdD4gLT4gPHByZT4vPHJlc3Q+XG4gICAgICAgIGxldCBkZDogbnVtYmVyID0gMFxuICAgICAgICB3aGlsZSAoLTEgIT09IChkZCA9IHBhcnRzLmluZGV4T2YoJy4uJywgZGQgKyAxKSkpIHtcbiAgICAgICAgICBjb25zdCBwID0gcGFydHNbZGQgLSAxXVxuICAgICAgICAgIGlmIChwICYmIHAgIT09ICcuJyAmJiBwICE9PSAnLi4nICYmIHAgIT09ICcqKicpIHtcbiAgICAgICAgICAgIGRpZFNvbWV0aGluZyA9IHRydWVcbiAgICAgICAgICAgIGNvbnN0IG5lZWREb3QgPSBkZCA9PT0gMSAmJiBwYXJ0c1tkZCArIDFdID09PSAnKionXG4gICAgICAgICAgICBjb25zdCBzcGxpbiA9IG5lZWREb3QgPyBbJy4nXSA6IFtdXG4gICAgICAgICAgICBwYXJ0cy5zcGxpY2UoZGQgLSAxLCAyLCAuLi5zcGxpbilcbiAgICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHBhcnRzLnB1c2goJycpXG4gICAgICAgICAgICBkZCAtPSAyXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAoZGlkU29tZXRoaW5nKVxuXG4gICAgcmV0dXJuIGdsb2JQYXJ0c1xuICB9XG5cbiAgLy8gc2Vjb25kIHBoYXNlOiBtdWx0aS1wYXR0ZXJuIGRlZHVwZXNcbiAgLy8gezxwcmU+LyovPHJlc3Q+LDxwcmU+LzxwPi88cmVzdD59IC0+IDxwcmU+LyovPHJlc3Q+XG4gIC8vIHs8cHJlPi88cmVzdD4sPHByZT4vPHJlc3Q+fSAtPiA8cHJlPi88cmVzdD5cbiAgLy8gezxwcmU+LyoqLzxyZXN0Piw8cHJlPi88cmVzdD59IC0+IDxwcmU+LyoqLzxyZXN0PlxuICAvL1xuICAvLyB7PHByZT4vKiovPHJlc3Q+LDxwcmU+LyoqLzxwPi88cmVzdD59IC0+IDxwcmU+LyoqLzxyZXN0PlxuICAvLyBeLS0gbm90IHZhbGlkIGJlY2F1c2UgKiogZG9lbnMndCBmb2xsb3cgc3ltbGlua3NcbiAgc2Vjb25kUGhhc2VQcmVQcm9jZXNzKGdsb2JQYXJ0czogc3RyaW5nW11bXSk6IHN0cmluZ1tdW10ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ2xvYlBhcnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgZ2xvYlBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLnBhcnRzTWF0Y2goXG4gICAgICAgICAgZ2xvYlBhcnRzW2ldLFxuICAgICAgICAgIGdsb2JQYXJ0c1tqXSxcbiAgICAgICAgICAhdGhpcy5wcmVzZXJ2ZU11bHRpcGxlU2xhc2hlc1xuICAgICAgICApXG4gICAgICAgIGlmICghbWF0Y2hlZCkgY29udGludWVcbiAgICAgICAgZ2xvYlBhcnRzW2ldID0gbWF0Y2hlZFxuICAgICAgICBnbG9iUGFydHNbal0gPSBbXVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2xvYlBhcnRzLmZpbHRlcihncyA9PiBncy5sZW5ndGgpXG4gIH1cblxuICBwYXJ0c01hdGNoKFxuICAgIGE6IHN0cmluZ1tdLFxuICAgIGI6IHN0cmluZ1tdLFxuICAgIGVtcHR5R1NNYXRjaDogYm9vbGVhbiA9IGZhbHNlXG4gICk6IGZhbHNlIHwgc3RyaW5nW10ge1xuICAgIGxldCBhaSA9IDBcbiAgICBsZXQgYmkgPSAwXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nW10gPSBbXVxuICAgIGxldCB3aGljaDogc3RyaW5nID0gJydcbiAgICB3aGlsZSAoYWkgPCBhLmxlbmd0aCAmJiBiaSA8IGIubGVuZ3RoKSB7XG4gICAgICBpZiAoYVthaV0gPT09IGJbYmldKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHdoaWNoID09PSAnYicgPyBiW2JpXSA6IGFbYWldKVxuICAgICAgICBhaSsrXG4gICAgICAgIGJpKytcbiAgICAgIH0gZWxzZSBpZiAoZW1wdHlHU01hdGNoICYmIGFbYWldID09PSAnKionICYmIGJbYmldID09PSBhW2FpICsgMV0pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYVthaV0pXG4gICAgICAgIGFpKytcbiAgICAgIH0gZWxzZSBpZiAoZW1wdHlHU01hdGNoICYmIGJbYmldID09PSAnKionICYmIGFbYWldID09PSBiW2JpICsgMV0pIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYltiaV0pXG4gICAgICAgIGJpKytcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGFbYWldID09PSAnKicgJiZcbiAgICAgICAgYltiaV0gJiZcbiAgICAgICAgKHRoaXMub3B0aW9ucy5kb3QgfHwgIWJbYmldLnN0YXJ0c1dpdGgoJy4nKSkgJiZcbiAgICAgICAgYltiaV0gIT09ICcqKidcbiAgICAgICkge1xuICAgICAgICBpZiAod2hpY2ggPT09ICdiJykgcmV0dXJuIGZhbHNlXG4gICAgICAgIHdoaWNoID0gJ2EnXG4gICAgICAgIHJlc3VsdC5wdXNoKGFbYWldKVxuICAgICAgICBhaSsrXG4gICAgICAgIGJpKytcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGJbYmldID09PSAnKicgJiZcbiAgICAgICAgYVthaV0gJiZcbiAgICAgICAgKHRoaXMub3B0aW9ucy5kb3QgfHwgIWFbYWldLnN0YXJ0c1dpdGgoJy4nKSkgJiZcbiAgICAgICAgYVthaV0gIT09ICcqKidcbiAgICAgICkge1xuICAgICAgICBpZiAod2hpY2ggPT09ICdhJykgcmV0dXJuIGZhbHNlXG4gICAgICAgIHdoaWNoID0gJ2InXG4gICAgICAgIHJlc3VsdC5wdXNoKGJbYmldKVxuICAgICAgICBhaSsrXG4gICAgICAgIGJpKytcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB3ZSBmYWxsIG91dCBvZiB0aGUgbG9vcCwgaXQgbWVhbnMgdGhleSB0d28gYXJlIGlkZW50aWNhbFxuICAgIC8vIGFzIGxvbmcgYXMgdGhlaXIgbGVuZ3RocyBtYXRjaFxuICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgcmVzdWx0XG4gIH1cblxuICBwYXJzZU5lZ2F0ZSgpIHtcbiAgICBpZiAodGhpcy5ub25lZ2F0ZSkgcmV0dXJuXG5cbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5wYXR0ZXJuXG4gICAgbGV0IG5lZ2F0ZSA9IGZhbHNlXG4gICAgbGV0IG5lZ2F0ZU9mZnNldCA9IDBcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGggJiYgcGF0dGVybi5jaGFyQXQoaSkgPT09ICchJzsgaSsrKSB7XG4gICAgICBuZWdhdGUgPSAhbmVnYXRlXG4gICAgICBuZWdhdGVPZmZzZXQrK1xuICAgIH1cblxuICAgIGlmIChuZWdhdGVPZmZzZXQpIHRoaXMucGF0dGVybiA9IHBhdHRlcm4uc2xpY2UobmVnYXRlT2Zmc2V0KVxuICAgIHRoaXMubmVnYXRlID0gbmVnYXRlXG4gIH1cblxuICAvLyBzZXQgcGFydGlhbCB0byB0cnVlIHRvIHRlc3QgaWYsIGZvciBleGFtcGxlLFxuICAvLyBcIi9hL2JcIiBtYXRjaGVzIHRoZSBzdGFydCBvZiBcIi8qL2IvKi9kXCJcbiAgLy8gUGFydGlhbCBtZWFucywgaWYgeW91IHJ1biBvdXQgb2YgZmlsZSBiZWZvcmUgeW91IHJ1blxuICAvLyBvdXQgb2YgcGF0dGVybiwgdGhlbiB0aGF0J3MgZmluZSwgYXMgbG9uZyBhcyBhbGxcbiAgLy8gdGhlIHBhcnRzIG1hdGNoLlxuICBtYXRjaE9uZShmaWxlOiBzdHJpbmdbXSwgcGF0dGVybjogUGFyc2VSZXR1cm5bXSwgcGFydGlhbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuXG4gICAgLy8gVU5DIHBhdGhzIGxpa2UgLy8/L1g6Ly4uLiBjYW4gbWF0Y2ggWDovLi4uIGFuZCB2aWNlIHZlcnNhXG4gICAgLy8gRHJpdmUgbGV0dGVycyBpbiBhYnNvbHV0ZSBkcml2ZSBvciB1bmMgcGF0aHMgYXJlIGFsd2F5cyBjb21wYXJlZFxuICAgIC8vIGNhc2UtaW5zZW5zaXRpdmVseS5cbiAgICBpZiAodGhpcy5pc1dpbmRvd3MpIHtcbiAgICAgIGNvbnN0IGZpbGVEcml2ZSA9IHR5cGVvZiBmaWxlWzBdID09PSAnc3RyaW5nJyAmJiAvXlthLXpdOiQvaS50ZXN0KGZpbGVbMF0pXG4gICAgICBjb25zdCBmaWxlVU5DID1cbiAgICAgICAgIWZpbGVEcml2ZSAmJlxuICAgICAgICBmaWxlWzBdID09PSAnJyAmJlxuICAgICAgICBmaWxlWzFdID09PSAnJyAmJlxuICAgICAgICBmaWxlWzJdID09PSAnPycgJiZcbiAgICAgICAgL15bYS16XTokL2kudGVzdChmaWxlWzNdKVxuXG4gICAgICBjb25zdCBwYXR0ZXJuRHJpdmUgPVxuICAgICAgICB0eXBlb2YgcGF0dGVyblswXSA9PT0gJ3N0cmluZycgJiYgL15bYS16XTokL2kudGVzdChwYXR0ZXJuWzBdKVxuICAgICAgY29uc3QgcGF0dGVyblVOQyA9XG4gICAgICAgICFwYXR0ZXJuRHJpdmUgJiZcbiAgICAgICAgcGF0dGVyblswXSA9PT0gJycgJiZcbiAgICAgICAgcGF0dGVyblsxXSA9PT0gJycgJiZcbiAgICAgICAgcGF0dGVyblsyXSA9PT0gJz8nICYmXG4gICAgICAgIHR5cGVvZiBwYXR0ZXJuWzNdID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAvXlthLXpdOiQvaS50ZXN0KHBhdHRlcm5bM10pXG5cbiAgICAgIGNvbnN0IGZkaSA9IGZpbGVVTkMgPyAzIDogZmlsZURyaXZlID8gMCA6IHVuZGVmaW5lZFxuICAgICAgY29uc3QgcGRpID0gcGF0dGVyblVOQyA/IDMgOiBwYXR0ZXJuRHJpdmUgPyAwIDogdW5kZWZpbmVkXG4gICAgICBpZiAodHlwZW9mIGZkaSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHBkaSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgW2ZkLCBwZF06IFtzdHJpbmcsIHN0cmluZ10gPSBbZmlsZVtmZGldLCBwYXR0ZXJuW3BkaV0gYXMgc3RyaW5nXVxuICAgICAgICBpZiAoZmQudG9Mb3dlckNhc2UoKSA9PT0gcGQudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIHBhdHRlcm5bcGRpXSA9IGZkXG4gICAgICAgICAgaWYgKHBkaSA+IGZkaSkge1xuICAgICAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4uc2xpY2UoIHBkaSlcbiAgICAgICAgICB9IGVsc2UgaWYgKGZkaSA+IHBkaSkge1xuICAgICAgICAgICAgZmlsZSA9IGZpbGUuc2xpY2UoZmRpKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJlc29sdmUgYW5kIHJlZHVjZSAuIGFuZCAuLiBwb3J0aW9ucyBpbiB0aGUgZmlsZSBhcyB3ZWxsLlxuICAgIC8vIGRvbnQnIG5lZWQgdG8gZG8gdGhlIHNlY29uZCBwaGFzZSwgYmVjYXVzZSBpdCdzIG9ubHkgb25lIHN0cmluZ1tdXG4gICAgY29uc3QgeyBvcHRpbWl6YXRpb25MZXZlbCA9IDEgfSA9IHRoaXMub3B0aW9uc1xuICAgIGlmIChvcHRpbWl6YXRpb25MZXZlbCA+PSAyKSB7XG4gICAgICBmaWxlID0gdGhpcy5sZXZlbFR3b0ZpbGVPcHRpbWl6ZShmaWxlKVxuICAgIH1cblxuICAgIHRoaXMuZGVidWcoJ21hdGNoT25lJywgdGhpcywgeyBmaWxlLCBwYXR0ZXJuIH0pXG4gICAgdGhpcy5kZWJ1ZygnbWF0Y2hPbmUnLCBmaWxlLmxlbmd0aCwgcGF0dGVybi5sZW5ndGgpXG5cbiAgICBmb3IgKFxuICAgICAgdmFyIGZpID0gMCwgcGkgPSAwLCBmbCA9IGZpbGUubGVuZ3RoLCBwbCA9IHBhdHRlcm4ubGVuZ3RoO1xuICAgICAgZmkgPCBmbCAmJiBwaSA8IHBsO1xuICAgICAgZmkrKywgcGkrK1xuICAgICkge1xuICAgICAgdGhpcy5kZWJ1ZygnbWF0Y2hPbmUgbG9vcCcpXG4gICAgICB2YXIgcCA9IHBhdHRlcm5bcGldXG4gICAgICB2YXIgZiA9IGZpbGVbZmldXG5cbiAgICAgIHRoaXMuZGVidWcocGF0dGVybiwgcCwgZilcblxuICAgICAgLy8gc2hvdWxkIGJlIGltcG9zc2libGUuXG4gICAgICAvLyBzb21lIGludmFsaWQgcmVnZXhwIHN0dWZmIGluIHRoZSBzZXQuXG4gICAgICAvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbiAgICAgIGlmIChwID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG5cbiAgICAgIGlmIChwID09PSBHTE9CU1RBUikge1xuICAgICAgICB0aGlzLmRlYnVnKCdHTE9CU1RBUicsIFtwYXR0ZXJuLCBwLCBmXSlcblxuICAgICAgICAvLyBcIioqXCJcbiAgICAgICAgLy8gYS8qKi9iLyoqL2Mgd291bGQgbWF0Y2ggdGhlIGZvbGxvd2luZzpcbiAgICAgICAgLy8gYS9iL3gveS96L2NcbiAgICAgICAgLy8gYS94L3kvei9iL2NcbiAgICAgICAgLy8gYS9iL3gvYi94L2NcbiAgICAgICAgLy8gYS9iL2NcbiAgICAgICAgLy8gVG8gZG8gdGhpcywgdGFrZSB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBhZnRlclxuICAgICAgICAvLyB0aGUgKiosIGFuZCBzZWUgaWYgaXQgd291bGQgbWF0Y2ggdGhlIGZpbGUgcmVtYWluZGVyLlxuICAgICAgICAvLyBJZiBzbywgcmV0dXJuIHN1Y2Nlc3MuXG4gICAgICAgIC8vIElmIG5vdCwgdGhlICoqIFwic3dhbGxvd3NcIiBhIHNlZ21lbnQsIGFuZCB0cnkgYWdhaW4uXG4gICAgICAgIC8vIFRoaXMgaXMgcmVjdXJzaXZlbHkgYXdmdWwuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGEvKiovYi8qKi9jIG1hdGNoaW5nIGEvYi94L3kvei9jXG4gICAgICAgIC8vIC0gYSBtYXRjaGVzIGFcbiAgICAgICAgLy8gLSBkb3VibGVzdGFyXG4gICAgICAgIC8vICAgLSBtYXRjaE9uZShiL3gveS96L2MsIGIvKiovYylcbiAgICAgICAgLy8gICAgIC0gYiBtYXRjaGVzIGJcbiAgICAgICAgLy8gICAgIC0gZG91Ymxlc3RhclxuICAgICAgICAvLyAgICAgICAtIG1hdGNoT25lKHgveS96L2MsIGMpIC0+IG5vXG4gICAgICAgIC8vICAgICAgIC0gbWF0Y2hPbmUoeS96L2MsIGMpIC0+IG5vXG4gICAgICAgIC8vICAgICAgIC0gbWF0Y2hPbmUoei9jLCBjKSAtPiBub1xuICAgICAgICAvLyAgICAgICAtIG1hdGNoT25lKGMsIGMpIHllcywgaGl0XG4gICAgICAgIHZhciBmciA9IGZpXG4gICAgICAgIHZhciBwciA9IHBpICsgMVxuICAgICAgICBpZiAocHIgPT09IHBsKSB7XG4gICAgICAgICAgdGhpcy5kZWJ1ZygnKiogYXQgdGhlIGVuZCcpXG4gICAgICAgICAgLy8gYSAqKiBhdCB0aGUgZW5kIHdpbGwganVzdCBzd2FsbG93IHRoZSByZXN0LlxuICAgICAgICAgIC8vIFdlIGhhdmUgZm91bmQgYSBtYXRjaC5cbiAgICAgICAgICAvLyBob3dldmVyLCBpdCB3aWxsIG5vdCBzd2FsbG93IC8ueCwgdW5sZXNzXG4gICAgICAgICAgLy8gb3B0aW9ucy5kb3QgaXMgc2V0LlxuICAgICAgICAgIC8vIC4gYW5kIC4uIGFyZSAqbmV2ZXIqIG1hdGNoZWQgYnkgKiosIGZvciBleHBsb3NpdmVseVxuICAgICAgICAgIC8vIGV4cG9uZW50aWFsIHJlYXNvbnMuXG4gICAgICAgICAgZm9yICg7IGZpIDwgZmw7IGZpKyspIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZmlsZVtmaV0gPT09ICcuJyB8fFxuICAgICAgICAgICAgICBmaWxlW2ZpXSA9PT0gJy4uJyB8fFxuICAgICAgICAgICAgICAoIW9wdGlvbnMuZG90ICYmIGZpbGVbZmldLmNoYXJBdCgwKSA9PT0gJy4nKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG9rLCBsZXQncyBzZWUgaWYgd2UgY2FuIHN3YWxsb3cgd2hhdGV2ZXIgd2UgY2FuLlxuICAgICAgICB3aGlsZSAoZnIgPCBmbCkge1xuICAgICAgICAgIHZhciBzd2FsbG93ZWUgPSBmaWxlW2ZyXVxuXG4gICAgICAgICAgdGhpcy5kZWJ1ZygnXFxuZ2xvYnN0YXIgd2hpbGUnLCBmaWxlLCBmciwgcGF0dGVybiwgcHIsIHN3YWxsb3dlZSlcblxuICAgICAgICAgIC8vIFhYWCByZW1vdmUgdGhpcyBzbGljZS4gIEp1c3QgcGFzcyB0aGUgc3RhcnQgaW5kZXguXG4gICAgICAgICAgaWYgKHRoaXMubWF0Y2hPbmUoZmlsZS5zbGljZShmciksIHBhdHRlcm4uc2xpY2UocHIpLCBwYXJ0aWFsKSkge1xuICAgICAgICAgICAgdGhpcy5kZWJ1ZygnZ2xvYnN0YXIgZm91bmQgbWF0Y2ghJywgZnIsIGZsLCBzd2FsbG93ZWUpXG4gICAgICAgICAgICAvLyBmb3VuZCBhIG1hdGNoLlxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gY2FuJ3Qgc3dhbGxvdyBcIi5cIiBvciBcIi4uXCIgZXZlci5cbiAgICAgICAgICAgIC8vIGNhbiBvbmx5IHN3YWxsb3cgXCIuZm9vXCIgd2hlbiBleHBsaWNpdGx5IGFza2VkLlxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzd2FsbG93ZWUgPT09ICcuJyB8fFxuICAgICAgICAgICAgICBzd2FsbG93ZWUgPT09ICcuLicgfHxcbiAgICAgICAgICAgICAgKCFvcHRpb25zLmRvdCAmJiBzd2FsbG93ZWUuY2hhckF0KDApID09PSAnLicpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhpcy5kZWJ1ZygnZG90IGRldGVjdGVkIScsIGZpbGUsIGZyLCBwYXR0ZXJuLCBwcilcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gKiogc3dhbGxvd3MgYSBzZWdtZW50LCBhbmQgY29udGludWUuXG4gICAgICAgICAgICB0aGlzLmRlYnVnKCdnbG9ic3RhciBzd2FsbG93IGEgc2VnbWVudCwgYW5kIGNvbnRpbnVlJylcbiAgICAgICAgICAgIGZyKytcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBubyBtYXRjaCB3YXMgZm91bmQuXG4gICAgICAgIC8vIEhvd2V2ZXIsIGluIHBhcnRpYWwgbW9kZSwgd2UgY2FuJ3Qgc2F5IHRoaXMgaXMgbmVjZXNzYXJpbHkgb3Zlci5cbiAgICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgICAgIGlmIChwYXJ0aWFsKSB7XG4gICAgICAgICAgLy8gcmFuIG91dCBvZiBmaWxlXG4gICAgICAgICAgdGhpcy5kZWJ1ZygnXFxuPj4+IG5vIG1hdGNoLCBwYXJ0aWFsPycsIGZpbGUsIGZyLCBwYXR0ZXJuLCBwcilcbiAgICAgICAgICBpZiAoZnIgPT09IGZsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgLy8gc29tZXRoaW5nIG90aGVyIHRoYW4gKipcbiAgICAgIC8vIG5vbi1tYWdpYyBwYXR0ZXJucyBqdXN0IGhhdmUgdG8gbWF0Y2ggZXhhY3RseVxuICAgICAgLy8gcGF0dGVybnMgd2l0aCBtYWdpYyBoYXZlIGJlZW4gdHVybmVkIGludG8gcmVnZXhwcy5cbiAgICAgIGxldCBoaXQ6IGJvb2xlYW5cbiAgICAgIGlmICh0eXBlb2YgcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaGl0ID0gZiA9PT0gcFxuICAgICAgICB0aGlzLmRlYnVnKCdzdHJpbmcgbWF0Y2gnLCBwLCBmLCBoaXQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoaXQgPSBwLnRlc3QoZilcbiAgICAgICAgdGhpcy5kZWJ1ZygncGF0dGVybiBtYXRjaCcsIHAsIGYsIGhpdClcbiAgICAgIH1cblxuICAgICAgaWYgKCFoaXQpIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIC8vIE5vdGU6IGVuZGluZyBpbiAvIG1lYW5zIHRoYXQgd2UnbGwgZ2V0IGEgZmluYWwgXCJcIlxuICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4uICBUaGlzIGNhbiBvbmx5IG1hdGNoIGFcbiAgICAvLyBjb3JyZXNwb25kaW5nIFwiXCIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS5cbiAgICAvLyBJZiB0aGUgZmlsZSBlbmRzIGluIC8sIHRoZW4gaXQgY2FuIG9ubHkgbWF0Y2ggYVxuICAgIC8vIGEgcGF0dGVybiB0aGF0IGVuZHMgaW4gLywgdW5sZXNzIHRoZSBwYXR0ZXJuIGp1c3RcbiAgICAvLyBkb2Vzbid0IGhhdmUgYW55IG1vcmUgZm9yIGl0LiBCdXQsIGEvYi8gc2hvdWxkICpub3QqXG4gICAgLy8gbWF0Y2ggXCJhL2IvKlwiLCBldmVuIHRob3VnaCBcIlwiIG1hdGNoZXMgYWdhaW5zdCB0aGVcbiAgICAvLyBbXi9dKj8gcGF0dGVybiwgZXhjZXB0IGluIHBhcnRpYWwgbW9kZSwgd2hlcmUgaXQgbWlnaHRcbiAgICAvLyBzaW1wbHkgbm90IGJlIHJlYWNoZWQgeWV0LlxuICAgIC8vIEhvd2V2ZXIsIGEvYi8gc2hvdWxkIHN0aWxsIHNhdGlzZnkgYS8qXG5cbiAgICAvLyBub3cgZWl0aGVyIHdlIGZlbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4sIG9yIHdlJ3JlIGRvbmUuXG4gICAgaWYgKGZpID09PSBmbCAmJiBwaSA9PT0gcGwpIHtcbiAgICAgIC8vIHJhbiBvdXQgb2YgcGF0dGVybiBhbmQgZmlsZW5hbWUgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgIC8vIGFuIGV4YWN0IGhpdCFcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmIChmaSA9PT0gZmwpIHtcbiAgICAgIC8vIHJhbiBvdXQgb2YgZmlsZSwgYnV0IHN0aWxsIGhhZCBwYXR0ZXJuIGxlZnQuXG4gICAgICAvLyB0aGlzIGlzIG9rIGlmIHdlJ3JlIGRvaW5nIHRoZSBtYXRjaCBhcyBwYXJ0IG9mXG4gICAgICAvLyBhIGdsb2IgZnMgdHJhdmVyc2FsLlxuICAgICAgcmV0dXJuIHBhcnRpYWxcbiAgICB9IGVsc2UgaWYgKHBpID09PSBwbCkge1xuICAgICAgLy8gcmFuIG91dCBvZiBwYXR0ZXJuLCBzdGlsbCBoYXZlIGZpbGUgbGVmdC5cbiAgICAgIC8vIHRoaXMgaXMgb25seSBhY2NlcHRhYmxlIGlmIHdlJ3JlIG9uIHRoZSB2ZXJ5IGxhc3RcbiAgICAgIC8vIGVtcHR5IHNlZ21lbnQgb2YgYSBmaWxlIHdpdGggYSB0cmFpbGluZyBzbGFzaC5cbiAgICAgIC8vIGEvKiBzaG91bGQgbWF0Y2ggYS9iL1xuICAgICAgcmV0dXJuIGZpID09PSBmbCAtIDEgJiYgZmlsZVtmaV0gPT09ICcnXG5cbiAgICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzaG91bGQgYmUgdW5yZWFjaGFibGUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3d0Zj8nKVxuICAgIH1cbiAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuICB9XG5cbiAgYnJhY2VFeHBhbmQoKSB7XG4gICAgcmV0dXJuIGJyYWNlRXhwYW5kKHRoaXMucGF0dGVybiwgdGhpcy5vcHRpb25zKVxuICB9XG5cbiAgcGFyc2UocGF0dGVybjogc3RyaW5nKTogUGFyc2VSZXR1cm4ge1xuICAgIGFzc2VydFZhbGlkUGF0dGVybihwYXR0ZXJuKVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9uc1xuXG4gICAgLy8gc2hvcnRjdXRzXG4gICAgaWYgKHBhdHRlcm4gPT09ICcqKicpIHJldHVybiBHTE9CU1RBUlxuICAgIGlmIChwYXR0ZXJuID09PSAnJykgcmV0dXJuICcnXG5cbiAgICAvLyBmYXIgYW5kIGF3YXksIHRoZSBtb3N0IGNvbW1vbiBnbG9iIHBhdHRlcm4gcGFydHMgYXJlXG4gICAgLy8gKiwgKi4qLCBhbmQgKi48ZXh0PiAgQWRkIGEgZmFzdCBjaGVjayBtZXRob2QgZm9yIHRob3NlLlxuICAgIGxldCBtOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbFxuICAgIGxldCBmYXN0VGVzdDogbnVsbCB8ICgoZjogc3RyaW5nKSA9PiBib29sZWFuKSA9IG51bGxcbiAgICBpZiAoKG0gPSBwYXR0ZXJuLm1hdGNoKHN0YXJSRSkpKSB7XG4gICAgICBmYXN0VGVzdCA9IG9wdGlvbnMuZG90ID8gc3RhclRlc3REb3QgOiBzdGFyVGVzdFxuICAgIH0gZWxzZSBpZiAoKG0gPSBwYXR0ZXJuLm1hdGNoKHN0YXJEb3RFeHRSRSkpKSB7XG4gICAgICBmYXN0VGVzdCA9IChcbiAgICAgICAgb3B0aW9ucy5ub2Nhc2VcbiAgICAgICAgICA/IG9wdGlvbnMuZG90XG4gICAgICAgICAgICA/IHN0YXJEb3RFeHRUZXN0Tm9jYXNlRG90XG4gICAgICAgICAgICA6IHN0YXJEb3RFeHRUZXN0Tm9jYXNlXG4gICAgICAgICAgOiBvcHRpb25zLmRvdFxuICAgICAgICAgID8gc3RhckRvdEV4dFRlc3REb3RcbiAgICAgICAgICA6IHN0YXJEb3RFeHRUZXN0XG4gICAgICApKG1bMV0pXG4gICAgfSBlbHNlIGlmICgobSA9IHBhdHRlcm4ubWF0Y2gocW1hcmtzUkUpKSkge1xuICAgICAgZmFzdFRlc3QgPSAoXG4gICAgICAgIG9wdGlvbnMubm9jYXNlXG4gICAgICAgICAgPyBvcHRpb25zLmRvdFxuICAgICAgICAgICAgPyBxbWFya3NUZXN0Tm9jYXNlRG90XG4gICAgICAgICAgICA6IHFtYXJrc1Rlc3ROb2Nhc2VcbiAgICAgICAgICA6IG9wdGlvbnMuZG90XG4gICAgICAgICAgPyBxbWFya3NUZXN0RG90XG4gICAgICAgICAgOiBxbWFya3NUZXN0XG4gICAgICApKG0pXG4gICAgfSBlbHNlIGlmICgobSA9IHBhdHRlcm4ubWF0Y2goc3RhckRvdFN0YXJSRSkpKSB7XG4gICAgICBmYXN0VGVzdCA9IG9wdGlvbnMuZG90ID8gc3RhckRvdFN0YXJUZXN0RG90IDogc3RhckRvdFN0YXJUZXN0XG4gICAgfSBlbHNlIGlmICgobSA9IHBhdHRlcm4ubWF0Y2goZG90U3RhclJFKSkpIHtcbiAgICAgIGZhc3RUZXN0ID0gZG90U3RhclRlc3RcbiAgICB9XG5cbiAgICBjb25zdCByZSA9IEFTVC5mcm9tR2xvYihwYXR0ZXJuLCB0aGlzLm9wdGlvbnMpLnRvTU1QYXR0ZXJuKClcbiAgICByZXR1cm4gZmFzdFRlc3QgPyBPYmplY3QuYXNzaWduKHJlLCB7IHRlc3Q6IGZhc3RUZXN0IH0pIDogcmVcbiAgfVxuXG4gIG1ha2VSZSgpIHtcbiAgICBpZiAodGhpcy5yZWdleHAgfHwgdGhpcy5yZWdleHAgPT09IGZhbHNlKSByZXR1cm4gdGhpcy5yZWdleHBcblxuICAgIC8vIGF0IHRoaXMgcG9pbnQsIHRoaXMuc2V0IGlzIGEgMmQgYXJyYXkgb2YgcGFydGlhbFxuICAgIC8vIHBhdHRlcm4gc3RyaW5ncywgb3IgXCIqKlwiLlxuICAgIC8vXG4gICAgLy8gSXQncyBiZXR0ZXIgdG8gdXNlIC5tYXRjaCgpLiAgVGhpcyBmdW5jdGlvbiBzaG91bGRuJ3RcbiAgICAvLyBiZSB1c2VkLCByZWFsbHksIGJ1dCBpdCdzIHByZXR0eSBjb252ZW5pZW50IHNvbWV0aW1lcyxcbiAgICAvLyB3aGVuIHlvdSBqdXN0IHdhbnQgdG8gd29yayB3aXRoIGEgcmVnZXguXG4gICAgY29uc3Qgc2V0ID0gdGhpcy5zZXRcblxuICAgIGlmICghc2V0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5yZWdleHAgPSBmYWxzZVxuICAgICAgcmV0dXJuIHRoaXMucmVnZXhwXG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcblxuICAgIGNvbnN0IHR3b1N0YXIgPSBvcHRpb25zLm5vZ2xvYnN0YXJcbiAgICAgID8gc3RhclxuICAgICAgOiBvcHRpb25zLmRvdFxuICAgICAgPyB0d29TdGFyRG90XG4gICAgICA6IHR3b1N0YXJOb0RvdFxuICAgIGNvbnN0IGZsYWdzID0gbmV3IFNldChvcHRpb25zLm5vY2FzZSA/IFsnaSddIDogW10pXG5cbiAgICAvLyByZWdleHBpZnkgbm9uLWdsb2JzdGFyIHBhdHRlcm5zXG4gICAgLy8gaWYgKiogaXMgb25seSBpdGVtLCB0aGVuIHdlIGp1c3QgZG8gb25lIHR3b1N0YXJcbiAgICAvLyBpZiAqKiBpcyBmaXJzdCwgYW5kIHRoZXJlIGFyZSBtb3JlLCBwcmVwZW5kIChcXC98dHdvU3RhclxcLyk/IHRvIG5leHRcbiAgICAvLyBpZiAqKiBpcyBsYXN0LCBhcHBlbmQgKFxcL3R3b1N0YXJ8KSB0byBwcmV2aW91c1xuICAgIC8vIGlmICoqIGlzIGluIHRoZSBtaWRkbGUsIGFwcGVuZCAoXFwvfFxcL3R3b1N0YXJcXC8pIHRvIHByZXZpb3VzXG4gICAgLy8gdGhlbiBmaWx0ZXIgb3V0IEdMT0JTVEFSIHN5bWJvbHNcbiAgICBsZXQgcmUgPSBzZXRcbiAgICAgIC5tYXAocGF0dGVybiA9PiB7XG4gICAgICAgIGNvbnN0IHBwOiAoc3RyaW5nIHwgdHlwZW9mIEdMT0JTVEFSKVtdID0gcGF0dGVybi5tYXAocCA9PiB7XG4gICAgICAgICAgaWYgKHAgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBwLmZsYWdzLnNwbGl0KCcnKSkgZmxhZ3MuYWRkKGYpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0eXBlb2YgcCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gcmVnRXhwRXNjYXBlKHApXG4gICAgICAgICAgICA6IHAgPT09IEdMT0JTVEFSXG4gICAgICAgICAgICA/IEdMT0JTVEFSXG4gICAgICAgICAgICA6IHAuX3NyY1xuICAgICAgICB9KSBhcyAoc3RyaW5nIHwgdHlwZW9mIEdMT0JTVEFSKVtdXG4gICAgICAgIHBwLmZvckVhY2goKHAsIGkpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXh0ID0gcHBbaSArIDFdXG4gICAgICAgICAgY29uc3QgcHJldiA9IHBwW2kgLSAxXVxuICAgICAgICAgIGlmIChwICE9PSBHTE9CU1RBUiB8fCBwcmV2ID09PSBHTE9CU1RBUikge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmV2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgbmV4dCAhPT0gR0xPQlNUQVIpIHtcbiAgICAgICAgICAgICAgcHBbaSArIDFdID0gJyg/OlxcXFwvfCcgKyB0d29TdGFyICsgJ1xcXFwvKT8nICsgbmV4dFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcHBbaV0gPSB0d29TdGFyXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHBwW2kgLSAxXSA9IHByZXYgKyAnKD86XFxcXC98JyArIHR3b1N0YXIgKyAnKT8nXG4gICAgICAgICAgfSBlbHNlIGlmIChuZXh0ICE9PSBHTE9CU1RBUikge1xuICAgICAgICAgICAgcHBbaSAtIDFdID0gcHJldiArICcoPzpcXFxcL3xcXFxcLycgKyB0d29TdGFyICsgJ1xcXFwvKScgKyBuZXh0XG4gICAgICAgICAgICBwcFtpICsgMV0gPSBHTE9CU1RBUlxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHBwLmZpbHRlcihwID0+IHAgIT09IEdMT0JTVEFSKS5qb2luKCcvJylcbiAgICAgIH0pXG4gICAgICAuam9pbignfCcpXG5cbiAgICAvLyBuZWVkIHRvIHdyYXAgaW4gcGFyZW5zIGlmIHdlIGhhZCBtb3JlIHRoYW4gb25lIHRoaW5nIHdpdGggfCxcbiAgICAvLyBvdGhlcndpc2Ugb25seSB0aGUgZmlyc3Qgd2lsbCBiZSBhbmNob3JlZCB0byBeIGFuZCB0aGUgbGFzdCB0byAkXG4gICAgY29uc3QgW29wZW4sIGNsb3NlXSA9IHNldC5sZW5ndGggPiAxID8gWycoPzonLCAnKSddIDogWycnLCAnJ11cbiAgICAvLyBtdXN0IG1hdGNoIGVudGlyZSBwYXR0ZXJuXG4gICAgLy8gZW5kaW5nIGluIGEgKiBvciAqKiB3aWxsIG1ha2UgaXQgbGVzcyBzdHJpY3QuXG4gICAgcmUgPSAnXicgKyBvcGVuICsgcmUgKyBjbG9zZSArICckJ1xuXG4gICAgLy8gY2FuIG1hdGNoIGFueXRoaW5nLCBhcyBsb25nIGFzIGl0J3Mgbm90IHRoaXMuXG4gICAgaWYgKHRoaXMubmVnYXRlKSByZSA9ICdeKD8hJyArIHJlICsgJykuKyQnXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWdleHAgPSBuZXcgUmVnRXhwKHJlLCBbLi4uZmxhZ3NdLmpvaW4oJycpKVxuICAgICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIHNob3VsZCBiZSBpbXBvc3NpYmxlXG4gICAgICB0aGlzLnJlZ2V4cCA9IGZhbHNlXG4gICAgfVxuICAgIC8qIGM4IGlnbm9yZSBzdG9wICovXG4gICAgcmV0dXJuIHRoaXMucmVnZXhwXG4gIH1cblxuICBzbGFzaFNwbGl0KHA6IHN0cmluZykge1xuICAgIC8vIGlmIHAgc3RhcnRzIHdpdGggLy8gb24gd2luZG93cywgd2UgcHJlc2VydmUgdGhhdFxuICAgIC8vIHNvIHRoYXQgVU5DIHBhdGhzIGFyZW4ndCBicm9rZW4uICBPdGhlcndpc2UsIGFueSBudW1iZXIgb2ZcbiAgICAvLyAvIGNoYXJhY3RlcnMgYXJlIGNvYWxlc2NlZCBpbnRvIG9uZSwgdW5sZXNzXG4gICAgLy8gcHJlc2VydmVNdWx0aXBsZVNsYXNoZXMgaXMgc2V0IHRvIHRydWUuXG4gICAgaWYgKHRoaXMucHJlc2VydmVNdWx0aXBsZVNsYXNoZXMpIHtcbiAgICAgIHJldHVybiBwLnNwbGl0KCcvJylcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNXaW5kb3dzICYmIC9eXFwvXFwvW15cXC9dKy8udGVzdChwKSkge1xuICAgICAgLy8gYWRkIGFuIGV4dHJhICcnIGZvciB0aGUgb25lIHdlIGxvc2VcbiAgICAgIHJldHVybiBbJycsIC4uLnAuc3BsaXQoL1xcLysvKV1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHAuc3BsaXQoL1xcLysvKVxuICAgIH1cbiAgfVxuXG4gIG1hdGNoKGY6IHN0cmluZywgcGFydGlhbCA9IHRoaXMucGFydGlhbCkge1xuICAgIHRoaXMuZGVidWcoJ21hdGNoJywgZiwgdGhpcy5wYXR0ZXJuKVxuICAgIC8vIHNob3J0LWNpcmN1aXQgaW4gdGhlIGNhc2Ugb2YgYnVzdGVkIHRoaW5ncy5cbiAgICAvLyBjb21tZW50cywgZXRjLlxuICAgIGlmICh0aGlzLmNvbW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBpZiAodGhpcy5lbXB0eSkge1xuICAgICAgcmV0dXJuIGYgPT09ICcnXG4gICAgfVxuXG4gICAgaWYgKGYgPT09ICcvJyAmJiBwYXJ0aWFsKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcblxuICAgIC8vIHdpbmRvd3M6IG5lZWQgdG8gdXNlIC8sIG5vdCBcXFxuICAgIGlmICh0aGlzLmlzV2luZG93cykge1xuICAgICAgZiA9IGYuc3BsaXQoJ1xcXFwnKS5qb2luKCcvJylcbiAgICB9XG5cbiAgICAvLyB0cmVhdCB0aGUgdGVzdCBwYXRoIGFzIGEgc2V0IG9mIHBhdGhwYXJ0cy5cbiAgICBjb25zdCBmZiA9IHRoaXMuc2xhc2hTcGxpdChmKVxuICAgIHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCAnc3BsaXQnLCBmZilcblxuICAgIC8vIGp1c3QgT05FIG9mIHRoZSBwYXR0ZXJuIHNldHMgaW4gdGhpcy5zZXQgbmVlZHMgdG8gbWF0Y2hcbiAgICAvLyBpbiBvcmRlciBmb3IgaXQgdG8gYmUgdmFsaWQuICBJZiBuZWdhdGluZywgdGhlbiBqdXN0IG9uZVxuICAgIC8vIG1hdGNoIG1lYW5zIHRoYXQgd2UgaGF2ZSBmYWlsZWQuXG4gICAgLy8gRWl0aGVyIHdheSwgcmV0dXJuIG9uIHRoZSBmaXJzdCBoaXQuXG5cbiAgICBjb25zdCBzZXQgPSB0aGlzLnNldFxuICAgIHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCAnc2V0Jywgc2V0KVxuXG4gICAgLy8gRmluZCB0aGUgYmFzZW5hbWUgb2YgdGhlIHBhdGggYnkgbG9va2luZyBmb3IgdGhlIGxhc3Qgbm9uLWVtcHR5IHNlZ21lbnRcbiAgICBsZXQgZmlsZW5hbWU6IHN0cmluZyA9IGZmW2ZmLmxlbmd0aCAtIDFdXG4gICAgaWYgKCFmaWxlbmFtZSkge1xuICAgICAgZm9yIChsZXQgaSA9IGZmLmxlbmd0aCAtIDI7ICFmaWxlbmFtZSAmJiBpID49IDA7IGktLSkge1xuICAgICAgICBmaWxlbmFtZSA9IGZmW2ldXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPSBzZXRbaV1cbiAgICAgIGxldCBmaWxlID0gZmZcbiAgICAgIGlmIChvcHRpb25zLm1hdGNoQmFzZSAmJiBwYXR0ZXJuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBmaWxlID0gW2ZpbGVuYW1lXVxuICAgICAgfVxuICAgICAgY29uc3QgaGl0ID0gdGhpcy5tYXRjaE9uZShmaWxlLCBwYXR0ZXJuLCBwYXJ0aWFsKVxuICAgICAgaWYgKGhpdCkge1xuICAgICAgICBpZiAob3B0aW9ucy5mbGlwTmVnYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXRoaXMubmVnYXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGlkbid0IGdldCBhbnkgaGl0cy4gIHRoaXMgaXMgc3VjY2VzcyBpZiBpdCdzIGEgbmVnYXRpdmVcbiAgICAvLyBwYXR0ZXJuLCBmYWlsdXJlIG90aGVyd2lzZS5cbiAgICBpZiAob3B0aW9ucy5mbGlwTmVnYXRlKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmVnYXRlXG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdHMoZGVmOiBNaW5pbWF0Y2hPcHRpb25zKSB7XG4gICAgcmV0dXJuIG1pbmltYXRjaC5kZWZhdWx0cyhkZWYpLk1pbmltYXRjaFxuICB9XG59XG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCB7IEFTVCB9IGZyb20gJy4vYXN0LmpzJ1xuZXhwb3J0IHsgZXNjYXBlIH0gZnJvbSAnLi9lc2NhcGUuanMnXG5leHBvcnQgeyB1bmVzY2FwZSB9IGZyb20gJy4vdW5lc2NhcGUuanMnXG4vKiBjOCBpZ25vcmUgc3RvcCAqL1xubWluaW1hdGNoLkFTVCA9IEFTVFxubWluaW1hdGNoLk1pbmltYXRjaCA9IE1pbmltYXRjaFxubWluaW1hdGNoLmVzY2FwZSA9IGVzY2FwZVxubWluaW1hdGNoLnVuZXNjYXBlID0gdW5lc2NhcGVcbiIsICJsZXQgaW1wb3J0cyA9IHt9O1xuaW1wb3J0c1snX193YmluZGdlbl9wbGFjZWhvbGRlcl9fJ10gPSBtb2R1bGUuZXhwb3J0cztcbmxldCB3YXNtO1xuY29uc3QgeyBUZXh0RGVjb2RlciwgVGV4dEVuY29kZXIgfSA9IHJlcXVpcmUoYHV0aWxgKTtcblxuY29uc3QgaGVhcCA9IG5ldyBBcnJheSgzMikuZmlsbCh1bmRlZmluZWQpO1xuXG5oZWFwLnB1c2godW5kZWZpbmVkLCBudWxsLCB0cnVlLCBmYWxzZSk7XG5cbmZ1bmN0aW9uIGdldE9iamVjdChpZHgpIHsgcmV0dXJuIGhlYXBbaWR4XTsgfVxuXG5sZXQgaGVhcF9uZXh0ID0gaGVhcC5sZW5ndGg7XG5cbmZ1bmN0aW9uIGRyb3BPYmplY3QoaWR4KSB7XG4gICAgaWYgKGlkeCA8IDM2KSByZXR1cm47XG4gICAgaGVhcFtpZHhdID0gaGVhcF9uZXh0O1xuICAgIGhlYXBfbmV4dCA9IGlkeDtcbn1cblxuZnVuY3Rpb24gdGFrZU9iamVjdChpZHgpIHtcbiAgICBjb25zdCByZXQgPSBnZXRPYmplY3QoaWR4KTtcbiAgICBkcm9wT2JqZWN0KGlkeCk7XG4gICAgcmV0dXJuIHJldDtcbn1cblxubGV0IGNhY2hlZFRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHsgaWdub3JlQk9NOiB0cnVlLCBmYXRhbDogdHJ1ZSB9KTtcblxuY2FjaGVkVGV4dERlY29kZXIuZGVjb2RlKCk7XG5cbmxldCBjYWNoZWRVaW50OE1lbW9yeTAgPSBuZXcgVWludDhBcnJheSgpO1xuXG5mdW5jdGlvbiBnZXRVaW50OE1lbW9yeTAoKSB7XG4gICAgaWYgKGNhY2hlZFVpbnQ4TWVtb3J5MC5ieXRlTGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNhY2hlZFVpbnQ4TWVtb3J5MCA9IG5ldyBVaW50OEFycmF5KHdhc20ubWVtb3J5LmJ1ZmZlcik7XG4gICAgfVxuICAgIHJldHVybiBjYWNoZWRVaW50OE1lbW9yeTA7XG59XG5cbmZ1bmN0aW9uIGdldFN0cmluZ0Zyb21XYXNtMChwdHIsIGxlbikge1xuICAgIHJldHVybiBjYWNoZWRUZXh0RGVjb2Rlci5kZWNvZGUoZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyLCBwdHIgKyBsZW4pKTtcbn1cblxuZnVuY3Rpb24gYWRkSGVhcE9iamVjdChvYmopIHtcbiAgICBpZiAoaGVhcF9uZXh0ID09PSBoZWFwLmxlbmd0aCkgaGVhcC5wdXNoKGhlYXAubGVuZ3RoICsgMSk7XG4gICAgY29uc3QgaWR4ID0gaGVhcF9uZXh0O1xuICAgIGhlYXBfbmV4dCA9IGhlYXBbaWR4XTtcblxuICAgIGhlYXBbaWR4XSA9IG9iajtcbiAgICByZXR1cm4gaWR4O1xufVxuXG5mdW5jdGlvbiBkZWJ1Z1N0cmluZyh2YWwpIHtcbiAgICAvLyBwcmltaXRpdmUgdHlwZXNcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDtcbiAgICBpZiAodHlwZSA9PSAnbnVtYmVyJyB8fCB0eXBlID09ICdib29sZWFuJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gIGAke3ZhbH1gO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gYFwiJHt2YWx9XCJgO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PSAnc3ltYm9sJykge1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHZhbC5kZXNjcmlwdGlvbjtcbiAgICAgICAgaWYgKGRlc2NyaXB0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnU3ltYm9sJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgU3ltYm9sKCR7ZGVzY3JpcHRpb259KWA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBuYW1lID0gdmFsLm5hbWU7XG4gICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJyAmJiBuYW1lLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgRnVuY3Rpb24oJHtuYW1lfSlgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdGdW5jdGlvbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gb2JqZWN0c1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmFsLmxlbmd0aDtcbiAgICAgICAgbGV0IGRlYnVnID0gJ1snO1xuICAgICAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZGVidWcgKz0gZGVidWdTdHJpbmcodmFsWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IobGV0IGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRlYnVnICs9ICcsICcgKyBkZWJ1Z1N0cmluZyh2YWxbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGRlYnVnICs9ICddJztcbiAgICAgICAgcmV0dXJuIGRlYnVnO1xuICAgIH1cbiAgICAvLyBUZXN0IGZvciBidWlsdC1pblxuICAgIGNvbnN0IGJ1aWx0SW5NYXRjaGVzID0gL1xcW29iamVjdCAoW15cXF1dKylcXF0vLmV4ZWModG9TdHJpbmcuY2FsbCh2YWwpKTtcbiAgICBsZXQgY2xhc3NOYW1lO1xuICAgIGlmIChidWlsdEluTWF0Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGJ1aWx0SW5NYXRjaGVzWzFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZhaWxlZCB0byBtYXRjaCB0aGUgc3RhbmRhcmQgJ1tvYmplY3QgQ2xhc3NOYW1lXSdcbiAgICAgICAgcmV0dXJuIHRvU3RyaW5nLmNhbGwodmFsKTtcbiAgICB9XG4gICAgaWYgKGNsYXNzTmFtZSA9PSAnT2JqZWN0Jykge1xuICAgICAgICAvLyB3ZSdyZSBhIHVzZXIgZGVmaW5lZCBjbGFzcyBvciBPYmplY3RcbiAgICAgICAgLy8gSlNPTi5zdHJpbmdpZnkgYXZvaWRzIHByb2JsZW1zIHdpdGggY3ljbGVzLCBhbmQgaXMgZ2VuZXJhbGx5IG11Y2hcbiAgICAgICAgLy8gZWFzaWVyIHRoYW4gbG9vcGluZyB0aHJvdWdoIG93blByb3BlcnRpZXMgb2YgYHZhbGAuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gJ09iamVjdCgnICsgSlNPTi5zdHJpbmdpZnkodmFsKSArICcpJztcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuICdPYmplY3QnO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGVycm9yc1xuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4gYCR7dmFsLm5hbWV9OiAke3ZhbC5tZXNzYWdlfVxcbiR7dmFsLnN0YWNrfWA7XG4gICAgfVxuICAgIC8vIFRPRE8gd2UgY291bGQgdGVzdCBmb3IgbW9yZSB0aGluZ3MgaGVyZSwgbGlrZSBgU2V0YHMgYW5kIGBNYXBgcy5cbiAgICByZXR1cm4gY2xhc3NOYW1lO1xufVxuXG5sZXQgV0FTTV9WRUNUT1JfTEVOID0gMDtcblxubGV0IGNhY2hlZFRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCd1dGYtOCcpO1xuXG5jb25zdCBlbmNvZGVTdHJpbmcgPSAodHlwZW9mIGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZUludG8gPT09ICdmdW5jdGlvbidcbiAgICA/IGZ1bmN0aW9uIChhcmcsIHZpZXcpIHtcbiAgICByZXR1cm4gY2FjaGVkVGV4dEVuY29kZXIuZW5jb2RlSW50byhhcmcsIHZpZXcpO1xufVxuICAgIDogZnVuY3Rpb24gKGFyZywgdmlldykge1xuICAgIGNvbnN0IGJ1ZiA9IGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZShhcmcpO1xuICAgIHZpZXcuc2V0KGJ1Zik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVhZDogYXJnLmxlbmd0aCxcbiAgICAgICAgd3JpdHRlbjogYnVmLmxlbmd0aFxuICAgIH07XG59KTtcblxuZnVuY3Rpb24gcGFzc1N0cmluZ1RvV2FzbTAoYXJnLCBtYWxsb2MsIHJlYWxsb2MpIHtcblxuICAgIGlmIChyZWFsbG9jID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgYnVmID0gY2FjaGVkVGV4dEVuY29kZXIuZW5jb2RlKGFyZyk7XG4gICAgICAgIGNvbnN0IHB0ciA9IG1hbGxvYyhidWYubGVuZ3RoKTtcbiAgICAgICAgZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyLCBwdHIgKyBidWYubGVuZ3RoKS5zZXQoYnVmKTtcbiAgICAgICAgV0FTTV9WRUNUT1JfTEVOID0gYnVmLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHB0cjtcbiAgICB9XG5cbiAgICBsZXQgbGVuID0gYXJnLmxlbmd0aDtcbiAgICBsZXQgcHRyID0gbWFsbG9jKGxlbik7XG5cbiAgICBjb25zdCBtZW0gPSBnZXRVaW50OE1lbW9yeTAoKTtcblxuICAgIGxldCBvZmZzZXQgPSAwO1xuXG4gICAgZm9yICg7IG9mZnNldCA8IGxlbjsgb2Zmc2V0KyspIHtcbiAgICAgICAgY29uc3QgY29kZSA9IGFyZy5jaGFyQ29kZUF0KG9mZnNldCk7XG4gICAgICAgIGlmIChjb2RlID4gMHg3RikgYnJlYWs7XG4gICAgICAgIG1lbVtwdHIgKyBvZmZzZXRdID0gY29kZTtcbiAgICB9XG5cbiAgICBpZiAob2Zmc2V0ICE9PSBsZW4pIHtcbiAgICAgICAgaWYgKG9mZnNldCAhPT0gMCkge1xuICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKG9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgcHRyID0gcmVhbGxvYyhwdHIsIGxlbiwgbGVuID0gb2Zmc2V0ICsgYXJnLmxlbmd0aCAqIDMpO1xuICAgICAgICBjb25zdCB2aWV3ID0gZ2V0VWludDhNZW1vcnkwKCkuc3ViYXJyYXkocHRyICsgb2Zmc2V0LCBwdHIgKyBsZW4pO1xuICAgICAgICBjb25zdCByZXQgPSBlbmNvZGVTdHJpbmcoYXJnLCB2aWV3KTtcblxuICAgICAgICBvZmZzZXQgKz0gcmV0LndyaXR0ZW47XG4gICAgfVxuXG4gICAgV0FTTV9WRUNUT1JfTEVOID0gb2Zmc2V0O1xuICAgIHJldHVybiBwdHI7XG59XG5cbmxldCBjYWNoZWRJbnQzMk1lbW9yeTAgPSBuZXcgSW50MzJBcnJheSgpO1xuXG5mdW5jdGlvbiBnZXRJbnQzMk1lbW9yeTAoKSB7XG4gICAgaWYgKGNhY2hlZEludDMyTWVtb3J5MC5ieXRlTGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNhY2hlZEludDMyTWVtb3J5MCA9IG5ldyBJbnQzMkFycmF5KHdhc20ubWVtb3J5LmJ1ZmZlcik7XG4gICAgfVxuICAgIHJldHVybiBjYWNoZWRJbnQzMk1lbW9yeTA7XG59XG4vKipcbiogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnRzXG4qIEByZXR1cm5zIHthbnl9XG4qL1xubW9kdWxlLmV4cG9ydHMucGFyc2VfdG9fanNvbiA9IGZ1bmN0aW9uKGNvbnRlbnRzKSB7XG4gICAgY29uc3QgcHRyMCA9IHBhc3NTdHJpbmdUb1dhc20wKGNvbnRlbnRzLCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgY29uc3QgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBjb25zdCByZXQgPSB3YXNtLnBhcnNlX3RvX2pzb24ocHRyMCwgbGVuMCk7XG4gICAgcmV0dXJuIHRha2VPYmplY3QocmV0KTtcbn07XG5cbi8qKlxuKiBAcmV0dXJucyB7c3RyaW5nfVxuKi9cbm1vZHVsZS5leHBvcnRzLnZlcnNpb24gPSBmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXRwdHIgPSB3YXNtLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoLTE2KTtcbiAgICAgICAgd2FzbS52ZXJzaW9uKHJldHB0cik7XG4gICAgICAgIHZhciByMCA9IGdldEludDMyTWVtb3J5MCgpW3JldHB0ciAvIDQgKyAwXTtcbiAgICAgICAgdmFyIHIxID0gZ2V0SW50MzJNZW1vcnkwKClbcmV0cHRyIC8gNCArIDFdO1xuICAgICAgICByZXR1cm4gZ2V0U3RyaW5nRnJvbVdhc20wKHIwLCByMSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyKDE2KTtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2ZyZWUocjAsIHIxKTtcbiAgICB9XG59O1xuXG5mdW5jdGlvbiBwYXNzQXJyYXk4VG9XYXNtMChhcmcsIG1hbGxvYykge1xuICAgIGNvbnN0IHB0ciA9IG1hbGxvYyhhcmcubGVuZ3RoICogMSk7XG4gICAgZ2V0VWludDhNZW1vcnkwKCkuc2V0KGFyZywgcHRyIC8gMSk7XG4gICAgV0FTTV9WRUNUT1JfTEVOID0gYXJnLmxlbmd0aDtcbiAgICByZXR1cm4gcHRyO1xufVxuXG5sZXQgY2FjaGVkVWludDMyTWVtb3J5MCA9IG5ldyBVaW50MzJBcnJheSgpO1xuXG5mdW5jdGlvbiBnZXRVaW50MzJNZW1vcnkwKCkge1xuICAgIGlmIChjYWNoZWRVaW50MzJNZW1vcnkwLmJ5dGVMZW5ndGggPT09IDApIHtcbiAgICAgICAgY2FjaGVkVWludDMyTWVtb3J5MCA9IG5ldyBVaW50MzJBcnJheSh3YXNtLm1lbW9yeS5idWZmZXIpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVkVWludDMyTWVtb3J5MDtcbn1cblxuZnVuY3Rpb24gZ2V0QXJyYXlVMzJGcm9tV2FzbTAocHRyLCBsZW4pIHtcbiAgICByZXR1cm4gZ2V0VWludDMyTWVtb3J5MCgpLnN1YmFycmF5KHB0ciAvIDQsIHB0ciAvIDQgKyBsZW4pO1xufVxuLyoqXG4qIEBwYXJhbSB7VWludDhBcnJheX0gY29udGVudHNcbiogQHJldHVybnMge1VpbnQzMkFycmF5fVxuKi9cbm1vZHVsZS5leHBvcnRzLnBhcnNlX3RvX3VpbnQzMmFycmF5ID0gZnVuY3Rpb24oY29udGVudHMpIHtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXRwdHIgPSB3YXNtLl9fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIoLTE2KTtcbiAgICAgICAgY29uc3QgcHRyMCA9IHBhc3NBcnJheThUb1dhc20wKGNvbnRlbnRzLCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jKTtcbiAgICAgICAgY29uc3QgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICAgICAgd2FzbS5wYXJzZV90b191aW50MzJhcnJheShyZXRwdHIsIHB0cjAsIGxlbjApO1xuICAgICAgICB2YXIgcjAgPSBnZXRJbnQzMk1lbW9yeTAoKVtyZXRwdHIgLyA0ICsgMF07XG4gICAgICAgIHZhciByMSA9IGdldEludDMyTWVtb3J5MCgpW3JldHB0ciAvIDQgKyAxXTtcbiAgICAgICAgdmFyIHIyID0gZ2V0SW50MzJNZW1vcnkwKClbcmV0cHRyIC8gNCArIDJdO1xuICAgICAgICB2YXIgcjMgPSBnZXRJbnQzMk1lbW9yeTAoKVtyZXRwdHIgLyA0ICsgM107XG4gICAgICAgIGlmIChyMykge1xuICAgICAgICAgICAgdGhyb3cgdGFrZU9iamVjdChyMik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHYxID0gZ2V0QXJyYXlVMzJGcm9tV2FzbTAocjAsIHIxKS5zbGljZSgpO1xuICAgICAgICB3YXNtLl9fd2JpbmRnZW5fZnJlZShyMCwgcjEgKiA0KTtcbiAgICAgICAgcmV0dXJuIHYxO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIHdhc20uX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcigxNik7XG4gICAgfVxufTtcblxuZnVuY3Rpb24gaGFuZGxlRXJyb3IoZiwgYXJncykge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBmLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgd2FzbS5fX3diaW5kZ2VuX2V4bl9zdG9yZShhZGRIZWFwT2JqZWN0KGUpKTtcbiAgICB9XG59XG4vKipcbiovXG5tb2R1bGUuZXhwb3J0cy5Ub2tlblR5cGVzID0gT2JqZWN0LmZyZWV6ZSh7IEtleTowLFwiMFwiOlwiS2V5XCIsVmFsdWU6MSxcIjFcIjpcIlZhbHVlXCIsU2VjdGlvbjoyLFwiMlwiOlwiU2VjdGlvblwiLENvbW1lbnRJbmRpY2F0b3I6MyxcIjNcIjpcIkNvbW1lbnRJbmRpY2F0b3JcIixDb21tZW50VmFsdWU6NCxcIjRcIjpcIkNvbW1lbnRWYWx1ZVwiLCB9KTtcblxubW9kdWxlLmV4cG9ydHMuX193YmluZGdlbl9vYmplY3RfZHJvcF9yZWYgPSBmdW5jdGlvbihhcmcwKSB7XG4gICAgdGFrZU9iamVjdChhcmcwKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fd2JpbmRnZW5fZXJyb3JfbmV3ID0gZnVuY3Rpb24oYXJnMCwgYXJnMSkge1xuICAgIGNvbnN0IHJldCA9IG5ldyBFcnJvcihnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSkpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX3diaW5kZ2VuX3N0cmluZ19uZXcgPSBmdW5jdGlvbihhcmcwLCBhcmcxKSB7XG4gICAgY29uc3QgcmV0ID0gZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX3diaW5kZ2VuX29iamVjdF9jbG9uZV9yZWYgPSBmdW5jdGlvbihhcmcwKSB7XG4gICAgY29uc3QgcmV0ID0gZ2V0T2JqZWN0KGFyZzApO1xuICAgIHJldHVybiBhZGRIZWFwT2JqZWN0KHJldCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX3diZ19zZXRfMjBjYmMzNDEzMWU3NjgyNCA9IGZ1bmN0aW9uKGFyZzAsIGFyZzEsIGFyZzIpIHtcbiAgICBnZXRPYmplY3QoYXJnMClbdGFrZU9iamVjdChhcmcxKV0gPSB0YWtlT2JqZWN0KGFyZzIpO1xufTtcblxubW9kdWxlLmV4cG9ydHMuX193YmdfbmV3XzFkOWE5MjBjNmJmYzQ0YTggPSBmdW5jdGlvbigpIHtcbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXkoKTtcbiAgICByZXR1cm4gYWRkSGVhcE9iamVjdChyZXQpO1xufTtcblxubW9kdWxlLmV4cG9ydHMuX193YmdfbmV3XzBiOWJmZGQ5NzU4MzI4NGUgPSBmdW5jdGlvbigpIHtcbiAgICBjb25zdCByZXQgPSBuZXcgT2JqZWN0KCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fd2JnX3NldF9hNjgyMTRmMzVjNDE3ZmE5ID0gZnVuY3Rpb24oYXJnMCwgYXJnMSwgYXJnMikge1xuICAgIGdldE9iamVjdChhcmcwKVthcmcxID4+PiAwXSA9IHRha2VPYmplY3QoYXJnMik7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5fX3diZ19mcm9tQ29kZVBvaW50XzNhNWIxNWJhNGQyMTM2MzQgPSBmdW5jdGlvbigpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwKSB7XG4gICAgY29uc3QgcmV0ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQoYXJnMCA+Pj4gMCk7XG4gICAgcmV0dXJuIGFkZEhlYXBPYmplY3QocmV0KTtcbn0sIGFyZ3VtZW50cykgfTtcblxubW9kdWxlLmV4cG9ydHMuX193YmluZGdlbl9kZWJ1Z19zdHJpbmcgPSBmdW5jdGlvbihhcmcwLCBhcmcxKSB7XG4gICAgY29uc3QgcmV0ID0gZGVidWdTdHJpbmcoZ2V0T2JqZWN0KGFyZzEpKTtcbiAgICBjb25zdCBwdHIwID0gcGFzc1N0cmluZ1RvV2FzbTAocmV0LCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7XG4gICAgY29uc3QgbGVuMCA9IFdBU01fVkVDVE9SX0xFTjtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDFdID0gbGVuMDtcbiAgICBnZXRJbnQzMk1lbW9yeTAoKVthcmcwIC8gNCArIDBdID0gcHRyMDtcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fd2JpbmRnZW5fdGhyb3cgPSBmdW5jdGlvbihhcmcwLCBhcmcxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGdldFN0cmluZ0Zyb21XYXNtMChhcmcwLCBhcmcxKSk7XG59O1xuXG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpLmpvaW4oX19kaXJuYW1lLCAnb25lX2luaV9iZy53YXNtJyk7XG5jb25zdCBieXRlcyA9IHJlcXVpcmUoJ2ZzJykucmVhZEZpbGVTeW5jKHBhdGgpO1xuXG5jb25zdCB3YXNtTW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShieXRlcyk7XG5jb25zdCB3YXNtSW5zdGFuY2UgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2Uod2FzbU1vZHVsZSwgaW1wb3J0cyk7XG53YXNtID0gd2FzbUluc3RhbmNlLmV4cG9ydHM7XG5tb2R1bGUuZXhwb3J0cy5fX3dhc20gPSB3YXNtO1xuXG4iLCAie1xuICBcIm5hbWVcIjogXCJlZGl0b3Jjb25maWdcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMi4wLjBcIixcbiAgXCJkZXNjcmlwdGlvblwiOiBcIkVkaXRvckNvbmZpZyBGaWxlIExvY2F0b3IgYW5kIEludGVycHJldGVyIGZvciBOb2RlLmpzXCIsXG4gIFwia2V5d29yZHNcIjogW1xuICAgIFwiZWRpdG9yY29uZmlnXCIsXG4gICAgXCJjb3JlXCJcbiAgXSxcbiAgXCJtYWluXCI6IFwiLi9saWIvaW5kZXguanNcIixcbiAgXCJjb250cmlidXRvcnNcIjogW1xuICAgIFwiSG9uZyBYdSAodG9wYnVnLm5ldClcIixcbiAgICBcIkplZCBNYW8gKGh0dHBzOi8vZ2l0aHViLmNvbS9qZWRtYW8vKVwiLFxuICAgIFwiVHJleSBIdW5uZXIgKGh0dHA6Ly90cmV5aHVubmVyLmNvbSlcIixcbiAgICBcIkpvZSBIaWxkZWJyYW5kIChodHRwczovL2dpdGh1Yi5jb20vaGlsZGpqLylcIlxuICBdLFxuICBcImRpcmVjdG9yaWVzXCI6IHtcbiAgICBcImJpblwiOiBcIi4vYmluXCIsXG4gICAgXCJsaWJcIjogXCIuL2xpYlwiXG4gIH0sXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJjbGVhblwiOiBcInJpbXJhZiBsaWIgY21ha2VfaW5zdGFsbC5jbWFrZSBDVGVzdFRlc3RmaWxlLmNtYWtlIE1ha2VmaWxlXCIsXG4gICAgXCJwcmVidWlsZFwiOiBcIm5wbSBydW4gY2xlYW5cIixcbiAgICBcImJ1aWxkXCI6IFwiY21ha2UgLiAmJiB0c2NcIixcbiAgICBcInByZXRlc3RcIjogXCJucG0gcnVuIGJ1aWxkICYmIG5wbSBydW4gbGludFwiLFxuICAgIFwidGVzdFwiOiBcIm5wbSBydW4gdGVzdDphbGxcIixcbiAgICBcInRlc3Q6YWxsXCI6IFwibW9jaGEgJiYgY3Rlc3QgLiAtLXByZXNldCBUZXN0XCIsXG4gICAgXCJwcmVjb3ZlcmFnZVwiOiBcIm5wbSBydW4gYnVpbGQgLS0gLS1pbmxpbmVTb3VyY2VNYXBcIixcbiAgICBcImNvdmVyYWdlXCI6IFwiYzggbnBtIHJ1biB0ZXN0OmFsbFwiLFxuICAgIFwicG9zdGNvdmVyYWdlXCI6IFwibnBtIHJ1biBidWlsZFwiLFxuICAgIFwiY2lcIjogXCJucG0gcnVuIGNvdmVyYWdlIC0tIC0tIC1WViAtLW91dHB1dC1vbi1mYWlsdXJlXCIsXG4gICAgXCJsaW50XCI6IFwiZXNsaW50IC4gLS1leHQgdHNcIixcbiAgICBcInByZXB1YlwiOiBcIm5wbSBydW4gbGludCAmJiBucG0gcnVuIGJ1aWxkXCIsXG4gICAgXCJwdWJcIjogXCJucG0gcHVibGlzaFwiXG4gIH0sXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJnaXQ6Ly9naXRodWIuY29tL2VkaXRvcmNvbmZpZy9lZGl0b3Jjb25maWctY29yZS1qcy5naXRcIlxuICB9LFxuICBcImJ1Z3NcIjogXCJodHRwczovL2dpdGh1Yi5jb20vZWRpdG9yY29uZmlnL2VkaXRvcmNvbmZpZy1jb3JlLWpzL2lzc3Vlc1wiLFxuICBcImF1dGhvclwiOiBcIkVkaXRvckNvbmZpZyBUZWFtXCIsXG4gIFwibGljZW5zZVwiOiBcIk1JVFwiLFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAb25lLWluaS93YXNtXCI6IFwiMC4xLjFcIixcbiAgICBcImNvbW1hbmRlclwiOiBcIl4xMS4wLjBcIixcbiAgICBcIm1pbmltYXRjaFwiOiBcIjkuMC4yXCIsXG4gICAgXCJzZW12ZXJcIjogXCJeNy41LjNcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAdHlwZXMvY2hhaVwiOiBcIjQuMy41XCIsXG4gICAgXCJAdHlwZXMvbW9jaGFcIjogXCJeMTAuMC4xXCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4yMC4zLjNcIixcbiAgICBcIkB0eXBlcy9zZW12ZXJcIjogXCJeNy41LjBcIixcbiAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luXCI6IFwiNS42MC4xXCIsXG4gICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyXCI6IFwiNS42MC4xXCIsXG4gICAgXCJjOFwiOiBcIjguMC4wXCIsXG4gICAgXCJjaGFpXCI6IFwiNC4zLjdcIixcbiAgICBcImVzbGludFwiOiBcIjguNDQuMFwiLFxuICAgIFwiZXNsaW50LXBsdWdpbi1qc2RvY1wiOiBcIjQ2LjQuM1wiLFxuICAgIFwibW9jaGFcIjogXCJeMTAuMi4wXCIsXG4gICAgXCJyaW1yYWZcIjogXCJeNS4wLjFcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCJeNS4xLjZcIlxuICB9LFxuICBcInBucG1cIjoge1xuICAgIFwib3ZlcnJpZGVzXCI6IHtcbiAgICAgIFwic2VtdmVyXCI6IFwiPj03LjUuM1wiLFxuICAgICAgXCJ3b3JkLXdyYXBcIjogXCJucG06QGFhc2h1dG9zaHJhdGhpL3dvcmQtd3JhcFwiXG4gICAgfVxuICB9LFxuICBcIm92ZXJyaWRlc1wiOiB7XG4gICAgXCJzZW12ZXJcIjogXCIkc2VtdmVyXCIsXG4gICAgXCJ3b3JkLXdyYXBcIjogXCJucG06QGFhc2h1dG9zaHJhdGhpL3dvcmQtd3JhcFwiXG4gIH0sXG4gIFwiZW5naW5lc1wiOiB7XG4gICAgXCJub2RlXCI6IFwiPj0xNlwiXG4gIH1cbn1cbiIsICJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xuICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTtcbiAgICBpZiAoIWRlc2MgfHwgKFwiZ2V0XCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkge1xuICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTtcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcbiAgICBvW2syXSA9IG1ba107XG59KSk7XG52YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX3NldE1vZHVsZURlZmF1bHQpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJkZWZhdWx0XCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7XG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcbiAgICBvW1wiZGVmYXVsdFwiXSA9IHY7XG59KTtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrKTtcbiAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpO1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5tYXRjaGVyID0gZXhwb3J0cy5wYXJzZVN5bmMgPSBleHBvcnRzLnBhcnNlID0gZXhwb3J0cy51bnNldCA9IGV4cG9ydHMucGFyc2VGcm9tRmlsZXNTeW5jID0gZXhwb3J0cy5wYXJzZUZyb21GaWxlcyA9IGV4cG9ydHMucGFyc2VTdHJpbmcgPSBleHBvcnRzLnBhcnNlQnVmZmVyID0gdm9pZCAwO1xuY29uc3QgZnMgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcImZzXCIpKTtcbmNvbnN0IHBhdGggPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcInBhdGhcIikpO1xuY29uc3Qgc2VtdmVyID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCJzZW12ZXJcIikpO1xuY29uc3QgbWluaW1hdGNoXzEgPSByZXF1aXJlKFwibWluaW1hdGNoXCIpO1xuY29uc3Qgd2FzbV8xID0gcmVxdWlyZShcIkBvbmUtaW5pL3dhc21cIik7XG4vLyBAdHMtaWdub3JlIFNvIHdlIGNhbiBzZXQgdGhlIHJvb3REaXIgdG8gYmUgJ2xpYicsIHdpdGhvdXQgcHJvY2Vzc2luZ1xuLy8gcGFja2FnZS5qc29uXG5jb25zdCBwYWNrYWdlX2pzb25fMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwiLi4vcGFja2FnZS5qc29uXCIpKTtcbmNvbnN0IGVzY2FwZWRTZXAgPSBuZXcgUmVnRXhwKHBhdGguc2VwLnJlcGxhY2UoL1xcXFwvZywgJ1xcXFxcXFxcJyksICdnJyk7XG5jb25zdCBtYXRjaE9wdGlvbnMgPSB7IG1hdGNoQmFzZTogdHJ1ZSwgZG90OiB0cnVlIH07XG5jb25zdCBrbm93blByb3BOYW1lcyA9IFtcbiAgICAnZW5kX29mX2xpbmUnLFxuICAgICdpbmRlbnRfc3R5bGUnLFxuICAgICdpbmRlbnRfc2l6ZScsXG4gICAgJ2luc2VydF9maW5hbF9uZXdsaW5lJyxcbiAgICAndHJpbV90cmFpbGluZ193aGl0ZXNwYWNlJyxcbiAgICAnY2hhcnNldCcsXG5dO1xuY29uc3Qga25vd25Qcm9wcyA9IG5ldyBTZXQoa25vd25Qcm9wTmFtZXMpO1xuLyoqXG4gKiBQYXJzZSBhIGJ1ZmZlciB1c2luZyB0aGUgZmFzdGVyIG9uZS1pbmkgV0FTTSBhcHByb2FjaCBpbnRvIHNvbWV0aGluZ1xuICogcmVsYXRpdmVseSBlYXN5IHRvIGRlYWwgd2l0aCBpbiBKUy5cbiAqXG4gKiBAcGFyYW0gZGF0YSBVVEY4LWVuY29kZWQgYnl0ZXMuXG4gKiBAcmV0dXJucyBQYXJzZWQgY29udGVudHMuICBXaWxsIGJlIHRydW5jYXRlZCBpZiB0aGVyZSB3YXMgYSBwYXJzZSBlcnJvci5cbiAqL1xuZnVuY3Rpb24gcGFyc2VCdWZmZXIoZGF0YSkge1xuICAgIGNvbnN0IHBhcnNlZCA9ICgwLCB3YXNtXzEucGFyc2VfdG9fdWludDMyYXJyYXkpKGRhdGEpO1xuICAgIGxldCBjdXIgPSB7fTtcbiAgICBjb25zdCByZXMgPSBbW251bGwsIGN1cl1dO1xuICAgIGxldCBrZXkgPSBudWxsO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyc2VkLmxlbmd0aDsgaSArPSAzKSB7XG4gICAgICAgIHN3aXRjaCAocGFyc2VkW2ldKSB7XG4gICAgICAgICAgICBjYXNlIHdhc21fMS5Ub2tlblR5cGVzLlNlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBjdXIgPSB7fTtcbiAgICAgICAgICAgICAgICByZXMucHVzaChbXG4gICAgICAgICAgICAgICAgICAgIGRhdGEudG9TdHJpbmcoJ3V0ZjgnLCBwYXJzZWRbaSArIDFdLCBwYXJzZWRbaSArIDJdKSxcbiAgICAgICAgICAgICAgICAgICAgY3VyLFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSB3YXNtXzEuVG9rZW5UeXBlcy5LZXk6XG4gICAgICAgICAgICAgICAga2V5ID0gZGF0YS50b1N0cmluZygndXRmOCcsIHBhcnNlZFtpICsgMV0sIHBhcnNlZFtpICsgMl0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB3YXNtXzEuVG9rZW5UeXBlcy5WYWx1ZToge1xuICAgICAgICAgICAgICAgIGN1cltrZXldID0gZGF0YS50b1N0cmluZygndXRmOCcsIHBhcnNlZFtpICsgMV0sIHBhcnNlZFtpICsgMl0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDogLy8gQ29tbWVudHMsIGV0Yy5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0cy5wYXJzZUJ1ZmZlciA9IHBhcnNlQnVmZmVyO1xuLyoqXG4gKiBQYXJzZXMgYSBzdHJpbmcuICBJZiBwb3NzaWJsZSwgeW91IHNob3VsZCBhbHdheXMgdXNlIFBhcnNlQnVmZmVyIGluc3RlYWQsXG4gKiBzaW5jZSB0aGlzIGZ1bmN0aW9uIGRvZXMgYSBVVEYxNi10by1VVEY4IGNvbnZlcnNpb24gZmlyc3QuXG4gKlxuICogQHBhcmFtIGRhdGEgU3RyaW5nIHRvIHBhcnNlLlxuICogQHJldHVybnMgUGFyc2VkIGNvbnRlbnRzLiAgV2lsbCBiZSB0cnVuY2F0ZWQgaWYgdGhlcmUgd2FzIGEgcGFyc2UgZXJyb3IuXG4gKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFBhcnNlQnVmZmVyfSBpbnN0ZWFkLlxuICovXG5mdW5jdGlvbiBwYXJzZVN0cmluZyhkYXRhKSB7XG4gICAgcmV0dXJuIHBhcnNlQnVmZmVyKEJ1ZmZlci5mcm9tKGRhdGEpKTtcbn1cbmV4cG9ydHMucGFyc2VTdHJpbmcgPSBwYXJzZVN0cmluZztcbi8qKlxuICogR2V0cyBhIGxpc3Qgb2YgKnBvdGVudGlhbCogZmlsZW5hbWVzIGJhc2VkIG9uIHRoZSBwYXRoIG9mIHRoZSB0YXJnZXRcbiAqIGZpbGVuYW1lLlxuICpcbiAqIEBwYXJhbSBmaWxlcGF0aCBGaWxlIHdlIGFyZSBhc2tpbmcgYWJvdXQuXG4gKiBAcGFyYW0gb3B0aW9ucyBDb25maWcgZmlsZSBuYW1lIGFuZCByb290IGRpcmVjdG9yeVxuICogQHJldHVybnMgTGlzdCBvZiBwb3RlbnRpYWwgZnVsbHktcXVhbGlmaWVkIGZpbGVuYW1lcyB0aGF0IG1pZ2h0IGhhdmUgY29uZmlncy5cbiAqL1xuZnVuY3Rpb24gZ2V0Q29uZmlnRmlsZU5hbWVzKGZpbGVwYXRoLCBvcHRpb25zKSB7XG4gICAgY29uc3QgcGF0aHMgPSBbXTtcbiAgICBkbyB7XG4gICAgICAgIGZpbGVwYXRoID0gcGF0aC5kaXJuYW1lKGZpbGVwYXRoKTtcbiAgICAgICAgcGF0aHMucHVzaChwYXRoLmpvaW4oZmlsZXBhdGgsIG9wdGlvbnMuY29uZmlnKSk7XG4gICAgfSB3aGlsZSAoZmlsZXBhdGggIT09IG9wdGlvbnMucm9vdCk7XG4gICAgcmV0dXJuIHBhdGhzO1xufVxuLyoqXG4gKiBUYWtlIGEgY29tYmluZWQgY29uZmlnIGZvciB0aGUgdGFyZ2V0IGZpbGUsIGFuZCB0d2VhayBpdCBzbGlnaHRseSBiYXNlZCBvblxuICogd2hpY2ggZWRpdG9yY29uZmlnIHZlcnNpb24ncyBydWxlcyB3ZSBhcmUgdXNpbmcuXG4gKlxuICogQHBhcmFtIG1hdGNoZXMgQ29tYmluZWQgY29uZmlnLlxuICogQHBhcmFtIHZlcnNpb24gRWRpdG9yY29uZmlnIHZlcnNpb24gdG8gZW5mb3JjZS5cbiAqIEByZXR1cm5zIFRoZSBwYXNzZWQtaW4gbWF0Y2hlcyBvYmplY3QsIG1vZGlmaWVkIGluIHBsYWNlLlxuICovXG5mdW5jdGlvbiBwcm9jZXNzTWF0Y2hlcyhtYXRjaGVzLCB2ZXJzaW9uKSB7XG4gICAgLy8gU2V0IGluZGVudF9zaXplIHRvICd0YWInIGlmIGluZGVudF9zaXplIGlzIHVuc3BlY2lmaWVkIGFuZFxuICAgIC8vIGluZGVudF9zdHlsZSBpcyBzZXQgdG8gJ3RhYicuXG4gICAgaWYgKCdpbmRlbnRfc3R5bGUnIGluIG1hdGNoZXNcbiAgICAgICAgJiYgbWF0Y2hlcy5pbmRlbnRfc3R5bGUgPT09ICd0YWInXG4gICAgICAgICYmICEoJ2luZGVudF9zaXplJyBpbiBtYXRjaGVzKVxuICAgICAgICAmJiBzZW12ZXIuZ3RlKHZlcnNpb24sICcwLjEwLjAnKSkge1xuICAgICAgICBtYXRjaGVzLmluZGVudF9zaXplID0gJ3RhYic7XG4gICAgfVxuICAgIC8vIFNldCB0YWJfd2lkdGggdG8gaW5kZW50X3NpemUgaWYgaW5kZW50X3NpemUgaXMgc3BlY2lmaWVkIGFuZFxuICAgIC8vIHRhYl93aWR0aCBpcyB1bnNwZWNpZmllZFxuICAgIGlmICgnaW5kZW50X3NpemUnIGluIG1hdGNoZXNcbiAgICAgICAgJiYgISgndGFiX3dpZHRoJyBpbiBtYXRjaGVzKVxuICAgICAgICAmJiBtYXRjaGVzLmluZGVudF9zaXplICE9PSAndGFiJykge1xuICAgICAgICBtYXRjaGVzLnRhYl93aWR0aCA9IG1hdGNoZXMuaW5kZW50X3NpemU7XG4gICAgfVxuICAgIC8vIFNldCBpbmRlbnRfc2l6ZSB0byB0YWJfd2lkdGggaWYgaW5kZW50X3NpemUgaXMgJ3RhYidcbiAgICBpZiAoJ2luZGVudF9zaXplJyBpbiBtYXRjaGVzXG4gICAgICAgICYmICd0YWJfd2lkdGgnIGluIG1hdGNoZXNcbiAgICAgICAgJiYgbWF0Y2hlcy5pbmRlbnRfc2l6ZSA9PT0gJ3RhYicpIHtcbiAgICAgICAgbWF0Y2hlcy5pbmRlbnRfc2l6ZSA9IG1hdGNoZXMudGFiX3dpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hlcztcbn1cbmZ1bmN0aW9uIGJ1aWxkRnVsbEdsb2IocGF0aFByZWZpeCwgZ2xvYikge1xuICAgIHN3aXRjaCAoZ2xvYi5pbmRleE9mKCcvJykpIHtcbiAgICAgICAgY2FzZSAtMTpcbiAgICAgICAgICAgIGdsb2IgPSBgKiovJHtnbG9ifWA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgZ2xvYiA9IGdsb2Iuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG4gICAgLy8gYnJhY2VzX2VzY2FwZWRfYmFja3NsYXNoMlxuICAgIC8vIGJhY2tzbGFzaF9ub3Rfb25fd2luZG93c1xuICAgIGdsb2IgPSBnbG9iLnJlcGxhY2UoL1xcXFxcXFxcL2csICdcXFxcXFxcXFxcXFxcXFxcJyk7XG4gICAgLy8gc3Rhcl9zdGFyX292ZXJfc2VwYXJhdG9yezEsMyw1LDYsOSwxNX1cbiAgICBnbG9iID0gZ2xvYi5yZXBsYWNlKC9cXCpcXCovZywgJ3sqLCoqLyoqLyoqfScpO1xuICAgIC8vIE5PVCBwYXRoLmpvaW4uICBNdXN0IHN0YXkgaW4gZm9yd2FyZCBzbGFzaGVzLlxuICAgIHJldHVybiBuZXcgbWluaW1hdGNoXzEuTWluaW1hdGNoKGAke3BhdGhQcmVmaXh9LyR7Z2xvYn1gLCBtYXRjaE9wdGlvbnMpO1xufVxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIHByb3BlcnRpZXMgcmVhZCBmcm9tIGEgY29uZmlnIGZpbGUgc28gdGhhdCB0aGVpciBrZXkgbmFtZXNcbiAqIGFyZSBsb3dlcmNhc2VkIGZvciB0aGUga25vd24gcHJvcGVydGllcywgYW5kIHRoZWlyIHZhbHVlcyBhcmUgcGFyc2VkIGludG9cbiAqIHRoZSBjb3JyZWN0IEpTIHR5cGVzIGlmIHBvc3NpYmxlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVQcm9wcyhvcHRpb25zKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1trZXldO1xuICAgICAgICAgICAgY29uc3Qga2V5MiA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKGtub3duUHJvcHMuaGFzKGtleTIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSB2YWx1ZXMgZm9yIHRoZSBrbm93biBwcm9wcyBhcmUgbG93ZXJjYXNlLlxuICAgICAgICAgICAgICAgIHZhbHVlMiA9IFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFsdWUyID0gSlNPTi5wYXJzZShTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUyID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZTIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBudWxsIGFuZCB1bmRlZmluZWQgYXJlIHZhbHVlcyBzcGVjaWZpYyB0byBKU09OIChubyBzcGVjaWFsIG1lYW5pbmdcbiAgICAgICAgICAgICAgICAvLyBpbiBlZGl0b3Jjb25maWcpICYgc2hvdWxkIGp1c3QgYmUgcmV0dXJuZWQgYXMgcmVndWxhciBzdHJpbmdzLlxuICAgICAgICAgICAgICAgIHZhbHVlMiA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcm9wc1trZXkyXSA9IHZhbHVlMjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvcHM7XG59XG4vKipcbiAqIFRha2UgdGhlIGNvbnRlbnRzIG9mIGEgY29uZmlnIGZpbGUsIGFuZCBwcmVwYXJlIGl0IGZvciB1c2UuICBJZiBhIGNhY2hlIGlzXG4gKiBwcm92aWRlZCwgdGhlIHJlc3VsdCB3aWxsIGJlIHN0b3JlZCB0aGVyZS4gIEFzIHN1Y2gsIGFsbCBvZiB0aGUgaGlnaGVyLUNQVVxuICogd29yayB0aGF0IGlzIHBlci1maWxlIHNob3VsZCBiZSBkb25lIGhlcmUuXG4gKlxuICogQHBhcmFtIGZpbGVwYXRoIFRoZSBmdWxseS1xdWFsaWZpZWQgcGF0aCBvZiB0aGUgZmlsZS5cbiAqIEBwYXJhbSBjb250ZW50cyBUaGUgY29udGVudHMgYXMgcmVhZCBmcm9tIHRoYXQgZmlsZS5cbiAqIEBwYXJhbSBvcHRpb25zIEFjY2VzcyB0byB0aGUgY2FjaGUuXG4gKiBAcmV0dXJucyBQcm9jZXNzZWQgZmlsZSB3aXRoIGdsb2JzIHByZS1jb21wdXRlZC5cbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0ZpbGVDb250ZW50cyhmaWxlcGF0aCwgY29udGVudHMsIG9wdGlvbnMpIHtcbiAgICBsZXQgcmVzO1xuICAgIGlmICghY29udGVudHMpIHtcbiAgICAgICAgLy8gTmVnYXRpdmUgY2FjaGVcbiAgICAgICAgcmVzID0ge1xuICAgICAgICAgICAgcm9vdDogZmFsc2UsXG4gICAgICAgICAgICBub3Rmb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWU6IGZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnOiBbW251bGwsIHt9LCBudWxsXV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBsZXQgcGF0aFByZWZpeCA9IHBhdGguZGlybmFtZShmaWxlcGF0aCk7XG4gICAgICAgIGlmIChwYXRoLnNlcCAhPT0gJy8nKSB7XG4gICAgICAgICAgICAvLyBXaW5kb3dzLW9ubHlcbiAgICAgICAgICAgIHBhdGhQcmVmaXggPSBwYXRoUHJlZml4LnJlcGxhY2UoZXNjYXBlZFNlcCwgJy8nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBZnRlciBXaW5kb3dzIHBhdGggYmFja3NsYXNoJ3MgYXJlIHR1cm5lZCBpbnRvIHNsYXNoZXMsIHNvIHRoYXRcbiAgICAgICAgLy8gdGhlIGJhY2tzbGFzaGVzIHdlIGFkZCBoZXJlIGFyZW4ndCB0dXJuZWQgaW50byBmb3J3YXJkIHNsYXNoZXM6XG4gICAgICAgIC8vIEFsbCBvZiB0aGVzZSBjaGFyYWN0ZXJzIGFyZSBzcGVjaWFsIHRvIG1pbmltYXRjaCwgYnV0IGNhbiBiZVxuICAgICAgICAvLyBmb3JjZWQgaW50byBwYXRoIG5hbWVzIG9uIG1hbnkgZmlsZSBzeXN0ZW1zLiAgRXNjYXBlIHRoZW0uIE5vdGVcbiAgICAgICAgLy8gdGhhdCB0aGVzZSBhcmUgaW4gdGhlIG9yZGVyIG9mIHRoZSBjYXNlIHN0YXRlbWVudCBpbiBtaW5pbWF0Y2guXG4gICAgICAgIHBhdGhQcmVmaXggPSBwYXRoUHJlZml4LnJlcGxhY2UoL1s/KitAISgpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICAgICAgICAvLyBJIGNhbid0IHRoaW5rIG9mIGEgd2F5IGZvciB0aGlzIHRvIGhhcHBlbiBpbiB0aGUgZmlsZXN5c3RlbXMgSSd2ZVxuICAgICAgICAvLyBzZWVuIChiZWNhdXNlIG9mIHRoZSBwYXRoLmRpcm5hbWUgYWJvdmUpLCBidXQgbGV0J3MgYmUgdGhvcm91Z2guXG4gICAgICAgIHBhdGhQcmVmaXggPSBwYXRoUHJlZml4LnJlcGxhY2UoL14jLywgJ1xcXFwjJyk7XG4gICAgICAgIGNvbnN0IGdsb2JiZWQgPSBwYXJzZUJ1ZmZlcihjb250ZW50cykubWFwKChbbmFtZSwgYm9keV0pID0+IFtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBub3JtYWxpemVQcm9wcyhib2R5KSxcbiAgICAgICAgICAgIG5hbWUgPyBidWlsZEZ1bGxHbG9iKHBhdGhQcmVmaXgsIG5hbWUpIDogbnVsbCxcbiAgICAgICAgXSk7XG4gICAgICAgIHJlcyA9IHtcbiAgICAgICAgICAgIHJvb3Q6ICEhZ2xvYmJlZFswXVsxXS5yb290LFxuICAgICAgICAgICAgbmFtZTogZmlsZXBhdGgsXG4gICAgICAgICAgICBjb25maWc6IGdsb2JiZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmNhY2hlKSB7XG4gICAgICAgIG9wdGlvbnMuY2FjaGUuc2V0KGZpbGVwYXRoLCByZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuLyoqXG4gKiBHZXQgYSBmaWxlIGZyb20gdGhlIGNhY2hlLCBvciByZWFkIGl0cyBjb250ZW50cyBmcm9tIGRpc2ssIHByb2Nlc3MsIGFuZFxuICogaW5zZXJ0IGludG8gdGhlIGNhY2hlIChpZiBjb25maWd1cmVkKS5cbiAqXG4gKiBAcGFyYW0gZmlsZXBhdGggVGhlIGZ1bGx5LXF1YWxpZmllZCBwYXRoIG9mIHRoZSBjb25maWcgZmlsZS5cbiAqIEBwYXJhbSBvcHRpb25zIEFjY2VzcyB0byB0aGUgY2FjaGUsIGlmIGNvbmZpZ3VyZWQuXG4gKiBAcmV0dXJucyBUaGUgcHJvY2Vzc2VkIGZpbGUsIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgcmVhZGluZyBpdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0Q29uZmlnKGZpbGVwYXRoLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuY2FjaGUpIHtcbiAgICAgICAgY29uc3QgY2FjaGVkID0gb3B0aW9ucy5jYWNoZS5nZXQoZmlsZXBhdGgpO1xuICAgICAgICBpZiAoY2FjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGZzLnJlYWRGaWxlKGZpbGVwYXRoLCAoXywgYnVmKSA9PiB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgZXJyb3JzLiAgY29udGVudHMgd2lsbCBiZSB1bmRlZmluZWRcbiAgICAgICAgICAgIC8vIFBlcmhhcHMgb25seSBmaWxlLW5vdC1mb3VuZCBzaG91bGQgYmUgaWdub3JlZD9cbiAgICAgICAgICAgIHJlc29sdmUoYnVmKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb2Nlc3NGaWxlQ29udGVudHMoZmlsZXBhdGgsIGNvbnRlbnRzLCBvcHRpb25zKTtcbn1cbi8qKlxuICogR2V0IGEgZmlsZSBmcm9tIHRoZSBjYWNoZSwgb3IgcmVhZCBpdHMgY29udGVudHMgZnJvbSBkaXNrLCBwcm9jZXNzLCBhbmRcbiAqIGluc2VydCBpbnRvIHRoZSBjYWNoZSAoaWYgY29uZmlndXJlZCkuICBTeW5jaHJvbm91cy5cbiAqXG4gKiBAcGFyYW0gZmlsZXBhdGggVGhlIGZ1bGx5LXF1YWxpZmllZCBwYXRoIG9mIHRoZSBjb25maWcgZmlsZS5cbiAqIEBwYXJhbSBvcHRpb25zIEFjY2VzcyB0byB0aGUgY2FjaGUsIGlmIGNvbmZpZ3VyZWQuXG4gKiBAcmV0dXJucyBUaGUgcHJvY2Vzc2VkIGZpbGUsIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgcmVhZGluZyBpdC5cbiAqL1xuZnVuY3Rpb24gZ2V0Q29uZmlnU3luYyhmaWxlcGF0aCwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmNhY2hlKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlZCA9IG9wdGlvbnMuY2FjaGUuZ2V0KGZpbGVwYXRoKTtcbiAgICAgICAgaWYgKGNhY2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgY29udGVudHM7XG4gICAgdHJ5IHtcbiAgICAgICAgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZXBhdGgpO1xuICAgIH1cbiAgICBjYXRjaCAoXykge1xuICAgICAgICAvLyBJZ25vcmUgZXJyb3JzXG4gICAgICAgIC8vIFBlcmhhcHMgb25seSBmaWxlLW5vdC1mb3VuZCBzaG91bGQgYmUgaWdub3JlZFxuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc0ZpbGVDb250ZW50cyhmaWxlcGF0aCwgY29udGVudHMsIG9wdGlvbnMpO1xufVxuLyoqXG4gKiBHZXQgYWxsIG9mIHRoZSBwb3NzaWJseS1leGlzdGluZyBjb25maWcgZmlsZXMsIHN0b3BwaW5nIHdoZW4gb25lIGlzIG1hcmtlZFxuICogcm9vdD10cnVlLlxuICpcbiAqIEBwYXJhbSBmaWxlcyBMaXN0IG9mIHBvdGVudGlhbCBmaWxlc1xuICogQHBhcmFtIG9wdGlvbnMgQWNjZXNzIHRvIGNhY2hlIGlmIGNvbmZpZ3VyZWRcbiAqIEByZXR1cm5zIExpc3Qgb2YgcHJvY2Vzc2VkIGNvbmZpZ3MgZm9yIGV4aXN0aW5nIGZpbGVzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbmZpZ3MoZmlsZXMsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBjb25maWdzID0gW107XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGdldENvbmZpZyhmaWxlLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFjb25maWcubm90Zm91bmQpIHtcbiAgICAgICAgICAgIGNvbmZpZ3MucHVzaChjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5yb290KSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZ3M7XG59XG4vKipcbiAqIEdldCBhbGwgb2YgdGhlIHBvc3NpYmx5LWV4aXN0aW5nIGNvbmZpZyBmaWxlcywgc3RvcHBpbmcgd2hlbiBvbmUgaXMgbWFya2VkXG4gKiByb290PXRydWUuICBTeW5jaHJvbm91cy5cbiAqXG4gKiBAcGFyYW0gZmlsZXMgTGlzdCBvZiBwb3RlbnRpYWwgZmlsZXNcbiAqIEBwYXJhbSBvcHRpb25zIEFjY2VzcyB0byBjYWNoZSBpZiBjb25maWd1cmVkXG4gKiBAcmV0dXJucyBMaXN0IG9mIHByb2Nlc3NlZCBjb25maWdzIGZvciBleGlzdGluZyBmaWxlc1xuICovXG5mdW5jdGlvbiBnZXRBbGxDb25maWdzU3luYyhmaWxlcywgb3B0aW9ucykge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnU3luYyhmaWxlLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFjb25maWcubm90Zm91bmQpIHtcbiAgICAgICAgICAgIGNvbmZpZ3MucHVzaChjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5yb290KSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZ3M7XG59XG4vKipcbiAqIE5vcm1hbGl6ZSB0aGUgb3B0aW9ucyBwYXNzZWQgaW4gdG8gdGhlIHB1YmxpY2x5LXZpc2libGUgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBmaWxlcGF0aCBUaGUgbmFtZSBvZiB0aGUgdGFyZ2V0IGZpbGUsIHJlbGF0aXZlIHRvIHByb2Nlc3MuY3dkKCkuXG4gKiBAcGFyYW0gb3B0aW9ucyBQb3RlbnRpYWxseS1pbmNvbXBsZXRlIG9wdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgZnVsbHktcXVhbGlmaWVkIHRhcmdldCBmaWxlIG5hbWUgYW5kIHRoZSBub3JtYWxpemVkIG9wdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIG9wdHMoZmlsZXBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlc29sdmVkRmlsZVBhdGggPSBwYXRoLnJlc29sdmUoZmlsZXBhdGgpO1xuICAgIHJldHVybiBbXG4gICAgICAgIHJlc29sdmVkRmlsZVBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbmZpZzogb3B0aW9ucy5jb25maWcgfHwgJy5lZGl0b3Jjb25maWcnLFxuICAgICAgICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uIHx8IHBhY2thZ2VfanNvbl8xLmRlZmF1bHQudmVyc2lvbixcbiAgICAgICAgICAgIHJvb3Q6IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QgfHwgcGF0aC5wYXJzZShyZXNvbHZlZEZpbGVQYXRoKS5yb290KSxcbiAgICAgICAgICAgIGZpbGVzOiBvcHRpb25zLmZpbGVzLFxuICAgICAgICAgICAgY2FjaGU6IG9wdGlvbnMuY2FjaGUsXG4gICAgICAgICAgICB1bnNldDogb3B0aW9ucy51bnNldCxcbiAgICAgICAgfSxcbiAgICBdO1xufVxuLyoqXG4gKiBMb3ctbGV2ZWwgaW50ZXJmYWNlLCB3aGljaCBleGlzdHMgb25seSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eS5cbiAqIERlcHJlY2F0ZWQuXG4gKlxuICogQHBhcmFtIGZpbGVwYXRoIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgZmlsZSwgcmVsYXRpdmUgdG8gcHJvY2Vzcy5jd2QoKS5cbiAqIEBwYXJhbSBmaWxlcyBBIHByb21pc2UgZm9yIGEgbGlzdCBvZiBvYmplY3RzIGRlc2NyaWJpbmcgdGhlIGZpbGVzLlxuICogQHBhcmFtIG9wdGlvbnMgQWxsIG9wdGlvbnNcbiAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0aWVzIGZvdW5kIGZvciBmaWxlcGF0aFxuICogQGRlcHJlY2F0ZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcGFyc2VGcm9tRmlsZXMoZmlsZXBhdGgsIGZpbGVzLCBvcHRpb25zID0ge30pIHtcbiAgICByZXR1cm4gcGFyc2VGcm9tRmlsZXNTeW5jKGZpbGVwYXRoLCBhd2FpdCBmaWxlcywgb3B0aW9ucyk7XG59XG5leHBvcnRzLnBhcnNlRnJvbUZpbGVzID0gcGFyc2VGcm9tRmlsZXM7XG4vKipcbiAqIExvdy1sZXZlbCBpbnRlcmZhY2UsIHdoaWNoIGV4aXN0cyBvbmx5IGZvciBiYWNrd2FyZC1jb21wYXRpYmlsaXR5LlxuICogRGVwcmVjYXRlZC5cbiAqXG4gKiBAcGFyYW0gZmlsZXBhdGggVGhlIG5hbWUgb2YgdGhlIHRhcmdldCBmaWxlLCByZWxhdGl2ZSB0byBwcm9jZXNzLmN3ZCgpLlxuICogQHBhcmFtIGZpbGVzIEEgbGlzdCBvZiBvYmplY3RzIGRlc2NyaWJpbmcgdGhlIGZpbGVzLlxuICogQHBhcmFtIG9wdGlvbnMgQWxsIG9wdGlvbnNcbiAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0aWVzIGZvdW5kIGZvciBmaWxlcGF0aFxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZnVuY3Rpb24gcGFyc2VGcm9tRmlsZXNTeW5jKGZpbGVwYXRoLCBmaWxlcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgW3Jlc29sdmVkRmlsZVBhdGgsIHByb2Nlc3NlZE9wdGlvbnNdID0gb3B0cyhmaWxlcGF0aCwgb3B0aW9ucyk7XG4gICAgY29uc3QgY29uZmlncyA9IFtdO1xuICAgIGZvciAoY29uc3QgZWNmIG9mIGZpbGVzKSB7XG4gICAgICAgIGxldCBjZmc7XG4gICAgICAgIGlmICghb3B0aW9ucy5jYWNoZSB8fCAhKGNmZyA9IG9wdGlvbnMuY2FjaGUuZ2V0KGVjZi5uYW1lKSkpIHsgLy8gU2luZ2xlIFwiPVwiIVxuICAgICAgICAgICAgY2ZnID0gcHJvY2Vzc0ZpbGVDb250ZW50cyhlY2YubmFtZSwgZWNmLmNvbnRlbnRzLCBwcm9jZXNzZWRPcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNmZy5ub3Rmb3VuZCkge1xuICAgICAgICAgICAgY29uZmlncy5wdXNoKGNmZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNmZy5yb290KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tYmluZShyZXNvbHZlZEZpbGVQYXRoLCBjb25maWdzLCBwcm9jZXNzZWRPcHRpb25zKTtcbn1cbmV4cG9ydHMucGFyc2VGcm9tRmlsZXNTeW5jID0gcGFyc2VGcm9tRmlsZXNTeW5jO1xuLyoqXG4gKiBDb21iaW5lIHRoZSBwcmUtcGFyc2VkIHJlc3VsdHMgb2YgYWxsIG1hdGNoaW5nIGNvbmZpZyBmaWxlIHNlY3Rpb25zLCBpblxuICogb3JkZXIuXG4gKlxuICogQHBhcmFtIGZpbGVwYXRoIFRoZSB0YXJnZXQgZmlsZSBwYXRoXG4gKiBAcGFyYW0gY29uZmlncyBBbGwgb2YgdGhlIGZvdW5kIGNvbmZpZyBmaWxlcywgdXAgdG8gdGhlIHJvb3RcbiAqIEBwYXJhbSBvcHRpb25zIEFkZHMgdG8gYG9wdGlvbnMuZmlsZXNgIGlmIGl0IGV4aXN0c1xuICogQHJldHVybnMgQ29tYmluZWQgcHJvcGVydGllc1xuICovXG5mdW5jdGlvbiBjb21iaW5lKGZpbGVwYXRoLCBjb25maWdzLCBvcHRpb25zKSB7XG4gICAgY29uc3QgcmV0ID0gY29uZmlncy5yZXZlcnNlKCkucmVkdWNlKChwcm9wcywgcHJvY2Vzc2VkKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIGJvZHksIGdsb2JdIG9mIHByb2Nlc3NlZC5jb25maWcpIHtcbiAgICAgICAgICAgIGlmIChnbG9iICYmIGdsb2IubWF0Y2goZmlsZXBhdGgpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwcm9wcywgYm9keSk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5maWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBwcm9jZXNzZWQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2I6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfSwge30pO1xuICAgIGlmIChvcHRpb25zLnVuc2V0KSB7XG4gICAgICAgIHVuc2V0KHJldCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9jZXNzTWF0Y2hlcyhyZXQsIG9wdGlvbnMudmVyc2lvbik7XG59XG4vKipcbiAqIEZvciBhbnkgcGFpciwgYSB2YWx1ZSBvZiBgdW5zZXRgIHJlbW92ZXMgdGhlIGVmZmVjdCBvZiB0aGF0IHBhaXIsIGV2ZW4gaWZcbiAqIGl0IGhhcyBiZWVuIHNldCBiZWZvcmUuICBUaGlzIG1ldGhvZCBtb2RpZmllcyB0aGUgcHJvcGVydGllcyBvYmplY3QgaW5cbiAqIHBsYWNlIHRvIHJlbW92ZSBhbnkgcHJvcGVydHkgdGhhdCBoYXMgYSB2YWx1ZSBvZiBgdW5zZXRgLlxuICpcbiAqIEBwYXJhbSBwcm9wcyBQcm9wZXJ0aWVzIG9iamVjdCB0byBtb2RpZnkuXG4gKi9cbmZ1bmN0aW9uIHVuc2V0KHByb3BzKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByb3BzKTtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgICAgICBpZiAocHJvcHNba10gPT09ICd1bnNldCcpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBwcm9wc1trXTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMudW5zZXQgPSB1bnNldDtcbi8qKlxuICogRmluZCBhbGwgb2YgdGhlIHByb3BlcnRpZXMgZnJvbSBtYXRjaGluZyBzZWN0aW9ucyBpbiBjb25maWcgZmlsZXMgaW4gdGhlXG4gKiBzYW1lIGRpcmVjdG9yeSBvciB0b3dhcmQgdGhlIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0uXG4gKlxuICogQHBhcmFtIGZpbGVwYXRoIFRoZSB0YXJnZXQgZmlsZSBuYW1lLCByZWxhdGl2ZSB0byBwcm9jZXNzLmN3ZCgpLlxuICogQHBhcmFtIG9wdGlvbnMgQWxsIG9wdGlvbnNcbiAqIEByZXR1cm5zIENvbWJpbmVkIHByb3BlcnRpZXMgZm9yIHRoZSB0YXJnZXQgZmlsZVxuICovXG5hc3luYyBmdW5jdGlvbiBwYXJzZShmaWxlcGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgW3Jlc29sdmVkRmlsZVBhdGgsIHByb2Nlc3NlZE9wdGlvbnNdID0gb3B0cyhmaWxlcGF0aCwgb3B0aW9ucyk7XG4gICAgY29uc3QgZmlsZXBhdGhzID0gZ2V0Q29uZmlnRmlsZU5hbWVzKHJlc29sdmVkRmlsZVBhdGgsIHByb2Nlc3NlZE9wdGlvbnMpO1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBhd2FpdCBnZXRBbGxDb25maWdzKGZpbGVwYXRocywgcHJvY2Vzc2VkT3B0aW9ucyk7XG4gICAgcmV0dXJuIGNvbWJpbmUocmVzb2x2ZWRGaWxlUGF0aCwgY29uZmlncywgcHJvY2Vzc2VkT3B0aW9ucyk7XG59XG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG4vKipcbiAqIEZpbmQgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIGZyb20gbWF0Y2hpbmcgc2VjdGlvbnMgaW4gY29uZmlnIGZpbGVzIGluIHRoZVxuICogc2FtZSBkaXJlY3Rvcnkgb3IgdG93YXJkIHRoZSByb290IG9mIHRoZSBmaWxlc3lzdGVtLiAgU3luY2hyb25vdXMuXG4gKlxuICogQHBhcmFtIGZpbGVwYXRoIFRoZSB0YXJnZXQgZmlsZSBuYW1lLCByZWxhdGl2ZSB0byBwcm9jZXNzLmN3ZCgpLlxuICogQHBhcmFtIG9wdGlvbnMgQWxsIG9wdGlvbnNcbiAqIEByZXR1cm5zIENvbWJpbmVkIHByb3BlcnRpZXMgZm9yIHRoZSB0YXJnZXQgZmlsZVxuICovXG5mdW5jdGlvbiBwYXJzZVN5bmMoZmlsZXBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IFtyZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zXSA9IG9wdHMoZmlsZXBhdGgsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGZpbGVwYXRocyA9IGdldENvbmZpZ0ZpbGVOYW1lcyhyZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zKTtcbiAgICBjb25zdCBjb25maWdzID0gZ2V0QWxsQ29uZmlnc1N5bmMoZmlsZXBhdGhzLCBwcm9jZXNzZWRPcHRpb25zKTtcbiAgICByZXR1cm4gY29tYmluZShyZXNvbHZlZEZpbGVQYXRoLCBjb25maWdzLCBwcm9jZXNzZWRPcHRpb25zKTtcbn1cbmV4cG9ydHMucGFyc2VTeW5jID0gcGFyc2VTeW5jO1xuLyoqXG4gKiBJIHRoaW5rIHRoaXMgbWF5IGJlIG9mIGxpbWl0ZWQgdXRpbGl0eSBhdCB0aGUgbW9tZW50LCBidXQgSSBuZWVkIHNvbWV0aGluZ1xuICogbGlrZSB0aGlzIGZvciB0ZXN0aW5nLiAgQXMgc3VjaCwgdGhlIGludGVyZmFjZSBvZiB0aGlzIG1heSBjaGFuZ2Ugd2l0aG91dFxuICogd2FybmluZy5cbiAqXG4gKiBTb21ldGhpbmcgdGhpcyBkaXJlY3Rpb24gbWF5IGJlIGJldHRlciBmb3IgZWRpdG9ycyB0aGFuIHRoZSBjYWNoaW5nIGJpdHNcbiAqIHdlJ3ZlIGdvdCB0b2RheSwgYnV0IHRoYXQgd2lsbCBuZWVkIHNvbWUgdGhvdWdodC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBBbGwgb3B0aW9ucy4gIHJvb3Qgd2lsbCBiZSBwcm9jZXNzLmN3ZCBpZiBub3Qgc3BlY2lmaWVkLlxuICogQHBhcmFtIGJ1ZmZlcnMgMSBvciBtb3JlIEJ1ZmZlcnMgdGhhdCBoYXZlIC5lZGl0b3Jjb25maWcgY29udGVudHMuXG4gKiBAcmV0dXJucyBGdW5jdGlvbiB0aGF0IGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIGRpZmZlcmVudCBwYXRocy5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIG1hdGNoZXIob3B0aW9ucywgLi4uYnVmZmVycykge1xuICAgIGNvbnN0IHByb2Nlc3NlZE9wdGlvbnMgPSBvcHRzKCcnLCBvcHRpb25zKVsxXTtcbiAgICBjb25zdCBjb25maWdzID0gYnVmZmVycy5tYXAoKGJ1ZiwgaSkgPT4gcHJvY2Vzc0ZpbGVDb250ZW50cyhwYXRoLmpvaW4ocHJvY2Vzc2VkT3B0aW9ucy5yb290LCBgYnVmZmVyLSR7aX1gKSwgYnVmLCBwcm9jZXNzZWRPcHRpb25zKSk7XG4gICAgcmV0dXJuIChmaWxlcGF0aCkgPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZEZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKGZpbGVwYXRoKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmUocmVzb2x2ZWRGaWxlUGF0aCwgY29uZmlncywgcHJvY2Vzc2VkT3B0aW9ucyk7XG4gICAgfTtcbn1cbmV4cG9ydHMubWF0Y2hlciA9IG1hdGNoZXI7XG4iLCAidmFyICRpPU9iamVjdC5jcmVhdGU7dmFyIFplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgWmk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZXM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIHRzPU9iamVjdC5nZXRQcm90b3R5cGVPZixpcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBiZT0oYSx1KT0+KCk9Pih1fHxhKCh1PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx1KSx1LmV4cG9ydHMpLHNzPShhLHUpPT57Zm9yKHZhciBjIGluIHUpWmUoYSxjLHtnZXQ6dVtjXSxlbnVtZXJhYmxlOiEwfSl9LHJzPShhLHUsYyxoKT0+e2lmKHUmJnR5cGVvZiB1PT1cIm9iamVjdFwifHx0eXBlb2YgdT09XCJmdW5jdGlvblwiKWZvcihsZXQgbCBvZiBlcyh1KSkhaXMuY2FsbChhLGwpJiZsIT09YyYmWmUoYSxsLHtnZXQ6KCk9PnVbbF0sZW51bWVyYWJsZTohKGg9WmkodSxsKSl8fGguZW51bWVyYWJsZX0pO3JldHVybiBhfTt2YXIgYXM9KGEsdSxjKT0+KGM9YSE9bnVsbD8kaSh0cyhhKSk6e30scnModXx8IWF8fCFhLl9fZXNNb2R1bGU/WmUoYyxcImRlZmF1bHRcIix7dmFsdWU6YSxlbnVtZXJhYmxlOiEwfSk6YyxhKSk7dmFyIGlpPWJlKHNlPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHNlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3NlLmV4dHJhY3Q9ZnM7c2UucGFyc2U9bXM7c2UucGFyc2VXaXRoQ29tbWVudHM9dGk7c2UucHJpbnQ9eHM7c2Uuc3RyaXA9ZHM7dmFyIHVzPS9cXCpcXC8kLyxocz0vXlxcL1xcKlxcKj8vLFp0PS9eXFxzKihcXC9cXCpcXCo/KC58XFxyP1xcbikqP1xcKlxcLykvLHBzPS8oXnxcXHMrKVxcL1xcLyhbXlxcclxcbl0qKS9nLFF0PS9eKFxccj9cXG4pKy8sY3M9Lyg/Ol58XFxyP1xcbikgKihAW15cXHJcXG5dKj8pICpcXHI/XFxuICooPyFbXkBcXHJcXG5dKlxcL1xcL1teXSopKFteQFxcclxcblxcc11bXkBcXHJcXG5dKz8pICpcXHI/XFxuL2csWXQ9Lyg/Ol58XFxyP1xcbikgKkAoXFxTKykgKihbXlxcclxcbl0qKS9nLGxzPS8oXFxyP1xcbnxeKSAqXFwqID8vZyxlaT1bXTtmdW5jdGlvbiBmcyhhKXtsZXQgdT1hLm1hdGNoKFp0KTtyZXR1cm4gdT91WzBdLnRyaW1MZWZ0KCk6XCJcIn1mdW5jdGlvbiBkcyhhKXtsZXQgdT1hLm1hdGNoKFp0KTtyZXR1cm4gdSYmdVswXT9hLnN1YnN0cmluZyh1WzBdLmxlbmd0aCk6YX1mdW5jdGlvbiBtcyhhKXtyZXR1cm4gdGkoYSkucHJhZ21hc31mdW5jdGlvbiB0aShhKXtsZXQgdT1gXG5gO2E9YS5yZXBsYWNlKGhzLFwiXCIpLnJlcGxhY2UodXMsXCJcIikucmVwbGFjZShscyxcIiQxXCIpO2xldCBjPVwiXCI7Zm9yKDtjIT09YTspYz1hLGE9YS5yZXBsYWNlKGNzLGAke3V9JDEgJDIke3V9YCk7YT1hLnJlcGxhY2UoUXQsXCJcIikudHJpbVJpZ2h0KCk7bGV0IGg9T2JqZWN0LmNyZWF0ZShudWxsKSxsPWEucmVwbGFjZShZdCxcIlwiKS5yZXBsYWNlKFF0LFwiXCIpLnRyaW1SaWdodCgpLGY7Zm9yKDtmPVl0LmV4ZWMoYSk7KXtsZXQgeT1mWzJdLnJlcGxhY2UocHMsXCJcIik7dHlwZW9mIGhbZlsxXV09PVwic3RyaW5nXCJ8fEFycmF5LmlzQXJyYXkoaFtmWzFdXSk/aFtmWzFdXT1laS5jb25jYXQoaFtmWzFdXSx5KTpoW2ZbMV1dPXl9cmV0dXJue2NvbW1lbnRzOmwscHJhZ21hczpofX1mdW5jdGlvbiB4cyh7Y29tbWVudHM6YT1cIlwiLHByYWdtYXM6dT17fX0pe2xldCBjPWBcbmAsaD1cIi8qKlwiLGw9XCIgKlwiLGY9XCIgKi9cIix5PU9iamVjdC5rZXlzKHUpLF89eS5tYXAoUD0+JHQoUCx1W1BdKSkucmVkdWNlKChQLEQpPT5QLmNvbmNhdChEKSxbXSkubWFwKFA9PmAke2x9ICR7UH0ke2N9YCkuam9pbihcIlwiKTtpZighYSl7aWYoeS5sZW5ndGg9PT0wKXJldHVyblwiXCI7aWYoeS5sZW5ndGg9PT0xJiYhQXJyYXkuaXNBcnJheSh1W3lbMF1dKSl7bGV0IFA9dVt5WzBdXTtyZXR1cm5gJHtofSAkeyR0KHlbMF0sUClbMF19JHtmfWB9fWxldCBMPWEuc3BsaXQoYykubWFwKFA9PmAke2x9ICR7UH1gKS5qb2luKGMpK2M7cmV0dXJuIGgrYysoYT9MOlwiXCIpKyhhJiZ5Lmxlbmd0aD9sK2M6XCJcIikrXytmfWZ1bmN0aW9uICR0KGEsdSl7cmV0dXJuIGVpLmNvbmNhdCh1KS5tYXAoYz0+YEAke2F9ICR7Y31gLnRyaW0oKSl9fSk7dmFyIGtlPWJlKChVZSxjaSk9PnsoZnVuY3Rpb24oYSx1KXt0eXBlb2YgVWU9PVwib2JqZWN0XCImJnR5cGVvZiBjaTxcInVcIj91KFVlKTp0eXBlb2YgZGVmaW5lPT1cImZ1bmN0aW9uXCImJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIl0sdSk6KGE9dHlwZW9mIGdsb2JhbFRoaXM8XCJ1XCI/Z2xvYmFsVGhpczphfHxzZWxmLHUoYS5hY29ybj17fSkpfSkoVWUsZnVuY3Rpb24oYSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHU9WzUwOSwwLDIyNywwLDE1MCw0LDI5NCw5LDEzNjgsMiwyLDEsNiwzLDQxLDIsNSwwLDE2NiwxLDU3NCwzLDksOSwzNzAsMSw4MSwyLDcxLDEwLDUwLDMsMTIzLDIsNTQsMTQsMzIsMTAsMywxLDExLDMsNDYsMTAsOCwwLDQ2LDksNywyLDM3LDEzLDIsOSw2LDEsNDUsMCwxMywyLDQ5LDEzLDksMywyLDExLDgzLDExLDcsMCwzLDAsMTU4LDExLDYsOSw3LDMsNTYsMSwyLDYsMywxLDMsMiwxMCwwLDExLDEsMyw2LDQsNCwxOTMsMTcsMTAsOSw1LDAsODIsMTksMTMsOSwyMTQsNiwzLDgsMjgsMSw4MywxNiwxNiw5LDgyLDEyLDksOSw4NCwxNCw1LDksMjQzLDE0LDE2Niw5LDcxLDUsMiwxLDMsMywyLDAsMiwxLDEzLDksMTIwLDYsMyw2LDQsMCwyOSw5LDQxLDYsMiwzLDksMCwxMCwxMCw0NywxNSw0MDYsNywyLDcsMTcsOSw1NywyMSwyLDEzLDEyMyw1LDQsMCwyLDEsMiw2LDIsMCw5LDksNDksNCwyLDEsMiw0LDksOSwzMzAsMywxMCwxLDIsMCw0OSw2LDQsNCwxNCw5LDUzNTEsMCw3LDE0LDEzODM1LDksODcsOSwzOSw0LDYwLDYsMjYsOSwxMDE0LDAsMiw1NCw4LDMsODIsMCwxMiwxLDE5NjI4LDEsNDcwNiw0NSwzLDIyLDU0Myw0LDQsNSw5LDcsMyw2LDMxLDMsMTQ5LDIsMTQxOCw0OSw1MTMsNTQsNSw0OSw5LDAsMTUsMCwyMyw0LDIsMTQsMTM2MSw2LDIsMTYsMyw2LDIsMSwyLDQsMTAxLDAsMTYxLDYsMTAsOSwzNTcsMCw2MiwxMyw0OTksMTMsOTgzLDYsMTEwLDYsNiw5LDQ3NTksOSw3ODc3MTksMjM5XSxjPVswLDExLDIsMjUsMiwxOCwyLDEsMiwxNCwzLDEzLDM1LDEyMiw3MCw1MiwyNjgsMjgsNCw0OCw0OCwzMSwxNCwyOSw2LDM3LDExLDI5LDMsMzUsNSw3LDIsNCw0MywxNTcsMTksMzUsNSwzNSw1LDM5LDksNTEsMTMsMTAsMiwxNCwyLDYsMiwxLDIsMTAsMiwxNCwyLDYsMiwxLDY4LDMxMCwxMCwyMSwxMSw3LDI1LDUsMiw0MSwyLDgsNzAsNSwzLDAsMiw0MywyLDEsNCwwLDMsMjIsMTEsMjIsMTAsMzAsNjYsMTgsMiwxLDExLDIxLDExLDI1LDcxLDU1LDcsMSw2NSwwLDE2LDMsMiwyLDIsMjgsNDMsMjgsNCwyOCwzNiw3LDIsMjcsMjgsNTMsMTEsMjEsMTEsMTgsMTQsMTcsMTExLDcyLDU2LDUwLDE0LDUwLDE0LDM1LDM0OSw0MSw3LDEsNzksMjgsMTEsMCw5LDIxLDQzLDE3LDQ3LDIwLDI4LDIyLDEzLDUyLDU4LDEsMywwLDE0LDQ0LDMzLDI0LDI3LDM1LDMwLDAsMywwLDksMzQsNCwwLDEzLDQ3LDE1LDMsMjIsMCwyLDAsMzYsMTcsMiwyNCwyMCwxLDY0LDYsMiwwLDIsMywyLDE0LDIsOSw4LDQ2LDM5LDcsMywxLDMsMjEsMiw2LDIsMSwyLDQsNCwwLDE5LDAsMTMsNCwxNTksNTIsMTksMywyMSwyLDMxLDQ3LDIxLDEsMiwwLDE4NSw0Niw0MiwzLDM3LDQ3LDIxLDAsNjAsNDIsMTQsMCw3MiwyNiwzOCw2LDE4Niw0MywxMTcsNjMsMzIsNywzLDAsMyw3LDIsMSwyLDIzLDE2LDAsMiwwLDk1LDcsMywzOCwxNywwLDIsMCwyOSwwLDExLDM5LDgsMCwyMiwwLDEyLDQ1LDIwLDAsMTksNzIsMjY0LDgsMiwzNiwxOCwwLDUwLDI5LDExMyw2LDIsMSwyLDM3LDIyLDAsMjYsNSwyLDEsMiwzMSwxNSwwLDMyOCwxOCwxNiwwLDIsMTIsMiwzMywxMjUsMCw4MCw5MjEsMTAzLDExMCwxOCwxOTUsMjYzNyw5NiwxNiwxMDcxLDE4LDUsNDAyNiw1ODIsODYzNCw1NjgsOCwzMCwxOCw3OCwxOCwyOSwxOSw0NywxNywzLDMyLDIwLDYsMTgsNjg5LDYzLDEyOSw3NCw2LDAsNjcsMTIsNjUsMSwyLDAsMjksNjEzNSw5LDEyMzcsNDMsOCw4OTM2LDMsMiw2LDIsMSwyLDI5MCwxNiwwLDMwLDIsMywwLDE1LDMsOSwzOTUsMjMwOSwxMDYsNiwxMiw0LDgsOCw5LDU5OTEsODQsMiw3MCwyLDEsMywwLDMsMSwzLDMsMiwxMSwyLDAsMiw2LDIsNjQsMiwzLDMsNywyLDYsMiwyNywyLDMsMiw0LDIsMCw0LDYsMiwzMzksMywyNCwyLDI0LDIsMzAsMiwyNCwyLDMwLDIsMjQsMiwzMCwyLDI0LDIsMzAsMiwyNCwyLDcsMTg0NSwzMCw3LDUsMjYyLDYxLDE0Nyw0NCwxMSw2LDE3LDAsMzIyLDI5LDE5LDQzLDQ4NSwyNyw3NTcsNiwyLDMsMiwxLDIsMTQsMiwxOTYsNjAsNjcsOCwwLDEyMDUsMywyLDI2LDIsMSwyLDAsMywwLDIsOSwyLDMsMiwwLDIsMCw3LDAsNSwwLDIsMCwyLDAsMiwyLDIsMSwyLDAsMywwLDIsMCwyLDAsMiwwLDIsMCwyLDEsMiwwLDMsMywyLDYsMiwzLDIsMywyLDAsMiw5LDIsMTYsNiwyLDIsNCwyLDE2LDQ0MjEsNDI3MTksMzMsNDE1Myw3LDIyMSwzLDU3NjEsMTUsNzQ3MiwzMTA0LDU0MSwxNTA3LDQ5MzgsNiw0MTkxXSxoPVwiXFx1MjAwQ1xcdTIwMERcXHhCN1xcdTAzMDAtXFx1MDM2RlxcdTAzODdcXHUwNDgzLVxcdTA0ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MUFcXHUwNjRCLVxcdTA2NjlcXHUwNjcwXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNkYwLVxcdTA2RjlcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdBNi1cXHUwN0IwXFx1MDdDMC1cXHUwN0M5XFx1MDdFQi1cXHUwN0YzXFx1MDdGRFxcdTA4MTYtXFx1MDgxOVxcdTA4MUItXFx1MDgyM1xcdTA4MjUtXFx1MDgyN1xcdTA4MjktXFx1MDgyRFxcdTA4NTktXFx1MDg1QlxcdTA4OTgtXFx1MDg5RlxcdTA4Q0EtXFx1MDhFMVxcdTA4RTMtXFx1MDkwM1xcdTA5M0EtXFx1MDkzQ1xcdTA5M0UtXFx1MDk0RlxcdTA5NTEtXFx1MDk1N1xcdTA5NjJcXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk4MS1cXHUwOTgzXFx1MDlCQ1xcdTA5QkUtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNEXFx1MDlEN1xcdTA5RTJcXHUwOUUzXFx1MDlFNi1cXHUwOUVGXFx1MDlGRVxcdTBBMDEtXFx1MEEwM1xcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTY2LVxcdTBBNzFcXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEFCQ1xcdTBBQkUtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRTJcXHUwQUUzXFx1MEFFNi1cXHUwQUVGXFx1MEFGQS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIzQ1xcdTBCM0UtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NS1cXHUwQjU3XFx1MEI2MlxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjgyXFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEN1xcdTBCRTYtXFx1MEJFRlxcdTBDMDAtXFx1MEMwNFxcdTBDM0NcXHUwQzNFLVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNjJcXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MS1cXHUwQzgzXFx1MENCQ1xcdTBDQkUtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENFMlxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YzXFx1MEQwMC1cXHUwRDAzXFx1MEQzQlxcdTBEM0NcXHUwRDNFLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENERcXHUwRDU3XFx1MEQ2MlxcdTBENjNcXHUwRDY2LVxcdTBENkZcXHUwRDgxLVxcdTBEODNcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERTYtXFx1MERFRlxcdTBERjJcXHUwREYzXFx1MEUzMVxcdTBFMzQtXFx1MEUzQVxcdTBFNDctXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFQjFcXHUwRUI0LVxcdTBFQkNcXHUwRUM4LVxcdTBFQ0VcXHUwRUQwLVxcdTBFRDlcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0VcXHUwRjNGXFx1MEY3MS1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjhELVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAyQi1cXHUxMDNFXFx1MTA0MC1cXHUxMDQ5XFx1MTA1Ni1cXHUxMDU5XFx1MTA1RS1cXHUxMDYwXFx1MTA2Mi1cXHUxMDY0XFx1MTA2Ny1cXHUxMDZEXFx1MTA3MS1cXHUxMDc0XFx1MTA4Mi1cXHUxMDhEXFx1MTA4Ri1cXHUxMDlEXFx1MTM1RC1cXHUxMzVGXFx1MTM2OS1cXHUxMzcxXFx1MTcxMi1cXHUxNzE1XFx1MTczMi1cXHUxNzM0XFx1MTc1MlxcdTE3NTNcXHUxNzcyXFx1MTc3M1xcdTE3QjQtXFx1MTdEM1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODBGLVxcdTE4MTlcXHUxOEE5XFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTRGXFx1MTlEMC1cXHUxOURBXFx1MUExNy1cXHUxQTFCXFx1MUE1NS1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFCMC1cXHUxQUJEXFx1MUFCRi1cXHUxQUNFXFx1MUIwMC1cXHUxQjA0XFx1MUIzNC1cXHUxQjQ0XFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQjgyXFx1MUJBMS1cXHUxQkFEXFx1MUJCMC1cXHUxQkI5XFx1MUJFNi1cXHUxQkYzXFx1MUMyNC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM1MC1cXHUxQzU5XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0U4XFx1MUNFRFxcdTFDRjRcXHUxQ0Y3LVxcdTFDRjlcXHUxREMwLVxcdTFERkZcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MkNFRi1cXHUyQ0YxXFx1MkQ3RlxcdTJERTAtXFx1MkRGRlxcdTMwMkEtXFx1MzAyRlxcdTMwOTlcXHUzMDlBXFx1QTYyMC1cXHVBNjI5XFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2OUVcXHVBNjlGXFx1QTZGMFxcdUE2RjFcXHVBODAyXFx1QTgwNlxcdUE4MEJcXHVBODIzLVxcdUE4MjdcXHVBODJDXFx1QTg4MFxcdUE4ODFcXHVBOEI0LVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjFcXHVBOEZGLVxcdUE5MDlcXHVBOTI2LVxcdUE5MkRcXHVBOTQ3LVxcdUE5NTNcXHVBOTgwLVxcdUE5ODNcXHVBOUIzLVxcdUE5QzBcXHVBOUQwLVxcdUE5RDlcXHVBOUU1XFx1QTlGMC1cXHVBOUY5XFx1QUEyOS1cXHVBQTM2XFx1QUE0M1xcdUFBNENcXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE3Qi1cXHVBQTdEXFx1QUFCMFxcdUFBQjItXFx1QUFCNFxcdUFBQjdcXHVBQUI4XFx1QUFCRVxcdUFBQkZcXHVBQUMxXFx1QUFFQi1cXHVBQUVGXFx1QUFGNVxcdUFBRjZcXHVBQkUzLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUZCMUVcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZGMTAtXFx1RkYxOVxcdUZGM0ZcIixsPVwiXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwODcwLVxcdTA4ODdcXHUwODg5LVxcdTA4OEVcXHUwOEEwLVxcdTA4QzlcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM1RFxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0REXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA0LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcxMVxcdTE3MUYtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNENcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTgtXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUItXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0NBXFx1QTdEMFxcdUE3RDFcXHVBN0QzXFx1QTdENS1cXHVBN0Q5XFx1QTdGMi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ1wiLGY9ezM6XCJhYnN0cmFjdCBib29sZWFuIGJ5dGUgY2hhciBjbGFzcyBkb3VibGUgZW51bSBleHBvcnQgZXh0ZW5kcyBmaW5hbCBmbG9hdCBnb3RvIGltcGxlbWVudHMgaW1wb3J0IGludCBpbnRlcmZhY2UgbG9uZyBuYXRpdmUgcGFja2FnZSBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgc2hvcnQgc3RhdGljIHN1cGVyIHN5bmNocm9uaXplZCB0aHJvd3MgdHJhbnNpZW50IHZvbGF0aWxlXCIsNTpcImNsYXNzIGVudW0gZXh0ZW5kcyBzdXBlciBjb25zdCBleHBvcnQgaW1wb3J0XCIsNjpcImVudW1cIixzdHJpY3Q6XCJpbXBsZW1lbnRzIGludGVyZmFjZSBsZXQgcGFja2FnZSBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgc3RhdGljIHlpZWxkXCIsc3RyaWN0QmluZDpcImV2YWwgYXJndW1lbnRzXCJ9LHk9XCJicmVhayBjYXNlIGNhdGNoIGNvbnRpbnVlIGRlYnVnZ2VyIGRlZmF1bHQgZG8gZWxzZSBmaW5hbGx5IGZvciBmdW5jdGlvbiBpZiByZXR1cm4gc3dpdGNoIHRocm93IHRyeSB2YXIgd2hpbGUgd2l0aCBudWxsIHRydWUgZmFsc2UgaW5zdGFuY2VvZiB0eXBlb2Ygdm9pZCBkZWxldGUgbmV3IGluIHRoaXNcIixfPXs1OnksXCI1bW9kdWxlXCI6eStcIiBleHBvcnQgaW1wb3J0XCIsNjp5K1wiIGNvbnN0IGNsYXNzIGV4dGVuZHMgZXhwb3J0IGltcG9ydCBzdXBlclwifSxMPS9eaW4oc3RhbmNlb2YpPyQvLFA9bmV3IFJlZ0V4cChcIltcIitsK1wiXVwiKSxEPW5ldyBSZWdFeHAoXCJbXCIrbCtoK1wiXVwiKTtmdW5jdGlvbiBHKGUsdCl7Zm9yKHZhciBpPTY1NTM2LHM9MDtzPHQubGVuZ3RoO3MrPTIpe2lmKGkrPXRbc10saT5lKXJldHVybiExO2lmKGkrPXRbcysxXSxpPj1lKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEYoZSx0KXtyZXR1cm4gZTw2NT9lPT09MzY6ZTw5MT8hMDplPDk3P2U9PT05NTplPDEyMz8hMDplPD02NTUzNT9lPj0xNzAmJlAudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTp0PT09ITE/ITE6RyhlLGMpfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gZTw0OD9lPT09MzY6ZTw1OD8hMDplPDY1PyExOmU8OTE/ITA6ZTw5Nz9lPT09OTU6ZTwxMjM/ITA6ZTw9NjU1MzU/ZT49MTcwJiZELnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShlKSk6dD09PSExPyExOkcoZSxjKXx8RyhlLHUpfXZhciB4PWZ1bmN0aW9uKHQsaSl7aT09PXZvaWQgMCYmKGk9e30pLHRoaXMubGFiZWw9dCx0aGlzLmtleXdvcmQ9aS5rZXl3b3JkLHRoaXMuYmVmb3JlRXhwcj0hIWkuYmVmb3JlRXhwcix0aGlzLnN0YXJ0c0V4cHI9ISFpLnN0YXJ0c0V4cHIsdGhpcy5pc0xvb3A9ISFpLmlzTG9vcCx0aGlzLmlzQXNzaWduPSEhaS5pc0Fzc2lnbix0aGlzLnByZWZpeD0hIWkucHJlZml4LHRoaXMucG9zdGZpeD0hIWkucG9zdGZpeCx0aGlzLmJpbm9wPWkuYmlub3B8fG51bGwsdGhpcy51cGRhdGVDb250ZXh0PW51bGx9O2Z1bmN0aW9uIGIoZSx0KXtyZXR1cm4gbmV3IHgoZSx7YmVmb3JlRXhwcjohMCxiaW5vcDp0fSl9dmFyIGs9e2JlZm9yZUV4cHI6ITB9LE49e3N0YXJ0c0V4cHI6ITB9LEg9e307ZnVuY3Rpb24gdyhlLHQpe3JldHVybiB0PT09dm9pZCAwJiYodD17fSksdC5rZXl3b3JkPWUsSFtlXT1uZXcgeChlLHQpfXZhciByPXtudW06bmV3IHgoXCJudW1cIixOKSxyZWdleHA6bmV3IHgoXCJyZWdleHBcIixOKSxzdHJpbmc6bmV3IHgoXCJzdHJpbmdcIixOKSxuYW1lOm5ldyB4KFwibmFtZVwiLE4pLHByaXZhdGVJZDpuZXcgeChcInByaXZhdGVJZFwiLE4pLGVvZjpuZXcgeChcImVvZlwiKSxicmFja2V0TDpuZXcgeChcIltcIix7YmVmb3JlRXhwcjohMCxzdGFydHNFeHByOiEwfSksYnJhY2tldFI6bmV3IHgoXCJdXCIpLGJyYWNlTDpuZXcgeChcIntcIix7YmVmb3JlRXhwcjohMCxzdGFydHNFeHByOiEwfSksYnJhY2VSOm5ldyB4KFwifVwiKSxwYXJlbkw6bmV3IHgoXCIoXCIse2JlZm9yZUV4cHI6ITAsc3RhcnRzRXhwcjohMH0pLHBhcmVuUjpuZXcgeChcIilcIiksY29tbWE6bmV3IHgoXCIsXCIsayksc2VtaTpuZXcgeChcIjtcIixrKSxjb2xvbjpuZXcgeChcIjpcIixrKSxkb3Q6bmV3IHgoXCIuXCIpLHF1ZXN0aW9uOm5ldyB4KFwiP1wiLGspLHF1ZXN0aW9uRG90Om5ldyB4KFwiPy5cIiksYXJyb3c6bmV3IHgoXCI9PlwiLGspLHRlbXBsYXRlOm5ldyB4KFwidGVtcGxhdGVcIiksaW52YWxpZFRlbXBsYXRlOm5ldyB4KFwiaW52YWxpZFRlbXBsYXRlXCIpLGVsbGlwc2lzOm5ldyB4KFwiLi4uXCIsayksYmFja1F1b3RlOm5ldyB4KFwiYFwiLE4pLGRvbGxhckJyYWNlTDpuZXcgeChcIiR7XCIse2JlZm9yZUV4cHI6ITAsc3RhcnRzRXhwcjohMH0pLGVxOm5ldyB4KFwiPVwiLHtiZWZvcmVFeHByOiEwLGlzQXNzaWduOiEwfSksYXNzaWduOm5ldyB4KFwiXz1cIix7YmVmb3JlRXhwcjohMCxpc0Fzc2lnbjohMH0pLGluY0RlYzpuZXcgeChcIisrLy0tXCIse3ByZWZpeDohMCxwb3N0Zml4OiEwLHN0YXJ0c0V4cHI6ITB9KSxwcmVmaXg6bmV3IHgoXCIhL35cIix7YmVmb3JlRXhwcjohMCxwcmVmaXg6ITAsc3RhcnRzRXhwcjohMH0pLGxvZ2ljYWxPUjpiKFwifHxcIiwxKSxsb2dpY2FsQU5EOmIoXCImJlwiLDIpLGJpdHdpc2VPUjpiKFwifFwiLDMpLGJpdHdpc2VYT1I6YihcIl5cIiw0KSxiaXR3aXNlQU5EOmIoXCImXCIsNSksZXF1YWxpdHk6YihcIj09LyE9Lz09PS8hPT1cIiw2KSxyZWxhdGlvbmFsOmIoXCI8Lz4vPD0vPj1cIiw3KSxiaXRTaGlmdDpiKFwiPDwvPj4vPj4+XCIsOCkscGx1c01pbjpuZXcgeChcIisvLVwiLHtiZWZvcmVFeHByOiEwLGJpbm9wOjkscHJlZml4OiEwLHN0YXJ0c0V4cHI6ITB9KSxtb2R1bG86YihcIiVcIiwxMCksc3RhcjpiKFwiKlwiLDEwKSxzbGFzaDpiKFwiL1wiLDEwKSxzdGFyc3RhcjpuZXcgeChcIioqXCIse2JlZm9yZUV4cHI6ITB9KSxjb2FsZXNjZTpiKFwiPz9cIiwxKSxfYnJlYWs6dyhcImJyZWFrXCIpLF9jYXNlOncoXCJjYXNlXCIsayksX2NhdGNoOncoXCJjYXRjaFwiKSxfY29udGludWU6dyhcImNvbnRpbnVlXCIpLF9kZWJ1Z2dlcjp3KFwiZGVidWdnZXJcIiksX2RlZmF1bHQ6dyhcImRlZmF1bHRcIixrKSxfZG86dyhcImRvXCIse2lzTG9vcDohMCxiZWZvcmVFeHByOiEwfSksX2Vsc2U6dyhcImVsc2VcIixrKSxfZmluYWxseTp3KFwiZmluYWxseVwiKSxfZm9yOncoXCJmb3JcIix7aXNMb29wOiEwfSksX2Z1bmN0aW9uOncoXCJmdW5jdGlvblwiLE4pLF9pZjp3KFwiaWZcIiksX3JldHVybjp3KFwicmV0dXJuXCIsayksX3N3aXRjaDp3KFwic3dpdGNoXCIpLF90aHJvdzp3KFwidGhyb3dcIixrKSxfdHJ5OncoXCJ0cnlcIiksX3Zhcjp3KFwidmFyXCIpLF9jb25zdDp3KFwiY29uc3RcIiksX3doaWxlOncoXCJ3aGlsZVwiLHtpc0xvb3A6ITB9KSxfd2l0aDp3KFwid2l0aFwiKSxfbmV3OncoXCJuZXdcIix7YmVmb3JlRXhwcjohMCxzdGFydHNFeHByOiEwfSksX3RoaXM6dyhcInRoaXNcIixOKSxfc3VwZXI6dyhcInN1cGVyXCIsTiksX2NsYXNzOncoXCJjbGFzc1wiLE4pLF9leHRlbmRzOncoXCJleHRlbmRzXCIsayksX2V4cG9ydDp3KFwiZXhwb3J0XCIpLF9pbXBvcnQ6dyhcImltcG9ydFwiLE4pLF9udWxsOncoXCJudWxsXCIsTiksX3RydWU6dyhcInRydWVcIixOKSxfZmFsc2U6dyhcImZhbHNlXCIsTiksX2luOncoXCJpblwiLHtiZWZvcmVFeHByOiEwLGJpbm9wOjd9KSxfaW5zdGFuY2VvZjp3KFwiaW5zdGFuY2VvZlwiLHtiZWZvcmVFeHByOiEwLGJpbm9wOjd9KSxfdHlwZW9mOncoXCJ0eXBlb2ZcIix7YmVmb3JlRXhwcjohMCxwcmVmaXg6ITAsc3RhcnRzRXhwcjohMH0pLF92b2lkOncoXCJ2b2lkXCIse2JlZm9yZUV4cHI6ITAscHJlZml4OiEwLHN0YXJ0c0V4cHI6ITB9KSxfZGVsZXRlOncoXCJkZWxldGVcIix7YmVmb3JlRXhwcjohMCxwcmVmaXg6ITAsc3RhcnRzRXhwcjohMH0pfSxqPS9cXHJcXG4/fFxcbnxcXHUyMDI4fFxcdTIwMjkvLGx0PW5ldyBSZWdFeHAoai5zb3VyY2UsXCJnXCIpO2Z1bmN0aW9uIHRlKGUpe3JldHVybiBlPT09MTB8fGU9PT0xM3x8ZT09PTgyMzJ8fGU9PT04MjMzfWZ1bmN0aW9uIGZ0KGUsdCxpKXtpPT09dm9pZCAwJiYoaT1lLmxlbmd0aCk7Zm9yKHZhciBzPXQ7czxpO3MrKyl7dmFyIG49ZS5jaGFyQ29kZUF0KHMpO2lmKHRlKG4pKXJldHVybiBzPGktMSYmbj09PTEzJiZlLmNoYXJDb2RlQXQocysxKT09PTEwP3MrMjpzKzF9cmV0dXJuLTF9dmFyIEtlPS9bXFx1MTY4MFxcdTIwMDAtXFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMFxcdWZlZmZdLyxVPS8oPzpcXHN8XFwvXFwvLip8XFwvXFwqW15dKj9cXCpcXC8pKi9nLGR0PU9iamVjdC5wcm90b3R5cGUsU2k9ZHQuaGFzT3duUHJvcGVydHksX2k9ZHQudG9TdHJpbmcsbGU9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gU2kuY2FsbChlLHQpfSxtdD1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4gX2kuY2FsbChlKT09PVwiW29iamVjdCBBcnJheV1cIn07ZnVuY3Rpb24gJChlKXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIitlLnJlcGxhY2UoLyAvZyxcInxcIikrXCIpJFwiKX1mdW5jdGlvbiBaKGUpe3JldHVybiBlPD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOihlLT02NTUzNixTdHJpbmcuZnJvbUNoYXJDb2RlKChlPj4xMCkrNTUyOTYsKGUmMTAyMykrNTYzMjApKX12YXIgQ2k9Lyg/OltcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdKS8sYWU9ZnVuY3Rpb24odCxpKXt0aGlzLmxpbmU9dCx0aGlzLmNvbHVtbj1pfTthZS5wcm90b3R5cGUub2Zmc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYWUodGhpcy5saW5lLHRoaXMuY29sdW1uK3QpfTt2YXIgZmU9ZnVuY3Rpb24odCxpLHMpe3RoaXMuc3RhcnQ9aSx0aGlzLmVuZD1zLHQuc291cmNlRmlsZSE9PW51bGwmJih0aGlzLnNvdXJjZT10LnNvdXJjZUZpbGUpfTtmdW5jdGlvbiBKZShlLHQpe2Zvcih2YXIgaT0xLHM9MDs7KXt2YXIgbj1mdChlLHMsdCk7aWYobjwwKXJldHVybiBuZXcgYWUoaSx0LXMpOysraSxzPW59fXZhciB3ZT17ZWNtYVZlcnNpb246bnVsbCxzb3VyY2VUeXBlOlwic2NyaXB0XCIsb25JbnNlcnRlZFNlbWljb2xvbjpudWxsLG9uVHJhaWxpbmdDb21tYTpudWxsLGFsbG93UmVzZXJ2ZWQ6bnVsbCxhbGxvd1JldHVybk91dHNpZGVGdW5jdGlvbjohMSxhbGxvd0ltcG9ydEV4cG9ydEV2ZXJ5d2hlcmU6ITEsYWxsb3dBd2FpdE91dHNpZGVGdW5jdGlvbjpudWxsLGFsbG93U3VwZXJPdXRzaWRlTWV0aG9kOm51bGwsYWxsb3dIYXNoQmFuZzohMSxjaGVja1ByaXZhdGVGaWVsZHM6ITAsbG9jYXRpb25zOiExLG9uVG9rZW46bnVsbCxvbkNvbW1lbnQ6bnVsbCxyYW5nZXM6ITEscHJvZ3JhbTpudWxsLHNvdXJjZUZpbGU6bnVsbCxkaXJlY3RTb3VyY2VGaWxlOm51bGwscHJlc2VydmVQYXJlbnM6ITF9LHh0PSExO2Z1bmN0aW9uIGtpKGUpe3ZhciB0PXt9O2Zvcih2YXIgaSBpbiB3ZSl0W2ldPWUmJmxlKGUsaSk/ZVtpXTp3ZVtpXTtpZih0LmVjbWFWZXJzaW9uPT09XCJsYXRlc3RcIj90LmVjbWFWZXJzaW9uPTFlODp0LmVjbWFWZXJzaW9uPT1udWxsPygheHQmJnR5cGVvZiBjb25zb2xlPT1cIm9iamVjdFwiJiZjb25zb2xlLndhcm4mJih4dD0hMCxjb25zb2xlLndhcm4oYFNpbmNlIEFjb3JuIDguMC4wLCBvcHRpb25zLmVjbWFWZXJzaW9uIGlzIHJlcXVpcmVkLlxuRGVmYXVsdGluZyB0byAyMDIwLCBidXQgdGhpcyB3aWxsIHN0b3Agd29ya2luZyBpbiB0aGUgZnV0dXJlLmApKSx0LmVjbWFWZXJzaW9uPTExKTp0LmVjbWFWZXJzaW9uPj0yMDE1JiYodC5lY21hVmVyc2lvbi09MjAwOSksdC5hbGxvd1Jlc2VydmVkPT1udWxsJiYodC5hbGxvd1Jlc2VydmVkPXQuZWNtYVZlcnNpb248NSksKCFlfHxlLmFsbG93SGFzaEJhbmc9PW51bGwpJiYodC5hbGxvd0hhc2hCYW5nPXQuZWNtYVZlcnNpb24+PTE0KSxtdCh0Lm9uVG9rZW4pKXt2YXIgcz10Lm9uVG9rZW47dC5vblRva2VuPWZ1bmN0aW9uKG4pe3JldHVybiBzLnB1c2gobil9fXJldHVybiBtdCh0Lm9uQ29tbWVudCkmJih0Lm9uQ29tbWVudD1UaSh0LHQub25Db21tZW50KSksdH1mdW5jdGlvbiBUaShlLHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixvLHAsbSl7dmFyIGc9e3R5cGU6aT9cIkJsb2NrXCI6XCJMaW5lXCIsdmFsdWU6cyxzdGFydDpuLGVuZDpvfTtlLmxvY2F0aW9ucyYmKGcubG9jPW5ldyBmZSh0aGlzLHAsbSkpLGUucmFuZ2VzJiYoZy5yYW5nZT1bbixvXSksdC5wdXNoKGcpfX12YXIgZGU9MSxuZT0yLEdlPTQseXQ9OCxndD0xNix2dD0zMixXZT02NCxidD0xMjgsbWU9MjU2LFhlPWRlfG5lfG1lO2Z1bmN0aW9uIHplKGUsdCl7cmV0dXJuIG5lfChlP0dlOjApfCh0P3l0OjApfXZhciBFZT0wLEhlPTEsUT0yLFN0PTMsX3Q9NCxDdD01LFY9ZnVuY3Rpb24odCxpLHMpe3RoaXMub3B0aW9ucz10PWtpKHQpLHRoaXMuc291cmNlRmlsZT10LnNvdXJjZUZpbGUsdGhpcy5rZXl3b3Jkcz0kKF9bdC5lY21hVmVyc2lvbj49Nj82OnQuc291cmNlVHlwZT09PVwibW9kdWxlXCI/XCI1bW9kdWxlXCI6NV0pO3ZhciBuPVwiXCI7dC5hbGxvd1Jlc2VydmVkIT09ITAmJihuPWZbdC5lY21hVmVyc2lvbj49Nj82OnQuZWNtYVZlcnNpb249PT01PzU6M10sdC5zb3VyY2VUeXBlPT09XCJtb2R1bGVcIiYmKG4rPVwiIGF3YWl0XCIpKSx0aGlzLnJlc2VydmVkV29yZHM9JChuKTt2YXIgbz0obj9uK1wiIFwiOlwiXCIpK2Yuc3RyaWN0O3RoaXMucmVzZXJ2ZWRXb3Jkc1N0cmljdD0kKG8pLHRoaXMucmVzZXJ2ZWRXb3Jkc1N0cmljdEJpbmQ9JChvK1wiIFwiK2Yuc3RyaWN0QmluZCksdGhpcy5pbnB1dD1TdHJpbmcoaSksdGhpcy5jb250YWluc0VzYz0hMSxzPyh0aGlzLnBvcz1zLHRoaXMubGluZVN0YXJ0PXRoaXMuaW5wdXQubGFzdEluZGV4T2YoYFxuYCxzLTEpKzEsdGhpcy5jdXJMaW5lPXRoaXMuaW5wdXQuc2xpY2UoMCx0aGlzLmxpbmVTdGFydCkuc3BsaXQoaikubGVuZ3RoKToodGhpcy5wb3M9dGhpcy5saW5lU3RhcnQ9MCx0aGlzLmN1ckxpbmU9MSksdGhpcy50eXBlPXIuZW9mLHRoaXMudmFsdWU9bnVsbCx0aGlzLnN0YXJ0PXRoaXMuZW5kPXRoaXMucG9zLHRoaXMuc3RhcnRMb2M9dGhpcy5lbmRMb2M9dGhpcy5jdXJQb3NpdGlvbigpLHRoaXMubGFzdFRva0VuZExvYz10aGlzLmxhc3RUb2tTdGFydExvYz1udWxsLHRoaXMubGFzdFRva1N0YXJ0PXRoaXMubGFzdFRva0VuZD10aGlzLnBvcyx0aGlzLmNvbnRleHQ9dGhpcy5pbml0aWFsQ29udGV4dCgpLHRoaXMuZXhwckFsbG93ZWQ9ITAsdGhpcy5pbk1vZHVsZT10LnNvdXJjZVR5cGU9PT1cIm1vZHVsZVwiLHRoaXMuc3RyaWN0PXRoaXMuaW5Nb2R1bGV8fHRoaXMuc3RyaWN0RGlyZWN0aXZlKHRoaXMucG9zKSx0aGlzLnBvdGVudGlhbEFycm93QXQ9LTEsdGhpcy5wb3RlbnRpYWxBcnJvd0luRm9yQXdhaXQ9ITEsdGhpcy55aWVsZFBvcz10aGlzLmF3YWl0UG9zPXRoaXMuYXdhaXRJZGVudFBvcz0wLHRoaXMubGFiZWxzPVtdLHRoaXMudW5kZWZpbmVkRXhwb3J0cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMucG9zPT09MCYmdC5hbGxvd0hhc2hCYW5nJiZ0aGlzLmlucHV0LnNsaWNlKDAsMik9PT1cIiMhXCImJnRoaXMuc2tpcExpbmVDb21tZW50KDIpLHRoaXMuc2NvcGVTdGFjaz1bXSx0aGlzLmVudGVyU2NvcGUoZGUpLHRoaXMucmVnZXhwU3RhdGU9bnVsbCx0aGlzLnByaXZhdGVOYW1lU3RhY2s9W119LFc9e2luRnVuY3Rpb246e2NvbmZpZ3VyYWJsZTohMH0saW5HZW5lcmF0b3I6e2NvbmZpZ3VyYWJsZTohMH0saW5Bc3luYzp7Y29uZmlndXJhYmxlOiEwfSxjYW5Bd2FpdDp7Y29uZmlndXJhYmxlOiEwfSxhbGxvd1N1cGVyOntjb25maWd1cmFibGU6ITB9LGFsbG93RGlyZWN0U3VwZXI6e2NvbmZpZ3VyYWJsZTohMH0sdHJlYXRGdW5jdGlvbnNBc1Zhcjp7Y29uZmlndXJhYmxlOiEwfSxhbGxvd05ld0RvdFRhcmdldDp7Y29uZmlndXJhYmxlOiEwfSxpbkNsYXNzU3RhdGljQmxvY2s6e2NvbmZpZ3VyYWJsZTohMH19O1YucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnByb2dyYW18fHRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dFRva2VuKCksdGhpcy5wYXJzZVRvcExldmVsKHQpfSxXLmluRnVuY3Rpb24uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuY3VycmVudFZhclNjb3BlKCkuZmxhZ3MmbmUpPjB9LFcuaW5HZW5lcmF0b3IuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuY3VycmVudFZhclNjb3BlKCkuZmxhZ3MmeXQpPjAmJiF0aGlzLmN1cnJlbnRWYXJTY29wZSgpLmluQ2xhc3NGaWVsZEluaXR9LFcuaW5Bc3luYy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5jdXJyZW50VmFyU2NvcGUoKS5mbGFncyZHZSk+MCYmIXRoaXMuY3VycmVudFZhclNjb3BlKCkuaW5DbGFzc0ZpZWxkSW5pdH0sVy5jYW5Bd2FpdC5nZXQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zY29wZVN0YWNrLmxlbmd0aC0xO2U+PTA7ZS0tKXt2YXIgdD10aGlzLnNjb3BlU3RhY2tbZV07aWYodC5pbkNsYXNzRmllbGRJbml0fHx0LmZsYWdzJm1lKXJldHVybiExO2lmKHQuZmxhZ3MmbmUpcmV0dXJuKHQuZmxhZ3MmR2UpPjB9cmV0dXJuIHRoaXMuaW5Nb2R1bGUmJnRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTN8fHRoaXMub3B0aW9ucy5hbGxvd0F3YWl0T3V0c2lkZUZ1bmN0aW9ufSxXLmFsbG93U3VwZXIuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJyZW50VGhpc1Njb3BlKCksdD1lLmZsYWdzLGk9ZS5pbkNsYXNzRmllbGRJbml0O3JldHVybih0JldlKT4wfHxpfHx0aGlzLm9wdGlvbnMuYWxsb3dTdXBlck91dHNpZGVNZXRob2R9LFcuYWxsb3dEaXJlY3RTdXBlci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5jdXJyZW50VGhpc1Njb3BlKCkuZmxhZ3MmYnQpPjB9LFcudHJlYXRGdW5jdGlvbnNBc1Zhci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmVhdEZ1bmN0aW9uc0FzVmFySW5TY29wZSh0aGlzLmN1cnJlbnRTY29wZSgpKX0sVy5hbGxvd05ld0RvdFRhcmdldC5nZXQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmN1cnJlbnRUaGlzU2NvcGUoKSx0PWUuZmxhZ3MsaT1lLmluQ2xhc3NGaWVsZEluaXQ7cmV0dXJuKHQmKG5lfG1lKSk+MHx8aX0sVy5pbkNsYXNzU3RhdGljQmxvY2suZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuY3VycmVudFZhclNjb3BlKCkuZmxhZ3MmbWUpPjB9LFYuZXh0ZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLGk9YXJndW1lbnRzLmxlbmd0aDtpLS07KXRbaV09YXJndW1lbnRzW2ldO2Zvcih2YXIgcz10aGlzLG49MDtuPHQubGVuZ3RoO24rKylzPXRbbl0ocyk7cmV0dXJuIHN9LFYucGFyc2U9ZnVuY3Rpb24odCxpKXtyZXR1cm4gbmV3IHRoaXMoaSx0KS5wYXJzZSgpfSxWLnBhcnNlRXhwcmVzc2lvbkF0PWZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1uZXcgdGhpcyhzLHQsaSk7cmV0dXJuIG4ubmV4dFRva2VuKCksbi5wYXJzZUV4cHJlc3Npb24oKX0sVi50b2tlbml6ZXI9ZnVuY3Rpb24odCxpKXtyZXR1cm4gbmV3IHRoaXMoaSx0KX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVi5wcm90b3R5cGUsVyk7dmFyIE89Vi5wcm90b3R5cGUsd2k9L14oPzonKCg/OlxcXFwufFteJ1xcXFxdKSo/KSd8XCIoKD86XFxcXC58W15cIlxcXFxdKSo/KVwiKS87Ty5zdHJpY3REaXJlY3RpdmU9ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPDUpcmV0dXJuITE7Zm9yKDs7KXtVLmxhc3RJbmRleD1lLGUrPVUuZXhlYyh0aGlzLmlucHV0KVswXS5sZW5ndGg7dmFyIHQ9d2kuZXhlYyh0aGlzLmlucHV0LnNsaWNlKGUpKTtpZighdClyZXR1cm4hMTtpZigodFsxXXx8dFsyXSk9PT1cInVzZSBzdHJpY3RcIil7VS5sYXN0SW5kZXg9ZSt0WzBdLmxlbmd0aDt2YXIgaT1VLmV4ZWModGhpcy5pbnB1dCkscz1pLmluZGV4K2lbMF0ubGVuZ3RoLG49dGhpcy5pbnB1dC5jaGFyQXQocyk7cmV0dXJuIG49PT1cIjtcInx8bj09PVwifVwifHxqLnRlc3QoaVswXSkmJiEoL1soYC5bK1xcLS8qJTw+PSw/XiZdLy50ZXN0KG4pfHxuPT09XCIhXCImJnRoaXMuaW5wdXQuY2hhckF0KHMrMSk9PT1cIj1cIil9ZSs9dFswXS5sZW5ndGgsVS5sYXN0SW5kZXg9ZSxlKz1VLmV4ZWModGhpcy5pbnB1dClbMF0ubGVuZ3RoLHRoaXMuaW5wdXRbZV09PT1cIjtcIiYmZSsrfX0sTy5lYXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHlwZT09PWU/KHRoaXMubmV4dCgpLCEwKTohMX0sTy5pc0NvbnRleHR1YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHlwZT09PXIubmFtZSYmdGhpcy52YWx1ZT09PWUmJiF0aGlzLmNvbnRhaW5zRXNjfSxPLmVhdENvbnRleHR1YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXNDb250ZXh0dWFsKGUpPyh0aGlzLm5leHQoKSwhMCk6ITF9LE8uZXhwZWN0Q29udGV4dHVhbD1mdW5jdGlvbihlKXt0aGlzLmVhdENvbnRleHR1YWwoZSl8fHRoaXMudW5leHBlY3RlZCgpfSxPLmNhbkluc2VydFNlbWljb2xvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGU9PT1yLmVvZnx8dGhpcy50eXBlPT09ci5icmFjZVJ8fGoudGVzdCh0aGlzLmlucHV0LnNsaWNlKHRoaXMubGFzdFRva0VuZCx0aGlzLnN0YXJ0KSl9LE8uaW5zZXJ0U2VtaWNvbG9uPWZ1bmN0aW9uKCl7aWYodGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKSlyZXR1cm4gdGhpcy5vcHRpb25zLm9uSW5zZXJ0ZWRTZW1pY29sb24mJnRoaXMub3B0aW9ucy5vbkluc2VydGVkU2VtaWNvbG9uKHRoaXMubGFzdFRva0VuZCx0aGlzLmxhc3RUb2tFbmRMb2MpLCEwfSxPLnNlbWljb2xvbj1mdW5jdGlvbigpeyF0aGlzLmVhdChyLnNlbWkpJiYhdGhpcy5pbnNlcnRTZW1pY29sb24oKSYmdGhpcy51bmV4cGVjdGVkKCl9LE8uYWZ0ZXJUcmFpbGluZ0NvbW1hPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy50eXBlPT09ZSlyZXR1cm4gdGhpcy5vcHRpb25zLm9uVHJhaWxpbmdDb21tYSYmdGhpcy5vcHRpb25zLm9uVHJhaWxpbmdDb21tYSh0aGlzLmxhc3RUb2tTdGFydCx0aGlzLmxhc3RUb2tTdGFydExvYyksdHx8dGhpcy5uZXh0KCksITB9LE8uZXhwZWN0PWZ1bmN0aW9uKGUpe3RoaXMuZWF0KGUpfHx0aGlzLnVuZXhwZWN0ZWQoKX0sTy51bmV4cGVjdGVkPWZ1bmN0aW9uKGUpe3RoaXMucmFpc2UoZT8/dGhpcy5zdGFydCxcIlVuZXhwZWN0ZWQgdG9rZW5cIil9O3ZhciBBZT1mdW5jdGlvbigpe3RoaXMuc2hvcnRoYW5kQXNzaWduPXRoaXMudHJhaWxpbmdDb21tYT10aGlzLnBhcmVudGhlc2l6ZWRBc3NpZ249dGhpcy5wYXJlbnRoZXNpemVkQmluZD10aGlzLmRvdWJsZVByb3RvPS0xfTtPLmNoZWNrUGF0dGVybkVycm9ycz1mdW5jdGlvbihlLHQpe2lmKGUpe2UudHJhaWxpbmdDb21tYT4tMSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGUudHJhaWxpbmdDb21tYSxcIkNvbW1hIGlzIG5vdCBwZXJtaXR0ZWQgYWZ0ZXIgdGhlIHJlc3QgZWxlbWVudFwiKTt2YXIgaT10P2UucGFyZW50aGVzaXplZEFzc2lnbjplLnBhcmVudGhlc2l6ZWRCaW5kO2k+LTEmJnRoaXMucmFpc2VSZWNvdmVyYWJsZShpLHQ/XCJBc3NpZ25pbmcgdG8gcnZhbHVlXCI6XCJQYXJlbnRoZXNpemVkIHBhdHRlcm5cIil9fSxPLmNoZWNrRXhwcmVzc2lvbkVycm9ycz1mdW5jdGlvbihlLHQpe2lmKCFlKXJldHVybiExO3ZhciBpPWUuc2hvcnRoYW5kQXNzaWduLHM9ZS5kb3VibGVQcm90bztpZighdClyZXR1cm4gaT49MHx8cz49MDtpPj0wJiZ0aGlzLnJhaXNlKGksXCJTaG9ydGhhbmQgcHJvcGVydHkgYXNzaWdubWVudHMgYXJlIHZhbGlkIG9ubHkgaW4gZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuc1wiKSxzPj0wJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUocyxcIlJlZGVmaW5pdGlvbiBvZiBfX3Byb3RvX18gcHJvcGVydHlcIil9LE8uY2hlY2tZaWVsZEF3YWl0SW5EZWZhdWx0UGFyYW1zPWZ1bmN0aW9uKCl7dGhpcy55aWVsZFBvcyYmKCF0aGlzLmF3YWl0UG9zfHx0aGlzLnlpZWxkUG9zPHRoaXMuYXdhaXRQb3MpJiZ0aGlzLnJhaXNlKHRoaXMueWllbGRQb3MsXCJZaWVsZCBleHByZXNzaW9uIGNhbm5vdCBiZSBhIGRlZmF1bHQgdmFsdWVcIiksdGhpcy5hd2FpdFBvcyYmdGhpcy5yYWlzZSh0aGlzLmF3YWl0UG9zLFwiQXdhaXQgZXhwcmVzc2lvbiBjYW5ub3QgYmUgYSBkZWZhdWx0IHZhbHVlXCIpfSxPLmlzU2ltcGxlQXNzaWduVGFyZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCI/dGhpcy5pc1NpbXBsZUFzc2lnblRhcmdldChlLmV4cHJlc3Npb24pOmUudHlwZT09PVwiSWRlbnRpZmllclwifHxlLnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIn07dmFyIFM9Vi5wcm90b3R5cGU7Uy5wYXJzZVRvcExldmVsPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGUuYm9keXx8KGUuYm9keT1bXSk7dGhpcy50eXBlIT09ci5lb2Y7KXt2YXIgaT10aGlzLnBhcnNlU3RhdGVtZW50KG51bGwsITAsdCk7ZS5ib2R5LnB1c2goaSl9aWYodGhpcy5pbk1vZHVsZSlmb3IodmFyIHM9MCxuPU9iamVjdC5rZXlzKHRoaXMudW5kZWZpbmVkRXhwb3J0cyk7czxuLmxlbmd0aDtzKz0xKXt2YXIgbz1uW3NdO3RoaXMucmFpc2VSZWNvdmVyYWJsZSh0aGlzLnVuZGVmaW5lZEV4cG9ydHNbb10uc3RhcnQsXCJFeHBvcnQgJ1wiK28rXCInIGlzIG5vdCBkZWZpbmVkXCIpfXJldHVybiB0aGlzLmFkYXB0RGlyZWN0aXZlUHJvbG9ndWUoZS5ib2R5KSx0aGlzLm5leHQoKSxlLnNvdXJjZVR5cGU9dGhpcy5vcHRpb25zLnNvdXJjZVR5cGUsdGhpcy5maW5pc2hOb2RlKGUsXCJQcm9ncmFtXCIpfTt2YXIgUWU9e2tpbmQ6XCJsb29wXCJ9LEVpPXtraW5kOlwic3dpdGNoXCJ9O1MuaXNMZXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPDZ8fCF0aGlzLmlzQ29udGV4dHVhbChcImxldFwiKSlyZXR1cm4hMTtVLmxhc3RJbmRleD10aGlzLnBvczt2YXIgdD1VLmV4ZWModGhpcy5pbnB1dCksaT10aGlzLnBvcyt0WzBdLmxlbmd0aCxzPXRoaXMuaW5wdXQuY2hhckNvZGVBdChpKTtpZihzPT09OTF8fHM9PT05MilyZXR1cm4hMDtpZihlKXJldHVybiExO2lmKHM9PT0xMjN8fHM+NTUyOTUmJnM8NTYzMjApcmV0dXJuITA7aWYoRihzLCEwKSl7Zm9yKHZhciBuPWkrMTtkKHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KG4pLCEwKTspKytuO2lmKHM9PT05Mnx8cz41NTI5NSYmczw1NjMyMClyZXR1cm4hMDt2YXIgbz10aGlzLmlucHV0LnNsaWNlKGksbik7aWYoIUwudGVzdChvKSlyZXR1cm4hMH1yZXR1cm4hMX0sUy5pc0FzeW5jRnVuY3Rpb249ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb248OHx8IXRoaXMuaXNDb250ZXh0dWFsKFwiYXN5bmNcIikpcmV0dXJuITE7VS5sYXN0SW5kZXg9dGhpcy5wb3M7dmFyIGU9VS5leGVjKHRoaXMuaW5wdXQpLHQ9dGhpcy5wb3MrZVswXS5sZW5ndGgsaTtyZXR1cm4hai50ZXN0KHRoaXMuaW5wdXQuc2xpY2UodGhpcy5wb3MsdCkpJiZ0aGlzLmlucHV0LnNsaWNlKHQsdCs4KT09PVwiZnVuY3Rpb25cIiYmKHQrOD09PXRoaXMuaW5wdXQubGVuZ3RofHwhKGQoaT10aGlzLmlucHV0LmNoYXJDb2RlQXQodCs4KSl8fGk+NTUyOTUmJmk8NTYzMjApKX0sUy5wYXJzZVN0YXRlbWVudD1mdW5jdGlvbihlLHQsaSl7dmFyIHM9dGhpcy50eXBlLG49dGhpcy5zdGFydE5vZGUoKSxvO3N3aXRjaCh0aGlzLmlzTGV0KGUpJiYocz1yLl92YXIsbz1cImxldFwiKSxzKXtjYXNlIHIuX2JyZWFrOmNhc2Ugci5fY29udGludWU6cmV0dXJuIHRoaXMucGFyc2VCcmVha0NvbnRpbnVlU3RhdGVtZW50KG4scy5rZXl3b3JkKTtjYXNlIHIuX2RlYnVnZ2VyOnJldHVybiB0aGlzLnBhcnNlRGVidWdnZXJTdGF0ZW1lbnQobik7Y2FzZSByLl9kbzpyZXR1cm4gdGhpcy5wYXJzZURvU3RhdGVtZW50KG4pO2Nhc2Ugci5fZm9yOnJldHVybiB0aGlzLnBhcnNlRm9yU3RhdGVtZW50KG4pO2Nhc2Ugci5fZnVuY3Rpb246cmV0dXJuIGUmJih0aGlzLnN0cmljdHx8ZSE9PVwiaWZcIiYmZSE9PVwibGFiZWxcIikmJnRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49NiYmdGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZUZ1bmN0aW9uU3RhdGVtZW50KG4sITEsIWUpO2Nhc2Ugci5fY2xhc3M6cmV0dXJuIGUmJnRoaXMudW5leHBlY3RlZCgpLHRoaXMucGFyc2VDbGFzcyhuLCEwKTtjYXNlIHIuX2lmOnJldHVybiB0aGlzLnBhcnNlSWZTdGF0ZW1lbnQobik7Y2FzZSByLl9yZXR1cm46cmV0dXJuIHRoaXMucGFyc2VSZXR1cm5TdGF0ZW1lbnQobik7Y2FzZSByLl9zd2l0Y2g6cmV0dXJuIHRoaXMucGFyc2VTd2l0Y2hTdGF0ZW1lbnQobik7Y2FzZSByLl90aHJvdzpyZXR1cm4gdGhpcy5wYXJzZVRocm93U3RhdGVtZW50KG4pO2Nhc2Ugci5fdHJ5OnJldHVybiB0aGlzLnBhcnNlVHJ5U3RhdGVtZW50KG4pO2Nhc2Ugci5fY29uc3Q6Y2FzZSByLl92YXI6cmV0dXJuIG89b3x8dGhpcy52YWx1ZSxlJiZvIT09XCJ2YXJcIiYmdGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZVZhclN0YXRlbWVudChuLG8pO2Nhc2Ugci5fd2hpbGU6cmV0dXJuIHRoaXMucGFyc2VXaGlsZVN0YXRlbWVudChuKTtjYXNlIHIuX3dpdGg6cmV0dXJuIHRoaXMucGFyc2VXaXRoU3RhdGVtZW50KG4pO2Nhc2Ugci5icmFjZUw6cmV0dXJuIHRoaXMucGFyc2VCbG9jayghMCxuKTtjYXNlIHIuc2VtaTpyZXR1cm4gdGhpcy5wYXJzZUVtcHR5U3RhdGVtZW50KG4pO2Nhc2Ugci5fZXhwb3J0OmNhc2Ugci5faW1wb3J0OmlmKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj4xMCYmcz09PXIuX2ltcG9ydCl7VS5sYXN0SW5kZXg9dGhpcy5wb3M7dmFyIHA9VS5leGVjKHRoaXMuaW5wdXQpLG09dGhpcy5wb3MrcFswXS5sZW5ndGgsZz10aGlzLmlucHV0LmNoYXJDb2RlQXQobSk7aWYoZz09PTQwfHxnPT09NDYpcmV0dXJuIHRoaXMucGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KG4sdGhpcy5wYXJzZUV4cHJlc3Npb24oKSl9cmV0dXJuIHRoaXMub3B0aW9ucy5hbGxvd0ltcG9ydEV4cG9ydEV2ZXJ5d2hlcmV8fCh0fHx0aGlzLnJhaXNlKHRoaXMuc3RhcnQsXCInaW1wb3J0JyBhbmQgJ2V4cG9ydCcgbWF5IG9ubHkgYXBwZWFyIGF0IHRoZSB0b3AgbGV2ZWxcIiksdGhpcy5pbk1vZHVsZXx8dGhpcy5yYWlzZSh0aGlzLnN0YXJ0LFwiJ2ltcG9ydCcgYW5kICdleHBvcnQnIG1heSBhcHBlYXIgb25seSB3aXRoICdzb3VyY2VUeXBlOiBtb2R1bGUnXCIpKSxzPT09ci5faW1wb3J0P3RoaXMucGFyc2VJbXBvcnQobik6dGhpcy5wYXJzZUV4cG9ydChuLGkpO2RlZmF1bHQ6aWYodGhpcy5pc0FzeW5jRnVuY3Rpb24oKSlyZXR1cm4gZSYmdGhpcy51bmV4cGVjdGVkKCksdGhpcy5uZXh0KCksdGhpcy5wYXJzZUZ1bmN0aW9uU3RhdGVtZW50KG4sITAsIWUpO3ZhciBUPXRoaXMudmFsdWUsRT10aGlzLnBhcnNlRXhwcmVzc2lvbigpO3JldHVybiBzPT09ci5uYW1lJiZFLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmdGhpcy5lYXQoci5jb2xvbik/dGhpcy5wYXJzZUxhYmVsZWRTdGF0ZW1lbnQobixULEUsZSk6dGhpcy5wYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQobixFKX19LFMucGFyc2VCcmVha0NvbnRpbnVlU3RhdGVtZW50PWZ1bmN0aW9uKGUsdCl7dmFyIGk9dD09PVwiYnJlYWtcIjt0aGlzLm5leHQoKSx0aGlzLmVhdChyLnNlbWkpfHx0aGlzLmluc2VydFNlbWljb2xvbigpP2UubGFiZWw9bnVsbDp0aGlzLnR5cGUhPT1yLm5hbWU/dGhpcy51bmV4cGVjdGVkKCk6KGUubGFiZWw9dGhpcy5wYXJzZUlkZW50KCksdGhpcy5zZW1pY29sb24oKSk7Zm9yKHZhciBzPTA7czx0aGlzLmxhYmVscy5sZW5ndGg7KytzKXt2YXIgbj10aGlzLmxhYmVsc1tzXTtpZigoZS5sYWJlbD09bnVsbHx8bi5uYW1lPT09ZS5sYWJlbC5uYW1lKSYmKG4ua2luZCE9bnVsbCYmKGl8fG4ua2luZD09PVwibG9vcFwiKXx8ZS5sYWJlbCYmaSkpYnJlYWt9cmV0dXJuIHM9PT10aGlzLmxhYmVscy5sZW5ndGgmJnRoaXMucmFpc2UoZS5zdGFydCxcIlVuc3ludGFjdGljIFwiK3QpLHRoaXMuZmluaXNoTm9kZShlLGk/XCJCcmVha1N0YXRlbWVudFwiOlwiQ29udGludWVTdGF0ZW1lbnRcIil9LFMucGFyc2VEZWJ1Z2dlclN0YXRlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkRlYnVnZ2VyU3RhdGVtZW50XCIpfSxTLnBhcnNlRG9TdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMubGFiZWxzLnB1c2goUWUpLGUuYm9keT10aGlzLnBhcnNlU3RhdGVtZW50KFwiZG9cIiksdGhpcy5sYWJlbHMucG9wKCksdGhpcy5leHBlY3Qoci5fd2hpbGUpLGUudGVzdD10aGlzLnBhcnNlUGFyZW5FeHByZXNzaW9uKCksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02P3RoaXMuZWF0KHIuc2VtaSk6dGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkRvV2hpbGVTdGF0ZW1lbnRcIil9LFMucGFyc2VGb3JTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7dGhpcy5uZXh0KCk7dmFyIHQ9dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiZ0aGlzLmNhbkF3YWl0JiZ0aGlzLmVhdENvbnRleHR1YWwoXCJhd2FpdFwiKT90aGlzLmxhc3RUb2tTdGFydDotMTtpZih0aGlzLmxhYmVscy5wdXNoKFFlKSx0aGlzLmVudGVyU2NvcGUoMCksdGhpcy5leHBlY3Qoci5wYXJlbkwpLHRoaXMudHlwZT09PXIuc2VtaSlyZXR1cm4gdD4tMSYmdGhpcy51bmV4cGVjdGVkKHQpLHRoaXMucGFyc2VGb3IoZSxudWxsKTt2YXIgaT10aGlzLmlzTGV0KCk7aWYodGhpcy50eXBlPT09ci5fdmFyfHx0aGlzLnR5cGU9PT1yLl9jb25zdHx8aSl7dmFyIHM9dGhpcy5zdGFydE5vZGUoKSxuPWk/XCJsZXRcIjp0aGlzLnZhbHVlO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLnBhcnNlVmFyKHMsITAsbiksdGhpcy5maW5pc2hOb2RlKHMsXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIpLCh0aGlzLnR5cGU9PT1yLl9pbnx8dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiZ0aGlzLmlzQ29udGV4dHVhbChcIm9mXCIpKSYmcy5kZWNsYXJhdGlvbnMubGVuZ3RoPT09MT8odGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiYodGhpcy50eXBlPT09ci5faW4/dD4tMSYmdGhpcy51bmV4cGVjdGVkKHQpOmUuYXdhaXQ9dD4tMSksdGhpcy5wYXJzZUZvckluKGUscykpOih0Pi0xJiZ0aGlzLnVuZXhwZWN0ZWQodCksdGhpcy5wYXJzZUZvcihlLHMpKX12YXIgbz10aGlzLmlzQ29udGV4dHVhbChcImxldFwiKSxwPSExLG09bmV3IEFlLGc9dGhpcy5wYXJzZUV4cHJlc3Npb24odD4tMT9cImF3YWl0XCI6ITAsbSk7cmV0dXJuIHRoaXMudHlwZT09PXIuX2lufHwocD10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTYmJnRoaXMuaXNDb250ZXh0dWFsKFwib2ZcIikpPyh0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTkmJih0aGlzLnR5cGU9PT1yLl9pbj90Pi0xJiZ0aGlzLnVuZXhwZWN0ZWQodCk6ZS5hd2FpdD10Pi0xKSxvJiZwJiZ0aGlzLnJhaXNlKGcuc3RhcnQsXCJUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSBmb3Itb2YgbG9vcCBtYXkgbm90IHN0YXJ0IHdpdGggJ2xldCcuXCIpLHRoaXMudG9Bc3NpZ25hYmxlKGcsITEsbSksdGhpcy5jaGVja0xWYWxQYXR0ZXJuKGcpLHRoaXMucGFyc2VGb3JJbihlLGcpKToodGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMobSwhMCksdD4tMSYmdGhpcy51bmV4cGVjdGVkKHQpLHRoaXMucGFyc2VGb3IoZSxnKSl9LFMucGFyc2VGdW5jdGlvblN0YXRlbWVudD1mdW5jdGlvbihlLHQsaSl7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMucGFyc2VGdW5jdGlvbihlLHhlfChpPzA6WWUpLCExLHQpfSxTLnBhcnNlSWZTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubmV4dCgpLGUudGVzdD10aGlzLnBhcnNlUGFyZW5FeHByZXNzaW9uKCksZS5jb25zZXF1ZW50PXRoaXMucGFyc2VTdGF0ZW1lbnQoXCJpZlwiKSxlLmFsdGVybmF0ZT10aGlzLmVhdChyLl9lbHNlKT90aGlzLnBhcnNlU3RhdGVtZW50KFwiaWZcIik6bnVsbCx0aGlzLmZpbmlzaE5vZGUoZSxcIklmU3RhdGVtZW50XCIpfSxTLnBhcnNlUmV0dXJuU3RhdGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiF0aGlzLmluRnVuY3Rpb24mJiF0aGlzLm9wdGlvbnMuYWxsb3dSZXR1cm5PdXRzaWRlRnVuY3Rpb24mJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIidyZXR1cm4nIG91dHNpZGUgb2YgZnVuY3Rpb25cIiksdGhpcy5uZXh0KCksdGhpcy5lYXQoci5zZW1pKXx8dGhpcy5pbnNlcnRTZW1pY29sb24oKT9lLmFyZ3VtZW50PW51bGw6KGUuYXJndW1lbnQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKSx0aGlzLnNlbWljb2xvbigpKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlJldHVyblN0YXRlbWVudFwiKX0sUy5wYXJzZVN3aXRjaFN0YXRlbWVudD1mdW5jdGlvbihlKXt0aGlzLm5leHQoKSxlLmRpc2NyaW1pbmFudD10aGlzLnBhcnNlUGFyZW5FeHByZXNzaW9uKCksZS5jYXNlcz1bXSx0aGlzLmV4cGVjdChyLmJyYWNlTCksdGhpcy5sYWJlbHMucHVzaChFaSksdGhpcy5lbnRlclNjb3BlKDApO2Zvcih2YXIgdCxpPSExO3RoaXMudHlwZSE9PXIuYnJhY2VSOylpZih0aGlzLnR5cGU9PT1yLl9jYXNlfHx0aGlzLnR5cGU9PT1yLl9kZWZhdWx0KXt2YXIgcz10aGlzLnR5cGU9PT1yLl9jYXNlO3QmJnRoaXMuZmluaXNoTm9kZSh0LFwiU3dpdGNoQ2FzZVwiKSxlLmNhc2VzLnB1c2godD10aGlzLnN0YXJ0Tm9kZSgpKSx0LmNvbnNlcXVlbnQ9W10sdGhpcy5uZXh0KCkscz90LnRlc3Q9dGhpcy5wYXJzZUV4cHJlc3Npb24oKTooaSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMubGFzdFRva1N0YXJ0LFwiTXVsdGlwbGUgZGVmYXVsdCBjbGF1c2VzXCIpLGk9ITAsdC50ZXN0PW51bGwpLHRoaXMuZXhwZWN0KHIuY29sb24pfWVsc2UgdHx8dGhpcy51bmV4cGVjdGVkKCksdC5jb25zZXF1ZW50LnB1c2godGhpcy5wYXJzZVN0YXRlbWVudChudWxsKSk7cmV0dXJuIHRoaXMuZXhpdFNjb3BlKCksdCYmdGhpcy5maW5pc2hOb2RlKHQsXCJTd2l0Y2hDYXNlXCIpLHRoaXMubmV4dCgpLHRoaXMubGFiZWxzLnBvcCgpLHRoaXMuZmluaXNoTm9kZShlLFwiU3dpdGNoU3RhdGVtZW50XCIpfSxTLnBhcnNlVGhyb3dTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubmV4dCgpLGoudGVzdCh0aGlzLmlucHV0LnNsaWNlKHRoaXMubGFzdFRva0VuZCx0aGlzLnN0YXJ0KSkmJnRoaXMucmFpc2UodGhpcy5sYXN0VG9rRW5kLFwiSWxsZWdhbCBuZXdsaW5lIGFmdGVyIHRocm93XCIpLGUuYXJndW1lbnQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiVGhyb3dTdGF0ZW1lbnRcIil9O3ZhciBBaT1bXTtTLnBhcnNlQ2F0Y2hDbGF1c2VQYXJhbT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucGFyc2VCaW5kaW5nQXRvbSgpLHQ9ZS50eXBlPT09XCJJZGVudGlmaWVyXCI7cmV0dXJuIHRoaXMuZW50ZXJTY29wZSh0P3Z0OjApLHRoaXMuY2hlY2tMVmFsUGF0dGVybihlLHQ/X3Q6USksdGhpcy5leHBlY3Qoci5wYXJlblIpLGV9LFMucGFyc2VUcnlTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5uZXh0KCksZS5ibG9jaz10aGlzLnBhcnNlQmxvY2soKSxlLmhhbmRsZXI9bnVsbCx0aGlzLnR5cGU9PT1yLl9jYXRjaCl7dmFyIHQ9dGhpcy5zdGFydE5vZGUoKTt0aGlzLm5leHQoKSx0aGlzLmVhdChyLnBhcmVuTCk/dC5wYXJhbT10aGlzLnBhcnNlQ2F0Y2hDbGF1c2VQYXJhbSgpOih0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb248MTAmJnRoaXMudW5leHBlY3RlZCgpLHQucGFyYW09bnVsbCx0aGlzLmVudGVyU2NvcGUoMCkpLHQuYm9keT10aGlzLnBhcnNlQmxvY2soITEpLHRoaXMuZXhpdFNjb3BlKCksZS5oYW5kbGVyPXRoaXMuZmluaXNoTm9kZSh0LFwiQ2F0Y2hDbGF1c2VcIil9cmV0dXJuIGUuZmluYWxpemVyPXRoaXMuZWF0KHIuX2ZpbmFsbHkpP3RoaXMucGFyc2VCbG9jaygpOm51bGwsIWUuaGFuZGxlciYmIWUuZmluYWxpemVyJiZ0aGlzLnJhaXNlKGUuc3RhcnQsXCJNaXNzaW5nIGNhdGNoIG9yIGZpbmFsbHkgY2xhdXNlXCIpLHRoaXMuZmluaXNoTm9kZShlLFwiVHJ5U3RhdGVtZW50XCIpfSxTLnBhcnNlVmFyU3RhdGVtZW50PWZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5wYXJzZVZhcihlLCExLHQsaSksdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlZhcmlhYmxlRGVjbGFyYXRpb25cIil9LFMucGFyc2VXaGlsZVN0YXRlbWVudD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uZXh0KCksZS50ZXN0PXRoaXMucGFyc2VQYXJlbkV4cHJlc3Npb24oKSx0aGlzLmxhYmVscy5wdXNoKFFlKSxlLmJvZHk9dGhpcy5wYXJzZVN0YXRlbWVudChcIndoaWxlXCIpLHRoaXMubGFiZWxzLnBvcCgpLHRoaXMuZmluaXNoTm9kZShlLFwiV2hpbGVTdGF0ZW1lbnRcIil9LFMucGFyc2VXaXRoU3RhdGVtZW50PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN0cmljdCYmdGhpcy5yYWlzZSh0aGlzLnN0YXJ0LFwiJ3dpdGgnIGluIHN0cmljdCBtb2RlXCIpLHRoaXMubmV4dCgpLGUub2JqZWN0PXRoaXMucGFyc2VQYXJlbkV4cHJlc3Npb24oKSxlLmJvZHk9dGhpcy5wYXJzZVN0YXRlbWVudChcIndpdGhcIiksdGhpcy5maW5pc2hOb2RlKGUsXCJXaXRoU3RhdGVtZW50XCIpfSxTLnBhcnNlRW1wdHlTdGF0ZW1lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShlLFwiRW1wdHlTdGF0ZW1lbnRcIil9LFMucGFyc2VMYWJlbGVkU3RhdGVtZW50PWZ1bmN0aW9uKGUsdCxpLHMpe2Zvcih2YXIgbj0wLG89dGhpcy5sYWJlbHM7bjxvLmxlbmd0aDtuKz0xKXt2YXIgcD1vW25dO3AubmFtZT09PXQmJnRoaXMucmFpc2UoaS5zdGFydCxcIkxhYmVsICdcIit0K1wiJyBpcyBhbHJlYWR5IGRlY2xhcmVkXCIpfWZvcih2YXIgbT10aGlzLnR5cGUuaXNMb29wP1wibG9vcFwiOnRoaXMudHlwZT09PXIuX3N3aXRjaD9cInN3aXRjaFwiOm51bGwsZz10aGlzLmxhYmVscy5sZW5ndGgtMTtnPj0wO2ctLSl7dmFyIFQ9dGhpcy5sYWJlbHNbZ107aWYoVC5zdGF0ZW1lbnRTdGFydD09PWUuc3RhcnQpVC5zdGF0ZW1lbnRTdGFydD10aGlzLnN0YXJ0LFQua2luZD1tO2Vsc2UgYnJlYWt9cmV0dXJuIHRoaXMubGFiZWxzLnB1c2goe25hbWU6dCxraW5kOm0sc3RhdGVtZW50U3RhcnQ6dGhpcy5zdGFydH0pLGUuYm9keT10aGlzLnBhcnNlU3RhdGVtZW50KHM/cy5pbmRleE9mKFwibGFiZWxcIik9PT0tMT9zK1wibGFiZWxcIjpzOlwibGFiZWxcIiksdGhpcy5sYWJlbHMucG9wKCksZS5sYWJlbD1pLHRoaXMuZmluaXNoTm9kZShlLFwiTGFiZWxlZFN0YXRlbWVudFwiKX0sUy5wYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5leHByZXNzaW9uPXQsdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIil9LFMucGFyc2VCbG9jaz1mdW5jdGlvbihlLHQsaSl7Zm9yKGU9PT12b2lkIDAmJihlPSEwKSx0PT09dm9pZCAwJiYodD10aGlzLnN0YXJ0Tm9kZSgpKSx0LmJvZHk9W10sdGhpcy5leHBlY3Qoci5icmFjZUwpLGUmJnRoaXMuZW50ZXJTY29wZSgwKTt0aGlzLnR5cGUhPT1yLmJyYWNlUjspe3ZhciBzPXRoaXMucGFyc2VTdGF0ZW1lbnQobnVsbCk7dC5ib2R5LnB1c2gocyl9cmV0dXJuIGkmJih0aGlzLnN0cmljdD0hMSksdGhpcy5uZXh0KCksZSYmdGhpcy5leGl0U2NvcGUoKSx0aGlzLmZpbmlzaE5vZGUodCxcIkJsb2NrU3RhdGVtZW50XCIpfSxTLnBhcnNlRm9yPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaW5pdD10LHRoaXMuZXhwZWN0KHIuc2VtaSksZS50ZXN0PXRoaXMudHlwZT09PXIuc2VtaT9udWxsOnRoaXMucGFyc2VFeHByZXNzaW9uKCksdGhpcy5leHBlY3Qoci5zZW1pKSxlLnVwZGF0ZT10aGlzLnR5cGU9PT1yLnBhcmVuUj9udWxsOnRoaXMucGFyc2VFeHByZXNzaW9uKCksdGhpcy5leHBlY3Qoci5wYXJlblIpLGUuYm9keT10aGlzLnBhcnNlU3RhdGVtZW50KFwiZm9yXCIpLHRoaXMuZXhpdFNjb3BlKCksdGhpcy5sYWJlbHMucG9wKCksdGhpcy5maW5pc2hOb2RlKGUsXCJGb3JTdGF0ZW1lbnRcIil9LFMucGFyc2VGb3JJbj1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMudHlwZT09PXIuX2luO3JldHVybiB0aGlzLm5leHQoKSx0LnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cIiYmdC5kZWNsYXJhdGlvbnNbMF0uaW5pdCE9bnVsbCYmKCFpfHx0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb248OHx8dGhpcy5zdHJpY3R8fHQua2luZCE9PVwidmFyXCJ8fHQuZGVjbGFyYXRpb25zWzBdLmlkLnR5cGUhPT1cIklkZW50aWZpZXJcIikmJnRoaXMucmFpc2UodC5zdGFydCwoaT9cImZvci1pblwiOlwiZm9yLW9mXCIpK1wiIGxvb3AgdmFyaWFibGUgZGVjbGFyYXRpb24gbWF5IG5vdCBoYXZlIGFuIGluaXRpYWxpemVyXCIpLGUubGVmdD10LGUucmlnaHQ9aT90aGlzLnBhcnNlRXhwcmVzc2lvbigpOnRoaXMucGFyc2VNYXliZUFzc2lnbigpLHRoaXMuZXhwZWN0KHIucGFyZW5SKSxlLmJvZHk9dGhpcy5wYXJzZVN0YXRlbWVudChcImZvclwiKSx0aGlzLmV4aXRTY29wZSgpLHRoaXMubGFiZWxzLnBvcCgpLHRoaXMuZmluaXNoTm9kZShlLGk/XCJGb3JJblN0YXRlbWVudFwiOlwiRm9yT2ZTdGF0ZW1lbnRcIil9LFMucGFyc2VWYXI9ZnVuY3Rpb24oZSx0LGkscyl7Zm9yKGUuZGVjbGFyYXRpb25zPVtdLGUua2luZD1pOzspe3ZhciBuPXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5wYXJzZVZhcklkKG4saSksdGhpcy5lYXQoci5lcSk/bi5pbml0PXRoaXMucGFyc2VNYXliZUFzc2lnbih0KTohcyYmaT09PVwiY29uc3RcIiYmISh0aGlzLnR5cGU9PT1yLl9pbnx8dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiZ0aGlzLmlzQ29udGV4dHVhbChcIm9mXCIpKT90aGlzLnVuZXhwZWN0ZWQoKTohcyYmbi5pZC50eXBlIT09XCJJZGVudGlmaWVyXCImJiEodCYmKHRoaXMudHlwZT09PXIuX2lufHx0aGlzLmlzQ29udGV4dHVhbChcIm9mXCIpKSk/dGhpcy5yYWlzZSh0aGlzLmxhc3RUb2tFbmQsXCJDb21wbGV4IGJpbmRpbmcgcGF0dGVybnMgcmVxdWlyZSBhbiBpbml0aWFsaXphdGlvbiB2YWx1ZVwiKTpuLmluaXQ9bnVsbCxlLmRlY2xhcmF0aW9ucy5wdXNoKHRoaXMuZmluaXNoTm9kZShuLFwiVmFyaWFibGVEZWNsYXJhdG9yXCIpKSwhdGhpcy5lYXQoci5jb21tYSkpYnJlYWt9cmV0dXJuIGV9LFMucGFyc2VWYXJJZD1mdW5jdGlvbihlLHQpe2UuaWQ9dGhpcy5wYXJzZUJpbmRpbmdBdG9tKCksdGhpcy5jaGVja0xWYWxQYXR0ZXJuKGUuaWQsdD09PVwidmFyXCI/SGU6USwhMSl9O3ZhciB4ZT0xLFllPTIsa3Q9NDtTLnBhcnNlRnVuY3Rpb249ZnVuY3Rpb24oZSx0LGkscyxuKXt0aGlzLmluaXRGdW5jdGlvbihlKSwodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05fHx0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTYmJiFzKSYmKHRoaXMudHlwZT09PXIuc3RhciYmdCZZZSYmdGhpcy51bmV4cGVjdGVkKCksZS5nZW5lcmF0b3I9dGhpcy5lYXQoci5zdGFyKSksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiYoZS5hc3luYz0hIXMpLHQmeGUmJihlLmlkPXQma3QmJnRoaXMudHlwZSE9PXIubmFtZT9udWxsOnRoaXMucGFyc2VJZGVudCgpLGUuaWQmJiEodCZZZSkmJnRoaXMuY2hlY2tMVmFsU2ltcGxlKGUuaWQsdGhpcy5zdHJpY3R8fGUuZ2VuZXJhdG9yfHxlLmFzeW5jP3RoaXMudHJlYXRGdW5jdGlvbnNBc1Zhcj9IZTpROlN0KSk7dmFyIG89dGhpcy55aWVsZFBvcyxwPXRoaXMuYXdhaXRQb3MsbT10aGlzLmF3YWl0SWRlbnRQb3M7cmV0dXJuIHRoaXMueWllbGRQb3M9MCx0aGlzLmF3YWl0UG9zPTAsdGhpcy5hd2FpdElkZW50UG9zPTAsdGhpcy5lbnRlclNjb3BlKHplKGUuYXN5bmMsZS5nZW5lcmF0b3IpKSx0JnhlfHwoZS5pZD10aGlzLnR5cGU9PT1yLm5hbWU/dGhpcy5wYXJzZUlkZW50KCk6bnVsbCksdGhpcy5wYXJzZUZ1bmN0aW9uUGFyYW1zKGUpLHRoaXMucGFyc2VGdW5jdGlvbkJvZHkoZSxpLCExLG4pLHRoaXMueWllbGRQb3M9byx0aGlzLmF3YWl0UG9zPXAsdGhpcy5hd2FpdElkZW50UG9zPW0sdGhpcy5maW5pc2hOb2RlKGUsdCZ4ZT9cIkZ1bmN0aW9uRGVjbGFyYXRpb25cIjpcIkZ1bmN0aW9uRXhwcmVzc2lvblwiKX0sUy5wYXJzZUZ1bmN0aW9uUGFyYW1zPWZ1bmN0aW9uKGUpe3RoaXMuZXhwZWN0KHIucGFyZW5MKSxlLnBhcmFtcz10aGlzLnBhcnNlQmluZGluZ0xpc3Qoci5wYXJlblIsITEsdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04KSx0aGlzLmNoZWNrWWllbGRBd2FpdEluRGVmYXVsdFBhcmFtcygpfSxTLnBhcnNlQ2xhc3M9ZnVuY3Rpb24oZSx0KXt0aGlzLm5leHQoKTt2YXIgaT10aGlzLnN0cmljdDt0aGlzLnN0cmljdD0hMCx0aGlzLnBhcnNlQ2xhc3NJZChlLHQpLHRoaXMucGFyc2VDbGFzc1N1cGVyKGUpO3ZhciBzPXRoaXMuZW50ZXJDbGFzc0JvZHkoKSxuPXRoaXMuc3RhcnROb2RlKCksbz0hMTtmb3Iobi5ib2R5PVtdLHRoaXMuZXhwZWN0KHIuYnJhY2VMKTt0aGlzLnR5cGUhPT1yLmJyYWNlUjspe3ZhciBwPXRoaXMucGFyc2VDbGFzc0VsZW1lbnQoZS5zdXBlckNsYXNzIT09bnVsbCk7cCYmKG4uYm9keS5wdXNoKHApLHAudHlwZT09PVwiTWV0aG9kRGVmaW5pdGlvblwiJiZwLmtpbmQ9PT1cImNvbnN0cnVjdG9yXCI/KG8mJnRoaXMucmFpc2VSZWNvdmVyYWJsZShwLnN0YXJ0LFwiRHVwbGljYXRlIGNvbnN0cnVjdG9yIGluIHRoZSBzYW1lIGNsYXNzXCIpLG89ITApOnAua2V5JiZwLmtleS50eXBlPT09XCJQcml2YXRlSWRlbnRpZmllclwiJiZQaShzLHApJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUocC5rZXkuc3RhcnQsXCJJZGVudGlmaWVyICcjXCIrcC5rZXkubmFtZStcIicgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZFwiKSl9cmV0dXJuIHRoaXMuc3RyaWN0PWksdGhpcy5uZXh0KCksZS5ib2R5PXRoaXMuZmluaXNoTm9kZShuLFwiQ2xhc3NCb2R5XCIpLHRoaXMuZXhpdENsYXNzQm9keSgpLHRoaXMuZmluaXNoTm9kZShlLHQ/XCJDbGFzc0RlY2xhcmF0aW9uXCI6XCJDbGFzc0V4cHJlc3Npb25cIil9LFMucGFyc2VDbGFzc0VsZW1lbnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5lYXQoci5zZW1pKSlyZXR1cm4gbnVsbDt2YXIgdD10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24saT10aGlzLnN0YXJ0Tm9kZSgpLHM9XCJcIixuPSExLG89ITEscD1cIm1ldGhvZFwiLG09ITE7aWYodGhpcy5lYXRDb250ZXh0dWFsKFwic3RhdGljXCIpKXtpZih0Pj0xMyYmdGhpcy5lYXQoci5icmFjZUwpKXJldHVybiB0aGlzLnBhcnNlQ2xhc3NTdGF0aWNCbG9jayhpKSxpO3RoaXMuaXNDbGFzc0VsZW1lbnROYW1lU3RhcnQoKXx8dGhpcy50eXBlPT09ci5zdGFyP209ITA6cz1cInN0YXRpY1wifWlmKGkuc3RhdGljPW0sIXMmJnQ+PTgmJnRoaXMuZWF0Q29udGV4dHVhbChcImFzeW5jXCIpJiYoKHRoaXMuaXNDbGFzc0VsZW1lbnROYW1lU3RhcnQoKXx8dGhpcy50eXBlPT09ci5zdGFyKSYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCk/bz0hMDpzPVwiYXN5bmNcIiksIXMmJih0Pj05fHwhbykmJnRoaXMuZWF0KHIuc3RhcikmJihuPSEwKSwhcyYmIW8mJiFuKXt2YXIgZz10aGlzLnZhbHVlOyh0aGlzLmVhdENvbnRleHR1YWwoXCJnZXRcIil8fHRoaXMuZWF0Q29udGV4dHVhbChcInNldFwiKSkmJih0aGlzLmlzQ2xhc3NFbGVtZW50TmFtZVN0YXJ0KCk/cD1nOnM9Zyl9aWYocz8oaS5jb21wdXRlZD0hMSxpLmtleT10aGlzLnN0YXJ0Tm9kZUF0KHRoaXMubGFzdFRva1N0YXJ0LHRoaXMubGFzdFRva1N0YXJ0TG9jKSxpLmtleS5uYW1lPXMsdGhpcy5maW5pc2hOb2RlKGkua2V5LFwiSWRlbnRpZmllclwiKSk6dGhpcy5wYXJzZUNsYXNzRWxlbWVudE5hbWUoaSksdDwxM3x8dGhpcy50eXBlPT09ci5wYXJlbkx8fHAhPT1cIm1ldGhvZFwifHxufHxvKXt2YXIgVD0haS5zdGF0aWMmJlBlKGksXCJjb25zdHJ1Y3RvclwiKSxFPVQmJmU7VCYmcCE9PVwibWV0aG9kXCImJnRoaXMucmFpc2UoaS5rZXkuc3RhcnQsXCJDb25zdHJ1Y3RvciBjYW4ndCBoYXZlIGdldC9zZXQgbW9kaWZpZXJcIiksaS5raW5kPVQ/XCJjb25zdHJ1Y3RvclwiOnAsdGhpcy5wYXJzZUNsYXNzTWV0aG9kKGksbixvLEUpfWVsc2UgdGhpcy5wYXJzZUNsYXNzRmllbGQoaSk7cmV0dXJuIGl9LFMuaXNDbGFzc0VsZW1lbnROYW1lU3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlPT09ci5uYW1lfHx0aGlzLnR5cGU9PT1yLnByaXZhdGVJZHx8dGhpcy50eXBlPT09ci5udW18fHRoaXMudHlwZT09PXIuc3RyaW5nfHx0aGlzLnR5cGU9PT1yLmJyYWNrZXRMfHx0aGlzLnR5cGUua2V5d29yZH0sUy5wYXJzZUNsYXNzRWxlbWVudE5hbWU9ZnVuY3Rpb24oZSl7dGhpcy50eXBlPT09ci5wcml2YXRlSWQ/KHRoaXMudmFsdWU9PT1cImNvbnN0cnVjdG9yXCImJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIkNsYXNzZXMgY2FuJ3QgaGF2ZSBhbiBlbGVtZW50IG5hbWVkICcjY29uc3RydWN0b3InXCIpLGUuY29tcHV0ZWQ9ITEsZS5rZXk9dGhpcy5wYXJzZVByaXZhdGVJZGVudCgpKTp0aGlzLnBhcnNlUHJvcGVydHlOYW1lKGUpfSxTLnBhcnNlQ2xhc3NNZXRob2Q9ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49ZS5rZXk7ZS5raW5kPT09XCJjb25zdHJ1Y3RvclwiPyh0JiZ0aGlzLnJhaXNlKG4uc3RhcnQsXCJDb25zdHJ1Y3RvciBjYW4ndCBiZSBhIGdlbmVyYXRvclwiKSxpJiZ0aGlzLnJhaXNlKG4uc3RhcnQsXCJDb25zdHJ1Y3RvciBjYW4ndCBiZSBhbiBhc3luYyBtZXRob2RcIikpOmUuc3RhdGljJiZQZShlLFwicHJvdG90eXBlXCIpJiZ0aGlzLnJhaXNlKG4uc3RhcnQsXCJDbGFzc2VzIG1heSBub3QgaGF2ZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBwcm90b3R5cGVcIik7dmFyIG89ZS52YWx1ZT10aGlzLnBhcnNlTWV0aG9kKHQsaSxzKTtyZXR1cm4gZS5raW5kPT09XCJnZXRcIiYmby5wYXJhbXMubGVuZ3RoIT09MCYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKG8uc3RhcnQsXCJnZXR0ZXIgc2hvdWxkIGhhdmUgbm8gcGFyYW1zXCIpLGUua2luZD09PVwic2V0XCImJm8ucGFyYW1zLmxlbmd0aCE9PTEmJnRoaXMucmFpc2VSZWNvdmVyYWJsZShvLnN0YXJ0LFwic2V0dGVyIHNob3VsZCBoYXZlIGV4YWN0bHkgb25lIHBhcmFtXCIpLGUua2luZD09PVwic2V0XCImJm8ucGFyYW1zWzBdLnR5cGU9PT1cIlJlc3RFbGVtZW50XCImJnRoaXMucmFpc2VSZWNvdmVyYWJsZShvLnBhcmFtc1swXS5zdGFydCxcIlNldHRlciBjYW5ub3QgdXNlIHJlc3QgcGFyYW1zXCIpLHRoaXMuZmluaXNoTm9kZShlLFwiTWV0aG9kRGVmaW5pdGlvblwiKX0sUy5wYXJzZUNsYXNzRmllbGQ9ZnVuY3Rpb24oZSl7aWYoUGUoZSxcImNvbnN0cnVjdG9yXCIpP3RoaXMucmFpc2UoZS5rZXkuc3RhcnQsXCJDbGFzc2VzIGNhbid0IGhhdmUgYSBmaWVsZCBuYW1lZCAnY29uc3RydWN0b3InXCIpOmUuc3RhdGljJiZQZShlLFwicHJvdG90eXBlXCIpJiZ0aGlzLnJhaXNlKGUua2V5LnN0YXJ0LFwiQ2xhc3NlcyBjYW4ndCBoYXZlIGEgc3RhdGljIGZpZWxkIG5hbWVkICdwcm90b3R5cGUnXCIpLHRoaXMuZWF0KHIuZXEpKXt2YXIgdD10aGlzLmN1cnJlbnRUaGlzU2NvcGUoKSxpPXQuaW5DbGFzc0ZpZWxkSW5pdDt0LmluQ2xhc3NGaWVsZEluaXQ9ITAsZS52YWx1ZT10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKSx0LmluQ2xhc3NGaWVsZEluaXQ9aX1lbHNlIGUudmFsdWU9bnVsbDtyZXR1cm4gdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlByb3BlcnR5RGVmaW5pdGlvblwiKX0sUy5wYXJzZUNsYXNzU3RhdGljQmxvY2s9ZnVuY3Rpb24oZSl7ZS5ib2R5PVtdO3ZhciB0PXRoaXMubGFiZWxzO2Zvcih0aGlzLmxhYmVscz1bXSx0aGlzLmVudGVyU2NvcGUobWV8V2UpO3RoaXMudHlwZSE9PXIuYnJhY2VSOyl7dmFyIGk9dGhpcy5wYXJzZVN0YXRlbWVudChudWxsKTtlLmJvZHkucHVzaChpKX1yZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5leGl0U2NvcGUoKSx0aGlzLmxhYmVscz10LHRoaXMuZmluaXNoTm9kZShlLFwiU3RhdGljQmxvY2tcIil9LFMucGFyc2VDbGFzc0lkPWZ1bmN0aW9uKGUsdCl7dGhpcy50eXBlPT09ci5uYW1lPyhlLmlkPXRoaXMucGFyc2VJZGVudCgpLHQmJnRoaXMuY2hlY2tMVmFsU2ltcGxlKGUuaWQsUSwhMSkpOih0PT09ITAmJnRoaXMudW5leHBlY3RlZCgpLGUuaWQ9bnVsbCl9LFMucGFyc2VDbGFzc1N1cGVyPWZ1bmN0aW9uKGUpe2Uuc3VwZXJDbGFzcz10aGlzLmVhdChyLl9leHRlbmRzKT90aGlzLnBhcnNlRXhwclN1YnNjcmlwdHMobnVsbCwhMSk6bnVsbH0sUy5lbnRlckNsYXNzQm9keT1mdW5jdGlvbigpe3ZhciBlPXtkZWNsYXJlZDpPYmplY3QuY3JlYXRlKG51bGwpLHVzZWQ6W119O3JldHVybiB0aGlzLnByaXZhdGVOYW1lU3RhY2sucHVzaChlKSxlLmRlY2xhcmVkfSxTLmV4aXRDbGFzc0JvZHk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByaXZhdGVOYW1lU3RhY2sucG9wKCksdD1lLmRlY2xhcmVkLGk9ZS51c2VkO2lmKHRoaXMub3B0aW9ucy5jaGVja1ByaXZhdGVGaWVsZHMpZm9yKHZhciBzPXRoaXMucHJpdmF0ZU5hbWVTdGFjay5sZW5ndGgsbj1zPT09MD9udWxsOnRoaXMucHJpdmF0ZU5hbWVTdGFja1tzLTFdLG89MDtvPGkubGVuZ3RoOysrbyl7dmFyIHA9aVtvXTtsZSh0LHAubmFtZSl8fChuP24udXNlZC5wdXNoKHApOnRoaXMucmFpc2VSZWNvdmVyYWJsZShwLnN0YXJ0LFwiUHJpdmF0ZSBmaWVsZCAnI1wiK3AubmFtZStcIicgbXVzdCBiZSBkZWNsYXJlZCBpbiBhbiBlbmNsb3NpbmcgY2xhc3NcIikpfX07ZnVuY3Rpb24gUGkoZSx0KXt2YXIgaT10LmtleS5uYW1lLHM9ZVtpXSxuPVwidHJ1ZVwiO3JldHVybiB0LnR5cGU9PT1cIk1ldGhvZERlZmluaXRpb25cIiYmKHQua2luZD09PVwiZ2V0XCJ8fHQua2luZD09PVwic2V0XCIpJiYobj0odC5zdGF0aWM/XCJzXCI6XCJpXCIpK3Qua2luZCkscz09PVwiaWdldFwiJiZuPT09XCJpc2V0XCJ8fHM9PT1cImlzZXRcIiYmbj09PVwiaWdldFwifHxzPT09XCJzZ2V0XCImJm49PT1cInNzZXRcInx8cz09PVwic3NldFwiJiZuPT09XCJzZ2V0XCI/KGVbaV09XCJ0cnVlXCIsITEpOnM/ITA6KGVbaV09biwhMSl9ZnVuY3Rpb24gUGUoZSx0KXt2YXIgaT1lLmNvbXB1dGVkLHM9ZS5rZXk7cmV0dXJuIWkmJihzLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmcy5uYW1lPT09dHx8cy50eXBlPT09XCJMaXRlcmFsXCImJnMudmFsdWU9PT10KX1TLnBhcnNlRXhwb3J0QWxsRGVjbGFyYXRpb249ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj0xMSYmKHRoaXMuZWF0Q29udGV4dHVhbChcImFzXCIpPyhlLmV4cG9ydGVkPXRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCksdGhpcy5jaGVja0V4cG9ydCh0LGUuZXhwb3J0ZWQsdGhpcy5sYXN0VG9rU3RhcnQpKTplLmV4cG9ydGVkPW51bGwpLHRoaXMuZXhwZWN0Q29udGV4dHVhbChcImZyb21cIiksdGhpcy50eXBlIT09ci5zdHJpbmcmJnRoaXMudW5leHBlY3RlZCgpLGUuc291cmNlPXRoaXMucGFyc2VFeHByQXRvbSgpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKX0sUy5wYXJzZUV4cG9ydD1mdW5jdGlvbihlLHQpe2lmKHRoaXMubmV4dCgpLHRoaXMuZWF0KHIuc3RhcikpcmV0dXJuIHRoaXMucGFyc2VFeHBvcnRBbGxEZWNsYXJhdGlvbihlLHQpO2lmKHRoaXMuZWF0KHIuX2RlZmF1bHQpKXJldHVybiB0aGlzLmNoZWNrRXhwb3J0KHQsXCJkZWZhdWx0XCIsdGhpcy5sYXN0VG9rU3RhcnQpLGUuZGVjbGFyYXRpb249dGhpcy5wYXJzZUV4cG9ydERlZmF1bHREZWNsYXJhdGlvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIpO2lmKHRoaXMuc2hvdWxkUGFyc2VFeHBvcnRTdGF0ZW1lbnQoKSllLmRlY2xhcmF0aW9uPXRoaXMucGFyc2VFeHBvcnREZWNsYXJhdGlvbihlKSxlLmRlY2xhcmF0aW9uLnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cIj90aGlzLmNoZWNrVmFyaWFibGVFeHBvcnQodCxlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucyk6dGhpcy5jaGVja0V4cG9ydCh0LGUuZGVjbGFyYXRpb24uaWQsZS5kZWNsYXJhdGlvbi5pZC5zdGFydCksZS5zcGVjaWZpZXJzPVtdLGUuc291cmNlPW51bGw7ZWxzZXtpZihlLmRlY2xhcmF0aW9uPW51bGwsZS5zcGVjaWZpZXJzPXRoaXMucGFyc2VFeHBvcnRTcGVjaWZpZXJzKHQpLHRoaXMuZWF0Q29udGV4dHVhbChcImZyb21cIikpdGhpcy50eXBlIT09ci5zdHJpbmcmJnRoaXMudW5leHBlY3RlZCgpLGUuc291cmNlPXRoaXMucGFyc2VFeHByQXRvbSgpO2Vsc2V7Zm9yKHZhciBpPTAscz1lLnNwZWNpZmllcnM7aTxzLmxlbmd0aDtpKz0xKXt2YXIgbj1zW2ldO3RoaXMuY2hlY2tVbnJlc2VydmVkKG4ubG9jYWwpLHRoaXMuY2hlY2tMb2NhbEV4cG9ydChuLmxvY2FsKSxuLmxvY2FsLnR5cGU9PT1cIkxpdGVyYWxcIiYmdGhpcy5yYWlzZShuLmxvY2FsLnN0YXJ0LFwiQSBzdHJpbmcgbGl0ZXJhbCBjYW5ub3QgYmUgdXNlZCBhcyBhbiBleHBvcnRlZCBiaW5kaW5nIHdpdGhvdXQgYGZyb21gLlwiKX1lLnNvdXJjZT1udWxsfXRoaXMuc2VtaWNvbG9uKCl9cmV0dXJuIHRoaXMuZmluaXNoTm9kZShlLFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiKX0sUy5wYXJzZUV4cG9ydERlY2xhcmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnBhcnNlU3RhdGVtZW50KG51bGwpfSxTLnBhcnNlRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uPWZ1bmN0aW9uKCl7dmFyIGU7aWYodGhpcy50eXBlPT09ci5fZnVuY3Rpb258fChlPXRoaXMuaXNBc3luY0Z1bmN0aW9uKCkpKXt2YXIgdD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSxlJiZ0aGlzLm5leHQoKSx0aGlzLnBhcnNlRnVuY3Rpb24odCx4ZXxrdCwhMSxlKX1lbHNlIGlmKHRoaXMudHlwZT09PXIuX2NsYXNzKXt2YXIgaT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLnBhcnNlQ2xhc3MoaSxcIm51bGxhYmxlSURcIil9ZWxzZXt2YXIgcz10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKTtyZXR1cm4gdGhpcy5zZW1pY29sb24oKSxzfX0sUy5jaGVja0V4cG9ydD1mdW5jdGlvbihlLHQsaSl7ZSYmKHR5cGVvZiB0IT1cInN0cmluZ1wiJiYodD10LnR5cGU9PT1cIklkZW50aWZpZXJcIj90Lm5hbWU6dC52YWx1ZSksbGUoZSx0KSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGksXCJEdXBsaWNhdGUgZXhwb3J0ICdcIit0K1wiJ1wiKSxlW3RdPSEwKX0sUy5jaGVja1BhdHRlcm5FeHBvcnQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT10LnR5cGU7aWYoaT09PVwiSWRlbnRpZmllclwiKXRoaXMuY2hlY2tFeHBvcnQoZSx0LHQuc3RhcnQpO2Vsc2UgaWYoaT09PVwiT2JqZWN0UGF0dGVyblwiKWZvcih2YXIgcz0wLG49dC5wcm9wZXJ0aWVzO3M8bi5sZW5ndGg7cys9MSl7dmFyIG89bltzXTt0aGlzLmNoZWNrUGF0dGVybkV4cG9ydChlLG8pfWVsc2UgaWYoaT09PVwiQXJyYXlQYXR0ZXJuXCIpZm9yKHZhciBwPTAsbT10LmVsZW1lbnRzO3A8bS5sZW5ndGg7cCs9MSl7dmFyIGc9bVtwXTtnJiZ0aGlzLmNoZWNrUGF0dGVybkV4cG9ydChlLGcpfWVsc2UgaT09PVwiUHJvcGVydHlcIj90aGlzLmNoZWNrUGF0dGVybkV4cG9ydChlLHQudmFsdWUpOmk9PT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCI/dGhpcy5jaGVja1BhdHRlcm5FeHBvcnQoZSx0LmxlZnQpOmk9PT1cIlJlc3RFbGVtZW50XCI/dGhpcy5jaGVja1BhdHRlcm5FeHBvcnQoZSx0LmFyZ3VtZW50KTppPT09XCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiJiZ0aGlzLmNoZWNrUGF0dGVybkV4cG9ydChlLHQuZXhwcmVzc2lvbil9LFMuY2hlY2tWYXJpYWJsZUV4cG9ydD1mdW5jdGlvbihlLHQpe2lmKGUpZm9yKHZhciBpPTAscz10O2k8cy5sZW5ndGg7aSs9MSl7dmFyIG49c1tpXTt0aGlzLmNoZWNrUGF0dGVybkV4cG9ydChlLG4uaWQpfX0sUy5zaG91bGRQYXJzZUV4cG9ydFN0YXRlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGUua2V5d29yZD09PVwidmFyXCJ8fHRoaXMudHlwZS5rZXl3b3JkPT09XCJjb25zdFwifHx0aGlzLnR5cGUua2V5d29yZD09PVwiY2xhc3NcInx8dGhpcy50eXBlLmtleXdvcmQ9PT1cImZ1bmN0aW9uXCJ8fHRoaXMuaXNMZXQoKXx8dGhpcy5pc0FzeW5jRnVuY3Rpb24oKX0sUy5wYXJzZUV4cG9ydFNwZWNpZmllcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0LmxvY2FsPXRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCksdC5leHBvcnRlZD10aGlzLmVhdENvbnRleHR1YWwoXCJhc1wiKT90aGlzLnBhcnNlTW9kdWxlRXhwb3J0TmFtZSgpOnQubG9jYWwsdGhpcy5jaGVja0V4cG9ydChlLHQuZXhwb3J0ZWQsdC5leHBvcnRlZC5zdGFydCksdGhpcy5maW5pc2hOb2RlKHQsXCJFeHBvcnRTcGVjaWZpZXJcIil9LFMucGFyc2VFeHBvcnRTcGVjaWZpZXJzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLGk9ITA7Zm9yKHRoaXMuZXhwZWN0KHIuYnJhY2VMKTshdGhpcy5lYXQoci5icmFjZVIpOyl7aWYoaSlpPSExO2Vsc2UgaWYodGhpcy5leHBlY3Qoci5jb21tYSksdGhpcy5hZnRlclRyYWlsaW5nQ29tbWEoci5icmFjZVIpKWJyZWFrO3QucHVzaCh0aGlzLnBhcnNlRXhwb3J0U3BlY2lmaWVyKGUpKX1yZXR1cm4gdH0sUy5wYXJzZUltcG9ydD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy50eXBlPT09ci5zdHJpbmc/KGUuc3BlY2lmaWVycz1BaSxlLnNvdXJjZT10aGlzLnBhcnNlRXhwckF0b20oKSk6KGUuc3BlY2lmaWVycz10aGlzLnBhcnNlSW1wb3J0U3BlY2lmaWVycygpLHRoaXMuZXhwZWN0Q29udGV4dHVhbChcImZyb21cIiksZS5zb3VyY2U9dGhpcy50eXBlPT09ci5zdHJpbmc/dGhpcy5wYXJzZUV4cHJBdG9tKCk6dGhpcy51bmV4cGVjdGVkKCkpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJJbXBvcnREZWNsYXJhdGlvblwiKX0sUy5wYXJzZUltcG9ydFNwZWNpZmllcj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUuaW1wb3J0ZWQ9dGhpcy5wYXJzZU1vZHVsZUV4cG9ydE5hbWUoKSx0aGlzLmVhdENvbnRleHR1YWwoXCJhc1wiKT9lLmxvY2FsPXRoaXMucGFyc2VJZGVudCgpOih0aGlzLmNoZWNrVW5yZXNlcnZlZChlLmltcG9ydGVkKSxlLmxvY2FsPWUuaW1wb3J0ZWQpLHRoaXMuY2hlY2tMVmFsU2ltcGxlKGUubG9jYWwsUSksdGhpcy5maW5pc2hOb2RlKGUsXCJJbXBvcnRTcGVjaWZpZXJcIil9LFMucGFyc2VJbXBvcnREZWZhdWx0U3BlY2lmaWVyPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gZS5sb2NhbD10aGlzLnBhcnNlSWRlbnQoKSx0aGlzLmNoZWNrTFZhbFNpbXBsZShlLmxvY2FsLFEpLHRoaXMuZmluaXNoTm9kZShlLFwiSW1wb3J0RGVmYXVsdFNwZWNpZmllclwiKX0sUy5wYXJzZUltcG9ydE5hbWVzcGFjZVNwZWNpZmllcj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZXhwZWN0Q29udGV4dHVhbChcImFzXCIpLGUubG9jYWw9dGhpcy5wYXJzZUlkZW50KCksdGhpcy5jaGVja0xWYWxTaW1wbGUoZS5sb2NhbCxRKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclwiKX0sUy5wYXJzZUltcG9ydFNwZWNpZmllcnM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PSEwO2lmKHRoaXMudHlwZT09PXIubmFtZSYmKGUucHVzaCh0aGlzLnBhcnNlSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpKSwhdGhpcy5lYXQoci5jb21tYSkpKXJldHVybiBlO2lmKHRoaXMudHlwZT09PXIuc3RhcilyZXR1cm4gZS5wdXNoKHRoaXMucGFyc2VJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIoKSksZTtmb3IodGhpcy5leHBlY3Qoci5icmFjZUwpOyF0aGlzLmVhdChyLmJyYWNlUik7KXtpZih0KXQ9ITE7ZWxzZSBpZih0aGlzLmV4cGVjdChyLmNvbW1hKSx0aGlzLmFmdGVyVHJhaWxpbmdDb21tYShyLmJyYWNlUikpYnJlYWs7ZS5wdXNoKHRoaXMucGFyc2VJbXBvcnRTcGVjaWZpZXIoKSl9cmV0dXJuIGV9LFMucGFyc2VNb2R1bGVFeHBvcnROYW1lPWZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj0xMyYmdGhpcy50eXBlPT09ci5zdHJpbmcpe3ZhciBlPXRoaXMucGFyc2VMaXRlcmFsKHRoaXMudmFsdWUpO3JldHVybiBDaS50ZXN0KGUudmFsdWUpJiZ0aGlzLnJhaXNlKGUuc3RhcnQsXCJBbiBleHBvcnQgbmFtZSBjYW5ub3QgaW5jbHVkZSBhIGxvbmUgc3Vycm9nYXRlLlwiKSxlfXJldHVybiB0aGlzLnBhcnNlSWRlbnQoITApfSxTLmFkYXB0RGlyZWN0aXZlUHJvbG9ndWU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aCYmdGhpcy5pc0RpcmVjdGl2ZUNhbmRpZGF0ZShlW3RdKTsrK3QpZVt0XS5kaXJlY3RpdmU9ZVt0XS5leHByZXNzaW9uLnJhdy5zbGljZSgxLC0xKX0sUy5pc0RpcmVjdGl2ZUNhbmRpZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj01JiZlLnR5cGU9PT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIiYmZS5leHByZXNzaW9uLnR5cGU9PT1cIkxpdGVyYWxcIiYmdHlwZW9mIGUuZXhwcmVzc2lvbi52YWx1ZT09XCJzdHJpbmdcIiYmKHRoaXMuaW5wdXRbZS5zdGFydF09PT0nXCInfHx0aGlzLmlucHV0W2Uuc3RhcnRdPT09XCInXCIpfTt2YXIgcT1WLnByb3RvdHlwZTtxLnRvQXNzaWduYWJsZT1mdW5jdGlvbihlLHQsaSl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiZlKXN3aXRjaChlLnR5cGUpe2Nhc2VcIklkZW50aWZpZXJcIjp0aGlzLmluQXN5bmMmJmUubmFtZT09PVwiYXdhaXRcIiYmdGhpcy5yYWlzZShlLnN0YXJ0LFwiQ2Fubm90IHVzZSAnYXdhaXQnIGFzIGlkZW50aWZpZXIgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXCIpO2JyZWFrO2Nhc2VcIk9iamVjdFBhdHRlcm5cIjpjYXNlXCJBcnJheVBhdHRlcm5cIjpjYXNlXCJBc3NpZ25tZW50UGF0dGVyblwiOmNhc2VcIlJlc3RFbGVtZW50XCI6YnJlYWs7Y2FzZVwiT2JqZWN0RXhwcmVzc2lvblwiOmUudHlwZT1cIk9iamVjdFBhdHRlcm5cIixpJiZ0aGlzLmNoZWNrUGF0dGVybkVycm9ycyhpLCEwKTtmb3IodmFyIHM9MCxuPWUucHJvcGVydGllcztzPG4ubGVuZ3RoO3MrPTEpe3ZhciBvPW5bc107dGhpcy50b0Fzc2lnbmFibGUobyx0KSxvLnR5cGU9PT1cIlJlc3RFbGVtZW50XCImJihvLmFyZ3VtZW50LnR5cGU9PT1cIkFycmF5UGF0dGVyblwifHxvLmFyZ3VtZW50LnR5cGU9PT1cIk9iamVjdFBhdHRlcm5cIikmJnRoaXMucmFpc2Uoby5hcmd1bWVudC5zdGFydCxcIlVuZXhwZWN0ZWQgdG9rZW5cIil9YnJlYWs7Y2FzZVwiUHJvcGVydHlcIjplLmtpbmQhPT1cImluaXRcIiYmdGhpcy5yYWlzZShlLmtleS5zdGFydCxcIk9iamVjdCBwYXR0ZXJuIGNhbid0IGNvbnRhaW4gZ2V0dGVyIG9yIHNldHRlclwiKSx0aGlzLnRvQXNzaWduYWJsZShlLnZhbHVlLHQpO2JyZWFrO2Nhc2VcIkFycmF5RXhwcmVzc2lvblwiOmUudHlwZT1cIkFycmF5UGF0dGVyblwiLGkmJnRoaXMuY2hlY2tQYXR0ZXJuRXJyb3JzKGksITApLHRoaXMudG9Bc3NpZ25hYmxlTGlzdChlLmVsZW1lbnRzLHQpO2JyZWFrO2Nhc2VcIlNwcmVhZEVsZW1lbnRcIjplLnR5cGU9XCJSZXN0RWxlbWVudFwiLHRoaXMudG9Bc3NpZ25hYmxlKGUuYXJndW1lbnQsdCksZS5hcmd1bWVudC50eXBlPT09XCJBc3NpZ25tZW50UGF0dGVyblwiJiZ0aGlzLnJhaXNlKGUuYXJndW1lbnQuc3RhcnQsXCJSZXN0IGVsZW1lbnRzIGNhbm5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZVwiKTticmVhaztjYXNlXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiOmUub3BlcmF0b3IhPT1cIj1cIiYmdGhpcy5yYWlzZShlLmxlZnQuZW5kLFwiT25seSAnPScgb3BlcmF0b3IgY2FuIGJlIHVzZWQgZm9yIHNwZWNpZnlpbmcgZGVmYXVsdCB2YWx1ZS5cIiksZS50eXBlPVwiQXNzaWdubWVudFBhdHRlcm5cIixkZWxldGUgZS5vcGVyYXRvcix0aGlzLnRvQXNzaWduYWJsZShlLmxlZnQsdCk7YnJlYWs7Y2FzZVwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIjp0aGlzLnRvQXNzaWduYWJsZShlLmV4cHJlc3Npb24sdCxpKTticmVhaztjYXNlXCJDaGFpbkV4cHJlc3Npb25cIjp0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5zdGFydCxcIk9wdGlvbmFsIGNoYWluaW5nIGNhbm5vdCBhcHBlYXIgaW4gbGVmdC1oYW5kIHNpZGVcIik7YnJlYWs7Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmlmKCF0KWJyZWFrO2RlZmF1bHQ6dGhpcy5yYWlzZShlLnN0YXJ0LFwiQXNzaWduaW5nIHRvIHJ2YWx1ZVwiKX1lbHNlIGkmJnRoaXMuY2hlY2tQYXR0ZXJuRXJyb3JzKGksITApO3JldHVybiBlfSxxLnRvQXNzaWduYWJsZUxpc3Q9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9ZS5sZW5ndGgscz0wO3M8aTtzKyspe3ZhciBuPWVbc107biYmdGhpcy50b0Fzc2lnbmFibGUobix0KX1pZihpKXt2YXIgbz1lW2ktMV07dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPT09NiYmdCYmbyYmby50eXBlPT09XCJSZXN0RWxlbWVudFwiJiZvLmFyZ3VtZW50LnR5cGUhPT1cIklkZW50aWZpZXJcIiYmdGhpcy51bmV4cGVjdGVkKG8uYXJndW1lbnQuc3RhcnQpfXJldHVybiBlfSxxLnBhcnNlU3ByZWFkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHQuYXJndW1lbnQ9dGhpcy5wYXJzZU1heWJlQXNzaWduKCExLGUpLHRoaXMuZmluaXNoTm9kZSh0LFwiU3ByZWFkRWxlbWVudFwiKX0scS5wYXJzZVJlc3RCaW5kaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPT09NiYmdGhpcy50eXBlIT09ci5uYW1lJiZ0aGlzLnVuZXhwZWN0ZWQoKSxlLmFyZ3VtZW50PXRoaXMucGFyc2VCaW5kaW5nQXRvbSgpLHRoaXMuZmluaXNoTm9kZShlLFwiUmVzdEVsZW1lbnRcIil9LHEucGFyc2VCaW5kaW5nQXRvbT1mdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49Nilzd2l0Y2godGhpcy50eXBlKXtjYXNlIHIuYnJhY2tldEw6dmFyIGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksZS5lbGVtZW50cz10aGlzLnBhcnNlQmluZGluZ0xpc3Qoci5icmFja2V0UiwhMCwhMCksdGhpcy5maW5pc2hOb2RlKGUsXCJBcnJheVBhdHRlcm5cIik7Y2FzZSByLmJyYWNlTDpyZXR1cm4gdGhpcy5wYXJzZU9iaighMCl9cmV0dXJuIHRoaXMucGFyc2VJZGVudCgpfSxxLnBhcnNlQmluZGluZ0xpc3Q9ZnVuY3Rpb24oZSx0LGkscyl7Zm9yKHZhciBuPVtdLG89ITA7IXRoaXMuZWF0KGUpOylpZihvP289ITE6dGhpcy5leHBlY3Qoci5jb21tYSksdCYmdGhpcy50eXBlPT09ci5jb21tYSluLnB1c2gobnVsbCk7ZWxzZXtpZihpJiZ0aGlzLmFmdGVyVHJhaWxpbmdDb21tYShlKSlicmVhaztpZih0aGlzLnR5cGU9PT1yLmVsbGlwc2lzKXt2YXIgcD10aGlzLnBhcnNlUmVzdEJpbmRpbmcoKTt0aGlzLnBhcnNlQmluZGluZ0xpc3RJdGVtKHApLG4ucHVzaChwKSx0aGlzLnR5cGU9PT1yLmNvbW1hJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodGhpcy5zdGFydCxcIkNvbW1hIGlzIG5vdCBwZXJtaXR0ZWQgYWZ0ZXIgdGhlIHJlc3QgZWxlbWVudFwiKSx0aGlzLmV4cGVjdChlKTticmVha31lbHNlIG4ucHVzaCh0aGlzLnBhcnNlQXNzaWduYWJsZUxpc3RJdGVtKHMpKX1yZXR1cm4gbn0scS5wYXJzZUFzc2lnbmFibGVMaXN0SXRlbT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnBhcnNlTWF5YmVEZWZhdWx0KHRoaXMuc3RhcnQsdGhpcy5zdGFydExvYyk7cmV0dXJuIHRoaXMucGFyc2VCaW5kaW5nTGlzdEl0ZW0odCksdH0scS5wYXJzZUJpbmRpbmdMaXN0SXRlbT1mdW5jdGlvbihlKXtyZXR1cm4gZX0scS5wYXJzZU1heWJlRGVmYXVsdD1mdW5jdGlvbihlLHQsaSl7aWYoaT1pfHx0aGlzLnBhcnNlQmluZGluZ0F0b20oKSx0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb248Nnx8IXRoaXMuZWF0KHIuZXEpKXJldHVybiBpO3ZhciBzPXRoaXMuc3RhcnROb2RlQXQoZSx0KTtyZXR1cm4gcy5sZWZ0PWkscy5yaWdodD10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKSx0aGlzLmZpbmlzaE5vZGUocyxcIkFzc2lnbm1lbnRQYXR0ZXJuXCIpfSxxLmNoZWNrTFZhbFNpbXBsZT1mdW5jdGlvbihlLHQsaSl7dD09PXZvaWQgMCYmKHQ9RWUpO3ZhciBzPXQhPT1FZTtzd2l0Y2goZS50eXBlKXtjYXNlXCJJZGVudGlmaWVyXCI6dGhpcy5zdHJpY3QmJnRoaXMucmVzZXJ2ZWRXb3Jkc1N0cmljdEJpbmQudGVzdChlLm5hbWUpJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5zdGFydCwocz9cIkJpbmRpbmcgXCI6XCJBc3NpZ25pbmcgdG8gXCIpK2UubmFtZStcIiBpbiBzdHJpY3QgbW9kZVwiKSxzJiYodD09PVEmJmUubmFtZT09PVwibGV0XCImJnRoaXMucmFpc2VSZWNvdmVyYWJsZShlLnN0YXJ0LFwibGV0IGlzIGRpc2FsbG93ZWQgYXMgYSBsZXhpY2FsbHkgYm91bmQgbmFtZVwiKSxpJiYobGUoaSxlLm5hbWUpJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5zdGFydCxcIkFyZ3VtZW50IG5hbWUgY2xhc2hcIiksaVtlLm5hbWVdPSEwKSx0IT09Q3QmJnRoaXMuZGVjbGFyZU5hbWUoZS5uYW1lLHQsZS5zdGFydCkpO2JyZWFrO2Nhc2VcIkNoYWluRXhwcmVzc2lvblwiOnRoaXMucmFpc2VSZWNvdmVyYWJsZShlLnN0YXJ0LFwiT3B0aW9uYWwgY2hhaW5pbmcgY2Fubm90IGFwcGVhciBpbiBsZWZ0LWhhbmQgc2lkZVwiKTticmVhaztjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6cyYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGUuc3RhcnQsXCJCaW5kaW5nIG1lbWJlciBleHByZXNzaW9uXCIpO2JyZWFrO2Nhc2VcIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCI6cmV0dXJuIHMmJnRoaXMucmFpc2VSZWNvdmVyYWJsZShlLnN0YXJ0LFwiQmluZGluZyBwYXJlbnRoZXNpemVkIGV4cHJlc3Npb25cIiksdGhpcy5jaGVja0xWYWxTaW1wbGUoZS5leHByZXNzaW9uLHQsaSk7ZGVmYXVsdDp0aGlzLnJhaXNlKGUuc3RhcnQsKHM/XCJCaW5kaW5nXCI6XCJBc3NpZ25pbmcgdG9cIikrXCIgcnZhbHVlXCIpfX0scS5jaGVja0xWYWxQYXR0ZXJuPWZ1bmN0aW9uKGUsdCxpKXtzd2l0Y2godD09PXZvaWQgMCYmKHQ9RWUpLGUudHlwZSl7Y2FzZVwiT2JqZWN0UGF0dGVyblwiOmZvcih2YXIgcz0wLG49ZS5wcm9wZXJ0aWVzO3M8bi5sZW5ndGg7cys9MSl7dmFyIG89bltzXTt0aGlzLmNoZWNrTFZhbElubmVyUGF0dGVybihvLHQsaSl9YnJlYWs7Y2FzZVwiQXJyYXlQYXR0ZXJuXCI6Zm9yKHZhciBwPTAsbT1lLmVsZW1lbnRzO3A8bS5sZW5ndGg7cCs9MSl7dmFyIGc9bVtwXTtnJiZ0aGlzLmNoZWNrTFZhbElubmVyUGF0dGVybihnLHQsaSl9YnJlYWs7ZGVmYXVsdDp0aGlzLmNoZWNrTFZhbFNpbXBsZShlLHQsaSl9fSxxLmNoZWNrTFZhbElubmVyUGF0dGVybj1mdW5jdGlvbihlLHQsaSl7c3dpdGNoKHQ9PT12b2lkIDAmJih0PUVlKSxlLnR5cGUpe2Nhc2VcIlByb3BlcnR5XCI6dGhpcy5jaGVja0xWYWxJbm5lclBhdHRlcm4oZS52YWx1ZSx0LGkpO2JyZWFrO2Nhc2VcIkFzc2lnbm1lbnRQYXR0ZXJuXCI6dGhpcy5jaGVja0xWYWxQYXR0ZXJuKGUubGVmdCx0LGkpO2JyZWFrO2Nhc2VcIlJlc3RFbGVtZW50XCI6dGhpcy5jaGVja0xWYWxQYXR0ZXJuKGUuYXJndW1lbnQsdCxpKTticmVhaztkZWZhdWx0OnRoaXMuY2hlY2tMVmFsUGF0dGVybihlLHQsaSl9fTt2YXIgSz1mdW5jdGlvbih0LGkscyxuLG8pe3RoaXMudG9rZW49dCx0aGlzLmlzRXhwcj0hIWksdGhpcy5wcmVzZXJ2ZVNwYWNlPSEhcyx0aGlzLm92ZXJyaWRlPW4sdGhpcy5nZW5lcmF0b3I9ISFvfSxJPXtiX3N0YXQ6bmV3IEsoXCJ7XCIsITEpLGJfZXhwcjpuZXcgSyhcIntcIiwhMCksYl90bXBsOm5ldyBLKFwiJHtcIiwhMSkscF9zdGF0Om5ldyBLKFwiKFwiLCExKSxwX2V4cHI6bmV3IEsoXCIoXCIsITApLHFfdG1wbDpuZXcgSyhcImBcIiwhMCwhMCxmdW5jdGlvbihlKXtyZXR1cm4gZS50cnlSZWFkVGVtcGxhdGVUb2tlbigpfSksZl9zdGF0Om5ldyBLKFwiZnVuY3Rpb25cIiwhMSksZl9leHByOm5ldyBLKFwiZnVuY3Rpb25cIiwhMCksZl9leHByX2dlbjpuZXcgSyhcImZ1bmN0aW9uXCIsITAsITEsbnVsbCwhMCksZl9nZW46bmV3IEsoXCJmdW5jdGlvblwiLCExLCExLG51bGwsITApfSxvZT1WLnByb3RvdHlwZTtvZS5pbml0aWFsQ29udGV4dD1mdW5jdGlvbigpe3JldHVybltJLmJfc3RhdF19LG9lLmN1ckNvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0W3RoaXMuY29udGV4dC5sZW5ndGgtMV19LG9lLmJyYWNlSXNCbG9jaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmN1ckNvbnRleHQoKTtyZXR1cm4gdD09PUkuZl9leHByfHx0PT09SS5mX3N0YXQ/ITA6ZT09PXIuY29sb24mJih0PT09SS5iX3N0YXR8fHQ9PT1JLmJfZXhwcik/IXQuaXNFeHByOmU9PT1yLl9yZXR1cm58fGU9PT1yLm5hbWUmJnRoaXMuZXhwckFsbG93ZWQ/ai50ZXN0KHRoaXMuaW5wdXQuc2xpY2UodGhpcy5sYXN0VG9rRW5kLHRoaXMuc3RhcnQpKTplPT09ci5fZWxzZXx8ZT09PXIuc2VtaXx8ZT09PXIuZW9mfHxlPT09ci5wYXJlblJ8fGU9PT1yLmFycm93PyEwOmU9PT1yLmJyYWNlTD90PT09SS5iX3N0YXQ6ZT09PXIuX3Zhcnx8ZT09PXIuX2NvbnN0fHxlPT09ci5uYW1lPyExOiF0aGlzLmV4cHJBbGxvd2VkfSxvZS5pbkdlbmVyYXRvckNvbnRleHQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5jb250ZXh0Lmxlbmd0aC0xO2U+PTE7ZS0tKXt2YXIgdD10aGlzLmNvbnRleHRbZV07aWYodC50b2tlbj09PVwiZnVuY3Rpb25cIilyZXR1cm4gdC5nZW5lcmF0b3J9cmV0dXJuITF9LG9lLnVwZGF0ZUNvbnRleHQ9ZnVuY3Rpb24oZSl7dmFyIHQsaT10aGlzLnR5cGU7aS5rZXl3b3JkJiZlPT09ci5kb3Q/dGhpcy5leHByQWxsb3dlZD0hMToodD1pLnVwZGF0ZUNvbnRleHQpP3QuY2FsbCh0aGlzLGUpOnRoaXMuZXhwckFsbG93ZWQ9aS5iZWZvcmVFeHByfSxvZS5vdmVycmlkZUNvbnRleHQ9ZnVuY3Rpb24oZSl7dGhpcy5jdXJDb250ZXh0KCkhPT1lJiYodGhpcy5jb250ZXh0W3RoaXMuY29udGV4dC5sZW5ndGgtMV09ZSl9LHIucGFyZW5SLnVwZGF0ZUNvbnRleHQ9ci5icmFjZVIudXBkYXRlQ29udGV4dD1mdW5jdGlvbigpe2lmKHRoaXMuY29udGV4dC5sZW5ndGg9PT0xKXt0aGlzLmV4cHJBbGxvd2VkPSEwO3JldHVybn12YXIgZT10aGlzLmNvbnRleHQucG9wKCk7ZT09PUkuYl9zdGF0JiZ0aGlzLmN1ckNvbnRleHQoKS50b2tlbj09PVwiZnVuY3Rpb25cIiYmKGU9dGhpcy5jb250ZXh0LnBvcCgpKSx0aGlzLmV4cHJBbGxvd2VkPSFlLmlzRXhwcn0sci5icmFjZUwudXBkYXRlQ29udGV4dD1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHQucHVzaCh0aGlzLmJyYWNlSXNCbG9jayhlKT9JLmJfc3RhdDpJLmJfZXhwciksdGhpcy5leHByQWxsb3dlZD0hMH0sci5kb2xsYXJCcmFjZUwudXBkYXRlQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuY29udGV4dC5wdXNoKEkuYl90bXBsKSx0aGlzLmV4cHJBbGxvd2VkPSEwfSxyLnBhcmVuTC51cGRhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3ZhciB0PWU9PT1yLl9pZnx8ZT09PXIuX2Zvcnx8ZT09PXIuX3dpdGh8fGU9PT1yLl93aGlsZTt0aGlzLmNvbnRleHQucHVzaCh0P0kucF9zdGF0OkkucF9leHByKSx0aGlzLmV4cHJBbGxvd2VkPSEwfSxyLmluY0RlYy51cGRhdGVDb250ZXh0PWZ1bmN0aW9uKCl7fSxyLl9mdW5jdGlvbi51cGRhdGVDb250ZXh0PXIuX2NsYXNzLnVwZGF0ZUNvbnRleHQ9ZnVuY3Rpb24oZSl7ZS5iZWZvcmVFeHByJiZlIT09ci5fZWxzZSYmIShlPT09ci5zZW1pJiZ0aGlzLmN1ckNvbnRleHQoKSE9PUkucF9zdGF0KSYmIShlPT09ci5fcmV0dXJuJiZqLnRlc3QodGhpcy5pbnB1dC5zbGljZSh0aGlzLmxhc3RUb2tFbmQsdGhpcy5zdGFydCkpKSYmISgoZT09PXIuY29sb258fGU9PT1yLmJyYWNlTCkmJnRoaXMuY3VyQ29udGV4dCgpPT09SS5iX3N0YXQpP3RoaXMuY29udGV4dC5wdXNoKEkuZl9leHByKTp0aGlzLmNvbnRleHQucHVzaChJLmZfc3RhdCksdGhpcy5leHByQWxsb3dlZD0hMX0sci5iYWNrUXVvdGUudXBkYXRlQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuY3VyQ29udGV4dCgpPT09SS5xX3RtcGw/dGhpcy5jb250ZXh0LnBvcCgpOnRoaXMuY29udGV4dC5wdXNoKEkucV90bXBsKSx0aGlzLmV4cHJBbGxvd2VkPSExfSxyLnN0YXIudXBkYXRlQ29udGV4dD1mdW5jdGlvbihlKXtpZihlPT09ci5fZnVuY3Rpb24pe3ZhciB0PXRoaXMuY29udGV4dC5sZW5ndGgtMTt0aGlzLmNvbnRleHRbdF09PT1JLmZfZXhwcj90aGlzLmNvbnRleHRbdF09SS5mX2V4cHJfZ2VuOnRoaXMuY29udGV4dFt0XT1JLmZfZ2VufXRoaXMuZXhwckFsbG93ZWQ9ITB9LHIubmFtZS51cGRhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3ZhciB0PSExO3RoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49NiYmZSE9PXIuZG90JiYodGhpcy52YWx1ZT09PVwib2ZcIiYmIXRoaXMuZXhwckFsbG93ZWR8fHRoaXMudmFsdWU9PT1cInlpZWxkXCImJnRoaXMuaW5HZW5lcmF0b3JDb250ZXh0KCkpJiYodD0hMCksdGhpcy5leHByQWxsb3dlZD10fTt2YXIgQz1WLnByb3RvdHlwZTtDLmNoZWNrUHJvcENsYXNoPWZ1bmN0aW9uKGUsdCxpKXtpZighKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49OSYmZS50eXBlPT09XCJTcHJlYWRFbGVtZW50XCIpJiYhKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49NiYmKGUuY29tcHV0ZWR8fGUubWV0aG9kfHxlLnNob3J0aGFuZCkpKXt2YXIgcz1lLmtleSxuO3N3aXRjaChzLnR5cGUpe2Nhc2VcIklkZW50aWZpZXJcIjpuPXMubmFtZTticmVhaztjYXNlXCJMaXRlcmFsXCI6bj1TdHJpbmcocy52YWx1ZSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIG89ZS5raW5kO2lmKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49Nil7bj09PVwiX19wcm90b19fXCImJm89PT1cImluaXRcIiYmKHQucHJvdG8mJihpP2kuZG91YmxlUHJvdG88MCYmKGkuZG91YmxlUHJvdG89cy5zdGFydCk6dGhpcy5yYWlzZVJlY292ZXJhYmxlKHMuc3RhcnQsXCJSZWRlZmluaXRpb24gb2YgX19wcm90b19fIHByb3BlcnR5XCIpKSx0LnByb3RvPSEwKTtyZXR1cm59bj1cIiRcIituO3ZhciBwPXRbbl07aWYocCl7dmFyIG07bz09PVwiaW5pdFwiP209dGhpcy5zdHJpY3QmJnAuaW5pdHx8cC5nZXR8fHAuc2V0Om09cC5pbml0fHxwW29dLG0mJnRoaXMucmFpc2VSZWNvdmVyYWJsZShzLnN0YXJ0LFwiUmVkZWZpbml0aW9uIG9mIHByb3BlcnR5XCIpfWVsc2UgcD10W25dPXtpbml0OiExLGdldDohMSxzZXQ6ITF9O3Bbb109ITB9fSxDLnBhcnNlRXhwcmVzc2lvbj1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuc3RhcnQscz10aGlzLnN0YXJ0TG9jLG49dGhpcy5wYXJzZU1heWJlQXNzaWduKGUsdCk7aWYodGhpcy50eXBlPT09ci5jb21tYSl7dmFyIG89dGhpcy5zdGFydE5vZGVBdChpLHMpO2ZvcihvLmV4cHJlc3Npb25zPVtuXTt0aGlzLmVhdChyLmNvbW1hKTspby5leHByZXNzaW9ucy5wdXNoKHRoaXMucGFyc2VNYXliZUFzc2lnbihlLHQpKTtyZXR1cm4gdGhpcy5maW5pc2hOb2RlKG8sXCJTZXF1ZW5jZUV4cHJlc3Npb25cIil9cmV0dXJuIG59LEMucGFyc2VNYXliZUFzc2lnbj1mdW5jdGlvbihlLHQsaSl7aWYodGhpcy5pc0NvbnRleHR1YWwoXCJ5aWVsZFwiKSl7aWYodGhpcy5pbkdlbmVyYXRvcilyZXR1cm4gdGhpcy5wYXJzZVlpZWxkKGUpO3RoaXMuZXhwckFsbG93ZWQ9ITF9dmFyIHM9ITEsbj0tMSxvPS0xLHA9LTE7dD8obj10LnBhcmVudGhlc2l6ZWRBc3NpZ24sbz10LnRyYWlsaW5nQ29tbWEscD10LmRvdWJsZVByb3RvLHQucGFyZW50aGVzaXplZEFzc2lnbj10LnRyYWlsaW5nQ29tbWE9LTEpOih0PW5ldyBBZSxzPSEwKTt2YXIgbT10aGlzLnN0YXJ0LGc9dGhpcy5zdGFydExvYzsodGhpcy50eXBlPT09ci5wYXJlbkx8fHRoaXMudHlwZT09PXIubmFtZSkmJih0aGlzLnBvdGVudGlhbEFycm93QXQ9dGhpcy5zdGFydCx0aGlzLnBvdGVudGlhbEFycm93SW5Gb3JBd2FpdD1lPT09XCJhd2FpdFwiKTt2YXIgVD10aGlzLnBhcnNlTWF5YmVDb25kaXRpb25hbChlLHQpO2lmKGkmJihUPWkuY2FsbCh0aGlzLFQsbSxnKSksdGhpcy50eXBlLmlzQXNzaWduKXt2YXIgRT10aGlzLnN0YXJ0Tm9kZUF0KG0sZyk7cmV0dXJuIEUub3BlcmF0b3I9dGhpcy52YWx1ZSx0aGlzLnR5cGU9PT1yLmVxJiYoVD10aGlzLnRvQXNzaWduYWJsZShULCExLHQpKSxzfHwodC5wYXJlbnRoZXNpemVkQXNzaWduPXQudHJhaWxpbmdDb21tYT10LmRvdWJsZVByb3RvPS0xKSx0LnNob3J0aGFuZEFzc2lnbj49VC5zdGFydCYmKHQuc2hvcnRoYW5kQXNzaWduPS0xKSx0aGlzLnR5cGU9PT1yLmVxP3RoaXMuY2hlY2tMVmFsUGF0dGVybihUKTp0aGlzLmNoZWNrTFZhbFNpbXBsZShUKSxFLmxlZnQ9VCx0aGlzLm5leHQoKSxFLnJpZ2h0PXRoaXMucGFyc2VNYXliZUFzc2lnbihlKSxwPi0xJiYodC5kb3VibGVQcm90bz1wKSx0aGlzLmZpbmlzaE5vZGUoRSxcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIpfWVsc2UgcyYmdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnModCwhMCk7cmV0dXJuIG4+LTEmJih0LnBhcmVudGhlc2l6ZWRBc3NpZ249biksbz4tMSYmKHQudHJhaWxpbmdDb21tYT1vKSxUfSxDLnBhcnNlTWF5YmVDb25kaXRpb25hbD1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuc3RhcnQscz10aGlzLnN0YXJ0TG9jLG49dGhpcy5wYXJzZUV4cHJPcHMoZSx0KTtpZih0aGlzLmNoZWNrRXhwcmVzc2lvbkVycm9ycyh0KSlyZXR1cm4gbjtpZih0aGlzLmVhdChyLnF1ZXN0aW9uKSl7dmFyIG89dGhpcy5zdGFydE5vZGVBdChpLHMpO3JldHVybiBvLnRlc3Q9bixvLmNvbnNlcXVlbnQ9dGhpcy5wYXJzZU1heWJlQXNzaWduKCksdGhpcy5leHBlY3Qoci5jb2xvbiksby5hbHRlcm5hdGU9dGhpcy5wYXJzZU1heWJlQXNzaWduKGUpLHRoaXMuZmluaXNoTm9kZShvLFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIpfXJldHVybiBufSxDLnBhcnNlRXhwck9wcz1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuc3RhcnQscz10aGlzLnN0YXJ0TG9jLG49dGhpcy5wYXJzZU1heWJlVW5hcnkodCwhMSwhMSxlKTtyZXR1cm4gdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnModCl8fG4uc3RhcnQ9PT1pJiZuLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCI/bjp0aGlzLnBhcnNlRXhwck9wKG4saSxzLC0xLGUpfSxDLnBhcnNlRXhwck9wPWZ1bmN0aW9uKGUsdCxpLHMsbil7dmFyIG89dGhpcy50eXBlLmJpbm9wO2lmKG8hPW51bGwmJighbnx8dGhpcy50eXBlIT09ci5faW4pJiZvPnMpe3ZhciBwPXRoaXMudHlwZT09PXIubG9naWNhbE9SfHx0aGlzLnR5cGU9PT1yLmxvZ2ljYWxBTkQsbT10aGlzLnR5cGU9PT1yLmNvYWxlc2NlO20mJihvPXIubG9naWNhbEFORC5iaW5vcCk7dmFyIGc9dGhpcy52YWx1ZTt0aGlzLm5leHQoKTt2YXIgVD10aGlzLnN0YXJ0LEU9dGhpcy5zdGFydExvYyxSPXRoaXMucGFyc2VFeHByT3AodGhpcy5wYXJzZU1heWJlVW5hcnkobnVsbCwhMSwhMSxuKSxULEUsbyxuKSxpZT10aGlzLmJ1aWxkQmluYXJ5KHQsaSxlLFIsZyxwfHxtKTtyZXR1cm4ocCYmdGhpcy50eXBlPT09ci5jb2FsZXNjZXx8bSYmKHRoaXMudHlwZT09PXIubG9naWNhbE9SfHx0aGlzLnR5cGU9PT1yLmxvZ2ljYWxBTkQpKSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMuc3RhcnQsXCJMb2dpY2FsIGV4cHJlc3Npb25zIGFuZCBjb2FsZXNjZSBleHByZXNzaW9ucyBjYW5ub3QgYmUgbWl4ZWQuIFdyYXAgZWl0aGVyIGJ5IHBhcmVudGhlc2VzXCIpLHRoaXMucGFyc2VFeHByT3AoaWUsdCxpLHMsbil9cmV0dXJuIGV9LEMuYnVpbGRCaW5hcnk9ZnVuY3Rpb24oZSx0LGkscyxuLG8pe3MudHlwZT09PVwiUHJpdmF0ZUlkZW50aWZpZXJcIiYmdGhpcy5yYWlzZShzLnN0YXJ0LFwiUHJpdmF0ZSBpZGVudGlmaWVyIGNhbiBvbmx5IGJlIGxlZnQgc2lkZSBvZiBiaW5hcnkgZXhwcmVzc2lvblwiKTt2YXIgcD10aGlzLnN0YXJ0Tm9kZUF0KGUsdCk7cmV0dXJuIHAubGVmdD1pLHAub3BlcmF0b3I9bixwLnJpZ2h0PXMsdGhpcy5maW5pc2hOb2RlKHAsbz9cIkxvZ2ljYWxFeHByZXNzaW9uXCI6XCJCaW5hcnlFeHByZXNzaW9uXCIpfSxDLnBhcnNlTWF5YmVVbmFyeT1mdW5jdGlvbihlLHQsaSxzKXt2YXIgbj10aGlzLnN0YXJ0LG89dGhpcy5zdGFydExvYyxwO2lmKHRoaXMuaXNDb250ZXh0dWFsKFwiYXdhaXRcIikmJnRoaXMuY2FuQXdhaXQpcD10aGlzLnBhcnNlQXdhaXQocyksdD0hMDtlbHNlIGlmKHRoaXMudHlwZS5wcmVmaXgpe3ZhciBtPXRoaXMuc3RhcnROb2RlKCksZz10aGlzLnR5cGU9PT1yLmluY0RlYzttLm9wZXJhdG9yPXRoaXMudmFsdWUsbS5wcmVmaXg9ITAsdGhpcy5uZXh0KCksbS5hcmd1bWVudD10aGlzLnBhcnNlTWF5YmVVbmFyeShudWxsLCEwLGcscyksdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMoZSwhMCksZz90aGlzLmNoZWNrTFZhbFNpbXBsZShtLmFyZ3VtZW50KTp0aGlzLnN0cmljdCYmbS5vcGVyYXRvcj09PVwiZGVsZXRlXCImJm0uYXJndW1lbnQudHlwZT09PVwiSWRlbnRpZmllclwiP3RoaXMucmFpc2VSZWNvdmVyYWJsZShtLnN0YXJ0LFwiRGVsZXRpbmcgbG9jYWwgdmFyaWFibGUgaW4gc3RyaWN0IG1vZGVcIik6bS5vcGVyYXRvcj09PVwiZGVsZXRlXCImJlR0KG0uYXJndW1lbnQpP3RoaXMucmFpc2VSZWNvdmVyYWJsZShtLnN0YXJ0LFwiUHJpdmF0ZSBmaWVsZHMgY2FuIG5vdCBiZSBkZWxldGVkXCIpOnQ9ITAscD10aGlzLmZpbmlzaE5vZGUobSxnP1wiVXBkYXRlRXhwcmVzc2lvblwiOlwiVW5hcnlFeHByZXNzaW9uXCIpfWVsc2UgaWYoIXQmJnRoaXMudHlwZT09PXIucHJpdmF0ZUlkKShzfHx0aGlzLnByaXZhdGVOYW1lU3RhY2subGVuZ3RoPT09MCkmJnRoaXMub3B0aW9ucy5jaGVja1ByaXZhdGVGaWVsZHMmJnRoaXMudW5leHBlY3RlZCgpLHA9dGhpcy5wYXJzZVByaXZhdGVJZGVudCgpLHRoaXMudHlwZSE9PXIuX2luJiZ0aGlzLnVuZXhwZWN0ZWQoKTtlbHNle2lmKHA9dGhpcy5wYXJzZUV4cHJTdWJzY3JpcHRzKGUscyksdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMoZSkpcmV0dXJuIHA7Zm9yKDt0aGlzLnR5cGUucG9zdGZpeCYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCk7KXt2YXIgVD10aGlzLnN0YXJ0Tm9kZUF0KG4sbyk7VC5vcGVyYXRvcj10aGlzLnZhbHVlLFQucHJlZml4PSExLFQuYXJndW1lbnQ9cCx0aGlzLmNoZWNrTFZhbFNpbXBsZShwKSx0aGlzLm5leHQoKSxwPXRoaXMuZmluaXNoTm9kZShULFwiVXBkYXRlRXhwcmVzc2lvblwiKX19aWYoIWkmJnRoaXMuZWF0KHIuc3RhcnN0YXIpKWlmKHQpdGhpcy51bmV4cGVjdGVkKHRoaXMubGFzdFRva1N0YXJ0KTtlbHNlIHJldHVybiB0aGlzLmJ1aWxkQmluYXJ5KG4sbyxwLHRoaXMucGFyc2VNYXliZVVuYXJ5KG51bGwsITEsITEscyksXCIqKlwiLCExKTtlbHNlIHJldHVybiBwfTtmdW5jdGlvbiBUdChlKXtyZXR1cm4gZS50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCImJmUucHJvcGVydHkudHlwZT09PVwiUHJpdmF0ZUlkZW50aWZpZXJcInx8ZS50eXBlPT09XCJDaGFpbkV4cHJlc3Npb25cIiYmVHQoZS5leHByZXNzaW9uKX1DLnBhcnNlRXhwclN1YnNjcmlwdHM9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLnN0YXJ0LHM9dGhpcy5zdGFydExvYyxuPXRoaXMucGFyc2VFeHByQXRvbShlLHQpO2lmKG4udHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmdGhpcy5pbnB1dC5zbGljZSh0aGlzLmxhc3RUb2tTdGFydCx0aGlzLmxhc3RUb2tFbmQpIT09XCIpXCIpcmV0dXJuIG47dmFyIG89dGhpcy5wYXJzZVN1YnNjcmlwdHMobixpLHMsITEsdCk7cmV0dXJuIGUmJm8udHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiYoZS5wYXJlbnRoZXNpemVkQXNzaWduPj1vLnN0YXJ0JiYoZS5wYXJlbnRoZXNpemVkQXNzaWduPS0xKSxlLnBhcmVudGhlc2l6ZWRCaW5kPj1vLnN0YXJ0JiYoZS5wYXJlbnRoZXNpemVkQmluZD0tMSksZS50cmFpbGluZ0NvbW1hPj1vLnN0YXJ0JiYoZS50cmFpbGluZ0NvbW1hPS0xKSksb30sQy5wYXJzZVN1YnNjcmlwdHM9ZnVuY3Rpb24oZSx0LGkscyxuKXtmb3IodmFyIG89dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiZlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmZS5uYW1lPT09XCJhc3luY1wiJiZ0aGlzLmxhc3RUb2tFbmQ9PT1lLmVuZCYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCkmJmUuZW5kLWUuc3RhcnQ9PT01JiZ0aGlzLnBvdGVudGlhbEFycm93QXQ9PT1lLnN0YXJ0LHA9ITE7Oyl7dmFyIG09dGhpcy5wYXJzZVN1YnNjcmlwdChlLHQsaSxzLG8scCxuKTtpZihtLm9wdGlvbmFsJiYocD0hMCksbT09PWV8fG0udHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIil7aWYocCl7dmFyIGc9dGhpcy5zdGFydE5vZGVBdCh0LGkpO2cuZXhwcmVzc2lvbj1tLG09dGhpcy5maW5pc2hOb2RlKGcsXCJDaGFpbkV4cHJlc3Npb25cIil9cmV0dXJuIG19ZT1tfX0sQy5zaG91bGRQYXJzZUFzeW5jQXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKSYmdGhpcy5lYXQoci5hcnJvdyl9LEMucGFyc2VTdWJzY3JpcHRBc3luY0Fycm93PWZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiB0aGlzLnBhcnNlQXJyb3dFeHByZXNzaW9uKHRoaXMuc3RhcnROb2RlQXQoZSx0KSxpLCEwLHMpfSxDLnBhcnNlU3Vic2NyaXB0PWZ1bmN0aW9uKGUsdCxpLHMsbixvLHApe3ZhciBtPXRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTEsZz1tJiZ0aGlzLmVhdChyLnF1ZXN0aW9uRG90KTtzJiZnJiZ0aGlzLnJhaXNlKHRoaXMubGFzdFRva1N0YXJ0LFwiT3B0aW9uYWwgY2hhaW5pbmcgY2Fubm90IGFwcGVhciBpbiB0aGUgY2FsbGVlIG9mIG5ldyBleHByZXNzaW9uc1wiKTt2YXIgVD10aGlzLmVhdChyLmJyYWNrZXRMKTtpZihUfHxnJiZ0aGlzLnR5cGUhPT1yLnBhcmVuTCYmdGhpcy50eXBlIT09ci5iYWNrUXVvdGV8fHRoaXMuZWF0KHIuZG90KSl7dmFyIEU9dGhpcy5zdGFydE5vZGVBdCh0LGkpO0Uub2JqZWN0PWUsVD8oRS5wcm9wZXJ0eT10aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuZXhwZWN0KHIuYnJhY2tldFIpKTp0aGlzLnR5cGU9PT1yLnByaXZhdGVJZCYmZS50eXBlIT09XCJTdXBlclwiP0UucHJvcGVydHk9dGhpcy5wYXJzZVByaXZhdGVJZGVudCgpOkUucHJvcGVydHk9dGhpcy5wYXJzZUlkZW50KHRoaXMub3B0aW9ucy5hbGxvd1Jlc2VydmVkIT09XCJuZXZlclwiKSxFLmNvbXB1dGVkPSEhVCxtJiYoRS5vcHRpb25hbD1nKSxlPXRoaXMuZmluaXNoTm9kZShFLFwiTWVtYmVyRXhwcmVzc2lvblwiKX1lbHNlIGlmKCFzJiZ0aGlzLmVhdChyLnBhcmVuTCkpe3ZhciBSPW5ldyBBZSxpZT10aGlzLnlpZWxkUG9zLHZlPXRoaXMuYXdhaXRQb3MsdWU9dGhpcy5hd2FpdElkZW50UG9zO3RoaXMueWllbGRQb3M9MCx0aGlzLmF3YWl0UG9zPTAsdGhpcy5hd2FpdElkZW50UG9zPTA7dmFyIExlPXRoaXMucGFyc2VFeHByTGlzdChyLnBhcmVuUix0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTgsITEsUik7aWYobiYmIWcmJnRoaXMuc2hvdWxkUGFyc2VBc3luY0Fycm93KCkpcmV0dXJuIHRoaXMuY2hlY2tQYXR0ZXJuRXJyb3JzKFIsITEpLHRoaXMuY2hlY2tZaWVsZEF3YWl0SW5EZWZhdWx0UGFyYW1zKCksdGhpcy5hd2FpdElkZW50UG9zPjAmJnRoaXMucmFpc2UodGhpcy5hd2FpdElkZW50UG9zLFwiQ2Fubm90IHVzZSAnYXdhaXQnIGFzIGlkZW50aWZpZXIgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXCIpLHRoaXMueWllbGRQb3M9aWUsdGhpcy5hd2FpdFBvcz12ZSx0aGlzLmF3YWl0SWRlbnRQb3M9dWUsdGhpcy5wYXJzZVN1YnNjcmlwdEFzeW5jQXJyb3codCxpLExlLHApO3RoaXMuY2hlY2tFeHByZXNzaW9uRXJyb3JzKFIsITApLHRoaXMueWllbGRQb3M9aWV8fHRoaXMueWllbGRQb3MsdGhpcy5hd2FpdFBvcz12ZXx8dGhpcy5hd2FpdFBvcyx0aGlzLmF3YWl0SWRlbnRQb3M9dWV8fHRoaXMuYXdhaXRJZGVudFBvczt2YXIgaGU9dGhpcy5zdGFydE5vZGVBdCh0LGkpO2hlLmNhbGxlZT1lLGhlLmFyZ3VtZW50cz1MZSxtJiYoaGUub3B0aW9uYWw9ZyksZT10aGlzLmZpbmlzaE5vZGUoaGUsXCJDYWxsRXhwcmVzc2lvblwiKX1lbHNlIGlmKHRoaXMudHlwZT09PXIuYmFja1F1b3RlKXsoZ3x8bykmJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIk9wdGlvbmFsIGNoYWluaW5nIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHRhZyBvZiB0YWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbnNcIik7dmFyIHBlPXRoaXMuc3RhcnROb2RlQXQodCxpKTtwZS50YWc9ZSxwZS5xdWFzaT10aGlzLnBhcnNlVGVtcGxhdGUoe2lzVGFnZ2VkOiEwfSksZT10aGlzLmZpbmlzaE5vZGUocGUsXCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIil9cmV0dXJuIGV9LEMucGFyc2VFeHByQXRvbT1mdW5jdGlvbihlLHQsaSl7dGhpcy50eXBlPT09ci5zbGFzaCYmdGhpcy5yZWFkUmVnZXhwKCk7dmFyIHMsbj10aGlzLnBvdGVudGlhbEFycm93QXQ9PT10aGlzLnN0YXJ0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2Ugci5fc3VwZXI6cmV0dXJuIHRoaXMuYWxsb3dTdXBlcnx8dGhpcy5yYWlzZSh0aGlzLnN0YXJ0LFwiJ3N1cGVyJyBrZXl3b3JkIG91dHNpZGUgYSBtZXRob2RcIikscz10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMubmV4dCgpLHRoaXMudHlwZT09PXIucGFyZW5MJiYhdGhpcy5hbGxvd0RpcmVjdFN1cGVyJiZ0aGlzLnJhaXNlKHMuc3RhcnQsXCJzdXBlcigpIGNhbGwgb3V0c2lkZSBjb25zdHJ1Y3RvciBvZiBhIHN1YmNsYXNzXCIpLHRoaXMudHlwZSE9PXIuZG90JiZ0aGlzLnR5cGUhPT1yLmJyYWNrZXRMJiZ0aGlzLnR5cGUhPT1yLnBhcmVuTCYmdGhpcy51bmV4cGVjdGVkKCksdGhpcy5maW5pc2hOb2RlKHMsXCJTdXBlclwiKTtjYXNlIHIuX3RoaXM6cmV0dXJuIHM9dGhpcy5zdGFydE5vZGUoKSx0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUocyxcIlRoaXNFeHByZXNzaW9uXCIpO2Nhc2Ugci5uYW1lOnZhciBvPXRoaXMuc3RhcnQscD10aGlzLnN0YXJ0TG9jLG09dGhpcy5jb250YWluc0VzYyxnPXRoaXMucGFyc2VJZGVudCghMSk7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiYhbSYmZy5uYW1lPT09XCJhc3luY1wiJiYhdGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKSYmdGhpcy5lYXQoci5fZnVuY3Rpb24pKXJldHVybiB0aGlzLm92ZXJyaWRlQ29udGV4dChJLmZfZXhwciksdGhpcy5wYXJzZUZ1bmN0aW9uKHRoaXMuc3RhcnROb2RlQXQobyxwKSwwLCExLCEwLHQpO2lmKG4mJiF0aGlzLmNhbkluc2VydFNlbWljb2xvbigpKXtpZih0aGlzLmVhdChyLmFycm93KSlyZXR1cm4gdGhpcy5wYXJzZUFycm93RXhwcmVzc2lvbih0aGlzLnN0YXJ0Tm9kZUF0KG8scCksW2ddLCExLHQpO2lmKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49OCYmZy5uYW1lPT09XCJhc3luY1wiJiZ0aGlzLnR5cGU9PT1yLm5hbWUmJiFtJiYoIXRoaXMucG90ZW50aWFsQXJyb3dJbkZvckF3YWl0fHx0aGlzLnZhbHVlIT09XCJvZlwifHx0aGlzLmNvbnRhaW5zRXNjKSlyZXR1cm4gZz10aGlzLnBhcnNlSWRlbnQoITEpLCh0aGlzLmNhbkluc2VydFNlbWljb2xvbigpfHwhdGhpcy5lYXQoci5hcnJvdykpJiZ0aGlzLnVuZXhwZWN0ZWQoKSx0aGlzLnBhcnNlQXJyb3dFeHByZXNzaW9uKHRoaXMuc3RhcnROb2RlQXQobyxwKSxbZ10sITAsdCl9cmV0dXJuIGc7Y2FzZSByLnJlZ2V4cDp2YXIgVD10aGlzLnZhbHVlO3JldHVybiBzPXRoaXMucGFyc2VMaXRlcmFsKFQudmFsdWUpLHMucmVnZXg9e3BhdHRlcm46VC5wYXR0ZXJuLGZsYWdzOlQuZmxhZ3N9LHM7Y2FzZSByLm51bTpjYXNlIHIuc3RyaW5nOnJldHVybiB0aGlzLnBhcnNlTGl0ZXJhbCh0aGlzLnZhbHVlKTtjYXNlIHIuX251bGw6Y2FzZSByLl90cnVlOmNhc2Ugci5fZmFsc2U6cmV0dXJuIHM9dGhpcy5zdGFydE5vZGUoKSxzLnZhbHVlPXRoaXMudHlwZT09PXIuX251bGw/bnVsbDp0aGlzLnR5cGU9PT1yLl90cnVlLHMucmF3PXRoaXMudHlwZS5rZXl3b3JkLHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShzLFwiTGl0ZXJhbFwiKTtjYXNlIHIucGFyZW5MOnZhciBFPXRoaXMuc3RhcnQsUj10aGlzLnBhcnNlUGFyZW5BbmREaXN0aW5ndWlzaEV4cHJlc3Npb24obix0KTtyZXR1cm4gZSYmKGUucGFyZW50aGVzaXplZEFzc2lnbjwwJiYhdGhpcy5pc1NpbXBsZUFzc2lnblRhcmdldChSKSYmKGUucGFyZW50aGVzaXplZEFzc2lnbj1FKSxlLnBhcmVudGhlc2l6ZWRCaW5kPDAmJihlLnBhcmVudGhlc2l6ZWRCaW5kPUUpKSxSO2Nhc2Ugci5icmFja2V0TDpyZXR1cm4gcz10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMubmV4dCgpLHMuZWxlbWVudHM9dGhpcy5wYXJzZUV4cHJMaXN0KHIuYnJhY2tldFIsITAsITAsZSksdGhpcy5maW5pc2hOb2RlKHMsXCJBcnJheUV4cHJlc3Npb25cIik7Y2FzZSByLmJyYWNlTDpyZXR1cm4gdGhpcy5vdmVycmlkZUNvbnRleHQoSS5iX2V4cHIpLHRoaXMucGFyc2VPYmooITEsZSk7Y2FzZSByLl9mdW5jdGlvbjpyZXR1cm4gcz10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMubmV4dCgpLHRoaXMucGFyc2VGdW5jdGlvbihzLDApO2Nhc2Ugci5fY2xhc3M6cmV0dXJuIHRoaXMucGFyc2VDbGFzcyh0aGlzLnN0YXJ0Tm9kZSgpLCExKTtjYXNlIHIuX25ldzpyZXR1cm4gdGhpcy5wYXJzZU5ldygpO2Nhc2Ugci5iYWNrUXVvdGU6cmV0dXJuIHRoaXMucGFyc2VUZW1wbGF0ZSgpO2Nhc2Ugci5faW1wb3J0OnJldHVybiB0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTExP3RoaXMucGFyc2VFeHBySW1wb3J0KGkpOnRoaXMudW5leHBlY3RlZCgpO2RlZmF1bHQ6cmV0dXJuIHRoaXMucGFyc2VFeHByQXRvbURlZmF1bHQoKX19LEMucGFyc2VFeHByQXRvbURlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLnVuZXhwZWN0ZWQoKX0sQy5wYXJzZUV4cHJJbXBvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5zdGFydE5vZGUoKTt0aGlzLmNvbnRhaW5zRXNjJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodGhpcy5zdGFydCxcIkVzY2FwZSBzZXF1ZW5jZSBpbiBrZXl3b3JkIGltcG9ydFwiKTt2YXIgaT10aGlzLnBhcnNlSWRlbnQoITApO2lmKHRoaXMudHlwZT09PXIucGFyZW5MJiYhZSlyZXR1cm4gdGhpcy5wYXJzZUR5bmFtaWNJbXBvcnQodCk7aWYodGhpcy50eXBlPT09ci5kb3QpcmV0dXJuIHQubWV0YT1pLHRoaXMucGFyc2VJbXBvcnRNZXRhKHQpO3RoaXMudW5leHBlY3RlZCgpfSxDLnBhcnNlRHluYW1pY0ltcG9ydD1mdW5jdGlvbihlKXtpZih0aGlzLm5leHQoKSxlLnNvdXJjZT10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKSwhdGhpcy5lYXQoci5wYXJlblIpKXt2YXIgdD10aGlzLnN0YXJ0O3RoaXMuZWF0KHIuY29tbWEpJiZ0aGlzLmVhdChyLnBhcmVuUik/dGhpcy5yYWlzZVJlY292ZXJhYmxlKHQsXCJUcmFpbGluZyBjb21tYSBpcyBub3QgYWxsb3dlZCBpbiBpbXBvcnQoKVwiKTp0aGlzLnVuZXhwZWN0ZWQodCl9cmV0dXJuIHRoaXMuZmluaXNoTm9kZShlLFwiSW1wb3J0RXhwcmVzc2lvblwiKX0sQy5wYXJzZUltcG9ydE1ldGE9ZnVuY3Rpb24oZSl7dGhpcy5uZXh0KCk7dmFyIHQ9dGhpcy5jb250YWluc0VzYztyZXR1cm4gZS5wcm9wZXJ0eT10aGlzLnBhcnNlSWRlbnQoITApLGUucHJvcGVydHkubmFtZSE9PVwibWV0YVwiJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5wcm9wZXJ0eS5zdGFydCxcIlRoZSBvbmx5IHZhbGlkIG1ldGEgcHJvcGVydHkgZm9yIGltcG9ydCBpcyAnaW1wb3J0Lm1ldGEnXCIpLHQmJnRoaXMucmFpc2VSZWNvdmVyYWJsZShlLnN0YXJ0LFwiJ2ltcG9ydC5tZXRhJyBtdXN0IG5vdCBjb250YWluIGVzY2FwZWQgY2hhcmFjdGVyc1wiKSx0aGlzLm9wdGlvbnMuc291cmNlVHlwZSE9PVwibW9kdWxlXCImJiF0aGlzLm9wdGlvbnMuYWxsb3dJbXBvcnRFeHBvcnRFdmVyeXdoZXJlJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5zdGFydCxcIkNhbm5vdCB1c2UgJ2ltcG9ydC5tZXRhJyBvdXRzaWRlIGEgbW9kdWxlXCIpLHRoaXMuZmluaXNoTm9kZShlLFwiTWV0YVByb3BlcnR5XCIpfSxDLnBhcnNlTGl0ZXJhbD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0LnZhbHVlPWUsdC5yYXc9dGhpcy5pbnB1dC5zbGljZSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0LnJhdy5jaGFyQ29kZUF0KHQucmF3Lmxlbmd0aC0xKT09PTExMCYmKHQuYmlnaW50PXQucmF3LnNsaWNlKDAsLTEpLnJlcGxhY2UoL18vZyxcIlwiKSksdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKHQsXCJMaXRlcmFsXCIpfSxDLnBhcnNlUGFyZW5FeHByZXNzaW9uPWZ1bmN0aW9uKCl7dGhpcy5leHBlY3Qoci5wYXJlbkwpO3ZhciBlPXRoaXMucGFyc2VFeHByZXNzaW9uKCk7cmV0dXJuIHRoaXMuZXhwZWN0KHIucGFyZW5SKSxlfSxDLnNob3VsZFBhcnNlQXJyb3c9ZnVuY3Rpb24oZSl7cmV0dXJuIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCl9LEMucGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbj1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuc3RhcnQscz10aGlzLnN0YXJ0TG9jLG4sbz10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTg7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02KXt0aGlzLm5leHQoKTt2YXIgcD10aGlzLnN0YXJ0LG09dGhpcy5zdGFydExvYyxnPVtdLFQ9ITAsRT0hMSxSPW5ldyBBZSxpZT10aGlzLnlpZWxkUG9zLHZlPXRoaXMuYXdhaXRQb3MsdWU7Zm9yKHRoaXMueWllbGRQb3M9MCx0aGlzLmF3YWl0UG9zPTA7dGhpcy50eXBlIT09ci5wYXJlblI7KWlmKFQ/VD0hMTp0aGlzLmV4cGVjdChyLmNvbW1hKSxvJiZ0aGlzLmFmdGVyVHJhaWxpbmdDb21tYShyLnBhcmVuUiwhMCkpe0U9ITA7YnJlYWt9ZWxzZSBpZih0aGlzLnR5cGU9PT1yLmVsbGlwc2lzKXt1ZT10aGlzLnN0YXJ0LGcucHVzaCh0aGlzLnBhcnNlUGFyZW5JdGVtKHRoaXMucGFyc2VSZXN0QmluZGluZygpKSksdGhpcy50eXBlPT09ci5jb21tYSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMuc3RhcnQsXCJDb21tYSBpcyBub3QgcGVybWl0dGVkIGFmdGVyIHRoZSByZXN0IGVsZW1lbnRcIik7YnJlYWt9ZWxzZSBnLnB1c2godGhpcy5wYXJzZU1heWJlQXNzaWduKCExLFIsdGhpcy5wYXJzZVBhcmVuSXRlbSkpO3ZhciBMZT10aGlzLmxhc3RUb2tFbmQsaGU9dGhpcy5sYXN0VG9rRW5kTG9jO2lmKHRoaXMuZXhwZWN0KHIucGFyZW5SKSxlJiZ0aGlzLnNob3VsZFBhcnNlQXJyb3coZykmJnRoaXMuZWF0KHIuYXJyb3cpKXJldHVybiB0aGlzLmNoZWNrUGF0dGVybkVycm9ycyhSLCExKSx0aGlzLmNoZWNrWWllbGRBd2FpdEluRGVmYXVsdFBhcmFtcygpLHRoaXMueWllbGRQb3M9aWUsdGhpcy5hd2FpdFBvcz12ZSx0aGlzLnBhcnNlUGFyZW5BcnJvd0xpc3QoaSxzLGcsdCk7KCFnLmxlbmd0aHx8RSkmJnRoaXMudW5leHBlY3RlZCh0aGlzLmxhc3RUb2tTdGFydCksdWUmJnRoaXMudW5leHBlY3RlZCh1ZSksdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMoUiwhMCksdGhpcy55aWVsZFBvcz1pZXx8dGhpcy55aWVsZFBvcyx0aGlzLmF3YWl0UG9zPXZlfHx0aGlzLmF3YWl0UG9zLGcubGVuZ3RoPjE/KG49dGhpcy5zdGFydE5vZGVBdChwLG0pLG4uZXhwcmVzc2lvbnM9Zyx0aGlzLmZpbmlzaE5vZGVBdChuLFwiU2VxdWVuY2VFeHByZXNzaW9uXCIsTGUsaGUpKTpuPWdbMF19ZWxzZSBuPXRoaXMucGFyc2VQYXJlbkV4cHJlc3Npb24oKTtpZih0aGlzLm9wdGlvbnMucHJlc2VydmVQYXJlbnMpe3ZhciBwZT10aGlzLnN0YXJ0Tm9kZUF0KGkscyk7cmV0dXJuIHBlLmV4cHJlc3Npb249bix0aGlzLmZpbmlzaE5vZGUocGUsXCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiKX1lbHNlIHJldHVybiBufSxDLnBhcnNlUGFyZW5JdGVtPWZ1bmN0aW9uKGUpe3JldHVybiBlfSxDLnBhcnNlUGFyZW5BcnJvd0xpc3Q9ZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIHRoaXMucGFyc2VBcnJvd0V4cHJlc3Npb24odGhpcy5zdGFydE5vZGVBdChlLHQpLGksITEscyl9O3ZhciBJaT1bXTtDLnBhcnNlTmV3PWZ1bmN0aW9uKCl7dGhpcy5jb250YWluc0VzYyYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMuc3RhcnQsXCJFc2NhcGUgc2VxdWVuY2UgaW4ga2V5d29yZCBuZXdcIik7dmFyIGU9dGhpcy5zdGFydE5vZGUoKSx0PXRoaXMucGFyc2VJZGVudCghMCk7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiZ0aGlzLmVhdChyLmRvdCkpe2UubWV0YT10O3ZhciBpPXRoaXMuY29udGFpbnNFc2M7cmV0dXJuIGUucHJvcGVydHk9dGhpcy5wYXJzZUlkZW50KCEwKSxlLnByb3BlcnR5Lm5hbWUhPT1cInRhcmdldFwiJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5wcm9wZXJ0eS5zdGFydCxcIlRoZSBvbmx5IHZhbGlkIG1ldGEgcHJvcGVydHkgZm9yIG5ldyBpcyAnbmV3LnRhcmdldCdcIiksaSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGUuc3RhcnQsXCInbmV3LnRhcmdldCcgbXVzdCBub3QgY29udGFpbiBlc2NhcGVkIGNoYXJhY3RlcnNcIiksdGhpcy5hbGxvd05ld0RvdFRhcmdldHx8dGhpcy5yYWlzZVJlY292ZXJhYmxlKGUuc3RhcnQsXCInbmV3LnRhcmdldCcgY2FuIG9ubHkgYmUgdXNlZCBpbiBmdW5jdGlvbnMgYW5kIGNsYXNzIHN0YXRpYyBibG9ja1wiKSx0aGlzLmZpbmlzaE5vZGUoZSxcIk1ldGFQcm9wZXJ0eVwiKX12YXIgcz10aGlzLnN0YXJ0LG49dGhpcy5zdGFydExvYztyZXR1cm4gZS5jYWxsZWU9dGhpcy5wYXJzZVN1YnNjcmlwdHModGhpcy5wYXJzZUV4cHJBdG9tKG51bGwsITEsITApLHMsbiwhMCwhMSksdGhpcy5lYXQoci5wYXJlbkwpP2UuYXJndW1lbnRzPXRoaXMucGFyc2VFeHByTGlzdChyLnBhcmVuUix0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTgsITEpOmUuYXJndW1lbnRzPUlpLHRoaXMuZmluaXNoTm9kZShlLFwiTmV3RXhwcmVzc2lvblwiKX0sQy5wYXJzZVRlbXBsYXRlRWxlbWVudD1mdW5jdGlvbihlKXt2YXIgdD1lLmlzVGFnZ2VkLGk9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy50eXBlPT09ci5pbnZhbGlkVGVtcGxhdGU/KHR8fHRoaXMucmFpc2VSZWNvdmVyYWJsZSh0aGlzLnN0YXJ0LFwiQmFkIGVzY2FwZSBzZXF1ZW5jZSBpbiB1bnRhZ2dlZCB0ZW1wbGF0ZSBsaXRlcmFsXCIpLGkudmFsdWU9e3Jhdzp0aGlzLnZhbHVlLGNvb2tlZDpudWxsfSk6aS52YWx1ZT17cmF3OnRoaXMuaW5wdXQuc2xpY2UodGhpcy5zdGFydCx0aGlzLmVuZCkucmVwbGFjZSgvXFxyXFxuPy9nLGBcbmApLGNvb2tlZDp0aGlzLnZhbHVlfSx0aGlzLm5leHQoKSxpLnRhaWw9dGhpcy50eXBlPT09ci5iYWNrUXVvdGUsdGhpcy5maW5pc2hOb2RlKGksXCJUZW1wbGF0ZUVsZW1lbnRcIil9LEMucGFyc2VUZW1wbGF0ZT1mdW5jdGlvbihlKXtlPT09dm9pZCAwJiYoZT17fSk7dmFyIHQ9ZS5pc1RhZ2dlZDt0PT09dm9pZCAwJiYodD0hMSk7dmFyIGk9dGhpcy5zdGFydE5vZGUoKTt0aGlzLm5leHQoKSxpLmV4cHJlc3Npb25zPVtdO3ZhciBzPXRoaXMucGFyc2VUZW1wbGF0ZUVsZW1lbnQoe2lzVGFnZ2VkOnR9KTtmb3IoaS5xdWFzaXM9W3NdOyFzLnRhaWw7KXRoaXMudHlwZT09PXIuZW9mJiZ0aGlzLnJhaXNlKHRoaXMucG9zLFwiVW50ZXJtaW5hdGVkIHRlbXBsYXRlIGxpdGVyYWxcIiksdGhpcy5leHBlY3Qoci5kb2xsYXJCcmFjZUwpLGkuZXhwcmVzc2lvbnMucHVzaCh0aGlzLnBhcnNlRXhwcmVzc2lvbigpKSx0aGlzLmV4cGVjdChyLmJyYWNlUiksaS5xdWFzaXMucHVzaChzPXRoaXMucGFyc2VUZW1wbGF0ZUVsZW1lbnQoe2lzVGFnZ2VkOnR9KSk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShpLFwiVGVtcGxhdGVMaXRlcmFsXCIpfSxDLmlzQXN5bmNQcm9wPWZ1bmN0aW9uKGUpe3JldHVybiFlLmNvbXB1dGVkJiZlLmtleS50eXBlPT09XCJJZGVudGlmaWVyXCImJmUua2V5Lm5hbWU9PT1cImFzeW5jXCImJih0aGlzLnR5cGU9PT1yLm5hbWV8fHRoaXMudHlwZT09PXIubnVtfHx0aGlzLnR5cGU9PT1yLnN0cmluZ3x8dGhpcy50eXBlPT09ci5icmFja2V0THx8dGhpcy50eXBlLmtleXdvcmR8fHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49OSYmdGhpcy50eXBlPT09ci5zdGFyKSYmIWoudGVzdCh0aGlzLmlucHV0LnNsaWNlKHRoaXMubGFzdFRva0VuZCx0aGlzLnN0YXJ0KSl9LEMucGFyc2VPYmo9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLnN0YXJ0Tm9kZSgpLHM9ITAsbj17fTtmb3IoaS5wcm9wZXJ0aWVzPVtdLHRoaXMubmV4dCgpOyF0aGlzLmVhdChyLmJyYWNlUik7KXtpZihzKXM9ITE7ZWxzZSBpZih0aGlzLmV4cGVjdChyLmNvbW1hKSx0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTUmJnRoaXMuYWZ0ZXJUcmFpbGluZ0NvbW1hKHIuYnJhY2VSKSlicmVhazt2YXIgbz10aGlzLnBhcnNlUHJvcGVydHkoZSx0KTtlfHx0aGlzLmNoZWNrUHJvcENsYXNoKG8sbix0KSxpLnByb3BlcnRpZXMucHVzaChvKX1yZXR1cm4gdGhpcy5maW5pc2hOb2RlKGksZT9cIk9iamVjdFBhdHRlcm5cIjpcIk9iamVjdEV4cHJlc3Npb25cIil9LEMucGFyc2VQcm9wZXJ0eT1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuc3RhcnROb2RlKCkscyxuLG8scDtpZih0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTkmJnRoaXMuZWF0KHIuZWxsaXBzaXMpKXJldHVybiBlPyhpLmFyZ3VtZW50PXRoaXMucGFyc2VJZGVudCghMSksdGhpcy50eXBlPT09ci5jb21tYSYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMuc3RhcnQsXCJDb21tYSBpcyBub3QgcGVybWl0dGVkIGFmdGVyIHRoZSByZXN0IGVsZW1lbnRcIiksdGhpcy5maW5pc2hOb2RlKGksXCJSZXN0RWxlbWVudFwiKSk6KGkuYXJndW1lbnQ9dGhpcy5wYXJzZU1heWJlQXNzaWduKCExLHQpLHRoaXMudHlwZT09PXIuY29tbWEmJnQmJnQudHJhaWxpbmdDb21tYTwwJiYodC50cmFpbGluZ0NvbW1hPXRoaXMuc3RhcnQpLHRoaXMuZmluaXNoTm9kZShpLFwiU3ByZWFkRWxlbWVudFwiKSk7dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiYoaS5tZXRob2Q9ITEsaS5zaG9ydGhhbmQ9ITEsKGV8fHQpJiYobz10aGlzLnN0YXJ0LHA9dGhpcy5zdGFydExvYyksZXx8KHM9dGhpcy5lYXQoci5zdGFyKSkpO3ZhciBtPXRoaXMuY29udGFpbnNFc2M7cmV0dXJuIHRoaXMucGFyc2VQcm9wZXJ0eU5hbWUoaSksIWUmJiFtJiZ0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTgmJiFzJiZ0aGlzLmlzQXN5bmNQcm9wKGkpPyhuPSEwLHM9dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiZ0aGlzLmVhdChyLnN0YXIpLHRoaXMucGFyc2VQcm9wZXJ0eU5hbWUoaSkpOm49ITEsdGhpcy5wYXJzZVByb3BlcnR5VmFsdWUoaSxlLHMsbixvLHAsdCxtKSx0aGlzLmZpbmlzaE5vZGUoaSxcIlByb3BlcnR5XCIpfSxDLnBhcnNlR2V0dGVyU2V0dGVyPWZ1bmN0aW9uKGUpe2Uua2luZD1lLmtleS5uYW1lLHRoaXMucGFyc2VQcm9wZXJ0eU5hbWUoZSksZS52YWx1ZT10aGlzLnBhcnNlTWV0aG9kKCExKTt2YXIgdD1lLmtpbmQ9PT1cImdldFwiPzA6MTtpZihlLnZhbHVlLnBhcmFtcy5sZW5ndGghPT10KXt2YXIgaT1lLnZhbHVlLnN0YXJ0O2Uua2luZD09PVwiZ2V0XCI/dGhpcy5yYWlzZVJlY292ZXJhYmxlKGksXCJnZXR0ZXIgc2hvdWxkIGhhdmUgbm8gcGFyYW1zXCIpOnRoaXMucmFpc2VSZWNvdmVyYWJsZShpLFwic2V0dGVyIHNob3VsZCBoYXZlIGV4YWN0bHkgb25lIHBhcmFtXCIpfWVsc2UgZS5raW5kPT09XCJzZXRcIiYmZS52YWx1ZS5wYXJhbXNbMF0udHlwZT09PVwiUmVzdEVsZW1lbnRcIiYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGUudmFsdWUucGFyYW1zWzBdLnN0YXJ0LFwiU2V0dGVyIGNhbm5vdCB1c2UgcmVzdCBwYXJhbXNcIil9LEMucGFyc2VQcm9wZXJ0eVZhbHVlPWZ1bmN0aW9uKGUsdCxpLHMsbixvLHAsbSl7KGl8fHMpJiZ0aGlzLnR5cGU9PT1yLmNvbG9uJiZ0aGlzLnVuZXhwZWN0ZWQoKSx0aGlzLmVhdChyLmNvbG9uKT8oZS52YWx1ZT10P3RoaXMucGFyc2VNYXliZURlZmF1bHQodGhpcy5zdGFydCx0aGlzLnN0YXJ0TG9jKTp0aGlzLnBhcnNlTWF5YmVBc3NpZ24oITEscCksZS5raW5kPVwiaW5pdFwiKTp0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTYmJnRoaXMudHlwZT09PXIucGFyZW5MPyh0JiZ0aGlzLnVuZXhwZWN0ZWQoKSxlLmtpbmQ9XCJpbml0XCIsZS5tZXRob2Q9ITAsZS52YWx1ZT10aGlzLnBhcnNlTWV0aG9kKGkscykpOiF0JiYhbSYmdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj01JiYhZS5jb21wdXRlZCYmZS5rZXkudHlwZT09PVwiSWRlbnRpZmllclwiJiYoZS5rZXkubmFtZT09PVwiZ2V0XCJ8fGUua2V5Lm5hbWU9PT1cInNldFwiKSYmdGhpcy50eXBlIT09ci5jb21tYSYmdGhpcy50eXBlIT09ci5icmFjZVImJnRoaXMudHlwZSE9PXIuZXE/KChpfHxzKSYmdGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZUdldHRlclNldHRlcihlKSk6dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiYhZS5jb21wdXRlZCYmZS5rZXkudHlwZT09PVwiSWRlbnRpZmllclwiPygoaXx8cykmJnRoaXMudW5leHBlY3RlZCgpLHRoaXMuY2hlY2tVbnJlc2VydmVkKGUua2V5KSxlLmtleS5uYW1lPT09XCJhd2FpdFwiJiYhdGhpcy5hd2FpdElkZW50UG9zJiYodGhpcy5hd2FpdElkZW50UG9zPW4pLGUua2luZD1cImluaXRcIix0P2UudmFsdWU9dGhpcy5wYXJzZU1heWJlRGVmYXVsdChuLG8sdGhpcy5jb3B5Tm9kZShlLmtleSkpOnRoaXMudHlwZT09PXIuZXEmJnA/KHAuc2hvcnRoYW5kQXNzaWduPDAmJihwLnNob3J0aGFuZEFzc2lnbj10aGlzLnN0YXJ0KSxlLnZhbHVlPXRoaXMucGFyc2VNYXliZURlZmF1bHQobixvLHRoaXMuY29weU5vZGUoZS5rZXkpKSk6ZS52YWx1ZT10aGlzLmNvcHlOb2RlKGUua2V5KSxlLnNob3J0aGFuZD0hMCk6dGhpcy51bmV4cGVjdGVkKCl9LEMucGFyc2VQcm9wZXJ0eU5hbWU9ZnVuY3Rpb24oZSl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02KXtpZih0aGlzLmVhdChyLmJyYWNrZXRMKSlyZXR1cm4gZS5jb21wdXRlZD0hMCxlLmtleT10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKSx0aGlzLmV4cGVjdChyLmJyYWNrZXRSKSxlLmtleTtlLmNvbXB1dGVkPSExfXJldHVybiBlLmtleT10aGlzLnR5cGU9PT1yLm51bXx8dGhpcy50eXBlPT09ci5zdHJpbmc/dGhpcy5wYXJzZUV4cHJBdG9tKCk6dGhpcy5wYXJzZUlkZW50KHRoaXMub3B0aW9ucy5hbGxvd1Jlc2VydmVkIT09XCJuZXZlclwiKX0sQy5pbml0RnVuY3Rpb249ZnVuY3Rpb24oZSl7ZS5pZD1udWxsLHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49NiYmKGUuZ2VuZXJhdG9yPWUuZXhwcmVzc2lvbj0hMSksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiYoZS5hc3luYz0hMSl9LEMucGFyc2VNZXRob2Q9ZnVuY3Rpb24oZSx0LGkpe3ZhciBzPXRoaXMuc3RhcnROb2RlKCksbj10aGlzLnlpZWxkUG9zLG89dGhpcy5hd2FpdFBvcyxwPXRoaXMuYXdhaXRJZGVudFBvcztyZXR1cm4gdGhpcy5pbml0RnVuY3Rpb24ocyksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02JiYocy5nZW5lcmF0b3I9ZSksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiYocy5hc3luYz0hIXQpLHRoaXMueWllbGRQb3M9MCx0aGlzLmF3YWl0UG9zPTAsdGhpcy5hd2FpdElkZW50UG9zPTAsdGhpcy5lbnRlclNjb3BlKHplKHQscy5nZW5lcmF0b3IpfFdlfChpP2J0OjApKSx0aGlzLmV4cGVjdChyLnBhcmVuTCkscy5wYXJhbXM9dGhpcy5wYXJzZUJpbmRpbmdMaXN0KHIucGFyZW5SLCExLHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49OCksdGhpcy5jaGVja1lpZWxkQXdhaXRJbkRlZmF1bHRQYXJhbXMoKSx0aGlzLnBhcnNlRnVuY3Rpb25Cb2R5KHMsITEsITAsITEpLHRoaXMueWllbGRQb3M9bix0aGlzLmF3YWl0UG9zPW8sdGhpcy5hd2FpdElkZW50UG9zPXAsdGhpcy5maW5pc2hOb2RlKHMsXCJGdW5jdGlvbkV4cHJlc3Npb25cIil9LEMucGFyc2VBcnJvd0V4cHJlc3Npb249ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49dGhpcy55aWVsZFBvcyxvPXRoaXMuYXdhaXRQb3MscD10aGlzLmF3YWl0SWRlbnRQb3M7cmV0dXJuIHRoaXMuZW50ZXJTY29wZSh6ZShpLCExKXxndCksdGhpcy5pbml0RnVuY3Rpb24oZSksdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj04JiYoZS5hc3luYz0hIWkpLHRoaXMueWllbGRQb3M9MCx0aGlzLmF3YWl0UG9zPTAsdGhpcy5hd2FpdElkZW50UG9zPTAsZS5wYXJhbXM9dGhpcy50b0Fzc2lnbmFibGVMaXN0KHQsITApLHRoaXMucGFyc2VGdW5jdGlvbkJvZHkoZSwhMCwhMSxzKSx0aGlzLnlpZWxkUG9zPW4sdGhpcy5hd2FpdFBvcz1vLHRoaXMuYXdhaXRJZGVudFBvcz1wLHRoaXMuZmluaXNoTm9kZShlLFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIil9LEMucGFyc2VGdW5jdGlvbkJvZHk9ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49dCYmdGhpcy50eXBlIT09ci5icmFjZUwsbz10aGlzLnN0cmljdCxwPSExO2lmKG4pZS5ib2R5PXRoaXMucGFyc2VNYXliZUFzc2lnbihzKSxlLmV4cHJlc3Npb249ITAsdGhpcy5jaGVja1BhcmFtcyhlLCExKTtlbHNle3ZhciBtPXRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49NyYmIXRoaXMuaXNTaW1wbGVQYXJhbUxpc3QoZS5wYXJhbXMpOyghb3x8bSkmJihwPXRoaXMuc3RyaWN0RGlyZWN0aXZlKHRoaXMuZW5kKSxwJiZtJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUoZS5zdGFydCxcIklsbGVnYWwgJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSBpbiBmdW5jdGlvbiB3aXRoIG5vbi1zaW1wbGUgcGFyYW1ldGVyIGxpc3RcIikpO3ZhciBnPXRoaXMubGFiZWxzO3RoaXMubGFiZWxzPVtdLHAmJih0aGlzLnN0cmljdD0hMCksdGhpcy5jaGVja1BhcmFtcyhlLCFvJiYhcCYmIXQmJiFpJiZ0aGlzLmlzU2ltcGxlUGFyYW1MaXN0KGUucGFyYW1zKSksdGhpcy5zdHJpY3QmJmUuaWQmJnRoaXMuY2hlY2tMVmFsU2ltcGxlKGUuaWQsQ3QpLGUuYm9keT10aGlzLnBhcnNlQmxvY2soITEsdm9pZCAwLHAmJiFvKSxlLmV4cHJlc3Npb249ITEsdGhpcy5hZGFwdERpcmVjdGl2ZVByb2xvZ3VlKGUuYm9keS5ib2R5KSx0aGlzLmxhYmVscz1nfXRoaXMuZXhpdFNjb3BlKCl9LEMuaXNTaW1wbGVQYXJhbUxpc3Q9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1lO3Q8aS5sZW5ndGg7dCs9MSl7dmFyIHM9aVt0XTtpZihzLnR5cGUhPT1cIklkZW50aWZpZXJcIilyZXR1cm4hMX1yZXR1cm4hMH0sQy5jaGVja1BhcmFtcz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpLHM9MCxuPWUucGFyYW1zO3M8bi5sZW5ndGg7cys9MSl7dmFyIG89bltzXTt0aGlzLmNoZWNrTFZhbElubmVyUGF0dGVybihvLEhlLHQ/bnVsbDppKX19LEMucGFyc2VFeHByTGlzdD1mdW5jdGlvbihlLHQsaSxzKXtmb3IodmFyIG49W10sbz0hMDshdGhpcy5lYXQoZSk7KXtpZihvKW89ITE7ZWxzZSBpZih0aGlzLmV4cGVjdChyLmNvbW1hKSx0JiZ0aGlzLmFmdGVyVHJhaWxpbmdDb21tYShlKSlicmVhazt2YXIgcD12b2lkIDA7aSYmdGhpcy50eXBlPT09ci5jb21tYT9wPW51bGw6dGhpcy50eXBlPT09ci5lbGxpcHNpcz8ocD10aGlzLnBhcnNlU3ByZWFkKHMpLHMmJnRoaXMudHlwZT09PXIuY29tbWEmJnMudHJhaWxpbmdDb21tYTwwJiYocy50cmFpbGluZ0NvbW1hPXRoaXMuc3RhcnQpKTpwPXRoaXMucGFyc2VNYXliZUFzc2lnbighMSxzKSxuLnB1c2gocCl9cmV0dXJuIG59LEMuY2hlY2tVbnJlc2VydmVkPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3RhcnQsaT1lLmVuZCxzPWUubmFtZTtpZih0aGlzLmluR2VuZXJhdG9yJiZzPT09XCJ5aWVsZFwiJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodCxcIkNhbm5vdCB1c2UgJ3lpZWxkJyBhcyBpZGVudGlmaWVyIGluc2lkZSBhIGdlbmVyYXRvclwiKSx0aGlzLmluQXN5bmMmJnM9PT1cImF3YWl0XCImJnRoaXMucmFpc2VSZWNvdmVyYWJsZSh0LFwiQ2Fubm90IHVzZSAnYXdhaXQnIGFzIGlkZW50aWZpZXIgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXCIpLHRoaXMuY3VycmVudFRoaXNTY29wZSgpLmluQ2xhc3NGaWVsZEluaXQmJnM9PT1cImFyZ3VtZW50c1wiJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodCxcIkNhbm5vdCB1c2UgJ2FyZ3VtZW50cycgaW4gY2xhc3MgZmllbGQgaW5pdGlhbGl6ZXJcIiksdGhpcy5pbkNsYXNzU3RhdGljQmxvY2smJihzPT09XCJhcmd1bWVudHNcInx8cz09PVwiYXdhaXRcIikmJnRoaXMucmFpc2UodCxcIkNhbm5vdCB1c2UgXCIrcytcIiBpbiBjbGFzcyBzdGF0aWMgaW5pdGlhbGl6YXRpb24gYmxvY2tcIiksdGhpcy5rZXl3b3Jkcy50ZXN0KHMpJiZ0aGlzLnJhaXNlKHQsXCJVbmV4cGVjdGVkIGtleXdvcmQgJ1wiK3MrXCInXCIpLCEodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPDYmJnRoaXMuaW5wdXQuc2xpY2UodCxpKS5pbmRleE9mKFwiXFxcXFwiKSE9PS0xKSl7dmFyIG49dGhpcy5zdHJpY3Q/dGhpcy5yZXNlcnZlZFdvcmRzU3RyaWN0OnRoaXMucmVzZXJ2ZWRXb3JkcztuLnRlc3QocykmJighdGhpcy5pbkFzeW5jJiZzPT09XCJhd2FpdFwiJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodCxcIkNhbm5vdCB1c2Uga2V5d29yZCAnYXdhaXQnIG91dHNpZGUgYW4gYXN5bmMgZnVuY3Rpb25cIiksdGhpcy5yYWlzZVJlY292ZXJhYmxlKHQsXCJUaGUga2V5d29yZCAnXCIrcytcIicgaXMgcmVzZXJ2ZWRcIikpfX0sQy5wYXJzZUlkZW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyc2VJZGVudE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCEhZSksdGhpcy5maW5pc2hOb2RlKHQsXCJJZGVudGlmaWVyXCIpLGV8fCh0aGlzLmNoZWNrVW5yZXNlcnZlZCh0KSx0Lm5hbWU9PT1cImF3YWl0XCImJiF0aGlzLmF3YWl0SWRlbnRQb3MmJih0aGlzLmF3YWl0SWRlbnRQb3M9dC5zdGFydCkpLHR9LEMucGFyc2VJZGVudE5vZGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLnR5cGU9PT1yLm5hbWU/ZS5uYW1lPXRoaXMudmFsdWU6dGhpcy50eXBlLmtleXdvcmQ/KGUubmFtZT10aGlzLnR5cGUua2V5d29yZCwoZS5uYW1lPT09XCJjbGFzc1wifHxlLm5hbWU9PT1cImZ1bmN0aW9uXCIpJiYodGhpcy5sYXN0VG9rRW5kIT09dGhpcy5sYXN0VG9rU3RhcnQrMXx8dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMubGFzdFRva1N0YXJ0KSE9PTQ2KSYmdGhpcy5jb250ZXh0LnBvcCgpKTp0aGlzLnVuZXhwZWN0ZWQoKSxlfSxDLnBhcnNlUHJpdmF0ZUlkZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy50eXBlPT09ci5wcml2YXRlSWQ/ZS5uYW1lPXRoaXMudmFsdWU6dGhpcy51bmV4cGVjdGVkKCksdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKGUsXCJQcml2YXRlSWRlbnRpZmllclwiKSx0aGlzLm9wdGlvbnMuY2hlY2tQcml2YXRlRmllbGRzJiYodGhpcy5wcml2YXRlTmFtZVN0YWNrLmxlbmd0aD09PTA/dGhpcy5yYWlzZShlLnN0YXJ0LFwiUHJpdmF0ZSBmaWVsZCAnI1wiK2UubmFtZStcIicgbXVzdCBiZSBkZWNsYXJlZCBpbiBhbiBlbmNsb3NpbmcgY2xhc3NcIik6dGhpcy5wcml2YXRlTmFtZVN0YWNrW3RoaXMucHJpdmF0ZU5hbWVTdGFjay5sZW5ndGgtMV0udXNlZC5wdXNoKGUpKSxlfSxDLnBhcnNlWWllbGQ9ZnVuY3Rpb24oZSl7dGhpcy55aWVsZFBvc3x8KHRoaXMueWllbGRQb3M9dGhpcy5zdGFydCk7dmFyIHQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy50eXBlPT09ci5zZW1pfHx0aGlzLmNhbkluc2VydFNlbWljb2xvbigpfHx0aGlzLnR5cGUhPT1yLnN0YXImJiF0aGlzLnR5cGUuc3RhcnRzRXhwcj8odC5kZWxlZ2F0ZT0hMSx0LmFyZ3VtZW50PW51bGwpOih0LmRlbGVnYXRlPXRoaXMuZWF0KHIuc3RhciksdC5hcmd1bWVudD10aGlzLnBhcnNlTWF5YmVBc3NpZ24oZSkpLHRoaXMuZmluaXNoTm9kZSh0LFwiWWllbGRFeHByZXNzaW9uXCIpfSxDLnBhcnNlQXdhaXQ9ZnVuY3Rpb24oZSl7dGhpcy5hd2FpdFBvc3x8KHRoaXMuYXdhaXRQb3M9dGhpcy5zdGFydCk7dmFyIHQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdC5hcmd1bWVudD10aGlzLnBhcnNlTWF5YmVVbmFyeShudWxsLCEwLCExLGUpLHRoaXMuZmluaXNoTm9kZSh0LFwiQXdhaXRFeHByZXNzaW9uXCIpfTt2YXIgSWU9Vi5wcm90b3R5cGU7SWUucmFpc2U9ZnVuY3Rpb24oZSx0KXt2YXIgaT1KZSh0aGlzLmlucHV0LGUpO3QrPVwiIChcIitpLmxpbmUrXCI6XCIraS5jb2x1bW4rXCIpXCI7dmFyIHM9bmV3IFN5bnRheEVycm9yKHQpO3Rocm93IHMucG9zPWUscy5sb2M9aSxzLnJhaXNlZEF0PXRoaXMucG9zLHN9LEllLnJhaXNlUmVjb3ZlcmFibGU9SWUucmFpc2UsSWUuY3VyUG9zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubG9jYXRpb25zKXJldHVybiBuZXcgYWUodGhpcy5jdXJMaW5lLHRoaXMucG9zLXRoaXMubGluZVN0YXJ0KX07dmFyIGVlPVYucHJvdG90eXBlLE5pPWZ1bmN0aW9uKHQpe3RoaXMuZmxhZ3M9dCx0aGlzLnZhcj1bXSx0aGlzLmxleGljYWw9W10sdGhpcy5mdW5jdGlvbnM9W10sdGhpcy5pbkNsYXNzRmllbGRJbml0PSExfTtlZS5lbnRlclNjb3BlPWZ1bmN0aW9uKGUpe3RoaXMuc2NvcGVTdGFjay5wdXNoKG5ldyBOaShlKSl9LGVlLmV4aXRTY29wZT1mdW5jdGlvbigpe3RoaXMuc2NvcGVTdGFjay5wb3AoKX0sZWUudHJlYXRGdW5jdGlvbnNBc1ZhckluU2NvcGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmxhZ3MmbmV8fCF0aGlzLmluTW9kdWxlJiZlLmZsYWdzJmRlfSxlZS5kZWNsYXJlTmFtZT1mdW5jdGlvbihlLHQsaSl7dmFyIHM9ITE7aWYodD09PVEpe3ZhciBuPXRoaXMuY3VycmVudFNjb3BlKCk7cz1uLmxleGljYWwuaW5kZXhPZihlKT4tMXx8bi5mdW5jdGlvbnMuaW5kZXhPZihlKT4tMXx8bi52YXIuaW5kZXhPZihlKT4tMSxuLmxleGljYWwucHVzaChlKSx0aGlzLmluTW9kdWxlJiZuLmZsYWdzJmRlJiZkZWxldGUgdGhpcy51bmRlZmluZWRFeHBvcnRzW2VdfWVsc2UgaWYodD09PV90KXt2YXIgbz10aGlzLmN1cnJlbnRTY29wZSgpO28ubGV4aWNhbC5wdXNoKGUpfWVsc2UgaWYodD09PVN0KXt2YXIgcD10aGlzLmN1cnJlbnRTY29wZSgpO3RoaXMudHJlYXRGdW5jdGlvbnNBc1Zhcj9zPXAubGV4aWNhbC5pbmRleE9mKGUpPi0xOnM9cC5sZXhpY2FsLmluZGV4T2YoZSk+LTF8fHAudmFyLmluZGV4T2YoZSk+LTEscC5mdW5jdGlvbnMucHVzaChlKX1lbHNlIGZvcih2YXIgbT10aGlzLnNjb3BlU3RhY2subGVuZ3RoLTE7bT49MDstLW0pe3ZhciBnPXRoaXMuc2NvcGVTdGFja1ttXTtpZihnLmxleGljYWwuaW5kZXhPZihlKT4tMSYmIShnLmZsYWdzJnZ0JiZnLmxleGljYWxbMF09PT1lKXx8IXRoaXMudHJlYXRGdW5jdGlvbnNBc1ZhckluU2NvcGUoZykmJmcuZnVuY3Rpb25zLmluZGV4T2YoZSk+LTEpe3M9ITA7YnJlYWt9aWYoZy52YXIucHVzaChlKSx0aGlzLmluTW9kdWxlJiZnLmZsYWdzJmRlJiZkZWxldGUgdGhpcy51bmRlZmluZWRFeHBvcnRzW2VdLGcuZmxhZ3MmWGUpYnJlYWt9cyYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKGksXCJJZGVudGlmaWVyICdcIitlK1wiJyBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkXCIpfSxlZS5jaGVja0xvY2FsRXhwb3J0PWZ1bmN0aW9uKGUpe3RoaXMuc2NvcGVTdGFja1swXS5sZXhpY2FsLmluZGV4T2YoZS5uYW1lKT09PS0xJiZ0aGlzLnNjb3BlU3RhY2tbMF0udmFyLmluZGV4T2YoZS5uYW1lKT09PS0xJiYodGhpcy51bmRlZmluZWRFeHBvcnRzW2UubmFtZV09ZSl9LGVlLmN1cnJlbnRTY29wZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNjb3BlU3RhY2tbdGhpcy5zY29wZVN0YWNrLmxlbmd0aC0xXX0sZWUuY3VycmVudFZhclNjb3BlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuc2NvcGVTdGFjay5sZW5ndGgtMTs7ZS0tKXt2YXIgdD10aGlzLnNjb3BlU3RhY2tbZV07aWYodC5mbGFncyZYZSlyZXR1cm4gdH19LGVlLmN1cnJlbnRUaGlzU2NvcGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zY29wZVN0YWNrLmxlbmd0aC0xOztlLS0pe3ZhciB0PXRoaXMuc2NvcGVTdGFja1tlXTtpZih0LmZsYWdzJlhlJiYhKHQuZmxhZ3MmZ3QpKXJldHVybiB0fX07dmFyIHllPWZ1bmN0aW9uKHQsaSxzKXt0aGlzLnR5cGU9XCJcIix0aGlzLnN0YXJ0PWksdGhpcy5lbmQ9MCx0Lm9wdGlvbnMubG9jYXRpb25zJiYodGhpcy5sb2M9bmV3IGZlKHQscykpLHQub3B0aW9ucy5kaXJlY3RTb3VyY2VGaWxlJiYodGhpcy5zb3VyY2VGaWxlPXQub3B0aW9ucy5kaXJlY3RTb3VyY2VGaWxlKSx0Lm9wdGlvbnMucmFuZ2VzJiYodGhpcy5yYW5nZT1baSwwXSl9LGdlPVYucHJvdG90eXBlO2dlLnN0YXJ0Tm9kZT1mdW5jdGlvbigpe3JldHVybiBuZXcgeWUodGhpcyx0aGlzLnN0YXJ0LHRoaXMuc3RhcnRMb2MpfSxnZS5zdGFydE5vZGVBdD1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgeWUodGhpcyxlLHQpfTtmdW5jdGlvbiB3dChlLHQsaSxzKXtyZXR1cm4gZS50eXBlPXQsZS5lbmQ9aSx0aGlzLm9wdGlvbnMubG9jYXRpb25zJiYoZS5sb2MuZW5kPXMpLHRoaXMub3B0aW9ucy5yYW5nZXMmJihlLnJhbmdlWzFdPWkpLGV9Z2UuZmluaXNoTm9kZT1mdW5jdGlvbihlLHQpe3JldHVybiB3dC5jYWxsKHRoaXMsZSx0LHRoaXMubGFzdFRva0VuZCx0aGlzLmxhc3RUb2tFbmRMb2MpfSxnZS5maW5pc2hOb2RlQXQ9ZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIHd0LmNhbGwodGhpcyxlLHQsaSxzKX0sZ2UuY29weU5vZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHllKHRoaXMsZS5zdGFydCx0aGlzLnN0YXJ0TG9jKTtmb3IodmFyIGkgaW4gZSl0W2ldPWVbaV07cmV0dXJuIHR9O3ZhciBFdD1cIkFTQ0lJIEFTQ0lJX0hleF9EaWdpdCBBSGV4IEFscGhhYmV0aWMgQWxwaGEgQW55IEFzc2lnbmVkIEJpZGlfQ29udHJvbCBCaWRpX0MgQmlkaV9NaXJyb3JlZCBCaWRpX00gQ2FzZV9JZ25vcmFibGUgQ0kgQ2FzZWQgQ2hhbmdlc19XaGVuX0Nhc2Vmb2xkZWQgQ1dDRiBDaGFuZ2VzX1doZW5fQ2FzZW1hcHBlZCBDV0NNIENoYW5nZXNfV2hlbl9Mb3dlcmNhc2VkIENXTCBDaGFuZ2VzX1doZW5fTkZLQ19DYXNlZm9sZGVkIENXS0NGIENoYW5nZXNfV2hlbl9UaXRsZWNhc2VkIENXVCBDaGFuZ2VzX1doZW5fVXBwZXJjYXNlZCBDV1UgRGFzaCBEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50IERJIERlcHJlY2F0ZWQgRGVwIERpYWNyaXRpYyBEaWEgRW1vamkgRW1vamlfQ29tcG9uZW50IEVtb2ppX01vZGlmaWVyIEVtb2ppX01vZGlmaWVyX0Jhc2UgRW1vamlfUHJlc2VudGF0aW9uIEV4dGVuZGVyIEV4dCBHcmFwaGVtZV9CYXNlIEdyX0Jhc2UgR3JhcGhlbWVfRXh0ZW5kIEdyX0V4dCBIZXhfRGlnaXQgSGV4IElEU19CaW5hcnlfT3BlcmF0b3IgSURTQiBJRFNfVHJpbmFyeV9PcGVyYXRvciBJRFNUIElEX0NvbnRpbnVlIElEQyBJRF9TdGFydCBJRFMgSWRlb2dyYXBoaWMgSWRlbyBKb2luX0NvbnRyb2wgSm9pbl9DIExvZ2ljYWxfT3JkZXJfRXhjZXB0aW9uIExPRSBMb3dlcmNhc2UgTG93ZXIgTWF0aCBOb25jaGFyYWN0ZXJfQ29kZV9Qb2ludCBOQ2hhciBQYXR0ZXJuX1N5bnRheCBQYXRfU3luIFBhdHRlcm5fV2hpdGVfU3BhY2UgUGF0X1dTIFF1b3RhdGlvbl9NYXJrIFFNYXJrIFJhZGljYWwgUmVnaW9uYWxfSW5kaWNhdG9yIFJJIFNlbnRlbmNlX1Rlcm1pbmFsIFNUZXJtIFNvZnRfRG90dGVkIFNEIFRlcm1pbmFsX1B1bmN0dWF0aW9uIFRlcm0gVW5pZmllZF9JZGVvZ3JhcGggVUlkZW8gVXBwZXJjYXNlIFVwcGVyIFZhcmlhdGlvbl9TZWxlY3RvciBWUyBXaGl0ZV9TcGFjZSBzcGFjZSBYSURfQ29udGludWUgWElEQyBYSURfU3RhcnQgWElEU1wiLEF0PUV0K1wiIEV4dGVuZGVkX1BpY3RvZ3JhcGhpY1wiLFB0PUF0LEl0PVB0K1wiIEVCYXNlIEVDb21wIEVNb2QgRVByZXMgRXh0UGljdFwiLE50PUl0LFZpPU50LExpPXs5OkV0LDEwOkF0LDExOlB0LDEyOkl0LDEzOk50LDE0OlZpfSxSaT1cIkJhc2ljX0Vtb2ppIEVtb2ppX0tleWNhcF9TZXF1ZW5jZSBSR0lfRW1vamlfTW9kaWZpZXJfU2VxdWVuY2UgUkdJX0Vtb2ppX0ZsYWdfU2VxdWVuY2UgUkdJX0Vtb2ppX1RhZ19TZXF1ZW5jZSBSR0lfRW1vamlfWldKX1NlcXVlbmNlIFJHSV9FbW9qaVwiLE9pPXs5OlwiXCIsMTA6XCJcIiwxMTpcIlwiLDEyOlwiXCIsMTM6XCJcIiwxNDpSaX0sVnQ9XCJDYXNlZF9MZXR0ZXIgTEMgQ2xvc2VfUHVuY3R1YXRpb24gUGUgQ29ubmVjdG9yX1B1bmN0dWF0aW9uIFBjIENvbnRyb2wgQ2MgY250cmwgQ3VycmVuY3lfU3ltYm9sIFNjIERhc2hfUHVuY3R1YXRpb24gUGQgRGVjaW1hbF9OdW1iZXIgTmQgZGlnaXQgRW5jbG9zaW5nX01hcmsgTWUgRmluYWxfUHVuY3R1YXRpb24gUGYgRm9ybWF0IENmIEluaXRpYWxfUHVuY3R1YXRpb24gUGkgTGV0dGVyIEwgTGV0dGVyX051bWJlciBObCBMaW5lX1NlcGFyYXRvciBabCBMb3dlcmNhc2VfTGV0dGVyIExsIE1hcmsgTSBDb21iaW5pbmdfTWFyayBNYXRoX1N5bWJvbCBTbSBNb2RpZmllcl9MZXR0ZXIgTG0gTW9kaWZpZXJfU3ltYm9sIFNrIE5vbnNwYWNpbmdfTWFyayBNbiBOdW1iZXIgTiBPcGVuX1B1bmN0dWF0aW9uIFBzIE90aGVyIEMgT3RoZXJfTGV0dGVyIExvIE90aGVyX051bWJlciBObyBPdGhlcl9QdW5jdHVhdGlvbiBQbyBPdGhlcl9TeW1ib2wgU28gUGFyYWdyYXBoX1NlcGFyYXRvciBacCBQcml2YXRlX1VzZSBDbyBQdW5jdHVhdGlvbiBQIHB1bmN0IFNlcGFyYXRvciBaIFNwYWNlX1NlcGFyYXRvciBacyBTcGFjaW5nX01hcmsgTWMgU3Vycm9nYXRlIENzIFN5bWJvbCBTIFRpdGxlY2FzZV9MZXR0ZXIgTHQgVW5hc3NpZ25lZCBDbiBVcHBlcmNhc2VfTGV0dGVyIEx1XCIsTHQ9XCJBZGxhbSBBZGxtIEFob20gQW5hdG9saWFuX0hpZXJvZ2x5cGhzIEhsdXcgQXJhYmljIEFyYWIgQXJtZW5pYW4gQXJtbiBBdmVzdGFuIEF2c3QgQmFsaW5lc2UgQmFsaSBCYW11bSBCYW11IEJhc3NhX1ZhaCBCYXNzIEJhdGFrIEJhdGsgQmVuZ2FsaSBCZW5nIEJoYWlrc3VraSBCaGtzIEJvcG9tb2ZvIEJvcG8gQnJhaG1pIEJyYWggQnJhaWxsZSBCcmFpIEJ1Z2luZXNlIEJ1Z2kgQnVoaWQgQnVoZCBDYW5hZGlhbl9BYm9yaWdpbmFsIENhbnMgQ2FyaWFuIENhcmkgQ2F1Y2FzaWFuX0FsYmFuaWFuIEFnaGIgQ2hha21hIENha20gQ2hhbSBDaGFtIENoZXJva2VlIENoZXIgQ29tbW9uIFp5eXkgQ29wdGljIENvcHQgUWFhYyBDdW5laWZvcm0gWHN1eCBDeXByaW90IENwcnQgQ3lyaWxsaWMgQ3lybCBEZXNlcmV0IERzcnQgRGV2YW5hZ2FyaSBEZXZhIER1cGxveWFuIER1cGwgRWd5cHRpYW5fSGllcm9nbHlwaHMgRWd5cCBFbGJhc2FuIEVsYmEgRXRoaW9waWMgRXRoaSBHZW9yZ2lhbiBHZW9yIEdsYWdvbGl0aWMgR2xhZyBHb3RoaWMgR290aCBHcmFudGhhIEdyYW4gR3JlZWsgR3JlayBHdWphcmF0aSBHdWpyIEd1cm11a2hpIEd1cnUgSGFuIEhhbmkgSGFuZ3VsIEhhbmcgSGFudW5vbyBIYW5vIEhhdHJhbiBIYXRyIEhlYnJldyBIZWJyIEhpcmFnYW5hIEhpcmEgSW1wZXJpYWxfQXJhbWFpYyBBcm1pIEluaGVyaXRlZCBaaW5oIFFhYWkgSW5zY3JpcHRpb25hbF9QYWhsYXZpIFBobGkgSW5zY3JpcHRpb25hbF9QYXJ0aGlhbiBQcnRpIEphdmFuZXNlIEphdmEgS2FpdGhpIEt0aGkgS2FubmFkYSBLbmRhIEthdGFrYW5hIEthbmEgS2F5YWhfTGkgS2FsaSBLaGFyb3NodGhpIEtoYXIgS2htZXIgS2htciBLaG9qa2kgS2hvaiBLaHVkYXdhZGkgU2luZCBMYW8gTGFvbyBMYXRpbiBMYXRuIExlcGNoYSBMZXBjIExpbWJ1IExpbWIgTGluZWFyX0EgTGluYSBMaW5lYXJfQiBMaW5iIExpc3UgTGlzdSBMeWNpYW4gTHljaSBMeWRpYW4gTHlkaSBNYWhhamFuaSBNYWhqIE1hbGF5YWxhbSBNbHltIE1hbmRhaWMgTWFuZCBNYW5pY2hhZWFuIE1hbmkgTWFyY2hlbiBNYXJjIE1hc2FyYW1fR29uZGkgR29ubSBNZWV0ZWlfTWF5ZWsgTXRlaSBNZW5kZV9LaWtha3VpIE1lbmQgTWVyb2l0aWNfQ3Vyc2l2ZSBNZXJjIE1lcm9pdGljX0hpZXJvZ2x5cGhzIE1lcm8gTWlhbyBQbHJkIE1vZGkgTW9uZ29saWFuIE1vbmcgTXJvIE1yb28gTXVsdGFuaSBNdWx0IE15YW5tYXIgTXltciBOYWJhdGFlYW4gTmJhdCBOZXdfVGFpX0x1ZSBUYWx1IE5ld2EgTmV3YSBOa28gTmtvbyBOdXNodSBOc2h1IE9naGFtIE9nYW0gT2xfQ2hpa2kgT2xjayBPbGRfSHVuZ2FyaWFuIEh1bmcgT2xkX0l0YWxpYyBJdGFsIE9sZF9Ob3J0aF9BcmFiaWFuIE5hcmIgT2xkX1Blcm1pYyBQZXJtIE9sZF9QZXJzaWFuIFhwZW8gT2xkX1NvdXRoX0FyYWJpYW4gU2FyYiBPbGRfVHVya2ljIE9ya2ggT3JpeWEgT3J5YSBPc2FnZSBPc2dlIE9zbWFueWEgT3NtYSBQYWhhd2hfSG1vbmcgSG1uZyBQYWxteXJlbmUgUGFsbSBQYXVfQ2luX0hhdSBQYXVjIFBoYWdzX1BhIFBoYWcgUGhvZW5pY2lhbiBQaG54IFBzYWx0ZXJfUGFobGF2aSBQaGxwIFJlamFuZyBSam5nIFJ1bmljIFJ1bnIgU2FtYXJpdGFuIFNhbXIgU2F1cmFzaHRyYSBTYXVyIFNoYXJhZGEgU2hyZCBTaGF2aWFuIFNoYXcgU2lkZGhhbSBTaWRkIFNpZ25Xcml0aW5nIFNnbncgU2luaGFsYSBTaW5oIFNvcmFfU29tcGVuZyBTb3JhIFNveW9tYm8gU295byBTdW5kYW5lc2UgU3VuZCBTeWxvdGlfTmFncmkgU3lsbyBTeXJpYWMgU3lyYyBUYWdhbG9nIFRnbGcgVGFnYmFud2EgVGFnYiBUYWlfTGUgVGFsZSBUYWlfVGhhbSBMYW5hIFRhaV9WaWV0IFRhdnQgVGFrcmkgVGFrciBUYW1pbCBUYW1sIFRhbmd1dCBUYW5nIFRlbHVndSBUZWx1IFRoYWFuYSBUaGFhIFRoYWkgVGhhaSBUaWJldGFuIFRpYnQgVGlmaW5hZ2ggVGZuZyBUaXJodXRhIFRpcmggVWdhcml0aWMgVWdhciBWYWkgVmFpaSBXYXJhbmdfQ2l0aSBXYXJhIFlpIFlpaWkgWmFuYWJhemFyX1NxdWFyZSBaYW5iXCIsUnQ9THQrXCIgRG9ncmEgRG9nciBHdW5qYWxhX0dvbmRpIEdvbmcgSGFuaWZpX1JvaGluZ3lhIFJvaGcgTWFrYXNhciBNYWthIE1lZGVmYWlkcmluIE1lZGYgT2xkX1NvZ2RpYW4gU29nbyBTb2dkaWFuIFNvZ2RcIixPdD1SdCtcIiBFbHltYWljIEVseW0gTmFuZGluYWdhcmkgTmFuZCBOeWlha2VuZ19QdWFjaHVlX0htb25nIEhtbnAgV2FuY2hvIFdjaG9cIixCdD1PdCtcIiBDaG9yYXNtaWFuIENocnMgRGlhayBEaXZlc19Ba3VydSBLaGl0YW5fU21hbGxfU2NyaXB0IEtpdHMgWWV6aSBZZXppZGlcIixEdD1CdCtcIiBDeXByb19NaW5vYW4gQ3BtbiBPbGRfVXlnaHVyIE91Z3IgVGFuZ3NhIFRuc2EgVG90byBWaXRoa3VxaSBWaXRoXCIsQmk9RHQrXCIgSHJrdCBLYXRha2FuYV9Pcl9IaXJhZ2FuYSBLYXdpIE5hZ19NdW5kYXJpIE5hZ20gVW5rbm93biBaenp6XCIsRGk9ezk6THQsMTA6UnQsMTE6T3QsMTI6QnQsMTM6RHQsMTQ6Qml9LEZ0PXt9O2Z1bmN0aW9uIEZpKGUpe3ZhciB0PUZ0W2VdPXtiaW5hcnk6JChMaVtlXStcIiBcIitWdCksYmluYXJ5T2ZTdHJpbmdzOiQoT2lbZV0pLG5vbkJpbmFyeTp7R2VuZXJhbF9DYXRlZ29yeTokKFZ0KSxTY3JpcHQ6JChEaVtlXSl9fTt0Lm5vbkJpbmFyeS5TY3JpcHRfRXh0ZW5zaW9ucz10Lm5vbkJpbmFyeS5TY3JpcHQsdC5ub25CaW5hcnkuZ2M9dC5ub25CaW5hcnkuR2VuZXJhbF9DYXRlZ29yeSx0Lm5vbkJpbmFyeS5zYz10Lm5vbkJpbmFyeS5TY3JpcHQsdC5ub25CaW5hcnkuc2N4PXQubm9uQmluYXJ5LlNjcmlwdF9FeHRlbnNpb25zfWZvcih2YXIgJGU9MCxqdD1bOSwxMCwxMSwxMiwxMywxNF07JGU8anQubGVuZ3RoOyRlKz0xKXt2YXIgamk9anRbJGVdO0ZpKGppKX12YXIgdj1WLnByb3RvdHlwZSxYPWZ1bmN0aW9uKHQpe3RoaXMucGFyc2VyPXQsdGhpcy52YWxpZEZsYWdzPVwiZ2ltXCIrKHQub3B0aW9ucy5lY21hVmVyc2lvbj49Nj9cInV5XCI6XCJcIikrKHQub3B0aW9ucy5lY21hVmVyc2lvbj49OT9cInNcIjpcIlwiKSsodC5vcHRpb25zLmVjbWFWZXJzaW9uPj0xMz9cImRcIjpcIlwiKSsodC5vcHRpb25zLmVjbWFWZXJzaW9uPj0xNT9cInZcIjpcIlwiKSx0aGlzLnVuaWNvZGVQcm9wZXJ0aWVzPUZ0W3Qub3B0aW9ucy5lY21hVmVyc2lvbj49MTQ/MTQ6dC5vcHRpb25zLmVjbWFWZXJzaW9uXSx0aGlzLnNvdXJjZT1cIlwiLHRoaXMuZmxhZ3M9XCJcIix0aGlzLnN0YXJ0PTAsdGhpcy5zd2l0Y2hVPSExLHRoaXMuc3dpdGNoVj0hMSx0aGlzLnN3aXRjaE49ITEsdGhpcy5wb3M9MCx0aGlzLmxhc3RJbnRWYWx1ZT0wLHRoaXMubGFzdFN0cmluZ1ZhbHVlPVwiXCIsdGhpcy5sYXN0QXNzZXJ0aW9uSXNRdWFudGlmaWFibGU9ITEsdGhpcy5udW1DYXB0dXJpbmdQYXJlbnM9MCx0aGlzLm1heEJhY2tSZWZlcmVuY2U9MCx0aGlzLmdyb3VwTmFtZXM9W10sdGhpcy5iYWNrUmVmZXJlbmNlTmFtZXM9W119O1gucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1zLmluZGV4T2YoXCJ2XCIpIT09LTEsbz1zLmluZGV4T2YoXCJ1XCIpIT09LTE7dGhpcy5zdGFydD10fDAsdGhpcy5zb3VyY2U9aStcIlwiLHRoaXMuZmxhZ3M9cyxuJiZ0aGlzLnBhcnNlci5vcHRpb25zLmVjbWFWZXJzaW9uPj0xNT8odGhpcy5zd2l0Y2hVPSEwLHRoaXMuc3dpdGNoVj0hMCx0aGlzLnN3aXRjaE49ITApOih0aGlzLnN3aXRjaFU9byYmdGhpcy5wYXJzZXIub3B0aW9ucy5lY21hVmVyc2lvbj49Nix0aGlzLnN3aXRjaFY9ITEsdGhpcy5zd2l0Y2hOPW8mJnRoaXMucGFyc2VyLm9wdGlvbnMuZWNtYVZlcnNpb24+PTkpfSxYLnByb3RvdHlwZS5yYWlzZT1mdW5jdGlvbih0KXt0aGlzLnBhcnNlci5yYWlzZVJlY292ZXJhYmxlKHRoaXMuc3RhcnQsXCJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogL1wiK3RoaXMuc291cmNlK1wiLzogXCIrdCl9LFgucHJvdG90eXBlLmF0PWZ1bmN0aW9uKHQsaSl7aT09PXZvaWQgMCYmKGk9ITEpO3ZhciBzPXRoaXMuc291cmNlLG49cy5sZW5ndGg7aWYodD49bilyZXR1cm4tMTt2YXIgbz1zLmNoYXJDb2RlQXQodCk7aWYoIShpfHx0aGlzLnN3aXRjaFUpfHxvPD01NTI5NXx8bz49NTczNDR8fHQrMT49bilyZXR1cm4gbzt2YXIgcD1zLmNoYXJDb2RlQXQodCsxKTtyZXR1cm4gcD49NTYzMjAmJnA8PTU3MzQzPyhvPDwxMCkrcC01NjYxMzg4ODpvfSxYLnByb3RvdHlwZS5uZXh0SW5kZXg9ZnVuY3Rpb24odCxpKXtpPT09dm9pZCAwJiYoaT0hMSk7dmFyIHM9dGhpcy5zb3VyY2Usbj1zLmxlbmd0aDtpZih0Pj1uKXJldHVybiBuO3ZhciBvPXMuY2hhckNvZGVBdCh0KSxwO3JldHVybiEoaXx8dGhpcy5zd2l0Y2hVKXx8bzw9NTUyOTV8fG8+PTU3MzQ0fHx0KzE+PW58fChwPXMuY2hhckNvZGVBdCh0KzEpKTw1NjMyMHx8cD41NzM0Mz90KzE6dCsyfSxYLnByb3RvdHlwZS5jdXJyZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0hMSksdGhpcy5hdCh0aGlzLnBvcyx0KX0sWC5wcm90b3R5cGUubG9va2FoZWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09dm9pZCAwJiYodD0hMSksdGhpcy5hdCh0aGlzLm5leHRJbmRleCh0aGlzLnBvcyx0KSx0KX0sWC5wcm90b3R5cGUuYWR2YW5jZT1mdW5jdGlvbih0KXt0PT09dm9pZCAwJiYodD0hMSksdGhpcy5wb3M9dGhpcy5uZXh0SW5kZXgodGhpcy5wb3MsdCl9LFgucHJvdG90eXBlLmVhdD1mdW5jdGlvbih0LGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0hMSksdGhpcy5jdXJyZW50KGkpPT09dD8odGhpcy5hZHZhbmNlKGkpLCEwKTohMX0sWC5wcm90b3R5cGUuZWF0Q2hhcnM9ZnVuY3Rpb24odCxpKXtpPT09dm9pZCAwJiYoaT0hMSk7Zm9yKHZhciBzPXRoaXMucG9zLG49MCxvPXQ7bjxvLmxlbmd0aDtuKz0xKXt2YXIgcD1vW25dLG09dGhpcy5hdChzLGkpO2lmKG09PT0tMXx8bSE9PXApcmV0dXJuITE7cz10aGlzLm5leHRJbmRleChzLGkpfXJldHVybiB0aGlzLnBvcz1zLCEwfSx2LnZhbGlkYXRlUmVnRXhwRmxhZ3M9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUudmFsaWRGbGFncyxpPWUuZmxhZ3Mscz0hMSxuPSExLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHA9aS5jaGFyQXQobyk7dC5pbmRleE9mKHApPT09LTEmJnRoaXMucmFpc2UoZS5zdGFydCxcIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uIGZsYWdcIiksaS5pbmRleE9mKHAsbysxKT4tMSYmdGhpcy5yYWlzZShlLnN0YXJ0LFwiRHVwbGljYXRlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFnXCIpLHA9PT1cInVcIiYmKHM9ITApLHA9PT1cInZcIiYmKG49ITApfXRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTUmJnMmJm4mJnRoaXMucmFpc2UoZS5zdGFydCxcIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uIGZsYWdcIil9LHYudmFsaWRhdGVSZWdFeHBQYXR0ZXJuPWZ1bmN0aW9uKGUpe3RoaXMucmVnZXhwX3BhdHRlcm4oZSksIWUuc3dpdGNoTiYmdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiZlLmdyb3VwTmFtZXMubGVuZ3RoPjAmJihlLnN3aXRjaE49ITAsdGhpcy5yZWdleHBfcGF0dGVybihlKSl9LHYucmVnZXhwX3BhdHRlcm49ZnVuY3Rpb24oZSl7ZS5wb3M9MCxlLmxhc3RJbnRWYWx1ZT0wLGUubGFzdFN0cmluZ1ZhbHVlPVwiXCIsZS5sYXN0QXNzZXJ0aW9uSXNRdWFudGlmaWFibGU9ITEsZS5udW1DYXB0dXJpbmdQYXJlbnM9MCxlLm1heEJhY2tSZWZlcmVuY2U9MCxlLmdyb3VwTmFtZXMubGVuZ3RoPTAsZS5iYWNrUmVmZXJlbmNlTmFtZXMubGVuZ3RoPTAsdGhpcy5yZWdleHBfZGlzanVuY3Rpb24oZSksZS5wb3MhPT1lLnNvdXJjZS5sZW5ndGgmJihlLmVhdCg0MSkmJmUucmFpc2UoXCJVbm1hdGNoZWQgJyknXCIpLChlLmVhdCg5Myl8fGUuZWF0KDEyNSkpJiZlLnJhaXNlKFwiTG9uZSBxdWFudGlmaWVyIGJyYWNrZXRzXCIpKSxlLm1heEJhY2tSZWZlcmVuY2U+ZS5udW1DYXB0dXJpbmdQYXJlbnMmJmUucmFpc2UoXCJJbnZhbGlkIGVzY2FwZVwiKTtmb3IodmFyIHQ9MCxpPWUuYmFja1JlZmVyZW5jZU5hbWVzO3Q8aS5sZW5ndGg7dCs9MSl7dmFyIHM9aVt0XTtlLmdyb3VwTmFtZXMuaW5kZXhPZihzKT09PS0xJiZlLnJhaXNlKFwiSW52YWxpZCBuYW1lZCBjYXB0dXJlIHJlZmVyZW5jZWRcIil9fSx2LnJlZ2V4cF9kaXNqdW5jdGlvbj1mdW5jdGlvbihlKXtmb3IodGhpcy5yZWdleHBfYWx0ZXJuYXRpdmUoZSk7ZS5lYXQoMTI0KTspdGhpcy5yZWdleHBfYWx0ZXJuYXRpdmUoZSk7dGhpcy5yZWdleHBfZWF0UXVhbnRpZmllcihlLCEwKSYmZS5yYWlzZShcIk5vdGhpbmcgdG8gcmVwZWF0XCIpLGUuZWF0KDEyMykmJmUucmFpc2UoXCJMb25lIHF1YW50aWZpZXIgYnJhY2tldHNcIil9LHYucmVnZXhwX2FsdGVybmF0aXZlPWZ1bmN0aW9uKGUpe2Zvcig7ZS5wb3M8ZS5zb3VyY2UubGVuZ3RoJiZ0aGlzLnJlZ2V4cF9lYXRUZXJtKGUpOyk7fSx2LnJlZ2V4cF9lYXRUZXJtPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZ2V4cF9lYXRBc3NlcnRpb24oZSk/KGUubGFzdEFzc2VydGlvbklzUXVhbnRpZmlhYmxlJiZ0aGlzLnJlZ2V4cF9lYXRRdWFudGlmaWVyKGUpJiZlLnN3aXRjaFUmJmUucmFpc2UoXCJJbnZhbGlkIHF1YW50aWZpZXJcIiksITApOihlLnN3aXRjaFU/dGhpcy5yZWdleHBfZWF0QXRvbShlKTp0aGlzLnJlZ2V4cF9lYXRFeHRlbmRlZEF0b20oZSkpPyh0aGlzLnJlZ2V4cF9lYXRRdWFudGlmaWVyKGUpLCEwKTohMX0sdi5yZWdleHBfZWF0QXNzZXJ0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUubGFzdEFzc2VydGlvbklzUXVhbnRpZmlhYmxlPSExLGUuZWF0KDk0KXx8ZS5lYXQoMzYpKXJldHVybiEwO2lmKGUuZWF0KDkyKSl7aWYoZS5lYXQoNjYpfHxlLmVhdCg5OCkpcmV0dXJuITA7ZS5wb3M9dH1pZihlLmVhdCg0MCkmJmUuZWF0KDYzKSl7dmFyIGk9ITE7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiYoaT1lLmVhdCg2MCkpLGUuZWF0KDYxKXx8ZS5lYXQoMzMpKXJldHVybiB0aGlzLnJlZ2V4cF9kaXNqdW5jdGlvbihlKSxlLmVhdCg0MSl8fGUucmFpc2UoXCJVbnRlcm1pbmF0ZWQgZ3JvdXBcIiksZS5sYXN0QXNzZXJ0aW9uSXNRdWFudGlmaWFibGU9IWksITB9cmV0dXJuIGUucG9zPXQsITF9LHYucmVnZXhwX2VhdFF1YW50aWZpZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLHRoaXMucmVnZXhwX2VhdFF1YW50aWZpZXJQcmVmaXgoZSx0KT8oZS5lYXQoNjMpLCEwKTohMX0sdi5yZWdleHBfZWF0UXVhbnRpZmllclByZWZpeD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmVhdCg0Mil8fGUuZWF0KDQzKXx8ZS5lYXQoNjMpfHx0aGlzLnJlZ2V4cF9lYXRCcmFjZWRRdWFudGlmaWVyKGUsdCl9LHYucmVnZXhwX2VhdEJyYWNlZFF1YW50aWZpZXI9ZnVuY3Rpb24oZSx0KXt2YXIgaT1lLnBvcztpZihlLmVhdCgxMjMpKXt2YXIgcz0wLG49LTE7aWYodGhpcy5yZWdleHBfZWF0RGVjaW1hbERpZ2l0cyhlKSYmKHM9ZS5sYXN0SW50VmFsdWUsZS5lYXQoNDQpJiZ0aGlzLnJlZ2V4cF9lYXREZWNpbWFsRGlnaXRzKGUpJiYobj1lLmxhc3RJbnRWYWx1ZSksZS5lYXQoMTI1KSkpcmV0dXJuIG4hPT0tMSYmbjxzJiYhdCYmZS5yYWlzZShcIm51bWJlcnMgb3V0IG9mIG9yZGVyIGluIHt9IHF1YW50aWZpZXJcIiksITA7ZS5zd2l0Y2hVJiYhdCYmZS5yYWlzZShcIkluY29tcGxldGUgcXVhbnRpZmllclwiKSxlLnBvcz1pfXJldHVybiExfSx2LnJlZ2V4cF9lYXRBdG9tPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZ2V4cF9lYXRQYXR0ZXJuQ2hhcmFjdGVycyhlKXx8ZS5lYXQoNDYpfHx0aGlzLnJlZ2V4cF9lYXRSZXZlcnNlU29saWR1c0F0b21Fc2NhcGUoZSl8fHRoaXMucmVnZXhwX2VhdENoYXJhY3RlckNsYXNzKGUpfHx0aGlzLnJlZ2V4cF9lYXRVbmNhcHR1cmluZ0dyb3VwKGUpfHx0aGlzLnJlZ2V4cF9lYXRDYXB0dXJpbmdHcm91cChlKX0sdi5yZWdleHBfZWF0UmV2ZXJzZVNvbGlkdXNBdG9tRXNjYXBlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUuZWF0KDkyKSl7aWYodGhpcy5yZWdleHBfZWF0QXRvbUVzY2FwZShlKSlyZXR1cm4hMDtlLnBvcz10fXJldHVybiExfSx2LnJlZ2V4cF9lYXRVbmNhcHR1cmluZ0dyb3VwPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUuZWF0KDQwKSl7aWYoZS5lYXQoNjMpJiZlLmVhdCg1OCkpe2lmKHRoaXMucmVnZXhwX2Rpc2p1bmN0aW9uKGUpLGUuZWF0KDQxKSlyZXR1cm4hMDtlLnJhaXNlKFwiVW50ZXJtaW5hdGVkIGdyb3VwXCIpfWUucG9zPXR9cmV0dXJuITF9LHYucmVnZXhwX2VhdENhcHR1cmluZ0dyb3VwPWZ1bmN0aW9uKGUpe2lmKGUuZWF0KDQwKSl7aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05P3RoaXMucmVnZXhwX2dyb3VwU3BlY2lmaWVyKGUpOmUuY3VycmVudCgpPT09NjMmJmUucmFpc2UoXCJJbnZhbGlkIGdyb3VwXCIpLHRoaXMucmVnZXhwX2Rpc2p1bmN0aW9uKGUpLGUuZWF0KDQxKSlyZXR1cm4gZS5udW1DYXB0dXJpbmdQYXJlbnMrPTEsITA7ZS5yYWlzZShcIlVudGVybWluYXRlZCBncm91cFwiKX1yZXR1cm4hMX0sdi5yZWdleHBfZWF0RXh0ZW5kZWRBdG9tPWZ1bmN0aW9uKGUpe3JldHVybiBlLmVhdCg0Nil8fHRoaXMucmVnZXhwX2VhdFJldmVyc2VTb2xpZHVzQXRvbUVzY2FwZShlKXx8dGhpcy5yZWdleHBfZWF0Q2hhcmFjdGVyQ2xhc3MoZSl8fHRoaXMucmVnZXhwX2VhdFVuY2FwdHVyaW5nR3JvdXAoZSl8fHRoaXMucmVnZXhwX2VhdENhcHR1cmluZ0dyb3VwKGUpfHx0aGlzLnJlZ2V4cF9lYXRJbnZhbGlkQnJhY2VkUXVhbnRpZmllcihlKXx8dGhpcy5yZWdleHBfZWF0RXh0ZW5kZWRQYXR0ZXJuQ2hhcmFjdGVyKGUpfSx2LnJlZ2V4cF9lYXRJbnZhbGlkQnJhY2VkUXVhbnRpZmllcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWdleHBfZWF0QnJhY2VkUXVhbnRpZmllcihlLCEwKSYmZS5yYWlzZShcIk5vdGhpbmcgdG8gcmVwZWF0XCIpLCExfSx2LnJlZ2V4cF9lYXRTeW50YXhDaGFyYWN0ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jdXJyZW50KCk7cmV0dXJuIE10KHQpPyhlLmxhc3RJbnRWYWx1ZT10LGUuYWR2YW5jZSgpLCEwKTohMX07ZnVuY3Rpb24gTXQoZSl7cmV0dXJuIGU9PT0zNnx8ZT49NDAmJmU8PTQzfHxlPT09NDZ8fGU9PT02M3x8ZT49OTEmJmU8PTk0fHxlPj0xMjMmJmU8PTEyNX12LnJlZ2V4cF9lYXRQYXR0ZXJuQ2hhcmFjdGVycz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5wb3MsaT0wOyhpPWUuY3VycmVudCgpKSE9PS0xJiYhTXQoaSk7KWUuYWR2YW5jZSgpO3JldHVybiBlLnBvcyE9PXR9LHYucmVnZXhwX2VhdEV4dGVuZGVkUGF0dGVybkNoYXJhY3Rlcj1mdW5jdGlvbihlKXt2YXIgdD1lLmN1cnJlbnQoKTtyZXR1cm4gdCE9PS0xJiZ0IT09MzYmJiEodD49NDAmJnQ8PTQzKSYmdCE9PTQ2JiZ0IT09NjMmJnQhPT05MSYmdCE9PTk0JiZ0IT09MTI0PyhlLmFkdmFuY2UoKSwhMCk6ITF9LHYucmVnZXhwX2dyb3VwU3BlY2lmaWVyPWZ1bmN0aW9uKGUpe2lmKGUuZWF0KDYzKSl7aWYodGhpcy5yZWdleHBfZWF0R3JvdXBOYW1lKGUpKXtlLmdyb3VwTmFtZXMuaW5kZXhPZihlLmxhc3RTdHJpbmdWYWx1ZSkhPT0tMSYmZS5yYWlzZShcIkR1cGxpY2F0ZSBjYXB0dXJlIGdyb3VwIG5hbWVcIiksZS5ncm91cE5hbWVzLnB1c2goZS5sYXN0U3RyaW5nVmFsdWUpO3JldHVybn1lLnJhaXNlKFwiSW52YWxpZCBncm91cFwiKX19LHYucmVnZXhwX2VhdEdyb3VwTmFtZT1mdW5jdGlvbihlKXtpZihlLmxhc3RTdHJpbmdWYWx1ZT1cIlwiLGUuZWF0KDYwKSl7aWYodGhpcy5yZWdleHBfZWF0UmVnRXhwSWRlbnRpZmllck5hbWUoZSkmJmUuZWF0KDYyKSlyZXR1cm4hMDtlLnJhaXNlKFwiSW52YWxpZCBjYXB0dXJlIGdyb3VwIG5hbWVcIil9cmV0dXJuITF9LHYucmVnZXhwX2VhdFJlZ0V4cElkZW50aWZpZXJOYW1lPWZ1bmN0aW9uKGUpe2lmKGUubGFzdFN0cmluZ1ZhbHVlPVwiXCIsdGhpcy5yZWdleHBfZWF0UmVnRXhwSWRlbnRpZmllclN0YXJ0KGUpKXtmb3IoZS5sYXN0U3RyaW5nVmFsdWUrPVooZS5sYXN0SW50VmFsdWUpO3RoaXMucmVnZXhwX2VhdFJlZ0V4cElkZW50aWZpZXJQYXJ0KGUpOyllLmxhc3RTdHJpbmdWYWx1ZSs9WihlLmxhc3RJbnRWYWx1ZSk7cmV0dXJuITB9cmV0dXJuITF9LHYucmVnZXhwX2VhdFJlZ0V4cElkZW50aWZpZXJTdGFydD1mdW5jdGlvbihlKXt2YXIgdD1lLnBvcyxpPXRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTEscz1lLmN1cnJlbnQoaSk7cmV0dXJuIGUuYWR2YW5jZShpKSxzPT09OTImJnRoaXMucmVnZXhwX2VhdFJlZ0V4cFVuaWNvZGVFc2NhcGVTZXF1ZW5jZShlLGkpJiYocz1lLmxhc3RJbnRWYWx1ZSksTWkocyk/KGUubGFzdEludFZhbHVlPXMsITApOihlLnBvcz10LCExKX07ZnVuY3Rpb24gTWkoZSl7cmV0dXJuIEYoZSwhMCl8fGU9PT0zNnx8ZT09PTk1fXYucmVnZXhwX2VhdFJlZ0V4cElkZW50aWZpZXJQYXJ0PWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zLGk9dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj0xMSxzPWUuY3VycmVudChpKTtyZXR1cm4gZS5hZHZhbmNlKGkpLHM9PT05MiYmdGhpcy5yZWdleHBfZWF0UmVnRXhwVW5pY29kZUVzY2FwZVNlcXVlbmNlKGUsaSkmJihzPWUubGFzdEludFZhbHVlKSxVaShzKT8oZS5sYXN0SW50VmFsdWU9cywhMCk6KGUucG9zPXQsITEpfTtmdW5jdGlvbiBVaShlKXtyZXR1cm4gZChlLCEwKXx8ZT09PTM2fHxlPT09OTV8fGU9PT04MjA0fHxlPT09ODIwNX12LnJlZ2V4cF9lYXRBdG9tRXNjYXBlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZ2V4cF9lYXRCYWNrUmVmZXJlbmNlKGUpfHx0aGlzLnJlZ2V4cF9lYXRDaGFyYWN0ZXJDbGFzc0VzY2FwZShlKXx8dGhpcy5yZWdleHBfZWF0Q2hhcmFjdGVyRXNjYXBlKGUpfHxlLnN3aXRjaE4mJnRoaXMucmVnZXhwX2VhdEtHcm91cE5hbWUoZSk/ITA6KGUuc3dpdGNoVSYmKGUuY3VycmVudCgpPT09OTkmJmUucmFpc2UoXCJJbnZhbGlkIHVuaWNvZGUgZXNjYXBlXCIpLGUucmFpc2UoXCJJbnZhbGlkIGVzY2FwZVwiKSksITEpfSx2LnJlZ2V4cF9lYXRCYWNrUmVmZXJlbmNlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKHRoaXMucmVnZXhwX2VhdERlY2ltYWxFc2NhcGUoZSkpe3ZhciBpPWUubGFzdEludFZhbHVlO2lmKGUuc3dpdGNoVSlyZXR1cm4gaT5lLm1heEJhY2tSZWZlcmVuY2UmJihlLm1heEJhY2tSZWZlcmVuY2U9aSksITA7aWYoaTw9ZS5udW1DYXB0dXJpbmdQYXJlbnMpcmV0dXJuITA7ZS5wb3M9dH1yZXR1cm4hMX0sdi5yZWdleHBfZWF0S0dyb3VwTmFtZT1mdW5jdGlvbihlKXtpZihlLmVhdCgxMDcpKXtpZih0aGlzLnJlZ2V4cF9lYXRHcm91cE5hbWUoZSkpcmV0dXJuIGUuYmFja1JlZmVyZW5jZU5hbWVzLnB1c2goZS5sYXN0U3RyaW5nVmFsdWUpLCEwO2UucmFpc2UoXCJJbnZhbGlkIG5hbWVkIHJlZmVyZW5jZVwiKX1yZXR1cm4hMX0sdi5yZWdleHBfZWF0Q2hhcmFjdGVyRXNjYXBlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZ2V4cF9lYXRDb250cm9sRXNjYXBlKGUpfHx0aGlzLnJlZ2V4cF9lYXRDQ29udHJvbExldHRlcihlKXx8dGhpcy5yZWdleHBfZWF0WmVybyhlKXx8dGhpcy5yZWdleHBfZWF0SGV4RXNjYXBlU2VxdWVuY2UoZSl8fHRoaXMucmVnZXhwX2VhdFJlZ0V4cFVuaWNvZGVFc2NhcGVTZXF1ZW5jZShlLCExKXx8IWUuc3dpdGNoVSYmdGhpcy5yZWdleHBfZWF0TGVnYWN5T2N0YWxFc2NhcGVTZXF1ZW5jZShlKXx8dGhpcy5yZWdleHBfZWF0SWRlbnRpdHlFc2NhcGUoZSl9LHYucmVnZXhwX2VhdENDb250cm9sTGV0dGVyPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUuZWF0KDk5KSl7aWYodGhpcy5yZWdleHBfZWF0Q29udHJvbExldHRlcihlKSlyZXR1cm4hMDtlLnBvcz10fXJldHVybiExfSx2LnJlZ2V4cF9lYXRaZXJvPWZ1bmN0aW9uKGUpe3JldHVybiBlLmN1cnJlbnQoKT09PTQ4JiYhTmUoZS5sb29rYWhlYWQoKSk/KGUubGFzdEludFZhbHVlPTAsZS5hZHZhbmNlKCksITApOiExfSx2LnJlZ2V4cF9lYXRDb250cm9sRXNjYXBlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY3VycmVudCgpO3JldHVybiB0PT09MTE2PyhlLmxhc3RJbnRWYWx1ZT05LGUuYWR2YW5jZSgpLCEwKTp0PT09MTEwPyhlLmxhc3RJbnRWYWx1ZT0xMCxlLmFkdmFuY2UoKSwhMCk6dD09PTExOD8oZS5sYXN0SW50VmFsdWU9MTEsZS5hZHZhbmNlKCksITApOnQ9PT0xMDI/KGUubGFzdEludFZhbHVlPTEyLGUuYWR2YW5jZSgpLCEwKTp0PT09MTE0PyhlLmxhc3RJbnRWYWx1ZT0xMyxlLmFkdmFuY2UoKSwhMCk6ITF9LHYucmVnZXhwX2VhdENvbnRyb2xMZXR0ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jdXJyZW50KCk7cmV0dXJuIFV0KHQpPyhlLmxhc3RJbnRWYWx1ZT10JTMyLGUuYWR2YW5jZSgpLCEwKTohMX07ZnVuY3Rpb24gVXQoZSl7cmV0dXJuIGU+PTY1JiZlPD05MHx8ZT49OTcmJmU8PTEyMn12LnJlZ2V4cF9lYXRSZWdFeHBVbmljb2RlRXNjYXBlU2VxdWVuY2U9ZnVuY3Rpb24oZSx0KXt0PT09dm9pZCAwJiYodD0hMSk7dmFyIGk9ZS5wb3Mscz10fHxlLnN3aXRjaFU7aWYoZS5lYXQoMTE3KSl7aWYodGhpcy5yZWdleHBfZWF0Rml4ZWRIZXhEaWdpdHMoZSw0KSl7dmFyIG49ZS5sYXN0SW50VmFsdWU7aWYocyYmbj49NTUyOTYmJm48PTU2MzE5KXt2YXIgbz1lLnBvcztpZihlLmVhdCg5MikmJmUuZWF0KDExNykmJnRoaXMucmVnZXhwX2VhdEZpeGVkSGV4RGlnaXRzKGUsNCkpe3ZhciBwPWUubGFzdEludFZhbHVlO2lmKHA+PTU2MzIwJiZwPD01NzM0MylyZXR1cm4gZS5sYXN0SW50VmFsdWU9KG4tNTUyOTYpKjEwMjQrKHAtNTYzMjApKzY1NTM2LCEwfWUucG9zPW8sZS5sYXN0SW50VmFsdWU9bn1yZXR1cm4hMH1pZihzJiZlLmVhdCgxMjMpJiZ0aGlzLnJlZ2V4cF9lYXRIZXhEaWdpdHMoZSkmJmUuZWF0KDEyNSkmJnFpKGUubGFzdEludFZhbHVlKSlyZXR1cm4hMDtzJiZlLnJhaXNlKFwiSW52YWxpZCB1bmljb2RlIGVzY2FwZVwiKSxlLnBvcz1pfXJldHVybiExfTtmdW5jdGlvbiBxaShlKXtyZXR1cm4gZT49MCYmZTw9MTExNDExMX12LnJlZ2V4cF9lYXRJZGVudGl0eUVzY2FwZT1mdW5jdGlvbihlKXtpZihlLnN3aXRjaFUpcmV0dXJuIHRoaXMucmVnZXhwX2VhdFN5bnRheENoYXJhY3RlcihlKT8hMDplLmVhdCg0Nyk/KGUubGFzdEludFZhbHVlPTQ3LCEwKTohMTt2YXIgdD1lLmN1cnJlbnQoKTtyZXR1cm4gdCE9PTk5JiYoIWUuc3dpdGNoTnx8dCE9PTEwNyk/KGUubGFzdEludFZhbHVlPXQsZS5hZHZhbmNlKCksITApOiExfSx2LnJlZ2V4cF9lYXREZWNpbWFsRXNjYXBlPWZ1bmN0aW9uKGUpe2UubGFzdEludFZhbHVlPTA7dmFyIHQ9ZS5jdXJyZW50KCk7aWYodD49NDkmJnQ8PTU3KXtkbyBlLmxhc3RJbnRWYWx1ZT0xMCplLmxhc3RJbnRWYWx1ZSsodC00OCksZS5hZHZhbmNlKCk7d2hpbGUoKHQ9ZS5jdXJyZW50KCkpPj00OCYmdDw9NTcpO3JldHVybiEwfXJldHVybiExfTt2YXIgcXQ9MCxZPTEsSj0yO3YucmVnZXhwX2VhdENoYXJhY3RlckNsYXNzRXNjYXBlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY3VycmVudCgpO2lmKEtpKHQpKXJldHVybiBlLmxhc3RJbnRWYWx1ZT0tMSxlLmFkdmFuY2UoKSxZO3ZhciBpPSExO2lmKGUuc3dpdGNoVSYmdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj05JiYoKGk9dD09PTgwKXx8dD09PTExMikpe2UubGFzdEludFZhbHVlPS0xLGUuYWR2YW5jZSgpO3ZhciBzO2lmKGUuZWF0KDEyMykmJihzPXRoaXMucmVnZXhwX2VhdFVuaWNvZGVQcm9wZXJ0eVZhbHVlRXhwcmVzc2lvbihlKSkmJmUuZWF0KDEyNSkpcmV0dXJuIGkmJnM9PT1KJiZlLnJhaXNlKFwiSW52YWxpZCBwcm9wZXJ0eSBuYW1lXCIpLHM7ZS5yYWlzZShcIkludmFsaWQgcHJvcGVydHkgbmFtZVwiKX1yZXR1cm4gcXR9O2Z1bmN0aW9uIEtpKGUpe3JldHVybiBlPT09MTAwfHxlPT09Njh8fGU9PT0xMTV8fGU9PT04M3x8ZT09PTExOXx8ZT09PTg3fXYucmVnZXhwX2VhdFVuaWNvZGVQcm9wZXJ0eVZhbHVlRXhwcmVzc2lvbj1mdW5jdGlvbihlKXt2YXIgdD1lLnBvcztpZih0aGlzLnJlZ2V4cF9lYXRVbmljb2RlUHJvcGVydHlOYW1lKGUpJiZlLmVhdCg2MSkpe3ZhciBpPWUubGFzdFN0cmluZ1ZhbHVlO2lmKHRoaXMucmVnZXhwX2VhdFVuaWNvZGVQcm9wZXJ0eVZhbHVlKGUpKXt2YXIgcz1lLmxhc3RTdHJpbmdWYWx1ZTtyZXR1cm4gdGhpcy5yZWdleHBfdmFsaWRhdGVVbmljb2RlUHJvcGVydHlOYW1lQW5kVmFsdWUoZSxpLHMpLFl9fWlmKGUucG9zPXQsdGhpcy5yZWdleHBfZWF0TG9uZVVuaWNvZGVQcm9wZXJ0eU5hbWVPclZhbHVlKGUpKXt2YXIgbj1lLmxhc3RTdHJpbmdWYWx1ZTtyZXR1cm4gdGhpcy5yZWdleHBfdmFsaWRhdGVVbmljb2RlUHJvcGVydHlOYW1lT3JWYWx1ZShlLG4pfXJldHVybiBxdH0sdi5yZWdleHBfdmFsaWRhdGVVbmljb2RlUHJvcGVydHlOYW1lQW5kVmFsdWU9ZnVuY3Rpb24oZSx0LGkpe2xlKGUudW5pY29kZVByb3BlcnRpZXMubm9uQmluYXJ5LHQpfHxlLnJhaXNlKFwiSW52YWxpZCBwcm9wZXJ0eSBuYW1lXCIpLGUudW5pY29kZVByb3BlcnRpZXMubm9uQmluYXJ5W3RdLnRlc3QoaSl8fGUucmFpc2UoXCJJbnZhbGlkIHByb3BlcnR5IHZhbHVlXCIpfSx2LnJlZ2V4cF92YWxpZGF0ZVVuaWNvZGVQcm9wZXJ0eU5hbWVPclZhbHVlPWZ1bmN0aW9uKGUsdCl7aWYoZS51bmljb2RlUHJvcGVydGllcy5iaW5hcnkudGVzdCh0KSlyZXR1cm4gWTtpZihlLnN3aXRjaFYmJmUudW5pY29kZVByb3BlcnRpZXMuYmluYXJ5T2ZTdHJpbmdzLnRlc3QodCkpcmV0dXJuIEo7ZS5yYWlzZShcIkludmFsaWQgcHJvcGVydHkgbmFtZVwiKX0sdi5yZWdleHBfZWF0VW5pY29kZVByb3BlcnR5TmFtZT1mdW5jdGlvbihlKXt2YXIgdD0wO2ZvcihlLmxhc3RTdHJpbmdWYWx1ZT1cIlwiO0t0KHQ9ZS5jdXJyZW50KCkpOyllLmxhc3RTdHJpbmdWYWx1ZSs9Wih0KSxlLmFkdmFuY2UoKTtyZXR1cm4gZS5sYXN0U3RyaW5nVmFsdWUhPT1cIlwifTtmdW5jdGlvbiBLdChlKXtyZXR1cm4gVXQoZSl8fGU9PT05NX12LnJlZ2V4cF9lYXRVbmljb2RlUHJvcGVydHlWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD0wO2ZvcihlLmxhc3RTdHJpbmdWYWx1ZT1cIlwiO0ppKHQ9ZS5jdXJyZW50KCkpOyllLmxhc3RTdHJpbmdWYWx1ZSs9Wih0KSxlLmFkdmFuY2UoKTtyZXR1cm4gZS5sYXN0U3RyaW5nVmFsdWUhPT1cIlwifTtmdW5jdGlvbiBKaShlKXtyZXR1cm4gS3QoZSl8fE5lKGUpfXYucmVnZXhwX2VhdExvbmVVbmljb2RlUHJvcGVydHlOYW1lT3JWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZWdleHBfZWF0VW5pY29kZVByb3BlcnR5VmFsdWUoZSl9LHYucmVnZXhwX2VhdENoYXJhY3RlckNsYXNzPWZ1bmN0aW9uKGUpe2lmKGUuZWF0KDkxKSl7dmFyIHQ9ZS5lYXQoOTQpLGk9dGhpcy5yZWdleHBfY2xhc3NDb250ZW50cyhlKTtyZXR1cm4gZS5lYXQoOTMpfHxlLnJhaXNlKFwiVW50ZXJtaW5hdGVkIGNoYXJhY3RlciBjbGFzc1wiKSx0JiZpPT09SiYmZS5yYWlzZShcIk5lZ2F0ZWQgY2hhcmFjdGVyIGNsYXNzIG1heSBjb250YWluIHN0cmluZ3NcIiksITB9cmV0dXJuITF9LHYucmVnZXhwX2NsYXNzQ29udGVudHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY3VycmVudCgpPT09OTM/WTplLnN3aXRjaFY/dGhpcy5yZWdleHBfY2xhc3NTZXRFeHByZXNzaW9uKGUpOih0aGlzLnJlZ2V4cF9ub25FbXB0eUNsYXNzUmFuZ2VzKGUpLFkpfSx2LnJlZ2V4cF9ub25FbXB0eUNsYXNzUmFuZ2VzPWZ1bmN0aW9uKGUpe2Zvcig7dGhpcy5yZWdleHBfZWF0Q2xhc3NBdG9tKGUpOyl7dmFyIHQ9ZS5sYXN0SW50VmFsdWU7aWYoZS5lYXQoNDUpJiZ0aGlzLnJlZ2V4cF9lYXRDbGFzc0F0b20oZSkpe3ZhciBpPWUubGFzdEludFZhbHVlO2Uuc3dpdGNoVSYmKHQ9PT0tMXx8aT09PS0xKSYmZS5yYWlzZShcIkludmFsaWQgY2hhcmFjdGVyIGNsYXNzXCIpLHQhPT0tMSYmaSE9PS0xJiZ0PmkmJmUucmFpc2UoXCJSYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNzXCIpfX19LHYucmVnZXhwX2VhdENsYXNzQXRvbT1mdW5jdGlvbihlKXt2YXIgdD1lLnBvcztpZihlLmVhdCg5Mikpe2lmKHRoaXMucmVnZXhwX2VhdENsYXNzRXNjYXBlKGUpKXJldHVybiEwO2lmKGUuc3dpdGNoVSl7dmFyIGk9ZS5jdXJyZW50KCk7KGk9PT05OXx8V3QoaSkpJiZlLnJhaXNlKFwiSW52YWxpZCBjbGFzcyBlc2NhcGVcIiksZS5yYWlzZShcIkludmFsaWQgZXNjYXBlXCIpfWUucG9zPXR9dmFyIHM9ZS5jdXJyZW50KCk7cmV0dXJuIHMhPT05Mz8oZS5sYXN0SW50VmFsdWU9cyxlLmFkdmFuY2UoKSwhMCk6ITF9LHYucmVnZXhwX2VhdENsYXNzRXNjYXBlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUuZWF0KDk4KSlyZXR1cm4gZS5sYXN0SW50VmFsdWU9OCwhMDtpZihlLnN3aXRjaFUmJmUuZWF0KDQ1KSlyZXR1cm4gZS5sYXN0SW50VmFsdWU9NDUsITA7aWYoIWUuc3dpdGNoVSYmZS5lYXQoOTkpKXtpZih0aGlzLnJlZ2V4cF9lYXRDbGFzc0NvbnRyb2xMZXR0ZXIoZSkpcmV0dXJuITA7ZS5wb3M9dH1yZXR1cm4gdGhpcy5yZWdleHBfZWF0Q2hhcmFjdGVyQ2xhc3NFc2NhcGUoZSl8fHRoaXMucmVnZXhwX2VhdENoYXJhY3RlckVzY2FwZShlKX0sdi5yZWdleHBfY2xhc3NTZXRFeHByZXNzaW9uPWZ1bmN0aW9uKGUpe3ZhciB0PVksaTtpZighdGhpcy5yZWdleHBfZWF0Q2xhc3NTZXRSYW5nZShlKSlpZihpPXRoaXMucmVnZXhwX2VhdENsYXNzU2V0T3BlcmFuZChlKSl7aT09PUomJih0PUopO2Zvcih2YXIgcz1lLnBvcztlLmVhdENoYXJzKFszOCwzOF0pOyl7aWYoZS5jdXJyZW50KCkhPT0zOCYmKGk9dGhpcy5yZWdleHBfZWF0Q2xhc3NTZXRPcGVyYW5kKGUpKSl7aSE9PUomJih0PVkpO2NvbnRpbnVlfWUucmFpc2UoXCJJbnZhbGlkIGNoYXJhY3RlciBpbiBjaGFyYWN0ZXIgY2xhc3NcIil9aWYocyE9PWUucG9zKXJldHVybiB0O2Zvcig7ZS5lYXRDaGFycyhbNDUsNDVdKTspdGhpcy5yZWdleHBfZWF0Q2xhc3NTZXRPcGVyYW5kKGUpfHxlLnJhaXNlKFwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gY2hhcmFjdGVyIGNsYXNzXCIpO2lmKHMhPT1lLnBvcylyZXR1cm4gdH1lbHNlIGUucmFpc2UoXCJJbnZhbGlkIGNoYXJhY3RlciBpbiBjaGFyYWN0ZXIgY2xhc3NcIik7Zm9yKDs7KWlmKCF0aGlzLnJlZ2V4cF9lYXRDbGFzc1NldFJhbmdlKGUpKXtpZihpPXRoaXMucmVnZXhwX2VhdENsYXNzU2V0T3BlcmFuZChlKSwhaSlyZXR1cm4gdDtpPT09SiYmKHQ9Sil9fSx2LnJlZ2V4cF9lYXRDbGFzc1NldFJhbmdlPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKHRoaXMucmVnZXhwX2VhdENsYXNzU2V0Q2hhcmFjdGVyKGUpKXt2YXIgaT1lLmxhc3RJbnRWYWx1ZTtpZihlLmVhdCg0NSkmJnRoaXMucmVnZXhwX2VhdENsYXNzU2V0Q2hhcmFjdGVyKGUpKXt2YXIgcz1lLmxhc3RJbnRWYWx1ZTtyZXR1cm4gaSE9PS0xJiZzIT09LTEmJmk+cyYmZS5yYWlzZShcIlJhbmdlIG91dCBvZiBvcmRlciBpbiBjaGFyYWN0ZXIgY2xhc3NcIiksITB9ZS5wb3M9dH1yZXR1cm4hMX0sdi5yZWdleHBfZWF0Q2xhc3NTZXRPcGVyYW5kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZ2V4cF9lYXRDbGFzc1NldENoYXJhY3RlcihlKT9ZOnRoaXMucmVnZXhwX2VhdENsYXNzU3RyaW5nRGlzanVuY3Rpb24oZSl8fHRoaXMucmVnZXhwX2VhdE5lc3RlZENsYXNzKGUpfSx2LnJlZ2V4cF9lYXROZXN0ZWRDbGFzcz1mdW5jdGlvbihlKXt2YXIgdD1lLnBvcztpZihlLmVhdCg5MSkpe3ZhciBpPWUuZWF0KDk0KSxzPXRoaXMucmVnZXhwX2NsYXNzQ29udGVudHMoZSk7aWYoZS5lYXQoOTMpKXJldHVybiBpJiZzPT09SiYmZS5yYWlzZShcIk5lZ2F0ZWQgY2hhcmFjdGVyIGNsYXNzIG1heSBjb250YWluIHN0cmluZ3NcIikscztlLnBvcz10fWlmKGUuZWF0KDkyKSl7dmFyIG49dGhpcy5yZWdleHBfZWF0Q2hhcmFjdGVyQ2xhc3NFc2NhcGUoZSk7aWYobilyZXR1cm4gbjtlLnBvcz10fXJldHVybiBudWxsfSx2LnJlZ2V4cF9lYXRDbGFzc1N0cmluZ0Rpc2p1bmN0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zO2lmKGUuZWF0Q2hhcnMoWzkyLDExM10pKXtpZihlLmVhdCgxMjMpKXt2YXIgaT10aGlzLnJlZ2V4cF9jbGFzc1N0cmluZ0Rpc2p1bmN0aW9uQ29udGVudHMoZSk7aWYoZS5lYXQoMTI1KSlyZXR1cm4gaX1lbHNlIGUucmFpc2UoXCJJbnZhbGlkIGVzY2FwZVwiKTtlLnBvcz10fXJldHVybiBudWxsfSx2LnJlZ2V4cF9jbGFzc1N0cmluZ0Rpc2p1bmN0aW9uQ29udGVudHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMucmVnZXhwX2NsYXNzU3RyaW5nKGUpO2UuZWF0KDEyNCk7KXRoaXMucmVnZXhwX2NsYXNzU3RyaW5nKGUpPT09SiYmKHQ9Sik7cmV0dXJuIHR9LHYucmVnZXhwX2NsYXNzU3RyaW5nPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3RoaXMucmVnZXhwX2VhdENsYXNzU2V0Q2hhcmFjdGVyKGUpOyl0Kys7cmV0dXJuIHQ9PT0xP1k6Sn0sdi5yZWdleHBfZWF0Q2xhc3NTZXRDaGFyYWN0ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wb3M7aWYoZS5lYXQoOTIpKXJldHVybiB0aGlzLnJlZ2V4cF9lYXRDaGFyYWN0ZXJFc2NhcGUoZSl8fHRoaXMucmVnZXhwX2VhdENsYXNzU2V0UmVzZXJ2ZWRQdW5jdHVhdG9yKGUpPyEwOmUuZWF0KDk4KT8oZS5sYXN0SW50VmFsdWU9OCwhMCk6KGUucG9zPXQsITEpO3ZhciBpPWUuY3VycmVudCgpO3JldHVybiBpPDB8fGk9PT1lLmxvb2thaGVhZCgpJiZHaShpKXx8V2koaSk/ITE6KGUuYWR2YW5jZSgpLGUubGFzdEludFZhbHVlPWksITApfTtmdW5jdGlvbiBHaShlKXtyZXR1cm4gZT09PTMzfHxlPj0zNSYmZTw9Mzh8fGU+PTQyJiZlPD00NHx8ZT09PTQ2fHxlPj01OCYmZTw9NjR8fGU9PT05NHx8ZT09PTk2fHxlPT09MTI2fWZ1bmN0aW9uIFdpKGUpe3JldHVybiBlPT09NDB8fGU9PT00MXx8ZT09PTQ1fHxlPT09NDd8fGU+PTkxJiZlPD05M3x8ZT49MTIzJiZlPD0xMjV9di5yZWdleHBfZWF0Q2xhc3NTZXRSZXNlcnZlZFB1bmN0dWF0b3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jdXJyZW50KCk7cmV0dXJuIFhpKHQpPyhlLmxhc3RJbnRWYWx1ZT10LGUuYWR2YW5jZSgpLCEwKTohMX07ZnVuY3Rpb24gWGkoZSl7cmV0dXJuIGU9PT0zM3x8ZT09PTM1fHxlPT09Mzd8fGU9PT0zOHx8ZT09PTQ0fHxlPT09NDV8fGU+PTU4JiZlPD02Mnx8ZT09PTY0fHxlPT09OTZ8fGU9PT0xMjZ9di5yZWdleHBfZWF0Q2xhc3NDb250cm9sTGV0dGVyPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY3VycmVudCgpO3JldHVybiBOZSh0KXx8dD09PTk1PyhlLmxhc3RJbnRWYWx1ZT10JTMyLGUuYWR2YW5jZSgpLCEwKTohMX0sdi5yZWdleHBfZWF0SGV4RXNjYXBlU2VxdWVuY2U9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wb3M7aWYoZS5lYXQoMTIwKSl7aWYodGhpcy5yZWdleHBfZWF0Rml4ZWRIZXhEaWdpdHMoZSwyKSlyZXR1cm4hMDtlLnN3aXRjaFUmJmUucmFpc2UoXCJJbnZhbGlkIGVzY2FwZVwiKSxlLnBvcz10fXJldHVybiExfSx2LnJlZ2V4cF9lYXREZWNpbWFsRGlnaXRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zLGk9MDtmb3IoZS5sYXN0SW50VmFsdWU9MDtOZShpPWUuY3VycmVudCgpKTspZS5sYXN0SW50VmFsdWU9MTAqZS5sYXN0SW50VmFsdWUrKGktNDgpLGUuYWR2YW5jZSgpO3JldHVybiBlLnBvcyE9PXR9O2Z1bmN0aW9uIE5lKGUpe3JldHVybiBlPj00OCYmZTw9NTd9di5yZWdleHBfZWF0SGV4RGlnaXRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUucG9zLGk9MDtmb3IoZS5sYXN0SW50VmFsdWU9MDtKdChpPWUuY3VycmVudCgpKTspZS5sYXN0SW50VmFsdWU9MTYqZS5sYXN0SW50VmFsdWUrR3QoaSksZS5hZHZhbmNlKCk7cmV0dXJuIGUucG9zIT09dH07ZnVuY3Rpb24gSnQoZSl7cmV0dXJuIGU+PTQ4JiZlPD01N3x8ZT49NjUmJmU8PTcwfHxlPj05NyYmZTw9MTAyfWZ1bmN0aW9uIEd0KGUpe3JldHVybiBlPj02NSYmZTw9NzA/MTArKGUtNjUpOmU+PTk3JiZlPD0xMDI/MTArKGUtOTcpOmUtNDh9di5yZWdleHBfZWF0TGVnYWN5T2N0YWxFc2NhcGVTZXF1ZW5jZT1mdW5jdGlvbihlKXtpZih0aGlzLnJlZ2V4cF9lYXRPY3RhbERpZ2l0KGUpKXt2YXIgdD1lLmxhc3RJbnRWYWx1ZTtpZih0aGlzLnJlZ2V4cF9lYXRPY3RhbERpZ2l0KGUpKXt2YXIgaT1lLmxhc3RJbnRWYWx1ZTt0PD0zJiZ0aGlzLnJlZ2V4cF9lYXRPY3RhbERpZ2l0KGUpP2UubGFzdEludFZhbHVlPXQqNjQraSo4K2UubGFzdEludFZhbHVlOmUubGFzdEludFZhbHVlPXQqOCtpfWVsc2UgZS5sYXN0SW50VmFsdWU9dDtyZXR1cm4hMH1yZXR1cm4hMX0sdi5yZWdleHBfZWF0T2N0YWxEaWdpdD1mdW5jdGlvbihlKXt2YXIgdD1lLmN1cnJlbnQoKTtyZXR1cm4gV3QodCk/KGUubGFzdEludFZhbHVlPXQtNDgsZS5hZHZhbmNlKCksITApOihlLmxhc3RJbnRWYWx1ZT0wLCExKX07ZnVuY3Rpb24gV3QoZSl7cmV0dXJuIGU+PTQ4JiZlPD01NX12LnJlZ2V4cF9lYXRGaXhlZEhleERpZ2l0cz1mdW5jdGlvbihlLHQpe3ZhciBpPWUucG9zO2UubGFzdEludFZhbHVlPTA7Zm9yKHZhciBzPTA7czx0Oysrcyl7dmFyIG49ZS5jdXJyZW50KCk7aWYoIUp0KG4pKXJldHVybiBlLnBvcz1pLCExO2UubGFzdEludFZhbHVlPTE2KmUubGFzdEludFZhbHVlK0d0KG4pLGUuYWR2YW5jZSgpfXJldHVybiEwfTt2YXIgVmU9ZnVuY3Rpb24odCl7dGhpcy50eXBlPXQudHlwZSx0aGlzLnZhbHVlPXQudmFsdWUsdGhpcy5zdGFydD10LnN0YXJ0LHRoaXMuZW5kPXQuZW5kLHQub3B0aW9ucy5sb2NhdGlvbnMmJih0aGlzLmxvYz1uZXcgZmUodCx0LnN0YXJ0TG9jLHQuZW5kTG9jKSksdC5vcHRpb25zLnJhbmdlcyYmKHRoaXMucmFuZ2U9W3Quc3RhcnQsdC5lbmRdKX0sQT1WLnByb3RvdHlwZTtBLm5leHQ9ZnVuY3Rpb24oZSl7IWUmJnRoaXMudHlwZS5rZXl3b3JkJiZ0aGlzLmNvbnRhaW5zRXNjJiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodGhpcy5zdGFydCxcIkVzY2FwZSBzZXF1ZW5jZSBpbiBrZXl3b3JkIFwiK3RoaXMudHlwZS5rZXl3b3JkKSx0aGlzLm9wdGlvbnMub25Ub2tlbiYmdGhpcy5vcHRpb25zLm9uVG9rZW4obmV3IFZlKHRoaXMpKSx0aGlzLmxhc3RUb2tFbmQ9dGhpcy5lbmQsdGhpcy5sYXN0VG9rU3RhcnQ9dGhpcy5zdGFydCx0aGlzLmxhc3RUb2tFbmRMb2M9dGhpcy5lbmRMb2MsdGhpcy5sYXN0VG9rU3RhcnRMb2M9dGhpcy5zdGFydExvYyx0aGlzLm5leHRUb2tlbigpfSxBLmdldFRva2VuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dCgpLG5ldyBWZSh0aGlzKX0sdHlwZW9mIFN5bWJvbDxcInVcIiYmKEFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXt2YXIgdD1lLmdldFRva2VuKCk7cmV0dXJue2RvbmU6dC50eXBlPT09ci5lb2YsdmFsdWU6dH19fX0pLEEubmV4dFRva2VuPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJDb250ZXh0KCk7aWYoKCFlfHwhZS5wcmVzZXJ2ZVNwYWNlKSYmdGhpcy5za2lwU3BhY2UoKSx0aGlzLnN0YXJ0PXRoaXMucG9zLHRoaXMub3B0aW9ucy5sb2NhdGlvbnMmJih0aGlzLnN0YXJ0TG9jPXRoaXMuY3VyUG9zaXRpb24oKSksdGhpcy5wb3M+PXRoaXMuaW5wdXQubGVuZ3RoKXJldHVybiB0aGlzLmZpbmlzaFRva2VuKHIuZW9mKTtpZihlLm92ZXJyaWRlKXJldHVybiBlLm92ZXJyaWRlKHRoaXMpO3RoaXMucmVhZFRva2VuKHRoaXMuZnVsbENoYXJDb2RlQXRQb3MoKSl9LEEucmVhZFRva2VuPWZ1bmN0aW9uKGUpe3JldHVybiBGKGUsdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj02KXx8ZT09PTkyP3RoaXMucmVhZFdvcmQoKTp0aGlzLmdldFRva2VuRnJvbUNvZGUoZSl9LEEuZnVsbENoYXJDb2RlQXRQb3M9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpO2lmKGU8PTU1Mjk1fHxlPj01NjMyMClyZXR1cm4gZTt2YXIgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMSk7cmV0dXJuIHQ8PTU2MzE5fHx0Pj01NzM0ND9lOihlPDwxMCkrdC01NjYxMzg4OH0sQS5za2lwQmxvY2tDb21tZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm9uQ29tbWVudCYmdGhpcy5jdXJQb3NpdGlvbigpLHQ9dGhpcy5wb3MsaT10aGlzLmlucHV0LmluZGV4T2YoXCIqL1wiLHRoaXMucG9zKz0yKTtpZihpPT09LTEmJnRoaXMucmFpc2UodGhpcy5wb3MtMixcIlVudGVybWluYXRlZCBjb21tZW50XCIpLHRoaXMucG9zPWkrMix0aGlzLm9wdGlvbnMubG9jYXRpb25zKWZvcih2YXIgcz12b2lkIDAsbj10OyhzPWZ0KHRoaXMuaW5wdXQsbix0aGlzLnBvcykpPi0xOykrK3RoaXMuY3VyTGluZSxuPXRoaXMubGluZVN0YXJ0PXM7dGhpcy5vcHRpb25zLm9uQ29tbWVudCYmdGhpcy5vcHRpb25zLm9uQ29tbWVudCghMCx0aGlzLmlucHV0LnNsaWNlKHQrMixpKSx0LHRoaXMucG9zLGUsdGhpcy5jdXJQb3NpdGlvbigpKX0sQS5za2lwTGluZUNvbW1lbnQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMucG9zLGk9dGhpcy5vcHRpb25zLm9uQ29tbWVudCYmdGhpcy5jdXJQb3NpdGlvbigpLHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKz1lKTt0aGlzLnBvczx0aGlzLmlucHV0Lmxlbmd0aCYmIXRlKHMpOylzPXRoaXMuaW5wdXQuY2hhckNvZGVBdCgrK3RoaXMucG9zKTt0aGlzLm9wdGlvbnMub25Db21tZW50JiZ0aGlzLm9wdGlvbnMub25Db21tZW50KCExLHRoaXMuaW5wdXQuc2xpY2UodCtlLHRoaXMucG9zKSx0LHRoaXMucG9zLGksdGhpcy5jdXJQb3NpdGlvbigpKX0sQS5za2lwU3BhY2U9ZnVuY3Rpb24oKXtlOmZvcig7dGhpcy5wb3M8dGhpcy5pbnB1dC5sZW5ndGg7KXt2YXIgZT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpO3N3aXRjaChlKXtjYXNlIDMyOmNhc2UgMTYwOisrdGhpcy5wb3M7YnJlYWs7Y2FzZSAxMzp0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMSk9PT0xMCYmKyt0aGlzLnBvcztjYXNlIDEwOmNhc2UgODIzMjpjYXNlIDgyMzM6Kyt0aGlzLnBvcyx0aGlzLm9wdGlvbnMubG9jYXRpb25zJiYoKyt0aGlzLmN1ckxpbmUsdGhpcy5saW5lU3RhcnQ9dGhpcy5wb3MpO2JyZWFrO2Nhc2UgNDc6c3dpdGNoKHRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKSl7Y2FzZSA0Mjp0aGlzLnNraXBCbG9ja0NvbW1lbnQoKTticmVhaztjYXNlIDQ3OnRoaXMuc2tpcExpbmVDb21tZW50KDIpO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1icmVhaztkZWZhdWx0OmlmKGU+OCYmZTwxNHx8ZT49NTc2MCYmS2UudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKSkrK3RoaXMucG9zO2Vsc2UgYnJlYWsgZX19fSxBLmZpbmlzaFRva2VuPWZ1bmN0aW9uKGUsdCl7dGhpcy5lbmQ9dGhpcy5wb3MsdGhpcy5vcHRpb25zLmxvY2F0aW9ucyYmKHRoaXMuZW5kTG9jPXRoaXMuY3VyUG9zaXRpb24oKSk7dmFyIGk9dGhpcy50eXBlO3RoaXMudHlwZT1lLHRoaXMudmFsdWU9dCx0aGlzLnVwZGF0ZUNvbnRleHQoaSl9LEEucmVhZFRva2VuX2RvdD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKTtpZihlPj00OCYmZTw9NTcpcmV0dXJuIHRoaXMucmVhZE51bWJlcighMCk7dmFyIHQ9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzIpO3JldHVybiB0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTYmJmU9PT00NiYmdD09PTQ2Pyh0aGlzLnBvcys9Myx0aGlzLmZpbmlzaFRva2VuKHIuZWxsaXBzaXMpKTooKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKHIuZG90KSl9LEEucmVhZFRva2VuX3NsYXNoPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzEpO3JldHVybiB0aGlzLmV4cHJBbGxvd2VkPygrK3RoaXMucG9zLHRoaXMucmVhZFJlZ2V4cCgpKTplPT09NjE/dGhpcy5maW5pc2hPcChyLmFzc2lnbiwyKTp0aGlzLmZpbmlzaE9wKHIuc2xhc2gsMSl9LEEucmVhZFRva2VuX211bHRfbW9kdWxvX2V4cD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMSksaT0xLHM9ZT09PTQyP3Iuc3RhcjpyLm1vZHVsbztyZXR1cm4gdGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPj03JiZlPT09NDImJnQ9PT00MiYmKCsraSxzPXIuc3RhcnN0YXIsdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMikpLHQ9PT02MT90aGlzLmZpbmlzaE9wKHIuYXNzaWduLGkrMSk6dGhpcy5maW5pc2hPcChzLGkpfSxBLnJlYWRUb2tlbl9waXBlX2FtcD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMSk7aWYodD09PWUpe2lmKHRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTIpe3ZhciBpPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysyKTtpZihpPT09NjEpcmV0dXJuIHRoaXMuZmluaXNoT3Aoci5hc3NpZ24sMyl9cmV0dXJuIHRoaXMuZmluaXNoT3AoZT09PTEyND9yLmxvZ2ljYWxPUjpyLmxvZ2ljYWxBTkQsMil9cmV0dXJuIHQ9PT02MT90aGlzLmZpbmlzaE9wKHIuYXNzaWduLDIpOnRoaXMuZmluaXNoT3AoZT09PTEyND9yLmJpdHdpc2VPUjpyLmJpdHdpc2VBTkQsMSl9LEEucmVhZFRva2VuX2NhcmV0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzEpO3JldHVybiBlPT09NjE/dGhpcy5maW5pc2hPcChyLmFzc2lnbiwyKTp0aGlzLmZpbmlzaE9wKHIuYml0d2lzZVhPUiwxKX0sQS5yZWFkVG9rZW5fcGx1c19taW49ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzEpO3JldHVybiB0PT09ZT90PT09NDUmJiF0aGlzLmluTW9kdWxlJiZ0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMik9PT02MiYmKHRoaXMubGFzdFRva0VuZD09PTB8fGoudGVzdCh0aGlzLmlucHV0LnNsaWNlKHRoaXMubGFzdFRva0VuZCx0aGlzLnBvcykpKT8odGhpcy5za2lwTGluZUNvbW1lbnQoMyksdGhpcy5za2lwU3BhY2UoKSx0aGlzLm5leHRUb2tlbigpKTp0aGlzLmZpbmlzaE9wKHIuaW5jRGVjLDIpOnQ9PT02MT90aGlzLmZpbmlzaE9wKHIuYXNzaWduLDIpOnRoaXMuZmluaXNoT3Aoci5wbHVzTWluLDEpfSxBLnJlYWRUb2tlbl9sdF9ndD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMSksaT0xO3JldHVybiB0PT09ZT8oaT1lPT09NjImJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysyKT09PTYyPzM6Mix0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MraSk9PT02MT90aGlzLmZpbmlzaE9wKHIuYXNzaWduLGkrMSk6dGhpcy5maW5pc2hPcChyLmJpdFNoaWZ0LGkpKTp0PT09MzMmJmU9PT02MCYmIXRoaXMuaW5Nb2R1bGUmJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysyKT09PTQ1JiZ0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MrMyk9PT00NT8odGhpcy5za2lwTGluZUNvbW1lbnQoNCksdGhpcy5za2lwU3BhY2UoKSx0aGlzLm5leHRUb2tlbigpKToodD09PTYxJiYoaT0yKSx0aGlzLmZpbmlzaE9wKHIucmVsYXRpb25hbCxpKSl9LEEucmVhZFRva2VuX2VxX2V4Y2w9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzEpO3JldHVybiB0PT09NjE/dGhpcy5maW5pc2hPcChyLmVxdWFsaXR5LHRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysyKT09PTYxPzM6Mik6ZT09PTYxJiZ0PT09NjImJnRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49Nj8odGhpcy5wb3MrPTIsdGhpcy5maW5pc2hUb2tlbihyLmFycm93KSk6dGhpcy5maW5pc2hPcChlPT09NjE/ci5lcTpyLnByZWZpeCwxKX0sQS5yZWFkVG9rZW5fcXVlc3Rpb249ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb247aWYoZT49MTEpe3ZhciB0PXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKTtpZih0PT09NDYpe3ZhciBpPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysyKTtpZihpPDQ4fHxpPjU3KXJldHVybiB0aGlzLmZpbmlzaE9wKHIucXVlc3Rpb25Eb3QsMil9aWYodD09PTYzKXtpZihlPj0xMil7dmFyIHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKzIpO2lmKHM9PT02MSlyZXR1cm4gdGhpcy5maW5pc2hPcChyLmFzc2lnbiwzKX1yZXR1cm4gdGhpcy5maW5pc2hPcChyLmNvYWxlc2NlLDIpfX1yZXR1cm4gdGhpcy5maW5pc2hPcChyLnF1ZXN0aW9uLDEpfSxBLnJlYWRUb2tlbl9udW1iZXJTaWduPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uLHQ9MzU7aWYoZT49MTMmJigrK3RoaXMucG9zLHQ9dGhpcy5mdWxsQ2hhckNvZGVBdFBvcygpLEYodCwhMCl8fHQ9PT05MikpcmV0dXJuIHRoaXMuZmluaXNoVG9rZW4oci5wcml2YXRlSWQsdGhpcy5yZWFkV29yZDEoKSk7dGhpcy5yYWlzZSh0aGlzLnBvcyxcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICdcIitaKHQpK1wiJ1wiKX0sQS5nZXRUb2tlbkZyb21Db2RlPWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlIDQ2OnJldHVybiB0aGlzLnJlYWRUb2tlbl9kb3QoKTtjYXNlIDQwOnJldHVybisrdGhpcy5wb3MsdGhpcy5maW5pc2hUb2tlbihyLnBhcmVuTCk7Y2FzZSA0MTpyZXR1cm4rK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5wYXJlblIpO2Nhc2UgNTk6cmV0dXJuKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKHIuc2VtaSk7Y2FzZSA0NDpyZXR1cm4rK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5jb21tYSk7Y2FzZSA5MTpyZXR1cm4rK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5icmFja2V0TCk7Y2FzZSA5MzpyZXR1cm4rK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5icmFja2V0Uik7Y2FzZSAxMjM6cmV0dXJuKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKHIuYnJhY2VMKTtjYXNlIDEyNTpyZXR1cm4rK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5icmFjZVIpO2Nhc2UgNTg6cmV0dXJuKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKHIuY29sb24pO2Nhc2UgOTY6aWYodGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPDYpYnJlYWs7cmV0dXJuKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKHIuYmFja1F1b3RlKTtjYXNlIDQ4OnZhciB0PXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKTtpZih0PT09MTIwfHx0PT09ODgpcmV0dXJuIHRoaXMucmVhZFJhZGl4TnVtYmVyKDE2KTtpZih0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTYpe2lmKHQ9PT0xMTF8fHQ9PT03OSlyZXR1cm4gdGhpcy5yZWFkUmFkaXhOdW1iZXIoOCk7aWYodD09PTk4fHx0PT09NjYpcmV0dXJuIHRoaXMucmVhZFJhZGl4TnVtYmVyKDIpfWNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OnJldHVybiB0aGlzLnJlYWROdW1iZXIoITEpO2Nhc2UgMzQ6Y2FzZSAzOTpyZXR1cm4gdGhpcy5yZWFkU3RyaW5nKGUpO2Nhc2UgNDc6cmV0dXJuIHRoaXMucmVhZFRva2VuX3NsYXNoKCk7Y2FzZSAzNzpjYXNlIDQyOnJldHVybiB0aGlzLnJlYWRUb2tlbl9tdWx0X21vZHVsb19leHAoZSk7Y2FzZSAxMjQ6Y2FzZSAzODpyZXR1cm4gdGhpcy5yZWFkVG9rZW5fcGlwZV9hbXAoZSk7Y2FzZSA5NDpyZXR1cm4gdGhpcy5yZWFkVG9rZW5fY2FyZXQoKTtjYXNlIDQzOmNhc2UgNDU6cmV0dXJuIHRoaXMucmVhZFRva2VuX3BsdXNfbWluKGUpO2Nhc2UgNjA6Y2FzZSA2MjpyZXR1cm4gdGhpcy5yZWFkVG9rZW5fbHRfZ3QoZSk7Y2FzZSA2MTpjYXNlIDMzOnJldHVybiB0aGlzLnJlYWRUb2tlbl9lcV9leGNsKGUpO2Nhc2UgNjM6cmV0dXJuIHRoaXMucmVhZFRva2VuX3F1ZXN0aW9uKCk7Y2FzZSAxMjY6cmV0dXJuIHRoaXMuZmluaXNoT3Aoci5wcmVmaXgsMSk7Y2FzZSAzNTpyZXR1cm4gdGhpcy5yZWFkVG9rZW5fbnVtYmVyU2lnbigpfXRoaXMucmFpc2UodGhpcy5wb3MsXCJVbmV4cGVjdGVkIGNoYXJhY3RlciAnXCIrWihlKStcIidcIil9LEEuZmluaXNoT3A9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLmlucHV0LnNsaWNlKHRoaXMucG9zLHRoaXMucG9zK3QpO3JldHVybiB0aGlzLnBvcys9dCx0aGlzLmZpbmlzaFRva2VuKGUsaSl9LEEucmVhZFJlZ2V4cD1mdW5jdGlvbigpe2Zvcih2YXIgZSx0LGk9dGhpcy5wb3M7Oyl7dGhpcy5wb3M+PXRoaXMuaW5wdXQubGVuZ3RoJiZ0aGlzLnJhaXNlKGksXCJVbnRlcm1pbmF0ZWQgcmVndWxhciBleHByZXNzaW9uXCIpO3ZhciBzPXRoaXMuaW5wdXQuY2hhckF0KHRoaXMucG9zKTtpZihqLnRlc3QocykmJnRoaXMucmFpc2UoaSxcIlVudGVybWluYXRlZCByZWd1bGFyIGV4cHJlc3Npb25cIiksZSllPSExO2Vsc2V7aWYocz09PVwiW1wiKXQ9ITA7ZWxzZSBpZihzPT09XCJdXCImJnQpdD0hMTtlbHNlIGlmKHM9PT1cIi9cIiYmIXQpYnJlYWs7ZT1zPT09XCJcXFxcXCJ9Kyt0aGlzLnBvc312YXIgbj10aGlzLmlucHV0LnNsaWNlKGksdGhpcy5wb3MpOysrdGhpcy5wb3M7dmFyIG89dGhpcy5wb3MscD10aGlzLnJlYWRXb3JkMSgpO3RoaXMuY29udGFpbnNFc2MmJnRoaXMudW5leHBlY3RlZChvKTt2YXIgbT10aGlzLnJlZ2V4cFN0YXRlfHwodGhpcy5yZWdleHBTdGF0ZT1uZXcgWCh0aGlzKSk7bS5yZXNldChpLG4scCksdGhpcy52YWxpZGF0ZVJlZ0V4cEZsYWdzKG0pLHRoaXMudmFsaWRhdGVSZWdFeHBQYXR0ZXJuKG0pO3ZhciBnPW51bGw7dHJ5e2c9bmV3IFJlZ0V4cChuLHApfWNhdGNoe31yZXR1cm4gdGhpcy5maW5pc2hUb2tlbihyLnJlZ2V4cCx7cGF0dGVybjpuLGZsYWdzOnAsdmFsdWU6Z30pfSxBLnJlYWRJbnQ9ZnVuY3Rpb24oZSx0LGkpe2Zvcih2YXIgcz10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTEyJiZ0PT09dm9pZCAwLG49aSYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKT09PTQ4LG89dGhpcy5wb3MscD0wLG09MCxnPTAsVD10Pz8xLzA7ZzxUOysrZywrK3RoaXMucG9zKXt2YXIgRT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpLFI9dm9pZCAwO2lmKHMmJkU9PT05NSl7biYmdGhpcy5yYWlzZVJlY292ZXJhYmxlKHRoaXMucG9zLFwiTnVtZXJpYyBzZXBhcmF0b3IgaXMgbm90IGFsbG93ZWQgaW4gbGVnYWN5IG9jdGFsIG51bWVyaWMgbGl0ZXJhbHNcIiksbT09PTk1JiZ0aGlzLnJhaXNlUmVjb3ZlcmFibGUodGhpcy5wb3MsXCJOdW1lcmljIHNlcGFyYXRvciBtdXN0IGJlIGV4YWN0bHkgb25lIHVuZGVyc2NvcmVcIiksZz09PTAmJnRoaXMucmFpc2VSZWNvdmVyYWJsZSh0aGlzLnBvcyxcIk51bWVyaWMgc2VwYXJhdG9yIGlzIG5vdCBhbGxvd2VkIGF0IHRoZSBmaXJzdCBvZiBkaWdpdHNcIiksbT1FO2NvbnRpbnVlfWlmKEU+PTk3P1I9RS05NysxMDpFPj02NT9SPUUtNjUrMTA6RT49NDgmJkU8PTU3P1I9RS00ODpSPTEvMCxSPj1lKWJyZWFrO209RSxwPXAqZStSfXJldHVybiBzJiZtPT09OTUmJnRoaXMucmFpc2VSZWNvdmVyYWJsZSh0aGlzLnBvcy0xLFwiTnVtZXJpYyBzZXBhcmF0b3IgaXMgbm90IGFsbG93ZWQgYXQgdGhlIGxhc3Qgb2YgZGlnaXRzXCIpLHRoaXMucG9zPT09b3x8dCE9bnVsbCYmdGhpcy5wb3MtbyE9PXQ/bnVsbDpwfTtmdW5jdGlvbiB6aShlLHQpe3JldHVybiB0P3BhcnNlSW50KGUsOCk6cGFyc2VGbG9hdChlLnJlcGxhY2UoL18vZyxcIlwiKSl9ZnVuY3Rpb24gWHQoZSl7cmV0dXJuIHR5cGVvZiBCaWdJbnQhPVwiZnVuY3Rpb25cIj9udWxsOkJpZ0ludChlLnJlcGxhY2UoL18vZyxcIlwiKSl9QS5yZWFkUmFkaXhOdW1iZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wb3M7dGhpcy5wb3MrPTI7dmFyIGk9dGhpcy5yZWFkSW50KGUpO3JldHVybiBpPT1udWxsJiZ0aGlzLnJhaXNlKHRoaXMuc3RhcnQrMixcIkV4cGVjdGVkIG51bWJlciBpbiByYWRpeCBcIitlKSx0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTExJiZ0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpPT09MTEwPyhpPVh0KHRoaXMuaW5wdXQuc2xpY2UodCx0aGlzLnBvcykpLCsrdGhpcy5wb3MpOkYodGhpcy5mdWxsQ2hhckNvZGVBdFBvcygpKSYmdGhpcy5yYWlzZSh0aGlzLnBvcyxcIklkZW50aWZpZXIgZGlyZWN0bHkgYWZ0ZXIgbnVtYmVyXCIpLHRoaXMuZmluaXNoVG9rZW4oci5udW0saSl9LEEucmVhZE51bWJlcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvczshZSYmdGhpcy5yZWFkSW50KDEwLHZvaWQgMCwhMCk9PT1udWxsJiZ0aGlzLnJhaXNlKHQsXCJJbnZhbGlkIG51bWJlclwiKTt2YXIgaT10aGlzLnBvcy10Pj0yJiZ0aGlzLmlucHV0LmNoYXJDb2RlQXQodCk9PT00ODtpJiZ0aGlzLnN0cmljdCYmdGhpcy5yYWlzZSh0LFwiSW52YWxpZCBudW1iZXJcIik7dmFyIHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKTtpZighaSYmIWUmJnRoaXMub3B0aW9ucy5lY21hVmVyc2lvbj49MTEmJnM9PT0xMTApe3ZhciBuPVh0KHRoaXMuaW5wdXQuc2xpY2UodCx0aGlzLnBvcykpO3JldHVybisrdGhpcy5wb3MsRih0aGlzLmZ1bGxDaGFyQ29kZUF0UG9zKCkpJiZ0aGlzLnJhaXNlKHRoaXMucG9zLFwiSWRlbnRpZmllciBkaXJlY3RseSBhZnRlciBudW1iZXJcIiksdGhpcy5maW5pc2hUb2tlbihyLm51bSxuKX1pJiYvWzg5XS8udGVzdCh0aGlzLmlucHV0LnNsaWNlKHQsdGhpcy5wb3MpKSYmKGk9ITEpLHM9PT00NiYmIWkmJigrK3RoaXMucG9zLHRoaXMucmVhZEludCgxMCkscz10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpKSwocz09PTY5fHxzPT09MTAxKSYmIWkmJihzPXRoaXMuaW5wdXQuY2hhckNvZGVBdCgrK3RoaXMucG9zKSwocz09PTQzfHxzPT09NDUpJiYrK3RoaXMucG9zLHRoaXMucmVhZEludCgxMCk9PT1udWxsJiZ0aGlzLnJhaXNlKHQsXCJJbnZhbGlkIG51bWJlclwiKSksRih0aGlzLmZ1bGxDaGFyQ29kZUF0UG9zKCkpJiZ0aGlzLnJhaXNlKHRoaXMucG9zLFwiSWRlbnRpZmllciBkaXJlY3RseSBhZnRlciBudW1iZXJcIik7dmFyIG89emkodGhpcy5pbnB1dC5zbGljZSh0LHRoaXMucG9zKSxpKTtyZXR1cm4gdGhpcy5maW5pc2hUb2tlbihyLm51bSxvKX0sQS5yZWFkQ29kZVBvaW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKSx0O2lmKGU9PT0xMjMpe3RoaXMub3B0aW9ucy5lY21hVmVyc2lvbjw2JiZ0aGlzLnVuZXhwZWN0ZWQoKTt2YXIgaT0rK3RoaXMucG9zO3Q9dGhpcy5yZWFkSGV4Q2hhcih0aGlzLmlucHV0LmluZGV4T2YoXCJ9XCIsdGhpcy5wb3MpLXRoaXMucG9zKSwrK3RoaXMucG9zLHQ+MTExNDExMSYmdGhpcy5pbnZhbGlkU3RyaW5nVG9rZW4oaSxcIkNvZGUgcG9pbnQgb3V0IG9mIGJvdW5kc1wiKX1lbHNlIHQ9dGhpcy5yZWFkSGV4Q2hhcig0KTtyZXR1cm4gdH0sQS5yZWFkU3RyaW5nPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1cIlwiLGk9Kyt0aGlzLnBvczs7KXt0aGlzLnBvcz49dGhpcy5pbnB1dC5sZW5ndGgmJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnRcIik7dmFyIHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKTtpZihzPT09ZSlicmVhaztzPT09OTI/KHQrPXRoaXMuaW5wdXQuc2xpY2UoaSx0aGlzLnBvcyksdCs9dGhpcy5yZWFkRXNjYXBlZENoYXIoITEpLGk9dGhpcy5wb3MpOnM9PT04MjMyfHxzPT09ODIzMz8odGhpcy5vcHRpb25zLmVjbWFWZXJzaW9uPDEwJiZ0aGlzLnJhaXNlKHRoaXMuc3RhcnQsXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpLCsrdGhpcy5wb3MsdGhpcy5vcHRpb25zLmxvY2F0aW9ucyYmKHRoaXMuY3VyTGluZSsrLHRoaXMubGluZVN0YXJ0PXRoaXMucG9zKSk6KHRlKHMpJiZ0aGlzLnJhaXNlKHRoaXMuc3RhcnQsXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpLCsrdGhpcy5wb3MpfXJldHVybiB0Kz10aGlzLmlucHV0LnNsaWNlKGksdGhpcy5wb3MrKyksdGhpcy5maW5pc2hUb2tlbihyLnN0cmluZyx0KX07dmFyIHp0PXt9O0EudHJ5UmVhZFRlbXBsYXRlVG9rZW49ZnVuY3Rpb24oKXt0aGlzLmluVGVtcGxhdGVFbGVtZW50PSEwO3RyeXt0aGlzLnJlYWRUbXBsVG9rZW4oKX1jYXRjaChlKXtpZihlPT09enQpdGhpcy5yZWFkSW52YWxpZFRlbXBsYXRlVG9rZW4oKTtlbHNlIHRocm93IGV9dGhpcy5pblRlbXBsYXRlRWxlbWVudD0hMX0sQS5pbnZhbGlkU3RyaW5nVG9rZW49ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmluVGVtcGxhdGVFbGVtZW50JiZ0aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTkpdGhyb3cgenQ7dGhpcy5yYWlzZShlLHQpfSxBLnJlYWRUbXBsVG9rZW49ZnVuY3Rpb24oKXtmb3IodmFyIGU9XCJcIix0PXRoaXMucG9zOzspe3RoaXMucG9zPj10aGlzLmlucHV0Lmxlbmd0aCYmdGhpcy5yYWlzZSh0aGlzLnN0YXJ0LFwiVW50ZXJtaW5hdGVkIHRlbXBsYXRlXCIpO3ZhciBpPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcyk7aWYoaT09PTk2fHxpPT09MzYmJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKT09PTEyMylyZXR1cm4gdGhpcy5wb3M9PT10aGlzLnN0YXJ0JiYodGhpcy50eXBlPT09ci50ZW1wbGF0ZXx8dGhpcy50eXBlPT09ci5pbnZhbGlkVGVtcGxhdGUpP2k9PT0zNj8odGhpcy5wb3MrPTIsdGhpcy5maW5pc2hUb2tlbihyLmRvbGxhckJyYWNlTCkpOigrK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oci5iYWNrUXVvdGUpKTooZSs9dGhpcy5pbnB1dC5zbGljZSh0LHRoaXMucG9zKSx0aGlzLmZpbmlzaFRva2VuKHIudGVtcGxhdGUsZSkpO2lmKGk9PT05MillKz10aGlzLmlucHV0LnNsaWNlKHQsdGhpcy5wb3MpLGUrPXRoaXMucmVhZEVzY2FwZWRDaGFyKCEwKSx0PXRoaXMucG9zO2Vsc2UgaWYodGUoaSkpe3N3aXRjaChlKz10aGlzLmlucHV0LnNsaWNlKHQsdGhpcy5wb3MpLCsrdGhpcy5wb3MsaSl7Y2FzZSAxMzp0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpPT09MTAmJisrdGhpcy5wb3M7Y2FzZSAxMDplKz1gXG5gO2JyZWFrO2RlZmF1bHQ6ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShpKTticmVha310aGlzLm9wdGlvbnMubG9jYXRpb25zJiYoKyt0aGlzLmN1ckxpbmUsdGhpcy5saW5lU3RhcnQ9dGhpcy5wb3MpLHQ9dGhpcy5wb3N9ZWxzZSsrdGhpcy5wb3N9fSxBLnJlYWRJbnZhbGlkVGVtcGxhdGVUb2tlbj1mdW5jdGlvbigpe2Zvcig7dGhpcy5wb3M8dGhpcy5pbnB1dC5sZW5ndGg7dGhpcy5wb3MrKylzd2l0Y2godGhpcy5pbnB1dFt0aGlzLnBvc10pe2Nhc2VcIlxcXFxcIjorK3RoaXMucG9zO2JyZWFrO2Nhc2VcIiRcIjppZih0aGlzLmlucHV0W3RoaXMucG9zKzFdIT09XCJ7XCIpYnJlYWs7Y2FzZVwiYFwiOnJldHVybiB0aGlzLmZpbmlzaFRva2VuKHIuaW52YWxpZFRlbXBsYXRlLHRoaXMuaW5wdXQuc2xpY2UodGhpcy5zdGFydCx0aGlzLnBvcykpfXRoaXMucmFpc2UodGhpcy5zdGFydCxcIlVudGVybWluYXRlZCB0ZW1wbGF0ZVwiKX0sQS5yZWFkRXNjYXBlZENoYXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KCsrdGhpcy5wb3MpO3N3aXRjaCgrK3RoaXMucG9zLHQpe2Nhc2UgMTEwOnJldHVybmBcbmA7Y2FzZSAxMTQ6cmV0dXJuXCJcXHJcIjtjYXNlIDEyMDpyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0aGlzLnJlYWRIZXhDaGFyKDIpKTtjYXNlIDExNzpyZXR1cm4gWih0aGlzLnJlYWRDb2RlUG9pbnQoKSk7Y2FzZSAxMTY6cmV0dXJuXCJcdFwiO2Nhc2UgOTg6cmV0dXJuXCJcXGJcIjtjYXNlIDExODpyZXR1cm5cIlxcdlwiO2Nhc2UgMTAyOnJldHVyblwiXFxmXCI7Y2FzZSAxMzp0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpPT09MTAmJisrdGhpcy5wb3M7Y2FzZSAxMDpyZXR1cm4gdGhpcy5vcHRpb25zLmxvY2F0aW9ucyYmKHRoaXMubGluZVN0YXJ0PXRoaXMucG9zLCsrdGhpcy5jdXJMaW5lKSxcIlwiO2Nhc2UgNTY6Y2FzZSA1NzppZih0aGlzLnN0cmljdCYmdGhpcy5pbnZhbGlkU3RyaW5nVG9rZW4odGhpcy5wb3MtMSxcIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlXCIpLGUpe3ZhciBpPXRoaXMucG9zLTE7dGhpcy5pbnZhbGlkU3RyaW5nVG9rZW4oaSxcIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlIGluIHRlbXBsYXRlIHN0cmluZ1wiKX1kZWZhdWx0OmlmKHQ+PTQ4JiZ0PD01NSl7dmFyIHM9dGhpcy5pbnB1dC5zdWJzdHIodGhpcy5wb3MtMSwzKS5tYXRjaCgvXlswLTddKy8pWzBdLG49cGFyc2VJbnQocyw4KTtyZXR1cm4gbj4yNTUmJihzPXMuc2xpY2UoMCwtMSksbj1wYXJzZUludChzLDgpKSx0aGlzLnBvcys9cy5sZW5ndGgtMSx0PXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcyksKHMhPT1cIjBcInx8dD09PTU2fHx0PT09NTcpJiYodGhpcy5zdHJpY3R8fGUpJiZ0aGlzLmludmFsaWRTdHJpbmdUb2tlbih0aGlzLnBvcy0xLXMubGVuZ3RoLGU/XCJPY3RhbCBsaXRlcmFsIGluIHRlbXBsYXRlIHN0cmluZ1wiOlwiT2N0YWwgbGl0ZXJhbCBpbiBzdHJpY3QgbW9kZVwiKSxTdHJpbmcuZnJvbUNoYXJDb2RlKG4pfXJldHVybiB0ZSh0KT9cIlwiOlN0cmluZy5mcm9tQ2hhckNvZGUodCl9fSxBLnJlYWRIZXhDaGFyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucG9zLGk9dGhpcy5yZWFkSW50KDE2LGUpO3JldHVybiBpPT09bnVsbCYmdGhpcy5pbnZhbGlkU3RyaW5nVG9rZW4odCxcIkJhZCBjaGFyYWN0ZXIgZXNjYXBlIHNlcXVlbmNlXCIpLGl9LEEucmVhZFdvcmQxPWZ1bmN0aW9uKCl7dGhpcy5jb250YWluc0VzYz0hMTtmb3IodmFyIGU9XCJcIix0PSEwLGk9dGhpcy5wb3Mscz10aGlzLm9wdGlvbnMuZWNtYVZlcnNpb24+PTY7dGhpcy5wb3M8dGhpcy5pbnB1dC5sZW5ndGg7KXt2YXIgbj10aGlzLmZ1bGxDaGFyQ29kZUF0UG9zKCk7aWYoZChuLHMpKXRoaXMucG9zKz1uPD02NTUzNT8xOjI7ZWxzZSBpZihuPT09OTIpe3RoaXMuY29udGFpbnNFc2M9ITAsZSs9dGhpcy5pbnB1dC5zbGljZShpLHRoaXMucG9zKTt2YXIgbz10aGlzLnBvczt0aGlzLmlucHV0LmNoYXJDb2RlQXQoKyt0aGlzLnBvcykhPT0xMTcmJnRoaXMuaW52YWxpZFN0cmluZ1Rva2VuKHRoaXMucG9zLFwiRXhwZWN0aW5nIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIFxcXFx1WFhYWFwiKSwrK3RoaXMucG9zO3ZhciBwPXRoaXMucmVhZENvZGVQb2ludCgpOyh0P0Y6ZCkocCxzKXx8dGhpcy5pbnZhbGlkU3RyaW5nVG9rZW4obyxcIkludmFsaWQgVW5pY29kZSBlc2NhcGVcIiksZSs9WihwKSxpPXRoaXMucG9zfWVsc2UgYnJlYWs7dD0hMX1yZXR1cm4gZSt0aGlzLmlucHV0LnNsaWNlKGksdGhpcy5wb3MpfSxBLnJlYWRXb3JkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5yZWFkV29yZDEoKSx0PXIubmFtZTtyZXR1cm4gdGhpcy5rZXl3b3Jkcy50ZXN0KGUpJiYodD1IW2VdKSx0aGlzLmZpbmlzaFRva2VuKHQsZSl9O3ZhciBIdD1cIjguMTAuMFwiO1YuYWNvcm49e1BhcnNlcjpWLHZlcnNpb246SHQsZGVmYXVsdE9wdGlvbnM6d2UsUG9zaXRpb246YWUsU291cmNlTG9jYXRpb246ZmUsZ2V0TGluZUluZm86SmUsTm9kZTp5ZSxUb2tlblR5cGU6eCx0b2tUeXBlczpyLGtleXdvcmRUeXBlczpILFRva0NvbnRleHQ6Syx0b2tDb250ZXh0czpJLGlzSWRlbnRpZmllckNoYXI6ZCxpc0lkZW50aWZpZXJTdGFydDpGLFRva2VuOlZlLGlzTmV3TGluZTp0ZSxsaW5lQnJlYWs6aixsaW5lQnJlYWtHOmx0LG5vbkFTQ0lJd2hpdGVzcGFjZTpLZX07ZnVuY3Rpb24gSGkoZSx0KXtyZXR1cm4gVi5wYXJzZShlLHQpfWZ1bmN0aW9uIFFpKGUsdCxpKXtyZXR1cm4gVi5wYXJzZUV4cHJlc3Npb25BdChlLHQsaSl9ZnVuY3Rpb24gWWkoZSx0KXtyZXR1cm4gVi50b2tlbml6ZXIoZSx0KX1hLk5vZGU9eWUsYS5QYXJzZXI9VixhLlBvc2l0aW9uPWFlLGEuU291cmNlTG9jYXRpb249ZmUsYS5Ub2tDb250ZXh0PUssYS5Ub2tlbj1WZSxhLlRva2VuVHlwZT14LGEuZGVmYXVsdE9wdGlvbnM9d2UsYS5nZXRMaW5lSW5mbz1KZSxhLmlzSWRlbnRpZmllckNoYXI9ZCxhLmlzSWRlbnRpZmllclN0YXJ0PUYsYS5pc05ld0xpbmU9dGUsYS5rZXl3b3JkVHlwZXM9SCxhLmxpbmVCcmVhaz1qLGEubGluZUJyZWFrRz1sdCxhLm5vbkFTQ0lJd2hpdGVzcGFjZT1LZSxhLnBhcnNlPUhpLGEucGFyc2VFeHByZXNzaW9uQXQ9UWksYS50b2tDb250ZXh0cz1JLGEudG9rVHlwZXM9cixhLnRva2VuaXplcj1ZaSxhLnZlcnNpb249SHR9KX0pO3ZhciBmaT1iZSgoenIsbGkpPT57bGkuZXhwb3J0cz17fX0pO3ZhciBudD1iZSgoSHIsYXQpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIE5zPWZpKCksVnM9L15bXFxkYS1mQS1GXSskLyxMcz0vXlxcZCskLyxkaT1uZXcgV2Vha01hcDtmdW5jdGlvbiBtaShhKXthPWEuUGFyc2VyLmFjb3JufHxhO2xldCB1PWRpLmdldChhKTtpZighdSl7bGV0IGM9YS50b2tUeXBlcyxoPWEuVG9rQ29udGV4dCxsPWEuVG9rZW5UeXBlLGY9bmV3IGgoXCI8dGFnXCIsITEpLHk9bmV3IGgoXCI8L3RhZ1wiLCExKSxfPW5ldyBoKFwiPHRhZz4uLi48L3RhZz5cIiwhMCwhMCksTD17dGNfb1RhZzpmLHRjX2NUYWc6eSx0Y19leHByOl99LFA9e2pzeE5hbWU6bmV3IGwoXCJqc3hOYW1lXCIpLGpzeFRleHQ6bmV3IGwoXCJqc3hUZXh0XCIse2JlZm9yZUV4cHI6ITB9KSxqc3hUYWdTdGFydDpuZXcgbChcImpzeFRhZ1N0YXJ0XCIse3N0YXJ0c0V4cHI6ITB9KSxqc3hUYWdFbmQ6bmV3IGwoXCJqc3hUYWdFbmRcIil9O1AuanN4VGFnU3RhcnQudXBkYXRlQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuY29udGV4dC5wdXNoKF8pLHRoaXMuY29udGV4dC5wdXNoKGYpLHRoaXMuZXhwckFsbG93ZWQ9ITF9LFAuanN4VGFnRW5kLnVwZGF0ZUNvbnRleHQ9ZnVuY3Rpb24oRCl7bGV0IEc9dGhpcy5jb250ZXh0LnBvcCgpO0c9PT1mJiZEPT09Yy5zbGFzaHx8Rz09PXk/KHRoaXMuY29udGV4dC5wb3AoKSx0aGlzLmV4cHJBbGxvd2VkPXRoaXMuY3VyQ29udGV4dCgpPT09Xyk6dGhpcy5leHByQWxsb3dlZD0hMH0sdT17dG9rQ29udGV4dHM6TCx0b2tUeXBlczpQfSxkaS5zZXQoYSx1KX1yZXR1cm4gdX1mdW5jdGlvbiBUZShhKXtpZighYSlyZXR1cm4gYTtpZihhLnR5cGU9PT1cIkpTWElkZW50aWZpZXJcIilyZXR1cm4gYS5uYW1lO2lmKGEudHlwZT09PVwiSlNYTmFtZXNwYWNlZE5hbWVcIilyZXR1cm4gYS5uYW1lc3BhY2UubmFtZStcIjpcIithLm5hbWUubmFtZTtpZihhLnR5cGU9PT1cIkpTWE1lbWJlckV4cHJlc3Npb25cIilyZXR1cm4gVGUoYS5vYmplY3QpK1wiLlwiK1RlKGEucHJvcGVydHkpfWF0LmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9YXx8e30sZnVuY3Rpb24odSl7cmV0dXJuIFJzKHthbGxvd05hbWVzcGFjZXM6YS5hbGxvd05hbWVzcGFjZXMhPT0hMSxhbGxvd05hbWVzcGFjZWRPYmplY3RzOiEhYS5hbGxvd05hbWVzcGFjZWRPYmplY3RzfSx1KX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhdC5leHBvcnRzLFwidG9rVHlwZXNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1pKGtlKCkpLnRva1R5cGVzfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pO2Z1bmN0aW9uIFJzKGEsdSl7bGV0IGM9dS5hY29ybnx8a2UoKSxoPW1pKGMpLGw9Yy50b2tUeXBlcyxmPWgudG9rVHlwZXMseT1jLnRva0NvbnRleHRzLF89aC50b2tDb250ZXh0cy50Y19vVGFnLEw9aC50b2tDb250ZXh0cy50Y19jVGFnLFA9aC50b2tDb250ZXh0cy50Y19leHByLEQ9Yy5pc05ld0xpbmUsRz1jLmlzSWRlbnRpZmllclN0YXJ0LEY9Yy5pc0lkZW50aWZpZXJDaGFyO3JldHVybiBjbGFzcyBleHRlbmRzIHV7c3RhdGljIGdldCBhY29ybkpzeCgpe3JldHVybiBofWpzeF9yZWFkVG9rZW4oKXtsZXQgZD1cIlwiLHg9dGhpcy5wb3M7Zm9yKDs7KXt0aGlzLnBvcz49dGhpcy5pbnB1dC5sZW5ndGgmJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIlVudGVybWluYXRlZCBKU1ggY29udGVudHNcIik7bGV0IGI9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMucG9zKTtzd2l0Y2goYil7Y2FzZSA2MDpjYXNlIDEyMzpyZXR1cm4gdGhpcy5wb3M9PT10aGlzLnN0YXJ0P2I9PT02MCYmdGhpcy5leHByQWxsb3dlZD8oKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKGYuanN4VGFnU3RhcnQpKTp0aGlzLmdldFRva2VuRnJvbUNvZGUoYik6KGQrPXRoaXMuaW5wdXQuc2xpY2UoeCx0aGlzLnBvcyksdGhpcy5maW5pc2hUb2tlbihmLmpzeFRleHQsZCkpO2Nhc2UgMzg6ZCs9dGhpcy5pbnB1dC5zbGljZSh4LHRoaXMucG9zKSxkKz10aGlzLmpzeF9yZWFkRW50aXR5KCkseD10aGlzLnBvczticmVhaztjYXNlIDYyOmNhc2UgMTI1OnRoaXMucmFpc2UodGhpcy5wb3MsXCJVbmV4cGVjdGVkIHRva2VuIGBcIit0aGlzLmlucHV0W3RoaXMucG9zXStcImAuIERpZCB5b3UgbWVhbiBgXCIrKGI9PT02Mj9cIiZndDtcIjpcIiZyYnJhY2U7XCIpKydgIG9yIGB7XCInK3RoaXMuaW5wdXRbdGhpcy5wb3NdKydcIn1gPycpO2RlZmF1bHQ6RChiKT8oZCs9dGhpcy5pbnB1dC5zbGljZSh4LHRoaXMucG9zKSxkKz10aGlzLmpzeF9yZWFkTmV3TGluZSghMCkseD10aGlzLnBvcyk6Kyt0aGlzLnBvc319fWpzeF9yZWFkTmV3TGluZShkKXtsZXQgeD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5wb3MpLGI7cmV0dXJuKyt0aGlzLnBvcyx4PT09MTMmJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcyk9PT0xMD8oKyt0aGlzLnBvcyxiPWQ/YFxuYDpgXFxyXG5gKTpiPVN0cmluZy5mcm9tQ2hhckNvZGUoeCksdGhpcy5vcHRpb25zLmxvY2F0aW9ucyYmKCsrdGhpcy5jdXJMaW5lLHRoaXMubGluZVN0YXJ0PXRoaXMucG9zKSxifWpzeF9yZWFkU3RyaW5nKGQpe2xldCB4PVwiXCIsYj0rK3RoaXMucG9zO2Zvcig7Oyl7dGhpcy5wb3M+PXRoaXMuaW5wdXQubGVuZ3RoJiZ0aGlzLnJhaXNlKHRoaXMuc3RhcnQsXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50XCIpO2xldCBrPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcyk7aWYoaz09PWQpYnJlYWs7az09PTM4Pyh4Kz10aGlzLmlucHV0LnNsaWNlKGIsdGhpcy5wb3MpLHgrPXRoaXMuanN4X3JlYWRFbnRpdHkoKSxiPXRoaXMucG9zKTpEKGspPyh4Kz10aGlzLmlucHV0LnNsaWNlKGIsdGhpcy5wb3MpLHgrPXRoaXMuanN4X3JlYWROZXdMaW5lKCExKSxiPXRoaXMucG9zKTorK3RoaXMucG9zfXJldHVybiB4Kz10aGlzLmlucHV0LnNsaWNlKGIsdGhpcy5wb3MrKyksdGhpcy5maW5pc2hUb2tlbihsLnN0cmluZyx4KX1qc3hfcmVhZEVudGl0eSgpe2xldCBkPVwiXCIseD0wLGIsaz10aGlzLmlucHV0W3RoaXMucG9zXTtrIT09XCImXCImJnRoaXMucmFpc2UodGhpcy5wb3MsXCJFbnRpdHkgbXVzdCBzdGFydCB3aXRoIGFuIGFtcGVyc2FuZFwiKTtsZXQgTj0rK3RoaXMucG9zO2Zvcig7dGhpcy5wb3M8dGhpcy5pbnB1dC5sZW5ndGgmJngrKzwxMDspe2lmKGs9dGhpcy5pbnB1dFt0aGlzLnBvcysrXSxrPT09XCI7XCIpe2RbMF09PT1cIiNcIj9kWzFdPT09XCJ4XCI/KGQ9ZC5zdWJzdHIoMiksVnMudGVzdChkKSYmKGI9U3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChkLDE2KSkpKTooZD1kLnN1YnN0cigxKSxMcy50ZXN0KGQpJiYoYj1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGQsMTApKSkpOmI9TnNbZF07YnJlYWt9ZCs9a31yZXR1cm4gYnx8KHRoaXMucG9zPU4sXCImXCIpfWpzeF9yZWFkV29yZCgpe2xldCBkLHg9dGhpcy5wb3M7ZG8gZD10aGlzLmlucHV0LmNoYXJDb2RlQXQoKyt0aGlzLnBvcyk7d2hpbGUoRihkKXx8ZD09PTQ1KTtyZXR1cm4gdGhpcy5maW5pc2hUb2tlbihmLmpzeE5hbWUsdGhpcy5pbnB1dC5zbGljZSh4LHRoaXMucG9zKSl9anN4X3BhcnNlSWRlbnRpZmllcigpe2xldCBkPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMudHlwZT09PWYuanN4TmFtZT9kLm5hbWU9dGhpcy52YWx1ZTp0aGlzLnR5cGUua2V5d29yZD9kLm5hbWU9dGhpcy50eXBlLmtleXdvcmQ6dGhpcy51bmV4cGVjdGVkKCksdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKGQsXCJKU1hJZGVudGlmaWVyXCIpfWpzeF9wYXJzZU5hbWVzcGFjZWROYW1lKCl7bGV0IGQ9dGhpcy5zdGFydCx4PXRoaXMuc3RhcnRMb2MsYj10aGlzLmpzeF9wYXJzZUlkZW50aWZpZXIoKTtpZighYS5hbGxvd05hbWVzcGFjZXN8fCF0aGlzLmVhdChsLmNvbG9uKSlyZXR1cm4gYjt2YXIgaz10aGlzLnN0YXJ0Tm9kZUF0KGQseCk7cmV0dXJuIGsubmFtZXNwYWNlPWIsay5uYW1lPXRoaXMuanN4X3BhcnNlSWRlbnRpZmllcigpLHRoaXMuZmluaXNoTm9kZShrLFwiSlNYTmFtZXNwYWNlZE5hbWVcIil9anN4X3BhcnNlRWxlbWVudE5hbWUoKXtpZih0aGlzLnR5cGU9PT1mLmpzeFRhZ0VuZClyZXR1cm5cIlwiO2xldCBkPXRoaXMuc3RhcnQseD10aGlzLnN0YXJ0TG9jLGI9dGhpcy5qc3hfcGFyc2VOYW1lc3BhY2VkTmFtZSgpO2Zvcih0aGlzLnR5cGU9PT1sLmRvdCYmYi50eXBlPT09XCJKU1hOYW1lc3BhY2VkTmFtZVwiJiYhYS5hbGxvd05hbWVzcGFjZWRPYmplY3RzJiZ0aGlzLnVuZXhwZWN0ZWQoKTt0aGlzLmVhdChsLmRvdCk7KXtsZXQgaz10aGlzLnN0YXJ0Tm9kZUF0KGQseCk7ay5vYmplY3Q9YixrLnByb3BlcnR5PXRoaXMuanN4X3BhcnNlSWRlbnRpZmllcigpLGI9dGhpcy5maW5pc2hOb2RlKGssXCJKU1hNZW1iZXJFeHByZXNzaW9uXCIpfXJldHVybiBifWpzeF9wYXJzZUF0dHJpYnV0ZVZhbHVlKCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSBsLmJyYWNlTDpsZXQgZD10aGlzLmpzeF9wYXJzZUV4cHJlc3Npb25Db250YWluZXIoKTtyZXR1cm4gZC5leHByZXNzaW9uLnR5cGU9PT1cIkpTWEVtcHR5RXhwcmVzc2lvblwiJiZ0aGlzLnJhaXNlKGQuc3RhcnQsXCJKU1ggYXR0cmlidXRlcyBtdXN0IG9ubHkgYmUgYXNzaWduZWQgYSBub24tZW1wdHkgZXhwcmVzc2lvblwiKSxkO2Nhc2UgZi5qc3hUYWdTdGFydDpjYXNlIGwuc3RyaW5nOnJldHVybiB0aGlzLnBhcnNlRXhwckF0b20oKTtkZWZhdWx0OnRoaXMucmFpc2UodGhpcy5zdGFydCxcIkpTWCB2YWx1ZSBzaG91bGQgYmUgZWl0aGVyIGFuIGV4cHJlc3Npb24gb3IgYSBxdW90ZWQgSlNYIHRleHRcIil9fWpzeF9wYXJzZUVtcHR5RXhwcmVzc2lvbigpe2xldCBkPXRoaXMuc3RhcnROb2RlQXQodGhpcy5sYXN0VG9rRW5kLHRoaXMubGFzdFRva0VuZExvYyk7cmV0dXJuIHRoaXMuZmluaXNoTm9kZUF0KGQsXCJKU1hFbXB0eUV4cHJlc3Npb25cIix0aGlzLnN0YXJ0LHRoaXMuc3RhcnRMb2MpfWpzeF9wYXJzZUV4cHJlc3Npb25Db250YWluZXIoKXtsZXQgZD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSxkLmV4cHJlc3Npb249dGhpcy50eXBlPT09bC5icmFjZVI/dGhpcy5qc3hfcGFyc2VFbXB0eUV4cHJlc3Npb24oKTp0aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuZXhwZWN0KGwuYnJhY2VSKSx0aGlzLmZpbmlzaE5vZGUoZCxcIkpTWEV4cHJlc3Npb25Db250YWluZXJcIil9anN4X3BhcnNlQXR0cmlidXRlKCl7bGV0IGQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5lYXQobC5icmFjZUwpPyh0aGlzLmV4cGVjdChsLmVsbGlwc2lzKSxkLmFyZ3VtZW50PXRoaXMucGFyc2VNYXliZUFzc2lnbigpLHRoaXMuZXhwZWN0KGwuYnJhY2VSKSx0aGlzLmZpbmlzaE5vZGUoZCxcIkpTWFNwcmVhZEF0dHJpYnV0ZVwiKSk6KGQubmFtZT10aGlzLmpzeF9wYXJzZU5hbWVzcGFjZWROYW1lKCksZC52YWx1ZT10aGlzLmVhdChsLmVxKT90aGlzLmpzeF9wYXJzZUF0dHJpYnV0ZVZhbHVlKCk6bnVsbCx0aGlzLmZpbmlzaE5vZGUoZCxcIkpTWEF0dHJpYnV0ZVwiKSl9anN4X3BhcnNlT3BlbmluZ0VsZW1lbnRBdChkLHgpe2xldCBiPXRoaXMuc3RhcnROb2RlQXQoZCx4KTtiLmF0dHJpYnV0ZXM9W107bGV0IGs9dGhpcy5qc3hfcGFyc2VFbGVtZW50TmFtZSgpO2ZvcihrJiYoYi5uYW1lPWspO3RoaXMudHlwZSE9PWwuc2xhc2gmJnRoaXMudHlwZSE9PWYuanN4VGFnRW5kOyliLmF0dHJpYnV0ZXMucHVzaCh0aGlzLmpzeF9wYXJzZUF0dHJpYnV0ZSgpKTtyZXR1cm4gYi5zZWxmQ2xvc2luZz10aGlzLmVhdChsLnNsYXNoKSx0aGlzLmV4cGVjdChmLmpzeFRhZ0VuZCksdGhpcy5maW5pc2hOb2RlKGIsaz9cIkpTWE9wZW5pbmdFbGVtZW50XCI6XCJKU1hPcGVuaW5nRnJhZ21lbnRcIil9anN4X3BhcnNlQ2xvc2luZ0VsZW1lbnRBdChkLHgpe2xldCBiPXRoaXMuc3RhcnROb2RlQXQoZCx4KSxrPXRoaXMuanN4X3BhcnNlRWxlbWVudE5hbWUoKTtyZXR1cm4gayYmKGIubmFtZT1rKSx0aGlzLmV4cGVjdChmLmpzeFRhZ0VuZCksdGhpcy5maW5pc2hOb2RlKGIsaz9cIkpTWENsb3NpbmdFbGVtZW50XCI6XCJKU1hDbG9zaW5nRnJhZ21lbnRcIil9anN4X3BhcnNlRWxlbWVudEF0KGQseCl7bGV0IGI9dGhpcy5zdGFydE5vZGVBdChkLHgpLGs9W10sTj10aGlzLmpzeF9wYXJzZU9wZW5pbmdFbGVtZW50QXQoZCx4KSxIPW51bGw7aWYoIU4uc2VsZkNsb3Npbmcpe2U6Zm9yKDs7KXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgZi5qc3hUYWdTdGFydDppZihkPXRoaXMuc3RhcnQseD10aGlzLnN0YXJ0TG9jLHRoaXMubmV4dCgpLHRoaXMuZWF0KGwuc2xhc2gpKXtIPXRoaXMuanN4X3BhcnNlQ2xvc2luZ0VsZW1lbnRBdChkLHgpO2JyZWFrIGV9ay5wdXNoKHRoaXMuanN4X3BhcnNlRWxlbWVudEF0KGQseCkpO2JyZWFrO2Nhc2UgZi5qc3hUZXh0OmsucHVzaCh0aGlzLnBhcnNlRXhwckF0b20oKSk7YnJlYWs7Y2FzZSBsLmJyYWNlTDprLnB1c2godGhpcy5qc3hfcGFyc2VFeHByZXNzaW9uQ29udGFpbmVyKCkpO2JyZWFrO2RlZmF1bHQ6dGhpcy51bmV4cGVjdGVkKCl9VGUoSC5uYW1lKSE9PVRlKE4ubmFtZSkmJnRoaXMucmFpc2UoSC5zdGFydCxcIkV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgSlNYIGNsb3NpbmcgdGFnIGZvciA8XCIrVGUoTi5uYW1lKStcIj5cIil9bGV0IHc9Ti5uYW1lP1wiRWxlbWVudFwiOlwiRnJhZ21lbnRcIjtyZXR1cm4gYltcIm9wZW5pbmdcIit3XT1OLGJbXCJjbG9zaW5nXCIrd109SCxiLmNoaWxkcmVuPWssdGhpcy50eXBlPT09bC5yZWxhdGlvbmFsJiZ0aGlzLnZhbHVlPT09XCI8XCImJnRoaXMucmFpc2UodGhpcy5zdGFydCxcIkFkamFjZW50IEpTWCBlbGVtZW50cyBtdXN0IGJlIHdyYXBwZWQgaW4gYW4gZW5jbG9zaW5nIHRhZ1wiKSx0aGlzLmZpbmlzaE5vZGUoYixcIkpTWFwiK3cpfWpzeF9wYXJzZVRleHQoKXtsZXQgZD10aGlzLnBhcnNlTGl0ZXJhbCh0aGlzLnZhbHVlKTtyZXR1cm4gZC50eXBlPVwiSlNYVGV4dFwiLGR9anN4X3BhcnNlRWxlbWVudCgpe2xldCBkPXRoaXMuc3RhcnQseD10aGlzLnN0YXJ0TG9jO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmpzeF9wYXJzZUVsZW1lbnRBdChkLHgpfXBhcnNlRXhwckF0b20oZCl7cmV0dXJuIHRoaXMudHlwZT09PWYuanN4VGV4dD90aGlzLmpzeF9wYXJzZVRleHQoKTp0aGlzLnR5cGU9PT1mLmpzeFRhZ1N0YXJ0P3RoaXMuanN4X3BhcnNlRWxlbWVudCgpOnN1cGVyLnBhcnNlRXhwckF0b20oZCl9cmVhZFRva2VuKGQpe2xldCB4PXRoaXMuY3VyQ29udGV4dCgpO2lmKHg9PT1QKXJldHVybiB0aGlzLmpzeF9yZWFkVG9rZW4oKTtpZih4PT09X3x8eD09PUwpe2lmKEcoZCkpcmV0dXJuIHRoaXMuanN4X3JlYWRXb3JkKCk7aWYoZD09NjIpcmV0dXJuKyt0aGlzLnBvcyx0aGlzLmZpbmlzaFRva2VuKGYuanN4VGFnRW5kKTtpZigoZD09PTM0fHxkPT09MzkpJiZ4PT1fKXJldHVybiB0aGlzLmpzeF9yZWFkU3RyaW5nKGQpfXJldHVybiBkPT09NjAmJnRoaXMuZXhwckFsbG93ZWQmJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnBvcysxKSE9PTMzPygrK3RoaXMucG9zLHRoaXMuZmluaXNoVG9rZW4oZi5qc3hUYWdTdGFydCkpOnN1cGVyLnJlYWRUb2tlbihkKX11cGRhdGVDb250ZXh0KGQpe2lmKHRoaXMudHlwZT09bC5icmFjZUwpe3ZhciB4PXRoaXMuY3VyQ29udGV4dCgpO3g9PV8/dGhpcy5jb250ZXh0LnB1c2goeS5iX2V4cHIpOng9PVA/dGhpcy5jb250ZXh0LnB1c2goeS5iX3RtcGwpOnN1cGVyLnVwZGF0ZUNvbnRleHQoZCksdGhpcy5leHByQWxsb3dlZD0hMH1lbHNlIGlmKHRoaXMudHlwZT09PWwuc2xhc2gmJmQ9PT1mLmpzeFRhZ1N0YXJ0KXRoaXMuY29udGV4dC5sZW5ndGgtPTIsdGhpcy5jb250ZXh0LnB1c2goTCksdGhpcy5leHByQWxsb3dlZD0hMTtlbHNlIHJldHVybiBzdXBlci51cGRhdGVDb250ZXh0KGQpfX19fSk7dmFyIHZpPWJlKHFlPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHFlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBNcz1rZSgpLFVzPW50KCk7ZnVuY3Rpb24gcXMoYSl7cmV0dXJuIGEmJnR5cGVvZiBhPT1cIm9iamVjdFwiJiZcImRlZmF1bHRcImluIGE/YTp7ZGVmYXVsdDphfX1mdW5jdGlvbiBLcyhhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIHU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gYSYmT2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjIT09XCJkZWZhdWx0XCIpe3ZhciBoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxjKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodSxjLGguZ2V0P2g6e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFbY119fSl9fSksdS5kZWZhdWx0PWEsT2JqZWN0LmZyZWV6ZSh1KX12YXIgeWk9S3MoTXMpLEpzPXFzKFVzKSxCPXtCb29sZWFuOlwiQm9vbGVhblwiLEVPRjpcIjxlbmQ+XCIsSWRlbnRpZmllcjpcIklkZW50aWZpZXJcIixQcml2YXRlSWRlbnRpZmllcjpcIlByaXZhdGVJZGVudGlmaWVyXCIsS2V5d29yZDpcIktleXdvcmRcIixOdWxsOlwiTnVsbFwiLE51bWVyaWM6XCJOdW1lcmljXCIsUHVuY3R1YXRvcjpcIlB1bmN0dWF0b3JcIixTdHJpbmc6XCJTdHJpbmdcIixSZWd1bGFyRXhwcmVzc2lvbjpcIlJlZ3VsYXJFeHByZXNzaW9uXCIsVGVtcGxhdGU6XCJUZW1wbGF0ZVwiLEpTWElkZW50aWZpZXI6XCJKU1hJZGVudGlmaWVyXCIsSlNYVGV4dDpcIkpTWFRleHRcIn07ZnVuY3Rpb24gR3MoYSx1KXtsZXQgYz1hWzBdLGg9YVthLmxlbmd0aC0xXSxsPXt0eXBlOkIuVGVtcGxhdGUsdmFsdWU6dS5zbGljZShjLnN0YXJ0LGguZW5kKX07cmV0dXJuIGMubG9jJiYobC5sb2M9e3N0YXJ0OmMubG9jLnN0YXJ0LGVuZDpoLmxvYy5lbmR9KSxjLnJhbmdlJiYobC5zdGFydD1jLnJhbmdlWzBdLGwuZW5kPWgucmFuZ2VbMV0sbC5yYW5nZT1bbC5zdGFydCxsLmVuZF0pLGx9ZnVuY3Rpb24gaHQoYSx1KXt0aGlzLl9hY29yblRva1R5cGVzPWEsdGhpcy5fdG9rZW5zPVtdLHRoaXMuX2N1cmx5QnJhY2U9bnVsbCx0aGlzLl9jb2RlPXV9aHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpodCx0cmFuc2xhdGUoYSx1KXtsZXQgYz1hLnR5cGUsaD10aGlzLl9hY29yblRva1R5cGVzO2lmKGM9PT1oLm5hbWUpYS50eXBlPUIuSWRlbnRpZmllcixhLnZhbHVlPT09XCJzdGF0aWNcIiYmKGEudHlwZT1CLktleXdvcmQpLHUuZWNtYVZlcnNpb24+NSYmKGEudmFsdWU9PT1cInlpZWxkXCJ8fGEudmFsdWU9PT1cImxldFwiKSYmKGEudHlwZT1CLktleXdvcmQpO2Vsc2UgaWYoYz09PWgucHJpdmF0ZUlkKWEudHlwZT1CLlByaXZhdGVJZGVudGlmaWVyO2Vsc2UgaWYoYz09PWguc2VtaXx8Yz09PWguY29tbWF8fGM9PT1oLnBhcmVuTHx8Yz09PWgucGFyZW5SfHxjPT09aC5icmFjZUx8fGM9PT1oLmJyYWNlUnx8Yz09PWguZG90fHxjPT09aC5icmFja2V0THx8Yz09PWguY29sb258fGM9PT1oLnF1ZXN0aW9ufHxjPT09aC5icmFja2V0Unx8Yz09PWguZWxsaXBzaXN8fGM9PT1oLmFycm93fHxjPT09aC5qc3hUYWdTdGFydHx8Yz09PWguaW5jRGVjfHxjPT09aC5zdGFyc3Rhcnx8Yz09PWguanN4VGFnRW5kfHxjPT09aC5wcmVmaXh8fGM9PT1oLnF1ZXN0aW9uRG90fHxjLmJpbm9wJiYhYy5rZXl3b3JkfHxjLmlzQXNzaWduKWEudHlwZT1CLlB1bmN0dWF0b3IsYS52YWx1ZT10aGlzLl9jb2RlLnNsaWNlKGEuc3RhcnQsYS5lbmQpO2Vsc2UgaWYoYz09PWguanN4TmFtZSlhLnR5cGU9Qi5KU1hJZGVudGlmaWVyO2Vsc2UgaWYoYy5sYWJlbD09PVwianN4VGV4dFwifHxjPT09aC5qc3hBdHRyVmFsdWVUb2tlbilhLnR5cGU9Qi5KU1hUZXh0O2Vsc2UgaWYoYy5rZXl3b3JkKWMua2V5d29yZD09PVwidHJ1ZVwifHxjLmtleXdvcmQ9PT1cImZhbHNlXCI/YS50eXBlPUIuQm9vbGVhbjpjLmtleXdvcmQ9PT1cIm51bGxcIj9hLnR5cGU9Qi5OdWxsOmEudHlwZT1CLktleXdvcmQ7ZWxzZSBpZihjPT09aC5udW0pYS50eXBlPUIuTnVtZXJpYyxhLnZhbHVlPXRoaXMuX2NvZGUuc2xpY2UoYS5zdGFydCxhLmVuZCk7ZWxzZSBpZihjPT09aC5zdHJpbmcpdS5qc3hBdHRyVmFsdWVUb2tlbj8odS5qc3hBdHRyVmFsdWVUb2tlbj0hMSxhLnR5cGU9Qi5KU1hUZXh0KTphLnR5cGU9Qi5TdHJpbmcsYS52YWx1ZT10aGlzLl9jb2RlLnNsaWNlKGEuc3RhcnQsYS5lbmQpO2Vsc2UgaWYoYz09PWgucmVnZXhwKXthLnR5cGU9Qi5SZWd1bGFyRXhwcmVzc2lvbjtsZXQgbD1hLnZhbHVlO2EucmVnZXg9e2ZsYWdzOmwuZmxhZ3MscGF0dGVybjpsLnBhdHRlcm59LGEudmFsdWU9YC8ke2wucGF0dGVybn0vJHtsLmZsYWdzfWB9cmV0dXJuIGF9LG9uVG9rZW4oYSx1KXtsZXQgYz10aGlzLl9hY29yblRva1R5cGVzLGg9dS50b2tlbnMsbD10aGlzLl90b2tlbnMsZj0oKT0+e2gucHVzaChHcyh0aGlzLl90b2tlbnMsdGhpcy5fY29kZSkpLHRoaXMuX3Rva2Vucz1bXX07aWYoYS50eXBlPT09Yy5lb2Ype3RoaXMuX2N1cmx5QnJhY2UmJmgucHVzaCh0aGlzLnRyYW5zbGF0ZSh0aGlzLl9jdXJseUJyYWNlLHUpKTtyZXR1cm59aWYoYS50eXBlPT09Yy5iYWNrUXVvdGUpe3RoaXMuX2N1cmx5QnJhY2UmJihoLnB1c2godGhpcy50cmFuc2xhdGUodGhpcy5fY3VybHlCcmFjZSx1KSksdGhpcy5fY3VybHlCcmFjZT1udWxsKSxsLnB1c2goYSksbC5sZW5ndGg+MSYmZigpO3JldHVybn1pZihhLnR5cGU9PT1jLmRvbGxhckJyYWNlTCl7bC5wdXNoKGEpLGYoKTtyZXR1cm59aWYoYS50eXBlPT09Yy5icmFjZVIpe3RoaXMuX2N1cmx5QnJhY2UmJmgucHVzaCh0aGlzLnRyYW5zbGF0ZSh0aGlzLl9jdXJseUJyYWNlLHUpKSx0aGlzLl9jdXJseUJyYWNlPWE7cmV0dXJufWlmKGEudHlwZT09PWMudGVtcGxhdGV8fGEudHlwZT09PWMuaW52YWxpZFRlbXBsYXRlKXt0aGlzLl9jdXJseUJyYWNlJiYobC5wdXNoKHRoaXMuX2N1cmx5QnJhY2UpLHRoaXMuX2N1cmx5QnJhY2U9bnVsbCksbC5wdXNoKGEpO3JldHVybn10aGlzLl9jdXJseUJyYWNlJiYoaC5wdXNoKHRoaXMudHJhbnNsYXRlKHRoaXMuX2N1cmx5QnJhY2UsdSkpLHRoaXMuX2N1cmx5QnJhY2U9bnVsbCksaC5wdXNoKHRoaXMudHJhbnNsYXRlKGEsdSkpfX07dmFyIHB0PVszLDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNV07ZnVuY3Rpb24gV3MoKXtyZXR1cm4gcHRbcHQubGVuZ3RoLTFdfWZ1bmN0aW9uIFhzKGE9NSl7bGV0IHU9YT09PVwibGF0ZXN0XCI/V3MoKTphO2lmKHR5cGVvZiB1IT1cIm51bWJlclwiKXRocm93IG5ldyBFcnJvcihgZWNtYVZlcnNpb24gbXVzdCBiZSBhIG51bWJlciBvciBcImxhdGVzdFwiLiBSZWNlaXZlZCB2YWx1ZSBvZiB0eXBlICR7dHlwZW9mIGF9IGluc3RlYWQuYCk7aWYodT49MjAxNSYmKHUtPTIwMDkpLCFwdC5pbmNsdWRlcyh1KSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGVjbWFWZXJzaW9uLlwiKTtyZXR1cm4gdX1mdW5jdGlvbiB6cyhhPVwic2NyaXB0XCIpe2lmKGE9PT1cInNjcmlwdFwifHxhPT09XCJtb2R1bGVcIilyZXR1cm4gYTtpZihhPT09XCJjb21tb25qc1wiKXJldHVyblwic2NyaXB0XCI7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzb3VyY2VUeXBlLlwiKX1mdW5jdGlvbiBIcyhhKXtsZXQgdT1YcyhhLmVjbWFWZXJzaW9uKSxjPXpzKGEuc291cmNlVHlwZSksaD1hLnJhbmdlPT09ITAsbD1hLmxvYz09PSEwO2lmKHUhPT0zJiZhLmFsbG93UmVzZXJ2ZWQpdGhyb3cgbmV3IEVycm9yKFwiYGFsbG93UmVzZXJ2ZWRgIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gZWNtYVZlcnNpb24gaXMgM1wiKTtpZih0eXBlb2YgYS5hbGxvd1Jlc2VydmVkPFwidVwiJiZ0eXBlb2YgYS5hbGxvd1Jlc2VydmVkIT1cImJvb2xlYW5cIil0aHJvdyBuZXcgRXJyb3IoXCJgYWxsb3dSZXNlcnZlZGAsIHdoZW4gcHJlc2VudCwgbXVzdCBiZSBgdHJ1ZWAgb3IgYGZhbHNlYFwiKTtsZXQgZj11PT09Mz9hLmFsbG93UmVzZXJ2ZWR8fFwibmV2ZXJcIjohMSx5PWEuZWNtYUZlYXR1cmVzfHx7fSxfPWEuc291cmNlVHlwZT09PVwiY29tbW9uanNcInx8ISF5Lmdsb2JhbFJldHVybjtpZihjPT09XCJtb2R1bGVcIiYmdTw2KXRocm93IG5ldyBFcnJvcihcInNvdXJjZVR5cGUgJ21vZHVsZScgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGVjbWFWZXJzaW9uIDwgMjAxNS4gQ29uc2lkZXIgYWRkaW5nIGB7IGVjbWFWZXJzaW9uOiAyMDE1IH1gIHRvIHRoZSBwYXJzZXIgb3B0aW9ucy5cIik7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sYSx7ZWNtYVZlcnNpb246dSxzb3VyY2VUeXBlOmMscmFuZ2VzOmgsbG9jYXRpb25zOmwsYWxsb3dSZXNlcnZlZDpmLGFsbG93UmV0dXJuT3V0c2lkZUZ1bmN0aW9uOl99KX12YXIgcmU9U3ltYm9sKFwiZXNwcmVlJ3MgaW50ZXJuYWwgc3RhdGVcIiksdXQ9U3ltYm9sKFwiZXNwcmVlJ3MgZXNwcmltYUZpbmlzaE5vZGVcIik7ZnVuY3Rpb24gUXMoYSx1LGMsaCxsLGYseSl7bGV0IF87YT9fPVwiQmxvY2tcIjp5LnNsaWNlKGMsYysyKT09PVwiIyFcIj9fPVwiSGFzaGJhbmdcIjpfPVwiTGluZVwiO2xldCBMPXt0eXBlOl8sdmFsdWU6dX07cmV0dXJuIHR5cGVvZiBjPT1cIm51bWJlclwiJiYoTC5zdGFydD1jLEwuZW5kPWgsTC5yYW5nZT1bYyxoXSksdHlwZW9mIGw9PVwib2JqZWN0XCImJihMLmxvYz17c3RhcnQ6bCxlbmQ6Zn0pLEx9dmFyIGdpPSgpPT5hPT57bGV0IHU9T2JqZWN0LmFzc2lnbih7fSxhLmFjb3JuLnRva1R5cGVzKTtyZXR1cm4gYS5hY29ybkpzeCYmT2JqZWN0LmFzc2lnbih1LGEuYWNvcm5Kc3gudG9rVHlwZXMpLGNsYXNzIGV4dGVuZHMgYXtjb25zdHJ1Y3RvcihoLGwpeyh0eXBlb2YgaCE9XCJvYmplY3RcInx8aD09PW51bGwpJiYoaD17fSksdHlwZW9mIGwhPVwic3RyaW5nXCImJiEobCBpbnN0YW5jZW9mIFN0cmluZykmJihsPVN0cmluZyhsKSk7bGV0IGY9aC5zb3VyY2VUeXBlLHk9SHMoaCksXz15LmVjbWFGZWF0dXJlc3x8e30sTD15LnRva2Vucz09PSEwP25ldyBodCh1LGwpOm51bGwsUD17b3JpZ2luYWxTb3VyY2VUeXBlOmZ8fHkuc291cmNlVHlwZSx0b2tlbnM6TD9bXTpudWxsLGNvbW1lbnRzOnkuY29tbWVudD09PSEwP1tdOm51bGwsaW1wbGllZFN0cmljdDpfLmltcGxpZWRTdHJpY3Q9PT0hMCYmeS5lY21hVmVyc2lvbj49NSxlY21hVmVyc2lvbjp5LmVjbWFWZXJzaW9uLGpzeEF0dHJWYWx1ZVRva2VuOiExLGxhc3RUb2tlbjpudWxsLHRlbXBsYXRlRWxlbWVudHM6W119O3N1cGVyKHtlY21hVmVyc2lvbjp5LmVjbWFWZXJzaW9uLHNvdXJjZVR5cGU6eS5zb3VyY2VUeXBlLHJhbmdlczp5LnJhbmdlcyxsb2NhdGlvbnM6eS5sb2NhdGlvbnMsYWxsb3dSZXNlcnZlZDp5LmFsbG93UmVzZXJ2ZWQsYWxsb3dSZXR1cm5PdXRzaWRlRnVuY3Rpb246eS5hbGxvd1JldHVybk91dHNpZGVGdW5jdGlvbixvblRva2VuKEQpe0wmJkwub25Ub2tlbihELFApLEQudHlwZSE9PXUuZW9mJiYoUC5sYXN0VG9rZW49RCl9LG9uQ29tbWVudChELEcsRixkLHgsYil7aWYoUC5jb21tZW50cyl7bGV0IGs9UXMoRCxHLEYsZCx4LGIsbCk7UC5jb21tZW50cy5wdXNoKGspfX19LGwpLHRoaXNbcmVdPVB9dG9rZW5pemUoKXtkbyB0aGlzLm5leHQoKTt3aGlsZSh0aGlzLnR5cGUhPT11LmVvZik7dGhpcy5uZXh0KCk7bGV0IGg9dGhpc1tyZV0sbD1oLnRva2VucztyZXR1cm4gaC5jb21tZW50cyYmKGwuY29tbWVudHM9aC5jb21tZW50cyksbH1maW5pc2hOb2RlKC4uLmgpe2xldCBsPXN1cGVyLmZpbmlzaE5vZGUoLi4uaCk7cmV0dXJuIHRoaXNbdXRdKGwpfWZpbmlzaE5vZGVBdCguLi5oKXtsZXQgbD1zdXBlci5maW5pc2hOb2RlQXQoLi4uaCk7cmV0dXJuIHRoaXNbdXRdKGwpfXBhcnNlKCl7bGV0IGg9dGhpc1tyZV0sbD1zdXBlci5wYXJzZSgpO2lmKGwuc291cmNlVHlwZT1oLm9yaWdpbmFsU291cmNlVHlwZSxoLmNvbW1lbnRzJiYobC5jb21tZW50cz1oLmNvbW1lbnRzKSxoLnRva2VucyYmKGwudG9rZW5zPWgudG9rZW5zKSxsLmJvZHkubGVuZ3RoKXtsZXRbZl09bC5ib2R5O2wucmFuZ2UmJihsLnJhbmdlWzBdPWYucmFuZ2VbMF0pLGwubG9jJiYobC5sb2Muc3RhcnQ9Zi5sb2Muc3RhcnQpLGwuc3RhcnQ9Zi5zdGFydH1yZXR1cm4gaC5sYXN0VG9rZW4mJihsLnJhbmdlJiYobC5yYW5nZVsxXT1oLmxhc3RUb2tlbi5yYW5nZVsxXSksbC5sb2MmJihsLmxvYy5lbmQ9aC5sYXN0VG9rZW4ubG9jLmVuZCksbC5lbmQ9aC5sYXN0VG9rZW4uZW5kKSx0aGlzW3JlXS50ZW1wbGF0ZUVsZW1lbnRzLmZvckVhY2goZj0+e2xldCBfPWYudGFpbD8xOjI7Zi5zdGFydCs9LTEsZi5lbmQrPV8sZi5yYW5nZSYmKGYucmFuZ2VbMF0rPS0xLGYucmFuZ2VbMV0rPV8pLGYubG9jJiYoZi5sb2Muc3RhcnQuY29sdW1uKz0tMSxmLmxvYy5lbmQuY29sdW1uKz1fKX0pLGx9cGFyc2VUb3BMZXZlbChoKXtyZXR1cm4gdGhpc1tyZV0uaW1wbGllZFN0cmljdCYmKHRoaXMuc3RyaWN0PSEwKSxzdXBlci5wYXJzZVRvcExldmVsKGgpfXJhaXNlKGgsbCl7bGV0IGY9YS5hY29ybi5nZXRMaW5lSW5mbyh0aGlzLmlucHV0LGgpLHk9bmV3IFN5bnRheEVycm9yKGwpO3Rocm93IHkuaW5kZXg9aCx5LmxpbmVOdW1iZXI9Zi5saW5lLHkuY29sdW1uPWYuY29sdW1uKzEseX1yYWlzZVJlY292ZXJhYmxlKGgsbCl7dGhpcy5yYWlzZShoLGwpfXVuZXhwZWN0ZWQoaCl7bGV0IGw9XCJVbmV4cGVjdGVkIHRva2VuXCI7aWYoaCE9bnVsbCl7aWYodGhpcy5wb3M9aCx0aGlzLm9wdGlvbnMubG9jYXRpb25zKWZvcig7dGhpcy5wb3M8dGhpcy5saW5lU3RhcnQ7KXRoaXMubGluZVN0YXJ0PXRoaXMuaW5wdXQubGFzdEluZGV4T2YoYFxuYCx0aGlzLmxpbmVTdGFydC0yKSsxLC0tdGhpcy5jdXJMaW5lO3RoaXMubmV4dFRva2VuKCl9dGhpcy5lbmQ+dGhpcy5zdGFydCYmKGwrPWAgJHt0aGlzLmlucHV0LnNsaWNlKHRoaXMuc3RhcnQsdGhpcy5lbmQpfWApLHRoaXMucmFpc2UodGhpcy5zdGFydCxsKX1qc3hfcmVhZFN0cmluZyhoKXtsZXQgbD1zdXBlci5qc3hfcmVhZFN0cmluZyhoKTtyZXR1cm4gdGhpcy50eXBlPT09dS5zdHJpbmcmJih0aGlzW3JlXS5qc3hBdHRyVmFsdWVUb2tlbj0hMCksbH1bdXRdKGgpe3JldHVybiBoLnR5cGU9PT1cIlRlbXBsYXRlRWxlbWVudFwiJiZ0aGlzW3JlXS50ZW1wbGF0ZUVsZW1lbnRzLnB1c2goaCksaC50eXBlLmluY2x1ZGVzKFwiRnVuY3Rpb25cIikmJiFoLmdlbmVyYXRvciYmKGguZ2VuZXJhdG9yPSExKSxofX19LFlzPXtfcmVndWxhcjpudWxsLF9qc3g6bnVsbCxnZXQgcmVndWxhcigpe3JldHVybiB0aGlzLl9yZWd1bGFyPT09bnVsbCYmKHRoaXMuX3JlZ3VsYXI9eWkuUGFyc2VyLmV4dGVuZChnaSgpKSksdGhpcy5fcmVndWxhcn0sZ2V0IGpzeCgpe3JldHVybiB0aGlzLl9qc3g9PT1udWxsJiYodGhpcy5fanN4PXlpLlBhcnNlci5leHRlbmQoSnMuZGVmYXVsdCgpLGdpKCkpKSx0aGlzLl9qc3h9LGdldChhKXtyZXR1cm4hIShhJiZhLmVjbWFGZWF0dXJlcyYmYS5lY21hRmVhdHVyZXMuanN4KT90aGlzLmpzeDp0aGlzLnJlZ3VsYXJ9fTtmdW5jdGlvbiAkcyhhLHUpe2xldCBjPVlzLmdldCh1KTtyZXR1cm4gbmV3IGModSxhKS5wYXJzZSgpfXZhciBacz1cImVzcHJlZVwiO3FlLm5hbWU9WnM7cWUucGFyc2U9JHN9KTt2YXIgY3Q9e307c3MoY3Qse3BhcnNlcnM6KCk9PnNyfSk7ZnVuY3Rpb24gbnMoYSx1KXtsZXQgYz1uZXcgU3ludGF4RXJyb3IoYStcIiAoXCIrdS5sb2Muc3RhcnQubGluZStcIjpcIit1LmxvYy5zdGFydC5jb2x1bW4rXCIpXCIpO3JldHVybiBPYmplY3QuYXNzaWduKGMsdSl9dmFyIFJlPW5zO2Z1bmN0aW9uIG9zKGEpe2xldCB1PVtdO2ZvcihsZXQgYyBvZiBhKXRyeXtyZXR1cm4gYygpfWNhdGNoKGgpe3UucHVzaChoKX10aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIkFsbCBjb21iaW5hdGlvbnMgZmFpbGVkXCIpLHtlcnJvcnM6dX0pfXZhciBPZT1vczt2YXIgY2U9YXMoaWkoKSwxKTtmdW5jdGlvbiB5cyhhKXtpZighYS5zdGFydHNXaXRoKFwiIyFcIikpcmV0dXJuXCJcIjtsZXQgdT1hLmluZGV4T2YoYFxuYCk7cmV0dXJuIHU9PT0tMT9hOmEuc2xpY2UoMCx1KX12YXIgc2k9eXM7ZnVuY3Rpb24gZ3MoYSl7bGV0IHU9c2koYSk7dSYmKGE9YS5zbGljZSh1Lmxlbmd0aCsxKSk7bGV0IGM9KDAsY2UuZXh0cmFjdCkoYSkse3ByYWdtYXM6aCxjb21tZW50czpsfT0oMCxjZS5wYXJzZVdpdGhDb21tZW50cykoYyk7cmV0dXJue3NoZWJhbmc6dSx0ZXh0OmEscHJhZ21hczpoLGNvbW1lbnRzOmx9fWZ1bmN0aW9uIHJpKGEpe2xldHtwcmFnbWFzOnV9PWdzKGEpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxcInByZXR0aWVyXCIpfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxcImZvcm1hdFwiKX1mdW5jdGlvbiB2cyhhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmYS5sZW5ndGg+MH12YXIgQmU9dnM7ZnVuY3Rpb24gTShhKXt2YXIgaDtsZXQgdT1hLnJhbmdlP2EucmFuZ2VbMF06YS5zdGFydCxjPSgoaD1hLmRlY2xhcmF0aW9uKT09bnVsbD92b2lkIDA6aC5kZWNvcmF0b3JzKT8/YS5kZWNvcmF0b3JzO3JldHVybiBCZShjKT9NYXRoLm1pbihNKGNbMF0pLHUpOnV9ZnVuY3Rpb24geihhKXtyZXR1cm4gYS5yYW5nZT9hLnJhbmdlWzFdOmEuZW5kfWZ1bmN0aW9uIGJzKGEpe3JldHVybiBhPXR5cGVvZiBhPT1cImZ1bmN0aW9uXCI/e3BhcnNlOmF9OmEse2FzdEZvcm1hdDpcImVzdHJlZVwiLGhhc1ByYWdtYTpyaSxsb2NTdGFydDpNLGxvY0VuZDp6LC4uLmF9fXZhciBEZT1iczt2YXIgU3M9KGEsdSxjKT0+e2lmKCEoYSYmdT09bnVsbCkpcmV0dXJuIEFycmF5LmlzQXJyYXkodSl8fHR5cGVvZiB1PT1cInN0cmluZ1wiP3VbYzwwP3UubGVuZ3RoK2M6Y106dS5hdChjKX0sZXQ9U3M7ZnVuY3Rpb24gX3MoYSl7cmV0dXJuIGE9bmV3IFNldChhKSx1PT5hLmhhcyh1PT1udWxsP3ZvaWQgMDp1LnR5cGUpfXZhciBhaT1fczt2YXIgQ3M9YWkoW1wiQmxvY2tcIixcIkNvbW1lbnRCbG9ja1wiLFwiTXVsdGlMaW5lXCJdKSxTZT1DcztmdW5jdGlvbiBrcyhhKXtyZXR1cm4gU2UoYSkmJmEudmFsdWVbMF09PT1cIipcIiYmL0AoPzp0eXBlfHNhdGlzZmllcylcXGIvLnRlc3QoYS52YWx1ZSl9dmFyIG5pPWtzO2Z1bmN0aW9uIFRzKGEpe2xldCB1PWAqJHthLnZhbHVlfSpgLnNwbGl0KGBcbmApO3JldHVybiB1Lmxlbmd0aD4xJiZ1LmV2ZXJ5KGM9PmMudHJpbVN0YXJ0KClbMF09PT1cIipcIil9dmFyIHR0PVRzO3ZhciBfZT1udWxsO2Z1bmN0aW9uIENlKGEpe2lmKF9lIT09bnVsbCYmdHlwZW9mIF9lLnByb3BlcnR5KXtsZXQgdT1fZTtyZXR1cm4gX2U9Q2UucHJvdG90eXBlPW51bGwsdX1yZXR1cm4gX2U9Q2UucHJvdG90eXBlPWE/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IENlfXZhciB3cz0xMDtmb3IobGV0IGE9MDthPD13czthKyspQ2UoKTtmdW5jdGlvbiBpdChhKXtyZXR1cm4gQ2UoYSl9ZnVuY3Rpb24gRXMoYSx1PVwidHlwZVwiKXtpdChhKTtmdW5jdGlvbiBjKGgpe2xldCBsPWhbdV0sZj1hW2xdO2lmKCFBcnJheS5pc0FycmF5KGYpKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7bH0nLmApLHtub2RlOmh9KTtyZXR1cm4gZn1yZXR1cm4gY312YXIgb2k9RXM7dmFyIHVpPXtBcnJheUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sQXNzaWdubWVudEV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sQmluYXJ5RXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxJbnRlcnByZXRlckRpcmVjdGl2ZTpbXSxEaXJlY3RpdmU6W1widmFsdWVcIl0sRGlyZWN0aXZlTGl0ZXJhbDpbXSxCbG9ja1N0YXRlbWVudDpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLEJyZWFrU3RhdGVtZW50OltcImxhYmVsXCJdLENhbGxFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxDYXRjaENsYXVzZTpbXCJwYXJhbVwiLFwiYm9keVwiXSxDb25kaXRpb25hbEV4cHJlc3Npb246W1widGVzdFwiLFwiY29uc2VxdWVudFwiLFwiYWx0ZXJuYXRlXCJdLENvbnRpbnVlU3RhdGVtZW50OltcImxhYmVsXCJdLERlYnVnZ2VyU3RhdGVtZW50OltdLERvV2hpbGVTdGF0ZW1lbnQ6W1widGVzdFwiLFwiYm9keVwiXSxFbXB0eVN0YXRlbWVudDpbXSxFeHByZXNzaW9uU3RhdGVtZW50OltcImV4cHJlc3Npb25cIl0sRmlsZTpbXCJwcm9ncmFtXCJdLEZvckluU3RhdGVtZW50OltcImxlZnRcIixcInJpZ2h0XCIsXCJib2R5XCJdLEZvclN0YXRlbWVudDpbXCJpbml0XCIsXCJ0ZXN0XCIsXCJ1cGRhdGVcIixcImJvZHlcIl0sRnVuY3Rpb25EZWNsYXJhdGlvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLEZ1bmN0aW9uRXhwcmVzc2lvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJZGVudGlmaWVyOltcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLElmU3RhdGVtZW50OltcInRlc3RcIixcImNvbnNlcXVlbnRcIixcImFsdGVybmF0ZVwiXSxMYWJlbGVkU3RhdGVtZW50OltcImxhYmVsXCIsXCJib2R5XCJdLFN0cmluZ0xpdGVyYWw6W10sTnVtZXJpY0xpdGVyYWw6W10sTnVsbExpdGVyYWw6W10sQm9vbGVhbkxpdGVyYWw6W10sUmVnRXhwTGl0ZXJhbDpbXSxMb2dpY2FsRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sTmV3RXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sUHJvZ3JhbTpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLE9iamVjdEV4cHJlc3Npb246W1wicHJvcGVydGllc1wiXSxPYmplY3RNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcImRlY29yYXRvcnNcIl0sUmVzdEVsZW1lbnQ6W1wiYXJndW1lbnRcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLFJldHVyblN0YXRlbWVudDpbXCJhcmd1bWVudFwiXSxTZXF1ZW5jZUV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sUGFyZW50aGVzaXplZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxTd2l0Y2hDYXNlOltcInRlc3RcIixcImNvbnNlcXVlbnRcIl0sU3dpdGNoU3RhdGVtZW50OltcImRpc2NyaW1pbmFudFwiLFwiY2FzZXNcIl0sVGhpc0V4cHJlc3Npb246W10sVGhyb3dTdGF0ZW1lbnQ6W1wiYXJndW1lbnRcIl0sVHJ5U3RhdGVtZW50OltcImJsb2NrXCIsXCJoYW5kbGVyXCIsXCJmaW5hbGl6ZXJcIl0sVW5hcnlFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLFVwZGF0ZUV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sVmFyaWFibGVEZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvbnNcIl0sVmFyaWFibGVEZWNsYXJhdG9yOltcImlkXCIsXCJpbml0XCJdLFdoaWxlU3RhdGVtZW50OltcInRlc3RcIixcImJvZHlcIl0sV2l0aFN0YXRlbWVudDpbXCJvYmplY3RcIixcImJvZHlcIl0sQXNzaWdubWVudFBhdHRlcm46W1wibGVmdFwiLFwicmlnaHRcIixcImRlY29yYXRvcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLEFycmF5UGF0dGVybjpbXCJlbGVtZW50c1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246W1wicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLENsYXNzQm9keTpbXCJib2R5XCJdLENsYXNzRXhwcmVzc2lvbjpbXCJpZFwiLFwiYm9keVwiLFwic3VwZXJDbGFzc1wiLFwibWl4aW5zXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwiaW1wbGVtZW50c1wiLFwiZGVjb3JhdG9yc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCJdLENsYXNzRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIixcInN1cGVyQ2xhc3NcIixcIm1peGluc1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVyVHlwZVBhcmFtZXRlcnNcIixcImltcGxlbWVudHNcIixcImRlY29yYXRvcnNcIixcInN1cGVyVHlwZUFyZ3VtZW50c1wiXSxFeHBvcnRBbGxEZWNsYXJhdGlvbjpbXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIixcImV4cG9ydGVkXCJdLEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiXSxFeHBvcnROYW1lZERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sRXhwb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJleHBvcnRlZFwiXSxGb3JPZlN0YXRlbWVudDpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm9keVwiXSxJbXBvcnREZWNsYXJhdGlvbjpbXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sSW1wb3J0RGVmYXVsdFNwZWNpZmllcjpbXCJsb2NhbFwiXSxJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6W1wibG9jYWxcIl0sSW1wb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJpbXBvcnRlZFwiXSxNZXRhUHJvcGVydHk6W1wibWV0YVwiLFwicHJvcGVydHlcIl0sQ2xhc3NNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFBhdHRlcm46W1wicHJvcGVydGllc1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sU3ByZWFkRWxlbWVudDpbXCJhcmd1bWVudFwiXSxTdXBlcjpbXSxUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246W1widGFnXCIsXCJxdWFzaVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVGVtcGxhdGVFbGVtZW50OltdLFRlbXBsYXRlTGl0ZXJhbDpbXCJxdWFzaXNcIixcImV4cHJlc3Npb25zXCJdLFlpZWxkRXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxBd2FpdEV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sSW1wb3J0OltdLEJpZ0ludExpdGVyYWw6W10sRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyOltcImV4cG9ydGVkXCJdLE9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLE9wdGlvbmFsQ2FsbEV4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLENsYXNzUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIixcInZhcmlhbmNlXCJdLENsYXNzQWNjZXNzb3JQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxDbGFzc1ByaXZhdGVQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJkZWNvcmF0b3JzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFyaWFuY2VcIl0sQ2xhc3NQcml2YXRlTWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxQcml2YXRlTmFtZTpbXCJpZFwiXSxTdGF0aWNCbG9jazpbXCJib2R5XCJdLEFueVR5cGVBbm5vdGF0aW9uOltdLEFycmF5VHlwZUFubm90YXRpb246W1wiZWxlbWVudFR5cGVcIl0sQm9vbGVhblR5cGVBbm5vdGF0aW9uOltdLEJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVsbExpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxDbGFzc0ltcGxlbWVudHM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLERlY2xhcmVDbGFzczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcIm1peGluc1wiLFwiaW1wbGVtZW50c1wiLFwiYm9keVwiXSxEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInByZWRpY2F0ZVwiXSxEZWNsYXJlSW50ZXJmYWNlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxEZWNsYXJlTW9kdWxlOltcImlkXCIsXCJib2R5XCJdLERlY2xhcmVNb2R1bGVFeHBvcnRzOltcInR5cGVBbm5vdGF0aW9uXCJdLERlY2xhcmVUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxEZWNsYXJlT3BhcXVlVHlwZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVydHlwZVwiXSxEZWNsYXJlVmFyaWFibGU6W1wiaWRcIl0sRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIl0sRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uOltcInNvdXJjZVwiXSxEZWNsYXJlZFByZWRpY2F0ZTpbXCJ2YWx1ZVwiXSxFeGlzdHNUeXBlQW5ub3RhdGlvbjpbXSxGdW5jdGlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJlc3RcIixcInJldHVyblR5cGVcIixcInRoaXNcIl0sRnVuY3Rpb25UeXBlUGFyYW06W1wibmFtZVwiLFwidHlwZUFubm90YXRpb25cIl0sR2VuZXJpY1R5cGVBbm5vdGF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbmZlcnJlZFByZWRpY2F0ZTpbXSxJbnRlcmZhY2VFeHRlbmRzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sSW50ZXJmYWNlVHlwZUFubm90YXRpb246W1wiZXh0ZW5kc1wiLFwiYm9keVwiXSxJbnRlcnNlY3Rpb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxNaXhlZFR5cGVBbm5vdGF0aW9uOltdLEVtcHR5VHlwZUFubm90YXRpb246W10sTnVsbGFibGVUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVtYmVyVHlwZUFubm90YXRpb246W10sT2JqZWN0VHlwZUFubm90YXRpb246W1wicHJvcGVydGllc1wiLFwiaW5kZXhlcnNcIixcImNhbGxQcm9wZXJ0aWVzXCIsXCJpbnRlcm5hbFNsb3RzXCJdLE9iamVjdFR5cGVJbnRlcm5hbFNsb3Q6W1wiaWRcIixcInZhbHVlXCIsXCJvcHRpb25hbFwiLFwic3RhdGljXCIsXCJtZXRob2RcIl0sT2JqZWN0VHlwZUNhbGxQcm9wZXJ0eTpbXCJ2YWx1ZVwiXSxPYmplY3RUeXBlSW5kZXhlcjpbXCJpZFwiLFwia2V5XCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sT2JqZWN0VHlwZVByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLE9iamVjdFR5cGVTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxPcGFxdWVUeXBlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJ0eXBlXCIsXCJpbXBsdHlwZVwiXSxRdWFsaWZpZWRUeXBlSWRlbnRpZmllcjpbXCJpZFwiLFwicXVhbGlmaWNhdGlvblwiXSxTdHJpbmdMaXRlcmFsVHlwZUFubm90YXRpb246W10sU3RyaW5nVHlwZUFubm90YXRpb246W10sU3ltYm9sVHlwZUFubm90YXRpb246W10sVGhpc1R5cGVBbm5vdGF0aW9uOltdLFR1cGxlVHlwZUFubm90YXRpb246W1widHlwZXNcIixcImVsZW1lbnRUeXBlc1wiXSxUeXBlb2ZUeXBlQW5ub3RhdGlvbjpbXCJhcmd1bWVudFwiXSxUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlQ2FzdEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVHlwZVBhcmFtZXRlcjpbXCJib3VuZFwiLFwiZGVmYXVsdFwiLFwidmFyaWFuY2VcIl0sVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOltcInBhcmFtc1wiXSxUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVW5pb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxWYXJpYW5jZTpbXSxWb2lkVHlwZUFubm90YXRpb246W10sRW51bURlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCJdLEVudW1Cb29sZWFuQm9keTpbXCJtZW1iZXJzXCJdLEVudW1OdW1iZXJCb2R5OltcIm1lbWJlcnNcIl0sRW51bVN0cmluZ0JvZHk6W1wibWVtYmVyc1wiXSxFbnVtU3ltYm9sQm9keTpbXCJtZW1iZXJzXCJdLEVudW1Cb29sZWFuTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1OdW1iZXJNZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bVN0cmluZ01lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtRGVmYXVsdGVkTWVtYmVyOltcImlkXCJdLEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxKU1hBdHRyaWJ1dGU6W1wibmFtZVwiLFwidmFsdWVcIl0sSlNYQ2xvc2luZ0VsZW1lbnQ6W1wibmFtZVwiXSxKU1hFbGVtZW50OltcIm9wZW5pbmdFbGVtZW50XCIsXCJjaGlsZHJlblwiLFwiY2xvc2luZ0VsZW1lbnRcIl0sSlNYRW1wdHlFeHByZXNzaW9uOltdLEpTWEV4cHJlc3Npb25Db250YWluZXI6W1wiZXhwcmVzc2lvblwiXSxKU1hTcHJlYWRDaGlsZDpbXCJleHByZXNzaW9uXCJdLEpTWElkZW50aWZpZXI6W10sSlNYTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLEpTWE5hbWVzcGFjZWROYW1lOltcIm5hbWVzcGFjZVwiLFwibmFtZVwiXSxKU1hPcGVuaW5nRWxlbWVudDpbXCJuYW1lXCIsXCJhdHRyaWJ1dGVzXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxKU1hTcHJlYWRBdHRyaWJ1dGU6W1wiYXJndW1lbnRcIl0sSlNYVGV4dDpbXSxKU1hGcmFnbWVudDpbXCJvcGVuaW5nRnJhZ21lbnRcIixcImNoaWxkcmVuXCIsXCJjbG9zaW5nRnJhZ21lbnRcIl0sSlNYT3BlbmluZ0ZyYWdtZW50OltdLEpTWENsb3NpbmdGcmFnbWVudDpbXSxOb29wOltdLFBsYWNlaG9sZGVyOltdLFY4SW50cmluc2ljSWRlbnRpZmllcjpbXSxBcmd1bWVudFBsYWNlaG9sZGVyOltdLEJpbmRFeHByZXNzaW9uOltcIm9iamVjdFwiLFwiY2FsbGVlXCJdLEltcG9ydEF0dHJpYnV0ZTpbXCJrZXlcIixcInZhbHVlXCJdLERlY29yYXRvcjpbXCJleHByZXNzaW9uXCJdLERvRXhwcmVzc2lvbjpbXCJib2R5XCJdLEV4cG9ydERlZmF1bHRTcGVjaWZpZXI6W1wiZXhwb3J0ZWRcIl0sUmVjb3JkRXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLFR1cGxlRXhwcmVzc2lvbjpbXCJlbGVtZW50c1wiXSxEZWNpbWFsTGl0ZXJhbDpbXSxNb2R1bGVFeHByZXNzaW9uOltcImJvZHlcIl0sVG9waWNSZWZlcmVuY2U6W10sUGlwZWxpbmVUb3BpY0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxQaXBlbGluZUJhcmVGdW5jdGlvbjpbXCJjYWxsZWVcIl0sUGlwZWxpbmVQcmltYXJ5VG9waWNSZWZlcmVuY2U6W10sVFNQYXJhbWV0ZXJQcm9wZXJ0eTpbXCJwYXJhbWV0ZXJcIixcImRlY29yYXRvcnNcIl0sVFNEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIixcImJvZHlcIl0sVFNEZWNsYXJlTWV0aG9kOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1F1YWxpZmllZE5hbWU6W1wibGVmdFwiLFwicmlnaHRcIl0sVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1Byb3BlcnR5U2lnbmF0dXJlOltcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNNZXRob2RTaWduYXR1cmU6W1wia2V5XCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0luZGV4U2lnbmF0dXJlOltcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQW55S2V5d29yZDpbXSxUU0Jvb2xlYW5LZXl3b3JkOltdLFRTQmlnSW50S2V5d29yZDpbXSxUU0ludHJpbnNpY0tleXdvcmQ6W10sVFNOZXZlcktleXdvcmQ6W10sVFNOdWxsS2V5d29yZDpbXSxUU051bWJlcktleXdvcmQ6W10sVFNPYmplY3RLZXl3b3JkOltdLFRTU3RyaW5nS2V5d29yZDpbXSxUU1N5bWJvbEtleXdvcmQ6W10sVFNVbmRlZmluZWRLZXl3b3JkOltdLFRTVW5rbm93bktleXdvcmQ6W10sVFNWb2lkS2V5d29yZDpbXSxUU1RoaXNUeXBlOltdLFRTRnVuY3Rpb25UeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTQ29uc3RydWN0b3JUeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTVHlwZVJlZmVyZW5jZTpbXCJ0eXBlTmFtZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNUeXBlUHJlZGljYXRlOltcInBhcmFtZXRlck5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZVF1ZXJ5OltcImV4cHJOYW1lXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU1R5cGVMaXRlcmFsOltcIm1lbWJlcnNcIl0sVFNBcnJheVR5cGU6W1wiZWxlbWVudFR5cGVcIl0sVFNUdXBsZVR5cGU6W1wiZWxlbWVudFR5cGVzXCJdLFRTT3B0aW9uYWxUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTUmVzdFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNOYW1lZFR1cGxlTWVtYmVyOltcImxhYmVsXCIsXCJlbGVtZW50VHlwZVwiXSxUU1VuaW9uVHlwZTpbXCJ0eXBlc1wiXSxUU0ludGVyc2VjdGlvblR5cGU6W1widHlwZXNcIl0sVFNDb25kaXRpb25hbFR5cGU6W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiLFwidHJ1ZVR5cGVcIixcImZhbHNlVHlwZVwiXSxUU0luZmVyVHlwZTpbXCJ0eXBlUGFyYW1ldGVyXCJdLFRTUGFyZW50aGVzaXplZFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlT3BlcmF0b3I6W1widHlwZUFubm90YXRpb25cIl0sVFNJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sVFNNYXBwZWRUeXBlOltcInR5cGVQYXJhbWV0ZXJcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJuYW1lVHlwZVwiXSxUU0xpdGVyYWxUeXBlOltcImxpdGVyYWxcIl0sVFNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sVFNJbnRlcmZhY2VCb2R5OltcImJvZHlcIl0sVFNUeXBlQWxpYXNEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNBc0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVFNTYXRpc2ZpZXNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZUFzc2VydGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiLFwiZXhwcmVzc2lvblwiXSxUU0VudW1EZWNsYXJhdGlvbjpbXCJpZFwiLFwibWVtYmVyc1wiXSxUU0VudW1NZW1iZXI6W1wiaWRcIixcImluaXRpYWxpemVyXCJdLFRTTW9kdWxlRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIl0sVFNNb2R1bGVCbG9jazpbXCJib2R5XCJdLFRTSW1wb3J0VHlwZTpbXCJhcmd1bWVudFwiLFwicXVhbGlmaWVyXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOltcImlkXCIsXCJtb2R1bGVSZWZlcmVuY2VcIl0sVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZTpbXCJleHByZXNzaW9uXCJdLFRTTm9uTnVsbEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxUU0V4cG9ydEFzc2lnbm1lbnQ6W1wiZXhwcmVzc2lvblwiXSxUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uOltcImlkXCJdLFRTVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246W1wicGFyYW1zXCJdLFRTVHlwZVBhcmFtZXRlcjpbXCJjb25zdHJhaW50XCIsXCJkZWZhdWx0XCIsXCJuYW1lXCJdLENoYWluRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLEV4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxFeHBlcmltZW50YWxTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxJbXBvcnRFeHByZXNzaW9uOltcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiXSxMaXRlcmFsOltdLE1ldGhvZERlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ2YWx1ZVwiXSxQcml2YXRlSWRlbnRpZmllcjpbXSxQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCJdLFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sQWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiXSxUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQWJzdHJhY3RLZXl3b3JkOltdLFRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uOltcImtleVwiLFwidmFsdWVcIl0sVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQXN5bmNLZXl3b3JkOltdLFRTQ2xhc3NJbXBsZW1lbnRzOltcImV4cHJlc3Npb25cIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTRGVjbGFyZUtleXdvcmQ6W10sVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNFeHBvcnRLZXl3b3JkOltdLFRTSW50ZXJmYWNlSGVyaXRhZ2U6W1wiZXhwcmVzc2lvblwiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNQcml2YXRlS2V5d29yZDpbXSxUU1Byb3RlY3RlZEtleXdvcmQ6W10sVFNQdWJsaWNLZXl3b3JkOltdLFRTUmVhZG9ubHlLZXl3b3JkOltdLFRTU3RhdGljS2V5d29yZDpbXSxUU1RlbXBsYXRlTGl0ZXJhbFR5cGU6W1wicXVhc2lzXCIsXCJ0eXBlc1wiXSxCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb246W10sQmlnSW50VHlwZUFubm90YXRpb246W10sQ29uZGl0aW9uYWxUeXBlQW5ub3RhdGlvbjpbXCJjaGVja1R5cGVcIixcImV4dGVuZHNUeXBlXCIsXCJ0cnVlVHlwZVwiLFwiZmFsc2VUeXBlXCJdLERlY2xhcmVFbnVtOltcImlkXCIsXCJib2R5XCJdLEluZmVyVHlwZUFubm90YXRpb246W1widHlwZVBhcmFtZXRlclwiXSxLZXlvZlR5cGVBbm5vdGF0aW9uOltcImFyZ3VtZW50XCJdLE9iamVjdFR5cGVNYXBwZWRUeXBlUHJvcGVydHk6W1wia2V5VHBhcmFtXCIsXCJwcm9wVHlwZVwiLFwic291cmNlVHlwZVwiLFwidmFyaWFuY2VcIl0sUXVhbGlmaWVkVHlwZW9mSWRlbnRpZmllcjpbXCJxdWFsaWZpY2F0aW9uXCIsXCJpZFwiXSxUdXBsZVR5cGVMYWJlbGVkRWxlbWVudDpbXCJsYWJlbFwiLFwiZWxlbWVudFR5cGVcIixcInZhcmlhbmNlXCJdLFR1cGxlVHlwZVNwcmVhZEVsZW1lbnQ6W1wibGFiZWxcIixcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVQcmVkaWNhdGU6W1wicGFyYW1ldGVyTmFtZVwiLFwidHlwZUFubm90YXRpb25cIixcImFzc2VydHNcIl0sTkdSb290OltcIm5vZGVcIl0sTkdQaXBlRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYXJndW1lbnRzXCJdLE5HQ2hhaW5lZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sTkdFbXB0eUV4cHJlc3Npb246W10sTkdNaWNyb3N5bnRheDpbXCJib2R5XCJdLE5HTWljcm9zeW50YXhLZXk6W10sTkdNaWNyb3N5bnRheEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwiYWxpYXNcIl0sTkdNaWNyb3N5bnRheEtleWVkRXhwcmVzc2lvbjpbXCJrZXlcIixcImV4cHJlc3Npb25cIl0sTkdNaWNyb3N5bnRheExldDpbXCJrZXlcIixcInZhbHVlXCJdLE5HTWljcm9zeW50YXhBczpbXCJrZXlcIixcImFsaWFzXCJdLEpzRXhwcmVzc2lvblJvb3Q6W1wibm9kZVwiXSxKc29uUm9vdDpbXCJub2RlXCJdLFRTSlNEb2NBbGxUeXBlOltdLFRTSlNEb2NVbmtub3duVHlwZTpbXSxUU0pTRG9jTnVsbGFibGVUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTSlNEb2NOb25OdWxsYWJsZVR5cGU6W1widHlwZUFubm90YXRpb25cIl0sTmV2ZXJUeXBlQW5ub3RhdGlvbjpbXSxVbmRlZmluZWRUeXBlQW5ub3RhdGlvbjpbXSxVbmtub3duVHlwZUFubm90YXRpb246W119O3ZhciBBcz1vaSh1aSksaGk9QXM7ZnVuY3Rpb24gc3QoYSx1KXtpZighKGEhPT1udWxsJiZ0eXBlb2YgYT09XCJvYmplY3RcIikpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSl7Zm9yKGxldCBoPTA7aDxhLmxlbmd0aDtoKyspYVtoXT1zdChhW2hdLHUpO3JldHVybiBhfWxldCBjPWhpKGEpO2ZvcihsZXQgaD0wO2g8Yy5sZW5ndGg7aCsrKWFbY1toXV09c3QoYVtjW2hdXSx1KTtyZXR1cm4gdShhKXx8YX12YXIgRmU9c3Q7ZnVuY3Rpb24gUHMoYSx1KXtsZXR7cGFyc2VyOmMsdGV4dDpofT11O2lmKGEudHlwZT09PVwiRmlsZVwiJiZhLnByb2dyYW0uaW50ZXJwcmV0ZXIpe2xldHtwcm9ncmFtOntpbnRlcnByZXRlcjpmfSxjb21tZW50czp5fT1hO2RlbGV0ZSBhLnByb2dyYW0uaW50ZXJwcmV0ZXIseS51bnNoaWZ0KGYpfWlmKGM9PT1cImJhYmVsXCIpe2xldCBmPW5ldyBTZXQ7YT1GZShhLHk9Pnt2YXIgXzsoXz15LmxlYWRpbmdDb21tZW50cykhPW51bGwmJl8uc29tZShuaSkmJmYuYWRkKE0oeSkpfSksYT1GZShhLHk9PntpZih5LnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCIpe2xldHtleHByZXNzaW9uOl99PXk7aWYoXy50eXBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cIilyZXR1cm4gXy5yYW5nZT15LnJhbmdlLF87bGV0IEw9TSh5KTtpZighZi5oYXMoTCkpcmV0dXJuIF8uZXh0cmE9ey4uLl8uZXh0cmEscGFyZW50aGVzaXplZDohMH0sX319KX1pZihhPUZlKGEsZj0+e3N3aXRjaChmLnR5cGUpe2Nhc2VcIkxvZ2ljYWxFeHByZXNzaW9uXCI6aWYocGkoZikpcmV0dXJuIHJ0KGYpO2JyZWFrO2Nhc2VcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjp7bGV0IHk9ZXQoITEsZi5kZWNsYXJhdGlvbnMsLTEpO3khPW51bGwmJnkuaW5pdCYmbChmLHkpO2JyZWFrfWNhc2VcIlRTUGFyZW50aGVzaXplZFR5cGVcIjpyZXR1cm4gZi50eXBlQW5ub3RhdGlvbjtjYXNlXCJUU1R5cGVQYXJhbWV0ZXJcIjppZih0eXBlb2YgZi5uYW1lPT1cInN0cmluZ1wiKXtsZXQgeT1NKGYpO2YubmFtZT17dHlwZTpcIklkZW50aWZpZXJcIixuYW1lOmYubmFtZSxyYW5nZTpbeSx5K2YubmFtZS5sZW5ndGhdfX1icmVhaztjYXNlXCJUb3BpY1JlZmVyZW5jZVwiOmEuZXh0cmE9ey4uLmEuZXh0cmEsX19pc1VzaW5nSGFja1BpcGVsaW5lOiEwfTticmVhaztjYXNlXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiOntsZXR7ZXhwb3J0ZWQ6eX09ZjtpZihjPT09XCJtZXJpeWFoXCImJih5PT1udWxsP3ZvaWQgMDp5LnR5cGUpPT09XCJJZGVudGlmaWVyXCIpe2xldCBfPWguc2xpY2UoTSh5KSx6KHkpKTsoXy5zdGFydHNXaXRoKCdcIicpfHxfLnN0YXJ0c1dpdGgoXCInXCIpKSYmKGYuZXhwb3J0ZWQ9ey4uLmYuZXhwb3J0ZWQsdHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpmLmV4cG9ydGVkLm5hbWUscmF3Ol99KX1icmVha31jYXNlXCJUU1VuaW9uVHlwZVwiOmNhc2VcIlRTSW50ZXJzZWN0aW9uVHlwZVwiOmlmKGYudHlwZXMubGVuZ3RoPT09MSlyZXR1cm4gZi50eXBlc1swXTticmVha319KSxCZShhLmNvbW1lbnRzKSl7bGV0IGY9ZXQoITEsYS5jb21tZW50cywtMSk7Zm9yKGxldCB5PWEuY29tbWVudHMubGVuZ3RoLTI7eT49MDt5LS0pe2xldCBfPWEuY29tbWVudHNbeV07eihfKT09PU0oZikmJlNlKF8pJiZTZShmKSYmdHQoXykmJnR0KGYpJiYoYS5jb21tZW50cy5zcGxpY2UoeSsxLDEpLF8udmFsdWUrPVwiKi8vKlwiK2YudmFsdWUsXy5yYW5nZT1bTShfKSx6KGYpXSksZj1ffX1yZXR1cm4gYS50eXBlPT09XCJQcm9ncmFtXCImJihhLnJhbmdlPVswLGgubGVuZ3RoXSksYTtmdW5jdGlvbiBsKGYseSl7aFt6KHkpXSE9PVwiO1wiJiYoZi5yYW5nZT1bTShmKSx6KHkpXSl9fWZ1bmN0aW9uIHBpKGEpe3JldHVybiBhLnR5cGU9PT1cIkxvZ2ljYWxFeHByZXNzaW9uXCImJmEucmlnaHQudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cIiYmYS5vcGVyYXRvcj09PWEucmlnaHQub3BlcmF0b3J9ZnVuY3Rpb24gcnQoYSl7cmV0dXJuIHBpKGEpP3J0KHt0eXBlOlwiTG9naWNhbEV4cHJlc3Npb25cIixvcGVyYXRvcjphLm9wZXJhdG9yLGxlZnQ6cnQoe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOmEub3BlcmF0b3IsbGVmdDphLmxlZnQscmlnaHQ6YS5yaWdodC5sZWZ0LHJhbmdlOltNKGEubGVmdCkseihhLnJpZ2h0LmxlZnQpXX0pLHJpZ2h0OmEucmlnaHQucmlnaHQscmFuZ2U6W00oYSkseihhKV19KTphfXZhciBqZT1QcztmdW5jdGlvbiBJcyhhKXtsZXR7ZmlsZXBhdGg6dX09YTtpZih1KXtpZih1PXUudG9Mb3dlckNhc2UoKSx1LmVuZHNXaXRoKFwiLmNqc1wiKSlyZXR1cm5cInNjcmlwdFwiO2lmKHUuZW5kc1dpdGgoXCIubWpzXCIpKXJldHVyblwibW9kdWxlXCJ9fXZhciBNZT1Jczt2YXIgT3M9e2VjbWFWZXJzaW9uOlwibGF0ZXN0XCIsYWxsb3dSZXR1cm5PdXRzaWRlRnVuY3Rpb246ITAsYWxsb3dTdXBlck91dHNpZGVNZXRob2Q6ITAsbG9jYXRpb25zOiEwLHJhbmdlczohMH07ZnVuY3Rpb24gQnMoYSl7bGV0e21lc3NhZ2U6dSxsb2M6Y309YTtpZighYylyZXR1cm4gYTtsZXR7bGluZTpoLGNvbHVtbjpsfT1jO3JldHVybiBSZSh1LnJlcGxhY2UoLyBcXChcXGQrOlxcZCtcXCkkLyxcIlwiKSx7bG9jOntzdGFydDp7bGluZTpoLGNvbHVtbjpsKzF9fSxjYXVzZTphfSl9dmFyIG90LERzPSgpPT57aWYoIW90KXtsZXR7UGFyc2VyOmF9PWtlKCksdT1udCgpO290PWEuZXh0ZW5kKHUoKSl9cmV0dXJuIG90fTtmdW5jdGlvbiBGcyhhLHUpe2xldCBjPURzKCksaD1bXSxsPVtdLGY9Yy5wYXJzZShhLHsuLi5Pcyxzb3VyY2VUeXBlOnUsYWxsb3dJbXBvcnRFeHBvcnRFdmVyeXdoZXJlOnU9PT1cIm1vZHVsZVwiLG9uQ29tbWVudDpoLG9uVG9rZW46bH0pO3JldHVybiBmLmNvbW1lbnRzPWgsZi50b2tlbnM9bCxmfWZ1bmN0aW9uIGpzKGEsdT17fSl7bGV0IGM9TWUodSksaD0oYz9bY106W1wibW9kdWxlXCIsXCJzY3JpcHRcIl0pLm1hcChmPT4oKT0+RnMoYSxmKSksbDt0cnl7bD1PZShoKX1jYXRjaCh7ZXJyb3JzOltmXX0pe3Rocm93IEJzKGYpfXJldHVybiBqZShsLHt0ZXh0OmF9KX12YXIgeGk9RGUoanMpO3ZhciBlcj17ZWNtYVZlcnNpb246XCJsYXRlc3RcIixyYW5nZTohMCxsb2M6ITAsY29tbWVudDohMCx0b2tlbnM6ITAsc291cmNlVHlwZTpcIm1vZHVsZVwiLGVjbWFGZWF0dXJlczp7anN4OiEwLGdsb2JhbFJldHVybjohMCxpbXBsaWVkU3RyaWN0OiExfX07ZnVuY3Rpb24gdHIoYSl7bGV0e21lc3NhZ2U6dSxsaW5lTnVtYmVyOmMsY29sdW1uOmh9PWE7cmV0dXJuIHR5cGVvZiBjIT1cIm51bWJlclwiP2E6UmUodSx7bG9jOntzdGFydDp7bGluZTpjLGNvbHVtbjpofX0sY2F1c2U6YX0pfWZ1bmN0aW9uIGlyKGEsdT17fSl7bGV0e3BhcnNlOmN9PXZpKCksaD1NZSh1KSxsPShoP1toXTpbXCJtb2R1bGVcIixcInNjcmlwdFwiXSkubWFwKHk9PigpPT5jKGEsey4uLmVyLHNvdXJjZVR5cGU6eX0pKSxmO3RyeXtmPU9lKGwpfWNhdGNoKHtlcnJvcnM6W3ldfSl7dGhyb3cgdHIoeSl9cmV0dXJuIGplKGYse3RleHQ6YX0pfXZhciBiaT1EZShpcik7dmFyIHNyPXthY29ybjp4aSxlc3ByZWU6Yml9O3ZhciBmYT1jdDtleHBvcnR7ZmEgYXMgZGVmYXVsdCxzciBhcyBwYXJzZXJzfTtcbiIsICJ2YXIgS3Q9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBaZT0ocyxlKT0+e2Zvcih2YXIgdCBpbiBlKUt0KHMsdCx7Z2V0OmVbdF0sZW51bWVyYWJsZTohMH0pfTt2YXIgemU9e307WmUoemUse3BhcnNlcnM6KCk9PmplfSk7dmFyIGplPXt9O1plKGplLHtfX25nX2FjdGlvbjooKT0+SXIsX19uZ19iaW5kaW5nOigpPT5ScixfX25nX2RpcmVjdGl2ZTooKT0+THIsX19uZ19pbnRlcnBvbGF0aW9uOigpPT5Qcn0pO3ZhciBtZT1gXG5gLEplPVwiXFxyXCIsWWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUpe3RoaXMubGVuZ3RoPWUubGVuZ3RoO2Zvcih2YXIgdD1bMF0scj0wO3I8ZS5sZW5ndGg7KXN3aXRjaChlW3JdKXtjYXNlIG1lOnIrPW1lLmxlbmd0aCx0LnB1c2gocik7YnJlYWs7Y2FzZSBKZTpyKz1KZS5sZW5ndGgsZVtyXT09PW1lJiYocis9bWUubGVuZ3RoKSx0LnB1c2gocik7YnJlYWs7ZGVmYXVsdDpyKys7YnJlYWt9dGhpcy5vZmZzZXRzPXR9cmV0dXJuIHMucHJvdG90eXBlLmxvY2F0aW9uRm9ySW5kZXg9ZnVuY3Rpb24oZSl7aWYoZTwwfHxlPnRoaXMubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgdD0wLHI9dGhpcy5vZmZzZXRzO3JbdCsxXTw9ZTspdCsrO3ZhciBuPWUtclt0XTtyZXR1cm57bGluZTp0LGNvbHVtbjpufX0scy5wcm90b3R5cGUuaW5kZXhGb3JMb2NhdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1lLmxpbmUscj1lLmNvbHVtbjtyZXR1cm4gdDwwfHx0Pj10aGlzLm9mZnNldHMubGVuZ3RofHxyPDB8fHI+dGhpcy5sZW5ndGhPZkxpbmUodCk/bnVsbDp0aGlzLm9mZnNldHNbdF0rcn0scy5wcm90b3R5cGUubGVuZ3RoT2ZMaW5lPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMub2Zmc2V0c1tlXSxyPWU9PT10aGlzLm9mZnNldHMubGVuZ3RoLTE/dGhpcy5sZW5ndGg6dGhpcy5vZmZzZXRzW2UrMV07cmV0dXJuIHItdH0sc30oKTt2YXIgbGU9Y2xhc3N7dGV4dDtsb2NhdG9yO2NvbnN0cnVjdG9yKGUpe3RoaXMudGV4dD1lLHRoaXMubG9jYXRvcj1uZXcgUmUodGhpcy50ZXh0KX19LFJlPWNsYXNze19saW5lc0FuZENvbHVtbnM7Y29uc3RydWN0b3IoZSl7dGhpcy5fbGluZXNBbmRDb2x1bW5zPW5ldyBZZShlKX1sb2NhdGlvbkZvckluZGV4KGUpe2xldHtsaW5lOnQsY29sdW1uOnJ9PXRoaXMuX2xpbmVzQW5kQ29sdW1ucy5sb2NhdGlvbkZvckluZGV4KGUpO3JldHVybntsaW5lOnQrMSxjb2x1bW46cixpbmRleDplfX19O3ZhciBHPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuaW5wdXQ9dCx0aGlzLmVyckxvY2F0aW9uPXIsdGhpcy5jdHhMb2NhdGlvbj1uLHRoaXMubWVzc2FnZT1gUGFyc2VyIEVycm9yOiAke2V9ICR7cn0gWyR7dH1dIGluICR7bn1gfX0sUD1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10fXRvQWJzb2x1dGUoZSl7cmV0dXJuIG5ldyBJKGUrdGhpcy5zdGFydCxlK3RoaXMuZW5kKX19LFM9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnNwYW49ZSx0aGlzLnNvdXJjZVNwYW49dH10b1N0cmluZygpe3JldHVyblwiQVNUXCJ9fSxEPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0KSx0aGlzLm5hbWVTcGFuPXJ9fSxFPWNsYXNzIGV4dGVuZHMgU3t2aXNpdChlLHQ9bnVsbCl7fX0sTD1jbGFzcyBleHRlbmRzIFN7dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0SW1wbGljaXRSZWNlaXZlcih0aGlzLHQpfX0sU2U9Y2xhc3MgZXh0ZW5kcyBMe3Zpc2l0KGUsdD1udWxsKXt2YXIgcjtyZXR1cm4ocj1lLnZpc2l0VGhpc1JlY2VpdmVyKT09bnVsbD92b2lkIDA6ci5jYWxsKGUsdGhpcyx0KX19LFY9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQpLHRoaXMuZXhwcmVzc2lvbnM9cn12aXNpdChlLHQ9bnVsbCl7cmV0dXJuIGUudmlzaXRDaGFpbih0aGlzLHQpfX0sVz1jbGFzcyBleHRlbmRzIFN7Y29uc3RydWN0b3IoZSx0LHIsbixpKXtzdXBlcihlLHQpLHRoaXMuY29uZGl0aW9uPXIsdGhpcy50cnVlRXhwPW4sdGhpcy5mYWxzZUV4cD1pfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdENvbmRpdGlvbmFsKHRoaXMsdCl9fSxCPWNsYXNzIGV4dGVuZHMgRHtjb25zdHJ1Y3RvcihlLHQscixuLGkpe3N1cGVyKGUsdCxyKSx0aGlzLnJlY2VpdmVyPW4sdGhpcy5uYW1lPWl9dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0UHJvcGVydHlSZWFkKHRoaXMsdCl9fSxRPWNsYXNzIGV4dGVuZHMgRHtjb25zdHJ1Y3RvcihlLHQscixuLGksYSl7c3VwZXIoZSx0LHIpLHRoaXMucmVjZWl2ZXI9bix0aGlzLm5hbWU9aSx0aGlzLnZhbHVlPWF9dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0UHJvcGVydHlXcml0ZSh0aGlzLHQpfX0sSD1jbGFzcyBleHRlbmRzIER7Y29uc3RydWN0b3IoZSx0LHIsbixpKXtzdXBlcihlLHQsciksdGhpcy5yZWNlaXZlcj1uLHRoaXMubmFtZT1pfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdFNhZmVQcm9wZXJ0eVJlYWQodGhpcyx0KX19LGo9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyLG4pe3N1cGVyKGUsdCksdGhpcy5yZWNlaXZlcj1yLHRoaXMua2V5PW59dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0S2V5ZWRSZWFkKHRoaXMsdCl9fSx6PWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlLHQscixuKXtzdXBlcihlLHQpLHRoaXMucmVjZWl2ZXI9cix0aGlzLmtleT1ufXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdFNhZmVLZXllZFJlYWQodGhpcyx0KX19LHE9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyLG4saSl7c3VwZXIoZSx0KSx0aGlzLnJlY2VpdmVyPXIsdGhpcy5rZXk9bix0aGlzLnZhbHVlPWl9dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0S2V5ZWRXcml0ZSh0aGlzLHQpfX0sWD1jbGFzcyBleHRlbmRzIER7Y29uc3RydWN0b3IoZSx0LHIsbixpLGEpe3N1cGVyKGUsdCxhKSx0aGlzLmV4cD1yLHRoaXMubmFtZT1uLHRoaXMuYXJncz1pfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdFBpcGUodGhpcyx0KX19LEE9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQpLHRoaXMudmFsdWU9cn12aXNpdChlLHQ9bnVsbCl7cmV0dXJuIGUudmlzaXRMaXRlcmFsUHJpbWl0aXZlKHRoaXMsdCl9fSxaPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0KSx0aGlzLmV4cHJlc3Npb25zPXJ9dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0TGl0ZXJhbEFycmF5KHRoaXMsdCl9fSxKPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlLHQscixuKXtzdXBlcihlLHQpLHRoaXMua2V5cz1yLHRoaXMudmFsdWVzPW59dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0TGl0ZXJhbE1hcCh0aGlzLHQpfX0sd2U9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyLG4pe3N1cGVyKGUsdCksdGhpcy5zdHJpbmdzPXIsdGhpcy5leHByZXNzaW9ucz1ufXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdEludGVycG9sYXRpb24odGhpcyx0KX19LCQ9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyLG4saSl7c3VwZXIoZSx0KSx0aGlzLm9wZXJhdGlvbj1yLHRoaXMubGVmdD1uLHRoaXMucmlnaHQ9aX12aXNpdChlLHQ9bnVsbCl7cmV0dXJuIGUudmlzaXRCaW5hcnkodGhpcyx0KX19LEs9Y2xhc3MgcyBleHRlbmRzICR7c3RhdGljIGNyZWF0ZU1pbnVzKGUsdCxyKXtyZXR1cm4gbmV3IHMoZSx0LFwiLVwiLHIsXCItXCIsbmV3IEEoZSx0LDApLHIpfXN0YXRpYyBjcmVhdGVQbHVzKGUsdCxyKXtyZXR1cm4gbmV3IHMoZSx0LFwiK1wiLHIsXCItXCIscixuZXcgQShlLHQsMCkpfWNvbnN0cnVjdG9yKGUsdCxyLG4saSxhLGgpe3N1cGVyKGUsdCxpLGEsaCksdGhpcy5vcGVyYXRvcj1yLHRoaXMuZXhwcj1uLHRoaXMubGVmdD1udWxsLHRoaXMucmlnaHQ9bnVsbCx0aGlzLm9wZXJhdGlvbj1udWxsfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdFVuYXJ5IT09dm9pZCAwP2UudmlzaXRVbmFyeSh0aGlzLHQpOmUudmlzaXRCaW5hcnkodGhpcyx0KX19LFk9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQpLHRoaXMuZXhwcmVzc2lvbj1yfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdFByZWZpeE5vdCh0aGlzLHQpfX0sZWU9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcihlLHQpLHRoaXMuZXhwcmVzc2lvbj1yfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdE5vbk51bGxBc3NlcnQodGhpcyx0KX19LHRlPWNsYXNzIGV4dGVuZHMgU3tjb25zdHJ1Y3RvcihlLHQscixuLGkpe3N1cGVyKGUsdCksdGhpcy5yZWNlaXZlcj1yLHRoaXMuYXJncz1uLHRoaXMuYXJndW1lbnRTcGFuPWl9dmlzaXQoZSx0PW51bGwpe3JldHVybiBlLnZpc2l0Q2FsbCh0aGlzLHQpfX0scmU9Y2xhc3MgZXh0ZW5kcyBTe2NvbnN0cnVjdG9yKGUsdCxyLG4saSl7c3VwZXIoZSx0KSx0aGlzLnJlY2VpdmVyPXIsdGhpcy5hcmdzPW4sdGhpcy5hcmd1bWVudFNwYW49aX12aXNpdChlLHQ9bnVsbCl7cmV0dXJuIGUudmlzaXRTYWZlQ2FsbCh0aGlzLHQpfX0sST1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10fX0sUj1jbGFzcyBleHRlbmRzIFN7Y29uc3RydWN0b3IoZSx0LHIsbixpKXtzdXBlcihuZXcgUCgwLHQ9PT1udWxsPzA6dC5sZW5ndGgpLG5ldyBJKG4sdD09PW51bGw/bjpuK3QubGVuZ3RoKSksdGhpcy5hc3Q9ZSx0aGlzLnNvdXJjZT10LHRoaXMubG9jYXRpb249cix0aGlzLmVycm9ycz1pfXZpc2l0KGUsdD1udWxsKXtyZXR1cm4gZS52aXNpdEFTVFdpdGhTb3VyY2U/ZS52aXNpdEFTVFdpdGhTb3VyY2UodGhpcyx0KTp0aGlzLmFzdC52aXNpdChlLHQpfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5zb3VyY2V9IGluICR7dGhpcy5sb2NhdGlvbn1gfX0sVD1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5zb3VyY2VTcGFuPWUsdGhpcy5rZXk9dCx0aGlzLnZhbHVlPXJ9fSxzZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5zb3VyY2VTcGFuPWUsdGhpcy5rZXk9dCx0aGlzLnZhbHVlPXJ9fSx5ZT1jbGFzc3t2aXNpdChlLHQpe2UudmlzaXQodGhpcyx0KX12aXNpdFVuYXJ5KGUsdCl7dGhpcy52aXNpdChlLmV4cHIsdCl9dmlzaXRCaW5hcnkoZSx0KXt0aGlzLnZpc2l0KGUubGVmdCx0KSx0aGlzLnZpc2l0KGUucmlnaHQsdCl9dmlzaXRDaGFpbihlLHQpe3RoaXMudmlzaXRBbGwoZS5leHByZXNzaW9ucyx0KX12aXNpdENvbmRpdGlvbmFsKGUsdCl7dGhpcy52aXNpdChlLmNvbmRpdGlvbix0KSx0aGlzLnZpc2l0KGUudHJ1ZUV4cCx0KSx0aGlzLnZpc2l0KGUuZmFsc2VFeHAsdCl9dmlzaXRQaXBlKGUsdCl7dGhpcy52aXNpdChlLmV4cCx0KSx0aGlzLnZpc2l0QWxsKGUuYXJncyx0KX12aXNpdEltcGxpY2l0UmVjZWl2ZXIoZSx0KXt9dmlzaXRUaGlzUmVjZWl2ZXIoZSx0KXt9dmlzaXRJbnRlcnBvbGF0aW9uKGUsdCl7dGhpcy52aXNpdEFsbChlLmV4cHJlc3Npb25zLHQpfXZpc2l0S2V5ZWRSZWFkKGUsdCl7dGhpcy52aXNpdChlLnJlY2VpdmVyLHQpLHRoaXMudmlzaXQoZS5rZXksdCl9dmlzaXRLZXllZFdyaXRlKGUsdCl7dGhpcy52aXNpdChlLnJlY2VpdmVyLHQpLHRoaXMudmlzaXQoZS5rZXksdCksdGhpcy52aXNpdChlLnZhbHVlLHQpfXZpc2l0TGl0ZXJhbEFycmF5KGUsdCl7dGhpcy52aXNpdEFsbChlLmV4cHJlc3Npb25zLHQpfXZpc2l0TGl0ZXJhbE1hcChlLHQpe3RoaXMudmlzaXRBbGwoZS52YWx1ZXMsdCl9dmlzaXRMaXRlcmFsUHJpbWl0aXZlKGUsdCl7fXZpc2l0UHJlZml4Tm90KGUsdCl7dGhpcy52aXNpdChlLmV4cHJlc3Npb24sdCl9dmlzaXROb25OdWxsQXNzZXJ0KGUsdCl7dGhpcy52aXNpdChlLmV4cHJlc3Npb24sdCl9dmlzaXRQcm9wZXJ0eVJlYWQoZSx0KXt0aGlzLnZpc2l0KGUucmVjZWl2ZXIsdCl9dmlzaXRQcm9wZXJ0eVdyaXRlKGUsdCl7dGhpcy52aXNpdChlLnJlY2VpdmVyLHQpLHRoaXMudmlzaXQoZS52YWx1ZSx0KX12aXNpdFNhZmVQcm9wZXJ0eVJlYWQoZSx0KXt0aGlzLnZpc2l0KGUucmVjZWl2ZXIsdCl9dmlzaXRTYWZlS2V5ZWRSZWFkKGUsdCl7dGhpcy52aXNpdChlLnJlY2VpdmVyLHQpLHRoaXMudmlzaXQoZS5rZXksdCl9dmlzaXRDYWxsKGUsdCl7dGhpcy52aXNpdChlLnJlY2VpdmVyLHQpLHRoaXMudmlzaXRBbGwoZS5hcmdzLHQpfXZpc2l0U2FmZUNhbGwoZSx0KXt0aGlzLnZpc2l0KGUucmVjZWl2ZXIsdCksdGhpcy52aXNpdEFsbChlLmFyZ3MsdCl9dmlzaXRBbGwoZSx0KXtmb3IobGV0IHIgb2YgZSl0aGlzLnZpc2l0KHIsdCl9fTt2YXIgZXQ7KGZ1bmN0aW9uKHMpe3Nbcy5ERUZBVUxUPTBdPVwiREVGQVVMVFwiLHNbcy5MSVRFUkFMX0FUVFI9MV09XCJMSVRFUkFMX0FUVFJcIixzW3MuQU5JTUFUSU9OPTJdPVwiQU5JTUFUSU9OXCJ9KShldHx8KGV0PXt9KSk7ZnVuY3Rpb24gdHQocyl7cmV0dXJuIHM+PTkmJnM8PTMyfHxzPT0xNjB9ZnVuY3Rpb24gYihzKXtyZXR1cm4gNDg8PXMmJnM8PTU3fWZ1bmN0aW9uIHJ0KHMpe3JldHVybiBzPj05NyYmczw9MTIyfHxzPj02NSYmczw9OTB9ZnVuY3Rpb24gUGUocyl7cmV0dXJuIHM9PT0zOXx8cz09PTM0fHxzPT09OTZ9dmFyIGQ7KGZ1bmN0aW9uKHMpe3Nbcy5DaGFyYWN0ZXI9MF09XCJDaGFyYWN0ZXJcIixzW3MuSWRlbnRpZmllcj0xXT1cIklkZW50aWZpZXJcIixzW3MuUHJpdmF0ZUlkZW50aWZpZXI9Ml09XCJQcml2YXRlSWRlbnRpZmllclwiLHNbcy5LZXl3b3JkPTNdPVwiS2V5d29yZFwiLHNbcy5TdHJpbmc9NF09XCJTdHJpbmdcIixzW3MuT3BlcmF0b3I9NV09XCJPcGVyYXRvclwiLHNbcy5OdW1iZXI9Nl09XCJOdW1iZXJcIixzW3MuRXJyb3I9N109XCJFcnJvclwifSkoZHx8KGQ9e30pKTt2YXIgdXI9W1widmFyXCIsXCJsZXRcIixcImFzXCIsXCJudWxsXCIsXCJ1bmRlZmluZWRcIixcInRydWVcIixcImZhbHNlXCIsXCJpZlwiLFwiZWxzZVwiLFwidGhpc1wiXSx4ZT1jbGFzc3t0b2tlbml6ZShlKXtsZXQgdD1uZXcgQmUoZSkscj1bXSxuPXQuc2NhblRva2VuKCk7Zm9yKDtuIT1udWxsOylyLnB1c2gobiksbj10LnNjYW5Ub2tlbigpO3JldHVybiByfX0sTj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscixuLGkpe3RoaXMuaW5kZXg9ZSx0aGlzLmVuZD10LHRoaXMudHlwZT1yLHRoaXMubnVtVmFsdWU9bix0aGlzLnN0clZhbHVlPWl9aXNDaGFyYWN0ZXIoZSl7cmV0dXJuIHRoaXMudHlwZT09ZC5DaGFyYWN0ZXImJnRoaXMubnVtVmFsdWU9PWV9aXNOdW1iZXIoKXtyZXR1cm4gdGhpcy50eXBlPT1kLk51bWJlcn1pc1N0cmluZygpe3JldHVybiB0aGlzLnR5cGU9PWQuU3RyaW5nfWlzT3BlcmF0b3IoZSl7cmV0dXJuIHRoaXMudHlwZT09ZC5PcGVyYXRvciYmdGhpcy5zdHJWYWx1ZT09ZX1pc0lkZW50aWZpZXIoKXtyZXR1cm4gdGhpcy50eXBlPT1kLklkZW50aWZpZXJ9aXNQcml2YXRlSWRlbnRpZmllcigpe3JldHVybiB0aGlzLnR5cGU9PWQuUHJpdmF0ZUlkZW50aWZpZXJ9aXNLZXl3b3JkKCl7cmV0dXJuIHRoaXMudHlwZT09ZC5LZXl3b3JkfWlzS2V5d29yZExldCgpe3JldHVybiB0aGlzLnR5cGU9PWQuS2V5d29yZCYmdGhpcy5zdHJWYWx1ZT09XCJsZXRcIn1pc0tleXdvcmRBcygpe3JldHVybiB0aGlzLnR5cGU9PWQuS2V5d29yZCYmdGhpcy5zdHJWYWx1ZT09XCJhc1wifWlzS2V5d29yZE51bGwoKXtyZXR1cm4gdGhpcy50eXBlPT1kLktleXdvcmQmJnRoaXMuc3RyVmFsdWU9PVwibnVsbFwifWlzS2V5d29yZFVuZGVmaW5lZCgpe3JldHVybiB0aGlzLnR5cGU9PWQuS2V5d29yZCYmdGhpcy5zdHJWYWx1ZT09XCJ1bmRlZmluZWRcIn1pc0tleXdvcmRUcnVlKCl7cmV0dXJuIHRoaXMudHlwZT09ZC5LZXl3b3JkJiZ0aGlzLnN0clZhbHVlPT1cInRydWVcIn1pc0tleXdvcmRGYWxzZSgpe3JldHVybiB0aGlzLnR5cGU9PWQuS2V5d29yZCYmdGhpcy5zdHJWYWx1ZT09XCJmYWxzZVwifWlzS2V5d29yZFRoaXMoKXtyZXR1cm4gdGhpcy50eXBlPT1kLktleXdvcmQmJnRoaXMuc3RyVmFsdWU9PVwidGhpc1wifWlzRXJyb3IoKXtyZXR1cm4gdGhpcy50eXBlPT1kLkVycm9yfXRvTnVtYmVyKCl7cmV0dXJuIHRoaXMudHlwZT09ZC5OdW1iZXI/dGhpcy5udW1WYWx1ZTotMX10b1N0cmluZygpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgZC5DaGFyYWN0ZXI6Y2FzZSBkLklkZW50aWZpZXI6Y2FzZSBkLktleXdvcmQ6Y2FzZSBkLk9wZXJhdG9yOmNhc2UgZC5Qcml2YXRlSWRlbnRpZmllcjpjYXNlIGQuU3RyaW5nOmNhc2UgZC5FcnJvcjpyZXR1cm4gdGhpcy5zdHJWYWx1ZTtjYXNlIGQuTnVtYmVyOnJldHVybiB0aGlzLm51bVZhbHVlLnRvU3RyaW5nKCk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19fTtmdW5jdGlvbiBvdChzLGUsdCl7cmV0dXJuIG5ldyBOKHMsZSxkLkNoYXJhY3Rlcix0LFN0cmluZy5mcm9tQ2hhckNvZGUodCkpfWZ1bmN0aW9uIGxyKHMsZSx0KXtyZXR1cm4gbmV3IE4ocyxlLGQuSWRlbnRpZmllciwwLHQpfWZ1bmN0aW9uIHhyKHMsZSx0KXtyZXR1cm4gbmV3IE4ocyxlLGQuUHJpdmF0ZUlkZW50aWZpZXIsMCx0KX1mdW5jdGlvbiBmcihzLGUsdCl7cmV0dXJuIG5ldyBOKHMsZSxkLktleXdvcmQsMCx0KX1mdW5jdGlvbiBiZShzLGUsdCl7cmV0dXJuIG5ldyBOKHMsZSxkLk9wZXJhdG9yLDAsdCl9ZnVuY3Rpb24gZHIocyxlLHQpe3JldHVybiBuZXcgTihzLGUsZC5TdHJpbmcsMCx0KX1mdW5jdGlvbiB2cihzLGUsdCl7cmV0dXJuIG5ldyBOKHMsZSxkLk51bWJlcix0LFwiXCIpfWZ1bmN0aW9uIGdyKHMsZSx0KXtyZXR1cm4gbmV3IE4ocyxlLGQuRXJyb3IsMCx0KX12YXIgQ2U9bmV3IE4oLTEsLTEsZC5DaGFyYWN0ZXIsMCxcIlwiKSxCZT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmlucHV0PWUsdGhpcy5wZWVrPTAsdGhpcy5pbmRleD0tMSx0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLmFkdmFuY2UoKX1hZHZhbmNlKCl7dGhpcy5wZWVrPSsrdGhpcy5pbmRleD49dGhpcy5sZW5ndGg/MDp0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5pbmRleCl9c2NhblRva2VuKCl7bGV0IGU9dGhpcy5pbnB1dCx0PXRoaXMubGVuZ3RoLHI9dGhpcy5wZWVrLG49dGhpcy5pbmRleDtmb3IoO3I8PTMyOylpZigrK24+PXQpe3I9MDticmVha31lbHNlIHI9ZS5jaGFyQ29kZUF0KG4pO2lmKHRoaXMucGVlaz1yLHRoaXMuaW5kZXg9bixuPj10KXJldHVybiBudWxsO2lmKGN0KHIpKXJldHVybiB0aGlzLnNjYW5JZGVudGlmaWVyKCk7aWYoYihyKSlyZXR1cm4gdGhpcy5zY2FuTnVtYmVyKG4pO2xldCBpPW47c3dpdGNoKHIpe2Nhc2UgNDY6cmV0dXJuIHRoaXMuYWR2YW5jZSgpLGIodGhpcy5wZWVrKT90aGlzLnNjYW5OdW1iZXIoaSk6b3QoaSx0aGlzLmluZGV4LDQ2KTtjYXNlIDQwOmNhc2UgNDE6Y2FzZSAxMjM6Y2FzZSAxMjU6Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNDQ6Y2FzZSA1ODpjYXNlIDU5OnJldHVybiB0aGlzLnNjYW5DaGFyYWN0ZXIoaSxyKTtjYXNlIDM5OmNhc2UgMzQ6cmV0dXJuIHRoaXMuc2NhblN0cmluZygpO2Nhc2UgMzU6cmV0dXJuIHRoaXMuc2NhblByaXZhdGVJZGVudGlmaWVyKCk7Y2FzZSA0MzpjYXNlIDQ1OmNhc2UgNDI6Y2FzZSA0NzpjYXNlIDM3OmNhc2UgOTQ6cmV0dXJuIHRoaXMuc2Nhbk9wZXJhdG9yKGksU3RyaW5nLmZyb21DaGFyQ29kZShyKSk7Y2FzZSA2MzpyZXR1cm4gdGhpcy5zY2FuUXVlc3Rpb24oaSk7Y2FzZSA2MDpjYXNlIDYyOnJldHVybiB0aGlzLnNjYW5Db21wbGV4T3BlcmF0b3IoaSxTdHJpbmcuZnJvbUNoYXJDb2RlKHIpLDYxLFwiPVwiKTtjYXNlIDMzOmNhc2UgNjE6cmV0dXJuIHRoaXMuc2NhbkNvbXBsZXhPcGVyYXRvcihpLFN0cmluZy5mcm9tQ2hhckNvZGUociksNjEsXCI9XCIsNjEsXCI9XCIpO2Nhc2UgMzg6cmV0dXJuIHRoaXMuc2NhbkNvbXBsZXhPcGVyYXRvcihpLFwiJlwiLDM4LFwiJlwiKTtjYXNlIDEyNDpyZXR1cm4gdGhpcy5zY2FuQ29tcGxleE9wZXJhdG9yKGksXCJ8XCIsMTI0LFwifFwiKTtjYXNlIDE2MDpmb3IoO3R0KHRoaXMucGVlayk7KXRoaXMuYWR2YW5jZSgpO3JldHVybiB0aGlzLnNjYW5Ub2tlbigpfXJldHVybiB0aGlzLmFkdmFuY2UoKSx0aGlzLmVycm9yKGBVbmV4cGVjdGVkIGNoYXJhY3RlciBbJHtTdHJpbmcuZnJvbUNoYXJDb2RlKHIpfV1gLDApfXNjYW5DaGFyYWN0ZXIoZSx0KXtyZXR1cm4gdGhpcy5hZHZhbmNlKCksb3QoZSx0aGlzLmluZGV4LHQpfXNjYW5PcGVyYXRvcihlLHQpe3JldHVybiB0aGlzLmFkdmFuY2UoKSxiZShlLHRoaXMuaW5kZXgsdCl9c2NhbkNvbXBsZXhPcGVyYXRvcihlLHQscixuLGksYSl7dGhpcy5hZHZhbmNlKCk7bGV0IGg9dDtyZXR1cm4gdGhpcy5wZWVrPT1yJiYodGhpcy5hZHZhbmNlKCksaCs9biksaSE9bnVsbCYmdGhpcy5wZWVrPT1pJiYodGhpcy5hZHZhbmNlKCksaCs9YSksYmUoZSx0aGlzLmluZGV4LGgpfXNjYW5JZGVudGlmaWVyKCl7bGV0IGU9dGhpcy5pbmRleDtmb3IodGhpcy5hZHZhbmNlKCk7aHQodGhpcy5wZWVrKTspdGhpcy5hZHZhbmNlKCk7bGV0IHQ9dGhpcy5pbnB1dC5zdWJzdHJpbmcoZSx0aGlzLmluZGV4KTtyZXR1cm4gdXIuaW5kZXhPZih0KT4tMT9mcihlLHRoaXMuaW5kZXgsdCk6bHIoZSx0aGlzLmluZGV4LHQpfXNjYW5Qcml2YXRlSWRlbnRpZmllcigpe2xldCBlPXRoaXMuaW5kZXg7aWYodGhpcy5hZHZhbmNlKCksIWN0KHRoaXMucGVlaykpcmV0dXJuIHRoaXMuZXJyb3IoXCJJbnZhbGlkIGNoYXJhY3RlciBbI11cIiwtMSk7Zm9yKDtodCh0aGlzLnBlZWspOyl0aGlzLmFkdmFuY2UoKTtsZXQgdD10aGlzLmlucHV0LnN1YnN0cmluZyhlLHRoaXMuaW5kZXgpO3JldHVybiB4cihlLHRoaXMuaW5kZXgsdCl9c2Nhbk51bWJlcihlKXtsZXQgdD10aGlzLmluZGV4PT09ZSxyPSExO2Zvcih0aGlzLmFkdmFuY2UoKTs7KXtpZighYih0aGlzLnBlZWspKWlmKHRoaXMucGVlaz09PTk1KXtpZighYih0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5pbmRleC0xKSl8fCFiKHRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLmluZGV4KzEpKSlyZXR1cm4gdGhpcy5lcnJvcihcIkludmFsaWQgbnVtZXJpYyBzZXBhcmF0b3JcIiwwKTtyPSEwfWVsc2UgaWYodGhpcy5wZWVrPT09NDYpdD0hMTtlbHNlIGlmKG1yKHRoaXMucGVlaykpe2lmKHRoaXMuYWR2YW5jZSgpLFNyKHRoaXMucGVlaykmJnRoaXMuYWR2YW5jZSgpLCFiKHRoaXMucGVlaykpcmV0dXJuIHRoaXMuZXJyb3IoXCJJbnZhbGlkIGV4cG9uZW50XCIsLTEpO3Q9ITF9ZWxzZSBicmVhazt0aGlzLmFkdmFuY2UoKX1sZXQgbj10aGlzLmlucHV0LnN1YnN0cmluZyhlLHRoaXMuaW5kZXgpO3ImJihuPW4ucmVwbGFjZSgvXy9nLFwiXCIpKTtsZXQgaT10P3lyKG4pOnBhcnNlRmxvYXQobik7cmV0dXJuIHZyKGUsdGhpcy5pbmRleCxpKX1zY2FuU3RyaW5nKCl7bGV0IGU9dGhpcy5pbmRleCx0PXRoaXMucGVlazt0aGlzLmFkdmFuY2UoKTtsZXQgcj1cIlwiLG49dGhpcy5pbmRleCxpPXRoaXMuaW5wdXQ7Zm9yKDt0aGlzLnBlZWshPXQ7KWlmKHRoaXMucGVlaz09OTIpe3IrPWkuc3Vic3RyaW5nKG4sdGhpcy5pbmRleCk7bGV0IGg7aWYodGhpcy5hZHZhbmNlKCksdGhpcy5wZWVrPT0xMTcpe2xldCB2PWkuc3Vic3RyaW5nKHRoaXMuaW5kZXgrMSx0aGlzLmluZGV4KzUpO2lmKC9eWzAtOWEtZl0rJC9pLnRlc3QodikpaD1wYXJzZUludCh2LDE2KTtlbHNlIHJldHVybiB0aGlzLmVycm9yKGBJbnZhbGlkIHVuaWNvZGUgZXNjYXBlIFtcXFxcdSR7dn1dYCwwKTtmb3IobGV0IGY9MDtmPDU7ZisrKXRoaXMuYWR2YW5jZSgpfWVsc2UgaD13cih0aGlzLnBlZWspLHRoaXMuYWR2YW5jZSgpO3IrPVN0cmluZy5mcm9tQ2hhckNvZGUoaCksbj10aGlzLmluZGV4fWVsc2V7aWYodGhpcy5wZWVrPT0wKXJldHVybiB0aGlzLmVycm9yKFwiVW50ZXJtaW5hdGVkIHF1b3RlXCIsMCk7dGhpcy5hZHZhbmNlKCl9bGV0IGE9aS5zdWJzdHJpbmcobix0aGlzLmluZGV4KTtyZXR1cm4gdGhpcy5hZHZhbmNlKCksZHIoZSx0aGlzLmluZGV4LHIrYSl9c2NhblF1ZXN0aW9uKGUpe3RoaXMuYWR2YW5jZSgpO2xldCB0PVwiP1wiO3JldHVybih0aGlzLnBlZWs9PT02M3x8dGhpcy5wZWVrPT09NDYpJiYodCs9dGhpcy5wZWVrPT09NDY/XCIuXCI6XCI/XCIsdGhpcy5hZHZhbmNlKCkpLGJlKGUsdGhpcy5pbmRleCx0KX1lcnJvcihlLHQpe2xldCByPXRoaXMuaW5kZXgrdDtyZXR1cm4gZ3Iocix0aGlzLmluZGV4LGBMZXhlciBFcnJvcjogJHtlfSBhdCBjb2x1bW4gJHtyfSBpbiBleHByZXNzaW9uIFske3RoaXMuaW5wdXR9XWApfX07ZnVuY3Rpb24gY3Qocyl7cmV0dXJuIDk3PD1zJiZzPD0xMjJ8fDY1PD1zJiZzPD05MHx8cz09OTV8fHM9PTM2fWZ1bmN0aW9uIGh0KHMpe3JldHVybiBydChzKXx8YihzKXx8cz09OTV8fHM9PTM2fWZ1bmN0aW9uIG1yKHMpe3JldHVybiBzPT0xMDF8fHM9PTY5fWZ1bmN0aW9uIFNyKHMpe3JldHVybiBzPT00NXx8cz09NDN9ZnVuY3Rpb24gd3Iocyl7c3dpdGNoKHMpe2Nhc2UgMTEwOnJldHVybiAxMDtjYXNlIDEwMjpyZXR1cm4gMTI7Y2FzZSAxMTQ6cmV0dXJuIDEzO2Nhc2UgMTE2OnJldHVybiA5O2Nhc2UgMTE4OnJldHVybiAxMTtkZWZhdWx0OnJldHVybiBzfX1mdW5jdGlvbiB5cihzKXtsZXQgZT1wYXJzZUludChzKTtpZihpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGludGVnZXIgbGl0ZXJhbCB3aGVuIHBhcnNpbmcgXCIrcyk7cmV0dXJuIGV9dmFyIEVyPVsvXlxccyokLywvWzw+XS8sL15be31dJC8sLyYoI3xbYS16XSkvaSwvXlxcL1xcLy9dO2Z1bmN0aW9uIHh0KHMsZSl7aWYoZSE9bnVsbCYmIShBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD09MikpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAnJHtzfScgdG8gYmUgYW4gYXJyYXksIFtzdGFydCwgZW5kXS5gKTtpZihlIT1udWxsKXtsZXQgdD1lWzBdLHI9ZVsxXTtFci5mb3JFYWNoKG49PntpZihuLnRlc3QodCl8fG4udGVzdChyKSl0aHJvdyBuZXcgRXJyb3IoYFsnJHt0fScsICcke3J9J10gY29udGFpbnMgdW51c2FibGUgaW50ZXJwb2xhdGlvbiBzeW1ib2wuYCl9KX19dmFyIFRlPWNsYXNzIHN7c3RhdGljIGZyb21BcnJheShlKXtyZXR1cm4gZT8oeHQoXCJpbnRlcnBvbGF0aW9uXCIsZSksbmV3IHMoZVswXSxlWzFdKSk6Rn1jb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD10fX0sRj1uZXcgVGUoXCJ7e1wiLFwifX1cIik7dmFyIF9lPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLnN0cmluZ3M9ZSx0aGlzLmV4cHJlc3Npb25zPXQsdGhpcy5vZmZzZXRzPXJ9fSxNZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy50ZW1wbGF0ZUJpbmRpbmdzPWUsdGhpcy53YXJuaW5ncz10LHRoaXMuZXJyb3JzPXJ9fSx2ZT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLl9sZXhlcj1lLHRoaXMuZXJyb3JzPVtdfXBhcnNlQWN0aW9uKGUsdCxyLG4saT1GKXt0aGlzLl9jaGVja05vSW50ZXJwb2xhdGlvbihlLHIsaSk7bGV0IGE9dGhpcy5fc3RyaXBDb21tZW50cyhlKSxoPXRoaXMuX2xleGVyLnRva2VuaXplKGEpLHY9MTt0JiYodnw9Mik7bGV0IGY9bmV3IFUoZSxyLG4saCx2LHRoaXMuZXJyb3JzLDApLnBhcnNlQ2hhaW4oKTtyZXR1cm4gbmV3IFIoZixlLHIsbix0aGlzLmVycm9ycyl9cGFyc2VCaW5kaW5nKGUsdCxyLG49Ril7bGV0IGk9dGhpcy5fcGFyc2VCaW5kaW5nQXN0KGUsdCxyLG4pO3JldHVybiBuZXcgUihpLGUsdCxyLHRoaXMuZXJyb3JzKX1jaGVja1NpbXBsZUV4cHJlc3Npb24oZSl7bGV0IHQ9bmV3IEZlO3JldHVybiBlLnZpc2l0KHQpLHQuZXJyb3JzfXBhcnNlU2ltcGxlQmluZGluZyhlLHQscixuPUYpe2xldCBpPXRoaXMuX3BhcnNlQmluZGluZ0FzdChlLHQscixuKSxhPXRoaXMuY2hlY2tTaW1wbGVFeHByZXNzaW9uKGkpO3JldHVybiBhLmxlbmd0aD4wJiZ0aGlzLl9yZXBvcnRFcnJvcihgSG9zdCBiaW5kaW5nIGV4cHJlc3Npb24gY2Fubm90IGNvbnRhaW4gJHthLmpvaW4oXCIgXCIpfWAsZSx0KSxuZXcgUihpLGUsdCxyLHRoaXMuZXJyb3JzKX1fcmVwb3J0RXJyb3IoZSx0LHIsbil7dGhpcy5lcnJvcnMucHVzaChuZXcgRyhlLHQscixuKSl9X3BhcnNlQmluZGluZ0FzdChlLHQscixuKXt0aGlzLl9jaGVja05vSW50ZXJwb2xhdGlvbihlLHQsbik7bGV0IGk9dGhpcy5fc3RyaXBDb21tZW50cyhlKSxhPXRoaXMuX2xleGVyLnRva2VuaXplKGkpO3JldHVybiBuZXcgVShlLHQscixhLDAsdGhpcy5lcnJvcnMsMCkucGFyc2VDaGFpbigpfXBhcnNlVGVtcGxhdGVCaW5kaW5ncyhlLHQscixuLGkpe2xldCBhPXRoaXMuX2xleGVyLnRva2VuaXplKHQpO3JldHVybiBuZXcgVSh0LHIsaSxhLDAsdGhpcy5lcnJvcnMsMCkucGFyc2VUZW1wbGF0ZUJpbmRpbmdzKHtzb3VyY2U6ZSxzcGFuOm5ldyBJKG4sbitlLmxlbmd0aCl9KX1wYXJzZUludGVycG9sYXRpb24oZSx0LHIsbixpPUYpe2xldHtzdHJpbmdzOmEsZXhwcmVzc2lvbnM6aCxvZmZzZXRzOnZ9PXRoaXMuc3BsaXRJbnRlcnBvbGF0aW9uKGUsdCxuLGkpO2lmKGgubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtsZXQgZj1bXTtmb3IobGV0IHc9MDt3PGgubGVuZ3RoOysrdyl7bGV0IGs9aFt3XS50ZXh0LEM9dGhpcy5fc3RyaXBDb21tZW50cyhrKSx5PXRoaXMuX2xleGVyLnRva2VuaXplKEMpLG09bmV3IFUoZSx0LHIseSwwLHRoaXMuZXJyb3JzLHZbd10pLnBhcnNlQ2hhaW4oKTtmLnB1c2gobSl9cmV0dXJuIHRoaXMuY3JlYXRlSW50ZXJwb2xhdGlvbkFzdChhLm1hcCh3PT53LnRleHQpLGYsZSx0LHIpfXBhcnNlSW50ZXJwb2xhdGlvbkV4cHJlc3Npb24oZSx0LHIpe2xldCBuPXRoaXMuX3N0cmlwQ29tbWVudHMoZSksaT10aGlzLl9sZXhlci50b2tlbml6ZShuKSxhPW5ldyBVKGUsdCxyLGksMCx0aGlzLmVycm9ycywwKS5wYXJzZUNoYWluKCksaD1bXCJcIixcIlwiXTtyZXR1cm4gdGhpcy5jcmVhdGVJbnRlcnBvbGF0aW9uQXN0KGgsW2FdLGUsdCxyKX1jcmVhdGVJbnRlcnBvbGF0aW9uQXN0KGUsdCxyLG4saSl7bGV0IGE9bmV3IFAoMCxyLmxlbmd0aCksaD1uZXcgd2UoYSxhLnRvQWJzb2x1dGUoaSksZSx0KTtyZXR1cm4gbmV3IFIoaCxyLG4saSx0aGlzLmVycm9ycyl9c3BsaXRJbnRlcnBvbGF0aW9uKGUsdCxyLG49Ril7bGV0IGk9W10sYT1bXSxoPVtdLHY9cj9BcihyKTpudWxsLGY9MCx3PSExLGs9ITEse3N0YXJ0OkMsZW5kOnl9PW47Zm9yKDtmPGUubGVuZ3RoOylpZih3KXtsZXQgbT1mLGM9bStDLmxlbmd0aCxvPXRoaXMuX2dldEludGVycG9sYXRpb25FbmRJbmRleChlLHksYyk7aWYobz09PS0xKXt3PSExLGs9ITA7YnJlYWt9bGV0IHg9byt5Lmxlbmd0aCxwPWUuc3Vic3RyaW5nKGMsbyk7cC50cmltKCkubGVuZ3RoPT09MCYmdGhpcy5fcmVwb3J0RXJyb3IoXCJCbGFuayBleHByZXNzaW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gaW50ZXJwb2xhdGVkIHN0cmluZ3NcIixlLGBhdCBjb2x1bW4gJHtmfSBpbmAsdCksYS5wdXNoKHt0ZXh0OnAsc3RhcnQ6bSxlbmQ6eH0pO2xldCBnPSgodj09bnVsbD92b2lkIDA6di5nZXQobSkpPz9tKStDLmxlbmd0aDtoLnB1c2goZyksZj14LHc9ITF9ZWxzZXtsZXQgbT1mO2Y9ZS5pbmRleE9mKEMsZiksZj09PS0xJiYoZj1lLmxlbmd0aCk7bGV0IGM9ZS5zdWJzdHJpbmcobSxmKTtpLnB1c2goe3RleHQ6YyxzdGFydDptLGVuZDpmfSksdz0hMH1pZighdylpZihrKXtsZXQgbT1pW2kubGVuZ3RoLTFdO20udGV4dCs9ZS5zdWJzdHJpbmcoZiksbS5lbmQ9ZS5sZW5ndGh9ZWxzZSBpLnB1c2goe3RleHQ6ZS5zdWJzdHJpbmcoZiksc3RhcnQ6ZixlbmQ6ZS5sZW5ndGh9KTtyZXR1cm4gbmV3IF9lKGksYSxoKX13cmFwTGl0ZXJhbFByaW1pdGl2ZShlLHQscil7bGV0IG49bmV3IFAoMCxlPT1udWxsPzA6ZS5sZW5ndGgpO3JldHVybiBuZXcgUihuZXcgQShuLG4udG9BYnNvbHV0ZShyKSxlKSxlLHQscix0aGlzLmVycm9ycyl9X3N0cmlwQ29tbWVudHMoZSl7bGV0IHQ9dGhpcy5fY29tbWVudFN0YXJ0KGUpO3JldHVybiB0IT1udWxsP2Uuc3Vic3RyaW5nKDAsdCk6ZX1fY29tbWVudFN0YXJ0KGUpe2xldCB0PW51bGw7Zm9yKGxldCByPTA7cjxlLmxlbmd0aC0xO3IrKyl7bGV0IG49ZS5jaGFyQ29kZUF0KHIpLGk9ZS5jaGFyQ29kZUF0KHIrMSk7aWYobj09PTQ3JiZpPT00NyYmdD09bnVsbClyZXR1cm4gcjt0PT09bj90PW51bGw6dD09bnVsbCYmUGUobikmJih0PW4pfXJldHVybiBudWxsfV9jaGVja05vSW50ZXJwb2xhdGlvbihlLHQse3N0YXJ0OnIsZW5kOm59KXtsZXQgaT0tMSxhPS0xO2ZvcihsZXQgaCBvZiB0aGlzLl9mb3JFYWNoVW5xdW90ZWRDaGFyKGUsMCkpaWYoaT09PS0xKWUuc3RhcnRzV2l0aChyKSYmKGk9aCk7ZWxzZSBpZihhPXRoaXMuX2dldEludGVycG9sYXRpb25FbmRJbmRleChlLG4saCksYT4tMSlicmVhaztpPi0xJiZhPi0xJiZ0aGlzLl9yZXBvcnRFcnJvcihgR290IGludGVycG9sYXRpb24gKCR7cn0ke259KSB3aGVyZSBleHByZXNzaW9uIHdhcyBleHBlY3RlZGAsZSxgYXQgY29sdW1uICR7aX0gaW5gLHQpfV9nZXRJbnRlcnBvbGF0aW9uRW5kSW5kZXgoZSx0LHIpe2ZvcihsZXQgbiBvZiB0aGlzLl9mb3JFYWNoVW5xdW90ZWRDaGFyKGUscikpe2lmKGUuc3RhcnRzV2l0aCh0LG4pKXJldHVybiBuO2lmKGUuc3RhcnRzV2l0aChcIi8vXCIsbikpcmV0dXJuIGUuaW5kZXhPZih0LG4pfXJldHVybi0xfSpfZm9yRWFjaFVucXVvdGVkQ2hhcihlLHQpe2xldCByPW51bGwsbj0wO2ZvcihsZXQgaT10O2k8ZS5sZW5ndGg7aSsrKXtsZXQgYT1lW2ldO1BlKGUuY2hhckNvZGVBdChpKSkmJihyPT09bnVsbHx8cj09PWEpJiZuJTI9PT0wP3I9cj09PW51bGw/YTpudWxsOnI9PT1udWxsJiYoeWllbGQgaSksbj1hPT09XCJcXFxcXCI/bisxOjB9fX0saGU7KGZ1bmN0aW9uKHMpe3Nbcy5Ob25lPTBdPVwiTm9uZVwiLHNbcy5Xcml0YWJsZT0xXT1cIldyaXRhYmxlXCJ9KShoZXx8KGhlPXt9KSk7dmFyIFU9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIsbixpLGEsaCl7dGhpcy5pbnB1dD1lLHRoaXMubG9jYXRpb249dCx0aGlzLmFic29sdXRlT2Zmc2V0PXIsdGhpcy50b2tlbnM9bix0aGlzLnBhcnNlRmxhZ3M9aSx0aGlzLmVycm9ycz1hLHRoaXMub2Zmc2V0PWgsdGhpcy5ycGFyZW5zRXhwZWN0ZWQ9MCx0aGlzLnJicmFja2V0c0V4cGVjdGVkPTAsdGhpcy5yYnJhY2VzRXhwZWN0ZWQ9MCx0aGlzLmNvbnRleHQ9aGUuTm9uZSx0aGlzLnNvdXJjZVNwYW5DYWNoZT1uZXcgTWFwLHRoaXMuaW5kZXg9MH1wZWVrKGUpe2xldCB0PXRoaXMuaW5kZXgrZTtyZXR1cm4gdDx0aGlzLnRva2Vucy5sZW5ndGg/dGhpcy50b2tlbnNbdF06Q2V9Z2V0IG5leHQoKXtyZXR1cm4gdGhpcy5wZWVrKDApfWdldCBhdEVPRigpe3JldHVybiB0aGlzLmluZGV4Pj10aGlzLnRva2Vucy5sZW5ndGh9Z2V0IGlucHV0SW5kZXgoKXtyZXR1cm4gdGhpcy5hdEVPRj90aGlzLmN1cnJlbnRFbmRJbmRleDp0aGlzLm5leHQuaW5kZXgrdGhpcy5vZmZzZXR9Z2V0IGN1cnJlbnRFbmRJbmRleCgpe3JldHVybiB0aGlzLmluZGV4PjA/dGhpcy5wZWVrKC0xKS5lbmQrdGhpcy5vZmZzZXQ6dGhpcy50b2tlbnMubGVuZ3RoPT09MD90aGlzLmlucHV0Lmxlbmd0aCt0aGlzLm9mZnNldDp0aGlzLm5leHQuaW5kZXgrdGhpcy5vZmZzZXR9Z2V0IGN1cnJlbnRBYnNvbHV0ZU9mZnNldCgpe3JldHVybiB0aGlzLmFic29sdXRlT2Zmc2V0K3RoaXMuaW5wdXRJbmRleH1zcGFuKGUsdCl7bGV0IHI9dGhpcy5jdXJyZW50RW5kSW5kZXg7aWYodCE9PXZvaWQgMCYmdD50aGlzLmN1cnJlbnRFbmRJbmRleCYmKHI9dCksZT5yKXtsZXQgbj1yO3I9ZSxlPW59cmV0dXJuIG5ldyBQKGUscil9c291cmNlU3BhbihlLHQpe2xldCByPWAke2V9QCR7dGhpcy5pbnB1dEluZGV4fToke3R9YDtyZXR1cm4gdGhpcy5zb3VyY2VTcGFuQ2FjaGUuaGFzKHIpfHx0aGlzLnNvdXJjZVNwYW5DYWNoZS5zZXQocix0aGlzLnNwYW4oZSx0KS50b0Fic29sdXRlKHRoaXMuYWJzb2x1dGVPZmZzZXQpKSx0aGlzLnNvdXJjZVNwYW5DYWNoZS5nZXQocil9YWR2YW5jZSgpe3RoaXMuaW5kZXgrK313aXRoQ29udGV4dChlLHQpe3RoaXMuY29udGV4dHw9ZTtsZXQgcj10KCk7cmV0dXJuIHRoaXMuY29udGV4dF49ZSxyfWNvbnN1bWVPcHRpb25hbENoYXJhY3RlcihlKXtyZXR1cm4gdGhpcy5uZXh0LmlzQ2hhcmFjdGVyKGUpPyh0aGlzLmFkdmFuY2UoKSwhMCk6ITF9cGVla0tleXdvcmRMZXQoKXtyZXR1cm4gdGhpcy5uZXh0LmlzS2V5d29yZExldCgpfXBlZWtLZXl3b3JkQXMoKXtyZXR1cm4gdGhpcy5uZXh0LmlzS2V5d29yZEFzKCl9ZXhwZWN0Q2hhcmFjdGVyKGUpe3RoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKGUpfHx0aGlzLmVycm9yKGBNaXNzaW5nIGV4cGVjdGVkICR7U3RyaW5nLmZyb21DaGFyQ29kZShlKX1gKX1jb25zdW1lT3B0aW9uYWxPcGVyYXRvcihlKXtyZXR1cm4gdGhpcy5uZXh0LmlzT3BlcmF0b3IoZSk/KHRoaXMuYWR2YW5jZSgpLCEwKTohMX1leHBlY3RPcGVyYXRvcihlKXt0aGlzLmNvbnN1bWVPcHRpb25hbE9wZXJhdG9yKGUpfHx0aGlzLmVycm9yKGBNaXNzaW5nIGV4cGVjdGVkIG9wZXJhdG9yICR7ZX1gKX1wcmV0dHlQcmludFRva2VuKGUpe3JldHVybiBlPT09Q2U/XCJlbmQgb2YgaW5wdXRcIjpgdG9rZW4gJHtlfWB9ZXhwZWN0SWRlbnRpZmllck9yS2V5d29yZCgpe2xldCBlPXRoaXMubmV4dDtyZXR1cm4hZS5pc0lkZW50aWZpZXIoKSYmIWUuaXNLZXl3b3JkKCk/KGUuaXNQcml2YXRlSWRlbnRpZmllcigpP3RoaXMuX3JlcG9ydEVycm9yRm9yUHJpdmF0ZUlkZW50aWZpZXIoZSxcImV4cGVjdGVkIGlkZW50aWZpZXIgb3Iga2V5d29yZFwiKTp0aGlzLmVycm9yKGBVbmV4cGVjdGVkICR7dGhpcy5wcmV0dHlQcmludFRva2VuKGUpfSwgZXhwZWN0ZWQgaWRlbnRpZmllciBvciBrZXl3b3JkYCksbnVsbCk6KHRoaXMuYWR2YW5jZSgpLGUudG9TdHJpbmcoKSl9ZXhwZWN0SWRlbnRpZmllck9yS2V5d29yZE9yU3RyaW5nKCl7bGV0IGU9dGhpcy5uZXh0O3JldHVybiFlLmlzSWRlbnRpZmllcigpJiYhZS5pc0tleXdvcmQoKSYmIWUuaXNTdHJpbmcoKT8oZS5pc1ByaXZhdGVJZGVudGlmaWVyKCk/dGhpcy5fcmVwb3J0RXJyb3JGb3JQcml2YXRlSWRlbnRpZmllcihlLFwiZXhwZWN0ZWQgaWRlbnRpZmllciwga2V5d29yZCBvciBzdHJpbmdcIik6dGhpcy5lcnJvcihgVW5leHBlY3RlZCAke3RoaXMucHJldHR5UHJpbnRUb2tlbihlKX0sIGV4cGVjdGVkIGlkZW50aWZpZXIsIGtleXdvcmQsIG9yIHN0cmluZ2ApLFwiXCIpOih0aGlzLmFkdmFuY2UoKSxlLnRvU3RyaW5nKCkpfXBhcnNlQ2hhaW4oKXtsZXQgZT1bXSx0PXRoaXMuaW5wdXRJbmRleDtmb3IoO3RoaXMuaW5kZXg8dGhpcy50b2tlbnMubGVuZ3RoOyl7bGV0IHI9dGhpcy5wYXJzZVBpcGUoKTtpZihlLnB1c2gociksdGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNTkpKWZvcih0aGlzLnBhcnNlRmxhZ3MmMXx8dGhpcy5lcnJvcihcIkJpbmRpbmcgZXhwcmVzc2lvbiBjYW5ub3QgY29udGFpbiBjaGFpbmVkIGV4cHJlc3Npb25cIik7dGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNTkpOyk7ZWxzZSBpZih0aGlzLmluZGV4PHRoaXMudG9rZW5zLmxlbmd0aCl7bGV0IG49dGhpcy5pbmRleDtpZih0aGlzLmVycm9yKGBVbmV4cGVjdGVkIHRva2VuICcke3RoaXMubmV4dH0nYCksdGhpcy5pbmRleD09PW4pYnJlYWt9fWlmKGUubGVuZ3RoPT09MCl7bGV0IHI9dGhpcy5vZmZzZXQsbj10aGlzLm9mZnNldCt0aGlzLmlucHV0Lmxlbmd0aDtyZXR1cm4gbmV3IEUodGhpcy5zcGFuKHIsbiksdGhpcy5zb3VyY2VTcGFuKHIsbikpfXJldHVybiBlLmxlbmd0aD09MT9lWzBdOm5ldyBWKHRoaXMuc3Bhbih0KSx0aGlzLnNvdXJjZVNwYW4odCksZSl9cGFyc2VQaXBlKCl7bGV0IGU9dGhpcy5pbnB1dEluZGV4LHQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKTtpZih0aGlzLmNvbnN1bWVPcHRpb25hbE9wZXJhdG9yKFwifFwiKSl7dGhpcy5wYXJzZUZsYWdzJjEmJnRoaXMuZXJyb3IoXCJDYW5ub3QgaGF2ZSBhIHBpcGUgaW4gYW4gYWN0aW9uIGV4cHJlc3Npb25cIik7ZG97bGV0IHI9dGhpcy5pbnB1dEluZGV4LG49dGhpcy5leHBlY3RJZGVudGlmaWVyT3JLZXl3b3JkKCksaSxhO24hPT1udWxsP2k9dGhpcy5zb3VyY2VTcGFuKHIpOihuPVwiXCIsYT10aGlzLm5leHQuaW5kZXghPT0tMT90aGlzLm5leHQuaW5kZXg6dGhpcy5pbnB1dC5sZW5ndGgrdGhpcy5vZmZzZXQsaT1uZXcgUChhLGEpLnRvQWJzb2x1dGUodGhpcy5hYnNvbHV0ZU9mZnNldCkpO2xldCBoPVtdO2Zvcig7dGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNTgpOyloLnB1c2godGhpcy5wYXJzZUV4cHJlc3Npb24oKSk7dD1uZXcgWCh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUsYSksdCxuLGgsaSl9d2hpbGUodGhpcy5jb25zdW1lT3B0aW9uYWxPcGVyYXRvcihcInxcIikpfXJldHVybiB0fXBhcnNlRXhwcmVzc2lvbigpe3JldHVybiB0aGlzLnBhcnNlQ29uZGl0aW9uYWwoKX1wYXJzZUNvbmRpdGlvbmFsKCl7bGV0IGU9dGhpcy5pbnB1dEluZGV4LHQ9dGhpcy5wYXJzZUxvZ2ljYWxPcigpO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsT3BlcmF0b3IoXCI/XCIpKXtsZXQgcj10aGlzLnBhcnNlUGlwZSgpLG47aWYodGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNTgpKW49dGhpcy5wYXJzZVBpcGUoKTtlbHNle2xldCBpPXRoaXMuaW5wdXRJbmRleCxhPXRoaXMuaW5wdXQuc3Vic3RyaW5nKGUsaSk7dGhpcy5lcnJvcihgQ29uZGl0aW9uYWwgZXhwcmVzc2lvbiAke2F9IHJlcXVpcmVzIGFsbCAzIGV4cHJlc3Npb25zYCksbj1uZXcgRSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpKX1yZXR1cm4gbmV3IFcodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSx0LHIsbil9ZWxzZSByZXR1cm4gdH1wYXJzZUxvZ2ljYWxPcigpe2xldCBlPXRoaXMuaW5wdXRJbmRleCx0PXRoaXMucGFyc2VMb2dpY2FsQW5kKCk7Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25hbE9wZXJhdG9yKFwifHxcIik7KXtsZXQgcj10aGlzLnBhcnNlTG9naWNhbEFuZCgpO3Q9bmV3ICQodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSxcInx8XCIsdCxyKX1yZXR1cm4gdH1wYXJzZUxvZ2ljYWxBbmQoKXtsZXQgZT10aGlzLmlucHV0SW5kZXgsdD10aGlzLnBhcnNlTnVsbGlzaENvYWxlc2NpbmcoKTtmb3IoO3RoaXMuY29uc3VtZU9wdGlvbmFsT3BlcmF0b3IoXCImJlwiKTspe2xldCByPXRoaXMucGFyc2VOdWxsaXNoQ29hbGVzY2luZygpO3Q9bmV3ICQodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSxcIiYmXCIsdCxyKX1yZXR1cm4gdH1wYXJzZU51bGxpc2hDb2FsZXNjaW5nKCl7bGV0IGU9dGhpcy5pbnB1dEluZGV4LHQ9dGhpcy5wYXJzZUVxdWFsaXR5KCk7Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25hbE9wZXJhdG9yKFwiPz9cIik7KXtsZXQgcj10aGlzLnBhcnNlRXF1YWxpdHkoKTt0PW5ldyAkKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSksXCI/P1wiLHQscil9cmV0dXJuIHR9cGFyc2VFcXVhbGl0eSgpe2xldCBlPXRoaXMuaW5wdXRJbmRleCx0PXRoaXMucGFyc2VSZWxhdGlvbmFsKCk7Zm9yKDt0aGlzLm5leHQudHlwZT09ZC5PcGVyYXRvcjspe2xldCByPXRoaXMubmV4dC5zdHJWYWx1ZTtzd2l0Y2gocil7Y2FzZVwiPT1cIjpjYXNlXCI9PT1cIjpjYXNlXCIhPVwiOmNhc2VcIiE9PVwiOnRoaXMuYWR2YW5jZSgpO2xldCBuPXRoaXMucGFyc2VSZWxhdGlvbmFsKCk7dD1uZXcgJCh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpLHIsdCxuKTtjb250aW51ZX1icmVha31yZXR1cm4gdH1wYXJzZVJlbGF0aW9uYWwoKXtsZXQgZT10aGlzLmlucHV0SW5kZXgsdD10aGlzLnBhcnNlQWRkaXRpdmUoKTtmb3IoO3RoaXMubmV4dC50eXBlPT1kLk9wZXJhdG9yOyl7bGV0IHI9dGhpcy5uZXh0LnN0clZhbHVlO3N3aXRjaChyKXtjYXNlXCI8XCI6Y2FzZVwiPlwiOmNhc2VcIjw9XCI6Y2FzZVwiPj1cIjp0aGlzLmFkdmFuY2UoKTtsZXQgbj10aGlzLnBhcnNlQWRkaXRpdmUoKTt0PW5ldyAkKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSkscix0LG4pO2NvbnRpbnVlfWJyZWFrfXJldHVybiB0fXBhcnNlQWRkaXRpdmUoKXtsZXQgZT10aGlzLmlucHV0SW5kZXgsdD10aGlzLnBhcnNlTXVsdGlwbGljYXRpdmUoKTtmb3IoO3RoaXMubmV4dC50eXBlPT1kLk9wZXJhdG9yOyl7bGV0IHI9dGhpcy5uZXh0LnN0clZhbHVlO3N3aXRjaChyKXtjYXNlXCIrXCI6Y2FzZVwiLVwiOnRoaXMuYWR2YW5jZSgpO2xldCBuPXRoaXMucGFyc2VNdWx0aXBsaWNhdGl2ZSgpO3Q9bmV3ICQodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSxyLHQsbik7Y29udGludWV9YnJlYWt9cmV0dXJuIHR9cGFyc2VNdWx0aXBsaWNhdGl2ZSgpe2xldCBlPXRoaXMuaW5wdXRJbmRleCx0PXRoaXMucGFyc2VQcmVmaXgoKTtmb3IoO3RoaXMubmV4dC50eXBlPT1kLk9wZXJhdG9yOyl7bGV0IHI9dGhpcy5uZXh0LnN0clZhbHVlO3N3aXRjaChyKXtjYXNlXCIqXCI6Y2FzZVwiJVwiOmNhc2VcIi9cIjp0aGlzLmFkdmFuY2UoKTtsZXQgbj10aGlzLnBhcnNlUHJlZml4KCk7dD1uZXcgJCh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpLHIsdCxuKTtjb250aW51ZX1icmVha31yZXR1cm4gdH1wYXJzZVByZWZpeCgpe2lmKHRoaXMubmV4dC50eXBlPT1kLk9wZXJhdG9yKXtsZXQgZT10aGlzLmlucHV0SW5kZXgsdD10aGlzLm5leHQuc3RyVmFsdWUscjtzd2l0Y2godCl7Y2FzZVwiK1wiOnJldHVybiB0aGlzLmFkdmFuY2UoKSxyPXRoaXMucGFyc2VQcmVmaXgoKSxLLmNyZWF0ZVBsdXModGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSxyKTtjYXNlXCItXCI6cmV0dXJuIHRoaXMuYWR2YW5jZSgpLHI9dGhpcy5wYXJzZVByZWZpeCgpLEsuY3JlYXRlTWludXModGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSxyKTtjYXNlXCIhXCI6cmV0dXJuIHRoaXMuYWR2YW5jZSgpLHI9dGhpcy5wYXJzZVByZWZpeCgpLG5ldyBZKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSkscil9fXJldHVybiB0aGlzLnBhcnNlQ2FsbENoYWluKCl9cGFyc2VDYWxsQ2hhaW4oKXtsZXQgZT10aGlzLmlucHV0SW5kZXgsdD10aGlzLnBhcnNlUHJpbWFyeSgpO2Zvcig7OylpZih0aGlzLmNvbnN1bWVPcHRpb25hbENoYXJhY3Rlcig0NikpdD10aGlzLnBhcnNlQWNjZXNzTWVtYmVyKHQsZSwhMSk7ZWxzZSBpZih0aGlzLmNvbnN1bWVPcHRpb25hbE9wZXJhdG9yKFwiPy5cIikpdGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNDApP3Q9dGhpcy5wYXJzZUNhbGwodCxlLCEwKTp0PXRoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDkxKT90aGlzLnBhcnNlS2V5ZWRSZWFkT3JXcml0ZSh0LGUsITApOnRoaXMucGFyc2VBY2Nlc3NNZW1iZXIodCxlLCEwKTtlbHNlIGlmKHRoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDkxKSl0PXRoaXMucGFyc2VLZXllZFJlYWRPcldyaXRlKHQsZSwhMSk7ZWxzZSBpZih0aGlzLmNvbnN1bWVPcHRpb25hbENoYXJhY3Rlcig0MCkpdD10aGlzLnBhcnNlQ2FsbCh0LGUsITEpO2Vsc2UgaWYodGhpcy5jb25zdW1lT3B0aW9uYWxPcGVyYXRvcihcIiFcIikpdD1uZXcgZWUodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSx0KTtlbHNlIHJldHVybiB0fXBhcnNlUHJpbWFyeSgpe2xldCBlPXRoaXMuaW5wdXRJbmRleDtpZih0aGlzLmNvbnN1bWVPcHRpb25hbENoYXJhY3Rlcig0MCkpe3RoaXMucnBhcmVuc0V4cGVjdGVkKys7bGV0IHQ9dGhpcy5wYXJzZVBpcGUoKTtyZXR1cm4gdGhpcy5ycGFyZW5zRXhwZWN0ZWQtLSx0aGlzLmV4cGVjdENoYXJhY3Rlcig0MSksdH1lbHNle2lmKHRoaXMubmV4dC5pc0tleXdvcmROdWxsKCkpcmV0dXJuIHRoaXMuYWR2YW5jZSgpLG5ldyBBKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSksbnVsbCk7aWYodGhpcy5uZXh0LmlzS2V5d29yZFVuZGVmaW5lZCgpKXJldHVybiB0aGlzLmFkdmFuY2UoKSxuZXcgQSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpLHZvaWQgMCk7aWYodGhpcy5uZXh0LmlzS2V5d29yZFRydWUoKSlyZXR1cm4gdGhpcy5hZHZhbmNlKCksbmV3IEEodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSwhMCk7aWYodGhpcy5uZXh0LmlzS2V5d29yZEZhbHNlKCkpcmV0dXJuIHRoaXMuYWR2YW5jZSgpLG5ldyBBKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSksITEpO2lmKHRoaXMubmV4dC5pc0tleXdvcmRUaGlzKCkpcmV0dXJuIHRoaXMuYWR2YW5jZSgpLG5ldyBTZSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpKTtpZih0aGlzLmNvbnN1bWVPcHRpb25hbENoYXJhY3Rlcig5MSkpe3RoaXMucmJyYWNrZXRzRXhwZWN0ZWQrKztsZXQgdD10aGlzLnBhcnNlRXhwcmVzc2lvbkxpc3QoOTMpO3JldHVybiB0aGlzLnJicmFja2V0c0V4cGVjdGVkLS0sdGhpcy5leHBlY3RDaGFyYWN0ZXIoOTMpLG5ldyBaKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSksdCl9ZWxzZXtpZih0aGlzLm5leHQuaXNDaGFyYWN0ZXIoMTIzKSlyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWxNYXAoKTtpZih0aGlzLm5leHQuaXNJZGVudGlmaWVyKCkpcmV0dXJuIHRoaXMucGFyc2VBY2Nlc3NNZW1iZXIobmV3IEwodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSksZSwhMSk7aWYodGhpcy5uZXh0LmlzTnVtYmVyKCkpe2xldCB0PXRoaXMubmV4dC50b051bWJlcigpO3JldHVybiB0aGlzLmFkdmFuY2UoKSxuZXcgQSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpLHQpfWVsc2UgaWYodGhpcy5uZXh0LmlzU3RyaW5nKCkpe2xldCB0PXRoaXMubmV4dC50b1N0cmluZygpO3JldHVybiB0aGlzLmFkdmFuY2UoKSxuZXcgQSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpLHQpfWVsc2UgcmV0dXJuIHRoaXMubmV4dC5pc1ByaXZhdGVJZGVudGlmaWVyKCk/KHRoaXMuX3JlcG9ydEVycm9yRm9yUHJpdmF0ZUlkZW50aWZpZXIodGhpcy5uZXh0LG51bGwpLG5ldyBFKHRoaXMuc3BhbihlKSx0aGlzLnNvdXJjZVNwYW4oZSkpKTp0aGlzLmluZGV4Pj10aGlzLnRva2Vucy5sZW5ndGg/KHRoaXMuZXJyb3IoYFVuZXhwZWN0ZWQgZW5kIG9mIGV4cHJlc3Npb246ICR7dGhpcy5pbnB1dH1gKSxuZXcgRSh0aGlzLnNwYW4oZSksdGhpcy5zb3VyY2VTcGFuKGUpKSk6KHRoaXMuZXJyb3IoYFVuZXhwZWN0ZWQgdG9rZW4gJHt0aGlzLm5leHR9YCksbmV3IEUodGhpcy5zcGFuKGUpLHRoaXMuc291cmNlU3BhbihlKSkpfX19cGFyc2VFeHByZXNzaW9uTGlzdChlKXtsZXQgdD1bXTtkbyBpZighdGhpcy5uZXh0LmlzQ2hhcmFjdGVyKGUpKXQucHVzaCh0aGlzLnBhcnNlUGlwZSgpKTtlbHNlIGJyZWFrO3doaWxlKHRoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDQ0KSk7cmV0dXJuIHR9cGFyc2VMaXRlcmFsTWFwKCl7bGV0IGU9W10sdD1bXSxyPXRoaXMuaW5wdXRJbmRleDtpZih0aGlzLmV4cGVjdENoYXJhY3RlcigxMjMpLCF0aGlzLmNvbnN1bWVPcHRpb25hbENoYXJhY3RlcigxMjUpKXt0aGlzLnJicmFjZXNFeHBlY3RlZCsrO2Rve2xldCBuPXRoaXMuaW5wdXRJbmRleCxpPXRoaXMubmV4dC5pc1N0cmluZygpLGE9dGhpcy5leHBlY3RJZGVudGlmaWVyT3JLZXl3b3JkT3JTdHJpbmcoKTtpZihlLnB1c2goe2tleTphLHF1b3RlZDppfSksaSl0aGlzLmV4cGVjdENoYXJhY3Rlcig1OCksdC5wdXNoKHRoaXMucGFyc2VQaXBlKCkpO2Vsc2UgaWYodGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNTgpKXQucHVzaCh0aGlzLnBhcnNlUGlwZSgpKTtlbHNle2xldCBoPXRoaXMuc3BhbihuKSx2PXRoaXMuc291cmNlU3BhbihuKTt0LnB1c2gobmV3IEIoaCx2LHYsbmV3IEwoaCx2KSxhKSl9fXdoaWxlKHRoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDQ0KSYmIXRoaXMubmV4dC5pc0NoYXJhY3RlcigxMjUpKTt0aGlzLnJicmFjZXNFeHBlY3RlZC0tLHRoaXMuZXhwZWN0Q2hhcmFjdGVyKDEyNSl9cmV0dXJuIG5ldyBKKHRoaXMuc3BhbihyKSx0aGlzLnNvdXJjZVNwYW4ociksZSx0KX1wYXJzZUFjY2Vzc01lbWJlcihlLHQscil7bGV0IG49dGhpcy5pbnB1dEluZGV4LGk9dGhpcy53aXRoQ29udGV4dChoZS5Xcml0YWJsZSwoKT0+e2xldCB2PXRoaXMuZXhwZWN0SWRlbnRpZmllck9yS2V5d29yZCgpPz9cIlwiO3JldHVybiB2Lmxlbmd0aD09PTAmJnRoaXMuZXJyb3IoXCJFeHBlY3RlZCBpZGVudGlmaWVyIGZvciBwcm9wZXJ0eSBhY2Nlc3NcIixlLnNwYW4uZW5kKSx2fSksYT10aGlzLnNvdXJjZVNwYW4obiksaDtpZihyKXRoaXMuY29uc3VtZU9wdGlvbmFsQXNzaWdubWVudCgpPyh0aGlzLmVycm9yKFwiVGhlICc/Licgb3BlcmF0b3IgY2Fubm90IGJlIHVzZWQgaW4gdGhlIGFzc2lnbm1lbnRcIiksaD1uZXcgRSh0aGlzLnNwYW4odCksdGhpcy5zb3VyY2VTcGFuKHQpKSk6aD1uZXcgSCh0aGlzLnNwYW4odCksdGhpcy5zb3VyY2VTcGFuKHQpLGEsZSxpKTtlbHNlIGlmKHRoaXMuY29uc3VtZU9wdGlvbmFsQXNzaWdubWVudCgpKXtpZighKHRoaXMucGFyc2VGbGFncyYxKSlyZXR1cm4gdGhpcy5lcnJvcihcIkJpbmRpbmdzIGNhbm5vdCBjb250YWluIGFzc2lnbm1lbnRzXCIpLG5ldyBFKHRoaXMuc3Bhbih0KSx0aGlzLnNvdXJjZVNwYW4odCkpO2xldCB2PXRoaXMucGFyc2VDb25kaXRpb25hbCgpO2g9bmV3IFEodGhpcy5zcGFuKHQpLHRoaXMuc291cmNlU3Bhbih0KSxhLGUsaSx2KX1lbHNlIGg9bmV3IEIodGhpcy5zcGFuKHQpLHRoaXMuc291cmNlU3Bhbih0KSxhLGUsaSk7cmV0dXJuIGh9cGFyc2VDYWxsKGUsdCxyKXtsZXQgbj10aGlzLmlucHV0SW5kZXg7dGhpcy5ycGFyZW5zRXhwZWN0ZWQrKztsZXQgaT10aGlzLnBhcnNlQ2FsbEFyZ3VtZW50cygpLGE9dGhpcy5zcGFuKG4sdGhpcy5pbnB1dEluZGV4KS50b0Fic29sdXRlKHRoaXMuYWJzb2x1dGVPZmZzZXQpO3RoaXMuZXhwZWN0Q2hhcmFjdGVyKDQxKSx0aGlzLnJwYXJlbnNFeHBlY3RlZC0tO2xldCBoPXRoaXMuc3Bhbih0KSx2PXRoaXMuc291cmNlU3Bhbih0KTtyZXR1cm4gcj9uZXcgcmUoaCx2LGUsaSxhKTpuZXcgdGUoaCx2LGUsaSxhKX1jb25zdW1lT3B0aW9uYWxBc3NpZ25tZW50KCl7cmV0dXJuIHRoaXMucGFyc2VGbGFncyYyJiZ0aGlzLm5leHQuaXNPcGVyYXRvcihcIiFcIikmJnRoaXMucGVlaygxKS5pc09wZXJhdG9yKFwiPVwiKT8odGhpcy5hZHZhbmNlKCksdGhpcy5hZHZhbmNlKCksITApOnRoaXMuY29uc3VtZU9wdGlvbmFsT3BlcmF0b3IoXCI9XCIpfXBhcnNlQ2FsbEFyZ3VtZW50cygpe2lmKHRoaXMubmV4dC5pc0NoYXJhY3Rlcig0MSkpcmV0dXJuW107bGV0IGU9W107ZG8gZS5wdXNoKHRoaXMucGFyc2VQaXBlKCkpO3doaWxlKHRoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDQ0KSk7cmV0dXJuIGV9ZXhwZWN0VGVtcGxhdGVCaW5kaW5nS2V5KCl7bGV0IGU9XCJcIix0PSExLHI9dGhpcy5jdXJyZW50QWJzb2x1dGVPZmZzZXQ7ZG8gZSs9dGhpcy5leHBlY3RJZGVudGlmaWVyT3JLZXl3b3JkT3JTdHJpbmcoKSx0PXRoaXMuY29uc3VtZU9wdGlvbmFsT3BlcmF0b3IoXCItXCIpLHQmJihlKz1cIi1cIik7d2hpbGUodCk7cmV0dXJue3NvdXJjZTplLHNwYW46bmV3IEkocixyK2UubGVuZ3RoKX19cGFyc2VUZW1wbGF0ZUJpbmRpbmdzKGUpe2xldCB0PVtdO2Zvcih0LnB1c2goLi4udGhpcy5wYXJzZURpcmVjdGl2ZUtleXdvcmRCaW5kaW5ncyhlKSk7dGhpcy5pbmRleDx0aGlzLnRva2Vucy5sZW5ndGg7KXtsZXQgcj10aGlzLnBhcnNlTGV0QmluZGluZygpO2lmKHIpdC5wdXNoKHIpO2Vsc2V7bGV0IG49dGhpcy5leHBlY3RUZW1wbGF0ZUJpbmRpbmdLZXkoKSxpPXRoaXMucGFyc2VBc0JpbmRpbmcobik7aT90LnB1c2goaSk6KG4uc291cmNlPWUuc291cmNlK24uc291cmNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK24uc291cmNlLnN1YnN0cmluZygxKSx0LnB1c2goLi4udGhpcy5wYXJzZURpcmVjdGl2ZUtleXdvcmRCaW5kaW5ncyhuKSkpfXRoaXMuY29uc3VtZVN0YXRlbWVudFRlcm1pbmF0b3IoKX1yZXR1cm4gbmV3IE1lKHQsW10sdGhpcy5lcnJvcnMpfXBhcnNlS2V5ZWRSZWFkT3JXcml0ZShlLHQscil7cmV0dXJuIHRoaXMud2l0aENvbnRleHQoaGUuV3JpdGFibGUsKCk9Pnt0aGlzLnJicmFja2V0c0V4cGVjdGVkKys7bGV0IG49dGhpcy5wYXJzZVBpcGUoKTtpZihuIGluc3RhbmNlb2YgRSYmdGhpcy5lcnJvcihcIktleSBhY2Nlc3MgY2Fubm90IGJlIGVtcHR5XCIpLHRoaXMucmJyYWNrZXRzRXhwZWN0ZWQtLSx0aGlzLmV4cGVjdENoYXJhY3Rlcig5MyksdGhpcy5jb25zdW1lT3B0aW9uYWxPcGVyYXRvcihcIj1cIikpaWYocil0aGlzLmVycm9yKFwiVGhlICc/Licgb3BlcmF0b3IgY2Fubm90IGJlIHVzZWQgaW4gdGhlIGFzc2lnbm1lbnRcIik7ZWxzZXtsZXQgaT10aGlzLnBhcnNlQ29uZGl0aW9uYWwoKTtyZXR1cm4gbmV3IHEodGhpcy5zcGFuKHQpLHRoaXMuc291cmNlU3Bhbih0KSxlLG4saSl9ZWxzZSByZXR1cm4gcj9uZXcgeih0aGlzLnNwYW4odCksdGhpcy5zb3VyY2VTcGFuKHQpLGUsbik6bmV3IGoodGhpcy5zcGFuKHQpLHRoaXMuc291cmNlU3Bhbih0KSxlLG4pO3JldHVybiBuZXcgRSh0aGlzLnNwYW4odCksdGhpcy5zb3VyY2VTcGFuKHQpKX0pfXBhcnNlRGlyZWN0aXZlS2V5d29yZEJpbmRpbmdzKGUpe2xldCB0PVtdO3RoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDU4KTtsZXQgcj10aGlzLmdldERpcmVjdGl2ZUJvdW5kVGFyZ2V0KCksbj10aGlzLmN1cnJlbnRBYnNvbHV0ZU9mZnNldCxpPXRoaXMucGFyc2VBc0JpbmRpbmcoZSk7aXx8KHRoaXMuY29uc3VtZVN0YXRlbWVudFRlcm1pbmF0b3IoKSxuPXRoaXMuY3VycmVudEFic29sdXRlT2Zmc2V0KTtsZXQgYT1uZXcgSShlLnNwYW4uc3RhcnQsbik7cmV0dXJuIHQucHVzaChuZXcgc2UoYSxlLHIpKSxpJiZ0LnB1c2goaSksdH1nZXREaXJlY3RpdmVCb3VuZFRhcmdldCgpe2lmKHRoaXMubmV4dD09PUNlfHx0aGlzLnBlZWtLZXl3b3JkQXMoKXx8dGhpcy5wZWVrS2V5d29yZExldCgpKXJldHVybiBudWxsO2xldCBlPXRoaXMucGFyc2VQaXBlKCkse3N0YXJ0OnQsZW5kOnJ9PWUuc3BhbixuPXRoaXMuaW5wdXQuc3Vic3RyaW5nKHQscik7cmV0dXJuIG5ldyBSKGUsbix0aGlzLmxvY2F0aW9uLHRoaXMuYWJzb2x1dGVPZmZzZXQrdCx0aGlzLmVycm9ycyl9cGFyc2VBc0JpbmRpbmcoZSl7aWYoIXRoaXMucGVla0tleXdvcmRBcygpKXJldHVybiBudWxsO3RoaXMuYWR2YW5jZSgpO2xldCB0PXRoaXMuZXhwZWN0VGVtcGxhdGVCaW5kaW5nS2V5KCk7dGhpcy5jb25zdW1lU3RhdGVtZW50VGVybWluYXRvcigpO2xldCByPW5ldyBJKGUuc3Bhbi5zdGFydCx0aGlzLmN1cnJlbnRBYnNvbHV0ZU9mZnNldCk7cmV0dXJuIG5ldyBUKHIsdCxlKX1wYXJzZUxldEJpbmRpbmcoKXtpZighdGhpcy5wZWVrS2V5d29yZExldCgpKXJldHVybiBudWxsO2xldCBlPXRoaXMuY3VycmVudEFic29sdXRlT2Zmc2V0O3RoaXMuYWR2YW5jZSgpO2xldCB0PXRoaXMuZXhwZWN0VGVtcGxhdGVCaW5kaW5nS2V5KCkscj1udWxsO3RoaXMuY29uc3VtZU9wdGlvbmFsT3BlcmF0b3IoXCI9XCIpJiYocj10aGlzLmV4cGVjdFRlbXBsYXRlQmluZGluZ0tleSgpKSx0aGlzLmNvbnN1bWVTdGF0ZW1lbnRUZXJtaW5hdG9yKCk7bGV0IG49bmV3IEkoZSx0aGlzLmN1cnJlbnRBYnNvbHV0ZU9mZnNldCk7cmV0dXJuIG5ldyBUKG4sdCxyKX1jb25zdW1lU3RhdGVtZW50VGVybWluYXRvcigpe3RoaXMuY29uc3VtZU9wdGlvbmFsQ2hhcmFjdGVyKDU5KXx8dGhpcy5jb25zdW1lT3B0aW9uYWxDaGFyYWN0ZXIoNDQpfWVycm9yKGUsdD1udWxsKXt0aGlzLmVycm9ycy5wdXNoKG5ldyBHKGUsdGhpcy5pbnB1dCx0aGlzLmxvY2F0aW9uVGV4dCh0KSx0aGlzLmxvY2F0aW9uKSksdGhpcy5za2lwKCl9bG9jYXRpb25UZXh0KGU9bnVsbCl7cmV0dXJuIGU9PW51bGwmJihlPXRoaXMuaW5kZXgpLGU8dGhpcy50b2tlbnMubGVuZ3RoP2BhdCBjb2x1bW4gJHt0aGlzLnRva2Vuc1tlXS5pbmRleCsxfSBpbmA6XCJhdCB0aGUgZW5kIG9mIHRoZSBleHByZXNzaW9uXCJ9X3JlcG9ydEVycm9yRm9yUHJpdmF0ZUlkZW50aWZpZXIoZSx0KXtsZXQgcj1gUHJpdmF0ZSBpZGVudGlmaWVycyBhcmUgbm90IHN1cHBvcnRlZC4gVW5leHBlY3RlZCBwcml2YXRlIGlkZW50aWZpZXI6ICR7ZX1gO3QhPT1udWxsJiYocis9YCwgJHt0fWApLHRoaXMuZXJyb3Iocil9c2tpcCgpe2xldCBlPXRoaXMubmV4dDtmb3IoO3RoaXMuaW5kZXg8dGhpcy50b2tlbnMubGVuZ3RoJiYhZS5pc0NoYXJhY3Rlcig1OSkmJiFlLmlzT3BlcmF0b3IoXCJ8XCIpJiYodGhpcy5ycGFyZW5zRXhwZWN0ZWQ8PTB8fCFlLmlzQ2hhcmFjdGVyKDQxKSkmJih0aGlzLnJicmFjZXNFeHBlY3RlZDw9MHx8IWUuaXNDaGFyYWN0ZXIoMTI1KSkmJih0aGlzLnJicmFja2V0c0V4cGVjdGVkPD0wfHwhZS5pc0NoYXJhY3Rlcig5MykpJiYoISh0aGlzLmNvbnRleHQmaGUuV3JpdGFibGUpfHwhZS5pc09wZXJhdG9yKFwiPVwiKSk7KXRoaXMubmV4dC5pc0Vycm9yKCkmJnRoaXMuZXJyb3JzLnB1c2gobmV3IEcodGhpcy5uZXh0LnRvU3RyaW5nKCksdGhpcy5pbnB1dCx0aGlzLmxvY2F0aW9uVGV4dCgpLHRoaXMubG9jYXRpb24pKSx0aGlzLmFkdmFuY2UoKSxlPXRoaXMubmV4dH19LEZlPWNsYXNzIGV4dGVuZHMgeWV7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuZXJyb3JzPVtdfXZpc2l0UGlwZSgpe3RoaXMuZXJyb3JzLnB1c2goXCJwaXBlc1wiKX19O2Z1bmN0aW9uIEFyKHMpe2xldCBlPW5ldyBNYXAsdD0wLHI9MCxuPTA7Zm9yKDtuPHMubGVuZ3RoOyl7bGV0IGk9c1tuXTtpZihpLnR5cGU9PT05KXtsZXRbYSxoXT1pLnBhcnRzO3QrPWgubGVuZ3RoLHIrPWEubGVuZ3RofWVsc2V7bGV0IGE9aS5wYXJ0cy5yZWR1Y2UoKGgsdik9Pmgrdi5sZW5ndGgsMCk7cis9YSx0Kz1hfWUuc2V0KHIsdCksbisrfXJldHVybiBlfXZhciBkdD1cImFuZ3VsYXItZXN0cmVlLXBhcnNlclwiLEdlPVwiTmdFc3RyZWVQYXJzZXJcIixVZT0wLERlPVtkdCxVZV07ZnVuY3Rpb24gdnQoKXtyZXR1cm4gbmV3IHZlKG5ldyB4ZSl9ZnVuY3Rpb24gVmUocyxlKXtsZXQgdD12dCgpLHthc3RJbnB1dDpyLGNvbW1lbnRzOm59PUNyKHMsdCkse2FzdDppLGVycm9yczphfT1lKHIsdCk7cmV0dXJuIHl0KGEpLHthc3Q6aSxjb21tZW50czpufX1mdW5jdGlvbiBndChzKXtyZXR1cm4gVmUocywoZSx0KT0+dC5wYXJzZUJpbmRpbmcoZSwuLi5EZSkpfWZ1bmN0aW9uIG10KHMpe3JldHVybiBWZShzLChlLHQpPT50LnBhcnNlQWN0aW9uKGUsITEsLi4uRGUpKX1mdW5jdGlvbiBTdChzKXtyZXR1cm4gVmUocywoZSx0KT0+e2xldCByPXQucGFyc2VJbnRlcnBvbGF0aW9uRXhwcmVzc2lvbihlLC4uLkRlKTtyZXR1cm4gci5hc3Q9ci5hc3QuZXhwcmVzc2lvbnNbMF0scn0pfWZ1bmN0aW9uIHd0KHMpe2xldCBlPXZ0KCkse3RlbXBsYXRlQmluZGluZ3M6dCxlcnJvcnM6cn09ZS5wYXJzZVRlbXBsYXRlQmluZGluZ3MoR2UscyxkdCxVZSxVZSk7cmV0dXJuIHl0KHIpLHR9ZnVuY3Rpb24geXQocyl7aWYocy5sZW5ndGghPT0wKXtsZXRbe21lc3NhZ2U6ZX1dPXM7dGhyb3cgbmV3IFN5bnRheEVycm9yKGUucmVwbGFjZSgvXlBhcnNlciBFcnJvcjogfCBhdCBjb2x1bW4gXFxkKyBpbiBbXl0qJC9nLFwiXCIpKX19ZnVuY3Rpb24gQ3IocyxlKXtsZXQgdD1lLl9jb21tZW50U3RhcnQocyk7cmV0dXJuIHQ9PT1udWxsP3thc3RJbnB1dDpzLGNvbW1lbnRzOltdfTp7YXN0SW5wdXQ6cy5zbGljZSgwLHQpLGNvbW1lbnRzOlt7dHlwZTpcIkNvbW1lbnRcIix2YWx1ZTpzLnNsaWNlKHQrMiksc291cmNlU3Bhbjp7c3RhcnQ6dCxlbmQ6cy5sZW5ndGh9fV19fWZ1bmN0aW9uIEV0KHMpe3JldHVybiBzIGluc3RhbmNlb2YgSz9cIlVuYXJ5XCI6cyBpbnN0YW5jZW9mICQ/XCJCaW5hcnlcIjpzIGluc3RhbmNlb2YgWD9cIkJpbmRpbmdQaXBlXCI6cyBpbnN0YW5jZW9mIHRlP1wiQ2FsbFwiOnMgaW5zdGFuY2VvZiBWP1wiQ2hhaW5cIjpzIGluc3RhbmNlb2YgVz9cIkNvbmRpdGlvbmFsXCI6cyBpbnN0YW5jZW9mIEU/XCJFbXB0eUV4cHJcIjpzIGluc3RhbmNlb2YgTD9cIkltcGxpY2l0UmVjZWl2ZXJcIjpzIGluc3RhbmNlb2Ygaj9cIktleWVkUmVhZFwiOnMgaW5zdGFuY2VvZiB6P1wiU2FmZUtleWVkUmVhZFwiOnMgaW5zdGFuY2VvZiBxP1wiS2V5ZWRXcml0ZVwiOnMgaW5zdGFuY2VvZiBaP1wiTGl0ZXJhbEFycmF5XCI6cyBpbnN0YW5jZW9mIEo/XCJMaXRlcmFsTWFwXCI6cyBpbnN0YW5jZW9mIEE/XCJMaXRlcmFsUHJpbWl0aXZlXCI6cyBpbnN0YW5jZW9mIGVlP1wiTm9uTnVsbEFzc2VydFwiOnMgaW5zdGFuY2VvZiBZP1wiUHJlZml4Tm90XCI6cyBpbnN0YW5jZW9mIEI/XCJQcm9wZXJ0eVJlYWRcIjpzIGluc3RhbmNlb2YgUT9cIlByb3BlcnR5V3JpdGVcIjpzIGluc3RhbmNlb2YgcmU/XCJTYWZlQ2FsbFwiOnMgaW5zdGFuY2VvZiBIP1wiU2FmZVByb3BlcnR5UmVhZFwiOnMudHlwZX1mdW5jdGlvbiBmdCh7c3RhcnQ6cyxlbmQ6ZX0sdCl7bGV0IHI9cyxuPWU7Zm9yKDtuIT09ciYmL1xccy8udGVzdCh0W24tMV0pOyluLS07Zm9yKDtyIT09biYmL1xccy8udGVzdCh0W3JdKTspcisrO3JldHVybntzdGFydDpyLGVuZDpufX1mdW5jdGlvbiBPcih7c3RhcnQ6cyxlbmQ6ZX0sdCl7bGV0IHI9cyxuPWU7Zm9yKDtuIT09dC5sZW5ndGgmJi9cXHMvLnRlc3QodFtuXSk7KW4rKztmb3IoO3IhPT0wJiYvXFxzLy50ZXN0KHRbci0xXSk7KXItLTtyZXR1cm57c3RhcnQ6cixlbmQ6bn19ZnVuY3Rpb24gTnIocyxlKXtyZXR1cm4gZVtzLnN0YXJ0LTFdPT09XCIoXCImJmVbcy5lbmRdPT09XCIpXCI/e3N0YXJ0OnMuc3RhcnQtMSxlbmQ6cy5lbmQrMX06c31mdW5jdGlvbiBBdChzLGUsdCl7bGV0IHI9MCxuPXtzdGFydDpzLnN0YXJ0LGVuZDpzLmVuZH07Zm9yKDs7KXtsZXQgaT1PcihuLGUpLGE9TnIoaSxlKTtpZihpLnN0YXJ0PT09YS5zdGFydCYmaS5lbmQ9PT1hLmVuZClicmVhaztuLnN0YXJ0PWEuc3RhcnQsbi5lbmQ9YS5lbmQscisrfXJldHVybntoYXNQYXJlbnM6KHQ/ci0xOnIpIT09MCxvdXRlclNwYW46ZnQodD97c3RhcnQ6bi5zdGFydCsxLGVuZDpuLmVuZC0xfTpuLGUpLGlubmVyU3BhbjpmdChzLGUpfX1mdW5jdGlvbiAkdChzLGUsdCl7bGV0IHI9ZTtmb3IoOyFzLnRlc3QodFtyXSk7KWlmKC0tcjwwKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgZnJvbnQgY2hhciAke3N9IGZyb20gaW5kZXggJHtlfSBpbiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiByfWZ1bmN0aW9uIE9lKHMsZSx0KXtsZXQgcj1lO2Zvcig7IXMudGVzdCh0W3JdKTspaWYoKytyPj10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGJhY2sgY2hhciAke3N9IGZyb20gaW5kZXggJHtlfSBpbiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3JldHVybiByfWZ1bmN0aW9uIEN0KHMpe3JldHVybiBzLnNsaWNlKDAsMSkudG9Mb3dlckNhc2UoKStzLnNsaWNlKDEpfWZ1bmN0aW9uIE90KHMpe3JldHVybiBzLmxlbmd0aD09PTA/dm9pZCAwOnNbcy5sZW5ndGgtMV19dmFyIHBlPShzLGUsdD0hMSk9PntsZXQgcj1FdChzKTtzd2l0Y2gocil7Y2FzZVwiVW5hcnlcIjp7bGV0e29wZXJhdG9yOmMsZXhwcjpvfT1zLHg9bihvKTtyZXR1cm4gYShcIlVuYXJ5RXhwcmVzc2lvblwiLHtwcmVmaXg6ITAsYXJndW1lbnQ6eCxvcGVyYXRvcjpjfSxzLnNvdXJjZVNwYW4se2hhc1BhcmVudFBhcmVuczp0fSl9Y2FzZVwiQmluYXJ5XCI6e2xldHtsZWZ0OmMsb3BlcmF0aW9uOm8scmlnaHQ6eH09cyxwPW4oYyksdT1uKHgpO3JldHVybiBhKG89PT1cIiYmXCJ8fG89PT1cInx8XCJ8fG89PT1cIj8/XCI/XCJMb2dpY2FsRXhwcmVzc2lvblwiOlwiQmluYXJ5RXhwcmVzc2lvblwiLHtsZWZ0OnAscmlnaHQ6dSxvcGVyYXRvcjpvfSx7c3RhcnQ6eShwKSxlbmQ6bSh1KX0se2hhc1BhcmVudFBhcmVuczp0fSl9Y2FzZVwiQmluZGluZ1BpcGVcIjp7bGV0e2V4cDpjLG5hbWU6byxhcmdzOnh9PXMscD1uKGMpLHU9ZigvXFxTLyxmKC9cXHwvLG0ocCkpKzEpLGc9YShcIklkZW50aWZpZXJcIix7bmFtZTpvfSx7c3RhcnQ6dSxlbmQ6dStvLmxlbmd0aH0pLGw9eC5tYXAobik7cmV0dXJuIGEoXCJOR1BpcGVFeHByZXNzaW9uXCIse2xlZnQ6cCxyaWdodDpnLGFyZ3VtZW50czpsfSx7c3RhcnQ6eShwKSxlbmQ6bShsLmxlbmd0aD09PTA/ZzpPdChsKSl9LHtoYXNQYXJlbnRQYXJlbnM6dH0pfWNhc2VcIkNoYWluXCI6e2xldHtleHByZXNzaW9uczpjfT1zO3JldHVybiBhKFwiTkdDaGFpbmVkRXhwcmVzc2lvblwiLHtleHByZXNzaW9uczpjLm1hcChuKX0scy5zb3VyY2VTcGFuLHtoYXNQYXJlbnRQYXJlbnM6dH0pfWNhc2VcIkNvbW1lbnRcIjp7bGV0e3ZhbHVlOmN9PXM7cmV0dXJuIGEoXCJDb21tZW50TGluZVwiLHt2YWx1ZTpjfSxzLnNvdXJjZVNwYW4se3Byb2Nlc3NTcGFuOiExfSl9Y2FzZVwiQ29uZGl0aW9uYWxcIjp7bGV0e2NvbmRpdGlvbjpjLHRydWVFeHA6byxmYWxzZUV4cDp4fT1zLHA9bihjKSx1PW4obyksZz1uKHgpO3JldHVybiBhKFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIse3Rlc3Q6cCxjb25zZXF1ZW50OnUsYWx0ZXJuYXRlOmd9LHtzdGFydDp5KHApLGVuZDptKGcpfSx7aGFzUGFyZW50UGFyZW5zOnR9KX1jYXNlXCJFbXB0eUV4cHJcIjpyZXR1cm4gYShcIk5HRW1wdHlFeHByZXNzaW9uXCIse30scy5zb3VyY2VTcGFuLHtoYXNQYXJlbnRQYXJlbnM6dH0pO2Nhc2VcIkltcGxpY2l0UmVjZWl2ZXJcIjpyZXR1cm4gYShcIlRoaXNFeHByZXNzaW9uXCIse30scy5zb3VyY2VTcGFuLHtoYXNQYXJlbnRQYXJlbnM6dH0pO2Nhc2VcIktleWVkUmVhZFwiOmNhc2VcIlNhZmVLZXllZFJlYWRcIjp7bGV0IGM9cj09PVwiU2FmZUtleWVkUmVhZFwiLHtrZXk6b309cyx4PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLFwicmVjZWl2ZXJcIik/cy5yZWNlaXZlcjpzLm9iaixwPW4obyk7cmV0dXJuIGgoeCxwLHtjb21wdXRlZDohMCxvcHRpb25hbDpjfSx7ZW5kOnMuc291cmNlU3Bhbi5lbmQsaGFzUGFyZW50UGFyZW5zOnR9KX1jYXNlXCJMaXRlcmFsQXJyYXlcIjp7bGV0e2V4cHJlc3Npb25zOmN9PXM7cmV0dXJuIGEoXCJBcnJheUV4cHJlc3Npb25cIix7ZWxlbWVudHM6Yy5tYXAobil9LHMuc291cmNlU3Bhbix7aGFzUGFyZW50UGFyZW5zOnR9KX1jYXNlXCJMaXRlcmFsTWFwXCI6e2xldHtrZXlzOmMsdmFsdWVzOm99PXMseD1vLm1hcCh1PT5uKHUpKSxwPWMubWFwKCh7a2V5OnUscXVvdGVkOmd9LGwpPT57bGV0IE89eFtsXSx1ZT15KE8pLHFlPW0oTyksSWU9ZigvXFxTLyxsPT09MD9zLnNvdXJjZVNwYW4uc3RhcnQrMTpmKC8sLyxtKHhbbC0xXSkpKzEpLGJ0PXVlPT09SWU/cWU6digvXFxTLyx2KC86Lyx1ZS0xKS0xKSsxLFhlPXtzdGFydDpJZSxlbmQ6YnR9LGdlPWc/YShcIlN0cmluZ0xpdGVyYWxcIix7dmFsdWU6dX0sWGUpOmEoXCJJZGVudGlmaWVyXCIse25hbWU6dX0sWGUpLEJ0PWdlLmVuZDxnZS5zdGFydHx8SWU9PT11ZTtyZXR1cm4gYShcIk9iamVjdFByb3BlcnR5XCIse2tleTpnZSx2YWx1ZTpPLHNob3J0aGFuZDpCdCxjb21wdXRlZDohMX0se3N0YXJ0OnkoZ2UpLGVuZDpxZX0pfSk7cmV0dXJuIGEoXCJPYmplY3RFeHByZXNzaW9uXCIse3Byb3BlcnRpZXM6cH0scy5zb3VyY2VTcGFuLHtoYXNQYXJlbnRQYXJlbnM6dH0pfWNhc2VcIkxpdGVyYWxQcmltaXRpdmVcIjp7bGV0e3ZhbHVlOmN9PXM7c3dpdGNoKHR5cGVvZiBjKXtjYXNlXCJib29sZWFuXCI6cmV0dXJuIGEoXCJCb29sZWFuTGl0ZXJhbFwiLHt2YWx1ZTpjfSxzLnNvdXJjZVNwYW4se2hhc1BhcmVudFBhcmVuczp0fSk7Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGEoXCJOdW1lcmljTGl0ZXJhbFwiLHt2YWx1ZTpjfSxzLnNvdXJjZVNwYW4se2hhc1BhcmVudFBhcmVuczp0fSk7Y2FzZVwib2JqZWN0XCI6cmV0dXJuIGEoXCJOdWxsTGl0ZXJhbFwiLHt9LHMuc291cmNlU3Bhbix7aGFzUGFyZW50UGFyZW5zOnR9KTtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gYShcIlN0cmluZ0xpdGVyYWxcIix7dmFsdWU6Y30scy5zb3VyY2VTcGFuLHtoYXNQYXJlbnRQYXJlbnM6dH0pO2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiBhKFwiSWRlbnRpZmllclwiLHtuYW1lOlwidW5kZWZpbmVkXCJ9LHMuc291cmNlU3Bhbix7aGFzUGFyZW50UGFyZW5zOnR9KTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBMaXRlcmFsUHJpbWl0aXZlIHZhbHVlIHR5cGUgJHt0eXBlb2YgY31gKX19Y2FzZVwiQ2FsbFwiOmNhc2VcIlNhZmVDYWxsXCI6e2xldCBjPXI9PT1cIlNhZmVDYWxsXCIse3JlY2VpdmVyOm8sYXJnczp4fT1zLHA9eC5sZW5ndGg9PT0xP1tpKHhbMF0pXTp4Lm1hcChuKSx1PW4obyksZz1rKHUpLGw9Y3x8Zz9cIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIjpcIkNhbGxFeHByZXNzaW9uXCI7cmV0dXJuIGEobCx7Y2FsbGVlOnUsYXJndW1lbnRzOnAsb3B0aW9uYWw6bD09PVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiP2M6dm9pZCAwfSx7c3RhcnQ6eSh1KSxlbmQ6cy5zb3VyY2VTcGFuLmVuZH0se2hhc1BhcmVudFBhcmVuczp0fSl9Y2FzZVwiTm9uTnVsbEFzc2VydFwiOntsZXR7ZXhwcmVzc2lvbjpjfT1zLG89bihjKTtyZXR1cm4gYShcIlRTTm9uTnVsbEV4cHJlc3Npb25cIix7ZXhwcmVzc2lvbjpvfSx7c3RhcnQ6eShvKSxlbmQ6cy5zb3VyY2VTcGFuLmVuZH0se2hhc1BhcmVudFBhcmVuczp0fSl9Y2FzZVwiUHJlZml4Tm90XCI6e2xldHtleHByZXNzaW9uOmN9PXMsbz1uKGMpO3JldHVybiBhKFwiVW5hcnlFeHByZXNzaW9uXCIse3ByZWZpeDohMCxvcGVyYXRvcjpcIiFcIixhcmd1bWVudDpvfSx7c3RhcnQ6cy5zb3VyY2VTcGFuLnN0YXJ0LGVuZDptKG8pfSx7aGFzUGFyZW50UGFyZW5zOnR9KX1jYXNlXCJQcm9wZXJ0eVJlYWRcIjpjYXNlXCJTYWZlUHJvcGVydHlSZWFkXCI6e2xldCBjPXI9PT1cIlNhZmVQcm9wZXJ0eVJlYWRcIix7cmVjZWl2ZXI6byxuYW1lOnh9PXMscD12KC9cXFMvLHMuc291cmNlU3Bhbi5lbmQtMSkrMSx1PWEoXCJJZGVudGlmaWVyXCIse25hbWU6eH0se3N0YXJ0OnAteC5sZW5ndGgsZW5kOnB9LHcobyk/e2hhc1BhcmVudFBhcmVuczp0fTp7fSk7cmV0dXJuIGgobyx1LHtjb21wdXRlZDohMSxvcHRpb25hbDpjfSx7aGFzUGFyZW50UGFyZW5zOnR9KX1jYXNlXCJLZXllZFdyaXRlXCI6e2xldHtrZXk6Yyx2YWx1ZTpvfT1zLHg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsXCJyZWNlaXZlclwiKT9zLnJlY2VpdmVyOnMub2JqLHA9bihjKSx1PW4obyksZz1oKHgscCx7Y29tcHV0ZWQ6ITAsb3B0aW9uYWw6ITF9LHtlbmQ6ZigvXFxdLyxtKHApKSsxfSk7cmV0dXJuIGEoXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiLHtsZWZ0Omcsb3BlcmF0b3I6XCI9XCIscmlnaHQ6dX0se3N0YXJ0OnkoZyksZW5kOm0odSl9LHtoYXNQYXJlbnRQYXJlbnM6dH0pfWNhc2VcIlByb3BlcnR5V3JpdGVcIjp7bGV0e3JlY2VpdmVyOmMsbmFtZTpvLHZhbHVlOnh9PXMscD1uKHgpLHU9digvXFxTLyx2KC89Lyx5KHApLTEpLTEpKzEsZz1hKFwiSWRlbnRpZmllclwiLHtuYW1lOm99LHtzdGFydDp1LW8ubGVuZ3RoLGVuZDp1fSksbD1oKGMsZyx7Y29tcHV0ZWQ6ITEsb3B0aW9uYWw6ITF9KTtyZXR1cm4gYShcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIse2xlZnQ6bCxvcGVyYXRvcjpcIj1cIixyaWdodDpwfSx7c3RhcnQ6eShsKSxlbmQ6bShwKX0se2hhc1BhcmVudFBhcmVuczp0fSl9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbm9kZSAke3J9YCl9ZnVuY3Rpb24gbihjKXtyZXR1cm4gcGUoYyxlKX1mdW5jdGlvbiBpKGMpe3JldHVybiBwZShjLGUsITApfWZ1bmN0aW9uIGEoYyxvLHgse3Byb2Nlc3NTcGFuOnA9ITAsaGFzUGFyZW50UGFyZW5zOnU9ITF9PXt9KXtsZXQgZz17dHlwZTpjLC4uLk5lKHgsZSxwLHUpLC4uLm99O3N3aXRjaChjKXtjYXNlXCJOdW1lcmljTGl0ZXJhbFwiOntsZXQgbD1nO2wuZXh0cmE9ey4uLmwuZXh0cmEscmF3OmUudGV4dC5zbGljZShsLnN0YXJ0LGwuZW5kKSxyYXdWYWx1ZTpsLnZhbHVlfTticmVha31jYXNlXCJTdHJpbmdMaXRlcmFsXCI6e2xldCBsPWc7bC5leHRyYT17Li4ubC5leHRyYSxyYXc6ZS50ZXh0LnNsaWNlKGwuc3RhcnQsbC5lbmQpLHJhd1ZhbHVlOmwudmFsdWV9O2JyZWFrfWNhc2VcIk9iamVjdFByb3BlcnR5XCI6e2xldCBsPWc7bC5zaG9ydGhhbmQmJihsLmV4dHJhPXsuLi5sLmV4dHJhLHNob3J0aGFuZDpsLnNob3J0aGFuZH0pO2JyZWFrfX1yZXR1cm4gZ31mdW5jdGlvbiBoKGMsbyx4LHtlbmQ6cD1tKG8pLGhhc1BhcmVudFBhcmVuczp1PSExfT17fSl7aWYodyhjKXx8Yy5zb3VyY2VTcGFuLnN0YXJ0PT09by5zdGFydClyZXR1cm4gbztsZXQgZz1uKGMpLGw9ayhnKTtyZXR1cm4gYSh4Lm9wdGlvbmFsfHxsP1wiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6XCJNZW1iZXJFeHByZXNzaW9uXCIse29iamVjdDpnLHByb3BlcnR5Om8sY29tcHV0ZWQ6eC5jb21wdXRlZCwuLi54Lm9wdGlvbmFsP3tvcHRpb25hbDohMH06bD97b3B0aW9uYWw6ITF9Om51bGx9LHtzdGFydDp5KGcpLGVuZDpwfSx7aGFzUGFyZW50UGFyZW5zOnV9KX1mdW5jdGlvbiB2KGMsbyl7cmV0dXJuICR0KGMsbyxlLnRleHQpfWZ1bmN0aW9uIGYoYyxvKXtyZXR1cm4gT2UoYyxvLGUudGV4dCl9ZnVuY3Rpb24gdyhjKXtyZXR1cm4gYy5zb3VyY2VTcGFuLnN0YXJ0Pj1jLnNvdXJjZVNwYW4uZW5kfHwvXlxccyskLy50ZXN0KGUudGV4dC5zbGljZShjLnNvdXJjZVNwYW4uc3RhcnQsYy5zb3VyY2VTcGFuLmVuZCkpfWZ1bmN0aW9uIGsoYyl7cmV0dXJuKGMudHlwZT09PVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwifHxjLnR5cGU9PT1cIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwiKSYmIUMoYyl9ZnVuY3Rpb24gQyhjKXtyZXR1cm4gYy5leHRyYSYmYy5leHRyYS5wYXJlbnRoZXNpemVkfWZ1bmN0aW9uIHkoYyl7cmV0dXJuIEMoYyk/Yy5leHRyYS5wYXJlblN0YXJ0OmMuc3RhcnR9ZnVuY3Rpb24gbShjKXtyZXR1cm4gQyhjKT9jLmV4dHJhLnBhcmVuRW5kOmMuZW5kfX07ZnVuY3Rpb24gTmUocyxlLHQ9ITEscj0hMSl7aWYoIXQpe2xldHtzdGFydDpoLGVuZDp2fT1zO3JldHVybntzdGFydDpoLGVuZDp2LGxvYzp7c3RhcnQ6ZS5sb2NhdG9yLmxvY2F0aW9uRm9ySW5kZXgoaCksZW5kOmUubG9jYXRvci5sb2NhdGlvbkZvckluZGV4KHYpfX19bGV0e291dGVyU3BhbjpuLGlubmVyU3BhbjppLGhhc1BhcmVuczphfT1BdChzLGUudGV4dCxyKTtyZXR1cm57c3RhcnQ6aS5zdGFydCxlbmQ6aS5lbmQsbG9jOntzdGFydDplLmxvY2F0b3IubG9jYXRpb25Gb3JJbmRleChpLnN0YXJ0KSxlbmQ6ZS5sb2NhdG9yLmxvY2F0aW9uRm9ySW5kZXgoaS5lbmQpfSwuLi5hJiZ7ZXh0cmE6e3BhcmVudGhlc2l6ZWQ6ITAscGFyZW5TdGFydDpuLnN0YXJ0LHBhcmVuRW5kOm4uZW5kfX19fWZ1bmN0aW9uIE50KHMsZSl7cy5mb3JFYWNoKHkpO2xldFt0XT1zLHtrZXk6cn09dCxuPWUudGV4dC5zbGljZSh0LnNvdXJjZVNwYW4uc3RhcnQsdC5zb3VyY2VTcGFuLmVuZCkudHJpbSgpLmxlbmd0aD09PTA/cy5zbGljZSgxKTpzLGk9W10sYT1udWxsO2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXQgeD1uW29dO2lmKGEmJmsoYSkmJkMoeCkmJngudmFsdWUmJngudmFsdWUuc291cmNlPT09YS5rZXkuc291cmNlKXtsZXQgcD1mKFwiTkdNaWNyb3N5bnRheEtleVwiLHtuYW1lOngua2V5LnNvdXJjZX0seC5rZXkuc3BhbiksdT0oTyx1ZSk9Pih7Li4uTywuLi5OZSh7c3RhcnQ6Ty5zdGFydCxlbmQ6dWV9LGUpfSksZz1PPT4oey4uLnUoTyxwLmVuZCksYWxpYXM6cH0pLGw9aS5wb3AoKTtpZihsLnR5cGU9PT1cIk5HTWljcm9zeW50YXhFeHByZXNzaW9uXCIpaS5wdXNoKGcobCkpO2Vsc2UgaWYobC50eXBlPT09XCJOR01pY3Jvc3ludGF4S2V5ZWRFeHByZXNzaW9uXCIpe2xldCBPPWcobC5leHByZXNzaW9uKTtpLnB1c2godSh7Li4ubCxleHByZXNzaW9uOk99LE8uZW5kKSl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAke2wudHlwZX1gKX1lbHNlIGkucHVzaChoKHgsbykpO2E9eH1yZXR1cm4gZihcIk5HTWljcm9zeW50YXhcIix7Ym9keTppfSxpLmxlbmd0aD09PTA/c1swXS5zb3VyY2VTcGFuOntzdGFydDppWzBdLnN0YXJ0LGVuZDppW2kubGVuZ3RoLTFdLmVuZH0pO2Z1bmN0aW9uIGgobyx4KXtpZihrKG8pKXtsZXR7a2V5OnAsdmFsdWU6dX09bztyZXR1cm4gdT94PT09MD9mKFwiTkdNaWNyb3N5bnRheEV4cHJlc3Npb25cIix7ZXhwcmVzc2lvbjp2KHUuYXN0KSxhbGlhczpudWxsfSx1LnNvdXJjZVNwYW4pOmYoXCJOR01pY3Jvc3ludGF4S2V5ZWRFeHByZXNzaW9uXCIse2tleTpmKFwiTkdNaWNyb3N5bnRheEtleVwiLHtuYW1lOncocC5zb3VyY2UpfSxwLnNwYW4pLGV4cHJlc3Npb246ZihcIk5HTWljcm9zeW50YXhFeHByZXNzaW9uXCIse2V4cHJlc3Npb246dih1LmFzdCksYWxpYXM6bnVsbH0sdS5zb3VyY2VTcGFuKX0se3N0YXJ0OnAuc3Bhbi5zdGFydCxlbmQ6dS5zb3VyY2VTcGFuLmVuZH0pOmYoXCJOR01pY3Jvc3ludGF4S2V5XCIse25hbWU6dyhwLnNvdXJjZSl9LHAuc3Bhbil9ZWxzZXtsZXR7a2V5OnAsc291cmNlU3Bhbjp1fT1vO2lmKC9ebGV0XFxzJC8udGVzdChlLnRleHQuc2xpY2UodS5zdGFydCx1LnN0YXJ0KzQpKSl7bGV0e3ZhbHVlOmx9PW87cmV0dXJuIGYoXCJOR01pY3Jvc3ludGF4TGV0XCIse2tleTpmKFwiTkdNaWNyb3N5bnRheEtleVwiLHtuYW1lOnAuc291cmNlfSxwLnNwYW4pLHZhbHVlOmw/ZihcIk5HTWljcm9zeW50YXhLZXlcIix7bmFtZTpsLnNvdXJjZX0sbC5zcGFuKTpudWxsfSx7c3RhcnQ6dS5zdGFydCxlbmQ6bD9sLnNwYW4uZW5kOnAuc3Bhbi5lbmR9KX1lbHNle2xldCBsPWMobyk7cmV0dXJuIGYoXCJOR01pY3Jvc3ludGF4QXNcIix7a2V5OmYoXCJOR01pY3Jvc3ludGF4S2V5XCIse25hbWU6bC5zb3VyY2V9LGwuc3BhbiksYWxpYXM6ZihcIk5HTWljcm9zeW50YXhLZXlcIix7bmFtZTpwLnNvdXJjZX0scC5zcGFuKX0se3N0YXJ0Omwuc3Bhbi5zdGFydCxlbmQ6cC5zcGFuLmVuZH0pfX19ZnVuY3Rpb24gdihvKXtyZXR1cm4gcGUobyxlKX1mdW5jdGlvbiBmKG8seCxwLHU9ITApe3JldHVybnt0eXBlOm8sLi4uTmUocCxlLHUpLC4uLnh9fWZ1bmN0aW9uIHcobyl7cmV0dXJuIEN0KG8uc2xpY2Uoci5zb3VyY2UubGVuZ3RoKSl9ZnVuY3Rpb24gayhvKXtyZXR1cm4gbyBpbnN0YW5jZW9mIHNlfWZ1bmN0aW9uIEMobyl7cmV0dXJuIG8gaW5zdGFuY2VvZiBUfWZ1bmN0aW9uIHkobyl7bShvLmtleS5zcGFuKSxDKG8pJiZvLnZhbHVlJiZtKG8udmFsdWUuc3Bhbil9ZnVuY3Rpb24gbShvKXtpZihlLnRleHRbby5zdGFydF0hPT0nXCInJiZlLnRleHRbby5zdGFydF0hPT1cIidcIilyZXR1cm47bGV0IHg9ZS50ZXh0W28uc3RhcnRdLHA9ITE7Zm9yKGxldCB1PW8uc3RhcnQrMTt1PGUudGV4dC5sZW5ndGg7dSsrKXN3aXRjaChlLnRleHRbdV0pe2Nhc2UgeDppZighcCl7by5lbmQ9dSsxO3JldHVybn1kZWZhdWx0OnA9ITE7YnJlYWs7Y2FzZVwiXFxcXFwiOnA9IXA7YnJlYWt9fWZ1bmN0aW9uIGMobyl7aWYoIW8udmFsdWV8fG8udmFsdWUuc291cmNlIT09R2UpcmV0dXJuIG8udmFsdWU7bGV0IHg9T2UoL1xcUy8sby5zb3VyY2VTcGFuLnN0YXJ0LGUudGV4dCk7cmV0dXJue3NvdXJjZTpcIiRpbXBsaWNpdFwiLHNwYW46e3N0YXJ0OngsZW5kOnh9fX19ZnVuY3Rpb24gV2UocyxlKXtsZXR7YXN0OnQsY29tbWVudHM6cn09ZShzKSxuPW5ldyBsZShzKSxpPWg9PnBlKGgsbiksYT1pKHQpO3JldHVybiBhLmNvbW1lbnRzPXIubWFwKGg9PmkoaCkpLGF9ZnVuY3Rpb24ga3Qocyl7cmV0dXJuIFdlKHMsZ3QpfWZ1bmN0aW9uIEl0KHMpe3JldHVybiBXZShzLFN0KX1mdW5jdGlvbiBRZShzKXtyZXR1cm4gV2UocyxtdCl9ZnVuY3Rpb24gUnQocyl7cmV0dXJuIE50KHd0KHMpLG5ldyBsZShzKSl9ZnVuY3Rpb24ga3Iocyl7cmV0dXJuIEFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjB9dmFyIFB0PWtyO2Z1bmN0aW9uIEhlKHMpe3ZhciByO2xldCBlPXMucmFuZ2U/cy5yYW5nZVswXTpzLnN0YXJ0LHQ9KChyPXMuZGVjbGFyYXRpb24pPT1udWxsP3ZvaWQgMDpyLmRlY29yYXRvcnMpPz9zLmRlY29yYXRvcnM7cmV0dXJuIFB0KHQpP01hdGgubWluKEhlKHRbMF0pLGUpOmV9ZnVuY3Rpb24gTHQocyl7cmV0dXJuIHMucmFuZ2U/cy5yYW5nZVsxXTpzLmVuZH1mdW5jdGlvbiBrZShzKXtyZXR1cm57YXN0Rm9ybWF0OlwiZXN0cmVlXCIscGFyc2UoZSl7bGV0IHQ9cyhlKTtyZXR1cm57dHlwZTpcIk5HUm9vdFwiLG5vZGU6cz09PVFlJiZ0LnR5cGUhPT1cIk5HQ2hhaW5lZEV4cHJlc3Npb25cIj97Li4udCx0eXBlOlwiTkdDaGFpbmVkRXhwcmVzc2lvblwiLGV4cHJlc3Npb25zOlt0XX06dH19LGxvY1N0YXJ0OkhlLGxvY0VuZDpMdH19dmFyIElyPWtlKFFlKSxScj1rZShrdCksUHI9a2UoSXQpLExyPWtlKFJ0KTt2YXIgZnM9emU7ZXhwb3J0e2ZzIGFzIGRlZmF1bHQsamUgYXMgcGFyc2Vyc307XG4iLCAidmFyIFlzPU9iamVjdC5jcmVhdGU7dmFyIEtlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgUXM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgWnM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGVpPU9iamVjdC5nZXRQcm90b3R5cGVPZix0aT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBCdD0oYSx0KT0+KCk9Pih0fHxhKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLHNpPShhLHQpPT57Zm9yKHZhciBlIGluIHQpS2UoYSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9LGlpPShhLHQsZSxzKT0+e2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwifHx0eXBlb2YgdD09XCJmdW5jdGlvblwiKWZvcihsZXQgaSBvZiBacyh0KSkhdGkuY2FsbChhLGkpJiZpIT09ZSYmS2UoYSxpLHtnZXQ6KCk9PnRbaV0sZW51bWVyYWJsZTohKHM9UXModCxpKSl8fHMuZW51bWVyYWJsZX0pO3JldHVybiBhfTt2YXIgcWU9KGEsdCxlKT0+KGU9YSE9bnVsbD9ZcyhlaShhKSk6e30saWkodHx8IWF8fCFhLl9fZXNNb2R1bGU/S2UoZSxcImRlZmF1bHRcIix7dmFsdWU6YSxlbnVtZXJhYmxlOiEwfSk6ZSxhKSk7dmFyIGt0PUJ0KFJlPT57XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gTGUoYSx0KXtpZihhPT1udWxsKXJldHVybnt9O3ZhciBlPXt9LHM9T2JqZWN0LmtleXMoYSksaSxyO2ZvcihyPTA7cjxzLmxlbmd0aDtyKyspaT1zW3JdLCEodC5pbmRleE9mKGkpPj0wKSYmKGVbaV09YVtpXSk7cmV0dXJuIGV9dmFyIEY9Y2xhc3N7Y29uc3RydWN0b3IodCxlLHMpe3RoaXMubGluZT12b2lkIDAsdGhpcy5jb2x1bW49dm9pZCAwLHRoaXMuaW5kZXg9dm9pZCAwLHRoaXMubGluZT10LHRoaXMuY29sdW1uPWUsdGhpcy5pbmRleD1zfX0saWU9Y2xhc3N7Y29uc3RydWN0b3IodCxlKXt0aGlzLnN0YXJ0PXZvaWQgMCx0aGlzLmVuZD12b2lkIDAsdGhpcy5maWxlbmFtZT12b2lkIDAsdGhpcy5pZGVudGlmaWVyTmFtZT12b2lkIDAsdGhpcy5zdGFydD10LHRoaXMuZW5kPWV9fTtmdW5jdGlvbiBMKGEsdCl7bGV0e2xpbmU6ZSxjb2x1bW46cyxpbmRleDppfT1hO3JldHVybiBuZXcgRihlLHMrdCxpK3QpfXZhciBZZT17U3ludGF4RXJyb3I6XCJCQUJFTF9QQVJTRVJfU1lOVEFYX0VSUk9SXCIsU291cmNlVHlwZU1vZHVsZUVycm9yOlwiQkFCRUxfUEFSU0VSX1NPVVJDRVRZUEVfTU9EVUxFX1JFUVVJUkVEXCJ9LHJpPShhLHQ9YS5sZW5ndGgtMSk9Pih7Z2V0KCl7cmV0dXJuIGEucmVkdWNlKChlLHMpPT5lW3NdLHRoaXMpfSxzZXQoZSl7YS5yZWR1Y2UoKHMsaSxyKT0+cj09PXQ/c1tpXT1lOnNbaV0sdGhpcyl9fSksYWk9KGEsdCxlKT0+T2JqZWN0LmtleXMoZSkubWFwKHM9PltzLGVbc11dKS5maWx0ZXIoKFssc10pPT4hIXMpLm1hcCgoW3MsaV0pPT5bcyx0eXBlb2YgaT09XCJmdW5jdGlvblwiP3t2YWx1ZTppLGVudW1lcmFibGU6ITF9OnR5cGVvZiBpLnJlZmxlY3Q9PVwic3RyaW5nXCI/T2JqZWN0LmFzc2lnbih7fSxpLHJpKGkucmVmbGVjdC5zcGxpdChcIi5cIikpKTppXSkucmVkdWNlKChzLFtpLHJdKT0+T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsaSxPYmplY3QuYXNzaWduKHtjb25maWd1cmFibGU6ITB9LHIpKSxPYmplY3QuYXNzaWduKG5ldyBhLHQpKSxuaT17SW1wb3J0TWV0YU91dHNpZGVNb2R1bGU6e21lc3NhZ2U6YGltcG9ydC5tZXRhIG1heSBhcHBlYXIgb25seSB3aXRoICdzb3VyY2VUeXBlOiBcIm1vZHVsZVwiJ2AsY29kZTpZZS5Tb3VyY2VUeXBlTW9kdWxlRXJyb3J9LEltcG9ydE91dHNpZGVNb2R1bGU6e21lc3NhZ2U6YCdpbXBvcnQnIGFuZCAnZXhwb3J0JyBtYXkgYXBwZWFyIG9ubHkgd2l0aCAnc291cmNlVHlwZTogXCJtb2R1bGVcIidgLGNvZGU6WWUuU291cmNlVHlwZU1vZHVsZUVycm9yfX0sUnQ9e0FycmF5UGF0dGVybjpcImFycmF5IGRlc3RydWN0dXJpbmcgcGF0dGVyblwiLEFzc2lnbm1lbnRFeHByZXNzaW9uOlwiYXNzaWdubWVudCBleHByZXNzaW9uXCIsQXNzaWdubWVudFBhdHRlcm46XCJhc3NpZ25tZW50IGV4cHJlc3Npb25cIixBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpcImFycm93IGZ1bmN0aW9uIGV4cHJlc3Npb25cIixDb25kaXRpb25hbEV4cHJlc3Npb246XCJjb25kaXRpb25hbCBleHByZXNzaW9uXCIsQ2F0Y2hDbGF1c2U6XCJjYXRjaCBjbGF1c2VcIixGb3JPZlN0YXRlbWVudDpcImZvci1vZiBzdGF0ZW1lbnRcIixGb3JJblN0YXRlbWVudDpcImZvci1pbiBzdGF0ZW1lbnRcIixGb3JTdGF0ZW1lbnQ6XCJmb3ItbG9vcFwiLEZvcm1hbFBhcmFtZXRlcnM6XCJmdW5jdGlvbiBwYXJhbWV0ZXIgbGlzdFwiLElkZW50aWZpZXI6XCJpZGVudGlmaWVyXCIsSW1wb3J0U3BlY2lmaWVyOlwiaW1wb3J0IHNwZWNpZmllclwiLEltcG9ydERlZmF1bHRTcGVjaWZpZXI6XCJpbXBvcnQgZGVmYXVsdCBzcGVjaWZpZXJcIixJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6XCJpbXBvcnQgbmFtZXNwYWNlIHNwZWNpZmllclwiLE9iamVjdFBhdHRlcm46XCJvYmplY3QgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuXCIsUGFyZW50aGVzaXplZEV4cHJlc3Npb246XCJwYXJlbnRoZXNpemVkIGV4cHJlc3Npb25cIixSZXN0RWxlbWVudDpcInJlc3QgZWxlbWVudFwiLFVwZGF0ZUV4cHJlc3Npb246e3RydWU6XCJwcmVmaXggb3BlcmF0aW9uXCIsZmFsc2U6XCJwb3N0Zml4IG9wZXJhdGlvblwifSxWYXJpYWJsZURlY2xhcmF0b3I6XCJ2YXJpYWJsZSBkZWNsYXJhdGlvblwiLFlpZWxkRXhwcmVzc2lvbjpcInlpZWxkIGV4cHJlc3Npb25cIn0sUWU9KHt0eXBlOmEscHJlZml4OnR9KT0+YT09PVwiVXBkYXRlRXhwcmVzc2lvblwiP1J0LlVwZGF0ZUV4cHJlc3Npb25bU3RyaW5nKHQpXTpSdFthXSxvaT17QWNjZXNzb3JJc0dlbmVyYXRvcjooe2tpbmQ6YX0pPT5gQSAke2F9dGVyIGNhbm5vdCBiZSBhIGdlbmVyYXRvci5gLEFyZ3VtZW50c0luQ2xhc3M6XCInYXJndW1lbnRzJyBpcyBvbmx5IGFsbG93ZWQgaW4gZnVuY3Rpb25zIGFuZCBjbGFzcyBtZXRob2RzLlwiLEFzeW5jRnVuY3Rpb25JblNpbmdsZVN0YXRlbWVudENvbnRleHQ6XCJBc3luYyBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBsZXZlbCBvciBpbnNpZGUgYSBibG9jay5cIixBd2FpdEJpbmRpbmdJZGVudGlmaWVyOlwiQ2FuIG5vdCB1c2UgJ2F3YWl0JyBhcyBpZGVudGlmaWVyIGluc2lkZSBhbiBhc3luYyBmdW5jdGlvbi5cIixBd2FpdEJpbmRpbmdJZGVudGlmaWVySW5TdGF0aWNCbG9jazpcIkNhbiBub3QgdXNlICdhd2FpdCcgYXMgaWRlbnRpZmllciBpbnNpZGUgYSBzdGF0aWMgYmxvY2suXCIsQXdhaXRFeHByZXNzaW9uRm9ybWFsUGFyYW1ldGVyOlwiJ2F3YWl0JyBpcyBub3QgYWxsb3dlZCBpbiBhc3luYyBmdW5jdGlvbiBwYXJhbWV0ZXJzLlwiLEF3YWl0VXNpbmdOb3RJbkFzeW5jQ29udGV4dDpcIidhd2FpdCB1c2luZycgaXMgb25seSBhbGxvd2VkIHdpdGhpbiBhc3luYyBmdW5jdGlvbnMgYW5kIGF0IHRoZSB0b3AgbGV2ZWxzIG9mIG1vZHVsZXMuXCIsQXdhaXROb3RJbkFzeW5jQ29udGV4dDpcIidhd2FpdCcgaXMgb25seSBhbGxvd2VkIHdpdGhpbiBhc3luYyBmdW5jdGlvbnMgYW5kIGF0IHRoZSB0b3AgbGV2ZWxzIG9mIG1vZHVsZXMuXCIsQXdhaXROb3RJbkFzeW5jRnVuY3Rpb246XCInYXdhaXQnIGlzIG9ubHkgYWxsb3dlZCB3aXRoaW4gYXN5bmMgZnVuY3Rpb25zLlwiLEJhZEdldHRlckFyaXR5OlwiQSAnZ2V0JyBhY2Nlc3NvciBtdXN0IG5vdCBoYXZlIGFueSBmb3JtYWwgcGFyYW1ldGVycy5cIixCYWRTZXR0ZXJBcml0eTpcIkEgJ3NldCcgYWNjZXNzb3IgbXVzdCBoYXZlIGV4YWN0bHkgb25lIGZvcm1hbCBwYXJhbWV0ZXIuXCIsQmFkU2V0dGVyUmVzdFBhcmFtZXRlcjpcIkEgJ3NldCcgYWNjZXNzb3IgZnVuY3Rpb24gYXJndW1lbnQgbXVzdCBub3QgYmUgYSByZXN0IHBhcmFtZXRlci5cIixDb25zdHJ1Y3RvckNsYXNzRmllbGQ6XCJDbGFzc2VzIG1heSBub3QgaGF2ZSBhIGZpZWxkIG5hbWVkICdjb25zdHJ1Y3RvcicuXCIsQ29uc3RydWN0b3JDbGFzc1ByaXZhdGVGaWVsZDpcIkNsYXNzZXMgbWF5IG5vdCBoYXZlIGEgcHJpdmF0ZSBmaWVsZCBuYW1lZCAnI2NvbnN0cnVjdG9yJy5cIixDb25zdHJ1Y3RvcklzQWNjZXNzb3I6XCJDbGFzcyBjb25zdHJ1Y3RvciBtYXkgbm90IGJlIGFuIGFjY2Vzc29yLlwiLENvbnN0cnVjdG9ySXNBc3luYzpcIkNvbnN0cnVjdG9yIGNhbid0IGJlIGFuIGFzeW5jIGZ1bmN0aW9uLlwiLENvbnN0cnVjdG9ySXNHZW5lcmF0b3I6XCJDb25zdHJ1Y3RvciBjYW4ndCBiZSBhIGdlbmVyYXRvci5cIixEZWNsYXJhdGlvbk1pc3NpbmdJbml0aWFsaXplcjooe2tpbmQ6YX0pPT5gTWlzc2luZyBpbml0aWFsaXplciBpbiAke2F9IGRlY2xhcmF0aW9uLmAsRGVjb3JhdG9yQXJndW1lbnRzT3V0c2lkZVBhcmVudGhlc2VzOlwiRGVjb3JhdG9yIGFyZ3VtZW50cyBtdXN0IGJlIG1vdmVkIGluc2lkZSBwYXJlbnRoZXNlczogdXNlICdAKGRlY29yYXRvcihhcmdzKSknIGluc3RlYWQgb2YgJ0AoZGVjb3JhdG9yKShhcmdzKScuXCIsRGVjb3JhdG9yQmVmb3JlRXhwb3J0OlwiRGVjb3JhdG9ycyBtdXN0IGJlIHBsYWNlZCAqYmVmb3JlKiB0aGUgJ2V4cG9ydCcga2V5d29yZC4gUmVtb3ZlIHRoZSAnZGVjb3JhdG9yc0JlZm9yZUV4cG9ydDogdHJ1ZScgb3B0aW9uIHRvIHVzZSB0aGUgJ2V4cG9ydCBAZGVjb3JhdG9yIGNsYXNzIHt9JyBzeW50YXguXCIsRGVjb3JhdG9yc0JlZm9yZUFmdGVyRXhwb3J0OlwiRGVjb3JhdG9ycyBjYW4gYmUgcGxhY2VkICplaXRoZXIqIGJlZm9yZSBvciBhZnRlciB0aGUgJ2V4cG9ydCcga2V5d29yZCwgYnV0IG5vdCBpbiBib3RoIGxvY2F0aW9ucyBhdCB0aGUgc2FtZSB0aW1lLlwiLERlY29yYXRvckNvbnN0cnVjdG9yOlwiRGVjb3JhdG9ycyBjYW4ndCBiZSB1c2VkIHdpdGggYSBjb25zdHJ1Y3Rvci4gRGlkIHlvdSBtZWFuICdAZGVjIGNsYXNzIHsgLi4uIH0nP1wiLERlY29yYXRvckV4cG9ydENsYXNzOlwiRGVjb3JhdG9ycyBtdXN0IGJlIHBsYWNlZCAqYWZ0ZXIqIHRoZSAnZXhwb3J0JyBrZXl3b3JkLiBSZW1vdmUgdGhlICdkZWNvcmF0b3JzQmVmb3JlRXhwb3J0OiBmYWxzZScgb3B0aW9uIHRvIHVzZSB0aGUgJ0BkZWNvcmF0b3IgZXhwb3J0IGNsYXNzIHt9JyBzeW50YXguXCIsRGVjb3JhdG9yU2VtaWNvbG9uOlwiRGVjb3JhdG9ycyBtdXN0IG5vdCBiZSBmb2xsb3dlZCBieSBhIHNlbWljb2xvbi5cIixEZWNvcmF0b3JTdGF0aWNCbG9jazpcIkRlY29yYXRvcnMgY2FuJ3QgYmUgdXNlZCB3aXRoIGEgc3RhdGljIGJsb2NrLlwiLERlbGV0ZVByaXZhdGVGaWVsZDpcIkRlbGV0aW5nIGEgcHJpdmF0ZSBmaWVsZCBpcyBub3QgYWxsb3dlZC5cIixEZXN0cnVjdHVyZU5hbWVkSW1wb3J0OlwiRVMyMDE1IG5hbWVkIGltcG9ydHMgZG8gbm90IGRlc3RydWN0dXJlLiBVc2UgYW5vdGhlciBzdGF0ZW1lbnQgZm9yIGRlc3RydWN0dXJpbmcgYWZ0ZXIgdGhlIGltcG9ydC5cIixEdXBsaWNhdGVDb25zdHJ1Y3RvcjpcIkR1cGxpY2F0ZSBjb25zdHJ1Y3RvciBpbiB0aGUgc2FtZSBjbGFzcy5cIixEdXBsaWNhdGVEZWZhdWx0RXhwb3J0OlwiT25seSBvbmUgZGVmYXVsdCBleHBvcnQgYWxsb3dlZCBwZXIgbW9kdWxlLlwiLER1cGxpY2F0ZUV4cG9ydDooe2V4cG9ydE5hbWU6YX0pPT5gXFxgJHthfVxcYCBoYXMgYWxyZWFkeSBiZWVuIGV4cG9ydGVkLiBFeHBvcnRlZCBpZGVudGlmaWVycyBtdXN0IGJlIHVuaXF1ZS5gLER1cGxpY2F0ZVByb3RvOlwiUmVkZWZpbml0aW9uIG9mIF9fcHJvdG9fXyBwcm9wZXJ0eS5cIixEdXBsaWNhdGVSZWdFeHBGbGFnczpcIkR1cGxpY2F0ZSByZWd1bGFyIGV4cHJlc3Npb24gZmxhZy5cIixFbGVtZW50QWZ0ZXJSZXN0OlwiUmVzdCBlbGVtZW50IG11c3QgYmUgbGFzdCBlbGVtZW50LlwiLEVzY2FwZWRDaGFyTm90QW5JZGVudGlmaWVyOlwiSW52YWxpZCBVbmljb2RlIGVzY2FwZS5cIixFeHBvcnRCaW5kaW5nSXNTdHJpbmc6KHtsb2NhbE5hbWU6YSxleHBvcnROYW1lOnR9KT0+YEEgc3RyaW5nIGxpdGVyYWwgY2Fubm90IGJlIHVzZWQgYXMgYW4gZXhwb3J0ZWQgYmluZGluZyB3aXRob3V0IFxcYGZyb21cXGAuXG4tIERpZCB5b3UgbWVhbiBcXGBleHBvcnQgeyAnJHthfScgYXMgJyR7dH0nIH0gZnJvbSAnc29tZS1tb2R1bGUnXFxgP2AsRXhwb3J0RGVmYXVsdEZyb21Bc0lkZW50aWZpZXI6XCInZnJvbScgaXMgbm90IGFsbG93ZWQgYXMgYW4gaWRlbnRpZmllciBhZnRlciAnZXhwb3J0IGRlZmF1bHQnLlwiLEZvckluT2ZMb29wSW5pdGlhbGl6ZXI6KHt0eXBlOmF9KT0+YCcke2E9PT1cIkZvckluU3RhdGVtZW50XCI/XCJmb3ItaW5cIjpcImZvci1vZlwifScgbG9vcCB2YXJpYWJsZSBkZWNsYXJhdGlvbiBtYXkgbm90IGhhdmUgYW4gaW5pdGlhbGl6ZXIuYCxGb3JJblVzaW5nOlwiRm9yLWluIGxvb3AgbWF5IG5vdCBzdGFydCB3aXRoICd1c2luZycgZGVjbGFyYXRpb24uXCIsRm9yT2ZBc3luYzpcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhIGZvci1vZiBsb29wIG1heSBub3QgYmUgJ2FzeW5jJy5cIixGb3JPZkxldDpcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhIGZvci1vZiBsb29wIG1heSBub3Qgc3RhcnQgd2l0aCAnbGV0Jy5cIixHZW5lcmF0b3JJblNpbmdsZVN0YXRlbWVudENvbnRleHQ6XCJHZW5lcmF0b3JzIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IHRoZSB0b3AgbGV2ZWwgb3IgaW5zaWRlIGEgYmxvY2suXCIsSWxsZWdhbEJyZWFrQ29udGludWU6KHt0eXBlOmF9KT0+YFVuc3ludGFjdGljICR7YT09PVwiQnJlYWtTdGF0ZW1lbnRcIj9cImJyZWFrXCI6XCJjb250aW51ZVwifS5gLElsbGVnYWxMYW5ndWFnZU1vZGVEaXJlY3RpdmU6XCJJbGxlZ2FsICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgaW4gZnVuY3Rpb24gd2l0aCBub24tc2ltcGxlIHBhcmFtZXRlciBsaXN0LlwiLElsbGVnYWxSZXR1cm46XCIncmV0dXJuJyBvdXRzaWRlIG9mIGZ1bmN0aW9uLlwiLEltcG9ydEF0dHJpYnV0ZXNVc2VBc3NlcnQ6XCJUaGUgYGFzc2VydGAga2V5d29yZCBpbiBpbXBvcnQgYXR0cmlidXRlcyBpcyBkZXByZWNhdGVkIGFuZCBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSB0aGUgYHdpdGhgIGtleXdvcmQuIFlvdSBjYW4gZW5hYmxlIHRoZSBgZGVwcmVjYXRlZEFzc2VydFN5bnRheDogdHJ1ZWAgb3B0aW9uIGluIHRoZSBpbXBvcnQgYXR0cmlidXRlcyBwbHVnaW4gdG8gc3VwcHJlc3MgdGhpcyBlcnJvci5cIixJbXBvcnRCaW5kaW5nSXNTdHJpbmc6KHtpbXBvcnROYW1lOmF9KT0+YEEgc3RyaW5nIGxpdGVyYWwgY2Fubm90IGJlIHVzZWQgYXMgYW4gaW1wb3J0ZWQgYmluZGluZy5cbi0gRGlkIHlvdSBtZWFuIFxcYGltcG9ydCB7IFwiJHthfVwiIGFzIGZvbyB9XFxgP2AsSW1wb3J0Q2FsbEFyZ3VtZW50VHJhaWxpbmdDb21tYTpcIlRyYWlsaW5nIGNvbW1hIGlzIGRpc2FsbG93ZWQgaW5zaWRlIGltcG9ydCguLi4pIGFyZ3VtZW50cy5cIixJbXBvcnRDYWxsQXJpdHk6KHttYXhBcmd1bWVudENvdW50OmF9KT0+YFxcYGltcG9ydCgpXFxgIHJlcXVpcmVzIGV4YWN0bHkgJHthPT09MT9cIm9uZSBhcmd1bWVudFwiOlwib25lIG9yIHR3byBhcmd1bWVudHNcIn0uYCxJbXBvcnRDYWxsTm90TmV3RXhwcmVzc2lvbjpcIkNhbm5vdCB1c2UgbmV3IHdpdGggaW1wb3J0KC4uLikuXCIsSW1wb3J0Q2FsbFNwcmVhZEFyZ3VtZW50OlwiYC4uLmAgaXMgbm90IGFsbG93ZWQgaW4gYGltcG9ydCgpYC5cIixJbXBvcnRKU09OQmluZGluZ05vdERlZmF1bHQ6XCJBIEpTT04gbW9kdWxlIGNhbiBvbmx5IGJlIGltcG9ydGVkIHdpdGggYGRlZmF1bHRgLlwiLEltcG9ydFJlZmxlY3Rpb25IYXNBc3NlcnRpb246XCJgaW1wb3J0IG1vZHVsZSB4YCBjYW5ub3QgaGF2ZSBhc3NlcnRpb25zLlwiLEltcG9ydFJlZmxlY3Rpb25Ob3RCaW5kaW5nOidPbmx5IGBpbXBvcnQgbW9kdWxlIHggZnJvbSBcIi4vbW9kdWxlXCJgIGlzIHZhbGlkLicsSW5jb21wYXRpYmxlUmVnRXhwVVZGbGFnczpcIlRoZSAndScgYW5kICd2JyByZWd1bGFyIGV4cHJlc3Npb24gZmxhZ3MgY2Fubm90IGJlIGVuYWJsZWQgYXQgdGhlIHNhbWUgdGltZS5cIixJbnZhbGlkQmlnSW50TGl0ZXJhbDpcIkludmFsaWQgQmlnSW50TGl0ZXJhbC5cIixJbnZhbGlkQ29kZVBvaW50OlwiQ29kZSBwb2ludCBvdXQgb2YgYm91bmRzLlwiLEludmFsaWRDb3ZlckluaXRpYWxpemVkTmFtZTpcIkludmFsaWQgc2hvcnRoYW5kIHByb3BlcnR5IGluaXRpYWxpemVyLlwiLEludmFsaWREZWNpbWFsOlwiSW52YWxpZCBkZWNpbWFsLlwiLEludmFsaWREaWdpdDooe3JhZGl4OmF9KT0+YEV4cGVjdGVkIG51bWJlciBpbiByYWRpeCAke2F9LmAsSW52YWxpZEVzY2FwZVNlcXVlbmNlOlwiQmFkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2UuXCIsSW52YWxpZEVzY2FwZVNlcXVlbmNlVGVtcGxhdGU6XCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSBpbiB0ZW1wbGF0ZS5cIixJbnZhbGlkRXNjYXBlZFJlc2VydmVkV29yZDooe3Jlc2VydmVkV29yZDphfSk9PmBFc2NhcGUgc2VxdWVuY2UgaW4ga2V5d29yZCAke2F9LmAsSW52YWxpZElkZW50aWZpZXI6KHtpZGVudGlmaWVyTmFtZTphfSk9PmBJbnZhbGlkIGlkZW50aWZpZXIgJHthfS5gLEludmFsaWRMaHM6KHthbmNlc3RvcjphfSk9PmBJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluICR7UWUoYSl9LmAsSW52YWxpZExoc0JpbmRpbmc6KHthbmNlc3RvcjphfSk9PmBCaW5kaW5nIGludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gJHtRZShhKX0uYCxJbnZhbGlkTnVtYmVyOlwiSW52YWxpZCBudW1iZXIuXCIsSW52YWxpZE9yTWlzc2luZ0V4cG9uZW50OlwiRmxvYXRpbmctcG9pbnQgbnVtYmVycyByZXF1aXJlIGEgdmFsaWQgZXhwb25lbnQgYWZ0ZXIgdGhlICdlJy5cIixJbnZhbGlkT3JVbmV4cGVjdGVkVG9rZW46KHt1bmV4cGVjdGVkOmF9KT0+YFVuZXhwZWN0ZWQgY2hhcmFjdGVyICcke2F9Jy5gLEludmFsaWRQYXJlbnRoZXNpemVkQXNzaWdubWVudDpcIkludmFsaWQgcGFyZW50aGVzaXplZCBhc3NpZ25tZW50IHBhdHRlcm4uXCIsSW52YWxpZFByaXZhdGVGaWVsZFJlc29sdXRpb246KHtpZGVudGlmaWVyTmFtZTphfSk9PmBQcml2YXRlIG5hbWUgIyR7YX0gaXMgbm90IGRlZmluZWQuYCxJbnZhbGlkUHJvcGVydHlCaW5kaW5nUGF0dGVybjpcIkJpbmRpbmcgbWVtYmVyIGV4cHJlc3Npb24uXCIsSW52YWxpZFJlY29yZFByb3BlcnR5OlwiT25seSBwcm9wZXJ0aWVzIGFuZCBzcHJlYWQgZWxlbWVudHMgYXJlIGFsbG93ZWQgaW4gcmVjb3JkIGRlZmluaXRpb25zLlwiLEludmFsaWRSZXN0QXNzaWdubWVudFBhdHRlcm46XCJJbnZhbGlkIHJlc3Qgb3BlcmF0b3IncyBhcmd1bWVudC5cIixMYWJlbFJlZGVjbGFyYXRpb246KHtsYWJlbE5hbWU6YX0pPT5gTGFiZWwgJyR7YX0nIGlzIGFscmVhZHkgZGVjbGFyZWQuYCxMZXRJbkxleGljYWxCaW5kaW5nOlwiJ2xldCcgaXMgbm90IGFsbG93ZWQgdG8gYmUgdXNlZCBhcyBhIG5hbWUgaW4gJ2xldCcgb3IgJ2NvbnN0JyBkZWNsYXJhdGlvbnMuXCIsTGluZVRlcm1pbmF0b3JCZWZvcmVBcnJvdzpcIk5vIGxpbmUgYnJlYWsgaXMgYWxsb3dlZCBiZWZvcmUgJz0+Jy5cIixNYWxmb3JtZWRSZWdFeHBGbGFnczpcIkludmFsaWQgcmVndWxhciBleHByZXNzaW9uIGZsYWcuXCIsTWlzc2luZ0NsYXNzTmFtZTpcIkEgY2xhc3MgbmFtZSBpcyByZXF1aXJlZC5cIixNaXNzaW5nRXFJbkFzc2lnbm1lbnQ6XCJPbmx5ICc9JyBvcGVyYXRvciBjYW4gYmUgdXNlZCBmb3Igc3BlY2lmeWluZyBkZWZhdWx0IHZhbHVlLlwiLE1pc3NpbmdTZW1pY29sb246XCJNaXNzaW5nIHNlbWljb2xvbi5cIixNaXNzaW5nUGx1Z2luOih7bWlzc2luZ1BsdWdpbjphfSk9PmBUaGlzIGV4cGVyaW1lbnRhbCBzeW50YXggcmVxdWlyZXMgZW5hYmxpbmcgdGhlIHBhcnNlciBwbHVnaW46ICR7YS5tYXAodD0+SlNPTi5zdHJpbmdpZnkodCkpLmpvaW4oXCIsIFwiKX0uYCxNaXNzaW5nT25lT2ZQbHVnaW5zOih7bWlzc2luZ1BsdWdpbjphfSk9PmBUaGlzIGV4cGVyaW1lbnRhbCBzeW50YXggcmVxdWlyZXMgZW5hYmxpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFyc2VyIHBsdWdpbihzKTogJHthLm1hcCh0PT5KU09OLnN0cmluZ2lmeSh0KSkuam9pbihcIiwgXCIpfS5gLE1pc3NpbmdVbmljb2RlRXNjYXBlOlwiRXhwZWN0aW5nIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIFxcXFx1WFhYWC5cIixNaXhpbmdDb2FsZXNjZVdpdGhMb2dpY2FsOlwiTnVsbGlzaCBjb2FsZXNjaW5nIG9wZXJhdG9yKD8/KSByZXF1aXJlcyBwYXJlbnMgd2hlbiBtaXhpbmcgd2l0aCBsb2dpY2FsIG9wZXJhdG9ycy5cIixNb2R1bGVBdHRyaWJ1dGVEaWZmZXJlbnRGcm9tVHlwZTpcIlRoZSBvbmx5IGFjY2VwdGVkIG1vZHVsZSBhdHRyaWJ1dGUgaXMgYHR5cGVgLlwiLE1vZHVsZUF0dHJpYnV0ZUludmFsaWRWYWx1ZTpcIk9ubHkgc3RyaW5nIGxpdGVyYWxzIGFyZSBhbGxvd2VkIGFzIG1vZHVsZSBhdHRyaWJ1dGUgdmFsdWVzLlwiLE1vZHVsZUF0dHJpYnV0ZXNXaXRoRHVwbGljYXRlS2V5czooe2tleTphfSk9PmBEdXBsaWNhdGUga2V5IFwiJHthfVwiIGlzIG5vdCBhbGxvd2VkIGluIG1vZHVsZSBhdHRyaWJ1dGVzLmAsTW9kdWxlRXhwb3J0TmFtZUhhc0xvbmVTdXJyb2dhdGU6KHtzdXJyb2dhdGVDaGFyQ29kZTphfSk9PmBBbiBleHBvcnQgbmFtZSBjYW5ub3QgaW5jbHVkZSBhIGxvbmUgc3Vycm9nYXRlLCBmb3VuZCAnXFxcXHUke2EudG9TdHJpbmcoMTYpfScuYCxNb2R1bGVFeHBvcnRVbmRlZmluZWQ6KHtsb2NhbE5hbWU6YX0pPT5gRXhwb3J0ICcke2F9JyBpcyBub3QgZGVmaW5lZC5gLE11bHRpcGxlRGVmYXVsdHNJblN3aXRjaDpcIk11bHRpcGxlIGRlZmF1bHQgY2xhdXNlcy5cIixOZXdsaW5lQWZ0ZXJUaHJvdzpcIklsbGVnYWwgbmV3bGluZSBhZnRlciB0aHJvdy5cIixOb0NhdGNoT3JGaW5hbGx5OlwiTWlzc2luZyBjYXRjaCBvciBmaW5hbGx5IGNsYXVzZS5cIixOdW1iZXJJZGVudGlmaWVyOlwiSWRlbnRpZmllciBkaXJlY3RseSBhZnRlciBudW1iZXIuXCIsTnVtZXJpY1NlcGFyYXRvckluRXNjYXBlU2VxdWVuY2U6XCJOdW1lcmljIHNlcGFyYXRvcnMgYXJlIG5vdCBhbGxvd2VkIGluc2lkZSB1bmljb2RlIGVzY2FwZSBzZXF1ZW5jZXMgb3IgaGV4IGVzY2FwZSBzZXF1ZW5jZXMuXCIsT2Jzb2xldGVBd2FpdFN0YXI6XCInYXdhaXQqJyBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGFzeW5jIGZ1bmN0aW9ucyBwcm9wb3NhbC4gVXNlIFByb21pc2UuYWxsKCkgaW5zdGVhZC5cIixPcHRpb25hbENoYWluaW5nTm9OZXc6XCJDb25zdHJ1Y3RvcnMgaW4vYWZ0ZXIgYW4gT3B0aW9uYWwgQ2hhaW4gYXJlIG5vdCBhbGxvd2VkLlwiLE9wdGlvbmFsQ2hhaW5pbmdOb1RlbXBsYXRlOlwiVGFnZ2VkIFRlbXBsYXRlIExpdGVyYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBvcHRpb25hbENoYWluLlwiLE92ZXJyaWRlT25Db25zdHJ1Y3RvcjpcIidvdmVycmlkZScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLlwiLFBhcmFtRHVwZTpcIkFyZ3VtZW50IG5hbWUgY2xhc2guXCIsUGF0dGVybkhhc0FjY2Vzc29yOlwiT2JqZWN0IHBhdHRlcm4gY2FuJ3QgY29udGFpbiBnZXR0ZXIgb3Igc2V0dGVyLlwiLFBhdHRlcm5IYXNNZXRob2Q6XCJPYmplY3QgcGF0dGVybiBjYW4ndCBjb250YWluIG1ldGhvZHMuXCIsUHJpdmF0ZUluRXhwZWN0ZWRJbjooe2lkZW50aWZpZXJOYW1lOmF9KT0+YFByaXZhdGUgbmFtZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiBwcm9wZXJ0eSBhY2Nlc3NlcyAoXFxgb2JqLiMke2F9XFxgKSBvciBpbiBcXGBpblxcYCBleHByZXNzaW9ucyAoXFxgIyR7YX0gaW4gb2JqXFxgKS5gLFByaXZhdGVOYW1lUmVkZWNsYXJhdGlvbjooe2lkZW50aWZpZXJOYW1lOmF9KT0+YER1cGxpY2F0ZSBwcml2YXRlIG5hbWUgIyR7YX0uYCxSZWNvcmRFeHByZXNzaW9uQmFySW5jb3JyZWN0RW5kU3ludGF4VHlwZTpcIlJlY29yZCBleHByZXNzaW9ucyBlbmRpbmcgd2l0aCAnfH0nIGFyZSBvbmx5IGFsbG93ZWQgd2hlbiB0aGUgJ3N5bnRheFR5cGUnIG9wdGlvbiBvZiB0aGUgJ3JlY29yZEFuZFR1cGxlJyBwbHVnaW4gaXMgc2V0IHRvICdiYXInLlwiLFJlY29yZEV4cHJlc3Npb25CYXJJbmNvcnJlY3RTdGFydFN5bnRheFR5cGU6XCJSZWNvcmQgZXhwcmVzc2lvbnMgc3RhcnRpbmcgd2l0aCAne3wnIGFyZSBvbmx5IGFsbG93ZWQgd2hlbiB0aGUgJ3N5bnRheFR5cGUnIG9wdGlvbiBvZiB0aGUgJ3JlY29yZEFuZFR1cGxlJyBwbHVnaW4gaXMgc2V0IHRvICdiYXInLlwiLFJlY29yZEV4cHJlc3Npb25IYXNoSW5jb3JyZWN0U3RhcnRTeW50YXhUeXBlOlwiUmVjb3JkIGV4cHJlc3Npb25zIHN0YXJ0aW5nIHdpdGggJyN7JyBhcmUgb25seSBhbGxvd2VkIHdoZW4gdGhlICdzeW50YXhUeXBlJyBvcHRpb24gb2YgdGhlICdyZWNvcmRBbmRUdXBsZScgcGx1Z2luIGlzIHNldCB0byAnaGFzaCcuXCIsUmVjb3JkTm9Qcm90bzpcIidfX3Byb3RvX18nIGlzIG5vdCBhbGxvd2VkIGluIFJlY29yZCBleHByZXNzaW9ucy5cIixSZXN0VHJhaWxpbmdDb21tYTpcIlVuZXhwZWN0ZWQgdHJhaWxpbmcgY29tbWEgYWZ0ZXIgcmVzdCBlbGVtZW50LlwiLFNsb3BweUZ1bmN0aW9uOlwiSW4gbm9uLXN0cmljdCBtb2RlIGNvZGUsIGZ1bmN0aW9ucyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCB0b3AgbGV2ZWwgb3IgaW5zaWRlIGEgYmxvY2suXCIsU2xvcHB5RnVuY3Rpb25Bbm5leEI6XCJJbiBub24tc3RyaWN0IG1vZGUgY29kZSwgZnVuY3Rpb25zIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IHRvcCBsZXZlbCwgaW5zaWRlIGEgYmxvY2ssIG9yIGFzIHRoZSBib2R5IG9mIGFuIGlmIHN0YXRlbWVudC5cIixTdGF0aWNQcm90b3R5cGU6XCJDbGFzc2VzIG1heSBub3QgaGF2ZSBzdGF0aWMgcHJvcGVydHkgbmFtZWQgcHJvdG90eXBlLlwiLFN1cGVyTm90QWxsb3dlZDpcImBzdXBlcigpYCBpcyBvbmx5IHZhbGlkIGluc2lkZSBhIGNsYXNzIGNvbnN0cnVjdG9yIG9mIGEgc3ViY2xhc3MuIE1heWJlIGEgdHlwbyBpbiB0aGUgbWV0aG9kIG5hbWUgKCdjb25zdHJ1Y3RvcicpIG9yIG5vdCBleHRlbmRpbmcgYW5vdGhlciBjbGFzcz9cIixTdXBlclByaXZhdGVGaWVsZDpcIlByaXZhdGUgZmllbGRzIGNhbid0IGJlIGFjY2Vzc2VkIG9uIHN1cGVyLlwiLFRyYWlsaW5nRGVjb3JhdG9yOlwiRGVjb3JhdG9ycyBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgY2xhc3MgZWxlbWVudC5cIixUdXBsZUV4cHJlc3Npb25CYXJJbmNvcnJlY3RFbmRTeW50YXhUeXBlOlwiVHVwbGUgZXhwcmVzc2lvbnMgZW5kaW5nIHdpdGggJ3xdJyBhcmUgb25seSBhbGxvd2VkIHdoZW4gdGhlICdzeW50YXhUeXBlJyBvcHRpb24gb2YgdGhlICdyZWNvcmRBbmRUdXBsZScgcGx1Z2luIGlzIHNldCB0byAnYmFyJy5cIixUdXBsZUV4cHJlc3Npb25CYXJJbmNvcnJlY3RTdGFydFN5bnRheFR5cGU6XCJUdXBsZSBleHByZXNzaW9ucyBzdGFydGluZyB3aXRoICdbfCcgYXJlIG9ubHkgYWxsb3dlZCB3aGVuIHRoZSAnc3ludGF4VHlwZScgb3B0aW9uIG9mIHRoZSAncmVjb3JkQW5kVHVwbGUnIHBsdWdpbiBpcyBzZXQgdG8gJ2JhcicuXCIsVHVwbGVFeHByZXNzaW9uSGFzaEluY29ycmVjdFN0YXJ0U3ludGF4VHlwZTpcIlR1cGxlIGV4cHJlc3Npb25zIHN0YXJ0aW5nIHdpdGggJyNbJyBhcmUgb25seSBhbGxvd2VkIHdoZW4gdGhlICdzeW50YXhUeXBlJyBvcHRpb24gb2YgdGhlICdyZWNvcmRBbmRUdXBsZScgcGx1Z2luIGlzIHNldCB0byAnaGFzaCcuXCIsVW5leHBlY3RlZEFyZ3VtZW50UGxhY2Vob2xkZXI6XCJVbmV4cGVjdGVkIGFyZ3VtZW50IHBsYWNlaG9sZGVyLlwiLFVuZXhwZWN0ZWRBd2FpdEFmdGVyUGlwZWxpbmVCb2R5OidVbmV4cGVjdGVkIFwiYXdhaXRcIiBhZnRlciBwaXBlbGluZSBib2R5OyBhd2FpdCBtdXN0IGhhdmUgcGFyZW50aGVzZXMgaW4gbWluaW1hbCBwcm9wb3NhbC4nLFVuZXhwZWN0ZWREaWdpdEFmdGVySGFzaDpcIlVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgaGFzaCB0b2tlbi5cIixVbmV4cGVjdGVkSW1wb3J0RXhwb3J0OlwiJ2ltcG9ydCcgYW5kICdleHBvcnQnIG1heSBvbmx5IGFwcGVhciBhdCB0aGUgdG9wIGxldmVsLlwiLFVuZXhwZWN0ZWRLZXl3b3JkOih7a2V5d29yZDphfSk9PmBVbmV4cGVjdGVkIGtleXdvcmQgJyR7YX0nLmAsVW5leHBlY3RlZExlYWRpbmdEZWNvcmF0b3I6XCJMZWFkaW5nIGRlY29yYXRvcnMgbXVzdCBiZSBhdHRhY2hlZCB0byBhIGNsYXNzIGRlY2xhcmF0aW9uLlwiLFVuZXhwZWN0ZWRMZXhpY2FsRGVjbGFyYXRpb246XCJMZXhpY2FsIGRlY2xhcmF0aW9uIGNhbm5vdCBhcHBlYXIgaW4gYSBzaW5nbGUtc3RhdGVtZW50IGNvbnRleHQuXCIsVW5leHBlY3RlZE5ld1RhcmdldDpcImBuZXcudGFyZ2V0YCBjYW4gb25seSBiZSB1c2VkIGluIGZ1bmN0aW9ucyBvciBjbGFzcyBwcm9wZXJ0aWVzLlwiLFVuZXhwZWN0ZWROdW1lcmljU2VwYXJhdG9yOlwiQSBudW1lcmljIHNlcGFyYXRvciBpcyBvbmx5IGFsbG93ZWQgYmV0d2VlbiB0d28gZGlnaXRzLlwiLFVuZXhwZWN0ZWRQcml2YXRlRmllbGQ6XCJVbmV4cGVjdGVkIHByaXZhdGUgbmFtZS5cIixVbmV4cGVjdGVkUmVzZXJ2ZWRXb3JkOih7cmVzZXJ2ZWRXb3JkOmF9KT0+YFVuZXhwZWN0ZWQgcmVzZXJ2ZWQgd29yZCAnJHthfScuYCxVbmV4cGVjdGVkU3VwZXI6XCInc3VwZXInIGlzIG9ubHkgYWxsb3dlZCBpbiBvYmplY3QgbWV0aG9kcyBhbmQgY2xhc3Nlcy5cIixVbmV4cGVjdGVkVG9rZW46KHtleHBlY3RlZDphLHVuZXhwZWN0ZWQ6dH0pPT5gVW5leHBlY3RlZCB0b2tlbiR7dD9gICcke3R9Jy5gOlwiXCJ9JHthP2AsIGV4cGVjdGVkIFwiJHthfVwiYDpcIlwifWAsVW5leHBlY3RlZFRva2VuVW5hcnlFeHBvbmVudGlhdGlvbjpcIklsbGVnYWwgZXhwcmVzc2lvbi4gV3JhcCBsZWZ0IGhhbmQgc2lkZSBvciBlbnRpcmUgZXhwb25lbnRpYXRpb24gaW4gcGFyZW50aGVzZXMuXCIsVW5leHBlY3RlZFVzaW5nRGVjbGFyYXRpb246XCJVc2luZyBkZWNsYXJhdGlvbiBjYW5ub3QgYXBwZWFyIGluIHRoZSB0b3AgbGV2ZWwgd2hlbiBzb3VyY2UgdHlwZSBpcyBgc2NyaXB0YC5cIixVbnN1cHBvcnRlZEJpbmQ6XCJCaW5kaW5nIHNob3VsZCBiZSBwZXJmb3JtZWQgb24gb2JqZWN0IHByb3BlcnR5LlwiLFVuc3VwcG9ydGVkRGVjb3JhdG9yRXhwb3J0OlwiQSBkZWNvcmF0ZWQgZXhwb3J0IG11c3QgZXhwb3J0IGEgY2xhc3MgZGVjbGFyYXRpb24uXCIsVW5zdXBwb3J0ZWREZWZhdWx0RXhwb3J0OlwiT25seSBleHByZXNzaW9ucywgZnVuY3Rpb25zIG9yIGNsYXNzZXMgYXJlIGFsbG93ZWQgYXMgdGhlIGBkZWZhdWx0YCBleHBvcnQuXCIsVW5zdXBwb3J0ZWRJbXBvcnQ6XCJgaW1wb3J0YCBjYW4gb25seSBiZSB1c2VkIGluIGBpbXBvcnQoKWAgb3IgYGltcG9ydC5tZXRhYC5cIixVbnN1cHBvcnRlZE1ldGFQcm9wZXJ0eTooe3RhcmdldDphLG9ubHlWYWxpZFByb3BlcnR5TmFtZTp0fSk9PmBUaGUgb25seSB2YWxpZCBtZXRhIHByb3BlcnR5IGZvciAke2F9IGlzICR7YX0uJHt0fS5gLFVuc3VwcG9ydGVkUGFyYW1ldGVyRGVjb3JhdG9yOlwiRGVjb3JhdG9ycyBjYW5ub3QgYmUgdXNlZCB0byBkZWNvcmF0ZSBwYXJhbWV0ZXJzLlwiLFVuc3VwcG9ydGVkUHJvcGVydHlEZWNvcmF0b3I6XCJEZWNvcmF0b3JzIGNhbm5vdCBiZSB1c2VkIHRvIGRlY29yYXRlIG9iamVjdCBsaXRlcmFsIHByb3BlcnRpZXMuXCIsVW5zdXBwb3J0ZWRTdXBlcjpcIidzdXBlcicgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGZ1bmN0aW9uIGNhbGxzIChpLmUuIHN1cGVyKCkpIG9yIGluIHByb3BlcnR5IGFjY2Vzc2VzIChpLmUuIHN1cGVyLnByb3Agb3Igc3VwZXJbcHJvcF0pLlwiLFVudGVybWluYXRlZENvbW1lbnQ6XCJVbnRlcm1pbmF0ZWQgY29tbWVudC5cIixVbnRlcm1pbmF0ZWRSZWdFeHA6XCJVbnRlcm1pbmF0ZWQgcmVndWxhciBleHByZXNzaW9uLlwiLFVudGVybWluYXRlZFN0cmluZzpcIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnQuXCIsVW50ZXJtaW5hdGVkVGVtcGxhdGU6XCJVbnRlcm1pbmF0ZWQgdGVtcGxhdGUuXCIsVXNpbmdEZWNsYXJhdGlvbkhhc0JpbmRpbmdQYXR0ZXJuOlwiVXNpbmcgZGVjbGFyYXRpb24gY2Fubm90IGhhdmUgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJucy5cIixWYXJSZWRlY2xhcmF0aW9uOih7aWRlbnRpZmllck5hbWU6YX0pPT5gSWRlbnRpZmllciAnJHthfScgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZC5gLFlpZWxkQmluZGluZ0lkZW50aWZpZXI6XCJDYW4gbm90IHVzZSAneWllbGQnIGFzIGlkZW50aWZpZXIgaW5zaWRlIGEgZ2VuZXJhdG9yLlwiLFlpZWxkSW5QYXJhbWV0ZXI6XCJZaWVsZCBleHByZXNzaW9uIGlzIG5vdCBhbGxvd2VkIGluIGZvcm1hbCBwYXJhbWV0ZXJzLlwiLFplcm9EaWdpdE51bWVyaWNTZXBhcmF0b3I6XCJOdW1lcmljIHNlcGFyYXRvciBjYW4gbm90IGJlIHVzZWQgYWZ0ZXIgbGVhZGluZyAwLlwifSxoaT17U3RyaWN0RGVsZXRlOlwiRGVsZXRpbmcgbG9jYWwgdmFyaWFibGUgaW4gc3RyaWN0IG1vZGUuXCIsU3RyaWN0RXZhbEFyZ3VtZW50czooe3JlZmVyZW5jZU5hbWU6YX0pPT5gQXNzaWduaW5nIHRvICcke2F9JyBpbiBzdHJpY3QgbW9kZS5gLFN0cmljdEV2YWxBcmd1bWVudHNCaW5kaW5nOih7YmluZGluZ05hbWU6YX0pPT5gQmluZGluZyAnJHthfScgaW4gc3RyaWN0IG1vZGUuYCxTdHJpY3RGdW5jdGlvbjpcIkluIHN0cmljdCBtb2RlIGNvZGUsIGZ1bmN0aW9ucyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCB0b3AgbGV2ZWwgb3IgaW5zaWRlIGEgYmxvY2suXCIsU3RyaWN0TnVtZXJpY0VzY2FwZTpcIlRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXFxcMCcuXCIsU3RyaWN0T2N0YWxMaXRlcmFsOlwiTGVnYWN5IG9jdGFsIGxpdGVyYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZS5cIixTdHJpY3RXaXRoOlwiJ3dpdGgnIGluIHN0cmljdCBtb2RlLlwifSxsaT1uZXcgU2V0KFtcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIsXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiLFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIsXCJZaWVsZEV4cHJlc3Npb25cIl0pLGNpPXtQaXBlQm9keUlzVGlnaHRlcjpcIlVuZXhwZWN0ZWQgeWllbGQgYWZ0ZXIgcGlwZWxpbmUgYm9keTsgYW55IHlpZWxkIGV4cHJlc3Npb24gYWN0aW5nIGFzIEhhY2stc3R5bGUgcGlwZSBib2R5IG11c3QgYmUgcGFyZW50aGVzaXplZCBkdWUgdG8gaXRzIGxvb3NlIG9wZXJhdG9yIHByZWNlZGVuY2UuXCIsUGlwZVRvcGljUmVxdWlyZXNIYWNrUGlwZXM6J1RvcGljIHJlZmVyZW5jZSBpcyB1c2VkLCBidXQgdGhlIHBpcGVsaW5lT3BlcmF0b3IgcGx1Z2luIHdhcyBub3QgcGFzc2VkIGEgXCJwcm9wb3NhbFwiOiBcImhhY2tcIiBvciBcInNtYXJ0XCIgb3B0aW9uLicsUGlwZVRvcGljVW5ib3VuZDpcIlRvcGljIHJlZmVyZW5jZSBpcyB1bmJvdW5kOyBpdCBtdXN0IGJlIGluc2lkZSBhIHBpcGUgYm9keS5cIixQaXBlVG9waWNVbmNvbmZpZ3VyZWRUb2tlbjooe3Rva2VuOmF9KT0+YEludmFsaWQgdG9waWMgdG9rZW4gJHthfS4gSW4gb3JkZXIgdG8gdXNlICR7YX0gYXMgYSB0b3BpYyByZWZlcmVuY2UsIHRoZSBwaXBlbGluZU9wZXJhdG9yIHBsdWdpbiBtdXN0IGJlIGNvbmZpZ3VyZWQgd2l0aCB7IFwicHJvcG9zYWxcIjogXCJoYWNrXCIsIFwidG9waWNUb2tlblwiOiBcIiR7YX1cIiB9LmAsUGlwZVRvcGljVW51c2VkOlwiSGFjay1zdHlsZSBwaXBlIGJvZHkgZG9lcyBub3QgY29udGFpbiBhIHRvcGljIHJlZmVyZW5jZTsgSGFjay1zdHlsZSBwaXBlcyBtdXN0IHVzZSB0b3BpYyBhdCBsZWFzdCBvbmNlLlwiLFBpcGVVbnBhcmVudGhlc2l6ZWRCb2R5Oih7dHlwZTphfSk9PmBIYWNrLXN0eWxlIHBpcGUgYm9keSBjYW5ub3QgYmUgYW4gdW5wYXJlbnRoZXNpemVkICR7UWUoe3R5cGU6YX0pfTsgcGxlYXNlIHdyYXAgaXQgaW4gcGFyZW50aGVzZXMuYCxQaXBlbGluZUJvZHlOb0Fycm93OidVbmV4cGVjdGVkIGFycm93IFwiPT5cIiBhZnRlciBwaXBlbGluZSBib2R5OyBhcnJvdyBmdW5jdGlvbiBpbiBwaXBlbGluZSBib2R5IG11c3QgYmUgcGFyZW50aGVzaXplZC4nLFBpcGVsaW5lQm9keVNlcXVlbmNlRXhwcmVzc2lvbjpcIlBpcGVsaW5lIGJvZHkgbWF5IG5vdCBiZSBhIGNvbW1hLXNlcGFyYXRlZCBzZXF1ZW5jZSBleHByZXNzaW9uLlwiLFBpcGVsaW5lSGVhZFNlcXVlbmNlRXhwcmVzc2lvbjpcIlBpcGVsaW5lIGhlYWQgc2hvdWxkIG5vdCBiZSBhIGNvbW1hLXNlcGFyYXRlZCBzZXF1ZW5jZSBleHByZXNzaW9uLlwiLFBpcGVsaW5lVG9waWNVbnVzZWQ6XCJQaXBlbGluZSBpcyBpbiB0b3BpYyBzdHlsZSBidXQgZG9lcyBub3QgdXNlIHRvcGljIHJlZmVyZW5jZS5cIixQcmltYXJ5VG9waWNOb3RBbGxvd2VkOlwiVG9waWMgcmVmZXJlbmNlIHdhcyB1c2VkIGluIGEgbGV4aWNhbCBjb250ZXh0IHdpdGhvdXQgdG9waWMgYmluZGluZy5cIixQcmltYXJ5VG9waWNSZXF1aXJlc1NtYXJ0UGlwZWxpbmU6J1RvcGljIHJlZmVyZW5jZSBpcyB1c2VkLCBidXQgdGhlIHBpcGVsaW5lT3BlcmF0b3IgcGx1Z2luIHdhcyBub3QgcGFzc2VkIGEgXCJwcm9wb3NhbFwiOiBcImhhY2tcIiBvciBcInNtYXJ0XCIgb3B0aW9uLid9LHBpPVtcInRvTWVzc2FnZVwiXSx1aT1bXCJtZXNzYWdlXCJdO2Z1bmN0aW9uIGRpKGEpe2xldHt0b01lc3NhZ2U6dH09YSxlPUxlKGEscGkpO3JldHVybiBmdW5jdGlvbiBzKHtsb2M6aSxkZXRhaWxzOnJ9KXtyZXR1cm4gYWkoU3ludGF4RXJyb3IsT2JqZWN0LmFzc2lnbih7fSxlLHtsb2M6aX0pLHtjbG9uZShuPXt9KXtsZXQgbz1uLmxvY3x8e307cmV0dXJuIHMoe2xvYzpuZXcgRihcImxpbmVcImluIG8/by5saW5lOnRoaXMubG9jLmxpbmUsXCJjb2x1bW5cImluIG8/by5jb2x1bW46dGhpcy5sb2MuY29sdW1uLFwiaW5kZXhcImluIG8/by5pbmRleDp0aGlzLmxvYy5pbmRleCksZGV0YWlsczpPYmplY3QuYXNzaWduKHt9LHRoaXMuZGV0YWlscyxuLmRldGFpbHMpfSl9LGRldGFpbHM6e3ZhbHVlOnIsZW51bWVyYWJsZTohMX0sbWVzc2FnZTp7Z2V0KCl7cmV0dXJuYCR7dCh0aGlzLmRldGFpbHMpfSAoJHt0aGlzLmxvYy5saW5lfToke3RoaXMubG9jLmNvbHVtbn0pYH0sc2V0KG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibWVzc2FnZVwiLHt2YWx1ZTpufSl9fSxwb3M6e3JlZmxlY3Q6XCJsb2MuaW5kZXhcIixlbnVtZXJhYmxlOiEwfSxtaXNzaW5nUGx1Z2luOlwibWlzc2luZ1BsdWdpblwiaW4gciYme3JlZmxlY3Q6XCJkZXRhaWxzLm1pc3NpbmdQbHVnaW5cIixlbnVtZXJhYmxlOiEwfX0pfX1mdW5jdGlvbiAkKGEsdCl7aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gcz0+JChzLGFbMF0pO2xldCBlPXt9O2ZvcihsZXQgcyBvZiBPYmplY3Qua2V5cyhhKSl7bGV0IGk9YVtzXSxyPXR5cGVvZiBpPT1cInN0cmluZ1wiP3ttZXNzYWdlOigpPT5pfTp0eXBlb2YgaT09XCJmdW5jdGlvblwiP3ttZXNzYWdlOml9Omkse21lc3NhZ2U6bn09cixvPUxlKHIsdWkpLGg9dHlwZW9mIG49PVwic3RyaW5nXCI/KCk9Pm46bjtlW3NdPWRpKE9iamVjdC5hc3NpZ24oe2NvZGU6WWUuU3ludGF4RXJyb3IscmVhc29uQ29kZTpzLHRvTWVzc2FnZTpofSx0P3tzeW50YXhQbHVnaW46dH06e30sbykpfXJldHVybiBlfXZhciBwPU9iamVjdC5hc3NpZ24oe30sJChuaSksJChvaSksJChoaSksJGBwaXBlbGluZU9wZXJhdG9yYChjaSkpLHtkZWZpbmVQcm9wZXJ0eTpmaX09T2JqZWN0LF90PShhLHQpPT5maShhLHQse2VudW1lcmFibGU6ITEsdmFsdWU6YVt0XX0pO2Z1bmN0aW9uIHBlKGEpe3JldHVybiBhLmxvYy5zdGFydCYmX3QoYS5sb2Muc3RhcnQsXCJpbmRleFwiKSxhLmxvYy5lbmQmJl90KGEubG9jLmVuZCxcImluZGV4XCIpLGF9dmFyIG1pPWE9PmNsYXNzIGV4dGVuZHMgYXtwYXJzZSgpe2xldCBlPXBlKHN1cGVyLnBhcnNlKCkpO3JldHVybiB0aGlzLm9wdGlvbnMudG9rZW5zJiYoZS50b2tlbnM9ZS50b2tlbnMubWFwKHBlKSksZX1wYXJzZVJlZ0V4cExpdGVyYWwoe3BhdHRlcm46ZSxmbGFnczpzfSl7bGV0IGk9bnVsbDt0cnl7aT1uZXcgUmVnRXhwKGUscyl9Y2F0Y2h7fWxldCByPXRoaXMuZXN0cmVlUGFyc2VMaXRlcmFsKGkpO3JldHVybiByLnJlZ2V4PXtwYXR0ZXJuOmUsZmxhZ3M6c30scn1wYXJzZUJpZ0ludExpdGVyYWwoZSl7bGV0IHM7dHJ5e3M9QmlnSW50KGUpfWNhdGNoe3M9bnVsbH1sZXQgaT10aGlzLmVzdHJlZVBhcnNlTGl0ZXJhbChzKTtyZXR1cm4gaS5iaWdpbnQ9U3RyaW5nKGkudmFsdWV8fGUpLGl9cGFyc2VEZWNpbWFsTGl0ZXJhbChlKXtsZXQgaT10aGlzLmVzdHJlZVBhcnNlTGl0ZXJhbChudWxsKTtyZXR1cm4gaS5kZWNpbWFsPVN0cmluZyhpLnZhbHVlfHxlKSxpfWVzdHJlZVBhcnNlTGl0ZXJhbChlKXtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWwoZSxcIkxpdGVyYWxcIil9cGFyc2VTdHJpbmdMaXRlcmFsKGUpe3JldHVybiB0aGlzLmVzdHJlZVBhcnNlTGl0ZXJhbChlKX1wYXJzZU51bWVyaWNMaXRlcmFsKGUpe3JldHVybiB0aGlzLmVzdHJlZVBhcnNlTGl0ZXJhbChlKX1wYXJzZU51bGxMaXRlcmFsKCl7cmV0dXJuIHRoaXMuZXN0cmVlUGFyc2VMaXRlcmFsKG51bGwpfXBhcnNlQm9vbGVhbkxpdGVyYWwoZSl7cmV0dXJuIHRoaXMuZXN0cmVlUGFyc2VMaXRlcmFsKGUpfWRpcmVjdGl2ZVRvU3RtdChlKXtsZXQgcz1lLnZhbHVlO2RlbGV0ZSBlLnZhbHVlLHMudHlwZT1cIkxpdGVyYWxcIixzLnJhdz1zLmV4dHJhLnJhdyxzLnZhbHVlPXMuZXh0cmEuZXhwcmVzc2lvblZhbHVlO2xldCBpPWU7cmV0dXJuIGkudHlwZT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixpLmV4cHJlc3Npb249cyxpLmRpcmVjdGl2ZT1zLmV4dHJhLnJhd1ZhbHVlLGRlbGV0ZSBzLmV4dHJhLGl9aW5pdEZ1bmN0aW9uKGUscyl7c3VwZXIuaW5pdEZ1bmN0aW9uKGUscyksZS5leHByZXNzaW9uPSExfWNoZWNrRGVjbGFyYXRpb24oZSl7ZSE9bnVsbCYmdGhpcy5pc09iamVjdFByb3BlcnR5KGUpP3RoaXMuY2hlY2tEZWNsYXJhdGlvbihlLnZhbHVlKTpzdXBlci5jaGVja0RlY2xhcmF0aW9uKGUpfWdldE9iamVjdE9yQ2xhc3NNZXRob2RQYXJhbXMoZSl7cmV0dXJuIGUudmFsdWUucGFyYW1zfWlzVmFsaWREaXJlY3RpdmUoZSl7dmFyIHM7cmV0dXJuIGUudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwiJiZlLmV4cHJlc3Npb24udHlwZT09PVwiTGl0ZXJhbFwiJiZ0eXBlb2YgZS5leHByZXNzaW9uLnZhbHVlPT1cInN0cmluZ1wiJiYhKChzPWUuZXhwcmVzc2lvbi5leHRyYSkhPW51bGwmJnMucGFyZW50aGVzaXplZCl9cGFyc2VCbG9ja0JvZHkoZSxzLGkscixuKXtzdXBlci5wYXJzZUJsb2NrQm9keShlLHMsaSxyLG4pO2xldCBvPWUuZGlyZWN0aXZlcy5tYXAoaD0+dGhpcy5kaXJlY3RpdmVUb1N0bXQoaCkpO2UuYm9keT1vLmNvbmNhdChlLmJvZHkpLGRlbGV0ZSBlLmRpcmVjdGl2ZXN9cHVzaENsYXNzTWV0aG9kKGUscyxpLHIsbixvKXt0aGlzLnBhcnNlTWV0aG9kKHMsaSxyLG4sbyxcIkNsYXNzTWV0aG9kXCIsITApLHMudHlwZVBhcmFtZXRlcnMmJihzLnZhbHVlLnR5cGVQYXJhbWV0ZXJzPXMudHlwZVBhcmFtZXRlcnMsZGVsZXRlIHMudHlwZVBhcmFtZXRlcnMpLGUuYm9keS5wdXNoKHMpfXBhcnNlUHJpdmF0ZU5hbWUoKXtsZXQgZT1zdXBlci5wYXJzZVByaXZhdGVOYW1lKCk7cmV0dXJuIHRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZXN0cmVlXCIsXCJjbGFzc0ZlYXR1cmVzXCIpP3RoaXMuY29udmVydFByaXZhdGVOYW1lVG9Qcml2YXRlSWRlbnRpZmllcihlKTplfWNvbnZlcnRQcml2YXRlTmFtZVRvUHJpdmF0ZUlkZW50aWZpZXIoZSl7bGV0IHM9c3VwZXIuZ2V0UHJpdmF0ZU5hbWVTVihlKTtyZXR1cm4gZT1lLGRlbGV0ZSBlLmlkLGUubmFtZT1zLGUudHlwZT1cIlByaXZhdGVJZGVudGlmaWVyXCIsZX1pc1ByaXZhdGVOYW1lKGUpe3JldHVybiB0aGlzLmdldFBsdWdpbk9wdGlvbihcImVzdHJlZVwiLFwiY2xhc3NGZWF0dXJlc1wiKT9lLnR5cGU9PT1cIlByaXZhdGVJZGVudGlmaWVyXCI6c3VwZXIuaXNQcml2YXRlTmFtZShlKX1nZXRQcml2YXRlTmFtZVNWKGUpe3JldHVybiB0aGlzLmdldFBsdWdpbk9wdGlvbihcImVzdHJlZVwiLFwiY2xhc3NGZWF0dXJlc1wiKT9lLm5hbWU6c3VwZXIuZ2V0UHJpdmF0ZU5hbWVTVihlKX1wYXJzZUxpdGVyYWwoZSxzKXtsZXQgaT1zdXBlci5wYXJzZUxpdGVyYWwoZSxzKTtyZXR1cm4gaS5yYXc9aS5leHRyYS5yYXcsZGVsZXRlIGkuZXh0cmEsaX1wYXJzZUZ1bmN0aW9uQm9keShlLHMsaT0hMSl7c3VwZXIucGFyc2VGdW5jdGlvbkJvZHkoZSxzLGkpLGUuZXhwcmVzc2lvbj1lLmJvZHkudHlwZSE9PVwiQmxvY2tTdGF0ZW1lbnRcIn1wYXJzZU1ldGhvZChlLHMsaSxyLG4sbyxoPSExKXtsZXQgbD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBsLmtpbmQ9ZS5raW5kLGw9c3VwZXIucGFyc2VNZXRob2QobCxzLGkscixuLG8saCksbC50eXBlPVwiRnVuY3Rpb25FeHByZXNzaW9uXCIsZGVsZXRlIGwua2luZCxlLnZhbHVlPWwsbz09PVwiQ2xhc3NQcml2YXRlTWV0aG9kXCImJihlLmNvbXB1dGVkPSExKSx0aGlzLmZpbmlzaE5vZGUoZSxcIk1ldGhvZERlZmluaXRpb25cIil9cGFyc2VDbGFzc1Byb3BlcnR5KC4uLmUpe2xldCBzPXN1cGVyLnBhcnNlQ2xhc3NQcm9wZXJ0eSguLi5lKTtyZXR1cm4gdGhpcy5nZXRQbHVnaW5PcHRpb24oXCJlc3RyZWVcIixcImNsYXNzRmVhdHVyZXNcIikmJihzLnR5cGU9XCJQcm9wZXJ0eURlZmluaXRpb25cIiksc31wYXJzZUNsYXNzUHJpdmF0ZVByb3BlcnR5KC4uLmUpe2xldCBzPXN1cGVyLnBhcnNlQ2xhc3NQcml2YXRlUHJvcGVydHkoLi4uZSk7cmV0dXJuIHRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZXN0cmVlXCIsXCJjbGFzc0ZlYXR1cmVzXCIpJiYocy50eXBlPVwiUHJvcGVydHlEZWZpbml0aW9uXCIscy5jb21wdXRlZD0hMSksc31wYXJzZU9iamVjdE1ldGhvZChlLHMsaSxyLG4pe2xldCBvPXN1cGVyLnBhcnNlT2JqZWN0TWV0aG9kKGUscyxpLHIsbik7cmV0dXJuIG8mJihvLnR5cGU9XCJQcm9wZXJ0eVwiLG8ua2luZD09PVwibWV0aG9kXCImJihvLmtpbmQ9XCJpbml0XCIpLG8uc2hvcnRoYW5kPSExKSxvfXBhcnNlT2JqZWN0UHJvcGVydHkoZSxzLGkscil7bGV0IG49c3VwZXIucGFyc2VPYmplY3RQcm9wZXJ0eShlLHMsaSxyKTtyZXR1cm4gbiYmKG4ua2luZD1cImluaXRcIixuLnR5cGU9XCJQcm9wZXJ0eVwiKSxufWlzVmFsaWRMVmFsKGUscyxpKXtyZXR1cm4gZT09PVwiUHJvcGVydHlcIj9cInZhbHVlXCI6c3VwZXIuaXNWYWxpZExWYWwoZSxzLGkpfWlzQXNzaWduYWJsZShlLHMpe3JldHVybiBlIT1udWxsJiZ0aGlzLmlzT2JqZWN0UHJvcGVydHkoZSk/dGhpcy5pc0Fzc2lnbmFibGUoZS52YWx1ZSxzKTpzdXBlci5pc0Fzc2lnbmFibGUoZSxzKX10b0Fzc2lnbmFibGUoZSxzPSExKXtpZihlIT1udWxsJiZ0aGlzLmlzT2JqZWN0UHJvcGVydHkoZSkpe2xldHtrZXk6aSx2YWx1ZTpyfT1lO3RoaXMuaXNQcml2YXRlTmFtZShpKSYmdGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHRoaXMuZ2V0UHJpdmF0ZU5hbWVTVihpKSxpLmxvYy5zdGFydCksdGhpcy50b0Fzc2lnbmFibGUocixzKX1lbHNlIHN1cGVyLnRvQXNzaWduYWJsZShlLHMpfXRvQXNzaWduYWJsZU9iamVjdEV4cHJlc3Npb25Qcm9wKGUscyxpKXtlLmtpbmQ9PT1cImdldFwifHxlLmtpbmQ9PT1cInNldFwiP3RoaXMucmFpc2UocC5QYXR0ZXJuSGFzQWNjZXNzb3Ise2F0OmUua2V5fSk6ZS5tZXRob2Q/dGhpcy5yYWlzZShwLlBhdHRlcm5IYXNNZXRob2Qse2F0OmUua2V5fSk6c3VwZXIudG9Bc3NpZ25hYmxlT2JqZWN0RXhwcmVzc2lvblByb3AoZSxzLGkpfWZpbmlzaENhbGxFeHByZXNzaW9uKGUscyl7bGV0IGk9c3VwZXIuZmluaXNoQ2FsbEV4cHJlc3Npb24oZSxzKTtpZihpLmNhbGxlZS50eXBlPT09XCJJbXBvcnRcIil7aWYoaS50eXBlPVwiSW1wb3J0RXhwcmVzc2lvblwiLGkuc291cmNlPWkuYXJndW1lbnRzWzBdLHRoaXMuaGFzUGx1Z2luKFwiaW1wb3J0QXR0cmlidXRlc1wiKXx8dGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBc3NlcnRpb25zXCIpKXt2YXIgcjtpLmF0dHJpYnV0ZXM9KHI9aS5hcmd1bWVudHNbMV0pIT1udWxsP3I6bnVsbH1kZWxldGUgaS5hcmd1bWVudHMsZGVsZXRlIGkuY2FsbGVlfXJldHVybiBpfXRvUmVmZXJlbmNlZEFyZ3VtZW50cyhlKXtlLnR5cGUhPT1cIkltcG9ydEV4cHJlc3Npb25cIiYmc3VwZXIudG9SZWZlcmVuY2VkQXJndW1lbnRzKGUpfXBhcnNlRXhwb3J0KGUscyl7bGV0IGk9dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2Mscj1zdXBlci5wYXJzZUV4cG9ydChlLHMpO3N3aXRjaChyLnR5cGUpe2Nhc2VcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCI6ci5leHBvcnRlZD1udWxsO2JyZWFrO2Nhc2VcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIjpyLnNwZWNpZmllcnMubGVuZ3RoPT09MSYmci5zcGVjaWZpZXJzWzBdLnR5cGU9PT1cIkV4cG9ydE5hbWVzcGFjZVNwZWNpZmllclwiJiYoci50eXBlPVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIixyLmV4cG9ydGVkPXIuc3BlY2lmaWVyc1swXS5leHBvcnRlZCxkZWxldGUgci5zcGVjaWZpZXJzKTtjYXNlXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIjp7dmFyIG47bGV0e2RlY2xhcmF0aW9uOm99PXI7KG89PW51bGw/dm9pZCAwOm8udHlwZSk9PT1cIkNsYXNzRGVjbGFyYXRpb25cIiYmKChuPW8uZGVjb3JhdG9ycyk9PW51bGw/dm9pZCAwOm4ubGVuZ3RoKT4wJiZvLnN0YXJ0PT09ci5zdGFydCYmdGhpcy5yZXNldFN0YXJ0TG9jYXRpb24ocixpKX1icmVha31yZXR1cm4gcn1wYXJzZVN1YnNjcmlwdChlLHMsaSxyKXtsZXQgbj1zdXBlci5wYXJzZVN1YnNjcmlwdChlLHMsaSxyKTtpZihyLm9wdGlvbmFsQ2hhaW5NZW1iZXIpe2lmKChuLnR5cGU9PT1cIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwifHxuLnR5cGU9PT1cIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIikmJihuLnR5cGU9bi50eXBlLnN1YnN0cmluZyg4KSksci5zdG9wKXtsZXQgbz10aGlzLnN0YXJ0Tm9kZUF0Tm9kZShuKTtyZXR1cm4gby5leHByZXNzaW9uPW4sdGhpcy5maW5pc2hOb2RlKG8sXCJDaGFpbkV4cHJlc3Npb25cIil9fWVsc2Uobi50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCJ8fG4udHlwZT09PVwiQ2FsbEV4cHJlc3Npb25cIikmJihuLm9wdGlvbmFsPSExKTtyZXR1cm4gbn1oYXNQcm9wZXJ0eUFzUHJpdmF0ZU5hbWUoZSl7cmV0dXJuIGUudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCImJihlPWUuZXhwcmVzc2lvbiksc3VwZXIuaGFzUHJvcGVydHlBc1ByaXZhdGVOYW1lKGUpfWlzT2JqZWN0UHJvcGVydHkoZSl7cmV0dXJuIGUudHlwZT09PVwiUHJvcGVydHlcIiYmZS5raW5kPT09XCJpbml0XCImJiFlLm1ldGhvZH1pc09iamVjdE1ldGhvZChlKXtyZXR1cm4gZS5tZXRob2R8fGUua2luZD09PVwiZ2V0XCJ8fGUua2luZD09PVwic2V0XCJ9ZmluaXNoTm9kZUF0KGUscyxpKXtyZXR1cm4gcGUoc3VwZXIuZmluaXNoTm9kZUF0KGUscyxpKSl9cmVzZXRTdGFydExvY2F0aW9uKGUscyl7c3VwZXIucmVzZXRTdGFydExvY2F0aW9uKGUscykscGUoZSl9cmVzZXRFbmRMb2NhdGlvbihlLHM9dGhpcy5zdGF0ZS5sYXN0VG9rRW5kTG9jKXtzdXBlci5yZXNldEVuZExvY2F0aW9uKGUscykscGUoZSl9fSxYPWNsYXNze2NvbnN0cnVjdG9yKHQsZSl7dGhpcy50b2tlbj12b2lkIDAsdGhpcy5wcmVzZXJ2ZVNwYWNlPXZvaWQgMCx0aGlzLnRva2VuPXQsdGhpcy5wcmVzZXJ2ZVNwYWNlPSEhZX19LHc9e2JyYWNlOm5ldyBYKFwie1wiKSxqX29UYWc6bmV3IFgoXCI8dGFnXCIpLGpfY1RhZzpuZXcgWChcIjwvdGFnXCIpLGpfZXhwcjpuZXcgWChcIjx0YWc+Li4uPC90YWc+XCIsITApfTt3LnRlbXBsYXRlPW5ldyBYKFwiYFwiLCEwKTt2YXIgVD0hMCxtPSEwLEhlPSEwLHVlPSEwLHo9ITAseWk9ITAsRGU9Y2xhc3N7Y29uc3RydWN0b3IodCxlPXt9KXt0aGlzLmxhYmVsPXZvaWQgMCx0aGlzLmtleXdvcmQ9dm9pZCAwLHRoaXMuYmVmb3JlRXhwcj12b2lkIDAsdGhpcy5zdGFydHNFeHByPXZvaWQgMCx0aGlzLnJpZ2h0QXNzb2NpYXRpdmU9dm9pZCAwLHRoaXMuaXNMb29wPXZvaWQgMCx0aGlzLmlzQXNzaWduPXZvaWQgMCx0aGlzLnByZWZpeD12b2lkIDAsdGhpcy5wb3N0Zml4PXZvaWQgMCx0aGlzLmJpbm9wPXZvaWQgMCx0aGlzLmxhYmVsPXQsdGhpcy5rZXl3b3JkPWUua2V5d29yZCx0aGlzLmJlZm9yZUV4cHI9ISFlLmJlZm9yZUV4cHIsdGhpcy5zdGFydHNFeHByPSEhZS5zdGFydHNFeHByLHRoaXMucmlnaHRBc3NvY2lhdGl2ZT0hIWUucmlnaHRBc3NvY2lhdGl2ZSx0aGlzLmlzTG9vcD0hIWUuaXNMb29wLHRoaXMuaXNBc3NpZ249ISFlLmlzQXNzaWduLHRoaXMucHJlZml4PSEhZS5wcmVmaXgsdGhpcy5wb3N0Zml4PSEhZS5wb3N0Zml4LHRoaXMuYmlub3A9ZS5iaW5vcCE9bnVsbD9lLmJpbm9wOm51bGwsdGhpcy51cGRhdGVDb250ZXh0PW51bGx9fSxndD1uZXcgTWFwO2Z1bmN0aW9uIEEoYSx0PXt9KXt0LmtleXdvcmQ9YTtsZXQgZT1QKGEsdCk7cmV0dXJuIGd0LnNldChhLGUpLGV9ZnVuY3Rpb24gdihhLHQpe3JldHVybiBQKGEse2JlZm9yZUV4cHI6VCxiaW5vcDp0fSl9dmFyIHllPS0xLFU9W10sVHQ9W10sYnQ9W10sQXQ9W10sU3Q9W10sd3Q9W107ZnVuY3Rpb24gUChhLHQ9e30pe3ZhciBlLHMsaSxyO3JldHVybisreWUsVHQucHVzaChhKSxidC5wdXNoKChlPXQuYmlub3ApIT1udWxsP2U6LTEpLEF0LnB1c2goKHM9dC5iZWZvcmVFeHByKSE9bnVsbD9zOiExKSxTdC5wdXNoKChpPXQuc3RhcnRzRXhwcikhPW51bGw/aTohMSksd3QucHVzaCgocj10LnByZWZpeCkhPW51bGw/cjohMSksVS5wdXNoKG5ldyBEZShhLHQpKSx5ZX1mdW5jdGlvbiBiKGEsdD17fSl7dmFyIGUscyxpLHI7cmV0dXJuKyt5ZSxndC5zZXQoYSx5ZSksVHQucHVzaChhKSxidC5wdXNoKChlPXQuYmlub3ApIT1udWxsP2U6LTEpLEF0LnB1c2goKHM9dC5iZWZvcmVFeHByKSE9bnVsbD9zOiExKSxTdC5wdXNoKChpPXQuc3RhcnRzRXhwcikhPW51bGw/aTohMSksd3QucHVzaCgocj10LnByZWZpeCkhPW51bGw/cjohMSksVS5wdXNoKG5ldyBEZShcIm5hbWVcIix0KSkseWV9dmFyIHhpPXticmFja2V0TDpQKFwiW1wiLHtiZWZvcmVFeHByOlQsc3RhcnRzRXhwcjptfSksYnJhY2tldEhhc2hMOlAoXCIjW1wiLHtiZWZvcmVFeHByOlQsc3RhcnRzRXhwcjptfSksYnJhY2tldEJhckw6UChcIlt8XCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxicmFja2V0UjpQKFwiXVwiKSxicmFja2V0QmFyUjpQKFwifF1cIiksYnJhY2VMOlAoXCJ7XCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxicmFjZUJhckw6UChcInt8XCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxicmFjZUhhc2hMOlAoXCIje1wiLHtiZWZvcmVFeHByOlQsc3RhcnRzRXhwcjptfSksYnJhY2VSOlAoXCJ9XCIpLGJyYWNlQmFyUjpQKFwifH1cIikscGFyZW5MOlAoXCIoXCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxwYXJlblI6UChcIilcIiksY29tbWE6UChcIixcIix7YmVmb3JlRXhwcjpUfSksc2VtaTpQKFwiO1wiLHtiZWZvcmVFeHByOlR9KSxjb2xvbjpQKFwiOlwiLHtiZWZvcmVFeHByOlR9KSxkb3VibGVDb2xvbjpQKFwiOjpcIix7YmVmb3JlRXhwcjpUfSksZG90OlAoXCIuXCIpLHF1ZXN0aW9uOlAoXCI/XCIse2JlZm9yZUV4cHI6VH0pLHF1ZXN0aW9uRG90OlAoXCI/LlwiKSxhcnJvdzpQKFwiPT5cIix7YmVmb3JlRXhwcjpUfSksdGVtcGxhdGU6UChcInRlbXBsYXRlXCIpLGVsbGlwc2lzOlAoXCIuLi5cIix7YmVmb3JlRXhwcjpUfSksYmFja1F1b3RlOlAoXCJgXCIse3N0YXJ0c0V4cHI6bX0pLGRvbGxhckJyYWNlTDpQKFwiJHtcIix7YmVmb3JlRXhwcjpULHN0YXJ0c0V4cHI6bX0pLHRlbXBsYXRlVGFpbDpQKFwiLi4uYFwiLHtzdGFydHNFeHByOm19KSx0ZW1wbGF0ZU5vblRhaWw6UChcIi4uLiR7XCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxhdDpQKFwiQFwiKSxoYXNoOlAoXCIjXCIse3N0YXJ0c0V4cHI6bX0pLGludGVycHJldGVyRGlyZWN0aXZlOlAoXCIjIS4uLlwiKSxlcTpQKFwiPVwiLHtiZWZvcmVFeHByOlQsaXNBc3NpZ246dWV9KSxhc3NpZ246UChcIl89XCIse2JlZm9yZUV4cHI6VCxpc0Fzc2lnbjp1ZX0pLHNsYXNoQXNzaWduOlAoXCJfPVwiLHtiZWZvcmVFeHByOlQsaXNBc3NpZ246dWV9KSx4b3JBc3NpZ246UChcIl89XCIse2JlZm9yZUV4cHI6VCxpc0Fzc2lnbjp1ZX0pLG1vZHVsb0Fzc2lnbjpQKFwiXz1cIix7YmVmb3JlRXhwcjpULGlzQXNzaWduOnVlfSksaW5jRGVjOlAoXCIrKy8tLVwiLHtwcmVmaXg6eixwb3N0Zml4OnlpLHN0YXJ0c0V4cHI6bX0pLGJhbmc6UChcIiFcIix7YmVmb3JlRXhwcjpULHByZWZpeDp6LHN0YXJ0c0V4cHI6bX0pLHRpbGRlOlAoXCJ+XCIse2JlZm9yZUV4cHI6VCxwcmVmaXg6eixzdGFydHNFeHByOm19KSxkb3VibGVDYXJldDpQKFwiXl5cIix7c3RhcnRzRXhwcjptfSksZG91YmxlQXQ6UChcIkBAXCIse3N0YXJ0c0V4cHI6bX0pLHBpcGVsaW5lOnYoXCJ8PlwiLDApLG51bGxpc2hDb2FsZXNjaW5nOnYoXCI/P1wiLDEpLGxvZ2ljYWxPUjp2KFwifHxcIiwxKSxsb2dpY2FsQU5EOnYoXCImJlwiLDIpLGJpdHdpc2VPUjp2KFwifFwiLDMpLGJpdHdpc2VYT1I6dihcIl5cIiw0KSxiaXR3aXNlQU5EOnYoXCImXCIsNSksZXF1YWxpdHk6dihcIj09LyE9Lz09PS8hPT1cIiw2KSxsdDp2KFwiPC8+Lzw9Lz49XCIsNyksZ3Q6dihcIjwvPi88PS8+PVwiLDcpLHJlbGF0aW9uYWw6dihcIjwvPi88PS8+PVwiLDcpLGJpdFNoaWZ0OnYoXCI8PC8+Pi8+Pj5cIiw4KSxiaXRTaGlmdEw6dihcIjw8Lz4+Lz4+PlwiLDgpLGJpdFNoaWZ0Ujp2KFwiPDwvPj4vPj4+XCIsOCkscGx1c01pbjpQKFwiKy8tXCIse2JlZm9yZUV4cHI6VCxiaW5vcDo5LHByZWZpeDp6LHN0YXJ0c0V4cHI6bX0pLG1vZHVsbzpQKFwiJVwiLHtiaW5vcDoxMCxzdGFydHNFeHByOm19KSxzdGFyOlAoXCIqXCIse2Jpbm9wOjEwfSksc2xhc2g6dihcIi9cIiwxMCksZXhwb25lbnQ6UChcIioqXCIse2JlZm9yZUV4cHI6VCxiaW5vcDoxMSxyaWdodEFzc29jaWF0aXZlOiEwfSksX2luOkEoXCJpblwiLHtiZWZvcmVFeHByOlQsYmlub3A6N30pLF9pbnN0YW5jZW9mOkEoXCJpbnN0YW5jZW9mXCIse2JlZm9yZUV4cHI6VCxiaW5vcDo3fSksX2JyZWFrOkEoXCJicmVha1wiKSxfY2FzZTpBKFwiY2FzZVwiLHtiZWZvcmVFeHByOlR9KSxfY2F0Y2g6QShcImNhdGNoXCIpLF9jb250aW51ZTpBKFwiY29udGludWVcIiksX2RlYnVnZ2VyOkEoXCJkZWJ1Z2dlclwiKSxfZGVmYXVsdDpBKFwiZGVmYXVsdFwiLHtiZWZvcmVFeHByOlR9KSxfZWxzZTpBKFwiZWxzZVwiLHtiZWZvcmVFeHByOlR9KSxfZmluYWxseTpBKFwiZmluYWxseVwiKSxfZnVuY3Rpb246QShcImZ1bmN0aW9uXCIse3N0YXJ0c0V4cHI6bX0pLF9pZjpBKFwiaWZcIiksX3JldHVybjpBKFwicmV0dXJuXCIse2JlZm9yZUV4cHI6VH0pLF9zd2l0Y2g6QShcInN3aXRjaFwiKSxfdGhyb3c6QShcInRocm93XCIse2JlZm9yZUV4cHI6VCxwcmVmaXg6eixzdGFydHNFeHByOm19KSxfdHJ5OkEoXCJ0cnlcIiksX3ZhcjpBKFwidmFyXCIpLF9jb25zdDpBKFwiY29uc3RcIiksX3dpdGg6QShcIndpdGhcIiksX25ldzpBKFwibmV3XCIse2JlZm9yZUV4cHI6VCxzdGFydHNFeHByOm19KSxfdGhpczpBKFwidGhpc1wiLHtzdGFydHNFeHByOm19KSxfc3VwZXI6QShcInN1cGVyXCIse3N0YXJ0c0V4cHI6bX0pLF9jbGFzczpBKFwiY2xhc3NcIix7c3RhcnRzRXhwcjptfSksX2V4dGVuZHM6QShcImV4dGVuZHNcIix7YmVmb3JlRXhwcjpUfSksX2V4cG9ydDpBKFwiZXhwb3J0XCIpLF9pbXBvcnQ6QShcImltcG9ydFwiLHtzdGFydHNFeHByOm19KSxfbnVsbDpBKFwibnVsbFwiLHtzdGFydHNFeHByOm19KSxfdHJ1ZTpBKFwidHJ1ZVwiLHtzdGFydHNFeHByOm19KSxfZmFsc2U6QShcImZhbHNlXCIse3N0YXJ0c0V4cHI6bX0pLF90eXBlb2Y6QShcInR5cGVvZlwiLHtiZWZvcmVFeHByOlQscHJlZml4Onosc3RhcnRzRXhwcjptfSksX3ZvaWQ6QShcInZvaWRcIix7YmVmb3JlRXhwcjpULHByZWZpeDp6LHN0YXJ0c0V4cHI6bX0pLF9kZWxldGU6QShcImRlbGV0ZVwiLHtiZWZvcmVFeHByOlQscHJlZml4Onosc3RhcnRzRXhwcjptfSksX2RvOkEoXCJkb1wiLHtpc0xvb3A6SGUsYmVmb3JlRXhwcjpUfSksX2ZvcjpBKFwiZm9yXCIse2lzTG9vcDpIZX0pLF93aGlsZTpBKFwid2hpbGVcIix7aXNMb29wOkhlfSksX2FzOmIoXCJhc1wiLHtzdGFydHNFeHByOm19KSxfYXNzZXJ0OmIoXCJhc3NlcnRcIix7c3RhcnRzRXhwcjptfSksX2FzeW5jOmIoXCJhc3luY1wiLHtzdGFydHNFeHByOm19KSxfYXdhaXQ6YihcImF3YWl0XCIse3N0YXJ0c0V4cHI6bX0pLF9mcm9tOmIoXCJmcm9tXCIse3N0YXJ0c0V4cHI6bX0pLF9nZXQ6YihcImdldFwiLHtzdGFydHNFeHByOm19KSxfbGV0OmIoXCJsZXRcIix7c3RhcnRzRXhwcjptfSksX21ldGE6YihcIm1ldGFcIix7c3RhcnRzRXhwcjptfSksX29mOmIoXCJvZlwiLHtzdGFydHNFeHByOm19KSxfc2VudDpiKFwic2VudFwiLHtzdGFydHNFeHByOm19KSxfc2V0OmIoXCJzZXRcIix7c3RhcnRzRXhwcjptfSksX3N0YXRpYzpiKFwic3RhdGljXCIse3N0YXJ0c0V4cHI6bX0pLF91c2luZzpiKFwidXNpbmdcIix7c3RhcnRzRXhwcjptfSksX3lpZWxkOmIoXCJ5aWVsZFwiLHtzdGFydHNFeHByOm19KSxfYXNzZXJ0czpiKFwiYXNzZXJ0c1wiLHtzdGFydHNFeHByOm19KSxfY2hlY2tzOmIoXCJjaGVja3NcIix7c3RhcnRzRXhwcjptfSksX2V4cG9ydHM6YihcImV4cG9ydHNcIix7c3RhcnRzRXhwcjptfSksX2dsb2JhbDpiKFwiZ2xvYmFsXCIse3N0YXJ0c0V4cHI6bX0pLF9pbXBsZW1lbnRzOmIoXCJpbXBsZW1lbnRzXCIse3N0YXJ0c0V4cHI6bX0pLF9pbnRyaW5zaWM6YihcImludHJpbnNpY1wiLHtzdGFydHNFeHByOm19KSxfaW5mZXI6YihcImluZmVyXCIse3N0YXJ0c0V4cHI6bX0pLF9pczpiKFwiaXNcIix7c3RhcnRzRXhwcjptfSksX21peGluczpiKFwibWl4aW5zXCIse3N0YXJ0c0V4cHI6bX0pLF9wcm90bzpiKFwicHJvdG9cIix7c3RhcnRzRXhwcjptfSksX3JlcXVpcmU6YihcInJlcXVpcmVcIix7c3RhcnRzRXhwcjptfSksX3NhdGlzZmllczpiKFwic2F0aXNmaWVzXCIse3N0YXJ0c0V4cHI6bX0pLF9rZXlvZjpiKFwia2V5b2ZcIix7c3RhcnRzRXhwcjptfSksX3JlYWRvbmx5OmIoXCJyZWFkb25seVwiLHtzdGFydHNFeHByOm19KSxfdW5pcXVlOmIoXCJ1bmlxdWVcIix7c3RhcnRzRXhwcjptfSksX2Fic3RyYWN0OmIoXCJhYnN0cmFjdFwiLHtzdGFydHNFeHByOm19KSxfZGVjbGFyZTpiKFwiZGVjbGFyZVwiLHtzdGFydHNFeHByOm19KSxfZW51bTpiKFwiZW51bVwiLHtzdGFydHNFeHByOm19KSxfbW9kdWxlOmIoXCJtb2R1bGVcIix7c3RhcnRzRXhwcjptfSksX25hbWVzcGFjZTpiKFwibmFtZXNwYWNlXCIse3N0YXJ0c0V4cHI6bX0pLF9pbnRlcmZhY2U6YihcImludGVyZmFjZVwiLHtzdGFydHNFeHByOm19KSxfdHlwZTpiKFwidHlwZVwiLHtzdGFydHNFeHByOm19KSxfb3BhcXVlOmIoXCJvcGFxdWVcIix7c3RhcnRzRXhwcjptfSksbmFtZTpQKFwibmFtZVwiLHtzdGFydHNFeHByOm19KSxzdHJpbmc6UChcInN0cmluZ1wiLHtzdGFydHNFeHByOm19KSxudW06UChcIm51bVwiLHtzdGFydHNFeHByOm19KSxiaWdpbnQ6UChcImJpZ2ludFwiLHtzdGFydHNFeHByOm19KSxkZWNpbWFsOlAoXCJkZWNpbWFsXCIse3N0YXJ0c0V4cHI6bX0pLHJlZ2V4cDpQKFwicmVnZXhwXCIse3N0YXJ0c0V4cHI6bX0pLHByaXZhdGVOYW1lOlAoXCIjbmFtZVwiLHtzdGFydHNFeHByOm19KSxlb2Y6UChcImVvZlwiKSxqc3hOYW1lOlAoXCJqc3hOYW1lXCIpLGpzeFRleHQ6UChcImpzeFRleHRcIix7YmVmb3JlRXhwcjohMH0pLGpzeFRhZ1N0YXJ0OlAoXCJqc3hUYWdTdGFydFwiLHtzdGFydHNFeHByOiEwfSksanN4VGFnRW5kOlAoXCJqc3hUYWdFbmRcIikscGxhY2Vob2xkZXI6UChcIiUlXCIse3N0YXJ0c0V4cHI6ITB9KX07ZnVuY3Rpb24gUyhhKXtyZXR1cm4gYT49OTMmJmE8PTEzMH1mdW5jdGlvbiBQaShhKXtyZXR1cm4gYTw9OTJ9ZnVuY3Rpb24gTShhKXtyZXR1cm4gYT49NTgmJmE8PTEzMH1mdW5jdGlvbiBZdChhKXtyZXR1cm4gYT49NTgmJmE8PTEzNH1mdW5jdGlvbiBnaShhKXtyZXR1cm4gQXRbYV19ZnVuY3Rpb24gWmUoYSl7cmV0dXJuIFN0W2FdfWZ1bmN0aW9uIFRpKGEpe3JldHVybiBhPj0yOSYmYTw9MzN9ZnVuY3Rpb24gVXQoYSl7cmV0dXJuIGE+PTEyNyYmYTw9MTI5fWZ1bmN0aW9uIGJpKGEpe3JldHVybiBhPj05MCYmYTw9OTJ9ZnVuY3Rpb24gQ3QoYSl7cmV0dXJuIGE+PTU4JiZhPD05Mn1mdW5jdGlvbiBBaShhKXtyZXR1cm4gYT49MzkmJmE8PTU5fWZ1bmN0aW9uIFNpKGEpe3JldHVybiBhPT09MzR9ZnVuY3Rpb24gd2koYSl7cmV0dXJuIHd0W2FdfWZ1bmN0aW9uIENpKGEpe3JldHVybiBhPj0xMTkmJmE8PTEyMX1mdW5jdGlvbiBFaShhKXtyZXR1cm4gYT49MTIyJiZhPD0xMjh9ZnVuY3Rpb24gcShhKXtyZXR1cm4gVHRbYV19ZnVuY3Rpb24gTmUoYSl7cmV0dXJuIGJ0W2FdfWZ1bmN0aW9uIElpKGEpe3JldHVybiBhPT09NTd9ZnVuY3Rpb24gTWUoYSl7cmV0dXJuIGE+PTI0JiZhPD0yNX1mdW5jdGlvbiBfKGEpe3JldHVybiBVW2FdfVVbOF0udXBkYXRlQ29udGV4dD1hPT57YS5wb3AoKX0sVVs1XS51cGRhdGVDb250ZXh0PVVbN10udXBkYXRlQ29udGV4dD1VWzIzXS51cGRhdGVDb250ZXh0PWE9PnthLnB1c2gody5icmFjZSl9LFVbMjJdLnVwZGF0ZUNvbnRleHQ9YT0+e2FbYS5sZW5ndGgtMV09PT13LnRlbXBsYXRlP2EucG9wKCk6YS5wdXNoKHcudGVtcGxhdGUpfSxVWzE0MF0udXBkYXRlQ29udGV4dD1hPT57YS5wdXNoKHcual9leHByLHcual9vVGFnKX07dmFyIEV0PVwiXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwODcwLVxcdTA4ODdcXHUwODg5LVxcdTA4OEVcXHUwOEEwLVxcdTA4QzlcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM1RFxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0REXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA0LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcxMVxcdTE3MUYtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNENcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTgtXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUItXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0NBXFx1QTdEMFxcdUE3RDFcXHVBN0QzXFx1QTdENS1cXHVBN0Q5XFx1QTdGMi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ1wiLFF0PVwiXFx1MjAwQ1xcdTIwMERcXHhCN1xcdTAzMDAtXFx1MDM2RlxcdTAzODdcXHUwNDgzLVxcdTA0ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MUFcXHUwNjRCLVxcdTA2NjlcXHUwNjcwXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNkYwLVxcdTA2RjlcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdBNi1cXHUwN0IwXFx1MDdDMC1cXHUwN0M5XFx1MDdFQi1cXHUwN0YzXFx1MDdGRFxcdTA4MTYtXFx1MDgxOVxcdTA4MUItXFx1MDgyM1xcdTA4MjUtXFx1MDgyN1xcdTA4MjktXFx1MDgyRFxcdTA4NTktXFx1MDg1QlxcdTA4OTgtXFx1MDg5RlxcdTA4Q0EtXFx1MDhFMVxcdTA4RTMtXFx1MDkwM1xcdTA5M0EtXFx1MDkzQ1xcdTA5M0UtXFx1MDk0RlxcdTA5NTEtXFx1MDk1N1xcdTA5NjJcXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk4MS1cXHUwOTgzXFx1MDlCQ1xcdTA5QkUtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNEXFx1MDlEN1xcdTA5RTJcXHUwOUUzXFx1MDlFNi1cXHUwOUVGXFx1MDlGRVxcdTBBMDEtXFx1MEEwM1xcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTY2LVxcdTBBNzFcXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEFCQ1xcdTBBQkUtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRTJcXHUwQUUzXFx1MEFFNi1cXHUwQUVGXFx1MEFGQS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIzQ1xcdTBCM0UtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NS1cXHUwQjU3XFx1MEI2MlxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjgyXFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEN1xcdTBCRTYtXFx1MEJFRlxcdTBDMDAtXFx1MEMwNFxcdTBDM0NcXHUwQzNFLVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNjJcXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MS1cXHUwQzgzXFx1MENCQ1xcdTBDQkUtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENFMlxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YzXFx1MEQwMC1cXHUwRDAzXFx1MEQzQlxcdTBEM0NcXHUwRDNFLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENERcXHUwRDU3XFx1MEQ2MlxcdTBENjNcXHUwRDY2LVxcdTBENkZcXHUwRDgxLVxcdTBEODNcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERTYtXFx1MERFRlxcdTBERjJcXHUwREYzXFx1MEUzMVxcdTBFMzQtXFx1MEUzQVxcdTBFNDctXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFQjFcXHUwRUI0LVxcdTBFQkNcXHUwRUM4LVxcdTBFQ0VcXHUwRUQwLVxcdTBFRDlcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0VcXHUwRjNGXFx1MEY3MS1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjhELVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAyQi1cXHUxMDNFXFx1MTA0MC1cXHUxMDQ5XFx1MTA1Ni1cXHUxMDU5XFx1MTA1RS1cXHUxMDYwXFx1MTA2Mi1cXHUxMDY0XFx1MTA2Ny1cXHUxMDZEXFx1MTA3MS1cXHUxMDc0XFx1MTA4Mi1cXHUxMDhEXFx1MTA4Ri1cXHUxMDlEXFx1MTM1RC1cXHUxMzVGXFx1MTM2OS1cXHUxMzcxXFx1MTcxMi1cXHUxNzE1XFx1MTczMi1cXHUxNzM0XFx1MTc1MlxcdTE3NTNcXHUxNzcyXFx1MTc3M1xcdTE3QjQtXFx1MTdEM1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODBGLVxcdTE4MTlcXHUxOEE5XFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTRGXFx1MTlEMC1cXHUxOURBXFx1MUExNy1cXHUxQTFCXFx1MUE1NS1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFCMC1cXHUxQUJEXFx1MUFCRi1cXHUxQUNFXFx1MUIwMC1cXHUxQjA0XFx1MUIzNC1cXHUxQjQ0XFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQjgyXFx1MUJBMS1cXHUxQkFEXFx1MUJCMC1cXHUxQkI5XFx1MUJFNi1cXHUxQkYzXFx1MUMyNC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM1MC1cXHUxQzU5XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0U4XFx1MUNFRFxcdTFDRjRcXHUxQ0Y3LVxcdTFDRjlcXHUxREMwLVxcdTFERkZcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MkNFRi1cXHUyQ0YxXFx1MkQ3RlxcdTJERTAtXFx1MkRGRlxcdTMwMkEtXFx1MzAyRlxcdTMwOTlcXHUzMDlBXFx1QTYyMC1cXHVBNjI5XFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2OUVcXHVBNjlGXFx1QTZGMFxcdUE2RjFcXHVBODAyXFx1QTgwNlxcdUE4MEJcXHVBODIzLVxcdUE4MjdcXHVBODJDXFx1QTg4MFxcdUE4ODFcXHVBOEI0LVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjFcXHVBOEZGLVxcdUE5MDlcXHVBOTI2LVxcdUE5MkRcXHVBOTQ3LVxcdUE5NTNcXHVBOTgwLVxcdUE5ODNcXHVBOUIzLVxcdUE5QzBcXHVBOUQwLVxcdUE5RDlcXHVBOUU1XFx1QTlGMC1cXHVBOUY5XFx1QUEyOS1cXHVBQTM2XFx1QUE0M1xcdUFBNENcXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE3Qi1cXHVBQTdEXFx1QUFCMFxcdUFBQjItXFx1QUFCNFxcdUFBQjdcXHVBQUI4XFx1QUFCRVxcdUFBQkZcXHVBQUMxXFx1QUFFQi1cXHVBQUVGXFx1QUFGNVxcdUFBRjZcXHVBQkUzLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUZCMUVcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZGMTAtXFx1RkYxOVxcdUZGM0ZcIixOaT1uZXcgUmVnRXhwKFwiW1wiK0V0K1wiXVwiKSxraT1uZXcgUmVnRXhwKFwiW1wiK0V0K1F0K1wiXVwiKTtFdD1RdD1udWxsO3ZhciBadD1bMCwxMSwyLDI1LDIsMTgsMiwxLDIsMTQsMywxMywzNSwxMjIsNzAsNTIsMjY4LDI4LDQsNDgsNDgsMzEsMTQsMjksNiwzNywxMSwyOSwzLDM1LDUsNywyLDQsNDMsMTU3LDE5LDM1LDUsMzUsNSwzOSw5LDUxLDEzLDEwLDIsMTQsMiw2LDIsMSwyLDEwLDIsMTQsMiw2LDIsMSw2OCwzMTAsMTAsMjEsMTEsNywyNSw1LDIsNDEsMiw4LDcwLDUsMywwLDIsNDMsMiwxLDQsMCwzLDIyLDExLDIyLDEwLDMwLDY2LDE4LDIsMSwxMSwyMSwxMSwyNSw3MSw1NSw3LDEsNjUsMCwxNiwzLDIsMiwyLDI4LDQzLDI4LDQsMjgsMzYsNywyLDI3LDI4LDUzLDExLDIxLDExLDE4LDE0LDE3LDExMSw3Miw1Niw1MCwxNCw1MCwxNCwzNSwzNDksNDEsNywxLDc5LDI4LDExLDAsOSwyMSw0MywxNyw0NywyMCwyOCwyMiwxMyw1Miw1OCwxLDMsMCwxNCw0NCwzMywyNCwyNywzNSwzMCwwLDMsMCw5LDM0LDQsMCwxMyw0NywxNSwzLDIyLDAsMiwwLDM2LDE3LDIsMjQsMjAsMSw2NCw2LDIsMCwyLDMsMiwxNCwyLDksOCw0NiwzOSw3LDMsMSwzLDIxLDIsNiwyLDEsMiw0LDQsMCwxOSwwLDEzLDQsMTU5LDUyLDE5LDMsMjEsMiwzMSw0NywyMSwxLDIsMCwxODUsNDYsNDIsMywzNyw0NywyMSwwLDYwLDQyLDE0LDAsNzIsMjYsMzgsNiwxODYsNDMsMTE3LDYzLDMyLDcsMywwLDMsNywyLDEsMiwyMywxNiwwLDIsMCw5NSw3LDMsMzgsMTcsMCwyLDAsMjksMCwxMSwzOSw4LDAsMjIsMCwxMiw0NSwyMCwwLDE5LDcyLDI2NCw4LDIsMzYsMTgsMCw1MCwyOSwxMTMsNiwyLDEsMiwzNywyMiwwLDI2LDUsMiwxLDIsMzEsMTUsMCwzMjgsMTgsMTYsMCwyLDEyLDIsMzMsMTI1LDAsODAsOTIxLDEwMywxMTAsMTgsMTk1LDI2MzcsOTYsMTYsMTA3MSwxOCw1LDQwMjYsNTgyLDg2MzQsNTY4LDgsMzAsMTgsNzgsMTgsMjksMTksNDcsMTcsMywzMiwyMCw2LDE4LDY4OSw2MywxMjksNzQsNiwwLDY3LDEyLDY1LDEsMiwwLDI5LDYxMzUsOSwxMjM3LDQzLDgsODkzNiwzLDIsNiwyLDEsMiwyOTAsMTYsMCwzMCwyLDMsMCwxNSwzLDksMzk1LDIzMDksMTA2LDYsMTIsNCw4LDgsOSw1OTkxLDg0LDIsNzAsMiwxLDMsMCwzLDEsMywzLDIsMTEsMiwwLDIsNiwyLDY0LDIsMywzLDcsMiw2LDIsMjcsMiwzLDIsNCwyLDAsNCw2LDIsMzM5LDMsMjQsMiwyNCwyLDMwLDIsMjQsMiwzMCwyLDI0LDIsMzAsMiwyNCwyLDMwLDIsMjQsMiw3LDE4NDUsMzAsNyw1LDI2Miw2MSwxNDcsNDQsMTEsNiwxNywwLDMyMiwyOSwxOSw0Myw0ODUsMjcsNzU3LDYsMiwzLDIsMSwyLDE0LDIsMTk2LDYwLDY3LDgsMCwxMjA1LDMsMiwyNiwyLDEsMiwwLDMsMCwyLDksMiwzLDIsMCwyLDAsNywwLDUsMCwyLDAsMiwwLDIsMiwyLDEsMiwwLDMsMCwyLDAsMiwwLDIsMCwyLDAsMiwxLDIsMCwzLDMsMiw2LDIsMywyLDMsMiwwLDIsOSwyLDE2LDYsMiwyLDQsMiwxNiw0NDIxLDQyNzE5LDMzLDQxNTMsNywyMjEsMyw1NzYxLDE1LDc0NzIsMzEwNCw1NDEsMTUwNyw0OTM4LDYsNDE5MV0sdmk9WzUwOSwwLDIyNywwLDE1MCw0LDI5NCw5LDEzNjgsMiwyLDEsNiwzLDQxLDIsNSwwLDE2NiwxLDU3NCwzLDksOSwzNzAsMSw4MSwyLDcxLDEwLDUwLDMsMTIzLDIsNTQsMTQsMzIsMTAsMywxLDExLDMsNDYsMTAsOCwwLDQ2LDksNywyLDM3LDEzLDIsOSw2LDEsNDUsMCwxMywyLDQ5LDEzLDksMywyLDExLDgzLDExLDcsMCwzLDAsMTU4LDExLDYsOSw3LDMsNTYsMSwyLDYsMywxLDMsMiwxMCwwLDExLDEsMyw2LDQsNCwxOTMsMTcsMTAsOSw1LDAsODIsMTksMTMsOSwyMTQsNiwzLDgsMjgsMSw4MywxNiwxNiw5LDgyLDEyLDksOSw4NCwxNCw1LDksMjQzLDE0LDE2Niw5LDcxLDUsMiwxLDMsMywyLDAsMiwxLDEzLDksMTIwLDYsMyw2LDQsMCwyOSw5LDQxLDYsMiwzLDksMCwxMCwxMCw0NywxNSw0MDYsNywyLDcsMTcsOSw1NywyMSwyLDEzLDEyMyw1LDQsMCwyLDEsMiw2LDIsMCw5LDksNDksNCwyLDEsMiw0LDksOSwzMzAsMywxMCwxLDIsMCw0OSw2LDQsNCwxNCw5LDUzNTEsMCw3LDE0LDEzODM1LDksODcsOSwzOSw0LDYwLDYsMjYsOSwxMDE0LDAsMiw1NCw4LDMsODIsMCwxMiwxLDE5NjI4LDEsNDcwNiw0NSwzLDIyLDU0Myw0LDQsNSw5LDcsMyw2LDMxLDMsMTQ5LDIsMTQxOCw0OSw1MTMsNTQsNSw0OSw5LDAsMTUsMCwyMyw0LDIsMTQsMTM2MSw2LDIsMTYsMyw2LDIsMSwyLDQsMTAxLDAsMTYxLDYsMTAsOSwzNTcsMCw2MiwxMyw0OTksMTMsOTgzLDYsMTEwLDYsNiw5LDQ3NTksOSw3ODc3MTksMjM5XTtmdW5jdGlvbiBldChhLHQpe2xldCBlPTY1NTM2O2ZvcihsZXQgcz0wLGk9dC5sZW5ndGg7czxpO3MrPTIpe2lmKGUrPXRbc10sZT5hKXJldHVybiExO2lmKGUrPXRbcysxXSxlPj1hKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGooYSl7cmV0dXJuIGE8NjU/YT09PTM2OmE8PTkwPyEwOmE8OTc/YT09PTk1OmE8PTEyMj8hMDphPD02NTUzNT9hPj0xNzAmJk5pLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShhKSk6ZXQoYSxadCl9ZnVuY3Rpb24gZWUoYSl7cmV0dXJuIGE8NDg/YT09PTM2OmE8NTg/ITA6YTw2NT8hMTphPD05MD8hMDphPDk3P2E9PT05NTphPD0xMjI/ITA6YTw9NjU1MzU/YT49MTcwJiZraS50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpOmV0KGEsWnQpfHxldChhLHZpKX12YXIgSXQ9e2tleXdvcmQ6W1wiYnJlYWtcIixcImNhc2VcIixcImNhdGNoXCIsXCJjb250aW51ZVwiLFwiZGVidWdnZXJcIixcImRlZmF1bHRcIixcImRvXCIsXCJlbHNlXCIsXCJmaW5hbGx5XCIsXCJmb3JcIixcImZ1bmN0aW9uXCIsXCJpZlwiLFwicmV0dXJuXCIsXCJzd2l0Y2hcIixcInRocm93XCIsXCJ0cnlcIixcInZhclwiLFwiY29uc3RcIixcIndoaWxlXCIsXCJ3aXRoXCIsXCJuZXdcIixcInRoaXNcIixcInN1cGVyXCIsXCJjbGFzc1wiLFwiZXh0ZW5kc1wiLFwiZXhwb3J0XCIsXCJpbXBvcnRcIixcIm51bGxcIixcInRydWVcIixcImZhbHNlXCIsXCJpblwiLFwiaW5zdGFuY2VvZlwiLFwidHlwZW9mXCIsXCJ2b2lkXCIsXCJkZWxldGVcIl0sc3RyaWN0OltcImltcGxlbWVudHNcIixcImludGVyZmFjZVwiLFwibGV0XCIsXCJwYWNrYWdlXCIsXCJwcml2YXRlXCIsXCJwcm90ZWN0ZWRcIixcInB1YmxpY1wiLFwic3RhdGljXCIsXCJ5aWVsZFwiXSxzdHJpY3RCaW5kOltcImV2YWxcIixcImFyZ3VtZW50c1wiXX0sTGk9bmV3IFNldChJdC5rZXl3b3JkKSxEaT1uZXcgU2V0KEl0LnN0cmljdCksTWk9bmV3IFNldChJdC5zdHJpY3RCaW5kKTtmdW5jdGlvbiBlcyhhLHQpe3JldHVybiB0JiZhPT09XCJhd2FpdFwifHxhPT09XCJlbnVtXCJ9ZnVuY3Rpb24gdHMoYSx0KXtyZXR1cm4gZXMoYSx0KXx8RGkuaGFzKGEpfWZ1bmN0aW9uIHNzKGEpe3JldHVybiBNaS5oYXMoYSl9ZnVuY3Rpb24gaXMoYSx0KXtyZXR1cm4gdHMoYSx0KXx8c3MoYSl9ZnVuY3Rpb24gT2koYSl7cmV0dXJuIExpLmhhcyhhKX1mdW5jdGlvbiBGaShhLHQsZSl7cmV0dXJuIGE9PT02NCYmdD09PTY0JiZqKGUpfXZhciBCaT1uZXcgU2V0KFtcImJyZWFrXCIsXCJjYXNlXCIsXCJjYXRjaFwiLFwiY29udGludWVcIixcImRlYnVnZ2VyXCIsXCJkZWZhdWx0XCIsXCJkb1wiLFwiZWxzZVwiLFwiZmluYWxseVwiLFwiZm9yXCIsXCJmdW5jdGlvblwiLFwiaWZcIixcInJldHVyblwiLFwic3dpdGNoXCIsXCJ0aHJvd1wiLFwidHJ5XCIsXCJ2YXJcIixcImNvbnN0XCIsXCJ3aGlsZVwiLFwid2l0aFwiLFwibmV3XCIsXCJ0aGlzXCIsXCJzdXBlclwiLFwiY2xhc3NcIixcImV4dGVuZHNcIixcImV4cG9ydFwiLFwiaW1wb3J0XCIsXCJudWxsXCIsXCJ0cnVlXCIsXCJmYWxzZVwiLFwiaW5cIixcImluc3RhbmNlb2ZcIixcInR5cGVvZlwiLFwidm9pZFwiLFwiZGVsZXRlXCIsXCJpbXBsZW1lbnRzXCIsXCJpbnRlcmZhY2VcIixcImxldFwiLFwicGFja2FnZVwiLFwicHJpdmF0ZVwiLFwicHJvdGVjdGVkXCIsXCJwdWJsaWNcIixcInN0YXRpY1wiLFwieWllbGRcIixcImV2YWxcIixcImFyZ3VtZW50c1wiLFwiZW51bVwiLFwiYXdhaXRcIl0pO2Z1bmN0aW9uIFJpKGEpe3JldHVybiBCaS5oYXMoYSl9dmFyIFBlPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMudmFyPW5ldyBTZXQsdGhpcy5sZXhpY2FsPW5ldyBTZXQsdGhpcy5mdW5jdGlvbnM9bmV3IFNldCx0aGlzLmZsYWdzPXR9fSxnZT1jbGFzc3tjb25zdHJ1Y3Rvcih0LGUpe3RoaXMucGFyc2VyPXZvaWQgMCx0aGlzLnNjb3BlU3RhY2s9W10sdGhpcy5pbk1vZHVsZT12b2lkIDAsdGhpcy51bmRlZmluZWRFeHBvcnRzPW5ldyBNYXAsdGhpcy5wYXJzZXI9dCx0aGlzLmluTW9kdWxlPWV9Z2V0IGluVG9wTGV2ZWwoKXtyZXR1cm4odGhpcy5jdXJyZW50U2NvcGUoKS5mbGFncyYxKT4wfWdldCBpbkZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuY3VycmVudFZhclNjb3BlRmxhZ3MoKSYyKT4wfWdldCBhbGxvd1N1cGVyKCl7cmV0dXJuKHRoaXMuY3VycmVudFRoaXNTY29wZUZsYWdzKCkmMTYpPjB9Z2V0IGFsbG93RGlyZWN0U3VwZXIoKXtyZXR1cm4odGhpcy5jdXJyZW50VGhpc1Njb3BlRmxhZ3MoKSYzMik+MH1nZXQgaW5DbGFzcygpe3JldHVybih0aGlzLmN1cnJlbnRUaGlzU2NvcGVGbGFncygpJjY0KT4wfWdldCBpbkNsYXNzQW5kTm90SW5Ob25BcnJvd0Z1bmN0aW9uKCl7bGV0IHQ9dGhpcy5jdXJyZW50VGhpc1Njb3BlRmxhZ3MoKTtyZXR1cm4odCY2NCk+MCYmKHQmMik9PT0wfWdldCBpblN0YXRpY0Jsb2NrKCl7Zm9yKGxldCB0PXRoaXMuc2NvcGVTdGFjay5sZW5ndGgtMTs7dC0tKXtsZXR7ZmxhZ3M6ZX09dGhpcy5zY29wZVN0YWNrW3RdO2lmKGUmMTI4KXJldHVybiEwO2lmKGUmNDUxKXJldHVybiExfX1nZXQgaW5Ob25BcnJvd0Z1bmN0aW9uKCl7cmV0dXJuKHRoaXMuY3VycmVudFRoaXNTY29wZUZsYWdzKCkmMik+MH1nZXQgdHJlYXRGdW5jdGlvbnNBc1Zhcigpe3JldHVybiB0aGlzLnRyZWF0RnVuY3Rpb25zQXNWYXJJblNjb3BlKHRoaXMuY3VycmVudFNjb3BlKCkpfWNyZWF0ZVNjb3BlKHQpe3JldHVybiBuZXcgUGUodCl9ZW50ZXIodCl7dGhpcy5zY29wZVN0YWNrLnB1c2godGhpcy5jcmVhdGVTY29wZSh0KSl9ZXhpdCgpe3JldHVybiB0aGlzLnNjb3BlU3RhY2sucG9wKCkuZmxhZ3N9dHJlYXRGdW5jdGlvbnNBc1ZhckluU2NvcGUodCl7cmV0dXJuISEodC5mbGFncyYxMzB8fCF0aGlzLnBhcnNlci5pbk1vZHVsZSYmdC5mbGFncyYxKX1kZWNsYXJlTmFtZSh0LGUscyl7bGV0IGk9dGhpcy5jdXJyZW50U2NvcGUoKTtpZihlJjh8fGUmMTYpdGhpcy5jaGVja1JlZGVjbGFyYXRpb25JblNjb3BlKGksdCxlLHMpLGUmMTY/aS5mdW5jdGlvbnMuYWRkKHQpOmkubGV4aWNhbC5hZGQodCksZSY4JiZ0aGlzLm1heWJlRXhwb3J0RGVmaW5lZChpLHQpO2Vsc2UgaWYoZSY0KWZvcihsZXQgcj10aGlzLnNjb3BlU3RhY2subGVuZ3RoLTE7cj49MCYmKGk9dGhpcy5zY29wZVN0YWNrW3JdLHRoaXMuY2hlY2tSZWRlY2xhcmF0aW9uSW5TY29wZShpLHQsZSxzKSxpLnZhci5hZGQodCksdGhpcy5tYXliZUV4cG9ydERlZmluZWQoaSx0KSwhKGkuZmxhZ3MmMzg3KSk7LS1yKTt0aGlzLnBhcnNlci5pbk1vZHVsZSYmaS5mbGFncyYxJiZ0aGlzLnVuZGVmaW5lZEV4cG9ydHMuZGVsZXRlKHQpfW1heWJlRXhwb3J0RGVmaW5lZCh0LGUpe3RoaXMucGFyc2VyLmluTW9kdWxlJiZ0LmZsYWdzJjEmJnRoaXMudW5kZWZpbmVkRXhwb3J0cy5kZWxldGUoZSl9Y2hlY2tSZWRlY2xhcmF0aW9uSW5TY29wZSh0LGUscyxpKXt0aGlzLmlzUmVkZWNsYXJlZEluU2NvcGUodCxlLHMpJiZ0aGlzLnBhcnNlci5yYWlzZShwLlZhclJlZGVjbGFyYXRpb24se2F0OmksaWRlbnRpZmllck5hbWU6ZX0pfWlzUmVkZWNsYXJlZEluU2NvcGUodCxlLHMpe3JldHVybiBzJjE/cyY4P3QubGV4aWNhbC5oYXMoZSl8fHQuZnVuY3Rpb25zLmhhcyhlKXx8dC52YXIuaGFzKGUpOnMmMTY/dC5sZXhpY2FsLmhhcyhlKXx8IXRoaXMudHJlYXRGdW5jdGlvbnNBc1ZhckluU2NvcGUodCkmJnQudmFyLmhhcyhlKTp0LmxleGljYWwuaGFzKGUpJiYhKHQuZmxhZ3MmOCYmdC5sZXhpY2FsLnZhbHVlcygpLm5leHQoKS52YWx1ZT09PWUpfHwhdGhpcy50cmVhdEZ1bmN0aW9uc0FzVmFySW5TY29wZSh0KSYmdC5mdW5jdGlvbnMuaGFzKGUpOiExfWNoZWNrTG9jYWxFeHBvcnQodCl7bGV0e25hbWU6ZX09dCxzPXRoaXMuc2NvcGVTdGFja1swXTshcy5sZXhpY2FsLmhhcyhlKSYmIXMudmFyLmhhcyhlKSYmIXMuZnVuY3Rpb25zLmhhcyhlKSYmdGhpcy51bmRlZmluZWRFeHBvcnRzLnNldChlLHQubG9jLnN0YXJ0KX1jdXJyZW50U2NvcGUoKXtyZXR1cm4gdGhpcy5zY29wZVN0YWNrW3RoaXMuc2NvcGVTdGFjay5sZW5ndGgtMV19Y3VycmVudFZhclNjb3BlRmxhZ3MoKXtmb3IobGV0IHQ9dGhpcy5zY29wZVN0YWNrLmxlbmd0aC0xOzt0LS0pe2xldHtmbGFnczplfT10aGlzLnNjb3BlU3RhY2tbdF07aWYoZSYzODcpcmV0dXJuIGV9fWN1cnJlbnRUaGlzU2NvcGVGbGFncygpe2ZvcihsZXQgdD10aGlzLnNjb3BlU3RhY2subGVuZ3RoLTE7O3QtLSl7bGV0e2ZsYWdzOmV9PXRoaXMuc2NvcGVTdGFja1t0XTtpZihlJjQ1MSYmIShlJjQpKXJldHVybiBlfX19LHR0PWNsYXNzIGV4dGVuZHMgUGV7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5kZWNsYXJlRnVuY3Rpb25zPW5ldyBTZXR9fSxzdD1jbGFzcyBleHRlbmRzIGdle2NyZWF0ZVNjb3BlKHQpe3JldHVybiBuZXcgdHQodCl9ZGVjbGFyZU5hbWUodCxlLHMpe2xldCBpPXRoaXMuY3VycmVudFNjb3BlKCk7aWYoZSYyMDQ4KXt0aGlzLmNoZWNrUmVkZWNsYXJhdGlvbkluU2NvcGUoaSx0LGUscyksdGhpcy5tYXliZUV4cG9ydERlZmluZWQoaSx0KSxpLmRlY2xhcmVGdW5jdGlvbnMuYWRkKHQpO3JldHVybn1zdXBlci5kZWNsYXJlTmFtZSh0LGUscyl9aXNSZWRlY2xhcmVkSW5TY29wZSh0LGUscyl7cmV0dXJuIHN1cGVyLmlzUmVkZWNsYXJlZEluU2NvcGUodCxlLHMpPyEwOnMmMjA0OD8hdC5kZWNsYXJlRnVuY3Rpb25zLmhhcyhlKSYmKHQubGV4aWNhbC5oYXMoZSl8fHQuZnVuY3Rpb25zLmhhcyhlKSk6ITF9Y2hlY2tMb2NhbEV4cG9ydCh0KXt0aGlzLnNjb3BlU3RhY2tbMF0uZGVjbGFyZUZ1bmN0aW9ucy5oYXModC5uYW1lKXx8c3VwZXIuY2hlY2tMb2NhbEV4cG9ydCh0KX19LGl0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zYXdVbmFtYmlndW91c0VTTT0hMSx0aGlzLmFtYmlndW91c1NjcmlwdERpZmZlcmVudEFzdD0hMX1oYXNQbHVnaW4odCl7aWYodHlwZW9mIHQ9PVwic3RyaW5nXCIpcmV0dXJuIHRoaXMucGx1Z2lucy5oYXModCk7e2xldFtlLHNdPXQ7aWYoIXRoaXMuaGFzUGx1Z2luKGUpKXJldHVybiExO2xldCBpPXRoaXMucGx1Z2lucy5nZXQoZSk7Zm9yKGxldCByIG9mIE9iamVjdC5rZXlzKHMpKWlmKChpPT1udWxsP3ZvaWQgMDppW3JdKSE9PXNbcl0pcmV0dXJuITE7cmV0dXJuITB9fWdldFBsdWdpbk9wdGlvbih0LGUpe3ZhciBzO3JldHVybihzPXRoaXMucGx1Z2lucy5nZXQodCkpPT1udWxsP3ZvaWQgMDpzW2VdfX07ZnVuY3Rpb24gcnMoYSx0KXthLnRyYWlsaW5nQ29tbWVudHM9PT12b2lkIDA/YS50cmFpbGluZ0NvbW1lbnRzPXQ6YS50cmFpbGluZ0NvbW1lbnRzLnVuc2hpZnQoLi4udCl9ZnVuY3Rpb24gX2koYSx0KXthLmxlYWRpbmdDb21tZW50cz09PXZvaWQgMD9hLmxlYWRpbmdDb21tZW50cz10OmEubGVhZGluZ0NvbW1lbnRzLnVuc2hpZnQoLi4udCl9ZnVuY3Rpb24gVGUoYSx0KXthLmlubmVyQ29tbWVudHM9PT12b2lkIDA/YS5pbm5lckNvbW1lbnRzPXQ6YS5pbm5lckNvbW1lbnRzLnVuc2hpZnQoLi4udCl9ZnVuY3Rpb24gZGUoYSx0LGUpe2xldCBzPW51bGwsaT10Lmxlbmd0aDtmb3IoO3M9PT1udWxsJiZpPjA7KXM9dFstLWldO3M9PT1udWxsfHxzLnN0YXJ0PmUuc3RhcnQ/VGUoYSxlLmNvbW1lbnRzKTpycyhzLGUuY29tbWVudHMpfXZhciBydD1jbGFzcyBleHRlbmRzIGl0e2FkZENvbW1lbnQodCl7dGhpcy5maWxlbmFtZSYmKHQubG9jLmZpbGVuYW1lPXRoaXMuZmlsZW5hbWUpLHRoaXMuc3RhdGUuY29tbWVudHMucHVzaCh0KX1wcm9jZXNzQ29tbWVudCh0KXtsZXR7Y29tbWVudFN0YWNrOmV9PXRoaXMuc3RhdGUscz1lLmxlbmd0aDtpZihzPT09MClyZXR1cm47bGV0IGk9cy0xLHI9ZVtpXTtyLnN0YXJ0PT09dC5lbmQmJihyLmxlYWRpbmdOb2RlPXQsaS0tKTtsZXR7c3RhcnQ6bn09dDtmb3IoO2k+PTA7aS0tKXtsZXQgbz1lW2ldLGg9by5lbmQ7aWYoaD5uKW8uY29udGFpbmluZ05vZGU9dCx0aGlzLmZpbmFsaXplQ29tbWVudChvKSxlLnNwbGljZShpLDEpO2Vsc2V7aD09PW4mJihvLnRyYWlsaW5nTm9kZT10KTticmVha319fWZpbmFsaXplQ29tbWVudCh0KXtsZXR7Y29tbWVudHM6ZX09dDtpZih0LmxlYWRpbmdOb2RlIT09bnVsbHx8dC50cmFpbGluZ05vZGUhPT1udWxsKXQubGVhZGluZ05vZGUhPT1udWxsJiZycyh0LmxlYWRpbmdOb2RlLGUpLHQudHJhaWxpbmdOb2RlIT09bnVsbCYmX2kodC50cmFpbGluZ05vZGUsZSk7ZWxzZXtsZXR7Y29udGFpbmluZ05vZGU6cyxzdGFydDppfT10O2lmKHRoaXMuaW5wdXQuY2hhckNvZGVBdChpLTEpPT09NDQpc3dpdGNoKHMudHlwZSl7Y2FzZVwiT2JqZWN0RXhwcmVzc2lvblwiOmNhc2VcIk9iamVjdFBhdHRlcm5cIjpjYXNlXCJSZWNvcmRFeHByZXNzaW9uXCI6ZGUocyxzLnByb3BlcnRpZXMsdCk7YnJlYWs7Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6ZGUocyxzLmFyZ3VtZW50cyx0KTticmVhaztjYXNlXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCI6Y2FzZVwiRnVuY3Rpb25FeHByZXNzaW9uXCI6Y2FzZVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIjpjYXNlXCJPYmplY3RNZXRob2RcIjpjYXNlXCJDbGFzc01ldGhvZFwiOmNhc2VcIkNsYXNzUHJpdmF0ZU1ldGhvZFwiOmRlKHMscy5wYXJhbXMsdCk7YnJlYWs7Y2FzZVwiQXJyYXlFeHByZXNzaW9uXCI6Y2FzZVwiQXJyYXlQYXR0ZXJuXCI6Y2FzZVwiVHVwbGVFeHByZXNzaW9uXCI6ZGUocyxzLmVsZW1lbnRzLHQpO2JyZWFrO2Nhc2VcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIjpjYXNlXCJJbXBvcnREZWNsYXJhdGlvblwiOmRlKHMscy5zcGVjaWZpZXJzLHQpO2JyZWFrO2RlZmF1bHQ6VGUocyxlKX1lbHNlIFRlKHMsZSl9fWZpbmFsaXplUmVtYWluaW5nQ29tbWVudHMoKXtsZXR7Y29tbWVudFN0YWNrOnR9PXRoaXMuc3RhdGU7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5maW5hbGl6ZUNvbW1lbnQodFtlXSk7dGhpcy5zdGF0ZS5jb21tZW50U3RhY2s9W119cmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKHQpe2xldHtjb21tZW50U3RhY2s6ZX09dGhpcy5zdGF0ZSx7bGVuZ3RoOnN9PWU7aWYocz09PTApcmV0dXJuO2xldCBpPWVbcy0xXTtpLmxlYWRpbmdOb2RlPT09dCYmKGkubGVhZGluZ05vZGU9bnVsbCl9cmVzZXRQcmV2aW91c0lkZW50aWZpZXJMZWFkaW5nQ29tbWVudHModCl7bGV0e2NvbW1lbnRTdGFjazplfT10aGlzLnN0YXRlLHtsZW5ndGg6c309ZTtzIT09MCYmKGVbcy0xXS50cmFpbGluZ05vZGU9PT10P2Vbcy0xXS50cmFpbGluZ05vZGU9bnVsbDpzPj0yJiZlW3MtMl0udHJhaWxpbmdOb2RlPT09dCYmKGVbcy0yXS50cmFpbGluZ05vZGU9bnVsbCkpfXRha2VTdXJyb3VuZGluZ0NvbW1lbnRzKHQsZSxzKXtsZXR7Y29tbWVudFN0YWNrOml9PXRoaXMuc3RhdGUscj1pLmxlbmd0aDtpZihyPT09MClyZXR1cm47bGV0IG49ci0xO2Zvcig7bj49MDtuLS0pe2xldCBvPWlbbl0saD1vLmVuZDtpZihvLnN0YXJ0PT09cylvLmxlYWRpbmdOb2RlPXQ7ZWxzZSBpZihoPT09ZSlvLnRyYWlsaW5nTm9kZT10O2Vsc2UgaWYoaDxlKWJyZWFrfX19LGFzPS9cXHJcXG4/fFtcXG5cXHUyMDI4XFx1MjAyOV0vLEVlPW5ldyBSZWdFeHAoYXMuc291cmNlLFwiZ1wiKTtmdW5jdGlvbiB4ZShhKXtzd2l0Y2goYSl7Y2FzZSAxMDpjYXNlIDEzOmNhc2UgODIzMjpjYXNlIDgyMzM6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIFdlPS8oPzpcXHN8XFwvXFwvLip8XFwvXFwqW15dKj9cXCpcXC8pKi9nLGtlPS8oPzpbXlxcU1xcblxcclxcdTIwMjhcXHUyMDI5XXxcXC9cXC8uKnxcXC9cXCouKj9cXCpcXC8pKi9nLGp0PW5ldyBSZWdFeHAoXCIoPz0oXCIra2Uuc291cmNlK1wiKSlcXFxcMVwiKy8oPz1bXFxuXFxyXFx1MjAyOFxcdTIwMjldfFxcL1xcKig/IS4qP1xcKlxcLyl8JCkvLnNvdXJjZSxcInlcIik7ZnVuY3Rpb24gVWkoYSl7c3dpdGNoKGEpe2Nhc2UgOTpjYXNlIDExOmNhc2UgMTI6Y2FzZSAzMjpjYXNlIDE2MDpjYXNlIDU3NjA6Y2FzZSA4MTkyOmNhc2UgODE5MzpjYXNlIDgxOTQ6Y2FzZSA4MTk1OmNhc2UgODE5NjpjYXNlIDgxOTc6Y2FzZSA4MTk4OmNhc2UgODE5OTpjYXNlIDgyMDA6Y2FzZSA4MjAxOmNhc2UgODIwMjpjYXNlIDgyMzk6Y2FzZSA4Mjg3OmNhc2UgMTIyODg6Y2FzZSA2NTI3OTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX12YXIgYXQ9Y2xhc3MgYXtjb25zdHJ1Y3Rvcigpe3RoaXMuc3RyaWN0PXZvaWQgMCx0aGlzLmN1ckxpbmU9dm9pZCAwLHRoaXMubGluZVN0YXJ0PXZvaWQgMCx0aGlzLnN0YXJ0TG9jPXZvaWQgMCx0aGlzLmVuZExvYz12b2lkIDAsdGhpcy5lcnJvcnM9W10sdGhpcy5wb3RlbnRpYWxBcnJvd0F0PS0xLHRoaXMubm9BcnJvd0F0PVtdLHRoaXMubm9BcnJvd1BhcmFtc0NvbnZlcnNpb25BdD1bXSx0aGlzLm1heWJlSW5BcnJvd1BhcmFtZXRlcnM9ITEsdGhpcy5pblR5cGU9ITEsdGhpcy5ub0Fub25GdW5jdGlvblR5cGU9ITEsdGhpcy5oYXNGbG93Q29tbWVudD0hMSx0aGlzLmlzQW1iaWVudENvbnRleHQ9ITEsdGhpcy5pbkFic3RyYWN0Q2xhc3M9ITEsdGhpcy5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ9ITEsdGhpcy50b3BpY0NvbnRleHQ9e21heE51bU9mUmVzb2x2YWJsZVRvcGljczowLG1heFRvcGljSW5kZXg6bnVsbH0sdGhpcy5zb2xvQXdhaXQ9ITEsdGhpcy5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT0hMSx0aGlzLmxhYmVscz1bXSx0aGlzLmNvbW1lbnRzPVtdLHRoaXMuY29tbWVudFN0YWNrPVtdLHRoaXMucG9zPTAsdGhpcy50eXBlPTEzNyx0aGlzLnZhbHVlPW51bGwsdGhpcy5zdGFydD0wLHRoaXMuZW5kPTAsdGhpcy5sYXN0VG9rRW5kTG9jPW51bGwsdGhpcy5sYXN0VG9rU3RhcnRMb2M9bnVsbCx0aGlzLmxhc3RUb2tTdGFydD0wLHRoaXMuY29udGV4dD1bdy5icmFjZV0sdGhpcy5jYW5TdGFydEpTWEVsZW1lbnQ9ITAsdGhpcy5jb250YWluc0VzYz0hMSx0aGlzLmZpcnN0SW52YWxpZFRlbXBsYXRlRXNjYXBlUG9zPW51bGwsdGhpcy5zdHJpY3RFcnJvcnM9bmV3IE1hcCx0aGlzLnRva2Vuc0xlbmd0aD0wfWluaXQoe3N0cmljdE1vZGU6dCxzb3VyY2VUeXBlOmUsc3RhcnRMaW5lOnMsc3RhcnRDb2x1bW46aX0pe3RoaXMuc3RyaWN0PXQ9PT0hMT8hMTp0PT09ITA/ITA6ZT09PVwibW9kdWxlXCIsdGhpcy5jdXJMaW5lPXMsdGhpcy5saW5lU3RhcnQ9LWksdGhpcy5zdGFydExvYz10aGlzLmVuZExvYz1uZXcgRihzLGksMCl9Y3VyUG9zaXRpb24oKXtyZXR1cm4gbmV3IEYodGhpcy5jdXJMaW5lLHRoaXMucG9zLXRoaXMubGluZVN0YXJ0LHRoaXMucG9zKX1jbG9uZSh0KXtsZXQgZT1uZXcgYSxzPU9iamVjdC5rZXlzKHRoaXMpO2ZvcihsZXQgaT0wLHI9cy5sZW5ndGg7aTxyO2krKyl7bGV0IG49c1tpXSxvPXRoaXNbbl07IXQmJkFycmF5LmlzQXJyYXkobykmJihvPW8uc2xpY2UoKSksZVtuXT1vfXJldHVybiBlfX0samk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTQ4JiZ0PD01N30sJHQ9e2RlY0Jpbk9jdDpuZXcgU2V0KFs0Niw2Niw2OSw3OSw5NSw5OCwxMDEsMTExXSksaGV4Om5ldyBTZXQoWzQ2LDg4LDk1LDEyMF0pfSxJZT17YmluOmE9PmE9PT00OHx8YT09PTQ5LG9jdDphPT5hPj00OCYmYTw9NTUsZGVjOmE9PmE+PTQ4JiZhPD01NyxoZXg6YT0+YT49NDgmJmE8PTU3fHxhPj02NSYmYTw9NzB8fGE+PTk3JiZhPD0xMDJ9O2Z1bmN0aW9uIFZ0KGEsdCxlLHMsaSxyKXtsZXQgbj1lLG89cyxoPWksbD1cIlwiLGM9bnVsbCx1PWUse2xlbmd0aDpmfT10O2Zvcig7Oyl7aWYoZT49Zil7ci51bnRlcm1pbmF0ZWQobixvLGgpLGwrPXQuc2xpY2UodSxlKTticmVha31sZXQgZD10LmNoYXJDb2RlQXQoZSk7aWYoJGkoYSxkLHQsZSkpe2wrPXQuc2xpY2UodSxlKTticmVha31pZihkPT09OTIpe2wrPXQuc2xpY2UodSxlKTtsZXQgeD1WaSh0LGUscyxpLGE9PT1cInRlbXBsYXRlXCIscik7eC5jaD09PW51bGwmJiFjP2M9e3BvczplLGxpbmVTdGFydDpzLGN1ckxpbmU6aX06bCs9eC5jaCx7cG9zOmUsbGluZVN0YXJ0OnMsY3VyTGluZTppfT14LHU9ZX1lbHNlIGQ9PT04MjMyfHxkPT09ODIzMz8oKytlLCsraSxzPWUpOmQ9PT0xMHx8ZD09PTEzP2E9PT1cInRlbXBsYXRlXCI/KGwrPXQuc2xpY2UodSxlKStgXG5gLCsrZSxkPT09MTMmJnQuY2hhckNvZGVBdChlKT09PTEwJiYrK2UsKytpLHU9cz1lKTpyLnVudGVybWluYXRlZChuLG8saCk6KytlfXJldHVybntwb3M6ZSxzdHI6bCxmaXJzdEludmFsaWRMb2M6YyxsaW5lU3RhcnQ6cyxjdXJMaW5lOmksY29udGFpbnNJbnZhbGlkOiEhY319ZnVuY3Rpb24gJGkoYSx0LGUscyl7cmV0dXJuIGE9PT1cInRlbXBsYXRlXCI/dD09PTk2fHx0PT09MzYmJmUuY2hhckNvZGVBdChzKzEpPT09MTIzOnQ9PT0oYT09PVwiZG91YmxlXCI/MzQ6MzkpfWZ1bmN0aW9uIFZpKGEsdCxlLHMsaSxyKXtsZXQgbj0haTt0Kys7bGV0IG89bD0+KHtwb3M6dCxjaDpsLGxpbmVTdGFydDplLGN1ckxpbmU6c30pLGg9YS5jaGFyQ29kZUF0KHQrKyk7c3dpdGNoKGgpe2Nhc2UgMTEwOnJldHVybiBvKGBcbmApO2Nhc2UgMTE0OnJldHVybiBvKFwiXFxyXCIpO2Nhc2UgMTIwOntsZXQgbDtyZXR1cm57Y29kZTpsLHBvczp0fT1udChhLHQsZSxzLDIsITEsbixyKSxvKGw9PT1udWxsP251bGw6U3RyaW5nLmZyb21DaGFyQ29kZShsKSl9Y2FzZSAxMTc6e2xldCBsO3JldHVybntjb2RlOmwscG9zOnR9PW9zKGEsdCxlLHMsbixyKSxvKGw9PT1udWxsP251bGw6U3RyaW5nLmZyb21Db2RlUG9pbnQobCkpfWNhc2UgMTE2OnJldHVybiBvKFwiXHRcIik7Y2FzZSA5ODpyZXR1cm4gbyhcIlxcYlwiKTtjYXNlIDExODpyZXR1cm4gbyhcIlxcdlwiKTtjYXNlIDEwMjpyZXR1cm4gbyhcIlxcZlwiKTtjYXNlIDEzOmEuY2hhckNvZGVBdCh0KT09PTEwJiYrK3Q7Y2FzZSAxMDplPXQsKytzO2Nhc2UgODIzMjpjYXNlIDgyMzM6cmV0dXJuIG8oXCJcIik7Y2FzZSA1NjpjYXNlIDU3OmlmKGkpcmV0dXJuIG8obnVsbCk7ci5zdHJpY3ROdW1lcmljRXNjYXBlKHQtMSxlLHMpO2RlZmF1bHQ6aWYoaD49NDgmJmg8PTU1KXtsZXQgbD10LTEsdT1hLnNsaWNlKGwsdCsyKS5tYXRjaCgvXlswLTddKy8pWzBdLGY9cGFyc2VJbnQodSw4KTtmPjI1NSYmKHU9dS5zbGljZSgwLC0xKSxmPXBhcnNlSW50KHUsOCkpLHQrPXUubGVuZ3RoLTE7bGV0IGQ9YS5jaGFyQ29kZUF0KHQpO2lmKHUhPT1cIjBcInx8ZD09PTU2fHxkPT09NTcpe2lmKGkpcmV0dXJuIG8obnVsbCk7ci5zdHJpY3ROdW1lcmljRXNjYXBlKGwsZSxzKX1yZXR1cm4gbyhTdHJpbmcuZnJvbUNoYXJDb2RlKGYpKX1yZXR1cm4gbyhTdHJpbmcuZnJvbUNoYXJDb2RlKGgpKX19ZnVuY3Rpb24gbnQoYSx0LGUscyxpLHIsbixvKXtsZXQgaD10LGw7cmV0dXJue246bCxwb3M6dH09bnMoYSx0LGUscywxNixpLHIsITEsbywhbiksbD09PW51bGwmJihuP28uaW52YWxpZEVzY2FwZVNlcXVlbmNlKGgsZSxzKTp0PWgtMSkse2NvZGU6bCxwb3M6dH19ZnVuY3Rpb24gbnMoYSx0LGUscyxpLHIsbixvLGgsbCl7bGV0IGM9dCx1PWk9PT0xNj8kdC5oZXg6JHQuZGVjQmluT2N0LGY9aT09PTE2P0llLmhleDppPT09MTA/SWUuZGVjOmk9PT04P0llLm9jdDpJZS5iaW4sZD0hMSx4PTA7Zm9yKGxldCBJPTAsQz1yPz8xLzA7STxDOysrSSl7bGV0IEU9YS5jaGFyQ29kZUF0KHQpLE47aWYoRT09PTk1JiZvIT09XCJiYWlsXCIpe2xldCBDZT1hLmNoYXJDb2RlQXQodC0xKSxjZT1hLmNoYXJDb2RlQXQodCsxKTtpZihvKXtpZihOdW1iZXIuaXNOYU4oY2UpfHwhZihjZSl8fHUuaGFzKENlKXx8dS5oYXMoY2UpKXtpZihsKXJldHVybntuOm51bGwscG9zOnR9O2gudW5leHBlY3RlZE51bWVyaWNTZXBhcmF0b3IodCxlLHMpfX1lbHNle2lmKGwpcmV0dXJue246bnVsbCxwb3M6dH07aC5udW1lcmljU2VwYXJhdG9ySW5Fc2NhcGVTZXF1ZW5jZSh0LGUscyl9Kyt0O2NvbnRpbnVlfWlmKEU+PTk3P049RS05NysxMDpFPj02NT9OPUUtNjUrMTA6amkoRSk/Tj1FLTQ4Ok49MS8wLE4+PWkpe2lmKE48PTkmJmwpcmV0dXJue246bnVsbCxwb3M6dH07aWYoTjw9OSYmaC5pbnZhbGlkRGlnaXQodCxlLHMsaSkpTj0wO2Vsc2UgaWYobilOPTAsZD0hMDtlbHNlIGJyZWFrfSsrdCx4PXgqaStOfXJldHVybiB0PT09Y3x8ciE9bnVsbCYmdC1jIT09cnx8ZD97bjpudWxsLHBvczp0fTp7bjp4LHBvczp0fX1mdW5jdGlvbiBvcyhhLHQsZSxzLGkscil7bGV0IG49YS5jaGFyQ29kZUF0KHQpLG87aWYobj09PTEyMyl7aWYoKyt0LHtjb2RlOm8scG9zOnR9PW50KGEsdCxlLHMsYS5pbmRleE9mKFwifVwiLHQpLXQsITAsaSxyKSwrK3QsbyE9PW51bGwmJm8+MTExNDExMSlpZihpKXIuaW52YWxpZENvZGVQb2ludCh0LGUscyk7ZWxzZSByZXR1cm57Y29kZTpudWxsLHBvczp0fX1lbHNlKHtjb2RlOm8scG9zOnR9PW50KGEsdCxlLHMsNCwhMSxpLHIpKTtyZXR1cm57Y29kZTpvLHBvczp0fX12YXIgemk9W1wiYXRcIl0sS2k9W1wiYXRcIl07ZnVuY3Rpb24gZmUoYSx0LGUpe3JldHVybiBuZXcgRihlLGEtdCxhKX12YXIgcWk9bmV3IFNldChbMTAzLDEwOSwxMTUsMTA1LDEyMSwxMTcsMTAwLDExOF0pLE89Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy50eXBlPXQudHlwZSx0aGlzLnZhbHVlPXQudmFsdWUsdGhpcy5zdGFydD10LnN0YXJ0LHRoaXMuZW5kPXQuZW5kLHRoaXMubG9jPW5ldyBpZSh0LnN0YXJ0TG9jLHQuZW5kTG9jKX19LG90PWNsYXNzIGV4dGVuZHMgcnR7Y29uc3RydWN0b3IodCxlKXtzdXBlcigpLHRoaXMuaXNMb29rYWhlYWQ9dm9pZCAwLHRoaXMudG9rZW5zPVtdLHRoaXMuZXJyb3JIYW5kbGVyc19yZWFkSW50PXtpbnZhbGlkRGlnaXQ6KHMsaSxyLG4pPT50aGlzLm9wdGlvbnMuZXJyb3JSZWNvdmVyeT8odGhpcy5yYWlzZShwLkludmFsaWREaWdpdCx7YXQ6ZmUocyxpLHIpLHJhZGl4Om59KSwhMCk6ITEsbnVtZXJpY1NlcGFyYXRvckluRXNjYXBlU2VxdWVuY2U6dGhpcy5lcnJvckJ1aWxkZXIocC5OdW1lcmljU2VwYXJhdG9ySW5Fc2NhcGVTZXF1ZW5jZSksdW5leHBlY3RlZE51bWVyaWNTZXBhcmF0b3I6dGhpcy5lcnJvckJ1aWxkZXIocC5VbmV4cGVjdGVkTnVtZXJpY1NlcGFyYXRvcil9LHRoaXMuZXJyb3JIYW5kbGVyc19yZWFkQ29kZVBvaW50PU9iamVjdC5hc3NpZ24oe30sdGhpcy5lcnJvckhhbmRsZXJzX3JlYWRJbnQse2ludmFsaWRFc2NhcGVTZXF1ZW5jZTp0aGlzLmVycm9yQnVpbGRlcihwLkludmFsaWRFc2NhcGVTZXF1ZW5jZSksaW52YWxpZENvZGVQb2ludDp0aGlzLmVycm9yQnVpbGRlcihwLkludmFsaWRDb2RlUG9pbnQpfSksdGhpcy5lcnJvckhhbmRsZXJzX3JlYWRTdHJpbmdDb250ZW50c19zdHJpbmc9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmVycm9ySGFuZGxlcnNfcmVhZENvZGVQb2ludCx7c3RyaWN0TnVtZXJpY0VzY2FwZToocyxpLHIpPT57dGhpcy5yZWNvcmRTdHJpY3RNb2RlRXJyb3JzKHAuU3RyaWN0TnVtZXJpY0VzY2FwZSx7YXQ6ZmUocyxpLHIpfSl9LHVudGVybWluYXRlZDoocyxpLHIpPT57dGhyb3cgdGhpcy5yYWlzZShwLlVudGVybWluYXRlZFN0cmluZyx7YXQ6ZmUocy0xLGkscil9KX19KSx0aGlzLmVycm9ySGFuZGxlcnNfcmVhZFN0cmluZ0NvbnRlbnRzX3RlbXBsYXRlPU9iamVjdC5hc3NpZ24oe30sdGhpcy5lcnJvckhhbmRsZXJzX3JlYWRDb2RlUG9pbnQse3N0cmljdE51bWVyaWNFc2NhcGU6dGhpcy5lcnJvckJ1aWxkZXIocC5TdHJpY3ROdW1lcmljRXNjYXBlKSx1bnRlcm1pbmF0ZWQ6KHMsaSxyKT0+e3Rocm93IHRoaXMucmFpc2UocC5VbnRlcm1pbmF0ZWRUZW1wbGF0ZSx7YXQ6ZmUocyxpLHIpfSl9fSksdGhpcy5zdGF0ZT1uZXcgYXQsdGhpcy5zdGF0ZS5pbml0KHQpLHRoaXMuaW5wdXQ9ZSx0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLmlzTG9va2FoZWFkPSExfXB1c2hUb2tlbih0KXt0aGlzLnRva2Vucy5sZW5ndGg9dGhpcy5zdGF0ZS50b2tlbnNMZW5ndGgsdGhpcy50b2tlbnMucHVzaCh0KSwrK3RoaXMuc3RhdGUudG9rZW5zTGVuZ3RofW5leHQoKXt0aGlzLmNoZWNrS2V5d29yZEVzY2FwZXMoKSx0aGlzLm9wdGlvbnMudG9rZW5zJiZ0aGlzLnB1c2hUb2tlbihuZXcgTyh0aGlzLnN0YXRlKSksdGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnQ9dGhpcy5zdGF0ZS5zdGFydCx0aGlzLnN0YXRlLmxhc3RUb2tFbmRMb2M9dGhpcy5zdGF0ZS5lbmRMb2MsdGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2M9dGhpcy5zdGF0ZS5zdGFydExvYyx0aGlzLm5leHRUb2tlbigpfWVhdCh0KXtyZXR1cm4gdGhpcy5tYXRjaCh0KT8odGhpcy5uZXh0KCksITApOiExfW1hdGNoKHQpe3JldHVybiB0aGlzLnN0YXRlLnR5cGU9PT10fWNyZWF0ZUxvb2thaGVhZFN0YXRlKHQpe3JldHVybntwb3M6dC5wb3MsdmFsdWU6bnVsbCx0eXBlOnQudHlwZSxzdGFydDp0LnN0YXJ0LGVuZDp0LmVuZCxjb250ZXh0Olt0aGlzLmN1ckNvbnRleHQoKV0saW5UeXBlOnQuaW5UeXBlLHN0YXJ0TG9jOnQuc3RhcnRMb2MsbGFzdFRva0VuZExvYzp0Lmxhc3RUb2tFbmRMb2MsY3VyTGluZTp0LmN1ckxpbmUsbGluZVN0YXJ0OnQubGluZVN0YXJ0LGN1clBvc2l0aW9uOnQuY3VyUG9zaXRpb259fWxvb2thaGVhZCgpe2xldCB0PXRoaXMuc3RhdGU7dGhpcy5zdGF0ZT10aGlzLmNyZWF0ZUxvb2thaGVhZFN0YXRlKHQpLHRoaXMuaXNMb29rYWhlYWQ9ITAsdGhpcy5uZXh0VG9rZW4oKSx0aGlzLmlzTG9va2FoZWFkPSExO2xldCBlPXRoaXMuc3RhdGU7cmV0dXJuIHRoaXMuc3RhdGU9dCxlfW5leHRUb2tlblN0YXJ0KCl7cmV0dXJuIHRoaXMubmV4dFRva2VuU3RhcnRTaW5jZSh0aGlzLnN0YXRlLnBvcyl9bmV4dFRva2VuU3RhcnRTaW5jZSh0KXtyZXR1cm4gV2UubGFzdEluZGV4PXQsV2UudGVzdCh0aGlzLmlucHV0KT9XZS5sYXN0SW5kZXg6dH1sb29rYWhlYWRDaGFyQ29kZSgpe3JldHVybiB0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5uZXh0VG9rZW5TdGFydCgpKX1uZXh0VG9rZW5JbkxpbmVTdGFydCgpe3JldHVybiB0aGlzLm5leHRUb2tlbkluTGluZVN0YXJ0U2luY2UodGhpcy5zdGF0ZS5wb3MpfW5leHRUb2tlbkluTGluZVN0YXJ0U2luY2UodCl7cmV0dXJuIGtlLmxhc3RJbmRleD10LGtlLnRlc3QodGhpcy5pbnB1dCk/a2UubGFzdEluZGV4OnR9bG9va2FoZWFkSW5MaW5lQ2hhckNvZGUoKXtyZXR1cm4gdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMubmV4dFRva2VuSW5MaW5lU3RhcnQoKSl9Y29kZVBvaW50QXRQb3ModCl7bGV0IGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHQpO2lmKChlJjY0NTEyKT09PTU1Mjk2JiYrK3Q8dGhpcy5pbnB1dC5sZW5ndGgpe2xldCBzPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0KTsocyY2NDUxMik9PT01NjMyMCYmKGU9NjU1MzYrKChlJjEwMjMpPDwxMCkrKHMmMTAyMykpfXJldHVybiBlfXNldFN0cmljdCh0KXt0aGlzLnN0YXRlLnN0cmljdD10LHQmJih0aGlzLnN0YXRlLnN0cmljdEVycm9ycy5mb3JFYWNoKChbZSxzXSk9PnRoaXMucmFpc2UoZSx7YXQ6c30pKSx0aGlzLnN0YXRlLnN0cmljdEVycm9ycy5jbGVhcigpKX1jdXJDb250ZXh0KCl7cmV0dXJuIHRoaXMuc3RhdGUuY29udGV4dFt0aGlzLnN0YXRlLmNvbnRleHQubGVuZ3RoLTFdfW5leHRUb2tlbigpe2lmKHRoaXMuc2tpcFNwYWNlKCksdGhpcy5zdGF0ZS5zdGFydD10aGlzLnN0YXRlLnBvcyx0aGlzLmlzTG9va2FoZWFkfHwodGhpcy5zdGF0ZS5zdGFydExvYz10aGlzLnN0YXRlLmN1clBvc2l0aW9uKCkpLHRoaXMuc3RhdGUucG9zPj10aGlzLmxlbmd0aCl7dGhpcy5maW5pc2hUb2tlbigxMzcpO3JldHVybn10aGlzLmdldFRva2VuRnJvbUNvZGUodGhpcy5jb2RlUG9pbnRBdFBvcyh0aGlzLnN0YXRlLnBvcykpfXNraXBCbG9ja0NvbW1lbnQodCl7bGV0IGU7dGhpcy5pc0xvb2thaGVhZHx8KGU9dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpKTtsZXQgcz10aGlzLnN0YXRlLnBvcyxpPXRoaXMuaW5wdXQuaW5kZXhPZih0LHMrMik7aWYoaT09PS0xKXRocm93IHRoaXMucmFpc2UocC5VbnRlcm1pbmF0ZWRDb21tZW50LHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTtmb3IodGhpcy5zdGF0ZS5wb3M9aSt0Lmxlbmd0aCxFZS5sYXN0SW5kZXg9cysyO0VlLnRlc3QodGhpcy5pbnB1dCkmJkVlLmxhc3RJbmRleDw9aTspKyt0aGlzLnN0YXRlLmN1ckxpbmUsdGhpcy5zdGF0ZS5saW5lU3RhcnQ9RWUubGFzdEluZGV4O2lmKHRoaXMuaXNMb29rYWhlYWQpcmV0dXJuO2xldCByPXt0eXBlOlwiQ29tbWVudEJsb2NrXCIsdmFsdWU6dGhpcy5pbnB1dC5zbGljZShzKzIsaSksc3RhcnQ6cyxlbmQ6aSt0Lmxlbmd0aCxsb2M6bmV3IGllKGUsdGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpKX07cmV0dXJuIHRoaXMub3B0aW9ucy50b2tlbnMmJnRoaXMucHVzaFRva2VuKHIpLHJ9c2tpcExpbmVDb21tZW50KHQpe2xldCBlPXRoaXMuc3RhdGUucG9zLHM7dGhpcy5pc0xvb2thaGVhZHx8KHM9dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpKTtsZXQgaT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrPXQpO2lmKHRoaXMuc3RhdGUucG9zPHRoaXMubGVuZ3RoKWZvcig7IXhlKGkpJiYrK3RoaXMuc3RhdGUucG9zPHRoaXMubGVuZ3RoOylpPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcyk7aWYodGhpcy5pc0xvb2thaGVhZClyZXR1cm47bGV0IHI9dGhpcy5zdGF0ZS5wb3Msbz17dHlwZTpcIkNvbW1lbnRMaW5lXCIsdmFsdWU6dGhpcy5pbnB1dC5zbGljZShlK3Qsciksc3RhcnQ6ZSxlbmQ6cixsb2M6bmV3IGllKHMsdGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpKX07cmV0dXJuIHRoaXMub3B0aW9ucy50b2tlbnMmJnRoaXMucHVzaFRva2VuKG8pLG99c2tpcFNwYWNlKCl7bGV0IHQ9dGhpcy5zdGF0ZS5wb3MsZT1bXTtlOmZvcig7dGhpcy5zdGF0ZS5wb3M8dGhpcy5sZW5ndGg7KXtsZXQgcz10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MpO3N3aXRjaChzKXtjYXNlIDMyOmNhc2UgMTYwOmNhc2UgOTorK3RoaXMuc3RhdGUucG9zO2JyZWFrO2Nhc2UgMTM6dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpPT09MTAmJisrdGhpcy5zdGF0ZS5wb3M7Y2FzZSAxMDpjYXNlIDgyMzI6Y2FzZSA4MjMzOisrdGhpcy5zdGF0ZS5wb3MsKyt0aGlzLnN0YXRlLmN1ckxpbmUsdGhpcy5zdGF0ZS5saW5lU3RhcnQ9dGhpcy5zdGF0ZS5wb3M7YnJlYWs7Y2FzZSA0Nzpzd2l0Y2godGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpKXtjYXNlIDQyOntsZXQgaT10aGlzLnNraXBCbG9ja0NvbW1lbnQoXCIqL1wiKTtpIT09dm9pZCAwJiYodGhpcy5hZGRDb21tZW50KGkpLHRoaXMub3B0aW9ucy5hdHRhY2hDb21tZW50JiZlLnB1c2goaSkpO2JyZWFrfWNhc2UgNDc6e2xldCBpPXRoaXMuc2tpcExpbmVDb21tZW50KDIpO2khPT12b2lkIDAmJih0aGlzLmFkZENvbW1lbnQoaSksdGhpcy5vcHRpb25zLmF0dGFjaENvbW1lbnQmJmUucHVzaChpKSk7YnJlYWt9ZGVmYXVsdDpicmVhayBlfWJyZWFrO2RlZmF1bHQ6aWYoVWkocykpKyt0aGlzLnN0YXRlLnBvcztlbHNlIGlmKHM9PT00NSYmIXRoaXMuaW5Nb2R1bGUmJnRoaXMub3B0aW9ucy5hbm5leEIpe2xldCBpPXRoaXMuc3RhdGUucG9zO2lmKHRoaXMuaW5wdXQuY2hhckNvZGVBdChpKzEpPT09NDUmJnRoaXMuaW5wdXQuY2hhckNvZGVBdChpKzIpPT09NjImJih0PT09MHx8dGhpcy5zdGF0ZS5saW5lU3RhcnQ+dCkpe2xldCByPXRoaXMuc2tpcExpbmVDb21tZW50KDMpO3IhPT12b2lkIDAmJih0aGlzLmFkZENvbW1lbnQociksdGhpcy5vcHRpb25zLmF0dGFjaENvbW1lbnQmJmUucHVzaChyKSl9ZWxzZSBicmVhayBlfWVsc2UgaWYocz09PTYwJiYhdGhpcy5pbk1vZHVsZSYmdGhpcy5vcHRpb25zLmFubmV4Qil7bGV0IGk9dGhpcy5zdGF0ZS5wb3M7aWYodGhpcy5pbnB1dC5jaGFyQ29kZUF0KGkrMSk9PT0zMyYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KGkrMik9PT00NSYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KGkrMyk9PT00NSl7bGV0IHI9dGhpcy5za2lwTGluZUNvbW1lbnQoNCk7ciE9PXZvaWQgMCYmKHRoaXMuYWRkQ29tbWVudChyKSx0aGlzLm9wdGlvbnMuYXR0YWNoQ29tbWVudCYmZS5wdXNoKHIpKX1lbHNlIGJyZWFrIGV9ZWxzZSBicmVhayBlfX1pZihlLmxlbmd0aD4wKXtsZXQgcz10aGlzLnN0YXRlLnBvcyxpPXtzdGFydDp0LGVuZDpzLGNvbW1lbnRzOmUsbGVhZGluZ05vZGU6bnVsbCx0cmFpbGluZ05vZGU6bnVsbCxjb250YWluaW5nTm9kZTpudWxsfTt0aGlzLnN0YXRlLmNvbW1lbnRTdGFjay5wdXNoKGkpfX1maW5pc2hUb2tlbih0LGUpe3RoaXMuc3RhdGUuZW5kPXRoaXMuc3RhdGUucG9zLHRoaXMuc3RhdGUuZW5kTG9jPXRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKTtsZXQgcz10aGlzLnN0YXRlLnR5cGU7dGhpcy5zdGF0ZS50eXBlPXQsdGhpcy5zdGF0ZS52YWx1ZT1lLHRoaXMuaXNMb29rYWhlYWR8fHRoaXMudXBkYXRlQ29udGV4dChzKX1yZXBsYWNlVG9rZW4odCl7dGhpcy5zdGF0ZS50eXBlPXQsdGhpcy51cGRhdGVDb250ZXh0KCl9cmVhZFRva2VuX251bWJlclNpZ24oKXtpZih0aGlzLnN0YXRlLnBvcz09PTAmJnRoaXMucmVhZFRva2VuX2ludGVycHJldGVyKCkpcmV0dXJuO2xldCB0PXRoaXMuc3RhdGUucG9zKzEsZT10aGlzLmNvZGVQb2ludEF0UG9zKHQpO2lmKGU+PTQ4JiZlPD01Nyl0aHJvdyB0aGlzLnJhaXNlKHAuVW5leHBlY3RlZERpZ2l0QWZ0ZXJIYXNoLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTtpZihlPT09MTIzfHxlPT09OTEmJnRoaXMuaGFzUGx1Z2luKFwicmVjb3JkQW5kVHVwbGVcIikpe2lmKHRoaXMuZXhwZWN0UGx1Z2luKFwicmVjb3JkQW5kVHVwbGVcIiksdGhpcy5nZXRQbHVnaW5PcHRpb24oXCJyZWNvcmRBbmRUdXBsZVwiLFwic3ludGF4VHlwZVwiKT09PVwiYmFyXCIpdGhyb3cgdGhpcy5yYWlzZShlPT09MTIzP3AuUmVjb3JkRXhwcmVzc2lvbkhhc2hJbmNvcnJlY3RTdGFydFN5bnRheFR5cGU6cC5UdXBsZUV4cHJlc3Npb25IYXNoSW5jb3JyZWN0U3RhcnRTeW50YXhUeXBlLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTt0aGlzLnN0YXRlLnBvcys9MixlPT09MTIzP3RoaXMuZmluaXNoVG9rZW4oNyk6dGhpcy5maW5pc2hUb2tlbigxKX1lbHNlIGooZSk/KCsrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbigxMzYsdGhpcy5yZWFkV29yZDEoZSkpKTplPT09OTI/KCsrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbigxMzYsdGhpcy5yZWFkV29yZDEoKSkpOnRoaXMuZmluaXNoT3AoMjcsMSl9cmVhZFRva2VuX2RvdCgpe2xldCB0PXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysxKTtpZih0Pj00OCYmdDw9NTcpe3RoaXMucmVhZE51bWJlcighMCk7cmV0dXJufXQ9PT00NiYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzIpPT09NDY/KHRoaXMuc3RhdGUucG9zKz0zLHRoaXMuZmluaXNoVG9rZW4oMjEpKTooKyt0aGlzLnN0YXRlLnBvcyx0aGlzLmZpbmlzaFRva2VuKDE2KSl9cmVhZFRva2VuX3NsYXNoKCl7dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpPT09NjE/dGhpcy5maW5pc2hPcCgzMSwyKTp0aGlzLmZpbmlzaE9wKDU2LDEpfXJlYWRUb2tlbl9pbnRlcnByZXRlcigpe2lmKHRoaXMuc3RhdGUucG9zIT09MHx8dGhpcy5sZW5ndGg8MilyZXR1cm4hMTtsZXQgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMSk7aWYodCE9PTMzKXJldHVybiExO2xldCBlPXRoaXMuc3RhdGUucG9zO2Zvcih0aGlzLnN0YXRlLnBvcys9MTsheGUodCkmJisrdGhpcy5zdGF0ZS5wb3M8dGhpcy5sZW5ndGg7KXQ9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKTtsZXQgcz10aGlzLmlucHV0LnNsaWNlKGUrMix0aGlzLnN0YXRlLnBvcyk7cmV0dXJuIHRoaXMuZmluaXNoVG9rZW4oMjgscyksITB9cmVhZFRva2VuX211bHRfbW9kdWxvKHQpe2xldCBlPXQ9PT00Mj81NTo1NCxzPTEsaT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMSk7dD09PTQyJiZpPT09NDImJihzKyssaT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMiksZT01NyksaT09PTYxJiYhdGhpcy5zdGF0ZS5pblR5cGUmJihzKyssZT10PT09Mzc/MzM6MzApLHRoaXMuZmluaXNoT3AoZSxzKX1yZWFkVG9rZW5fcGlwZV9hbXAodCl7bGV0IGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpO2lmKGU9PT10KXt0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMik9PT02MT90aGlzLmZpbmlzaE9wKDMwLDMpOnRoaXMuZmluaXNoT3AodD09PTEyND80MTo0MiwyKTtyZXR1cm59aWYodD09PTEyNCl7aWYoZT09PTYyKXt0aGlzLmZpbmlzaE9wKDM5LDIpO3JldHVybn1pZih0aGlzLmhhc1BsdWdpbihcInJlY29yZEFuZFR1cGxlXCIpJiZlPT09MTI1KXtpZih0aGlzLmdldFBsdWdpbk9wdGlvbihcInJlY29yZEFuZFR1cGxlXCIsXCJzeW50YXhUeXBlXCIpIT09XCJiYXJcIil0aHJvdyB0aGlzLnJhaXNlKHAuUmVjb3JkRXhwcmVzc2lvbkJhckluY29ycmVjdEVuZFN5bnRheFR5cGUse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pO3RoaXMuc3RhdGUucG9zKz0yLHRoaXMuZmluaXNoVG9rZW4oOSk7cmV0dXJufWlmKHRoaXMuaGFzUGx1Z2luKFwicmVjb3JkQW5kVHVwbGVcIikmJmU9PT05Myl7aWYodGhpcy5nZXRQbHVnaW5PcHRpb24oXCJyZWNvcmRBbmRUdXBsZVwiLFwic3ludGF4VHlwZVwiKSE9PVwiYmFyXCIpdGhyb3cgdGhpcy5yYWlzZShwLlR1cGxlRXhwcmVzc2lvbkJhckluY29ycmVjdEVuZFN5bnRheFR5cGUse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pO3RoaXMuc3RhdGUucG9zKz0yLHRoaXMuZmluaXNoVG9rZW4oNCk7cmV0dXJufX1pZihlPT09NjEpe3RoaXMuZmluaXNoT3AoMzAsMik7cmV0dXJufXRoaXMuZmluaXNoT3AodD09PTEyND80Mzo0NSwxKX1yZWFkVG9rZW5fY2FyZXQoKXtsZXQgdD10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMSk7dD09PTYxJiYhdGhpcy5zdGF0ZS5pblR5cGU/dGhpcy5maW5pc2hPcCgzMiwyKTp0PT09OTQmJnRoaXMuaGFzUGx1Z2luKFtcInBpcGVsaW5lT3BlcmF0b3JcIix7cHJvcG9zYWw6XCJoYWNrXCIsdG9waWNUb2tlbjpcIl5eXCJ9XSk/KHRoaXMuZmluaXNoT3AoMzcsMiksdGhpcy5pbnB1dC5jb2RlUG9pbnRBdCh0aGlzLnN0YXRlLnBvcyk9PT05NCYmdGhpcy51bmV4cGVjdGVkKCkpOnRoaXMuZmluaXNoT3AoNDQsMSl9cmVhZFRva2VuX2F0U2lnbigpe3RoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysxKT09PTY0JiZ0aGlzLmhhc1BsdWdpbihbXCJwaXBlbGluZU9wZXJhdG9yXCIse3Byb3Bvc2FsOlwiaGFja1wiLHRvcGljVG9rZW46XCJAQFwifV0pP3RoaXMuZmluaXNoT3AoMzgsMik6dGhpcy5maW5pc2hPcCgyNiwxKX1yZWFkVG9rZW5fcGx1c19taW4odCl7bGV0IGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpO2lmKGU9PT10KXt0aGlzLmZpbmlzaE9wKDM0LDIpO3JldHVybn1lPT09NjE/dGhpcy5maW5pc2hPcCgzMCwyKTp0aGlzLmZpbmlzaE9wKDUzLDEpfXJlYWRUb2tlbl9sdCgpe2xldHtwb3M6dH09dGhpcy5zdGF0ZSxlPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0KzEpO2lmKGU9PT02MCl7aWYodGhpcy5pbnB1dC5jaGFyQ29kZUF0KHQrMik9PT02MSl7dGhpcy5maW5pc2hPcCgzMCwzKTtyZXR1cm59dGhpcy5maW5pc2hPcCg1MSwyKTtyZXR1cm59aWYoZT09PTYxKXt0aGlzLmZpbmlzaE9wKDQ5LDIpO3JldHVybn10aGlzLmZpbmlzaE9wKDQ3LDEpfXJlYWRUb2tlbl9ndCgpe2xldHtwb3M6dH09dGhpcy5zdGF0ZSxlPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0KzEpO2lmKGU9PT02Mil7bGV0IHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHQrMik9PT02Mj8zOjI7aWYodGhpcy5pbnB1dC5jaGFyQ29kZUF0KHQrcyk9PT02MSl7dGhpcy5maW5pc2hPcCgzMCxzKzEpO3JldHVybn10aGlzLmZpbmlzaE9wKDUyLHMpO3JldHVybn1pZihlPT09NjEpe3RoaXMuZmluaXNoT3AoNDksMik7cmV0dXJufXRoaXMuZmluaXNoT3AoNDgsMSl9cmVhZFRva2VuX2VxX2V4Y2wodCl7bGV0IGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpO2lmKGU9PT02MSl7dGhpcy5maW5pc2hPcCg0Nix0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMik9PT02MT8zOjIpO3JldHVybn1pZih0PT09NjEmJmU9PT02Mil7dGhpcy5zdGF0ZS5wb3MrPTIsdGhpcy5maW5pc2hUb2tlbigxOSk7cmV0dXJufXRoaXMuZmluaXNoT3AodD09PTYxPzI5OjM1LDEpfXJlYWRUb2tlbl9xdWVzdGlvbigpe2xldCB0PXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysxKSxlPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysyKTt0PT09NjM/ZT09PTYxP3RoaXMuZmluaXNoT3AoMzAsMyk6dGhpcy5maW5pc2hPcCg0MCwyKTp0PT09NDYmJiEoZT49NDgmJmU8PTU3KT8odGhpcy5zdGF0ZS5wb3MrPTIsdGhpcy5maW5pc2hUb2tlbigxOCkpOigrK3RoaXMuc3RhdGUucG9zLHRoaXMuZmluaXNoVG9rZW4oMTcpKX1nZXRUb2tlbkZyb21Db2RlKHQpe3N3aXRjaCh0KXtjYXNlIDQ2OnRoaXMucmVhZFRva2VuX2RvdCgpO3JldHVybjtjYXNlIDQwOisrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbigxMCk7cmV0dXJuO2Nhc2UgNDE6Kyt0aGlzLnN0YXRlLnBvcyx0aGlzLmZpbmlzaFRva2VuKDExKTtyZXR1cm47Y2FzZSA1OTorK3RoaXMuc3RhdGUucG9zLHRoaXMuZmluaXNoVG9rZW4oMTMpO3JldHVybjtjYXNlIDQ0OisrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbigxMik7cmV0dXJuO2Nhc2UgOTE6aWYodGhpcy5oYXNQbHVnaW4oXCJyZWNvcmRBbmRUdXBsZVwiKSYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpPT09MTI0KXtpZih0aGlzLmdldFBsdWdpbk9wdGlvbihcInJlY29yZEFuZFR1cGxlXCIsXCJzeW50YXhUeXBlXCIpIT09XCJiYXJcIil0aHJvdyB0aGlzLnJhaXNlKHAuVHVwbGVFeHByZXNzaW9uQmFySW5jb3JyZWN0U3RhcnRTeW50YXhUeXBlLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTt0aGlzLnN0YXRlLnBvcys9Mix0aGlzLmZpbmlzaFRva2VuKDIpfWVsc2UrK3RoaXMuc3RhdGUucG9zLHRoaXMuZmluaXNoVG9rZW4oMCk7cmV0dXJuO2Nhc2UgOTM6Kyt0aGlzLnN0YXRlLnBvcyx0aGlzLmZpbmlzaFRva2VuKDMpO3JldHVybjtjYXNlIDEyMzppZih0aGlzLmhhc1BsdWdpbihcInJlY29yZEFuZFR1cGxlXCIpJiZ0aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MrMSk9PT0xMjQpe2lmKHRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwicmVjb3JkQW5kVHVwbGVcIixcInN5bnRheFR5cGVcIikhPT1cImJhclwiKXRocm93IHRoaXMucmFpc2UocC5SZWNvcmRFeHByZXNzaW9uQmFySW5jb3JyZWN0U3RhcnRTeW50YXhUeXBlLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTt0aGlzLnN0YXRlLnBvcys9Mix0aGlzLmZpbmlzaFRva2VuKDYpfWVsc2UrK3RoaXMuc3RhdGUucG9zLHRoaXMuZmluaXNoVG9rZW4oNSk7cmV0dXJuO2Nhc2UgMTI1OisrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbig4KTtyZXR1cm47Y2FzZSA1ODp0aGlzLmhhc1BsdWdpbihcImZ1bmN0aW9uQmluZFwiKSYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpPT09NTg/dGhpcy5maW5pc2hPcCgxNSwyKTooKyt0aGlzLnN0YXRlLnBvcyx0aGlzLmZpbmlzaFRva2VuKDE0KSk7cmV0dXJuO2Nhc2UgNjM6dGhpcy5yZWFkVG9rZW5fcXVlc3Rpb24oKTtyZXR1cm47Y2FzZSA5Njp0aGlzLnJlYWRUZW1wbGF0ZVRva2VuKCk7cmV0dXJuO2Nhc2UgNDg6e2xldCBlPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysxKTtpZihlPT09MTIwfHxlPT09ODgpe3RoaXMucmVhZFJhZGl4TnVtYmVyKDE2KTtyZXR1cm59aWYoZT09PTExMXx8ZT09PTc5KXt0aGlzLnJlYWRSYWRpeE51bWJlcig4KTtyZXR1cm59aWYoZT09PTk4fHxlPT09NjYpe3RoaXMucmVhZFJhZGl4TnVtYmVyKDIpO3JldHVybn19Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpjYXNlIDU2OmNhc2UgNTc6dGhpcy5yZWFkTnVtYmVyKCExKTtyZXR1cm47Y2FzZSAzNDpjYXNlIDM5OnRoaXMucmVhZFN0cmluZyh0KTtyZXR1cm47Y2FzZSA0Nzp0aGlzLnJlYWRUb2tlbl9zbGFzaCgpO3JldHVybjtjYXNlIDM3OmNhc2UgNDI6dGhpcy5yZWFkVG9rZW5fbXVsdF9tb2R1bG8odCk7cmV0dXJuO2Nhc2UgMTI0OmNhc2UgMzg6dGhpcy5yZWFkVG9rZW5fcGlwZV9hbXAodCk7cmV0dXJuO2Nhc2UgOTQ6dGhpcy5yZWFkVG9rZW5fY2FyZXQoKTtyZXR1cm47Y2FzZSA0MzpjYXNlIDQ1OnRoaXMucmVhZFRva2VuX3BsdXNfbWluKHQpO3JldHVybjtjYXNlIDYwOnRoaXMucmVhZFRva2VuX2x0KCk7cmV0dXJuO2Nhc2UgNjI6dGhpcy5yZWFkVG9rZW5fZ3QoKTtyZXR1cm47Y2FzZSA2MTpjYXNlIDMzOnRoaXMucmVhZFRva2VuX2VxX2V4Y2wodCk7cmV0dXJuO2Nhc2UgMTI2OnRoaXMuZmluaXNoT3AoMzYsMSk7cmV0dXJuO2Nhc2UgNjQ6dGhpcy5yZWFkVG9rZW5fYXRTaWduKCk7cmV0dXJuO2Nhc2UgMzU6dGhpcy5yZWFkVG9rZW5fbnVtYmVyU2lnbigpO3JldHVybjtjYXNlIDkyOnRoaXMucmVhZFdvcmQoKTtyZXR1cm47ZGVmYXVsdDppZihqKHQpKXt0aGlzLnJlYWRXb3JkKHQpO3JldHVybn19dGhyb3cgdGhpcy5yYWlzZShwLkludmFsaWRPclVuZXhwZWN0ZWRUb2tlbix7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpLHVuZXhwZWN0ZWQ6U3RyaW5nLmZyb21Db2RlUG9pbnQodCl9KX1maW5pc2hPcCh0LGUpe2xldCBzPXRoaXMuaW5wdXQuc2xpY2UodGhpcy5zdGF0ZS5wb3MsdGhpcy5zdGF0ZS5wb3MrZSk7dGhpcy5zdGF0ZS5wb3MrPWUsdGhpcy5maW5pc2hUb2tlbih0LHMpfXJlYWRSZWdleHAoKXtsZXQgdD10aGlzLnN0YXRlLnN0YXJ0TG9jLGU9dGhpcy5zdGF0ZS5zdGFydCsxLHMsaSx7cG9zOnJ9PXRoaXMuc3RhdGU7Zm9yKDs7KytyKXtpZihyPj10aGlzLmxlbmd0aCl0aHJvdyB0aGlzLnJhaXNlKHAuVW50ZXJtaW5hdGVkUmVnRXhwLHthdDpMKHQsMSl9KTtsZXQgbD10aGlzLmlucHV0LmNoYXJDb2RlQXQocik7aWYoeGUobCkpdGhyb3cgdGhpcy5yYWlzZShwLlVudGVybWluYXRlZFJlZ0V4cCx7YXQ6TCh0LDEpfSk7aWYocylzPSExO2Vsc2V7aWYobD09PTkxKWk9ITA7ZWxzZSBpZihsPT09OTMmJmkpaT0hMTtlbHNlIGlmKGw9PT00NyYmIWkpYnJlYWs7cz1sPT09OTJ9fWxldCBuPXRoaXMuaW5wdXQuc2xpY2UoZSxyKTsrK3I7bGV0IG89XCJcIixoPSgpPT5MKHQscisyLWUpO2Zvcig7cjx0aGlzLmxlbmd0aDspe2xldCBsPXRoaXMuY29kZVBvaW50QXRQb3MociksYz1TdHJpbmcuZnJvbUNoYXJDb2RlKGwpO2lmKHFpLmhhcyhsKSlsPT09MTE4P28uaW5jbHVkZXMoXCJ1XCIpJiZ0aGlzLnJhaXNlKHAuSW5jb21wYXRpYmxlUmVnRXhwVVZGbGFncyx7YXQ6aCgpfSk6bD09PTExNyYmby5pbmNsdWRlcyhcInZcIikmJnRoaXMucmFpc2UocC5JbmNvbXBhdGlibGVSZWdFeHBVVkZsYWdzLHthdDpoKCl9KSxvLmluY2x1ZGVzKGMpJiZ0aGlzLnJhaXNlKHAuRHVwbGljYXRlUmVnRXhwRmxhZ3Mse2F0OmgoKX0pO2Vsc2UgaWYoZWUobCl8fGw9PT05Mil0aGlzLnJhaXNlKHAuTWFsZm9ybWVkUmVnRXhwRmxhZ3Mse2F0OmgoKX0pO2Vsc2UgYnJlYWs7KytyLG8rPWN9dGhpcy5zdGF0ZS5wb3M9cix0aGlzLmZpbmlzaFRva2VuKDEzNSx7cGF0dGVybjpuLGZsYWdzOm99KX1yZWFkSW50KHQsZSxzPSExLGk9ITApe2xldHtuOnIscG9zOm59PW5zKHRoaXMuaW5wdXQsdGhpcy5zdGF0ZS5wb3MsdGhpcy5zdGF0ZS5saW5lU3RhcnQsdGhpcy5zdGF0ZS5jdXJMaW5lLHQsZSxzLGksdGhpcy5lcnJvckhhbmRsZXJzX3JlYWRJbnQsITEpO3JldHVybiB0aGlzLnN0YXRlLnBvcz1uLHJ9cmVhZFJhZGl4TnVtYmVyKHQpe2xldCBlPXRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKSxzPSExO3RoaXMuc3RhdGUucG9zKz0yO2xldCBpPXRoaXMucmVhZEludCh0KTtpPT1udWxsJiZ0aGlzLnJhaXNlKHAuSW52YWxpZERpZ2l0LHthdDpMKGUsMikscmFkaXg6dH0pO2xldCByPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcyk7aWYocj09PTExMCkrK3RoaXMuc3RhdGUucG9zLHM9ITA7ZWxzZSBpZihyPT09MTA5KXRocm93IHRoaXMucmFpc2UocC5JbnZhbGlkRGVjaW1hbCx7YXQ6ZX0pO2lmKGoodGhpcy5jb2RlUG9pbnRBdFBvcyh0aGlzLnN0YXRlLnBvcykpKXRocm93IHRoaXMucmFpc2UocC5OdW1iZXJJZGVudGlmaWVyLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KTtpZihzKXtsZXQgbj10aGlzLmlucHV0LnNsaWNlKGUuaW5kZXgsdGhpcy5zdGF0ZS5wb3MpLnJlcGxhY2UoL1tfbl0vZyxcIlwiKTt0aGlzLmZpbmlzaFRva2VuKDEzMyxuKTtyZXR1cm59dGhpcy5maW5pc2hUb2tlbigxMzIsaSl9cmVhZE51bWJlcih0KXtsZXQgZT10aGlzLnN0YXRlLnBvcyxzPXRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKSxpPSExLHI9ITEsbj0hMSxvPSExLGg9ITE7IXQmJnRoaXMucmVhZEludCgxMCk9PT1udWxsJiZ0aGlzLnJhaXNlKHAuSW52YWxpZE51bWJlcix7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpfSk7bGV0IGw9dGhpcy5zdGF0ZS5wb3MtZT49MiYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KGUpPT09NDg7aWYobCl7bGV0IGQ9dGhpcy5pbnB1dC5zbGljZShlLHRoaXMuc3RhdGUucG9zKTtpZih0aGlzLnJlY29yZFN0cmljdE1vZGVFcnJvcnMocC5TdHJpY3RPY3RhbExpdGVyYWwse2F0OnN9KSwhdGhpcy5zdGF0ZS5zdHJpY3Qpe2xldCB4PWQuaW5kZXhPZihcIl9cIik7eD4wJiZ0aGlzLnJhaXNlKHAuWmVyb0RpZ2l0TnVtZXJpY1NlcGFyYXRvcix7YXQ6TChzLHgpfSl9aD1sJiYhL1s4OV0vLnRlc3QoZCl9bGV0IGM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKTtpZihjPT09NDYmJiFoJiYoKyt0aGlzLnN0YXRlLnBvcyx0aGlzLnJlYWRJbnQoMTApLGk9ITAsYz10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MpKSwoYz09PTY5fHxjPT09MTAxKSYmIWgmJihjPXRoaXMuaW5wdXQuY2hhckNvZGVBdCgrK3RoaXMuc3RhdGUucG9zKSwoYz09PTQzfHxjPT09NDUpJiYrK3RoaXMuc3RhdGUucG9zLHRoaXMucmVhZEludCgxMCk9PT1udWxsJiZ0aGlzLnJhaXNlKHAuSW52YWxpZE9yTWlzc2luZ0V4cG9uZW50LHthdDpzfSksaT0hMCxvPSEwLGM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKSksYz09PTExMCYmKChpfHxsKSYmdGhpcy5yYWlzZShwLkludmFsaWRCaWdJbnRMaXRlcmFsLHthdDpzfSksKyt0aGlzLnN0YXRlLnBvcyxyPSEwKSxjPT09MTA5JiYodGhpcy5leHBlY3RQbHVnaW4oXCJkZWNpbWFsXCIsdGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpKSwob3x8bCkmJnRoaXMucmFpc2UocC5JbnZhbGlkRGVjaW1hbCx7YXQ6c30pLCsrdGhpcy5zdGF0ZS5wb3Msbj0hMCksaih0aGlzLmNvZGVQb2ludEF0UG9zKHRoaXMuc3RhdGUucG9zKSkpdGhyb3cgdGhpcy5yYWlzZShwLk51bWJlcklkZW50aWZpZXIse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pO2xldCB1PXRoaXMuaW5wdXQuc2xpY2UoZSx0aGlzLnN0YXRlLnBvcykucmVwbGFjZSgvW19tbl0vZyxcIlwiKTtpZihyKXt0aGlzLmZpbmlzaFRva2VuKDEzMyx1KTtyZXR1cm59aWYobil7dGhpcy5maW5pc2hUb2tlbigxMzQsdSk7cmV0dXJufWxldCBmPWg/cGFyc2VJbnQodSw4KTpwYXJzZUZsb2F0KHUpO3RoaXMuZmluaXNoVG9rZW4oMTMyLGYpfXJlYWRDb2RlUG9pbnQodCl7bGV0e2NvZGU6ZSxwb3M6c309b3ModGhpcy5pbnB1dCx0aGlzLnN0YXRlLnBvcyx0aGlzLnN0YXRlLmxpbmVTdGFydCx0aGlzLnN0YXRlLmN1ckxpbmUsdCx0aGlzLmVycm9ySGFuZGxlcnNfcmVhZENvZGVQb2ludCk7cmV0dXJuIHRoaXMuc3RhdGUucG9zPXMsZX1yZWFkU3RyaW5nKHQpe2xldHtzdHI6ZSxwb3M6cyxjdXJMaW5lOmksbGluZVN0YXJ0OnJ9PVZ0KHQ9PT0zND9cImRvdWJsZVwiOlwic2luZ2xlXCIsdGhpcy5pbnB1dCx0aGlzLnN0YXRlLnBvcysxLHRoaXMuc3RhdGUubGluZVN0YXJ0LHRoaXMuc3RhdGUuY3VyTGluZSx0aGlzLmVycm9ySGFuZGxlcnNfcmVhZFN0cmluZ0NvbnRlbnRzX3N0cmluZyk7dGhpcy5zdGF0ZS5wb3M9cysxLHRoaXMuc3RhdGUubGluZVN0YXJ0PXIsdGhpcy5zdGF0ZS5jdXJMaW5lPWksdGhpcy5maW5pc2hUb2tlbigxMzEsZSl9cmVhZFRlbXBsYXRlQ29udGludWF0aW9uKCl7dGhpcy5tYXRjaCg4KXx8dGhpcy51bmV4cGVjdGVkKG51bGwsOCksdGhpcy5zdGF0ZS5wb3MtLSx0aGlzLnJlYWRUZW1wbGF0ZVRva2VuKCl9cmVhZFRlbXBsYXRlVG9rZW4oKXtsZXQgdD10aGlzLmlucHV0W3RoaXMuc3RhdGUucG9zXSx7c3RyOmUsZmlyc3RJbnZhbGlkTG9jOnMscG9zOmksY3VyTGluZTpyLGxpbmVTdGFydDpufT1WdChcInRlbXBsYXRlXCIsdGhpcy5pbnB1dCx0aGlzLnN0YXRlLnBvcysxLHRoaXMuc3RhdGUubGluZVN0YXJ0LHRoaXMuc3RhdGUuY3VyTGluZSx0aGlzLmVycm9ySGFuZGxlcnNfcmVhZFN0cmluZ0NvbnRlbnRzX3RlbXBsYXRlKTt0aGlzLnN0YXRlLnBvcz1pKzEsdGhpcy5zdGF0ZS5saW5lU3RhcnQ9bix0aGlzLnN0YXRlLmN1ckxpbmU9cixzJiYodGhpcy5zdGF0ZS5maXJzdEludmFsaWRUZW1wbGF0ZUVzY2FwZVBvcz1uZXcgRihzLmN1ckxpbmUscy5wb3Mtcy5saW5lU3RhcnQscy5wb3MpKSx0aGlzLmlucHV0LmNvZGVQb2ludEF0KGkpPT09OTY/dGhpcy5maW5pc2hUb2tlbigyNCxzP251bGw6dCtlK1wiYFwiKToodGhpcy5zdGF0ZS5wb3MrKyx0aGlzLmZpbmlzaFRva2VuKDI1LHM/bnVsbDp0K2UrXCIke1wiKSl9cmVjb3JkU3RyaWN0TW9kZUVycm9ycyh0LHthdDplfSl7bGV0IHM9ZS5pbmRleDt0aGlzLnN0YXRlLnN0cmljdCYmIXRoaXMuc3RhdGUuc3RyaWN0RXJyb3JzLmhhcyhzKT90aGlzLnJhaXNlKHQse2F0OmV9KTp0aGlzLnN0YXRlLnN0cmljdEVycm9ycy5zZXQocyxbdCxlXSl9cmVhZFdvcmQxKHQpe3RoaXMuc3RhdGUuY29udGFpbnNFc2M9ITE7bGV0IGU9XCJcIixzPXRoaXMuc3RhdGUucG9zLGk9dGhpcy5zdGF0ZS5wb3M7Zm9yKHQhPT12b2lkIDAmJih0aGlzLnN0YXRlLnBvcys9dDw9NjU1MzU/MToyKTt0aGlzLnN0YXRlLnBvczx0aGlzLmxlbmd0aDspe2xldCByPXRoaXMuY29kZVBvaW50QXRQb3ModGhpcy5zdGF0ZS5wb3MpO2lmKGVlKHIpKXRoaXMuc3RhdGUucG9zKz1yPD02NTUzNT8xOjI7ZWxzZSBpZihyPT09OTIpe3RoaXMuc3RhdGUuY29udGFpbnNFc2M9ITAsZSs9dGhpcy5pbnB1dC5zbGljZShpLHRoaXMuc3RhdGUucG9zKTtsZXQgbj10aGlzLnN0YXRlLmN1clBvc2l0aW9uKCksbz10aGlzLnN0YXRlLnBvcz09PXM/ajplZTtpZih0aGlzLmlucHV0LmNoYXJDb2RlQXQoKyt0aGlzLnN0YXRlLnBvcykhPT0xMTcpe3RoaXMucmFpc2UocC5NaXNzaW5nVW5pY29kZUVzY2FwZSx7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpfSksaT10aGlzLnN0YXRlLnBvcy0xO2NvbnRpbnVlfSsrdGhpcy5zdGF0ZS5wb3M7bGV0IGg9dGhpcy5yZWFkQ29kZVBvaW50KCEwKTtoIT09bnVsbCYmKG8oaCl8fHRoaXMucmFpc2UocC5Fc2NhcGVkQ2hhck5vdEFuSWRlbnRpZmllcix7YXQ6bn0pLGUrPVN0cmluZy5mcm9tQ29kZVBvaW50KGgpKSxpPXRoaXMuc3RhdGUucG9zfWVsc2UgYnJlYWt9cmV0dXJuIGUrdGhpcy5pbnB1dC5zbGljZShpLHRoaXMuc3RhdGUucG9zKX1yZWFkV29yZCh0KXtsZXQgZT10aGlzLnJlYWRXb3JkMSh0KSxzPWd0LmdldChlKTtzIT09dm9pZCAwP3RoaXMuZmluaXNoVG9rZW4ocyxxKHMpKTp0aGlzLmZpbmlzaFRva2VuKDEzMCxlKX1jaGVja0tleXdvcmRFc2NhcGVzKCl7bGV0e3R5cGU6dH09dGhpcy5zdGF0ZTtDdCh0KSYmdGhpcy5zdGF0ZS5jb250YWluc0VzYyYmdGhpcy5yYWlzZShwLkludmFsaWRFc2NhcGVkUmVzZXJ2ZWRXb3JkLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jLHJlc2VydmVkV29yZDpxKHQpfSl9cmFpc2UodCxlKXtsZXR7YXQ6c309ZSxpPUxlKGUsemkpLHI9cyBpbnN0YW5jZW9mIEY/czpzLmxvYy5zdGFydCxuPXQoe2xvYzpyLGRldGFpbHM6aX0pO2lmKCF0aGlzLm9wdGlvbnMuZXJyb3JSZWNvdmVyeSl0aHJvdyBuO3JldHVybiB0aGlzLmlzTG9va2FoZWFkfHx0aGlzLnN0YXRlLmVycm9ycy5wdXNoKG4pLG59cmFpc2VPdmVyd3JpdGUodCxlKXtsZXR7YXQ6c309ZSxpPUxlKGUsS2kpLHI9cyBpbnN0YW5jZW9mIEY/czpzLmxvYy5zdGFydCxuPXIuaW5kZXgsbz10aGlzLnN0YXRlLmVycm9ycztmb3IobGV0IGg9by5sZW5ndGgtMTtoPj0wO2gtLSl7bGV0IGw9b1toXTtpZihsLmxvYy5pbmRleD09PW4pcmV0dXJuIG9baF09dCh7bG9jOnIsZGV0YWlsczppfSk7aWYobC5sb2MuaW5kZXg8bilicmVha31yZXR1cm4gdGhpcy5yYWlzZSh0LGUpfXVwZGF0ZUNvbnRleHQodCl7fXVuZXhwZWN0ZWQodCxlKXt0aHJvdyB0aGlzLnJhaXNlKHAuVW5leHBlY3RlZFRva2VuLHtleHBlY3RlZDplP3EoZSk6bnVsbCxhdDp0Pz90aGlzLnN0YXRlLnN0YXJ0TG9jfSl9ZXhwZWN0UGx1Z2luKHQsZSl7aWYodGhpcy5oYXNQbHVnaW4odCkpcmV0dXJuITA7dGhyb3cgdGhpcy5yYWlzZShwLk1pc3NpbmdQbHVnaW4se2F0OmU/P3RoaXMuc3RhdGUuc3RhcnRMb2MsbWlzc2luZ1BsdWdpbjpbdF19KX1leHBlY3RPbmVQbHVnaW4odCl7aWYoIXQuc29tZShlPT50aGlzLmhhc1BsdWdpbihlKSkpdGhyb3cgdGhpcy5yYWlzZShwLk1pc3NpbmdPbmVPZlBsdWdpbnMse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2MsbWlzc2luZ1BsdWdpbjp0fSl9ZXJyb3JCdWlsZGVyKHQpe3JldHVybihlLHMsaSk9Pnt0aGlzLnJhaXNlKHQse2F0OmZlKGUscyxpKX0pfX19LGh0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5wcml2YXRlTmFtZXM9bmV3IFNldCx0aGlzLmxvbmVBY2Nlc3NvcnM9bmV3IE1hcCx0aGlzLnVuZGVmaW5lZFByaXZhdGVOYW1lcz1uZXcgTWFwfX0sbHQ9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMuc3RhY2s9W10sdGhpcy51bmRlZmluZWRQcml2YXRlTmFtZXM9bmV3IE1hcCx0aGlzLnBhcnNlcj10fWN1cnJlbnQoKXtyZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aC0xXX1lbnRlcigpe3RoaXMuc3RhY2sucHVzaChuZXcgaHQpfWV4aXQoKXtsZXQgdD10aGlzLnN0YWNrLnBvcCgpLGU9dGhpcy5jdXJyZW50KCk7Zm9yKGxldFtzLGldb2YgQXJyYXkuZnJvbSh0LnVuZGVmaW5lZFByaXZhdGVOYW1lcykpZT9lLnVuZGVmaW5lZFByaXZhdGVOYW1lcy5oYXMocyl8fGUudW5kZWZpbmVkUHJpdmF0ZU5hbWVzLnNldChzLGkpOnRoaXMucGFyc2VyLnJhaXNlKHAuSW52YWxpZFByaXZhdGVGaWVsZFJlc29sdXRpb24se2F0OmksaWRlbnRpZmllck5hbWU6c30pfWRlY2xhcmVQcml2YXRlTmFtZSh0LGUscyl7bGV0e3ByaXZhdGVOYW1lczppLGxvbmVBY2Nlc3NvcnM6cix1bmRlZmluZWRQcml2YXRlTmFtZXM6bn09dGhpcy5jdXJyZW50KCksbz1pLmhhcyh0KTtpZihlJjMpe2xldCBoPW8mJnIuZ2V0KHQpO2lmKGgpe2xldCBsPWgmNCxjPWUmNCx1PWgmMyxmPWUmMztvPXU9PT1mfHxsIT09YyxvfHxyLmRlbGV0ZSh0KX1lbHNlIG98fHIuc2V0KHQsZSl9byYmdGhpcy5wYXJzZXIucmFpc2UocC5Qcml2YXRlTmFtZVJlZGVjbGFyYXRpb24se2F0OnMsaWRlbnRpZmllck5hbWU6dH0pLGkuYWRkKHQpLG4uZGVsZXRlKHQpfXVzZVByaXZhdGVOYW1lKHQsZSl7bGV0IHM7Zm9yKHMgb2YgdGhpcy5zdGFjaylpZihzLnByaXZhdGVOYW1lcy5oYXModCkpcmV0dXJuO3M/cy51bmRlZmluZWRQcml2YXRlTmFtZXMuc2V0KHQsZSk6dGhpcy5wYXJzZXIucmFpc2UocC5JbnZhbGlkUHJpdmF0ZUZpZWxkUmVzb2x1dGlvbix7YXQ6ZSxpZGVudGlmaWVyTmFtZTp0fSl9fSxyZT1jbGFzc3tjb25zdHJ1Y3Rvcih0PTApe3RoaXMudHlwZT10fWNhbkJlQXJyb3dQYXJhbWV0ZXJEZWNsYXJhdGlvbigpe3JldHVybiB0aGlzLnR5cGU9PT0yfHx0aGlzLnR5cGU9PT0xfWlzQ2VydGFpbmx5UGFyYW1ldGVyRGVjbGFyYXRpb24oKXtyZXR1cm4gdGhpcy50eXBlPT09M319LE9lPWNsYXNzIGV4dGVuZHMgcmV7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5kZWNsYXJhdGlvbkVycm9ycz1uZXcgTWFwfXJlY29yZERlY2xhcmF0aW9uRXJyb3IodCx7YXQ6ZX0pe2xldCBzPWUuaW5kZXg7dGhpcy5kZWNsYXJhdGlvbkVycm9ycy5zZXQocyxbdCxlXSl9Y2xlYXJEZWNsYXJhdGlvbkVycm9yKHQpe3RoaXMuZGVjbGFyYXRpb25FcnJvcnMuZGVsZXRlKHQpfWl0ZXJhdGVFcnJvcnModCl7dGhpcy5kZWNsYXJhdGlvbkVycm9ycy5mb3JFYWNoKHQpfX0sY3Q9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5wYXJzZXI9dm9pZCAwLHRoaXMuc3RhY2s9W25ldyByZV0sdGhpcy5wYXJzZXI9dH1lbnRlcih0KXt0aGlzLnN0YWNrLnB1c2godCl9ZXhpdCgpe3RoaXMuc3RhY2sucG9wKCl9cmVjb3JkUGFyYW1ldGVySW5pdGlhbGl6ZXJFcnJvcih0LHthdDplfSl7bGV0IHM9e2F0OmUubG9jLnN0YXJ0fSx7c3RhY2s6aX09dGhpcyxyPWkubGVuZ3RoLTEsbj1pW3JdO2Zvcig7IW4uaXNDZXJ0YWlubHlQYXJhbWV0ZXJEZWNsYXJhdGlvbigpOyl7aWYobi5jYW5CZUFycm93UGFyYW1ldGVyRGVjbGFyYXRpb24oKSluLnJlY29yZERlY2xhcmF0aW9uRXJyb3IodCxzKTtlbHNlIHJldHVybjtuPWlbLS1yXX10aGlzLnBhcnNlci5yYWlzZSh0LHMpfXJlY29yZEFycm93UGFyYW1ldGVyQmluZGluZ0Vycm9yKHQse2F0OmV9KXtsZXR7c3RhY2s6c309dGhpcyxpPXNbcy5sZW5ndGgtMV0scj17YXQ6ZS5sb2Muc3RhcnR9O2lmKGkuaXNDZXJ0YWlubHlQYXJhbWV0ZXJEZWNsYXJhdGlvbigpKXRoaXMucGFyc2VyLnJhaXNlKHQscik7ZWxzZSBpZihpLmNhbkJlQXJyb3dQYXJhbWV0ZXJEZWNsYXJhdGlvbigpKWkucmVjb3JkRGVjbGFyYXRpb25FcnJvcih0LHIpO2Vsc2UgcmV0dXJufXJlY29yZEFzeW5jQXJyb3dQYXJhbWV0ZXJzRXJyb3Ioe2F0OnR9KXtsZXR7c3RhY2s6ZX09dGhpcyxzPWUubGVuZ3RoLTEsaT1lW3NdO2Zvcig7aS5jYW5CZUFycm93UGFyYW1ldGVyRGVjbGFyYXRpb24oKTspaS50eXBlPT09MiYmaS5yZWNvcmREZWNsYXJhdGlvbkVycm9yKHAuQXdhaXRCaW5kaW5nSWRlbnRpZmllcix7YXQ6dH0pLGk9ZVstLXNdfXZhbGlkYXRlQXNQYXR0ZXJuKCl7bGV0e3N0YWNrOnR9PXRoaXMsZT10W3QubGVuZ3RoLTFdO2UuY2FuQmVBcnJvd1BhcmFtZXRlckRlY2xhcmF0aW9uKCkmJmUuaXRlcmF0ZUVycm9ycygoW3MsaV0pPT57dGhpcy5wYXJzZXIucmFpc2Uocyx7YXQ6aX0pO2xldCByPXQubGVuZ3RoLTIsbj10W3JdO2Zvcig7bi5jYW5CZUFycm93UGFyYW1ldGVyRGVjbGFyYXRpb24oKTspbi5jbGVhckRlY2xhcmF0aW9uRXJyb3IoaS5pbmRleCksbj10Wy0tcl19KX19O2Z1bmN0aW9uIEhpKCl7cmV0dXJuIG5ldyByZSgzKX1mdW5jdGlvbiBXaSgpe3JldHVybiBuZXcgT2UoMSl9ZnVuY3Rpb24gSmkoKXtyZXR1cm4gbmV3IE9lKDIpfWZ1bmN0aW9uIGhzKCl7cmV0dXJuIG5ldyByZX12YXIgdGU9MCxscz0xLEJlPTIsY3M9NCxRPTgscHQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnN0YWNrcz1bXX1lbnRlcih0KXt0aGlzLnN0YWNrcy5wdXNoKHQpfWV4aXQoKXt0aGlzLnN0YWNrcy5wb3AoKX1jdXJyZW50RmxhZ3MoKXtyZXR1cm4gdGhpcy5zdGFja3NbdGhpcy5zdGFja3MubGVuZ3RoLTFdfWdldCBoYXNBd2FpdCgpe3JldHVybih0aGlzLmN1cnJlbnRGbGFncygpJkJlKT4wfWdldCBoYXNZaWVsZCgpe3JldHVybih0aGlzLmN1cnJlbnRGbGFncygpJmxzKT4wfWdldCBoYXNSZXR1cm4oKXtyZXR1cm4odGhpcy5jdXJyZW50RmxhZ3MoKSZjcyk+MH1nZXQgaGFzSW4oKXtyZXR1cm4odGhpcy5jdXJyZW50RmxhZ3MoKSZRKT4wfX07ZnVuY3Rpb24gdmUoYSx0KXtyZXR1cm4oYT9CZTowKXwodD9sczowKX12YXIgdXQ9Y2xhc3MgZXh0ZW5kcyBvdHthZGRFeHRyYSh0LGUscyxpPSEwKXtpZighdClyZXR1cm47bGV0IHI9dC5leHRyYT10LmV4dHJhfHx7fTtpP3JbZV09czpPYmplY3QuZGVmaW5lUHJvcGVydHkocixlLHtlbnVtZXJhYmxlOmksdmFsdWU6c30pfWlzQ29udGV4dHVhbCh0KXtyZXR1cm4gdGhpcy5zdGF0ZS50eXBlPT09dCYmIXRoaXMuc3RhdGUuY29udGFpbnNFc2N9aXNVbnBhcnNlZENvbnRleHR1YWwodCxlKXtsZXQgcz10K2UubGVuZ3RoO2lmKHRoaXMuaW5wdXQuc2xpY2UodCxzKT09PWUpe2xldCBpPXRoaXMuaW5wdXQuY2hhckNvZGVBdChzKTtyZXR1cm4hKGVlKGkpfHwoaSY2NDUxMik9PT01NTI5Nil9cmV0dXJuITF9aXNMb29rYWhlYWRDb250ZXh0dWFsKHQpe2xldCBlPXRoaXMubmV4dFRva2VuU3RhcnQoKTtyZXR1cm4gdGhpcy5pc1VucGFyc2VkQ29udGV4dHVhbChlLHQpfWVhdENvbnRleHR1YWwodCl7cmV0dXJuIHRoaXMuaXNDb250ZXh0dWFsKHQpPyh0aGlzLm5leHQoKSwhMCk6ITF9ZXhwZWN0Q29udGV4dHVhbCh0LGUpe2lmKCF0aGlzLmVhdENvbnRleHR1YWwodCkpe2lmKGUhPW51bGwpdGhyb3cgdGhpcy5yYWlzZShlLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7dGhpcy51bmV4cGVjdGVkKG51bGwsdCl9fWNhbkluc2VydFNlbWljb2xvbigpe3JldHVybiB0aGlzLm1hdGNoKDEzNyl8fHRoaXMubWF0Y2goOCl8fHRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl9aGFzUHJlY2VkaW5nTGluZUJyZWFrKCl7cmV0dXJuIGFzLnRlc3QodGhpcy5pbnB1dC5zbGljZSh0aGlzLnN0YXRlLmxhc3RUb2tFbmRMb2MuaW5kZXgsdGhpcy5zdGF0ZS5zdGFydCkpfWhhc0ZvbGxvd2luZ0xpbmVCcmVhaygpe3JldHVybiBqdC5sYXN0SW5kZXg9dGhpcy5zdGF0ZS5lbmQsanQudGVzdCh0aGlzLmlucHV0KX1pc0xpbmVUZXJtaW5hdG9yKCl7cmV0dXJuIHRoaXMuZWF0KDEzKXx8dGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKX1zZW1pY29sb24odD0hMCl7KHQ/dGhpcy5pc0xpbmVUZXJtaW5hdG9yKCk6dGhpcy5lYXQoMTMpKXx8dGhpcy5yYWlzZShwLk1pc3NpbmdTZW1pY29sb24se2F0OnRoaXMuc3RhdGUubGFzdFRva0VuZExvY30pfWV4cGVjdCh0LGUpe3RoaXMuZWF0KHQpfHx0aGlzLnVuZXhwZWN0ZWQoZSx0KX10cnlQYXJzZSh0LGU9dGhpcy5zdGF0ZS5jbG9uZSgpKXtsZXQgcz17bm9kZTpudWxsfTt0cnl7bGV0IGk9dCgocj1udWxsKT0+e3Rocm93IHMubm9kZT1yLHN9KTtpZih0aGlzLnN0YXRlLmVycm9ycy5sZW5ndGg+ZS5lcnJvcnMubGVuZ3RoKXtsZXQgcj10aGlzLnN0YXRlO3JldHVybiB0aGlzLnN0YXRlPWUsdGhpcy5zdGF0ZS50b2tlbnNMZW5ndGg9ci50b2tlbnNMZW5ndGgse25vZGU6aSxlcnJvcjpyLmVycm9yc1tlLmVycm9ycy5sZW5ndGhdLHRocm93bjohMSxhYm9ydGVkOiExLGZhaWxTdGF0ZTpyfX1yZXR1cm57bm9kZTppLGVycm9yOm51bGwsdGhyb3duOiExLGFib3J0ZWQ6ITEsZmFpbFN0YXRlOm51bGx9fWNhdGNoKGkpe2xldCByPXRoaXMuc3RhdGU7aWYodGhpcy5zdGF0ZT1lLGkgaW5zdGFuY2VvZiBTeW50YXhFcnJvcilyZXR1cm57bm9kZTpudWxsLGVycm9yOmksdGhyb3duOiEwLGFib3J0ZWQ6ITEsZmFpbFN0YXRlOnJ9O2lmKGk9PT1zKXJldHVybntub2RlOnMubm9kZSxlcnJvcjpudWxsLHRocm93bjohMSxhYm9ydGVkOiEwLGZhaWxTdGF0ZTpyfTt0aHJvdyBpfX1jaGVja0V4cHJlc3Npb25FcnJvcnModCxlKXtpZighdClyZXR1cm4hMTtsZXR7c2hvcnRoYW5kQXNzaWduTG9jOnMsZG91YmxlUHJvdG9Mb2M6aSxwcml2YXRlS2V5TG9jOnIsb3B0aW9uYWxQYXJhbWV0ZXJzTG9jOm59PXQsbz0hIXN8fCEhaXx8ISFufHwhIXI7aWYoIWUpcmV0dXJuIG87cyE9bnVsbCYmdGhpcy5yYWlzZShwLkludmFsaWRDb3ZlckluaXRpYWxpemVkTmFtZSx7YXQ6c30pLGkhPW51bGwmJnRoaXMucmFpc2UocC5EdXBsaWNhdGVQcm90byx7YXQ6aX0pLHIhPW51bGwmJnRoaXMucmFpc2UocC5VbmV4cGVjdGVkUHJpdmF0ZUZpZWxkLHthdDpyfSksbiE9bnVsbCYmdGhpcy51bmV4cGVjdGVkKG4pfWlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpe3JldHVybiBZdCh0aGlzLnN0YXRlLnR5cGUpfWlzUHJpdmF0ZU5hbWUodCl7cmV0dXJuIHQudHlwZT09PVwiUHJpdmF0ZU5hbWVcIn1nZXRQcml2YXRlTmFtZVNWKHQpe3JldHVybiB0LmlkLm5hbWV9aGFzUHJvcGVydHlBc1ByaXZhdGVOYW1lKHQpe3JldHVybih0LnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cInx8dC50eXBlPT09XCJPcHRpb25hbE1lbWJlckV4cHJlc3Npb25cIikmJnRoaXMuaXNQcml2YXRlTmFtZSh0LnByb3BlcnR5KX1pc09iamVjdFByb3BlcnR5KHQpe3JldHVybiB0LnR5cGU9PT1cIk9iamVjdFByb3BlcnR5XCJ9aXNPYmplY3RNZXRob2QodCl7cmV0dXJuIHQudHlwZT09PVwiT2JqZWN0TWV0aG9kXCJ9aW5pdGlhbGl6ZVNjb3Blcyh0PXRoaXMub3B0aW9ucy5zb3VyY2VUeXBlPT09XCJtb2R1bGVcIil7bGV0IGU9dGhpcy5zdGF0ZS5sYWJlbHM7dGhpcy5zdGF0ZS5sYWJlbHM9W107bGV0IHM9dGhpcy5leHBvcnRlZElkZW50aWZpZXJzO3RoaXMuZXhwb3J0ZWRJZGVudGlmaWVycz1uZXcgU2V0O2xldCBpPXRoaXMuaW5Nb2R1bGU7dGhpcy5pbk1vZHVsZT10O2xldCByPXRoaXMuc2NvcGUsbj10aGlzLmdldFNjb3BlSGFuZGxlcigpO3RoaXMuc2NvcGU9bmV3IG4odGhpcyx0KTtsZXQgbz10aGlzLnByb2RQYXJhbTt0aGlzLnByb2RQYXJhbT1uZXcgcHQ7bGV0IGg9dGhpcy5jbGFzc1Njb3BlO3RoaXMuY2xhc3NTY29wZT1uZXcgbHQodGhpcyk7bGV0IGw9dGhpcy5leHByZXNzaW9uU2NvcGU7cmV0dXJuIHRoaXMuZXhwcmVzc2lvblNjb3BlPW5ldyBjdCh0aGlzKSwoKT0+e3RoaXMuc3RhdGUubGFiZWxzPWUsdGhpcy5leHBvcnRlZElkZW50aWZpZXJzPXMsdGhpcy5pbk1vZHVsZT1pLHRoaXMuc2NvcGU9cix0aGlzLnByb2RQYXJhbT1vLHRoaXMuY2xhc3NTY29wZT1oLHRoaXMuZXhwcmVzc2lvblNjb3BlPWx9fWVudGVySW5pdGlhbFNjb3Blcygpe2xldCB0PXRlO3RoaXMuaW5Nb2R1bGUmJih0fD1CZSksdGhpcy5zY29wZS5lbnRlcigxKSx0aGlzLnByb2RQYXJhbS5lbnRlcih0KX1jaGVja0Rlc3RydWN0dXJpbmdQcml2YXRlKHQpe2xldHtwcml2YXRlS2V5TG9jOmV9PXQ7ZSE9PW51bGwmJnRoaXMuZXhwZWN0UGx1Z2luKFwiZGVzdHJ1Y3R1cmluZ1ByaXZhdGVcIixlKX19LHNlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zaG9ydGhhbmRBc3NpZ25Mb2M9bnVsbCx0aGlzLmRvdWJsZVByb3RvTG9jPW51bGwsdGhpcy5wcml2YXRlS2V5TG9jPW51bGwsdGhpcy5vcHRpb25hbFBhcmFtZXRlcnNMb2M9bnVsbH19LGFlPWNsYXNze2NvbnN0cnVjdG9yKHQsZSxzKXt0aGlzLnR5cGU9XCJcIix0aGlzLnN0YXJ0PWUsdGhpcy5lbmQ9MCx0aGlzLmxvYz1uZXcgaWUocyksdCE9bnVsbCYmdC5vcHRpb25zLnJhbmdlcyYmKHRoaXMucmFuZ2U9W2UsMF0pLHQhPW51bGwmJnQuZmlsZW5hbWUmJih0aGlzLmxvYy5maWxlbmFtZT10LmZpbGVuYW1lKX19LE50PWFlLnByb3RvdHlwZTtOdC5fX2Nsb25lPWZ1bmN0aW9uKCl7bGV0IGE9bmV3IGFlKHZvaWQgMCx0aGlzLnN0YXJ0LHRoaXMubG9jLnN0YXJ0KSx0PU9iamVjdC5rZXlzKHRoaXMpO2ZvcihsZXQgZT0wLHM9dC5sZW5ndGg7ZTxzO2UrKyl7bGV0IGk9dFtlXTtpIT09XCJsZWFkaW5nQ29tbWVudHNcIiYmaSE9PVwidHJhaWxpbmdDb21tZW50c1wiJiZpIT09XCJpbm5lckNvbW1lbnRzXCImJihhW2ldPXRoaXNbaV0pfXJldHVybiBhfTtmdW5jdGlvbiBYaShhKXtyZXR1cm4gVihhKX1mdW5jdGlvbiBWKGEpe2xldHt0eXBlOnQsc3RhcnQ6ZSxlbmQ6cyxsb2M6aSxyYW5nZTpyLGV4dHJhOm4sbmFtZTpvfT1hLGg9T2JqZWN0LmNyZWF0ZShOdCk7cmV0dXJuIGgudHlwZT10LGguc3RhcnQ9ZSxoLmVuZD1zLGgubG9jPWksaC5yYW5nZT1yLGguZXh0cmE9bixoLm5hbWU9byx0PT09XCJQbGFjZWhvbGRlclwiJiYoaC5leHBlY3RlZE5vZGU9YS5leHBlY3RlZE5vZGUpLGh9ZnVuY3Rpb24gR2koYSl7bGV0e3R5cGU6dCxzdGFydDplLGVuZDpzLGxvYzppLHJhbmdlOnIsZXh0cmE6bn09YTtpZih0PT09XCJQbGFjZWhvbGRlclwiKXJldHVybiBYaShhKTtsZXQgbz1PYmplY3QuY3JlYXRlKE50KTtyZXR1cm4gby50eXBlPXQsby5zdGFydD1lLG8uZW5kPXMsby5sb2M9aSxvLnJhbmdlPXIsYS5yYXchPT12b2lkIDA/by5yYXc9YS5yYXc6by5leHRyYT1uLG8udmFsdWU9YS52YWx1ZSxvfXZhciBkdD1jbGFzcyBleHRlbmRzIHV0e3N0YXJ0Tm9kZSgpe3JldHVybiBuZXcgYWUodGhpcyx0aGlzLnN0YXRlLnN0YXJ0LHRoaXMuc3RhdGUuc3RhcnRMb2MpfXN0YXJ0Tm9kZUF0KHQpe3JldHVybiBuZXcgYWUodGhpcyx0LmluZGV4LHQpfXN0YXJ0Tm9kZUF0Tm9kZSh0KXtyZXR1cm4gdGhpcy5zdGFydE5vZGVBdCh0LmxvYy5zdGFydCl9ZmluaXNoTm9kZSh0LGUpe3JldHVybiB0aGlzLmZpbmlzaE5vZGVBdCh0LGUsdGhpcy5zdGF0ZS5sYXN0VG9rRW5kTG9jKX1maW5pc2hOb2RlQXQodCxlLHMpe3JldHVybiB0LnR5cGU9ZSx0LmVuZD1zLmluZGV4LHQubG9jLmVuZD1zLHRoaXMub3B0aW9ucy5yYW5nZXMmJih0LnJhbmdlWzFdPXMuaW5kZXgpLHRoaXMub3B0aW9ucy5hdHRhY2hDb21tZW50JiZ0aGlzLnByb2Nlc3NDb21tZW50KHQpLHR9cmVzZXRTdGFydExvY2F0aW9uKHQsZSl7dC5zdGFydD1lLmluZGV4LHQubG9jLnN0YXJ0PWUsdGhpcy5vcHRpb25zLnJhbmdlcyYmKHQucmFuZ2VbMF09ZS5pbmRleCl9cmVzZXRFbmRMb2NhdGlvbih0LGU9dGhpcy5zdGF0ZS5sYXN0VG9rRW5kTG9jKXt0LmVuZD1lLmluZGV4LHQubG9jLmVuZD1lLHRoaXMub3B0aW9ucy5yYW5nZXMmJih0LnJhbmdlWzFdPWUuaW5kZXgpfXJlc2V0U3RhcnRMb2NhdGlvbkZyb21Ob2RlKHQsZSl7dGhpcy5yZXNldFN0YXJ0TG9jYXRpb24odCxlLmxvYy5zdGFydCl9fSxZaT1uZXcgU2V0KFtcIl9cIixcImFueVwiLFwiYm9vbFwiLFwiYm9vbGVhblwiLFwiZW1wdHlcIixcImV4dGVuZHNcIixcImZhbHNlXCIsXCJpbnRlcmZhY2VcIixcIm1peGVkXCIsXCJudWxsXCIsXCJudW1iZXJcIixcInN0YXRpY1wiLFwic3RyaW5nXCIsXCJ0cnVlXCIsXCJ0eXBlb2ZcIixcInZvaWRcIl0pLGc9JGBmbG93YCh7QW1iaWd1b3VzQ29uZGl0aW9uYWxBcnJvdzpcIkFtYmlndW91cyBleHByZXNzaW9uOiB3cmFwIHRoZSBhcnJvdyBmdW5jdGlvbnMgaW4gcGFyZW50aGVzZXMgdG8gZGlzYW1iaWd1YXRlLlwiLEFtYmlndW91c0RlY2xhcmVNb2R1bGVLaW5kOlwiRm91bmQgYm90aCBgZGVjbGFyZSBtb2R1bGUuZXhwb3J0c2AgYW5kIGBkZWNsYXJlIGV4cG9ydGAgaW4gdGhlIHNhbWUgbW9kdWxlLiBNb2R1bGVzIGNhbiBvbmx5IGhhdmUgMSBzaW5jZSB0aGV5IGFyZSBlaXRoZXIgYW4gRVMgbW9kdWxlIG9yIHRoZXkgYXJlIGEgQ29tbW9uSlMgbW9kdWxlLlwiLEFzc2lnblJlc2VydmVkVHlwZTooe3Jlc2VydmVkVHlwZTphfSk9PmBDYW5ub3Qgb3ZlcndyaXRlIHJlc2VydmVkIHR5cGUgJHthfS5gLERlY2xhcmVDbGFzc0VsZW1lbnQ6XCJUaGUgYGRlY2xhcmVgIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBjbGFzcyBmaWVsZHMuXCIsRGVjbGFyZUNsYXNzRmllbGRJbml0aWFsaXplcjpcIkluaXRpYWxpemVycyBhcmUgbm90IGFsbG93ZWQgaW4gZmllbGRzIHdpdGggdGhlIGBkZWNsYXJlYCBtb2RpZmllci5cIixEdXBsaWNhdGVEZWNsYXJlTW9kdWxlRXhwb3J0czpcIkR1cGxpY2F0ZSBgZGVjbGFyZSBtb2R1bGUuZXhwb3J0c2Agc3RhdGVtZW50LlwiLEVudW1Cb29sZWFuTWVtYmVyTm90SW5pdGlhbGl6ZWQ6KHttZW1iZXJOYW1lOmEsZW51bU5hbWU6dH0pPT5gQm9vbGVhbiBlbnVtIG1lbWJlcnMgbmVlZCB0byBiZSBpbml0aWFsaXplZC4gVXNlIGVpdGhlciBcXGAke2F9ID0gdHJ1ZSxcXGAgb3IgXFxgJHthfSA9IGZhbHNlLFxcYCBpbiBlbnVtIFxcYCR7dH1cXGAuYCxFbnVtRHVwbGljYXRlTWVtYmVyTmFtZTooe21lbWJlck5hbWU6YSxlbnVtTmFtZTp0fSk9PmBFbnVtIG1lbWJlciBuYW1lcyBuZWVkIHRvIGJlIHVuaXF1ZSwgYnV0IHRoZSBuYW1lIFxcYCR7YX1cXGAgaGFzIGFscmVhZHkgYmVlbiB1c2VkIGJlZm9yZSBpbiBlbnVtIFxcYCR7dH1cXGAuYCxFbnVtSW5jb25zaXN0ZW50TWVtYmVyVmFsdWVzOih7ZW51bU5hbWU6YX0pPT5gRW51bSBcXGAke2F9XFxgIGhhcyBpbmNvbnNpc3RlbnQgbWVtYmVyIGluaXRpYWxpemVycy4gRWl0aGVyIHVzZSBubyBpbml0aWFsaXplcnMsIG9yIGNvbnNpc3RlbnRseSB1c2UgbGl0ZXJhbHMgKGVpdGhlciBib29sZWFucywgbnVtYmVycywgb3Igc3RyaW5ncykgZm9yIGFsbCBtZW1iZXIgaW5pdGlhbGl6ZXJzLmAsRW51bUludmFsaWRFeHBsaWNpdFR5cGU6KHtpbnZhbGlkRW51bVR5cGU6YSxlbnVtTmFtZTp0fSk9PmBFbnVtIHR5cGUgXFxgJHthfVxcYCBpcyBub3QgdmFsaWQuIFVzZSBvbmUgb2YgXFxgYm9vbGVhblxcYCwgXFxgbnVtYmVyXFxgLCBcXGBzdHJpbmdcXGAsIG9yIFxcYHN5bWJvbFxcYCBpbiBlbnVtIFxcYCR7dH1cXGAuYCxFbnVtSW52YWxpZEV4cGxpY2l0VHlwZVVua25vd25TdXBwbGllZDooe2VudW1OYW1lOmF9KT0+YFN1cHBsaWVkIGVudW0gdHlwZSBpcyBub3QgdmFsaWQuIFVzZSBvbmUgb2YgXFxgYm9vbGVhblxcYCwgXFxgbnVtYmVyXFxgLCBcXGBzdHJpbmdcXGAsIG9yIFxcYHN5bWJvbFxcYCBpbiBlbnVtIFxcYCR7YX1cXGAuYCxFbnVtSW52YWxpZE1lbWJlckluaXRpYWxpemVyUHJpbWFyeVR5cGU6KHtlbnVtTmFtZTphLG1lbWJlck5hbWU6dCxleHBsaWNpdFR5cGU6ZX0pPT5gRW51bSBcXGAke2F9XFxgIGhhcyB0eXBlIFxcYCR7ZX1cXGAsIHNvIHRoZSBpbml0aWFsaXplciBvZiBcXGAke3R9XFxgIG5lZWRzIHRvIGJlIGEgJHtlfSBsaXRlcmFsLmAsRW51bUludmFsaWRNZW1iZXJJbml0aWFsaXplclN5bWJvbFR5cGU6KHtlbnVtTmFtZTphLG1lbWJlck5hbWU6dH0pPT5gU3ltYm9sIGVudW0gbWVtYmVycyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQuIFVzZSBcXGAke3R9LFxcYCBpbiBlbnVtIFxcYCR7YX1cXGAuYCxFbnVtSW52YWxpZE1lbWJlckluaXRpYWxpemVyVW5rbm93blR5cGU6KHtlbnVtTmFtZTphLG1lbWJlck5hbWU6dH0pPT5gVGhlIGVudW0gbWVtYmVyIGluaXRpYWxpemVyIGZvciBcXGAke3R9XFxgIG5lZWRzIHRvIGJlIGEgbGl0ZXJhbCAoZWl0aGVyIGEgYm9vbGVhbiwgbnVtYmVyLCBvciBzdHJpbmcpIGluIGVudW0gXFxgJHthfVxcYC5gLEVudW1JbnZhbGlkTWVtYmVyTmFtZTooe2VudW1OYW1lOmEsbWVtYmVyTmFtZTp0LHN1Z2dlc3Rpb246ZX0pPT5gRW51bSBtZW1iZXIgbmFtZXMgY2Fubm90IHN0YXJ0IHdpdGggbG93ZXJjYXNlICdhJyB0aHJvdWdoICd6Jy4gSW5zdGVhZCBvZiB1c2luZyBcXGAke3R9XFxgLCBjb25zaWRlciB1c2luZyBcXGAke2V9XFxgLCBpbiBlbnVtIFxcYCR7YX1cXGAuYCxFbnVtTnVtYmVyTWVtYmVyTm90SW5pdGlhbGl6ZWQ6KHtlbnVtTmFtZTphLG1lbWJlck5hbWU6dH0pPT5gTnVtYmVyIGVudW0gbWVtYmVycyBuZWVkIHRvIGJlIGluaXRpYWxpemVkLCBlLmcuIFxcYCR7dH0gPSAxXFxgIGluIGVudW0gXFxgJHthfVxcYC5gLEVudW1TdHJpbmdNZW1iZXJJbmNvbnNpc3RlbnRseUluaXRpYWxpemVkOih7ZW51bU5hbWU6YX0pPT5gU3RyaW5nIGVudW0gbWVtYmVycyBuZWVkIHRvIGNvbnNpc3RlbnRseSBlaXRoZXIgYWxsIHVzZSBpbml0aWFsaXplcnMsIG9yIHVzZSBubyBpbml0aWFsaXplcnMsIGluIGVudW0gXFxgJHthfVxcYC5gLEdldHRlck1heU5vdEhhdmVUaGlzUGFyYW06XCJBIGdldHRlciBjYW5ub3QgaGF2ZSBhIGB0aGlzYCBwYXJhbWV0ZXIuXCIsSW1wb3J0UmVmbGVjdGlvbkhhc0ltcG9ydFR5cGU6XCJBbiBgaW1wb3J0IG1vZHVsZWAgZGVjbGFyYXRpb24gY2FuIG5vdCB1c2UgYHR5cGVgIG9yIGB0eXBlb2ZgIGtleXdvcmQuXCIsSW1wb3J0VHlwZVNob3J0aGFuZE9ubHlJblB1cmVJbXBvcnQ6XCJUaGUgYHR5cGVgIGFuZCBgdHlwZW9mYCBrZXl3b3JkcyBvbiBuYW1lZCBpbXBvcnRzIGNhbiBvbmx5IGJlIHVzZWQgb24gcmVndWxhciBgaW1wb3J0YCBzdGF0ZW1lbnRzLiBJdCBjYW5ub3QgYmUgdXNlZCB3aXRoIGBpbXBvcnQgdHlwZWAgb3IgYGltcG9ydCB0eXBlb2ZgIHN0YXRlbWVudHMuXCIsSW5leGFjdEluc2lkZUV4YWN0OlwiRXhwbGljaXQgaW5leGFjdCBzeW50YXggY2Fubm90IGFwcGVhciBpbnNpZGUgYW4gZXhwbGljaXQgZXhhY3Qgb2JqZWN0IHR5cGUuXCIsSW5leGFjdEluc2lkZU5vbk9iamVjdDpcIkV4cGxpY2l0IGluZXhhY3Qgc3ludGF4IGNhbm5vdCBhcHBlYXIgaW4gY2xhc3Mgb3IgaW50ZXJmYWNlIGRlZmluaXRpb25zLlwiLEluZXhhY3RWYXJpYW5jZTpcIkV4cGxpY2l0IGluZXhhY3Qgc3ludGF4IGNhbm5vdCBoYXZlIHZhcmlhbmNlLlwiLEludmFsaWROb25UeXBlSW1wb3J0SW5EZWNsYXJlTW9kdWxlOlwiSW1wb3J0cyB3aXRoaW4gYSBgZGVjbGFyZSBtb2R1bGVgIGJvZHkgbXVzdCBhbHdheXMgYmUgYGltcG9ydCB0eXBlYCBvciBgaW1wb3J0IHR5cGVvZmAuXCIsTWlzc2luZ1R5cGVQYXJhbURlZmF1bHQ6XCJUeXBlIHBhcmFtZXRlciBkZWNsYXJhdGlvbiBuZWVkcyBhIGRlZmF1bHQsIHNpbmNlIGEgcHJlY2VkaW5nIHR5cGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIGhhcyBhIGRlZmF1bHQuXCIsTmVzdGVkRGVjbGFyZU1vZHVsZTpcImBkZWNsYXJlIG1vZHVsZWAgY2Fubm90IGJlIHVzZWQgaW5zaWRlIGFub3RoZXIgYGRlY2xhcmUgbW9kdWxlYC5cIixOZXN0ZWRGbG93Q29tbWVudDpcIkNhbm5vdCBoYXZlIGEgZmxvdyBjb21tZW50IGluc2lkZSBhbm90aGVyIGZsb3cgY29tbWVudC5cIixQYXR0ZXJuSXNPcHRpb25hbDpPYmplY3QuYXNzaWduKHttZXNzYWdlOlwiQSBiaW5kaW5nIHBhdHRlcm4gcGFyYW1ldGVyIGNhbm5vdCBiZSBvcHRpb25hbCBpbiBhbiBpbXBsZW1lbnRhdGlvbiBzaWduYXR1cmUuXCJ9LHtyZWFzb25Db2RlOlwiT3B0aW9uYWxCaW5kaW5nUGF0dGVyblwifSksU2V0dGVyTWF5Tm90SGF2ZVRoaXNQYXJhbTpcIkEgc2V0dGVyIGNhbm5vdCBoYXZlIGEgYHRoaXNgIHBhcmFtZXRlci5cIixTcHJlYWRWYXJpYW5jZTpcIlNwcmVhZCBwcm9wZXJ0aWVzIGNhbm5vdCBoYXZlIHZhcmlhbmNlLlwiLFRoaXNQYXJhbUFubm90YXRpb25SZXF1aXJlZDpcIkEgdHlwZSBhbm5vdGF0aW9uIGlzIHJlcXVpcmVkIGZvciB0aGUgYHRoaXNgIHBhcmFtZXRlci5cIixUaGlzUGFyYW1CYW5uZWRJbkNvbnN0cnVjdG9yOlwiQ29uc3RydWN0b3JzIGNhbm5vdCBoYXZlIGEgYHRoaXNgIHBhcmFtZXRlcjsgY29uc3RydWN0b3JzIGRvbid0IGJpbmQgYHRoaXNgIGxpa2Ugb3RoZXIgZnVuY3Rpb25zLlwiLFRoaXNQYXJhbU1heU5vdEJlT3B0aW9uYWw6XCJUaGUgYHRoaXNgIHBhcmFtZXRlciBjYW5ub3QgYmUgb3B0aW9uYWwuXCIsVGhpc1BhcmFtTXVzdEJlRmlyc3Q6XCJUaGUgYHRoaXNgIHBhcmFtZXRlciBtdXN0IGJlIHRoZSBmaXJzdCBmdW5jdGlvbiBwYXJhbWV0ZXIuXCIsVGhpc1BhcmFtTm9EZWZhdWx0OlwiVGhlIGB0aGlzYCBwYXJhbWV0ZXIgbWF5IG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZS5cIixUeXBlQmVmb3JlSW5pdGlhbGl6ZXI6XCJUeXBlIGFubm90YXRpb25zIG11c3QgY29tZSBiZWZvcmUgZGVmYXVsdCBhc3NpZ25tZW50cywgZS5nLiBpbnN0ZWFkIG9mIGBhZ2UgPSAyNTogbnVtYmVyYCB1c2UgYGFnZTogbnVtYmVyID0gMjVgLlwiLFR5cGVDYXN0SW5QYXR0ZXJuOlwiVGhlIHR5cGUgY2FzdCBleHByZXNzaW9uIGlzIGV4cGVjdGVkIHRvIGJlIHdyYXBwZWQgd2l0aCBwYXJlbnRoZXNpcy5cIixVbmV4cGVjdGVkRXhwbGljaXRJbmV4YWN0SW5PYmplY3Q6XCJFeHBsaWNpdCBpbmV4YWN0IHN5bnRheCBtdXN0IGFwcGVhciBhdCB0aGUgZW5kIG9mIGFuIGluZXhhY3Qgb2JqZWN0LlwiLFVuZXhwZWN0ZWRSZXNlcnZlZFR5cGU6KHtyZXNlcnZlZFR5cGU6YX0pPT5gVW5leHBlY3RlZCByZXNlcnZlZCB0eXBlICR7YX0uYCxVbmV4cGVjdGVkUmVzZXJ2ZWRVbmRlcnNjb3JlOlwiYF9gIGlzIG9ubHkgYWxsb3dlZCBhcyBhIHR5cGUgYXJndW1lbnQgdG8gY2FsbCBvciBuZXcuXCIsVW5leHBlY3RlZFNwYWNlQmV0d2Vlbk1vZHVsb0NoZWNrczpcIlNwYWNlcyBiZXR3ZWVuIGAlYCBhbmQgYGNoZWNrc2AgYXJlIG5vdCBhbGxvd2VkIGhlcmUuXCIsVW5leHBlY3RlZFNwcmVhZFR5cGU6XCJTcHJlYWQgb3BlcmF0b3IgY2Fubm90IGFwcGVhciBpbiBjbGFzcyBvciBpbnRlcmZhY2UgZGVmaW5pdGlvbnMuXCIsVW5leHBlY3RlZFN1YnRyYWN0aW9uT3BlcmFuZDonVW5leHBlY3RlZCB0b2tlbiwgZXhwZWN0ZWQgXCJudW1iZXJcIiBvciBcImJpZ2ludFwiLicsVW5leHBlY3RlZFRva2VuQWZ0ZXJUeXBlUGFyYW1ldGVyOlwiRXhwZWN0ZWQgYW4gYXJyb3cgZnVuY3Rpb24gYWZ0ZXIgdGhpcyB0eXBlIHBhcmFtZXRlciBkZWNsYXJhdGlvbi5cIixVbmV4cGVjdGVkVHlwZVBhcmFtZXRlckJlZm9yZUFzeW5jQXJyb3dGdW5jdGlvbjpcIlR5cGUgcGFyYW1ldGVycyBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGFzeW5jIGtleXdvcmQsIGUuZy4gaW5zdGVhZCBvZiBgPFQ+IGFzeW5jICgpID0+IHt9YCwgdXNlIGBhc3luYyA8VD4oKSA9PiB7fWAuXCIsVW5zdXBwb3J0ZWREZWNsYXJlRXhwb3J0S2luZDooe3Vuc3VwcG9ydGVkRXhwb3J0S2luZDphLHN1Z2dlc3Rpb246dH0pPT5gXFxgZGVjbGFyZSBleHBvcnQgJHthfVxcYCBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgXFxgJHt0fVxcYCBpbnN0ZWFkLmAsVW5zdXBwb3J0ZWRTdGF0ZW1lbnRJbkRlY2xhcmVNb2R1bGU6XCJPbmx5IGRlY2xhcmVzIGFuZCB0eXBlIGltcG9ydHMgYXJlIGFsbG93ZWQgaW5zaWRlIGRlY2xhcmUgbW9kdWxlLlwiLFVudGVybWluYXRlZEZsb3dDb21tZW50OlwiVW50ZXJtaW5hdGVkIGZsb3ctY29tbWVudC5cIn0pO2Z1bmN0aW9uIFFpKGEpe3JldHVybiBhLnR5cGU9PT1cIkRlY2xhcmVFeHBvcnRBbGxEZWNsYXJhdGlvblwifHxhLnR5cGU9PT1cIkRlY2xhcmVFeHBvcnREZWNsYXJhdGlvblwiJiYoIWEuZGVjbGFyYXRpb258fGEuZGVjbGFyYXRpb24udHlwZSE9PVwiVHlwZUFsaWFzXCImJmEuZGVjbGFyYXRpb24udHlwZSE9PVwiSW50ZXJmYWNlRGVjbGFyYXRpb25cIil9ZnVuY3Rpb24genQoYSl7cmV0dXJuIGEuaW1wb3J0S2luZD09PVwidHlwZVwifHxhLmltcG9ydEtpbmQ9PT1cInR5cGVvZlwifXZhciBaaT17Y29uc3Q6XCJkZWNsYXJlIGV4cG9ydCB2YXJcIixsZXQ6XCJkZWNsYXJlIGV4cG9ydCB2YXJcIix0eXBlOlwiZXhwb3J0IHR5cGVcIixpbnRlcmZhY2U6XCJleHBvcnQgaW50ZXJmYWNlXCJ9O2Z1bmN0aW9uIGVyKGEsdCl7bGV0IGU9W10scz1bXTtmb3IobGV0IGk9MDtpPGEubGVuZ3RoO2krKykodChhW2ldLGksYSk/ZTpzKS5wdXNoKGFbaV0pO3JldHVybltlLHNdfXZhciB0cj0vXFwqP1xccypAKCg/Om5vKT9mbG93KVxcYi8sc3I9YT0+Y2xhc3MgZXh0ZW5kcyBhe2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMuZmxvd1ByYWdtYT12b2lkIDB9Z2V0U2NvcGVIYW5kbGVyKCl7cmV0dXJuIHN0fXNob3VsZFBhcnNlVHlwZXMoKXtyZXR1cm4gdGhpcy5nZXRQbHVnaW5PcHRpb24oXCJmbG93XCIsXCJhbGxcIil8fHRoaXMuZmxvd1ByYWdtYT09PVwiZmxvd1wifXNob3VsZFBhcnNlRW51bXMoKXtyZXR1cm4hIXRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZmxvd1wiLFwiZW51bXNcIil9ZmluaXNoVG9rZW4oZSxzKXtlIT09MTMxJiZlIT09MTMmJmUhPT0yOCYmdGhpcy5mbG93UHJhZ21hPT09dm9pZCAwJiYodGhpcy5mbG93UHJhZ21hPW51bGwpLHN1cGVyLmZpbmlzaFRva2VuKGUscyl9YWRkQ29tbWVudChlKXtpZih0aGlzLmZsb3dQcmFnbWE9PT12b2lkIDApe2xldCBzPXRyLmV4ZWMoZS52YWx1ZSk7aWYocylpZihzWzFdPT09XCJmbG93XCIpdGhpcy5mbG93UHJhZ21hPVwiZmxvd1wiO2Vsc2UgaWYoc1sxXT09PVwibm9mbG93XCIpdGhpcy5mbG93UHJhZ21hPVwibm9mbG93XCI7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIGZsb3cgcHJhZ21hXCIpfXN1cGVyLmFkZENvbW1lbnQoZSl9Zmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKGUpe2xldCBzPXRoaXMuc3RhdGUuaW5UeXBlO3RoaXMuc3RhdGUuaW5UeXBlPSEwLHRoaXMuZXhwZWN0KGV8fDE0KTtsZXQgaT10aGlzLmZsb3dQYXJzZVR5cGUoKTtyZXR1cm4gdGhpcy5zdGF0ZS5pblR5cGU9cyxpfWZsb3dQYXJzZVByZWRpY2F0ZSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCkscz10aGlzLnN0YXRlLnN0YXJ0TG9jO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmV4cGVjdENvbnRleHR1YWwoMTA4KSx0aGlzLnN0YXRlLmxhc3RUb2tTdGFydD5zLmluZGV4KzEmJnRoaXMucmFpc2UoZy5VbmV4cGVjdGVkU3BhY2VCZXR3ZWVuTW9kdWxvQ2hlY2tzLHthdDpzfSksdGhpcy5lYXQoMTApPyhlLnZhbHVlPXN1cGVyLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuZXhwZWN0KDExKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkRlY2xhcmVkUHJlZGljYXRlXCIpKTp0aGlzLmZpbmlzaE5vZGUoZSxcIkluZmVycmVkUHJlZGljYXRlXCIpfWZsb3dQYXJzZVR5cGVBbmRQcmVkaWNhdGVJbml0aWFsaXNlcigpe2xldCBlPXRoaXMuc3RhdGUuaW5UeXBlO3RoaXMuc3RhdGUuaW5UeXBlPSEwLHRoaXMuZXhwZWN0KDE0KTtsZXQgcz1udWxsLGk9bnVsbDtyZXR1cm4gdGhpcy5tYXRjaCg1NCk/KHRoaXMuc3RhdGUuaW5UeXBlPWUsaT10aGlzLmZsb3dQYXJzZVByZWRpY2F0ZSgpKToocz10aGlzLmZsb3dQYXJzZVR5cGUoKSx0aGlzLnN0YXRlLmluVHlwZT1lLHRoaXMubWF0Y2goNTQpJiYoaT10aGlzLmZsb3dQYXJzZVByZWRpY2F0ZSgpKSksW3MsaV19Zmxvd1BhcnNlRGVjbGFyZUNsYXNzKGUpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmZsb3dQYXJzZUludGVyZmFjZWlzaChlLCEwKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkRlY2xhcmVDbGFzc1wiKX1mbG93UGFyc2VEZWNsYXJlRnVuY3Rpb24oZSl7dGhpcy5uZXh0KCk7bGV0IHM9ZS5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpLGk9dGhpcy5zdGFydE5vZGUoKSxyPXRoaXMuc3RhcnROb2RlKCk7dGhpcy5tYXRjaCg0Nyk/aS50eXBlUGFyYW1ldGVycz10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpOmkudHlwZVBhcmFtZXRlcnM9bnVsbCx0aGlzLmV4cGVjdCgxMCk7bGV0IG49dGhpcy5mbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbXMoKTtyZXR1cm4gaS5wYXJhbXM9bi5wYXJhbXMsaS5yZXN0PW4ucmVzdCxpLnRoaXM9bi5fdGhpcyx0aGlzLmV4cGVjdCgxMSksW2kucmV0dXJuVHlwZSxlLnByZWRpY2F0ZV09dGhpcy5mbG93UGFyc2VUeXBlQW5kUHJlZGljYXRlSW5pdGlhbGlzZXIoKSxyLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmluaXNoTm9kZShpLFwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiKSxzLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmluaXNoTm9kZShyLFwiVHlwZUFubm90YXRpb25cIiksdGhpcy5yZXNldEVuZExvY2F0aW9uKHMpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5zY29wZS5kZWNsYXJlTmFtZShlLmlkLm5hbWUsMjA0OCxlLmlkLmxvYy5zdGFydCksdGhpcy5maW5pc2hOb2RlKGUsXCJEZWNsYXJlRnVuY3Rpb25cIil9Zmxvd1BhcnNlRGVjbGFyZShlLHMpe2lmKHRoaXMubWF0Y2goODApKXJldHVybiB0aGlzLmZsb3dQYXJzZURlY2xhcmVDbGFzcyhlKTtpZih0aGlzLm1hdGNoKDY4KSlyZXR1cm4gdGhpcy5mbG93UGFyc2VEZWNsYXJlRnVuY3Rpb24oZSk7aWYodGhpcy5tYXRjaCg3NCkpcmV0dXJuIHRoaXMuZmxvd1BhcnNlRGVjbGFyZVZhcmlhYmxlKGUpO2lmKHRoaXMuZWF0Q29udGV4dHVhbCgxMjUpKXJldHVybiB0aGlzLm1hdGNoKDE2KT90aGlzLmZsb3dQYXJzZURlY2xhcmVNb2R1bGVFeHBvcnRzKGUpOihzJiZ0aGlzLnJhaXNlKGcuTmVzdGVkRGVjbGFyZU1vZHVsZSx7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2N9KSx0aGlzLmZsb3dQYXJzZURlY2xhcmVNb2R1bGUoZSkpO2lmKHRoaXMuaXNDb250ZXh0dWFsKDEyOCkpcmV0dXJuIHRoaXMuZmxvd1BhcnNlRGVjbGFyZVR5cGVBbGlhcyhlKTtpZih0aGlzLmlzQ29udGV4dHVhbCgxMjkpKXJldHVybiB0aGlzLmZsb3dQYXJzZURlY2xhcmVPcGFxdWVUeXBlKGUpO2lmKHRoaXMuaXNDb250ZXh0dWFsKDEyNykpcmV0dXJuIHRoaXMuZmxvd1BhcnNlRGVjbGFyZUludGVyZmFjZShlKTtpZih0aGlzLm1hdGNoKDgyKSlyZXR1cm4gdGhpcy5mbG93UGFyc2VEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb24oZSxzKTt0aGlzLnVuZXhwZWN0ZWQoKX1mbG93UGFyc2VEZWNsYXJlVmFyaWFibGUoZSl7cmV0dXJuIHRoaXMubmV4dCgpLGUuaWQ9dGhpcy5mbG93UGFyc2VUeXBlQW5ub3RhdGFibGVJZGVudGlmaWVyKCEwKSx0aGlzLnNjb3BlLmRlY2xhcmVOYW1lKGUuaWQubmFtZSw1LGUuaWQubG9jLnN0YXJ0KSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiRGVjbGFyZVZhcmlhYmxlXCIpfWZsb3dQYXJzZURlY2xhcmVNb2R1bGUoZSl7dGhpcy5zY29wZS5lbnRlcigwKSx0aGlzLm1hdGNoKDEzMSk/ZS5pZD1zdXBlci5wYXJzZUV4cHJBdG9tKCk6ZS5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpO2xldCBzPWUuYm9keT10aGlzLnN0YXJ0Tm9kZSgpLGk9cy5ib2R5PVtdO2Zvcih0aGlzLmV4cGVjdCg1KTshdGhpcy5tYXRjaCg4KTspe2xldCBvPXRoaXMuc3RhcnROb2RlKCk7dGhpcy5tYXRjaCg4Myk/KHRoaXMubmV4dCgpLCF0aGlzLmlzQ29udGV4dHVhbCgxMjgpJiYhdGhpcy5tYXRjaCg4NykmJnRoaXMucmFpc2UoZy5JbnZhbGlkTm9uVHlwZUltcG9ydEluRGVjbGFyZU1vZHVsZSx7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2N9KSxzdXBlci5wYXJzZUltcG9ydChvKSk6KHRoaXMuZXhwZWN0Q29udGV4dHVhbCgxMjMsZy5VbnN1cHBvcnRlZFN0YXRlbWVudEluRGVjbGFyZU1vZHVsZSksbz10aGlzLmZsb3dQYXJzZURlY2xhcmUobywhMCkpLGkucHVzaChvKX10aGlzLnNjb3BlLmV4aXQoKSx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUocyxcIkJsb2NrU3RhdGVtZW50XCIpO2xldCByPW51bGwsbj0hMTtyZXR1cm4gaS5mb3JFYWNoKG89PntRaShvKT8ocj09PVwiQ29tbW9uSlNcIiYmdGhpcy5yYWlzZShnLkFtYmlndW91c0RlY2xhcmVNb2R1bGVLaW5kLHthdDpvfSkscj1cIkVTXCIpOm8udHlwZT09PVwiRGVjbGFyZU1vZHVsZUV4cG9ydHNcIiYmKG4mJnRoaXMucmFpc2UoZy5EdXBsaWNhdGVEZWNsYXJlTW9kdWxlRXhwb3J0cyx7YXQ6b30pLHI9PT1cIkVTXCImJnRoaXMucmFpc2UoZy5BbWJpZ3VvdXNEZWNsYXJlTW9kdWxlS2luZCx7YXQ6b30pLHI9XCJDb21tb25KU1wiLG49ITApfSksZS5raW5kPXJ8fFwiQ29tbW9uSlNcIix0aGlzLmZpbmlzaE5vZGUoZSxcIkRlY2xhcmVNb2R1bGVcIil9Zmxvd1BhcnNlRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uKGUscyl7aWYodGhpcy5leHBlY3QoODIpLHRoaXMuZWF0KDY1KSlyZXR1cm4gdGhpcy5tYXRjaCg2OCl8fHRoaXMubWF0Y2goODApP2UuZGVjbGFyYXRpb249dGhpcy5mbG93UGFyc2VEZWNsYXJlKHRoaXMuc3RhcnROb2RlKCkpOihlLmRlY2xhcmF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZSgpLHRoaXMuc2VtaWNvbG9uKCkpLGUuZGVmYXVsdD0hMCx0aGlzLmZpbmlzaE5vZGUoZSxcIkRlY2xhcmVFeHBvcnREZWNsYXJhdGlvblwiKTtpZih0aGlzLm1hdGNoKDc1KXx8dGhpcy5pc0xldCgpfHwodGhpcy5pc0NvbnRleHR1YWwoMTI4KXx8dGhpcy5pc0NvbnRleHR1YWwoMTI3KSkmJiFzKXtsZXQgaT10aGlzLnN0YXRlLnZhbHVlO3Rocm93IHRoaXMucmFpc2UoZy5VbnN1cHBvcnRlZERlY2xhcmVFeHBvcnRLaW5kLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jLHVuc3VwcG9ydGVkRXhwb3J0S2luZDppLHN1Z2dlc3Rpb246WmlbaV19KX1pZih0aGlzLm1hdGNoKDc0KXx8dGhpcy5tYXRjaCg2OCl8fHRoaXMubWF0Y2goODApfHx0aGlzLmlzQ29udGV4dHVhbCgxMjkpKXJldHVybiBlLmRlY2xhcmF0aW9uPXRoaXMuZmxvd1BhcnNlRGVjbGFyZSh0aGlzLnN0YXJ0Tm9kZSgpKSxlLmRlZmF1bHQ9ITEsdGhpcy5maW5pc2hOb2RlKGUsXCJEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb25cIik7aWYodGhpcy5tYXRjaCg1NSl8fHRoaXMubWF0Y2goNSl8fHRoaXMuaXNDb250ZXh0dWFsKDEyNyl8fHRoaXMuaXNDb250ZXh0dWFsKDEyOCl8fHRoaXMuaXNDb250ZXh0dWFsKDEyOSkpcmV0dXJuIGU9dGhpcy5wYXJzZUV4cG9ydChlLG51bGwpLGUudHlwZT09PVwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiJiYoZS50eXBlPVwiRXhwb3J0RGVjbGFyYXRpb25cIixlLmRlZmF1bHQ9ITEsZGVsZXRlIGUuZXhwb3J0S2luZCksZS50eXBlPVwiRGVjbGFyZVwiK2UudHlwZSxlO3RoaXMudW5leHBlY3RlZCgpfWZsb3dQYXJzZURlY2xhcmVNb2R1bGVFeHBvcnRzKGUpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmV4cGVjdENvbnRleHR1YWwoMTA5KSxlLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiRGVjbGFyZU1vZHVsZUV4cG9ydHNcIil9Zmxvd1BhcnNlRGVjbGFyZVR5cGVBbGlhcyhlKXt0aGlzLm5leHQoKTtsZXQgcz10aGlzLmZsb3dQYXJzZVR5cGVBbGlhcyhlKTtyZXR1cm4gcy50eXBlPVwiRGVjbGFyZVR5cGVBbGlhc1wiLHN9Zmxvd1BhcnNlRGVjbGFyZU9wYXF1ZVR5cGUoZSl7dGhpcy5uZXh0KCk7bGV0IHM9dGhpcy5mbG93UGFyc2VPcGFxdWVUeXBlKGUsITApO3JldHVybiBzLnR5cGU9XCJEZWNsYXJlT3BhcXVlVHlwZVwiLHN9Zmxvd1BhcnNlRGVjbGFyZUludGVyZmFjZShlKXtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5mbG93UGFyc2VJbnRlcmZhY2Vpc2goZSwhMSksdGhpcy5maW5pc2hOb2RlKGUsXCJEZWNsYXJlSW50ZXJmYWNlXCIpfWZsb3dQYXJzZUludGVyZmFjZWlzaChlLHMpe2lmKGUuaWQ9dGhpcy5mbG93UGFyc2VSZXN0cmljdGVkSWRlbnRpZmllcighcywhMCksdGhpcy5zY29wZS5kZWNsYXJlTmFtZShlLmlkLm5hbWUscz8xNzo4MjAxLGUuaWQubG9jLnN0YXJ0KSx0aGlzLm1hdGNoKDQ3KT9lLnR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk6ZS50eXBlUGFyYW1ldGVycz1udWxsLGUuZXh0ZW5kcz1bXSx0aGlzLmVhdCg4MSkpZG8gZS5leHRlbmRzLnB1c2godGhpcy5mbG93UGFyc2VJbnRlcmZhY2VFeHRlbmRzKCkpO3doaWxlKCFzJiZ0aGlzLmVhdCgxMikpO2lmKHMpe2lmKGUuaW1wbGVtZW50cz1bXSxlLm1peGlucz1bXSx0aGlzLmVhdENvbnRleHR1YWwoMTE1KSlkbyBlLm1peGlucy5wdXNoKHRoaXMuZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpKTt3aGlsZSh0aGlzLmVhdCgxMikpO2lmKHRoaXMuZWF0Q29udGV4dHVhbCgxMTEpKWRvIGUuaW1wbGVtZW50cy5wdXNoKHRoaXMuZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpKTt3aGlsZSh0aGlzLmVhdCgxMikpfWUuYm9keT10aGlzLmZsb3dQYXJzZU9iamVjdFR5cGUoe2FsbG93U3RhdGljOnMsYWxsb3dFeGFjdDohMSxhbGxvd1NwcmVhZDohMSxhbGxvd1Byb3RvOnMsYWxsb3dJbmV4YWN0OiExfSl9Zmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUuaWQ9dGhpcy5mbG93UGFyc2VRdWFsaWZpZWRUeXBlSWRlbnRpZmllcigpLHRoaXMubWF0Y2goNDcpP2UudHlwZVBhcmFtZXRlcnM9dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpOmUudHlwZVBhcmFtZXRlcnM9bnVsbCx0aGlzLmZpbmlzaE5vZGUoZSxcIkludGVyZmFjZUV4dGVuZHNcIil9Zmxvd1BhcnNlSW50ZXJmYWNlKGUpe3JldHVybiB0aGlzLmZsb3dQYXJzZUludGVyZmFjZWlzaChlLCExKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkludGVyZmFjZURlY2xhcmF0aW9uXCIpfWNoZWNrTm90VW5kZXJzY29yZShlKXtlPT09XCJfXCImJnRoaXMucmFpc2UoZy5VbmV4cGVjdGVkUmVzZXJ2ZWRVbmRlcnNjb3JlLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSl9Y2hlY2tSZXNlcnZlZFR5cGUoZSxzLGkpe1lpLmhhcyhlKSYmdGhpcy5yYWlzZShpP2cuQXNzaWduUmVzZXJ2ZWRUeXBlOmcuVW5leHBlY3RlZFJlc2VydmVkVHlwZSx7YXQ6cyxyZXNlcnZlZFR5cGU6ZX0pfWZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKGUscyl7cmV0dXJuIHRoaXMuY2hlY2tSZXNlcnZlZFR5cGUodGhpcy5zdGF0ZS52YWx1ZSx0aGlzLnN0YXRlLnN0YXJ0TG9jLHMpLHRoaXMucGFyc2VJZGVudGlmaWVyKGUpfWZsb3dQYXJzZVR5cGVBbGlhcyhlKXtyZXR1cm4gZS5pZD10aGlzLmZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCExLCEwKSx0aGlzLnNjb3BlLmRlY2xhcmVOYW1lKGUuaWQubmFtZSw4MjAxLGUuaWQubG9jLnN0YXJ0KSx0aGlzLm1hdGNoKDQ3KT9lLnR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCk6ZS50eXBlUGFyYW1ldGVycz1udWxsLGUucmlnaHQ9dGhpcy5mbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoMjkpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJUeXBlQWxpYXNcIil9Zmxvd1BhcnNlT3BhcXVlVHlwZShlLHMpe3JldHVybiB0aGlzLmV4cGVjdENvbnRleHR1YWwoMTI4KSxlLmlkPXRoaXMuZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoITAsITApLHRoaXMuc2NvcGUuZGVjbGFyZU5hbWUoZS5pZC5uYW1lLDgyMDEsZS5pZC5sb2Muc3RhcnQpLHRoaXMubWF0Y2goNDcpP2UudHlwZVBhcmFtZXRlcnM9dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKTplLnR5cGVQYXJhbWV0ZXJzPW51bGwsZS5zdXBlcnR5cGU9bnVsbCx0aGlzLm1hdGNoKDE0KSYmKGUuc3VwZXJ0eXBlPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKDE0KSksZS5pbXBsdHlwZT1udWxsLHN8fChlLmltcGx0eXBlPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKDI5KSksdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIk9wYXF1ZVR5cGVcIil9Zmxvd1BhcnNlVHlwZVBhcmFtZXRlcihlPSExKXtsZXQgcz10aGlzLnN0YXRlLnN0YXJ0TG9jLGk9dGhpcy5zdGFydE5vZGUoKSxyPXRoaXMuZmxvd1BhcnNlVmFyaWFuY2UoKSxuPXRoaXMuZmxvd1BhcnNlVHlwZUFubm90YXRhYmxlSWRlbnRpZmllcigpO3JldHVybiBpLm5hbWU9bi5uYW1lLGkudmFyaWFuY2U9cixpLmJvdW5kPW4udHlwZUFubm90YXRpb24sdGhpcy5tYXRjaCgyOSk/KHRoaXMuZWF0KDI5KSxpLmRlZmF1bHQ9dGhpcy5mbG93UGFyc2VUeXBlKCkpOmUmJnRoaXMucmFpc2UoZy5NaXNzaW5nVHlwZVBhcmFtRGVmYXVsdCx7YXQ6c30pLHRoaXMuZmluaXNoTm9kZShpLFwiVHlwZVBhcmFtZXRlclwiKX1mbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKXtsZXQgZT10aGlzLnN0YXRlLmluVHlwZSxzPXRoaXMuc3RhcnROb2RlKCk7cy5wYXJhbXM9W10sdGhpcy5zdGF0ZS5pblR5cGU9ITAsdGhpcy5tYXRjaCg0Nyl8fHRoaXMubWF0Y2goMTQwKT90aGlzLm5leHQoKTp0aGlzLnVuZXhwZWN0ZWQoKTtsZXQgaT0hMTtkb3tsZXQgcj10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXIoaSk7cy5wYXJhbXMucHVzaChyKSxyLmRlZmF1bHQmJihpPSEwKSx0aGlzLm1hdGNoKDQ4KXx8dGhpcy5leHBlY3QoMTIpfXdoaWxlKCF0aGlzLm1hdGNoKDQ4KSk7cmV0dXJuIHRoaXMuZXhwZWN0KDQ4KSx0aGlzLnN0YXRlLmluVHlwZT1lLHRoaXMuZmluaXNoTm9kZShzLFwiVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uXCIpfWZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKSxzPXRoaXMuc3RhdGUuaW5UeXBlO2UucGFyYW1zPVtdLHRoaXMuc3RhdGUuaW5UeXBlPSEwLHRoaXMuZXhwZWN0KDQ3KTtsZXQgaT10aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZTtmb3IodGhpcy5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU9ITE7IXRoaXMubWF0Y2goNDgpOyllLnBhcmFtcy5wdXNoKHRoaXMuZmxvd1BhcnNlVHlwZSgpKSx0aGlzLm1hdGNoKDQ4KXx8dGhpcy5leHBlY3QoMTIpO3JldHVybiB0aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZT1pLHRoaXMuZXhwZWN0KDQ4KSx0aGlzLnN0YXRlLmluVHlwZT1zLHRoaXMuZmluaXNoTm9kZShlLFwiVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25cIil9Zmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25DYWxsT3JOZXcoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpLHM9dGhpcy5zdGF0ZS5pblR5cGU7Zm9yKGUucGFyYW1zPVtdLHRoaXMuc3RhdGUuaW5UeXBlPSEwLHRoaXMuZXhwZWN0KDQ3KTshdGhpcy5tYXRjaCg0OCk7KWUucGFyYW1zLnB1c2godGhpcy5mbG93UGFyc2VUeXBlT3JJbXBsaWNpdEluc3RhbnRpYXRpb24oKSksdGhpcy5tYXRjaCg0OCl8fHRoaXMuZXhwZWN0KDEyKTtyZXR1cm4gdGhpcy5leHBlY3QoNDgpLHRoaXMuc3RhdGUuaW5UeXBlPXMsdGhpcy5maW5pc2hOb2RlKGUsXCJUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvblwiKX1mbG93UGFyc2VJbnRlcmZhY2VUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtpZih0aGlzLmV4cGVjdENvbnRleHR1YWwoMTI3KSxlLmV4dGVuZHM9W10sdGhpcy5lYXQoODEpKWRvIGUuZXh0ZW5kcy5wdXNoKHRoaXMuZmxvd1BhcnNlSW50ZXJmYWNlRXh0ZW5kcygpKTt3aGlsZSh0aGlzLmVhdCgxMikpO3JldHVybiBlLmJvZHk9dGhpcy5mbG93UGFyc2VPYmplY3RUeXBlKHthbGxvd1N0YXRpYzohMSxhbGxvd0V4YWN0OiExLGFsbG93U3ByZWFkOiExLGFsbG93UHJvdG86ITEsYWxsb3dJbmV4YWN0OiExfSksdGhpcy5maW5pc2hOb2RlKGUsXCJJbnRlcmZhY2VUeXBlQW5ub3RhdGlvblwiKX1mbG93UGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpe3JldHVybiB0aGlzLm1hdGNoKDEzMil8fHRoaXMubWF0Y2goMTMxKT9zdXBlci5wYXJzZUV4cHJBdG9tKCk6dGhpcy5wYXJzZUlkZW50aWZpZXIoITApfWZsb3dQYXJzZU9iamVjdFR5cGVJbmRleGVyKGUscyxpKXtyZXR1cm4gZS5zdGF0aWM9cyx0aGlzLmxvb2thaGVhZCgpLnR5cGU9PT0xND8oZS5pZD10aGlzLmZsb3dQYXJzZU9iamVjdFByb3BlcnR5S2V5KCksZS5rZXk9dGhpcy5mbG93UGFyc2VUeXBlSW5pdGlhbGlzZXIoKSk6KGUuaWQ9bnVsbCxlLmtleT10aGlzLmZsb3dQYXJzZVR5cGUoKSksdGhpcy5leHBlY3QoMyksZS52YWx1ZT10aGlzLmZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpLGUudmFyaWFuY2U9aSx0aGlzLmZpbmlzaE5vZGUoZSxcIk9iamVjdFR5cGVJbmRleGVyXCIpfWZsb3dQYXJzZU9iamVjdFR5cGVJbnRlcm5hbFNsb3QoZSxzKXtyZXR1cm4gZS5zdGF0aWM9cyxlLmlkPXRoaXMuZmxvd1BhcnNlT2JqZWN0UHJvcGVydHlLZXkoKSx0aGlzLmV4cGVjdCgzKSx0aGlzLmV4cGVjdCgzKSx0aGlzLm1hdGNoKDQ3KXx8dGhpcy5tYXRjaCgxMCk/KGUubWV0aG9kPSEwLGUub3B0aW9uYWw9ITEsZS52YWx1ZT10aGlzLmZsb3dQYXJzZU9iamVjdFR5cGVNZXRob2Rpc2godGhpcy5zdGFydE5vZGVBdChlLmxvYy5zdGFydCkpKTooZS5tZXRob2Q9ITEsdGhpcy5lYXQoMTcpJiYoZS5vcHRpb25hbD0hMCksZS52YWx1ZT10aGlzLmZsb3dQYXJzZVR5cGVJbml0aWFsaXNlcigpKSx0aGlzLmZpbmlzaE5vZGUoZSxcIk9iamVjdFR5cGVJbnRlcm5hbFNsb3RcIil9Zmxvd1BhcnNlT2JqZWN0VHlwZU1ldGhvZGlzaChlKXtmb3IoZS5wYXJhbXM9W10sZS5yZXN0PW51bGwsZS50eXBlUGFyYW1ldGVycz1udWxsLGUudGhpcz1udWxsLHRoaXMubWF0Y2goNDcpJiYoZS50eXBlUGFyYW1ldGVycz10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpKSx0aGlzLmV4cGVjdCgxMCksdGhpcy5tYXRjaCg3OCkmJihlLnRoaXM9dGhpcy5mbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbSghMCksZS50aGlzLm5hbWU9bnVsbCx0aGlzLm1hdGNoKDExKXx8dGhpcy5leHBlY3QoMTIpKTshdGhpcy5tYXRjaCgxMSkmJiF0aGlzLm1hdGNoKDIxKTspZS5wYXJhbXMucHVzaCh0aGlzLmZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtKCExKSksdGhpcy5tYXRjaCgxMSl8fHRoaXMuZXhwZWN0KDEyKTtyZXR1cm4gdGhpcy5lYXQoMjEpJiYoZS5yZXN0PXRoaXMuZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oITEpKSx0aGlzLmV4cGVjdCgxMSksZS5yZXR1cm5UeXBlPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCksdGhpcy5maW5pc2hOb2RlKGUsXCJGdW5jdGlvblR5cGVBbm5vdGF0aW9uXCIpfWZsb3dQYXJzZU9iamVjdFR5cGVDYWxsUHJvcGVydHkoZSxzKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBlLnN0YXRpYz1zLGUudmFsdWU9dGhpcy5mbG93UGFyc2VPYmplY3RUeXBlTWV0aG9kaXNoKGkpLHRoaXMuZmluaXNoTm9kZShlLFwiT2JqZWN0VHlwZUNhbGxQcm9wZXJ0eVwiKX1mbG93UGFyc2VPYmplY3RUeXBlKHthbGxvd1N0YXRpYzplLGFsbG93RXhhY3Q6cyxhbGxvd1NwcmVhZDppLGFsbG93UHJvdG86cixhbGxvd0luZXhhY3Q6bn0pe2xldCBvPXRoaXMuc3RhdGUuaW5UeXBlO3RoaXMuc3RhdGUuaW5UeXBlPSEwO2xldCBoPXRoaXMuc3RhcnROb2RlKCk7aC5jYWxsUHJvcGVydGllcz1bXSxoLnByb3BlcnRpZXM9W10saC5pbmRleGVycz1bXSxoLmludGVybmFsU2xvdHM9W107bGV0IGwsYyx1PSExO2ZvcihzJiZ0aGlzLm1hdGNoKDYpPyh0aGlzLmV4cGVjdCg2KSxsPTksYz0hMCk6KHRoaXMuZXhwZWN0KDUpLGw9OCxjPSExKSxoLmV4YWN0PWM7IXRoaXMubWF0Y2gobCk7KXtsZXQgZD0hMSx4PW51bGwsST1udWxsLEM9dGhpcy5zdGFydE5vZGUoKTtpZihyJiZ0aGlzLmlzQ29udGV4dHVhbCgxMTYpKXtsZXQgTj10aGlzLmxvb2thaGVhZCgpO04udHlwZSE9PTE0JiZOLnR5cGUhPT0xNyYmKHRoaXMubmV4dCgpLHg9dGhpcy5zdGF0ZS5zdGFydExvYyxlPSExKX1pZihlJiZ0aGlzLmlzQ29udGV4dHVhbCgxMDQpKXtsZXQgTj10aGlzLmxvb2thaGVhZCgpO04udHlwZSE9PTE0JiZOLnR5cGUhPT0xNyYmKHRoaXMubmV4dCgpLGQ9ITApfWxldCBFPXRoaXMuZmxvd1BhcnNlVmFyaWFuY2UoKTtpZih0aGlzLmVhdCgwKSl4IT1udWxsJiZ0aGlzLnVuZXhwZWN0ZWQoeCksdGhpcy5lYXQoMCk/KEUmJnRoaXMudW5leHBlY3RlZChFLmxvYy5zdGFydCksaC5pbnRlcm5hbFNsb3RzLnB1c2godGhpcy5mbG93UGFyc2VPYmplY3RUeXBlSW50ZXJuYWxTbG90KEMsZCkpKTpoLmluZGV4ZXJzLnB1c2godGhpcy5mbG93UGFyc2VPYmplY3RUeXBlSW5kZXhlcihDLGQsRSkpO2Vsc2UgaWYodGhpcy5tYXRjaCgxMCl8fHRoaXMubWF0Y2goNDcpKXghPW51bGwmJnRoaXMudW5leHBlY3RlZCh4KSxFJiZ0aGlzLnVuZXhwZWN0ZWQoRS5sb2Muc3RhcnQpLGguY2FsbFByb3BlcnRpZXMucHVzaCh0aGlzLmZsb3dQYXJzZU9iamVjdFR5cGVDYWxsUHJvcGVydHkoQyxkKSk7ZWxzZXtsZXQgTj1cImluaXRcIjtpZih0aGlzLmlzQ29udGV4dHVhbCg5OCl8fHRoaXMuaXNDb250ZXh0dWFsKDEwMykpe2xldCBjZT10aGlzLmxvb2thaGVhZCgpO1l0KGNlLnR5cGUpJiYoTj10aGlzLnN0YXRlLnZhbHVlLHRoaXMubmV4dCgpKX1sZXQgQ2U9dGhpcy5mbG93UGFyc2VPYmplY3RUeXBlUHJvcGVydHkoQyxkLHgsRSxOLGksbj8/IWMpO0NlPT09bnVsbD8odT0hMCxJPXRoaXMuc3RhdGUubGFzdFRva1N0YXJ0TG9jKTpoLnByb3BlcnRpZXMucHVzaChDZSl9dGhpcy5mbG93T2JqZWN0VHlwZVNlbWljb2xvbigpLEkmJiF0aGlzLm1hdGNoKDgpJiYhdGhpcy5tYXRjaCg5KSYmdGhpcy5yYWlzZShnLlVuZXhwZWN0ZWRFeHBsaWNpdEluZXhhY3RJbk9iamVjdCx7YXQ6SX0pfXRoaXMuZXhwZWN0KGwpLGkmJihoLmluZXhhY3Q9dSk7bGV0IGY9dGhpcy5maW5pc2hOb2RlKGgsXCJPYmplY3RUeXBlQW5ub3RhdGlvblwiKTtyZXR1cm4gdGhpcy5zdGF0ZS5pblR5cGU9byxmfWZsb3dQYXJzZU9iamVjdFR5cGVQcm9wZXJ0eShlLHMsaSxyLG4sbyxoKXtpZih0aGlzLmVhdCgyMSkpcmV0dXJuIHRoaXMubWF0Y2goMTIpfHx0aGlzLm1hdGNoKDEzKXx8dGhpcy5tYXRjaCg4KXx8dGhpcy5tYXRjaCg5KT8obz9ofHx0aGlzLnJhaXNlKGcuSW5leGFjdEluc2lkZUV4YWN0LHthdDp0aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvY30pOnRoaXMucmFpc2UoZy5JbmV4YWN0SW5zaWRlTm9uT2JqZWN0LHthdDp0aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvY30pLHImJnRoaXMucmFpc2UoZy5JbmV4YWN0VmFyaWFuY2Use2F0OnJ9KSxudWxsKToob3x8dGhpcy5yYWlzZShnLlVuZXhwZWN0ZWRTcHJlYWRUeXBlLHthdDp0aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvY30pLGkhPW51bGwmJnRoaXMudW5leHBlY3RlZChpKSxyJiZ0aGlzLnJhaXNlKGcuU3ByZWFkVmFyaWFuY2Use2F0OnJ9KSxlLmFyZ3VtZW50PXRoaXMuZmxvd1BhcnNlVHlwZSgpLHRoaXMuZmluaXNoTm9kZShlLFwiT2JqZWN0VHlwZVNwcmVhZFByb3BlcnR5XCIpKTt7ZS5rZXk9dGhpcy5mbG93UGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpLGUuc3RhdGljPXMsZS5wcm90bz1pIT1udWxsLGUua2luZD1uO2xldCBsPSExO3JldHVybiB0aGlzLm1hdGNoKDQ3KXx8dGhpcy5tYXRjaCgxMCk/KGUubWV0aG9kPSEwLGkhPW51bGwmJnRoaXMudW5leHBlY3RlZChpKSxyJiZ0aGlzLnVuZXhwZWN0ZWQoci5sb2Muc3RhcnQpLGUudmFsdWU9dGhpcy5mbG93UGFyc2VPYmplY3RUeXBlTWV0aG9kaXNoKHRoaXMuc3RhcnROb2RlQXQoZS5sb2Muc3RhcnQpKSwobj09PVwiZ2V0XCJ8fG49PT1cInNldFwiKSYmdGhpcy5mbG93Q2hlY2tHZXR0ZXJTZXR0ZXJQYXJhbXMoZSksIW8mJmUua2V5Lm5hbWU9PT1cImNvbnN0cnVjdG9yXCImJmUudmFsdWUudGhpcyYmdGhpcy5yYWlzZShnLlRoaXNQYXJhbUJhbm5lZEluQ29uc3RydWN0b3Ise2F0OmUudmFsdWUudGhpc30pKToobiE9PVwiaW5pdFwiJiZ0aGlzLnVuZXhwZWN0ZWQoKSxlLm1ldGhvZD0hMSx0aGlzLmVhdCgxNykmJihsPSEwKSxlLnZhbHVlPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCksZS52YXJpYW5jZT1yKSxlLm9wdGlvbmFsPWwsdGhpcy5maW5pc2hOb2RlKGUsXCJPYmplY3RUeXBlUHJvcGVydHlcIil9fWZsb3dDaGVja0dldHRlclNldHRlclBhcmFtcyhlKXtsZXQgcz1lLmtpbmQ9PT1cImdldFwiPzA6MSxpPWUudmFsdWUucGFyYW1zLmxlbmd0aCsoZS52YWx1ZS5yZXN0PzE6MCk7ZS52YWx1ZS50aGlzJiZ0aGlzLnJhaXNlKGUua2luZD09PVwiZ2V0XCI/Zy5HZXR0ZXJNYXlOb3RIYXZlVGhpc1BhcmFtOmcuU2V0dGVyTWF5Tm90SGF2ZVRoaXNQYXJhbSx7YXQ6ZS52YWx1ZS50aGlzfSksaSE9PXMmJnRoaXMucmFpc2UoZS5raW5kPT09XCJnZXRcIj9wLkJhZEdldHRlckFyaXR5OnAuQmFkU2V0dGVyQXJpdHkse2F0OmV9KSxlLmtpbmQ9PT1cInNldFwiJiZlLnZhbHVlLnJlc3QmJnRoaXMucmFpc2UocC5CYWRTZXR0ZXJSZXN0UGFyYW1ldGVyLHthdDplfSl9Zmxvd09iamVjdFR5cGVTZW1pY29sb24oKXshdGhpcy5lYXQoMTMpJiYhdGhpcy5lYXQoMTIpJiYhdGhpcy5tYXRjaCg4KSYmIXRoaXMubWF0Y2goOSkmJnRoaXMudW5leHBlY3RlZCgpfWZsb3dQYXJzZVF1YWxpZmllZFR5cGVJZGVudGlmaWVyKGUscyl7dmFyIGk7KGk9ZSkhPW51bGx8fChlPXRoaXMuc3RhdGUuc3RhcnRMb2MpO2xldCByPXN8fHRoaXMuZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoITApO2Zvcig7dGhpcy5lYXQoMTYpOyl7bGV0IG49dGhpcy5zdGFydE5vZGVBdChlKTtuLnF1YWxpZmljYXRpb249cixuLmlkPXRoaXMuZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoITApLHI9dGhpcy5maW5pc2hOb2RlKG4sXCJRdWFsaWZpZWRUeXBlSWRlbnRpZmllclwiKX1yZXR1cm4gcn1mbG93UGFyc2VHZW5lcmljVHlwZShlLHMpe2xldCBpPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIGkudHlwZVBhcmFtZXRlcnM9bnVsbCxpLmlkPXRoaXMuZmxvd1BhcnNlUXVhbGlmaWVkVHlwZUlkZW50aWZpZXIoZSxzKSx0aGlzLm1hdGNoKDQ3KSYmKGkudHlwZVBhcmFtZXRlcnM9dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbigpKSx0aGlzLmZpbmlzaE5vZGUoaSxcIkdlbmVyaWNUeXBlQW5ub3RhdGlvblwiKX1mbG93UGFyc2VUeXBlb2ZUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5leHBlY3QoODcpLGUuYXJndW1lbnQ9dGhpcy5mbG93UGFyc2VQcmltYXJ5VHlwZSgpLHRoaXMuZmluaXNoTm9kZShlLFwiVHlwZW9mVHlwZUFubm90YXRpb25cIil9Zmxvd1BhcnNlVHVwbGVUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtmb3IoZS50eXBlcz1bXSx0aGlzLmV4cGVjdCgwKTt0aGlzLnN0YXRlLnBvczx0aGlzLmxlbmd0aCYmIXRoaXMubWF0Y2goMykmJihlLnR5cGVzLnB1c2godGhpcy5mbG93UGFyc2VUeXBlKCkpLCF0aGlzLm1hdGNoKDMpKTspdGhpcy5leHBlY3QoMTIpO3JldHVybiB0aGlzLmV4cGVjdCgzKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlR1cGxlVHlwZUFubm90YXRpb25cIil9Zmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW0oZSl7bGV0IHM9bnVsbCxpPSExLHI9bnVsbCxuPXRoaXMuc3RhcnROb2RlKCksbz10aGlzLmxvb2thaGVhZCgpLGg9dGhpcy5zdGF0ZS50eXBlPT09Nzg7cmV0dXJuIG8udHlwZT09PTE0fHxvLnR5cGU9PT0xNz8oaCYmIWUmJnRoaXMucmFpc2UoZy5UaGlzUGFyYW1NdXN0QmVGaXJzdCx7YXQ6bn0pLHM9dGhpcy5wYXJzZUlkZW50aWZpZXIoaCksdGhpcy5lYXQoMTcpJiYoaT0hMCxoJiZ0aGlzLnJhaXNlKGcuVGhpc1BhcmFtTWF5Tm90QmVPcHRpb25hbCx7YXQ6bn0pKSxyPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCkpOnI9dGhpcy5mbG93UGFyc2VUeXBlKCksbi5uYW1lPXMsbi5vcHRpb25hbD1pLG4udHlwZUFubm90YXRpb249cix0aGlzLmZpbmlzaE5vZGUobixcIkZ1bmN0aW9uVHlwZVBhcmFtXCIpfXJlaW50ZXJwcmV0VHlwZUFzRnVuY3Rpb25UeXBlUGFyYW0oZSl7bGV0IHM9dGhpcy5zdGFydE5vZGVBdChlLmxvYy5zdGFydCk7cmV0dXJuIHMubmFtZT1udWxsLHMub3B0aW9uYWw9ITEscy50eXBlQW5ub3RhdGlvbj1lLHRoaXMuZmluaXNoTm9kZShzLFwiRnVuY3Rpb25UeXBlUGFyYW1cIil9Zmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW1zKGU9W10pe2xldCBzPW51bGwsaT1udWxsO2Zvcih0aGlzLm1hdGNoKDc4KSYmKGk9dGhpcy5mbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbSghMCksaS5uYW1lPW51bGwsdGhpcy5tYXRjaCgxMSl8fHRoaXMuZXhwZWN0KDEyKSk7IXRoaXMubWF0Y2goMTEpJiYhdGhpcy5tYXRjaCgyMSk7KWUucHVzaCh0aGlzLmZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtKCExKSksdGhpcy5tYXRjaCgxMSl8fHRoaXMuZXhwZWN0KDEyKTtyZXR1cm4gdGhpcy5lYXQoMjEpJiYocz10aGlzLmZsb3dQYXJzZUZ1bmN0aW9uVHlwZVBhcmFtKCExKSkse3BhcmFtczplLHJlc3Q6cyxfdGhpczppfX1mbG93SWRlbnRUb1R5cGVBbm5vdGF0aW9uKGUscyxpKXtzd2l0Y2goaS5uYW1lKXtjYXNlXCJhbnlcIjpyZXR1cm4gdGhpcy5maW5pc2hOb2RlKHMsXCJBbnlUeXBlQW5ub3RhdGlvblwiKTtjYXNlXCJib29sXCI6Y2FzZVwiYm9vbGVhblwiOnJldHVybiB0aGlzLmZpbmlzaE5vZGUocyxcIkJvb2xlYW5UeXBlQW5ub3RhdGlvblwiKTtjYXNlXCJtaXhlZFwiOnJldHVybiB0aGlzLmZpbmlzaE5vZGUocyxcIk1peGVkVHlwZUFubm90YXRpb25cIik7Y2FzZVwiZW1wdHlcIjpyZXR1cm4gdGhpcy5maW5pc2hOb2RlKHMsXCJFbXB0eVR5cGVBbm5vdGF0aW9uXCIpO2Nhc2VcIm51bWJlclwiOnJldHVybiB0aGlzLmZpbmlzaE5vZGUocyxcIk51bWJlclR5cGVBbm5vdGF0aW9uXCIpO2Nhc2VcInN0cmluZ1wiOnJldHVybiB0aGlzLmZpbmlzaE5vZGUocyxcIlN0cmluZ1R5cGVBbm5vdGF0aW9uXCIpO2Nhc2VcInN5bWJvbFwiOnJldHVybiB0aGlzLmZpbmlzaE5vZGUocyxcIlN5bWJvbFR5cGVBbm5vdGF0aW9uXCIpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2hlY2tOb3RVbmRlcnNjb3JlKGkubmFtZSksdGhpcy5mbG93UGFyc2VHZW5lcmljVHlwZShlLGkpfX1mbG93UGFyc2VQcmltYXJ5VHlwZSgpe2xldCBlPXRoaXMuc3RhdGUuc3RhcnRMb2Mscz10aGlzLnN0YXJ0Tm9kZSgpLGkscixuPSExLG89dGhpcy5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU7c3dpdGNoKHRoaXMuc3RhdGUudHlwZSl7Y2FzZSA1OnJldHVybiB0aGlzLmZsb3dQYXJzZU9iamVjdFR5cGUoe2FsbG93U3RhdGljOiExLGFsbG93RXhhY3Q6ITEsYWxsb3dTcHJlYWQ6ITAsYWxsb3dQcm90bzohMSxhbGxvd0luZXhhY3Q6ITB9KTtjYXNlIDY6cmV0dXJuIHRoaXMuZmxvd1BhcnNlT2JqZWN0VHlwZSh7YWxsb3dTdGF0aWM6ITEsYWxsb3dFeGFjdDohMCxhbGxvd1NwcmVhZDohMCxhbGxvd1Byb3RvOiExLGFsbG93SW5leGFjdDohMX0pO2Nhc2UgMDpyZXR1cm4gdGhpcy5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU9ITEscj10aGlzLmZsb3dQYXJzZVR1cGxlVHlwZSgpLHRoaXMuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlPW8scjtjYXNlIDQ3OnJldHVybiBzLnR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCksdGhpcy5leHBlY3QoMTApLGk9dGhpcy5mbG93UGFyc2VGdW5jdGlvblR5cGVQYXJhbXMoKSxzLnBhcmFtcz1pLnBhcmFtcyxzLnJlc3Q9aS5yZXN0LHMudGhpcz1pLl90aGlzLHRoaXMuZXhwZWN0KDExKSx0aGlzLmV4cGVjdCgxOSkscy5yZXR1cm5UeXBlPXRoaXMuZmxvd1BhcnNlVHlwZSgpLHRoaXMuZmluaXNoTm9kZShzLFwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiKTtjYXNlIDEwOmlmKHRoaXMubmV4dCgpLCF0aGlzLm1hdGNoKDExKSYmIXRoaXMubWF0Y2goMjEpKWlmKFModGhpcy5zdGF0ZS50eXBlKXx8dGhpcy5tYXRjaCg3OCkpe2xldCBoPXRoaXMubG9va2FoZWFkKCkudHlwZTtuPWghPT0xNyYmaCE9PTE0fWVsc2Ugbj0hMDtpZihuKXtpZih0aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZT0hMSxyPXRoaXMuZmxvd1BhcnNlVHlwZSgpLHRoaXMuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlPW8sdGhpcy5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGV8fCEodGhpcy5tYXRjaCgxMil8fHRoaXMubWF0Y2goMTEpJiZ0aGlzLmxvb2thaGVhZCgpLnR5cGU9PT0xOSkpcmV0dXJuIHRoaXMuZXhwZWN0KDExKSxyO3RoaXMuZWF0KDEyKX1yZXR1cm4gcj9pPXRoaXMuZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW1zKFt0aGlzLnJlaW50ZXJwcmV0VHlwZUFzRnVuY3Rpb25UeXBlUGFyYW0ocildKTppPXRoaXMuZmxvd1BhcnNlRnVuY3Rpb25UeXBlUGFyYW1zKCkscy5wYXJhbXM9aS5wYXJhbXMscy5yZXN0PWkucmVzdCxzLnRoaXM9aS5fdGhpcyx0aGlzLmV4cGVjdCgxMSksdGhpcy5leHBlY3QoMTkpLHMucmV0dXJuVHlwZT10aGlzLmZsb3dQYXJzZVR5cGUoKSxzLnR5cGVQYXJhbWV0ZXJzPW51bGwsdGhpcy5maW5pc2hOb2RlKHMsXCJGdW5jdGlvblR5cGVBbm5vdGF0aW9uXCIpO2Nhc2UgMTMxOnJldHVybiB0aGlzLnBhcnNlTGl0ZXJhbCh0aGlzLnN0YXRlLnZhbHVlLFwiU3RyaW5nTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIpO2Nhc2UgODU6Y2FzZSA4NjpyZXR1cm4gcy52YWx1ZT10aGlzLm1hdGNoKDg1KSx0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUocyxcIkJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb25cIik7Y2FzZSA1MzppZih0aGlzLnN0YXRlLnZhbHVlPT09XCItXCIpe2lmKHRoaXMubmV4dCgpLHRoaXMubWF0Y2goMTMyKSlyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWxBdE5vZGUoLXRoaXMuc3RhdGUudmFsdWUsXCJOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb25cIixzKTtpZih0aGlzLm1hdGNoKDEzMykpcmV0dXJuIHRoaXMucGFyc2VMaXRlcmFsQXROb2RlKC10aGlzLnN0YXRlLnZhbHVlLFwiQmlnSW50TGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIscyk7dGhyb3cgdGhpcy5yYWlzZShnLlVuZXhwZWN0ZWRTdWJ0cmFjdGlvbk9wZXJhbmQse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KX10aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm47Y2FzZSAxMzI6cmV0dXJuIHRoaXMucGFyc2VMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUsXCJOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb25cIik7Y2FzZSAxMzM6cmV0dXJuIHRoaXMucGFyc2VMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUsXCJCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb25cIik7Y2FzZSA4ODpyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKHMsXCJWb2lkVHlwZUFubm90YXRpb25cIik7Y2FzZSA4NDpyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKHMsXCJOdWxsTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIpO2Nhc2UgNzg6cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShzLFwiVGhpc1R5cGVBbm5vdGF0aW9uXCIpO2Nhc2UgNTU6cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShzLFwiRXhpc3RzVHlwZUFubm90YXRpb25cIik7Y2FzZSA4NzpyZXR1cm4gdGhpcy5mbG93UGFyc2VUeXBlb2ZUeXBlKCk7ZGVmYXVsdDppZihDdCh0aGlzLnN0YXRlLnR5cGUpKXtsZXQgaD1xKHRoaXMuc3RhdGUudHlwZSk7cmV0dXJuIHRoaXMubmV4dCgpLHN1cGVyLmNyZWF0ZUlkZW50aWZpZXIocyxoKX1lbHNlIGlmKFModGhpcy5zdGF0ZS50eXBlKSlyZXR1cm4gdGhpcy5pc0NvbnRleHR1YWwoMTI3KT90aGlzLmZsb3dQYXJzZUludGVyZmFjZVR5cGUoKTp0aGlzLmZsb3dJZGVudFRvVHlwZUFubm90YXRpb24oZSxzLHRoaXMucGFyc2VJZGVudGlmaWVyKCkpfXRoaXMudW5leHBlY3RlZCgpfWZsb3dQYXJzZVBvc3RmaXhUeXBlKCl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYyxzPXRoaXMuZmxvd1BhcnNlUHJpbWFyeVR5cGUoKSxpPSExO2Zvcig7KHRoaXMubWF0Y2goMCl8fHRoaXMubWF0Y2goMTgpKSYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCk7KXtsZXQgcj10aGlzLnN0YXJ0Tm9kZUF0KGUpLG49dGhpcy5lYXQoMTgpO2k9aXx8bix0aGlzLmV4cGVjdCgwKSwhbiYmdGhpcy5tYXRjaCgzKT8oci5lbGVtZW50VHlwZT1zLHRoaXMubmV4dCgpLHM9dGhpcy5maW5pc2hOb2RlKHIsXCJBcnJheVR5cGVBbm5vdGF0aW9uXCIpKTooci5vYmplY3RUeXBlPXMsci5pbmRleFR5cGU9dGhpcy5mbG93UGFyc2VUeXBlKCksdGhpcy5leHBlY3QoMyksaT8oci5vcHRpb25hbD1uLHM9dGhpcy5maW5pc2hOb2RlKHIsXCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCIpKTpzPXRoaXMuZmluaXNoTm9kZShyLFwiSW5kZXhlZEFjY2Vzc1R5cGVcIikpfXJldHVybiBzfWZsb3dQYXJzZVByZWZpeFR5cGUoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLmVhdCgxNyk/KGUudHlwZUFubm90YXRpb249dGhpcy5mbG93UGFyc2VQcmVmaXhUeXBlKCksdGhpcy5maW5pc2hOb2RlKGUsXCJOdWxsYWJsZVR5cGVBbm5vdGF0aW9uXCIpKTp0aGlzLmZsb3dQYXJzZVBvc3RmaXhUeXBlKCl9Zmxvd1BhcnNlQW5vbkZ1bmN0aW9uV2l0aG91dFBhcmVucygpe2xldCBlPXRoaXMuZmxvd1BhcnNlUHJlZml4VHlwZSgpO2lmKCF0aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZSYmdGhpcy5lYXQoMTkpKXtsZXQgcz10aGlzLnN0YXJ0Tm9kZUF0KGUubG9jLnN0YXJ0KTtyZXR1cm4gcy5wYXJhbXM9W3RoaXMucmVpbnRlcnByZXRUeXBlQXNGdW5jdGlvblR5cGVQYXJhbShlKV0scy5yZXN0PW51bGwscy50aGlzPW51bGwscy5yZXR1cm5UeXBlPXRoaXMuZmxvd1BhcnNlVHlwZSgpLHMudHlwZVBhcmFtZXRlcnM9bnVsbCx0aGlzLmZpbmlzaE5vZGUocyxcIkZ1bmN0aW9uVHlwZUFubm90YXRpb25cIil9cmV0dXJuIGV9Zmxvd1BhcnNlSW50ZXJzZWN0aW9uVHlwZSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7dGhpcy5lYXQoNDUpO2xldCBzPXRoaXMuZmxvd1BhcnNlQW5vbkZ1bmN0aW9uV2l0aG91dFBhcmVucygpO2ZvcihlLnR5cGVzPVtzXTt0aGlzLmVhdCg0NSk7KWUudHlwZXMucHVzaCh0aGlzLmZsb3dQYXJzZUFub25GdW5jdGlvbldpdGhvdXRQYXJlbnMoKSk7cmV0dXJuIGUudHlwZXMubGVuZ3RoPT09MT9zOnRoaXMuZmluaXNoTm9kZShlLFwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cIil9Zmxvd1BhcnNlVW5pb25UeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTt0aGlzLmVhdCg0Myk7bGV0IHM9dGhpcy5mbG93UGFyc2VJbnRlcnNlY3Rpb25UeXBlKCk7Zm9yKGUudHlwZXM9W3NdO3RoaXMuZWF0KDQzKTspZS50eXBlcy5wdXNoKHRoaXMuZmxvd1BhcnNlSW50ZXJzZWN0aW9uVHlwZSgpKTtyZXR1cm4gZS50eXBlcy5sZW5ndGg9PT0xP3M6dGhpcy5maW5pc2hOb2RlKGUsXCJVbmlvblR5cGVBbm5vdGF0aW9uXCIpfWZsb3dQYXJzZVR5cGUoKXtsZXQgZT10aGlzLnN0YXRlLmluVHlwZTt0aGlzLnN0YXRlLmluVHlwZT0hMDtsZXQgcz10aGlzLmZsb3dQYXJzZVVuaW9uVHlwZSgpO3JldHVybiB0aGlzLnN0YXRlLmluVHlwZT1lLHN9Zmxvd1BhcnNlVHlwZU9ySW1wbGljaXRJbnN0YW50aWF0aW9uKCl7aWYodGhpcy5zdGF0ZS50eXBlPT09MTMwJiZ0aGlzLnN0YXRlLnZhbHVlPT09XCJfXCIpe2xldCBlPXRoaXMuc3RhdGUuc3RhcnRMb2Mscz10aGlzLnBhcnNlSWRlbnRpZmllcigpO3JldHVybiB0aGlzLmZsb3dQYXJzZUdlbmVyaWNUeXBlKGUscyl9ZWxzZSByZXR1cm4gdGhpcy5mbG93UGFyc2VUeXBlKCl9Zmxvd1BhcnNlVHlwZUFubm90YXRpb24oKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBlLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZUluaXRpYWxpc2VyKCksdGhpcy5maW5pc2hOb2RlKGUsXCJUeXBlQW5ub3RhdGlvblwiKX1mbG93UGFyc2VUeXBlQW5ub3RhdGFibGVJZGVudGlmaWVyKGUpe2xldCBzPWU/dGhpcy5wYXJzZUlkZW50aWZpZXIoKTp0aGlzLmZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCk7cmV0dXJuIHRoaXMubWF0Y2goMTQpJiYocy50eXBlQW5ub3RhdGlvbj10aGlzLmZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCksdGhpcy5yZXNldEVuZExvY2F0aW9uKHMpKSxzfXR5cGVDYXN0VG9QYXJhbWV0ZXIoZSl7cmV0dXJuIGUuZXhwcmVzc2lvbi50eXBlQW5ub3RhdGlvbj1lLnR5cGVBbm5vdGF0aW9uLHRoaXMucmVzZXRFbmRMb2NhdGlvbihlLmV4cHJlc3Npb24sZS50eXBlQW5ub3RhdGlvbi5sb2MuZW5kKSxlLmV4cHJlc3Npb259Zmxvd1BhcnNlVmFyaWFuY2UoKXtsZXQgZT1udWxsO3JldHVybiB0aGlzLm1hdGNoKDUzKT8oZT10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMuc3RhdGUudmFsdWU9PT1cIitcIj9lLmtpbmQ9XCJwbHVzXCI6ZS5raW5kPVwibWludXNcIix0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlZhcmlhbmNlXCIpKTplfXBhcnNlRnVuY3Rpb25Cb2R5KGUscyxpPSExKXtpZihzKXt0aGlzLmZvcndhcmROb0Fycm93UGFyYW1zQ29udmVyc2lvbkF0KGUsKCk9PnN1cGVyLnBhcnNlRnVuY3Rpb25Cb2R5KGUsITAsaSkpO3JldHVybn1zdXBlci5wYXJzZUZ1bmN0aW9uQm9keShlLCExLGkpfXBhcnNlRnVuY3Rpb25Cb2R5QW5kRmluaXNoKGUscyxpPSExKXtpZih0aGlzLm1hdGNoKDE0KSl7bGV0IHI9dGhpcy5zdGFydE5vZGUoKTtbci50eXBlQW5ub3RhdGlvbixlLnByZWRpY2F0ZV09dGhpcy5mbG93UGFyc2VUeXBlQW5kUHJlZGljYXRlSW5pdGlhbGlzZXIoKSxlLnJldHVyblR5cGU9ci50eXBlQW5ub3RhdGlvbj90aGlzLmZpbmlzaE5vZGUocixcIlR5cGVBbm5vdGF0aW9uXCIpOm51bGx9cmV0dXJuIHN1cGVyLnBhcnNlRnVuY3Rpb25Cb2R5QW5kRmluaXNoKGUscyxpKX1wYXJzZVN0YXRlbWVudExpa2UoZSl7aWYodGhpcy5zdGF0ZS5zdHJpY3QmJnRoaXMuaXNDb250ZXh0dWFsKDEyNykpe2xldCBpPXRoaXMubG9va2FoZWFkKCk7aWYoTShpLnR5cGUpKXtsZXQgcj10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmZsb3dQYXJzZUludGVyZmFjZShyKX19ZWxzZSBpZih0aGlzLnNob3VsZFBhcnNlRW51bXMoKSYmdGhpcy5pc0NvbnRleHR1YWwoMTI0KSl7bGV0IGk9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5mbG93UGFyc2VFbnVtRGVjbGFyYXRpb24oaSl9bGV0IHM9c3VwZXIucGFyc2VTdGF0ZW1lbnRMaWtlKGUpO3JldHVybiB0aGlzLmZsb3dQcmFnbWE9PT12b2lkIDAmJiF0aGlzLmlzVmFsaWREaXJlY3RpdmUocykmJih0aGlzLmZsb3dQcmFnbWE9bnVsbCksc31wYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoZSxzLGkpe2lmKHMudHlwZT09PVwiSWRlbnRpZmllclwiKXtpZihzLm5hbWU9PT1cImRlY2xhcmVcIil7aWYodGhpcy5tYXRjaCg4MCl8fFModGhpcy5zdGF0ZS50eXBlKXx8dGhpcy5tYXRjaCg2OCl8fHRoaXMubWF0Y2goNzQpfHx0aGlzLm1hdGNoKDgyKSlyZXR1cm4gdGhpcy5mbG93UGFyc2VEZWNsYXJlKGUpfWVsc2UgaWYoUyh0aGlzLnN0YXRlLnR5cGUpKXtpZihzLm5hbWU9PT1cImludGVyZmFjZVwiKXJldHVybiB0aGlzLmZsb3dQYXJzZUludGVyZmFjZShlKTtpZihzLm5hbWU9PT1cInR5cGVcIilyZXR1cm4gdGhpcy5mbG93UGFyc2VUeXBlQWxpYXMoZSk7aWYocy5uYW1lPT09XCJvcGFxdWVcIilyZXR1cm4gdGhpcy5mbG93UGFyc2VPcGFxdWVUeXBlKGUsITEpfX1yZXR1cm4gc3VwZXIucGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGUscyxpKX1zaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCl7bGV0e3R5cGU6ZX09dGhpcy5zdGF0ZTtyZXR1cm4gVXQoZSl8fHRoaXMuc2hvdWxkUGFyc2VFbnVtcygpJiZlPT09MTI0PyF0aGlzLnN0YXRlLmNvbnRhaW5zRXNjOnN1cGVyLnNob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKX1pc0V4cG9ydERlZmF1bHRTcGVjaWZpZXIoKXtsZXR7dHlwZTplfT10aGlzLnN0YXRlO3JldHVybiBVdChlKXx8dGhpcy5zaG91bGRQYXJzZUVudW1zKCkmJmU9PT0xMjQ/dGhpcy5zdGF0ZS5jb250YWluc0VzYzpzdXBlci5pc0V4cG9ydERlZmF1bHRTcGVjaWZpZXIoKX1wYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCl7aWYodGhpcy5zaG91bGRQYXJzZUVudW1zKCkmJnRoaXMuaXNDb250ZXh0dWFsKDEyNCkpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmxvd1BhcnNlRW51bURlY2xhcmF0aW9uKGUpfXJldHVybiBzdXBlci5wYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCl9cGFyc2VDb25kaXRpb25hbChlLHMsaSl7aWYoIXRoaXMubWF0Y2goMTcpKXJldHVybiBlO2lmKHRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycyl7bGV0IGY9dGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpO2lmKGY9PT00NHx8Zj09PTYxfHxmPT09NTh8fGY9PT00MSlyZXR1cm4gdGhpcy5zZXRPcHRpb25hbFBhcmFtZXRlcnNFcnJvcihpKSxlfXRoaXMuZXhwZWN0KDE3KTtsZXQgcj10aGlzLnN0YXRlLmNsb25lKCksbj10aGlzLnN0YXRlLm5vQXJyb3dBdCxvPXRoaXMuc3RhcnROb2RlQXQocykse2NvbnNlcXVlbnQ6aCxmYWlsZWQ6bH09dGhpcy50cnlQYXJzZUNvbmRpdGlvbmFsQ29uc2VxdWVudCgpLFtjLHVdPXRoaXMuZ2V0QXJyb3dMaWtlRXhwcmVzc2lvbnMoaCk7aWYobHx8dS5sZW5ndGg+MCl7bGV0IGY9Wy4uLm5dO2lmKHUubGVuZ3RoPjApe3RoaXMuc3RhdGU9cix0aGlzLnN0YXRlLm5vQXJyb3dBdD1mO2ZvcihsZXQgZD0wO2Q8dS5sZW5ndGg7ZCsrKWYucHVzaCh1W2RdLnN0YXJ0KTsoe2NvbnNlcXVlbnQ6aCxmYWlsZWQ6bH09dGhpcy50cnlQYXJzZUNvbmRpdGlvbmFsQ29uc2VxdWVudCgpKSxbYyx1XT10aGlzLmdldEFycm93TGlrZUV4cHJlc3Npb25zKGgpfWwmJmMubGVuZ3RoPjEmJnRoaXMucmFpc2UoZy5BbWJpZ3VvdXNDb25kaXRpb25hbEFycm93LHthdDpyLnN0YXJ0TG9jfSksbCYmYy5sZW5ndGg9PT0xJiYodGhpcy5zdGF0ZT1yLGYucHVzaChjWzBdLnN0YXJ0KSx0aGlzLnN0YXRlLm5vQXJyb3dBdD1mLHtjb25zZXF1ZW50OmgsZmFpbGVkOmx9PXRoaXMudHJ5UGFyc2VDb25kaXRpb25hbENvbnNlcXVlbnQoKSl9cmV0dXJuIHRoaXMuZ2V0QXJyb3dMaWtlRXhwcmVzc2lvbnMoaCwhMCksdGhpcy5zdGF0ZS5ub0Fycm93QXQ9bix0aGlzLmV4cGVjdCgxNCksby50ZXN0PWUsby5jb25zZXF1ZW50PWgsby5hbHRlcm5hdGU9dGhpcy5mb3J3YXJkTm9BcnJvd1BhcmFtc0NvbnZlcnNpb25BdChvLCgpPT50aGlzLnBhcnNlTWF5YmVBc3NpZ24odm9pZCAwLHZvaWQgMCkpLHRoaXMuZmluaXNoTm9kZShvLFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIpfXRyeVBhcnNlQ29uZGl0aW9uYWxDb25zZXF1ZW50KCl7dGhpcy5zdGF0ZS5ub0Fycm93UGFyYW1zQ29udmVyc2lvbkF0LnB1c2godGhpcy5zdGF0ZS5zdGFydCk7bGV0IGU9dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpLHM9IXRoaXMubWF0Y2goMTQpO3JldHVybiB0aGlzLnN0YXRlLm5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQucG9wKCkse2NvbnNlcXVlbnQ6ZSxmYWlsZWQ6c319Z2V0QXJyb3dMaWtlRXhwcmVzc2lvbnMoZSxzKXtsZXQgaT1bZV0scj1bXTtmb3IoO2kubGVuZ3RoIT09MDspe2xldCBuPWkucG9wKCk7bi50eXBlPT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiPyhuLnR5cGVQYXJhbWV0ZXJzfHwhbi5yZXR1cm5UeXBlP3RoaXMuZmluaXNoQXJyb3dWYWxpZGF0aW9uKG4pOnIucHVzaChuKSxpLnB1c2gobi5ib2R5KSk6bi50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIiYmKGkucHVzaChuLmNvbnNlcXVlbnQpLGkucHVzaChuLmFsdGVybmF0ZSkpfXJldHVybiBzPyhyLmZvckVhY2gobj0+dGhpcy5maW5pc2hBcnJvd1ZhbGlkYXRpb24obikpLFtyLFtdXSk6ZXIocixuPT5uLnBhcmFtcy5ldmVyeShvPT50aGlzLmlzQXNzaWduYWJsZShvLCEwKSkpfWZpbmlzaEFycm93VmFsaWRhdGlvbihlKXt2YXIgczt0aGlzLnRvQXNzaWduYWJsZUxpc3QoZS5wYXJhbXMsKHM9ZS5leHRyYSk9PW51bGw/dm9pZCAwOnMudHJhaWxpbmdDb21tYUxvYywhMSksdGhpcy5zY29wZS5lbnRlcig2KSxzdXBlci5jaGVja1BhcmFtcyhlLCExLCEwKSx0aGlzLnNjb3BlLmV4aXQoKX1mb3J3YXJkTm9BcnJvd1BhcmFtc0NvbnZlcnNpb25BdChlLHMpe2xldCBpO3JldHVybiB0aGlzLnN0YXRlLm5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQuaW5kZXhPZihlLnN0YXJ0KSE9PS0xPyh0aGlzLnN0YXRlLm5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQucHVzaCh0aGlzLnN0YXRlLnN0YXJ0KSxpPXMoKSx0aGlzLnN0YXRlLm5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQucG9wKCkpOmk9cygpLGl9cGFyc2VQYXJlbkl0ZW0oZSxzKXtpZihlPXN1cGVyLnBhcnNlUGFyZW5JdGVtKGUscyksdGhpcy5lYXQoMTcpJiYoZS5vcHRpb25hbD0hMCx0aGlzLnJlc2V0RW5kTG9jYXRpb24oZSkpLHRoaXMubWF0Y2goMTQpKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZUF0KHMpO3JldHVybiBpLmV4cHJlc3Npb249ZSxpLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKSx0aGlzLmZpbmlzaE5vZGUoaSxcIlR5cGVDYXN0RXhwcmVzc2lvblwiKX1yZXR1cm4gZX1hc3NlcnRNb2R1bGVOb2RlQWxsb3dlZChlKXtlLnR5cGU9PT1cIkltcG9ydERlY2xhcmF0aW9uXCImJihlLmltcG9ydEtpbmQ9PT1cInR5cGVcInx8ZS5pbXBvcnRLaW5kPT09XCJ0eXBlb2ZcIil8fGUudHlwZT09PVwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiJiZlLmV4cG9ydEtpbmQ9PT1cInR5cGVcInx8ZS50eXBlPT09XCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiJiZlLmV4cG9ydEtpbmQ9PT1cInR5cGVcInx8c3VwZXIuYXNzZXJ0TW9kdWxlTm9kZUFsbG93ZWQoZSl9cGFyc2VFeHBvcnREZWNsYXJhdGlvbihlKXtpZih0aGlzLmlzQ29udGV4dHVhbCgxMjgpKXtlLmV4cG9ydEtpbmQ9XCJ0eXBlXCI7bGV0IHM9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5tYXRjaCg1KT8oZS5zcGVjaWZpZXJzPXRoaXMucGFyc2VFeHBvcnRTcGVjaWZpZXJzKCEwKSxzdXBlci5wYXJzZUV4cG9ydEZyb20oZSksbnVsbCk6dGhpcy5mbG93UGFyc2VUeXBlQWxpYXMocyl9ZWxzZSBpZih0aGlzLmlzQ29udGV4dHVhbCgxMjkpKXtlLmV4cG9ydEtpbmQ9XCJ0eXBlXCI7bGV0IHM9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5mbG93UGFyc2VPcGFxdWVUeXBlKHMsITEpfWVsc2UgaWYodGhpcy5pc0NvbnRleHR1YWwoMTI3KSl7ZS5leHBvcnRLaW5kPVwidHlwZVwiO2xldCBzPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmxvd1BhcnNlSW50ZXJmYWNlKHMpfWVsc2UgaWYodGhpcy5zaG91bGRQYXJzZUVudW1zKCkmJnRoaXMuaXNDb250ZXh0dWFsKDEyNCkpe2UuZXhwb3J0S2luZD1cInZhbHVlXCI7bGV0IHM9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5mbG93UGFyc2VFbnVtRGVjbGFyYXRpb24ocyl9ZWxzZSByZXR1cm4gc3VwZXIucGFyc2VFeHBvcnREZWNsYXJhdGlvbihlKX1lYXRFeHBvcnRTdGFyKGUpe3JldHVybiBzdXBlci5lYXRFeHBvcnRTdGFyKGUpPyEwOnRoaXMuaXNDb250ZXh0dWFsKDEyOCkmJnRoaXMubG9va2FoZWFkKCkudHlwZT09PTU1PyhlLmV4cG9ydEtpbmQ9XCJ0eXBlXCIsdGhpcy5uZXh0KCksdGhpcy5uZXh0KCksITApOiExfW1heWJlUGFyc2VFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXIoZSl7bGV0e3N0YXJ0TG9jOnN9PXRoaXMuc3RhdGUsaT1zdXBlci5tYXliZVBhcnNlRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyKGUpO3JldHVybiBpJiZlLmV4cG9ydEtpbmQ9PT1cInR5cGVcIiYmdGhpcy51bmV4cGVjdGVkKHMpLGl9cGFyc2VDbGFzc0lkKGUscyxpKXtzdXBlci5wYXJzZUNsYXNzSWQoZSxzLGkpLHRoaXMubWF0Y2goNDcpJiYoZS50eXBlUGFyYW1ldGVycz10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpKX1wYXJzZUNsYXNzTWVtYmVyKGUscyxpKXtsZXR7c3RhcnRMb2M6cn09dGhpcy5zdGF0ZTtpZih0aGlzLmlzQ29udGV4dHVhbCgxMjMpKXtpZihzdXBlci5wYXJzZUNsYXNzTWVtYmVyRnJvbU1vZGlmaWVyKGUscykpcmV0dXJuO3MuZGVjbGFyZT0hMH1zdXBlci5wYXJzZUNsYXNzTWVtYmVyKGUscyxpKSxzLmRlY2xhcmUmJihzLnR5cGUhPT1cIkNsYXNzUHJvcGVydHlcIiYmcy50eXBlIT09XCJDbGFzc1ByaXZhdGVQcm9wZXJ0eVwiJiZzLnR5cGUhPT1cIlByb3BlcnR5RGVmaW5pdGlvblwiP3RoaXMucmFpc2UoZy5EZWNsYXJlQ2xhc3NFbGVtZW50LHthdDpyfSk6cy52YWx1ZSYmdGhpcy5yYWlzZShnLkRlY2xhcmVDbGFzc0ZpZWxkSW5pdGlhbGl6ZXIse2F0OnMudmFsdWV9KSl9aXNJdGVyYXRvcihlKXtyZXR1cm4gZT09PVwiaXRlcmF0b3JcInx8ZT09PVwiYXN5bmNJdGVyYXRvclwifXJlYWRJdGVyYXRvcigpe2xldCBlPXN1cGVyLnJlYWRXb3JkMSgpLHM9XCJAQFwiK2U7KCF0aGlzLmlzSXRlcmF0b3IoZSl8fCF0aGlzLnN0YXRlLmluVHlwZSkmJnRoaXMucmFpc2UocC5JbnZhbGlkSWRlbnRpZmllcix7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpLGlkZW50aWZpZXJOYW1lOnN9KSx0aGlzLmZpbmlzaFRva2VuKDEzMCxzKX1nZXRUb2tlbkZyb21Db2RlKGUpe2xldCBzPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysxKTtlPT09MTIzJiZzPT09MTI0P3RoaXMuZmluaXNoT3AoNiwyKTp0aGlzLnN0YXRlLmluVHlwZSYmKGU9PT02Mnx8ZT09PTYwKT90aGlzLmZpbmlzaE9wKGU9PT02Mj80ODo0NywxKTp0aGlzLnN0YXRlLmluVHlwZSYmZT09PTYzP3M9PT00Nj90aGlzLmZpbmlzaE9wKDE4LDIpOnRoaXMuZmluaXNoT3AoMTcsMSk6RmkoZSxzLHRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcysyKSk/KHRoaXMuc3RhdGUucG9zKz0yLHRoaXMucmVhZEl0ZXJhdG9yKCkpOnN1cGVyLmdldFRva2VuRnJvbUNvZGUoZSl9aXNBc3NpZ25hYmxlKGUscyl7cmV0dXJuIGUudHlwZT09PVwiVHlwZUNhc3RFeHByZXNzaW9uXCI/dGhpcy5pc0Fzc2lnbmFibGUoZS5leHByZXNzaW9uLHMpOnN1cGVyLmlzQXNzaWduYWJsZShlLHMpfXRvQXNzaWduYWJsZShlLHM9ITEpeyFzJiZlLnR5cGU9PT1cIkFzc2lnbm1lbnRFeHByZXNzaW9uXCImJmUubGVmdC50eXBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cIiYmKGUubGVmdD10aGlzLnR5cGVDYXN0VG9QYXJhbWV0ZXIoZS5sZWZ0KSksc3VwZXIudG9Bc3NpZ25hYmxlKGUscyl9dG9Bc3NpZ25hYmxlTGlzdChlLHMsaSl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBuPWVbcl07KG49PW51bGw/dm9pZCAwOm4udHlwZSk9PT1cIlR5cGVDYXN0RXhwcmVzc2lvblwiJiYoZVtyXT10aGlzLnR5cGVDYXN0VG9QYXJhbWV0ZXIobikpfXN1cGVyLnRvQXNzaWduYWJsZUxpc3QoZSxzLGkpfXRvUmVmZXJlbmNlZExpc3QoZSxzKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk7bGV0IG49ZVtyXTtuJiZuLnR5cGU9PT1cIlR5cGVDYXN0RXhwcmVzc2lvblwiJiYhKChpPW4uZXh0cmEpIT1udWxsJiZpLnBhcmVudGhlc2l6ZWQpJiYoZS5sZW5ndGg+MXx8IXMpJiZ0aGlzLnJhaXNlKGcuVHlwZUNhc3RJblBhdHRlcm4se2F0Om4udHlwZUFubm90YXRpb259KX1yZXR1cm4gZX1wYXJzZUFycmF5TGlrZShlLHMsaSxyKXtsZXQgbj1zdXBlci5wYXJzZUFycmF5TGlrZShlLHMsaSxyKTtyZXR1cm4gcyYmIXRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycyYmdGhpcy50b1JlZmVyZW5jZWRMaXN0KG4uZWxlbWVudHMpLG59aXNWYWxpZExWYWwoZSxzLGkpe3JldHVybiBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cInx8c3VwZXIuaXNWYWxpZExWYWwoZSxzLGkpfXBhcnNlQ2xhc3NQcm9wZXJ0eShlKXtyZXR1cm4gdGhpcy5tYXRjaCgxNCkmJihlLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKSksc3VwZXIucGFyc2VDbGFzc1Byb3BlcnR5KGUpfXBhcnNlQ2xhc3NQcml2YXRlUHJvcGVydHkoZSl7cmV0dXJuIHRoaXMubWF0Y2goMTQpJiYoZS50eXBlQW5ub3RhdGlvbj10aGlzLmZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCkpLHN1cGVyLnBhcnNlQ2xhc3NQcml2YXRlUHJvcGVydHkoZSl9aXNDbGFzc01ldGhvZCgpe3JldHVybiB0aGlzLm1hdGNoKDQ3KXx8c3VwZXIuaXNDbGFzc01ldGhvZCgpfWlzQ2xhc3NQcm9wZXJ0eSgpe3JldHVybiB0aGlzLm1hdGNoKDE0KXx8c3VwZXIuaXNDbGFzc1Byb3BlcnR5KCl9aXNOb25zdGF0aWNDb25zdHJ1Y3RvcihlKXtyZXR1cm4hdGhpcy5tYXRjaCgxNCkmJnN1cGVyLmlzTm9uc3RhdGljQ29uc3RydWN0b3IoZSl9cHVzaENsYXNzTWV0aG9kKGUscyxpLHIsbixvKXtpZihzLnZhcmlhbmNlJiZ0aGlzLnVuZXhwZWN0ZWQocy52YXJpYW5jZS5sb2Muc3RhcnQpLGRlbGV0ZSBzLnZhcmlhbmNlLHRoaXMubWF0Y2goNDcpJiYocy50eXBlUGFyYW1ldGVycz10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpKSxzdXBlci5wdXNoQ2xhc3NNZXRob2QoZSxzLGkscixuLG8pLHMucGFyYW1zJiZuKXtsZXQgaD1zLnBhcmFtcztoLmxlbmd0aD4wJiZ0aGlzLmlzVGhpc1BhcmFtKGhbMF0pJiZ0aGlzLnJhaXNlKGcuVGhpc1BhcmFtQmFubmVkSW5Db25zdHJ1Y3Rvcix7YXQ6c30pfWVsc2UgaWYocy50eXBlPT09XCJNZXRob2REZWZpbml0aW9uXCImJm4mJnMudmFsdWUucGFyYW1zKXtsZXQgaD1zLnZhbHVlLnBhcmFtcztoLmxlbmd0aD4wJiZ0aGlzLmlzVGhpc1BhcmFtKGhbMF0pJiZ0aGlzLnJhaXNlKGcuVGhpc1BhcmFtQmFubmVkSW5Db25zdHJ1Y3Rvcix7YXQ6c30pfX1wdXNoQ2xhc3NQcml2YXRlTWV0aG9kKGUscyxpLHIpe3MudmFyaWFuY2UmJnRoaXMudW5leHBlY3RlZChzLnZhcmlhbmNlLmxvYy5zdGFydCksZGVsZXRlIHMudmFyaWFuY2UsdGhpcy5tYXRjaCg0NykmJihzLnR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKCkpLHN1cGVyLnB1c2hDbGFzc1ByaXZhdGVNZXRob2QoZSxzLGkscil9cGFyc2VDbGFzc1N1cGVyKGUpe2lmKHN1cGVyLnBhcnNlQ2xhc3NTdXBlcihlKSxlLnN1cGVyQ2xhc3MmJnRoaXMubWF0Y2goNDcpJiYoZS5zdXBlclR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKSksdGhpcy5pc0NvbnRleHR1YWwoMTExKSl7dGhpcy5uZXh0KCk7bGV0IHM9ZS5pbXBsZW1lbnRzPVtdO2Rve2xldCBpPXRoaXMuc3RhcnROb2RlKCk7aS5pZD10aGlzLmZsb3dQYXJzZVJlc3RyaWN0ZWRJZGVudGlmaWVyKCEwKSx0aGlzLm1hdGNoKDQ3KT9pLnR5cGVQYXJhbWV0ZXJzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKTppLnR5cGVQYXJhbWV0ZXJzPW51bGwscy5wdXNoKHRoaXMuZmluaXNoTm9kZShpLFwiQ2xhc3NJbXBsZW1lbnRzXCIpKX13aGlsZSh0aGlzLmVhdCgxMikpfX1jaGVja0dldHRlclNldHRlclBhcmFtcyhlKXtzdXBlci5jaGVja0dldHRlclNldHRlclBhcmFtcyhlKTtsZXQgcz10aGlzLmdldE9iamVjdE9yQ2xhc3NNZXRob2RQYXJhbXMoZSk7aWYocy5sZW5ndGg+MCl7bGV0IGk9c1swXTt0aGlzLmlzVGhpc1BhcmFtKGkpJiZlLmtpbmQ9PT1cImdldFwiP3RoaXMucmFpc2UoZy5HZXR0ZXJNYXlOb3RIYXZlVGhpc1BhcmFtLHthdDppfSk6dGhpcy5pc1RoaXNQYXJhbShpKSYmdGhpcy5yYWlzZShnLlNldHRlck1heU5vdEhhdmVUaGlzUGFyYW0se2F0Oml9KX19cGFyc2VQcm9wZXJ0eU5hbWVQcmVmaXhPcGVyYXRvcihlKXtlLnZhcmlhbmNlPXRoaXMuZmxvd1BhcnNlVmFyaWFuY2UoKX1wYXJzZU9ialByb3BWYWx1ZShlLHMsaSxyLG4sbyxoKXtlLnZhcmlhbmNlJiZ0aGlzLnVuZXhwZWN0ZWQoZS52YXJpYW5jZS5sb2Muc3RhcnQpLGRlbGV0ZSBlLnZhcmlhbmNlO2xldCBsO3RoaXMubWF0Y2goNDcpJiYhbyYmKGw9dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKSx0aGlzLm1hdGNoKDEwKXx8dGhpcy51bmV4cGVjdGVkKCkpO2xldCBjPXN1cGVyLnBhcnNlT2JqUHJvcFZhbHVlKGUscyxpLHIsbixvLGgpO3JldHVybiBsJiYoKGMudmFsdWV8fGMpLnR5cGVQYXJhbWV0ZXJzPWwpLGN9cGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcyhlKXtyZXR1cm4gdGhpcy5lYXQoMTcpJiYoZS50eXBlIT09XCJJZGVudGlmaWVyXCImJnRoaXMucmFpc2UoZy5QYXR0ZXJuSXNPcHRpb25hbCx7YXQ6ZX0pLHRoaXMuaXNUaGlzUGFyYW0oZSkmJnRoaXMucmFpc2UoZy5UaGlzUGFyYW1NYXlOb3RCZU9wdGlvbmFsLHthdDplfSksZS5vcHRpb25hbD0hMCksdGhpcy5tYXRjaCgxNCk/ZS50eXBlQW5ub3RhdGlvbj10aGlzLmZsb3dQYXJzZVR5cGVBbm5vdGF0aW9uKCk6dGhpcy5pc1RoaXNQYXJhbShlKSYmdGhpcy5yYWlzZShnLlRoaXNQYXJhbUFubm90YXRpb25SZXF1aXJlZCx7YXQ6ZX0pLHRoaXMubWF0Y2goMjkpJiZ0aGlzLmlzVGhpc1BhcmFtKGUpJiZ0aGlzLnJhaXNlKGcuVGhpc1BhcmFtTm9EZWZhdWx0LHthdDplfSksdGhpcy5yZXNldEVuZExvY2F0aW9uKGUpLGV9cGFyc2VNYXliZURlZmF1bHQoZSxzKXtsZXQgaT1zdXBlci5wYXJzZU1heWJlRGVmYXVsdChlLHMpO3JldHVybiBpLnR5cGU9PT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCImJmkudHlwZUFubm90YXRpb24mJmkucmlnaHQuc3RhcnQ8aS50eXBlQW5ub3RhdGlvbi5zdGFydCYmdGhpcy5yYWlzZShnLlR5cGVCZWZvcmVJbml0aWFsaXplcix7YXQ6aS50eXBlQW5ub3RhdGlvbn0pLGl9Y2hlY2tJbXBvcnRSZWZsZWN0aW9uKGUpe3N1cGVyLmNoZWNrSW1wb3J0UmVmbGVjdGlvbihlKSxlLm1vZHVsZSYmZS5pbXBvcnRLaW5kIT09XCJ2YWx1ZVwiJiZ0aGlzLnJhaXNlKGcuSW1wb3J0UmVmbGVjdGlvbkhhc0ltcG9ydFR5cGUse2F0OmUuc3BlY2lmaWVyc1swXS5sb2Muc3RhcnR9KX1wYXJzZUltcG9ydFNwZWNpZmllckxvY2FsKGUscyxpKXtzLmxvY2FsPXp0KGUpP3RoaXMuZmxvd1BhcnNlUmVzdHJpY3RlZElkZW50aWZpZXIoITAsITApOnRoaXMucGFyc2VJZGVudGlmaWVyKCksZS5zcGVjaWZpZXJzLnB1c2godGhpcy5maW5pc2hJbXBvcnRTcGVjaWZpZXIocyxpKSl9aXNQb3RlbnRpYWxJbXBvcnRQaGFzZShlKXtpZihzdXBlci5pc1BvdGVudGlhbEltcG9ydFBoYXNlKGUpKXJldHVybiEwO2lmKHRoaXMuaXNDb250ZXh0dWFsKDEyOCkpe2lmKCFlKXJldHVybiEwO2xldCBzPXRoaXMubG9va2FoZWFkQ2hhckNvZGUoKTtyZXR1cm4gcz09PTEyM3x8cz09PTQyfXJldHVybiFlJiZ0aGlzLmlzQ29udGV4dHVhbCg4Nyl9YXBwbHlJbXBvcnRQaGFzZShlLHMsaSxyKXtpZihzdXBlci5hcHBseUltcG9ydFBoYXNlKGUscyxpLHIpLHMpe2lmKCFpJiZ0aGlzLm1hdGNoKDY1KSlyZXR1cm47ZS5leHBvcnRLaW5kPWk9PT1cInR5cGVcIj9pOlwidmFsdWVcIn1lbHNlIGk9PT1cInR5cGVcIiYmdGhpcy5tYXRjaCg1NSkmJnRoaXMudW5leHBlY3RlZCgpLGUuaW1wb3J0S2luZD1pPT09XCJ0eXBlXCJ8fGk9PT1cInR5cGVvZlwiP2k6XCJ2YWx1ZVwifXBhcnNlSW1wb3J0U3BlY2lmaWVyKGUscyxpLHIsbil7bGV0IG89ZS5pbXBvcnRlZCxoPW51bGw7by50eXBlPT09XCJJZGVudGlmaWVyXCImJihvLm5hbWU9PT1cInR5cGVcIj9oPVwidHlwZVwiOm8ubmFtZT09PVwidHlwZW9mXCImJihoPVwidHlwZW9mXCIpKTtsZXQgbD0hMTtpZih0aGlzLmlzQ29udGV4dHVhbCg5MykmJiF0aGlzLmlzTG9va2FoZWFkQ29udGV4dHVhbChcImFzXCIpKXtsZXQgdT10aGlzLnBhcnNlSWRlbnRpZmllcighMCk7aCE9PW51bGwmJiFNKHRoaXMuc3RhdGUudHlwZSk/KGUuaW1wb3J0ZWQ9dSxlLmltcG9ydEtpbmQ9aCxlLmxvY2FsPVYodSkpOihlLmltcG9ydGVkPW8sZS5pbXBvcnRLaW5kPW51bGwsZS5sb2NhbD10aGlzLnBhcnNlSWRlbnRpZmllcigpKX1lbHNle2lmKGghPT1udWxsJiZNKHRoaXMuc3RhdGUudHlwZSkpZS5pbXBvcnRlZD10aGlzLnBhcnNlSWRlbnRpZmllcighMCksZS5pbXBvcnRLaW5kPWg7ZWxzZXtpZihzKXRocm93IHRoaXMucmFpc2UocC5JbXBvcnRCaW5kaW5nSXNTdHJpbmcse2F0OmUsaW1wb3J0TmFtZTpvLnZhbHVlfSk7ZS5pbXBvcnRlZD1vLGUuaW1wb3J0S2luZD1udWxsfXRoaXMuZWF0Q29udGV4dHVhbCg5Myk/ZS5sb2NhbD10aGlzLnBhcnNlSWRlbnRpZmllcigpOihsPSEwLGUubG9jYWw9VihlLmltcG9ydGVkKSl9bGV0IGM9enQoZSk7cmV0dXJuIGkmJmMmJnRoaXMucmFpc2UoZy5JbXBvcnRUeXBlU2hvcnRoYW5kT25seUluUHVyZUltcG9ydCx7YXQ6ZX0pLChpfHxjKSYmdGhpcy5jaGVja1Jlc2VydmVkVHlwZShlLmxvY2FsLm5hbWUsZS5sb2NhbC5sb2Muc3RhcnQsITApLGwmJiFpJiYhYyYmdGhpcy5jaGVja1Jlc2VydmVkV29yZChlLmxvY2FsLm5hbWUsZS5sb2Muc3RhcnQsITAsITApLHRoaXMuZmluaXNoSW1wb3J0U3BlY2lmaWVyKGUsXCJJbXBvcnRTcGVjaWZpZXJcIil9cGFyc2VCaW5kaW5nQXRvbSgpe3N3aXRjaCh0aGlzLnN0YXRlLnR5cGUpe2Nhc2UgNzg6cmV0dXJuIHRoaXMucGFyc2VJZGVudGlmaWVyKCEwKTtkZWZhdWx0OnJldHVybiBzdXBlci5wYXJzZUJpbmRpbmdBdG9tKCl9fXBhcnNlRnVuY3Rpb25QYXJhbXMoZSxzKXtsZXQgaT1lLmtpbmQ7aSE9PVwiZ2V0XCImJmkhPT1cInNldFwiJiZ0aGlzLm1hdGNoKDQ3KSYmKGUudHlwZVBhcmFtZXRlcnM9dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oKSksc3VwZXIucGFyc2VGdW5jdGlvblBhcmFtcyhlLHMpfXBhcnNlVmFySWQoZSxzKXtzdXBlci5wYXJzZVZhcklkKGUscyksdGhpcy5tYXRjaCgxNCkmJihlLmlkLnR5cGVBbm5vdGF0aW9uPXRoaXMuZmxvd1BhcnNlVHlwZUFubm90YXRpb24oKSx0aGlzLnJlc2V0RW5kTG9jYXRpb24oZS5pZCkpfXBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbihlLHMpe2lmKHRoaXMubWF0Y2goMTQpKXtsZXQgaT10aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZTt0aGlzLnN0YXRlLm5vQW5vbkZ1bmN0aW9uVHlwZT0hMCxlLnJldHVyblR5cGU9dGhpcy5mbG93UGFyc2VUeXBlQW5ub3RhdGlvbigpLHRoaXMuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlPWl9cmV0dXJuIHN1cGVyLnBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbihlLHMpfXNob3VsZFBhcnNlQXN5bmNBcnJvdygpe3JldHVybiB0aGlzLm1hdGNoKDE0KXx8c3VwZXIuc2hvdWxkUGFyc2VBc3luY0Fycm93KCl9cGFyc2VNYXliZUFzc2lnbihlLHMpe3ZhciBpO2xldCByPW51bGwsbjtpZih0aGlzLmhhc1BsdWdpbihcImpzeFwiKSYmKHRoaXMubWF0Y2goMTQwKXx8dGhpcy5tYXRjaCg0NykpKXtpZihyPXRoaXMuc3RhdGUuY2xvbmUoKSxuPXRoaXMudHJ5UGFyc2UoKCk9PnN1cGVyLnBhcnNlTWF5YmVBc3NpZ24oZSxzKSxyKSwhbi5lcnJvcilyZXR1cm4gbi5ub2RlO2xldHtjb250ZXh0Omx9PXRoaXMuc3RhdGUsYz1sW2wubGVuZ3RoLTFdOyhjPT09dy5qX29UYWd8fGM9PT13LmpfZXhwcikmJmwucG9wKCl9aWYoKGk9bikhPW51bGwmJmkuZXJyb3J8fHRoaXMubWF0Y2goNDcpKXt2YXIgbyxoO3I9cnx8dGhpcy5zdGF0ZS5jbG9uZSgpO2xldCBsLGM9dGhpcy50cnlQYXJzZShmPT57dmFyIGQ7bD10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbigpO2xldCB4PXRoaXMuZm9yd2FyZE5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQobCwoKT0+e2xldCBDPXN1cGVyLnBhcnNlTWF5YmVBc3NpZ24oZSxzKTtyZXR1cm4gdGhpcy5yZXNldFN0YXJ0TG9jYXRpb25Gcm9tTm9kZShDLGwpLEN9KTsoZD14LmV4dHJhKSE9bnVsbCYmZC5wYXJlbnRoZXNpemVkJiZmKCk7bGV0IEk9dGhpcy5tYXliZVVud3JhcFR5cGVDYXN0RXhwcmVzc2lvbih4KTtyZXR1cm4gSS50eXBlIT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiJiZmKCksSS50eXBlUGFyYW1ldGVycz1sLHRoaXMucmVzZXRTdGFydExvY2F0aW9uRnJvbU5vZGUoSSxsKSx4fSxyKSx1PW51bGw7aWYoYy5ub2RlJiZ0aGlzLm1heWJlVW53cmFwVHlwZUNhc3RFeHByZXNzaW9uKGMubm9kZSkudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIil7aWYoIWMuZXJyb3ImJiFjLmFib3J0ZWQpcmV0dXJuIGMubm9kZS5hc3luYyYmdGhpcy5yYWlzZShnLlVuZXhwZWN0ZWRUeXBlUGFyYW1ldGVyQmVmb3JlQXN5bmNBcnJvd0Z1bmN0aW9uLHthdDpsfSksYy5ub2RlO3U9Yy5ub2RlfWlmKChvPW4pIT1udWxsJiZvLm5vZGUpcmV0dXJuIHRoaXMuc3RhdGU9bi5mYWlsU3RhdGUsbi5ub2RlO2lmKHUpcmV0dXJuIHRoaXMuc3RhdGU9Yy5mYWlsU3RhdGUsdTt0aHJvdyhoPW4pIT1udWxsJiZoLnRocm93bj9uLmVycm9yOmMudGhyb3duP2MuZXJyb3I6dGhpcy5yYWlzZShnLlVuZXhwZWN0ZWRUb2tlbkFmdGVyVHlwZVBhcmFtZXRlcix7YXQ6bH0pfXJldHVybiBzdXBlci5wYXJzZU1heWJlQXNzaWduKGUscyl9cGFyc2VBcnJvdyhlKXtpZih0aGlzLm1hdGNoKDE0KSl7bGV0IHM9dGhpcy50cnlQYXJzZSgoKT0+e2xldCBpPXRoaXMuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlO3RoaXMuc3RhdGUubm9Bbm9uRnVuY3Rpb25UeXBlPSEwO2xldCByPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuW3IudHlwZUFubm90YXRpb24sZS5wcmVkaWNhdGVdPXRoaXMuZmxvd1BhcnNlVHlwZUFuZFByZWRpY2F0ZUluaXRpYWxpc2VyKCksdGhpcy5zdGF0ZS5ub0Fub25GdW5jdGlvblR5cGU9aSx0aGlzLmNhbkluc2VydFNlbWljb2xvbigpJiZ0aGlzLnVuZXhwZWN0ZWQoKSx0aGlzLm1hdGNoKDE5KXx8dGhpcy51bmV4cGVjdGVkKCkscn0pO2lmKHMudGhyb3duKXJldHVybiBudWxsO3MuZXJyb3ImJih0aGlzLnN0YXRlPXMuZmFpbFN0YXRlKSxlLnJldHVyblR5cGU9cy5ub2RlLnR5cGVBbm5vdGF0aW9uP3RoaXMuZmluaXNoTm9kZShzLm5vZGUsXCJUeXBlQW5ub3RhdGlvblwiKTpudWxsfXJldHVybiBzdXBlci5wYXJzZUFycm93KGUpfXNob3VsZFBhcnNlQXJyb3coZSl7cmV0dXJuIHRoaXMubWF0Y2goMTQpfHxzdXBlci5zaG91bGRQYXJzZUFycm93KGUpfXNldEFycm93RnVuY3Rpb25QYXJhbWV0ZXJzKGUscyl7dGhpcy5zdGF0ZS5ub0Fycm93UGFyYW1zQ29udmVyc2lvbkF0LmluZGV4T2YoZS5zdGFydCkhPT0tMT9lLnBhcmFtcz1zOnN1cGVyLnNldEFycm93RnVuY3Rpb25QYXJhbWV0ZXJzKGUscyl9Y2hlY2tQYXJhbXMoZSxzLGkscj0hMCl7aWYoIShpJiZ0aGlzLnN0YXRlLm5vQXJyb3dQYXJhbXNDb252ZXJzaW9uQXQuaW5kZXhPZihlLnN0YXJ0KSE9PS0xKSl7Zm9yKGxldCBuPTA7bjxlLnBhcmFtcy5sZW5ndGg7bisrKXRoaXMuaXNUaGlzUGFyYW0oZS5wYXJhbXNbbl0pJiZuPjAmJnRoaXMucmFpc2UoZy5UaGlzUGFyYW1NdXN0QmVGaXJzdCx7YXQ6ZS5wYXJhbXNbbl19KTtzdXBlci5jaGVja1BhcmFtcyhlLHMsaSxyKX19cGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbihlKXtyZXR1cm4gc3VwZXIucGFyc2VQYXJlbkFuZERpc3Rpbmd1aXNoRXhwcmVzc2lvbihlJiZ0aGlzLnN0YXRlLm5vQXJyb3dBdC5pbmRleE9mKHRoaXMuc3RhdGUuc3RhcnQpPT09LTEpfXBhcnNlU3Vic2NyaXB0cyhlLHMsaSl7aWYoZS50eXBlPT09XCJJZGVudGlmaWVyXCImJmUubmFtZT09PVwiYXN5bmNcIiYmdGhpcy5zdGF0ZS5ub0Fycm93QXQuaW5kZXhPZihzLmluZGV4KSE9PS0xKXt0aGlzLm5leHQoKTtsZXQgcj10aGlzLnN0YXJ0Tm9kZUF0KHMpO3IuY2FsbGVlPWUsci5hcmd1bWVudHM9c3VwZXIucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygxMSwhMSksZT10aGlzLmZpbmlzaE5vZGUocixcIkNhbGxFeHByZXNzaW9uXCIpfWVsc2UgaWYoZS50eXBlPT09XCJJZGVudGlmaWVyXCImJmUubmFtZT09PVwiYXN5bmNcIiYmdGhpcy5tYXRjaCg0Nykpe2xldCByPXRoaXMuc3RhdGUuY2xvbmUoKSxuPXRoaXMudHJ5UGFyc2UoaD0+dGhpcy5wYXJzZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtZXRlcnMocyl8fGgoKSxyKTtpZighbi5lcnJvciYmIW4uYWJvcnRlZClyZXR1cm4gbi5ub2RlO2xldCBvPXRoaXMudHJ5UGFyc2UoKCk9PnN1cGVyLnBhcnNlU3Vic2NyaXB0cyhlLHMsaSkscik7aWYoby5ub2RlJiYhby5lcnJvcilyZXR1cm4gby5ub2RlO2lmKG4ubm9kZSlyZXR1cm4gdGhpcy5zdGF0ZT1uLmZhaWxTdGF0ZSxuLm5vZGU7aWYoby5ub2RlKXJldHVybiB0aGlzLnN0YXRlPW8uZmFpbFN0YXRlLG8ubm9kZTt0aHJvdyBuLmVycm9yfHxvLmVycm9yfXJldHVybiBzdXBlci5wYXJzZVN1YnNjcmlwdHMoZSxzLGkpfXBhcnNlU3Vic2NyaXB0KGUscyxpLHIpe2lmKHRoaXMubWF0Y2goMTgpJiZ0aGlzLmlzTG9va2FoZWFkVG9rZW5fbHQoKSl7aWYoci5vcHRpb25hbENoYWluTWVtYmVyPSEwLGkpcmV0dXJuIHIuc3RvcD0hMCxlO3RoaXMubmV4dCgpO2xldCBuPXRoaXMuc3RhcnROb2RlQXQocyk7cmV0dXJuIG4uY2FsbGVlPWUsbi50eXBlQXJndW1lbnRzPXRoaXMuZmxvd1BhcnNlVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oKSx0aGlzLmV4cGVjdCgxMCksbi5hcmd1bWVudHM9dGhpcy5wYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKDExLCExKSxuLm9wdGlvbmFsPSEwLHRoaXMuZmluaXNoQ2FsbEV4cHJlc3Npb24obiwhMCl9ZWxzZSBpZighaSYmdGhpcy5zaG91bGRQYXJzZVR5cGVzKCkmJnRoaXMubWF0Y2goNDcpKXtsZXQgbj10aGlzLnN0YXJ0Tm9kZUF0KHMpO24uY2FsbGVlPWU7bGV0IG89dGhpcy50cnlQYXJzZSgoKT0+KG4udHlwZUFyZ3VtZW50cz10aGlzLmZsb3dQYXJzZVR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uQ2FsbE9yTmV3KCksdGhpcy5leHBlY3QoMTApLG4uYXJndW1lbnRzPXN1cGVyLnBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMoMTEsITEpLHIub3B0aW9uYWxDaGFpbk1lbWJlciYmKG4ub3B0aW9uYWw9ITEpLHRoaXMuZmluaXNoQ2FsbEV4cHJlc3Npb24obixyLm9wdGlvbmFsQ2hhaW5NZW1iZXIpKSk7aWYoby5ub2RlKXJldHVybiBvLmVycm9yJiYodGhpcy5zdGF0ZT1vLmZhaWxTdGF0ZSksby5ub2RlfXJldHVybiBzdXBlci5wYXJzZVN1YnNjcmlwdChlLHMsaSxyKX1wYXJzZU5ld0NhbGxlZShlKXtzdXBlci5wYXJzZU5ld0NhbGxlZShlKTtsZXQgcz1udWxsO3RoaXMuc2hvdWxkUGFyc2VUeXBlcygpJiZ0aGlzLm1hdGNoKDQ3KSYmKHM9dGhpcy50cnlQYXJzZSgoKT0+dGhpcy5mbG93UGFyc2VUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbkNhbGxPck5ldygpKS5ub2RlKSxlLnR5cGVBcmd1bWVudHM9c31wYXJzZUFzeW5jQXJyb3dXaXRoVHlwZVBhcmFtZXRlcnMoZSl7bGV0IHM9dGhpcy5zdGFydE5vZGVBdChlKTtpZih0aGlzLnBhcnNlRnVuY3Rpb25QYXJhbXMocywhMSksISF0aGlzLnBhcnNlQXJyb3cocykpcmV0dXJuIHN1cGVyLnBhcnNlQXJyb3dFeHByZXNzaW9uKHMsdm9pZCAwLCEwKX1yZWFkVG9rZW5fbXVsdF9tb2R1bG8oZSl7bGV0IHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpO2lmKGU9PT00MiYmcz09PTQ3JiZ0aGlzLnN0YXRlLmhhc0Zsb3dDb21tZW50KXt0aGlzLnN0YXRlLmhhc0Zsb3dDb21tZW50PSExLHRoaXMuc3RhdGUucG9zKz0yLHRoaXMubmV4dFRva2VuKCk7cmV0dXJufXN1cGVyLnJlYWRUb2tlbl9tdWx0X21vZHVsbyhlKX1yZWFkVG9rZW5fcGlwZV9hbXAoZSl7bGV0IHM9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpO2lmKGU9PT0xMjQmJnM9PT0xMjUpe3RoaXMuZmluaXNoT3AoOSwyKTtyZXR1cm59c3VwZXIucmVhZFRva2VuX3BpcGVfYW1wKGUpfXBhcnNlVG9wTGV2ZWwoZSxzKXtsZXQgaT1zdXBlci5wYXJzZVRvcExldmVsKGUscyk7cmV0dXJuIHRoaXMuc3RhdGUuaGFzRmxvd0NvbW1lbnQmJnRoaXMucmFpc2UoZy5VbnRlcm1pbmF0ZWRGbG93Q29tbWVudCx7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpfSksaX1za2lwQmxvY2tDb21tZW50KCl7aWYodGhpcy5oYXNQbHVnaW4oXCJmbG93Q29tbWVudHNcIikmJnRoaXMuc2tpcEZsb3dDb21tZW50KCkpe2lmKHRoaXMuc3RhdGUuaGFzRmxvd0NvbW1lbnQpdGhyb3cgdGhpcy5yYWlzZShnLk5lc3RlZEZsb3dDb21tZW50LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7dGhpcy5oYXNGbG93Q29tbWVudENvbXBsZXRpb24oKTtsZXQgZT10aGlzLnNraXBGbG93Q29tbWVudCgpO2UmJih0aGlzLnN0YXRlLnBvcys9ZSx0aGlzLnN0YXRlLmhhc0Zsb3dDb21tZW50PSEwKTtyZXR1cm59cmV0dXJuIHN1cGVyLnNraXBCbG9ja0NvbW1lbnQodGhpcy5zdGF0ZS5oYXNGbG93Q29tbWVudD9cIiotL1wiOlwiKi9cIil9c2tpcEZsb3dDb21tZW50KCl7bGV0e3BvczplfT10aGlzLnN0YXRlLHM9Mjtmb3IoO1szMiw5XS5pbmNsdWRlcyh0aGlzLmlucHV0LmNoYXJDb2RlQXQoZStzKSk7KXMrKztsZXQgaT10aGlzLmlucHV0LmNoYXJDb2RlQXQocytlKSxyPXRoaXMuaW5wdXQuY2hhckNvZGVBdChzK2UrMSk7cmV0dXJuIGk9PT01OCYmcj09PTU4P3MrMjp0aGlzLmlucHV0LnNsaWNlKHMrZSxzK2UrMTIpPT09XCJmbG93LWluY2x1ZGVcIj9zKzEyOmk9PT01OCYmciE9PTU4P3M6ITF9aGFzRmxvd0NvbW1lbnRDb21wbGV0aW9uKCl7aWYodGhpcy5pbnB1dC5pbmRleE9mKFwiKi9cIix0aGlzLnN0YXRlLnBvcyk9PT0tMSl0aHJvdyB0aGlzLnJhaXNlKHAuVW50ZXJtaW5hdGVkQ29tbWVudCx7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpfSl9Zmxvd0VudW1FcnJvckJvb2xlYW5NZW1iZXJOb3RJbml0aWFsaXplZChlLHtlbnVtTmFtZTpzLG1lbWJlck5hbWU6aX0pe3RoaXMucmFpc2UoZy5FbnVtQm9vbGVhbk1lbWJlck5vdEluaXRpYWxpemVkLHthdDplLG1lbWJlck5hbWU6aSxlbnVtTmFtZTpzfSl9Zmxvd0VudW1FcnJvckludmFsaWRNZW1iZXJJbml0aWFsaXplcihlLHMpe3JldHVybiB0aGlzLnJhaXNlKHMuZXhwbGljaXRUeXBlP3MuZXhwbGljaXRUeXBlPT09XCJzeW1ib2xcIj9nLkVudW1JbnZhbGlkTWVtYmVySW5pdGlhbGl6ZXJTeW1ib2xUeXBlOmcuRW51bUludmFsaWRNZW1iZXJJbml0aWFsaXplclByaW1hcnlUeXBlOmcuRW51bUludmFsaWRNZW1iZXJJbml0aWFsaXplclVua25vd25UeXBlLE9iamVjdC5hc3NpZ24oe2F0OmV9LHMpKX1mbG93RW51bUVycm9yTnVtYmVyTWVtYmVyTm90SW5pdGlhbGl6ZWQoZSx7ZW51bU5hbWU6cyxtZW1iZXJOYW1lOml9KXt0aGlzLnJhaXNlKGcuRW51bU51bWJlck1lbWJlck5vdEluaXRpYWxpemVkLHthdDplLGVudW1OYW1lOnMsbWVtYmVyTmFtZTppfSl9Zmxvd0VudW1FcnJvclN0cmluZ01lbWJlckluY29uc2lzdGVudGx5SW5pdGlhbGl6ZWQoZSx7ZW51bU5hbWU6c30pe3RoaXMucmFpc2UoZy5FbnVtU3RyaW5nTWVtYmVySW5jb25zaXN0ZW50bHlJbml0aWFsaXplZCx7YXQ6ZSxlbnVtTmFtZTpzfSl9Zmxvd0VudW1NZW1iZXJJbml0KCl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYyxzPSgpPT50aGlzLm1hdGNoKDEyKXx8dGhpcy5tYXRjaCg4KTtzd2l0Y2godGhpcy5zdGF0ZS50eXBlKXtjYXNlIDEzMjp7bGV0IGk9dGhpcy5wYXJzZU51bWVyaWNMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUpO3JldHVybiBzKCk/e3R5cGU6XCJudW1iZXJcIixsb2M6aS5sb2Muc3RhcnQsdmFsdWU6aX06e3R5cGU6XCJpbnZhbGlkXCIsbG9jOmV9fWNhc2UgMTMxOntsZXQgaT10aGlzLnBhcnNlU3RyaW5nTGl0ZXJhbCh0aGlzLnN0YXRlLnZhbHVlKTtyZXR1cm4gcygpP3t0eXBlOlwic3RyaW5nXCIsbG9jOmkubG9jLnN0YXJ0LHZhbHVlOml9Ont0eXBlOlwiaW52YWxpZFwiLGxvYzplfX1jYXNlIDg1OmNhc2UgODY6e2xldCBpPXRoaXMucGFyc2VCb29sZWFuTGl0ZXJhbCh0aGlzLm1hdGNoKDg1KSk7cmV0dXJuIHMoKT97dHlwZTpcImJvb2xlYW5cIixsb2M6aS5sb2Muc3RhcnQsdmFsdWU6aX06e3R5cGU6XCJpbnZhbGlkXCIsbG9jOmV9fWRlZmF1bHQ6cmV0dXJue3R5cGU6XCJpbnZhbGlkXCIsbG9jOmV9fX1mbG93RW51bU1lbWJlclJhdygpe2xldCBlPXRoaXMuc3RhdGUuc3RhcnRMb2Mscz10aGlzLnBhcnNlSWRlbnRpZmllcighMCksaT10aGlzLmVhdCgyOSk/dGhpcy5mbG93RW51bU1lbWJlckluaXQoKTp7dHlwZTpcIm5vbmVcIixsb2M6ZX07cmV0dXJue2lkOnMsaW5pdDppfX1mbG93RW51bUNoZWNrRXhwbGljaXRUeXBlTWlzbWF0Y2goZSxzLGkpe2xldHtleHBsaWNpdFR5cGU6cn09cztyIT09bnVsbCYmciE9PWkmJnRoaXMuZmxvd0VudW1FcnJvckludmFsaWRNZW1iZXJJbml0aWFsaXplcihlLHMpfWZsb3dFbnVtTWVtYmVycyh7ZW51bU5hbWU6ZSxleHBsaWNpdFR5cGU6c30pe2xldCBpPW5ldyBTZXQscj17Ym9vbGVhbk1lbWJlcnM6W10sbnVtYmVyTWVtYmVyczpbXSxzdHJpbmdNZW1iZXJzOltdLGRlZmF1bHRlZE1lbWJlcnM6W119LG49ITE7Zm9yKDshdGhpcy5tYXRjaCg4KTspe2lmKHRoaXMuZWF0KDIxKSl7bj0hMDticmVha31sZXQgbz10aGlzLnN0YXJ0Tm9kZSgpLHtpZDpoLGluaXQ6bH09dGhpcy5mbG93RW51bU1lbWJlclJhdygpLGM9aC5uYW1lO2lmKGM9PT1cIlwiKWNvbnRpbnVlOy9eW2Etel0vLnRlc3QoYykmJnRoaXMucmFpc2UoZy5FbnVtSW52YWxpZE1lbWJlck5hbWUse2F0OmgsbWVtYmVyTmFtZTpjLHN1Z2dlc3Rpb246Y1swXS50b1VwcGVyQ2FzZSgpK2Muc2xpY2UoMSksZW51bU5hbWU6ZX0pLGkuaGFzKGMpJiZ0aGlzLnJhaXNlKGcuRW51bUR1cGxpY2F0ZU1lbWJlck5hbWUse2F0OmgsbWVtYmVyTmFtZTpjLGVudW1OYW1lOmV9KSxpLmFkZChjKTtsZXQgdT17ZW51bU5hbWU6ZSxleHBsaWNpdFR5cGU6cyxtZW1iZXJOYW1lOmN9O3N3aXRjaChvLmlkPWgsbC50eXBlKXtjYXNlXCJib29sZWFuXCI6e3RoaXMuZmxvd0VudW1DaGVja0V4cGxpY2l0VHlwZU1pc21hdGNoKGwubG9jLHUsXCJib29sZWFuXCIpLG8uaW5pdD1sLnZhbHVlLHIuYm9vbGVhbk1lbWJlcnMucHVzaCh0aGlzLmZpbmlzaE5vZGUobyxcIkVudW1Cb29sZWFuTWVtYmVyXCIpKTticmVha31jYXNlXCJudW1iZXJcIjp7dGhpcy5mbG93RW51bUNoZWNrRXhwbGljaXRUeXBlTWlzbWF0Y2gobC5sb2MsdSxcIm51bWJlclwiKSxvLmluaXQ9bC52YWx1ZSxyLm51bWJlck1lbWJlcnMucHVzaCh0aGlzLmZpbmlzaE5vZGUobyxcIkVudW1OdW1iZXJNZW1iZXJcIikpO2JyZWFrfWNhc2VcInN0cmluZ1wiOnt0aGlzLmZsb3dFbnVtQ2hlY2tFeHBsaWNpdFR5cGVNaXNtYXRjaChsLmxvYyx1LFwic3RyaW5nXCIpLG8uaW5pdD1sLnZhbHVlLHIuc3RyaW5nTWVtYmVycy5wdXNoKHRoaXMuZmluaXNoTm9kZShvLFwiRW51bVN0cmluZ01lbWJlclwiKSk7YnJlYWt9Y2FzZVwiaW52YWxpZFwiOnRocm93IHRoaXMuZmxvd0VudW1FcnJvckludmFsaWRNZW1iZXJJbml0aWFsaXplcihsLmxvYyx1KTtjYXNlXCJub25lXCI6c3dpdGNoKHMpe2Nhc2VcImJvb2xlYW5cIjp0aGlzLmZsb3dFbnVtRXJyb3JCb29sZWFuTWVtYmVyTm90SW5pdGlhbGl6ZWQobC5sb2MsdSk7YnJlYWs7Y2FzZVwibnVtYmVyXCI6dGhpcy5mbG93RW51bUVycm9yTnVtYmVyTWVtYmVyTm90SW5pdGlhbGl6ZWQobC5sb2MsdSk7YnJlYWs7ZGVmYXVsdDpyLmRlZmF1bHRlZE1lbWJlcnMucHVzaCh0aGlzLmZpbmlzaE5vZGUobyxcIkVudW1EZWZhdWx0ZWRNZW1iZXJcIikpfX10aGlzLm1hdGNoKDgpfHx0aGlzLmV4cGVjdCgxMil9cmV0dXJue21lbWJlcnM6cixoYXNVbmtub3duTWVtYmVyczpufX1mbG93RW51bVN0cmluZ01lbWJlcnMoZSxzLHtlbnVtTmFtZTppfSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBzO2lmKHMubGVuZ3RoPT09MClyZXR1cm4gZTtpZihzLmxlbmd0aD5lLmxlbmd0aCl7Zm9yKGxldCByIG9mIGUpdGhpcy5mbG93RW51bUVycm9yU3RyaW5nTWVtYmVySW5jb25zaXN0ZW50bHlJbml0aWFsaXplZChyLHtlbnVtTmFtZTppfSk7cmV0dXJuIHN9ZWxzZXtmb3IobGV0IHIgb2Ygcyl0aGlzLmZsb3dFbnVtRXJyb3JTdHJpbmdNZW1iZXJJbmNvbnNpc3RlbnRseUluaXRpYWxpemVkKHIse2VudW1OYW1lOml9KTtyZXR1cm4gZX19Zmxvd0VudW1QYXJzZUV4cGxpY2l0VHlwZSh7ZW51bU5hbWU6ZX0pe2lmKCF0aGlzLmVhdENvbnRleHR1YWwoMTAxKSlyZXR1cm4gbnVsbDtpZighUyh0aGlzLnN0YXRlLnR5cGUpKXRocm93IHRoaXMucmFpc2UoZy5FbnVtSW52YWxpZEV4cGxpY2l0VHlwZVVua25vd25TdXBwbGllZCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvYyxlbnVtTmFtZTplfSk7bGV0e3ZhbHVlOnN9PXRoaXMuc3RhdGU7cmV0dXJuIHRoaXMubmV4dCgpLHMhPT1cImJvb2xlYW5cIiYmcyE9PVwibnVtYmVyXCImJnMhPT1cInN0cmluZ1wiJiZzIT09XCJzeW1ib2xcIiYmdGhpcy5yYWlzZShnLkVudW1JbnZhbGlkRXhwbGljaXRUeXBlLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jLGVudW1OYW1lOmUsaW52YWxpZEVudW1UeXBlOnN9KSxzfWZsb3dFbnVtQm9keShlLHMpe2xldCBpPXMubmFtZSxyPXMubG9jLnN0YXJ0LG49dGhpcy5mbG93RW51bVBhcnNlRXhwbGljaXRUeXBlKHtlbnVtTmFtZTppfSk7dGhpcy5leHBlY3QoNSk7bGV0e21lbWJlcnM6byxoYXNVbmtub3duTWVtYmVyczpofT10aGlzLmZsb3dFbnVtTWVtYmVycyh7ZW51bU5hbWU6aSxleHBsaWNpdFR5cGU6bn0pO3N3aXRjaChlLmhhc1Vua25vd25NZW1iZXJzPWgsbil7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBlLmV4cGxpY2l0VHlwZT0hMCxlLm1lbWJlcnM9by5ib29sZWFuTWVtYmVycyx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkVudW1Cb29sZWFuQm9keVwiKTtjYXNlXCJudW1iZXJcIjpyZXR1cm4gZS5leHBsaWNpdFR5cGU9ITAsZS5tZW1iZXJzPW8ubnVtYmVyTWVtYmVycyx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkVudW1OdW1iZXJCb2R5XCIpO2Nhc2VcInN0cmluZ1wiOnJldHVybiBlLmV4cGxpY2l0VHlwZT0hMCxlLm1lbWJlcnM9dGhpcy5mbG93RW51bVN0cmluZ01lbWJlcnMoby5zdHJpbmdNZW1iZXJzLG8uZGVmYXVsdGVkTWVtYmVycyx7ZW51bU5hbWU6aX0pLHRoaXMuZXhwZWN0KDgpLHRoaXMuZmluaXNoTm9kZShlLFwiRW51bVN0cmluZ0JvZHlcIik7Y2FzZVwic3ltYm9sXCI6cmV0dXJuIGUubWVtYmVycz1vLmRlZmF1bHRlZE1lbWJlcnMsdGhpcy5leHBlY3QoOCksdGhpcy5maW5pc2hOb2RlKGUsXCJFbnVtU3ltYm9sQm9keVwiKTtkZWZhdWx0OntsZXQgbD0oKT0+KGUubWVtYmVycz1bXSx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkVudW1TdHJpbmdCb2R5XCIpKTtlLmV4cGxpY2l0VHlwZT0hMTtsZXQgYz1vLmJvb2xlYW5NZW1iZXJzLmxlbmd0aCx1PW8ubnVtYmVyTWVtYmVycy5sZW5ndGgsZj1vLnN0cmluZ01lbWJlcnMubGVuZ3RoLGQ9by5kZWZhdWx0ZWRNZW1iZXJzLmxlbmd0aDtpZighYyYmIXUmJiFmJiYhZClyZXR1cm4gbCgpO2lmKCFjJiYhdSlyZXR1cm4gZS5tZW1iZXJzPXRoaXMuZmxvd0VudW1TdHJpbmdNZW1iZXJzKG8uc3RyaW5nTWVtYmVycyxvLmRlZmF1bHRlZE1lbWJlcnMse2VudW1OYW1lOml9KSx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkVudW1TdHJpbmdCb2R5XCIpO2lmKCF1JiYhZiYmYz49ZCl7Zm9yKGxldCB4IG9mIG8uZGVmYXVsdGVkTWVtYmVycyl0aGlzLmZsb3dFbnVtRXJyb3JCb29sZWFuTWVtYmVyTm90SW5pdGlhbGl6ZWQoeC5sb2Muc3RhcnQse2VudW1OYW1lOmksbWVtYmVyTmFtZTp4LmlkLm5hbWV9KTtyZXR1cm4gZS5tZW1iZXJzPW8uYm9vbGVhbk1lbWJlcnMsdGhpcy5leHBlY3QoOCksdGhpcy5maW5pc2hOb2RlKGUsXCJFbnVtQm9vbGVhbkJvZHlcIil9ZWxzZSBpZighYyYmIWYmJnU+PWQpe2ZvcihsZXQgeCBvZiBvLmRlZmF1bHRlZE1lbWJlcnMpdGhpcy5mbG93RW51bUVycm9yTnVtYmVyTWVtYmVyTm90SW5pdGlhbGl6ZWQoeC5sb2Muc3RhcnQse2VudW1OYW1lOmksbWVtYmVyTmFtZTp4LmlkLm5hbWV9KTtyZXR1cm4gZS5tZW1iZXJzPW8ubnVtYmVyTWVtYmVycyx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkVudW1OdW1iZXJCb2R5XCIpfWVsc2UgcmV0dXJuIHRoaXMucmFpc2UoZy5FbnVtSW5jb25zaXN0ZW50TWVtYmVyVmFsdWVzLHthdDpyLGVudW1OYW1lOml9KSxsKCl9fX1mbG93UGFyc2VFbnVtRGVjbGFyYXRpb24oZSl7bGV0IHM9dGhpcy5wYXJzZUlkZW50aWZpZXIoKTtyZXR1cm4gZS5pZD1zLGUuYm9keT10aGlzLmZsb3dFbnVtQm9keSh0aGlzLnN0YXJ0Tm9kZSgpLHMpLHRoaXMuZmluaXNoTm9kZShlLFwiRW51bURlY2xhcmF0aW9uXCIpfWlzTG9va2FoZWFkVG9rZW5fbHQoKXtsZXQgZT10aGlzLm5leHRUb2tlblN0YXJ0KCk7aWYodGhpcy5pbnB1dC5jaGFyQ29kZUF0KGUpPT09NjApe2xldCBzPXRoaXMuaW5wdXQuY2hhckNvZGVBdChlKzEpO3JldHVybiBzIT09NjAmJnMhPT02MX1yZXR1cm4hMX1tYXliZVVud3JhcFR5cGVDYXN0RXhwcmVzc2lvbihlKXtyZXR1cm4gZS50eXBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cIj9lLmV4cHJlc3Npb246ZX19LFc9JGBqc3hgKHtBdHRyaWJ1dGVJc0VtcHR5OlwiSlNYIGF0dHJpYnV0ZXMgbXVzdCBvbmx5IGJlIGFzc2lnbmVkIGEgbm9uLWVtcHR5IGV4cHJlc3Npb24uXCIsTWlzc2luZ0Nsb3NpbmdUYWdFbGVtZW50Oih7b3BlbmluZ1RhZ05hbWU6YX0pPT5gRXhwZWN0ZWQgY29ycmVzcG9uZGluZyBKU1ggY2xvc2luZyB0YWcgZm9yIDwke2F9Pi5gLE1pc3NpbmdDbG9zaW5nVGFnRnJhZ21lbnQ6XCJFeHBlY3RlZCBjb3JyZXNwb25kaW5nIEpTWCBjbG9zaW5nIHRhZyBmb3IgPD4uXCIsVW5leHBlY3RlZFNlcXVlbmNlRXhwcmVzc2lvbjpcIlNlcXVlbmNlIGV4cHJlc3Npb25zIGNhbm5vdCBiZSBkaXJlY3RseSBuZXN0ZWQgaW5zaWRlIEpTWC4gRGlkIHlvdSBtZWFuIHRvIHdyYXAgaXQgaW4gcGFyZW50aGVzZXMgKC4uLik/XCIsVW5leHBlY3RlZFRva2VuOih7dW5leHBlY3RlZDphLEhUTUxFbnRpdHk6dH0pPT5gVW5leHBlY3RlZCB0b2tlbiBcXGAke2F9XFxgLiBEaWQgeW91IG1lYW4gXFxgJHt0fVxcYCBvciBcXGB7JyR7YX0nfVxcYD9gLFVuc3VwcG9ydGVkSnN4VmFsdWU6XCJKU1ggdmFsdWUgc2hvdWxkIGJlIGVpdGhlciBhbiBleHByZXNzaW9uIG9yIGEgcXVvdGVkIEpTWCB0ZXh0LlwiLFVudGVybWluYXRlZEpzeENvbnRlbnQ6XCJVbnRlcm1pbmF0ZWQgSlNYIGNvbnRlbnRzLlwiLFVud3JhcHBlZEFkamFjZW50SlNYRWxlbWVudHM6XCJBZGphY2VudCBKU1ggZWxlbWVudHMgbXVzdCBiZSB3cmFwcGVkIGluIGFuIGVuY2xvc2luZyB0YWcuIERpZCB5b3Ugd2FudCBhIEpTWCBmcmFnbWVudCA8Pi4uLjwvPj9cIn0pO2Z1bmN0aW9uIEsoYSl7cmV0dXJuIGE/YS50eXBlPT09XCJKU1hPcGVuaW5nRnJhZ21lbnRcInx8YS50eXBlPT09XCJKU1hDbG9zaW5nRnJhZ21lbnRcIjohMX1mdW5jdGlvbiBaKGEpe2lmKGEudHlwZT09PVwiSlNYSWRlbnRpZmllclwiKXJldHVybiBhLm5hbWU7aWYoYS50eXBlPT09XCJKU1hOYW1lc3BhY2VkTmFtZVwiKXJldHVybiBhLm5hbWVzcGFjZS5uYW1lK1wiOlwiK2EubmFtZS5uYW1lO2lmKGEudHlwZT09PVwiSlNYTWVtYmVyRXhwcmVzc2lvblwiKXJldHVybiBaKGEub2JqZWN0KStcIi5cIitaKGEucHJvcGVydHkpO3Rocm93IG5ldyBFcnJvcihcIk5vZGUgaGFkIHVuZXhwZWN0ZWQgdHlwZTogXCIrYS50eXBlKX12YXIgaXI9YT0+Y2xhc3MgZXh0ZW5kcyBhe2pzeFJlYWRUb2tlbigpe2xldCBlPVwiXCIscz10aGlzLnN0YXRlLnBvcztmb3IoOzspe2lmKHRoaXMuc3RhdGUucG9zPj10aGlzLmxlbmd0aCl0aHJvdyB0aGlzLnJhaXNlKFcuVW50ZXJtaW5hdGVkSnN4Q29udGVudCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pO2xldCBpPXRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcyk7c3dpdGNoKGkpe2Nhc2UgNjA6Y2FzZSAxMjM6aWYodGhpcy5zdGF0ZS5wb3M9PT10aGlzLnN0YXRlLnN0YXJ0KXtpPT09NjAmJnRoaXMuc3RhdGUuY2FuU3RhcnRKU1hFbGVtZW50PygrK3RoaXMuc3RhdGUucG9zLHRoaXMuZmluaXNoVG9rZW4oMTQwKSk6c3VwZXIuZ2V0VG9rZW5Gcm9tQ29kZShpKTtyZXR1cm59ZSs9dGhpcy5pbnB1dC5zbGljZShzLHRoaXMuc3RhdGUucG9zKSx0aGlzLmZpbmlzaFRva2VuKDEzOSxlKTtyZXR1cm47Y2FzZSAzODplKz10aGlzLmlucHV0LnNsaWNlKHMsdGhpcy5zdGF0ZS5wb3MpLGUrPXRoaXMuanN4UmVhZEVudGl0eSgpLHM9dGhpcy5zdGF0ZS5wb3M7YnJlYWs7Y2FzZSA2MjpjYXNlIDEyNTpkZWZhdWx0OnhlKGkpPyhlKz10aGlzLmlucHV0LnNsaWNlKHMsdGhpcy5zdGF0ZS5wb3MpLGUrPXRoaXMuanN4UmVhZE5ld0xpbmUoITApLHM9dGhpcy5zdGF0ZS5wb3MpOisrdGhpcy5zdGF0ZS5wb3N9fX1qc3hSZWFkTmV3TGluZShlKXtsZXQgcz10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MpLGk7cmV0dXJuKyt0aGlzLnN0YXRlLnBvcyxzPT09MTMmJnRoaXMuaW5wdXQuY2hhckNvZGVBdCh0aGlzLnN0YXRlLnBvcyk9PT0xMD8oKyt0aGlzLnN0YXRlLnBvcyxpPWU/YFxuYDpgXFxyXG5gKTppPVN0cmluZy5mcm9tQ2hhckNvZGUocyksKyt0aGlzLnN0YXRlLmN1ckxpbmUsdGhpcy5zdGF0ZS5saW5lU3RhcnQ9dGhpcy5zdGF0ZS5wb3MsaX1qc3hSZWFkU3RyaW5nKGUpe2xldCBzPVwiXCIsaT0rK3RoaXMuc3RhdGUucG9zO2Zvcig7Oyl7aWYodGhpcy5zdGF0ZS5wb3M+PXRoaXMubGVuZ3RoKXRocm93IHRoaXMucmFpc2UocC5VbnRlcm1pbmF0ZWRTdHJpbmcse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtsZXQgcj10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5zdGF0ZS5wb3MpO2lmKHI9PT1lKWJyZWFrO3I9PT0zOD8ocys9dGhpcy5pbnB1dC5zbGljZShpLHRoaXMuc3RhdGUucG9zKSxzKz10aGlzLmpzeFJlYWRFbnRpdHkoKSxpPXRoaXMuc3RhdGUucG9zKTp4ZShyKT8ocys9dGhpcy5pbnB1dC5zbGljZShpLHRoaXMuc3RhdGUucG9zKSxzKz10aGlzLmpzeFJlYWROZXdMaW5lKCExKSxpPXRoaXMuc3RhdGUucG9zKTorK3RoaXMuc3RhdGUucG9zfXMrPXRoaXMuaW5wdXQuc2xpY2UoaSx0aGlzLnN0YXRlLnBvcysrKSx0aGlzLmZpbmlzaFRva2VuKDEzMSxzKX1qc3hSZWFkRW50aXR5KCl7bGV0IGU9Kyt0aGlzLnN0YXRlLnBvcztpZih0aGlzLmNvZGVQb2ludEF0UG9zKHRoaXMuc3RhdGUucG9zKT09PTM1KXsrK3RoaXMuc3RhdGUucG9zO2xldCBzPTEwO3RoaXMuY29kZVBvaW50QXRQb3ModGhpcy5zdGF0ZS5wb3MpPT09MTIwJiYocz0xNiwrK3RoaXMuc3RhdGUucG9zKTtsZXQgaT10aGlzLnJlYWRJbnQocyx2b2lkIDAsITEsXCJiYWlsXCIpO2lmKGkhPT1udWxsJiZ0aGlzLmNvZGVQb2ludEF0UG9zKHRoaXMuc3RhdGUucG9zKT09PTU5KXJldHVybisrdGhpcy5zdGF0ZS5wb3MsU3RyaW5nLmZyb21Db2RlUG9pbnQoaSl9ZWxzZXtsZXQgcz0wLGk9ITE7Zm9yKDtzKys8MTAmJnRoaXMuc3RhdGUucG9zPHRoaXMubGVuZ3RoJiYhKGk9dGhpcy5jb2RlUG9pbnRBdFBvcyh0aGlzLnN0YXRlLnBvcyk9PTU5KTspKyt0aGlzLnN0YXRlLnBvcztpZihpKXtsZXQgcj10aGlzLmlucHV0LnNsaWNlKGUsdGhpcy5zdGF0ZS5wb3MpLG49dm9pZCAwO2lmKCsrdGhpcy5zdGF0ZS5wb3MsbilyZXR1cm4gbn19cmV0dXJuIHRoaXMuc3RhdGUucG9zPWUsXCImXCJ9anN4UmVhZFdvcmQoKXtsZXQgZSxzPXRoaXMuc3RhdGUucG9zO2RvIGU9dGhpcy5pbnB1dC5jaGFyQ29kZUF0KCsrdGhpcy5zdGF0ZS5wb3MpO3doaWxlKGVlKGUpfHxlPT09NDUpO3RoaXMuZmluaXNoVG9rZW4oMTM4LHRoaXMuaW5wdXQuc2xpY2Uocyx0aGlzLnN0YXRlLnBvcykpfWpzeFBhcnNlSWRlbnRpZmllcigpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubWF0Y2goMTM4KT9lLm5hbWU9dGhpcy5zdGF0ZS52YWx1ZTpDdCh0aGlzLnN0YXRlLnR5cGUpP2UubmFtZT1xKHRoaXMuc3RhdGUudHlwZSk6dGhpcy51bmV4cGVjdGVkKCksdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKGUsXCJKU1hJZGVudGlmaWVyXCIpfWpzeFBhcnNlTmFtZXNwYWNlZE5hbWUoKXtsZXQgZT10aGlzLnN0YXRlLnN0YXJ0TG9jLHM9dGhpcy5qc3hQYXJzZUlkZW50aWZpZXIoKTtpZighdGhpcy5lYXQoMTQpKXJldHVybiBzO2xldCBpPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIGkubmFtZXNwYWNlPXMsaS5uYW1lPXRoaXMuanN4UGFyc2VJZGVudGlmaWVyKCksdGhpcy5maW5pc2hOb2RlKGksXCJKU1hOYW1lc3BhY2VkTmFtZVwiKX1qc3hQYXJzZUVsZW1lbnROYW1lKCl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYyxzPXRoaXMuanN4UGFyc2VOYW1lc3BhY2VkTmFtZSgpO2lmKHMudHlwZT09PVwiSlNYTmFtZXNwYWNlZE5hbWVcIilyZXR1cm4gcztmb3IoO3RoaXMuZWF0KDE2KTspe2xldCBpPXRoaXMuc3RhcnROb2RlQXQoZSk7aS5vYmplY3Q9cyxpLnByb3BlcnR5PXRoaXMuanN4UGFyc2VJZGVudGlmaWVyKCkscz10aGlzLmZpbmlzaE5vZGUoaSxcIkpTWE1lbWJlckV4cHJlc3Npb25cIil9cmV0dXJuIHN9anN4UGFyc2VBdHRyaWJ1dGVWYWx1ZSgpe2xldCBlO3N3aXRjaCh0aGlzLnN0YXRlLnR5cGUpe2Nhc2UgNTpyZXR1cm4gZT10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMuc2V0Q29udGV4dCh3LmJyYWNlKSx0aGlzLm5leHQoKSxlPXRoaXMuanN4UGFyc2VFeHByZXNzaW9uQ29udGFpbmVyKGUsdy5qX29UYWcpLGUuZXhwcmVzc2lvbi50eXBlPT09XCJKU1hFbXB0eUV4cHJlc3Npb25cIiYmdGhpcy5yYWlzZShXLkF0dHJpYnV0ZUlzRW1wdHkse2F0OmV9KSxlO2Nhc2UgMTQwOmNhc2UgMTMxOnJldHVybiB0aGlzLnBhcnNlRXhwckF0b20oKTtkZWZhdWx0OnRocm93IHRoaXMucmFpc2UoVy5VbnN1cHBvcnRlZEpzeFZhbHVlLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSl9fWpzeFBhcnNlRW1wdHlFeHByZXNzaW9uKCl7bGV0IGU9dGhpcy5zdGFydE5vZGVBdCh0aGlzLnN0YXRlLmxhc3RUb2tFbmRMb2MpO3JldHVybiB0aGlzLmZpbmlzaE5vZGVBdChlLFwiSlNYRW1wdHlFeHByZXNzaW9uXCIsdGhpcy5zdGF0ZS5zdGFydExvYyl9anN4UGFyc2VTcHJlYWRDaGlsZChlKXtyZXR1cm4gdGhpcy5uZXh0KCksZS5leHByZXNzaW9uPXRoaXMucGFyc2VFeHByZXNzaW9uKCksdGhpcy5zZXRDb250ZXh0KHcual9leHByKSx0aGlzLnN0YXRlLmNhblN0YXJ0SlNYRWxlbWVudD0hMCx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkpTWFNwcmVhZENoaWxkXCIpfWpzeFBhcnNlRXhwcmVzc2lvbkNvbnRhaW5lcihlLHMpe2lmKHRoaXMubWF0Y2goOCkpZS5leHByZXNzaW9uPXRoaXMuanN4UGFyc2VFbXB0eUV4cHJlc3Npb24oKTtlbHNle2xldCBpPXRoaXMucGFyc2VFeHByZXNzaW9uKCk7ZS5leHByZXNzaW9uPWl9cmV0dXJuIHRoaXMuc2V0Q29udGV4dChzKSx0aGlzLnN0YXRlLmNhblN0YXJ0SlNYRWxlbWVudD0hMCx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIkpTWEV4cHJlc3Npb25Db250YWluZXJcIil9anN4UGFyc2VBdHRyaWJ1dGUoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm1hdGNoKDUpPyh0aGlzLnNldENvbnRleHQody5icmFjZSksdGhpcy5uZXh0KCksdGhpcy5leHBlY3QoMjEpLGUuYXJndW1lbnQ9dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpLHRoaXMuc2V0Q29udGV4dCh3Lmpfb1RhZyksdGhpcy5zdGF0ZS5jYW5TdGFydEpTWEVsZW1lbnQ9ITAsdGhpcy5leHBlY3QoOCksdGhpcy5maW5pc2hOb2RlKGUsXCJKU1hTcHJlYWRBdHRyaWJ1dGVcIikpOihlLm5hbWU9dGhpcy5qc3hQYXJzZU5hbWVzcGFjZWROYW1lKCksZS52YWx1ZT10aGlzLmVhdCgyOSk/dGhpcy5qc3hQYXJzZUF0dHJpYnV0ZVZhbHVlKCk6bnVsbCx0aGlzLmZpbmlzaE5vZGUoZSxcIkpTWEF0dHJpYnV0ZVwiKSl9anN4UGFyc2VPcGVuaW5nRWxlbWVudEF0KGUpe2xldCBzPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIHRoaXMuZWF0KDE0MSk/dGhpcy5maW5pc2hOb2RlKHMsXCJKU1hPcGVuaW5nRnJhZ21lbnRcIik6KHMubmFtZT10aGlzLmpzeFBhcnNlRWxlbWVudE5hbWUoKSx0aGlzLmpzeFBhcnNlT3BlbmluZ0VsZW1lbnRBZnRlck5hbWUocykpfWpzeFBhcnNlT3BlbmluZ0VsZW1lbnRBZnRlck5hbWUoZSl7bGV0IHM9W107Zm9yKDshdGhpcy5tYXRjaCg1NikmJiF0aGlzLm1hdGNoKDE0MSk7KXMucHVzaCh0aGlzLmpzeFBhcnNlQXR0cmlidXRlKCkpO3JldHVybiBlLmF0dHJpYnV0ZXM9cyxlLnNlbGZDbG9zaW5nPXRoaXMuZWF0KDU2KSx0aGlzLmV4cGVjdCgxNDEpLHRoaXMuZmluaXNoTm9kZShlLFwiSlNYT3BlbmluZ0VsZW1lbnRcIil9anN4UGFyc2VDbG9zaW5nRWxlbWVudEF0KGUpe2xldCBzPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIHRoaXMuZWF0KDE0MSk/dGhpcy5maW5pc2hOb2RlKHMsXCJKU1hDbG9zaW5nRnJhZ21lbnRcIik6KHMubmFtZT10aGlzLmpzeFBhcnNlRWxlbWVudE5hbWUoKSx0aGlzLmV4cGVjdCgxNDEpLHRoaXMuZmluaXNoTm9kZShzLFwiSlNYQ2xvc2luZ0VsZW1lbnRcIikpfWpzeFBhcnNlRWxlbWVudEF0KGUpe2xldCBzPXRoaXMuc3RhcnROb2RlQXQoZSksaT1bXSxyPXRoaXMuanN4UGFyc2VPcGVuaW5nRWxlbWVudEF0KGUpLG49bnVsbDtpZighci5zZWxmQ2xvc2luZyl7ZTpmb3IoOzspc3dpdGNoKHRoaXMuc3RhdGUudHlwZSl7Y2FzZSAxNDA6aWYoZT10aGlzLnN0YXRlLnN0YXJ0TG9jLHRoaXMubmV4dCgpLHRoaXMuZWF0KDU2KSl7bj10aGlzLmpzeFBhcnNlQ2xvc2luZ0VsZW1lbnRBdChlKTticmVhayBlfWkucHVzaCh0aGlzLmpzeFBhcnNlRWxlbWVudEF0KGUpKTticmVhaztjYXNlIDEzOTppLnB1c2godGhpcy5wYXJzZUV4cHJBdG9tKCkpO2JyZWFrO2Nhc2UgNTp7bGV0IG89dGhpcy5zdGFydE5vZGUoKTt0aGlzLnNldENvbnRleHQody5icmFjZSksdGhpcy5uZXh0KCksdGhpcy5tYXRjaCgyMSk/aS5wdXNoKHRoaXMuanN4UGFyc2VTcHJlYWRDaGlsZChvKSk6aS5wdXNoKHRoaXMuanN4UGFyc2VFeHByZXNzaW9uQ29udGFpbmVyKG8sdy5qX2V4cHIpKTticmVha31kZWZhdWx0OnRoaXMudW5leHBlY3RlZCgpfUsocikmJiFLKG4pJiZuIT09bnVsbD90aGlzLnJhaXNlKFcuTWlzc2luZ0Nsb3NpbmdUYWdGcmFnbWVudCx7YXQ6bn0pOiFLKHIpJiZLKG4pP3RoaXMucmFpc2UoVy5NaXNzaW5nQ2xvc2luZ1RhZ0VsZW1lbnQse2F0Om4sb3BlbmluZ1RhZ05hbWU6WihyLm5hbWUpfSk6IUsocikmJiFLKG4pJiZaKG4ubmFtZSkhPT1aKHIubmFtZSkmJnRoaXMucmFpc2UoVy5NaXNzaW5nQ2xvc2luZ1RhZ0VsZW1lbnQse2F0Om4sb3BlbmluZ1RhZ05hbWU6WihyLm5hbWUpfSl9aWYoSyhyKT8ocy5vcGVuaW5nRnJhZ21lbnQ9cixzLmNsb3NpbmdGcmFnbWVudD1uKToocy5vcGVuaW5nRWxlbWVudD1yLHMuY2xvc2luZ0VsZW1lbnQ9bikscy5jaGlsZHJlbj1pLHRoaXMubWF0Y2goNDcpKXRocm93IHRoaXMucmFpc2UoVy5VbndyYXBwZWRBZGphY2VudEpTWEVsZW1lbnRzLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7cmV0dXJuIEsocik/dGhpcy5maW5pc2hOb2RlKHMsXCJKU1hGcmFnbWVudFwiKTp0aGlzLmZpbmlzaE5vZGUocyxcIkpTWEVsZW1lbnRcIil9anN4UGFyc2VFbGVtZW50KCl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYztyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5qc3hQYXJzZUVsZW1lbnRBdChlKX1zZXRDb250ZXh0KGUpe2xldHtjb250ZXh0OnN9PXRoaXMuc3RhdGU7c1tzLmxlbmd0aC0xXT1lfXBhcnNlRXhwckF0b20oZSl7cmV0dXJuIHRoaXMubWF0Y2goMTM5KT90aGlzLnBhcnNlTGl0ZXJhbCh0aGlzLnN0YXRlLnZhbHVlLFwiSlNYVGV4dFwiKTp0aGlzLm1hdGNoKDE0MCk/dGhpcy5qc3hQYXJzZUVsZW1lbnQoKTp0aGlzLm1hdGNoKDQ3KSYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKSE9PTMzPyh0aGlzLnJlcGxhY2VUb2tlbigxNDApLHRoaXMuanN4UGFyc2VFbGVtZW50KCkpOnN1cGVyLnBhcnNlRXhwckF0b20oZSl9c2tpcFNwYWNlKCl7dGhpcy5jdXJDb250ZXh0KCkucHJlc2VydmVTcGFjZXx8c3VwZXIuc2tpcFNwYWNlKCl9Z2V0VG9rZW5Gcm9tQ29kZShlKXtsZXQgcz10aGlzLmN1ckNvbnRleHQoKTtpZihzPT09dy5qX2V4cHIpe3RoaXMuanN4UmVhZFRva2VuKCk7cmV0dXJufWlmKHM9PT13Lmpfb1RhZ3x8cz09PXcual9jVGFnKXtpZihqKGUpKXt0aGlzLmpzeFJlYWRXb3JkKCk7cmV0dXJufWlmKGU9PT02Mil7Kyt0aGlzLnN0YXRlLnBvcyx0aGlzLmZpbmlzaFRva2VuKDE0MSk7cmV0dXJufWlmKChlPT09MzR8fGU9PT0zOSkmJnM9PT13Lmpfb1RhZyl7dGhpcy5qc3hSZWFkU3RyaW5nKGUpO3JldHVybn19aWYoZT09PTYwJiZ0aGlzLnN0YXRlLmNhblN0YXJ0SlNYRWxlbWVudCYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpIT09MzMpeysrdGhpcy5zdGF0ZS5wb3MsdGhpcy5maW5pc2hUb2tlbigxNDApO3JldHVybn1zdXBlci5nZXRUb2tlbkZyb21Db2RlKGUpfXVwZGF0ZUNvbnRleHQoZSl7bGV0e2NvbnRleHQ6cyx0eXBlOml9PXRoaXMuc3RhdGU7aWYoaT09PTU2JiZlPT09MTQwKXMuc3BsaWNlKC0yLDIsdy5qX2NUYWcpLHRoaXMuc3RhdGUuY2FuU3RhcnRKU1hFbGVtZW50PSExO2Vsc2UgaWYoaT09PTE0MClzLnB1c2gody5qX29UYWcpO2Vsc2UgaWYoaT09PTE0MSl7bGV0IHI9c1tzLmxlbmd0aC0xXTtyPT09dy5qX29UYWcmJmU9PT01Nnx8cj09PXcual9jVGFnPyhzLnBvcCgpLHRoaXMuc3RhdGUuY2FuU3RhcnRKU1hFbGVtZW50PXNbcy5sZW5ndGgtMV09PT13LmpfZXhwcik6KHRoaXMuc2V0Q29udGV4dCh3LmpfZXhwciksdGhpcy5zdGF0ZS5jYW5TdGFydEpTWEVsZW1lbnQ9ITApfWVsc2UgdGhpcy5zdGF0ZS5jYW5TdGFydEpTWEVsZW1lbnQ9Z2koaSl9fSxmdD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKC4uLnQpe3N1cGVyKC4uLnQpLHRoaXMudHlwZXM9bmV3IFNldCx0aGlzLmVudW1zPW5ldyBTZXQsdGhpcy5jb25zdEVudW1zPW5ldyBTZXQsdGhpcy5jbGFzc2VzPW5ldyBTZXQsdGhpcy5leHBvcnRPbmx5QmluZGluZ3M9bmV3IFNldH19LG10PWNsYXNzIGV4dGVuZHMgZ2V7Y29uc3RydWN0b3IoLi4udCl7c3VwZXIoLi4udCksdGhpcy5pbXBvcnRzU3RhY2s9W119Y3JlYXRlU2NvcGUodCl7cmV0dXJuIHRoaXMuaW1wb3J0c1N0YWNrLnB1c2gobmV3IFNldCksbmV3IGZ0KHQpfWVudGVyKHQpe3Q9PTI1NiYmdGhpcy5pbXBvcnRzU3RhY2sucHVzaChuZXcgU2V0KSxzdXBlci5lbnRlcih0KX1leGl0KCl7bGV0IHQ9c3VwZXIuZXhpdCgpO3JldHVybiB0PT0yNTYmJnRoaXMuaW1wb3J0c1N0YWNrLnBvcCgpLHR9aGFzSW1wb3J0KHQsZSl7bGV0IHM9dGhpcy5pbXBvcnRzU3RhY2subGVuZ3RoO2lmKHRoaXMuaW1wb3J0c1N0YWNrW3MtMV0uaGFzKHQpKXJldHVybiEwO2lmKCFlJiZzPjEpe2ZvcihsZXQgaT0wO2k8cy0xO2krKylpZih0aGlzLmltcG9ydHNTdGFja1tpXS5oYXModCkpcmV0dXJuITB9cmV0dXJuITF9ZGVjbGFyZU5hbWUodCxlLHMpe2lmKGUmNDA5Nil7dGhpcy5oYXNJbXBvcnQodCwhMCkmJnRoaXMucGFyc2VyLnJhaXNlKHAuVmFyUmVkZWNsYXJhdGlvbix7YXQ6cyxpZGVudGlmaWVyTmFtZTp0fSksdGhpcy5pbXBvcnRzU3RhY2tbdGhpcy5pbXBvcnRzU3RhY2subGVuZ3RoLTFdLmFkZCh0KTtyZXR1cm59bGV0IGk9dGhpcy5jdXJyZW50U2NvcGUoKTtpZihlJjEwMjQpe3RoaXMubWF5YmVFeHBvcnREZWZpbmVkKGksdCksaS5leHBvcnRPbmx5QmluZGluZ3MuYWRkKHQpO3JldHVybn1zdXBlci5kZWNsYXJlTmFtZSh0LGUscyksZSYyJiYoZSYxfHwodGhpcy5jaGVja1JlZGVjbGFyYXRpb25JblNjb3BlKGksdCxlLHMpLHRoaXMubWF5YmVFeHBvcnREZWZpbmVkKGksdCkpLGkudHlwZXMuYWRkKHQpKSxlJjI1NiYmaS5lbnVtcy5hZGQodCksZSY1MTImJmkuY29uc3RFbnVtcy5hZGQodCksZSYxMjgmJmkuY2xhc3Nlcy5hZGQodCl9aXNSZWRlY2xhcmVkSW5TY29wZSh0LGUscyl7aWYodC5lbnVtcy5oYXMoZSkpe2lmKHMmMjU2KXtsZXQgaT0hIShzJjUxMikscj10LmNvbnN0RW51bXMuaGFzKGUpO3JldHVybiBpIT09cn1yZXR1cm4hMH1yZXR1cm4gcyYxMjgmJnQuY2xhc3Nlcy5oYXMoZSk/dC5sZXhpY2FsLmhhcyhlKT8hIShzJjEpOiExOnMmMiYmdC50eXBlcy5oYXMoZSk/ITA6c3VwZXIuaXNSZWRlY2xhcmVkSW5TY29wZSh0LGUscyl9Y2hlY2tMb2NhbEV4cG9ydCh0KXtsZXR7bmFtZTplfT10O2lmKHRoaXMuaGFzSW1wb3J0KGUpKXJldHVybjtsZXQgcz10aGlzLnNjb3BlU3RhY2subGVuZ3RoO2ZvcihsZXQgaT1zLTE7aT49MDtpLS0pe2xldCByPXRoaXMuc2NvcGVTdGFja1tpXTtpZihyLnR5cGVzLmhhcyhlKXx8ci5leHBvcnRPbmx5QmluZGluZ3MuaGFzKGUpKXJldHVybn1zdXBlci5jaGVja0xvY2FsRXhwb3J0KHQpfX0scnI9KGEsdCk9Pk9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsdCkmJmFbdF0scHM9YT0+YS50eXBlPT09XCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiP3BzKGEuZXhwcmVzc2lvbik6YSx5dD1jbGFzcyBleHRlbmRzIGR0e3RvQXNzaWduYWJsZSh0LGU9ITEpe3ZhciBzLGk7bGV0IHI7c3dpdGNoKCh0LnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCJ8fChzPXQuZXh0cmEpIT1udWxsJiZzLnBhcmVudGhlc2l6ZWQpJiYocj1wcyh0KSxlP3IudHlwZT09PVwiSWRlbnRpZmllclwiP3RoaXMuZXhwcmVzc2lvblNjb3BlLnJlY29yZEFycm93UGFyYW1ldGVyQmluZGluZ0Vycm9yKHAuSW52YWxpZFBhcmVudGhlc2l6ZWRBc3NpZ25tZW50LHthdDp0fSk6ci50eXBlIT09XCJNZW1iZXJFeHByZXNzaW9uXCImJnRoaXMucmFpc2UocC5JbnZhbGlkUGFyZW50aGVzaXplZEFzc2lnbm1lbnQse2F0OnR9KTp0aGlzLnJhaXNlKHAuSW52YWxpZFBhcmVudGhlc2l6ZWRBc3NpZ25tZW50LHthdDp0fSkpLHQudHlwZSl7Y2FzZVwiSWRlbnRpZmllclwiOmNhc2VcIk9iamVjdFBhdHRlcm5cIjpjYXNlXCJBcnJheVBhdHRlcm5cIjpjYXNlXCJBc3NpZ25tZW50UGF0dGVyblwiOmNhc2VcIlJlc3RFbGVtZW50XCI6YnJlYWs7Y2FzZVwiT2JqZWN0RXhwcmVzc2lvblwiOnQudHlwZT1cIk9iamVjdFBhdHRlcm5cIjtmb3IobGV0IG89MCxoPXQucHJvcGVydGllcy5sZW5ndGgsbD1oLTE7bzxoO28rKyl7dmFyIG47bGV0IGM9dC5wcm9wZXJ0aWVzW29dLHU9bz09PWw7dGhpcy50b0Fzc2lnbmFibGVPYmplY3RFeHByZXNzaW9uUHJvcChjLHUsZSksdSYmYy50eXBlPT09XCJSZXN0RWxlbWVudFwiJiYobj10LmV4dHJhKSE9bnVsbCYmbi50cmFpbGluZ0NvbW1hTG9jJiZ0aGlzLnJhaXNlKHAuUmVzdFRyYWlsaW5nQ29tbWEse2F0OnQuZXh0cmEudHJhaWxpbmdDb21tYUxvY30pfWJyZWFrO2Nhc2VcIk9iamVjdFByb3BlcnR5XCI6e2xldHtrZXk6byx2YWx1ZTpofT10O3RoaXMuaXNQcml2YXRlTmFtZShvKSYmdGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHRoaXMuZ2V0UHJpdmF0ZU5hbWVTVihvKSxvLmxvYy5zdGFydCksdGhpcy50b0Fzc2lnbmFibGUoaCxlKTticmVha31jYXNlXCJTcHJlYWRFbGVtZW50XCI6dGhyb3cgbmV3IEVycm9yKFwiSW50ZXJuYWwgQGJhYmVsL3BhcnNlciBlcnJvciAodGhpcyBpcyBhIGJ1ZywgcGxlYXNlIHJlcG9ydCBpdCkuIFNwcmVhZEVsZW1lbnQgc2hvdWxkIGJlIGNvbnZlcnRlZCBieSAudG9Bc3NpZ25hYmxlJ3MgY2FsbGVyLlwiKTtjYXNlXCJBcnJheUV4cHJlc3Npb25cIjp0LnR5cGU9XCJBcnJheVBhdHRlcm5cIix0aGlzLnRvQXNzaWduYWJsZUxpc3QodC5lbGVtZW50cywoaT10LmV4dHJhKT09bnVsbD92b2lkIDA6aS50cmFpbGluZ0NvbW1hTG9jLGUpO2JyZWFrO2Nhc2VcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCI6dC5vcGVyYXRvciE9PVwiPVwiJiZ0aGlzLnJhaXNlKHAuTWlzc2luZ0VxSW5Bc3NpZ25tZW50LHthdDp0LmxlZnQubG9jLmVuZH0pLHQudHlwZT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCIsZGVsZXRlIHQub3BlcmF0b3IsdGhpcy50b0Fzc2lnbmFibGUodC5sZWZ0LGUpO2JyZWFrO2Nhc2VcIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCI6dGhpcy50b0Fzc2lnbmFibGUocixlKTticmVha319dG9Bc3NpZ25hYmxlT2JqZWN0RXhwcmVzc2lvblByb3AodCxlLHMpe2lmKHQudHlwZT09PVwiT2JqZWN0TWV0aG9kXCIpdGhpcy5yYWlzZSh0LmtpbmQ9PT1cImdldFwifHx0LmtpbmQ9PT1cInNldFwiP3AuUGF0dGVybkhhc0FjY2Vzc29yOnAuUGF0dGVybkhhc01ldGhvZCx7YXQ6dC5rZXl9KTtlbHNlIGlmKHQudHlwZT09PVwiU3ByZWFkRWxlbWVudFwiKXt0LnR5cGU9XCJSZXN0RWxlbWVudFwiO2xldCBpPXQuYXJndW1lbnQ7dGhpcy5jaGVja1RvUmVzdENvbnZlcnNpb24oaSwhMSksdGhpcy50b0Fzc2lnbmFibGUoaSxzKSxlfHx0aGlzLnJhaXNlKHAuUmVzdFRyYWlsaW5nQ29tbWEse2F0OnR9KX1lbHNlIHRoaXMudG9Bc3NpZ25hYmxlKHQscyl9dG9Bc3NpZ25hYmxlTGlzdCh0LGUscyl7bGV0IGk9dC5sZW5ndGgtMTtmb3IobGV0IHI9MDtyPD1pO3IrKyl7bGV0IG49dFtyXTtpZihuKXtpZihuLnR5cGU9PT1cIlNwcmVhZEVsZW1lbnRcIil7bi50eXBlPVwiUmVzdEVsZW1lbnRcIjtsZXQgbz1uLmFyZ3VtZW50O3RoaXMuY2hlY2tUb1Jlc3RDb252ZXJzaW9uKG8sITApLHRoaXMudG9Bc3NpZ25hYmxlKG8scyl9ZWxzZSB0aGlzLnRvQXNzaWduYWJsZShuLHMpO24udHlwZT09PVwiUmVzdEVsZW1lbnRcIiYmKHI8aT90aGlzLnJhaXNlKHAuUmVzdFRyYWlsaW5nQ29tbWEse2F0Om59KTplJiZ0aGlzLnJhaXNlKHAuUmVzdFRyYWlsaW5nQ29tbWEse2F0OmV9KSl9fX1pc0Fzc2lnbmFibGUodCxlKXtzd2l0Y2godC50eXBlKXtjYXNlXCJJZGVudGlmaWVyXCI6Y2FzZVwiT2JqZWN0UGF0dGVyblwiOmNhc2VcIkFycmF5UGF0dGVyblwiOmNhc2VcIkFzc2lnbm1lbnRQYXR0ZXJuXCI6Y2FzZVwiUmVzdEVsZW1lbnRcIjpyZXR1cm4hMDtjYXNlXCJPYmplY3RFeHByZXNzaW9uXCI6e2xldCBzPXQucHJvcGVydGllcy5sZW5ndGgtMTtyZXR1cm4gdC5wcm9wZXJ0aWVzLmV2ZXJ5KChpLHIpPT5pLnR5cGUhPT1cIk9iamVjdE1ldGhvZFwiJiYocj09PXN8fGkudHlwZSE9PVwiU3ByZWFkRWxlbWVudFwiKSYmdGhpcy5pc0Fzc2lnbmFibGUoaSkpfWNhc2VcIk9iamVjdFByb3BlcnR5XCI6cmV0dXJuIHRoaXMuaXNBc3NpZ25hYmxlKHQudmFsdWUpO2Nhc2VcIlNwcmVhZEVsZW1lbnRcIjpyZXR1cm4gdGhpcy5pc0Fzc2lnbmFibGUodC5hcmd1bWVudCk7Y2FzZVwiQXJyYXlFeHByZXNzaW9uXCI6cmV0dXJuIHQuZWxlbWVudHMuZXZlcnkocz0+cz09PW51bGx8fHRoaXMuaXNBc3NpZ25hYmxlKHMpKTtjYXNlXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiOnJldHVybiB0Lm9wZXJhdG9yPT09XCI9XCI7Y2FzZVwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIjpyZXR1cm4gdGhpcy5pc0Fzc2lnbmFibGUodC5leHByZXNzaW9uKTtjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6cmV0dXJuIWU7ZGVmYXVsdDpyZXR1cm4hMX19dG9SZWZlcmVuY2VkTGlzdCh0LGUpe3JldHVybiB0fXRvUmVmZXJlbmNlZExpc3REZWVwKHQsZSl7dGhpcy50b1JlZmVyZW5jZWRMaXN0KHQsZSk7Zm9yKGxldCBzIG9mIHQpKHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cIkFycmF5RXhwcmVzc2lvblwiJiZ0aGlzLnRvUmVmZXJlbmNlZExpc3REZWVwKHMuZWxlbWVudHMpfXBhcnNlU3ByZWFkKHQpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLGUuYXJndW1lbnQ9dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbih0LHZvaWQgMCksdGhpcy5maW5pc2hOb2RlKGUsXCJTcHJlYWRFbGVtZW50XCIpfXBhcnNlUmVzdEJpbmRpbmcoKXtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0LmFyZ3VtZW50PXRoaXMucGFyc2VCaW5kaW5nQXRvbSgpLHRoaXMuZmluaXNoTm9kZSh0LFwiUmVzdEVsZW1lbnRcIil9cGFyc2VCaW5kaW5nQXRvbSgpe3N3aXRjaCh0aGlzLnN0YXRlLnR5cGUpe2Nhc2UgMDp7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdC5lbGVtZW50cz10aGlzLnBhcnNlQmluZGluZ0xpc3QoMyw5MywxKSx0aGlzLmZpbmlzaE5vZGUodCxcIkFycmF5UGF0dGVyblwiKX1jYXNlIDU6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RMaWtlKDgsITApfXJldHVybiB0aGlzLnBhcnNlSWRlbnRpZmllcigpfXBhcnNlQmluZGluZ0xpc3QodCxlLHMpe2xldCBpPXMmMSxyPVtdLG49ITA7Zm9yKDshdGhpcy5lYXQodCk7KWlmKG4/bj0hMTp0aGlzLmV4cGVjdCgxMiksaSYmdGhpcy5tYXRjaCgxMikpci5wdXNoKG51bGwpO2Vsc2V7aWYodGhpcy5lYXQodCkpYnJlYWs7aWYodGhpcy5tYXRjaCgyMSkpe2lmKHIucHVzaCh0aGlzLnBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXModGhpcy5wYXJzZVJlc3RCaW5kaW5nKCkscykpLCF0aGlzLmNoZWNrQ29tbWFBZnRlclJlc3QoZSkpe3RoaXMuZXhwZWN0KHQpO2JyZWFrfX1lbHNle2xldCBvPVtdO2Zvcih0aGlzLm1hdGNoKDI2KSYmdGhpcy5oYXNQbHVnaW4oXCJkZWNvcmF0b3JzXCIpJiZ0aGlzLnJhaXNlKHAuVW5zdXBwb3J0ZWRQYXJhbWV0ZXJEZWNvcmF0b3Ise2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTt0aGlzLm1hdGNoKDI2KTspby5wdXNoKHRoaXMucGFyc2VEZWNvcmF0b3IoKSk7ci5wdXNoKHRoaXMucGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW0ocyxvKSl9fXJldHVybiByfXBhcnNlQmluZGluZ1Jlc3RQcm9wZXJ0eSh0KXtyZXR1cm4gdGhpcy5uZXh0KCksdC5hcmd1bWVudD10aGlzLnBhcnNlSWRlbnRpZmllcigpLHRoaXMuY2hlY2tDb21tYUFmdGVyUmVzdCgxMjUpLHRoaXMuZmluaXNoTm9kZSh0LFwiUmVzdEVsZW1lbnRcIil9cGFyc2VCaW5kaW5nUHJvcGVydHkoKXtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpLHt0eXBlOmUsc3RhcnRMb2M6c309dGhpcy5zdGF0ZTtyZXR1cm4gZT09PTIxP3RoaXMucGFyc2VCaW5kaW5nUmVzdFByb3BlcnR5KHQpOihlPT09MTM2Pyh0aGlzLmV4cGVjdFBsdWdpbihcImRlc3RydWN0dXJpbmdQcml2YXRlXCIscyksdGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHRoaXMuc3RhdGUudmFsdWUscyksdC5rZXk9dGhpcy5wYXJzZVByaXZhdGVOYW1lKCkpOnRoaXMucGFyc2VQcm9wZXJ0eU5hbWUodCksdC5tZXRob2Q9ITEsdGhpcy5wYXJzZU9ialByb3BWYWx1ZSh0LHMsITEsITEsITAsITEpKX1wYXJzZUFzc2lnbmFibGVMaXN0SXRlbSh0LGUpe2xldCBzPXRoaXMucGFyc2VNYXliZURlZmF1bHQoKTt0aGlzLnBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMocyx0KTtsZXQgaT10aGlzLnBhcnNlTWF5YmVEZWZhdWx0KHMubG9jLnN0YXJ0LHMpO3JldHVybiBlLmxlbmd0aCYmKHMuZGVjb3JhdG9ycz1lKSxpfXBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXModCxlKXtyZXR1cm4gdH1wYXJzZU1heWJlRGVmYXVsdCh0LGUpe3ZhciBzLGk7aWYoKHM9dCkhPW51bGx8fCh0PXRoaXMuc3RhdGUuc3RhcnRMb2MpLGU9KGk9ZSkhPW51bGw/aTp0aGlzLnBhcnNlQmluZGluZ0F0b20oKSwhdGhpcy5lYXQoMjkpKXJldHVybiBlO2xldCByPXRoaXMuc3RhcnROb2RlQXQodCk7cmV0dXJuIHIubGVmdD1lLHIucmlnaHQ9dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpLHRoaXMuZmluaXNoTm9kZShyLFwiQXNzaWdubWVudFBhdHRlcm5cIil9aXNWYWxpZExWYWwodCxlLHMpe3JldHVybiBycih7QXNzaWdubWVudFBhdHRlcm46XCJsZWZ0XCIsUmVzdEVsZW1lbnQ6XCJhcmd1bWVudFwiLE9iamVjdFByb3BlcnR5OlwidmFsdWVcIixQYXJlbnRoZXNpemVkRXhwcmVzc2lvbjpcImV4cHJlc3Npb25cIixBcnJheVBhdHRlcm46XCJlbGVtZW50c1wiLE9iamVjdFBhdHRlcm46XCJwcm9wZXJ0aWVzXCJ9LHQpfWNoZWNrTFZhbCh0LHtpbjplLGJpbmRpbmc6cz02NCxjaGVja0NsYXNoZXM6aT0hMSxzdHJpY3RNb2RlQ2hhbmdlZDpyPSExLGhhc1BhcmVudGhlc2l6ZWRBbmNlc3RvcjpuPSExfSl7dmFyIG87bGV0IGg9dC50eXBlO2lmKHRoaXMuaXNPYmplY3RNZXRob2QodCkpcmV0dXJuO2lmKGg9PT1cIk1lbWJlckV4cHJlc3Npb25cIil7cyE9PTY0JiZ0aGlzLnJhaXNlKHAuSW52YWxpZFByb3BlcnR5QmluZGluZ1BhdHRlcm4se2F0OnR9KTtyZXR1cm59aWYoaD09PVwiSWRlbnRpZmllclwiKXt0aGlzLmNoZWNrSWRlbnRpZmllcih0LHMscik7bGV0e25hbWU6ZH09dDtpJiYoaS5oYXMoZCk/dGhpcy5yYWlzZShwLlBhcmFtRHVwZSx7YXQ6dH0pOmkuYWRkKGQpKTtyZXR1cm59bGV0IGw9dGhpcy5pc1ZhbGlkTFZhbChoLCEobnx8KG89dC5leHRyYSkhPW51bGwmJm8ucGFyZW50aGVzaXplZCkmJmUudHlwZT09PVwiQXNzaWdubWVudEV4cHJlc3Npb25cIixzKTtpZihsPT09ITApcmV0dXJuO2lmKGw9PT0hMSl7bGV0IGQ9cz09PTY0P3AuSW52YWxpZExoczpwLkludmFsaWRMaHNCaW5kaW5nO3RoaXMucmFpc2UoZCx7YXQ6dCxhbmNlc3RvcjplfSk7cmV0dXJufWxldFtjLHVdPUFycmF5LmlzQXJyYXkobCk/bDpbbCxoPT09XCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiXSxmPWg9PT1cIkFycmF5UGF0dGVyblwifHxoPT09XCJPYmplY3RQYXR0ZXJuXCJ8fGg9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCI/e3R5cGU6aH06ZTtmb3IobGV0IGQgb2ZbXS5jb25jYXQodFtjXSkpZCYmdGhpcy5jaGVja0xWYWwoZCx7aW46ZixiaW5kaW5nOnMsY2hlY2tDbGFzaGVzOmksc3RyaWN0TW9kZUNoYW5nZWQ6cixoYXNQYXJlbnRoZXNpemVkQW5jZXN0b3I6dX0pfWNoZWNrSWRlbnRpZmllcih0LGUscz0hMSl7dGhpcy5zdGF0ZS5zdHJpY3QmJihzP2lzKHQubmFtZSx0aGlzLmluTW9kdWxlKTpzcyh0Lm5hbWUpKSYmKGU9PT02ND90aGlzLnJhaXNlKHAuU3RyaWN0RXZhbEFyZ3VtZW50cyx7YXQ6dCxyZWZlcmVuY2VOYW1lOnQubmFtZX0pOnRoaXMucmFpc2UocC5TdHJpY3RFdmFsQXJndW1lbnRzQmluZGluZyx7YXQ6dCxiaW5kaW5nTmFtZTp0Lm5hbWV9KSksZSY4MTkyJiZ0Lm5hbWU9PT1cImxldFwiJiZ0aGlzLnJhaXNlKHAuTGV0SW5MZXhpY2FsQmluZGluZyx7YXQ6dH0pLGUmNjR8fHRoaXMuZGVjbGFyZU5hbWVGcm9tSWRlbnRpZmllcih0LGUpfWRlY2xhcmVOYW1lRnJvbUlkZW50aWZpZXIodCxlKXt0aGlzLnNjb3BlLmRlY2xhcmVOYW1lKHQubmFtZSxlLHQubG9jLnN0YXJ0KX1jaGVja1RvUmVzdENvbnZlcnNpb24odCxlKXtzd2l0Y2godC50eXBlKXtjYXNlXCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiOnRoaXMuY2hlY2tUb1Jlc3RDb252ZXJzaW9uKHQuZXhwcmVzc2lvbixlKTticmVhaztjYXNlXCJJZGVudGlmaWVyXCI6Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmJyZWFrO2Nhc2VcIkFycmF5RXhwcmVzc2lvblwiOmNhc2VcIk9iamVjdEV4cHJlc3Npb25cIjppZihlKWJyZWFrO2RlZmF1bHQ6dGhpcy5yYWlzZShwLkludmFsaWRSZXN0QXNzaWdubWVudFBhdHRlcm4se2F0OnR9KX19Y2hlY2tDb21tYUFmdGVyUmVzdCh0KXtyZXR1cm4gdGhpcy5tYXRjaCgxMik/KHRoaXMucmFpc2UodGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09dD9wLlJlc3RUcmFpbGluZ0NvbW1hOnAuRWxlbWVudEFmdGVyUmVzdCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLCEwKTohMX19LGFyPShhLHQpPT5PYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChhLHQpJiZhW3RdO2Z1bmN0aW9uIG5yKGEpe2lmKGE9PW51bGwpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkICR7YX0gdmFsdWUuYCk7cmV0dXJuIGF9ZnVuY3Rpb24gS3QoYSl7aWYoIWEpdGhyb3cgbmV3IEVycm9yKFwiQXNzZXJ0IGZhaWxcIil9dmFyIHk9JGB0eXBlc2NyaXB0YCh7QWJzdHJhY3RNZXRob2RIYXNJbXBsZW1lbnRhdGlvbjooe21ldGhvZE5hbWU6YX0pPT5gTWV0aG9kICcke2F9JyBjYW5ub3QgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIGl0IGlzIG1hcmtlZCBhYnN0cmFjdC5gLEFic3RyYWN0UHJvcGVydHlIYXNJbml0aWFsaXplcjooe3Byb3BlcnR5TmFtZTphfSk9PmBQcm9wZXJ0eSAnJHthfScgY2Fubm90IGhhdmUgYW4gaW5pdGlhbGl6ZXIgYmVjYXVzZSBpdCBpcyBtYXJrZWQgYWJzdHJhY3QuYCxBY2Nlc29yQ2Fubm90RGVjbGFyZVRoaXNQYXJhbWV0ZXI6XCInZ2V0JyBhbmQgJ3NldCcgYWNjZXNzb3JzIGNhbm5vdCBkZWNsYXJlICd0aGlzJyBwYXJhbWV0ZXJzLlwiLEFjY2Vzb3JDYW5ub3RIYXZlVHlwZVBhcmFtZXRlcnM6XCJBbiBhY2Nlc3NvciBjYW5ub3QgaGF2ZSB0eXBlIHBhcmFtZXRlcnMuXCIsQWNjZXNzb3JDYW5ub3RCZU9wdGlvbmFsOlwiQW4gJ2FjY2Vzc29yJyBwcm9wZXJ0eSBjYW5ub3QgYmUgZGVjbGFyZWQgb3B0aW9uYWwuXCIsQ2xhc3NNZXRob2RIYXNEZWNsYXJlOlwiQ2xhc3MgbWV0aG9kcyBjYW5ub3QgaGF2ZSB0aGUgJ2RlY2xhcmUnIG1vZGlmaWVyLlwiLENsYXNzTWV0aG9kSGFzUmVhZG9ubHk6XCJDbGFzcyBtZXRob2RzIGNhbm5vdCBoYXZlIHRoZSAncmVhZG9ubHknIG1vZGlmaWVyLlwiLENvbnN0SW5pdGlhaWxpemVyTXVzdEJlU3RyaW5nT3JOdW1lcmljTGl0ZXJhbE9yTGl0ZXJhbEVudW1SZWZlcmVuY2U6XCJBICdjb25zdCcgaW5pdGlhbGl6ZXIgaW4gYW4gYW1iaWVudCBjb250ZXh0IG11c3QgYmUgYSBzdHJpbmcgb3IgbnVtZXJpYyBsaXRlcmFsIG9yIGxpdGVyYWwgZW51bSByZWZlcmVuY2UuXCIsQ29uc3RydWN0b3JIYXNUeXBlUGFyYW1ldGVyczpcIlR5cGUgcGFyYW1ldGVycyBjYW5ub3QgYXBwZWFyIG9uIGEgY29uc3RydWN0b3IgZGVjbGFyYXRpb24uXCIsRGVjbGFyZUFjY2Vzc29yOih7a2luZDphfSk9PmAnZGVjbGFyZScgaXMgbm90IGFsbG93ZWQgaW4gJHthfXRlcnMuYCxEZWNsYXJlQ2xhc3NGaWVsZEhhc0luaXRpYWxpemVyOlwiSW5pdGlhbGl6ZXJzIGFyZSBub3QgYWxsb3dlZCBpbiBhbWJpZW50IGNvbnRleHRzLlwiLERlY2xhcmVGdW5jdGlvbkhhc0ltcGxlbWVudGF0aW9uOlwiQW4gaW1wbGVtZW50YXRpb24gY2Fubm90IGJlIGRlY2xhcmVkIGluIGFtYmllbnQgY29udGV4dHMuXCIsRHVwbGljYXRlQWNjZXNzaWJpbGl0eU1vZGlmaWVyOih7bW9kaWZpZXI6YX0pPT5cIkFjY2Vzc2liaWxpdHkgbW9kaWZpZXIgYWxyZWFkeSBzZWVuLlwiLER1cGxpY2F0ZU1vZGlmaWVyOih7bW9kaWZpZXI6YX0pPT5gRHVwbGljYXRlIG1vZGlmaWVyOiAnJHthfScuYCxFbXB0eUhlcml0YWdlQ2xhdXNlVHlwZTooe3Rva2VuOmF9KT0+YCcke2F9JyBsaXN0IGNhbm5vdCBiZSBlbXB0eS5gLEVtcHR5VHlwZUFyZ3VtZW50czpcIlR5cGUgYXJndW1lbnQgbGlzdCBjYW5ub3QgYmUgZW1wdHkuXCIsRW1wdHlUeXBlUGFyYW1ldGVyczpcIlR5cGUgcGFyYW1ldGVyIGxpc3QgY2Fubm90IGJlIGVtcHR5LlwiLEV4cGVjdGVkQW1iaWVudEFmdGVyRXhwb3J0RGVjbGFyZTpcIidleHBvcnQgZGVjbGFyZScgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhbWJpZW50IGRlY2xhcmF0aW9uLlwiLEltcG9ydEFsaWFzSGFzSW1wb3J0VHlwZTpcIkFuIGltcG9ydCBhbGlhcyBjYW4gbm90IHVzZSAnaW1wb3J0IHR5cGUnLlwiLEltcG9ydFJlZmxlY3Rpb25IYXNJbXBvcnRUeXBlOlwiQW4gYGltcG9ydCBtb2R1bGVgIGRlY2xhcmF0aW9uIGNhbiBub3QgdXNlIGB0eXBlYCBtb2RpZmllclwiLEluY29tcGF0aWJsZU1vZGlmaWVyczooe21vZGlmaWVyczphfSk9PmAnJHthWzBdfScgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgd2l0aCAnJHthWzFdfScgbW9kaWZpZXIuYCxJbmRleFNpZ25hdHVyZUhhc0Fic3RyYWN0OlwiSW5kZXggc2lnbmF0dXJlcyBjYW5ub3QgaGF2ZSB0aGUgJ2Fic3RyYWN0JyBtb2RpZmllci5cIixJbmRleFNpZ25hdHVyZUhhc0FjY2Vzc2liaWxpdHk6KHttb2RpZmllcjphfSk9PmBJbmRleCBzaWduYXR1cmVzIGNhbm5vdCBoYXZlIGFuIGFjY2Vzc2liaWxpdHkgbW9kaWZpZXIgKCcke2F9JykuYCxJbmRleFNpZ25hdHVyZUhhc0RlY2xhcmU6XCJJbmRleCBzaWduYXR1cmVzIGNhbm5vdCBoYXZlIHRoZSAnZGVjbGFyZScgbW9kaWZpZXIuXCIsSW5kZXhTaWduYXR1cmVIYXNPdmVycmlkZTpcIidvdmVycmlkZScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhbiBpbmRleCBzaWduYXR1cmUuXCIsSW5kZXhTaWduYXR1cmVIYXNTdGF0aWM6XCJJbmRleCBzaWduYXR1cmVzIGNhbm5vdCBoYXZlIHRoZSAnc3RhdGljJyBtb2RpZmllci5cIixJbml0aWFsaXplck5vdEFsbG93ZWRJbkFtYmllbnRDb250ZXh0OlwiSW5pdGlhbGl6ZXJzIGFyZSBub3QgYWxsb3dlZCBpbiBhbWJpZW50IGNvbnRleHRzLlwiLEludmFsaWRNb2RpZmllck9uVHlwZU1lbWJlcjooe21vZGlmaWVyOmF9KT0+YCcke2F9JyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGEgdHlwZSBtZW1iZXIuYCxJbnZhbGlkTW9kaWZpZXJPblR5cGVQYXJhbWV0ZXI6KHttb2RpZmllcjphfSk9PmAnJHthfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyLmAsSW52YWxpZE1vZGlmaWVyT25UeXBlUGFyYW1ldGVyUG9zaXRpb25zOih7bW9kaWZpZXI6YX0pPT5gJyR7YX0nIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyIG9mIGEgY2xhc3MsIGludGVyZmFjZSBvciB0eXBlIGFsaWFzLmAsSW52YWxpZE1vZGlmaWVyc09yZGVyOih7b3JkZXJlZE1vZGlmaWVyczphfSk9PmAnJHthWzBdfScgbW9kaWZpZXIgbXVzdCBwcmVjZWRlICcke2FbMV19JyBtb2RpZmllci5gLEludmFsaWRQcm9wZXJ0eUFjY2Vzc0FmdGVySW5zdGFudGlhdGlvbkV4cHJlc3Npb246XCJJbnZhbGlkIHByb3BlcnR5IGFjY2VzcyBhZnRlciBhbiBpbnN0YW50aWF0aW9uIGV4cHJlc3Npb24uIFlvdSBjYW4gZWl0aGVyIHdyYXAgdGhlIGluc3RhbnRpYXRpb24gZXhwcmVzc2lvbiBpbiBwYXJlbnRoZXNlcywgb3IgZGVsZXRlIHRoZSB0eXBlIGFyZ3VtZW50cy5cIixJbnZhbGlkVHVwbGVNZW1iZXJMYWJlbDpcIlR1cGxlIG1lbWJlcnMgbXVzdCBiZSBsYWJlbGVkIHdpdGggYSBzaW1wbGUgaWRlbnRpZmllci5cIixNaXNzaW5nSW50ZXJmYWNlTmFtZTpcIidpbnRlcmZhY2UnIGRlY2xhcmF0aW9ucyBtdXN0IGJlIGZvbGxvd2VkIGJ5IGFuIGlkZW50aWZpZXIuXCIsTWl4ZWRMYWJlbGVkQW5kVW5sYWJlbGVkRWxlbWVudHM6XCJUdXBsZSBtZW1iZXJzIG11c3QgYWxsIGhhdmUgbmFtZXMgb3IgYWxsIG5vdCBoYXZlIG5hbWVzLlwiLE5vbkFic3RyYWN0Q2xhc3NIYXNBYnN0cmFjdE1ldGhvZDpcIkFic3RyYWN0IG1ldGhvZHMgY2FuIG9ubHkgYXBwZWFyIHdpdGhpbiBhbiBhYnN0cmFjdCBjbGFzcy5cIixOb25DbGFzc01ldGhvZFByb3BlcnR5SGFzQWJzdHJhY3RNb2RpZmVyOlwiJ2Fic3RyYWN0JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSBjbGFzcywgbWV0aG9kLCBvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbi5cIixPcHRpb25hbFR5cGVCZWZvcmVSZXF1aXJlZDpcIkEgcmVxdWlyZWQgZWxlbWVudCBjYW5ub3QgZm9sbG93IGFuIG9wdGlvbmFsIGVsZW1lbnQuXCIsT3ZlcnJpZGVOb3RJblN1YkNsYXNzOlwiVGhpcyBtZW1iZXIgY2Fubm90IGhhdmUgYW4gJ292ZXJyaWRlJyBtb2RpZmllciBiZWNhdXNlIGl0cyBjb250YWluaW5nIGNsYXNzIGRvZXMgbm90IGV4dGVuZCBhbm90aGVyIGNsYXNzLlwiLFBhdHRlcm5Jc09wdGlvbmFsOlwiQSBiaW5kaW5nIHBhdHRlcm4gcGFyYW1ldGVyIGNhbm5vdCBiZSBvcHRpb25hbCBpbiBhbiBpbXBsZW1lbnRhdGlvbiBzaWduYXR1cmUuXCIsUHJpdmF0ZUVsZW1lbnRIYXNBYnN0cmFjdDpcIlByaXZhdGUgZWxlbWVudHMgY2Fubm90IGhhdmUgdGhlICdhYnN0cmFjdCcgbW9kaWZpZXIuXCIsUHJpdmF0ZUVsZW1lbnRIYXNBY2Nlc3NpYmlsaXR5Oih7bW9kaWZpZXI6YX0pPT5gUHJpdmF0ZSBlbGVtZW50cyBjYW5ub3QgaGF2ZSBhbiBhY2Nlc3NpYmlsaXR5IG1vZGlmaWVyICgnJHthfScpLmAsUmVhZG9ubHlGb3JNZXRob2RTaWduYXR1cmU6XCIncmVhZG9ubHknIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBhIHByb3BlcnR5IGRlY2xhcmF0aW9uIG9yIGluZGV4IHNpZ25hdHVyZS5cIixSZXNlcnZlZEFycm93VHlwZVBhcmFtOlwiVGhpcyBzeW50YXggaXMgcmVzZXJ2ZWQgaW4gZmlsZXMgd2l0aCB0aGUgLm10cyBvciAuY3RzIGV4dGVuc2lvbi4gQWRkIGEgdHJhaWxpbmcgY29tbWEsIGFzIGluIGA8VCw+KCkgPT4gLi4uYC5cIixSZXNlcnZlZFR5cGVBc3NlcnRpb246XCJUaGlzIHN5bnRheCBpcyByZXNlcnZlZCBpbiBmaWxlcyB3aXRoIHRoZSAubXRzIG9yIC5jdHMgZXh0ZW5zaW9uLiBVc2UgYW4gYGFzYCBleHByZXNzaW9uIGluc3RlYWQuXCIsU2V0QWNjZXNvckNhbm5vdEhhdmVPcHRpb25hbFBhcmFtZXRlcjpcIkEgJ3NldCcgYWNjZXNzb3IgY2Fubm90IGhhdmUgYW4gb3B0aW9uYWwgcGFyYW1ldGVyLlwiLFNldEFjY2Vzb3JDYW5ub3RIYXZlUmVzdFBhcmFtZXRlcjpcIkEgJ3NldCcgYWNjZXNzb3IgY2Fubm90IGhhdmUgcmVzdCBwYXJhbWV0ZXIuXCIsU2V0QWNjZXNvckNhbm5vdEhhdmVSZXR1cm5UeXBlOlwiQSAnc2V0JyBhY2Nlc3NvciBjYW5ub3QgaGF2ZSBhIHJldHVybiB0eXBlIGFubm90YXRpb24uXCIsU2luZ2xlVHlwZVBhcmFtZXRlcldpdGhvdXRUcmFpbGluZ0NvbW1hOih7dHlwZVBhcmFtZXRlck5hbWU6YX0pPT5gU2luZ2xlIHR5cGUgcGFyYW1ldGVyICR7YX0gc2hvdWxkIGhhdmUgYSB0cmFpbGluZyBjb21tYS4gRXhhbXBsZSB1c2FnZTogPCR7YX0sPi5gLFN0YXRpY0Jsb2NrQ2Fubm90SGF2ZU1vZGlmaWVyOlwiU3RhdGljIGNsYXNzIGJsb2NrcyBjYW5ub3QgaGF2ZSBhbnkgbW9kaWZpZXIuXCIsVHVwbGVPcHRpb25hbEFmdGVyVHlwZTpcIkEgbGFiZWxlZCB0dXBsZSBvcHRpb25hbCBlbGVtZW50IG11c3QgYmUgZGVjbGFyZWQgdXNpbmcgYSBxdWVzdGlvbiBtYXJrIGFmdGVyIHRoZSBuYW1lIGFuZCBiZWZvcmUgdGhlIGNvbG9uIChgbmFtZT86IHR5cGVgKSwgcmF0aGVyIHRoYW4gYWZ0ZXIgdGhlIHR5cGUgKGBuYW1lOiB0eXBlP2ApLlwiLFR5cGVBbm5vdGF0aW9uQWZ0ZXJBc3NpZ246XCJUeXBlIGFubm90YXRpb25zIG11c3QgY29tZSBiZWZvcmUgZGVmYXVsdCBhc3NpZ25tZW50cywgZS5nLiBpbnN0ZWFkIG9mIGBhZ2UgPSAyNTogbnVtYmVyYCB1c2UgYGFnZTogbnVtYmVyID0gMjVgLlwiLFR5cGVJbXBvcnRDYW5ub3RTcGVjaWZ5RGVmYXVsdEFuZE5hbWVkOlwiQSB0eXBlLW9ubHkgaW1wb3J0IGNhbiBzcGVjaWZ5IGEgZGVmYXVsdCBpbXBvcnQgb3IgbmFtZWQgYmluZGluZ3MsIGJ1dCBub3QgYm90aC5cIixUeXBlTW9kaWZpZXJJc1VzZWRJblR5cGVFeHBvcnRzOlwiVGhlICd0eXBlJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBvbiBhIG5hbWVkIGV4cG9ydCB3aGVuICdleHBvcnQgdHlwZScgaXMgdXNlZCBvbiBpdHMgZXhwb3J0IHN0YXRlbWVudC5cIixUeXBlTW9kaWZpZXJJc1VzZWRJblR5cGVJbXBvcnRzOlwiVGhlICd0eXBlJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBvbiBhIG5hbWVkIGltcG9ydCB3aGVuICdpbXBvcnQgdHlwZScgaXMgdXNlZCBvbiBpdHMgaW1wb3J0IHN0YXRlbWVudC5cIixVbmV4cGVjdGVkUGFyYW1ldGVyTW9kaWZpZXI6XCJBIHBhcmFtZXRlciBwcm9wZXJ0eSBpcyBvbmx5IGFsbG93ZWQgaW4gYSBjb25zdHJ1Y3RvciBpbXBsZW1lbnRhdGlvbi5cIixVbmV4cGVjdGVkUmVhZG9ubHk6XCIncmVhZG9ubHknIHR5cGUgbW9kaWZpZXIgaXMgb25seSBwZXJtaXR0ZWQgb24gYXJyYXkgYW5kIHR1cGxlIGxpdGVyYWwgdHlwZXMuXCIsVW5leHBlY3RlZFR5cGVBbm5vdGF0aW9uOlwiRGlkIG5vdCBleHBlY3QgYSB0eXBlIGFubm90YXRpb24gaGVyZS5cIixVbmV4cGVjdGVkVHlwZUNhc3RJblBhcmFtZXRlcjpcIlVuZXhwZWN0ZWQgdHlwZSBjYXN0IGluIHBhcmFtZXRlciBwb3NpdGlvbi5cIixVbnN1cHBvcnRlZEltcG9ydFR5cGVBcmd1bWVudDpcIkFyZ3VtZW50IGluIGEgdHlwZSBpbXBvcnQgbXVzdCBiZSBhIHN0cmluZyBsaXRlcmFsLlwiLFVuc3VwcG9ydGVkUGFyYW1ldGVyUHJvcGVydHlLaW5kOlwiQSBwYXJhbWV0ZXIgcHJvcGVydHkgbWF5IG5vdCBiZSBkZWNsYXJlZCB1c2luZyBhIGJpbmRpbmcgcGF0dGVybi5cIixVbnN1cHBvcnRlZFNpZ25hdHVyZVBhcmFtZXRlcktpbmQ6KHt0eXBlOmF9KT0+YE5hbWUgaW4gYSBzaWduYXR1cmUgbXVzdCBiZSBhbiBJZGVudGlmaWVyLCBPYmplY3RQYXR0ZXJuIG9yIEFycmF5UGF0dGVybiwgaW5zdGVhZCBnb3QgJHthfS5gfSk7ZnVuY3Rpb24gb3IoYSl7c3dpdGNoKGEpe2Nhc2VcImFueVwiOnJldHVyblwiVFNBbnlLZXl3b3JkXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVyblwiVFNCb29sZWFuS2V5d29yZFwiO2Nhc2VcImJpZ2ludFwiOnJldHVyblwiVFNCaWdJbnRLZXl3b3JkXCI7Y2FzZVwibmV2ZXJcIjpyZXR1cm5cIlRTTmV2ZXJLZXl3b3JkXCI7Y2FzZVwibnVtYmVyXCI6cmV0dXJuXCJUU051bWJlcktleXdvcmRcIjtjYXNlXCJvYmplY3RcIjpyZXR1cm5cIlRTT2JqZWN0S2V5d29yZFwiO2Nhc2VcInN0cmluZ1wiOnJldHVyblwiVFNTdHJpbmdLZXl3b3JkXCI7Y2FzZVwic3ltYm9sXCI6cmV0dXJuXCJUU1N5bWJvbEtleXdvcmRcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm5cIlRTVW5kZWZpbmVkS2V5d29yZFwiO2Nhc2VcInVua25vd25cIjpyZXR1cm5cIlRTVW5rbm93bktleXdvcmRcIjtkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24gcXQoYSl7cmV0dXJuIGE9PT1cInByaXZhdGVcInx8YT09PVwicHVibGljXCJ8fGE9PT1cInByb3RlY3RlZFwifWZ1bmN0aW9uIGhyKGEpe3JldHVybiBhPT09XCJpblwifHxhPT09XCJvdXRcIn12YXIgbHI9YT0+Y2xhc3MgZXh0ZW5kcyBhe2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMudHNQYXJzZUluT3V0TW9kaWZpZXJzPXRoaXMudHNQYXJzZU1vZGlmaWVycy5iaW5kKHRoaXMse2FsbG93ZWRNb2RpZmllcnM6W1wiaW5cIixcIm91dFwiXSxkaXNhbGxvd2VkTW9kaWZpZXJzOltcImNvbnN0XCIsXCJwdWJsaWNcIixcInByaXZhdGVcIixcInByb3RlY3RlZFwiLFwicmVhZG9ubHlcIixcImRlY2xhcmVcIixcImFic3RyYWN0XCIsXCJvdmVycmlkZVwiXSxlcnJvclRlbXBsYXRlOnkuSW52YWxpZE1vZGlmaWVyT25UeXBlUGFyYW1ldGVyfSksdGhpcy50c1BhcnNlQ29uc3RNb2RpZmllcj10aGlzLnRzUGFyc2VNb2RpZmllcnMuYmluZCh0aGlzLHthbGxvd2VkTW9kaWZpZXJzOltcImNvbnN0XCJdLGRpc2FsbG93ZWRNb2RpZmllcnM6W1wiaW5cIixcIm91dFwiXSxlcnJvclRlbXBsYXRlOnkuSW52YWxpZE1vZGlmaWVyT25UeXBlUGFyYW1ldGVyUG9zaXRpb25zfSksdGhpcy50c1BhcnNlSW5PdXRDb25zdE1vZGlmaWVycz10aGlzLnRzUGFyc2VNb2RpZmllcnMuYmluZCh0aGlzLHthbGxvd2VkTW9kaWZpZXJzOltcImluXCIsXCJvdXRcIixcImNvbnN0XCJdLGRpc2FsbG93ZWRNb2RpZmllcnM6W1wicHVibGljXCIsXCJwcml2YXRlXCIsXCJwcm90ZWN0ZWRcIixcInJlYWRvbmx5XCIsXCJkZWNsYXJlXCIsXCJhYnN0cmFjdFwiLFwib3ZlcnJpZGVcIl0sZXJyb3JUZW1wbGF0ZTp5LkludmFsaWRNb2RpZmllck9uVHlwZVBhcmFtZXRlcn0pfWdldFNjb3BlSGFuZGxlcigpe3JldHVybiBtdH10c0lzSWRlbnRpZmllcigpe3JldHVybiBTKHRoaXMuc3RhdGUudHlwZSl9dHNUb2tlbkNhbkZvbGxvd01vZGlmaWVyKCl7cmV0dXJuKHRoaXMubWF0Y2goMCl8fHRoaXMubWF0Y2goNSl8fHRoaXMubWF0Y2goNTUpfHx0aGlzLm1hdGNoKDIxKXx8dGhpcy5tYXRjaCgxMzYpfHx0aGlzLmlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpKSYmIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl9dHNOZXh0VG9rZW5DYW5Gb2xsb3dNb2RpZmllcigpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLnRzVG9rZW5DYW5Gb2xsb3dNb2RpZmllcigpfXRzUGFyc2VNb2RpZmllcihlLHMpe2lmKCFTKHRoaXMuc3RhdGUudHlwZSkmJnRoaXMuc3RhdGUudHlwZSE9PTU4JiZ0aGlzLnN0YXRlLnR5cGUhPT03NSlyZXR1cm47bGV0IGk9dGhpcy5zdGF0ZS52YWx1ZTtpZihlLmluZGV4T2YoaSkhPT0tMSl7aWYocyYmdGhpcy50c0lzU3RhcnRPZlN0YXRpY0Jsb2NrcygpKXJldHVybjtpZih0aGlzLnRzVHJ5UGFyc2UodGhpcy50c05leHRUb2tlbkNhbkZvbGxvd01vZGlmaWVyLmJpbmQodGhpcykpKXJldHVybiBpfX10c1BhcnNlTW9kaWZpZXJzKHthbGxvd2VkTW9kaWZpZXJzOmUsZGlzYWxsb3dlZE1vZGlmaWVyczpzLHN0b3BPblN0YXJ0T2ZDbGFzc1N0YXRpY0Jsb2NrOmksZXJyb3JUZW1wbGF0ZTpyPXkuSW52YWxpZE1vZGlmaWVyT25UeXBlTWVtYmVyfSxuKXtsZXQgbz0obCxjLHUsZik9PntjPT09dSYmbltmXSYmdGhpcy5yYWlzZSh5LkludmFsaWRNb2RpZmllcnNPcmRlcix7YXQ6bCxvcmRlcmVkTW9kaWZpZXJzOlt1LGZdfSl9LGg9KGwsYyx1LGYpPT57KG5bdV0mJmM9PT1mfHxuW2ZdJiZjPT09dSkmJnRoaXMucmFpc2UoeS5JbmNvbXBhdGlibGVNb2RpZmllcnMse2F0OmwsbW9kaWZpZXJzOlt1LGZdfSl9O2Zvcig7Oyl7bGV0e3N0YXJ0TG9jOmx9PXRoaXMuc3RhdGUsYz10aGlzLnRzUGFyc2VNb2RpZmllcihlLmNvbmNhdChzPz9bXSksaSk7aWYoIWMpYnJlYWs7cXQoYyk/bi5hY2Nlc3NpYmlsaXR5P3RoaXMucmFpc2UoeS5EdXBsaWNhdGVBY2Nlc3NpYmlsaXR5TW9kaWZpZXIse2F0OmwsbW9kaWZpZXI6Y30pOihvKGwsYyxjLFwib3ZlcnJpZGVcIiksbyhsLGMsYyxcInN0YXRpY1wiKSxvKGwsYyxjLFwicmVhZG9ubHlcIiksbi5hY2Nlc3NpYmlsaXR5PWMpOmhyKGMpPyhuW2NdJiZ0aGlzLnJhaXNlKHkuRHVwbGljYXRlTW9kaWZpZXIse2F0OmwsbW9kaWZpZXI6Y30pLG5bY109ITAsbyhsLGMsXCJpblwiLFwib3V0XCIpKTooT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwobixjKT90aGlzLnJhaXNlKHkuRHVwbGljYXRlTW9kaWZpZXIse2F0OmwsbW9kaWZpZXI6Y30pOihvKGwsYyxcInN0YXRpY1wiLFwicmVhZG9ubHlcIiksbyhsLGMsXCJzdGF0aWNcIixcIm92ZXJyaWRlXCIpLG8obCxjLFwib3ZlcnJpZGVcIixcInJlYWRvbmx5XCIpLG8obCxjLFwiYWJzdHJhY3RcIixcIm92ZXJyaWRlXCIpLGgobCxjLFwiZGVjbGFyZVwiLFwib3ZlcnJpZGVcIiksaChsLGMsXCJzdGF0aWNcIixcImFic3RyYWN0XCIpKSxuW2NdPSEwKSxzIT1udWxsJiZzLmluY2x1ZGVzKGMpJiZ0aGlzLnJhaXNlKHIse2F0OmwsbW9kaWZpZXI6Y30pfX10c0lzTGlzdFRlcm1pbmF0b3IoZSl7c3dpdGNoKGUpe2Nhc2VcIkVudW1NZW1iZXJzXCI6Y2FzZVwiVHlwZU1lbWJlcnNcIjpyZXR1cm4gdGhpcy5tYXRjaCg4KTtjYXNlXCJIZXJpdGFnZUNsYXVzZUVsZW1lbnRcIjpyZXR1cm4gdGhpcy5tYXRjaCg1KTtjYXNlXCJUdXBsZUVsZW1lbnRUeXBlc1wiOnJldHVybiB0aGlzLm1hdGNoKDMpO2Nhc2VcIlR5cGVQYXJhbWV0ZXJzT3JBcmd1bWVudHNcIjpyZXR1cm4gdGhpcy5tYXRjaCg0OCl9fXRzUGFyc2VMaXN0KGUscyl7bGV0IGk9W107Zm9yKDshdGhpcy50c0lzTGlzdFRlcm1pbmF0b3IoZSk7KWkucHVzaChzKCkpO3JldHVybiBpfXRzUGFyc2VEZWxpbWl0ZWRMaXN0KGUscyxpKXtyZXR1cm4gbnIodGhpcy50c1BhcnNlRGVsaW1pdGVkTGlzdFdvcmtlcihlLHMsITAsaSkpfXRzUGFyc2VEZWxpbWl0ZWRMaXN0V29ya2VyKGUscyxpLHIpe2xldCBuPVtdLG89LTE7Zm9yKDshdGhpcy50c0lzTGlzdFRlcm1pbmF0b3IoZSk7KXtvPS0xO2xldCBoPXMoKTtpZihoPT1udWxsKXJldHVybjtpZihuLnB1c2goaCksdGhpcy5lYXQoMTIpKXtvPXRoaXMuc3RhdGUubGFzdFRva1N0YXJ0O2NvbnRpbnVlfWlmKHRoaXMudHNJc0xpc3RUZXJtaW5hdG9yKGUpKWJyZWFrO2kmJnRoaXMuZXhwZWN0KDEyKTtyZXR1cm59cmV0dXJuIHImJihyLnZhbHVlPW8pLG59dHNQYXJzZUJyYWNrZXRlZExpc3QoZSxzLGkscixuKXtyfHwoaT90aGlzLmV4cGVjdCgwKTp0aGlzLmV4cGVjdCg0NykpO2xldCBvPXRoaXMudHNQYXJzZURlbGltaXRlZExpc3QoZSxzLG4pO3JldHVybiBpP3RoaXMuZXhwZWN0KDMpOnRoaXMuZXhwZWN0KDQ4KSxvfXRzUGFyc2VJbXBvcnRUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5leHBlY3QoODMpLHRoaXMuZXhwZWN0KDEwKSx0aGlzLm1hdGNoKDEzMSl8fHRoaXMucmFpc2UoeS5VbnN1cHBvcnRlZEltcG9ydFR5cGVBcmd1bWVudCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLGUuYXJndW1lbnQ9c3VwZXIucGFyc2VFeHByQXRvbSgpLHRoaXMuZXhwZWN0KDExKSx0aGlzLmVhdCgxNikmJihlLnF1YWxpZmllcj10aGlzLnRzUGFyc2VFbnRpdHlOYW1lKCkpLHRoaXMubWF0Y2goNDcpJiYoZS50eXBlUGFyYW1ldGVycz10aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzKCkpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNJbXBvcnRUeXBlXCIpfXRzUGFyc2VFbnRpdHlOYW1lKGU9ITApe2xldCBzPXRoaXMucGFyc2VJZGVudGlmaWVyKGUpO2Zvcig7dGhpcy5lYXQoMTYpOyl7bGV0IGk9dGhpcy5zdGFydE5vZGVBdE5vZGUocyk7aS5sZWZ0PXMsaS5yaWdodD10aGlzLnBhcnNlSWRlbnRpZmllcihlKSxzPXRoaXMuZmluaXNoTm9kZShpLFwiVFNRdWFsaWZpZWROYW1lXCIpfXJldHVybiBzfXRzUGFyc2VUeXBlUmVmZXJlbmNlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gZS50eXBlTmFtZT10aGlzLnRzUGFyc2VFbnRpdHlOYW1lKCksIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJnRoaXMubWF0Y2goNDcpJiYoZS50eXBlUGFyYW1ldGVycz10aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzKCkpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNUeXBlUmVmZXJlbmNlXCIpfXRzUGFyc2VUaGlzVHlwZVByZWRpY2F0ZShlKXt0aGlzLm5leHQoKTtsZXQgcz10aGlzLnN0YXJ0Tm9kZUF0Tm9kZShlKTtyZXR1cm4gcy5wYXJhbWV0ZXJOYW1lPWUscy50eXBlQW5ub3RhdGlvbj10aGlzLnRzUGFyc2VUeXBlQW5ub3RhdGlvbighMSkscy5hc3NlcnRzPSExLHRoaXMuZmluaXNoTm9kZShzLFwiVFNUeXBlUHJlZGljYXRlXCIpfXRzUGFyc2VUaGlzVHlwZU5vZGUoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTVGhpc1R5cGVcIil9dHNQYXJzZVR5cGVRdWVyeSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMuZXhwZWN0KDg3KSx0aGlzLm1hdGNoKDgzKT9lLmV4cHJOYW1lPXRoaXMudHNQYXJzZUltcG9ydFR5cGUoKTplLmV4cHJOYW1lPXRoaXMudHNQYXJzZUVudGl0eU5hbWUoKSwhdGhpcy5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmdGhpcy5tYXRjaCg0NykmJihlLnR5cGVQYXJhbWV0ZXJzPXRoaXMudHNQYXJzZVR5cGVBcmd1bWVudHMoKSksdGhpcy5maW5pc2hOb2RlKGUsXCJUU1R5cGVRdWVyeVwiKX10c1BhcnNlVHlwZVBhcmFtZXRlcihlKXtsZXQgcz10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBlKHMpLHMubmFtZT10aGlzLnRzUGFyc2VUeXBlUGFyYW1ldGVyTmFtZSgpLHMuY29uc3RyYWludD10aGlzLnRzRWF0VGhlblBhcnNlVHlwZSg4MSkscy5kZWZhdWx0PXRoaXMudHNFYXRUaGVuUGFyc2VUeXBlKDI5KSx0aGlzLmZpbmlzaE5vZGUocyxcIlRTVHlwZVBhcmFtZXRlclwiKX10c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnMoZSl7aWYodGhpcy5tYXRjaCg0NykpcmV0dXJuIHRoaXMudHNQYXJzZVR5cGVQYXJhbWV0ZXJzKGUpfXRzUGFyc2VUeXBlUGFyYW1ldGVycyhlKXtsZXQgcz10aGlzLnN0YXJ0Tm9kZSgpO3RoaXMubWF0Y2goNDcpfHx0aGlzLm1hdGNoKDE0MCk/dGhpcy5uZXh0KCk6dGhpcy51bmV4cGVjdGVkKCk7bGV0IGk9e3ZhbHVlOi0xfTtyZXR1cm4gcy5wYXJhbXM9dGhpcy50c1BhcnNlQnJhY2tldGVkTGlzdChcIlR5cGVQYXJhbWV0ZXJzT3JBcmd1bWVudHNcIix0aGlzLnRzUGFyc2VUeXBlUGFyYW1ldGVyLmJpbmQodGhpcyxlKSwhMSwhMCxpKSxzLnBhcmFtcy5sZW5ndGg9PT0wJiZ0aGlzLnJhaXNlKHkuRW1wdHlUeXBlUGFyYW1ldGVycyx7YXQ6c30pLGkudmFsdWUhPT0tMSYmdGhpcy5hZGRFeHRyYShzLFwidHJhaWxpbmdDb21tYVwiLGkudmFsdWUpLHRoaXMuZmluaXNoTm9kZShzLFwiVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb25cIil9dHNGaWxsU2lnbmF0dXJlKGUscyl7bGV0IGk9ZT09PTE5LHI9XCJwYXJhbWV0ZXJzXCIsbj1cInR5cGVBbm5vdGF0aW9uXCI7cy50eXBlUGFyYW1ldGVycz10aGlzLnRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycyh0aGlzLnRzUGFyc2VDb25zdE1vZGlmaWVyKSx0aGlzLmV4cGVjdCgxMCksc1tyXT10aGlzLnRzUGFyc2VCaW5kaW5nTGlzdEZvclNpZ25hdHVyZSgpLGk/c1tuXT10aGlzLnRzUGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbihlKTp0aGlzLm1hdGNoKGUpJiYoc1tuXT10aGlzLnRzUGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbihlKSl9dHNQYXJzZUJpbmRpbmdMaXN0Rm9yU2lnbmF0dXJlKCl7bGV0IGU9c3VwZXIucGFyc2VCaW5kaW5nTGlzdCgxMSw0MSwyKTtmb3IobGV0IHMgb2YgZSl7bGV0e3R5cGU6aX09czsoaT09PVwiQXNzaWdubWVudFBhdHRlcm5cInx8aT09PVwiVFNQYXJhbWV0ZXJQcm9wZXJ0eVwiKSYmdGhpcy5yYWlzZSh5LlVuc3VwcG9ydGVkU2lnbmF0dXJlUGFyYW1ldGVyS2luZCx7YXQ6cyx0eXBlOml9KX1yZXR1cm4gZX10c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpeyF0aGlzLmVhdCgxMikmJiF0aGlzLmlzTGluZVRlcm1pbmF0b3IoKSYmdGhpcy5leHBlY3QoMTMpfXRzUGFyc2VTaWduYXR1cmVNZW1iZXIoZSxzKXtyZXR1cm4gdGhpcy50c0ZpbGxTaWduYXR1cmUoMTQscyksdGhpcy50c1BhcnNlVHlwZU1lbWJlclNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShzLGUpfXRzSXNVbmFtYmlndW91c2x5SW5kZXhTaWduYXR1cmUoKXtyZXR1cm4gdGhpcy5uZXh0KCksUyh0aGlzLnN0YXRlLnR5cGUpPyh0aGlzLm5leHQoKSx0aGlzLm1hdGNoKDE0KSk6ITF9dHNUcnlQYXJzZUluZGV4U2lnbmF0dXJlKGUpe2lmKCEodGhpcy5tYXRjaCgwKSYmdGhpcy50c0xvb2tBaGVhZCh0aGlzLnRzSXNVbmFtYmlndW91c2x5SW5kZXhTaWduYXR1cmUuYmluZCh0aGlzKSkpKXJldHVybjt0aGlzLmV4cGVjdCgwKTtsZXQgcz10aGlzLnBhcnNlSWRlbnRpZmllcigpO3MudHlwZUFubm90YXRpb249dGhpcy50c1BhcnNlVHlwZUFubm90YXRpb24oKSx0aGlzLnJlc2V0RW5kTG9jYXRpb24ocyksdGhpcy5leHBlY3QoMyksZS5wYXJhbWV0ZXJzPVtzXTtsZXQgaT10aGlzLnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO3JldHVybiBpJiYoZS50eXBlQW5ub3RhdGlvbj1pKSx0aGlzLnRzUGFyc2VUeXBlTWVtYmVyU2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJUU0luZGV4U2lnbmF0dXJlXCIpfXRzUGFyc2VQcm9wZXJ0eU9yTWV0aG9kU2lnbmF0dXJlKGUscyl7dGhpcy5lYXQoMTcpJiYoZS5vcHRpb25hbD0hMCk7bGV0IGk9ZTtpZih0aGlzLm1hdGNoKDEwKXx8dGhpcy5tYXRjaCg0Nykpe3MmJnRoaXMucmFpc2UoeS5SZWFkb25seUZvck1ldGhvZFNpZ25hdHVyZSx7YXQ6ZX0pO2xldCByPWk7ci5raW5kJiZ0aGlzLm1hdGNoKDQ3KSYmdGhpcy5yYWlzZSh5LkFjY2Vzb3JDYW5ub3RIYXZlVHlwZVBhcmFtZXRlcnMse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pLHRoaXMudHNGaWxsU2lnbmF0dXJlKDE0LHIpLHRoaXMudHNQYXJzZVR5cGVNZW1iZXJTZW1pY29sb24oKTtsZXQgbj1cInBhcmFtZXRlcnNcIixvPVwidHlwZUFubm90YXRpb25cIjtpZihyLmtpbmQ9PT1cImdldFwiKXJbbl0ubGVuZ3RoPjAmJih0aGlzLnJhaXNlKHAuQmFkR2V0dGVyQXJpdHkse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pLHRoaXMuaXNUaGlzUGFyYW0ocltuXVswXSkmJnRoaXMucmFpc2UoeS5BY2Nlc29yQ2Fubm90RGVjbGFyZVRoaXNQYXJhbWV0ZXIse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pKTtlbHNlIGlmKHIua2luZD09PVwic2V0XCIpe2lmKHJbbl0ubGVuZ3RoIT09MSl0aGlzLnJhaXNlKHAuQmFkU2V0dGVyQXJpdHkse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pO2Vsc2V7bGV0IGg9cltuXVswXTt0aGlzLmlzVGhpc1BhcmFtKGgpJiZ0aGlzLnJhaXNlKHkuQWNjZXNvckNhbm5vdERlY2xhcmVUaGlzUGFyYW1ldGVyLHthdDp0aGlzLnN0YXRlLmN1clBvc2l0aW9uKCl9KSxoLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmaC5vcHRpb25hbCYmdGhpcy5yYWlzZSh5LlNldEFjY2Vzb3JDYW5ub3RIYXZlT3B0aW9uYWxQYXJhbWV0ZXIse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pLGgudHlwZT09PVwiUmVzdEVsZW1lbnRcIiYmdGhpcy5yYWlzZSh5LlNldEFjY2Vzb3JDYW5ub3RIYXZlUmVzdFBhcmFtZXRlcix7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpfSl9cltvXSYmdGhpcy5yYWlzZSh5LlNldEFjY2Vzb3JDYW5ub3RIYXZlUmV0dXJuVHlwZSx7YXQ6cltvXX0pfWVsc2Ugci5raW5kPVwibWV0aG9kXCI7cmV0dXJuIHRoaXMuZmluaXNoTm9kZShyLFwiVFNNZXRob2RTaWduYXR1cmVcIil9ZWxzZXtsZXQgcj1pO3MmJihyLnJlYWRvbmx5PSEwKTtsZXQgbj10aGlzLnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO3JldHVybiBuJiYoci50eXBlQW5ub3RhdGlvbj1uKSx0aGlzLnRzUGFyc2VUeXBlTWVtYmVyU2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHIsXCJUU1Byb3BlcnR5U2lnbmF0dXJlXCIpfX10c1BhcnNlVHlwZU1lbWJlcigpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5tYXRjaCgxMCl8fHRoaXMubWF0Y2goNDcpKXJldHVybiB0aGlzLnRzUGFyc2VTaWduYXR1cmVNZW1iZXIoXCJUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvblwiLGUpO2lmKHRoaXMubWF0Y2goNzcpKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLm1hdGNoKDEwKXx8dGhpcy5tYXRjaCg0Nyk/dGhpcy50c1BhcnNlU2lnbmF0dXJlTWVtYmVyKFwiVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvblwiLGUpOihlLmtleT10aGlzLmNyZWF0ZUlkZW50aWZpZXIoaSxcIm5ld1wiKSx0aGlzLnRzUGFyc2VQcm9wZXJ0eU9yTWV0aG9kU2lnbmF0dXJlKGUsITEpKX10aGlzLnRzUGFyc2VNb2RpZmllcnMoe2FsbG93ZWRNb2RpZmllcnM6W1wicmVhZG9ubHlcIl0sZGlzYWxsb3dlZE1vZGlmaWVyczpbXCJkZWNsYXJlXCIsXCJhYnN0cmFjdFwiLFwicHJpdmF0ZVwiLFwicHJvdGVjdGVkXCIsXCJwdWJsaWNcIixcInN0YXRpY1wiLFwib3ZlcnJpZGVcIl19LGUpO2xldCBzPXRoaXMudHNUcnlQYXJzZUluZGV4U2lnbmF0dXJlKGUpO3JldHVybiBzfHwoc3VwZXIucGFyc2VQcm9wZXJ0eU5hbWUoZSksIWUuY29tcHV0ZWQmJmUua2V5LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmKGUua2V5Lm5hbWU9PT1cImdldFwifHxlLmtleS5uYW1lPT09XCJzZXRcIikmJnRoaXMudHNUb2tlbkNhbkZvbGxvd01vZGlmaWVyKCkmJihlLmtpbmQ9ZS5rZXkubmFtZSxzdXBlci5wYXJzZVByb3BlcnR5TmFtZShlKSksdGhpcy50c1BhcnNlUHJvcGVydHlPck1ldGhvZFNpZ25hdHVyZShlLCEhZS5yZWFkb25seSkpfXRzUGFyc2VUeXBlTGl0ZXJhbCgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUubWVtYmVycz10aGlzLnRzUGFyc2VPYmplY3RUeXBlTWVtYmVycygpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNUeXBlTGl0ZXJhbFwiKX10c1BhcnNlT2JqZWN0VHlwZU1lbWJlcnMoKXt0aGlzLmV4cGVjdCg1KTtsZXQgZT10aGlzLnRzUGFyc2VMaXN0KFwiVHlwZU1lbWJlcnNcIix0aGlzLnRzUGFyc2VUeXBlTWVtYmVyLmJpbmQodGhpcykpO3JldHVybiB0aGlzLmV4cGVjdCg4KSxlfXRzSXNTdGFydE9mTWFwcGVkVHlwZSgpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmVhdCg1Myk/dGhpcy5pc0NvbnRleHR1YWwoMTIwKToodGhpcy5pc0NvbnRleHR1YWwoMTIwKSYmdGhpcy5uZXh0KCksIXRoaXMubWF0Y2goMCl8fCh0aGlzLm5leHQoKSwhdGhpcy50c0lzSWRlbnRpZmllcigpKT8hMToodGhpcy5uZXh0KCksdGhpcy5tYXRjaCg1OCkpKX10c1BhcnNlTWFwcGVkVHlwZVBhcmFtZXRlcigpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUubmFtZT10aGlzLnRzUGFyc2VUeXBlUGFyYW1ldGVyTmFtZSgpLGUuY29uc3RyYWludD10aGlzLnRzRXhwZWN0VGhlblBhcnNlVHlwZSg1OCksdGhpcy5maW5pc2hOb2RlKGUsXCJUU1R5cGVQYXJhbWV0ZXJcIil9dHNQYXJzZU1hcHBlZFR5cGUoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLmV4cGVjdCg1KSx0aGlzLm1hdGNoKDUzKT8oZS5yZWFkb25seT10aGlzLnN0YXRlLnZhbHVlLHRoaXMubmV4dCgpLHRoaXMuZXhwZWN0Q29udGV4dHVhbCgxMjApKTp0aGlzLmVhdENvbnRleHR1YWwoMTIwKSYmKGUucmVhZG9ubHk9ITApLHRoaXMuZXhwZWN0KDApLGUudHlwZVBhcmFtZXRlcj10aGlzLnRzUGFyc2VNYXBwZWRUeXBlUGFyYW1ldGVyKCksZS5uYW1lVHlwZT10aGlzLmVhdENvbnRleHR1YWwoOTMpP3RoaXMudHNQYXJzZVR5cGUoKTpudWxsLHRoaXMuZXhwZWN0KDMpLHRoaXMubWF0Y2goNTMpPyhlLm9wdGlvbmFsPXRoaXMuc3RhdGUudmFsdWUsdGhpcy5uZXh0KCksdGhpcy5leHBlY3QoMTcpKTp0aGlzLmVhdCgxNykmJihlLm9wdGlvbmFsPSEwKSxlLnR5cGVBbm5vdGF0aW9uPXRoaXMudHNUcnlQYXJzZVR5cGUoKSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZXhwZWN0KDgpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNNYXBwZWRUeXBlXCIpfXRzUGFyc2VUdXBsZVR5cGUoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO2UuZWxlbWVudFR5cGVzPXRoaXMudHNQYXJzZUJyYWNrZXRlZExpc3QoXCJUdXBsZUVsZW1lbnRUeXBlc1wiLHRoaXMudHNQYXJzZVR1cGxlRWxlbWVudFR5cGUuYmluZCh0aGlzKSwhMCwhMSk7bGV0IHM9ITEsaT1udWxsO3JldHVybiBlLmVsZW1lbnRUeXBlcy5mb3JFYWNoKHI9Pnt2YXIgbjtsZXR7dHlwZTpvfT1yO3MmJm8hPT1cIlRTUmVzdFR5cGVcIiYmbyE9PVwiVFNPcHRpb25hbFR5cGVcIiYmIShvPT09XCJUU05hbWVkVHVwbGVNZW1iZXJcIiYmci5vcHRpb25hbCkmJnRoaXMucmFpc2UoeS5PcHRpb25hbFR5cGVCZWZvcmVSZXF1aXJlZCx7YXQ6cn0pLHN8fChzPW89PT1cIlRTTmFtZWRUdXBsZU1lbWJlclwiJiZyLm9wdGlvbmFsfHxvPT09XCJUU09wdGlvbmFsVHlwZVwiKTtsZXQgaD1vO289PT1cIlRTUmVzdFR5cGVcIiYmKHI9ci50eXBlQW5ub3RhdGlvbixoPXIudHlwZSk7bGV0IGw9aD09PVwiVFNOYW1lZFR1cGxlTWVtYmVyXCI7KG49aSkhPW51bGx8fChpPWwpLGkhPT1sJiZ0aGlzLnJhaXNlKHkuTWl4ZWRMYWJlbGVkQW5kVW5sYWJlbGVkRWxlbWVudHMse2F0OnJ9KX0pLHRoaXMuZmluaXNoTm9kZShlLFwiVFNUdXBsZVR5cGVcIil9dHNQYXJzZVR1cGxlRWxlbWVudFR5cGUoKXtsZXR7c3RhcnRMb2M6ZX09dGhpcy5zdGF0ZSxzPXRoaXMuZWF0KDIxKSxpLHIsbixvLGw9TSh0aGlzLnN0YXRlLnR5cGUpP3RoaXMubG9va2FoZWFkQ2hhckNvZGUoKTpudWxsO2lmKGw9PT01OClpPSEwLG49ITEscj10aGlzLnBhcnNlSWRlbnRpZmllcighMCksdGhpcy5leHBlY3QoMTQpLG89dGhpcy50c1BhcnNlVHlwZSgpO2Vsc2UgaWYobD09PTYzKXtuPSEwO2xldCBjPXRoaXMuc3RhdGUuc3RhcnRMb2MsdT10aGlzLnN0YXRlLnZhbHVlLGY9dGhpcy50c1BhcnNlTm9uQXJyYXlUeXBlKCk7dGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09NTg/KGk9ITAscj10aGlzLmNyZWF0ZUlkZW50aWZpZXIodGhpcy5zdGFydE5vZGVBdChjKSx1KSx0aGlzLmV4cGVjdCgxNyksdGhpcy5leHBlY3QoMTQpLG89dGhpcy50c1BhcnNlVHlwZSgpKTooaT0hMSxvPWYsdGhpcy5leHBlY3QoMTcpKX1lbHNlIG89dGhpcy50c1BhcnNlVHlwZSgpLG49dGhpcy5lYXQoMTcpLGk9dGhpcy5lYXQoMTQpO2lmKGkpe2xldCBjO3I/KGM9dGhpcy5zdGFydE5vZGVBdE5vZGUociksYy5vcHRpb25hbD1uLGMubGFiZWw9cixjLmVsZW1lbnRUeXBlPW8sdGhpcy5lYXQoMTcpJiYoYy5vcHRpb25hbD0hMCx0aGlzLnJhaXNlKHkuVHVwbGVPcHRpb25hbEFmdGVyVHlwZSx7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2N9KSkpOihjPXRoaXMuc3RhcnROb2RlQXROb2RlKG8pLGMub3B0aW9uYWw9bix0aGlzLnJhaXNlKHkuSW52YWxpZFR1cGxlTWVtYmVyTGFiZWwse2F0Om99KSxjLmxhYmVsPW8sYy5lbGVtZW50VHlwZT10aGlzLnRzUGFyc2VUeXBlKCkpLG89dGhpcy5maW5pc2hOb2RlKGMsXCJUU05hbWVkVHVwbGVNZW1iZXJcIil9ZWxzZSBpZihuKXtsZXQgYz10aGlzLnN0YXJ0Tm9kZUF0Tm9kZShvKTtjLnR5cGVBbm5vdGF0aW9uPW8sbz10aGlzLmZpbmlzaE5vZGUoYyxcIlRTT3B0aW9uYWxUeXBlXCIpfWlmKHMpe2xldCBjPXRoaXMuc3RhcnROb2RlQXQoZSk7Yy50eXBlQW5ub3RhdGlvbj1vLG89dGhpcy5maW5pc2hOb2RlKGMsXCJUU1Jlc3RUeXBlXCIpfXJldHVybiBvfXRzUGFyc2VQYXJlbnRoZXNpemVkVHlwZSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMuZXhwZWN0KDEwKSxlLnR5cGVBbm5vdGF0aW9uPXRoaXMudHNQYXJzZVR5cGUoKSx0aGlzLmV4cGVjdCgxMSksdGhpcy5maW5pc2hOb2RlKGUsXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCIpfXRzUGFyc2VGdW5jdGlvbk9yQ29uc3RydWN0b3JUeXBlKGUscyl7bGV0IGk9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gZT09PVwiVFNDb25zdHJ1Y3RvclR5cGVcIiYmKGkuYWJzdHJhY3Q9ISFzLHMmJnRoaXMubmV4dCgpLHRoaXMubmV4dCgpKSx0aGlzLnRzSW5BbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0KCgpPT50aGlzLnRzRmlsbFNpZ25hdHVyZSgxOSxpKSksdGhpcy5maW5pc2hOb2RlKGksZSl9dHNQYXJzZUxpdGVyYWxUeXBlTm9kZSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7c3dpdGNoKHRoaXMuc3RhdGUudHlwZSl7Y2FzZSAxMzI6Y2FzZSAxMzM6Y2FzZSAxMzE6Y2FzZSA4NTpjYXNlIDg2OmUubGl0ZXJhbD1zdXBlci5wYXJzZUV4cHJBdG9tKCk7YnJlYWs7ZGVmYXVsdDp0aGlzLnVuZXhwZWN0ZWQoKX1yZXR1cm4gdGhpcy5maW5pc2hOb2RlKGUsXCJUU0xpdGVyYWxUeXBlXCIpfXRzUGFyc2VUZW1wbGF0ZUxpdGVyYWxUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gZS5saXRlcmFsPXN1cGVyLnBhcnNlVGVtcGxhdGUoITEpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNMaXRlcmFsVHlwZVwiKX1wYXJzZVRlbXBsYXRlU3Vic3RpdHV0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGUuaW5UeXBlP3RoaXMudHNQYXJzZVR5cGUoKTpzdXBlci5wYXJzZVRlbXBsYXRlU3Vic3RpdHV0aW9uKCl9dHNQYXJzZVRoaXNUeXBlT3JUaGlzVHlwZVByZWRpY2F0ZSgpe2xldCBlPXRoaXMudHNQYXJzZVRoaXNUeXBlTm9kZSgpO3JldHVybiB0aGlzLmlzQ29udGV4dHVhbCgxMTQpJiYhdGhpcy5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKT90aGlzLnRzUGFyc2VUaGlzVHlwZVByZWRpY2F0ZShlKTplfXRzUGFyc2VOb25BcnJheVR5cGUoKXtzd2l0Y2godGhpcy5zdGF0ZS50eXBlKXtjYXNlIDEzMTpjYXNlIDEzMjpjYXNlIDEzMzpjYXNlIDg1OmNhc2UgODY6cmV0dXJuIHRoaXMudHNQYXJzZUxpdGVyYWxUeXBlTm9kZSgpO2Nhc2UgNTM6aWYodGhpcy5zdGF0ZS52YWx1ZT09PVwiLVwiKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpLHM9dGhpcy5sb29rYWhlYWQoKTtyZXR1cm4gcy50eXBlIT09MTMyJiZzLnR5cGUhPT0xMzMmJnRoaXMudW5leHBlY3RlZCgpLGUubGl0ZXJhbD10aGlzLnBhcnNlTWF5YmVVbmFyeSgpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNMaXRlcmFsVHlwZVwiKX1icmVhaztjYXNlIDc4OnJldHVybiB0aGlzLnRzUGFyc2VUaGlzVHlwZU9yVGhpc1R5cGVQcmVkaWNhdGUoKTtjYXNlIDg3OnJldHVybiB0aGlzLnRzUGFyc2VUeXBlUXVlcnkoKTtjYXNlIDgzOnJldHVybiB0aGlzLnRzUGFyc2VJbXBvcnRUeXBlKCk7Y2FzZSA1OnJldHVybiB0aGlzLnRzTG9va0FoZWFkKHRoaXMudHNJc1N0YXJ0T2ZNYXBwZWRUeXBlLmJpbmQodGhpcykpP3RoaXMudHNQYXJzZU1hcHBlZFR5cGUoKTp0aGlzLnRzUGFyc2VUeXBlTGl0ZXJhbCgpO2Nhc2UgMDpyZXR1cm4gdGhpcy50c1BhcnNlVHVwbGVUeXBlKCk7Y2FzZSAxMDpyZXR1cm4gdGhpcy50c1BhcnNlUGFyZW50aGVzaXplZFR5cGUoKTtjYXNlIDI1OmNhc2UgMjQ6cmV0dXJuIHRoaXMudHNQYXJzZVRlbXBsYXRlTGl0ZXJhbFR5cGUoKTtkZWZhdWx0OntsZXR7dHlwZTplfT10aGlzLnN0YXRlO2lmKFMoZSl8fGU9PT04OHx8ZT09PTg0KXtsZXQgcz1lPT09ODg/XCJUU1ZvaWRLZXl3b3JkXCI6ZT09PTg0P1wiVFNOdWxsS2V5d29yZFwiOm9yKHRoaXMuc3RhdGUudmFsdWUpO2lmKHMhPT12b2lkIDAmJnRoaXMubG9va2FoZWFkQ2hhckNvZGUoKSE9PTQ2KXtsZXQgaT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUoaSxzKX1yZXR1cm4gdGhpcy50c1BhcnNlVHlwZVJlZmVyZW5jZSgpfX19dGhpcy51bmV4cGVjdGVkKCl9dHNQYXJzZUFycmF5VHlwZU9ySGlnaGVyKCl7bGV0IGU9dGhpcy50c1BhcnNlTm9uQXJyYXlUeXBlKCk7Zm9yKDshdGhpcy5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmdGhpcy5lYXQoMCk7KWlmKHRoaXMubWF0Y2goMykpe2xldCBzPXRoaXMuc3RhcnROb2RlQXROb2RlKGUpO3MuZWxlbWVudFR5cGU9ZSx0aGlzLmV4cGVjdCgzKSxlPXRoaXMuZmluaXNoTm9kZShzLFwiVFNBcnJheVR5cGVcIil9ZWxzZXtsZXQgcz10aGlzLnN0YXJ0Tm9kZUF0Tm9kZShlKTtzLm9iamVjdFR5cGU9ZSxzLmluZGV4VHlwZT10aGlzLnRzUGFyc2VUeXBlKCksdGhpcy5leHBlY3QoMyksZT10aGlzLmZpbmlzaE5vZGUocyxcIlRTSW5kZXhlZEFjY2Vzc1R5cGVcIil9cmV0dXJuIGV9dHNQYXJzZVR5cGVPcGVyYXRvcigpe2xldCBlPXRoaXMuc3RhcnROb2RlKCkscz10aGlzLnN0YXRlLnZhbHVlO3JldHVybiB0aGlzLm5leHQoKSxlLm9wZXJhdG9yPXMsZS50eXBlQW5ub3RhdGlvbj10aGlzLnRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpLHM9PT1cInJlYWRvbmx5XCImJnRoaXMudHNDaGVja1R5cGVBbm5vdGF0aW9uRm9yUmVhZE9ubHkoZSksdGhpcy5maW5pc2hOb2RlKGUsXCJUU1R5cGVPcGVyYXRvclwiKX10c0NoZWNrVHlwZUFubm90YXRpb25Gb3JSZWFkT25seShlKXtzd2l0Y2goZS50eXBlQW5ub3RhdGlvbi50eXBlKXtjYXNlXCJUU1R1cGxlVHlwZVwiOmNhc2VcIlRTQXJyYXlUeXBlXCI6cmV0dXJuO2RlZmF1bHQ6dGhpcy5yYWlzZSh5LlVuZXhwZWN0ZWRSZWFkb25seSx7YXQ6ZX0pfX10c1BhcnNlSW5mZXJUeXBlKCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTt0aGlzLmV4cGVjdENvbnRleHR1YWwoMTEzKTtsZXQgcz10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBzLm5hbWU9dGhpcy50c1BhcnNlVHlwZVBhcmFtZXRlck5hbWUoKSxzLmNvbnN0cmFpbnQ9dGhpcy50c1RyeVBhcnNlKCgpPT50aGlzLnRzUGFyc2VDb25zdHJhaW50Rm9ySW5mZXJUeXBlKCkpLGUudHlwZVBhcmFtZXRlcj10aGlzLmZpbmlzaE5vZGUocyxcIlRTVHlwZVBhcmFtZXRlclwiKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTSW5mZXJUeXBlXCIpfXRzUGFyc2VDb25zdHJhaW50Rm9ySW5mZXJUeXBlKCl7aWYodGhpcy5lYXQoODEpKXtsZXQgZT10aGlzLnRzSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0KCgpPT50aGlzLnRzUGFyc2VUeXBlKCkpO2lmKHRoaXMuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0fHwhdGhpcy5tYXRjaCgxNykpcmV0dXJuIGV9fXRzUGFyc2VUeXBlT3BlcmF0b3JPckhpZ2hlcigpe3JldHVybiBDaSh0aGlzLnN0YXRlLnR5cGUpJiYhdGhpcy5zdGF0ZS5jb250YWluc0VzYz90aGlzLnRzUGFyc2VUeXBlT3BlcmF0b3IoKTp0aGlzLmlzQ29udGV4dHVhbCgxMTMpP3RoaXMudHNQYXJzZUluZmVyVHlwZSgpOnRoaXMudHNJbkFsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQoKCk9PnRoaXMudHNQYXJzZUFycmF5VHlwZU9ySGlnaGVyKCkpfXRzUGFyc2VVbmlvbk9ySW50ZXJzZWN0aW9uVHlwZShlLHMsaSl7bGV0IHI9dGhpcy5zdGFydE5vZGUoKSxuPXRoaXMuZWF0KGkpLG89W107ZG8gby5wdXNoKHMoKSk7d2hpbGUodGhpcy5lYXQoaSkpO3JldHVybiBvLmxlbmd0aD09PTEmJiFuP29bMF06KHIudHlwZXM9byx0aGlzLmZpbmlzaE5vZGUocixlKSl9dHNQYXJzZUludGVyc2VjdGlvblR5cGVPckhpZ2hlcigpe3JldHVybiB0aGlzLnRzUGFyc2VVbmlvbk9ySW50ZXJzZWN0aW9uVHlwZShcIlRTSW50ZXJzZWN0aW9uVHlwZVwiLHRoaXMudHNQYXJzZVR5cGVPcGVyYXRvck9ySGlnaGVyLmJpbmQodGhpcyksNDUpfXRzUGFyc2VVbmlvblR5cGVPckhpZ2hlcigpe3JldHVybiB0aGlzLnRzUGFyc2VVbmlvbk9ySW50ZXJzZWN0aW9uVHlwZShcIlRTVW5pb25UeXBlXCIsdGhpcy50c1BhcnNlSW50ZXJzZWN0aW9uVHlwZU9ySGlnaGVyLmJpbmQodGhpcyksNDMpfXRzSXNTdGFydE9mRnVuY3Rpb25UeXBlKCl7cmV0dXJuIHRoaXMubWF0Y2goNDcpPyEwOnRoaXMubWF0Y2goMTApJiZ0aGlzLnRzTG9va0FoZWFkKHRoaXMudHNJc1VuYW1iaWd1b3VzbHlTdGFydE9mRnVuY3Rpb25UeXBlLmJpbmQodGhpcykpfXRzU2tpcFBhcmFtZXRlclN0YXJ0KCl7aWYoUyh0aGlzLnN0YXRlLnR5cGUpfHx0aGlzLm1hdGNoKDc4KSlyZXR1cm4gdGhpcy5uZXh0KCksITA7aWYodGhpcy5tYXRjaCg1KSl7bGV0e2Vycm9yczplfT10aGlzLnN0YXRlLHM9ZS5sZW5ndGg7dHJ5e3JldHVybiB0aGlzLnBhcnNlT2JqZWN0TGlrZSg4LCEwKSxlLmxlbmd0aD09PXN9Y2F0Y2h7cmV0dXJuITF9fWlmKHRoaXMubWF0Y2goMCkpe3RoaXMubmV4dCgpO2xldHtlcnJvcnM6ZX09dGhpcy5zdGF0ZSxzPWUubGVuZ3RoO3RyeXtyZXR1cm4gc3VwZXIucGFyc2VCaW5kaW5nTGlzdCgzLDkzLDEpLGUubGVuZ3RoPT09c31jYXRjaHtyZXR1cm4hMX19cmV0dXJuITF9dHNJc1VuYW1iaWd1b3VzbHlTdGFydE9mRnVuY3Rpb25UeXBlKCl7cmV0dXJuIHRoaXMubmV4dCgpLCEhKHRoaXMubWF0Y2goMTEpfHx0aGlzLm1hdGNoKDIxKXx8dGhpcy50c1NraXBQYXJhbWV0ZXJTdGFydCgpJiYodGhpcy5tYXRjaCgxNCl8fHRoaXMubWF0Y2goMTIpfHx0aGlzLm1hdGNoKDE3KXx8dGhpcy5tYXRjaCgyOSl8fHRoaXMubWF0Y2goMTEpJiYodGhpcy5uZXh0KCksdGhpcy5tYXRjaCgxOSkpKSl9dHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKGUpe3JldHVybiB0aGlzLnRzSW5UeXBlKCgpPT57bGV0IHM9dGhpcy5zdGFydE5vZGUoKTt0aGlzLmV4cGVjdChlKTtsZXQgaT10aGlzLnN0YXJ0Tm9kZSgpLHI9ISF0aGlzLnRzVHJ5UGFyc2UodGhpcy50c1BhcnNlVHlwZVByZWRpY2F0ZUFzc2VydHMuYmluZCh0aGlzKSk7aWYociYmdGhpcy5tYXRjaCg3OCkpe2xldCBoPXRoaXMudHNQYXJzZVRoaXNUeXBlT3JUaGlzVHlwZVByZWRpY2F0ZSgpO3JldHVybiBoLnR5cGU9PT1cIlRTVGhpc1R5cGVcIj8oaS5wYXJhbWV0ZXJOYW1lPWgsaS5hc3NlcnRzPSEwLGkudHlwZUFubm90YXRpb249bnVsbCxoPXRoaXMuZmluaXNoTm9kZShpLFwiVFNUeXBlUHJlZGljYXRlXCIpKToodGhpcy5yZXNldFN0YXJ0TG9jYXRpb25Gcm9tTm9kZShoLGkpLGguYXNzZXJ0cz0hMCkscy50eXBlQW5ub3RhdGlvbj1oLHRoaXMuZmluaXNoTm9kZShzLFwiVFNUeXBlQW5ub3RhdGlvblwiKX1sZXQgbj10aGlzLnRzSXNJZGVudGlmaWVyKCkmJnRoaXMudHNUcnlQYXJzZSh0aGlzLnRzUGFyc2VUeXBlUHJlZGljYXRlUHJlZml4LmJpbmQodGhpcykpO2lmKCFuKXJldHVybiByPyhpLnBhcmFtZXRlck5hbWU9dGhpcy5wYXJzZUlkZW50aWZpZXIoKSxpLmFzc2VydHM9cixpLnR5cGVBbm5vdGF0aW9uPW51bGwscy50eXBlQW5ub3RhdGlvbj10aGlzLmZpbmlzaE5vZGUoaSxcIlRTVHlwZVByZWRpY2F0ZVwiKSx0aGlzLmZpbmlzaE5vZGUocyxcIlRTVHlwZUFubm90YXRpb25cIikpOnRoaXMudHNQYXJzZVR5cGVBbm5vdGF0aW9uKCExLHMpO2xldCBvPXRoaXMudHNQYXJzZVR5cGVBbm5vdGF0aW9uKCExKTtyZXR1cm4gaS5wYXJhbWV0ZXJOYW1lPW4saS50eXBlQW5ub3RhdGlvbj1vLGkuYXNzZXJ0cz1yLHMudHlwZUFubm90YXRpb249dGhpcy5maW5pc2hOb2RlKGksXCJUU1R5cGVQcmVkaWNhdGVcIiksdGhpcy5maW5pc2hOb2RlKHMsXCJUU1R5cGVBbm5vdGF0aW9uXCIpfSl9dHNUcnlQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKCl7aWYodGhpcy5tYXRjaCgxNCkpcmV0dXJuIHRoaXMudHNQYXJzZVR5cGVPclR5cGVQcmVkaWNhdGVBbm5vdGF0aW9uKDE0KX10c1RyeVBhcnNlVHlwZUFubm90YXRpb24oKXtpZih0aGlzLm1hdGNoKDE0KSlyZXR1cm4gdGhpcy50c1BhcnNlVHlwZUFubm90YXRpb24oKX10c1RyeVBhcnNlVHlwZSgpe3JldHVybiB0aGlzLnRzRWF0VGhlblBhcnNlVHlwZSgxNCl9dHNQYXJzZVR5cGVQcmVkaWNhdGVQcmVmaXgoKXtsZXQgZT10aGlzLnBhcnNlSWRlbnRpZmllcigpO2lmKHRoaXMuaXNDb250ZXh0dWFsKDExNCkmJiF0aGlzLmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKXJldHVybiB0aGlzLm5leHQoKSxlfXRzUGFyc2VUeXBlUHJlZGljYXRlQXNzZXJ0cygpe2lmKHRoaXMuc3RhdGUudHlwZSE9PTEwNylyZXR1cm4hMTtsZXQgZT10aGlzLnN0YXRlLmNvbnRhaW5zRXNjO3JldHVybiB0aGlzLm5leHQoKSwhUyh0aGlzLnN0YXRlLnR5cGUpJiYhdGhpcy5tYXRjaCg3OCk/ITE6KGUmJnRoaXMucmFpc2UocC5JbnZhbGlkRXNjYXBlZFJlc2VydmVkV29yZCx7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2MscmVzZXJ2ZWRXb3JkOlwiYXNzZXJ0c1wifSksITApfXRzUGFyc2VUeXBlQW5ub3RhdGlvbihlPSEwLHM9dGhpcy5zdGFydE5vZGUoKSl7cmV0dXJuIHRoaXMudHNJblR5cGUoKCk9PntlJiZ0aGlzLmV4cGVjdCgxNCkscy50eXBlQW5ub3RhdGlvbj10aGlzLnRzUGFyc2VUeXBlKCl9KSx0aGlzLmZpbmlzaE5vZGUocyxcIlRTVHlwZUFubm90YXRpb25cIil9dHNQYXJzZVR5cGUoKXtLdCh0aGlzLnN0YXRlLmluVHlwZSk7bGV0IGU9dGhpcy50c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlKCk7aWYodGhpcy5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHR8fHRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl8fCF0aGlzLmVhdCg4MSkpcmV0dXJuIGU7bGV0IHM9dGhpcy5zdGFydE5vZGVBdE5vZGUoZSk7cmV0dXJuIHMuY2hlY2tUeXBlPWUscy5leHRlbmRzVHlwZT10aGlzLnRzSW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0KCgpPT50aGlzLnRzUGFyc2VOb25Db25kaXRpb25hbFR5cGUoKSksdGhpcy5leHBlY3QoMTcpLHMudHJ1ZVR5cGU9dGhpcy50c0luQWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCgoKT0+dGhpcy50c1BhcnNlVHlwZSgpKSx0aGlzLmV4cGVjdCgxNCkscy5mYWxzZVR5cGU9dGhpcy50c0luQWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dCgoKT0+dGhpcy50c1BhcnNlVHlwZSgpKSx0aGlzLmZpbmlzaE5vZGUocyxcIlRTQ29uZGl0aW9uYWxUeXBlXCIpfWlzQWJzdHJhY3RDb25zdHJ1Y3RvclNpZ25hdHVyZSgpe3JldHVybiB0aGlzLmlzQ29udGV4dHVhbCgxMjIpJiZ0aGlzLmxvb2thaGVhZCgpLnR5cGU9PT03N310c1BhcnNlTm9uQ29uZGl0aW9uYWxUeXBlKCl7cmV0dXJuIHRoaXMudHNJc1N0YXJ0T2ZGdW5jdGlvblR5cGUoKT90aGlzLnRzUGFyc2VGdW5jdGlvbk9yQ29uc3RydWN0b3JUeXBlKFwiVFNGdW5jdGlvblR5cGVcIik6dGhpcy5tYXRjaCg3Nyk/dGhpcy50c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZShcIlRTQ29uc3RydWN0b3JUeXBlXCIpOnRoaXMuaXNBYnN0cmFjdENvbnN0cnVjdG9yU2lnbmF0dXJlKCk/dGhpcy50c1BhcnNlRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZShcIlRTQ29uc3RydWN0b3JUeXBlXCIsITApOnRoaXMudHNQYXJzZVVuaW9uVHlwZU9ySGlnaGVyKCl9dHNQYXJzZVR5cGVBc3NlcnRpb24oKXt0aGlzLmdldFBsdWdpbk9wdGlvbihcInR5cGVzY3JpcHRcIixcImRpc2FsbG93QW1iaWd1b3VzSlNYTGlrZVwiKSYmdGhpcy5yYWlzZSh5LlJlc2VydmVkVHlwZUFzc2VydGlvbix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pO2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUudHlwZUFubm90YXRpb249dGhpcy50c0luVHlwZSgoKT0+KHRoaXMubmV4dCgpLHRoaXMubWF0Y2goNzUpP3RoaXMudHNQYXJzZVR5cGVSZWZlcmVuY2UoKTp0aGlzLnRzUGFyc2VUeXBlKCkpKSx0aGlzLmV4cGVjdCg0OCksZS5leHByZXNzaW9uPXRoaXMucGFyc2VNYXliZVVuYXJ5KCksdGhpcy5maW5pc2hOb2RlKGUsXCJUU1R5cGVBc3NlcnRpb25cIil9dHNQYXJzZUhlcml0YWdlQ2xhdXNlKGUpe2xldCBzPXRoaXMuc3RhdGUuc3RhcnRMb2MsaT10aGlzLnRzUGFyc2VEZWxpbWl0ZWRMaXN0KFwiSGVyaXRhZ2VDbGF1c2VFbGVtZW50XCIsKCk9PntsZXQgcj10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiByLmV4cHJlc3Npb249dGhpcy50c1BhcnNlRW50aXR5TmFtZSgpLHRoaXMubWF0Y2goNDcpJiYoci50eXBlUGFyYW1ldGVycz10aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzKCkpLHRoaXMuZmluaXNoTm9kZShyLFwiVFNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHNcIil9KTtyZXR1cm4gaS5sZW5ndGh8fHRoaXMucmFpc2UoeS5FbXB0eUhlcml0YWdlQ2xhdXNlVHlwZSx7YXQ6cyx0b2tlbjplfSksaX10c1BhcnNlSW50ZXJmYWNlRGVjbGFyYXRpb24oZSxzPXt9KXtpZih0aGlzLmhhc0ZvbGxvd2luZ0xpbmVCcmVhaygpKXJldHVybiBudWxsO3RoaXMuZXhwZWN0Q29udGV4dHVhbCgxMjcpLHMuZGVjbGFyZSYmKGUuZGVjbGFyZT0hMCksUyh0aGlzLnN0YXRlLnR5cGUpPyhlLmlkPXRoaXMucGFyc2VJZGVudGlmaWVyKCksdGhpcy5jaGVja0lkZW50aWZpZXIoZS5pZCwxMzApKTooZS5pZD1udWxsLHRoaXMucmFpc2UoeS5NaXNzaW5nSW50ZXJmYWNlTmFtZSx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pKSxlLnR5cGVQYXJhbWV0ZXJzPXRoaXMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKHRoaXMudHNQYXJzZUluT3V0Q29uc3RNb2RpZmllcnMpLHRoaXMuZWF0KDgxKSYmKGUuZXh0ZW5kcz10aGlzLnRzUGFyc2VIZXJpdGFnZUNsYXVzZShcImV4dGVuZHNcIikpO2xldCBpPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGkuYm9keT10aGlzLnRzSW5UeXBlKHRoaXMudHNQYXJzZU9iamVjdFR5cGVNZW1iZXJzLmJpbmQodGhpcykpLGUuYm9keT10aGlzLmZpbmlzaE5vZGUoaSxcIlRTSW50ZXJmYWNlQm9keVwiKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTSW50ZXJmYWNlRGVjbGFyYXRpb25cIil9dHNQYXJzZVR5cGVBbGlhc0RlY2xhcmF0aW9uKGUpe3JldHVybiBlLmlkPXRoaXMucGFyc2VJZGVudGlmaWVyKCksdGhpcy5jaGVja0lkZW50aWZpZXIoZS5pZCwyKSxlLnR5cGVBbm5vdGF0aW9uPXRoaXMudHNJblR5cGUoKCk9PntpZihlLnR5cGVQYXJhbWV0ZXJzPXRoaXMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKHRoaXMudHNQYXJzZUluT3V0TW9kaWZpZXJzKSx0aGlzLmV4cGVjdCgyOSksdGhpcy5pc0NvbnRleHR1YWwoMTEyKSYmdGhpcy5sb29rYWhlYWQoKS50eXBlIT09MTYpe2xldCBzPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZShzLFwiVFNJbnRyaW5zaWNLZXl3b3JkXCIpfXJldHVybiB0aGlzLnRzUGFyc2VUeXBlKCl9KSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiKX10c0luTm9Db250ZXh0KGUpe2xldCBzPXRoaXMuc3RhdGUuY29udGV4dDt0aGlzLnN0YXRlLmNvbnRleHQ9W3NbMF1dO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7dGhpcy5zdGF0ZS5jb250ZXh0PXN9fXRzSW5UeXBlKGUpe2xldCBzPXRoaXMuc3RhdGUuaW5UeXBlO3RoaXMuc3RhdGUuaW5UeXBlPSEwO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7dGhpcy5zdGF0ZS5pblR5cGU9c319dHNJbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQoZSl7bGV0IHM9dGhpcy5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ7dGhpcy5zdGF0ZS5pbkRpc2FsbG93Q29uZGl0aW9uYWxUeXBlc0NvbnRleHQ9ITA7dHJ5e3JldHVybiBlKCl9ZmluYWxseXt0aGlzLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dD1zfX10c0luQWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dChlKXtsZXQgcz10aGlzLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dDt0aGlzLnN0YXRlLmluRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dD0hMTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e3RoaXMuc3RhdGUuaW5EaXNhbGxvd0NvbmRpdGlvbmFsVHlwZXNDb250ZXh0PXN9fXRzRWF0VGhlblBhcnNlVHlwZShlKXtpZih0aGlzLm1hdGNoKGUpKXJldHVybiB0aGlzLnRzTmV4dFRoZW5QYXJzZVR5cGUoKX10c0V4cGVjdFRoZW5QYXJzZVR5cGUoZSl7cmV0dXJuIHRoaXMudHNJblR5cGUoKCk9Pih0aGlzLmV4cGVjdChlKSx0aGlzLnRzUGFyc2VUeXBlKCkpKX10c05leHRUaGVuUGFyc2VUeXBlKCl7cmV0dXJuIHRoaXMudHNJblR5cGUoKCk9Pih0aGlzLm5leHQoKSx0aGlzLnRzUGFyc2VUeXBlKCkpKX10c1BhcnNlRW51bU1lbWJlcigpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUuaWQ9dGhpcy5tYXRjaCgxMzEpP3N1cGVyLnBhcnNlU3RyaW5nTGl0ZXJhbCh0aGlzLnN0YXRlLnZhbHVlKTp0aGlzLnBhcnNlSWRlbnRpZmllcighMCksdGhpcy5lYXQoMjkpJiYoZS5pbml0aWFsaXplcj1zdXBlci5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTRW51bU1lbWJlclwiKX10c1BhcnNlRW51bURlY2xhcmF0aW9uKGUscz17fSl7cmV0dXJuIHMuY29uc3QmJihlLmNvbnN0PSEwKSxzLmRlY2xhcmUmJihlLmRlY2xhcmU9ITApLHRoaXMuZXhwZWN0Q29udGV4dHVhbCgxMjQpLGUuaWQ9dGhpcy5wYXJzZUlkZW50aWZpZXIoKSx0aGlzLmNoZWNrSWRlbnRpZmllcihlLmlkLGUuY29uc3Q/ODk3MTo4NDU5KSx0aGlzLmV4cGVjdCg1KSxlLm1lbWJlcnM9dGhpcy50c1BhcnNlRGVsaW1pdGVkTGlzdChcIkVudW1NZW1iZXJzXCIsdGhpcy50c1BhcnNlRW51bU1lbWJlci5iaW5kKHRoaXMpKSx0aGlzLmV4cGVjdCg4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTRW51bURlY2xhcmF0aW9uXCIpfXRzUGFyc2VNb2R1bGVCbG9jaygpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMuc2NvcGUuZW50ZXIoMCksdGhpcy5leHBlY3QoNSksc3VwZXIucGFyc2VCbG9ja09yTW9kdWxlQmxvY2tCb2R5KGUuYm9keT1bXSx2b2lkIDAsITAsOCksdGhpcy5zY29wZS5leGl0KCksdGhpcy5maW5pc2hOb2RlKGUsXCJUU01vZHVsZUJsb2NrXCIpfXRzUGFyc2VNb2R1bGVPck5hbWVzcGFjZURlY2xhcmF0aW9uKGUscz0hMSl7aWYoZS5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpLHN8fHRoaXMuY2hlY2tJZGVudGlmaWVyKGUuaWQsMTAyNCksdGhpcy5lYXQoMTYpKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZSgpO3RoaXMudHNQYXJzZU1vZHVsZU9yTmFtZXNwYWNlRGVjbGFyYXRpb24oaSwhMCksZS5ib2R5PWl9ZWxzZSB0aGlzLnNjb3BlLmVudGVyKDI1NiksdGhpcy5wcm9kUGFyYW0uZW50ZXIodGUpLGUuYm9keT10aGlzLnRzUGFyc2VNb2R1bGVCbG9jaygpLHRoaXMucHJvZFBhcmFtLmV4aXQoKSx0aGlzLnNjb3BlLmV4aXQoKTtyZXR1cm4gdGhpcy5maW5pc2hOb2RlKGUsXCJUU01vZHVsZURlY2xhcmF0aW9uXCIpfXRzUGFyc2VBbWJpZW50RXh0ZXJuYWxNb2R1bGVEZWNsYXJhdGlvbihlKXtyZXR1cm4gdGhpcy5pc0NvbnRleHR1YWwoMTEwKT8oZS5nbG9iYWw9ITAsZS5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpKTp0aGlzLm1hdGNoKDEzMSk/ZS5pZD1zdXBlci5wYXJzZVN0cmluZ0xpdGVyYWwodGhpcy5zdGF0ZS52YWx1ZSk6dGhpcy51bmV4cGVjdGVkKCksdGhpcy5tYXRjaCg1KT8odGhpcy5zY29wZS5lbnRlcigyNTYpLHRoaXMucHJvZFBhcmFtLmVudGVyKHRlKSxlLmJvZHk9dGhpcy50c1BhcnNlTW9kdWxlQmxvY2soKSx0aGlzLnByb2RQYXJhbS5leGl0KCksdGhpcy5zY29wZS5leGl0KCkpOnRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJUU01vZHVsZURlY2xhcmF0aW9uXCIpfXRzUGFyc2VJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihlLHMsaSl7ZS5pc0V4cG9ydD1pfHwhMSxlLmlkPXN8fHRoaXMucGFyc2VJZGVudGlmaWVyKCksdGhpcy5jaGVja0lkZW50aWZpZXIoZS5pZCw0MDk2KSx0aGlzLmV4cGVjdCgyOSk7bGV0IHI9dGhpcy50c1BhcnNlTW9kdWxlUmVmZXJlbmNlKCk7cmV0dXJuIGUuaW1wb3J0S2luZD09PVwidHlwZVwiJiZyLnR5cGUhPT1cIlRTRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2VcIiYmdGhpcy5yYWlzZSh5LkltcG9ydEFsaWFzSGFzSW1wb3J0VHlwZSx7YXQ6cn0pLGUubW9kdWxlUmVmZXJlbmNlPXIsdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb25cIil9dHNJc0V4dGVybmFsTW9kdWxlUmVmZXJlbmNlKCl7cmV0dXJuIHRoaXMuaXNDb250ZXh0dWFsKDExNykmJnRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTQwfXRzUGFyc2VNb2R1bGVSZWZlcmVuY2UoKXtyZXR1cm4gdGhpcy50c0lzRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2UoKT90aGlzLnRzUGFyc2VFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpOnRoaXMudHNQYXJzZUVudGl0eU5hbWUoITEpfXRzUGFyc2VFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSgpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMuZXhwZWN0Q29udGV4dHVhbCgxMTcpLHRoaXMuZXhwZWN0KDEwKSx0aGlzLm1hdGNoKDEzMSl8fHRoaXMudW5leHBlY3RlZCgpLGUuZXhwcmVzc2lvbj1zdXBlci5wYXJzZUV4cHJBdG9tKCksdGhpcy5leHBlY3QoMTEpLHRoaXMuc2F3VW5hbWJpZ3VvdXNFU009ITAsdGhpcy5maW5pc2hOb2RlKGUsXCJUU0V4dGVybmFsTW9kdWxlUmVmZXJlbmNlXCIpfXRzTG9va0FoZWFkKGUpe2xldCBzPXRoaXMuc3RhdGUuY2xvbmUoKSxpPWUoKTtyZXR1cm4gdGhpcy5zdGF0ZT1zLGl9dHNUcnlQYXJzZUFuZENhdGNoKGUpe2xldCBzPXRoaXMudHJ5UGFyc2UoaT0+ZSgpfHxpKCkpO2lmKCEocy5hYm9ydGVkfHwhcy5ub2RlKSlyZXR1cm4gcy5lcnJvciYmKHRoaXMuc3RhdGU9cy5mYWlsU3RhdGUpLHMubm9kZX10c1RyeVBhcnNlKGUpe2xldCBzPXRoaXMuc3RhdGUuY2xvbmUoKSxpPWUoKTtpZihpIT09dm9pZCAwJiZpIT09ITEpcmV0dXJuIGk7dGhpcy5zdGF0ZT1zfXRzVHJ5UGFyc2VEZWNsYXJlKGUpe2lmKHRoaXMuaXNMaW5lVGVybWluYXRvcigpKXJldHVybjtsZXQgcz10aGlzLnN0YXRlLnR5cGUsaTtyZXR1cm4gdGhpcy5pc0NvbnRleHR1YWwoOTkpJiYocz03NCxpPVwibGV0XCIpLHRoaXMudHNJbkFtYmllbnRDb250ZXh0KCgpPT57c3dpdGNoKHMpe2Nhc2UgNjg6cmV0dXJuIGUuZGVjbGFyZT0hMCxzdXBlci5wYXJzZUZ1bmN0aW9uU3RhdGVtZW50KGUsITEsITEpO2Nhc2UgODA6cmV0dXJuIGUuZGVjbGFyZT0hMCx0aGlzLnBhcnNlQ2xhc3MoZSwhMCwhMSk7Y2FzZSAxMjQ6cmV0dXJuIHRoaXMudHNQYXJzZUVudW1EZWNsYXJhdGlvbihlLHtkZWNsYXJlOiEwfSk7Y2FzZSAxMTA6cmV0dXJuIHRoaXMudHNQYXJzZUFtYmllbnRFeHRlcm5hbE1vZHVsZURlY2xhcmF0aW9uKGUpO2Nhc2UgNzU6Y2FzZSA3NDpyZXR1cm4hdGhpcy5tYXRjaCg3NSl8fCF0aGlzLmlzTG9va2FoZWFkQ29udGV4dHVhbChcImVudW1cIik/KGUuZGVjbGFyZT0hMCx0aGlzLnBhcnNlVmFyU3RhdGVtZW50KGUsaXx8dGhpcy5zdGF0ZS52YWx1ZSwhMCkpOih0aGlzLmV4cGVjdCg3NSksdGhpcy50c1BhcnNlRW51bURlY2xhcmF0aW9uKGUse2NvbnN0OiEwLGRlY2xhcmU6ITB9KSk7Y2FzZSAxMjc6e2xldCByPXRoaXMudHNQYXJzZUludGVyZmFjZURlY2xhcmF0aW9uKGUse2RlY2xhcmU6ITB9KTtpZihyKXJldHVybiByfWRlZmF1bHQ6aWYoUyhzKSlyZXR1cm4gdGhpcy50c1BhcnNlRGVjbGFyYXRpb24oZSx0aGlzLnN0YXRlLnZhbHVlLCEwLG51bGwpfX0pfXRzVHJ5UGFyc2VFeHBvcnREZWNsYXJhdGlvbigpe3JldHVybiB0aGlzLnRzUGFyc2VEZWNsYXJhdGlvbih0aGlzLnN0YXJ0Tm9kZSgpLHRoaXMuc3RhdGUudmFsdWUsITAsbnVsbCl9dHNQYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoZSxzLGkpe3N3aXRjaChzLm5hbWUpe2Nhc2VcImRlY2xhcmVcIjp7bGV0IHI9dGhpcy50c1RyeVBhcnNlRGVjbGFyZShlKTtyZXR1cm4gciYmKHIuZGVjbGFyZT0hMCkscn1jYXNlXCJnbG9iYWxcIjppZih0aGlzLm1hdGNoKDUpKXt0aGlzLnNjb3BlLmVudGVyKDI1NiksdGhpcy5wcm9kUGFyYW0uZW50ZXIodGUpO2xldCByPWU7cmV0dXJuIHIuZ2xvYmFsPSEwLHIuaWQ9cyxyLmJvZHk9dGhpcy50c1BhcnNlTW9kdWxlQmxvY2soKSx0aGlzLnNjb3BlLmV4aXQoKSx0aGlzLnByb2RQYXJhbS5leGl0KCksdGhpcy5maW5pc2hOb2RlKHIsXCJUU01vZHVsZURlY2xhcmF0aW9uXCIpfWJyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMudHNQYXJzZURlY2xhcmF0aW9uKGUscy5uYW1lLCExLGkpfX10c1BhcnNlRGVjbGFyYXRpb24oZSxzLGkscil7c3dpdGNoKHMpe2Nhc2VcImFic3RyYWN0XCI6aWYodGhpcy50c0NoZWNrTGluZVRlcm1pbmF0b3IoaSkmJih0aGlzLm1hdGNoKDgwKXx8Uyh0aGlzLnN0YXRlLnR5cGUpKSlyZXR1cm4gdGhpcy50c1BhcnNlQWJzdHJhY3REZWNsYXJhdGlvbihlLHIpO2JyZWFrO2Nhc2VcIm1vZHVsZVwiOmlmKHRoaXMudHNDaGVja0xpbmVUZXJtaW5hdG9yKGkpKXtpZih0aGlzLm1hdGNoKDEzMSkpcmV0dXJuIHRoaXMudHNQYXJzZUFtYmllbnRFeHRlcm5hbE1vZHVsZURlY2xhcmF0aW9uKGUpO2lmKFModGhpcy5zdGF0ZS50eXBlKSlyZXR1cm4gdGhpcy50c1BhcnNlTW9kdWxlT3JOYW1lc3BhY2VEZWNsYXJhdGlvbihlKX1icmVhaztjYXNlXCJuYW1lc3BhY2VcIjppZih0aGlzLnRzQ2hlY2tMaW5lVGVybWluYXRvcihpKSYmUyh0aGlzLnN0YXRlLnR5cGUpKXJldHVybiB0aGlzLnRzUGFyc2VNb2R1bGVPck5hbWVzcGFjZURlY2xhcmF0aW9uKGUpO2JyZWFrO2Nhc2VcInR5cGVcIjppZih0aGlzLnRzQ2hlY2tMaW5lVGVybWluYXRvcihpKSYmUyh0aGlzLnN0YXRlLnR5cGUpKXJldHVybiB0aGlzLnRzUGFyc2VUeXBlQWxpYXNEZWNsYXJhdGlvbihlKTticmVha319dHNDaGVja0xpbmVUZXJtaW5hdG9yKGUpe3JldHVybiBlP3RoaXMuaGFzRm9sbG93aW5nTGluZUJyZWFrKCk/ITE6KHRoaXMubmV4dCgpLCEwKTohdGhpcy5pc0xpbmVUZXJtaW5hdG9yKCl9dHNUcnlQYXJzZUdlbmVyaWNBc3luY0Fycm93RnVuY3Rpb24oZSl7aWYoIXRoaXMubWF0Y2goNDcpKXJldHVybjtsZXQgcz10aGlzLnN0YXRlLm1heWJlSW5BcnJvd1BhcmFtZXRlcnM7dGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPSEwO2xldCBpPXRoaXMudHNUcnlQYXJzZUFuZENhdGNoKCgpPT57bGV0IHI9dGhpcy5zdGFydE5vZGVBdChlKTtyZXR1cm4gci50eXBlUGFyYW1ldGVycz10aGlzLnRzUGFyc2VUeXBlUGFyYW1ldGVycyh0aGlzLnRzUGFyc2VDb25zdE1vZGlmaWVyKSxzdXBlci5wYXJzZUZ1bmN0aW9uUGFyYW1zKHIpLHIucmV0dXJuVHlwZT10aGlzLnRzVHJ5UGFyc2VUeXBlT3JUeXBlUHJlZGljYXRlQW5ub3RhdGlvbigpLHRoaXMuZXhwZWN0KDE5KSxyfSk7aWYodGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPXMsISFpKXJldHVybiBzdXBlci5wYXJzZUFycm93RXhwcmVzc2lvbihpLG51bGwsITApfXRzUGFyc2VUeXBlQXJndW1lbnRzSW5FeHByZXNzaW9uKCl7aWYodGhpcy5yZVNjYW5fbHQoKT09PTQ3KXJldHVybiB0aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzKCl9dHNQYXJzZVR5cGVBcmd1bWVudHMoKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiBlLnBhcmFtcz10aGlzLnRzSW5UeXBlKCgpPT50aGlzLnRzSW5Ob0NvbnRleHQoKCk9Pih0aGlzLmV4cGVjdCg0NyksdGhpcy50c1BhcnNlRGVsaW1pdGVkTGlzdChcIlR5cGVQYXJhbWV0ZXJzT3JBcmd1bWVudHNcIix0aGlzLnRzUGFyc2VUeXBlLmJpbmQodGhpcykpKSkpLGUucGFyYW1zLmxlbmd0aD09PTA/dGhpcy5yYWlzZSh5LkVtcHR5VHlwZUFyZ3VtZW50cyx7YXQ6ZX0pOiF0aGlzLnN0YXRlLmluVHlwZSYmdGhpcy5jdXJDb250ZXh0KCk9PT13LmJyYWNlJiZ0aGlzLnJlU2Nhbl9sdF9ndCgpLHRoaXMuZXhwZWN0KDQ4KSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRTVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25cIil9dHNJc0RlY2xhcmF0aW9uU3RhcnQoKXtyZXR1cm4gRWkodGhpcy5zdGF0ZS50eXBlKX1pc0V4cG9ydERlZmF1bHRTcGVjaWZpZXIoKXtyZXR1cm4gdGhpcy50c0lzRGVjbGFyYXRpb25TdGFydCgpPyExOnN1cGVyLmlzRXhwb3J0RGVmYXVsdFNwZWNpZmllcigpfXBhcnNlQXNzaWduYWJsZUxpc3RJdGVtKGUscyl7bGV0IGk9dGhpcy5zdGF0ZS5zdGFydExvYyxyPXt9O3RoaXMudHNQYXJzZU1vZGlmaWVycyh7YWxsb3dlZE1vZGlmaWVyczpbXCJwdWJsaWNcIixcInByaXZhdGVcIixcInByb3RlY3RlZFwiLFwib3ZlcnJpZGVcIixcInJlYWRvbmx5XCJdfSxyKTtsZXQgbj1yLmFjY2Vzc2liaWxpdHksbz1yLm92ZXJyaWRlLGg9ci5yZWFkb25seTshKGUmNCkmJihufHxofHxvKSYmdGhpcy5yYWlzZSh5LlVuZXhwZWN0ZWRQYXJhbWV0ZXJNb2RpZmllcix7YXQ6aX0pO2xldCBsPXRoaXMucGFyc2VNYXliZURlZmF1bHQoKTt0aGlzLnBhcnNlQXNzaWduYWJsZUxpc3RJdGVtVHlwZXMobCxlKTtsZXQgYz10aGlzLnBhcnNlTWF5YmVEZWZhdWx0KGwubG9jLnN0YXJ0LGwpO2lmKG58fGh8fG8pe2xldCB1PXRoaXMuc3RhcnROb2RlQXQoaSk7cmV0dXJuIHMubGVuZ3RoJiYodS5kZWNvcmF0b3JzPXMpLG4mJih1LmFjY2Vzc2liaWxpdHk9biksaCYmKHUucmVhZG9ubHk9aCksbyYmKHUub3ZlcnJpZGU9byksYy50eXBlIT09XCJJZGVudGlmaWVyXCImJmMudHlwZSE9PVwiQXNzaWdubWVudFBhdHRlcm5cIiYmdGhpcy5yYWlzZSh5LlVuc3VwcG9ydGVkUGFyYW1ldGVyUHJvcGVydHlLaW5kLHthdDp1fSksdS5wYXJhbWV0ZXI9Yyx0aGlzLmZpbmlzaE5vZGUodSxcIlRTUGFyYW1ldGVyUHJvcGVydHlcIil9cmV0dXJuIHMubGVuZ3RoJiYobC5kZWNvcmF0b3JzPXMpLGN9aXNTaW1wbGVQYXJhbWV0ZXIoZSl7cmV0dXJuIGUudHlwZT09PVwiVFNQYXJhbWV0ZXJQcm9wZXJ0eVwiJiZzdXBlci5pc1NpbXBsZVBhcmFtZXRlcihlLnBhcmFtZXRlcil8fHN1cGVyLmlzU2ltcGxlUGFyYW1ldGVyKGUpfXRzRGlzYWxsb3dPcHRpb25hbFBhdHRlcm4oZSl7Zm9yKGxldCBzIG9mIGUucGFyYW1zKXMudHlwZSE9PVwiSWRlbnRpZmllclwiJiZzLm9wdGlvbmFsJiYhdGhpcy5zdGF0ZS5pc0FtYmllbnRDb250ZXh0JiZ0aGlzLnJhaXNlKHkuUGF0dGVybklzT3B0aW9uYWwse2F0OnN9KX1zZXRBcnJvd0Z1bmN0aW9uUGFyYW1ldGVycyhlLHMsaSl7c3VwZXIuc2V0QXJyb3dGdW5jdGlvblBhcmFtZXRlcnMoZSxzLGkpLHRoaXMudHNEaXNhbGxvd09wdGlvbmFsUGF0dGVybihlKX1wYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChlLHMsaT0hMSl7dGhpcy5tYXRjaCgxNCkmJihlLnJldHVyblR5cGU9dGhpcy50c1BhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24oMTQpKTtsZXQgcj1zPT09XCJGdW5jdGlvbkRlY2xhcmF0aW9uXCI/XCJUU0RlY2xhcmVGdW5jdGlvblwiOnM9PT1cIkNsYXNzTWV0aG9kXCJ8fHM9PT1cIkNsYXNzUHJpdmF0ZU1ldGhvZFwiP1wiVFNEZWNsYXJlTWV0aG9kXCI6dm9pZCAwO3JldHVybiByJiYhdGhpcy5tYXRjaCg1KSYmdGhpcy5pc0xpbmVUZXJtaW5hdG9yKCk/dGhpcy5maW5pc2hOb2RlKGUscik6cj09PVwiVFNEZWNsYXJlRnVuY3Rpb25cIiYmdGhpcy5zdGF0ZS5pc0FtYmllbnRDb250ZXh0JiYodGhpcy5yYWlzZSh5LkRlY2xhcmVGdW5jdGlvbkhhc0ltcGxlbWVudGF0aW9uLHthdDplfSksZS5kZWNsYXJlKT9zdXBlci5wYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChlLHIsaSk6KHRoaXMudHNEaXNhbGxvd09wdGlvbmFsUGF0dGVybihlKSxzdXBlci5wYXJzZUZ1bmN0aW9uQm9keUFuZEZpbmlzaChlLHMsaSkpfXJlZ2lzdGVyRnVuY3Rpb25TdGF0ZW1lbnRJZChlKXshZS5ib2R5JiZlLmlkP3RoaXMuY2hlY2tJZGVudGlmaWVyKGUuaWQsMTAyNCk6c3VwZXIucmVnaXN0ZXJGdW5jdGlvblN0YXRlbWVudElkKGUpfXRzQ2hlY2tGb3JJbnZhbGlkVHlwZUNhc3RzKGUpe2UuZm9yRWFjaChzPT57KHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cIlRTVHlwZUNhc3RFeHByZXNzaW9uXCImJnRoaXMucmFpc2UoeS5VbmV4cGVjdGVkVHlwZUFubm90YXRpb24se2F0OnMudHlwZUFubm90YXRpb259KX0pfXRvUmVmZXJlbmNlZExpc3QoZSxzKXtyZXR1cm4gdGhpcy50c0NoZWNrRm9ySW52YWxpZFR5cGVDYXN0cyhlKSxlfXBhcnNlQXJyYXlMaWtlKGUscyxpLHIpe2xldCBuPXN1cGVyLnBhcnNlQXJyYXlMaWtlKGUscyxpLHIpO3JldHVybiBuLnR5cGU9PT1cIkFycmF5RXhwcmVzc2lvblwiJiZ0aGlzLnRzQ2hlY2tGb3JJbnZhbGlkVHlwZUNhc3RzKG4uZWxlbWVudHMpLG59cGFyc2VTdWJzY3JpcHQoZSxzLGkscil7aWYoIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJnRoaXMubWF0Y2goMzUpKXt0aGlzLnN0YXRlLmNhblN0YXJ0SlNYRWxlbWVudD0hMSx0aGlzLm5leHQoKTtsZXQgbz10aGlzLnN0YXJ0Tm9kZUF0KHMpO3JldHVybiBvLmV4cHJlc3Npb249ZSx0aGlzLmZpbmlzaE5vZGUobyxcIlRTTm9uTnVsbEV4cHJlc3Npb25cIil9bGV0IG49ITE7aWYodGhpcy5tYXRjaCgxOCkmJnRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTYwKXtpZihpKXJldHVybiByLnN0b3A9ITAsZTtyLm9wdGlvbmFsQ2hhaW5NZW1iZXI9bj0hMCx0aGlzLm5leHQoKX1pZih0aGlzLm1hdGNoKDQ3KXx8dGhpcy5tYXRjaCg1MSkpe2xldCBvLGg9dGhpcy50c1RyeVBhcnNlQW5kQ2F0Y2goKCk9PntpZighaSYmdGhpcy5hdFBvc3NpYmxlQXN5bmNBcnJvdyhlKSl7bGV0IGY9dGhpcy50c1RyeVBhcnNlR2VuZXJpY0FzeW5jQXJyb3dGdW5jdGlvbihzKTtpZihmKXJldHVybiBmfWxldCBsPXRoaXMudHNQYXJzZVR5cGVBcmd1bWVudHNJbkV4cHJlc3Npb24oKTtpZighbClyZXR1cm47aWYobiYmIXRoaXMubWF0Y2goMTApKXtvPXRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKTtyZXR1cm59aWYoTWUodGhpcy5zdGF0ZS50eXBlKSl7bGV0IGY9c3VwZXIucGFyc2VUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24oZSxzLHIpO3JldHVybiBmLnR5cGVQYXJhbWV0ZXJzPWwsZn1pZighaSYmdGhpcy5lYXQoMTApKXtsZXQgZj10aGlzLnN0YXJ0Tm9kZUF0KHMpO3JldHVybiBmLmNhbGxlZT1lLGYuYXJndW1lbnRzPXRoaXMucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygxMSwhMSksdGhpcy50c0NoZWNrRm9ySW52YWxpZFR5cGVDYXN0cyhmLmFyZ3VtZW50cyksZi50eXBlUGFyYW1ldGVycz1sLHIub3B0aW9uYWxDaGFpbk1lbWJlciYmKGYub3B0aW9uYWw9biksdGhpcy5maW5pc2hDYWxsRXhwcmVzc2lvbihmLHIub3B0aW9uYWxDaGFpbk1lbWJlcil9bGV0IGM9dGhpcy5zdGF0ZS50eXBlO2lmKGM9PT00OHx8Yz09PTUyfHxjIT09MTAmJlplKGMpJiYhdGhpcy5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSlyZXR1cm47bGV0IHU9dGhpcy5zdGFydE5vZGVBdChzKTtyZXR1cm4gdS5leHByZXNzaW9uPWUsdS50eXBlUGFyYW1ldGVycz1sLHRoaXMuZmluaXNoTm9kZSh1LFwiVFNJbnN0YW50aWF0aW9uRXhwcmVzc2lvblwiKX0pO2lmKG8mJnRoaXMudW5leHBlY3RlZChvLDEwKSxoKXJldHVybiBoLnR5cGU9PT1cIlRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb25cIiYmKHRoaXMubWF0Y2goMTYpfHx0aGlzLm1hdGNoKDE4KSYmdGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpIT09NDApJiZ0aGlzLnJhaXNlKHkuSW52YWxpZFByb3BlcnR5QWNjZXNzQWZ0ZXJJbnN0YW50aWF0aW9uRXhwcmVzc2lvbix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLGh9cmV0dXJuIHN1cGVyLnBhcnNlU3Vic2NyaXB0KGUscyxpLHIpfXBhcnNlTmV3Q2FsbGVlKGUpe3ZhciBzO3N1cGVyLnBhcnNlTmV3Q2FsbGVlKGUpO2xldHtjYWxsZWU6aX09ZTtpLnR5cGU9PT1cIlRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb25cIiYmISgocz1pLmV4dHJhKSE9bnVsbCYmcy5wYXJlbnRoZXNpemVkKSYmKGUudHlwZVBhcmFtZXRlcnM9aS50eXBlUGFyYW1ldGVycyxlLmNhbGxlZT1pLmV4cHJlc3Npb24pfXBhcnNlRXhwck9wKGUscyxpKXtsZXQgcjtpZihOZSg1OCk+aSYmIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJih0aGlzLmlzQ29udGV4dHVhbCg5Myl8fChyPXRoaXMuaXNDb250ZXh0dWFsKDExOCkpKSl7bGV0IG49dGhpcy5zdGFydE5vZGVBdChzKTtyZXR1cm4gbi5leHByZXNzaW9uPWUsbi50eXBlQW5ub3RhdGlvbj10aGlzLnRzSW5UeXBlKCgpPT4odGhpcy5uZXh0KCksdGhpcy5tYXRjaCg3NSk/KHImJnRoaXMucmFpc2UocC5VbmV4cGVjdGVkS2V5d29yZCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvYyxrZXl3b3JkOlwiY29uc3RcIn0pLHRoaXMudHNQYXJzZVR5cGVSZWZlcmVuY2UoKSk6dGhpcy50c1BhcnNlVHlwZSgpKSksdGhpcy5maW5pc2hOb2RlKG4scj9cIlRTU2F0aXNmaWVzRXhwcmVzc2lvblwiOlwiVFNBc0V4cHJlc3Npb25cIiksdGhpcy5yZVNjYW5fbHRfZ3QoKSx0aGlzLnBhcnNlRXhwck9wKG4scyxpKX1yZXR1cm4gc3VwZXIucGFyc2VFeHByT3AoZSxzLGkpfWNoZWNrUmVzZXJ2ZWRXb3JkKGUscyxpLHIpe3RoaXMuc3RhdGUuaXNBbWJpZW50Q29udGV4dHx8c3VwZXIuY2hlY2tSZXNlcnZlZFdvcmQoZSxzLGkscil9Y2hlY2tJbXBvcnRSZWZsZWN0aW9uKGUpe3N1cGVyLmNoZWNrSW1wb3J0UmVmbGVjdGlvbihlKSxlLm1vZHVsZSYmZS5pbXBvcnRLaW5kIT09XCJ2YWx1ZVwiJiZ0aGlzLnJhaXNlKHkuSW1wb3J0UmVmbGVjdGlvbkhhc0ltcG9ydFR5cGUse2F0OmUuc3BlY2lmaWVyc1swXS5sb2Muc3RhcnR9KX1jaGVja0R1cGxpY2F0ZUV4cG9ydHMoKXt9aXNQb3RlbnRpYWxJbXBvcnRQaGFzZShlKXtpZihzdXBlci5pc1BvdGVudGlhbEltcG9ydFBoYXNlKGUpKXJldHVybiEwO2lmKHRoaXMuaXNDb250ZXh0dWFsKDEyOCkpe2xldCBzPXRoaXMubG9va2FoZWFkQ2hhckNvZGUoKTtyZXR1cm4gZT9zPT09MTIzfHxzPT09NDI6cyE9PTYxfXJldHVybiFlJiZ0aGlzLmlzQ29udGV4dHVhbCg4Nyl9YXBwbHlJbXBvcnRQaGFzZShlLHMsaSxyKXtzdXBlci5hcHBseUltcG9ydFBoYXNlKGUscyxpLHIpLHM/ZS5leHBvcnRLaW5kPWk9PT1cInR5cGVcIj9cInR5cGVcIjpcInZhbHVlXCI6ZS5pbXBvcnRLaW5kPWk9PT1cInR5cGVcInx8aT09PVwidHlwZW9mXCI/aTpcInZhbHVlXCJ9cGFyc2VJbXBvcnQoZSl7aWYodGhpcy5tYXRjaCgxMzEpKXJldHVybiBlLmltcG9ydEtpbmQ9XCJ2YWx1ZVwiLHN1cGVyLnBhcnNlSW1wb3J0KGUpO2xldCBzO2lmKFModGhpcy5zdGF0ZS50eXBlKSYmdGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09NjEpcmV0dXJuIGUuaW1wb3J0S2luZD1cInZhbHVlXCIsdGhpcy50c1BhcnNlSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24oZSk7aWYodGhpcy5pc0NvbnRleHR1YWwoMTI4KSl7bGV0IGk9dGhpcy5wYXJzZU1heWJlSW1wb3J0UGhhc2UoZSwhMSk7aWYodGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09NjEpcmV0dXJuIHRoaXMudHNQYXJzZUltcG9ydEVxdWFsc0RlY2xhcmF0aW9uKGUsaSk7cz1zdXBlci5wYXJzZUltcG9ydFNwZWNpZmllcnNBbmRBZnRlcihlLGkpfWVsc2Ugcz1zdXBlci5wYXJzZUltcG9ydChlKTtyZXR1cm4gcy5pbXBvcnRLaW5kPT09XCJ0eXBlXCImJnMuc3BlY2lmaWVycy5sZW5ndGg+MSYmcy5zcGVjaWZpZXJzWzBdLnR5cGU9PT1cIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIiYmdGhpcy5yYWlzZSh5LlR5cGVJbXBvcnRDYW5ub3RTcGVjaWZ5RGVmYXVsdEFuZE5hbWVkLHthdDpzfSksc31wYXJzZUV4cG9ydChlLHMpe2lmKHRoaXMubWF0Y2goODMpKXt0aGlzLm5leHQoKTtsZXQgaT1udWxsO3JldHVybiB0aGlzLmlzQ29udGV4dHVhbCgxMjgpJiZ0aGlzLmlzUG90ZW50aWFsSW1wb3J0UGhhc2UoITEpP2k9dGhpcy5wYXJzZU1heWJlSW1wb3J0UGhhc2UoZSwhMSk6ZS5pbXBvcnRLaW5kPVwidmFsdWVcIix0aGlzLnRzUGFyc2VJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihlLGksITApfWVsc2UgaWYodGhpcy5lYXQoMjkpKXtsZXQgaT1lO3JldHVybiBpLmV4cHJlc3Npb249c3VwZXIucGFyc2VFeHByZXNzaW9uKCksdGhpcy5zZW1pY29sb24oKSx0aGlzLnNhd1VuYW1iaWd1b3VzRVNNPSEwLHRoaXMuZmluaXNoTm9kZShpLFwiVFNFeHBvcnRBc3NpZ25tZW50XCIpfWVsc2UgaWYodGhpcy5lYXRDb250ZXh0dWFsKDkzKSl7bGV0IGk9ZTtyZXR1cm4gdGhpcy5leHBlY3RDb250ZXh0dWFsKDEyNiksaS5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGksXCJUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uXCIpfWVsc2UgcmV0dXJuIHN1cGVyLnBhcnNlRXhwb3J0KGUscyl9aXNBYnN0cmFjdENsYXNzKCl7cmV0dXJuIHRoaXMuaXNDb250ZXh0dWFsKDEyMikmJnRoaXMubG9va2FoZWFkKCkudHlwZT09PTgwfXBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKXtpZih0aGlzLmlzQWJzdHJhY3RDbGFzcygpKXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSxlLmFic3RyYWN0PSEwLHRoaXMucGFyc2VDbGFzcyhlLCEwLCEwKX1pZih0aGlzLm1hdGNoKDEyNykpe2xldCBlPXRoaXMudHNQYXJzZUludGVyZmFjZURlY2xhcmF0aW9uKHRoaXMuc3RhcnROb2RlKCkpO2lmKGUpcmV0dXJuIGV9cmV0dXJuIHN1cGVyLnBhcnNlRXhwb3J0RGVmYXVsdEV4cHJlc3Npb24oKX1wYXJzZVZhclN0YXRlbWVudChlLHMsaT0hMSl7bGV0e2lzQW1iaWVudENvbnRleHQ6cn09dGhpcy5zdGF0ZSxuPXN1cGVyLnBhcnNlVmFyU3RhdGVtZW50KGUscyxpfHxyKTtpZighcilyZXR1cm4gbjtmb3IobGV0e2lkOm8saW5pdDpofW9mIG4uZGVjbGFyYXRpb25zKWgmJihzIT09XCJjb25zdFwifHxvLnR5cGVBbm5vdGF0aW9uP3RoaXMucmFpc2UoeS5Jbml0aWFsaXplck5vdEFsbG93ZWRJbkFtYmllbnRDb250ZXh0LHthdDpofSk6cHIoaCx0aGlzLmhhc1BsdWdpbihcImVzdHJlZVwiKSl8fHRoaXMucmFpc2UoeS5Db25zdEluaXRpYWlsaXplck11c3RCZVN0cmluZ09yTnVtZXJpY0xpdGVyYWxPckxpdGVyYWxFbnVtUmVmZXJlbmNlLHthdDpofSkpO3JldHVybiBufXBhcnNlU3RhdGVtZW50Q29udGVudChlLHMpe2lmKHRoaXMubWF0Y2goNzUpJiZ0aGlzLmlzTG9va2FoZWFkQ29udGV4dHVhbChcImVudW1cIikpe2xldCBpPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMuZXhwZWN0KDc1KSx0aGlzLnRzUGFyc2VFbnVtRGVjbGFyYXRpb24oaSx7Y29uc3Q6ITB9KX1pZih0aGlzLmlzQ29udGV4dHVhbCgxMjQpKXJldHVybiB0aGlzLnRzUGFyc2VFbnVtRGVjbGFyYXRpb24odGhpcy5zdGFydE5vZGUoKSk7aWYodGhpcy5pc0NvbnRleHR1YWwoMTI3KSl7bGV0IGk9dGhpcy50c1BhcnNlSW50ZXJmYWNlRGVjbGFyYXRpb24odGhpcy5zdGFydE5vZGUoKSk7aWYoaSlyZXR1cm4gaX1yZXR1cm4gc3VwZXIucGFyc2VTdGF0ZW1lbnRDb250ZW50KGUscyl9cGFyc2VBY2Nlc3NNb2RpZmllcigpe3JldHVybiB0aGlzLnRzUGFyc2VNb2RpZmllcihbXCJwdWJsaWNcIixcInByb3RlY3RlZFwiLFwicHJpdmF0ZVwiXSl9dHNIYXNTb21lTW9kaWZpZXJzKGUscyl7cmV0dXJuIHMuc29tZShpPT5xdChpKT9lLmFjY2Vzc2liaWxpdHk9PT1pOiEhZVtpXSl9dHNJc1N0YXJ0T2ZTdGF0aWNCbG9ja3MoKXtyZXR1cm4gdGhpcy5pc0NvbnRleHR1YWwoMTA0KSYmdGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09MTIzfXBhcnNlQ2xhc3NNZW1iZXIoZSxzLGkpe2xldCByPVtcImRlY2xhcmVcIixcInByaXZhdGVcIixcInB1YmxpY1wiLFwicHJvdGVjdGVkXCIsXCJvdmVycmlkZVwiLFwiYWJzdHJhY3RcIixcInJlYWRvbmx5XCIsXCJzdGF0aWNcIl07dGhpcy50c1BhcnNlTW9kaWZpZXJzKHthbGxvd2VkTW9kaWZpZXJzOnIsZGlzYWxsb3dlZE1vZGlmaWVyczpbXCJpblwiLFwib3V0XCJdLHN0b3BPblN0YXJ0T2ZDbGFzc1N0YXRpY0Jsb2NrOiEwLGVycm9yVGVtcGxhdGU6eS5JbnZhbGlkTW9kaWZpZXJPblR5cGVQYXJhbWV0ZXJQb3NpdGlvbnN9LHMpO2xldCBuPSgpPT57dGhpcy50c0lzU3RhcnRPZlN0YXRpY0Jsb2NrcygpPyh0aGlzLm5leHQoKSx0aGlzLm5leHQoKSx0aGlzLnRzSGFzU29tZU1vZGlmaWVycyhzLHIpJiZ0aGlzLnJhaXNlKHkuU3RhdGljQmxvY2tDYW5ub3RIYXZlTW9kaWZpZXIse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pLHN1cGVyLnBhcnNlQ2xhc3NTdGF0aWNCbG9jayhlLHMpKTp0aGlzLnBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMoZSxzLGksISFzLnN0YXRpYyl9O3MuZGVjbGFyZT90aGlzLnRzSW5BbWJpZW50Q29udGV4dChuKTpuKCl9cGFyc2VDbGFzc01lbWJlcldpdGhJc1N0YXRpYyhlLHMsaSxyKXtsZXQgbj10aGlzLnRzVHJ5UGFyc2VJbmRleFNpZ25hdHVyZShzKTtpZihuKXtlLmJvZHkucHVzaChuKSxzLmFic3RyYWN0JiZ0aGlzLnJhaXNlKHkuSW5kZXhTaWduYXR1cmVIYXNBYnN0cmFjdCx7YXQ6c30pLHMuYWNjZXNzaWJpbGl0eSYmdGhpcy5yYWlzZSh5LkluZGV4U2lnbmF0dXJlSGFzQWNjZXNzaWJpbGl0eSx7YXQ6cyxtb2RpZmllcjpzLmFjY2Vzc2liaWxpdHl9KSxzLmRlY2xhcmUmJnRoaXMucmFpc2UoeS5JbmRleFNpZ25hdHVyZUhhc0RlY2xhcmUse2F0OnN9KSxzLm92ZXJyaWRlJiZ0aGlzLnJhaXNlKHkuSW5kZXhTaWduYXR1cmVIYXNPdmVycmlkZSx7YXQ6c30pO3JldHVybn0hdGhpcy5zdGF0ZS5pbkFic3RyYWN0Q2xhc3MmJnMuYWJzdHJhY3QmJnRoaXMucmFpc2UoeS5Ob25BYnN0cmFjdENsYXNzSGFzQWJzdHJhY3RNZXRob2Qse2F0OnN9KSxzLm92ZXJyaWRlJiYoaS5oYWRTdXBlckNsYXNzfHx0aGlzLnJhaXNlKHkuT3ZlcnJpZGVOb3RJblN1YkNsYXNzLHthdDpzfSkpLHN1cGVyLnBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWMoZSxzLGkscil9cGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycyhlKXt0aGlzLmVhdCgxNykmJihlLm9wdGlvbmFsPSEwKSxlLnJlYWRvbmx5JiZ0aGlzLm1hdGNoKDEwKSYmdGhpcy5yYWlzZSh5LkNsYXNzTWV0aG9kSGFzUmVhZG9ubHkse2F0OmV9KSxlLmRlY2xhcmUmJnRoaXMubWF0Y2goMTApJiZ0aGlzLnJhaXNlKHkuQ2xhc3NNZXRob2RIYXNEZWNsYXJlLHthdDplfSl9cGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGUscyxpKXtyZXR1cm4ocy50eXBlPT09XCJJZGVudGlmaWVyXCI/dGhpcy50c1BhcnNlRXhwcmVzc2lvblN0YXRlbWVudChlLHMsaSk6dm9pZCAwKXx8c3VwZXIucGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGUscyxpKX1zaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCl7cmV0dXJuIHRoaXMudHNJc0RlY2xhcmF0aW9uU3RhcnQoKT8hMDpzdXBlci5zaG91bGRQYXJzZUV4cG9ydERlY2xhcmF0aW9uKCl9cGFyc2VDb25kaXRpb25hbChlLHMsaSl7aWYoIXRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVyc3x8IXRoaXMubWF0Y2goMTcpKXJldHVybiBzdXBlci5wYXJzZUNvbmRpdGlvbmFsKGUscyxpKTtsZXQgcj10aGlzLnRyeVBhcnNlKCgpPT5zdXBlci5wYXJzZUNvbmRpdGlvbmFsKGUscykpO3JldHVybiByLm5vZGU/KHIuZXJyb3ImJih0aGlzLnN0YXRlPXIuZmFpbFN0YXRlKSxyLm5vZGUpOihyLmVycm9yJiZzdXBlci5zZXRPcHRpb25hbFBhcmFtZXRlcnNFcnJvcihpLHIuZXJyb3IpLGUpfXBhcnNlUGFyZW5JdGVtKGUscyl7aWYoZT1zdXBlci5wYXJzZVBhcmVuSXRlbShlLHMpLHRoaXMuZWF0KDE3KSYmKGUub3B0aW9uYWw9ITAsdGhpcy5yZXNldEVuZExvY2F0aW9uKGUpKSx0aGlzLm1hdGNoKDE0KSl7bGV0IGk9dGhpcy5zdGFydE5vZGVBdChzKTtyZXR1cm4gaS5leHByZXNzaW9uPWUsaS50eXBlQW5ub3RhdGlvbj10aGlzLnRzUGFyc2VUeXBlQW5ub3RhdGlvbigpLHRoaXMuZmluaXNoTm9kZShpLFwiVFNUeXBlQ2FzdEV4cHJlc3Npb25cIil9cmV0dXJuIGV9cGFyc2VFeHBvcnREZWNsYXJhdGlvbihlKXtpZighdGhpcy5zdGF0ZS5pc0FtYmllbnRDb250ZXh0JiZ0aGlzLmlzQ29udGV4dHVhbCgxMjMpKXJldHVybiB0aGlzLnRzSW5BbWJpZW50Q29udGV4dCgoKT0+dGhpcy5wYXJzZUV4cG9ydERlY2xhcmF0aW9uKGUpKTtsZXQgcz10aGlzLnN0YXRlLnN0YXJ0TG9jLGk9dGhpcy5lYXRDb250ZXh0dWFsKDEyMyk7aWYoaSYmKHRoaXMuaXNDb250ZXh0dWFsKDEyMyl8fCF0aGlzLnNob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKSkpdGhyb3cgdGhpcy5yYWlzZSh5LkV4cGVjdGVkQW1iaWVudEFmdGVyRXhwb3J0RGVjbGFyZSx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pO2xldCBuPVModGhpcy5zdGF0ZS50eXBlKSYmdGhpcy50c1RyeVBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKXx8c3VwZXIucGFyc2VFeHBvcnREZWNsYXJhdGlvbihlKTtyZXR1cm4gbj8oKG4udHlwZT09PVwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwifHxuLnR5cGU9PT1cIlRTVHlwZUFsaWFzRGVjbGFyYXRpb25cInx8aSkmJihlLmV4cG9ydEtpbmQ9XCJ0eXBlXCIpLGkmJih0aGlzLnJlc2V0U3RhcnRMb2NhdGlvbihuLHMpLG4uZGVjbGFyZT0hMCksbik6bnVsbH1wYXJzZUNsYXNzSWQoZSxzLGkscil7aWYoKCFzfHxpKSYmdGhpcy5pc0NvbnRleHR1YWwoMTExKSlyZXR1cm47c3VwZXIucGFyc2VDbGFzc0lkKGUscyxpLGUuZGVjbGFyZT8xMDI0OjgzMzEpO2xldCBuPXRoaXMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKHRoaXMudHNQYXJzZUluT3V0Q29uc3RNb2RpZmllcnMpO24mJihlLnR5cGVQYXJhbWV0ZXJzPW4pfXBhcnNlQ2xhc3NQcm9wZXJ0eUFubm90YXRpb24oZSl7ZS5vcHRpb25hbHx8KHRoaXMuZWF0KDM1KT9lLmRlZmluaXRlPSEwOnRoaXMuZWF0KDE3KSYmKGUub3B0aW9uYWw9ITApKTtsZXQgcz10aGlzLnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO3MmJihlLnR5cGVBbm5vdGF0aW9uPXMpfXBhcnNlQ2xhc3NQcm9wZXJ0eShlKXtpZih0aGlzLnBhcnNlQ2xhc3NQcm9wZXJ0eUFubm90YXRpb24oZSksdGhpcy5zdGF0ZS5pc0FtYmllbnRDb250ZXh0JiYhKGUucmVhZG9ubHkmJiFlLnR5cGVBbm5vdGF0aW9uKSYmdGhpcy5tYXRjaCgyOSkmJnRoaXMucmFpc2UoeS5EZWNsYXJlQ2xhc3NGaWVsZEhhc0luaXRpYWxpemVyLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksZS5hYnN0cmFjdCYmdGhpcy5tYXRjaCgyOSkpe2xldHtrZXk6c309ZTt0aGlzLnJhaXNlKHkuQWJzdHJhY3RQcm9wZXJ0eUhhc0luaXRpYWxpemVyLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jLHByb3BlcnR5TmFtZTpzLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmIWUuY29tcHV0ZWQ/cy5uYW1lOmBbJHt0aGlzLmlucHV0LnNsaWNlKHMuc3RhcnQscy5lbmQpfV1gfSl9cmV0dXJuIHN1cGVyLnBhcnNlQ2xhc3NQcm9wZXJ0eShlKX1wYXJzZUNsYXNzUHJpdmF0ZVByb3BlcnR5KGUpe3JldHVybiBlLmFic3RyYWN0JiZ0aGlzLnJhaXNlKHkuUHJpdmF0ZUVsZW1lbnRIYXNBYnN0cmFjdCx7YXQ6ZX0pLGUuYWNjZXNzaWJpbGl0eSYmdGhpcy5yYWlzZSh5LlByaXZhdGVFbGVtZW50SGFzQWNjZXNzaWJpbGl0eSx7YXQ6ZSxtb2RpZmllcjplLmFjY2Vzc2liaWxpdHl9KSx0aGlzLnBhcnNlQ2xhc3NQcm9wZXJ0eUFubm90YXRpb24oZSksc3VwZXIucGFyc2VDbGFzc1ByaXZhdGVQcm9wZXJ0eShlKX1wYXJzZUNsYXNzQWNjZXNzb3JQcm9wZXJ0eShlKXtyZXR1cm4gdGhpcy5wYXJzZUNsYXNzUHJvcGVydHlBbm5vdGF0aW9uKGUpLGUub3B0aW9uYWwmJnRoaXMucmFpc2UoeS5BY2Nlc3NvckNhbm5vdEJlT3B0aW9uYWwse2F0OmV9KSxzdXBlci5wYXJzZUNsYXNzQWNjZXNzb3JQcm9wZXJ0eShlKX1wdXNoQ2xhc3NNZXRob2QoZSxzLGkscixuLG8pe2xldCBoPXRoaXMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKHRoaXMudHNQYXJzZUNvbnN0TW9kaWZpZXIpO2gmJm4mJnRoaXMucmFpc2UoeS5Db25zdHJ1Y3Rvckhhc1R5cGVQYXJhbWV0ZXJzLHthdDpofSk7bGV0e2RlY2xhcmU6bD0hMSxraW5kOmN9PXM7bCYmKGM9PT1cImdldFwifHxjPT09XCJzZXRcIikmJnRoaXMucmFpc2UoeS5EZWNsYXJlQWNjZXNzb3Ise2F0OnMsa2luZDpjfSksaCYmKHMudHlwZVBhcmFtZXRlcnM9aCksc3VwZXIucHVzaENsYXNzTWV0aG9kKGUscyxpLHIsbixvKX1wdXNoQ2xhc3NQcml2YXRlTWV0aG9kKGUscyxpLHIpe2xldCBuPXRoaXMudHNUcnlQYXJzZVR5cGVQYXJhbWV0ZXJzKHRoaXMudHNQYXJzZUNvbnN0TW9kaWZpZXIpO24mJihzLnR5cGVQYXJhbWV0ZXJzPW4pLHN1cGVyLnB1c2hDbGFzc1ByaXZhdGVNZXRob2QoZSxzLGkscil9ZGVjbGFyZUNsYXNzUHJpdmF0ZU1ldGhvZEluU2NvcGUoZSxzKXtlLnR5cGUhPT1cIlRTRGVjbGFyZU1ldGhvZFwiJiYoZS50eXBlPT09XCJNZXRob2REZWZpbml0aW9uXCImJiFlLnZhbHVlLmJvZHl8fHN1cGVyLmRlY2xhcmVDbGFzc1ByaXZhdGVNZXRob2RJblNjb3BlKGUscykpfXBhcnNlQ2xhc3NTdXBlcihlKXtzdXBlci5wYXJzZUNsYXNzU3VwZXIoZSksZS5zdXBlckNsYXNzJiYodGhpcy5tYXRjaCg0Nyl8fHRoaXMubWF0Y2goNTEpKSYmKGUuc3VwZXJUeXBlUGFyYW1ldGVycz10aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzSW5FeHByZXNzaW9uKCkpLHRoaXMuZWF0Q29udGV4dHVhbCgxMTEpJiYoZS5pbXBsZW1lbnRzPXRoaXMudHNQYXJzZUhlcml0YWdlQ2xhdXNlKFwiaW1wbGVtZW50c1wiKSl9cGFyc2VPYmpQcm9wVmFsdWUoZSxzLGkscixuLG8saCl7bGV0IGw9dGhpcy50c1RyeVBhcnNlVHlwZVBhcmFtZXRlcnModGhpcy50c1BhcnNlQ29uc3RNb2RpZmllcik7cmV0dXJuIGwmJihlLnR5cGVQYXJhbWV0ZXJzPWwpLHN1cGVyLnBhcnNlT2JqUHJvcFZhbHVlKGUscyxpLHIsbixvLGgpfXBhcnNlRnVuY3Rpb25QYXJhbXMoZSxzKXtsZXQgaT10aGlzLnRzVHJ5UGFyc2VUeXBlUGFyYW1ldGVycyh0aGlzLnRzUGFyc2VDb25zdE1vZGlmaWVyKTtpJiYoZS50eXBlUGFyYW1ldGVycz1pKSxzdXBlci5wYXJzZUZ1bmN0aW9uUGFyYW1zKGUscyl9cGFyc2VWYXJJZChlLHMpe3N1cGVyLnBhcnNlVmFySWQoZSxzKSxlLmlkLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJnRoaXMuZWF0KDM1KSYmKGUuZGVmaW5pdGU9ITApO2xldCBpPXRoaXMudHNUcnlQYXJzZVR5cGVBbm5vdGF0aW9uKCk7aSYmKGUuaWQudHlwZUFubm90YXRpb249aSx0aGlzLnJlc2V0RW5kTG9jYXRpb24oZS5pZCkpfXBhcnNlQXN5bmNBcnJvd0Zyb21DYWxsRXhwcmVzc2lvbihlLHMpe3JldHVybiB0aGlzLm1hdGNoKDE0KSYmKGUucmV0dXJuVHlwZT10aGlzLnRzUGFyc2VUeXBlQW5ub3RhdGlvbigpKSxzdXBlci5wYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24oZSxzKX1wYXJzZU1heWJlQXNzaWduKGUscyl7dmFyIGkscixuLG8saDtsZXQgbCxjLHU7aWYodGhpcy5oYXNQbHVnaW4oXCJqc3hcIikmJih0aGlzLm1hdGNoKDE0MCl8fHRoaXMubWF0Y2goNDcpKSl7aWYobD10aGlzLnN0YXRlLmNsb25lKCksYz10aGlzLnRyeVBhcnNlKCgpPT5zdXBlci5wYXJzZU1heWJlQXNzaWduKGUscyksbCksIWMuZXJyb3IpcmV0dXJuIGMubm9kZTtsZXR7Y29udGV4dDp4fT10aGlzLnN0YXRlLEk9eFt4Lmxlbmd0aC0xXTsoST09PXcual9vVGFnfHxJPT09dy5qX2V4cHIpJiZ4LnBvcCgpfWlmKCEoKGk9YykhPW51bGwmJmkuZXJyb3IpJiYhdGhpcy5tYXRjaCg0NykpcmV0dXJuIHN1cGVyLnBhcnNlTWF5YmVBc3NpZ24oZSxzKTsoIWx8fGw9PT10aGlzLnN0YXRlKSYmKGw9dGhpcy5zdGF0ZS5jbG9uZSgpKTtsZXQgZixkPXRoaXMudHJ5UGFyc2UoeD0+e3ZhciBJLEM7Zj10aGlzLnRzUGFyc2VUeXBlUGFyYW1ldGVycyh0aGlzLnRzUGFyc2VDb25zdE1vZGlmaWVyKTtsZXQgRT1zdXBlci5wYXJzZU1heWJlQXNzaWduKGUscyk7cmV0dXJuKEUudHlwZSE9PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cInx8KEk9RS5leHRyYSkhPW51bGwmJkkucGFyZW50aGVzaXplZCkmJngoKSwoKEM9Zik9PW51bGw/dm9pZCAwOkMucGFyYW1zLmxlbmd0aCkhPT0wJiZ0aGlzLnJlc2V0U3RhcnRMb2NhdGlvbkZyb21Ob2RlKEUsZiksRS50eXBlUGFyYW1ldGVycz1mLEV9LGwpO2lmKCFkLmVycm9yJiYhZC5hYm9ydGVkKXJldHVybiBmJiZ0aGlzLnJlcG9ydFJlc2VydmVkQXJyb3dUeXBlUGFyYW0oZiksZC5ub2RlO2lmKCFjJiYoS3QoIXRoaXMuaGFzUGx1Z2luKFwianN4XCIpKSx1PXRoaXMudHJ5UGFyc2UoKCk9PnN1cGVyLnBhcnNlTWF5YmVBc3NpZ24oZSxzKSxsKSwhdS5lcnJvcikpcmV0dXJuIHUubm9kZTtpZigocj1jKSE9bnVsbCYmci5ub2RlKXJldHVybiB0aGlzLnN0YXRlPWMuZmFpbFN0YXRlLGMubm9kZTtpZihkLm5vZGUpcmV0dXJuIHRoaXMuc3RhdGU9ZC5mYWlsU3RhdGUsZiYmdGhpcy5yZXBvcnRSZXNlcnZlZEFycm93VHlwZVBhcmFtKGYpLGQubm9kZTtpZigobj11KSE9bnVsbCYmbi5ub2RlKXJldHVybiB0aGlzLnN0YXRlPXUuZmFpbFN0YXRlLHUubm9kZTt0aHJvdygobz1jKT09bnVsbD92b2lkIDA6by5lcnJvcil8fGQuZXJyb3J8fCgoaD11KT09bnVsbD92b2lkIDA6aC5lcnJvcil9cmVwb3J0UmVzZXJ2ZWRBcnJvd1R5cGVQYXJhbShlKXt2YXIgcztlLnBhcmFtcy5sZW5ndGg9PT0xJiYhZS5wYXJhbXNbMF0uY29uc3RyYWludCYmISgocz1lLmV4dHJhKSE9bnVsbCYmcy50cmFpbGluZ0NvbW1hKSYmdGhpcy5nZXRQbHVnaW5PcHRpb24oXCJ0eXBlc2NyaXB0XCIsXCJkaXNhbGxvd0FtYmlndW91c0pTWExpa2VcIikmJnRoaXMucmFpc2UoeS5SZXNlcnZlZEFycm93VHlwZVBhcmFtLHthdDplfSl9cGFyc2VNYXliZVVuYXJ5KGUscyl7cmV0dXJuIXRoaXMuaGFzUGx1Z2luKFwianN4XCIpJiZ0aGlzLm1hdGNoKDQ3KT90aGlzLnRzUGFyc2VUeXBlQXNzZXJ0aW9uKCk6c3VwZXIucGFyc2VNYXliZVVuYXJ5KGUscyl9cGFyc2VBcnJvdyhlKXtpZih0aGlzLm1hdGNoKDE0KSl7bGV0IHM9dGhpcy50cnlQYXJzZShpPT57bGV0IHI9dGhpcy50c1BhcnNlVHlwZU9yVHlwZVByZWRpY2F0ZUFubm90YXRpb24oMTQpO3JldHVybih0aGlzLmNhbkluc2VydFNlbWljb2xvbigpfHwhdGhpcy5tYXRjaCgxOSkpJiZpKCkscn0pO2lmKHMuYWJvcnRlZClyZXR1cm47cy50aHJvd258fChzLmVycm9yJiYodGhpcy5zdGF0ZT1zLmZhaWxTdGF0ZSksZS5yZXR1cm5UeXBlPXMubm9kZSl9cmV0dXJuIHN1cGVyLnBhcnNlQXJyb3coZSl9cGFyc2VBc3NpZ25hYmxlTGlzdEl0ZW1UeXBlcyhlLHMpe2lmKCEocyYyKSlyZXR1cm4gZTt0aGlzLmVhdCgxNykmJihlLm9wdGlvbmFsPSEwKTtsZXQgaT10aGlzLnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO3JldHVybiBpJiYoZS50eXBlQW5ub3RhdGlvbj1pKSx0aGlzLnJlc2V0RW5kTG9jYXRpb24oZSksZX1pc0Fzc2lnbmFibGUoZSxzKXtzd2l0Y2goZS50eXBlKXtjYXNlXCJUU1R5cGVDYXN0RXhwcmVzc2lvblwiOnJldHVybiB0aGlzLmlzQXNzaWduYWJsZShlLmV4cHJlc3Npb24scyk7Y2FzZVwiVFNQYXJhbWV0ZXJQcm9wZXJ0eVwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIHN1cGVyLmlzQXNzaWduYWJsZShlLHMpfX10b0Fzc2lnbmFibGUoZSxzPSExKXtzd2l0Y2goZS50eXBlKXtjYXNlXCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiOnRoaXMudG9Bc3NpZ25hYmxlUGFyZW50aGVzaXplZEV4cHJlc3Npb24oZSxzKTticmVhaztjYXNlXCJUU0FzRXhwcmVzc2lvblwiOmNhc2VcIlRTU2F0aXNmaWVzRXhwcmVzc2lvblwiOmNhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjpjYXNlXCJUU1R5cGVBc3NlcnRpb25cIjpzP3RoaXMuZXhwcmVzc2lvblNjb3BlLnJlY29yZEFycm93UGFyYW1ldGVyQmluZGluZ0Vycm9yKHkuVW5leHBlY3RlZFR5cGVDYXN0SW5QYXJhbWV0ZXIse2F0OmV9KTp0aGlzLnJhaXNlKHkuVW5leHBlY3RlZFR5cGVDYXN0SW5QYXJhbWV0ZXIse2F0OmV9KSx0aGlzLnRvQXNzaWduYWJsZShlLmV4cHJlc3Npb24scyk7YnJlYWs7Y2FzZVwiQXNzaWdubWVudEV4cHJlc3Npb25cIjohcyYmZS5sZWZ0LnR5cGU9PT1cIlRTVHlwZUNhc3RFeHByZXNzaW9uXCImJihlLmxlZnQ9dGhpcy50eXBlQ2FzdFRvUGFyYW1ldGVyKGUubGVmdCkpO2RlZmF1bHQ6c3VwZXIudG9Bc3NpZ25hYmxlKGUscyl9fXRvQXNzaWduYWJsZVBhcmVudGhlc2l6ZWRFeHByZXNzaW9uKGUscyl7c3dpdGNoKGUuZXhwcmVzc2lvbi50eXBlKXtjYXNlXCJUU0FzRXhwcmVzc2lvblwiOmNhc2VcIlRTU2F0aXNmaWVzRXhwcmVzc2lvblwiOmNhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjpjYXNlXCJUU1R5cGVBc3NlcnRpb25cIjpjYXNlXCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiOnRoaXMudG9Bc3NpZ25hYmxlKGUuZXhwcmVzc2lvbixzKTticmVhaztkZWZhdWx0OnN1cGVyLnRvQXNzaWduYWJsZShlLHMpfX1jaGVja1RvUmVzdENvbnZlcnNpb24oZSxzKXtzd2l0Y2goZS50eXBlKXtjYXNlXCJUU0FzRXhwcmVzc2lvblwiOmNhc2VcIlRTU2F0aXNmaWVzRXhwcmVzc2lvblwiOmNhc2VcIlRTVHlwZUFzc2VydGlvblwiOmNhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjp0aGlzLmNoZWNrVG9SZXN0Q29udmVyc2lvbihlLmV4cHJlc3Npb24sITEpO2JyZWFrO2RlZmF1bHQ6c3VwZXIuY2hlY2tUb1Jlc3RDb252ZXJzaW9uKGUscyl9fWlzVmFsaWRMVmFsKGUscyxpKXtyZXR1cm4gYXIoe1RTVHlwZUNhc3RFeHByZXNzaW9uOiEwLFRTUGFyYW1ldGVyUHJvcGVydHk6XCJwYXJhbWV0ZXJcIixUU05vbk51bGxFeHByZXNzaW9uOlwiZXhwcmVzc2lvblwiLFRTQXNFeHByZXNzaW9uOihpIT09NjR8fCFzKSYmW1wiZXhwcmVzc2lvblwiLCEwXSxUU1NhdGlzZmllc0V4cHJlc3Npb246KGkhPT02NHx8IXMpJiZbXCJleHByZXNzaW9uXCIsITBdLFRTVHlwZUFzc2VydGlvbjooaSE9PTY0fHwhcykmJltcImV4cHJlc3Npb25cIiwhMF19LGUpfHxzdXBlci5pc1ZhbGlkTFZhbChlLHMsaSl9cGFyc2VCaW5kaW5nQXRvbSgpe3JldHVybiB0aGlzLnN0YXRlLnR5cGU9PT03OD90aGlzLnBhcnNlSWRlbnRpZmllcighMCk6c3VwZXIucGFyc2VCaW5kaW5nQXRvbSgpfXBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoZSl7aWYodGhpcy5tYXRjaCg0Nyl8fHRoaXMubWF0Y2goNTEpKXtsZXQgcz10aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzSW5FeHByZXNzaW9uKCk7aWYodGhpcy5tYXRjaCgxMCkpe2xldCBpPXN1cGVyLnBhcnNlTWF5YmVEZWNvcmF0b3JBcmd1bWVudHMoZSk7cmV0dXJuIGkudHlwZVBhcmFtZXRlcnM9cyxpfXRoaXMudW5leHBlY3RlZChudWxsLDEwKX1yZXR1cm4gc3VwZXIucGFyc2VNYXliZURlY29yYXRvckFyZ3VtZW50cyhlKX1jaGVja0NvbW1hQWZ0ZXJSZXN0KGUpe3JldHVybiB0aGlzLnN0YXRlLmlzQW1iaWVudENvbnRleHQmJnRoaXMubWF0Y2goMTIpJiZ0aGlzLmxvb2thaGVhZENoYXJDb2RlKCk9PT1lPyh0aGlzLm5leHQoKSwhMSk6c3VwZXIuY2hlY2tDb21tYUFmdGVyUmVzdChlKX1pc0NsYXNzTWV0aG9kKCl7cmV0dXJuIHRoaXMubWF0Y2goNDcpfHxzdXBlci5pc0NsYXNzTWV0aG9kKCl9aXNDbGFzc1Byb3BlcnR5KCl7cmV0dXJuIHRoaXMubWF0Y2goMzUpfHx0aGlzLm1hdGNoKDE0KXx8c3VwZXIuaXNDbGFzc1Byb3BlcnR5KCl9cGFyc2VNYXliZURlZmF1bHQoZSxzKXtsZXQgaT1zdXBlci5wYXJzZU1heWJlRGVmYXVsdChlLHMpO3JldHVybiBpLnR5cGU9PT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCImJmkudHlwZUFubm90YXRpb24mJmkucmlnaHQuc3RhcnQ8aS50eXBlQW5ub3RhdGlvbi5zdGFydCYmdGhpcy5yYWlzZSh5LlR5cGVBbm5vdGF0aW9uQWZ0ZXJBc3NpZ24se2F0OmkudHlwZUFubm90YXRpb259KSxpfWdldFRva2VuRnJvbUNvZGUoZSl7aWYodGhpcy5zdGF0ZS5pblR5cGUpe2lmKGU9PT02Mil7dGhpcy5maW5pc2hPcCg0OCwxKTtyZXR1cm59aWYoZT09PTYwKXt0aGlzLmZpbmlzaE9wKDQ3LDEpO3JldHVybn19c3VwZXIuZ2V0VG9rZW5Gcm9tQ29kZShlKX1yZVNjYW5fbHRfZ3QoKXtsZXR7dHlwZTplfT10aGlzLnN0YXRlO2U9PT00Nz8odGhpcy5zdGF0ZS5wb3MtPTEsdGhpcy5yZWFkVG9rZW5fbHQoKSk6ZT09PTQ4JiYodGhpcy5zdGF0ZS5wb3MtPTEsdGhpcy5yZWFkVG9rZW5fZ3QoKSl9cmVTY2FuX2x0KCl7bGV0e3R5cGU6ZX09dGhpcy5zdGF0ZTtyZXR1cm4gZT09PTUxPyh0aGlzLnN0YXRlLnBvcy09Mix0aGlzLmZpbmlzaE9wKDQ3LDEpLDQ3KTplfXRvQXNzaWduYWJsZUxpc3QoZSxzLGkpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgbj1lW3JdOyhuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJUU1R5cGVDYXN0RXhwcmVzc2lvblwiJiYoZVtyXT10aGlzLnR5cGVDYXN0VG9QYXJhbWV0ZXIobikpfXN1cGVyLnRvQXNzaWduYWJsZUxpc3QoZSxzLGkpfXR5cGVDYXN0VG9QYXJhbWV0ZXIoZSl7cmV0dXJuIGUuZXhwcmVzc2lvbi50eXBlQW5ub3RhdGlvbj1lLnR5cGVBbm5vdGF0aW9uLHRoaXMucmVzZXRFbmRMb2NhdGlvbihlLmV4cHJlc3Npb24sZS50eXBlQW5ub3RhdGlvbi5sb2MuZW5kKSxlLmV4cHJlc3Npb259c2hvdWxkUGFyc2VBcnJvdyhlKXtyZXR1cm4gdGhpcy5tYXRjaCgxNCk/ZS5ldmVyeShzPT50aGlzLmlzQXNzaWduYWJsZShzLCEwKSk6c3VwZXIuc2hvdWxkUGFyc2VBcnJvdyhlKX1zaG91bGRQYXJzZUFzeW5jQXJyb3coKXtyZXR1cm4gdGhpcy5tYXRjaCgxNCl8fHN1cGVyLnNob3VsZFBhcnNlQXN5bmNBcnJvdygpfWNhbkhhdmVMZWFkaW5nRGVjb3JhdG9yKCl7cmV0dXJuIHN1cGVyLmNhbkhhdmVMZWFkaW5nRGVjb3JhdG9yKCl8fHRoaXMuaXNBYnN0cmFjdENsYXNzKCl9anN4UGFyc2VPcGVuaW5nRWxlbWVudEFmdGVyTmFtZShlKXtpZih0aGlzLm1hdGNoKDQ3KXx8dGhpcy5tYXRjaCg1MSkpe2xldCBzPXRoaXMudHNUcnlQYXJzZUFuZENhdGNoKCgpPT50aGlzLnRzUGFyc2VUeXBlQXJndW1lbnRzSW5FeHByZXNzaW9uKCkpO3MmJihlLnR5cGVQYXJhbWV0ZXJzPXMpfXJldHVybiBzdXBlci5qc3hQYXJzZU9wZW5pbmdFbGVtZW50QWZ0ZXJOYW1lKGUpfWdldEdldHRlclNldHRlckV4cGVjdGVkUGFyYW1Db3VudChlKXtsZXQgcz1zdXBlci5nZXRHZXR0ZXJTZXR0ZXJFeHBlY3RlZFBhcmFtQ291bnQoZSkscj10aGlzLmdldE9iamVjdE9yQ2xhc3NNZXRob2RQYXJhbXMoZSlbMF07cmV0dXJuIHImJnRoaXMuaXNUaGlzUGFyYW0ocik/cysxOnN9cGFyc2VDYXRjaENsYXVzZVBhcmFtKCl7bGV0IGU9c3VwZXIucGFyc2VDYXRjaENsYXVzZVBhcmFtKCkscz10aGlzLnRzVHJ5UGFyc2VUeXBlQW5ub3RhdGlvbigpO3JldHVybiBzJiYoZS50eXBlQW5ub3RhdGlvbj1zLHRoaXMucmVzZXRFbmRMb2NhdGlvbihlKSksZX10c0luQW1iaWVudENvbnRleHQoZSl7bGV0IHM9dGhpcy5zdGF0ZS5pc0FtYmllbnRDb250ZXh0O3RoaXMuc3RhdGUuaXNBbWJpZW50Q29udGV4dD0hMDt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e3RoaXMuc3RhdGUuaXNBbWJpZW50Q29udGV4dD1zfX1wYXJzZUNsYXNzKGUscyxpKXtsZXQgcj10aGlzLnN0YXRlLmluQWJzdHJhY3RDbGFzczt0aGlzLnN0YXRlLmluQWJzdHJhY3RDbGFzcz0hIWUuYWJzdHJhY3Q7dHJ5e3JldHVybiBzdXBlci5wYXJzZUNsYXNzKGUscyxpKX1maW5hbGx5e3RoaXMuc3RhdGUuaW5BYnN0cmFjdENsYXNzPXJ9fXRzUGFyc2VBYnN0cmFjdERlY2xhcmF0aW9uKGUscyl7aWYodGhpcy5tYXRjaCg4MCkpcmV0dXJuIGUuYWJzdHJhY3Q9ITAsdGhpcy5tYXliZVRha2VEZWNvcmF0b3JzKHMsdGhpcy5wYXJzZUNsYXNzKGUsITAsITEpKTtpZih0aGlzLmlzQ29udGV4dHVhbCgxMjcpKXtpZighdGhpcy5oYXNGb2xsb3dpbmdMaW5lQnJlYWsoKSlyZXR1cm4gZS5hYnN0cmFjdD0hMCx0aGlzLnJhaXNlKHkuTm9uQ2xhc3NNZXRob2RQcm9wZXJ0eUhhc0Fic3RyYWN0TW9kaWZlcix7YXQ6ZX0pLHRoaXMudHNQYXJzZUludGVyZmFjZURlY2xhcmF0aW9uKGUpfWVsc2UgdGhpcy51bmV4cGVjdGVkKG51bGwsODApfXBhcnNlTWV0aG9kKGUscyxpLHIsbixvLGgpe2xldCBsPXN1cGVyLnBhcnNlTWV0aG9kKGUscyxpLHIsbixvLGgpO2lmKGwuYWJzdHJhY3QmJih0aGlzLmhhc1BsdWdpbihcImVzdHJlZVwiKT8hIWwudmFsdWUuYm9keTohIWwuYm9keSkpe2xldHtrZXk6dX09bDt0aGlzLnJhaXNlKHkuQWJzdHJhY3RNZXRob2RIYXNJbXBsZW1lbnRhdGlvbix7YXQ6bCxtZXRob2ROYW1lOnUudHlwZT09PVwiSWRlbnRpZmllclwiJiYhbC5jb21wdXRlZD91Lm5hbWU6YFske3RoaXMuaW5wdXQuc2xpY2UodS5zdGFydCx1LmVuZCl9XWB9KX1yZXR1cm4gbH10c1BhcnNlVHlwZVBhcmFtZXRlck5hbWUoKXtyZXR1cm4gdGhpcy5wYXJzZUlkZW50aWZpZXIoKS5uYW1lfXNob3VsZFBhcnNlQXNBbWJpZW50Q29udGV4dCgpe3JldHVybiEhdGhpcy5nZXRQbHVnaW5PcHRpb24oXCJ0eXBlc2NyaXB0XCIsXCJkdHNcIil9cGFyc2UoKXtyZXR1cm4gdGhpcy5zaG91bGRQYXJzZUFzQW1iaWVudENvbnRleHQoKSYmKHRoaXMuc3RhdGUuaXNBbWJpZW50Q29udGV4dD0hMCksc3VwZXIucGFyc2UoKX1nZXRFeHByZXNzaW9uKCl7cmV0dXJuIHRoaXMuc2hvdWxkUGFyc2VBc0FtYmllbnRDb250ZXh0KCkmJih0aGlzLnN0YXRlLmlzQW1iaWVudENvbnRleHQ9ITApLHN1cGVyLmdldEV4cHJlc3Npb24oKX1wYXJzZUV4cG9ydFNwZWNpZmllcihlLHMsaSxyKXtyZXR1cm4hcyYmcj8odGhpcy5wYXJzZVR5cGVPbmx5SW1wb3J0RXhwb3J0U3BlY2lmaWVyKGUsITEsaSksdGhpcy5maW5pc2hOb2RlKGUsXCJFeHBvcnRTcGVjaWZpZXJcIikpOihlLmV4cG9ydEtpbmQ9XCJ2YWx1ZVwiLHN1cGVyLnBhcnNlRXhwb3J0U3BlY2lmaWVyKGUscyxpLHIpKX1wYXJzZUltcG9ydFNwZWNpZmllcihlLHMsaSxyLG4pe3JldHVybiFzJiZyPyh0aGlzLnBhcnNlVHlwZU9ubHlJbXBvcnRFeHBvcnRTcGVjaWZpZXIoZSwhMCxpKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkltcG9ydFNwZWNpZmllclwiKSk6KGUuaW1wb3J0S2luZD1cInZhbHVlXCIsc3VwZXIucGFyc2VJbXBvcnRTcGVjaWZpZXIoZSxzLGkscixpPzQwOTg6NDA5NikpfXBhcnNlVHlwZU9ubHlJbXBvcnRFeHBvcnRTcGVjaWZpZXIoZSxzLGkpe2xldCByPXM/XCJpbXBvcnRlZFwiOlwibG9jYWxcIixuPXM/XCJsb2NhbFwiOlwiZXhwb3J0ZWRcIixvPWVbcl0saCxsPSExLGM9ITAsdT1vLmxvYy5zdGFydDtpZih0aGlzLmlzQ29udGV4dHVhbCg5Mykpe2xldCBkPXRoaXMucGFyc2VJZGVudGlmaWVyKCk7aWYodGhpcy5pc0NvbnRleHR1YWwoOTMpKXtsZXQgeD10aGlzLnBhcnNlSWRlbnRpZmllcigpO00odGhpcy5zdGF0ZS50eXBlKT8obD0hMCxvPWQsaD1zP3RoaXMucGFyc2VJZGVudGlmaWVyKCk6dGhpcy5wYXJzZU1vZHVsZUV4cG9ydE5hbWUoKSxjPSExKTooaD14LGM9ITEpfWVsc2UgTSh0aGlzLnN0YXRlLnR5cGUpPyhjPSExLGg9cz90aGlzLnBhcnNlSWRlbnRpZmllcigpOnRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCkpOihsPSEwLG89ZCl9ZWxzZSBNKHRoaXMuc3RhdGUudHlwZSkmJihsPSEwLHM/KG89dGhpcy5wYXJzZUlkZW50aWZpZXIoITApLHRoaXMuaXNDb250ZXh0dWFsKDkzKXx8dGhpcy5jaGVja1Jlc2VydmVkV29yZChvLm5hbWUsby5sb2Muc3RhcnQsITAsITApKTpvPXRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCkpO2wmJmkmJnRoaXMucmFpc2Uocz95LlR5cGVNb2RpZmllcklzVXNlZEluVHlwZUltcG9ydHM6eS5UeXBlTW9kaWZpZXJJc1VzZWRJblR5cGVFeHBvcnRzLHthdDp1fSksZVtyXT1vLGVbbl09aDtsZXQgZj1zP1wiaW1wb3J0S2luZFwiOlwiZXhwb3J0S2luZFwiO2VbZl09bD9cInR5cGVcIjpcInZhbHVlXCIsYyYmdGhpcy5lYXRDb250ZXh0dWFsKDkzKSYmKGVbbl09cz90aGlzLnBhcnNlSWRlbnRpZmllcigpOnRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCkpLGVbbl18fChlW25dPVYoZVtyXSkpLHMmJnRoaXMuY2hlY2tJZGVudGlmaWVyKGVbbl0sbD80MDk4OjQwOTYpfX07ZnVuY3Rpb24gY3IoYSl7aWYoYS50eXBlIT09XCJNZW1iZXJFeHByZXNzaW9uXCIpcmV0dXJuITE7bGV0e2NvbXB1dGVkOnQscHJvcGVydHk6ZX09YTtyZXR1cm4gdCYmZS50eXBlIT09XCJTdHJpbmdMaXRlcmFsXCImJihlLnR5cGUhPT1cIlRlbXBsYXRlTGl0ZXJhbFwifHxlLmV4cHJlc3Npb25zLmxlbmd0aD4wKT8hMTpkcyhhLm9iamVjdCl9ZnVuY3Rpb24gcHIoYSx0KXt2YXIgZTtsZXR7dHlwZTpzfT1hO2lmKChlPWEuZXh0cmEpIT1udWxsJiZlLnBhcmVudGhlc2l6ZWQpcmV0dXJuITE7aWYodCl7aWYocz09PVwiTGl0ZXJhbFwiKXtsZXR7dmFsdWU6aX09YTtpZih0eXBlb2YgaT09XCJzdHJpbmdcInx8dHlwZW9mIGk9PVwiYm9vbGVhblwiKXJldHVybiEwfX1lbHNlIGlmKHM9PT1cIlN0cmluZ0xpdGVyYWxcInx8cz09PVwiQm9vbGVhbkxpdGVyYWxcIilyZXR1cm4hMDtyZXR1cm4hISh1cyhhLHQpfHx1cihhLHQpfHxzPT09XCJUZW1wbGF0ZUxpdGVyYWxcIiYmYS5leHByZXNzaW9ucy5sZW5ndGg9PT0wfHxjcihhKSl9ZnVuY3Rpb24gdXMoYSx0KXtyZXR1cm4gdD9hLnR5cGU9PT1cIkxpdGVyYWxcIiYmKHR5cGVvZiBhLnZhbHVlPT1cIm51bWJlclwifHxcImJpZ2ludFwiaW4gYSk6YS50eXBlPT09XCJOdW1lcmljTGl0ZXJhbFwifHxhLnR5cGU9PT1cIkJpZ0ludExpdGVyYWxcIn1mdW5jdGlvbiB1cihhLHQpe2lmKGEudHlwZT09PVwiVW5hcnlFeHByZXNzaW9uXCIpe2xldHtvcGVyYXRvcjplLGFyZ3VtZW50OnN9PWE7aWYoZT09PVwiLVwiJiZ1cyhzLHQpKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGRzKGEpe3JldHVybiBhLnR5cGU9PT1cIklkZW50aWZpZXJcIj8hMDphLnR5cGUhPT1cIk1lbWJlckV4cHJlc3Npb25cInx8YS5jb21wdXRlZD8hMTpkcyhhLm9iamVjdCl9dmFyIEh0PSRgcGxhY2Vob2xkZXJzYCh7Q2xhc3NOYW1lSXNSZXF1aXJlZDpcIkEgY2xhc3MgbmFtZSBpcyByZXF1aXJlZC5cIixVbmV4cGVjdGVkU3BhY2U6XCJVbmV4cGVjdGVkIHNwYWNlIGluIHBsYWNlaG9sZGVyLlwifSksZHI9YT0+Y2xhc3MgZXh0ZW5kcyBhe3BhcnNlUGxhY2Vob2xkZXIoZSl7aWYodGhpcy5tYXRjaCgxNDIpKXtsZXQgcz10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmFzc2VydE5vU3BhY2UoKSxzLm5hbWU9c3VwZXIucGFyc2VJZGVudGlmaWVyKCEwKSx0aGlzLmFzc2VydE5vU3BhY2UoKSx0aGlzLmV4cGVjdCgxNDIpLHRoaXMuZmluaXNoUGxhY2Vob2xkZXIocyxlKX19ZmluaXNoUGxhY2Vob2xkZXIoZSxzKXtsZXQgaT0hIShlLmV4cGVjdGVkTm9kZSYmZS50eXBlPT09XCJQbGFjZWhvbGRlclwiKTtyZXR1cm4gZS5leHBlY3RlZE5vZGU9cyxpP2U6dGhpcy5maW5pc2hOb2RlKGUsXCJQbGFjZWhvbGRlclwiKX1nZXRUb2tlbkZyb21Db2RlKGUpe2U9PT0zNyYmdGhpcy5pbnB1dC5jaGFyQ29kZUF0KHRoaXMuc3RhdGUucG9zKzEpPT09Mzc/dGhpcy5maW5pc2hPcCgxNDIsMik6c3VwZXIuZ2V0VG9rZW5Gcm9tQ29kZShlKX1wYXJzZUV4cHJBdG9tKGUpe3JldHVybiB0aGlzLnBhcnNlUGxhY2Vob2xkZXIoXCJFeHByZXNzaW9uXCIpfHxzdXBlci5wYXJzZUV4cHJBdG9tKGUpfXBhcnNlSWRlbnRpZmllcihlKXtyZXR1cm4gdGhpcy5wYXJzZVBsYWNlaG9sZGVyKFwiSWRlbnRpZmllclwiKXx8c3VwZXIucGFyc2VJZGVudGlmaWVyKGUpfWNoZWNrUmVzZXJ2ZWRXb3JkKGUscyxpLHIpe2UhPT12b2lkIDAmJnN1cGVyLmNoZWNrUmVzZXJ2ZWRXb3JkKGUscyxpLHIpfXBhcnNlQmluZGluZ0F0b20oKXtyZXR1cm4gdGhpcy5wYXJzZVBsYWNlaG9sZGVyKFwiUGF0dGVyblwiKXx8c3VwZXIucGFyc2VCaW5kaW5nQXRvbSgpfWlzVmFsaWRMVmFsKGUscyxpKXtyZXR1cm4gZT09PVwiUGxhY2Vob2xkZXJcInx8c3VwZXIuaXNWYWxpZExWYWwoZSxzLGkpfXRvQXNzaWduYWJsZShlLHMpe2UmJmUudHlwZT09PVwiUGxhY2Vob2xkZXJcIiYmZS5leHBlY3RlZE5vZGU9PT1cIkV4cHJlc3Npb25cIj9lLmV4cGVjdGVkTm9kZT1cIlBhdHRlcm5cIjpzdXBlci50b0Fzc2lnbmFibGUoZSxzKX1jaFN0YXJ0c0JpbmRpbmdJZGVudGlmaWVyKGUscyl7cmV0dXJuISEoc3VwZXIuY2hTdGFydHNCaW5kaW5nSWRlbnRpZmllcihlLHMpfHx0aGlzLmxvb2thaGVhZCgpLnR5cGU9PT0xNDIpfXZlcmlmeUJyZWFrQ29udGludWUoZSxzKXtlLmxhYmVsJiZlLmxhYmVsLnR5cGU9PT1cIlBsYWNlaG9sZGVyXCJ8fHN1cGVyLnZlcmlmeUJyZWFrQ29udGludWUoZSxzKX1wYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQoZSxzKXt2YXIgaTtpZihzLnR5cGUhPT1cIlBsYWNlaG9sZGVyXCJ8fChpPXMuZXh0cmEpIT1udWxsJiZpLnBhcmVudGhlc2l6ZWQpcmV0dXJuIHN1cGVyLnBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChlLHMpO2lmKHRoaXMubWF0Y2goMTQpKXtsZXQgcj1lO3JldHVybiByLmxhYmVsPXRoaXMuZmluaXNoUGxhY2Vob2xkZXIocyxcIklkZW50aWZpZXJcIiksdGhpcy5uZXh0KCksci5ib2R5PXN1cGVyLnBhcnNlU3RhdGVtZW50T3JTbG9wcHlBbm5leEJGdW5jdGlvbkRlY2xhcmF0aW9uKCksdGhpcy5maW5pc2hOb2RlKHIsXCJMYWJlbGVkU3RhdGVtZW50XCIpfXJldHVybiB0aGlzLnNlbWljb2xvbigpLGUubmFtZT1zLm5hbWUsdGhpcy5maW5pc2hQbGFjZWhvbGRlcihlLFwiU3RhdGVtZW50XCIpfXBhcnNlQmxvY2soZSxzLGkpe3JldHVybiB0aGlzLnBhcnNlUGxhY2Vob2xkZXIoXCJCbG9ja1N0YXRlbWVudFwiKXx8c3VwZXIucGFyc2VCbG9jayhlLHMsaSl9cGFyc2VGdW5jdGlvbklkKGUpe3JldHVybiB0aGlzLnBhcnNlUGxhY2Vob2xkZXIoXCJJZGVudGlmaWVyXCIpfHxzdXBlci5wYXJzZUZ1bmN0aW9uSWQoZSl9cGFyc2VDbGFzcyhlLHMsaSl7bGV0IHI9cz9cIkNsYXNzRGVjbGFyYXRpb25cIjpcIkNsYXNzRXhwcmVzc2lvblwiO3RoaXMubmV4dCgpO2xldCBuPXRoaXMuc3RhdGUuc3RyaWN0LG89dGhpcy5wYXJzZVBsYWNlaG9sZGVyKFwiSWRlbnRpZmllclwiKTtpZihvKWlmKHRoaXMubWF0Y2goODEpfHx0aGlzLm1hdGNoKDE0Mil8fHRoaXMubWF0Y2goNSkpZS5pZD1vO2Vsc2V7aWYoaXx8IXMpcmV0dXJuIGUuaWQ9bnVsbCxlLmJvZHk9dGhpcy5maW5pc2hQbGFjZWhvbGRlcihvLFwiQ2xhc3NCb2R5XCIpLHRoaXMuZmluaXNoTm9kZShlLHIpO3Rocm93IHRoaXMucmFpc2UoSHQuQ2xhc3NOYW1lSXNSZXF1aXJlZCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pfWVsc2UgdGhpcy5wYXJzZUNsYXNzSWQoZSxzLGkpO3JldHVybiBzdXBlci5wYXJzZUNsYXNzU3VwZXIoZSksZS5ib2R5PXRoaXMucGFyc2VQbGFjZWhvbGRlcihcIkNsYXNzQm9keVwiKXx8c3VwZXIucGFyc2VDbGFzc0JvZHkoISFlLnN1cGVyQ2xhc3MsbiksdGhpcy5maW5pc2hOb2RlKGUscil9cGFyc2VFeHBvcnQoZSxzKXtsZXQgaT10aGlzLnBhcnNlUGxhY2Vob2xkZXIoXCJJZGVudGlmaWVyXCIpO2lmKCFpKXJldHVybiBzdXBlci5wYXJzZUV4cG9ydChlLHMpO2lmKCF0aGlzLmlzQ29udGV4dHVhbCg5NykmJiF0aGlzLm1hdGNoKDEyKSlyZXR1cm4gZS5zcGVjaWZpZXJzPVtdLGUuc291cmNlPW51bGwsZS5kZWNsYXJhdGlvbj10aGlzLmZpbmlzaFBsYWNlaG9sZGVyKGksXCJEZWNsYXJhdGlvblwiKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIik7dGhpcy5leHBlY3RQbHVnaW4oXCJleHBvcnREZWZhdWx0RnJvbVwiKTtsZXQgcj10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiByLmV4cG9ydGVkPWksZS5zcGVjaWZpZXJzPVt0aGlzLmZpbmlzaE5vZGUocixcIkV4cG9ydERlZmF1bHRTcGVjaWZpZXJcIildLHN1cGVyLnBhcnNlRXhwb3J0KGUscyl9aXNFeHBvcnREZWZhdWx0U3BlY2lmaWVyKCl7aWYodGhpcy5tYXRjaCg2NSkpe2xldCBlPXRoaXMubmV4dFRva2VuU3RhcnQoKTtpZih0aGlzLmlzVW5wYXJzZWRDb250ZXh0dWFsKGUsXCJmcm9tXCIpJiZ0aGlzLmlucHV0LnN0YXJ0c1dpdGgocSgxNDIpLHRoaXMubmV4dFRva2VuU3RhcnRTaW5jZShlKzQpKSlyZXR1cm4hMH1yZXR1cm4gc3VwZXIuaXNFeHBvcnREZWZhdWx0U3BlY2lmaWVyKCl9bWF5YmVQYXJzZUV4cG9ydERlZmF1bHRTcGVjaWZpZXIoZSxzKXt2YXIgaTtyZXR1cm4oaT1lLnNwZWNpZmllcnMpIT1udWxsJiZpLmxlbmd0aD8hMDpzdXBlci5tYXliZVBhcnNlRXhwb3J0RGVmYXVsdFNwZWNpZmllcihlLHMpfWNoZWNrRXhwb3J0KGUpe2xldHtzcGVjaWZpZXJzOnN9PWU7cyE9bnVsbCYmcy5sZW5ndGgmJihlLnNwZWNpZmllcnM9cy5maWx0ZXIoaT0+aS5leHBvcnRlZC50eXBlPT09XCJQbGFjZWhvbGRlclwiKSksc3VwZXIuY2hlY2tFeHBvcnQoZSksZS5zcGVjaWZpZXJzPXN9cGFyc2VJbXBvcnQoZSl7bGV0IHM9dGhpcy5wYXJzZVBsYWNlaG9sZGVyKFwiSWRlbnRpZmllclwiKTtpZighcylyZXR1cm4gc3VwZXIucGFyc2VJbXBvcnQoZSk7aWYoZS5zcGVjaWZpZXJzPVtdLCF0aGlzLmlzQ29udGV4dHVhbCg5NykmJiF0aGlzLm1hdGNoKDEyKSlyZXR1cm4gZS5zb3VyY2U9dGhpcy5maW5pc2hQbGFjZWhvbGRlcihzLFwiU3RyaW5nTGl0ZXJhbFwiKSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZShlLFwiSW1wb3J0RGVjbGFyYXRpb25cIik7bGV0IGk9dGhpcy5zdGFydE5vZGVBdE5vZGUocyk7cmV0dXJuIGkubG9jYWw9cyxlLnNwZWNpZmllcnMucHVzaCh0aGlzLmZpbmlzaE5vZGUoaSxcIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIikpLHRoaXMuZWF0KDEyKSYmKHRoaXMubWF5YmVQYXJzZVN0YXJJbXBvcnRTcGVjaWZpZXIoZSl8fHRoaXMucGFyc2VOYW1lZEltcG9ydFNwZWNpZmllcnMoZSkpLHRoaXMuZXhwZWN0Q29udGV4dHVhbCg5NyksZS5zb3VyY2U9dGhpcy5wYXJzZUltcG9ydFNvdXJjZSgpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKGUsXCJJbXBvcnREZWNsYXJhdGlvblwiKX1wYXJzZUltcG9ydFNvdXJjZSgpe3JldHVybiB0aGlzLnBhcnNlUGxhY2Vob2xkZXIoXCJTdHJpbmdMaXRlcmFsXCIpfHxzdXBlci5wYXJzZUltcG9ydFNvdXJjZSgpfWFzc2VydE5vU3BhY2UoKXt0aGlzLnN0YXRlLnN0YXJ0PnRoaXMuc3RhdGUubGFzdFRva0VuZExvYy5pbmRleCYmdGhpcy5yYWlzZShIdC5VbmV4cGVjdGVkU3BhY2Use2F0OnRoaXMuc3RhdGUubGFzdFRva0VuZExvY30pfX0sZnI9YT0+Y2xhc3MgZXh0ZW5kcyBhe3BhcnNlVjhJbnRyaW5zaWMoKXtpZih0aGlzLm1hdGNoKDU0KSl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYyxzPXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5uZXh0KCksUyh0aGlzLnN0YXRlLnR5cGUpKXtsZXQgaT10aGlzLnBhcnNlSWRlbnRpZmllck5hbWUoKSxyPXRoaXMuY3JlYXRlSWRlbnRpZmllcihzLGkpO2lmKHIudHlwZT1cIlY4SW50cmluc2ljSWRlbnRpZmllclwiLHRoaXMubWF0Y2goMTApKXJldHVybiByfXRoaXMudW5leHBlY3RlZChlKX19cGFyc2VFeHByQXRvbShlKXtyZXR1cm4gdGhpcy5wYXJzZVY4SW50cmluc2ljKCl8fHN1cGVyLnBhcnNlRXhwckF0b20oZSl9fTtmdW5jdGlvbiBrKGEsdCl7bGV0W2Usc109dHlwZW9mIHQ9PVwic3RyaW5nXCI/W3Qse31dOnQsaT1PYmplY3Qua2V5cyhzKSxyPWkubGVuZ3RoPT09MDtyZXR1cm4gYS5zb21lKG49PntpZih0eXBlb2Ygbj09XCJzdHJpbmdcIilyZXR1cm4gciYmbj09PWU7e2xldFtvLGhdPW47aWYobyE9PWUpcmV0dXJuITE7Zm9yKGxldCBsIG9mIGkpaWYoaFtsXSE9PXNbbF0pcmV0dXJuITE7cmV0dXJuITB9fSl9ZnVuY3Rpb24gSihhLHQsZSl7bGV0IHM9YS5maW5kKGk9PkFycmF5LmlzQXJyYXkoaSk/aVswXT09PXQ6aT09PXQpO3JldHVybiBzJiZBcnJheS5pc0FycmF5KHMpJiZzLmxlbmd0aD4xP3NbMV1bZV06bnVsbH12YXIgV3Q9W1wibWluaW1hbFwiLFwiZnNoYXJwXCIsXCJoYWNrXCIsXCJzbWFydFwiXSxKdD1bXCJeXlwiLFwiQEBcIixcIl5cIixcIiVcIixcIiNcIl0sWHQ9W1wiaGFzaFwiLFwiYmFyXCJdO2Z1bmN0aW9uIG1yKGEpe2lmKGsoYSxcImRlY29yYXRvcnNcIikpe2lmKGsoYSxcImRlY29yYXRvcnMtbGVnYWN5XCIpKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCB1c2UgdGhlIGRlY29yYXRvcnMgYW5kIGRlY29yYXRvcnMtbGVnYWN5IHBsdWdpbiB0b2dldGhlclwiKTtsZXQgdD1KKGEsXCJkZWNvcmF0b3JzXCIsXCJkZWNvcmF0b3JzQmVmb3JlRXhwb3J0XCIpO2lmKHQhPW51bGwmJnR5cGVvZiB0IT1cImJvb2xlYW5cIil0aHJvdyBuZXcgRXJyb3IoXCInZGVjb3JhdG9yc0JlZm9yZUV4cG9ydCcgbXVzdCBiZSBhIGJvb2xlYW4sIGlmIHNwZWNpZmllZC5cIik7bGV0IGU9SihhLFwiZGVjb3JhdG9yc1wiLFwiYWxsb3dDYWxsUGFyZW50aGVzaXplZFwiKTtpZihlIT1udWxsJiZ0eXBlb2YgZSE9XCJib29sZWFuXCIpdGhyb3cgbmV3IEVycm9yKFwiJ2FsbG93Q2FsbFBhcmVudGhlc2l6ZWQnIG11c3QgYmUgYSBib29sZWFuLlwiKX1pZihrKGEsXCJmbG93XCIpJiZrKGEsXCJ0eXBlc2NyaXB0XCIpKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb21iaW5lIGZsb3cgYW5kIHR5cGVzY3JpcHQgcGx1Z2lucy5cIik7aWYoayhhLFwicGxhY2Vob2xkZXJzXCIpJiZrKGEsXCJ2OGludHJpbnNpY1wiKSl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29tYmluZSBwbGFjZWhvbGRlcnMgYW5kIHY4aW50cmluc2ljIHBsdWdpbnMuXCIpO2lmKGsoYSxcInBpcGVsaW5lT3BlcmF0b3JcIikpe2xldCB0PUooYSxcInBpcGVsaW5lT3BlcmF0b3JcIixcInByb3Bvc2FsXCIpO2lmKCFXdC5pbmNsdWRlcyh0KSl7bGV0IHM9V3QubWFwKGk9PmBcIiR7aX1cImApLmpvaW4oXCIsIFwiKTt0aHJvdyBuZXcgRXJyb3IoYFwicGlwZWxpbmVPcGVyYXRvclwiIHJlcXVpcmVzIFwicHJvcG9zYWxcIiBvcHRpb24gd2hvc2UgdmFsdWUgbXVzdCBiZSBvbmUgb2Y6ICR7c30uYCl9bGV0IGU9ayhhLFtcInJlY29yZEFuZFR1cGxlXCIse3N5bnRheFR5cGU6XCJoYXNoXCJ9XSk7aWYodD09PVwiaGFja1wiKXtpZihrKGEsXCJwbGFjZWhvbGRlcnNcIikpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNvbWJpbmUgcGxhY2Vob2xkZXJzIHBsdWdpbiBhbmQgSGFjay1zdHlsZSBwaXBlcy5cIik7aWYoayhhLFwidjhpbnRyaW5zaWNcIikpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNvbWJpbmUgdjhpbnRyaW5zaWMgcGx1Z2luIGFuZCBIYWNrLXN0eWxlIHBpcGVzLlwiKTtsZXQgcz1KKGEsXCJwaXBlbGluZU9wZXJhdG9yXCIsXCJ0b3BpY1Rva2VuXCIpO2lmKCFKdC5pbmNsdWRlcyhzKSl7bGV0IGk9SnQubWFwKHI9PmBcIiR7cn1cImApLmpvaW4oXCIsIFwiKTt0aHJvdyBuZXcgRXJyb3IoYFwicGlwZWxpbmVPcGVyYXRvclwiIGluIFwicHJvcG9zYWxcIjogXCJoYWNrXCIgbW9kZSBhbHNvIHJlcXVpcmVzIGEgXCJ0b3BpY1Rva2VuXCIgb3B0aW9uIHdob3NlIHZhbHVlIG11c3QgYmUgb25lIG9mOiAke2l9LmApfWlmKHM9PT1cIiNcIiYmZSl0aHJvdyBuZXcgRXJyb3IoJ1BsdWdpbiBjb25mbGljdCBiZXR3ZWVuIGBbXCJwaXBlbGluZU9wZXJhdG9yXCIsIHsgcHJvcG9zYWw6IFwiaGFja1wiLCB0b3BpY1Rva2VuOiBcIiNcIiB9XWAgYW5kIGBbXCJyZWNvcmRBbmR0dXBsZVwiLCB7IHN5bnRheFR5cGU6IFwiaGFzaFwifV1gLicpfWVsc2UgaWYodD09PVwic21hcnRcIiYmZSl0aHJvdyBuZXcgRXJyb3IoJ1BsdWdpbiBjb25mbGljdCBiZXR3ZWVuIGBbXCJwaXBlbGluZU9wZXJhdG9yXCIsIHsgcHJvcG9zYWw6IFwic21hcnRcIiB9XWAgYW5kIGBbXCJyZWNvcmRBbmR0dXBsZVwiLCB7IHN5bnRheFR5cGU6IFwiaGFzaFwifV1gLicpfWlmKGsoYSxcIm1vZHVsZUF0dHJpYnV0ZXNcIikpe2lmKGsoYSxcImltcG9ydEFzc2VydGlvbnNcIil8fGsoYSxcImltcG9ydEF0dHJpYnV0ZXNcIikpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNvbWJpbmUgaW1wb3J0QXNzZXJ0aW9ucywgaW1wb3J0QXR0cmlidXRlcyBhbmQgbW9kdWxlQXR0cmlidXRlcyBwbHVnaW5zLlwiKTtpZihKKGEsXCJtb2R1bGVBdHRyaWJ1dGVzXCIsXCJ2ZXJzaW9uXCIpIT09XCJtYXktMjAyMFwiKXRocm93IG5ldyBFcnJvcihcIlRoZSAnbW9kdWxlQXR0cmlidXRlcycgcGx1Z2luIHJlcXVpcmVzIGEgJ3ZlcnNpb24nIG9wdGlvbiwgcmVwcmVzZW50aW5nIHRoZSBsYXN0IHByb3Bvc2FsIHVwZGF0ZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgJ21heS0yMDIwJy5cIil9aWYoayhhLFwiaW1wb3J0QXNzZXJ0aW9uc1wiKSYmayhhLFwiaW1wb3J0QXR0cmlidXRlc1wiKSl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29tYmluZSBpbXBvcnRBc3NlcnRpb25zIGFuZCBpbXBvcnRBdHRyaWJ1dGVzIHBsdWdpbnMuXCIpO2lmKGsoYSxcInJlY29yZEFuZFR1cGxlXCIpJiZKKGEsXCJyZWNvcmRBbmRUdXBsZVwiLFwic3ludGF4VHlwZVwiKSE9bnVsbCYmIVh0LmluY2x1ZGVzKEooYSxcInJlY29yZEFuZFR1cGxlXCIsXCJzeW50YXhUeXBlXCIpKSl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3N5bnRheFR5cGUnIG9wdGlvbiBvZiB0aGUgJ3JlY29yZEFuZFR1cGxlJyBwbHVnaW4gbXVzdCBiZSBvbmUgb2Y6IFwiK1h0Lm1hcCh0PT5gJyR7dH0nYCkuam9pbihcIiwgXCIpKTtpZihrKGEsXCJhc3luY0RvRXhwcmVzc2lvbnNcIikmJiFrKGEsXCJkb0V4cHJlc3Npb25zXCIpKXtsZXQgdD1uZXcgRXJyb3IoXCInYXN5bmNEb0V4cHJlc3Npb25zJyByZXF1aXJlcyAnZG9FeHByZXNzaW9ucycsIHBsZWFzZSBhZGQgJ2RvRXhwcmVzc2lvbnMnIHRvIHBhcnNlciBwbHVnaW5zLlwiKTt0aHJvdyB0Lm1pc3NpbmdQbHVnaW5zPVwiZG9FeHByZXNzaW9uc1wiLHR9fXZhciBmcz17ZXN0cmVlOm1pLGpzeDppcixmbG93OnNyLHR5cGVzY3JpcHQ6bHIsdjhpbnRyaW5zaWM6ZnIscGxhY2Vob2xkZXJzOmRyfSx5cj1PYmplY3Qua2V5cyhmcyksSmU9e3NvdXJjZVR5cGU6XCJzY3JpcHRcIixzb3VyY2VGaWxlbmFtZTp2b2lkIDAsc3RhcnRDb2x1bW46MCxzdGFydExpbmU6MSxhbGxvd0F3YWl0T3V0c2lkZUZ1bmN0aW9uOiExLGFsbG93UmV0dXJuT3V0c2lkZUZ1bmN0aW9uOiExLGFsbG93TmV3VGFyZ2V0T3V0c2lkZUZ1bmN0aW9uOiExLGFsbG93SW1wb3J0RXhwb3J0RXZlcnl3aGVyZTohMSxhbGxvd1N1cGVyT3V0c2lkZU1ldGhvZDohMSxhbGxvd1VuZGVjbGFyZWRFeHBvcnRzOiExLHBsdWdpbnM6W10sc3RyaWN0TW9kZTpudWxsLHJhbmdlczohMSx0b2tlbnM6ITEsY3JlYXRlUGFyZW50aGVzaXplZEV4cHJlc3Npb25zOiExLGVycm9yUmVjb3Zlcnk6ITEsYXR0YWNoQ29tbWVudDohMCxhbm5leEI6ITB9O2Z1bmN0aW9uIHhyKGEpe2lmKGE9PW51bGwpcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sSmUpO2lmKGEuYW5uZXhCIT1udWxsJiZhLmFubmV4QiE9PSExKXRocm93IG5ldyBFcnJvcihcIlRoZSBgYW5uZXhCYCBvcHRpb24gY2FuIG9ubHkgYmUgc2V0IHRvIGBmYWxzZWAuXCIpO2xldCB0PXt9O2ZvcihsZXQgcyBvZiBPYmplY3Qua2V5cyhKZSkpe3ZhciBlO3Rbc109KGU9YVtzXSkhPW51bGw/ZTpKZVtzXX1yZXR1cm4gdH12YXIgeHQ9Y2xhc3MgZXh0ZW5kcyB5dHtjaGVja1Byb3RvKHQsZSxzLGkpe2lmKHQudHlwZT09PVwiU3ByZWFkRWxlbWVudFwifHx0aGlzLmlzT2JqZWN0TWV0aG9kKHQpfHx0LmNvbXB1dGVkfHx0LnNob3J0aGFuZClyZXR1cm47bGV0IHI9dC5rZXk7aWYoKHIudHlwZT09PVwiSWRlbnRpZmllclwiP3IubmFtZTpyLnZhbHVlKT09PVwiX19wcm90b19fXCIpe2lmKGUpe3RoaXMucmFpc2UocC5SZWNvcmROb1Byb3RvLHthdDpyfSk7cmV0dXJufXMudXNlZCYmKGk/aS5kb3VibGVQcm90b0xvYz09PW51bGwmJihpLmRvdWJsZVByb3RvTG9jPXIubG9jLnN0YXJ0KTp0aGlzLnJhaXNlKHAuRHVwbGljYXRlUHJvdG8se2F0OnJ9KSkscy51c2VkPSEwfX1zaG91bGRFeGl0RGVzY2VuZGluZyh0LGUpe3JldHVybiB0LnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCImJnQuc3RhcnQ9PT1lfWdldEV4cHJlc3Npb24oKXt0aGlzLmVudGVySW5pdGlhbFNjb3BlcygpLHRoaXMubmV4dFRva2VuKCk7bGV0IHQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKTtyZXR1cm4gdGhpcy5tYXRjaCgxMzcpfHx0aGlzLnVuZXhwZWN0ZWQoKSx0aGlzLmZpbmFsaXplUmVtYWluaW5nQ29tbWVudHMoKSx0LmNvbW1lbnRzPXRoaXMuc3RhdGUuY29tbWVudHMsdC5lcnJvcnM9dGhpcy5zdGF0ZS5lcnJvcnMsdGhpcy5vcHRpb25zLnRva2VucyYmKHQudG9rZW5zPXRoaXMudG9rZW5zKSx0fXBhcnNlRXhwcmVzc2lvbih0LGUpe3JldHVybiB0P3RoaXMuZGlzYWxsb3dJbkFuZCgoKT0+dGhpcy5wYXJzZUV4cHJlc3Npb25CYXNlKGUpKTp0aGlzLmFsbG93SW5BbmQoKCk9PnRoaXMucGFyc2VFeHByZXNzaW9uQmFzZShlKSl9cGFyc2VFeHByZXNzaW9uQmFzZSh0KXtsZXQgZT10aGlzLnN0YXRlLnN0YXJ0TG9jLHM9dGhpcy5wYXJzZU1heWJlQXNzaWduKHQpO2lmKHRoaXMubWF0Y2goMTIpKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZUF0KGUpO2ZvcihpLmV4cHJlc3Npb25zPVtzXTt0aGlzLmVhdCgxMik7KWkuZXhwcmVzc2lvbnMucHVzaCh0aGlzLnBhcnNlTWF5YmVBc3NpZ24odCkpO3JldHVybiB0aGlzLnRvUmVmZXJlbmNlZExpc3QoaS5leHByZXNzaW9ucyksdGhpcy5maW5pc2hOb2RlKGksXCJTZXF1ZW5jZUV4cHJlc3Npb25cIil9cmV0dXJuIHN9cGFyc2VNYXliZUFzc2lnbkRpc2FsbG93SW4odCxlKXtyZXR1cm4gdGhpcy5kaXNhbGxvd0luQW5kKCgpPT50aGlzLnBhcnNlTWF5YmVBc3NpZ24odCxlKSl9cGFyc2VNYXliZUFzc2lnbkFsbG93SW4odCxlKXtyZXR1cm4gdGhpcy5hbGxvd0luQW5kKCgpPT50aGlzLnBhcnNlTWF5YmVBc3NpZ24odCxlKSl9c2V0T3B0aW9uYWxQYXJhbWV0ZXJzRXJyb3IodCxlKXt2YXIgczt0Lm9wdGlvbmFsUGFyYW1ldGVyc0xvYz0ocz1lPT1udWxsP3ZvaWQgMDplLmxvYykhPW51bGw/czp0aGlzLnN0YXRlLnN0YXJ0TG9jfXBhcnNlTWF5YmVBc3NpZ24odCxlKXtsZXQgcz10aGlzLnN0YXRlLnN0YXJ0TG9jO2lmKHRoaXMuaXNDb250ZXh0dWFsKDEwNikmJnRoaXMucHJvZFBhcmFtLmhhc1lpZWxkKXtsZXQgbz10aGlzLnBhcnNlWWllbGQoKTtyZXR1cm4gZSYmKG89ZS5jYWxsKHRoaXMsbyxzKSksb31sZXQgaTt0P2k9ITE6KHQ9bmV3IHNlLGk9ITApO2xldHt0eXBlOnJ9PXRoaXMuc3RhdGU7KHI9PT0xMHx8UyhyKSkmJih0aGlzLnN0YXRlLnBvdGVudGlhbEFycm93QXQ9dGhpcy5zdGF0ZS5zdGFydCk7bGV0IG49dGhpcy5wYXJzZU1heWJlQ29uZGl0aW9uYWwodCk7aWYoZSYmKG49ZS5jYWxsKHRoaXMsbixzKSksVGkodGhpcy5zdGF0ZS50eXBlKSl7bGV0IG89dGhpcy5zdGFydE5vZGVBdChzKSxoPXRoaXMuc3RhdGUudmFsdWU7aWYoby5vcGVyYXRvcj1oLHRoaXMubWF0Y2goMjkpKXt0aGlzLnRvQXNzaWduYWJsZShuLCEwKSxvLmxlZnQ9bjtsZXQgbD1zLmluZGV4O3QuZG91YmxlUHJvdG9Mb2MhPW51bGwmJnQuZG91YmxlUHJvdG9Mb2MuaW5kZXg+PWwmJih0LmRvdWJsZVByb3RvTG9jPW51bGwpLHQuc2hvcnRoYW5kQXNzaWduTG9jIT1udWxsJiZ0LnNob3J0aGFuZEFzc2lnbkxvYy5pbmRleD49bCYmKHQuc2hvcnRoYW5kQXNzaWduTG9jPW51bGwpLHQucHJpdmF0ZUtleUxvYyE9bnVsbCYmdC5wcml2YXRlS2V5TG9jLmluZGV4Pj1sJiYodGhpcy5jaGVja0Rlc3RydWN0dXJpbmdQcml2YXRlKHQpLHQucHJpdmF0ZUtleUxvYz1udWxsKX1lbHNlIG8ubGVmdD1uO3JldHVybiB0aGlzLm5leHQoKSxvLnJpZ2h0PXRoaXMucGFyc2VNYXliZUFzc2lnbigpLHRoaXMuY2hlY2tMVmFsKG4se2luOnRoaXMuZmluaXNoTm9kZShvLFwiQXNzaWdubWVudEV4cHJlc3Npb25cIil9KSxvfWVsc2UgaSYmdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnModCwhMCk7cmV0dXJuIG59cGFyc2VNYXliZUNvbmRpdGlvbmFsKHQpe2xldCBlPXRoaXMuc3RhdGUuc3RhcnRMb2Mscz10aGlzLnN0YXRlLnBvdGVudGlhbEFycm93QXQsaT10aGlzLnBhcnNlRXhwck9wcyh0KTtyZXR1cm4gdGhpcy5zaG91bGRFeGl0RGVzY2VuZGluZyhpLHMpP2k6dGhpcy5wYXJzZUNvbmRpdGlvbmFsKGksZSx0KX1wYXJzZUNvbmRpdGlvbmFsKHQsZSxzKXtpZih0aGlzLmVhdCgxNykpe2xldCBpPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIGkudGVzdD10LGkuY29uc2VxdWVudD10aGlzLnBhcnNlTWF5YmVBc3NpZ25BbGxvd0luKCksdGhpcy5leHBlY3QoMTQpLGkuYWx0ZXJuYXRlPXRoaXMucGFyc2VNYXliZUFzc2lnbigpLHRoaXMuZmluaXNoTm9kZShpLFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIpfXJldHVybiB0fXBhcnNlTWF5YmVVbmFyeU9yUHJpdmF0ZSh0KXtyZXR1cm4gdGhpcy5tYXRjaCgxMzYpP3RoaXMucGFyc2VQcml2YXRlTmFtZSgpOnRoaXMucGFyc2VNYXliZVVuYXJ5KHQpfXBhcnNlRXhwck9wcyh0KXtsZXQgZT10aGlzLnN0YXRlLnN0YXJ0TG9jLHM9dGhpcy5zdGF0ZS5wb3RlbnRpYWxBcnJvd0F0LGk9dGhpcy5wYXJzZU1heWJlVW5hcnlPclByaXZhdGUodCk7cmV0dXJuIHRoaXMuc2hvdWxkRXhpdERlc2NlbmRpbmcoaSxzKT9pOnRoaXMucGFyc2VFeHByT3AoaSxlLC0xKX1wYXJzZUV4cHJPcCh0LGUscyl7aWYodGhpcy5pc1ByaXZhdGVOYW1lKHQpKXtsZXQgcj10aGlzLmdldFByaXZhdGVOYW1lU1YodCk7KHM+PU5lKDU4KXx8IXRoaXMucHJvZFBhcmFtLmhhc0lufHwhdGhpcy5tYXRjaCg1OCkpJiZ0aGlzLnJhaXNlKHAuUHJpdmF0ZUluRXhwZWN0ZWRJbix7YXQ6dCxpZGVudGlmaWVyTmFtZTpyfSksdGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHIsdC5sb2Muc3RhcnQpfWxldCBpPXRoaXMuc3RhdGUudHlwZTtpZihBaShpKSYmKHRoaXMucHJvZFBhcmFtLmhhc0lufHwhdGhpcy5tYXRjaCg1OCkpKXtsZXQgcj1OZShpKTtpZihyPnMpe2lmKGk9PT0zOSl7aWYodGhpcy5leHBlY3RQbHVnaW4oXCJwaXBlbGluZU9wZXJhdG9yXCIpLHRoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHkpcmV0dXJuIHQ7dGhpcy5jaGVja1BpcGVsaW5lQXRJbmZpeE9wZXJhdG9yKHQsZSl9bGV0IG49dGhpcy5zdGFydE5vZGVBdChlKTtuLmxlZnQ9dCxuLm9wZXJhdG9yPXRoaXMuc3RhdGUudmFsdWU7bGV0IG89aT09PTQxfHxpPT09NDIsaD1pPT09NDA7aWYoaCYmKHI9TmUoNDIpKSx0aGlzLm5leHQoKSxpPT09MzkmJnRoaXMuaGFzUGx1Z2luKFtcInBpcGVsaW5lT3BlcmF0b3JcIix7cHJvcG9zYWw6XCJtaW5pbWFsXCJ9XSkmJnRoaXMuc3RhdGUudHlwZT09PTk2JiZ0aGlzLnByb2RQYXJhbS5oYXNBd2FpdCl0aHJvdyB0aGlzLnJhaXNlKHAuVW5leHBlY3RlZEF3YWl0QWZ0ZXJQaXBlbGluZUJvZHkse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtuLnJpZ2h0PXRoaXMucGFyc2VFeHByT3BSaWdodEV4cHIoaSxyKTtsZXQgbD10aGlzLmZpbmlzaE5vZGUobixvfHxoP1wiTG9naWNhbEV4cHJlc3Npb25cIjpcIkJpbmFyeUV4cHJlc3Npb25cIiksYz10aGlzLnN0YXRlLnR5cGU7aWYoaCYmKGM9PT00MXx8Yz09PTQyKXx8byYmYz09PTQwKXRocm93IHRoaXMucmFpc2UocC5NaXhpbmdDb2FsZXNjZVdpdGhMb2dpY2FsLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7cmV0dXJuIHRoaXMucGFyc2VFeHByT3AobCxlLHMpfX1yZXR1cm4gdH1wYXJzZUV4cHJPcFJpZ2h0RXhwcih0LGUpe2xldCBzPXRoaXMuc3RhdGUuc3RhcnRMb2M7c3dpdGNoKHQpe2Nhc2UgMzk6c3dpdGNoKHRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwicGlwZWxpbmVPcGVyYXRvclwiLFwicHJvcG9zYWxcIikpe2Nhc2VcImhhY2tcIjpyZXR1cm4gdGhpcy53aXRoVG9waWNCaW5kaW5nQ29udGV4dCgoKT0+dGhpcy5wYXJzZUhhY2tQaXBlQm9keSgpKTtjYXNlXCJzbWFydFwiOnJldHVybiB0aGlzLndpdGhUb3BpY0JpbmRpbmdDb250ZXh0KCgpPT57aWYodGhpcy5wcm9kUGFyYW0uaGFzWWllbGQmJnRoaXMuaXNDb250ZXh0dWFsKDEwNikpdGhyb3cgdGhpcy5yYWlzZShwLlBpcGVCb2R5SXNUaWdodGVyLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7cmV0dXJuIHRoaXMucGFyc2VTbWFydFBpcGVsaW5lQm9keUluU3R5bGUodGhpcy5wYXJzZUV4cHJPcEJhc2VSaWdodEV4cHIodCxlKSxzKX0pO2Nhc2VcImZzaGFycFwiOnJldHVybiB0aGlzLndpdGhTb2xvQXdhaXRQZXJtaXR0aW5nQ29udGV4dCgoKT0+dGhpcy5wYXJzZUZTaGFycFBpcGVsaW5lQm9keShlKSl9ZGVmYXVsdDpyZXR1cm4gdGhpcy5wYXJzZUV4cHJPcEJhc2VSaWdodEV4cHIodCxlKX19cGFyc2VFeHByT3BCYXNlUmlnaHRFeHByKHQsZSl7bGV0IHM9dGhpcy5zdGF0ZS5zdGFydExvYztyZXR1cm4gdGhpcy5wYXJzZUV4cHJPcCh0aGlzLnBhcnNlTWF5YmVVbmFyeU9yUHJpdmF0ZSgpLHMsSWkodCk/ZS0xOmUpfXBhcnNlSGFja1BpcGVCb2R5KCl7dmFyIHQ7bGV0e3N0YXJ0TG9jOmV9PXRoaXMuc3RhdGUscz10aGlzLnBhcnNlTWF5YmVBc3NpZ24oKTtyZXR1cm4gbGkuaGFzKHMudHlwZSkmJiEoKHQ9cy5leHRyYSkhPW51bGwmJnQucGFyZW50aGVzaXplZCkmJnRoaXMucmFpc2UocC5QaXBlVW5wYXJlbnRoZXNpemVkQm9keSx7YXQ6ZSx0eXBlOnMudHlwZX0pLHRoaXMudG9waWNSZWZlcmVuY2VXYXNVc2VkSW5DdXJyZW50Q29udGV4dCgpfHx0aGlzLnJhaXNlKHAuUGlwZVRvcGljVW51c2VkLHthdDplfSksc31jaGVja0V4cG9uZW50aWFsQWZ0ZXJVbmFyeSh0KXt0aGlzLm1hdGNoKDU3KSYmdGhpcy5yYWlzZShwLlVuZXhwZWN0ZWRUb2tlblVuYXJ5RXhwb25lbnRpYXRpb24se2F0OnQuYXJndW1lbnR9KX1wYXJzZU1heWJlVW5hcnkodCxlKXtsZXQgcz10aGlzLnN0YXRlLnN0YXJ0TG9jLGk9dGhpcy5pc0NvbnRleHR1YWwoOTYpO2lmKGkmJnRoaXMuaXNBd2FpdEFsbG93ZWQoKSl7dGhpcy5uZXh0KCk7bGV0IGg9dGhpcy5wYXJzZUF3YWl0KHMpO3JldHVybiBlfHx0aGlzLmNoZWNrRXhwb25lbnRpYWxBZnRlclVuYXJ5KGgpLGh9bGV0IHI9dGhpcy5tYXRjaCgzNCksbj10aGlzLnN0YXJ0Tm9kZSgpO2lmKHdpKHRoaXMuc3RhdGUudHlwZSkpe24ub3BlcmF0b3I9dGhpcy5zdGF0ZS52YWx1ZSxuLnByZWZpeD0hMCx0aGlzLm1hdGNoKDcyKSYmdGhpcy5leHBlY3RQbHVnaW4oXCJ0aHJvd0V4cHJlc3Npb25zXCIpO2xldCBoPXRoaXMubWF0Y2goODkpO2lmKHRoaXMubmV4dCgpLG4uYXJndW1lbnQ9dGhpcy5wYXJzZU1heWJlVW5hcnkobnVsbCwhMCksdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnModCwhMCksdGhpcy5zdGF0ZS5zdHJpY3QmJmgpe2xldCBsPW4uYXJndW1lbnQ7bC50eXBlPT09XCJJZGVudGlmaWVyXCI/dGhpcy5yYWlzZShwLlN0cmljdERlbGV0ZSx7YXQ6bn0pOnRoaXMuaGFzUHJvcGVydHlBc1ByaXZhdGVOYW1lKGwpJiZ0aGlzLnJhaXNlKHAuRGVsZXRlUHJpdmF0ZUZpZWxkLHthdDpufSl9aWYoIXIpcmV0dXJuIGV8fHRoaXMuY2hlY2tFeHBvbmVudGlhbEFmdGVyVW5hcnkobiksdGhpcy5maW5pc2hOb2RlKG4sXCJVbmFyeUV4cHJlc3Npb25cIil9bGV0IG89dGhpcy5wYXJzZVVwZGF0ZShuLHIsdCk7aWYoaSl7bGV0e3R5cGU6aH09dGhpcy5zdGF0ZTtpZigodGhpcy5oYXNQbHVnaW4oXCJ2OGludHJpbnNpY1wiKT9aZShoKTpaZShoKSYmIXRoaXMubWF0Y2goNTQpKSYmIXRoaXMuaXNBbWJpZ3VvdXNBd2FpdCgpKXJldHVybiB0aGlzLnJhaXNlT3ZlcndyaXRlKHAuQXdhaXROb3RJbkFzeW5jQ29udGV4dCx7YXQ6c30pLHRoaXMucGFyc2VBd2FpdChzKX1yZXR1cm4gb31wYXJzZVVwZGF0ZSh0LGUscyl7aWYoZSl7bGV0IG49dDtyZXR1cm4gdGhpcy5jaGVja0xWYWwobi5hcmd1bWVudCx7aW46dGhpcy5maW5pc2hOb2RlKG4sXCJVcGRhdGVFeHByZXNzaW9uXCIpfSksdH1sZXQgaT10aGlzLnN0YXRlLnN0YXJ0TG9jLHI9dGhpcy5wYXJzZUV4cHJTdWJzY3JpcHRzKHMpO2lmKHRoaXMuY2hlY2tFeHByZXNzaW9uRXJyb3JzKHMsITEpKXJldHVybiByO2Zvcig7U2kodGhpcy5zdGF0ZS50eXBlKSYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCk7KXtsZXQgbj10aGlzLnN0YXJ0Tm9kZUF0KGkpO24ub3BlcmF0b3I9dGhpcy5zdGF0ZS52YWx1ZSxuLnByZWZpeD0hMSxuLmFyZ3VtZW50PXIsdGhpcy5uZXh0KCksdGhpcy5jaGVja0xWYWwocix7aW46cj10aGlzLmZpbmlzaE5vZGUobixcIlVwZGF0ZUV4cHJlc3Npb25cIil9KX1yZXR1cm4gcn1wYXJzZUV4cHJTdWJzY3JpcHRzKHQpe2xldCBlPXRoaXMuc3RhdGUuc3RhcnRMb2Mscz10aGlzLnN0YXRlLnBvdGVudGlhbEFycm93QXQsaT10aGlzLnBhcnNlRXhwckF0b20odCk7cmV0dXJuIHRoaXMuc2hvdWxkRXhpdERlc2NlbmRpbmcoaSxzKT9pOnRoaXMucGFyc2VTdWJzY3JpcHRzKGksZSl9cGFyc2VTdWJzY3JpcHRzKHQsZSxzKXtsZXQgaT17b3B0aW9uYWxDaGFpbk1lbWJlcjohMSxtYXliZUFzeW5jQXJyb3c6dGhpcy5hdFBvc3NpYmxlQXN5bmNBcnJvdyh0KSxzdG9wOiExfTtkbyB0PXRoaXMucGFyc2VTdWJzY3JpcHQodCxlLHMsaSksaS5tYXliZUFzeW5jQXJyb3c9ITE7d2hpbGUoIWkuc3RvcCk7cmV0dXJuIHR9cGFyc2VTdWJzY3JpcHQodCxlLHMsaSl7bGV0e3R5cGU6cn09dGhpcy5zdGF0ZTtpZighcyYmcj09PTE1KXJldHVybiB0aGlzLnBhcnNlQmluZCh0LGUscyxpKTtpZihNZShyKSlyZXR1cm4gdGhpcy5wYXJzZVRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbih0LGUsaSk7bGV0IG49ITE7aWYocj09PTE4KXtpZihzJiYodGhpcy5yYWlzZShwLk9wdGlvbmFsQ2hhaW5pbmdOb05ldyx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLHRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTQwKSlyZXR1cm4gaS5zdG9wPSEwLHQ7aS5vcHRpb25hbENoYWluTWVtYmVyPW49ITAsdGhpcy5uZXh0KCl9aWYoIXMmJnRoaXMubWF0Y2goMTApKXJldHVybiB0aGlzLnBhcnNlQ292ZXJDYWxsQW5kQXN5bmNBcnJvd0hlYWQodCxlLGksbik7e2xldCBvPXRoaXMuZWF0KDApO3JldHVybiBvfHxufHx0aGlzLmVhdCgxNik/dGhpcy5wYXJzZU1lbWJlcih0LGUsaSxvLG4pOihpLnN0b3A9ITAsdCl9fXBhcnNlTWVtYmVyKHQsZSxzLGkscil7bGV0IG49dGhpcy5zdGFydE5vZGVBdChlKTtyZXR1cm4gbi5vYmplY3Q9dCxuLmNvbXB1dGVkPWksaT8obi5wcm9wZXJ0eT10aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuZXhwZWN0KDMpKTp0aGlzLm1hdGNoKDEzNik/KHQudHlwZT09PVwiU3VwZXJcIiYmdGhpcy5yYWlzZShwLlN1cGVyUHJpdmF0ZUZpZWxkLHthdDplfSksdGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHRoaXMuc3RhdGUudmFsdWUsdGhpcy5zdGF0ZS5zdGFydExvYyksbi5wcm9wZXJ0eT10aGlzLnBhcnNlUHJpdmF0ZU5hbWUoKSk6bi5wcm9wZXJ0eT10aGlzLnBhcnNlSWRlbnRpZmllcighMCkscy5vcHRpb25hbENoYWluTWVtYmVyPyhuLm9wdGlvbmFsPXIsdGhpcy5maW5pc2hOb2RlKG4sXCJPcHRpb25hbE1lbWJlckV4cHJlc3Npb25cIikpOnRoaXMuZmluaXNoTm9kZShuLFwiTWVtYmVyRXhwcmVzc2lvblwiKX1wYXJzZUJpbmQodCxlLHMsaSl7bGV0IHI9dGhpcy5zdGFydE5vZGVBdChlKTtyZXR1cm4gci5vYmplY3Q9dCx0aGlzLm5leHQoKSxyLmNhbGxlZT10aGlzLnBhcnNlTm9DYWxsRXhwcigpLGkuc3RvcD0hMCx0aGlzLnBhcnNlU3Vic2NyaXB0cyh0aGlzLmZpbmlzaE5vZGUocixcIkJpbmRFeHByZXNzaW9uXCIpLGUscyl9cGFyc2VDb3ZlckNhbGxBbmRBc3luY0Fycm93SGVhZCh0LGUscyxpKXtsZXQgcj10aGlzLnN0YXRlLm1heWJlSW5BcnJvd1BhcmFtZXRlcnMsbj1udWxsO3RoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycz0hMCx0aGlzLm5leHQoKTtsZXQgbz10aGlzLnN0YXJ0Tm9kZUF0KGUpO28uY2FsbGVlPXQ7bGV0e21heWJlQXN5bmNBcnJvdzpoLG9wdGlvbmFsQ2hhaW5NZW1iZXI6bH09cztoJiYodGhpcy5leHByZXNzaW9uU2NvcGUuZW50ZXIoSmkoKSksbj1uZXcgc2UpLGwmJihvLm9wdGlvbmFsPWkpLGk/by5hcmd1bWVudHM9dGhpcy5wYXJzZUNhbGxFeHByZXNzaW9uQXJndW1lbnRzKDExKTpvLmFyZ3VtZW50cz10aGlzLnBhcnNlQ2FsbEV4cHJlc3Npb25Bcmd1bWVudHMoMTEsdC50eXBlPT09XCJJbXBvcnRcIix0LnR5cGUhPT1cIlN1cGVyXCIsaD9vOm51bGwsbik7bGV0IGM9dGhpcy5maW5pc2hDYWxsRXhwcmVzc2lvbihvLGwpO3JldHVybiBoJiZ0aGlzLnNob3VsZFBhcnNlQXN5bmNBcnJvdygpJiYhaT8ocy5zdG9wPSEwLHRoaXMuY2hlY2tEZXN0cnVjdHVyaW5nUHJpdmF0ZShuKSx0aGlzLmV4cHJlc3Npb25TY29wZS52YWxpZGF0ZUFzUGF0dGVybigpLHRoaXMuZXhwcmVzc2lvblNjb3BlLmV4aXQoKSxjPXRoaXMucGFyc2VBc3luY0Fycm93RnJvbUNhbGxFeHByZXNzaW9uKHRoaXMuc3RhcnROb2RlQXQoZSksYykpOihoJiYodGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMobiwhMCksdGhpcy5leHByZXNzaW9uU2NvcGUuZXhpdCgpKSx0aGlzLnRvUmVmZXJlbmNlZEFyZ3VtZW50cyhjKSksdGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPXIsY310b1JlZmVyZW5jZWRBcmd1bWVudHModCxlKXt0aGlzLnRvUmVmZXJlbmNlZExpc3REZWVwKHQuYXJndW1lbnRzLGUpfXBhcnNlVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKHQsZSxzKXtsZXQgaT10aGlzLnN0YXJ0Tm9kZUF0KGUpO3JldHVybiBpLnRhZz10LGkucXVhc2k9dGhpcy5wYXJzZVRlbXBsYXRlKCEwKSxzLm9wdGlvbmFsQ2hhaW5NZW1iZXImJnRoaXMucmFpc2UocC5PcHRpb25hbENoYWluaW5nTm9UZW1wbGF0ZSx7YXQ6ZX0pLHRoaXMuZmluaXNoTm9kZShpLFwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCIpfWF0UG9zc2libGVBc3luY0Fycm93KHQpe3JldHVybiB0LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmdC5uYW1lPT09XCJhc3luY1wiJiZ0aGlzLnN0YXRlLmxhc3RUb2tFbmRMb2MuaW5kZXg9PT10LmVuZCYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCkmJnQuZW5kLXQuc3RhcnQ9PT01JiZ0LnN0YXJ0PT09dGhpcy5zdGF0ZS5wb3RlbnRpYWxBcnJvd0F0fWV4cGVjdEltcG9ydEF0dHJpYnV0ZXNQbHVnaW4oKXt0aGlzLmhhc1BsdWdpbihcImltcG9ydEFzc2VydGlvbnNcIil8fHRoaXMuZXhwZWN0UGx1Z2luKFwiaW1wb3J0QXR0cmlidXRlc1wiKX1maW5pc2hDYWxsRXhwcmVzc2lvbih0LGUpe2lmKHQuY2FsbGVlLnR5cGU9PT1cIkltcG9ydFwiKWlmKHQuYXJndW1lbnRzLmxlbmd0aD09PTImJih0aGlzLmhhc1BsdWdpbihcIm1vZHVsZUF0dHJpYnV0ZXNcIil8fHRoaXMuZXhwZWN0SW1wb3J0QXR0cmlidXRlc1BsdWdpbigpKSx0LmFyZ3VtZW50cy5sZW5ndGg9PT0wfHx0LmFyZ3VtZW50cy5sZW5ndGg+Mil0aGlzLnJhaXNlKHAuSW1wb3J0Q2FsbEFyaXR5LHthdDp0LG1heEFyZ3VtZW50Q291bnQ6dGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBdHRyaWJ1dGVzXCIpfHx0aGlzLmhhc1BsdWdpbihcImltcG9ydEFzc2VydGlvbnNcIil8fHRoaXMuaGFzUGx1Z2luKFwibW9kdWxlQXR0cmlidXRlc1wiKT8yOjF9KTtlbHNlIGZvcihsZXQgcyBvZiB0LmFyZ3VtZW50cylzLnR5cGU9PT1cIlNwcmVhZEVsZW1lbnRcIiYmdGhpcy5yYWlzZShwLkltcG9ydENhbGxTcHJlYWRBcmd1bWVudCx7YXQ6c30pO3JldHVybiB0aGlzLmZpbmlzaE5vZGUodCxlP1wiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiOlwiQ2FsbEV4cHJlc3Npb25cIil9cGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cyh0LGUscyxpLHIpe2xldCBuPVtdLG89ITAsaD10aGlzLnN0YXRlLmluRlNoYXJwUGlwZWxpbmVEaXJlY3RCb2R5O2Zvcih0aGlzLnN0YXRlLmluRlNoYXJwUGlwZWxpbmVEaXJlY3RCb2R5PSExOyF0aGlzLmVhdCh0KTspe2lmKG8pbz0hMTtlbHNlIGlmKHRoaXMuZXhwZWN0KDEyKSx0aGlzLm1hdGNoKHQpKXtlJiYhdGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBdHRyaWJ1dGVzXCIpJiYhdGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBc3NlcnRpb25zXCIpJiYhdGhpcy5oYXNQbHVnaW4oXCJtb2R1bGVBdHRyaWJ1dGVzXCIpJiZ0aGlzLnJhaXNlKHAuSW1wb3J0Q2FsbEFyZ3VtZW50VHJhaWxpbmdDb21tYSx7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2N9KSxpJiZ0aGlzLmFkZFRyYWlsaW5nQ29tbWFFeHRyYVRvTm9kZShpKSx0aGlzLm5leHQoKTticmVha31uLnB1c2godGhpcy5wYXJzZUV4cHJMaXN0SXRlbSghMSxyLHMpKX1yZXR1cm4gdGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT1oLG59c2hvdWxkUGFyc2VBc3luY0Fycm93KCl7cmV0dXJuIHRoaXMubWF0Y2goMTkpJiYhdGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKX1wYXJzZUFzeW5jQXJyb3dGcm9tQ2FsbEV4cHJlc3Npb24odCxlKXt2YXIgcztyZXR1cm4gdGhpcy5yZXNldFByZXZpb3VzTm9kZVRyYWlsaW5nQ29tbWVudHMoZSksdGhpcy5leHBlY3QoMTkpLHRoaXMucGFyc2VBcnJvd0V4cHJlc3Npb24odCxlLmFyZ3VtZW50cywhMCwocz1lLmV4dHJhKT09bnVsbD92b2lkIDA6cy50cmFpbGluZ0NvbW1hTG9jKSxlLmlubmVyQ29tbWVudHMmJlRlKHQsZS5pbm5lckNvbW1lbnRzKSxlLmNhbGxlZS50cmFpbGluZ0NvbW1lbnRzJiZUZSh0LGUuY2FsbGVlLnRyYWlsaW5nQ29tbWVudHMpLHR9cGFyc2VOb0NhbGxFeHByKCl7bGV0IHQ9dGhpcy5zdGF0ZS5zdGFydExvYztyZXR1cm4gdGhpcy5wYXJzZVN1YnNjcmlwdHModGhpcy5wYXJzZUV4cHJBdG9tKCksdCwhMCl9cGFyc2VFeHByQXRvbSh0KXtsZXQgZSxzPW51bGwse3R5cGU6aX09dGhpcy5zdGF0ZTtzd2l0Y2goaSl7Y2FzZSA3OTpyZXR1cm4gdGhpcy5wYXJzZVN1cGVyKCk7Y2FzZSA4MzpyZXR1cm4gZT10aGlzLnN0YXJ0Tm9kZSgpLHRoaXMubmV4dCgpLHRoaXMubWF0Y2goMTYpP3RoaXMucGFyc2VJbXBvcnRNZXRhUHJvcGVydHkoZSk6KHRoaXMubWF0Y2goMTApfHx0aGlzLnJhaXNlKHAuVW5zdXBwb3J0ZWRJbXBvcnQse2F0OnRoaXMuc3RhdGUubGFzdFRva1N0YXJ0TG9jfSksdGhpcy5maW5pc2hOb2RlKGUsXCJJbXBvcnRcIikpO2Nhc2UgNzg6cmV0dXJuIGU9dGhpcy5zdGFydE5vZGUoKSx0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUoZSxcIlRoaXNFeHByZXNzaW9uXCIpO2Nhc2UgOTA6cmV0dXJuIHRoaXMucGFyc2VEbyh0aGlzLnN0YXJ0Tm9kZSgpLCExKTtjYXNlIDU2OmNhc2UgMzE6cmV0dXJuIHRoaXMucmVhZFJlZ2V4cCgpLHRoaXMucGFyc2VSZWdFeHBMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUpO2Nhc2UgMTMyOnJldHVybiB0aGlzLnBhcnNlTnVtZXJpY0xpdGVyYWwodGhpcy5zdGF0ZS52YWx1ZSk7Y2FzZSAxMzM6cmV0dXJuIHRoaXMucGFyc2VCaWdJbnRMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUpO2Nhc2UgMTM0OnJldHVybiB0aGlzLnBhcnNlRGVjaW1hbExpdGVyYWwodGhpcy5zdGF0ZS52YWx1ZSk7Y2FzZSAxMzE6cmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUpO2Nhc2UgODQ6cmV0dXJuIHRoaXMucGFyc2VOdWxsTGl0ZXJhbCgpO2Nhc2UgODU6cmV0dXJuIHRoaXMucGFyc2VCb29sZWFuTGl0ZXJhbCghMCk7Y2FzZSA4NjpyZXR1cm4gdGhpcy5wYXJzZUJvb2xlYW5MaXRlcmFsKCExKTtjYXNlIDEwOntsZXQgcj10aGlzLnN0YXRlLnBvdGVudGlhbEFycm93QXQ9PT10aGlzLnN0YXRlLnN0YXJ0O3JldHVybiB0aGlzLnBhcnNlUGFyZW5BbmREaXN0aW5ndWlzaEV4cHJlc3Npb24ocil9Y2FzZSAyOmNhc2UgMTpyZXR1cm4gdGhpcy5wYXJzZUFycmF5TGlrZSh0aGlzLnN0YXRlLnR5cGU9PT0yPzQ6MywhMSwhMCk7Y2FzZSAwOnJldHVybiB0aGlzLnBhcnNlQXJyYXlMaWtlKDMsITAsITEsdCk7Y2FzZSA2OmNhc2UgNzpyZXR1cm4gdGhpcy5wYXJzZU9iamVjdExpa2UodGhpcy5zdGF0ZS50eXBlPT09Nj85OjgsITEsITApO2Nhc2UgNTpyZXR1cm4gdGhpcy5wYXJzZU9iamVjdExpa2UoOCwhMSwhMSx0KTtjYXNlIDY4OnJldHVybiB0aGlzLnBhcnNlRnVuY3Rpb25PckZ1bmN0aW9uU2VudCgpO2Nhc2UgMjY6cz10aGlzLnBhcnNlRGVjb3JhdG9ycygpO2Nhc2UgODA6cmV0dXJuIHRoaXMucGFyc2VDbGFzcyh0aGlzLm1heWJlVGFrZURlY29yYXRvcnMocyx0aGlzLnN0YXJ0Tm9kZSgpKSwhMSk7Y2FzZSA3NzpyZXR1cm4gdGhpcy5wYXJzZU5ld09yTmV3VGFyZ2V0KCk7Y2FzZSAyNTpjYXNlIDI0OnJldHVybiB0aGlzLnBhcnNlVGVtcGxhdGUoITEpO2Nhc2UgMTU6e2U9dGhpcy5zdGFydE5vZGUoKSx0aGlzLm5leHQoKSxlLm9iamVjdD1udWxsO2xldCByPWUuY2FsbGVlPXRoaXMucGFyc2VOb0NhbGxFeHByKCk7aWYoci50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCIpcmV0dXJuIHRoaXMuZmluaXNoTm9kZShlLFwiQmluZEV4cHJlc3Npb25cIik7dGhyb3cgdGhpcy5yYWlzZShwLlVuc3VwcG9ydGVkQmluZCx7YXQ6cn0pfWNhc2UgMTM2OnJldHVybiB0aGlzLnJhaXNlKHAuUHJpdmF0ZUluRXhwZWN0ZWRJbix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvYyxpZGVudGlmaWVyTmFtZTp0aGlzLnN0YXRlLnZhbHVlfSksdGhpcy5wYXJzZVByaXZhdGVOYW1lKCk7Y2FzZSAzMzpyZXR1cm4gdGhpcy5wYXJzZVRvcGljUmVmZXJlbmNlVGhlbkVxdWFsc1NpZ24oNTQsXCIlXCIpO2Nhc2UgMzI6cmV0dXJuIHRoaXMucGFyc2VUb3BpY1JlZmVyZW5jZVRoZW5FcXVhbHNTaWduKDQ0LFwiXlwiKTtjYXNlIDM3OmNhc2UgMzg6cmV0dXJuIHRoaXMucGFyc2VUb3BpY1JlZmVyZW5jZShcImhhY2tcIik7Y2FzZSA0NDpjYXNlIDU0OmNhc2UgMjc6e2xldCByPXRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwicGlwZWxpbmVPcGVyYXRvclwiLFwicHJvcG9zYWxcIik7aWYocilyZXR1cm4gdGhpcy5wYXJzZVRvcGljUmVmZXJlbmNlKHIpO3RoaXMudW5leHBlY3RlZCgpO2JyZWFrfWNhc2UgNDc6e2xldCByPXRoaXMuaW5wdXQuY29kZVBvaW50QXQodGhpcy5uZXh0VG9rZW5TdGFydCgpKTtqKHIpfHxyPT09NjI/dGhpcy5leHBlY3RPbmVQbHVnaW4oW1wianN4XCIsXCJmbG93XCIsXCJ0eXBlc2NyaXB0XCJdKTp0aGlzLnVuZXhwZWN0ZWQoKTticmVha31kZWZhdWx0OmlmKFMoaSkpe2lmKHRoaXMuaXNDb250ZXh0dWFsKDEyNSkmJnRoaXMubG9va2FoZWFkSW5MaW5lQ2hhckNvZGUoKT09PTEyMylyZXR1cm4gdGhpcy5wYXJzZU1vZHVsZUV4cHJlc3Npb24oKTtsZXQgcj10aGlzLnN0YXRlLnBvdGVudGlhbEFycm93QXQ9PT10aGlzLnN0YXRlLnN0YXJ0LG49dGhpcy5zdGF0ZS5jb250YWluc0VzYyxvPXRoaXMucGFyc2VJZGVudGlmaWVyKCk7aWYoIW4mJm8ubmFtZT09PVwiYXN5bmNcIiYmIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCkpe2xldHt0eXBlOmh9PXRoaXMuc3RhdGU7aWYoaD09PTY4KXJldHVybiB0aGlzLnJlc2V0UHJldmlvdXNOb2RlVHJhaWxpbmdDb21tZW50cyhvKSx0aGlzLm5leHQoKSx0aGlzLnBhcnNlQXN5bmNGdW5jdGlvbkV4cHJlc3Npb24odGhpcy5zdGFydE5vZGVBdE5vZGUobykpO2lmKFMoaCkpcmV0dXJuIHRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTYxP3RoaXMucGFyc2VBc3luY0Fycm93VW5hcnlGdW5jdGlvbih0aGlzLnN0YXJ0Tm9kZUF0Tm9kZShvKSk6bztpZihoPT09OTApcmV0dXJuIHRoaXMucmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKG8pLHRoaXMucGFyc2VEbyh0aGlzLnN0YXJ0Tm9kZUF0Tm9kZShvKSwhMCl9cmV0dXJuIHImJnRoaXMubWF0Y2goMTkpJiYhdGhpcy5jYW5JbnNlcnRTZW1pY29sb24oKT8odGhpcy5uZXh0KCksdGhpcy5wYXJzZUFycm93RXhwcmVzc2lvbih0aGlzLnN0YXJ0Tm9kZUF0Tm9kZShvKSxbb10sITEpKTpvfWVsc2UgdGhpcy51bmV4cGVjdGVkKCl9fXBhcnNlVG9waWNSZWZlcmVuY2VUaGVuRXF1YWxzU2lnbih0LGUpe2xldCBzPXRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwicGlwZWxpbmVPcGVyYXRvclwiLFwicHJvcG9zYWxcIik7aWYocylyZXR1cm4gdGhpcy5zdGF0ZS50eXBlPXQsdGhpcy5zdGF0ZS52YWx1ZT1lLHRoaXMuc3RhdGUucG9zLS0sdGhpcy5zdGF0ZS5lbmQtLSx0aGlzLnN0YXRlLmVuZExvYz1MKHRoaXMuc3RhdGUuZW5kTG9jLC0xKSx0aGlzLnBhcnNlVG9waWNSZWZlcmVuY2Uocyk7dGhpcy51bmV4cGVjdGVkKCl9cGFyc2VUb3BpY1JlZmVyZW5jZSh0KXtsZXQgZT10aGlzLnN0YXJ0Tm9kZSgpLHM9dGhpcy5zdGF0ZS5zdGFydExvYyxpPXRoaXMuc3RhdGUudHlwZTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5maW5pc2hUb3BpY1JlZmVyZW5jZShlLHMsdCxpKX1maW5pc2hUb3BpY1JlZmVyZW5jZSh0LGUscyxpKXtpZih0aGlzLnRlc3RUb3BpY1JlZmVyZW5jZUNvbmZpZ3VyYXRpb24ocyxlLGkpKXtsZXQgcj1zPT09XCJzbWFydFwiP1wiUGlwZWxpbmVQcmltYXJ5VG9waWNSZWZlcmVuY2VcIjpcIlRvcGljUmVmZXJlbmNlXCI7cmV0dXJuIHRoaXMudG9waWNSZWZlcmVuY2VJc0FsbG93ZWRJbkN1cnJlbnRDb250ZXh0KCl8fHRoaXMucmFpc2Uocz09PVwic21hcnRcIj9wLlByaW1hcnlUb3BpY05vdEFsbG93ZWQ6cC5QaXBlVG9waWNVbmJvdW5kLHthdDplfSksdGhpcy5yZWdpc3RlclRvcGljUmVmZXJlbmNlKCksdGhpcy5maW5pc2hOb2RlKHQscil9ZWxzZSB0aHJvdyB0aGlzLnJhaXNlKHAuUGlwZVRvcGljVW5jb25maWd1cmVkVG9rZW4se2F0OmUsdG9rZW46cShpKX0pfXRlc3RUb3BpY1JlZmVyZW5jZUNvbmZpZ3VyYXRpb24odCxlLHMpe3N3aXRjaCh0KXtjYXNlXCJoYWNrXCI6cmV0dXJuIHRoaXMuaGFzUGx1Z2luKFtcInBpcGVsaW5lT3BlcmF0b3JcIix7dG9waWNUb2tlbjpxKHMpfV0pO2Nhc2VcInNtYXJ0XCI6cmV0dXJuIHM9PT0yNztkZWZhdWx0OnRocm93IHRoaXMucmFpc2UocC5QaXBlVG9waWNSZXF1aXJlc0hhY2tQaXBlcyx7YXQ6ZX0pfX1wYXJzZUFzeW5jQXJyb3dVbmFyeUZ1bmN0aW9uKHQpe3RoaXMucHJvZFBhcmFtLmVudGVyKHZlKCEwLHRoaXMucHJvZFBhcmFtLmhhc1lpZWxkKSk7bGV0IGU9W3RoaXMucGFyc2VJZGVudGlmaWVyKCldO3JldHVybiB0aGlzLnByb2RQYXJhbS5leGl0KCksdGhpcy5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmdGhpcy5yYWlzZShwLkxpbmVUZXJtaW5hdG9yQmVmb3JlQXJyb3cse2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKX0pLHRoaXMuZXhwZWN0KDE5KSx0aGlzLnBhcnNlQXJyb3dFeHByZXNzaW9uKHQsZSwhMCl9cGFyc2VEbyh0LGUpe3RoaXMuZXhwZWN0UGx1Z2luKFwiZG9FeHByZXNzaW9uc1wiKSxlJiZ0aGlzLmV4cGVjdFBsdWdpbihcImFzeW5jRG9FeHByZXNzaW9uc1wiKSx0LmFzeW5jPWUsdGhpcy5uZXh0KCk7bGV0IHM9dGhpcy5zdGF0ZS5sYWJlbHM7cmV0dXJuIHRoaXMuc3RhdGUubGFiZWxzPVtdLGU/KHRoaXMucHJvZFBhcmFtLmVudGVyKEJlKSx0LmJvZHk9dGhpcy5wYXJzZUJsb2NrKCksdGhpcy5wcm9kUGFyYW0uZXhpdCgpKTp0LmJvZHk9dGhpcy5wYXJzZUJsb2NrKCksdGhpcy5zdGF0ZS5sYWJlbHM9cyx0aGlzLmZpbmlzaE5vZGUodCxcIkRvRXhwcmVzc2lvblwiKX1wYXJzZVN1cGVyKCl7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5tYXRjaCgxMCkmJiF0aGlzLnNjb3BlLmFsbG93RGlyZWN0U3VwZXImJiF0aGlzLm9wdGlvbnMuYWxsb3dTdXBlck91dHNpZGVNZXRob2Q/dGhpcy5yYWlzZShwLlN1cGVyTm90QWxsb3dlZCx7YXQ6dH0pOiF0aGlzLnNjb3BlLmFsbG93U3VwZXImJiF0aGlzLm9wdGlvbnMuYWxsb3dTdXBlck91dHNpZGVNZXRob2QmJnRoaXMucmFpc2UocC5VbmV4cGVjdGVkU3VwZXIse2F0OnR9KSwhdGhpcy5tYXRjaCgxMCkmJiF0aGlzLm1hdGNoKDApJiYhdGhpcy5tYXRjaCgxNikmJnRoaXMucmFpc2UocC5VbnN1cHBvcnRlZFN1cGVyLHthdDp0fSksdGhpcy5maW5pc2hOb2RlKHQsXCJTdXBlclwiKX1wYXJzZVByaXZhdGVOYW1lKCl7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKSxlPXRoaXMuc3RhcnROb2RlQXQoTCh0aGlzLnN0YXRlLnN0YXJ0TG9jLDEpKSxzPXRoaXMuc3RhdGUudmFsdWU7cmV0dXJuIHRoaXMubmV4dCgpLHQuaWQ9dGhpcy5jcmVhdGVJZGVudGlmaWVyKGUscyksdGhpcy5maW5pc2hOb2RlKHQsXCJQcml2YXRlTmFtZVwiKX1wYXJzZUZ1bmN0aW9uT3JGdW5jdGlvblNlbnQoKXtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpO2lmKHRoaXMubmV4dCgpLHRoaXMucHJvZFBhcmFtLmhhc1lpZWxkJiZ0aGlzLm1hdGNoKDE2KSl7bGV0IGU9dGhpcy5jcmVhdGVJZGVudGlmaWVyKHRoaXMuc3RhcnROb2RlQXROb2RlKHQpLFwiZnVuY3Rpb25cIik7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMubWF0Y2goMTAyKT90aGlzLmV4cGVjdFBsdWdpbihcImZ1bmN0aW9uU2VudFwiKTp0aGlzLmhhc1BsdWdpbihcImZ1bmN0aW9uU2VudFwiKXx8dGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZU1ldGFQcm9wZXJ0eSh0LGUsXCJzZW50XCIpfXJldHVybiB0aGlzLnBhcnNlRnVuY3Rpb24odCl9cGFyc2VNZXRhUHJvcGVydHkodCxlLHMpe3QubWV0YT1lO2xldCBpPXRoaXMuc3RhdGUuY29udGFpbnNFc2M7cmV0dXJuIHQucHJvcGVydHk9dGhpcy5wYXJzZUlkZW50aWZpZXIoITApLCh0LnByb3BlcnR5Lm5hbWUhPT1zfHxpKSYmdGhpcy5yYWlzZShwLlVuc3VwcG9ydGVkTWV0YVByb3BlcnR5LHthdDp0LnByb3BlcnR5LHRhcmdldDplLm5hbWUsb25seVZhbGlkUHJvcGVydHlOYW1lOnN9KSx0aGlzLmZpbmlzaE5vZGUodCxcIk1ldGFQcm9wZXJ0eVwiKX1wYXJzZUltcG9ydE1ldGFQcm9wZXJ0eSh0KXtsZXQgZT10aGlzLmNyZWF0ZUlkZW50aWZpZXIodGhpcy5zdGFydE5vZGVBdE5vZGUodCksXCJpbXBvcnRcIik7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuaXNDb250ZXh0dWFsKDEwMCkmJih0aGlzLmluTW9kdWxlfHx0aGlzLnJhaXNlKHAuSW1wb3J0TWV0YU91dHNpZGVNb2R1bGUse2F0OmV9KSx0aGlzLnNhd1VuYW1iaWd1b3VzRVNNPSEwKSx0aGlzLnBhcnNlTWV0YVByb3BlcnR5KHQsZSxcIm1ldGFcIil9cGFyc2VMaXRlcmFsQXROb2RlKHQsZSxzKXtyZXR1cm4gdGhpcy5hZGRFeHRyYShzLFwicmF3VmFsdWVcIix0KSx0aGlzLmFkZEV4dHJhKHMsXCJyYXdcIix0aGlzLmlucHV0LnNsaWNlKHMuc3RhcnQsdGhpcy5zdGF0ZS5lbmQpKSxzLnZhbHVlPXQsdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKHMsZSl9cGFyc2VMaXRlcmFsKHQsZSl7bGV0IHM9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWxBdE5vZGUodCxlLHMpfXBhcnNlU3RyaW5nTGl0ZXJhbCh0KXtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWwodCxcIlN0cmluZ0xpdGVyYWxcIil9cGFyc2VOdW1lcmljTGl0ZXJhbCh0KXtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWwodCxcIk51bWVyaWNMaXRlcmFsXCIpfXBhcnNlQmlnSW50TGl0ZXJhbCh0KXtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWwodCxcIkJpZ0ludExpdGVyYWxcIil9cGFyc2VEZWNpbWFsTGl0ZXJhbCh0KXtyZXR1cm4gdGhpcy5wYXJzZUxpdGVyYWwodCxcIkRlY2ltYWxMaXRlcmFsXCIpfXBhcnNlUmVnRXhwTGl0ZXJhbCh0KXtsZXQgZT10aGlzLnBhcnNlTGl0ZXJhbCh0LnZhbHVlLFwiUmVnRXhwTGl0ZXJhbFwiKTtyZXR1cm4gZS5wYXR0ZXJuPXQucGF0dGVybixlLmZsYWdzPXQuZmxhZ3MsZX1wYXJzZUJvb2xlYW5MaXRlcmFsKHQpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIGUudmFsdWU9dCx0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkJvb2xlYW5MaXRlcmFsXCIpfXBhcnNlTnVsbExpdGVyYWwoKXtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpO3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmZpbmlzaE5vZGUodCxcIk51bGxMaXRlcmFsXCIpfXBhcnNlUGFyZW5BbmREaXN0aW5ndWlzaEV4cHJlc3Npb24odCl7bGV0IGU9dGhpcy5zdGF0ZS5zdGFydExvYyxzO3RoaXMubmV4dCgpLHRoaXMuZXhwcmVzc2lvblNjb3BlLmVudGVyKFdpKCkpO2xldCBpPXRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycyxyPXRoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHk7dGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPSEwLHRoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHk9ITE7bGV0IG49dGhpcy5zdGF0ZS5zdGFydExvYyxvPVtdLGg9bmV3IHNlLGw9ITAsYyx1O2Zvcig7IXRoaXMubWF0Y2goMTEpOyl7aWYobClsPSExO2Vsc2UgaWYodGhpcy5leHBlY3QoMTIsaC5vcHRpb25hbFBhcmFtZXRlcnNMb2M9PT1udWxsP251bGw6aC5vcHRpb25hbFBhcmFtZXRlcnNMb2MpLHRoaXMubWF0Y2goMTEpKXt1PXRoaXMuc3RhdGUuc3RhcnRMb2M7YnJlYWt9aWYodGhpcy5tYXRjaCgyMSkpe2xldCB4PXRoaXMuc3RhdGUuc3RhcnRMb2M7aWYoYz10aGlzLnN0YXRlLnN0YXJ0TG9jLG8ucHVzaCh0aGlzLnBhcnNlUGFyZW5JdGVtKHRoaXMucGFyc2VSZXN0QmluZGluZygpLHgpKSwhdGhpcy5jaGVja0NvbW1hQWZ0ZXJSZXN0KDQxKSlicmVha31lbHNlIG8ucHVzaCh0aGlzLnBhcnNlTWF5YmVBc3NpZ25BbGxvd0luKGgsdGhpcy5wYXJzZVBhcmVuSXRlbSkpfWxldCBmPXRoaXMuc3RhdGUubGFzdFRva0VuZExvYzt0aGlzLmV4cGVjdCgxMSksdGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPWksdGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT1yO2xldCBkPXRoaXMuc3RhcnROb2RlQXQoZSk7cmV0dXJuIHQmJnRoaXMuc2hvdWxkUGFyc2VBcnJvdyhvKSYmKGQ9dGhpcy5wYXJzZUFycm93KGQpKT8odGhpcy5jaGVja0Rlc3RydWN0dXJpbmdQcml2YXRlKGgpLHRoaXMuZXhwcmVzc2lvblNjb3BlLnZhbGlkYXRlQXNQYXR0ZXJuKCksdGhpcy5leHByZXNzaW9uU2NvcGUuZXhpdCgpLHRoaXMucGFyc2VBcnJvd0V4cHJlc3Npb24oZCxvLCExKSxkKToodGhpcy5leHByZXNzaW9uU2NvcGUuZXhpdCgpLG8ubGVuZ3RofHx0aGlzLnVuZXhwZWN0ZWQodGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnRMb2MpLHUmJnRoaXMudW5leHBlY3RlZCh1KSxjJiZ0aGlzLnVuZXhwZWN0ZWQoYyksdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMoaCwhMCksdGhpcy50b1JlZmVyZW5jZWRMaXN0RGVlcChvLCEwKSxvLmxlbmd0aD4xPyhzPXRoaXMuc3RhcnROb2RlQXQobikscy5leHByZXNzaW9ucz1vLHRoaXMuZmluaXNoTm9kZShzLFwiU2VxdWVuY2VFeHByZXNzaW9uXCIpLHRoaXMucmVzZXRFbmRMb2NhdGlvbihzLGYpKTpzPW9bMF0sdGhpcy53cmFwUGFyZW50aGVzaXMoZSxzKSl9d3JhcFBhcmVudGhlc2lzKHQsZSl7aWYoIXRoaXMub3B0aW9ucy5jcmVhdGVQYXJlbnRoZXNpemVkRXhwcmVzc2lvbnMpcmV0dXJuIHRoaXMuYWRkRXh0cmEoZSxcInBhcmVudGhlc2l6ZWRcIiwhMCksdGhpcy5hZGRFeHRyYShlLFwicGFyZW5TdGFydFwiLHQuaW5kZXgpLHRoaXMudGFrZVN1cnJvdW5kaW5nQ29tbWVudHMoZSx0LmluZGV4LHRoaXMuc3RhdGUubGFzdFRva0VuZExvYy5pbmRleCksZTtsZXQgcz10aGlzLnN0YXJ0Tm9kZUF0KHQpO3JldHVybiBzLmV4cHJlc3Npb249ZSx0aGlzLmZpbmlzaE5vZGUocyxcIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCIpfXNob3VsZFBhcnNlQXJyb3codCl7cmV0dXJuIXRoaXMuY2FuSW5zZXJ0U2VtaWNvbG9uKCl9cGFyc2VBcnJvdyh0KXtpZih0aGlzLmVhdCgxOSkpcmV0dXJuIHR9cGFyc2VQYXJlbkl0ZW0odCxlKXtyZXR1cm4gdH1wYXJzZU5ld09yTmV3VGFyZ2V0KCl7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKTtpZih0aGlzLm5leHQoKSx0aGlzLm1hdGNoKDE2KSl7bGV0IGU9dGhpcy5jcmVhdGVJZGVudGlmaWVyKHRoaXMuc3RhcnROb2RlQXROb2RlKHQpLFwibmV3XCIpO3RoaXMubmV4dCgpO2xldCBzPXRoaXMucGFyc2VNZXRhUHJvcGVydHkodCxlLFwidGFyZ2V0XCIpO3JldHVybiF0aGlzLnNjb3BlLmluTm9uQXJyb3dGdW5jdGlvbiYmIXRoaXMuc2NvcGUuaW5DbGFzcyYmIXRoaXMub3B0aW9ucy5hbGxvd05ld1RhcmdldE91dHNpZGVGdW5jdGlvbiYmdGhpcy5yYWlzZShwLlVuZXhwZWN0ZWROZXdUYXJnZXQse2F0OnN9KSxzfXJldHVybiB0aGlzLnBhcnNlTmV3KHQpfXBhcnNlTmV3KHQpe2lmKHRoaXMucGFyc2VOZXdDYWxsZWUodCksdGhpcy5lYXQoMTApKXtsZXQgZT10aGlzLnBhcnNlRXhwckxpc3QoMTEpO3RoaXMudG9SZWZlcmVuY2VkTGlzdChlKSx0LmFyZ3VtZW50cz1lfWVsc2UgdC5hcmd1bWVudHM9W107cmV0dXJuIHRoaXMuZmluaXNoTm9kZSh0LFwiTmV3RXhwcmVzc2lvblwiKX1wYXJzZU5ld0NhbGxlZSh0KXt0LmNhbGxlZT10aGlzLnBhcnNlTm9DYWxsRXhwcigpLHQuY2FsbGVlLnR5cGU9PT1cIkltcG9ydFwiJiZ0aGlzLnJhaXNlKHAuSW1wb3J0Q2FsbE5vdE5ld0V4cHJlc3Npb24se2F0OnQuY2FsbGVlfSl9cGFyc2VUZW1wbGF0ZUVsZW1lbnQodCl7bGV0e3N0YXJ0OmUsc3RhcnRMb2M6cyxlbmQ6aSx2YWx1ZTpyfT10aGlzLnN0YXRlLG49ZSsxLG89dGhpcy5zdGFydE5vZGVBdChMKHMsMSkpO3I9PT1udWxsJiYodHx8dGhpcy5yYWlzZShwLkludmFsaWRFc2NhcGVTZXF1ZW5jZVRlbXBsYXRlLHthdDpMKHRoaXMuc3RhdGUuZmlyc3RJbnZhbGlkVGVtcGxhdGVFc2NhcGVQb3MsMSl9KSk7bGV0IGg9dGhpcy5tYXRjaCgyNCksbD1oPy0xOi0yLGM9aStsO28udmFsdWU9e3Jhdzp0aGlzLmlucHV0LnNsaWNlKG4sYykucmVwbGFjZSgvXFxyXFxuPy9nLGBcbmApLGNvb2tlZDpyPT09bnVsbD9udWxsOnIuc2xpY2UoMSxsKX0sby50YWlsPWgsdGhpcy5uZXh0KCk7bGV0IHU9dGhpcy5maW5pc2hOb2RlKG8sXCJUZW1wbGF0ZUVsZW1lbnRcIik7cmV0dXJuIHRoaXMucmVzZXRFbmRMb2NhdGlvbih1LEwodGhpcy5zdGF0ZS5sYXN0VG9rRW5kTG9jLGwpKSx1fXBhcnNlVGVtcGxhdGUodCl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTtlLmV4cHJlc3Npb25zPVtdO2xldCBzPXRoaXMucGFyc2VUZW1wbGF0ZUVsZW1lbnQodCk7Zm9yKGUucXVhc2lzPVtzXTshcy50YWlsOyllLmV4cHJlc3Npb25zLnB1c2godGhpcy5wYXJzZVRlbXBsYXRlU3Vic3RpdHV0aW9uKCkpLHRoaXMucmVhZFRlbXBsYXRlQ29udGludWF0aW9uKCksZS5xdWFzaXMucHVzaChzPXRoaXMucGFyc2VUZW1wbGF0ZUVsZW1lbnQodCkpO3JldHVybiB0aGlzLmZpbmlzaE5vZGUoZSxcIlRlbXBsYXRlTGl0ZXJhbFwiKX1wYXJzZVRlbXBsYXRlU3Vic3RpdHV0aW9uKCl7cmV0dXJuIHRoaXMucGFyc2VFeHByZXNzaW9uKCl9cGFyc2VPYmplY3RMaWtlKHQsZSxzLGkpe3MmJnRoaXMuZXhwZWN0UGx1Z2luKFwicmVjb3JkQW5kVHVwbGVcIik7bGV0IHI9dGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keTt0aGlzLnN0YXRlLmluRlNoYXJwUGlwZWxpbmVEaXJlY3RCb2R5PSExO2xldCBuPU9iamVjdC5jcmVhdGUobnVsbCksbz0hMCxoPXRoaXMuc3RhcnROb2RlKCk7Zm9yKGgucHJvcGVydGllcz1bXSx0aGlzLm5leHQoKTshdGhpcy5tYXRjaCh0KTspe2lmKG8pbz0hMTtlbHNlIGlmKHRoaXMuZXhwZWN0KDEyKSx0aGlzLm1hdGNoKHQpKXt0aGlzLmFkZFRyYWlsaW5nQ29tbWFFeHRyYVRvTm9kZShoKTticmVha31sZXQgYztlP2M9dGhpcy5wYXJzZUJpbmRpbmdQcm9wZXJ0eSgpOihjPXRoaXMucGFyc2VQcm9wZXJ0eURlZmluaXRpb24oaSksdGhpcy5jaGVja1Byb3RvKGMscyxuLGkpKSxzJiYhdGhpcy5pc09iamVjdFByb3BlcnR5KGMpJiZjLnR5cGUhPT1cIlNwcmVhZEVsZW1lbnRcIiYmdGhpcy5yYWlzZShwLkludmFsaWRSZWNvcmRQcm9wZXJ0eSx7YXQ6Y30pLGMuc2hvcnRoYW5kJiZ0aGlzLmFkZEV4dHJhKGMsXCJzaG9ydGhhbmRcIiwhMCksaC5wcm9wZXJ0aWVzLnB1c2goYyl9dGhpcy5uZXh0KCksdGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT1yO2xldCBsPVwiT2JqZWN0RXhwcmVzc2lvblwiO3JldHVybiBlP2w9XCJPYmplY3RQYXR0ZXJuXCI6cyYmKGw9XCJSZWNvcmRFeHByZXNzaW9uXCIpLHRoaXMuZmluaXNoTm9kZShoLGwpfWFkZFRyYWlsaW5nQ29tbWFFeHRyYVRvTm9kZSh0KXt0aGlzLmFkZEV4dHJhKHQsXCJ0cmFpbGluZ0NvbW1hXCIsdGhpcy5zdGF0ZS5sYXN0VG9rU3RhcnQpLHRoaXMuYWRkRXh0cmEodCxcInRyYWlsaW5nQ29tbWFMb2NcIix0aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvYywhMSl9bWF5YmVBc3luY09yQWNjZXNzb3JQcm9wKHQpe3JldHVybiF0LmNvbXB1dGVkJiZ0LmtleS50eXBlPT09XCJJZGVudGlmaWVyXCImJih0aGlzLmlzTGl0ZXJhbFByb3BlcnR5TmFtZSgpfHx0aGlzLm1hdGNoKDApfHx0aGlzLm1hdGNoKDU1KSl9cGFyc2VQcm9wZXJ0eURlZmluaXRpb24odCl7bGV0IGU9W107aWYodGhpcy5tYXRjaCgyNikpZm9yKHRoaXMuaGFzUGx1Z2luKFwiZGVjb3JhdG9yc1wiKSYmdGhpcy5yYWlzZShwLlVuc3VwcG9ydGVkUHJvcGVydHlEZWNvcmF0b3Ise2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTt0aGlzLm1hdGNoKDI2KTspZS5wdXNoKHRoaXMucGFyc2VEZWNvcmF0b3IoKSk7bGV0IHM9dGhpcy5zdGFydE5vZGUoKSxpPSExLHI9ITEsbjtpZih0aGlzLm1hdGNoKDIxKSlyZXR1cm4gZS5sZW5ndGgmJnRoaXMudW5leHBlY3RlZCgpLHRoaXMucGFyc2VTcHJlYWQoKTtlLmxlbmd0aCYmKHMuZGVjb3JhdG9ycz1lLGU9W10pLHMubWV0aG9kPSExLHQmJihuPXRoaXMuc3RhdGUuc3RhcnRMb2MpO2xldCBvPXRoaXMuZWF0KDU1KTt0aGlzLnBhcnNlUHJvcGVydHlOYW1lUHJlZml4T3BlcmF0b3Iocyk7bGV0IGg9dGhpcy5zdGF0ZS5jb250YWluc0VzYyxsPXRoaXMucGFyc2VQcm9wZXJ0eU5hbWUocyx0KTtpZighbyYmIWgmJnRoaXMubWF5YmVBc3luY09yQWNjZXNzb3JQcm9wKHMpKXtsZXQgYz1sLm5hbWU7Yz09PVwiYXN5bmNcIiYmIXRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJihpPSEwLHRoaXMucmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKGwpLG89dGhpcy5lYXQoNTUpLHRoaXMucGFyc2VQcm9wZXJ0eU5hbWUocykpLChjPT09XCJnZXRcInx8Yz09PVwic2V0XCIpJiYocj0hMCx0aGlzLnJlc2V0UHJldmlvdXNOb2RlVHJhaWxpbmdDb21tZW50cyhsKSxzLmtpbmQ9Yyx0aGlzLm1hdGNoKDU1KSYmKG89ITAsdGhpcy5yYWlzZShwLkFjY2Vzc29ySXNHZW5lcmF0b3Ise2F0OnRoaXMuc3RhdGUuY3VyUG9zaXRpb24oKSxraW5kOmN9KSx0aGlzLm5leHQoKSksdGhpcy5wYXJzZVByb3BlcnR5TmFtZShzKSl9cmV0dXJuIHRoaXMucGFyc2VPYmpQcm9wVmFsdWUocyxuLG8saSwhMSxyLHQpfWdldEdldHRlclNldHRlckV4cGVjdGVkUGFyYW1Db3VudCh0KXtyZXR1cm4gdC5raW5kPT09XCJnZXRcIj8wOjF9Z2V0T2JqZWN0T3JDbGFzc01ldGhvZFBhcmFtcyh0KXtyZXR1cm4gdC5wYXJhbXN9Y2hlY2tHZXR0ZXJTZXR0ZXJQYXJhbXModCl7dmFyIGU7bGV0IHM9dGhpcy5nZXRHZXR0ZXJTZXR0ZXJFeHBlY3RlZFBhcmFtQ291bnQodCksaT10aGlzLmdldE9iamVjdE9yQ2xhc3NNZXRob2RQYXJhbXModCk7aS5sZW5ndGghPT1zJiZ0aGlzLnJhaXNlKHQua2luZD09PVwiZ2V0XCI/cC5CYWRHZXR0ZXJBcml0eTpwLkJhZFNldHRlckFyaXR5LHthdDp0fSksdC5raW5kPT09XCJzZXRcIiYmKChlPWlbaS5sZW5ndGgtMV0pPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09XCJSZXN0RWxlbWVudFwiJiZ0aGlzLnJhaXNlKHAuQmFkU2V0dGVyUmVzdFBhcmFtZXRlcix7YXQ6dH0pfXBhcnNlT2JqZWN0TWV0aG9kKHQsZSxzLGkscil7aWYocil7bGV0IG49dGhpcy5wYXJzZU1ldGhvZCh0LGUsITEsITEsITEsXCJPYmplY3RNZXRob2RcIik7cmV0dXJuIHRoaXMuY2hlY2tHZXR0ZXJTZXR0ZXJQYXJhbXMobiksbn1pZihzfHxlfHx0aGlzLm1hdGNoKDEwKSlyZXR1cm4gaSYmdGhpcy51bmV4cGVjdGVkKCksdC5raW5kPVwibWV0aG9kXCIsdC5tZXRob2Q9ITAsdGhpcy5wYXJzZU1ldGhvZCh0LGUscywhMSwhMSxcIk9iamVjdE1ldGhvZFwiKX1wYXJzZU9iamVjdFByb3BlcnR5KHQsZSxzLGkpe2lmKHQuc2hvcnRoYW5kPSExLHRoaXMuZWF0KDE0KSlyZXR1cm4gdC52YWx1ZT1zP3RoaXMucGFyc2VNYXliZURlZmF1bHQodGhpcy5zdGF0ZS5zdGFydExvYyk6dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbihpKSx0aGlzLmZpbmlzaE5vZGUodCxcIk9iamVjdFByb3BlcnR5XCIpO2lmKCF0LmNvbXB1dGVkJiZ0LmtleS50eXBlPT09XCJJZGVudGlmaWVyXCIpe2lmKHRoaXMuY2hlY2tSZXNlcnZlZFdvcmQodC5rZXkubmFtZSx0LmtleS5sb2Muc3RhcnQsITAsITEpLHMpdC52YWx1ZT10aGlzLnBhcnNlTWF5YmVEZWZhdWx0KGUsVih0LmtleSkpO2Vsc2UgaWYodGhpcy5tYXRjaCgyOSkpe2xldCByPXRoaXMuc3RhdGUuc3RhcnRMb2M7aSE9bnVsbD9pLnNob3J0aGFuZEFzc2lnbkxvYz09PW51bGwmJihpLnNob3J0aGFuZEFzc2lnbkxvYz1yKTp0aGlzLnJhaXNlKHAuSW52YWxpZENvdmVySW5pdGlhbGl6ZWROYW1lLHthdDpyfSksdC52YWx1ZT10aGlzLnBhcnNlTWF5YmVEZWZhdWx0KGUsVih0LmtleSkpfWVsc2UgdC52YWx1ZT1WKHQua2V5KTtyZXR1cm4gdC5zaG9ydGhhbmQ9ITAsdGhpcy5maW5pc2hOb2RlKHQsXCJPYmplY3RQcm9wZXJ0eVwiKX19cGFyc2VPYmpQcm9wVmFsdWUodCxlLHMsaSxyLG4sbyl7bGV0IGg9dGhpcy5wYXJzZU9iamVjdE1ldGhvZCh0LHMsaSxyLG4pfHx0aGlzLnBhcnNlT2JqZWN0UHJvcGVydHkodCxlLHIsbyk7cmV0dXJuIGh8fHRoaXMudW5leHBlY3RlZCgpLGh9cGFyc2VQcm9wZXJ0eU5hbWUodCxlKXtpZih0aGlzLmVhdCgwKSl0LmNvbXB1dGVkPSEwLHQua2V5PXRoaXMucGFyc2VNYXliZUFzc2lnbkFsbG93SW4oKSx0aGlzLmV4cGVjdCgzKTtlbHNle2xldHt0eXBlOnMsdmFsdWU6aX09dGhpcy5zdGF0ZSxyO2lmKE0ocykpcj10aGlzLnBhcnNlSWRlbnRpZmllcighMCk7ZWxzZSBzd2l0Y2gocyl7Y2FzZSAxMzI6cj10aGlzLnBhcnNlTnVtZXJpY0xpdGVyYWwoaSk7YnJlYWs7Y2FzZSAxMzE6cj10aGlzLnBhcnNlU3RyaW5nTGl0ZXJhbChpKTticmVhaztjYXNlIDEzMzpyPXRoaXMucGFyc2VCaWdJbnRMaXRlcmFsKGkpO2JyZWFrO2Nhc2UgMTM0OnI9dGhpcy5wYXJzZURlY2ltYWxMaXRlcmFsKGkpO2JyZWFrO2Nhc2UgMTM2OntsZXQgbj10aGlzLnN0YXRlLnN0YXJ0TG9jO2UhPW51bGw/ZS5wcml2YXRlS2V5TG9jPT09bnVsbCYmKGUucHJpdmF0ZUtleUxvYz1uKTp0aGlzLnJhaXNlKHAuVW5leHBlY3RlZFByaXZhdGVGaWVsZCx7YXQ6bn0pLHI9dGhpcy5wYXJzZVByaXZhdGVOYW1lKCk7YnJlYWt9ZGVmYXVsdDp0aGlzLnVuZXhwZWN0ZWQoKX10LmtleT1yLHMhPT0xMzYmJih0LmNvbXB1dGVkPSExKX1yZXR1cm4gdC5rZXl9aW5pdEZ1bmN0aW9uKHQsZSl7dC5pZD1udWxsLHQuZ2VuZXJhdG9yPSExLHQuYXN5bmM9ZX1wYXJzZU1ldGhvZCh0LGUscyxpLHIsbixvPSExKXt0aGlzLmluaXRGdW5jdGlvbih0LHMpLHQuZ2VuZXJhdG9yPWUsdGhpcy5zY29wZS5lbnRlcigxOHwobz82NDowKXwocj8zMjowKSksdGhpcy5wcm9kUGFyYW0uZW50ZXIodmUocyx0LmdlbmVyYXRvcikpLHRoaXMucGFyc2VGdW5jdGlvblBhcmFtcyh0LGkpO2xldCBoPXRoaXMucGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2godCxuLCEwKTtyZXR1cm4gdGhpcy5wcm9kUGFyYW0uZXhpdCgpLHRoaXMuc2NvcGUuZXhpdCgpLGh9cGFyc2VBcnJheUxpa2UodCxlLHMsaSl7cyYmdGhpcy5leHBlY3RQbHVnaW4oXCJyZWNvcmRBbmRUdXBsZVwiKTtsZXQgcj10aGlzLnN0YXRlLmluRlNoYXJwUGlwZWxpbmVEaXJlY3RCb2R5O3RoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHk9ITE7bGV0IG49dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0KCksbi5lbGVtZW50cz10aGlzLnBhcnNlRXhwckxpc3QodCwhcyxpLG4pLHRoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHk9cix0aGlzLmZpbmlzaE5vZGUobixzP1wiVHVwbGVFeHByZXNzaW9uXCI6XCJBcnJheUV4cHJlc3Npb25cIil9cGFyc2VBcnJvd0V4cHJlc3Npb24odCxlLHMsaSl7dGhpcy5zY29wZS5lbnRlcig2KTtsZXQgcj12ZShzLCExKTshdGhpcy5tYXRjaCg1KSYmdGhpcy5wcm9kUGFyYW0uaGFzSW4mJihyfD1RKSx0aGlzLnByb2RQYXJhbS5lbnRlcihyKSx0aGlzLmluaXRGdW5jdGlvbih0LHMpO2xldCBuPXRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycztyZXR1cm4gZSYmKHRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycz0hMCx0aGlzLnNldEFycm93RnVuY3Rpb25QYXJhbWV0ZXJzKHQsZSxpKSksdGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzPSExLHRoaXMucGFyc2VGdW5jdGlvbkJvZHkodCwhMCksdGhpcy5wcm9kUGFyYW0uZXhpdCgpLHRoaXMuc2NvcGUuZXhpdCgpLHRoaXMuc3RhdGUubWF5YmVJbkFycm93UGFyYW1ldGVycz1uLHRoaXMuZmluaXNoTm9kZSh0LFwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIil9c2V0QXJyb3dGdW5jdGlvblBhcmFtZXRlcnModCxlLHMpe3RoaXMudG9Bc3NpZ25hYmxlTGlzdChlLHMsITEpLHQucGFyYW1zPWV9cGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2godCxlLHM9ITEpe3JldHVybiB0aGlzLnBhcnNlRnVuY3Rpb25Cb2R5KHQsITEscyksdGhpcy5maW5pc2hOb2RlKHQsZSl9cGFyc2VGdW5jdGlvbkJvZHkodCxlLHM9ITEpe2xldCBpPWUmJiF0aGlzLm1hdGNoKDUpO2lmKHRoaXMuZXhwcmVzc2lvblNjb3BlLmVudGVyKGhzKCkpLGkpdC5ib2R5PXRoaXMucGFyc2VNYXliZUFzc2lnbigpLHRoaXMuY2hlY2tQYXJhbXModCwhMSxlLCExKTtlbHNle2xldCByPXRoaXMuc3RhdGUuc3RyaWN0LG49dGhpcy5zdGF0ZS5sYWJlbHM7dGhpcy5zdGF0ZS5sYWJlbHM9W10sdGhpcy5wcm9kUGFyYW0uZW50ZXIodGhpcy5wcm9kUGFyYW0uY3VycmVudEZsYWdzKCl8Y3MpLHQuYm9keT10aGlzLnBhcnNlQmxvY2soITAsITEsbz0+e2xldCBoPSF0aGlzLmlzU2ltcGxlUGFyYW1MaXN0KHQucGFyYW1zKTtvJiZoJiZ0aGlzLnJhaXNlKHAuSWxsZWdhbExhbmd1YWdlTW9kZURpcmVjdGl2ZSx7YXQ6KHQua2luZD09PVwibWV0aG9kXCJ8fHQua2luZD09PVwiY29uc3RydWN0b3JcIikmJnQua2V5P3Qua2V5LmxvYy5lbmQ6dH0pO2xldCBsPSFyJiZ0aGlzLnN0YXRlLnN0cmljdDt0aGlzLmNoZWNrUGFyYW1zKHQsIXRoaXMuc3RhdGUuc3RyaWN0JiYhZSYmIXMmJiFoLGUsbCksdGhpcy5zdGF0ZS5zdHJpY3QmJnQuaWQmJnRoaXMuY2hlY2tJZGVudGlmaWVyKHQuaWQsNjUsbCl9KSx0aGlzLnByb2RQYXJhbS5leGl0KCksdGhpcy5zdGF0ZS5sYWJlbHM9bn10aGlzLmV4cHJlc3Npb25TY29wZS5leGl0KCl9aXNTaW1wbGVQYXJhbWV0ZXIodCl7cmV0dXJuIHQudHlwZT09PVwiSWRlbnRpZmllclwifWlzU2ltcGxlUGFyYW1MaXN0KHQpe2ZvcihsZXQgZT0wLHM9dC5sZW5ndGg7ZTxzO2UrKylpZighdGhpcy5pc1NpbXBsZVBhcmFtZXRlcih0W2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1jaGVja1BhcmFtcyh0LGUscyxpPSEwKXtsZXQgcj0hZSYmbmV3IFNldCxuPXt0eXBlOlwiRm9ybWFsUGFyYW1ldGVyc1wifTtmb3IobGV0IG8gb2YgdC5wYXJhbXMpdGhpcy5jaGVja0xWYWwobyx7aW46bixiaW5kaW5nOjUsY2hlY2tDbGFzaGVzOnIsc3RyaWN0TW9kZUNoYW5nZWQ6aX0pfXBhcnNlRXhwckxpc3QodCxlLHMsaSl7bGV0IHI9W10sbj0hMDtmb3IoOyF0aGlzLmVhdCh0KTspe2lmKG4pbj0hMTtlbHNlIGlmKHRoaXMuZXhwZWN0KDEyKSx0aGlzLm1hdGNoKHQpKXtpJiZ0aGlzLmFkZFRyYWlsaW5nQ29tbWFFeHRyYVRvTm9kZShpKSx0aGlzLm5leHQoKTticmVha31yLnB1c2godGhpcy5wYXJzZUV4cHJMaXN0SXRlbShlLHMpKX1yZXR1cm4gcn1wYXJzZUV4cHJMaXN0SXRlbSh0LGUscyl7bGV0IGk7aWYodGhpcy5tYXRjaCgxMikpdHx8dGhpcy5yYWlzZShwLlVuZXhwZWN0ZWRUb2tlbix7YXQ6dGhpcy5zdGF0ZS5jdXJQb3NpdGlvbigpLHVuZXhwZWN0ZWQ6XCIsXCJ9KSxpPW51bGw7ZWxzZSBpZih0aGlzLm1hdGNoKDIxKSl7bGV0IHI9dGhpcy5zdGF0ZS5zdGFydExvYztpPXRoaXMucGFyc2VQYXJlbkl0ZW0odGhpcy5wYXJzZVNwcmVhZChlKSxyKX1lbHNlIGlmKHRoaXMubWF0Y2goMTcpKXt0aGlzLmV4cGVjdFBsdWdpbihcInBhcnRpYWxBcHBsaWNhdGlvblwiKSxzfHx0aGlzLnJhaXNlKHAuVW5leHBlY3RlZEFyZ3VtZW50UGxhY2Vob2xkZXIse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtsZXQgcj10aGlzLnN0YXJ0Tm9kZSgpO3RoaXMubmV4dCgpLGk9dGhpcy5maW5pc2hOb2RlKHIsXCJBcmd1bWVudFBsYWNlaG9sZGVyXCIpfWVsc2UgaT10aGlzLnBhcnNlTWF5YmVBc3NpZ25BbGxvd0luKGUsdGhpcy5wYXJzZVBhcmVuSXRlbSk7cmV0dXJuIGl9cGFyc2VJZGVudGlmaWVyKHQpe2xldCBlPXRoaXMuc3RhcnROb2RlKCkscz10aGlzLnBhcnNlSWRlbnRpZmllck5hbWUodCk7cmV0dXJuIHRoaXMuY3JlYXRlSWRlbnRpZmllcihlLHMpfWNyZWF0ZUlkZW50aWZpZXIodCxlKXtyZXR1cm4gdC5uYW1lPWUsdC5sb2MuaWRlbnRpZmllck5hbWU9ZSx0aGlzLmZpbmlzaE5vZGUodCxcIklkZW50aWZpZXJcIil9cGFyc2VJZGVudGlmaWVyTmFtZSh0KXtsZXQgZSx7c3RhcnRMb2M6cyx0eXBlOml9PXRoaXMuc3RhdGU7TShpKT9lPXRoaXMuc3RhdGUudmFsdWU6dGhpcy51bmV4cGVjdGVkKCk7bGV0IHI9UGkoaSk7cmV0dXJuIHQ/ciYmdGhpcy5yZXBsYWNlVG9rZW4oMTMwKTp0aGlzLmNoZWNrUmVzZXJ2ZWRXb3JkKGUscyxyLCExKSx0aGlzLm5leHQoKSxlfWNoZWNrUmVzZXJ2ZWRXb3JkKHQsZSxzLGkpe2lmKHQubGVuZ3RoPjEwfHwhUmkodCkpcmV0dXJuO2lmKHMmJk9pKHQpKXt0aGlzLnJhaXNlKHAuVW5leHBlY3RlZEtleXdvcmQse2F0OmUsa2V5d29yZDp0fSk7cmV0dXJufWlmKCh0aGlzLnN0YXRlLnN0cmljdD9pP2lzOnRzOmVzKSh0LHRoaXMuaW5Nb2R1bGUpKXt0aGlzLnJhaXNlKHAuVW5leHBlY3RlZFJlc2VydmVkV29yZCx7YXQ6ZSxyZXNlcnZlZFdvcmQ6dH0pO3JldHVybn1lbHNlIGlmKHQ9PT1cInlpZWxkXCIpe2lmKHRoaXMucHJvZFBhcmFtLmhhc1lpZWxkKXt0aGlzLnJhaXNlKHAuWWllbGRCaW5kaW5nSWRlbnRpZmllcix7YXQ6ZX0pO3JldHVybn19ZWxzZSBpZih0PT09XCJhd2FpdFwiKXtpZih0aGlzLnByb2RQYXJhbS5oYXNBd2FpdCl7dGhpcy5yYWlzZShwLkF3YWl0QmluZGluZ0lkZW50aWZpZXIse2F0OmV9KTtyZXR1cm59aWYodGhpcy5zY29wZS5pblN0YXRpY0Jsb2NrKXt0aGlzLnJhaXNlKHAuQXdhaXRCaW5kaW5nSWRlbnRpZmllckluU3RhdGljQmxvY2sse2F0OmV9KTtyZXR1cm59dGhpcy5leHByZXNzaW9uU2NvcGUucmVjb3JkQXN5bmNBcnJvd1BhcmFtZXRlcnNFcnJvcih7YXQ6ZX0pfWVsc2UgaWYodD09PVwiYXJndW1lbnRzXCImJnRoaXMuc2NvcGUuaW5DbGFzc0FuZE5vdEluTm9uQXJyb3dGdW5jdGlvbil7dGhpcy5yYWlzZShwLkFyZ3VtZW50c0luQ2xhc3Mse2F0OmV9KTtyZXR1cm59fWlzQXdhaXRBbGxvd2VkKCl7cmV0dXJuISEodGhpcy5wcm9kUGFyYW0uaGFzQXdhaXR8fHRoaXMub3B0aW9ucy5hbGxvd0F3YWl0T3V0c2lkZUZ1bmN0aW9uJiYhdGhpcy5zY29wZS5pbkZ1bmN0aW9uKX1wYXJzZUF3YWl0KHQpe2xldCBlPXRoaXMuc3RhcnROb2RlQXQodCk7cmV0dXJuIHRoaXMuZXhwcmVzc2lvblNjb3BlLnJlY29yZFBhcmFtZXRlckluaXRpYWxpemVyRXJyb3IocC5Bd2FpdEV4cHJlc3Npb25Gb3JtYWxQYXJhbWV0ZXIse2F0OmV9KSx0aGlzLmVhdCg1NSkmJnRoaXMucmFpc2UocC5PYnNvbGV0ZUF3YWl0U3Rhcix7YXQ6ZX0pLCF0aGlzLnNjb3BlLmluRnVuY3Rpb24mJiF0aGlzLm9wdGlvbnMuYWxsb3dBd2FpdE91dHNpZGVGdW5jdGlvbiYmKHRoaXMuaXNBbWJpZ3VvdXNBd2FpdCgpP3RoaXMuYW1iaWd1b3VzU2NyaXB0RGlmZmVyZW50QXN0PSEwOnRoaXMuc2F3VW5hbWJpZ3VvdXNFU009ITApLHRoaXMuc3RhdGUuc29sb0F3YWl0fHwoZS5hcmd1bWVudD10aGlzLnBhcnNlTWF5YmVVbmFyeShudWxsLCEwKSksdGhpcy5maW5pc2hOb2RlKGUsXCJBd2FpdEV4cHJlc3Npb25cIil9aXNBbWJpZ3VvdXNBd2FpdCgpe2lmKHRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpcmV0dXJuITA7bGV0e3R5cGU6dH09dGhpcy5zdGF0ZTtyZXR1cm4gdD09PTUzfHx0PT09MTB8fHQ9PT0wfHxNZSh0KXx8dD09PTEwMSYmIXRoaXMuc3RhdGUuY29udGFpbnNFc2N8fHQ9PT0xMzV8fHQ9PT01Nnx8dGhpcy5oYXNQbHVnaW4oXCJ2OGludHJpbnNpY1wiKSYmdD09PTU0fXBhcnNlWWllbGQoKXtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpO3RoaXMuZXhwcmVzc2lvblNjb3BlLnJlY29yZFBhcmFtZXRlckluaXRpYWxpemVyRXJyb3IocC5ZaWVsZEluUGFyYW1ldGVyLHthdDp0fSksdGhpcy5uZXh0KCk7bGV0IGU9ITEscz1udWxsO2lmKCF0aGlzLmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKXN3aXRjaChlPXRoaXMuZWF0KDU1KSx0aGlzLnN0YXRlLnR5cGUpe2Nhc2UgMTM6Y2FzZSAxMzc6Y2FzZSA4OmNhc2UgMTE6Y2FzZSAzOmNhc2UgOTpjYXNlIDE0OmNhc2UgMTI6aWYoIWUpYnJlYWs7ZGVmYXVsdDpzPXRoaXMucGFyc2VNYXliZUFzc2lnbigpfXJldHVybiB0LmRlbGVnYXRlPWUsdC5hcmd1bWVudD1zLHRoaXMuZmluaXNoTm9kZSh0LFwiWWllbGRFeHByZXNzaW9uXCIpfWNoZWNrUGlwZWxpbmVBdEluZml4T3BlcmF0b3IodCxlKXt0aGlzLmhhc1BsdWdpbihbXCJwaXBlbGluZU9wZXJhdG9yXCIse3Byb3Bvc2FsOlwic21hcnRcIn1dKSYmdC50eXBlPT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cIiYmdGhpcy5yYWlzZShwLlBpcGVsaW5lSGVhZFNlcXVlbmNlRXhwcmVzc2lvbix7YXQ6ZX0pfXBhcnNlU21hcnRQaXBlbGluZUJvZHlJblN0eWxlKHQsZSl7aWYodGhpcy5pc1NpbXBsZVJlZmVyZW5jZSh0KSl7bGV0IHM9dGhpcy5zdGFydE5vZGVBdChlKTtyZXR1cm4gcy5jYWxsZWU9dCx0aGlzLmZpbmlzaE5vZGUocyxcIlBpcGVsaW5lQmFyZUZ1bmN0aW9uXCIpfWVsc2V7bGV0IHM9dGhpcy5zdGFydE5vZGVBdChlKTtyZXR1cm4gdGhpcy5jaGVja1NtYXJ0UGlwZVRvcGljQm9keUVhcmx5RXJyb3JzKGUpLHMuZXhwcmVzc2lvbj10LHRoaXMuZmluaXNoTm9kZShzLFwiUGlwZWxpbmVUb3BpY0V4cHJlc3Npb25cIil9fWlzU2ltcGxlUmVmZXJlbmNlKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2VcIk1lbWJlckV4cHJlc3Npb25cIjpyZXR1cm4hdC5jb21wdXRlZCYmdGhpcy5pc1NpbXBsZVJlZmVyZW5jZSh0Lm9iamVjdCk7Y2FzZVwiSWRlbnRpZmllclwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWNoZWNrU21hcnRQaXBlVG9waWNCb2R5RWFybHlFcnJvcnModCl7aWYodGhpcy5tYXRjaCgxOSkpdGhyb3cgdGhpcy5yYWlzZShwLlBpcGVsaW5lQm9keU5vQXJyb3cse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTt0aGlzLnRvcGljUmVmZXJlbmNlV2FzVXNlZEluQ3VycmVudENvbnRleHQoKXx8dGhpcy5yYWlzZShwLlBpcGVsaW5lVG9waWNVbnVzZWQse2F0OnR9KX13aXRoVG9waWNCaW5kaW5nQ29udGV4dCh0KXtsZXQgZT10aGlzLnN0YXRlLnRvcGljQ29udGV4dDt0aGlzLnN0YXRlLnRvcGljQ29udGV4dD17bWF4TnVtT2ZSZXNvbHZhYmxlVG9waWNzOjEsbWF4VG9waWNJbmRleDpudWxsfTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e3RoaXMuc3RhdGUudG9waWNDb250ZXh0PWV9fXdpdGhTbWFydE1peFRvcGljRm9yYmlkZGluZ0NvbnRleHQodCl7aWYodGhpcy5oYXNQbHVnaW4oW1wicGlwZWxpbmVPcGVyYXRvclwiLHtwcm9wb3NhbDpcInNtYXJ0XCJ9XSkpe2xldCBlPXRoaXMuc3RhdGUudG9waWNDb250ZXh0O3RoaXMuc3RhdGUudG9waWNDb250ZXh0PXttYXhOdW1PZlJlc29sdmFibGVUb3BpY3M6MCxtYXhUb3BpY0luZGV4Om51bGx9O3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7dGhpcy5zdGF0ZS50b3BpY0NvbnRleHQ9ZX19ZWxzZSByZXR1cm4gdCgpfXdpdGhTb2xvQXdhaXRQZXJtaXR0aW5nQ29udGV4dCh0KXtsZXQgZT10aGlzLnN0YXRlLnNvbG9Bd2FpdDt0aGlzLnN0YXRlLnNvbG9Bd2FpdD0hMDt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e3RoaXMuc3RhdGUuc29sb0F3YWl0PWV9fWFsbG93SW5BbmQodCl7bGV0IGU9dGhpcy5wcm9kUGFyYW0uY3VycmVudEZsYWdzKCk7aWYoUSZ+ZSl7dGhpcy5wcm9kUGFyYW0uZW50ZXIoZXxRKTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e3RoaXMucHJvZFBhcmFtLmV4aXQoKX19cmV0dXJuIHQoKX1kaXNhbGxvd0luQW5kKHQpe2xldCBlPXRoaXMucHJvZFBhcmFtLmN1cnJlbnRGbGFncygpO2lmKFEmZSl7dGhpcy5wcm9kUGFyYW0uZW50ZXIoZSZ+USk7dHJ5e3JldHVybiB0KCl9ZmluYWxseXt0aGlzLnByb2RQYXJhbS5leGl0KCl9fXJldHVybiB0KCl9cmVnaXN0ZXJUb3BpY1JlZmVyZW5jZSgpe3RoaXMuc3RhdGUudG9waWNDb250ZXh0Lm1heFRvcGljSW5kZXg9MH10b3BpY1JlZmVyZW5jZUlzQWxsb3dlZEluQ3VycmVudENvbnRleHQoKXtyZXR1cm4gdGhpcy5zdGF0ZS50b3BpY0NvbnRleHQubWF4TnVtT2ZSZXNvbHZhYmxlVG9waWNzPj0xfXRvcGljUmVmZXJlbmNlV2FzVXNlZEluQ3VycmVudENvbnRleHQoKXtyZXR1cm4gdGhpcy5zdGF0ZS50b3BpY0NvbnRleHQubWF4VG9waWNJbmRleCE9bnVsbCYmdGhpcy5zdGF0ZS50b3BpY0NvbnRleHQubWF4VG9waWNJbmRleD49MH1wYXJzZUZTaGFycFBpcGVsaW5lQm9keSh0KXtsZXQgZT10aGlzLnN0YXRlLnN0YXJ0TG9jO3RoaXMuc3RhdGUucG90ZW50aWFsQXJyb3dBdD10aGlzLnN0YXRlLnN0YXJ0O2xldCBzPXRoaXMuc3RhdGUuaW5GU2hhcnBQaXBlbGluZURpcmVjdEJvZHk7dGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT0hMDtsZXQgaT10aGlzLnBhcnNlRXhwck9wKHRoaXMucGFyc2VNYXliZVVuYXJ5T3JQcml2YXRlKCksZSx0KTtyZXR1cm4gdGhpcy5zdGF0ZS5pbkZTaGFycFBpcGVsaW5lRGlyZWN0Qm9keT1zLGl9cGFyc2VNb2R1bGVFeHByZXNzaW9uKCl7dGhpcy5leHBlY3RQbHVnaW4oXCJtb2R1bGVCbG9ja3NcIik7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKTt0aGlzLm5leHQoKSx0aGlzLm1hdGNoKDUpfHx0aGlzLnVuZXhwZWN0ZWQobnVsbCw1KTtsZXQgZT10aGlzLnN0YXJ0Tm9kZUF0KHRoaXMuc3RhdGUuZW5kTG9jKTt0aGlzLm5leHQoKTtsZXQgcz10aGlzLmluaXRpYWxpemVTY29wZXMoITApO3RoaXMuZW50ZXJJbml0aWFsU2NvcGVzKCk7dHJ5e3QuYm9keT10aGlzLnBhcnNlUHJvZ3JhbShlLDgsXCJtb2R1bGVcIil9ZmluYWxseXtzKCl9cmV0dXJuIHRoaXMuZmluaXNoTm9kZSh0LFwiTW9kdWxlRXhwcmVzc2lvblwiKX1wYXJzZVByb3BlcnR5TmFtZVByZWZpeE9wZXJhdG9yKHQpe319LFhlPXtraW5kOlwibG9vcFwifSxQcj17a2luZDpcInN3aXRjaFwifSxncj0vW1xcdUQ4MDAtXFx1REZGRl0vdSxHZT0vaW4oPzpzdGFuY2VvZik/L3k7ZnVuY3Rpb24gVHIoYSx0KXtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKyl7bGV0IHM9YVtlXSx7dHlwZTppfT1zO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiKXt7aWYoaT09PTEzNil7bGV0e2xvYzpyLHN0YXJ0Om4sdmFsdWU6byxlbmQ6aH09cyxsPW4rMSxjPUwoci5zdGFydCwxKTthLnNwbGljZShlLDEsbmV3IE8oe3R5cGU6XygyNyksdmFsdWU6XCIjXCIsc3RhcnQ6bixlbmQ6bCxzdGFydExvYzpyLnN0YXJ0LGVuZExvYzpjfSksbmV3IE8oe3R5cGU6XygxMzApLHZhbHVlOm8sc3RhcnQ6bCxlbmQ6aCxzdGFydExvYzpjLGVuZExvYzpyLmVuZH0pKSxlKys7Y29udGludWV9aWYoTWUoaSkpe2xldHtsb2M6cixzdGFydDpuLHZhbHVlOm8sZW5kOmh9PXMsbD1uKzEsYz1MKHIuc3RhcnQsMSksdTt0LmNoYXJDb2RlQXQobik9PT05Nj91PW5ldyBPKHt0eXBlOl8oMjIpLHZhbHVlOlwiYFwiLHN0YXJ0Om4sZW5kOmwsc3RhcnRMb2M6ci5zdGFydCxlbmRMb2M6Y30pOnU9bmV3IE8oe3R5cGU6Xyg4KSx2YWx1ZTpcIn1cIixzdGFydDpuLGVuZDpsLHN0YXJ0TG9jOnIuc3RhcnQsZW5kTG9jOmN9KTtsZXQgZixkLHgsSTtpPT09MjQ/KGQ9aC0xLHg9TChyLmVuZCwtMSksZj1vPT09bnVsbD9udWxsOm8uc2xpY2UoMSwtMSksST1uZXcgTyh7dHlwZTpfKDIyKSx2YWx1ZTpcImBcIixzdGFydDpkLGVuZDpoLHN0YXJ0TG9jOngsZW5kTG9jOnIuZW5kfSkpOihkPWgtMix4PUwoci5lbmQsLTIpLGY9bz09PW51bGw/bnVsbDpvLnNsaWNlKDEsLTIpLEk9bmV3IE8oe3R5cGU6XygyMyksdmFsdWU6XCIke1wiLHN0YXJ0OmQsZW5kOmgsc3RhcnRMb2M6eCxlbmRMb2M6ci5lbmR9KSksYS5zcGxpY2UoZSwxLHUsbmV3IE8oe3R5cGU6XygyMCksdmFsdWU6ZixzdGFydDpsLGVuZDpkLHN0YXJ0TG9jOmMsZW5kTG9jOnh9KSxJKSxlKz0yO2NvbnRpbnVlfX1zLnR5cGU9XyhpKX19cmV0dXJuIGF9dmFyIFB0PWNsYXNzIGV4dGVuZHMgeHR7cGFyc2VUb3BMZXZlbCh0LGUpe3JldHVybiB0LnByb2dyYW09dGhpcy5wYXJzZVByb2dyYW0oZSksdC5jb21tZW50cz10aGlzLnN0YXRlLmNvbW1lbnRzLHRoaXMub3B0aW9ucy50b2tlbnMmJih0LnRva2Vucz1Ucih0aGlzLnRva2Vucyx0aGlzLmlucHV0KSksdGhpcy5maW5pc2hOb2RlKHQsXCJGaWxlXCIpfXBhcnNlUHJvZ3JhbSh0LGU9MTM3LHM9dGhpcy5vcHRpb25zLnNvdXJjZVR5cGUpe2lmKHQuc291cmNlVHlwZT1zLHQuaW50ZXJwcmV0ZXI9dGhpcy5wYXJzZUludGVycHJldGVyRGlyZWN0aXZlKCksdGhpcy5wYXJzZUJsb2NrQm9keSh0LCEwLCEwLGUpLHRoaXMuaW5Nb2R1bGUmJiF0aGlzLm9wdGlvbnMuYWxsb3dVbmRlY2xhcmVkRXhwb3J0cyYmdGhpcy5zY29wZS51bmRlZmluZWRFeHBvcnRzLnNpemU+MClmb3IobGV0W3Isbl1vZiBBcnJheS5mcm9tKHRoaXMuc2NvcGUudW5kZWZpbmVkRXhwb3J0cykpdGhpcy5yYWlzZShwLk1vZHVsZUV4cG9ydFVuZGVmaW5lZCx7YXQ6bixsb2NhbE5hbWU6cn0pO2xldCBpO3JldHVybiBlPT09MTM3P2k9dGhpcy5maW5pc2hOb2RlKHQsXCJQcm9ncmFtXCIpOmk9dGhpcy5maW5pc2hOb2RlQXQodCxcIlByb2dyYW1cIixMKHRoaXMuc3RhdGUuc3RhcnRMb2MsLTEpKSxpfXN0bXRUb0RpcmVjdGl2ZSh0KXtsZXQgZT10O2UudHlwZT1cIkRpcmVjdGl2ZVwiLGUudmFsdWU9ZS5leHByZXNzaW9uLGRlbGV0ZSBlLmV4cHJlc3Npb247bGV0IHM9ZS52YWx1ZSxpPXMudmFsdWUscj10aGlzLmlucHV0LnNsaWNlKHMuc3RhcnQscy5lbmQpLG49cy52YWx1ZT1yLnNsaWNlKDEsLTEpO3JldHVybiB0aGlzLmFkZEV4dHJhKHMsXCJyYXdcIixyKSx0aGlzLmFkZEV4dHJhKHMsXCJyYXdWYWx1ZVwiLG4pLHRoaXMuYWRkRXh0cmEocyxcImV4cHJlc3Npb25WYWx1ZVwiLGkpLHMudHlwZT1cIkRpcmVjdGl2ZUxpdGVyYWxcIixlfXBhcnNlSW50ZXJwcmV0ZXJEaXJlY3RpdmUoKXtpZighdGhpcy5tYXRjaCgyOCkpcmV0dXJuIG51bGw7bGV0IHQ9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdC52YWx1ZT10aGlzLnN0YXRlLnZhbHVlLHRoaXMubmV4dCgpLHRoaXMuZmluaXNoTm9kZSh0LFwiSW50ZXJwcmV0ZXJEaXJlY3RpdmVcIil9aXNMZXQoKXtyZXR1cm4gdGhpcy5pc0NvbnRleHR1YWwoOTkpP3RoaXMuaGFzRm9sbG93aW5nQmluZGluZ0F0b20oKTohMX1jaFN0YXJ0c0JpbmRpbmdJZGVudGlmaWVyKHQsZSl7aWYoaih0KSl7aWYoR2UubGFzdEluZGV4PWUsR2UudGVzdCh0aGlzLmlucHV0KSl7bGV0IHM9dGhpcy5jb2RlUG9pbnRBdFBvcyhHZS5sYXN0SW5kZXgpO2lmKCFlZShzKSYmcyE9PTkyKXJldHVybiExfXJldHVybiEwfWVsc2UgcmV0dXJuIHQ9PT05Mn1jaFN0YXJ0c0JpbmRpbmdQYXR0ZXJuKHQpe3JldHVybiB0PT09OTF8fHQ9PT0xMjN9aGFzRm9sbG93aW5nQmluZGluZ0F0b20oKXtsZXQgdD10aGlzLm5leHRUb2tlblN0YXJ0KCksZT10aGlzLmNvZGVQb2ludEF0UG9zKHQpO3JldHVybiB0aGlzLmNoU3RhcnRzQmluZGluZ1BhdHRlcm4oZSl8fHRoaXMuY2hTdGFydHNCaW5kaW5nSWRlbnRpZmllcihlLHQpfWhhc0luTGluZUZvbGxvd2luZ0JpbmRpbmdJZGVudGlmaWVyKCl7bGV0IHQ9dGhpcy5uZXh0VG9rZW5JbkxpbmVTdGFydCgpLGU9dGhpcy5jb2RlUG9pbnRBdFBvcyh0KTtyZXR1cm4gdGhpcy5jaFN0YXJ0c0JpbmRpbmdJZGVudGlmaWVyKGUsdCl9c3RhcnRzVXNpbmdGb3JPZigpe2xldHt0eXBlOnQsY29udGFpbnNFc2M6ZX09dGhpcy5sb29rYWhlYWQoKTtpZih0PT09MTAxJiYhZSlyZXR1cm4hMTtpZihTKHQpJiYhdGhpcy5oYXNGb2xsb3dpbmdMaW5lQnJlYWsoKSlyZXR1cm4gdGhpcy5leHBlY3RQbHVnaW4oXCJleHBsaWNpdFJlc291cmNlTWFuYWdlbWVudFwiKSwhMH1zdGFydHNBd2FpdFVzaW5nKCl7bGV0IHQ9dGhpcy5uZXh0VG9rZW5JbkxpbmVTdGFydCgpO2lmKHRoaXMuaXNVbnBhcnNlZENvbnRleHR1YWwodCxcInVzaW5nXCIpKXt0PXRoaXMubmV4dFRva2VuSW5MaW5lU3RhcnRTaW5jZSh0KzUpO2xldCBlPXRoaXMuY29kZVBvaW50QXRQb3ModCk7aWYodGhpcy5jaFN0YXJ0c0JpbmRpbmdJZGVudGlmaWVyKGUsdCkpcmV0dXJuIHRoaXMuZXhwZWN0UGx1Z2luKFwiZXhwbGljaXRSZXNvdXJjZU1hbmFnZW1lbnRcIiksITB9cmV0dXJuITF9cGFyc2VNb2R1bGVJdGVtKCl7cmV0dXJuIHRoaXMucGFyc2VTdGF0ZW1lbnRMaWtlKDE1KX1wYXJzZVN0YXRlbWVudExpc3RJdGVtKCl7cmV0dXJuIHRoaXMucGFyc2VTdGF0ZW1lbnRMaWtlKDZ8KCF0aGlzLm9wdGlvbnMuYW5uZXhCfHx0aGlzLnN0YXRlLnN0cmljdD8wOjgpKX1wYXJzZVN0YXRlbWVudE9yU2xvcHB5QW5uZXhCRnVuY3Rpb25EZWNsYXJhdGlvbih0PSExKXtsZXQgZT0wO3JldHVybiB0aGlzLm9wdGlvbnMuYW5uZXhCJiYhdGhpcy5zdGF0ZS5zdHJpY3QmJihlfD00LHQmJihlfD04KSksdGhpcy5wYXJzZVN0YXRlbWVudExpa2UoZSl9cGFyc2VTdGF0ZW1lbnQoKXtyZXR1cm4gdGhpcy5wYXJzZVN0YXRlbWVudExpa2UoMCl9cGFyc2VTdGF0ZW1lbnRMaWtlKHQpe2xldCBlPW51bGw7cmV0dXJuIHRoaXMubWF0Y2goMjYpJiYoZT10aGlzLnBhcnNlRGVjb3JhdG9ycyghMCkpLHRoaXMucGFyc2VTdGF0ZW1lbnRDb250ZW50KHQsZSl9cGFyc2VTdGF0ZW1lbnRDb250ZW50KHQsZSl7bGV0IHM9dGhpcy5zdGF0ZS50eXBlLGk9dGhpcy5zdGFydE5vZGUoKSxyPSEhKHQmMiksbj0hISh0JjQpLG89dCYxO3N3aXRjaChzKXtjYXNlIDYwOnJldHVybiB0aGlzLnBhcnNlQnJlYWtDb250aW51ZVN0YXRlbWVudChpLCEwKTtjYXNlIDYzOnJldHVybiB0aGlzLnBhcnNlQnJlYWtDb250aW51ZVN0YXRlbWVudChpLCExKTtjYXNlIDY0OnJldHVybiB0aGlzLnBhcnNlRGVidWdnZXJTdGF0ZW1lbnQoaSk7Y2FzZSA5MDpyZXR1cm4gdGhpcy5wYXJzZURvV2hpbGVTdGF0ZW1lbnQoaSk7Y2FzZSA5MTpyZXR1cm4gdGhpcy5wYXJzZUZvclN0YXRlbWVudChpKTtjYXNlIDY4OmlmKHRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTQ2KWJyZWFrO3JldHVybiBufHx0aGlzLnJhaXNlKHRoaXMuc3RhdGUuc3RyaWN0P3AuU3RyaWN0RnVuY3Rpb246dGhpcy5vcHRpb25zLmFubmV4Qj9wLlNsb3BweUZ1bmN0aW9uQW5uZXhCOnAuU2xvcHB5RnVuY3Rpb24se2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KSx0aGlzLnBhcnNlRnVuY3Rpb25TdGF0ZW1lbnQoaSwhMSwhciYmbik7Y2FzZSA4MDpyZXR1cm4gcnx8dGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZUNsYXNzKHRoaXMubWF5YmVUYWtlRGVjb3JhdG9ycyhlLGkpLCEwKTtjYXNlIDY5OnJldHVybiB0aGlzLnBhcnNlSWZTdGF0ZW1lbnQoaSk7Y2FzZSA3MDpyZXR1cm4gdGhpcy5wYXJzZVJldHVyblN0YXRlbWVudChpKTtjYXNlIDcxOnJldHVybiB0aGlzLnBhcnNlU3dpdGNoU3RhdGVtZW50KGkpO2Nhc2UgNzI6cmV0dXJuIHRoaXMucGFyc2VUaHJvd1N0YXRlbWVudChpKTtjYXNlIDczOnJldHVybiB0aGlzLnBhcnNlVHJ5U3RhdGVtZW50KGkpO2Nhc2UgOTY6aWYoIXRoaXMuc3RhdGUuY29udGFpbnNFc2MmJnRoaXMuc3RhcnRzQXdhaXRVc2luZygpKXJldHVybiB0aGlzLmlzQXdhaXRBbGxvd2VkKCk/cnx8dGhpcy5yYWlzZShwLlVuZXhwZWN0ZWRMZXhpY2FsRGVjbGFyYXRpb24se2F0Oml9KTp0aGlzLnJhaXNlKHAuQXdhaXRVc2luZ05vdEluQXN5bmNDb250ZXh0LHthdDppfSksdGhpcy5uZXh0KCksdGhpcy5wYXJzZVZhclN0YXRlbWVudChpLFwiYXdhaXQgdXNpbmdcIik7YnJlYWs7Y2FzZSAxMDU6aWYodGhpcy5zdGF0ZS5jb250YWluc0VzY3x8IXRoaXMuaGFzSW5MaW5lRm9sbG93aW5nQmluZGluZ0lkZW50aWZpZXIoKSlicmVhaztyZXR1cm4gdGhpcy5leHBlY3RQbHVnaW4oXCJleHBsaWNpdFJlc291cmNlTWFuYWdlbWVudFwiKSwhdGhpcy5zY29wZS5pbk1vZHVsZSYmdGhpcy5zY29wZS5pblRvcExldmVsP3RoaXMucmFpc2UocC5VbmV4cGVjdGVkVXNpbmdEZWNsYXJhdGlvbix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pOnJ8fHRoaXMucmFpc2UocC5VbmV4cGVjdGVkTGV4aWNhbERlY2xhcmF0aW9uLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksdGhpcy5wYXJzZVZhclN0YXRlbWVudChpLFwidXNpbmdcIik7Y2FzZSA5OTp7aWYodGhpcy5zdGF0ZS5jb250YWluc0VzYylicmVhaztsZXQgYz10aGlzLm5leHRUb2tlblN0YXJ0KCksdT10aGlzLmNvZGVQb2ludEF0UG9zKGMpO2lmKHUhPT05MSYmKCFyJiZ0aGlzLmhhc0ZvbGxvd2luZ0xpbmVCcmVhaygpfHwhdGhpcy5jaFN0YXJ0c0JpbmRpbmdJZGVudGlmaWVyKHUsYykmJnUhPT0xMjMpKWJyZWFrfWNhc2UgNzU6cnx8dGhpcy5yYWlzZShwLlVuZXhwZWN0ZWRMZXhpY2FsRGVjbGFyYXRpb24se2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtjYXNlIDc0OntsZXQgYz10aGlzLnN0YXRlLnZhbHVlO3JldHVybiB0aGlzLnBhcnNlVmFyU3RhdGVtZW50KGksYyl9Y2FzZSA5MjpyZXR1cm4gdGhpcy5wYXJzZVdoaWxlU3RhdGVtZW50KGkpO2Nhc2UgNzY6cmV0dXJuIHRoaXMucGFyc2VXaXRoU3RhdGVtZW50KGkpO2Nhc2UgNTpyZXR1cm4gdGhpcy5wYXJzZUJsb2NrKCk7Y2FzZSAxMzpyZXR1cm4gdGhpcy5wYXJzZUVtcHR5U3RhdGVtZW50KGkpO2Nhc2UgODM6e2xldCBjPXRoaXMubG9va2FoZWFkQ2hhckNvZGUoKTtpZihjPT09NDB8fGM9PT00NilicmVha31jYXNlIDgyOnshdGhpcy5vcHRpb25zLmFsbG93SW1wb3J0RXhwb3J0RXZlcnl3aGVyZSYmIW8mJnRoaXMucmFpc2UocC5VbmV4cGVjdGVkSW1wb3J0RXhwb3J0LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksdGhpcy5uZXh0KCk7bGV0IGM7cmV0dXJuIHM9PT04Mz8oYz10aGlzLnBhcnNlSW1wb3J0KGkpLGMudHlwZT09PVwiSW1wb3J0RGVjbGFyYXRpb25cIiYmKCFjLmltcG9ydEtpbmR8fGMuaW1wb3J0S2luZD09PVwidmFsdWVcIikmJih0aGlzLnNhd1VuYW1iaWd1b3VzRVNNPSEwKSk6KGM9dGhpcy5wYXJzZUV4cG9ydChpLGUpLChjLnR5cGU9PT1cIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiYmKCFjLmV4cG9ydEtpbmR8fGMuZXhwb3J0S2luZD09PVwidmFsdWVcIil8fGMudHlwZT09PVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIiYmKCFjLmV4cG9ydEtpbmR8fGMuZXhwb3J0S2luZD09PVwidmFsdWVcIil8fGMudHlwZT09PVwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIpJiYodGhpcy5zYXdVbmFtYmlndW91c0VTTT0hMCkpLHRoaXMuYXNzZXJ0TW9kdWxlTm9kZUFsbG93ZWQoYyksY31kZWZhdWx0OmlmKHRoaXMuaXNBc3luY0Z1bmN0aW9uKCkpcmV0dXJuIHJ8fHRoaXMucmFpc2UocC5Bc3luY0Z1bmN0aW9uSW5TaW5nbGVTdGF0ZW1lbnRDb250ZXh0LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksdGhpcy5uZXh0KCksdGhpcy5wYXJzZUZ1bmN0aW9uU3RhdGVtZW50KGksITAsIXImJm4pfWxldCBoPXRoaXMuc3RhdGUudmFsdWUsbD10aGlzLnBhcnNlRXhwcmVzc2lvbigpO3JldHVybiBTKHMpJiZsLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmdGhpcy5lYXQoMTQpP3RoaXMucGFyc2VMYWJlbGVkU3RhdGVtZW50KGksaCxsLHQpOnRoaXMucGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KGksbCxlKX1hc3NlcnRNb2R1bGVOb2RlQWxsb3dlZCh0KXshdGhpcy5vcHRpb25zLmFsbG93SW1wb3J0RXhwb3J0RXZlcnl3aGVyZSYmIXRoaXMuaW5Nb2R1bGUmJnRoaXMucmFpc2UocC5JbXBvcnRPdXRzaWRlTW9kdWxlLHthdDp0fSl9ZGVjb3JhdG9yc0VuYWJsZWRCZWZvcmVFeHBvcnQoKXtyZXR1cm4gdGhpcy5oYXNQbHVnaW4oXCJkZWNvcmF0b3JzLWxlZ2FjeVwiKT8hMDp0aGlzLmhhc1BsdWdpbihcImRlY29yYXRvcnNcIikmJnRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZGVjb3JhdG9yc1wiLFwiZGVjb3JhdG9yc0JlZm9yZUV4cG9ydFwiKSE9PSExfW1heWJlVGFrZURlY29yYXRvcnModCxlLHMpe3JldHVybiB0JiYoZS5kZWNvcmF0b3JzJiZlLmRlY29yYXRvcnMubGVuZ3RoPjA/KHR5cGVvZiB0aGlzLmdldFBsdWdpbk9wdGlvbihcImRlY29yYXRvcnNcIixcImRlY29yYXRvcnNCZWZvcmVFeHBvcnRcIikhPVwiYm9vbGVhblwiJiZ0aGlzLnJhaXNlKHAuRGVjb3JhdG9yc0JlZm9yZUFmdGVyRXhwb3J0LHthdDplLmRlY29yYXRvcnNbMF19KSxlLmRlY29yYXRvcnMudW5zaGlmdCguLi50KSk6ZS5kZWNvcmF0b3JzPXQsdGhpcy5yZXNldFN0YXJ0TG9jYXRpb25Gcm9tTm9kZShlLHRbMF0pLHMmJnRoaXMucmVzZXRTdGFydExvY2F0aW9uRnJvbU5vZGUocyxlKSksZX1jYW5IYXZlTGVhZGluZ0RlY29yYXRvcigpe3JldHVybiB0aGlzLm1hdGNoKDgwKX1wYXJzZURlY29yYXRvcnModCl7bGV0IGU9W107ZG8gZS5wdXNoKHRoaXMucGFyc2VEZWNvcmF0b3IoKSk7d2hpbGUodGhpcy5tYXRjaCgyNikpO2lmKHRoaXMubWF0Y2goODIpKXR8fHRoaXMudW5leHBlY3RlZCgpLHRoaXMuZGVjb3JhdG9yc0VuYWJsZWRCZWZvcmVFeHBvcnQoKXx8dGhpcy5yYWlzZShwLkRlY29yYXRvckV4cG9ydENsYXNzLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7ZWxzZSBpZighdGhpcy5jYW5IYXZlTGVhZGluZ0RlY29yYXRvcigpKXRocm93IHRoaXMucmFpc2UocC5VbmV4cGVjdGVkTGVhZGluZ0RlY29yYXRvcix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pO3JldHVybiBlfXBhcnNlRGVjb3JhdG9yKCl7dGhpcy5leHBlY3RPbmVQbHVnaW4oW1wiZGVjb3JhdG9yc1wiLFwiZGVjb3JhdG9ycy1sZWdhY3lcIl0pO2xldCB0PXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5uZXh0KCksdGhpcy5oYXNQbHVnaW4oXCJkZWNvcmF0b3JzXCIpKXtsZXQgZT10aGlzLnN0YXRlLnN0YXJ0TG9jLHM7aWYodGhpcy5tYXRjaCgxMCkpe2xldCBpPXRoaXMuc3RhdGUuc3RhcnRMb2M7dGhpcy5uZXh0KCkscz10aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuZXhwZWN0KDExKSxzPXRoaXMud3JhcFBhcmVudGhlc2lzKGkscyk7bGV0IHI9dGhpcy5zdGF0ZS5zdGFydExvYzt0LmV4cHJlc3Npb249dGhpcy5wYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzKHMpLHRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZGVjb3JhdG9yc1wiLFwiYWxsb3dDYWxsUGFyZW50aGVzaXplZFwiKT09PSExJiZ0LmV4cHJlc3Npb24hPT1zJiZ0aGlzLnJhaXNlKHAuRGVjb3JhdG9yQXJndW1lbnRzT3V0c2lkZVBhcmVudGhlc2VzLHthdDpyfSl9ZWxzZXtmb3Iocz10aGlzLnBhcnNlSWRlbnRpZmllcighMSk7dGhpcy5lYXQoMTYpOyl7bGV0IGk9dGhpcy5zdGFydE5vZGVBdChlKTtpLm9iamVjdD1zLHRoaXMubWF0Y2goMTM2KT8odGhpcy5jbGFzc1Njb3BlLnVzZVByaXZhdGVOYW1lKHRoaXMuc3RhdGUudmFsdWUsdGhpcy5zdGF0ZS5zdGFydExvYyksaS5wcm9wZXJ0eT10aGlzLnBhcnNlUHJpdmF0ZU5hbWUoKSk6aS5wcm9wZXJ0eT10aGlzLnBhcnNlSWRlbnRpZmllcighMCksaS5jb21wdXRlZD0hMSxzPXRoaXMuZmluaXNoTm9kZShpLFwiTWVtYmVyRXhwcmVzc2lvblwiKX10LmV4cHJlc3Npb249dGhpcy5wYXJzZU1heWJlRGVjb3JhdG9yQXJndW1lbnRzKHMpfX1lbHNlIHQuZXhwcmVzc2lvbj10aGlzLnBhcnNlRXhwclN1YnNjcmlwdHMoKTtyZXR1cm4gdGhpcy5maW5pc2hOb2RlKHQsXCJEZWNvcmF0b3JcIil9cGFyc2VNYXliZURlY29yYXRvckFyZ3VtZW50cyh0KXtpZih0aGlzLmVhdCgxMCkpe2xldCBlPXRoaXMuc3RhcnROb2RlQXROb2RlKHQpO3JldHVybiBlLmNhbGxlZT10LGUuYXJndW1lbnRzPXRoaXMucGFyc2VDYWxsRXhwcmVzc2lvbkFyZ3VtZW50cygxMSwhMSksdGhpcy50b1JlZmVyZW5jZWRMaXN0KGUuYXJndW1lbnRzKSx0aGlzLmZpbmlzaE5vZGUoZSxcIkNhbGxFeHByZXNzaW9uXCIpfXJldHVybiB0fXBhcnNlQnJlYWtDb250aW51ZVN0YXRlbWVudCh0LGUpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmlzTGluZVRlcm1pbmF0b3IoKT90LmxhYmVsPW51bGw6KHQubGFiZWw9dGhpcy5wYXJzZUlkZW50aWZpZXIoKSx0aGlzLnNlbWljb2xvbigpKSx0aGlzLnZlcmlmeUJyZWFrQ29udGludWUodCxlKSx0aGlzLmZpbmlzaE5vZGUodCxlP1wiQnJlYWtTdGF0ZW1lbnRcIjpcIkNvbnRpbnVlU3RhdGVtZW50XCIpfXZlcmlmeUJyZWFrQ29udGludWUodCxlKXtsZXQgcztmb3Iocz0wO3M8dGhpcy5zdGF0ZS5sYWJlbHMubGVuZ3RoOysrcyl7bGV0IGk9dGhpcy5zdGF0ZS5sYWJlbHNbc107aWYoKHQubGFiZWw9PW51bGx8fGkubmFtZT09PXQubGFiZWwubmFtZSkmJihpLmtpbmQhPW51bGwmJihlfHxpLmtpbmQ9PT1cImxvb3BcIil8fHQubGFiZWwmJmUpKWJyZWFrfWlmKHM9PT10aGlzLnN0YXRlLmxhYmVscy5sZW5ndGgpe2xldCBpPWU/XCJCcmVha1N0YXRlbWVudFwiOlwiQ29udGludWVTdGF0ZW1lbnRcIjt0aGlzLnJhaXNlKHAuSWxsZWdhbEJyZWFrQ29udGludWUse2F0OnQsdHlwZTppfSl9fXBhcnNlRGVidWdnZXJTdGF0ZW1lbnQodCl7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHQsXCJEZWJ1Z2dlclN0YXRlbWVudFwiKX1wYXJzZUhlYWRlckV4cHJlc3Npb24oKXt0aGlzLmV4cGVjdCgxMCk7bGV0IHQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKTtyZXR1cm4gdGhpcy5leHBlY3QoMTEpLHR9cGFyc2VEb1doaWxlU3RhdGVtZW50KHQpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLnN0YXRlLmxhYmVscy5wdXNoKFhlKSx0LmJvZHk9dGhpcy53aXRoU21hcnRNaXhUb3BpY0ZvcmJpZGRpbmdDb250ZXh0KCgpPT50aGlzLnBhcnNlU3RhdGVtZW50KCkpLHRoaXMuc3RhdGUubGFiZWxzLnBvcCgpLHRoaXMuZXhwZWN0KDkyKSx0LnRlc3Q9dGhpcy5wYXJzZUhlYWRlckV4cHJlc3Npb24oKSx0aGlzLmVhdCgxMyksdGhpcy5maW5pc2hOb2RlKHQsXCJEb1doaWxlU3RhdGVtZW50XCIpfXBhcnNlRm9yU3RhdGVtZW50KHQpe3RoaXMubmV4dCgpLHRoaXMuc3RhdGUubGFiZWxzLnB1c2goWGUpO2xldCBlPW51bGw7aWYodGhpcy5pc0F3YWl0QWxsb3dlZCgpJiZ0aGlzLmVhdENvbnRleHR1YWwoOTYpJiYoZT10aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvYyksdGhpcy5zY29wZS5lbnRlcigwKSx0aGlzLmV4cGVjdCgxMCksdGhpcy5tYXRjaCgxMykpcmV0dXJuIGUhPT1udWxsJiZ0aGlzLnVuZXhwZWN0ZWQoZSksdGhpcy5wYXJzZUZvcih0LG51bGwpO2xldCBzPXRoaXMuaXNDb250ZXh0dWFsKDk5KTt7bGV0IGg9dGhpcy5pc0NvbnRleHR1YWwoOTYpJiZ0aGlzLnN0YXJ0c0F3YWl0VXNpbmcoKSxsPWh8fHRoaXMuaXNDb250ZXh0dWFsKDEwNSkmJnRoaXMuc3RhcnRzVXNpbmdGb3JPZigpLGM9cyYmdGhpcy5oYXNGb2xsb3dpbmdCaW5kaW5nQXRvbSgpfHxsO2lmKHRoaXMubWF0Y2goNzQpfHx0aGlzLm1hdGNoKDc1KXx8Yyl7bGV0IHU9dGhpcy5zdGFydE5vZGUoKSxmO2g/KGY9XCJhd2FpdCB1c2luZ1wiLHRoaXMuaXNBd2FpdEFsbG93ZWQoKXx8dGhpcy5yYWlzZShwLkF3YWl0VXNpbmdOb3RJbkFzeW5jQ29udGV4dCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLHRoaXMubmV4dCgpKTpmPXRoaXMuc3RhdGUudmFsdWUsdGhpcy5uZXh0KCksdGhpcy5wYXJzZVZhcih1LCEwLGYpO2xldCBkPXRoaXMuZmluaXNoTm9kZSh1LFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSx4PXRoaXMubWF0Y2goNTgpO3JldHVybiB4JiZsJiZ0aGlzLnJhaXNlKHAuRm9ySW5Vc2luZyx7YXQ6ZH0pLCh4fHx0aGlzLmlzQ29udGV4dHVhbCgxMDEpKSYmZC5kZWNsYXJhdGlvbnMubGVuZ3RoPT09MT90aGlzLnBhcnNlRm9ySW4odCxkLGUpOihlIT09bnVsbCYmdGhpcy51bmV4cGVjdGVkKGUpLHRoaXMucGFyc2VGb3IodCxkKSl9fWxldCBpPXRoaXMuaXNDb250ZXh0dWFsKDk1KSxyPW5ldyBzZSxuPXRoaXMucGFyc2VFeHByZXNzaW9uKCEwLHIpLG89dGhpcy5pc0NvbnRleHR1YWwoMTAxKTtpZihvJiYocyYmdGhpcy5yYWlzZShwLkZvck9mTGV0LHthdDpufSksZT09PW51bGwmJmkmJm4udHlwZT09PVwiSWRlbnRpZmllclwiJiZ0aGlzLnJhaXNlKHAuRm9yT2ZBc3luYyx7YXQ6bn0pKSxvfHx0aGlzLm1hdGNoKDU4KSl7dGhpcy5jaGVja0Rlc3RydWN0dXJpbmdQcml2YXRlKHIpLHRoaXMudG9Bc3NpZ25hYmxlKG4sITApO2xldCBoPW8/XCJGb3JPZlN0YXRlbWVudFwiOlwiRm9ySW5TdGF0ZW1lbnRcIjtyZXR1cm4gdGhpcy5jaGVja0xWYWwobix7aW46e3R5cGU6aH19KSx0aGlzLnBhcnNlRm9ySW4odCxuLGUpfWVsc2UgdGhpcy5jaGVja0V4cHJlc3Npb25FcnJvcnMociwhMCk7cmV0dXJuIGUhPT1udWxsJiZ0aGlzLnVuZXhwZWN0ZWQoZSksdGhpcy5wYXJzZUZvcih0LG4pfXBhcnNlRnVuY3Rpb25TdGF0ZW1lbnQodCxlLHMpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLnBhcnNlRnVuY3Rpb24odCwxfChzPzI6MCl8KGU/ODowKSl9cGFyc2VJZlN0YXRlbWVudCh0KXtyZXR1cm4gdGhpcy5uZXh0KCksdC50ZXN0PXRoaXMucGFyc2VIZWFkZXJFeHByZXNzaW9uKCksdC5jb25zZXF1ZW50PXRoaXMucGFyc2VTdGF0ZW1lbnRPclNsb3BweUFubmV4QkZ1bmN0aW9uRGVjbGFyYXRpb24oKSx0LmFsdGVybmF0ZT10aGlzLmVhdCg2Nik/dGhpcy5wYXJzZVN0YXRlbWVudE9yU2xvcHB5QW5uZXhCRnVuY3Rpb25EZWNsYXJhdGlvbigpOm51bGwsdGhpcy5maW5pc2hOb2RlKHQsXCJJZlN0YXRlbWVudFwiKX1wYXJzZVJldHVyblN0YXRlbWVudCh0KXtyZXR1cm4hdGhpcy5wcm9kUGFyYW0uaGFzUmV0dXJuJiYhdGhpcy5vcHRpb25zLmFsbG93UmV0dXJuT3V0c2lkZUZ1bmN0aW9uJiZ0aGlzLnJhaXNlKHAuSWxsZWdhbFJldHVybix7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLHRoaXMubmV4dCgpLHRoaXMuaXNMaW5lVGVybWluYXRvcigpP3QuYXJndW1lbnQ9bnVsbDoodC5hcmd1bWVudD10aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuc2VtaWNvbG9uKCkpLHRoaXMuZmluaXNoTm9kZSh0LFwiUmV0dXJuU3RhdGVtZW50XCIpfXBhcnNlU3dpdGNoU3RhdGVtZW50KHQpe3RoaXMubmV4dCgpLHQuZGlzY3JpbWluYW50PXRoaXMucGFyc2VIZWFkZXJFeHByZXNzaW9uKCk7bGV0IGU9dC5jYXNlcz1bXTt0aGlzLmV4cGVjdCg1KSx0aGlzLnN0YXRlLmxhYmVscy5wdXNoKFByKSx0aGlzLnNjb3BlLmVudGVyKDApO2xldCBzO2ZvcihsZXQgaTshdGhpcy5tYXRjaCg4KTspaWYodGhpcy5tYXRjaCg2MSl8fHRoaXMubWF0Y2goNjUpKXtsZXQgcj10aGlzLm1hdGNoKDYxKTtzJiZ0aGlzLmZpbmlzaE5vZGUocyxcIlN3aXRjaENhc2VcIiksZS5wdXNoKHM9dGhpcy5zdGFydE5vZGUoKSkscy5jb25zZXF1ZW50PVtdLHRoaXMubmV4dCgpLHI/cy50ZXN0PXRoaXMucGFyc2VFeHByZXNzaW9uKCk6KGkmJnRoaXMucmFpc2UocC5NdWx0aXBsZURlZmF1bHRzSW5Td2l0Y2gse2F0OnRoaXMuc3RhdGUubGFzdFRva1N0YXJ0TG9jfSksaT0hMCxzLnRlc3Q9bnVsbCksdGhpcy5leHBlY3QoMTQpfWVsc2Ugcz9zLmNvbnNlcXVlbnQucHVzaCh0aGlzLnBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKSk6dGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMuc2NvcGUuZXhpdCgpLHMmJnRoaXMuZmluaXNoTm9kZShzLFwiU3dpdGNoQ2FzZVwiKSx0aGlzLm5leHQoKSx0aGlzLnN0YXRlLmxhYmVscy5wb3AoKSx0aGlzLmZpbmlzaE5vZGUodCxcIlN3aXRjaFN0YXRlbWVudFwiKX1wYXJzZVRocm93U3RhdGVtZW50KHQpe3JldHVybiB0aGlzLm5leHQoKSx0aGlzLmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpJiZ0aGlzLnJhaXNlKHAuTmV3bGluZUFmdGVyVGhyb3cse2F0OnRoaXMuc3RhdGUubGFzdFRva0VuZExvY30pLHQuYXJndW1lbnQ9dGhpcy5wYXJzZUV4cHJlc3Npb24oKSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZSh0LFwiVGhyb3dTdGF0ZW1lbnRcIil9cGFyc2VDYXRjaENsYXVzZVBhcmFtKCl7bGV0IHQ9dGhpcy5wYXJzZUJpbmRpbmdBdG9tKCk7cmV0dXJuIHRoaXMuc2NvcGUuZW50ZXIodGhpcy5vcHRpb25zLmFubmV4QiYmdC50eXBlPT09XCJJZGVudGlmaWVyXCI/ODowKSx0aGlzLmNoZWNrTFZhbCh0LHtpbjp7dHlwZTpcIkNhdGNoQ2xhdXNlXCJ9LGJpbmRpbmc6OX0pLHR9cGFyc2VUcnlTdGF0ZW1lbnQodCl7aWYodGhpcy5uZXh0KCksdC5ibG9jaz10aGlzLnBhcnNlQmxvY2soKSx0LmhhbmRsZXI9bnVsbCx0aGlzLm1hdGNoKDYyKSl7bGV0IGU9dGhpcy5zdGFydE5vZGUoKTt0aGlzLm5leHQoKSx0aGlzLm1hdGNoKDEwKT8odGhpcy5leHBlY3QoMTApLGUucGFyYW09dGhpcy5wYXJzZUNhdGNoQ2xhdXNlUGFyYW0oKSx0aGlzLmV4cGVjdCgxMSkpOihlLnBhcmFtPW51bGwsdGhpcy5zY29wZS5lbnRlcigwKSksZS5ib2R5PXRoaXMud2l0aFNtYXJ0TWl4VG9waWNGb3JiaWRkaW5nQ29udGV4dCgoKT0+dGhpcy5wYXJzZUJsb2NrKCExLCExKSksdGhpcy5zY29wZS5leGl0KCksdC5oYW5kbGVyPXRoaXMuZmluaXNoTm9kZShlLFwiQ2F0Y2hDbGF1c2VcIil9cmV0dXJuIHQuZmluYWxpemVyPXRoaXMuZWF0KDY3KT90aGlzLnBhcnNlQmxvY2soKTpudWxsLCF0LmhhbmRsZXImJiF0LmZpbmFsaXplciYmdGhpcy5yYWlzZShwLk5vQ2F0Y2hPckZpbmFsbHkse2F0OnR9KSx0aGlzLmZpbmlzaE5vZGUodCxcIlRyeVN0YXRlbWVudFwiKX1wYXJzZVZhclN0YXRlbWVudCh0LGUscz0hMSl7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMucGFyc2VWYXIodCwhMSxlLHMpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHQsXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIpfXBhcnNlV2hpbGVTdGF0ZW1lbnQodCl7cmV0dXJuIHRoaXMubmV4dCgpLHQudGVzdD10aGlzLnBhcnNlSGVhZGVyRXhwcmVzc2lvbigpLHRoaXMuc3RhdGUubGFiZWxzLnB1c2goWGUpLHQuYm9keT10aGlzLndpdGhTbWFydE1peFRvcGljRm9yYmlkZGluZ0NvbnRleHQoKCk9PnRoaXMucGFyc2VTdGF0ZW1lbnQoKSksdGhpcy5zdGF0ZS5sYWJlbHMucG9wKCksdGhpcy5maW5pc2hOb2RlKHQsXCJXaGlsZVN0YXRlbWVudFwiKX1wYXJzZVdpdGhTdGF0ZW1lbnQodCl7cmV0dXJuIHRoaXMuc3RhdGUuc3RyaWN0JiZ0aGlzLnJhaXNlKHAuU3RyaWN0V2l0aCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLHRoaXMubmV4dCgpLHQub2JqZWN0PXRoaXMucGFyc2VIZWFkZXJFeHByZXNzaW9uKCksdC5ib2R5PXRoaXMud2l0aFNtYXJ0TWl4VG9waWNGb3JiaWRkaW5nQ29udGV4dCgoKT0+dGhpcy5wYXJzZVN0YXRlbWVudCgpKSx0aGlzLmZpbmlzaE5vZGUodCxcIldpdGhTdGF0ZW1lbnRcIil9cGFyc2VFbXB0eVN0YXRlbWVudCh0KXtyZXR1cm4gdGhpcy5uZXh0KCksdGhpcy5maW5pc2hOb2RlKHQsXCJFbXB0eVN0YXRlbWVudFwiKX1wYXJzZUxhYmVsZWRTdGF0ZW1lbnQodCxlLHMsaSl7Zm9yKGxldCBuIG9mIHRoaXMuc3RhdGUubGFiZWxzKW4ubmFtZT09PWUmJnRoaXMucmFpc2UocC5MYWJlbFJlZGVjbGFyYXRpb24se2F0OnMsbGFiZWxOYW1lOmV9KTtsZXQgcj1iaSh0aGlzLnN0YXRlLnR5cGUpP1wibG9vcFwiOnRoaXMubWF0Y2goNzEpP1wic3dpdGNoXCI6bnVsbDtmb3IobGV0IG49dGhpcy5zdGF0ZS5sYWJlbHMubGVuZ3RoLTE7bj49MDtuLS0pe2xldCBvPXRoaXMuc3RhdGUubGFiZWxzW25dO2lmKG8uc3RhdGVtZW50U3RhcnQ9PT10LnN0YXJ0KW8uc3RhdGVtZW50U3RhcnQ9dGhpcy5zdGF0ZS5zdGFydCxvLmtpbmQ9cjtlbHNlIGJyZWFrfXJldHVybiB0aGlzLnN0YXRlLmxhYmVscy5wdXNoKHtuYW1lOmUsa2luZDpyLHN0YXRlbWVudFN0YXJ0OnRoaXMuc3RhdGUuc3RhcnR9KSx0LmJvZHk9aSY4P3RoaXMucGFyc2VTdGF0ZW1lbnRPclNsb3BweUFubmV4QkZ1bmN0aW9uRGVjbGFyYXRpb24oITApOnRoaXMucGFyc2VTdGF0ZW1lbnQoKSx0aGlzLnN0YXRlLmxhYmVscy5wb3AoKSx0LmxhYmVsPXMsdGhpcy5maW5pc2hOb2RlKHQsXCJMYWJlbGVkU3RhdGVtZW50XCIpfXBhcnNlRXhwcmVzc2lvblN0YXRlbWVudCh0LGUscyl7cmV0dXJuIHQuZXhwcmVzc2lvbj1lLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHQsXCJFeHByZXNzaW9uU3RhdGVtZW50XCIpfXBhcnNlQmxvY2sodD0hMSxlPSEwLHMpe2xldCBpPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHQmJnRoaXMuc3RhdGUuc3RyaWN0RXJyb3JzLmNsZWFyKCksdGhpcy5leHBlY3QoNSksZSYmdGhpcy5zY29wZS5lbnRlcigwKSx0aGlzLnBhcnNlQmxvY2tCb2R5KGksdCwhMSw4LHMpLGUmJnRoaXMuc2NvcGUuZXhpdCgpLHRoaXMuZmluaXNoTm9kZShpLFwiQmxvY2tTdGF0ZW1lbnRcIil9aXNWYWxpZERpcmVjdGl2ZSh0KXtyZXR1cm4gdC50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJnQuZXhwcmVzc2lvbi50eXBlPT09XCJTdHJpbmdMaXRlcmFsXCImJiF0LmV4cHJlc3Npb24uZXh0cmEucGFyZW50aGVzaXplZH1wYXJzZUJsb2NrQm9keSh0LGUscyxpLHIpe2xldCBuPXQuYm9keT1bXSxvPXQuZGlyZWN0aXZlcz1bXTt0aGlzLnBhcnNlQmxvY2tPck1vZHVsZUJsb2NrQm9keShuLGU/bzp2b2lkIDAscyxpLHIpfXBhcnNlQmxvY2tPck1vZHVsZUJsb2NrQm9keSh0LGUscyxpLHIpe2xldCBuPXRoaXMuc3RhdGUuc3RyaWN0LG89ITEsaD0hMTtmb3IoOyF0aGlzLm1hdGNoKGkpOyl7bGV0IGw9cz90aGlzLnBhcnNlTW9kdWxlSXRlbSgpOnRoaXMucGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO2lmKGUmJiFoKXtpZih0aGlzLmlzVmFsaWREaXJlY3RpdmUobCkpe2xldCBjPXRoaXMuc3RtdFRvRGlyZWN0aXZlKGwpO2UucHVzaChjKSwhbyYmYy52YWx1ZS52YWx1ZT09PVwidXNlIHN0cmljdFwiJiYobz0hMCx0aGlzLnNldFN0cmljdCghMCkpO2NvbnRpbnVlfWg9ITAsdGhpcy5zdGF0ZS5zdHJpY3RFcnJvcnMuY2xlYXIoKX10LnB1c2gobCl9cj09bnVsbHx8ci5jYWxsKHRoaXMsbyksbnx8dGhpcy5zZXRTdHJpY3QoITEpLHRoaXMubmV4dCgpfXBhcnNlRm9yKHQsZSl7cmV0dXJuIHQuaW5pdD1lLHRoaXMuc2VtaWNvbG9uKCExKSx0LnRlc3Q9dGhpcy5tYXRjaCgxMyk/bnVsbDp0aGlzLnBhcnNlRXhwcmVzc2lvbigpLHRoaXMuc2VtaWNvbG9uKCExKSx0LnVwZGF0ZT10aGlzLm1hdGNoKDExKT9udWxsOnRoaXMucGFyc2VFeHByZXNzaW9uKCksdGhpcy5leHBlY3QoMTEpLHQuYm9keT10aGlzLndpdGhTbWFydE1peFRvcGljRm9yYmlkZGluZ0NvbnRleHQoKCk9PnRoaXMucGFyc2VTdGF0ZW1lbnQoKSksdGhpcy5zY29wZS5leGl0KCksdGhpcy5zdGF0ZS5sYWJlbHMucG9wKCksdGhpcy5maW5pc2hOb2RlKHQsXCJGb3JTdGF0ZW1lbnRcIil9cGFyc2VGb3JJbih0LGUscyl7bGV0IGk9dGhpcy5tYXRjaCg1OCk7cmV0dXJuIHRoaXMubmV4dCgpLGk/cyE9PW51bGwmJnRoaXMudW5leHBlY3RlZChzKTp0LmF3YWl0PXMhPT1udWxsLGUudHlwZT09PVwiVmFyaWFibGVEZWNsYXJhdGlvblwiJiZlLmRlY2xhcmF0aW9uc1swXS5pbml0IT1udWxsJiYoIWl8fCF0aGlzLm9wdGlvbnMuYW5uZXhCfHx0aGlzLnN0YXRlLnN0cmljdHx8ZS5raW5kIT09XCJ2YXJcInx8ZS5kZWNsYXJhdGlvbnNbMF0uaWQudHlwZSE9PVwiSWRlbnRpZmllclwiKSYmdGhpcy5yYWlzZShwLkZvckluT2ZMb29wSW5pdGlhbGl6ZXIse2F0OmUsdHlwZTppP1wiRm9ySW5TdGF0ZW1lbnRcIjpcIkZvck9mU3RhdGVtZW50XCJ9KSxlLnR5cGU9PT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCImJnRoaXMucmFpc2UocC5JbnZhbGlkTGhzLHthdDplLGFuY2VzdG9yOnt0eXBlOlwiRm9yU3RhdGVtZW50XCJ9fSksdC5sZWZ0PWUsdC5yaWdodD1pP3RoaXMucGFyc2VFeHByZXNzaW9uKCk6dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpLHRoaXMuZXhwZWN0KDExKSx0LmJvZHk9dGhpcy53aXRoU21hcnRNaXhUb3BpY0ZvcmJpZGRpbmdDb250ZXh0KCgpPT50aGlzLnBhcnNlU3RhdGVtZW50KCkpLHRoaXMuc2NvcGUuZXhpdCgpLHRoaXMuc3RhdGUubGFiZWxzLnBvcCgpLHRoaXMuZmluaXNoTm9kZSh0LGk/XCJGb3JJblN0YXRlbWVudFwiOlwiRm9yT2ZTdGF0ZW1lbnRcIil9cGFyc2VWYXIodCxlLHMsaT0hMSl7bGV0IHI9dC5kZWNsYXJhdGlvbnM9W107Zm9yKHQua2luZD1zOzspe2xldCBuPXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5wYXJzZVZhcklkKG4scyksbi5pbml0PXRoaXMuZWF0KDI5KT9lP3RoaXMucGFyc2VNYXliZUFzc2lnbkRpc2FsbG93SW4oKTp0aGlzLnBhcnNlTWF5YmVBc3NpZ25BbGxvd0luKCk6bnVsbCxuLmluaXQ9PT1udWxsJiYhaSYmKG4uaWQudHlwZSE9PVwiSWRlbnRpZmllclwiJiYhKGUmJih0aGlzLm1hdGNoKDU4KXx8dGhpcy5pc0NvbnRleHR1YWwoMTAxKSkpP3RoaXMucmFpc2UocC5EZWNsYXJhdGlvbk1pc3NpbmdJbml0aWFsaXplcix7YXQ6dGhpcy5zdGF0ZS5sYXN0VG9rRW5kTG9jLGtpbmQ6XCJkZXN0cnVjdHVyaW5nXCJ9KTpzPT09XCJjb25zdFwiJiYhKHRoaXMubWF0Y2goNTgpfHx0aGlzLmlzQ29udGV4dHVhbCgxMDEpKSYmdGhpcy5yYWlzZShwLkRlY2xhcmF0aW9uTWlzc2luZ0luaXRpYWxpemVyLHthdDp0aGlzLnN0YXRlLmxhc3RUb2tFbmRMb2Msa2luZDpcImNvbnN0XCJ9KSksci5wdXNoKHRoaXMuZmluaXNoTm9kZShuLFwiVmFyaWFibGVEZWNsYXJhdG9yXCIpKSwhdGhpcy5lYXQoMTIpKWJyZWFrfXJldHVybiB0fXBhcnNlVmFySWQodCxlKXtsZXQgcz10aGlzLnBhcnNlQmluZGluZ0F0b20oKTt0aGlzLmNoZWNrTFZhbChzLHtpbjp7dHlwZTpcIlZhcmlhYmxlRGVjbGFyYXRvclwifSxiaW5kaW5nOmU9PT1cInZhclwiPzU6ODIwMX0pLHQuaWQ9c31wYXJzZUFzeW5jRnVuY3Rpb25FeHByZXNzaW9uKHQpe3JldHVybiB0aGlzLnBhcnNlRnVuY3Rpb24odCw4KX1wYXJzZUZ1bmN0aW9uKHQsZT0wKXtsZXQgcz1lJjIsaT0hIShlJjEpLHI9aSYmIShlJjQpLG49ISEoZSY4KTt0aGlzLmluaXRGdW5jdGlvbih0LG4pLHRoaXMubWF0Y2goNTUpJiYocyYmdGhpcy5yYWlzZShwLkdlbmVyYXRvckluU2luZ2xlU3RhdGVtZW50Q29udGV4dCx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLHRoaXMubmV4dCgpLHQuZ2VuZXJhdG9yPSEwKSxpJiYodC5pZD10aGlzLnBhcnNlRnVuY3Rpb25JZChyKSk7bGV0IG89dGhpcy5zdGF0ZS5tYXliZUluQXJyb3dQYXJhbWV0ZXJzO3JldHVybiB0aGlzLnN0YXRlLm1heWJlSW5BcnJvd1BhcmFtZXRlcnM9ITEsdGhpcy5zY29wZS5lbnRlcigyKSx0aGlzLnByb2RQYXJhbS5lbnRlcih2ZShuLHQuZ2VuZXJhdG9yKSksaXx8KHQuaWQ9dGhpcy5wYXJzZUZ1bmN0aW9uSWQoKSksdGhpcy5wYXJzZUZ1bmN0aW9uUGFyYW1zKHQsITEpLHRoaXMud2l0aFNtYXJ0TWl4VG9waWNGb3JiaWRkaW5nQ29udGV4dCgoKT0+e3RoaXMucGFyc2VGdW5jdGlvbkJvZHlBbmRGaW5pc2godCxpP1wiRnVuY3Rpb25EZWNsYXJhdGlvblwiOlwiRnVuY3Rpb25FeHByZXNzaW9uXCIpfSksdGhpcy5wcm9kUGFyYW0uZXhpdCgpLHRoaXMuc2NvcGUuZXhpdCgpLGkmJiFzJiZ0aGlzLnJlZ2lzdGVyRnVuY3Rpb25TdGF0ZW1lbnRJZCh0KSx0aGlzLnN0YXRlLm1heWJlSW5BcnJvd1BhcmFtZXRlcnM9byx0fXBhcnNlRnVuY3Rpb25JZCh0KXtyZXR1cm4gdHx8Uyh0aGlzLnN0YXRlLnR5cGUpP3RoaXMucGFyc2VJZGVudGlmaWVyKCk6bnVsbH1wYXJzZUZ1bmN0aW9uUGFyYW1zKHQsZSl7dGhpcy5leHBlY3QoMTApLHRoaXMuZXhwcmVzc2lvblNjb3BlLmVudGVyKEhpKCkpLHQucGFyYW1zPXRoaXMucGFyc2VCaW5kaW5nTGlzdCgxMSw0MSwyfChlPzQ6MCkpLHRoaXMuZXhwcmVzc2lvblNjb3BlLmV4aXQoKX1yZWdpc3RlckZ1bmN0aW9uU3RhdGVtZW50SWQodCl7dC5pZCYmdGhpcy5zY29wZS5kZWNsYXJlTmFtZSh0LmlkLm5hbWUsIXRoaXMub3B0aW9ucy5hbm5leEJ8fHRoaXMuc3RhdGUuc3RyaWN0fHx0LmdlbmVyYXRvcnx8dC5hc3luYz90aGlzLnNjb3BlLnRyZWF0RnVuY3Rpb25zQXNWYXI/NTo4MjAxOjE3LHQuaWQubG9jLnN0YXJ0KX1wYXJzZUNsYXNzKHQsZSxzKXt0aGlzLm5leHQoKTtsZXQgaT10aGlzLnN0YXRlLnN0cmljdDtyZXR1cm4gdGhpcy5zdGF0ZS5zdHJpY3Q9ITAsdGhpcy5wYXJzZUNsYXNzSWQodCxlLHMpLHRoaXMucGFyc2VDbGFzc1N1cGVyKHQpLHQuYm9keT10aGlzLnBhcnNlQ2xhc3NCb2R5KCEhdC5zdXBlckNsYXNzLGkpLHRoaXMuZmluaXNoTm9kZSh0LGU/XCJDbGFzc0RlY2xhcmF0aW9uXCI6XCJDbGFzc0V4cHJlc3Npb25cIil9aXNDbGFzc1Byb3BlcnR5KCl7cmV0dXJuIHRoaXMubWF0Y2goMjkpfHx0aGlzLm1hdGNoKDEzKXx8dGhpcy5tYXRjaCg4KX1pc0NsYXNzTWV0aG9kKCl7cmV0dXJuIHRoaXMubWF0Y2goMTApfWlzTm9uc3RhdGljQ29uc3RydWN0b3IodCl7cmV0dXJuIXQuY29tcHV0ZWQmJiF0LnN0YXRpYyYmKHQua2V5Lm5hbWU9PT1cImNvbnN0cnVjdG9yXCJ8fHQua2V5LnZhbHVlPT09XCJjb25zdHJ1Y3RvclwiKX1wYXJzZUNsYXNzQm9keSh0LGUpe3RoaXMuY2xhc3NTY29wZS5lbnRlcigpO2xldCBzPXtoYWRDb25zdHJ1Y3RvcjohMSxoYWRTdXBlckNsYXNzOnR9LGk9W10scj10aGlzLnN0YXJ0Tm9kZSgpO2lmKHIuYm9keT1bXSx0aGlzLmV4cGVjdCg1KSx0aGlzLndpdGhTbWFydE1peFRvcGljRm9yYmlkZGluZ0NvbnRleHQoKCk9Pntmb3IoOyF0aGlzLm1hdGNoKDgpOyl7aWYodGhpcy5lYXQoMTMpKXtpZihpLmxlbmd0aD4wKXRocm93IHRoaXMucmFpc2UocC5EZWNvcmF0b3JTZW1pY29sb24se2F0OnRoaXMuc3RhdGUubGFzdFRva0VuZExvY30pO2NvbnRpbnVlfWlmKHRoaXMubWF0Y2goMjYpKXtpLnB1c2godGhpcy5wYXJzZURlY29yYXRvcigpKTtjb250aW51ZX1sZXQgbj10aGlzLnN0YXJ0Tm9kZSgpO2kubGVuZ3RoJiYobi5kZWNvcmF0b3JzPWksdGhpcy5yZXNldFN0YXJ0TG9jYXRpb25Gcm9tTm9kZShuLGlbMF0pLGk9W10pLHRoaXMucGFyc2VDbGFzc01lbWJlcihyLG4scyksbi5raW5kPT09XCJjb25zdHJ1Y3RvclwiJiZuLmRlY29yYXRvcnMmJm4uZGVjb3JhdG9ycy5sZW5ndGg+MCYmdGhpcy5yYWlzZShwLkRlY29yYXRvckNvbnN0cnVjdG9yLHthdDpufSl9fSksdGhpcy5zdGF0ZS5zdHJpY3Q9ZSx0aGlzLm5leHQoKSxpLmxlbmd0aCl0aHJvdyB0aGlzLnJhaXNlKHAuVHJhaWxpbmdEZWNvcmF0b3Ise2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtyZXR1cm4gdGhpcy5jbGFzc1Njb3BlLmV4aXQoKSx0aGlzLmZpbmlzaE5vZGUocixcIkNsYXNzQm9keVwiKX1wYXJzZUNsYXNzTWVtYmVyRnJvbU1vZGlmaWVyKHQsZSl7bGV0IHM9dGhpcy5wYXJzZUlkZW50aWZpZXIoITApO2lmKHRoaXMuaXNDbGFzc01ldGhvZCgpKXtsZXQgaT1lO3JldHVybiBpLmtpbmQ9XCJtZXRob2RcIixpLmNvbXB1dGVkPSExLGkua2V5PXMsaS5zdGF0aWM9ITEsdGhpcy5wdXNoQ2xhc3NNZXRob2QodCxpLCExLCExLCExLCExKSwhMH1lbHNlIGlmKHRoaXMuaXNDbGFzc1Byb3BlcnR5KCkpe2xldCBpPWU7cmV0dXJuIGkuY29tcHV0ZWQ9ITEsaS5rZXk9cyxpLnN0YXRpYz0hMSx0LmJvZHkucHVzaCh0aGlzLnBhcnNlQ2xhc3NQcm9wZXJ0eShpKSksITB9cmV0dXJuIHRoaXMucmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKHMpLCExfXBhcnNlQ2xhc3NNZW1iZXIodCxlLHMpe2xldCBpPXRoaXMuaXNDb250ZXh0dWFsKDEwNCk7aWYoaSl7aWYodGhpcy5wYXJzZUNsYXNzTWVtYmVyRnJvbU1vZGlmaWVyKHQsZSkpcmV0dXJuO2lmKHRoaXMuZWF0KDUpKXt0aGlzLnBhcnNlQ2xhc3NTdGF0aWNCbG9jayh0LGUpO3JldHVybn19dGhpcy5wYXJzZUNsYXNzTWVtYmVyV2l0aElzU3RhdGljKHQsZSxzLGkpfXBhcnNlQ2xhc3NNZW1iZXJXaXRoSXNTdGF0aWModCxlLHMsaSl7bGV0IHI9ZSxuPWUsbz1lLGg9ZSxsPWUsYz1yLHU9cjtpZihlLnN0YXRpYz1pLHRoaXMucGFyc2VQcm9wZXJ0eU5hbWVQcmVmaXhPcGVyYXRvcihlKSx0aGlzLmVhdCg1NSkpe2Mua2luZD1cIm1ldGhvZFwiO2xldCBDPXRoaXMubWF0Y2goMTM2KTtpZih0aGlzLnBhcnNlQ2xhc3NFbGVtZW50TmFtZShjKSxDKXt0aGlzLnB1c2hDbGFzc1ByaXZhdGVNZXRob2QodCxuLCEwLCExKTtyZXR1cm59dGhpcy5pc05vbnN0YXRpY0NvbnN0cnVjdG9yKHIpJiZ0aGlzLnJhaXNlKHAuQ29uc3RydWN0b3JJc0dlbmVyYXRvcix7YXQ6ci5rZXl9KSx0aGlzLnB1c2hDbGFzc01ldGhvZCh0LHIsITAsITEsITEsITEpO3JldHVybn1sZXQgZj1TKHRoaXMuc3RhdGUudHlwZSkmJiF0aGlzLnN0YXRlLmNvbnRhaW5zRXNjLGQ9dGhpcy5tYXRjaCgxMzYpLHg9dGhpcy5wYXJzZUNsYXNzRWxlbWVudE5hbWUoZSksST10aGlzLnN0YXRlLnN0YXJ0TG9jO2lmKHRoaXMucGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycyh1KSx0aGlzLmlzQ2xhc3NNZXRob2QoKSl7aWYoYy5raW5kPVwibWV0aG9kXCIsZCl7dGhpcy5wdXNoQ2xhc3NQcml2YXRlTWV0aG9kKHQsbiwhMSwhMSk7cmV0dXJufWxldCBDPXRoaXMuaXNOb25zdGF0aWNDb25zdHJ1Y3RvcihyKSxFPSExO0MmJihyLmtpbmQ9XCJjb25zdHJ1Y3RvclwiLHMuaGFkQ29uc3RydWN0b3ImJiF0aGlzLmhhc1BsdWdpbihcInR5cGVzY3JpcHRcIikmJnRoaXMucmFpc2UocC5EdXBsaWNhdGVDb25zdHJ1Y3Rvcix7YXQ6eH0pLEMmJnRoaXMuaGFzUGx1Z2luKFwidHlwZXNjcmlwdFwiKSYmZS5vdmVycmlkZSYmdGhpcy5yYWlzZShwLk92ZXJyaWRlT25Db25zdHJ1Y3Rvcix7YXQ6eH0pLHMuaGFkQ29uc3RydWN0b3I9ITAsRT1zLmhhZFN1cGVyQ2xhc3MpLHRoaXMucHVzaENsYXNzTWV0aG9kKHQsciwhMSwhMSxDLEUpfWVsc2UgaWYodGhpcy5pc0NsYXNzUHJvcGVydHkoKSlkP3RoaXMucHVzaENsYXNzUHJpdmF0ZVByb3BlcnR5KHQsaCk6dGhpcy5wdXNoQ2xhc3NQcm9wZXJ0eSh0LG8pO2Vsc2UgaWYoZiYmeC5uYW1lPT09XCJhc3luY1wiJiYhdGhpcy5pc0xpbmVUZXJtaW5hdG9yKCkpe3RoaXMucmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKHgpO2xldCBDPXRoaXMuZWF0KDU1KTt1Lm9wdGlvbmFsJiZ0aGlzLnVuZXhwZWN0ZWQoSSksYy5raW5kPVwibWV0aG9kXCI7bGV0IEU9dGhpcy5tYXRjaCgxMzYpO3RoaXMucGFyc2VDbGFzc0VsZW1lbnROYW1lKGMpLHRoaXMucGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycyh1KSxFP3RoaXMucHVzaENsYXNzUHJpdmF0ZU1ldGhvZCh0LG4sQywhMCk6KHRoaXMuaXNOb25zdGF0aWNDb25zdHJ1Y3RvcihyKSYmdGhpcy5yYWlzZShwLkNvbnN0cnVjdG9ySXNBc3luYyx7YXQ6ci5rZXl9KSx0aGlzLnB1c2hDbGFzc01ldGhvZCh0LHIsQywhMCwhMSwhMSkpfWVsc2UgaWYoZiYmKHgubmFtZT09PVwiZ2V0XCJ8fHgubmFtZT09PVwic2V0XCIpJiYhKHRoaXMubWF0Y2goNTUpJiZ0aGlzLmlzTGluZVRlcm1pbmF0b3IoKSkpe3RoaXMucmVzZXRQcmV2aW91c05vZGVUcmFpbGluZ0NvbW1lbnRzKHgpLGMua2luZD14Lm5hbWU7bGV0IEM9dGhpcy5tYXRjaCgxMzYpO3RoaXMucGFyc2VDbGFzc0VsZW1lbnROYW1lKHIpLEM/dGhpcy5wdXNoQ2xhc3NQcml2YXRlTWV0aG9kKHQsbiwhMSwhMSk6KHRoaXMuaXNOb25zdGF0aWNDb25zdHJ1Y3RvcihyKSYmdGhpcy5yYWlzZShwLkNvbnN0cnVjdG9ySXNBY2Nlc3Nvcix7YXQ6ci5rZXl9KSx0aGlzLnB1c2hDbGFzc01ldGhvZCh0LHIsITEsITEsITEsITEpKSx0aGlzLmNoZWNrR2V0dGVyU2V0dGVyUGFyYW1zKHIpfWVsc2UgaWYoZiYmeC5uYW1lPT09XCJhY2Nlc3NvclwiJiYhdGhpcy5pc0xpbmVUZXJtaW5hdG9yKCkpe3RoaXMuZXhwZWN0UGx1Z2luKFwiZGVjb3JhdG9yQXV0b0FjY2Vzc29yc1wiKSx0aGlzLnJlc2V0UHJldmlvdXNOb2RlVHJhaWxpbmdDb21tZW50cyh4KTtsZXQgQz10aGlzLm1hdGNoKDEzNik7dGhpcy5wYXJzZUNsYXNzRWxlbWVudE5hbWUobyksdGhpcy5wdXNoQ2xhc3NBY2Nlc3NvclByb3BlcnR5KHQsbCxDKX1lbHNlIHRoaXMuaXNMaW5lVGVybWluYXRvcigpP2Q/dGhpcy5wdXNoQ2xhc3NQcml2YXRlUHJvcGVydHkodCxoKTp0aGlzLnB1c2hDbGFzc1Byb3BlcnR5KHQsbyk6dGhpcy51bmV4cGVjdGVkKCl9cGFyc2VDbGFzc0VsZW1lbnROYW1lKHQpe2xldHt0eXBlOmUsdmFsdWU6c309dGhpcy5zdGF0ZTtpZigoZT09PTEzMHx8ZT09PTEzMSkmJnQuc3RhdGljJiZzPT09XCJwcm90b3R5cGVcIiYmdGhpcy5yYWlzZShwLlN0YXRpY1Byb3RvdHlwZSx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pLGU9PT0xMzYpe3M9PT1cImNvbnN0cnVjdG9yXCImJnRoaXMucmFpc2UocC5Db25zdHJ1Y3RvckNsYXNzUHJpdmF0ZUZpZWxkLHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7bGV0IGk9dGhpcy5wYXJzZVByaXZhdGVOYW1lKCk7cmV0dXJuIHQua2V5PWksaX1yZXR1cm4gdGhpcy5wYXJzZVByb3BlcnR5TmFtZSh0KX1wYXJzZUNsYXNzU3RhdGljQmxvY2sodCxlKXt2YXIgczt0aGlzLnNjb3BlLmVudGVyKDIwOCk7bGV0IGk9dGhpcy5zdGF0ZS5sYWJlbHM7dGhpcy5zdGF0ZS5sYWJlbHM9W10sdGhpcy5wcm9kUGFyYW0uZW50ZXIodGUpO2xldCByPWUuYm9keT1bXTt0aGlzLnBhcnNlQmxvY2tPck1vZHVsZUJsb2NrQm9keShyLHZvaWQgMCwhMSw4KSx0aGlzLnByb2RQYXJhbS5leGl0KCksdGhpcy5zY29wZS5leGl0KCksdGhpcy5zdGF0ZS5sYWJlbHM9aSx0LmJvZHkucHVzaCh0aGlzLmZpbmlzaE5vZGUoZSxcIlN0YXRpY0Jsb2NrXCIpKSwocz1lLmRlY29yYXRvcnMpIT1udWxsJiZzLmxlbmd0aCYmdGhpcy5yYWlzZShwLkRlY29yYXRvclN0YXRpY0Jsb2NrLHthdDplfSl9cHVzaENsYXNzUHJvcGVydHkodCxlKXshZS5jb21wdXRlZCYmKGUua2V5Lm5hbWU9PT1cImNvbnN0cnVjdG9yXCJ8fGUua2V5LnZhbHVlPT09XCJjb25zdHJ1Y3RvclwiKSYmdGhpcy5yYWlzZShwLkNvbnN0cnVjdG9yQ2xhc3NGaWVsZCx7YXQ6ZS5rZXl9KSx0LmJvZHkucHVzaCh0aGlzLnBhcnNlQ2xhc3NQcm9wZXJ0eShlKSl9cHVzaENsYXNzUHJpdmF0ZVByb3BlcnR5KHQsZSl7bGV0IHM9dGhpcy5wYXJzZUNsYXNzUHJpdmF0ZVByb3BlcnR5KGUpO3QuYm9keS5wdXNoKHMpLHRoaXMuY2xhc3NTY29wZS5kZWNsYXJlUHJpdmF0ZU5hbWUodGhpcy5nZXRQcml2YXRlTmFtZVNWKHMua2V5KSwwLHMua2V5LmxvYy5zdGFydCl9cHVzaENsYXNzQWNjZXNzb3JQcm9wZXJ0eSh0LGUscyl7aWYoIXMmJiFlLmNvbXB1dGVkKXtsZXQgcj1lLmtleTsoci5uYW1lPT09XCJjb25zdHJ1Y3RvclwifHxyLnZhbHVlPT09XCJjb25zdHJ1Y3RvclwiKSYmdGhpcy5yYWlzZShwLkNvbnN0cnVjdG9yQ2xhc3NGaWVsZCx7YXQ6cn0pfWxldCBpPXRoaXMucGFyc2VDbGFzc0FjY2Vzc29yUHJvcGVydHkoZSk7dC5ib2R5LnB1c2goaSkscyYmdGhpcy5jbGFzc1Njb3BlLmRlY2xhcmVQcml2YXRlTmFtZSh0aGlzLmdldFByaXZhdGVOYW1lU1YoaS5rZXkpLDAsaS5rZXkubG9jLnN0YXJ0KX1wdXNoQ2xhc3NNZXRob2QodCxlLHMsaSxyLG4pe3QuYm9keS5wdXNoKHRoaXMucGFyc2VNZXRob2QoZSxzLGkscixuLFwiQ2xhc3NNZXRob2RcIiwhMCkpfXB1c2hDbGFzc1ByaXZhdGVNZXRob2QodCxlLHMsaSl7bGV0IHI9dGhpcy5wYXJzZU1ldGhvZChlLHMsaSwhMSwhMSxcIkNsYXNzUHJpdmF0ZU1ldGhvZFwiLCEwKTt0LmJvZHkucHVzaChyKTtsZXQgbj1yLmtpbmQ9PT1cImdldFwiP3Iuc3RhdGljPzY6MjpyLmtpbmQ9PT1cInNldFwiP3Iuc3RhdGljPzU6MTowO3RoaXMuZGVjbGFyZUNsYXNzUHJpdmF0ZU1ldGhvZEluU2NvcGUocixuKX1kZWNsYXJlQ2xhc3NQcml2YXRlTWV0aG9kSW5TY29wZSh0LGUpe3RoaXMuY2xhc3NTY29wZS5kZWNsYXJlUHJpdmF0ZU5hbWUodGhpcy5nZXRQcml2YXRlTmFtZVNWKHQua2V5KSxlLHQua2V5LmxvYy5zdGFydCl9cGFyc2VQb3N0TWVtYmVyTmFtZU1vZGlmaWVycyh0KXt9cGFyc2VDbGFzc1ByaXZhdGVQcm9wZXJ0eSh0KXtyZXR1cm4gdGhpcy5wYXJzZUluaXRpYWxpemVyKHQpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHQsXCJDbGFzc1ByaXZhdGVQcm9wZXJ0eVwiKX1wYXJzZUNsYXNzUHJvcGVydHkodCl7cmV0dXJuIHRoaXMucGFyc2VJbml0aWFsaXplcih0KSx0aGlzLnNlbWljb2xvbigpLHRoaXMuZmluaXNoTm9kZSh0LFwiQ2xhc3NQcm9wZXJ0eVwiKX1wYXJzZUNsYXNzQWNjZXNzb3JQcm9wZXJ0eSh0KXtyZXR1cm4gdGhpcy5wYXJzZUluaXRpYWxpemVyKHQpLHRoaXMuc2VtaWNvbG9uKCksdGhpcy5maW5pc2hOb2RlKHQsXCJDbGFzc0FjY2Vzc29yUHJvcGVydHlcIil9cGFyc2VJbml0aWFsaXplcih0KXt0aGlzLnNjb3BlLmVudGVyKDgwKSx0aGlzLmV4cHJlc3Npb25TY29wZS5lbnRlcihocygpKSx0aGlzLnByb2RQYXJhbS5lbnRlcih0ZSksdC52YWx1ZT10aGlzLmVhdCgyOSk/dGhpcy5wYXJzZU1heWJlQXNzaWduQWxsb3dJbigpOm51bGwsdGhpcy5leHByZXNzaW9uU2NvcGUuZXhpdCgpLHRoaXMucHJvZFBhcmFtLmV4aXQoKSx0aGlzLnNjb3BlLmV4aXQoKX1wYXJzZUNsYXNzSWQodCxlLHMsaT04MzMxKXtpZihTKHRoaXMuc3RhdGUudHlwZSkpdC5pZD10aGlzLnBhcnNlSWRlbnRpZmllcigpLGUmJnRoaXMuZGVjbGFyZU5hbWVGcm9tSWRlbnRpZmllcih0LmlkLGkpO2Vsc2UgaWYoc3x8IWUpdC5pZD1udWxsO2Vsc2UgdGhyb3cgdGhpcy5yYWlzZShwLk1pc3NpbmdDbGFzc05hbWUse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KX1wYXJzZUNsYXNzU3VwZXIodCl7dC5zdXBlckNsYXNzPXRoaXMuZWF0KDgxKT90aGlzLnBhcnNlRXhwclN1YnNjcmlwdHMoKTpudWxsfXBhcnNlRXhwb3J0KHQsZSl7bGV0IHM9dGhpcy5wYXJzZU1heWJlSW1wb3J0UGhhc2UodCwhMCksaT10aGlzLm1heWJlUGFyc2VFeHBvcnREZWZhdWx0U3BlY2lmaWVyKHQscykscj0haXx8dGhpcy5lYXQoMTIpLG49ciYmdGhpcy5lYXRFeHBvcnRTdGFyKHQpLG89biYmdGhpcy5tYXliZVBhcnNlRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyKHQpLGg9ciYmKCFvfHx0aGlzLmVhdCgxMikpLGw9aXx8bjtpZihuJiYhbyl7aWYoaSYmdGhpcy51bmV4cGVjdGVkKCksZSl0aHJvdyB0aGlzLnJhaXNlKHAuVW5zdXBwb3J0ZWREZWNvcmF0b3JFeHBvcnQse2F0OnR9KTtyZXR1cm4gdGhpcy5wYXJzZUV4cG9ydEZyb20odCwhMCksdGhpcy5maW5pc2hOb2RlKHQsXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiKX1sZXQgYz10aGlzLm1heWJlUGFyc2VFeHBvcnROYW1lZFNwZWNpZmllcnModCk7aSYmciYmIW4mJiFjJiZ0aGlzLnVuZXhwZWN0ZWQobnVsbCw1KSxvJiZoJiZ0aGlzLnVuZXhwZWN0ZWQobnVsbCw5Nyk7bGV0IHU7aWYobHx8Yyl7aWYodT0hMSxlKXRocm93IHRoaXMucmFpc2UocC5VbnN1cHBvcnRlZERlY29yYXRvckV4cG9ydCx7YXQ6dH0pO3RoaXMucGFyc2VFeHBvcnRGcm9tKHQsbCl9ZWxzZSB1PXRoaXMubWF5YmVQYXJzZUV4cG9ydERlY2xhcmF0aW9uKHQpO2lmKGx8fGN8fHUpe3ZhciBmO2xldCBkPXQ7aWYodGhpcy5jaGVja0V4cG9ydChkLCEwLCExLCEhZC5zb3VyY2UpLCgoZj1kLmRlY2xhcmF0aW9uKT09bnVsbD92b2lkIDA6Zi50eXBlKT09PVwiQ2xhc3NEZWNsYXJhdGlvblwiKXRoaXMubWF5YmVUYWtlRGVjb3JhdG9ycyhlLGQuZGVjbGFyYXRpb24sZCk7ZWxzZSBpZihlKXRocm93IHRoaXMucmFpc2UocC5VbnN1cHBvcnRlZERlY29yYXRvckV4cG9ydCx7YXQ6dH0pO3JldHVybiB0aGlzLmZpbmlzaE5vZGUoZCxcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIil9aWYodGhpcy5lYXQoNjUpKXtsZXQgZD10LHg9dGhpcy5wYXJzZUV4cG9ydERlZmF1bHRFeHByZXNzaW9uKCk7aWYoZC5kZWNsYXJhdGlvbj14LHgudHlwZT09PVwiQ2xhc3NEZWNsYXJhdGlvblwiKXRoaXMubWF5YmVUYWtlRGVjb3JhdG9ycyhlLHgsZCk7ZWxzZSBpZihlKXRocm93IHRoaXMucmFpc2UocC5VbnN1cHBvcnRlZERlY29yYXRvckV4cG9ydCx7YXQ6dH0pO3JldHVybiB0aGlzLmNoZWNrRXhwb3J0KGQsITAsITApLHRoaXMuZmluaXNoTm9kZShkLFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIpfXRoaXMudW5leHBlY3RlZChudWxsLDUpfWVhdEV4cG9ydFN0YXIodCl7cmV0dXJuIHRoaXMuZWF0KDU1KX1tYXliZVBhcnNlRXhwb3J0RGVmYXVsdFNwZWNpZmllcih0LGUpe2lmKGV8fHRoaXMuaXNFeHBvcnREZWZhdWx0U3BlY2lmaWVyKCkpe3RoaXMuZXhwZWN0UGx1Z2luKFwiZXhwb3J0RGVmYXVsdEZyb21cIixlPT1udWxsP3ZvaWQgMDplLmxvYy5zdGFydCk7bGV0IHM9ZXx8dGhpcy5wYXJzZUlkZW50aWZpZXIoITApLGk9dGhpcy5zdGFydE5vZGVBdE5vZGUocyk7cmV0dXJuIGkuZXhwb3J0ZWQ9cyx0LnNwZWNpZmllcnM9W3RoaXMuZmluaXNoTm9kZShpLFwiRXhwb3J0RGVmYXVsdFNwZWNpZmllclwiKV0sITB9cmV0dXJuITF9bWF5YmVQYXJzZUV4cG9ydE5hbWVzcGFjZVNwZWNpZmllcih0KXtpZih0aGlzLmlzQ29udGV4dHVhbCg5Mykpe3Quc3BlY2lmaWVyc3x8KHQuc3BlY2lmaWVycz1bXSk7bGV0IGU9dGhpcy5zdGFydE5vZGVBdCh0aGlzLnN0YXRlLmxhc3RUb2tTdGFydExvYyk7cmV0dXJuIHRoaXMubmV4dCgpLGUuZXhwb3J0ZWQ9dGhpcy5wYXJzZU1vZHVsZUV4cG9ydE5hbWUoKSx0LnNwZWNpZmllcnMucHVzaCh0aGlzLmZpbmlzaE5vZGUoZSxcIkV4cG9ydE5hbWVzcGFjZVNwZWNpZmllclwiKSksITB9cmV0dXJuITF9bWF5YmVQYXJzZUV4cG9ydE5hbWVkU3BlY2lmaWVycyh0KXtpZih0aGlzLm1hdGNoKDUpKXt0LnNwZWNpZmllcnN8fCh0LnNwZWNpZmllcnM9W10pO2xldCBlPXQuZXhwb3J0S2luZD09PVwidHlwZVwiO3JldHVybiB0LnNwZWNpZmllcnMucHVzaCguLi50aGlzLnBhcnNlRXhwb3J0U3BlY2lmaWVycyhlKSksdC5zb3VyY2U9bnVsbCx0LmRlY2xhcmF0aW9uPW51bGwsdGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBc3NlcnRpb25zXCIpJiYodC5hc3NlcnRpb25zPVtdKSwhMH1yZXR1cm4hMX1tYXliZVBhcnNlRXhwb3J0RGVjbGFyYXRpb24odCl7cmV0dXJuIHRoaXMuc2hvdWxkUGFyc2VFeHBvcnREZWNsYXJhdGlvbigpPyh0LnNwZWNpZmllcnM9W10sdC5zb3VyY2U9bnVsbCx0aGlzLmhhc1BsdWdpbihcImltcG9ydEFzc2VydGlvbnNcIikmJih0LmFzc2VydGlvbnM9W10pLHQuZGVjbGFyYXRpb249dGhpcy5wYXJzZUV4cG9ydERlY2xhcmF0aW9uKHQpLCEwKTohMX1pc0FzeW5jRnVuY3Rpb24oKXtpZighdGhpcy5pc0NvbnRleHR1YWwoOTUpKXJldHVybiExO2xldCB0PXRoaXMubmV4dFRva2VuSW5MaW5lU3RhcnQoKTtyZXR1cm4gdGhpcy5pc1VucGFyc2VkQ29udGV4dHVhbCh0LFwiZnVuY3Rpb25cIil9cGFyc2VFeHBvcnREZWZhdWx0RXhwcmVzc2lvbigpe2xldCB0PXRoaXMuc3RhcnROb2RlKCk7aWYodGhpcy5tYXRjaCg2OCkpcmV0dXJuIHRoaXMubmV4dCgpLHRoaXMucGFyc2VGdW5jdGlvbih0LDUpO2lmKHRoaXMuaXNBc3luY0Z1bmN0aW9uKCkpcmV0dXJuIHRoaXMubmV4dCgpLHRoaXMubmV4dCgpLHRoaXMucGFyc2VGdW5jdGlvbih0LDEzKTtpZih0aGlzLm1hdGNoKDgwKSlyZXR1cm4gdGhpcy5wYXJzZUNsYXNzKHQsITAsITApO2lmKHRoaXMubWF0Y2goMjYpKXJldHVybiB0aGlzLmhhc1BsdWdpbihcImRlY29yYXRvcnNcIikmJnRoaXMuZ2V0UGx1Z2luT3B0aW9uKFwiZGVjb3JhdG9yc1wiLFwiZGVjb3JhdG9yc0JlZm9yZUV4cG9ydFwiKT09PSEwJiZ0aGlzLnJhaXNlKHAuRGVjb3JhdG9yQmVmb3JlRXhwb3J0LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksdGhpcy5wYXJzZUNsYXNzKHRoaXMubWF5YmVUYWtlRGVjb3JhdG9ycyh0aGlzLnBhcnNlRGVjb3JhdG9ycyghMSksdGhpcy5zdGFydE5vZGUoKSksITAsITApO2lmKHRoaXMubWF0Y2goNzUpfHx0aGlzLm1hdGNoKDc0KXx8dGhpcy5pc0xldCgpKXRocm93IHRoaXMucmFpc2UocC5VbnN1cHBvcnRlZERlZmF1bHRFeHBvcnQse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtsZXQgZT10aGlzLnBhcnNlTWF5YmVBc3NpZ25BbGxvd0luKCk7cmV0dXJuIHRoaXMuc2VtaWNvbG9uKCksZX1wYXJzZUV4cG9ydERlY2xhcmF0aW9uKHQpe3JldHVybiB0aGlzLm1hdGNoKDgwKT90aGlzLnBhcnNlQ2xhc3ModGhpcy5zdGFydE5vZGUoKSwhMCwhMSk6dGhpcy5wYXJzZVN0YXRlbWVudExpc3RJdGVtKCl9aXNFeHBvcnREZWZhdWx0U3BlY2lmaWVyKCl7bGV0e3R5cGU6dH09dGhpcy5zdGF0ZTtpZihTKHQpKXtpZih0PT09OTUmJiF0aGlzLnN0YXRlLmNvbnRhaW5zRXNjfHx0PT09OTkpcmV0dXJuITE7aWYoKHQ9PT0xMjh8fHQ9PT0xMjcpJiYhdGhpcy5zdGF0ZS5jb250YWluc0VzYyl7bGV0e3R5cGU6aX09dGhpcy5sb29rYWhlYWQoKTtpZihTKGkpJiZpIT09OTd8fGk9PT01KXJldHVybiB0aGlzLmV4cGVjdE9uZVBsdWdpbihbXCJmbG93XCIsXCJ0eXBlc2NyaXB0XCJdKSwhMX19ZWxzZSBpZighdGhpcy5tYXRjaCg2NSkpcmV0dXJuITE7bGV0IGU9dGhpcy5uZXh0VG9rZW5TdGFydCgpLHM9dGhpcy5pc1VucGFyc2VkQ29udGV4dHVhbChlLFwiZnJvbVwiKTtpZih0aGlzLmlucHV0LmNoYXJDb2RlQXQoZSk9PT00NHx8Uyh0aGlzLnN0YXRlLnR5cGUpJiZzKXJldHVybiEwO2lmKHRoaXMubWF0Y2goNjUpJiZzKXtsZXQgaT10aGlzLmlucHV0LmNoYXJDb2RlQXQodGhpcy5uZXh0VG9rZW5TdGFydFNpbmNlKGUrNCkpO3JldHVybiBpPT09MzR8fGk9PT0zOX1yZXR1cm4hMX1wYXJzZUV4cG9ydEZyb20odCxlKXt0aGlzLmVhdENvbnRleHR1YWwoOTcpPyh0LnNvdXJjZT10aGlzLnBhcnNlSW1wb3J0U291cmNlKCksdGhpcy5jaGVja0V4cG9ydCh0KSx0aGlzLm1heWJlUGFyc2VJbXBvcnRBdHRyaWJ1dGVzKHQpLHRoaXMuY2hlY2tKU09OTW9kdWxlSW1wb3J0KHQpKTplJiZ0aGlzLnVuZXhwZWN0ZWQoKSx0aGlzLnNlbWljb2xvbigpfXNob3VsZFBhcnNlRXhwb3J0RGVjbGFyYXRpb24oKXtsZXR7dHlwZTp0fT10aGlzLnN0YXRlO3JldHVybiB0PT09MjYmJih0aGlzLmV4cGVjdE9uZVBsdWdpbihbXCJkZWNvcmF0b3JzXCIsXCJkZWNvcmF0b3JzLWxlZ2FjeVwiXSksdGhpcy5oYXNQbHVnaW4oXCJkZWNvcmF0b3JzXCIpKT8odGhpcy5nZXRQbHVnaW5PcHRpb24oXCJkZWNvcmF0b3JzXCIsXCJkZWNvcmF0b3JzQmVmb3JlRXhwb3J0XCIpPT09ITAmJnRoaXMucmFpc2UocC5EZWNvcmF0b3JCZWZvcmVFeHBvcnQse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KSwhMCk6dD09PTc0fHx0PT09NzV8fHQ9PT02OHx8dD09PTgwfHx0aGlzLmlzTGV0KCl8fHRoaXMuaXNBc3luY0Z1bmN0aW9uKCl9Y2hlY2tFeHBvcnQodCxlLHMsaSl7aWYoZSl7dmFyIHI7aWYocyl7aWYodGhpcy5jaGVja0R1cGxpY2F0ZUV4cG9ydHModCxcImRlZmF1bHRcIiksdGhpcy5oYXNQbHVnaW4oXCJleHBvcnREZWZhdWx0RnJvbVwiKSl7dmFyIG47bGV0IG89dC5kZWNsYXJhdGlvbjtvLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmby5uYW1lPT09XCJmcm9tXCImJm8uZW5kLW8uc3RhcnQ9PT00JiYhKChuPW8uZXh0cmEpIT1udWxsJiZuLnBhcmVudGhlc2l6ZWQpJiZ0aGlzLnJhaXNlKHAuRXhwb3J0RGVmYXVsdEZyb21Bc0lkZW50aWZpZXIse2F0Om99KX19ZWxzZSBpZigocj10LnNwZWNpZmllcnMpIT1udWxsJiZyLmxlbmd0aClmb3IobGV0IG8gb2YgdC5zcGVjaWZpZXJzKXtsZXR7ZXhwb3J0ZWQ6aH09byxsPWgudHlwZT09PVwiSWRlbnRpZmllclwiP2gubmFtZTpoLnZhbHVlO2lmKHRoaXMuY2hlY2tEdXBsaWNhdGVFeHBvcnRzKG8sbCksIWkmJm8ubG9jYWwpe2xldHtsb2NhbDpjfT1vO2MudHlwZSE9PVwiSWRlbnRpZmllclwiP3RoaXMucmFpc2UocC5FeHBvcnRCaW5kaW5nSXNTdHJpbmcse2F0Om8sbG9jYWxOYW1lOmMudmFsdWUsZXhwb3J0TmFtZTpsfSk6KHRoaXMuY2hlY2tSZXNlcnZlZFdvcmQoYy5uYW1lLGMubG9jLnN0YXJ0LCEwLCExKSx0aGlzLnNjb3BlLmNoZWNrTG9jYWxFeHBvcnQoYykpfX1lbHNlIGlmKHQuZGVjbGFyYXRpb24pe2lmKHQuZGVjbGFyYXRpb24udHlwZT09PVwiRnVuY3Rpb25EZWNsYXJhdGlvblwifHx0LmRlY2xhcmF0aW9uLnR5cGU9PT1cIkNsYXNzRGVjbGFyYXRpb25cIil7bGV0IG89dC5kZWNsYXJhdGlvbi5pZDtpZighbyl0aHJvdyBuZXcgRXJyb3IoXCJBc3NlcnRpb24gZmFpbHVyZVwiKTt0aGlzLmNoZWNrRHVwbGljYXRlRXhwb3J0cyh0LG8ubmFtZSl9ZWxzZSBpZih0LmRlY2xhcmF0aW9uLnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cIilmb3IobGV0IG8gb2YgdC5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpdGhpcy5jaGVja0RlY2xhcmF0aW9uKG8uaWQpfX19Y2hlY2tEZWNsYXJhdGlvbih0KXtpZih0LnR5cGU9PT1cIklkZW50aWZpZXJcIil0aGlzLmNoZWNrRHVwbGljYXRlRXhwb3J0cyh0LHQubmFtZSk7ZWxzZSBpZih0LnR5cGU9PT1cIk9iamVjdFBhdHRlcm5cIilmb3IobGV0IGUgb2YgdC5wcm9wZXJ0aWVzKXRoaXMuY2hlY2tEZWNsYXJhdGlvbihlKTtlbHNlIGlmKHQudHlwZT09PVwiQXJyYXlQYXR0ZXJuXCIpZm9yKGxldCBlIG9mIHQuZWxlbWVudHMpZSYmdGhpcy5jaGVja0RlY2xhcmF0aW9uKGUpO2Vsc2UgdC50eXBlPT09XCJPYmplY3RQcm9wZXJ0eVwiP3RoaXMuY2hlY2tEZWNsYXJhdGlvbih0LnZhbHVlKTp0LnR5cGU9PT1cIlJlc3RFbGVtZW50XCI/dGhpcy5jaGVja0RlY2xhcmF0aW9uKHQuYXJndW1lbnQpOnQudHlwZT09PVwiQXNzaWdubWVudFBhdHRlcm5cIiYmdGhpcy5jaGVja0RlY2xhcmF0aW9uKHQubGVmdCl9Y2hlY2tEdXBsaWNhdGVFeHBvcnRzKHQsZSl7dGhpcy5leHBvcnRlZElkZW50aWZpZXJzLmhhcyhlKSYmKGU9PT1cImRlZmF1bHRcIj90aGlzLnJhaXNlKHAuRHVwbGljYXRlRGVmYXVsdEV4cG9ydCx7YXQ6dH0pOnRoaXMucmFpc2UocC5EdXBsaWNhdGVFeHBvcnQse2F0OnQsZXhwb3J0TmFtZTplfSkpLHRoaXMuZXhwb3J0ZWRJZGVudGlmaWVycy5hZGQoZSl9cGFyc2VFeHBvcnRTcGVjaWZpZXJzKHQpe2xldCBlPVtdLHM9ITA7Zm9yKHRoaXMuZXhwZWN0KDUpOyF0aGlzLmVhdCg4KTspe2lmKHMpcz0hMTtlbHNlIGlmKHRoaXMuZXhwZWN0KDEyKSx0aGlzLmVhdCg4KSlicmVhaztsZXQgaT10aGlzLmlzQ29udGV4dHVhbCgxMjgpLHI9dGhpcy5tYXRjaCgxMzEpLG49dGhpcy5zdGFydE5vZGUoKTtuLmxvY2FsPXRoaXMucGFyc2VNb2R1bGVFeHBvcnROYW1lKCksZS5wdXNoKHRoaXMucGFyc2VFeHBvcnRTcGVjaWZpZXIobixyLHQsaSkpfXJldHVybiBlfXBhcnNlRXhwb3J0U3BlY2lmaWVyKHQsZSxzLGkpe3JldHVybiB0aGlzLmVhdENvbnRleHR1YWwoOTMpP3QuZXhwb3J0ZWQ9dGhpcy5wYXJzZU1vZHVsZUV4cG9ydE5hbWUoKTplP3QuZXhwb3J0ZWQ9R2kodC5sb2NhbCk6dC5leHBvcnRlZHx8KHQuZXhwb3J0ZWQ9Vih0LmxvY2FsKSksdGhpcy5maW5pc2hOb2RlKHQsXCJFeHBvcnRTcGVjaWZpZXJcIil9cGFyc2VNb2R1bGVFeHBvcnROYW1lKCl7aWYodGhpcy5tYXRjaCgxMzEpKXtsZXQgdD10aGlzLnBhcnNlU3RyaW5nTGl0ZXJhbCh0aGlzLnN0YXRlLnZhbHVlKSxlPXQudmFsdWUubWF0Y2goZ3IpO3JldHVybiBlJiZ0aGlzLnJhaXNlKHAuTW9kdWxlRXhwb3J0TmFtZUhhc0xvbmVTdXJyb2dhdGUse2F0OnQsc3Vycm9nYXRlQ2hhckNvZGU6ZVswXS5jaGFyQ29kZUF0KDApfSksdH1yZXR1cm4gdGhpcy5wYXJzZUlkZW50aWZpZXIoITApfWlzSlNPTk1vZHVsZUltcG9ydCh0KXtyZXR1cm4gdC5hc3NlcnRpb25zIT1udWxsP3QuYXNzZXJ0aW9ucy5zb21lKCh7a2V5OmUsdmFsdWU6c30pPT5zLnZhbHVlPT09XCJqc29uXCImJihlLnR5cGU9PT1cIklkZW50aWZpZXJcIj9lLm5hbWU9PT1cInR5cGVcIjplLnZhbHVlPT09XCJ0eXBlXCIpKTohMX1jaGVja0ltcG9ydFJlZmxlY3Rpb24odCl7aWYodC5tb2R1bGUpe3ZhciBlOyh0LnNwZWNpZmllcnMubGVuZ3RoIT09MXx8dC5zcGVjaWZpZXJzWzBdLnR5cGUhPT1cIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIikmJnRoaXMucmFpc2UocC5JbXBvcnRSZWZsZWN0aW9uTm90QmluZGluZyx7YXQ6dC5zcGVjaWZpZXJzWzBdLmxvYy5zdGFydH0pLCgoZT10LmFzc2VydGlvbnMpPT1udWxsP3ZvaWQgMDplLmxlbmd0aCk+MCYmdGhpcy5yYWlzZShwLkltcG9ydFJlZmxlY3Rpb25IYXNBc3NlcnRpb24se2F0OnQuc3BlY2lmaWVyc1swXS5sb2Muc3RhcnR9KX19Y2hlY2tKU09OTW9kdWxlSW1wb3J0KHQpe2lmKHRoaXMuaXNKU09OTW9kdWxlSW1wb3J0KHQpJiZ0LnR5cGUhPT1cIkV4cG9ydEFsbERlY2xhcmF0aW9uXCIpe2xldHtzcGVjaWZpZXJzOmV9PXQ7aWYoZSE9bnVsbCl7bGV0IHM9ZS5maW5kKGk9PntsZXQgcjtpZihpLnR5cGU9PT1cIkV4cG9ydFNwZWNpZmllclwiP3I9aS5sb2NhbDppLnR5cGU9PT1cIkltcG9ydFNwZWNpZmllclwiJiYocj1pLmltcG9ydGVkKSxyIT09dm9pZCAwKXJldHVybiByLnR5cGU9PT1cIklkZW50aWZpZXJcIj9yLm5hbWUhPT1cImRlZmF1bHRcIjpyLnZhbHVlIT09XCJkZWZhdWx0XCJ9KTtzIT09dm9pZCAwJiZ0aGlzLnJhaXNlKHAuSW1wb3J0SlNPTkJpbmRpbmdOb3REZWZhdWx0LHthdDpzLmxvYy5zdGFydH0pfX19aXNQb3RlbnRpYWxJbXBvcnRQaGFzZSh0KXtyZXR1cm4hdCYmdGhpcy5pc0NvbnRleHR1YWwoMTI1KX1hcHBseUltcG9ydFBoYXNlKHQsZSxzLGkpe2V8fChzPT09XCJtb2R1bGVcIj8odGhpcy5leHBlY3RQbHVnaW4oXCJpbXBvcnRSZWZsZWN0aW9uXCIsaSksdC5tb2R1bGU9ITApOnRoaXMuaGFzUGx1Z2luKFwiaW1wb3J0UmVmbGVjdGlvblwiKSYmKHQubW9kdWxlPSExKSl9cGFyc2VNYXliZUltcG9ydFBoYXNlKHQsZSl7aWYoIXRoaXMuaXNQb3RlbnRpYWxJbXBvcnRQaGFzZShlKSlyZXR1cm4gdGhpcy5hcHBseUltcG9ydFBoYXNlKHQsZSxudWxsKSxudWxsO2xldCBzPXRoaXMucGFyc2VJZGVudGlmaWVyKCEwKSx7dHlwZTppfT10aGlzLnN0YXRlO3JldHVybihNKGkpP2khPT05N3x8dGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09MTAyOmkhPT0xMik/KHRoaXMucmVzZXRQcmV2aW91c0lkZW50aWZpZXJMZWFkaW5nQ29tbWVudHMocyksdGhpcy5hcHBseUltcG9ydFBoYXNlKHQsZSxzLm5hbWUscy5sb2Muc3RhcnQpLG51bGwpOih0aGlzLmFwcGx5SW1wb3J0UGhhc2UodCxlLG51bGwpLHMpfWlzUHJlY2VkaW5nSWRJbXBvcnRQaGFzZSh0KXtsZXR7dHlwZTplfT10aGlzLnN0YXRlO3JldHVybiBTKGUpP2UhPT05N3x8dGhpcy5sb29rYWhlYWRDaGFyQ29kZSgpPT09MTAyOmUhPT0xMn1wYXJzZUltcG9ydCh0KXtyZXR1cm4gdGhpcy5tYXRjaCgxMzEpP3RoaXMucGFyc2VJbXBvcnRTb3VyY2VBbmRBdHRyaWJ1dGVzKHQpOnRoaXMucGFyc2VJbXBvcnRTcGVjaWZpZXJzQW5kQWZ0ZXIodCx0aGlzLnBhcnNlTWF5YmVJbXBvcnRQaGFzZSh0LCExKSl9cGFyc2VJbXBvcnRTcGVjaWZpZXJzQW5kQWZ0ZXIodCxlKXt0LnNwZWNpZmllcnM9W107bGV0IGk9IXRoaXMubWF5YmVQYXJzZURlZmF1bHRJbXBvcnRTcGVjaWZpZXIodCxlKXx8dGhpcy5lYXQoMTIpLHI9aSYmdGhpcy5tYXliZVBhcnNlU3RhckltcG9ydFNwZWNpZmllcih0KTtyZXR1cm4gaSYmIXImJnRoaXMucGFyc2VOYW1lZEltcG9ydFNwZWNpZmllcnModCksdGhpcy5leHBlY3RDb250ZXh0dWFsKDk3KSx0aGlzLnBhcnNlSW1wb3J0U291cmNlQW5kQXR0cmlidXRlcyh0KX1wYXJzZUltcG9ydFNvdXJjZUFuZEF0dHJpYnV0ZXModCl7dmFyIGU7cmV0dXJuKGU9dC5zcGVjaWZpZXJzKSE9bnVsbHx8KHQuc3BlY2lmaWVycz1bXSksdC5zb3VyY2U9dGhpcy5wYXJzZUltcG9ydFNvdXJjZSgpLHRoaXMubWF5YmVQYXJzZUltcG9ydEF0dHJpYnV0ZXModCksdGhpcy5jaGVja0ltcG9ydFJlZmxlY3Rpb24odCksdGhpcy5jaGVja0pTT05Nb2R1bGVJbXBvcnQodCksdGhpcy5zZW1pY29sb24oKSx0aGlzLmZpbmlzaE5vZGUodCxcIkltcG9ydERlY2xhcmF0aW9uXCIpfXBhcnNlSW1wb3J0U291cmNlKCl7cmV0dXJuIHRoaXMubWF0Y2goMTMxKXx8dGhpcy51bmV4cGVjdGVkKCksdGhpcy5wYXJzZUV4cHJBdG9tKCl9cGFyc2VJbXBvcnRTcGVjaWZpZXJMb2NhbCh0LGUscyl7ZS5sb2NhbD10aGlzLnBhcnNlSWRlbnRpZmllcigpLHQuc3BlY2lmaWVycy5wdXNoKHRoaXMuZmluaXNoSW1wb3J0U3BlY2lmaWVyKGUscykpfWZpbmlzaEltcG9ydFNwZWNpZmllcih0LGUscz04MjAxKXtyZXR1cm4gdGhpcy5jaGVja0xWYWwodC5sb2NhbCx7aW46e3R5cGU6ZX0sYmluZGluZzpzfSksdGhpcy5maW5pc2hOb2RlKHQsZSl9cGFyc2VJbXBvcnRBdHRyaWJ1dGVzKCl7dGhpcy5leHBlY3QoNSk7bGV0IHQ9W10sZT1uZXcgU2V0O2Rve2lmKHRoaXMubWF0Y2goOCkpYnJlYWs7bGV0IHM9dGhpcy5zdGFydE5vZGUoKSxpPXRoaXMuc3RhdGUudmFsdWU7aWYoZS5oYXMoaSkmJnRoaXMucmFpc2UocC5Nb2R1bGVBdHRyaWJ1dGVzV2l0aER1cGxpY2F0ZUtleXMse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2Msa2V5Oml9KSxlLmFkZChpKSx0aGlzLm1hdGNoKDEzMSk/cy5rZXk9dGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoaSk6cy5rZXk9dGhpcy5wYXJzZUlkZW50aWZpZXIoITApLHRoaXMuZXhwZWN0KDE0KSwhdGhpcy5tYXRjaCgxMzEpKXRocm93IHRoaXMucmFpc2UocC5Nb2R1bGVBdHRyaWJ1dGVJbnZhbGlkVmFsdWUse2F0OnRoaXMuc3RhdGUuc3RhcnRMb2N9KTtzLnZhbHVlPXRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKHRoaXMuc3RhdGUudmFsdWUpLHQucHVzaCh0aGlzLmZpbmlzaE5vZGUocyxcIkltcG9ydEF0dHJpYnV0ZVwiKSl9d2hpbGUodGhpcy5lYXQoMTIpKTtyZXR1cm4gdGhpcy5leHBlY3QoOCksdH1wYXJzZU1vZHVsZUF0dHJpYnV0ZXMoKXtsZXQgdD1bXSxlPW5ldyBTZXQ7ZG97bGV0IHM9dGhpcy5zdGFydE5vZGUoKTtpZihzLmtleT10aGlzLnBhcnNlSWRlbnRpZmllcighMCkscy5rZXkubmFtZSE9PVwidHlwZVwiJiZ0aGlzLnJhaXNlKHAuTW9kdWxlQXR0cmlidXRlRGlmZmVyZW50RnJvbVR5cGUse2F0OnMua2V5fSksZS5oYXMocy5rZXkubmFtZSkmJnRoaXMucmFpc2UocC5Nb2R1bGVBdHRyaWJ1dGVzV2l0aER1cGxpY2F0ZUtleXMse2F0OnMua2V5LGtleTpzLmtleS5uYW1lfSksZS5hZGQocy5rZXkubmFtZSksdGhpcy5leHBlY3QoMTQpLCF0aGlzLm1hdGNoKDEzMSkpdGhyb3cgdGhpcy5yYWlzZShwLk1vZHVsZUF0dHJpYnV0ZUludmFsaWRWYWx1ZSx7YXQ6dGhpcy5zdGF0ZS5zdGFydExvY30pO3MudmFsdWU9dGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwodGhpcy5zdGF0ZS52YWx1ZSksdC5wdXNoKHRoaXMuZmluaXNoTm9kZShzLFwiSW1wb3J0QXR0cmlidXRlXCIpKX13aGlsZSh0aGlzLmVhdCgxMikpO3JldHVybiB0fW1heWJlUGFyc2VJbXBvcnRBdHRyaWJ1dGVzKHQpe2xldCBlLHM9ITE7aWYodGhpcy5tYXRjaCg3Nikpe2lmKHRoaXMuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJnRoaXMubG9va2FoZWFkQ2hhckNvZGUoKT09PTQwKXJldHVybjt0aGlzLm5leHQoKSx0aGlzLmhhc1BsdWdpbihcIm1vZHVsZUF0dHJpYnV0ZXNcIik/ZT10aGlzLnBhcnNlTW9kdWxlQXR0cmlidXRlcygpOih0aGlzLmV4cGVjdEltcG9ydEF0dHJpYnV0ZXNQbHVnaW4oKSxlPXRoaXMucGFyc2VJbXBvcnRBdHRyaWJ1dGVzKCkpLHM9ITB9ZWxzZSBpZih0aGlzLmlzQ29udGV4dHVhbCg5NCkmJiF0aGlzLmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKXRoaXMuaGFzUGx1Z2luKFwiaW1wb3J0QXR0cmlidXRlc1wiKT8odGhpcy5nZXRQbHVnaW5PcHRpb24oXCJpbXBvcnRBdHRyaWJ1dGVzXCIsXCJkZXByZWNhdGVkQXNzZXJ0U3ludGF4XCIpIT09ITAmJnRoaXMucmFpc2UocC5JbXBvcnRBdHRyaWJ1dGVzVXNlQXNzZXJ0LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSksdGhpcy5hZGRFeHRyYSh0LFwiZGVwcmVjYXRlZEFzc2VydFN5bnRheFwiLCEwKSk6dGhpcy5leHBlY3RPbmVQbHVnaW4oW1wiaW1wb3J0QXR0cmlidXRlc1wiLFwiaW1wb3J0QXNzZXJ0aW9uc1wiXSksdGhpcy5uZXh0KCksZT10aGlzLnBhcnNlSW1wb3J0QXR0cmlidXRlcygpO2Vsc2UgaWYodGhpcy5oYXNQbHVnaW4oXCJpbXBvcnRBdHRyaWJ1dGVzXCIpfHx0aGlzLmhhc1BsdWdpbihcImltcG9ydEFzc2VydGlvbnNcIikpZT1bXTtlbHNlIGlmKHRoaXMuaGFzUGx1Z2luKFwibW9kdWxlQXR0cmlidXRlc1wiKSllPVtdO2Vsc2UgcmV0dXJuOyFzJiZ0aGlzLmhhc1BsdWdpbihcImltcG9ydEFzc2VydGlvbnNcIik/dC5hc3NlcnRpb25zPWU6dC5hdHRyaWJ1dGVzPWV9bWF5YmVQYXJzZURlZmF1bHRJbXBvcnRTcGVjaWZpZXIodCxlKXtpZihlKXtsZXQgcz10aGlzLnN0YXJ0Tm9kZUF0Tm9kZShlKTtyZXR1cm4gcy5sb2NhbD1lLHQuc3BlY2lmaWVycy5wdXNoKHRoaXMuZmluaXNoSW1wb3J0U3BlY2lmaWVyKHMsXCJJbXBvcnREZWZhdWx0U3BlY2lmaWVyXCIpKSwhMH1lbHNlIGlmKE0odGhpcy5zdGF0ZS50eXBlKSlyZXR1cm4gdGhpcy5wYXJzZUltcG9ydFNwZWNpZmllckxvY2FsKHQsdGhpcy5zdGFydE5vZGUoKSxcIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIiksITA7cmV0dXJuITF9bWF5YmVQYXJzZVN0YXJJbXBvcnRTcGVjaWZpZXIodCl7aWYodGhpcy5tYXRjaCg1NSkpe2xldCBlPXRoaXMuc3RhcnROb2RlKCk7cmV0dXJuIHRoaXMubmV4dCgpLHRoaXMuZXhwZWN0Q29udGV4dHVhbCg5MyksdGhpcy5wYXJzZUltcG9ydFNwZWNpZmllckxvY2FsKHQsZSxcIkltcG9ydE5hbWVzcGFjZVNwZWNpZmllclwiKSwhMH1yZXR1cm4hMX1wYXJzZU5hbWVkSW1wb3J0U3BlY2lmaWVycyh0KXtsZXQgZT0hMDtmb3IodGhpcy5leHBlY3QoNSk7IXRoaXMuZWF0KDgpOyl7aWYoZSllPSExO2Vsc2V7aWYodGhpcy5lYXQoMTQpKXRocm93IHRoaXMucmFpc2UocC5EZXN0cnVjdHVyZU5hbWVkSW1wb3J0LHthdDp0aGlzLnN0YXRlLnN0YXJ0TG9jfSk7aWYodGhpcy5leHBlY3QoMTIpLHRoaXMuZWF0KDgpKWJyZWFrfWxldCBzPXRoaXMuc3RhcnROb2RlKCksaT10aGlzLm1hdGNoKDEzMSkscj10aGlzLmlzQ29udGV4dHVhbCgxMjgpO3MuaW1wb3J0ZWQ9dGhpcy5wYXJzZU1vZHVsZUV4cG9ydE5hbWUoKTtsZXQgbj10aGlzLnBhcnNlSW1wb3J0U3BlY2lmaWVyKHMsaSx0LmltcG9ydEtpbmQ9PT1cInR5cGVcInx8dC5pbXBvcnRLaW5kPT09XCJ0eXBlb2ZcIixyLHZvaWQgMCk7dC5zcGVjaWZpZXJzLnB1c2gobil9fXBhcnNlSW1wb3J0U3BlY2lmaWVyKHQsZSxzLGkscil7aWYodGhpcy5lYXRDb250ZXh0dWFsKDkzKSl0LmxvY2FsPXRoaXMucGFyc2VJZGVudGlmaWVyKCk7ZWxzZXtsZXR7aW1wb3J0ZWQ6bn09dDtpZihlKXRocm93IHRoaXMucmFpc2UocC5JbXBvcnRCaW5kaW5nSXNTdHJpbmcse2F0OnQsaW1wb3J0TmFtZTpuLnZhbHVlfSk7dGhpcy5jaGVja1Jlc2VydmVkV29yZChuLm5hbWUsdC5sb2Muc3RhcnQsITAsITApLHQubG9jYWx8fCh0LmxvY2FsPVYobikpfXJldHVybiB0aGlzLmZpbmlzaEltcG9ydFNwZWNpZmllcih0LFwiSW1wb3J0U3BlY2lmaWVyXCIscil9aXNUaGlzUGFyYW0odCl7cmV0dXJuIHQudHlwZT09PVwiSWRlbnRpZmllclwiJiZ0Lm5hbWU9PT1cInRoaXNcIn19LEZlPWNsYXNzIGV4dGVuZHMgUHR7Y29uc3RydWN0b3IodCxlKXt0PXhyKHQpLHN1cGVyKHQsZSksdGhpcy5vcHRpb25zPXQsdGhpcy5pbml0aWFsaXplU2NvcGVzKCksdGhpcy5wbHVnaW5zPWJyKHRoaXMub3B0aW9ucy5wbHVnaW5zKSx0aGlzLmZpbGVuYW1lPXQuc291cmNlRmlsZW5hbWV9Z2V0U2NvcGVIYW5kbGVyKCl7cmV0dXJuIGdlfXBhcnNlKCl7dGhpcy5lbnRlckluaXRpYWxTY29wZXMoKTtsZXQgdD10aGlzLnN0YXJ0Tm9kZSgpLGU9dGhpcy5zdGFydE5vZGUoKTtyZXR1cm4gdGhpcy5uZXh0VG9rZW4oKSx0LmVycm9ycz1udWxsLHRoaXMucGFyc2VUb3BMZXZlbCh0LGUpLHQuZXJyb3JzPXRoaXMuc3RhdGUuZXJyb3JzLHR9fTtmdW5jdGlvbiBicihhKXtsZXQgdD1uZXcgTWFwO2ZvcihsZXQgZSBvZiBhKXtsZXRbcyxpXT1BcnJheS5pc0FycmF5KGUpP2U6W2Use31dO3QuaGFzKHMpfHx0LnNldChzLGl8fHt9KX1yZXR1cm4gdH1mdW5jdGlvbiBBcihhLHQpe3ZhciBlO2lmKCgoZT10KT09bnVsbD92b2lkIDA6ZS5zb3VyY2VUeXBlKT09PVwidW5hbWJpZ3VvdXNcIil7dD1PYmplY3QuYXNzaWduKHt9LHQpO3RyeXt0LnNvdXJjZVR5cGU9XCJtb2R1bGVcIjtsZXQgcz1tZSh0LGEpLGk9cy5wYXJzZSgpO2lmKHMuc2F3VW5hbWJpZ3VvdXNFU00pcmV0dXJuIGk7aWYocy5hbWJpZ3VvdXNTY3JpcHREaWZmZXJlbnRBc3QpdHJ5e3JldHVybiB0LnNvdXJjZVR5cGU9XCJzY3JpcHRcIixtZSh0LGEpLnBhcnNlKCl9Y2F0Y2h7fWVsc2UgaS5wcm9ncmFtLnNvdXJjZVR5cGU9XCJzY3JpcHRcIjtyZXR1cm4gaX1jYXRjaChzKXt0cnl7cmV0dXJuIHQuc291cmNlVHlwZT1cInNjcmlwdFwiLG1lKHQsYSkucGFyc2UoKX1jYXRjaHt9dGhyb3cgc319ZWxzZSByZXR1cm4gbWUodCxhKS5wYXJzZSgpfWZ1bmN0aW9uIFNyKGEsdCl7bGV0IGU9bWUodCxhKTtyZXR1cm4gZS5vcHRpb25zLnN0cmljdE1vZGUmJihlLnN0YXRlLnN0cmljdD0hMCksZS5nZXRFeHByZXNzaW9uKCl9ZnVuY3Rpb24gd3IoYSl7bGV0IHQ9e307Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKGEpKXRbZV09XyhhW2VdKTtyZXR1cm4gdH12YXIgQ3I9d3IoeGkpO2Z1bmN0aW9uIG1lKGEsdCl7bGV0IGU9RmU7cmV0dXJuIGEhPW51bGwmJmEucGx1Z2lucyYmKG1yKGEucGx1Z2lucyksZT1FcihhLnBsdWdpbnMpKSxuZXcgZShhLHQpfXZhciBHdD17fTtmdW5jdGlvbiBFcihhKXtsZXQgdD15ci5maWx0ZXIoaT0+ayhhLGkpKSxlPXQuam9pbihcIi9cIikscz1HdFtlXTtpZighcyl7cz1GZTtmb3IobGV0IGkgb2YgdClzPWZzW2ldKHMpO0d0W2VdPXN9cmV0dXJuIHN9UmUucGFyc2U9QXI7UmUucGFyc2VFeHByZXNzaW9uPVNyO1JlLnRva1R5cGVzPUNyfSk7dmFyIE5zPUJ0KEc9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtHLmV4dHJhY3Q9X3I7Ry5wYXJzZT1qcjtHLnBhcnNlV2l0aENvbW1lbnRzPUlzO0cucHJpbnQ9JHI7Ry5zdHJpcD1Vcjt2YXIgTXI9L1xcKlxcLyQvLE9yPS9eXFwvXFwqXFwqPy8sQ3M9L15cXHMqKFxcL1xcKlxcKj8oLnxcXHI/XFxuKSo/XFwqXFwvKS8sRnI9LyhefFxccyspXFwvXFwvKFteXFxyXFxuXSopL2csQXM9L14oXFxyP1xcbikrLyxCcj0vKD86XnxcXHI/XFxuKSAqKEBbXlxcclxcbl0qPykgKlxccj9cXG4gKig/IVteQFxcclxcbl0qXFwvXFwvW15dKikoW15AXFxyXFxuXFxzXVteQFxcclxcbl0rPykgKlxccj9cXG4vZyxTcz0vKD86XnxcXHI/XFxuKSAqQChcXFMrKSAqKFteXFxyXFxuXSopL2csUnI9LyhcXHI/XFxufF4pICpcXCogPy9nLEVzPVtdO2Z1bmN0aW9uIF9yKGEpe2xldCB0PWEubWF0Y2goQ3MpO3JldHVybiB0P3RbMF0udHJpbUxlZnQoKTpcIlwifWZ1bmN0aW9uIFVyKGEpe2xldCB0PWEubWF0Y2goQ3MpO3JldHVybiB0JiZ0WzBdP2Euc3Vic3RyaW5nKHRbMF0ubGVuZ3RoKTphfWZ1bmN0aW9uIGpyKGEpe3JldHVybiBJcyhhKS5wcmFnbWFzfWZ1bmN0aW9uIElzKGEpe2xldCB0PWBcbmA7YT1hLnJlcGxhY2UoT3IsXCJcIikucmVwbGFjZShNcixcIlwiKS5yZXBsYWNlKFJyLFwiJDFcIik7bGV0IGU9XCJcIjtmb3IoO2UhPT1hOyllPWEsYT1hLnJlcGxhY2UoQnIsYCR7dH0kMSAkMiR7dH1gKTthPWEucmVwbGFjZShBcyxcIlwiKS50cmltUmlnaHQoKTtsZXQgcz1PYmplY3QuY3JlYXRlKG51bGwpLGk9YS5yZXBsYWNlKFNzLFwiXCIpLnJlcGxhY2UoQXMsXCJcIikudHJpbVJpZ2h0KCkscjtmb3IoO3I9U3MuZXhlYyhhKTspe2xldCBuPXJbMl0ucmVwbGFjZShGcixcIlwiKTt0eXBlb2Ygc1tyWzFdXT09XCJzdHJpbmdcInx8QXJyYXkuaXNBcnJheShzW3JbMV1dKT9zW3JbMV1dPUVzLmNvbmNhdChzW3JbMV1dLG4pOnNbclsxXV09bn1yZXR1cm57Y29tbWVudHM6aSxwcmFnbWFzOnN9fWZ1bmN0aW9uICRyKHtjb21tZW50czphPVwiXCIscHJhZ21hczp0PXt9fSl7bGV0IGU9YFxuYCxzPVwiLyoqXCIsaT1cIiAqXCIscj1cIiAqL1wiLG49T2JqZWN0LmtleXModCksbz1uLm1hcChsPT53cyhsLHRbbF0pKS5yZWR1Y2UoKGwsYyk9PmwuY29uY2F0KGMpLFtdKS5tYXAobD0+YCR7aX0gJHtsfSR7ZX1gKS5qb2luKFwiXCIpO2lmKCFhKXtpZihuLmxlbmd0aD09PTApcmV0dXJuXCJcIjtpZihuLmxlbmd0aD09PTEmJiFBcnJheS5pc0FycmF5KHRbblswXV0pKXtsZXQgbD10W25bMF1dO3JldHVybmAke3N9ICR7d3MoblswXSxsKVswXX0ke3J9YH19bGV0IGg9YS5zcGxpdChlKS5tYXAobD0+YCR7aX0gJHtsfWApLmpvaW4oZSkrZTtyZXR1cm4gcytlKyhhP2g6XCJcIikrKGEmJm4ubGVuZ3RoP2krZTpcIlwiKStvK3J9ZnVuY3Rpb24gd3MoYSx0KXtyZXR1cm4gRXMuY29uY2F0KHQpLm1hcChlPT5gQCR7YX0gJHtlfWAudHJpbSgpKX19KTt2YXIgRnQ9e307c2koRnQse3BhcnNlcnM6KCk9PmRhfSk7dmFyIHplPXFlKGt0KCksMSk7ZnVuY3Rpb24gSXIoYSl7bGV0IHQ9W107Zm9yKGxldCBlIG9mIGEpdHJ5e3JldHVybiBlKCl9Y2F0Y2gocyl7dC5wdXNoKHMpfXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiQWxsIGNvbWJpbmF0aW9ucyBmYWlsZWRcIikse2Vycm9yczp0fSl9dmFyIG1zPUlyO2Z1bmN0aW9uIE5yKGEpe2lmKCFhLnN0YXJ0c1dpdGgoXCIjIVwiKSlyZXR1cm5cIlwiO2xldCB0PWEuaW5kZXhPZihgXG5gKTtyZXR1cm4gdD09PS0xP2E6YS5zbGljZSgwLHQpfXZhciBfZT1OcjtmdW5jdGlvbiBrcihhLHQpe2lmKHQ9PT0hMSlyZXR1cm4hMTtpZihhLmNoYXJBdCh0KT09PVwiL1wiJiZhLmNoYXJBdCh0KzEpPT09XCIqXCIpe2ZvcihsZXQgZT10KzI7ZTxhLmxlbmd0aDsrK2UpaWYoYS5jaGFyQXQoZSk9PT1cIipcIiYmYS5jaGFyQXQoZSsxKT09PVwiL1wiKXJldHVybiBlKzJ9cmV0dXJuIHR9dmFyIHlzPWtyO2Z1bmN0aW9uIHZyKGEsdCxlKXtsZXQgcz0hIShlIT1udWxsJiZlLmJhY2t3YXJkcyk7aWYodD09PSExKXJldHVybiExO2xldCBpPWEuY2hhckF0KHQpO2lmKHMpe2lmKGEuY2hhckF0KHQtMSk9PT1cIlxcclwiJiZpPT09YFxuYClyZXR1cm4gdC0yO2lmKGk9PT1gXG5gfHxpPT09XCJcXHJcInx8aT09PVwiXFx1MjAyOFwifHxpPT09XCJcXHUyMDI5XCIpcmV0dXJuIHQtMX1lbHNle2lmKGk9PT1cIlxcclwiJiZhLmNoYXJBdCh0KzEpPT09YFxuYClyZXR1cm4gdCsyO2lmKGk9PT1gXG5gfHxpPT09XCJcXHJcInx8aT09PVwiXFx1MjAyOFwifHxpPT09XCJcXHUyMDI5XCIpcmV0dXJuIHQrMX1yZXR1cm4gdH12YXIgeHM9dnI7ZnVuY3Rpb24gVWUoYSl7cmV0dXJuKHQsZSxzKT0+e2xldCBpPSEhKHMhPW51bGwmJnMuYmFja3dhcmRzKTtpZihlPT09ITEpcmV0dXJuITE7bGV0e2xlbmd0aDpyfT10LG49ZTtmb3IoO24+PTAmJm48cjspe2xldCBvPXQuY2hhckF0KG4pO2lmKGEgaW5zdGFuY2VvZiBSZWdFeHApe2lmKCFhLnRlc3QobykpcmV0dXJuIG59ZWxzZSBpZighYS5pbmNsdWRlcyhvKSlyZXR1cm4gbjtpP24tLTpuKyt9cmV0dXJuIG49PT0tMXx8bj09PXI/bjohMX19dmFyIEVhPVVlKC9cXHMvKSxQcz1VZShcIiBcdFwiKSxJYT1VZShcIiw7IFx0XCIpLGdzPVVlKC9bXlxcblxccl0vKTtmdW5jdGlvbiBMcihhLHQpe3JldHVybiB0PT09ITE/ITE6YS5jaGFyQXQodCk9PT1cIi9cIiYmYS5jaGFyQXQodCsxKT09PVwiL1wiP2dzKGEsdCk6dH12YXIgVHM9THI7ZnVuY3Rpb24gRHIoYSx0KXtsZXQgZT1udWxsLHM9dDtmb3IoO3MhPT1lOyllPXMscz1QcyhhLHMpLHM9eXMoYSxzKSxzPVRzKGEscykscz14cyhhLHMpO3JldHVybiBzfXZhciBicz1Ecjt2YXIgbmU9cWUoTnMoKSwxKTtmdW5jdGlvbiBWcihhKXtsZXQgdD1fZShhKTt0JiYoYT1hLnNsaWNlKHQubGVuZ3RoKzEpKTtsZXQgZT0oMCxuZS5leHRyYWN0KShhKSx7cHJhZ21hczpzLGNvbW1lbnRzOml9PSgwLG5lLnBhcnNlV2l0aENvbW1lbnRzKShlKTtyZXR1cm57c2hlYmFuZzp0LHRleHQ6YSxwcmFnbWFzOnMsY29tbWVudHM6aX19ZnVuY3Rpb24ga3MoYSl7bGV0e3ByYWdtYXM6dH09VnIoYSk7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LFwicHJldHRpZXJcIil8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LFwiZm9ybWF0XCIpfWZ1bmN0aW9uIHpyKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aD4wfXZhciBZPXpyO2Z1bmN0aW9uIEQoYSl7dmFyIHM7bGV0IHQ9YS5yYW5nZT9hLnJhbmdlWzBdOmEuc3RhcnQsZT0oKHM9YS5kZWNsYXJhdGlvbik9PW51bGw/dm9pZCAwOnMuZGVjb3JhdG9ycyk/P2EuZGVjb3JhdG9ycztyZXR1cm4gWShlKT9NYXRoLm1pbihEKGVbMF0pLHQpOnR9ZnVuY3Rpb24gQihhKXtyZXR1cm4gYS5yYW5nZT9hLnJhbmdlWzFdOmEuZW5kfWZ1bmN0aW9uIEtyKGEpe3JldHVybiBhPXR5cGVvZiBhPT1cImZ1bmN0aW9uXCI/e3BhcnNlOmF9OmEse2FzdEZvcm1hdDpcImVzdHJlZVwiLGhhc1ByYWdtYTprcyxsb2NTdGFydDpELGxvY0VuZDpCLC4uLmF9fXZhciBvZT1LcjtmdW5jdGlvbiBxcihhLHQpe2xldCBlPW5ldyBTeW50YXhFcnJvcihhK1wiIChcIit0LmxvYy5zdGFydC5saW5lK1wiOlwiK3QubG9jLnN0YXJ0LmNvbHVtbitcIilcIik7cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx0KX12YXIgamU9cXI7ZnVuY3Rpb24gSHIoYSl7bGV0e21lc3NhZ2U6dCxsb2M6ZX09YTtyZXR1cm4gamUodC5yZXBsYWNlKC8gXFwoLipcXCkkLyxcIlwiKSx7bG9jOntzdGFydDp7bGluZTplP2UubGluZTowLGNvbHVtbjplP2UuY29sdW1uKzE6MH19LGNhdXNlOmF9KX12YXIgYmU9SHI7dmFyIFdyPShhLHQsZSk9PntpZighKGEmJnQ9PW51bGwpKXJldHVybiBBcnJheS5pc0FycmF5KHQpfHx0eXBlb2YgdD09XCJzdHJpbmdcIj90W2U8MD90Lmxlbmd0aCtlOmVdOnQuYXQoZSl9LHZ0PVdyO2Z1bmN0aW9uIEpyKGEpe3JldHVybiBhPW5ldyBTZXQoYSksdD0+YS5oYXModD09bnVsbD92b2lkIDA6dC50eXBlKX12YXIgdnM9SnI7dmFyIFhyPXZzKFtcIkJsb2NrXCIsXCJDb21tZW50QmxvY2tcIixcIk11bHRpTGluZVwiXSksQWU9WHI7ZnVuY3Rpb24gR3IoYSl7cmV0dXJuIEFlKGEpJiZhLnZhbHVlWzBdPT09XCIqXCImJi9AKD86dHlwZXxzYXRpc2ZpZXMpXFxiLy50ZXN0KGEudmFsdWUpfXZhciBMcz1HcjtmdW5jdGlvbiBZcihhKXtsZXQgdD1gKiR7YS52YWx1ZX0qYC5zcGxpdChgXG5gKTtyZXR1cm4gdC5sZW5ndGg+MSYmdC5ldmVyeShlPT5lLnRyaW1TdGFydCgpWzBdPT09XCIqXCIpfXZhciBMdD1Zcjt2YXIgU2U9bnVsbDtmdW5jdGlvbiB3ZShhKXtpZihTZSE9PW51bGwmJnR5cGVvZiBTZS5wcm9wZXJ0eSl7bGV0IHQ9U2U7cmV0dXJuIFNlPXdlLnByb3RvdHlwZT1udWxsLHR9cmV0dXJuIFNlPXdlLnByb3RvdHlwZT1hPz9PYmplY3QuY3JlYXRlKG51bGwpLG5ldyB3ZX12YXIgUXI9MTA7Zm9yKGxldCBhPTA7YTw9UXI7YSsrKXdlKCk7ZnVuY3Rpb24gRHQoYSl7cmV0dXJuIHdlKGEpfWZ1bmN0aW9uIFpyKGEsdD1cInR5cGVcIil7RHQoYSk7ZnVuY3Rpb24gZShzKXtsZXQgaT1zW3RdLHI9YVtpXTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihgTWlzc2luZyB2aXNpdG9yIGtleXMgZm9yICcke2l9Jy5gKSx7bm9kZTpzfSk7cmV0dXJuIHJ9cmV0dXJuIGV9dmFyIERzPVpyO3ZhciBNcz17QXJyYXlFeHByZXNzaW9uOltcImVsZW1lbnRzXCJdLEFzc2lnbm1lbnRFeHByZXNzaW9uOltcImxlZnRcIixcInJpZ2h0XCJdLEJpbmFyeUV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sSW50ZXJwcmV0ZXJEaXJlY3RpdmU6W10sRGlyZWN0aXZlOltcInZhbHVlXCJdLERpcmVjdGl2ZUxpdGVyYWw6W10sQmxvY2tTdGF0ZW1lbnQ6W1wiZGlyZWN0aXZlc1wiLFwiYm9keVwiXSxCcmVha1N0YXRlbWVudDpbXCJsYWJlbFwiXSxDYWxsRXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sQ2F0Y2hDbGF1c2U6W1wicGFyYW1cIixcImJvZHlcIl0sQ29uZGl0aW9uYWxFeHByZXNzaW9uOltcInRlc3RcIixcImNvbnNlcXVlbnRcIixcImFsdGVybmF0ZVwiXSxDb250aW51ZVN0YXRlbWVudDpbXCJsYWJlbFwiXSxEZWJ1Z2dlclN0YXRlbWVudDpbXSxEb1doaWxlU3RhdGVtZW50OltcInRlc3RcIixcImJvZHlcIl0sRW1wdHlTdGF0ZW1lbnQ6W10sRXhwcmVzc2lvblN0YXRlbWVudDpbXCJleHByZXNzaW9uXCJdLEZpbGU6W1wicHJvZ3JhbVwiXSxGb3JJblN0YXRlbWVudDpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm9keVwiXSxGb3JTdGF0ZW1lbnQ6W1wiaW5pdFwiLFwidGVzdFwiLFwidXBkYXRlXCIsXCJib2R5XCJdLEZ1bmN0aW9uRGVjbGFyYXRpb246W1wiaWRcIixcInBhcmFtc1wiLFwiYm9keVwiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInByZWRpY2F0ZVwiXSxGdW5jdGlvbkV4cHJlc3Npb246W1wiaWRcIixcInBhcmFtc1wiLFwiYm9keVwiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIl0sSWRlbnRpZmllcjpbXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxJZlN0YXRlbWVudDpbXCJ0ZXN0XCIsXCJjb25zZXF1ZW50XCIsXCJhbHRlcm5hdGVcIl0sTGFiZWxlZFN0YXRlbWVudDpbXCJsYWJlbFwiLFwiYm9keVwiXSxTdHJpbmdMaXRlcmFsOltdLE51bWVyaWNMaXRlcmFsOltdLE51bGxMaXRlcmFsOltdLEJvb2xlYW5MaXRlcmFsOltdLFJlZ0V4cExpdGVyYWw6W10sTG9naWNhbEV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLE5ld0V4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFByb2dyYW06W1wiZGlyZWN0aXZlc1wiLFwiYm9keVwiXSxPYmplY3RFeHByZXNzaW9uOltcInByb3BlcnRpZXNcIl0sT2JqZWN0TWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxPYmplY3RQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJkZWNvcmF0b3JzXCJdLFJlc3RFbGVtZW50OltcImFyZ3VtZW50XCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxSZXR1cm5TdGF0ZW1lbnQ6W1wiYXJndW1lbnRcIl0sU2VxdWVuY2VFeHByZXNzaW9uOltcImV4cHJlc3Npb25zXCJdLFBhcmVudGhlc2l6ZWRFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIl0sU3dpdGNoQ2FzZTpbXCJ0ZXN0XCIsXCJjb25zZXF1ZW50XCJdLFN3aXRjaFN0YXRlbWVudDpbXCJkaXNjcmltaW5hbnRcIixcImNhc2VzXCJdLFRoaXNFeHByZXNzaW9uOltdLFRocm93U3RhdGVtZW50OltcImFyZ3VtZW50XCJdLFRyeVN0YXRlbWVudDpbXCJibG9ja1wiLFwiaGFuZGxlclwiLFwiZmluYWxpemVyXCJdLFVuYXJ5RXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxVcGRhdGVFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLFZhcmlhYmxlRGVjbGFyYXRpb246W1wiZGVjbGFyYXRpb25zXCJdLFZhcmlhYmxlRGVjbGFyYXRvcjpbXCJpZFwiLFwiaW5pdFwiXSxXaGlsZVN0YXRlbWVudDpbXCJ0ZXN0XCIsXCJib2R5XCJdLFdpdGhTdGF0ZW1lbnQ6W1wib2JqZWN0XCIsXCJib2R5XCJdLEFzc2lnbm1lbnRQYXR0ZXJuOltcImxlZnRcIixcInJpZ2h0XCIsXCJkZWNvcmF0b3JzXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxBcnJheVBhdHRlcm46W1wiZWxlbWVudHNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLEFycm93RnVuY3Rpb25FeHByZXNzaW9uOltcInBhcmFtc1wiLFwiYm9keVwiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInByZWRpY2F0ZVwiXSxDbGFzc0JvZHk6W1wiYm9keVwiXSxDbGFzc0V4cHJlc3Npb246W1wiaWRcIixcImJvZHlcIixcInN1cGVyQ2xhc3NcIixcIm1peGluc1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVyVHlwZVBhcmFtZXRlcnNcIixcImltcGxlbWVudHNcIixcImRlY29yYXRvcnNcIixcInN1cGVyVHlwZUFyZ3VtZW50c1wiXSxDbGFzc0RlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCIsXCJzdXBlckNsYXNzXCIsXCJtaXhpbnNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJzdXBlclR5cGVQYXJhbWV0ZXJzXCIsXCJpbXBsZW1lbnRzXCIsXCJkZWNvcmF0b3JzXCIsXCJzdXBlclR5cGVBcmd1bWVudHNcIl0sRXhwb3J0QWxsRGVjbGFyYXRpb246W1wic291cmNlXCIsXCJhdHRyaWJ1dGVzXCIsXCJhc3NlcnRpb25zXCIsXCJleHBvcnRlZFwiXSxFeHBvcnREZWZhdWx0RGVjbGFyYXRpb246W1wiZGVjbGFyYXRpb25cIl0sRXhwb3J0TmFtZWREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiLFwic3BlY2lmaWVyc1wiLFwic291cmNlXCIsXCJhdHRyaWJ1dGVzXCIsXCJhc3NlcnRpb25zXCJdLEV4cG9ydFNwZWNpZmllcjpbXCJsb2NhbFwiLFwiZXhwb3J0ZWRcIl0sRm9yT2ZTdGF0ZW1lbnQ6W1wibGVmdFwiLFwicmlnaHRcIixcImJvZHlcIl0sSW1wb3J0RGVjbGFyYXRpb246W1wic3BlY2lmaWVyc1wiLFwic291cmNlXCIsXCJhdHRyaWJ1dGVzXCIsXCJhc3NlcnRpb25zXCJdLEltcG9ydERlZmF1bHRTcGVjaWZpZXI6W1wibG9jYWxcIl0sSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOltcImxvY2FsXCJdLEltcG9ydFNwZWNpZmllcjpbXCJsb2NhbFwiLFwiaW1wb3J0ZWRcIl0sTWV0YVByb3BlcnR5OltcIm1ldGFcIixcInByb3BlcnR5XCJdLENsYXNzTWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxPYmplY3RQYXR0ZXJuOltcInByb3BlcnRpZXNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLFNwcmVhZEVsZW1lbnQ6W1wiYXJndW1lbnRcIl0sU3VwZXI6W10sVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOltcInRhZ1wiLFwicXVhc2lcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFRlbXBsYXRlRWxlbWVudDpbXSxUZW1wbGF0ZUxpdGVyYWw6W1wicXVhc2lzXCIsXCJleHByZXNzaW9uc1wiXSxZaWVsZEV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sQXdhaXRFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLEltcG9ydDpbXSxCaWdJbnRMaXRlcmFsOltdLEV4cG9ydE5hbWVzcGFjZVNwZWNpZmllcjpbXCJleHBvcnRlZFwiXSxPcHRpb25hbE1lbWJlckV4cHJlc3Npb246W1wib2JqZWN0XCIsXCJwcm9wZXJ0eVwiXSxPcHRpb25hbENhbGxFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxDbGFzc1Byb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCIsXCJ2YXJpYW5jZVwiXSxDbGFzc0FjY2Vzc29yUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sQ2xhc3NQcml2YXRlUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwiZGVjb3JhdG9yc1wiLFwidHlwZUFubm90YXRpb25cIixcInZhcmlhbmNlXCJdLENsYXNzUHJpdmF0ZU1ldGhvZDpbXCJrZXlcIixcInBhcmFtc1wiLFwiYm9keVwiLFwiZGVjb3JhdG9yc1wiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIl0sUHJpdmF0ZU5hbWU6W1wiaWRcIl0sU3RhdGljQmxvY2s6W1wiYm9keVwiXSxBbnlUeXBlQW5ub3RhdGlvbjpbXSxBcnJheVR5cGVBbm5vdGF0aW9uOltcImVsZW1lbnRUeXBlXCJdLEJvb2xlYW5UeXBlQW5ub3RhdGlvbjpbXSxCb29sZWFuTGl0ZXJhbFR5cGVBbm5vdGF0aW9uOltdLE51bGxMaXRlcmFsVHlwZUFubm90YXRpb246W10sQ2xhc3NJbXBsZW1lbnRzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxEZWNsYXJlQ2xhc3M6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJleHRlbmRzXCIsXCJtaXhpbnNcIixcImltcGxlbWVudHNcIixcImJvZHlcIl0sRGVjbGFyZUZ1bmN0aW9uOltcImlkXCIsXCJwcmVkaWNhdGVcIl0sRGVjbGFyZUludGVyZmFjZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sRGVjbGFyZU1vZHVsZTpbXCJpZFwiLFwiYm9keVwiXSxEZWNsYXJlTW9kdWxlRXhwb3J0czpbXCJ0eXBlQW5ub3RhdGlvblwiXSxEZWNsYXJlVHlwZUFsaWFzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicmlnaHRcIl0sRGVjbGFyZU9wYXF1ZVR5cGU6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJzdXBlcnR5cGVcIl0sRGVjbGFyZVZhcmlhYmxlOltcImlkXCJdLERlY2xhcmVFeHBvcnREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiLFwic3BlY2lmaWVyc1wiLFwic291cmNlXCJdLERlY2xhcmVFeHBvcnRBbGxEZWNsYXJhdGlvbjpbXCJzb3VyY2VcIl0sRGVjbGFyZWRQcmVkaWNhdGU6W1widmFsdWVcIl0sRXhpc3RzVHlwZUFubm90YXRpb246W10sRnVuY3Rpb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1zXCIsXCJyZXN0XCIsXCJyZXR1cm5UeXBlXCIsXCJ0aGlzXCJdLEZ1bmN0aW9uVHlwZVBhcmFtOltcIm5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCJdLEdlbmVyaWNUeXBlQW5ub3RhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIl0sSW5mZXJyZWRQcmVkaWNhdGU6W10sSW50ZXJmYWNlRXh0ZW5kczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIl0sSW50ZXJmYWNlRGVjbGFyYXRpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJleHRlbmRzXCIsXCJib2R5XCJdLEludGVyZmFjZVR5cGVBbm5vdGF0aW9uOltcImV4dGVuZHNcIixcImJvZHlcIl0sSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb246W1widHlwZXNcIl0sTWl4ZWRUeXBlQW5ub3RhdGlvbjpbXSxFbXB0eVR5cGVBbm5vdGF0aW9uOltdLE51bGxhYmxlVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sTnVtYmVyTGl0ZXJhbFR5cGVBbm5vdGF0aW9uOltdLE51bWJlclR5cGVBbm5vdGF0aW9uOltdLE9iamVjdFR5cGVBbm5vdGF0aW9uOltcInByb3BlcnRpZXNcIixcImluZGV4ZXJzXCIsXCJjYWxsUHJvcGVydGllc1wiLFwiaW50ZXJuYWxTbG90c1wiXSxPYmplY3RUeXBlSW50ZXJuYWxTbG90OltcImlkXCIsXCJ2YWx1ZVwiLFwib3B0aW9uYWxcIixcInN0YXRpY1wiLFwibWV0aG9kXCJdLE9iamVjdFR5cGVDYWxsUHJvcGVydHk6W1widmFsdWVcIl0sT2JqZWN0VHlwZUluZGV4ZXI6W1wiaWRcIixcImtleVwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLE9iamVjdFR5cGVQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ2YXJpYW5jZVwiXSxPYmplY3RUeXBlU3ByZWFkUHJvcGVydHk6W1wiYXJndW1lbnRcIl0sT3BhcXVlVHlwZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVydHlwZVwiLFwiaW1wbHR5cGVcIl0sUXVhbGlmaWVkVHlwZUlkZW50aWZpZXI6W1wiaWRcIixcInF1YWxpZmljYXRpb25cIl0sU3RyaW5nTGl0ZXJhbFR5cGVBbm5vdGF0aW9uOltdLFN0cmluZ1R5cGVBbm5vdGF0aW9uOltdLFN5bWJvbFR5cGVBbm5vdGF0aW9uOltdLFRoaXNUeXBlQW5ub3RhdGlvbjpbXSxUdXBsZVR5cGVBbm5vdGF0aW9uOltcInR5cGVzXCIsXCJlbGVtZW50VHlwZXNcIl0sVHlwZW9mVHlwZUFubm90YXRpb246W1wiYXJndW1lbnRcIl0sVHlwZUFsaWFzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicmlnaHRcIl0sVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sVHlwZUNhc3RFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVQYXJhbWV0ZXI6W1wiYm91bmRcIixcImRlZmF1bHRcIixcInZhcmlhbmNlXCJdLFR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbjpbXCJwYXJhbXNcIl0sVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb246W1wicGFyYW1zXCJdLFVuaW9uVHlwZUFubm90YXRpb246W1widHlwZXNcIl0sVmFyaWFuY2U6W10sVm9pZFR5cGVBbm5vdGF0aW9uOltdLEVudW1EZWNsYXJhdGlvbjpbXCJpZFwiLFwiYm9keVwiXSxFbnVtQm9vbGVhbkJvZHk6W1wibWVtYmVyc1wiXSxFbnVtTnVtYmVyQm9keTpbXCJtZW1iZXJzXCJdLEVudW1TdHJpbmdCb2R5OltcIm1lbWJlcnNcIl0sRW51bVN5bWJvbEJvZHk6W1wibWVtYmVyc1wiXSxFbnVtQm9vbGVhbk1lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtTnVtYmVyTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1TdHJpbmdNZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bURlZmF1bHRlZE1lbWJlcjpbXCJpZFwiXSxJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sT3B0aW9uYWxJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sSlNYQXR0cmlidXRlOltcIm5hbWVcIixcInZhbHVlXCJdLEpTWENsb3NpbmdFbGVtZW50OltcIm5hbWVcIl0sSlNYRWxlbWVudDpbXCJvcGVuaW5nRWxlbWVudFwiLFwiY2hpbGRyZW5cIixcImNsb3NpbmdFbGVtZW50XCJdLEpTWEVtcHR5RXhwcmVzc2lvbjpbXSxKU1hFeHByZXNzaW9uQ29udGFpbmVyOltcImV4cHJlc3Npb25cIl0sSlNYU3ByZWFkQ2hpbGQ6W1wiZXhwcmVzc2lvblwiXSxKU1hJZGVudGlmaWVyOltdLEpTWE1lbWJlckV4cHJlc3Npb246W1wib2JqZWN0XCIsXCJwcm9wZXJ0eVwiXSxKU1hOYW1lc3BhY2VkTmFtZTpbXCJuYW1lc3BhY2VcIixcIm5hbWVcIl0sSlNYT3BlbmluZ0VsZW1lbnQ6W1wibmFtZVwiLFwiYXR0cmlidXRlc1wiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sSlNYU3ByZWFkQXR0cmlidXRlOltcImFyZ3VtZW50XCJdLEpTWFRleHQ6W10sSlNYRnJhZ21lbnQ6W1wib3BlbmluZ0ZyYWdtZW50XCIsXCJjaGlsZHJlblwiLFwiY2xvc2luZ0ZyYWdtZW50XCJdLEpTWE9wZW5pbmdGcmFnbWVudDpbXSxKU1hDbG9zaW5nRnJhZ21lbnQ6W10sTm9vcDpbXSxQbGFjZWhvbGRlcjpbXSxWOEludHJpbnNpY0lkZW50aWZpZXI6W10sQXJndW1lbnRQbGFjZWhvbGRlcjpbXSxCaW5kRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcImNhbGxlZVwiXSxJbXBvcnRBdHRyaWJ1dGU6W1wia2V5XCIsXCJ2YWx1ZVwiXSxEZWNvcmF0b3I6W1wiZXhwcmVzc2lvblwiXSxEb0V4cHJlc3Npb246W1wiYm9keVwiXSxFeHBvcnREZWZhdWx0U3BlY2lmaWVyOltcImV4cG9ydGVkXCJdLFJlY29yZEV4cHJlc3Npb246W1wicHJvcGVydGllc1wiXSxUdXBsZUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sRGVjaW1hbExpdGVyYWw6W10sTW9kdWxlRXhwcmVzc2lvbjpbXCJib2R5XCJdLFRvcGljUmVmZXJlbmNlOltdLFBpcGVsaW5lVG9waWNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIl0sUGlwZWxpbmVCYXJlRnVuY3Rpb246W1wiY2FsbGVlXCJdLFBpcGVsaW5lUHJpbWFyeVRvcGljUmVmZXJlbmNlOltdLFRTUGFyYW1ldGVyUHJvcGVydHk6W1wicGFyYW1ldGVyXCIsXCJkZWNvcmF0b3JzXCJdLFRTRGVjbGFyZUZ1bmN0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCIsXCJib2R5XCJdLFRTRGVjbGFyZU1ldGhvZDpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNRdWFsaWZpZWROYW1lOltcImxlZnRcIixcInJpZ2h0XCJdLFRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNQcm9wZXJ0eVNpZ25hdHVyZTpbXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTTWV0aG9kU2lnbmF0dXJlOltcImtleVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNJbmRleFNpZ25hdHVyZTpbXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0FueUtleXdvcmQ6W10sVFNCb29sZWFuS2V5d29yZDpbXSxUU0JpZ0ludEtleXdvcmQ6W10sVFNJbnRyaW5zaWNLZXl3b3JkOltdLFRTTmV2ZXJLZXl3b3JkOltdLFRTTnVsbEtleXdvcmQ6W10sVFNOdW1iZXJLZXl3b3JkOltdLFRTT2JqZWN0S2V5d29yZDpbXSxUU1N0cmluZ0tleXdvcmQ6W10sVFNTeW1ib2xLZXl3b3JkOltdLFRTVW5kZWZpbmVkS2V5d29yZDpbXSxUU1Vua25vd25LZXl3b3JkOltdLFRTVm9pZEtleXdvcmQ6W10sVFNUaGlzVHlwZTpbXSxUU0Z1bmN0aW9uVHlwZTpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0NvbnN0cnVjdG9yVHlwZTpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1R5cGVSZWZlcmVuY2U6W1widHlwZU5hbWVcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFRTVHlwZVByZWRpY2F0ZTpbXCJwYXJhbWV0ZXJOYW1lXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1R5cGVRdWVyeTpbXCJleHByTmFtZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNUeXBlTGl0ZXJhbDpbXCJtZW1iZXJzXCJdLFRTQXJyYXlUeXBlOltcImVsZW1lbnRUeXBlXCJdLFRTVHVwbGVUeXBlOltcImVsZW1lbnRUeXBlc1wiXSxUU09wdGlvbmFsVHlwZTpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1Jlc3RUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTTmFtZWRUdXBsZU1lbWJlcjpbXCJsYWJlbFwiLFwiZWxlbWVudFR5cGVcIl0sVFNVbmlvblR5cGU6W1widHlwZXNcIl0sVFNJbnRlcnNlY3Rpb25UeXBlOltcInR5cGVzXCJdLFRTQ29uZGl0aW9uYWxUeXBlOltcImNoZWNrVHlwZVwiLFwiZXh0ZW5kc1R5cGVcIixcInRydWVUeXBlXCIsXCJmYWxzZVR5cGVcIl0sVFNJbmZlclR5cGU6W1widHlwZVBhcmFtZXRlclwiXSxUU1BhcmVudGhlc2l6ZWRUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZU9wZXJhdG9yOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTSW5kZXhlZEFjY2Vzc1R5cGU6W1wib2JqZWN0VHlwZVwiLFwiaW5kZXhUeXBlXCJdLFRTTWFwcGVkVHlwZTpbXCJ0eXBlUGFyYW1ldGVyXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwibmFtZVR5cGVcIl0sVFNMaXRlcmFsVHlwZTpbXCJsaXRlcmFsXCJdLFRTRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzOltcImV4cHJlc3Npb25cIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTSW50ZXJmYWNlRGVjbGFyYXRpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJleHRlbmRzXCIsXCJib2R5XCJdLFRTSW50ZXJmYWNlQm9keTpbXCJib2R5XCJdLFRTVHlwZUFsaWFzRGVjbGFyYXRpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0luc3RhbnRpYXRpb25FeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFRTQXNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTU2F0aXNmaWVzRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1R5cGVBc3NlcnRpb246W1widHlwZUFubm90YXRpb25cIixcImV4cHJlc3Npb25cIl0sVFNFbnVtRGVjbGFyYXRpb246W1wiaWRcIixcIm1lbWJlcnNcIl0sVFNFbnVtTWVtYmVyOltcImlkXCIsXCJpbml0aWFsaXplclwiXSxUU01vZHVsZURlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCJdLFRTTW9kdWxlQmxvY2s6W1wiYm9keVwiXSxUU0ltcG9ydFR5cGU6W1wiYXJndW1lbnRcIixcInF1YWxpZmllclwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbjpbXCJpZFwiLFwibW9kdWxlUmVmZXJlbmNlXCJdLFRTRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2U6W1wiZXhwcmVzc2lvblwiXSxUU05vbk51bGxFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIl0sVFNFeHBvcnRBc3NpZ25tZW50OltcImV4cHJlc3Npb25cIl0sVFNOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbjpbXCJpZFwiXSxUU1R5cGVBbm5vdGF0aW9uOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb246W1wicGFyYW1zXCJdLFRTVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOltcInBhcmFtc1wiXSxUU1R5cGVQYXJhbWV0ZXI6W1wiY29uc3RyYWludFwiLFwiZGVmYXVsdFwiLFwibmFtZVwiXSxDaGFpbkV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxFeHBlcmltZW50YWxSZXN0UHJvcGVydHk6W1wiYXJndW1lbnRcIl0sRXhwZXJpbWVudGFsU3ByZWFkUHJvcGVydHk6W1wiYXJndW1lbnRcIl0sSW1wb3J0RXhwcmVzc2lvbjpbXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIl0sTGl0ZXJhbDpbXSxNZXRob2REZWZpbml0aW9uOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidmFsdWVcIl0sUHJpdmF0ZUlkZW50aWZpZXI6W10sUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiXSxQcm9wZXJ0eURlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLEFjY2Vzc29yUHJvcGVydHk6W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFsdWVcIl0sVFNBYnN0cmFjdEFjY2Vzc29yUHJvcGVydHk6W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0Fic3RyYWN0S2V5d29yZDpbXSxUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjpbXCJrZXlcIixcInZhbHVlXCJdLFRTQWJzdHJhY3RQcm9wZXJ0eURlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0FzeW5jS2V5d29yZDpbXSxUU0NsYXNzSW1wbGVtZW50czpbXCJleHByZXNzaW9uXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxUU0RlY2xhcmVLZXl3b3JkOltdLFRTRW1wdHlCb2R5RnVuY3Rpb25FeHByZXNzaW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTRXhwb3J0S2V5d29yZDpbXSxUU0ludGVyZmFjZUhlcml0YWdlOltcImV4cHJlc3Npb25cIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTUHJpdmF0ZUtleXdvcmQ6W10sVFNQcm90ZWN0ZWRLZXl3b3JkOltdLFRTUHVibGljS2V5d29yZDpbXSxUU1JlYWRvbmx5S2V5d29yZDpbXSxUU1N0YXRpY0tleXdvcmQ6W10sVFNUZW1wbGF0ZUxpdGVyYWxUeXBlOltcInF1YXNpc1wiLFwidHlwZXNcIl0sQmlnSW50TGl0ZXJhbFR5cGVBbm5vdGF0aW9uOltdLEJpZ0ludFR5cGVBbm5vdGF0aW9uOltdLENvbmRpdGlvbmFsVHlwZUFubm90YXRpb246W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiLFwidHJ1ZVR5cGVcIixcImZhbHNlVHlwZVwiXSxEZWNsYXJlRW51bTpbXCJpZFwiLFwiYm9keVwiXSxJbmZlclR5cGVBbm5vdGF0aW9uOltcInR5cGVQYXJhbWV0ZXJcIl0sS2V5b2ZUeXBlQW5ub3RhdGlvbjpbXCJhcmd1bWVudFwiXSxPYmplY3RUeXBlTWFwcGVkVHlwZVByb3BlcnR5OltcImtleVRwYXJhbVwiLFwicHJvcFR5cGVcIixcInNvdXJjZVR5cGVcIixcInZhcmlhbmNlXCJdLFF1YWxpZmllZFR5cGVvZklkZW50aWZpZXI6W1wicXVhbGlmaWNhdGlvblwiLFwiaWRcIl0sVHVwbGVUeXBlTGFiZWxlZEVsZW1lbnQ6W1wibGFiZWxcIixcImVsZW1lbnRUeXBlXCIsXCJ2YXJpYW5jZVwiXSxUdXBsZVR5cGVTcHJlYWRFbGVtZW50OltcImxhYmVsXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlUHJlZGljYXRlOltcInBhcmFtZXRlck5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJhc3NlcnRzXCJdLE5HUm9vdDpbXCJub2RlXCJdLE5HUGlwZUV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIixcImFyZ3VtZW50c1wiXSxOR0NoYWluZWRFeHByZXNzaW9uOltcImV4cHJlc3Npb25zXCJdLE5HRW1wdHlFeHByZXNzaW9uOltdLE5HTWljcm9zeW50YXg6W1wiYm9keVwiXSxOR01pY3Jvc3ludGF4S2V5OltdLE5HTWljcm9zeW50YXhFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcImFsaWFzXCJdLE5HTWljcm9zeW50YXhLZXllZEV4cHJlc3Npb246W1wia2V5XCIsXCJleHByZXNzaW9uXCJdLE5HTWljcm9zeW50YXhMZXQ6W1wia2V5XCIsXCJ2YWx1ZVwiXSxOR01pY3Jvc3ludGF4QXM6W1wia2V5XCIsXCJhbGlhc1wiXSxKc0V4cHJlc3Npb25Sb290OltcIm5vZGVcIl0sSnNvblJvb3Q6W1wibm9kZVwiXSxUU0pTRG9jQWxsVHlwZTpbXSxUU0pTRG9jVW5rbm93blR5cGU6W10sVFNKU0RvY051bGxhYmxlVHlwZTpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0pTRG9jTm9uTnVsbGFibGVUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLE5ldmVyVHlwZUFubm90YXRpb246W10sVW5kZWZpbmVkVHlwZUFubm90YXRpb246W10sVW5rbm93blR5cGVBbm5vdGF0aW9uOltdfTt2YXIgZWE9RHMoTXMpLE9zPWVhO2Z1bmN0aW9uIE10KGEsdCl7aWYoIShhIT09bnVsbCYmdHlwZW9mIGE9PVwib2JqZWN0XCIpKXJldHVybiBhO2lmKEFycmF5LmlzQXJyYXkoYSkpe2ZvcihsZXQgcz0wO3M8YS5sZW5ndGg7cysrKWFbc109TXQoYVtzXSx0KTtyZXR1cm4gYX1sZXQgZT1PcyhhKTtmb3IobGV0IHM9MDtzPGUubGVuZ3RoO3MrKylhW2Vbc11dPU10KGFbZVtzXV0sdCk7cmV0dXJuIHQoYSl8fGF9dmFyICRlPU10O2Z1bmN0aW9uIHRhKGEsdCl7bGV0e3BhcnNlcjplLHRleHQ6c309dDtpZihhLnR5cGU9PT1cIkZpbGVcIiYmYS5wcm9ncmFtLmludGVycHJldGVyKXtsZXR7cHJvZ3JhbTp7aW50ZXJwcmV0ZXI6cn0sY29tbWVudHM6bn09YTtkZWxldGUgYS5wcm9ncmFtLmludGVycHJldGVyLG4udW5zaGlmdChyKX1pZihlPT09XCJiYWJlbFwiKXtsZXQgcj1uZXcgU2V0O2E9JGUoYSxuPT57dmFyIG87KG89bi5sZWFkaW5nQ29tbWVudHMpIT1udWxsJiZvLnNvbWUoTHMpJiZyLmFkZChEKG4pKX0pLGE9JGUoYSxuPT57aWYobi50eXBlPT09XCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiKXtsZXR7ZXhwcmVzc2lvbjpvfT1uO2lmKG8udHlwZT09PVwiVHlwZUNhc3RFeHByZXNzaW9uXCIpcmV0dXJuIG8ucmFuZ2U9bi5yYW5nZSxvO2xldCBoPUQobik7aWYoIXIuaGFzKGgpKXJldHVybiBvLmV4dHJhPXsuLi5vLmV4dHJhLHBhcmVudGhlc2l6ZWQ6ITB9LG99fSl9aWYoYT0kZShhLHI9Pntzd2l0Y2goci50eXBlKXtjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmlmKEZzKHIpKXJldHVybiBPdChyKTticmVhaztjYXNlXCJWYXJpYWJsZURlY2xhcmF0aW9uXCI6e2xldCBuPXZ0KCExLHIuZGVjbGFyYXRpb25zLC0xKTtuIT1udWxsJiZuLmluaXQmJmkocixuKTticmVha31jYXNlXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCI6cmV0dXJuIHIudHlwZUFubm90YXRpb247Y2FzZVwiVFNUeXBlUGFyYW1ldGVyXCI6aWYodHlwZW9mIHIubmFtZT09XCJzdHJpbmdcIil7bGV0IG49RChyKTtyLm5hbWU9e3R5cGU6XCJJZGVudGlmaWVyXCIsbmFtZTpyLm5hbWUscmFuZ2U6W24sbityLm5hbWUubGVuZ3RoXX19YnJlYWs7Y2FzZVwiVG9waWNSZWZlcmVuY2VcIjphLmV4dHJhPXsuLi5hLmV4dHJhLF9faXNVc2luZ0hhY2tQaXBlbGluZTohMH07YnJlYWs7Y2FzZVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIjp7bGV0e2V4cG9ydGVkOm59PXI7aWYoZT09PVwibWVyaXlhaFwiJiYobj09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiSWRlbnRpZmllclwiKXtsZXQgbz1zLnNsaWNlKEQobiksQihuKSk7KG8uc3RhcnRzV2l0aCgnXCInKXx8by5zdGFydHNXaXRoKFwiJ1wiKSkmJihyLmV4cG9ydGVkPXsuLi5yLmV4cG9ydGVkLHR5cGU6XCJMaXRlcmFsXCIsdmFsdWU6ci5leHBvcnRlZC5uYW1lLHJhdzpvfSl9YnJlYWt9Y2FzZVwiVFNVbmlvblR5cGVcIjpjYXNlXCJUU0ludGVyc2VjdGlvblR5cGVcIjppZihyLnR5cGVzLmxlbmd0aD09PTEpcmV0dXJuIHIudHlwZXNbMF07YnJlYWt9fSksWShhLmNvbW1lbnRzKSl7bGV0IHI9dnQoITEsYS5jb21tZW50cywtMSk7Zm9yKGxldCBuPWEuY29tbWVudHMubGVuZ3RoLTI7bj49MDtuLS0pe2xldCBvPWEuY29tbWVudHNbbl07QihvKT09PUQocikmJkFlKG8pJiZBZShyKSYmTHQobykmJkx0KHIpJiYoYS5jb21tZW50cy5zcGxpY2UobisxLDEpLG8udmFsdWUrPVwiKi8vKlwiK3IudmFsdWUsby5yYW5nZT1bRChvKSxCKHIpXSkscj1vfX1yZXR1cm4gYS50eXBlPT09XCJQcm9ncmFtXCImJihhLnJhbmdlPVswLHMubGVuZ3RoXSksYTtmdW5jdGlvbiBpKHIsbil7c1tCKG4pXSE9PVwiO1wiJiYoci5yYW5nZT1bRChyKSxCKG4pXSl9fWZ1bmN0aW9uIEZzKGEpe3JldHVybiBhLnR5cGU9PT1cIkxvZ2ljYWxFeHByZXNzaW9uXCImJmEucmlnaHQudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cIiYmYS5vcGVyYXRvcj09PWEucmlnaHQub3BlcmF0b3J9ZnVuY3Rpb24gT3QoYSl7cmV0dXJuIEZzKGEpP090KHt0eXBlOlwiTG9naWNhbEV4cHJlc3Npb25cIixvcGVyYXRvcjphLm9wZXJhdG9yLGxlZnQ6T3Qoe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOmEub3BlcmF0b3IsbGVmdDphLmxlZnQscmlnaHQ6YS5yaWdodC5sZWZ0LHJhbmdlOltEKGEubGVmdCksQihhLnJpZ2h0LmxlZnQpXX0pLHJpZ2h0OmEucmlnaHQucmlnaHQscmFuZ2U6W0QoYSksQihhKV19KTphfXZhciBCcz10YTtmdW5jdGlvbiBzYShhKXtsZXR7ZmlsZXBhdGg6dH09YTtpZih0KXtpZih0PXQudG9Mb3dlckNhc2UoKSx0LmVuZHNXaXRoKFwiLmNqc1wiKSlyZXR1cm5cInNjcmlwdFwiO2lmKHQuZW5kc1dpdGgoXCIubWpzXCIpKXJldHVyblwibW9kdWxlXCJ9fXZhciBScz1zYTtmdW5jdGlvbiBpYShhLHQpe2xldHt0eXBlOmU9XCJKc0V4cHJlc3Npb25Sb290XCIscm9vdE1hcmtlcjpzLHRleHQ6aX09dCx7dG9rZW5zOnIsY29tbWVudHM6bn09YTtyZXR1cm4gZGVsZXRlIGEudG9rZW5zLGRlbGV0ZSBhLmNvbW1lbnRzLHt0b2tlbnM6cixjb21tZW50czpuLHR5cGU6ZSxub2RlOmEscmFuZ2U6WzAsaS5sZW5ndGhdLHJvb3RNYXJrZXI6c319dmFyIFZlPWlhO3ZhciBoZT1hPT5vZShsYShhKSkscmE9e3NvdXJjZVR5cGU6XCJtb2R1bGVcIixhbGxvd0ltcG9ydEV4cG9ydEV2ZXJ5d2hlcmU6ITAsYWxsb3dSZXR1cm5PdXRzaWRlRnVuY3Rpb246ITAsYWxsb3dOZXdUYXJnZXRPdXRzaWRlRnVuY3Rpb246ITAsYWxsb3dTdXBlck91dHNpZGVNZXRob2Q6ITAsYWxsb3dVbmRlY2xhcmVkRXhwb3J0czohMCxlcnJvclJlY292ZXJ5OiEwLGNyZWF0ZVBhcmVudGhlc2l6ZWRFeHByZXNzaW9uczohMCxwbHVnaW5zOltcImRvRXhwcmVzc2lvbnNcIixcImV4cG9ydERlZmF1bHRGcm9tXCIsXCJmdW5jdGlvbkJpbmRcIixcImZ1bmN0aW9uU2VudFwiLFwidGhyb3dFeHByZXNzaW9uc1wiLFwicGFydGlhbEFwcGxpY2F0aW9uXCIsXCJkZWNvcmF0b3JzXCIsXCJkZWNpbWFsXCIsXCJtb2R1bGVCbG9ja3NcIixcImFzeW5jRG9FeHByZXNzaW9uc1wiLFwicmVnZXhwVW5pY29kZVNldHNcIixcImRlc3RydWN0dXJpbmdQcml2YXRlXCIsXCJkZWNvcmF0b3JBdXRvQWNjZXNzb3JzXCIsXCJpbXBvcnRSZWZsZWN0aW9uXCIsXCJleHBsaWNpdFJlc291cmNlTWFuYWdlbWVudFwiLFtcImltcG9ydEF0dHJpYnV0ZXNcIix7ZGVwcmVjYXRlZEFzc2VydFN5bnRheDohMH1dXSx0b2tlbnM6ITAscmFuZ2VzOiEwfSxhYT1bXCJyZWNvcmRBbmRUdXBsZVwiLHtzeW50YXhUeXBlOlwiaGFzaFwifV0sX3M9XCJ2OGludHJpbnNpY1wiLFVzPVtbXCJwaXBlbGluZU9wZXJhdG9yXCIse3Byb3Bvc2FsOlwiaGFja1wiLHRvcGljVG9rZW46XCIlXCJ9XSxbXCJwaXBlbGluZU9wZXJhdG9yXCIse3Byb3Bvc2FsOlwibWluaW1hbFwifV0sW1wicGlwZWxpbmVPcGVyYXRvclwiLHtwcm9wb3NhbDpcImZzaGFycFwifV1dLFI9KGEsdD1yYSk9Pih7Li4udCxwbHVnaW5zOlsuLi50LnBsdWdpbnMsLi4uYV19KSxuYT0vQCg/Om5vKT9mbG93XFxiLztmdW5jdGlvbiBvYShhLHQpe3ZhciBpO2lmKChpPXQuZmlsZXBhdGgpIT1udWxsJiZpLmVuZHNXaXRoKFwiLmpzLmZsb3dcIikpcmV0dXJuITA7bGV0IGU9X2UoYSk7ZSYmKGE9YS5zbGljZShlLmxlbmd0aCkpO2xldCBzPWJzKGEsMCk7cmV0dXJuIHMhPT0hMSYmKGE9YS5zbGljZSgwLHMpKSxuYS50ZXN0KGEpfWZ1bmN0aW9uIGhhKGEsdCxlKXtsZXQgcz1hKHQsZSksaT1zLmVycm9ycy5maW5kKHI9PiFjYS5oYXMoci5yZWFzb25Db2RlKSk7aWYoaSl0aHJvdyBpO3JldHVybiBzfWZ1bmN0aW9uIGxhKHtpc0V4cHJlc3Npb246YT0hMSxvcHRpb25zQ29tYmluYXRpb25zOnR9KXtyZXR1cm4oZSxzPXt9KT0+e2lmKChzLnBhcnNlcj09PVwiYmFiZWxcInx8cy5wYXJzZXI9PT1cIl9fYmFiZWxfZXN0cmVlXCIpJiZvYShlLHMpKXJldHVybiBzLnBhcnNlcj1cImJhYmVsLWZsb3dcIixxcy5wYXJzZShlLHMpO2xldCBpPXQ7KHMuX19iYWJlbFNvdXJjZVR5cGU/P1JzKHMpKT09PVwic2NyaXB0XCImJihpPWkubWFwKGw9Pih7Li4ubCxzb3VyY2VUeXBlOlwic2NyaXB0XCJ9KSkpLC8jW1t7XS8udGVzdChlKSYmKGk9aS5tYXAobD0+UihbYWFdLGwpKSk7bGV0IG49LyVbQS1aXS8udGVzdChlKTtlLmluY2x1ZGVzKFwifD5cIik/aT0obj9bLi4uVXMsX3NdOlVzKS5mbGF0TWFwKGM9PmkubWFwKHU9PlIoW2NdLHUpKSk6biYmKGk9aS5tYXAobD0+UihbX3NdLGwpKSk7bGV0IG89YT96ZS5wYXJzZUV4cHJlc3Npb246emUucGFyc2UsaDt0cnl7aD1tcyhpLm1hcChsPT4oKT0+aGEobyxlLGwpKSl9Y2F0Y2goe2Vycm9yczpbbF19KXt0aHJvdyBiZShsKX1yZXR1cm4gYSYmKGg9VmUoaCx7dGV4dDplLHJvb3RNYXJrZXI6cy5yb290TWFya2VyfSkpLEJzKGgse3BhcnNlcjpcImJhYmVsXCIsdGV4dDplfSl9fXZhciBjYT1uZXcgU2V0KFtcIlN0cmljdE51bWVyaWNFc2NhcGVcIixcIlN0cmljdFdpdGhcIixcIlN0cmljdE9jdGFsTGl0ZXJhbFwiLFwiU3RyaWN0RGVsZXRlXCIsXCJTdHJpY3RFdmFsQXJndW1lbnRzXCIsXCJTdHJpY3RFdmFsQXJndW1lbnRzQmluZGluZ1wiLFwiU3RyaWN0RnVuY3Rpb25cIixcIkVtcHR5VHlwZUFyZ3VtZW50c1wiLFwiRW1wdHlUeXBlUGFyYW1ldGVyc1wiLFwiQ29uc3RydWN0b3JIYXNUeXBlUGFyYW1ldGVyc1wiLFwiVW5zdXBwb3J0ZWRQYXJhbWV0ZXJQcm9wZXJ0eUtpbmRcIixcIk1peGVkTGFiZWxlZEFuZFVubGFiZWxlZEVsZW1lbnRzXCIsXCJEdXBsaWNhdGVBY2Nlc3NpYmlsaXR5TW9kaWZpZXJcIixcIkRlY29yYXRvckV4cG9ydENsYXNzXCIsXCJQYXJhbUR1cGVcIixcIkludmFsaWREZWNpbWFsXCIsXCJSZXN0VHJhaWxpbmdDb21tYVwiLFwiVW5zdXBwb3J0ZWRQYXJhbWV0ZXJEZWNvcmF0b3JcIixcIlVudGVybWluYXRlZEpzeENvbnRlbnRcIixcIlVuZXhwZWN0ZWRSZXNlcnZlZFdvcmRcIixcIk1vZHVsZUF0dHJpYnV0ZXNXaXRoRHVwbGljYXRlS2V5c1wiLFwiTGluZVRlcm1pbmF0b3JCZWZvcmVBcnJvd1wiLFwiSW52YWxpZEVzY2FwZVNlcXVlbmNlVGVtcGxhdGVcIixcIk5vbkFic3RyYWN0Q2xhc3NIYXNBYnN0cmFjdE1ldGhvZFwiLFwiT3B0aW9uYWxUeXBlQmVmb3JlUmVxdWlyZWRcIixcIlBhdHRlcm5Jc09wdGlvbmFsXCIsXCJPcHRpb25hbEJpbmRpbmdQYXR0ZXJuXCIsXCJEZWNsYXJlQ2xhc3NGaWVsZEhhc0luaXRpYWxpemVyXCIsXCJUeXBlSW1wb3J0Q2Fubm90U3BlY2lmeURlZmF1bHRBbmROYW1lZFwiLFwiRGVjbGFyZUZ1bmN0aW9uSGFzSW1wbGVtZW50YXRpb25cIixcIkNvbnN0cnVjdG9yQ2xhc3NGaWVsZFwiLFwiVmFyUmVkZWNsYXJhdGlvblwiLFwiSW52YWxpZFByaXZhdGVGaWVsZFJlc29sdXRpb25cIixcIkR1cGxpY2F0ZUV4cG9ydFwiXSksS3M9W1IoW1wianN4XCJdKV0sanM9aGUoe29wdGlvbnNDb21iaW5hdGlvbnM6S3N9KSwkcz1oZSh7b3B0aW9uc0NvbWJpbmF0aW9uczpbUihbXCJqc3hcIixcInR5cGVzY3JpcHRcIl0pLFIoW1widHlwZXNjcmlwdFwiXSldfSksVnM9aGUoe2lzRXhwcmVzc2lvbjohMCxvcHRpb25zQ29tYmluYXRpb25zOltSKFtcImpzeFwiXSldfSksenM9aGUoe2lzRXhwcmVzc2lvbjohMCxvcHRpb25zQ29tYmluYXRpb25zOltSKFtcInR5cGVzY3JpcHRcIl0pXX0pLHFzPWhlKHtvcHRpb25zQ29tYmluYXRpb25zOltSKFtcImpzeFwiLFtcImZsb3dcIix7YWxsOiEwLGVudW1zOiEwfV0sXCJmbG93Q29tbWVudHNcIl0pXX0pLHBhPWhlKHtvcHRpb25zQ29tYmluYXRpb25zOktzLm1hcChhPT5SKFtcImVzdHJlZVwiXSxhKSl9KSxIcz17YmFiZWw6anMsXCJiYWJlbC1mbG93XCI6cXMsXCJiYWJlbC10c1wiOiRzLF9fanNfZXhwcmVzc2lvbjpWcyxfX3RzX2V4cHJlc3Npb246enMsX192dWVfZXhwcmVzc2lvbjpWcyxfX3Z1ZV90c19leHByZXNzaW9uOnpzLF9fdnVlX2V2ZW50X2JpbmRpbmc6anMsX192dWVfdHNfZXZlbnRfYmluZGluZzokcyxfX2JhYmVsX2VzdHJlZTpwYX07dmFyIEpzPXFlKGt0KCksMSk7ZnVuY3Rpb24gWHMoYT17fSl7bGV0e2FsbG93Q29tbWVudHM6dD0hMH09YTtyZXR1cm4gZnVuY3Rpb24ocyl7bGV0IGk7dHJ5e2k9KDAsSnMucGFyc2VFeHByZXNzaW9uKShzLHt0b2tlbnM6ITAscmFuZ2VzOiEwfSl9Y2F0Y2gocil7dGhyb3cocj09bnVsbD92b2lkIDA6ci5yZWFzb25Db2RlKT09PVwiTWlzc2luZ1BsdWdpblwifHwocj09bnVsbD92b2lkIDA6ci5yZWFzb25Db2RlKT09PVwiTWlzc2luZ09uZU9mUGx1Z2luc1wiP2JlKHttZXNzYWdlOlwiVW5leHBlY3RlZCB0b2tlblwiLGxvYzpyLmxvY30pOmJlKHIpfWlmKCF0JiZZKGkuY29tbWVudHMpKXRocm93IEgoaS5jb21tZW50c1swXSxcIkNvbW1lbnRcIik7cmV0dXJuIGxlKGkpLFZlKGkse3R5cGU6XCJKc29uUm9vdFwiLHRleHQ6c30pfX1mdW5jdGlvbiBIKGEsdCl7bGV0W2Usc109W2EubG9jLnN0YXJ0LGEubG9jLmVuZF0ubWFwKCh7bGluZTppLGNvbHVtbjpyfSk9Pih7bGluZTppLGNvbHVtbjpyKzF9KSk7cmV0dXJuIGplKGAke3R9IGlzIG5vdCBhbGxvd2VkIGluIEpTT04uYCx7bG9jOntzdGFydDplLGVuZDpzfX0pfWZ1bmN0aW9uIGxlKGEpe3N3aXRjaChhLnR5cGUpe2Nhc2VcIkFycmF5RXhwcmVzc2lvblwiOmZvcihsZXQgdCBvZiBhLmVsZW1lbnRzKXQhPT1udWxsJiZsZSh0KTtyZXR1cm47Y2FzZVwiT2JqZWN0RXhwcmVzc2lvblwiOmZvcihsZXQgdCBvZiBhLnByb3BlcnRpZXMpbGUodCk7cmV0dXJuO2Nhc2VcIk9iamVjdFByb3BlcnR5XCI6aWYoYS5jb21wdXRlZCl0aHJvdyBIKGEua2V5LFwiQ29tcHV0ZWQga2V5XCIpO2lmKGEuc2hvcnRoYW5kKXRocm93IEgoYS5rZXksXCJTaG9ydGhhbmQgcHJvcGVydHlcIik7YS5rZXkudHlwZSE9PVwiSWRlbnRpZmllclwiJiZsZShhLmtleSksbGUoYS52YWx1ZSk7cmV0dXJuO2Nhc2VcIlVuYXJ5RXhwcmVzc2lvblwiOntsZXR7b3BlcmF0b3I6dCxhcmd1bWVudDplfT1hO2lmKHQhPT1cIitcIiYmdCE9PVwiLVwiKXRocm93IEgoYSxgT3BlcmF0b3IgJyR7YS5vcGVyYXRvcn0nYCk7aWYoZS50eXBlPT09XCJOdW1lcmljTGl0ZXJhbFwifHxlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmKGUubmFtZT09PVwiSW5maW5pdHlcInx8ZS5uYW1lPT09XCJOYU5cIikpcmV0dXJuO3Rocm93IEgoZSxgT3BlcmF0b3IgJyR7dH0nIGJlZm9yZSAnJHtlLnR5cGV9J2ApfWNhc2VcIklkZW50aWZpZXJcIjppZihhLm5hbWUhPT1cIkluZmluaXR5XCImJmEubmFtZSE9PVwiTmFOXCImJmEubmFtZSE9PVwidW5kZWZpbmVkXCIpdGhyb3cgSChhLGBJZGVudGlmaWVyICcke2EubmFtZX0nYCk7cmV0dXJuO2Nhc2VcIlRlbXBsYXRlTGl0ZXJhbFwiOmlmKFkoYS5leHByZXNzaW9ucykpdGhyb3cgSChhLmV4cHJlc3Npb25zWzBdLFwiJ1RlbXBsYXRlTGl0ZXJhbCcgd2l0aCBleHByZXNzaW9uXCIpO2ZvcihsZXQgdCBvZiBhLnF1YXNpcylsZSh0KTtyZXR1cm47Y2FzZVwiTnVsbExpdGVyYWxcIjpjYXNlXCJCb29sZWFuTGl0ZXJhbFwiOmNhc2VcIk51bWVyaWNMaXRlcmFsXCI6Y2FzZVwiU3RyaW5nTGl0ZXJhbFwiOmNhc2VcIlRlbXBsYXRlRWxlbWVudFwiOnJldHVybjtkZWZhdWx0OnRocm93IEgoYSxgJyR7YS50eXBlfSdgKX19dmFyIFdzPVhzKCksdWE9e2pzb246b2Uoe3BhcnNlOldzLGhhc1ByYWdtYSgpe3JldHVybiEwfX0pLGpzb241Om9lKFdzKSxcImpzb24tc3RyaW5naWZ5XCI6b2Uoe3BhcnNlOlhzKHthbGxvd0NvbW1lbnRzOiExfSksYXN0Rm9ybWF0OlwiZXN0cmVlLWpzb25cIn0pfSxHcz11YTt2YXIgZGE9ey4uLkhzLC4uLkdzfTt2YXIgS249RnQ7ZXhwb3J0e0tuIGFzIGRlZmF1bHQsZGEgYXMgcGFyc2Vyc307XG4iLCAidmFyIHVhPU9iamVjdC5jcmVhdGU7dmFyIFRuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgaWE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgYWE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIG9hPU9iamVjdC5nZXRQcm90b3R5cGVPZixwYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBjYT0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpLG9yPShlLHQpPT57Zm9yKHZhciByIGluIHQpVG4oZSxyLHtnZXQ6dFtyXSxlbnVtZXJhYmxlOiEwfSl9LGxhPShlLHQscixuKT0+e2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwifHx0eXBlb2YgdD09XCJmdW5jdGlvblwiKWZvcihsZXQgcyBvZiBhYSh0KSkhcGEuY2FsbChlLHMpJiZzIT09ciYmVG4oZSxzLHtnZXQ6KCk9PnRbc10sZW51bWVyYWJsZTohKG49aWEodCxzKSl8fG4uZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgbWE9KGUsdCxyKT0+KHI9ZSE9bnVsbD91YShvYShlKSk6e30sbGEodHx8IWV8fCFlLl9fZXNNb2R1bGU/VG4ocixcImRlZmF1bHRcIix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIEJzPShlLHQscik9PntpZighdC5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKFwiQ2Fubm90IFwiK3IpfTt2YXIgc3Q9KGUsdCxyKT0+KEJzKGUsdCxcInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkXCIpLHI/ci5jYWxsKGUpOnQuZ2V0KGUpKSxicz0oZSx0LHIpPT57aWYodC5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZVwiKTt0IGluc3RhbmNlb2YgV2Vha1NldD90LmFkZChlKTp0LnNldChlLHIpfSxQcz0oZSx0LHIsbik9PihCcyhlLHQsXCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkXCIpLG4/bi5jYWxsKGUscik6dC5zZXQoZSxyKSxyKTt2YXIgSGk9Y2EoaHQ9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoaHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7aHQuZXh0cmFjdD1lbDtodC5wYXJzZT1ybDtodC5wYXJzZVdpdGhDb21tZW50cz1WaTtodC5wcmludD1ubDtodC5zdHJpcD10bDt2YXIgSGM9L1xcKlxcLyQvLEtjPS9eXFwvXFwqXFwqPy8sWGk9L15cXHMqKFxcL1xcKlxcKj8oLnxcXHI/XFxuKSo/XFwqXFwvKS8semM9LyhefFxccyspXFwvXFwvKFteXFxyXFxuXSopL2cscWk9L14oXFxyP1xcbikrLyxRYz0vKD86XnxcXHI/XFxuKSAqKEBbXlxcclxcbl0qPykgKlxccj9cXG4gKig/IVteQFxcclxcbl0qXFwvXFwvW15dKikoW15AXFxyXFxuXFxzXVteQFxcclxcbl0rPykgKlxccj9cXG4vZyxXaT0vKD86XnxcXHI/XFxuKSAqQChcXFMrKSAqKFteXFxyXFxuXSopL2csWmM9LyhcXHI/XFxufF4pICpcXCogPy9nLCRpPVtdO2Z1bmN0aW9uIGVsKGUpe2xldCB0PWUubWF0Y2goWGkpO3JldHVybiB0P3RbMF0udHJpbUxlZnQoKTpcIlwifWZ1bmN0aW9uIHRsKGUpe2xldCB0PWUubWF0Y2goWGkpO3JldHVybiB0JiZ0WzBdP2Uuc3Vic3RyaW5nKHRbMF0ubGVuZ3RoKTplfWZ1bmN0aW9uIHJsKGUpe3JldHVybiBWaShlKS5wcmFnbWFzfWZ1bmN0aW9uIFZpKGUpe2xldCB0PWBcbmA7ZT1lLnJlcGxhY2UoS2MsXCJcIikucmVwbGFjZShIYyxcIlwiKS5yZXBsYWNlKFpjLFwiJDFcIik7bGV0IHI9XCJcIjtmb3IoO3IhPT1lOylyPWUsZT1lLnJlcGxhY2UoUWMsYCR7dH0kMSAkMiR7dH1gKTtlPWUucmVwbGFjZShxaSxcIlwiKS50cmltUmlnaHQoKTtsZXQgbj1PYmplY3QuY3JlYXRlKG51bGwpLHM9ZS5yZXBsYWNlKFdpLFwiXCIpLnJlcGxhY2UocWksXCJcIikudHJpbVJpZ2h0KCksdTtmb3IoO3U9V2kuZXhlYyhlKTspe2xldCBpPXVbMl0ucmVwbGFjZSh6YyxcIlwiKTt0eXBlb2Ygblt1WzFdXT09XCJzdHJpbmdcInx8QXJyYXkuaXNBcnJheShuW3VbMV1dKT9uW3VbMV1dPSRpLmNvbmNhdChuW3VbMV1dLGkpOm5bdVsxXV09aX1yZXR1cm57Y29tbWVudHM6cyxwcmFnbWFzOm59fWZ1bmN0aW9uIG5sKHtjb21tZW50czplPVwiXCIscHJhZ21hczp0PXt9fSl7bGV0IHI9YFxuYCxuPVwiLyoqXCIscz1cIiAqXCIsdT1cIiAqL1wiLGk9T2JqZWN0LmtleXModCksYT1pLm1hcChwPT5ZaShwLHRbcF0pKS5yZWR1Y2UoKHAsbSk9PnAuY29uY2F0KG0pLFtdKS5tYXAocD0+YCR7c30gJHtwfSR7cn1gKS5qb2luKFwiXCIpO2lmKCFlKXtpZihpLmxlbmd0aD09PTApcmV0dXJuXCJcIjtpZihpLmxlbmd0aD09PTEmJiFBcnJheS5pc0FycmF5KHRbaVswXV0pKXtsZXQgcD10W2lbMF1dO3JldHVybmAke259ICR7WWkoaVswXSxwKVswXX0ke3V9YH19bGV0IG89ZS5zcGxpdChyKS5tYXAocD0+YCR7c30gJHtwfWApLmpvaW4ocikrcjtyZXR1cm4gbityKyhlP286XCJcIikrKGUmJmkubGVuZ3RoP3MrcjpcIlwiKSthK3V9ZnVuY3Rpb24gWWkoZSx0KXtyZXR1cm4gJGkuY29uY2F0KHQpLm1hcChyPT5gQCR7ZX0gJHtyfWAudHJpbSgpKX19KTt2YXIgU3M9e307b3IoU3Mse2xhbmd1YWdlczooKT0+eWwsb3B0aW9uczooKT0+c2EscHJpbnRlcnM6KCk9Pm1sfSk7dmFyIGdzPXt9O29yKGdzLHtjYW5BdHRhY2hDb21tZW50OigpPT5XbyxlbWJlZDooKT0+TmksZXhwZXJpbWVudGFsRmVhdHVyZXM6KCk9PmlsLGdldENvbW1lbnRDaGlsZE5vZGVzOigpPT5ZbyxnZXRWaXNpdG9yS2V5czooKT0+ZnIsaGFuZGxlQ29tbWVudHM6KCk9PktuLGluc2VydFByYWdtYTooKT0+emksaXNCbG9ja0NvbW1lbnQ6KCk9PmFlLGlzR2FwOigpPT5YbyxtYXNzYWdlQXN0Tm9kZTooKT0+R2kscHJpbnQ6KCk9PklpLHByaW50Q29tbWVudDooKT0+VHUsd2lsbFByaW50T3duQ29tbWVudHM6KCk9PnpufSk7ZnVuY3Rpb24geWEoZSx0KXtsZXR7b3JpZ2luYWxUZXh0OnIsW1N5bWJvbC5mb3IoXCJjb21tZW50c1wiKV06bixsb2NTdGFydDpzLGxvY0VuZDp1LFtTeW1ib2wuZm9yKFwicHJpbnRlZENvbW1lbnRzXCIpXTppfT10LHtub2RlOmF9PWUsbz1zKGEpLHA9dShhKTtmb3IobGV0IG0gb2YgbilzKG0pPj1vJiZ1KG0pPD1wJiZpLmFkZChtKTtyZXR1cm4gci5zbGljZShvLHApfXZhciBrcz15YTt2YXIgS2U9XCJzdHJpbmdcIixqZT1cImFycmF5XCIsemU9XCJjdXJzb3JcIixNZT1cImluZGVudFwiLFJlPVwiYWxpZ25cIixRZT1cInRyaW1cIix1ZT1cImdyb3VwXCIseWU9XCJmaWxsXCIsRmU9XCJpZi1icmVha1wiLEplPVwiaW5kZW50LWlmLWJyZWFrXCIsTmU9XCJsaW5lLXN1ZmZpeFwiLFVlPVwibGluZS1zdWZmaXgtYm91bmRhcnlcIixpZT1cImxpbmVcIixiZT1cImxhYmVsXCIsUGU9XCJicmVhay1wYXJlbnRcIixwcj1uZXcgU2V0KFt6ZSxNZSxSZSxRZSx1ZSx5ZSxGZSxKZSxOZSxVZSxpZSxiZSxQZV0pO2Z1bmN0aW9uIERhKGUpe2lmKHR5cGVvZiBlPT1cInN0cmluZ1wiKXJldHVybiBLZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBqZTtpZighZSlyZXR1cm47bGV0e3R5cGU6dH09ZTtpZihwci5oYXModCkpcmV0dXJuIHR9dmFyIFplPURhO3ZhciBmYT1lPT5uZXcgSW50bC5MaXN0Rm9ybWF0KFwiZW4tVVNcIix7dHlwZTpcImRpc2p1bmN0aW9uXCJ9KS5mb3JtYXQoZSk7ZnVuY3Rpb24gRWEoZSl7bGV0IHQ9ZT09PW51bGw/XCJudWxsXCI6dHlwZW9mIGU7aWYodCE9PVwic3RyaW5nXCImJnQhPT1cIm9iamVjdFwiKXJldHVybmBVbmV4cGVjdGVkIGRvYyAnJHt0fScsIFxuRXhwZWN0ZWQgaXQgdG8gYmUgJ3N0cmluZycgb3IgJ29iamVjdCcuYDtpZihaZShlKSl0aHJvdyBuZXcgRXJyb3IoXCJkb2MgaXMgdmFsaWQuXCIpO2xldCByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKTtpZihyIT09XCJbb2JqZWN0IE9iamVjdF1cIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7cn0nLmA7bGV0IG49ZmEoWy4uLnByXS5tYXAocz0+YCcke3N9J2ApKTtyZXR1cm5gVW5leHBlY3RlZCBkb2MudHlwZSAnJHtlLnR5cGV9Jy5cbkV4cGVjdGVkIGl0IHRvIGJlICR7bn0uYH12YXIgeG49Y2xhc3MgZXh0ZW5kcyBFcnJvcntuYW1lPVwiSW52YWxpZERvY0Vycm9yXCI7Y29uc3RydWN0b3IodCl7c3VwZXIoRWEodCkpLHRoaXMuZG9jPXR9fSxsdD14bjt2YXIgSXM9e307ZnVuY3Rpb24gRmEoZSx0LHIsbil7bGV0IHM9W2VdO2Zvcig7cy5sZW5ndGg+MDspe2xldCB1PXMucG9wKCk7aWYodT09PUlzKXtyKHMucG9wKCkpO2NvbnRpbnVlfXImJnMucHVzaCh1LElzKTtsZXQgaT1aZSh1KTtpZighaSl0aHJvdyBuZXcgbHQodSk7aWYoKHQ9PW51bGw/dm9pZCAwOnQodSkpIT09ITEpc3dpdGNoKGkpe2Nhc2UgamU6Y2FzZSB5ZTp7bGV0IGE9aT09PWplP3U6dS5wYXJ0cztmb3IobGV0IG89YS5sZW5ndGgscD1vLTE7cD49MDstLXApcy5wdXNoKGFbcF0pO2JyZWFrfWNhc2UgRmU6cy5wdXNoKHUuZmxhdENvbnRlbnRzLHUuYnJlYWtDb250ZW50cyk7YnJlYWs7Y2FzZSB1ZTppZihuJiZ1LmV4cGFuZGVkU3RhdGVzKWZvcihsZXQgYT11LmV4cGFuZGVkU3RhdGVzLmxlbmd0aCxvPWEtMTtvPj0wOy0tbylzLnB1c2godS5leHBhbmRlZFN0YXRlc1tvXSk7ZWxzZSBzLnB1c2godS5jb250ZW50cyk7YnJlYWs7Y2FzZSBSZTpjYXNlIE1lOmNhc2UgSmU6Y2FzZSBiZTpjYXNlIE5lOnMucHVzaCh1LmNvbnRlbnRzKTticmVhaztjYXNlIEtlOmNhc2UgemU6Y2FzZSBRZTpjYXNlIFVlOmNhc2UgaWU6Y2FzZSBQZTpicmVhaztkZWZhdWx0OnRocm93IG5ldyBsdCh1KX19fXZhciBnbj1GYTt2YXIgTHM9KCk9Pnt9LEdlPUxzLGNyPUxzO2Z1bmN0aW9uIEUoZSl7cmV0dXJuIEdlKGUpLHt0eXBlOk1lLGNvbnRlbnRzOmV9fWZ1bmN0aW9uIERlKGUsdCl7cmV0dXJuIEdlKHQpLHt0eXBlOlJlLGNvbnRlbnRzOnQsbjplfX1mdW5jdGlvbiB5KGUsdD17fSl7cmV0dXJuIEdlKGUpLGNyKHQuZXhwYW5kZWRTdGF0ZXMsITApLHt0eXBlOnVlLGlkOnQuaWQsY29udGVudHM6ZSxicmVhazohIXQuc2hvdWxkQnJlYWssZXhwYW5kZWRTdGF0ZXM6dC5leHBhbmRlZFN0YXRlc319ZnVuY3Rpb24gd3MoZSl7cmV0dXJuIERlKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxlKX1mdW5jdGlvbiBPcyhlKXtyZXR1cm4gRGUoLTEsZSl9ZnVuY3Rpb24gcWUoZSx0KXtyZXR1cm4geShlWzBdLHsuLi50LGV4cGFuZGVkU3RhdGVzOmV9KX1mdW5jdGlvbiBTdChlKXtyZXR1cm4gY3IoZSkse3R5cGU6eWUscGFydHM6ZX19ZnVuY3Rpb24gUChlLHQ9XCJcIixyPXt9KXtyZXR1cm4gR2UoZSksdCE9PVwiXCImJkdlKHQpLHt0eXBlOkZlLGJyZWFrQ29udGVudHM6ZSxmbGF0Q29udGVudHM6dCxncm91cElkOnIuZ3JvdXBJZH19ZnVuY3Rpb24gbXQoZSx0KXtyZXR1cm4gR2UoZSkse3R5cGU6SmUsY29udGVudHM6ZSxncm91cElkOnQuZ3JvdXBJZCxuZWdhdGU6dC5uZWdhdGV9fWZ1bmN0aW9uIGhuKGUpe3JldHVybiBHZShlKSx7dHlwZTpOZSxjb250ZW50czplfX12YXIgQWU9e3R5cGU6VWV9LFRlPXt0eXBlOlBlfTt2YXIgU249e3R5cGU6aWUsaGFyZDohMH0sQ2E9e3R5cGU6aWUsaGFyZDohMCxsaXRlcmFsOiEwfSxBPXt0eXBlOmllfSxGPXt0eXBlOmllLHNvZnQ6ITB9LEM9W1NuLFRlXSxscj1bQ2EsVGVdLEJuPXt0eXBlOnplfTtmdW5jdGlvbiBCKGUsdCl7R2UoZSksY3IodCk7bGV0IHI9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspbiE9PTAmJnIucHVzaChlKSxyLnB1c2godFtuXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gdnMoZSx0LHIpe0dlKGUpO2xldCBuPWU7aWYodD4wKXtmb3IobGV0IHM9MDtzPE1hdGguZmxvb3IodC9yKTsrK3Mpbj1FKG4pO249RGUodCVyLG4pLG49RGUoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLG4pfXJldHVybiBufWZ1bmN0aW9uIGV0KGUsdCl7cmV0dXJuIEdlKHQpLGU/e3R5cGU6YmUsbGFiZWw6ZSxjb250ZW50czp0fTp0fXZhciBkYT0oZSx0LHIpPT57aWYoIShlJiZ0PT1udWxsKSlyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8dHlwZW9mIHQ9PVwic3RyaW5nXCI/dFtyPDA/dC5sZW5ndGgrcjpyXTp0LmF0KHIpfSx3PWRhO3ZhciBtcj1lPT57aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihlLnR5cGUhPT15ZSl0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdCBkb2MgdG8gYmUgJ2FycmF5JyBvciAnJHt5ZX0nLmApO3JldHVybiBlLnBhcnRzfTtmdW5jdGlvbiB1dChlLHQpe2lmKHR5cGVvZiBlPT1cInN0cmluZ1wiKXJldHVybiB0KGUpO2xldCByPW5ldyBNYXA7cmV0dXJuIG4oZSk7ZnVuY3Rpb24gbih1KXtpZihyLmhhcyh1KSlyZXR1cm4gci5nZXQodSk7bGV0IGk9cyh1KTtyZXR1cm4gci5zZXQodSxpKSxpfWZ1bmN0aW9uIHModSl7c3dpdGNoKFplKHUpKXtjYXNlIGplOnJldHVybiB0KHUubWFwKG4pKTtjYXNlIHllOnJldHVybiB0KHsuLi51LHBhcnRzOnUucGFydHMubWFwKG4pfSk7Y2FzZSBGZTpyZXR1cm4gdCh7Li4udSxicmVha0NvbnRlbnRzOm4odS5icmVha0NvbnRlbnRzKSxmbGF0Q29udGVudHM6bih1LmZsYXRDb250ZW50cyl9KTtjYXNlIHVlOntsZXR7ZXhwYW5kZWRTdGF0ZXM6aSxjb250ZW50czphfT11O3JldHVybiBpPyhpPWkubWFwKG4pLGE9aVswXSk6YT1uKGEpLHQoey4uLnUsY29udGVudHM6YSxleHBhbmRlZFN0YXRlczppfSl9Y2FzZSBSZTpjYXNlIE1lOmNhc2UgSmU6Y2FzZSBiZTpjYXNlIE5lOnJldHVybiB0KHsuLi51LGNvbnRlbnRzOm4odS5jb250ZW50cyl9KTtjYXNlIEtlOmNhc2UgemU6Y2FzZSBRZTpjYXNlIFVlOmNhc2UgaWU6Y2FzZSBQZTpyZXR1cm4gdCh1KTtkZWZhdWx0OnRocm93IG5ldyBsdCh1KX19fWZ1bmN0aW9uIGpzKGUsdCxyKXtsZXQgbj1yLHM9ITE7ZnVuY3Rpb24gdShpKXtpZihzKXJldHVybiExO2xldCBhPXQoaSk7YSE9PXZvaWQgMCYmKHM9ITAsbj1hKX1yZXR1cm4gZ24oZSx1KSxufWZ1bmN0aW9uIEFhKGUpe2lmKGUudHlwZT09PXVlJiZlLmJyZWFrfHxlLnR5cGU9PT1pZSYmZS5oYXJkfHxlLnR5cGU9PT1QZSlyZXR1cm4hMH1mdW5jdGlvbiBLKGUpe3JldHVybiBqcyhlLEFhLCExKX1mdW5jdGlvbiBfcyhlKXtpZihlLmxlbmd0aD4wKXtsZXQgdD13KCExLGUsLTEpOyF0LmV4cGFuZGVkU3RhdGVzJiYhdC5icmVhayYmKHQuYnJlYWs9XCJwcm9wYWdhdGVkXCIpfXJldHVybiBudWxsfWZ1bmN0aW9uIE1zKGUpe2xldCB0PW5ldyBTZXQscj1bXTtmdW5jdGlvbiBuKHUpe2lmKHUudHlwZT09PVBlJiZfcyhyKSx1LnR5cGU9PT11ZSl7aWYoci5wdXNoKHUpLHQuaGFzKHUpKXJldHVybiExO3QuYWRkKHUpfX1mdW5jdGlvbiBzKHUpe3UudHlwZT09PXVlJiZyLnBvcCgpLmJyZWFrJiZfcyhyKX1nbihlLG4scywhMCl9ZnVuY3Rpb24gVGEoZSl7cmV0dXJuIGUudHlwZT09PWllJiYhZS5oYXJkP2Uuc29mdD9cIlwiOlwiIFwiOmUudHlwZT09PUZlP2UuZmxhdENvbnRlbnRzOmV9ZnVuY3Rpb24gVXQoZSl7cmV0dXJuIHV0KGUsVGEpfWZ1bmN0aW9uIHhhKGUpe3N3aXRjaChaZShlKSl7Y2FzZSB5ZTppZihlLnBhcnRzLmV2ZXJ5KHQ9PnQ9PT1cIlwiKSlyZXR1cm5cIlwiO2JyZWFrO2Nhc2UgdWU6aWYoIWUuY29udGVudHMmJiFlLmlkJiYhZS5icmVhayYmIWUuZXhwYW5kZWRTdGF0ZXMpcmV0dXJuXCJcIjtpZihlLmNvbnRlbnRzLnR5cGU9PT11ZSYmZS5jb250ZW50cy5pZD09PWUuaWQmJmUuY29udGVudHMuYnJlYWs9PT1lLmJyZWFrJiZlLmNvbnRlbnRzLmV4cGFuZGVkU3RhdGVzPT09ZS5leHBhbmRlZFN0YXRlcylyZXR1cm4gZS5jb250ZW50czticmVhaztjYXNlIFJlOmNhc2UgTWU6Y2FzZSBKZTpjYXNlIE5lOmlmKCFlLmNvbnRlbnRzKXJldHVyblwiXCI7YnJlYWs7Y2FzZSBGZTppZighZS5mbGF0Q29udGVudHMmJiFlLmJyZWFrQ29udGVudHMpcmV0dXJuXCJcIjticmVhaztjYXNlIGplOntsZXQgdD1bXTtmb3IobGV0IHIgb2YgZSl7aWYoIXIpY29udGludWU7bGV0W24sLi4uc109QXJyYXkuaXNBcnJheShyKT9yOltyXTt0eXBlb2Ygbj09XCJzdHJpbmdcIiYmdHlwZW9mIHcoITEsdCwtMSk9PVwic3RyaW5nXCI/dFt0Lmxlbmd0aC0xXSs9bjp0LnB1c2gobiksdC5wdXNoKC4uLnMpfXJldHVybiB0Lmxlbmd0aD09PTA/XCJcIjp0Lmxlbmd0aD09PTE/dFswXTp0fWNhc2UgS2U6Y2FzZSB6ZTpjYXNlIFFlOmNhc2UgVWU6Y2FzZSBpZTpjYXNlIGJlOmNhc2UgUGU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgbHQoZSl9cmV0dXJuIGV9ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIHV0KGUsdD0+eGEodCkpfWZ1bmN0aW9uIHhlKGUsdD1scil7cmV0dXJuIHV0KGUscj0+dHlwZW9mIHI9PVwic3RyaW5nXCI/Qih0LHIuc3BsaXQoYFxuYCkpOnIpfWZ1bmN0aW9uIGdhKGUpe2lmKGUudHlwZT09PWllKXJldHVybiEwfWZ1bmN0aW9uIFJzKGUpe3JldHVybiBqcyhlLGdhLCExKX1mdW5jdGlvbiBHdChlLHQpe3JldHVybiBlLnR5cGU9PT1iZT97Li4uZSxjb250ZW50czp0KGUuY29udGVudHMpfTp0KGUpfWZ1bmN0aW9uIGhhKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wfXZhciBiPWhhO3ZhciBTYT0vXltcXCRBLVpfYS16XFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3N1xcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjFcXHUxQ0Y1XFx1MUNGNlxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkRcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRDVcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ11bXFwkMC05QS1aX2EtelxceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzAwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0ODMtXFx1MDQ4N1xcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjEwLVxcdTA2MUFcXHUwNjIwLVxcdTA2NjlcXHUwNjZFLVxcdTA2RDNcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLVxcdTA2RThcXHUwNkVBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMC1cXHUwNzRBXFx1MDc0RC1cXHUwN0IxXFx1MDdDMC1cXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgyRFxcdTA4NDAtXFx1MDg1QlxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA4RDQtXFx1MDhFMVxcdTA4RTMtXFx1MDk2M1xcdTA5NjYtXFx1MDk2RlxcdTA5NzEtXFx1MDk4M1xcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkMtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNFXFx1MDlEN1xcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUzXFx1MDlFNi1cXHUwOUYxXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRjlcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4LVxcdTBDNUFcXHUwQzYwLVxcdTBDNjNcXHUwQzY2LVxcdTBDNkZcXHUwQzgwLVxcdTBDODNcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JDLVxcdTBDQzRcXHUwQ0M2LVxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDREVcXHUwQ0UwLVxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YxXFx1MENGMlxcdTBEMDEtXFx1MEQwM1xcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0QtXFx1MEQ0NFxcdTBENDYtXFx1MEQ0OFxcdTBENEEtXFx1MEQ0RVxcdTBENTQtXFx1MEQ1N1xcdTBENUYtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGNlxcdTFDRjhcXHUxQ0Y5XFx1MUQwMC1cXHUxREY1XFx1MURGQi1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwMENcXHUyMDBEXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRFxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZENVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdBRVxcdUE3QjAtXFx1QTdCN1xcdUE3RjctXFx1QTgyN1xcdUE4NDAtXFx1QTg3M1xcdUE4ODAtXFx1QThDNVxcdUE4RDAtXFx1QThEOVxcdUE4RTAtXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QTkwMC1cXHVBOTJEXFx1QTkzMC1cXHVBOTUzXFx1QTk2MC1cXHVBOTdDXFx1QTk4MC1cXHVBOUMwXFx1QTlDRi1cXHVBOUQ5XFx1QTlFMC1cXHVBOUZFXFx1QUEwMC1cXHVBQTM2XFx1QUE0MC1cXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE2MC1cXHVBQTc2XFx1QUE3QS1cXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVGXFx1QUFGMi1cXHVBQUY2XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRlxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ10qJC8sQmE9ZT0+U2EudGVzdChlKSxKcz1CYTtmdW5jdGlvbiBiYShlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT1cIm9iamVjdFwifXZhciBOcz1iYTtmdW5jdGlvbipQYShlLHQpe2xldHtnZXRWaXNpdG9yS2V5czpyLGZpbHRlcjpuPSgpPT4hMH09dCxzPXU9Pk5zKHUpJiZuKHUpO2ZvcihsZXQgdSBvZiByKGUpKXtsZXQgaT1lW3VdO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpcyhhKSYmKHlpZWxkIGEpO2Vsc2UgcyhpKSYmKHlpZWxkIGkpfX1mdW5jdGlvbiprYShlLHQpe2xldCByPVtlXTtmb3IobGV0IG49MDtuPHIubGVuZ3RoO24rKyl7bGV0IHM9cltuXTtmb3IobGV0IHUgb2YgUGEocyx0KSl5aWVsZCB1LHIucHVzaCh1KX19ZnVuY3Rpb24gVXMoZSx7Z2V0VmlzaXRvcktleXM6dCxwcmVkaWNhdGU6cn0pe2ZvcihsZXQgbiBvZiBrYShlLHtnZXRWaXNpdG9yS2V5czp0fSkpaWYocihuKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB5cihlKXtyZXR1cm4odCxyLG4pPT57bGV0IHM9ISEobiE9bnVsbCYmbi5iYWNrd2FyZHMpO2lmKHI9PT0hMSlyZXR1cm4hMTtsZXR7bGVuZ3RoOnV9PXQsaT1yO2Zvcig7aT49MCYmaTx1Oyl7bGV0IGE9dC5jaGFyQXQoaSk7aWYoZSBpbnN0YW5jZW9mIFJlZ0V4cCl7aWYoIWUudGVzdChhKSlyZXR1cm4gaX1lbHNlIGlmKCFlLmluY2x1ZGVzKGEpKXJldHVybiBpO3M/aS0tOmkrK31yZXR1cm4gaT09PS0xfHxpPT09dT9pOiExfX12YXIgWWw9eXIoL1xccy8pLFdlPXlyKFwiIFx0XCIpLEdzPXlyKFwiLDsgXHRcIikscXM9eXIoL1teXFxuXFxyXS8pO2Z1bmN0aW9uIElhKGUsdCxyKXtsZXQgbj0hIShyIT1udWxsJiZyLmJhY2t3YXJkcyk7aWYodD09PSExKXJldHVybiExO2xldCBzPWUuY2hhckF0KHQpO2lmKG4pe2lmKGUuY2hhckF0KHQtMSk9PT1cIlxcclwiJiZzPT09YFxuYClyZXR1cm4gdC0yO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIHQtMX1lbHNle2lmKHM9PT1cIlxcclwiJiZlLmNoYXJBdCh0KzEpPT09YFxuYClyZXR1cm4gdCsyO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIHQrMX1yZXR1cm4gdH12YXIgWWU9SWE7ZnVuY3Rpb24gTGEoZSx0LHI9e30pe2xldCBuPVdlKGUsci5iYWNrd2FyZHM/dC0xOnQscikscz1ZZShlLG4scik7cmV0dXJuIG4hPT1zfXZhciB6PUxhO2Z1bmN0aW9uIHdhKGUsdCl7aWYodD09PSExKXJldHVybiExO2lmKGUuY2hhckF0KHQpPT09XCIvXCImJmUuY2hhckF0KHQrMSk9PT1cIipcIil7Zm9yKGxldCByPXQrMjtyPGUubGVuZ3RoOysrcilpZihlLmNoYXJBdChyKT09PVwiKlwiJiZlLmNoYXJBdChyKzEpPT09XCIvXCIpcmV0dXJuIHIrMn1yZXR1cm4gdH12YXIgYnQ9d2E7ZnVuY3Rpb24gT2EoZSx0KXtyZXR1cm4gdD09PSExPyExOmUuY2hhckF0KHQpPT09XCIvXCImJmUuY2hhckF0KHQrMSk9PT1cIi9cIj9xcyhlLHQpOnR9dmFyIFB0PU9hO2Z1bmN0aW9uIHZhKGUsdCl7bGV0IHI9bnVsbCxuPXQ7Zm9yKDtuIT09cjspcj1uLG49R3MoZSxuKSxuPWJ0KGUsbiksbj1XZShlLG4pO3JldHVybiBuPVB0KGUsbiksbj1ZZShlLG4pLG4hPT0hMSYmeihlLG4pfXZhciBrdD12YTt2YXIgV3M9KCk9Pi9bIyowLTldXFx1RkUwRj9cXHUyMEUzfFtcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRUQtXFx1MjNFRlxcdTIzRjFcXHUyM0YyXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCXFx1MjVGQ1xcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MjBcXHUyNjIyXFx1MjYyM1xcdTI2MjZcXHUyNjJBXFx1MjYyRVxcdTI2MkZcXHUyNjM4LVxcdTI2M0FcXHUyNjQwXFx1MjY0MlxcdTI2NDgtXFx1MjY1M1xcdTI2NUZcXHUyNjYwXFx1MjY2M1xcdTI2NjVcXHUyNjY2XFx1MjY2OFxcdTI2N0JcXHUyNjdFXFx1MjY3RlxcdTI2OTJcXHUyNjk0LVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBN1xcdTI2QUFcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkU5XFx1MjZGMC1cXHUyNkY1XFx1MjZGN1xcdTI2RjhcXHUyNkZBXFx1MjcwMlxcdTI3MDhcXHUyNzA5XFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NTdcXHUyNzYzXFx1MjdBMVxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV1cXHVGRTBGP3xbXFx1MjYxRFxcdTI3MENcXHUyNzBEXSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTI3MEFcXHUyNzBCXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNjkzXFx1MjZBMVxcdTI2QUJcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCNTBdfFxcdTI2RjkoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdTI3NjRcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSkpP3xcXHVEODNDKD86W1xcdURDMDRcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REUwMlxcdURFMzdcXHVERjIxXFx1REYyNC1cXHVERjJDXFx1REYzNlxcdURGN0RcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUVcXHVERjlGXFx1REZDRFxcdURGQ0VcXHVERkQ0LVxcdURGREZcXHVERkY1XFx1REZGN11cXHVGRTBGP3xbXFx1REY4NVxcdURGQzJcXHVERkM3XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERkMzXFx1REZDNFxcdURGQ0FdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURGQ0JcXHVERkNDXSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGN0NcXHVERjdFLVxcdURGODRcXHVERjg2LVxcdURGOTNcXHVERkEwLVxcdURGQzFcXHVERkM1XFx1REZDNlxcdURGQzhcXHVERkM5XFx1REZDRi1cXHVERkQzXFx1REZFMC1cXHVERkYwXFx1REZGOC1cXHVERkZGXXxcXHVEREU2XFx1RDgzQ1tcXHVEREU4LVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjJcXHVEREY0XFx1RERGNi1cXHVEREZBXFx1RERGQ1xcdURERkRcXHVEREZGXXxcXHVEREU3XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERThcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRVxcdURERjAtXFx1RERGNVxcdURERjdcXHVEREZBLVxcdURERkZdfFxcdURERTlcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdfFxcdURERUFcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXXxcXHVEREVCXFx1RDgzQ1tcXHVEREVFLVxcdURERjBcXHVEREYyXFx1RERGNFxcdURERjddfFxcdURERUNcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdfFxcdURERURcXHVEODNDW1xcdURERjBcXHVEREYyXFx1RERGM1xcdURERjdcXHVEREY5XFx1RERGQV18XFx1RERFRVxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XXxcXHVEREVGXFx1RDgzQ1tcXHVEREVBXFx1RERGMlxcdURERjRcXHVEREY1XXxcXHVEREYwXFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERGMVxcdUQ4M0NbXFx1RERFNi1cXHVEREU4XFx1RERFRVxcdURERjBcXHVEREY3LVxcdURERkJcXHVEREZFXXxcXHVEREYyXFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXXxcXHVEREYzXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdfFxcdURERjRcXHVEODNDXFx1RERGMnxcXHVEREY1XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdfFxcdURERjZcXHVEODNDXFx1RERFNnxcXHVEREY3XFx1RDgzQ1tcXHVEREVBXFx1RERGNFxcdURERjhcXHVEREZBXFx1RERGQ118XFx1RERGOFxcdUQ4M0NbXFx1RERFNi1cXHVEREVBXFx1RERFQy1cXHVEREY0XFx1RERGNy1cXHVEREY5XFx1RERGQlxcdURERkQtXFx1RERGRl18XFx1RERGOVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdfFxcdURERkFcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdfFxcdURERkJcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdfFxcdURERkNcXHVEODNDW1xcdURERUJcXHVEREY4XXxcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RERGRVxcdUQ4M0NbXFx1RERFQVxcdURERjldfFxcdURERkZcXHVEODNDW1xcdURERTZcXHVEREYyXFx1RERGQ118XFx1REZGM1xcdUZFMEY/KD86XFx1MjAwRCg/OlxcdTI2QTdcXHVGRTBGP3xcXHVEODNDXFx1REYwOCkpP3xcXHVERkY0KD86XFx1MjAwRFxcdTI2MjBcXHVGRTBGP3xcXHVEQjQwXFx1REM2N1xcdURCNDBcXHVEQzYyXFx1REI0MCg/OlxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3fFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGKT8pfFxcdUQ4M0QoPzpbXFx1REMwOFxcdURDMjZdKD86XFx1MjAwRFxcdTJCMUIpP3xbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdXFx1RkUwRj98W1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdURENzRcXHVERDkwXSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDMDAtXFx1REMwN1xcdURDMDktXFx1REMxNFxcdURDMTYtXFx1REMyNVxcdURDMjctXFx1REMzQVxcdURDM0MtXFx1REMzRVxcdURDNDBcXHVEQzQ0XFx1REM0NVxcdURDNTEtXFx1REM2NVxcdURDNkFcXHVEQzc5LVxcdURDN0JcXHVEQzdELVxcdURDODBcXHVEQzg0XFx1REM4OC1cXHVEQzhFXFx1REM5MFxcdURDOTItXFx1RENBOVxcdURDQUItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREQTRcXHVEREZCLVxcdURFMkRcXHVERTJGLVxcdURFMzRcXHVERTM3LVxcdURFNDRcXHVERTQ4LVxcdURFNEFcXHVERTgwLVxcdURFQTJcXHVERUE0LVxcdURFQjNcXHVERUI3LVxcdURFQkZcXHVERUMxLVxcdURFQzVcXHVERUQwLVxcdURFRDJcXHVERUQ1LVxcdURFRDdcXHVERURDLVxcdURFREZcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQ1xcdURGRTAtXFx1REZFQlxcdURGRjBdfFxcdURDMTUoPzpcXHUyMDBEXFx1RDgzRVxcdUREQkEpP3xcXHVEQzNCKD86XFx1MjAwRFxcdTI3NDRcXHVGRTBGPyk/fFxcdURDNDFcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RERFOFxcdUZFMEY/KT98XFx1REM2OCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldXFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzY5KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1tcXHVEQzY4XFx1REM2OV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT98XFx1REM2OVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPykpfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2Rig/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERDc1KD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHVERTJFKD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0E4KT98XFx1REUzNSg/OlxcdTIwMERcXHVEODNEXFx1RENBQik/fFxcdURFMzYoPzpcXHUyMDBEXFx1RDgzQ1xcdURGMkJcXHVGRTBGPyk/KXxcXHVEODNFKD86W1xcdUREMENcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQzMC1cXHVERDM0XFx1REQzNlxcdURENzdcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyXFx1REREM1xcdURERDVcXHVERUMzLVxcdURFQzVcXHVERUYwXFx1REVGMi1cXHVERUY4XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERERFXFx1RERERl0oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREMERcXHVERDBFXFx1REQxMC1cXHVERDE3XFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzgtXFx1RERCNFxcdUREQjdcXHVEREJBXFx1RERCQy1cXHVERENDXFx1REREMFxcdURERTAtXFx1RERGRlxcdURFNzAtXFx1REU3Q1xcdURFODAtXFx1REU4OFxcdURFOTAtXFx1REVCRFxcdURFQkYtXFx1REVDMlxcdURFQ0UtXFx1REVEQlxcdURFRTAtXFx1REVFOF18XFx1REQzQyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj98XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98XFx1REREMSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkMtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpPykpP3xcXHVERUYxKD86XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pP3xcXHVERkZDKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSk/fFxcdURGRkQoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKT98XFx1REZGRSg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pP3xcXHVERkZGKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKT8pKT8pL2c7dmFyIFlzPXtlYXN0QXNpYW5XaWR0aChlKXt2YXIgdD1lLmNoYXJDb2RlQXQoMCkscj1lLmxlbmd0aD09Mj9lLmNoYXJDb2RlQXQoMSk6MCxuPXQ7cmV0dXJuIDU1Mjk2PD10JiZ0PD01NjMxOSYmNTYzMjA8PXImJnI8PTU3MzQzJiYodCY9MTAyMyxyJj0xMDIzLG49dDw8MTB8cixuKz02NTUzNiksbj09MTIyODh8fDY1MjgxPD1uJiZuPD02NTM3Nnx8NjU1MDQ8PW4mJm48PTY1NTEwP1wiRlwiOjQzNTI8PW4mJm48PTQ0NDd8fDQ1MTU8PW4mJm48PTQ1MTl8fDQ2MDI8PW4mJm48PTQ2MDd8fDkwMDE8PW4mJm48PTkwMDJ8fDExOTA0PD1uJiZuPD0xMTkyOXx8MTE5MzE8PW4mJm48PTEyMDE5fHwxMjAzMjw9biYmbjw9MTIyNDV8fDEyMjcyPD1uJiZuPD0xMjI4M3x8MTIyODk8PW4mJm48PTEyMzUwfHwxMjM1Mzw9biYmbjw9MTI0Mzh8fDEyNDQxPD1uJiZuPD0xMjU0M3x8MTI1NDk8PW4mJm48PTEyNTg5fHwxMjU5Mzw9biYmbjw9MTI2ODZ8fDEyNjg4PD1uJiZuPD0xMjczMHx8MTI3MzY8PW4mJm48PTEyNzcxfHwxMjc4NDw9biYmbjw9MTI4MzB8fDEyODMyPD1uJiZuPD0xMjg3MXx8MTI4ODA8PW4mJm48PTEzMDU0fHwxMzA1Njw9biYmbjw9MTk5MDN8fDE5OTY4PD1uJiZuPD00MjEyNHx8NDIxMjg8PW4mJm48PTQyMTgyfHw0MzM2MDw9biYmbjw9NDMzODh8fDQ0MDMyPD1uJiZuPD01NTIwM3x8NTUyMTY8PW4mJm48PTU1MjM4fHw1NTI0Mzw9biYmbjw9NTUyOTF8fDYzNzQ0PD1uJiZuPD02NDI1NXx8NjUwNDA8PW4mJm48PTY1MDQ5fHw2NTA3Mjw9biYmbjw9NjUxMDZ8fDY1MTA4PD1uJiZuPD02NTEyNnx8NjUxMjg8PW4mJm48PTY1MTMxfHwxMTA1OTI8PW4mJm48PTExMDU5M3x8MTI3NDg4PD1uJiZuPD0xMjc0OTB8fDEyNzUwNDw9biYmbjw9MTI3NTQ2fHwxMjc1NTI8PW4mJm48PTEyNzU2MHx8MTI3NTY4PD1uJiZuPD0xMjc1Njl8fDEzMTA3Mjw9biYmbjw9MTk0MzY3fHwxNzc5ODQ8PW4mJm48PTE5NjYwNXx8MTk2NjA4PD1uJiZuPD0yNjIxNDE/XCJXXCI6XCJOXCJ9fTt2YXIgX2E9L1teXFx4MjAtXFx4N0ZdLztmdW5jdGlvbiBqYShlKXtpZighZSlyZXR1cm4gMDtpZighX2EudGVzdChlKSlyZXR1cm4gZS5sZW5ndGg7ZT1lLnJlcGxhY2UoV3MoKSxcIiAgXCIpO2xldCB0PTA7Zm9yKGxldCByIG9mIGUpe2xldCBuPXIuY29kZVBvaW50QXQoMCk7aWYobjw9MzF8fG4+PTEyNyYmbjw9MTU5fHxuPj03NjgmJm48PTg3OSljb250aW51ZTtsZXQgcz1Zcy5lYXN0QXNpYW5XaWR0aChyKTt0Kz1zPT09XCJGXCJ8fHM9PT1cIldcIj8yOjF9cmV0dXJuIHR9dmFyIHR0PWphO2Z1bmN0aW9uIFUoZSl7dmFyIG47bGV0IHQ9ZS5yYW5nZT9lLnJhbmdlWzBdOmUuc3RhcnQscj0oKG49ZS5kZWNsYXJhdGlvbik9PW51bGw/dm9pZCAwOm4uZGVjb3JhdG9ycyk/P2UuZGVjb3JhdG9ycztyZXR1cm4gYihyKT9NYXRoLm1pbihVKHJbMF0pLHQpOnR9ZnVuY3Rpb24gTyhlKXtyZXR1cm4gZS5yYW5nZT9lLnJhbmdlWzFdOmUuZW5kfWZ1bmN0aW9uIHl0KGUsdCl7bGV0IHI9VShlKTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihyKSYmcj09PVUodCl9ZnVuY3Rpb24gTWEoZSx0KXtsZXQgcj1PKGUpO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHIpJiZyPT09Tyh0KX1mdW5jdGlvbiBYcyhlLHQpe3JldHVybiB5dChlLHQpJiZNYShlLHQpfXZhciBxdD1udWxsO2Z1bmN0aW9uIFd0KGUpe2lmKHF0IT09bnVsbCYmdHlwZW9mIHF0LnByb3BlcnR5KXtsZXQgdD1xdDtyZXR1cm4gcXQ9V3QucHJvdG90eXBlPW51bGwsdH1yZXR1cm4gcXQ9V3QucHJvdG90eXBlPWU/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IFd0fXZhciBSYT0xMDtmb3IobGV0IGU9MDtlPD1SYTtlKyspV3QoKTtmdW5jdGlvbiBibihlKXtyZXR1cm4gV3QoZSl9ZnVuY3Rpb24gSmEoZSx0PVwidHlwZVwiKXtibihlKTtmdW5jdGlvbiByKG4pe2xldCBzPW5bdF0sdT1lW3NdO2lmKCFBcnJheS5pc0FycmF5KHUpKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7c30nLmApLHtub2RlOm59KTtyZXR1cm4gdX1yZXR1cm4gcn12YXIgRHI9SmE7dmFyICRzPXtBcnJheUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sQXNzaWdubWVudEV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sQmluYXJ5RXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxJbnRlcnByZXRlckRpcmVjdGl2ZTpbXSxEaXJlY3RpdmU6W1widmFsdWVcIl0sRGlyZWN0aXZlTGl0ZXJhbDpbXSxCbG9ja1N0YXRlbWVudDpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLEJyZWFrU3RhdGVtZW50OltcImxhYmVsXCJdLENhbGxFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxDYXRjaENsYXVzZTpbXCJwYXJhbVwiLFwiYm9keVwiXSxDb25kaXRpb25hbEV4cHJlc3Npb246W1widGVzdFwiLFwiY29uc2VxdWVudFwiLFwiYWx0ZXJuYXRlXCJdLENvbnRpbnVlU3RhdGVtZW50OltcImxhYmVsXCJdLERlYnVnZ2VyU3RhdGVtZW50OltdLERvV2hpbGVTdGF0ZW1lbnQ6W1widGVzdFwiLFwiYm9keVwiXSxFbXB0eVN0YXRlbWVudDpbXSxFeHByZXNzaW9uU3RhdGVtZW50OltcImV4cHJlc3Npb25cIl0sRmlsZTpbXCJwcm9ncmFtXCJdLEZvckluU3RhdGVtZW50OltcImxlZnRcIixcInJpZ2h0XCIsXCJib2R5XCJdLEZvclN0YXRlbWVudDpbXCJpbml0XCIsXCJ0ZXN0XCIsXCJ1cGRhdGVcIixcImJvZHlcIl0sRnVuY3Rpb25EZWNsYXJhdGlvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLEZ1bmN0aW9uRXhwcmVzc2lvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJZGVudGlmaWVyOltcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLElmU3RhdGVtZW50OltcInRlc3RcIixcImNvbnNlcXVlbnRcIixcImFsdGVybmF0ZVwiXSxMYWJlbGVkU3RhdGVtZW50OltcImxhYmVsXCIsXCJib2R5XCJdLFN0cmluZ0xpdGVyYWw6W10sTnVtZXJpY0xpdGVyYWw6W10sTnVsbExpdGVyYWw6W10sQm9vbGVhbkxpdGVyYWw6W10sUmVnRXhwTGl0ZXJhbDpbXSxMb2dpY2FsRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sTmV3RXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sUHJvZ3JhbTpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLE9iamVjdEV4cHJlc3Npb246W1wicHJvcGVydGllc1wiXSxPYmplY3RNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcImRlY29yYXRvcnNcIl0sUmVzdEVsZW1lbnQ6W1wiYXJndW1lbnRcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLFJldHVyblN0YXRlbWVudDpbXCJhcmd1bWVudFwiXSxTZXF1ZW5jZUV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sUGFyZW50aGVzaXplZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxTd2l0Y2hDYXNlOltcInRlc3RcIixcImNvbnNlcXVlbnRcIl0sU3dpdGNoU3RhdGVtZW50OltcImRpc2NyaW1pbmFudFwiLFwiY2FzZXNcIl0sVGhpc0V4cHJlc3Npb246W10sVGhyb3dTdGF0ZW1lbnQ6W1wiYXJndW1lbnRcIl0sVHJ5U3RhdGVtZW50OltcImJsb2NrXCIsXCJoYW5kbGVyXCIsXCJmaW5hbGl6ZXJcIl0sVW5hcnlFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLFVwZGF0ZUV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sVmFyaWFibGVEZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvbnNcIl0sVmFyaWFibGVEZWNsYXJhdG9yOltcImlkXCIsXCJpbml0XCJdLFdoaWxlU3RhdGVtZW50OltcInRlc3RcIixcImJvZHlcIl0sV2l0aFN0YXRlbWVudDpbXCJvYmplY3RcIixcImJvZHlcIl0sQXNzaWdubWVudFBhdHRlcm46W1wibGVmdFwiLFwicmlnaHRcIixcImRlY29yYXRvcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLEFycmF5UGF0dGVybjpbXCJlbGVtZW50c1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246W1wicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLENsYXNzQm9keTpbXCJib2R5XCJdLENsYXNzRXhwcmVzc2lvbjpbXCJpZFwiLFwiYm9keVwiLFwic3VwZXJDbGFzc1wiLFwibWl4aW5zXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwiaW1wbGVtZW50c1wiLFwiZGVjb3JhdG9yc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCJdLENsYXNzRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIixcInN1cGVyQ2xhc3NcIixcIm1peGluc1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVyVHlwZVBhcmFtZXRlcnNcIixcImltcGxlbWVudHNcIixcImRlY29yYXRvcnNcIixcInN1cGVyVHlwZUFyZ3VtZW50c1wiXSxFeHBvcnRBbGxEZWNsYXJhdGlvbjpbXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIixcImV4cG9ydGVkXCJdLEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiXSxFeHBvcnROYW1lZERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sRXhwb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJleHBvcnRlZFwiXSxGb3JPZlN0YXRlbWVudDpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm9keVwiXSxJbXBvcnREZWNsYXJhdGlvbjpbXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sSW1wb3J0RGVmYXVsdFNwZWNpZmllcjpbXCJsb2NhbFwiXSxJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6W1wibG9jYWxcIl0sSW1wb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJpbXBvcnRlZFwiXSxNZXRhUHJvcGVydHk6W1wibWV0YVwiLFwicHJvcGVydHlcIl0sQ2xhc3NNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFBhdHRlcm46W1wicHJvcGVydGllc1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sU3ByZWFkRWxlbWVudDpbXCJhcmd1bWVudFwiXSxTdXBlcjpbXSxUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246W1widGFnXCIsXCJxdWFzaVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVGVtcGxhdGVFbGVtZW50OltdLFRlbXBsYXRlTGl0ZXJhbDpbXCJxdWFzaXNcIixcImV4cHJlc3Npb25zXCJdLFlpZWxkRXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxBd2FpdEV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sSW1wb3J0OltdLEJpZ0ludExpdGVyYWw6W10sRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyOltcImV4cG9ydGVkXCJdLE9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLE9wdGlvbmFsQ2FsbEV4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLENsYXNzUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIixcInZhcmlhbmNlXCJdLENsYXNzQWNjZXNzb3JQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxDbGFzc1ByaXZhdGVQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJkZWNvcmF0b3JzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFyaWFuY2VcIl0sQ2xhc3NQcml2YXRlTWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxQcml2YXRlTmFtZTpbXCJpZFwiXSxTdGF0aWNCbG9jazpbXCJib2R5XCJdLEFueVR5cGVBbm5vdGF0aW9uOltdLEFycmF5VHlwZUFubm90YXRpb246W1wiZWxlbWVudFR5cGVcIl0sQm9vbGVhblR5cGVBbm5vdGF0aW9uOltdLEJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVsbExpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxDbGFzc0ltcGxlbWVudHM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLERlY2xhcmVDbGFzczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcIm1peGluc1wiLFwiaW1wbGVtZW50c1wiLFwiYm9keVwiXSxEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInByZWRpY2F0ZVwiXSxEZWNsYXJlSW50ZXJmYWNlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxEZWNsYXJlTW9kdWxlOltcImlkXCIsXCJib2R5XCJdLERlY2xhcmVNb2R1bGVFeHBvcnRzOltcInR5cGVBbm5vdGF0aW9uXCJdLERlY2xhcmVUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxEZWNsYXJlT3BhcXVlVHlwZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVydHlwZVwiXSxEZWNsYXJlVmFyaWFibGU6W1wiaWRcIl0sRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIl0sRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uOltcInNvdXJjZVwiXSxEZWNsYXJlZFByZWRpY2F0ZTpbXCJ2YWx1ZVwiXSxFeGlzdHNUeXBlQW5ub3RhdGlvbjpbXSxGdW5jdGlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJlc3RcIixcInJldHVyblR5cGVcIixcInRoaXNcIl0sRnVuY3Rpb25UeXBlUGFyYW06W1wibmFtZVwiLFwidHlwZUFubm90YXRpb25cIl0sR2VuZXJpY1R5cGVBbm5vdGF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbmZlcnJlZFByZWRpY2F0ZTpbXSxJbnRlcmZhY2VFeHRlbmRzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sSW50ZXJmYWNlVHlwZUFubm90YXRpb246W1wiZXh0ZW5kc1wiLFwiYm9keVwiXSxJbnRlcnNlY3Rpb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxNaXhlZFR5cGVBbm5vdGF0aW9uOltdLEVtcHR5VHlwZUFubm90YXRpb246W10sTnVsbGFibGVUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVtYmVyVHlwZUFubm90YXRpb246W10sT2JqZWN0VHlwZUFubm90YXRpb246W1wicHJvcGVydGllc1wiLFwiaW5kZXhlcnNcIixcImNhbGxQcm9wZXJ0aWVzXCIsXCJpbnRlcm5hbFNsb3RzXCJdLE9iamVjdFR5cGVJbnRlcm5hbFNsb3Q6W1wiaWRcIixcInZhbHVlXCIsXCJvcHRpb25hbFwiLFwic3RhdGljXCIsXCJtZXRob2RcIl0sT2JqZWN0VHlwZUNhbGxQcm9wZXJ0eTpbXCJ2YWx1ZVwiXSxPYmplY3RUeXBlSW5kZXhlcjpbXCJpZFwiLFwia2V5XCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sT2JqZWN0VHlwZVByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLE9iamVjdFR5cGVTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxPcGFxdWVUeXBlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJ0eXBlXCIsXCJpbXBsdHlwZVwiXSxRdWFsaWZpZWRUeXBlSWRlbnRpZmllcjpbXCJpZFwiLFwicXVhbGlmaWNhdGlvblwiXSxTdHJpbmdMaXRlcmFsVHlwZUFubm90YXRpb246W10sU3RyaW5nVHlwZUFubm90YXRpb246W10sU3ltYm9sVHlwZUFubm90YXRpb246W10sVGhpc1R5cGVBbm5vdGF0aW9uOltdLFR1cGxlVHlwZUFubm90YXRpb246W1widHlwZXNcIixcImVsZW1lbnRUeXBlc1wiXSxUeXBlb2ZUeXBlQW5ub3RhdGlvbjpbXCJhcmd1bWVudFwiXSxUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlQ2FzdEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVHlwZVBhcmFtZXRlcjpbXCJib3VuZFwiLFwiZGVmYXVsdFwiLFwidmFyaWFuY2VcIl0sVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOltcInBhcmFtc1wiXSxUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVW5pb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxWYXJpYW5jZTpbXSxWb2lkVHlwZUFubm90YXRpb246W10sRW51bURlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCJdLEVudW1Cb29sZWFuQm9keTpbXCJtZW1iZXJzXCJdLEVudW1OdW1iZXJCb2R5OltcIm1lbWJlcnNcIl0sRW51bVN0cmluZ0JvZHk6W1wibWVtYmVyc1wiXSxFbnVtU3ltYm9sQm9keTpbXCJtZW1iZXJzXCJdLEVudW1Cb29sZWFuTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1OdW1iZXJNZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bVN0cmluZ01lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtRGVmYXVsdGVkTWVtYmVyOltcImlkXCJdLEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxKU1hBdHRyaWJ1dGU6W1wibmFtZVwiLFwidmFsdWVcIl0sSlNYQ2xvc2luZ0VsZW1lbnQ6W1wibmFtZVwiXSxKU1hFbGVtZW50OltcIm9wZW5pbmdFbGVtZW50XCIsXCJjaGlsZHJlblwiLFwiY2xvc2luZ0VsZW1lbnRcIl0sSlNYRW1wdHlFeHByZXNzaW9uOltdLEpTWEV4cHJlc3Npb25Db250YWluZXI6W1wiZXhwcmVzc2lvblwiXSxKU1hTcHJlYWRDaGlsZDpbXCJleHByZXNzaW9uXCJdLEpTWElkZW50aWZpZXI6W10sSlNYTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLEpTWE5hbWVzcGFjZWROYW1lOltcIm5hbWVzcGFjZVwiLFwibmFtZVwiXSxKU1hPcGVuaW5nRWxlbWVudDpbXCJuYW1lXCIsXCJhdHRyaWJ1dGVzXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxKU1hTcHJlYWRBdHRyaWJ1dGU6W1wiYXJndW1lbnRcIl0sSlNYVGV4dDpbXSxKU1hGcmFnbWVudDpbXCJvcGVuaW5nRnJhZ21lbnRcIixcImNoaWxkcmVuXCIsXCJjbG9zaW5nRnJhZ21lbnRcIl0sSlNYT3BlbmluZ0ZyYWdtZW50OltdLEpTWENsb3NpbmdGcmFnbWVudDpbXSxOb29wOltdLFBsYWNlaG9sZGVyOltdLFY4SW50cmluc2ljSWRlbnRpZmllcjpbXSxBcmd1bWVudFBsYWNlaG9sZGVyOltdLEJpbmRFeHByZXNzaW9uOltcIm9iamVjdFwiLFwiY2FsbGVlXCJdLEltcG9ydEF0dHJpYnV0ZTpbXCJrZXlcIixcInZhbHVlXCJdLERlY29yYXRvcjpbXCJleHByZXNzaW9uXCJdLERvRXhwcmVzc2lvbjpbXCJib2R5XCJdLEV4cG9ydERlZmF1bHRTcGVjaWZpZXI6W1wiZXhwb3J0ZWRcIl0sUmVjb3JkRXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLFR1cGxlRXhwcmVzc2lvbjpbXCJlbGVtZW50c1wiXSxEZWNpbWFsTGl0ZXJhbDpbXSxNb2R1bGVFeHByZXNzaW9uOltcImJvZHlcIl0sVG9waWNSZWZlcmVuY2U6W10sUGlwZWxpbmVUb3BpY0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxQaXBlbGluZUJhcmVGdW5jdGlvbjpbXCJjYWxsZWVcIl0sUGlwZWxpbmVQcmltYXJ5VG9waWNSZWZlcmVuY2U6W10sVFNQYXJhbWV0ZXJQcm9wZXJ0eTpbXCJwYXJhbWV0ZXJcIixcImRlY29yYXRvcnNcIl0sVFNEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIixcImJvZHlcIl0sVFNEZWNsYXJlTWV0aG9kOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1F1YWxpZmllZE5hbWU6W1wibGVmdFwiLFwicmlnaHRcIl0sVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1Byb3BlcnR5U2lnbmF0dXJlOltcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNNZXRob2RTaWduYXR1cmU6W1wia2V5XCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0luZGV4U2lnbmF0dXJlOltcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQW55S2V5d29yZDpbXSxUU0Jvb2xlYW5LZXl3b3JkOltdLFRTQmlnSW50S2V5d29yZDpbXSxUU0ludHJpbnNpY0tleXdvcmQ6W10sVFNOZXZlcktleXdvcmQ6W10sVFNOdWxsS2V5d29yZDpbXSxUU051bWJlcktleXdvcmQ6W10sVFNPYmplY3RLZXl3b3JkOltdLFRTU3RyaW5nS2V5d29yZDpbXSxUU1N5bWJvbEtleXdvcmQ6W10sVFNVbmRlZmluZWRLZXl3b3JkOltdLFRTVW5rbm93bktleXdvcmQ6W10sVFNWb2lkS2V5d29yZDpbXSxUU1RoaXNUeXBlOltdLFRTRnVuY3Rpb25UeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTQ29uc3RydWN0b3JUeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTVHlwZVJlZmVyZW5jZTpbXCJ0eXBlTmFtZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNUeXBlUHJlZGljYXRlOltcInBhcmFtZXRlck5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZVF1ZXJ5OltcImV4cHJOYW1lXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU1R5cGVMaXRlcmFsOltcIm1lbWJlcnNcIl0sVFNBcnJheVR5cGU6W1wiZWxlbWVudFR5cGVcIl0sVFNUdXBsZVR5cGU6W1wiZWxlbWVudFR5cGVzXCJdLFRTT3B0aW9uYWxUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTUmVzdFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNOYW1lZFR1cGxlTWVtYmVyOltcImxhYmVsXCIsXCJlbGVtZW50VHlwZVwiXSxUU1VuaW9uVHlwZTpbXCJ0eXBlc1wiXSxUU0ludGVyc2VjdGlvblR5cGU6W1widHlwZXNcIl0sVFNDb25kaXRpb25hbFR5cGU6W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiLFwidHJ1ZVR5cGVcIixcImZhbHNlVHlwZVwiXSxUU0luZmVyVHlwZTpbXCJ0eXBlUGFyYW1ldGVyXCJdLFRTUGFyZW50aGVzaXplZFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlT3BlcmF0b3I6W1widHlwZUFubm90YXRpb25cIl0sVFNJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sVFNNYXBwZWRUeXBlOltcInR5cGVQYXJhbWV0ZXJcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJuYW1lVHlwZVwiXSxUU0xpdGVyYWxUeXBlOltcImxpdGVyYWxcIl0sVFNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sVFNJbnRlcmZhY2VCb2R5OltcImJvZHlcIl0sVFNUeXBlQWxpYXNEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNBc0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVFNTYXRpc2ZpZXNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZUFzc2VydGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiLFwiZXhwcmVzc2lvblwiXSxUU0VudW1EZWNsYXJhdGlvbjpbXCJpZFwiLFwibWVtYmVyc1wiXSxUU0VudW1NZW1iZXI6W1wiaWRcIixcImluaXRpYWxpemVyXCJdLFRTTW9kdWxlRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIl0sVFNNb2R1bGVCbG9jazpbXCJib2R5XCJdLFRTSW1wb3J0VHlwZTpbXCJhcmd1bWVudFwiLFwicXVhbGlmaWVyXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOltcImlkXCIsXCJtb2R1bGVSZWZlcmVuY2VcIl0sVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZTpbXCJleHByZXNzaW9uXCJdLFRTTm9uTnVsbEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxUU0V4cG9ydEFzc2lnbm1lbnQ6W1wiZXhwcmVzc2lvblwiXSxUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uOltcImlkXCJdLFRTVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246W1wicGFyYW1zXCJdLFRTVHlwZVBhcmFtZXRlcjpbXCJjb25zdHJhaW50XCIsXCJkZWZhdWx0XCIsXCJuYW1lXCJdLENoYWluRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLEV4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxFeHBlcmltZW50YWxTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxJbXBvcnRFeHByZXNzaW9uOltcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiXSxMaXRlcmFsOltdLE1ldGhvZERlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ2YWx1ZVwiXSxQcml2YXRlSWRlbnRpZmllcjpbXSxQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCJdLFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sQWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiXSxUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQWJzdHJhY3RLZXl3b3JkOltdLFRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uOltcImtleVwiLFwidmFsdWVcIl0sVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQXN5bmNLZXl3b3JkOltdLFRTQ2xhc3NJbXBsZW1lbnRzOltcImV4cHJlc3Npb25cIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTRGVjbGFyZUtleXdvcmQ6W10sVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNFeHBvcnRLZXl3b3JkOltdLFRTSW50ZXJmYWNlSGVyaXRhZ2U6W1wiZXhwcmVzc2lvblwiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNQcml2YXRlS2V5d29yZDpbXSxUU1Byb3RlY3RlZEtleXdvcmQ6W10sVFNQdWJsaWNLZXl3b3JkOltdLFRTUmVhZG9ubHlLZXl3b3JkOltdLFRTU3RhdGljS2V5d29yZDpbXSxUU1RlbXBsYXRlTGl0ZXJhbFR5cGU6W1wicXVhc2lzXCIsXCJ0eXBlc1wiXSxCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb246W10sQmlnSW50VHlwZUFubm90YXRpb246W10sQ29uZGl0aW9uYWxUeXBlQW5ub3RhdGlvbjpbXCJjaGVja1R5cGVcIixcImV4dGVuZHNUeXBlXCIsXCJ0cnVlVHlwZVwiLFwiZmFsc2VUeXBlXCJdLERlY2xhcmVFbnVtOltcImlkXCIsXCJib2R5XCJdLEluZmVyVHlwZUFubm90YXRpb246W1widHlwZVBhcmFtZXRlclwiXSxLZXlvZlR5cGVBbm5vdGF0aW9uOltcImFyZ3VtZW50XCJdLE9iamVjdFR5cGVNYXBwZWRUeXBlUHJvcGVydHk6W1wia2V5VHBhcmFtXCIsXCJwcm9wVHlwZVwiLFwic291cmNlVHlwZVwiLFwidmFyaWFuY2VcIl0sUXVhbGlmaWVkVHlwZW9mSWRlbnRpZmllcjpbXCJxdWFsaWZpY2F0aW9uXCIsXCJpZFwiXSxUdXBsZVR5cGVMYWJlbGVkRWxlbWVudDpbXCJsYWJlbFwiLFwiZWxlbWVudFR5cGVcIixcInZhcmlhbmNlXCJdLFR1cGxlVHlwZVNwcmVhZEVsZW1lbnQ6W1wibGFiZWxcIixcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVQcmVkaWNhdGU6W1wicGFyYW1ldGVyTmFtZVwiLFwidHlwZUFubm90YXRpb25cIixcImFzc2VydHNcIl0sTkdSb290OltcIm5vZGVcIl0sTkdQaXBlRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYXJndW1lbnRzXCJdLE5HQ2hhaW5lZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sTkdFbXB0eUV4cHJlc3Npb246W10sTkdNaWNyb3N5bnRheDpbXCJib2R5XCJdLE5HTWljcm9zeW50YXhLZXk6W10sTkdNaWNyb3N5bnRheEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwiYWxpYXNcIl0sTkdNaWNyb3N5bnRheEtleWVkRXhwcmVzc2lvbjpbXCJrZXlcIixcImV4cHJlc3Npb25cIl0sTkdNaWNyb3N5bnRheExldDpbXCJrZXlcIixcInZhbHVlXCJdLE5HTWljcm9zeW50YXhBczpbXCJrZXlcIixcImFsaWFzXCJdLEpzRXhwcmVzc2lvblJvb3Q6W1wibm9kZVwiXSxKc29uUm9vdDpbXCJub2RlXCJdLFRTSlNEb2NBbGxUeXBlOltdLFRTSlNEb2NVbmtub3duVHlwZTpbXSxUU0pTRG9jTnVsbGFibGVUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTSlNEb2NOb25OdWxsYWJsZVR5cGU6W1widHlwZUFubm90YXRpb25cIl0sTmV2ZXJUeXBlQW5ub3RhdGlvbjpbXSxVbmRlZmluZWRUeXBlQW5ub3RhdGlvbjpbXSxVbmtub3duVHlwZUFubm90YXRpb246W119O3ZhciBOYT1EcigkcyksZnI9TmE7ZnVuY3Rpb24gVWEoZSl7cmV0dXJuIGU9bmV3IFNldChlKSx0PT5lLmhhcyh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpfXZhciBqPVVhO3ZhciBHYT1qKFtcIkJsb2NrXCIsXCJDb21tZW50QmxvY2tcIixcIk11bHRpTGluZVwiXSksYWU9R2E7ZnVuY3Rpb24gcWEoZSx0KXtsZXQgcj10LnNwbGl0KFwiLlwiKTtmb3IobGV0IG49ci5sZW5ndGgtMTtuPj0wO24tLSl7bGV0IHM9cltuXTtpZihuPT09MClyZXR1cm4gZS50eXBlPT09XCJJZGVudGlmaWVyXCImJmUubmFtZT09PXM7aWYoZS50eXBlIT09XCJNZW1iZXJFeHByZXNzaW9uXCJ8fGUub3B0aW9uYWx8fGUuY29tcHV0ZWR8fGUucHJvcGVydHkudHlwZSE9PVwiSWRlbnRpZmllclwifHxlLnByb3BlcnR5Lm5hbWUhPT1zKXJldHVybiExO2U9ZS5vYmplY3R9fWZ1bmN0aW9uIFdhKGUsdCl7cmV0dXJuIHQuc29tZShyPT5xYShlLHIpKX12YXIgVnM9V2E7dmFyIFlhPWooW1wiQW55VHlwZUFubm90YXRpb25cIixcIlRoaXNUeXBlQW5ub3RhdGlvblwiLFwiTnVtYmVyVHlwZUFubm90YXRpb25cIixcIlZvaWRUeXBlQW5ub3RhdGlvblwiLFwiQm9vbGVhblR5cGVBbm5vdGF0aW9uXCIsXCJCaWdJbnRUeXBlQW5ub3RhdGlvblwiLFwiU3ltYm9sVHlwZUFubm90YXRpb25cIixcIlN0cmluZ1R5cGVBbm5vdGF0aW9uXCIsXCJOZXZlclR5cGVBbm5vdGF0aW9uXCIsXCJVbmRlZmluZWRUeXBlQW5ub3RhdGlvblwiLFwiVW5rbm93blR5cGVBbm5vdGF0aW9uXCIsXCJFbXB0eVR5cGVBbm5vdGF0aW9uXCIsXCJNaXhlZFR5cGVBbm5vdGF0aW9uXCJdKSxFcj1ZYTtmdW5jdGlvbiBYYSh7dHlwZTplfSl7cmV0dXJuIGUuc3RhcnRzV2l0aChcIlRTXCIpJiZlLmVuZHNXaXRoKFwiS2V5d29yZFwiKX12YXIgRnI9WGE7ZnVuY3Rpb24gWHQoZSx0KXtyZXR1cm4gdChlKXx8VXMoZSx7Z2V0VmlzaXRvcktleXM6ZnIscHJlZGljYXRlOnR9KX1mdW5jdGlvbiBMdChlKXtyZXR1cm4gZS50eXBlPT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwifHxlLnR5cGU9PT1cIkJpbmFyeUV4cHJlc3Npb25cInx8ZS50eXBlPT09XCJMb2dpY2FsRXhwcmVzc2lvblwifHxlLnR5cGU9PT1cIk5HUGlwZUV4cHJlc3Npb25cInx8ZS50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cInx8ayhlKXx8SihlKXx8ZS50eXBlPT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cInx8ZS50eXBlPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cInx8ZS50eXBlPT09XCJCaW5kRXhwcmVzc2lvblwifHxlLnR5cGU9PT1cIlVwZGF0ZUV4cHJlc3Npb25cIiYmIWUucHJlZml4fHxMZShlKXx8ZS50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCJ8fGUudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCJ9ZnVuY3Rpb24genMoZSl7cmV0dXJuIGUuZXhwcmVzc2lvbnM/ZS5leHByZXNzaW9uc1swXTplLmxlZnQ/P2UudGVzdD8/ZS5jYWxsZWU/P2Uub2JqZWN0Pz9lLnRhZz8/ZS5hcmd1bWVudD8/ZS5leHByZXNzaW9ufWZ1bmN0aW9uIGRyKGUpe2lmKGUuZXhwcmVzc2lvbnMpcmV0dXJuW1wiZXhwcmVzc2lvbnNcIiwwXTtpZihlLmxlZnQpcmV0dXJuW1wibGVmdFwiXTtpZihlLnRlc3QpcmV0dXJuW1widGVzdFwiXTtpZihlLm9iamVjdClyZXR1cm5bXCJvYmplY3RcIl07aWYoZS5jYWxsZWUpcmV0dXJuW1wiY2FsbGVlXCJdO2lmKGUudGFnKXJldHVybltcInRhZ1wiXTtpZihlLmFyZ3VtZW50KXJldHVybltcImFyZ3VtZW50XCJdO2lmKGUuZXhwcmVzc2lvbilyZXR1cm5bXCJleHByZXNzaW9uXCJdO3Rocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgbm9kZSBoYXMgbm8gbGVmdCBzaWRlLlwiKX12YXIgJHQ9aihbXCJMaW5lXCIsXCJDb21tZW50TGluZVwiLFwiU2luZ2xlTGluZVwiLFwiSGFzaGJhbmdDb21tZW50XCIsXCJIVE1MT3BlblwiLFwiSFRNTENsb3NlXCIsXCJIYXNoYmFuZ1wiLFwiSW50ZXJwcmV0ZXJEaXJlY3RpdmVcIl0pLFFzPWooW1wiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIsXCJEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb25cIixcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIixcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCIsXCJEZWNsYXJlRXhwb3J0QWxsRGVjbGFyYXRpb25cIl0pLEc9aihbXCJBcnJheUV4cHJlc3Npb25cIixcIlR1cGxlRXhwcmVzc2lvblwiXSksZWU9aihbXCJPYmplY3RFeHByZXNzaW9uXCIsXCJSZWNvcmRFeHByZXNzaW9uXCJdKTtmdW5jdGlvbiBoZShlKXtyZXR1cm4gZS50eXBlPT09XCJOdW1lcmljTGl0ZXJhbFwifHxlLnR5cGU9PT1cIkxpdGVyYWxcIiYmdHlwZW9mIGUudmFsdWU9PVwibnVtYmVyXCJ9ZnVuY3Rpb24gQXIoZSl7cmV0dXJuIGUudHlwZT09PVwiVW5hcnlFeHByZXNzaW9uXCImJihlLm9wZXJhdG9yPT09XCIrXCJ8fGUub3BlcmF0b3I9PT1cIi1cIikmJmhlKGUuYXJndW1lbnQpfWZ1bmN0aW9uIFEoZSl7cmV0dXJuIGUudHlwZT09PVwiU3RyaW5nTGl0ZXJhbFwifHxlLnR5cGU9PT1cIkxpdGVyYWxcIiYmdHlwZW9mIGUudmFsdWU9PVwic3RyaW5nXCJ9ZnVuY3Rpb24gd24oZSl7cmV0dXJuIGUudHlwZT09PVwiUmVnRXhwTGl0ZXJhbFwifHxlLnR5cGU9PT1cIkxpdGVyYWxcIiYmISFlLnJlZ2V4fXZhciBrZT1qKFtcIk9iamVjdFR5cGVBbm5vdGF0aW9uXCIsXCJUU1R5cGVMaXRlcmFsXCIsXCJUU01hcHBlZFR5cGVcIl0pLEl0PWooW1wiRnVuY3Rpb25FeHByZXNzaW9uXCIsXCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiXSk7ZnVuY3Rpb24gJGEoZSl7cmV0dXJuIGUudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCJ8fGUudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmZS5ib2R5LnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCJ9ZnVuY3Rpb24gUG4oZSl7cmV0dXJuIGsoZSkmJmUuY2FsbGVlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmW1wiYXN5bmNcIixcImluamVjdFwiLFwiZmFrZUFzeW5jXCIsXCJ3YWl0Rm9yQXN5bmNcIl0uaW5jbHVkZXMoZS5jYWxsZWUubmFtZSl9dmFyIFk9aihbXCJKU1hFbGVtZW50XCIsXCJKU1hGcmFnbWVudFwiXSk7ZnVuY3Rpb24gT24oZSl7cmV0dXJuIGUua2luZD09PVwiZ2V0XCJ8fGUua2luZD09PVwic2V0XCJ9ZnVuY3Rpb24gdm4oZSl7cmV0dXJuIE9uKGUpfHx5dChlLGUudmFsdWUpfWZ1bmN0aW9uIFRyKGUpe3JldHVybihlLnR5cGU9PT1cIk9iamVjdFR5cGVQcm9wZXJ0eVwifHxlLnR5cGU9PT1cIk9iamVjdFR5cGVJbnRlcm5hbFNsb3RcIikmJmUudmFsdWUudHlwZT09PVwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiJiYhZS5zdGF0aWMmJiF2bihlKX1mdW5jdGlvbiBacyhlKXtyZXR1cm4oZS50eXBlPT09XCJUeXBlQW5ub3RhdGlvblwifHxlLnR5cGU9PT1cIlRTVHlwZUFubm90YXRpb25cIikmJmUudHlwZUFubm90YXRpb24udHlwZT09PVwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiJiYhZS5zdGF0aWMmJiF5dChlLGUudHlwZUFubm90YXRpb24pfXZhciBjZT1qKFtcIkJpbmFyeUV4cHJlc3Npb25cIixcIkxvZ2ljYWxFeHByZXNzaW9uXCIsXCJOR1BpcGVFeHByZXNzaW9uXCJdKTtmdW5jdGlvbiBEdChlKXtyZXR1cm4gSihlKXx8ZS50eXBlPT09XCJCaW5kRXhwcmVzc2lvblwiJiYhIWUub2JqZWN0fXZhciBWYT1qKFtcIlRTVGhpc1R5cGVcIixcIk51bGxMaXRlcmFsVHlwZUFubm90YXRpb25cIixcIkJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb25cIixcIlN0cmluZ0xpdGVyYWxUeXBlQW5ub3RhdGlvblwiLFwiQmlnSW50TGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIsXCJOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb25cIixcIlRTTGl0ZXJhbFR5cGVcIixcIlRTVGVtcGxhdGVMaXRlcmFsVHlwZVwiXSk7ZnVuY3Rpb24gd3QoZSl7cmV0dXJuIEZyKGUpfHxFcihlKXx8VmEoZSl8fChlLnR5cGU9PT1cIkdlbmVyaWNUeXBlQW5ub3RhdGlvblwifHxlLnR5cGU9PT1cIlRTVHlwZVJlZmVyZW5jZVwiKSYmIWUudHlwZVBhcmFtZXRlcnN9ZnVuY3Rpb24gSGEoZSl7bGV0IHQ9L14oPzpiZWZvcmV8YWZ0ZXIpKD86RWFjaHxBbGwpJC87cmV0dXJuIGUuY2FsbGVlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmZS5hcmd1bWVudHMubGVuZ3RoPT09MSYmdC50ZXN0KGUuY2FsbGVlLm5hbWUpfXZhciBLYT1bXCJpdFwiLFwiaXQub25seVwiLFwiaXQuc2tpcFwiLFwiZGVzY3JpYmVcIixcImRlc2NyaWJlLm9ubHlcIixcImRlc2NyaWJlLnNraXBcIixcInRlc3RcIixcInRlc3Qub25seVwiLFwidGVzdC5za2lwXCIsXCJ0ZXN0LnN0ZXBcIixcInRlc3QuZGVzY3JpYmVcIixcInRlc3QuZGVzY3JpYmUub25seVwiLFwidGVzdC5kZXNjcmliZS5wYXJhbGxlbFwiLFwidGVzdC5kZXNjcmliZS5wYXJhbGxlbC5vbmx5XCIsXCJ0ZXN0LmRlc2NyaWJlLnNlcmlhbFwiLFwidGVzdC5kZXNjcmliZS5zZXJpYWwub25seVwiLFwic2tpcFwiLFwieGl0XCIsXCJ4ZGVzY3JpYmVcIixcInh0ZXN0XCIsXCJmaXRcIixcImZkZXNjcmliZVwiLFwiZnRlc3RcIl07ZnVuY3Rpb24gemEoZSl7cmV0dXJuIFZzKGUsS2EpfWZ1bmN0aW9uIEN0KGUsdCl7aWYoZS50eXBlIT09XCJDYWxsRXhwcmVzc2lvblwiKXJldHVybiExO2lmKGUuYXJndW1lbnRzLmxlbmd0aD09PTEpe2lmKFBuKGUpJiZ0JiZDdCh0KSlyZXR1cm4gSXQoZS5hcmd1bWVudHNbMF0pO2lmKEhhKGUpKXJldHVybiBQbihlLmFyZ3VtZW50c1swXSl9ZWxzZSBpZigoZS5hcmd1bWVudHMubGVuZ3RoPT09Mnx8ZS5hcmd1bWVudHMubGVuZ3RoPT09MykmJihlLmFyZ3VtZW50c1swXS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcInx8UShlLmFyZ3VtZW50c1swXSkpJiZ6YShlLmNhbGxlZSkpcmV0dXJuIGUuYXJndW1lbnRzWzJdJiYhaGUoZS5hcmd1bWVudHNbMl0pPyExOihlLmFyZ3VtZW50cy5sZW5ndGg9PT0yP0l0KGUuYXJndW1lbnRzWzFdKTokYShlLmFyZ3VtZW50c1sxXSkmJlgoZS5hcmd1bWVudHNbMV0pLmxlbmd0aDw9MSl8fFBuKGUuYXJndW1lbnRzWzFdKTtyZXR1cm4hMX12YXIgaz1qKFtcIkNhbGxFeHByZXNzaW9uXCIsXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCJdKSxKPWooW1wiTWVtYmVyRXhwcmVzc2lvblwiLFwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCJdKTtmdW5jdGlvbiBldShlKXtsZXQgdD1cImV4cHJlc3Npb25zXCI7ZS50eXBlPT09XCJUU1RlbXBsYXRlTGl0ZXJhbFR5cGVcIiYmKHQ9XCJ0eXBlc1wiKTtsZXQgcj1lW3RdO3JldHVybiByLmxlbmd0aD09PTA/ITE6ci5ldmVyeShuPT57aWYoZChuKSlyZXR1cm4hMTtpZihuLnR5cGU9PT1cIklkZW50aWZpZXJcInx8bi50eXBlPT09XCJUaGlzRXhwcmVzc2lvblwiKXJldHVybiEwO2lmKG4udHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCImJihuPW4uZXhwcmVzc2lvbiksSihuKSl7bGV0IHM9bjtmb3IoO0oocyk7KWlmKHMucHJvcGVydHkudHlwZSE9PVwiSWRlbnRpZmllclwiJiZzLnByb3BlcnR5LnR5cGUhPT1cIkxpdGVyYWxcIiYmcy5wcm9wZXJ0eS50eXBlIT09XCJTdHJpbmdMaXRlcmFsXCImJnMucHJvcGVydHkudHlwZSE9PVwiTnVtZXJpY0xpdGVyYWxcInx8KHM9cy5vYmplY3QsZChzKSkpcmV0dXJuITE7cmV0dXJuIHMudHlwZT09PVwiSWRlbnRpZmllclwifHxzLnR5cGU9PT1cIlRoaXNFeHByZXNzaW9uXCJ9cmV0dXJuITF9KX1mdW5jdGlvbiBJZShlLHQpe3JldHVybiBZKHQpP2R0KHQpOmQodCx4LkxlYWRpbmcscj0+eihlLE8ocikpKX1mdW5jdGlvbiBfbihlLHQpe3JldHVybiB0LnBhcnNlciE9PVwianNvblwiJiZRKGUua2V5KSYmb2UoZS5rZXkpLnNsaWNlKDEsLTEpPT09ZS5rZXkudmFsdWUmJihKcyhlLmtleS52YWx1ZSkmJiEodC5wYXJzZXI9PT1cImJhYmVsLXRzXCImJmUudHlwZT09PVwiQ2xhc3NQcm9wZXJ0eVwifHx0LnBhcnNlcj09PVwidHlwZXNjcmlwdFwiJiZlLnR5cGU9PT1cIlByb3BlcnR5RGVmaW5pdGlvblwiKXx8am4oZS5rZXkudmFsdWUpJiZTdHJpbmcoTnVtYmVyKGUua2V5LnZhbHVlKSk9PT1lLmtleS52YWx1ZSYmKHQucGFyc2VyPT09XCJiYWJlbFwifHx0LnBhcnNlcj09PVwiYWNvcm5cInx8dC5wYXJzZXI9PT1cImVzcHJlZVwifHx0LnBhcnNlcj09PVwibWVyaXlhaFwifHx0LnBhcnNlcj09PVwiX19iYWJlbF9lc3RyZWVcIikpfWZ1bmN0aW9uIGpuKGUpe3JldHVybi9eKD86XFxkK3xcXGQrXFwuXFxkKykkLy50ZXN0KGUpfWZ1bmN0aW9uIEhzKGUpe3JldHVybiBlLnF1YXNpcy5zb21lKHQ9PnQudmFsdWUucmF3LmluY2x1ZGVzKGBcbmApKX1mdW5jdGlvbiB4cihlLHQpe3JldHVybihlLnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwiJiZIcyhlKXx8ZS50eXBlPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIiYmSHMoZS5xdWFzaSkpJiYheih0LFUoZSkse2JhY2t3YXJkczohMH0pfWZ1bmN0aW9uIGdyKGUpe2lmKCFkKGUpKXJldHVybiExO2xldCB0PXcoITEsS3QoZSx4LkRhbmdsaW5nKSwtMSk7cmV0dXJuIHQmJiFhZSh0KX1mdW5jdGlvbiB0dShlKXtpZihlLmxlbmd0aDw9MSlyZXR1cm4hMTtsZXQgdD0wO2ZvcihsZXQgciBvZiBlKWlmKEl0KHIpKXtpZih0Kz0xLHQ+MSlyZXR1cm4hMH1lbHNlIGlmKGsocikpe2ZvcihsZXQgbiBvZiByLmFyZ3VtZW50cylpZihJdChuKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBocihlKXtsZXR7bm9kZTp0LHBhcmVudDpyLGtleTpufT1lO3JldHVybiBuPT09XCJjYWxsZWVcIiYmayh0KSYmayhyKSYmci5hcmd1bWVudHMubGVuZ3RoPjAmJnQuYXJndW1lbnRzLmxlbmd0aD5yLmFyZ3VtZW50cy5sZW5ndGh9dmFyIFFhPW5ldyBTZXQoW1wiIVwiLFwiLVwiLFwiK1wiLFwiflwiXSk7ZnVuY3Rpb24gZ2UoZSx0PTIpe2lmKHQ8PTApcmV0dXJuITE7bGV0IHI9bj0+Z2Uobix0LTEpO2lmKHduKGUpKXJldHVybiB0dChlLnBhdHRlcm4/P2UucmVnZXgucGF0dGVybik8PTU7aWYoZS50eXBlPT09XCJMaXRlcmFsXCJ8fGUudHlwZT09PVwiQmlnSW50TGl0ZXJhbFwifHxlLnR5cGU9PT1cIkRlY2ltYWxMaXRlcmFsXCJ8fGUudHlwZT09PVwiQm9vbGVhbkxpdGVyYWxcInx8ZS50eXBlPT09XCJOdWxsTGl0ZXJhbFwifHxlLnR5cGU9PT1cIk51bWVyaWNMaXRlcmFsXCJ8fGUudHlwZT09PVwiU3RyaW5nTGl0ZXJhbFwifHxlLnR5cGU9PT1cIklkZW50aWZpZXJcInx8ZS50eXBlPT09XCJUaGlzRXhwcmVzc2lvblwifHxlLnR5cGU9PT1cIlN1cGVyXCJ8fGUudHlwZT09PVwiUHJpdmF0ZU5hbWVcInx8ZS50eXBlPT09XCJQcml2YXRlSWRlbnRpZmllclwifHxlLnR5cGU9PT1cIkFyZ3VtZW50UGxhY2Vob2xkZXJcInx8ZS50eXBlPT09XCJJbXBvcnRcIilyZXR1cm4hMDtpZihlLnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwiKXJldHVybiBlLnF1YXNpcy5ldmVyeShuPT4hbi52YWx1ZS5yYXcuaW5jbHVkZXMoYFxuYCkpJiZlLmV4cHJlc3Npb25zLmV2ZXJ5KHIpO2lmKGVlKGUpKXJldHVybiBlLnByb3BlcnRpZXMuZXZlcnkobj0+IW4uY29tcHV0ZWQmJihuLnNob3J0aGFuZHx8bi52YWx1ZSYmcihuLnZhbHVlKSkpO2lmKEcoZSkpcmV0dXJuIGUuZWxlbWVudHMuZXZlcnkobj0+bj09PW51bGx8fHIobikpO2lmKGl0KGUpKXtpZihlLnR5cGU9PT1cIkltcG9ydEV4cHJlc3Npb25cInx8Z2UoZS5jYWxsZWUsdCkpe2xldCBuPUNlKGUpO3JldHVybiBuLmxlbmd0aDw9dCYmbi5ldmVyeShyKX1yZXR1cm4hMX1yZXR1cm4gSihlKT9nZShlLm9iamVjdCx0KSYmZ2UoZS5wcm9wZXJ0eSx0KTplLnR5cGU9PT1cIlVuYXJ5RXhwcmVzc2lvblwiJiZRYS5oYXMoZS5vcGVyYXRvcil8fGUudHlwZT09PVwiVXBkYXRlRXhwcmVzc2lvblwiP2dlKGUuYXJndW1lbnQsdCk6ZS50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCI/Z2UoZS5leHByZXNzaW9uLHQpOiExfWZ1bmN0aW9uIG9lKGUpe3ZhciB0O3JldHVybigodD1lLmV4dHJhKT09bnVsbD92b2lkIDA6dC5yYXcpPz9lLnJhd31mdW5jdGlvbiBydShlKXtyZXR1cm4gZX1mdW5jdGlvbiBsZShlLHQ9XCJlczVcIil7cmV0dXJuIGUudHJhaWxpbmdDb21tYT09PVwiZXM1XCImJnQ9PT1cImVzNVwifHxlLnRyYWlsaW5nQ29tbWE9PT1cImFsbFwiJiYodD09PVwiYWxsXCJ8fHQ9PT1cImVzNVwiKX1mdW5jdGlvbiByZShlLHQpe3N3aXRjaChlLnR5cGUpe2Nhc2VcIkJpbmFyeUV4cHJlc3Npb25cIjpjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmNhc2VcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCI6Y2FzZVwiTkdQaXBlRXhwcmVzc2lvblwiOnJldHVybiByZShlLmxlZnQsdCk7Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmNhc2VcIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwiOnJldHVybiByZShlLm9iamVjdCx0KTtjYXNlXCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIjpyZXR1cm4gZS50YWcudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCI/ITE6cmUoZS50YWcsdCk7Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6cmV0dXJuIGUuY2FsbGVlLnR5cGU9PT1cIkZ1bmN0aW9uRXhwcmVzc2lvblwiPyExOnJlKGUuY2FsbGVlLHQpO2Nhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOnJldHVybiByZShlLnRlc3QsdCk7Y2FzZVwiVXBkYXRlRXhwcmVzc2lvblwiOnJldHVybiFlLnByZWZpeCYmcmUoZS5hcmd1bWVudCx0KTtjYXNlXCJCaW5kRXhwcmVzc2lvblwiOnJldHVybiBlLm9iamVjdCYmcmUoZS5vYmplY3QsdCk7Y2FzZVwiU2VxdWVuY2VFeHByZXNzaW9uXCI6cmV0dXJuIHJlKGUuZXhwcmVzc2lvbnNbMF0sdCk7Y2FzZVwiQ2hhaW5FeHByZXNzaW9uXCI6Y2FzZVwiVFNTYXRpc2ZpZXNFeHByZXNzaW9uXCI6Y2FzZVwiVFNBc0V4cHJlc3Npb25cIjpjYXNlXCJUU05vbk51bGxFeHByZXNzaW9uXCI6cmV0dXJuIHJlKGUuZXhwcmVzc2lvbix0KTtkZWZhdWx0OnJldHVybiB0KGUpfX12YXIgS3M9e1wiPT1cIjohMCxcIiE9XCI6ITAsXCI9PT1cIjohMCxcIiE9PVwiOiEwfSxDcj17XCIqXCI6ITAsXCIvXCI6ITAsXCIlXCI6ITB9LExuPXtcIj4+XCI6ITAsXCI+Pj5cIjohMCxcIjw8XCI6ITB9O2Z1bmN0aW9uIFZ0KGUsdCl7cmV0dXJuIShZdCh0KSE9PVl0KGUpfHxlPT09XCIqKlwifHxLc1tlXSYmS3NbdF18fHQ9PT1cIiVcIiYmQ3JbZV18fGU9PT1cIiVcIiYmQ3JbdF18fHQhPT1lJiZDclt0XSYmQ3JbZV18fExuW2VdJiZMblt0XSl9dmFyIFphPW5ldyBNYXAoW1tcInw+XCJdLFtcIj8/XCJdLFtcInx8XCJdLFtcIiYmXCJdLFtcInxcIl0sW1wiXlwiXSxbXCImXCJdLFtcIj09XCIsXCI9PT1cIixcIiE9XCIsXCIhPT1cIl0sW1wiPFwiLFwiPlwiLFwiPD1cIixcIj49XCIsXCJpblwiLFwiaW5zdGFuY2VvZlwiXSxbXCI+PlwiLFwiPDxcIixcIj4+PlwiXSxbXCIrXCIsXCItXCJdLFtcIipcIixcIi9cIixcIiVcIl0sW1wiKipcIl1dLmZsYXRNYXAoKGUsdCk9PmUubWFwKHI9PltyLHRdKSkpO2Z1bmN0aW9uIFl0KGUpe3JldHVybiBaYS5nZXQoZSl9ZnVuY3Rpb24gbnUoZSl7cmV0dXJuISFMbltlXXx8ZT09PVwifFwifHxlPT09XCJeXCJ8fGU9PT1cIiZcIn1mdW5jdGlvbiBzdShlKXt2YXIgcjtpZihlLnJlc3QpcmV0dXJuITA7bGV0IHQ9WChlKTtyZXR1cm4oKHI9dyghMSx0LC0xKSk9PW51bGw/dm9pZCAwOnIudHlwZSk9PT1cIlJlc3RFbGVtZW50XCJ9dmFyIGtuPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFgoZSl7aWYoa24uaGFzKGUpKXJldHVybiBrbi5nZXQoZSk7bGV0IHQ9W107cmV0dXJuIGUudGhpcyYmdC5wdXNoKGUudGhpcyksQXJyYXkuaXNBcnJheShlLnBhcmFtZXRlcnMpP3QucHVzaCguLi5lLnBhcmFtZXRlcnMpOkFycmF5LmlzQXJyYXkoZS5wYXJhbXMpJiZ0LnB1c2goLi4uZS5wYXJhbXMpLGUucmVzdCYmdC5wdXNoKGUucmVzdCksa24uc2V0KGUsdCksdH1mdW5jdGlvbiB1dShlLHQpe2xldHtub2RlOnJ9PWUsbj0wLHM9dT0+dCh1LG4rKyk7ci50aGlzJiZlLmNhbGwocyxcInRoaXNcIiksQXJyYXkuaXNBcnJheShyLnBhcmFtZXRlcnMpP2UuZWFjaChzLFwicGFyYW1ldGVyc1wiKTpBcnJheS5pc0FycmF5KHIucGFyYW1zKSYmZS5lYWNoKHMsXCJwYXJhbXNcIiksci5yZXN0JiZlLmNhbGwocyxcInJlc3RcIil9dmFyIEluPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIENlKGUpe2lmKEluLmhhcyhlKSlyZXR1cm4gSW4uZ2V0KGUpO2xldCB0PWUuYXJndW1lbnRzO3JldHVybiBlLnR5cGU9PT1cIkltcG9ydEV4cHJlc3Npb25cIiYmKHQ9W2Uuc291cmNlXSxlLmF0dHJpYnV0ZXMmJnQucHVzaChlLmF0dHJpYnV0ZXMpKSxJbi5zZXQoZSx0KSx0fWZ1bmN0aW9uIFNyKGUsdCl7bGV0e25vZGU6cn09ZTtyLnR5cGU9PT1cIkltcG9ydEV4cHJlc3Npb25cIj8oZS5jYWxsKG49PnQobiwwKSxcInNvdXJjZVwiKSxyLmF0dHJpYnV0ZXMmJmUuY2FsbChuPT50KG4sMSksXCJhdHRyaWJ1dGVzXCIpKTplLmVhY2godCxcImFyZ3VtZW50c1wiKX1mdW5jdGlvbiBNbihlLHQpe2lmKGUudHlwZT09PVwiSW1wb3J0RXhwcmVzc2lvblwiKXtpZih0PT09MHx8dD09PShlLmF0dHJpYnV0ZXM/LTI6LTEpKXJldHVyblwic291cmNlXCI7aWYoZS5hdHRyaWJ1dGVzJiYodD09PTF8fHQ9PT0tMSkpcmV0dXJuXCJhdHRyaWJ1dGVzXCI7dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50IGluZGV4XCIpfWlmKHQ8MCYmKHQ9ZS5hcmd1bWVudHMubGVuZ3RoK3QpLHQ8MHx8dD49ZS5hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCBhcmd1bWVudCBpbmRleFwiKTtyZXR1cm5bXCJhcmd1bWVudHNcIix0XX1mdW5jdGlvbiBIdChlKXtyZXR1cm4gZS52YWx1ZS50cmltKCk9PT1cInByZXR0aWVyLWlnbm9yZVwiJiYhZS51bmlnbm9yZX1mdW5jdGlvbiBkdChlKXtyZXR1cm4oZT09bnVsbD92b2lkIDA6ZS5wcmV0dGllcklnbm9yZSl8fGQoZSx4LlByZXR0aWVySWdub3JlKX12YXIgeD17TGVhZGluZzoyLFRyYWlsaW5nOjQsRGFuZ2xpbmc6OCxCbG9jazoxNixMaW5lOjMyLFByZXR0aWVySWdub3JlOjY0LEZpcnN0OjEyOCxMYXN0OjI1Nn0saXU9KGUsdCk9PntpZih0eXBlb2YgZT09XCJmdW5jdGlvblwiJiYodD1lLGU9MCksZXx8dClyZXR1cm4ocixuLHMpPT4hKGUmeC5MZWFkaW5nJiYhci5sZWFkaW5nfHxlJnguVHJhaWxpbmcmJiFyLnRyYWlsaW5nfHxlJnguRGFuZ2xpbmcmJihyLmxlYWRpbmd8fHIudHJhaWxpbmcpfHxlJnguQmxvY2smJiFhZShyKXx8ZSZ4LkxpbmUmJiEkdChyKXx8ZSZ4LkZpcnN0JiZuIT09MHx8ZSZ4Lkxhc3QmJm4hPT1zLmxlbmd0aC0xfHxlJnguUHJldHRpZXJJZ25vcmUmJiFIdChyKXx8dCYmIXQocikpfTtmdW5jdGlvbiBkKGUsdCxyKXtpZighYihlPT1udWxsP3ZvaWQgMDplLmNvbW1lbnRzKSlyZXR1cm4hMTtsZXQgbj1pdSh0LHIpO3JldHVybiBuP2UuY29tbWVudHMuc29tZShuKTohMH1mdW5jdGlvbiBLdChlLHQscil7aWYoIUFycmF5LmlzQXJyYXkoZT09bnVsbD92b2lkIDA6ZS5jb21tZW50cykpcmV0dXJuW107bGV0IG49aXUodCxyKTtyZXR1cm4gbj9lLmNvbW1lbnRzLmZpbHRlcihuKTplLmNvbW1lbnRzfXZhciBtZT0oZSx7b3JpZ2luYWxUZXh0OnR9KT0+a3QodCxPKGUpKTtmdW5jdGlvbiBpdChlKXtyZXR1cm4gayhlKXx8ZS50eXBlPT09XCJOZXdFeHByZXNzaW9uXCJ8fGUudHlwZT09PVwiSW1wb3J0RXhwcmVzc2lvblwifWZ1bmN0aW9uIGZlKGUpe3JldHVybiBlJiYoZS50eXBlPT09XCJPYmplY3RQcm9wZXJ0eVwifHxlLnR5cGU9PT1cIlByb3BlcnR5XCImJiFlLm1ldGhvZCYmZS5raW5kPT09XCJpbml0XCIpfXZhciB6dD1TeW1ib2woXCJpZldpdGhvdXRCbG9ja0FuZFNhbWVMaW5lQ29tbWVudFwiKSxMZT1qKFtcIlRTQXNFeHByZXNzaW9uXCIsXCJUU1NhdGlzZmllc0V4cHJlc3Npb25cIl0pO2Z1bmN0aW9uIFJuKGUsdCl7dmFyIHUsaSxhLG8scCxtLEQ7aWYoZS5pc1Jvb3QpcmV0dXJuITE7bGV0e25vZGU6cixrZXk6bixwYXJlbnQ6c309ZTtpZih0Ll9faXNJbkh0bWxJbnRlcnBvbGF0aW9uJiYhdC5icmFja2V0U3BhY2luZyYmbm8ocikmJlF0KGUpKXJldHVybiEwO2lmKGVvKHIpKXJldHVybiExO2lmKHIudHlwZT09PVwiSWRlbnRpZmllclwiKXtpZigodT1yLmV4dHJhKSE9bnVsbCYmdS5wYXJlbnRoZXNpemVkJiYvXlBSRVRUSUVSX0hUTUxfUExBQ0VIT0xERVJfXFxkK19cXGQrX0lOX0pTJC8udGVzdChyLm5hbWUpfHxuPT09XCJsZWZ0XCImJihyLm5hbWU9PT1cImFzeW5jXCImJiFzLmF3YWl0fHxyLm5hbWU9PT1cImxldFwiKSYmcy50eXBlPT09XCJGb3JPZlN0YXRlbWVudFwiKXJldHVybiEwO2lmKHIubmFtZT09PVwibGV0XCIpe2xldCBjPShpPWUuZmluZEFuY2VzdG9yKGY9PmYudHlwZT09PVwiRm9yT2ZTdGF0ZW1lbnRcIikpPT1udWxsP3ZvaWQgMDppLmxlZnQ7aWYoYyYmcmUoYyxmPT5mPT09cikpcmV0dXJuITB9aWYobj09PVwib2JqZWN0XCImJnIubmFtZT09PVwibGV0XCImJnMudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiZzLmNvbXB1dGVkJiYhcy5vcHRpb25hbCl7bGV0IGM9ZS5maW5kQW5jZXN0b3IobD0+bC50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCJ8fGwudHlwZT09PVwiRm9yU3RhdGVtZW50XCJ8fGwudHlwZT09PVwiRm9ySW5TdGF0ZW1lbnRcIiksZj1jP2MudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwiP2MuZXhwcmVzc2lvbjpjLnR5cGU9PT1cIkZvclN0YXRlbWVudFwiP2MuaW5pdDpjLmxlZnQ6dm9pZCAwO2lmKGYmJnJlKGYsbD0+bD09PXIpKXJldHVybiEwfXJldHVybiExfWlmKHIudHlwZT09PVwiT2JqZWN0RXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIkZ1bmN0aW9uRXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIkNsYXNzRXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIkRvRXhwcmVzc2lvblwiKXtsZXQgYz0oYT1lLmZpbmRBbmNlc3RvcihmPT5mLnR5cGU9PT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikpPT1udWxsP3ZvaWQgMDphLmV4cHJlc3Npb247aWYoYyYmcmUoYyxmPT5mPT09cikpcmV0dXJuITB9aWYoci50eXBlPT09XCJPYmplY3RFeHByZXNzaW9uXCIpe2xldCBjPShvPWUuZmluZEFuY2VzdG9yKGY9PmYudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIikpPT1udWxsP3ZvaWQgMDpvLmJvZHk7aWYoYyYmYy50eXBlIT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cIiYmYy50eXBlIT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiJiZyZShjLGY9PmY9PT1yKSlyZXR1cm4hMH1zd2l0Y2gocy50eXBlKXtjYXNlXCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiOnJldHVybiExO2Nhc2VcIkNsYXNzRGVjbGFyYXRpb25cIjpjYXNlXCJDbGFzc0V4cHJlc3Npb25cIjppZihuPT09XCJzdXBlckNsYXNzXCImJihyLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiQXNzaWdubWVudEV4cHJlc3Npb25cInx8ci50eXBlPT09XCJBd2FpdEV4cHJlc3Npb25cInx8ci50eXBlPT09XCJCaW5hcnlFeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cInx8ci50eXBlPT09XCJOZXdFeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiT2JqZWN0RXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIlNlcXVlbmNlRXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIlVuYXJ5RXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIlVwZGF0ZUV4cHJlc3Npb25cInx8ci50eXBlPT09XCJZaWVsZEV4cHJlc3Npb25cInx8ci50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiQ2xhc3NFeHByZXNzaW9uXCImJmIoci5kZWNvcmF0b3JzKSkpcmV0dXJuITA7YnJlYWs7Y2FzZVwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCI6cmV0dXJuIGF1KGUsdCl8fHIudHlwZT09PVwiU2VxdWVuY2VFeHByZXNzaW9uXCI7Y2FzZVwiRGVjb3JhdG9yXCI6aWYobj09PVwiZXhwcmVzc2lvblwiKXtpZihKKHIpJiZyLmNvbXB1dGVkKXJldHVybiEwO2xldCBjPSExLGY9ITEsbD1yO2Zvcig7bDspc3dpdGNoKGwudHlwZSl7Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmY9ITAsbD1sLm9iamVjdDticmVhaztjYXNlXCJDYWxsRXhwcmVzc2lvblwiOmlmKGZ8fGMpcmV0dXJuIHQucGFyc2VyIT09XCJ0eXBlc2NyaXB0XCI7Yz0hMCxsPWwuY2FsbGVlO2JyZWFrO2Nhc2VcIklkZW50aWZpZXJcIjpyZXR1cm4hMTtjYXNlXCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIjpyZXR1cm4gdC5wYXJzZXIhPT1cInR5cGVzY3JpcHRcIjtkZWZhdWx0OnJldHVybiEwfXJldHVybiEwfWJyZWFrO2Nhc2VcIlR5cGVBbm5vdGF0aW9uXCI6aWYoZS5tYXRjaCh2b2lkIDAsdm9pZCAwLChjLGYpPT5mPT09XCJyZXR1cm5UeXBlXCImJmMudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIikmJnJvKHIpKXJldHVybiEwO2JyZWFrfXN3aXRjaChyLnR5cGUpe2Nhc2VcIlVwZGF0ZUV4cHJlc3Npb25cIjppZihzLnR5cGU9PT1cIlVuYXJ5RXhwcmVzc2lvblwiKXJldHVybiByLnByZWZpeCYmKHIub3BlcmF0b3I9PT1cIisrXCImJnMub3BlcmF0b3I9PT1cIitcInx8ci5vcGVyYXRvcj09PVwiLS1cIiYmcy5vcGVyYXRvcj09PVwiLVwiKTtjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjpzd2l0Y2gocy50eXBlKXtjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjpyZXR1cm4gci5vcGVyYXRvcj09PXMub3BlcmF0b3ImJihyLm9wZXJhdG9yPT09XCIrXCJ8fHIub3BlcmF0b3I9PT1cIi1cIik7Y2FzZVwiQmluZEV4cHJlc3Npb25cIjpyZXR1cm4hMDtjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cIm9iamVjdFwiO2Nhc2VcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiOnJldHVybiEwO2Nhc2VcIk5ld0V4cHJlc3Npb25cIjpjYXNlXCJDYWxsRXhwcmVzc2lvblwiOmNhc2VcIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIjpyZXR1cm4gbj09PVwiY2FsbGVlXCI7Y2FzZVwiQmluYXJ5RXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJsZWZ0XCImJnMub3BlcmF0b3I9PT1cIioqXCI7Y2FzZVwiVFNOb25OdWxsRXhwcmVzc2lvblwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9Y2FzZVwiQmluYXJ5RXhwcmVzc2lvblwiOmlmKHMudHlwZT09PVwiVXBkYXRlRXhwcmVzc2lvblwifHxyLm9wZXJhdG9yPT09XCJpblwiJiZ0byhlKSlyZXR1cm4hMDtpZihyLm9wZXJhdG9yPT09XCJ8PlwiJiYoKHA9ci5leHRyYSkhPW51bGwmJnAucGFyZW50aGVzaXplZCkpe2xldCBjPWUuZ3JhbmRwYXJlbnQ7aWYoYy50eXBlPT09XCJCaW5hcnlFeHByZXNzaW9uXCImJmMub3BlcmF0b3I9PT1cInw+XCIpcmV0dXJuITB9Y2FzZVwiVFNUeXBlQXNzZXJ0aW9uXCI6Y2FzZVwiVFNBc0V4cHJlc3Npb25cIjpjYXNlXCJUU1NhdGlzZmllc0V4cHJlc3Npb25cIjpjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOnN3aXRjaChzLnR5cGUpe2Nhc2VcIlRTQXNFeHByZXNzaW9uXCI6Y2FzZVwiVFNTYXRpc2ZpZXNFeHByZXNzaW9uXCI6cmV0dXJuIUxlKHIpO2Nhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOnJldHVybiBMZShyKTtjYXNlXCJDYWxsRXhwcmVzc2lvblwiOmNhc2VcIk5ld0V4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cImNhbGxlZVwiO2Nhc2VcIkNsYXNzRXhwcmVzc2lvblwiOmNhc2VcIkNsYXNzRGVjbGFyYXRpb25cIjpyZXR1cm4gbj09PVwic3VwZXJDbGFzc1wiO2Nhc2VcIlRTVHlwZUFzc2VydGlvblwiOmNhc2VcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiOmNhc2VcIlVuYXJ5RXhwcmVzc2lvblwiOmNhc2VcIkpTWFNwcmVhZEF0dHJpYnV0ZVwiOmNhc2VcIlNwcmVhZEVsZW1lbnRcIjpjYXNlXCJCaW5kRXhwcmVzc2lvblwiOmNhc2VcIkF3YWl0RXhwcmVzc2lvblwiOmNhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjpjYXNlXCJVcGRhdGVFeHByZXNzaW9uXCI6cmV0dXJuITA7Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmNhc2VcIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJvYmplY3RcIjtjYXNlXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiOmNhc2VcIkFzc2lnbm1lbnRQYXR0ZXJuXCI6cmV0dXJuIG49PT1cImxlZnRcIiYmKHIudHlwZT09PVwiVFNUeXBlQXNzZXJ0aW9uXCJ8fExlKHIpKTtjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmlmKHIudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cIilyZXR1cm4gcy5vcGVyYXRvciE9PXIub3BlcmF0b3I7Y2FzZVwiQmluYXJ5RXhwcmVzc2lvblwiOntsZXR7b3BlcmF0b3I6Yyx0eXBlOmZ9PXI7aWYoIWMmJmYhPT1cIlRTVHlwZUFzc2VydGlvblwiKXJldHVybiEwO2xldCBsPVl0KGMpLGg9cy5vcGVyYXRvcixnPVl0KGgpO3JldHVybiBnPmx8fG49PT1cInJpZ2h0XCImJmc9PT1sfHxnPT09bCYmIVZ0KGgsYyk/ITA6ZzxsJiZjPT09XCIlXCI/aD09PVwiK1wifHxoPT09XCItXCI6ISFudShoKX1kZWZhdWx0OnJldHVybiExfWNhc2VcIlNlcXVlbmNlRXhwcmVzc2lvblwiOnN3aXRjaChzLnR5cGUpe2Nhc2VcIlJldHVyblN0YXRlbWVudFwiOnJldHVybiExO2Nhc2VcIkZvclN0YXRlbWVudFwiOnJldHVybiExO2Nhc2VcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIjpyZXR1cm4gbiE9PVwiZXhwcmVzc2lvblwiO2Nhc2VcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCI6cmV0dXJuIG4hPT1cImJvZHlcIjtkZWZhdWx0OnJldHVybiEwfWNhc2VcIllpZWxkRXhwcmVzc2lvblwiOmlmKHMudHlwZT09PVwiQXdhaXRFeHByZXNzaW9uXCIpcmV0dXJuITA7Y2FzZVwiQXdhaXRFeHByZXNzaW9uXCI6c3dpdGNoKHMudHlwZSl7Y2FzZVwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCI6Y2FzZVwiVW5hcnlFeHByZXNzaW9uXCI6Y2FzZVwiTG9naWNhbEV4cHJlc3Npb25cIjpjYXNlXCJTcHJlYWRFbGVtZW50XCI6Y2FzZVwiVFNBc0V4cHJlc3Npb25cIjpjYXNlXCJUU1NhdGlzZmllc0V4cHJlc3Npb25cIjpjYXNlXCJUU05vbk51bGxFeHByZXNzaW9uXCI6Y2FzZVwiQmluZEV4cHJlc3Npb25cIjpyZXR1cm4hMDtjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cIm9iamVjdFwiO2Nhc2VcIk5ld0V4cHJlc3Npb25cIjpjYXNlXCJDYWxsRXhwcmVzc2lvblwiOmNhc2VcIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIjpyZXR1cm4gbj09PVwiY2FsbGVlXCI7Y2FzZVwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cInRlc3RcIjtjYXNlXCJCaW5hcnlFeHByZXNzaW9uXCI6cmV0dXJuISghci5hcmd1bWVudCYmcy5vcGVyYXRvcj09PVwifD5cIik7ZGVmYXVsdDpyZXR1cm4hMX1jYXNlXCJUU0Z1bmN0aW9uVHlwZVwiOmlmKGUubWF0Y2goYz0+Yy50eXBlPT09XCJUU0Z1bmN0aW9uVHlwZVwiLChjLGYpPT5mPT09XCJ0eXBlQW5ub3RhdGlvblwiJiZjLnR5cGU9PT1cIlRTVHlwZUFubm90YXRpb25cIiwoYyxmKT0+Zj09PVwicmV0dXJuVHlwZVwiJiZjLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpKXJldHVybiEwO2Nhc2VcIlRTQ29uZGl0aW9uYWxUeXBlXCI6Y2FzZVwiVFNDb25zdHJ1Y3RvclR5cGVcIjppZihuPT09XCJleHRlbmRzVHlwZVwiJiZzLnR5cGU9PT1cIlRTQ29uZGl0aW9uYWxUeXBlXCIpe2lmKHIudHlwZT09PVwiVFNDb25kaXRpb25hbFR5cGVcIilyZXR1cm4hMDtsZXR7dHlwZUFubm90YXRpb246Y309ci5yZXR1cm5UeXBlfHxyLnR5cGVBbm5vdGF0aW9uO2lmKGMudHlwZT09PVwiVFNUeXBlUHJlZGljYXRlXCImJmMudHlwZUFubm90YXRpb24mJihjPWMudHlwZUFubm90YXRpb24udHlwZUFubm90YXRpb24pLGMudHlwZT09PVwiVFNJbmZlclR5cGVcIiYmYy50eXBlUGFyYW1ldGVyLmNvbnN0cmFpbnQpcmV0dXJuITB9aWYobj09PVwiY2hlY2tUeXBlXCImJnMudHlwZT09PVwiVFNDb25kaXRpb25hbFR5cGVcIilyZXR1cm4hMDtjYXNlXCJUU1VuaW9uVHlwZVwiOmNhc2VcIlRTSW50ZXJzZWN0aW9uVHlwZVwiOmlmKChzLnR5cGU9PT1cIlRTVW5pb25UeXBlXCJ8fHMudHlwZT09PVwiVFNJbnRlcnNlY3Rpb25UeXBlXCIpJiZzLnR5cGVzLmxlbmd0aD4xJiYoIXIudHlwZXN8fHIudHlwZXMubGVuZ3RoPjEpKXJldHVybiEwO2Nhc2VcIlRTSW5mZXJUeXBlXCI6aWYoci50eXBlPT09XCJUU0luZmVyVHlwZVwiJiZzLnR5cGU9PT1cIlRTUmVzdFR5cGVcIilyZXR1cm4hMTtjYXNlXCJUU1R5cGVPcGVyYXRvclwiOnJldHVybiBzLnR5cGU9PT1cIlRTQXJyYXlUeXBlXCJ8fHMudHlwZT09PVwiVFNPcHRpb25hbFR5cGVcInx8cy50eXBlPT09XCJUU1Jlc3RUeXBlXCJ8fG49PT1cIm9iamVjdFR5cGVcIiYmcy50eXBlPT09XCJUU0luZGV4ZWRBY2Nlc3NUeXBlXCJ8fHMudHlwZT09PVwiVFNUeXBlT3BlcmF0b3JcInx8cy50eXBlPT09XCJUU1R5cGVBbm5vdGF0aW9uXCImJmUuZ3JhbmRwYXJlbnQudHlwZS5zdGFydHNXaXRoKFwiVFNKU0RvY1wiKTtjYXNlXCJUU1R5cGVRdWVyeVwiOnJldHVybiBuPT09XCJvYmplY3RUeXBlXCImJnMudHlwZT09PVwiVFNJbmRleGVkQWNjZXNzVHlwZVwifHxuPT09XCJlbGVtZW50VHlwZVwiJiZzLnR5cGU9PT1cIlRTQXJyYXlUeXBlXCI7Y2FzZVwiVHlwZW9mVHlwZUFubm90YXRpb25cIjpyZXR1cm4gbj09PVwib2JqZWN0VHlwZVwiJiYocy50eXBlPT09XCJJbmRleGVkQWNjZXNzVHlwZVwifHxzLnR5cGU9PT1cIk9wdGlvbmFsSW5kZXhlZEFjY2Vzc1R5cGVcIil8fG49PT1cImVsZW1lbnRUeXBlXCImJnMudHlwZT09PVwiQXJyYXlUeXBlQW5ub3RhdGlvblwiO2Nhc2VcIkFycmF5VHlwZUFubm90YXRpb25cIjpyZXR1cm4gcy50eXBlPT09XCJOdWxsYWJsZVR5cGVBbm5vdGF0aW9uXCI7Y2FzZVwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cIjpjYXNlXCJVbmlvblR5cGVBbm5vdGF0aW9uXCI6cmV0dXJuIHMudHlwZT09PVwiQXJyYXlUeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIk51bGxhYmxlVHlwZUFubm90YXRpb25cInx8cy50eXBlPT09XCJJbnRlcnNlY3Rpb25UeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIlVuaW9uVHlwZUFubm90YXRpb25cInx8bj09PVwib2JqZWN0VHlwZVwiJiYocy50eXBlPT09XCJJbmRleGVkQWNjZXNzVHlwZVwifHxzLnR5cGU9PT1cIk9wdGlvbmFsSW5kZXhlZEFjY2Vzc1R5cGVcIik7Y2FzZVwiSW5mZXJUeXBlQW5ub3RhdGlvblwiOmNhc2VcIk51bGxhYmxlVHlwZUFubm90YXRpb25cIjpyZXR1cm4gcy50eXBlPT09XCJBcnJheVR5cGVBbm5vdGF0aW9uXCJ8fG49PT1cIm9iamVjdFR5cGVcIiYmKHMudHlwZT09PVwiSW5kZXhlZEFjY2Vzc1R5cGVcInx8cy50eXBlPT09XCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCIpO2Nhc2VcIkZ1bmN0aW9uVHlwZUFubm90YXRpb25cIjp7aWYoZS5tYXRjaCh2b2lkIDAsKGYsbCk9Pmw9PT1cInR5cGVBbm5vdGF0aW9uXCImJmYudHlwZT09PVwiVHlwZUFubm90YXRpb25cIiwoZixsKT0+bD09PVwicmV0dXJuVHlwZVwiJiZmLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpfHxlLm1hdGNoKHZvaWQgMCwoZixsKT0+bD09PVwidHlwZUFubm90YXRpb25cIiYmZi50eXBlPT09XCJUeXBlUHJlZGljYXRlXCIsKGYsbCk9Pmw9PT1cInR5cGVBbm5vdGF0aW9uXCImJmYudHlwZT09PVwiVHlwZUFubm90YXRpb25cIiwoZixsKT0+bD09PVwicmV0dXJuVHlwZVwiJiZmLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIpKXJldHVybiEwO2xldCBjPXMudHlwZT09PVwiTnVsbGFibGVUeXBlQW5ub3RhdGlvblwiP2UuZ3JhbmRwYXJlbnQ6cztyZXR1cm4gYy50eXBlPT09XCJVbmlvblR5cGVBbm5vdGF0aW9uXCJ8fGMudHlwZT09PVwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cInx8Yy50eXBlPT09XCJBcnJheVR5cGVBbm5vdGF0aW9uXCJ8fG49PT1cIm9iamVjdFR5cGVcIiYmKGMudHlwZT09PVwiSW5kZXhlZEFjY2Vzc1R5cGVcInx8Yy50eXBlPT09XCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCIpfHxuPT09XCJjaGVja1R5cGVcIiYmcy50eXBlPT09XCJDb25kaXRpb25hbFR5cGVBbm5vdGF0aW9uXCJ8fG49PT1cImV4dGVuZHNUeXBlXCImJnMudHlwZT09PVwiQ29uZGl0aW9uYWxUeXBlQW5ub3RhdGlvblwiJiZyLnJldHVyblR5cGUudHlwZT09PVwiSW5mZXJUeXBlQW5ub3RhdGlvblwiJiZyLnJldHVyblR5cGUudHlwZVBhcmFtZXRlci5ib3VuZHx8Yy50eXBlPT09XCJOdWxsYWJsZVR5cGVBbm5vdGF0aW9uXCJ8fHMudHlwZT09PVwiRnVuY3Rpb25UeXBlUGFyYW1cIiYmcy5uYW1lPT09bnVsbCYmWChyKS5zb21lKGY9Pnt2YXIgbDtyZXR1cm4oKGw9Zi50eXBlQW5ub3RhdGlvbik9PW51bGw/dm9pZCAwOmwudHlwZSk9PT1cIk51bGxhYmxlVHlwZUFubm90YXRpb25cIn0pfWNhc2VcIkNvbmRpdGlvbmFsVHlwZUFubm90YXRpb25cIjppZihuPT09XCJleHRlbmRzVHlwZVwiJiZzLnR5cGU9PT1cIkNvbmRpdGlvbmFsVHlwZUFubm90YXRpb25cIiYmci50eXBlPT09XCJDb25kaXRpb25hbFR5cGVBbm5vdGF0aW9uXCJ8fG49PT1cImNoZWNrVHlwZVwiJiZzLnR5cGU9PT1cIkNvbmRpdGlvbmFsVHlwZUFubm90YXRpb25cIilyZXR1cm4hMDtjYXNlXCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCI6cmV0dXJuIG49PT1cIm9iamVjdFR5cGVcIiYmcy50eXBlPT09XCJJbmRleGVkQWNjZXNzVHlwZVwiO2Nhc2VcIlN0cmluZ0xpdGVyYWxcIjpjYXNlXCJOdW1lcmljTGl0ZXJhbFwiOmNhc2VcIkxpdGVyYWxcIjppZih0eXBlb2Ygci52YWx1ZT09XCJzdHJpbmdcIiYmcy50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJiFzLmRpcmVjdGl2ZSl7bGV0IGM9ZS5ncmFuZHBhcmVudDtyZXR1cm4gYy50eXBlPT09XCJQcm9ncmFtXCJ8fGMudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIn1yZXR1cm4gbj09PVwib2JqZWN0XCImJnMudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiZ0eXBlb2Ygci52YWx1ZT09XCJudW1iZXJcIjtjYXNlXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiOntsZXQgYz1lLmdyYW5kcGFyZW50O3JldHVybiBuPT09XCJib2R5XCImJnMudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIj8hMDpuPT09XCJrZXlcIiYmKHMudHlwZT09PVwiQ2xhc3NQcm9wZXJ0eVwifHxzLnR5cGU9PT1cIlByb3BlcnR5RGVmaW5pdGlvblwiKSYmcy5jb21wdXRlZHx8KG49PT1cImluaXRcInx8bj09PVwidXBkYXRlXCIpJiZzLnR5cGU9PT1cIkZvclN0YXRlbWVudFwiPyExOnMudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwiP3IubGVmdC50eXBlPT09XCJPYmplY3RQYXR0ZXJuXCI6IShuPT09XCJrZXlcIiYmcy50eXBlPT09XCJUU1Byb3BlcnR5U2lnbmF0dXJlXCJ8fHMudHlwZT09PVwiQXNzaWdubWVudEV4cHJlc3Npb25cInx8cy50eXBlPT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cIiYmYy50eXBlPT09XCJGb3JTdGF0ZW1lbnRcIiYmKGMuaW5pdD09PXN8fGMudXBkYXRlPT09cyl8fG49PT1cInZhbHVlXCImJnMudHlwZT09PVwiUHJvcGVydHlcIiYmYy50eXBlPT09XCJPYmplY3RQYXR0ZXJuXCImJmMucHJvcGVydGllcy5pbmNsdWRlcyhzKXx8cy50eXBlPT09XCJOR0NoYWluZWRFeHByZXNzaW9uXCIpfWNhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOnN3aXRjaChzLnR5cGUpe2Nhc2VcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiOmNhc2VcIlVuYXJ5RXhwcmVzc2lvblwiOmNhc2VcIlNwcmVhZEVsZW1lbnRcIjpjYXNlXCJCaW5hcnlFeHByZXNzaW9uXCI6Y2FzZVwiTG9naWNhbEV4cHJlc3Npb25cIjpjYXNlXCJOR1BpcGVFeHByZXNzaW9uXCI6Y2FzZVwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCI6Y2FzZVwiQXdhaXRFeHByZXNzaW9uXCI6Y2FzZVwiSlNYU3ByZWFkQXR0cmlidXRlXCI6Y2FzZVwiVFNUeXBlQXNzZXJ0aW9uXCI6Y2FzZVwiVHlwZUNhc3RFeHByZXNzaW9uXCI6Y2FzZVwiVFNBc0V4cHJlc3Npb25cIjpjYXNlXCJUU1NhdGlzZmllc0V4cHJlc3Npb25cIjpjYXNlXCJUU05vbk51bGxFeHByZXNzaW9uXCI6cmV0dXJuITA7Y2FzZVwiTmV3RXhwcmVzc2lvblwiOmNhc2VcIkNhbGxFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJjYWxsZWVcIjtjYXNlXCJDb25kaXRpb25hbEV4cHJlc3Npb25cIjpyZXR1cm4gbj09PVwidGVzdFwiO2Nhc2VcIk1lbWJlckV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbE1lbWJlckV4cHJlc3Npb25cIjpyZXR1cm4gbj09PVwib2JqZWN0XCI7ZGVmYXVsdDpyZXR1cm4hMX1jYXNlXCJGdW5jdGlvbkV4cHJlc3Npb25cIjpzd2l0Y2gocy50eXBlKXtjYXNlXCJOZXdFeHByZXNzaW9uXCI6Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cImNhbGxlZVwiO2Nhc2VcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9Y2FzZVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIjpzd2l0Y2gocy50eXBlKXtjYXNlXCJCaW5hcnlFeHByZXNzaW9uXCI6cmV0dXJuIHMub3BlcmF0b3IhPT1cInw+XCJ8fCgobT1yLmV4dHJhKT09bnVsbD92b2lkIDA6bS5wYXJlbnRoZXNpemVkKTtjYXNlXCJOZXdFeHByZXNzaW9uXCI6Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cImNhbGxlZVwiO2Nhc2VcIk1lbWJlckV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbE1lbWJlckV4cHJlc3Npb25cIjpyZXR1cm4gbj09PVwib2JqZWN0XCI7Y2FzZVwiVFNBc0V4cHJlc3Npb25cIjpjYXNlXCJUU1NhdGlzZmllc0V4cHJlc3Npb25cIjpjYXNlXCJUU05vbk51bGxFeHByZXNzaW9uXCI6Y2FzZVwiQmluZEV4cHJlc3Npb25cIjpjYXNlXCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIjpjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjpjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmNhc2VcIkF3YWl0RXhwcmVzc2lvblwiOmNhc2VcIlRTVHlwZUFzc2VydGlvblwiOnJldHVybiEwO2Nhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJ0ZXN0XCI7ZGVmYXVsdDpyZXR1cm4hMX1jYXNlXCJDbGFzc0V4cHJlc3Npb25cIjpzd2l0Y2gocy50eXBlKXtjYXNlXCJOZXdFeHByZXNzaW9uXCI6cmV0dXJuIG49PT1cImNhbGxlZVwiO2RlZmF1bHQ6cmV0dXJuITF9Y2FzZVwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiOmNhc2VcIkNhbGxFeHByZXNzaW9uXCI6Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmlmKHNvKGUpKXJldHVybiEwO2Nhc2VcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiOmNhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjppZihuPT09XCJjYWxsZWVcIiYmKHMudHlwZT09PVwiQmluZEV4cHJlc3Npb25cInx8cy50eXBlPT09XCJOZXdFeHByZXNzaW9uXCIpKXtsZXQgYz1yO2Zvcig7Yzspc3dpdGNoKGMudHlwZSl7Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpjYXNlXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCI6cmV0dXJuITA7Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOmNhc2VcIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwiOmNhc2VcIkJpbmRFeHByZXNzaW9uXCI6Yz1jLm9iamVjdDticmVhaztjYXNlXCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIjpjPWMudGFnO2JyZWFrO2Nhc2VcIlRTTm9uTnVsbEV4cHJlc3Npb25cIjpjPWMuZXhwcmVzc2lvbjticmVhaztkZWZhdWx0OnJldHVybiExfX1yZXR1cm4hMTtjYXNlXCJCaW5kRXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJjYWxsZWVcIiYmKHMudHlwZT09PVwiQmluZEV4cHJlc3Npb25cInx8cy50eXBlPT09XCJOZXdFeHByZXNzaW9uXCIpfHxuPT09XCJvYmplY3RcIiYmSihzKTtjYXNlXCJOR1BpcGVFeHByZXNzaW9uXCI6cmV0dXJuIShzLnR5cGU9PT1cIk5HUm9vdFwifHxzLnR5cGU9PT1cIk5HTWljcm9zeW50YXhFeHByZXNzaW9uXCJ8fHMudHlwZT09PVwiT2JqZWN0UHJvcGVydHlcIiYmISgoRD1yLmV4dHJhKSE9bnVsbCYmRC5wYXJlbnRoZXNpemVkKXx8RyhzKXx8bj09PVwiYXJndW1lbnRzXCImJmsocyl8fG49PT1cInJpZ2h0XCImJnMudHlwZT09PVwiTkdQaXBlRXhwcmVzc2lvblwifHxuPT09XCJwcm9wZXJ0eVwiJiZzLnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cInx8cy50eXBlPT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiKTtjYXNlXCJKU1hGcmFnbWVudFwiOmNhc2VcIkpTWEVsZW1lbnRcIjpyZXR1cm4gbj09PVwiY2FsbGVlXCJ8fG49PT1cImxlZnRcIiYmcy50eXBlPT09XCJCaW5hcnlFeHByZXNzaW9uXCImJnMub3BlcmF0b3I9PT1cIjxcInx8IUcocykmJnMudHlwZSE9PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmcy50eXBlIT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiJiZzLnR5cGUhPT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCImJnMudHlwZSE9PVwiQmluYXJ5RXhwcmVzc2lvblwiJiZzLnR5cGUhPT1cIk5ld0V4cHJlc3Npb25cIiYmcy50eXBlIT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIiYmcy50eXBlIT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJnMudHlwZSE9PVwiSnNFeHByZXNzaW9uUm9vdFwiJiZzLnR5cGUhPT1cIkpTWEF0dHJpYnV0ZVwiJiZzLnR5cGUhPT1cIkpTWEVsZW1lbnRcIiYmcy50eXBlIT09XCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCImJnMudHlwZSE9PVwiSlNYRnJhZ21lbnRcIiYmcy50eXBlIT09XCJMb2dpY2FsRXhwcmVzc2lvblwiJiYhayhzKSYmIWZlKHMpJiZzLnR5cGUhPT1cIlJldHVyblN0YXRlbWVudFwiJiZzLnR5cGUhPT1cIlRocm93U3RhdGVtZW50XCImJnMudHlwZSE9PVwiVHlwZUNhc3RFeHByZXNzaW9uXCImJnMudHlwZSE9PVwiVmFyaWFibGVEZWNsYXJhdG9yXCImJnMudHlwZSE9PVwiWWllbGRFeHByZXNzaW9uXCI7Y2FzZVwiVFNJbnN0YW50aWF0aW9uRXhwcmVzc2lvblwiOnJldHVybiBuPT09XCJvYmplY3RcIiYmSihzKX1yZXR1cm4hMX12YXIgZW89aihbXCJCbG9ja1N0YXRlbWVudFwiLFwiQnJlYWtTdGF0ZW1lbnRcIixcIkNsYXNzQm9keVwiLFwiQ2xhc3NEZWNsYXJhdGlvblwiLFwiQ2xhc3NNZXRob2RcIixcIkNsYXNzUHJvcGVydHlcIixcIlByb3BlcnR5RGVmaW5pdGlvblwiLFwiQ2xhc3NQcml2YXRlUHJvcGVydHlcIixcIkNvbnRpbnVlU3RhdGVtZW50XCIsXCJEZWJ1Z2dlclN0YXRlbWVudFwiLFwiRGVjbGFyZUNsYXNzXCIsXCJEZWNsYXJlRXhwb3J0QWxsRGVjbGFyYXRpb25cIixcIkRlY2xhcmVFeHBvcnREZWNsYXJhdGlvblwiLFwiRGVjbGFyZUZ1bmN0aW9uXCIsXCJEZWNsYXJlSW50ZXJmYWNlXCIsXCJEZWNsYXJlTW9kdWxlXCIsXCJEZWNsYXJlTW9kdWxlRXhwb3J0c1wiLFwiRGVjbGFyZVZhcmlhYmxlXCIsXCJEZWNsYXJlRW51bVwiLFwiRG9XaGlsZVN0YXRlbWVudFwiLFwiRW51bURlY2xhcmF0aW9uXCIsXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiLFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIsXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXCJFeHByZXNzaW9uU3RhdGVtZW50XCIsXCJGb3JJblN0YXRlbWVudFwiLFwiRm9yT2ZTdGF0ZW1lbnRcIixcIkZvclN0YXRlbWVudFwiLFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiLFwiSWZTdGF0ZW1lbnRcIixcIkltcG9ydERlY2xhcmF0aW9uXCIsXCJJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFwiTGFiZWxlZFN0YXRlbWVudFwiLFwiTWV0aG9kRGVmaW5pdGlvblwiLFwiUmV0dXJuU3RhdGVtZW50XCIsXCJTd2l0Y2hTdGF0ZW1lbnRcIixcIlRocm93U3RhdGVtZW50XCIsXCJUcnlTdGF0ZW1lbnRcIixcIlRTRGVjbGFyZUZ1bmN0aW9uXCIsXCJUU0VudW1EZWNsYXJhdGlvblwiLFwiVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvblwiLFwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFwiVFNNb2R1bGVEZWNsYXJhdGlvblwiLFwiVFNOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvblwiLFwiVHlwZUFsaWFzXCIsXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsXCJXaGlsZVN0YXRlbWVudFwiLFwiV2l0aFN0YXRlbWVudFwiXSk7ZnVuY3Rpb24gdG8oZSl7bGV0IHQ9MCx7bm9kZTpyfT1lO2Zvcig7cjspe2xldCBuPWUuZ2V0UGFyZW50Tm9kZSh0KyspO2lmKChuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJGb3JTdGF0ZW1lbnRcIiYmbi5pbml0PT09cilyZXR1cm4hMDtyPW59cmV0dXJuITF9ZnVuY3Rpb24gcm8oZSl7cmV0dXJuIFh0KGUsdD0+dC50eXBlPT09XCJPYmplY3RUeXBlQW5ub3RhdGlvblwiJiZYdCh0LHI9PnIudHlwZT09PVwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiKSl9ZnVuY3Rpb24gbm8oZSl7cmV0dXJuIGVlKGUpfWZ1bmN0aW9uIFF0KGUpe2xldHtwYXJlbnQ6dCxrZXk6cn09ZTtzd2l0Y2godC50eXBlKXtjYXNlXCJOR1BpcGVFeHByZXNzaW9uXCI6aWYocj09PVwiYXJndW1lbnRzXCImJmUuaXNMYXN0KXJldHVybiBlLmNhbGxQYXJlbnQoUXQpO2JyZWFrO2Nhc2VcIk9iamVjdFByb3BlcnR5XCI6aWYocj09PVwidmFsdWVcIilyZXR1cm4gZS5jYWxsUGFyZW50KCgpPT5lLmtleT09PVwicHJvcGVydGllc1wiJiZlLmlzTGFzdCk7YnJlYWs7Y2FzZVwiQmluYXJ5RXhwcmVzc2lvblwiOmNhc2VcIkxvZ2ljYWxFeHByZXNzaW9uXCI6aWYocj09PVwicmlnaHRcIilyZXR1cm4gZS5jYWxsUGFyZW50KFF0KTticmVhaztjYXNlXCJDb25kaXRpb25hbEV4cHJlc3Npb25cIjppZihyPT09XCJhbHRlcm5hdGVcIilyZXR1cm4gZS5jYWxsUGFyZW50KFF0KTticmVhaztjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjppZih0LnByZWZpeClyZXR1cm4gZS5jYWxsUGFyZW50KFF0KTticmVha31yZXR1cm4hMX1mdW5jdGlvbiBhdShlLHQpe2xldHtub2RlOnIscGFyZW50Om59PWU7cmV0dXJuIHIudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCJ8fHIudHlwZT09PVwiQ2xhc3NFeHByZXNzaW9uXCI/bi50eXBlPT09XCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cInx8IVJuKGUsdCk6IUx0KHIpfHxuLnR5cGUhPT1cIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiJiZSbihlLHQpPyExOmUuY2FsbCgoKT0+YXUoZSx0KSwuLi5kcihyKSl9ZnVuY3Rpb24gc28oZSl7bGV0e25vZGU6dCxwYXJlbnQ6cixncmFuZHBhcmVudDpuLGtleTpzfT1lO3JldHVybiEhKCh0LnR5cGU9PT1cIk9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvblwifHx0LnR5cGU9PT1cIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIikmJihzPT09XCJvYmplY3RcIiYmci50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCJ8fHM9PT1cImNhbGxlZVwiJiYoci50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIk5ld0V4cHJlc3Npb25cIil8fHIudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiJiZuLnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIiYmbi5vYmplY3Q9PT1yKXx8ZS5tYXRjaCgoKT0+dC50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwifHx0LnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIiwodSxpKT0+aT09PVwiZXhwcmVzc2lvblwiJiZ1LnR5cGU9PT1cIkNoYWluRXhwcmVzc2lvblwiKSYmKGUubWF0Y2godm9pZCAwLHZvaWQgMCwodSxpKT0+aT09PVwiY2FsbGVlXCImJih1LnR5cGU9PT1cIkNhbGxFeHByZXNzaW9uXCImJiF1Lm9wdGlvbmFsfHx1LnR5cGU9PT1cIk5ld0V4cHJlc3Npb25cIil8fGk9PT1cIm9iamVjdFwiJiZ1LnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIiYmIXUub3B0aW9uYWwpfHxlLm1hdGNoKHZvaWQgMCx2b2lkIDAsKHUsaSk9Pmk9PT1cImV4cHJlc3Npb25cIiYmdS50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCIsKHUsaSk9Pmk9PT1cIm9iamVjdFwiJiZ1LnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIikpfHxlLm1hdGNoKCgpPT50LnR5cGU9PT1cIkNhbGxFeHByZXNzaW9uXCJ8fHQudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiLCh1LGkpPT5pPT09XCJleHByZXNzaW9uXCImJnUudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiLCh1LGkpPT5pPT09XCJleHByZXNzaW9uXCImJnUudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCIsKHUsaSk9Pmk9PT1cIm9iamVjdFwiJiZ1LnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIikpfXZhciB3ZT1Sbjt2YXIgdW89KGUsdCxyLG4pPT57aWYoIShlJiZ0PT1udWxsKSlyZXR1cm4gdC5yZXBsYWNlQWxsP3QucmVwbGFjZUFsbChyLG4pOnIuZ2xvYmFsP3QucmVwbGFjZShyLG4pOnQuc3BsaXQocikuam9pbihuKX0sSD11bztmdW5jdGlvbiBpbyhlLHQpe2xldCByPXQtMTtyPVdlKGUscix7YmFja3dhcmRzOiEwfSkscj1ZZShlLHIse2JhY2t3YXJkczohMH0pLHI9V2UoZSxyLHtiYWNrd2FyZHM6ITB9KTtsZXQgbj1ZZShlLHIse2JhY2t3YXJkczohMH0pO3JldHVybiByIT09bn12YXIgb3U9aW87dmFyIGFvPSgpPT4hMDtmdW5jdGlvbiBKbihlLHQpe2xldCByPWUubm9kZTtyZXR1cm4gci5wcmludGVkPSEwLHQucHJpbnRlci5wcmludENvbW1lbnQoZSx0KX1mdW5jdGlvbiBvbyhlLHQpe3ZhciBtO2xldCByPWUubm9kZSxuPVtKbihlLHQpXSx7cHJpbnRlcjpzLG9yaWdpbmFsVGV4dDp1LGxvY1N0YXJ0OmksbG9jRW5kOmF9PXQ7aWYoKG09cy5pc0Jsb2NrQ29tbWVudCk9PW51bGw/dm9pZCAwOm0uY2FsbChzLHIpKXtsZXQgRD16KHUsYShyKSk/eih1LGkocikse2JhY2t3YXJkczohMH0pP0M6QTpcIiBcIjtuLnB1c2goRCl9ZWxzZSBuLnB1c2goQyk7bGV0IHA9WWUodSxXZSh1LGEocikpKTtyZXR1cm4gcCE9PSExJiZ6KHUscCkmJm4ucHVzaChDKSxufWZ1bmN0aW9uIHBvKGUsdCxyKXt2YXIgcDtsZXQgbj1lLm5vZGUscz1KbihlLHQpLHtwcmludGVyOnUsb3JpZ2luYWxUZXh0OmksbG9jU3RhcnQ6YX09dCxvPShwPXUuaXNCbG9ja0NvbW1lbnQpPT1udWxsP3ZvaWQgMDpwLmNhbGwodSxuKTtpZihyIT1udWxsJiZyLmhhc0xpbmVTdWZmaXgmJiEociE9bnVsbCYmci5pc0Jsb2NrKXx8eihpLGEobikse2JhY2t3YXJkczohMH0pKXtsZXQgbT1vdShpLGEobikpO3JldHVybntkb2M6aG4oW0MsbT9DOlwiXCIsc10pLGlzQmxvY2s6byxoYXNMaW5lU3VmZml4OiEwfX1yZXR1cm4hb3x8ciE9bnVsbCYmci5oYXNMaW5lU3VmZml4P3tkb2M6W2huKFtcIiBcIixzXSksVGVdLGlzQmxvY2s6byxoYXNMaW5lU3VmZml4OiEwfTp7ZG9jOltcIiBcIixzXSxpc0Jsb2NrOm8saGFzTGluZVN1ZmZpeDohMX19ZnVuY3Rpb24gTShlLHQscj17fSl7bGV0e25vZGU6bn09ZTtpZighYihuPT1udWxsP3ZvaWQgMDpuLmNvbW1lbnRzKSlyZXR1cm5cIlwiO2xldHtpbmRlbnQ6cz0hMSxtYXJrZXI6dSxmaWx0ZXI6aT1hb309cixhPVtdO2lmKGUuZWFjaCgoe25vZGU6cH0pPT57cC5sZWFkaW5nfHxwLnRyYWlsaW5nfHxwLm1hcmtlciE9PXV8fCFpKHApfHxhLnB1c2goSm4oZSx0KSl9LFwiY29tbWVudHNcIiksYS5sZW5ndGg9PT0wKXJldHVyblwiXCI7bGV0IG89QihDLGEpO3JldHVybiBzP0UoW0Msb10pOm99ZnVuY3Rpb24gTm4oZSx0KXtsZXQgcj1lLm5vZGU7aWYoIXIpcmV0dXJue307bGV0IG49dFtTeW1ib2wuZm9yKFwicHJpbnRlZENvbW1lbnRzXCIpXTtpZigoci5jb21tZW50c3x8W10pLmZpbHRlcihvPT4hbi5oYXMobykpLmxlbmd0aD09PTApcmV0dXJue2xlYWRpbmc6XCJcIix0cmFpbGluZzpcIlwifTtsZXQgdT1bXSxpPVtdLGE7cmV0dXJuIGUuZWFjaCgoKT0+e2xldCBvPWUubm9kZTtpZihuIT1udWxsJiZuLmhhcyhvKSlyZXR1cm47bGV0e2xlYWRpbmc6cCx0cmFpbGluZzptfT1vO3A/dS5wdXNoKG9vKGUsdCkpOm0mJihhPXBvKGUsdCxhKSxpLnB1c2goYS5kb2MpKX0sXCJjb21tZW50c1wiKSx7bGVhZGluZzp1LHRyYWlsaW5nOml9fWZ1bmN0aW9uIHBlKGUsdCxyKXtsZXR7bGVhZGluZzpuLHRyYWlsaW5nOnN9PU5uKGUscik7cmV0dXJuIW4mJiFzP3Q6R3QodCx1PT5bbix1LHNdKX12YXIgVW49Y2xhc3MgZXh0ZW5kcyBFcnJvcntuYW1lPVwiVW5leHBlY3RlZE5vZGVFcnJvclwiO2NvbnN0cnVjdG9yKHQscixuPVwidHlwZVwiKXtzdXBlcihgVW5leHBlY3RlZCAke3J9IG5vZGUgJHtufTogJHtKU09OLnN0cmluZ2lmeSh0W25dKX0uYCksdGhpcy5ub2RlPXR9fSxPZT1Vbjt2YXIgQnI9XCInXCIscHU9J1wiJztmdW5jdGlvbiBjbyhlLHQpe2xldCByPXQ9PT0hMHx8dD09PUJyP0JyOnB1LG49cj09PUJyP3B1OkJyLHM9MCx1PTA7Zm9yKGxldCBpIG9mIGUpaT09PXI/cysrOmk9PT1uJiZ1Kys7cmV0dXJuIHM+dT9uOnJ9dmFyIGJyPWNvO2Z1bmN0aW9uIEduKGUpe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtyZXR1cm4gZS5yZXBsYWNlKC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZyxcIlxcXFwkJlwiKS5yZXBsYWNlKC8tL2csXCJcXFxceDJkXCIpfXZhciB2ZSxxbj1jbGFzc3tjb25zdHJ1Y3Rvcih0KXticyh0aGlzLHZlLHZvaWQgMCk7UHModGhpcyx2ZSxuZXcgU2V0KHQpKX1nZXRMZWFkaW5nV2hpdGVzcGFjZUNvdW50KHQpe2xldCByPXN0KHRoaXMsdmUpLG49MDtmb3IobGV0IHM9MDtzPHQubGVuZ3RoJiZyLmhhcyh0LmNoYXJBdChzKSk7cysrKW4rKztyZXR1cm4gbn1nZXRUcmFpbGluZ1doaXRlc3BhY2VDb3VudCh0KXtsZXQgcj1zdCh0aGlzLHZlKSxuPTA7Zm9yKGxldCBzPXQubGVuZ3RoLTE7cz49MCYmci5oYXModC5jaGFyQXQocykpO3MtLSluKys7cmV0dXJuIG59Z2V0TGVhZGluZ1doaXRlc3BhY2UodCl7bGV0IHI9dGhpcy5nZXRMZWFkaW5nV2hpdGVzcGFjZUNvdW50KHQpO3JldHVybiB0LnNsaWNlKDAscil9Z2V0VHJhaWxpbmdXaGl0ZXNwYWNlKHQpe2xldCByPXRoaXMuZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlQ291bnQodCk7cmV0dXJuIHQuc2xpY2UodC5sZW5ndGgtcil9aGFzTGVhZGluZ1doaXRlc3BhY2UodCl7cmV0dXJuIHN0KHRoaXMsdmUpLmhhcyh0LmNoYXJBdCgwKSl9aGFzVHJhaWxpbmdXaGl0ZXNwYWNlKHQpe3JldHVybiBzdCh0aGlzLHZlKS5oYXModyghMSx0LC0xKSl9dHJpbVN0YXJ0KHQpe2xldCByPXRoaXMuZ2V0TGVhZGluZ1doaXRlc3BhY2VDb3VudCh0KTtyZXR1cm4gdC5zbGljZShyKX10cmltRW5kKHQpe2xldCByPXRoaXMuZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlQ291bnQodCk7cmV0dXJuIHQuc2xpY2UoMCx0Lmxlbmd0aC1yKX10cmltKHQpe3JldHVybiB0aGlzLnRyaW1FbmQodGhpcy50cmltU3RhcnQodCkpfXNwbGl0KHQscj0hMSl7bGV0IG49YFske0duKFsuLi5zdCh0aGlzLHZlKV0uam9pbihcIlwiKSl9XStgLHM9bmV3IFJlZ0V4cChyP2AoJHtufSlgOm4pO3JldHVybiB0LnNwbGl0KHMpfWhhc1doaXRlc3BhY2VDaGFyYWN0ZXIodCl7bGV0IHI9c3QodGhpcyx2ZSk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwodCxuPT5yLmhhcyhuKSl9aGFzTm9uV2hpdGVzcGFjZUNoYXJhY3Rlcih0KXtsZXQgcj1zdCh0aGlzLHZlKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbCh0LG49PiFyLmhhcyhuKSl9aXNXaGl0ZXNwYWNlT25seSh0KXtsZXQgcj1zdCh0aGlzLHZlKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmV2ZXJ5LmNhbGwodCxuPT5yLmhhcyhuKSl9fTt2ZT1uZXcgV2Vha01hcDt2YXIgY3U9cW47dmFyIEtuPXt9O29yKEtuLHtlbmRPZkxpbmU6KCk9PkZvLG93bkxpbmU6KCk9PkVvLHJlbWFpbmluZzooKT0+Q299KTtmdW5jdGlvbiBsbyhlLHQpe2xldCByPW51bGwsbj10O2Zvcig7biE9PXI7KXI9bixuPVdlKGUsbiksbj1idChlLG4pLG49UHQoZSxuKSxuPVllKGUsbik7cmV0dXJuIG59dmFyIFhlPWxvO2Z1bmN0aW9uIG1vKGUsdCl7bGV0IHI9WGUoZSx0KTtyZXR1cm4gcj09PSExP1wiXCI6ZS5jaGFyQXQocil9dmFyICRlPW1vO2Z1bmN0aW9uIHlvKGUsdCxyKXtmb3IobGV0IG49dDtuPHI7KytuKWlmKGUuY2hhckF0KG4pPT09YFxuYClyZXR1cm4hMDtyZXR1cm4hMX12YXIgcnQ9eW87ZnVuY3Rpb24gRG8oZSl7bGV0IHQ9ZS50eXBlfHxlLmtpbmR8fFwiKHVua25vd24gdHlwZSlcIixyPVN0cmluZyhlLm5hbWV8fGUuaWQmJih0eXBlb2YgZS5pZD09XCJvYmplY3RcIj9lLmlkLm5hbWU6ZS5pZCl8fGUua2V5JiYodHlwZW9mIGUua2V5PT1cIm9iamVjdFwiP2Uua2V5Lm5hbWU6ZS5rZXkpfHxlLnZhbHVlJiYodHlwZW9mIGUudmFsdWU9PVwib2JqZWN0XCI/XCJcIjpTdHJpbmcoZS52YWx1ZSkpfHxlLm9wZXJhdG9yfHxcIlwiKTtyZXR1cm4gci5sZW5ndGg+MjAmJihyPXIuc2xpY2UoMCwxOSkrXCJcXHUyMDI2XCIpLHQrKHI/XCIgXCIrcjpcIlwiKX1mdW5jdGlvbiBXbihlLHQpeyhlLmNvbW1lbnRzPz8oZS5jb21tZW50cz1bXSkpLnB1c2godCksdC5wcmludGVkPSExLHQubm9kZURlc2NyaXB0aW9uPURvKGUpfWZ1bmN0aW9uIG5lKGUsdCl7dC5sZWFkaW5nPSEwLHQudHJhaWxpbmc9ITEsV24oZSx0KX1mdW5jdGlvbiBfZShlLHQscil7dC5sZWFkaW5nPSExLHQudHJhaWxpbmc9ITEsciYmKHQubWFya2VyPXIpLFduKGUsdCl9ZnVuY3Rpb24gdGUoZSx0KXt0LmxlYWRpbmc9ITEsdC50cmFpbGluZz0hMCxXbihlLHQpfWZ1bmN0aW9uIGZvKGUpe3JldHVybiBhZShlKSYmZS52YWx1ZVswXT09PVwiKlwiJiYvQCg/OnR5cGV8c2F0aXNmaWVzKVxcYi8udGVzdChlLnZhbHVlKX12YXIgbHU9Zm87ZnVuY3Rpb24gRW8oZSl7cmV0dXJuW0N1LGZ1LFRvLFhuLCRuLG11LHl1LE9vLExvLEhuLEZ1LHZvLER1LEV1LFZuXS5zb21lKHQ9PnQoZSkpfWZ1bmN0aW9uIEZvKGUpe3JldHVybltBbyxmdSx4byxGdSxYbiwkbixtdSx5dSxFdSxJbyx3byxIbixNbyxWbixOb10uc29tZSh0PT50KGUpKX1mdW5jdGlvbiBDbyhlKXtyZXR1cm5bQ3UsWG4sJG4sZ28sa28sRHUsSG4sUG8sYm8sSm8sVm4sUm9dLnNvbWUodD0+dChlKSl9ZnVuY3Rpb24gQXQoZSx0KXtsZXQgcj0oZS5ib2R5fHxlLnByb3BlcnRpZXMpLmZpbmQoKHt0eXBlOm59KT0+biE9PVwiRW1wdHlTdGF0ZW1lbnRcIik7cj9uZShyLHQpOl9lKGUsdCl9ZnVuY3Rpb24gWW4oZSx0KXtlLnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCI/QXQoZSx0KTpuZShlLHQpfWZ1bmN0aW9uIEFvKHtjb21tZW50OmUsZm9sbG93aW5nTm9kZTp0fSl7cmV0dXJuIHQmJmx1KGUpPyhuZSh0LGUpLCEwKTohMX1mdW5jdGlvbiBYbih7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnIsZm9sbG93aW5nTm9kZTpuLHRleHQ6c30pe2lmKChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpIT09XCJJZlN0YXRlbWVudFwifHwhbilyZXR1cm4hMTtpZigkZShzLE8oZSkpPT09XCIpXCIpcmV0dXJuIHRlKHQsZSksITA7aWYodD09PXIuY29uc2VxdWVudCYmbj09PXIuYWx0ZXJuYXRlKXtpZih0LnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCIpdGUodCxlKTtlbHNle2xldCBpPWUudHlwZT09PVwiU2luZ2xlTGluZVwifHxlLmxvYy5zdGFydC5saW5lPT09ZS5sb2MuZW5kLmxpbmUsYT1lLmxvYy5zdGFydC5saW5lPT09dC5sb2Muc3RhcnQubGluZTtpJiZhP19lKHQsZSx0LnR5cGU9PT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIj96dDp2b2lkIDApOl9lKHIsZSl9cmV0dXJuITB9cmV0dXJuIG4udHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIj8oQXQobixlKSwhMCk6bi50eXBlPT09XCJJZlN0YXRlbWVudFwiPyhZbihuLmNvbnNlcXVlbnQsZSksITApOnIuY29uc2VxdWVudD09PW4/KG5lKG4sZSksITApOiExfWZ1bmN0aW9uICRuKHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cixmb2xsb3dpbmdOb2RlOm4sdGV4dDpzfSl7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIudHlwZSkhPT1cIldoaWxlU3RhdGVtZW50XCJ8fCFuPyExOiRlKHMsTyhlKSk9PT1cIilcIj8odGUodCxlKSwhMCk6bi50eXBlPT09XCJCbG9ja1N0YXRlbWVudFwiPyhBdChuLGUpLCEwKTpyLmJvZHk9PT1uPyhuZShuLGUpLCEwKTohMX1mdW5jdGlvbiBtdSh7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnIsZm9sbG93aW5nTm9kZTpufSl7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIudHlwZSkhPT1cIlRyeVN0YXRlbWVudFwiJiYocj09bnVsbD92b2lkIDA6ci50eXBlKSE9PVwiQ2F0Y2hDbGF1c2VcInx8IW4/ITE6ci50eXBlPT09XCJDYXRjaENsYXVzZVwiJiZ0Pyh0ZSh0LGUpLCEwKTpuLnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCI/KEF0KG4sZSksITApOm4udHlwZT09PVwiVHJ5U3RhdGVtZW50XCI/KFluKG4uZmluYWxpemVyLGUpLCEwKTpuLnR5cGU9PT1cIkNhdGNoQ2xhdXNlXCI/KFluKG4uYm9keSxlKSwhMCk6ITF9ZnVuY3Rpb24gVG8oe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnQsZm9sbG93aW5nTm9kZTpyfSl7cmV0dXJuIEoodCkmJihyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJJZGVudGlmaWVyXCI/KG5lKHQsZSksITApOiExfWZ1bmN0aW9uIHhvKHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cixmb2xsb3dpbmdOb2RlOm4sdGV4dDpzfSl7bGV0IHU9dCYmIXJ0KHMsTyh0KSxVKGUpKTtyZXR1cm4oIXR8fCF1KSYmKChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cInx8KHI9PW51bGw/dm9pZCAwOnIudHlwZSk9PT1cIlRTQ29uZGl0aW9uYWxUeXBlXCIpJiZuPyhuZShuLGUpLCEwKTohMX1mdW5jdGlvbiBnbyh7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnJ9KXtyZXR1cm4gZmUocikmJnIuc2hvcnRoYW5kJiZyLmtleT09PXQmJnIudmFsdWUudHlwZT09PVwiQXNzaWdubWVudFBhdHRlcm5cIj8odGUoci52YWx1ZS5sZWZ0LGUpLCEwKTohMX12YXIgaG89bmV3IFNldChbXCJDbGFzc0RlY2xhcmF0aW9uXCIsXCJDbGFzc0V4cHJlc3Npb25cIixcIkRlY2xhcmVDbGFzc1wiLFwiRGVjbGFyZUludGVyZmFjZVwiLFwiSW50ZXJmYWNlRGVjbGFyYXRpb25cIixcIlRTSW50ZXJmYWNlRGVjbGFyYXRpb25cIl0pO2Z1bmN0aW9uIHl1KHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cixmb2xsb3dpbmdOb2RlOm59KXtpZihoby5oYXMocj09bnVsbD92b2lkIDA6ci50eXBlKSl7aWYoYihyLmRlY29yYXRvcnMpJiYobj09bnVsbD92b2lkIDA6bi50eXBlKSE9PVwiRGVjb3JhdG9yXCIpcmV0dXJuIHRlKHcoITEsci5kZWNvcmF0b3JzLC0xKSxlKSwhMDtpZihyLmJvZHkmJm49PT1yLmJvZHkpcmV0dXJuIEF0KHIuYm9keSxlKSwhMDtpZihuKXtpZihyLnN1cGVyQ2xhc3MmJm49PT1yLnN1cGVyQ2xhc3MmJnQmJih0PT09ci5pZHx8dD09PXIudHlwZVBhcmFtZXRlcnMpKXJldHVybiB0ZSh0LGUpLCEwO2ZvcihsZXQgcyBvZltcImltcGxlbWVudHNcIixcImV4dGVuZHNcIixcIm1peGluc1wiXSlpZihyW3NdJiZuPT09cltzXVswXSlyZXR1cm4gdCYmKHQ9PT1yLmlkfHx0PT09ci50eXBlUGFyYW1ldGVyc3x8dD09PXIuc3VwZXJDbGFzcyk/dGUodCxlKTpfZShyLGUscyksITB9fXJldHVybiExfXZhciBTbz1uZXcgU2V0KFtcIkNsYXNzTWV0aG9kXCIsXCJDbGFzc1Byb3BlcnR5XCIsXCJQcm9wZXJ0eURlZmluaXRpb25cIixcIlRTQWJzdHJhY3RQcm9wZXJ0eURlZmluaXRpb25cIixcIlRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uXCIsXCJUU0RlY2xhcmVNZXRob2RcIixcIk1ldGhvZERlZmluaXRpb25cIixcIkNsYXNzQWNjZXNzb3JQcm9wZXJ0eVwiLFwiQWNjZXNzb3JQcm9wZXJ0eVwiLFwiVFNBYnN0cmFjdEFjY2Vzc29yUHJvcGVydHlcIl0pO2Z1bmN0aW9uIER1KHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cix0ZXh0Om59KXtyZXR1cm4gciYmdCYmJGUobixPKGUpKT09PVwiKFwiJiYoci50eXBlPT09XCJQcm9wZXJ0eVwifHxyLnR5cGU9PT1cIlRTRGVjbGFyZU1ldGhvZFwifHxyLnR5cGU9PT1cIlRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uXCIpJiZ0LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmci5rZXk9PT10JiYkZShuLE8odCkpIT09XCI6XCI/KHRlKHQsZSksITApOih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJEZWNvcmF0b3JcIiYmU28uaGFzKHI9PW51bGw/dm9pZCAwOnIudHlwZSk/KHRlKHQsZSksITApOiExfXZhciBCbz1uZXcgU2V0KFtcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixcIkZ1bmN0aW9uRXhwcmVzc2lvblwiLFwiQ2xhc3NNZXRob2RcIixcIk1ldGhvZERlZmluaXRpb25cIixcIk9iamVjdE1ldGhvZFwiXSk7ZnVuY3Rpb24gYm8oe2NvbW1lbnQ6ZSxwcmVjZWRpbmdOb2RlOnQsZW5jbG9zaW5nTm9kZTpyLHRleHQ6bn0pe3JldHVybiAkZShuLE8oZSkpIT09XCIoXCI/ITE6dCYmQm8uaGFzKHI9PW51bGw/dm9pZCAwOnIudHlwZSk/KHRlKHQsZSksITApOiExfWZ1bmN0aW9uIFBvKHtjb21tZW50OmUsZW5jbG9zaW5nTm9kZTp0LHRleHQ6cn0pe2lmKCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpIT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiKXJldHVybiExO2xldCBuPVhlKHIsTyhlKSk7cmV0dXJuIG4hPT0hMSYmci5zbGljZShuLG4rMik9PT1cIj0+XCI/KF9lKHQsZSksITApOiExfWZ1bmN0aW9uIGtvKHtjb21tZW50OmUsZW5jbG9zaW5nTm9kZTp0LHRleHQ6cn0pe3JldHVybiAkZShyLE8oZSkpIT09XCIpXCI/ITE6dCYmKGR1KHQpJiZYKHQpLmxlbmd0aD09PTB8fGl0KHQpJiZDZSh0KS5sZW5ndGg9PT0wKT8oX2UodCxlKSwhMCk6KCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJNZXRob2REZWZpbml0aW9uXCJ8fCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvblwiKSYmWCh0LnZhbHVlKS5sZW5ndGg9PT0wPyhfZSh0LnZhbHVlLGUpLCEwKTohMX1mdW5jdGlvbiBmdSh7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnIsZm9sbG93aW5nTm9kZTpuLHRleHQ6c30pe2lmKCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJGdW5jdGlvblR5cGVQYXJhbVwiJiYocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiJiYobj09bnVsbD92b2lkIDA6bi50eXBlKSE9PVwiRnVuY3Rpb25UeXBlUGFyYW1cIilyZXR1cm4gdGUodCxlKSwhMDtpZigoKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIklkZW50aWZpZXJcInx8KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIkFzc2lnbm1lbnRQYXR0ZXJuXCJ8fCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJPYmplY3RQYXR0ZXJuXCJ8fCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJBcnJheVBhdHRlcm5cInx8KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIlJlc3RFbGVtZW50XCIpJiZyJiZkdShyKSYmJGUocyxPKGUpKT09PVwiKVwiKXJldHVybiB0ZSh0LGUpLCEwO2lmKChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJGdW5jdGlvbkRlY2xhcmF0aW9uXCImJihuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJCbG9ja1N0YXRlbWVudFwiKXtsZXQgdT0oKCk9PntsZXQgaT1YKHIpO2lmKGkubGVuZ3RoPjApcmV0dXJuIFhlKHMsTyh3KCExLGksLTEpKSk7bGV0IGE9WGUocyxPKHIuaWQpKTtyZXR1cm4gYSE9PSExJiZYZShzLGErMSl9KSgpO2lmKFUoZSk+dSlyZXR1cm4gQXQobixlKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBFdSh7Y29tbWVudDplLGVuY2xvc2luZ05vZGU6dH0pe3JldHVybih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJMYWJlbGVkU3RhdGVtZW50XCI/KG5lKHQsZSksITApOiExfWZ1bmN0aW9uIFZuKHtjb21tZW50OmUsZW5jbG9zaW5nTm9kZTp0fSl7cmV0dXJuKCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJDb250aW51ZVN0YXRlbWVudFwifHwodD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiQnJlYWtTdGF0ZW1lbnRcIikmJiF0LmxhYmVsPyh0ZSh0LGUpLCEwKTohMX1mdW5jdGlvbiBJbyh7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnJ9KXtyZXR1cm4gayhyKSYmdCYmci5jYWxsZWU9PT10JiZyLmFyZ3VtZW50cy5sZW5ndGg+MD8obmUoci5hcmd1bWVudHNbMF0sZSksITApOiExfWZ1bmN0aW9uIExvKHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cixmb2xsb3dpbmdOb2RlOm59KXtyZXR1cm4ocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiVW5pb25UeXBlQW5ub3RhdGlvblwifHwocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiVFNVbmlvblR5cGVcIj8oSHQoZSkmJihuLnByZXR0aWVySWdub3JlPSEwLGUudW5pZ25vcmU9ITApLHQ/KHRlKHQsZSksITApOiExKTooKChuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJVbmlvblR5cGVBbm5vdGF0aW9uXCJ8fChuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJUU1VuaW9uVHlwZVwiKSYmSHQoZSkmJihuLnR5cGVzWzBdLnByZXR0aWVySWdub3JlPSEwLGUudW5pZ25vcmU9ITApLCExKX1mdW5jdGlvbiB3byh7Y29tbWVudDplLGVuY2xvc2luZ05vZGU6dH0pe3JldHVybiBmZSh0KT8obmUodCxlKSwhMCk6ITF9ZnVuY3Rpb24gSG4oe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnQsZm9sbG93aW5nTm9kZTpyLGFzdDpuLGlzTGFzdENvbW1lbnQ6c30pe3ZhciB1O3JldHVybigodT1uPT1udWxsP3ZvaWQgMDpuLmJvZHkpPT1udWxsP3ZvaWQgMDp1Lmxlbmd0aCk9PT0wPyhzP19lKG4sZSk6bmUobixlKSwhMCk6KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIlByb2dyYW1cIiYmdC5ib2R5Lmxlbmd0aD09PTAmJiFiKHQuZGlyZWN0aXZlcyk/KHM/X2UodCxlKTpuZSh0LGUpLCEwKToocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiUHJvZ3JhbVwiJiZyLmJvZHkubGVuZ3RoPT09MCYmKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIk1vZHVsZUV4cHJlc3Npb25cIj8oX2UocixlKSwhMCk6ITF9ZnVuY3Rpb24gT28oe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnR9KXtyZXR1cm4odD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiRm9ySW5TdGF0ZW1lbnRcInx8KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIkZvck9mU3RhdGVtZW50XCI/KG5lKHQsZSksITApOiExfWZ1bmN0aW9uIEZ1KHtjb21tZW50OmUscHJlY2VkaW5nTm9kZTp0LGVuY2xvc2luZ05vZGU6cix0ZXh0Om59KXtpZigocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiSW1wb3J0U3BlY2lmaWVyXCJ8fChyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJFeHBvcnRTcGVjaWZpZXJcIilyZXR1cm4gbmUocixlKSwhMDtsZXQgcz0odD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiSW1wb3J0U3BlY2lmaWVyXCImJihyPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJJbXBvcnREZWNsYXJhdGlvblwiLHU9KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIkV4cG9ydFNwZWNpZmllclwiJiYocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiO3JldHVybihzfHx1KSYmeihuLE8oZSkpPyh0ZSh0LGUpLCEwKTohMX1mdW5jdGlvbiB2byh7Y29tbWVudDplLGVuY2xvc2luZ05vZGU6dH0pe3JldHVybih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJBc3NpZ25tZW50UGF0dGVyblwiPyhuZSh0LGUpLCEwKTohMX12YXIgX289bmV3IFNldChbXCJWYXJpYWJsZURlY2xhcmF0b3JcIixcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsXCJUeXBlQWxpYXNcIixcIlRTVHlwZUFsaWFzRGVjbGFyYXRpb25cIl0pLGpvPW5ldyBTZXQoW1wiT2JqZWN0RXhwcmVzc2lvblwiLFwiUmVjb3JkRXhwcmVzc2lvblwiLFwiQXJyYXlFeHByZXNzaW9uXCIsXCJUdXBsZUV4cHJlc3Npb25cIixcIlRlbXBsYXRlTGl0ZXJhbFwiLFwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCIsXCJPYmplY3RUeXBlQW5ub3RhdGlvblwiLFwiVFNUeXBlTGl0ZXJhbFwiXSk7ZnVuY3Rpb24gTW8oe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnQsZm9sbG93aW5nTm9kZTpyfSl7cmV0dXJuIF9vLmhhcyh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpJiZyJiYoam8uaGFzKHIudHlwZSl8fGFlKGUpKT8obmUocixlKSwhMCk6ITF9ZnVuY3Rpb24gUm8oe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnQsZm9sbG93aW5nTm9kZTpyLHRleHQ6bn0pe3JldHVybiFyJiYoKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIlRTTWV0aG9kU2lnbmF0dXJlXCJ8fCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJUU0RlY2xhcmVGdW5jdGlvblwifHwodD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb25cIikmJiRlKG4sTyhlKSk9PT1cIjtcIj8odGUodCxlKSwhMCk6ITF9ZnVuY3Rpb24gQ3Uoe2NvbW1lbnQ6ZSxlbmNsb3NpbmdOb2RlOnQsZm9sbG93aW5nTm9kZTpyfSl7aWYoSHQoZSkmJih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJUU01hcHBlZFR5cGVcIiYmKHI9PW51bGw/dm9pZCAwOnIudHlwZSk9PT1cIlRTVHlwZVBhcmFtZXRlclwiJiZyLmNvbnN0cmFpbnQpcmV0dXJuIHQucHJldHRpZXJJZ25vcmU9ITAsZS51bmlnbm9yZT0hMCwhMH1mdW5jdGlvbiBKbyh7Y29tbWVudDplLHByZWNlZGluZ05vZGU6dCxlbmNsb3NpbmdOb2RlOnIsZm9sbG93aW5nTm9kZTpufSl7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIudHlwZSkhPT1cIlRTTWFwcGVkVHlwZVwiPyExOihuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJUU1R5cGVQYXJhbWV0ZXJcIiYmbi5uYW1lPyhuZShuLm5hbWUsZSksITApOih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJUU1R5cGVQYXJhbWV0ZXJcIiYmdC5jb25zdHJhaW50Pyh0ZSh0LmNvbnN0cmFpbnQsZSksITApOiExfWZ1bmN0aW9uIE5vKHtjb21tZW50OmUsZW5jbG9zaW5nTm9kZTp0LGZvbGxvd2luZ05vZGU6cn0pe3JldHVybiF0fHx0LnR5cGUhPT1cIlN3aXRjaENhc2VcInx8dC50ZXN0fHwhcnx8ciE9PXQuY29uc2VxdWVudFswXT8hMTooci50eXBlPT09XCJCbG9ja1N0YXRlbWVudFwiJiYkdChlKT9BdChyLGUpOl9lKHQsZSksITApfXZhciBkdT1qKFtcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIsXCJGdW5jdGlvbkV4cHJlc3Npb25cIixcIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixcIk9iamVjdE1ldGhvZFwiLFwiQ2xhc3NNZXRob2RcIixcIlRTRGVjbGFyZUZ1bmN0aW9uXCIsXCJUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvblwiLFwiVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvblwiLFwiVFNNZXRob2RTaWduYXR1cmVcIixcIlRTQ29uc3RydWN0b3JUeXBlXCIsXCJUU0Z1bmN0aW9uVHlwZVwiLFwiVFNEZWNsYXJlTWV0aG9kXCJdKTtmdW5jdGlvbiBVbyhlKXtsZXQgdD1gKiR7ZS52YWx1ZX0qYC5zcGxpdChgXG5gKTtyZXR1cm4gdC5sZW5ndGg+MSYmdC5ldmVyeShyPT5yLnRyaW1TdGFydCgpWzBdPT09XCIqXCIpfXZhciBBdT1VbztmdW5jdGlvbiBUdShlLHQpe2xldCByPWUubm9kZTtpZigkdChyKSlyZXR1cm4gdC5vcmlnaW5hbFRleHQuc2xpY2UoVShyKSxPKHIpKS50cmltRW5kKCk7aWYoYWUocikpcmV0dXJuIEF1KHIpP0dvKHIpOltcIi8qXCIseGUoci52YWx1ZSksXCIqL1wiXTt0aHJvdyBuZXcgRXJyb3IoXCJOb3QgYSBjb21tZW50OiBcIitKU09OLnN0cmluZ2lmeShyKSl9ZnVuY3Rpb24gR28oZSl7bGV0IHQ9ZS52YWx1ZS5zcGxpdChgXG5gKTtyZXR1cm5bXCIvKlwiLEIoQyx0Lm1hcCgocixuKT0+bj09PTA/ci50cmltRW5kKCk6XCIgXCIrKG48dC5sZW5ndGgtMT9yLnRyaW0oKTpyLnRyaW1TdGFydCgpKSkpLFwiKi9cIl19dmFyIHFvPW5ldyBTZXQoW1wiRW1wdHlTdGF0ZW1lbnRcIixcIlRlbXBsYXRlRWxlbWVudFwiLFwiSW1wb3J0XCIsXCJUU0VtcHR5Qm9keUZ1bmN0aW9uRXhwcmVzc2lvblwiLFwiQ2hhaW5FeHByZXNzaW9uXCJdKTtmdW5jdGlvbiBXbyhlKXtyZXR1cm4hcW8uaGFzKGUudHlwZSl9ZnVuY3Rpb24gWW8oZSx0KXt2YXIgcjtpZigodC5wYXJzZXI9PT1cInR5cGVzY3JpcHRcInx8dC5wYXJzZXI9PT1cImZsb3dcInx8dC5wYXJzZXI9PT1cImFjb3JuXCJ8fHQucGFyc2VyPT09XCJlc3ByZWVcInx8dC5wYXJzZXI9PT1cIm1lcml5YWhcInx8dC5wYXJzZXI9PT1cIl9fYmFiZWxfZXN0cmVlXCIpJiZlLnR5cGU9PT1cIk1ldGhvZERlZmluaXRpb25cIiYmKChyPWUudmFsdWUpPT1udWxsP3ZvaWQgMDpyLnR5cGUpPT09XCJGdW5jdGlvbkV4cHJlc3Npb25cIiYmWChlLnZhbHVlKS5sZW5ndGg9PT0wJiYhZS52YWx1ZS5yZXR1cm5UeXBlJiYhYihlLnZhbHVlLnR5cGVQYXJhbWV0ZXJzKSYmZS52YWx1ZS5ib2R5KXJldHVyblsuLi5lLmRlY29yYXRvcnN8fFtdLGUua2V5LGUudmFsdWUuYm9keV19ZnVuY3Rpb24gem4oZSl7bGV0e25vZGU6dCxwYXJlbnQ6cn09ZTtyZXR1cm4oWSh0KXx8ciYmKHIudHlwZT09PVwiSlNYU3ByZWFkQXR0cmlidXRlXCJ8fHIudHlwZT09PVwiSlNYU3ByZWFkQ2hpbGRcInx8ci50eXBlPT09XCJVbmlvblR5cGVBbm5vdGF0aW9uXCJ8fHIudHlwZT09PVwiVFNVbmlvblR5cGVcInx8KHIudHlwZT09PVwiQ2xhc3NEZWNsYXJhdGlvblwifHxyLnR5cGU9PT1cIkNsYXNzRXhwcmVzc2lvblwiKSYmci5zdXBlckNsYXNzPT09dCkpJiYoIWR0KHQpfHxyLnR5cGU9PT1cIlVuaW9uVHlwZUFubm90YXRpb25cInx8ci50eXBlPT09XCJUU1VuaW9uVHlwZVwiKX1mdW5jdGlvbiBYbyhlLHtwYXJzZXI6dH0pe2lmKHQ9PT1cImZsb3dcInx8dD09PVwiYmFiZWwtZmxvd1wiKXJldHVybiBlPUgoITEsZSwvW1xccyhdL2csXCJcIiksZT09PVwiXCJ8fGU9PT1cIi8qXCJ8fGU9PT1cIi8qOjpcIn12YXIgUHI9bmV3IGN1KGAgXG5cXHJcdGApLFFuPWU9PmU9PT1cIlwifHxlPT09QXx8ZT09PUN8fGU9PT1GO2Z1bmN0aW9uICRvKGUsdCxyKXt2YXIgdixfLFI7bGV0e25vZGU6bn09ZTtpZihuLnR5cGU9PT1cIkpTWEVsZW1lbnRcIiYmYXAobikpcmV0dXJuW3IoXCJvcGVuaW5nRWxlbWVudFwiKSxyKFwiY2xvc2luZ0VsZW1lbnRcIildO2xldCBzPW4udHlwZT09PVwiSlNYRWxlbWVudFwiP3IoXCJvcGVuaW5nRWxlbWVudFwiKTpyKFwib3BlbmluZ0ZyYWdtZW50XCIpLHU9bi50eXBlPT09XCJKU1hFbGVtZW50XCI/cihcImNsb3NpbmdFbGVtZW50XCIpOnIoXCJjbG9zaW5nRnJhZ21lbnRcIik7aWYobi5jaGlsZHJlbi5sZW5ndGg9PT0xJiZuLmNoaWxkcmVuWzBdLnR5cGU9PT1cIkpTWEV4cHJlc3Npb25Db250YWluZXJcIiYmKG4uY2hpbGRyZW5bMF0uZXhwcmVzc2lvbi50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcInx8bi5jaGlsZHJlblswXS5leHByZXNzaW9uLnR5cGU9PT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiKSlyZXR1cm5bcywuLi5lLm1hcChyLFwiY2hpbGRyZW5cIiksdV07bi5jaGlsZHJlbj1uLmNoaWxkcmVuLm1hcChUPT5vcChUKT97dHlwZTpcIkpTWFRleHRcIix2YWx1ZTpcIiBcIixyYXc6XCIgXCJ9OlQpO2xldCBpPW4uY2hpbGRyZW4uc29tZShZKSxhPW4uY2hpbGRyZW4uZmlsdGVyKFQ9PlQudHlwZT09PVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiKS5sZW5ndGg+MSxvPW4udHlwZT09PVwiSlNYRWxlbWVudFwiJiZuLm9wZW5pbmdFbGVtZW50LmF0dHJpYnV0ZXMubGVuZ3RoPjEscD1LKHMpfHxpfHxvfHxhLG09ZS5wYXJlbnQucm9vdE1hcmtlcj09PVwibWR4XCIsRD10LnNpbmdsZVF1b3RlP1wieycgJ31cIjone1wiIFwifScsYz1tP1wiIFwiOlAoW0QsRl0sXCIgXCIpLGY9KChfPSh2PW4ub3BlbmluZ0VsZW1lbnQpPT1udWxsP3ZvaWQgMDp2Lm5hbWUpPT1udWxsP3ZvaWQgMDpfLm5hbWUpPT09XCJmYnRcIixsPVZvKGUsdCxyLGMsZiksaD1uLmNoaWxkcmVuLnNvbWUoVD0+WnQoVCkpO2ZvcihsZXQgVD1sLmxlbmd0aC0yO1Q+PTA7VC0tKXtsZXQgTj1sW1RdPT09XCJcIiYmbFtUKzFdPT09XCJcIixTZT1sW1RdPT09QyYmbFtUKzFdPT09XCJcIiYmbFtUKzJdPT09QyxWPShsW1RdPT09Rnx8bFtUXT09PUMpJiZsW1QrMV09PT1cIlwiJiZsW1QrMl09PT1jLEJlPWxbVF09PT1jJiZsW1QrMV09PT1cIlwiJiYobFtUKzJdPT09Rnx8bFtUKzJdPT09QyksRWU9bFtUXT09PWMmJmxbVCsxXT09PVwiXCImJmxbVCsyXT09PWMsQ249bFtUXT09PUYmJmxbVCsxXT09PVwiXCImJmxbVCsyXT09PUN8fGxbVF09PT1DJiZsW1QrMV09PT1cIlwiJiZsW1QrMl09PT1GO1NlJiZofHxOfHxWfHxFZXx8Q24/bC5zcGxpY2UoVCwyKTpCZSYmbC5zcGxpY2UoVCsxLDIpfWZvcig7bC5sZW5ndGg+MCYmUW4odyghMSxsLC0xKSk7KWwucG9wKCk7Zm9yKDtsLmxlbmd0aD4xJiZRbihsWzBdKSYmUW4obFsxXSk7KWwuc2hpZnQoKSxsLnNoaWZ0KCk7bGV0IGc9W107Zm9yKGxldFtULE5db2YgbC5lbnRyaWVzKCkpe2lmKE49PT1jKXtpZihUPT09MSYmbFtULTFdPT09XCJcIil7aWYobC5sZW5ndGg9PT0yKXtnLnB1c2goRCk7Y29udGludWV9Zy5wdXNoKFtELENdKTtjb250aW51ZX1lbHNlIGlmKFQ9PT1sLmxlbmd0aC0xKXtnLnB1c2goRCk7Y29udGludWV9ZWxzZSBpZihsW1QtMV09PT1cIlwiJiZsW1QtMl09PT1DKXtnLnB1c2goRCk7Y29udGludWV9fWcucHVzaChOKSxLKE4pJiYocD0hMCl9bGV0IFM9aD9TdChnKTp5KGcse3Nob3VsZEJyZWFrOiEwfSk7aWYoKChSPXQuY3Vyc29yTm9kZSk9PW51bGw/dm9pZCAwOlIudHlwZSk9PT1cIkpTWFRleHRcIiYmbi5jaGlsZHJlbi5pbmNsdWRlcyh0LmN1cnNvck5vZGUpJiYoUz1bQm4sUyxCbl0pLG0pcmV0dXJuIFM7bGV0IEk9eShbcyxFKFtDLFNdKSxDLHVdKTtyZXR1cm4gcD9JOnFlKFt5KFtzLC4uLmwsdV0pLEldKX1mdW5jdGlvbiBWbyhlLHQscixuLHMpe2xldCB1PVtdO3JldHVybiBlLmVhY2goKHtub2RlOmksbmV4dDphfSk9PntpZihpLnR5cGU9PT1cIkpTWFRleHRcIil7bGV0IG89b2UoaSk7aWYoWnQoaSkpe2xldCBwPVByLnNwbGl0KG8sITApO3BbMF09PT1cIlwiJiYodS5wdXNoKFwiXCIpLHAuc2hpZnQoKSwvXFxuLy50ZXN0KHBbMF0pP3UucHVzaChndShzLHBbMV0saSxhKSk6dS5wdXNoKG4pLHAuc2hpZnQoKSk7bGV0IG07aWYodyghMSxwLC0xKT09PVwiXCImJihwLnBvcCgpLG09cC5wb3AoKSkscC5sZW5ndGg9PT0wKXJldHVybjtmb3IobGV0W0QsY11vZiBwLmVudHJpZXMoKSlEJTI9PT0xP3UucHVzaChBKTp1LnB1c2goYyk7bSE9PXZvaWQgMD8vXFxuLy50ZXN0KG0pP3UucHVzaChndShzLHcoITEsdSwtMSksaSxhKSk6dS5wdXNoKG4pOnUucHVzaCh4dShzLHcoITEsdSwtMSksaSxhKSl9ZWxzZS9cXG4vLnRlc3Qobyk/by5tYXRjaCgvXFxuL2cpLmxlbmd0aD4xJiZ1LnB1c2goXCJcIixDKTp1LnB1c2goXCJcIixuKX1lbHNle2xldCBvPXIoKTtpZih1LnB1c2gobyksYSYmWnQoYSkpe2xldCBtPVByLnRyaW0ob2UoYSkpLFtEXT1Qci5zcGxpdChtKTt1LnB1c2goeHUocyxELGksYSkpfWVsc2UgdS5wdXNoKEMpfX0sXCJjaGlsZHJlblwiKSx1fWZ1bmN0aW9uIHh1KGUsdCxyLG4pe3JldHVybiBlP1wiXCI6ci50eXBlPT09XCJKU1hFbGVtZW50XCImJiFyLmNsb3NpbmdFbGVtZW50fHwobj09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiSlNYRWxlbWVudFwiJiYhbi5jbG9zaW5nRWxlbWVudD90Lmxlbmd0aD09PTE/RjpDOkZ9ZnVuY3Rpb24gZ3UoZSx0LHIsbil7cmV0dXJuIGU/Qzp0Lmxlbmd0aD09PTE/ci50eXBlPT09XCJKU1hFbGVtZW50XCImJiFyLmNsb3NpbmdFbGVtZW50fHwobj09bnVsbD92b2lkIDA6bi50eXBlKT09PVwiSlNYRWxlbWVudFwiJiYhbi5jbG9zaW5nRWxlbWVudD9DOkY6Q312YXIgSG89bmV3IFNldChbXCJBcnJheUV4cHJlc3Npb25cIixcIlR1cGxlRXhwcmVzc2lvblwiLFwiSlNYQXR0cmlidXRlXCIsXCJKU1hFbGVtZW50XCIsXCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCIsXCJKU1hGcmFnbWVudFwiLFwiRXhwcmVzc2lvblN0YXRlbWVudFwiLFwiQ2FsbEV4cHJlc3Npb25cIixcIk9wdGlvbmFsQ2FsbEV4cHJlc3Npb25cIixcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiLFwiSnNFeHByZXNzaW9uUm9vdFwiXSk7ZnVuY3Rpb24gS28oZSx0LHIpe2xldHtwYXJlbnQ6bn09ZTtpZihIby5oYXMobi50eXBlKSlyZXR1cm4gdDtsZXQgcz1lLm1hdGNoKHZvaWQgMCxpPT5pLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIsayxpPT5pLnR5cGU9PT1cIkpTWEV4cHJlc3Npb25Db250YWluZXJcIiksdT13ZShlLHIpO3JldHVybiB5KFt1P1wiXCI6UChcIihcIiksRShbRix0XSksRix1P1wiXCI6UChcIilcIildLHtzaG91bGRCcmVhazpzfSl9ZnVuY3Rpb24gem8oZSx0LHIpe2xldHtub2RlOm59PWUscz1bXTtpZihzLnB1c2gocihcIm5hbWVcIikpLG4udmFsdWUpe2xldCB1O2lmKFEobi52YWx1ZSkpe2xldCBpPW9lKG4udmFsdWUpLGE9SCghMSxIKCExLGkuc2xpY2UoMSwtMSksXCImYXBvcztcIixcIidcIiksXCImcXVvdDtcIiwnXCInKSxvPWJyKGEsdC5qc3hTaW5nbGVRdW90ZSk7YT1vPT09J1wiJz9IKCExLGEsJ1wiJyxcIiZxdW90O1wiKTpIKCExLGEsXCInXCIsXCImYXBvcztcIiksdT1lLmNhbGwoKCk9PnBlKGUseGUobythK28pLHQpLFwidmFsdWVcIil9ZWxzZSB1PXIoXCJ2YWx1ZVwiKTtzLnB1c2goXCI9XCIsdSl9cmV0dXJuIHN9ZnVuY3Rpb24gUW8oZSx0LHIpe2xldHtub2RlOm59PWUscz0odSxpKT0+dS50eXBlPT09XCJKU1hFbXB0eUV4cHJlc3Npb25cInx8IWQodSkmJihHKHUpfHxlZSh1KXx8dS50eXBlPT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwifHx1LnR5cGU9PT1cIkF3YWl0RXhwcmVzc2lvblwiJiYocyh1LmFyZ3VtZW50LHUpfHx1LmFyZ3VtZW50LnR5cGU9PT1cIkpTWEVsZW1lbnRcIil8fGsodSl8fHUudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCImJmsodS5leHByZXNzaW9uKXx8dS50eXBlPT09XCJGdW5jdGlvbkV4cHJlc3Npb25cInx8dS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcInx8dS50eXBlPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cInx8dS50eXBlPT09XCJEb0V4cHJlc3Npb25cInx8WShpKSYmKHUudHlwZT09PVwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCJ8fGNlKHUpKSk7cmV0dXJuIHMobi5leHByZXNzaW9uLGUucGFyZW50KT95KFtcIntcIixyKFwiZXhwcmVzc2lvblwiKSxBZSxcIn1cIl0pOnkoW1wie1wiLEUoW0YscihcImV4cHJlc3Npb25cIildKSxGLEFlLFwifVwiXSl9ZnVuY3Rpb24gWm8oZSx0LHIpe3ZhciBhLG87bGV0e25vZGU6bn09ZSxzPWQobi5uYW1lKXx8ZChuLnR5cGVQYXJhbWV0ZXJzKTtpZihuLnNlbGZDbG9zaW5nJiZuLmF0dHJpYnV0ZXMubGVuZ3RoPT09MCYmIXMpcmV0dXJuW1wiPFwiLHIoXCJuYW1lXCIpLHIoXCJ0eXBlUGFyYW1ldGVyc1wiKSxcIiAvPlwiXTtpZigoKGE9bi5hdHRyaWJ1dGVzKT09bnVsbD92b2lkIDA6YS5sZW5ndGgpPT09MSYmbi5hdHRyaWJ1dGVzWzBdLnZhbHVlJiZRKG4uYXR0cmlidXRlc1swXS52YWx1ZSkmJiFuLmF0dHJpYnV0ZXNbMF0udmFsdWUudmFsdWUuaW5jbHVkZXMoYFxuYCkmJiFzJiYhZChuLmF0dHJpYnV0ZXNbMF0pKXJldHVybiB5KFtcIjxcIixyKFwibmFtZVwiKSxyKFwidHlwZVBhcmFtZXRlcnNcIiksXCIgXCIsLi4uZS5tYXAocixcImF0dHJpYnV0ZXNcIiksbi5zZWxmQ2xvc2luZz9cIiAvPlwiOlwiPlwiXSk7bGV0IHU9KG89bi5hdHRyaWJ1dGVzKT09bnVsbD92b2lkIDA6by5zb21lKHA9PnAudmFsdWUmJlEocC52YWx1ZSkmJnAudmFsdWUudmFsdWUuaW5jbHVkZXMoYFxuYCkpLGk9dC5zaW5nbGVBdHRyaWJ1dGVQZXJMaW5lJiZuLmF0dHJpYnV0ZXMubGVuZ3RoPjE/QzpBO3JldHVybiB5KFtcIjxcIixyKFwibmFtZVwiKSxyKFwidHlwZVBhcmFtZXRlcnNcIiksRShlLm1hcCgoKT0+W2kscigpXSxcImF0dHJpYnV0ZXNcIikpLC4uLmVwKG4sdCxzKV0se3Nob3VsZEJyZWFrOnV9KX1mdW5jdGlvbiBlcChlLHQscil7cmV0dXJuIGUuc2VsZkNsb3Npbmc/W0EsXCIvPlwiXTp0cChlLHQscik/W1wiPlwiXTpbRixcIj5cIl19ZnVuY3Rpb24gdHAoZSx0LHIpe2xldCBuPWUuYXR0cmlidXRlcy5sZW5ndGg+MCYmZCh3KCExLGUuYXR0cmlidXRlcywtMSkseC5UcmFpbGluZyk7cmV0dXJuIGUuYXR0cmlidXRlcy5sZW5ndGg9PT0wJiYhcnx8KHQuYnJhY2tldFNhbWVMaW5lfHx0LmpzeEJyYWNrZXRTYW1lTGluZSkmJighcnx8ZS5hdHRyaWJ1dGVzLmxlbmd0aD4wKSYmIW59ZnVuY3Rpb24gcnAoZSx0LHIpe2xldHtub2RlOm59PWUscz1bXTtzLnB1c2goXCI8L1wiKTtsZXQgdT1yKFwibmFtZVwiKTtyZXR1cm4gZChuLm5hbWUseC5MZWFkaW5nfHguTGluZSk/cy5wdXNoKEUoW0MsdV0pLEMpOmQobi5uYW1lLHguTGVhZGluZ3x4LkJsb2NrKT9zLnB1c2goXCIgXCIsdSk6cy5wdXNoKHUpLHMucHVzaChcIj5cIiksc31mdW5jdGlvbiBucChlLHQpe2xldHtub2RlOnJ9PWUsbj1kKHIpLHM9ZChyLHguTGluZSksdT1yLnR5cGU9PT1cIkpTWE9wZW5pbmdGcmFnbWVudFwiO3JldHVyblt1P1wiPFwiOlwiPC9cIixFKFtzP0M6biYmIXU/XCIgXCI6XCJcIixNKGUsdCldKSxzP0M6XCJcIixcIj5cIl19ZnVuY3Rpb24gc3AoZSx0LHIpe2xldCBuPXBlKGUsJG8oZSx0LHIpLHQpO3JldHVybiBLbyhlLG4sdCl9ZnVuY3Rpb24gdXAoZSx0KXtsZXR7bm9kZTpyfT1lLG49ZChyLHguTGluZSk7cmV0dXJuW00oZSx0LHtpbmRlbnQ6bn0pLG4/QzpcIlwiXX1mdW5jdGlvbiBpcChlLHQscil7bGV0e25vZGU6bn09ZTtyZXR1cm5bXCJ7XCIsZS5jYWxsKCh7bm9kZTpzfSk9PntsZXQgdT1bXCIuLi5cIixyKCldO3JldHVybiFkKHMpfHwhem4oZSk/dTpbRShbRixwZShlLHUsdCldKSxGXX0sbi50eXBlPT09XCJKU1hTcHJlYWRBdHRyaWJ1dGVcIj9cImFyZ3VtZW50XCI6XCJleHByZXNzaW9uXCIpLFwifVwiXX1mdW5jdGlvbiBodShlLHQscil7bGV0e25vZGU6bn09ZTtpZihuLnR5cGUuc3RhcnRzV2l0aChcIkpTWFwiKSlzd2l0Y2gobi50eXBlKXtjYXNlXCJKU1hBdHRyaWJ1dGVcIjpyZXR1cm4gem8oZSx0LHIpO2Nhc2VcIkpTWElkZW50aWZpZXJcIjpyZXR1cm4gbi5uYW1lO2Nhc2VcIkpTWE5hbWVzcGFjZWROYW1lXCI6cmV0dXJuIEIoXCI6XCIsW3IoXCJuYW1lc3BhY2VcIikscihcIm5hbWVcIildKTtjYXNlXCJKU1hNZW1iZXJFeHByZXNzaW9uXCI6cmV0dXJuIEIoXCIuXCIsW3IoXCJvYmplY3RcIikscihcInByb3BlcnR5XCIpXSk7Y2FzZVwiSlNYU3ByZWFkQXR0cmlidXRlXCI6Y2FzZVwiSlNYU3ByZWFkQ2hpbGRcIjpyZXR1cm4gaXAoZSx0LHIpO2Nhc2VcIkpTWEV4cHJlc3Npb25Db250YWluZXJcIjpyZXR1cm4gUW8oZSx0LHIpO2Nhc2VcIkpTWEZyYWdtZW50XCI6Y2FzZVwiSlNYRWxlbWVudFwiOnJldHVybiBzcChlLHQscik7Y2FzZVwiSlNYT3BlbmluZ0VsZW1lbnRcIjpyZXR1cm4gWm8oZSx0LHIpO2Nhc2VcIkpTWENsb3NpbmdFbGVtZW50XCI6cmV0dXJuIHJwKGUsdCxyKTtjYXNlXCJKU1hPcGVuaW5nRnJhZ21lbnRcIjpjYXNlXCJKU1hDbG9zaW5nRnJhZ21lbnRcIjpyZXR1cm4gbnAoZSx0KTtjYXNlXCJKU1hFbXB0eUV4cHJlc3Npb25cIjpyZXR1cm4gdXAoZSx0KTtjYXNlXCJKU1hUZXh0XCI6dGhyb3cgbmV3IEVycm9yKFwiSlNYVGV4dCBzaG91bGQgYmUgaGFuZGxlZCBieSBKU1hFbGVtZW50XCIpO2RlZmF1bHQ6dGhyb3cgbmV3IE9lKG4sXCJKU1hcIil9fWZ1bmN0aW9uIGFwKGUpe2lmKGUuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm4hMDtpZihlLmNoaWxkcmVuLmxlbmd0aD4xKXJldHVybiExO2xldCB0PWUuY2hpbGRyZW5bMF07cmV0dXJuIHQudHlwZT09PVwiSlNYVGV4dFwiJiYhWnQodCl9ZnVuY3Rpb24gWnQoZSl7cmV0dXJuIGUudHlwZT09PVwiSlNYVGV4dFwiJiYoUHIuaGFzTm9uV2hpdGVzcGFjZUNoYXJhY3RlcihvZShlKSl8fCEvXFxuLy50ZXN0KG9lKGUpKSl9ZnVuY3Rpb24gb3AoZSl7cmV0dXJuIGUudHlwZT09PVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiJiZRKGUuZXhwcmVzc2lvbikmJmUuZXhwcmVzc2lvbi52YWx1ZT09PVwiIFwiJiYhZChlLmV4cHJlc3Npb24pfWZ1bmN0aW9uIFN1KGUpe2xldHtub2RlOnQscGFyZW50OnJ9PWU7aWYoIVkodCl8fCFZKHIpKXJldHVybiExO2xldHtpbmRleDpuLHNpYmxpbmdzOnN9PWUsdTtmb3IobGV0IGk9bjtpPjA7aS0tKXtsZXQgYT1zW2ktMV07aWYoIShhLnR5cGU9PT1cIkpTWFRleHRcIiYmIVp0KGEpKSl7dT1hO2JyZWFrfX1yZXR1cm4odT09bnVsbD92b2lkIDA6dS50eXBlKT09PVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiJiZ1LmV4cHJlc3Npb24udHlwZT09PVwiSlNYRW1wdHlFeHByZXNzaW9uXCImJmR0KHUuZXhwcmVzc2lvbil9ZnVuY3Rpb24gcHAoZSl7cmV0dXJuIGR0KGUubm9kZSl8fFN1KGUpfXZhciBrcj1wcDt2YXIgY3A9MDtmdW5jdGlvbiBJcihlLHQscil7dmFyIF87bGV0e25vZGU6bixwYXJlbnQ6cyxncmFuZHBhcmVudDp1LGtleTppfT1lLGE9aSE9PVwiYm9keVwiJiYocy50eXBlPT09XCJJZlN0YXRlbWVudFwifHxzLnR5cGU9PT1cIldoaWxlU3RhdGVtZW50XCJ8fHMudHlwZT09PVwiU3dpdGNoU3RhdGVtZW50XCJ8fHMudHlwZT09PVwiRG9XaGlsZVN0YXRlbWVudFwiKSxvPW4ub3BlcmF0b3I9PT1cInw+XCImJigoXz1lLnJvb3QuZXh0cmEpPT1udWxsP3ZvaWQgMDpfLl9faXNVc2luZ0hhY2tQaXBlbGluZSkscD1abihlLHIsdCwhMSxhKTtpZihhKXJldHVybiBwO2lmKG8pcmV0dXJuIHkocCk7aWYoayhzKSYmcy5jYWxsZWU9PT1ufHxzLnR5cGU9PT1cIlVuYXJ5RXhwcmVzc2lvblwifHxKKHMpJiYhcy5jb21wdXRlZClyZXR1cm4geShbRShbRiwuLi5wXSksRl0pO2xldCBtPXMudHlwZT09PVwiUmV0dXJuU3RhdGVtZW50XCJ8fHMudHlwZT09PVwiVGhyb3dTdGF0ZW1lbnRcInx8cy50eXBlPT09XCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCImJnUudHlwZT09PVwiSlNYQXR0cmlidXRlXCJ8fG4ub3BlcmF0b3IhPT1cInxcIiYmcy50eXBlPT09XCJKc0V4cHJlc3Npb25Sb290XCJ8fG4udHlwZSE9PVwiTkdQaXBlRXhwcmVzc2lvblwiJiYocy50eXBlPT09XCJOR1Jvb3RcIiYmdC5wYXJzZXI9PT1cIl9fbmdfYmluZGluZ1wifHxzLnR5cGU9PT1cIk5HTWljcm9zeW50YXhFeHByZXNzaW9uXCImJnUudHlwZT09PVwiTkdNaWNyb3N5bnRheFwiJiZ1LmJvZHkubGVuZ3RoPT09MSl8fG49PT1zLmJvZHkmJnMudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cInx8biE9PXMuYm9keSYmcy50eXBlPT09XCJGb3JTdGF0ZW1lbnRcInx8cy50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIiYmdS50eXBlIT09XCJSZXR1cm5TdGF0ZW1lbnRcIiYmdS50eXBlIT09XCJUaHJvd1N0YXRlbWVudFwiJiYhayh1KXx8cy50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIixEPXMudHlwZT09PVwiQXNzaWdubWVudEV4cHJlc3Npb25cInx8cy50eXBlPT09XCJWYXJpYWJsZURlY2xhcmF0b3JcInx8cy50eXBlPT09XCJDbGFzc1Byb3BlcnR5XCJ8fHMudHlwZT09PVwiUHJvcGVydHlEZWZpbml0aW9uXCJ8fHMudHlwZT09PVwiVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvblwifHxzLnR5cGU9PT1cIkNsYXNzUHJpdmF0ZVByb3BlcnR5XCJ8fGZlKHMpLGM9Y2Uobi5sZWZ0KSYmVnQobi5vcGVyYXRvcixuLmxlZnQub3BlcmF0b3IpO2lmKG18fE90KG4pJiYhY3x8IU90KG4pJiZEKXJldHVybiB5KHApO2lmKHAubGVuZ3RoPT09MClyZXR1cm5cIlwiO2xldCBmPVkobi5yaWdodCksbD1wLmZpbmRJbmRleChSPT50eXBlb2YgUiE9XCJzdHJpbmdcIiYmIUFycmF5LmlzQXJyYXkoUikmJlIudHlwZT09PXVlKSxoPXAuc2xpY2UoMCxsPT09LTE/MTpsKzEpLGc9cC5zbGljZShoLmxlbmd0aCxmPy0xOnZvaWQgMCksUz1TeW1ib2woXCJsb2dpY2FsQ2hhaW4tXCIrICsrY3ApLEk9eShbLi4uaCxFKGcpXSx7aWQ6U30pO2lmKCFmKXJldHVybiBJO2xldCB2PXcoITEscCwtMSk7cmV0dXJuIHkoW0ksbXQodix7Z3JvdXBJZDpTfSldKX1mdW5jdGlvbiBabihlLHQscixuLHMpe3ZhciBoO2xldHtub2RlOnV9PWU7aWYoIWNlKHUpKXJldHVyblt5KHQoKSldO2xldCBpPVtdO1Z0KHUub3BlcmF0b3IsdS5sZWZ0Lm9wZXJhdG9yKT9pPWUuY2FsbChnPT5abihnLHQsciwhMCxzKSxcImxlZnRcIik6aS5wdXNoKHkodChcImxlZnRcIikpKTtsZXQgYT1PdCh1KSxvPSh1Lm9wZXJhdG9yPT09XCJ8PlwifHx1LnR5cGU9PT1cIk5HUGlwZUV4cHJlc3Npb25cInx8bHAoZSxyKSkmJiFJZShyLm9yaWdpbmFsVGV4dCx1LnJpZ2h0KSxwPXUudHlwZT09PVwiTkdQaXBlRXhwcmVzc2lvblwiP1wifFwiOnUub3BlcmF0b3IsbT11LnR5cGU9PT1cIk5HUGlwZUV4cHJlc3Npb25cIiYmdS5hcmd1bWVudHMubGVuZ3RoPjA/eShFKFtGLFwiOiBcIixCKFtBLFwiOiBcIl0sZS5tYXAoKCk9PkRlKDIseSh0KCkpKSxcImFyZ3VtZW50c1wiKSldKSk6XCJcIixEO2lmKGEpRD1bcCxcIiBcIix0KFwicmlnaHRcIiksbV07ZWxzZXtsZXQgUz1wPT09XCJ8PlwiJiYoKGg9ZS5yb290LmV4dHJhKT09bnVsbD92b2lkIDA6aC5fX2lzVXNpbmdIYWNrUGlwZWxpbmUpP2UuY2FsbChJPT5abihJLHQsciwhMCxzKSxcInJpZ2h0XCIpOnQoXCJyaWdodFwiKTtEPVtvP0E6XCJcIixwLG8/XCIgXCI6QSxTLG1dfWxldHtwYXJlbnQ6Y309ZSxmPWQodS5sZWZ0LHguVHJhaWxpbmd8eC5MaW5lKSxsPWZ8fCEocyYmdS50eXBlPT09XCJMb2dpY2FsRXhwcmVzc2lvblwiKSYmYy50eXBlIT09dS50eXBlJiZ1LmxlZnQudHlwZSE9PXUudHlwZSYmdS5yaWdodC50eXBlIT09dS50eXBlO2lmKGkucHVzaChvP1wiXCI6XCIgXCIsbD95KEQse3Nob3VsZEJyZWFrOmZ9KTpEKSxuJiZkKHUpKXtsZXQgZz1CdChwZShlLGkscikpO3JldHVybiBBcnJheS5pc0FycmF5KGcpfHxnLnR5cGU9PT15ZT9tcihnKTpbZ119cmV0dXJuIGl9ZnVuY3Rpb24gT3QoZSl7cmV0dXJuIGUudHlwZSE9PVwiTG9naWNhbEV4cHJlc3Npb25cIj8hMTohIShlZShlLnJpZ2h0KSYmZS5yaWdodC5wcm9wZXJ0aWVzLmxlbmd0aD4wfHxHKGUucmlnaHQpJiZlLnJpZ2h0LmVsZW1lbnRzLmxlbmd0aD4wfHxZKGUucmlnaHQpKX12YXIgQnU9ZT0+ZS50eXBlPT09XCJCaW5hcnlFeHByZXNzaW9uXCImJmUub3BlcmF0b3I9PT1cInxcIjtmdW5jdGlvbiBscChlLHQpe3JldHVybih0LnBhcnNlcj09PVwiX192dWVfZXhwcmVzc2lvblwifHx0LnBhcnNlcj09PVwiX192dWVfdHNfZXhwcmVzc2lvblwiKSYmQnUoZS5ub2RlKSYmIWUuaGFzQW5jZXN0b3Iocj0+IUJ1KHIpJiZyLnR5cGUhPT1cIkpzRXhwcmVzc2lvblJvb3RcIil9dmFyIGF0PWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkFyZ0V4cGFuc2lvbkJhaWxvdXRcIn07ZnVuY3Rpb24gbXAoZSx0LHIsbil7bGV0e25vZGU6c309ZTtyZXR1cm4gZChzLHguRGFuZ2xpbmcpP3koW3IsTShlLHQse2luZGVudDohMH0pLEYsbl0pOltyLG5dfWZ1bmN0aW9uIHZ0KGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9W10sdT1uLnR5cGU9PT1cIlR1cGxlRXhwcmVzc2lvblwiP1wiI1tcIjpcIltcIixpPVwiXVwiLGE9bi50eXBlPT09XCJUdXBsZVR5cGVBbm5vdGF0aW9uXCImJm4udHlwZXM/XCJ0eXBlc1wiOm4udHlwZT09PVwiVFNUdXBsZVR5cGVcInx8bi50eXBlPT09XCJUdXBsZVR5cGVBbm5vdGF0aW9uXCI/XCJlbGVtZW50VHlwZXNcIjpcImVsZW1lbnRzXCIsbz1uW2FdO2lmKG8ubGVuZ3RoPT09MClzLnB1c2gobXAoZSx0LHUsaSkpO2Vsc2V7bGV0IHA9dyghMSxvLC0xKSxtPShwPT1udWxsP3ZvaWQgMDpwLnR5cGUpIT09XCJSZXN0RWxlbWVudFwiLEQ9cD09PW51bGwsYz1TeW1ib2woXCJhcnJheVwiKSxmPSF0Ll9faW5KZXN0RWFjaCYmby5sZW5ndGg+MSYmby5ldmVyeSgoZyxTLEkpPT57bGV0IHY9Zz09bnVsbD92b2lkIDA6Zy50eXBlO2lmKCFHKGcpJiYhZWUoZykpcmV0dXJuITE7bGV0IF89SVtTKzFdO2lmKF8mJnYhPT1fLnR5cGUpcmV0dXJuITE7bGV0IFI9RyhnKT9cImVsZW1lbnRzXCI6XCJwcm9wZXJ0aWVzXCI7cmV0dXJuIGdbUl0mJmdbUl0ubGVuZ3RoPjF9KSxsPWVzKG4sdCksaD1tP0Q/XCIsXCI6bGUodCk/bD9QKFwiLFwiLFwiXCIse2dyb3VwSWQ6Y30pOlAoXCIsXCIpOlwiXCI6XCJcIjtzLnB1c2goeShbdSxFKFtGLGw/RHAoZSx0LHIsaCk6W3lwKGUsdCxhLHIpLGhdLE0oZSx0KV0pLEYsaV0se3Nob3VsZEJyZWFrOmYsaWQ6Y30pKX1yZXR1cm4gcy5wdXNoKCQoZSkscShlLHIpKSxzfWZ1bmN0aW9uIGVzKGUsdCl7cmV0dXJuIEcoZSkmJmUuZWxlbWVudHMubGVuZ3RoPjEmJmUuZWxlbWVudHMuZXZlcnkocj0+ciYmKGhlKHIpfHxBcihyKSYmIWQoci5hcmd1bWVudCkpJiYhZChyLHguVHJhaWxpbmd8eC5MaW5lLG49PiF6KHQub3JpZ2luYWxUZXh0LFUobikse2JhY2t3YXJkczohMH0pKSl9ZnVuY3Rpb24gYnUoe25vZGU6ZX0se29yaWdpbmFsVGV4dDp0fSl7bGV0IHI9cz0+YnQodCxQdCh0LHMpKSxuPXM9PnRbc109PT1cIixcIj9zOm4ocihzKzEpKTtyZXR1cm4ga3QodCxuKE8oZSkpKX1mdW5jdGlvbiB5cChlLHQscixuKXtsZXQgcz1bXTtyZXR1cm4gZS5lYWNoKCh7bm9kZTp1LGlzTGFzdDppfSk9PntzLnB1c2godT95KG4oKSk6XCJcIiksaXx8cy5wdXNoKFtcIixcIixBLHUmJmJ1KGUsdCk/RjpcIlwiXSl9LHIpLHN9ZnVuY3Rpb24gRHAoZSx0LHIsbil7bGV0IHM9W107cmV0dXJuIGUuZWFjaCgoe2lzTGFzdDp1LG5leHQ6aX0pPT57cy5wdXNoKFtyKCksdT9uOlwiLFwiXSksdXx8cy5wdXNoKGJ1KGUsdCk/W0MsQ106ZChpLHguTGVhZGluZ3x4LkxpbmUpP0M6QSl9LFwiZWxlbWVudHNcIiksU3Qocyl9ZnVuY3Rpb24gZnAoZSx0LHIpe2xldHtub2RlOm59PWUscz1DZShuKTtpZihzLmxlbmd0aD09PTApcmV0dXJuW1wiKFwiLE0oZSx0KSxcIilcIl07aWYoQ3AocykpcmV0dXJuW1wiKFwiLHIoW1wiYXJndW1lbnRzXCIsMF0pLFwiLCBcIixyKFtcImFyZ3VtZW50c1wiLDFdKSxcIilcIl07bGV0IHU9ITEsaT1zLmxlbmd0aC0xLGE9W107U3IoZSwoe25vZGU6Y30sZik9PntsZXQgbD1yKCk7Zj09PWl8fChtZShjLHQpPyh1PSEwLGw9W2wsXCIsXCIsQyxDXSk6bD1bbCxcIixcIixBXSksYS5wdXNoKGwpfSk7bGV0IHA9IShuLnR5cGU9PT1cIkltcG9ydEV4cHJlc3Npb25cInx8bi5jYWxsZWUudHlwZT09PVwiSW1wb3J0XCIpJiZsZSh0LFwiYWxsXCIpP1wiLFwiOlwiXCI7ZnVuY3Rpb24gbSgpe3JldHVybiB5KFtcIihcIixFKFtBLC4uLmFdKSxwLEEsXCIpXCJdLHtzaG91bGRCcmVhazohMH0pfWlmKHV8fGUucGFyZW50LnR5cGUhPT1cIkRlY29yYXRvclwiJiZ0dShzKSlyZXR1cm4gbSgpO2lmKEZwKHMpKXtsZXQgYz1hLnNsaWNlKDEpO2lmKGMuc29tZShLKSlyZXR1cm4gbSgpO2xldCBmO3RyeXtmPXIoTW4obiwwKSx7ZXhwYW5kRmlyc3RBcmc6ITB9KX1jYXRjaChsKXtpZihsIGluc3RhbmNlb2YgYXQpcmV0dXJuIG0oKTt0aHJvdyBsfXJldHVybiBLKGYpP1tUZSxxZShbW1wiKFwiLHkoZix7c2hvdWxkQnJlYWs6ITB9KSxcIiwgXCIsLi4uYyxcIilcIl0sbSgpXSldOnFlKFtbXCIoXCIsZixcIiwgXCIsLi4uYyxcIilcIl0sW1wiKFwiLHkoZix7c2hvdWxkQnJlYWs6ITB9KSxcIiwgXCIsLi4uYyxcIilcIl0sbSgpXSl9aWYoRXAocyxhLHQpKXtsZXQgYz1hLnNsaWNlKDAsLTEpO2lmKGMuc29tZShLKSlyZXR1cm4gbSgpO2xldCBmO3RyeXtmPXIoTW4obiwtMSkse2V4cGFuZExhc3RBcmc6ITB9KX1jYXRjaChsKXtpZihsIGluc3RhbmNlb2YgYXQpcmV0dXJuIG0oKTt0aHJvdyBsfXJldHVybiBLKGYpP1tUZSxxZShbW1wiKFwiLC4uLmMseShmLHtzaG91bGRCcmVhazohMH0pLFwiKVwiXSxtKCldKV06cWUoW1tcIihcIiwuLi5jLGYsXCIpXCJdLFtcIihcIiwuLi5jLHkoZix7c2hvdWxkQnJlYWs6ITB9KSxcIilcIl0sbSgpXSl9bGV0IEQ9W1wiKFwiLEUoW0YsLi4uYV0pLFAocCksRixcIilcIl07cmV0dXJuIGhyKGUpP0Q6eShELHtzaG91bGRCcmVhazphLnNvbWUoSyl8fHV9KX1mdW5jdGlvbiBlcihlLHQ9ITEpe3JldHVybiBlZShlKSYmKGUucHJvcGVydGllcy5sZW5ndGg+MHx8ZChlKSl8fEcoZSkmJihlLmVsZW1lbnRzLmxlbmd0aD4wfHxkKGUpKXx8ZS50eXBlPT09XCJUU1R5cGVBc3NlcnRpb25cIiYmZXIoZS5leHByZXNzaW9uKXx8TGUoZSkmJmVyKGUuZXhwcmVzc2lvbil8fGUudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCJ8fGUudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmKCFlLnJldHVyblR5cGV8fCFlLnJldHVyblR5cGUudHlwZUFubm90YXRpb258fGUucmV0dXJuVHlwZS50eXBlQW5ub3RhdGlvbi50eXBlIT09XCJUU1R5cGVSZWZlcmVuY2VcInx8ZHAoZS5ib2R5KSkmJihlLmJvZHkudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcInx8ZS5ib2R5LnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCImJmVyKGUuYm9keSwhMCl8fGVlKGUuYm9keSl8fEcoZS5ib2R5KXx8IXQmJihrKGUuYm9keSl8fGUuYm9keS50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIil8fFkoZS5ib2R5KSl8fGUudHlwZT09PVwiRG9FeHByZXNzaW9uXCJ8fGUudHlwZT09PVwiTW9kdWxlRXhwcmVzc2lvblwifWZ1bmN0aW9uIEVwKGUsdCxyKXt2YXIgdSxpO2xldCBuPXcoITEsZSwtMSk7aWYoZS5sZW5ndGg9PT0xKXtsZXQgYT13KCExLHQsLTEpO2lmKCh1PWEubGFiZWwpIT1udWxsJiZ1LmVtYmVkJiYoKGk9YS5sYWJlbCk9PW51bGw/dm9pZCAwOmkuaHVnKSE9PSExKXJldHVybiEwfWxldCBzPXcoITEsZSwtMik7cmV0dXJuIWQobix4LkxlYWRpbmcpJiYhZChuLHguVHJhaWxpbmcpJiZlcihuKSYmKCFzfHxzLnR5cGUhPT1uLnR5cGUpJiYoZS5sZW5ndGghPT0yfHxzLnR5cGUhPT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCJ8fCFHKG4pKSYmIShlLmxlbmd0aD4xJiZlcyhuLHIpKX1mdW5jdGlvbiBGcChlKXtpZihlLmxlbmd0aCE9PTIpcmV0dXJuITE7bGV0W3Qscl09ZTtyZXR1cm4gdC50eXBlPT09XCJNb2R1bGVFeHByZXNzaW9uXCImJkFwKHIpPyEwOiFkKHQpJiYodC50eXBlPT09XCJGdW5jdGlvbkV4cHJlc3Npb25cInx8dC50eXBlPT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiJiZ0LmJvZHkudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIikmJnIudHlwZSE9PVwiRnVuY3Rpb25FeHByZXNzaW9uXCImJnIudHlwZSE9PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmci50eXBlIT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIiYmUHUocikmJiFlcihyKX1mdW5jdGlvbiBQdShlKXt2YXIgdDtpZihlLnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCIpcmV0dXJuIFB1KGUuZXhwcmVzc2lvbik7aWYoTGUoZSl8fGUudHlwZT09PVwiVHlwZUNhc3RFeHByZXNzaW9uXCIpe2xldHt0eXBlQW5ub3RhdGlvbjpyfT1lO3JldHVybiByLnR5cGU9PT1cIlR5cGVBbm5vdGF0aW9uXCImJihyPXIudHlwZUFubm90YXRpb24pLHIudHlwZT09PVwiVFNBcnJheVR5cGVcIiYmKHI9ci5lbGVtZW50VHlwZSxyLnR5cGU9PT1cIlRTQXJyYXlUeXBlXCImJihyPXIuZWxlbWVudFR5cGUpKSwoci50eXBlPT09XCJHZW5lcmljVHlwZUFubm90YXRpb25cInx8ci50eXBlPT09XCJUU1R5cGVSZWZlcmVuY2VcIikmJigodD1yLnR5cGVQYXJhbWV0ZXJzKT09bnVsbD92b2lkIDA6dC5wYXJhbXMubGVuZ3RoKT09PTEmJihyPXIudHlwZVBhcmFtZXRlcnMucGFyYW1zWzBdKSx3dChyKSYmZ2UoZS5leHByZXNzaW9uLDEpfXJldHVybiBpdChlKSYmQ2UoZSkubGVuZ3RoPjE/ITE6Y2UoZSk/Z2UoZS5sZWZ0LDEpJiZnZShlLnJpZ2h0LDEpOnduKGUpfHxnZShlKX1mdW5jdGlvbiBDcChlKXtyZXR1cm4gZS5sZW5ndGg9PT0yJiZlWzBdLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCImJlgoZVswXSkubGVuZ3RoPT09MCYmZVswXS5ib2R5LnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCImJmVbMV0udHlwZT09PVwiQXJyYXlFeHByZXNzaW9uXCImJiFlLnNvbWUodD0+ZCh0KSl9ZnVuY3Rpb24gZHAoZSl7cmV0dXJuIGUudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIiYmKGUuYm9keS5zb21lKHQ9PnQudHlwZSE9PVwiRW1wdHlTdGF0ZW1lbnRcIil8fGQoZSx4LkRhbmdsaW5nKSl9ZnVuY3Rpb24gQXAoZSl7cmV0dXJuIGUudHlwZT09PVwiT2JqZWN0RXhwcmVzc2lvblwiJiZlLnByb3BlcnRpZXMubGVuZ3RoPT09MSYmZmUoZS5wcm9wZXJ0aWVzWzBdKSYmZS5wcm9wZXJ0aWVzWzBdLmtleS50eXBlPT09XCJJZGVudGlmaWVyXCImJmUucHJvcGVydGllc1swXS5rZXkubmFtZT09PVwidHlwZVwiJiZRKGUucHJvcGVydGllc1swXS52YWx1ZSkmJmUucHJvcGVydGllc1swXS52YWx1ZS52YWx1ZT09PVwibW9kdWxlXCJ9dmFyIHRyPWZwO2Z1bmN0aW9uIGt1KGUsdCxyKXt2YXIgcDtsZXQgbj1yKFwib2JqZWN0XCIpLHM9dHMoZSx0LHIpLHtub2RlOnUscGFyZW50Oml9PWUsYT1lLmZpbmRBbmNlc3RvcihtPT4hKEoobSl8fG0udHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiKSksbz1hJiYoYS50eXBlPT09XCJOZXdFeHByZXNzaW9uXCJ8fGEudHlwZT09PVwiQmluZEV4cHJlc3Npb25cInx8YS50eXBlPT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiJiZhLmxlZnQudHlwZSE9PVwiSWRlbnRpZmllclwiKXx8dS5jb21wdXRlZHx8dS5vYmplY3QudHlwZT09PVwiSWRlbnRpZmllclwiJiZ1LnByb3BlcnR5LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmIUooaSl8fChpLnR5cGU9PT1cIkFzc2lnbm1lbnRFeHByZXNzaW9uXCJ8fGkudHlwZT09PVwiVmFyaWFibGVEZWNsYXJhdG9yXCIpJiYoayh1Lm9iamVjdCkmJnUub2JqZWN0LmFyZ3VtZW50cy5sZW5ndGg+MHx8dS5vYmplY3QudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiJiZrKHUub2JqZWN0LmV4cHJlc3Npb24pJiZ1Lm9iamVjdC5leHByZXNzaW9uLmFyZ3VtZW50cy5sZW5ndGg+MHx8KChwPW4ubGFiZWwpPT1udWxsP3ZvaWQgMDpwLm1lbWJlckNoYWluKSk7cmV0dXJuIGV0KG4ubGFiZWwsW24sbz9zOnkoRShbRixzXSkpXSl9ZnVuY3Rpb24gdHMoZSx0LHIpe2xldCBuPXIoXCJwcm9wZXJ0eVwiKSx7bm9kZTpzfT1lLHU9JChlKTtyZXR1cm4gcy5jb21wdXRlZD8hcy5wcm9wZXJ0eXx8aGUocy5wcm9wZXJ0eSk/W3UsXCJbXCIsbixcIl1cIl06eShbdSxcIltcIixFKFtGLG5dKSxGLFwiXVwiXSk6W3UsXCIuXCIsbl19ZnVuY3Rpb24gVHAoZSx0LHIpe2xldHtwYXJlbnQ6bn09ZSxzPSFufHxuLnR5cGU9PT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIix1PVtdO2Z1bmN0aW9uIGkoTCl7bGV0e29yaWdpbmFsVGV4dDpXfT10LHNlPVhlKFcsTyhMKSk7cmV0dXJuIFcuY2hhckF0KHNlKT09PVwiKVwiP3NlIT09ITEmJmt0KFcsc2UrMSk6bWUoTCx0KX1mdW5jdGlvbiBhKEwpe2xldHtub2RlOld9PUw7ayhXKSYmKER0KFcuY2FsbGVlKXx8ayhXLmNhbGxlZSkpPyh1LnVuc2hpZnQoe25vZGU6VyxwcmludGVkOltwZShMLFskKEwpLFZlKEwsdCxyKSx0cihMLHQscildLHQpLGkoVyk/QzpcIlwiXX0pLEwuY2FsbChzZT0+YShzZSksXCJjYWxsZWVcIikpOkR0KFcpPyh1LnVuc2hpZnQoe25vZGU6VyxuZWVkc1BhcmVuczp3ZShMLHQpLHByaW50ZWQ6cGUoTCxKKFcpP3RzKEwsdCxyKTpMcihMLHQsciksdCl9KSxMLmNhbGwoc2U9PmEoc2UpLFwib2JqZWN0XCIpKTpXLnR5cGU9PT1cIlRTTm9uTnVsbEV4cHJlc3Npb25cIj8odS51bnNoaWZ0KHtub2RlOlcscHJpbnRlZDpwZShMLFwiIVwiLHQpfSksTC5jYWxsKHNlPT5hKHNlKSxcImV4cHJlc3Npb25cIikpOnUudW5zaGlmdCh7bm9kZTpXLHByaW50ZWQ6cigpfSl9bGV0e25vZGU6b309ZTt1LnVuc2hpZnQoe25vZGU6byxwcmludGVkOlskKGUpLFZlKGUsdCxyKSx0cihlLHQscildfSksby5jYWxsZWUmJmUuY2FsbChMPT5hKEwpLFwiY2FsbGVlXCIpO2xldCBwPVtdLG09W3VbMF1dLEQ9MTtmb3IoO0Q8dS5sZW5ndGgmJih1W0RdLm5vZGUudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwifHxrKHVbRF0ubm9kZSl8fEoodVtEXS5ub2RlKSYmdVtEXS5ub2RlLmNvbXB1dGVkJiZoZSh1W0RdLm5vZGUucHJvcGVydHkpKTsrK0QpbS5wdXNoKHVbRF0pO2lmKCFrKHVbMF0ubm9kZSkpZm9yKDtEKzE8dS5sZW5ndGgmJihEdCh1W0RdLm5vZGUpJiZEdCh1W0QrMV0ubm9kZSkpOysrRCltLnB1c2godVtEXSk7cC5wdXNoKG0pLG09W107bGV0IGM9ITE7Zm9yKDtEPHUubGVuZ3RoOysrRCl7aWYoYyYmRHQodVtEXS5ub2RlKSl7aWYodVtEXS5ub2RlLmNvbXB1dGVkJiZoZSh1W0RdLm5vZGUucHJvcGVydHkpKXttLnB1c2godVtEXSk7Y29udGludWV9cC5wdXNoKG0pLG09W10sYz0hMX0oayh1W0RdLm5vZGUpfHx1W0RdLm5vZGUudHlwZT09PVwiSW1wb3J0RXhwcmVzc2lvblwiKSYmKGM9ITApLG0ucHVzaCh1W0RdKSxkKHVbRF0ubm9kZSx4LlRyYWlsaW5nKSYmKHAucHVzaChtKSxtPVtdLGM9ITEpfW0ubGVuZ3RoPjAmJnAucHVzaChtKTtmdW5jdGlvbiBmKEwpe3JldHVybi9eW0EtWl18XlskX10rJC8udGVzdChMKX1mdW5jdGlvbiBsKEwpe3JldHVybiBMLmxlbmd0aDw9dC50YWJXaWR0aH1mdW5jdGlvbiBoKEwpe3ZhciBBbjtsZXQgVz0oQW49TFsxXVswXSk9PW51bGw/dm9pZCAwOkFuLm5vZGUuY29tcHV0ZWQ7aWYoTFswXS5sZW5ndGg9PT0xKXtsZXQgYXI9TFswXVswXS5ub2RlO3JldHVybiBhci50eXBlPT09XCJUaGlzRXhwcmVzc2lvblwifHxhci50eXBlPT09XCJJZGVudGlmaWVyXCImJihmKGFyLm5hbWUpfHxzJiZsKGFyLm5hbWUpfHxXKX1sZXQgc2U9dyghMSxMWzBdLC0xKS5ub2RlO3JldHVybiBKKHNlKSYmc2UucHJvcGVydHkudHlwZT09PVwiSWRlbnRpZmllclwiJiYoZihzZS5wcm9wZXJ0eS5uYW1lKXx8Vyl9bGV0IGc9cC5sZW5ndGg+PTImJiFkKHBbMV1bMF0ubm9kZSkmJmgocCk7ZnVuY3Rpb24gUyhMKXtsZXQgVz1MLm1hcChzZT0+c2UucHJpbnRlZCk7cmV0dXJuIEwubGVuZ3RoPjAmJncoITEsTCwtMSkubmVlZHNQYXJlbnM/W1wiKFwiLC4uLlcsXCIpXCJdOld9ZnVuY3Rpb24gSShMKXtyZXR1cm4gTC5sZW5ndGg9PT0wP1wiXCI6RSh5KFtDLEIoQyxMLm1hcChTKSldKSl9bGV0IHY9cC5tYXAoUyksXz12LFI9Zz8zOjIsVD1wLmZsYXQoKSxOPVQuc2xpY2UoMSwtMSkuc29tZShMPT5kKEwubm9kZSx4LkxlYWRpbmcpKXx8VC5zbGljZSgwLC0xKS5zb21lKEw9PmQoTC5ub2RlLHguVHJhaWxpbmcpKXx8cFtSXSYmZChwW1JdWzBdLm5vZGUseC5MZWFkaW5nKTtpZihwLmxlbmd0aDw9UiYmIU4pcmV0dXJuIGhyKGUpP186eShfKTtsZXQgU2U9dyghMSxwW2c/MTowXSwtMSkubm9kZSxWPSFrKFNlKSYmaShTZSksQmU9W1MocFswXSksZz9wLnNsaWNlKDEsMikubWFwKFMpOlwiXCIsVj9DOlwiXCIsSShwLnNsaWNlKGc/MjoxKSldLEVlPXUubWFwKCh7bm9kZTpMfSk9PkwpLmZpbHRlcihrKTtmdW5jdGlvbiBDbigpe2xldCBMPXcoITEsdyghMSxwLC0xKSwtMSkubm9kZSxXPXcoITEsdiwtMSk7cmV0dXJuIGsoTCkmJksoVykmJkVlLnNsaWNlKDAsLTEpLnNvbWUoc2U9PnNlLmFyZ3VtZW50cy5zb21lKEl0KSl9bGV0IGRuO3JldHVybiBOfHxFZS5sZW5ndGg+MiYmRWUuc29tZShMPT4hTC5hcmd1bWVudHMuZXZlcnkoVz0+Z2UoVykpKXx8di5zbGljZSgwLC0xKS5zb21lKEspfHxDbigpP2RuPXkoQmUpOmRuPVtLKF8pfHxWP1RlOlwiXCIscWUoW18sQmVdKV0sZXQoe21lbWJlckNoYWluOiEwfSxkbil9dmFyIEl1PVRwO2Z1bmN0aW9uIHdyKGUsdCxyKXt2YXIgRDtsZXR7bm9kZTpuLHBhcmVudDpzfT1lLHU9bi50eXBlPT09XCJOZXdFeHByZXNzaW9uXCIsaT1uLnR5cGU9PT1cIkltcG9ydEV4cHJlc3Npb25cIixhPSQoZSksbz1DZShuKSxwPW8ubGVuZ3RoPT09MSYmeHIob1swXSx0Lm9yaWdpbmFsVGV4dCk7aWYocHx8by5sZW5ndGg+MCYmIXUmJiFpJiYoeHAobixzKXx8Q3QobixzKSkpe2xldCBjPVtdO2lmKFNyKGUsKCk9PntjLnB1c2gocigpKX0pLCEocCYmKChEPWNbMF0ubGFiZWwpIT1udWxsJiZELmVtYmVkKSkpcmV0dXJuW3U/XCJuZXcgXCI6XCJcIixyKFwiY2FsbGVlXCIpLGEsVmUoZSx0LHIpLFwiKFwiLEIoXCIsIFwiLGMpLFwiKVwiXX1pZighaSYmIXUmJkR0KG4uY2FsbGVlKSYmIWUuY2FsbChjPT53ZShjLHQpLFwiY2FsbGVlXCIpKXJldHVybiBJdShlLHQscik7bGV0IG09W3U/XCJuZXcgXCI6XCJcIixpP1wiaW1wb3J0XCI6cihcImNhbGxlZVwiKSxhLFZlKGUsdCxyKSx0cihlLHQscildO3JldHVybiBpfHxrKG4uY2FsbGVlKT95KG0pOm19ZnVuY3Rpb24geHAoZSx0KXtpZihlLmNhbGxlZS50eXBlIT09XCJJZGVudGlmaWVyXCIpcmV0dXJuITE7aWYoZS5jYWxsZWUubmFtZT09PVwicmVxdWlyZVwiKXtsZXQgcj1DZShlKTtyZXR1cm4gci5sZW5ndGg9PT0xJiZRKHJbMF0pfHxyLmxlbmd0aD4xfWlmKGUuY2FsbGVlLm5hbWU9PT1cImRlZmluZVwiKXtsZXQgcj1DZShlKTtyZXR1cm4gdC50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJihyLmxlbmd0aD09PTF8fHIubGVuZ3RoPT09MiYmclswXS50eXBlPT09XCJBcnJheUV4cHJlc3Npb25cInx8ci5sZW5ndGg9PT0zJiZRKHJbMF0pJiZyWzFdLnR5cGU9PT1cIkFycmF5RXhwcmVzc2lvblwiKX1yZXR1cm4hMX1mdW5jdGlvbiBncChlLHQscil7bGV0IG49dD09PSdcIic/XCInXCI6J1wiJyx1PUgoITEsZSwvXFxcXCguKXwoW1wiJ10pL2dzLChpLGEsbyk9PmE9PT1uP2E6bz09PXQ/XCJcXFxcXCIrbzpvfHwociYmL15bXlxcblxcclwiJzAtN1xcXFxiZm5ydC12eFxcdTIwMjhcXHUyMDI5XSQvLnRlc3QoYSk/YTpcIlxcXFxcIithKSk7cmV0dXJuIHQrdSt0fXZhciBMdT1ncDtmdW5jdGlvbiBocChlLHQpe2xldCByPWUuc2xpY2UoMSwtMSksbj10LnBhcnNlcj09PVwianNvblwifHx0LnBhcnNlcj09PVwianNvbjVcIiYmdC5xdW90ZVByb3BzPT09XCJwcmVzZXJ2ZVwiJiYhdC5zaW5nbGVRdW90ZT8nXCInOnQuX19pc0luSHRtbEF0dHJpYnV0ZT9cIidcIjpicihyLHQuc2luZ2xlUXVvdGUpO3JldHVybiBMdShyLG4sISh0LnBhcnNlcj09PVwiY3NzXCJ8fHQucGFyc2VyPT09XCJsZXNzXCJ8fHQucGFyc2VyPT09XCJzY3NzXCJ8fHQuX19lbWJlZGRlZEluSHRtbCkpfXZhciBUdD1ocDtmdW5jdGlvbiBTcChlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL14oWystXT9bXFxkLl0rZSkoPzpcXCt8KC0pKT8wKig/PVxcZCkvLFwiJDEkMlwiKS5yZXBsYWNlKC9eKFsrLV0/W1xcZC5dKyllWystXT8wKyQvLFwiJDFcIikucmVwbGFjZSgvXihbKy1dKT9cXC4vLFwiJDEwLlwiKS5yZXBsYWNlKC8oXFwuXFxkKz8pMCsoPz1lfCQpLyxcIiQxXCIpLnJlcGxhY2UoL1xcLig/PWV8JCkvLFwiXCIpfXZhciBIZT1TcDtmdW5jdGlvbiB2dShlLHQpe2xldHtub2RlOnJ9PWU7c3dpdGNoKHIudHlwZSl7Y2FzZVwiUmVnRXhwTGl0ZXJhbFwiOnJldHVybiB3dShyKTtjYXNlXCJCaWdJbnRMaXRlcmFsXCI6cmV0dXJuIE9yKHIuZXh0cmEucmF3KTtjYXNlXCJOdW1lcmljTGl0ZXJhbFwiOnJldHVybiBIZShyLmV4dHJhLnJhdyk7Y2FzZVwiU3RyaW5nTGl0ZXJhbFwiOnJldHVybiB4ZShUdChyLmV4dHJhLnJhdyx0KSk7Y2FzZVwiTnVsbExpdGVyYWxcIjpyZXR1cm5cIm51bGxcIjtjYXNlXCJCb29sZWFuTGl0ZXJhbFwiOnJldHVybiBTdHJpbmcoci52YWx1ZSk7Y2FzZVwiRGVjaW1hbExpdGVyYWxcIjpyZXR1cm4gSGUoci52YWx1ZSkrXCJtXCI7Y2FzZVwiRGlyZWN0aXZlTGl0ZXJhbFwiOnJldHVybiBPdShyLmV4dHJhLnJhdyx0KTtjYXNlXCJMaXRlcmFsXCI6e2lmKHIucmVnZXgpcmV0dXJuIHd1KHIucmVnZXgpO2lmKHIuYmlnaW50KXJldHVybiBPcihyLnJhdyk7aWYoci5kZWNpbWFsKXJldHVybiBIZShyLmRlY2ltYWwpK1wibVwiO2xldHt2YWx1ZTpufT1yO3JldHVybiB0eXBlb2Ygbj09XCJudW1iZXJcIj9IZShyLnJhdyk6dHlwZW9mIG49PVwic3RyaW5nXCI/QnAoZSk/T3Uoci5yYXcsdCk6eGUoVHQoci5yYXcsdCkpOlN0cmluZyhuKX19fWZ1bmN0aW9uIEJwKGUpe2lmKGUua2V5IT09XCJleHByZXNzaW9uXCIpcmV0dXJuO2xldHtwYXJlbnQ6dH09ZTtyZXR1cm4gdC50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJnQuZGlyZWN0aXZlfWZ1bmN0aW9uIE9yKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gd3Uoe3BhdHRlcm46ZSxmbGFnczp0fSl7cmV0dXJuIHQ9Wy4uLnRdLnNvcnQoKS5qb2luKFwiXCIpLGAvJHtlfS8ke3R9YH1mdW5jdGlvbiBPdShlLHQpe2xldCByPWUuc2xpY2UoMSwtMSk7aWYoci5pbmNsdWRlcygnXCInKXx8ci5pbmNsdWRlcyhcIidcIikpcmV0dXJuIGU7bGV0IG49dC5zaW5nbGVRdW90ZT9cIidcIjonXCInO3JldHVybiBuK3Irbn12YXIgdnI9aihbXCJMaXRlcmFsXCIsXCJCaWdJbnRMaXRlcmFsXCIsXCJCb29sZWFuTGl0ZXJhbFwiLFwiRGVjaW1hbExpdGVyYWxcIixcIkRpcmVjdGl2ZUxpdGVyYWxcIixcIk51bGxMaXRlcmFsXCIsXCJOdW1lcmljTGl0ZXJhbFwiLFwiUmVnRXhwTGl0ZXJhbFwiLFwiU3RyaW5nTGl0ZXJhbFwiXSk7ZnVuY3Rpb24gZnQoZSx0LHIsbixzLHUpe2xldCBpPWJwKGUsdCxyLG4sdSksYT11P3IodSx7YXNzaWdubWVudExheW91dDppfSk6XCJcIjtzd2l0Y2goaSl7Y2FzZVwiYnJlYWstYWZ0ZXItb3BlcmF0b3JcIjpyZXR1cm4geShbeShuKSxzLHkoRShbQSxhXSkpXSk7Y2FzZVwibmV2ZXItYnJlYWstYWZ0ZXItb3BlcmF0b3JcIjpyZXR1cm4geShbeShuKSxzLFwiIFwiLGFdKTtjYXNlXCJmbHVpZFwiOntsZXQgbz1TeW1ib2woXCJhc3NpZ25tZW50XCIpO3JldHVybiB5KFt5KG4pLHMseShFKEEpLHtpZDpvfSksQWUsbXQoYSx7Z3JvdXBJZDpvfSldKX1jYXNlXCJicmVhay1saHNcIjpyZXR1cm4geShbbixzLFwiIFwiLHkoYSldKTtjYXNlXCJjaGFpblwiOnJldHVyblt5KG4pLHMsQSxhXTtjYXNlXCJjaGFpbi10YWlsXCI6cmV0dXJuW3kobikscyxFKFtBLGFdKV07Y2FzZVwiY2hhaW4tdGFpbC1hcnJvdy1jaGFpblwiOnJldHVyblt5KG4pLHMsYV07Y2FzZVwib25seS1sZWZ0XCI6cmV0dXJuIG59fWZ1bmN0aW9uIGp1KGUsdCxyKXtsZXR7bm9kZTpufT1lO3JldHVybiBmdChlLHQscixyKFwibGVmdFwiKSxbXCIgXCIsbi5vcGVyYXRvcl0sXCJyaWdodFwiKX1mdW5jdGlvbiBNdShlLHQscil7cmV0dXJuIGZ0KGUsdCxyLHIoXCJpZFwiKSxcIiA9XCIsXCJpbml0XCIpfWZ1bmN0aW9uIGJwKGUsdCxyLG4scyl7bGV0e25vZGU6dX09ZSxpPXVbc107aWYoIWkpcmV0dXJuXCJvbmx5LWxlZnRcIjtsZXQgYT0hX3IoaSk7aWYoZS5tYXRjaChfcixSdSxEPT4hYXx8RC50eXBlIT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJkQudHlwZSE9PVwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSlyZXR1cm4gYT9pLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCImJmkuYm9keS50eXBlPT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiP1wiY2hhaW4tdGFpbC1hcnJvdy1jaGFpblwiOlwiY2hhaW4tdGFpbFwiOlwiY2hhaW5cIjtpZighYSYmX3IoaS5yaWdodCl8fEllKHQub3JpZ2luYWxUZXh0LGkpKXJldHVyblwiYnJlYWstYWZ0ZXItb3BlcmF0b3JcIjtpZihpLnR5cGU9PT1cIkNhbGxFeHByZXNzaW9uXCImJmkuY2FsbGVlLm5hbWU9PT1cInJlcXVpcmVcInx8dC5wYXJzZXI9PT1cImpzb241XCJ8fHQucGFyc2VyPT09XCJqc29uXCIpcmV0dXJuXCJuZXZlci1icmVhay1hZnRlci1vcGVyYXRvclwiO2lmKGtwKHUpfHxJcCh1KXx8T3AodSl8fHJzKHUpJiZScyhuKSlyZXR1cm5cImJyZWFrLWxoc1wiO2xldCBtPU1wKHUsbix0KTtyZXR1cm4gZS5jYWxsKCgpPT5QcChlLHQscixtKSxzKT9cImJyZWFrLWFmdGVyLW9wZXJhdG9yXCI6bXx8aS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcInx8aS50eXBlPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cInx8aS50eXBlPT09XCJCb29sZWFuTGl0ZXJhbFwifHxoZShpKXx8aS50eXBlPT09XCJDbGFzc0V4cHJlc3Npb25cIj9cIm5ldmVyLWJyZWFrLWFmdGVyLW9wZXJhdG9yXCI6XCJmbHVpZFwifWZ1bmN0aW9uIFBwKGUsdCxyLG4pe2xldCBzPWUubm9kZTtpZihjZShzKSYmIU90KHMpKXJldHVybiEwO3N3aXRjaChzLnR5cGUpe2Nhc2VcIlN0cmluZ0xpdGVyYWxUeXBlQW5ub3RhdGlvblwiOmNhc2VcIlNlcXVlbmNlRXhwcmVzc2lvblwiOnJldHVybiEwO2Nhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOntsZXR7dGVzdDphfT1zO3JldHVybiBjZShhKSYmIU90KGEpfWNhc2VcIkNsYXNzRXhwcmVzc2lvblwiOnJldHVybiBiKHMuZGVjb3JhdG9ycyl9aWYobilyZXR1cm4hMTtsZXQgdT1zLGk9W107Zm9yKDs7KWlmKHUudHlwZT09PVwiVW5hcnlFeHByZXNzaW9uXCJ8fHUudHlwZT09PVwiQXdhaXRFeHByZXNzaW9uXCJ8fHUudHlwZT09PVwiWWllbGRFeHByZXNzaW9uXCImJnUuYXJndW1lbnQhPT1udWxsKXU9dS5hcmd1bWVudCxpLnB1c2goXCJhcmd1bWVudFwiKTtlbHNlIGlmKHUudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiKXU9dS5leHByZXNzaW9uLGkucHVzaChcImV4cHJlc3Npb25cIik7ZWxzZSBicmVhaztyZXR1cm4hIShRKHUpfHxlLmNhbGwoKCk9Pkp1KGUsdCxyKSwuLi5pKSl9ZnVuY3Rpb24ga3AoZSl7aWYoUnUoZSkpe2xldCB0PWUubGVmdHx8ZS5pZDtyZXR1cm4gdC50eXBlPT09XCJPYmplY3RQYXR0ZXJuXCImJnQucHJvcGVydGllcy5sZW5ndGg+MiYmdC5wcm9wZXJ0aWVzLnNvbWUocj0+e3ZhciBuO3JldHVybiBmZShyKSYmKCFyLnNob3J0aGFuZHx8KChuPXIudmFsdWUpPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJBc3NpZ25tZW50UGF0dGVyblwiKX0pfXJldHVybiExfWZ1bmN0aW9uIF9yKGUpe3JldHVybiBlLnR5cGU9PT1cIkFzc2lnbm1lbnRFeHByZXNzaW9uXCJ9ZnVuY3Rpb24gUnUoZSl7cmV0dXJuIF9yKGUpfHxlLnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRvclwifWZ1bmN0aW9uIElwKGUpe2xldCB0PXdwKGUpO2lmKGIodCkpe2xldCByPWUudHlwZT09PVwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiP1wiY29uc3RyYWludFwiOlwiYm91bmRcIjtpZih0Lmxlbmd0aD4xJiZ0LnNvbWUobj0+bltyXXx8bi5kZWZhdWx0KSlyZXR1cm4hMH1yZXR1cm4hMX12YXIgTHA9aihbXCJUU1R5cGVBbGlhc0RlY2xhcmF0aW9uXCIsXCJUeXBlQWxpYXNcIl0pO2Z1bmN0aW9uIHdwKGUpe3ZhciB0O2lmKExwKGUpKXJldHVybih0PWUudHlwZVBhcmFtZXRlcnMpPT1udWxsP3ZvaWQgMDp0LnBhcmFtc31mdW5jdGlvbiBPcChlKXtpZihlLnR5cGUhPT1cIlZhcmlhYmxlRGVjbGFyYXRvclwiKXJldHVybiExO2xldHt0eXBlQW5ub3RhdGlvbjp0fT1lLmlkO2lmKCF0fHwhdC50eXBlQW5ub3RhdGlvbilyZXR1cm4hMTtsZXQgcj1fdSh0LnR5cGVBbm5vdGF0aW9uKTtyZXR1cm4gYihyKSYmci5sZW5ndGg+MSYmci5zb21lKG49PmIoX3UobikpfHxuLnR5cGU9PT1cIlRTQ29uZGl0aW9uYWxUeXBlXCIpfWZ1bmN0aW9uIHJzKGUpe3ZhciB0O3JldHVybiBlLnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRvclwiJiYoKHQ9ZS5pbml0KT09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIn12YXIgdnA9aihbXCJUU1R5cGVSZWZlcmVuY2VcIixcIkdlbmVyaWNUeXBlQW5ub3RhdGlvblwiXSk7ZnVuY3Rpb24gX3UoZSl7dmFyIHQ7aWYodnAoZSkpcmV0dXJuKHQ9ZS50eXBlUGFyYW1ldGVycyk9PW51bGw/dm9pZCAwOnQucGFyYW1zfWZ1bmN0aW9uIEp1KGUsdCxyLG49ITEpe3ZhciBpO2xldHtub2RlOnN9PWUsdT0oKT0+SnUoZSx0LHIsITApO2lmKHMudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCJ8fHMudHlwZT09PVwiVFNOb25OdWxsRXhwcmVzc2lvblwiKXJldHVybiBlLmNhbGwodSxcImV4cHJlc3Npb25cIik7aWYoayhzKSl7aWYoKGk9d3IoZSx0LHIpLmxhYmVsKSE9bnVsbCYmaS5tZW1iZXJDaGFpbilyZXR1cm4hMTtsZXQgbz1DZShzKTtyZXR1cm4hKG8ubGVuZ3RoPT09MHx8by5sZW5ndGg9PT0xJiZqcChvWzBdLHQpKXx8UnAocyxyKT8hMTplLmNhbGwodSxcImNhbGxlZVwiKX1yZXR1cm4gSihzKT9lLmNhbGwodSxcIm9iamVjdFwiKTpuJiYocy50eXBlPT09XCJJZGVudGlmaWVyXCJ8fHMudHlwZT09PVwiVGhpc0V4cHJlc3Npb25cIil9dmFyIF9wPS4yNTtmdW5jdGlvbiBqcChlLHtwcmludFdpZHRoOnR9KXtpZihkKGUpKXJldHVybiExO2xldCByPXQqX3A7aWYoZS50eXBlPT09XCJUaGlzRXhwcmVzc2lvblwifHxlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmZS5uYW1lLmxlbmd0aDw9cnx8QXIoZSkmJiFkKGUuYXJndW1lbnQpKXJldHVybiEwO2xldCBuPWUudHlwZT09PVwiTGl0ZXJhbFwiJiZcInJlZ2V4XCJpbiBlJiZlLnJlZ2V4LnBhdHRlcm58fGUudHlwZT09PVwiUmVnRXhwTGl0ZXJhbFwiJiZlLnBhdHRlcm47cmV0dXJuIG4/bi5sZW5ndGg8PXI6UShlKT9vZShlKS5sZW5ndGg8PXI6ZS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIj9lLmV4cHJlc3Npb25zLmxlbmd0aD09PTAmJmUucXVhc2lzWzBdLnZhbHVlLnJhdy5sZW5ndGg8PXImJiFlLnF1YXNpc1swXS52YWx1ZS5yYXcuaW5jbHVkZXMoYFxuYCk6dnIoZSl9ZnVuY3Rpb24gTXAoZSx0LHIpe2lmKCFmZShlKSlyZXR1cm4hMTt0PUJ0KHQpO2xldCBuPTM7cmV0dXJuIHR5cGVvZiB0PT1cInN0cmluZ1wiJiZ0dCh0KTxyLnRhYldpZHRoK259ZnVuY3Rpb24gUnAoZSx0KXtsZXQgcj1KcChlKTtpZihiKHIpKXtpZihyLmxlbmd0aD4xKXJldHVybiEwO2lmKHIubGVuZ3RoPT09MSl7bGV0IHM9clswXTtpZihzLnR5cGU9PT1cIlRTVW5pb25UeXBlXCJ8fHMudHlwZT09PVwiVW5pb25UeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIlRTSW50ZXJzZWN0aW9uVHlwZVwifHxzLnR5cGU9PT1cIkludGVyc2VjdGlvblR5cGVBbm5vdGF0aW9uXCJ8fHMudHlwZT09PVwiVFNUeXBlTGl0ZXJhbFwifHxzLnR5cGU9PT1cIk9iamVjdFR5cGVBbm5vdGF0aW9uXCIpcmV0dXJuITB9bGV0IG49ZS50eXBlUGFyYW1ldGVycz9cInR5cGVQYXJhbWV0ZXJzXCI6XCJ0eXBlQXJndW1lbnRzXCI7aWYoSyh0KG4pKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBKcChlKXt2YXIgdDtyZXR1cm4odD1lLnR5cGVQYXJhbWV0ZXJzPz9lLnR5cGVBcmd1bWVudHMpPT1udWxsP3ZvaWQgMDp0LnBhcmFtc31mdW5jdGlvbiBvdChlLHQscixuLHMpe2xldCB1PWUubm9kZSxpPVgodSksYT1zP1ZlKGUscix0KTpcIlwiO2lmKGkubGVuZ3RoPT09MClyZXR1cm5bYSxcIihcIixNKGUscix7ZmlsdGVyOmw9PiRlKHIub3JpZ2luYWxUZXh0LE8obCkpPT09XCIpXCJ9KSxcIilcIl07bGV0e3BhcmVudDpvfT1lLHA9Q3QobyksbT1ucyh1KSxEPVtdO2lmKHV1KGUsKGwsaCk9PntsZXQgZz1oPT09aS5sZW5ndGgtMTtnJiZ1LnJlc3QmJkQucHVzaChcIi4uLlwiKSxELnB1c2godCgpKSwhZyYmKEQucHVzaChcIixcIikscHx8bT9ELnB1c2goXCIgXCIpOm1lKGlbaF0scik/RC5wdXNoKEMsQyk6RC5wdXNoKEEpKX0pLG4mJiFVcChlKSl7aWYoSyhhKXx8SyhEKSl0aHJvdyBuZXcgYXQ7cmV0dXJuIHkoW1V0KGEpLFwiKFwiLFV0KEQpLFwiKVwiXSl9bGV0IGM9aS5ldmVyeShsPT4hYihsLmRlY29yYXRvcnMpKTtyZXR1cm4gbSYmYz9bYSxcIihcIiwuLi5ELFwiKVwiXTpwP1thLFwiKFwiLC4uLkQsXCIpXCJdOihUcihvKXx8WnMobyl8fG8udHlwZT09PVwiVHlwZUFsaWFzXCJ8fG8udHlwZT09PVwiVW5pb25UeXBlQW5ub3RhdGlvblwifHxvLnR5cGU9PT1cIlRTVW5pb25UeXBlXCJ8fG8udHlwZT09PVwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cInx8by50eXBlPT09XCJGdW5jdGlvblR5cGVBbm5vdGF0aW9uXCImJm8ucmV0dXJuVHlwZT09PXUpJiZpLmxlbmd0aD09PTEmJmlbMF0ubmFtZT09PW51bGwmJnUudGhpcyE9PWlbMF0mJmlbMF0udHlwZUFubm90YXRpb24mJnUudHlwZVBhcmFtZXRlcnM9PT1udWxsJiZ3dChpWzBdLnR5cGVBbm5vdGF0aW9uKSYmIXUucmVzdD9yLmFycm93UGFyZW5zPT09XCJhbHdheXNcIj9bXCIoXCIsLi4uRCxcIilcIl06RDpbYSxcIihcIixFKFtGLC4uLkRdKSxQKCFzdSh1KSYmbGUocixcImFsbFwiKT9cIixcIjpcIlwiKSxGLFwiKVwiXX1mdW5jdGlvbiBucyhlKXtpZighZSlyZXR1cm4hMTtsZXQgdD1YKGUpO2lmKHQubGVuZ3RoIT09MSlyZXR1cm4hMTtsZXRbcl09dDtyZXR1cm4hZChyKSYmKHIudHlwZT09PVwiT2JqZWN0UGF0dGVyblwifHxyLnR5cGU9PT1cIkFycmF5UGF0dGVyblwifHxyLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmci50eXBlQW5ub3RhdGlvbiYmKHIudHlwZUFubm90YXRpb24udHlwZT09PVwiVHlwZUFubm90YXRpb25cInx8ci50eXBlQW5ub3RhdGlvbi50eXBlPT09XCJUU1R5cGVBbm5vdGF0aW9uXCIpJiZrZShyLnR5cGVBbm5vdGF0aW9uLnR5cGVBbm5vdGF0aW9uKXx8ci50eXBlPT09XCJGdW5jdGlvblR5cGVQYXJhbVwiJiZrZShyLnR5cGVBbm5vdGF0aW9uKSYmciE9PWUucmVzdHx8ci50eXBlPT09XCJBc3NpZ25tZW50UGF0dGVyblwiJiYoci5sZWZ0LnR5cGU9PT1cIk9iamVjdFBhdHRlcm5cInx8ci5sZWZ0LnR5cGU9PT1cIkFycmF5UGF0dGVyblwiKSYmKHIucmlnaHQudHlwZT09PVwiSWRlbnRpZmllclwifHxlZShyLnJpZ2h0KSYmci5yaWdodC5wcm9wZXJ0aWVzLmxlbmd0aD09PTB8fEcoci5yaWdodCkmJnIucmlnaHQuZWxlbWVudHMubGVuZ3RoPT09MCkpfWZ1bmN0aW9uIE5wKGUpe2xldCB0O3JldHVybiBlLnJldHVyblR5cGU/KHQ9ZS5yZXR1cm5UeXBlLHQudHlwZUFubm90YXRpb24mJih0PXQudHlwZUFubm90YXRpb24pKTplLnR5cGVBbm5vdGF0aW9uJiYodD1lLnR5cGVBbm5vdGF0aW9uKSx0fWZ1bmN0aW9uIHh0KGUsdCl7dmFyIHM7bGV0IHI9TnAoZSk7aWYoIXIpcmV0dXJuITE7bGV0IG49KHM9ZS50eXBlUGFyYW1ldGVycyk9PW51bGw/dm9pZCAwOnMucGFyYW1zO2lmKG4pe2lmKG4ubGVuZ3RoPjEpcmV0dXJuITE7aWYobi5sZW5ndGg9PT0xKXtsZXQgdT1uWzBdO2lmKHUuY29uc3RyYWludHx8dS5kZWZhdWx0KXJldHVybiExfX1yZXR1cm4gWChlKS5sZW5ndGg9PT0xJiYoa2Uocil8fEsodCkpfWZ1bmN0aW9uIFVwKGUpe3JldHVybiBlLm1hdGNoKHQ9PnQudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmdC5ib2R5LnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCIsKHQscik9PntpZih0LnR5cGU9PT1cIkNhbGxFeHByZXNzaW9uXCImJnI9PT1cImFyZ3VtZW50c1wiJiZ0LmFyZ3VtZW50cy5sZW5ndGg9PT0xJiZ0LmNhbGxlZS50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwiKXtsZXQgbj10LmNhbGxlZS5jYWxsZWU7cmV0dXJuIG4udHlwZT09PVwiSWRlbnRpZmllclwifHxuLnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIiYmIW4uY29tcHV0ZWQmJm4ub2JqZWN0LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmbi5wcm9wZXJ0eS50eXBlPT09XCJJZGVudGlmaWVyXCJ9cmV0dXJuITF9LCh0LHIpPT50LnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRvclwiJiZyPT09XCJpbml0XCJ8fHQudHlwZT09PVwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCImJnI9PT1cImRlY2xhcmF0aW9uXCJ8fHQudHlwZT09PVwiVFNFeHBvcnRBc3NpZ25tZW50XCImJnI9PT1cImV4cHJlc3Npb25cInx8dC50eXBlPT09XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiJiZyPT09XCJyaWdodFwiJiZ0LmxlZnQudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiZ0LmxlZnQub2JqZWN0LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmdC5sZWZ0Lm9iamVjdC5uYW1lPT09XCJtb2R1bGVcIiYmdC5sZWZ0LnByb3BlcnR5LnR5cGU9PT1cIklkZW50aWZpZXJcIiYmdC5sZWZ0LnByb3BlcnR5Lm5hbWU9PT1cImV4cG9ydHNcIix0PT50LnR5cGUhPT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cInx8dC5raW5kPT09XCJjb25zdFwiJiZ0LmRlY2xhcmF0aW9ucy5sZW5ndGg9PT0xKX1mdW5jdGlvbiBOdShlKXtsZXQgdD1YKGUpO3JldHVybiB0Lmxlbmd0aD4xJiZ0LnNvbWUocj0+ci50eXBlPT09XCJUU1BhcmFtZXRlclByb3BlcnR5XCIpfWZ1bmN0aW9uIHNzKGUpe2lmKHd0KGUpfHxrZShlKSlyZXR1cm4hMDtpZihlLnR5cGU9PT1cIlVuaW9uVHlwZUFubm90YXRpb25cInx8ZS50eXBlPT09XCJUU1VuaW9uVHlwZVwiKXtsZXQgdD1lLnR5cGVzLmZpbHRlcihzPT5zLnR5cGU9PT1cIlZvaWRUeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIlRTVm9pZEtleXdvcmRcInx8cy50eXBlPT09XCJOdWxsTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCJ8fHMudHlwZT09PVwiVFNOdWxsS2V5d29yZFwiKS5sZW5ndGgscj1lLnR5cGVzLnNvbWUocz0+cy50eXBlPT09XCJPYmplY3RUeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIlRTVHlwZUxpdGVyYWxcInx8cy50eXBlPT09XCJHZW5lcmljVHlwZUFubm90YXRpb25cInx8cy50eXBlPT09XCJUU1R5cGVSZWZlcmVuY2VcIiksbj1lLnR5cGVzLnNvbWUocz0+ZChzKSk7aWYoZS50eXBlcy5sZW5ndGgtMT09PXQmJnImJiFuKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFV1KGUsdCxyKXtsZXQgbj10LnNlbWk/XCI7XCI6XCJcIix7bm9kZTpzfT1lLHU9W1ooZSksXCJvcGFxdWUgdHlwZSBcIixyKFwiaWRcIikscihcInR5cGVQYXJhbWV0ZXJzXCIpXTtyZXR1cm4gcy5zdXBlcnR5cGUmJnUucHVzaChcIjogXCIscihcInN1cGVydHlwZVwiKSkscy5pbXBsdHlwZSYmdS5wdXNoKFwiID0gXCIscihcImltcGx0eXBlXCIpKSx1LnB1c2gobiksdX1mdW5jdGlvbiBqcihlLHQscil7bGV0IG49dC5zZW1pP1wiO1wiOlwiXCIse25vZGU6c309ZSx1PVtaKGUpXTt1LnB1c2goXCJ0eXBlIFwiLHIoXCJpZFwiKSxyKFwidHlwZVBhcmFtZXRlcnNcIikpO2xldCBpPXMudHlwZT09PVwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiP1widHlwZUFubm90YXRpb25cIjpcInJpZ2h0XCI7cmV0dXJuW2Z0KGUsdCxyLHUsXCIgPVwiLGkpLG5dfWZ1bmN0aW9uIE1yKGUsdCxyKXtsZXQgbj0hMTtyZXR1cm4geShlLm1hcCgoe2lzRmlyc3Q6cyxwcmV2aW91czp1LG5vZGU6aSxpbmRleDphfSk9PntsZXQgbz1yKCk7aWYocylyZXR1cm4gbztsZXQgcD1rZShpKSxtPWtlKHUpO3JldHVybiBtJiZwP1tcIiAmIFwiLG4/RShvKTpvXTohbSYmIXA/RShbXCIgJlwiLEEsb10pOihhPjEmJihuPSEwKSxbXCIgJiBcIixhPjE/RShvKTpvXSl9LFwidHlwZXNcIikpfWZ1bmN0aW9uIFJyKGUsdCxyKXtsZXR7bm9kZTpufT1lLHtwYXJlbnQ6c309ZSx1PXMudHlwZSE9PVwiVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25cIiYmcy50eXBlIT09XCJUU1R5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uXCImJnMudHlwZSE9PVwiR2VuZXJpY1R5cGVBbm5vdGF0aW9uXCImJnMudHlwZSE9PVwiVFNUeXBlUmVmZXJlbmNlXCImJnMudHlwZSE9PVwiVFNUeXBlQXNzZXJ0aW9uXCImJnMudHlwZSE9PVwiVHVwbGVUeXBlQW5ub3RhdGlvblwiJiZzLnR5cGUhPT1cIlRTVHVwbGVUeXBlXCImJiEocy50eXBlPT09XCJGdW5jdGlvblR5cGVQYXJhbVwiJiYhcy5uYW1lJiZlLmdyYW5kcGFyZW50LnRoaXMhPT1zKSYmISgocy50eXBlPT09XCJUeXBlQWxpYXNcInx8cy50eXBlPT09XCJWYXJpYWJsZURlY2xhcmF0b3JcInx8cy50eXBlPT09XCJUU1R5cGVBbGlhc0RlY2xhcmF0aW9uXCIpJiZJZSh0Lm9yaWdpbmFsVGV4dCxuKSksaT1zcyhuKSxhPWUubWFwKG09PntsZXQgRD1yKCk7cmV0dXJuIGl8fChEPURlKDIsRCkpLHBlKG0sRCx0KX0sXCJ0eXBlc1wiKTtpZihpKXJldHVybiBCKFwiIHwgXCIsYSk7bGV0IG89dSYmIUllKHQub3JpZ2luYWxUZXh0LG4pLHA9W1AoW28/QTpcIlwiLFwifCBcIl0pLEIoW0EsXCJ8IFwiXSxhKV07cmV0dXJuIHdlKGUsdCk/eShbRShwKSxGXSk6KHMudHlwZT09PVwiVHVwbGVUeXBlQW5ub3RhdGlvblwifHxzLnR5cGU9PT1cIlRTVHVwbGVUeXBlXCIpJiZzW3MudHlwZT09PVwiVHVwbGVUeXBlQW5ub3RhdGlvblwiJiZzLnR5cGVzP1widHlwZXNcIjpcImVsZW1lbnRUeXBlc1wiXS5sZW5ndGg+MT95KFtFKFtQKFtcIihcIixGXSkscF0pLEYsUChcIilcIildKTp5KHU/RShwKTpwKX1mdW5jdGlvbiBHcChlKXt2YXIgbjtsZXR7bm9kZTp0LHBhcmVudDpyfT1lO3JldHVybiB0LnR5cGU9PT1cIkZ1bmN0aW9uVHlwZUFubm90YXRpb25cIiYmKFRyKHIpfHwhKChyLnR5cGU9PT1cIk9iamVjdFR5cGVQcm9wZXJ0eVwifHxyLnR5cGU9PT1cIk9iamVjdFR5cGVJbnRlcm5hbFNsb3RcIikmJiFyLnZhcmlhbmNlJiYhci5vcHRpb25hbCYmeXQocix0KXx8ci50eXBlPT09XCJPYmplY3RUeXBlQ2FsbFByb3BlcnR5XCJ8fCgobj1lLmdldFBhcmVudE5vZGUoMikpPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJEZWNsYXJlRnVuY3Rpb25cIikpfWZ1bmN0aW9uIEpyKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9W190KGUpXTsobi50eXBlPT09XCJUU0NvbnN0cnVjdG9yVHlwZVwifHxuLnR5cGU9PT1cIlRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb25cIikmJnMucHVzaChcIm5ldyBcIik7bGV0IHU9b3QoZSxyLHQsITEsITApLGk9W107cmV0dXJuIG4udHlwZT09PVwiRnVuY3Rpb25UeXBlQW5ub3RhdGlvblwiP2kucHVzaChHcChlKT9cIiA9PiBcIjpcIjogXCIscihcInJldHVyblR5cGVcIikpOmkucHVzaChxKGUscixuLnJldHVyblR5cGU/XCJyZXR1cm5UeXBlXCI6XCJ0eXBlQW5ub3RhdGlvblwiKSkseHQobixpKSYmKHU9eSh1KSkscy5wdXNoKHUsaSkseShzKX1mdW5jdGlvbiBOcihlLHQscil7cmV0dXJuW3IoXCJvYmplY3RUeXBlXCIpLCQoZSksXCJbXCIscihcImluZGV4VHlwZVwiKSxcIl1cIl19ZnVuY3Rpb24gVXIoZSx0LHIpe3JldHVybltcImluZmVyIFwiLHIoXCJ0eXBlUGFyYW1ldGVyXCIpXX1mdW5jdGlvbiB1cyhlLHQscil7bGV0e25vZGU6bn09ZTtyZXR1cm5bbi5wb3N0Zml4P1wiXCI6cixxKGUsdCksbi5wb3N0Zml4P3I6XCJcIl19ZnVuY3Rpb24gR3IoZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuW1wiLi4uXCIsLi4ubi50eXBlPT09XCJUdXBsZVR5cGVTcHJlYWRFbGVtZW50XCImJm4ubGFiZWw/W3IoXCJsYWJlbFwiKSxcIjogXCJdOltdLHIoXCJ0eXBlQW5ub3RhdGlvblwiKV19ZnVuY3Rpb24gcXIoZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuW24udmFyaWFuY2U/cihcInZhcmlhbmNlXCIpOlwiXCIscihcImxhYmVsXCIpLG4ub3B0aW9uYWw/XCI/XCI6XCJcIixcIjogXCIscihcImVsZW1lbnRUeXBlXCIpXX12YXIgcXA9bmV3IFdlYWtTZXQ7ZnVuY3Rpb24gcShlLHQscj1cInR5cGVBbm5vdGF0aW9uXCIpe2xldHtub2RlOntbcl06bn19PWU7aWYoIW4pcmV0dXJuXCJcIjtsZXQgcz0hMTtpZihuLnR5cGU9PT1cIlRTVHlwZUFubm90YXRpb25cInx8bi50eXBlPT09XCJUeXBlQW5ub3RhdGlvblwiKXtsZXQgdT1lLmNhbGwoR3Uscik7KHU9PT1cIj0+XCJ8fHU9PT1cIjpcIiYmZChuLHguTGVhZGluZykpJiYocz0hMCkscXAuYWRkKG4pfXJldHVybiBzP1tcIiBcIix0KHIpXTp0KHIpfXZhciBHdT1lPT5lLm1hdGNoKHQ9PnQudHlwZT09PVwiVFNUeXBlQW5ub3RhdGlvblwiLCh0LHIpPT4ocj09PVwicmV0dXJuVHlwZVwifHxyPT09XCJ0eXBlQW5ub3RhdGlvblwiKSYmKHQudHlwZT09PVwiVFNGdW5jdGlvblR5cGVcInx8dC50eXBlPT09XCJUU0NvbnN0cnVjdG9yVHlwZVwiKSk/XCI9PlwiOmUubWF0Y2godD0+dC50eXBlPT09XCJUU1R5cGVBbm5vdGF0aW9uXCIsKHQscik9PnI9PT1cInR5cGVBbm5vdGF0aW9uXCImJih0LnR5cGU9PT1cIlRTSlNEb2NOdWxsYWJsZVR5cGVcInx8dC50eXBlPT09XCJUU0pTRG9jTm9uTnVsbGFibGVUeXBlXCJ8fHQudHlwZT09PVwiVFNUeXBlUHJlZGljYXRlXCIpKXx8ZS5tYXRjaCh0PT50LnR5cGU9PT1cIlR5cGVBbm5vdGF0aW9uXCIsKHQscik9PnI9PT1cInR5cGVBbm5vdGF0aW9uXCImJnQudHlwZT09PVwiSWRlbnRpZmllclwiLCh0LHIpPT5yPT09XCJpZFwiJiZ0LnR5cGU9PT1cIkRlY2xhcmVGdW5jdGlvblwiKXx8ZS5tYXRjaCh0PT50LnR5cGU9PT1cIlR5cGVBbm5vdGF0aW9uXCIsKHQscik9PnI9PT1cImJvdW5kXCImJnQudHlwZT09PVwiVHlwZVBhcmFtZXRlclwiJiZ0LnVzZXNFeHRlbmRzQm91bmQpP1wiXCI6XCI6XCI7ZnVuY3Rpb24gV3IoZSx0LHIpe2xldCBuPUd1KGUpO3JldHVybiBuP1tuLFwiIFwiLHIoXCJ0eXBlQW5ub3RhdGlvblwiKV06cihcInR5cGVBbm5vdGF0aW9uXCIpfWZ1bmN0aW9uIFlyKGUpe3JldHVybltlKFwiZWxlbWVudFR5cGVcIiksXCJbXVwiXX1mdW5jdGlvbiBYcih7bm9kZTplfSx0KXtyZXR1cm5bXCJ0eXBlb2YgXCIsLi4uZS50eXBlPT09XCJUU1R5cGVRdWVyeVwiP1t0KFwiZXhwck5hbWVcIiksdChcInR5cGVQYXJhbWV0ZXJzXCIpXTpbdChcImFyZ3VtZW50XCIpXV19ZnVuY3Rpb24gJHIoZSx0KXtsZXR7bm9kZTpyfT1lO3JldHVybltyLmFzc2VydHM/XCJhc3NlcnRzIFwiOlwiXCIsdChcInBhcmFtZXRlck5hbWVcIiksci50eXBlQW5ub3RhdGlvbj9bXCIgaXMgXCIscShlLHQpXTpcIlwiXX1mdW5jdGlvbiAkKGUpe2xldHtub2RlOnR9PWU7cmV0dXJuIXQub3B0aW9uYWx8fHQudHlwZT09PVwiSWRlbnRpZmllclwiJiZ0PT09ZS5wYXJlbnQua2V5P1wiXCI6ayh0KXx8Sih0KSYmdC5jb21wdXRlZHx8dC50eXBlPT09XCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCI/XCI/LlwiOlwiP1wifWZ1bmN0aW9uIFZyKGUpe3JldHVybiBlLm5vZGUuZGVmaW5pdGV8fGUubWF0Y2godm9pZCAwLCh0LHIpPT5yPT09XCJpZFwiJiZ0LnR5cGU9PT1cIlZhcmlhYmxlRGVjbGFyYXRvclwiJiZ0LmRlZmluaXRlKT9cIiFcIjpcIlwifXZhciBXcD1uZXcgU2V0KFtcIkRlY2xhcmVDbGFzc1wiLFwiRGVjbGFyZUZ1bmN0aW9uXCIsXCJEZWNsYXJlVmFyaWFibGVcIixcIkRlY2xhcmVFeHBvcnREZWNsYXJhdGlvblwiLFwiRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uXCIsXCJEZWNsYXJlT3BhcXVlVHlwZVwiLFwiRGVjbGFyZVR5cGVBbGlhc1wiLFwiRGVjbGFyZUVudW1cIixcIkRlY2xhcmVJbnRlcmZhY2VcIl0pO2Z1bmN0aW9uIFooZSl7bGV0e25vZGU6dH09ZTtyZXR1cm4gdC5kZWNsYXJlfHxXcC5oYXModC50eXBlKSYmZS5wYXJlbnQudHlwZSE9PVwiRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uXCI/XCJkZWNsYXJlIFwiOlwiXCJ9dmFyIFlwPW5ldyBTZXQoW1wiVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb25cIixcIlRTQWJzdHJhY3RQcm9wZXJ0eURlZmluaXRpb25cIixcIlRTQWJzdHJhY3RBY2Nlc3NvclByb3BlcnR5XCJdKTtmdW5jdGlvbiBfdCh7bm9kZTplfSl7cmV0dXJuIGUuYWJzdHJhY3R8fFlwLmhhcyhlLnR5cGUpP1wiYWJzdHJhY3QgXCI6XCJcIn1mdW5jdGlvbiBWZShlLHQscil7bGV0IG49ZS5ub2RlO3JldHVybiBuLnR5cGVBcmd1bWVudHM/cihcInR5cGVBcmd1bWVudHNcIik6bi50eXBlUGFyYW1ldGVycz9yKFwidHlwZVBhcmFtZXRlcnNcIik6XCJcIn1mdW5jdGlvbiBMcihlLHQscil7cmV0dXJuW1wiOjpcIixyKFwiY2FsbGVlXCIpXX1mdW5jdGlvbiBwdChlLHQscil7cmV0dXJuIGUudHlwZT09PVwiRW1wdHlTdGF0ZW1lbnRcIj9cIjtcIjplLnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCJ8fHI/W1wiIFwiLHRdOkUoW0EsdF0pfWZ1bmN0aW9uIEhyKGUsdCl7cmV0dXJuW1wiLi4uXCIsdChcImFyZ3VtZW50XCIpLHEoZSx0KV19ZnVuY3Rpb24ganQoZSl7cmV0dXJuIGUuYWNjZXNzaWJpbGl0eT9lLmFjY2Vzc2liaWxpdHkrXCIgXCI6XCJcIn1mdW5jdGlvbiBpcyhlLHQscil7bGV0e25vZGU6bn09ZTtyZXR1cm4geShbQihBLGUubWFwKHIsXCJkZWNvcmF0b3JzXCIpKSxZdShuLHQpP0M6QV0pfWZ1bmN0aW9uIHF1KGUsdCxyKXtyZXR1cm4gWHUoZS5ub2RlKT9bQihDLGUubWFwKHIsXCJkZWNsYXJhdGlvblwiLFwiZGVjb3JhdG9yc1wiKSksQ106XCJcIn1mdW5jdGlvbiBXdShlLHQscil7bGV0e25vZGU6bixwYXJlbnQ6c309ZSx7ZGVjb3JhdG9yczp1fT1uO2lmKCFiKHUpfHxYdShzKXx8a3IoZSkpcmV0dXJuXCJcIjtsZXQgaT1uLnR5cGU9PT1cIkNsYXNzRXhwcmVzc2lvblwifHxuLnR5cGU9PT1cIkNsYXNzRGVjbGFyYXRpb25cInx8WXUobix0KTtyZXR1cm5bZS5rZXk9PT1cImRlY2xhcmF0aW9uXCImJlFzKHMpP0M6aT9UZTpcIlwiLEIoQSxlLm1hcChyLFwiZGVjb3JhdG9yc1wiKSksQV19ZnVuY3Rpb24gWXUoZSx0KXtyZXR1cm4gZS5kZWNvcmF0b3JzLnNvbWUocj0+eih0Lm9yaWdpbmFsVGV4dCxPKHIpKSl9ZnVuY3Rpb24gWHUoZSl7dmFyIHI7aWYoZS50eXBlIT09XCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIiYmZS50eXBlIT09XCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCImJmUudHlwZSE9PVwiRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uXCIpcmV0dXJuITE7bGV0IHQ9KHI9ZS5kZWNsYXJhdGlvbik9PW51bGw/dm9pZCAwOnIuZGVjb3JhdG9ycztyZXR1cm4gYih0KSYmeXQoZSx0WzBdKX1mdW5jdGlvbiAkdShlLHQscil7bGV0e25vZGU6bn09ZTtyZXR1cm5bXCJpbXBvcnRcIixuLm1vZHVsZT9cIiBtb2R1bGVcIjpcIlwiLG9zKG4pLEt1KGUsdCxyKSxIdShlLHQsciksUXUoZSx0LHIpLHQuc2VtaT9cIjtcIjpcIlwiXX12YXIgVnU9ZT0+ZS50eXBlPT09XCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cInx8ZS50eXBlPT09XCJEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb25cIiYmZS5kZWZhdWx0O2Z1bmN0aW9uIEtyKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9W3F1KGUsdCxyKSxaKGUpLFwiZXhwb3J0XCIsVnUobik/XCIgZGVmYXVsdFwiOlwiXCJdLHtkZWNsYXJhdGlvbjp1LGV4cG9ydGVkOml9PW47cmV0dXJuIGQobix4LkRhbmdsaW5nKSYmKHMucHVzaChcIiBcIixNKGUsdCkpLGdyKG4pJiZzLnB1c2goQykpLHU/cy5wdXNoKFwiIFwiLHIoXCJkZWNsYXJhdGlvblwiKSk6KHMucHVzaChWcChuKSksbi50eXBlPT09XCJFeHBvcnRBbGxEZWNsYXJhdGlvblwifHxuLnR5cGU9PT1cIkRlY2xhcmVFeHBvcnRBbGxEZWNsYXJhdGlvblwiPyhzLnB1c2goXCIgKlwiKSxpJiZzLnB1c2goXCIgYXMgXCIscihcImV4cG9ydGVkXCIpKSk6cy5wdXNoKEt1KGUsdCxyKSkscy5wdXNoKEh1KGUsdCxyKSxRdShlLHQscikpKSxzLnB1c2goJHAobix0KSksc312YXIgWHA9aihbXCJDbGFzc0RlY2xhcmF0aW9uXCIsXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIsXCJUU0ludGVyZmFjZURlY2xhcmF0aW9uXCIsXCJEZWNsYXJlQ2xhc3NcIixcIkRlY2xhcmVGdW5jdGlvblwiLFwiVFNEZWNsYXJlRnVuY3Rpb25cIixcIkVudW1EZWNsYXJhdGlvblwiXSk7ZnVuY3Rpb24gJHAoZSx0KXtyZXR1cm4gdC5zZW1pJiYoIWUuZGVjbGFyYXRpb258fFZ1KGUpJiYhWHAoZS5kZWNsYXJhdGlvbikpP1wiO1wiOlwiXCJ9ZnVuY3Rpb24gYXMoZSx0PSEwKXtyZXR1cm4gZSYmZSE9PVwidmFsdWVcIj9gJHt0P1wiIFwiOlwiXCJ9JHtlfSR7dD9cIlwiOlwiIFwifWA6XCJcIn1mdW5jdGlvbiBvcyhlLHQpe3JldHVybiBhcyhlLmltcG9ydEtpbmQsdCl9ZnVuY3Rpb24gVnAoZSl7cmV0dXJuIGFzKGUuZXhwb3J0S2luZCl9ZnVuY3Rpb24gSHUoZSx0LHIpe2xldHtub2RlOm59PWU7aWYoIW4uc291cmNlKXJldHVyblwiXCI7bGV0IHM9W107cmV0dXJuIHp1KG4sdCl8fHMucHVzaChcIiBmcm9tXCIpLHMucHVzaChcIiBcIixyKFwic291cmNlXCIpKSxzfWZ1bmN0aW9uIEt1KGUsdCxyKXtsZXR7bm9kZTpufT1lO2lmKHp1KG4sdCkpcmV0dXJuXCJcIjtsZXQgcz1bXCIgXCJdO2lmKGIobi5zcGVjaWZpZXJzKSl7bGV0IHU9W10saT1bXTtlLmVhY2goKCk9PntsZXQgYT1lLm5vZGUudHlwZTtpZihhPT09XCJFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXJcInx8YT09PVwiRXhwb3J0RGVmYXVsdFNwZWNpZmllclwifHxhPT09XCJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXJcInx8YT09PVwiSW1wb3J0RGVmYXVsdFNwZWNpZmllclwiKXUucHVzaChyKCkpO2Vsc2UgaWYoYT09PVwiRXhwb3J0U3BlY2lmaWVyXCJ8fGE9PT1cIkltcG9ydFNwZWNpZmllclwiKWkucHVzaChyKCkpO2Vsc2UgdGhyb3cgbmV3IE9lKG4sXCJzcGVjaWZpZXJcIil9LFwic3BlY2lmaWVyc1wiKSxzLnB1c2goQihcIiwgXCIsdSkpLGkubGVuZ3RoPjAmJih1Lmxlbmd0aD4wJiZzLnB1c2goXCIsIFwiKSxpLmxlbmd0aD4xfHx1Lmxlbmd0aD4wfHxuLnNwZWNpZmllcnMuc29tZShvPT5kKG8pKT9zLnB1c2goeShbXCJ7XCIsRShbdC5icmFja2V0U3BhY2luZz9BOkYsQihbXCIsXCIsQV0saSldKSxQKGxlKHQpP1wiLFwiOlwiXCIpLHQuYnJhY2tldFNwYWNpbmc/QTpGLFwifVwiXSkpOnMucHVzaChbXCJ7XCIsdC5icmFja2V0U3BhY2luZz9cIiBcIjpcIlwiLC4uLmksdC5icmFja2V0U3BhY2luZz9cIiBcIjpcIlwiLFwifVwiXSkpfWVsc2Ugcy5wdXNoKFwie31cIik7cmV0dXJuIHN9ZnVuY3Rpb24genUoZSx0KXtsZXR7dHlwZTpyLGltcG9ydEtpbmQ6bixzb3VyY2U6cyxzcGVjaWZpZXJzOnV9PWU7cmV0dXJuIHIhPT1cIkltcG9ydERlY2xhcmF0aW9uXCJ8fGIodSl8fG49PT1cInR5cGVcIj8hMTohL3tcXHMqfS8udGVzdCh0Lm9yaWdpbmFsVGV4dC5zbGljZShVKGUpLFUocykpKX1mdW5jdGlvbiBRdShlLHQscil7dmFyIGk7bGV0e25vZGU6bn09ZSxzPWIobi5hdHRyaWJ1dGVzKT9cImF0dHJpYnV0ZXNcIjpiKG4uYXNzZXJ0aW9ucyk/XCJhc3NlcnRpb25zXCI6dm9pZCAwO3JldHVybiBzP1tgICR7cz09PVwiYXNzZXJ0aW9uc1wifHwoaT1uLmV4dHJhKSE9bnVsbCYmaS5kZXByZWNhdGVkQXNzZXJ0U3ludGF4P1wiYXNzZXJ0XCI6XCJ3aXRoXCJ9IHtgLHQuYnJhY2tldFNwYWNpbmc/XCIgXCI6XCJcIixCKFwiLCBcIixlLm1hcChyLHMpKSx0LmJyYWNrZXRTcGFjaW5nP1wiIFwiOlwiXCIsXCJ9XCJdOlwiXCJ9ZnVuY3Rpb24gWnUoZSx0LHIpe2xldHtub2RlOm59PWUse3R5cGU6c309bix1PXMuc3RhcnRzV2l0aChcIkltcG9ydFwiKSxpPXU/XCJpbXBvcnRlZFwiOlwibG9jYWxcIixhPXU/XCJsb2NhbFwiOlwiZXhwb3J0ZWRcIixvPW5baV0scD1uW2FdLG09XCJcIixEPVwiXCI7cmV0dXJuIHM9PT1cIkV4cG9ydE5hbWVzcGFjZVNwZWNpZmllclwifHxzPT09XCJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXJcIj9tPVwiKlwiOm8mJihtPXIoaSkpLHAmJiFIcChuKSYmKEQ9cihhKSksW2FzKHM9PT1cIkltcG9ydFNwZWNpZmllclwiP24uaW1wb3J0S2luZDpuLmV4cG9ydEtpbmQsITEpLG0sbSYmRD9cIiBhcyBcIjpcIlwiLERdfWZ1bmN0aW9uIEhwKGUpe2lmKGUudHlwZSE9PVwiSW1wb3J0U3BlY2lmaWVyXCImJmUudHlwZSE9PVwiRXhwb3J0U3BlY2lmaWVyXCIpcmV0dXJuITE7bGV0e2xvY2FsOnQsW2UudHlwZT09PVwiSW1wb3J0U3BlY2lmaWVyXCI/XCJpbXBvcnRlZFwiOlwiZXhwb3J0ZWRcIl06cn09ZTtpZih0LnR5cGUhPT1yLnR5cGV8fCFYcyh0LHIpKXJldHVybiExO2lmKFEodCkpcmV0dXJuIHQudmFsdWU9PT1yLnZhbHVlJiZvZSh0KT09PW9lKHIpO3N3aXRjaCh0LnR5cGUpe2Nhc2VcIklkZW50aWZpZXJcIjpyZXR1cm4gdC5uYW1lPT09ci5uYW1lO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEtwKGUpe2xldCB0PVtlXTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7bGV0IG49dFtyXTtmb3IobGV0IHMgb2ZbXCJ0ZXN0XCIsXCJjb25zZXF1ZW50XCIsXCJhbHRlcm5hdGVcIl0pe2xldCB1PW5bc107aWYoWSh1KSlyZXR1cm4hMDt1LnR5cGU9PT1cIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiJiZ0LnB1c2godSl9fXJldHVybiExfWZ1bmN0aW9uIHpwKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9bi50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIix1PXM/XCJhbHRlcm5hdGVcIjpcImZhbHNlVHlwZVwiLHtwYXJlbnQ6aX09ZSxhPXM/cihcInRlc3RcIik6W3IoXCJjaGVja1R5cGVcIiksXCIgXCIsXCJleHRlbmRzXCIsXCIgXCIscihcImV4dGVuZHNUeXBlXCIpXTtyZXR1cm4gaS50eXBlPT09bi50eXBlJiZpW3VdPT09bj9EZSgyLGEpOmF9dmFyIFFwPW5ldyBNYXAoW1tcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsXCJyaWdodFwiXSxbXCJWYXJpYWJsZURlY2xhcmF0b3JcIixcImluaXRcIl0sW1wiUmV0dXJuU3RhdGVtZW50XCIsXCJhcmd1bWVudFwiXSxbXCJUaHJvd1N0YXRlbWVudFwiLFwiYXJndW1lbnRcIl0sW1wiVW5hcnlFeHByZXNzaW9uXCIsXCJhcmd1bWVudFwiXSxbXCJZaWVsZEV4cHJlc3Npb25cIixcImFyZ3VtZW50XCJdXSk7ZnVuY3Rpb24gWnAoZSl7bGV0e25vZGU6dH09ZTtpZih0LnR5cGUhPT1cIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiKXJldHVybiExO2xldCByLG49dDtmb3IobGV0IHM9MDshcjtzKyspe2xldCB1PWUuZ2V0UGFyZW50Tm9kZShzKTtpZih1LnR5cGU9PT1cIkNoYWluRXhwcmVzc2lvblwiJiZ1LmV4cHJlc3Npb249PT1ufHxrKHUpJiZ1LmNhbGxlZT09PW58fEoodSkmJnUub2JqZWN0PT09bnx8dS50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCImJnUuZXhwcmVzc2lvbj09PW4pe249dTtjb250aW51ZX11LnR5cGU9PT1cIk5ld0V4cHJlc3Npb25cIiYmdS5jYWxsZWU9PT1ufHxMZSh1KSYmdS5leHByZXNzaW9uPT09bj8ocj1lLmdldFBhcmVudE5vZGUocysxKSxuPXUpOnI9dX1yZXR1cm4gbj09PXQ/ITE6cltRcC5nZXQoci50eXBlKV09PT1ufWZ1bmN0aW9uIE10KGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9bi50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIix1PXM/XCJjb25zZXF1ZW50XCI6XCJ0cnVlVHlwZVwiLGk9cz9cImFsdGVybmF0ZVwiOlwiZmFsc2VUeXBlXCIsYT1zP1tcInRlc3RcIl06W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiXSxvPW5bdV0scD1uW2ldLG09W10sRD0hMSx7cGFyZW50OmN9PWUsZj1jLnR5cGU9PT1uLnR5cGUmJmEuc29tZShWPT5jW1ZdPT09biksbD1jLnR5cGU9PT1uLnR5cGUmJiFmLGgsZyxTPTA7ZG8gZz1ofHxuLGg9ZS5nZXRQYXJlbnROb2RlKFMpLFMrKzt3aGlsZShoJiZoLnR5cGU9PT1uLnR5cGUmJmEuZXZlcnkoVj0+aFtWXSE9PWcpKTtsZXQgST1ofHxjLHY9ZztpZihzJiYoWShuW2FbMF1dKXx8WShvKXx8WShwKXx8S3AodikpKXtEPSEwLGw9ITA7bGV0IFY9RWU9PltQKFwiKFwiKSxFKFtGLEVlXSksRixQKFwiKVwiKV0sQmU9RWU9PkVlLnR5cGU9PT1cIk51bGxMaXRlcmFsXCJ8fEVlLnR5cGU9PT1cIkxpdGVyYWxcIiYmRWUudmFsdWU9PT1udWxsfHxFZS50eXBlPT09XCJJZGVudGlmaWVyXCImJkVlLm5hbWU9PT1cInVuZGVmaW5lZFwiO20ucHVzaChcIiA/IFwiLEJlKG8pP3IodSk6VihyKHUpKSxcIiA6IFwiLHAudHlwZT09PW4udHlwZXx8QmUocCk/cihpKTpWKHIoaSkpKX1lbHNle2xldCBWPVtBLFwiPyBcIixvLnR5cGU9PT1uLnR5cGU/UChcIlwiLFwiKFwiKTpcIlwiLERlKDIscih1KSksby50eXBlPT09bi50eXBlP1AoXCJcIixcIilcIik6XCJcIixBLFwiOiBcIixwLnR5cGU9PT1uLnR5cGU/cihpKTpEZSgyLHIoaSkpXTttLnB1c2goYy50eXBlIT09bi50eXBlfHxjW2ldPT09bnx8Zj9WOnQudXNlVGFicz9PcyhFKFYpKTpEZShNYXRoLm1heCgwLHQudGFiV2lkdGgtMiksVikpfWxldCBfPVt1LGksLi4uYV0uc29tZShWPT5kKG5bVl0sQmU9PmFlKEJlKSYmcnQodC5vcmlnaW5hbFRleHQsVShCZSksTyhCZSkpKSksUj1WPT5jPT09ST95KFYse3Nob3VsZEJyZWFrOl99KTpfP1tWLFRlXTpWLFQ9IUQmJihKKGMpfHxjLnR5cGU9PT1cIk5HUGlwZUV4cHJlc3Npb25cIiYmYy5sZWZ0PT09bikmJiFjLmNvbXB1dGVkLE49WnAoZSksU2U9UihbenAoZSx0LHIpLGw/bTpFKG0pLHMmJlQmJiFOP0Y6XCJcIl0pO3JldHVybiBmfHxOP3koW0UoW0YsU2VdKSxGXSk6U2V9ZnVuY3Rpb24gZWMoZSx0LHI9MCl7bGV0IG49MDtmb3IobGV0IHM9cjtzPGUubGVuZ3RoOysrcyllW3NdPT09XCJcdFwiP249bit0LW4ldDpuKys7cmV0dXJuIG59dmFyIGVpPWVjO2Z1bmN0aW9uIHRjKGUsdCl7bGV0IHI9ZS5sYXN0SW5kZXhPZihgXG5gKTtyZXR1cm4gcj09PS0xPzA6ZWkoZS5zbGljZShyKzEpLm1hdGNoKC9eW1xcdCBdKi8pWzBdLHQpfXZhciB0aT10YztmdW5jdGlvbiByaShlKXtzd2l0Y2goZSl7Y2FzZVwiY3JcIjpyZXR1cm5cIlxcclwiO2Nhc2VcImNybGZcIjpyZXR1cm5gXFxyXG5gO2RlZmF1bHQ6cmV0dXJuYFxuYH19dmFyIGRlPVN5bWJvbChcIk1PREVfQlJFQUtcIiksbnQ9U3ltYm9sKFwiTU9ERV9GTEFUXCIpLHJyPVN5bWJvbChcImN1cnNvclwiKTtmdW5jdGlvbiBuaSgpe3JldHVybnt2YWx1ZTpcIlwiLGxlbmd0aDowLHF1ZXVlOltdfX1mdW5jdGlvbiByYyhlLHQpe3JldHVybiBwcyhlLHt0eXBlOlwiaW5kZW50XCJ9LHQpfWZ1bmN0aW9uIG5jKGUsdCxyKXtyZXR1cm4gdD09PU51bWJlci5ORUdBVElWRV9JTkZJTklUWT9lLnJvb3R8fG5pKCk6dDwwP3BzKGUse3R5cGU6XCJkZWRlbnRcIn0scik6dD90LnR5cGU9PT1cInJvb3RcIj97Li4uZSxyb290OmV9OnBzKGUse3R5cGU6dHlwZW9mIHQ9PVwic3RyaW5nXCI/XCJzdHJpbmdBbGlnblwiOlwibnVtYmVyQWxpZ25cIixuOnR9LHIpOmV9ZnVuY3Rpb24gcHMoZSx0LHIpe2xldCBuPXQudHlwZT09PVwiZGVkZW50XCI/ZS5xdWV1ZS5zbGljZSgwLC0xKTpbLi4uZS5xdWV1ZSx0XSxzPVwiXCIsdT0wLGk9MCxhPTA7Zm9yKGxldCBsIG9mIG4pc3dpdGNoKGwudHlwZSl7Y2FzZVwiaW5kZW50XCI6bSgpLHIudXNlVGFicz9vKDEpOnAoci50YWJXaWR0aCk7YnJlYWs7Y2FzZVwic3RyaW5nQWxpZ25cIjptKCkscys9bC5uLHUrPWwubi5sZW5ndGg7YnJlYWs7Y2FzZVwibnVtYmVyQWxpZ25cIjppKz0xLGErPWwubjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB0eXBlICcke2wudHlwZX0nYCl9cmV0dXJuIGMoKSx7Li4uZSx2YWx1ZTpzLGxlbmd0aDp1LHF1ZXVlOm59O2Z1bmN0aW9uIG8obCl7cys9XCJcdFwiLnJlcGVhdChsKSx1Kz1yLnRhYldpZHRoKmx9ZnVuY3Rpb24gcChsKXtzKz1cIiBcIi5yZXBlYXQobCksdSs9bH1mdW5jdGlvbiBtKCl7ci51c2VUYWJzP0QoKTpjKCl9ZnVuY3Rpb24gRCgpe2k+MCYmbyhpKSxmKCl9ZnVuY3Rpb24gYygpe2E+MCYmcChhKSxmKCl9ZnVuY3Rpb24gZigpe2k9MCxhPTB9fWZ1bmN0aW9uIGNzKGUpe2xldCB0PTAscj0wLG49ZS5sZW5ndGg7ZTpmb3IoO24tLTspe2xldCBzPWVbbl07aWYocz09PXJyKXtyKys7Y29udGludWV9Zm9yKGxldCB1PXMubGVuZ3RoLTE7dT49MDt1LS0pe2xldCBpPXNbdV07aWYoaT09PVwiIFwifHxpPT09XCJcdFwiKXQrKztlbHNle2Vbbl09cy5zbGljZSgwLHUrMSk7YnJlYWsgZX19fWlmKHQ+MHx8cj4wKWZvcihlLmxlbmd0aD1uKzE7ci0tID4wOyllLnB1c2gocnIpO3JldHVybiB0fWZ1bmN0aW9uIHpyKGUsdCxyLG4scyx1KXtpZihyPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKXJldHVybiEwO2xldCBpPXQubGVuZ3RoLGE9W2VdLG89W107Zm9yKDtyPj0wOyl7aWYoYS5sZW5ndGg9PT0wKXtpZihpPT09MClyZXR1cm4hMDthLnB1c2godFstLWldKTtjb250aW51ZX1sZXR7bW9kZTpwLGRvYzptfT1hLnBvcCgpO3N3aXRjaChaZShtKSl7Y2FzZSBLZTpvLnB1c2gobSksci09dHQobSk7YnJlYWs7Y2FzZSBqZTpjYXNlIHllOntsZXQgRD1tcihtKTtmb3IobGV0IGM9RC5sZW5ndGgtMTtjPj0wO2MtLSlhLnB1c2goe21vZGU6cCxkb2M6RFtjXX0pO2JyZWFrfWNhc2UgTWU6Y2FzZSBSZTpjYXNlIEplOmNhc2UgYmU6YS5wdXNoKHttb2RlOnAsZG9jOm0uY29udGVudHN9KTticmVhaztjYXNlIFFlOnIrPWNzKG8pO2JyZWFrO2Nhc2UgdWU6e2lmKHUmJm0uYnJlYWspcmV0dXJuITE7bGV0IEQ9bS5icmVhaz9kZTpwLGM9bS5leHBhbmRlZFN0YXRlcyYmRD09PWRlP3coITEsbS5leHBhbmRlZFN0YXRlcywtMSk6bS5jb250ZW50czthLnB1c2goe21vZGU6RCxkb2M6Y30pO2JyZWFrfWNhc2UgRmU6e2xldCBjPShtLmdyb3VwSWQ/c1ttLmdyb3VwSWRdfHxudDpwKT09PWRlP20uYnJlYWtDb250ZW50czptLmZsYXRDb250ZW50cztjJiZhLnB1c2goe21vZGU6cCxkb2M6Y30pO2JyZWFrfWNhc2UgaWU6aWYocD09PWRlfHxtLmhhcmQpcmV0dXJuITA7bS5zb2Z0fHwoby5wdXNoKFwiIFwiKSxyLS0pO2JyZWFrO2Nhc2UgTmU6bj0hMDticmVhaztjYXNlIFVlOmlmKG4pcmV0dXJuITE7YnJlYWt9fXJldHVybiExfWZ1bmN0aW9uIGxzKGUsdCl7bGV0IHI9e30sbj10LnByaW50V2lkdGgscz1yaSh0LmVuZE9mTGluZSksdT0wLGk9W3tpbmQ6bmkoKSxtb2RlOmRlLGRvYzplfV0sYT1bXSxvPSExLHA9W10sbT0wO2ZvcihNcyhlKTtpLmxlbmd0aD4wOyl7bGV0e2luZDpjLG1vZGU6Zixkb2M6bH09aS5wb3AoKTtzd2l0Y2goWmUobCkpe2Nhc2UgS2U6e2xldCBoPXMhPT1gXG5gP0goITEsbCxgXG5gLHMpOmw7YS5wdXNoKGgpLGkubGVuZ3RoPjAmJih1Kz10dChoKSk7YnJlYWt9Y2FzZSBqZTpmb3IobGV0IGg9bC5sZW5ndGgtMTtoPj0wO2gtLSlpLnB1c2goe2luZDpjLG1vZGU6Zixkb2M6bFtoXX0pO2JyZWFrO2Nhc2UgemU6aWYobT49Mil0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBhcmUgdG9vIG1hbnkgJ2N1cnNvcicgaW4gZG9jLlwiKTthLnB1c2gocnIpLG0rKzticmVhaztjYXNlIE1lOmkucHVzaCh7aW5kOnJjKGMsdCksbW9kZTpmLGRvYzpsLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBSZTppLnB1c2goe2luZDpuYyhjLGwubix0KSxtb2RlOmYsZG9jOmwuY29udGVudHN9KTticmVhaztjYXNlIFFlOnUtPWNzKGEpO2JyZWFrO2Nhc2UgdWU6c3dpdGNoKGYpe2Nhc2UgbnQ6aWYoIW8pe2kucHVzaCh7aW5kOmMsbW9kZTpsLmJyZWFrP2RlOm50LGRvYzpsLmNvbnRlbnRzfSk7YnJlYWt9Y2FzZSBkZTp7bz0hMTtsZXQgaD17aW5kOmMsbW9kZTpudCxkb2M6bC5jb250ZW50c30sZz1uLXUsUz1wLmxlbmd0aD4wO2lmKCFsLmJyZWFrJiZ6cihoLGksZyxTLHIpKWkucHVzaChoKTtlbHNlIGlmKGwuZXhwYW5kZWRTdGF0ZXMpe2xldCBJPXcoITEsbC5leHBhbmRlZFN0YXRlcywtMSk7aWYobC5icmVhayl7aS5wdXNoKHtpbmQ6Yyxtb2RlOmRlLGRvYzpJfSk7YnJlYWt9ZWxzZSBmb3IobGV0IHY9MTt2PGwuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKzE7disrKWlmKHY+PWwuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKXtpLnB1c2goe2luZDpjLG1vZGU6ZGUsZG9jOkl9KTticmVha31lbHNle2xldCBfPWwuZXhwYW5kZWRTdGF0ZXNbdl0sUj17aW5kOmMsbW9kZTpudCxkb2M6X307aWYoenIoUixpLGcsUyxyKSl7aS5wdXNoKFIpO2JyZWFrfX19ZWxzZSBpLnB1c2goe2luZDpjLG1vZGU6ZGUsZG9jOmwuY29udGVudHN9KTticmVha319bC5pZCYmKHJbbC5pZF09dyghMSxpLC0xKS5tb2RlKTticmVhaztjYXNlIHllOntsZXQgaD1uLXUse3BhcnRzOmd9PWw7aWYoZy5sZW5ndGg9PT0wKWJyZWFrO2xldFtTLEldPWcsdj17aW5kOmMsbW9kZTpudCxkb2M6U30sXz17aW5kOmMsbW9kZTpkZSxkb2M6U30sUj16cih2LFtdLGgscC5sZW5ndGg+MCxyLCEwKTtpZihnLmxlbmd0aD09PTEpe1I/aS5wdXNoKHYpOmkucHVzaChfKTticmVha31sZXQgVD17aW5kOmMsbW9kZTpudCxkb2M6SX0sTj17aW5kOmMsbW9kZTpkZSxkb2M6SX07aWYoZy5sZW5ndGg9PT0yKXtSP2kucHVzaChULHYpOmkucHVzaChOLF8pO2JyZWFrfWcuc3BsaWNlKDAsMik7bGV0IFNlPXtpbmQ6Yyxtb2RlOmYsZG9jOlN0KGcpfSxWPWdbMF07enIoe2luZDpjLG1vZGU6bnQsZG9jOltTLEksVl19LFtdLGgscC5sZW5ndGg+MCxyLCEwKT9pLnB1c2goU2UsVCx2KTpSP2kucHVzaChTZSxOLHYpOmkucHVzaChTZSxOLF8pO2JyZWFrfWNhc2UgRmU6Y2FzZSBKZTp7bGV0IGg9bC5ncm91cElkP3JbbC5ncm91cElkXTpmO2lmKGg9PT1kZSl7bGV0IGc9bC50eXBlPT09RmU/bC5icmVha0NvbnRlbnRzOmwubmVnYXRlP2wuY29udGVudHM6RShsLmNvbnRlbnRzKTtnJiZpLnB1c2goe2luZDpjLG1vZGU6Zixkb2M6Z30pfWlmKGg9PT1udCl7bGV0IGc9bC50eXBlPT09RmU/bC5mbGF0Q29udGVudHM6bC5uZWdhdGU/RShsLmNvbnRlbnRzKTpsLmNvbnRlbnRzO2cmJmkucHVzaCh7aW5kOmMsbW9kZTpmLGRvYzpnfSl9YnJlYWt9Y2FzZSBOZTpwLnB1c2goe2luZDpjLG1vZGU6Zixkb2M6bC5jb250ZW50c30pO2JyZWFrO2Nhc2UgVWU6cC5sZW5ndGg+MCYmaS5wdXNoKHtpbmQ6Yyxtb2RlOmYsZG9jOlNufSk7YnJlYWs7Y2FzZSBpZTpzd2l0Y2goZil7Y2FzZSBudDppZihsLmhhcmQpbz0hMDtlbHNle2wuc29mdHx8KGEucHVzaChcIiBcIiksdSs9MSk7YnJlYWt9Y2FzZSBkZTppZihwLmxlbmd0aD4wKXtpLnB1c2goe2luZDpjLG1vZGU6Zixkb2M6bH0sLi4ucC5yZXZlcnNlKCkpLHAubGVuZ3RoPTA7YnJlYWt9bC5saXRlcmFsP2Mucm9vdD8oYS5wdXNoKHMsYy5yb290LnZhbHVlKSx1PWMucm9vdC5sZW5ndGgpOihhLnB1c2gocyksdT0wKToodS09Y3MoYSksYS5wdXNoKHMrYy52YWx1ZSksdT1jLmxlbmd0aCk7YnJlYWt9YnJlYWs7Y2FzZSBiZTppLnB1c2goe2luZDpjLG1vZGU6Zixkb2M6bC5jb250ZW50c30pO2JyZWFrO2Nhc2UgUGU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgbHQobCl9aS5sZW5ndGg9PT0wJiZwLmxlbmd0aD4wJiYoaS5wdXNoKC4uLnAucmV2ZXJzZSgpKSxwLmxlbmd0aD0wKX1sZXQgRD1hLmluZGV4T2YocnIpO2lmKEQhPT0tMSl7bGV0IGM9YS5pbmRleE9mKHJyLEQrMSksZj1hLnNsaWNlKDAsRCkuam9pbihcIlwiKSxsPWEuc2xpY2UoRCsxLGMpLmpvaW4oXCJcIiksaD1hLnNsaWNlKGMrMSkuam9pbihcIlwiKTtyZXR1cm57Zm9ybWF0dGVkOmYrbCtoLGN1cnNvck5vZGVTdGFydDpmLmxlbmd0aCxjdXJzb3JOb2RlVGV4dDpsfX1yZXR1cm57Zm9ybWF0dGVkOmEuam9pbihcIlwiKX19ZnVuY3Rpb24gUXIoZSx0LHIpe2xldHtub2RlOm59PWU7aWYobi50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIiYmaWMoZSkpe2xldCBtPXNjKGUscix0KTtpZihtKXJldHVybiBtfWxldCB1PVwiZXhwcmVzc2lvbnNcIjtuLnR5cGU9PT1cIlRTVGVtcGxhdGVMaXRlcmFsVHlwZVwiJiYodT1cInR5cGVzXCIpO2xldCBpPVtdLGE9ZS5tYXAodCx1KSxvPWV1KG4pO28mJihhPWEubWFwKG09PmxzKG0sey4uLnIscHJpbnRXaWR0aDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9KS5mb3JtYXR0ZWQpKSxpLnB1c2goQWUsXCJgXCIpO2xldCBwPTA7cmV0dXJuIGUuZWFjaCgoe2luZGV4Om0sbm9kZTpEfSk9PntpZihpLnB1c2godCgpKSxELnRhaWwpcmV0dXJuO2xldHt0YWJXaWR0aDpjfT1yLGY9RC52YWx1ZS5yYXcsbD1mLmluY2x1ZGVzKGBcbmApP3RpKGYsYyk6cDtwPWw7bGV0IGg9YVttXTtpZighbyl7bGV0IFM9blt1XVttXTsoZChTKXx8SihTKXx8Uy50eXBlPT09XCJDb25kaXRpb25hbEV4cHJlc3Npb25cInx8Uy50eXBlPT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cInx8TGUoUyl8fGNlKFMpKSYmKGg9W0UoW0YsaF0pLEZdKX1sZXQgZz1sPT09MCYmZi5lbmRzV2l0aChgXG5gKT9EZShOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksaCk6dnMoaCxsLGMpO2kucHVzaCh5KFtcIiR7XCIsZyxBZSxcIn1cIl0pKX0sXCJxdWFzaXNcIiksaS5wdXNoKFwiYFwiKSxpfWZ1bmN0aW9uIHNpKGUpe2xldCB0PWUoXCJxdWFzaVwiKTtyZXR1cm4gZXQodC5sYWJlbCYme3RhZ2dlZDohMCwuLi50LmxhYmVsfSxbZShcInRhZ1wiKSxlKFwidHlwZVBhcmFtZXRlcnNcIiksQWUsdF0pfWZ1bmN0aW9uIHNjKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9bi5xdWFzaXNbMF0udmFsdWUucmF3LnRyaW0oKS5zcGxpdCgvXFxzKlxcfFxccyovKTtpZihzLmxlbmd0aD4xfHxzLnNvbWUodT0+dS5sZW5ndGg+MCkpe3QuX19pbkplc3RFYWNoPSEwO2xldCB1PWUubWFwKHIsXCJleHByZXNzaW9uc1wiKTt0Ll9faW5KZXN0RWFjaD0hMTtsZXQgaT1bXSxhPXUubWFwKGM9PlwiJHtcIitscyhjLHsuLi50LHByaW50V2lkdGg6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGVuZE9mTGluZTpcImxmXCJ9KS5mb3JtYXR0ZWQrXCJ9XCIpLG89W3toYXNMaW5lQnJlYWs6ITEsY2VsbHM6W119XTtmb3IobGV0IGM9MTtjPG4ucXVhc2lzLmxlbmd0aDtjKyspe2xldCBmPXcoITEsbywtMSksbD1hW2MtMV07Zi5jZWxscy5wdXNoKGwpLGwuaW5jbHVkZXMoYFxuYCkmJihmLmhhc0xpbmVCcmVhaz0hMCksbi5xdWFzaXNbY10udmFsdWUucmF3LmluY2x1ZGVzKGBcbmApJiZvLnB1c2goe2hhc0xpbmVCcmVhazohMSxjZWxsczpbXX0pfWxldCBwPU1hdGgubWF4KHMubGVuZ3RoLC4uLm8ubWFwKGM9PmMuY2VsbHMubGVuZ3RoKSksbT1BcnJheS5mcm9tKHtsZW5ndGg6cH0pLmZpbGwoMCksRD1be2NlbGxzOnN9LC4uLm8uZmlsdGVyKGM9PmMuY2VsbHMubGVuZ3RoPjApXTtmb3IobGV0e2NlbGxzOmN9b2YgRC5maWx0ZXIoZj0+IWYuaGFzTGluZUJyZWFrKSlmb3IobGV0W2YsbF1vZiBjLmVudHJpZXMoKSltW2ZdPU1hdGgubWF4KG1bZl0sdHQobCkpO3JldHVybiBpLnB1c2goQWUsXCJgXCIsRShbQyxCKEMsRC5tYXAoYz0+QihcIiB8IFwiLGMuY2VsbHMubWFwKChmLGwpPT5jLmhhc0xpbmVCcmVhaz9mOmYrXCIgXCIucmVwZWF0KG1bbF0tdHQoZikpKSkpKV0pLEMsXCJgXCIpLGl9fWZ1bmN0aW9uIHVjKGUsdCl7bGV0e25vZGU6cn09ZSxuPXQoKTtyZXR1cm4gZChyKSYmKG49eShbRShbRixuXSksRl0pKSxbXCIke1wiLG4sQWUsXCJ9XCJdfWZ1bmN0aW9uIFJ0KGUsdCl7cmV0dXJuIGUubWFwKHI9PnVjKHIsdCksXCJleHByZXNzaW9uc1wiKX1mdW5jdGlvbiBacihlLHQpe3JldHVybiB1dChlLHI9PnR5cGVvZiByPT1cInN0cmluZ1wiP3Q/SCghMSxyLC8oXFxcXCopYC9nLFwiJDEkMVxcXFxgXCIpOm1zKHIpOnIpfWZ1bmN0aW9uIG1zKGUpe3JldHVybiBIKCExLGUsLyhbXFxcXGBdfFxcJHspL2csXCJcXFxcJDFcIil9ZnVuY3Rpb24gaWMoe25vZGU6ZSxwYXJlbnQ6dH0pe2xldCByPS9eW2Z4XT8oPzpkZXNjcmliZXxpdHx0ZXN0KSQvO3JldHVybiB0LnR5cGU9PT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiJiZ0LnF1YXNpPT09ZSYmdC50YWcudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiZ0LnRhZy5wcm9wZXJ0eS50eXBlPT09XCJJZGVudGlmaWVyXCImJnQudGFnLnByb3BlcnR5Lm5hbWU9PT1cImVhY2hcIiYmKHQudGFnLm9iamVjdC50eXBlPT09XCJJZGVudGlmaWVyXCImJnIudGVzdCh0LnRhZy5vYmplY3QubmFtZSl8fHQudGFnLm9iamVjdC50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCImJnQudGFnLm9iamVjdC5wcm9wZXJ0eS50eXBlPT09XCJJZGVudGlmaWVyXCImJih0LnRhZy5vYmplY3QucHJvcGVydHkubmFtZT09PVwib25seVwifHx0LnRhZy5vYmplY3QucHJvcGVydHkubmFtZT09PVwic2tpcFwiKSYmdC50YWcub2JqZWN0Lm9iamVjdC50eXBlPT09XCJJZGVudGlmaWVyXCImJnIudGVzdCh0LnRhZy5vYmplY3Qub2JqZWN0Lm5hbWUpKX1mdW5jdGlvbiBhYyhlKXtsZXQgdD1uZXcgV2Vha01hcDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQuaGFzKHIpfHx0LnNldChyLFN5bWJvbChlKSksdC5nZXQocil9fXZhciBlbj1hYztmdW5jdGlvbiBvYyhlKXtzd2l0Y2goZSl7Y2FzZSBudWxsOnJldHVyblwiXCI7Y2FzZVwiUGx1c09wdGlvbmFsXCI6cmV0dXJuXCIrP1wiO2Nhc2VcIk1pbnVzT3B0aW9uYWxcIjpyZXR1cm5cIi0/XCI7Y2FzZVwiT3B0aW9uYWxcIjpyZXR1cm5cIj9cIn19ZnVuY3Rpb24gdWkoZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuIHkoW24udmFyaWFuY2U/cihcInZhcmlhbmNlXCIpOlwiXCIsXCJbXCIsRShbcihcImtleVRwYXJhbVwiKSxcIiBpbiBcIixyKFwic291cmNlVHlwZVwiKV0pLFwiXVwiLG9jKG4ub3B0aW9uYWwpLFwiOiBcIixyKFwicHJvcFR5cGVcIildKX1mdW5jdGlvbiB5cyhlLHQpe3JldHVybiBlPT09XCIrXCJ8fGU9PT1cIi1cIj9lK3Q6dH1mdW5jdGlvbiBpaShlLHQscil7bGV0e25vZGU6bn09ZSxzPXJ0KHQub3JpZ2luYWxUZXh0LFUobiksVShuLnR5cGVQYXJhbWV0ZXIpKTtyZXR1cm4geShbXCJ7XCIsRShbdC5icmFja2V0U3BhY2luZz9BOkYseShbcihcInR5cGVQYXJhbWV0ZXJcIiksbi5vcHRpb25hbD95cyhuLm9wdGlvbmFsLFwiP1wiKTpcIlwiLG4udHlwZUFubm90YXRpb24/XCI6IFwiOlwiXCIscihcInR5cGVBbm5vdGF0aW9uXCIpXSksdC5zZW1pP1AoXCI7XCIpOlwiXCJdKSxNKGUsdCksdC5icmFja2V0U3BhY2luZz9BOkYsXCJ9XCJdLHtzaG91bGRCcmVhazpzfSl9dmFyIG5yPWVuKFwidHlwZVBhcmFtZXRlcnNcIik7ZnVuY3Rpb24gcGMoZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuIFgobikubGVuZ3RoPT09MSYmbi50eXBlLnN0YXJ0c1dpdGgoXCJUU1wiKSYmIW5bcl1bMF0uY29uc3RyYWludCYmZS5wYXJlbnQudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIiYmISh0LmZpbGVwYXRoJiYvXFwudHMkLy50ZXN0KHQuZmlsZXBhdGgpKX1mdW5jdGlvbiBndChlLHQscixuKXtsZXR7bm9kZTpzfT1lO2lmKCFzW25dKXJldHVyblwiXCI7aWYoIUFycmF5LmlzQXJyYXkoc1tuXSkpcmV0dXJuIHIobik7bGV0IHU9ZS5nZXROb2RlKDIpLGk9dSYmQ3QodSksYT1lLm1hdGNoKG09PiEobVtuXS5sZW5ndGg9PT0xJiZrZShtW25dWzBdKSksdm9pZCAwLChtLEQpPT5EPT09XCJ0eXBlQW5ub3RhdGlvblwiLG09Pm0udHlwZT09PVwiSWRlbnRpZmllclwiLHJzKTtpZihzW25dLmxlbmd0aD09PTB8fCFhJiYoaXx8c1tuXS5sZW5ndGg9PT0xJiYoc1tuXVswXS50eXBlPT09XCJOdWxsYWJsZVR5cGVBbm5vdGF0aW9uXCJ8fHNzKHNbbl1bMF0pKSkpcmV0dXJuW1wiPFwiLEIoXCIsIFwiLGUubWFwKHIsbikpLGNjKGUsdCksXCI+XCJdO2xldCBwPXMudHlwZT09PVwiVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvblwiP1wiXCI6cGMoZSx0LG4pP1wiLFwiOmxlKHQpP1AoXCIsXCIpOlwiXCI7cmV0dXJuIHkoW1wiPFwiLEUoW0YsQihbXCIsXCIsQV0sZS5tYXAocixuKSldKSxwLEYsXCI+XCJdLHtpZDpucihzKX0pfWZ1bmN0aW9uIGNjKGUsdCl7bGV0e25vZGU6cn09ZTtpZighZChyLHguRGFuZ2xpbmcpKXJldHVyblwiXCI7bGV0IG49IWQocix4LkxpbmUpLHM9TShlLHQse2luZGVudDohbn0pO3JldHVybiBuP3M6W3MsQ119ZnVuY3Rpb24gdG4oZSx0LHIpe2xldHtub2RlOm4scGFyZW50OnN9PWUsdT1bbi50eXBlPT09XCJUU1R5cGVQYXJhbWV0ZXJcIiYmbi5jb25zdD9cImNvbnN0IFwiOlwiXCJdLGk9bi50eXBlPT09XCJUU1R5cGVQYXJhbWV0ZXJcIj9yKFwibmFtZVwiKTpuLm5hbWU7aWYocy50eXBlPT09XCJUU01hcHBlZFR5cGVcIilyZXR1cm4gcy5yZWFkb25seSYmdS5wdXNoKHlzKHMucmVhZG9ubHksXCJyZWFkb25seVwiKSxcIiBcIiksdS5wdXNoKFwiW1wiLGkpLG4uY29uc3RyYWludCYmdS5wdXNoKFwiIGluIFwiLHIoXCJjb25zdHJhaW50XCIpKSxzLm5hbWVUeXBlJiZ1LnB1c2goXCIgYXMgXCIsZS5jYWxsUGFyZW50KCgpPT5yKFwibmFtZVR5cGVcIikpKSx1LnB1c2goXCJdXCIpLHU7aWYobi52YXJpYW5jZSYmdS5wdXNoKHIoXCJ2YXJpYW5jZVwiKSksbi5pbiYmdS5wdXNoKFwiaW4gXCIpLG4ub3V0JiZ1LnB1c2goXCJvdXQgXCIpLHUucHVzaChpKSxuLmJvdW5kJiYobi51c2VzRXh0ZW5kc0JvdW5kJiZ1LnB1c2goXCIgZXh0ZW5kcyBcIiksdS5wdXNoKHEoZSxyLFwiYm91bmRcIikpKSxuLmNvbnN0cmFpbnQpe2xldCBhPVN5bWJvbChcImNvbnN0cmFpbnRcIik7dS5wdXNoKFwiIGV4dGVuZHNcIix5KEUoQSkse2lkOmF9KSxBZSxtdChyKFwiY29uc3RyYWludFwiKSx7Z3JvdXBJZDphfSkpfXJldHVybiBuLmRlZmF1bHQmJnUucHVzaChcIiA9IFwiLHIoXCJkZWZhdWx0XCIpKSx5KHUpfXZhciBhaT1uZXcgUHJveHkoKCk9Pnt9LHtnZXQ6KCk9PmFpfSkscm49YWk7dmFyIG5uPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGN0KGUsdCxyKXtsZXR7bm9kZTpufT1lO2lmKG4uY29tcHV0ZWQpcmV0dXJuW1wiW1wiLHIoXCJrZXlcIiksXCJdXCJdO2xldHtwYXJlbnQ6c309ZSx7a2V5OnV9PW47aWYodC5xdW90ZVByb3BzPT09XCJjb25zaXN0ZW50XCImJiFubi5oYXMocykpe2xldCBpPShzLnByb3BlcnRpZXN8fHMuYm9keXx8cy5tZW1iZXJzKS5zb21lKGE9PiFhLmNvbXB1dGVkJiZhLmtleSYmUShhLmtleSkmJiFfbihhLHQpKTtubi5zZXQocyxpKX1pZigodS50eXBlPT09XCJJZGVudGlmaWVyXCJ8fGhlKHUpJiZqbihIZShvZSh1KSkpJiZTdHJpbmcodS52YWx1ZSk9PT1IZShvZSh1KSkmJiEodC5wYXJzZXI9PT1cInR5cGVzY3JpcHRcInx8dC5wYXJzZXI9PT1cImJhYmVsLXRzXCIpKSYmKHQucGFyc2VyPT09XCJqc29uXCJ8fHQucXVvdGVQcm9wcz09PVwiY29uc2lzdGVudFwiJiZubi5nZXQocykpKXtsZXQgaT1UdChKU09OLnN0cmluZ2lmeSh1LnR5cGU9PT1cIklkZW50aWZpZXJcIj91Lm5hbWU6dS52YWx1ZS50b1N0cmluZygpKSx0KTtyZXR1cm4gZS5jYWxsKGE9PnBlKGEsaSx0KSxcImtleVwiKX1yZXR1cm4gX24obix0KSYmKHQucXVvdGVQcm9wcz09PVwiYXMtbmVlZGVkXCJ8fHQucXVvdGVQcm9wcz09PVwiY29uc2lzdGVudFwiJiYhbm4uZ2V0KHMpKT9lLmNhbGwoaT0+cGUoaSwvXlxcZC8udGVzdCh1LnZhbHVlKT9IZSh1LnZhbHVlKTp1LnZhbHVlLHQpLFwia2V5XCIpOnIoXCJrZXlcIil9ZnVuY3Rpb24gb2koZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuIG4uc2hvcnRoYW5kP3IoXCJ2YWx1ZVwiKTpmdChlLHQscixjdChlLHQsciksXCI6XCIsXCJ2YWx1ZVwiKX12YXIgbGM9ZT0+ZS50eXBlPT09XCJPYmplY3RNZXRob2RcInx8ZS50eXBlPT09XCJDbGFzc01ldGhvZFwifHxlLnR5cGU9PT1cIkNsYXNzUHJpdmF0ZU1ldGhvZFwifHxlLnR5cGU9PT1cIk1ldGhvZERlZmluaXRpb25cInx8ZS50eXBlPT09XCJUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvblwifHxlLnR5cGU9PT1cIlRTRGVjbGFyZU1ldGhvZFwifHwoZS50eXBlPT09XCJQcm9wZXJ0eVwifHxlLnR5cGU9PT1cIk9iamVjdFByb3BlcnR5XCIpJiYoZS5tZXRob2R8fGUua2luZD09PVwiZ2V0XCJ8fGUua2luZD09PVwic2V0XCIpLG1jPWU9PmUubm9kZS50eXBlPT09XCJGdW5jdGlvbkV4cHJlc3Npb25cIiYmZS5rZXk9PT1cInZhbHVlXCImJmxjKGUucGFyZW50KTtmdW5jdGlvbiBzbihlLHQscixuKXtpZihtYyhlKSlyZXR1cm4gdW4oZSxyLHQpO2xldHtub2RlOnN9PWUsdT0hMTtpZigocy50eXBlPT09XCJGdW5jdGlvbkRlY2xhcmF0aW9uXCJ8fHMudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCIpJiYobiE9bnVsbCYmbi5leHBhbmRMYXN0QXJnKSl7bGV0e3BhcmVudDptfT1lO2sobSkmJihDZShtKS5sZW5ndGg+MXx8WChzKS5ldmVyeShEPT5ELnR5cGU9PT1cIklkZW50aWZpZXJcIiYmIUQudHlwZUFubm90YXRpb24pKSYmKHU9ITApfWxldCBpPVtaKGUpLHMuYXN5bmM/XCJhc3luYyBcIjpcIlwiLGBmdW5jdGlvbiR7cy5nZW5lcmF0b3I/XCIqXCI6XCJcIn0gYCxzLmlkP3QoXCJpZFwiKTpcIlwiXSxhPW90KGUsdCxyLHUpLG89b24oZSx0KSxwPXh0KHMsbyk7cmV0dXJuIGkucHVzaChWZShlLHIsdCkseShbcD95KGEpOmEsb10pLHMuYm9keT9cIiBcIjpcIlwiLHQoXCJib2R5XCIpKSxyLnNlbWkmJihzLmRlY2xhcmV8fCFzLmJvZHkpJiZpLnB1c2goXCI7XCIpLGl9ZnVuY3Rpb24gc3IoZSx0LHIpe2xldHtub2RlOm59PWUse2tpbmQ6c309bix1PW4udmFsdWV8fG4saT1bXTtyZXR1cm4hc3x8cz09PVwiaW5pdFwifHxzPT09XCJtZXRob2RcInx8cz09PVwiY29uc3RydWN0b3JcIj91LmFzeW5jJiZpLnB1c2goXCJhc3luYyBcIik6KHJuLm9rKHM9PT1cImdldFwifHxzPT09XCJzZXRcIiksaS5wdXNoKHMsXCIgXCIpKSx1LmdlbmVyYXRvciYmaS5wdXNoKFwiKlwiKSxpLnB1c2goY3QoZSx0LHIpLG4ub3B0aW9uYWx8fG4ua2V5Lm9wdGlvbmFsP1wiP1wiOlwiXCIsbj09PXU/dW4oZSx0LHIpOnIoXCJ2YWx1ZVwiKSksaX1mdW5jdGlvbiB1bihlLHQscil7bGV0e25vZGU6bn09ZSxzPW90KGUscix0KSx1PW9uKGUsciksaT1OdShuKSxhPXh0KG4sdSksbz1bVmUoZSx0LHIpLHkoW2k/eShzLHtzaG91bGRCcmVhazohMH0pOmE/eShzKTpzLHVdKV07cmV0dXJuIG4uYm9keT9vLnB1c2goXCIgXCIscihcImJvZHlcIikpOm8ucHVzaCh0LnNlbWk/XCI7XCI6XCJcIiksb31mdW5jdGlvbiB5YyhlKXtsZXQgdD1YKGUpO3JldHVybiB0Lmxlbmd0aD09PTEmJiFlLnR5cGVQYXJhbWV0ZXJzJiYhZChlLHguRGFuZ2xpbmcpJiZ0WzBdLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmIXRbMF0udHlwZUFubm90YXRpb24mJiFkKHRbMF0pJiYhdFswXS5vcHRpb25hbCYmIWUucHJlZGljYXRlJiYhZS5yZXR1cm5UeXBlfWZ1bmN0aW9uIGFuKGUsdCl7aWYodC5hcnJvd1BhcmVucz09PVwiYWx3YXlzXCIpcmV0dXJuITE7aWYodC5hcnJvd1BhcmVucz09PVwiYXZvaWRcIil7bGV0e25vZGU6cn09ZTtyZXR1cm4geWMocil9cmV0dXJuITF9ZnVuY3Rpb24gb24oZSx0KXtsZXR7bm9kZTpyfT1lLHM9W3EoZSx0LFwicmV0dXJuVHlwZVwiKV07cmV0dXJuIHIucHJlZGljYXRlJiZzLnB1c2godChcInByZWRpY2F0ZVwiKSksc31mdW5jdGlvbiBwaShlLHQscil7bGV0e25vZGU6bn09ZSxzPXQuc2VtaT9cIjtcIjpcIlwiLHU9W107aWYobi5hcmd1bWVudCl7bGV0IG89cihcImFyZ3VtZW50XCIpO0RjKHQsbi5hcmd1bWVudCk/bz1bXCIoXCIsRShbQyxvXSksQyxcIilcIl06KGNlKG4uYXJndW1lbnQpfHxuLmFyZ3VtZW50LnR5cGU9PT1cIlNlcXVlbmNlRXhwcmVzc2lvblwiKSYmKG89eShbUChcIihcIiksRShbRixvXSksRixQKFwiKVwiKV0pKSx1LnB1c2goXCIgXCIsbyl9bGV0IGk9ZChuLHguRGFuZ2xpbmcpLGE9cyYmaSYmZChuLHguTGFzdHx4LkxpbmUpO3JldHVybiBhJiZ1LnB1c2gocyksaSYmdS5wdXNoKFwiIFwiLE0oZSx0KSksYXx8dS5wdXNoKHMpLHV9ZnVuY3Rpb24gY2koZSx0LHIpe3JldHVybltcInJldHVyblwiLHBpKGUsdCxyKV19ZnVuY3Rpb24gbGkoZSx0LHIpe3JldHVybltcInRocm93XCIscGkoZSx0LHIpXX1mdW5jdGlvbiBEYyhlLHQpe2lmKEllKGUub3JpZ2luYWxUZXh0LHQpfHxkKHQseC5MZWFkaW5nLHI9PnJ0KGUub3JpZ2luYWxUZXh0LFUociksTyhyKSkpJiYhWSh0KSlyZXR1cm4hMDtpZihMdCh0KSl7bGV0IHI9dCxuO2Zvcig7bj16cyhyKTspaWYocj1uLEllKGUub3JpZ2luYWxUZXh0LHIpKXJldHVybiEwfXJldHVybiExfXZhciBtaT1qKFtcIkNsYXNzUHJvcGVydHlcIixcIlByb3BlcnR5RGVmaW5pdGlvblwiLFwiQ2xhc3NQcml2YXRlUHJvcGVydHlcIixcIkNsYXNzQWNjZXNzb3JQcm9wZXJ0eVwiLFwiQWNjZXNzb3JQcm9wZXJ0eVwiLFwiVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvblwiLFwiVFNBYnN0cmFjdEFjY2Vzc29yUHJvcGVydHlcIl0pO2Z1bmN0aW9uIHBuKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9W1ooZSksX3QoZSksXCJjbGFzc1wiXSx1PWQobi5pZCx4LlRyYWlsaW5nKXx8ZChuLnR5cGVQYXJhbWV0ZXJzLHguVHJhaWxpbmcpfHxkKG4uc3VwZXJDbGFzcyl8fGIobi5leHRlbmRzKXx8YihuLm1peGlucyl8fGIobi5pbXBsZW1lbnRzKSxpPVtdLGE9W107aWYobi5pZCYmaS5wdXNoKFwiIFwiLHIoXCJpZFwiKSksaS5wdXNoKHIoXCJ0eXBlUGFyYW1ldGVyc1wiKSksbi5zdXBlckNsYXNzKXtsZXQgbz1bRWMoZSx0LHIpLHIoXCJzdXBlclR5cGVQYXJhbWV0ZXJzXCIpXSxwPWUuY2FsbChtPT5bXCJleHRlbmRzIFwiLHBlKG0sbyx0KV0sXCJzdXBlckNsYXNzXCIpO3U/YS5wdXNoKEEseShwKSk6YS5wdXNoKFwiIFwiLHApfWVsc2UgYS5wdXNoKERzKGUsdCxyLFwiZXh0ZW5kc1wiKSk7aWYoYS5wdXNoKERzKGUsdCxyLFwibWl4aW5zXCIpLERzKGUsdCxyLFwiaW1wbGVtZW50c1wiKSksdSl7bGV0IG87RGkobik/bz1bLi4uaSxFKGEpXTpvPUUoWy4uLmksYV0pLHMucHVzaCh5KG8se2lkOnlpKG4pfSkpfWVsc2Ugcy5wdXNoKC4uLmksLi4uYSk7cmV0dXJuIHMucHVzaChcIiBcIixyKFwiYm9keVwiKSksc312YXIgeWk9ZW4oXCJoZXJpdGFnZUdyb3VwXCIpO2Z1bmN0aW9uIGZzKGUpe3JldHVybiBQKEMsXCJcIix7Z3JvdXBJZDp5aShlKX0pfWZ1bmN0aW9uIGZjKGUpe3JldHVybltcImV4dGVuZHNcIixcIm1peGluc1wiLFwiaW1wbGVtZW50c1wiXS5yZWR1Y2UoKHQscik9PnQrKEFycmF5LmlzQXJyYXkoZVtyXSk/ZVtyXS5sZW5ndGg6MCksZS5zdXBlckNsYXNzPzE6MCk+MX1mdW5jdGlvbiBEaShlKXtyZXR1cm4gZS50eXBlUGFyYW1ldGVycyYmIWQoZS50eXBlUGFyYW1ldGVycyx4LlRyYWlsaW5nfHguTGluZSkmJiFmYyhlKX1mdW5jdGlvbiBEcyhlLHQscixuKXtsZXR7bm9kZTpzfT1lO2lmKCFiKHNbbl0pKXJldHVyblwiXCI7bGV0IHU9TShlLHQse21hcmtlcjpufSk7cmV0dXJuW0RpKHMpP1AoXCIgXCIsQSx7Z3JvdXBJZDpucihzLnR5cGVQYXJhbWV0ZXJzKX0pOkEsdSx1JiZDLG4seShFKFtBLEIoW1wiLFwiLEFdLGUubWFwKHIsbikpXSkpXX1mdW5jdGlvbiBFYyhlLHQscil7bGV0IG49cihcInN1cGVyQ2xhc3NcIikse3BhcmVudDpzfT1lO3JldHVybiBzLnR5cGU9PT1cIkFzc2lnbm1lbnRFeHByZXNzaW9uXCI/eShQKFtcIihcIixFKFtGLG5dKSxGLFwiKVwiXSxuKSk6bn1mdW5jdGlvbiBjbihlLHQscil7bGV0e25vZGU6bn09ZSxzPVtdO3JldHVybiBiKG4uZGVjb3JhdG9ycykmJnMucHVzaChpcyhlLHQscikpLHMucHVzaChqdChuKSksbi5zdGF0aWMmJnMucHVzaChcInN0YXRpYyBcIikscy5wdXNoKF90KGUpKSxuLm92ZXJyaWRlJiZzLnB1c2goXCJvdmVycmlkZSBcIikscy5wdXNoKHNyKGUsdCxyKSksc31mdW5jdGlvbiBsbihlLHQscil7bGV0e25vZGU6bn09ZSxzPVtdLHU9dC5zZW1pP1wiO1wiOlwiXCI7YihuLmRlY29yYXRvcnMpJiZzLnB1c2goaXMoZSx0LHIpKSxzLnB1c2goanQobiksWihlKSksbi5zdGF0aWMmJnMucHVzaChcInN0YXRpYyBcIikscy5wdXNoKF90KGUpKSxuLm92ZXJyaWRlJiZzLnB1c2goXCJvdmVycmlkZSBcIiksbi5yZWFkb25seSYmcy5wdXNoKFwicmVhZG9ubHkgXCIpLG4udmFyaWFuY2UmJnMucHVzaChyKFwidmFyaWFuY2VcIikpLChuLnR5cGU9PT1cIkNsYXNzQWNjZXNzb3JQcm9wZXJ0eVwifHxuLnR5cGU9PT1cIkFjY2Vzc29yUHJvcGVydHlcInx8bi50eXBlPT09XCJUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eVwiKSYmcy5wdXNoKFwiYWNjZXNzb3IgXCIpLHMucHVzaChjdChlLHQsciksJChlKSxWcihlKSxxKGUscikpO2xldCBpPW4udHlwZT09PVwiVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvblwifHxuLnR5cGU9PT1cIlRTQWJzdHJhY3RBY2Nlc3NvclByb3BlcnR5XCI7cmV0dXJuW2Z0KGUsdCxyLHMsXCIgPVwiLGk/dm9pZCAwOlwidmFsdWVcIiksdV19ZnVuY3Rpb24gZmkoZSx0LHIpe2xldHtub2RlOm59PWUscz1bXTtyZXR1cm4gZS5lYWNoKCh7bm9kZTp1LG5leHQ6aSxpc0xhc3Q6YX0pPT57cy5wdXNoKHIoKSksIXQuc2VtaSYmbWkodSkmJkZjKHUsaSkmJnMucHVzaChcIjtcIiksYXx8KHMucHVzaChDKSxtZSh1LHQpJiZzLnB1c2goQykpfSxcImJvZHlcIiksZChuLHguRGFuZ2xpbmcpJiZzLnB1c2goTShlLHQpKSxbYihuLmJvZHkpP2ZzKGUucGFyZW50KTpcIlwiLFwie1wiLHMubGVuZ3RoPjA/W0UoW0Msc10pLENdOlwiXCIsXCJ9XCJdfWZ1bmN0aW9uIEZjKGUsdCl7dmFyIHM7bGV0e3R5cGU6cixuYW1lOm59PWUua2V5O2lmKCFlLmNvbXB1dGVkJiZyPT09XCJJZGVudGlmaWVyXCImJihuPT09XCJzdGF0aWNcInx8bj09PVwiZ2V0XCJ8fG49PT1cInNldFwiKSYmIWUudmFsdWUmJiFlLnR5cGVBbm5vdGF0aW9uKXJldHVybiEwO2lmKCF0fHx0LnN0YXRpY3x8dC5hY2Nlc3NpYmlsaXR5KXJldHVybiExO2lmKCF0LmNvbXB1dGVkKXtsZXQgdT0ocz10LmtleSk9PW51bGw/dm9pZCAwOnMubmFtZTtpZih1PT09XCJpblwifHx1PT09XCJpbnN0YW5jZW9mXCIpcmV0dXJuITB9aWYobWkodCkmJnQudmFyaWFuY2UmJiF0LnN0YXRpYyYmIXQuZGVjbGFyZSlyZXR1cm4hMDtzd2l0Y2godC50eXBlKXtjYXNlXCJDbGFzc1Byb3BlcnR5XCI6Y2FzZVwiUHJvcGVydHlEZWZpbml0aW9uXCI6Y2FzZVwiVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvblwiOnJldHVybiB0LmNvbXB1dGVkO2Nhc2VcIk1ldGhvZERlZmluaXRpb25cIjpjYXNlXCJUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvblwiOmNhc2VcIkNsYXNzTWV0aG9kXCI6Y2FzZVwiQ2xhc3NQcml2YXRlTWV0aG9kXCI6e2lmKCh0LnZhbHVlP3QudmFsdWUuYXN5bmM6dC5hc3luYyl8fHQua2luZD09PVwiZ2V0XCJ8fHQua2luZD09PVwic2V0XCIpcmV0dXJuITE7bGV0IGk9dC52YWx1ZT90LnZhbHVlLmdlbmVyYXRvcjp0LmdlbmVyYXRvcjtyZXR1cm4hISh0LmNvbXB1dGVkfHxpKX1jYXNlXCJUU0luZGV4U2lnbmF0dXJlXCI6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gRXQoZSx0LHIpe3ZhciBSO2xldCBuPXQuc2VtaT9cIjtcIjpcIlwiLHtub2RlOnN9PWUsdT1zLnR5cGU9PT1cIk9iamVjdFR5cGVBbm5vdGF0aW9uXCIsaT1zLnR5cGU9PT1cIlRTRW51bURlY2xhcmF0aW9uXCJ8fHMudHlwZT09PVwiRW51bUJvb2xlYW5Cb2R5XCJ8fHMudHlwZT09PVwiRW51bU51bWJlckJvZHlcInx8cy50eXBlPT09XCJFbnVtU3RyaW5nQm9keVwifHxzLnR5cGU9PT1cIkVudW1TeW1ib2xCb2R5XCIsYT1bcy50eXBlPT09XCJUU1R5cGVMaXRlcmFsXCJ8fGk/XCJtZW1iZXJzXCI6cy50eXBlPT09XCJUU0ludGVyZmFjZUJvZHlcIj9cImJvZHlcIjpcInByb3BlcnRpZXNcIl07dSYmYS5wdXNoKFwiaW5kZXhlcnNcIixcImNhbGxQcm9wZXJ0aWVzXCIsXCJpbnRlcm5hbFNsb3RzXCIpO2xldCBvPWEuZmxhdE1hcChUPT5lLm1hcCgoe25vZGU6Tn0pPT4oe25vZGU6TixwcmludGVkOnIoKSxsb2M6VShOKX0pLFQpKTthLmxlbmd0aD4xJiZvLnNvcnQoKFQsTik9PlQubG9jLU4ubG9jKTtsZXR7cGFyZW50OnAsa2V5Om19PWUsRD11JiZtPT09XCJib2R5XCImJihwLnR5cGU9PT1cIkludGVyZmFjZURlY2xhcmF0aW9uXCJ8fHAudHlwZT09PVwiRGVjbGFyZUludGVyZmFjZVwifHxwLnR5cGU9PT1cIkRlY2xhcmVDbGFzc1wiKSxjPXMudHlwZT09PVwiVFNJbnRlcmZhY2VCb2R5XCJ8fGl8fER8fHMudHlwZT09PVwiT2JqZWN0UGF0dGVyblwiJiZwLnR5cGUhPT1cIkZ1bmN0aW9uRGVjbGFyYXRpb25cIiYmcC50eXBlIT09XCJGdW5jdGlvbkV4cHJlc3Npb25cIiYmcC50eXBlIT09XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiJiZwLnR5cGUhPT1cIk9iamVjdE1ldGhvZFwiJiZwLnR5cGUhPT1cIkNsYXNzTWV0aG9kXCImJnAudHlwZSE9PVwiQ2xhc3NQcml2YXRlTWV0aG9kXCImJnAudHlwZSE9PVwiQXNzaWdubWVudFBhdHRlcm5cIiYmcC50eXBlIT09XCJDYXRjaENsYXVzZVwiJiZzLnByb3BlcnRpZXMuc29tZShUPT5ULnZhbHVlJiYoVC52YWx1ZS50eXBlPT09XCJPYmplY3RQYXR0ZXJuXCJ8fFQudmFsdWUudHlwZT09PVwiQXJyYXlQYXR0ZXJuXCIpKXx8cy50eXBlIT09XCJPYmplY3RQYXR0ZXJuXCImJm8ubGVuZ3RoPjAmJnJ0KHQub3JpZ2luYWxUZXh0LFUocyksb1swXS5sb2MpLGY9RD9cIjtcIjpzLnR5cGU9PT1cIlRTSW50ZXJmYWNlQm9keVwifHxzLnR5cGU9PT1cIlRTVHlwZUxpdGVyYWxcIj9QKG4sXCI7XCIpOlwiLFwiLGw9cy50eXBlPT09XCJSZWNvcmRFeHByZXNzaW9uXCI/XCIje1wiOnMuZXhhY3Q/XCJ7fFwiOlwie1wiLGg9cy5leGFjdD9cInx9XCI6XCJ9XCIsZz1bXSxTPW8ubWFwKFQ9PntsZXQgTj1bLi4uZyx5KFQucHJpbnRlZCldO3JldHVybiBnPVtmLEFdLChULm5vZGUudHlwZT09PVwiVFNQcm9wZXJ0eVNpZ25hdHVyZVwifHxULm5vZGUudHlwZT09PVwiVFNNZXRob2RTaWduYXR1cmVcInx8VC5ub2RlLnR5cGU9PT1cIlRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb25cInx8VC5ub2RlLnR5cGU9PT1cIlRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uXCIpJiZkKFQubm9kZSx4LlByZXR0aWVySWdub3JlKSYmZy5zaGlmdCgpLG1lKFQubm9kZSx0KSYmZy5wdXNoKEMpLE59KTtpZihzLmluZXhhY3R8fHMuaGFzVW5rbm93bk1lbWJlcnMpe2xldCBUO2lmKGQocyx4LkRhbmdsaW5nKSl7bGV0IE49ZChzLHguTGluZSk7VD1bTShlLHQpLE58fHoodC5vcmlnaW5hbFRleHQsTyh3KCExLEt0KHMpLC0xKSkpP0M6QSxcIi4uLlwiXX1lbHNlIFQ9W1wiLi4uXCJdO1MucHVzaChbLi4uZywuLi5UXSl9bGV0IEk9KFI9dyghMSxvLC0xKSk9PW51bGw/dm9pZCAwOlIubm9kZSx2PSEocy5pbmV4YWN0fHxzLmhhc1Vua25vd25NZW1iZXJzfHxJJiYoSS50eXBlPT09XCJSZXN0RWxlbWVudFwifHwoSS50eXBlPT09XCJUU1Byb3BlcnR5U2lnbmF0dXJlXCJ8fEkudHlwZT09PVwiVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb25cInx8SS50eXBlPT09XCJUU01ldGhvZFNpZ25hdHVyZVwifHxJLnR5cGU9PT1cIlRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb25cIikmJmQoSSx4LlByZXR0aWVySWdub3JlKSkpLF87aWYoUy5sZW5ndGg9PT0wKXtpZighZChzLHguRGFuZ2xpbmcpKXJldHVybltsLGgscShlLHIpXTtfPXkoW2wsTShlLHQse2luZGVudDohMH0pLEYsaCwkKGUpLHEoZSxyKV0pfWVsc2UgXz1bRCYmYihzLnByb3BlcnRpZXMpP2ZzKHApOlwiXCIsbCxFKFt0LmJyYWNrZXRTcGFjaW5nP0E6RiwuLi5TXSksUCh2JiYoZiE9PVwiLFwifHxsZSh0KSk/ZjpcIlwiKSx0LmJyYWNrZXRTcGFjaW5nP0E6RixoLCQoZSkscShlLHIpXTtyZXR1cm4gZS5tYXRjaChUPT5ULnR5cGU9PT1cIk9iamVjdFBhdHRlcm5cIiYmIWIoVC5kZWNvcmF0b3JzKSxFcyl8fGtlKHMpJiYoZS5tYXRjaCh2b2lkIDAsKFQsTik9Pk49PT1cInR5cGVBbm5vdGF0aW9uXCIsKFQsTik9Pk49PT1cInR5cGVBbm5vdGF0aW9uXCIsRXMpfHxlLm1hdGNoKHZvaWQgMCwoVCxOKT0+VC50eXBlPT09XCJGdW5jdGlvblR5cGVQYXJhbVwiJiZOPT09XCJ0eXBlQW5ub3RhdGlvblwiLEVzKSl8fCFjJiZlLm1hdGNoKFQ9PlQudHlwZT09PVwiT2JqZWN0UGF0dGVyblwiLFQ9PlQudHlwZT09PVwiQXNzaWdubWVudEV4cHJlc3Npb25cInx8VC50eXBlPT09XCJWYXJpYWJsZURlY2xhcmF0b3JcIik/Xzp5KF8se3Nob3VsZEJyZWFrOmN9KX1mdW5jdGlvbiBFcyhlLHQpe3JldHVybih0PT09XCJwYXJhbXNcInx8dD09PVwicGFyYW1ldGVyc1wifHx0PT09XCJ0aGlzXCJ8fHQ9PT1cInJlc3RcIikmJm5zKGUpfXZhciBGcz1uZXcgV2Vha01hcDtmdW5jdGlvbiBFaShlKXtyZXR1cm4gRnMuaGFzKGUpfHxGcy5zZXQoZSxlLnR5cGU9PT1cIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiJiYhcmUoZSx0PT50LnR5cGU9PT1cIk9iamVjdEV4cHJlc3Npb25cIikpLEZzLmdldChlKX12YXIgRmk9ZT0+ZS50eXBlPT09XCJTZXF1ZW5jZUV4cHJlc3Npb25cIjtmdW5jdGlvbiBDaShlLHQscixuPXt9KXtsZXQgcz1bXSx1LGk9W10sYT0hMSxvPSFuLmV4cGFuZExhc3RBcmcmJmUubm9kZS5ib2R5LnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIscDsoZnVuY3Rpb24gZygpe2xldHtub2RlOlN9PWUsST1DYyhlLHQscixuKTtpZihzLmxlbmd0aD09PTApcy5wdXNoKEkpO2Vsc2V7bGV0e2xlYWRpbmc6dix0cmFpbGluZzpffT1ObihlLHQpO3MucHVzaChbdixJXSksaS51bnNoaWZ0KF8pfW8mJihhfHwoYT1TLnJldHVyblR5cGUmJlgoUykubGVuZ3RoPjB8fFMudHlwZVBhcmFtZXRlcnN8fFgoUykuc29tZSh2PT52LnR5cGUhPT1cIklkZW50aWZpZXJcIikpKSwhb3x8Uy5ib2R5LnR5cGUhPT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCI/KHU9cihcImJvZHlcIixuKSxwPVMuYm9keSk6ZS5jYWxsKGcsXCJib2R5XCIpfSkoKTtsZXQgbT0hSWUodC5vcmlnaW5hbFRleHQscCkmJihGaShwKXx8ZGMocCx1LHQpfHwhYSYmRWkocCkpLEQ9ZS5rZXk9PT1cImNhbGxlZVwiJiZpdChlLnBhcmVudCksYz1TeW1ib2woXCJhcnJvdy1jaGFpblwiKSxmPUFjKGUsbix7c2lnbmF0dXJlRG9jczpzLHNob3VsZEJyZWFrOmF9KSxsLGg9ITE7cmV0dXJuIG8mJihEfHxuLmFzc2lnbm1lbnRMYXlvdXQpJiYoaD0hMCxsPW4uYXNzaWdubWVudExheW91dD09PVwiY2hhaW4tdGFpbC1hcnJvdy1jaGFpblwifHxEJiYhbSksdT1UYyhlLHQsbix7Ym9keURvYzp1LGJvZHlDb21tZW50czppLGZ1bmN0aW9uQm9keTpwLHNob3VsZFB1dEJvZHlPblNhbWVMaW5lOm19KSx5KFt5KGg/RShbRixmXSk6Zix7c2hvdWxkQnJlYWs6bCxpZDpjfSksXCIgPT5cIixvP210KHUse2dyb3VwSWQ6Y30pOnkodSksbyYmRD9QKEYsXCJcIix7Z3JvdXBJZDpjfSk6XCJcIl0pfWZ1bmN0aW9uIENjKGUsdCxyLG4pe2xldHtub2RlOnN9PWUsdT1bXTtpZihzLmFzeW5jJiZ1LnB1c2goXCJhc3luYyBcIiksYW4oZSx0KSl1LnB1c2gocihbXCJwYXJhbXNcIiwwXSkpO2Vsc2V7bGV0IGE9bi5leHBhbmRMYXN0QXJnfHxuLmV4cGFuZEZpcnN0QXJnLG89b24oZSxyKTtpZihhKXtpZihLKG8pKXRocm93IG5ldyBhdDtvPXkoVXQobykpfXUucHVzaCh5KFtvdChlLHIsdCxhLCEwKSxvXSkpfWxldCBpPU0oZSx0LHtmaWx0ZXIoYSl7bGV0IG89WGUodC5vcmlnaW5hbFRleHQsTyhhKSk7cmV0dXJuIG8hPT0hMSYmdC5vcmlnaW5hbFRleHQuc2xpY2UobyxvKzIpPT09XCI9PlwifX0pO3JldHVybiBpJiZ1LnB1c2goXCIgXCIsaSksdX1mdW5jdGlvbiBkYyhlLHQscil7dmFyIG4scztyZXR1cm4gRyhlKXx8ZWUoZSl8fGUudHlwZT09PVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cInx8ZS50eXBlPT09XCJEb0V4cHJlc3Npb25cInx8ZS50eXBlPT09XCJCbG9ja1N0YXRlbWVudFwifHxZKGUpfHwoKG49dC5sYWJlbCk9PW51bGw/dm9pZCAwOm4uaHVnKSE9PSExJiYoKChzPXQubGFiZWwpPT1udWxsP3ZvaWQgMDpzLmVtYmVkKXx8eHIoZSxyLm9yaWdpbmFsVGV4dCkpfWZ1bmN0aW9uIEFjKGUsdCx7c2lnbmF0dXJlRG9jczpyLHNob3VsZEJyZWFrOm59KXtpZihyLmxlbmd0aD09PTEpcmV0dXJuIHJbMF07bGV0e3BhcmVudDpzLGtleTp1fT1lO3JldHVybiB1IT09XCJjYWxsZWVcIiYmaXQocyl8fGNlKHMpP3koW3JbMF0sXCIgPT5cIixFKFtBLEIoW1wiID0+XCIsQV0sci5zbGljZSgxKSldKV0se3Nob3VsZEJyZWFrOm59KTp1PT09XCJjYWxsZWVcIiYmaXQocyl8fHQuYXNzaWdubWVudExheW91dD95KEIoW1wiID0+XCIsQV0scikse3Nob3VsZEJyZWFrOm59KTp5KEUoQihbXCIgPT5cIixBXSxyKSkse3Nob3VsZEJyZWFrOm59KX1mdW5jdGlvbiBUYyhlLHQscix7Ym9keURvYzpuLGJvZHlDb21tZW50czpzLGZ1bmN0aW9uQm9keTp1LHNob3VsZFB1dEJvZHlPblNhbWVMaW5lOml9KXtsZXR7bm9kZTphLHBhcmVudDpvfT1lLHA9ci5leHBhbmRMYXN0QXJnJiZsZSh0LFwiYWxsXCIpP1AoXCIsXCIpOlwiXCIsbT0oci5leHBhbmRMYXN0QXJnfHxvLnR5cGU9PT1cIkpTWEV4cHJlc3Npb25Db250YWluZXJcIikmJiFkKGEpP0Y6XCJcIjtyZXR1cm4gaSYmRWkodSk/W1wiIFwiLHkoW1AoXCJcIixcIihcIiksRShbRixuXSksUChcIlwiLFwiKVwiKSxwLG1dKSxzXTooRmkodSkmJihuPXkoW1wiKFwiLEUoW0Ysbl0pLEYsXCIpXCJdKSksaT9bXCIgXCIsbixzXTpbRShbQSxuLHNdKSxwLG1dKX1mdW5jdGlvbiB1cihlLHQscixuKXtsZXR7bm9kZTpzfT1lLHU9W10saT14YyhzW25dKTtyZXR1cm4gZS5lYWNoKCh7bm9kZTphfSk9PnthLnR5cGUhPT1cIkVtcHR5U3RhdGVtZW50XCImJih1LnB1c2gocigpKSxhIT09aSYmKHUucHVzaChDKSxtZShhLHQpJiZ1LnB1c2goQykpKX0sbiksdX1mdW5jdGlvbiB4YyhlKXtmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSl7bGV0IHI9ZVt0XTtpZihyLnR5cGUhPT1cIkVtcHR5U3RhdGVtZW50XCIpcmV0dXJuIHJ9fWZ1bmN0aW9uIG1uKGUsdCxyKXtsZXR7bm9kZTpufT1lLHM9W107bi50eXBlPT09XCJTdGF0aWNCbG9ja1wiJiZzLnB1c2goXCJzdGF0aWMgXCIpLHMucHVzaChcIntcIik7bGV0IHU9Q3MoZSx0LHIpO2lmKHUpcy5wdXNoKEUoW0MsdV0pLEMpO2Vsc2V7bGV0e3BhcmVudDppfT1lLGE9ZS5ncmFuZHBhcmVudDtpLnR5cGU9PT1cIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCJ8fGkudHlwZT09PVwiRnVuY3Rpb25FeHByZXNzaW9uXCJ8fGkudHlwZT09PVwiRnVuY3Rpb25EZWNsYXJhdGlvblwifHxpLnR5cGU9PT1cIk9iamVjdE1ldGhvZFwifHxpLnR5cGU9PT1cIkNsYXNzTWV0aG9kXCJ8fGkudHlwZT09PVwiQ2xhc3NQcml2YXRlTWV0aG9kXCJ8fGkudHlwZT09PVwiRm9yU3RhdGVtZW50XCJ8fGkudHlwZT09PVwiV2hpbGVTdGF0ZW1lbnRcInx8aS50eXBlPT09XCJEb1doaWxlU3RhdGVtZW50XCJ8fGkudHlwZT09PVwiRG9FeHByZXNzaW9uXCJ8fGkudHlwZT09PVwiQ2F0Y2hDbGF1c2VcIiYmIWEuZmluYWxpemVyfHxpLnR5cGU9PT1cIlRTTW9kdWxlRGVjbGFyYXRpb25cInx8aS50eXBlPT09XCJUU0RlY2xhcmVGdW5jdGlvblwifHxuLnR5cGU9PT1cIlN0YXRpY0Jsb2NrXCJ8fHMucHVzaChDKX1yZXR1cm4gcy5wdXNoKFwifVwiKSxzfWZ1bmN0aW9uIENzKGUsdCxyKXt2YXIgbztsZXR7bm9kZTpufT1lLHM9YihuLmRpcmVjdGl2ZXMpLHU9bi5ib2R5LnNvbWUocD0+cC50eXBlIT09XCJFbXB0eVN0YXRlbWVudFwiKSxpPWQobix4LkRhbmdsaW5nKTtpZighcyYmIXUmJiFpKXJldHVyblwiXCI7bGV0IGE9W107cmV0dXJuIHMmJihhLnB1c2godXIoZSx0LHIsXCJkaXJlY3RpdmVzXCIpKSwodXx8aSkmJihhLnB1c2goQyksbWUodyghMSxuLmRpcmVjdGl2ZXMsLTEpLHQpJiZhLnB1c2goQykpKSx1JiZhLnB1c2godXIoZSx0LHIsXCJib2R5XCIpKSxpJiZhLnB1c2goTShlLHQpKSxuLnR5cGU9PT1cIlByb2dyYW1cIiYmKChvPWUucGFyZW50KT09bnVsbD92b2lkIDA6by50eXBlKSE9PVwiTW9kdWxlRXhwcmVzc2lvblwiJiZhLnB1c2goQyksYX1mdW5jdGlvbiBkaShlLHQpe2lmKHQuc2VtaXx8ZHMoZSx0KXx8VHMoZSx0KSlyZXR1cm4hMTtsZXR7bm9kZTpyLGtleTpuLHBhcmVudDpzfT1lO3JldHVybiEhKHIudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwiJiYobj09PVwiYm9keVwiJiYocy50eXBlPT09XCJQcm9ncmFtXCJ8fHMudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcInx8cy50eXBlPT09XCJTdGF0aWNCbG9ja1wifHxzLnR5cGU9PT1cIlRTTW9kdWxlQmxvY2tcIil8fG49PT1cImNvbnNlcXVlbnRcIiYmcy50eXBlPT09XCJTd2l0Y2hDYXNlXCIpJiZlLmNhbGwoKCk9PkFpKGUsdCksXCJleHByZXNzaW9uXCIpKX1mdW5jdGlvbiBBaShlLHQpe2xldHtub2RlOnJ9PWU7c3dpdGNoKHIudHlwZSl7Y2FzZVwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIjpjYXNlXCJUeXBlQ2FzdEV4cHJlc3Npb25cIjpjYXNlXCJBcnJheUV4cHJlc3Npb25cIjpjYXNlXCJBcnJheVBhdHRlcm5cIjpjYXNlXCJUZW1wbGF0ZUxpdGVyYWxcIjpjYXNlXCJUZW1wbGF0ZUVsZW1lbnRcIjpjYXNlXCJSZWdFeHBMaXRlcmFsXCI6cmV0dXJuITA7Y2FzZVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIjppZighYW4oZSx0KSlyZXR1cm4hMDticmVhaztjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjp7bGV0e3ByZWZpeDpuLG9wZXJhdG9yOnN9PXI7aWYobiYmKHM9PT1cIitcInx8cz09PVwiLVwiKSlyZXR1cm4hMDticmVha31jYXNlXCJCaW5kRXhwcmVzc2lvblwiOmlmKCFyLm9iamVjdClyZXR1cm4hMDticmVhaztjYXNlXCJMaXRlcmFsXCI6aWYoci5yZWdleClyZXR1cm4hMDticmVhaztkZWZhdWx0OmlmKFkocikpcmV0dXJuITB9cmV0dXJuIHdlKGUsdCk/ITA6THQocik/ZS5jYWxsKCgpPT5BaShlLHQpLC4uLmRyKHIpKTohMX1mdW5jdGlvbiBkcyh7bm9kZTplLHBhcmVudDp0fSxyKXtyZXR1cm4oci5wYXJlbnRQYXJzZXI9PT1cIm1hcmtkb3duXCJ8fHIucGFyZW50UGFyc2VyPT09XCJtZHhcIikmJmUudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwiJiZZKGUuZXhwcmVzc2lvbikmJnQudHlwZT09PVwiUHJvZ3JhbVwiJiZ0LmJvZHkubGVuZ3RoPT09MX1mdW5jdGlvbiBBcyhlKXtzd2l0Y2goZS50eXBlKXtjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6c3dpdGNoKGUucHJvcGVydHkudHlwZSl7Y2FzZVwiSWRlbnRpZmllclwiOmNhc2VcIk51bWVyaWNMaXRlcmFsXCI6Y2FzZVwiU3RyaW5nTGl0ZXJhbFwiOnJldHVybiBBcyhlLm9iamVjdCl9cmV0dXJuITE7Y2FzZVwiSWRlbnRpZmllclwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFRzKHtub2RlOmUscGFyZW50OnR9LHIpe3JldHVybihyLnBhcnNlcj09PVwiX192dWVfZXZlbnRfYmluZGluZ1wifHxyLnBhcnNlcj09PVwiX192dWVfdHNfZXZlbnRfYmluZGluZ1wiKSYmZS50eXBlPT09XCJFeHByZXNzaW9uU3RhdGVtZW50XCImJnQudHlwZT09PVwiUHJvZ3JhbVwiJiZ0LmJvZHkubGVuZ3RoPT09MX1mdW5jdGlvbiBUaShlLHQscil7bGV0IG49W3IoXCJleHByZXNzaW9uXCIpXTtyZXR1cm4gVHMoZSx0KT9BcyhlLm5vZGUuZXhwcmVzc2lvbikmJm4ucHVzaChcIjtcIik6ZHMoZSx0KXx8dC5zZW1pJiZuLnB1c2goXCI7XCIpLGQoZS5ub2RlLHguRGFuZ2xpbmcsKHttYXJrZXI6c30pPT5zPT09enQpJiZuLnB1c2goXCIgXCIsTShlLHQse21hcmtlcjp6dH0pKSxufWZ1bmN0aW9uIHhpKGUsdCxyKXtpZih0Ll9faXNWdWVCaW5kaW5nc3x8dC5fX2lzVnVlRm9yQmluZGluZ0xlZnQpe2xldCBuPWUubWFwKHIsXCJwcm9ncmFtXCIsXCJib2R5XCIsMCxcInBhcmFtc1wiKTtpZihuLmxlbmd0aD09PTEpcmV0dXJuIG5bMF07bGV0IHM9QihbXCIsXCIsQV0sbik7cmV0dXJuIHQuX19pc1Z1ZUZvckJpbmRpbmdMZWZ0P1tcIihcIixFKFtGLHkocyldKSxGLFwiKVwiXTpzfWlmKHQuX19pc0VtYmVkZGVkVHlwZXNjcmlwdEdlbmVyaWNQYXJhbWV0ZXJzKXtsZXQgbj1lLm1hcChyLFwicHJvZ3JhbVwiLFwiYm9keVwiLDAsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1zXCIpO3JldHVybiBCKFtcIixcIixBXSxuKX19ZnVuY3Rpb24gZ2koZSx0LHIsbil7bGV0e25vZGU6c309ZTtpZih2cihzKSlyZXR1cm4gdnUoZSx0KTtsZXQgdT10LnNlbWk/XCI7XCI6XCJcIixpPVtdO3N3aXRjaChzLnR5cGUpe2Nhc2VcIkpzRXhwcmVzc2lvblJvb3RcIjpyZXR1cm4gcihcIm5vZGVcIik7Y2FzZVwiSnNvblJvb3RcIjpyZXR1cm5bcihcIm5vZGVcIiksQ107Y2FzZVwiRmlsZVwiOnJldHVybiB4aShlLHQscik/P3IoXCJwcm9ncmFtXCIpO2Nhc2VcIlByb2dyYW1cIjpyZXR1cm4gQ3MoZSx0LHIpO2Nhc2VcIkVtcHR5U3RhdGVtZW50XCI6cmV0dXJuXCJcIjtjYXNlXCJFeHByZXNzaW9uU3RhdGVtZW50XCI6cmV0dXJuIFRpKGUsdCxyKTtjYXNlXCJDaGFpbkV4cHJlc3Npb25cIjpyZXR1cm4gcihcImV4cHJlc3Npb25cIik7Y2FzZVwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIjpyZXR1cm4hZChzLmV4cHJlc3Npb24pJiYoZWUocy5leHByZXNzaW9uKXx8RyhzLmV4cHJlc3Npb24pKT9bXCIoXCIscihcImV4cHJlc3Npb25cIiksXCIpXCJdOnkoW1wiKFwiLEUoW0YscihcImV4cHJlc3Npb25cIildKSxGLFwiKVwiXSk7Y2FzZVwiQXNzaWdubWVudEV4cHJlc3Npb25cIjpyZXR1cm4ganUoZSx0LHIpO2Nhc2VcIlZhcmlhYmxlRGVjbGFyYXRvclwiOnJldHVybiBNdShlLHQscik7Y2FzZVwiQmluYXJ5RXhwcmVzc2lvblwiOmNhc2VcIkxvZ2ljYWxFeHByZXNzaW9uXCI6cmV0dXJuIElyKGUsdCxyKTtjYXNlXCJBc3NpZ25tZW50UGF0dGVyblwiOnJldHVybltyKFwibGVmdFwiKSxcIiA9IFwiLHIoXCJyaWdodFwiKV07Y2FzZVwiT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uXCI6Y2FzZVwiTWVtYmVyRXhwcmVzc2lvblwiOnJldHVybiBrdShlLHQscik7Y2FzZVwiTWV0YVByb3BlcnR5XCI6cmV0dXJuW3IoXCJtZXRhXCIpLFwiLlwiLHIoXCJwcm9wZXJ0eVwiKV07Y2FzZVwiQmluZEV4cHJlc3Npb25cIjpyZXR1cm4gcy5vYmplY3QmJmkucHVzaChyKFwib2JqZWN0XCIpKSxpLnB1c2goeShFKFtGLExyKGUsdCxyKV0pKSksaTtjYXNlXCJJZGVudGlmaWVyXCI6cmV0dXJuW3MubmFtZSwkKGUpLFZyKGUpLHEoZSxyKV07Y2FzZVwiVjhJbnRyaW5zaWNJZGVudGlmaWVyXCI6cmV0dXJuW1wiJVwiLHMubmFtZV07Y2FzZVwiU3ByZWFkRWxlbWVudFwiOmNhc2VcIlNwcmVhZEVsZW1lbnRQYXR0ZXJuXCI6Y2FzZVwiU3ByZWFkUHJvcGVydHlQYXR0ZXJuXCI6Y2FzZVwiUmVzdEVsZW1lbnRcIjpyZXR1cm4gSHIoZSxyKTtjYXNlXCJGdW5jdGlvbkRlY2xhcmF0aW9uXCI6Y2FzZVwiRnVuY3Rpb25FeHByZXNzaW9uXCI6cmV0dXJuIHNuKGUscix0LG4pO2Nhc2VcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCI6cmV0dXJuIENpKGUsdCxyLG4pO2Nhc2VcIllpZWxkRXhwcmVzc2lvblwiOnJldHVybiBpLnB1c2goXCJ5aWVsZFwiKSxzLmRlbGVnYXRlJiZpLnB1c2goXCIqXCIpLHMuYXJndW1lbnQmJmkucHVzaChcIiBcIixyKFwiYXJndW1lbnRcIikpLGk7Y2FzZVwiQXdhaXRFeHByZXNzaW9uXCI6aWYoaS5wdXNoKFwiYXdhaXRcIikscy5hcmd1bWVudCl7aS5wdXNoKFwiIFwiLHIoXCJhcmd1bWVudFwiKSk7bGV0e3BhcmVudDphfT1lO2lmKGsoYSkmJmEuY2FsbGVlPT09c3x8SihhKSYmYS5vYmplY3Q9PT1zKXtpPVtFKFtGLC4uLmldKSxGXTtsZXQgbz1lLmZpbmRBbmNlc3RvcihwPT5wLnR5cGU9PT1cIkF3YWl0RXhwcmVzc2lvblwifHxwLnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCIpO2lmKChvPT1udWxsP3ZvaWQgMDpvLnR5cGUpIT09XCJBd2FpdEV4cHJlc3Npb25cInx8IXJlKG8uYXJndW1lbnQscD0+cD09PXMpKXJldHVybiB5KGkpfX1yZXR1cm4gaTtjYXNlXCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIjpjYXNlXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCI6Y2FzZVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIjpyZXR1cm4gS3IoZSx0LHIpO2Nhc2VcIkltcG9ydERlY2xhcmF0aW9uXCI6cmV0dXJuICR1KGUsdCxyKTtjYXNlXCJJbXBvcnRTcGVjaWZpZXJcIjpjYXNlXCJFeHBvcnRTcGVjaWZpZXJcIjpjYXNlXCJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXJcIjpjYXNlXCJFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXJcIjpjYXNlXCJJbXBvcnREZWZhdWx0U3BlY2lmaWVyXCI6Y2FzZVwiRXhwb3J0RGVmYXVsdFNwZWNpZmllclwiOnJldHVybiBadShlLHQscik7Y2FzZVwiSW1wb3J0QXR0cmlidXRlXCI6cmV0dXJuW3IoXCJrZXlcIiksXCI6IFwiLHIoXCJ2YWx1ZVwiKV07Y2FzZVwiSW1wb3J0XCI6cmV0dXJuXCJpbXBvcnRcIjtjYXNlXCJCbG9ja1N0YXRlbWVudFwiOmNhc2VcIlN0YXRpY0Jsb2NrXCI6cmV0dXJuIG1uKGUsdCxyKTtjYXNlXCJDbGFzc0JvZHlcIjpyZXR1cm4gZmkoZSx0LHIpO2Nhc2VcIlRocm93U3RhdGVtZW50XCI6cmV0dXJuIGxpKGUsdCxyKTtjYXNlXCJSZXR1cm5TdGF0ZW1lbnRcIjpyZXR1cm4gY2koZSx0LHIpO2Nhc2VcIk5ld0V4cHJlc3Npb25cIjpjYXNlXCJJbXBvcnRFeHByZXNzaW9uXCI6Y2FzZVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiOmNhc2VcIkNhbGxFeHByZXNzaW9uXCI6cmV0dXJuIHdyKGUsdCxyKTtjYXNlXCJPYmplY3RFeHByZXNzaW9uXCI6Y2FzZVwiT2JqZWN0UGF0dGVyblwiOmNhc2VcIlJlY29yZEV4cHJlc3Npb25cIjpyZXR1cm4gRXQoZSx0LHIpO2Nhc2VcIk9iamVjdFByb3BlcnR5XCI6Y2FzZVwiUHJvcGVydHlcIjpyZXR1cm4gcy5tZXRob2R8fHMua2luZD09PVwiZ2V0XCJ8fHMua2luZD09PVwic2V0XCI/c3IoZSx0LHIpOm9pKGUsdCxyKTtjYXNlXCJPYmplY3RNZXRob2RcIjpyZXR1cm4gc3IoZSx0LHIpO2Nhc2VcIkRlY29yYXRvclwiOnJldHVybltcIkBcIixyKFwiZXhwcmVzc2lvblwiKV07Y2FzZVwiQXJyYXlFeHByZXNzaW9uXCI6Y2FzZVwiQXJyYXlQYXR0ZXJuXCI6Y2FzZVwiVHVwbGVFeHByZXNzaW9uXCI6cmV0dXJuIHZ0KGUsdCxyKTtjYXNlXCJTZXF1ZW5jZUV4cHJlc3Npb25cIjp7bGV0e3BhcmVudDphfT1lO2lmKGEudHlwZT09PVwiRXhwcmVzc2lvblN0YXRlbWVudFwifHxhLnR5cGU9PT1cIkZvclN0YXRlbWVudFwiKXtsZXQgbz1bXTtyZXR1cm4gZS5lYWNoKCh7aXNGaXJzdDpwfSk9PntwP28ucHVzaChyKCkpOm8ucHVzaChcIixcIixFKFtBLHIoKV0pKX0sXCJleHByZXNzaW9uc1wiKSx5KG8pfXJldHVybiB5KEIoW1wiLFwiLEFdLGUubWFwKHIsXCJleHByZXNzaW9uc1wiKSkpfWNhc2VcIlRoaXNFeHByZXNzaW9uXCI6cmV0dXJuXCJ0aGlzXCI7Y2FzZVwiU3VwZXJcIjpyZXR1cm5cInN1cGVyXCI7Y2FzZVwiRGlyZWN0aXZlXCI6cmV0dXJuW3IoXCJ2YWx1ZVwiKSx1XTtjYXNlXCJVbmFyeUV4cHJlc3Npb25cIjpyZXR1cm4gaS5wdXNoKHMub3BlcmF0b3IpLC9bYS16XSQvLnRlc3Qocy5vcGVyYXRvcikmJmkucHVzaChcIiBcIiksZChzLmFyZ3VtZW50KT9pLnB1c2goeShbXCIoXCIsRShbRixyKFwiYXJndW1lbnRcIildKSxGLFwiKVwiXSkpOmkucHVzaChyKFwiYXJndW1lbnRcIikpLGk7Y2FzZVwiVXBkYXRlRXhwcmVzc2lvblwiOnJldHVybiBpLnB1c2gocihcImFyZ3VtZW50XCIpLHMub3BlcmF0b3IpLHMucHJlZml4JiZpLnJldmVyc2UoKSxpO2Nhc2VcIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiOnJldHVybiBNdChlLHQscik7Y2FzZVwiVmFyaWFibGVEZWNsYXJhdGlvblwiOntsZXQgYT1lLm1hcChyLFwiZGVjbGFyYXRpb25zXCIpLG89ZS5wYXJlbnQscD1vLnR5cGU9PT1cIkZvclN0YXRlbWVudFwifHxvLnR5cGU9PT1cIkZvckluU3RhdGVtZW50XCJ8fG8udHlwZT09PVwiRm9yT2ZTdGF0ZW1lbnRcIixtPXMuZGVjbGFyYXRpb25zLnNvbWUoYz0+Yy5pbml0KSxEO3JldHVybiBhLmxlbmd0aD09PTEmJiFkKHMuZGVjbGFyYXRpb25zWzBdKT9EPWFbMF06YS5sZW5ndGg+MCYmKEQ9RShhWzBdKSksaT1bWihlKSxzLmtpbmQsRD9bXCIgXCIsRF06XCJcIixFKGEuc2xpY2UoMSkubWFwKGM9PltcIixcIixtJiYhcD9DOkEsY10pKV0scCYmby5ib2R5IT09c3x8aS5wdXNoKHUpLHkoaSl9Y2FzZVwiV2l0aFN0YXRlbWVudFwiOnJldHVybiB5KFtcIndpdGggKFwiLHIoXCJvYmplY3RcIiksXCIpXCIscHQocy5ib2R5LHIoXCJib2R5XCIpKV0pO2Nhc2VcIklmU3RhdGVtZW50XCI6e2xldCBhPXB0KHMuY29uc2VxdWVudCxyKFwiY29uc2VxdWVudFwiKSksbz15KFtcImlmIChcIix5KFtFKFtGLHIoXCJ0ZXN0XCIpXSksRl0pLFwiKVwiLGFdKTtpZihpLnB1c2gobykscy5hbHRlcm5hdGUpe2xldCBwPWQocy5jb25zZXF1ZW50LHguVHJhaWxpbmd8eC5MaW5lKXx8Z3IocyksbT1zLmNvbnNlcXVlbnQudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIiYmIXA7aS5wdXNoKG0/XCIgXCI6QyksZChzLHguRGFuZ2xpbmcpJiZpLnB1c2goTShlLHQpLHA/QzpcIiBcIiksaS5wdXNoKFwiZWxzZVwiLHkocHQocy5hbHRlcm5hdGUscihcImFsdGVybmF0ZVwiKSxzLmFsdGVybmF0ZS50eXBlPT09XCJJZlN0YXRlbWVudFwiKSkpfXJldHVybiBpfWNhc2VcIkZvclN0YXRlbWVudFwiOntsZXQgYT1wdChzLmJvZHkscihcImJvZHlcIikpLG89TShlLHQpLHA9bz9bbyxGXTpcIlwiO3JldHVybiFzLmluaXQmJiFzLnRlc3QmJiFzLnVwZGF0ZT9bcCx5KFtcImZvciAoOzspXCIsYV0pXTpbcCx5KFtcImZvciAoXCIseShbRShbRixyKFwiaW5pdFwiKSxcIjtcIixBLHIoXCJ0ZXN0XCIpLFwiO1wiLEEscihcInVwZGF0ZVwiKV0pLEZdKSxcIilcIixhXSldfWNhc2VcIldoaWxlU3RhdGVtZW50XCI6cmV0dXJuIHkoW1wid2hpbGUgKFwiLHkoW0UoW0YscihcInRlc3RcIildKSxGXSksXCIpXCIscHQocy5ib2R5LHIoXCJib2R5XCIpKV0pO2Nhc2VcIkZvckluU3RhdGVtZW50XCI6cmV0dXJuIHkoW1wiZm9yIChcIixyKFwibGVmdFwiKSxcIiBpbiBcIixyKFwicmlnaHRcIiksXCIpXCIscHQocy5ib2R5LHIoXCJib2R5XCIpKV0pO2Nhc2VcIkZvck9mU3RhdGVtZW50XCI6cmV0dXJuIHkoW1wiZm9yXCIscy5hd2FpdD9cIiBhd2FpdFwiOlwiXCIsXCIgKFwiLHIoXCJsZWZ0XCIpLFwiIG9mIFwiLHIoXCJyaWdodFwiKSxcIilcIixwdChzLmJvZHkscihcImJvZHlcIikpXSk7Y2FzZVwiRG9XaGlsZVN0YXRlbWVudFwiOntsZXQgYT1wdChzLmJvZHkscihcImJvZHlcIikpO3JldHVybiBpPVt5KFtcImRvXCIsYV0pXSxzLmJvZHkudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIj9pLnB1c2goXCIgXCIpOmkucHVzaChDKSxpLnB1c2goXCJ3aGlsZSAoXCIseShbRShbRixyKFwidGVzdFwiKV0pLEZdKSxcIilcIix1KSxpfWNhc2VcIkRvRXhwcmVzc2lvblwiOnJldHVybltzLmFzeW5jP1wiYXN5bmMgXCI6XCJcIixcImRvIFwiLHIoXCJib2R5XCIpXTtjYXNlXCJCcmVha1N0YXRlbWVudFwiOmNhc2VcIkNvbnRpbnVlU3RhdGVtZW50XCI6cmV0dXJuIGkucHVzaChzLnR5cGU9PT1cIkJyZWFrU3RhdGVtZW50XCI/XCJicmVha1wiOlwiY29udGludWVcIikscy5sYWJlbCYmaS5wdXNoKFwiIFwiLHIoXCJsYWJlbFwiKSksaS5wdXNoKHUpLGk7Y2FzZVwiTGFiZWxlZFN0YXRlbWVudFwiOnJldHVybiBzLmJvZHkudHlwZT09PVwiRW1wdHlTdGF0ZW1lbnRcIj9bcihcImxhYmVsXCIpLFwiOjtcIl06W3IoXCJsYWJlbFwiKSxcIjogXCIscihcImJvZHlcIildO2Nhc2VcIlRyeVN0YXRlbWVudFwiOnJldHVybltcInRyeSBcIixyKFwiYmxvY2tcIikscy5oYW5kbGVyP1tcIiBcIixyKFwiaGFuZGxlclwiKV06XCJcIixzLmZpbmFsaXplcj9bXCIgZmluYWxseSBcIixyKFwiZmluYWxpemVyXCIpXTpcIlwiXTtjYXNlXCJDYXRjaENsYXVzZVwiOmlmKHMucGFyYW0pe2xldCBhPWQocy5wYXJhbSxwPT4hYWUocCl8fHAubGVhZGluZyYmeih0Lm9yaWdpbmFsVGV4dCxPKHApKXx8cC50cmFpbGluZyYmeih0Lm9yaWdpbmFsVGV4dCxVKHApLHtiYWNrd2FyZHM6ITB9KSksbz1yKFwicGFyYW1cIik7cmV0dXJuW1wiY2F0Y2ggXCIsYT9bXCIoXCIsRShbRixvXSksRixcIikgXCJdOltcIihcIixvLFwiKSBcIl0scihcImJvZHlcIildfXJldHVybltcImNhdGNoIFwiLHIoXCJib2R5XCIpXTtjYXNlXCJTd2l0Y2hTdGF0ZW1lbnRcIjpyZXR1cm5beShbXCJzd2l0Y2ggKFwiLEUoW0YscihcImRpc2NyaW1pbmFudFwiKV0pLEYsXCIpXCJdKSxcIiB7XCIscy5jYXNlcy5sZW5ndGg+MD9FKFtDLEIoQyxlLm1hcCgoe25vZGU6YSxpc0xhc3Q6b30pPT5bcigpLCFvJiZtZShhLHQpP0M6XCJcIl0sXCJjYXNlc1wiKSldKTpcIlwiLEMsXCJ9XCJdO2Nhc2VcIlN3aXRjaENhc2VcIjp7cy50ZXN0P2kucHVzaChcImNhc2UgXCIscihcInRlc3RcIiksXCI6XCIpOmkucHVzaChcImRlZmF1bHQ6XCIpLGQocyx4LkRhbmdsaW5nKSYmaS5wdXNoKFwiIFwiLE0oZSx0KSk7bGV0IGE9cy5jb25zZXF1ZW50LmZpbHRlcihvPT5vLnR5cGUhPT1cIkVtcHR5U3RhdGVtZW50XCIpO2lmKGEubGVuZ3RoPjApe2xldCBvPXVyKGUsdCxyLFwiY29uc2VxdWVudFwiKTtpLnB1c2goYS5sZW5ndGg9PT0xJiZhWzBdLnR5cGU9PT1cIkJsb2NrU3RhdGVtZW50XCI/W1wiIFwiLG9dOkUoW0Msb10pKX1yZXR1cm4gaX1jYXNlXCJEZWJ1Z2dlclN0YXRlbWVudFwiOnJldHVybltcImRlYnVnZ2VyXCIsdV07Y2FzZVwiQ2xhc3NEZWNsYXJhdGlvblwiOmNhc2VcIkNsYXNzRXhwcmVzc2lvblwiOnJldHVybiBwbihlLHQscik7Y2FzZVwiQ2xhc3NNZXRob2RcIjpjYXNlXCJDbGFzc1ByaXZhdGVNZXRob2RcIjpjYXNlXCJNZXRob2REZWZpbml0aW9uXCI6cmV0dXJuIGNuKGUsdCxyKTtjYXNlXCJDbGFzc1Byb3BlcnR5XCI6Y2FzZVwiUHJvcGVydHlEZWZpbml0aW9uXCI6Y2FzZVwiQ2xhc3NQcml2YXRlUHJvcGVydHlcIjpjYXNlXCJDbGFzc0FjY2Vzc29yUHJvcGVydHlcIjpjYXNlXCJBY2Nlc3NvclByb3BlcnR5XCI6cmV0dXJuIGxuKGUsdCxyKTtjYXNlXCJUZW1wbGF0ZUVsZW1lbnRcIjpyZXR1cm4geGUocy52YWx1ZS5yYXcpO2Nhc2VcIlRlbXBsYXRlTGl0ZXJhbFwiOnJldHVybiBRcihlLHIsdCk7Y2FzZVwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCI6cmV0dXJuIHNpKHIpO2Nhc2VcIlByaXZhdGVJZGVudGlmaWVyXCI6cmV0dXJuW1wiI1wiLHMubmFtZV07Y2FzZVwiUHJpdmF0ZU5hbWVcIjpyZXR1cm5bXCIjXCIscihcImlkXCIpXTtjYXNlXCJUb3BpY1JlZmVyZW5jZVwiOnJldHVyblwiJVwiO2Nhc2VcIkFyZ3VtZW50UGxhY2Vob2xkZXJcIjpyZXR1cm5cIj9cIjtjYXNlXCJNb2R1bGVFeHByZXNzaW9uXCI6e2kucHVzaChcIm1vZHVsZSB7XCIpO2xldCBhPXIoXCJib2R5XCIpO3JldHVybiBhJiZpLnB1c2goRShbQyxhXSksQyksaS5wdXNoKFwifVwiKSxpfWNhc2VcIkludGVycHJldGVyRGlyZWN0aXZlXCI6ZGVmYXVsdDp0aHJvdyBuZXcgT2UocyxcIkVTVHJlZVwiKX19ZnVuY3Rpb24gU2koZSx0LHIpe2xldHtub2RlOm59PWU7aWYobi50eXBlLnN0YXJ0c1dpdGgoXCJOR1wiKSlzd2l0Y2gobi50eXBlKXtjYXNlXCJOR1Jvb3RcIjpyZXR1cm5bcihcIm5vZGVcIiksZChuLm5vZGUpP1wiIC8vXCIrS3Qobi5ub2RlKVswXS52YWx1ZS50cmltRW5kKCk6XCJcIl07Y2FzZVwiTkdQaXBlRXhwcmVzc2lvblwiOnJldHVybiBJcihlLHQscik7Y2FzZVwiTkdDaGFpbmVkRXhwcmVzc2lvblwiOnJldHVybiB5KEIoW1wiO1wiLEFdLGUubWFwKCgpPT5oYyhlKT9yKCk6W1wiKFwiLHIoKSxcIilcIl0sXCJleHByZXNzaW9uc1wiKSkpO2Nhc2VcIk5HRW1wdHlFeHByZXNzaW9uXCI6cmV0dXJuXCJcIjtjYXNlXCJOR01pY3Jvc3ludGF4XCI6cmV0dXJuIGUubWFwKCgpPT5bZS5pc0ZpcnN0P1wiXCI6aGkoZSk/XCIgXCI6W1wiO1wiLEFdLHIoKV0sXCJib2R5XCIpO2Nhc2VcIk5HTWljcm9zeW50YXhLZXlcIjpyZXR1cm4vXlskX2Etel1bXFx3JF0qKD86LVskX2Etel1bXFx3JF0pKiQvaS50ZXN0KG4ubmFtZSk/bi5uYW1lOkpTT04uc3RyaW5naWZ5KG4ubmFtZSk7Y2FzZVwiTkdNaWNyb3N5bnRheEV4cHJlc3Npb25cIjpyZXR1cm5bcihcImV4cHJlc3Npb25cIiksbi5hbGlhcz09PW51bGw/XCJcIjpbXCIgYXMgXCIscihcImFsaWFzXCIpXV07Y2FzZVwiTkdNaWNyb3N5bnRheEtleWVkRXhwcmVzc2lvblwiOntsZXR7aW5kZXg6cyxwYXJlbnQ6dX09ZSxpPWhpKGUpfHwocz09PTEmJihuLmtleS5uYW1lPT09XCJ0aGVuXCJ8fG4ua2V5Lm5hbWU9PT1cImVsc2VcIil8fHM9PT0yJiZuLmtleS5uYW1lPT09XCJlbHNlXCImJnUuYm9keVtzLTFdLnR5cGU9PT1cIk5HTWljcm9zeW50YXhLZXllZEV4cHJlc3Npb25cIiYmdS5ib2R5W3MtMV0ua2V5Lm5hbWU9PT1cInRoZW5cIikmJnUuYm9keVswXS50eXBlPT09XCJOR01pY3Jvc3ludGF4RXhwcmVzc2lvblwiO3JldHVybltyKFwia2V5XCIpLGk/XCIgXCI6XCI6IFwiLHIoXCJleHByZXNzaW9uXCIpXX1jYXNlXCJOR01pY3Jvc3ludGF4TGV0XCI6cmV0dXJuW1wibGV0IFwiLHIoXCJrZXlcIiksbi52YWx1ZT09PW51bGw/XCJcIjpbXCIgPSBcIixyKFwidmFsdWVcIildXTtjYXNlXCJOR01pY3Jvc3ludGF4QXNcIjpyZXR1cm5bcihcImtleVwiKSxcIiBhcyBcIixyKFwiYWxpYXNcIildO2RlZmF1bHQ6dGhyb3cgbmV3IE9lKG4sXCJBbmd1bGFyXCIpfX1mdW5jdGlvbiBoaSh7bm9kZTplLGluZGV4OnQscGFyZW50OnJ9KXtyZXR1cm4gZS50eXBlPT09XCJOR01pY3Jvc3ludGF4S2V5ZWRFeHByZXNzaW9uXCImJmUua2V5Lm5hbWU9PT1cIm9mXCImJnQ9PT0xJiZyLmJvZHlbMF0udHlwZT09PVwiTkdNaWNyb3N5bnRheExldFwiJiZyLmJvZHlbMF0udmFsdWU9PT1udWxsfXZhciBnYz1qKFtcIkNhbGxFeHByZXNzaW9uXCIsXCJPcHRpb25hbENhbGxFeHByZXNzaW9uXCIsXCJBc3NpZ25tZW50RXhwcmVzc2lvblwiXSk7ZnVuY3Rpb24gaGMoe25vZGU6ZX0pe3JldHVybiBYdChlLGdjKX1mdW5jdGlvbiB5bihlLHQscil7bGV0e25vZGU6bn09ZSxzPVtaKGUpLFwiaW50ZXJmYWNlXCJdLHU9W10saT1bXTtuLnR5cGUhPT1cIkludGVyZmFjZVR5cGVBbm5vdGF0aW9uXCImJnUucHVzaChcIiBcIixyKFwiaWRcIikscihcInR5cGVQYXJhbWV0ZXJzXCIpKTtsZXQgYT1uLnR5cGVQYXJhbWV0ZXJzJiYhZChuLnR5cGVQYXJhbWV0ZXJzLHguVHJhaWxpbmd8eC5MaW5lKTtyZXR1cm4gYihuLmV4dGVuZHMpJiZpLnB1c2goYT9QKFwiIFwiLEEse2dyb3VwSWQ6bnIobi50eXBlUGFyYW1ldGVycyl9KTpBLFwiZXh0ZW5kcyBcIiwobi5leHRlbmRzLmxlbmd0aD09PTE/cnU6RSkoQihbXCIsXCIsQV0sZS5tYXAocixcImV4dGVuZHNcIikpKSksZChuLmlkLHguVHJhaWxpbmcpfHxiKG4uZXh0ZW5kcyk/YT9zLnB1c2goeShbLi4udSxFKGkpXSkpOnMucHVzaCh5KEUoWy4uLnUsLi4uaV0pKSk6cy5wdXNoKC4uLnUsLi4uaSkscy5wdXNoKFwiIFwiLHIoXCJib2R5XCIpKSx5KHMpfWZ1bmN0aW9uIEJpKGUsdCxyKXtyZXR1cm4gRXQoZSxyLHQpfWZ1bmN0aW9uIERuKGUsdCl7bGV0e25vZGU6cn09ZSxuPXQoXCJpZFwiKTtyLmNvbXB1dGVkJiYobj1bXCJbXCIsbixcIl1cIl0pO2xldCBzPVwiXCI7cmV0dXJuIHIuaW5pdGlhbGl6ZXImJihzPXQoXCJpbml0aWFsaXplclwiKSksci5pbml0JiYocz10KFwiaW5pdFwiKSkscz9bbixcIiA9IFwiLHNdOm59ZnVuY3Rpb24gYmkoZSx0LHIpe2xldHtub2RlOm59PWUscztpZihuLnR5cGU9PT1cIkVudW1TeW1ib2xCb2R5XCJ8fG4uZXhwbGljaXRUeXBlKXN3aXRjaChuLnR5cGUpe2Nhc2VcIkVudW1Cb29sZWFuQm9keVwiOnM9XCJib29sZWFuXCI7YnJlYWs7Y2FzZVwiRW51bU51bWJlckJvZHlcIjpzPVwibnVtYmVyXCI7YnJlYWs7Y2FzZVwiRW51bVN0cmluZ0JvZHlcIjpzPVwic3RyaW5nXCI7YnJlYWs7Y2FzZVwiRW51bVN5bWJvbEJvZHlcIjpzPVwic3ltYm9sXCI7YnJlYWt9cmV0dXJuW3M/YG9mICR7c30gYDpcIlwiLEJpKGUsdCxyKV19ZnVuY3Rpb24gZm4oZSx0LHIpe2xldHtub2RlOm59PWU7cmV0dXJuW1ooZSksbi5jb25zdD9cImNvbnN0IFwiOlwiXCIsXCJlbnVtIFwiLHQoXCJpZFwiKSxcIiBcIixuLnR5cGU9PT1cIlRTRW51bURlY2xhcmF0aW9uXCI/QmkoZSx0LHIpOnQoXCJib2R5XCIpXX1mdW5jdGlvbiBQaShlLHQscil7bGV0e25vZGU6bn09ZTtpZihFcihuKSlyZXR1cm4gbi50eXBlLnNsaWNlKDAsLTE0KS50b0xvd2VyQ2FzZSgpO2xldCBzPXQuc2VtaT9cIjtcIjpcIlwiO3N3aXRjaChuLnR5cGUpe2Nhc2VcIkRlY2xhcmVDbGFzc1wiOnJldHVybiBwbihlLHQscik7Y2FzZVwiRGVjbGFyZUZ1bmN0aW9uXCI6cmV0dXJuW1ooZSksXCJmdW5jdGlvbiBcIixyKFwiaWRcIikscihcInByZWRpY2F0ZVwiKSxzXTtjYXNlXCJEZWNsYXJlTW9kdWxlXCI6cmV0dXJuW1wiZGVjbGFyZSBtb2R1bGUgXCIscihcImlkXCIpLFwiIFwiLHIoXCJib2R5XCIpXTtjYXNlXCJEZWNsYXJlTW9kdWxlRXhwb3J0c1wiOnJldHVybltcImRlY2xhcmUgbW9kdWxlLmV4cG9ydHNcIixxKGUsciksc107Y2FzZVwiRGVjbGFyZVZhcmlhYmxlXCI6cmV0dXJuW1ooZSksbi5raW5kPz9cInZhclwiLFwiIFwiLHIoXCJpZFwiKSxzXTtjYXNlXCJEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb25cIjpjYXNlXCJEZWNsYXJlRXhwb3J0QWxsRGVjbGFyYXRpb25cIjpyZXR1cm4gS3IoZSx0LHIpO2Nhc2VcIkRlY2xhcmVPcGFxdWVUeXBlXCI6Y2FzZVwiT3BhcXVlVHlwZVwiOnJldHVybiBVdShlLHQscik7Y2FzZVwiRGVjbGFyZVR5cGVBbGlhc1wiOmNhc2VcIlR5cGVBbGlhc1wiOnJldHVybiBqcihlLHQscik7Y2FzZVwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cIjpyZXR1cm4gTXIoZSx0LHIpO2Nhc2VcIlVuaW9uVHlwZUFubm90YXRpb25cIjpyZXR1cm4gUnIoZSx0LHIpO2Nhc2VcIkNvbmRpdGlvbmFsVHlwZUFubm90YXRpb25cIjpyZXR1cm4gTXQoZSx0LHIpO2Nhc2VcIkluZmVyVHlwZUFubm90YXRpb25cIjpyZXR1cm4gVXIoZSx0LHIpO2Nhc2VcIkZ1bmN0aW9uVHlwZUFubm90YXRpb25cIjpyZXR1cm4gSnIoZSx0LHIpO2Nhc2VcIlR1cGxlVHlwZUFubm90YXRpb25cIjpyZXR1cm4gdnQoZSx0LHIpO2Nhc2VcIlR1cGxlVHlwZUxhYmVsZWRFbGVtZW50XCI6cmV0dXJuIHFyKGUsdCxyKTtjYXNlXCJUdXBsZVR5cGVTcHJlYWRFbGVtZW50XCI6cmV0dXJuIEdyKGUsdCxyKTtjYXNlXCJHZW5lcmljVHlwZUFubm90YXRpb25cIjpyZXR1cm5bcihcImlkXCIpLGd0KGUsdCxyLFwidHlwZVBhcmFtZXRlcnNcIildO2Nhc2VcIkluZGV4ZWRBY2Nlc3NUeXBlXCI6Y2FzZVwiT3B0aW9uYWxJbmRleGVkQWNjZXNzVHlwZVwiOnJldHVybiBOcihlLHQscik7Y2FzZVwiVHlwZUFubm90YXRpb25cIjpyZXR1cm4gV3IoZSx0LHIpO2Nhc2VcIlR5cGVQYXJhbWV0ZXJcIjpyZXR1cm4gdG4oZSx0LHIpO2Nhc2VcIlR5cGVvZlR5cGVBbm5vdGF0aW9uXCI6cmV0dXJuIFhyKGUscik7Y2FzZVwiRXhpc3RzVHlwZUFubm90YXRpb25cIjpyZXR1cm5cIipcIjtjYXNlXCJBcnJheVR5cGVBbm5vdGF0aW9uXCI6cmV0dXJuIFlyKHIpO2Nhc2VcIkRlY2xhcmVFbnVtXCI6Y2FzZVwiRW51bURlY2xhcmF0aW9uXCI6cmV0dXJuIGZuKGUscix0KTtjYXNlXCJFbnVtQm9vbGVhbkJvZHlcIjpjYXNlXCJFbnVtTnVtYmVyQm9keVwiOmNhc2VcIkVudW1TdHJpbmdCb2R5XCI6Y2FzZVwiRW51bVN5bWJvbEJvZHlcIjpyZXR1cm4gYmkoZSxyLHQpO2Nhc2VcIkVudW1Cb29sZWFuTWVtYmVyXCI6Y2FzZVwiRW51bU51bWJlck1lbWJlclwiOmNhc2VcIkVudW1TdHJpbmdNZW1iZXJcIjpjYXNlXCJFbnVtRGVmYXVsdGVkTWVtYmVyXCI6cmV0dXJuIERuKGUscik7Y2FzZVwiRnVuY3Rpb25UeXBlUGFyYW1cIjp7bGV0IHU9bi5uYW1lP3IoXCJuYW1lXCIpOmUucGFyZW50LnRoaXM9PT1uP1widGhpc1wiOlwiXCI7cmV0dXJuW3UsJChlKSx1P1wiOiBcIjpcIlwiLHIoXCJ0eXBlQW5ub3RhdGlvblwiKV19Y2FzZVwiRGVjbGFyZUludGVyZmFjZVwiOmNhc2VcIkludGVyZmFjZURlY2xhcmF0aW9uXCI6Y2FzZVwiSW50ZXJmYWNlVHlwZUFubm90YXRpb25cIjpyZXR1cm4geW4oZSx0LHIpO2Nhc2VcIkNsYXNzSW1wbGVtZW50c1wiOmNhc2VcIkludGVyZmFjZUV4dGVuZHNcIjpyZXR1cm5bcihcImlkXCIpLHIoXCJ0eXBlUGFyYW1ldGVyc1wiKV07Y2FzZVwiTnVsbGFibGVUeXBlQW5ub3RhdGlvblwiOnJldHVybltcIj9cIixyKFwidHlwZUFubm90YXRpb25cIildO2Nhc2VcIlZhcmlhbmNlXCI6e2xldHtraW5kOnV9PW47cmV0dXJuIHJuLm9rKHU9PT1cInBsdXNcInx8dT09PVwibWludXNcIiksdT09PVwicGx1c1wiP1wiK1wiOlwiLVwifWNhc2VcIktleW9mVHlwZUFubm90YXRpb25cIjpyZXR1cm5bXCJrZXlvZiBcIixyKFwiYXJndW1lbnRcIildO2Nhc2VcIk9iamVjdFR5cGVDYWxsUHJvcGVydHlcIjpyZXR1cm5bbi5zdGF0aWM/XCJzdGF0aWMgXCI6XCJcIixyKFwidmFsdWVcIildO2Nhc2VcIk9iamVjdFR5cGVNYXBwZWRUeXBlUHJvcGVydHlcIjpyZXR1cm4gdWkoZSx0LHIpO2Nhc2VcIk9iamVjdFR5cGVJbmRleGVyXCI6cmV0dXJuW24uc3RhdGljP1wic3RhdGljIFwiOlwiXCIsbi52YXJpYW5jZT9yKFwidmFyaWFuY2VcIik6XCJcIixcIltcIixyKFwiaWRcIiksbi5pZD9cIjogXCI6XCJcIixyKFwia2V5XCIpLFwiXTogXCIscihcInZhbHVlXCIpXTtjYXNlXCJPYmplY3RUeXBlUHJvcGVydHlcIjp7bGV0IHU9XCJcIjtyZXR1cm4gbi5wcm90bz91PVwicHJvdG8gXCI6bi5zdGF0aWMmJih1PVwic3RhdGljIFwiKSxbdSxPbihuKT9uLmtpbmQrXCIgXCI6XCJcIixuLnZhcmlhbmNlP3IoXCJ2YXJpYW5jZVwiKTpcIlwiLGN0KGUsdCxyKSwkKGUpLHZuKG4pP1wiXCI6XCI6IFwiLHIoXCJ2YWx1ZVwiKV19Y2FzZVwiT2JqZWN0VHlwZUFubm90YXRpb25cIjpyZXR1cm4gRXQoZSx0LHIpO2Nhc2VcIk9iamVjdFR5cGVJbnRlcm5hbFNsb3RcIjpyZXR1cm5bbi5zdGF0aWM/XCJzdGF0aWMgXCI6XCJcIixcIltbXCIscihcImlkXCIpLFwiXV1cIiwkKGUpLG4ubWV0aG9kP1wiXCI6XCI6IFwiLHIoXCJ2YWx1ZVwiKV07Y2FzZVwiT2JqZWN0VHlwZVNwcmVhZFByb3BlcnR5XCI6cmV0dXJuIEhyKGUscik7Y2FzZVwiUXVhbGlmaWVkVHlwZW9mSWRlbnRpZmllclwiOmNhc2VcIlF1YWxpZmllZFR5cGVJZGVudGlmaWVyXCI6cmV0dXJuW3IoXCJxdWFsaWZpY2F0aW9uXCIpLFwiLlwiLHIoXCJpZFwiKV07Y2FzZVwiTnVsbExpdGVyYWxUeXBlQW5ub3RhdGlvblwiOnJldHVyblwibnVsbFwiO2Nhc2VcIkJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb25cIjpyZXR1cm4gU3RyaW5nKG4udmFsdWUpO2Nhc2VcIlN0cmluZ0xpdGVyYWxUeXBlQW5ub3RhdGlvblwiOnJldHVybiB4ZShUdChvZShuKSx0KSk7Y2FzZVwiTnVtYmVyTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCI6cmV0dXJuIEhlKG4ucmF3Pz9uLmV4dHJhLnJhdyk7Y2FzZVwiQmlnSW50TGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCI6cmV0dXJuIE9yKG4ucmF3Pz9uLmV4dHJhLnJhdyk7Y2FzZVwiVHlwZUNhc3RFeHByZXNzaW9uXCI6cmV0dXJuW1wiKFwiLHIoXCJleHByZXNzaW9uXCIpLHEoZSxyKSxcIilcIl07Y2FzZVwiVHlwZVByZWRpY2F0ZVwiOnJldHVybiAkcihlLHIpO2Nhc2VcIlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiOmNhc2VcIlR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uXCI6cmV0dXJuIGd0KGUsdCxyLFwicGFyYW1zXCIpO2Nhc2VcIkluZmVycmVkUHJlZGljYXRlXCI6Y2FzZVwiRGVjbGFyZWRQcmVkaWNhdGVcIjpyZXR1cm5bZS5rZXk9PT1cInByZWRpY2F0ZVwiJiZlLnBhcmVudC50eXBlIT09XCJEZWNsYXJlRnVuY3Rpb25cIiYmIWUucGFyZW50LnJldHVyblR5cGU/XCI6IFwiOlwiIFwiLFwiJWNoZWNrc1wiLC4uLm4udHlwZT09PVwiRGVjbGFyZWRQcmVkaWNhdGVcIj9bXCIoXCIscihcInZhbHVlXCIpLFwiKVwiXTpbXV19fWZ1bmN0aW9uIGtpKGUsdCxyKXt2YXIgaTtsZXR7bm9kZTpufT1lO2lmKCFuLnR5cGUuc3RhcnRzV2l0aChcIlRTXCIpKXJldHVybjtpZihGcihuKSlyZXR1cm4gbi50eXBlLnNsaWNlKDIsLTcpLnRvTG93ZXJDYXNlKCk7bGV0IHM9dC5zZW1pP1wiO1wiOlwiXCIsdT1bXTtzd2l0Y2gobi50eXBlKXtjYXNlXCJUU1RoaXNUeXBlXCI6cmV0dXJuXCJ0aGlzXCI7Y2FzZVwiVFNUeXBlQXNzZXJ0aW9uXCI6e2xldCBhPSEoRyhuLmV4cHJlc3Npb24pfHxlZShuLmV4cHJlc3Npb24pKSxvPXkoW1wiPFwiLEUoW0YscihcInR5cGVBbm5vdGF0aW9uXCIpXSksRixcIj5cIl0pLHA9W1AoXCIoXCIpLEUoW0YscihcImV4cHJlc3Npb25cIildKSxGLFAoXCIpXCIpXTtyZXR1cm4gYT9xZShbW28scihcImV4cHJlc3Npb25cIildLFtvLHkocCx7c2hvdWxkQnJlYWs6ITB9KV0sW28scihcImV4cHJlc3Npb25cIildXSk6eShbbyxyKFwiZXhwcmVzc2lvblwiKV0pfWNhc2VcIlRTRGVjbGFyZUZ1bmN0aW9uXCI6cmV0dXJuIHNuKGUscix0KTtjYXNlXCJUU0V4cG9ydEFzc2lnbm1lbnRcIjpyZXR1cm5bXCJleHBvcnQgPSBcIixyKFwiZXhwcmVzc2lvblwiKSxzXTtjYXNlXCJUU01vZHVsZUJsb2NrXCI6cmV0dXJuIG1uKGUsdCxyKTtjYXNlXCJUU0ludGVyZmFjZUJvZHlcIjpjYXNlXCJUU1R5cGVMaXRlcmFsXCI6cmV0dXJuIEV0KGUsdCxyKTtjYXNlXCJUU1R5cGVBbGlhc0RlY2xhcmF0aW9uXCI6cmV0dXJuIGpyKGUsdCxyKTtjYXNlXCJUU1F1YWxpZmllZE5hbWVcIjpyZXR1cm5bcihcImxlZnRcIiksXCIuXCIscihcInJpZ2h0XCIpXTtjYXNlXCJUU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvblwiOmNhc2VcIlRTRGVjbGFyZU1ldGhvZFwiOnJldHVybiBjbihlLHQscik7Y2FzZVwiVFNBYnN0cmFjdEFjY2Vzc29yUHJvcGVydHlcIjpjYXNlXCJUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uXCI6cmV0dXJuIGxuKGUsdCxyKTtjYXNlXCJUU0ludGVyZmFjZUhlcml0YWdlXCI6Y2FzZVwiVFNDbGFzc0ltcGxlbWVudHNcIjpjYXNlXCJUU0V4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50c1wiOmNhc2VcIlRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb25cIjpyZXR1cm5bcihcImV4cHJlc3Npb25cIikscihcInR5cGVQYXJhbWV0ZXJzXCIpXTtjYXNlXCJUU1RlbXBsYXRlTGl0ZXJhbFR5cGVcIjpyZXR1cm4gUXIoZSxyLHQpO2Nhc2VcIlRTTmFtZWRUdXBsZU1lbWJlclwiOnJldHVybiBxcihlLHQscik7Y2FzZVwiVFNSZXN0VHlwZVwiOnJldHVybiBHcihlLHQscik7Y2FzZVwiVFNPcHRpb25hbFR5cGVcIjpyZXR1cm5bcihcInR5cGVBbm5vdGF0aW9uXCIpLFwiP1wiXTtjYXNlXCJUU0ludGVyZmFjZURlY2xhcmF0aW9uXCI6cmV0dXJuIHluKGUsdCxyKTtjYXNlXCJUU1R5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiOmNhc2VcIlRTVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25cIjpyZXR1cm4gZ3QoZSx0LHIsXCJwYXJhbXNcIik7Y2FzZVwiVFNUeXBlUGFyYW1ldGVyXCI6cmV0dXJuIHRuKGUsdCxyKTtjYXNlXCJUU0FzRXhwcmVzc2lvblwiOmNhc2VcIlRTU2F0aXNmaWVzRXhwcmVzc2lvblwiOntsZXQgYT1uLnR5cGU9PT1cIlRTQXNFeHByZXNzaW9uXCI/XCJhc1wiOlwic2F0aXNmaWVzXCI7dS5wdXNoKHIoXCJleHByZXNzaW9uXCIpLGAgJHthfSBgLHIoXCJ0eXBlQW5ub3RhdGlvblwiKSk7bGV0e3BhcmVudDpvfT1lO3JldHVybiBrKG8pJiZvLmNhbGxlZT09PW58fEoobykmJm8ub2JqZWN0PT09bj95KFtFKFtGLC4uLnVdKSxGXSk6dX1jYXNlXCJUU0FycmF5VHlwZVwiOnJldHVybiBZcihyKTtjYXNlXCJUU1Byb3BlcnR5U2lnbmF0dXJlXCI6cmV0dXJuW24ucmVhZG9ubHk/XCJyZWFkb25seSBcIjpcIlwiLGN0KGUsdCxyKSwkKGUpLHEoZSxyKV07Y2FzZVwiVFNQYXJhbWV0ZXJQcm9wZXJ0eVwiOnJldHVybltqdChuKSxuLnN0YXRpYz9cInN0YXRpYyBcIjpcIlwiLG4ub3ZlcnJpZGU/XCJvdmVycmlkZSBcIjpcIlwiLG4ucmVhZG9ubHk/XCJyZWFkb25seSBcIjpcIlwiLHIoXCJwYXJhbWV0ZXJcIildO2Nhc2VcIlRTVHlwZVF1ZXJ5XCI6cmV0dXJuIFhyKGUscik7Y2FzZVwiVFNJbmRleFNpZ25hdHVyZVwiOntsZXQgYT1uLnBhcmFtZXRlcnMubGVuZ3RoPjE/UChsZSh0KT9cIixcIjpcIlwiKTpcIlwiLG89eShbRShbRixCKFtcIiwgXCIsRl0sZS5tYXAocixcInBhcmFtZXRlcnNcIikpXSksYSxGXSkscD1lLnBhcmVudC50eXBlPT09XCJDbGFzc0JvZHlcIiYmZS5rZXk9PT1cImJvZHlcIjtyZXR1cm5bcCYmbi5zdGF0aWM/XCJzdGF0aWMgXCI6XCJcIixuLnJlYWRvbmx5P1wicmVhZG9ubHkgXCI6XCJcIixcIltcIixuLnBhcmFtZXRlcnM/bzpcIlwiLFwiXVwiLHEoZSxyKSxwP3M6XCJcIl19Y2FzZVwiVFNUeXBlUHJlZGljYXRlXCI6cmV0dXJuICRyKGUscik7Y2FzZVwiVFNOb25OdWxsRXhwcmVzc2lvblwiOnJldHVybltyKFwiZXhwcmVzc2lvblwiKSxcIiFcIl07Y2FzZVwiVFNJbXBvcnRUeXBlXCI6cmV0dXJuW24uaXNUeXBlT2Y/XCJ0eXBlb2YgXCI6XCJcIixcImltcG9ydChcIixyKFwiYXJndW1lbnRcIiksXCIpXCIsbi5xdWFsaWZpZXI/W1wiLlwiLHIoXCJxdWFsaWZpZXJcIildOlwiXCIsZ3QoZSx0LHIsbi50eXBlQXJndW1lbnRzP1widHlwZUFyZ3VtZW50c1wiOlwidHlwZVBhcmFtZXRlcnNcIildO2Nhc2VcIlRTTGl0ZXJhbFR5cGVcIjpyZXR1cm4gcihcImxpdGVyYWxcIik7Y2FzZVwiVFNJbmRleGVkQWNjZXNzVHlwZVwiOnJldHVybiBOcihlLHQscik7Y2FzZVwiVFNUeXBlT3BlcmF0b3JcIjpyZXR1cm5bbi5vcGVyYXRvcixcIiBcIixyKFwidHlwZUFubm90YXRpb25cIildO2Nhc2VcIlRTTWFwcGVkVHlwZVwiOnJldHVybiBpaShlLHQscik7Y2FzZVwiVFNNZXRob2RTaWduYXR1cmVcIjp7bGV0IGE9bi5raW5kJiZuLmtpbmQhPT1cIm1ldGhvZFwiP2Ake24ua2luZH0gYDpcIlwiO3UucHVzaChqdChuKSxhLG4uY29tcHV0ZWQ/XCJbXCI6XCJcIixyKFwia2V5XCIpLG4uY29tcHV0ZWQ/XCJdXCI6XCJcIiwkKGUpKTtsZXQgbz1vdChlLHIsdCwhMSwhMCkscD1uLnJldHVyblR5cGU/XCJyZXR1cm5UeXBlXCI6XCJ0eXBlQW5ub3RhdGlvblwiLG09bltwXSxEPW0/cShlLHIscCk6XCJcIixjPXh0KG4sRCk7cmV0dXJuIHUucHVzaChjP3kobyk6byksbSYmdS5wdXNoKHkoRCkpLHkodSl9Y2FzZVwiVFNOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvblwiOnJldHVybltcImV4cG9ydCBhcyBuYW1lc3BhY2UgXCIscihcImlkXCIpLHQuc2VtaT9cIjtcIjpcIlwiXTtjYXNlXCJUU0VudW1EZWNsYXJhdGlvblwiOnJldHVybiBmbihlLHIsdCk7Y2FzZVwiVFNFbnVtTWVtYmVyXCI6cmV0dXJuIERuKGUscik7Y2FzZVwiVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvblwiOnJldHVybltuLmlzRXhwb3J0P1wiZXhwb3J0IFwiOlwiXCIsXCJpbXBvcnQgXCIsb3MobiwhMSkscihcImlkXCIpLFwiID0gXCIscihcIm1vZHVsZVJlZmVyZW5jZVwiKSx0LnNlbWk/XCI7XCI6XCJcIl07Y2FzZVwiVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZVwiOnJldHVybltcInJlcXVpcmUoXCIscihcImV4cHJlc3Npb25cIiksXCIpXCJdO2Nhc2VcIlRTTW9kdWxlRGVjbGFyYXRpb25cIjp7bGV0e3BhcmVudDphfT1lLG89YS50eXBlPT09XCJUU01vZHVsZURlY2xhcmF0aW9uXCIscD0oKGk9bi5ib2R5KT09bnVsbD92b2lkIDA6aS50eXBlKT09PVwiVFNNb2R1bGVEZWNsYXJhdGlvblwiO2lmKG8pdS5wdXNoKFwiLlwiKTtlbHNlIGlmKHUucHVzaChaKGUpKSwhKG4ua2luZD09PVwiZ2xvYmFsXCJ8fG4uZ2xvYmFsKSl7bGV0IEQ9bi5raW5kPz8oUShuLmlkKXx8Lyg/Ol58XFxzKW1vZHVsZSg/Olxcc3wkKS8udGVzdCh0Lm9yaWdpbmFsVGV4dC5zbGljZShVKG4pLFUobi5pZCkpKT9cIm1vZHVsZVwiOlwibmFtZXNwYWNlXCIpO3UucHVzaChELFwiIFwiKX1yZXR1cm4gdS5wdXNoKHIoXCJpZFwiKSkscD91LnB1c2gocihcImJvZHlcIikpOm4uYm9keT91LnB1c2goXCIgXCIseShyKFwiYm9keVwiKSkpOnUucHVzaChzKSx1fWNhc2VcIlRTQ29uZGl0aW9uYWxUeXBlXCI6cmV0dXJuIE10KGUsdCxyKTtjYXNlXCJUU0luZmVyVHlwZVwiOnJldHVybiBVcihlLHQscik7Y2FzZVwiVFNJbnRlcnNlY3Rpb25UeXBlXCI6cmV0dXJuIE1yKGUsdCxyKTtjYXNlXCJUU1VuaW9uVHlwZVwiOnJldHVybiBScihlLHQscik7Y2FzZVwiVFNGdW5jdGlvblR5cGVcIjpjYXNlXCJUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvblwiOmNhc2VcIlRTQ29uc3RydWN0b3JUeXBlXCI6Y2FzZVwiVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvblwiOnJldHVybiBKcihlLHQscik7Y2FzZVwiVFNUdXBsZVR5cGVcIjpyZXR1cm4gdnQoZSx0LHIpO2Nhc2VcIlRTVHlwZVJlZmVyZW5jZVwiOnJldHVybltyKFwidHlwZU5hbWVcIiksZ3QoZSx0LHIsXCJ0eXBlUGFyYW1ldGVyc1wiKV07Y2FzZVwiVFNUeXBlQW5ub3RhdGlvblwiOnJldHVybiBXcihlLHQscik7Y2FzZVwiVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb25cIjpyZXR1cm4gdW4oZSx0LHIpO2Nhc2VcIlRTSlNEb2NBbGxUeXBlXCI6cmV0dXJuXCIqXCI7Y2FzZVwiVFNKU0RvY1Vua25vd25UeXBlXCI6cmV0dXJuXCI/XCI7Y2FzZVwiVFNKU0RvY051bGxhYmxlVHlwZVwiOnJldHVybiB1cyhlLHIsXCI/XCIpO2Nhc2VcIlRTSlNEb2NOb25OdWxsYWJsZVR5cGVcIjpyZXR1cm4gdXMoZSxyLFwiIVwiKTtjYXNlXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCI6ZGVmYXVsdDp0aHJvdyBuZXcgT2UobixcIlR5cGVTY3JpcHRcIil9fWZ1bmN0aW9uIFNjKGUsdCxyLG4pe2lmKGtyKGUpKXJldHVybiBrcyhlLHQpO2ZvcihsZXQgcyBvZltTaSxodSxQaSxraSxnaV0pe2xldCB1PXMoZSx0LHIsbik7aWYodSE9PXZvaWQgMClyZXR1cm4gdX19dmFyIEJjPWooW1wiQ2xhc3NNZXRob2RcIixcIkNsYXNzUHJpdmF0ZU1ldGhvZFwiLFwiQ2xhc3NQcm9wZXJ0eVwiLFwiQ2xhc3NBY2Nlc3NvclByb3BlcnR5XCIsXCJBY2Nlc3NvclByb3BlcnR5XCIsXCJUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eVwiLFwiUHJvcGVydHlEZWZpbml0aW9uXCIsXCJUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uXCIsXCJDbGFzc1ByaXZhdGVQcm9wZXJ0eVwiLFwiTWV0aG9kRGVmaW5pdGlvblwiLFwiVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb25cIixcIlRTRGVjbGFyZU1ldGhvZFwiXSk7ZnVuY3Rpb24gYmMoZSx0LHIsbil7dmFyIEQ7ZS5pc1Jvb3QmJigoRD10Ll9fb25IdG1sQmluZGluZ1Jvb3QpPT1udWxsfHxELmNhbGwodCxlLm5vZGUsdCkpO2xldCBzPVNjKGUsdCxyLG4pO2lmKCFzKXJldHVyblwiXCI7bGV0e25vZGU6dX09ZTtpZihCYyh1KSlyZXR1cm4gcztsZXQgaT1iKHUuZGVjb3JhdG9ycyksYT1XdShlLHQsciksbz11LnR5cGU9PT1cIkNsYXNzRXhwcmVzc2lvblwiO2lmKGkmJiFvKXJldHVybiBHdChzLGM9PnkoW2EsY10pKTtsZXQgcD13ZShlLHQpLG09ZGkoZSx0KTtyZXR1cm4hYSYmIXAmJiFtP3M6R3QocyxjPT5bbT9cIjtcIjpcIlwiLHA/XCIoXCI6XCJcIixwJiZvJiZpP1tFKFtBLGEsY10pLEFdOlthLGNdLHA/XCIpXCI6XCJcIl0pfXZhciBJaT1iYzt2YXIgTGk9WyhlLHQpPT5lLnR5cGU9PT1cIk9iamVjdEV4cHJlc3Npb25cIiYmdD09PVwicHJvcGVydGllc1wiLChlLHQpPT5lLnR5cGU9PT1cIkNhbGxFeHByZXNzaW9uXCImJmUuY2FsbGVlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmZS5jYWxsZWUubmFtZT09PVwiQ29tcG9uZW50XCImJnQ9PT1cImFyZ3VtZW50c1wiLChlLHQpPT5lLnR5cGU9PT1cIkRlY29yYXRvclwiJiZ0PT09XCJleHByZXNzaW9uXCJdO2Z1bmN0aW9uIHdpKGUpe3JldHVybiBlLm1hdGNoKHQ9PnQudHlwZT09PVwiVGVtcGxhdGVMaXRlcmFsXCIsKHQscik9PkcodCkmJnI9PT1cImVsZW1lbnRzXCIsKHQscik9PmZlKHQpJiZ0LmtleS50eXBlPT09XCJJZGVudGlmaWVyXCImJnQua2V5Lm5hbWU9PT1cInN0eWxlc1wiJiZyPT09XCJ2YWx1ZVwiLC4uLkxpKX1mdW5jdGlvbiBPaShlKXtyZXR1cm4gZS5tYXRjaCh0PT50LnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwiLCh0LHIpPT5mZSh0KSYmdC5rZXkudHlwZT09PVwiSWRlbnRpZmllclwiJiZ0LmtleS5uYW1lPT09XCJ0ZW1wbGF0ZVwiJiZyPT09XCJ2YWx1ZVwiLC4uLkxpKX1mdW5jdGlvbiBFbihlLHQpe3JldHVybiBkKGUseC5CbG9ja3x4LkxlYWRpbmcsKHt2YWx1ZTpyfSk9PnI9PT1gICR7dH0gYCl9YXN5bmMgZnVuY3Rpb24gUGMoZSx0LHIpe2xldHtub2RlOm59PXIscz1uLnF1YXNpcy5tYXAobT0+bS52YWx1ZS5yYXcpLHU9MCxpPXMucmVkdWNlKChtLEQsYyk9PmM9PT0wP0Q6bStcIkBwcmV0dGllci1wbGFjZWhvbGRlci1cIit1KysrXCItaWRcIitELFwiXCIpLGE9YXdhaXQgZShpLHtwYXJzZXI6XCJzY3NzXCJ9KSxvPVJ0KHIsdCkscD1rYyhhLG8pO2lmKCFwKXRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGluc2VydCBhbGwgdGhlIGV4cHJlc3Npb25zXCIpO3JldHVybltcImBcIixFKFtDLHBdKSxGLFwiYFwiXX1mdW5jdGlvbiBrYyhlLHQpe2lmKCFiKHQpKXJldHVybiBlO2xldCByPTAsbj11dChCdChlKSxzPT50eXBlb2YgcyE9XCJzdHJpbmdcInx8IXMuaW5jbHVkZXMoXCJAcHJldHRpZXItcGxhY2Vob2xkZXJcIik/czpzLnNwbGl0KC9AcHJldHRpZXItcGxhY2Vob2xkZXItKFxcZCspLWlkLykubWFwKCh1LGkpPT5pJTI9PT0wP3hlKHUpOihyKyssdFt1XSkpKTtyZXR1cm4gdC5sZW5ndGg9PT1yP246bnVsbH1mdW5jdGlvbiBJYyh7bm9kZTplLHBhcmVudDp0LGdyYW5kcGFyZW50OnJ9KXtyZXR1cm4gciYmZS5xdWFzaXMmJnQudHlwZT09PVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiJiZyLnR5cGU9PT1cIkpTWEVsZW1lbnRcIiYmci5vcGVuaW5nRWxlbWVudC5uYW1lLm5hbWU9PT1cInN0eWxlXCImJnIub3BlbmluZ0VsZW1lbnQuYXR0cmlidXRlcy5zb21lKG49Pm4ubmFtZS5uYW1lPT09XCJqc3hcIil8fCh0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIiYmdC50YWcudHlwZT09PVwiSWRlbnRpZmllclwiJiZ0LnRhZy5uYW1lPT09XCJjc3NcInx8KHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiJiZ0LnRhZy50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCImJnQudGFnLm9iamVjdC5uYW1lPT09XCJjc3NcIiYmKHQudGFnLnByb3BlcnR5Lm5hbWU9PT1cImdsb2JhbFwifHx0LnRhZy5wcm9wZXJ0eS5uYW1lPT09XCJyZXNvbHZlXCIpfWZ1bmN0aW9uIEZuKGUpe3JldHVybiBlLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmZS5uYW1lPT09XCJzdHlsZWRcIn1mdW5jdGlvbiB2aShlKXtyZXR1cm4vXltBLVpdLy50ZXN0KGUub2JqZWN0Lm5hbWUpJiZlLnByb3BlcnR5Lm5hbWU9PT1cImV4dGVuZFwifWZ1bmN0aW9uIExjKHtwYXJlbnQ6ZX0pe2lmKCFlfHxlLnR5cGUhPT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiKXJldHVybiExO2xldCB0PWUudGFnLnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCI/ZS50YWcuZXhwcmVzc2lvbjplLnRhZztzd2l0Y2godC50eXBlKXtjYXNlXCJNZW1iZXJFeHByZXNzaW9uXCI6cmV0dXJuIEZuKHQub2JqZWN0KXx8dmkodCk7Y2FzZVwiQ2FsbEV4cHJlc3Npb25cIjpyZXR1cm4gRm4odC5jYWxsZWUpfHx0LmNhbGxlZS50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCImJih0LmNhbGxlZS5vYmplY3QudHlwZT09PVwiTWVtYmVyRXhwcmVzc2lvblwiJiYoRm4odC5jYWxsZWUub2JqZWN0Lm9iamVjdCl8fHZpKHQuY2FsbGVlLm9iamVjdCkpfHx0LmNhbGxlZS5vYmplY3QudHlwZT09PVwiQ2FsbEV4cHJlc3Npb25cIiYmRm4odC5jYWxsZWUub2JqZWN0LmNhbGxlZSkpO2Nhc2VcIklkZW50aWZpZXJcIjpyZXR1cm4gdC5uYW1lPT09XCJjc3NcIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiB3Yyh7cGFyZW50OmUsZ3JhbmRwYXJlbnQ6dH0pe3JldHVybih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJKU1hBdHRyaWJ1dGVcIiYmZS50eXBlPT09XCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCImJnQubmFtZS50eXBlPT09XCJKU1hJZGVudGlmaWVyXCImJnQubmFtZS5uYW1lPT09XCJjc3NcIn1mdW5jdGlvbiBPYyhlKXtpZihJYyhlKXx8TGMoZSl8fHdjKGUpfHx3aShlKSlyZXR1cm4gUGN9dmFyIF9pPU9jO2FzeW5jIGZ1bmN0aW9uIHZjKGUsdCxyKXtsZXR7bm9kZTpufT1yLHM9bi5xdWFzaXMubGVuZ3RoLHU9UnQocix0KSxpPVtdO2ZvcihsZXQgYT0wO2E8czthKyspe2xldCBvPW4ucXVhc2lzW2FdLHA9YT09PTAsbT1hPT09cy0xLEQ9by52YWx1ZS5jb29rZWQsYz1ELnNwbGl0KGBcbmApLGY9Yy5sZW5ndGgsbD11W2FdLGg9Zj4yJiZjWzBdLnRyaW0oKT09PVwiXCImJmNbMV0udHJpbSgpPT09XCJcIixnPWY+MiYmY1tmLTFdLnRyaW0oKT09PVwiXCImJmNbZi0yXS50cmltKCk9PT1cIlwiLFM9Yy5ldmVyeSh2PT4vXlxccyooPzojW15cXG5cXHJdKik/JC8udGVzdCh2KSk7aWYoIW0mJi8jW15cXG5cXHJdKiQvLnRlc3QoY1tmLTFdKSlyZXR1cm4gbnVsbDtsZXQgST1udWxsO1M/ST1fYyhjKTpJPWF3YWl0IGUoRCx7cGFyc2VyOlwiZ3JhcGhxbFwifSksST8oST1acihJLCExKSwhcCYmaCYmaS5wdXNoKFwiXCIpLGkucHVzaChJKSwhbSYmZyYmaS5wdXNoKFwiXCIpKTohcCYmIW0mJmgmJmkucHVzaChcIlwiKSxsJiZpLnB1c2gobCl9cmV0dXJuW1wiYFwiLEUoW0MsQihDLGkpXSksQyxcImBcIl19ZnVuY3Rpb24gX2MoZSl7bGV0IHQ9W10scj0hMSxuPWUubWFwKHM9PnMudHJpbSgpKTtmb3IobGV0W3MsdV1vZiBuLmVudHJpZXMoKSl1IT09XCJcIiYmKG5bcy0xXT09PVwiXCImJnI/dC5wdXNoKFtDLHVdKTp0LnB1c2godSkscj0hMCk7cmV0dXJuIHQubGVuZ3RoPT09MD9udWxsOkIoQyx0KX1mdW5jdGlvbiBqYyh7bm9kZTplLHBhcmVudDp0fSl7cmV0dXJuIEVuKGUsXCJHcmFwaFFMXCIpfHx0JiYodC50eXBlPT09XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIiYmKHQudGFnLnR5cGU9PT1cIk1lbWJlckV4cHJlc3Npb25cIiYmdC50YWcub2JqZWN0Lm5hbWU9PT1cImdyYXBocWxcIiYmdC50YWcucHJvcGVydHkubmFtZT09PVwiZXhwZXJpbWVudGFsXCJ8fHQudGFnLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmKHQudGFnLm5hbWU9PT1cImdxbFwifHx0LnRhZy5uYW1lPT09XCJncmFwaHFsXCIpKXx8dC50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwiJiZ0LmNhbGxlZS50eXBlPT09XCJJZGVudGlmaWVyXCImJnQuY2FsbGVlLm5hbWU9PT1cImdyYXBocWxcIil9ZnVuY3Rpb24gTWMoZSl7aWYoamMoZSkpcmV0dXJuIHZjfXZhciBqaT1NYzt2YXIgeHM9MDthc3luYyBmdW5jdGlvbiBNaShlLHQscixuLHMpe2xldHtub2RlOnV9PW4saT14czt4cz14cysxPj4+MDtsZXQgYT1TPT5gUFJFVFRJRVJfSFRNTF9QTEFDRUhPTERFUl8ke1N9XyR7aX1fSU5fSlNgLG89dS5xdWFzaXMubWFwKChTLEksdik9Pkk9PT12Lmxlbmd0aC0xP1MudmFsdWUuY29va2VkOlMudmFsdWUuY29va2VkK2EoSSkpLmpvaW4oXCJcIikscD1SdChuLHIpLG09bmV3IFJlZ0V4cChhKFwiKFxcXFxkKylcIiksXCJnXCIpLEQ9MCxjPWF3YWl0IHQobyx7cGFyc2VyOmUsX19vbkh0bWxSb290KFMpe0Q9Uy5jaGlsZHJlbi5sZW5ndGh9fSksZj11dChjLFM9PntpZih0eXBlb2YgUyE9XCJzdHJpbmdcIilyZXR1cm4gUztsZXQgST1bXSx2PVMuc3BsaXQobSk7Zm9yKGxldCBfPTA7Xzx2Lmxlbmd0aDtfKyspe2xldCBSPXZbX107aWYoXyUyPT09MCl7UiYmKFI9bXMoUikscy5fX2VtYmVkZGVkSW5IdG1sJiYoUj1IKCExLFIsLzxcXC8oPz1zY3JpcHRcXGIpL2dpLFwiPFxcXFwvXCIpKSxJLnB1c2goUikpO2NvbnRpbnVlfWxldCBUPU51bWJlcihSKTtJLnB1c2gocFtUXSl9cmV0dXJuIEl9KSxsPS9eXFxzLy50ZXN0KG8pP1wiIFwiOlwiXCIsaD0vXFxzJC8udGVzdChvKT9cIiBcIjpcIlwiLGc9cy5odG1sV2hpdGVzcGFjZVNlbnNpdGl2aXR5PT09XCJpZ25vcmVcIj9DOmwmJmg/QTpudWxsO3JldHVybiBnP3koW1wiYFwiLEUoW2cseShmKV0pLGcsXCJgXCJdKTpldCh7aHVnOiExfSx5KFtcImBcIixsLEQ+MT9FKHkoZikpOnkoZiksaCxcImBcIl0pKX1mdW5jdGlvbiBSYyhlKXtyZXR1cm4gRW4oZS5ub2RlLFwiSFRNTFwiKXx8ZS5tYXRjaCh0PT50LnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwiLCh0LHIpPT50LnR5cGU9PT1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiJiZ0LnRhZy50eXBlPT09XCJJZGVudGlmaWVyXCImJnQudGFnLm5hbWU9PT1cImh0bWxcIiYmcj09PVwicXVhc2lcIil9dmFyIEpjPU1pLmJpbmQodm9pZCAwLFwiaHRtbFwiKSxOYz1NaS5iaW5kKHZvaWQgMCxcImFuZ3VsYXJcIik7ZnVuY3Rpb24gVWMoZSl7aWYoUmMoZSkpcmV0dXJuIEpjO2lmKE9pKGUpKXJldHVybiBOY312YXIgUmk9VWM7YXN5bmMgZnVuY3Rpb24gR2MoZSx0LHIpe2xldHtub2RlOm59PXIscz1IKCExLG4ucXVhc2lzWzBdLnZhbHVlLnJhdywvKCg/OlxcXFxcXFxcKSopXFxcXGAvZywobyxwKT0+XCJcXFxcXCIucmVwZWF0KHAubGVuZ3RoLzIpK1wiYFwiKSx1PXFjKHMpLGk9dSE9PVwiXCI7aSYmKHM9SCghMSxzLG5ldyBSZWdFeHAoYF4ke3V9YCxcImdtXCIpLFwiXCIpKTtsZXQgYT1acihhd2FpdCBlKHMse3BhcnNlcjpcIm1hcmtkb3duXCIsX19pbkpzVGVtcGxhdGU6ITB9KSwhMCk7cmV0dXJuW1wiYFwiLGk/RShbRixhXSk6W2xyLHdzKGEpXSxGLFwiYFwiXX1mdW5jdGlvbiBxYyhlKXtsZXQgdD1lLm1hdGNoKC9eKFteXFxTXFxuXSopXFxTL20pO3JldHVybiB0PT09bnVsbD9cIlwiOnRbMV19ZnVuY3Rpb24gV2MoZSl7aWYoWWMoZSkpcmV0dXJuIEdjfWZ1bmN0aW9uIFljKHtub2RlOmUscGFyZW50OnR9KXtyZXR1cm4odD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCImJmUucXVhc2lzLmxlbmd0aD09PTEmJnQudGFnLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmKHQudGFnLm5hbWU9PT1cIm1kXCJ8fHQudGFnLm5hbWU9PT1cIm1hcmtkb3duXCIpfXZhciBKaT1XYztmdW5jdGlvbiBYYyhlKXtsZXR7bm9kZTp0fT1lO2lmKHQudHlwZSE9PVwiVGVtcGxhdGVMaXRlcmFsXCJ8fCRjKHQpKXJldHVybjtsZXQgcjtmb3IobGV0IG4gb2ZbX2ksamksUmksSmldKWlmKHI9bihlKSwhIXIpcmV0dXJuIHQucXVhc2lzLmxlbmd0aD09PTEmJnQucXVhc2lzWzBdLnZhbHVlLnJhdy50cmltKCk9PT1cIlwiP1wiYGBcIjphc3luYyguLi5zKT0+e2xldCB1PWF3YWl0IHIoLi4ucyk7cmV0dXJuIHUmJmV0KHtlbWJlZDohMCwuLi51LmxhYmVsfSx1KX19ZnVuY3Rpb24gJGMoe3F1YXNpczplfSl7cmV0dXJuIGUuc29tZSgoe3ZhbHVlOntjb29rZWQ6dH19KT0+dD09PW51bGwpfXZhciBOaT1YYzt2YXIgVmM9bmV3IFNldChbXCJyYW5nZVwiLFwicmF3XCIsXCJjb21tZW50c1wiLFwibGVhZGluZ0NvbW1lbnRzXCIsXCJ0cmFpbGluZ0NvbW1lbnRzXCIsXCJpbm5lckNvbW1lbnRzXCIsXCJleHRyYVwiLFwic3RhcnRcIixcImVuZFwiLFwibG9jXCIsXCJmbGFnc1wiLFwiZXJyb3JzXCIsXCJ0b2tlbnNcIl0pLEp0PWU9Pntmb3IobGV0IHQgb2YgZS5xdWFzaXMpZGVsZXRlIHQudmFsdWV9O2Z1bmN0aW9uIFVpKGUsdCxyKXt2YXIgcyx1O2lmKGUudHlwZT09PVwiUHJvZ3JhbVwiJiZkZWxldGUgdC5zb3VyY2VUeXBlLChlLnR5cGU9PT1cIkJpZ0ludExpdGVyYWxcInx8ZS50eXBlPT09XCJCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb25cIikmJnQudmFsdWUmJih0LnZhbHVlPXQudmFsdWUudG9Mb3dlckNhc2UoKSksKGUudHlwZT09PVwiQmlnSW50TGl0ZXJhbFwifHxlLnR5cGU9PT1cIkxpdGVyYWxcIikmJnQuYmlnaW50JiYodC5iaWdpbnQ9dC5iaWdpbnQudG9Mb3dlckNhc2UoKSksZS50eXBlPT09XCJEZWNpbWFsTGl0ZXJhbFwiJiYodC52YWx1ZT1OdW1iZXIodC52YWx1ZSkpLGUudHlwZT09PVwiTGl0ZXJhbFwiJiZ0LmRlY2ltYWwmJih0LmRlY2ltYWw9TnVtYmVyKHQuZGVjaW1hbCkpLGUudHlwZT09PVwiRW1wdHlTdGF0ZW1lbnRcInx8ZS50eXBlPT09XCJKU1hUZXh0XCJ8fGUudHlwZT09PVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiJiYoZS5leHByZXNzaW9uLnR5cGU9PT1cIkxpdGVyYWxcInx8ZS5leHByZXNzaW9uLnR5cGU9PT1cIlN0cmluZ0xpdGVyYWxcIikmJmUuZXhwcmVzc2lvbi52YWx1ZT09PVwiIFwiKXJldHVybiBudWxsO2lmKChlLnR5cGU9PT1cIlByb3BlcnR5XCJ8fGUudHlwZT09PVwiT2JqZWN0UHJvcGVydHlcInx8ZS50eXBlPT09XCJNZXRob2REZWZpbml0aW9uXCJ8fGUudHlwZT09PVwiQ2xhc3NQcm9wZXJ0eVwifHxlLnR5cGU9PT1cIkNsYXNzTWV0aG9kXCJ8fGUudHlwZT09PVwiUHJvcGVydHlEZWZpbml0aW9uXCJ8fGUudHlwZT09PVwiVFNEZWNsYXJlTWV0aG9kXCJ8fGUudHlwZT09PVwiVFNQcm9wZXJ0eVNpZ25hdHVyZVwifHxlLnR5cGU9PT1cIk9iamVjdFR5cGVQcm9wZXJ0eVwiKSYmdHlwZW9mIGUua2V5PT1cIm9iamVjdFwiJiZlLmtleSYmKGUua2V5LnR5cGU9PT1cIkxpdGVyYWxcInx8ZS5rZXkudHlwZT09PVwiTnVtZXJpY0xpdGVyYWxcInx8ZS5rZXkudHlwZT09PVwiU3RyaW5nTGl0ZXJhbFwifHxlLmtleS50eXBlPT09XCJJZGVudGlmaWVyXCIpJiZkZWxldGUgdC5rZXksZS50eXBlPT09XCJKU1hFbGVtZW50XCImJmUub3BlbmluZ0VsZW1lbnQubmFtZS5uYW1lPT09XCJzdHlsZVwiJiZlLm9wZW5pbmdFbGVtZW50LmF0dHJpYnV0ZXMuc29tZShpPT5pLnR5cGU9PT1cIkpTWEF0dHJpYnV0ZVwiJiZpLm5hbWUubmFtZT09PVwianN4XCIpKWZvcihsZXR7dHlwZTppLGV4cHJlc3Npb246YX1vZiB0LmNoaWxkcmVuKWk9PT1cIkpTWEV4cHJlc3Npb25Db250YWluZXJcIiYmYS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIiYmSnQoYSk7ZS50eXBlPT09XCJKU1hBdHRyaWJ1dGVcIiYmZS5uYW1lLm5hbWU9PT1cImNzc1wiJiZlLnZhbHVlLnR5cGU9PT1cIkpTWEV4cHJlc3Npb25Db250YWluZXJcIiYmZS52YWx1ZS5leHByZXNzaW9uLnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwiJiZKdCh0LnZhbHVlLmV4cHJlc3Npb24pLGUudHlwZT09PVwiSlNYQXR0cmlidXRlXCImJigocz1lLnZhbHVlKT09bnVsbD92b2lkIDA6cy50eXBlKT09PVwiTGl0ZXJhbFwiJiYvW1wiJ118JnF1b3Q7fCZhcG9zOy8udGVzdChlLnZhbHVlLnZhbHVlKSYmKHQudmFsdWUudmFsdWU9SCghMSx0LnZhbHVlLnZhbHVlLC9bXCInXXwmcXVvdDt8JmFwb3M7L2csJ1wiJykpO2xldCBuPWUuZXhwcmVzc2lvbnx8ZS5jYWxsZWU7aWYoZS50eXBlPT09XCJEZWNvcmF0b3JcIiYmbi50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwiJiZuLmNhbGxlZS5uYW1lPT09XCJDb21wb25lbnRcIiYmbi5hcmd1bWVudHMubGVuZ3RoPT09MSl7bGV0IGk9ZS5leHByZXNzaW9uLmFyZ3VtZW50c1swXS5wcm9wZXJ0aWVzO2ZvcihsZXRbYSxvXW9mIHQuZXhwcmVzc2lvbi5hcmd1bWVudHNbMF0ucHJvcGVydGllcy5lbnRyaWVzKCkpc3dpdGNoKGlbYV0ua2V5Lm5hbWUpe2Nhc2VcInN0eWxlc1wiOkcoby52YWx1ZSkmJkp0KG8udmFsdWUuZWxlbWVudHNbMF0pO2JyZWFrO2Nhc2VcInRlbXBsYXRlXCI6by52YWx1ZS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIiYmSnQoby52YWx1ZSk7YnJlYWt9fWlmKGUudHlwZT09PVwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCImJihlLnRhZy50eXBlPT09XCJNZW1iZXJFeHByZXNzaW9uXCJ8fGUudGFnLnR5cGU9PT1cIklkZW50aWZpZXJcIiYmKGUudGFnLm5hbWU9PT1cImdxbFwifHxlLnRhZy5uYW1lPT09XCJncmFwaHFsXCJ8fGUudGFnLm5hbWU9PT1cImNzc1wifHxlLnRhZy5uYW1lPT09XCJtZFwifHxlLnRhZy5uYW1lPT09XCJtYXJrZG93blwifHxlLnRhZy5uYW1lPT09XCJodG1sXCIpfHxlLnRhZy50eXBlPT09XCJDYWxsRXhwcmVzc2lvblwiKSYmSnQodC5xdWFzaSksZS50eXBlPT09XCJUZW1wbGF0ZUxpdGVyYWxcIiYmKCh1PWUubGVhZGluZ0NvbW1lbnRzKSE9bnVsbCYmdS5zb21lKGE9PmFlKGEpJiZbXCJHcmFwaFFMXCIsXCJIVE1MXCJdLnNvbWUobz0+YS52YWx1ZT09PWAgJHtvfSBgKSl8fHIudHlwZT09PVwiQ2FsbEV4cHJlc3Npb25cIiYmci5jYWxsZWUubmFtZT09PVwiZ3JhcGhxbFwifHwhZS5sZWFkaW5nQ29tbWVudHMpJiZKdCh0KSwoZS50eXBlPT09XCJUU0ludGVyc2VjdGlvblR5cGVcInx8ZS50eXBlPT09XCJUU1VuaW9uVHlwZVwiKSYmZS50eXBlcy5sZW5ndGg9PT0xKXJldHVybiB0LnR5cGVzWzBdO2UudHlwZT09PVwiQ2hhaW5FeHByZXNzaW9uXCImJmUuZXhwcmVzc2lvbi50eXBlPT09XCJUU05vbk51bGxFeHByZXNzaW9uXCImJihbdC50eXBlLHQuZXhwcmVzc2lvbi50eXBlXT1bdC5leHByZXNzaW9uLnR5cGUsdC50eXBlXSl9VWkuaWdub3JlZFByb3BlcnRpZXM9VmM7dmFyIEdpPVVpO3ZhciBGdD1tYShIaSgpLDEpO2Z1bmN0aW9uIHNsKGUpe2lmKCFlLnN0YXJ0c1dpdGgoXCIjIVwiKSlyZXR1cm5cIlwiO2xldCB0PWUuaW5kZXhPZihgXG5gKTtyZXR1cm4gdD09PS0xP2U6ZS5zbGljZSgwLHQpfXZhciBLaT1zbDtmdW5jdGlvbiB1bChlKXtsZXQgdD1LaShlKTt0JiYoZT1lLnNsaWNlKHQubGVuZ3RoKzEpKTtsZXQgcj0oMCxGdC5leHRyYWN0KShlKSx7cHJhZ21hczpuLGNvbW1lbnRzOnN9PSgwLEZ0LnBhcnNlV2l0aENvbW1lbnRzKShyKTtyZXR1cm57c2hlYmFuZzp0LHRleHQ6ZSxwcmFnbWFzOm4sY29tbWVudHM6c319ZnVuY3Rpb24gemkoZSl7bGV0e3NoZWJhbmc6dCx0ZXh0OnIscHJhZ21hczpuLGNvbW1lbnRzOnN9PXVsKGUpLHU9KDAsRnQuc3RyaXApKHIpLGk9KDAsRnQucHJpbnQpKHtwcmFnbWFzOntmb3JtYXQ6XCJcIiwuLi5ufSxjb21tZW50czpzLnRyaW1TdGFydCgpfSk7cmV0dXJuKHQ/YCR7dH1cbmA6XCJcIikraSsodS5zdGFydHNXaXRoKGBcbmApP2BcbmA6YFxuXG5gKSt1fXZhciBpbD17YXZvaWRBc3RNdXRhdGlvbjohMH07dmFyIFFpPVt7bGluZ3Vpc3RMYW5ndWFnZUlkOjE4MyxuYW1lOlwiSmF2YVNjcmlwdFwiLHR5cGU6XCJwcm9ncmFtbWluZ1wiLHRtU2NvcGU6XCJzb3VyY2UuanNcIixhY2VNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNaW1lVHlwZTpcInRleHQvamF2YXNjcmlwdFwiLGNvbG9yOlwiI2YxZTA1YVwiLGFsaWFzZXM6W1wianNcIixcIm5vZGVcIl0sZXh0ZW5zaW9uczpbXCIuanNcIixcIi5fanNcIixcIi5ib25lc1wiLFwiLmNqc1wiLFwiLmVzXCIsXCIuZXM2XCIsXCIuZnJhZ1wiLFwiLmdzXCIsXCIuamFrZVwiLFwiLmphdmFzY3JpcHRcIixcIi5qc2JcIixcIi5qc2NhZFwiLFwiLmpzZmxcIixcIi5qc2xpYlwiLFwiLmpzbVwiLFwiLmpzcHJlXCIsXCIuanNzXCIsXCIubWpzXCIsXCIubmpzXCIsXCIucGFjXCIsXCIuc2pzXCIsXCIuc3Nqc1wiLFwiLnhzanNcIixcIi54c2pzbGliXCIsXCIud3hzXCJdLGZpbGVuYW1lczpbXCJKYWtlZmlsZVwiXSxpbnRlcnByZXRlcnM6W1wiY2hha3JhXCIsXCJkOFwiLFwiZ2pzXCIsXCJqc1wiLFwibm9kZVwiLFwibm9kZWpzXCIsXCJxanNcIixcInJoaW5vXCIsXCJ2OFwiLFwidjgtc2hlbGxcIixcInp4XCJdLHBhcnNlcnM6W1wiYmFiZWxcIixcImFjb3JuXCIsXCJlc3ByZWVcIixcIm1lcml5YWhcIixcImJhYmVsLWZsb3dcIixcImJhYmVsLXRzXCIsXCJmbG93XCIsXCJ0eXBlc2NyaXB0XCJdLHZzY29kZUxhbmd1YWdlSWRzOltcImphdmFzY3JpcHRcIixcIm1vbmdvXCJdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjE4MyxuYW1lOlwiRmxvd1wiLHR5cGU6XCJwcm9ncmFtbWluZ1wiLHRtU2NvcGU6XCJzb3VyY2UuanNcIixhY2VNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNaW1lVHlwZTpcInRleHQvamF2YXNjcmlwdFwiLGNvbG9yOlwiI2YxZTA1YVwiLGFsaWFzZXM6W10sZXh0ZW5zaW9uczpbXCIuanMuZmxvd1wiXSxmaWxlbmFtZXM6W10saW50ZXJwcmV0ZXJzOltcImNoYWtyYVwiLFwiZDhcIixcImdqc1wiLFwianNcIixcIm5vZGVcIixcIm5vZGVqc1wiLFwicWpzXCIsXCJyaGlub1wiLFwidjhcIixcInY4LXNoZWxsXCJdLHBhcnNlcnM6W1wiZmxvd1wiLFwiYmFiZWwtZmxvd1wiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJqYXZhc2NyaXB0XCJdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjE4MyxuYW1lOlwiSlNYXCIsdHlwZTpcInByb2dyYW1taW5nXCIsdG1TY29wZTpcInNvdXJjZS5qcy5qc3hcIixhY2VNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNb2RlOlwianN4XCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9qc3hcIixjb2xvcjp2b2lkIDAsYWxpYXNlczp2b2lkIDAsZXh0ZW5zaW9uczpbXCIuanN4XCJdLGZpbGVuYW1lczp2b2lkIDAsaW50ZXJwcmV0ZXJzOnZvaWQgMCxwYXJzZXJzOltcImJhYmVsXCIsXCJiYWJlbC1mbG93XCIsXCJiYWJlbC10c1wiLFwiZmxvd1wiLFwidHlwZXNjcmlwdFwiLFwiZXNwcmVlXCIsXCJtZXJpeWFoXCJdLHZzY29kZUxhbmd1YWdlSWRzOltcImphdmFzY3JpcHRyZWFjdFwiXSxncm91cDpcIkphdmFTY3JpcHRcIn0se2xpbmd1aXN0TGFuZ3VhZ2VJZDozNzgsbmFtZTpcIlR5cGVTY3JpcHRcIix0eXBlOlwicHJvZ3JhbW1pbmdcIixjb2xvcjpcIiMzMTc4YzZcIixhbGlhc2VzOltcInRzXCJdLGludGVycHJldGVyczpbXCJkZW5vXCIsXCJ0cy1ub2RlXCJdLGV4dGVuc2lvbnM6W1wiLnRzXCIsXCIuY3RzXCIsXCIubXRzXCJdLHRtU2NvcGU6XCJzb3VyY2UudHNcIixhY2VNb2RlOlwidHlwZXNjcmlwdFwiLGNvZGVtaXJyb3JNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNaW1lVHlwZTpcImFwcGxpY2F0aW9uL3R5cGVzY3JpcHRcIixwYXJzZXJzOltcInR5cGVzY3JpcHRcIixcImJhYmVsLXRzXCJdLHZzY29kZUxhbmd1YWdlSWRzOltcInR5cGVzY3JpcHRcIl19LHtsaW5ndWlzdExhbmd1YWdlSWQ6OTQ5MDE5MjQsbmFtZTpcIlRTWFwiLHR5cGU6XCJwcm9ncmFtbWluZ1wiLGNvbG9yOlwiIzMxNzhjNlwiLGdyb3VwOlwiVHlwZVNjcmlwdFwiLGV4dGVuc2lvbnM6W1wiLnRzeFwiXSx0bVNjb3BlOlwic291cmNlLnRzeFwiLGFjZU1vZGU6XCJqYXZhc2NyaXB0XCIsY29kZW1pcnJvck1vZGU6XCJqc3hcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L2pzeFwiLHBhcnNlcnM6W1widHlwZXNjcmlwdFwiLFwiYmFiZWwtdHNcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1widHlwZXNjcmlwdHJlYWN0XCJdfV07dmFyIGhzPXt9O29yKGhzLHtnZXRWaXNpdG9yS2V5czooKT0+ZWEsbWFzc2FnZUFzdE5vZGU6KCk9PnJhLHByaW50OigpPT5wbH0pO3ZhciBhbD17SnNvblJvb3Q6W1wibm9kZVwiXSxBcnJheUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sT2JqZWN0RXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLE9iamVjdFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIl0sVW5hcnlFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLE51bGxMaXRlcmFsOltdLEJvb2xlYW5MaXRlcmFsOltdLFN0cmluZ0xpdGVyYWw6W10sTnVtZXJpY0xpdGVyYWw6W10sSWRlbnRpZmllcjpbXSxUZW1wbGF0ZUxpdGVyYWw6W1wicXVhc2lzXCJdLFRlbXBsYXRlRWxlbWVudDpbXX0sWmk9YWw7dmFyIG9sPURyKFppKSxlYT1vbDtmdW5jdGlvbiBwbChlLHQscil7bGV0e25vZGU6bn09ZTtzd2l0Y2gobi50eXBlKXtjYXNlXCJKc29uUm9vdFwiOnJldHVybltyKFwibm9kZVwiKSxDXTtjYXNlXCJBcnJheUV4cHJlc3Npb25cIjp7aWYobi5lbGVtZW50cy5sZW5ndGg9PT0wKXJldHVyblwiW11cIjtsZXQgcz1lLm1hcCgoKT0+ZS5ub2RlPT09bnVsbD9cIm51bGxcIjpyKCksXCJlbGVtZW50c1wiKTtyZXR1cm5bXCJbXCIsRShbQyxCKFtcIixcIixDXSxzKV0pLEMsXCJdXCJdfWNhc2VcIk9iamVjdEV4cHJlc3Npb25cIjpyZXR1cm4gbi5wcm9wZXJ0aWVzLmxlbmd0aD09PTA/XCJ7fVwiOltcIntcIixFKFtDLEIoW1wiLFwiLENdLGUubWFwKHIsXCJwcm9wZXJ0aWVzXCIpKV0pLEMsXCJ9XCJdO2Nhc2VcIk9iamVjdFByb3BlcnR5XCI6cmV0dXJuW3IoXCJrZXlcIiksXCI6IFwiLHIoXCJ2YWx1ZVwiKV07Y2FzZVwiVW5hcnlFeHByZXNzaW9uXCI6cmV0dXJuW24ub3BlcmF0b3I9PT1cIitcIj9cIlwiOm4ub3BlcmF0b3IscihcImFyZ3VtZW50XCIpXTtjYXNlXCJOdWxsTGl0ZXJhbFwiOnJldHVyblwibnVsbFwiO2Nhc2VcIkJvb2xlYW5MaXRlcmFsXCI6cmV0dXJuIG4udmFsdWU/XCJ0cnVlXCI6XCJmYWxzZVwiO2Nhc2VcIlN0cmluZ0xpdGVyYWxcIjpyZXR1cm4gSlNPTi5zdHJpbmdpZnkobi52YWx1ZSk7Y2FzZVwiTnVtZXJpY0xpdGVyYWxcIjpyZXR1cm4gdGEoZSk/SlNPTi5zdHJpbmdpZnkoU3RyaW5nKG4udmFsdWUpKTpKU09OLnN0cmluZ2lmeShuLnZhbHVlKTtjYXNlXCJJZGVudGlmaWVyXCI6cmV0dXJuIHRhKGUpP0pTT04uc3RyaW5naWZ5KG4ubmFtZSk6bi5uYW1lO2Nhc2VcIlRlbXBsYXRlTGl0ZXJhbFwiOnJldHVybiByKFtcInF1YXNpc1wiLDBdKTtjYXNlXCJUZW1wbGF0ZUVsZW1lbnRcIjpyZXR1cm4gSlNPTi5zdHJpbmdpZnkobi52YWx1ZS5jb29rZWQpO2RlZmF1bHQ6dGhyb3cgbmV3IE9lKG4sXCJKU09OXCIpfX1mdW5jdGlvbiB0YShlKXtyZXR1cm4gZS5rZXk9PT1cImtleVwiJiZlLnBhcmVudC50eXBlPT09XCJPYmplY3RQcm9wZXJ0eVwifXZhciBjbD1uZXcgU2V0KFtcInN0YXJ0XCIsXCJlbmRcIixcImV4dHJhXCIsXCJsb2NcIixcImNvbW1lbnRzXCIsXCJsZWFkaW5nQ29tbWVudHNcIixcInRyYWlsaW5nQ29tbWVudHNcIixcImlubmVyQ29tbWVudHNcIixcImVycm9yc1wiLFwicmFuZ2VcIixcInRva2Vuc1wiXSk7ZnVuY3Rpb24gcmEoZSx0KXtsZXR7dHlwZTpyfT1lO2lmKHI9PT1cIk9iamVjdFByb3BlcnR5XCIpe2xldHtrZXk6bn09ZTtuLnR5cGU9PT1cIklkZW50aWZpZXJcIj90LmtleT17dHlwZTpcIlN0cmluZ0xpdGVyYWxcIix2YWx1ZTpuLm5hbWV9Om4udHlwZT09PVwiTnVtZXJpY0xpdGVyYWxcIiYmKHQua2V5PXt0eXBlOlwiU3RyaW5nTGl0ZXJhbFwiLHZhbHVlOlN0cmluZyhuLnZhbHVlKX0pO3JldHVybn1pZihyPT09XCJVbmFyeUV4cHJlc3Npb25cIiYmZS5vcGVyYXRvcj09PVwiK1wiKXJldHVybiB0LmFyZ3VtZW50O2lmKHI9PT1cIkFycmF5RXhwcmVzc2lvblwiKXtmb3IobGV0W24sc11vZiBlLmVsZW1lbnRzLmVudHJpZXMoKSlzPT09bnVsbCYmdC5lbGVtZW50cy5zcGxpY2UobiwwLHt0eXBlOlwiTnVsbExpdGVyYWxcIn0pO3JldHVybn1pZihyPT09XCJUZW1wbGF0ZUxpdGVyYWxcIilyZXR1cm57dHlwZTpcIlN0cmluZ0xpdGVyYWxcIix2YWx1ZTplLnF1YXNpc1swXS52YWx1ZS5jb29rZWR9fXJhLmlnbm9yZWRQcm9wZXJ0aWVzPWNsO3ZhciBuYT1be2xpbmd1aXN0TGFuZ3VhZ2VJZDoxNzQsbmFtZTpcIkpTT04uc3RyaW5naWZ5XCIsdHlwZTpcImRhdGFcIixjb2xvcjpcIiMyOTI5MjlcIix0bVNjb3BlOlwic291cmNlLmpzb25cIixhY2VNb2RlOlwianNvblwiLGNvZGVtaXJyb3JNb2RlOlwiamF2YXNjcmlwdFwiLGNvZGVtaXJyb3JNaW1lVHlwZTpcImFwcGxpY2F0aW9uL2pzb25cIixhbGlhc2VzOltcImdlb2pzb25cIixcImpzb25sXCIsXCJ0b3BvanNvblwiXSxleHRlbnNpb25zOltcIi5pbXBvcnRtYXBcIl0sZmlsZW5hbWVzOltcInBhY2thZ2UuanNvblwiLFwicGFja2FnZS1sb2NrLmpzb25cIixcImNvbXBvc2VyLmpzb25cIl0scGFyc2VyczpbXCJqc29uLXN0cmluZ2lmeVwiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJqc29uXCJdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjE3NCxuYW1lOlwiSlNPTlwiLHR5cGU6XCJkYXRhXCIsY29sb3I6XCIjMjkyOTI5XCIsdG1TY29wZTpcInNvdXJjZS5qc29uXCIsYWNlTW9kZTpcImpzb25cIixjb2RlbWlycm9yTW9kZTpcImphdmFzY3JpcHRcIixjb2RlbWlycm9yTWltZVR5cGU6XCJhcHBsaWNhdGlvbi9qc29uXCIsYWxpYXNlczpbXCJnZW9qc29uXCIsXCJqc29ubFwiLFwidG9wb2pzb25cIl0sZXh0ZW5zaW9uczpbXCIuanNvblwiLFwiLjRERm9ybVwiLFwiLjREUHJvamVjdFwiLFwiLmF2c2NcIixcIi5nZW9qc29uXCIsXCIuZ2x0ZlwiLFwiLmhhclwiLFwiLmljZVwiLFwiLkpTT04tdG1MYW5ndWFnZVwiLFwiLm1jbWV0YVwiLFwiLnRmc3RhdGVcIixcIi50ZnN0YXRlLmJhY2t1cFwiLFwiLnRvcG9qc29uXCIsXCIud2ViYXBwXCIsXCIud2VibWFuaWZlc3RcIixcIi55eVwiLFwiLnl5cFwiXSxmaWxlbmFtZXM6W1wiLmFsbC1jb250cmlidXRvcnNyY1wiLFwiLmFyY2NvbmZpZ1wiLFwiLmF1dG8tY2hhbmdlbG9nXCIsXCIuYzhyY1wiLFwiLmh0bWxoaW50cmNcIixcIi5pbWdib3Rjb25maWdcIixcIi5ueWNyY1wiLFwiLnRlcm4tY29uZmlnXCIsXCIudGVybi1wcm9qZWN0XCIsXCIud2F0Y2htYW5jb25maWdcIixcIlBpcGZpbGUubG9ja1wiLFwiY29tcG9zZXIubG9ja1wiLFwiZmxha2UubG9ja1wiLFwibWNtb2QuaW5mb1wiXSxwYXJzZXJzOltcImpzb25cIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wianNvblwiXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDo0MjMsbmFtZTpcIkpTT04gd2l0aCBDb21tZW50c1wiLHR5cGU6XCJkYXRhXCIsY29sb3I6XCIjMjkyOTI5XCIsZ3JvdXA6XCJKU09OXCIsdG1TY29wZTpcInNvdXJjZS5qc1wiLGFjZU1vZGU6XCJqYXZhc2NyaXB0XCIsY29kZW1pcnJvck1vZGU6XCJqYXZhc2NyaXB0XCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9qYXZhc2NyaXB0XCIsYWxpYXNlczpbXCJqc29uY1wiXSxleHRlbnNpb25zOltcIi5qc29uY1wiLFwiLmNvZGUtc25pcHBldHNcIixcIi5zdWJsaW1lLWJ1aWxkXCIsXCIuc3VibGltZS1jb21tYW5kc1wiLFwiLnN1YmxpbWUtY29tcGxldGlvbnNcIixcIi5zdWJsaW1lLWtleW1hcFwiLFwiLnN1YmxpbWUtbWFjcm9cIixcIi5zdWJsaW1lLW1lbnVcIixcIi5zdWJsaW1lLW1vdXNlbWFwXCIsXCIuc3VibGltZS1wcm9qZWN0XCIsXCIuc3VibGltZS1zZXR0aW5nc1wiLFwiLnN1YmxpbWUtdGhlbWVcIixcIi5zdWJsaW1lLXdvcmtzcGFjZVwiLFwiLnN1YmxpbWVfbWV0cmljc1wiLFwiLnN1YmxpbWVfc2Vzc2lvblwiXSxmaWxlbmFtZXM6W1wiLmJhYmVscmNcIixcIi5kZXZjb250YWluZXIuanNvblwiLFwiLmVzbGludHJjLmpzb25cIixcIi5qc2NzcmNcIixcIi5qc2hpbnRyY1wiLFwiLmpzbGludHJjXCIsXCIuc3djcmNcIixcImFwaS1leHRyYWN0b3IuanNvblwiLFwiZGV2Y29udGFpbmVyLmpzb25cIixcImpzY29uZmlnLmpzb25cIixcImxhbmd1YWdlLWNvbmZpZ3VyYXRpb24uanNvblwiLFwidHNjb25maWcuanNvblwiLFwidHNsaW50Lmpzb25cIixcIi5lc2xpbnRyY1wiXSxwYXJzZXJzOltcImpzb25cIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wianNvbmNcIl19LHtsaW5ndWlzdExhbmd1YWdlSWQ6MTc1LG5hbWU6XCJKU09ONVwiLHR5cGU6XCJkYXRhXCIsY29sb3I6XCIjMjY3Q0I5XCIsZXh0ZW5zaW9uczpbXCIuanNvbjVcIl0sdG1TY29wZTpcInNvdXJjZS5qc1wiLGFjZU1vZGU6XCJqYXZhc2NyaXB0XCIsY29kZW1pcnJvck1vZGU6XCJqYXZhc2NyaXB0XCIsY29kZW1pcnJvck1pbWVUeXBlOlwiYXBwbGljYXRpb24vanNvblwiLHBhcnNlcnM6W1wianNvbjVcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wianNvbjVcIl19XTt2YXIgaXI9e2JyYWNrZXRTcGFjaW5nOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMCxkZXNjcmlwdGlvbjpcIlByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwiLG9wcG9zaXRlRGVzY3JpcHRpb246XCJEbyBub3QgcHJpbnQgc3BhY2VzIGJldHdlZW4gYnJhY2tldHMuXCJ9LHNpbmdsZVF1b3RlOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIlVzZSBzaW5nbGUgcXVvdGVzIGluc3RlYWQgb2YgZG91YmxlIHF1b3Rlcy5cIn0scHJvc2VXcmFwOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwicHJlc2VydmVcIixkZXNjcmlwdGlvbjpcIkhvdyB0byB3cmFwIHByb3NlLlwiLGNob2ljZXM6W3t2YWx1ZTpcImFsd2F5c1wiLGRlc2NyaXB0aW9uOlwiV3JhcCBwcm9zZSBpZiBpdCBleGNlZWRzIHRoZSBwcmludCB3aWR0aC5cIn0se3ZhbHVlOlwibmV2ZXJcIixkZXNjcmlwdGlvbjpcIkRvIG5vdCB3cmFwIHByb3NlLlwifSx7dmFsdWU6XCJwcmVzZXJ2ZVwiLGRlc2NyaXB0aW9uOlwiV3JhcCBwcm9zZSBhcy1pcy5cIn1dfSxicmFja2V0U2FtZUxpbmU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiUHV0ID4gb2Ygb3BlbmluZyB0YWdzIG9uIHRoZSBsYXN0IGxpbmUgaW5zdGVhZCBvZiBvbiBhIG5ldyBsaW5lLlwifSxzaW5nbGVBdHRyaWJ1dGVQZXJMaW5lOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIkVuZm9yY2Ugc2luZ2xlIGF0dHJpYnV0ZSBwZXIgbGluZSBpbiBIVE1MLCBWdWUgYW5kIEpTWC5cIn19O3ZhciBOdD1cIkphdmFTY3JpcHRcIixsbD17YXJyb3dQYXJlbnM6e2NhdGVnb3J5Ok50LHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwiYWx3YXlzXCIsZGVzY3JpcHRpb246XCJJbmNsdWRlIHBhcmVudGhlc2VzIGFyb3VuZCBhIHNvbGUgYXJyb3cgZnVuY3Rpb24gcGFyYW1ldGVyLlwiLGNob2ljZXM6W3t2YWx1ZTpcImFsd2F5c1wiLGRlc2NyaXB0aW9uOlwiQWx3YXlzIGluY2x1ZGUgcGFyZW5zLiBFeGFtcGxlOiBgKHgpID0+IHhgXCJ9LHt2YWx1ZTpcImF2b2lkXCIsZGVzY3JpcHRpb246XCJPbWl0IHBhcmVucyB3aGVuIHBvc3NpYmxlLiBFeGFtcGxlOiBgeCA9PiB4YFwifV19LGJyYWNrZXRTYW1lTGluZTppci5icmFja2V0U2FtZUxpbmUsYnJhY2tldFNwYWNpbmc6aXIuYnJhY2tldFNwYWNpbmcsanN4QnJhY2tldFNhbWVMaW5lOntjYXRlZ29yeTpOdCx0eXBlOlwiYm9vbGVhblwiLGRlc2NyaXB0aW9uOlwiUHV0ID4gb24gdGhlIGxhc3QgbGluZSBpbnN0ZWFkIG9mIGF0IGEgbmV3IGxpbmUuXCIsZGVwcmVjYXRlZDpcIjIuNC4wXCJ9LHNlbWk6e2NhdGVnb3J5Ok50LHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMCxkZXNjcmlwdGlvbjpcIlByaW50IHNlbWljb2xvbnMuXCIsb3Bwb3NpdGVEZXNjcmlwdGlvbjpcIkRvIG5vdCBwcmludCBzZW1pY29sb25zLCBleGNlcHQgYXQgdGhlIGJlZ2lubmluZyBvZiBsaW5lcyB3aGljaCBtYXkgbmVlZCB0aGVtLlwifSxzaW5nbGVRdW90ZTppci5zaW5nbGVRdW90ZSxqc3hTaW5nbGVRdW90ZTp7Y2F0ZWdvcnk6TnQsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiVXNlIHNpbmdsZSBxdW90ZXMgaW4gSlNYLlwifSxxdW90ZVByb3BzOntjYXRlZ29yeTpOdCx0eXBlOlwiY2hvaWNlXCIsZGVmYXVsdDpcImFzLW5lZWRlZFwiLGRlc2NyaXB0aW9uOlwiQ2hhbmdlIHdoZW4gcHJvcGVydGllcyBpbiBvYmplY3RzIGFyZSBxdW90ZWQuXCIsY2hvaWNlczpbe3ZhbHVlOlwiYXMtbmVlZGVkXCIsZGVzY3JpcHRpb246XCJPbmx5IGFkZCBxdW90ZXMgYXJvdW5kIG9iamVjdCBwcm9wZXJ0aWVzIHdoZXJlIHJlcXVpcmVkLlwifSx7dmFsdWU6XCJjb25zaXN0ZW50XCIsZGVzY3JpcHRpb246XCJJZiBhdCBsZWFzdCBvbmUgcHJvcGVydHkgaW4gYW4gb2JqZWN0IHJlcXVpcmVzIHF1b3RlcywgcXVvdGUgYWxsIHByb3BlcnRpZXMuXCJ9LHt2YWx1ZTpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJSZXNwZWN0IHRoZSBpbnB1dCB1c2Ugb2YgcXVvdGVzIGluIG9iamVjdCBwcm9wZXJ0aWVzLlwifV19LHRyYWlsaW5nQ29tbWE6e2NhdGVnb3J5Ok50LHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwiYWxsXCIsZGVzY3JpcHRpb246XCJQcmludCB0cmFpbGluZyBjb21tYXMgd2hlcmV2ZXIgcG9zc2libGUgd2hlbiBtdWx0aS1saW5lLlwiLGNob2ljZXM6W3t2YWx1ZTpcImFsbFwiLGRlc2NyaXB0aW9uOlwiVHJhaWxpbmcgY29tbWFzIHdoZXJldmVyIHBvc3NpYmxlIChpbmNsdWRpbmcgZnVuY3Rpb24gYXJndW1lbnRzKS5cIn0se3ZhbHVlOlwiZXM1XCIsZGVzY3JpcHRpb246XCJUcmFpbGluZyBjb21tYXMgd2hlcmUgdmFsaWQgaW4gRVM1IChvYmplY3RzLCBhcnJheXMsIGV0Yy4pXCJ9LHt2YWx1ZTpcIm5vbmVcIixkZXNjcmlwdGlvbjpcIk5vIHRyYWlsaW5nIGNvbW1hcy5cIn1dfSxzaW5nbGVBdHRyaWJ1dGVQZXJMaW5lOmlyLnNpbmdsZUF0dHJpYnV0ZVBlckxpbmV9LHNhPWxsO3ZhciBtbD17ZXN0cmVlOmdzLFwiZXN0cmVlLWpzb25cIjpoc30seWw9Wy4uLlFpLC4uLm5hXTt2YXIgRkE9U3M7ZXhwb3J0e0ZBIGFzIGRlZmF1bHQseWwgYXMgbGFuZ3VhZ2VzLHNhIGFzIG9wdGlvbnMsbWwgYXMgcHJpbnRlcnN9O1xuIiwgInZhciBQTjA9T2JqZWN0LmNyZWF0ZTt2YXIgRU09T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBOTjA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgQ04wPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBJTjA9T2JqZWN0LmdldFByb3RvdHlwZU9mLE9OMD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBqQj0ocDAsd3gpPT4oKT0+KHd4fHxwMCgod3g9e2V4cG9ydHM6e319KS5leHBvcnRzLHd4KSx3eC5leHBvcnRzKSxKQj0ocDAsd3gpPT57Zm9yKHZhciByciBpbiB3eClFTShwMCxycix7Z2V0Ond4W3JyXSxlbnVtZXJhYmxlOiEwfSl9LFJOMD0ocDAsd3gscnIsZ3IpPT57aWYod3gmJnR5cGVvZiB3eD09XCJvYmplY3RcInx8dHlwZW9mIHd4PT1cImZ1bmN0aW9uXCIpZm9yKGxldCBaMSBvZiBDTjAod3gpKSFPTjAuY2FsbChwMCxaMSkmJloxIT09cnImJkVNKHAwLFoxLHtnZXQ6KCk9Pnd4W1oxXSxlbnVtZXJhYmxlOiEoZ3I9Tk4wKHd4LFoxKSl8fGdyLmVudW1lcmFibGV9KTtyZXR1cm4gcDB9O3ZhciBYQj0ocDAsd3gscnIpPT4ocnI9cDAhPW51bGw/UE4wKElOMChwMCkpOnt9LFJOMCh3eHx8IXAwfHwhcDAuX19lc01vZHVsZT9FTShycixcImRlZmF1bHRcIix7dmFsdWU6cDAsZW51bWVyYWJsZTohMH0pOnJyLHAwKSk7dmFyIFlCPWpCKGdNPT57KGZ1bmN0aW9uKHAwKXt0eXBlb2YgZ2xvYmFsVGhpcyE9XCJvYmplY3RcIiYmKHRoaXM/d3goKToocDAuZGVmaW5lUHJvcGVydHkocDAucHJvdG90eXBlLFwiX1RfXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6d3h9KSxfVF8pKTtmdW5jdGlvbiB3eCgpe3ZhciBycj10aGlzfHxzZWxmO3JyLmdsb2JhbFRoaXM9cnIsZGVsZXRlIHAwLnByb3RvdHlwZS5fVF99fSkoT2JqZWN0KTsoZnVuY3Rpb24ocDApe1widXNlIHN0cmljdFwiO3ZhciB3eD1cInN5bWJvbFwiLHJyPTI3MSxncj0xMjY1NDgsWjE9XCJyZW5kZXJzXCIsaXI9NzExMjcsdXI9XCJtZW1iZXJfcHJvcGVydHlcIix5MT02NTAwNyxpdj02NjUxNywkMT1cImpzeF9hdHRyaWJ1dGVfdmFsdWVfZXhwcmVzc2lvblwiLEQzPTExOTk4MCxZbj1cImZ1bmN0aW9uX2RlY2xhcmF0aW9uXCIsSWU9XCI8Mj5cIix1OT02ODQ2NixMTT1cIiU9XCIsaTk9XCI/P1wiLGY5PTcwMDgwLEk0PVwiJlwiLEN0PVwiaWRlbnRpZmllclwiLE80PTcyMTYzLGM5PTcxNzIzLHM5PVwicHJvcGVydGllc1wiLG85PTE4Mzk2OSx2OT02ODIyMyxWbj1cImZ1bmN0aW9uX3JldHVybl9hbm5vdGF0aW9uXCIsYTk9MTI0OTAzLGw5PTcwMTA2LE1NPTI0MSxETT1cIihcIixVTT0yMTMscDk9MTIwMDc0LGQ5PTcwNzA4LHk5PTcxNjc5LHpuPVwibG9naWNhbFwiLHUyPVwiY2FtbGludGVybmFsRm9ybWF0Lm1sXCIsS249XCJ0eXBlX2d1YXJkX2Fubm90YXRpb25cIixtOT05Mjk3NSxqTT1cIj4+PlwiLGs5PVwiUmVzdEVsZW1lbnRcIixoOT02Nzg5NyxKTT0xNzksXzk9XCJzdGFydFwiLHc5PTExMzc3NSxSND0xMjY1MjEsWE09XCIlaVwiLFUzPVwiYFwiLFlNPVwiI1wiLFQ5PTQzNzAyLEw0PTEyNixTOT0xMTA5NDcsQm49XCJmdW5jdGlvbl9pZGVudGlmaWVyXCIsTTQ9MTE5ODkzLEU5PTcwMzY2LGc5PTY1NTQ3LEE5PTQzNzQzLFA5PS00Myxmdj04MjM4LFZNPVwiLFwiLGN2PTgyODYsV249XCJrZXlvZl90eXBlXCIsTjk9NjY3MTcsRDQ9MTIzMzYsek09MjAxLEM5PTcxMzM4LFU0PTExNTY1LEk5PTY5Mjg5LE85PTU1MjkxLFI5PTczMDMwLEw5PTcwNDc5LE05PTY5NTcyLEQ5PTExNjIzLFpuPVwidHVwbGVfc3ByZWFkX2VsZW1lbnRcIiwkbj1cImNvbXBvbmVudF90eXBlX3Jlc3RfcGFyYW1cIixzdj04MjM5LFU5PTY0MzEwLHZhPVwiQF1cIixqOT00Mjk5MyxqND0xMTU1OCxKND1cIk1hcC5iYWxcIixqMz1cInB1YmxpY1wiLEtNPS0zMixhYT1cIkxpdGVyYWxcIixGbj1cImpzeF9tZW1iZXJfZXhwcmVzc2lvbl9pZGVudGlmaWVyXCIsUW49XCJmb3JfaW5fYXNzaWdubWVudF9wYXR0ZXJuXCIsSjk9NzE0NTAsWDQ9MTI2NTU3LGZuPTEwMyxYOT0xMjI5MixZOT0xMTA1NzksWTQ9MTIwNTk3LFY5PTEzMzExLHo5PTEyMzQ4LEduPVwiZXhwb3J0X2RlZmF1bHRfZGVjbGFyYXRpb25fZGVjbFwiLHFuPVwidHVwbGVfdHlwZVwiLEs5PTExMzY2MyxCOT0xNzAsVzk9Njc0MTMsQk09XCJBc3NlcnRfZmFpbHVyZVwiLFdNPVwiY29tbWVudHNcIixKMz1cIiVTXCIsY249MTI3MzQzNjAwLFo5PTEyMzQxLCQ5PTY3NjQ2LFpNPVwiRU5PVEVNUFRZXCIsRjk9NzIxNjAsUTk9NzAxODcsJE09MjIyLEc5PTEyMzQzLEZNPTIxNDc0ODM2NDcscTk9MTI2NjI0LEg5PTQzNDQyLGI5PTcwMzEyLHhrPTI4MSxIbj1cImludGVyZmFjZV90eXBlXCIsb3Y9XCJuZXdcIixyaz02NjI1NixWND02ODI5Nixlaz0xMjQ5MDgsejQ9MTI2NTc5LEs0PTcwMTA3LEI0PTI0OSx0az03MTE2Nyxibj1cInVuaW9uX3R5cGVcIixHcj0yNDgsbms9MTI2NTQ2LHg3PVwiZW51bV9iaWdpbnRfbWVtYmVyXCIsUU09MTMzLHVrPTY3ODcxLGlrPTY2OTU1LEdNPTEwMjcscjc9XCJjbGFzc19kZWNsYXJhdGlvblwiLGU3PVwib3B0aW9uYWxfY2FsbFwiLHFNPVwiYSBzdHJpbmdcIixXND0xMTcwMyxITT1cIjw8XCIsWjQ9MTI2NTY0LHQ3PVwianN4X2VsZW1lbnRcIixuNz1cIm9iamVjdF9wcm9wZXJ0eV90eXBlXCIsZms9OTQyMDcsdTc9XCJlbnVtX2RlY2xhcmF0aW9uXCIsY2s9NjgwMjMsc2s9Njc2Njksb2s9ODMxOCxiTT1cInByZWZpeFwiLHZ2PVwidGhpc1wiLHZrPTEyNjU3OCxpNz1cImlmX2NvbnNlcXVlbnRfc3RhdGVtZW50XCIseEQ9LTY5NjUxMDI0MSxhaz02Njk2Myxhdj1cImRlZmF1bHRcIiwkND03Mjk2NyxJdD0xMDEsckQ9XCJidWZmZXIubWxcIixsaz03NDY0OSxzbj02NTUzNSxwaz00MzcwOSxkaz0xNzUsbG89XCJjb21wb25lbnRcIixlRD1cIj09PVwiLHBvPTExNyxmNz1cImpzeF9pZGVudGlmaWVyXCIsdEQ9XCJFbnVtRGVmYXVsdGVkTWVtYmVyXCIsRjQ9NzAwMDYseWs9NzAxNjEsbWs9MTI2NjMzLGtrPTY2OTY1LGM3PVwibWVtYmVyX3Byb3BlcnR5X2V4cHJlc3Npb25cIixoaz0xMDE1ODksX2s9NjQyNzQsbGE9XCJmdW5jdGlvblwiLHdrPTY2MzAzLFRrPTQyOTU0LFNrPTEyNjUyOSxFaz03MjE5MSxzNz1cIm5ld19cIixnaz02NDQzMyxRND0xMjY1NTksQWs9NzIxNDQsbkQ9XCI9PVwiLHlvPS03NDQxMDYzNDAsUGs9NDMzNTksTms9MTcxLHVEPVwiUHJpbnRleGMuaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblwiLENrPTY2NzM1LElrPTEyNjUzNCxPaz03NDg3OSxSaz00Mjc4NSxHND0xMjA2MjksWDM9XCIwb1wiLGlEPVwiRW5kX29mX2ZpbGVcIixMaz02NjE3NSxmRD1cIiY9XCIsTWs9XCJuYW5cIixxND0xMjY1MDMsbzc9XCJwYXR0ZXJuX251bWJlcl9saXRlcmFsXCIsRGs9NDM0NzAsdjc9XCJpbXBvcnRfbmFtZXNwYWNlX3NwZWNpZmllclwiLFVrPTc3NzExLEg0PTcwMzAyLGE3PVwiY29tcG9uZW50X3BhcmFtXCIsYjQ9XCJAXSlcIix4cD0xMjY1MTUscGE9MTE4LE9lPVwiY29udGludWVcIixqaz00Mzc5OCxycD1cIjtAIFwiLEprPTc0NzUxLFhrPVwic3JjL3BhcnNlci9zdGF0ZW1lbnRfcGFyc2VyLm1sXCIsWWs9XCJybWRpclwiLFZrPTk0MTc3LGw3PVwiZm9yX2luX3N0YXRlbWVudFwiLGNEPTI2OSxzRD0xMjUyMCxvRD1cIlR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uXCIsa3g9XCJcIix2RD1cIioqPVwiLHprPTEyMDEyNixhRD0xOTcsS2s9Njc4MjksZXA9XCJfYmlnYXJyMDJcIixwNz1cImV4cG9ydF9uYW1lZF9kZWNsYXJhdGlvbl9zcGVjaWZpZXJcIix0cD1cIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiLG5wPTY0MzE5LEJrPTY5OTI2LGQ3PVwicGF0dGVybl9vYmplY3RfcFwiLGxEPVwiVHlwZUFubm90YXRpb25cIix5Nz1cImFycmF5X3R5cGVcIixZMz1cIkBbJXMgPUAgXCIsV2s9NzI4NDcsbTc9XCJleHBvcnRfZGVmYXVsdF9kZWNsYXJhdGlvblwiLHVwPTEyNjU5MCxaaz00Mjc3NCwkaz1cIjogTm90IGEgZGlyZWN0b3J5XCIsZGE9XCJsZXRcIixsdj0xMjI4OCwkMj1cImFyZ3VtZW50XCIsRjI9XCIvXCIsaXA9XCJhbiBpZGVudGlmaWVyXCIsVHM9XCJ0eXBlb2ZcIixmcD02ODExNixGaz0xODIsazc9XCJkZWNsYXJlX2V4cG9ydF9kZWNsYXJhdGlvbl9kZWNsXCIsUWs9Njc1ODksR2s9NjY3NzEsVjM9XCJjbGFzc1wiLHBEPVwidG9rZW5zXCIsY3A9NzAyODEsejM9MjU1LHFrPTQzNjM4LGREPS05ODM2NjAxNDIscHY9XCJrZXlcIixIaz02OTk1NSx5RD1cIj4+XCIsaDc9XCJmdW5jdGlvbl9leHByZXNzaW9uX29yX21ldGhvZFwiLGJrPTQzNTg3LG9uPVwiYmxvY2tcIix4aD0xMDAzNTEsc3A9XCJtaXhlZFwiLHJoPTY2NTAzLGVoPVwiRU5PVERJUlwiLHRoPTY1MTM1LF83PVwic3RyaW5nX2xpdGVyYWxcIixjZT1cIkAgXCIsbmg9NDMzMzQsdzc9XCJpZl9hbHRlcm5hdGVfc3RhdGVtZW50XCIsdWg9NzA0NDgsb3A9ODQ4NSxUNz1cInR5cGVfYXJnc1wiLGloPTY5ODY0LFM3PVwiaWZfc3RhdGVtZW50XCIsbUQ9XCIrPVwiLEU3PVwidHlwZW9mX2lkZW50aWZpZXJcIix2cD1cIndpdGhcIixhcD02NTU5NSxmaD02NDI4NixjaD03MTA4NixTcz1cInRydWVcIixzaD02OTQyMyxnNz1cImNhdGNoX2NsYXVzZVwiLG9oPVwiZVwiLHlhPVwiYXNzZXJ0c1wiLGtEPVwiPj49XCIsdmg9MTMxLGFoPTQzMzg4LGxoPTQzODg3LFkxPS00OCxwaD0xMjA3NzksaEQ9MTkwLGRoPTE5NCxBNz1cInBhdHRlcm5fYmlnaW50X2xpdGVyYWxcIix5aD03MTM1MSxtaD02NTYyOSxQNz1cImNhbGxcIixfRD0tNDIsbHA9MTI2NTUzLGtoPTQzNjk1LHdEPTE3NyxoaD00MjEyNCxfaD0xMjcwMyx3aD0xMjQ0MixUaD0xMTcxOCxwcD03MDQ0OSxkcD0xMjY1NDcsU2g9Njc0NjIsRXM9XCJsZWZ0XCIsTjc9XCJpbmZlcl90eXBlXCIsRWg9MTE3NDIsZ2g9NjU1OTcseXA9XCJVbml4LlVuaXhfZXJyb3JcIixBaD0xMjI2MjMsUGg9MTI0OTExLE5oPTcyOTU5LENoPVwib3BhcXVlXCIsQzc9XCJvYmplY3RfaW50ZXJuYWxfc2xvdF9wcm9wZXJ0eV90eXBlXCIsVEQ9XCJFbnVtIGBcIixTRD0yNzUsZHY9NjUyNzksSWg9NzE5ODMsT2g9MTIzMjksVjE9MTEwLEk3PVwic3ByZWFkX3Byb3BlcnR5XCIsRUQ9XCJpbXBvcnRLaW5kXCIsSzM9XCIgPVwiLE83PVwicmVtb3RlX2lkZW50aWZpZXJcIixSNz1cImxhYmVsZWRfc3RhdGVtZW50XCIsTDc9XCJqc3hfZnJhZ21lbnRcIixSaD0xMjA3NzAsTTc9XCJmdW5jdGlvbl9wYXJhbVwiLEwyPTExMixMaD1cImV4cG9ydEtpbmRcIixENz1cImJpbmFyeVwiLGdzPVwiYC5cIixNaD00MjUxMSxnRD1cIjw9XCIsVTc9XCJqc3hfc3ByZWFkX2F0dHJpYnV0ZVwiLE0yPVwiaW1wb3J0XCIsajc9XCJ0eXBlb2ZfbWVtYmVyX2lkZW50aWZpZXJcIixEaD02OTQxNCxVaD0xOTk2NyxtcD0xMTY4NyxqaD05MzgyMyxBRD0yMDksSmg9NzE5MDMsWGg9XCJvZlwiLFloPTcyZTMsVmg9XCJ0eXBlQXJndW1lbnRzXCIsSjc9XCJ0eXBlX2lkZW50aWZpZXJcIixYNz1cInBhdHRlcm5fYXJyYXlfZWxlbWVudF9wYXR0ZXJuXCIsa3A9Njk3NDQsbWE9MTkyLFk3PVwiY2xhc3NfZWxlbWVudFwiLFY3PVwiZXhwb3J0X3NvdXJjZVwiLHo3PVwiY29tcG9uZW50X3BhcmFtX3BhdHRlcm5cIix6aD00MjUwOCxLaD0xMjUxMjQsUEQ9XCJVbmV4cGVjdGVkIHRva2VuIGBcIixLNz1cImZvcl9pbl9sZWZ0X2RlY2xhcmF0aW9uXCIsQjc9XCJvYmplY3RfY2FsbF9wcm9wZXJ0eV90eXBlXCIsQmg9XCJhYnN0cmFjdFwiLFdoPTg1ODQsWmg9Njg3ODYsJGg9NzE5OTksaHA9MTIzMjE0LEZoPTEyMzU2NSxRaD0xODYsVzc9XCJjbGFzc19pbXBsZW1lbnRzX2ludGVyZmFjZVwiLF9wPTEyNjUzNixHaD02OTc0OSxORD1cIkludmFsaWQgbGVnYWN5IG9jdGFsIFwiLHFoPTcxMjk1LEhoPTY2OTI3LFo3PVwicGF0dGVybl9leHByZXNzaW9uXCIsYmg9MTE2NzkseF89LTYxLHdwPTY1MTQxLHJfPTExNjk0LCQ3PVwidXBkYXRlX2V4cHJlc3Npb25cIixDRD1cIm1pbnVzXCIsUmU9XCJkZWJ1Z2dlclwiLGVfPTcxMzUyLHRfPTY1NDcwLGthPVwibnVtYmVyXCIsbl89MTIzNjI3LFRwPTY0MzIyLFNwPTQzNDcxLEY3PVwiZm9yX29mX2Fzc2lnbm1lbnRfcGF0dGVyblwiLEVwPTEyNjU4OSx1Xz00Mzc4NCxJRD1cIkludGVybmFsIEVycm9yOiBGb3VuZCBvYmplY3QgcHJpdmF0ZSBwcm9wXCIsaV89MTgzOTgzLHFyPVwiaWRcIixmXz0xMjMxOTAsZ3A9XCJmaW5hbGx5XCIsQXA9MTIwMDcwLGNfPTcyMDk1LFE3PVwic3ludGF4XCIsc189MTEwNTkxLEFzPVwiZmFsc2VcIixPRD0tMTAsUHA9XCJBc3NpZ25tZW50UGF0dGVyblwiLEc3PVwidHlwZW9mX2V4cHJlc3Npb25cIixvXz00Mzc2NCxSRD1cIkZ1bmN0aW9uVHlwZVBhcmFtXCIscTc9XCJmdW5jdGlvbl9ib2R5X2FueVwiLHZfPTEyNjYyNyxhXz03MTk5OCxsXz0xMjY1NDMsSDc9XCJjYWxsX3R5cGVfYXJnXCIscF89NjQzMTYsTnA9NjQyODUsZF89ODQ1NCx5Xz0xMzcsTEQ9XCIqKlwiLGI3PVwib2JqZWN0X3R5cGVfcHJvcGVydHlfc2V0dGVyXCIsbV89Njg2MDcsdm49MTA4LGtfPVwib3V0XCIsaF89Njg3OTkseXY9NjUyNzgseHU9XCJqc3hfbWVtYmVyX2V4cHJlc3Npb25cIixfXz05MjcyOCxtdj1cIm51bGxcIix3Xz02NjQzMSxUXz03MjI0OSxhbj0xMjgsQ3A9MTE5OTk0LFNfPTY2MjA3LEVfPTQzNTgzLElwPVwiZWxzZVwiLE9wPTk0MTc5LFJwPTExNzM1LGdfPTY0OTExLHJ1PVwianN4X2F0dHJpYnV0ZV9uYW1lX25hbWVzcGFjZWRcIixNRD1cIiFcIixBXz00MjUzOSxQXz03MjI1MCxOXz03MTIxNSxDXz02OTc0NixJXz02NTQ4NyxldT1cInBhdHRlcm5fb2JqZWN0X3Byb3BlcnR5X2tleVwiLEREPVwiLCBcIixPXz04NTA1LFJfPVwiPVwiLExfPTY0MTExLE1fPTg1MDcsTHA9MTIwMTM0LE1wPVwid2hpbGVcIixEXz0xMjA1OTYsVV89NDMwMDIsQjM9XCJwcm90ZWN0ZWRcIixqXz02ODQ3OSxKXz00MzM5NSxYXz02ODI1MixVRD1cInZcIixZXz03MDI3OCxWXz1cInJlbmRlcnNUeXBlXCIsel89NzA4NTMsRHA9MTIwMTQ1LEtfPTY5Mjk3LEJfPTczMTEyLFVwPTg0ODgsV189NjgzNTEsWl89NDI2NTUsdHU9XCJmb3Jfb2ZfbGVmdF9kZWNsYXJhdGlvblwiLCRfPTQ0MDMxLEZfPVwiRmFpbHVyZVwiLFFfPTkyMTU5LG51PVwib2JqZWN0X2tleV9pZGVudGlmaWVyXCIsakQ9MTk1LGt2PVwiYmlnaW50XCIsdXU9XCJpbXBvcnRfZGVmYXVsdF9zcGVjaWZpZXJcIixodj0yNTYsaXU9XCJtZW1iZXJcIixKRD1cIiE9PVwiLGZ1PVwiY29tcG9uZW50X2lkZW50aWZpZXJcIixHXz03MzAwOCxxXz03MjI4MyxqcD0xMjY1MDAsSnA9MTIwMTI3LGN1PVwianN4X2F0dHJpYnV0ZV9uYW1lXCIsc3U9XCJmb3Jfc3RhdGVtZW50X2luaXRcIixIXz02NzcxMSxvdT1cInByaXZhdGVfbmFtZVwiLFhwPVwiY2FzZVwiLFlwPTg0ODksdnU9XCJpbXBvcnRfc3BlY2lmaWVyXCIsYl89NjQyNzkseHc9OTQwOTgsWEQ9MTQ4LHJ3PTExOTk3NCxhdT1cInBhdHRlcm5fc3RyaW5nX2xpdGVyYWxcIixldz03Mjk2OSxZRD0xOTMsVkQ9XCIhPVwiLFZwPTEyNjUyMCx0dz03MTk0NCx6RD0yNTksbnc9NDIxOTEsbHU9XCJnZW5lcmljX3F1YWxpZmllZF9pZGVudGlmaWVyX3R5cGVcIixfdj1cImltcGxlbWVudHNcIix1dz0xOTQ1NTksS0Q9XCIlXCIsVzM9XCJoYXNVbmtub3duTWVtYmVyc1wiLGl3PTcxMDM5LEJEPTIxMSxmdz04MzUyNixwdT1cImluaXRcIixkdT1cImpzeF9hdHRyaWJ1dGVfdmFsdWVcIixjdz03MDI3MSxoYT0yNDAseXU9XCJmdW5jdGlvbl90eXBlX3JldHVybl9hbm5vdGF0aW9uXCIsc3c9NzAwMTgsb3c9XCJyZXN0XCIsbXU9XCJyZWFkb25seV90eXBlXCIsdnc9NTEyLGF3PTY4MDk1LGx3PTEyMDAwMyx6cD0xMjY1NjMsS3A9NzEyMzYscHc9NjkzNzUsZHc9Njg4NTAseXc9NzAxMDUsbXc9NDM4NjYsQnA9ODg4OTYwMzMzLGt3PTQzMDEzLGt1PVwiYXNzaWdubWVudF9wYXR0ZXJuXCIsaHc9XCJzcGVjaWZpZXJzXCIsV0Q9NzEwLFpEPTE0NSxsbj1cImFzXCIsX3c9MTIwNTcwLHd3PTExNTA3LCREPTIwNCxodT1cImpzeF9lbGVtZW50X25hbWVfaWRlbnRpZmllclwiLF91PVwicGF0dGVybl9vYmplY3RfcHJvcGVydHlfc3RyaW5nX2xpdGVyYWxfa2V5XCIsd3U9XCJjbGFzc19leHByZXNzaW9uXCIsRkQ9MjU3LFR3PTQ0MDAyLFN3PTgyOTQzLF9hPVwic3JjL3BhcnNlci90eXBlX3BhcnNlci5tbFwiLHdhPVwidGVzdFwiLFFEPS02NyxFdz02NDIxNyxXcD1cInBhY2thZ2VcIixHRD1cImNvbGxlY3RfY29tbWVudHNcIixxRD1cIlBlcnZhc2l2ZXMuZG9fYXRfZXhpdFwiLGd3PTEyNTE4MyxBdz00MjYwNixUdT1cInR1cGxlX2VsZW1lbnRcIixTdT1cImVudW1fYm9vbGVhbl9tZW1iZXJcIixQdz02NTMxMixacD0xMTk5ODEsTnc9NjU0OTUsJHA9MTIwMDg1LEhEPS04MCxiRD0xMzgsRnA9MTI2NTU1LEN3PTY1Mjc2LG0xPTEyOCx4VT1cInsgXCIsRXU9XCJmb3Jfc3RhdGVtZW50XCIsZ3U9XCJjbGFzc19tZXRob2RcIixRcD1cImlmXCIsQXU9XCJnZW5lcmljX3R5cGVcIixScj0xMTMsSXc9NDMwNzEsT3c9NzIwMDEsUnc9NzExMzEsTHc9NzAwMDIsTXc9NDI4ODgsR3A9ODQ2OSxaMz1cImluc3RhbmNlb2ZcIixEdz0xMTUwMixxcD05NDE3OCxVdz02NDMyMSxqdz02NDkxMyxyVT1cIkRpdmlzaW9uX2J5X3plcm9cIixKdz05Mjg3OSxYdz03MTk0NSxZdz0xODUsVnc9NjY5MzgsSHA9NjU1MzUsenc9MTEzODAwLGVVPVwiOiBmaWxlIGRlc2NyaXB0b3IgYWxyZWFkeSBjbG9zZWRcIixicD0yMjMsdFU9XCIqPVwiLEt3PTY4ODk5LFB1PVwic3dpdGNoX2Nhc2VcIixOdT1cInBhdHRlcm5fYXJyYXlfZWxlbWVudFwiLEN1PVwiZW51bV9zdHJpbmdfbWVtYmVyXCIsSXU9XCJwYXR0ZXJuX29iamVjdF9wcm9wZXJ0eV9iaWdpbnRfbGl0ZXJhbF9rZXlcIixuVT1cInZpc2l0X3RyYWlsaW5nX2NvbW1lbnRcIix4OD1cImV4cG9ydFwiLHI4PTEyMDEyMixlOD00MzgyMyxCdz00Mzc5MixXdz00MjUyNyxadz03MDcyNixPdT1cImVudW1fZGVmYXVsdGVkX21lbWJlclwiLCR3PTY4NDk3LHQ4PTcyMzQ5LFJ1PVwicHJvZ3JhbVwiLEx1PVwibWVtYmVyX3R5cGVfaWRlbnRpZmllclwiLEZ3PVwib2JqZWN0XCIsTXU9XCJmb3Jfb2Zfc3RhdGVtZW50X2xoc1wiLFF3PTExMzc5MSxHdz02NzM5MSxEdT1cImpzeF9zcHJlYWRfY2hpbGRcIixuOD0xMjY1NTQsdTg9ODUyNixpOD00Mzg4MCxmOD02OTQxNSxxdz00MzgyMixVdT1cInBhdHRlcm5faWRlbnRpZmllclwiLEh3PTkzMDUyLFRhPVwicmVhZG9ubHlcIixMZT1cIm5hbWVcIixidz02ODExOSx4VD03MTQ5NCxyVD0xMjAxMjEsYzg9ODQ4Nix1VT0yMDQ3LGp1PVwiZW51bV9zeW1ib2xfYm9keVwiLGlVPTE0MixmVT1cIlByb3BlcnR5RGVmaW5pdGlvblwiLGVUPTE3Nzk3NixKdT1cImRlY2xhcmVfY2xhc3NcIix0VD02NTQ4OSxuVD03MjM2Nyx1VD03MDQ0MCxYdT1cImltcG9ydF9uYW1lZF9zcGVjaWZpZXJcIixjVT1cIlBvcHBpbmcgbGV4IG1vZGUgZnJvbSBlbXB0eSBzdGFja1wiLGlUPTY4MTExLGZUPTY2NDYzLHNVPVwiKi0vXCIsY1Q9NDMxODcsczg9ODQ4NyxzVD0xMTU2NyxvVD02Nzg2MSx2VD1gXG5gLGFUPTY2MzgzLFl1PVwiZGVjbGFyZV9pbnRlcmZhY2VcIixsVD0tMjQ5NzYxOTEscFQ9MjM4LGRUPS0yNCxvVT1cIkAgfUBdXCIseVQ9NDM2NDUsdlU9MTc2LG1UPTExOTk3NixvOD02OTk1OSxrVD0xMjY1MTksaFQ9XCI7XCIsYVU9XCJ0cmFpbGluZ0NvbW1lbnRzXCIsdjg9NjU1NDgsVnU9XCJudW1iZXJfbGl0ZXJhbFwiLFNhPTQ0OTU0MDE5NyxfVD00MzcwNCxhOD0xMjY1ODQsd1Q9ODQ2NyxsVT1cInx8XCIsbDg9MTE2OTUsVFQ9XCJleHBvcnRlZFwiLFNUPTEyMDcxMixQcz1cInZvaWRcIixwVT1cIm1peGluc1wiLEVUPTkyNzgzLGdUPTIxNSx6dT1cImJvZHlfZXhwcmVzc2lvblwiLGRVPVwiJW5pXCIsJDM9XCI+XCIsS3U9XCJqc3hfY2hpbGRcIixBVD04NTE2LEJ1PVwib3B0aW9uYWxfaW5kZXhlZF9hY2Nlc3NfdHlwZVwiLFd1PVwidHlwZW9mX3R5cGVcIixadT1cInNwcmVhZF9lbGVtZW50XCIsUFQ9NDI5NjMseVU9XCJAW1wiLCR1PVwiY29tcG9uZW50X3BhcmFtc1wiLE5UPTQzMDQyLHA4PVwiXHUwMDAxXHUwMDAyXCIsRnU9XCJmdW5jdGlvbl9cIixkOD1cImZvclwiLHk4PTY1NTc1LHBuPVwicGFyYW1zXCIsQ1Q9MTY4LG1VPVwid2luMzJcIix3dj04MjAyLGtVPVwiQFwiLG04PVwiXlwiLElUPTE2NCxudD1cIm9wdGlvbmFsXCIsT1Q9NjU1NzQsRjM9XCJib29sZWFuXCIsaFU9MTM5LFJUPTEyNTQ4LGs4PTEyMDUzOSxfVT1cIk5vdF9mb3VuZFwiLGg4PTI0NixRdT1cImV4cHJlc3Npb25fc3RhdGVtZW50XCIsTFQ9XCJFQkFERlwiLE1UPTY2ODE1LEd1PVwibW9kdWxlX3JlZl9saXRlcmFsXCIsRFQ9NTUyMDMscXU9XCJmdW5jdGlvbl9wYXJhbV90eXBlXCIsVVQ9NzMwNjQsXzg9NzAyNzksalQ9MTEwNTgwLHdVPTIzMyxKVD1cIjxcIixUVT1cInZpc2l0X2xlYWRpbmdfY29tbWVudFwiLFhUPTY2ODU1LFlUPTY2OTY2LFZUPTY2NDk5LHpUPTExMTM1NSxLVD02ODY4MCxCVD0yMDYsU1U9XCItLVwiLFdUPTY1NDk3LHc4PTExNzExLEh1PVwiZnVuY3Rpb25fcGFyYW1fcGF0dGVyblwiLFR2PVwiY29uc3RydWN0b3JcIixaVD01NzYwLEVVPVwiaW5maW5pdHlcIixUOD00MzY0MixmQzA9XCJmc1wiLCRUPTkyOTkxLFM4PTEyNjU0NCxGVD0xMDE2NDAsRTg9NzIxNjIsUVQ9Njc1ODMsZzg9ODQ2OCxEMj1cInR5cGVQYXJhbWV0ZXJzXCIsZ1U9XCJlbGVtZW50c1wiLEdUPTcxNDIzLEFVPVwiU3lzX2Jsb2NrZWRfaW9cIixidT1cImludGVyZmFjZV9kZWNsYXJhdGlvblwiLHhpPVwidmFyaWFibGVfZGVjbGFyYXRpb25cIixyaT1cImZ1bmN0aW9uX3Jlc3RfcGFyYW1cIixlaT1cInR5cGVcIixxVD1cIkludmFsaWQgbnVtYmVyIFwiLEhUPVwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiLGJUPTY5NDA0LHRpPVwianN4X2VsZW1lbnRfbmFtZV9tZW1iZXJfZXhwcmVzc2lvblwiLEE4PVwia2V5b2ZcIixQVT0yODUsUDg9XCJuZXZlclwiLG5pPVwid2l0aF9cIixkbj0zMjc2OCxOVT1cInw9XCIsTjg9NzA0MDQsQzg9NzA0NDEseFM9NDI5NjksUTM9XCJkZWNsYXJlXCIsclM9NzMwNjEsdWk9XCJvYmplY3RfdHlwZVwiLGlpPVwib2JqZWN0X3Byb3BlcnR5X3ZhbHVlX3R5cGVcIixlUz02OTY4NyxDVT1cIkludmFsaWQgYmluYXJ5L29jdGFsIFwiLElVPTIzMCx0Uz02NDMyNCxPVT1cInJhbmdlXCIsUlU9XCJpbmZlclwiLG5TPTEyMDc0NCxmaT1cImFycmF5X2VsZW1lbnRcIix1Uz03MDczMCxpUz00MzY0MSxMVT0xNjYsZlM9NzA0NjEsY1M9Njk4OTAsc1M9Njk0ODcsb1M9NzQ4NjIsdlM9NjgxNDksSTg9NzMwNjUsTVU9XCIlYVwiLGFTPTcyMzQ4LERVPTE3MixjaT1cImpzeF9leHByZXNzaW9uXCIsbFM9NjU2NjMscFM9MTI2NDk1LGRTPTI0NSx5Uz0xMjQ5MDcsc2k9XCJtZW1iZXJfcHJvcGVydHlfaWRlbnRpZmllclwiLFVVPTIyNixtUz00MzYxNSxvaT1cImNvbW1lbnRcIixPOD0xMTk5NjUsdmk9XCJjYXRjaF9jbGF1c2VfcGF0dGVyblwiLGFpPVwib2JqZWN0X3R5cGVfcHJvcGVydHlfZ2V0dGVyXCIsalU9MTM2LGtTPTQzMDE5LGhTPTY3NDU1LFI4PTEyNjYyOCxKVT0zMzE0MTY3MzAsWFU9XCJ0aGUgc3RhcnQgb2YgYSBzdGF0ZW1lbnRcIixfUz0xMjI2NTQsd1M9XCJzaG9ydGhhbmRcIixUUz00MzU5NSxTUz0xMTcxMCxsaT1cInR5cGVvZl9xdWFsaWZpZWRfaWRlbnRpZmllclwiLEVTPTcyNzUwLFlVPVwiZWxlbWVudFR5cGVcIixpMj1cInR5cGVBbm5vdGF0aW9uXCIsZ1M9MTI0ODk1LFZVPTE2MixMOD0xMTU1OSxBUz02NzM4Mix6VT1cIj8/PVwiLFBTPTcyMzI5LE5TPVwidGFyZ2V0XCIscGk9XCJjb21wb25lbnRfdHlwZVwiLEtVPTE4MCxDUz0xODksQlU9ODIwNixJUz00MzUxMyxPUz0xNzM4MjMsUlM9MTI2NDY3LGRpPVwidHlwZV9ndWFyZFwiLExTPTQzNzAwLE1TPTEyNzgzLE04PTgzMDUseWk9XCJ0eXBlX2Fubm90YXRpb25cIixXVT0xNDEsTWU9XCJicmVha1wiLEQ4PTQyOTk5LERTPTY1MDE5LFVTPTE2MCxqUz03MDQ2MCxtaT1cImV4cHJlc3Npb25fb3Jfc3ByZWFkXCIsSlM9XCIpXCIsa2k9XCJjbGFzc19wcml2YXRlX2ZpZWxkXCIsWFM9NTUyMTUsWVM9NjUzMzgsVlM9NDA5ODEsRzM9XCJtZW1iZXJzXCIsaGk9XCJpbXBvcnRfZGVjbGFyYXRpb25cIix6Uz02OTYzNCxVOD05NDAzMSxLUz1cIkVOT0VOVFwiLEJTPTg0NTcsWlU9XCJzYXRpc2ZpZXNcIixfaT1cImdlbmVyaWNfaWRlbnRpZmllcl90eXBlXCIsd2k9XCJmdW5jdGlvbl90aGlzX3BhcmFtXCIsV1M9NjY5OTMsVGk9XCJ0eXBlX1wiLFpTPTY3NDIzLCRTPTExNTU3LEZTPTEyNzk5LFFTPTIzOSxHUz05MzAyNixxUz02NjM3NyxIUz0xMjMxODAsJFU9MjIxLEZVPS01OTQ5NTM3MzcsYlM9Njc5NjcseEU9NDM1ODYsRGU9MTA1LFFVPVwic3JjL3BhcnNlci9mbG93X2xleGVyLm1sXCIsckU9NjY1NTksU2k9XCJjbGFzc19wcm9wZXJ0eV92YWx1ZVwiLGVFPTY3NjM3LEdVPVwiY2xvc2VkaXJcIix0RT00MzAxMCxuRT04NTIxLGo4PTY5OTU2LHVFPTQyOTU5LGlFPTIxMixmRT05MjczNSxKOD1cIn1cIixxMz1cIm1ldGhvZFwiLGNFPTExNDk4LFg4PTI0NyxzZT1cImVtcHR5XCIsRWk9MTY3NzcyMTUscVU9MTYxLHNFPTQyODg3LE5zPTExNixnaT1cInR5cGVfaWRlbnRpZmllcl9yZWZlcmVuY2VcIixZOD0xMjY2MzQsb0U9NjgwMjksSFU9XCJyZWdleHBcIix2RT03MDQxNCxIMz0xMjEsQWk9XCJ0ZW1wbGF0ZV9saXRlcmFsX2VsZW1lbnRcIixhRT04NDQ5LGxFPTEyNjU2MixTdj0xMjI4NyxwRT0tNDUsVjg9NjQyOTcsejg9MTI2NTIzLGRFPTQzMzAxLE90PTExMSx5RT0xMjY0OTgsbUU9NDM3NzYsYlU9XCJFRVhJU1RcIixrRT0xMTk4OTIsaEU9NDM4MDcseGo9NDA5NixFYT0yNTIsQ3M9MjU1LF9FPTY4Mjk1LFBpPVwidmFyaWFibGVfZGVjbGFyYXRvcl9wYXR0ZXJuXCIsTmk9XCJkb193aGlsZVwiLEs4PVwiY2F0Y2hcIix3RT02Njk2MixURT0xMjA2NTQsQ2k9MTI1LElpPVwibGFiZWxfaWRlbnRpZmllclwiLFNFPTExMjYzLEVFPTg1MjUsT2k9XCJhc3NpZ25tZW50XCIsZ0U9MTkxNDU2LEFFPTQzMjczLHJqPVwiJXVcIixQRT02NTM4MSxORT0xMTA5MjcsQ0U9NjU0NzksSUU9MTIwNTM4LEV2PVwiYXdhaXRcIixPRT03MTQ4NyxSRT1cImpzRXJyb3JcIixMRT0xMTA1ODgsTUU9MTIwMDg0LERFPTQyODkwLGdhPTIyNCxSaT1cIm9iamVjdF9rZXlcIixVRT00MzY5NixqRT03MzY0NyxKRT00Mzc2MSxYRT0xMjI5NSxZRT02NDk2NyxCOD0xMTY0Nyxlaj0xOTEsUnQ9MTIzLFZFPVwiZ2VuZXJhdG9yXCIsekU9MTIzNTgzLExpPVwiZm9yX29mX3N0YXRlbWVudFwiLE1pPVwiZW51bV9iaWdpbnRfYm9keVwiLEtFPTExMDk1OSxCRT05Mjk5NSxXRT0xMjA2ODYsWkU9XCJiXCIsJEU9MTE5OTY5LFc4PTEyNjUyMixaOD02NDMxOCxGRT03MTgzOSwkOD0xMjY2MDIsUUU9NjU5MDgsYjM9NjU1MzYsdGo9MjMxLG5qPS02MDIxNjIzMTAsdWo9XCJjb21tZW50X2JvdW5kc1wiLEx0PVwiLVwiLGlqPS01NSxEaT1cInBhdHRlcm5fb2JqZWN0X3Byb3BlcnR5XCIsR0U9NDM0OTMscUU9Njk1MDUsSEU9ODQ3MSxiRT0xODcsRjg9MTIwNzQ1LFVpPVwiZW51bV9tZW1iZXJfaWRlbnRpZmllclwiLHhnPTcxOTU5LHJnPTY2ODYzLGVnPTY1NTk0LFE4PTI1MyxHOD0nXCInLHE4PTcwMjg2LGppPVwianN4X2F0dHJpYnV0ZV92YWx1ZV9saXRlcmFsXCIsdGc9Njg0NDcsZmo9XCJ0aGVcIixuZz1cImluZGV4IG91dCBvZiBib3VuZHNcIixKaT1cImRlY2xhcmVfZXhwb3J0X2RlY2xhcmF0aW9uXCIsWGk9XCJqc3hfYXR0cmlidXRlXCIsWWk9XCJjbGFzc19leHRlbmRzXCIsSHI9MTIyLGwyPTEwNixWaT1cImJpbmRpbmdfcGF0dGVyblwiLHppPVwidHNfdHlwZV9jYXN0XCIsdWc9MTEzODA3LGlnPTkzOTUxLHhsPTExOSxmZz1cInR5cGVzXCIsY2c9ODMzNSxLaT1cInN0YXRlbWVudF9mb3JrX3BvaW50XCIsQWE9XCJfXCIsc2c9NjU1MDAsQmk9XCJmdW5jdGlvbl90eXBlXCIsb2c9NjgyMjAsV2k9XCJzdGF0ZW1lbnRfbGlzdFwiLFBhPS04MzU5MjU5MTEsdmc9MTIzNTM1LEg4PTQzODE1LGFnPTE5OSxiOD0xMjA1NzEsbGc9Njc1MTQsY2o9XCJQcm9wZXJ0eVwiLHg1PTcyNzEzLHNqPVwiVW5leHBlY3RlZCBcIixyNT0xNjksb2o9XCIsIGNoYXJhY3RlcnMgXCIsZTU9NDM4NjcscGc9NDI1MzcsWmk9XCJjb21wb25lbnRfZGVjbGFyYXRpb25cIix2aj1cIiA6IGlzIGEgZGlyZWN0b3J5XCIsJGk9XCJvYmplY3Rfa2V5X251bWJlcl9saXRlcmFsXCIsWXI9MTI3LGYyPS0zNixybD05MTIwNjgzNjYsZWw9XCJkZWxldGVcIix1dD0xMTQsZGc9MTIwMDc2LEZpPVwicmVnZXhwX2xpdGVyYWxcIix5Zz02NTM3MCxtZz02NTQ4MSx2MT1cInZhbHVlXCIsa2c9Njg0MDUsdGw9XCJvcGVyYXRvclwiLG5sPVwiY29uc3RcIixhaj0yODMsSXM9MTA5LHQ1PVwiYW55XCIsaGc9Njk5NTgsX2c9NzA4MzEsd2c9NzMxMTEsVGc9NzI3NjcsU2c9XCJJZGVudGlmaWVyXCIsUWk9XCJqc3hfb3BlbmluZ19hdHRyaWJ1dGVcIixHaT1cImNvbmRpdGlvbmFsX3R5cGVcIixFZz1cImxvY1wiLGdnPTY3MDcxLG41PTEyMDAwNCxBZz00MzQ5MixQZz03MDAwNSxsaj0xODgsdTU9NzIyNzIsTmc9MTEzODkscGo9MjUxLENnPTczMDU1LGk1PTcwMjgwLGRqPTI4NixmNT0xMTE0MTExLElnPTY2NDIxLHlqPVwiU3RhY2tfb3ZlcmZsb3dcIixPZz03MDMwMSxSZz0xOTkwMyxtbz1cIjB4XCIsTGc9Njk5NjcsTWc9MTI0NDcsYzU9NjY1MTIsbWo9YEZhdGFsIGVycm9yOiBleGNlcHRpb24gJXNcbmAsdWw9MWUzLERnPTY5Mjk1LHM1PTEyMDA5Myxraj1cIj49XCIsaGo9MTQ5LG81PTY0MzI1LHFpPVwiY2xhc3NfaWRlbnRpZmllclwiLFVnPTExOTk2NyxqZz02ODQxNSxfaj1cImVuZFwiLEhpPVwiZW51bV9ib29sZWFuX2JvZHlcIixiaT1cIm1lbWJlcl9wcml2YXRlX25hbWVcIix4Zj1cInN1cGVyX2V4cHJlc3Npb25cIixKZz03MTk1NSxYZz0xMjY1MTQsdjU9Njc1OTMsWWc9NjY5MzksVmc9MTI1OTEsYTU9MTI2NTM4LHpnPTExMDU5MCxLZz03MjcwMyxCZz03MjEwNSxsNT02NTU5OCxXZz03MzcyNyxwNT0xMjY1MDQsZDU9MTI2NTUxLFpnPTcwMTQzLGlsPVwiZnJvbVwiLHJmPVwiY2xhc3NfcHJvcGVydHlcIixlZj1cImVudW1fbnVtYmVyX2JvZHlcIiwkZz00MjU1OSxGZz05Mzc1OSxRZz02Njk5NCx5bj1cInJpZ2h0XCIsd2o9MjI1LEdnPTY3NzAyLHFnPTY1NDczLEhnPTQzNjk3LHk1PTcwODU1LGJnPTExOTk5Myx4QT03MjEwMyxyQT0xNzgyMDUsdGY9XCJjYWxsX3R5cGVfYXJnc1wiLGVBPTY2NTExLG5mPVwiZXhwb3J0X2JhdGNoX3NwZWNpZmllclwiLHVmPVwiY29tcG9uZW50X3R5cGVfcGFyYW1cIixtbj03ODIxNzY2NjQsZ3Y9XCJnZXRcIixmbD1cImxvY2FsXCIsVGo9MjI4LGZmPVwib2JqZWN0X21hcHBlZF90eXBlX3Byb3BlcnR5XCIsY2Y9XCJjbGFzc19kZWNvcmF0b3JcIixTaj0yMjAsc2Y9XCJlbnVtX2JvZHlcIixFaj1cIjw8PVwiLHRBPTcxOTU2LG5BPTY5ODM5LE5hPVwic3VwZXJcIix1QT0xNzM3OTEsaUE9NzE5NDIsRjE9XCJleHByZXNzaW9uXCIsZkE9NzI0NDAsQ2E9MjU0LGNBPTcwNDEyLG9mPVwidHJ5X2NhdGNoXCIsZ2o9MzI3NTIsdmY9XCJkZWNsYXJlX21vZHVsZV9leHBvcnRzXCIsc0E9MTIzMjAsQWo9MTM0LG9BPTk0MTc1LGNsPVwiZW51bVwiLFBqPTE5NixhZj1cImltcG9ydF9zb3VyY2VcIix2QT00MzgxNCxhQT0xMjAwNjksbGY9XCJ3aGlsZV9cIixtNT0xMjY1MzcsbEE9NDMyNjIscGY9XCJmdW5jdGlvbl9yZXN0X3BhcmFtX3R5cGVcIixwQT02NjM3OCxrNT0xMTk5OTYsZGY9XCJkZWNsYXJlX2NvbXBvbmVudFwiLGRBPTczMDk3LHlBPTcwNzgzLG1BPTQzNTAzLGtBPTEzMTA3MSxoQT0xMTQ5MixfQT05Mjc2NixOaj0xNzMsd0E9MTEzNzcwLFRBPTczMDI5LFNBPTY2OTc4LHlmPVwidGFnZ2VkX3RlbXBsYXRlXCIsbWY9XCJqc3hfZWxlbWVudF9uYW1lXCIsa2Y9XCJmb3JfaW5pdF9kZWNsYXJhdGlvblwiLEVBPTEyMzIxMyxoZj1cIm9iamVjdF9pbmRleGVyX3Byb3BlcnR5X3R5cGVcIixfZj1cIm9iamVjdF9zcHJlYWRfcHJvcGVydHlfdHlwZVwiLGg1PTcyOTcwLF81PTcwODU0LGdBPTExMDkzMCxzbD1cInZhclwiLENqPTIxNyxBQT0xMTk5NzIsUEE9Njk2MjIsTkE9NjM3NDMsQ0E9NDIyMzcsSUE9ODcwNTMwNzc2LHc1PVwicmV0dXJuVHlwZVwiLElqPTU2MzIwLE9qPTE0MyxJYT1cImNvbXB1dGVkXCIsT0E9NDI3MzUsd2Y9XCJhcmdfbGlzdFwiLFJBPTY3NDYxLFRmPVwiZXhwb3J0X25hbWVkX2RlY2xhcmF0aW9uXCIsTEE9NzI4MTcsTUE9NzM0MzksREE9NDM3ODIsVUE9NjY3NzUsakE9NzA2NTUsVDU9XCJib29sXCIsSkE9NjUxNDAsWEE9NzUwNzUsWUE9MTI2NjUxLFZBPTcxOTQ3LHpBPTQyOTYxLEtBPTEyNzM1LEJBPTc4ODk0LFdBPTY0MjYyLFpBPTIzNyxRMj1cImludGVyZmFjZVwiLFJqPVwiTWF0Y2hfZmFpbHVyZVwiLCRBPTQyOTYyLEZBPTY5NzQ4LExqPVwibGVhZGluZ0NvbW1lbnRzXCIsU2Y9XCJ0aGlzX2V4cHJlc3Npb25cIixvbD00NjE4OTQ4NTcsUzU9MTI1OTIsTWo9ODIwNCxRQT0xMTk4MDcsR0E9NjYzNDgsRWY9XCJkZWNsYXJlX3ZhcmlhYmxlXCIscUE9ODM0OCxnZj1cIm9wdGlvbmFsX21lbWJlclwiLEFmPTEyMCxQZj1cImFycm93X2Z1bmN0aW9uXCIsSEE9NzI3NjgsYkE9NzA4NTEsTmY9XCJhcnJheVwiLHhQPTQzMjQ5LEU1PTEyNjQ2OCxyUD0xNzc5ODMsZVA9XCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIsdFA9MTI2NTUwLG5QPTY0ODQ3LENmPVwiYmluZGluZ190eXBlX2lkZW50aWZpZXJcIix1UD0xMjAxMzIsSWY9XCJmdW5jdGlvbl9wYXJhbXNcIixpUD05MzA3MSx2bD0xMDI0LGZQPTQyNzgzLERqPTEwMzkxMDA2NzMsVWo9XCJAe1wiLGNQPTEyMzUyLHNQPTQyNjUzLG9QPTEyMDYyOCxqaj0yNjQsT2Y9XCJkZWNsYXJlX2Z1bmN0aW9uXCIsUmY9XCJmb3JfaW5fc3RhdGVtZW50X2xoc1wiLHZQPTcyMjcxLGFQPTY5ODA3LGxQPTY3ODI2LExmPVwic3ludGF4X29wdFwiLE1mPVwib2JqZWN0X2tleV9iaWdpbnRfbGl0ZXJhbFwiLEpqPTI0MyxwUD05NDAzMixYaj0yNjUsWWo9XCJVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZVwiLFZqPS0xMDUzMzgyMzY2LGRQPTcyMjQyLERmPVwidmFyaWFuY2Vfb3B0XCIseVA9MTAxNjMxLG1QPVwiYXJndW1lbnRzXCIsa1A9NzIxNjEsaFA9ODUxMSxnNT1cInVua25vd25cIixfUD00MzU2MCx6aj1cInRoZSBlbmQgb2YgYW4gZXhwcmVzc2lvbiBzdGF0ZW1lbnQgKGA7YClcIixLaj0xMDI2LHdQPTEyNTQzLFRQPTExNjcwLEJqPVwiP1wiLFNQPTY5MjQ3LEE1PTExNjMxLFA1PVwibGluZVwiLEVQPTcyMjAyLFVmPVwicGF0dGVybl9vYmplY3RfcmVzdF9wcm9wZXJ0eVwiLE10PVwiIFwiLGdQPTQzNDg3LE9zPTExNSxBUD0tNjczOTUwOTMzLGpmPVwiaW50ZXJzZWN0aW9uX3R5cGVcIixQUD0xMjAxNDQsYWw9XCJpc1wiLE5QPTE3ODIwNyxDUD0xMDAzNDMsV2o9XCJ8fD1cIixaaj1cImZcIixONT04NDU1LEpmPTEwMixYZj1cInBhdHRlcm5fb2JqZWN0X3Byb3BlcnR5X251bWJlcl9saXRlcmFsX2tleVwiLElQPTcwNDE4LE9QPTg1NDMsJGo9XCJJbnRlcm5hbCBFcnJvcjogRm91bmQgcHJpdmF0ZSBmaWVsZCBpbiBvYmplY3QgcHJvcHNcIixDNT0xMjY1NDAsSTU9MTE5OTk1LEF2PTgyODcsWWY9XCJpbmRleGVkX2FjY2Vzc190eXBlXCIsVmY9XCJleHBvcnRfbmFtZWRfc3BlY2lmaWVyXCIsRmo9MjI0LFJQPTEyNDkyNixMUD0tMTAzLE1QPTE2NyxPNT02NTM0NCxSNT0xMjY1MzAsRFA9MTEzNzg4LFVQPTY3NTA1LGpQPVwicHJvcGVydHlcIixKUD00MzAxNCxVZT1cInJldHVyblwiLGtvPS04NSxYUD0xMjY2MDEsUWo9MjE0LEdqPVwiY2hpbGRyZW5cIix6Zj1cInR5cGVfYWxpYXNcIixMNT00MzI1OSxZUD0xMjY1ODMsVlA9NzE5NTgselA9NjU2MTMsS1A9Njc0MzEsTTU9MTI2NTM1LEJQPTY5NTk5LEtmPVwidHlwZV9wYXJhbXNcIixCZj1cIm9iamVjdF9rZXlfY29tcHV0ZWRcIixXUD0xMjQ5MTAsVTI9XCJ2YXJpYW5jZVwiLEQ1PTExNzI3LFpQPTY2OTU0LCRQPTEyNjQ2MyxXZj1cImNhdGNoX2JvZHlcIixGUD02OTQ0NSxaZj1cInR5cGVfcGFyYW1cIiwkZj1cImNvbXBvbmVudF90eXBlX3BhcmFtc1wiLFFQPTEyNDkwMixVNT0xMjA2ODcscWo9XCJjb2xsZWN0X2NvbW1lbnRzX29wdFwiLEdQPTE1LHFQPTEyMDQ4NSxIUD03MDQxNixiUD0xMjUyNTksRmY9XCJqc3hfbmFtZXNwYWNlZF9uYW1lXCIseE49NDM3MTIsck49NzI3MTIsSGo9XCJ+XCIsajU9MTI0NDgsUWY9XCJqc3hfbWVtYmVyX2V4cHJlc3Npb25fb2JqZWN0XCIsSjU9MTI2NDk5LFg1PS05NyxHZj1cInBhdHRlcm5fb2JqZWN0X3Byb3BlcnR5X2lkZW50aWZpZXJfa2V5XCIsYmo9MjE5LHFmPVwiY29tcG9uZW50X2JvZHlcIixIZj1cIm9wYXF1ZV90eXBlXCIsYmY9XCIuXCIsZU49NDMwMDksdE49XCJjb25zZXF1ZW50XCIseEo9XCJTcHJlYWRFbGVtZW50XCIsRDE9XCJib2R5XCIscko9MTc4LGVKPTIwMix4Yz1cImpzeF9vcGVuaW5nX2VsZW1lbnRcIixyYz1cImRlY2xhcmVfbW9kdWxlXCIsWTU9Njc2Mzgsbk49ODQ3NyxlYz1cIm9iamVjdF90eXBlX3Byb3BlcnR5XCIsdU49MTEwODgyLHRjPVwiZnVuY3Rpb25fYm9keVwiLGlOPTk0MTExLHRKPVwibW9kdWxlXCIsbko9XCJhbHRlcm5hdGVcIixmTj02NzgzOSxQdj04MTkxLGNOPTQzODgxLHVKPVwiOiBjbG9zZWRpciBmYWlsZWRcIixobz1cImtpbmRcIixuYz1cInR1cGxlX2xhYmVsZWRfZWxlbWVudFwiLE52PS00NixzTj02NzY0MCx1Yz1cImRlY2xhcmVfdHlwZV9hbGlhc1wiLFY1PTcwNzUwLG9OPTc3ODA4LGxsPVwiY29sdW1uXCIsaWM9XCJqc3hfY2xvc2luZ19lbGVtZW50XCIsdk49NjY5NzcsYU49XCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcIixsTj02NTc4NixmYz1cImZ1bmN0aW9uX2V4cHJlc3Npb25cIixEdD0xMDQsejU9MTE3MTkscE49MTE1MDUsZE49XCJta2RpclwiLHlOPTcwMzE5LGlKPVwiSW52YWxpZF9hcmd1bWVudFwiLG1OPTQzNzM4LGtOPTExMzgxNyxjYz1cImJpZ2ludF9saXRlcmFsXCIsaE49NzAwODQsZko9Mjc4LF9OPTEyNjU2NixLNT1cImRvXCIsQjU9NDI2MjIsc2M9XCJjb21wdXRlZF9rZXlcIixvYz1cInBhdHRlcm5fb2JqZWN0X3Byb3BlcnR5X2NvbXB1dGVkX2tleVwiLGNKPVwiZmQgXCIsVzU9MTI2NTcxLHdOPTEyNjYxOSxzSj0xNDAsX289XCJwcm90b3R5cGVcIixvSj0yMDgsVE49NjcwMDQsdko9MTMwLGFKPTI0MixsSj1cIj4+Pj1cIixTTj02ODg2MyxFTj0xMTcyNixVdD1cInJhd1wiLGdOPTY0NDY2LEcyPTEwNyxBTj02NzY3OSx2Yz1cImVudW1fc3RyaW5nX2JvZHlcIixaNT0yNDQscEo9XCJ1bnJlYWNoYWJsZSBqc3h0ZXh0XCIsZEo9XCIqXCIsUE49NjYzMzUsTk49MTI2NTcwLHlKPTIyOSxDTj1cIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIixJTj0xODQsT049Njc4MDcsUk49NzA3NTMsYWM9XCJib29sZWFuX2xpdGVyYWxcIixMTj02NTQzNyxNTj03MDQ1MSxETj02NzAwMixPYT0xMjQsbGM9XCJjb25kaXRpb25hbFwiLCQ1PTQzMjYwLG1KPVwiU3lzX2Vycm9yXCIsVU49MTIzMTM1LHBsPVwibWV0YVwiLGpOPTY0MTA5LHBjPVwicGF0dGVybl9hcnJheV9yZXN0X2VsZW1lbnRcIixKTj00MzI1NSxGNT02NzY0NCxkYz1cInBhdHRlcm5fb2JqZWN0X3Jlc3RfcHJvcGVydHlfcGF0dGVyblwiLHljPVwic2VxdWVuY2VcIixYTj02NTg1NSxZTj0xMTA5NTEsVk49Njc2NDMsbWM9XCJwcmVkaWNhdGVfZXhwcmVzc2lvblwiLGplPVwic3RhdGljXCIsek49MTIwNTEyLEtOPVwiZGVjbGFyYXRpb25cIixRNT02NDMxNyxCTj02ODQzNyxHNT0xMjY1NTgsa2M9XCJtZXRhX3Byb3BlcnR5XCIsV049MTE1NjQsaGM9XCJkZWNsYXJlX2VudW1cIixrbj1cInBhdHRlcm5cIixaTj0yMTYsJE49NjgxOTEscTU9XCJ1bmRlZmluZWRcIixINT04MzE5LGI1PTEyMDEzMyxrSj0xMzIsRk49NDIyMzksaEo9LTk5LFFOPTEyNDkyNyxHTj0xMjAwOTIscU49NDMxMzcsX2M9XCJjb21wb25lbnRfcmVzdF9wYXJhbVwiLF9KPTE0NCx3Sj1cImV4cGVjdGVkICpcIixITj0xMjUyNTEsVEo9XCIlbGlcIixiTj01NTI0Mix4Qz0xMjI5NCx3Yz1cImVudW1fbnVtYmVyX21lbWJlclwiLHdvPVwiaW5cIixTSj1cIlxcXFxcXFxcXCIsQ3Y9XCI6XCIsckM9NjgxMTUsRUo9XCJDeWd3aW5cIixlQz03NzgyMyx0Qz02NTYxNSx4ZD03MDE2MixnSj1cIi9zdGF0aWMvXCIsbkM9MTE1MTksdUM9NzI5NjYsaUM9MTI2ODYsQUo9MTY1LHJkPTE4MyxkbD0xMjksZWQ9NzIxOTIsZkM9NDI5NjQsdGQ9XCJ0cnlcIixuZD0xMjA2NTUsY0M9MTE3MDIsUEo9XCJleHByZXNzaW9uc1wiLHNDPTIwNDgsVGM9XCJjbGFzc19ib2R5XCIsb0M9NTUyMzgsTko9MjQwLHZDPTY2OTE1LGFDPTQzMzExLGxDPTQzMDE4LENKPTIzNSxwQz03MzY0OCxJSj1cIihbXi9dKylcIixkQz0xMjUyNTgseUM9NjQ4MjksbUM9Njg3MzUsT0o9XCIrK1wiLFJKPTE2MyxMSj1cInF1YWxpZmljYXRpb25cIixNSj01NzM0MyxESj05MzEsU2M9XCJkZWZhdWx0X29wdFwiLGtDPTcxMjM1LFVKPTg0NzIsaEM9NzE5MzQsako9MjA1LEpKPTIxOCxYSj1cImNhbGxlZVwiLF9DPTQzNzExLHdDPTY0Mjg0LFRDPTQzNzU0LFNDPTQzNzkwLFlKPVwiJUxpXCIsRWM9XCJwYXR0ZXJuX2FycmF5X3Jlc3RfZWxlbWVudF9wYXR0ZXJuXCIsdWQ9XCJkZWNvcmF0b3JzXCIsRUM9ODMwNCxnYz1cInN0YXRlbWVudFwiLGlkPTczMDYyLEFjPVwianN4X2NoaWxkcmVuXCIsZ0M9NzA0OTIsQUM9NjQyNTUsUEM9MTE2MzAsTkM9MTI1NSxmZD02NzU5MixjZD00MzUxOSxzZD02NDMxMSxvZD0xMjUzOSxDQz1cInByb3RvXCIsdmQ9MTIwNTEzLElDPTY4MDMxLEl2PVwic291cmNlXCIseWw9XCJhXCIsT0M9OTMwNDcsUkM9OTI5MjcsTEM9MTI2NTg4LE1DPTczNDU4LERDPTY3NzQyLFVDPTQzNzE0LFZKPTIzNixqQz0tMjUzMzEzMTk2LG1sPVwibGFiZWxcIix6Sj1cIkBbPDI+eyBcIixhZD0xMjY1MzksbGQ9MTI2NTUyLEpDPTEyMDQ4NyxLSj1cIk91dF9vZl9tZW1vcnlcIixYQz02MDU4NTc2OTUsWUM9OTQwMjYscGQ9MTI2NDk2LFRvPVwiYXN5bmNcIixCSj0yMDMsZGQ9MTI2NTYwLFZDPTY4Mjg3LFBjPVwidW5hcnlfZXhwcmVzc2lvblwiLHpDPS0yNjA2NTU1NyxLQz0xMTA1ODcsV0o9MjgwLHlkPTEyMDc3MSxCQz02OTc2MixXQz0xMjY1MDIsUmE9XCJzZXRcIixOYz1cIm9iamVjdF9cIixDYz1cInRlbXBsYXRlX2xpdGVyYWxcIixaQz00MzI1OCxJYz1cIm51bGxhYmxlX3R5cGVcIixScz1cImludF9vZl9zdHJpbmdcIixaSj1cIl49XCIsSmU9XCJwcmVkaWNhdGVcIixMYT1cInN0cmluZ1wiLG1kPTg0NTAsJEo9XCJjYW1saW50ZXJuYWxNb2QubWxcIiwkQz03MDI4NSxMcz1cIitcIixGQz0xMTA1NzUsRko9MTk4LE9jPVwiZXh0ZW5kc1wiLFFKPS02OTIwMzg0Mjksa2Q9Njc4MjcsR0o9MjEwLHFKPTIyNyxoZD1cImV4cGxpY2l0VHlwZVwiLF9kPTcwNDUyLFFDPTcwNDk3LE1hPTYzLGtsPVwicHJpdmF0ZVwiLEdDPTY0Mjk2LHFDPTY3NTkxLEhDPTkyOTA5LEhKPVwiVF9KU1hfVEVYVFwiLGJDPVwiRmF0YWwgZXJyb3I6IGV4Y2VwdGlvbiBcIix4ST0xMjAxMzcsd2Q9NjgxMjAsUmM9XCJwYXR0ZXJuX2FycmF5X2VcIixyST0xMTk5NjQsZUk9OTI4NjIsdEk9NjY0NjEsYko9XCImJj1cIix4WD0xNzQsYzI9ODIzMSxMYz1cIm51bGxfbGl0ZXJhbFwiLHJYPVwiLz1cIixuST02NjgxMSxUZD03MDEwOCx1ST02NzUwNCxpST0xMTY4NixmST02NzAwMSxjST1cIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIsc0k9NDM3NDEsb0k9NjYyMDQsUTE9ODIzMyxNYz1cInR5cGVfYW5ub3RhdGlvbl9oaW50XCIsdkk9MTIzMTk3LERjPVwib2JqZWN0X3Byb3BlcnR5XCIsZVg9XCIke1wiLFNkPTcwNDgwLHRYPVwiJiZcIixVYz1cInR5cGVfY2FzdFwiLGhsPVwiJWRcIixFZD04NDg0LG5YPTIwNyxhST03MDA2NixsST02ODMyNCxnZD0xMjA3MTMsdVg9MTM1LEFkPTEyNjU1NixxMj1cIjBcIixqMj1cInlpZWxkXCIsUGQ9MTI2NTkxLGl0PTEwMCxwST02OTU1MSxqYz1cImpzeF9lbGVtZW50X25hbWVfbmFtZXNwYWNlZFwiLGlYPTIzMixKYz1cIm9iamVjdF9rZXlfc3RyaW5nX2xpdGVyYWxcIixYYz1cImZ1bmN0aW9uX3RoaXNfcGFyYW1fdHlwZVwiLFljPVwicGF0dGVybl9vYmplY3RfcHJvcGVydHlfcGF0dGVyblwiLFhlPVwidGhyb3dcIixZZT1cInN3aXRjaFwiLGZYPTIwNDgsTmQ9MTE5OTcwLFZjPVwidG9wbGV2ZWxfc3RhdGVtZW50X2xpc3RcIixPdj0yNTAsZEk9MTI0MzgsemM9XCJjbGFzc19pbXBsZW1lbnRzXCIsS2M9XCJ2YXJpYWJsZV9kZWNsYXJhdG9yXCIseUk9NDM3MTMsQ2Q9NjgwOTYsbUk9NzA0NTcsa0k9MTI1MzgsaEk9MTE3MzQsY1g9XCItPVwiLHNYPTIzNCxCYz1cImNvbXBvbmVudF9wYXJhbV9uYW1lXCIsX0k9NDMxMjMsV2M9XCJjbGFzc19cIixvWD1cInxcIix2WD0yMDAsd0k9NDM1MTgsVEk9ODQ4MyxaYz1cImpzeF9hdHRyaWJ1dGVfbmFtZV9pZGVudGlmaWVyXCIsU0k9MTgxO2Z1bmN0aW9uIGZXKHgscixlLHQsdSl7aWYodDw9cilmb3IodmFyIGk9MTtpPD11O2krKyllW3QraV09eFtyK2ldO2Vsc2UgZm9yKHZhciBpPXU7aT49MTtpLS0pZVt0K2ldPXhbcitpXTtyZXR1cm4gMH1mdW5jdGlvbiBjVyh4KXtmb3IodmFyIHI9WzBdO3ghPT0wOyl7Zm9yKHZhciBlPXhbMV0sdD0xO3Q8ZS5sZW5ndGg7dCsrKXIucHVzaChlW3RdKTt4PXhbMl19cmV0dXJuIHJ9ZnVuY3Rpb24gc1coeCxyLGUpe3ZhciB0PW5ldyBBcnJheShlKzEpO3RbMF09MDtmb3IodmFyIHU9MSxpPXIrMTt1PD1lO3UrKyxpKyspdFt1XT14W2ldO3JldHVybiB0fWZ1bmN0aW9uIElkKHgscixlKXt2YXIgdD1TdHJpbmcuZnJvbUNoYXJDb2RlO2lmKHI9PTAmJmU8PXhqJiZlPT14Lmxlbmd0aClyZXR1cm4gdC5hcHBseShudWxsLHgpO2Zvcih2YXIgdT1reDswPGU7cis9dmwsZS09dmwpdSs9dC5hcHBseShudWxsLHguc2xpY2UocixyK01hdGgubWluKGUsdmwpKSk7cmV0dXJuIHV9ZnVuY3Rpb24gT2QoeCl7Zm9yKHZhciByPW5ldyBVaW50OEFycmF5KHgubCksZT14LmMsdD1lLmxlbmd0aCx1PTA7dTx0O3UrKylyW3VdPWUuY2hhckNvZGVBdCh1KTtmb3IodD14Lmw7dTx0O3UrKylyW3VdPTA7cmV0dXJuIHguYz1yLHgudD00LHJ9ZnVuY3Rpb24gTXMoeCxyLGUsdCx1KXtpZih1PT0wKXJldHVybiAwO2lmKHQ9PTAmJih1Pj1lLmx8fGUudD09MiYmdT49ZS5jLmxlbmd0aCkpZS5jPXgudD09ND9JZCh4LmMscix1KTpyPT0wJiZ4LmMubGVuZ3RoPT11P3guYzp4LmMuc3Vic3RyKHIsdSksZS50PWUuYy5sZW5ndGg9PWUubD8wOjI7ZWxzZSBpZihlLnQ9PTImJnQ9PWUuYy5sZW5ndGgpZS5jKz14LnQ9PTQ/SWQoeC5jLHIsdSk6cj09MCYmeC5jLmxlbmd0aD09dT94LmM6eC5jLnN1YnN0cihyLHUpLGUudD1lLmMubGVuZ3RoPT1lLmw/MDoyO2Vsc2V7ZS50IT00JiZPZChlKTt2YXIgaT14LmMsZj1lLmM7aWYoeC50PT00KWlmKHQ8PXIpZm9yKHZhciBvPTA7bzx1O28rKylmW3Qrb109aVtyK29dO2Vsc2UgZm9yKHZhciBvPXUtMTtvPj0wO28tLSlmW3Qrb109aVtyK29dO2Vsc2V7Zm9yKHZhciBsPU1hdGgubWluKHUsaS5sZW5ndGgtciksbz0wO288bDtvKyspZlt0K29dPWkuY2hhckNvZGVBdChyK28pO2Zvcig7bzx1O28rKylmW3Qrb109MH19cmV0dXJuIDB9ZnVuY3Rpb24gRGEoeCxyKXtpZih4PT0wKXJldHVybiBreDtpZihyLnJlcGVhdClyZXR1cm4gci5yZXBlYXQoeCk7Zm9yKHZhciBlPWt4LHQ9MDs7KXtpZih4JjEmJihlKz1yKSx4Pj49MSx4PT0wKXJldHVybiBlO3IrPXIsdCsrLHQ9PTkmJnIuc2xpY2UoMCwxKX19ZnVuY3Rpb24gUmQoeCl7eC50PT0yP3guYys9RGEoeC5sLXguYy5sZW5ndGgsXCJcXDBcIik6eC5jPUlkKHguYywwLHguYy5sZW5ndGgpLHgudD0wfWZ1bmN0aW9uIEVJKHgpe2lmKHgubGVuZ3RoPDI0KXtmb3IodmFyIHI9MDtyPHgubGVuZ3RoO3IrKylpZih4LmNoYXJDb2RlQXQocik+WXIpcmV0dXJuITE7cmV0dXJuITB9ZWxzZSByZXR1cm4hL1teXFx4MDAtXFx4N2ZdLy50ZXN0KHgpfWZ1bmN0aW9uIGFYKHgpe2Zvcih2YXIgcj1reCxlPWt4LHQsdSxpLGYsbz0wLGw9eC5sZW5ndGg7bzxsO28rKyl7aWYodT14LmNoYXJDb2RlQXQobyksdTxhbil7Zm9yKHZhciBkPW8rMTtkPGwmJih1PXguY2hhckNvZGVBdChkKSk8YW47ZCsrKTtpZihkLW8+dnc/KGUuc3Vic3RyKDAsMSkscis9ZSxlPWt4LHIrPXguc2xpY2UobyxkKSk6ZSs9eC5zbGljZShvLGQpLGQ9PWwpYnJlYWs7bz1kfWY9MSwrK288bCYmKChpPXguY2hhckNvZGVBdChvKSkmLTY0KT09bTEmJih0PWkrKHU8PDYpLHU8Rmo/KGY9dC0xMjQxNixmPGFuJiYoZj0xKSk6KGY9MiwrK288bCYmKChpPXguY2hhckNvZGVBdChvKSkmLTY0KT09bTEmJih0PWkrKHQ8PDYpLHU8Tko/KGY9dC05MjU4MjQsKGY8Zlh8fGY+PTU1Mjk1JiZmPDU3MzQ0KSYmKGY9MikpOihmPTMsKytvPGwmJigoaT14LmNoYXJDb2RlQXQobykpJi02NCk9PW0xJiZ1PDI0NSYmKGY9aS02MzQ0NzE2OCsodDw8NiksKGY8NjU1MzZ8fGY+MTExNDExMSkmJihmPTMpKSkpKSksZjw0PyhvLT1mLGUrPVwiXFx1RkZGRFwiKTpmPnNuP2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyMzIrKGY+PjEwKSxJaisoZiYxMDIzKSk6ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShmKSxlLmxlbmd0aD52bCYmKGUuc3Vic3RyKDAsMSkscis9ZSxlPWt4KX1yZXR1cm4gcitlfWZ1bmN0aW9uIERzKHgscixlKXt0aGlzLnQ9eCx0aGlzLmM9cix0aGlzLmw9ZX1Ecy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy50KXtjYXNlIDk6cmV0dXJuIHRoaXMuYztkZWZhdWx0OlJkKHRoaXMpO2Nhc2UgMDppZihFSSh0aGlzLmMpKXJldHVybiB0aGlzLnQ9OSx0aGlzLmM7dGhpcy50PTg7Y2FzZSA4OnJldHVybiB0aGlzLmN9fSxEcy5wcm90b3R5cGUudG9VdGYxNj1mdW5jdGlvbigpe3ZhciB4PXRoaXMudG9TdHJpbmcoKTtyZXR1cm4gdGhpcy50PT05P3g6YVgoeCl9LERzLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbigpe3ZhciB4PXRoaXMudD09ND90aGlzLmMuc2xpY2UoKTp0aGlzLmM7cmV0dXJuIG5ldyBEcyh0aGlzLnQseCx0aGlzLmwpfTtmdW5jdGlvbiBsWCh4KXtyZXR1cm4gbmV3IERzKDAseCx4Lmxlbmd0aCl9ZnVuY3Rpb24gY0MwKHgpe3JldHVybiB4fWZ1bmN0aW9uICRjKHgpe3JldHVybiBsWCh4KX1mdW5jdGlvbiBGYyh4LHIsZSx0LHUpe3JldHVybiBNcygkYyh4KSxyLGUsdCx1KSwwfWZ1bmN0aW9uIHBYKHgpe3ZhciByPXAwLnByb2Nlc3M7aWYociYmci5lbnYmJnIuZW52W3hdIT1udWxsKXJldHVybiByLmVudlt4XTtpZihwMC5qc29vX3N0YXRpY19lbnYmJnAwLmpzb29fc3RhdGljX2Vudlt4XSlyZXR1cm4gcDAuanNvb19zdGF0aWNfZW52W3hdfXZhciBnST0wOyhmdW5jdGlvbigpe3ZhciB4PXBYKFwiT0NBTUxSVU5QQVJBTVwiKTtpZih4IT09dm9pZCAwKWZvcih2YXIgcj14LnNwbGl0KFZNKSxlPTA7ZTxyLmxlbmd0aDtlKyspaWYocltlXT09WkUpe2dJPTE7YnJlYWt9ZWxzZSBpZihyW2VdLnN0YXJ0c1dpdGgoXCJiPVwiKSlnST0rcltlXS5zbGljZSgyKTtlbHNlIGNvbnRpbnVlfSkoKTt2YXIgSjI9WzBdO2Z1bmN0aW9uIG9XKHgscil7cmV0dXJuKCF4LmpzX2Vycm9yfHxyfHx4WzBdPT1HcikmJih4LmpzX2Vycm9yPW5ldyBwMC5FcnJvcihcIkpzIGV4Y2VwdGlvbiBjb250YWluaW5nIGJhY2t0cmFjZVwiKSkseH1mdW5jdGlvbiBxMCh4LHIpe3JldHVybiBnST9vVyh4LHIpOnh9ZnVuY3Rpb24gdlcoeCxyKXt0aHJvdyBxMChbMCx4LHJdKX1mdW5jdGlvbiBzQzAoeCl7cmV0dXJuIHh9ZnVuY3Rpb24gQUkoeCxyKXt2Vyh4LHIpfWZ1bmN0aW9uIEcxKHgpe0FJKEoyLkludmFsaWRfYXJndW1lbnQseCl9ZnVuY3Rpb24gYVcoKXtHMShuZyl9ZnVuY3Rpb24gS3IoeCxyLGUpe2lmKGUmPUNzLHgudCE9NCl7aWYocj09eC5jLmxlbmd0aClyZXR1cm4geC5jKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpLHIrMT09eC5sJiYoeC50PTApLDA7T2QoeCl9cmV0dXJuIHguY1tyXT1lLDB9ZnVuY3Rpb24gVWEoeCxyLGUpe3JldHVybiByPj4+MD49eC5sJiZhVygpLEtyKHgscixlKX1mdW5jdGlvbiBvZSh4LHIpe3N3aXRjaCh4LnQmNil7ZGVmYXVsdDppZihyPj14LmMubGVuZ3RoKXJldHVybiAwO2Nhc2UgMDpyZXR1cm4geC5jLmNoYXJDb2RlQXQocik7Y2FzZSA0OnJldHVybiB4LmNbcl19fWZ1bmN0aW9uIFVzKHgscil7dmFyIGU9eC5sPj0wP3gubDp4Lmw9eC5sZW5ndGgsdD1yLmxlbmd0aCx1PWUtdDtpZih1PT0wKXJldHVybiB4LmFwcGx5KG51bGwscik7aWYodTwwKXt2YXIgaT14LmFwcGx5KG51bGwsci5zbGljZSgwLGUpKTtyZXR1cm4gdHlwZW9mIGkhPVwiZnVuY3Rpb25cIj9pOlVzKGksci5zbGljZShlKSl9ZWxzZXtzd2l0Y2godSl7Y2FzZSAxOnt2YXIgaT1mdW5jdGlvbihsKXtmb3IodmFyIGQ9bmV3IEFycmF5KHQrMSksaz0wO2s8dDtrKyspZFtrXT1yW2tdO3JldHVybiBkW3RdPWwseC5hcHBseShudWxsLGQpfTticmVha31jYXNlIDI6e3ZhciBpPWZ1bmN0aW9uKGwsZCl7Zm9yKHZhciBrPW5ldyBBcnJheSh0KzIpLGg9MDtoPHQ7aCsrKWtbaF09cltoXTtyZXR1cm4ga1t0XT1sLGtbdCsxXT1kLHguYXBwbHkobnVsbCxrKX07YnJlYWt9ZGVmYXVsdDp2YXIgaT1mdW5jdGlvbigpe2Zvcih2YXIgbz1hcmd1bWVudHMubGVuZ3RoPT0wPzE6YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShyLmxlbmd0aCtvKSxkPTA7ZDxyLmxlbmd0aDtkKyspbFtkXT1yW2RdO2Zvcih2YXIgZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDtkKyspbFtyLmxlbmd0aCtkXT1hcmd1bWVudHNbZF07cmV0dXJuIFVzKHgsbCl9fXJldHVybiBpLmw9dSxpfX1mdW5jdGlvbiBfbCgpe0cxKG5nKX1mdW5jdGlvbiB6MSh4LHIpe3JldHVybiByPj4+MD49eC5sZW5ndGgtMSYmX2woKSx4fWZ1bmN0aW9uIGxXKHgpe3JldHVybiBpc0Zpbml0ZSh4KT9NYXRoLmFicyh4KT49MjIyNTA3Mzg1ODUwNzIwMTRlLTMyND8wOnghPTA/MToyOmlzTmFOKHgpPzQ6M31mdW5jdGlvbiBwVyh4KXtyZXR1cm4gMH12YXIgZFc9TWF0aC5sb2cyJiZNYXRoLmxvZzIoMTEyMzU1ODIwOTI4ODk0NzRlMjkxKT09MTAyMDtmdW5jdGlvbiB5Vyh4KXtpZihkVylyZXR1cm4gTWF0aC5mbG9vcihNYXRoLmxvZzIoeCkpO3ZhciByPTA7aWYoeD09MClyZXR1cm4tMS8wO2lmKHg+PTEpZm9yKDt4Pj0yOyl4Lz0yLHIrKztlbHNlIGZvcig7eDwxOyl4Kj0yLHItLTtyZXR1cm4gcn1mdW5jdGlvbiBQSSh4KXt2YXIgcj1uZXcgRmxvYXQzMkFycmF5KDEpO3JbMF09eDt2YXIgZT1uZXcgSW50MzJBcnJheShyLmJ1ZmZlcik7cmV0dXJuIGVbMF18MH12YXIgZFg9TWF0aC5wb3coMiwtMjQpO2Z1bmN0aW9uIHlYKHgpe3Rocm93IHh9ZnVuY3Rpb24gbVgoKXt5WChKMi5EaXZpc2lvbl9ieV96ZXJvKX1mdW5jdGlvbiBmcih4LHIsZSl7dGhpcy5sbz14JkVpLHRoaXMubWk9ciZFaSx0aGlzLmhpPWUmc259ZnIucHJvdG90eXBlLmNhbWxfY3VzdG9tPVwiX2pcIixmci5wcm90b3R5cGUuY29weT1mdW5jdGlvbigpe3JldHVybiBuZXcgZnIodGhpcy5sbyx0aGlzLm1pLHRoaXMuaGkpfSxmci5wcm90b3R5cGUudWNvbXBhcmU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaGk+eC5oaT8xOnRoaXMuaGk8eC5oaT8tMTp0aGlzLm1pPngubWk/MTp0aGlzLm1pPHgubWk/LTE6dGhpcy5sbz54LmxvPzE6dGhpcy5sbzx4LmxvPy0xOjB9LGZyLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHgpe3ZhciByPXRoaXMuaGk8PDE2LGU9eC5oaTw8MTY7cmV0dXJuIHI+ZT8xOnI8ZT8tMTp0aGlzLm1pPngubWk/MTp0aGlzLm1pPHgubWk/LTE6dGhpcy5sbz54LmxvPzE6dGhpcy5sbzx4LmxvPy0xOjB9LGZyLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXt2YXIgeD0tdGhpcy5sbyxyPS10aGlzLm1pKyh4Pj4yNCksZT0tdGhpcy5oaSsocj4+MjQpO3JldHVybiBuZXcgZnIoeCxyLGUpfSxmci5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciByPXRoaXMubG8reC5sbyxlPXRoaXMubWkreC5taSsocj4+MjQpLHQ9dGhpcy5oaSt4LmhpKyhlPj4yNCk7cmV0dXJuIG5ldyBmcihyLGUsdCl9LGZyLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7dmFyIHI9dGhpcy5sby14LmxvLGU9dGhpcy5taS14Lm1pKyhyPj4yNCksdD10aGlzLmhpLXguaGkrKGU+PjI0KTtyZXR1cm4gbmV3IGZyKHIsZSx0KX0sZnIucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgcj10aGlzLmxvKngubG8sZT0ocipkWHwwKSt0aGlzLm1pKngubG8rdGhpcy5sbyp4Lm1pLHQ9KGUqZFh8MCkrdGhpcy5oaSp4LmxvK3RoaXMubWkqeC5taSt0aGlzLmxvKnguaGk7cmV0dXJuIG5ldyBmcihyLGUsdCl9LGZyLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5sb3x0aGlzLm1pfHRoaXMuaGkpPT0wfSxmci5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oaTw8MTY8MH0sZnIucHJvdG90eXBlLmFuZD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IGZyKHRoaXMubG8meC5sbyx0aGlzLm1pJngubWksdGhpcy5oaSZ4LmhpKX0sZnIucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgZnIodGhpcy5sb3x4LmxvLHRoaXMubWl8eC5taSx0aGlzLmhpfHguaGkpfSxmci5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgZnIodGhpcy5sb154LmxvLHRoaXMubWleeC5taSx0aGlzLmhpXnguaGkpfSxmci5wcm90b3R5cGUuc2hpZnRfbGVmdD1mdW5jdGlvbih4KXtyZXR1cm4geD14JjYzLHg9PTA/dGhpczp4PDI0P25ldyBmcih0aGlzLmxvPDx4LHRoaXMubWk8PHh8dGhpcy5sbz4+MjQteCx0aGlzLmhpPDx4fHRoaXMubWk+PjI0LXgpOng8NDg/bmV3IGZyKDAsdGhpcy5sbzw8eC0yNCx0aGlzLm1pPDx4LTI0fHRoaXMubG8+PjQ4LXgpOm5ldyBmcigwLDAsdGhpcy5sbzw8eC00OCl9LGZyLnByb3RvdHlwZS5zaGlmdF9yaWdodF91bnNpZ25lZD1mdW5jdGlvbih4KXtyZXR1cm4geD14JjYzLHg9PTA/dGhpczp4PDI0P25ldyBmcih0aGlzLmxvPj54fHRoaXMubWk8PDI0LXgsdGhpcy5taT4+eHx0aGlzLmhpPDwyNC14LHRoaXMuaGk+PngpOng8NDg/bmV3IGZyKHRoaXMubWk+PngtMjR8dGhpcy5oaTw8NDgteCx0aGlzLmhpPj54LTI0LDApOm5ldyBmcih0aGlzLmhpPj54LTQ4LDAsMCl9LGZyLnByb3RvdHlwZS5zaGlmdF9yaWdodD1mdW5jdGlvbih4KXtpZih4PXgmNjMseD09MClyZXR1cm4gdGhpczt2YXIgcj10aGlzLmhpPDwxNj4+MTY7aWYoeDwyNClyZXR1cm4gbmV3IGZyKHRoaXMubG8+Pnh8dGhpcy5taTw8MjQteCx0aGlzLm1pPj54fHI8PDI0LXgsdGhpcy5oaTw8MTY+Png+Pj4xNik7dmFyIGU9dGhpcy5oaTw8MTY+PjMxO3JldHVybiB4PDQ4P25ldyBmcih0aGlzLm1pPj54LTI0fHRoaXMuaGk8PDQ4LXgsdGhpcy5oaTw8MTY+PngtMjQ+PjE2LGUmc24pOm5ldyBmcih0aGlzLmhpPDwxNj4+eC0zMixlLGUpfSxmci5wcm90b3R5cGUubHNsMT1mdW5jdGlvbigpe3RoaXMuaGk9dGhpcy5oaTw8MXx0aGlzLm1pPj4yMyx0aGlzLm1pPSh0aGlzLm1pPDwxfHRoaXMubG8+PjIzKSZFaSx0aGlzLmxvPXRoaXMubG88PDEmRWl9LGZyLnByb3RvdHlwZS5sc3IxPWZ1bmN0aW9uKCl7dGhpcy5sbz0odGhpcy5sbz4+PjF8dGhpcy5taTw8MjMpJkVpLHRoaXMubWk9KHRoaXMubWk+Pj4xfHRoaXMuaGk8PDIzKSZFaSx0aGlzLmhpPXRoaXMuaGk+Pj4xfSxmci5wcm90b3R5cGUudWRpdm1vZD1mdW5jdGlvbih4KXtmb3IodmFyIHI9MCxlPXRoaXMuY29weSgpLHQ9eC5jb3B5KCksdT1uZXcgZnIoMCwwLDApO2UudWNvbXBhcmUodCk+MDspcisrLHQubHNsMSgpO2Zvcig7cj49MDspci0tLHUubHNsMSgpLGUudWNvbXBhcmUodCk+PTAmJih1LmxvKyssZT1lLnN1Yih0KSksdC5sc3IxKCk7cmV0dXJue3F1b3RpZW50OnUsbW9kdWx1czplfX0sZnIucHJvdG90eXBlLmRpdj1mdW5jdGlvbih4KXt2YXIgcj10aGlzO3guaXNaZXJvKCkmJm1YKCk7dmFyIGU9ci5oaV54LmhpO3IuaGkmZG4mJihyPXIubmVnKCkpLHguaGkmZG4mJih4PXgubmVnKCkpO3ZhciB0PXIudWRpdm1vZCh4KS5xdW90aWVudDtyZXR1cm4gZSZkbiYmKHQ9dC5uZWcoKSksdH0sZnIucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXt2YXIgcj10aGlzO3guaXNaZXJvKCkmJm1YKCk7dmFyIGU9ci5oaTtyLmhpJmRuJiYocj1yLm5lZygpKSx4LmhpJmRuJiYoeD14Lm5lZygpKTt2YXIgdD1yLnVkaXZtb2QoeCkubW9kdWx1cztyZXR1cm4gZSZkbiYmKHQ9dC5uZWcoKSksdH0sZnIucHJvdG90eXBlLnRvSW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG98dGhpcy5taTw8MjR9LGZyLnByb3RvdHlwZS50b0Zsb2F0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuaGk8PDE2KSpNYXRoLnBvdygyLDMyKSt0aGlzLm1pKk1hdGgucG93KDIsMjQpK3RoaXMubG99LGZyLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuaGk+PjgsdGhpcy5oaSZDcyx0aGlzLm1pPj4xNix0aGlzLm1pPj44JkNzLHRoaXMubWkmQ3MsdGhpcy5sbz4+MTYsdGhpcy5sbz4+OCZDcyx0aGlzLmxvJkNzXX0sZnIucHJvdG90eXBlLmxvMzI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb3wodGhpcy5taSZDcyk8PDI0fSxmci5wcm90b3R5cGUuaGkzMj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1pPj4+OCZzbnx0aGlzLmhpPDwxNn07ZnVuY3Rpb24gTGQoeCxyLGUpe3JldHVybiBuZXcgZnIoeCxyLGUpfWZ1bmN0aW9uIE1kKHgpe2lmKCFpc0Zpbml0ZSh4KSlyZXR1cm4gaXNOYU4oeCk/TGQoMSwwLGdqKTp4PjA/TGQoMCwwLGdqKTpMZCgwLDAsNjU1MjApO3ZhciByPXg9PTAmJjEveD09LTEvMD9kbjp4Pj0wPzA6ZG47ciYmKHg9LXgpO3ZhciBlPXlXKHgpKzEwMjM7ZTw9MD8oZT0wLHgvPU1hdGgucG93KDIsLUtqKSk6KHgvPU1hdGgucG93KDIsZS1HTSkseDwxNiYmKHgqPTIsZS09MSksZT09MCYmKHgvPTIpKTt2YXIgdD1NYXRoLnBvdygyLDI0KSx1PXh8MDt4PSh4LXUpKnQ7dmFyIGk9eHwwO3g9KHgtaSkqdDt2YXIgZj14fDA7cmV0dXJuIHU9dSZHUHxyfGU8PDQsTGQoZixpLHUpfWZ1bmN0aW9uIHdsKHgpe3JldHVybiB4LnRvQXJyYXkoKX1mdW5jdGlvbiBrWCh4LHIsZSl7aWYoeC53cml0ZSgzMixyLmRpbXMubGVuZ3RoKSx4LndyaXRlKDMyLHIua2luZHxyLmxheW91dDw8OCksci5jYW1sX2N1c3RvbT09ZXApZm9yKHZhciB0PTA7dDxyLmRpbXMubGVuZ3RoO3QrKylyLmRpbXNbdF08c24/eC53cml0ZSgxNixyLmRpbXNbdF0pOih4LndyaXRlKDE2LHNuKSx4LndyaXRlKDMyLDApLHgud3JpdGUoMzIsci5kaW1zW3RdKSk7ZWxzZSBmb3IodmFyIHQ9MDt0PHIuZGltcy5sZW5ndGg7dCsrKXgud3JpdGUoMzIsci5kaW1zW3RdKTtzd2l0Y2goci5raW5kKXtjYXNlIDI6Y2FzZSAzOmNhc2UgMTI6Zm9yKHZhciB0PTA7dDxyLmRhdGEubGVuZ3RoO3QrKyl4LndyaXRlKDgsci5kYXRhW3RdKTticmVhaztjYXNlIDQ6Y2FzZSA1OmZvcih2YXIgdD0wO3Q8ci5kYXRhLmxlbmd0aDt0KyspeC53cml0ZSgxNixyLmRhdGFbdF0pO2JyZWFrO2Nhc2UgNjpmb3IodmFyIHQ9MDt0PHIuZGF0YS5sZW5ndGg7dCsrKXgud3JpdGUoMzIsci5kYXRhW3RdKTticmVhaztjYXNlIDg6Y2FzZSA5Ongud3JpdGUoOCwwKTtmb3IodmFyIHQ9MDt0PHIuZGF0YS5sZW5ndGg7dCsrKXgud3JpdGUoMzIsci5kYXRhW3RdKTticmVhaztjYXNlIDc6Zm9yKHZhciB0PTA7dDxyLmRhdGEubGVuZ3RoLzI7dCsrKWZvcih2YXIgdT13bChyLmdldCh0KSksaT0wO2k8ODtpKyspeC53cml0ZSg4LHVbaV0pO2JyZWFrO2Nhc2UgMTpmb3IodmFyIHQ9MDt0PHIuZGF0YS5sZW5ndGg7dCsrKWZvcih2YXIgdT13bChNZChyLmdldCh0KSkpLGk9MDtpPDg7aSsrKXgud3JpdGUoOCx1W2ldKTticmVhaztjYXNlIDA6Zm9yKHZhciB0PTA7dDxyLmRhdGEubGVuZ3RoO3QrKyl7dmFyIHU9UEkoci5nZXQodCkpO3gud3JpdGUoMzIsdSl9YnJlYWs7Y2FzZSAxMDpmb3IodmFyIHQ9MDt0PHIuZGF0YS5sZW5ndGgvMjt0Kyspe3ZhciBpPXIuZ2V0KHQpO3gud3JpdGUoMzIsUEkoaVsxXSkpLHgud3JpdGUoMzIsUEkoaVsyXSkpfWJyZWFrO2Nhc2UgMTE6Zm9yKHZhciB0PTA7dDxyLmRhdGEubGVuZ3RoLzI7dCsrKXtmb3IodmFyIGY9ci5nZXQodCksdT13bChNZChmWzFdKSksaT0wO2k8ODtpKyspeC53cml0ZSg4LHVbaV0pO2Zvcih2YXIgdT13bChNZChmWzJdKSksaT0wO2k8ODtpKyspeC53cml0ZSg4LHVbaV0pfWJyZWFrfWVbMF09KDQrci5kaW1zLmxlbmd0aCkqNCxlWzFdPSg0K3IuZGltcy5sZW5ndGgpKjh9ZnVuY3Rpb24gaFgoeCl7c3dpdGNoKHgpe2Nhc2UgNzpjYXNlIDEwOmNhc2UgMTE6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMX19ZnVuY3Rpb24gbVcoeCxyKXt2YXIgZTtzd2l0Y2goeCl7Y2FzZSAwOmU9RmxvYXQzMkFycmF5O2JyZWFrO2Nhc2UgMTplPUZsb2F0NjRBcnJheTticmVhaztjYXNlIDI6ZT1JbnQ4QXJyYXk7YnJlYWs7Y2FzZSAzOmU9VWludDhBcnJheTticmVhaztjYXNlIDQ6ZT1JbnQxNkFycmF5O2JyZWFrO2Nhc2UgNTplPVVpbnQxNkFycmF5O2JyZWFrO2Nhc2UgNjplPUludDMyQXJyYXk7YnJlYWs7Y2FzZSA3OmU9SW50MzJBcnJheTticmVhaztjYXNlIDg6ZT1JbnQzMkFycmF5O2JyZWFrO2Nhc2UgOTplPUludDMyQXJyYXk7YnJlYWs7Y2FzZSAxMDplPUZsb2F0MzJBcnJheTticmVhaztjYXNlIDExOmU9RmxvYXQ2NEFycmF5O2JyZWFrO2Nhc2UgMTI6ZT1VaW50OEFycmF5O2JyZWFrfWV8fEcxKFwiQmlnYXJyYXkuY3JlYXRlOiB1bnN1cHBvcnRlZCBraW5kXCIpO3ZhciB0PW5ldyBlKHIqaFgoeCkpO3JldHVybiB0fWZ1bmN0aW9uIE5JKHgpe3ZhciByPW5ldyBJbnQzMkFycmF5KDEpO3JbMF09eDt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KHIuYnVmZmVyKTtyZXR1cm4gZVswXX1mdW5jdGlvbiBUbCh4KXtyZXR1cm4gbmV3IGZyKHhbN108PDB8eFs2XTw8OHx4WzVdPDwxNix4WzRdPDwwfHhbM108PDh8eFsyXTw8MTYseFsxXTw8MHx4WzBdPDw4KX1mdW5jdGlvbiBDSSh4KXt2YXIgcj14LmxvLGU9eC5taSx0PXguaGksdT0odCYzMjc2Nyk+PjQ7aWYodT09dVUpcmV0dXJuIHJ8ZXx0JkdQP05hTjp0JmRuPy0xLzA6MS8wO3ZhciBpPU1hdGgucG93KDIsLTI0KSxmPShyKmkrZSkqaSsodCZHUCk7cmV0dXJuIHU+MD8oZis9MTYsZio9TWF0aC5wb3coMix1LUdNKSk6Zio9TWF0aC5wb3coMiwtS2opLHQmZG4mJihmPS1mKSxmfWZ1bmN0aW9uIElJKHgpe2Zvcih2YXIgcj14Lmxlbmd0aCxlPTEsdD0wO3Q8cjt0KyspeFt0XTwwJiZHMShcIkJpZ2FycmF5LmNyZWF0ZTogbmVnYXRpdmUgZGltZW5zaW9uXCIpLGU9ZSp4W3RdO3JldHVybiBlfWZ1bmN0aW9uIGtXKHgscil7cmV0dXJuIG5ldyBmcih4JkVpLHg+Pj4yNCZDc3wociZzbik8PDgscj4+PjE2JnNuKX1mdW5jdGlvbiBPSSh4KXtyZXR1cm4geC5oaTMyKCl9ZnVuY3Rpb24gUkkoeCl7cmV0dXJuIHgubG8zMigpfXZhciBoVz1lcDtmdW5jdGlvbiBTbyh4LHIsZSx0KXt0aGlzLmtpbmQ9eCx0aGlzLmxheW91dD1yLHRoaXMuZGltcz1lLHRoaXMuZGF0YT10fVNvLnByb3RvdHlwZS5jYW1sX2N1c3RvbT1oVyxTby5wcm90b3R5cGUub2Zmc2V0PWZ1bmN0aW9uKHgpe3ZhciByPTA7aWYodHlwZW9mIHg9PVwibnVtYmVyXCImJih4PVt4XSkseCBpbnN0YW5jZW9mIEFycmF5fHxHMShcImJpZ2FycmF5LmpzOiBpbnZhbGlkIG9mZnNldFwiKSx0aGlzLmRpbXMubGVuZ3RoIT14Lmxlbmd0aCYmRzEoXCJCaWdhcnJheS5nZXQvc2V0OiBiYWQgbnVtYmVyIG9mIGRpbWVuc2lvbnNcIiksdGhpcy5sYXlvdXQ9PTApZm9yKHZhciBlPTA7ZTx0aGlzLmRpbXMubGVuZ3RoO2UrKykoeFtlXTwwfHx4W2VdPj10aGlzLmRpbXNbZV0pJiZfbCgpLHI9cip0aGlzLmRpbXNbZV0reFtlXTtlbHNlIGZvcih2YXIgZT10aGlzLmRpbXMubGVuZ3RoLTE7ZT49MDtlLS0pKHhbZV08MXx8eFtlXT50aGlzLmRpbXNbZV0pJiZfbCgpLHI9cip0aGlzLmRpbXNbZV0rKHhbZV0tMSk7cmV0dXJuIHJ9LFNvLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oeCl7c3dpdGNoKHRoaXMua2luZCl7Y2FzZSA3OnZhciByPXRoaXMuZGF0YVt4KjIrMF0sZT10aGlzLmRhdGFbeCoyKzFdO3JldHVybiBrVyhyLGUpO2Nhc2UgMTA6Y2FzZSAxMTp2YXIgdD10aGlzLmRhdGFbeCoyKzBdLHU9dGhpcy5kYXRhW3gqMisxXTtyZXR1cm5bQ2EsdCx1XTtkZWZhdWx0OnJldHVybiB0aGlzLmRhdGFbeF19fSxTby5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHgscil7c3dpdGNoKHRoaXMua2luZCl7Y2FzZSA3OnRoaXMuZGF0YVt4KjIrMF09UkkociksdGhpcy5kYXRhW3gqMisxXT1PSShyKTticmVhaztjYXNlIDEwOmNhc2UgMTE6dGhpcy5kYXRhW3gqMiswXT1yWzFdLHRoaXMuZGF0YVt4KjIrMV09clsyXTticmVhaztkZWZhdWx0OnRoaXMuZGF0YVt4XT1yO2JyZWFrfXJldHVybiAwfSxTby5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih4KXtzd2l0Y2godGhpcy5raW5kKXtjYXNlIDc6dmFyIHI9UkkoeCksZT1PSSh4KTtpZihyPT1lKXRoaXMuZGF0YS5maWxsKHIpO2Vsc2UgZm9yKHZhciB0PTA7dDx0aGlzLmRhdGEubGVuZ3RoO3QrKyl0aGlzLmRhdGFbdF09dCUyPT0wP3I6ZTticmVhaztjYXNlIDEwOmNhc2UgMTE6dmFyIHU9eFsxXSxpPXhbMl07aWYodT09aSl0aGlzLmRhdGEuZmlsbCh1KTtlbHNlIGZvcih2YXIgdD0wO3Q8dGhpcy5kYXRhLmxlbmd0aDt0KyspdGhpcy5kYXRhW3RdPXQlMj09MD91Omk7YnJlYWs7ZGVmYXVsdDp0aGlzLmRhdGEuZmlsbCh4KTticmVha319LFNvLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHgscil7aWYodGhpcy5sYXlvdXQhPXgubGF5b3V0fHx0aGlzLmtpbmQhPXgua2luZCl7dmFyIGU9dGhpcy5raW5kfHRoaXMubGF5b3V0PDw4LHQ9eC5raW5kfHgubGF5b3V0PDw4O3JldHVybiB0LWV9aWYodGhpcy5kaW1zLmxlbmd0aCE9eC5kaW1zLmxlbmd0aClyZXR1cm4geC5kaW1zLmxlbmd0aC10aGlzLmRpbXMubGVuZ3RoO2Zvcih2YXIgdT0wO3U8dGhpcy5kaW1zLmxlbmd0aDt1KyspaWYodGhpcy5kaW1zW3VdIT14LmRpbXNbdV0pcmV0dXJuIHRoaXMuZGltc1t1XTx4LmRpbXNbdV0/LTE6MTtzd2l0Y2godGhpcy5raW5kKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMTA6Y2FzZSAxMTpmb3IodmFyIGksZix1PTA7dTx0aGlzLmRhdGEubGVuZ3RoO3UrKyl7aWYoaT10aGlzLmRhdGFbdV0sZj14LmRhdGFbdV0saTxmKXJldHVybi0xO2lmKGk+ZilyZXR1cm4gMTtpZihpIT1mKXtpZighcilyZXR1cm4gTmFOO2lmKGk9PWkpcmV0dXJuIDE7aWYoZj09ZilyZXR1cm4tMX19YnJlYWs7Y2FzZSA3OmZvcih2YXIgdT0wO3U8dGhpcy5kYXRhLmxlbmd0aDt1Kz0yKXtpZih0aGlzLmRhdGFbdSsxXTx4LmRhdGFbdSsxXSlyZXR1cm4tMTtpZih0aGlzLmRhdGFbdSsxXT54LmRhdGFbdSsxXSlyZXR1cm4gMTtpZih0aGlzLmRhdGFbdV0+Pj4wPHguZGF0YVt1XT4+PjApcmV0dXJuLTE7aWYodGhpcy5kYXRhW3VdPj4+MD54LmRhdGFbdV0+Pj4wKXJldHVybiAxfWJyZWFrO2Nhc2UgMjpjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA4OmNhc2UgOTpjYXNlIDEyOmZvcih2YXIgdT0wO3U8dGhpcy5kYXRhLmxlbmd0aDt1Kyspe2lmKHRoaXMuZGF0YVt1XTx4LmRhdGFbdV0pcmV0dXJuLTE7aWYodGhpcy5kYXRhW3VdPnguZGF0YVt1XSlyZXR1cm4gMX1icmVha31yZXR1cm4gMH07ZnVuY3Rpb24gamEoeCxyLGUsdCl7dGhpcy5raW5kPXgsdGhpcy5sYXlvdXQ9cix0aGlzLmRpbXM9ZSx0aGlzLmRhdGE9dH1qYS5wcm90b3R5cGU9bmV3IFNvLGphLnByb3RvdHlwZS5vZmZzZXQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHR5cGVvZiB4IT1cIm51bWJlclwiJiYoeCBpbnN0YW5jZW9mIEFycmF5JiZ4Lmxlbmd0aD09MT94PXhbMF06RzEoXCJNbF9CaWdhcnJheV9jXzFfMS5vZmZzZXRcIikpLCh4PDB8fHg+PXRoaXMuZGltc1swXSkmJl9sKCkseH0samEucHJvdG90eXBlLmdldD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kYXRhW3hdfSxqYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHgscil7cmV0dXJuIHRoaXMuZGF0YVt4XT1yLDB9LGphLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRhdGEuZmlsbCh4KSwwfTtmdW5jdGlvbiBfWCh4LHIsZSx0KXt2YXIgdT1oWCh4KTtyZXR1cm4gSUkoZSkqdSE9dC5sZW5ndGgmJkcxKFwibGVuZ3RoIGRvZXNuJ3QgbWF0Y2ggZGltc1wiKSxyPT0wJiZlLmxlbmd0aD09MSYmdT09MT9uZXcgamEoeCxyLGUsdCk6bmV3IFNvKHgscixlLHQpfWZ1bmN0aW9uIFgyKHgpe0oyLkZhaWx1cmV8fChKMi5GYWlsdXJlPVtHcixGXywtM10pLEFJKEoyLkZhaWx1cmUseCl9ZnVuY3Rpb24gd1goeCxyLGUpe3ZhciB0PXgucmVhZDMycygpOyh0PDB8fHQ+MTYpJiZYMihcImlucHV0X3ZhbHVlOiB3cm9uZyBudW1iZXIgb2YgYmlnYXJyYXkgZGltZW5zaW9uc1wiKTt2YXIgdT14LnJlYWQzMnMoKSxpPXUmQ3MsZj11Pj44JjEsbz1bXTtpZihlPT1lcClmb3IodmFyIGw9MDtsPHQ7bCsrKXt2YXIgZD14LnJlYWQxNnUoKTtpZihkPT1zbil7dmFyIGs9eC5yZWFkMzJ1KCksaD14LnJlYWQzMnUoKTtrIT0wJiZYMihcImlucHV0X3ZhbHVlOiBiaWdhcnJheSBkaW1lbnNpb24gb3ZlcmZsb3cgaW4gMzJiaXRcIiksZD1ofW8ucHVzaChkKX1lbHNlIGZvcih2YXIgbD0wO2w8dDtsKyspby5wdXNoKHgucmVhZDMydSgpKTt2YXIgZz1JSShvKSxBPW1XKGksZyksTj1fWChpLGYsbyxBKTtzd2l0Y2goaSl7Y2FzZSAyOmZvcih2YXIgbD0wO2w8ZztsKyspQVtsXT14LnJlYWQ4cygpO2JyZWFrO2Nhc2UgMzpjYXNlIDEyOmZvcih2YXIgbD0wO2w8ZztsKyspQVtsXT14LnJlYWQ4dSgpO2JyZWFrO2Nhc2UgNDpmb3IodmFyIGw9MDtsPGc7bCsrKUFbbF09eC5yZWFkMTZzKCk7YnJlYWs7Y2FzZSA1OmZvcih2YXIgbD0wO2w8ZztsKyspQVtsXT14LnJlYWQxNnUoKTticmVhaztjYXNlIDY6Zm9yKHZhciBsPTA7bDxnO2wrKylBW2xdPXgucmVhZDMycygpO2JyZWFrO2Nhc2UgODpjYXNlIDk6dmFyIEM9eC5yZWFkOHUoKTtDJiZYMihcImlucHV0X3ZhbHVlOiBjYW5ub3QgcmVhZCBiaWdhcnJheSB3aXRoIDY0LWJpdCBPQ2FtbCBpbnRzXCIpO2Zvcih2YXIgbD0wO2w8ZztsKyspQVtsXT14LnJlYWQzMnMoKTticmVhaztjYXNlIDc6Zm9yKHZhciBZPW5ldyBBcnJheSg4KSxsPTA7bDxnO2wrKyl7Zm9yKHZhciBPPTA7Tzw4O08rKylZW09dPXgucmVhZDh1KCk7dmFyIEw9VGwoWSk7Ti5zZXQobCxMKX1icmVhaztjYXNlIDE6Zm9yKHZhciBZPW5ldyBBcnJheSg4KSxsPTA7bDxnO2wrKyl7Zm9yKHZhciBPPTA7Tzw4O08rKylZW09dPXgucmVhZDh1KCk7dmFyIE09Q0koVGwoWSkpO04uc2V0KGwsTSl9YnJlYWs7Y2FzZSAwOmZvcih2YXIgbD0wO2w8ZztsKyspe3ZhciBNPU5JKHgucmVhZDMycygpKTtOLnNldChsLE0pfWJyZWFrO2Nhc2UgMTA6Zm9yKHZhciBsPTA7bDxnO2wrKyl7dmFyIFY9TkkoeC5yZWFkMzJzKCkpLHo9TkkoeC5yZWFkMzJzKCkpO04uc2V0KGwsW0NhLFYsel0pfWJyZWFrO2Nhc2UgMTE6Zm9yKHZhciBZPW5ldyBBcnJheSg4KSxsPTA7bDxnO2wrKyl7Zm9yKHZhciBPPTA7Tzw4O08rKylZW09dPXgucmVhZDh1KCk7Zm9yKHZhciBWPUNJKFRsKFkpKSxPPTA7Tzw4O08rKylZW09dPXgucmVhZDh1KCk7dmFyIHo9Q0koVGwoWSkpO04uc2V0KGwsW0NhLFYsel0pfWJyZWFrfXJldHVybiByWzBdPSg0K3QpKjQsX1goaSxmLG8sQSl9ZnVuY3Rpb24gVFgoeCxyLGUpe3JldHVybiB4LmNvbXBhcmUocixlKX1mdW5jdGlvbiBTWCh4LHIpe3JldHVybiBNYXRoLmltdWwoeCxyKX1mdW5jdGlvbiBqcyh4LHIpe3JldHVybiByPVNYKHIsLTg2MjA0ODk0Mykscj1yPDwxNXxyPj4+MzItMTUscj1TWChyLDQ2MTg0NTkwNykseF49cix4PXg8PDEzfHg+Pj4zMi0xMywoeCsoeDw8Mil8MCkrLTQzMDY3NTEwMHwwfWZ1bmN0aW9uIF9XKHgscil7cmV0dXJuIHg9anMoeCxSSShyKSkseD1qcyh4LE9JKHIpKSx4fWZ1bmN0aW9uIEVYKHgscil7cmV0dXJuIF9XKHgsTWQocikpfWZ1bmN0aW9uIGdYKHgpe3ZhciByPUlJKHguZGltcyksZT0wO3N3aXRjaCh4LmtpbmQpe2Nhc2UgMjpjYXNlIDM6Y2FzZSAxMjpyPmh2JiYocj1odik7dmFyIHQ9MCx1PTA7Zm9yKHU9MDt1KzQ8PXguZGF0YS5sZW5ndGg7dSs9NCl0PXguZGF0YVt1KzBdfHguZGF0YVt1KzFdPDw4fHguZGF0YVt1KzJdPDwxNnx4LmRhdGFbdSszXTw8MjQsZT1qcyhlLHQpO3N3aXRjaCh0PTAsciYzKXtjYXNlIDM6dD14LmRhdGFbdSsyXTw8MTY7Y2FzZSAyOnR8PXguZGF0YVt1KzFdPDw4O2Nhc2UgMTp0fD14LmRhdGFbdSswXSxlPWpzKGUsdCl9YnJlYWs7Y2FzZSA0OmNhc2UgNTpyPm0xJiYocj1tMSk7dmFyIHQ9MCx1PTA7Zm9yKHU9MDt1KzI8PXguZGF0YS5sZW5ndGg7dSs9Mil0PXguZGF0YVt1KzBdfHguZGF0YVt1KzFdPDwxNixlPWpzKGUsdCk7ciYxJiYoZT1qcyhlLHguZGF0YVt1XSkpO2JyZWFrO2Nhc2UgNjpyPjY0JiYocj02NCk7Zm9yKHZhciB1PTA7dTxyO3UrKyllPWpzKGUseC5kYXRhW3VdKTticmVhaztjYXNlIDg6Y2FzZSA5OnI+NjQmJihyPTY0KTtmb3IodmFyIHU9MDt1PHI7dSsrKWU9anMoZSx4LmRhdGFbdV0pO2JyZWFrO2Nhc2UgNzpyPjMyJiYocj0zMikscio9Mjtmb3IodmFyIHU9MDt1PHI7dSsrKWU9anMoZSx4LmRhdGFbdV0pO2JyZWFrO2Nhc2UgMTA6cio9MjtjYXNlIDA6cj42NCYmKHI9NjQpO2Zvcih2YXIgdT0wO3U8cjt1KyspZT1FWChlLHguZGF0YVt1XSk7YnJlYWs7Y2FzZSAxMTpyKj0yO2Nhc2UgMTpyPjMyJiYocj0zMik7Zm9yKHZhciB1PTA7dTxyO3UrKyllPUVYKGUseC5kYXRhW3VdKTticmVha31yZXR1cm4gZX1mdW5jdGlvbiB3Vyh4LHIpe3JldHVybiByWzBdPTQseC5yZWFkMzJzKCl9ZnVuY3Rpb24gVFcoeCxyKXtzd2l0Y2goeC5yZWFkOHUoKSl7Y2FzZSAxOnJldHVybiByWzBdPTQseC5yZWFkMzJzKCk7Y2FzZSAyOlgyKFwiaW5wdXRfdmFsdWU6IG5hdGl2ZSBpbnRlZ2VyIHZhbHVlIHRvbyBsYXJnZVwiKTtkZWZhdWx0OlgyKFwiaW5wdXRfdmFsdWU6IGlsbC1mb3JtZWQgbmF0aXZlIGludGVnZXJcIil9fWZ1bmN0aW9uIFNXKHgscil7Zm9yKHZhciBlPW5ldyBBcnJheSg4KSx0PTA7dDw4O3QrKyllW3RdPXgucmVhZDh1KCk7cmV0dXJuIHJbMF09OCxUbChlKX1mdW5jdGlvbiBFVyh4LHIsZSl7Zm9yKHZhciB0PXdsKHIpLHU9MDt1PDg7dSsrKXgud3JpdGUoOCx0W3VdKTtlWzBdPTgsZVsxXT04fWZ1bmN0aW9uIGdXKHgscixlKXtyZXR1cm4geC5jb21wYXJlKHIpfWZ1bmN0aW9uIEFXKHgpe3JldHVybiB4LmxvMzIoKV54LmhpMzIoKX12YXIgQVg9e19qOntkZXNlcmlhbGl6ZTpTVyxzZXJpYWxpemU6RVcsZml4ZWRfbGVuZ3RoOjgsY29tcGFyZTpnVyxoYXNoOkFXfSxfaTp7ZGVzZXJpYWxpemU6d1csZml4ZWRfbGVuZ3RoOjR9LF9uOntkZXNlcmlhbGl6ZTpUVyxmaXhlZF9sZW5ndGg6NH0sX2JpZ2FycmF5OntkZXNlcmlhbGl6ZTpmdW5jdGlvbih4LHIpe3JldHVybiB3WCh4LHIsXCJfYmlnYXJyYXlcIil9LHNlcmlhbGl6ZTprWCxjb21wYXJlOlRYLGhhc2g6Z1h9LF9iaWdhcnIwMjp7ZGVzZXJpYWxpemU6ZnVuY3Rpb24oeCxyKXtyZXR1cm4gd1goeCxyLGVwKX0sc2VyaWFsaXplOmtYLGNvbXBhcmU6VFgsaGFzaDpnWH19O2Z1bmN0aW9uIExJKHgpe3JldHVybiBBWFt4LmNhbWxfY3VzdG9tXSYmQVhbeC5jYW1sX2N1c3RvbV0uY29tcGFyZX1mdW5jdGlvbiBQWCh4LHIsZSx0KXt2YXIgdT1MSShyKTtpZih1KXt2YXIgaT1lPjA/dShyLHgsdCk6dSh4LHIsdCk7aWYodCYmaSE9aSlyZXR1cm4gZTtpZigraSE9K2kpcmV0dXJuK2k7aWYoaXwwKXJldHVybiBpfDB9cmV0dXJuIGV9ZnVuY3Rpb24gTUkoeCl7cmV0dXJuIHR5cGVvZiB4PT1cInN0cmluZ1wiJiYhL1teXFx4MDAtXFx4ZmZdLy50ZXN0KHgpfWZ1bmN0aW9uIERJKHgpe3JldHVybiB4IGluc3RhbmNlb2YgRHN9ZnVuY3Rpb24gTlgoeCl7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuIHVsO2lmKERJKHgpKXJldHVybiBFYTtpZihNSSh4KSlyZXR1cm4gMTI1MjtpZih4IGluc3RhbmNlb2YgQXJyYXkmJnhbMF09PT14WzBdPj4+MCYmeFswXTw9ejMpe3ZhciByPXhbMF18MDtyZXR1cm4gcj09Q2E/MDpyfWVsc2V7aWYoeCBpbnN0YW5jZW9mIFN0cmluZylyZXR1cm4gc0Q7aWYodHlwZW9mIHg9PVwic3RyaW5nXCIpcmV0dXJuIHNEO2lmKHggaW5zdGFuY2VvZiBOdW1iZXIpcmV0dXJuIHVsO2lmKHgmJnguY2FtbF9jdXN0b20pcmV0dXJuIE5DO2lmKHgmJnguY29tcGFyZSlyZXR1cm4gMTI1NjtpZih0eXBlb2YgeD09XCJmdW5jdGlvblwiKXJldHVybiAxMjQ3O2lmKHR5cGVvZiB4PT1cInN5bWJvbFwiKXJldHVybiAxMjUxfXJldHVybiAxMDAxfWZ1bmN0aW9uIGp0KHgscil7cmV0dXJuIHg8cj8tMTp4PT1yPzA6MX1mdW5jdGlvbiBUeCh4LHIpe3JldHVybiB4PHI/LTE6eD5yPzE6MH1mdW5jdGlvbiBQVyh4LHIpe3JldHVybiB4LnQmNiYmUmQoeCksci50JjYmJlJkKHIpLHguYzxyLmM/LTE6eC5jPnIuYz8xOjB9ZnVuY3Rpb24gRGQoeCxyLGUpe2Zvcih2YXIgdD1bXTs7KXtpZighKGUmJng9PT1yKSl7dmFyIHU9TlgoeCk7aWYodT09T3Ype3g9eFsxXTtjb250aW51ZX12YXIgaT1OWChyKTtpZihpPT1Pdil7cj1yWzFdO2NvbnRpbnVlfWlmKHUhPT1pKXJldHVybiB1PT11bD9pPT1OQz9QWCh4LHIsLTEsZSk6LTE6aT09dWw/dT09TkM/UFgocix4LDEsZSk6MTp1PGk/LTE6MTtzd2l0Y2godSl7Y2FzZSAyNDc6RzEoZVApO2JyZWFrO2Nhc2UgMjQ4OnZhciBvPWp0KHhbMl0sclsyXSk7aWYobyE9MClyZXR1cm4gb3wwO2JyZWFrO2Nhc2UgMjQ5OkcxKGVQKTticmVhaztjYXNlIDI1MDpHMShcImVxdWFsOiBnb3QgRm9yd2FyZF90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO2JyZWFrO2Nhc2UgMjUxOkcxKFwiZXF1YWw6IGFic3RyYWN0IHZhbHVlXCIpO2JyZWFrO2Nhc2UgMjUyOmlmKHghPT1yKXt2YXIgbz1QVyh4LHIpO2lmKG8hPTApcmV0dXJuIG98MH1icmVhaztjYXNlIDI1MzpHMShcImVxdWFsOiBnb3QgRG91YmxlX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7YnJlYWs7Y2FzZSAyNTQ6RzEoXCJlcXVhbDogZ290IERvdWJsZV9hcnJheV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO2JyZWFrO2Nhc2UgMjU1OkcxKFwiZXF1YWw6IGdvdCBDdXN0b21fdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTticmVhaztjYXNlIDEyNDc6RzEoZVApO2JyZWFrO2Nhc2UgMTI1NTp2YXIgZj1MSSh4KTtpZihmIT1MSShyKSlyZXR1cm4geC5jYW1sX2N1c3RvbTxyLmNhbWxfY3VzdG9tPy0xOjE7Znx8RzEoXCJjb21wYXJlOiBhYnN0cmFjdCB2YWx1ZVwiKTt2YXIgbz1mKHgscixlKTtpZihvIT1vKXJldHVybiBlPy0xOm87aWYobyE9PShvfDApKXJldHVybi0xO2lmKG8hPTApcmV0dXJuIG98MDticmVhaztjYXNlIDEyNTY6dmFyIG89eC5jb21wYXJlKHIsZSk7aWYobyE9bylyZXR1cm4gZT8tMTpvO2lmKG8hPT0ob3wwKSlyZXR1cm4tMTtpZihvIT0wKXJldHVybiBvfDA7YnJlYWs7Y2FzZSAxZTM6aWYoeD0reCxyPStyLHg8cilyZXR1cm4tMTtpZih4PnIpcmV0dXJuIDE7aWYoeCE9cil7aWYoIWUpcmV0dXJuIE5hTjtpZih4PT14KXJldHVybiAxO2lmKHI9PXIpcmV0dXJuLTF9YnJlYWs7Y2FzZSAxMDAxOmlmKHg8cilyZXR1cm4tMTtpZih4PnIpcmV0dXJuIDE7aWYoeCE9cil7aWYoIWUpcmV0dXJuIE5hTjtpZih4PT14KXJldHVybiAxO2lmKHI9PXIpcmV0dXJuLTF9YnJlYWs7Y2FzZSAxMjUxOmlmKHghPT1yKXJldHVybiBlPzE6TmFOO2JyZWFrO2Nhc2UgMTI1Mjp2YXIgeD14LHI9cjtpZih4IT09cil7aWYoeDxyKXJldHVybi0xO2lmKHg+cilyZXR1cm4gMX1icmVhaztjYXNlIDEyNTIwOnZhciB4PXgudG9TdHJpbmcoKSxyPXIudG9TdHJpbmcoKTtpZih4IT09cil7aWYoeDxyKXJldHVybi0xO2lmKHg+cilyZXR1cm4gMX1icmVhaztjYXNlIDI0NjpjYXNlIDI1NDpkZWZhdWx0OmlmKHBXKHUpKXtHMShcImNvbXBhcmU6IGNvbnRpbnVhdGlvbiB2YWx1ZVwiKTticmVha31pZih4Lmxlbmd0aCE9ci5sZW5ndGgpcmV0dXJuIHgubGVuZ3RoPHIubGVuZ3RoPy0xOjE7eC5sZW5ndGg+MSYmdC5wdXNoKHgsciwxKTticmVha319aWYodC5sZW5ndGg9PTApcmV0dXJuIDA7dmFyIGw9dC5wb3AoKTtyPXQucG9wKCkseD10LnBvcCgpLGwrMTx4Lmxlbmd0aCYmdC5wdXNoKHgscixsKzEpLHg9eFtsXSxyPXJbbF19fWZ1bmN0aW9uIENYKHgscil7cmV0dXJuIERkKHgsciwhMCl9ZnVuY3Rpb24gTlcoKXtyZXR1cm5bMF19ZnVuY3Rpb24gdzEoeCl7cmV0dXJuIHg8MCYmRzEoXCJCeXRlcy5jcmVhdGVcIiksbmV3IERzKHg/Mjo5LGt4LHgpfWZ1bmN0aW9uIFVkKHgscil7cmV0dXJuKyhEZCh4LHIsITEpPT0wKX1mdW5jdGlvbiBDVyh4LHIsZSx0KXtpZihlPjApaWYocj09MCYmKGU+PXgubHx8eC50PT0yJiZlPj14LmMubGVuZ3RoKSl0PT0wPyh4LmM9a3gseC50PTIpOih4LmM9RGEoZSxTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKSx4LnQ9ZT09eC5sPzA6Mik7ZWxzZSBmb3IoeC50IT00JiZPZCh4KSxlKz1yO3I8ZTtyKyspeC5jW3JdPXQ7cmV0dXJuIDB9ZnVuY3Rpb24gVUkoeCl7dmFyIHI7aWYoeD14LHI9K3gseC5sZW5ndGg+MCYmcj09PXJ8fCh4PXgucmVwbGFjZSgvXy9nLGt4KSxyPSt4LHgubGVuZ3RoPjAmJnI9PT1yfHwvXlsrLV0/bmFuJC9pLnRlc3QoeCkpKXJldHVybiByO3ZhciBlPS9eICooWystXT8pMHgoWzAtOWEtZl0rKVxcLj8oWzAtOWEtZl0qKShwKFsrLV0/WzAtOV0rKSk/L2kuZXhlYyh4KTtpZihlKXt2YXIgdD1lWzNdLnJlcGxhY2UoLzArJC8sa3gpLHU9cGFyc2VJbnQoZVsxXStlWzJdK3QsMTYpLGk9KGVbNV18MCktNCp0Lmxlbmd0aDtyZXR1cm4gcj11Kk1hdGgucG93KDIsaSkscn1pZigvXlxcKz9pbmYoaW5pdHkpPyQvaS50ZXN0KHgpKXJldHVybiAxLzA7aWYoL14taW5mKGluaXR5KT8kL2kudGVzdCh4KSlyZXR1cm4tMS8wO1gyKFwiZmxvYXRfb2Zfc3RyaW5nXCIpfWZ1bmN0aW9uIGpJKHgpe3g9eDt2YXIgcj14Lmxlbmd0aDtyPjMxJiZHMShcImZvcm1hdF9pbnQ6IGZvcm1hdCB0b28gbG9uZ1wiKTtmb3IodmFyIGU9e2p1c3RpZnk6THMsc2lnbnN0eWxlOkx0LGZpbGxlcjpNdCxhbHRlcm5hdGU6ITEsYmFzZTowLHNpZ25lZGNvbnY6ITEsd2lkdGg6MCx1cHBlcmNhc2U6ITEsc2lnbjoxLHByZWM6LTEsY29udjpaan0sdD0wO3Q8cjt0Kyspe3ZhciB1PXguY2hhckF0KHQpO3N3aXRjaCh1KXtjYXNlXCItXCI6ZS5qdXN0aWZ5PUx0O2JyZWFrO2Nhc2VcIitcIjpjYXNlXCIgXCI6ZS5zaWduc3R5bGU9dTticmVhaztjYXNlXCIwXCI6ZS5maWxsZXI9cTI7YnJlYWs7Y2FzZVwiI1wiOmUuYWx0ZXJuYXRlPSEwO2JyZWFrO2Nhc2VcIjFcIjpjYXNlXCIyXCI6Y2FzZVwiM1wiOmNhc2VcIjRcIjpjYXNlXCI1XCI6Y2FzZVwiNlwiOmNhc2VcIjdcIjpjYXNlXCI4XCI6Y2FzZVwiOVwiOmZvcihlLndpZHRoPTA7dT14LmNoYXJDb2RlQXQodCktNDgsdT49MCYmdTw9OTspZS53aWR0aD1lLndpZHRoKjEwK3UsdCsrO3QtLTticmVhaztjYXNlXCIuXCI6Zm9yKGUucHJlYz0wLHQrKzt1PXguY2hhckNvZGVBdCh0KS00OCx1Pj0wJiZ1PD05OyllLnByZWM9ZS5wcmVjKjEwK3UsdCsrO3QtLTtjYXNlXCJkXCI6Y2FzZVwiaVwiOmUuc2lnbmVkY29udj0hMDtjYXNlXCJ1XCI6ZS5iYXNlPTEwO2JyZWFrO2Nhc2VcInhcIjplLmJhc2U9MTY7YnJlYWs7Y2FzZVwiWFwiOmUuYmFzZT0xNixlLnVwcGVyY2FzZT0hMDticmVhaztjYXNlXCJvXCI6ZS5iYXNlPTg7YnJlYWs7Y2FzZVwiZVwiOmNhc2VcImZcIjpjYXNlXCJnXCI6ZS5zaWduZWRjb252PSEwLGUuY29udj11O2JyZWFrO2Nhc2VcIkVcIjpjYXNlXCJGXCI6Y2FzZVwiR1wiOmUuc2lnbmVkY29udj0hMCxlLnVwcGVyY2FzZT0hMCxlLmNvbnY9dS50b0xvd2VyQ2FzZSgpO2JyZWFrfX1yZXR1cm4gZX1mdW5jdGlvbiBKSSh4LHIpe3gudXBwZXJjYXNlJiYocj1yLnRvVXBwZXJDYXNlKCkpO3ZhciBlPXIubGVuZ3RoO3guc2lnbmVkY29udiYmKHguc2lnbjwwfHx4LnNpZ25zdHlsZSE9THQpJiZlKysseC5hbHRlcm5hdGUmJih4LmJhc2U9PTgmJihlKz0xKSx4LmJhc2U9PTE2JiYoZSs9MikpO3ZhciB0PWt4O2lmKHguanVzdGlmeT09THMmJnguZmlsbGVyPT1NdClmb3IodmFyIHU9ZTt1PHgud2lkdGg7dSsrKXQrPU10O2lmKHguc2lnbmVkY29udiYmKHguc2lnbjwwP3QrPUx0Onguc2lnbnN0eWxlIT1MdCYmKHQrPXguc2lnbnN0eWxlKSkseC5hbHRlcm5hdGUmJnguYmFzZT09OCYmKHQrPXEyKSx4LmFsdGVybmF0ZSYmeC5iYXNlPT0xNiYmKHQrPXgudXBwZXJjYXNlP1wiMFhcIjptbykseC5qdXN0aWZ5PT1McyYmeC5maWxsZXI9PXEyKWZvcih2YXIgdT1lO3U8eC53aWR0aDt1KyspdCs9cTI7aWYodCs9cix4Lmp1c3RpZnk9PUx0KWZvcih2YXIgdT1lO3U8eC53aWR0aDt1KyspdCs9TXQ7cmV0dXJuIHR9ZnVuY3Rpb24gWEkoeCxyKXtmdW5jdGlvbiBlKGssaCl7aWYoTWF0aC5hYnMoayk8MSlyZXR1cm4gay50b0ZpeGVkKGgpO3ZhciBnPXBhcnNlSW50KGsudG9TdHJpbmcoKS5zcGxpdChMcylbMV0pO3JldHVybiBnPjIwPyhnLT0yMCxrLz1NYXRoLnBvdygxMCxnKSxrKz1uZXcgQXJyYXkoZysxKS5qb2luKHEyKSxoPjAmJihrPWsrYmYrbmV3IEFycmF5KGgrMSkuam9pbihxMikpLGspOmsudG9GaXhlZChoKX12YXIgdCx1PWpJKHgpLGk9dS5wcmVjPDA/Njp1LnByZWM7aWYoKHI8MHx8cj09MCYmMS9yPT0tMS8wKSYmKHUuc2lnbj0tMSxyPS1yKSxpc05hTihyKSl0PU1rLHUuZmlsbGVyPU10O2Vsc2UgaWYoIWlzRmluaXRlKHIpKXQ9XCJpbmZcIix1LmZpbGxlcj1NdDtlbHNlIHN3aXRjaCh1LmNvbnYpe2Nhc2VcImVcIjp2YXIgdD1yLnRvRXhwb25lbnRpYWwoaSksZj10Lmxlbmd0aDt0LmNoYXJBdChmLTMpPT1vaCYmKHQ9dC5zbGljZSgwLGYtMSkrcTIrdC5zbGljZShmLTEpKTticmVhaztjYXNlXCJmXCI6dD1lKHIsaSk7YnJlYWs7Y2FzZVwiZ1wiOmk9aXx8MSx0PXIudG9FeHBvbmVudGlhbChpLTEpO3ZhciBvPXQuaW5kZXhPZihvaCksbD0rdC5zbGljZShvKzEpO2lmKGw8LTR8fHI+PTFlMjF8fHIudG9GaXhlZCgwKS5sZW5ndGg+aSl7Zm9yKHZhciBmPW8tMTt0LmNoYXJBdChmKT09cTI7KWYtLTt0LmNoYXJBdChmKT09YmYmJmYtLSx0PXQuc2xpY2UoMCxmKzEpK3Quc2xpY2UobyksZj10Lmxlbmd0aCx0LmNoYXJBdChmLTMpPT1vaCYmKHQ9dC5zbGljZSgwLGYtMSkrcTIrdC5zbGljZShmLTEpKTticmVha31lbHNle3ZhciBkPWk7aWYobDwwKWQtPWwrMSx0PXIudG9GaXhlZChkKTtlbHNlIGZvcig7dD1yLnRvRml4ZWQoZCksdC5sZW5ndGg+aSsxOylkLS07aWYoZCl7Zm9yKHZhciBmPXQubGVuZ3RoLTE7dC5jaGFyQXQoZik9PXEyOylmLS07dC5jaGFyQXQoZik9PWJmJiZmLS0sdD10LnNsaWNlKDAsZisxKX19YnJlYWt9cmV0dXJuIEpJKHUsdCl9ZnVuY3Rpb24gamQoeCxyKXtpZih4PT1obClyZXR1cm4ga3grcjt2YXIgZT1qSSh4KTtyPDAmJihlLnNpZ25lZGNvbnY/KGUuc2lnbj0tMSxyPS1yKTpyPj4+PTApO3ZhciB0PXIudG9TdHJpbmcoZS5iYXNlKTtpZihlLnByZWM+PTApe2UuZmlsbGVyPU10O3ZhciB1PWUucHJlYy10Lmxlbmd0aDt1PjAmJih0PURhKHUscTIpK3QpfXJldHVybiBKSShlLHQpfXZhciBJWD0wO2Z1bmN0aW9uIEpzKCl7cmV0dXJuIElYKyt9ZnVuY3Rpb24gT1goKXtyZXR1cm5bMF19dmFyIEpkPVtdO2Z1bmN0aW9uIHF4KHgscixlKXt2YXIgdD14WzFdLHU9SmRbZV07aWYodT09PXZvaWQgMClmb3IodmFyIGk9SmQubGVuZ3RoO2k8ZTtpKyspSmRbaV09MDtlbHNlIGlmKHRbdV09PT1yKXJldHVybiB0W3UtMV07Zm9yKHZhciBmPTMsbz10WzFdKjIrMSxsO2Y8bzspbD1mK28+PjF8MSxyPHRbbCsxXT9vPWwtMjpmPWw7cmV0dXJuIEpkW2VdPWYrMSxyPT10W2YrMV0/dFtmXTowfWZ1bmN0aW9uIElXKHgpe2Zvcih2YXIgcj1reCxlPXIsdCx1LGk9MCxmPXgubGVuZ3RoO2k8ZjtpKyspe2lmKHQ9eC5jaGFyQ29kZUF0KGkpLHQ8YW4pe2Zvcih2YXIgbz1pKzE7bzxmJiYodD14LmNoYXJDb2RlQXQobykpPGFuO28rKyk7aWYoby1pPnZ3PyhlLnN1YnN0cigwLDEpLHIrPWUsZT1reCxyKz14LnNsaWNlKGksbykpOmUrPXguc2xpY2UoaSxvKSxvPT1mKWJyZWFrO2k9b310PGZYPyhlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDE5Mnx0Pj42KSxlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFufHQmTWEpKTp0PDU1Mjk2fHx0Pj1NSj9lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEZqfHQ+PjEyLGFufHQ+PjYmTWEsYW58dCZNYSk6dD49NTYzMTl8fGkrMT09Znx8KHU9eC5jaGFyQ29kZUF0KGkrMSkpPElqfHx1Pk1KP2UrPVwiXFx4RUZcXHhCRlxceEJEXCI6KGkrKyx0PSh0PDwxMCkrdS01NjYxMzg4OCxlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKE5KfHQ+PjE4LGFufHQ+PjEyJk1hLGFufHQ+PjYmTWEsYW58dCZNYSkpLGUubGVuZ3RoPnZsJiYoZS5zdWJzdHIoMCwxKSxyKz1lLGU9a3gpfXJldHVybiByK2V9ZnVuY3Rpb24gSnQoeCl7cmV0dXJuIEVJKHgpP3g6SVcoeCl9ZnVuY3Rpb24gT1coeCxyLGUpe2lmKCFpc0Zpbml0ZSh4KSlyZXR1cm4gaXNOYU4oeCk/SnQoTWspOkp0KHg+MD9FVTpcIi1pbmZpbml0eVwiKTt2YXIgdD14PT0wJiYxL3g9PS0xLzA/MTp4Pj0wPzA6MTt0JiYoeD0teCk7dmFyIHU9MDtpZih4IT0wKWlmKHg8MSlmb3IoO3g8MSYmdT4tMTAyMjspeCo9Mix1LS07ZWxzZSBmb3IoO3g+PTI7KXgvPTIsdSsrO3ZhciBpPXU8MD9reDpMcyxmPWt4O2lmKHQpZj1MdDtlbHNlIHN3aXRjaChlKXtjYXNlIDQzOmY9THM7YnJlYWs7Y2FzZSAzMjpmPU10O2JyZWFrO2RlZmF1bHQ6YnJlYWt9aWYocj49MCYmcjwxMyl7dmFyIG89TWF0aC5wb3coMixyKjQpO3g9TWF0aC5yb3VuZCh4Km8pL299dmFyIGw9eC50b1N0cmluZygxNik7aWYocj49MCl7dmFyIGQ9bC5pbmRleE9mKGJmKTtpZihkPDApbCs9YmYrRGEocixxMik7ZWxzZXt2YXIgaz1kKzErcjtsLmxlbmd0aDxrP2wrPURhKGstbC5sZW5ndGgscTIpOmw9bC5zdWJzdHIoMCxrKX19cmV0dXJuIEp0KGYrbW8rbCtcInBcIitpK3UudG9TdHJpbmcoMTApKX1mdW5jdGlvbiBSVyh4KXtyZXR1cm4reC5pc1plcm8oKX1mdW5jdGlvbiBYZCh4KXtyZXR1cm4gbmV3IGZyKHgmRWkseD4+MjQmRWkseD4+MzEmc24pfWZ1bmN0aW9uIExXKHgpe3JldHVybiB4LnRvSW50KCl9ZnVuY3Rpb24gTVcoeCl7cmV0dXJuK3guaXNOZWcoKX1mdW5jdGlvbiBZSSh4KXtyZXR1cm4geC5uZWcoKX1mdW5jdGlvbiBEVyh4LHIpe3ZhciBlPWpJKHgpO2Uuc2lnbmVkY29udiYmTVcocikmJihlLnNpZ249LTEscj1ZSShyKSk7dmFyIHQ9a3gsdT1YZChlLmJhc2UpLGk9XCIwMTIzNDU2Nzg5YWJjZGVmXCI7ZG97dmFyIGY9ci51ZGl2bW9kKHUpO3I9Zi5xdW90aWVudCx0PWkuY2hhckF0KExXKGYubW9kdWx1cykpK3R9d2hpbGUoIVJXKHIpKTtpZihlLnByZWM+PTApe2UuZmlsbGVyPU10O3ZhciBvPWUucHJlYy10Lmxlbmd0aDtvPjAmJih0PURhKG8scTIpK3QpfXJldHVybiBKSShlLHQpfWZ1bmN0aW9uIFh4KHgpe3JldHVybiB4Lmxlbmd0aH1mdW5jdGlvbiBmeCh4LHIpe3JldHVybiB4LmNoYXJDb2RlQXQocil9ZnVuY3Rpb24gVVcoeCxyKXtyZXR1cm4geC5hZGQocil9ZnVuY3Rpb24galcoeCxyKXtyZXR1cm4geC5tdWwocil9ZnVuY3Rpb24gVkkoeCxyKXtyZXR1cm4geC51Y29tcGFyZShyKTwwfWZ1bmN0aW9uIFJYKHgpe3ZhciByPTAsZT1YeCh4KSx0PTEwLHU9MTtpZihlPjApc3dpdGNoKGZ4KHgscikpe2Nhc2UgNDU6cisrLHU9LTE7YnJlYWs7Y2FzZSA0MzpyKyssdT0xO2JyZWFrfWlmKHIrMTxlJiZmeCh4LHIpPT00OClzd2l0Y2goZngoeCxyKzEpKXtjYXNlIDEyMDpjYXNlIDg4OnQ9MTYscis9MjticmVhaztjYXNlIDExMTpjYXNlIDc5OnQ9OCxyKz0yO2JyZWFrO2Nhc2UgOTg6Y2FzZSA2Njp0PTIscis9MjticmVhaztjYXNlIDExNzpjYXNlIDg1OnIrPTI7YnJlYWt9cmV0dXJuW3IsdSx0XX1mdW5jdGlvbiBZZCh4KXtyZXR1cm4geD49NDgmJng8PTU3P3gtNDg6eD49NjUmJng8PTkwP3gtNTU6eD49OTcmJng8PUhyP3gtODc6LTF9ZnVuY3Rpb24gU2woeCl7dmFyIHI9UlgoeCksZT1yWzBdLHQ9clsxXSx1PXJbMl0saT1YZCh1KSxmPW5ldyBmcihFaSwyNjg0MzU0NTUsc24pLnVkaXZtb2QoaSkucXVvdGllbnQsbz1meCh4LGUpLGw9WWQobyk7KGw8MHx8bD49dSkmJlgyKFJzKTtmb3IodmFyIGQ9WGQobCk7OylpZihlKyssbz1meCh4LGUpLG8hPTk1KXtpZihsPVlkKG8pLGw8MHx8bD49dSlicmVhaztWSShmLGQpJiZYMihScyksbD1YZChsKSxkPVVXKGpXKGksZCksbCksVkkoZCxsKSYmWDIoUnMpfXJldHVybiBlIT1YeCh4KSYmWDIoUnMpLHU9PTEwJiZWSShuZXcgZnIoMCwwLGRuKSxkKSYmWDIoUnMpLHQ8MCYmKGQ9WUkoZCkpLGR9ZnVuY3Rpb24gVmQoeCl7cmV0dXJuIHgudG9GbG9hdCgpfWZ1bmN0aW9uIGZ0KHgpe3ZhciByPVJYKHgpLGU9clswXSx0PXJbMV0sdT1yWzJdLGk9WHgoeCksZj0tMT4+PjAsbz1lPGk/ZngoeCxlKTowLGw9WWQobyk7KGw8MHx8bD49dSkmJlgyKFJzKTt2YXIgZD1sO2ZvcihlKys7ZTxpO2UrKylpZihvPWZ4KHgsZSksbyE9OTUpe2lmKGw9WWQobyksbDwwfHxsPj11KWJyZWFrO2Q9dSpkK2wsZD5mJiZYMihScyl9cmV0dXJuIGUhPWkmJlgyKFJzKSxkPXQqZCx1PT0xMCYmKGR8MCkhPWQmJlgyKFJzKSxkfDB9ZnVuY3Rpb24gSlcoeCl7cmV0dXJuIHguc2xpY2UoMSl9ZnVuY3Rpb24gZXIoeCl7cmV0dXJuIEVJKHgpP3g6YVgoeCl9ZnVuY3Rpb24gWFcoeCl7Zm9yKHZhciByPXt9LGU9MTtlPHgubGVuZ3RoO2UrKyl7dmFyIHQ9eFtlXTtyW2VyKHRbMV0pXT10WzJdfXJldHVybiByfXZhciB6ZD1VcztmdW5jdGlvbiBZVyh4KXtyZXR1cm4geC5sPj0wP3gubDp4Lmw9eC5sZW5ndGh9ZnVuY3Rpb24gVlcoeCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciByPVlXKHgpLGU9bmV3IEFycmF5KHIpLHQ9MDt0PHI7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiB6ZCh4LGUpfX1mdW5jdGlvbiB6Vyh4LHIpe3JldHVybisoRGQoeCxyLCExKTwwKX1mdW5jdGlvbiBKYShlLHIpe2U8MCYmX2woKTt2YXIgZT1lKzF8MCx0PW5ldyBBcnJheShlKTt0WzBdPTA7Zm9yKHZhciB1PTE7dTxlO3UrKyl0W3VdPXI7cmV0dXJuIHR9ZnVuY3Rpb24gY3QoeCl7cmV0dXJuIHgubH1mdW5jdGlvbiBLVygpe3JldHVybiAwfWZ1bmN0aW9uIERyKHgpe0FJKEoyLlN5c19lcnJvcix4KX12YXIgWHM9bmV3IEFycmF5O2Z1bmN0aW9uIFFjKHgpe3ZhciByPVhzW3hdO3JldHVybiByLm9wZW5lZHx8RHIoXCJDYW5ub3QgZmx1c2ggYSBjbG9zZWQgY2hhbm5lbFwiKSwhci5idWZmZXJ8fHIuYnVmZmVyX2N1cnI9PTB8fChyLm91dHB1dD9yLm91dHB1dChJZChyLmJ1ZmZlciwwLHIuYnVmZmVyX2N1cnIpKTpyLmZpbGUud3JpdGUoci5vZmZzZXQsci5idWZmZXIsMCxyLmJ1ZmZlcl9jdXJyKSxyLm9mZnNldCs9ci5idWZmZXJfY3VycixyLmJ1ZmZlcl9jdXJyPTApLDB9ZnVuY3Rpb24gTFgoKXt9ZnVuY3Rpb24gb0MwKHgpe2Zvcih2YXIgcj1YeCh4KSxlPW5ldyBBcnJheShyKSx0PTA7dDxyO3QrKyllW3RdPWZ4KHgsdCk7cmV0dXJuIGV9ZnVuY3Rpb24gTVgoeCl7cmV0dXJuIHgudCE9NCYmT2QoeCkseC5jfWZ1bmN0aW9uIGhuKHgscil7dGhpcy5mcz17fSx0aGlzLmZkPXgsdGhpcy5mbGFncz1yfWhuLnByb3RvdHlwZT1uZXcgTFgsaG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPWhuLGhuLnByb3RvdHlwZS50cnVuY2F0ZT1mdW5jdGlvbih4KXt0cnl7dGhpcy5mcy5mdHJ1bmNhdGVTeW5jKHRoaXMuZmQseHwwKX1jYXRjaChyKXtEcihyLnRvU3RyaW5nKCkpfX0saG4ucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3RyeXtyZXR1cm4gdGhpcy5mcy5mc3RhdFN5bmModGhpcy5mZCkuc2l6ZX1jYXRjaCh4KXtEcih4LnRvU3RyaW5nKCkpfX0saG4ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHgscixlLHQpe3RyeXt0aGlzLmZsYWdzLmlzQ2hhcmFjdGVyRGV2aWNlP3RoaXMuZnMud3JpdGVTeW5jKHRoaXMuZmQscixlLHQpOnRoaXMuZnMud3JpdGVTeW5jKHRoaXMuZmQscixlLHQseCl9Y2F0Y2godSl7RHIodS50b1N0cmluZygpKX1yZXR1cm4gMH0saG4ucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oeCxyLGUsdCl7dHJ5e2lmKHRoaXMuZmxhZ3MuaXNDaGFyYWN0ZXJEZXZpY2UpdmFyIHU9dGhpcy5mcy5yZWFkU3luYyh0aGlzLmZkLHIsZSx0KTtlbHNlIHZhciB1PXRoaXMuZnMucmVhZFN5bmModGhpcy5mZCxyLGUsdCx4KTtyZXR1cm4gdX1jYXRjaChpKXtEcihpLnRvU3RyaW5nKCkpfX0saG4ucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0aGlzLmZzLmNsb3NlU3luYyh0aGlzLmZkKSwwfWNhdGNoKHgpe0RyKHgudG9TdHJpbmcoKSl9fTtmdW5jdGlvbiBCVyh4LHIpe2lmKHIubmFtZSl0cnl7dmFyIGU9e30sdD1lLm9wZW5TeW5jKHIubmFtZSxcInJzXCIpO3JldHVybiBuZXcgaG4odCxyKX1jYXRjaHt9cmV0dXJuIG5ldyBobih4LHIpfXZhciBLZD1uZXcgQXJyYXkoMyk7ZnVuY3Rpb24gRWwoKXtyZXR1cm4gdHlwZW9mIHAwLnByb2Nlc3M8XCJ1XCImJnR5cGVvZiBwMC5wcm9jZXNzLnZlcnNpb25zPFwidVwiJiZ0eXBlb2YgcDAucHJvY2Vzcy52ZXJzaW9ucy5ub2RlPFwidVwifWZ1bmN0aW9uIFdXKCl7ZnVuY3Rpb24geChlKXtpZihlLmNoYXJBdCgwKT09PUYyKXJldHVybltreCxlLnN1YnN0cmluZygxKV19ZnVuY3Rpb24gcihlKXt2YXIgdD0vXihbYS16QS1aXTp8W1xcXFwvXXsyfVteXFxcXC9dK1tcXFxcL10rW15cXFxcL10rKT8oW1xcXFwvXSk/KFtcXHNcXFNdKj8pJC8sdT10LmV4ZWMoZSksaT11WzFdfHxreCxmPSEhKGkmJmkuY2hhckF0KDEpIT09Q3YpO2lmKHVbMl18fGYpe3ZhciBvPXVbMV18fGt4LGw9dVsyXXx8a3g7cmV0dXJuW28sZS5zdWJzdHJpbmcoby5sZW5ndGgrbC5sZW5ndGgpXX19cmV0dXJuIEVsKCkmJnAwLnByb2Nlc3MmJnAwLnByb2Nlc3MucGxhdGZvcm0mJnAwLnByb2Nlc3MucGxhdGZvcm09PT1tVT9yOnh9dmFyIHpJPVdXKCk7ZnVuY3Rpb24gRFgoeCl7cmV0dXJuIHguc2xpY2UoLTEpIT09RjI/eCtGMjp4fWlmKEVsKCkmJnAwLnByb2Nlc3MmJnAwLnByb2Nlc3MuY3dkKXZhciBnbD1wMC5wcm9jZXNzLmN3ZCgpLnJlcGxhY2UoL1xcXFwvZyxGMik7ZWxzZSB2YXIgZ2w9XCIvc3RhdGljXCI7Z2w9RFgoZ2wpO2Z1bmN0aW9uIFpXKHgpe3g9ZXIoeCksekkoeCl8fCh4PWdsK3gpO2Zvcih2YXIgcj16SSh4KSxlPXJbMV0uc3BsaXQoRjIpLHQ9W10sdT0wO3U8ZS5sZW5ndGg7dSsrKXN3aXRjaChlW3VdKXtjYXNlXCIuLlwiOnQubGVuZ3RoPjEmJnQucG9wKCk7YnJlYWs7Y2FzZVwiLlwiOmJyZWFrO2Nhc2VcIlwiOmJyZWFrO2RlZmF1bHQ6dC5wdXNoKGVbdV0pO2JyZWFrfXJldHVybiB0LnVuc2hpZnQoclswXSksdC5vcmlnPXgsdH12YXIgJFc9W1wiRTJCSUdcIixcIkVBQ0NFU1wiLFwiRUFHQUlOXCIsTFQsXCJFQlVTWVwiLFwiRUNISUxEXCIsXCJFREVBRExLXCIsXCJFRE9NXCIsYlUsXCJFRkFVTFRcIixcIkVGQklHXCIsXCJFSU5UUlwiLFwiRUlOVkFMXCIsXCJFSU9cIixcIkVJU0RJUlwiLFwiRU1GSUxFXCIsXCJFTUxJTktcIixcIkVOQU1FVE9PTE9OR1wiLFwiRU5GSUxFXCIsXCJFTk9ERVZcIixLUyxcIkVOT0VYRUNcIixcIkVOT0xDS1wiLFwiRU5PTUVNXCIsXCJFTk9TUENcIixcIkVOT1NZU1wiLGVoLFpNLFwiRU5PVFRZXCIsXCJFTlhJT1wiLFwiRVBFUk1cIixcIkVQSVBFXCIsXCJFUkFOR0VcIixcIkVST0ZTXCIsXCJFU1BJUEVcIixcIkVTUkNIXCIsXCJFWERFVlwiLFwiRVdPVUxEQkxPQ0tcIixcIkVJTlBST0dSRVNTXCIsXCJFQUxSRUFEWVwiLFwiRU5PVFNPQ0tcIixcIkVERVNUQUREUlJFUVwiLFwiRU1TR1NJWkVcIixcIkVQUk9UT1RZUEVcIixcIkVOT1BST1RPT1BUXCIsXCJFUFJPVE9OT1NVUFBPUlRcIixcIkVTT0NLVE5PU1VQUE9SVFwiLFwiRU9QTk9UU1VQUFwiLFwiRVBGTk9TVVBQT1JUXCIsXCJFQUZOT1NVUFBPUlRcIixcIkVBRERSSU5VU0VcIixcIkVBRERSTk9UQVZBSUxcIixcIkVORVRET1dOXCIsXCJFTkVUVU5SRUFDSFwiLFwiRU5FVFJFU0VUXCIsXCJFQ09OTkFCT1JURURcIixcIkVDT05OUkVTRVRcIixcIkVOT0JVRlNcIixcIkVJU0NPTk5cIixcIkVOT1RDT05OXCIsXCJFU0hVVERPV05cIixcIkVUT09NQU5ZUkVGU1wiLFwiRVRJTUVET1VUXCIsXCJFQ09OTlJFRlVTRURcIixcIkVIT1NURE9XTlwiLFwiRUhPU1RVTlJFQUNIXCIsXCJFTE9PUFwiLFwiRU9WRVJGTE9XXCJdO2Z1bmN0aW9uIFlzKHgscixlLHQpe3ZhciB1PSRXLmluZGV4T2YoeCk7dTwwJiYodD09bnVsbCYmKHQ9LTk5OTkpLHU9WzAsdF0pO3ZhciBpPVt1LEp0KHJ8fGt4KSxKdChlfHxreCldO3JldHVybiBpfXZhciBVWD17fTtmdW5jdGlvbiBFbyh4KXtyZXR1cm4gVVhbeF19ZnVuY3Rpb24gVnMoeCxyKXt0aHJvdyBxMChbMCx4XS5jb25jYXQocikpfWZ1bmN0aW9uIEtJKHgpe3JldHVybiB4IGluc3RhbmNlb2YgVWludDhBcnJheXx8KHg9bmV3IFVpbnQ4QXJyYXkoeCkpLG5ldyBEcyg0LHgseC5sZW5ndGgpfWZ1bmN0aW9uIGpYKHgpe0RyKHgrdHApfWZ1bmN0aW9uIEgyKHgpe3RoaXMuZGF0YT14fUgyLnByb3RvdHlwZT1uZXcgTFgsSDIucHJvdG90eXBlLmNvbnN0cnVjdG9yPUgyLEgyLnByb3RvdHlwZS50cnVuY2F0ZT1mdW5jdGlvbih4KXt2YXIgcj10aGlzLmRhdGE7dGhpcy5kYXRhPXcxKHh8MCksTXMociwwLHRoaXMuZGF0YSwwLHgpfSxIMi5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIGN0KHRoaXMuZGF0YSl9LEgyLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT10aGlzLmxlbmd0aCgpO2lmKHgrdD49dSl7dmFyIGk9dzEoeCt0KSxmPXRoaXMuZGF0YTt0aGlzLmRhdGE9aSxNcyhmLDAsdGhpcy5kYXRhLDAsdSl9cmV0dXJuIE1zKEtJKHIpLGUsdGhpcy5kYXRhLHgsdCksMH0sSDIucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oeCxyLGUsdCl7dmFyIHU9dGhpcy5sZW5ndGgoKTtpZih4K3Q+PXUmJih0PXUteCksdCl7dmFyIGk9dzEodHwwKTtNcyh0aGlzLmRhdGEseCxpLDAsdCksci5zZXQoTVgoaSksZSl9cmV0dXJuIHR9O2Z1bmN0aW9uIFJ2KHgscixlKXt0aGlzLmZpbGU9cix0aGlzLm5hbWU9eCx0aGlzLmZsYWdzPWV9UnYucHJvdG90eXBlLmVycl9jbG9zZWQ9ZnVuY3Rpb24oKXtEcih0aGlzLm5hbWUrZVUpfSxSdi5wcm90b3R5cGUubGVuZ3RoPWZ1bmN0aW9uKCl7aWYodGhpcy5maWxlKXJldHVybiB0aGlzLmZpbGUubGVuZ3RoKCk7dGhpcy5lcnJfY2xvc2VkKCl9LFJ2LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih4LHIsZSx0KXtpZih0aGlzLmZpbGUpcmV0dXJuIHRoaXMuZmlsZS53cml0ZSh4LHIsZSx0KTt0aGlzLmVycl9jbG9zZWQoKX0sUnYucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oeCxyLGUsdCl7aWYodGhpcy5maWxlKXJldHVybiB0aGlzLmZpbGUucmVhZCh4LHIsZSx0KTt0aGlzLmVycl9jbG9zZWQoKX0sUnYucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5maWxlPXZvaWQgMH07ZnVuY3Rpb24gcDIoeCxyKXt0aGlzLmNvbnRlbnQ9e30sdGhpcy5yb290PXgsdGhpcy5sb29rdXBGdW49cn1wMi5wcm90b3R5cGUubm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucm9vdCt4fSxwMi5wcm90b3R5cGUuY3JlYXRlX2Rpcl9pZl9uZWVkZWQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciByPXguc3BsaXQoRjIpLGU9a3gsdD0wO3Q8ci5sZW5ndGgtMTt0KyspZSs9clt0XStGMiwhdGhpcy5jb250ZW50W2VdJiYodGhpcy5jb250ZW50W2VdPVN5bWJvbChcImRpcmVjdG9yeVwiKSl9LHAyLnByb3RvdHlwZS5zbGFzaD1mdW5jdGlvbih4KXtyZXR1cm4vXFwvJC8udGVzdCh4KT94OngrRjJ9LHAyLnByb3RvdHlwZS5sb29rdXA9ZnVuY3Rpb24oeCl7aWYoIXRoaXMuY29udGVudFt4XSYmdGhpcy5sb29rdXBGdW4pe3ZhciByPXRoaXMubG9va3VwRnVuKHRoaXMucm9vdCx4KTtyIT09MCYmKHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQoeCksdGhpcy5jb250ZW50W3hdPW5ldyBIMigkYyhyWzFdKSkpfX0scDIucHJvdG90eXBlLmV4aXN0cz1mdW5jdGlvbih4KXtpZih4PT1reClyZXR1cm4gMTt2YXIgcj10aGlzLnNsYXNoKHgpO3JldHVybiB0aGlzLmNvbnRlbnRbcl0/MToodGhpcy5sb29rdXAoeCksdGhpcy5jb250ZW50W3hdPzE6MCl9LHAyLnByb3RvdHlwZS5pc0ZpbGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZXhpc3RzKHgpJiYhdGhpcy5pc19kaXIoeCk/MTowfSxwMi5wcm90b3R5cGUubWtkaXI9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PWUmJkVvKHlwKTt0aGlzLmV4aXN0cyh4KSYmKHQ/VnModCxZcyhiVSxkTix0aGlzLm5tKHgpKSk6RHIoeCtcIjogRmlsZSBleGlzdHNcIikpO3ZhciB1PS9eKC4qKVxcL1teL10rLy5leGVjKHgpO3U9dSYmdVsxXXx8a3gsdGhpcy5leGlzdHModSl8fCh0P1ZzKHQsWXMoS1MsZE4sdGhpcy5ubSh1KSkpOkRyKHUrdHApKSx0aGlzLmlzX2Rpcih1KXx8KHQ/VnModCxZcyhlaCxkTix0aGlzLm5tKHUpKSk6RHIodSskaykpLHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQodGhpcy5zbGFzaCh4KSl9LHAyLnByb3RvdHlwZS5ybWRpcj1mdW5jdGlvbih4LHIpe3ZhciBlPXImJkVvKHlwKSx0PXg9PWt4P2t4OnRoaXMuc2xhc2goeCksdT1uZXcgUmVnRXhwKG04K3QrSUopO3RoaXMuZXhpc3RzKHgpfHwoZT9WcyhlLFlzKEtTLFlrLHRoaXMubm0oeCkpKTpEcih4K3RwKSksdGhpcy5pc19kaXIoeCl8fChlP1ZzKGUsWXMoZWgsWWssdGhpcy5ubSh4KSkpOkRyKHgrJGspKTtmb3IodmFyIGkgaW4gdGhpcy5jb250ZW50KWkubWF0Y2godSkmJihlP1ZzKGUsWXMoWk0sWWssdGhpcy5ubSh4KSkpOkRyKHRoaXMubm0oeCkrXCI6IERpcmVjdG9yeSBub3QgZW1wdHlcIikpO2RlbGV0ZSB0aGlzLmNvbnRlbnRbdF19LHAyLnByb3RvdHlwZS5yZWFkZGlyPWZ1bmN0aW9uKHgpe3ZhciByPXg9PWt4P2t4OnRoaXMuc2xhc2goeCk7dGhpcy5leGlzdHMoeCl8fERyKHgrdHApLHRoaXMuaXNfZGlyKHgpfHxEcih4KyRrKTt2YXIgZT1uZXcgUmVnRXhwKG04K3IrSUopLHQ9e30sdT1bXTtmb3IodmFyIGkgaW4gdGhpcy5jb250ZW50KXt2YXIgZj1pLm1hdGNoKGUpO2YmJiF0W2ZbMV1dJiYodFtmWzFdXT0hMCx1LnB1c2goZlsxXSkpfXJldHVybiB1fSxwMi5wcm90b3R5cGUub3BlbmRpcj1mdW5jdGlvbih4LHIpe3ZhciBlPXImJkVvKHlwKSx0PXRoaXMucmVhZGRpcih4KSx1PSExLGk9MDtyZXR1cm57cmVhZFN5bmM6ZnVuY3Rpb24oKXtpZih1JiYoZT9WcyhlLFlzKExULEdVLHRoaXMubm0oeCkpKTpEcih4K3VKKSksaT09dC5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGY9dFtpXTtyZXR1cm4gaSsrLHtuYW1lOmZ9fSxjbG9zZVN5bmM6ZnVuY3Rpb24oKXt1JiYoZT9WcyhlLFlzKExULEdVLHRoaXMubm0oeCkpKTpEcih4K3VKKSksdT0hMCx0PVtdfX19LHAyLnByb3RvdHlwZS5pc19kaXI9ZnVuY3Rpb24oeCl7aWYoeD09a3gpcmV0dXJuITA7dmFyIHI9dGhpcy5zbGFzaCh4KTtyZXR1cm4gdGhpcy5jb250ZW50W3JdPzE6MH0scDIucHJvdG90eXBlLnVubGluaz1mdW5jdGlvbih4KXt2YXIgcj0hIXRoaXMuY29udGVudFt4XTtyZXR1cm4gZGVsZXRlIHRoaXMuY29udGVudFt4XSxyfSxwMi5wcm90b3R5cGUub3Blbj1mdW5jdGlvbih4LHIpe3ZhciBlO3JldHVybiByLnJkb25seSYmci53cm9ubHkmJkRyKHRoaXMubm0oeCkrSFQpLHIudGV4dCYmci5iaW5hcnkmJkRyKHRoaXMubm0oeCkrY0kpLHRoaXMubG9va3VwKHgpLHRoaXMuY29udGVudFt4XT8odGhpcy5pc19kaXIoeCkmJkRyKHRoaXMubm0oeCkrdmopLHIuY3JlYXRlJiZyLmV4Y2wmJkRyKHRoaXMubm0oeCkrQ04pLGU9dGhpcy5jb250ZW50W3hdLHIudHJ1bmNhdGUmJmUudHJ1bmNhdGUoKSk6ci5jcmVhdGU/KHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQoeCksdGhpcy5jb250ZW50W3hdPW5ldyBIMih3MSgwKSksZT10aGlzLmNvbnRlbnRbeF0pOmpYKHRoaXMubm0oeCkpLG5ldyBSdih0aGlzLm5tKHgpLGUscil9LHAyLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKHgscil7dmFyIGU7cmV0dXJuIHIucmRvbmx5JiZyLndyb25seSYmRHIodGhpcy5ubSh4KStIVCksci50ZXh0JiZyLmJpbmFyeSYmRHIodGhpcy5ubSh4KStjSSksdGhpcy5sb29rdXAoeCksdGhpcy5jb250ZW50W3hdPyh0aGlzLmlzX2Rpcih4KSYmRHIodGhpcy5ubSh4KSt2aiksci5jcmVhdGUmJnIuZXhjbCYmRHIodGhpcy5ubSh4KStDTiksZT10aGlzLmNvbnRlbnRbeF0sci50cnVuY2F0ZSYmZS50cnVuY2F0ZSgpKTpyLmNyZWF0ZT8odGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZCh4KSx0aGlzLmNvbnRlbnRbeF09bmV3IEgyKHcxKDApKSxlPXRoaXMuY29udGVudFt4XSk6algodGhpcy5ubSh4KSksbmV3IFJ2KHRoaXMubm0oeCksZSxyKX0scDIucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKHgscil7dmFyIGU7aWYodGhpcy5jb250ZW50W3hdJiZEcih0aGlzLm5tKHgpK0NOKSxESShyKSYmKGU9bmV3IEgyKHIpKSxNSShyKSllPW5ldyBIMigkYyhyKSk7ZWxzZSBpZihyIGluc3RhbmNlb2YgQXJyYXkpZT1uZXcgSDIoS0kocikpO2Vsc2UgaWYodHlwZW9mIHI9PVwic3RyaW5nXCIpZT1uZXcgSDIobFgocikpO2Vsc2UgaWYoci50b1N0cmluZyl7dmFyIHQ9JGMoSnQoci50b1N0cmluZygpKSk7ZT1uZXcgSDIodCl9ZT8odGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZCh4KSx0aGlzLmNvbnRlbnRbeF09ZSk6RHIodGhpcy5ubSh4KStcIiA6IHJlZ2lzdGVyaW5nIGZpbGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQgdHlwZVwiKX0scDIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXAyO2Z1bmN0aW9uIHExKHgpe3RoaXMuZnM9e30sdGhpcy5yb290PXh9cTEucHJvdG90eXBlLm5tPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJvb3QreH0scTEucHJvdG90eXBlLmV4aXN0cz1mdW5jdGlvbih4KXt0cnl7cmV0dXJuIHRoaXMuZnMuZXhpc3RzU3luYyh0aGlzLm5tKHgpKT8xOjB9Y2F0Y2h7cmV0dXJuIDB9fSxxMS5wcm90b3R5cGUuaXNGaWxlPWZ1bmN0aW9uKHgpe3RyeXtyZXR1cm4gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKHgpKS5pc0ZpbGUoKT8xOjB9Y2F0Y2gocil7RHIoci50b1N0cmluZygpKX19LHExLnByb3RvdHlwZS5ta2Rpcj1mdW5jdGlvbih4LHIsZSl7dHJ5e3JldHVybiB0aGlzLmZzLm1rZGlyU3luYyh0aGlzLm5tKHgpLHttb2RlOnJ9KSwwfWNhdGNoKHQpe3RoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKHQsZSl9fSxxMS5wcm90b3R5cGUucm1kaXI9ZnVuY3Rpb24oeCxyKXt0cnl7cmV0dXJuIHRoaXMuZnMucm1kaXJTeW5jKHRoaXMubm0oeCkpLDB9Y2F0Y2goZSl7dGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZSxyKX19LHExLnByb3RvdHlwZS5yZWFkZGlyPWZ1bmN0aW9uKHgscil7dHJ5e3JldHVybiB0aGlzLmZzLnJlYWRkaXJTeW5jKHRoaXMubm0oeCkpfWNhdGNoKGUpe3RoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGUscil9fSxxMS5wcm90b3R5cGUuaXNfZGlyPWZ1bmN0aW9uKHgpe3RyeXtyZXR1cm4gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKHgpKS5pc0RpcmVjdG9yeSgpPzE6MH1jYXRjaChyKXtEcihyLnRvU3RyaW5nKCkpfX0scTEucHJvdG90eXBlLnVubGluaz1mdW5jdGlvbih4LHIpe3RyeXt2YXIgZT10aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubSh4KSk/MTowO3JldHVybiB0aGlzLmZzLnVubGlua1N5bmModGhpcy5ubSh4KSksZX1jYXRjaCh0KXt0aGlzLnJhaXNlX25vZGVqc19lcnJvcih0LHIpfX0scTEucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXt9LHU9MDtmb3IodmFyIGkgaW4gcilzd2l0Y2goaSl7Y2FzZVwicmRvbmx5XCI6dXw9dC5PX1JET05MWTticmVhaztjYXNlXCJ3cm9ubHlcIjp1fD10Lk9fV1JPTkxZO2JyZWFrO2Nhc2VcImFwcGVuZFwiOnV8PXQuT19XUk9OTFl8dC5PX0FQUEVORDticmVhaztjYXNlXCJjcmVhdGVcIjp1fD10Lk9fQ1JFQVQ7YnJlYWs7Y2FzZVwidHJ1bmNhdGVcIjp1fD10Lk9fVFJVTkM7YnJlYWs7Y2FzZVwiZXhjbFwiOnV8PXQuT19FWENMO2JyZWFrO2Nhc2VcImJpbmFyeVwiOnV8PXQuT19CSU5BUlk7YnJlYWs7Y2FzZVwidGV4dFwiOnV8PXQuT19URVhUO2JyZWFrO2Nhc2VcIm5vbmJsb2NrXCI6dXw9dC5PX05PTkJMT0NLO2JyZWFrfXRyeXt2YXIgZj10aGlzLmZzLm9wZW5TeW5jKHRoaXMubm0oeCksdSksbz10aGlzLmZzLmxzdGF0U3luYyh0aGlzLm5tKHgpKS5pc0NoYXJhY3RlckRldmljZSgpO3JldHVybiByLmlzQ2hhcmFjdGVyRGV2aWNlPW8sbmV3IGhuKGYscil9Y2F0Y2gobCl7dGhpcy5yYWlzZV9ub2RlanNfZXJyb3IobCxlKX19LHExLnByb3RvdHlwZS5yZW5hbWU9ZnVuY3Rpb24oeCxyLGUpe3RyeXt0aGlzLmZzLnJlbmFtZVN5bmModGhpcy5ubSh4KSx0aGlzLm5tKHIpKX1jYXRjaCh0KXt0aGlzLnJhaXNlX25vZGVqc19lcnJvcih0LGUpfX0scTEucHJvdG90eXBlLnN0YXQ9ZnVuY3Rpb24oeCxyKXt0cnl7dmFyIGU9dGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKHgpKTtyZXR1cm4gdGhpcy5zdGF0c19mcm9tX2pzKGUpfWNhdGNoKHQpe3RoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKHQscil9fSxxMS5wcm90b3R5cGUubHN0YXQ9ZnVuY3Rpb24oeCxyKXt0cnl7dmFyIGU9dGhpcy5mcy5sc3RhdFN5bmModGhpcy5ubSh4KSk7cmV0dXJuIHRoaXMuc3RhdHNfZnJvbV9qcyhlKX1jYXRjaCh0KXt0aGlzLnJhaXNlX25vZGVqc19lcnJvcih0LHIpfX0scTEucHJvdG90eXBlLnN5bWxpbms9ZnVuY3Rpb24oeCxyLGUsdCl7dHJ5e3JldHVybiB0aGlzLmZzLnN5bWxpbmtTeW5jKHRoaXMubm0ociksdGhpcy5ubShlKSx4P1wiZGlyXCI6XCJmaWxlXCIpLDB9Y2F0Y2godSl7dGhpcy5yYWlzZV9ub2RlanNfZXJyb3IodSx0KX19LHExLnByb3RvdHlwZS5yZWFkbGluaz1mdW5jdGlvbih4LHIpe3RyeXt2YXIgZT10aGlzLmZzLnJlYWRsaW5rU3luYyh0aGlzLm5tKHgpLFwidXRmOFwiKTtyZXR1cm4gSnQoZSl9Y2F0Y2godCl7dGhpcy5yYWlzZV9ub2RlanNfZXJyb3IodCxyKX19LHExLnByb3RvdHlwZS5vcGVuZGlyPWZ1bmN0aW9uKHgscil7dHJ5e3JldHVybiB0aGlzLmZzLm9wZW5kaXJTeW5jKHRoaXMubm0oeCkpfWNhdGNoKGUpe3RoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGUscil9fSxxMS5wcm90b3R5cGUucmFpc2Vfbm9kZWpzX2Vycm9yPWZ1bmN0aW9uKHgscil7dmFyIGU9RW8oeXApO2lmKHImJmUpe3ZhciB0PVlzKHguY29kZSx4LnN5c2NhbGwseC5wYXRoLHguZXJybm8pO1ZzKGUsdCl9ZWxzZSBEcih4LnRvU3RyaW5nKCkpfSxxMS5wcm90b3R5cGUuc3RhdHNfZnJvbV9qcz1mdW5jdGlvbih4KXt2YXIgcjtyZXR1cm4geC5pc0ZpbGUoKT9yPTA6eC5pc0RpcmVjdG9yeSgpP3I9MTp4LmlzQ2hhcmFjdGVyRGV2aWNlKCk/cj0yOnguaXNCbG9ja0RldmljZSgpP3I9Mzp4LmlzU3ltYm9saWNMaW5rKCk/cj00OnguaXNGSUZPKCk/cj01OnguaXNTb2NrZXQoKSYmKHI9NiksWzAseC5kZXYseC5pbm8scix4Lm1vZGUseC5ubGluayx4LnVpZCx4LmdpZCx4LnJkZXYseC5zaXplLHguYXRpbWVNcyx4Lm10aW1lTXMseC5jdGltZU1zXX0scTEucHJvdG90eXBlLmNvbnN0cnVjdG9yPXExO2Z1bmN0aW9uIEpYKHgpe3ZhciByPXpJKHgpO2lmKHIpcmV0dXJuIHJbMF0rRjJ9dmFyIEJkPUpYKGdsKXx8WDIoXCJ1bmFibGUgdG8gY29tcHV0ZSBjYW1sX3Jvb3RcIiksWGE9W107RWwoKT9YYS5wdXNoKHtwYXRoOkJkLGRldmljZTpuZXcgcTEoQmQpfSk6WGEucHVzaCh7cGF0aDpCZCxkZXZpY2U6bmV3IHAyKEJkKX0pLFhhLnB1c2goe3BhdGg6Z0osZGV2aWNlOm5ldyBwMihnSil9KTtmdW5jdGlvbiBGVyhlKXtmb3IodmFyIHI9WlcoZSksZT1yLmpvaW4oRjIpLHQ9RFgoZSksdSxpPTA7aTxYYS5sZW5ndGg7aSsrKXt2YXIgZj1YYVtpXTt0LnNlYXJjaChmLnBhdGgpPT0wJiYoIXV8fHUucGF0aC5sZW5ndGg8Zi5wYXRoLmxlbmd0aCkmJih1PXtwYXRoOmYucGF0aCxkZXZpY2U6Zi5kZXZpY2UscmVzdDplLnN1YnN0cmluZyhmLnBhdGgubGVuZ3RoLGUubGVuZ3RoKX0pfWlmKCF1JiZFbCgpKXt2YXIgbz1KWChlKTtpZihvJiZvLm1hdGNoKC9eW2EtekEtWl06XFwvJC8pKXt2YXIgZj17cGF0aDpvLGRldmljZTpuZXcgcTEobyl9O1hhLnB1c2goZiksdT17cGF0aDpmLnBhdGgsZGV2aWNlOmYuZGV2aWNlLHJlc3Q6ZS5zdWJzdHJpbmcoZi5wYXRoLmxlbmd0aCxlLmxlbmd0aCl9fX1pZih1KXJldHVybiB1O0RyKFwibm8gZGV2aWNlIGZvdW5kIGZvciBcIit0KX1mdW5jdGlvbiBBbCh4LHIpe0gyLmNhbGwodGhpcyx3MSgwKSksdGhpcy5sb2c9ZnVuY3Rpb24oZSl7cmV0dXJuIDB9LHg9PTEmJnR5cGVvZiBjb25zb2xlLmxvZz09XCJmdW5jdGlvblwiP3RoaXMubG9nPWNvbnNvbGUubG9nOng9PTImJnR5cGVvZiBjb25zb2xlLmVycm9yPT1cImZ1bmN0aW9uXCI/dGhpcy5sb2c9Y29uc29sZS5lcnJvcjp0eXBlb2YgY29uc29sZS5sb2c9PVwiZnVuY3Rpb25cIiYmKHRoaXMubG9nPWNvbnNvbGUubG9nKSx0aGlzLmZsYWdzPXJ9QWwucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiAwfSxBbC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oeCxyLGUsdCl7aWYodGhpcy5sb2cpe3Q+MCYmZT49MCYmZSt0PD1yLmxlbmd0aCYmcltlK3QtMV09PTEwJiZ0LS07dmFyIHU9dzEodCk7cmV0dXJuIE1zKEtJKHIpLGUsdSwwLHQpLHRoaXMubG9nKHUudG9VdGYxNigpKSwwfURyKHRoaXMuZmQrZVUpfSxBbC5wcm90b3R5cGUucmVhZD1mdW5jdGlvbih4LHIsZSx0KXtEcih0aGlzLmZkK1wiOiBmaWxlIGRlc2NyaXB0b3IgaXMgd3JpdGUgb25seVwiKX0sQWwucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7dGhpcy5sb2c9dm9pZCAwfTtmdW5jdGlvbiBXZCh4LHIpe3JldHVybiByPT1udWxsJiYocj1LZC5sZW5ndGgpLEtkW3JdPXgscnwwfWZ1bmN0aW9uIHZDMCh4LHIsZSl7Zm9yKHZhciB0PXt9O3I7KXtzd2l0Y2goclsxXSl7Y2FzZSAwOnQucmRvbmx5PTE7YnJlYWs7Y2FzZSAxOnQud3Jvbmx5PTE7YnJlYWs7Y2FzZSAyOnQuYXBwZW5kPTE7YnJlYWs7Y2FzZSAzOnQuY3JlYXRlPTE7YnJlYWs7Y2FzZSA0OnQudHJ1bmNhdGU9MTticmVhaztjYXNlIDU6dC5leGNsPTE7YnJlYWs7Y2FzZSA2OnQuYmluYXJ5PTE7YnJlYWs7Y2FzZSA3OnQudGV4dD0xO2JyZWFrO2Nhc2UgODp0Lm5vbmJsb2NrPTE7YnJlYWt9cj1yWzJdfXQucmRvbmx5JiZ0Lndyb25seSYmRHIoeCtIVCksdC50ZXh0JiZ0LmJpbmFyeSYmRHIoeCtjSSk7dmFyIHU9RlcoeCksaT11LmRldmljZS5vcGVuKHUucmVzdCx0KTtyZXR1cm4gV2QoaSx2b2lkIDApfShmdW5jdGlvbigpe2Z1bmN0aW9uIHgocixlKXtyZXR1cm4gRWwoKT9CVyhyLGUpOm5ldyBBbChyLGUpfVdkKHgoMCx7cmRvbmx5OjEsYWx0bmFtZTpcIi9kZXYvc3RkaW5cIixpc0NoYXJhY3RlckRldmljZTohMH0pLDApLFdkKHgoMSx7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTohMH0pLDEpLFdkKHgoMix7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTohMH0pLDIpfSkoKTtmdW5jdGlvbiBRVyh4KXt2YXIgcj1LZFt4XTtyLmZsYWdzLndyb25seSYmRHIoY0oreCtcIiBpcyB3cml0ZW9ubHlcIik7dmFyIGU9bnVsbCx0PXtmaWxlOnIsb2Zmc2V0OnIuZmxhZ3MuYXBwZW5kP3IubGVuZ3RoKCk6MCxmZDp4LG9wZW5lZDohMCxvdXQ6ITEsYnVmZmVyX2N1cnI6MCxidWZmZXJfbWF4OjAsYnVmZmVyOm5ldyBVaW50OEFycmF5KGIzKSxyZWZpbGw6ZX07cmV0dXJuIFhzW3QuZmRdPXQsdC5mZH1mdW5jdGlvbiBYWCh4KXt2YXIgcj1LZFt4XTtyLmZsYWdzLnJkb25seSYmRHIoY0oreCtcIiBpcyByZWFkb25seVwiKTt2YXIgZT1yLmZsYWdzLmJ1ZmZlcmVkIT09dm9pZCAwP3IuZmxhZ3MuYnVmZmVyZWQ6MSx0PXtmaWxlOnIsb2Zmc2V0OnIuZmxhZ3MuYXBwZW5kP3IubGVuZ3RoKCk6MCxmZDp4LG9wZW5lZDohMCxvdXQ6ITAsYnVmZmVyX2N1cnI6MCxidWZmZXI6bmV3IFVpbnQ4QXJyYXkoYjMpLGJ1ZmZlcmVkOmV9O3JldHVybiBYc1t0LmZkXT10LHQuZmR9ZnVuY3Rpb24gR1coKXtmb3IodmFyIHg9MCxyPTA7cjxYcy5sZW5ndGg7cisrKVhzW3JdJiZYc1tyXS5vcGVuZWQmJlhzW3JdLm91dCYmKHg9WzAsWHNbcl0uZmQseF0pO3JldHVybiB4fWZ1bmN0aW9uIFMyKHgpe3JldHVybiB4LnQmNiYmUmQoeCkseC5jfWZ1bmN0aW9uIHFXKHgsaSxlLHQpe3ZhciB1PVhzW3hdO3Uub3BlbmVkfHxEcihcIkNhbm5vdCBvdXRwdXQgdG8gYSBjbG9zZWQgY2hhbm5lbFwiKTt2YXIgaT1NWChpKTtpZihpPWkuc3ViYXJyYXkoZSxlK3QpLHUuYnVmZmVyX2N1cnIraS5sZW5ndGg+dS5idWZmZXIubGVuZ3RoKXt2YXIgZj1uZXcgVWludDhBcnJheSh1LmJ1ZmZlcl9jdXJyK2kubGVuZ3RoKTtmLnNldCh1LmJ1ZmZlciksdS5idWZmZXI9Zn1zd2l0Y2godS5idWZmZXJlZCl7Y2FzZSAwOnUuYnVmZmVyLnNldChpLHUuYnVmZmVyX2N1cnIpLHUuYnVmZmVyX2N1cnIrPWkubGVuZ3RoLFFjKHgpO2JyZWFrO2Nhc2UgMTp1LmJ1ZmZlci5zZXQoaSx1LmJ1ZmZlcl9jdXJyKSx1LmJ1ZmZlcl9jdXJyKz1pLmxlbmd0aCx1LmJ1ZmZlcl9jdXJyPj11LmJ1ZmZlci5sZW5ndGgmJlFjKHgpO2JyZWFrO2Nhc2UgMjp2YXIgbz1pLmxhc3RJbmRleE9mKDEwKTtvPDA/KHUuYnVmZmVyLnNldChpLHUuYnVmZmVyX2N1cnIpLHUuYnVmZmVyX2N1cnIrPWkubGVuZ3RoLHUuYnVmZmVyX2N1cnI+PXUuYnVmZmVyLmxlbmd0aCYmUWMoeCkpOih1LmJ1ZmZlci5zZXQoaS5zdWJhcnJheSgwLG8rMSksdS5idWZmZXJfY3VyciksdS5idWZmZXJfY3Vycis9bysxLFFjKHgpLHUuYnVmZmVyLnNldChpLnN1YmFycmF5KG8rMSksdS5idWZmZXJfY3VyciksdS5idWZmZXJfY3Vycis9aS5sZW5ndGgtby0xKTticmVha31yZXR1cm4gMH1mdW5jdGlvbiBCSSh4LHIsZSx0KXtyZXR1cm4gcVcoeCwkYyhyKSxlLHQpfWZ1bmN0aW9uIFlYKHgscil7dmFyIGU9U3RyaW5nLmZyb21DaGFyQ29kZShyKTtyZXR1cm4gQkkoeCxlLDAsMSksMH1mdW5jdGlvbiBQbCh4LHIpe3JldHVybisoRGQoeCxyLCExKSE9MCl9ZnVuY3Rpb24gV0koeCxyKXt2YXIgZT1uZXcgQXJyYXkocisxKTtlWzBdPXg7Zm9yKHZhciB0PTE7dDw9cjt0KyspZVt0XT0wO3JldHVybiBlfWZ1bmN0aW9uIEhXKHgscil7cmV0dXJuIHhbMF09T3YseFsxXT1yLDB9ZnVuY3Rpb24gTHYoeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBBcnJheSYmeFswXT09eFswXT4+PjA/eFswXTpESSh4KXx8TUkoeCk/RWE6eCBpbnN0YW5jZW9mIEZ1bmN0aW9ufHx0eXBlb2YgeD09XCJmdW5jdGlvblwiP1g4OngmJnguY2FtbF9jdXN0b20/ejM6dWx9ZnVuY3Rpb24gYlcoeCl7Zm9yKHZhciByO3g7KWlmKGVyKHhbMV1bMV0pPT1cIlNZSlNcIil7cj14WzFdWzJdO2JyZWFrfWVsc2UgeD14WzJdO3ZhciBlPXt9O2lmKHIpZm9yKHZhciB0PTE7dDxyLmxlbmd0aDt0KyspZVtlcihyW3RdWzFdKV09clt0XVsyXTtyZXR1cm4gZX1mdW5jdGlvbiBYdCh4LHIsZSl7aWYoZSl7dmFyIHQ9ZTtpZihwMC50b3BsZXZlbFJlbG9jKXg9emQocDAudG9wbGV2ZWxSZWxvYyxbdF0pO2Vsc2UgaWYoSjIudG9jKXtKMi5zeW1ib2xzfHwoSjIuc3ltYm9scz1iVyhKMi50b2MpKTt2YXIgdT1KMi5zeW1ib2xzW3RdO3U+PTA/eD11OlgyKFwiY2FtbF9yZWdpc3Rlcl9nbG9iYWw6IGNhbm5vdCBsb2NhdGUgXCIrdCl9fUoyW3grMV09cixlJiYoSjJbZV09cil9ZnVuY3Rpb24gWkkoeCxyKXtyZXR1cm4gVVhbeF09ciwwfWZ1bmN0aW9uIHhaKHgpe3JldHVybiB4WzJdPUlYKysseH1mdW5jdGlvbiBBcih4LHIpe3JldHVybiB4PT09cj8xOjB9ZnVuY3Rpb24gclooKXtHMShuZyl9ZnVuY3Rpb24gTjEoeCxyKXtyZXR1cm4gcj4+PjA+PVh4KHgpJiZyWigpLGZ4KHgscil9ZnVuY3Rpb24gUCh4LHIpe3JldHVybiAxLUFyKHgscil9ZnVuY3Rpb24gZVooKXtyZXR1cm4gMjE0NzQ4MzY0Ny80fDB9dmFyIHRaPXAwLnByb2Nlc3MmJnAwLnByb2Nlc3MucGxhdGZvcm0mJnAwLnByb2Nlc3MucGxhdGZvcm09PW1VP0VKOlwiVW5peFwiO2Z1bmN0aW9uIG5aKCl7cmV0dXJuWzAsdFosMzIsMF19ZnVuY3Rpb24gdVooKXt5WChKMi5Ob3RfZm91bmQpfWZ1bmN0aW9uIFZYKHgpe3ZhciByPXBYKGVyKHgpKTtyZXR1cm4gcj09PXZvaWQgMCYmdVooKSxKdChyKX1mdW5jdGlvbiAkSSh4KXtmb3IodmFyIHI9MTt4JiZ4Lmpvb190cmFtcDspeD14Lmpvb190cmFtcC5hcHBseShudWxsLHguam9vX2FyZ3MpLHIrKztyZXR1cm4geH1mdW5jdGlvbiBkMih4LHIpe3JldHVybntqb29fdHJhbXA6eCxqb29fYXJnczpyfX1mdW5jdGlvbiBJMCh4LHIpe2lmKHR5cGVvZiByPT1cImZ1bmN0aW9uXCIpcmV0dXJuIHguZnVuPXIsMDtpZihyLmZ1bilyZXR1cm4geC5mdW49ci5mdW4sMDtmb3IodmFyIGU9ci5sZW5ndGg7ZS0tOyl4W2VdPXJbZV07cmV0dXJuIDB9ZnVuY3Rpb24gQzEoeCl7e2lmKHggaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4geDt2YXIgcjtyZXR1cm4gcDAuUmFuZ2VFcnJvciYmeCBpbnN0YW5jZW9mIHAwLlJhbmdlRXJyb3ImJngubWVzc2FnZSYmeC5tZXNzYWdlLm1hdGNoKC9tYXhpbXVtIGNhbGwgc3RhY2svaSl8fHAwLkludGVybmFsRXJyb3ImJnggaW5zdGFuY2VvZiBwMC5JbnRlcm5hbEVycm9yJiZ4Lm1lc3NhZ2UmJngubWVzc2FnZS5tYXRjaCgvdG9vIG11Y2ggcmVjdXJzaW9uL2kpP3I9SjIuU3RhY2tfb3ZlcmZsb3c6eCBpbnN0YW5jZW9mIHAwLkVycm9yJiZFbyhSRSk/cj1bMCxFbyhSRSkseF06cj1bMCxKMi5GYWlsdXJlLEp0KFN0cmluZyh4KSldLHggaW5zdGFuY2VvZiBwMC5FcnJvciYmKHIuanNfZXJyb3I9eCkscn19ZnVuY3Rpb24gaVooeCl7c3dpdGNoKHhbMl0pe2Nhc2UtODpjYXNlLTExOmNhc2UtMTI6cmV0dXJuIDE7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gZlooeCl7dmFyIHI9a3g7aWYoeFswXT09MCl7aWYocis9eFsxXVsxXSx4Lmxlbmd0aD09MyYmeFsyXVswXT09MCYmaVooeFsxXSkpdmFyIHQ9eFsyXSxlPTE7ZWxzZSB2YXIgZT0yLHQ9eDtyKz1ETTtmb3IodmFyIHU9ZTt1PHQubGVuZ3RoO3UrKyl7dT5lJiYocis9REQpO3ZhciBpPXRbdV07dHlwZW9mIGk9PVwibnVtYmVyXCI/cis9aS50b1N0cmluZygpOmkgaW5zdGFuY2VvZiBEc3x8dHlwZW9mIGk9PVwic3RyaW5nXCI/cis9RzgraS50b1N0cmluZygpK0c4OnIrPUFhfXIrPUpTfWVsc2UgeFswXT09R3ImJihyKz14WzFdKTtyZXR1cm4gcn1mdW5jdGlvbiB6WCh4KXtpZih4IGluc3RhbmNlb2YgQXJyYXkmJih4WzBdPT0wfHx4WzBdPT1Hcikpe3ZhciByPUVvKHVEKTtpZihyKXpkKHIsW3gsITFdKTtlbHNle3ZhciBlPWZaKHgpLHQ9RW8ocUQpO2lmKHQmJnpkKHQsWzBdKSxjb25zb2xlLmVycm9yKGJDK2UrYFxuYCkseC5qc19lcnJvcil0aHJvdyB4LmpzX2Vycm9yfX1lbHNlIHRocm93IHh9ZnVuY3Rpb24gY1ooKXt2YXIgeD1wMC5wcm9jZXNzO3gmJngub24/eC5vbihcInVuY2F1Z2h0RXhjZXB0aW9uXCIsZnVuY3Rpb24ocixlKXt6WChyKSx4LmV4aXQoMil9KTpwMC5hZGRFdmVudExpc3RlbmVyJiZwMC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmdW5jdGlvbihyKXtyLmVycm9yJiZ6WChyLmVycm9yKX0pfWNaKCk7ZnVuY3Rpb24gYSh4LHIpe3JldHVybih4Lmw+PTA/eC5sOngubD14Lmxlbmd0aCk9PTE/eChyKTpVcyh4LFtyXSl9ZnVuY3Rpb24gcCh4LHIsZSl7cmV0dXJuKHgubD49MD94Lmw6eC5sPXgubGVuZ3RoKT09Mj94KHIsZSk6VXMoeCxbcixlXSl9ZnVuY3Rpb24gSDAoeCxyLGUsdCl7cmV0dXJuKHgubD49MD94Lmw6eC5sPXgubGVuZ3RoKT09Mz94KHIsZSx0KTpVcyh4LFtyLGUsdF0pfWZ1bmN0aW9uIHZlKHgscixlLHQsdSl7cmV0dXJuKHgubD49MD94Lmw6eC5sPXgubGVuZ3RoKT09ND94KHIsZSx0LHUpOlVzKHgsW3IsZSx0LHVdKX1mdW5jdGlvbiBWZSh4LHIsZSx0LHUsaSl7cmV0dXJuKHgubD49MD94Lmw6eC5sPXgubGVuZ3RoKT09NT94KHIsZSx0LHUsaSk6VXMoeCxbcixlLHQsdSxpXSl9ZnVuY3Rpb24gc1ooeCxyLGUsdCx1LGksZixvKXtyZXR1cm4oeC5sPj0wP3gubDp4Lmw9eC5sZW5ndGgpPT03P3gocixlLHQsdSxpLGYsbyk6VXMoeCxbcixlLHQsdSxpLGYsb10pfXZhciBGST1bR3IsS0osLTFdLEtYPVtHcixtSiwtMl0sX249W0dyLEZfLC0zXSxRST1bR3IsaUosLTRdLEUyPVtHcixfVSwtN10sQlg9W0dyLFJqLC04XSxXWD1bR3IseWosLTldLHdyPVtHcixCTSwtMTFdLE5sPVtHcixZaiwtMTJdLG9aPVs0LDAsMCwwLFsxMiw0NSxbNCwwLDAsMCwwXV1dLEdJPVswLFsxMSwnRmlsZSBcIicsWzIsMCxbMTEsJ1wiLCBsaW5lICcsWzQsMCwwLDAsWzExLG9qLFs0LDAsMCwwLFsxMiw0NSxbNCwwLDAsMCxbMTEsXCI6IFwiLFsyLDAsMF1dXV1dXV1dXV0sJ0ZpbGUgXCIlc1wiLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkOiAlcyddLFlhPVswLDAsWzAsMCwwXSxbMCwwLDBdXSxDbD1bMCwwLDAsMCwxLDAsMCwwXSxaWD1bMCxcImZpcnN0X2xlYWRpbmdcIixcImxhc3RfdHJhaWxpbmdcIl0sJFg9WzAsd2YsTmYsZmkseTcsUGYsT2ksa3UsY2MsRDcsVmksQ2Ysb24senUsYWMsTWUsUDcsSDcsdGYsV2YsZzcsdmksV2MsVGMscjcsY2YsWTcsd3UsWWkscWksemMsVzcsZ3Usa2kscmYsU2ksb2kscWYsWmksZnUsYTcsQmMsejcsJHUsX2MscGksdWYsJGYsJG4sc2MsbGMsR2ksT2UsUmUsSnUsZGYsaGMsSmksazcsT2YsWXUscmMsdmYsdWMsRWYsU2MsTmksc2UsTWkseDcsc2YsSGksU3UsdTcsT3UsVWksZWYsd2MsdmMsQ3UsanUsbmYsbTcsR24sVGYscDcsVmYsVjcsRjEsbWksUXUsUW4sSzcsbDcsUmYsa2YsRjcsdHUsTGksTXUsRXUsc3UsRnUsdGMscTcsWW4sZmMsaDcsQm4sTTcsSHUscXUsSWYscmkscGYsVm4sd2ksWGMsQmkseXUsX2ksbHUsQXUsQ3QsdzcsaTcsUzcsTTIsaGksdXUsWHUsdjcsYWYsdnUsWWYsTjcsUTIsYnUsSG4samYsWGksY3UsWmMscnUsZHUsJDEsamksS3UsQWMsaWMsdDcsbWYsaHUsdGksamMsY2ksTDcsZjcseHUsRm4sUWYsRmYsUWkseGMsVTcsRHUsV24sSWksUjcsem4saXUsYmksdXIsYzcsc2ksTHUsa2MsR3UsczcsTGMsSWMsVnUsTmMsQjcsaGYsQzcsUmksTWYsQmYsbnUsJGksSmMsZmYsRGMsbjcsaWksX2YsdWksZWMsYWksYjcsSGYsZTcsQnUsZ2Ysa24sUmMsTnUsWDcscGMsRWMsQTcsWjcsVXUsbzcsZDcsRGksSXUsb2MsR2YsZXUsWGYsWWMsX3UsVWYsZGMsYXUsSmUsbWMsb3UsUnUsbXUsRmksTzcsVWUseWMsWnUsSTcsZ2MsS2ksV2ksXzcseGYsWWUsUHUsUTcsTGYseWYsQ2MsQWksU2YsWGUsVmMsb2YsemksVHUsbmMsWm4scW4sVGksemYseWksTWMsVDcsVWMsZGksS24sSjcsZ2ksWmYsS2YsRzcsRTcsajcsbGksV3UsUGMsYm4sJDcseGksS2MsUGksVTIsRGYsbGYsbmksajJdLHduPVswLDAsMF07WHQoMTEsTmwsWWopLFh0KDEwLHdyLEJNKSxYdCg5LFtHcixBVSxPRF0sQVUpLFh0KDgsV1gseWopLFh0KDcsQlgsUmopLFh0KDYsRTIsX1UpLFh0KDUsW0dyLHJVLC02XSxyVSksWHQoNCxbR3IsaUQsLTVdLGlEKSxYdCgzLFFJLGlKKSxYdCgyLF9uLEZfKSxYdCgxLEtYLG1KKSxYdCgwLEZJLEtKKTt2YXIgdlo9XCJvdXRwdXRfc3Vic3RyaW5nXCIsYVo9YmYsbFo9U3MscFo9QXMsZFo9XCJDYW1saW50ZXJuYWxMYXp5LlVuZGVmaW5lZFwiLHlaPVNKLG1aPVwiXFxcXCdcIixrWj1cIlxcXFxiXCIsaFo9XCJcXFxcdFwiLF9aPVwiXFxcXG5cIix3Wj1cIlxcXFxyXCIsVFo9XCJMaXN0Lml0ZXIyXCIsU1o9XCJ0bFwiLEVaPVwiaGRcIixnWj1cIlN0cmluZy5ibGl0IC8gQnl0ZXMuYmxpdF9zdHJpbmdcIixBWj1cIkJ5dGVzLmJsaXRcIixQWj1cIlN0cmluZy5zdWIgLyBCeXRlcy5zdWJcIixOWj1cIlN0cmluZy5jb25jYXRcIixDWj1cIkFycmF5LmJsaXRcIixJWj1cIkFycmF5LnN1YlwiLE9aPVwiTWFwLnJlbW92ZV9taW5fZWx0XCIsUlo9WzAsMCwwLDBdLExaPVswLFwibWFwLm1sXCIsNDAwLDEwXSxNWj1bMCwwLDBdLERaPUo0LFVaPUo0LGpaPUo0LEpaPUo0LFhaPVwiU3RkbGliLlF1ZXVlLkVtcHR5XCIsWVo9XCJCdWZmZXIuYWRkX3N1YnN0cmluZy9hZGRfc3ViYnl0ZXNcIixWWj1cIkJ1ZmZlci5hZGQ6IGNhbm5vdCBncm93IGJ1ZmZlclwiLHpaPVswLHJELDkzLDJdLEtaPVswLHJELDk0LDJdLEJaPVwiQnVmZmVyLnN1YlwiLFdaPVwiJWNcIixaWj1cIiVzXCIsJFo9WE0sRlo9VEosUVo9ZFUsR1o9WUoscVo9XCIlZlwiLEhaPVwiJUJcIixiWj1cIiV7XCIseCQ9XCIlfVwiLHIkPVwiJShcIixlJD1cIiUpXCIsdCQ9TVUsbiQ9XCIldFwiLHUkPVwiJT9cIixpJD1cIiVyXCIsZiQ9XCIlX3JcIixjJD1bMCx1Miw4NTAsMjNdLHMkPVswLHUyLDgxNCwyMV0sbyQ9WzAsdTIsODE1LDIxXSx2JD1bMCx1Miw4MTgsMjFdLGEkPVswLHUyLDgxOSwyMV0sbCQ9WzAsdTIsODIyLDE5XSxwJD1bMCx1Miw4MjMsMTldLGQkPVswLHUyLDgyNiwyMl0seSQ9WzAsdTIsODI3LDIyXSxtJD1bMCx1Miw4MzEsMzBdLGskPVswLHUyLDgzMiwzMF0saCQ9WzAsdTIsODM2LDI2XSxfJD1bMCx1Miw4MzcsMjZdLHckPVswLHUyLDg0NiwyOF0sVCQ9WzAsdTIsODQ3LDI4XSxTJD1bMCx1Miw4NTEsMjNdLEUkPVswLHUyLDE1NTgsNF0sZyQ9XCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVbXCIsQSQ9WzAsdTIsMTYyNiwzOV0sUCQ9WzAsdTIsMTY0OSwzMV0sTiQ9WzAsdTIsMTY1MCwzMV0sQyQ9XCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVfXCIsSSQ9VWosTyQ9eVUsUiQ9VWosTCQ9eVUsTSQ9WzAsWzExLFwiaW52YWxpZCBib3ggZGVzY3JpcHRpb24gXCIsWzMsMCwwXV0sXCJpbnZhbGlkIGJveCBkZXNjcmlwdGlvbiAlU1wiXSxEJD1bMCwwLDRdLFUkPU1rLGokPVwibmVnX2luZmluaXR5XCIsSiQ9RVUsWCQ9YmYsWSQ9WzAsZm5dLFYkPVwiJStuZFwiLHokPVwiJSBuZFwiLEskPVwiJStuaVwiLEIkPVwiJSBuaVwiLFckPVwiJW54XCIsWiQ9XCIlI254XCIsJCQ9XCIlblhcIixGJD1cIiUjblhcIixRJD1cIiVub1wiLEckPVwiJSNub1wiLHEkPVwiJW5kXCIsSCQ9ZFUsYiQ9XCIlbnVcIix4Rj1cIiUrbGRcIixyRj1cIiUgbGRcIixlRj1cIiUrbGlcIix0Rj1cIiUgbGlcIixuRj1cIiVseFwiLHVGPVwiJSNseFwiLGlGPVwiJWxYXCIsZkY9XCIlI2xYXCIsY0Y9XCIlbG9cIixzRj1cIiUjbG9cIixvRj1cIiVsZFwiLHZGPVRKLGFGPVwiJWx1XCIsbEY9XCIlK0xkXCIscEY9XCIlIExkXCIsZEY9XCIlK0xpXCIseUY9XCIlIExpXCIsbUY9XCIlTHhcIixrRj1cIiUjTHhcIixoRj1cIiVMWFwiLF9GPVwiJSNMWFwiLHdGPVwiJUxvXCIsVEY9XCIlI0xvXCIsU0Y9XCIlTGRcIixFRj1ZSixnRj1cIiVMdVwiLEFGPVwiJStkXCIsUEY9XCIlIGRcIixORj1cIiUraVwiLENGPVwiJSBpXCIsSUY9XCIleFwiLE9GPVwiJSN4XCIsUkY9XCIlWFwiLExGPVwiJSNYXCIsTUY9XCIlb1wiLERGPVwiJSNvXCIsVUY9aGwsakY9WE0sSkY9cmosWEY9dmEsWUY9XCJAfVwiLFZGPVwiQD9cIix6Rj1gQFxuYCxLRj1cIkAuXCIsQkY9XCJAQFwiLFdGPVwiQCVcIixaRj1rVSwkRj1cIkNhbWxpbnRlcm5hbEZvcm1hdC5UeXBlX21pc21hdGNoXCIsRkY9a3gsUUY9WzAsWzExLERELFsyLDAsWzIsMCwwXV1dLFwiLCAlcyVzXCJdLEdGPVswLFsxMSxiQyxbMiwwLFsxMiwxMCwwXV1dLG1qXSxxRj1bMCxbMTEsXCJGYXRhbCBlcnJvciBpbiB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlcjogZXhjZXB0aW9uIFwiLFsyLDAsWzEyLDEwLDBdXV0sYEZhdGFsIGVycm9yIGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyOiBleGNlcHRpb24gJXNcbmBdLEhGPVwiRmF0YWwgZXJyb3I6IG91dCBvZiBtZW1vcnkgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXJcIixiRj1bMCxbMTEsYkMsWzIsMCxbMTIsMTAsMF1dXSxtal0seFE9WzAsWzIsMCxbMTIsMTAsMF1dLGAlc1xuYF0sclE9XCJSYWlzZWQgYXRcIixlUT1cIlJlLXJhaXNlZCBhdFwiLHRRPVwiUmFpc2VkIGJ5IHByaW1pdGl2ZSBvcGVyYXRpb24gYXRcIixuUT1cIkNhbGxlZCBmcm9tXCIsdVE9XCIgKGlubGluZWQpXCIsaVE9a3gsZlE9WzAsWzIsMCxbMTIsMzIsWzIsMCxbMTEsJyBpbiBmaWxlIFwiJyxbMiwwLFsxMiwzNCxbMiwwLFsxMSxcIiwgbGluZSBcIixbNCwwLDAsMCxbMTEsb2osb1pdXV1dXV1dXV1dLCclcyAlcyBpbiBmaWxlIFwiJXNcIiVzLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkJ10sY1E9WzAsWzIsMCxbMTEsXCIgdW5rbm93biBsb2NhdGlvblwiLDBdXSxcIiVzIHVua25vd24gbG9jYXRpb25cIl0sc1E9XCJPdXQgb2YgbWVtb3J5XCIsb1E9XCJTdGFjayBvdmVyZmxvd1wiLHZRPVwiUGF0dGVybiBtYXRjaGluZyBmYWlsZWRcIixhUT1cIkFzc2VydGlvbiBmYWlsZWRcIixsUT1cIlVuZGVmaW5lZCByZWN1cnNpdmUgbW9kdWxlXCIscFE9WzAsWzEyLDQwLFsyLDAsWzIsMCxbMTIsNDEsMF1dXV0sXCIoJXMlcylcIl0sZFE9a3gseVE9a3gsbVE9WzAsWzEyLDQwLFsyLDAsWzEyLDQxLDBdXV0sXCIoJXMpXCJdLGtRPVswLFs0LDAsMCwwLDBdLGhsXSxoUT1bMCxbMywwLDBdLEozXSxfUT1BYSx3UT1bMCxreCxgKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XG4gYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgbm90IGZvdW5kKWAsYChDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxuIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGFwcGVhcnMgdG8gYmUgY29ycnVwdClgLGAoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcbiBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBoYXMgd3JvbmcgbWFnaWMgbnVtYmVyKWAsYChDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxuIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGNhbm5vdCBiZSBvcGVuZWQ7XG4gLS0gdG9vIG1hbnkgb3BlbiBmaWxlcy4gVHJ5IHJ1bm5pbmcgd2l0aCBPQ0FNTFJVTlBBUkFNPWI9MilgXSxUUT1bMywwLDNdLFNRPWJmLEVRPSQzLGdRPVwiPC9cIixBUT1reCxQUT0kMyxOUT1KVCxDUT1reCxJUT12VCxPUT1reCxSUT1reCxMUT1reCxNUT1reCxEUT1bMCxreF0sVVE9a3gsalE9a3gsSlE9a3gsWFE9a3gsWVE9WzAsa3gsMCxreF0sVlE9XCJTdGRsaWIuRm9ybWF0LlN0cmluZ190YWdcIix6UT1bMCxcImNhbWxpbnRlcm5hbE9PLm1sXCIseGssNTBdLEtRPVswLCRKLDcyLDVdLEJRPVswLCRKLDgxLDJdLFdRPVswLFwic3JjL3d0ZjgubWxcIiw2NSw5XSxaUT1bMCxcInNyYy90aGlyZC1wYXJ0eS9zZWRsZXgvZmxvd19zZWRsZXhpbmcubWxcIixCNCw0XSwkUT1cIkZsb3dfc2VkbGV4aW5nLk1hbEZvcm1lZFwiLEZRPVwiU2V0LnJlbW92ZV9taW5fZWx0XCIsUVE9WzAsWzEyLDU5LFsxNyxbMCxjZSwxLDBdLDBdXSxycF0sR1E9WzAsWzE4LFsxLFswLFsxMSxJZSwwXSxJZV1dLFsxMixSdCwwXV0sXCJAWzwyPntcIl0scVE9WzAsWzEyLDMyLDBdLE10XSxIUT1bMCxbMTIsMzIsMF0sTXRdLGJRPVswLFsxNyxbMCxcIkAsXCIsMCwwXSxbMTIsQ2ksWzE3LDAsMF1dXSxcIkAsfUBdXCJdLHhHPVswLFwic3JjL2hhY2tfZm9ya2VkL3V0aWxzL2NvbGxlY3Rpb25zL3RoaXJkLXBhcnR5L2Zsb3dfc2V0Lm1sXCIsMzc5LDE0XSxyRz1GMyxlRz1rYSx0Rz1MYSxuRz13eCx1Rz1rdixpRz1bMCxbMTIsNDAsWzE4LFsxLFswLFsxMSxJZSwwXSxJZV1dLFsxMSxcIkZpbGVfa2V5LkxpYkZpbGVcIixbMTcsWzAsY2UsMSwwXSwwXV1dXSxcIihAWzwyPkZpbGVfa2V5LkxpYkZpbGVAIFwiXSxmRz1bMCxbMywwLDBdLEozXSxjRz1bMCxbMTcsMCxbMTIsNDEsMF1dLGI0XSxzRz1bMCxbMTIsNDAsWzE4LFsxLFswLFsxMSxJZSwwXSxJZV1dLFsxMSxcIkZpbGVfa2V5LlNvdXJjZUZpbGVcIixbMTcsWzAsY2UsMSwwXSwwXV1dXSxcIihAWzwyPkZpbGVfa2V5LlNvdXJjZUZpbGVAIFwiXSxvRz1bMCxbMywwLDBdLEozXSx2Rz1bMCxbMTcsMCxbMTIsNDEsMF1dLGI0XSxhRz1bMCxbMTIsNDAsWzE4LFsxLFswLFsxMSxJZSwwXSxJZV1dLFsxMSxcIkZpbGVfa2V5Lkpzb25GaWxlXCIsWzE3LFswLGNlLDEsMF0sMF1dXV0sXCIoQFs8Mj5GaWxlX2tleS5Kc29uRmlsZUAgXCJdLGxHPVswLFszLDAsMF0sSjNdLHBHPVswLFsxNywwLFsxMiw0MSwwXV0sYjRdLGRHPVswLFsxMiw0MCxbMTgsWzEsWzAsWzExLEllLDBdLEllXV0sWzExLFwiRmlsZV9rZXkuUmVzb3VyY2VGaWxlXCIsWzE3LFswLGNlLDEsMF0sMF1dXV0sXCIoQFs8Mj5GaWxlX2tleS5SZXNvdXJjZUZpbGVAIFwiXSx5Rz1bMCxbMywwLDBdLEozXSxtRz1bMCxbMTcsMCxbMTIsNDEsMF1dLGI0XSxrRz1bMCwxXSxoRz1bMCwwXSxfRz1bMCwxXSx3Rz1bMCwyXSxURz1bMCwwXSxTRz1bMCwxXSxFRz1bMCwxXSxnRz1bMCwxXSxBRz1bMCwxXSxQRz1bMCwxXSxORz1bMCwxXSxDRz1bMCwwLDBdLElHPVswLDAsMF0sT0c9WzAsajIsbmksbGYsRGYsVTIsUGksS2MseGksJDcsYm4sUGMsV3UsbGksajcsRTcsRzcsS2YsWmYsZ2ksSjcsS24sZGksVWMsVDcsTWMseWksemYsVGkscW4sWm4sbmMsVHUsemksb2YsVmMsWGUsU2YsQWksQ2MseWYsTGYsUTcsUHUsWWUseGYsXzcsV2ksS2ksZ2MsSTcsWnUseWMsVWUsTzcsRmksbXUsUnUsb3UsbWMsSmUsYXUsZGMsVWYsX3UsWWMsWGYsZXUsR2Ysb2MsSXUsRGksZDcsbzcsVXUsWjcsQTcsRWMscGMsWDcsTnUsUmMsa24sZ2YsQnUsZTcsSGYsYjcsYWksZWMsdWksX2YsaWksbjcsRGMsZmYsSmMsJGksbnUsQmYsTWYsUmksQzcsaGYsQjcsTmMsVnUsSWMsTGMsczcsR3Usa2MsTHUsc2ksYzcsdXIsYmksaXUsem4sUjcsSWksV24sRHUsVTcseGMsUWksRmYsUWYsRm4seHUsZjcsTDcsY2ksamMsdGksaHUsbWYsdDcsaWMsQWMsS3UsamksJDEsZHUscnUsWmMsY3UsWGksamYsSG4sYnUsUTIsTjcsWWYsdnUsYWYsdjcsWHUsdXUsaGksTTIsUzcsaTcsdzcsQ3QsQXUsbHUsX2kseXUsQmksWGMsd2ksVm4scGYscmksSWYscXUsSHUsTTcsQm4saDcsZmMsWW4scTcsdGMsRnUsc3UsRXUsTXUsTGksdHUsRjcsa2YsUmYsbDcsSzcsUW4sUXUsbWksRjEsVjcsVmYscDcsVGYsR24sbTcsbmYsanUsQ3UsdmMsd2MsZWYsVWksT3UsdTcsU3UsSGksc2YseDcsTWksc2UsTmksU2MsRWYsdWMsdmYscmMsWXUsT2YsazcsSmksaGMsZGYsSnUsUmUsT2UsR2ksbGMsc2MsJG4sJGYsdWYscGksX2MsJHUsejcsQmMsYTcsZnUsWmkscWYsb2ksU2kscmYsa2ksZ3UsVzcsemMscWksWWksd3UsWTcsY2YscjcsVGMsV2MsdmksZzcsV2YsdGYsSDcsUDcsTWUsYWMsenUsb24sQ2YsVmksRDcsY2Msa3UsT2ksUGYseTcsZmksTmYsd2ZdLFJHPVswLGdjLCQxLHF1LEF1LFZuLFA3LEljLEJmLGNpLEhuLHp1LE1jLGVjLFllLGI3LFZmLGNmLGZmLGljLHM3LE43LEt1LEhpLFVpLG5pLEE3LHl1LEV1LG83LHhjLF9jLF9pLFN1LEx1LEN0LERmLFJmLG9jLE9mLHRmLEh1LFdmLG1mLGp1LGF1LFhjLE11LFB1LFJpLGk3LFdpLGFmLHNmLFU3LGtjLFlpLHJmLGdmLHdmLFljLGE3LGRpLG51LFVmLHh1LFc3LHVpLEplLERjLHBmLEJ1LHNpLGpjLHQ3LGx1LFI3LGxjLHpmLHdjLGY3LElpLElmLEdmLHk3LHJjLG03LGJpLG11LFJjLGZpLE1pLEg3LHljLFUyLGRjLGhjLEc3LE83LFM3LEQ3LHN1LFZjLFpjLFk3LEI3LFE3LHNlLEY3LHlpLGoyLFduLG9mLEppLFhmLFd1LFg3LGRmLFJ1LGNjLFBjLFNpLGs3LFZ1LHhpLEFjLFpuLGpmLE91LFFuLGFpLHA3LER1LHBjLGw3LFpmLHFuLGZ1LFBpLG5jLEk3LEtmLF83LGJuLHpjLFlmLExpLGtpLHpuLHJpLFppLCQ3LG9pLE5jLEZmLGt1LGl1LFdjLHd1LHo3LEVjLFFmLEJjLHVyLE0yLFVlLEU3LGdpLHhmLFo3LFhlLFJlLExjLHc3LEhmLG1pLGppLGtuLGFjLGZjLHU3LHZ1LGd1LFY3LE03LGR1LHdpLGo3LGVmLG1jLHRjLHV1LHZjLEduLCRmLGhmLFp1LE1mLHY3LGlpLERpLFRpLCRpLF91LG43LEo3LHZmLHZpLFl1LENmLGN1LExmLHg3LFR1LEJpLG91LGhpLEpjLFRjLEM3LGh1LHFpLGJ1LE5pLFQ3LE5mLEtjLFNjLGc3LFVjLEVmLHRpLHJ1LHNjLFFpLGQ3LEd1LFhpLEs3LEZuLEtuLENjLE9pLHVmLFV1LFZpLEYxLE51LHFmLFF1LHppLFluLHE3LEtpLE9lLEJuLCR1LGV1LG5mLHVjLEFpLHlmLEZ1LFRmLGxpLHR1LGU3LG9uLFh1LHI3LEw3LF9mLGg3LEp1LEN1LE1lLFBmLFEyLEdpLGxmLHBpLEZpLGtmLCRuLEl1LFNmLGM3XSxMRz1uRCxNRz1WRCxERz1lRCxVRz1KRCxqRz1KVCxKRz1nRCxYRz0kMyxZRz1raixWRz1ITSx6Rz15RCxLRz1qTSxCRz1McyxXRz1MdCxaRz1kSiwkRz1MRCxGRz1GMixRRz1LRCxHRz1vWCxxRz1tOCxIRz1JNCxiRz13byx4cT1aMyxycT1tRCxlcT1jWCx0cT10VSxucT12RCx1cT1yWCxpcT1MTSxmcT1FaixjcT1rRCxzcT1sSixvcT1OVSx2cT1aSixhcT1mRCxscT16VSxwcT1iSixkcT1Xaix5cT1bMCxbMTgsWzEsWzAsWzExLEllLDBdLEllXV0sWzExLHhVLDBdXSx6Sl0sbXE9XCJMb2MubGluZVwiLGtxPVswLFsxOCxbMSxbMCwwLGt4XV0sWzIsMCxbMTEsSzMsWzE3LFswLGNlLDEsMF0sMF1dXV0sWTNdLGhxPVswLFs0LDAsMCwwLDBdLGhsXSxfcT1bMCxbMTcsMCwwXSx2YV0sd3E9WzAsWzEyLDU5LFsxNyxbMCxjZSwxLDBdLDBdXSxycF0sVHE9bGwsU3E9WzAsWzE4LFsxLFswLDAsa3hdXSxbMiwwLFsxMSxLMyxbMTcsWzAsY2UsMSwwXSwwXV1dXSxZM10sRXE9WzAsWzQsMCwwLDAsMF0saGxdLGdxPVswLFsxNywwLDBdLHZhXSxBcT1bMCxbMTcsWzAsY2UsMSwwXSxbMTIsQ2ksWzE3LDAsMF1dXSxvVV0sUHE9WzAsWzE1LDBdLE1VXSxOcT1cIihTb21lIFwiLENxPUpTLElxPVwiTm9uZVwiLE9xPVswLFsxOCxbMSxbMCxbMTEsSWUsMF0sSWVdXSxbMTEseFUsMF1dLHpKXSxScT1cIkxvYy5zb3VyY2VcIixMcT1bMCxbMTgsWzEsWzAsMCxreF1dLFsyLDAsWzExLEszLFsxNyxbMCxjZSwxLDBdLDBdXV1dLFkzXSxNcT1bMCxbMTcsMCwwXSx2YV0sRHE9WzAsWzEyLDU5LFsxNyxbMCxjZSwxLDBdLDBdXSxycF0sVXE9XzksanE9WzAsWzE4LFsxLFswLDAsa3hdXSxbMiwwLFsxMSxLMyxbMTcsWzAsY2UsMSwwXSwwXV1dXSxZM10sSnE9WzAsWzE3LDAsMF0sdmFdLFhxPVswLFsxMiw1OSxbMTcsWzAsY2UsMSwwXSwwXV0scnBdLFlxPVwiX2VuZFwiLFZxPVswLFsxOCxbMSxbMCwwLGt4XV0sWzIsMCxbMTEsSzMsWzE3LFswLGNlLDEsMF0sMF1dXV0sWTNdLHpxPVswLFsxNywwLDBdLHZhXSxLcT1bMCxbMTcsWzAsY2UsMSwwXSxbMTIsQ2ksWzE3LDAsMF1dXSxvVV0sQnE9XCJPYmplY3QgbGl0ZXJhbCBtYXkgbm90IGhhdmUgZGF0YSBhbmQgYWNjZXNzb3IgcHJvcGVydHkgd2l0aCB0aGUgc2FtZSBuYW1lXCIsV3E9XCJPYmplY3QgbGl0ZXJhbCBtYXkgbm90IGhhdmUgbXVsdGlwbGUgZ2V0L3NldCBhY2Nlc3NvcnMgd2l0aCB0aGUgc2FtZSBuYW1lXCIsWnE9XCJVbmV4cGVjdGVkIHRva2VuIDwuIFJlbWVtYmVyLCBhZGphY2VudCBKU1ggZWxlbWVudHMgbXVzdCBiZSB3cmFwcGVkIGluIGFuIGVuY2xvc2luZyBwYXJlbnQgdGFnXCIsJHE9XCJNb2R1bGVzIGNhbiBvbmx5IGhhdmUgMSBzaW5jZSB0aGV5IGFyZSBlaXRoZXIgYW4gRVMgbW9kdWxlIHhvciB0aGV5IGFyZSBhIENvbW1vbkpTIG1vZHVsZS5cIixGcT1cIkZvdW5kIGJvdGggYGRlY2xhcmUgbW9kdWxlLmV4cG9ydHNgIGFuZCBgZGVjbGFyZSBleHBvcnRgIGluIHRoZSBzYW1lIG1vZHVsZS4gXCIsUXE9XCJgbGV0IFtgIGlzIGFtYmlndW91cyBpbiB0aGlzIHBvc2l0aW9uIGJlY2F1c2UgaXQgaXMgZWl0aGVyIGEgYGxldGAgYmluZGluZyBwYXR0ZXJuLCBvciBhIG1lbWJlciBleHByZXNzaW9uLlwiLEdxPVwiQXN5bmMgZnVuY3Rpb25zIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IHRvcCBsZXZlbCBvciBpbW1lZGlhdGVseSB3aXRoaW4gYW5vdGhlciBmdW5jdGlvbi5cIixxcT1cImBhd2FpdGAgaXMgYW4gaW52YWxpZCBpZGVudGlmaWVyIGluIGFzeW5jIGZ1bmN0aW9uc1wiLEhxPVwiYGF3YWl0YCBpcyBub3QgYWxsb3dlZCBpbiBhc3luYyBmdW5jdGlvbiBwYXJhbWV0ZXJzLlwiLGJxPVwiQ29tcHV0ZWQgcHJvcGVydGllcyBtdXN0IGhhdmUgYSB2YWx1ZS5cIix4SD1cIkNvbnN0cnVjdG9yIGNhbid0IGJlIGFuIGFjY2Vzc29yLlwiLHJIPVwiQ29uc3RydWN0b3IgY2FuJ3QgYmUgYW4gYXN5bmMgZnVuY3Rpb24uXCIsZUg9XCJDb25zdHJ1Y3RvciBjYW4ndCBiZSBhIGdlbmVyYXRvci5cIix0SD1cIkl0IGlzIHN1ZmZpY2llbnQgZm9yIHlvdXIgZGVjbGFyZSBmdW5jdGlvbiB0byBqdXN0IGhhdmUgYSBQcm9taXNlIHJldHVybiB0eXBlLlwiLG5IPVwiYXN5bmMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBpc24ndCBuZWNlc3NhcnkgZm9yIHlvdXIgZGVjbGFyZSBmdW5jdGlvbiBzdGF0ZW1lbnQuIFwiLHVIPVwiYGRlY2xhcmVgIG1vZGlmaWVyIGNhbiBvbmx5IGFwcGVhciBvbiBjbGFzcyBmaWVsZHMuXCIsaUg9XCJVbmV4cGVjdGVkIHRva2VuIGA9YC4gSW5pdGlhbGl6ZXJzIGFyZSBub3QgYWxsb3dlZCBpbiBhIGBkZWNsYXJlYC5cIixmSD1cImBkZWNsYXJlIGV4cG9ydCBpbnRlcmZhY2VgIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBgZXhwb3J0IGludGVyZmFjZWAgaW5zdGVhZC5cIixjSD1cImBkZWNsYXJlIGV4cG9ydCB0eXBlYCBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYGV4cG9ydCB0eXBlYCBpbnN0ZWFkLlwiLHNIPVwiVW5leHBlY3RlZCB0b2tlbiBgPWAuIEluaXRpYWxpemVycyBhcmUgbm90IGFsbG93ZWQgaW4gYSBgZGVjbGFyZSBvcGFxdWUgdHlwZWAuXCIsb0g9XCJDbGFzc2VzIG1heSBvbmx5IGhhdmUgb25lIGNvbnN0cnVjdG9yXCIsdkg9XCJEdXBsaWNhdGUgYGRlY2xhcmUgbW9kdWxlLmV4cG9ydHNgIHN0YXRlbWVudCFcIixhSD1cIlJlc3QgZWxlbWVudCBtdXN0IGJlIGZpbmFsIGVsZW1lbnQgb2YgYW4gYXJyYXkgcGF0dGVyblwiLGxIPVwiQ2Fubm90IGV4cG9ydCBhbiBlbnVtIHdpdGggYGV4cG9ydCB0eXBlYCwgdHJ5IGBleHBvcnQgZW51bSBFIHt9YCBvciBgbW9kdWxlLmV4cG9ydHMgPSBFO2AgaW5zdGVhZC5cIixwSD1cIkVudW0gbWVtYmVycyBhcmUgc2VwYXJhdGVkIHdpdGggYCxgLiBSZXBsYWNlIGA7YCB3aXRoIGAsYC5cIixkSD1cImBjb25zdGAgZW51bXMgYXJlIG5vdCBzdXBwb3J0ZWQuIEZsb3cgRW51bXMgYXJlIGRlc2lnbmVkIHRvIGFsbG93IGZvciBpbmxpbmluZywgaG93ZXZlciB0aGUgaW5saW5pbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHBhcnQgb2YgdGhlIGJ1aWxkIHN5c3RlbSAod2hhdGV2ZXIgeW91IHVzZSkgcmF0aGVyIHRoYW4gRmxvdyBpdHNlbGYuXCIseUg9XCJFeHBlY3RlZCBhbiBvYmplY3QgcGF0dGVybiwgYXJyYXkgcGF0dGVybiwgb3IgYW4gaWRlbnRpZmllciBidXQgZm91bmQgYW4gZXhwcmVzc2lvbiBpbnN0ZWFkXCIsbUg9XCJNaXNzaW5nIGNvbW1hIGJldHdlZW4gZXhwb3J0IHNwZWNpZmllcnNcIixrSD1cIkdlbmVyYXRvcnMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgdG9wIGxldmVsIG9yIGltbWVkaWF0ZWx5IHdpdGhpbiBhbm90aGVyIGZ1bmN0aW9uLlwiLGhIPVwiR2V0dGVyIHNob3VsZCBoYXZlIHplcm8gcGFyYW1ldGVyc1wiLF9IPVwiQSBnZXR0ZXIgY2Fubm90IGhhdmUgYSBgdGhpc2AgcGFyYW1ldGVyLlwiLHdIPVwiSWxsZWdhbCBicmVhayBzdGF0ZW1lbnRcIixUSD1cIklsbGVnYWwgY29udGludWUgc3RhdGVtZW50XCIsU0g9XCJJbGxlZ2FsIHJldHVybiBzdGF0ZW1lbnRcIixFSD1cIklsbGVnYWwgVW5pY29kZSBlc2NhcGVcIixnSD1cIk1pc3NpbmcgY29tbWEgYmV0d2VlbiBpbXBvcnQgc3BlY2lmaWVyc1wiLEFIPVwiSXQgY2Fubm90IGJlIHVzZWQgd2l0aCBgaW1wb3J0IHR5cGVgIG9yIGBpbXBvcnQgdHlwZW9mYCBzdGF0ZW1lbnRzXCIsUEg9XCJUaGUgYHR5cGVgIGFuZCBgdHlwZW9mYCBrZXl3b3JkcyBvbiBuYW1lZCBpbXBvcnRzIGNhbiBvbmx5IGJlIHVzZWQgb24gcmVndWxhciBgaW1wb3J0YCBzdGF0ZW1lbnRzLiBcIixOSD1cIkV4cGxpY2l0IGluZXhhY3Qgc3ludGF4IGNhbm5vdCBhcHBlYXIgaW5zaWRlIGFuIGV4cGxpY2l0IGV4YWN0IG9iamVjdCB0eXBlXCIsQ0g9XCJFeHBsaWNpdCBpbmV4YWN0IHN5bnRheCBjYW4gb25seSBhcHBlYXIgaW5zaWRlIGFuIG9iamVjdCB0eXBlXCIsSUg9XCJDb21wb25lbnQgcGFyYW1zIG11c3QgYmUgYW4gaWRlbnRpZmllci4gSWYgeW91J2QgbGlrZSB0byBkZXN0cnVjdHVyZSwgeW91IHNob3VsZCB1c2UgYG5hbWUgYXMge2Rlc3RydWN0dXJlfWBcIixPSD1cIkNvbXBvbmVudHMgdXNlIGByZW5kZXJzYCBpbnN0ZWFkIG9mIGA6YCB0byBhbm5vdGF0ZSB0aGUgcmVuZGVyIHR5cGUgb2YgYSBjb21wb25lbnQuXCIsUkg9XCJBIGJpZ2ludCBsaXRlcmFsIG11c3QgYmUgYW4gaW50ZWdlclwiLExIPVwiSlNYIHZhbHVlIHNob3VsZCBiZSBlaXRoZXIgYW4gZXhwcmVzc2lvbiBvciBhIHF1b3RlZCBKU1ggdGV4dFwiLE1IPVwiSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBhc3NpZ25tZW50XCIsREg9XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb25cIixVSD1cIkludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gZm9yLWluXCIsakg9XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGZvci1vZlwiLEpIPVwiSW1wb3J0cyB3aXRoaW4gYSBgZGVjbGFyZSBtb2R1bGVgIGJvZHkgbXVzdCBhbHdheXMgYmUgYGltcG9ydCB0eXBlYCBvciBgaW1wb3J0IHR5cGVvZmAhXCIsWEg9XCJJbnZhbGlkIG9wdGlvbmFsIGluZGV4ZWQgYWNjZXNzLiBJbmRleGVkIGFjY2VzcyB1c2VzIGJyYWNrZXQgbm90YXRpb24uIFVzZSB0aGUgZm9ybWF0IGBUPy5bS11gLlwiLFlIPVwiSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb25cIixWSD1cIkEgYmlnaW50IGxpdGVyYWwgY2Fubm90IHVzZSBleHBvbmVudGlhbCBub3RhdGlvblwiLHpIPVwiVHVwbGUgc3ByZWFkIGVsZW1lbnRzIGNhbm5vdCBiZSBvcHRpb25hbC5cIixLSD1cIlR1cGxlIHZhcmlhbmNlIGFubm90YXRpb25zIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBsYWJlbGVkIHR1cGxlIGVsZW1lbnRzLCBlLmcuIGBbK2ZvbzogbnVtYmVyXWBcIixCSD1cImB0eXBlb2ZgIGNhbiBvbmx5IGJlIHVzZWQgdG8gZ2V0IHRoZSB0eXBlIG9mIHZhcmlhYmxlcy5cIixXSD1cIkpTWCBhdHRyaWJ1dGVzIG11c3Qgb25seSBiZSBhc3NpZ25lZCBhIG5vbi1lbXB0eSBleHByZXNzaW9uXCIsWkg9XCJMaXRlcmFscyBjYW5ub3QgYmUgdXNlZCBhcyBzaG9ydGhhbmQgcHJvcGVydGllcy5cIiwkSD1cIk1hbGZvcm1lZCB1bmljb2RlXCIsRkg9XCJPYmplY3QgcGF0dGVybiBjYW4ndCBjb250YWluIG1ldGhvZHNcIixRSD1cIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSB0eXBlIHBhcmFtZXRlci5cIixHSD1cIlR5cGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIG5lZWRzIGEgZGVmYXVsdCwgc2luY2UgYSBwcmVjZWRpbmcgdHlwZSBwYXJhbWV0ZXIgZGVjbGFyYXRpb24gaGFzIGEgZGVmYXVsdC5cIixxSD1cIk1vcmUgdGhhbiBvbmUgZGVmYXVsdCBjbGF1c2UgaW4gc3dpdGNoIHN0YXRlbWVudFwiLEhIPVwiSWxsZWdhbCBuZXdsaW5lIGFmdGVyIHRocm93XCIsYkg9XCJJbGxlZ2FsIG5ld2xpbmUgYmVmb3JlIGFycm93XCIseGI9XCJNaXNzaW5nIGNhdGNoIG9yIGZpbmFsbHkgYWZ0ZXIgdHJ5XCIscmI9XCJDb25zdCBtdXN0IGJlIGluaXRpYWxpemVkXCIsZWI9XCJEZXN0cnVjdHVyaW5nIGFzc2lnbm1lbnQgbXVzdCBiZSBpbml0aWFsaXplZFwiLHRiPVwiQW4gb3B0aW9uYWwgY2hhaW4gbWF5IG5vdCBiZSB1c2VkIGluIGEgYG5ld2AgZXhwcmVzc2lvbi5cIixuYj1cIlRlbXBsYXRlIGxpdGVyYWxzIG1heSBub3QgYmUgdXNlZCBpbiBhbiBvcHRpb25hbCBjaGFpbi5cIix1Yj1cIlJlc3QgcGFyYW1ldGVyIG11c3QgYmUgZmluYWwgcGFyYW1ldGVyIG9mIGFuIGFyZ3VtZW50IGxpc3RcIixpYj1cIlByaXZhdGUgZmllbGRzIG1heSBub3QgYmUgZGVsZXRlZC5cIixmYj1cIlByaXZhdGUgZmllbGRzIGNhbiBvbmx5IGJlIHJlZmVyZW5jZWQgZnJvbSB3aXRoaW4gYSBjbGFzcy5cIixjYj1cIlJlc3QgcHJvcGVydHkgbXVzdCBiZSBmaW5hbCBwcm9wZXJ0eSBvZiBhbiBvYmplY3QgcGF0dGVyblwiLHNiPVwiU2V0dGVyIHNob3VsZCBoYXZlIGV4YWN0bHkgb25lIHBhcmFtZXRlclwiLG9iPVwiQSBzZXR0ZXIgY2Fubm90IGhhdmUgYSBgdGhpc2AgcGFyYW1ldGVyLlwiLHZiPVwiQ2F0Y2ggdmFyaWFibGUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZVwiLGFiPVwiRGVsZXRlIG9mIGFuIHVucXVhbGlmaWVkIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUuXCIsbGI9XCJEdXBsaWNhdGUgZGF0YSBwcm9wZXJ0eSBpbiBvYmplY3QgbGl0ZXJhbCBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZVwiLHBiPVwiRnVuY3Rpb24gbmFtZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlXCIsZGI9XCJBc3NpZ25tZW50IHRvIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlXCIseWI9XCJQb3N0Zml4IGluY3JlbWVudC9kZWNyZW1lbnQgbWF5IG5vdCBoYXZlIGV2YWwgb3IgYXJndW1lbnRzIG9wZXJhbmQgaW4gc3RyaWN0IG1vZGVcIixtYj1cIlByZWZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlXCIsa2I9XCJTdHJpY3QgbW9kZSBjb2RlIG1heSBub3QgaW5jbHVkZSBhIHdpdGggc3RhdGVtZW50XCIsaGI9XCJOdW1iZXIgbGl0ZXJhbHMgd2l0aCBsZWFkaW5nIHplcm9zIGFyZSBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZS5cIixfYj1cIk9jdGFsIGxpdGVyYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZS5cIix3Yj1cIlN0cmljdCBtb2RlIGZ1bmN0aW9uIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWVzXCIsVGI9XCJQYXJhbWV0ZXIgbmFtZSBldmFsIG9yIGFyZ3VtZW50cyBpcyBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZVwiLFNiPSdJbGxlZ2FsIFwidXNlIHN0cmljdFwiIGRpcmVjdGl2ZSBpbiBmdW5jdGlvbiB3aXRoIG5vbi1zaW1wbGUgcGFyYW1ldGVyIGxpc3QnLEViPVwiVXNlIG9mIHJlc2VydmVkIHdvcmQgaW4gc3RyaWN0IG1vZGVcIixnYj1cIlZhcmlhYmxlIG5hbWUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZVwiLEFiPVwiWW91IG1heSBub3QgYWNjZXNzIGEgcHJpdmF0ZSBmaWVsZCB0aHJvdWdoIHRoZSBgc3VwZXJgIGtleXdvcmQuXCIsUGI9XCJGbG93IGRvZXMgbm90IHN1cHBvcnQgYWJzdHJhY3QgY2xhc3Nlcy5cIixOYj1cIkZsb3cgZG9lcyBub3Qgc3VwcG9ydCB0ZW1wbGF0ZSBsaXRlcmFsIHR5cGVzLlwiLENiPVwiQSB0eXBlIGFubm90YXRpb24gaXMgcmVxdWlyZWQgZm9yIHRoZSBgdGhpc2AgcGFyYW1ldGVyLlwiLEliPVwiQXJyb3cgZnVuY3Rpb25zIGNhbm5vdCBoYXZlIGEgYHRoaXNgIHBhcmFtZXRlcjsgYXJyb3cgZnVuY3Rpb25zIGF1dG9tYXRpY2FsbHkgYmluZCBgdGhpc2Agd2hlbiBkZWNsYXJlZC5cIixPYj1cIkNvbnN0cnVjdG9ycyBjYW5ub3QgaGF2ZSBhIGB0aGlzYCBwYXJhbWV0ZXI7IGNvbnN0cnVjdG9ycyBkb24ndCBiaW5kIGB0aGlzYCBsaWtlIG90aGVyIGZ1bmN0aW9ucy5cIixSYj1cIlRoZSBgdGhpc2AgcGFyYW1ldGVyIGNhbm5vdCBiZSBvcHRpb25hbC5cIixMYj1cIlRoZSBgdGhpc2AgcGFyYW1ldGVyIG11c3QgYmUgdGhlIGZpcnN0IGZ1bmN0aW9uIHBhcmFtZXRlci5cIixNYj1cIkEgdHJhaWxpbmcgY29tbWEgaXMgbm90IHBlcm1pdHRlZCBhZnRlciB0aGUgcmVzdCBlbGVtZW50XCIsRGI9XCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiLFViPVwiRXhwbGljaXQgaW5leGFjdCBzeW50YXggbXVzdCBjb21lIGF0IHRoZSBlbmQgb2YgYW4gb2JqZWN0IHR5cGVcIixqYj1cIk9wYXF1ZSB0eXBlIGFsaWFzZXMgYXJlIG5vdCBhbGxvd2VkIGluIHVudHlwZWQgbW9kZVwiLEpiPVwiVW5leHBlY3RlZCBwcm90byBtb2RpZmllclwiLFhiPVwiVW5leHBlY3RlZCByZXNlcnZlZCB3b3JkXCIsWWI9XCJVbmV4cGVjdGVkIHJlc2VydmVkIHR5cGVcIixWYj1cIlNwcmVhZGluZyBhIHR5cGUgaXMgb25seSBhbGxvd2VkIGluc2lkZSBhbiBvYmplY3QgdHlwZVwiLHpiPVwiVW5leHBlY3RlZCBzdGF0aWMgbW9kaWZpZXJcIixLYj1cIlVuZXhwZWN0ZWQgYHN1cGVyYCBvdXRzaWRlIG9mIGEgY2xhc3MgbWV0aG9kXCIsQmI9XCJgc3VwZXIoKWAgaXMgb25seSB2YWxpZCBpbiBhIGNsYXNzIGNvbnN0cnVjdG9yXCIsV2I9XCJUeXBlIGFsaWFzZXMgYXJlIG5vdCBhbGxvd2VkIGluIHVudHlwZWQgbW9kZVwiLFpiPVwiVHlwZSBhbm5vdGF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gdW50eXBlZCBtb2RlXCIsJGI9XCJUeXBlIGRlY2xhcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gdW50eXBlZCBtb2RlXCIsRmI9XCJUeXBlIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkIGluIHVudHlwZWQgbW9kZVwiLFFiPVwiVHlwZSBpbXBvcnRzIGFyZSBub3QgYWxsb3dlZCBpbiB1bnR5cGVkIG1vZGVcIixHYj1cIkludGVyZmFjZXMgYXJlIG5vdCBhbGxvd2VkIGluIHVudHlwZWQgbW9kZVwiLHFiPVwiVW5leHBlY3RlZCB2YXJpYW5jZSBzaWdpbFwiLEhiPVwiRm91bmQgYSBkZWNvcmF0b3IgaW4gYW4gdW5zdXBwb3J0ZWQgcG9zaXRpb24uXCIsYmI9XCJJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbWlzc2luZyAvXCIseDAwPVwiVW5leHBlY3RlZCB3aGl0ZXNwYWNlIGJldHdlZW4gYCNgIGFuZCBpZGVudGlmaWVyXCIscjAwPVwiYHlpZWxkYCBpcyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgaW4gZ2VuZXJhdG9yc1wiLGUwMD1cIllpZWxkIGV4cHJlc3Npb24gbm90IGFsbG93ZWQgaW4gZm9ybWFsIHBhcmFtZXRlclwiLHQwMD1bMCxbMTEsXCJEdXBsaWNhdGUgZXhwb3J0IGZvciBgXCIsWzIsMCxbMTIsOTYsMF1dXSxcIkR1cGxpY2F0ZSBleHBvcnQgZm9yIGAlc2BcIl0sbjAwPVswLFsxMSxcIlByaXZhdGUgZmllbGRzIG1heSBvbmx5IGJlIGRlY2xhcmVkIG9uY2UuIGAjXCIsWzIsMCxbMTEsXCJgIGlzIGRlY2xhcmVkIG1vcmUgdGhhbiBvbmNlLlwiLDBdXV0sXCJQcml2YXRlIGZpZWxkcyBtYXkgb25seSBiZSBkZWNsYXJlZCBvbmNlLiBgIyVzYCBpcyBkZWNsYXJlZCBtb3JlIHRoYW4gb25jZS5cIl0sdTAwPVswLFsxMSxcImJpZ2ludCBlbnVtIG1lbWJlcnMgbmVlZCB0byBiZSBpbml0aWFsaXplZCwgZS5nLiBgXCIsWzIsMCxbMTEsXCIgPSAxbixgIGluIGVudW0gYFwiLFsyLDAsWzExLGdzLDBdXV1dXSxcImJpZ2ludCBlbnVtIG1lbWJlcnMgbmVlZCB0byBiZSBpbml0aWFsaXplZCwgZS5nLiBgJXMgPSAxbixgIGluIGVudW0gYCVzYC5cIl0saTAwPVswLFsxMSxcIkJvb2xlYW4gZW51bSBtZW1iZXJzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQuIFVzZSBlaXRoZXIgYFwiLFsyLDAsWzExLFwiID0gdHJ1ZSxgIG9yIGBcIixbMiwwLFsxMSxcIiA9IGZhbHNlLGAgaW4gZW51bSBgXCIsWzIsMCxbMTEsZ3MsMF1dXV1dXV0sXCJCb29sZWFuIGVudW0gbWVtYmVycyBuZWVkIHRvIGJlIGluaXRpYWxpemVkLiBVc2UgZWl0aGVyIGAlcyA9IHRydWUsYCBvciBgJXMgPSBmYWxzZSxgIGluIGVudW0gYCVzYC5cIl0sZjAwPVswLFsxMSxcIkVudW0gbWVtYmVyIG5hbWVzIG5lZWQgdG8gYmUgdW5pcXVlLCBidXQgdGhlIG5hbWUgYFwiLFsyLDAsWzExLFwiYCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgYmVmb3JlIGluIGVudW0gYFwiLFsyLDAsWzExLGdzLDBdXV1dXSxcIkVudW0gbWVtYmVyIG5hbWVzIG5lZWQgdG8gYmUgdW5pcXVlLCBidXQgdGhlIG5hbWUgYCVzYCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgYmVmb3JlIGluIGVudW0gYCVzYC5cIl0sYzAwPVswLFsxMSxURCxbMiwwLFsxMSxcImAgaGFzIGluY29uc2lzdGVudCBtZW1iZXIgaW5pdGlhbGl6ZXJzLiBFaXRoZXIgdXNlIG5vIGluaXRpYWxpemVycywgb3IgY29uc2lzdGVudGx5IHVzZSBsaXRlcmFscyAoZWl0aGVyIGJvb2xlYW5zLCBudW1iZXJzLCBvciBzdHJpbmdzKSBmb3IgYWxsIG1lbWJlciBpbml0aWFsaXplcnMuXCIsMF1dXSxcIkVudW0gYCVzYCBoYXMgaW5jb25zaXN0ZW50IG1lbWJlciBpbml0aWFsaXplcnMuIEVpdGhlciB1c2Ugbm8gaW5pdGlhbGl6ZXJzLCBvciBjb25zaXN0ZW50bHkgdXNlIGxpdGVyYWxzIChlaXRoZXIgYm9vbGVhbnMsIG51bWJlcnMsIG9yIHN0cmluZ3MpIGZvciBhbGwgbWVtYmVyIGluaXRpYWxpemVycy5cIl0sczAwPVwiVGhlIGAuLi5gIG11c3QgY29tZSBhdCB0aGUgZW5kIG9mIHRoZSBlbnVtIGJvZHkuIFJlbW92ZSB0aGUgdHJhaWxpbmcgY29tbWEuXCIsbzAwPVwiVGhlIGAuLi5gIG11c3QgY29tZSBhZnRlciBhbGwgZW51bSBtZW1iZXJzLiBNb3ZlIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGVudW0gYm9keS5cIix2MDA9WzAsWzExLFwiVXNlIG9uZSBvZiBgYm9vbGVhbmAsIGBudW1iZXJgLCBgc3RyaW5nYCwgYHN5bWJvbGAsIG9yIGBiaWdpbnRgIGluIGVudW0gYFwiLFsyLDAsWzExLGdzLDBdXV0sXCJVc2Ugb25lIG9mIGBib29sZWFuYCwgYG51bWJlcmAsIGBzdHJpbmdgLCBgc3ltYm9sYCwgb3IgYGJpZ2ludGAgaW4gZW51bSBgJXNgLlwiXSxhMDA9WzAsWzExLFwiRW51bSB0eXBlIGBcIixbMiwwLFsxMSxcImAgaXMgbm90IHZhbGlkLiBcIixbMiwwLDBdXV1dLFwiRW51bSB0eXBlIGAlc2AgaXMgbm90IHZhbGlkLiAlc1wiXSxsMDA9WzAsWzExLFwiU3VwcGxpZWQgZW51bSB0eXBlIGlzIG5vdCB2YWxpZC4gXCIsWzIsMCwwXV0sXCJTdXBwbGllZCBlbnVtIHR5cGUgaXMgbm90IHZhbGlkLiAlc1wiXSxwMDA9WzAsWzExLFwiRW51bSBtZW1iZXIgbmFtZXMgYW5kIGluaXRpYWxpemVycyBhcmUgc2VwYXJhdGVkIHdpdGggYD1gLiBSZXBsYWNlIGBcIixbMiwwLFsxMSxcIjpgIHdpdGggYFwiLFsyLDAsWzExLFwiID1gLlwiLDBdXV1dXSxcIkVudW0gbWVtYmVyIG5hbWVzIGFuZCBpbml0aWFsaXplcnMgYXJlIHNlcGFyYXRlZCB3aXRoIGA9YC4gUmVwbGFjZSBgJXM6YCB3aXRoIGAlcyA9YC5cIl0sZDAwPVswLFsxMSxURCxbMiwwLFsxMSxcImAgaGFzIHR5cGUgYFwiLFsyLDAsWzExLFwiYCwgc28gdGhlIGluaXRpYWxpemVyIG9mIGBcIixbMiwwLFsxMSxcImAgbmVlZHMgdG8gYmUgYSBcIixbMiwwLFsxMSxcIiBsaXRlcmFsLlwiLDBdXV1dXV1dXV0sXCJFbnVtIGAlc2AgaGFzIHR5cGUgYCVzYCwgc28gdGhlIGluaXRpYWxpemVyIG9mIGAlc2AgbmVlZHMgdG8gYmUgYSAlcyBsaXRlcmFsLlwiXSx5MDA9WzAsWzExLFwiU3ltYm9sIGVudW0gbWVtYmVycyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQuIFVzZSBgXCIsWzIsMCxbMTEsXCIsYCBpbiBlbnVtIGBcIixbMiwwLFsxMSxncywwXV1dXV0sXCJTeW1ib2wgZW51bSBtZW1iZXJzIGNhbm5vdCBiZSBpbml0aWFsaXplZC4gVXNlIGAlcyxgIGluIGVudW0gYCVzYC5cIl0sbTAwPVswLFsxMSxcIlRoZSBlbnVtIG1lbWJlciBpbml0aWFsaXplciBmb3IgYFwiLFsyLDAsWzExLFwiYCBuZWVkcyB0byBiZSBhIGxpdGVyYWwgKGVpdGhlciBhIGJvb2xlYW4sIG51bWJlciwgb3Igc3RyaW5nKSBpbiBlbnVtIGBcIixbMiwwLFsxMSxncywwXV1dXV0sXCJUaGUgZW51bSBtZW1iZXIgaW5pdGlhbGl6ZXIgZm9yIGAlc2AgbmVlZHMgdG8gYmUgYSBsaXRlcmFsIChlaXRoZXIgYSBib29sZWFuLCBudW1iZXIsIG9yIHN0cmluZykgaW4gZW51bSBgJXNgLlwiXSxrMDA9WzAsWzExLFwiRW51bSBtZW1iZXIgbmFtZXMgY2Fubm90IHN0YXJ0IHdpdGggbG93ZXJjYXNlICdhJyB0aHJvdWdoICd6Jy4gSW5zdGVhZCBvZiB1c2luZyBgXCIsWzIsMCxbMTEsXCJgLCBjb25zaWRlciB1c2luZyBgXCIsWzIsMCxbMTEsXCJgLCBpbiBlbnVtIGBcIixbMiwwLFsxMSxncywwXV1dXV1dXSxcIkVudW0gbWVtYmVyIG5hbWVzIGNhbm5vdCBzdGFydCB3aXRoIGxvd2VyY2FzZSAnYScgdGhyb3VnaCAneicuIEluc3RlYWQgb2YgdXNpbmcgYCVzYCwgY29uc2lkZXIgdXNpbmcgYCVzYCwgaW4gZW51bSBgJXNgLlwiXSxoMDA9WzAsWzExLFwiTnVtYmVyIGVudW0gbWVtYmVycyBuZWVkIHRvIGJlIGluaXRpYWxpemVkLCBlLmcuIGBcIixbMiwwLFsxMSxcIiA9IDEsYCBpbiBlbnVtIGBcIixbMiwwLFsxMSxncywwXV1dXV0sXCJOdW1iZXIgZW51bSBtZW1iZXJzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQsIGUuZy4gYCVzID0gMSxgIGluIGVudW0gYCVzYC5cIl0sXzAwPVswLFsxMSxcIlN0cmluZyBlbnVtIG1lbWJlcnMgbmVlZCB0byBjb25zaXN0ZW50bHkgZWl0aGVyIGFsbCB1c2UgaW5pdGlhbGl6ZXJzLCBvciB1c2Ugbm8gaW5pdGlhbGl6ZXJzLCBpbiBlbnVtIFwiLFsyLDAsWzEyLDQ2LDBdXV0sXCJTdHJpbmcgZW51bSBtZW1iZXJzIG5lZWQgdG8gY29uc2lzdGVudGx5IGVpdGhlciBhbGwgdXNlIGluaXRpYWxpemVycywgb3IgdXNlIG5vIGluaXRpYWxpemVycywgaW4gZW51bSAlcy5cIl0sdzAwPVswLFsxMSxcIkV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgSlNYIGNsb3NpbmcgdGFnIGZvciBcIixbMiwwLDBdXSxcIkV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgSlNYIGNsb3NpbmcgdGFnIGZvciAlc1wiXSxUMDA9XCJpbW1lZGlhdGVseSB3aXRoaW4gYW5vdGhlciBmdW5jdGlvbi5cIixTMDA9XCJJbiBzdHJpY3QgbW9kZSBjb2RlLCBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgdG9wIGxldmVsIG9yIFwiLEUwMD1cImluc2lkZSBhIGJsb2NrLCBvciBhcyB0aGUgYm9keSBvZiBhbiBpZiBzdGF0ZW1lbnQuXCIsZzAwPVwiSW4gbm9uLXN0cmljdCBtb2RlIGNvZGUsIGZ1bmN0aW9ucyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCB0b3AgbGV2ZWwsIFwiLEEwMD1cInN0YXRpYyBcIixQMDA9a3gsTjAwPVwibWV0aG9kc1wiLEMwMD1cImZpZWxkc1wiLEkwMD1ZTSxPMDA9WzAsWzExLFwiQ2xhc3NlcyBtYXkgbm90IGhhdmUgXCIsWzIsMCxbMiwwLFsxMSxcIiBuYW1lZCBgXCIsWzIsMCxbMTEsZ3MsMF1dXV1dXSxcIkNsYXNzZXMgbWF5IG5vdCBoYXZlICVzJXMgbmFtZWQgYCVzYC5cIl0sUjAwPUJqLEwwMD1reCxNMDA9WzAsWzExLFwiU3RyaW5nIHBhcmFtcyByZXF1aXJlIGxvY2FsIGJpbmRpbmdzIHVzaW5nIGBhc2AgcmVuYW1pbmcuIFlvdSBjYW4gdXNlIGAnXCIsWzIsMCxbMTEsXCInIGFzIFwiLFsyLDAsWzIsMCxbMTEsXCI6IDxUWVBFPmAgXCIsMF1dXV1dXSxcIlN0cmluZyBwYXJhbXMgcmVxdWlyZSBsb2NhbCBiaW5kaW5ncyB1c2luZyBgYXNgIHJlbmFtaW5nLiBZb3UgY2FuIHVzZSBgJyVzJyBhcyAlcyVzOiA8VFlQRT5gIFwiXSxEMDA9XCJSZW1vdmUgdGhlIHBlcmlvZC5cIixVMDA9XCJJbmRleGVkIGFjY2VzcyB1c2VzIGJyYWNrZXQgbm90YXRpb24uXCIsajAwPVswLFsxMSxcIkludmFsaWQgaW5kZXhlZCBhY2Nlc3MuIFwiLFsyLDAsWzExLFwiIFVzZSB0aGUgZm9ybWF0IGBUW0tdYC5cIiwwXV1dLFwiSW52YWxpZCBpbmRleGVkIGFjY2Vzcy4gJXMgVXNlIHRoZSBmb3JtYXQgYFRbS11gLlwiXSxKMDA9WzAsWzExLFwiSW52YWxpZCBmbGFncyBzdXBwbGllZCB0byBSZWdFeHAgY29uc3RydWN0b3IgJ1wiLFsyLDAsWzEyLDM5LDBdXV0sXCJJbnZhbGlkIGZsYWdzIHN1cHBsaWVkIHRvIFJlZ0V4cCBjb25zdHJ1Y3RvciAnJXMnXCJdLFgwMD1bMCxbMTEsXCJKU1ggZWxlbWVudCBcIixbMiwwLFsxMSxcIiBoYXMgbm8gY29ycmVzcG9uZGluZyBjbG9zaW5nIHRhZy5cIiwwXV1dLFwiSlNYIGVsZW1lbnQgJXMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgY2xvc2luZyB0YWcuXCJdLFkwMD1bMCxbMTEsUEQsWzIsMCxbMTEsXCJgLiBQYXJlbnRoZXNlcyBhcmUgcmVxdWlyZWQgdG8gY29tYmluZSBgPz9gIHdpdGggYCYmYCBvciBgfHxgIGV4cHJlc3Npb25zLlwiLDBdXV0sXCJVbmV4cGVjdGVkIHRva2VuIGAlc2AuIFBhcmVudGhlc2VzIGFyZSByZXF1aXJlZCB0byBjb21iaW5lIGA/P2Agd2l0aCBgJiZgIG9yIGB8fGAgZXhwcmVzc2lvbnMuXCJdLFYwMD1bMCxbMiwwLFsxMSxcIiAnXCIsWzIsMCxbMTEsXCInIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWRcIiwwXV1dXSxcIiVzICclcycgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZFwiXSx6MDA9a3gsSzAwPUIzLEIwMD1cIiBZb3UgY2FuIHRyeSB1c2luZyBKYXZhU2NyaXB0IHByaXZhdGUgZmllbGRzIGJ5IHByZXBlbmRpbmcgYCNgIHRvIHRoZSBmaWVsZCBuYW1lLlwiLFcwMD1rbCxaMDA9XCIgRmllbGRzIGFuZCBtZXRob2RzIGFyZSBwdWJsaWMgYnkgZGVmYXVsdC4gWW91IGNhbiBzaW1wbHkgb21pdCB0aGUgYHB1YmxpY2Aga2V5d29yZC5cIiwkMDA9ajMsRjAwPVswLFsxMSxcIkZsb3cgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBgXCIsWzIsMCxbMTEsXCJgIGluIGNsYXNzZXMuXCIsWzIsMCwwXV1dXSxcIkZsb3cgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBgJXNgIGluIGNsYXNzZXMuJXNcIl0sUTAwPVswLFsxMSxcIlByaXZhdGUgZmllbGRzIG11c3QgYmUgZGVjbGFyZWQgYmVmb3JlIHRoZXkgY2FuIGJlIHJlZmVyZW5jZWQuIGAjXCIsWzIsMCxbMTEsXCJgIGhhcyBub3QgYmVlbiBkZWNsYXJlZC5cIiwwXV1dLFwiUHJpdmF0ZSBmaWVsZHMgbXVzdCBiZSBkZWNsYXJlZCBiZWZvcmUgdGhleSBjYW4gYmUgcmVmZXJlbmNlZC4gYCMlc2AgaGFzIG5vdCBiZWVuIGRlY2xhcmVkLlwiXSxHMDA9WzAsWzExLHNqLFsyLDAsMF1dLFwiVW5leHBlY3RlZCAlc1wiXSxxMDA9WzAsWzExLFBELFsyLDAsWzExLFwiYC4gRGlkIHlvdSBtZWFuIGBcIixbMiwwLFsxMSxcImA/XCIsMF1dXV1dLFwiVW5leHBlY3RlZCB0b2tlbiBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD9cIl0sSDAwPVswLFsxMSxzaixbMiwwLFsxMSxcIiwgZXhwZWN0ZWQgXCIsWzIsMCwwXV1dXSxcIlVuZXhwZWN0ZWQgJXMsIGV4cGVjdGVkICVzXCJdLGIwMD1bMCxbMTEsXCJVbmRlZmluZWQgbGFiZWwgJ1wiLFsyLDAsWzEyLDM5LDBdXV0sXCJVbmRlZmluZWQgbGFiZWwgJyVzJ1wiXSx4eDA9XCJQYXJzZV9lcnJvci5FcnJvclwiLHJ4MD1bMCxbMCwzNiwzN10sWzAsNDgsNThdLFswLDY1LDkxXSxbMCw5NSw5Nl0sWzAsOTcsUnRdLFswLEI5LE5rXSxbMCxTSSxGa10sWzAscmQsSU5dLFswLFFoLGJFXSxbMCxtYSxnVF0sWzAsWk4sWDhdLFswLEdyLDcwNl0sWzAsV0QsNzIyXSxbMCw3MzYsNzQxXSxbMCw3NDgsNzQ5XSxbMCw3NTAsNzUxXSxbMCw3NjgsODg1XSxbMCw4ODYsODg4XSxbMCw4OTAsODk0XSxbMCw4OTUsODk2XSxbMCw5MDIsOTA3XSxbMCw5MDgsOTA5XSxbMCw5MTAsOTMwXSxbMCxESiwxMDE0XSxbMCwxMDE1LDExNTRdLFswLDExNTUsMTE2MF0sWzAsMTE2MiwxMzI4XSxbMCwxMzI5LDEzNjddLFswLDEzNjksMTM3MF0sWzAsMTM3NiwxNDE3XSxbMCwxNDI1LDE0NzBdLFswLDE0NzEsMTQ3Ml0sWzAsMTQ3MywxNDc1XSxbMCwxNDc2LDE0NzhdLFswLDE0NzksMTQ4MF0sWzAsMTQ4OCwxNTE1XSxbMCwxNTE5LDE1MjNdLFswLDE1NTIsMTU2M10sWzAsMTU2OCwxNjQyXSxbMCwxNjQ2LDE3NDhdLFswLDE3NDksMTc1N10sWzAsMTc1OSwxNzY5XSxbMCwxNzcwLDE3ODldLFswLDE3OTEsMTc5Ml0sWzAsMTgwOCwxODY3XSxbMCwxODY5LDE5NzBdLFswLDE5ODQsMjAzOF0sWzAsMjA0MiwyMDQzXSxbMCwyMDQ1LDIwNDZdLFswLHNDLDIwOTRdLFswLDIxMTIsMjE0MF0sWzAsMjE0NCwyMTU1XSxbMCwyMjA4LDIyMjldLFswLDIyMzAsMjIzOF0sWzAsMjI1OSwyMjc0XSxbMCwyMjc1LDI0MDRdLFswLDI0MDYsMjQxNl0sWzAsMjQxNywyNDM2XSxbMCwyNDM3LDI0NDVdLFswLDI0NDcsMjQ0OV0sWzAsMjQ1MSwyNDczXSxbMCwyNDc0LDI0ODFdLFswLDI0ODIsMjQ4M10sWzAsMjQ4NiwyNDkwXSxbMCwyNDkyLDI1MDFdLFswLDI1MDMsMjUwNV0sWzAsMjUwNywyNTExXSxbMCwyNTE5LDI1MjBdLFswLDI1MjQsMjUyNl0sWzAsMjUyNywyNTMyXSxbMCwyNTM0LDI1NDZdLFswLDI1NTYsMjU1N10sWzAsMjU1OCwyNTU5XSxbMCwyNTYxLDI1NjRdLFswLDI1NjUsMjU3MV0sWzAsMjU3NSwyNTc3XSxbMCwyNTc5LDI2MDFdLFswLDI2MDIsMjYwOV0sWzAsMjYxMCwyNjEyXSxbMCwyNjEzLDI2MTVdLFswLDI2MTYsMjYxOF0sWzAsMjYyMCwyNjIxXSxbMCwyNjIyLDI2MjddLFswLDI2MzEsMjYzM10sWzAsMjYzNSwyNjM4XSxbMCwyNjQxLDI2NDJdLFswLDI2NDksMjY1M10sWzAsMjY1NCwyNjU1XSxbMCwyNjYyLDI2NzhdLFswLDI2ODksMjY5Ml0sWzAsMjY5MywyNzAyXSxbMCwyNzAzLDI3MDZdLFswLDI3MDcsMjcyOV0sWzAsMjczMCwyNzM3XSxbMCwyNzM4LDI3NDBdLFswLDI3NDEsMjc0Nl0sWzAsMjc0OCwyNzU4XSxbMCwyNzU5LDI3NjJdLFswLDI3NjMsMjc2Nl0sWzAsMjc2OCwyNzY5XSxbMCwyNzg0LDI3ODhdLFswLDI3OTAsMjgwMF0sWzAsMjgwOSwyODE2XSxbMCwyODE3LDI4MjBdLFswLDI4MjEsMjgyOV0sWzAsMjgzMSwyODMzXSxbMCwyODM1LDI4NTddLFswLDI4NTgsMjg2NV0sWzAsMjg2NiwyODY4XSxbMCwyODY5LDI4NzRdLFswLDI4NzYsMjg4NV0sWzAsMjg4NywyODg5XSxbMCwyODkxLDI4OTRdLFswLDI5MDIsMjkwNF0sWzAsMjkwOCwyOTEwXSxbMCwyOTExLDI5MTZdLFswLDI5MTgsMjkyOF0sWzAsMjkyOSwyOTMwXSxbMCwyOTQ2LDI5NDhdLFswLDI5NDksMjk1NV0sWzAsMjk1OCwyOTYxXSxbMCwyOTYyLDI5NjZdLFswLDI5NjksMjk3MV0sWzAsMjk3MiwyOTczXSxbMCwyOTc0LDI5NzZdLFswLDI5NzksMjk4MV0sWzAsMjk4NCwyOTg3XSxbMCwyOTkwLDMwMDJdLFswLDMwMDYsMzAxMV0sWzAsMzAxNCwzMDE3XSxbMCwzMDE4LDMwMjJdLFswLDMwMjQsMzAyNV0sWzAsMzAzMSwzMDMyXSxbMCwzMDQ2LDMwNTZdLFswLDMwNzIsMzA4NV0sWzAsMzA4NiwzMDg5XSxbMCwzMDkwLDMxMTNdLFswLDMxMTQsMzEzMF0sWzAsMzEzMywzMTQxXSxbMCwzMTQyLDMxNDVdLFswLDMxNDYsMzE1MF0sWzAsMzE1NywzMTU5XSxbMCwzMTYwLDMxNjNdLFswLDMxNjgsMzE3Ml0sWzAsMzE3NCwzMTg0XSxbMCwzMjAwLDMyMDRdLFswLDMyMDUsMzIxM10sWzAsMzIxNCwzMjE3XSxbMCwzMjE4LDMyNDFdLFswLDMyNDIsMzI1Ml0sWzAsMzI1MywzMjU4XSxbMCwzMjYwLDMyNjldLFswLDMyNzAsMzI3M10sWzAsMzI3NCwzMjc4XSxbMCwzMjg1LDMyODddLFswLDMyOTQsMzI5NV0sWzAsMzI5NiwzMzAwXSxbMCwzMzAyLDMzMTJdLFswLDMzMTMsMzMxNV0sWzAsMzMyOCwzMzMyXSxbMCwzMzMzLDMzNDFdLFswLDMzNDIsMzM0NV0sWzAsMzM0NiwzMzk3XSxbMCwzMzk4LDM0MDFdLFswLDM0MDIsMzQwN10sWzAsMzQxMiwzNDE2XSxbMCwzNDIzLDM0MjhdLFswLDM0MzAsMzQ0MF0sWzAsMzQ1MCwzNDU2XSxbMCwzNDU4LDM0NjBdLFswLDM0NjEsMzQ3OV0sWzAsMzQ4MiwzNTA2XSxbMCwzNTA3LDM1MTZdLFswLDM1MTcsMzUxOF0sWzAsMzUyMCwzNTI3XSxbMCwzNTMwLDM1MzFdLFswLDM1MzUsMzU0MV0sWzAsMzU0MiwzNTQzXSxbMCwzNTQ0LDM1NTJdLFswLDM1NTgsMzU2OF0sWzAsMzU3MCwzNTcyXSxbMCwzNTg1LDM2NDNdLFswLDM2NDgsMzY2M10sWzAsMzY2NCwzNjc0XSxbMCwzNzEzLDM3MTVdLFswLDM3MTYsMzcxN10sWzAsMzcxOCwzNzIzXSxbMCwzNzI0LDM3NDhdLFswLDM3NDksMzc1MF0sWzAsMzc1MSwzNzc0XSxbMCwzNzc2LDM3ODFdLFswLDM3ODIsMzc4M10sWzAsMzc4NCwzNzkwXSxbMCwzNzkyLDM4MDJdLFswLDM4MDQsMzgwOF0sWzAsMzg0MCwzODQxXSxbMCwzODY0LDM4NjZdLFswLDM4NzIsMzg4Ml0sWzAsMzg5MywzODk0XSxbMCwzODk1LDM4OTZdLFswLDM4OTcsMzg5OF0sWzAsMzkwMiwzOTEyXSxbMCwzOTEzLDM5NDldLFswLDM5NTMsMzk3M10sWzAsMzk3NCwzOTkyXSxbMCwzOTkzLDQwMjldLFswLDQwMzgsNDAzOV0sWzAseGosNDE3MF0sWzAsNDE3Niw0MjU0XSxbMCw0MjU2LDQyOTRdLFswLDQyOTUsNDI5Nl0sWzAsNDMwMSw0MzAyXSxbMCw0MzA0LDQzNDddLFswLDQzNDgsNDY4MV0sWzAsNDY4Miw0Njg2XSxbMCw0Njg4LDQ2OTVdLFswLDQ2OTYsNDY5N10sWzAsNDY5OCw0NzAyXSxbMCw0NzA0LDQ3NDVdLFswLDQ3NDYsNDc1MF0sWzAsNDc1Miw0Nzg1XSxbMCw0Nzg2LDQ3OTBdLFswLDQ3OTIsNDc5OV0sWzAsNDgwMCw0ODAxXSxbMCw0ODAyLDQ4MDZdLFswLDQ4MDgsNDgyM10sWzAsNDgyNCw0ODgxXSxbMCw0ODgyLDQ4ODZdLFswLDQ4ODgsNDk1NV0sWzAsNDk1Nyw0OTYwXSxbMCw0OTY5LDQ5NzhdLFswLDQ5OTIsNTAwOF0sWzAsNTAyNCw1MTEwXSxbMCw1MTEyLDUxMThdLFswLDUxMjEsNTc0MV0sWzAsNTc0MyxaVF0sWzAsNTc2MSw1Nzg3XSxbMCw1NzkyLDU4NjddLFswLDU4NzAsNTg4MV0sWzAsNTg4OCw1OTAxXSxbMCw1OTAyLDU5MDldLFswLDU5MjAsNTk0MV0sWzAsNTk1Miw1OTcyXSxbMCw1OTg0LDU5OTddLFswLDU5OTgsNjAwMV0sWzAsNjAwMiw2MDA0XSxbMCw2MDE2LDYxMDBdLFswLDYxMDMsNjEwNF0sWzAsNjEwOCw2MTEwXSxbMCw2MTEyLDYxMjJdLFswLDYxNTUsNjE1OF0sWzAsNjE2MCw2MTcwXSxbMCw2MTc2LDYyNjVdLFswLDYyNzIsNjMxNV0sWzAsNjMyMCw2MzkwXSxbMCw2NDAwLDY0MzFdLFswLDY0MzIsNjQ0NF0sWzAsNjQ0OCw2NDYwXSxbMCw2NDcwLDY1MTBdLFswLDY1MTIsNjUxN10sWzAsNjUyOCw2NTcyXSxbMCw2NTc2LDY2MDJdLFswLDY2MDgsNjYxOV0sWzAsNjY1Niw2Njg0XSxbMCw2Njg4LDY3NTFdLFswLDY3NTIsNjc4MV0sWzAsNjc4Myw2Nzk0XSxbMCw2ODAwLDY4MTBdLFswLDY4MjMsNjgyNF0sWzAsNjgzMiw2ODQ2XSxbMCw2OTEyLDY5ODhdLFswLDY5OTIsNzAwMl0sWzAsNzAxOSw3MDI4XSxbMCw3MDQwLDcxNTZdLFswLDcxNjgsNzIyNF0sWzAsNzIzMiw3MjQyXSxbMCw3MjQ1LDcyOTRdLFswLDcyOTYsNzMwNV0sWzAsNzMxMiw3MzU1XSxbMCw3MzU3LDczNjBdLFswLDczNzYsNzM3OV0sWzAsNzM4MCw3NDE5XSxbMCw3NDI0LDc2NzRdLFswLDc2NzUsNzk1OF0sWzAsNzk2MCw3OTY2XSxbMCw3OTY4LDgwMDZdLFswLDgwMDgsODAxNF0sWzAsODAxNiw4MDI0XSxbMCw4MDI1LDgwMjZdLFswLDgwMjcsODAyOF0sWzAsODAyOSw4MDMwXSxbMCw4MDMxLDgwNjJdLFswLDgwNjQsODExN10sWzAsODExOCw4MTI1XSxbMCw4MTI2LDgxMjddLFswLDgxMzAsODEzM10sWzAsODEzNCw4MTQxXSxbMCw4MTQ0LDgxNDhdLFswLDgxNTAsODE1Nl0sWzAsODE2MCw4MTczXSxbMCw4MTc4LDgxODFdLFswLDgxODIsODE4OV0sWzAsTWosQlVdLFswLDgyNTUsODI1N10sWzAsODI3Niw4Mjc3XSxbMCxNOCw4MzA2XSxbMCxINSw4MzIwXSxbMCw4MzM2LDgzNDldLFswLDg0MDAsODQxM10sWzAsODQxNyw4NDE4XSxbMCw4NDIxLDg0MzNdLFswLG1kLDg0NTFdLFswLE41LDg0NTZdLFswLDg0NTgsZzhdLFswLEdwLDg0NzBdLFswLFVKLDg0NzhdLFswLEVkLG9wXSxbMCxjOCxzOF0sWzAsVXAsWXBdLFswLDg0OTAsODUwNl0sWzAsODUwOCw4NTEyXSxbMCw4NTE3LDg1MjJdLFswLHU4LDg1MjddLFswLDg1NDQsODU4NV0sWzAsMTEyNjQsMTEzMTFdLFswLDExMzEyLDExMzU5XSxbMCwxMTM2MCwxMTQ5M10sWzAsMTE0OTksMTE1MDhdLFswLDExNTIwLGo0XSxbMCxMOCwxMTU2MF0sWzAsVTQsMTE1NjZdLFswLDExNTY4LDExNjI0XSxbMCxBNSwxMTYzMl0sWzAsQjgsMTE2NzFdLFswLDExNjgwLG1wXSxbMCwxMTY4OCxsOF0sWzAsMTE2OTYsVzRdLFswLDExNzA0LHc4XSxbMCwxMTcxMix6NV0sWzAsMTE3MjAsRDVdLFswLDExNzI4LFJwXSxbMCwxMTczNiwxMTc0M10sWzAsMTE3NDQsMTE3NzZdLFswLDEyMjkzLDEyMjk2XSxbMCwxMjMyMSxENF0sWzAsMTIzMzcsMTIzNDJdLFswLDEyMzQ0LDEyMzQ5XSxbMCwxMjM1MywxMjQzOV0sWzAsMTI0NDEsajVdLFswLDEyNDQ5LG9kXSxbMCwxMjU0MCwxMjU0NF0sWzAsMTI1NDksUzVdLFswLDEyNTkzLDEyNjg3XSxbMCwxMjcwNCwxMjczMV0sWzAsMTI3ODQsMTI4MDBdLFswLDEzMzEyLDE5ODk0XSxbMCwxOTk2OCw0MDk0NF0sWzAsNDA5NjAsNDIxMjVdLFswLDQyMTkyLDQyMjM4XSxbMCw0MjI0MCw0MjUwOV0sWzAsNDI1MTIsNDI1NDBdLFswLDQyNTYwLDQyNjA4XSxbMCw0MjYxMixCNV0sWzAsNDI2MjMsNDI3MzhdLFswLDQyNzc1LDQyNzg0XSxbMCw0Mjc4Niw0Mjg4OV0sWzAsNDI4OTEsNDI5NDRdLFswLDQyOTQ2LDQyOTUxXSxbMCxEOCw0MzA0OF0sWzAsNDMwNzIsNDMxMjRdLFswLDQzMTM2LDQzMjA2XSxbMCw0MzIxNiw0MzIyNl0sWzAsNDMyMzIsNDMyNTZdLFswLEw1LCQ1XSxbMCw0MzI2MSw0MzMxMF0sWzAsNDMzMTIsNDMzNDhdLFswLDQzMzYwLDQzMzg5XSxbMCw0MzM5Miw0MzQ1N10sWzAsU3AsNDM0ODJdLFswLDQzNDg4LGNkXSxbMCw0MzUyMCw0MzU3NV0sWzAsNDM1ODQsNDM1OThdLFswLDQzNjAwLDQzNjEwXSxbMCw0MzYxNiw0MzYzOV0sWzAsVDgsNDM3MTVdLFswLDQzNzM5LDQzNzQyXSxbMCw0Mzc0NCw0Mzc2MF0sWzAsNDM3NjIsNDM3NjddLFswLDQzNzc3LDQzNzgzXSxbMCw0Mzc4NSw0Mzc5MV0sWzAsNDM3OTMsNDM3OTldLFswLDQzODA4LEg4XSxbMCw0MzgxNixlOF0sWzAsNDM4MjQsZTVdLFswLDQzODY4LGk4XSxbMCw0Mzg4OCw0NDAxMV0sWzAsNDQwMTIsNDQwMTRdLFswLDQ0MDE2LDQ0MDI2XSxbMCw0NDAzMiw1NTIwNF0sWzAsNTUyMTYsNTUyMzldLFswLDU1MjQzLDU1MjkyXSxbMCw2Mzc0NCw2NDExMF0sWzAsNjQxMTIsNjQyMThdLFswLDY0MjU2LDY0MjYzXSxbMCw2NDI3NSw2NDI4MF0sWzAsTnAsVjhdLFswLDY0Mjk4LHNkXSxbMCw2NDMxMixRNV0sWzAsWjgsbnBdLFswLDY0MzIwLFRwXSxbMCw2NDMyMyxvNV0sWzAsNjQzMjYsNjQ0MzRdLFswLDY0NDY3LDY0ODMwXSxbMCw2NDg0OCw2NDkxMl0sWzAsNjQ5MTQsNjQ5NjhdLFswLDY1MDA4LDY1MDIwXSxbMCw2NTAyNCw2NTA0MF0sWzAsNjUwNTYsNjUwNzJdLFswLDY1MDc1LDY1MDc3XSxbMCw2NTEwMSw2NTEwNF0sWzAsNjUxMzYsd3BdLFswLDY1MTQyLDY1Mjc3XSxbMCw2NTI5Niw2NTMwNl0sWzAsNjUzMTMsNjUzMzldLFswLDY1MzQzLE81XSxbMCw2NTM0NSw2NTM3MV0sWzAsNjUzODIsNjU0NzFdLFswLDY1NDc0LDY1NDgwXSxbMCw2NTQ4Miw2NTQ4OF0sWzAsNjU0OTAsNjU0OTZdLFswLDY1NDk4LDY1NTAxXSxbMCxiMyx2OF0sWzAsNjU1NDkseThdLFswLDY1NTc2LGFwXSxbMCw2NTU5NixsNV0sWzAsNjU1OTksNjU2MTRdLFswLDY1NjE2LDY1NjMwXSxbMCw2NTY2NCw2NTc4N10sWzAsNjU4NTYsNjU5MDldLFswLDY2MDQ1LDY2MDQ2XSxbMCw2NjE3Niw2NjIwNV0sWzAsNjYyMDgsNjYyNTddLFswLDY2MjcyLDY2MjczXSxbMCw2NjMwNCw2NjMzNl0sWzAsNjYzNDksNjYzNzldLFswLDY2Mzg0LDY2NDI3XSxbMCw2NjQzMiw2NjQ2Ml0sWzAsNjY0NjQsNjY1MDBdLFswLDY2NTA0LGM1XSxbMCw2NjUxMyw2NjUxOF0sWzAsNjY1NjAsNjY3MThdLFswLDY2NzIwLDY2NzMwXSxbMCw2NjczNiw2Njc3Ml0sWzAsNjY3NzYsNjY4MTJdLFswLDY2ODE2LDY2ODU2XSxbMCw2Njg2NCw2NjkxNl0sWzAsNjcwNzIsNjczODNdLFswLDY3MzkyLDY3NDE0XSxbMCw2NzQyNCw2NzQzMl0sWzAsNjc1ODQsNjc1OTBdLFswLGZkLHY1XSxbMCw2NzU5NCxZNV0sWzAsNjc2MzksNjc2NDFdLFswLEY1LDY3NjQ1XSxbMCw2NzY0Nyw2NzY3MF0sWzAsNjc2ODAsNjc3MDNdLFswLDY3NzEyLDY3NzQzXSxbMCw2NzgwOCxrZF0sWzAsNjc4MjgsNjc4MzBdLFswLDY3ODQwLDY3ODYyXSxbMCw2Nzg3Miw2Nzg5OF0sWzAsNjc5NjgsNjgwMjRdLFswLDY4MDMwLDY4MDMyXSxbMCxDZCw2ODEwMF0sWzAsNjgxMDEsNjgxMDNdLFswLDY4MTA4LGZwXSxbMCw2ODExNyx3ZF0sWzAsNjgxMjEsNjgxNTBdLFswLDY4MTUyLDY4MTU1XSxbMCw2ODE1OSw2ODE2MF0sWzAsNjgxOTIsNjgyMjFdLFswLDY4MjI0LDY4MjUzXSxbMCw2ODI4OCxWNF0sWzAsNjgyOTcsNjgzMjddLFswLDY4MzUyLDY4NDA2XSxbMCw2ODQxNiw2ODQzOF0sWzAsNjg0NDgsNjg0NjddLFswLDY4NDgwLDY4NDk4XSxbMCw2ODYwOCw2ODY4MV0sWzAsNjg3MzYsNjg3ODddLFswLDY4ODAwLDY4ODUxXSxbMCw2ODg2NCw2ODkwNF0sWzAsNjg5MTIsNjg5MjJdLFswLDY5Mzc2LDY5NDA1XSxbMCxmOCw2OTQxNl0sWzAsNjk0MjQsNjk0NTddLFswLDY5NjAwLDY5NjIzXSxbMCw2OTYzMiw2OTcwM10sWzAsNjk3MzQsa3BdLFswLDY5NzU5LDY5ODE5XSxbMCw2OTg0MCw2OTg2NV0sWzAsNjk4NzIsNjk4ODJdLFswLDY5ODg4LDY5OTQxXSxbMCw2OTk0Miw2OTk1Ml0sWzAsajgsbzhdLFswLDY5OTY4LDcwMDA0XSxbMCxGNCw3MDAwN10sWzAsNzAwMTYsNzAwODVdLFswLDcwMDg5LDcwMDkzXSxbMCw3MDA5NixLNF0sWzAsVGQsNzAxMDldLFswLDcwMTQ0LHhkXSxbMCw3MDE2Myw3MDIwMF0sWzAsNzAyMDYsNzAyMDddLFswLDcwMjcyLF84XSxbMCxpNSxjcF0sWzAsNzAyODIscThdLFswLDcwMjg3LEg0XSxbMCw3MDMwMyw3MDMxM10sWzAsNzAzMjAsNzAzNzldLFswLDcwMzg0LDcwMzk0XSxbMCw3MDQwMCxOOF0sWzAsNzA0MDUsNzA0MTNdLFswLDcwNDE1LDcwNDE3XSxbMCw3MDQxOSxDOF0sWzAsNzA0NDIscHBdLFswLDcwNDUwLF9kXSxbMCw3MDQ1Myw3MDQ1OF0sWzAsNzA0NTksNzA0NjldLFswLDcwNDcxLDcwNDczXSxbMCw3MDQ3NSw3MDQ3OF0sWzAsU2QsNzA0ODFdLFswLDcwNDg3LDcwNDg4XSxbMCw3MDQ5Myw3MDUwMF0sWzAsNzA1MDIsNzA1MDldLFswLDcwNTEyLDcwNTE3XSxbMCw3MDY1Niw3MDczMV0sWzAsNzA3MzYsNzA3NDZdLFswLFY1LDcwNzUyXSxbMCw3MDc4NCxfNV0sWzAseTUsNzA4NTZdLFswLDcwODY0LDcwODc0XSxbMCw3MTA0MCw3MTA5NF0sWzAsNzEwOTYsNzExMDVdLFswLDcxMTI4LDcxMTM0XSxbMCw3MTE2OCw3MTIzM10sWzAsS3AsNzEyMzddLFswLDcxMjQ4LDcxMjU4XSxbMCw3MTI5Niw3MTM1M10sWzAsNzEzNjAsNzEzNzBdLFswLDcxNDI0LDcxNDUxXSxbMCw3MTQ1Myw3MTQ2OF0sWzAsNzE0NzIsNzE0ODJdLFswLDcxNjgwLDcxNzM5XSxbMCw3MTg0MCw3MTkxNF0sWzAsNzE5MzUsNzE5MzZdLFswLDcyMDk2LDcyMTA0XSxbMCw3MjEwNiw3MjE1Ml0sWzAsNzIxNTQsRThdLFswLE80LDcyMTY1XSxbMCxlZCw3MjI1NV0sWzAsNzIyNjMsNzIyNjRdLFswLHU1LDcyMzQ2XSxbMCx0OCw3MjM1MF0sWzAsNzIzODQsNzI0NDFdLFswLDcyNzA0LHg1XSxbMCw3MjcxNCw3Mjc1OV0sWzAsNzI3NjAsNzI3NjldLFswLDcyNzg0LDcyNzk0XSxbMCw3MjgxOCw3Mjg0OF0sWzAsNzI4NTAsNzI4NzJdLFswLDcyODczLDcyODg3XSxbMCw3Mjk2MCwkNF0sWzAsNzI5NjgsaDVdLFswLDcyOTcxLDczMDE1XSxbMCw3MzAxOCw3MzAxOV0sWzAsNzMwMjAsNzMwMjJdLFswLDczMDIzLDczMDMyXSxbMCw3MzA0MCw3MzA1MF0sWzAsNzMwNTYsaWRdLFswLDczMDYzLEk4XSxbMCw3MzA2Niw3MzEwM10sWzAsNzMxMDQsNzMxMDZdLFswLDczMTA3LDczMTEzXSxbMCw3MzEyMCw3MzEzMF0sWzAsNzM0NDAsNzM0NjNdLFswLDczNzI4LDc0NjUwXSxbMCw3NDc1Miw3NDg2M10sWzAsNzQ4ODAsNzUwNzZdLFswLDc3ODI0LDc4ODk1XSxbMCw4Mjk0NCw4MzUyN10sWzAsOTIxNjAsOTI3MjldLFswLDkyNzM2LDkyNzY3XSxbMCw5Mjc2OCw5Mjc3OF0sWzAsOTI4ODAsOTI5MTBdLFswLDkyOTEyLDkyOTE3XSxbMCw5MjkyOCw5Mjk4M10sWzAsOTI5OTIsOTI5OTZdLFswLDkzMDA4LDkzMDE4XSxbMCw5MzAyNyw5MzA0OF0sWzAsOTMwNTMsOTMwNzJdLFswLDkzNzYwLDkzODI0XSxbMCw5Mzk1Miw5NDAyN10sWzAsVTgsOTQwODhdLFswLDk0MDk1LDk0MTEyXSxbMCw5NDE3NixxcF0sWzAsT3AsOTQxODBdLFswLDk0MjA4LDEwMDM0NF0sWzAsMTAwMzUyLDEwMTEwN10sWzAsMTEwNTkyLDExMDg3OV0sWzAsMTEwOTI4LDExMDkzMV0sWzAsMTEwOTQ4LDExMDk1Ml0sWzAsMTEwOTYwLDExMTM1Nl0sWzAsMTEzNjY0LDExMzc3MV0sWzAsMTEzNzc2LDExMzc4OV0sWzAsMTEzNzkyLDExMzgwMV0sWzAsMTEzODA4LDExMzgxOF0sWzAsMTEzODIxLDExMzgyM10sWzAsMTE5MTQxLDExOTE0Nl0sWzAsMTE5MTQ5LDExOTE1NV0sWzAsMTE5MTYzLDExOTE3MV0sWzAsMTE5MTczLDExOTE4MF0sWzAsMTE5MjEwLDExOTIxNF0sWzAsMTE5MzYyLDExOTM2NV0sWzAsMTE5ODA4LE00XSxbMCwxMTk4OTQsTzhdLFswLDExOTk2NiwxMTk5NjhdLFswLE5kLDExOTk3MV0sWzAsMTE5OTczLDExOTk3NV0sWzAsMTE5OTc3LFpwXSxbMCwxMTk5ODIsQ3BdLFswLEk1LGs1XSxbMCwxMTk5OTcsbjVdLFswLDEyMDAwNSxBcF0sWzAsMTIwMDcxLDEyMDA3NV0sWzAsMTIwMDc3LCRwXSxbMCwxMjAwODYsczVdLFswLDEyMDA5NCxyOF0sWzAsMTIwMTIzLEpwXSxbMCwxMjAxMjgsYjVdLFswLExwLDEyMDEzNV0sWzAsMTIwMTM4LERwXSxbMCwxMjAxNDYsMTIwNDg2XSxbMCwxMjA0ODgsdmRdLFswLDEyMDUxNCxrOF0sWzAsMTIwNTQwLGI4XSxbMCwxMjA1NzIsWTRdLFswLDEyMDU5OCxHNF0sWzAsMTIwNjMwLG5kXSxbMCwxMjA2NTYsVTVdLFswLDEyMDY4OCxnZF0sWzAsMTIwNzE0LEY4XSxbMCwxMjA3NDYseWRdLFswLDEyMDc3MiwxMjA3ODBdLFswLDEyMDc4MiwxMjA4MzJdLFswLDEyMTM0NCwxMjEzOTldLFswLDEyMTQwMywxMjE0NTNdLFswLDEyMTQ2MSwxMjE0NjJdLFswLDEyMTQ3NiwxMjE0NzddLFswLDEyMTQ5OSwxMjE1MDRdLFswLDEyMTUwNSwxMjE1MjBdLFswLDEyMjg4MCwxMjI4ODddLFswLDEyMjg4OCwxMjI5MDVdLFswLDEyMjkwNywxMjI5MTRdLFswLDEyMjkxNSwxMjI5MTddLFswLDEyMjkxOCwxMjI5MjNdLFswLDEyMzEzNiwxMjMxODFdLFswLDEyMzE4NCwxMjMxOThdLFswLDEyMzIwMCwxMjMyMTBdLFswLGhwLDEyMzIxNV0sWzAsMTIzNTg0LDEyMzY0Ml0sWzAsMTI0OTI4LDEyNTEyNV0sWzAsMTI1MTM2LDEyNTE0M10sWzAsMTI1MTg0LDEyNTI2MF0sWzAsMTI1MjY0LDEyNTI3NF0sWzAsMTI2NDY0LEU1XSxbMCwxMjY0NjkscGRdLFswLDEyNjQ5NyxKNV0sWzAsanAsMTI2NTAxXSxbMCxxNCxwNV0sWzAsMTI2NTA1LHhwXSxbMCwxMjY1MTYsVnBdLFswLFI0LFc4XSxbMCx6OCwxMjY1MjRdLFswLFI1LDEyNjUzMV0sWzAsTTUsX3BdLFswLG01LGE1XSxbMCxhZCxDNV0sWzAsMTI2NTQxLFM4XSxbMCwxMjY1NDUsZHBdLFswLGdyLDEyNjU0OV0sWzAsZDUsbGRdLFswLGxwLG44XSxbMCxGcCxBZF0sWzAsWDQsRzVdLFswLFE0LGRkXSxbMCwxMjY1NjEsenBdLFswLFo0LDEyNjU2NV0sWzAsMTI2NTY3LFc1XSxbMCwxMjY1NzIsejRdLFswLDEyNjU4MCxhOF0sWzAsMTI2NTg1LEVwXSxbMCx1cCxQZF0sWzAsMTI2NTkyLCQ4XSxbMCwxMjY2MDMsMTI2NjIwXSxbMCwxMjY2MjUsUjhdLFswLDEyNjYyOSxZOF0sWzAsMTI2NjM1LDEyNjY1Ml0sWzAsMTMxMDcyLDE3Mzc4M10sWzAsMTczODI0LDE3Nzk3M10sWzAsMTc3OTg0LDE3ODIwNl0sWzAsMTc4MjA4LDE4Mzk3MF0sWzAsMTgzOTg0LDE5MTQ1N10sWzAsMTk0NTYwLDE5NTEwMl0sWzAsOTE3NzYwLDkxOGUzXV0sZXgwPVswLDEsMF0sdHgwPVswLDAsWzAsMSwwXSxbMCwxLDBdXSxueDA9ZmosdXgwPVwiZW5kIG9mIGlucHV0XCIsaXgwPXlsLGZ4MD1cInRlbXBsYXRlIGxpdGVyYWwgcGFydFwiLGN4MD15bCxzeDA9SFUsb3gwPWZqLHZ4MD15bCxheDA9a2EsbHgwPXlsLHB4MD1rdixkeDA9eWwseXgwPUxhLG14MD1cImFuXCIsa3gwPUN0LGh4MD1NdCxfeDA9WzAsWzExLFwidG9rZW4gYFwiLFsyLDAsWzEyLDk2LDBdXV0sXCJ0b2tlbiBgJXNgXCJdLHd4MD1cIntcIixUeDA9SjgsU3gwPVwie3xcIixFeDA9XCJ8fVwiLGd4MD1ETSxBeDA9SlMsUHgwPVwiW1wiLE54MD1cIl1cIixDeDA9aFQsSXgwPVZNLE94MD1iZixSeDA9XCI9PlwiLEx4MD1cIi4uLlwiLE14MD1rVSxEeDA9WU0sVXgwPWxhLGp4MD1RcCxKeDA9d28sWHgwPVozLFl4MD1VZSxWeDA9WWUsengwPXZ2LEt4MD1YZSxCeDA9dGQsV3gwPXNsLFp4MD1NcCwkeDA9dnAsRngwPW5sLFF4MD1kYSxHeDA9bXYscXgwPUFzLEh4MD1TcyxieDA9TWUseHIwPVhwLHJyMD1LOCxlcjA9T2UsdHIwPWF2LG5yMD1LNSx1cjA9Z3AsaXIwPWQ4LGZyMD1WMyxjcjA9T2Msc3IwPWplLG9yMD1JcCx2cjA9b3YsYXIwPWVsLGxyMD1UcyxwcjA9UHMsZHIwPWNsLHlyMD14OCxtcjA9TTIsa3IwPU5hLGhyMD1fdixfcjA9UTIsd3IwPVdwLFRyMD1rbCxTcjA9QjMsRXIwPWozLGdyMD1qMixBcjA9UmUsUHIwPVEzLE5yMD1laSxDcjA9Q2gsSXIwPVhoLE9yMD1UbyxScjA9RXYsTHIwPVwiJWNoZWNrc1wiLE1yMD1sSixEcjA9a0QsVXIwPUVqLGpyMD1aSixKcjA9TlUsWHIwPWZELFlyMD1MTSxWcjA9clgsenIwPXRVLEtyMD12RCxCcjA9Y1gsV3IwPW1ELFpyMD16VSwkcjA9YkosRnIwPVdqLFFyMD1SXyxHcjA9XCI/LlwiLHFyMD1pOSxIcjA9QmosYnIwPUN2LHgxMD1sVSxyMTA9dFgsZTEwPW9YLHQxMD1tOCxuMTA9STQsdTEwPW5ELGkxMD1WRCxmMTA9ZUQsYzEwPUpELHMxMD1nRCxvMTA9a2osdjEwPUpULGExMD0kMyxsMTA9SE0scDEwPXlELGQxMD1qTSx5MTA9THMsbTEwPUx0LGsxMD1GMixoMTA9ZEosXzEwPUxELHcxMD1LRCxUMTA9TUQsUzEwPUhqLEUxMD1PSixnMTA9U1UsQTEwPWt4LFAxMD10NSxOMTA9c3AsQzEwPXNlLEkxMD1rYSxPMTA9a3YsUjEwPUxhLEwxMD1QcyxNMTA9d3gsRDEwPWc1LFUxMD1QOCxqMTA9cTUsSjEwPUE4LFgxMD1UYSxZMTA9UlUsVjEwPWFsLHoxMD15YSxLMTA9VTMsQjEwPVUzLFcxMD1lWCxaMTA9VTMsJDEwPVUzLEYxMD1KOCxRMTA9SjgsRzEwPWVYLHExMD1GMixIMTA9RjIsYjEwPUYzLHgyMD1UNSxyMjA9XCJUX0xDVVJMWVwiLGUyMD1cIlRfUkNVUkxZXCIsdDIwPVwiVF9MQ1VSTFlCQVJcIixuMjA9XCJUX1JDVVJMWUJBUlwiLHUyMD1cIlRfTFBBUkVOXCIsaTIwPVwiVF9SUEFSRU5cIixmMjA9XCJUX0xCUkFDS0VUXCIsYzIwPVwiVF9SQlJBQ0tFVFwiLHMyMD1cIlRfU0VNSUNPTE9OXCIsbzIwPVwiVF9DT01NQVwiLHYyMD1cIlRfUEVSSU9EXCIsYTIwPVwiVF9BUlJPV1wiLGwyMD1cIlRfRUxMSVBTSVNcIixwMjA9XCJUX0FUXCIsZDIwPVwiVF9QT1VORFwiLHkyMD1cIlRfRlVOQ1RJT05cIixtMjA9XCJUX0lGXCIsazIwPVwiVF9JTlwiLGgyMD1cIlRfSU5TVEFOQ0VPRlwiLF8yMD1cIlRfUkVUVVJOXCIsdzIwPVwiVF9TV0lUQ0hcIixUMjA9XCJUX1RISVNcIixTMjA9XCJUX1RIUk9XXCIsRTIwPVwiVF9UUllcIixnMjA9XCJUX1ZBUlwiLEEyMD1cIlRfV0hJTEVcIixQMjA9XCJUX1dJVEhcIixOMjA9XCJUX0NPTlNUXCIsQzIwPVwiVF9MRVRcIixJMjA9XCJUX05VTExcIixPMjA9XCJUX0ZBTFNFXCIsUjIwPVwiVF9UUlVFXCIsTDIwPVwiVF9CUkVBS1wiLE0yMD1cIlRfQ0FTRVwiLEQyMD1cIlRfQ0FUQ0hcIixVMjA9XCJUX0NPTlRJTlVFXCIsajIwPVwiVF9ERUZBVUxUXCIsSjIwPVwiVF9ET1wiLFgyMD1cIlRfRklOQUxMWVwiLFkyMD1cIlRfRk9SXCIsVjIwPVwiVF9DTEFTU1wiLHoyMD1cIlRfRVhURU5EU1wiLEsyMD1cIlRfU1RBVElDXCIsQjIwPVwiVF9FTFNFXCIsVzIwPVwiVF9ORVdcIixaMjA9XCJUX0RFTEVURVwiLCQyMD1cIlRfVFlQRU9GXCIsRjIwPVwiVF9WT0lEXCIsUTIwPVwiVF9FTlVNXCIsRzIwPVwiVF9FWFBPUlRcIixxMjA9XCJUX0lNUE9SVFwiLEgyMD1cIlRfU1VQRVJcIixiMjA9XCJUX0lNUExFTUVOVFNcIix4ZTA9XCJUX0lOVEVSRkFDRVwiLHJlMD1cIlRfUEFDS0FHRVwiLGVlMD1cIlRfUFJJVkFURVwiLHRlMD1cIlRfUFJPVEVDVEVEXCIsbmUwPVwiVF9QVUJMSUNcIix1ZTA9XCJUX1lJRUxEXCIsaWUwPVwiVF9ERUJVR0dFUlwiLGZlMD1cIlRfREVDTEFSRVwiLGNlMD1cIlRfVFlQRVwiLHNlMD1cIlRfT1BBUVVFXCIsb2UwPVwiVF9PRlwiLHZlMD1cIlRfQVNZTkNcIixhZTA9XCJUX0FXQUlUXCIsbGUwPVwiVF9DSEVDS1NcIixwZTA9XCJUX1JTSElGVDNfQVNTSUdOXCIsZGUwPVwiVF9SU0hJRlRfQVNTSUdOXCIseWUwPVwiVF9MU0hJRlRfQVNTSUdOXCIsbWUwPVwiVF9CSVRfWE9SX0FTU0lHTlwiLGtlMD1cIlRfQklUX09SX0FTU0lHTlwiLGhlMD1cIlRfQklUX0FORF9BU1NJR05cIixfZTA9XCJUX01PRF9BU1NJR05cIix3ZTA9XCJUX0RJVl9BU1NJR05cIixUZTA9XCJUX01VTFRfQVNTSUdOXCIsU2UwPVwiVF9FWFBfQVNTSUdOXCIsRWUwPVwiVF9NSU5VU19BU1NJR05cIixnZTA9XCJUX1BMVVNfQVNTSUdOXCIsQWUwPVwiVF9OVUxMSVNIX0FTU0lHTlwiLFBlMD1cIlRfQU5EX0FTU0lHTlwiLE5lMD1cIlRfT1JfQVNTSUdOXCIsQ2UwPVwiVF9BU1NJR05cIixJZTA9XCJUX1BMSU5HX1BFUklPRFwiLE9lMD1cIlRfUExJTkdfUExJTkdcIixSZTA9XCJUX1BMSU5HXCIsTGUwPVwiVF9DT0xPTlwiLE1lMD1cIlRfT1JcIixEZTA9XCJUX0FORFwiLFVlMD1cIlRfQklUX09SXCIsamUwPVwiVF9CSVRfWE9SXCIsSmUwPVwiVF9CSVRfQU5EXCIsWGUwPVwiVF9FUVVBTFwiLFllMD1cIlRfTk9UX0VRVUFMXCIsVmUwPVwiVF9TVFJJQ1RfRVFVQUxcIix6ZTA9XCJUX1NUUklDVF9OT1RfRVFVQUxcIixLZTA9XCJUX0xFU1NfVEhBTl9FUVVBTFwiLEJlMD1cIlRfR1JFQVRFUl9USEFOX0VRVUFMXCIsV2UwPVwiVF9MRVNTX1RIQU5cIixaZTA9XCJUX0dSRUFURVJfVEhBTlwiLCRlMD1cIlRfTFNISUZUXCIsRmUwPVwiVF9SU0hJRlRcIixRZTA9XCJUX1JTSElGVDNcIixHZTA9XCJUX1BMVVNcIixxZTA9XCJUX01JTlVTXCIsSGUwPVwiVF9ESVZcIixiZTA9XCJUX01VTFRcIix4dDA9XCJUX0VYUFwiLHJ0MD1cIlRfTU9EXCIsZXQwPVwiVF9OT1RcIix0dDA9XCJUX0JJVF9OT1RcIixudDA9XCJUX0lOQ1JcIix1dDA9XCJUX0RFQ1JcIixpdDA9XCJUX0VPRlwiLGZ0MD1cIlRfQU5ZX1RZUEVcIixjdDA9XCJUX01JWEVEX1RZUEVcIixzdDA9XCJUX0VNUFRZX1RZUEVcIixvdDA9XCJUX05VTUJFUl9UWVBFXCIsdnQwPVwiVF9CSUdJTlRfVFlQRVwiLGF0MD1cIlRfU1RSSU5HX1RZUEVcIixsdDA9XCJUX1ZPSURfVFlQRVwiLHB0MD1cIlRfU1lNQk9MX1RZUEVcIixkdDA9XCJUX1VOS05PV05fVFlQRVwiLHl0MD1cIlRfTkVWRVJfVFlQRVwiLG10MD1cIlRfVU5ERUZJTkVEX1RZUEVcIixrdDA9XCJUX0tFWU9GXCIsaHQwPVwiVF9SRUFET05MWVwiLF90MD1cIlRfSU5GRVJcIix3dDA9XCJUX0lTXCIsVHQwPVwiVF9BU1NFUlRTXCIsU3QwPVwiVF9OVU1CRVJcIixFdDA9XCJUX0JJR0lOVFwiLGd0MD1cIlRfU1RSSU5HXCIsQXQwPVwiVF9URU1QTEFURV9QQVJUXCIsUHQwPVwiVF9JREVOVElGSUVSXCIsTnQwPVwiVF9SRUdFWFBcIixDdDA9XCJUX0lOVEVSUFJFVEVSXCIsSXQwPVwiVF9FUlJPUlwiLE90MD1cIlRfSlNYX0lERU5USUZJRVJcIixSdDA9SEosTHQwPUhKLE10MD1cIlRfQk9PTEVBTl9UWVBFXCIsRHQwPVwiVF9OVU1CRVJfU0lOR0xFVE9OX1RZUEVcIixVdDA9XCJUX0JJR0lOVF9TSU5HTEVUT05fVFlQRVwiLGp0MD1bMCxRVSxDUyw5XSxKdDA9WzAsUVUsQlQsOV0sWHQwPXNVLFl0MD1cIiovXCIsVnQwPXNVLHp0MD1cInVucmVhY2hhYmxlIGxpbmVfY29tbWVudFwiLEt0MD1cInVucmVhY2hhYmxlIHN0cmluZ19xdW90ZVwiLEJ0MD1cIlxcXFxcIixXdDA9XCJ1bnJlYWNoYWJsZSB0ZW1wbGF0ZV9wYXJ0XCIsWnQwPWBcXHJcbmAsJHQwPXZULEZ0MD1cInVucmVhY2hhYmxlIHJlZ2V4cF9jbGFzc1wiLFF0MD1TSixHdDA9XCJ1bnJlYWNoYWJsZSByZWdleHBfYm9keVwiLHF0MD1reCxIdDA9a3gsYnQwPWt4LHhuMD1reCxybjA9cEosZW4wPVwieyc+J31cIix0bjA9JDMsbm4wPVwieyd9J31cIix1bjA9SjgsaW4wPW1vLGZuMD1oVCxjbjA9STQsc24wPXBKLG9uMD1tbyx2bjA9aFQsYW4wPUk0LGxuMD1cInVucmVhY2hhYmxlIHR5cGVfdG9rZW4gd2hvbGVudW1iZXJcIixwbjA9XCJ1bnJlYWNoYWJsZSB0eXBlX3Rva2VuIHdob2xlYmlnaW50XCIsZG4wPVwidW5yZWFjaGFibGUgdHlwZV90b2tlbiBmbG9hdGJpZ2ludFwiLHluMD1cInVucmVhY2hhYmxlIHR5cGVfdG9rZW4gc2NpbnVtYmVyXCIsbW4wPVwidW5yZWFjaGFibGUgdHlwZV90b2tlbiBzY2liaWdpbnRcIixrbjA9XCJ1bnJlYWNoYWJsZSB0eXBlX3Rva2VuIGhleG51bWJlclwiLGhuMD1cInVucmVhY2hhYmxlIHR5cGVfdG9rZW4gaGV4YmlnaW50XCIsX24wPVwidW5yZWFjaGFibGUgdHlwZV90b2tlbiBsZWdhY3lvY3RudW1iZXJcIix3bjA9XCJ1bnJlYWNoYWJsZSB0eXBlX3Rva2VuIG9jdG51bWJlclwiLFRuMD1cInVucmVhY2hhYmxlIHR5cGVfdG9rZW4gb2N0YmlnaW50XCIsU24wPVwidW5yZWFjaGFibGUgdHlwZV90b2tlbiBiaW5udW1iZXJcIixFbjA9XCJ1bnJlYWNoYWJsZSB0eXBlX3Rva2VuIGJpZ2JpZ2ludFwiLGduMD1cInVucmVhY2hhYmxlIHR5cGVfdG9rZW5cIixBbjA9d0osUG4wPVsxMSwxXSxObjA9WzExLDBdLENuMD1cInVucmVhY2hhYmxlIHRlbXBsYXRlX3RhaWxcIixJbjA9a3gsT24wPWt4LFJuMD1cInVucmVhY2hhYmxlIGpzeF9jaGlsZFwiLExuMD1cInVucmVhY2hhYmxlIGpzeF90YWdcIixNbjA9WzAsYURdLERuMD1bMCw5MTNdLFVuMD1bMCxtYV0sam4wPVswLGRoXSxKbjA9WzAsWURdLFhuMD1bMCxGSl0sWW4wPVswLDg3NDddLFZuMD1bMCxvSl0sem4wPVswLDkxNl0sS24wPVswLDgyMjVdLEJuMD1bMCw5MzVdLFduMD1bMCxhZ10sWm4wPVswLDkxNF0sJG4wPVswLFBqXSxGbjA9WzAsakRdLFFuMD1bMCxqSl0sR24wPVswLDkxNV0scW4wPVswLEJKXSxIbjA9WzAsOTE5XSxibjA9WzAsOTE3XSx4NzA9WzAsdlhdLHI3MD1bMCxlSl0sZTcwPVswLEFEXSx0NzA9WzAsOTI0XSxuNzA9WzAsOTIzXSx1NzA9WzAsOTIyXSxpNzA9WzAsblhdLGY3MD1bMCw5MjFdLGM3MD1bMCwkRF0sczcwPVswLEJUXSxvNzA9WzAsek1dLHY3MD1bMCxaTl0sYTcwPVswLDkyN10sbDcwPVswLDkzN10scDcwPVswLEdKXSxkNzA9WzAsaUVdLHk3MD1bMCxCRF0sbTcwPVswLDMzOF0sazcwPVswLDM1Ml0saDcwPVswLDkyOV0sXzcwPVswLDkzNl0sdzcwPVswLDgyNDNdLFQ3MD1bMCw5MjhdLFM3MD1bMCw5MzRdLEU3MD1bMCxRal0sZzcwPVswLFVNXSxBNzA9WzAsOTMzXSxQNzA9WzAsQ2pdLE43MD1bMCxial0sQzcwPVswLEpKXSxJNzA9WzAsOTIwXSxPNzA9WzAsOTMyXSxSNzA9WzAsJE1dLEw3MD1bMCxLVV0sTTcwPVswLFVVXSxENzA9WzAsd2pdLFU3MD1bMCw5MThdLGo3MD1bMCwzNzZdLEo3MD1bMCwkVV0sWDcwPVswLDkyNl0sWTcwPVswLFNqXSxWNzA9WzAsREpdLHo3MD1bMCw5MjVdLEs3MD1bMCwzOV0sQjcwPVswLDg3MzZdLFc3MD1bMCw4NzQzXSxaNzA9WzAsMzhdLCQ3MD1bMCw5NDVdLEY3MD1bMCw4NTAxXSxRNzA9WzAsZ2FdLEc3MD1bMCw4MjI2XSxxNzA9WzAsTFVdLEg3MD1bMCw5NDZdLGI3MD1bMCw4MjIyXSx4dTA9WzAsVGpdLHJ1MD1bMCxxSl0sZXUwPVswLDg3NzZdLHR1MD1bMCx5Sl0sbnUwPVswLDg3NzNdLHV1MD1bMCw5ODI3XSxpdTA9WzAsV0RdLGZ1MD1bMCw5NjddLGN1MD1bMCxWVV0sc3UwPVswLElOXSxvdTA9WzAsdGpdLHZ1MD1bMCx2VV0sYXUwPVswLDg1OTVdLGx1MD1bMCw4MjI0XSxwdTA9WzAsODY1OV0sZHUwPVswLElUXSx5dTA9WzAsODc0Nl0sbXUwPVswLDg2MjldLGt1MD1bMCxyNV0saHUwPVswLDg3NDVdLF91MD1bMCw4MTk1XSx3dTA9WzAsODcwOV0sVHUwPVswLGlYXSxTdTA9WzAsc1hdLEV1MD1bMCx3VV0sZ3UwPVswLFg4XSxBdTA9WzAsOTgzMF0sUHUwPVswLDg3MDddLE51MD1bMCw4MzY0XSxDdTA9WzAsQ0pdLEl1MD1bMCxoYV0sT3UwPVswLDk1MV0sUnUwPVswLDg4MDFdLEx1MD1bMCw5NDldLE11MD1bMCw4MTk0XSxEdTA9WzAsODgwNV0sVXUwPVswLDk0N10sanUwPVswLDgyNjBdLEp1MD1bMCxoRF0sWHUwPVswLGxqXSxZdTA9WzAsQ1NdLFZ1MD1bMCw4NzA0XSx6dTA9WzAscFRdLEt1MD1bMCxaQV0sQnUwPVswLDgyMzBdLFd1MD1bMCw5ODI5XSxadTA9WzAsODU5Nl0sJHUwPVswLDg2NjBdLEZ1MD1bMCw2Ml0sUXUwPVswLDQwMl0sR3UwPVswLDk0OF0scXUwPVswLElVXSxIdTA9WzAsUVNdLGJ1MD1bMCw4NzEyXSx4aTA9WzAsZWpdLHJpMD1bMCw5NTNdLGVpMD1bMCw4NzM0XSx0aTA9WzAsODQ2NV0sbmkwPVswLFZKXSx1aTA9WzAsODIyMF0saWkwPVswLDg5NjhdLGZpMD1bMCw4NTkyXSxjaTA9WzAsTmtdLHNpMD1bMCwxMDIxNl0sb2kwPVswLDk1NV0sdmkwPVswLDg2NTZdLGFpMD1bMCw5NTRdLGxpMD1bMCw2MF0scGkwPVswLDgyMTZdLGRpMD1bMCw4MjQ5XSx5aTA9WzAsQlVdLG1pMD1bMCw5Njc0XSxraTA9WzAsODcyN10saGkwPVswLDg5NzBdLF9pMD1bMCxVU10sd2kwPVswLDg3MTFdLFRpMD1bMCw5NTZdLFNpMD1bMCw4NzIyXSxFaTA9WzAscmRdLGdpMD1bMCxTSV0sQWkwPVswLDgyMTJdLFBpMD1bMCxka10sTmkwPVswLDg4MDRdLENpMD1bMCw5NTddLElpMD1bMCxNTV0sT2kwPVswLDg4MzZdLFJpMD1bMCw4NzEzXSxMaTA9WzAsRFVdLE1pMD1bMCw4NzE1XSxEaTA9WzAsODgwMF0sVWkwPVswLDg4NTNdLGppMD1bMCw5NTldLEppMD1bMCw5NjldLFhpMD1bMCw4MjU0XSxZaTA9WzAsYUpdLFZpMD1bMCwzMzldLHppMD1bMCxaNV0sS2kwPVswLEpqXSxCaTA9WzAsRmtdLFdpMD1bMCxoOF0sWmkwPVswLDg4NTVdLCRpMD1bMCxkU10sRmkwPVswLEdyXSxRaTA9WzAsUWhdLEdpMD1bMCxCOV0scWkwPVswLFJKXSxIaTA9WzAsd0RdLGJpMD1bMCw5ODJdLHhmMD1bMCw5NjBdLHJmMD1bMCw5NjZdLGVmMD1bMCw4ODY5XSx0ZjA9WzAsODI0MF0sbmYwPVswLDg3MDZdLHVmMD1bMCw4NzQ0XSxpZjA9WzAsODIxMV0sZmYwPVswLDEwMjE3XSxjZjA9WzAsODczMF0sc2YwPVswLDg2NThdLG9mMD1bMCwzNF0sdmYwPVswLDk2OF0sYWYwPVswLDg3MzNdLGxmMD1bMCw4NzE5XSxwZjA9WzAsOTYxXSxkZjA9WzAsODk3MV0seWYwPVswLHhYXSxtZjA9WzAsODQ3Nl0sa2YwPVswLDgyMjFdLGhmMD1bMCw4OTY5XSxfZjA9WzAsODU5NF0sd2YwPVswLGJFXSxUZjA9WzAsTmpdLFNmMD1bMCxNUF0sRWYwPVswLDg5MDFdLGdmMD1bMCwzNTNdLEFmMD1bMCw4MjE4XSxQZjA9WzAsODIxN10sTmYwPVswLDgyNTBdLENmMD1bMCw4ODM1XSxJZjA9WzAsODcyMV0sT2YwPVswLDg4MzhdLFJmMD1bMCw4ODM0XSxMZjA9WzAsOTgyNF0sTWYwPVswLDg3NjRdLERmMD1bMCw5NjJdLFVmMD1bMCw5NjNdLGpmMD1bMCw4MjA3XSxKZjA9WzAsOTUyXSxYZjA9WzAsODc1Nl0sWWYwPVswLDk2NF0sVmYwPVswLGJwXSx6ZjA9WzAsODgzOV0sS2YwPVswLEpNXSxCZjA9WzAsckpdLFdmMD1bMCxPdl0sWmYwPVswLDg2NTddLCRmMD1bMCw4NDgyXSxGZjA9WzAsZ1RdLFFmMD1bMCw3MzJdLEdmMD1bMCxDYV0scWYwPVswLDgyMDFdLEhmMD1bMCw5NzddLGJmMD1bMCxVSl0seGMwPVswLEVhXSxyYzA9WzAsOTY1XSxlYzA9WzAsOTc4XSx0YzA9WzAsQ1RdLG5jMD1bMCxCNF0sdWMwPVswLHBqXSxpYzA9WzAsTWpdLGZjMD1bMCw4MjA1XSxjYzA9WzAsOTUwXSxzYzA9WzAsejNdLG9jMD1bMCxBSl0sdmMwPVswLFE4XSxhYzA9WzAsOTU4XSxsYzA9WzAsODU5M10scGMwPVswLFl3XSxkYzA9WzAsODI0Ml0seWMwPVswLHFVXSxtYzA9XCJ1bnJlYWNoYWJsZSByZWdleHBcIixrYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiB3aG9sZW51bWJlclwiLGhjMD1cInVucmVhY2hhYmxlIHRva2VuIHdob2xlYmlnaW50XCIsX2MwPVwidW5yZWFjaGFibGUgdG9rZW4gZmxvYXRiaWdpbnRcIix3YzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBzY2ludW1iZXJcIixUYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBzY2liaWdpbnRcIixTYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBoZXhudW1iZXJcIixFYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBoZXhiaWdpbnRcIixnYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBsZWdhY3lvY3RudW1iZXJcIixBYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBsZWdhY3lub25vY3RudW1iZXJcIixQYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBvY3RudW1iZXJcIixOYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBvY3RiaWdpbnRcIixDYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBiaWdudW1iZXJcIixJYzA9XCJ1bnJlYWNoYWJsZSB0b2tlbiBiaWdpbnRcIixPYzA9XCJ1bnJlYWNoYWJsZSB0b2tlblwiLFJjMD13SixMYzA9WzcsXCIjIVwiXSxNYzA9XCJleHBlY3RlZCA/XCIsRGMwPVwidW5yZWFjaGFibGUgc3RyaW5nX2VzY2FwZVwiLFVjMD1xMixqYzA9WDMsSmMwPVgzLFhjMD1xMixZYzA9WkUsVmMwPVpqLHpjMD1cIm5cIixLYzA9XCJyXCIsQmMwPVwidFwiLFdjMD1VRCxaYzA9WDMsJGMwPW1vLEZjMD1tbyxRYzA9XCJ1bnJlYWNoYWJsZSBpZF9jaGFyXCIsR2MwPW1vLHFjMD1tbyxIYzA9WDMsYmMwPU5ELHhzMD1DVSxyczA9cVQsZXMwPVsyNCxcInRva2VuIElMTEVHQUxcIl0sdHMwPVswLFsxMSxcInRoZSBpZGVudGlmaWVyIGBcIixbMiwwLFsxMiw5NiwwXV1dLFwidGhlIGlkZW50aWZpZXIgYCVzYFwiXSxuczA9WzAsMV0sdXMwPVswLDFdLGlzMD1jVSxmczA9Y1UsY3MwPVswLFsxMSxcImFuIGlkZW50aWZpZXIuIFdoZW4gZXhwb3J0aW5nIGEgXCIsWzIsMCxbMTEsXCIgYXMgYSBuYW1lZCBleHBvcnQsIHlvdSBtdXN0IHNwZWNpZnkgYSBcIixbMiwwLFsxMSxcIiBuYW1lLiBEaWQgeW91IG1lYW4gYGV4cG9ydCBkZWZhdWx0IFwiLFsyLDAsWzExLFwiIC4uLmA/XCIsMF1dXV1dXV0sXCJhbiBpZGVudGlmaWVyLiBXaGVuIGV4cG9ydGluZyBhICVzIGFzIGEgbmFtZWQgZXhwb3J0LCB5b3UgbXVzdCBzcGVjaWZ5IGEgJXMgbmFtZS4gRGlkIHlvdSBtZWFuIGBleHBvcnQgZGVmYXVsdCAlcyAuLi5gP1wiXSxzczA9aXAsb3MwPVwiUGVla2luZyBjdXJyZW50IGxvY2F0aW9uIHdoZW4gbm90IGF2YWlsYWJsZVwiLHZzMD1bMCxcInNyYy9wYXJzZXIvcGFyc2VyX2Vudi5tbFwiLDM1MSw5XSxhczA9XCJJbnRlcm5hbCBFcnJvcjogVHJpZWQgdG8gYWRkX2RlY2xhcmVkX3ByaXZhdGUgd2l0aCBvdXRzaWRlIG9mIGNsYXNzIHNjb3BlLlwiLGxzMD1cIkludGVybmFsIEVycm9yOiBgZXhpdF9jbGFzc2AgY2FsbGVkIGJlZm9yZSBhIG1hdGNoaW5nIGBlbnRlcl9jbGFzc2BcIixwczA9a3gsZHMwPVswLDAsMF0seXMwPVswLDAsMF0sbXMwPVwiUGFyc2VyX2Vudi5UcnkuUm9sbGJhY2tcIixrczA9a3gsaHMwPWt4LF9zMD1bMCxqMixuaSxsZixuVSxUVSxEZixVMixQaSxLYyx4aSwkNyxibixQYyxXdSxsaSxqNyxFNyxHNyxLZixaZixnaSxKNyxLbixkaSxVYyxUNyxNYyx5aSx6ZixUaSxxbixabixuYyxUdSx6aSxvZixWYyxYZSxTZixBaSxDYyx5ZixMZixRNyxQdSxZZSx4ZixfNyxXaSxLaSxnYyxJNyxadSx5YyxVZSxPNyxGaSxtdSxSdSxvdSxtYyxKZSxhdSxkYyxVZixfdSxZYyxYZixldSxHZixvYyxJdSxEaSxkNyxvNyxVdSxaNyxBNyxFYyxwYyxYNyxOdSxSYyxrbixnZixCdSxlNyxIZixiNyxhaSxlYyx1aSxfZixpaSxuNyxEYyxmZixKYywkaSxudSxCZixNZixSaSxDNyxoZixCNyxOYyxWdSxJYyxMYyxzNyxHdSxrYyxMdSxzaSxjNyx1cixiaSxpdSx6bixSNyxJaSxXbixEdSxVNyx4YyxRaSxGZixRZixGbix4dSxmNyxMNyxjaSxqYyx0aSxodSxtZix0NyxpYyxBYyxLdSxqaSwkMSxkdSxydSxaYyxjdSxYaSxqZixIbixidSxRMixONyxZZix2dSxhZix2NyxYdSx1dSxoaSxNMixTNyxpNyx3NyxDdCxBdSxsdSxfaSx5dSxCaSxYYyx3aSxWbixwZixyaSxJZixxdSxIdSxNNyxCbixoNyxmYyxZbixxNyx0YyxGdSxzdSxFdSxNdSxMaSx0dSxGNyxrZixSZixsNyxLNyxRbixRdSxtaSxGMSxWNyxWZixwNyxUZixHbixtNyxuZixqdSxDdSx2Yyx3YyxlZixVaSxPdSx1NyxTdSxIaSxzZix4NyxNaSxzZSxOaSxTYyxFZix1Yyx2ZixyYyxZdSxPZixrNyxKaSxoYyxkZixKdSxSZSxPZSxHaSxsYyxzYywkbiwkZix1ZixwaSxfYywkdSx6NyxCYyxhNyxmdSxaaSxxZix1aixvaSxxaixHRCxTaSxyZixraSxndSxXNyx6YyxxaSxZaSx3dSxZNyxjZixyNyxUYyxXYyx2aSxnNyxXZix0ZixINyxQNyxNZSxhYyx6dSxvbixDZixWaSxENyxjYyxrdSxPaSxQZix5NyxmaSxOZix3Zl0sd3MwPVswLGoyLG5pLGxmLERmLFUyLFBpLEtjLHhpLCQ3LGJuLFBjLFd1LGxpLGo3LEU3LEc3LEtmLFpmLGdpLEo3LEtuLGRpLFVjLFQ3LE1jLHlpLHpmLFRpLHFuLFpuLG5jLFR1LHppLG9mLFZjLFhlLFNmLEFpLENjLHlmLExmLFE3LFB1LFllLHhmLF83LFdpLEtpLGdjLEk3LFp1LHljLFVlLE83LEZpLG11LFJ1LG91LG1jLEplLGF1LGRjLFVmLF91LFljLFhmLGV1LEdmLG9jLEl1LERpLGQ3LG83LFV1LFo3LEE3LEVjLHBjLFg3LE51LFJjLGtuLGdmLEJ1LGU3LEhmLGI3LGFpLGVjLHVpLF9mLGlpLG43LERjLGZmLEpjLCRpLG51LEJmLE1mLFJpLEM3LGhmLEI3LE5jLFZ1LEljLExjLHM3LEd1LGtjLEx1LHNpLGM3LHVyLGJpLGl1LHpuLFI3LElpLFduLER1LFU3LHhjLFFpLEZmLFFmLEZuLHh1LGY3LEw3LGNpLGpjLHRpLGh1LG1mLHQ3LGljLEFjLEt1LGppLCQxLGR1LHJ1LFpjLGN1LFhpLGpmLEhuLGJ1LFEyLE43LFlmLHZ1LGFmLHY3LFh1LHV1LGhpLE0yLFM3LGk3LHc3LEN0LEF1LGx1LF9pLHl1LEJpLFhjLHdpLFZuLHBmLHJpLElmLHF1LEh1LE03LEJuLGg3LGZjLFluLHE3LHRjLEZ1LHN1LEV1LE11LExpLHR1LEY3LGtmLFJmLGw3LEs3LFFuLFF1LG1pLEYxLFY3LFZmLHA3LFRmLEduLG03LG5mLGp1LEN1LHZjLHdjLGVmLFVpLE91LHU3LFN1LEhpLHNmLHg3LE1pLHNlLE5pLFNjLEVmLHVjLHZmLHJjLFl1LE9mLGs3LEppLGhjLGRmLEp1LFJlLE9lLEdpLGxjLHNjLCRuLCRmLHVmLHBpLF9jLCR1LHo3LEJjLGE3LGZ1LFppLHFmLG9pLFNpLHJmLGtpLGd1LFc3LHpjLHFpLFlpLHd1LFk3LGNmLHI3LFRjLFdjLHZpLGc3LFdmLHRmLEg3LFA3LE1lLGFjLHp1LG9uLENmLFZpLEQ3LGNjLGt1LE9pLFBmLHk3LGZpLE5mLHdmXSxUczA9WzAsZ2MsJDEscXUsQXUsVm4sUDcsSWMsQmYsY2ksSG4senUsTWMsZWMsWWUsYjcsVmYsY2YsZmYsaWMsczcsTjcsS3UsSGksVWksbmksQTcseXUsRXUsbzcseGMsX2MsX2ksU3UsTHUsQ3QsRGYsUmYsb2MsT2YsdGYsSHUsV2YsbWYsanUsYXUsWGMsTXUsUHUsUmksaTcsV2ksYWYsc2YsVTcsa2MsWWkscmYsZ2Ysd2YsWWMsYTcsZGksbnUsVWYseHUsVzcsdWksSmUsRGMscGYsQnUsc2ksamMsdDcsbHUsUjcsbGMsemYsd2MsZjcsSWksSWYsR2YseTcscmMsbTcsYmksbXUsUmMsZmksTWksSDcseWMsVTIsZGMsaGMsRzcsTzcsUzcsRDcsc3UsVmMsWmMsWTcsQjcsUTcsc2UsRjcseWksajIsV24sb2YsSmksWGYsV3UsWDcsZGYsUnUsY2MsUGMsU2ksazcsVnUseGksQWMsWm4samYsT3UsUW4sYWkscDcsRHUscGMsbDcsWmYscW4sZnUsUGksbmMsSTcsS2YsXzcsYm4semMsWWYsTGksa2ksem4scmksWmksJDcsb2ksTmMsRmYsa3UsaXUsV2Msd3UsejcsRWMsUWYsQmMsdXIsTTIsVWUsRTcsZ2kseGYsWjcsWGUsUmUsTGMsdzcsSGYsbWksamksa24sYWMsZmMsdTcsdnUsZ3UsVjcsTTcsZHUsd2ksajcsZWYsbWMsdGMsdXUsdmMsR24sJGYsaGYsWnUsTWYsdjcsaWksRGksVGksJGksX3UsbjcsSjcsdmYsdmksWXUsQ2YsY3UsTGYseDcsVHUsQmksb3UsaGksSmMsVGMsQzcsaHUscWksYnUsTmksVDcsTmYsS2MsU2MsZzcsVWMsRWYsdGkscnUsc2MsUWksZDcsR3UsWGksSzcsRm4sS24sQ2MsT2ksdWYsVXUsVmksRjEsTnUscWYsUXUsemksWW4scTcsS2ksT2UsQm4sJHUsZXUsbmYsdWMsQWkseWYsRnUsVGYsbGksdHUsZTcsb24sWHUscjcsTDcsX2YsaDcsSnUsQ3UsTWUsUGYsUTIsR2ksbGYscGksRmksa2YsJG4sSXUsU2YsYzddLFNzMD1bMCxnYywkMSxxdSxBdSxWbixQNyxJYyxCZixjaSxIbix6dSxNYyxlYyxZZSxiNyxWZixjZixmZixpYyxzNyxONyxLdSxIaSxVaSxuaSxBNyx5dSxFdSxvNyx4YyxfYyxfaSxTdSxMdSxDdCxEZixUVSxSZixvYyxPZix0ZixIdSxXZixtZixqdSxhdSxYYyxNdSxQdSxSaSxpNyxXaSxhZixzZixVNyxrYyxZaSxyZixnZix3ZixZYyxhNyxxaixkaSxudSxVZix4dSxXNyx1aSxKZSxEYyxwZixCdSxzaSxqYyx0NyxsdSxSNyxsYyx6Zix3YyxmNyxJaSxJZixHZix5NyxyYyxtNyxiaSxtdSxSYyxmaSxNaSxINyx5YyxVMixkYyxoYyxHNyxPNyxTNyxENyxzdSxWYyxaYyxZNyxCNyxRNyxzZSxGNyx5aSxqMixXbixvZixKaSxYZixXdSxYNyxkZixSdSxjYyxQYyxTaSxrNyxWdSx4aSxBYyxabixqZixPdSxRbixhaSxwNyxEdSxwYyxsNyxaZixxbixmdSxQaSxuYyxJNyxLZixfNyxibix6YyxZZixMaSxraSx6bixyaSxaaSwkNyxvaSxOYyxGZixrdSxpdSxXYyx3dSx6NyxFYyxRZixCYyx1cixNMixVZSxFNyxnaSx4ZixaNyxYZSxSZSxMYyx3NyxIZixtaSxqaSxrbixhYyxmYyx1Nyx2dSxndSxWNyxNNyxkdSx3aSxqNyxlZixtYyx0Yyx1dSx2YyxHbiwkZixoZixadSxNZix2NyxpaSxEaSxUaSwkaSxfdSxuNyxKNyx2Zix2aSxZdSxDZixjdSxHRCxMZix4NyxUdSxCaSxvdSxoaSxKYyxUYyxDNyxodSxxaSxidSxOaSxUNyx1aixOZixLYyxTYyxnNyxVYyxuVSxFZix0aSxydSxzYyxRaSxkNyxHdSxYaSxLNyxGbixLbixDYyxPaSx1ZixVdSxWaSxGMSxOdSxxZixRdSx6aSxZbixxNyxLaSxPZSxCbiwkdSxldSxuZix1YyxBaSx5ZixGdSxUZixsaSx0dSxlNyxvbixYdSxyNyxMNyxfZixoNyxKdSxDdSxNZSxQZixRMixHaSxsZixwaSxGaSxrZiwkbixJdSxTZixjN10sRXMwPWxhLGdzMD1RcCxBczA9d28sUHMwPVozLE5zMD1VZSxDczA9WWUsSXMwPXZ2LE9zMD1YZSxSczA9dGQsTHMwPXNsLE1zMD1NcCxEczA9dnAsVXMwPW5sLGpzMD1kYSxKczA9bXYsWHMwPUFzLFlzMD1TcyxWczA9TWUsenMwPVhwLEtzMD1LOCxCczA9T2UsV3MwPWF2LFpzMD1LNSwkczA9Z3AsRnMwPWQ4LFFzMD1WMyxHczA9T2MscXMwPWplLEhzMD1JcCxiczA9b3YseG8wPWVsLHJvMD1UcyxlbzA9UHMsdG8wPWNsLG5vMD14OCx1bzA9TTIsaW8wPU5hLGZvMD1fdixjbzA9UTIsc28wPVdwLG9vMD1rbCx2bzA9QjMsYW8wPWozLGxvMD1qMixwbzA9UmUsZG8wPVEzLHlvMD1laSxtbzA9Q2gsa28wPVhoLGhvMD1UbyxfbzA9RXYsd28wPXQ1LFRvMD1zcCxTbzA9c2UsRW8wPWthLGdvMD1rdixBbzA9TGEsUG8wPVBzLE5vMD13eCxDbzA9ZzUsSW8wPVA4LE9vMD1xNSxSbzA9QTgsTG8wPVRhLE1vMD1hbCxEbzA9eWEsVW8wPUYzLGpvMD1UNSxKbzA9WzAsaXBdLFhvMD1reCxZbzA9WzAsMV0sVm8wPVswLF9hLDEzNzEsNl0sem8wPVswLF9hLDEzNzQsNl0sS28wPVswLF9hLDE0NzcsOF0sQm8wPVswLDFdLFdvMD1bMCxfYSwxNDk0LDhdLFpvMD1cIkNhbiBub3QgaGF2ZSBib3RoIGBzdGF0aWNgIGFuZCBgcHJvdG9gXCIsJG8wPWplLEZvMD1DQyxRbzA9WzAsMCwwLDBdLEdvMD1bMCwwXSxxbzA9WzAsWzAsMCwwLDAsMF1dLEhvMD1hbCxibzA9eWEseHYwPVswLFwiYSBudW1iZXIgbGl0ZXJhbCB0eXBlXCJdLHJ2MD1bMCwwXSxldjA9bG8sdHYwPVswLDBdLG52MD1bMCxcImEgdHlwZVwiXSx1djA9WzAsMF0saXYwPVswLDBdLGZ2MD1bMTcsMV0sY3YwPVsxNywwXSxzdjA9WzAsX2EsZFMsMTVdLG92MD1bMCxfYSxpRSwxNV0sdnYwPUx0LGF2MD1MdCxsdjA9UDUscHYwPWxsLGR2MD1bMCxbMTEsXCJGYWlsdXJlIHdoaWxlIGxvb2tpbmcgdXAgXCIsWzIsMCxbMTEsXCIuIEluZGV4OiBcIixbNCwwLDAsMCxbMTEsXCIuIExlbmd0aDogXCIsWzQsMCwwLDAsWzEyLDQ2LDBdXV1dXV1dLFwiRmFpbHVyZSB3aGlsZSBsb29raW5nIHVwICVzLiBJbmRleDogJWQuIExlbmd0aDogJWQuXCJdLHl2MD1bMCwwLDAsMF0sbXYwPVwiT2Zmc2V0X3V0aWxzLk9mZnNldF9sb29rdXBfZmFpbGVkXCIsa3YwPXYxLGh2MD1PVSxfdjA9bGwsd3YwPVA1LFR2MD1faixTdjA9bGwsRXYwPVA1LGd2MD1fOSxBdjA9RWcsUHYwPVwibm9ybWFsXCIsTnYwPWVpLEN2MD1cImpzeFRhZ1wiLEl2MD1cImpzeENoaWxkXCIsT3YwPVwidGVtcGxhdGVcIixSdjA9SFUsTHYwPVwiY29udGV4dFwiLE12MD1laSxEdjA9WzYsMF0sVXYwPVswLDBdLGp2MD1bMCwxXSxKdjA9WzAsNF0sWHYwPVswLDJdLFl2MD1bMCwzXSxWdjA9WzAsMF0senYwPVswLDAsMCwwLDAsMF0sS3YwPWxvLEJ2MD1bMCw3NV0sV3YwPVswLGt4LDBdLFp2MD1sbiwkdjA9WzAsNzVdLEZ2MD1bMCw3NV0sUXYwPWxhLEd2MD1bMCxreCwwXSxxdjA9WzAsMCwwXSxIdjA9WzAsMCwwXSxidjA9WzAsODNdLHhhMD1GMixyYTA9RjIsZWEwPVswLFwiYSByZWd1bGFyIGV4cHJlc3Npb25cIl0sdGEwPWt4LG5hMD1reCx1YTA9a3gsaWEwPVswLFwic3JjL3BhcnNlci9leHByZXNzaW9uX3BhcnNlci5tbFwiLDEzNjgsMTddLGZhMD1bMCxcImEgdGVtcGxhdGUgbGl0ZXJhbCBwYXJ0XCJdLGNhMD1bMCxbMCxreCxreF0sMV0sc2EwPVswLDBdLG9hMD1YMyx2YTA9TkQsYWEwPXFULGxhMD1xVCxwYTA9Q1UsZGEwPVswLDc1XSx5YTA9WzAsMV0sbWEwPVswLDFdLGthMD1bMCwxXSxoYTA9WzAsMV0sX2EwPVswLDFdLHdhMD1BYSxUYTA9b3YsU2EwPVswLFwidGhlIGlkZW50aWZpZXIgYHRhcmdldGBcIl0sRWEwPVswLDBdLGdhMD1NMixBYTA9cGwsUGEwPXBsLE5hMD1OYSxDYTA9WzAsXCJlaXRoZXIgYSBjYWxsIG9yIGFjY2VzcyBvZiBgc3VwZXJgXCJdLElhMD1OYSxPYTA9WzAsMV0sUmEwPVswLDBdLExhMD1bMCwxXSxNYTA9WzAsMF0sRGEwPVswLDFdLFVhMD1bMCwwXSxqYTA9WzAsMl0sSmEwPVswLDNdLFhhMD1bMCw3XSxZYTA9WzAsNl0sVmEwPVswLDRdLHphMD1bMCw1XSxLYTA9WzAsNl0sQmEwPVswLFswLDE3LFswLDJdXV0sV2EwPVswLFswLDE4LFswLDNdXV0sWmEwPVswLFswLDE5LFswLDRdXV0sJGEwPVswLFswLDAsWzAsNV1dXSxGYTA9WzAsWzAsMSxbMCw1XV1dLFFhMD1bMCxbMCwyLFswLDVdXV0sR2EwPVswLFswLDMsWzAsNV1dXSxxYTA9WzAsWzAsNSxbMCw2XV1dLEhhMD1bMCxbMCw3LFswLDZdXV0sYmEwPVswLFswLDQsWzAsNl1dXSx4MzA9WzAsWzAsNixbMCw2XV1dLHIzMD1bMCxbMCw4LFswLDddXV0sZTMwPVswLFswLDksWzAsN11dXSx0MzA9WzAsWzAsMTAsWzAsN11dXSxuMzA9WzAsWzAsMTEsWzAsOF1dXSx1MzA9WzAsWzAsMTIsWzAsOF1dXSxpMzA9WzAsWzAsMTUsWzAsOV1dXSxmMzA9WzAsWzAsMTMsWzAsOV1dXSxjMzA9WzAsWzAsMTQsWzEsMTBdXV0sczMwPVswLFswLDE2LFswLDldXV0sbzMwPVswLFswLDIxLFswLDZdXV0sdjMwPVswLFswLDIwLFswLDZdXV0sYTMwPVsyMCxpOV0sbDMwPVswLFswLDhdXSxwMzA9WzAsWzAsN11dLGQzMD1bMCxbMCw2XV0seTMwPVswLFswLDEwXV0sbTMwPVswLFswLDldXSxrMzA9WzAsWzAsMTFdXSxoMzA9WzAsWzAsNV1dLF8zMD1bMCxbMCw0XV0sdzMwPVswLFswLDJdXSxUMzA9WzAsWzAsM11dLFMzMD1bMCxbMCwxXV0sRTMwPVswLFswLDBdXSxnMzA9WzAsWzAsMTJdXSxBMzA9WzAsWzAsMTNdXSxQMzA9WzAsWzAsMTRdXSxOMzA9WzAsMF0sQzMwPVYzLEkzMD1bMCxreCwwXSxPMzA9XCJ1bmV4cGVjdGVkIFByaXZhdGVOYW1lIGluIFByb3BlcnR5LCBleHBlY3RlZCBhIFByaXZhdGVGaWVsZFwiLFIzMD1bMCwwLDBdLEwzMD1fbyxNMzA9XCJNdXN0IGJlIG9uZSBvZiB0aGUgYWJvdmVcIixEMzA9WzAsMV0sVTMwPVswLDFdLGozMD1bMCwxXSxKMzA9X28sWDMwPV9vLFkzMD1SXyxWMzA9XCJJbnRlcm5hbCBFcnJvcjogcHJpdmF0ZSBuYW1lIGZvdW5kIGluIG9iamVjdCBwcm9wc1wiLHozMD1bMCwxXSxLMzA9WzAsWGssMTg1MiwyMV0sQjMwPVswLFwiYSBkZWNsYXJhdGlvbiwgc3RhdGVtZW50IG9yIGV4cG9ydCBzcGVjaWZpZXJzXCJdLFczMD1bMCw4Nl0sWjMwPWlsLCQzMD1bMCxreCxreCwwXSxGMzA9WzAscU1dLFEzMD1cImV4cG9ydHNcIixHMzA9WzAsMV0scTMwPVswLDFdLEgzMD1bMCwwXSxiMzA9dEoseGwwPVswLDg2XSxybDA9bG8sZWwwPVswLDc1XSx0bDA9WzAsMF0sbmwwPVswLDFdLHVsMD1bMCxcInRoZSBrZXl3b3JkIGBhc2BcIl0saWwwPVswLDM0XSxmbDA9WzAsMzRdLGNsMD1bMCwwXSxzbDA9WzAsMV0sb2wwPVswLHFNXSx2bDA9WzAsXCJ0aGUga2V5d29yZCBgZnJvbWBcIl0sYWwwPVswLGt4LGt4LDBdLGxsMD1bMCx6al0scGwwPVwiTGFiZWxcIixkbDA9WzAsempdLHlsMD1bMCwwLDBdLG1sMD1bMCw0NF0sa2wwPVswLFhrLDQyOSwyMl0saGwwPVswLDQzXSxfbDA9WzAsWGssNDQ4LDIyXSx3bDA9WzAsMF0sVGwwPVwidGhlIHRva2VuIGA7YFwiLFNsMD1bMCwwXSxFbDA9WzAsMF0sZ2wwPUlELEFsMD1bMCxpcF0sUGwwPUlELE5sMD1bMjQsQ3RdLENsMD1DdixJbDA9YmYsT2wwPVsxMyxcIkpTWCBmcmFnbWVudFwiXSxSbDA9WzAsY25dLExsMD1bMSxjbl0sTWwwPVswLGt4LGt4LDBdLERsMD1bMCxpcF0sVWwwPWt4LGpsMD1bMCxYVV0sSmwwPVsxOCxbMCwwXV0sWGwwPVswLFhVXSxZbDA9WzAsMCwwLDBdLFZsMD12VCx6bDA9XCJOb29vOiBcIixLbDA9YXYsQmwwPVwiUGFyc2VyIGVycm9yOiBObyBzdWNoIHRoaW5nIGFzIGFuIGV4cHJlc3Npb24gcGF0dGVybiFcIixXbDA9WzAsWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXV0sWmwwPVswLFwic3JjL3BhcnNlci9wYXJzZXJfZmxvdy5tbFwiLHI1LDI4XSwkbDA9WzAsWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXV0sRmwwPU9VLFFsMD1FZyxHbDA9YVUscWwwPUxqLEhsMD1MaixibDA9YVUseDYwPWVpLHI2MD1XTSxlNjA9RDEsdDYwPXYxLG42MD1cIkludGVycHJldGVyRGlyZWN0aXZlXCIsdTYwPVwiaW50ZXJwcmV0ZXJcIixpNjA9XCJQcm9ncmFtXCIsZjYwPW1sLGM2MD1cIkJyZWFrU3RhdGVtZW50XCIsczYwPW1sLG82MD1cIkNvbnRpbnVlU3RhdGVtZW50XCIsdjYwPVwiRGVidWdnZXJTdGF0ZW1lbnRcIixhNjA9SXYsbDYwPVwiRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uXCIscDYwPUl2LGQ2MD1odyx5NjA9S04sbTYwPWF2LGs2MD1cIkRlY2xhcmVFeHBvcnREZWNsYXJhdGlvblwiLGg2MD1obyxfNjA9RDEsdzYwPXFyLFQ2MD1cIkRlY2xhcmVNb2R1bGVcIixTNjA9aTIsRTYwPVwiRGVjbGFyZU1vZHVsZUV4cG9ydHNcIixnNjA9d2EsQTYwPUQxLFA2MD1cIkRvV2hpbGVTdGF0ZW1lbnRcIixONjA9XCJFbXB0eVN0YXRlbWVudFwiLEM2MD1MaCxJNjA9S04sTzYwPVwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIsUjYwPUxoLEw2MD1UVCxNNjA9SXYsRDYwPVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIixVNjA9TGgsajYwPUl2LEo2MD1odyxYNjA9S04sWTYwPVwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiLFY2MD1cImRpcmVjdGl2ZVwiLHo2MD1GMSxLNjA9XCJFeHByZXNzaW9uU3RhdGVtZW50XCIsQjYwPUQxLFc2MD1cInVwZGF0ZVwiLFo2MD13YSwkNjA9cHUsRjYwPVwiRm9yU3RhdGVtZW50XCIsUTYwPVwiZWFjaFwiLEc2MD1EMSxxNjA9eW4sSDYwPUVzLGI2MD1cIkZvckluU3RhdGVtZW50XCIseDQwPUV2LHI0MD1EMSxlNDA9eW4sdDQwPUVzLG40MD1cIkZvck9mU3RhdGVtZW50XCIsdTQwPW5KLGk0MD10TixmNDA9d2EsYzQwPVwiSWZTdGF0ZW1lbnRcIixzNDA9ZWksbzQwPVRzLHY0MD12MSxhNDA9RUQsbDQwPUl2LHA0MD1odyxkNDA9XCJJbXBvcnREZWNsYXJhdGlvblwiLHk0MD1EMSxtNDA9bWwsazQwPVwiTGFiZWxlZFN0YXRlbWVudFwiLGg0MD0kMixfNDA9XCJSZXR1cm5TdGF0ZW1lbnRcIix3NDA9XCJjYXNlc1wiLFQ0MD1cImRpc2NyaW1pbmFudFwiLFM0MD1cIlN3aXRjaFN0YXRlbWVudFwiLEU0MD0kMixnNDA9XCJUaHJvd1N0YXRlbWVudFwiLEE0MD1cImZpbmFsaXplclwiLFA0MD1cImhhbmRsZXJcIixONDA9b24sQzQwPVwiVHJ5U3RhdGVtZW50XCIsSTQwPUQxLE80MD13YSxSNDA9XCJXaGlsZVN0YXRlbWVudFwiLEw0MD1EMSxNNDA9RncsRDQwPVwiV2l0aFN0YXRlbWVudFwiLFU0MD1nVSxqNDA9XCJBcnJheUV4cHJlc3Npb25cIixKNDA9RDIsWDQwPXc1LFk0MD1GMSxWNDA9SmUsejQwPVZFLEs0MD1UbyxCNDA9RDEsVzQwPXBuLFo0MD1xciwkNDA9XCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvblwiLEY0MD1SXyxRNDA9eW4sRzQwPUVzLHE0MD10bCxINDA9XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiLGI0MD15bix4cDA9RXMscnAwPXRsLGVwMD1cIkJpbmFyeUV4cHJlc3Npb25cIix0cDA9XCJDYWxsRXhwcmVzc2lvblwiLG5wMD1uSix1cDA9dE4saXAwPXdhLGZwMD1cIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiLGNwMD1JdixzcDA9XCJJbXBvcnRFeHByZXNzaW9uXCIsb3AwPWxVLHZwMD10WCxhcDA9aTksbHAwPXluLHBwMD1FcyxkcDA9dGwseXAwPVwiTG9naWNhbEV4cHJlc3Npb25cIixtcDA9XCJNZW1iZXJFeHByZXNzaW9uXCIsa3AwPWpQLGhwMD1wbCxfcDA9XCJNZXRhUHJvcGVydHlcIix3cDA9bVAsVHAwPVZoLFNwMD1YSixFcDA9XCJOZXdFeHByZXNzaW9uXCIsZ3AwPXM5LEFwMD1cIk9iamVjdEV4cHJlc3Npb25cIixQcDA9bnQsTnAwPVwiT3B0aW9uYWxDYWxsRXhwcmVzc2lvblwiLENwMD1udCxJcDA9XCJPcHRpb25hbE1lbWJlckV4cHJlc3Npb25cIixPcDA9UEosUnAwPVwiU2VxdWVuY2VFeHByZXNzaW9uXCIsTHAwPVwiU3VwZXJcIixNcDA9XCJUaGlzRXhwcmVzc2lvblwiLERwMD1pMixVcDA9RjEsanAwPVwiVHlwZUNhc3RFeHByZXNzaW9uXCIsSnAwPUYxLFhwMD1cIkFzQ29uc3RFeHByZXNzaW9uXCIsWXAwPWkyLFZwMD1GMSx6cDA9XCJBc0V4cHJlc3Npb25cIixLcDA9aTIsQnAwPUYxLFdwMD1cIlNhdGlzZmllc0V4cHJlc3Npb25cIixacDA9JDIsJHAwPVwiQXdhaXRFeHByZXNzaW9uXCIsRnAwPUx0LFFwMD1McyxHcDA9TUQscXAwPUhqLEhwMD1UcyxicDA9UHMseDgwPWVsLHI4MD1cIm1hdGNoZWQgYWJvdmVcIixlODA9JDIsdDgwPWJNLG44MD10bCx1ODA9XCJVbmFyeUV4cHJlc3Npb25cIixpODA9U1UsZjgwPU9KLGM4MD1iTSxzODA9JDIsbzgwPXRsLHY4MD1cIlVwZGF0ZUV4cHJlc3Npb25cIixhODA9XCJkZWxlZ2F0ZVwiLGw4MD0kMixwODA9XCJZaWVsZEV4cHJlc3Npb25cIixkODA9XCJVbmV4cGVjdGVkIEZ1bmN0aW9uRGVjbGFyYXRpb24gd2l0aCBCb2R5RXhwcmVzc2lvblwiLHk4MD1EMixtODA9dzUsazgwPUYxLGg4MD1KZSxfODA9VkUsdzgwPVRvLFQ4MD1EMSxTODA9cG4sRTgwPXFyLGc4MD1cIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixBODA9XCJVbmV4cGVjdGVkIEZ1bmN0aW9uRXhwcmVzc2lvbiB3aXRoIEJvZHlFeHByZXNzaW9uXCIsUDgwPUQyLE44MD13NSxDODA9RjEsSTgwPUplLE84MD1WRSxSODA9VG8sTDgwPUQxLE04MD1wbixEODA9cXIsVTgwPVwiRnVuY3Rpb25FeHByZXNzaW9uXCIsajgwPW50LEo4MD1pMixYODA9TGUsWTgwPVNnLFY4MD1udCx6ODA9aTIsSzgwPUxlLEI4MD1cIlByaXZhdGVJZGVudGlmaWVyXCIsVzgwPW50LFo4MD1pMiwkODA9TGUsRjgwPVNnLFE4MD10TixHODA9d2EscTgwPVwiU3dpdGNoQ2FzZVwiLEg4MD1EMSxiODA9XCJwYXJhbVwiLHg1MD1cIkNhdGNoQ2xhdXNlXCIscjUwPUQxLGU1MD1cIkJsb2NrU3RhdGVtZW50XCIsdDUwPWhvLG41MD1xcix1NTA9XCJEZWNsYXJlVmFyaWFibGVcIixpNTA9SmUsZjUwPXFyLGM1MD1cIkRlY2xhcmVGdW5jdGlvblwiLHM1MD1wVSxvNTA9X3YsdjUwPU9jLGE1MD1EMSxsNTA9RDIscDUwPXFyLGQ1MD1cIkRlY2xhcmVDbGFzc1wiLHk1MD1EMixtNTA9Vl8sazUwPXBuLGg1MD1vdyxfNTA9cG4sdzUwPXFyLFQ1MD1cIkRlY2xhcmVDb21wb25lbnRcIixTNTA9RDIsRTUwPVZfLGc1MD1vdyxBNTA9cG4sUDUwPVwiQ29tcG9uZW50VHlwZUFubm90YXRpb25cIixONTA9bnQsQzUwPWkyLEk1MD1MZSxPNTA9XCJDb21wb25lbnRUeXBlUGFyYW1ldGVyXCIsUjUwPUQxLEw1MD1xcixNNTA9XCJEZWNsYXJlRW51bVwiLEQ1MD1PYyxVNTA9RDEsajUwPUQyLEo1MD1xcixYNTA9XCJEZWNsYXJlSW50ZXJmYWNlXCIsWTUwPXYxLFY1MD1laSx6NTA9VFQsSzUwPVwiRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyXCIsQjUwPXluLFc1MD1EMixaNTA9cXIsJDUwPVwiRGVjbGFyZVR5cGVBbGlhc1wiLEY1MD15bixRNTA9RDIsRzUwPXFyLHE1MD1cIlR5cGVBbGlhc1wiLEg1MD1cIkRlY2xhcmVPcGFxdWVUeXBlXCIsYjUwPVwiT3BhcXVlVHlwZVwiLHhkMD1cInN1cGVydHlwZVwiLHJkMD1cImltcGx0eXBlXCIsZWQwPUQyLHRkMD1xcixuZDA9XCJDbGFzc0RlY2xhcmF0aW9uXCIsdWQwPVwiQ2xhc3NFeHByZXNzaW9uXCIsaWQwPXVkLGZkMD1fdixjZDA9XCJzdXBlclR5cGVQYXJhbWV0ZXJzXCIsc2QwPVwic3VwZXJDbGFzc1wiLG9kMD1EMix2ZDA9RDEsYWQwPXFyLGxkMD1GMSxwZDA9XCJEZWNvcmF0b3JcIixkZDA9RDIseWQwPXFyLG1kMD1cIkNsYXNzSW1wbGVtZW50c1wiLGtkMD1EMSxoZDA9XCJDbGFzc0JvZHlcIixfZDA9VHYsd2QwPXEzLFRkMD1ndixTZDA9UmEsRWQwPXVkLGdkMD1JYSxBZDA9amUsUGQwPWhvLE5kMD12MSxDZDA9cHYsSWQwPVwiTWV0aG9kRGVmaW5pdGlvblwiLE9kMD1RMyxSZDA9dWQsTGQwPVUyLE1kMD1qZSxEZDA9SWEsVWQwPWkyLGpkMD12MSxKZDA9cHYsWGQwPWZVLFlkMD1cIkludGVybmFsIEVycm9yOiBQcml2YXRlIG5hbWUgZm91bmQgaW4gY2xhc3MgcHJvcFwiLFZkMD1RMyx6ZDA9dWQsS2QwPVUyLEJkMD1qZSxXZDA9SWEsWmQwPWkyLCRkMD12MSxGZDA9cHYsUWQwPWZVLEdkMD1EMixxZDA9Vl8sSGQwPXBuLGJkMD1xcix4eTA9RDEscnkwPVwiQ29tcG9uZW50RGVjbGFyYXRpb25cIixleTA9JDIsdHkwPWs5LG55MD15bix1eTA9RXMsaXkwPVBwLGZ5MD13UyxjeTA9Zmwsc3kwPUxlLG95MD1cIkNvbXBvbmVudFBhcmFtZXRlclwiLHZ5MD1wdSxheTA9cXIsbHkwPVwiRW51bUJpZ0ludE1lbWJlclwiLHB5MD1xcixkeTA9dEQseXkwPXB1LG15MD1xcixreTA9XCJFbnVtU3RyaW5nTWVtYmVyXCIsaHkwPXFyLF95MD10RCx3eTA9cHUsVHkwPXFyLFN5MD1cIkVudW1OdW1iZXJNZW1iZXJcIixFeTA9cHUsZ3kwPXFyLEF5MD1cIkVudW1Cb29sZWFuTWVtYmVyXCIsUHkwPVczLE55MD1oZCxDeTA9RzMsSXkwPVwiRW51bUJvb2xlYW5Cb2R5XCIsT3kwPVczLFJ5MD1oZCxMeTA9RzMsTXkwPVwiRW51bU51bWJlckJvZHlcIixEeTA9VzMsVXkwPWhkLGp5MD1HMyxKeTA9XCJFbnVtU3RyaW5nQm9keVwiLFh5MD1XMyxZeTA9RzMsVnkwPVwiRW51bVN5bWJvbEJvZHlcIix6eTA9VzMsS3kwPWhkLEJ5MD1HMyxXeTA9XCJFbnVtQmlnSW50Qm9keVwiLFp5MD1EMSwkeTA9cXIsRnkwPVwiRW51bURlY2xhcmF0aW9uXCIsUXkwPU9jLEd5MD1EMSxxeTA9RDIsSHkwPXFyLGJ5MD1cIkludGVyZmFjZURlY2xhcmF0aW9uXCIseG0wPUQyLHJtMD1xcixlbTA9XCJJbnRlcmZhY2VFeHRlbmRzXCIsdG0wPWkyLG5tMD1zOSx1bTA9XCJPYmplY3RQYXR0ZXJuXCIsaW0wPWkyLGZtMD1nVSxjbTA9XCJBcnJheVBhdHRlcm5cIixzbTA9eW4sb20wPUVzLHZtMD1QcCxhbTA9aTIsbG0wPUxlLHBtMD1TZyxkbTA9JDIseW0wPWs5LG1tMD0kMixrbTA9azksaG0wPXluLF9tMD1Fcyx3bTA9UHAsVG0wPXB1LFNtMD1wdSxFbTA9Z3YsZ20wPVJhLEFtMD0kaixQbTA9SWEsTm0wPXdTLENtMD1xMyxJbTA9aG8sT20wPXYxLFJtMD1wdixMbTA9Y2osTW0wPSQyLERtMD14SixVbTA9eW4sam0wPUVzLEptMD1QcCxYbTA9SWEsWW0wPXdTLFZtMD1xMyx6bTA9aG8sS20wPXYxLEJtMD1wdixXbTA9Y2osWm0wPSQyLCRtMD14SixGbTA9VXQsUW0wPXYxLEdtMD1hYSxxbTA9VXQsSG0wPWt2LGJtMD12MSx4OTA9YWEscjkwPVV0LGU5MD12MSx0OTA9YWEsbjkwPVNzLHU5MD1BcyxpOTA9VXQsZjkwPXYxLGM5MD1hYSxzOTA9XCJmbGFnc1wiLG85MD1rbix2OTA9XCJyZWdleFwiLGE5MD1VdCxsOTA9djEscDkwPWFhLGQ5MD1VdCx5OTA9djEsbTkwPWFhLGs5MD1QSixoOTA9XCJxdWFzaXNcIixfOTA9XCJUZW1wbGF0ZUxpdGVyYWxcIix3OTA9XCJjb29rZWRcIixUOTA9VXQsUzkwPVwidGFpbFwiLEU5MD12MSxnOTA9XCJUZW1wbGF0ZUVsZW1lbnRcIixBOTA9XCJxdWFzaVwiLFA5MD1cInRhZ1wiLE45MD1cIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiLEM5MD1zbCxJOTA9ZGEsTzkwPW5sLFI5MD1obyxMOTA9XCJkZWNsYXJhdGlvbnNcIixNOTA9XCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsRDkwPXB1LFU5MD1xcixqOTA9XCJWYXJpYWJsZURlY2xhcmF0b3JcIixKOTA9XCJwbHVzXCIsWDkwPUNELFk5MD1UYSxWOTA9d28sejkwPWtfLEs5MD1cImluLW91dFwiLEI5MD1obyxXOTA9XCJWYXJpYW5jZVwiLFo5MD1cIkFueVR5cGVBbm5vdGF0aW9uXCIsJDkwPVwiTWl4ZWRUeXBlQW5ub3RhdGlvblwiLEY5MD1cIkVtcHR5VHlwZUFubm90YXRpb25cIixROTA9XCJWb2lkVHlwZUFubm90YXRpb25cIixHOTA9XCJOdWxsTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIscTkwPVwiU3ltYm9sVHlwZUFubm90YXRpb25cIixIOTA9XCJOdW1iZXJUeXBlQW5ub3RhdGlvblwiLGI5MD1cIkJpZ0ludFR5cGVBbm5vdGF0aW9uXCIseGswPVwiU3RyaW5nVHlwZUFubm90YXRpb25cIixyazA9XCJCb29sZWFuVHlwZUFubm90YXRpb25cIixlazA9aTIsdGswPVwiTnVsbGFibGVUeXBlQW5ub3RhdGlvblwiLG5rMD1cIlVua25vd25UeXBlQW5ub3RhdGlvblwiLHVrMD1cIk5ldmVyVHlwZUFubm90YXRpb25cIixpazA9XCJVbmRlZmluZWRUeXBlQW5ub3RhdGlvblwiLGZrMD15YSxjazA9aTIsc2swPVwicGFyYW1ldGVyTmFtZVwiLG9rMD1cIlR5cGVQcmVkaWNhdGVcIix2azA9RDIsYWswPW93LGxrMD13NSxwazA9dnYsZGswPXBuLHlrMD1cIkZ1bmN0aW9uVHlwZUFubm90YXRpb25cIixtazA9bnQsa2swPWkyLGhrMD1MZSxfazA9UkQsd2swPW50LFRrMD1pMixTazA9TGUsRWswPVJELGdrMD1bMCwwLDAsMCwwXSxBazA9XCJpbnRlcm5hbFNsb3RzXCIsUGswPVwiY2FsbFByb3BlcnRpZXNcIixOazA9XCJpbmRleGVyc1wiLENrMD1zOSxJazA9XCJleGFjdFwiLE9rMD1cImluZXhhY3RcIixSazA9XCJPYmplY3RUeXBlQW5ub3RhdGlvblwiLExrMD0kaixNazA9XCJUaGVyZSBzaG91bGQgbm90IGJlIGNvbXB1dGVkIG9iamVjdCB0eXBlIHByb3BlcnR5IGtleXNcIixEazA9cHUsVWswPWd2LGprMD1SYSxKazA9aG8sWGswPVUyLFlrMD1DQyxWazA9amUsemswPW50LEtrMD1xMyxCazA9djEsV2swPXB2LFprMD1cIk9iamVjdFR5cGVQcm9wZXJ0eVwiLCRrMD0kMixGazA9XCJPYmplY3RUeXBlU3ByZWFkUHJvcGVydHlcIixRazA9VTIsR2swPWplLHFrMD12MSxIazA9cHYsYmswPXFyLHhoMD1cIk9iamVjdFR5cGVJbmRleGVyXCIscmgwPWplLGVoMD12MSx0aDA9XCJPYmplY3RUeXBlQ2FsbFByb3BlcnR5XCIsbmgwPW50LHVoMD1VMixpaDA9XCJzb3VyY2VUeXBlXCIsZmgwPVwicHJvcFR5cGVcIixjaDA9XCJrZXlUcGFyYW1cIixzaDA9XCJPYmplY3RUeXBlTWFwcGVkVHlwZVByb3BlcnR5XCIsb2gwPXYxLHZoMD1xMyxhaDA9amUsbGgwPW50LHBoMD1xcixkaDA9XCJPYmplY3RUeXBlSW50ZXJuYWxTbG90XCIseWgwPUQxLG1oMD1PYyxraDA9XCJJbnRlcmZhY2VUeXBlQW5ub3RhdGlvblwiLGhoMD1ZVSxfaDA9XCJBcnJheVR5cGVBbm5vdGF0aW9uXCIsd2gwPVwiZmFsc2VUeXBlXCIsVGgwPVwidHJ1ZVR5cGVcIixTaDA9XCJleHRlbmRzVHlwZVwiLEVoMD1cImNoZWNrVHlwZVwiLGdoMD1cIkNvbmRpdGlvbmFsVHlwZUFubm90YXRpb25cIixBaDA9XCJ0eXBlUGFyYW1ldGVyXCIsUGgwPVwiSW5mZXJUeXBlQW5ub3RhdGlvblwiLE5oMD1xcixDaDA9TEosSWgwPVwiUXVhbGlmaWVkVHlwZUlkZW50aWZpZXJcIixPaDA9RDIsUmgwPXFyLExoMD1cIkdlbmVyaWNUeXBlQW5ub3RhdGlvblwiLE1oMD1cImluZGV4VHlwZVwiLERoMD1cIm9iamVjdFR5cGVcIixVaDA9XCJJbmRleGVkQWNjZXNzVHlwZVwiLGpoMD1udCxKaDA9XCJPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlXCIsWGgwPWZnLFloMD1cIlVuaW9uVHlwZUFubm90YXRpb25cIixWaDA9ZmcsemgwPVwiSW50ZXJzZWN0aW9uVHlwZUFubm90YXRpb25cIixLaDA9JDIsQmgwPVwiVHlwZW9mVHlwZUFubm90YXRpb25cIixXaDA9cXIsWmgwPUxKLCRoMD1cIlF1YWxpZmllZFR5cGVvZklkZW50aWZpZXJcIixGaDA9JDIsUWgwPVwiS2V5b2ZUeXBlQW5ub3RhdGlvblwiLEdoMD0kMixxaDA9XCJSZWFkT25seVR5cGVBbm5vdGF0aW9uXCIsSGgwPVwiZWxlbWVudFR5cGVzXCIsYmgwPVwiVHVwbGVUeXBlQW5ub3RhdGlvblwiLHhfMD1udCxyXzA9VTIsZV8wPVlVLHRfMD1tbCxuXzA9XCJUdXBsZVR5cGVMYWJlbGVkRWxlbWVudFwiLHVfMD1pMixpXzA9bWwsZl8wPVwiVHVwbGVUeXBlU3ByZWFkRWxlbWVudFwiLGNfMD1VdCxzXzA9djEsb18wPVwiU3RyaW5nTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIsdl8wPVV0LGFfMD12MSxsXzA9XCJOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb25cIixwXzA9VXQsZF8wPXYxLHlfMD1cIkJpZ0ludExpdGVyYWxUeXBlQW5ub3RhdGlvblwiLG1fMD1TcyxrXzA9QXMsaF8wPVV0LF9fMD12MSx3XzA9XCJCb29sZWFuTGl0ZXJhbFR5cGVBbm5vdGF0aW9uXCIsVF8wPVwiRXhpc3RzVHlwZUFubm90YXRpb25cIixTXzA9aTIsRV8wPWxELGdfMD1pMixBXzA9bEQsUF8wPXBuLE5fMD1cIlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiLENfMD1cInVzZXNFeHRlbmRzQm91bmRcIixJXzA9YXYsT18wPVUyLFJfMD1cImJvdW5kXCIsTF8wPUxlLE1fMD1cIlR5cGVQYXJhbWV0ZXJcIixEXzA9cG4sVV8wPW9ELGpfMD1wbixKXzA9b0QsWF8wPUFhLFlfMD1HaixWXzA9XCJjbG9zaW5nRWxlbWVudFwiLHpfMD1cIm9wZW5pbmdFbGVtZW50XCIsS18wPVwiSlNYRWxlbWVudFwiLEJfMD1cImNsb3NpbmdGcmFnbWVudFwiLFdfMD1HaixaXzA9XCJvcGVuaW5nRnJhZ21lbnRcIiwkXzA9XCJKU1hGcmFnbWVudFwiLEZfMD1WaCxRXzA9XCJzZWxmQ2xvc2luZ1wiLEdfMD1cImF0dHJpYnV0ZXNcIixxXzA9TGUsSF8wPVwiSlNYT3BlbmluZ0VsZW1lbnRcIixiXzA9XCJKU1hPcGVuaW5nRnJhZ21lbnRcIix4dzA9TGUscncwPVwiSlNYQ2xvc2luZ0VsZW1lbnRcIixldzA9XCJKU1hDbG9zaW5nRnJhZ21lbnRcIix0dzA9djEsbncwPUxlLHV3MD1cIkpTWEF0dHJpYnV0ZVwiLGl3MD0kMixmdzA9XCJKU1hTcHJlYWRBdHRyaWJ1dGVcIixjdzA9XCJKU1hFbXB0eUV4cHJlc3Npb25cIixzdzA9RjEsb3cwPVwiSlNYRXhwcmVzc2lvbkNvbnRhaW5lclwiLHZ3MD1GMSxhdzA9XCJKU1hTcHJlYWRDaGlsZFwiLGx3MD1VdCxwdzA9djEsZHcwPVwiSlNYVGV4dFwiLHl3MD1qUCxtdzA9Rncsa3cwPVwiSlNYTWVtYmVyRXhwcmVzc2lvblwiLGh3MD1MZSxfdzA9XCJuYW1lc3BhY2VcIix3dzA9XCJKU1hOYW1lc3BhY2VkTmFtZVwiLFR3MD1MZSxTdzA9XCJKU1hJZGVudGlmaWVyXCIsRXcwPVRULGd3MD1mbCxBdzA9XCJFeHBvcnRTcGVjaWZpZXJcIixQdzA9ZmwsTncwPVwiSW1wb3J0RGVmYXVsdFNwZWNpZmllclwiLEN3MD1mbCxJdzA9XCJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXJcIixPdzA9RUQsUncwPWZsLEx3MD1cImltcG9ydGVkXCIsTXcwPVwiSW1wb3J0U3BlY2lmaWVyXCIsRHcwPVwiTGluZVwiLFV3MD1cIkJsb2NrXCIsancwPXYxLEp3MD12MSxYdzA9XCJEZWNsYXJlZFByZWRpY2F0ZVwiLFl3MD1cIkluZmVycmVkUHJlZGljYXRlXCIsVncwPW1QLHp3MD1WaCxLdzA9WEosQncwPUlhLFd3MD1qUCxadzA9RncsJHcwPVwibWVzc2FnZVwiLEZ3MD1FZyxRdzA9X2osR3cwPV85LHF3MD1JdixIdzA9bGwsYncwPVA1LHhUMD1bMCx3ZixOZixmaSx5NyxQZixPaSxrdSxjYyxENyxWaSxDZixvbix6dSxhYyxNZSxQNyxINyx0ZixXZixnNyx2aSxXYyxUYyxyNyxjZixZNyx3dSxZaSxxaSx6YyxXNyxndSxraSxyZixTaSxvaSxxZixaaSxmdSxhNyxCYyx6NywkdSxfYyxwaSx1ZiwkZiwkbixzYyxsYyxHaSxPZSxSZSxKdSxkZixoYyxKaSxrNyxPZixZdSxyYyx2Zix1YyxFZixTYyxOaSxzZSxNaSx4NyxzZixIaSxTdSx1NyxPdSxVaSxlZix3Yyx2YyxDdSxqdSxuZixtNyxHbixUZixwNyxWZixWNyxGMSxtaSxRdSxRbixLNyxsNyxSZixrZixGNyx0dSxMaSxNdSxFdSxzdSxGdSx0YyxxNyxZbixmYyxoNyxCbixNNyxIdSxxdSxJZixyaSxwZixWbix3aSxYYyxCaSx5dSxfaSxsdSxBdSxDdCx3NyxpNyxTNyxNMixoaSx1dSxYdSx2NyxhZix2dSxZZixONyxRMixidSxIbixqZixYaSxjdSxaYyxydSxkdSwkMSxqaSxLdSxBYyxpYyx0NyxtZixodSx0aSxqYyxjaSxMNyxmNyx4dSxGbixRZixGZixRaSx4YyxVNyxEdSxXbixJaSxSNyx6bixpdSxiaSx1cixjNyxzaSxMdSxrYyxHdSxzNyxMYyxJYyxWdSxOYyxCNyxoZixDNyxSaSxNZixCZixudSwkaSxKYyxmZixEYyxuNyxpaSxfZix1aSxlYyxhaSxiNyxIZixlNyxCdSxnZixrbixSYyxOdSxYNyxwYyxFYyxBNyxaNyxVdSxvNyxkNyxEaSxJdSxvYyxHZixldSxYZixZYyxfdSxVZixkYyxhdSxKZSxtYyxvdSxSdSxtdSxGaSxPNyxVZSx5YyxadSxJNyxnYyxLaSxXaSxfNyx4ZixZZSxQdSxRNyxMZix5ZixDYyxBaSxTZixYZSxWYyxvZix6aSxUdSxuYyxabixxbixUaSx6Zix5aSxNYyxUNyxVYyxkaSxLbixKNyxnaSxaZixLZixHNyxFNyxqNyxsaSxXdSxQYyxibiwkNyx4aSxLYyxQaSxVMixEZixsZixuaSxqMl0sclQwPVswLGoyLG5pLGxmLERmLFUyLFBpLEtjLHhpLCQ3LGJuLFBjLFd1LGxpLGo3LEU3LEc3LEtmLFpmLGdpLEo3LEtuLGRpLFVjLFQ3LE1jLHlpLHpmLFRpLHFuLFpuLG5jLFR1LHppLG9mLFZjLFhlLFNmLEFpLENjLHlmLExmLFE3LFB1LFllLHhmLF83LFdpLEtpLGdjLEk3LFp1LHljLFVlLE83LEZpLG11LFJ1LG91LG1jLEplLGF1LGRjLFVmLF91LFljLFhmLGV1LEdmLG9jLEl1LERpLGQ3LG83LFV1LFo3LEE3LEVjLHBjLFg3LE51LFJjLGtuLGdmLEJ1LGU3LEhmLGI3LGFpLGVjLHVpLF9mLGlpLG43LERjLGZmLEpjLCRpLG51LEJmLE1mLFJpLEM3LGhmLEI3LE5jLFZ1LEljLExjLHM3LEd1LGtjLEx1LHNpLGM3LHVyLGJpLGl1LHpuLFI3LElpLFduLER1LFU3LHhjLFFpLEZmLFFmLEZuLHh1LGY3LEw3LGNpLGpjLHRpLGh1LG1mLHQ3LGljLEFjLEt1LGppLCQxLGR1LHJ1LFpjLGN1LFhpLGpmLEhuLGJ1LFEyLE43LFlmLHZ1LGFmLHY3LFh1LHV1LGhpLE0yLFM3LGk3LHc3LEN0LEF1LGx1LF9pLHl1LEJpLFhjLHdpLFZuLHBmLHJpLElmLHF1LEh1LE03LEJuLGg3LGZjLFluLHE3LHRjLEZ1LHN1LEV1LE11LExpLHR1LEY3LGtmLFJmLGw3LEs3LFFuLFF1LG1pLEYxLFY3LFZmLHA3LFRmLEduLG03LG5mLGp1LEN1LHZjLHdjLGVmLFVpLE91LHU3LFN1LEhpLHNmLHg3LE1pLHNlLE5pLFNjLEVmLHVjLHZmLHJjLFl1LE9mLGs3LEppLGhjLGRmLEp1LFJlLE9lLEdpLGxjLHNjLCRuLCRmLHVmLHBpLF9jLCR1LHo3LEJjLGE3LGZ1LFppLHFmLG9pLFNpLHJmLGtpLGd1LFc3LHpjLHFpLFlpLHd1LFk3LGNmLHI3LFRjLFdjLHZpLGc3LFdmLHRmLEg3LFA3LE1lLGFjLHp1LG9uLENmLFZpLEQ3LGNjLGt1LE9pLFBmLHk3LGZpLE5mLHdmXSxlVDA9WzAsZ2MsJDEscXUsQXUsVm4sUDcsSWMsQmYsY2ksSG4senUsTWMsZWMsWWUsYjcsVmYsY2YsZmYsaWMsczcsTjcsS3UsSGksVWksbmksQTcseXUsRXUsbzcseGMsX2MsX2ksU3UsTHUsQ3QsRGYsUmYsb2MsT2YsdGYsSHUsV2YsbWYsanUsYXUsWGMsTXUsUHUsUmksaTcsV2ksYWYsc2YsVTcsa2MsWWkscmYsZ2Ysd2YsWWMsYTcsZGksbnUsVWYseHUsVzcsdWksSmUsRGMscGYsQnUsc2ksamMsdDcsbHUsUjcsbGMsemYsd2MsZjcsSWksSWYsR2YseTcscmMsbTcsYmksbXUsUmMsZmksTWksSDcseWMsVTIsZGMsaGMsRzcsTzcsUzcsRDcsc3UsVmMsWmMsWTcsQjcsUTcsc2UsRjcseWksajIsV24sb2YsSmksWGYsV3UsWDcsZGYsUnUsY2MsUGMsU2ksazcsVnUseGksQWMsWm4samYsT3UsUW4sYWkscDcsRHUscGMsbDcsWmYscW4sZnUsUGksbmMsSTcsS2YsXzcsYm4semMsWWYsTGksa2ksem4scmksWmksJDcsb2ksTmMsRmYsa3UsaXUsV2Msd3UsejcsRWMsUWYsQmMsdXIsTTIsVWUsRTcsZ2kseGYsWjcsWGUsUmUsTGMsdzcsSGYsbWksamksa24sYWMsZmMsdTcsdnUsZ3UsVjcsTTcsZHUsd2ksajcsZWYsbWMsdGMsdXUsdmMsR24sJGYsaGYsWnUsTWYsdjcsaWksRGksVGksJGksX3UsbjcsSjcsdmYsdmksWXUsQ2YsY3UsTGYseDcsVHUsQmksb3UsaGksSmMsVGMsQzcsaHUscWksYnUsTmksVDcsTmYsS2MsU2MsZzcsVWMsRWYsdGkscnUsc2MsUWksZDcsR3UsWGksSzcsRm4sS24sQ2MsT2ksdWYsVXUsVmksRjEsTnUscWYsUXUsemksWW4scTcsS2ksT2UsQm4sJHUsZXUsbmYsdWMsQWkseWYsRnUsVGYsbGksdHUsZTcsb24sWHUscjcsTDcsX2YsaDcsSnUsQ3UsTWUsUGYsUTIsR2ksbGYscGksRmksa2YsJG4sSXUsU2YsYzddLHRUMD1cIkpzb29fcnVudGltZS5FcnJvci5FeG5cIixuVDA9WzAsMF0sdVQwPVwidXNlX3N0cmljdFwiLGlUMD1mZyxmVDA9XCJlc3Byb3Bvc2FsX2RlY29yYXRvcnNcIixjVDA9XCJlbnVtc1wiLHNUMD1cImNvbXBvbmVudHNcIixvVDA9XCJJbnRlcm5hbCBlcnJvcjogXCI7ZnVuY3Rpb24gSTEoeCl7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuIDA7c3dpdGNoKHhbMF0pe2Nhc2UgMDpyZXR1cm5bMCxJMSh4WzFdKV07Y2FzZSAxOnJldHVyblsxLEkxKHhbMV0pXTtjYXNlIDI6cmV0dXJuWzIsSTEoeFsxXSldO2Nhc2UgMzpyZXR1cm5bMyxJMSh4WzFdKV07Y2FzZSA0OnJldHVybls0LEkxKHhbMV0pXTtjYXNlIDU6cmV0dXJuWzUsSTEoeFsxXSldO2Nhc2UgNjpyZXR1cm5bNixJMSh4WzFdKV07Y2FzZSA3OnJldHVybls3LEkxKHhbMV0pXTtjYXNlIDg6dmFyIHI9eFsxXTtyZXR1cm5bOCxyLEkxKHhbMl0pXTtjYXNlIDk6dmFyIGU9eFsxXTtyZXR1cm5bOSxlLGUsSTEoeFszXSldO2Nhc2UgMTA6cmV0dXJuWzEwLEkxKHhbMV0pXTtjYXNlIDExOnJldHVyblsxMSxJMSh4WzFdKV07Y2FzZSAxMjpyZXR1cm5bMTIsSTEoeFsxXSldO2Nhc2UgMTM6cmV0dXJuWzEzLEkxKHhbMV0pXTtkZWZhdWx0OnJldHVyblsxNCxJMSh4WzFdKV19fWZ1bmN0aW9uIGIyKHgscil7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuIHI7c3dpdGNoKHhbMF0pe2Nhc2UgMDpyZXR1cm5bMCxiMih4WzFdLHIpXTtjYXNlIDE6cmV0dXJuWzEsYjIoeFsxXSxyKV07Y2FzZSAyOnJldHVyblsyLGIyKHhbMV0scildO2Nhc2UgMzpyZXR1cm5bMyxiMih4WzFdLHIpXTtjYXNlIDQ6cmV0dXJuWzQsYjIoeFsxXSxyKV07Y2FzZSA1OnJldHVybls1LGIyKHhbMV0scildO2Nhc2UgNjpyZXR1cm5bNixiMih4WzFdLHIpXTtjYXNlIDc6cmV0dXJuWzcsYjIoeFsxXSxyKV07Y2FzZSA4OnZhciBlPXhbMV07cmV0dXJuWzgsZSxiMih4WzJdLHIpXTtjYXNlIDk6dmFyIHQ9eFsyXSx1PXhbMV07cmV0dXJuWzksdSx0LGIyKHhbM10scildO2Nhc2UgMTA6cmV0dXJuWzEwLGIyKHhbMV0scildO2Nhc2UgMTE6cmV0dXJuWzExLGIyKHhbMV0scildO2Nhc2UgMTI6cmV0dXJuWzEyLGIyKHhbMV0scildO2Nhc2UgMTM6cmV0dXJuWzEzLGIyKHhbMV0scildO2RlZmF1bHQ6cmV0dXJuWzE0LGIyKHhbMV0scildfX1mdW5jdGlvbiBUMSh4LHIpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXJldHVybiByO3N3aXRjaCh4WzBdKXtjYXNlIDA6cmV0dXJuWzAsVDEoeFsxXSxyKV07Y2FzZSAxOnJldHVyblsxLFQxKHhbMV0scildO2Nhc2UgMjp2YXIgZT14WzFdO3JldHVyblsyLGUsVDEoeFsyXSxyKV07Y2FzZSAzOnZhciB0PXhbMV07cmV0dXJuWzMsdCxUMSh4WzJdLHIpXTtjYXNlIDQ6dmFyIHU9eFszXSxpPXhbMl0sZj14WzFdO3JldHVybls0LGYsaSx1LFQxKHhbNF0scildO2Nhc2UgNTp2YXIgbz14WzNdLGw9eFsyXSxkPXhbMV07cmV0dXJuWzUsZCxsLG8sVDEoeFs0XSxyKV07Y2FzZSA2OnZhciBrPXhbM10saD14WzJdLGc9eFsxXTtyZXR1cm5bNixnLGgsayxUMSh4WzRdLHIpXTtjYXNlIDc6dmFyIEE9eFszXSxOPXhbMl0sQz14WzFdO3JldHVybls3LEMsTixBLFQxKHhbNF0scildO2Nhc2UgODp2YXIgTz14WzNdLEw9eFsyXSxNPXhbMV07cmV0dXJuWzgsTSxMLE8sVDEoeFs0XSxyKV07Y2FzZSA5OnZhciBWPXhbMV07cmV0dXJuWzksVixUMSh4WzJdLHIpXTtjYXNlIDEwOnJldHVyblsxMCxUMSh4WzFdLHIpXTtjYXNlIDExOnZhciB6PXhbMV07cmV0dXJuWzExLHosVDEoeFsyXSxyKV07Y2FzZSAxMjp2YXIgWT14WzFdO3JldHVyblsxMixZLFQxKHhbMl0scildO2Nhc2UgMTM6dmFyIHQwPXhbMl0saTA9eFsxXTtyZXR1cm5bMTMsaTAsdDAsVDEoeFszXSxyKV07Y2FzZSAxNDp2YXIgaj14WzJdLEs9eFsxXTtyZXR1cm5bMTQsSyxqLFQxKHhbM10scildO2Nhc2UgMTU6cmV0dXJuWzE1LFQxKHhbMV0scildO2Nhc2UgMTY6cmV0dXJuWzE2LFQxKHhbMV0scildO2Nhc2UgMTc6dmFyIEo9eFsxXTtyZXR1cm5bMTcsSixUMSh4WzJdLHIpXTtjYXNlIDE4OnZhciBRPXhbMV07cmV0dXJuWzE4LFEsVDEoeFsyXSxyKV07Y2FzZSAxOTpyZXR1cm5bMTksVDEoeFsxXSxyKV07Y2FzZSAyMDp2YXIgeDA9eFsyXSwkPXhbMV07cmV0dXJuWzIwLCQseDAsVDEoeFszXSxyKV07Y2FzZSAyMTp2YXIgZjA9eFsxXTtyZXR1cm5bMjEsZjAsVDEoeFsyXSxyKV07Y2FzZSAyMjpyZXR1cm5bMjIsVDEoeFsxXSxyKV07Y2FzZSAyMzp2YXIgczA9eFsxXTtyZXR1cm5bMjMsczAsVDEoeFsyXSxyKV07ZGVmYXVsdDp2YXIgdjA9eFsyXSxvMD14WzFdO3JldHVyblsyNCxvMCx2MCxUMSh4WzNdLHIpXX19ZnVuY3Rpb24gcUkoeCxyLGUpe3JldHVybiB4WzFdPT09cj8oeFsxXT1lLDEpOjB9ZnVuY3Rpb24gT3goeCl7dGhyb3cgcTAoWzAsX24seF0sMSl9ZnVuY3Rpb24geTIoeCl7dGhyb3cgcTAoWzAsUUkseF0sMSl9ZnVuY3Rpb24gWmQoeCl7cmV0dXJuIDA8PXg/eDoteHwwfXZhciB2VDA9Rk07ZnVuY3Rpb24gRngoeCxyKXt2YXIgZT1YeCh4KSx0PVh4KHIpLHU9dzEoZSt0fDApO3JldHVybiBGYyh4LDAsdSwwLGUpLEZjKHIsMCx1LGUsdCksUzIodSl9ZnVuY3Rpb24gYVQwKHgpe3JldHVybiB4P2xaOnBafWZ1bmN0aW9uIFF4KHgscil7aWYoIXgpcmV0dXJuIHI7dmFyIGU9eFsxXTtyZXR1cm5bMCxlLFF4KHhbMl0scildfVFXKDApO3ZhciBsVDA9WFgoMSksR2M9WFgoMik7ZnVuY3Rpb24gcFQwKHgpe2Zvcih2YXIgcj1HVygwKTs7KXtpZighcilyZXR1cm4gMDt2YXIgZT1yWzJdLHQ9clsxXTt0cnl7UWModCl9Y2F0Y2goZil7dmFyIHU9QzEoZik7aWYodVsxXSE9PUtYKXRocm93IHEwKHUsMCl9dmFyIHI9ZX19ZnVuY3Rpb24gSWwoeCxyKXtyZXR1cm4gQkkoeCxyLDAsWHgocikpfWZ1bmN0aW9uIEZYKHgpe3JldHVybiBJbChHYyx4KSxZWChHYywxMCksUWMoR2MpfXZhciBIST1bMCxwVDBdO2Z1bmN0aW9uIGJJKHgpe3JldHVybiBhKEhJWzFdLDApfVpJKHFELGJJKTt2YXIgUVg9blooMClbMV0sT2w9KDQqZVooMCl8MCktMXwwLGRUMD1bR3IsZFosSnMoMCldO2Z1bmN0aW9uIHlUMCh4KXt0aHJvdyBxMChkVDAsMSl9ZnVuY3Rpb24gJGQoeCxyKXtyZXR1cm4gcj9bMCxhKHgsclsxXSldOjB9ZnVuY3Rpb24gR1goeCl7cmV0dXJuIDI1PHgrWDU+Pj4wP3g6eCtLTXwwfWZ1bmN0aW9uIHFjKHgpe2Zvcih2YXIgcj0wLGU9eDs7KXtpZighZSlyZXR1cm4gcjt2YXIgcj1yKzF8MCxlPWVbMl19fWZ1bmN0aW9uIFJsKHgpe3JldHVybiB4P3hbMV06T3goRVopfWZ1bmN0aW9uIHFYKHgpe3JldHVybiB4P3hbMl06T3goU1opfWZ1bmN0aW9uIEhjKHgscil7Zm9yKHZhciBlPXgsdD1yOzspe2lmKCFlKXJldHVybiB0O3ZhciB1PVswLGVbMV0sdF0sZT1lWzJdLHQ9dX19ZnVuY3Rpb24gQXgoeCl7cmV0dXJuIEhjKHgsMCl9ZnVuY3Rpb24gTGwoeCl7aWYoIXgpcmV0dXJuIDA7dmFyIHI9eFsxXTtyZXR1cm4gUXgocixMbCh4WzJdKSl9ZnVuY3Rpb24gVG4oeCxyKXtpZighcilyZXR1cm4gMDt2YXIgZT1yWzJdLHQ9YSh4LHJbMV0pO3JldHVyblswLHQsVG4oeCxlKV19ZnVuY3Rpb24gRmQoeCxyKXtmb3IodmFyIGU9MCx0PXI7Oyl7aWYoIXQpcmV0dXJuIGU7dmFyIHU9dFsyXSxlPVswLGEoeCx0WzFdKSxlXSx0PXV9fWZ1bmN0aW9uIGcyKHgscil7Zm9yKHZhciBlPXI7Oyl7aWYoIWUpcmV0dXJuIDA7dmFyIHQ9ZVsyXTthKHgsZVsxXSk7dmFyIGU9dH19ZnVuY3Rpb24gSDEoeCxyLGUpe2Zvcih2YXIgdD1yLHU9ZTs7KXtpZighdSlyZXR1cm4gdDt2YXIgaT11WzJdLHQ9cCh4LHQsdVsxXSksdT1pfX1mdW5jdGlvbiB4Tyh4LHIsZSl7aWYoIXIpcmV0dXJuIGU7dmFyIHQ9clsxXTtyZXR1cm4gcCh4LHQseE8oeCxyWzJdLGUpKX1mdW5jdGlvbiBIWCh4LHIsZSl7Zm9yKHZhciB0PXIsdT1lOzspe2lmKHQpe2lmKHUpe3ZhciBpPXVbMl0sZj10WzJdO3AoeCx0WzFdLHVbMV0pO3ZhciB0PWYsdT1pO2NvbnRpbnVlfX1lbHNlIGlmKCF1KXJldHVybiAwO3JldHVybiB5MihUWil9fWZ1bmN0aW9uIHJPKHgscil7Zm9yKHZhciBlPXI7Oyl7aWYoIWUpcmV0dXJuIDA7dmFyIHQ9ZVsyXSx1PWEoeCxlWzFdKTtpZih1KXJldHVybiB1O3ZhciBlPXR9fWZ1bmN0aW9uIGVPKHgscil7Zm9yKHZhciBlPXI7Oyl7aWYoIWUpcmV0dXJuIDA7dmFyIHQ9ZVsyXSx1PUNYKGVbMV0seCk9PT0wPzE6MDtpZih1KXJldHVybiB1O3ZhciBlPXR9fWZ1bmN0aW9uIE1sKHgpe3ZhciByPTA7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1yLHU9ZTs7KXtpZighdSlyZXR1cm4gQXgodCk7dmFyIGk9dVsyXSxmPXVbMV07aWYoYSh4LGYpKXt2YXIgdD1bMCxmLHRdLHU9aTtjb250aW51ZX12YXIgdT1pfX19ZnVuY3Rpb24gTXYoeCxyKXt2YXIgZT13MSh4KTtyZXR1cm4gQ1coZSwwLHgsciksZX1mdW5jdGlvbiBiWCh4KXt2YXIgcj1jdCh4KSxlPXcxKHIpO3JldHVybiBNcyh4LDAsZSwwLHIpLGV9ZnVuY3Rpb24geFkoeCxyLGUpe2lmKDA8PXImJjA8PWUmJihjdCh4KS1lfDApPj1yKXt2YXIgdD13MShlKTtyZXR1cm4gTXMoeCxyLHQsMCxlKSx0fXJldHVybiB5MihQWil9ZnVuY3Rpb24gVmEoeCxyLGUpe3JldHVybiBTMih4WSh4LHIsZSkpfWZ1bmN0aW9uIHJZKHgscixlLHQsdSl7cmV0dXJuIDA8PXUmJjA8PXImJihjdCh4KS11fDApPj1yJiYwPD10JiYoY3QoZSktdXwwKT49dD9Ncyh4LHIsZSx0LHUpOnkyKEFaKX1mdW5jdGlvbiB6cyh4LHIsZSx0LHUpe3JldHVybiAwPD11JiYwPD1yJiYoWHgoeCktdXwwKT49ciYmMDw9dCYmKGN0KGUpLXV8MCk+PXQ/RmMoeCxyLGUsdCx1KTp5MihnWil9ZnVuY3Rpb24gUWQoeCxyKXtyZXR1cm4gUzIoTXYoeCxyKSl9ZnVuY3Rpb24gbTIoeCxyLGUpe3JldHVybiBTMih4WSgkYyh4KSxyLGUpKX1mdW5jdGlvbiBlWSh4KXt2YXIgcj0kYyh4KTtpZihjdChyKT09PTApdmFyIGU9cjtlbHNle3ZhciB0PWJYKHIpO0tyKHQsMCxHWChvZShyLDApKSk7dmFyIGU9dH1yZXR1cm4gUzIoZSl9ZnVuY3Rpb24gdFkoeCxyKXt2YXIgZT1YeCh4KSx0PWU8PVh4KHIpPzE6MDtpZighdClyZXR1cm4gdDtmb3IodmFyIHU9MDs7KXtpZih1PT09ZSlyZXR1cm4gMTtpZihmeChyLHUpIT09ZngoeCx1KSlyZXR1cm4gMDt2YXIgdT11KzF8MH19dmFyIG1UMD1UeDtmdW5jdGlvbiBuWSh4LHIpe3ZhciBlPXIubGVuZ3RoLTEtMXwwLHQ9MDtpZihlPj0wKWZvcih2YXIgdT10Ozspe2EoeCxyWzErdV0pO3ZhciBpPXUrMXwwO2lmKGUhPT11KXt2YXIgdT1pO2NvbnRpbnVlfWJyZWFrfXJldHVybiAwfWZ1bmN0aW9uIEdkKHgscil7dmFyIGU9ci5sZW5ndGgtMTtpZihlPT09MClyZXR1cm5bMF07dmFyIHQ9SmEoZSxhKHgsclsxXSkpLHU9ZS0xfDAsaT0xO2lmKHU+PTEpZm9yKHZhciBmPWk7Oyl7dFsxK2ZdPWEoeCxyWzErZl0pO3ZhciBvPWYrMXwwO2lmKHUhPT1mKXt2YXIgZj1vO2NvbnRpbnVlfWJyZWFrfXJldHVybiB0fWZ1bmN0aW9uIERsKHgpe2lmKCF4KXJldHVyblswXTtmb3IodmFyIHI9MCxlPXgsdD14WzJdLHU9eFsxXTs7KXtpZihlKXt2YXIgcj1yKzF8MCxlPWVbMl07Y29udGludWV9Zm9yKHZhciBpPUphKHIsdSksZj0xLG89dDs7KXtpZighbylyZXR1cm4gaTt2YXIgbD1vWzJdO2lbMStmXT1vWzFdO3ZhciBmPWYrMXwwLG89bH19fWZ1bmN0aW9uIHVZKHgpe3RyeXt2YXIgcj1bMCxTbCh4KV07cmV0dXJuIHJ9Y2F0Y2godCl7dmFyIGU9QzEodCk7aWYoZVsxXT09PV9uKXJldHVybiAwO3Rocm93IHEwKGUsMCl9fWZ1bmN0aW9uIHRPKHgpe2Z1bmN0aW9uIHIoRil7cmV0dXJuIEY/Rls1XTowfWZ1bmN0aW9uIGUoRixILEIsYTApe3ZhciBtMD1yKEYpLFAwPXIoYTApLEQ9UDA8PW0wP20wKzF8MDpQMCsxfDA7cmV0dXJuWzAsRixILEIsYTAsRF19ZnVuY3Rpb24gdChGLEgpe3JldHVyblswLDAsRixILDAsMV19ZnVuY3Rpb24gdShGLEgsQixhMCl7dmFyIG0wPUY/Rls1XTowLFAwPWEwP2EwWzVdOjA7aWYoKFAwKzJ8MCk8bTApe2lmKCFGKXJldHVybiB5MihVWik7dmFyIEQ9Rls0XSxPMD1GWzNdLEswPUZbMl0sajA9RlsxXSxveD1yKEQpO2lmKG94PD1yKGowKSlyZXR1cm4gZShqMCxLMCxPMCxlKEQsSCxCLGEwKSk7aWYoIUQpcmV0dXJuIHkyKERaKTt2YXIgYjA9RFszXSxfeD1EWzJdLEIwPURbMV0sVD1lKERbNF0sSCxCLGEwKTtyZXR1cm4gZShlKGowLEswLE8wLEIwKSxfeCxiMCxUKX1pZigobTArMnwwKT49UDApe3ZhciBYPVAwPD1tMD9tMCsxfDA6UDArMXwwO3JldHVyblswLEYsSCxCLGEwLFhdfWlmKCFhMClyZXR1cm4geTIoSlopO3ZhciBGMD1hMFs0XSxzeD1hMFszXSxleD1hMFsyXSxVMD1hMFsxXSxOeD1yKFUwKTtpZihOeDw9cihGMCkpcmV0dXJuIGUoZShGLEgsQixVMCksZXgsc3gsRjApO2lmKCFVMClyZXR1cm4geTIoalopO3ZhciBteD1VMFszXSxCeD1VMFsyXSxHeD1VMFsxXSxKMD1lKFUwWzRdLGV4LHN4LEYwKTtyZXR1cm4gZShlKEYsSCxCLEd4KSxCeCxteCxKMCl9dmFyIGk9MDtmdW5jdGlvbiBmKEYpe3JldHVybiBGPzA6MX1mdW5jdGlvbiBvKEYsSCxCKXtpZighQilyZXR1cm5bMCwwLEYsSCwwLDFdO3ZhciBhMD1CWzRdLG0wPUJbM10sUDA9QlsyXSxEPUJbMV0sTzA9Qls1XSxLMD1wKHhbMV0sRixQMCk7aWYoSzA9PT0wKXJldHVybiBtMD09PUg/QjpbMCxELEYsSCxhMCxPMF07aWYoMDw9SzApe3ZhciBqMD1vKEYsSCxhMCk7cmV0dXJuIGEwPT09ajA/Qjp1KEQsUDAsbTAsajApfXZhciBveD1vKEYsSCxEKTtyZXR1cm4gRD09PW94P0I6dShveCxQMCxtMCxhMCl9ZnVuY3Rpb24gbChGLEgpe2Zvcih2YXIgQj1IOzspe2lmKCFCKXRocm93IHEwKEUyLDEpO3ZhciBhMD1CWzRdLG0wPUJbM10sUDA9QlsxXSxEPXAoeFsxXSxGLEJbMl0pO2lmKEQ9PT0wKXJldHVybiBtMDt2YXIgTzA9MDw9RD9hMDpQMCxCPU8wfX1mdW5jdGlvbiBkKEYsSCl7Zm9yKHZhciBCPUg7Oyl7aWYoIUIpdGhyb3cgcTAoRTIsMSk7dmFyIGEwPUJbMl0sbTA9Qls0XSxQMD1CWzNdLEQ9QlsxXTtpZighYShGLGEwKSl7dmFyIEI9bTA7Y29udGludWV9Zm9yKHZhciBPMD1hMCxLMD1QMCxqMD1EOzspe2lmKCFqMClyZXR1cm5bMCxPMCxLMF07dmFyIG94PWowWzJdLGIwPWowWzRdLF94PWowWzNdLEIwPWowWzFdO2lmKGEoRixveCkpe3ZhciBPMD1veCxLMD1feCxqMD1CMDtjb250aW51ZX12YXIgajA9YjB9fX1mdW5jdGlvbiBrKEYsSCl7Zm9yKHZhciBCPUg7Oyl7aWYoIUIpcmV0dXJuIDA7dmFyIGEwPUJbMl0sbTA9Qls0XSxQMD1CWzNdLEQ9QlsxXTtpZighYShGLGEwKSl7dmFyIEI9bTA7Y29udGludWV9Zm9yKHZhciBPMD1hMCxLMD1QMCxqMD1EOzspe2lmKCFqMClyZXR1cm5bMCxbMCxPMCxLMF1dO3ZhciBveD1qMFsyXSxiMD1qMFs0XSxfeD1qMFszXSxCMD1qMFsxXTtpZihhKEYsb3gpKXt2YXIgTzA9b3gsSzA9X3gsajA9QjA7Y29udGludWV9dmFyIGowPWIwfX19ZnVuY3Rpb24gaChGLEgpe2Zvcih2YXIgQj1IOzspe2lmKCFCKXRocm93IHEwKEUyLDEpO3ZhciBhMD1CWzJdLG0wPUJbNF0sUDA9QlszXSxEPUJbMV07aWYoIWEoRixhMCkpe3ZhciBCPUQ7Y29udGludWV9Zm9yKHZhciBPMD1hMCxLMD1QMCxqMD1tMDs7KXtpZighajApcmV0dXJuWzAsTzAsSzBdO3ZhciBveD1qMFsyXSxiMD1qMFs0XSxfeD1qMFszXSxCMD1qMFsxXTtpZihhKEYsb3gpKXt2YXIgTzA9b3gsSzA9X3gsajA9YjA7Y29udGludWV9dmFyIGowPUIwfX19ZnVuY3Rpb24gZyhGLEgpe2Zvcih2YXIgQj1IOzspe2lmKCFCKXJldHVybiAwO3ZhciBhMD1CWzJdLG0wPUJbNF0sUDA9QlszXSxEPUJbMV07aWYoIWEoRixhMCkpe3ZhciBCPUQ7Y29udGludWV9Zm9yKHZhciBPMD1hMCxLMD1QMCxqMD1tMDs7KXtpZighajApcmV0dXJuWzAsWzAsTzAsSzBdXTt2YXIgb3g9ajBbMl0sYjA9ajBbNF0sX3g9ajBbM10sQjA9ajBbMV07aWYoYShGLG94KSl7dmFyIE8wPW94LEswPV94LGowPWIwO2NvbnRpbnVlfXZhciBqMD1CMH19fWZ1bmN0aW9uIEEoRixIKXtmb3IodmFyIEI9SDs7KXtpZighQilyZXR1cm4gMDt2YXIgYTA9Qls0XSxtMD1CWzNdLFAwPUJbMV0sRD1wKHhbMV0sRixCWzJdKTtpZihEPT09MClyZXR1cm5bMCxtMF07dmFyIE8wPTA8PUQ/YTA6UDAsQj1PMH19ZnVuY3Rpb24gTihGLEgpe2Zvcih2YXIgQj1IOzspe2lmKCFCKXJldHVybiAwO3ZhciBhMD1CWzRdLG0wPUJbMV0sUDA9cCh4WzFdLEYsQlsyXSksRD1QMD09PTA/MTowO2lmKEQpcmV0dXJuIEQ7dmFyIE8wPTA8PVAwP2EwOm0wLEI9TzB9fWZ1bmN0aW9uIEMoRil7Zm9yKHZhciBIPUY7Oyl7aWYoIUgpdGhyb3cgcTAoRTIsMSk7dmFyIEI9SFsxXTtpZighQilyZXR1cm5bMCxIWzJdLEhbM11dO3ZhciBIPUJ9fWZ1bmN0aW9uIE8oRil7Zm9yKHZhciBIPUY7Oyl7aWYoIUgpcmV0dXJuIDA7dmFyIEI9SFsxXTtpZighQilyZXR1cm5bMCxbMCxIWzJdLEhbM11dXTt2YXIgSD1CfX1mdW5jdGlvbiBMKEYpe2Zvcih2YXIgSD1GOzspe2lmKCFIKXRocm93IHEwKEUyLDEpO2lmKCFIWzRdKXJldHVyblswLEhbMl0sSFszXV07dmFyIEg9SFs0XX19ZnVuY3Rpb24gTShGKXtmb3IodmFyIEg9Rjs7KXtpZighSClyZXR1cm4gMDtpZighSFs0XSlyZXR1cm5bMCxbMCxIWzJdLEhbM11dXTt2YXIgSD1IWzRdfX1mdW5jdGlvbiBWKEYpe2lmKCFGKXJldHVybiB5MihPWik7dmFyIEg9RlsxXTtpZighSClyZXR1cm4gRls0XTt2YXIgQj1GWzRdLGEwPUZbM10sbTA9RlsyXTtyZXR1cm4gdShWKEgpLG0wLGEwLEIpfWZ1bmN0aW9uIHooRixIKXtpZighRilyZXR1cm4gSDtpZighSClyZXR1cm4gRjt2YXIgQj1DKEgpLGEwPUJbMl0sbTA9QlsxXTtyZXR1cm4gdShGLG0wLGEwLFYoSCkpfWZ1bmN0aW9uIFkoRixIKXtpZighSClyZXR1cm4gMDt2YXIgQj1IWzRdLGEwPUhbM10sbTA9SFsyXSxQMD1IWzFdLEQ9cCh4WzFdLEYsbTApO2lmKEQ9PT0wKXJldHVybiB6KFAwLEIpO2lmKDA8PUQpe3ZhciBPMD1ZKEYsQik7cmV0dXJuIEI9PT1PMD9IOnUoUDAsbTAsYTAsTzApfXZhciBLMD1ZKEYsUDApO3JldHVybiBQMD09PUswP0g6dShLMCxtMCxhMCxCKX1mdW5jdGlvbiB0MChGLEgsQil7aWYoIUIpe3ZhciBhMD1hKEgsMCk7cmV0dXJuIGEwP1swLDAsRixhMFsxXSwwLDFdOjB9dmFyIG0wPUJbNF0sUDA9QlszXSxEPUJbMl0sTzA9QlsxXSxLMD1CWzVdLGowPXAoeFsxXSxGLEQpO2lmKGowPT09MCl7dmFyIG94PWEoSCxbMCxQMF0pO2lmKCFveClyZXR1cm4geihPMCxtMCk7dmFyIGIwPW94WzFdO3JldHVybiBQMD09PWIwP0I6WzAsTzAsRixiMCxtMCxLMF19aWYoMDw9ajApe3ZhciBfeD10MChGLEgsbTApO3JldHVybiBtMD09PV94P0I6dShPMCxELFAwLF94KX12YXIgQjA9dDAoRixILE8wKTtyZXR1cm4gTzA9PT1CMD9COnUoQjAsRCxQMCxtMCl9ZnVuY3Rpb24gaTAoRixIKXtmb3IodmFyIEI9SDs7KXtpZighQilyZXR1cm4gMDt2YXIgYTA9Qls0XSxtMD1CWzNdLFAwPUJbMl07aTAoRixCWzFdKSxwKEYsUDAsbTApO3ZhciBCPWEwfX1mdW5jdGlvbiBqKEYsSCl7aWYoIUgpcmV0dXJuIDA7dmFyIEI9SFs1XSxhMD1IWzRdLG0wPUhbM10sUDA9SFsyXSxEPWooRixIWzFdKSxPMD1hKEYsbTApO3JldHVyblswLEQsUDAsTzAsaihGLGEwKSxCXX1mdW5jdGlvbiBLKEYsSCl7aWYoIUgpcmV0dXJuIDA7dmFyIEI9SFsyXSxhMD1IWzVdLG0wPUhbNF0sUDA9SFszXSxEPUsoRixIWzFdKSxPMD1wKEYsQixQMCk7cmV0dXJuWzAsRCxCLE8wLEsoRixtMCksYTBdfWZ1bmN0aW9uIEooRixILEIpe2Zvcih2YXIgYTA9SCxtMD1COzspe2lmKCFhMClyZXR1cm4gbTA7dmFyIFAwPWEwWzRdLEQ9YTBbM10sTzA9YTBbMl0sSzA9SDAoRixPMCxELEooRixhMFsxXSxtMCkpLGEwPVAwLG0wPUswfX1mdW5jdGlvbiBRKEYsSCl7Zm9yKHZhciBCPUg7Oyl7aWYoIUIpcmV0dXJuIDE7dmFyIGEwPUJbNF0sbTA9QlsxXSxQMD1wKEYsQlsyXSxCWzNdKTtpZihQMCl7dmFyIEQ9UShGLG0wKTtpZihEKXt2YXIgQj1hMDtjb250aW51ZX12YXIgTzA9RH1lbHNlIHZhciBPMD1QMDtyZXR1cm4gTzB9fWZ1bmN0aW9uIHgwKEYsSCl7Zm9yKHZhciBCPUg7Oyl7aWYoIUIpcmV0dXJuIDA7dmFyIGEwPUJbNF0sbTA9QlsxXSxQMD1wKEYsQlsyXSxCWzNdKTtpZihQMCl2YXIgRD1QMDtlbHNle3ZhciBPMD14MChGLG0wKTtpZighTzApe3ZhciBCPWEwO2NvbnRpbnVlfXZhciBEPU8wfXJldHVybiBEfX1mdW5jdGlvbiAkKEYsSCxCKXtpZighQilyZXR1cm4gdChGLEgpO3ZhciBhMD1CWzRdLG0wPUJbM10sUDA9QlsyXTtyZXR1cm4gdSgkKEYsSCxCWzFdKSxQMCxtMCxhMCl9ZnVuY3Rpb24gZjAoRixILEIpe2lmKCFCKXJldHVybiB0KEYsSCk7dmFyIGEwPUJbM10sbTA9QlsyXSxQMD1CWzFdO3JldHVybiB1KFAwLG0wLGEwLGYwKEYsSCxCWzRdKSl9ZnVuY3Rpb24gczAoRixILEIsYTApe2lmKCFGKXJldHVybiAkKEgsQixhMCk7aWYoIWEwKXJldHVybiBmMChILEIsRik7dmFyIG0wPWEwWzVdLFAwPUZbNV0sRD1hMFs0XSxPMD1hMFszXSxLMD1hMFsyXSxqMD1hMFsxXSxveD1GWzRdLGIwPUZbM10sX3g9RlsyXSxCMD1GWzFdO3JldHVybihtMCsyfDApPFAwP3UoQjAsX3gsYjAsczAob3gsSCxCLGEwKSk6KFAwKzJ8MCk8bTA/dShzMChGLEgsQixqMCksSzAsTzAsRCk6ZShGLEgsQixhMCl9ZnVuY3Rpb24gdjAoRixIKXtpZighRilyZXR1cm4gSDtpZighSClyZXR1cm4gRjt2YXIgQj1DKEgpLGEwPUJbMl0sbTA9QlsxXTtyZXR1cm4gczAoRixtMCxhMCxWKEgpKX1mdW5jdGlvbiBvMChGLEgsQixhMCl7cmV0dXJuIEI/czAoRixILEJbMV0sYTApOnYwKEYsYTApfWZ1bmN0aW9uIGMwKEYsSCl7aWYoIUgpcmV0dXJuIFJaO3ZhciBCPUhbNF0sYTA9SFszXSxtMD1IWzJdLFAwPUhbMV0sRD1wKHhbMV0sRixtMCk7aWYoRD09PTApcmV0dXJuWzAsUDAsWzAsYTBdLEJdO2lmKDA8PUQpe3ZhciBPMD1jMChGLEIpLEswPU8wWzNdLGowPU8wWzJdO3JldHVyblswLHMwKFAwLG0wLGEwLE8wWzFdKSxqMCxLMF19dmFyIG94PWMwKEYsUDApLGIwPW94WzJdLF94PW94WzFdO3JldHVyblswLF94LGIwLHMwKG94WzNdLG0wLGEwLEIpXX1mdW5jdGlvbiBkMChGLEgsQil7aWYoSCl7dmFyIGEwPUhbMl0sbTA9SFs1XSxQMD1IWzRdLEQ9SFszXSxPMD1IWzFdO2lmKHIoQik8PW0wKXt2YXIgSzA9YzAoYTAsQiksajA9SzBbMl0sb3g9SzBbMV0sYjA9ZDAoRixQMCxLMFszXSksX3g9SDAoRixhMCxbMCxEXSxqMCk7cmV0dXJuIG8wKGQwKEYsTzAsb3gpLGEwLF94LGIwKX19ZWxzZSBpZighQilyZXR1cm4gMDtpZighQil0aHJvdyBxMChbMCx3cixMWl0sMSk7dmFyIEIwPUJbMl0sVD1CWzRdLFg9QlszXSxGMD1CWzFdLHN4PWMwKEIwLEgpLGV4PXN4WzJdLFUwPXN4WzFdLE54PWQwKEYsc3hbM10sVCksbXg9SDAoRixCMCxleCxbMCxYXSk7cmV0dXJuIG8wKGQwKEYsVTAsRjApLEIwLG14LE54KX1mdW5jdGlvbiBFMChGLEgsQil7aWYoSCl7aWYoQil7dmFyIGEwPUJbM10sbTA9QlsyXSxQMD1IWzNdLEQ9SFsyXSxPMD1CWzRdLEswPUJbMV0sajA9SFs0XSxveD1IWzFdO2lmKEJbNV08PUhbNV0pe3ZhciBiMD1jMChELEIpLF94PWIwWzJdLEIwPWIwWzNdLFQ9RTAoRixveCxiMFsxXSksWD1FMChGLGowLEIwKTtyZXR1cm4gX3g/bzAoVCxELEgwKEYsRCxQMCxfeFsxXSksWCk6czAoVCxELFAwLFgpfXZhciBGMD1jMChtMCxIKSxzeD1GMFsyXSxleD1GMFszXSxVMD1FMChGLEYwWzFdLEswKSxOeD1FMChGLGV4LE8wKTtyZXR1cm4gc3g/bzAoVTAsbTAsSDAoRixtMCxzeFsxXSxhMCksTngpOnMwKFUwLG0wLGEwLE54KX12YXIgbXg9SH1lbHNlIHZhciBteD1CO3JldHVybiBteH1mdW5jdGlvbiBMMChGLEgpe2lmKCFIKXJldHVybiAwO3ZhciBCPUhbNF0sYTA9SFszXSxtMD1IWzJdLFAwPUhbMV0sRD1MMChGLFAwKSxPMD1wKEYsbTAsYTApLEswPUwwKEYsQik7cmV0dXJuIE8wP1AwPT09RCYmQj09PUswP0g6czAoRCxtMCxhMCxLMCk6djAoRCxLMCl9ZnVuY3Rpb24gWDAoRixIKXtpZighSClyZXR1cm4gMDt2YXIgQj1IWzJdLGEwPUhbNF0sbTA9SFszXSxQMD1YMChGLEhbMV0pLEQ9cChGLEIsbTApLE8wPVgwKEYsYTApO3JldHVybiBEP3MwKFAwLEIsRFsxXSxPMCk6djAoUDAsTzApfWZ1bmN0aW9uIHh4KEYsSCl7aWYoIUgpcmV0dXJuIE1aO3ZhciBCPUhbM10sYTA9SFsyXSxtMD1IWzRdLFAwPXh4KEYsSFsxXSksRD1QMFsyXSxPMD1QMFsxXSxLMD1wKEYsYTAsQiksajA9eHgoRixtMCksb3g9ajBbMl0sYjA9ajBbMV07aWYoSzApe3ZhciBfeD12MChELG94KTtyZXR1cm5bMCxzMChPMCxhMCxCLGIwKSxfeF19dmFyIEIwPXMwKEQsYTAsQixveCk7cmV0dXJuWzAsdjAoTzAsYjApLEIwXX1mdW5jdGlvbiBnMChGLEgpe2Zvcih2YXIgQj1GLGEwPUg7Oyl7aWYoIUIpcmV0dXJuIGEwO3ZhciBtMD1bMCxCWzJdLEJbM10sQls0XSxhMF0sQj1CWzFdLGEwPW0wfX1mdW5jdGlvbiAkMChGLEgsQil7Zm9yKHZhciBhMD1nMChCLDApLG0wPWcwKEgsMCksUDA9YTA7Oyl7aWYoIW0wKXJldHVybiBQMD8tMTowO2lmKCFQMClyZXR1cm4gMTt2YXIgRD1QMFs0XSxPMD1QMFszXSxLMD1QMFsyXSxqMD1tMFs0XSxveD1tMFszXSxiMD1tMFsyXSxfeD1wKHhbMV0sbTBbMV0sUDBbMV0pO2lmKF94IT09MClyZXR1cm4gX3g7dmFyIEIwPXAoRixiMCxLMCk7aWYoQjAhPT0wKXJldHVybiBCMDt2YXIgVD1nMChPMCxEKSxtMD1nMChveCxqMCksUDA9VH19ZnVuY3Rpb24gbjAoRixILEIpe2Zvcih2YXIgYTA9ZzAoQiwwKSxtMD1nMChILDApLFAwPWEwOzspe2lmKCFtMClyZXR1cm4gUDA/MDoxO2lmKCFQMClyZXR1cm4gMDt2YXIgRD1QMFs0XSxPMD1QMFszXSxLMD1QMFsyXSxqMD1tMFs0XSxveD1tMFszXSxiMD1tMFsyXSxfeD1wKHhbMV0sbTBbMV0sUDBbMV0pPT09MD8xOjA7aWYoX3gpe3ZhciBCMD1wKEYsYjAsSzApO2lmKEIwKXt2YXIgVD1nMChPMCxEKSxtMD1nMChveCxqMCksUDA9VDtjb250aW51ZX12YXIgWD1CMH1lbHNlIHZhciBYPV94O3JldHVybiBYfX1mdW5jdGlvbiBpeChGKXtpZighRilyZXR1cm4gMDt2YXIgSD1GWzFdLEI9aXgoRls0XSk7cmV0dXJuKGl4KEgpKzF8MCkrQnwwfWZ1bmN0aW9uIHJ4KEYsSCl7Zm9yKHZhciBCPUYsYTA9SDs7KXtpZighYTApcmV0dXJuIEI7dmFyIG0wPWEwWzNdLFAwPWEwWzJdLEQ9YTBbMV0sQj1bMCxbMCxQMCxtMF0scngoQixhMFs0XSldLGEwPUR9fWZ1bmN0aW9uIGR4KEYpe3JldHVybiByeCgwLEYpfWZ1bmN0aW9uIGF4KEYsSCl7Zm9yKHZhciBCPUgsYTA9Rjs7KXt2YXIgbTA9YShhMCwwKTtpZighbTApcmV0dXJuIEI7dmFyIFAwPW0wWzFdLEQ9bTBbMl0sQj1vKFAwWzFdLFAwWzJdLEIpLGEwPUR9fWZ1bmN0aW9uIFN4KEYpe3JldHVybiBheChGLGkpfWZ1bmN0aW9uIEQwKEYsSCl7aWYoIUYpcmV0dXJuIDA7dmFyIEI9RlsyXSxhMD1GWzFdLG0wPWcwKEZbM10sRls0XSk7cmV0dXJuWzAsWzAsYTAsQl0sZnVuY3Rpb24oUDApe3JldHVybiBEMChtMCxQMCl9XX1mdW5jdGlvbiBOMChGKXt2YXIgSD1nMChGLDApO3JldHVybiBmdW5jdGlvbihCKXtyZXR1cm4gRDAoSCxCKX19ZnVuY3Rpb24gQTAoRixIKXtmb3IodmFyIEI9RixhMD1IOzspe2lmKCFCKXJldHVybiBhMDt2YXIgbTA9WzAsQlsyXSxCWzNdLEJbMV0sYTBdLEI9Qls0XSxhMD1tMH19ZnVuY3Rpb24gWTAoRixIKXtpZighRilyZXR1cm4gMDt2YXIgQj1GWzJdLGEwPUZbMV0sbTA9QTAoRlszXSxGWzRdKTtyZXR1cm5bMCxbMCxhMCxCXSxmdW5jdGlvbihQMCl7cmV0dXJuIFkwKG0wLFAwKX1dfWZ1bmN0aW9uIEMwKEYpe3ZhciBIPUEwKEYsMCk7cmV0dXJuIGZ1bmN0aW9uKEIpe3JldHVybiBZMChILEIpfX1yZXR1cm5bMCxpLGYsTixvLHQwLHQsWSxkMCxFMCwkMCxuMCxpMCxKLFEseDAsTDAsWDAseHgsaXgsZHgsQyxPLEwsTSxDLE8sYzAsbCxBLGQsayxoLGcsaixLLE4wLEMwLGZ1bmN0aW9uKEYsSCl7Zm9yKHZhciBCPUgsYTA9MDs7KXtpZihCKXt2YXIgbTA9Qls0XSxQMD1CWzNdLEQ9QlsyXSxPMD1CWzFdLEswPXAoeFsxXSxELEYpO2lmKEswIT09MCl7aWYoMDw9SzApe3ZhciBCPU8wLGEwPVswLEQsUDAsbTAsYTBdO2NvbnRpbnVlfXZhciBCPW0wO2NvbnRpbnVlfXZhciBqMD1bMCxELFAwLG0wLGEwXX1lbHNlIHZhciBqMD1hMDtyZXR1cm4gZnVuY3Rpb24ob3gpe3JldHVybiBEMChqMCxveCl9fX0sYXgsU3hdfWZ1bmN0aW9uIFVsKHgpe3JldHVyblswLDAsMF19ZnVuY3Rpb24gamwoeCl7cmV0dXJuIHhbMV09MCx4WzJdPTAsMH1mdW5jdGlvbiBEdih4LHIpe3JldHVybiByWzFdPVswLHgsclsxXV0sclsyXT1yWzJdKzF8MCwwfWZ1bmN0aW9uIHphKHgpe3ZhciByPXhbMV07aWYoIXIpcmV0dXJuIDA7dmFyIGU9clsxXTtyZXR1cm4geFsxXT1yWzJdLHhbMl09eFsyXS0xfDAsWzAsZV19ZnVuY3Rpb24gS2EoeCl7dmFyIHI9eFsxXTtyZXR1cm4gcj9bMCxyWzFdXTowfXZhciBrVDA9W0dyLFhaLEpzKDApXTtmdW5jdGlvbiBpWSh4KXtyZXR1cm5bMCwwLDAsMF19ZnVuY3Rpb24gbk8oeCl7cmV0dXJuIHhbMV09MCx4WzJdPTAseFszXT0wLDB9ZnVuY3Rpb24gdU8oeCxyKXt2YXIgZT1bMCx4LDBdLHQ9clszXTtyZXR1cm4gdD8oclsxXT1yWzFdKzF8MCx0WzJdPWUsclszXT1lLDApOihyWzFdPTEsclsyXT1lLHJbM109ZSwwKX1mdW5jdGlvbiBacih4KXt2YXIgcj0xPD14P3g6MSxlPU9sPHI/T2w6cix0PXcxKGUpO3JldHVyblswLHQsMCxlLHRdfWZ1bmN0aW9uIFUxKHgpe3JldHVybiBWYSh4WzFdLDAseFsyXSl9ZnVuY3Rpb24gaU8oeCxyKXtmb3IodmFyIGU9eFsyXSx0PVswLHhbM11dOzspe2lmKHRbMV08KGUrcnwwKSl7dFsxXT0yKnRbMV18MDtjb250aW51ZX1PbDx0WzFdJiYoKGUrcnwwKTw9T2w/dFsxXT1PbDpPeChWWikpO3ZhciB1PXcxKHRbMV0pO2lmKHJZKHhbMV0sMCx1LDAseFsyXSkseFsxXT11LHhbM109dFsxXSwoeFsyXStyfDApPnhbM10pdGhyb3cgcTAoWzAsd3IselpdLDEpO2lmKChlK3J8MCk8PXhbM10pcmV0dXJuIDA7dGhyb3cgcTAoWzAsd3IsS1pdLDEpfX1mdW5jdGlvbiBzdCh4LHIpe3ZhciBlPXhbMl07cmV0dXJuIHhbM108PWUmJmlPKHgsMSksS3IoeFsxXSxlLHIpLHhbMl09ZSsxfDAsMH1mdW5jdGlvbiBmWSh4LHIsZSx0KXt2YXIgdT1lPDA/MTowO2lmKHUpdmFyIGY9dTtlbHNlIHZhciBpPXQ8MD8xOjAsZj1pfHwoKFh4KHIpLXR8MCk8ZT8xOjApO2YmJnkyKFlaKTt2YXIgbz14WzJdK3R8MDtyZXR1cm4geFszXTxvJiZpTyh4LHQpLEZjKHIsZSx4WzFdLHhbMl0sdCkseFsyXT1vLDB9ZnVuY3Rpb24gZk8oeCxyLGUsdCl7cmV0dXJuIGZZKHgsUzIociksZSx0KX1mdW5jdGlvbiB2cih4LHIpe3ZhciBlPVh4KHIpLHQ9eFsyXStlfDA7cmV0dXJuIHhbM108dCYmaU8oeCxlKSxGYyhyLDAseFsxXSx4WzJdLGUpLHhbMl09dCwwfWZ1bmN0aW9uIGNPKHgpe3JldHVybiB4WzJdPT09NT8xMjotNn1mdW5jdGlvbiBjWSh4KXtyZXR1cm5bMCwwLHcxKHgpXX1mdW5jdGlvbiBzWSh4LHIpe3ZhciBlPWN0KHhbMl0pLHQ9eFsxXStyfDAsdT1lPHQ/MTowO2lmKHUpe3ZhciBpPWUqMnwwLGY9dDw9aT9pOnQsbz13MShmKTtyWSh4WzJdLDAsbywwLGUpLHhbMl09bzt2YXIgbD0wfWVsc2UgdmFyIGw9dTtyZXR1cm4gbH1mdW5jdGlvbiBCYSh4LHIpe3JldHVybiBzWSh4LDEpLFVhKHhbMl0seFsxXSxyKSx4WzFdPXhbMV0rMXwwLDB9ZnVuY3Rpb24gQTIoeCxyKXt2YXIgZT1YeChyKTtyZXR1cm4gc1koeCxlKSx6cyhyLDAseFsyXSx4WzFdLGUpLHhbMV09eFsxXStlfDAsMH1mdW5jdGlvbiBvWSh4KXtyZXR1cm4gVmEoeFsyXSwwLHhbMV0pfWZ1bmN0aW9uIHZZKHgpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXN3aXRjaCh4KXtjYXNlIDA6cmV0dXJuIFhGO2Nhc2UgMTpyZXR1cm4gWUY7Y2FzZSAyOnJldHVybiBWRjtjYXNlIDM6cmV0dXJuIHpGO2Nhc2UgNDpyZXR1cm4gS0Y7Y2FzZSA1OnJldHVybiBCRjtkZWZhdWx0OnJldHVybiBXRn1zd2l0Y2goeFswXSl7Y2FzZSAwOnJldHVybiB4WzFdO2Nhc2UgMTpyZXR1cm4geFsxXTtkZWZhdWx0OnJldHVybiBGeChaRixRZCgxLHhbMV0pKX19ZnVuY3Rpb24gc08oeCxyKXtmb3IodmFyIGU9cjs7KXtpZih0eXBlb2YgZT09XCJudW1iZXJcIilyZXR1cm4gMDtzd2l0Y2goZVswXSl7Y2FzZSAwOnZhciB0PWVbMV07QTIoeCxXWik7dmFyIGU9dDtjb250aW51ZTtjYXNlIDE6dmFyIHU9ZVsxXTtBMih4LFpaKTt2YXIgZT11O2NvbnRpbnVlO2Nhc2UgMjp2YXIgaT1lWzFdO0EyKHgsJFopO3ZhciBlPWk7Y29udGludWU7Y2FzZSAzOnZhciBmPWVbMV07QTIoeCxGWik7dmFyIGU9Zjtjb250aW51ZTtjYXNlIDQ6dmFyIG89ZVsxXTtBMih4LFFaKTt2YXIgZT1vO2NvbnRpbnVlO2Nhc2UgNTp2YXIgbD1lWzFdO0EyKHgsR1opO3ZhciBlPWw7Y29udGludWU7Y2FzZSA2OnZhciBkPWVbMV07QTIoeCxxWik7dmFyIGU9ZDtjb250aW51ZTtjYXNlIDc6dmFyIGs9ZVsxXTtBMih4LEhaKTt2YXIgZT1rO2NvbnRpbnVlO2Nhc2UgODp2YXIgaD1lWzJdLGc9ZVsxXTtBMih4LGJaKSxzTyh4LGcpLEEyKHgseCQpO3ZhciBlPWg7Y29udGludWU7Y2FzZSA5OnZhciBBPWVbM10sTj1lWzFdO0EyKHgsciQpLHNPKHgsTiksQTIoeCxlJCk7dmFyIGU9QTtjb250aW51ZTtjYXNlIDEwOnZhciBDPWVbMV07QTIoeCx0JCk7dmFyIGU9Qztjb250aW51ZTtjYXNlIDExOnZhciBPPWVbMV07QTIoeCxuJCk7dmFyIGU9Tztjb250aW51ZTtjYXNlIDEyOnZhciBMPWVbMV07QTIoeCx1JCk7dmFyIGU9TDtjb250aW51ZTtjYXNlIDEzOnZhciBNPWVbMV07QTIoeCxpJCk7dmFyIGU9TTtjb250aW51ZTtkZWZhdWx0OnZhciBWPWVbMV07QTIoeCxmJCk7dmFyIGU9Vjtjb250aW51ZX19fWZ1bmN0aW9uIGIxKHgpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXJldHVybiAwO3N3aXRjaCh4WzBdKXtjYXNlIDA6cmV0dXJuWzAsYjEoeFsxXSldO2Nhc2UgMTpyZXR1cm5bMSxiMSh4WzFdKV07Y2FzZSAyOnJldHVyblsyLGIxKHhbMV0pXTtjYXNlIDM6cmV0dXJuWzMsYjEoeFsxXSldO2Nhc2UgNDpyZXR1cm5bNCxiMSh4WzFdKV07Y2FzZSA1OnJldHVybls1LGIxKHhbMV0pXTtjYXNlIDY6cmV0dXJuWzYsYjEoeFsxXSldO2Nhc2UgNzpyZXR1cm5bNyxiMSh4WzFdKV07Y2FzZSA4OnZhciByPXhbMV07cmV0dXJuWzgscixiMSh4WzJdKV07Y2FzZSA5OnZhciBlPXhbMl0sdD14WzFdO3JldHVybls5LGUsdCxiMSh4WzNdKV07Y2FzZSAxMDpyZXR1cm5bMTAsYjEoeFsxXSldO2Nhc2UgMTE6cmV0dXJuWzExLGIxKHhbMV0pXTtjYXNlIDEyOnJldHVyblsxMixiMSh4WzFdKV07Y2FzZSAxMzpyZXR1cm5bMTMsYjEoeFsxXSldO2RlZmF1bHQ6cmV0dXJuWzE0LGIxKHhbMV0pXX19ZnVuY3Rpb24gUDIoeCl7aWYodHlwZW9mIHghPVwibnVtYmVyXCIpc3dpdGNoKHhbMF0pe2Nhc2UgMDp2YXIgcj1QMih4WzFdKSxlPXJbNF0sdD1yWzNdLHU9clsyXSxpPXJbMV0sZj1mdW5jdGlvbihXeCl7cmV0dXJuIGEodSwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoaSwwKSwwfSxmLHQsZV07Y2FzZSAxOnZhciBvPVAyKHhbMV0pLGw9b1s0XSxkPW9bM10saz1vWzJdLGg9b1sxXSxnPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShrLDApLDB9O3JldHVyblswLGZ1bmN0aW9uKFd4KXtyZXR1cm4gYShoLDApLDB9LGcsZCxsXTtjYXNlIDI6dmFyIEE9UDIoeFsxXSksTj1BWzRdLEM9QVszXSxPPUFbMl0sTD1BWzFdLE09ZnVuY3Rpb24oV3gpe3JldHVybiBhKE8sMCksMH07cmV0dXJuWzAsZnVuY3Rpb24oV3gpe3JldHVybiBhKEwsMCksMH0sTSxDLE5dO2Nhc2UgMzp2YXIgVj1QMih4WzFdKSx6PVZbNF0sWT1WWzNdLHQwPVZbMl0saTA9VlsxXSxqPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYSh0MCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoaTAsMCksMH0saixZLHpdO2Nhc2UgNDp2YXIgSz1QMih4WzFdKSxKPUtbNF0sUT1LWzNdLHgwPUtbMl0sJD1LWzFdLGYwPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYSh4MCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoJCwwKSwwfSxmMCxRLEpdO2Nhc2UgNTp2YXIgczA9UDIoeFsxXSksdjA9czBbNF0sbzA9czBbM10sYzA9czBbMl0sZDA9czBbMV0sRTA9ZnVuY3Rpb24oV3gpe3JldHVybiBhKGMwLDApLDB9O3JldHVyblswLGZ1bmN0aW9uKFd4KXtyZXR1cm4gYShkMCwwKSwwfSxFMCxvMCx2MF07Y2FzZSA2OnZhciBMMD1QMih4WzFdKSxYMD1MMFs0XSx4eD1MMFszXSxnMD1MMFsyXSwkMD1MMFsxXSxuMD1mdW5jdGlvbihXeCl7cmV0dXJuIGEoZzAsMCksMH07cmV0dXJuWzAsZnVuY3Rpb24oV3gpe3JldHVybiBhKCQwLDApLDB9LG4wLHh4LFgwXTtjYXNlIDc6dmFyIGl4PVAyKHhbMV0pLHJ4PWl4WzRdLGR4PWl4WzNdLGF4PWl4WzJdLFN4PWl4WzFdLEQwPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShheCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoU3gsMCksMH0sRDAsZHgscnhdO2Nhc2UgODp2YXIgTjA9UDIoeFsyXSksQTA9TjBbNF0sWTA9TjBbM10sQzA9TjBbMl0sRj1OMFsxXSxIPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShDMCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoRiwwKSwwfSxILFkwLEEwXTtjYXNlIDk6dmFyIEI9eFsyXSxhMD14WzFdLG0wPVAyKHhbM10pLFAwPW0wWzRdLEQ9bTBbM10sTzA9bTBbMl0sSzA9bTBbMV0sajA9UDIoczIoYjEoYTApLEIpKSxveD1qMFs0XSxiMD1qMFszXSxfeD1qMFsyXSxCMD1qMFsxXSxUPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShveCwwKSxhKFAwLDApLDB9LFg9ZnVuY3Rpb24oV3gpe3JldHVybiBhKEQsMCksYShiMCwwKSwwfSxGMD1mdW5jdGlvbihXeCl7cmV0dXJuIGEoX3gsMCksYShPMCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoSzAsMCksYShCMCwwKSwwfSxGMCxYLFRdO2Nhc2UgMTA6dmFyIHN4PVAyKHhbMV0pLGV4PXN4WzRdLFUwPXN4WzNdLE54PXN4WzJdLG14PXN4WzFdLEJ4PWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShOeCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEobXgsMCksMH0sQngsVTAsZXhdO2Nhc2UgMTE6dmFyIEd4PVAyKHhbMV0pLEowPUd4WzRdLGJ4PUd4WzNdLEp4PUd4WzJdLFcwPUd4WzFdLG5yPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShKeCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoVzAsMCksMH0sbnIsYngsSjBdO2Nhc2UgMTI6dmFyIFYwPVAyKHhbMV0pLFNyPVYwWzRdLFVyPVYwWzNdLGx4PVYwWzJdLGJyPVYwWzFdLGUyPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShseCwwKSwwfTtyZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIGEoYnIsMCksMH0sZTIsVXIsU3JdO2Nhc2UgMTM6dmFyIGgxPVAyKHhbMV0pLElyPWgxWzRdLFIxPWgxWzNdLF89aDFbMl0sYj1oMVsxXSxyMD1mdW5jdGlvbihXeCl7cmV0dXJuIGEoSXIsMCksMH0sUzA9ZnVuY3Rpb24oV3gpe3JldHVybiBhKFIxLDApLDB9LEc9ZnVuY3Rpb24oV3gpe3JldHVybiBhKF8sMCksMH07cmV0dXJuWzAsZnVuY3Rpb24oV3gpe3JldHVybiBhKGIsMCksMH0sRyxTMCxyMF07ZGVmYXVsdDp2YXIgaDA9UDIoeFsxXSksejA9aDBbNF0sTTA9aDBbM10sdXg9aDBbMl0sWng9aDBbMV0sTHg9ZnVuY3Rpb24oV3gpe3JldHVybiBhKHowLDApLDB9LHRyPWZ1bmN0aW9uKFd4KXtyZXR1cm4gYShNMCwwKSwwfSwkeD1mdW5jdGlvbihXeCl7cmV0dXJuIGEodXgsMCksMH07cmV0dXJuWzAsZnVuY3Rpb24oV3gpe3JldHVybiBhKFp4LDApLDB9LCR4LHRyLEx4XX1mdW5jdGlvbiB4cihXeCl7cmV0dXJuIDB9ZnVuY3Rpb24gengoV3gpe3JldHVybiAwfWZ1bmN0aW9uIE9yKFd4KXtyZXR1cm4gMH1yZXR1cm5bMCxmdW5jdGlvbihXeCl7cmV0dXJuIDB9LE9yLHp4LHhyXX1mdW5jdGlvbiBzMih4LHIpe3ZhciBlPTA7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpe2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXJldHVybiAwO3N3aXRjaChyWzBdKXtjYXNlIDEwOmJyZWFrO2Nhc2UgMTE6ZT0xO2JyZWFrO2Nhc2UgMTI6ZT0yO2JyZWFrO2Nhc2UgMTM6ZT0zO2JyZWFrO2Nhc2UgMTQ6ZT00O2JyZWFrO2Nhc2UgODplPTU7YnJlYWs7Y2FzZSA5OmU9NjticmVhaztkZWZhdWx0OnRocm93IHEwKFswLHdyLGMkXSwxKX19ZWxzZSBzd2l0Y2goeFswXSl7Y2FzZSAwOnZhciB0PTAsdT14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXQ9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDA6cmV0dXJuWzAsczIodSxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDp0PTF9dCYmKGU9Nyk7YnJlYWs7Y2FzZSAxOnZhciBpPTAsZj14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKWk9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDE6cmV0dXJuWzEsczIoZixyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDppPTF9aSYmKGU9Nyk7YnJlYWs7Y2FzZSAyOnZhciBvPTAsbD14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKW89MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDI6cmV0dXJuWzIsczIobCxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpvPTF9byYmKGU9Nyk7YnJlYWs7Y2FzZSAzOnZhciBkPTAsaz14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKWQ9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDM6cmV0dXJuWzMsczIoayxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpkPTF9ZCYmKGU9Nyk7YnJlYWs7Y2FzZSA0OnZhciBoPTAsZz14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKWg9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDQ6cmV0dXJuWzQsczIoZyxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpoPTF9aCYmKGU9Nyk7YnJlYWs7Y2FzZSA1OnZhciBBPTAsTj14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKUE9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDU6cmV0dXJuWzUsczIoTixyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpBPTF9QSYmKGU9Nyk7YnJlYWs7Y2FzZSA2OnZhciBDPTAsTz14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKUM9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDY6cmV0dXJuWzYsczIoTyxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpDPTF9QyYmKGU9Nyk7YnJlYWs7Y2FzZSA3OnZhciBMPTAsTT14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKUw9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDc6cmV0dXJuWzcsczIoTSxyWzFdKV07Y2FzZSA4OmU9NTticmVhaztjYXNlIDk6ZT02O2JyZWFrO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpMPTF9TCYmKGU9Nyk7YnJlYWs7Y2FzZSA4OnZhciBWPTAsej14WzJdLFk9eFsxXTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIilWPTE7ZWxzZSBzd2l0Y2goclswXSl7Y2FzZSA4OnZhciB0MD1yWzFdLGkwPXMyKHosclsyXSk7cmV0dXJuWzgsczIoWSx0MCksaTBdO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpWPTF9aWYoVil0aHJvdyBxMChbMCx3cixoJF0sMSk7YnJlYWs7Y2FzZSA5OnZhciBqPTAsSz14WzNdLEo9eFsyXSxRPXhbMV07aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpaj0xO2Vsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgODplPTU7YnJlYWs7Y2FzZSA5OnZhciB4MD1yWzNdLCQ9clsyXSxmMD1yWzFdLHMwPVAyKHMyKGIxKEopLGYwKSksdjA9czBbNF07cmV0dXJuIGEoczBbMl0sMCksYSh2MCwwKSxbOSxRLCQsczIoSyx4MCldO2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDplPTQ7YnJlYWs7ZGVmYXVsdDpqPTF9aWYoail0aHJvdyBxMChbMCx3cix3JF0sMSk7YnJlYWs7Y2FzZSAxMDp2YXIgbzA9eFsxXTtpZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTEwKXJldHVyblsxMCxzMihvMCxyWzFdKV07dGhyb3cgcTAoWzAsd3IscyRdLDEpO2Nhc2UgMTE6dmFyIGMwPTAsZDA9eFsxXTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIiljMD0xO2Vsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTpyZXR1cm5bMTEsczIoZDAsclsxXSldO2RlZmF1bHQ6YzA9MX1pZihjMCl0aHJvdyBxMChbMCx3cix2JF0sMSk7YnJlYWs7Y2FzZSAxMjp2YXIgRTA9MCxMMD14WzFdO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKUUwPTE7ZWxzZSBzd2l0Y2goclswXSl7Y2FzZSAxMDpicmVhaztjYXNlIDExOmU9MTticmVhaztjYXNlIDEyOnJldHVyblsxMixzMihMMCxyWzFdKV07ZGVmYXVsdDpFMD0xfWlmKEUwKXRocm93IHEwKFswLHdyLGwkXSwxKTticmVhaztjYXNlIDEzOnZhciBYMD0wLHh4PXhbMV07aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpWDA9MTtlbHNlIHN3aXRjaChyWzBdKXtjYXNlIDEwOmJyZWFrO2Nhc2UgMTE6ZT0xO2JyZWFrO2Nhc2UgMTI6ZT0yO2JyZWFrO2Nhc2UgMTM6cmV0dXJuWzEzLHMyKHh4LHJbMV0pXTtkZWZhdWx0OlgwPTF9aWYoWDApdGhyb3cgcTAoWzAsd3IsZCRdLDEpO2JyZWFrO2RlZmF1bHQ6dmFyIGcwPTAsJDA9eFsxXTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIilnMD0xO2Vsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgMTA6YnJlYWs7Y2FzZSAxMTplPTE7YnJlYWs7Y2FzZSAxMjplPTI7YnJlYWs7Y2FzZSAxMzplPTM7YnJlYWs7Y2FzZSAxNDpyZXR1cm5bMTQsczIoJDAsclsxXSldO2RlZmF1bHQ6ZzA9MX1pZihnMCl0aHJvdyBxMChbMCx3cixtJF0sMSl9c3dpdGNoKGUpe2Nhc2UgMDp0aHJvdyBxMChbMCx3cixvJF0sMSk7Y2FzZSAxOnRocm93IHEwKFswLHdyLGEkXSwxKTtjYXNlIDI6dGhyb3cgcTAoWzAsd3IscCRdLDEpO2Nhc2UgMzp0aHJvdyBxMChbMCx3cix5JF0sMSk7Y2FzZSA0OnRocm93IHEwKFswLHdyLGskXSwxKTtjYXNlIDU6dGhyb3cgcTAoWzAsd3IsXyRdLDEpO2Nhc2UgNjp0aHJvdyBxMChbMCx3cixUJF0sMSk7ZGVmYXVsdDp0aHJvdyBxMChbMCx3cixTJF0sMSl9fXZhciBrMj1bR3IsJEYsSnMoMCldO2Z1bmN0aW9uIHFkKHgscil7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuWzAsMCxyXTtpZih4WzBdPT09MClyZXR1cm5bMCxbMCx4WzFdLHhbMl1dLHJdO2lmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MilyZXR1cm5bMCxbMSx4WzFdXSxyWzFdXTt0aHJvdyBxMChrMiwxKX1mdW5jdGlvbiBKbCh4LHIsZSl7dmFyIHQ9cWQoeCxlKTtpZih0eXBlb2YgciE9XCJudW1iZXJcIilyZXR1cm5bMCx0WzFdLFswLHJbMV1dLHRbMl1dO2lmKCFyKXJldHVyblswLHRbMV0sMCx0WzJdXTt2YXIgdT10WzJdO2lmKHR5cGVvZiB1IT1cIm51bWJlclwiJiZ1WzBdPT09MilyZXR1cm5bMCx0WzFdLDEsdVsxXV07dGhyb3cgcTAoazIsMSl9ZnVuY3Rpb24gemUoeCxyLGUpe3ZhciB0PXMxKHIsZSk7cmV0dXJuWzAsWzIzLHgsdFsxXV0sdFsyXV19ZnVuY3Rpb24gczEoeCxyKXtpZih0eXBlb2YgeD09XCJudW1iZXJcIilyZXR1cm5bMCwwLHJdO3N3aXRjaCh4WzBdKXtjYXNlIDA6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0wKXt2YXIgZT1zMSh4WzFdLHJbMV0pO3JldHVyblswLFswLGVbMV1dLGVbMl1dfWJyZWFrO2Nhc2UgMTppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTApe3ZhciB0PXMxKHhbMV0sclsxXSk7cmV0dXJuWzAsWzEsdFsxXV0sdFsyXV19YnJlYWs7Y2FzZSAyOnZhciB1PXhbMl0saT1xZCh4WzFdLHIpLGY9aVsyXSxvPWlbMV07aWYodHlwZW9mIGYhPVwibnVtYmVyXCImJmZbMF09PT0xKXt2YXIgbD1zMSh1LGZbMV0pO3JldHVyblswLFsyLG8sbFsxXV0sbFsyXV19dGhyb3cgcTAoazIsMSk7Y2FzZSAzOnZhciBkPXhbMl0saz1xZCh4WzFdLHIpLGg9a1syXSxnPWtbMV07aWYodHlwZW9mIGghPVwibnVtYmVyXCImJmhbMF09PT0xKXt2YXIgQT1zMShkLGhbMV0pO3JldHVyblswLFszLGcsQVsxXV0sQVsyXV19dGhyb3cgcTAoazIsMSk7Y2FzZSA0OnZhciBOPXhbNF0sQz14WzFdLE89SmwoeFsyXSx4WzNdLHIpLEw9T1szXSxNPU9bMV07aWYodHlwZW9mIEwhPVwibnVtYmVyXCImJkxbMF09PT0yKXt2YXIgVj1PWzJdLHo9czEoTixMWzFdKTtyZXR1cm5bMCxbNCxDLE0sVix6WzFdXSx6WzJdXX10aHJvdyBxMChrMiwxKTtjYXNlIDU6dmFyIFk9eFs0XSx0MD14WzFdLGkwPUpsKHhbMl0seFszXSxyKSxqPWkwWzNdLEs9aTBbMV07aWYodHlwZW9mIGohPVwibnVtYmVyXCImJmpbMF09PT0zKXt2YXIgSj1pMFsyXSxRPXMxKFksalsxXSk7cmV0dXJuWzAsWzUsdDAsSyxKLFFbMV1dLFFbMl1dfXRocm93IHEwKGsyLDEpO2Nhc2UgNjp2YXIgeDA9eFs0XSwkPXhbMV0sZjA9SmwoeFsyXSx4WzNdLHIpLHMwPWYwWzNdLHYwPWYwWzFdO2lmKHR5cGVvZiBzMCE9XCJudW1iZXJcIiYmczBbMF09PT00KXt2YXIgbzA9ZjBbMl0sYzA9czEoeDAsczBbMV0pO3JldHVyblswLFs2LCQsdjAsbzAsYzBbMV1dLGMwWzJdXX10aHJvdyBxMChrMiwxKTtjYXNlIDc6dmFyIGQwPXhbNF0sRTA9eFsxXSxMMD1KbCh4WzJdLHhbM10sciksWDA9TDBbM10seHg9TDBbMV07aWYodHlwZW9mIFgwIT1cIm51bWJlclwiJiZYMFswXT09PTUpe3ZhciBnMD1MMFsyXSwkMD1zMShkMCxYMFsxXSk7cmV0dXJuWzAsWzcsRTAseHgsZzAsJDBbMV1dLCQwWzJdXX10aHJvdyBxMChrMiwxKTtjYXNlIDg6dmFyIG4wPXhbNF0saXg9eFsxXSxyeD1KbCh4WzJdLHhbM10sciksZHg9cnhbM10sYXg9cnhbMV07aWYodHlwZW9mIGR4IT1cIm51bWJlclwiJiZkeFswXT09PTYpe3ZhciBTeD1yeFsyXSxEMD1zMShuMCxkeFsxXSk7cmV0dXJuWzAsWzgsaXgsYXgsU3gsRDBbMV1dLEQwWzJdXX10aHJvdyBxMChrMiwxKTtjYXNlIDk6dmFyIE4wPXhbMl0sQTA9cWQoeFsxXSxyKSxZMD1BMFsyXSxDMD1BMFsxXTtpZih0eXBlb2YgWTAhPVwibnVtYmVyXCImJlkwWzBdPT09Nyl7dmFyIEY9czEoTjAsWTBbMV0pO3JldHVyblswLFs5LEMwLEZbMV1dLEZbMl1dfXRocm93IHEwKGsyLDEpO2Nhc2UgMTA6dmFyIEg9czEoeFsxXSxyKTtyZXR1cm5bMCxbMTAsSFsxXV0sSFsyXV07Y2FzZSAxMTp2YXIgQj14WzFdLGEwPXMxKHhbMl0scik7cmV0dXJuWzAsWzExLEIsYTBbMV1dLGEwWzJdXTtjYXNlIDEyOnZhciBtMD14WzFdLFAwPXMxKHhbMl0scik7cmV0dXJuWzAsWzEyLG0wLFAwWzFdXSxQMFsyXV07Y2FzZSAxMzppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTgpe3ZhciBEPXJbMV0sTzA9clsyXSxLMD14WzNdLGowPXhbMV07aWYoUGwoWzAseFsyXV0sWzAsRF0pKXRocm93IHEwKGsyLDEpO3ZhciBveD1zMShLMCxPMCk7cmV0dXJuWzAsWzEzLGowLEQsb3hbMV1dLG94WzJdXX1icmVhaztjYXNlIDE0OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09OSl7dmFyIGIwPXJbMV0sX3g9clszXSxCMD14WzNdLFQ9eFsyXSxYPXhbMV0sRjA9WzAsSTEoYjApXTtpZihQbChbMCxJMShUKV0sRjApKXRocm93IHEwKGsyLDEpO3ZhciBzeD1zMShCMCxJMShfeCkpO3JldHVyblswLFsxNCxYLGIwLHN4WzFdXSxzeFsyXV19YnJlYWs7Y2FzZSAxNTppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTEwKXt2YXIgZXg9czEoeFsxXSxyWzFdKTtyZXR1cm5bMCxbMTUsZXhbMV1dLGV4WzJdXX1icmVhaztjYXNlIDE2OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTEpe3ZhciBVMD1zMSh4WzFdLHJbMV0pO3JldHVyblswLFsxNixVMFsxXV0sVTBbMl1dfWJyZWFrO2Nhc2UgMTc6dmFyIE54PXhbMV0sbXg9czEoeFsyXSxyKTtyZXR1cm5bMCxbMTcsTngsbXhbMV1dLG14WzJdXTtjYXNlIDE4OnZhciBCeD14WzJdLEd4PXhbMV07aWYoR3hbMF09PT0wKXt2YXIgSjA9R3hbMV0sYng9SjBbMl0sSng9czEoSjBbMV0sciksVzA9SnhbMV0sbnI9czEoQngsSnhbMl0pO3JldHVyblswLFsxOCxbMCxbMCxXMCxieF1dLG5yWzFdXSxuclsyXV19dmFyIFYwPUd4WzFdLFNyPVYwWzJdLFVyPXMxKFYwWzFdLHIpLGx4PVVyWzFdLGJyPXMxKEJ4LFVyWzJdKTtyZXR1cm5bMCxbMTgsWzEsWzAsbHgsU3JdXSxiclsxXV0sYnJbMl1dO2Nhc2UgMTk6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xMyl7dmFyIGUyPXMxKHhbMV0sclsxXSk7cmV0dXJuWzAsWzE5LGUyWzFdXSxlMlsyXV19YnJlYWs7Y2FzZSAyMDppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTEpe3ZhciBoMT14WzJdLElyPXhbMV0sUjE9czEoeFszXSxyWzFdKTtyZXR1cm5bMCxbMjAsSXIsaDEsUjFbMV1dLFIxWzJdXX1icmVhaztjYXNlIDIxOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09Mil7dmFyIF89eFsxXSxiPXMxKHhbMl0sclsxXSk7cmV0dXJuWzAsWzIxLF8sYlsxXV0sYlsyXV19YnJlYWs7Y2FzZSAyMzp2YXIgcjA9eFsyXSxTMD14WzFdO2lmKHR5cGVvZiBTMCE9XCJudW1iZXJcIilzd2l0Y2goUzBbMF0pe2Nhc2UgMDpyZXR1cm4gemUoUzAscjAscik7Y2FzZSAxOnJldHVybiB6ZShTMCxyMCxyKTtjYXNlIDI6cmV0dXJuIHplKFMwLHIwLHIpO2Nhc2UgMzpyZXR1cm4gemUoUzAscjAscik7Y2FzZSA0OnJldHVybiB6ZShTMCxyMCxyKTtjYXNlIDU6cmV0dXJuIHplKFMwLHIwLHIpO2Nhc2UgNjpyZXR1cm4gemUoUzAscjAscik7Y2FzZSA3OnJldHVybiB6ZShTMCxyMCxyKTtjYXNlIDg6cmV0dXJuIHplKFs4LFMwWzFdLFMwWzJdXSxyMCxyKTtjYXNlIDk6dmFyIEc9UzBbMV0saDA9YWUoUzBbMl0scjAsciksejA9aDBbMl07cmV0dXJuWzAsWzIzLFs5LEcsaDBbMV1dLHowWzFdXSx6MFsyXV07Y2FzZSAxMDpyZXR1cm4gemUoUzAscjAscik7ZGVmYXVsdDpyZXR1cm4gemUoUzAscjAscil9c3dpdGNoKFMwKXtjYXNlIDA6cmV0dXJuIHplKFMwLHIwLHIpO2Nhc2UgMTpyZXR1cm4gemUoUzAscjAscik7Y2FzZSAyOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTQpe3ZhciBNMD1zMShyMCxyWzFdKTtyZXR1cm5bMCxbMjMsMixNMFsxXV0sTTBbMl1dfXRocm93IHEwKGsyLDEpO2RlZmF1bHQ6cmV0dXJuIHplKFMwLHIwLHIpfX10aHJvdyBxMChrMiwxKX1mdW5jdGlvbiBhZSh4LHIsZSl7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuWzAsMCxzMShyLGUpXTtzd2l0Y2goeFswXSl7Y2FzZSAwOmlmKHR5cGVvZiBlIT1cIm51bWJlclwiJiZlWzBdPT09MCl7dmFyIHQ9YWUoeFsxXSxyLGVbMV0pO3JldHVyblswLFswLHRbMV1dLHRbMl1dfWJyZWFrO2Nhc2UgMTppZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTEpe3ZhciB1PWFlKHhbMV0scixlWzFdKTtyZXR1cm5bMCxbMSx1WzFdXSx1WzJdXX1icmVhaztjYXNlIDI6aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0yKXt2YXIgaT1hZSh4WzFdLHIsZVsxXSk7cmV0dXJuWzAsWzIsaVsxXV0saVsyXV19YnJlYWs7Y2FzZSAzOmlmKHR5cGVvZiBlIT1cIm51bWJlclwiJiZlWzBdPT09Myl7dmFyIGY9YWUoeFsxXSxyLGVbMV0pO3JldHVyblswLFszLGZbMV1dLGZbMl1dfWJyZWFrO2Nhc2UgNDppZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTQpe3ZhciBvPWFlKHhbMV0scixlWzFdKTtyZXR1cm5bMCxbNCxvWzFdXSxvWzJdXX1icmVhaztjYXNlIDU6aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT01KXt2YXIgbD1hZSh4WzFdLHIsZVsxXSk7cmV0dXJuWzAsWzUsbFsxXV0sbFsyXV19YnJlYWs7Y2FzZSA2OmlmKHR5cGVvZiBlIT1cIm51bWJlclwiJiZlWzBdPT09Nil7dmFyIGQ9YWUoeFsxXSxyLGVbMV0pO3JldHVyblswLFs2LGRbMV1dLGRbMl1dfWJyZWFrO2Nhc2UgNzppZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTcpe3ZhciBrPWFlKHhbMV0scixlWzFdKTtyZXR1cm5bMCxbNyxrWzFdXSxrWzJdXX1icmVhaztjYXNlIDg6aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT04KXt2YXIgaD1lWzFdLGc9ZVsyXSxBPXhbMl07aWYoUGwoWzAseFsxXV0sWzAsaF0pKXRocm93IHEwKGsyLDEpO3ZhciBOPWFlKEEscixnKTtyZXR1cm5bMCxbOCxoLE5bMV1dLE5bMl1dfWJyZWFrO2Nhc2UgOTppZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTkpe3ZhciBDPWVbMl0sTz1lWzFdLEw9ZVszXSxNPXhbM10sVj14WzJdLHo9eFsxXSxZPVswLEkxKE8pXTtpZihQbChbMCxJMSh6KV0sWSkpdGhyb3cgcTAoazIsMSk7dmFyIHQwPVswLEkxKEMpXTtpZihQbChbMCxJMShWKV0sdDApKXRocm93IHEwKGsyLDEpO3ZhciBpMD1QMihzMihiMShPKSxDKSksaj1pMFs0XTthKGkwWzJdLDApLGEoaiwwKTt2YXIgSz1hZShJMShNKSxyLEwpLEo9S1syXTtyZXR1cm5bMCxbOSxPLEMsYjEoS1sxXSldLEpdfWJyZWFrO2Nhc2UgMTA6aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0xMCl7dmFyIFE9YWUoeFsxXSxyLGVbMV0pO3JldHVyblswLFsxMCxRWzFdXSxRWzJdXX1icmVhaztjYXNlIDExOmlmKHR5cGVvZiBlIT1cIm51bWJlclwiJiZlWzBdPT09MTEpe3ZhciB4MD1hZSh4WzFdLHIsZVsxXSk7cmV0dXJuWzAsWzExLHgwWzFdXSx4MFsyXV19YnJlYWs7Y2FzZSAxMzppZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTEzKXt2YXIgJD1hZSh4WzFdLHIsZVsxXSk7cmV0dXJuWzAsWzEzLCRbMV1dLCRbMl1dfWJyZWFrO2Nhc2UgMTQ6aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0xNCl7dmFyIGYwPWFlKHhbMV0scixlWzFdKTtyZXR1cm5bMCxbMTQsZjBbMV1dLGYwWzJdXX1icmVha310aHJvdyBxMChrMiwxKX1mdW5jdGlvbiBLZSh4LHIsZSl7dmFyIHQ9WHgoZSksdT0wPD1yP3g6MCxpPVpkKHIpO2lmKGk8PXQpcmV0dXJuIGU7dmFyIGY9dT09PTI/NDg6MzIsbz1NdihpLGYpO3N3aXRjaCh1KXtjYXNlIDA6enMoZSwwLG8sMCx0KTticmVhaztjYXNlIDE6enMoZSwwLG8saS10fDAsdCk7YnJlYWs7ZGVmYXVsdDp2YXIgbD0wO2lmKDA8dCl7dmFyIGQ9MDtOMShlLDApIT09NDMmJk4xKGUsMCkhPT00NSYmTjEoZSwwKSE9PTMyJiYobD0xLGQ9MSksZHx8KFVhKG8sMCxOMShlLDApKSx6cyhlLDEsbywoaS10fDApKzF8MCx0LTF8MCkpfWVsc2UgbD0xO2lmKGwpe3ZhciBrPTA7aWYoMTx0JiZOMShlLDApPT09NDgpe3ZhciBoPTA7KEFmPT09TjEoZSwxKXx8TjEoZSwxKT09PTg4KSYmKGg9MSksaCYmKFVhKG8sMSxOMShlLDEpKSx6cyhlLDIsbywoaS10fDApKzJ8MCx0LTJ8MCksaz0xKX1rfHx6cyhlLDAsbyxpLXR8MCx0KX19cmV0dXJuIFMyKG8pfWZ1bmN0aW9uIFdhKHgscil7dmFyIGU9WmQoeCksdD1YeChyKSx1PU4xKHIsMCksaT0wO2lmKDU4PD11KTcxPD11PzU+PXUrWDU+Pj4wJiYoaT0xKTo2NTw9dSYmKGk9MSk7ZWxzZXt2YXIgZj0wO2lmKHU9PT0zMilmPTE7ZWxzZSBpZig0Mzw9dSlzd2l0Y2godStQOXwwKXtjYXNlIDU6aWYodDwoZSsyfDApJiYxPHQpe3ZhciBvPTA7aWYoQWYhPT1OMShyLDEpJiZOMShyLDEpIT09ODgmJihvPTEpLCFvKXt2YXIgbD1NdihlKzJ8MCw0OCk7cmV0dXJuIFVhKGwsMSxOMShyLDEpKSx6cyhyLDIsbCwoZS10fDApKzR8MCx0LTJ8MCksUzIobCl9fWk9MTticmVhaztjYXNlIDA6Y2FzZSAyOmY9MTticmVhaztjYXNlIDE6Y2FzZSAzOmNhc2UgNDpicmVhaztkZWZhdWx0Omk9MX1pZihmJiZ0PChlKzF8MCkpe3ZhciBkPU12KGUrMXwwLDQ4KTtyZXR1cm4gVWEoZCwwLHUpLHpzKHIsMSxkLChlLXR8MCkrMnwwLHQtMXwwKSxTMihkKX19aWYoaSYmdDxlKXt2YXIgaz1NdihlLDQ4KTtyZXR1cm4genMociwwLGssZS10fDAsdCksUzIoayl9cmV0dXJuIHJ9ZnVuY3Rpb24gaFQwKHgpe2Zvcih2YXIgcj0wLGU9WHgoeCk7Oyl7aWYoZTw9cil2YXIgdD14O2Vsc2V7dmFyIHU9ZngoeCxyKStLTXwwLGk9MDtpZig1OTx1Pj4+MD8zMzx1K3hfPj4+MCYmKGk9MSk6dT09PTImJihpPTEpLCFpKXt2YXIgcj1yKzF8MDtjb250aW51ZX12YXIgZj0kYyh4KSxvPVswLDBdLGw9Y3QoZiktMXwwLGQ9MDtpZihsPj0wKWZvcih2YXIgaz1kOzspe3ZhciBoPW9lKGYsayksZz0wO2lmKDMyPD1oKXt2YXIgQT1oLTM0fDAsTj0wO2lmKDU4PEE+Pj4wPzkzPkEmJihOPTEpOjU2PEEtMT4+PjA/Zz0xOk49MSxOKXt2YXIgQz0xO2c9Mn19ZWxzZSAxMTw9aD9oPT09MTMmJihnPTEpOjg8PWgmJihnPTEpO3N3aXRjaChnKXtjYXNlIDA6dmFyIEM9NDticmVhaztjYXNlIDE6dmFyIEM9MjticmVha31vWzFdPW9bMV0rQ3wwO3ZhciBPPWsrMXwwO2lmKGwhPT1rKXt2YXIgaz1PO2NvbnRpbnVlfWJyZWFrfWlmKG9bMV09PT1jdChmKSl2YXIgTD1iWChmKTtlbHNle3ZhciBNPXcxKG9bMV0pO29bMV09MDt2YXIgVj1jdChmKS0xfDAsej0wO2lmKFY+PTApZm9yKHZhciBZPXo7Oyl7dmFyIHQwPW9lKGYsWSksaTA9MDtpZigzNTw9dDApdDA9PT05Mj9pMD0yOllyPD10MD9pMD0xOmkwPTM7ZWxzZSBpZigzMjw9dDApMzQ8PXQwP2kwPTI6aTA9MztlbHNlIGlmKDE0PD10MClpMD0xO2Vsc2Ugc3dpdGNoKHQwKXtjYXNlIDg6S3IoTSxvWzFdLDkyKSxvWzFdKyssS3IoTSxvWzFdLDk4KTticmVhaztjYXNlIDk6S3IoTSxvWzFdLDkyKSxvWzFdKyssS3IoTSxvWzFdLE5zKTticmVhaztjYXNlIDEwOktyKE0sb1sxXSw5Miksb1sxXSsrLEtyKE0sb1sxXSxWMSk7YnJlYWs7Y2FzZSAxMzpLcihNLG9bMV0sOTIpLG9bMV0rKyxLcihNLG9bMV0sdXQpO2JyZWFrO2RlZmF1bHQ6aTA9MX1zd2l0Y2goaTApe2Nhc2UgMTpLcihNLG9bMV0sOTIpLG9bMV0rKyxLcihNLG9bMV0sNDgrKHQwL2l0fDApfDApLG9bMV0rKyxLcihNLG9bMV0sNDgrKCh0MC8xMHwwKSUxMHwwKXwwKSxvWzFdKyssS3IoTSxvWzFdLDQ4Kyh0MCUxMHwwKXwwKTticmVhaztjYXNlIDI6S3IoTSxvWzFdLDkyKSxvWzFdKyssS3IoTSxvWzFdLHQwKTticmVhaztjYXNlIDM6S3IoTSxvWzFdLHQwKTticmVha31vWzFdKys7dmFyIGo9WSsxfDA7aWYoViE9PVkpe3ZhciBZPWo7Y29udGludWV9YnJlYWt9dmFyIEw9TX12YXIgdD1TMihMKX12YXIgSz1YeCh0KSxKPU12KEsrMnwwLDM0KTtyZXR1cm4gRmModCwwLEosMSxLKSxTMihKKX19ZnVuY3Rpb24gYVkoeCxyKXt2YXIgZT1aZChyKSx0PVkkWzFdO3N3aXRjaCh4WzJdKXtjYXNlIDA6dmFyIHU9SmY7YnJlYWs7Y2FzZSAxOnZhciB1PUl0O2JyZWFrO2Nhc2UgMjp2YXIgdT02OTticmVhaztjYXNlIDM6dmFyIHU9Zm47YnJlYWs7Y2FzZSA0OnZhciB1PTcxO2JyZWFrO2Nhc2UgNTp2YXIgdT10O2JyZWFrO2Nhc2UgNjp2YXIgdT1EdDticmVhaztjYXNlIDc6dmFyIHU9NzI7YnJlYWs7ZGVmYXVsdDp2YXIgdT03MH12YXIgaT1jWSgxNik7c3dpdGNoKEJhKGksMzcpLHhbMV0pe2Nhc2UgMDpicmVhaztjYXNlIDE6QmEoaSw0Myk7YnJlYWs7ZGVmYXVsdDpCYShpLDMyKX1yZXR1cm4gODw9eFsyXSYmQmEoaSwzNSksQmEoaSw0NiksQTIoaSxreCtlKSxCYShpLHUpLG9ZKGkpfWZ1bmN0aW9uIEhkKHgscil7aWYoMTM+eClyZXR1cm4gcjt2YXIgZT1bMCwwXSx0PVh4KHIpLTF8MCx1PTA7aWYodD49MClmb3IodmFyIGk9dTs7KXs5Pj1meChyLGkpK1kxPj4+MCYmZVsxXSsrO3ZhciBmPWkrMXwwO2lmKHQhPT1pKXt2YXIgaT1mO2NvbnRpbnVlfWJyZWFrfXZhciBvPWVbMV0sbD13MShYeChyKSsoKG8tMXwwKS8zfDApfDApLGQ9WzAsMF07ZnVuY3Rpb24gayhMKXtyZXR1cm4gVWEobCxkWzFdLEwpLGRbMV0rKywwfXZhciBoPVswLCgoby0xfDApJTN8MCkrMXwwXSxnPVh4KHIpLTF8MCxBPTA7aWYoZz49MClmb3IodmFyIE49QTs7KXt2YXIgQz1meChyLE4pOzk8QytZMT4+PjB8fChoWzFdPT09MCYmKGsoOTUpLGhbMV09MyksaFsxXSs9LTEpLGsoQyk7dmFyIE89TisxfDA7aWYoZyE9PU4pe3ZhciBOPU87Y29udGludWV9YnJlYWt9cmV0dXJuIFMyKGwpfWZ1bmN0aW9uIF9UMCh4LHIpe3N3aXRjaCh4KXtjYXNlIDE6dmFyIGU9QUY7YnJlYWs7Y2FzZSAyOnZhciBlPVBGO2JyZWFrO2Nhc2UgNDp2YXIgZT1ORjticmVhaztjYXNlIDU6dmFyIGU9Q0Y7YnJlYWs7Y2FzZSA2OnZhciBlPUlGO2JyZWFrO2Nhc2UgNzp2YXIgZT1PRjticmVhaztjYXNlIDg6dmFyIGU9UkY7YnJlYWs7Y2FzZSA5OnZhciBlPUxGO2JyZWFrO2Nhc2UgMTA6dmFyIGU9TUY7YnJlYWs7Y2FzZSAxMTp2YXIgZT1ERjticmVhaztjYXNlIDA6Y2FzZSAxMzp2YXIgZT1VRjticmVhaztjYXNlIDM6Y2FzZSAxNDp2YXIgZT1qRjticmVhaztkZWZhdWx0OnZhciBlPUpGfXJldHVybiBIZCh4LGpkKGUscikpfWZ1bmN0aW9uIHdUMCh4LHIpe3N3aXRjaCh4KXtjYXNlIDE6dmFyIGU9eEY7YnJlYWs7Y2FzZSAyOnZhciBlPXJGO2JyZWFrO2Nhc2UgNDp2YXIgZT1lRjticmVhaztjYXNlIDU6dmFyIGU9dEY7YnJlYWs7Y2FzZSA2OnZhciBlPW5GO2JyZWFrO2Nhc2UgNzp2YXIgZT11RjticmVhaztjYXNlIDg6dmFyIGU9aUY7YnJlYWs7Y2FzZSA5OnZhciBlPWZGO2JyZWFrO2Nhc2UgMTA6dmFyIGU9Y0Y7YnJlYWs7Y2FzZSAxMTp2YXIgZT1zRjticmVhaztjYXNlIDA6Y2FzZSAxMzp2YXIgZT1vRjticmVhaztjYXNlIDM6Y2FzZSAxNDp2YXIgZT12RjticmVhaztkZWZhdWx0OnZhciBlPWFGfXJldHVybiBIZCh4LGpkKGUscikpfWZ1bmN0aW9uIFRUMCh4LHIpe3N3aXRjaCh4KXtjYXNlIDE6dmFyIGU9ViQ7YnJlYWs7Y2FzZSAyOnZhciBlPXokO2JyZWFrO2Nhc2UgNDp2YXIgZT1LJDticmVhaztjYXNlIDU6dmFyIGU9QiQ7YnJlYWs7Y2FzZSA2OnZhciBlPVckO2JyZWFrO2Nhc2UgNzp2YXIgZT1aJDticmVhaztjYXNlIDg6dmFyIGU9JCQ7YnJlYWs7Y2FzZSA5OnZhciBlPUYkO2JyZWFrO2Nhc2UgMTA6dmFyIGU9USQ7YnJlYWs7Y2FzZSAxMTp2YXIgZT1HJDticmVhaztjYXNlIDA6Y2FzZSAxMzp2YXIgZT1xJDticmVhaztjYXNlIDM6Y2FzZSAxNDp2YXIgZT1IJDticmVhaztkZWZhdWx0OnZhciBlPWIkfXJldHVybiBIZCh4LGpkKGUscikpfWZ1bmN0aW9uIFNUMCh4LHIpe3N3aXRjaCh4KXtjYXNlIDE6dmFyIGU9bEY7YnJlYWs7Y2FzZSAyOnZhciBlPXBGO2JyZWFrO2Nhc2UgNDp2YXIgZT1kRjticmVhaztjYXNlIDU6dmFyIGU9eUY7YnJlYWs7Y2FzZSA2OnZhciBlPW1GO2JyZWFrO2Nhc2UgNzp2YXIgZT1rRjticmVhaztjYXNlIDg6dmFyIGU9aEY7YnJlYWs7Y2FzZSA5OnZhciBlPV9GO2JyZWFrO2Nhc2UgMTA6dmFyIGU9d0Y7YnJlYWs7Y2FzZSAxMTp2YXIgZT1URjticmVhaztjYXNlIDA6Y2FzZSAxMzp2YXIgZT1TRjticmVhaztjYXNlIDM6Y2FzZSAxNDp2YXIgZT1FRjticmVhaztkZWZhdWx0OnZhciBlPWdGfXJldHVybiBIZCh4LERXKGUscikpfWZ1bmN0aW9uIEtzKHgscixlKXtmdW5jdGlvbiB0KHope3N3aXRjaCh4WzFdKXtjYXNlIDA6dmFyIFk9NDU7YnJlYWs7Y2FzZSAxOnZhciBZPTQzO2JyZWFrO2RlZmF1bHQ6dmFyIFk9MzJ9cmV0dXJuIE9XKGUscixZKX1mdW5jdGlvbiB1KHope3ZhciBZPWxXKGUpO3JldHVybiBZPT09Mz9lPDA/aiQ6SiQ6NDw9WT9VJDp6fXN3aXRjaCh4WzJdKXtjYXNlIDU6Zm9yKHZhciBpPVhJKGFZKHgsciksZSksZj0wLG89WHgoaSk7Oyl7aWYoZj09PW8pdmFyIGw9MDtlbHNle3ZhciBkPU4xKGksZikrTnZ8MCxrPTA7aWYoMjM8ZD4+PjA/ZD09PTU1JiYoaz0xKToyMTxkLTE+Pj4wJiYoaz0xKSwhayl7dmFyIGY9ZisxfDA7Y29udGludWV9dmFyIGw9MX12YXIgaD1sP2k6RngoaSxYJCk7cmV0dXJuIHUoaCl9Y2FzZSA2OnJldHVybiB0KDApO2Nhc2UgNzp2YXIgZz0kYyh0KDApKSxBPWN0KGcpO2lmKEE9PT0wKXZhciBOPWc7ZWxzZXt2YXIgQz13MShBKSxPPUEtMXwwLEw9MDtpZihPPj0wKWZvcih2YXIgTT1MOzspe0tyKEMsTSxHWChvZShnLE0pKSk7dmFyIFY9TSsxfDA7aWYoTyE9PU0pe3ZhciBNPVY7Y29udGludWV9YnJlYWt9dmFyIE49Q31yZXR1cm4gUzIoTik7Y2FzZSA4OnJldHVybiB1KHQoMCkpO2RlZmF1bHQ6cmV0dXJuIFhJKGFZKHgsciksZSl9fWZ1bmN0aW9uIGJkKHgscixlLHQsdSxpLGYpe2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXtpZih0eXBlb2YgdT09XCJudW1iZXJcIilyZXR1cm4gdT9mdW5jdGlvbihBLE4pe3JldHVybiBqcih4LFs0LHIsV2EoQSxwKGksZixOKSldLGUpfTpmdW5jdGlvbihBKXtyZXR1cm4ganIoeCxbNCxyLHAoaSxmLEEpXSxlKX07dmFyIG89dVsxXTtyZXR1cm4gZnVuY3Rpb24oQSl7cmV0dXJuIGpyKHgsWzQscixXYShvLHAoaSxmLEEpKV0sZSl9fWlmKHRbMF09PT0wKXt2YXIgbD10WzJdLGQ9dFsxXTtpZih0eXBlb2YgdT09XCJudW1iZXJcIilyZXR1cm4gdT9mdW5jdGlvbihBLE4pe3JldHVybiBqcih4LFs0LHIsS2UoZCxsLFdhKEEscChpLGYsTikpKV0sZSl9OmZ1bmN0aW9uKEEpe3JldHVybiBqcih4LFs0LHIsS2UoZCxsLHAoaSxmLEEpKV0sZSl9O3ZhciBrPXVbMV07cmV0dXJuIGZ1bmN0aW9uKEEpe3JldHVybiBqcih4LFs0LHIsS2UoZCxsLFdhKGsscChpLGYsQSkpKV0sZSl9fXZhciBoPXRbMV07aWYodHlwZW9mIHU9PVwibnVtYmVyXCIpcmV0dXJuIHU/ZnVuY3Rpb24oQSxOLEMpe3JldHVybiBqcih4LFs0LHIsS2UoaCxBLFdhKE4scChpLGYsQykpKV0sZSl9OmZ1bmN0aW9uKEEsTil7cmV0dXJuIGpyKHgsWzQscixLZShoLEEscChpLGYsTikpXSxlKX07dmFyIGc9dVsxXTtyZXR1cm4gZnVuY3Rpb24oQSxOKXtyZXR1cm4ganIoeCxbNCxyLEtlKGgsQSxXYShnLHAoaSxmLE4pKSldLGUpfX1mdW5jdGlvbiBvTyh4LHIsZSx0LHUpe2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXJldHVybiBmdW5jdGlvbihsKXtyZXR1cm4ganIoeCxbNCxyLGEodSxsKV0sZSl9O2lmKHRbMF09PT0wKXt2YXIgaT10WzJdLGY9dFsxXTtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIGpyKHgsWzQscixLZShmLGksYSh1LGwpKV0sZSl9fXZhciBvPXRbMV07cmV0dXJuIGZ1bmN0aW9uKGwsZCl7cmV0dXJuIGpyKHgsWzQscixLZShvLGwsYSh1LGQpKV0sZSl9fWZ1bmN0aW9uIFhsKHgscixlLHQpe2Zvcih2YXIgdT1yLGk9ZSxmPXQ7Oyl7aWYodHlwZW9mIGY9PVwibnVtYmVyXCIpcmV0dXJuIGEodSxpKTtzd2l0Y2goZlswXSl7Y2FzZSAwOnZhciBvPWZbMV07cmV0dXJuIGZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxbNSxpLE4wXSxvKX07Y2FzZSAxOnZhciBsPWZbMV07cmV0dXJuIGZ1bmN0aW9uKE4wKXt2YXIgQTA9MDtpZig0MDw9TjApaWYoTjA9PT05Mil2YXIgWTA9eVo7ZWxzZSBZcjw9TjA/QTA9MTpBMD0yO2Vsc2UgaWYoMzI8PU4wKWlmKDM5PD1OMCl2YXIgWTA9bVo7ZWxzZSBBMD0yO2Vsc2UgaWYoMTQ8PU4wKUEwPTE7ZWxzZSBzd2l0Y2goTjApe2Nhc2UgODp2YXIgWTA9a1o7YnJlYWs7Y2FzZSA5OnZhciBZMD1oWjticmVhaztjYXNlIDEwOnZhciBZMD1fWjticmVhaztjYXNlIDEzOnZhciBZMD13WjticmVhaztkZWZhdWx0OkEwPTF9c3dpdGNoKEEwKXtjYXNlIDE6dmFyIEMwPXcxKDQpO0tyKEMwLDAsOTIpLEtyKEMwLDEsNDgrKE4wL2l0fDApfDApLEtyKEMwLDIsNDgrKChOMC8xMHwwKSUxMHwwKXwwKSxLcihDMCwzLDQ4KyhOMCUxMHwwKXwwKTt2YXIgWTA9UzIoQzApO2JyZWFrO2Nhc2UgMjp2YXIgRj13MSgxKTtLcihGLDAsTjApO3ZhciBZMD1TMihGKTticmVha312YXIgSD1YeChZMCksQj1NdihIKzJ8MCwzOSk7cmV0dXJuIEZjKFkwLDAsQiwxLEgpLGpyKHUsWzQsaSxTMihCKV0sbCl9O2Nhc2UgMjp2YXIgZD1mWzJdLGs9ZlsxXTtyZXR1cm4gb08odSxpLGQsayxmdW5jdGlvbihOMCl7cmV0dXJuIE4wfSk7Y2FzZSAzOnJldHVybiBvTyh1LGksZlsyXSxmWzFdLGhUMCk7Y2FzZSA0OnJldHVybiBiZCh1LGksZls0XSxmWzJdLGZbM10sX1QwLGZbMV0pO2Nhc2UgNTpyZXR1cm4gYmQodSxpLGZbNF0sZlsyXSxmWzNdLHdUMCxmWzFdKTtjYXNlIDY6cmV0dXJuIGJkKHUsaSxmWzRdLGZbMl0sZlszXSxUVDAsZlsxXSk7Y2FzZSA3OnJldHVybiBiZCh1LGksZls0XSxmWzJdLGZbM10sU1QwLGZbMV0pO2Nhc2UgODp2YXIgaD1mWzRdLGc9ZlszXSxBPWZbMl0sTj1mWzFdO2lmKHR5cGVvZiBBPT1cIm51bWJlclwiKXtpZih0eXBlb2YgZz09XCJudW1iZXJcIilyZXR1cm4gZz9mdW5jdGlvbihOMCxBMCl7cmV0dXJuIGpyKHUsWzQsaSxLcyhOLE4wLEEwKV0saCl9OmZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxbNCxpLEtzKE4sY08oTiksTjApXSxoKX07dmFyIEM9Z1sxXTtyZXR1cm4gZnVuY3Rpb24oTjApe3JldHVybiBqcih1LFs0LGksS3MoTixDLE4wKV0saCl9fWlmKEFbMF09PT0wKXt2YXIgTz1BWzJdLEw9QVsxXTtpZih0eXBlb2YgZz09XCJudW1iZXJcIilyZXR1cm4gZz9mdW5jdGlvbihOMCxBMCl7cmV0dXJuIGpyKHUsWzQsaSxLZShMLE8sS3MoTixOMCxBMCkpXSxoKX06ZnVuY3Rpb24oTjApe3JldHVybiBqcih1LFs0LGksS2UoTCxPLEtzKE4sY08oTiksTjApKV0saCl9O3ZhciBNPWdbMV07cmV0dXJuIGZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxbNCxpLEtlKEwsTyxLcyhOLE0sTjApKV0saCl9fXZhciBWPUFbMV07aWYodHlwZW9mIGc9PVwibnVtYmVyXCIpcmV0dXJuIGc/ZnVuY3Rpb24oTjAsQTAsWTApe3JldHVybiBqcih1LFs0LGksS2UoVixOMCxLcyhOLEEwLFkwKSldLGgpfTpmdW5jdGlvbihOMCxBMCl7cmV0dXJuIGpyKHUsWzQsaSxLZShWLE4wLEtzKE4sY08oTiksQTApKV0saCl9O3ZhciB6PWdbMV07cmV0dXJuIGZ1bmN0aW9uKE4wLEEwKXtyZXR1cm4ganIodSxbNCxpLEtlKFYsTjAsS3MoTix6LEEwKSldLGgpfTtjYXNlIDk6cmV0dXJuIG9PKHUsaSxmWzJdLGZbMV0sYVQwKTtjYXNlIDEwOnZhciBpPVs3LGldLGY9ZlsxXTtjb250aW51ZTtjYXNlIDExOnZhciBpPVsyLGksZlsxXV0sZj1mWzJdO2NvbnRpbnVlO2Nhc2UgMTI6dmFyIGk9WzMsaSxmWzFdXSxmPWZbMl07Y29udGludWU7Y2FzZSAxMzp2YXIgWT1mWzNdLHQwPWZbMl0saTA9Y1koMTYpO3NPKGkwLHQwKTt2YXIgaj1vWShpMCk7cmV0dXJuIGZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxbNCxpLGpdLFkpfTtjYXNlIDE0OnZhciBLPWZbM10sSj1mWzJdO3JldHVybiBmdW5jdGlvbihOMCl7dmFyIEEwPU4wWzFdLFkwPXMxKEEwLEkxKGIxKEopKSk7aWYodHlwZW9mIFkwWzJdPT1cIm51bWJlclwiKXJldHVybiBqcih1LGksVDEoWTBbMV0sSykpO3Rocm93IHEwKGsyLDEpfTtjYXNlIDE1OnZhciBRPWZbMV07cmV0dXJuIGZ1bmN0aW9uKE4wLEEwKXtyZXR1cm4ganIodSxbNixpLGZ1bmN0aW9uKFkwKXtyZXR1cm4gcChOMCxZMCxBMCl9XSxRKX07Y2FzZSAxNjp2YXIgeDA9ZlsxXTtyZXR1cm4gZnVuY3Rpb24oTjApe3JldHVybiBqcih1LFs2LGksTjBdLHgwKX07Y2FzZSAxNzp2YXIgaT1bMCxpLGZbMV1dLGY9ZlsyXTtjb250aW51ZTtjYXNlIDE4OnZhciAkPWZbMV07aWYoJFswXT09PTApe3ZhciBmMD1mWzJdLHMwPSRbMV1bMV0sdjA9MCx1PWZ1bmN0aW9uKEMwLEYsSCl7cmV0dXJuIGZ1bmN0aW9uKEIpe3JldHVybiBqcihGLFsxLEMwLFswLEJdXSxIKX19KGksdSxmMCksaT12MCxmPXMwO2NvbnRpbnVlfXZhciBvMD1mWzJdLGMwPSRbMV1bMV0sZDA9MCx1PWZ1bmN0aW9uKE4wLEEwLFkwKXtyZXR1cm4gZnVuY3Rpb24oQzApe3JldHVybiBqcihBMCxbMSxOMCxbMSxDMF1dLFkwKX19KGksdSxvMCksaT1kMCxmPWMwO2NvbnRpbnVlO2Nhc2UgMTk6dGhyb3cgcTAoWzAsd3IsRSRdLDEpO2Nhc2UgMjA6dmFyIEUwPWZbM10sTDA9WzgsaSxnJF07cmV0dXJuIGZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxMMCxFMCl9O2Nhc2UgMjE6dmFyIFgwPWZbMl07cmV0dXJuIGZ1bmN0aW9uKE4wKXtyZXR1cm4ganIodSxbNCxpLGpkKHJqLE4wKV0sWDApfTtjYXNlIDIyOnZhciB4eD1mWzFdO3JldHVybiBmdW5jdGlvbihOMCl7cmV0dXJuIGpyKHUsWzUsaSxOMF0seHgpfTtjYXNlIDIzOnZhciBnMD1mWzJdLCQwPWZbMV07aWYodHlwZW9mICQwPT1cIm51bWJlclwiKXN3aXRjaCgkMCl7Y2FzZSAwOnJldHVybiB4PDUwP2UxKHgrMXwwLHUsaSxnMCk6ZDIoZTEsWzAsdSxpLGcwXSk7Y2FzZSAxOnJldHVybiB4PDUwP2UxKHgrMXwwLHUsaSxnMCk6ZDIoZTEsWzAsdSxpLGcwXSk7Y2FzZSAyOnRocm93IHEwKFswLHdyLEEkXSwxKTtkZWZhdWx0OnJldHVybiB4PDUwP2UxKHgrMXwwLHUsaSxnMCk6ZDIoZTEsWzAsdSxpLGcwXSl9c3dpdGNoKCQwWzBdKXtjYXNlIDA6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDE6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDI6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDM6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDQ6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDU6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDY6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDc6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDg6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKTtjYXNlIDk6dmFyIG4wPSQwWzJdO3JldHVybiB4PDUwP3ZPKHgrMXwwLHUsaSxuMCxnMCk6ZDIodk8sWzAsdSxpLG4wLGcwXSk7Y2FzZSAxMDpyZXR1cm4geDw1MD9lMSh4KzF8MCx1LGksZzApOmQyKGUxLFswLHUsaSxnMF0pO2RlZmF1bHQ6cmV0dXJuIHg8NTA/ZTEoeCsxfDAsdSxpLGcwKTpkMihlMSxbMCx1LGksZzBdKX1kZWZhdWx0OnZhciBpeD1mWzNdLHJ4PWZbMV0sZHg9YShmWzJdLDApO3JldHVybiB4PDUwP2FPKHgrMXwwLHUsaSxpeCxyeCxkeCk6ZDIoYU8sWzAsdSxpLGl4LHJ4LGR4XSl9fX1mdW5jdGlvbiB2Tyh4LHIsZSx0LHUpe2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXJldHVybiB4PDUwP2UxKHgrMXwwLHIsZSx1KTpkMihlMSxbMCxyLGUsdV0pO3N3aXRjaCh0WzBdKXtjYXNlIDA6dmFyIGk9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxpLHUpfTtjYXNlIDE6dmFyIGY9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxmLHUpfTtjYXNlIDI6dmFyIG89dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxvLHUpfTtjYXNlIDM6dmFyIGw9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxsLHUpfTtjYXNlIDQ6dmFyIGQ9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxkLHUpfTtjYXNlIDU6dmFyIGs9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxrLHUpfTtjYXNlIDY6dmFyIGg9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxoLHUpfTtjYXNlIDc6dmFyIGc9dFsxXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxnLHUpfTtjYXNlIDg6dmFyIEE9dFsyXTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxBLHUpfTtjYXNlIDk6dmFyIE49dFszXSxDPXRbMl0sTz1zMihiMSh0WzFdKSxDKTtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIG90KHIsZSxiMihPLE4pLHUpfTtjYXNlIDEwOnZhciBMPXRbMV07cmV0dXJuIGZ1bmN0aW9uKHosWSl7cmV0dXJuIG90KHIsZSxMLHUpfTtjYXNlIDExOnZhciBNPXRbMV07cmV0dXJuIGZ1bmN0aW9uKHope3JldHVybiBvdChyLGUsTSx1KX07Y2FzZSAxMjp2YXIgVj10WzFdO3JldHVybiBmdW5jdGlvbih6KXtyZXR1cm4gb3QocixlLFYsdSl9O2Nhc2UgMTM6dGhyb3cgcTAoWzAsd3IsUCRdLDEpO2RlZmF1bHQ6dGhyb3cgcTAoWzAsd3IsTiRdLDEpfX1mdW5jdGlvbiBlMSh4LHIsZSx0KXt2YXIgdT1bOCxlLEMkXTtyZXR1cm4geDw1MD9YbCh4KzF8MCxyLHUsdCk6ZDIoWGwsWzAscix1LHRdKX1mdW5jdGlvbiBhTyh4LHIsZSx0LHUsaSl7aWYodSl7dmFyIGY9dVsxXTtyZXR1cm4gZnVuY3Rpb24obCl7cmV0dXJuIEVUMChyLGUsdCxmLGEoaSxsKSl9fXZhciBvPVs0LGUsaV07cmV0dXJuIHg8NTA/WGwoeCsxfDAscixvLHQpOmQyKFhsLFswLHIsbyx0XSl9ZnVuY3Rpb24ganIoeCxyLGUpe3JldHVybiAkSShYbCgwLHgscixlKSl9ZnVuY3Rpb24gb3QoeCxyLGUsdCl7cmV0dXJuICRJKHZPKDAseCxyLGUsdCkpfWZ1bmN0aW9uIEVUMCh4LHIsZSx0LHUpe3JldHVybiAkSShhTygwLHgscixlLHQsdSkpfWZ1bmN0aW9uIEJzKHgscil7Zm9yKHZhciBlPXI7Oyl7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpcmV0dXJuIDA7c3dpdGNoKGVbMF0pe2Nhc2UgMDp2YXIgdD1lWzFdLHU9dlkoZVsyXSk7cmV0dXJuIEJzKHgsdCksSWwoeCx1KTtjYXNlIDE6dmFyIGk9ZVsyXSxmPWVbMV07aWYoaVswXT09PTApe3ZhciBvPWlbMV07QnMoeCxmKSxJbCh4LEkkKTt2YXIgZT1vO2NvbnRpbnVlfXZhciBsPWlbMV07QnMoeCxmKSxJbCh4LE8kKTt2YXIgZT1sO2NvbnRpbnVlO2Nhc2UgNjp2YXIgZD1lWzJdO3JldHVybiBCcyh4LGVbMV0pLGEoZCx4KTtjYXNlIDc6cmV0dXJuIEJzKHgsZVsxXSksUWMoeCk7Y2FzZSA4OnZhciBrPWVbMl07cmV0dXJuIEJzKHgsZVsxXSkseTIoayk7Y2FzZSAyOmNhc2UgNDp2YXIgaD1lWzJdO3JldHVybiBCcyh4LGVbMV0pLElsKHgsaCk7ZGVmYXVsdDp2YXIgZz1lWzJdO3JldHVybiBCcyh4LGVbMV0pLFlYKHgsZyl9fX1mdW5jdGlvbiBXcyh4LHIpe2Zvcih2YXIgZT1yOzspe2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXJldHVybiAwO3N3aXRjaChlWzBdKXtjYXNlIDA6dmFyIHQ9ZVsxXSx1PXZZKGVbMl0pO3JldHVybiBXcyh4LHQpLHZyKHgsdSk7Y2FzZSAxOnZhciBpPWVbMl0sZj1lWzFdO2lmKGlbMF09PT0wKXt2YXIgbz1pWzFdO1dzKHgsZiksdnIoeCxSJCk7dmFyIGU9bztjb250aW51ZX12YXIgbD1pWzFdO1dzKHgsZiksdnIoeCxMJCk7dmFyIGU9bDtjb250aW51ZTtjYXNlIDY6dmFyIGQ9ZVsyXTtyZXR1cm4gV3MoeCxlWzFdKSx2cih4LGEoZCwwKSk7Y2FzZSA3OnZhciBlPWVbMV07Y29udGludWU7Y2FzZSA4OnZhciBrPWVbMl07cmV0dXJuIFdzKHgsZVsxXSkseTIoayk7Y2FzZSAyOmNhc2UgNDp2YXIgaD1lWzJdO3JldHVybiBXcyh4LGVbMV0pLHZyKHgsaCk7ZGVmYXVsdDp2YXIgZz1lWzJdO3JldHVybiBXcyh4LGVbMV0pLHN0KHgsZyl9fX1mdW5jdGlvbiBsWSh4LHIpe3ZhciBlPXJbMV0sdD0wO3JldHVybiBqcihmdW5jdGlvbih1KXtyZXR1cm4gQnMoeCx1KSwwfSx0LGUpfWZ1bmN0aW9uIGxPKHgpe3JldHVybiBsWShHYyx4KX1mdW5jdGlvbiBUcih4KXt2YXIgcj14WzFdO3JldHVybiBqcihmdW5jdGlvbihlKXt2YXIgdD1acig2NCk7cmV0dXJuIFdzKHQsZSksVTEodCl9LDAscil9dmFyIHBPPVswLDBdO2Z1bmN0aW9uIGRPKHgscil7dmFyIGU9eFsxK3JdO2lmKCEoMS0odHlwZW9mIGU9PVwibnVtYmVyXCI/MTowKSkpcmV0dXJuIGEoVHIoa1EpLGUpO2lmKEx2KGUpPT09RWEpcmV0dXJuIGEoVHIoaFEpLGUpO2lmKEx2KGUpIT09UTgpcmV0dXJuIF9RO2Zvcih2YXIgdD1YSShcIiUuMTJnXCIsZSksdT0wLGk9WHgodCk7Oyl7aWYoaTw9dSlyZXR1cm4gRngodCxhWik7dmFyIGY9TjEodCx1KSxvPTA7aWYoNDg8PWY/NTg+ZiYmKG89MSk6Zj09PTQ1JiYobz0xKSwhbylyZXR1cm4gdDt2YXIgdT11KzF8MH19ZnVuY3Rpb24gcFkoeCxyKXtpZih4Lmxlbmd0aC0xPD1yKXJldHVybiBGRjt2YXIgZT1wWSh4LHIrMXwwKSx0PWRPKHgscik7cmV0dXJuIHAoVHIoUUYpLHQsZSl9ZnVuY3Rpb24geHkoeCl7Zm9yKHZhciByPXBPWzFdOzspe2lmKHIpe3ZhciBlPTAsdD1yWzJdLHU9clsxXTt0cnl7dmFyIGk9YSh1LHgpfWNhdGNoe2U9MX12YXIgZj0wO2lmKGV8fCFpKWY9MTtlbHNlIHZhciBvPVswLGlbMV1dO2lmKGYpe3ZhciByPXQ7Y29udGludWV9fWVsc2UgdmFyIG89MDtpZihvKXJldHVybiBvWzFdO2lmKHg9PT1GSSlyZXR1cm4gc1E7aWYoeD09PVdYKXJldHVybiBvUTtpZih4WzFdPT09Qlgpe3ZhciBsPXhbMl0sZD1sWzNdLGs9bFsyXSxoPWxbMV07cmV0dXJuIFZlKFRyKEdJKSxoLGssZCxkKzV8MCx2USl9aWYoeFsxXT09PXdyKXt2YXIgZz14WzJdLEE9Z1szXSxOPWdbMl0sQz1nWzFdO3JldHVybiBWZShUcihHSSksQyxOLEEsQSs2fDAsYVEpfWlmKHhbMV09PT1ObCl7dmFyIE89eFsyXSxMPU9bM10sTT1PWzJdLFY9T1sxXTtyZXR1cm4gVmUoVHIoR0kpLFYsTSxMLEwrNnwwLGxRKX1pZihMdih4KSE9PTApcmV0dXJuIHhbMV07dmFyIHo9eC5sZW5ndGgtMSxZPXhbMV1bMV07aWYoMjx6Pj4+MCl2YXIgdDA9cFkoeCwyKSxpMD1kTyh4LDEpLGo9cChUcihwUSksaTAsdDApO2Vsc2Ugc3dpdGNoKHope2Nhc2UgMDp2YXIgaj1kUTticmVhaztjYXNlIDE6dmFyIGo9eVE7YnJlYWs7ZGVmYXVsdDp2YXIgSz1kTyh4LDEpLGo9YShUcihtUSksSyl9cmV0dXJuIEZ4KFksail9fWZ1bmN0aW9uIHlPKHgscil7dmFyIGU9TlcociksdD1lLmxlbmd0aC0xLTF8MCx1PTA7aWYodD49MClmb3IodmFyIGk9dTs7KXt2YXIgZj16MShlLGkpWzEraV0sbz1mdW5jdGlvbihWKXtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIHo/Vj09PTA/clE6ZVE6Vj09PTA/dFE6blF9fShpKTtpZihmWzBdPT09MCl2YXIgbD1mWzVdLGQ9Zls0XSxrPWZbM10saD1mWzZdP3VROmlRLGc9ZlsyXSxBPWZbN10sTj1vKGZbMV0pLE89WzAsc1ooVHIoZlEpLE4sQSxnLGgsayxkLGwpXTtlbHNlIGlmKGZbMV0pdmFyIE89MDtlbHNlIHZhciBDPW8oMCksTz1bMCxhKFRyKGNRKSxDKV07aWYoTyl7dmFyIEw9T1sxXTthKGxZKHgseFEpLEwpfXZhciBNPWkrMXwwO2lmKHQhPT1pKXt2YXIgaT1NO2NvbnRpbnVlfWJyZWFrfXJldHVybiAwfWZ1bmN0aW9uIGRZKHgpe2Zvcig7Oyl7dmFyIHI9cE9bMV0sZT0xLXFJKHBPLHIsWzAseCxyXSk7aWYoIWUpcmV0dXJuIGV9fXZhciBnVDA9d1Euc2xpY2UoKSxBVDA9WzBdO1pJKHVELGZ1bmN0aW9uKHgscil7dHJ5e3RyeXt2YXIgZT1yP0FUMDpPWCgwKTt0cnl7YkkoMCl9Y2F0Y2h7fXRyeXt2YXIgdD14eSh4KTthKGxPKGJGKSx0KSx5TyhHYyxlKTt2YXIgdT1LVygwKTtpZih1PDApe3ZhciBpPVpkKHUpO0ZYKHoxKGdUMCxpKVsxK2ldKX12YXIgZj1RYyhHYyksbz1mfWNhdGNoKEEpe3ZhciBsPUMxKEEpLGQ9eHkoeCk7YShsTyhHRiksZCkseU8oR2MsZSk7dmFyIGs9eHkobCk7YShsTyhxRiksaykseU8oR2MsT1goMCkpO3ZhciBvPVFjKEdjKX12YXIgaD1vfWNhdGNoKEEpe3ZhciBnPUMxKEEpO2lmKGchPT1GSSl0aHJvdyBxMChnLDApO3ZhciBoPUZYKEhGKX1yZXR1cm4gaH1jYXRjaHtyZXR1cm4gMH19KTt2YXIgbU89W0dyLFZRLEpzKDApXSxyeT0wLHlZPS0xO2Z1bmN0aW9uIFlsKHgscil7cmV0dXJuIHhbMTNdPXhbMTNdK3JbM118MCx1TyhyLHhbMjhdKX12YXIgbVk9MTAwMDAwMDAxMDtmdW5jdGlvbiBrTyh4LHIpe3JldHVybiBIMCh4WzE3XSxyLDAsWHgocikpfWZ1bmN0aW9uIGV5KHgpe3JldHVybiBhKHhbMTldLDApfWZ1bmN0aW9uIGtZKHgscixlKXtyZXR1cm4geFs5XT14WzldLXJ8MCxrTyh4LGUpLHhbMTFdPTAsMH1mdW5jdGlvbiB0eSh4LHIpe3ZhciBlPVAocixreCk7cmV0dXJuIGUmJmtZKHgsWHgocikscil9ZnVuY3Rpb24gVXYoeCxyLGUpe3ZhciB0PXJbM10sdT1yWzJdO3R5KHgsclsxXSksZXkoeCkseFsxMV09MTt2YXIgaT0oeFs2XS1lfDApK3V8MCxmPXhbOF0sbz1mPD1pP2Y6aTtyZXR1cm4geFsxMF09byx4WzldPXhbNl0teFsxMF18MCxhKHhbMjFdLHhbMTBdKSx0eSh4LHQpfWZ1bmN0aW9uIGhZKHgscil7cmV0dXJuIFV2KHgsWVEscil9ZnVuY3Rpb24gWmEoeCxyKXt2YXIgZT1yWzJdLHQ9clszXTtyZXR1cm4gdHkoeCxyWzFdKSx4WzldPXhbOV0tZXwwLGEoeFsyMF0sZSksdHkoeCx0KX1mdW5jdGlvbiBQVDAoeCxyLGUpe2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXN3aXRjaChlKXtjYXNlIDA6dmFyIHQ9S2EoeFszXSk7aWYoIXQpcmV0dXJuIDA7dmFyIHU9dFsxXVsxXSxpPWZ1bmN0aW9uKGR4LGF4KXtpZighYXgpcmV0dXJuWzAsZHgsMF07dmFyIFN4PWF4WzFdLEQwPWF4WzJdO3JldHVybiB6VyhkeCxTeCk/WzAsZHgsYXhdOlswLFN4LGkoZHgsRDApXX07cmV0dXJuIHVbMV09aSh4WzZdLXhbOV18MCx1WzFdKSwwO2Nhc2UgMTpyZXR1cm4gemEoeFsyXSksMDtjYXNlIDI6cmV0dXJuIHphKHhbM10pLDA7Y2FzZSAzOnZhciBmPUthKHhbMl0pO3JldHVybiBmP2hZKHgsZlsxXVsyXSk6ZXkoeCk7Y2FzZSA0OnZhciBvPXhbMTBdIT09KHhbNl0teFs5XXwwKT8xOjA7aWYoIW8pcmV0dXJuIG87dmFyIGw9eFsyOF0sZD1sWzJdO2lmKGQpe3ZhciBrPWRbMV07aWYoZFsyXSl7dmFyIGg9ZFsyXTtsWzFdPWxbMV0tMXwwLGxbMl09aDt2YXIgZz1bMCxrXX1lbHNle25PKGwpO3ZhciBnPVswLGtdfX1lbHNlIHZhciBnPTA7aWYoIWcpcmV0dXJuIDA7dmFyIEE9Z1sxXSxOPUFbMV07cmV0dXJuIHhbMTJdPXhbMTJdLUFbM118MCx4WzldPXhbOV0rTnwwLDA7ZGVmYXVsdDp2YXIgQz16YSh4WzVdKTtyZXR1cm4gQz9rTyh4LGEoeFsyNV0sQ1sxXSkpOjB9c3dpdGNoKGVbMF0pe2Nhc2UgMDpyZXR1cm4ga1koeCxyLGVbMV0pO2Nhc2UgMTp2YXIgTz1lWzJdLEw9ZVsxXSxNPU9bMV0sVj1PWzJdLHo9S2EoeFsyXSk7aWYoIXopcmV0dXJuIDA7dmFyIFk9elsxXSx0MD1ZWzJdO3N3aXRjaChZWzFdKXtjYXNlIDA6cmV0dXJuIFphKHgsTCk7Y2FzZSAxOnJldHVybiBVdih4LE8sdDApO2Nhc2UgMjpyZXR1cm4gVXYoeCxPLHQwKTtjYXNlIDM6cmV0dXJuIHhbOV08KHIrWHgoTSl8MCk/VXYoeCxPLHQwKTpaYSh4LEwpO2Nhc2UgNDpyZXR1cm4geFsxMV0/WmEoeCxMKTp4WzldPChyK1h4KE0pfDApfHwoKHhbNl0tdDB8MCkrVnwwKTx4WzEwXT9Vdih4LE8sdDApOlphKHgsTCk7ZGVmYXVsdDpyZXR1cm4gWmEoeCxMKX1jYXNlIDI6dmFyIGkwPXhbNl0teFs5XXwwLGo9ZVsyXSxLPWVbMV0sSj1LYSh4WzNdKTtpZighSilyZXR1cm4gMDt2YXIgUT1KWzFdWzFdLHgwPVFbMV07aWYoeDApZm9yKHZhciAkPVFbMV0sZjA9eDBbMV07Oyl7aWYoJCl7dmFyIHMwPSRbMV0sdjA9JFsyXTtpZihpMD5zMCl7dmFyICQ9djA7Y29udGludWV9dmFyIG8wPXMwfWVsc2UgdmFyIG8wPWYwO3ZhciBjMD1vMDticmVha31lbHNlIHZhciBjMD1pMDt2YXIgZDA9YzAtaTB8MDtyZXR1cm4gMDw9ZDA/WmEoeCxbMCxqUSxkMCtLfDAsVVFdKTpVdih4LFswLFhRLGMwK2p8MCxKUV0seFs2XSk7Y2FzZSAzOnZhciBFMD1lWzJdLEwwPWVbMV07aWYoeFs4XTwoeFs2XS14WzldfDApKXt2YXIgWDA9S2EoeFsyXSk7aWYoWDApe3ZhciB4eD1YMFsxXSxnMD14eFsyXSwkMD14eFsxXTt4WzldPGcwJiYzPj0kMC0xPj4+MCYmaFkoeCxnMCl9ZWxzZSBleSh4KX12YXIgbjA9eFs5XS1MMHwwLGl4PUUwPT09MT8xOnhbOV08cj9FMDo1O3JldHVybiBEdihbMCxpeCxuMF0seFsyXSk7Y2FzZSA0OnJldHVybiBEdihlWzFdLHhbM10pO2RlZmF1bHQ6dmFyIHJ4PWVbMV07cmV0dXJuIGtPKHgsYSh4WzI0XSxyeCkpLER2KHJ4LHhbNV0pfX1mdW5jdGlvbiBfWSh4KXtmb3IoOzspe3ZhciByPXhbMjhdWzJdLGU9cj9bMCxyWzFdXTowO2lmKCFlKXJldHVybiAwO3ZhciB0PWVbMV0sdT10WzFdLGk9MDw9dT8xOjAsZj10WzNdLG89dFsyXSxsPXhbMTNdLXhbMTJdfDAsZD1pfHwoeFs5XTw9bD8xOjApO2lmKCFkKXJldHVybiBkO3ZhciBrPXhbMjhdLGg9a1syXTtpZighaCl0aHJvdyBxMChrVDAsMSk7aWYoaFsyXSl7dmFyIGc9aFsyXTtrWzFdPWtbMV0tMXwwLGtbMl09Z31lbHNlIG5PKGspO3ZhciBBPTA8PXU/dTptWTtQVDAoeCxBLG8pLHhbMTJdPWYreFsxMl18MH19ZnVuY3Rpb24gd1koeCxyKXtyZXR1cm4gWWwoeCxyKSxfWSh4KX1mdW5jdGlvbiBUWSh4LHIsZSl7cmV0dXJuIHdZKHgsWzAscixbMCxlXSxyXSl9ZnVuY3Rpb24gaE8oeCl7cmV0dXJuIGpsKHgpLER2KFswLC0xLFswLHlZLERRLDBdXSx4KX1mdW5jdGlvbiBfTyh4LHIpe3ZhciBlPUthKHhbMV0pO2lmKCFlKXJldHVybiAwO3ZhciB0PWVbMV0sdT10WzJdLGk9dVsxXTtpZih0WzFdPHhbMTJdKXJldHVybiBoTyh4WzFdKTt2YXIgZj11WzJdO2lmKHR5cGVvZiBmIT1cIm51bWJlclwiKXN3aXRjaChmWzBdKXtjYXNlIDM6dmFyIG89MS1yLGw9byYmKHVbMV09eFsxM10raXwwLHphKHhbMV0pLDApO3JldHVybiBsO2Nhc2UgMTpjYXNlIDI6dmFyIGQ9ciYmKHVbMV09eFsxM10raXwwLHphKHhbMV0pLDApO3JldHVybiBkfXJldHVybiAwfWZ1bmN0aW9uIFNZKHgscixlKXtyZXR1cm4gWWwoeCxlKSxyJiZfTyh4LDEpLER2KFswLHhbMTNdLGVdLHhbMV0pfWZ1bmN0aW9uIEVZKHgscixlKXtpZih4WzE0XT14WzE0XSsxfDAseFsxNF08eFsxNV0pcmV0dXJuIFNZKHgsMCxbMCwteFsxM118MCxbMyxyLGVdLDBdKTt2YXIgdD14WzE0XT09PXhbMTVdPzE6MDtpZighdClyZXR1cm4gdDt2YXIgdT14WzE2XTtyZXR1cm4gVFkoeCxYeCh1KSx1KX1mdW5jdGlvbiBnWSh4LHIpe3ZhciBlPTE8eFsxNF0/MTowO2lmKGUpe3hbMTRdPHhbMTVdJiYoWWwoeCxbMCxyeSwxLDBdKSxfTyh4LDEpLF9PKHgsMCkpLHhbMTRdPXhbMTRdLTF8MDt2YXIgdD0wfWVsc2UgdmFyIHQ9ZTtyZXR1cm4gdH1mdW5jdGlvbiBBWSh4LHIpe3hbMjNdJiZZbCh4LFswLHJ5LDUsMF0pO3ZhciBlPXhbMjJdO2lmKGUpe3ZhciB0PXphKHhbNF0pO2lmKHQpcmV0dXJuIGEoeFsyN10sdFsxXSk7dmFyIHU9MH1lbHNlIHZhciB1PWU7cmV0dXJuIHV9ZnVuY3Rpb24gd08oeCxyKXt2YXIgZT14WzRdO2Z1bmN0aW9uIHQodSl7cmV0dXJuIEFZKHgsMCl9Zm9yKGcyKHQsZVsxXSk7Oyl7aWYoMTx4WzE0XSl7Z1koeCwwKTtjb250aW51ZX1yZXR1cm4geFsxM109bVksX1koeCksciYmZXkoeCkseFsxMl09MSx4WzEzXT0xLG5PKHhbMjhdKSxoTyh4WzFdKSxqbCh4WzJdKSxqbCh4WzNdKSxqbCh4WzRdKSxqbCh4WzVdKSx4WzEwXT0wLHhbMTRdPTAseFs5XT14WzZdLEVZKHgsMCwzKX19ZnVuY3Rpb24gVE8oeCxyLGUpe3ZhciB0PXhbMTRdPHhbMTVdPzE6MDtyZXR1cm4gdCYmVFkoeCxyLGUpfWZ1bmN0aW9uIFBZKHgscixlKXtyZXR1cm4gVE8oeCxyLGUpfWZ1bmN0aW9uIG55KHgscil7cmV0dXJuIFBZKHgsWHgocikscil9ZnVuY3Rpb24gVmwoeCxyKXtyZXR1cm4gUFkoeCwxLFFkKDEscikpfWZ1bmN0aW9uIHpsKHgscil7cmV0dXJuIHdPKHgsMCksYSh4WzE4XSwwKX12YXIgTlk9UWQoODAsMzIpO2Z1bmN0aW9uIENZKHgscil7Zm9yKHZhciBlPXI7Oyl7dmFyIHQ9MDxlPzE6MDtpZighdClyZXR1cm4gdDtpZig4MD49ZSlyZXR1cm4gSDAoeFsxN10sTlksMCxlKTtIMCh4WzE3XSxOWSwwLDgwKTt2YXIgZT1lK0hEfDB9fWZ1bmN0aW9uIE5UMCh4KXtyZXR1cm4geFsxXT09PW1PP0Z4KE5RLEZ4KHhbMl0sUFEpKTpDUX1mdW5jdGlvbiBDVDAoeCl7cmV0dXJuIHhbMV09PT1tTz9GeChnUSxGeCh4WzJdLEVRKSk6QVF9ZnVuY3Rpb24gSVQwKHgpe3JldHVybiAwfWZ1bmN0aW9uIE9UMCh4KXtyZXR1cm4gMH1mdW5jdGlvbiBJWSh4LHIpe2Z1bmN0aW9uIGUoZyl7cmV0dXJuIDB9ZnVuY3Rpb24gdChnKXtyZXR1cm4gMH1mdW5jdGlvbiB1KGcpe3JldHVybiAwfXZhciBpPWlZKDApLGY9WzAseVksVFEsMF07dU8oZixpKTt2YXIgbz1VbCgwKTtoTyhvKSxEdihbMCwxLGZdLG8pO3ZhciBsPVVsKDApLGQ9VWwoMCksaz1VbCgwKSxoPVswLG8sVWwoMCksayxkLGwsNzgsMTAsNjgsNzgsMCwxLDEsMSwxLHZUMCxTUSx4LHIsdSx0LGUsMCwwLE5UMCxDVDAsSVQwLE9UMCxpXTtyZXR1cm4gaFsxOV09ZnVuY3Rpb24oZyl7cmV0dXJuIEgwKGhbMTddLElRLDAsMSl9LGhbMjBdPWZ1bmN0aW9uKGcpe3JldHVybiBDWShoLGcpfSxoWzIxXT1mdW5jdGlvbihnKXtyZXR1cm4gQ1koaCxnKX0saH1mdW5jdGlvbiBPWSh4KXtmdW5jdGlvbiByKGUpe3JldHVybiBRYyh4KX1yZXR1cm4gSVkoZnVuY3Rpb24oZSx0LHUpe3JldHVybiAwPD10JiYwPD11JiYoWHgoZSktdXwwKT49dD9CSSh4LGUsdCx1KTp5Mih2Wil9LHIpfWZ1bmN0aW9uIFNPKHgpe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIDB9cmV0dXJuIElZKGZ1bmN0aW9uKGUsdCx1KXtyZXR1cm4gZlkoeCxlLHQsdSl9LHIpfXZhciBSVDA9dnc7ZnVuY3Rpb24gUlkoeCl7cmV0dXJuIFpyKFJUMCl9dmFyIExUMD1SWSgwKSxNVDA9T1kobFQwKSxEVDA9T1koR2MpO1NPKExUMCk7ZnVuY3Rpb24gTFkoeCxyKXt2YXIgZT1acigxNiksdD1TTyhlKTtwKHgsdCxyKSx6bCh0LDApO3ZhciB1PWVbMl07aWYoMj51KXJldHVybiBVMShlKTt2YXIgaT11LTJ8MCxmPTE7cmV0dXJuIDA8PWkmJihlWzJdLWl8MCk+PTE/VmEoZVsxXSxmLGkpOnkyKEJaKX1mdW5jdGlvbiBCZSh4LHIpe3ZhciBlPTA7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpcmV0dXJuIDA7c3dpdGNoKHJbMF0pe2Nhc2UgMDp2YXIgdD1yWzJdO2lmKEJlKHgsclsxXSksdHlwZW9mIHQ9PVwibnVtYmVyXCIpc3dpdGNoKHQpe2Nhc2UgMDpyZXR1cm4gZ1koeCwwKTtjYXNlIDE6cmV0dXJuIEFZKHgsMCk7Y2FzZSAyOnJldHVybiB6bCh4LDApO2Nhc2UgMzp2YXIgdT14WzE0XTx4WzE1XT8xOjA7cmV0dXJuIHUmJndZKHgsWzAscnksMywwXSk7Y2FzZSA0OnJldHVybiB3Tyh4LDEpLGEoeFsxOF0sMCk7Y2FzZSA1OnJldHVybiBWbCh4LDY0KTtkZWZhdWx0OnJldHVybiBWbCh4LDM3KX1zd2l0Y2godFswXSl7Y2FzZSAwOnZhciBpPVswLE1RLHRbMl0sTFFdLGY9eFsxNF08eFsxNV0/MTowLG89WzAsUlEsdFszXSxPUV0sbD1pWzNdLGQ9aVsyXSxrPWlbMV07cmV0dXJuIGYmJlNZKHgsMSxbMCwteFsxM118MCxbMSxpLG9dLChYeChrKStkfDApK1h4KGwpfDBdKTtjYXNlIDE6cmV0dXJuIDA7ZGVmYXVsdDp2YXIgaD10WzFdO3JldHVybiBWbCh4LDY0KSxWbCh4LGgpfWNhc2UgMTp2YXIgZz1yWzJdLEE9clsxXTtpZihnWzBdPT09MCl7dmFyIE49Z1sxXTtCZSh4LEEpO3ZhciBDPVswLG1PLExZKEJlLE4pXTt4WzIyXSYmKER2KEMseFs0XSksYSh4WzI2XSxDKSk7dmFyIE89eFsyM107cmV0dXJuIE8mJllsKHgsWzAscnksWzUsQ10sMF0pfXZhciBMPWdbMV07QmUoeCxBKTt2YXIgTT1MWShCZSxMKTtpZihBcihNLGt4KSl2YXIgVj1EJDtlbHNlIGZvcih2YXIgej1YeChNKSxZPWZ1bmN0aW9uKG94KXt2YXIgYjA9TSRbMV0sX3g9WnIoaHYpO3JldHVybiBhKGpyKGZ1bmN0aW9uKEIwKXtyZXR1cm4gV3MoX3gsQjApLE94KFUxKF94KSl9LDAsYjApLE0pfSx0MD1mdW5jdGlvbihveCl7Zm9yKHZhciBiMD1veDs7KXtpZihiMD09PXopcmV0dXJuIGIwO3ZhciBfeD1OMShNLGIwKTtpZihfeCE9PTkmJl94IT09MzIpcmV0dXJuIGIwO3ZhciBiMD1iMCsxfDB9fSxpMD10MCgwKSxqPWkwOzspe2lmKGohPT16JiYyNT49TjEoTSxqKStYNT4+PjApe3ZhciBqPWorMXwwO2NvbnRpbnVlfWZvcih2YXIgSz1tMihNLGkwLGotaTB8MCksSj10MChqKSxRPUo7Oyl7aWYoUSE9PXope3ZhciB4MD1OMShNLFEpLCQ9MDtpZig0ODw9eDA/NTg+eDAmJigkPTEpOngwPT09NDUmJigkPTEpLCQpe3ZhciBRPVErMXwwO2NvbnRpbnVlfX1pZihKPT09USl2YXIgZjA9MDtlbHNlIHRyeXt2YXIgczA9ZnQobTIoTSxKLFEtSnwwKSksZjA9czB9Y2F0Y2goYjApe3ZhciB2MD1DMShiMCk7aWYodjBbMV0hPT1fbil0aHJvdyBxMCh2MCwwKTt2YXIgZjA9WSgwKX10MChRKSE9PXomJlkoMCk7dmFyIG8wPTA7aWYoUChLLGt4KSYmUChLLFpFKSl2YXIgYzA9UChLLFwiaFwiKT9QKEssXCJob3ZcIik/UChLLFwiaHZcIik/UChLLFVEKT9ZKDApOjE6MjozOjA7ZWxzZSBvMD0xO2lmKG8wKXZhciBjMD00O3ZhciBWPVswLGYwLGMwXTticmVha31icmVha31yZXR1cm4gRVkoeCxWWzFdLFZbMl0pO2Nhc2UgMjp2YXIgZDA9clsxXSxFMD0wO2lmKHR5cGVvZiBkMD09XCJudW1iZXJcInx8ZDBbMF0hPT0wKUUwPTE7ZWxzZXt2YXIgTDA9ZDBbMl0sWDA9MDtpZih0eXBlb2YgTDA9PVwibnVtYmVyXCJ8fEwwWzBdIT09MSlYMD0xO2Vsc2UgdmFyIHh4PXJbMl0sZzA9TDBbMl0sJDA9ZDBbMV07WDAmJihFMD0xKX1pZihFMCl7dmFyIG4wPXJbMl0saXg9ZDA7ZT0yfWJyZWFrO2Nhc2UgMzp2YXIgcng9clsxXSxkeD0wO2lmKHR5cGVvZiByeD09XCJudW1iZXJcInx8cnhbMF0hPT0wKWR4PTE7ZWxzZXt2YXIgYXg9cnhbMl0sU3g9MDtpZih0eXBlb2YgYXg9PVwibnVtYmVyXCJ8fGF4WzBdIT09MSlTeD0xO2Vsc2V7dmFyIEQwPXJbMl0sTjA9YXhbMl0sQTA9cnhbMV07ZT0xfVN4JiYoZHg9MSl9aWYoZHgpe3ZhciBZMD1yWzJdLEMwPXJ4O2U9M31icmVhaztjYXNlIDQ6dmFyIEY9clsxXSxIPTA7aWYodHlwZW9mIEY9PVwibnVtYmVyXCJ8fEZbMF0hPT0wKUg9MTtlbHNle3ZhciBCPUZbMl0sYTA9MDtpZih0eXBlb2YgQj09XCJudW1iZXJcInx8QlswXSE9PTEpYTA9MTtlbHNlIHZhciB4eD1yWzJdLGcwPUJbMl0sJDA9RlsxXTthMCYmKEg9MSl9aWYoSCl7dmFyIG4wPXJbMl0saXg9RjtlPTJ9YnJlYWs7Y2FzZSA1OnZhciBtMD1yWzFdLFAwPTA7aWYodHlwZW9mIG0wPT1cIm51bWJlclwifHxtMFswXSE9PTApUDA9MTtlbHNle3ZhciBEPW0wWzJdLE8wPTA7aWYodHlwZW9mIEQ9PVwibnVtYmVyXCJ8fERbMF0hPT0xKU8wPTE7ZWxzZXt2YXIgRDA9clsyXSxOMD1EWzJdLEEwPW0wWzFdO2U9MX1PMCYmKFAwPTEpfWlmKFAwKXt2YXIgWTA9clsyXSxDMD1tMDtlPTN9YnJlYWs7Y2FzZSA2OnZhciBLMD1yWzJdO3JldHVybiBCZSh4LHJbMV0pLGEoSzAseCk7Y2FzZSA3OnJldHVybiBCZSh4LHJbMV0pLHpsKHgsMCk7ZGVmYXVsdDp2YXIgajA9clsyXTtyZXR1cm4gQmUoeCxyWzFdKSx5MihqMCl9c3dpdGNoKGUpe2Nhc2UgMDpyZXR1cm4gQmUoeCwkMCksVE8oeCxnMCx4eCk7Y2FzZSAxOnJldHVybiBCZSh4LEEwKSxUTyh4LE4wLFFkKDEsRDApKTtjYXNlIDI6cmV0dXJuIEJlKHgsaXgpLG55KHgsbjApO2RlZmF1bHQ6cmV0dXJuIEJlKHgsQzApLFZsKHgsWTApfX1mdW5jdGlvbiBKcih4KXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU9clsxXSx0PTA7cmV0dXJuIGpyKGZ1bmN0aW9uKHUpe3JldHVybiBCZSh4LHUpLDB9LHQsZSl9fWZvcig7Oyl7dmFyIE1ZPUhJWzFdLFVUMD1bMCwxXTtpZighKDEtcUkoSEksTVksZnVuY3Rpb24oeCxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHFJKHgsMSwwKSYmKHpsKE1UMCwwKSx6bChEVDAsMCkpLGEociwwKX19KFVUMCxNWSkpKSl7dmFyIGpUMD0yLEpUMD1mdW5jdGlvbih4KXt2YXIgcj1bMCwwXSxlPVh4KHgpLTF8MCx0PTA7aWYoZT49MClmb3IodmFyIHU9dDs7KXt2YXIgaT1OMSh4LHUpO3JbMV09KGJwKnJbMV18MCkraXwwO3ZhciBmPXUrMXwwO2lmKGUhPT11KXt2YXIgdT1mO2NvbnRpbnVlfWJyZWFrfXJbMV09clsxXSZGTTt2YXIgbz0xMDczNzQxODIzPHJbMV0/clsxXSsyMTQ3NDgzNjQ4fDA6clsxXTtyZXR1cm4gb30sWnM9dE8oWzAsVHhdKSxqdj10TyhbMCxUeF0pLGdvPXRPKFswLGp0XSksRFk9V0koMCwwKSxYVDA9WzAsMF0sVVk9ZnVuY3Rpb24oeCl7cmV0dXJuIDI8eD9VWSgoeCsxfDApLzJ8MCkqMnwwOnh9LGpZPWZ1bmN0aW9uKHgpe1hUMFsxXSsrO3ZhciByPXgubGVuZ3RoLTEsZT1KYSgocioyfDApKzJ8MCxEWSk7ejEoZSwwKVsxXT1yO3ZhciB0PSgoVVkocikqMzJ8MCkvOHwwKS0xfDA7ejEoZSwxKVsyXT10O3ZhciB1PXItMXwwLGk9MDtpZih1Pj0wKWZvcih2YXIgZj1pOzspe3ZhciBvPShmKjJ8MCkrM3wwLGw9ejEoeCxmKVsxK2ZdO3oxKGUsbylbMStvXT1sO3ZhciBkPWYrMXwwO2lmKHUhPT1mKXt2YXIgZj1kO2NvbnRpbnVlfWJyZWFrfXJldHVyblswLGpUMCxlLGp2WzFdLGdvWzFdLDAsMCxac1sxXSwwXX0sRU89ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzJdLmxlbmd0aC0xLHQ9ZTxyPzE6MDtpZih0KXt2YXIgdT1KYShyLERZKSxpPXhbMl0sZj0wOzA8PWUmJihpLmxlbmd0aC0xLWV8MCk+PTAmJih1Lmxlbmd0aC0xLWV8MCk+PTAmJihmVyhpLDAsdSwwLGUpLGY9MSksZnx8eTIoQ1opLHhbMl09dTt2YXIgbz0wfWVsc2UgdmFyIG89dDtyZXR1cm4gb30sSlk9WzAsMF0sWVQwPVswLDBdLGdPPWZ1bmN0aW9uKHgpe3ZhciByPXhbMl0ubGVuZ3RoLTE7cmV0dXJuIEVPKHgscisxfDApLHJ9LEtsPWZ1bmN0aW9uKHgscil7dHJ5e3ZhciBlPXAoanZbMjhdLHIseFszXSk7cmV0dXJuIGV9Y2F0Y2goaSl7dmFyIHQ9QzEoaSk7aWYodCE9PUUyKXRocm93IHEwKHQsMCk7dmFyIHU9Z08oeCk7cmV0dXJuIHhbM109SDAoanZbNF0scix1LHhbM10pLHhbNF09SDAoZ29bNF0sdSwxLHhbNF0pLHV9fSxBTz1mdW5jdGlvbih4LHIpe3JldHVybiBHZChmdW5jdGlvbihlKXtyZXR1cm4gS2woeCxlKX0scil9LFhZPWZ1bmN0aW9uKHgscixlKXtyZXR1cm4gWVQwWzFdKysscChnb1syOF0scix4WzRdKT8oRU8oeCxyKzF8MCksejEoeFsyXSxyKVsxK3JdPWUsMCk6KHhbNl09WzAsWzAscixlXSx4WzZdXSwwKX0sUE89ZnVuY3Rpb24oeCl7aWYoeD09PTApcmV0dXJuIDA7Zm9yKHZhciByPXgubGVuZ3RoLTEtMXwwLGU9MDs7KXtpZigwPnIpcmV0dXJuIGU7dmFyIHQ9WzAseFsxK3JdLGVdLHI9ci0xfDAsZT10fX0sTk89ZnVuY3Rpb24oeCxyKXt0cnl7dmFyIGU9cChac1syOF0scix4WzddKTtyZXR1cm4gZX1jYXRjaChpKXt2YXIgdD1DMShpKTtpZih0IT09RTIpdGhyb3cgcTAodCwwKTt2YXIgdT14WzFdO3JldHVybiB4WzFdPXUrMXwwLFAocixreCkmJih4WzddPUgwKFpzWzRdLHIsdSx4WzddKSksdX19LENPPWZ1bmN0aW9uKHgpe3JldHVybiBVZCh4LDApP1swXTp4fSxJTz1mdW5jdGlvbih4LHIsZSx0LHUsaSl7dmFyIGY9dVsyXSxvPXVbNF0sbD1QTyhyKSxkPVBPKGUpLGs9UE8odCksaD1UbihmdW5jdGlvbihvMCl7cmV0dXJuIEtsKHgsbzApfSxkKSxnPVRuKGZ1bmN0aW9uKG8wKXtyZXR1cm4gS2woeCxvMCl9LGspO3hbNV09WzAsWzAseFszXSx4WzRdLHhbNl0seFs3XSxoLGxdLHhbNV1dO3ZhciBBPVpzWzFdLE49eFs3XTtmdW5jdGlvbiBDKG8wLGMwLGQwKXtyZXR1cm4gZU8obzAsbCk/SDAoWnNbNF0sbzAsYzAsZDApOmQwfXhbN109SDAoWnNbMTNdLEMsTixBKTt2YXIgTz1bMCxqdlsxXV0sTD1bMCxnb1sxXV07SFgoZnVuY3Rpb24obzAsYzApe09bMV09SDAoanZbNF0sbzAsYzAsT1sxXSk7dmFyIGQwPUxbMV07dHJ5e3ZhciBFMD1wKGdvWzI4XSxjMCx4WzRdKSxMMD1FMH1jYXRjaCh4eCl7dmFyIFgwPUMxKHh4KTtpZihYMCE9PUUyKXRocm93IHEwKFgwLDApO3ZhciBMMD0xfXJldHVybiBMWzFdPUgwKGdvWzRdLGMwLEwwLGQwKSwwfSxrLGcpLEhYKGZ1bmN0aW9uKG8wLGMwKXtyZXR1cm4gT1sxXT1IMChqdls0XSxvMCxjMCxPWzFdKSxMWzFdPUgwKGdvWzRdLGMwLDAsTFsxXSksMH0sZCxoKSx4WzNdPU9bMV0seFs0XT1MWzFdO3ZhciBNPTAsVj14WzZdO3hbNl09eE8oZnVuY3Rpb24obzAsYzApe3JldHVybiBlTyhvMFsxXSxoKT9jMDpbMCxvMCxjMF19LFYsTSk7dmFyIHo9aT9wKGYseCxvKTphKGYseCksWT1SbCh4WzVdKSx0MD1ZWzZdLGkwPVlbNV0saj1ZWzRdLEs9WVszXSxKPVlbMl0sUT1ZWzFdO3hbNV09cVgoeFs1XSkseFs3XT1IMShmdW5jdGlvbihvMCxjMCl7dmFyIGQwPXAoWnNbMjhdLGMwLHhbN10pO3JldHVybiBIMChac1s0XSxjMCxkMCxvMCl9LGosdDApLHhbM109USx4WzRdPUo7dmFyIHgwPXhbNl07eFs2XT14TyhmdW5jdGlvbihvMCxjMCl7cmV0dXJuIGVPKG8wWzFdLGkwKT9jMDpbMCxvMCxjMF19LHgwLEspO3ZhciAkPTAsZjA9Q08odCksczA9WzAsR2QoZnVuY3Rpb24obzApe3ZhciBjMD1LbCh4LG8wKTt0cnl7Zm9yKHZhciBkMD14WzZdOzspe2lmKCFkMCl0aHJvdyBxMChFMiwxKTt2YXIgRTA9ZDBbMV0sTDA9ZDBbMl0sWDA9RTBbMl07aWYoQ1goRTBbMV0sYzApPT09MClyZXR1cm4gWDA7dmFyIGQwPUwwfX1jYXRjaChnMCl7dmFyIHh4PUMxKGcwKTtpZih4eD09PUUyKXJldHVybiB6MSh4WzJdLGMwKVsxK2MwXTt0aHJvdyBxMCh4eCwwKX19LGYwKSwkXSx2MD1DTyhyKTtyZXR1cm4gY1coWzAsWzAsel0sWzAsR2QoZnVuY3Rpb24obzApe3RyeXt2YXIgYzA9cChac1syOF0sbzAseFs3XSk7cmV0dXJuIGMwfWNhdGNoKEUwKXt2YXIgZDA9QzEoRTApO3Rocm93IGQwPT09RTI/cTAoWzAsd3IselFdLDEpOnEwKGQwLDApfX0sdjApLHMwXV0pfSx1eT1mdW5jdGlvbih4LHIpe2lmKHg9PT0wKXZhciBlPWpZKFswXSk7ZWxzZXt2YXIgdD1qWShHZChKVDAseCkpLHU9eC5sZW5ndGgtMS0xfDAsaT0wO2lmKHU+PTApZm9yKHZhciBmPWk7Oyl7dmFyIG89KGYqMnwwKSsyfDA7dFszXT1IMChqdls0XSx4WzErZl0sbyx0WzNdKSx0WzRdPUgwKGdvWzRdLG8sMSx0WzRdKTt2YXIgbD1mKzF8MDtpZih1IT09Zil7dmFyIGY9bDtjb250aW51ZX1icmVha312YXIgZT10fXZhciBkPWEocixlKTtyZXR1cm4gSllbMV09KEpZWzFdK2VbMV18MCktMXwwLGVbOF09QXgoZVs4XSksRU8oZSwzKygoejEoZVsyXSwxKVsyXSoxNnwwKS8zMnwwKXwwKSxbMCxhKGQsMCkscixkLDBdfSxpeT1mdW5jdGlvbih4LHIpe2lmKHgpcmV0dXJuIHg7dmFyIGU9V0koR3IsclsxXSk7cmV0dXJuIGVbMV09clsyXSx4WihlKX0sT089ZnVuY3Rpb24oeCxyLGUpe2lmKHgpcmV0dXJuIHI7dmFyIHQ9ZVs4XTtpZih0IT09MClmb3IodmFyIHU9dDs7KXtpZih1KXt2YXIgaT11WzJdO2EodVsxXSxyKTt2YXIgdT1pO2NvbnRpbnVlfWJyZWFrfXJldHVybiByfSxmeT1mdW5jdGlvbih4KXt2YXIgcj1nTyh4KSxlPTA7aWYociUyfDAmJigyKygoejEoeFsyXSwxKVsyXSoxNnwwKS8zMnwwKXwwKT49cil7dmFyIHQ9Z08oeCk7ZT0xfWlmKCFlKXZhciB0PXI7cmV0dXJuIHoxKHhbMl0sdClbMSt0XT0wLHR9LFJPPWZ1bmN0aW9uKHgscil7Zm9yKHZhciBlPVswLDBdLHQ9ci5sZW5ndGgtMTs7KXtpZihlWzFdPj10KXJldHVybiAwO3ZhciB1PWVbMV0saT16MShyLHUpWzErdV0sZj1mdW5jdGlvbihfeCl7ZVsxXSsrO3ZhciBCMD1lWzFdO3JldHVybiB6MShyLEIwKVsxK0IwXX0sbz1mKDApO2lmKHR5cGVvZiBvPT1cIm51bWJlclwiKXN3aXRjaChvKXtjYXNlIDA6dmFyIGw9ZigwKSxiMD1mdW5jdGlvbihCMCl7cmV0dXJuIGZ1bmN0aW9uKFQpe3JldHVybiBCMH19KGwpO2JyZWFrO2Nhc2UgMTp2YXIgZD1mKDApLGIwPWZ1bmN0aW9uKEIwKXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIFRbMStCMF19fShkKTticmVhaztjYXNlIDI6dmFyIGs9ZigwKSxoPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBYWzErQjBdWzErVF19fShrLGgpO2JyZWFrO2Nhc2UgMzp2YXIgZz1mKDApLGIwPWZ1bmN0aW9uKEIwKXtyZXR1cm4gZnVuY3Rpb24oVCl7cmV0dXJuIGEoVFsxXVsxK0IwXSxUKX19KGcpO2JyZWFrO2Nhc2UgNDp2YXIgQT1mKDApLGIwPWZ1bmN0aW9uKEIwKXtyZXR1cm4gZnVuY3Rpb24oVCxYKXtyZXR1cm4gVFsxK0IwXT1YLDB9fShBKTticmVhaztjYXNlIDU6dmFyIE49ZigwKSxDPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBhKEIwLFQpfX0oTixDKTticmVhaztjYXNlIDY6dmFyIE89ZigwKSxMPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBhKEIwLFhbMStUXSl9fShPLEwpO2JyZWFrO2Nhc2UgNzp2YXIgTT1mKDApLFY9ZigwKSx6PWYoMCksYjA9ZnVuY3Rpb24oQjAsVCxYKXtyZXR1cm4gZnVuY3Rpb24oRjApe3JldHVybiBhKEIwLEYwWzErVF1bMStYXSl9fShNLFYseik7YnJlYWs7Y2FzZSA4OnZhciBZPWYoMCksdDA9ZigwKSxiMD1mdW5jdGlvbihCMCxUKXtyZXR1cm4gZnVuY3Rpb24oWCl7cmV0dXJuIGEoQjAsYShYWzFdWzErVF0sWCkpfX0oWSx0MCk7YnJlYWs7Y2FzZSA5OnZhciBpMD1mKDApLGo9ZigwKSxLPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCxYKXtyZXR1cm4gZnVuY3Rpb24oRjApe3JldHVybiBwKEIwLFQsWCl9fShpMCxqLEspO2JyZWFrO2Nhc2UgMTA6dmFyIEo9ZigwKSxRPWYoMCkseDA9ZigwKSxiMD1mdW5jdGlvbihCMCxULFgpe3JldHVybiBmdW5jdGlvbihGMCl7cmV0dXJuIHAoQjAsVCxGMFsxK1hdKX19KEosUSx4MCk7YnJlYWs7Y2FzZSAxMTp2YXIgJD1mKDApLGYwPWYoMCksczA9ZigwKSx2MD1mKDApLGIwPWZ1bmN0aW9uKEIwLFQsWCxGMCl7cmV0dXJuIGZ1bmN0aW9uKHN4KXtyZXR1cm4gcChCMCxULHN4WzErWF1bMStGMF0pfX0oJCxmMCxzMCx2MCk7YnJlYWs7Y2FzZSAxMjp2YXIgbzA9ZigwKSxjMD1mKDApLGQwPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCxYKXtyZXR1cm4gZnVuY3Rpb24oRjApe3JldHVybiBwKEIwLFQsYShGMFsxXVsxK1hdLEYwKSl9fShvMCxjMCxkMCk7YnJlYWs7Y2FzZSAxMzp2YXIgRTA9ZigwKSxMMD1mKDApLFgwPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCxYKXtyZXR1cm4gZnVuY3Rpb24oRjApe3JldHVybiBwKEIwLEYwWzErVF0sWCl9fShFMCxMMCxYMCk7YnJlYWs7Y2FzZSAxNDp2YXIgeHg9ZigwKSxnMD1mKDApLCQwPWYoMCksbjA9ZigwKSxiMD1mdW5jdGlvbihCMCxULFgsRjApe3JldHVybiBmdW5jdGlvbihzeCl7cmV0dXJuIHAoQjAsc3hbMStUXVsxK1hdLEYwKX19KHh4LGcwLCQwLG4wKTticmVhaztjYXNlIDE1OnZhciBpeD1mKDApLHJ4PWYoMCksZHg9ZigwKSxiMD1mdW5jdGlvbihCMCxULFgpe3JldHVybiBmdW5jdGlvbihGMCl7cmV0dXJuIHAoQjAsYShGMFsxXVsxK1RdLEYwKSxYKX19KGl4LHJ4LGR4KTticmVhaztjYXNlIDE2OnZhciBheD1mKDApLFN4PWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBwKFhbMV1bMStCMF0sWCxUKX19KGF4LFN4KTticmVhaztjYXNlIDE3OnZhciBEMD1mKDApLE4wPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBwKFhbMV1bMStCMF0sWCxYWzErVF0pfX0oRDAsTjApO2JyZWFrO2Nhc2UgMTg6dmFyIEEwPWYoMCksWTA9ZigwKSxDMD1mKDApLGIwPWZ1bmN0aW9uKEIwLFQsWCl7cmV0dXJuIGZ1bmN0aW9uKEYwKXtyZXR1cm4gcChGMFsxXVsxK0IwXSxGMCxGMFsxK1RdWzErWF0pfX0oQTAsWTAsQzApO2JyZWFrO2Nhc2UgMTk6dmFyIEY9ZigwKSxIPWYoMCksYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3ZhciBGMD1hKFhbMV1bMStUXSxYKTtyZXR1cm4gcChYWzFdWzErQjBdLFgsRjApfX0oRixIKTticmVhaztjYXNlIDIwOnZhciBCPWYoMCksYTA9ZigwKTtmeSh4KTt2YXIgYjA9ZnVuY3Rpb24oQjAsVCl7cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiBhKHF4KFQsQjAsMCksVCl9fShCLGEwKTticmVhaztjYXNlIDIxOnZhciBtMD1mKDApLFAwPWYoMCk7ZnkoeCk7dmFyIGIwPWZ1bmN0aW9uKEIwLFQpe3JldHVybiBmdW5jdGlvbihYKXt2YXIgRjA9WFsxK1RdO3JldHVybiBhKHF4KEYwLEIwLDApLEYwKX19KG0wLFAwKTticmVhaztjYXNlIDIyOnZhciBEPWYoMCksTzA9ZigwKSxLMD1mKDApO2Z5KHgpO3ZhciBiMD1mdW5jdGlvbihCMCxULFgpe3JldHVybiBmdW5jdGlvbihGMCl7dmFyIHN4PUYwWzErVF1bMStYXTtyZXR1cm4gYShxeChzeCxCMCwwKSxzeCl9fShELE8wLEswKTticmVhaztkZWZhdWx0OnZhciBqMD1mKDApLG94PWYoMCk7ZnkoeCk7dmFyIGIwPWZ1bmN0aW9uKEIwLFQpe3JldHVybiBmdW5jdGlvbihYKXt2YXIgRjA9YShYWzFdWzErVF0sWCk7cmV0dXJuIGEocXgoRjAsQjAsMCksRjApfX0oajAsb3gpfWVsc2UgdmFyIGIwPW87WFkoeCxpLGIwKSxlWzFdKyt9fSxZWT1mdW5jdGlvbih4LHIpe3ZhciBlPXIubGVuZ3RoLTEsdD1XSSgwLGUpLHU9ZS0xfDAsaT0wO2lmKHU+PTApZm9yKHZhciBmPWk7Oyl7dmFyIG89ejEocixmKVsxK2ZdO2lmKHR5cGVvZiBvPT1cIm51bWJlclwiKXN3aXRjaChvKXtjYXNlIDA6dmFyIGs9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gTihDKXt2YXIgTz10WzErQV07aWYoTj09PU8pdGhyb3cgcTAoWzAsTmwseF0sMSk7cmV0dXJuIGEoTyxDKX1yZXR1cm4gTn0oZik7YnJlYWs7Y2FzZSAxOnZhciBsPVtdO0kwKGwsW2g4LGZ1bmN0aW9uKEEsTil7cmV0dXJuIGZ1bmN0aW9uKEMpe3ZhciBPPXRbMStOXTtpZihBPT09Tyl0aHJvdyBxMChbMCxObCx4XSwxKTt2YXIgTD1MdihPKTtpZihPdj09PUwpcmV0dXJuIE9bMV07aWYoaDghPT1MKXJldHVybiBPO3ZhciBNPU9bMV07T1sxXT15VDA7dHJ5e3ZhciBWPWEoTSwwKTtyZXR1cm4gSFcoTyxWKSxWfWNhdGNoKFkpe3ZhciB6PUMxKFkpO3Rocm93IE9bMV09ZnVuY3Rpb24odDApe3Rocm93IHEwKHosMCl9LHEwKHosMCl9fX0obCxmKV0pO3ZhciBrPWw7YnJlYWs7ZGVmYXVsdDp2YXIgZD1mdW5jdGlvbihBKXt0aHJvdyBxMChbMCxObCx4XSwxKX0saz1bMCxkLGQsZCwwXX1lbHNlIHZhciBrPW9bMF09PT0wP1lZKHgsb1sxXSk6b1sxXTt0WzErZl09azt2YXIgaD1mKzF8MDtpZih1IT09Zil7dmFyIGY9aDtjb250aW51ZX1icmVha31yZXR1cm4gdH0sVlk9ZnVuY3Rpb24oeCxyLGUpe2lmKEx2KGUpPT09MCYmeC5sZW5ndGgtMTw9ZS5sZW5ndGgtMSl7dmFyIHQ9eC5sZW5ndGgtMS0xfDAsdT0wO2lmKHQ+PTApZm9yKHZhciBpPXU7Oyl7dmFyIGY9ZVsxK2ldLG89ejEoeCxpKVsxK2ldO2lmKHR5cGVvZiBvPT1cIm51bWJlclwiKWlmKG89PT0yKXt2YXIgbD0wO2lmKEx2KGYpPT09MCYmZi5sZW5ndGgtMT09PTQpZm9yKHZhciBkPTAsaz1yWzEraV07Oyl7a1sxK2RdPWZbMStkXTt2YXIgaD1kKzF8MDtpZihkIT09Myl7dmFyIGQ9aDtjb250aW51ZX1icmVha31lbHNlIGw9MTtpZihsKXRocm93IHEwKFswLHdyLEtRXSwxKX1lbHNlIHJbMStpXT1mO2Vsc2Ugb1swXT09PTAmJlZZKG9bMV0sclsxK2ldLGYpO3ZhciBnPWkrMXwwO2lmKHQhPT1pKXt2YXIgaT1nO2NvbnRpbnVlfWJyZWFrfXJldHVybiAwfXRocm93IHEwKFswLHdyLEJRXSwxKX07dHJ5e1ZYKFwiVE1QRElSXCIpfWNhdGNoKHgpe3ZhciB6WT1DMSh4KTtpZih6WSE9PUUyKXRocm93IHEwKHpZLDApfXRyeXtWWChcIlRFTVBcIil9Y2F0Y2goeCl7dmFyIEtZPUMxKHgpO2lmKEtZIT09RTIpdGhyb3cgcTAoS1ksMCl9UChRWCxFSikmJlAoUVgsXCJXaW4zMlwiKTt2YXIgYmM9ZnVuY3Rpb24oeCxyKXtmdW5jdGlvbiBlKHQpe3JldHVybiBzdCh4LHQpfXJldHVybiBiMzw9cj8oZShoYXxyPj4+MTh8MCksZShtMXwocj4+PjEyfDApJjYzKSxlKG0xfChyPj4+NnwwKSY2MyksZShtMXxyJjYzKSk6c0M8PXI/KGUoZ2F8cj4+PjEyfDApLGUobTF8KHI+Pj42fDApJjYzKSxlKG0xfHImNjMpKTptMTw9cj8oZShtYXxyPj4+NnwwKSxlKG0xfHImNjMpKTplKHIpfSxBbz1bR3IsJFEsSnMoMCldLEJZPTAsV1k9MCxaWT0wLCRZPTAsRlk9MCxRWT0wLEdZPTAscVk9MCxIWT0wLGJZPTAsbT1mdW5jdGlvbih4KXtpZih4WzNdPT09eFsyXSlyZXR1cm4tMTt2YXIgcj14WzFdWzEreFszXV07cmV0dXJuIHhbM109eFszXSsxfDAscj09PTEwJiYoeFs1XSE9PTAmJih4WzVdPXhbNV0rMXwwKSx4WzRdPXhbM10pLHJ9LGUwPWZ1bmN0aW9uKHgscil7cmV0dXJuIHhbOV09eFszXSx4WzEwXT14WzRdLHhbMTFdPXhbNV0seFsxMl09ciwwfSxwcj1mdW5jdGlvbih4KXtyZXR1cm4geFs2XT14WzNdLHhbN109eFs0XSx4WzhdPXhbNV0sZTAoeCwtMSl9LHc9ZnVuY3Rpb24oeCl7cmV0dXJuIHhbM109eFs5XSx4WzRdPXhbMTBdLHhbNV09eFsxMV0seFsxMl19LCRhPWZ1bmN0aW9uKHgpe3JldHVybiB4WzNdPXhbNl0seFs0XT14WzddLHhbNV09eFs4XSwwfSxMTz1mdW5jdGlvbih4LHIpe3JldHVybiB4WzZdPXIsMH0sY3k9ZnVuY3Rpb24oeCl7cmV0dXJuIHhbM10teFs2XXwwfSx0MT1mdW5jdGlvbih4KXt2YXIgcj14WzNdLXhbNl18MCxlPXhbNl0sdD14WzFdO3JldHVybiAwPD1lJiYwPD1yJiYodC5sZW5ndGgtMS1yfDApPj1lP3NXKHQsZSxyKTp5MihJWil9LHhWPWZ1bmN0aW9uKHgpe3ZhciByPXhbNl07cmV0dXJuIHoxKHhbMV0scilbMStyXX0sQmw9ZnVuY3Rpb24oeCxyLGUsdCl7Zm9yKHZhciB1PVswLHJdLGk9WzAsZV0sZj1bMCwwXTs7KXtpZigwPj1pWzFdKXJldHVybiBmWzFdO3ZhciBvPXhbMSt1WzFdXTtpZigwPm8pdGhyb3cgcTAoQW8sMSk7aWYoWXI8bylpZih1VTxvKWlmKEhwPG8pe2lmKGY1PG8pdGhyb3cgcTAoQW8sMSk7S3IodCxmWzFdLGhhfG8+Pj4xOHwwKSxLcih0LGZbMV0rMXwwLG0xfChvPj4+MTJ8MCkmNjMpLEtyKHQsZlsxXSsyfDAsbTF8KG8+Pj42fDApJjYzKSxLcih0LGZbMV0rM3wwLG0xfG8mNjMpLGZbMV09ZlsxXSs0fDB9ZWxzZSBLcih0LGZbMV0sZ2F8bz4+PjEyfDApLEtyKHQsZlsxXSsxfDAsbTF8KG8+Pj42fDApJjYzKSxLcih0LGZbMV0rMnwwLG0xfG8mNjMpLGZbMV09ZlsxXSszfDA7ZWxzZSBLcih0LGZbMV0sbWF8bz4+PjZ8MCksS3IodCxmWzFdKzF8MCxtMXxvJjYzKSxmWzFdPWZbMV0rMnwwO2Vsc2UgS3IodCxmWzFdLG8pLGZbMV0rKzt1WzFdKyssaVsxXSs9LTF9fSxyVj1mdW5jdGlvbih4KXtmb3IodmFyIHI9WHgoeCksZT1KYShyLDApLHQ9WzAsMF0sdT1bMCwwXTs7KXtpZih0WzFdPj1yKXJldHVyblswLGUsdVsxXSxiWSxIWSxxWSxHWSxRWSxGWSwkWSxaWSxXWSxCWV07dmFyIGk9ZngoeCx0WzFdKSxmPTA7aWYobWE8PWkpaWYoaGE8PWkpaWYoR3I8PWkpZj0xO2Vsc2V7dmFyIG89ZngoeCx0WzFdKzF8MCksbD1meCh4LHRbMV0rMnwwKSxkPWZ4KHgsdFsxXSszfDApLGs9KG8+Pj42fDApIT09Mj8xOjA7aWYoayl2YXIgZz1rO2Vsc2UgdmFyIGg9KGw+Pj42fDApIT09Mj8xOjAsZz1ofHwoKGQ+Pj42fDApIT09Mj8xOjApO2lmKGcpdGhyb3cgcTAoQW8sMSk7dmFyIEE9KGkmNyk8PDE4fChvJjYzKTw8MTJ8KGwmNjMpPDw2fGQmNjM7aWYoZjU8QSl0aHJvdyBxMChBbywxKTtlWzErdVsxXV09QSx0WzFdPXRbMV0rNHwwfWVsc2UgaWYoZ2E8PWkpe3ZhciBOPWZ4KHgsdFsxXSsxfDApLEM9ZngoeCx0WzFdKzJ8MCksTz0oaSYxNSk8PDEyfChOJjYzKTw8NnxDJjYzLEw9KE4+Pj42fDApIT09Mj8xOjAsTT1MfHwoKEM+Pj42fDApIT09Mj8xOjApO2lmKE0pdmFyIHo9TTtlbHNlIHZhciBWPTU1Mjk2PD1PPzE6MCx6PVYmJihPPD01NzM0Mz8xOjApO2lmKHopdGhyb3cgcTAoQW8sMSk7ZVsxK3VbMV1dPU8sdFsxXT10WzFdKzN8MH1lbHNle3ZhciBZPWZ4KHgsdFsxXSsxfDApO2lmKChZPj4+NnwwKSE9PTIpdGhyb3cgcTAoQW8sMSk7ZVsxK3VbMV1dPShpJjMxKTw8NnxZJjYzLHRbMV09dFsxXSsyfDB9ZWxzZSBtMTw9aT9mPTE6KGVbMSt1WzFdXT1pLHRbMV0rKyk7aWYoZil0aHJvdyBxMChBbywxKTt1WzFdKyt9fSxXbD1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9eFs2XStyfDAsdT13MShlKjR8MCksaT14WzFdO2lmKCh0K2V8MCk8PWkubGVuZ3RoLTEpcmV0dXJuIFZhKHUsMCxCbChpLHQsZSx1KSk7dGhyb3cgcTAoWzAsd3IsWlFdLDEpfSxZeD1mdW5jdGlvbih4KXt2YXIgcj14WzZdLGU9eFszXS1yfDAsdD13MShlKjR8MCk7cmV0dXJuIFZhKHQsMCxCbCh4WzFdLHIsZSx0KSl9LHN5PWZ1bmN0aW9uKHgscil7dmFyIGU9eFs2XSx0PXhbM10tZXwwLHU9dzEodCo0fDApO3JldHVybiBmTyhyLHUsMCxCbCh4WzFdLGUsdCx1KSl9LFpsPWZ1bmN0aW9uKHgpe3ZhciByPXgubGVuZ3RoLTEsZT13MShyKjR8MCk7cmV0dXJuIFZhKGUsMCxCbCh4LDAscixlKSl9LGVWPWZ1bmN0aW9uKHgscil7cmV0dXJuIHhbM109eFszXS1yfDAsMH0seHM9ZnVuY3Rpb24oeCl7cmV0dXJuIHR5cGVvZiB4PT1cIm51bWJlclwiPzA6eFswXT09PTA/MTp4WzFdfSxKdj1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT14cyh4KSxpPXhzKHQpLGY9aTw9dT91KzF8MDppKzF8MDtyZXR1cm4gZj09PTE/WzAscixlXTpbMSxmLHIsZSx4LHRdfSxveT1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT14cyh4KSxpPXhzKHQpLGY9aTw9dT91KzF8MDppKzF8MDtyZXR1cm5bMSxmLHIsZSx4LHRdfSx0Vj1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT14cyh4KSxpPXhzKHQpO2lmKChpKzJ8MCk8dSl7dmFyIGY9eFs1XSxvPXhbNF0sbD14WzNdLGQ9eFsyXSxrPXhzKGYpO2lmKGs8PXhzKG8pKXJldHVybiBveShvLGQsbCxKdihmLHIsZSx0KSk7dmFyIGg9Zls0XSxnPWZbM10sQT1mWzJdLE49SnYoZls1XSxyLGUsdCk7cmV0dXJuIG95KEp2KG8sZCxsLGgpLEEsZyxOKX1pZigodSsyfDApPj1pKXJldHVybiBKdih4LHIsZSx0KTt2YXIgQz10WzVdLE89dFs0XSxMPXRbM10sTT10WzJdLFY9eHMoTyk7aWYoVjw9eHMoQykpcmV0dXJuIG95KEp2KHgscixlLE8pLE0sTCxDKTt2YXIgej1PWzRdLFk9T1szXSx0MD1PWzJdLGkwPUp2KE9bNV0sTSxMLEMpO3JldHVybiBveShKdih4LHIsZSx6KSx0MCxZLGkwKX0sVlQwPTAsRmE9ZnVuY3Rpb24oeCxyKXtmb3IodmFyIGU9eCx0PXI7Oyl7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpcmV0dXJuIHQ7aWYoZVswXT09PTApcmV0dXJuWzAsZVsxXSwwLHRdO3ZhciB1PVswLGVbMl0sZVs0XSx0XSxlPWVbM10sdD11fX0sblY9ZnVuY3Rpb24oeCxyKXtpZigheClyZXR1cm4gMDt2YXIgZT14WzFdLHQ9RmEoeFsyXSx4WzNdKTtyZXR1cm5bMCxlLGZ1bmN0aW9uKHUpe3JldHVybiBuVih0LHUpfV19LHpUMD1mdW5jdGlvbih4KXt2YXIgcj1GYSh4LDApO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gblYocixlKX19LCRzPWZ1bmN0aW9uKHgpe3JldHVybiB0eXBlb2YgeD09XCJudW1iZXJcIj8wOnhbMF09PT0wPzE6eFsxXX0sS1QwPWZ1bmN0aW9uKHgpe3JldHVyblswLHhdfSxXZT1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9MDtpZih0eXBlb2YgeD09XCJudW1iZXJcIil7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpcmV0dXJuWzAscl07ZVswXT09PTEmJih0PTEpfWVsc2UgaWYoeFswXT09PTApdHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0xJiYodD0xKTtlbHNle3ZhciB1PXhbMV07aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0xKXt2YXIgaT1lWzFdLGY9aTw9dT91KzF8MDppKzF8MDtyZXR1cm5bMSxmLHIseCxlXX12YXIgbz11O3Q9Mn1zd2l0Y2godCl7Y2FzZSAxOnZhciBvPWVbMV07YnJlYWs7Y2FzZSAwOnJldHVyblsxLDIscix4LGVdfXJldHVyblsxLG8rMXwwLHIseCxlXX0sUG89ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PSRzKHgpLHU9JHMoZSksaT11PD10P3QrMXwwOnUrMXwwO3JldHVyblsxLGkscix4LGVdfSx2eT1mdW5jdGlvbih4LHIpe2lmKHI9PT0wKXJldHVybiAwO2lmKHI9PT0xKXJldHVyblswLGEoeCwwKV07dmFyIGU9cj4+PjF8MCx0PXZ5KHgsZSksdT1hKHgsMCksaT12eSh4LChyLWV8MCktMXwwKTtyZXR1cm5bMSwkcyh0KSsxfDAsdSx0LGldfSxCVDA9ZnVuY3Rpb24oeCl7dmFyIHI9WzAsMF0sZT14Lmxlbmd0aC0xO3JldHVybiB2eShmdW5jdGlvbih0KXt2YXIgdT1yWzFdLGk9ejEoeCx1KVsxK3VdO3JldHVybiByWzFdKyssaX0sZSl9LFl0PWZ1bmN0aW9uKHgscixlKXt2YXIgdD0kcyh4KSx1PSRzKGUpO2lmKCh1KzJ8MCk8dCl7dmFyIGk9eFs0XSxmPXhbM10sbz14WzJdLGw9JHMoaSk7aWYobDw9JHMoZikpcmV0dXJuIFBvKGYsbyxXZShpLHIsZSkpO3ZhciBkPWlbM10saz1pWzJdLGg9V2UoaVs0XSxyLGUpO3JldHVybiBQbyhXZShmLG8sZCksayxoKX1pZigodCsyfDApPj11KXJldHVybiBXZSh4LHIsZSk7dmFyIGc9ZVs0XSxBPWVbM10sTj1lWzJdLEM9JHMoQSk7aWYoQzw9JHMoZykpcmV0dXJuIFBvKFdlKHgscixBKSxOLGcpO3ZhciBPPUFbM10sTD1BWzJdLE09V2UoQVs0XSxOLGcpO3JldHVybiBQbyhXZSh4LHIsTyksTCxNKX0sdVY9ZnVuY3Rpb24oeCxyKXtpZih0eXBlb2Ygcj09XCJudW1iZXJcIilyZXR1cm5bMCx4XTtpZihyWzBdPT09MClyZXR1cm4gV2UoWzAseF0sclsxXSwwKTt2YXIgZT1yWzRdLHQ9clsyXTtyZXR1cm4gWXQodVYoeCxyWzNdKSx0LGUpfSxpVj1mdW5jdGlvbih4LHIpe2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXJldHVyblswLHhdO2lmKHJbMF09PT0wKXJldHVybiBXZSgwLHJbMV0sWzAseF0pO3ZhciBlPXJbM10sdD1yWzJdO3JldHVybiBZdChlLHQsaVYoeCxyWzRdKSl9LFkyPWZ1bmN0aW9uKHgscixlKXtpZih0eXBlb2YgeD09XCJudW1iZXJcIilyZXR1cm4gdVYocixlKTtpZih4WzBdPT09MCl7aWYodHlwZW9mIGUhPVwibnVtYmVyXCIpe2lmKGVbMF09PT0wKXJldHVybiBXZSh4LHIsZSk7dmFyIHQ9ZVs0XSx1PWVbM10saT1lWzJdO3JldHVybiAzPGVbMV0/WXQoWTIoeCxyLHUpLGksdCk6UG8oeCxyLGUpfX1lbHNle3ZhciBmPXhbNF0sbz14WzNdLGw9eFsyXSxkPXhbMV07aWYodHlwZW9mIGUhPVwibnVtYmVyXCIpe2lmKGVbMF09PT0wKXJldHVybiAzPGQ/WXQobyxsLFkyKGYscixlKSk6UG8oeCxyLGUpO3ZhciBrPWVbMV0saD1lWzRdLGc9ZVszXSxBPWVbMl07cmV0dXJuKGsrMnwwKTxkP1l0KG8sbCxZMihmLHIsZSkpOihkKzJ8MCk8az9ZdChZMih4LHIsZyksQSxoKTpQbyh4LHIsZSl9fXJldHVybiBpVihyLHgpfSwkbD1mdW5jdGlvbih4KXtmb3IodmFyIHI9eDs7KXtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil0aHJvdyBxMChFMiwxKTtpZihyWzBdPT09MClyZXR1cm4gclsxXTtpZih0eXBlb2YgclszXT09XCJudW1iZXJcIilyZXR1cm4gclsyXTt2YXIgcj1yWzNdfX0sZlY9ZnVuY3Rpb24oeCl7Zm9yKHZhciByPXg7Oyl7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpcmV0dXJuIDA7aWYoclswXT09PTApcmV0dXJuWzAsclsxXV07aWYodHlwZW9mIHJbM109PVwibnVtYmVyXCIpcmV0dXJuWzAsclsyXV07dmFyIHI9clszXX19LGNWPWZ1bmN0aW9uKHgpe2Zvcih2YXIgcj14Ozspe2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXRocm93IHEwKEUyLDEpO2lmKHJbMF09PT0wKXJldHVybiByWzFdO2lmKHR5cGVvZiByWzRdPT1cIm51bWJlclwiKXJldHVybiByWzJdO3ZhciByPXJbNF19fSxXVDA9ZnVuY3Rpb24oeCl7Zm9yKHZhciByPXg7Oyl7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpcmV0dXJuIDA7aWYoclswXT09PTApcmV0dXJuWzAsclsxXV07aWYodHlwZW9mIHJbNF09PVwibnVtYmVyXCIpcmV0dXJuWzAsclsyXV07dmFyIHI9cls0XX19LE1PPWZ1bmN0aW9uKHgpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXJldHVybiB5MihGUSk7aWYoeFswXT09PTApcmV0dXJuIDA7aWYodHlwZW9mIHhbM109PVwibnVtYmVyXCIpcmV0dXJuIHhbNF07dmFyIHI9eFs0XSxlPXhbMl07cmV0dXJuIFl0KE1PKHhbM10pLGUscil9LEZsPWZ1bmN0aW9uKHgscil7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpcmV0dXJuIHI7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpcmV0dXJuIHg7dmFyIGU9TU8ocik7cmV0dXJuIFkyKHgsJGwociksZSl9LERPPWZ1bmN0aW9uKHgpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXJldHVybiAwO2lmKHhbMF09PT0wKXJldHVybiAxO3ZhciByPXhbM10sZT1ETyh4WzRdKTtyZXR1cm4oRE8ocikrMXwwKStlfDB9LHNWPWZ1bmN0aW9uKHgscil7Zm9yKHZhciBlPXgsdD1yOzspe2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXJldHVybiBlO2lmKHRbMF09PT0wKXJldHVyblswLHRbMV0sZV07dmFyIHU9dFszXSxpPXRbMl0sZT1bMCxpLHNWKGUsdFs0XSldLHQ9dX19LG9WPWZ1bmN0aW9uKHgpe3JldHVybiBzVigwLHgpfSxuMT0wLFVPPWZ1bmN0aW9uKHgpe3JldHVybiB0eXBlb2YgeD09XCJudW1iZXJcIj8xOjB9LHZWPWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIHIoaixLKXtpZih0eXBlb2YgSz09XCJudW1iZXJcIilyZXR1cm5bMCxqXTtpZihLWzBdPT09MCl7dmFyIEo9S1sxXSxRPXAoeFsxXSxqLEopO3JldHVybiBRPT09MD9LOjA8PVE/V2UoSyxqLG4xKTpXZShbMCxqXSxKLG4xKX12YXIgeDA9S1s0XSwkPUtbM10sZjA9S1syXSxzMD1wKHhbMV0saixmMCk7aWYoczA9PT0wKXJldHVybiBLO2lmKDA8PXMwKXt2YXIgdjA9cihqLHgwKTtyZXR1cm4geDA9PT12MD9LOll0KCQsZjAsdjApfXZhciBvMD1yKGosJCk7cmV0dXJuICQ9PT1vMD9LOll0KG8wLGYwLHgwKX1mdW5jdGlvbiBlKGosSyl7aWYodHlwZW9mIEs9PVwibnVtYmVyXCIpcmV0dXJuWzAsbjEsMCxuMV07aWYoS1swXT09PTApe3ZhciBKPXAoeFsxXSxqLEtbMV0pO3JldHVybiBKPT09MD9bMCxuMSwxLG4xXTowPD1KP1swLEssMCxuMV06WzAsbjEsMCxLXX12YXIgUT1LWzRdLHgwPUtbM10sJD1LWzJdLGYwPXAoeFsxXSxqLCQpO2lmKGYwPT09MClyZXR1cm5bMCx4MCwxLFFdO2lmKDA8PWYwKXt2YXIgczA9ZShqLFEpLHYwPXMwWzNdLG8wPXMwWzJdO3JldHVyblswLFkyKHgwLCQsczBbMV0pLG8wLHYwXX12YXIgYzA9ZShqLHgwKSxkMD1jMFsyXSxFMD1jMFsxXTtyZXR1cm5bMCxFMCxkMCxZMihjMFszXSwkLFEpXX1mdW5jdGlvbiB0KGosSyl7Zm9yKHZhciBKPUs7Oyl7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpcmV0dXJuIDA7aWYoSlswXT09PTApcmV0dXJuIHAoeFsxXSxqLEpbMV0pPT09MD8xOjA7dmFyIFE9Sls0XSx4MD1KWzNdLCQ9cCh4WzFdLGosSlsyXSksZjA9JD09PTA/MTowO2lmKGYwKXJldHVybiBmMDt2YXIgczA9MDw9JD9ROngwLEo9czB9fWZ1bmN0aW9uIHUoaixLKXtpZih0eXBlb2YgSz09XCJudW1iZXJcIilyZXR1cm4gbjE7aWYoS1swXT09PTApcmV0dXJuIHAoeFsxXSxqLEtbMV0pPT09MD9uMTpLO3ZhciBKPUtbNF0sUT1LWzNdLHgwPUtbMl0sJD1wKHhbMV0saix4MCk7aWYoJD09PTApe2lmKHR5cGVvZiBRPT1cIm51bWJlclwiKXJldHVybiBKO2lmKHR5cGVvZiBKPT1cIm51bWJlclwiKXJldHVybiBRO3ZhciBmMD1NTyhKKTtyZXR1cm4gWXQoUSwkbChKKSxmMCl9aWYoMDw9JCl7dmFyIHMwPXUoaixKKTtyZXR1cm4gSj09PXMwP0s6WXQoUSx4MCxzMCl9dmFyIHYwPXUoaixRKTtyZXR1cm4gUT09PXYwP0s6WXQodjAseDAsSil9ZnVuY3Rpb24gaShqLEspe2lmKHR5cGVvZiBqPT1cIm51bWJlclwiKXJldHVybiBLO2lmKGpbMF09PT0xKXt2YXIgSj1qWzJdLFE9alsxXSx4MD1qWzRdLCQ9alszXTtpZih0eXBlb2YgSyE9XCJudW1iZXJcIil7aWYoS1swXT09PTApcmV0dXJuIHIoS1sxXSxqKTt2YXIgZjA9S1syXSxzMD1LWzFdLHYwPUtbNF0sbzA9S1szXTtpZihzMDw9USl7aWYoczA9PT0xKXJldHVybiByKGYwLGopO3ZhciBjMD1lKEosSyksZDA9YzBbMV0sRTA9aSh4MCxjMFszXSk7cmV0dXJuIFkyKGkoJCxkMCksSixFMCl9aWYoUT09PTEpcmV0dXJuIHIoSixLKTt2YXIgTDA9ZShmMCxqKSxYMD1MMFsxXSx4eD1pKEwwWzNdLHYwKTtyZXR1cm4gWTIoaShYMCxvMCksZjAseHgpfX1yZXR1cm4gdHlwZW9mIEs9PVwibnVtYmVyXCI/ajpyKGpbMV0sSyl9ZnVuY3Rpb24gZihqLEspe2lmKHR5cGVvZiBqPT1cIm51bWJlclwifHx0eXBlb2YgSz09XCJudW1iZXJcIilyZXR1cm4gbjE7aWYodHlwZW9mIGohPVwibnVtYmVyXCImJmpbMF0hPT0wKXt2YXIgSj1qWzRdLFE9alszXSx4MD1qWzJdLCQ9ZSh4MCxLKSxmMD0kWzFdO2lmKCRbMl0pe3ZhciBzMD1mKEosJFszXSk7cmV0dXJuIFkyKGYoUSxmMCkseDAsczApfXZhciB2MD1mKEosJFszXSk7cmV0dXJuIEZsKGYoUSxmMCksdjApfXJldHVybiB0KGpbMV0sSyk/ajpuMX1mdW5jdGlvbiBvKGosSyl7aWYodHlwZW9mIEs9PVwibnVtYmVyXCIpcmV0dXJuWzAsbjEsZnVuY3Rpb24oZDApe3JldHVybiBuMX1dO2lmKEtbMF09PT0wKXJldHVybiBwKHhbMV0saixLWzFdKT09PTA/MDpbMCxuMSxmdW5jdGlvbihkMCl7cmV0dXJuIG4xfV07dmFyIEo9S1s0XSxRPUtbM10seDA9S1syXSwkPXAoeFsxXSxqLHgwKTtpZigkPT09MClyZXR1cm4gMDtpZigwPD0kKXt2YXIgZjA9byhqLEopO2lmKCFmMClyZXR1cm4gMDt2YXIgczA9ZjBbMl07cmV0dXJuWzAsWTIoUSx4MCxmMFsxXSksczBdfXZhciB2MD1vKGosUSk7aWYoIXYwKXJldHVybiAwO3ZhciBvMD12MFsyXSxjMD12MFsxXTtyZXR1cm5bMCxjMCxmdW5jdGlvbihkMCl7cmV0dXJuIFkyKGEobzAsMCkseDAsSil9XX1mdW5jdGlvbiBsKGosSyl7Zm9yKHZhciBKPWosUT1LOzspe2lmKHR5cGVvZiBKIT1cIm51bWJlclwiJiZ0eXBlb2YgUSE9XCJudW1iZXJcIil7dmFyIHgwPTA7aWYodHlwZW9mIEohPVwibnVtYmVyXCImJkpbMF0hPT0wKXtpZih0eXBlb2YgUSE9XCJudW1iZXJcIiYmUVswXSE9PTApe3ZhciAkPUpbNF0sZjA9SlszXSxzMD1KWzJdO2lmKEo9PT1RKXJldHVybiAwO3ZhciB2MD1vKHMwLFEpO2lmKCF2MClyZXR1cm4gMDt2YXIgbzA9djBbMl0sYzA9bChmMCx2MFsxXSk7aWYoIWMwKXJldHVybiBjMDt2YXIgSj0kLFE9YShvMCwwKTtjb250aW51ZX12YXIgZDA9SixFMD1RWzFdO3gwPTF9aWYoIXgwKXZhciBkMD1RLEUwPUpbMV07cmV0dXJuIDEtdChFMCxkMCl9cmV0dXJuIDF9fWZ1bmN0aW9uIGQoaixLKXtpZih0eXBlb2Ygaj09XCJudW1iZXJcIilyZXR1cm4gbjE7aWYodHlwZW9mIEs9PVwibnVtYmVyXCIpcmV0dXJuIGo7aWYodHlwZW9mIGohPVwibnVtYmVyXCImJmpbMF0hPT0wKXt2YXIgSj1qWzRdLFE9alszXSx4MD1qWzJdLCQ9ZSh4MCxLKSxmMD0kWzFdO2lmKCRbMl0pe3ZhciBzMD1kKEosJFszXSk7cmV0dXJuIEZsKGQoUSxmMCksczApfXZhciB2MD1kKEosJFszXSk7cmV0dXJuIFkyKGQoUSxmMCkseDAsdjApfXJldHVybiB0KGpbMV0sSyk/bjE6an1mdW5jdGlvbiBrKGosSyl7Zm9yKHZhciBKPUZhKEssMCksUT1GYShqLDApLHgwPUo7Oyl7aWYoIVEpcmV0dXJuIHgwPy0xOjA7aWYoIXgwKXJldHVybiAxO3ZhciAkPXgwWzNdLGYwPXgwWzJdLHMwPVFbM10sdjA9UVsyXSxvMD1wKHhbMV0sUVsxXSx4MFsxXSk7aWYobzAhPT0wKXJldHVybiBvMDt2YXIgYzA9RmEoZjAsJCksUT1GYSh2MCxzMCkseDA9YzB9fWZ1bmN0aW9uIGgoaixLKXtyZXR1cm4gayhqLEspPT09MD8xOjB9ZnVuY3Rpb24gZyhqLEspe2Zvcih2YXIgSj1qLFE9Szs7KXtpZih0eXBlb2YgSj09XCJudW1iZXJcIilyZXR1cm4gMTtpZihKWzBdPT09MCl7dmFyIHgwPUpbMV07aWYodHlwZW9mIFEhPVwibnVtYmVyXCIpe2lmKFFbMF09PT0wKXJldHVybiBwKHhbMV0seDAsUVsxXSk9PT0wPzE6MDt2YXIgJD1RWzRdLGYwPVFbM10sczA9cCh4WzFdLHgwLFFbMl0pO2lmKHMwPT09MClyZXR1cm4gMTtpZigwPD1zMCl7dmFyIFE9JDtjb250aW51ZX12YXIgUT1mMDtjb250aW51ZX19ZWxzZXt2YXIgdjA9Sls0XSxvMD1KWzNdLGMwPUpbMl0sZDA9SlsxXTtpZih0eXBlb2YgUSE9XCJudW1iZXJcIil7aWYoUVswXT09PTApe3ZhciBFMD1kMD09PTE/MTowLEwwPVFbMV0sWDA9RTAmJihwKHhbMV0sYzAsTDApPT09MD8xOjApO3JldHVybiBYMH12YXIgeHg9UVs0XSxnMD1RWzNdLCQwPXAoeFsxXSxjMCxRWzJdKTtpZigkMD09PTApe3ZhciBuMD1nKG8wLGcwKTtpZighbjApcmV0dXJuIG4wO3ZhciBKPXYwLFE9eHg7Y29udGludWV9aWYoMDw9JDApe3ZhciBpeD1nKFdlKG4xLGMwLHYwKSx4eCk7aWYoIWl4KXJldHVybiBpeDt2YXIgSj1vMDtjb250aW51ZX12YXIgcng9ZyhXZShvMCxjMCxuMSksZzApO2lmKCFyeClyZXR1cm4gcng7dmFyIEo9djA7Y29udGludWV9fXJldHVybiAwfX1mdW5jdGlvbiBBKGosSyl7Zm9yKHZhciBKPUs7Oyl7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpcmV0dXJuIDA7aWYoSlswXT09PTApcmV0dXJuIGEoaixKWzFdKTt2YXIgUT1KWzRdLHgwPUpbMl07QShqLEpbM10pLGEoaix4MCk7dmFyIEo9UX19ZnVuY3Rpb24gTihqLEssSil7Zm9yKHZhciBRPUsseDA9Sjs7KXtpZih0eXBlb2YgUT09XCJudW1iZXJcIilyZXR1cm4geDA7aWYoUVswXT09PTApcmV0dXJuIHAoaixRWzFdLHgwKTt2YXIgJD1RWzRdLGYwPVFbMl0sczA9cChqLGYwLE4oaixRWzNdLHgwKSksUT0kLHgwPXMwfX1mdW5jdGlvbiBDKGosSyl7Zm9yKHZhciBKPUs7Oyl7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpcmV0dXJuIDE7aWYoSlswXT09PTApcmV0dXJuIGEoaixKWzFdKTt2YXIgUT1KWzRdLHgwPUpbM10sJD1hKGosSlsyXSk7aWYoJCl7dmFyIGYwPUMoaix4MCk7aWYoZjApe3ZhciBKPVE7Y29udGludWV9dmFyIHMwPWYwfWVsc2UgdmFyIHMwPSQ7cmV0dXJuIHMwfX1mdW5jdGlvbiBPKGosSyl7Zm9yKHZhciBKPUs7Oyl7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpcmV0dXJuIDA7aWYoSlswXT09PTApcmV0dXJuIGEoaixKWzFdKTt2YXIgUT1KWzRdLHgwPUpbM10sJD1hKGosSlsyXSk7aWYoJCl2YXIgZjA9JDtlbHNle3ZhciBzMD1PKGoseDApO2lmKCFzMCl7dmFyIEo9UTtjb250aW51ZX12YXIgZjA9czB9cmV0dXJuIGYwfX1mdW5jdGlvbiBMKGosSyl7aWYodHlwZW9mIEs9PVwibnVtYmVyXCIpcmV0dXJuIG4xO2lmKEtbMF09PT0wKXJldHVybiBhKGosS1sxXSk/SzpuMTt2YXIgSj1LWzRdLFE9S1szXSx4MD1LWzJdLCQ9TChqLFEpLGYwPWEoaix4MCksczA9TChqLEopO3JldHVybiBmMD9RPT09JCYmSj09PXMwP0s6WTIoJCx4MCxzMCk6RmwoJCxzMCl9ZnVuY3Rpb24gTShqLEspe2lmKHR5cGVvZiBLPT1cIm51bWJlclwiKXJldHVyblswLG4xLG4xXTtpZihLWzBdPT09MClyZXR1cm4gYShqLEtbMV0pP1swLEssbjFdOlswLG4xLEtdO3ZhciBKPUtbMl0sUT1LWzRdLHgwPU0oaixLWzNdKSwkPXgwWzJdLGYwPXgwWzFdLHMwPWEoaixKKSx2MD1NKGosUSksbzA9djBbMl0sYzA9djBbMV07aWYoczApe3ZhciBkMD1GbCgkLG8wKTtyZXR1cm5bMCxZMihmMCxKLGMwKSxkMF19dmFyIEUwPVkyKCQsSixvMCk7cmV0dXJuWzAsRmwoZjAsYzApLEUwXX1mdW5jdGlvbiBWKGosSyl7Zm9yKHZhciBKPUs7Oyl7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpdGhyb3cgcTAoRTIsMSk7aWYoSlswXT09PTApe3ZhciBRPUpbMV07aWYocCh4WzFdLGosUSk9PT0wKXJldHVybiBRO3Rocm93IHEwKEUyLDEpfXZhciB4MD1KWzJdLCQ9Sls0XSxmMD1KWzNdLHMwPXAoeFsxXSxqLHgwKTtpZihzMD09PTApcmV0dXJuIHgwO3ZhciB2MD0wPD1zMD8kOmYwLEo9djB9fWZ1bmN0aW9uIHooaixLKXtmb3IodmFyIEo9Szs7KXtpZih0eXBlb2YgSj09XCJudW1iZXJcIilyZXR1cm4gMDtpZihKWzBdPT09MCl7dmFyIFE9SlsxXTtyZXR1cm4gcCh4WzFdLGosUSk9PT0wP1swLFFdOjB9dmFyIHgwPUpbMl0sJD1KWzRdLGYwPUpbM10sczA9cCh4WzFdLGoseDApO2lmKHMwPT09MClyZXR1cm5bMCx4MF07dmFyIHYwPTA8PXMwPyQ6ZjAsSj12MH19ZnVuY3Rpb24gWShqLEspe2lmKHR5cGVvZiBLPT1cIm51bWJlclwiKXJldHVybiBuMTtpZihLWzBdPT09MCl7dmFyIEo9S1sxXSxRPWEoaixKKTtyZXR1cm4gSj09PVE/SzpbMCxRXX12YXIgeDA9S1s0XSwkPUtbM10sZjA9S1syXSxzMD1ZKGosJCksdjA9YShqLGYwKSxvMD1ZKGoseDApO2lmKCQ9PT1zMCYmZjA9PT12MCYmeDA9PT1vMClyZXR1cm4gSzt2YXIgYzA9MDtpZighVU8oczApKXt2YXIgZDA9Y1YoczApOzA8PXAoeFsxXSxkMCx2MCkmJihjMD0xKX1pZighYzApe3ZhciBFMD0wO2lmKCFVTyhvMCkpe3ZhciBMMD0kbChvMCk7MDw9cCh4WzFdLHYwLEwwKSYmKEUwPTEpfWlmKCFFMClyZXR1cm4gWTIoczAsdjAsbzApfXJldHVybiBpKHMwLHIodjAsbzApKX1mdW5jdGlvbiB0MChqKXtpZighailyZXR1cm4gbjE7dmFyIEs9alsyXSxKPWpbMV07aWYoIUspcmV0dXJuWzAsSl07dmFyIFE9S1syXSx4MD1LWzFdO2lmKCFRKXJldHVybiByKHgwLFswLEpdKTt2YXIgJD1RWzJdLGYwPVFbMV07aWYoISQpcmV0dXJuIHIoZjAscih4MCxbMCxKXSkpO3ZhciBzMD0kWzJdLHYwPSRbMV07aWYoIXMwKXJldHVybiByKHYwLHIoZjAscih4MCxbMCxKXSkpKTtpZihzMFsyXSl7dmFyIG8wPXhbMV0sYzA9ZnVuY3Rpb24oZzAsJDApe2lmKGcwPT09Mil7aWYoJDApe3ZhciBuMD0kMFsyXTtpZihuMCl7dmFyIGl4PW4wWzFdLHJ4PSQwWzFdLGR4PW4wWzJdLGF4PXAobzAscngsaXgpLFN4PWF4PT09MD9bMCxyeCwwXTowPD1heD9bMCxpeCxbMCxyeCwwXV06WzAscngsWzAsaXgsMF1dO3JldHVyblswLFN4LGR4XX19fWVsc2UgaWYoZzA9PT0zJiYkMCl7dmFyIEQwPSQwWzJdO2lmKEQwKXt2YXIgTjA9RDBbMl07aWYoTjApe3ZhciBBMD1OMFsxXSxZMD1EMFsxXSxDMD0kMFsxXSxGPU4wWzJdLEg9cChvMCxDMCxZMCk7aWYoSD09PTApdmFyIEI9cChvMCxZMCxBMCksYTA9Qj09PTA/WzAsWTAsMF06MDw9Qj9bMCxBMCxbMCxZMCwwXV06WzAsWTAsWzAsQTAsMF1dLG0wPWEwO2Vsc2UgaWYoMDw9SCl7dmFyIFAwPXAobzAsQzAsQTApO2lmKFAwPT09MCl2YXIgSzA9WzAsWTAsWzAsQzAsMF1dO2Vsc2UgaWYoMDw9UDApdmFyIEQ9cChvMCxZMCxBMCksTzA9RD09PTA/WzAsWTAsWzAsQzAsMF1dOjA8PUQ/WzAsQTAsWzAsWTAsWzAsQzAsMF1dXTpbMCxZMCxbMCxBMCxbMCxDMCwwXV1dLEswPU8wO2Vsc2UgdmFyIEswPVswLFkwLFswLEMwLFswLEEwLDBdXV07dmFyIG0wPUswfWVsc2V7dmFyIGowPXAobzAsWTAsQTApO2lmKGowPT09MCl2YXIgX3g9WzAsQzAsWzAsWTAsMF1dO2Vsc2UgaWYoMDw9ajApdmFyIG94PXAobzAsQzAsQTApLGIwPW94PT09MD9bMCxDMCxbMCxZMCwwXV06MDw9b3g/WzAsQTAsWzAsQzAsWzAsWTAsMF1dXTpbMCxDMCxbMCxBMCxbMCxZMCwwXV1dLF94PWIwO2Vsc2UgdmFyIF94PVswLEMwLFswLFkwLFswLEEwLDBdXV07dmFyIG0wPV94fXJldHVyblswLG0wLEZdfX19Zm9yKHZhciBCMD1nMD4+MSxUPWQwKEIwLCQwKSxYPVRbMV0sRjA9ZDAoZzAtQjB8MCxUWzJdKSxzeD1YLGV4PUYwWzFdLFUwPTAsTng9RjBbMl07Oyl7aWYoc3gpe2lmKGV4KXt2YXIgbXg9ZXhbMl0sQng9ZXhbMV0sR3g9c3hbMl0sSjA9c3hbMV0sYng9cChvMCxKMCxCeCk7aWYoYng9PT0wKXt2YXIgc3g9R3gsZXg9bXgsVTA9WzAsSjAsVTBdO2NvbnRpbnVlfWlmKDA8Yngpe3ZhciBzeD1HeCxVMD1bMCxKMCxVMF07Y29udGludWV9dmFyIGV4PW14LFUwPVswLEJ4LFUwXTtjb250aW51ZX12YXIgSng9SGMoc3gsVTApfWVsc2UgdmFyIEp4PUhjKGV4LFUwKTtyZXR1cm5bMCxKeCxOeF19fSxkMD1mdW5jdGlvbihnMCwkMCl7aWYoZzA9PT0yKXtpZigkMCl7dmFyIG4wPSQwWzJdO2lmKG4wKXt2YXIgaXg9bjBbMV0scng9JDBbMV0sZHg9bjBbMl0sYXg9cChvMCxyeCxpeCksU3g9YXg9PT0wP1swLHJ4LDBdOjA8YXg/WzAscngsWzAsaXgsMF1dOlswLGl4LFswLHJ4LDBdXTtyZXR1cm5bMCxTeCxkeF19fX1lbHNlIGlmKGcwPT09MyYmJDApe3ZhciBEMD0kMFsyXTtpZihEMCl7dmFyIE4wPUQwWzJdO2lmKE4wKXt2YXIgQTA9TjBbMV0sWTA9RDBbMV0sQzA9JDBbMV0sRj1OMFsyXSxIPXAobzAsQzAsWTApO2lmKEg9PT0wKXZhciBCPXAobzAsWTAsQTApLGEwPUI9PT0wP1swLFkwLDBdOjA8Qj9bMCxZMCxbMCxBMCwwXV06WzAsQTAsWzAsWTAsMF1dLG0wPWEwO2Vsc2UgaWYoMDxIKXt2YXIgUDA9cChvMCxZMCxBMCk7aWYoUDA9PT0wKXZhciBLMD1bMCxDMCxbMCxZMCwwXV07ZWxzZSBpZigwPFAwKXZhciBLMD1bMCxDMCxbMCxZMCxbMCxBMCwwXV1dO2Vsc2UgdmFyIEQ9cChvMCxDMCxBMCksTzA9RD09PTA/WzAsQzAsWzAsWTAsMF1dOjA8RD9bMCxDMCxbMCxBMCxbMCxZMCwwXV1dOlswLEEwLFswLEMwLFswLFkwLDBdXV0sSzA9TzA7dmFyIG0wPUswfWVsc2V7dmFyIGowPXAobzAsQzAsQTApO2lmKGowPT09MCl2YXIgX3g9WzAsWTAsWzAsQzAsMF1dO2Vsc2UgaWYoMDxqMCl2YXIgX3g9WzAsWTAsWzAsQzAsWzAsQTAsMF1dXTtlbHNlIHZhciBveD1wKG8wLFkwLEEwKSxiMD1veD09PTA/WzAsWTAsWzAsQzAsMF1dOjA8b3g/WzAsWTAsWzAsQTAsWzAsQzAsMF1dXTpbMCxBMCxbMCxZMCxbMCxDMCwwXV1dLF94PWIwO3ZhciBtMD1feH1yZXR1cm5bMCxtMCxGXX19fWZvcih2YXIgQjA9ZzA+PjEsVD1jMChCMCwkMCksWD1UWzFdLEYwPWMwKGcwLUIwfDAsVFsyXSksc3g9WCxleD1GMFsxXSxVMD0wLE54PUYwWzJdOzspe2lmKHN4KXtpZihleCl7dmFyIG14PWV4WzJdLEJ4PWV4WzFdLEd4PXN4WzJdLEowPXN4WzFdLGJ4PXAobzAsSjAsQngpO2lmKGJ4PT09MCl7dmFyIHN4PUd4LGV4PW14LFUwPVswLEowLFUwXTtjb250aW51ZX1pZigwPD1ieCl7dmFyIGV4PW14LFUwPVswLEJ4LFUwXTtjb250aW51ZX12YXIgc3g9R3gsVTA9WzAsSjAsVTBdO2NvbnRpbnVlfXZhciBKeD1IYyhzeCxVMCl9ZWxzZSB2YXIgSng9SGMoZXgsVTApO3JldHVyblswLEp4LE54XX19LEUwPXFjKGopLEwwPTI8PUUwP2MwKEUwLGopWzFdOmosWDA9ZnVuY3Rpb24oZzAsJDApe2lmKDM+PWcwPj4+MClzd2l0Y2goZzApe2Nhc2UgMDpyZXR1cm5bMCwwLCQwXTtjYXNlIDE6aWYoJDApcmV0dXJuWzAsWzAsJDBbMV1dLCQwWzJdXTticmVhaztjYXNlIDI6aWYoJDApe3ZhciBuMD0kMFsyXTtpZihuMClyZXR1cm5bMCxbMSwyLG4wWzFdLFswLCQwWzFdXSwwXSxuMFsyXV19YnJlYWs7ZGVmYXVsdDppZigkMCl7dmFyIGl4PSQwWzJdO2lmKGl4KXt2YXIgcng9aXhbMl07aWYocngpcmV0dXJuWzAsWzEsMixpeFsxXSxbMCwkMFsxXV0sWzAscnhbMV1dXSxyeFsyXV19fX12YXIgZHg9ZzAvMnwwLGF4PVgwKGR4LCQwKSxTeD1heFsyXSxEMD1heFsxXTtpZighU3gpdGhyb3cgcTAoWzAsd3IseEddLDEpO3ZhciBOMD1TeFsxXSxBMD1YMCgoZzAtZHh8MCktMXwwLFN4WzJdKSxZMD1BMFsyXTtyZXR1cm5bMCxQbyhEMCxOMCxBMFsxXSksWTBdfTtyZXR1cm4gWDAocWMoTDApLEwwKVsxXX12YXIgeHg9czBbMV07cmV0dXJuIHIoeHgscih2MCxyKGYwLHIoeDAsWzAsSl0pKSkpfWZ1bmN0aW9uIGkwKGosSyxKKXthKEpyKEspLEdRKTt2YXIgUT1vVihKKTtRJiZhKEpyKEspLHFRKTt2YXIgeDA9MDtyZXR1cm4gSDEoZnVuY3Rpb24oJCxmMCl7cmV0dXJuICQmJmEoSnIoSyksUVEpLHAoaixLLGYwKSwxfSx4MCxRKSxRJiZhKEpyKEspLEhRKSxhKEpyKEspLGJRKX1yZXR1cm5bMCxuMSxVTyx0LHIsS1QwLHUsaSxmLGwsZCxrLGgsZyxBLFksTixDLE8sTCxNLERPLG9WLCRsLGZWLGNWLFdUMCwkbCxmVixWLHoselQwLHQwLGkwLHZ5LEJUMCxmdW5jdGlvbihqLEspe2Zvcih2YXIgSj1LOzspe2lmKHR5cGVvZiBKPT1cIm51bWJlclwiKXJldHVybiAwO2lmKEpbMF09PT0wKXt2YXIgUT1KWzFdO3JldHVybiBhKGosUSk/WzAsUV06MH12YXIgeDA9SlsyXSwkPUpbNF0sZjA9SlszXTtpZighYShqLHgwKSl7dmFyIEo9JDtjb250aW51ZX1mb3IodmFyIHMwPXgwLHYwPWYwOzspe2lmKHR5cGVvZiB2MD09XCJudW1iZXJcIilyZXR1cm5bMCxzMF07aWYodjBbMF09PT0wKXt2YXIgbzA9djBbMV07cmV0dXJuIGEoaixvMCk/WzAsbzBdOlswLHMwXX12YXIgYzA9djBbMl0sZDA9djBbNF0sRTA9djBbM107aWYoYShqLGMwKSl7dmFyIHMwPWMwLHYwPUUwO2NvbnRpbnVlfXZhciB2MD1kMH19fV19LGFWPWZ1bmN0aW9uKHgpe3N3aXRjaCh4WzBdKXtjYXNlIDA6cmV0dXJuIDE7Y2FzZSAxOnJldHVybiAyO2Nhc2UgMjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAzfX0sS3g9ZnVuY3Rpb24oeCxyKXtpZighcilyZXR1cm4gcjt2YXIgZT1yWzFdLHQ9YSh4LGUpO3JldHVybiBlPT09dD9yOlswLHRdfSxjeD1mdW5jdGlvbih4LHIsZSx0LHUpe3ZhciBpPXAoeCxyLGUpO3JldHVybiBlPT09aT90OmEodSxpKX0sRzA9ZnVuY3Rpb24oeCxyLGUsdCl7dmFyIHU9YSh4LHIpO3JldHVybiByPT09dT9lOmEodCx1KX0seDI9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yWzFdLHQ9clsyXTtyZXR1cm4gY3goeCxlLHQscixmdW5jdGlvbih1KXtyZXR1cm5bMCxlLHVdfSl9LGxWPWZ1bmN0aW9uKHgscil7cmV0dXJuIEt4KGZ1bmN0aW9uKGUpe3ZhciB0PWVbMV0sdT1lWzJdO3JldHVybiBjeCh4LHQsdSxlLGZ1bmN0aW9uKGkpe3JldHVyblswLHQsaV19KX0scil9LEVyPWZ1bmN0aW9uKHgscil7dmFyIGU9SDEoZnVuY3Rpb24odSxpKXt2YXIgZj11WzJdLG89dVsxXSxsPWEoeCxpKSxkPWZ8fChsIT09aT8xOjApO3JldHVyblswLFswLGwsb10sZF19LElHLHIpLHQ9ZVsxXTtyZXR1cm4gZVsyXT9BeCh0KTpyfSxqTz11eShSRyxmdW5jdGlvbih4KXt2YXIgcj1BTyh4LE9HKSxlPXJbMV0sdD1yWzJdLHU9clszXSxpPXJbNF0sZj1yWzVdLG89cls2XSxsPXJbN10sZD1yWzhdLGs9cls5XSxoPXJbMTBdLGc9clsxMV0sQT1yWzEyXSxOPXJbMTNdLEM9clsxNF0sTz1yWzE1XSxMPXJbMTZdLE09clsxN10sVj1yWzE4XSx6PXJbMTldLFk9clsyMF0sdDA9clsyMV0saTA9clsyMl0saj1yWzIzXSxLPXJbMjRdLEo9clsyNV0sUT1yWzI2XSx4MD1yWzI3XSwkPXJbMjhdLGYwPXJbMjldLHMwPXJbMzBdLHYwPXJbMzFdLG8wPXJbMzJdLGMwPXJbMzNdLGQwPXJbMzRdLEUwPXJbMzVdLEwwPXJbMzZdLFgwPXJbMzddLHh4PXJbMzhdLGcwPXJbMzldLCQwPXJbNDBdLG4wPXJbNDFdLGl4PXJbNDJdLHJ4PXJbNDNdLGR4PXJbNDRdLGF4PXJbNDVdLFN4PXJbNDZdLEQwPXJbNDddLE4wPXJbNDhdLEEwPXJbNDldLFkwPXJbNTBdLEMwPXJbNTFdLEY9cls1Ml0sSD1yWzUzXSxCPXJbNTRdLGEwPXJbNTVdLG0wPXJbNTZdLFAwPXJbNThdLEQ9cls1OV0sTzA9cls2MF0sSzA9cls2MV0sajA9cls2Ml0sb3g9cls2M10sYjA9cls2NF0sX3g9cls2NV0sQjA9cls2Nl0sVD1yWzY3XSxYPXJbNjhdLEYwPXJbNjldLHN4PXJbNzBdLGV4PXJbNzFdLFUwPXJbNzJdLE54PXJbNzNdLG14PXJbNzRdLEJ4PXJbNzVdLEd4PXJbNzZdLEowPXJbNzddLGJ4PXJbNzhdLEp4PXJbNzldLFcwPXJbODBdLG5yPXJbODFdLFYwPXJbODJdLFNyPXJbODNdLFVyPXJbODRdLGx4PXJbODVdLGJyPXJbODZdLGUyPXJbODddLGgxPXJbODhdLElyPXJbODldLFIxPXJbOTBdLF89cls5MV0sYj1yWzkyXSxyMD1yWzkzXSxTMD1yWzk0XSxHPXJbOTVdLGgwPXJbOTZdLHowPXJbOTddLE0wPXJbOThdLHV4PXJbOTldLFp4PXJbaXRdLEx4PXJbSXRdLHRyPXJbSmZdLCR4PXJbZm5dLHhyPXJbRHRdLHp4PXJbRGVdLE9yPXJbbDJdLFd4PXJbRzJdLEIyPXJbdm5dLGx0PXJbSXNdLG1lPXJbVjFdLFBuPXJbT3RdLHRvPXJbTDJdLE5uPXJbUnJdLGNzPXJbdXRdLGtlPXJbT3NdLENuPXJbTnNdLHRlPXJbcG9dLEZ0PXJbcGFdLHlyPXJbeGxdLFF0PXJbQWZdLEluPXJbSDNdLHF2PXJbSHJdLGhlPXJbUnRdLHB0PXJbT2FdLEtvPXJbQ2ldLG5vPXJbTDRdLHYyPXJbWXJdLHVvPXJbbTFdLE9uPXJbZGxdLGR0PXJbdkpdLEJvPXJbdmhdLGlvPXJba0pdLEh2PXJbUU1dLFdvPXJbQWpdLGZvPXJbdVhdLHl0PXJbalVdLHNzPXJbeV9dLFpvPXJbYkRdLGNvPXJbaFVdLGEzPXJbc0pdLCRvPXJbV1VdLFJuPXJbaVVdLGJ2PXJbT2pdLHNvPXJbX0pdLEZvPXJbWkRdLHhhPXJbMTQ2XSxvcz1yWzE0N10sUW89cltYRF0sR289cltoal0scmE9clsxNTBdLGwzPXJbMTUxXSxMbT1yWzE1Ml0scDM9clsxNTNdLEk2PXJbMTU0XSxPNj1yWzE1NV0sZDM9clsxNTZdLE1tPXJbMTU3XSxEbT1yWzE1OF0sZWE9clsxNTldLHkzPXJbVVNdLFVtPXJbcVVdLGptPXJbVlVdLEptPXJbUkpdLEwxPXJbSVRdLG10PXJbQUpdLG0zPXJbTFVdLHE9cltNUF0sST1yW0NUXSxVPXJbcjVdLFQwPXJbQjldLFIwPXJbTmtdLHR4PXJbRFVdLEV4PXJbTmpdLFV4PXJbeFhdLGp4PXJbZGtdLEh4PXJbdlVdLG1yPXJbd0RdLG9yPXJbckpdLGhyPXJbSk1dLGNyPXJbS1VdLHNyPXJbU0ldLE5yPXJbRmtdLEZyPXJbcmRdLEJyPXJbSU5dLFdyPXJbWXddLE1yPXJbUWhdLFFyPXJbYkVdLHgxPXJbbGpdLGExPXJbQ1NdLGwxPXJbaERdLGkxPXJbZWpdLF8xPXJbbWFdLENyPXJbWURdLE0xPXJbZGhdLHQyPXJbakRdLGcxPXJbUGpdLFcyPXJbYURdLG5lPXJbRkpdLGd4PXJbYWddLFhyPXJbdlhdLHIxPXJbek1dLGxyPXJbZUpdLHpyPXJbQkpdLEIxPXJbJERdLF9lPXJbakpdLFoyPXJbQlRdLHdlPXJbblhdLEd0PXJbb0pdLEMyPXJbQURdLG4yPXJbR0pdLEkyPXJbQkRdLGEyPXJbaUVdLGt0PXJbVU1dLE8yPXJbUWpdLGh0PXJbZ1RdLCRlPXJbWk5dLFRlPXJbQ2pdLFNlPXJbSkpdLEVlPXJbYmpdLGdlPXJbU2pdLEFlPXJbJFVdLFcxPXJbJE1dLFBlPXJbYnBdLF90PXJbZ2FdLEZlPXJbd2pdLHVlPXJbVVVdLFIyPXJbcUpdLHF0PXJbVGpdLHZzPXJbeUpdLHd0PXJbSVVdLFR0PXJbdGpdLEh0PXJbaVhdLGllPXJbd1VdLFN0PXJbc1hdLGJ0PXJbQ0pdLGZlPXJbVkpdLHhuPXJbWkFdLExuPXJbcFRdLHJuPXJbUVNdLE1uPXJbaGFdLGVuPXJbTU1dLERuPXJbYUpdLHFvPXJbSmpdLHRuPXJbWjVdLEV0PXJbZFNdLGFzPXJbaDhdLGxzPXJbWDhdLHBzPXJbR3JdLEhvPXJbQjRdLGszPXJbT3ZdLG9vPXJbcGpdLGJvPXJbRWFdLHRhPXJbUThdLGgzPXJbQ2FdLF8zPXJbejNdLG5hPXJbaHZdLHVhPXJbRkRdLFVuPXJbMjU4XSx3Mz1yW3pEXSxUMz1yWzI2MF0sUzM9clsyNjFdLE5lPXJbMjYyXSxFMz1yWzI2M10sZzM9cltqal0saWE9cltYal0sZHM9clsyNjZdLHZvPXJbMjY3XSx4dj1yWzI2OF0scnY9cltjRF0sQTM9clsyNzBdLGZhPXJbcnJdLHlzPXJbMjcyXSxhbz1yWzI3M10sZXY9clsyNzRdLGd0PXJbU0RdLFFlPXJbMjc2XSxtcz1yWzI3N10sQXQ9cltmSl0sbm49clsyNzldLHVuPXJbV0pdLHR2PXJbeGtdLFAzPXJbMjgyXSxOMz1yW2FqXSxudj1yWzI4NF0sQzM9cltQVV0sY2E9cltkal0sWG09cls1N107ZnVuY3Rpb24gam4obixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9Y1s0XSxFPWNbM10sUj1LeChhKG5bMV1bMStneF0sbikseSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gdj09PVomJnk9PT1SP2M6WzAsUixaLEUsU119ZnVuY3Rpb24gWW0obixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1wKG5bMV1bMStRZV0sbixFKSxaPUt4KGEoblsxXVsxK01dLG4pLFMpLHkwPXAoblsxXVsxKyRdLG4seSksXzA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1SJiZ5PT09eTAmJlM9PT1aJiZ2PT09XzA/YzpbMCxSLFoseTAsXzBdfWZ1bmN0aW9uIFZtKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKSxSPXAoblsxXVsxK0EwXSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gQ0wobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPXAoblsxXVsxK0RdLG4sUyksUj1wKG5bMV1bMStBMF0sbix5KSxaPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBTPT09RSYmeT09PVImJnY9PT1aP2M6WzAsRSxSLFpdfWZ1bmN0aW9uIElMKG4scyxjKXt2YXIgdj1jWzJdLHk9dlsyXSxTPXZbMV0sRT1jWzFdLFI9SDAoblsxXVsxK29dLG4scyxTKSxaPUt4KGEoblsxXVsxK2d4XSxuKSx5KTtyZXR1cm4gUz09PVImJnk9PT1aP2M6WzAsRSxbMCxSLFpdXX1mdW5jdGlvbiBPTChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9RXIocChuWzFdWzErbF0sbix5KSxTKSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBTPT09RSYmdj09PVI/YzpbMCxFLHksUl19ZnVuY3Rpb24gUkwobixzLGMpe3ZhciB2PWNbNF0seT1jWzJdLFM9cChuWzFdWzErZ3hdLG4seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsY1sxXSxTLGNbM10sRV19ZnVuY3Rpb24gTEwobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9cChuWzFdWzErZ3hdLG4seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsY1sxXSxTLEVdfWZ1bmN0aW9uIE1MKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKTtpZih0eXBlb2YgeT09XCJudW1iZXJcIil2YXIgSXg9eTtlbHNlIGlmKHlbMF09PT0wKXZhciBSPXlbMV0sWj1wKG5bMV1bMSskXSxuLFIpLHkwPVI9PT1aP3k6WzAsWl0sSXg9eTA7ZWxzZSB2YXIgXzA9eVsxXSxRMD1wKG5bMV1bMSskXSxuLF8wKSx2eD1fMD09PVEwP3k6WzEsUTBdLEl4PXZ4O3ZhciB5eD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gRT09PVMmJnl4PT09dj9jOlswLEUsSXgseXhdfWZ1bmN0aW9uIERMKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKSxSPXAoblsxXVsxK1FdLG4seSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gRT09PVMmJlI9PT15JiZaPT09dj9jOlswLEUsUixaXX1mdW5jdGlvbiBVTChuLHMsYyl7dmFyIHY9Y1s0XSx5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXgyKGEoblsxXVsxK2d0XSxuKSxFKTtpZihTKXZhciBaPVNbMV0seTA9WlsxXSxfMD1aWzJdLFEwPWZ1bmN0aW9uKGQxKXtyZXR1cm5bMCxbMCx5MCxkMV1dfSx2eD1jeChhKG5bMV1bMSt2b10sbikseTAsXzAsUyxRMCk7ZWxzZSB2YXIgdng9UztpZih5KXZhciBJeD15WzFdLHl4PUl4WzFdLF9yPUl4WzJdLGYxPWZ1bmN0aW9uKGQxKXtyZXR1cm5bMCxbMCx5eCxkMV1dfSxjMT1jeChhKG5bMV1bMStndF0sbikseXgsX3IseSxmMSk7ZWxzZSB2YXIgYzE9eTt2YXIgcDE9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1SJiZTPT09dngmJnk9PT1jMSYmdj09PXAxP2M6WzAsUix2eCxjMSxwMV19ZnVuY3Rpb24gakwobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9cChuWzFdWzErZ3hdLG4seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsUyxFXX1mdW5jdGlvbiBKTChuLHMsYyl7dmFyIHY9Y1sxXSx5PXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB2PT09eT9jOlswLHldfWZ1bmN0aW9uIFhMKG4scyl7cmV0dXJuIHN9ZnVuY3Rpb24gWUwobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPUVyKGEoblsxXVsxK3h4XSxuKSxTKSxSPUVyKGEoblsxXVsxK2d4XSxuKSx5KSxaPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBTPT09RSYmeT09PVImJnY9PT1aP2M6WzAsRSxSLFpdfWZ1bmN0aW9uIFZMKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKSxSPXgyKGEoblsxXVsxK2cwXSxuKSx5KSxaPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBTPT09RSYmeT09PVImJnY9PT1aP2M6WzAsRSxSLFpdfWZ1bmN0aW9uIHpMKG4scyl7dmFyIGM9c1syXSx2PWNbM10seT1jWzJdLFM9Y1sxXSxFPXNbMV0sUj1LeChhKG5bMV1bMStneF0sbiksUyksWj1wKG5bMV1bMStEMF0sbix5KSx5MD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PVImJnk9PT1aJiZ2PT09eTA/czpbMCxFLFswLFIsWix5MF1dfWZ1bmN0aW9uIEtMKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1jWzRdLFI9cChuWzFdWzErZ3hdLG4sUyksWj1FcihhKG5bMV1bMStyeF0sbikseSkseTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1SJiZ5PT09WiYmdj09PXkwP2M6WzAsUixaLHkwLEVdfWZ1bmN0aW9uIEkzKG4scyxjKXt2YXIgdj1jWzFdLHk9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT15P2M6WzAseV19ZnVuY3Rpb24gem0obixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErZ3hdLG4seSksUj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBCTChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStneF0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIFdMKG4scyl7cmV0dXJuWzAscChuWzFdWzErQTBdLG4scyksMF19ZnVuY3Rpb24gWkwobixzKXt2YXIgYz1hKG5bMV1bMStOMF0sbiksdj1IMShmdW5jdGlvbihTLEUpe3ZhciBSPVNbMl0sWj1TWzFdLHkwPWEoYyxFKTtpZigheTApcmV0dXJuWzAsWiwxXTtpZih5MFsyXSlyZXR1cm5bMCxIYyh5MCxaKSwxXTt2YXIgXzA9eTBbMV0sUTA9Unx8KEUhPT1fMD8xOjApO3JldHVyblswLFswLF8wLFpdLFEwXX0sQ0cscykseT12WzFdO3JldHVybiB2WzJdP0F4KHkpOnN9ZnVuY3Rpb24gS20obixzKXtyZXR1cm4gcChuWzFdWzErRDBdLG4scyl9ZnVuY3Rpb24gQm0obixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9RXIoYShuWzFdWzErZ3hdLG4pLHkpLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1TJiZ2PT09RT9jOlswLFMsRV19ZnVuY3Rpb24gJEwobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9Y1szXSxFPUt4KGEoblsxXVsxK2d4XSxuKSx5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/YzpbMCxFLFIsU119ZnVuY3Rpb24gc2EobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErbXJdLG4seSksUj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBXbShuLHMpe3ZhciBjPXNbMl0sdj1jWzNdLHk9Y1syXSxTPXlbMl0sRT15WzFdLFI9Y1sxXSxaPXNbMV0seTA9cChuWzFdWzErTDFdLG4sRSksXzA9S3goYShuWzFdWzErJF0sbiksUyksUTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHkwPT09RSYmXzA9PT1TJiZRMD09PXY/czpbMCxaLFswLFIsWzAseTAsXzBdLFEwXV19ZnVuY3Rpb24gWm0obixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PXAoblsxXVsxK2kwXSxuLGMpO3JldHVybiBVZCh5LGMpP3M6WzAsdix5XX1mdW5jdGlvbiBGTChuLHMpe3JldHVybiBwKG5bMV1bMStneF0sbixzKX1mdW5jdGlvbiBRTChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV07aWYoeSl2YXIgRT15WzFdLFI9ZnVuY3Rpb24oXzApe3JldHVyblswLF8wXX0sWj1HMChhKG5bMV1bMStneF0sbiksRSx5LFIpO2Vsc2UgdmFyIFo9eTt2YXIgeTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1aJiZ2PT09eTA/czpbMCxTLFswLFoseTBdXX1mdW5jdGlvbiBHTChuLHMpe3JldHVybiBwKG5bMV1bMStneF0sbixzKX1mdW5jdGlvbiBSNihuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStWMF0sbixzLGMpfWZ1bmN0aW9uIHFMKG4scyxjKXt2YXIgdj1jWzJdLHk9dlsyXSxTPXZbMV0sRT1jWzFdLFI9SDAoblsxXVsxK0owXSxuLHMsUyksWj1wKG5bMV1bMStuMF0sbix5KTtyZXR1cm4gUj09PVMmJnk9PT1aP2M6WzAsRSxbMCxSLFpdXX1mdW5jdGlvbiAkbShuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStWMF0sbixzLGMpfWZ1bmN0aW9uIEhMKG4scyxjKXt2YXIgdj1jWzJdLHk9dlsyXSxTPXZbMV0sRT1jWzFdLFI9SDAoblsxXVsxK0p4XSxuLHMsUyksWj1wKG5bMV1bMStXMV0sbix5KTtyZXR1cm4gUz09PVImJnk9PT1aP2M6WzAsRSxbMCxSLFpdXX1mdW5jdGlvbiBGbShuLHMsYyl7c3dpdGNoKGNbMF0pe2Nhc2UgMDp2YXIgdj1jWzFdLHk9ZnVuY3Rpb24oUil7cmV0dXJuWzAsUl19O3JldHVybiBHMChwKG5bMV1bMStXMF0sbixzKSx2LGMseSk7Y2FzZSAxOnZhciBTPWNbMV0sRT1mdW5jdGlvbihSKXtyZXR1cm5bMSxSXX07cmV0dXJuIEcwKHAoblsxXVsxK2J4XSxuLHMpLFMsYyxFKTtkZWZhdWx0OnJldHVybiBjfX1mdW5jdGlvbiBMNihuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStWMF0sbixzLGMpfWZ1bmN0aW9uIFFtKG4scyxjKXtyZXR1cm4gSDAoblsxXVsxK1YwXSxuLHMsYyl9ZnVuY3Rpb24gYkwobixzLGMpe3ZhciB2PWNbMl0seT12WzJdLFM9dlsxXSxFPWNbMV0sUj1IMChuWzFdWzErajBdLG4scyxTKSxaPXAoblsxXVsxK24wXSxuLHkpO3JldHVybiBSPT09UyYmeT09PVo/YzpbMCxFLFswLFIsWl1dfWZ1bmN0aW9uIEdtKG4scyxjKXtyZXR1cm4gcChuWzFdWzErTG5dLG4sYyl9ZnVuY3Rpb24gTTYobixzLGMpe3JldHVybiBIMChuWzFdWzErbXhdLG4scyxjKX1mdW5jdGlvbiB4TShuLHMsYyl7dmFyIHY9Y1sxXSx5PWNbMl07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMCx2LEVdfXJldHVybiBjeChwKG5bMV1bMStHeF0sbixzKSx2LHksYyxTKX1mdW5jdGlvbiBENihuLHMsYyl7dmFyIHY9Y1sxXSx5PWNbMl07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMCx2LEVdfXJldHVybiBjeChwKG5bMV1bMStOeF0sbixzKSx2LHksYyxTKX1mdW5jdGlvbiByTShuLHMsYyl7dmFyIHY9Y1sxXSx5PWNbMl07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMCx2LEVdfXJldHVybiBjeChwKG5bMV1bMStLMF0sbixzKSx2LHksYyxTKX1mdW5jdGlvbiBlTShuLHMsYyl7c3dpdGNoKGNbMF0pe2Nhc2UgMDp2YXIgdj1jWzFdLHk9ZnVuY3Rpb24oSXgpe3JldHVyblswLEl4XX07cmV0dXJuIEcwKHAoblsxXVsxK2IwXSxuLHMpLHYsYyx5KTtjYXNlIDE6dmFyIFM9Y1sxXSxFPWZ1bmN0aW9uKEl4KXtyZXR1cm5bMSxJeF19O3JldHVybiBHMChwKG5bMV1bMStCMF0sbixzKSxTLGMsRSk7Y2FzZSAyOnZhciBSPWNbMV0sWj1mdW5jdGlvbihJeCl7cmV0dXJuWzIsSXhdfTtyZXR1cm4gRzAocChuWzFdWzErc3hdLG4scyksUixjLFopO2Nhc2UgMzp2YXIgeTA9Y1sxXSxfMD1mdW5jdGlvbihJeCl7cmV0dXJuWzMsSXhdfTtyZXR1cm4gRzAocChuWzFdWzErWF0sbixzKSx5MCxjLF8wKTtkZWZhdWx0OnZhciBRMD1jWzFdLHZ4PWZ1bmN0aW9uKEl4KXtyZXR1cm5bNCxJeF19O3JldHVybiBHMChwKG5bMV1bMStGMF0sbixzKSxRMCxjLHZ4KX19ZnVuY3Rpb24gdE0obixzLGMpe3ZhciB2PWNbMl0seT12WzRdLFM9dlszXSxFPXZbMl0sUj12WzFdLFo9Y1sxXSx5MD1IMChuWzFdWzErVF0sbixzLFIpLF8wPUgwKG5bMV1bMStfeF0sbixzLEUpLFEwPXAoblsxXVsxK1cxXSxuLFMpO2lmKHkpe3ZhciB2eD0wO2lmKHkwWzBdPT09Myl7dmFyIEl4PV8wWzJdO2lmKEl4WzBdPT09Mil2YXIgX3I9QXIoeTBbMV1bMl1bMV0sSXhbMV1bMV1bMl1bMV0pO2Vsc2Ugdng9MX1lbHNlIHZ4PTE7aWYodngpdmFyIHl4PVI9PT15MD8xOjAsX3I9eXgmJihFPT09XzA/MTowKX1lbHNlIHZhciBfcj15O3JldHVybiB5MD09PVImJl8wPT09RSYmUTA9PT1TJiZ5PT09X3I/YzpbMCxaLFswLHkwLF8wLFEwLF9yXV19ZnVuY3Rpb24gcW0obixzLGMpe2lmKGNbMF09PT0wKXt2YXIgdj1jWzFdLHk9ZnVuY3Rpb24oUil7cmV0dXJuWzAsUl19O3JldHVybiBHMChwKG5bMV1bMStleF0sbixzKSx2LGMseSl9dmFyIFM9Y1sxXTtmdW5jdGlvbiBFKFIpe3JldHVyblsxLFJdfXJldHVybiBHMChwKG5bMV1bMStveF0sbixzKSxTLGMsRSl9ZnVuY3Rpb24gbk0obixzLGMsdil7cmV0dXJuIEgwKG5bMV1bMStubl0sbixjLHYpfWZ1bmN0aW9uIFU2KG4scyxjLHYpe3JldHVybiBIMChuWzFdWzErT3JdLG4sYyx2KX1mdW5jdGlvbiB1TShuLHMsYyx2KXtyZXR1cm4gSDAoblsxXVsxK1N4XSxuLGMsdil9ZnVuY3Rpb24gaU0obixzLGMpe3JldHVybiBwKG5bMV1bMStMMV0sbixjKX1mdW5jdGlvbiBmTShuLHMsYyl7dmFyIHY9Y1syXSx5PWNbMV07c3dpdGNoKHZbMF0pe2Nhc2UgMDp2YXIgUz12WzFdLEU9U1szXSxSPVNbMl0sWj1TWzFdLHkwPUVyKHAoblsxXVsxK1UwXSxuLHMpLFopLF8wPXAoblsxXVsxK0pdLG4sUiksUTA9cChuWzFdWzErbjBdLG4sRSksdng9MDtpZih5MD09PVomJl8wPT09UiYmUTA9PT1FKXt2YXIgSXg9djt2eD0xfWlmKCF2eCl2YXIgSXg9WzAsWzAseTAsXzAsUTBdXTt2YXIgdHQ9SXg7YnJlYWs7Y2FzZSAxOnZhciB5eD12WzFdLF9yPXl4WzNdLGYxPXl4WzJdLGMxPXl4WzFdLHAxPUVyKHAoblsxXVsxK25yXSxuLHMpLGMxKSxkMT1wKG5bMV1bMStKXSxuLGYxKSxHZT1wKG5bMV1bMStuMF0sbixfcikscWU9MDtpZihfcj09PUdlJiZwMT09PWMxJiZkMT09PWYxKXt2YXIgSGU9djtxZT0xfWlmKCFxZSl2YXIgSGU9WzEsWzAscDEsZDEsR2VdXTt2YXIgdHQ9SGU7YnJlYWs7Y2FzZSAyOnZhciBDZT12WzFdLGJlPUNlWzJdLHh0PUNlWzFdLFB0PUNlWzNdLHJ0PUgwKG5bMV1bMStteF0sbixzLHh0KSxldD1wKG5bMV1bMStKXSxuLGJlKSxKbj0wO2lmKHh0PT09cnQmJmJlPT09ZXQpe3ZhciBYbj12O0puPTF9aWYoIUpuKXZhciBYbj1bMixbMCxydCxldCxQdF1dO3ZhciB0dD1YbjticmVhaztkZWZhdWx0OnZhciBrcz12WzFdLGhzPWZ1bmN0aW9uKF9zKXtyZXR1cm5bMyxfc119LHR0PUcwKGEoblsxXVsxK0J4XSxuKSxrcyx2LGhzKX1yZXR1cm4gdj09PXR0P2M6WzAseSx0dF19ZnVuY3Rpb24gSG0obixzKXtyZXR1cm4gSDAoblsxXVsxK1YwXSxuLDAscyl9ZnVuY3Rpb24gY00obixzLGMpe3ZhciB2PXM/c1sxXTowO3JldHVybiBIMChuWzFdWzErVjBdLG4sWzAsdl0sYyl9ZnVuY3Rpb24gTzMobixzKXtyZXR1cm4gcChuWzFdWzErdW5dLG4scyl9ZnVuY3Rpb24gc00obixzKXtyZXR1cm4gcChuWzFdWzErdW5dLG4scyl9ZnVuY3Rpb24gb00obixzKXtyZXR1cm4gSDAoblsxXVsxK21zXSxuLE5HLHMpfWZ1bmN0aW9uIHZNKG4scyxjKXtyZXR1cm4gSDAoblsxXVsxK21zXSxuLFswLHNdLGMpfWZ1bmN0aW9uIGFNKG4scyl7cmV0dXJuIEgwKG5bMV1bMSttc10sbixQRyxzKX1mdW5jdGlvbiBsTShuLHMsYyl7dmFyIHY9Y1s1XSx5PWNbNF0sUz1jWzNdLEU9Y1syXSxSPWNbMV0sWj1wKG5bMV1bMStRZV0sbixSKSx5MD1LeChhKG5bMV1bMStNXSxuKSxFKSxfMD1LeChhKG5bMV1bMSskXSxuKSxTKSxRMD1LeChhKG5bMV1bMSskXSxuKSx5KSx2eD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUj09PVomJlM9PT1fMCYmRT09PXkwJiZTPT09XzAmJnk9PT1RMCYmdj09PXZ4P2M6WzAsWix5MCxfMCxRMCx2eF19ZnVuY3Rpb24gajYobixzKXtyZXR1cm4gcChuWzFdWzErTG5dLG4scyl9ZnVuY3Rpb24gcE0obixzKXtyZXR1cm4gcChuWzFdWzErTDFdLG4scyl9ZnVuY3Rpb24gZE0obixzKXt2YXIgYz1zWzFdLHY9c1syXTtmdW5jdGlvbiB5KFMpe3JldHVyblswLGMsU119cmV0dXJuIGN4KGEoblsxXVsxK25uXSxuKSxjLHYscyx5KX1mdW5jdGlvbiB5TShuLHMpe3ZhciBjPXNbMV0sdj1zWzJdO2Z1bmN0aW9uIHkoUyl7cmV0dXJuWzAsYyxTXX1yZXR1cm4gY3goYShuWzFdWzErT3JdLG4pLGMsdixzLHkpfWZ1bmN0aW9uIEo2KG4scyl7dmFyIGM9c1sxXSx2PXNbMl07ZnVuY3Rpb24geShTKXtyZXR1cm5bMCxjLFNdfXJldHVybiBjeChhKG5bMV1bMStTeF0sbiksYyx2LHMseSl9ZnVuY3Rpb24gbU0obixzKXtzd2l0Y2goc1swXSl7Y2FzZSAwOnZhciBjPXNbMV0sdj1mdW5jdGlvbih5eCl7cmV0dXJuWzAseXhdfTtyZXR1cm4gRzAoYShuWzFdWzEraDBdLG4pLGMscyx2KTtjYXNlIDE6dmFyIHk9c1sxXSxTPWZ1bmN0aW9uKHl4KXtyZXR1cm5bMSx5eF19O3JldHVybiBHMChhKG5bMV1bMSt6MF0sbikseSxzLFMpO2Nhc2UgMjp2YXIgRT1zWzFdLFI9ZnVuY3Rpb24oeXgpe3JldHVyblsyLHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK1p4XSxuKSxFLHMsUik7Y2FzZSAzOnZhciBaPXNbMV0seTA9ZnVuY3Rpb24oeXgpe3JldHVyblszLHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK00wXSxuKSxaLHMseTApO2Nhc2UgNDp2YXIgXzA9c1sxXSxRMD1mdW5jdGlvbih5eCl7cmV0dXJuWzQseXhdfTtyZXR1cm4gRzAoYShuWzFdWzErUDBdLG4pLF8wLHMsUTApO2RlZmF1bHQ6dmFyIHZ4PXNbMV0sSXg9ZnVuY3Rpb24oeXgpe3JldHVybls1LHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK3V4XSxuKSx2eCxzLEl4KX19ZnVuY3Rpb24ga00obixzKXt2YXIgYz1zWzJdLHY9c1sxXTtzd2l0Y2goY1swXSl7Y2FzZSAwOnZhciB5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXAoblsxXVsxK0x4XSxuLEUpLFo9cChuWzFdWzErZ3hdLG4sUyk7aWYoeSl7dmFyIHkwPTA7aWYoUlswXT09PTMpe3ZhciBfMD1aWzJdO2lmKF8wWzBdPT09OCl2YXIgdng9QXIoUlsxXVsyXVsxXSxfMFsxXVsyXVsxXSk7ZWxzZSB5MD0xfWVsc2UgeTA9MTtpZih5MCl2YXIgUTA9RT09PVI/MTowLHZ4PVEwJiYoUz09PVo/MTowKX1lbHNlIHZhciB2eD15O3JldHVybiBFPT09UiYmUz09PVomJnk9PT12eD9zOlswLHYsWzAsUixaLHZ4XV07Y2FzZSAxOnZhciBJeD1jWzJdLHl4PWNbMV0sX3I9cChuWzFdWzErTHhdLG4seXgpLGYxPXgyKGEoblsxXVsxK2NyXSxuKSxJeCk7cmV0dXJuIHl4PT09X3ImJkl4PT09ZjE/czpbMCx2LFsxLF9yLGYxXV07Y2FzZSAyOnZhciBjMT1jWzNdLHAxPWNbMl0sZDE9Y1sxXSxHZT1wKG5bMV1bMStMeF0sbixkMSkscWU9eDIoYShuWzFdWzErY3JdLG4pLHAxKSxIZT1wKG5bMV1bMStuMF0sbixjMSk7cmV0dXJuIGQxPT09R2UmJnAxPT09cWUmJmMxPT09SGU/czpbMCx2LFsyLEdlLHFlLEhlXV07ZGVmYXVsdDp2YXIgQ2U9Y1szXSxiZT1jWzJdLHh0PWNbMV0sUHQ9cChuWzFdWzErTHhdLG4seHQpLHJ0PXgyKGEoblsxXVsxK2NyXSxuKSxiZSksZXQ9cChuWzFdWzErbjBdLG4sQ2UpO3JldHVybiB4dD09PVB0JiZiZT09PXJ0JiZDZT09PWV0P3M6WzAsdixbMyxQdCxydCxldF1dfX1mdW5jdGlvbiBoTShuLHMsYyl7dmFyIHY9Y1syXSx5PWNbMV0sUz1FcihmdW5jdGlvbihSKXtpZihSWzBdPT09MCl7dmFyIFo9UlsxXSx5MD1wKG5bMV1bMStTMF0sbixaKTtyZXR1cm4gWj09PXkwP1I6WzAseTBdfXZhciBfMD1SWzFdLFEwPXAoblsxXVsxK1kwXSxuLF8wKTtyZXR1cm4gXzA9PT1RMD9SOlsxLFEwXX0seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsUyxFXX1mdW5jdGlvbiBYNihuLHMsYyl7dmFyIHY9Y1s0XSx5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXAoblsxXVsxK2d4XSxuLEUpLFo9S3goYShuWzFdWzErcnZdLG4pLFMpLHkwPUt4KGEoblsxXVsxK2NhXSxuKSx5KSxfMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gRT09PVImJlM9PT1aJiZ5PT09eTAmJnY9PT1fMD9jOlswLFIsWix5MCxfMF19ZnVuY3Rpb24gWTYobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPXAoblsxXVsxK0wxXSxuLFMpLFI9cChuWzFdWzErTDFdLG4seSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PUUmJnk9PT1SJiZ2PT09Wj9jOlswLEUsUixaXX1mdW5jdGlvbiBSMyhuLHMpe3JldHVybiBwKG5bMV1bMStneF0sbixzKX1mdW5jdGlvbiBMMyhuLHMpe3JldHVybiBwKG5bMV1bMStQMF0sbixzKX1mdW5jdGlvbiBibShuLHMpe3JldHVybiBwKG5bMV1bMStMMV0sbixzKX1mdW5jdGlvbiBfTShuLHMpe3N3aXRjaChzWzBdKXtjYXNlIDA6dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKFope3JldHVyblswLFpdfTtyZXR1cm4gRzAoYShuWzFdWzErTm5dLG4pLGMscyx2KTtjYXNlIDE6dmFyIHk9c1sxXSxTPWZ1bmN0aW9uKFope3JldHVyblsxLFpdfTtyZXR1cm4gRzAoYShuWzFdWzErQ25dLG4pLHkscyxTKTtkZWZhdWx0OnZhciBFPXNbMV0sUj1mdW5jdGlvbihaKXtyZXR1cm5bMixaXX07cmV0dXJuIEcwKGEoblsxXVsxK2NzXSxuKSxFLHMsUil9fWZ1bmN0aW9uIHdNKG4scyxjKXt2YXIgdj1jWzFdLHk9SDAoblsxXVsxK3RlXSxuLHMsdik7cmV0dXJuIHY9PT15P2M6WzAseSxjWzJdLGNbM11dfWZ1bmN0aW9uIHg5KG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKSxSPXAoblsxXVsxK2tlXSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gVE0obixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPXAoblsxXVsxK2d4XSxuLFMpLFI9cChuWzFdWzErZ3hdLG4seSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PUUmJnk9PT1SJiZ2PT09Wj9jOlswLGNbMV0sRSxSLFpdfWZ1bmN0aW9uIFY2KG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStRdF0sbixTKSxSPXAoblsxXVsxK0EwXSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gcjkobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1FP3M6WzAsUyxbMCx5LEVdXX1mdW5jdGlvbiBlOShuLHMpe3JldHVybiBwKG5bMV1bMStmb10sbixzKX1mdW5jdGlvbiBTTShuLHMpe2lmKHNbMF09PT0wKXt2YXIgYz1zWzFdLHY9ZnVuY3Rpb24oRSl7cmV0dXJuWzAsRV19O3JldHVybiBHMChhKG5bMV1bMSt1b10sbiksYyxzLHYpfXZhciB5PXNbMV07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMSxFXX1yZXR1cm4gRzAoYShuWzFdWzErT25dLG4pLHkscyxTKX1mdW5jdGlvbiBMRTAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErdjJdLG4seSksUj1wKG5bMV1bMStkdF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBNRTAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErZHRdLG4seSksUj1wKG5bMV1bMStkdF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBERTAobixzKXtyZXR1cm4gcChuWzFdWzErT25dLG4scyl9ZnVuY3Rpb24gVUUwKG4scyl7cmV0dXJuIHAoblsxXVsxK25vXSxuLHMpfWZ1bmN0aW9uIGpFMChuLHMpe3JldHVybiBwKG5bMV1bMStkdF0sbixzKX1mdW5jdGlvbiBKRTAobixzKXtzd2l0Y2goc1swXSl7Y2FzZSAwOnZhciBjPXNbMV0sdj1mdW5jdGlvbihaKXtyZXR1cm5bMCxaXX07cmV0dXJuIEcwKGEoblsxXVsxK2ZvXSxuKSxjLHMsdik7Y2FzZSAxOnZhciB5PXNbMV0sUz1mdW5jdGlvbihaKXtyZXR1cm5bMSxaXX07cmV0dXJuIEcwKGEoblsxXVsxK0h2XSxuKSx5LHMsUyk7ZGVmYXVsdDp2YXIgRT1zWzFdLFI9ZnVuY3Rpb24oWil7cmV0dXJuWzIsWl19O3JldHVybiBHMChhKG5bMV1bMStXb10sbiksRSxzLFIpfX1mdW5jdGlvbiBYRTAobixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PXAoblsxXVsxK2d4XSxuLHYpLFM9cChuWzFdWzErbjBdLG4sYyk7cmV0dXJuIHY9PT15JiZjPT09Uz9zOlswLHksU119ZnVuY3Rpb24gWUUwKG4scyxjKXt2YXIgdj1jWzJdLHk9Y1sxXSxTPXAoblsxXVsxK24wXSxuLHYpO2lmKCF5KXJldHVybiB2PT09Uz9jOlswLDAsU107dmFyIEU9eVsxXSxSPXAoblsxXVsxK2d4XSxuLEUpO3JldHVybiBFPT09UiYmdj09PVM/YzpbMCxbMCxSXSxTXX1mdW5jdGlvbiBWRTAobixzKXt2YXIgYz1zWzJdLHY9c1sxXTtzd2l0Y2goY1swXSl7Y2FzZSAwOnZhciB5PWNbMV0sUz1mdW5jdGlvbih2eCl7cmV0dXJuWzAsdixbMCx2eF1dfTtyZXR1cm4gY3goYShuWzFdWzErc3NdLG4pLHYseSxzLFMpO2Nhc2UgMTp2YXIgRT1jWzFdLFI9ZnVuY3Rpb24odngpe3JldHVyblswLHYsWzEsdnhdXX07cmV0dXJuIGN4KGEoblsxXVsxK0JvXSxuKSx2LEUscyxSKTtjYXNlIDI6dmFyIFo9Y1sxXSx5MD1mdW5jdGlvbih2eCl7cmV0dXJuWzAsdixbMix2eF1dfTtyZXR1cm4gY3goYShuWzFdWzEraW9dLG4pLHYsWixzLHkwKTtjYXNlIDM6dmFyIF8wPWNbMV0sUTA9ZnVuY3Rpb24odngpe3JldHVyblswLHYsWzMsdnhdXX07cmV0dXJuIEcwKGEoblsxXVsxK3F2XSxuKSxfMCxzLFEwKTtkZWZhdWx0OnJldHVybiBzfX1mdW5jdGlvbiB6RTAobixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PUVyKGEoblsxXVsxK2EzXSxuKSxjKTtyZXR1cm4gYz09PXk/czpbMCx2LHldfWZ1bmN0aW9uIEtFMChuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStTeF0sbixzLGMpfWZ1bmN0aW9uIEJFMChuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStpb10sbixzLGMpfWZ1bmN0aW9uIFdFMChuLHMpe2lmKHNbMF09PT0wKXt2YXIgYz1zWzFdLHY9Y1sxXSx5PWNbMl0sUz1mdW5jdGlvbihfMCl7cmV0dXJuWzAsWzAsdixfMF1dfTtyZXR1cm4gY3goYShuWzFdWzErJG9dLG4pLHYseSxzLFMpfXZhciBFPXNbMV0sUj1FWzFdLFo9RVsyXTtmdW5jdGlvbiB5MChfMCl7cmV0dXJuWzEsWzAsUixfMF1dfXJldHVybiBjeChhKG5bMV1bMStSbl0sbiksUixaLHMseTApfWZ1bmN0aW9uIFpFMChuLHMpe3JldHVybiBwKG5bMV1bMStub10sbixzKX1mdW5jdGlvbiAkRTAobixzKXtyZXR1cm4gcChuWzFdWzErZHRdLG4scyl9ZnVuY3Rpb24gRkUwKG4scyl7aWYoc1swXT09PTApe3ZhciBjPXNbMV0sdj1mdW5jdGlvbihFKXtyZXR1cm5bMCxFXX07cmV0dXJuIEcwKGEoblsxXVsxK0ZvXSxuKSxjLHMsdil9dmFyIHk9c1sxXTtmdW5jdGlvbiBTKEUpe3JldHVyblsxLEVdfXJldHVybiBHMChhKG5bMV1bMStzb10sbikseSxzLFMpfWZ1bmN0aW9uIFFFMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMSt4YV0sbix5KSxSPUt4KGEoblsxXVsxK2J2XSxuKSx2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBHRTAobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9cChuWzFdWzErZ3hdLG4seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsUyxFXX1mdW5jdGlvbiBxRTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKFope3JldHVyblswLFpdfTtyZXR1cm4gRzAoYShuWzFdWzErb3NdLG4pLGMscyx2KX12YXIgeT1zWzFdLFM9eVsxXSxFPXlbMl07ZnVuY3Rpb24gUihaKXtyZXR1cm5bMSxbMCxTLFpdXX1yZXR1cm4gY3goYShuWzFdWzEraGVdLG4pLFMsRSxzLFIpfWZ1bmN0aW9uIEhFMChuLHMpe3ZhciBjPXNbMl1bMV0sdj1zWzFdLHk9cChuWzFdWzEreXRdLG4sYyk7cmV0dXJuIGM9PT15P3M6WzAsdixbMCx5XV19ZnVuY3Rpb24gYkUwKG4scyl7dmFyIGM9c1syXSx2PWNbNF0seT1jWzJdLFM9Y1sxXSxFPWNbM10sUj1zWzFdLFo9cChuWzFdWzEreXRdLG4sUykseTA9S3goYShuWzFdWzErcnZdLG4pLHkpLF8wPUVyKGEoblsxXVsxK0tvXSxuKSx2KTtyZXR1cm4gUz09PVomJnk9PT15MCYmdj09PV8wP3M6WzAsUixbMCxaLHkwLEUsXzBdXX1mdW5jdGlvbiB4ZzAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9cChuWzFdWzErY29dLG4seSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsY1sxXSxjWzJdLFMsRV19ZnVuY3Rpb24gcmcwKG4scyxjKXt2YXIgdj1jWzRdLHk9Y1szXSxTPWNbMl0sRT1jWzFdLFI9cChuWzFdWzErcHRdLG4sRSksWj1LeChhKG5bMV1bMStab10sbiksUykseTA9cChuWzFdWzErY29dLG4seSksXzA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1SJiZTPT09WiYmeT09PXkwJiZ2PT09XzA/YzpbMCxSLFoseTAsXzBdfWZ1bmN0aW9uIGVnMChuLHMsYyx2KXt2YXIgeT0yPD1zP3AoblsxXVsxK214XSxuLEFHKTphKG5bMV1bMStRZV0sbik7cmV0dXJuIGEoeSx2KX1mdW5jdGlvbiB0ZzAobixzLGMpe3ZhciB2PTI8PXM/cChuWzFdWzErbXhdLG4sZ0cpOmEoblsxXVsxK1FlXSxuKTtyZXR1cm4gYSh2LGMpfWZ1bmN0aW9uIG5nMChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9MCxSPWNbNF07aWYocyl7dmFyIFo9MDtpZihTKXN3aXRjaChTWzFdKXtjYXNlIDA6RT0xO2JyZWFrO2Nhc2UgMTpaPTI7YnJlYWs7ZGVmYXVsdDpaPTF9ZWxzZSBaPTE7dmFyIHkwPTA7c3dpdGNoKFope2Nhc2UgMDpicmVhaztjYXNlIDE6aWYoMjw9cyl2YXIgXzA9MCxRMD0wO2Vsc2UgeTA9MTticmVhaztkZWZhdWx0OnkwPTF9aWYoeTApdmFyIF8wPTEsUTA9MH1lbHNlIEU9MTtpZihFKXZhciBfMD0xLFEwPTE7dmFyIHZ4PXk/cChuWzFdWzErQl0sbix2KTpRMD9wKG5bMV1bMStRZV0sbix2KTpIMChuWzFdWzErbXhdLG4sU0csdik7aWYoeSl2YXIgSXg9eVsxXSx5eD1fMD9hKG5bMV1bMStRZV0sbik6cChuWzFdWzErbXhdLG4sRUcpLF9yPUcwKHl4LEl4LHksZnVuY3Rpb24oZjEpe3JldHVyblswLGYxXX0pO2Vsc2UgdmFyIF9yPTA7cmV0dXJuIHk9PT1fciYmdj09PXZ4P2M6WzAsUyxfcix2eCxSXX1mdW5jdGlvbiB1ZzAobixzKXtyZXR1cm4gcChuWzFdWzErTDFdLG4scyl9ZnVuY3Rpb24gaWcwKG4scyxjKXtpZihjWzBdPT09MCl7dmFyIHY9Y1sxXSx5PUVyKHAoblsxXVsxK01tXSxuLHMpLHYpO3JldHVybiB2PT09eT9jOlswLHldfXZhciBTPWNbMV0sRT1TWzFdLFI9U1syXTtmdW5jdGlvbiBaKHkwKXtyZXR1cm5bMSxbMCxFLHkwXV19cmV0dXJuIGN4KHAoblsxXVsxK2QzXSxuLHMpLEUsUixjLFopfWZ1bmN0aW9uIGZnMChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1FP2M6WzAsUyx5LEVdfWZ1bmN0aW9uIGNnMChuLHMsYyl7dmFyIHY9Y1s1XSx5PWNbNF0sUz1jWzNdLEU9Y1syXSxSPWNbMV0sWj14MihhKG5bMV1bMStPNl0sbiksRSkseTA9S3gocChuWzFdWzErSTZdLG4sUikseSksXzA9S3goZnVuY3Rpb24odngpe3ZhciBJeD12eFsxXSx5eD12eFsyXSxfcj1IMChuWzFdWzErRG1dLG4sUixJeCk7cmV0dXJuIF9yPT09SXg/dng6WzAsX3IseXhdfSxTKSxRMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gRT09PVomJnk9PT15MCYmUz09PV8wJiZ2PT09UTA/YzpbMCxSLFosXzAseTAsUTBdfWZ1bmN0aW9uIHNnMChuLHMsYyl7dmFyIHY9Y1s0XSx5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXAoblsxXVsxK0RdLG4sRSksWj1IMChuWzFdWzEram1dLG4seSE9PTA/MTowLFMpLHkwPWEoblsxXVsxK0ptXSxuKSxfMD1LeChmdW5jdGlvbih2eCl7cmV0dXJuIHgyKHkwLHZ4KX0seSksUTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1SJiZTPT09WiYmeT09PV8wJiZ2PT09UTA/YzpbMCxSLFosXzAsUTBdfWZ1bmN0aW9uIG9nMChuLHMsYyl7dmFyIHY9Y1syXSx5PWNbMV0sUz1wKG5bMV1bMStBMF0sbix5KSxFPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09UyYmdj09PUU/YzpbMCxTLEVdfWZ1bmN0aW9uIHZnMChuLHMsYyl7cmV0dXJuIHAoblsxXVsxK0EwXSxuLGMpfWZ1bmN0aW9uIGFnMChuLHMsYyl7dmFyIHY9Y1syXSx5PWNbMV0sUz1wKG5bMV1bMStneF0sbix5KSxFPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09UyYmdj09PUU/YzpbMCxTLEVdfWZ1bmN0aW9uIGxnMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStneF0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIHBnMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gdj09PUU/czpbMCxTLFswLHksRV1dfWZ1bmN0aW9uIGRnMChuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStsM10sbixzLGMpfWZ1bmN0aW9uIHlnMChuLHMsYyl7dmFyIHY9Y1s1XSx5PWNbNF0sUz1jWzNdLEU9Y1syXSxSPWNbMV0sWj1wKG5bMV1bMStRZV0sbixSKSx5MD1LeChhKG5bMV1bMStNXSxuKSxFKSxfMD1hKG5bMV1bMSttdF0sbiksUTA9RXIoZnVuY3Rpb24oeXgpe3JldHVybiB4MihfMCx5eCl9LFMpLHZ4PXgyKGEoblsxXVsxK1IxXSxuKSx5KSxJeD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gWj09PVImJnkwPT09RSYmUTA9PT1TJiZ2eD09PXkmJkl4PT09dj9jOlswLFoseTAsUTAsdngsSXhdfWZ1bmN0aW9uIG1nMChuLHMpe3JldHVybiBwKG5bMV1bMStZXSxuLHMpfWZ1bmN0aW9uIGtnMChuLHMpe3JldHVybiBwKG5bMV1bMStZXSxuLHMpfWZ1bmN0aW9uIGhnMChuLHMpe3JldHVybiBwKG5bMV1bMStMMV0sbixzKX1mdW5jdGlvbiBfZzAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1FP3M6WzAsUyxbMCx5LEVdXX1mdW5jdGlvbiB3ZzAobixzKXtyZXR1cm4gSDAoblsxXVsxK214XSxuLFRHLHMpfWZ1bmN0aW9uIFRnMChuLHMpe3JldHVybiBwKG5bMV1bMStneF0sbixzKX1mdW5jdGlvbiBTZzAobixzKXt2YXIgYz1zWzFdLHY9c1syXTtmdW5jdGlvbiB5KFMpe3JldHVyblswLGMsU119cmV0dXJuIGN4KGEoblsxXVsxK2d0XSxuKSxjLHYscyx5KX1mdW5jdGlvbiBFZzAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErQnJdLG4pLGMscyx2KX12YXIgeT1zWzFdO2Z1bmN0aW9uIFMoRSl7cmV0dXJuWzEsRV19cmV0dXJuIEcwKGEoblsxXVsxK2V2XSxuKSx5LHMsUyl9ZnVuY3Rpb24gZ2cwKG4scyl7c3dpdGNoKHNbMF0pe2Nhc2UgMDpyZXR1cm4gcztjYXNlIDE6dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblsxLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErUV0sbiksYyxzLHYpO2RlZmF1bHQ6dmFyIHk9c1sxXSxTPWZ1bmN0aW9uKEUpe3JldHVyblsyLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErdDBdLG4pLHkscyxTKX19ZnVuY3Rpb24gQWcwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPXAoblsxXVsxK21yXSxuLHkpLFI9cChuWzFdWzErVzFdLG4sdik7cmV0dXJuIHk9PT1FJiZ2PT09Uj9zOlswLFMsWzAsRSxSXV19ZnVuY3Rpb24gUGcwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPXAoblsxXVsxK1FdLG4seSksUj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gRT09PXkmJlI9PT12P3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBOZzAobixzKXt2YXIgYz1zWzJdLHY9Y1s0XSx5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXNbMV0sWj1FcihhKG5bMV1bMStvcl0sbiksUykseTA9S3goYShuWzFdWzErVXhdLG4pLHkpLF8wPUt4KGEoblsxXVsxK1IwXSxuKSxFKSxRMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PVomJnk9PT15MCYmdj09PVEwJiZFPT09XzA/czpbMCxSLFswLF8wLFoseTAsUTBdXX1mdW5jdGlvbiBDZzAobixzLGMpe3ZhciB2PWNbOV0seT1jWzhdLFM9Y1s3XSxFPWNbNl0sUj1jWzNdLFo9Y1syXSx5MD1jWzFdLF8wPWNbMTBdLFEwPWNbNV0sdng9Y1s0XSxJeD1LeChhKG5bMV1bMStocl0sbikseTApLHl4PUt4KGEoblsxXVsxK01dLG4pLHkpLF9yPXAoblsxXVsxK2p4XSxuLFopLGYxPXAoblsxXVsxK3R4XSxuLFMpLGMxPXAoblsxXVsxK0ZyXSxuLFIpLHAxPUt4KGEoblsxXVsxK08wXSxuKSxFKSxkMT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geTA9PT1JeCYmWj09PV9yJiZSPT09YzEmJkU9PT1wMSYmUz09PWYxJiZ5PT09eXgmJnY9PT1kMT9jOlswLEl4LF9yLGMxLHZ4LFEwLHAxLGYxLHl4LGQxLF8wXX1mdW5jdGlvbiBJZzAobixzLGMpe3JldHVybiBIMChuWzFdWzErV3JdLG4scyxjKX1mdW5jdGlvbiBPZzAobixzLGMpe3JldHVybiBIMChuWzFdWzErY3JdLG4scyxjKX1mdW5jdGlvbiBSZzAobixzLGMpe3JldHVybiBIMChuWzFdWzErV3JdLG4scyxjKX1mdW5jdGlvbiBMZzAobixzKXtpZihzWzBdPT09MClyZXR1cm4gczt2YXIgYz1zWzFdO2Z1bmN0aW9uIHYoeSl7cmV0dXJuWzEseV19cmV0dXJuIEcwKGEoblsxXVsxK1FdLG4pLGMscyx2KX1mdW5jdGlvbiBNZzAobixzKXt2YXIgYz1zWzJdLHY9c1sxXTtmdW5jdGlvbiB5KFMpe3JldHVyblswLHYsU119cmV0dXJuIEcwKGEoblsxXVsxKyRdLG4pLGMscyx5KX1mdW5jdGlvbiBEZzAobixzKXt2YXIgYz1zWzJdLHY9c1sxXTtzd2l0Y2goY1swXSl7Y2FzZSAwOnZhciB5PWNbMV0sUz1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMCxNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErbjBdLG4pLHkscyxTKTtjYXNlIDE6dmFyIEU9Y1sxXSxSPWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsxLE14XV19O3JldHVybiBHMChhKG5bMV1bMStuMF0sbiksRSxzLFIpO2Nhc2UgMjp2YXIgWj1jWzFdLHkwPWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsyLE14XV19O3JldHVybiBHMChhKG5bMV1bMStuMF0sbiksWixzLHkwKTtjYXNlIDM6dmFyIF8wPWNbMV0sUTA9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzMsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSxfMCxzLFEwKTtjYXNlIDQ6dmFyIHZ4PWNbMV0sSXg9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzQsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSx2eCxzLEl4KTtjYXNlIDU6dmFyIHl4PWNbMV0sX3I9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzUsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSx5eCxzLF9yKTtjYXNlIDY6dmFyIGYxPWNbMV0sYzE9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzYsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSxmMSxzLGMxKTtjYXNlIDc6dmFyIHAxPWNbMV0sZDE9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzcsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSxwMSxzLGQxKTtjYXNlIDg6dmFyIEdlPWNbMl0scWU9Y1sxXSxIZT1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbOCxxZSxNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErbjBdLG4pLEdlLHMsSGUpO2Nhc2UgOTp2YXIgQ2U9Y1sxXSxiZT1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbOSxNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErbjBdLG4pLENlLHMsYmUpO2Nhc2UgMTA6dmFyIHh0PWNbMV0sUHQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzEwLE14XV19O3JldHVybiBHMChhKG5bMV1bMStuMF0sbikseHQscyxQdCk7Y2FzZSAxMTp2YXIgcnQ9Y1sxXSxldD1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMTEsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK1d4XSxuKSxydCxzLGV0KTtjYXNlIDEyOnZhciBKbj1jWzFdLFhuPWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsxMixNeF1dfTtyZXR1cm4gY3goYShuWzFdWzErVV0sbiksdixKbixzLFhuKTtjYXNlIDEzOnZhciBrcz1jWzFdLGhzPWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsxMyxNeF1dfTtyZXR1cm4gY3goYShuWzFdWzErRG5dLG4pLHYsa3Mscyxocyk7Y2FzZSAxNDp2YXIgdHQ9Y1sxXSxfcz1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMTQsTXhdXX07cmV0dXJuIGN4KGEoblsxXVsxK1IxXSxuKSx2LHR0LHMsX3MpO2Nhc2UgMTU6dmFyIHV2PWNbMV0sejY9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzE1LE14XV19O3JldHVybiBjeChhKG5bMV1bMStHb10sbiksdix1dixzLHo2KTtjYXNlIDE2OnZhciBLNj1jWzFdLEI2PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsxNixNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErTjNdLG4pLEs2LHMsQjYpO2Nhc2UgMTc6dmFyIFc2PWNbMV0sWjY9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzE3LE14XV19O3JldHVybiBHMChhKG5bMV1bMStmZV0sbiksVzYscyxaNik7Y2FzZSAxODp2YXIgJDY9Y1sxXSxGNj1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMTgsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK0xtXSxuKSwkNixzLEY2KTtjYXNlIDE5OnZhciBRNj1jWzFdLEc2PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsxOSxNeF1dfTtyZXR1cm4gY3goYShuWzFdWzErbXRdLG4pLHYsUTYscyxHNik7Y2FzZSAyMDp2YXIgcTY9Y1sxXSxINj1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMjAsTXhdXX07cmV0dXJuIGN4KGEoblsxXVsxK3AzXSxuKSx2LHE2LHMsSDYpO2Nhc2UgMjE6dmFyIGI2PWNbMV0seDQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzIxLE14XV19O3JldHVybiBjeChhKG5bMV1bMStVcl0sbiksdixiNixzLHg0KTtjYXNlIDIyOnZhciByND1jWzFdLGU0PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsyMixNeF1dfTtyZXR1cm4gY3goYShuWzFdWzEraF0sbiksdixyNCxzLGU0KTtjYXNlIDIzOnZhciB0ND1jWzFdLG40PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsyMyxNeF1dfTtyZXR1cm4gY3goYShuWzFdWzErUW9dLG4pLHYsdDQscyxuNCk7Y2FzZSAyNDp2YXIgdTQ9Y1sxXSxpND1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMjQsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK0FdLG4pLHU0LHMsaTQpO2Nhc2UgMjU6dmFyIGY0PWNbMV0sYzQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzI1LE14XV19O3JldHVybiBHMChhKG5bMV1bMStJbl0sbiksZjQscyxjNCk7Y2FzZSAyNjp2YXIgczQ9Y1sxXSxvND1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMjYsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK20wXSxuKSxzNCxzLG80KTtjYXNlIDI3OnZhciB2ND1jWzFdLGE0PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsyNyxNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErZjBdLG4pLHY0LHMsYTQpO2Nhc2UgMjg6dmFyIGw0PWNbMV0scDQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzI4LE14XV19O3JldHVybiBjeChhKG5bMV1bMStTeF0sbiksdixsNCxzLHA0KTtjYXNlIDI5OnZhciBkND1jWzFdLHk0PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFsyOSxNeF1dfTtyZXR1cm4gY3goYShuWzFdWzErT3JdLG4pLHYsZDQscyx5NCk7Y2FzZSAzMDp2YXIgbTQ9Y1sxXSxrND1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMzAsTXhdXX07cmV0dXJuIGN4KGEoblsxXVsxK25uXSxuKSx2LG00LHMsazQpO2Nhc2UgMzE6dmFyIGg0PWNbMV0sXzQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzMxLE14XV19O3JldHVybiBjeChhKG5bMV1bMSthb10sbiksdixoNCxzLF80KTtjYXNlIDMyOnZhciB3ND1jWzFdLFQ0PWZ1bmN0aW9uKE14KXtyZXR1cm5bMCx2LFszMixNeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErbjBdLG4pLHc0LHMsVDQpO2Nhc2UgMzM6dmFyIFM0PWNbMV0sRTQ9ZnVuY3Rpb24oTXgpe3JldHVyblswLHYsWzMzLE14XV19O3JldHVybiBHMChhKG5bMV1bMStuMF0sbiksUzQscyxFNCk7ZGVmYXVsdDp2YXIgZzQ9Y1sxXSxBND1mdW5jdGlvbihNeCl7cmV0dXJuWzAsdixbMzQsTXhdXX07cmV0dXJuIEcwKGEoblsxXVsxK24wXSxuKSxnNCxzLEE0KX19ZnVuY3Rpb24gVWcwKG4scyxjKXt2YXIgdj1jWzJdLHk9Y1sxXSxTPXlbM10sRT15WzJdLFI9eVsxXSxaPXAoblsxXVsxKyRdLG4sUikseTA9cChuWzFdWzErJF0sbixFKSxfMD1FcihhKG5bMV1bMSskXSxuKSxTKSxRMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gWj09PVImJnkwPT09RSYmXzA9PT1TJiZRMD09PXY/YzpbMCxbMCxaLHkwLF8wXSxRMF19ZnVuY3Rpb24gamcwKG4scyxjKXt2YXIgdj1jWzJdLHk9Y1sxXSxTPXlbM10sRT15WzJdLFI9eVsxXSxaPXAoblsxXVsxKyRdLG4sUikseTA9cChuWzFdWzErJF0sbixFKSxfMD1FcihhKG5bMV1bMSskXSxuKSxTKSxRMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gWj09PVImJnkwPT09RSYmXzA9PT1TJiZRMD09PXY/YzpbMCxbMCxaLHkwLF8wXSxRMF19ZnVuY3Rpb24gSmcwKG4scyl7dmFyIGM9c1syXSx2PXNbMV0seT1wKG5bMV1bMSskXSxuLHYpLFM9cChuWzFdWzErbjBdLG4sYyk7cmV0dXJuIHY9PT15JiZjPT09Uz9zOlswLHksU119ZnVuY3Rpb24gWGcwKG4scyl7dmFyIGM9c1syXSx2PXNbMV0seT1wKG5bMV1bMSskXSxuLGMpO3JldHVybiB5PT09Yz9zOlswLHYseV19ZnVuY3Rpb24gWWcwKG4scyl7dmFyIGM9c1szXSx2PXNbMl0seT1zWzRdLFM9c1sxXSxFPXAoblsxXVsxKyRdLG4sdiksUj1wKG5bMV1bMStpXSxuLGMpO3JldHVybiBFPT09diYmUj09PWM/czpbMCxTLEUsUix5XX1mdW5jdGlvbiBWZzAobixzKXt2YXIgYz1zWzJdLHY9c1sxXTtzd2l0Y2goY1swXSl7Y2FzZSAwOnZhciB5PWNbMV0sUz1mdW5jdGlvbihfMCl7cmV0dXJuWzAsdixbMCxfMF1dfTtyZXR1cm4gRzAoYShuWzFdWzErJF0sbikseSxzLFMpO2Nhc2UgMTp2YXIgRT1jWzFdLFI9ZnVuY3Rpb24oXzApe3JldHVyblswLHYsWzEsXzBdXX07cmV0dXJuIEcwKGEoblsxXVsxK3YwXSxuKSxFLHMsUik7ZGVmYXVsdDp2YXIgWj1jWzFdLHkwPWZ1bmN0aW9uKF8wKXtyZXR1cm5bMCx2LFsyLF8wXV19O3JldHVybiBHMChhKG5bMV1bMStzMF0sbiksWixzLHkwKX19ZnVuY3Rpb24gemcwKG4scyl7dmFyIGM9c1syXSx2PXNbMV0seT1FcihhKG5bMV1bMStvMF0sbiksdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxTXX1mdW5jdGlvbiBLZzAobixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PXAoblsxXVsxKyRdLG4sdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxTXX1mdW5jdGlvbiBCZzAobixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PXAoblsxXVsxKyRdLG4sdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxTXX1mdW5jdGlvbiBXZzAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErTF0sbix5KSxSPXAoblsxXVsxK0NdLG4sdik7cmV0dXJuIEU9PT15JiZSPT09dj9zOlswLFMsWzAsRSxSXV19ZnVuY3Rpb24gWmcwKG4scyl7cmV0dXJuIHAoblsxXVsxK0wxXSxuLHMpfWZ1bmN0aW9uICRnMChuLHMpe3JldHVybiBwKG5bMV1bMStMMV0sbixzKX1mdW5jdGlvbiBGZzAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErT10sbiksYyxzLHYpfXZhciB5PXNbMV07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMSxFXX1yZXR1cm4gRzAoYShuWzFdWzErTl0sbikseSxzLFMpfWZ1bmN0aW9uIFFnMChuLHMpe3ZhciBjPXNbMl0sdj1zWzFdLHk9cChuWzFdWzErTF0sbix2KSxTPXAoblsxXVsxK24wXSxuLGMpO3JldHVybiB2PT09eSYmYz09PVM/czpbMCx5LFNdfWZ1bmN0aW9uIEdnMChuLHMpe3ZhciBjPXNbMl0sdj1zWzFdLHk9cChuWzFdWzErVl0sbix2KSxTPXAoblsxXVsxK24wXSxuLGMpO3JldHVybiB2PT09eSYmYz09PVM/czpbMCx5LFNdfWZ1bmN0aW9uIHFnMChuLHMpe3ZhciBjPXNbNV0sdj1zWzRdLHk9c1szXSxTPXNbMl0sRT1zWzFdLFI9cChuWzFdWzErJF0sbixFKSxaPXAoblsxXVsxKyRdLG4sUykseTA9cChuWzFdWzErJF0sbix5KSxfMD1wKG5bMV1bMSskXSxuLHYpLFEwPXAoblsxXVsxK24wXSxuLGMpO3JldHVybiBFPT09UiYmUz09PVomJnk9PT15MCYmdj09PV8wJiZjPT09UTA/czpbMCxSLFoseTAsXzAsUTBdfWZ1bmN0aW9uIEhnMChuLHMpe3ZhciBjPXNbMl0sdj1zWzFdLHk9cChuWzFdWzErJF0sbix2KSxTPXAoblsxXVsxK24wXSxuLGMpO3JldHVybiB2PT09eSYmYz09PVM/czpbMCx5LFNdfWZ1bmN0aW9uIGJnMChuLHMsYyl7dmFyIHY9Y1s2XSx5PWNbNV0sUz1jWzRdLEU9Y1szXSxSPWNbMl0sWj1jWzFdO3JldHVybiB2PT09cChuWzFdWzErbjBdLG4sdik/YzpbMCxaLFIsRSxTLHksdl19ZnVuY3Rpb24geEEwKG4scyxjKXt2YXIgdj1jWzRdLHk9Y1szXSxTPWNbMl0sRT1jWzFdLFI9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1SP2M6WzAsRSxTLHksUl19ZnVuY3Rpb24gckEwKG4scyxjKXtyZXR1cm4gcChuWzFdWzErbjBdLG4sYyl9ZnVuY3Rpb24gZUEwKG4scyxjKXt2YXIgdj1jWzJdLHk9Y1sxXSxTPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB2PT09Uz9jOlswLHksU119ZnVuY3Rpb24gdEEwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gdj09PUU/YzpbMCxTLHksRV19ZnVuY3Rpb24gbkEwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gdj09PUU/YzpbMCxTLHksRV19ZnVuY3Rpb24gdUEwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gdj09PUU/YzpbMCxTLHksRV19ZnVuY3Rpb24gaUEwKG4scyxjKXt2YXIgdj1jWzFdLHk9Y1syXSxTPUgwKG5bMV1bMStwM10sbixzLHYpO3JldHVybiBTPT09dj9jOlswLFMseV19ZnVuY3Rpb24gZkEwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMSskXSxuLFMpLFI9cChuWzFdWzErJF0sbix5KSxaPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09UyYmUj09PXkmJlo9PT12P2M6WzAsRSxSLFpdfWZ1bmN0aW9uIGNBMChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9cChuWzFdWzErcV0sbixTKSxSPUt4KGEoblsxXVsxK0tdLG4pLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1TJiZSPT09eSYmWj09PXY/YzpbMCxFLFIsWl19ZnVuY3Rpb24gc0EwKG4scyl7dmFyIGM9c1syXSx2PWNbNV0seT1jWzRdLFM9Y1syXSxFPWNbMV0sUj1jWzNdLFo9c1sxXSx5MD1wKG5bMV1bMStKXSxuLFMpLF8wPXAoblsxXVsxK2ldLG4seSksUTA9S3goYShuWzFdWzErJF0sbiksdiksdng9cChuWzFdWzErUWVdLG4sRSk7cmV0dXJuIHZ4PT09RSYmeTA9PT1TJiZfMD09PXkmJlEwPT09dj9zOlswLFosWzAsdngseTAsUixfMCxRMF1dfWZ1bmN0aW9uIG9BMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1FcihhKG5bMV1bMStWXSxuKSx5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09eSYmUj09PXY/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIHZBMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1FcihhKG5bMV1bMSskXSxuKSx5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIGFBMChuLHMpe3JldHVybiBLeChhKG5bMV1bMStmXSxuKSxzKX1mdW5jdGlvbiBsQTAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1FP3M6WzAsUyxbMCx5LEVdXX1mdW5jdGlvbiBwQTAobixzKXtyZXR1cm4gcChuWzFdWzErTDFdLG4scyl9ZnVuY3Rpb24gZEEwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPXAoblsxXVsxK3FdLG4seSksUj1wKG5bMV1bMSt0b10sbix2KTtyZXR1cm4gRT09PXkmJlI9PT12P3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiB5QTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErel0sbiksYyxzLHYpfXZhciB5PXNbMV07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMSxFXX1yZXR1cm4gRzAoYShuWzFdWzErbTNdLG4pLHkscyxTKX1mdW5jdGlvbiBtQTAobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPWEoblsxXVsxK210XSxuKSxSPUVyKGZ1bmN0aW9uKF8wKXtyZXR1cm4geDIoRSxfMCl9LHkpLFo9eDIoYShuWzFdWzErUjFdLG4pLFMpLHkwPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBSPT09eSYmWj09PVMmJnY9PT15MD9jOlswLFosUix5MF19ZnVuY3Rpb24ga0EwKG4scyl7c3dpdGNoKHNbMF0pe2Nhc2UgMDp2YXIgYz1zWzFdLHY9ZnVuY3Rpb24oeXgpe3JldHVyblswLHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK3IwXSxuKSxjLHMsdik7Y2FzZSAxOnZhciB5PXNbMV0sUz1mdW5jdGlvbih5eCl7cmV0dXJuWzEseXhdfTtyZXR1cm4gRzAoYShuWzFdWzErX10sbikseSxzLFMpO2Nhc2UgMjp2YXIgRT1zWzFdLFI9ZnVuY3Rpb24oeXgpe3JldHVyblsyLHl4XX07cmV0dXJuIEcwKGEoblsxXVsxKyR4XSxuKSxFLHMsUik7Y2FzZSAzOnZhciBaPXNbMV0seTA9ZnVuY3Rpb24oeXgpe3JldHVyblszLHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK3hyXSxuKSxaLHMseTApO2Nhc2UgNDp2YXIgXzA9c1sxXSxRMD1mdW5jdGlvbih5eCl7cmV0dXJuWzQseXhdfTtyZXR1cm4gRzAoYShuWzFdWzErdHJdLG4pLF8wLHMsUTApO2RlZmF1bHQ6dmFyIHZ4PXNbMV0sSXg9ZnVuY3Rpb24oeXgpe3JldHVybls1LHl4XX07cmV0dXJuIEcwKGEoblsxXVsxK0ddLG4pLHZ4LHMsSXgpfX1mdW5jdGlvbiBoQTAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1FcihhKG5bMV1bMStJcl0sbikseSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUj09PXkmJnY9PT1aP2M6WzAsRSxTLFIsWl19ZnVuY3Rpb24gX0EwKG4scyl7dmFyIGM9c1syXSx2PWNbNl0seT1jWzRdLFM9Y1szXSxFPWNbMl0sUj1jWzFdLFo9Y1s1XSx5MD1zWzFdLF8wPXAoblsxXVsxK1ZdLG4sUiksUTA9cChuWzFdWzErJF0sbixFKSx2eD1wKG5bMV1bMSskXSxuLFMpLEl4PXAoblsxXVsxK2ldLG4seSkseXg9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIF8wPT09UiYmUTA9PT1FJiZ2eD09PVMmJkl4PT09eSYmeXg9PT12P3M6WzAseTAsWzAsXzAsUTAsdngsSXgsWix5eF1dfWZ1bmN0aW9uIHdBMChuLHMpe3ZhciBjPXNbMl0sdj1jWzNdLHk9Y1sxXSxTPXlbMl0sRT15WzFdLFI9Y1syXSxaPXNbMV0seTA9SDAoblsxXVsxK1VdLG4sRSxTKSxfMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PXkwJiZ2PT09XzA/czpbMCxaLFswLFswLEUseTBdLFIsXzBdXX1mdW5jdGlvbiBUQTAobixzKXt2YXIgYz1zWzJdLHY9Y1s2XSx5PWNbMl0sUz1jWzFdLEU9Y1s1XSxSPWNbNF0sWj1jWzNdLHkwPXNbMV0sXzA9cChuWzFdWzErTDFdLG4sUyksUTA9cChuWzFdWzErJF0sbix5KSx2eD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PV8wJiZ5PT09UTAmJnY9PT12eD9zOlswLHkwLFswLF8wLFEwLFosUixFLHZ4XV19ZnVuY3Rpb24gU0EwKG4scyl7dmFyIGM9c1syXSx2PWNbNl0seT1jWzVdLFM9Y1szXSxFPWNbMl0sUj1jWzRdLFo9Y1sxXSx5MD1zWzFdLF8wPXAoblsxXVsxKyRdLG4sRSksUTA9cChuWzFdWzErJF0sbixTKSx2eD1wKG5bMV1bMStpXSxuLHkpLEl4PXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBfMD09PUUmJlEwPT09UyYmdng9PT15JiZJeD09PXY/czpbMCx5MCxbMCxaLF8wLFEwLFIsdngsSXhdXX1mdW5jdGlvbiBFQTAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErJF0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09eSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIGdBMChuLHMpe3ZhciBjPXNbMl0sdj1jWzhdLHk9Y1s3XSxTPWNbMl0sRT1jWzFdLFI9Y1s2XSxaPWNbNV0seTA9Y1s0XSxfMD1jWzNdLFEwPXNbMV0sdng9cChuWzFdWzErTHhdLG4sRSksSXg9cChuWzFdWzErYl0sbixTKSx5eD1wKG5bMV1bMStpXSxuLHkpLF9yPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB2eD09PUUmJkl4PT09UyYmeXg9PT15JiZfcj09PXY/czpbMCxRMCxbMCx2eCxJeCxfMCx5MCxaLFIseXgsX3JdXX1mdW5jdGlvbiBBQTAobixzKXt2YXIgYz1zWzFdLHY9c1syXTtmdW5jdGlvbiB5KFMpe3JldHVyblswLGMsU119cmV0dXJuIGN4KGEoblsxXVsxK1VdLG4pLGMsdixzLHkpfWZ1bmN0aW9uIFBBMChuLHMpe3ZhciBjPXNbMV0sdj1zWzJdO2Z1bmN0aW9uIHkoUyl7cmV0dXJuWzAsYyxTXX1yZXR1cm4gY3goYShuWzFdWzErVV0sbiksYyx2LHMseSl9ZnVuY3Rpb24gTkEwKG4scyl7c3dpdGNoKHNbMF0pe2Nhc2UgMDp2YXIgYz1zWzFdLHY9ZnVuY3Rpb24oWil7cmV0dXJuWzAsWl19O3JldHVybiBHMChhKG5bMV1bMSskXSxuKSxjLHMsdik7Y2FzZSAxOnZhciB5PXNbMV0sUz1mdW5jdGlvbihaKXtyZXR1cm5bMSxaXX07cmV0dXJuIEcwKGEoblsxXVsxK2gxXSxuKSx5LHMsUyk7ZGVmYXVsdDp2YXIgRT1zWzFdLFI9ZnVuY3Rpb24oWil7cmV0dXJuWzIsWl19O3JldHVybiBHMChhKG5bMV1bMStlMl0sbiksRSxzLFIpfX1mdW5jdGlvbiBDQTAobixzKXtyZXR1cm4gcChuWzFdWzErTDFdLG4scyl9ZnVuY3Rpb24gSUEwKG4scyxjKXt2YXIgdj1jWzRdLHk9Y1szXSxTPWNbMl0sRT1TWzJdLFI9RVs0XSxaPUVbM10seTA9RVsyXSxfMD1FWzFdLFEwPWNbMV0sdng9U1sxXSxJeD1LeChhKG5bMV1bMStNXSxuKSxRMCkseXg9S3goYShuWzFdWzErVDBdLG4pLF8wKSxfcj1FcihhKG5bMV1bMStIeF0sbikseTApLGYxPUt4KGEoblsxXVsxK0V4XSxuKSxaKSxjMT1wKG5bMV1bMStJXSxuLHkpLHAxPXAoblsxXVsxK24wXSxuLHYpLGQxPXAoblsxXVsxK24wXSxuLFIpO3JldHVybiBfcj09PXkwJiZmMT09PVomJmMxPT09eSYmSXg9PT1RMCYmcDE9PT12JiZkMT09PVImJnl4PT09XzA/YzpbMCxJeCxbMCx2eCxbMCx5eCxfcixmMSxkMV1dLGMxLHAxXX1mdW5jdGlvbiBPQTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErJF0sbiksYyxzLHYpfXZhciB5PXNbMV07ZnVuY3Rpb24gUyhFKXtyZXR1cm5bMSxFXX1yZXR1cm4gRzAoYShuWzFdWzEraTBdLG4pLHkscyxTKX1mdW5jdGlvbiBSQTAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9cChuWzFdWzErUV0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09eSYmUj09PXY/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIExBMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStIeF0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09eSYmUj09PXY/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIE1BMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPWNbM10sRT1zWzFdLFI9cChuWzFdWzErJF0sbix2KSxaPUt4KGEoblsxXVsxK0wxXSxuKSx5KTtyZXR1cm4gUj09PXYmJlo9PT15P3M6WzAsRSxbMCxaLFIsU11dfWZ1bmN0aW9uIERBMChuLHMpe3ZhciBjPXNbMV0sdj1zWzJdO2Z1bmN0aW9uIHkoUyl7cmV0dXJuWzAsYyxTXX1yZXR1cm4gY3goYShuWzFdWzErZF0sbiksYyx2LHMseSl9ZnVuY3Rpb24gVUEwKG4scyl7aWYoc1swXT09PTApe3ZhciBjPXNbMV0sdj1mdW5jdGlvbihFKXtyZXR1cm5bMCxFXX07cmV0dXJuIEcwKGEoblsxXVsxK18xXSxuKSxjLHMsdil9dmFyIHk9c1sxXTtmdW5jdGlvbiBTKEUpe3JldHVyblsxLEVdfXJldHVybiBHMChhKG5bMV1bMStneF0sbikseSxzLFMpfWZ1bmN0aW9uIGpBMChuLHMsYyl7dmFyIHY9Y1s1XSx5PWNbNF0sUz1jWzNdLEU9Y1syXSxSPWNbMV0sWj1LeChhKG5bMV1bMStNcl0sbiksUikseTA9S3goYShuWzFdWzErRF0sbiksRSksXzA9S3goYShuWzFdWzErZ3hdLG4pLFMpLFEwPXAoblsxXVsxK0EwXSxuLHkpLHZ4PXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBSPT09WiYmRT09PXkwJiZTPT09XzAmJnk9PT1RMCYmdj09PXZ4P2M6WzAsWix5MCxfMCxRMCx2eF19ZnVuY3Rpb24gSkEwKG4scyl7dmFyIGM9c1sxXSx2PXNbMl07ZnVuY3Rpb24geShTKXtyZXR1cm5bMCxjLFNdfXJldHVybiBjeChhKG5bMV1bMStkXSxuKSxjLHYscyx5KX1mdW5jdGlvbiBYQTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErbDFdLG4pLGMscyx2KX12YXIgeT1zWzFdO2Z1bmN0aW9uIFMoRSl7cmV0dXJuWzEsRV19cmV0dXJuIEcwKGEoblsxXVsxK2kxXSxuKSx5LHMsUyl9ZnVuY3Rpb24gWUEwKG4scyxjKXt2YXIgdj1jWzVdLHk9Y1szXSxTPWNbMl0sRT1jWzFdLFI9Y1s0XSxaPXAoblsxXVsxK3gxXSxuLEUpLHkwPXAoblsxXVsxK2d4XSxuLFMpLF8wPXAoblsxXVsxK0EwXSxuLHkpLFEwPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09WiYmUz09PXkwJiZ5PT09XzAmJnY9PT1RMD9jOlswLFoseTAsXzAsUixRMF19ZnVuY3Rpb24gVkEwKG4scyl7dmFyIGM9c1sxXSx2PXNbMl07ZnVuY3Rpb24geShTKXtyZXR1cm5bMCxjLFNdfXJldHVybiBjeChhKG5bMV1bMStkXSxuKSxjLHYscyx5KX1mdW5jdGlvbiB6QTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErdDJdLG4pLGMscyx2KX12YXIgeT1zWzFdO2Z1bmN0aW9uIFMoRSl7cmV0dXJuWzEsRV19cmV0dXJuIEcwKGEoblsxXVsxK2cxXSxuKSx5LHMsUyl9ZnVuY3Rpb24gS0EwKG4scyxjKXt2YXIgdj1jWzVdLHk9Y1szXSxTPWNbMl0sRT1jWzFdLFI9Y1s0XSxaPXAoblsxXVsxK0NyXSxuLEUpLHkwPXAoblsxXVsxK2d4XSxuLFMpLF8wPXAoblsxXVsxK0EwXSxuLHkpLFEwPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09WiYmUz09PXkwJiZ5PT09XzAmJnY9PT1RMD9jOlswLFoseTAsXzAsUixRMF19ZnVuY3Rpb24gQkEwKG4scyl7aWYoc1swXT09PTApe3ZhciBjPXNbMV0sdj1mdW5jdGlvbihFKXtyZXR1cm5bMCxFXX07cmV0dXJuIEcwKGEoblsxXVsxK2d4XSxuKSxjLHMsdil9dmFyIHk9c1sxXTtmdW5jdGlvbiBTKEUpe3JldHVyblsxLEVdfXJldHVybiBHMChhKG5bMV1bMStDMF0sbikseSxzLFMpfWZ1bmN0aW9uIFdBMChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMV0sUz1jWzJdLEU9cChuWzFdWzErZ3hdLG4seSksUj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP2M6WzAsRSxTLFJdfWZ1bmN0aW9uIFpBMChuLHMsYyl7dmFyIHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT1FP2M6WzAsUyx5LEVdfWZ1bmN0aW9uICRBMChuLHMpe2lmKHNbMF09PT0wKXt2YXIgYz1zWzFdLHY9RXIoYShuWzFdWzErbHJdLG4pLGMpO3JldHVybiBjPT09dj9zOlswLHZdfXZhciB5PXNbMV0sUz1wKG5bMV1bMStaMl0sbix5KTtyZXR1cm4geT09PVM/czpbMSxTXX1mdW5jdGlvbiBGQTAobixzKXt2YXIgYz1zWzJdLHY9c1sxXSx5PUt4KGEoblsxXVsxK0wxXSxuKSxjKTtyZXR1cm4gYz09PXk/czpbMCx2LHldfWZ1bmN0aW9uIFFBMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStMMV0sbix5KSxSPUt4KGEoblsxXVsxK0wxXSxuKSx2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBHQTAobixzLGMpe3ZhciB2PWNbNV0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1jWzRdLFo9bFYoYShuWzFdWzErWHJdLG4pLHkpLHkwPUt4KGEoblsxXVsxK3IxXSxuKSxTKSxfMD1LeChhKG5bMV1bMStBMF0sbiksRSksUTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1aJiZTPT09eTAmJkU9PT1fMCYmdj09PVEwP2M6WzAsXzAseTAsWixSLFEwXX1mdW5jdGlvbiBxQTAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErQTBdLG4pLGMscyx2KX12YXIgeT1zWzFdO2Z1bmN0aW9uIFMoRSl7cmV0dXJuWzEsRV19cmV0dXJuIEcwKGEoblsxXVsxK2d4XSxuKSx5LHMsUyl9ZnVuY3Rpb24gSEEwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStCMV0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09eSYmUj09PXY/YzpbMCxTLEUsUl19ZnVuY3Rpb24gYkEwKG4scyl7cmV0dXJuIHAoblsxXVsxK0wxXSxuLHMpfWZ1bmN0aW9uIHhQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzFdLHk9Y1syXSxTPXNbMV0sRT1wKG5bMV1bMSthMl0sbix2KTtyZXR1cm4gdj09PUU/czpbMCxTLFswLEUseV1dfWZ1bmN0aW9uIHJQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzFdLHk9Y1syXSxTPXNbMV0sRT1wKG5bMV1bMSthMl0sbix2KTtyZXR1cm4gdj09PUU/czpbMCxTLFswLEUseV1dfWZ1bmN0aW9uIGVQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzFdLHk9Y1syXSxTPXNbMV0sRT1wKG5bMV1bMSthMl0sbix2KTtyZXR1cm4gdj09PUU/czpbMCxTLFswLEUseV1dfWZ1bmN0aW9uIHRQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzFdLHk9Y1syXSxTPXNbMV0sRT1wKG5bMV1bMSthMl0sbix2KTtyZXR1cm4gdj09PUU/czpbMCxTLFswLEUseV1dfWZ1bmN0aW9uIG5QMChuLHMpe3ZhciBjPXNbMl1bMV0sdj1zWzFdLHk9cChuWzFdWzErYTJdLG4sYyk7cmV0dXJuIGM9PT15P3M6WzAsdixbMCx5XV19ZnVuY3Rpb24gdVAwKG4scyl7dmFyIGM9c1s0XSx2PXNbMV0seT1FcihhKG5bMV1bMStTZV0sbiksdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxzWzJdLHNbM10sU119ZnVuY3Rpb24gaVAwKG4scyl7dmFyIGM9c1szXSx2PXNbMV0seT1FcihhKG5bMV1bMStrdF0sbiksdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxzWzJdLFNdfWZ1bmN0aW9uIGZQMChuLHMpe3ZhciBjPXNbNF0sdj1zWzFdO2lmKHZbMF09PT0wKXZhciB5PXZbMV0sUz1mdW5jdGlvbih2eCl7cmV0dXJuWzAsdnhdfSxFPWEoblsxXVsxK2t0XSxuKSxfMD1HMChmdW5jdGlvbih2eCl7cmV0dXJuIEVyKEUsdngpfSx5LHYsUyk7ZWxzZSB2YXIgUj12WzFdLFo9ZnVuY3Rpb24odngpe3JldHVyblsxLHZ4XX0seTA9YShuWzFdWzErR3RdLG4pLF8wPUcwKGZ1bmN0aW9uKHZ4KXtyZXR1cm4gRXIoeTAsdngpfSxSLHYsWik7dmFyIFEwPXAoblsxXVsxK24wXSxuLGMpO3JldHVybiB2PT09XzAmJmM9PT1RMD9zOlswLF8wLHNbMl0sc1szXSxRMF19ZnVuY3Rpb24gY1AwKG4scyl7dmFyIGM9c1s0XSx2PXNbMV0seT1FcihhKG5bMV1bMStuMl0sbiksdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxzWzJdLHNbM10sU119ZnVuY3Rpb24gc1AwKG4scyl7dmFyIGM9c1s0XSx2PXNbMV0seT1FcihhKG5bMV1bMStodF0sbiksdiksUz1wKG5bMV1bMStuMF0sbixjKTtyZXR1cm4gdj09PXkmJmM9PT1TP3M6WzAseSxzWzJdLHNbM10sU119ZnVuY3Rpb24gb1AwKG4scyl7dmFyIGM9c1syXSx2PXNbMV07c3dpdGNoKGNbMF0pe2Nhc2UgMDp2YXIgeT1jWzFdLFM9ZnVuY3Rpb24oeXgpe3JldHVyblswLHYsWzAseXhdXX07cmV0dXJuIEcwKGEoblsxXVsxKyRlXSxuKSx5LHMsUyk7Y2FzZSAxOnZhciBFPWNbMV0sUj1mdW5jdGlvbih5eCl7cmV0dXJuWzAsdixbMSx5eF1dfTtyZXR1cm4gRzAoYShuWzFdWzErSTJdLG4pLEUscyxSKTtjYXNlIDI6dmFyIFo9Y1sxXSx5MD1mdW5jdGlvbih5eCl7cmV0dXJuWzAsdixbMix5eF1dfTtyZXR1cm4gRzAoYShuWzFdWzErQzJdLG4pLFoscyx5MCk7Y2FzZSAzOnZhciBfMD1jWzFdLFEwPWZ1bmN0aW9uKHl4KXtyZXR1cm5bMCx2LFszLHl4XV19O3JldHVybiBHMChhKG5bMV1bMSt3ZV0sbiksXzAscyxRMCk7ZGVmYXVsdDp2YXIgdng9Y1sxXSxJeD1mdW5jdGlvbih5eCl7cmV0dXJuWzAsdixbNCx5eF1dfTtyZXR1cm4gRzAoYShuWzFdWzErRWVdLG4pLHZ4LHMsSXgpfX1mdW5jdGlvbiB2UDAobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPUgwKG5bMV1bMStteF0sbix3RyxTKSxSPXAoblsxXVsxK1RlXSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gYVAwKG4scyxjKXt2YXIgdj1jWzFdLHk9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHY9PT15P2M6WzAseV19ZnVuY3Rpb24gbFAwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStBMF0sbixTKSxSPXAoblsxXVsxK0RdLG4seSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PUUmJnk9PT1SJiZ2PT09Wj9jOlswLEUsUixaXX1mdW5jdGlvbiBwUDAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1IMChuWzFdWzErbXhdLG4sWzAseV0sRSksWj1wKG5bMV1bMStRXSxuLFMpLHkwPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBSPT09RSYmWj09PVMmJnkwPT09dj9jOlswLFIsWix5LHkwXX1mdW5jdGlvbiBkUDAobixzLGMpe3JldHVybiBIMChuWzFdWzEreDBdLG4scyxjKX1mdW5jdGlvbiB5UDAobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9cChuWzFdWzErUV0sbix5KSxFPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09UyYmdj09PUU/YzpbMCxTLEVdfWZ1bmN0aW9uIG1QMChuLHMsYyl7dmFyIHY9Y1s0XSx5PWNbMl0sUz1jWzNdLEU9Y1sxXSxSPXgyKGEoblsxXVsxK2d0XSxuKSx5KSxaPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBSPT09eSYmdj09PVo/YzpbMCxFLFIsUyxaXX1mdW5jdGlvbiBrUDAobixzLGMpe3JldHVybiBIMChuWzFdWzErbDNdLG4scyxjKX1mdW5jdGlvbiBoUDAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1wKG5bMV1bMStocl0sbixFKSxaPXAoblsxXVsxK1FdLG4sUykseTA9S3goYShuWzFdWzErTzBdLG4pLHkpLF8wPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBSPT09RSYmWj09PVMmJnkwPT09eSYmXzA9PT12P2M6WzAsUixaLHkwLF8wXX1mdW5jdGlvbiBfUDAobixzKXtzd2l0Y2goc1swXSl7Y2FzZSAwOnZhciBjPXNbMV0sdj1jWzJdLHk9Y1sxXSxTPUgwKG5bMV1bMStQZV0sbix5LHYpO3JldHVybiBTPT09dj9zOlswLFswLHksU11dO2Nhc2UgMTp2YXIgRT1zWzFdLFI9RVsyXSxaPUVbMV0seTA9SDAoblsxXVsxK3F0XSxuLFosUik7cmV0dXJuIHkwPT09Uj9zOlsxLFswLFoseTBdXTtjYXNlIDI6dmFyIF8wPXNbMV0sUTA9XzBbMl0sdng9XzBbMV0sSXg9SDAoblsxXVsxK2llXSxuLHZ4LFEwKTtyZXR1cm4gSXg9PT1RMD9zOlsyLFswLHZ4LEl4XV07Y2FzZSAzOnZhciB5eD1zWzFdLF9yPXl4WzJdLGYxPXl4WzFdLGMxPUgwKG5bMV1bMStIdF0sbixmMSxfcik7cmV0dXJuIGMxPT09X3I/czpbMyxbMCxmMSxjMV1dO2Nhc2UgNDp2YXIgcDE9c1sxXSxkMT1wKG5bMV1bMSskXSxuLHAxKTtyZXR1cm4gZDE9PT1wMT9zOls0LGQxXTtjYXNlIDU6dmFyIEdlPXNbMV0scWU9R2VbMl0sSGU9R2VbMV0sQ2U9SDAoblsxXVsxK3gwXSxuLEhlLHFlKTtyZXR1cm4gQ2U9PT1xZT9zOls1LFswLEhlLENlXV07Y2FzZSA2OnZhciBiZT1zWzFdLHh0PWJlWzJdLFB0PWJlWzFdLHJ0PUgwKG5bMV1bMSticl0sbixQdCx4dCk7cmV0dXJuIHJ0PT09eHQ/czpbNixbMCxQdCxydF1dO2Nhc2UgNzp2YXIgZXQ9c1sxXSxKbj1ldFsyXSxYbj1ldFsxXSxrcz1IMChuWzFdWzErbDNdLG4sWG4sSm4pO3JldHVybiBrcz09PUpuP3M6WzcsWzAsWG4sa3NdXTtkZWZhdWx0OnZhciBocz1zWzFdLHR0PWhzWzJdLF9zPWhzWzFdLHV2PUgwKG5bMV1bMStPMl0sbixfcyx0dCk7cmV0dXJuIHV2PT09dHQ/czpbOCxbMCxfcyx1dl1dfX1mdW5jdGlvbiB3UDAobixzLGMpe3ZhciB2PWNbNV0seT1jWzRdLFM9Y1szXSxFPWNbMl0sUj1jWzFdLFo9bFYoYShuWzFdWzErWHJdLG4pLHkpLHkwPUt4KGEoblsxXVsxK3IxXSxuKSxTKSxfMD1LeChhKG5bMV1bMSt2c10sbiksRSksUTA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1aJiZTPT09eTAmJkU9PT1fMCYmdj09PVEwP2M6WzAsUixfMCx5MCxaLFEwXX1mdW5jdGlvbiBUUDAobixzLGMpe3JldHVybiBIMChuWzFdWzErTzJdLG4scyxjKX1mdW5jdGlvbiBTUDAobixzKXt2YXIgYz1zWzJdLHY9Y1s0XSx5PWNbMl0sUz1jWzFdLEU9Y1szXSxSPXNbMV0sWj1LeChhKG5bMV1bMStMMV0sbiksUykseTA9cChuWzFdWzErJF0sbix5KSxfMD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PVomJnk9PT15MCYmdj09PV8wP3M6WzAsUixbMCxaLHkwLEUsXzBdXX1mdW5jdGlvbiBFUDAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1jWzNdLEU9c1sxXSxSPXAoblsxXVsxK2FzXSxuLHkpLFo9cChuWzFdWzErUV0sbix2KTtyZXR1cm4geT09PVImJnY9PT1aP3M6WzAsRSxbMCxSLFosU11dfWZ1bmN0aW9uIGdQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1zWzFdLFI9RXIoYShuWzFdWzErZW5dLG4pLFMpLFo9S3goYShuWzFdWzErcm5dLG4pLHkpLHkwPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBTPT09UiYmeT09PVomJnY9PT15MD9zOlswLEUsWzAsUixaLHkwXV19ZnVuY3Rpb24gQVAwKG4scyxjKXt2YXIgdj1jWzRdLHk9Y1szXSxTPWNbMl0sRT1jWzFdLFI9S3goYShuWzFdWzErTV0sbiksRSksWj1wKG5bMV1bMStNbl0sbixTKSx5MD1wKG5bMV1bMStKXSxuLHkpLF8wPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09UiYmUz09PVomJnk9PT15MCYmdj09PV8wP2M6WzAsUixaLHkwLF8wXX1mdW5jdGlvbiBQUDAobixzLGMpe3ZhciB2PWNbNV0seT1jWzRdLFM9Y1szXSxFPWNbMl0sUj1jWzFdLFo9cChuWzFdWzErcHNdLG4sUikseTA9S3goYShuWzFdWzErTV0sbiksRSksXzA9cChuWzFdWzErTW5dLG4sUyksUTA9cChuWzFdWzErSl0sbix5KSx2eD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUj09PVomJkU9PT15MCYmUz09PV8wJiZ5PT09UTAmJnY9PT12eD9jOlswLFoseTAsXzAsUTAsdnhdfWZ1bmN0aW9uIE5QMChuLHMsYyl7dmFyIHY9Y1s3XSx5PWNbNl0sUz1jWzVdLEU9Y1s0XSxSPWNbM10sWj1jWzJdLHkwPWNbMV0sXzA9cChuWzFdWzErVW5dLG4seTApLFEwPUt4KGEoblsxXVsxK01dLG4pLFopLHZ4PXgyKGEoblsxXVsxK1IxXSxuKSxSKSxJeD1hKG5bMV1bMSttdF0sbikseXg9S3goZnVuY3Rpb24oZDEpe3JldHVybiB4MihJeCxkMSl9LEUpLF9yPWEoblsxXVsxK210XSxuKSxmMT1FcihmdW5jdGlvbihkMSl7cmV0dXJuIHgyKF9yLGQxKX0sUyksYzE9S3goYShuWzFdWzErdWFdLG4pLHkpLHAxPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBfMD09PXkwJiZRMD09PVomJnZ4PT09UiYmeXg9PT1FJiZmMT09PVMmJmMxPT09eSYmcDE9PT12P2M6WzAsXzAsUTAsdngseXgsZjEsYzEscDFdfWZ1bmN0aW9uIENQMChuLHMsYyl7dmFyIHY9Y1sxXSx5PXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB2PT09eT9jOlswLHldfWZ1bmN0aW9uIElQMChuLHMsYyl7dmFyIHY9Y1syXSx5PWNbMV0sUz1LeChhKG5bMV1bMStRdF0sbikseSksRT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PVMmJnY9PT1FP2M6WzAsUyxFXX1mdW5jdGlvbiBPUDAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPWNbMV0sUj1wKG5bMV1bMStEXSxuLEUpLFo9cChuWzFdWzErZ3hdLG4sUykseTA9cChuWzFdWzErZ3hdLG4seSksXzA9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIEU9PT1SJiZTPT09WiYmeT09PXkwJiZ2PT09XzA/YzpbMCxSLFoseTAsXzBdfWZ1bmN0aW9uIFJQMChuLHMpe3ZhciBjPXNbMV0sdj1zWzJdO2Z1bmN0aW9uIHkoUyl7cmV0dXJuWzAsYyxTXX1yZXR1cm4gY3goYShuWzFdWzErZ3RdLG4pLGMsdixzLHkpfWZ1bmN0aW9uIExQMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1wKG5bMV1bMStFdF0sbix5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIE1QMChuLHMpe3JldHVybiBIMChuWzFdWzErbXNdLG4sX0cscyl9ZnVuY3Rpb24gRFAwKG4scyl7aWYoc1swXT09PTApcmV0dXJuWzAscChuWzFdWzErTDFdLG4sc1sxXSldO3ZhciBjPXNbMV0sdj1jWzFdO3JldHVyblsxLFswLHYsSDAoblsxXVsxK1N4XSxuLHYsY1syXSldXX1mdW5jdGlvbiBVUDAobixzKXt2YXIgYz1zWzJdLHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9Y1s0XSxSPXNbMV0sWj1wKG5bMV1bMSthc10sbixTKSx5MD1wKG5bMV1bMStFdF0sbix5KSxfMD1wKG5bMV1bMStXMV0sbix2KTtyZXR1cm4gUz09PVomJnk9PT15MCYmdj09PV8wP3M6WzAsUixbMCxaLHkwLF8wLEVdXX1mdW5jdGlvbiBqUDAobixzKXt2YXIgYz1zWzJdLHY9Y1szXSx5PWNbMl0sUz1jWzFdLEU9c1sxXSxSPUVyKGEoblsxXVsxK2xzXSxuKSxTKSxaPUt4KGEoblsxXVsxK3FvXSxuKSx5KSx5MD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PVImJnk9PT1aJiZ2PT09eTA/czpbMCxFLFswLFIsWix5MF1dfWZ1bmN0aW9uIEpQMChuLHMpe3JldHVybiBIMChuWzFdWzErbXhdLG4saEcscyl9ZnVuY3Rpb24gWFAwKG4scyxjKXt2YXIgdj1jWzZdLHk9Y1s1XSxTPWNbNF0sRT1jWzNdLFI9Y1syXSxaPWNbMV0seTA9Y1s3XSxfMD1wKG5bMV1bMStwc10sbixaKSxRMD1LeChhKG5bMV1bMStNXSxuKSxSKSx2eD1wKG5bMV1bMSt0bl0sbixFKSxJeD1wKG5bMV1bMStrM10sbix5KSx5eD1wKG5bMV1bMStKXSxuLFMpLF9yPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBaPT09XzAmJlI9PT1RMCYmRT09PXZ4JiZ5PT09SXgmJlM9PT15eCYmdj09PV9yP2M6WzAsXzAsUTAsdngseXgsSXgsX3IseTBdfWZ1bmN0aW9uIFlQMChuLHMpe3JldHVybiBLeChhKG5bMV1bMStneF0sbikscyl9ZnVuY3Rpb24gVlAwKG4scyxjKXt2YXIgdj1jWzddLHk9Y1s2XSxTPWNbNV0sRT1jWzNdLFI9Y1syXSxaPWNbMV0seTA9cChuWzFdWzErUDBdLG4sWiksXzA9cChuWzFdWzErYm9dLG4sUiksUTA9cChuWzFdWzErSl0sbixFKSx2eD1wKG5bMV1bMStpXSxuLFMpLEl4PUVyKGEoblsxXVsxK05lXSxuKSx5KSx5eD1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gWj09PXkwJiZSPT09XzAmJlEwPT09RSYmdng9PT1TJiZJeD09PXkmJnl4PT09dj9jOlswLHkwLF8wLFEwLGNbNF0sdngsSXgseXhdfWZ1bmN0aW9uIHpQMChuLHMpe2lmKHR5cGVvZiBzPT1cIm51bWJlclwiKXJldHVybiBzO3ZhciBjPXNbMV0sdj1wKG5bMV1bMStneF0sbixjKTtyZXR1cm4gYz09PXY/czpbMCx2XX1mdW5jdGlvbiBLUDAobixzLGMpe3ZhciB2PWNbN10seT1jWzZdLFM9Y1s1XSxFPWNbM10sUj1jWzJdLFo9Y1sxXSx5MD1wKG5bMV1bMStMeF0sbixaKSxfMD1wKG5bMV1bMStib10sbixSKSxRMD1wKG5bMV1bMStKXSxuLEUpLHZ4PXAoblsxXVsxK2ldLG4sUyksSXg9RXIoYShuWzFdWzErTmVdLG4pLHkpLHl4PXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBaPT09eTAmJlI9PT1fMCYmUTA9PT1FJiZ2eD09PVMmJkl4PT09eSYmeXg9PT12P2M6WzAseTAsXzAsUTAsY1s0XSx2eCxJeCx5eF19ZnVuY3Rpb24gQlAwKG4scyxjKXt2YXIgdj1jWzZdLHk9Y1s1XSxTPWNbM10sRT1jWzJdLFI9cChuWzFdWzErTHhdLG4sRSksWj14MihhKG5bMV1bMStjcl0sbiksUykseTA9RXIoYShuWzFdWzErTmVdLG4pLHkpLF8wPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09UiYmUz09PVomJnk9PT15MCYmdj09PV8wP2M6WzAsY1sxXSxSLFosY1s0XSx5MCxfMF19ZnVuY3Rpb24gV1AwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPXAoblsxXVsxK3pdLG4seSksUj1LeChhKG5bMV1bMStLXSxuKSx2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiBaUDAobixzKXt2YXIgYz1zWzJdLHY9Y1syXSx5PWNbMV0sUz1zWzFdLEU9RXIoYShuWzFdWzErbmFdLG4pLHkpLFI9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1FJiZ2PT09Uj9zOlswLFMsWzAsRSxSXV19ZnVuY3Rpb24gJFAwKG4scyl7c3dpdGNoKHNbMF0pe2Nhc2UgMDp2YXIgYz1zWzFdLHY9Y1sxXSx5PWNbMl0sUz1mdW5jdGlvbih5eCl7cmV0dXJuWzAsWzAsdix5eF1dfTtyZXR1cm4gY3goYShuWzFdWzErXzNdLG4pLHYseSxzLFMpO2Nhc2UgMTp2YXIgRT1zWzFdLFI9RVsxXSxaPUVbMl0seTA9ZnVuY3Rpb24oeXgpe3JldHVyblsxLFswLFIseXhdXX07cmV0dXJuIGN4KGEoblsxXVsxK3RhXSxuKSxSLFoscyx5MCk7ZGVmYXVsdDp2YXIgXzA9c1sxXSxRMD1fMFsxXSx2eD1fMFsyXSxJeD1mdW5jdGlvbih5eCl7cmV0dXJuWzIsWzAsUTAseXhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2gzXSxuKSxRMCx2eCxzLEl4KX19ZnVuY3Rpb24gRlAwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPXAoblsxXVsxK2d4XSxuLHkpLFI9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1FJiZ2PT09Uj9zOlswLFMsWzAsRSxSXV19ZnVuY3Rpb24gUVAwKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPUVyKGEoblsxXVsxK1MzXSxuKSx5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIEdQMChuLHMpe3JldHVybiBIMChuWzFdWzErbXhdLG4sa0cscyl9ZnVuY3Rpb24gcVAwKG4scyxjKXt2YXIgdj1jWzNdLHk9Y1syXSxTPWNbMV0sRT1wKG5bMV1bMStneF0sbixTKSxSPUt4KGEoblsxXVsxK0tdLG4pLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gSFAwKG4scyxjKXt2YXIgdj1jWzddLHk9Y1s2XSxTPWNbNV0sRT1jWzRdLFI9Y1szXSxaPWNbMl0seTA9Y1sxXSxfMD1LeChhKG5bMV1bMStVbl0sbikseTApLFEwPUt4KGEoblsxXVsxK01dLG4pLFIpLHZ4PXAoblsxXVsxK2czXSxuLFopLEl4PWEoblsxXVsxK3czXSxuKSx5eD1LeChmdW5jdGlvbihwMSl7cmV0dXJuIHgyKEl4LHAxKX0sRSksX3I9S3goYShuWzFdWzErdWFdLG4pLFMpLGYxPUVyKGEoblsxXVsxK05lXSxuKSx5KSxjMT1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geTA9PT1fMCYmWj09PXZ4JiZFPT09eXgmJlM9PT1fciYmeT09PWYxJiZ2PT09YzEmJlI9PT1RMD9jOlswLF8wLHZ4LFEwLHl4LF9yLGYxLGMxXX1mdW5jdGlvbiBiUDAobixzLGMpe3JldHVybiBIMChuWzFdWzEraWFdLG4scyxjKX1mdW5jdGlvbiB4TjAobixzLGMpe3JldHVybiBIMChuWzFdWzEraWFdLG4scyxjKX1mdW5jdGlvbiByTjAobixzLGMpe3ZhciB2PWNbM10seT1jWzJdLFM9Y1sxXSxFPUt4KGEoblsxXVsxK2RzXSxuKSxTKSxSPXAoblsxXVsxK3h2XSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxFLFIsWl19ZnVuY3Rpb24gZU4wKG4scyl7cmV0dXJuIHgyKGEoblsxXVsxK2d0XSxuKSxzKX1mdW5jdGlvbiB0TjAobixzKXtpZihzWzBdPT09MCl7dmFyIGM9c1sxXSx2PXAoblsxXVsxKyRdLG4sYyk7cmV0dXJuIHY9PT1jP3M6WzAsdl19dmFyIHk9c1sxXSxTPXlbMl1bMV0sRT15WzFdLFI9cChuWzFdWzErbjBdLG4sUyk7cmV0dXJuIFM9PT1SP3M6WzEsWzAsRSxbMCxSXV1dfWZ1bmN0aW9uIG5OMChuLHMpe3ZhciBjPXNbMl0sdj1jWzJdLHk9Y1sxXSxTPXNbMV0sRT1FcihhKG5bMV1bMStBM10sbikseSksUj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4geT09PUUmJnY9PT1SP3M6WzAsUyxbMCxFLFJdXX1mdW5jdGlvbiB1TjAobixzLGMpe3ZhciB2PWNbMV0seT1IMChuWzFdWzErZmFdLG4scyx2KTtyZXR1cm4gdj09PXk/YzpbMCx5LGNbMl0sY1szXV19ZnVuY3Rpb24gaU4wKG4scyl7dmFyIGM9c1syXSx2PWNbMl0seT1jWzFdLFM9c1sxXSxFPUVyKGEoblsxXVsxK25lXSxuKSx5KSxSPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiB5PT09RSYmdj09PVI/czpbMCxTLFswLEUsUl1dfWZ1bmN0aW9uIGZOMChuLHMsYyl7dmFyIHY9Y1s0XSx5PWNbM10sUz1jWzJdLEU9Y1sxXSxSPXAoblsxXVsxK2d4XSxuLEUpLFo9S3goYShuWzFdWzErcnZdLG4pLFMpLHkwPXAoblsxXVsxK2NhXSxuLHkpLF8wPXAoblsxXVsxK24wXSxuLHYpO3JldHVybiBFPT09UiYmUz09PVomJnk9PT15MCYmdj09PV8wP2M6WzAsUixaLHkwLF8wXX1mdW5jdGlvbiBjTjAobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9S3goYShuWzFdWzErUXRdLG4pLHkpLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1TJiZ2PT09RT9jOlswLFMsRV19ZnVuY3Rpb24gc04wKG4scyxjKXt2YXIgdj1jWzJdLHk9Y1sxXSxTPXAoblsxXVsxK0QwXSxuLHkpLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1TJiZ2PT09RT9jOlswLFMsRV19ZnVuY3Rpb24gb04wKG4scyxjKXt2YXIgdj1jWzRdLHk9Y1szXSxTPWNbMl0sRT1wKG5bMV1bMStneF0sbixTKSxSPXAoblsxXVsxK2d4XSxuLHkpLFo9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIFM9PT1FJiZ5PT09UiYmdj09PVo/YzpbMCxjWzFdLEUsUixaXX1mdW5jdGlvbiB2TjAobixzLGMpe3ZhciB2PWNbNF0seT1jWzNdLFM9Y1syXSxFPXAoblsxXVsxK3VuXSxuLFMpLFI9cChuWzFdWzErZ3hdLG4seSksWj1wKG5bMV1bMStuMF0sbix2KTtyZXR1cm4gUz09PUUmJnk9PT1SJiZ2PT09Wj9jOlswLGNbMV0sRSxSLFpdfWZ1bmN0aW9uIGFOMChuLHMsYyl7cmV0dXJuIEgwKG5bMV1bMStXcl0sbixzLGMpfWZ1bmN0aW9uIGxOMChuLHMpe3N3aXRjaChzWzBdKXtjYXNlIDA6dmFyIGM9c1sxXSx2PWZ1bmN0aW9uKEUpe3JldHVyblswLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErZ3hdLG4pLGMscyx2KTtjYXNlIDE6dmFyIHk9c1sxXSxTPWZ1bmN0aW9uKEUpe3JldHVyblsxLEVdfTtyZXR1cm4gRzAoYShuWzFdWzErQzBdLG4pLHkscyxTKTtkZWZhdWx0OnJldHVybiBzfX1mdW5jdGlvbiBwTjAobixzLGMpe3ZhciB2PWNbMl0seT1jWzFdLFM9RXIoYShuWzFdWzErbnZdLG4pLHkpLEU9cChuWzFdWzErbjBdLG4sdik7cmV0dXJuIHk9PT1TJiZ2PT09RT9jOlswLFMsRV19ZnVuY3Rpb24gZE4wKG4scyl7dmFyIGM9c1syXSx2PXNbMV07c3dpdGNoKGNbMF0pe2Nhc2UgMDp2YXIgeT1jWzFdLFM9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzAsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK0MzXSxuKSx2LHkscyxTKTtjYXNlIDE6dmFyIEU9Y1sxXSxSPWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsxLER4XV19O3JldHVybiBjeChhKG5bMV1bMStQM10sbiksdixFLHMsUik7Y2FzZSAyOnZhciBaPWNbMV0seTA9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzIsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK3R2XSxuKSx2LFoscyx5MCk7Y2FzZSAzOnZhciBfMD1jWzFdLFEwPWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFszLER4XV19O3JldHVybiBjeChhKG5bMV1bMStBdF0sbiksdixfMCxzLFEwKTtjYXNlIDQ6dmFyIHZ4PWNbMV0sSXg9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzQsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2ZhXSxuKSx2LHZ4LHMsSXgpO2Nhc2UgNTp2YXIgeXg9Y1sxXSxfcj1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbNSxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErVDNdLG4pLHYseXgscyxfcik7Y2FzZSA2OnZhciBmMT1jWzFdLGMxPWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFs2LER4XV19O3JldHVybiBjeChhKG5bMV1bMSt4bl0sbiksdixmMSxzLGMxKTtjYXNlIDc6dmFyIHAxPWNbMV0sZDE9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzcsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK3NyXSxuKSx2LHAxLHMsZDEpO2Nhc2UgODp2YXIgR2U9Y1sxXSxxZT1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbOCxEeF1dfTtyZXR1cm4gRzAoYShuWzFdWzErTDFdLG4pLEdlLHMscWUpO2Nhc2UgOTp2YXIgSGU9Y1sxXSxDZT1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbOSxEeF1dfTtyZXR1cm4gRzAocChuWzFdWzEreTNdLG4sdiksSGUscyxDZSk7Y2FzZSAxMDp2YXIgYmU9Y1sxXSx4dD1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMTAsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK3NzXSxuKSx2LGJlLHMseHQpO2Nhc2UgMTE6dmFyIFB0PWNbMV0scnQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzExLER4XV19O3JldHVybiBjeChhKG5bMV1bMStCb10sbiksdixQdCxzLHJ0KTtjYXNlIDEyOnZhciBldD1jWzFdLEpuPWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsxMixEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErU3hdLG4pLHYsZXQscyxKbik7Y2FzZSAxMzp2YXIgWG49Y1sxXSxrcz1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMTMsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2FvXSxuKSx2LFhuLHMsa3MpO2Nhc2UgMTQ6dmFyIGhzPWNbMV0sdHQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzE0LER4XV19O3JldHVybiBjeChhKG5bMV1bMStCMl0sbiksdixocyxzLHR0KTtjYXNlIDE1OnZhciBfcz1jWzFdLHV2PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsxNSxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErT3JdLG4pLHYsX3Mscyx1dik7Y2FzZSAxNjp2YXIgejY9Y1sxXSxLNj1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMTYsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK25uXSxuKSx2LHo2LHMsSzYpO2Nhc2UgMTc6dmFyIEI2PWNbMV0sVzY9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzE3LER4XV19O3JldHVybiBjeChhKG5bMV1bMSthMF0sbiksdixCNixzLFc2KTtjYXNlIDE4OnZhciBaNj1jWzFdLCQ2PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsxOCxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErbWVdLG4pLHYsWjYscywkNik7Y2FzZSAxOTp2YXIgRjY9Y1sxXSxRNj1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMTksRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK0Z0XSxuKSx2LEY2LHMsUTYpO2Nhc2UgMjA6dmFyIEc2PWNbMV0scTY9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzIwLER4XV19O3JldHVybiBjeChhKG5bMV1bMSt0ZV0sbiksdixHNixzLHE2KTtjYXNlIDIxOnZhciBINj1jWzFdLGI2PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsyMSxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErUG5dLG4pLHYsSDYscyxiNik7Y2FzZSAyMjp2YXIgeDQ9Y1sxXSxyND1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMjIsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2x0XSxuKSx2LHg0LHMscjQpO2Nhc2UgMjM6dmFyIGU0PWNbMV0sdDQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzIzLER4XV19O3JldHVybiBjeChhKG5bMV1bMSt6eF0sbiksdixlNCxzLHQ0KTtjYXNlIDI0OnZhciBuND1jWzFdLHU0PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsyNCxEeF1dfTtyZXR1cm4gRzAocChuWzFdWzErbHhdLG4sdiksbjQscyx1NCk7Y2FzZSAyNTp2YXIgaTQ9Y1sxXSxmND1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMjUsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK1NyXSxuKSx2LGk0LHMsZjQpO2Nhc2UgMjY6dmFyIGM0PWNbMV0sczQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzI2LER4XV19O3JldHVybiBjeChhKG5bMV1bMStGXSxuKSx2LGM0LHMsczQpO2Nhc2UgMjc6dmFyIG80PWNbMV0sdjQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzI3LER4XV19O3JldHVybiBjeChhKG5bMV1bMStheF0sbiksdixvNCxzLHY0KTtjYXNlIDI4OnZhciBhND1jWzFdLGw0PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFsyOCxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErJDBdLG4pLHYsYTQscyxsNCk7Y2FzZSAyOTp2YXIgcDQ9Y1sxXSxkND1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMjksRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2cwXSxuKSx2LHA0LHMsZDQpO2Nhc2UgMzA6dmFyIHk0PWNbMV0sbTQ9ZnVuY3Rpb24oRHgpe3JldHVyblswLHYsWzMwLER4XV19O3JldHVybiBjeChhKG5bMV1bMStYMF0sbiksdix5NCxzLG00KTtjYXNlIDMxOnZhciBrND1jWzFdLGg0PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFszMSxEeF1dfTtyZXR1cm4gY3goYShuWzFdWzEral0sbiksdixrNCxzLGg0KTtjYXNlIDMyOnZhciBfND1jWzFdLHc0PWZ1bmN0aW9uKER4KXtyZXR1cm5bMCx2LFszMixEeF1dfTtyZXR1cm4gY3goYShuWzFdWzErYzBdLG4pLHYsXzQscyx3NCk7Y2FzZSAzMzp2YXIgVDQ9Y1sxXSxTND1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMzMsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2ddLG4pLHYsVDQscyxTNCk7Y2FzZSAzNDp2YXIgRTQ9Y1sxXSxnND1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMzQsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2tdLG4pLHYsRTQscyxnNCk7ZGVmYXVsdDp2YXIgQTQ9Y1sxXSxNeD1mdW5jdGlvbihEeCl7cmV0dXJuWzAsdixbMzUsRHhdXX07cmV0dXJuIGN4KGEoblsxXVsxK2VdLG4pLHYsQTQscyxNeCl9fWZ1bmN0aW9uIHlOMChuLHMpe3ZhciBjPXNbMl0sdj1zWzFdLHk9c1szXSxTPUVyKGEoblsxXVsxK29vXSxuKSx2KSxFPUVyKGEoblsxXVsxK29vXSxuKSxjKTtyZXR1cm4gdj09PVMmJmM9PT1FP3M6WzAsUyxFLHldfWZ1bmN0aW9uIG1OMChuKXt2YXIgcz1hKG5bMV1bMStpeF0sbik7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBLeChzLGMpfX1mdW5jdGlvbiBrTjAobixzKXtyZXR1cm4gc31mdW5jdGlvbiBoTjAobixzKXt2YXIgYz1zWzJdLHY9c1sxXTtzd2l0Y2goY1swXSl7Y2FzZSAwOnZhciB5PWNbMV0sUz1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMCxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErZ3RdLG4pLHYseSxzLFMpO2Nhc2UgMTp2YXIgRT1jWzFdLFI9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzEsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3lzXSxuKSx2LEUscyxSKTtjYXNlIDI6dmFyIFo9Y1sxXSx5MD1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMixDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErRTNdLG4pLHYsWixzLHkwKTtjYXNlIDM6dmFyIF8wPWNbMV0sUTA9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzMsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK0hvXSxuKSx2LF8wLHMsUTApO2Nhc2UgNDp2YXIgdng9Y1sxXSxJeD1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbNCxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErYnRdLG4pLHYsdngscyxJeCk7Y2FzZSA1OnZhciB5eD1jWzFdLF9yPWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFs1LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStTdF0sbiksdix5eCxzLF9yKTtjYXNlIDY6dmFyIGYxPWNbMV0sYzE9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzYsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK2llXSxuKSx2LGYxLHMsYzEpO2Nhc2UgNzp2YXIgcDE9Y1sxXSxkMT1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbNyxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErSHRdLG4pLHYscDEscyxkMSk7Y2FzZSA4OnZhciBHZT1jWzFdLHFlPWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFs4LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStUdF0sbiksdixHZSxzLHFlKTtjYXNlIDk6dmFyIEhlPWNbMV0sQ2U9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzksQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3d0XSxuKSx2LEhlLHMsQ2UpO2Nhc2UgMTA6dmFyIGJlPWNbMV0seHQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzEwLEN4XV19O3JldHVybiBjeChhKG5bMV1bMStxdF0sbiksdixiZSxzLHh0KTtjYXNlIDExOnZhciBQdD1jWzFdLHJ0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsxMSxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErUjJdLG4pLHYsUHQscyxydCk7Y2FzZSAxMjp2YXIgZXQ9Y1sxXSxKbj1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMTIsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3VlXSxuKSx2LGV0LHMsSm4pO2Nhc2UgMTM6dmFyIFhuPWNbMV0sa3M9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzEzLEN4XV19O3JldHVybiBjeChhKG5bMV1bMStGZV0sbiksdixYbixzLGtzKTtjYXNlIDE0OnZhciBocz1jWzFdLHR0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsxNCxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErX3RdLG4pLHYsaHMscyx0dCk7Y2FzZSAxNTp2YXIgX3M9Y1sxXSx1dj1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMTUsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK2JyXSxuKSx2LF9zLHMsdXYpO2Nhc2UgMTY6dmFyIHo2PWNbMV0sSzY9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzE2LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStQZV0sbiksdix6NixzLEs2KTtjYXNlIDE3OnZhciBCNj1jWzFdLFc2PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsxNyxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErQWVdLG4pLHYsQjYscyxXNik7Y2FzZSAxODp2YXIgWjY9Y1sxXSwkNj1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMTgsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK2dlXSxuKSx2LFo2LHMsJDYpO2Nhc2UgMTk6dmFyIEY2PWNbMV0sUTY9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzE5LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStPMl0sbiksdixGNixzLFE2KTtjYXNlIDIwOnZhciBHNj1jWzFdLHE2PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsyMCxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErX2VdLG4pLHYsRzYscyxxNik7Y2FzZSAyMTp2YXIgSDY9Y1sxXSxiNj1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMjEsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3pyXSxuKSx2LEg2LHMsYjYpO2Nhc2UgMjI6dmFyIHg0PWNbMV0scjQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzIyLEN4XV19O3JldHVybiBjeChhKG5bMV1bMStXMl0sbiksdix4NCxzLHI0KTtjYXNlIDIzOnZhciBlND1jWzFdLHQ0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsyMyxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErUXJdLG4pLHYsZTQscyx0NCk7Y2FzZSAyNDp2YXIgbjQ9Y1sxXSx1ND1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMjQsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK00xXSxuKSx2LG40LHMsdTQpO2Nhc2UgMjU6dmFyIGk0PWNbMV0sZjQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzI1LEN4XV19O3JldHVybiBjeChhKG5bMV1bMSthMV0sbiksdixpNCxzLGY0KTtjYXNlIDI2OnZhciBjND1jWzFdLHM0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsyNixDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErTnJdLG4pLHYsYzQscyxzNCk7Y2FzZSAyNzp2YXIgbzQ9Y1sxXSx2ND1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMjcsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK1VtXSxuKSx2LG80LHMsdjQpO2Nhc2UgMjg6dmFyIGE0PWNbMV0sbDQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzI4LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStlYV0sbiksdixhNCxzLGw0KTtjYXNlIDI5OnZhciBwND1jWzFdLGQ0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFsyOSxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErcmFdLG4pLHYscDQscyxkNCk7Y2FzZSAzMDp2YXIgeTQ9Y1sxXSxtND1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMzAsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3lyXSxuKSx2LHk0LHMsbTQpO2Nhc2UgMzE6dmFyIGs0PWNbMV0saDQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzMxLEN4XV19O3JldHVybiBjeChhKG5bMV1bMStIXSxuKSx2LGs0LHMsaDQpO2Nhc2UgMzI6dmFyIF80PWNbMV0sdzQ9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzMyLEN4XV19O3JldHVybiBjeChhKG5bMV1bMStkeF0sbiksdixfNCxzLHc0KTtjYXNlIDMzOnZhciBUND1jWzFdLFM0PWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFszMyxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErTDBdLG4pLHYsVDQscyxTNCk7Y2FzZSAzNDp2YXIgRTQ9Y1sxXSxnND1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMzQsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK2QwXSxuKSx2LEU0LHMsZzQpO2Nhc2UgMzU6dmFyIEE0PWNbMV0sTXg9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzM1LEN4XV19O3JldHVybiBjeChhKG5bMV1bMSt4MF0sbiksdixBNCxzLE14KTtjYXNlIDM2OnZhciBEeD1jWzFdLF9OMD1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMzYsQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK2JyXSxuKSx2LER4LHMsX04wKTtjYXNlIDM3OnZhciB3TjA9Y1sxXSxUTjA9ZnVuY3Rpb24oQ3gpe3JldHVyblswLHYsWzM3LEN4XV19O3JldHVybiBjeChhKG5bMV1bMStkXSxuKSx2LHdOMCxzLFROMCk7Y2FzZSAzODp2YXIgU04wPWNbMV0sRU4wPWZ1bmN0aW9uKEN4KXtyZXR1cm5bMCx2LFszOCxDeF1dfTtyZXR1cm4gY3goYShuWzFdWzErdV0sbiksdixTTjAscyxFTjApO2RlZmF1bHQ6dmFyIGdOMD1jWzFdLEFOMD1mdW5jdGlvbihDeCl7cmV0dXJuWzAsdixbMzksQ3hdXX07cmV0dXJuIGN4KGEoblsxXVsxK3RdLG4pLHYsZ04wLHMsQU4wKX19cmV0dXJuIFJPKHgsWzAsWG0sZnVuY3Rpb24obixzKXt2YXIgYz1zWzJdLHY9Y1s0XSx5PWNbM10sUz1jWzFdLEU9Y1syXSxSPXNbMV0sWj1wKG5bMV1bMStFMF0sbixTKSx5MD1wKG5bMV1bMStuMF0sbix5KSxfMD1FcihhKG5bMV1bMStvb10sbiksdik7cmV0dXJuIFM9PT1aJiZ5PT09eTAmJnY9PT1fMD9zOlswLFIsWzAsWixFLHkwLF8wXV19LEEwLGhOMCxvbyxrTjAsbjAsbU4wLGl4LHlOMCxneCxkTjAsQzMscE4wLG52LGxOMCxQMyxhTjAsdHYsdk4wLEF0LG9OMCxndCxzTjAseXMsY04wLGZhLGZOMCxjYSxpTjAsbHgsdU4wLHJ2LG5OMCxBMyx0TjAseHYsZU4wLHZvLHJOMCxFMyx4TjAsVDMsYlAwLGlhLEhQMCx3MyxxUDAsVW4sR1AwLGczLFFQMCxOZSxGUDAsUzMsJFAwLHVhLFpQMCxuYSxXUDAsXzMsQlAwLHRhLEtQMCxibyx6UDAsaDMsVlAwLFcxLFlQMCxIbyxYUDAscHMsSlAwLHRuLGpQMCxscyxVUDAsYXMsRFAwLEV0LE1QMCxxbyxMUDAsazMsUlAwLHhuLE9QMCxidCxJUDAsU3QsQ1AwLGllLE5QMCxIdCxQUDAsRG4sQVAwLE1uLGdQMCxlbixFUDAscm4sU1AwLFR0LFRQMCx3dCx3UDAsdnMsX1AwLHF0LGhQMCxSMixrUDAsdWUsbVAwLEZlLHlQMCxfdCxkUDAsUGUscFAwLEFlLGxQMCxnZSxhUDAsTzIsdlAwLFRlLG9QMCwkZSxzUDAsSTIsY1AwLEMyLGZQMCx3ZSxpUDAsRWUsdVAwLGt0LG5QMCxodCx0UDAsbjIsZVAwLEd0LHJQMCxTZSx4UDAsYTIsYkEwLF9lLEhBMCxCMSxxQTAsenIsR0EwLGxyLFFBMCxaMixGQTAscjEsJEEwLFhyLFpBMCxXMixXQTAsbmUsQkEwLE0xLEtBMCxDcix6QTAsdDIsVkEwLGExLFlBMCx4MSxYQTAsbDEsSkEwLFFyLGpBMCxNcixVQTAsXzEsREEwLEh4LE1BMCxFeCxMQTAsVDAsUkEwLEksT0EwLFUsSUEwLFF0LENBMCxiLE5BMCxoMSxQQTAsZTIsQUEwLHIwLGdBMCxfLEVBMCwkeCxTQTAsdHIsVEEwLHhyLHdBMCxHLF9BMCxSMSxoQTAsSXIsa0EwLEdvLG1BMCxxLHlBMCxtMyxkQTAsdG8scEEwLGYsbEEwLGksYUEwLEssdkEwLE0sb0EwLFYsc0EwLG10LGNBMCxwMyxmQTAsVXIsaUEwLFN4LHVBMCxPcixuQTAsbm4sdEEwLGFvLGVBMCxCMixyQTAsYTAseEEwLG1lLGJnMCxXeCxIZzAsZmUscWcwLExtLEdnMCxBLFFnMCxMLEZnMCxPLCRnMCxDLFpnMCxOLFdnMCxJbixCZzAsbTAsS2cwLGYwLHpnMCxvMCxWZzAsdjAsWWcwLHMwLFhnMCxOMyxKZzAsaCxqZzAsUW8sVWcwLCQsRGcwLFEsTWcwLEosTGcwLE5yLFJnMCxzcixPZzAsY3IsSWcwLFdyLENnMCxqeCxOZzAsUjAsUGcwLG9yLEFnMCx0eCxnZzAsRnIsRWcwLEJyLFNnMCxldixUZzAsaHIsd2cwLEwxLF9nMCxZLGhnMCx6LGtnMCxRZSxtZzAsbDMseWcwLHJhLGRnMCxQMCxwZzAsTG4sbGcwLHkzLGFnMCxqbSx2ZzAsSm0sb2cwLFVtLHNnMCxlYSxjZzAsTzYsZmcwLEk2LGlnMCxCLHVnMCxNbSxuZzAsRG0sdGcwLGQzLGVnMCxzcyxyZzAsQm8seGcwLHB0LGJFMCxabyxIRTAsS28scUUwLGhlLEdFMCxvcyxRRTAseGEsRkUwLEZvLCRFMCxzbyxaRTAsYnYsV0UwLFJuLEJFMCwkbyxLRTAsY28sekUwLGEzLFZFMCxpbyxZRTAscXYsWEUwLHl0LEpFMCxmbyxqRTAsSHYsVUUwLFdvLERFMCxubyxNRTAsT24sTEUwLHYyLFNNLHVvLGU5LGR0LHI5LHlyLFY2LEZ0LFRNLHRlLHg5LFNyLHdNLGtlLF9NLE5uLGJtLENuLEwzLGNzLFIzLFBuLFk2LGx0LFg2LHp4LGhNLFMwLGtNLEx4LG1NLGgwLEo2LHowLHlNLFp4LGRNLE0wLHBNLHV4LGo2LGJyLGxNLG1yLGFNLG8sdk0sZHMsb00sZzEsc00saTEsTzMsbXMsY00sdW4sSG0sVjAsZk0sbXgsaU0sSzAsdU0sTngsVTYsR3gsbk0sVTAscW0sZXgsdE0sVCxlTSxiMCxyTSxCMCxENixzeCx4TSxYLE02LEYwLEdtLG94LGJMLF94LFFtLGowLEw2LG5yLEZtLFcwLEhMLEp4LCRtLGJ4LHFMLEowLFI2LEJ4LEdMLE8wLFFMLEQsRkwsdDAsWm0saTAsV20sVXgsc2EsSCwkTCxGLEJtLEUwLEttLEQwLFpMLE4wLFdMLEMwLEJMLFkwLHptLGF4LEkzLGR4LEtMLHJ4LHpMLCQwLFZMLGcwLFlMLHh4LFhMLFgwLEpMLEwwLGpMLGQwLFVMLGosREwsYzAsTUwsZyxMTCxrLFJMLGQsT0wsbCxJTCx1LENMLHQsVm0seDAsWW0sZSxqbl0pLGZ1bmN0aW9uKG4scyl7cmV0dXJuIGl5KHMseCl9fSksSk89ZnVuY3Rpb24geChyLGUsdCl7cmV0dXJuIHguZnVuKHIsZSx0KX07STAoSk8sZnVuY3Rpb24oeCxyLGUpe3ZhciB0PWVbMl07c3dpdGNoKHRbMF0pe2Nhc2UgMDp2YXIgdT10WzFdWzFdO3JldHVybiBIMShmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIGw9b1swXT09PTA/b1sxXVsyXVsyXTpvWzFdWzJdWzFdO3JldHVybiBIMChKTyx4LGYsbCl9fSxyLHUpO2Nhc2UgMTp2YXIgaT10WzFdWzFdO3JldHVybiBIMShmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG9bMF09PT0yP2Y6SDAoSk8seCxmLG9bMV1bMl1bMV0pfX0scixpKTtjYXNlIDI6cmV0dXJuIHAoeCxyLHRbMV1bMV0pO2RlZmF1bHQ6cmV0dXJuIHJ9fSk7dmFyIFhPPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxaVDA9ZnVuY3Rpb24oeCl7dmFyIHI9eFswXT09PTA/eFsxXVsyXVsyXTp4WzFdWzJdWzFdO3JldHVybiBhKFhPLHIpfSwkVDA9ZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF09PT0yPzA6YShYTyx4WzFdWzJdWzFdKX07STAoWE8sZnVuY3Rpb24oeCl7dmFyIHI9eFsyXTtzd2l0Y2goclswXSl7Y2FzZSAwOnJldHVybiByTyhaVDAsclsxXVsxXSk7Y2FzZSAxOnJldHVybiByTygkVDAsclsxXVsxXSk7Y2FzZSAyOnJldHVybiAxO2RlZmF1bHQ6cmV0dXJuIDB9fSk7dmFyIFNuPWZ1bmN0aW9uKHgscil7cmV0dXJuWzAsclsxXSxbMCxyWzJdLHhdXX0scFY9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXg/eFsxXTowLHU9cj9yWzFdOjA7cmV0dXJuWzAsdCx1LGVdfSxrMD1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9eD94WzFdOjAsdT1yP3JbMV06MDtyZXR1cm4hdCYmIXU/MDpbMCxwVihbMCx0XSxbMCx1XSwwKV19LGoxPWZ1bmN0aW9uKHgscixlLHQpe3ZhciB1PXg/eFsxXTowLGk9cj9yWzFdOjA7cmV0dXJuIXUmJiFpJiYhZT8wOlswLHBWKFswLHVdLFswLGldLGUpXX0sTjI9ZnVuY3Rpb24oeCxyKXtpZih4KXtpZihyKXt2YXIgZT1yWzFdLHQ9eFsxXSx1PVswLFF4KHRbMl0sZVsyXSldO3JldHVybiBrMChbMCxReChlWzFdLHRbMV0pXSx1LDApfXZhciBpPXh9ZWxzZSB2YXIgaT1yO3JldHVybiBpfSxZTz1mdW5jdGlvbih4LHIpe2lmKCFyKXJldHVybiB4O2lmKHgpe3ZhciBlPXJbMV0sdD14WzFdLHU9ZVsxXSxpPXRbM10sZj10WzFdLG89WzAsUXgodFsyXSxlWzJdKV07cmV0dXJuIGoxKFswLFF4KHUsZildLG8saSwwKX12YXIgbD1yWzFdO3JldHVybiBqMShbMCxsWzFdXSxbMCxsWzJdXSwwLDApfSxkVj1mdW5jdGlvbih4LHIpe2EoSnIoeCkseXEpLHAoSnIoeCksa3EsbXEpO3ZhciBlPXJbMV07YShhKEpyKHgpLGhxKSxlKSxhKEpyKHgpLF9xKSxhKEpyKHgpLHdxKSxwKEpyKHgpLFNxLFRxKTt2YXIgdD1yWzJdO3JldHVybiBhKGEoSnIoeCksRXEpLHQpLGEoSnIoeCksZ3EpLGEoSnIoeCksQXEpfSx5Vj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LEZUMD1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX07STAoeVYsZnVuY3Rpb24oeCxyKXthKEpyKHgpLE9xKSxwKEpyKHgpLExxLFJxKTt2YXIgZT1yWzFdO2lmKGUpe3ZhciB0PWVbMV07c3dpdGNoKG55KHgsTnEpLHRbMF0pe2Nhc2UgMDp2YXIgdT10WzFdO2EoSnIoeCksaUcpLGEoYShKcih4KSxmRyksdSksYShKcih4KSxjRyk7YnJlYWs7Y2FzZSAxOnZhciBpPXRbMV07YShKcih4KSxzRyksYShhKEpyKHgpLG9HKSxpKSxhKEpyKHgpLHZHKTticmVhaztjYXNlIDI6dmFyIGY9dFsxXTthKEpyKHgpLGFHKSxhKGEoSnIoeCksbEcpLGYpLGEoSnIoeCkscEcpO2JyZWFrO2RlZmF1bHQ6dmFyIG89dFsxXTthKEpyKHgpLGRHKSxhKGEoSnIoeCkseUcpLG8pLGEoSnIoeCksbUcpfW55KHgsQ3EpfWVsc2UgbnkoeCxJcSk7cmV0dXJuIGEoSnIoeCksTXEpLGEoSnIoeCksRHEpLHAoSnIoeCksanEsVXEpLGRWKHgsclsyXSksYShKcih4KSxKcSksYShKcih4KSxYcSkscChKcih4KSxWcSxZcSksZFYoeCxyWzNdKSxhKEpyKHgpLHpxKSxhKEpyKHgpLEtxKX0pLEkwKEZUMCxmdW5jdGlvbih4KXt2YXIgcj1QcVsxXSxlPVJZKDApLHQ9U08oZSk7cmV0dXJuIHAoanIoZnVuY3Rpb24odSl7QmUodCx1KSx3Tyh0LDApO3ZhciBpPVUxKGUpO3JldHVybiBlWzJdPTAsZVsxXT1lWzRdLGVbM109Y3QoZVsxXSksaX0sMCxyKSx5Vix4KX0pO3ZhciB1MT1mdW5jdGlvbih4LHIpe3JldHVyblswLHhbMV0seFsyXSxyWzNdXX0sRnM9ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzFdLXJbMV18MDtyZXR1cm4gZT09PTA/eFsyXS1yWzJdfDA6ZX0sbVY9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yWzFdLHQ9eFsxXTtpZih0KXt2YXIgdT10WzFdO2lmKGUpdmFyIGk9ZVsxXSxmPWFWKGkpLG89YVYodSktZnwwLGw9bz09PTA/VHgodVsxXSxpWzFdKTpvO2Vsc2UgdmFyIGw9LTF9ZWxzZSB2YXIgbD1lPzE6MDtpZihsIT09MClyZXR1cm4gbDt2YXIgZD1Gcyh4WzJdLHJbMl0pO3JldHVybiBkPT09MD9Gcyh4WzNdLHJbM10pOmR9LE5vPWZ1bmN0aW9uKHgscil7cmV0dXJuIG1WKHgscik9PT0wPzE6MH0sa1Y9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfTtJMChrVixmdW5jdGlvbih4LHIpe2lmKHR5cGVvZiB4PT1cIm51bWJlclwiKXt2YXIgZT14O2lmKDU5PD1lKXN3aXRjaChlKXtjYXNlIDU5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTkpcmV0dXJuIDA7YnJlYWs7Y2FzZSA2MDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTYwKXJldHVybiAwO2JyZWFrO2Nhc2UgNjE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02MSlyZXR1cm4gMDticmVhaztjYXNlIDYyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjIpcmV0dXJuIDA7YnJlYWs7Y2FzZSA2MzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTYzKXJldHVybiAwO2JyZWFrO2Nhc2UgNjQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02NClyZXR1cm4gMDticmVhaztjYXNlIDY1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjUpcmV0dXJuIDA7YnJlYWs7Y2FzZSA2NjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTY2KXJldHVybiAwO2JyZWFrO2Nhc2UgNjc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02NylyZXR1cm4gMDticmVhaztjYXNlIDY4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjgpcmV0dXJuIDA7YnJlYWs7Y2FzZSA2OTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTY5KXJldHVybiAwO2JyZWFrO2Nhc2UgNzA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03MClyZXR1cm4gMDticmVhaztjYXNlIDcxOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzEpcmV0dXJuIDA7YnJlYWs7Y2FzZSA3MjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTcyKXJldHVybiAwO2JyZWFrO2Nhc2UgNzM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03MylyZXR1cm4gMDticmVhaztjYXNlIDc0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzQpcmV0dXJuIDA7YnJlYWs7Y2FzZSA3NTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTc1KXJldHVybiAwO2JyZWFrO2Nhc2UgNzY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03NilyZXR1cm4gMDticmVhaztjYXNlIDc3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzcpcmV0dXJuIDA7YnJlYWs7Y2FzZSA3ODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTc4KXJldHVybiAwO2JyZWFrO2Nhc2UgNzk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03OSlyZXR1cm4gMDticmVhaztjYXNlIDgwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODApcmV0dXJuIDA7YnJlYWs7Y2FzZSA4MTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTgxKXJldHVybiAwO2JyZWFrO2Nhc2UgODI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04MilyZXR1cm4gMDticmVhaztjYXNlIDgzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODMpcmV0dXJuIDA7YnJlYWs7Y2FzZSA4NDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg0KXJldHVybiAwO2JyZWFrO2Nhc2UgODU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04NSlyZXR1cm4gMDticmVhaztjYXNlIDg2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODYpcmV0dXJuIDA7YnJlYWs7Y2FzZSA4NzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg3KXJldHVybiAwO2JyZWFrO2Nhc2UgODg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04OClyZXR1cm4gMDticmVhaztjYXNlIDg5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODkpcmV0dXJuIDA7YnJlYWs7Y2FzZSA5MDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTkwKXJldHVybiAwO2JyZWFrO2Nhc2UgOTE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05MSlyZXR1cm4gMDticmVhaztjYXNlIDkyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTIpcmV0dXJuIDA7YnJlYWs7Y2FzZSA5MzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTkzKXJldHVybiAwO2JyZWFrO2Nhc2UgOTQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05NClyZXR1cm4gMDticmVhaztjYXNlIDk1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTUpcmV0dXJuIDA7YnJlYWs7Y2FzZSA5NjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTk2KXJldHVybiAwO2JyZWFrO2Nhc2UgOTc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05NylyZXR1cm4gMDticmVhaztjYXNlIDk4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTgpcmV0dXJuIDA7YnJlYWs7Y2FzZSA5OTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTk5KXJldHVybiAwO2JyZWFrO2Nhc2UgMTAwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZpdD09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMDE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkl0PT09cilyZXR1cm4gMDticmVhaztjYXNlIDEwMjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmSmY9PT1yKXJldHVybiAwO2JyZWFrO2Nhc2UgMTAzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZmbj09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMDQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkR0PT09cilyZXR1cm4gMDticmVhaztjYXNlIDEwNTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmRGU9PT1yKXJldHVybiAwO2JyZWFrO2Nhc2UgMTA2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZsMj09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMDc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkcyPT09cilyZXR1cm4gMDticmVhaztjYXNlIDEwODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmdm49PT1yKXJldHVybiAwO2JyZWFrO2Nhc2UgMTA5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZJcz09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMTA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJlYxPT09cilyZXR1cm4gMDticmVhaztjYXNlIDExMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmT3Q9PT1yKXJldHVybiAwO2JyZWFrO2Nhc2UgMTEyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZMMj09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMTM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJlJyPT09cilyZXR1cm4gMDticmVhaztjYXNlIDExNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmdXQ9PT1yKXJldHVybiAwO2JyZWFrO2Nhc2UgMTE1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZPcz09PXIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMTY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJk5zPT09cilyZXR1cm4gMDticmVhaztkZWZhdWx0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZwbzw9cilyZXR1cm4gMH1lbHNlIHN3aXRjaChlKXtjYXNlIDA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJiFyKXJldHVybiAwO2JyZWFrO2Nhc2UgMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTEpcmV0dXJuIDA7YnJlYWs7Y2FzZSAyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MilyZXR1cm4gMDticmVhaztjYXNlIDM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zKXJldHVybiAwO2JyZWFrO2Nhc2UgNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQpcmV0dXJuIDA7YnJlYWs7Y2FzZSA1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NSlyZXR1cm4gMDticmVhaztjYXNlIDY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02KXJldHVybiAwO2JyZWFrO2Nhc2UgNzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTcpcmV0dXJuIDA7YnJlYWs7Y2FzZSA4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OClyZXR1cm4gMDticmVhaztjYXNlIDk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05KXJldHVybiAwO2JyZWFrO2Nhc2UgMTA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xMClyZXR1cm4gMDticmVhaztjYXNlIDExOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTEpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxMjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTEyKXJldHVybiAwO2JyZWFrO2Nhc2UgMTM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xMylyZXR1cm4gMDticmVhaztjYXNlIDE0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTQpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxNTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTE1KXJldHVybiAwO2JyZWFrO2Nhc2UgMTY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xNilyZXR1cm4gMDticmVhaztjYXNlIDE3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTcpcmV0dXJuIDA7YnJlYWs7Y2FzZSAxODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTE4KXJldHVybiAwO2JyZWFrO2Nhc2UgMTk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xOSlyZXR1cm4gMDticmVhaztjYXNlIDIwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjApcmV0dXJuIDA7YnJlYWs7Y2FzZSAyMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTIxKXJldHVybiAwO2JyZWFrO2Nhc2UgMjI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yMilyZXR1cm4gMDticmVhaztjYXNlIDIzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjMpcmV0dXJuIDA7YnJlYWs7Y2FzZSAyNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTI0KXJldHVybiAwO2JyZWFrO2Nhc2UgMjU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yNSlyZXR1cm4gMDticmVhaztjYXNlIDI2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjYpcmV0dXJuIDA7YnJlYWs7Y2FzZSAyNzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTI3KXJldHVybiAwO2JyZWFrO2Nhc2UgMjg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yOClyZXR1cm4gMDticmVhaztjYXNlIDI5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjkpcmV0dXJuIDA7YnJlYWs7Y2FzZSAzMDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTMwKXJldHVybiAwO2JyZWFrO2Nhc2UgMzE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zMSlyZXR1cm4gMDticmVhaztjYXNlIDMyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzIpcmV0dXJuIDA7YnJlYWs7Y2FzZSAzMzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTMzKXJldHVybiAwO2JyZWFrO2Nhc2UgMzQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zNClyZXR1cm4gMDticmVhaztjYXNlIDM1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzUpcmV0dXJuIDA7YnJlYWs7Y2FzZSAzNjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTM2KXJldHVybiAwO2JyZWFrO2Nhc2UgMzc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zNylyZXR1cm4gMDticmVhaztjYXNlIDM4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzgpcmV0dXJuIDA7YnJlYWs7Y2FzZSAzOTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTM5KXJldHVybiAwO2JyZWFrO2Nhc2UgNDA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00MClyZXR1cm4gMDticmVhaztjYXNlIDQxOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDEpcmV0dXJuIDA7YnJlYWs7Y2FzZSA0MjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQyKXJldHVybiAwO2JyZWFrO2Nhc2UgNDM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00MylyZXR1cm4gMDticmVhaztjYXNlIDQ0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDQpcmV0dXJuIDA7YnJlYWs7Y2FzZSA0NTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQ1KXJldHVybiAwO2JyZWFrO2Nhc2UgNDY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00NilyZXR1cm4gMDticmVhaztjYXNlIDQ3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDcpcmV0dXJuIDA7YnJlYWs7Y2FzZSA0ODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQ4KXJldHVybiAwO2JyZWFrO2Nhc2UgNDk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00OSlyZXR1cm4gMDticmVhaztjYXNlIDUwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTApcmV0dXJuIDA7YnJlYWs7Y2FzZSA1MTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTUxKXJldHVybiAwO2JyZWFrO2Nhc2UgNTI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01MilyZXR1cm4gMDticmVhaztjYXNlIDUzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTMpcmV0dXJuIDA7YnJlYWs7Y2FzZSA1NDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTU0KXJldHVybiAwO2JyZWFrO2Nhc2UgNTU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01NSlyZXR1cm4gMDticmVhaztjYXNlIDU2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTYpcmV0dXJuIDA7YnJlYWs7Y2FzZSA1NzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTU3KXJldHVybiAwO2JyZWFrO2RlZmF1bHQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01OClyZXR1cm4gMH19ZWxzZSBzd2l0Y2goeFswXSl7Y2FzZSAwOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MClyZXR1cm4gVHgoeFsxXSxyWzFdKTticmVhaztjYXNlIDE6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xKXJldHVybiBUeCh4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgMjppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTIpe3ZhciB0PVR4KHhbMV0sclsxXSksdT1yWzJdLGk9eFsyXTtyZXR1cm4gdD09PTA/VHgoaSx1KTp0fWJyZWFrO2Nhc2UgMzppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTMpe3ZhciBmPVR4KHhbMV0sclsxXSksbz1yWzJdLGw9eFsyXTtyZXR1cm4gZj09PTA/VHgobCxvKTpmfWJyZWFrO2Nhc2UgNDppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTQpe3ZhciBkPVR4KHhbMV0sclsxXSksaz1yWzJdLGg9eFsyXTtyZXR1cm4gZD09PTA/VHgoaCxrKTpkfWJyZWFrO2Nhc2UgNTppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTUpcmV0dXJuIFR4KHhbMV0sclsxXSk7YnJlYWs7Y2FzZSA2OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09NilyZXR1cm4ganQoeFsxXSxyWzFdKTticmVhaztjYXNlIDc6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT03KXt2YXIgZz1yWzJdLEE9eFsyXSxOPVR4KHhbMV0sclsxXSk7aWYoTiE9PTApcmV0dXJuIE47aWYoIUEpcmV0dXJuIGc/LTE6MDt2YXIgQz1BWzFdO3JldHVybiBnP1R4KEMsZ1sxXSk6MX1icmVhaztjYXNlIDg6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT04KXJldHVybiBUeCh4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgOTppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTkpe3ZhciBPPXJbMl0sTD14WzJdLE09VHgoeFsxXSxyWzFdKSxWPXJbM10sej14WzNdO2lmKE0hPT0wKXJldHVybiBNO2lmKEwpe3ZhciBZPUxbMV07aWYoTyl7dmFyIHQwPU9bMV0saTA9MDtzd2l0Y2goWSl7Y2FzZSAwOmlmKHQwKWkwPTE7ZWxzZSB2YXIgSj0wO2JyZWFrO2Nhc2UgMTppZih0MD09PTEpdmFyIEo9MDtlbHNlIGkwPTE7YnJlYWs7Y2FzZSAyOmlmKHQwPT09Mil2YXIgSj0wO2Vsc2UgaTA9MTticmVhaztjYXNlIDM6aWYodDA9PT0zKXZhciBKPTA7ZWxzZSBpMD0xO2JyZWFrO2RlZmF1bHQ6aWYoNDw9dDApdmFyIEo9MDtlbHNlIGkwPTF9aWYoaTApdmFyIGo9ZnVuY3Rpb24ob3gpe3N3aXRjaChveCl7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSAzOnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIDR9fSxLPWoodDApLEo9anQoaihZKSxLKTt2YXIgUT1KfWVsc2UgdmFyIFE9MX1lbHNlIHZhciBRPU8/LTE6MDtyZXR1cm4gUT09PTA/VHgoeixWKTpRfWJyZWFrO2Nhc2UgMTA6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xMCl7dmFyIHgwPVR4KHhbMV0sclsxXSksJD1yWzJdLGYwPXhbMl07cmV0dXJuIHgwPT09MD9UeChmMCwkKTp4MH1icmVhaztjYXNlIDExOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTEpe3ZhciBzMD1UeCh4WzFdLHJbMV0pLHYwPXJbMl0sbzA9eFsyXTtyZXR1cm4gczA9PT0wP1R4KG8wLHYwKTpzMH1icmVhaztjYXNlIDEyOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTIpcmV0dXJuIFR4KHhbMV0sclsxXSk7YnJlYWs7Y2FzZSAxMzppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTEzKXJldHVybiBUeCh4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgMTQ6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xNClyZXR1cm4ganQoeFsxXSxyWzFdKTticmVhaztjYXNlIDE1OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTUpe3ZhciBjMD1UeCh4WzFdLHJbMV0pLGQwPXJbNF0sRTA9clszXSxMMD1yWzJdLFgwPXhbNF0seHg9eFszXSxnMD14WzJdO2lmKGMwIT09MClyZXR1cm4gYzA7dmFyICQwPWp0KGcwLEwwKTtpZigkMCE9PTApcmV0dXJuICQwO3ZhciBuMD1qdCh4eCxFMCk7cmV0dXJuIG4wPT09MD9qdChYMCxkMCk6bjB9YnJlYWs7Y2FzZSAxNjppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTE2KXt2YXIgaXg9anQoeFsxXSxyWzFdKSxyeD1yWzJdLGR4PXhbMl07cmV0dXJuIGl4PT09MD9UeChkeCxyeCk6aXh9YnJlYWs7Y2FzZSAxNzppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTE3KXJldHVybiBqdCh4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgMTg6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xOClyZXR1cm4gVHgoeFsxXSxyWzFdKTticmVhaztjYXNlIDE5OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MTkpcmV0dXJuIFR4KHhbMV0sclsxXSk7YnJlYWs7Y2FzZSAyMDppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTIwKXJldHVybiBUeCh4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgMjE6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0yMSl7dmFyIGF4PVR4KHhbMV0sclsxXSksU3g9clsyXSxEMD14WzJdO3JldHVybiBheD09PTA/VHgoRDAsU3gpOmF4fWJyZWFrO2Nhc2UgMjI6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0yMil7dmFyIE4wPXJbMV0sQTA9eFsxXTtpZihvbD09PUEwKXtpZihvbD09PU4wKXJldHVybiAwfWVsc2UgaWYocmw8PUEwKXtpZihybD09PU4wKXJldHVybiAwfWVsc2UgaWYoUUo9PT1OMClyZXR1cm4gMDt2YXIgWTA9ZnVuY3Rpb24oSzApe3JldHVybiBvbD09PUswPzA6cmw8PUswPzI6MX0sQzA9WTAoTjApO3JldHVybiBqdChZMChBMCksQzApfWJyZWFrO2Nhc2UgMjM6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0yMylyZXR1cm4gVHgoeFsxXSxyWzFdKTticmVhaztjYXNlIDI0OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MjQpcmV0dXJuIFR4KHhbMV0sclsxXSk7YnJlYWs7Y2FzZSAyNTppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTI1KXt2YXIgRj1UeCh4WzFdLHJbMV0pLEg9clsyXSxCPXhbMl07cmV0dXJuIEY9PT0wP1R4KEIsSCk6Rn1icmVhaztjYXNlIDI2OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MjYpe3ZhciBhMD1UeCh4WzFdLHJbMV0pLG0wPXJbMl0sUDA9eFsyXTtyZXR1cm4gYTA9PT0wP1R4KFAwLG0wKTphMH1icmVhaztkZWZhdWx0OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09MjcpcmV0dXJuIFR4KHhbMV0sclsxXSl9ZnVuY3Rpb24gRChLMCl7aWYodHlwZW9mIEswIT1cIm51bWJlclwiKXN3aXRjaChLMFswXSl7Y2FzZSAwOnJldHVybiAyMDtjYXNlIDE6cmV0dXJuIDIxO2Nhc2UgMjpyZXR1cm4gMjM7Y2FzZSAzOnJldHVybiAyNDtjYXNlIDQ6cmV0dXJuIDI1O2Nhc2UgNTpyZXR1cm4gMjY7Y2FzZSA2OnJldHVybiAyNztjYXNlIDc6cmV0dXJuIDI4O2Nhc2UgODpyZXR1cm4gMzA7Y2FzZSA5OnJldHVybiAzMTtjYXNlIDEwOnJldHVybiAzMjtjYXNlIDExOnJldHVybiAzNDtjYXNlIDEyOnJldHVybiAzNTtjYXNlIDEzOnJldHVybiAzNztjYXNlIDE0OnJldHVybiA0MDtjYXNlIDE1OnJldHVybiA1MjtjYXNlIDE2OnJldHVybiA1NTtjYXNlIDE3OnJldHVybiA1NztjYXNlIDE4OnJldHVybiA2NjtjYXNlIDE5OnJldHVybiA3NTtjYXNlIDIwOnJldHVybiA4NDtjYXNlIDIxOnJldHVybiA5MTtjYXNlIDIyOnJldHVybiBPdDtjYXNlIDIzOnJldHVybiB4bDtjYXNlIDI0OnJldHVybiBBZjtjYXNlIDI1OnJldHVybiB2aDtjYXNlIDI2OnJldHVybiBoVTtkZWZhdWx0OnJldHVybiBzSn12YXIgajA9SzA7aWYoNTk8PWowKXN3aXRjaChqMCl7Y2FzZSA1OTpyZXR1cm4gNzk7Y2FzZSA2MDpyZXR1cm4gODA7Y2FzZSA2MTpyZXR1cm4gODE7Y2FzZSA2MjpyZXR1cm4gODI7Y2FzZSA2MzpyZXR1cm4gODM7Y2FzZSA2NDpyZXR1cm4gODU7Y2FzZSA2NTpyZXR1cm4gODY7Y2FzZSA2NjpyZXR1cm4gODc7Y2FzZSA2NzpyZXR1cm4gODg7Y2FzZSA2ODpyZXR1cm4gODk7Y2FzZSA2OTpyZXR1cm4gOTA7Y2FzZSA3MDpyZXR1cm4gOTI7Y2FzZSA3MTpyZXR1cm4gOTM7Y2FzZSA3MjpyZXR1cm4gOTQ7Y2FzZSA3MzpyZXR1cm4gOTU7Y2FzZSA3NDpyZXR1cm4gOTY7Y2FzZSA3NTpyZXR1cm4gOTc7Y2FzZSA3NjpyZXR1cm4gOTg7Y2FzZSA3NzpyZXR1cm4gOTk7Y2FzZSA3ODpyZXR1cm4gaXQ7Y2FzZSA3OTpyZXR1cm4gSXQ7Y2FzZSA4MDpyZXR1cm4gSmY7Y2FzZSA4MTpyZXR1cm4gZm47Y2FzZSA4MjpyZXR1cm4gRHQ7Y2FzZSA4MzpyZXR1cm4gRGU7Y2FzZSA4NDpyZXR1cm4gbDI7Y2FzZSA4NTpyZXR1cm4gRzI7Y2FzZSA4NjpyZXR1cm4gdm47Y2FzZSA4NzpyZXR1cm4gSXM7Y2FzZSA4ODpyZXR1cm4gVjE7Y2FzZSA4OTpyZXR1cm4gTDI7Y2FzZSA5MDpyZXR1cm4gUnI7Y2FzZSA5MTpyZXR1cm4gdXQ7Y2FzZSA5MjpyZXR1cm4gT3M7Y2FzZSA5MzpyZXR1cm4gTnM7Y2FzZSA5NDpyZXR1cm4gcG87Y2FzZSA5NTpyZXR1cm4gcGE7Y2FzZSA5NjpyZXR1cm4gSDM7Y2FzZSA5NzpyZXR1cm4gSHI7Y2FzZSA5ODpyZXR1cm4gUnQ7Y2FzZSA5OTpyZXR1cm4gT2E7Y2FzZSAxMDA6cmV0dXJuIENpO2Nhc2UgMTAxOnJldHVybiBMNDtjYXNlIDEwMjpyZXR1cm4gWXI7Y2FzZSAxMDM6cmV0dXJuIG0xO2Nhc2UgMTA0OnJldHVybiBkbDtjYXNlIDEwNTpyZXR1cm4gdko7Y2FzZSAxMDY6cmV0dXJuIGtKO2Nhc2UgMTA3OnJldHVybiBRTTtjYXNlIDEwODpyZXR1cm4gQWo7Y2FzZSAxMDk6cmV0dXJuIHVYO2Nhc2UgMTEwOnJldHVybiBqVTtjYXNlIDExMTpyZXR1cm4geV87Y2FzZSAxMTI6cmV0dXJuIGJEO2Nhc2UgMTEzOnJldHVybiBXVTtjYXNlIDExNDpyZXR1cm4gaVU7Y2FzZSAxMTU6cmV0dXJuIE9qO2Nhc2UgMTE2OnJldHVybiBfSjtkZWZhdWx0OnJldHVybiBaRH1zd2l0Y2goajApe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgMzpyZXR1cm4gMztjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA1OnJldHVybiA1O2Nhc2UgNjpyZXR1cm4gNjtjYXNlIDc6cmV0dXJuIDc7Y2FzZSA4OnJldHVybiA4O2Nhc2UgOTpyZXR1cm4gOTtjYXNlIDEwOnJldHVybiAxMDtjYXNlIDExOnJldHVybiAxMTtjYXNlIDEyOnJldHVybiAxMjtjYXNlIDEzOnJldHVybiAxMztjYXNlIDE0OnJldHVybiAxNDtjYXNlIDE1OnJldHVybiAxNTtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDE3OnJldHVybiAxNztjYXNlIDE4OnJldHVybiAxODtjYXNlIDE5OnJldHVybiAxOTtjYXNlIDIwOnJldHVybiAyMjtjYXNlIDIxOnJldHVybiAyOTtjYXNlIDIyOnJldHVybiAzMztjYXNlIDIzOnJldHVybiAzNjtjYXNlIDI0OnJldHVybiAzODtjYXNlIDI1OnJldHVybiAzOTtjYXNlIDI2OnJldHVybiA0MTtjYXNlIDI3OnJldHVybiA0MjtjYXNlIDI4OnJldHVybiA0MztjYXNlIDI5OnJldHVybiA0NDtjYXNlIDMwOnJldHVybiA0NTtjYXNlIDMxOnJldHVybiA0NjtjYXNlIDMyOnJldHVybiA0NztjYXNlIDMzOnJldHVybiA0ODtjYXNlIDM0OnJldHVybiA0OTtjYXNlIDM1OnJldHVybiA1MDtjYXNlIDM2OnJldHVybiA1MTtjYXNlIDM3OnJldHVybiA1MztjYXNlIDM4OnJldHVybiA1NDtjYXNlIDM5OnJldHVybiA1NjtjYXNlIDQwOnJldHVybiA1ODtjYXNlIDQxOnJldHVybiA1OTtjYXNlIDQyOnJldHVybiA2MDtjYXNlIDQzOnJldHVybiA2MTtjYXNlIDQ0OnJldHVybiA2MjtjYXNlIDQ1OnJldHVybiA2MztjYXNlIDQ2OnJldHVybiA2NDtjYXNlIDQ3OnJldHVybiA2NTtjYXNlIDQ4OnJldHVybiA2NztjYXNlIDQ5OnJldHVybiA2ODtjYXNlIDUwOnJldHVybiA2OTtjYXNlIDUxOnJldHVybiA3MDtjYXNlIDUyOnJldHVybiA3MTtjYXNlIDUzOnJldHVybiA3MjtjYXNlIDU0OnJldHVybiA3MztjYXNlIDU1OnJldHVybiA3NDtjYXNlIDU2OnJldHVybiA3NjtjYXNlIDU3OnJldHVybiA3NztkZWZhdWx0OnJldHVybiA3OH19dmFyIE8wPUQocik7cmV0dXJuIGp0KEQoeCksTzApfSk7dmFyIFFUMD1bR3IseHgwLEpzKDApXSxHVDA9ZnVuY3Rpb24oeCl7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpe3ZhciByPXg7aWYoNTk8PXIpc3dpdGNoKHIpe2Nhc2UgNTk6cmV0dXJuIEhIO2Nhc2UgNjA6cmV0dXJuIGJIO2Nhc2UgNjE6cmV0dXJuIHhiO2Nhc2UgNjI6cmV0dXJuIHJiO2Nhc2UgNjM6cmV0dXJuIGViO2Nhc2UgNjQ6cmV0dXJuIHRiO2Nhc2UgNjU6cmV0dXJuIG5iO2Nhc2UgNjY6cmV0dXJuIHViO2Nhc2UgNjc6cmV0dXJuIGliO2Nhc2UgNjg6cmV0dXJuIGZiO2Nhc2UgNjk6cmV0dXJuIGNiO2Nhc2UgNzA6cmV0dXJuIHNiO2Nhc2UgNzE6cmV0dXJuIG9iO2Nhc2UgNzI6cmV0dXJuIHZiO2Nhc2UgNzM6cmV0dXJuIGFiO2Nhc2UgNzQ6cmV0dXJuIGxiO2Nhc2UgNzU6cmV0dXJuIHBiO2Nhc2UgNzY6cmV0dXJuIGRiO2Nhc2UgNzc6cmV0dXJuIHliO2Nhc2UgNzg6cmV0dXJuIG1iO2Nhc2UgNzk6cmV0dXJuIGtiO2Nhc2UgODA6cmV0dXJuIGhiO2Nhc2UgODE6cmV0dXJuIF9iO2Nhc2UgODI6cmV0dXJuIHdiO2Nhc2UgODM6cmV0dXJuIFRiO2Nhc2UgODQ6cmV0dXJuIFNiO2Nhc2UgODU6cmV0dXJuIEViO2Nhc2UgODY6cmV0dXJuIGdiO2Nhc2UgODc6cmV0dXJuIEFiO2Nhc2UgODg6cmV0dXJuIFBiO2Nhc2UgODk6cmV0dXJuIE5iO2Nhc2UgOTA6cmV0dXJuIENiO2Nhc2UgOTE6cmV0dXJuIEliO2Nhc2UgOTI6cmV0dXJuIE9iO2Nhc2UgOTM6cmV0dXJuIFJiO2Nhc2UgOTQ6cmV0dXJuIExiO2Nhc2UgOTU6cmV0dXJuIE1iO2Nhc2UgOTY6cmV0dXJuIERiO2Nhc2UgOTc6cmV0dXJuIFViO2Nhc2UgOTg6cmV0dXJuIGpiO2Nhc2UgOTk6cmV0dXJuIEpiO2Nhc2UgMTAwOnJldHVybiBYYjtjYXNlIDEwMTpyZXR1cm4gWWI7Y2FzZSAxMDI6cmV0dXJuIFZiO2Nhc2UgMTAzOnJldHVybiB6YjtjYXNlIDEwNDpyZXR1cm4gS2I7Y2FzZSAxMDU6cmV0dXJuIEJiO2Nhc2UgMTA2OnJldHVybiBXYjtjYXNlIDEwNzpyZXR1cm4gWmI7Y2FzZSAxMDg6cmV0dXJuICRiO2Nhc2UgMTA5OnJldHVybiBGYjtjYXNlIDExMDpyZXR1cm4gUWI7Y2FzZSAxMTE6cmV0dXJuIEdiO2Nhc2UgMTEyOnJldHVybiBxYjtjYXNlIDExMzpyZXR1cm4gSGI7Y2FzZSAxMTQ6cmV0dXJuIGJiO2Nhc2UgMTE1OnJldHVybiB4MDA7Y2FzZSAxMTY6cmV0dXJuIHIwMDtkZWZhdWx0OnJldHVybiBlMDB9c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gQnE7Y2FzZSAxOnJldHVybiBXcTtjYXNlIDI6cmV0dXJuIFpxO2Nhc2UgMzpyZXR1cm4gRngoRnEsJHEpO2Nhc2UgNDpyZXR1cm4gUXE7Y2FzZSA1OnJldHVybiBHcTtjYXNlIDY6cmV0dXJuIHFxO2Nhc2UgNzpyZXR1cm4gSHE7Y2FzZSA4OnJldHVybiBicTtjYXNlIDk6cmV0dXJuIHhIO2Nhc2UgMTA6cmV0dXJuIHJIO2Nhc2UgMTE6cmV0dXJuIGVIO2Nhc2UgMTI6cmV0dXJuIEZ4KG5ILHRIKTtjYXNlIDEzOnJldHVybiB1SDtjYXNlIDE0OnJldHVybiBpSDtjYXNlIDE1OnJldHVybiBmSDtjYXNlIDE2OnJldHVybiBjSDtjYXNlIDE3OnJldHVybiBzSDtjYXNlIDE4OnJldHVybiBvSDtjYXNlIDE5OnJldHVybiB2SDtjYXNlIDIwOnJldHVybiBhSDtjYXNlIDIxOnJldHVybiBsSDtjYXNlIDIyOnJldHVybiBwSDtjYXNlIDIzOnJldHVybiBkSDtjYXNlIDI0OnJldHVybiB5SDtjYXNlIDI1OnJldHVybiBtSDtjYXNlIDI2OnJldHVybiBrSDtjYXNlIDI3OnJldHVybiBoSDtjYXNlIDI4OnJldHVybiBfSDtjYXNlIDI5OnJldHVybiB3SDtjYXNlIDMwOnJldHVybiBUSDtjYXNlIDMxOnJldHVybiBTSDtjYXNlIDMyOnJldHVybiBFSDtjYXNlIDMzOnJldHVybiBnSDtjYXNlIDM0OnJldHVybiBGeChQSCxBSCk7Y2FzZSAzNTpyZXR1cm4gTkg7Y2FzZSAzNjpyZXR1cm4gQ0g7Y2FzZSAzNzpyZXR1cm4gSUg7Y2FzZSAzODpyZXR1cm4gT0g7Y2FzZSAzOTpyZXR1cm4gUkg7Y2FzZSA0MDpyZXR1cm4gTEg7Y2FzZSA0MTpyZXR1cm4gTUg7Y2FzZSA0MjpyZXR1cm4gREg7Y2FzZSA0MzpyZXR1cm4gVUg7Y2FzZSA0NDpyZXR1cm4gakg7Y2FzZSA0NTpyZXR1cm4gSkg7Y2FzZSA0NjpyZXR1cm4gWEg7Y2FzZSA0NzpyZXR1cm4gWUg7Y2FzZSA0ODpyZXR1cm4gVkg7Y2FzZSA0OTpyZXR1cm4gekg7Y2FzZSA1MDpyZXR1cm4gS0g7Y2FzZSA1MTpyZXR1cm4gQkg7Y2FzZSA1MjpyZXR1cm4gV0g7Y2FzZSA1MzpyZXR1cm4gWkg7Y2FzZSA1NDpyZXR1cm4gJEg7Y2FzZSA1NTpyZXR1cm4gRkg7Y2FzZSA1NjpyZXR1cm4gUUg7Y2FzZSA1NzpyZXR1cm4gR0g7ZGVmYXVsdDpyZXR1cm4gcUh9fXN3aXRjaCh4WzBdKXtjYXNlIDA6dmFyIGU9eFsxXTtyZXR1cm4gYShUcih0MDApLGUpO2Nhc2UgMTp2YXIgdD14WzFdO3JldHVybiBhKFRyKG4wMCksdCk7Y2FzZSAyOnZhciB1PXhbMl0saT14WzFdO3JldHVybiBwKFRyKHUwMCksdSxpKTtjYXNlIDM6dmFyIGY9eFsyXSxvPXhbMV07cmV0dXJuIEgwKFRyKGkwMCksZixmLG8pO2Nhc2UgNDp2YXIgbD14WzJdLGQ9eFsxXTtyZXR1cm4gcChUcihmMDApLGwsZCk7Y2FzZSA1OnZhciBrPXhbMV07cmV0dXJuIGEoVHIoYzAwKSxrKTtjYXNlIDY6cmV0dXJuIHhbMV0/czAwOm8wMDtjYXNlIDc6dmFyIGg9eFsyXSxnPXhbMV0sQT1hKFRyKHYwMCksZyk7aWYoIWgpcmV0dXJuIGEoVHIobDAwKSxBKTt2YXIgTj1oWzFdO3JldHVybiBwKFRyKGEwMCksTixBKTtjYXNlIDg6dmFyIEM9eFsxXTtyZXR1cm4gcChUcihwMDApLEMsQyk7Y2FzZSA5OnZhciBPPXhbM10sTD14WzJdLE09eFsxXTtpZighTClyZXR1cm4gcChUcihtMDApLE8sTSk7dmFyIFY9TFsxXTtpZihWPT09MylyZXR1cm4gcChUcih5MDApLE8sTSk7c3dpdGNoKFYpe2Nhc2UgMDp2YXIgej1yRzticmVhaztjYXNlIDE6dmFyIHo9ZUc7YnJlYWs7Y2FzZSAyOnZhciB6PXRHO2JyZWFrO2Nhc2UgMzp2YXIgej1uRzticmVhaztkZWZhdWx0OnZhciB6PXVHfXJldHVybiB2ZShUcihkMDApLE0seixPLHopO2Nhc2UgMTA6dmFyIFk9eFsyXSx0MD14WzFdLGkwPWVZKFkpO3JldHVybiBIMChUcihrMDApLFksaTAsdDApO2Nhc2UgMTE6dmFyIGo9eFsyXSxLPXhbMV07cmV0dXJuIHAoVHIoaDAwKSxqLEspO2Nhc2UgMTI6dmFyIEo9eFsxXTtyZXR1cm4gYShUcihfMDApLEopO2Nhc2UgMTM6dmFyIFE9eFsxXTtyZXR1cm4gYShUcih3MDApLFEpO2Nhc2UgMTQ6cmV0dXJuIHhbMV0/RngoUzAwLFQwMCk6RngoZzAwLEUwMCk7Y2FzZSAxNTp2YXIgeDA9eFsxXSwkPXhbNF0sZjA9eFszXSxzMD14WzJdP0EwMDpQMDAsdjA9ZjA/TjAwOkMwMCxvMD0kP0Z4KEkwMCx4MCk6eDA7cmV0dXJuIEgwKFRyKE8wMCksczAsdjAsbzApO2Nhc2UgMTY6dmFyIGMwPXhbMl0sZDA9WzAsMF0sRTA9WzAsWHgoYzApXSxMMD1YeChjMCktMXwwLFgwPXhbMV07aWYoTDA+PTApZm9yKHZhciB4eD1MMDs7KXtpZihmeChjMCx4eCk9PT00NSl7dmFyIGcwPWQwWzFdO2QwWzFdPVswLG0yKGMwLHh4KzF8MCwoRTBbMV0teHh8MCktMXwwKSxnMF0sRTBbMV09eHh9dmFyICQwPXh4LTF8MDtpZih4eCE9PTApe3ZhciB4eD0kMDtjb250aW51ZX1icmVha312YXIgbjA9ZDBbMV0saXg9bTIoYzAsMCxFMFsxXSk7aWYobjApZm9yKHZhciByeD1bMCxpeCxUbihlWSxuMCldLGR4PTAsYXg9cngsU3g9MDs7KXtpZihheCl7dmFyIEQwPWF4WzFdO2lmKGF4WzJdKXt2YXIgTjA9KFh4KEQwKXwwKStkeHwwLEEwPWF4WzJdLFkwPWR4PD1OMD9OMDp5MihOWiksZHg9WTAsYXg9QTA7Y29udGludWV9dmFyIEMwPVh4KEQwKStkeHwwfWVsc2UgdmFyIEMwPWR4O2Zvcih2YXIgRj13MShDMCksSD1TeCxCPXJ4Ozspe2lmKEIpe3ZhciBhMD1CWzFdO2lmKEJbMl0pe3ZhciBtMD1CWzJdO0ZjKGEwLDAsRixILFh4KGEwKSksRmMoa3gsMCxGLEgrWHgoYTApfDAsMCk7dmFyIEg9SCtYeChhMCl8MHwwLEI9bTA7Y29udGludWV9RmMoYTAsMCxGLEgsWHgoYTApKX12YXIgUDA9UzIoRik7YnJlYWt9YnJlYWt9ZWxzZSB2YXIgUDA9aXg7dmFyIEQ9WDA/UjAwOkwwMDtyZXR1cm4gSDAoVHIoTTAwKSxjMCxQMCxEKTtjYXNlIDE3OnZhciBPMD14WzFdP0QwMDpVMDA7cmV0dXJuIGEoVHIoajAwKSxPMCk7Y2FzZSAxODp2YXIgSzA9eFsxXTtyZXR1cm4gYShUcihKMDApLEswKTtjYXNlIDE5OnZhciBqMD14WzFdO3JldHVybiBhKFRyKFgwMCksajApO2Nhc2UgMjA6dmFyIG94PXhbMV07cmV0dXJuIGEoVHIoWTAwKSxveCk7Y2FzZSAyMTp2YXIgYjA9eFsyXSxfeD14WzFdO3JldHVybiBwKFRyKFYwMCksX3gsYjApO2Nhc2UgMjI6dmFyIEIwPXhbMV07aWYob2w9PT1CMCl2YXIgVD1aMDAsWD0kMDA7ZWxzZSBpZihybDw9QjApdmFyIFQ9ejAwLFg9SzAwO2Vsc2UgdmFyIFQ9QjAwLFg9VzAwO3JldHVybiBwKFRyKEYwMCksWCxUKTtjYXNlIDIzOnZhciBGMD14WzFdO3JldHVybiBhKFRyKFEwMCksRjApO2Nhc2UgMjQ6dmFyIHN4PXhbMV07cmV0dXJuIGEoVHIoRzAwKSxzeCk7Y2FzZSAyNTp2YXIgZXg9eFsyXSxVMD14WzFdO3JldHVybiBwKFRyKHEwMCksVTAsZXgpO2Nhc2UgMjY6dmFyIE54PXhbMl0sbXg9eFsxXTtyZXR1cm4gcChUcihIMDApLG14LE54KTtkZWZhdWx0OnZhciBCeD14WzFdO3JldHVybiBhKFRyKGIwMCksQngpfX0saFY9cngwLnNsaWNlKCksVk89ZnVuY3Rpb24oeCl7Zm9yKHZhciByPTAsZT1oVi5sZW5ndGgtMS0xfDA7Oyl7aWYoZTxyKXJldHVybiAwO3ZhciB0PXIrKChlLXJ8MCkvMnwwKXwwLHU9aFZbMSt0XSxpPXVbMl07aWYoeDx1WzFdKXt2YXIgZT10LTF8MDtjb250aW51ZX1pZihpPngpcmV0dXJuIDE7dmFyIHI9dCsxfDB9fSxfVj0wLHdWPWZ1bmN0aW9uKHgpe3ZhciByPXhbMl07cmV0dXJuWzAseFsxXSxbMCxyWzFdLHJbMl0sclszXSxyWzRdLHJbNV0scls2XSxyWzddLHJbOF0scls5XSxyWzEwXSxyWzExXSxyWzEyXV0seFszXSx4WzRdLHhbNV0seFs2XSx4WzddXX0sVFY9ZnVuY3Rpb24oeCl7cmV0dXJuIHhbM11bMV19LGF5PWZ1bmN0aW9uKHgscil7cmV0dXJuIHghPT1yWzRdP1swLHJbMV0sclsyXSxyWzNdLHgscls1XSxyWzZdLHJbN11dOnJ9LHpPPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sU1Y9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxLTz1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LEJPPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX07STAoek8sZnVuY3Rpb24oeCxyKXtpZih0eXBlb2YgeD09XCJudW1iZXJcIil7dmFyIGU9eDtpZig2NTw9ZSlpZig5ODw9ZSlzd2l0Y2goZSl7Y2FzZSA5ODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTk4KXJldHVybiAxO2JyZWFrO2Nhc2UgOTk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05OSlyZXR1cm4gMTticmVhaztjYXNlIDEwMDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmaXQ9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTAxOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZJdD09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMDI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkpmPT09cilyZXR1cm4gMTticmVhaztjYXNlIDEwMzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmZm49PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTA0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZEdD09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMDU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkRlPT09cilyZXR1cm4gMTticmVhaztjYXNlIDEwNjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmbDI9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTA3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZHMj09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMDg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnZuPT09cilyZXR1cm4gMTticmVhaztjYXNlIDEwOTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmSXM9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTEwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZWMT09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMTE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJk90PT09cilyZXR1cm4gMTticmVhaztjYXNlIDExMjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmTDI9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTEzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZScj09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMTQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnV0PT09cilyZXR1cm4gMTticmVhaztjYXNlIDExNTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmT3M9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTE2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZOcz09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMTc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnBvPT09cilyZXR1cm4gMTticmVhaztjYXNlIDExODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcGE9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTE5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZ4bD09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMjA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkFmPT09cilyZXR1cm4gMTticmVhaztjYXNlIDEyMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmSDM9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTIyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZIcj09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMjM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJlJ0PT09cilyZXR1cm4gMTticmVhaztjYXNlIDEyNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmT2E9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTI1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZDaT09PXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMjY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJkw0PT09cilyZXR1cm4gMTticmVhaztjYXNlIDEyNzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmWXI9PT1yKXJldHVybiAxO2JyZWFrO2Nhc2UgMTI4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZtMT09PXIpcmV0dXJuIDE7YnJlYWs7ZGVmYXVsdDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmZGw8PXIpcmV0dXJuIDF9ZWxzZSBzd2l0Y2goZSl7Y2FzZSA2NTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTY1KXJldHVybiAxO2JyZWFrO2Nhc2UgNjY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02NilyZXR1cm4gMTticmVhaztjYXNlIDY3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjcpcmV0dXJuIDE7YnJlYWs7Y2FzZSA2ODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTY4KXJldHVybiAxO2JyZWFrO2Nhc2UgNjk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02OSlyZXR1cm4gMTticmVhaztjYXNlIDcwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzApcmV0dXJuIDE7YnJlYWs7Y2FzZSA3MTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTcxKXJldHVybiAxO2JyZWFrO2Nhc2UgNzI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03MilyZXR1cm4gMTticmVhaztjYXNlIDczOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzMpcmV0dXJuIDE7YnJlYWs7Y2FzZSA3NDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTc0KXJldHVybiAxO2JyZWFrO2Nhc2UgNzU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03NSlyZXR1cm4gMTticmVhaztjYXNlIDc2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzYpcmV0dXJuIDE7YnJlYWs7Y2FzZSA3NzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTc3KXJldHVybiAxO2JyZWFrO2Nhc2UgNzg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT03OClyZXR1cm4gMTticmVhaztjYXNlIDc5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NzkpcmV0dXJuIDE7YnJlYWs7Y2FzZSA4MDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTgwKXJldHVybiAxO2JyZWFrO2Nhc2UgODE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04MSlyZXR1cm4gMTticmVhaztjYXNlIDgyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODIpcmV0dXJuIDE7YnJlYWs7Y2FzZSA4MzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTgzKXJldHVybiAxO2JyZWFrO2Nhc2UgODQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04NClyZXR1cm4gMTticmVhaztjYXNlIDg1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODUpcmV0dXJuIDE7YnJlYWs7Y2FzZSA4NjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg2KXJldHVybiAxO2JyZWFrO2Nhc2UgODc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04NylyZXR1cm4gMTticmVhaztjYXNlIDg4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODgpcmV0dXJuIDE7YnJlYWs7Y2FzZSA4OTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg5KXJldHVybiAxO2JyZWFrO2Nhc2UgOTA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05MClyZXR1cm4gMTticmVhaztjYXNlIDkxOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTEpcmV0dXJuIDE7YnJlYWs7Y2FzZSA5MjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTkyKXJldHVybiAxO2JyZWFrO2Nhc2UgOTM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05MylyZXR1cm4gMTticmVhaztjYXNlIDk0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTQpcmV0dXJuIDE7YnJlYWs7Y2FzZSA5NTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTk1KXJldHVybiAxO2JyZWFrO2Nhc2UgOTY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05NilyZXR1cm4gMTticmVhaztkZWZhdWx0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OTcpcmV0dXJuIDF9ZWxzZSBpZigzMzw9ZSlzd2l0Y2goZSl7Y2FzZSAzMzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTMzKXJldHVybiAxO2JyZWFrO2Nhc2UgMzQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zNClyZXR1cm4gMTticmVhaztjYXNlIDM1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzUpcmV0dXJuIDE7YnJlYWs7Y2FzZSAzNjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTM2KXJldHVybiAxO2JyZWFrO2Nhc2UgMzc6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zNylyZXR1cm4gMTticmVhaztjYXNlIDM4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzgpcmV0dXJuIDE7YnJlYWs7Y2FzZSAzOTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTM5KXJldHVybiAxO2JyZWFrO2Nhc2UgNDA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00MClyZXR1cm4gMTticmVhaztjYXNlIDQxOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDEpcmV0dXJuIDE7YnJlYWs7Y2FzZSA0MjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQyKXJldHVybiAxO2JyZWFrO2Nhc2UgNDM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00MylyZXR1cm4gMTticmVhaztjYXNlIDQ0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDQpcmV0dXJuIDE7YnJlYWs7Y2FzZSA0NTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQ1KXJldHVybiAxO2JyZWFrO2Nhc2UgNDY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00NilyZXR1cm4gMTticmVhaztjYXNlIDQ3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NDcpcmV0dXJuIDE7YnJlYWs7Y2FzZSA0ODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQ4KXJldHVybiAxO2JyZWFrO2Nhc2UgNDk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT00OSlyZXR1cm4gMTticmVhaztjYXNlIDUwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTApcmV0dXJuIDE7YnJlYWs7Y2FzZSA1MTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTUxKXJldHVybiAxO2JyZWFrO2Nhc2UgNTI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01MilyZXR1cm4gMTticmVhaztjYXNlIDUzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTMpcmV0dXJuIDE7YnJlYWs7Y2FzZSA1NDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTU0KXJldHVybiAxO2JyZWFrO2Nhc2UgNTU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01NSlyZXR1cm4gMTticmVhaztjYXNlIDU2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTYpcmV0dXJuIDE7YnJlYWs7Y2FzZSA1NzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTU3KXJldHVybiAxO2JyZWFrO2Nhc2UgNTg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT01OClyZXR1cm4gMTticmVhaztjYXNlIDU5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NTkpcmV0dXJuIDE7YnJlYWs7Y2FzZSA2MDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTYwKXJldHVybiAxO2JyZWFrO2Nhc2UgNjE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02MSlyZXR1cm4gMTticmVhaztjYXNlIDYyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjIpcmV0dXJuIDE7YnJlYWs7Y2FzZSA2MzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTYzKXJldHVybiAxO2JyZWFrO2RlZmF1bHQ6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02NClyZXR1cm4gMX1lbHNlIHN3aXRjaChlKXtjYXNlIDA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJiFyKXJldHVybiAxO2JyZWFrO2Nhc2UgMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTEpcmV0dXJuIDE7YnJlYWs7Y2FzZSAyOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MilyZXR1cm4gMTticmVhaztjYXNlIDM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zKXJldHVybiAxO2JyZWFrO2Nhc2UgNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTQpcmV0dXJuIDE7YnJlYWs7Y2FzZSA1OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NSlyZXR1cm4gMTticmVhaztjYXNlIDY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT02KXJldHVybiAxO2JyZWFrO2Nhc2UgNzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTcpcmV0dXJuIDE7YnJlYWs7Y2FzZSA4OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09OClyZXR1cm4gMTticmVhaztjYXNlIDk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT05KXJldHVybiAxO2JyZWFrO2Nhc2UgMTA6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xMClyZXR1cm4gMTticmVhaztjYXNlIDExOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTEpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxMjppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTEyKXJldHVybiAxO2JyZWFrO2Nhc2UgMTM6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xMylyZXR1cm4gMTticmVhaztjYXNlIDE0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTQpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxNTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTE1KXJldHVybiAxO2JyZWFrO2Nhc2UgMTY6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xNilyZXR1cm4gMTticmVhaztjYXNlIDE3OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MTcpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxODppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTE4KXJldHVybiAxO2JyZWFrO2Nhc2UgMTk6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0xOSlyZXR1cm4gMTticmVhaztjYXNlIDIwOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjApcmV0dXJuIDE7YnJlYWs7Y2FzZSAyMTppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTIxKXJldHVybiAxO2JyZWFrO2Nhc2UgMjI6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yMilyZXR1cm4gMTticmVhaztjYXNlIDIzOmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjMpcmV0dXJuIDE7YnJlYWs7Y2FzZSAyNDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTI0KXJldHVybiAxO2JyZWFrO2Nhc2UgMjU6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yNSlyZXR1cm4gMTticmVhaztjYXNlIDI2OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjYpcmV0dXJuIDE7YnJlYWs7Y2FzZSAyNzppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTI3KXJldHVybiAxO2JyZWFrO2Nhc2UgMjg6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0yOClyZXR1cm4gMTticmVhaztjYXNlIDI5OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjkpcmV0dXJuIDE7YnJlYWs7Y2FzZSAzMDppZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTMwKXJldHVybiAxO2JyZWFrO2Nhc2UgMzE6aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT0zMSlyZXR1cm4gMTticmVhaztkZWZhdWx0OmlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MzIpcmV0dXJuIDF9fWVsc2Ugc3dpdGNoKHhbMF0pe2Nhc2UgMDppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTApe3ZhciB0PXJbMl0sdT1yWzFdLGk9eFsyXSxmPWEoYShLTyx4WzFdKSx1KTtyZXR1cm4gZiYmQXIoaSx0KX1icmVhaztjYXNlIDE6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xKXt2YXIgbz1yWzJdLGw9clsxXSxkPXhbMl0saz1hKGEoQk8seFsxXSksbCk7cmV0dXJuIGsmJkFyKGQsbyl9YnJlYWs7Y2FzZSAyOmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09Mil7dmFyIGg9clsxXSxnPXhbMV0sQT1oWzRdLE49aFszXSxDPWhbMl0sTz1nWzRdLEw9Z1szXSxNPWdbMl0sVj1ObyhnWzFdLGhbMV0pLHo9ViYmQXIoTSxDKSxZPXomJkFyKEwsTik7cmV0dXJuIFkmJihPPT09QT8xOjApfWJyZWFrO2Nhc2UgMzppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTMpe3ZhciB0MD1yWzFdLGkwPXhbMV0saj10MFs1XSxLPXQwWzRdLEo9dDBbM10sUT10MFsyXSx4MD1pMFs1XSwkPWkwWzRdLGYwPWkwWzNdLHMwPWkwWzJdLHYwPU5vKGkwWzFdLHQwWzFdKSxvMD12MCYmQXIoczAsUSksYzA9bzAmJkFyKGYwLEopLGQwPWMwJiYoJD09PUs/MTowKTtyZXR1cm4gZDAmJih4MD09PWo/MTowKX1icmVhaztjYXNlIDQ6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT00KXt2YXIgRTA9clszXSxMMD1yWzJdLFgwPXhbM10seHg9eFsyXSxnMD1Obyh4WzFdLHJbMV0pLCQwPWcwJiZBcih4eCxMMCk7cmV0dXJuICQwJiZBcihYMCxFMCl9YnJlYWs7Y2FzZSA1OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09NSl7dmFyIG4wPXJbM10saXg9clsyXSxyeD14WzNdLGR4PXhbMl0sYXg9Tm8oeFsxXSxyWzFdKSxTeD1heCYmQXIoZHgsaXgpO3JldHVybiBTeCYmQXIocngsbjApfWJyZWFrO2Nhc2UgNjppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTYpe3ZhciBEMD1yWzJdLE4wPXhbMl0sQTA9Tm8oeFsxXSxyWzFdKTtyZXR1cm4gQTAmJkFyKE4wLEQwKX1icmVhaztjYXNlIDc6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT03KXJldHVybiBBcih4WzFdLHJbMV0pO2JyZWFrO2Nhc2UgODppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTgpe3ZhciBZMD1Bcih4WzFdLHJbMV0pLEMwPXJbMl0sRj14WzJdO3JldHVybiBZMCYmTm8oRixDMCl9YnJlYWs7Y2FzZSA5OmlmKHR5cGVvZiByIT1cIm51bWJlclwiJiZyWzBdPT09OSl7dmFyIEg9clszXSxCPXJbMl0sYTA9eFszXSxtMD14WzJdLFAwPU5vKHhbMV0sclsxXSksRD1QMCYmQXIobTAsQik7cmV0dXJuIEQmJkFyKGEwLEgpfWJyZWFrO2Nhc2UgMTA6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xMCl7dmFyIE8wPXJbM10sSzA9clsyXSxqMD14WzNdLG94PXhbMl0sYjA9Tm8oeFsxXSxyWzFdKSxfeD1iMCYmQXIob3gsSzApO3JldHVybiBfeCYmQXIoajAsTzApfWJyZWFrO2Nhc2UgMTE6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xMSl7dmFyIEIwPXJbMV07cmV0dXJuIGEoYShTVix4WzFdKSxCMCl9YnJlYWs7Y2FzZSAxMjppZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTEyKXt2YXIgVD1yWzNdLFg9clsyXSxGMD1yWzFdLHN4PXhbM10sZXg9eFsyXSxVMD1hKGEoS08seFsxXSksRjApLE54PVUwJiYoZXg9PVg/MTowKTtyZXR1cm4gTngmJkFyKHN4LFQpfWJyZWFrO2RlZmF1bHQ6aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT0xMyl7dmFyIG14PXJbMl0sQng9eFsyXSxHeD1yWzNdLEowPXJbMV0sYng9eFszXSxKeD1hKGEoQk8seFsxXSksSjApO2lmKEp4KXt2YXIgVzA9MDtpZihCeClpZihteCl2YXIgbnI9VWQoQnhbMV0sbXhbMV0pO2Vsc2UgVzA9MTtlbHNlIGlmKG14KVcwPTE7ZWxzZSB2YXIgbnI9MTtpZihXMCl2YXIgbnI9MDt2YXIgVjA9bnJ9ZWxzZSB2YXIgVjA9Sng7cmV0dXJuIFYwJiZBcihieCxHeCl9fXJldHVybiAwfSksSTAoU1YsZnVuY3Rpb24oeCxyKXtpZih4KXtpZihyKXJldHVybiAxfWVsc2UgaWYoIXIpcmV0dXJuIDE7cmV0dXJuIDB9KSxJMChLTyxmdW5jdGlvbih4LHIpe3N3aXRjaCh4KXtjYXNlIDA6aWYoIXIpcmV0dXJuIDE7YnJlYWs7Y2FzZSAxOmlmKHI9PT0xKXJldHVybiAxO2JyZWFrO2Nhc2UgMjppZihyPT09MilyZXR1cm4gMTticmVhaztjYXNlIDM6aWYocj09PTMpcmV0dXJuIDE7YnJlYWs7ZGVmYXVsdDppZig0PD1yKXJldHVybiAxfXJldHVybiAwfSksSTAoQk8sZnVuY3Rpb24oeCxyKXtzd2l0Y2goeCl7Y2FzZSAwOmlmKCFyKXJldHVybiAxO2JyZWFrO2Nhc2UgMTppZihyPT09MSlyZXR1cm4gMTticmVhaztkZWZhdWx0OmlmKDI8PXIpcmV0dXJuIDF9cmV0dXJuIDB9KTt2YXIgRVY9ZnVuY3Rpb24oeCl7aWYodHlwZW9mIHghPVwibnVtYmVyXCIpc3dpdGNoKHhbMF0pe2Nhc2UgMDpyZXR1cm4gU3QwO2Nhc2UgMTpyZXR1cm4gRXQwO2Nhc2UgMjpyZXR1cm4gZ3QwO2Nhc2UgMzpyZXR1cm4gQXQwO2Nhc2UgNDpyZXR1cm4gUHQwO2Nhc2UgNTpyZXR1cm4gTnQwO2Nhc2UgNjpyZXR1cm4gQ3QwO2Nhc2UgNzpyZXR1cm4gSXQwO2Nhc2UgODpyZXR1cm4gT3QwO2Nhc2UgOTpyZXR1cm4gUnQwO2Nhc2UgMTA6cmV0dXJuIEx0MDtjYXNlIDExOnJldHVybiBNdDA7Y2FzZSAxMjpyZXR1cm4gRHQwO2RlZmF1bHQ6cmV0dXJuIFV0MH12YXIgcj14O2lmKDY1PD1yKXtpZig5ODw9cilzd2l0Y2gocil7Y2FzZSA5ODpyZXR1cm4gV2UwO2Nhc2UgOTk6cmV0dXJuIFplMDtjYXNlIDEwMDpyZXR1cm4gJGUwO2Nhc2UgMTAxOnJldHVybiBGZTA7Y2FzZSAxMDI6cmV0dXJuIFFlMDtjYXNlIDEwMzpyZXR1cm4gR2UwO2Nhc2UgMTA0OnJldHVybiBxZTA7Y2FzZSAxMDU6cmV0dXJuIEhlMDtjYXNlIDEwNjpyZXR1cm4gYmUwO2Nhc2UgMTA3OnJldHVybiB4dDA7Y2FzZSAxMDg6cmV0dXJuIHJ0MDtjYXNlIDEwOTpyZXR1cm4gZXQwO2Nhc2UgMTEwOnJldHVybiB0dDA7Y2FzZSAxMTE6cmV0dXJuIG50MDtjYXNlIDExMjpyZXR1cm4gdXQwO2Nhc2UgMTEzOnJldHVybiBpdDA7Y2FzZSAxMTQ6cmV0dXJuIGZ0MDtjYXNlIDExNTpyZXR1cm4gY3QwO2Nhc2UgMTE2OnJldHVybiBzdDA7Y2FzZSAxMTc6cmV0dXJuIG90MDtjYXNlIDExODpyZXR1cm4gdnQwO2Nhc2UgMTE5OnJldHVybiBhdDA7Y2FzZSAxMjA6cmV0dXJuIGx0MDtjYXNlIDEyMTpyZXR1cm4gcHQwO2Nhc2UgMTIyOnJldHVybiBkdDA7Y2FzZSAxMjM6cmV0dXJuIHl0MDtjYXNlIDEyNDpyZXR1cm4gbXQwO2Nhc2UgMTI1OnJldHVybiBrdDA7Y2FzZSAxMjY6cmV0dXJuIGh0MDtjYXNlIDEyNzpyZXR1cm4gX3QwO2Nhc2UgMTI4OnJldHVybiB3dDA7ZGVmYXVsdDpyZXR1cm4gVHQwfXN3aXRjaChyKXtjYXNlIDY1OnJldHVybiBhZTA7Y2FzZSA2NjpyZXR1cm4gbGUwO2Nhc2UgNjc6cmV0dXJuIHBlMDtjYXNlIDY4OnJldHVybiBkZTA7Y2FzZSA2OTpyZXR1cm4geWUwO2Nhc2UgNzA6cmV0dXJuIG1lMDtjYXNlIDcxOnJldHVybiBrZTA7Y2FzZSA3MjpyZXR1cm4gaGUwO2Nhc2UgNzM6cmV0dXJuIF9lMDtjYXNlIDc0OnJldHVybiB3ZTA7Y2FzZSA3NTpyZXR1cm4gVGUwO2Nhc2UgNzY6cmV0dXJuIFNlMDtjYXNlIDc3OnJldHVybiBFZTA7Y2FzZSA3ODpyZXR1cm4gZ2UwO2Nhc2UgNzk6cmV0dXJuIEFlMDtjYXNlIDgwOnJldHVybiBQZTA7Y2FzZSA4MTpyZXR1cm4gTmUwO2Nhc2UgODI6cmV0dXJuIENlMDtjYXNlIDgzOnJldHVybiBJZTA7Y2FzZSA4NDpyZXR1cm4gT2UwO2Nhc2UgODU6cmV0dXJuIFJlMDtjYXNlIDg2OnJldHVybiBMZTA7Y2FzZSA4NzpyZXR1cm4gTWUwO2Nhc2UgODg6cmV0dXJuIERlMDtjYXNlIDg5OnJldHVybiBVZTA7Y2FzZSA5MDpyZXR1cm4gamUwO2Nhc2UgOTE6cmV0dXJuIEplMDtjYXNlIDkyOnJldHVybiBYZTA7Y2FzZSA5MzpyZXR1cm4gWWUwO2Nhc2UgOTQ6cmV0dXJuIFZlMDtjYXNlIDk1OnJldHVybiB6ZTA7Y2FzZSA5NjpyZXR1cm4gS2UwO2RlZmF1bHQ6cmV0dXJuIEJlMH19aWYoMzM8PXIpc3dpdGNoKHIpe2Nhc2UgMzM6cmV0dXJuIE0yMDtjYXNlIDM0OnJldHVybiBEMjA7Y2FzZSAzNTpyZXR1cm4gVTIwO2Nhc2UgMzY6cmV0dXJuIGoyMDtjYXNlIDM3OnJldHVybiBKMjA7Y2FzZSAzODpyZXR1cm4gWDIwO2Nhc2UgMzk6cmV0dXJuIFkyMDtjYXNlIDQwOnJldHVybiBWMjA7Y2FzZSA0MTpyZXR1cm4gejIwO2Nhc2UgNDI6cmV0dXJuIEsyMDtjYXNlIDQzOnJldHVybiBCMjA7Y2FzZSA0NDpyZXR1cm4gVzIwO2Nhc2UgNDU6cmV0dXJuIFoyMDtjYXNlIDQ2OnJldHVybiAkMjA7Y2FzZSA0NzpyZXR1cm4gRjIwO2Nhc2UgNDg6cmV0dXJuIFEyMDtjYXNlIDQ5OnJldHVybiBHMjA7Y2FzZSA1MDpyZXR1cm4gcTIwO2Nhc2UgNTE6cmV0dXJuIEgyMDtjYXNlIDUyOnJldHVybiBiMjA7Y2FzZSA1MzpyZXR1cm4geGUwO2Nhc2UgNTQ6cmV0dXJuIHJlMDtjYXNlIDU1OnJldHVybiBlZTA7Y2FzZSA1NjpyZXR1cm4gdGUwO2Nhc2UgNTc6cmV0dXJuIG5lMDtjYXNlIDU4OnJldHVybiB1ZTA7Y2FzZSA1OTpyZXR1cm4gaWUwO2Nhc2UgNjA6cmV0dXJuIGZlMDtjYXNlIDYxOnJldHVybiBjZTA7Y2FzZSA2MjpyZXR1cm4gc2UwO2Nhc2UgNjM6cmV0dXJuIG9lMDtkZWZhdWx0OnJldHVybiB2ZTB9c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gcjIwO2Nhc2UgMTpyZXR1cm4gZTIwO2Nhc2UgMjpyZXR1cm4gdDIwO2Nhc2UgMzpyZXR1cm4gbjIwO2Nhc2UgNDpyZXR1cm4gdTIwO2Nhc2UgNTpyZXR1cm4gaTIwO2Nhc2UgNjpyZXR1cm4gZjIwO2Nhc2UgNzpyZXR1cm4gYzIwO2Nhc2UgODpyZXR1cm4gczIwO2Nhc2UgOTpyZXR1cm4gbzIwO2Nhc2UgMTA6cmV0dXJuIHYyMDtjYXNlIDExOnJldHVybiBhMjA7Y2FzZSAxMjpyZXR1cm4gbDIwO2Nhc2UgMTM6cmV0dXJuIHAyMDtjYXNlIDE0OnJldHVybiBkMjA7Y2FzZSAxNTpyZXR1cm4geTIwO2Nhc2UgMTY6cmV0dXJuIG0yMDtjYXNlIDE3OnJldHVybiBrMjA7Y2FzZSAxODpyZXR1cm4gaDIwO2Nhc2UgMTk6cmV0dXJuIF8yMDtjYXNlIDIwOnJldHVybiB3MjA7Y2FzZSAyMTpyZXR1cm4gVDIwO2Nhc2UgMjI6cmV0dXJuIFMyMDtjYXNlIDIzOnJldHVybiBFMjA7Y2FzZSAyNDpyZXR1cm4gZzIwO2Nhc2UgMjU6cmV0dXJuIEEyMDtjYXNlIDI2OnJldHVybiBQMjA7Y2FzZSAyNzpyZXR1cm4gTjIwO2Nhc2UgMjg6cmV0dXJuIEMyMDtjYXNlIDI5OnJldHVybiBJMjA7Y2FzZSAzMDpyZXR1cm4gTzIwO2Nhc2UgMzE6cmV0dXJuIFIyMDtkZWZhdWx0OnJldHVybiBMMjB9fSxXTz1mdW5jdGlvbih4KXtpZih0eXBlb2YgeCE9XCJudW1iZXJcIilzd2l0Y2goeFswXSl7Y2FzZSAwOnJldHVybiB4WzJdO2Nhc2UgMTpyZXR1cm4geFsyXTtjYXNlIDI6cmV0dXJuIHhbMV1bM107Y2FzZSAzOnZhciByPXhbMV0sZT1yWzVdLHQ9cls0XSx1PXJbM107cmV0dXJuIHQmJmU/RngoQjEwLEZ4KHUsSzEwKSk6dD9GeChaMTAsRngodSxXMTApKTplP0Z4KEYxMCxGeCh1LCQxMCkpOkZ4KEcxMCxGeCh1LFExMCkpO2Nhc2UgNDpyZXR1cm4geFszXTtjYXNlIDU6dmFyIGk9eFsyXTtyZXR1cm4gRngoSDEwLEZ4KGksRngocTEwLHhbM10pKSk7Y2FzZSA2OnJldHVybiB4WzJdO2Nhc2UgNzpyZXR1cm4geFsxXTtjYXNlIDg6cmV0dXJuIHhbMV07Y2FzZSA5OnJldHVybiB4WzNdO2Nhc2UgMTA6cmV0dXJuIHhbM107Y2FzZSAxMTpyZXR1cm4geFsxXT9iMTA6eDIwO2Nhc2UgMTI6cmV0dXJuIHhbM107ZGVmYXVsdDpyZXR1cm4geFszXX12YXIgZj14O2lmKDY1PD1mKXtpZig5ODw9Zilzd2l0Y2goZil7Y2FzZSA5ODpyZXR1cm4gdjEwO2Nhc2UgOTk6cmV0dXJuIGExMDtjYXNlIDEwMDpyZXR1cm4gbDEwO2Nhc2UgMTAxOnJldHVybiBwMTA7Y2FzZSAxMDI6cmV0dXJuIGQxMDtjYXNlIDEwMzpyZXR1cm4geTEwO2Nhc2UgMTA0OnJldHVybiBtMTA7Y2FzZSAxMDU6cmV0dXJuIGsxMDtjYXNlIDEwNjpyZXR1cm4gaDEwO2Nhc2UgMTA3OnJldHVybiBfMTA7Y2FzZSAxMDg6cmV0dXJuIHcxMDtjYXNlIDEwOTpyZXR1cm4gVDEwO2Nhc2UgMTEwOnJldHVybiBTMTA7Y2FzZSAxMTE6cmV0dXJuIEUxMDtjYXNlIDExMjpyZXR1cm4gZzEwO2Nhc2UgMTEzOnJldHVybiBBMTA7Y2FzZSAxMTQ6cmV0dXJuIFAxMDtjYXNlIDExNTpyZXR1cm4gTjEwO2Nhc2UgMTE2OnJldHVybiBDMTA7Y2FzZSAxMTc6cmV0dXJuIEkxMDtjYXNlIDExODpyZXR1cm4gTzEwO2Nhc2UgMTE5OnJldHVybiBSMTA7Y2FzZSAxMjA6cmV0dXJuIEwxMDtjYXNlIDEyMTpyZXR1cm4gTTEwO2Nhc2UgMTIyOnJldHVybiBEMTA7Y2FzZSAxMjM6cmV0dXJuIFUxMDtjYXNlIDEyNDpyZXR1cm4gajEwO2Nhc2UgMTI1OnJldHVybiBKMTA7Y2FzZSAxMjY6cmV0dXJuIFgxMDtjYXNlIDEyNzpyZXR1cm4gWTEwO2Nhc2UgMTI4OnJldHVybiBWMTA7ZGVmYXVsdDpyZXR1cm4gejEwfXN3aXRjaChmKXtjYXNlIDY1OnJldHVybiBScjA7Y2FzZSA2NjpyZXR1cm4gTHIwO2Nhc2UgNjc6cmV0dXJuIE1yMDtjYXNlIDY4OnJldHVybiBEcjA7Y2FzZSA2OTpyZXR1cm4gVXIwO2Nhc2UgNzA6cmV0dXJuIGpyMDtjYXNlIDcxOnJldHVybiBKcjA7Y2FzZSA3MjpyZXR1cm4gWHIwO2Nhc2UgNzM6cmV0dXJuIFlyMDtjYXNlIDc0OnJldHVybiBWcjA7Y2FzZSA3NTpyZXR1cm4genIwO2Nhc2UgNzY6cmV0dXJuIEtyMDtjYXNlIDc3OnJldHVybiBCcjA7Y2FzZSA3ODpyZXR1cm4gV3IwO2Nhc2UgNzk6cmV0dXJuIFpyMDtjYXNlIDgwOnJldHVybiAkcjA7Y2FzZSA4MTpyZXR1cm4gRnIwO2Nhc2UgODI6cmV0dXJuIFFyMDtjYXNlIDgzOnJldHVybiBHcjA7Y2FzZSA4NDpyZXR1cm4gcXIwO2Nhc2UgODU6cmV0dXJuIEhyMDtjYXNlIDg2OnJldHVybiBicjA7Y2FzZSA4NzpyZXR1cm4geDEwO2Nhc2UgODg6cmV0dXJuIHIxMDtjYXNlIDg5OnJldHVybiBlMTA7Y2FzZSA5MDpyZXR1cm4gdDEwO2Nhc2UgOTE6cmV0dXJuIG4xMDtjYXNlIDkyOnJldHVybiB1MTA7Y2FzZSA5MzpyZXR1cm4gaTEwO2Nhc2UgOTQ6cmV0dXJuIGYxMDtjYXNlIDk1OnJldHVybiBjMTA7Y2FzZSA5NjpyZXR1cm4gczEwO2RlZmF1bHQ6cmV0dXJuIG8xMH19aWYoMzM8PWYpc3dpdGNoKGYpe2Nhc2UgMzM6cmV0dXJuIHhyMDtjYXNlIDM0OnJldHVybiBycjA7Y2FzZSAzNTpyZXR1cm4gZXIwO2Nhc2UgMzY6cmV0dXJuIHRyMDtjYXNlIDM3OnJldHVybiBucjA7Y2FzZSAzODpyZXR1cm4gdXIwO2Nhc2UgMzk6cmV0dXJuIGlyMDtjYXNlIDQwOnJldHVybiBmcjA7Y2FzZSA0MTpyZXR1cm4gY3IwO2Nhc2UgNDI6cmV0dXJuIHNyMDtjYXNlIDQzOnJldHVybiBvcjA7Y2FzZSA0NDpyZXR1cm4gdnIwO2Nhc2UgNDU6cmV0dXJuIGFyMDtjYXNlIDQ2OnJldHVybiBscjA7Y2FzZSA0NzpyZXR1cm4gcHIwO2Nhc2UgNDg6cmV0dXJuIGRyMDtjYXNlIDQ5OnJldHVybiB5cjA7Y2FzZSA1MDpyZXR1cm4gbXIwO2Nhc2UgNTE6cmV0dXJuIGtyMDtjYXNlIDUyOnJldHVybiBocjA7Y2FzZSA1MzpyZXR1cm4gX3IwO2Nhc2UgNTQ6cmV0dXJuIHdyMDtjYXNlIDU1OnJldHVybiBUcjA7Y2FzZSA1NjpyZXR1cm4gU3IwO2Nhc2UgNTc6cmV0dXJuIEVyMDtjYXNlIDU4OnJldHVybiBncjA7Y2FzZSA1OTpyZXR1cm4gQXIwO2Nhc2UgNjA6cmV0dXJuIFByMDtjYXNlIDYxOnJldHVybiBOcjA7Y2FzZSA2MjpyZXR1cm4gQ3IwO2Nhc2UgNjM6cmV0dXJuIElyMDtkZWZhdWx0OnJldHVybiBPcjB9c3dpdGNoKGYpe2Nhc2UgMDpyZXR1cm4gd3gwO2Nhc2UgMTpyZXR1cm4gVHgwO2Nhc2UgMjpyZXR1cm4gU3gwO2Nhc2UgMzpyZXR1cm4gRXgwO2Nhc2UgNDpyZXR1cm4gZ3gwO2Nhc2UgNTpyZXR1cm4gQXgwO2Nhc2UgNjpyZXR1cm4gUHgwO2Nhc2UgNzpyZXR1cm4gTngwO2Nhc2UgODpyZXR1cm4gQ3gwO2Nhc2UgOTpyZXR1cm4gSXgwO2Nhc2UgMTA6cmV0dXJuIE94MDtjYXNlIDExOnJldHVybiBSeDA7Y2FzZSAxMjpyZXR1cm4gTHgwO2Nhc2UgMTM6cmV0dXJuIE14MDtjYXNlIDE0OnJldHVybiBEeDA7Y2FzZSAxNTpyZXR1cm4gVXgwO2Nhc2UgMTY6cmV0dXJuIGp4MDtjYXNlIDE3OnJldHVybiBKeDA7Y2FzZSAxODpyZXR1cm4gWHgwO2Nhc2UgMTk6cmV0dXJuIFl4MDtjYXNlIDIwOnJldHVybiBWeDA7Y2FzZSAyMTpyZXR1cm4gengwO2Nhc2UgMjI6cmV0dXJuIEt4MDtjYXNlIDIzOnJldHVybiBCeDA7Y2FzZSAyNDpyZXR1cm4gV3gwO2Nhc2UgMjU6cmV0dXJuIFp4MDtjYXNlIDI2OnJldHVybiAkeDA7Y2FzZSAyNzpyZXR1cm4gRngwO2Nhc2UgMjg6cmV0dXJuIFF4MDtjYXNlIDI5OnJldHVybiBHeDA7Y2FzZSAzMDpyZXR1cm4gcXgwO2Nhc2UgMzE6cmV0dXJuIEh4MDtkZWZhdWx0OnJldHVybiBieDB9fSxseT1mdW5jdGlvbih4KXtyZXR1cm4gYShUcihfeDApLHgpfSxaTz1mdW5jdGlvbih4LHIpe3ZhciBlPXg/eFsxXTowLHQ9MDtpZih0eXBlb2Ygcj09XCJudW1iZXJcIilpZihScj09PXIpdmFyIHU9bngwLGk9dXgwO2Vsc2UgdD0xO2Vsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgMzp2YXIgdT1peDAsaT1meDA7YnJlYWs7Y2FzZSA1OnZhciB1PWN4MCxpPXN4MDticmVhaztjYXNlIDA6Y2FzZSAxMjp2YXIgdT12eDAsaT1heDA7YnJlYWs7Y2FzZSAxOmNhc2UgMTM6dmFyIHU9bHgwLGk9cHgwO2JyZWFrO2Nhc2UgNDpjYXNlIDg6dmFyIHU9bXgwLGk9a3gwO2JyZWFrO2Nhc2UgNjpjYXNlIDc6Y2FzZSAxMTp0PTE7YnJlYWs7ZGVmYXVsdDp2YXIgdT1keDAsaT15eDB9aWYodCl2YXIgdT1veDAsaT1seShXTyhyKSk7cmV0dXJuIGU/RngodSxGeChoeDAsaSkpOml9LHFUMD1mdW5jdGlvbih4KXtyZXR1cm4gUHY8eD91dzx4Py0xOkJQPHg/cjg8eD9rQTx4P2lfPHg/Z0U8eD8xOjg6clA8eD9OUDx4P285PHg/MTo4OnJBPHg/MTo4Ok9TPHg/ZVQ8eD8xOjg6dUE8eD8xOjg6RTU8eD9sZDx4P3o0PHg/JDg8eD9SODx4P1k4PHg/WUE8eD8xOjg6bWs8eD8xOjg6cTk8eD92Xzx4PzE6ODp3Tjx4PzE6ODpFcDx4P1BkPHg/WFA8eD8xOjg6dXA8eD8xOjg6YTg8eD9MQzx4PzE6ODpZUDx4PzE6ODpkZDx4P19OPHg/VzU8eD92azx4PzE6ODpOTjx4PzE6ODp6cDx4P1o0PHg/MTo4OmxFPHg/MTo4OkFkPHg/RzU8eD9RNDx4PzE6ODpYNDx4PzE6ODpuODx4P0ZwPHg/MTo4OmxwPHg/MTo4OlNrPHg/QzU8eD9kcDx4P3RQPHg/ZDU8eD8xOjg6Z3I8eD8xOjg6Uzg8eD9uazx4PzE6ODpsXzx4PzE6ODpfcDx4P2E1PHg/YWQ8eD8xOjg6bTU8eD8xOjg6SWs8eD9NNTx4PzE6ODpSNTx4PzE6ODpwNTx4P1ZwPHg/Vzg8eD96ODx4PzE6ODpSNDx4PzE6ODp4cDx4P2tUPHg/MTo4OlhnPHg/MTo4Oko1PHg/V0M8eD9xNDx4PzE6ODpqcDx4PzE6ODpwZDx4P3lFPHg/MTo4OnBTPHg/MTo4OkFoPHg/Z1M8eD9RTjx4P2RDPHg/JFA8eD9SUzx4PzE6ODpiUDx4PzE6ODpndzx4P0hOPHg/MTo4OktoPHg/MTo4OmVrPHg/UGg8eD9SUDx4PzE6ODpXUDx4PzE6ODphOTx4P3lTPHg/MTo4OlFQPHg/MTo4OmZfPHg/dmc8eD96RTx4P25fPHg/MTo4OkZoPHg/MTo4OkVBPHg/aHA8eD8xOjg6dkk8eD8xOjg6X1M8eD9VTjx4P0hTPHg/MTo4OjE6ODpiODx4P1U1PHg/Rjg8eD95ZDx4P3BoPHg/MTo4OlJoPHg/MTo4OmdkPHg/blM8eD8xOjg6U1Q8eD8xOjg6RzQ8eD9uZDx4P1dFPHg/MTo4OlRFPHg/MTo4Olk0PHg/b1A8eD8xOjg6RF88eD8xOjg6RHA8eD92ZDx4P2s4PHg/X3c8eD8xOjg6SUU8eD8xOjg6SkM8eD96Tjx4PzE6ODpxUDx4PzE6ODpiNTx4P3hJPHg/UFA8eD8xOjg6THA8eD8xOjg6SnA8eD91UDx4PzE6ODp6azx4PzE6ODphUzx4P1U4PHg/UXc8eD9acDx4P0FwPHg/JHA8eD9zNTx4P3JUPHg/MTo4OkdOPHg/MTo4OmRnPHg/TUU8eD8xOjg6cDk8eD8xOjg6azU8eD9uNTx4P2FBPHg/MTo4Omx3PHg/MTo4OkNwPHg/STU8eD8xOjg6Ymc8eD8xOjg6Tzg8eD9BQTx4P21UPHg/RDM8eD8xOjg6cnc8eD8xOjg6JEU8eD9OZDx4PzE6ODpVZzx4PzE6ODpRQTx4P000PHg/ckk8eD8xOjg6a0U8eD8xOjg6dWc8eD9rTjx4PzE6ODp6dzx4PzE6ODpqVDx4P1M5PHg/Szk8eD93OTx4P0RQPHg/MTo4OndBPHg/MTo4OktFPHg/elQ8eD8xOjg6WU48eD8xOjg6c188eD9ORTx4P2dBPHg/MTo4OnVOPHg/MTo4OkxFPHg/emc8eD8xOjg6S0M8eD8xOjg6Zms8eD95UDx4P0ZDPHg/WTk8eD8xOjg6RlQ8eD8xOjg6eGg8eD9oazx4PzE6ODpDUDx4PzE6ODpvQTx4P3FwPHg/T3A8eD8xOjg6Vms8eD8xOjg6eHc8eD9pTjx4PzE6ODpwUDx4PzE6ODpXZzx4P0VUPHg/R1M8eD9GZzx4P2lnPHg/WUM8eD8xOjg6amg8eD8xOjg6SHc8eD9pUDx4PzE6ODpPQzx4PzE6ODpSQzx4PyRUPHg/QkU8eD8xOjg6bTk8eD8xOjg6Snc8eD9IQzx4PzE6ODplSTx4PzE6ODplQzx4P1FfPHg/ZkU8eD9fQTx4PzE6ODpfXzx4PzE6ODpTdzx4P2Z3PHg/MTo4OkJBPHg/MTo4Ok9rPHg/VWs8eD9vTjx4PzE6ODpYQTx4PzE6ODpKazx4P29TPHg/MTo4OmxrPHg/MTo4Omg1PHg/STg8eD9NQTx4P2pFPHg/cEM8eD8xOjg6TUM8eD8xOjg6d2c8eD9CXzx4PzE6ODpkQTx4PzE6ODpDZzx4P2lkPHg/VVQ8eD8xOjg6clM8eD8xOjg6VEE8eD9SOTx4PzE6ODpHXzx4PzE6ODpUZzx4P05oPHg/JDQ8eD9ldzx4PzE6ODp1Qzx4PzE6ODpMQTx4P1drPHg/MTo4OkhBPHg/MTo4OktnPHg/eDU8eD9FUzx4PzE6ODpyTjx4PzE6ODpuVDx4P2ZBPHg/MTo4OnQ4PHg/MTo4OmpBPHg/aEM8eD9CZzx4P0VQPHg/dlA8eD9xXzx4P1BTPHg/MTo4OnU1PHg/MTo4OlRfPHg/UF88eD8xOjg6ZFA8eD8xOjg6RTg8eD9Fazx4P2VkPHg/MTo4Ok80PHg/MTo4OkY5PHg/a1A8eD8xOjg6QWs8eD8xOjg6eGc8eD9ZaDx4P2NfPHg/eEE8eD8xOjg6T3c8eD8xOjg6YV88eD8kaDx4PzE6ODpJaDx4PzE6ODpWQTx4P3RBPHg/VlA8eD8xOjg6Smc8eD8xOjg6dHc8eD9Ydzx4PzE6ODppQTx4PzE6ODp0azx4P0dUPHg/eTk8eD9GRTx4P0poPHg/MTo4OmM5PHg/MTo4Ok9FPHg/eFQ8eD8xOjg6Sjk8eD8xOjg6cWg8eD95aDx4P2VfPHg/MTo4OkM5PHg/MTo4OmtDPHg/S3A8eD8xOjg6Tl88eD8xOjg6YkE8eD9pdzx4P2lyPHg/Unc8eD8xOjg6Y2g8eD8xOjg6XzU8eD95NTx4PzE6ODp6Xzx4PzE6ODpWNTx4P3lBPHg/X2c8eD8xOjg6Uk48eD8xOjg6Wnc8eD91Uzx4PzE6ODpkOTx4PzE6ODp4ZDx4P3ZFPHg/X2Q8eD9MOTx4P2dDPHg/UUM8eD8xOjg6U2Q8eD8xOjg6alM8eD9mUzx4PzE6ODptSTx4PzE6ODpDODx4P3BwPHg/TU48eD8xOjg6dWg8eD8xOjg6SVA8eD91VDx4PzE6ODpIUDx4PzE6ODpxODx4P3lOPHg/Tjg8eD9jQTx4PzE6ODpFOTx4PzE6ODpINDx4P2I5PHg/MTo4Ok9nPHg/MTo4Ol84PHg/Y3A8eD8kQzx4PzE6ODppNTx4PzE6ODpjdzx4P1lfPHg/MTo4OlE5PHg/MTo4OmhnPHg/Zjk8eD9LNDx4P1pnPHg/eWs8eD8xOjg6VGQ8eD8xOjg6eXc8eD9sOTx4PzE6ODpoTjx4PzE6ODpQZzx4P3N3PHg/YUk8eD8xOjg6RjQ8eD8xOjg6TGc8eD9Mdzx4PzE6ODpvODx4PzE6ODpCQzx4P2NTPHg/SGs8eD9qODx4PzE6ODpCazx4PzE6ODpuQTx4P2loPHg/MTo4OmFQPHg/MTo4OmtwPHg/RkE8eD9HaDx4PzE6ODpDXzx4PzE6ODp6Uzx4P2VTPHg/MTo4OlBBPHg/MTo4Ol9DPHg/cVM8eD8kOTx4P1Y0PHg/U048eD9EaDx4P3NTPHg/cEk8eD9NOTx4PzE6ODpxRTx4PzE6ODpzaDx4P0ZQPHg/MTo4OmY4PHg/MTo4OkRnPHg/cHc8eD9iVDx4PzE6ODpLXzx4PzE6ODpTUDx4P0k5PHg/MTo4Okt3PHg/MTo4OmpfPHg/bUM8eD9oXzx4P2R3PHg/MTo4OlpoPHg/MTo4Om1fPHg/S1Q8eD8xOjg6JHc8eD8xOjg6amc8eD90Zzx4P3U5PHg/MTo4OkJOPHg/MTo4OldfPHg/a2c8eD8xOjg6bEk8eD8xOjg6b0U8eD93ZDx4P3Y5PHg/VkM8eD9fRTx4PzE6ODpYXzx4PzE6ODokTjx4P29nPHg/MTo4OnZTPHg/MTo4OmlUPHg/ZnA8eD9idzx4PzE6ODpyQzx4PzE6ODphdzx4P0NkPHg/MTo4OklDPHg/MTo4OmtkPHg/dWs8eD9iUzx4P2NrPHg/MTo4Omg5PHg/MTo4OmZOPHg/b1Q8eD8xOjg6S2s8eD8xOjg6SF88eD9PTjx4P2xQPHg/MTo4OkRDPHg/MTo4OkFOPHg/R2c8eD8xOjg6c2s8eD8xOjg6YWs8eD9oUzx4P3FDPHg/WTU8eD9WTjx4P0Y1PHg/MTo4OnNOPHg/MTo4OnY1PHg/ZUU8eD8xOjg6ZmQ8eD8xOjg6VVA8eD9RVDx4P1FrPHg/MTo4OmxnPHg/MTo4OlNoPHg/dUk8eD8xOjg6UkE8eD8xOjg6RE48eD9Hdzx4P1pTPHg/S1A8eD8xOjg6Vzk8eD8xOjg6Z2c8eD9BUzx4PzE6ODpUTjx4PzE6ODpTQTx4P1FnPHg/Zkk8eD8xOjg6V1M8eD8xOjg6WVQ8eD92Tjx4PzE6ODprazx4PzE6ODpOOTx4P3JnPHg/WWc8eD9pazx4P3dFPHg/MTo4OlpQPHg/MTo4OkhoPHg/Vnc8eD8xOjg6dkM8eD8xOjg6VUE8eD9NVDx4P1hUPHg/MTo4Om5JPHg/MTo4OkNrPHg/R2s8eD8xOjg6MTpmVDx4P2M1PHg/ckU8eD84Oml2PHg/MTo4OnJoPHg/ZUE8eD8xOjg6VlQ8eD8xOjg6YVQ8eD93Xzx4P3RJPHg/MTo4OklnPHg/MTo4OnBBPHg/MTo4Om81PHg/bWc8eD90Qzx4P1NfPHg/R0E8eD84OndrPHg/UE48eD8xOjg6cms8eD8xOjg6WE48eD9Mazx4P29JPHg/MTo4OlFFPHg/MTo4OmxTPHg/bE48eD8xOjg6bWg8eD8xOjg6djg8eD9hcDx4P2w1PHg/elA8eD8xOjg6Z2g8eD8xOjg6eTg8eD9lZzx4PzE6ODpPVDx4PzE6ODpXVDx4P0hwPHg/Zzk8eD8xOjg6c2c8eD8xOjg6dFQ8eD9Odzx4PzE6ODpJXzx4PzE6ODpQdzx4P0xOPHg/dF88eD9xZzx4P0NFPHg/MTo4OjE6ODpQRTx4Pzg6TzU8eD95Zzx4PzE6ODpZUzx4PzE6ODp5MTx4P3dwPHg/eXY8eD9kdjx4PzE6MjpDdzx4PzE6ODp0aDx4P0pBPHg/MTo4OkRTPHg/MTo4Om5QPHg/anc8eD9ZRTx4PzE6ODpnXzx4PzE6ODpnTjx4P3lDPHg/MTo4OmdrPHg/MTo4OmxoPHg/X2s8eD9zZDx4P25wPHg/VHA8eD90Uzx4PzE6ODpVdzx4PzE6ODpRNTx4P1o4PHg/MTo4OnBfPHg/MTo4OmZoPHg/Vjg8eD9VOTx4PzE6ODpHQzx4PzE6ODp3Qzx4P05wPHg/MTo4OmJfPHg/MTo4OmJOPHg/TF88eD9BQzx4P1dBPHg/MTo4OkV3PHg/MTo4Ok5BPHg/ak48eD8xOjg6Tzk8eD8xOjg6JF88eD9YUzx4P29DPHg/MTo4OkRUPHg/MTo4OlR3PHg/MTo4OnVfPHg/ZTg8eD9pODx4P2NOPHg/MTo4OmU1PHg/ODptdzx4PzE6ODpoRTx4P0g4PHg/cXc8eD8xOjg6dkE8eD8xOjg6Qnc8eD9qazx4PzE6ODpTQzx4PzE6ODpBOTx4P29fPHg/bUU8eD9EQTx4PzE6ODoxOkpFPHg/ODpUQzx4PzE6ODptTjx4P3NJPHg/MTo4OnlJPHg/VUM8eD8xOjg6eE48eD8xOjg6X2g8eD9EODx4P0RrPHg/bVM8eD95VDx4P0xTPHg/X1Q8eD9wazx4PzE6ODpUOTx4PzE6ODpVRTx4P0hnPHg/MTo4OmtoPHg/MTo4OnFrPHg/aVM8eD9UODx4PzE6ODoxOjg6SVM8eD9FXzx4P2JrPHg/VFM8eD8xOjg6eEU8eD8xOjg6Y2Q8eD9fUDx4PzE6ODp3STx4PzE6ODpHRTx4P21BPHg/MTo4OmdQPHg/QWc8eD8xOjg6U3A8eD8xOjg6cU48eD9BRTx4P1BrPHg/Sl88eD9IOTx4PzE6ODphaDx4PzE6ODphQzx4P25oPHg/MTo4OmRFPHg/MTo4OlpDPHg/JDU8eD9sQTx4PzE6ODpMNTx4PzE6ODp4UDx4P0pOPHg/MTo4OmNUPHg/MTo4OnRFPHg/a1M8eD9Jdzx4P19JPHg/MTo4Ok5UPHg/MTo4OkpQPHg/bEM8eD8xOjg6a3c8eD8xOjg6VV88eCYmZU48eD8xOjg6c1A8eD9ERTx4PyRBPHg/ajk8eD84OmZDPHg/eFM8eD8xOjg6UFQ8eD8xOjg6VGs8eD91RTx4P3pBPHg/MTo4OjE6ODpSazx4P3NFPHgmJk13PHg/MTo4Ok9BPHg/Wms8eD9mUDx4PzE6ODoxOlpfPHg/ODoxOkZOPHg/JGc8eD9CNTx4Pzg6QXc8eD8xOjg6TWg8eD9wZzx4P0FfPHg/MTo4Old3PHg/MTo4OnpoPHg/MTo4OlZTPHg/bnc8eD9DQTx4PzE6ODpoaDx4PzE6ODpWOTx4P1VoPHg/ODpSZzx4PzE6ODpNUzx4P0ZTPHg/MTo4OktBPHg/MTo4Om5DPHg/eEM8eD93aDx4P29kPHg/UlQ8eD9TNTx4P2lDPHg/MTo4OlZnPHg/MTo4OndQPHg/MTo4Ok1nPHg/ajU8eD9rSTx4PzE6ODoxOjg6Rzk8eD96OTx4P2NQPHg/ZEk8eD8xOjg6MTo4OnNBPHg/RDQ8eD9aOTx4PzE6ODpPaDx4PzE6ODpYRTx4PzE6ODpsODx4P0Q1PHg/U3Y8eD9YOTx4Pzg6bHY8eD8xOjI6UnA8eD9FaDx4PzE6ODpoSTx4PzE6ODp3ODx4P3o1PHg/RU48eD8xOjg6VGg8eD8xOjg6VzQ8eD9TUzx4PzE6ODpjQzx4PzE6ODpQQzx4P2JoPHg/bXA8eD9yXzx4PzE6ODppSTx4PzE6ODpCODx4P1RQPHg/MTo4OkE1PHg/MTo4OldOPHg/c1Q8eD9EOTx4PzE6ODpVNDx4PzE6ODpqNDx4P0w4PHg/MTo4OiRTPHg/MTo4OllwPHg/T1A8eD9OZzx4P2NFPHg/cE48eD93dzx4PzE6ODpEdzx4PzE6ODpoQTx4PzE6ODpXaDx4P1NFPHg/ODoxOjg6T188eD9BVDx4P0VFPHg/dTg8eD8xOjg6bkU8eD8xOjg6TV88eD9oUDx4PzE6ODoxOjg6ZF88eD9uTjx4P29wPHg/czg8eD9VcDx4PzE6ODpjODx4PzE6ODpUSTx4P0VkPHg/MTo4OjE6Zzg8eD9IRTx4Pzg6R3A8eD8xOjg6QlM8eD93VDx4PzE6ODpONTx4PzE6ODpFQzx4P2NnPHg/YUU8eD9tZDx4PzE6ODpxQTx4PzE6ODpvazx4P0g1PHg/MTo4Ok04PHg/MTo4OmZ2PHg/Y3Y8eD9Bdjx4PzE6Mjpzdjx4PzE6MjpjMjx4P1ExPHg/MTozOnd2PHg/MToyOmZ4KGBcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDNcdTAwMDNcdTAwMDVcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDZcXHgwN1xcYlx0XG5cXHZcXHgwN1xcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAxQVxceDFCXHUwMDFDXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAxRFx1MDAxRVx1MDAxRiBcdCFcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCIjJCVcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx0XHRcdFx1MDAwMlx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHUwMDAyXHRcdFx1MDAwMlx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdTAwMDJcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdTAwMDJcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx1MDAwMlx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx0XHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdTAwMDJcdFx1MDAwMlx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdTAwMDJcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHRcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx1MDAwMlx0XHRcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHRcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAzXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx1MDAwMlx0XHUwMDAyXHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdTAwMDJcdFx0XHRcdFx0XHRcdFx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJcdFx0XHRcdFx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHRcdFx0XHUwMDAyXHRcdFx0XHRcdFx0XHRcdTAwMDJcdTAwMDJcdTAwMDJgLHgrMXwwKS0xfDB9LCRPPWZ1bmN0aW9uKHgpe3JldHVybiA0NTx4PzQ2PHg/LTE6MDotMX0scnM9ZnVuY3Rpb24oeCl7cmV0dXJuIDg8eD9aVDx4P1B2PHg/ZHY8eD8tMTpsdjx4P3l2PHg/MDotMTpzdjx4P2N2PHg/QXY8eD9Tdjx4PzA6LTE6MDotMTp3djx4P2Z2PHg/MDotMTowOi0xOmZ4KFwiXHUwMDAxXFwwXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXCIseC05fDApLTF8MDotMX0sZ1Y9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/QWY8eD8tMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlwiLHgrWTF8MCktMXwwOi0xfSxkcj1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD81Nzx4Py0xOjA6LTF9LFByPWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P0pmPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K1kxfDApLTF8MDotMX0sVnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/VjE8eD8tMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwM1wiLHgrWTF8MCktMXwwOi0xfSxBVj1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD81OTx4Py0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXHUwMDAyXCIseCtZMXwwKS0xfDA6LTF9LHp0PWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDJcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0scHk9ZnVuY3Rpb24oeCl7cmV0dXJuIDg3PHg/QWY8eD8tMTpmeChhTix4LTg4fDApLTF8MDotMX0sQ289ZnVuY3Rpb24oeCl7cmV0dXJuIDQ1PHg/NTc8eD8tMTpmeChcIlx1MDAwMVxcMFx1MDAwMlx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1wiLHgrTnZ8MCktMXwwOi0xfSxGTz1mdW5jdGlvbih4KXtyZXR1cm4tMTx4P0hyPHg/UnQ8eD9jMjx4P1ExPHg/MDotMTowOi0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCktMXwwOi0xfSxQVj1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LFh2PWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P0NpPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIix4K1kxfDApLTF8MDotMX0sUWE9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwM1x1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxkeT1mdW5jdGlvbih4KXtyZXR1cm4gNDU8eD9JdDx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXCIseCtOdnwwKS0xfDA6LTF9LE5WPWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0seXk9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/OTU8eD8tMTpmeChcIlx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlwiLHgrWTF8MCktMXwwOi0xfSxteT1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD9WMTx4Py0xOmZ4KFwiXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAzXCIseCtZMXwwKS0xfDA6LTF9LGt5PWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P1YxPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDNcIix4K1kxfDApLTF8MDotMX0saHk9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1xcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxfeT1mdW5jdGlvbih4KXtyZXR1cm4gODx4P1pUPHg/UHY8eD9kdjx4Py0xOmx2PHg/eXY8eD8wOi0xOnN2PHg/Y3Y8eD9Bdjx4P1N2PHg/MDotMTowOi0xOnd2PHg/ZnY8eD8wOi0xOjA6LTE6ZngoXCJcdTAwMDFcXDBcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDNcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcIix4LTl8MCktMXwwOi0xfSxlcz1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD80OTx4Py0xOjA6LTF9LHd5PWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4Pzk1PHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIix4K1kxfDApLTF8MDotMX0sSW89ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/NTc8eD8tMTpmeChcIlx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlwiLHgrWTF8MCktMXwwOi0xfSxUeT1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXFwwXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDA0XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXHUwMDA1XFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDA0XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDA2XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LENWPWZ1bmN0aW9uKHgpe3JldHVybiB1dDx4P09zPHg/LTE6MDotMX0sRW49ZnVuY3Rpb24oeCl7cmV0dXJuIDYwPHg/NjE8eD8tMTowOi0xfSxHYT1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD9WMTx4Py0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXCIseCtZMXwwKS0xfDA6LTF9LFN5PWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P1YxPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDNcIix4K1kxfDApLTF8MDotMX0sUU89ZnVuY3Rpb24oeCl7cmV0dXJuIDYwPHg/NjI8eD8tMTpmeChwOCx4K3hffDApLTF8MDotMX0sRXk9ZnVuY3Rpb24oeCl7cmV0dXJuIDY1PHg/OTg8eD8tMTpmeChhTix4LTY2fDApLTF8MDotMX0sTzE9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxneT1mdW5jdGlvbih4KXtyZXR1cm4gT3M8eD9Oczx4Py0xOjA6LTF9LFYyPWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4PzU1PHg/LTE6MDotMX0sR089ZnVuY3Rpb24oeCl7cmV0dXJuIElzPHg/VjE8eD8tMTowOi0xfSxBeT1mdW5jdGlvbih4KXtyZXR1cm4gVjE8eD9PdDx4Py0xOjA6LTF9LFFsPWZ1bmN0aW9uKHgpe3JldHVybiA5ODx4Pzk5PHg/LTE6MDotMX0sbGU9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/NDg8eD8tMTowOi0xfSxQeT1mdW5jdGlvbih4KXtyZXR1cm4gNDU8eD9JdDx4Py0xOmZ4KFwiXHUwMDAxXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAzXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAzXCIseCtOdnwwKS0xfDA6LTF9LE55PWZ1bmN0aW9uKHgpe3JldHVybiA3ODx4P090PHg/LTE6ZngoYU4seC03OXwwKS0xfDA6LTF9LElWPWZ1bmN0aW9uKHgpe3JldHVybiA0MTx4PzQyPHg/LTE6MDotMX0sT1Y9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwM1x1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwM1x1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxDeT1mdW5jdGlvbih4KXtyZXR1cm4gNDc8eD9JdDx4Py0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXCIseCtZMXwwKS0xfDA6LTF9LE9vPWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDNcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcdTAwMDRcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDNcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDVcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0sUlY9ZnVuY3Rpb24oeCl7cmV0dXJuIDQxPHg/NjE8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwM1wiLHgrX0R8MCktMXwwOi0xfSxMVj1mdW5jdGlvbih4KXtyZXR1cm4gNDQ8eD80NTx4Py0xOjA6LTF9LE1WPWZ1bmN0aW9uKHgpe3JldHVybiBEdDx4P0RlPHg/LTE6MDotMX0sSXk9ZnVuY3Rpb24oeCl7cmV0dXJuIEcyPHg/dm48eD8tMTowOi0xfSxEVj1mdW5jdGlvbih4KXtyZXR1cm4gOTk8eD9pdDx4Py0xOjA6LTF9LE95PWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P0pmPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K1kxfDApLTF8MDotMX0sUnk9ZnVuY3Rpb24oeCl7cmV0dXJuIFJyPHg/dXQ8eD8tMTowOi0xfSxxYT1mdW5jdGlvbih4KXtyZXR1cm4gNDU8eD81Nzx4Py0xOmZ4KFwiXHUwMDAxXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXCIseCtOdnwwKS0xfDA6LTF9LFVWPWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0sWXY9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/UnQ8eD8tMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlwiLHgrWTF8MCktMXwwOi0xfSxqVj1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXFwwXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDA0XHUwMDA0XFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDA1XHUwMDAxXHUwMDAxXHUwMDA2XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFx4MDdcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXGJcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDVcdTAwMDFcdTAwMDFcdTAwMDZcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdFxceDA3XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFxiXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LHBlPWZ1bmN0aW9uKHgpe3JldHVybiA5PHg/MTA8eD8tMTowOi0xfSxKVj1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LFhWPWZ1bmN0aW9uKHgpe3JldHVybiA5Njx4Pzk3PHg/LTE6MDotMX0sdHM9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFx1MDAwM1xcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxMeT1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXHUwMDAzXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDA0XHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LFJvPWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4Pzk1PHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIix4K1kxfDApLTF8MDotMX0sWVY9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1xcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFx1MDAwNFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxHbD1mdW5jdGlvbih4KXtyZXR1cm4gaXQ8eD9JdDx4Py0xOjA6LTF9LFZWPWZ1bmN0aW9uKHgpe3JldHVybiA1ODx4PzU5PHg/LTE6MDotMX0selY9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFx1MDAwMlxcMFxcMFx1MDAwM1x1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFx1MDAwNFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxNeT1mdW5jdGlvbih4KXtyZXR1cm4gNDE8eD80Nzx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXHUwMDAyXCIseCtfRHwwKS0xfDA6LTF9LER5PWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcdTAwMDNcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDRcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0sSFQwPWZ1bmN0aW9uKHgpe3JldHVybiBQdjx4P3V3PHg/LTE6QlA8eD9yODx4P2tBPHg/aV88eD9nRTx4PzE6NjpyUDx4P05QPHg/bzk8eD8xOjY6ckE8eD8xOjY6T1M8eD9lVDx4PzE6Njp1QTx4PzE6NjpFNTx4P2xkPHg/ejQ8eD8kODx4P1I4PHg/WTg8eD9ZQTx4PzE6Njptazx4PzE6NjpxOTx4P3ZfPHg/MTo2OndOPHg/MTo2OkVwPHg/UGQ8eD9YUDx4PzE6Njp1cDx4PzE6NjphODx4P0xDPHg/MTo2OllQPHg/MTo2OmRkPHg/X048eD9XNTx4P3ZrPHg/MTo2Ok5OPHg/MTo2OnpwPHg/WjQ8eD8xOjY6bEU8eD8xOjY6QWQ8eD9HNTx4P1E0PHg/MTo2Olg0PHg/MTo2Om44PHg/RnA8eD8xOjY6bHA8eD8xOjY6U2s8eD9DNTx4P2RwPHg/dFA8eD9kNTx4PzE6Njpncjx4PzE6NjpTODx4P25rPHg/MTo2OmxfPHg/MTo2Ol9wPHg/YTU8eD9hZDx4PzE6NjptNTx4PzE6NjpJazx4P001PHg/MTo2OlI1PHg/MTo2OnA1PHg/VnA8eD9XODx4P3o4PHg/MTo2OlI0PHg/MTo2OnhwPHg/a1Q8eD8xOjY6WGc8eD8xOjY6SjU8eD9XQzx4P3E0PHg/MTo2OmpwPHg/MTo2OnBkPHg/eUU8eD8xOjY6cFM8eD8xOjY6QWg8eD9nUzx4P1FOPHg/ZEM8eD8kUDx4P1JTPHg/MTo2OmJQPHg/MTo2Omd3PHg/SE48eD8xOjY6S2g8eD8xOjY6ZWs8eD9QaDx4P1JQPHg/MTo2OldQPHg/MTo2OmE5PHg/eVM8eD8xOjY6UVA8eD8xOjY6Zl88eD92Zzx4P3pFPHg/bl88eD8xOjY6Rmg8eD8xOjY6RUE8eD9ocDx4PzE6Njp2STx4PzE6NjpfUzx4P1VOPHg/SFM8eD8xOjY6MTo2OmI4PHg/VTU8eD9GODx4P3lkPHg/cGg8eD8xOjY6Umg8eD8xOjY6Z2Q8eD9uUzx4PzE6NjpTVDx4PzE6NjpHNDx4P25kPHg/V0U8eD8xOjY6VEU8eD8xOjY6WTQ8eD9vUDx4PzE6NjpEXzx4PzE6NjpEcDx4P3ZkPHg/azg8eD9fdzx4PzE6NjpJRTx4PzE6NjpKQzx4P3pOPHg/MTo2OnFQPHg/MTo2OmI1PHg/eEk8eD9QUDx4PzE6NjpMcDx4PzE6NjpKcDx4P3VQPHg/MTo2OnprPHg/MTo2OmFTPHg/VTg8eD9Rdzx4P1pwPHg/QXA8eD8kcDx4P3M1PHg/clQ8eD8xOjY6R048eD8xOjY6ZGc8eD9NRTx4PzE6NjpwOTx4PzE6NjprNTx4P241PHg/YUE8eD8xOjY6bHc8eD8xOjY6Q3A8eD9JNTx4PzE6NjpiZzx4PzE6NjpPODx4P0FBPHg/bVQ8eD9EMzx4PzE6Njpydzx4PzE6NjokRTx4P05kPHg/MTo2OlVnPHg/MTo2OlFBPHg/TTQ8eD9ySTx4PzE6NjprRTx4PzE6Njp1Zzx4P2tOPHg/MTo2Onp3PHg/MTo2OmpUPHg/Uzk8eD9LOTx4P3c5PHg/RFA8eD8xOjY6d0E8eD8xOjY6S0U8eD96VDx4PzE6NjpZTjx4PzE6NjpzXzx4P05FPHg/Z0E8eD8xOjY6dU48eD8xOjY6TEU8eD96Zzx4PzE6NjpLQzx4PzE6Njpmazx4P3lQPHg/RkM8eD9ZOTx4PzE6NjpGVDx4PzE6Njp4aDx4P2hrPHg/MTo2OkNQPHg/MTo2Om9BPHg/cXA8eD9PcDx4PzE6NjpWazx4PzE6Njp4dzx4P2lOPHg/MTo2OnBQPHg/MTo2OldnPHg/RVQ8eD9HUzx4P0ZnPHg/aWc8eD9ZQzx4PzE6NjpqaDx4PzE6NjpIdzx4P2lQPHg/MTo2Ok9DPHg/MTo2OlJDPHg/JFQ8eD9CRTx4PzE6NjptOTx4PzE6NjpKdzx4P0hDPHg/MTo2OmVJPHg/MTo2OmVDPHg/UV88eD9mRTx4P19BPHg/MTo2Ol9fPHg/MTo2OlN3PHg/Znc8eD8xOjY6QkE8eD8xOjY6T2s8eD9Vazx4P29OPHg/MTo2OlhBPHg/MTo2OkprPHg/b1M8eD8xOjY6bGs8eD8xOjY6aDU8eD9JODx4P01BPHg/akU8eD9wQzx4PzE6NjpNQzx4PzE6Njp3Zzx4P0JfPHg/MTo2OmRBPHg/MTo2OkNnPHg/aWQ8eD9VVDx4PzE6NjpyUzx4PzE6NjpUQTx4P1I5PHg/MTo2OkdfPHg/MTo2OlRnPHg/Tmg8eD8kNDx4P2V3PHg/MTo2OnVDPHg/MTo2OkxBPHg/V2s8eD8xOjY6SEE8eD8xOjY6S2c8eD94NTx4P0VTPHg/MTo2OnJOPHg/MTo2Om5UPHg/ZkE8eD8xOjY6dDg8eD8xOjY6akE8eD9oQzx4P0JnPHg/RVA8eD92UDx4P3FfPHg/UFM8eD8xOjY6dTU8eD8xOjY6VF88eD9QXzx4PzE6NjpkUDx4PzE6NjpFODx4P0VrPHg/ZWQ8eD8xOjY6TzQ8eD8xOjY6Rjk8eD9rUDx4PzE6NjpBazx4PzE6Njp4Zzx4P1loPHg/Y188eD94QTx4PzE6NjpPdzx4PzE6NjphXzx4PyRoPHg/MTo2OkloPHg/MTo2OlZBPHg/dEE8eD9WUDx4PzE6NjpKZzx4PzE6Njp0dzx4P1h3PHg/MTo2OmlBPHg/MTo2OnRrPHg/R1Q8eD95OTx4P0ZFPHg/Smg8eD8xOjY6Yzk8eD8xOjY6T0U8eD94VDx4PzE6NjpKOTx4PzE6NjpxaDx4P3loPHg/ZV88eD8xOjY6Qzk8eD8xOjY6a0M8eD9LcDx4PzE6NjpOXzx4PzE6NjpiQTx4P2l3PHg/aXI8eD9Sdzx4PzE6NjpjaDx4PzE6NjpfNTx4P3k1PHg/MTo2OnpfPHg/MTo2OlY1PHg/eUE8eD9fZzx4PzE6NjpSTjx4PzE6Njpadzx4P3VTPHg/MTo2OmQ5PHg/MTo2OnhkPHg/dkU8eD9fZDx4P0w5PHg/Z0M8eD9RQzx4PzE6NjpTZDx4PzE6NjpqUzx4P2ZTPHg/MTo2Om1JPHg/MTo2OkM4PHg/cHA8eD9NTjx4PzE6Njp1aDx4PzE6NjpJUDx4P3VUPHg/MTo2OkhQPHg/MTo2OnE4PHg/eU48eD9OODx4P2NBPHg/MTo2OkU5PHg/MTo2Okg0PHg/Yjk8eD8xOjY6T2c8eD8xOjY6Xzg8eD9jcDx4PyRDPHg/MTo2Omk1PHg/MTo2OmN3PHg/WV88eD8xOjY6UTk8eD8xOjY6aGc8eD9mOTx4P0s0PHg/Wmc8eD95azx4PzE6NjpUZDx4PzE6Njp5dzx4P2w5PHg/MTo2OmhOPHg/MTo2OlBnPHg/c3c8eD9hSTx4PzE6NjpGNDx4PzE6NjpMZzx4P0x3PHg/MTo2Om84PHg/MTo2OkJDPHg/Y1M8eD9Iazx4P2o4PHg/MTo2OkJrPHg/MTo2Om5BPHg/aWg8eD8xOjY6YVA8eD8xOjY6a3A8eD9GQTx4P0doPHg/MTo2OkNfPHg/MTo2OnpTPHg/ZVM8eD8xOjY6UEE8eD8xOjY6X0M8eD9xUzx4PyQ5PHg/VjQ8eD9TTjx4P0RoPHg/c1M8eD9wSTx4P005PHg/MTo2OnFFPHg/MTo2OnNoPHg/RlA8eD8xOjY6Zjg8eD8xOjY6RGc8eD9wdzx4P2JUPHg/MTo2OktfPHg/MTo2OlNQPHg/STk8eD8xOjY6S3c8eD8xOjY6al88eD9tQzx4P2hfPHg/ZHc8eD8xOjY6Wmg8eD8xOjY6bV88eD9LVDx4PzE6Njokdzx4PzE6NjpqZzx4P3RnPHg/dTk8eD8xOjY6Qk48eD8xOjY6V188eD9rZzx4PzE6NjpsSTx4PzE6NjpvRTx4P3dkPHg/djk8eD9WQzx4P19FPHg/MTo2OlhfPHg/MTo2OiROPHg/b2c8eD8xOjY6dlM8eD8xOjY6aVQ8eD9mcDx4P2J3PHg/MTo2OnJDPHg/MTo2OmF3PHg/Q2Q8eD8xOjY6SUM8eD8xOjY6a2Q8eD91azx4P2JTPHg/Y2s8eD8xOjY6aDk8eD8xOjY6Zk48eD9vVDx4PzE6NjpLazx4PzE6NjpIXzx4P09OPHg/bFA8eD8xOjY6REM8eD8xOjY6QU48eD9HZzx4PzE6Njpzazx4PzE6Njphazx4P2hTPHg/cUM8eD9ZNTx4P1ZOPHg/RjU8eD8xOjY6c048eD8xOjY6djU8eD9lRTx4PzE6NjpmZDx4PzE6NjpVUDx4P1FUPHg/UWs8eD8xOjY6bGc8eD8xOjY6U2g8eD91STx4PzE6NjpSQTx4PzE6NjpETjx4P0d3PHg/WlM8eD9LUDx4PzE6NjpXOTx4PzE6NjpnZzx4P0FTPHg/MTo2OlROPHg/MTo2OlNBPHg/UWc8eD9mSTx4PzE6NjpXUzx4PzE6NjpZVDx4P3ZOPHg/MTo2OmtrPHg/MTo2Ok45PHg/cmc8eD9ZZzx4P2lrPHg/d0U8eD8xOjY6WlA8eD8xOjY6SGg8eD9Wdzx4PzE6Njp2Qzx4PzE6NjpVQTx4P01UPHg/WFQ8eD8xOjY6bkk8eD8xOjY6Q2s8eD9Hazx4PzE6NjoxOmZUPHg/YzU8eD9yRTx4PzY6aXY8eD8xOjY6cmg8eD9lQTx4PzE6NjpWVDx4PzE6NjphVDx4P3dfPHg/dEk8eD8xOjY6SWc8eD8xOjY6cEE8eD8xOjY6bzU8eD9tZzx4P3RDPHg/U188eD9HQTx4PzY6d2s8eD9QTjx4PzE6Njpyazx4PzE6NjpYTjx4P0xrPHg/b0k8eD8xOjY6UUU8eD8xOjY6bFM8eD9sTjx4PzE6NjptaDx4PzE6Njp2ODx4P2FwPHg/bDU8eD96UDx4PzE6NjpnaDx4PzE6Njp5ODx4P2VnPHg/MTo2Ok9UPHg/MTo2OldUPHg/SHA8eD9nOTx4PzE6NjpzZzx4PzE6Njp0VDx4P053PHg/MTo2OklfPHg/MTo2OlB3PHg/TE48eD90Xzx4P3FnPHg/Q0U8eD8xOjY6MTo2OlBFPHg/NjpPNTx4P3lnPHg/MTo2OllTPHg/MTo2OnkxPHg/d3A8eD95djx4P2R2PHg/MToyOkN3PHg/MTo2OnRoPHg/SkE8eD8xOjY6RFM8eD8xOjY6blA8eD9qdzx4P1lFPHg/MTo2OmdfPHg/MTo2OmdOPHg/eUM8eD8xOjY6Z2s8eD8xOjY6bGg8eD9fazx4P3NkPHg/bnA8eD9UcDx4P3RTPHg/MTo2OlV3PHg/MTo2OlE1PHg/Wjg8eD8xOjY6cF88eD8xOjY6Zmg8eD9WODx4P1U5PHg/MTo2OkdDPHg/MTo2OndDPHg/TnA8eD8xOjY6Yl88eD8xOjY6Yk48eD9MXzx4P0FDPHg/V0E8eD8xOjY6RXc8eD8xOjY6TkE8eD9qTjx4PzE6NjpPOTx4PzE6NjokXzx4P1hTPHg/b0M8eD8xOjY6RFQ8eD8xOjY6VHc8eD8xOjY6dV88eD9lODx4P2k4PHg/Y048eD8xOjY6ZTU8eD82Om13PHg/MTo2OmhFPHg/SDg8eD9xdzx4PzE6Njp2QTx4PzE6NjpCdzx4P2prPHg/MTo2OlNDPHg/MTo2OkE5PHg/b188eD9tRTx4P0RBPHg/MTo2OjE6SkU8eD82OlRDPHg/MTo2Om1OPHg/c0k8eD8xOjY6eUk8eD9VQzx4PzE6Njp4Tjx4PzE6NjpfaDx4P0Q4PHg/RGs8eD9tUzx4P3lUPHg/TFM8eD9fVDx4P3BrPHg/MTo2OlQ5PHg/MTo2OlVFPHg/SGc8eD8xOjY6a2g8eD8xOjY6cWs8eD9pUzx4P1Q4PHg/MTo2OjE6NjpJUzx4P0VfPHg/Yms8eD9UUzx4PzE6Njp4RTx4PzE6NjpjZDx4P19QPHg/MTo2OndJPHg/MTo2OkdFPHg/bUE8eD8xOjY6Z1A8eD9BZzx4PzE6NjpTcDx4PzE6NjpxTjx4P0FFPHg/UGs8eD9KXzx4P0g5PHg/MTo2OmFoPHg/MTo2OmFDPHg/bmg8eD8xOjY6ZEU8eD8xOjY6WkM8eD8kNTx4P2xBPHg/MTo2Okw1PHg/MTo2OnhQPHg/Sk48eD8xOjY6Y1Q8eD8xOjY6dEU8eD9rUzx4P0l3PHg/X0k8eD8xOjY6TlQ8eD8xOjY6SlA8eD9sQzx4PzE6Njprdzx4PzE6NjpVXzx4JiZlTjx4PzE6NjpzUDx4P0RFPHg/JEE8eD9qOTx4PzY6ZkM8eD94Uzx4PzE6NjpQVDx4PzE6NjpUazx4P3VFPHg/ekE8eD8xOjY6MTo2OlJrPHg/c0U8eCYmTXc8eD8xOjY6T0E8eD9aazx4P2ZQPHg/MTo2OjE6Wl88eD82OjE6Rk48eD8kZzx4P0I1PHg/NjpBdzx4PzE6NjpNaDx4P3BnPHg/QV88eD8xOjY6V3c8eD8xOjY6emg8eD8xOjY6VlM8eD9udzx4P0NBPHg/MTo2OmhoPHg/MTo2OlY5PHg/VWg8eD82OlJnPHg/MTo2Ok1TPHg/RlM8eD8xOjY6S0E8eD8xOjY6bkM8eD94Qzx4P3doPHg/b2Q8eD9SVDx4P1M1PHg/aUM8eD8xOjY6Vmc8eD8xOjY6d1A8eD8xOjY6TWc8eD9qNTx4P2tJPHg/MTo2OjE6NjpHOTx4P3o5PHg/Y1A8eD9kSTx4PzE6NjoxOjY6c0E8eD9ENDx4P1o5PHg/MTo2Ok9oPHg/MTo2OlhFPHg/MTo2Omw4PHg/RDU8eD9Tdjx4P1g5PHg/Njpsdjx4PzE6MjpScDx4P0VoPHg/MTo2OmhJPHg/MTo2Onc4PHg/ejU8eD9FTjx4PzE6NjpUaDx4PzE6NjpXNDx4P1NTPHg/MTo2OmNDPHg/MTo2OlBDPHg/Ymg8eD9tcDx4P3JfPHg/MTo2OmlJPHg/MTo2OkI4PHg/VFA8eD8xOjY6QTU8eD8xOjY6V048eD9zVDx4P0Q5PHg/MTo2OlU0PHg/MTo2Omo0PHg/TDg8eD8xOjY6JFM8eD8xOjY6WXA8eD9PUDx4P05nPHg/Y0U8eD9wTjx4P3d3PHg/MTo2OkR3PHg/MTo2OmhBPHg/MTo2OldoPHg/U0U8eD82OjE6NjpPXzx4P0FUPHg/RUU8eD91ODx4PzE6NjpuRTx4PzE6NjpNXzx4P2hQPHg/MTo2OjE6NjpkXzx4P25OPHg/b3A8eD9zODx4P1VwPHg/MTo2OmM4PHg/MTo2OlRJPHg/RWQ8eD8xOjY6MTpnODx4P0hFPHg/NjpHcDx4PzE6NjpCUzx4P3dUPHg/MTo2Ok41PHg/MTo2OkVDPHg/Y2c8eD9hRTx4P21kPHg/MTo2OnFBPHg/MTo2Om9rPHg/SDU8eD8xOjY6TTg8eD8xOjY6ZnY8eD9jdjx4P0F2PHg/MToyOnN2PHg/MToyOmMyPHg/UTE8eD8xOjM6d3Y8eD8xOjI6ZngoYFx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwM1x1MDAwM1x1MDAwNVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwNlx1MDAwMlxceDA3XFxiXHRcdTAwMDZcblxcdlxcZlxcclx1MDAwRVx1MDAwRlx1MDAxMFx1MDAxMVx1MDAxMlx1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxM1x1MDAxNFx1MDAxNVx1MDAxNlx1MDAxN1x1MDAxOFx1MDAxOVx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMUFcXHgxQlx1MDAxQ1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAxRFx1MDAxRVx1MDAxRlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDNcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMmAseCsxfDApLTF8MH0sS1Y9ZnVuY3Rpb24oeCl7cmV0dXJuIDM1PHg/SHI8eD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwNFx1MDAwNFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLHgrZjJ8MCktMXwwOi0xfSxCVj1mdW5jdGlvbih4KXtyZXR1cm4gcGE8eD94bDx4Py0xOjA6LTF9LFV5PWZ1bmN0aW9uKHgpe3JldHVybiAzNTx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcdTAwMDNcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDRcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K2YyfDApLTF8MDotMX0seGU9ZnVuY3Rpb24oeCl7cmV0dXJuIDQ3PHg/SXQ8eD8tMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwM1xcMFxcMFxcMFxcMFxcMFx1MDAwMlwiLHgrWTF8MCktMXwwOi0xfSxqeT1mdW5jdGlvbih4KXtyZXR1cm4gNDI8eD81Nzx4Py0xOmZ4KFwiXHUwMDAxXFwwXHUwMDAxXFwwXFwwXHUwMDAyXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXHUwMDAzXCIseCtQOXwwKS0xfDA6LTF9LFdWPWZ1bmN0aW9uKHgpe3JldHVybiA0Nzx4P0pmPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDJcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcIix4K1kxfDApLTF8MDotMX0sTG89ZnVuY3Rpb24oeCl7cmV0dXJuIDQ1PHg/OTU8eD8tMTpmeChcIlx1MDAwMVxcMFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwM1wiLHgrTnZ8MCktMXwwOi0xfSxNbz1mdW5jdGlvbih4KXtyZXR1cm4gTnM8eD9wbzx4Py0xOjA6LTF9LFpWPWZ1bmN0aW9uKHgpe3JldHVybiA0Njx4PzQ3PHg/LTE6MDotMX0sJFY9ZnVuY3Rpb24oeCl7cmV0dXJuIDU3PHg/NTg8eD8tMTowOi0xfSxhcj1mdW5jdGlvbih4KXtyZXR1cm4gMzU8eD9Icjx4Py0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIseCtmMnwwKS0xfDA6LTF9LEZWPWZ1bmN0aW9uKHgpe3JldHVybiAzNDx4P0hyPHg/LTE6ZngoXCJcdTAwMDFcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcIix4LTM1fDApLTF8MDotMX0sYlQwPWZ1bmN0aW9uKHgpe3JldHVybiBQdjx4P3V3PHg/LTE6QlA8eD9yODx4P2tBPHg/aV88eD9nRTx4PzE6NjpyUDx4P05QPHg/bzk8eD8xOjY6ckE8eD8xOjY6T1M8eD9lVDx4PzE6Njp1QTx4PzE6NjpFNTx4P2xkPHg/ejQ8eD8kODx4P1I4PHg/WTg8eD9ZQTx4PzE6Njptazx4PzE6NjpxOTx4P3ZfPHg/MTo2OndOPHg/MTo2OkVwPHg/UGQ8eD9YUDx4PzE6Njp1cDx4PzE6NjphODx4P0xDPHg/MTo2OllQPHg/MTo2OmRkPHg/X048eD9XNTx4P3ZrPHg/MTo2Ok5OPHg/MTo2OnpwPHg/WjQ8eD8xOjY6bEU8eD8xOjY6QWQ8eD9HNTx4P1E0PHg/MTo2Olg0PHg/MTo2Om44PHg/RnA8eD8xOjY6bHA8eD8xOjY6U2s8eD9DNTx4P2RwPHg/dFA8eD9kNTx4PzE6Njpncjx4PzE6NjpTODx4P25rPHg/MTo2OmxfPHg/MTo2Ol9wPHg/YTU8eD9hZDx4PzE6NjptNTx4PzE6NjpJazx4P001PHg/MTo2OlI1PHg/MTo2OnA1PHg/VnA8eD9XODx4P3o4PHg/MTo2OlI0PHg/MTo2OnhwPHg/a1Q8eD8xOjY6WGc8eD8xOjY6SjU8eD9XQzx4P3E0PHg/MTo2OmpwPHg/MTo2OnBkPHg/eUU8eD8xOjY6cFM8eD8xOjY6QWg8eD9nUzx4P1FOPHg/ZEM8eD8kUDx4P1JTPHg/MTo2OmJQPHg/MTo2Omd3PHg/SE48eD8xOjY6S2g8eD8xOjY6ZWs8eD9QaDx4P1JQPHg/MTo2OldQPHg/MTo2OmE5PHg/eVM8eD8xOjY6UVA8eD8xOjY6Zl88eD92Zzx4P3pFPHg/bl88eD8xOjY6Rmg8eD8xOjY6RUE8eD9ocDx4PzE6Njp2STx4PzE6NjpfUzx4P1VOPHg/SFM8eD8xOjY6MTo2OmI4PHg/VTU8eD9GODx4P3lkPHg/cGg8eD8xOjY6Umg8eD8xOjY6Z2Q8eD9uUzx4PzE6NjpTVDx4PzE6NjpHNDx4P25kPHg/V0U8eD8xOjY6VEU8eD8xOjY6WTQ8eD9vUDx4PzE6NjpEXzx4PzE6NjpEcDx4P3ZkPHg/azg8eD9fdzx4PzE6NjpJRTx4PzE6NjpKQzx4P3pOPHg/MTo2OnFQPHg/MTo2OmI1PHg/eEk8eD9QUDx4PzE6NjpMcDx4PzE6NjpKcDx4P3VQPHg/MTo2OnprPHg/MTo2OmFTPHg/VTg8eD9Rdzx4P1pwPHg/QXA8eD8kcDx4P3M1PHg/clQ8eD8xOjY6R048eD8xOjY6ZGc8eD9NRTx4PzE6NjpwOTx4PzE6NjprNTx4P241PHg/YUE8eD8xOjY6bHc8eD8xOjY6Q3A8eD9JNTx4PzE6NjpiZzx4PzE6NjpPODx4P0FBPHg/bVQ8eD9EMzx4PzE6Njpydzx4PzE6NjokRTx4P05kPHg/MTo2OlVnPHg/MTo2OlFBPHg/TTQ8eD9ySTx4PzE6NjprRTx4PzE6Njp1Zzx4P2tOPHg/MTo2Onp3PHg/MTo2OmpUPHg/Uzk8eD9LOTx4P3c5PHg/RFA8eD8xOjY6d0E8eD8xOjY6S0U8eD96VDx4PzE6NjpZTjx4PzE6NjpzXzx4P05FPHg/Z0E8eD8xOjY6dU48eD8xOjY6TEU8eD96Zzx4PzE6NjpLQzx4PzE6Njpmazx4P3lQPHg/RkM8eD9ZOTx4PzE6NjpGVDx4PzE6Njp4aDx4P2hrPHg/MTo2OkNQPHg/MTo2Om9BPHg/cXA8eD9PcDx4PzE6NjpWazx4PzE6Njp4dzx4P2lOPHg/MTo2OnBQPHg/MTo2OldnPHg/RVQ8eD9HUzx4P0ZnPHg/aWc8eD9ZQzx4PzE6NjpqaDx4PzE6NjpIdzx4P2lQPHg/MTo2Ok9DPHg/MTo2OlJDPHg/JFQ8eD9CRTx4PzE6NjptOTx4PzE6NjpKdzx4P0hDPHg/MTo2OmVJPHg/MTo2OmVDPHg/UV88eD9mRTx4P19BPHg/MTo2Ol9fPHg/MTo2OlN3PHg/Znc8eD8xOjY6QkE8eD8xOjY6T2s8eD9Vazx4P29OPHg/MTo2OlhBPHg/MTo2OkprPHg/b1M8eD8xOjY6bGs8eD8xOjY6aDU8eD9JODx4P01BPHg/akU8eD9wQzx4PzE6NjpNQzx4PzE6Njp3Zzx4P0JfPHg/MTo2OmRBPHg/MTo2OkNnPHg/aWQ8eD9VVDx4PzE6NjpyUzx4PzE6NjpUQTx4P1I5PHg/MTo2OkdfPHg/MTo2OlRnPHg/Tmg8eD8kNDx4P2V3PHg/MTo2OnVDPHg/MTo2OkxBPHg/V2s8eD8xOjY6SEE8eD8xOjY6S2c8eD94NTx4P0VTPHg/MTo2OnJOPHg/MTo2Om5UPHg/ZkE8eD8xOjY6dDg8eD8xOjY6akE8eD9oQzx4P0JnPHg/RVA8eD92UDx4P3FfPHg/UFM8eD8xOjY6dTU8eD8xOjY6VF88eD9QXzx4PzE6NjpkUDx4PzE6NjpFODx4P0VrPHg/ZWQ8eD8xOjY6TzQ8eD8xOjY6Rjk8eD9rUDx4PzE6NjpBazx4PzE6Njp4Zzx4P1loPHg/Y188eD94QTx4PzE6NjpPdzx4PzE6NjphXzx4PyRoPHg/MTo2OkloPHg/MTo2OlZBPHg/dEE8eD9WUDx4PzE6NjpKZzx4PzE6Njp0dzx4P1h3PHg/MTo2OmlBPHg/MTo2OnRrPHg/R1Q8eD95OTx4P0ZFPHg/Smg8eD8xOjY6Yzk8eD8xOjY6T0U8eD94VDx4PzE6NjpKOTx4PzE6NjpxaDx4P3loPHg/ZV88eD8xOjY6Qzk8eD8xOjY6a0M8eD9LcDx4PzE6NjpOXzx4PzE6NjpiQTx4P2l3PHg/aXI8eD9Sdzx4PzE6NjpjaDx4PzE6NjpfNTx4P3k1PHg/MTo2OnpfPHg/MTo2OlY1PHg/eUE8eD9fZzx4PzE6NjpSTjx4PzE6Njpadzx4P3VTPHg/MTo2OmQ5PHg/MTo2OnhkPHg/dkU8eD9fZDx4P0w5PHg/Z0M8eD9RQzx4PzE6NjpTZDx4PzE6NjpqUzx4P2ZTPHg/MTo2Om1JPHg/MTo2OkM4PHg/cHA8eD9NTjx4PzE6Njp1aDx4PzE6NjpJUDx4P3VUPHg/MTo2OkhQPHg/MTo2OnE4PHg/eU48eD9OODx4P2NBPHg/MTo2OkU5PHg/MTo2Okg0PHg/Yjk8eD8xOjY6T2c8eD8xOjY6Xzg8eD9jcDx4PyRDPHg/MTo2Omk1PHg/MTo2OmN3PHg/WV88eD8xOjY6UTk8eD8xOjY6aGc8eD9mOTx4P0s0PHg/Wmc8eD95azx4PzE6NjpUZDx4PzE6Njp5dzx4P2w5PHg/MTo2OmhOPHg/MTo2OlBnPHg/c3c8eD9hSTx4PzE6NjpGNDx4PzE6NjpMZzx4P0x3PHg/MTo2Om84PHg/MTo2OkJDPHg/Y1M8eD9Iazx4P2o4PHg/MTo2OkJrPHg/MTo2Om5BPHg/aWg8eD8xOjY6YVA8eD8xOjY6a3A8eD9GQTx4P0doPHg/MTo2OkNfPHg/MTo2OnpTPHg/ZVM8eD8xOjY6UEE8eD8xOjY6X0M8eD9xUzx4PyQ5PHg/VjQ8eD9TTjx4P0RoPHg/c1M8eD9wSTx4P005PHg/MTo2OnFFPHg/MTo2OnNoPHg/RlA8eD8xOjY6Zjg8eD8xOjY6RGc8eD9wdzx4P2JUPHg/MTo2OktfPHg/MTo2OlNQPHg/STk8eD8xOjY6S3c8eD8xOjY6al88eD9tQzx4P2hfPHg/ZHc8eD8xOjY6Wmg8eD8xOjY6bV88eD9LVDx4PzE6Njokdzx4PzE6NjpqZzx4P3RnPHg/dTk8eD8xOjY6Qk48eD8xOjY6V188eD9rZzx4PzE6NjpsSTx4PzE6NjpvRTx4P3dkPHg/djk8eD9WQzx4P19FPHg/MTo2OlhfPHg/MTo2OiROPHg/b2c8eD8xOjY6dlM8eD8xOjY6aVQ8eD9mcDx4P2J3PHg/MTo2OnJDPHg/MTo2OmF3PHg/Q2Q8eD8xOjY6SUM8eD8xOjY6a2Q8eD91azx4P2JTPHg/Y2s8eD8xOjY6aDk8eD8xOjY6Zk48eD9vVDx4PzE6NjpLazx4PzE6NjpIXzx4P09OPHg/bFA8eD8xOjY6REM8eD8xOjY6QU48eD9HZzx4PzE6Njpzazx4PzE6Njphazx4P2hTPHg/cUM8eD9ZNTx4P1ZOPHg/RjU8eD8xOjY6c048eD8xOjY6djU8eD9lRTx4PzE6NjpmZDx4PzE6NjpVUDx4P1FUPHg/UWs8eD8xOjY6bGc8eD8xOjY6U2g8eD91STx4PzE6NjpSQTx4PzE6NjpETjx4P0d3PHg/WlM8eD9LUDx4PzE6NjpXOTx4PzE6NjpnZzx4P0FTPHg/MTo2OlROPHg/MTo2OlNBPHg/UWc8eD9mSTx4PzE6NjpXUzx4PzE6NjpZVDx4P3ZOPHg/MTo2OmtrPHg/MTo2Ok45PHg/cmc8eD9ZZzx4P2lrPHg/d0U8eD8xOjY6WlA8eD8xOjY6SGg8eD9Wdzx4PzE6Njp2Qzx4PzE6NjpVQTx4P01UPHg/WFQ8eD8xOjY6bkk8eD8xOjY6Q2s8eD9Hazx4PzE6NjoxOmZUPHg/YzU8eD9yRTx4PzY6aXY8eD8xOjY6cmg8eD9lQTx4PzE6NjpWVDx4PzE6NjphVDx4P3dfPHg/dEk8eD8xOjY6SWc8eD8xOjY6cEE8eD8xOjY6bzU8eD9tZzx4P3RDPHg/U188eD9HQTx4PzY6d2s8eD9QTjx4PzE6Njpyazx4PzE6NjpYTjx4P0xrPHg/b0k8eD8xOjY6UUU8eD8xOjY6bFM8eD9sTjx4PzE6NjptaDx4PzE6Njp2ODx4P2FwPHg/bDU8eD96UDx4PzE6NjpnaDx4PzE6Njp5ODx4P2VnPHg/MTo2Ok9UPHg/MTo2OldUPHg/SHA8eD9nOTx4PzE6NjpzZzx4PzE6Njp0VDx4P053PHg/MTo2OklfPHg/MTo2OlB3PHg/TE48eD90Xzx4P3FnPHg/Q0U8eD8xOjY6MTo2OlBFPHg/NjpPNTx4P3lnPHg/MTo2OllTPHg/MTo2OnkxPHg/d3A8eD95djx4P2R2PHg/MToyOkN3PHg/MTo2OnRoPHg/SkE8eD8xOjY6RFM8eD8xOjY6blA8eD9qdzx4P1lFPHg/MTo2OmdfPHg/MTo2OmdOPHg/eUM8eD8xOjY6Z2s8eD8xOjY6bGg8eD9fazx4P3NkPHg/bnA8eD9UcDx4P3RTPHg/MTo2OlV3PHg/MTo2OlE1PHg/Wjg8eD8xOjY6cF88eD8xOjY6Zmg8eD9WODx4P1U5PHg/MTo2OkdDPHg/MTo2OndDPHg/TnA8eD8xOjY6Yl88eD8xOjY6Yk48eD9MXzx4P0FDPHg/V0E8eD8xOjY6RXc8eD8xOjY6TkE8eD9qTjx4PzE6NjpPOTx4PzE6NjokXzx4P1hTPHg/b0M8eD8xOjY6RFQ8eD8xOjY6VHc8eD8xOjY6dV88eD9lODx4P2k4PHg/Y048eD8xOjY6ZTU8eD82Om13PHg/MTo2OmhFPHg/SDg8eD9xdzx4PzE6Njp2QTx4PzE6NjpCdzx4P2prPHg/MTo2OlNDPHg/MTo2OkE5PHg/b188eD9tRTx4P0RBPHg/MTo2OjE6SkU8eD82OlRDPHg/MTo2Om1OPHg/c0k8eD8xOjY6eUk8eD9VQzx4PzE6Njp4Tjx4PzE6NjpfaDx4P0Q4PHg/RGs8eD9tUzx4P3lUPHg/TFM8eD9fVDx4P3BrPHg/MTo2OlQ5PHg/MTo2OlVFPHg/SGc8eD8xOjY6a2g8eD8xOjY6cWs8eD9pUzx4P1Q4PHg/MTo2OjE6NjpJUzx4P0VfPHg/Yms8eD9UUzx4PzE6Njp4RTx4PzE6NjpjZDx4P19QPHg/MTo2OndJPHg/MTo2OkdFPHg/bUE8eD8xOjY6Z1A8eD9BZzx4PzE6NjpTcDx4PzE6NjpxTjx4P0FFPHg/UGs8eD9KXzx4P0g5PHg/MTo2OmFoPHg/MTo2OmFDPHg/bmg8eD8xOjY6ZEU8eD8xOjY6WkM8eD8kNTx4P2xBPHg/MTo2Okw1PHg/MTo2OnhQPHg/Sk48eD8xOjY6Y1Q8eD8xOjY6dEU8eD9rUzx4P0l3PHg/X0k8eD8xOjY6TlQ8eD8xOjY6SlA8eD9sQzx4PzE6Njprdzx4PzE6NjpVXzx4JiZlTjx4PzE6NjpzUDx4P0RFPHg/JEE8eD9qOTx4PzY6ZkM8eD94Uzx4PzE6NjpQVDx4PzE6NjpUazx4P3VFPHg/ekE8eD8xOjY6MTo2OlJrPHg/c0U8eCYmTXc8eD8xOjY6T0E8eD9aazx4P2ZQPHg/MTo2OjE6Wl88eD82OjE6Rk48eD8kZzx4P0I1PHg/NjpBdzx4PzE6NjpNaDx4P3BnPHg/QV88eD8xOjY6V3c8eD8xOjY6emg8eD8xOjY6VlM8eD9udzx4P0NBPHg/MTo2OmhoPHg/MTo2OlY5PHg/VWg8eD82OlJnPHg/MTo2Ok1TPHg/RlM8eD8xOjY6S0E8eD8xOjY6bkM8eD94Qzx4P3doPHg/b2Q8eD9SVDx4P1M1PHg/aUM8eD8xOjY6Vmc8eD8xOjY6d1A8eD8xOjY6TWc8eD9qNTx4P2tJPHg/MTo2OjE6NjpHOTx4P3o5PHg/Y1A8eD9kSTx4PzE6NjoxOjY6c0E8eD9ENDx4P1o5PHg/MTo2Ok9oPHg/MTo2OlhFPHg/MTo2Omw4PHg/RDU8eD9Tdjx4P1g5PHg/Njpsdjx4PzE6MjpScDx4P0VoPHg/MTo2OmhJPHg/MTo2Onc4PHg/ejU8eD9FTjx4PzE6NjpUaDx4PzE6NjpXNDx4P1NTPHg/MTo2OmNDPHg/MTo2OlBDPHg/Ymg8eD9tcDx4P3JfPHg/MTo2OmlJPHg/MTo2OkI4PHg/VFA8eD8xOjY6QTU8eD8xOjY6V048eD9zVDx4P0Q5PHg/MTo2OlU0PHg/MTo2Omo0PHg/TDg8eD8xOjY6JFM8eD8xOjY6WXA8eD9PUDx4P05nPHg/Y0U8eD9wTjx4P3d3PHg/MTo2OkR3PHg/MTo2OmhBPHg/MTo2OldoPHg/U0U8eD82OjE6NjpPXzx4P0FUPHg/RUU8eD91ODx4PzE6NjpuRTx4PzE6NjpNXzx4P2hQPHg/MTo2OjE6NjpkXzx4P25OPHg/b3A8eD9zODx4P1VwPHg/MTo2OmM4PHg/MTo2OlRJPHg/RWQ8eD8xOjY6MTpnODx4P0hFPHg/NjpHcDx4PzE6NjpCUzx4P3dUPHg/MTo2Ok41PHg/MTo2OkVDPHg/Y2c8eD9hRTx4P21kPHg/MTo2OnFBPHg/MTo2Om9rPHg/SDU8eD8xOjY6TTg8eD8xOjY6ZnY8eD9jdjx4P0F2PHg/MToyOnN2PHg/MToyOmMyPHg/UTE8eD8xOjM6d3Y8eD8xOjI6ZngoYFx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwM1x1MDAwM1x1MDAwNVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwNlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDA2XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFxiXHRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcblx1MDAwMlxcdlxcZlxcclx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMEVcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMEZcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAzXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1x1MDAwMlxceDA3XHUwMDAyXFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlxceDA3XHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXFx4MDdcXHgwN1xceDA3XHUwMDAyXFx4MDdcXHgwN1xceDA3XFx4MDdcXHgwN1xceDA3XFx4MDdcdTAwMDJcdTAwMDJcdTAwMDJgLHgrMXwwKS0xfDB9LFFWPWZ1bmN0aW9uKHgpe2Zvcig7Oyl7cHIoeCk7dmFyIHI9bSh4KSxlPUhyPHI/MTpmeChcIlx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwMlx1MDAwNFx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1x1MDAwM1wiLHIrMXwwKS0xfDA7aWYoMzxlPj4+MCl2YXIgdD13KHgpO2Vsc2Ugc3dpdGNoKGUpe2Nhc2UgMDp2YXIgdD0xO2JyZWFrO2Nhc2UgMTp2YXIgdD0yO2JyZWFrO2Nhc2UgMjp2YXIgdD0wO2JyZWFrO2RlZmF1bHQ6aWYoZTAoeCwyKSxNbyhtKHgpKT09PTApe3ZhciB1PVl2KG0oeCkpO2lmKHU9PT0wKXZhciB0PVByKG0oeCkpPT09MCYmUHIobSh4KSk9PT0wJiZQcihtKHgpKT09PTA/MDp3KHgpO2Vsc2UgaWYodT09PTEmJlByKG0oeCkpPT09MClmb3IoOzspe3ZhciBpPVh2KG0oeCkpO2lmKGkhPT0wKXt2YXIgdD1pPT09MT8wOncoeCk7YnJlYWt9fWVsc2UgdmFyIHQ9dyh4KX1lbHNlIHZhciB0PXcoeCl9aWYoMjx0Pj4+MCl0aHJvdyBxMChbMCx3cixqdDBdLDEpO3N3aXRjaCh0KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnJldHVybiAxO2RlZmF1bHQ6aWYoVk8oeFYoeCkpKWNvbnRpbnVlO3JldHVybiBlVih4LDEpLDB9fX0sSnk9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yLXhbM11bMl18MDtyZXR1cm5bMCxUVih4KSxlXX0scWw9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PUp5KHgsZSksdT1KeSh4LHIpO3JldHVyblswLHhbMV0sdSx0XX0saDI9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gSnkoeCxyWzZdKX0sZGU9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gSnkoeCxyWzNdKX0sVnI9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gcWwoeCxyWzZdLHJbM10pfSxHVj1mdW5jdGlvbih4LHIpe3ZhciBlPTA7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpZT0xO2Vsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgMjp2YXIgdD1yWzFdWzFdO2JyZWFrO2Nhc2UgMzpyZXR1cm4gclsxXVsxXTtjYXNlIDQ6dmFyIHQ9clsxXTticmVhaztjYXNlIDU6cmV0dXJuIHJbMV07Y2FzZSA4OnZhciB0PXJbMl07YnJlYWs7Y2FzZSA5OnJldHVybiByWzFdO2Nhc2UgMTA6cmV0dXJuIHJbMV07ZGVmYXVsdDplPTF9cmV0dXJuIGU/VnIoeCx4WzJdKTp0fSxfMj1mdW5jdGlvbih4LHIsZSl7cmV0dXJuWzAseFsxXSx4WzJdLHhbM10seFs0XSx4WzVdLFswLFswLHIsZV0seFs2XV0seFs3XV19LHFWPWZ1bmN0aW9uKHgscixlKXtyZXR1cm4gXzIoeCxyLFsyNCxseShlKV0pfSxxTz1mdW5jdGlvbih4LHIsZSx0KXtyZXR1cm4gXzIoeCxyLFsyNSxlLHRdKX0sdnQ9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gXzIoeCxyLGVzMCl9LHoyPWZ1bmN0aW9uKHgscil7dmFyIGU9clszXSx0PVswLFRWKHgpKzF8MCxlXTtyZXR1cm5bMCx4WzFdLHhbMl0sdCx4WzRdLHhbNV0seFs2XSx4WzddXX0sS3Q9ZnVuY3Rpb24oeCxyLGUsdCx1KXt2YXIgaT1bMCx4WzFdLHIsZV0sZj1VMSh0KSxvPXU/MDoxO3JldHVyblswLGksWzAsbyxmLHhbN11bM11bMV08aVsyXVsxXT8xOjBdXX0sQnQ9ZnVuY3Rpb24oeCxyKXt2YXIgZT1abChyKTtzd2l0Y2goeCl7Y2FzZSAxOnRyeXt2YXIgdD1WZChTbChGeChIYzAsZSkpKSx1PXR9Y2F0Y2goayl7dmFyIGk9QzEoayk7aWYoaVsxXSE9PV9uKXRocm93IHEwKGksMCk7dmFyIHU9T3goRngoYmMwLGUpKX1icmVhaztjYXNlIDA6Y2FzZSAzOnRyeXt2YXIgZj1WZChTbChlKSksdT1mfWNhdGNoKGspe3ZhciBvPUMxKGspO2lmKG9bMV0hPT1fbil0aHJvdyBxMChvLDApO3ZhciB1PU94KEZ4KHhzMCxlKSl9YnJlYWs7ZGVmYXVsdDp0cnl7dmFyIGw9VUkoZSksdT1sfWNhdGNoKGspe3ZhciBkPUMxKGspO2lmKGRbMV0hPT1fbil0aHJvdyBxMChkLDApO3ZhciB1PU94KEZ4KHJzMCxlKSl9fXJldHVyblsxMix4LHUsZV19LFd0PWZ1bmN0aW9uKHgscil7dmFyIGU9WmwociksdD1YeChlKSx1PTA7aWYodCE9PTAmJlYxPT09TjEoZSx0LTF8MCkpe3ZhciBpPW0yKGUsMCx0LTF8MCk7dT0xfWlmKCF1KXZhciBpPWU7cmV0dXJuWzEzLHgsdVkoaSksZV19LEhWPWZ1bmN0aW9uKHgscixlKXtyZXR1cm4gVk8oZSk/eDpfMih4LHIsMzIpfSxiVj1mdW5jdGlvbih4LHIsZSx0LHUpe3ZhciBpPXFsKHgscitlWzZdfDAscitlWzNdfDApO3JldHVyblswLGksV2woZSx0LChjeShlKS10fDApLXV8MCldfSx4ej1mdW5jdGlvbih4LHIpe2Zvcih2YXIgZT14WzJdWzZdLHQ9WzAscixyLmxlbmd0aC0xLGJZLEhZLHFZLEdZLFFZLEZZLCRZLFpZLFdZLEJZXSx1PVpyKHIubGVuZ3RoLTEpLGk9eDs7KXtwcih0KTt2YXIgZj1tKHQpLG89OTI8Zj8xOmZ4KFwiXHUwMDAxXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAzXCIsZisxfDApLTF8MDtpZigyPG8+Pj4wKXZhciBsPXcodCk7ZWxzZSBzd2l0Y2gobyl7Y2FzZSAwOnZhciBsPTI7YnJlYWs7Y2FzZSAxOmZvcig7Oyl7ZTAodCwzKTt2YXIgZD1tKHQpLGs9LTE8ZD85MTxkPzkyPGQ/MDotMTowOi0xO2lmKGshPT0wKXt2YXIgbD13KHQpO2JyZWFrfX1icmVhaztkZWZhdWx0OmlmKGUwKHQsMyksTW8obSh0KSk9PT0wKXt2YXIgaD1ZdihtKHQpKTtpZihoPT09MCl2YXIgbD1QcihtKHQpKT09PTAmJlByKG0odCkpPT09MCYmUHIobSh0KSk9PT0wPzA6dyh0KTtlbHNlIGlmKGg9PT0xJiZQcihtKHQpKT09PTApZm9yKDs7KXt2YXIgZz1YdihtKHQpKTtpZihnIT09MCl7dmFyIGw9Zz09PTE/MTp3KHQpO2JyZWFrfX1lbHNlIHZhciBsPXcodCl9ZWxzZSB2YXIgbD13KHQpfWlmKDM8bD4+PjApcmV0dXJuIE94KFFjMCk7c3dpdGNoKGwpe2Nhc2UgMDp2YXIgQT1iVihpLGUsdCwyLDApLE49QVsxXSxDPWZ0KEZ4KEdjMCxBWzJdKSksTz0wPD1DPzE6MCxMPU8mJihDPD01NTI5NT8xOjApO2lmKEwpdmFyIFY9TDtlbHNlIHZhciBNPTU3MzQ0PD1DPzE6MCxWPU0mJihDPD1mNT8xOjApO3ZhciB6PVY/SFYoaSxOLEMpOl8yKGksTiwzMik7YmModSxDKTt2YXIgaT16O2NvbnRpbnVlO2Nhc2UgMTp2YXIgWT1iVihpLGUsdCwzLDEpLHQwPVlbMV0saTA9ZnQoRngocWMwLFlbMl0pKSxqPUhWKGksdDAsaTApO2JjKHUsaTApO3ZhciBpPWo7Y29udGludWU7Y2FzZSAyOnJldHVyblswLGksVTEodSldO2RlZmF1bHQ6c3kodCx1KTtjb250aW51ZX19fSxBMT1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9dnQoeCxWcih4LHIpKTtyZXR1cm4gJGEocikscChlLHQscil9LFZ2PWZ1bmN0aW9uKHgscixlKXtmb3IodmFyIHQ9eDs7KXtwcihlKTt2YXIgdT1tKGUpLGk9LTE8dT80Mjx1P1ExPHU/MDpjMjx1PzE6MDpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwMVx1MDAwMVx1MDAwM1x1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNFwiLHUpLTF8MDotMTtpZigzPGk+Pj4wKXZhciBmPXcoZSk7ZWxzZSBzd2l0Y2goaSl7Y2FzZSAwOmZvcig7Oyl7ZTAoZSwzKTt2YXIgbz1tKGUpLGw9LTE8bz80MTxvPzQyPG8/YzI8bz9RMTxvPzA6LTE6MDotMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLG8pLTF8MDotMTtpZihsIT09MCl7dmFyIGY9dyhlKTticmVha319YnJlYWs7Y2FzZSAxOnZhciBmPTA7YnJlYWs7Y2FzZSAyOmUwKGUsMCk7dmFyIGY9cGUobShlKSk9PT0wPzA6dyhlKTticmVhaztkZWZhdWx0OmUwKGUsMyk7dmFyIGQ9bShlKSxrPTQ0PGQ/NDc8ZD8tMTpmeChcIlx1MDAwMVxcMFx1MDAwMlwiLGQrcEV8MCktMXwwOi0xLGY9az09PTA/WlYobShlKSk9PT0wPzI6dyhlKTprPT09MT8xOncoZSl9aWYoMzxmPj4+MCl7dmFyIGg9dnQodCxWcih0LGUpKTtyZXR1cm5bMCxoLGRlKGgsZSldfXN3aXRjaChmKXtjYXNlIDA6dmFyIGc9ejIodCxlKTtzeShlLHIpO3ZhciB0PWc7Y29udGludWU7Y2FzZSAxOnZhciBBPXRbNF0/cU8odCxWcih0LGUpLFl0MCxYdDApOnQ7cmV0dXJuWzAsQSxkZShBLGUpXTtjYXNlIDI6aWYodFs0XSlyZXR1cm5bMCx0LGRlKHQsZSldO3ZyKHIsVnQwKTtjb250aW51ZTtkZWZhdWx0OnN5KGUscik7Y29udGludWV9fX0sSGE9ZnVuY3Rpb24oeCxyLGUpe2Zvcig7Oyl7cHIoZSk7dmFyIHQ9bShlKSx1PTEzPHQ/UTE8dD8xOmMyPHQ/MjoxOmZ4KFwiXHUwMDAxXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAzXHUwMDAyXHUwMDAyXHUwMDA0XCIsdCsxfDApLTF8MDtpZigzPHU+Pj4wKXZhciBpPXcoZSk7ZWxzZSBzd2l0Y2godSl7Y2FzZSAwOnZhciBpPTA7YnJlYWs7Y2FzZSAxOmZvcig7Oyl7ZTAoZSwyKTt2YXIgZj1tKGUpLG89LTE8Zj8xMjxmPzEzPGY/YzI8Zj9RMTxmPzA6LTE6MDotMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVwiLGYpLTF8MDotMTtpZihvIT09MCl7dmFyIGk9dyhlKTticmVha319YnJlYWs7Y2FzZSAyOnZhciBpPTE7YnJlYWs7ZGVmYXVsdDplMChlLDEpO3ZhciBpPXBlKG0oZSkpPT09MD8xOncoZSl9aWYoMjxpPj4+MClyZXR1cm4gT3goenQwKTtzd2l0Y2goaSl7Y2FzZSAwOnJldHVyblswLHgsZGUoeCxlKV07Y2FzZSAxOnZhciBsPWRlKHgsZSksZD1sWzJdLGs9bFsxXSxoPXoyKHgsZSk7cmV0dXJuWzAsaCxbMCxrLGQtY3koZSl8MF1dO2RlZmF1bHQ6c3koZSxyKTtjb250aW51ZX19fSxyej1mdW5jdGlvbih4LHIpe2Z1bmN0aW9uIGUodDApe3JldHVybiBlMCh0MCwzKSxWMihtKHQwKSk9PT0wPzI6dyh0MCl9cHIocik7dmFyIHQ9bShyKSx1PUFmPHQ/UTE8dD8xOmMyPHQ/MjoxOmZ4KGBcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDVcdTAwMDZcdTAwMDZcdTAwMDZcdTAwMDZcdTAwMDZcdTAwMDZcdTAwMDZcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlxcYlx1MDAwMlx1MDAwMlx1MDAwMlx0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXG5cdTAwMDJcdTAwMDJcdTAwMDJcXHZcdTAwMDJcXGZcXHJcdTAwMEVcdTAwMDJcdTAwMEZgLHQrMXwwKS0xfDA7aWYoMTQ8dT4+PjApdmFyIGk9dyhyKTtlbHNlIHN3aXRjaCh1KXtjYXNlIDA6dmFyIGk9MDticmVhaztjYXNlIDE6dmFyIGk9MTY7YnJlYWs7Y2FzZSAyOnZhciBpPTE1O2JyZWFrO2Nhc2UgMzplMChyLDE1KTt2YXIgaT1wZShtKHIpKT09PTA/MTU6dyhyKTticmVhaztjYXNlIDQ6ZTAociw0KTt2YXIgaT1WMihtKHIpKT09PTA/ZShyKTp3KHIpO2JyZWFrO2Nhc2UgNTplMChyLDExKTt2YXIgaT1WMihtKHIpKT09PTA/ZShyKTp3KHIpO2JyZWFrO2Nhc2UgNjp2YXIgaT0wO2JyZWFrO2Nhc2UgNzp2YXIgaT01O2JyZWFrO2Nhc2UgODp2YXIgaT02O2JyZWFrO2Nhc2UgOTp2YXIgaT03O2JyZWFrO2Nhc2UgMTA6dmFyIGk9ODticmVhaztjYXNlIDExOnZhciBpPTk7YnJlYWs7Y2FzZSAxMjplMChyLDE0KTt2YXIgZj1ZdihtKHIpKTtpZihmPT09MCl2YXIgaT1QcihtKHIpKT09PTAmJlByKG0ocikpPT09MCYmUHIobShyKSk9PT0wPzEyOncocik7ZWxzZSBpZihmPT09MSYmUHIobShyKSk9PT0wKWZvcig7Oyl7dmFyIG89WHYobShyKSk7aWYobyE9PTApe3ZhciBpPW89PT0xPzEzOncocik7YnJlYWt9fWVsc2UgdmFyIGk9dyhyKTticmVhaztjYXNlIDEzOnZhciBpPTEwO2JyZWFrO2RlZmF1bHQ6ZTAociwxNCk7dmFyIGk9UHIobShyKSk9PT0wJiZQcihtKHIpKT09PTA/MTp3KHIpfWlmKDE2PGk+Pj4wKXJldHVybiBPeChEYzApO3N3aXRjaChpKXtjYXNlIDA6dmFyIGw9WXgocik7cmV0dXJuWzAseCxsLHQxKHIpLDBdO2Nhc2UgMTp2YXIgZD1ZeChyKTtyZXR1cm5bMCx4LGQsWzAsZnQoRngoVWMwLGQpKV0sMF07Y2FzZSAyOnZhciBrPVl4KHIpLGg9ZnQoRngoamMwLGspKTtyZXR1cm4gaHY8PWg/WzAseCxrLFswLGg+Pj4zfDAsNDgrKGgmNyl8MF0sMV06WzAseCxrLFswLGhdLDFdO2Nhc2UgMzp2YXIgZz1ZeChyKTtyZXR1cm5bMCx4LGcsWzAsZnQoRngoSmMwLGcpKV0sMV07Y2FzZSA0OnJldHVyblswLHgsWGMwLFswLDBdLDBdO2Nhc2UgNTpyZXR1cm5bMCx4LFljMCxbMCw4XSwwXTtjYXNlIDY6cmV0dXJuWzAseCxWYzAsWzAsMTJdLDBdO2Nhc2UgNzpyZXR1cm5bMCx4LHpjMCxbMCwxMF0sMF07Y2FzZSA4OnJldHVyblswLHgsS2MwLFswLDEzXSwwXTtjYXNlIDk6cmV0dXJuWzAseCxCYzAsWzAsOV0sMF07Y2FzZSAxMDpyZXR1cm5bMCx4LFdjMCxbMCwxMV0sMF07Y2FzZSAxMTp2YXIgQT1ZeChyKTtyZXR1cm5bMCx4LEEsWzAsZnQoRngoWmMwLEEpKV0sMV07Y2FzZSAxMjp2YXIgTj1ZeChyKTtyZXR1cm5bMCx4LE4sWzAsZnQoRngoJGMwLG0yKE4sMSxYeChOKS0xfDApKSldLDBdO2Nhc2UgMTM6dmFyIEM9WXgociksTz1mdChGeChGYzAsbTIoQywyLFh4KEMpLTN8MCkpKSxMPWY1PE8/dnQoeCxWcih4LHIpKTp4O3JldHVyblswLEwsQyxbMCxPXSwwXTtjYXNlIDE0OnZhciBNPVl4KHIpLFY9dDEocik7cmV0dXJuWzAsdnQoeCxWcih4LHIpKSxNLFYsMF07Y2FzZSAxNTp2YXIgej1ZeChyKTtyZXR1cm5bMCx6Mih4LHIpLHosWzBdLDBdO2RlZmF1bHQ6dmFyIFk9WXgocik7cmV0dXJuWzAseCxZLHQxKHIpLDBdfX0sZXo9ZnVuY3Rpb24oeCxyLGUsdCx1LGkpe2Zvcih2YXIgZj14LG89dTs7KXtwcihpKTt2YXIgbD1tKGkpLGQ9OTI8bD8xOmZ4KFwiXHUwMDAxXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAzXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDA0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDA0XHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDAyXHUwMDA1XCIsbCsxfDApLTF8MDtpZig0PGQ+Pj4wKXZhciBrPXcoaSk7ZWxzZSBzd2l0Y2goZCl7Y2FzZSAwOnZhciBrPTM7YnJlYWs7Y2FzZSAxOmZvcig7Oyl7ZTAoaSw0KTt2YXIgaD1tKGkpLGc9LTE8aD85MTxoPzkyPGg/MDotMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLGgpLTF8MDotMTtpZihnIT09MCl7dmFyIGs9dyhpKTticmVha319YnJlYWs7Y2FzZSAyOnZhciBrPTI7YnJlYWs7Y2FzZSAzOnZhciBrPTA7YnJlYWs7ZGVmYXVsdDp2YXIgaz0xfWlmKDQ8az4+PjApcmV0dXJuIE94KEt0MCk7c3dpdGNoKGspe2Nhc2UgMDp2YXIgQT1ZeChpKTtpZih2cih0LEEpLEFyKHIsQSkpcmV0dXJuWzAsZixkZShmLGkpLG9dO3ZyKGUsQSk7Y29udGludWU7Y2FzZSAxOnZyKHQsQnQwKTt2YXIgTj1yeihmLGkpLEM9Tls0XSxPPU5bM10sTD1OWzJdLE09TlsxXSxWPUN8fG87dnIodCxMKSxuWShmdW5jdGlvbihmMCl7cmV0dXJuIGJjKGUsZjApfSxPKTt2YXIgZj1NLG89Vjtjb250aW51ZTtjYXNlIDI6dmFyIHo9WXgoaSk7dnIodCx6KTt2YXIgWT16Mih2dChmLFZyKGYsaSkpLGkpO3JldHVybiB2cihlLHopLFswLFksZGUoWSxpKSxvXTtjYXNlIDM6dmFyIHQwPVl4KGkpO3ZyKHQsdDApO3ZhciBpMD12dChmLFZyKGYsaSkpO3JldHVybiB2cihlLHQwKSxbMCxpMCxkZShpMCxpKSxvXTtkZWZhdWx0OnZhciBqPWlbNl0sSz1pWzNdLWp8MCxKPXcxKEsqNHwwKSxRPUJsKGlbMV0saixLLEopO2ZPKHQsSiwwLFEpLGZPKGUsSiwwLFEpO2NvbnRpbnVlfX19LHR6PWZ1bmN0aW9uKHgscixlLHQpe2Zvcih2YXIgdT14Ozspe3ByKHQpO3ZhciBpPW0odCksZj05NjxpPzE6ZngoXCJcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDVcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDZcdTAwMDJcdTAwMDJcdTAwMDJcXHgwN1wiLGkrMXwwKS0xfDA7aWYoNjxmPj4+MCl2YXIgbz13KHQpO2Vsc2Ugc3dpdGNoKGYpe2Nhc2UgMDp2YXIgbz0wO2JyZWFrO2Nhc2UgMTpmb3IoOzspe2UwKHQsNik7dmFyIGw9bSh0KSxkPS0xPGw/OTU8bD85NjxsPzA6LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcIixsKS0xfDA6LTE7aWYoZCE9PTApe3ZhciBvPXcodCk7YnJlYWt9fWJyZWFrO2Nhc2UgMjp2YXIgbz01O2JyZWFrO2Nhc2UgMzplMCh0LDUpO3ZhciBvPXBlKG0odCkpPT09MD80OncodCk7YnJlYWs7Y2FzZSA0OmUwKHQsNik7dmFyIGs9bSh0KSxoPUhyPGs/UnQ8az8tMTowOi0xLG89aD09PTA/Mjp3KHQpO2JyZWFrO2Nhc2UgNTp2YXIgbz0zO2JyZWFrO2RlZmF1bHQ6dmFyIG89MX1pZig2PG8+Pj4wKXJldHVybiBPeChXdDApO3N3aXRjaChvKXtjYXNlIDA6cmV0dXJuWzAsdnQodSxWcih1LHQpKSwxXTtjYXNlIDE6cmV0dXJuWzAsdSwxXTtjYXNlIDI6cmV0dXJuWzAsdSwwXTtjYXNlIDM6c3QoZSw5Mik7dmFyIGc9cnoodSx0KSxBPWdbM10sTj1nWzFdO3ZyKGUsZ1syXSksblkoZnVuY3Rpb24oTCl7cmV0dXJuIGJjKHIsTCl9LEEpO3ZhciB1PU47Y29udGludWU7Y2FzZSA0OnZyKGUsWnQwKSx2cihyLCR0MCk7dmFyIHU9ejIodSx0KTtjb250aW51ZTtjYXNlIDU6dnIoZSxZeCh0KSksc3QociwxMCk7dmFyIHU9ejIodSx0KTtjb250aW51ZTtkZWZhdWx0OnZhciBDPVl4KHQpO3ZyKGUsQyksdnIocixDKTtjb250aW51ZX19fSx4UzA9ZnVuY3Rpb24oeCxyKXtmdW5jdGlvbiBlKF8pe2Zvcig7OylpZihlMChfLDMzKSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gdChfKXtlMChfLDMyKTt2YXIgYj1PMShtKF8pKTtpZihiIT09MClyZXR1cm4gYj09PTE/ZShfKTp3KF8pO2Zvcig7OylpZihlMChfLDMwKSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gdShfKXtlMChfLDMxKTt2YXIgYj1PMShtKF8pKTtpZihiIT09MClyZXR1cm4gYj09PTE/ZShfKTp3KF8pO2Zvcig7OylpZihlMChfLDI5KSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gaShfKXtlMChfLDM0KTt2YXIgYj1RYShtKF8pKTtpZigyPGI+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuIGUoXyk7Y2FzZSAxOmZvcig7Oyl7ZTAoXywzNCk7dmFyIHIwPXRzKG0oXykpO2lmKDM8cjA+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChyMCl7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6eDpmb3IoOzspe2lmKGRyKG0oXykpIT09MClyZXR1cm4gdyhfKTtmb3IoOzspe2UwKF8sMzQpO3ZhciBTMD10cyhtKF8pKTtpZigzPFMwPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2goUzApe2Nhc2UgMDpyZXR1cm4gZShfKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gdShfKX19fWRlZmF1bHQ6cmV0dXJuIHUoXyl9fWRlZmF1bHQ6cmV0dXJuIHUoXyl9fWZ1bmN0aW9uIGYoXyl7eDpmb3IoOzspe2lmKGRyKG0oXykpIT09MClyZXR1cm4gdyhfKTtmb3IoOzspe2UwKF8sMzQpO3ZhciBiPVlWKG0oXykpO2lmKDQ8Yj4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKGIpe2Nhc2UgMDpyZXR1cm4gZShfKTtjYXNlIDE6cmV0dXJuIGkoXyk7Y2FzZSAyOmNvbnRpbnVlO2Nhc2UgMzpjb250aW51ZSB4O2RlZmF1bHQ6cmV0dXJuIHQoXyl9fX19ZnVuY3Rpb24gbyhfKXtmb3IoOzspaWYoZTAoXywyMyksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfWZ1bmN0aW9uIGwoXyl7Zm9yKDs7KWlmKGUwKF8sMjMpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX1mdW5jdGlvbiBkKF8pe2Zvcig7OylpZihlMChfLDE1KSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gayhfKXtmb3IoOzspaWYoZTAoXywxNSksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfWZ1bmN0aW9uIGgoXyl7Zm9yKDs7KWlmKGUwKF8sMTEpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX1mdW5jdGlvbiBnKF8pe2Zvcig7OylpZihlMChfLDExKSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gQShfKXtmb3IoOzspaWYoZTAoXywxNyksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfWZ1bmN0aW9uIE4oXyl7Zm9yKDs7KWlmKGUwKF8sMTcpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX1mdW5jdGlvbiBDKF8pe2Zvcig7OylpZihlMChfLDE5KSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9ZnVuY3Rpb24gTyhfKXtmb3IoOzspaWYoZTAoXywyNyksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfWZ1bmN0aW9uIEwoXyl7ZTAoXywyNik7dmFyIGI9TzEobShfKSk7aWYoYiE9PTApcmV0dXJuIGI9PT0xP08oXyk6dyhfKTtmb3IoOzspaWYoZTAoXywyNSksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfWZ1bmN0aW9uIE0oXyl7Zm9yKDs7KWlmKGUwKF8sMjcpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX1mdW5jdGlvbiBWKF8pe2UwKF8sMjYpO3ZhciBiPU8xKG0oXykpO2lmKGIhPT0wKXJldHVybiBiPT09MT9NKF8pOncoXyk7Zm9yKDs7KWlmKGUwKF8sMjUpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX1mdW5jdGlvbiB6KF8pe3g6Zm9yKDs7KXtpZihkcihtKF8pKSE9PTApcmV0dXJuIHcoXyk7Zm9yKDs7KXtlMChfLDI4KTt2YXIgYj10cyhtKF8pKTtpZigzPGI+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuIE0oXyk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpjb250aW51ZSB4O2RlZmF1bHQ6cmV0dXJuIFYoXyl9fX19ZnVuY3Rpb24gWShfKXtlMChfLDMzKTt2YXIgYj16VihtKF8pKTtpZigzPGI+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuIGUoXyk7Y2FzZSAxOnZhciByMD1JbyhtKF8pKTtpZihyMD09PTApZm9yKDs7KXtlMChfLDI4KTt2YXIgUzA9UWEobShfKSk7aWYoMjxTMD4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKFMwKXtjYXNlIDA6cmV0dXJuIE0oXyk7Y2FzZSAxOmNvbnRpbnVlO2RlZmF1bHQ6cmV0dXJuIFYoXyl9fWlmKHIwIT09MSlyZXR1cm4gdyhfKTtmb3IoOzspe2UwKF8sMjgpO3ZhciBHPXRzKG0oXykpO2lmKDM8Rz4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKEcpe2Nhc2UgMDpyZXR1cm4gTShfKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOnJldHVybiB6KF8pO2RlZmF1bHQ6cmV0dXJuIFYoXyl9fWNhc2UgMjpmb3IoOzspe2UwKF8sMjgpO3ZhciBoMD1RYShtKF8pKTtpZigyPGgwPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2goaDApe2Nhc2UgMDpyZXR1cm4gTyhfKTtjYXNlIDE6Y29udGludWU7ZGVmYXVsdDpyZXR1cm4gTChfKX19ZGVmYXVsdDpmb3IoOzspe2UwKF8sMjgpO3ZhciB6MD10cyhtKF8pKTtpZigzPHowPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2goejApe2Nhc2UgMDpyZXR1cm4gTyhfKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOnJldHVybiB6KF8pO2RlZmF1bHQ6cmV0dXJuIEwoXyl9fX19ZnVuY3Rpb24gdDAoXyl7ZTAoXywzNCk7dmFyIGI9T1YobShfKSk7aWYoMzxiPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpmb3IoOzspe2UwKF8sMzQpO3ZhciByMD1PbyhtKF8pKTtpZig0PHIwPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2gocjApe2Nhc2UgMDpyZXR1cm4gZShfKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOnJldHVybiBZKF8pO2Nhc2UgMzp4OmZvcig7Oyl7aWYoZHIobShfKSkhPT0wKXJldHVybiB3KF8pO2Zvcig7Oyl7ZTAoXywzNCk7dmFyIFMwPU9vKG0oXykpO2lmKDQ8UzA+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChTMCl7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6cmV0dXJuIFkoXyk7Y2FzZSAzOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gdShfKX19fWRlZmF1bHQ6cmV0dXJuIHUoXyl9fWNhc2UgMjpyZXR1cm4gWShfKTtkZWZhdWx0OnJldHVybiB1KF8pfX1mdW5jdGlvbiBpMChfKXtyZXR1cm4gSXkobShfKSk9PT0wJiZBeShtKF8pKT09PTAmJkJWKG0oXykpPT09MCYmTFYobShfKSk9PT0wJiZNVihtKF8pKT09PTAmJkdPKG0oXykpPT09MCYmUWwobShfKSk9PT0wJiZJeShtKF8pKT09PTAmJk1vKG0oXykpPT09MCYmRFYobShfKSk9PT0wJiZHbChtKF8pKT09PTA/Mzp3KF8pfWZ1bmN0aW9uIGooXyl7cmV0dXJuIGUwKF8sMyksJFYobShfKSk9PT0wPzM6dyhfKX1mdW5jdGlvbiBLKF8pe3ZhciBiPXFUMChtKF8pKTtpZigzNjxiPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2goYil7Y2FzZSAwOnJldHVybiA5ODtjYXNlIDE6cmV0dXJuIDk5O2Nhc2UgMjppZihlMChfLDEpLHJzKG0oXykpIT09MClyZXR1cm4gdyhfKTtmb3IoOzspaWYoZTAoXywxKSxycyhtKF8pKSE9PTApcmV0dXJuIHcoXyk7Y2FzZSAzOnJldHVybiAwO2Nhc2UgNDpyZXR1cm4gZTAoXywwKSxwZShtKF8pKT09PTA/MDp3KF8pO2Nhc2UgNTpyZXR1cm4gZTAoXyw4OCksRW4obShfKSk9PT0wPyhlMChfLDU4KSxFbihtKF8pKT09PTA/NTQ6dyhfKSk6dyhfKTtjYXNlIDY6cmV0dXJuIDc7Y2FzZSA3OmUwKF8sOTUpO3ZhciByMD1tKF8pLFMwPTMyPHIwPzMzPHIwPy0xOjA6LTE7cmV0dXJuIFMwPT09MD82OncoXyk7Y2FzZSA4OnJldHVybiA5NztjYXNlIDk6cmV0dXJuIGUwKF8sODQpLEVuKG0oXykpPT09MD83MTp3KF8pO2Nhc2UgMTA6ZTAoXyw4Nik7dmFyIEc9bShfKSxoMD0zNzxHPzYxPEc/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIixHLTM4fDApLTF8MDotMTtyZXR1cm4gaDA9PT0wPyhlMChfLDUxKSxFbihtKF8pKT09PTA/NzY6dyhfKSk6aDA9PT0xPzcyOncoXyk7Y2FzZSAxMTpyZXR1cm4gMzg7Y2FzZSAxMjpyZXR1cm4gMzk7Y2FzZSAxMzplMChfLDgyKTt2YXIgejA9UlYobShfKSk7aWYoMjx6MD4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKHowKXtjYXNlIDA6cmV0dXJuIGUwKF8sODMpLEVuKG0oXykpPT09MD83MDp3KF8pO2Nhc2UgMTpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiA2OX1jYXNlIDE0OmUwKF8sODApO3ZhciBNMD1tKF8pLHV4PTQyPE0wPzYxPE0wPy0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXCIsTTArUDl8MCktMXwwOi0xO3JldHVybiB1eD09PTA/NTk6dXg9PT0xPzY3OncoXyk7Y2FzZSAxNTpyZXR1cm4gNDU7Y2FzZSAxNjplMChfLDgxKTt2YXIgWng9bShfKSxMeD00NDxaeD82MTxaeD8tMTpmeChcIlx1MDAwMVxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFxcMFx1MDAwMlwiLFp4K3BFfDApLTF8MDotMTtyZXR1cm4gTHg9PT0wPzYwOkx4PT09MT82ODp3KF8pO2Nhc2UgMTc6ZTAoXyw0Myk7dmFyIHRyPXFhKG0oXykpO2lmKHRyPT09MClyZXR1cm4gJE8obShfKSk9PT0wPzQyOncoXyk7aWYodHIhPT0xKXJldHVybiB3KF8pO2Zvcig7Oyl7ZTAoXywzNCk7dmFyICR4PU9vKG0oXykpO2lmKDQ8JHg+Pj4wKXJldHVybiB3KF8pO3N3aXRjaCgkeCl7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6cmV0dXJuIFkoXyk7Y2FzZSAzOng6Zm9yKDs7KXtpZihkcihtKF8pKSE9PTApcmV0dXJuIHcoXyk7Zm9yKDs7KXtlMChfLDM0KTt2YXIgeHI9T28obShfKSk7aWYoNDx4cj4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKHhyKXtjYXNlIDA6cmV0dXJuIGUoXyk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpyZXR1cm4gWShfKTtjYXNlIDM6Y29udGludWUgeDtkZWZhdWx0OnJldHVybiB1KF8pfX19ZGVmYXVsdDpyZXR1cm4gdShfKX19Y2FzZSAxODplMChfLDkzKTt2YXIgeng9UlYobShfKSk7aWYoMjx6eD4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKHp4KXtjYXNlIDA6ZTAoXywyKTt2YXIgT3I9X3kobShfKSk7aWYoMjxPcj4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKE9yKXtjYXNlIDA6Zm9yKDs7KXt2YXIgV3g9X3kobShfKSk7aWYoMjxXeD4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKFd4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnJldHVybiBqKF8pO2RlZmF1bHQ6cmV0dXJuIGkwKF8pfX1jYXNlIDE6cmV0dXJuIGooXyk7ZGVmYXVsdDpyZXR1cm4gaTAoXyl9Y2FzZSAxOnJldHVybiA1O2RlZmF1bHQ6cmV0dXJuIDkyfWNhc2UgMTk6ZTAoXywzNCk7dmFyIEIyPWpWKG0oXykpO2lmKDg8QjI+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChCMil7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpyZXR1cm4gdDAoXyk7Y2FzZSAyOmZvcig7Oyl7ZTAoXywyMCk7dmFyIGx0PUtWKG0oXykpO2lmKDQ8bHQ+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChsdCl7Y2FzZSAwOnJldHVybiBDKF8pO2Nhc2UgMTpyZXR1cm4gaShfKTtjYXNlIDI6Y29udGludWU7Y2FzZSAzOmZvcig7Oyl7ZTAoXywxOCk7dmFyIG1lPWh5KG0oXykpO2lmKDM8bWU+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChtZSl7Y2FzZSAwOnJldHVybiBOKF8pO2Nhc2UgMTpyZXR1cm4gaShfKTtjYXNlIDI6Y29udGludWU7ZGVmYXVsdDplMChfLDE3KTt2YXIgUG49TzEobShfKSk7aWYoUG4hPT0wKXJldHVybiBQbj09PTE/TihfKTp3KF8pO2Zvcig7OylpZihlMChfLDE3KSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9fWRlZmF1bHQ6ZTAoXywxOSk7dmFyIHRvPU8xKG0oXykpO2lmKHRvIT09MClyZXR1cm4gdG89PT0xP0MoXyk6dyhfKTtmb3IoOzspaWYoZTAoXywxOSksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfX1jYXNlIDM6Zm9yKDs7KXtlMChfLDE4KTt2YXIgTm49aHkobShfKSk7aWYoMzxObj4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKE5uKXtjYXNlIDA6cmV0dXJuIEEoXyk7Y2FzZSAxOnJldHVybiBpKF8pO2Nhc2UgMjpjb250aW51ZTtkZWZhdWx0OmUwKF8sMTcpO3ZhciBjcz1PMShtKF8pKTtpZihjcyE9PTApcmV0dXJuIGNzPT09MT9BKF8pOncoXyk7Zm9yKDs7KWlmKGUwKF8sMTcpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX19Y2FzZSA0OmUwKF8sMzMpO3ZhciBrZT1VVihtKF8pKTtpZihrZT09PTApcmV0dXJuIGUoXyk7aWYoa2UhPT0xKXJldHVybiB3KF8pO2Zvcig7Oyl7ZTAoXywxMik7dmFyIENuPUR5KG0oXykpO2lmKDM8Q24+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChDbil7Y2FzZSAwOnJldHVybiBnKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6eDpmb3IoOzspe2lmKGVzKG0oXykpIT09MClyZXR1cm4gdyhfKTtmb3IoOzspe2UwKF8sMTIpO3ZhciB0ZT1EeShtKF8pKTtpZigzPHRlPj4+MClyZXR1cm4gdyhfKTtzd2l0Y2godGUpe2Nhc2UgMDpyZXR1cm4gaChfKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOmNvbnRpbnVlIHg7ZGVmYXVsdDplMChfLDEwKTt2YXIgRnQ9TzEobShfKSk7aWYoRnQhPT0wKXJldHVybiBGdD09PTE/aChfKTp3KF8pO2Zvcig7OylpZihlMChfLDkpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX19fWRlZmF1bHQ6ZTAoXywxMCk7dmFyIHlyPU8xKG0oXykpO2lmKHlyIT09MClyZXR1cm4geXI9PT0xP2coXyk6dyhfKTtmb3IoOzspaWYoZTAoXyw5KSxhcihtKF8pKSE9PTApcmV0dXJuIHcoXyl9fWNhc2UgNTpyZXR1cm4gWShfKTtjYXNlIDY6ZTAoXywzMyk7dmFyIFF0PUpWKG0oXykpO2lmKFF0PT09MClyZXR1cm4gZShfKTtpZihRdCE9PTEpcmV0dXJuIHcoXyk7Zm9yKDs7KXtlMChfLDE2KTt2YXIgSW49THkobShfKSk7aWYoMzxJbj4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKEluKXtjYXNlIDA6cmV0dXJuIGsoXyk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjp4OmZvcig7Oyl7aWYoVjIobShfKSkhPT0wKXJldHVybiB3KF8pO2Zvcig7Oyl7ZTAoXywxNik7dmFyIHF2PUx5KG0oXykpO2lmKDM8cXY+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChxdil7Y2FzZSAwOnJldHVybiBkKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6Y29udGludWUgeDtkZWZhdWx0OmUwKF8sMTQpO3ZhciBoZT1PMShtKF8pKTtpZihoZSE9PTApcmV0dXJuIGhlPT09MT9kKF8pOncoXyk7Zm9yKDs7KWlmKGUwKF8sMTMpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX19fWRlZmF1bHQ6ZTAoXywxNCk7dmFyIHB0PU8xKG0oXykpO2lmKHB0IT09MClyZXR1cm4gcHQ9PT0xP2soXyk6dyhfKTtmb3IoOzspaWYoZTAoXywxMyksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfX1jYXNlIDc6ZTAoXywzMyk7dmFyIEtvPVBWKG0oXykpO2lmKEtvPT09MClyZXR1cm4gZShfKTtpZihLbyE9PTEpcmV0dXJuIHcoXyk7Zm9yKDs7KXtlMChfLDI0KTt2YXIgbm89VXkobShfKSk7aWYoMzxubz4+PjApcmV0dXJuIHcoXyk7c3dpdGNoKG5vKXtjYXNlIDA6cmV0dXJuIGwoXyk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjp4OmZvcig7Oyl7aWYoUHIobShfKSkhPT0wKXJldHVybiB3KF8pO2Zvcig7Oyl7ZTAoXywyNCk7dmFyIHYyPVV5KG0oXykpO2lmKDM8djI+Pj4wKXJldHVybiB3KF8pO3N3aXRjaCh2Mil7Y2FzZSAwOnJldHVybiBvKF8pO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6Y29udGludWUgeDtkZWZhdWx0OmUwKF8sMjIpO3ZhciB1bz1PMShtKF8pKTtpZih1byE9PTApcmV0dXJuIHVvPT09MT9vKF8pOncoXyk7Zm9yKDs7KWlmKGUwKF8sMjEpLGFyKG0oXykpIT09MClyZXR1cm4gdyhfKX19fWRlZmF1bHQ6ZTAoXywyMik7dmFyIE9uPU8xKG0oXykpO2lmKE9uIT09MClyZXR1cm4gT249PT0xP2woXyk6dyhfKTtmb3IoOzspaWYoZTAoXywyMSksYXIobShfKSkhPT0wKXJldHVybiB3KF8pfX1kZWZhdWx0OnJldHVybiB0KF8pfWNhc2UgMjA6ZTAoXywzNCk7dmFyIGR0PVR5KG0oXykpO2lmKDU8ZHQ+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChkdCl7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpyZXR1cm4gdDAoXyk7Y2FzZSAyOmZvcig7Oyl7ZTAoXywzNCk7dmFyIEJvPVR5KG0oXykpO2lmKDU8Qm8+Pj4wKXJldHVybiB3KF8pO3N3aXRjaChCbyl7Y2FzZSAwOnJldHVybiBlKF8pO2Nhc2UgMTpyZXR1cm4gdDAoXyk7Y2FzZSAyOmNvbnRpbnVlO2Nhc2UgMzpyZXR1cm4gWShfKTtjYXNlIDQ6cmV0dXJuIGYoXyk7ZGVmYXVsdDpyZXR1cm4gdChfKX19Y2FzZSAzOnJldHVybiBZKF8pO2Nhc2UgNDpyZXR1cm4gZihfKTtkZWZhdWx0OnJldHVybiB0KF8pfWNhc2UgMjE6cmV0dXJuIDQ2O2Nhc2UgMjI6cmV0dXJuIDQ0O2Nhc2UgMjM6ZTAoXyw3OCk7dmFyIGlvPW0oXyksSHY9NTk8aW8/NjE8aW8/LTE6ZngocDgsaW8tNjB8MCktMXwwOi0xO3JldHVybiBIdj09PTA/KGUwKF8sNjIpLEVuKG0oXykpPT09MD82MTp3KF8pKTpIdj09PTE/NTU6dyhfKTtjYXNlIDI0OmUwKF8sOTApO3ZhciBXbz1RTyhtKF8pKTtyZXR1cm4gV289PT0wPyhlMChfLDU3KSxFbihtKF8pKT09PTA/NTM6dyhfKSk6V289PT0xPzkxOncoXyk7Y2FzZSAyNTplMChfLDc5KTt2YXIgZm89UU8obShfKSk7aWYoZm89PT0wKXJldHVybiA1NjtpZihmbyE9PTEpcmV0dXJuIHcoXyk7ZTAoXyw2Nik7dmFyIHl0PVFPKG0oXykpO3JldHVybiB5dD09PTA/NjM6eXQ9PT0xPyhlMChfLDY1KSxFbihtKF8pKT09PTA/NjQ6dyhfKSk6dyhfKTtjYXNlIDI2OmUwKF8sNTApO3ZhciBzcz1tKF8pLFpvPTQ1PHNzPzYzPHNzPy0xOmZ4KFwiXHUwMDAxXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXFwwXHUwMDAyXCIsc3MrTnZ8MCktMXwwOi0xO3JldHVybiBabz09PTA/KGUwKF8sNDgpLGRyKG0oXykpPT09MD80Nzp3KF8pKTpabz09PTE/KGUwKF8sNDkpLEVuKG0oXykpPT09MD83NTp3KF8pKTp3KF8pO2Nhc2UgMjc6ZTAoXyw5NCk7dmFyIGNvPW0oXyksYTM9NjM8Y28/NjQ8Y28/LTE6MDotMTtpZihhMyE9PTApcmV0dXJuIHcoXyk7dmFyICRvPW0oXyksUm49OTY8JG8/RGU8JG8/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIiwkbytYNXwwKS0xfDA6LTE7aWYoUm4hPT0wKXJldHVybiBSbj09PTEmJmd5KG0oXykpPT09MCYmR2wobShfKSk9PT0wJiZSeShtKF8pKT09PTAmJlhWKG0oXykpPT09MCYmZ3kobShfKSk9PT0wJiZBeShtKF8pKT09PTAmJlJ5KG0oXykpPT09MD8zNTp3KF8pO2lmKENWKG0oXykpIT09MClyZXR1cm4gdyhfKTt2YXIgYnY9bShfKSxzbz1BZjxidj9IMzxidj8tMTowOi0xO2lmKHNvIT09MHx8R08obShfKSkhPT0wfHxRbChtKF8pKSE9PTApcmV0dXJuIHcoXyk7dmFyIEZvPW0oXykseGE9NzI8Rm8/NzM8Rm8/LTE6MDotMTtyZXR1cm4geGE9PT0wJiZneShtKF8pKT09PTAmJkdsKG0oXykpPT09MCYmUnkobShfKSk9PT0wJiZYVihtKF8pKT09PTAmJmd5KG0oXykpPT09MCYmQXkobShfKSk9PT0wJiZSeShtKF8pKT09PTA/MzU6dyhfKTtjYXNlIDI4OnJldHVybiA0MDtjYXNlIDI5OmlmKGUwKF8sOTYpLE1vKG0oXykpIT09MClyZXR1cm4gdyhfKTt2YXIgb3M9WXYobShfKSk7aWYob3M9PT0wKXJldHVybiBQcihtKF8pKT09PTAmJlByKG0oXykpPT09MCYmUHIobShfKSk9PT0wPzk3OncoXyk7aWYob3MhPT0xfHxQcihtKF8pKSE9PTApcmV0dXJuIHcoXyk7Zm9yKDs7KXt2YXIgUW89WHYobShfKSk7aWYoUW8hPT0wKXJldHVybiBRbz09PTE/OTc6dyhfKX1jYXNlIDMwOnJldHVybiA0MTtjYXNlIDMxOnJldHVybiBlMChfLDg3KSxFbihtKF8pKT09PTA/NzQ6dyhfKTtjYXNlIDMyOnJldHVybiA4O2Nhc2UgMzM6cmV0dXJuIDM2O2Nhc2UgMzQ6ZTAoXyw4NSk7dmFyIEdvPW0oXykscmE9NjA8R28/T2E8R28/LTE6ZngoXCJcdTAwMDFcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcXDBcdTAwMDJcIixHbyt4X3wwKS0xfDA6LTE7cmV0dXJuIHJhPT09MD83MzpyYT09PTE/KGUwKF8sNTIpLEVuKG0oXykpPT09MD83Nzp3KF8pKTp3KF8pO2Nhc2UgMzU6cmV0dXJuIDM3O2RlZmF1bHQ6cmV0dXJuIDg5fX1wcihyKTt2YXIgSj1LKHIpO2lmKDk5PEo+Pj4wKXJldHVybiBPeChPYzApO3ZhciBRPUo7aWYoNTA+USlzd2l0Y2goUSl7Y2FzZSAwOnJldHVyblsyLHoyKHgscildO2Nhc2UgMTpyZXR1cm5bMix4XTtjYXNlIDI6dmFyIHgwPWgyKHgsciksJD1acihZciksZjA9VnYoeCwkLHIpLHMwPWYwWzFdO3JldHVyblsxLHMwLEt0KHMwLHgwLGYwWzJdLCQsMSldO2Nhc2UgMzp2YXIgdjA9WXgocik7aWYoIXhbNV0pe3ZhciBvMD1oMih4LHIpLGMwPVpyKFlyKTt2cihjMCxtMih2MCwyLFh4KHYwKS0yfDApKTt2YXIgZDA9VnYoeCxjMCxyKSxFMD1kMFsxXTtyZXR1cm5bMSxFMCxLdChFMCxvMCxkMFsyXSxjMCwxKV19dmFyIEwwPXhbNF0/cVYoeCxWcih4LHIpLHYwKTp4LFgwPWF5KDEsTDApLHh4PWN5KHIpO3JldHVybiBBcihXbChyLHh4LTF8MCwxKSxDdikmJlAoV2wocix4eC0yfDAsMSksQ3YpP1swLFgwLDg2XTpbMixYMF07Y2FzZSA0OmlmKHhbNF0pcmV0dXJuWzIsYXkoMCx4KV07JGEocikscHIocik7dmFyIGcwPUlWKG0ocikpPT09MD8wOncocik7cmV0dXJuIGcwPT09MD9bMCx4LGwyXTpPeChSYzApO2Nhc2UgNTp2YXIgJDA9aDIoeCxyKSxuMD1acihZciksaXg9SGEoeCxuMCxyKSxyeD1peFsxXTtyZXR1cm5bMSxyeCxLdChyeCwkMCxpeFsyXSxuMCwwKV07Y2FzZSA2OmlmKHJbNl0hPT0wKXJldHVyblswLHgsTGMwXTt2YXIgZHg9aDIoeCxyKSxheD1acihZciksU3g9SGEoeCxheCxyKSxEMD1TeFsxXSxOMD1bMCxEMFsxXSxkeCxTeFsyXV07cmV0dXJuWzAsRDAsWzYsTjAsVTEoYXgpXV07Y2FzZSA3OnZhciBBMD1ZeChyKSxZMD1oMih4LHIpLEMwPVpyKFlyKSxGPVpyKFlyKTt2cihGLEEwKTt2YXIgSD1leih4LEEwLEMwLEYsMCxyKSxCPUhbMV0sYTA9SFszXSxtMD1bMCxCWzFdLFkwLEhbMl1dLFAwPVUxKEYpO3JldHVyblswLEIsWzIsWzAsbTAsVTEoQzApLFAwLGEwXV1dO2Nhc2UgODp2YXIgRD1acihZciksTzA9WnIoWXIpLEswPWgyKHgsciksajA9dHooeCxELE8wLHIpLG94PWowWzFdLGIwPWowWzJdLF94PWRlKG94LHIpLEIwPVswLG94WzFdLEswLF94XSxUPVUxKE8wKTtyZXR1cm5bMCxveCxbMyxbMCxCMCxVMShEKSxULDEsYjBdXV07Y2FzZSA5OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oXyxiKXtpZihwcihiKSxsZShtKGIpKT09PTAmJkV5KG0oYikpPT09MCYmZXMobShiKSk9PT0wKWZvcig7Oyl7dmFyIHIwPW15KG0oYikpO2lmKDI8cjA+Pj4wKXZhciBoMD13KGIpO2Vsc2Ugc3dpdGNoKHIwKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOng6Zm9yKDs7KXtpZihlcyhtKGIpKT09PTApZm9yKDs7KXt2YXIgUzA9bXkobShiKSk7aWYoMjxTMD4+PjApdmFyIEc9dyhiKTtlbHNlIHN3aXRjaChTMCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpjb250aW51ZSB4O2RlZmF1bHQ6dmFyIEc9MH1icmVha31lbHNlIHZhciBHPXcoYik7dmFyIGgwPUc7YnJlYWt9YnJlYWs7ZGVmYXVsdDp2YXIgaDA9MH1icmVha31lbHNlIHZhciBoMD13KGIpO3JldHVybiBoMD09PTA/WzAsXyxbMSwwLFl4KGIpXV06T3goSWMwKX0pO2Nhc2UgMTA6cmV0dXJuWzAseCxbMSwwLFl4KHIpXV07Y2FzZSAxMTpyZXR1cm4gQTEoeCxyLGZ1bmN0aW9uKF8sYil7aWYocHIoYiksbGUobShiKSk9PT0wJiZFeShtKGIpKT09PTAmJmVzKG0oYikpPT09MClmb3IoOzspe2UwKGIsMCk7dmFyIHIwPXl5KG0oYikpO2lmKHIwIT09MCl7aWYocjA9PT0xKXg6Zm9yKDs7KXtpZihlcyhtKGIpKT09PTApZm9yKDs7KXtlMChiLDApO3ZhciBTMD15eShtKGIpKTtpZihTMCE9PTApe2lmKFMwPT09MSljb250aW51ZSB4O3ZhciBHPXcoYik7YnJlYWt9fWVsc2UgdmFyIEc9dyhiKTt2YXIgaDA9RzticmVha31lbHNlIHZhciBoMD13KGIpO2JyZWFrfX1lbHNlIHZhciBoMD13KGIpO3JldHVybiBoMD09PTA/WzAsXyxbMCwwLFl4KGIpXV06T3goQ2MwKX0pO2Nhc2UgMTI6cmV0dXJuWzAseCxbMCwwLFl4KHIpXV07Y2FzZSAxMzpyZXR1cm4gQTEoeCxyLGZ1bmN0aW9uKF8sYil7aWYocHIoYiksbGUobShiKSk9PT0wJiZOeShtKGIpKT09PTAmJlYyKG0oYikpPT09MClmb3IoOzspe3ZhciByMD1TeShtKGIpKTtpZigyPHIwPj4+MCl2YXIgaDA9dyhiKTtlbHNlIHN3aXRjaChyMCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp4OmZvcig7Oyl7aWYoVjIobShiKSk9PT0wKWZvcig7Oyl7dmFyIFMwPVN5KG0oYikpO2lmKDI8UzA+Pj4wKXZhciBHPXcoYik7ZWxzZSBzd2l0Y2goUzApe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6Y29udGludWUgeDtkZWZhdWx0OnZhciBHPTB9YnJlYWt9ZWxzZSB2YXIgRz13KGIpO3ZhciBoMD1HO2JyZWFrfWJyZWFrO2RlZmF1bHQ6dmFyIGgwPTB9YnJlYWt9ZWxzZSB2YXIgaDA9dyhiKTtyZXR1cm4gaDA9PT0wP1swLF8sWzEsMSxZeChiKV1dOk94KE5jMCl9KTtjYXNlIDE0OnJldHVyblswLHgsWzEsMSxZeChyKV1dO2Nhc2UgMTU6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2lmKHByKGIpLGxlKG0oYikpPT09MCYmTnkobShiKSk9PT0wJiZWMihtKGIpKT09PTApZm9yKDs7KXtlMChiLDApO3ZhciByMD13eShtKGIpKTtpZihyMCE9PTApe2lmKHIwPT09MSl4OmZvcig7Oyl7aWYoVjIobShiKSk9PT0wKWZvcig7Oyl7ZTAoYiwwKTt2YXIgUzA9d3kobShiKSk7aWYoUzAhPT0wKXtpZihTMD09PTEpY29udGludWUgeDt2YXIgRz13KGIpO2JyZWFrfX1lbHNlIHZhciBHPXcoYik7dmFyIGgwPUc7YnJlYWt9ZWxzZSB2YXIgaDA9dyhiKTticmVha319ZWxzZSB2YXIgaDA9dyhiKTtyZXR1cm4gaDA9PT0wP1swLF8sWzAsMyxZeChiKV1dOk94KFBjMCl9KTtjYXNlIDE2OnJldHVyblswLHgsWzAsMyxZeChyKV1dO2Nhc2UgMTc6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2lmKHByKGIpLGxlKG0oYikpPT09MClmb3IoOzspe3ZhciByMD1tKGIpLFMwPTQ3PHIwPzU3PHIwPy0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAyXHUwMDAyXCIscjArWTF8MCktMXwwOi0xO2lmKFMwIT09MCl7aWYoUzA9PT0xKXtmb3IoOzspaWYoZTAoYiwwKSxkcihtKGIpKSE9PTApe3ZhciBHPXcoYik7YnJlYWt9fWVsc2UgdmFyIEc9dyhiKTticmVha319ZWxzZSB2YXIgRz13KGIpO3JldHVybiBHPT09MD9bMCxfLFswLDIsWXgoYildXTpPeChBYzApfSk7Y2FzZSAxODpyZXR1cm5bMCx4LFswLDIsWXgocildXTtjYXNlIDE5OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oXyxiKXtpZihwcihiKSxsZShtKGIpKT09PTAmJlYyKG0oYikpPT09MCl7Zm9yKDs7KWlmKGUwKGIsMCksVjIobShiKSkhPT0wKXt2YXIgcjA9dyhiKTticmVha319ZWxzZSB2YXIgcjA9dyhiKTtyZXR1cm4gcjA9PT0wP1swLF8sWzAsMSxZeChiKV1dOk94KGdjMCl9KTtjYXNlIDIwOnJldHVyblswLHgsWzAsMSxZeChyKV1dO2Nhc2UgMjE6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2lmKHByKGIpLGxlKG0oYikpPT09MCYmcHkobShiKSk9PT0wJiZQcihtKGIpKT09PTApZm9yKDs7KXt2YXIgcjA9a3kobShiKSk7aWYoMjxyMD4+PjApdmFyIGgwPXcoYik7ZWxzZSBzd2l0Y2gocjApe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6eDpmb3IoOzspe2lmKFByKG0oYikpPT09MClmb3IoOzspe3ZhciBTMD1reShtKGIpKTtpZigyPFMwPj4+MCl2YXIgRz13KGIpO2Vsc2Ugc3dpdGNoKFMwKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOmNvbnRpbnVlIHg7ZGVmYXVsdDp2YXIgRz0wfWJyZWFrfWVsc2UgdmFyIEc9dyhiKTt2YXIgaDA9RzticmVha31icmVhaztkZWZhdWx0OnZhciBoMD0wfWJyZWFrfWVsc2UgdmFyIGgwPXcoYik7cmV0dXJuIGgwPT09MD9bMCxfLFsxLDIsWXgoYildXTpPeChFYzApfSk7Y2FzZSAyMjpyZXR1cm5bMCx4LFsxLDIsWXgocildXTtjYXNlIDIzOnJldHVybiBBMSh4LHIsZnVuY3Rpb24oXyxiKXtpZihwcihiKSxsZShtKGIpKT09PTAmJnB5KG0oYikpPT09MCYmUHIobShiKSk9PT0wKWZvcig7Oyl7ZTAoYiwwKTt2YXIgcjA9T3kobShiKSk7aWYocjAhPT0wKXtpZihyMD09PTEpeDpmb3IoOzspe2lmKFByKG0oYikpPT09MClmb3IoOzspe2UwKGIsMCk7dmFyIFMwPU95KG0oYikpO2lmKFMwIT09MCl7aWYoUzA9PT0xKWNvbnRpbnVlIHg7dmFyIEc9dyhiKTticmVha319ZWxzZSB2YXIgRz13KGIpO3ZhciBoMD1HO2JyZWFrfWVsc2UgdmFyIGgwPXcoYik7YnJlYWt9fWVsc2UgdmFyIGgwPXcoYik7cmV0dXJuIGgwPT09MD9bMCxfLFswLDQsWXgoYildXTpPeChTYzApfSk7Y2FzZSAyNDpyZXR1cm5bMCx4LFswLDQsWXgocildXTtjYXNlIDI1OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oXyxiKXtmdW5jdGlvbiByMCh6eCl7Zm9yKDs7KXt2YXIgT3I9VnQobSh6eCkpO2lmKDI8T3I+Pj4wKXJldHVybiB3KHp4KTtzd2l0Y2goT3Ipe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6eDpmb3IoOzspe2lmKGRyKG0oengpKSE9PTApcmV0dXJuIHcoengpO2Zvcig7Oyl7dmFyIFd4PVZ0KG0oengpKTtpZigyPFd4Pj4+MClyZXR1cm4gdyh6eCk7c3dpdGNoKFd4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gMH19fWRlZmF1bHQ6cmV0dXJuIDB9fX1mdW5jdGlvbiBTMCh6eCl7Zm9yKDs7KXt2YXIgT3I9R2EobSh6eCkpO2lmKE9yIT09MClyZXR1cm4gT3I9PT0xPzA6dyh6eCl9fWZ1bmN0aW9uIEcoengpe3ZhciBPcj1qeShtKHp4KSk7aWYoMjxPcj4+PjApcmV0dXJuIHcoengpO3N3aXRjaChPcil7Y2FzZSAwOnZhciBXeD1JbyhtKHp4KSk7cmV0dXJuIFd4PT09MD9TMCh6eCk6V3g9PT0xP3IwKHp4KTp3KHp4KTtjYXNlIDE6cmV0dXJuIFMwKHp4KTtkZWZhdWx0OnJldHVybiByMCh6eCl9fWZ1bmN0aW9uIGgwKHp4KXt2YXIgT3I9Q3kobSh6eCkpO2lmKE9yIT09MClyZXR1cm4gT3I9PT0xP0coengpOncoengpO2Zvcig7Oyl7dmFyIFd4PXhlKG0oengpKTtpZigyPFd4Pj4+MClyZXR1cm4gdyh6eCk7c3dpdGNoKFd4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnJldHVybiBHKHp4KTtkZWZhdWx0Ong6Zm9yKDs7KXtpZihkcihtKHp4KSkhPT0wKXJldHVybiB3KHp4KTtmb3IoOzspe3ZhciBCMj14ZShtKHp4KSk7aWYoMjxCMj4+PjApcmV0dXJuIHcoengpO3N3aXRjaChCMil7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpyZXR1cm4gRyh6eCk7ZGVmYXVsdDpjb250aW51ZSB4fX19fX19cHIoYik7dmFyIHowPUNvKG0oYikpO2lmKDI8ejA+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKHowKXtjYXNlIDA6aWYoZHIobShiKSk9PT0wKWZvcig7Oyl7dmFyIHV4PXhlKG0oYikpO2lmKDI8dXg+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKHV4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnZhciBNMD1HKGIpO2JyZWFrO2RlZmF1bHQ6eDpmb3IoOzspe2lmKGRyKG0oYikpPT09MClmb3IoOzspe3ZhciBaeD14ZShtKGIpKTtpZigyPFp4Pj4+MCl2YXIgTHg9dyhiKTtlbHNlIHN3aXRjaChaeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp2YXIgTHg9RyhiKTticmVhaztkZWZhdWx0OmNvbnRpbnVlIHh9YnJlYWt9ZWxzZSB2YXIgTHg9dyhiKTt2YXIgTTA9THg7YnJlYWt9fWJyZWFrfWVsc2UgdmFyIE0wPXcoYik7YnJlYWs7Y2FzZSAxOnZhciB0cj1keShtKGIpKSxNMD10cj09PTA/aDAoYik6dHI9PT0xP0coYik6dyhiKTticmVhaztkZWZhdWx0OmZvcig7Oyl7dmFyICR4PVB5KG0oYikpO2lmKDI8JHg+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKCR4KXtjYXNlIDA6dmFyIE0wPWgwKGIpO2JyZWFrO2Nhc2UgMTpjb250aW51ZTtkZWZhdWx0OnZhciBNMD1HKGIpfWJyZWFrfX1pZihNMCE9PTApcmV0dXJuIE94KFRjMCk7dmFyIHhyPV8yKF8sVnIoXyxiKSw0OCk7cmV0dXJuWzAseHIsWzEsMixZeChiKV1dfSk7Y2FzZSAyNjp2YXIgWD1fMih4LFZyKHgsciksNDgpO3JldHVyblswLFgsWzEsMixZeChyKV1dO2Nhc2UgMjc6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2Z1bmN0aW9uIHIwKHhyKXtmb3IoOzspe2UwKHhyLDApO3ZhciB6eD1SbyhtKHhyKSk7aWYoenghPT0wKXtpZih6eCE9PTEpcmV0dXJuIHcoeHIpO3g6Zm9yKDs7KXtpZihkcihtKHhyKSkhPT0wKXJldHVybiB3KHhyKTtmb3IoOzspe2UwKHhyLDApO3ZhciBPcj1SbyhtKHhyKSk7aWYoT3IhPT0wKXtpZihPcj09PTEpY29udGludWUgeDtyZXR1cm4gdyh4cil9fX19fX1mdW5jdGlvbiBTMCh4cil7Zm9yKDs7KWlmKGUwKHhyLDApLGRyKG0oeHIpKSE9PTApcmV0dXJuIHcoeHIpfWZ1bmN0aW9uIEcoeHIpe3ZhciB6eD1qeShtKHhyKSk7aWYoMjx6eD4+PjApcmV0dXJuIHcoeHIpO3N3aXRjaCh6eCl7Y2FzZSAwOnZhciBPcj1JbyhtKHhyKSk7cmV0dXJuIE9yPT09MD9TMCh4cik6T3I9PT0xP3IwKHhyKTp3KHhyKTtjYXNlIDE6cmV0dXJuIFMwKHhyKTtkZWZhdWx0OnJldHVybiByMCh4cil9fWZ1bmN0aW9uIGgwKHhyKXt2YXIgeng9Q3kobSh4cikpO2lmKHp4IT09MClyZXR1cm4geng9PT0xP0coeHIpOncoeHIpO2Zvcig7Oyl7dmFyIE9yPXhlKG0oeHIpKTtpZigyPE9yPj4+MClyZXR1cm4gdyh4cik7c3dpdGNoKE9yKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnJldHVybiBHKHhyKTtkZWZhdWx0Ong6Zm9yKDs7KXtpZihkcihtKHhyKSkhPT0wKXJldHVybiB3KHhyKTtmb3IoOzspe3ZhciBXeD14ZShtKHhyKSk7aWYoMjxXeD4+PjApcmV0dXJuIHcoeHIpO3N3aXRjaChXeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpyZXR1cm4gRyh4cik7ZGVmYXVsdDpjb250aW51ZSB4fX19fX19cHIoYik7dmFyIHowPUNvKG0oYikpO2lmKDI8ejA+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKHowKXtjYXNlIDA6aWYoZHIobShiKSk9PT0wKWZvcig7Oyl7dmFyIHV4PXhlKG0oYikpO2lmKDI8dXg+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKHV4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnZhciBNMD1HKGIpO2JyZWFrO2RlZmF1bHQ6eDpmb3IoOzspe2lmKGRyKG0oYikpPT09MClmb3IoOzspe3ZhciBaeD14ZShtKGIpKTtpZigyPFp4Pj4+MCl2YXIgTHg9dyhiKTtlbHNlIHN3aXRjaChaeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp2YXIgTHg9RyhiKTticmVhaztkZWZhdWx0OmNvbnRpbnVlIHh9YnJlYWt9ZWxzZSB2YXIgTHg9dyhiKTt2YXIgTTA9THg7YnJlYWt9fWJyZWFrfWVsc2UgdmFyIE0wPXcoYik7YnJlYWs7Y2FzZSAxOnZhciB0cj1keShtKGIpKSxNMD10cj09PTA/aDAoYik6dHI9PT0xP0coYik6dyhiKTticmVhaztkZWZhdWx0OmZvcig7Oyl7dmFyICR4PVB5KG0oYikpO2lmKDI8JHg+Pj4wKXZhciBNMD13KGIpO2Vsc2Ugc3dpdGNoKCR4KXtjYXNlIDA6dmFyIE0wPWgwKGIpO2JyZWFrO2Nhc2UgMTpjb250aW51ZTtkZWZhdWx0OnZhciBNMD1HKGIpfWJyZWFrfX1yZXR1cm4gTTA9PT0wP1swLF8sWzAsNCxZeChiKV1dOk94KHdjMCl9KTtjYXNlIDI4OnJldHVyblswLHgsWzAsNCxZeChyKV1dO2Nhc2UgMjk6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2Z1bmN0aW9uIHIwKHRyKXtmb3IoOzspe3ZhciAkeD1WdChtKHRyKSk7aWYoMjwkeD4+PjApcmV0dXJuIHcodHIpO3N3aXRjaCgkeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp4OmZvcig7Oyl7aWYoZHIobSh0cikpIT09MClyZXR1cm4gdyh0cik7Zm9yKDs7KXt2YXIgeHI9VnQobSh0cikpO2lmKDI8eHI+Pj4wKXJldHVybiB3KHRyKTtzd2l0Y2goeHIpe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6Y29udGludWUgeDtkZWZhdWx0OnJldHVybiAwfX19ZGVmYXVsdDpyZXR1cm4gMH19fWZ1bmN0aW9uIFMwKHRyKXt2YXIgJHg9R2EobSh0cikpO3JldHVybiAkeD09PTA/cjAodHIpOiR4PT09MT8wOncodHIpfXByKGIpO3ZhciBHPUNvKG0oYikpO2lmKDI8Rz4+PjApdmFyIGgwPXcoYik7ZWxzZSBzd2l0Y2goRyl7Y2FzZSAwOnZhciBoMD1kcihtKGIpKT09PTA/cjAoYik6dyhiKTticmVhaztjYXNlIDE6Zm9yKDs7KXt2YXIgejA9cWEobShiKSk7aWYoejA9PT0wKXZhciBoMD1TMChiKTtlbHNle2lmKHowPT09MSljb250aW51ZTt2YXIgaDA9dyhiKX1icmVha31icmVhaztkZWZhdWx0OmZvcig7Oyl7dmFyIE0wPUxvKG0oYikpO2lmKDI8TTA+Pj4wKXZhciBoMD13KGIpO2Vsc2Ugc3dpdGNoKE0wKXtjYXNlIDA6dmFyIGgwPVMwKGIpO2JyZWFrO2Nhc2UgMTpjb250aW51ZTtkZWZhdWx0Ong6Zm9yKDs7KXtpZihkcihtKGIpKT09PTApZm9yKDs7KXt2YXIgdXg9TG8obShiKSk7aWYoMjx1eD4+PjApdmFyIFp4PXcoYik7ZWxzZSBzd2l0Y2godXgpe2Nhc2UgMDp2YXIgWng9UzAoYik7YnJlYWs7Y2FzZSAxOmNvbnRpbnVlO2RlZmF1bHQ6Y29udGludWUgeH1icmVha31lbHNlIHZhciBaeD13KGIpO3ZhciBoMD1aeDticmVha319YnJlYWt9fWlmKGgwIT09MClyZXR1cm4gT3goX2MwKTt2YXIgTHg9XzIoXyxWcihfLGIpLDM5KTtyZXR1cm5bMCxMeCxbMSwyLFl4KGIpXV19KTtjYXNlIDMwOnJldHVybiBBMSh4LHIsZnVuY3Rpb24oXyxiKXtwcihiKTt2YXIgcjA9SW8obShiKSk7aWYocjA9PT0wKWZvcig7Oyl7dmFyIFMwPUdhKG0oYikpO2lmKFMwIT09MCl7dmFyIE0wPVMwPT09MT8wOncoYik7YnJlYWt9fWVsc2UgaWYocjA9PT0xKWZvcig7Oyl7dmFyIEc9VnQobShiKSk7aWYoMjxHPj4+MCl2YXIgTTA9dyhiKTtlbHNlIHN3aXRjaChHKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOng6Zm9yKDs7KXtpZihkcihtKGIpKT09PTApZm9yKDs7KXt2YXIgaDA9VnQobShiKSk7aWYoMjxoMD4+PjApdmFyIHowPXcoYik7ZWxzZSBzd2l0Y2goaDApe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6Y29udGludWUgeDtkZWZhdWx0OnZhciB6MD0wfWJyZWFrfWVsc2UgdmFyIHowPXcoYik7dmFyIE0wPXowO2JyZWFrfWJyZWFrO2RlZmF1bHQ6dmFyIE0wPTB9YnJlYWt9ZWxzZSB2YXIgTTA9dyhiKTtyZXR1cm4gTTA9PT0wP1swLF8sWzEsMixZeChiKV1dOk94KGhjMCl9KTtjYXNlIDMxOnZhciBGMD1fMih4LFZyKHgsciksMzkpO3JldHVyblswLEYwLFsxLDIsWXgocildXTtjYXNlIDMyOnJldHVyblswLHgsWzEsMixZeChyKV1dO2Nhc2UgMzM6cmV0dXJuIEExKHgscixmdW5jdGlvbihfLGIpe2Z1bmN0aW9uIHIwKEx4KXtmb3IoOzspe2UwKEx4LDApO3ZhciB0cj1SbyhtKEx4KSk7aWYodHIhPT0wKXtpZih0ciE9PTEpcmV0dXJuIHcoTHgpO3g6Zm9yKDs7KXtpZihkcihtKEx4KSkhPT0wKXJldHVybiB3KEx4KTtmb3IoOzspe2UwKEx4LDApO3ZhciAkeD1SbyhtKEx4KSk7aWYoJHghPT0wKXtpZigkeD09PTEpY29udGludWUgeDtyZXR1cm4gdyhMeCl9fX19fX1mdW5jdGlvbiBTMChMeCl7cmV0dXJuIGUwKEx4LDApLGRyKG0oTHgpKT09PTA/cjAoTHgpOncoTHgpfXByKGIpO3ZhciBHPUNvKG0oYikpO2lmKDI8Rz4+PjApdmFyIGgwPXcoYik7ZWxzZSBzd2l0Y2goRyl7Y2FzZSAwOnZhciBoMD1kcihtKGIpKT09PTA/cjAoYik6dyhiKTticmVhaztjYXNlIDE6Zm9yKDs7KXtlMChiLDApO3ZhciB6MD1xYShtKGIpKTtpZih6MD09PTApdmFyIGgwPVMwKGIpO2Vsc2V7aWYoejA9PT0xKWNvbnRpbnVlO3ZhciBoMD13KGIpfWJyZWFrfWJyZWFrO2RlZmF1bHQ6Zm9yKDs7KXtlMChiLDApO3ZhciBNMD1MbyhtKGIpKTtpZigyPE0wPj4+MCl2YXIgaDA9dyhiKTtlbHNlIHN3aXRjaChNMCl7Y2FzZSAwOnZhciBoMD1TMChiKTticmVhaztjYXNlIDE6Y29udGludWU7ZGVmYXVsdDp4OmZvcig7Oyl7aWYoZHIobShiKSk9PT0wKWZvcig7Oyl7ZTAoYiwwKTt2YXIgdXg9TG8obShiKSk7aWYoMjx1eD4+PjApdmFyIFp4PXcoYik7ZWxzZSBzd2l0Y2godXgpe2Nhc2UgMDp2YXIgWng9UzAoYik7YnJlYWs7Y2FzZSAxOmNvbnRpbnVlO2RlZmF1bHQ6Y29udGludWUgeH1icmVha31lbHNlIHZhciBaeD13KGIpO3ZhciBoMD1aeDticmVha319YnJlYWt9fXJldHVybiBoMD09PTA/WzAsXyxbMCw0LFl4KGIpXV06T3goa2MwKX0pO2Nhc2UgMzQ6cmV0dXJuWzAseCxbMCw0LFl4KHIpXV07Y2FzZSAzNTp2YXIgc3g9VnIoeCxyKSxleD1ZeChyKTtyZXR1cm5bMCx4LFs0LHN4LGV4LGV4XV07Y2FzZSAzNjpyZXR1cm5bMCx4LDBdO2Nhc2UgMzc6cmV0dXJuWzAseCwxXTtjYXNlIDM4OnJldHVyblswLHgsNF07Y2FzZSAzOTpyZXR1cm5bMCx4LDVdO2Nhc2UgNDA6cmV0dXJuWzAseCw2XTtjYXNlIDQxOnJldHVyblswLHgsN107Y2FzZSA0MjpyZXR1cm5bMCx4LDEyXTtjYXNlIDQzOnJldHVyblswLHgsMTBdO2Nhc2UgNDQ6cmV0dXJuWzAseCw4XTtjYXNlIDQ1OnJldHVyblswLHgsOV07Y2FzZSA0NjpyZXR1cm5bMCx4LDg2XTtjYXNlIDQ3OiRhKHIpLHByKHIpO3ZhciBVMD1tKHIpLE54PTYyPFUwPzYzPFUwPy0xOjA6LTEsbXg9Tng9PT0wPzA6dyhyKTtyZXR1cm4gbXg9PT0wP1swLHgsODVdOk94KE1jMCk7Y2FzZSA0ODpyZXR1cm5bMCx4LDgzXTtkZWZhdWx0OnJldHVyblswLHgsODRdfXN3aXRjaChRKXtjYXNlIDUwOnJldHVyblswLHgsODVdO2Nhc2UgNTE6cmV0dXJuWzAseCw4OF07Y2FzZSA1MjpyZXR1cm5bMCx4LDg3XTtjYXNlIDUzOnJldHVyblswLHgsOTRdO2Nhc2UgNTQ6cmV0dXJuWzAseCw5NV07Y2FzZSA1NTpyZXR1cm5bMCx4LDk2XTtjYXNlIDU2OnJldHVyblswLHgsOTddO2Nhc2UgNTc6cmV0dXJuWzAseCw5Ml07Y2FzZSA1ODpyZXR1cm5bMCx4LDkzXTtjYXNlIDU5OnJldHVyblswLHgsT3RdO2Nhc2UgNjA6cmV0dXJuWzAseCxMMl07Y2FzZSA2MTpyZXR1cm5bMCx4LDY5XTtjYXNlIDYyOnJldHVyblswLHgsaXRdO2Nhc2UgNjM6cmV0dXJuWzAseCw2OF07Y2FzZSA2NDpyZXR1cm5bMCx4LDY3XTtjYXNlIDY1OnJldHVyblswLHgsSmZdO2Nhc2UgNjY6cmV0dXJuWzAseCxJdF07Y2FzZSA2NzpyZXR1cm5bMCx4LDc4XTtjYXNlIDY4OnJldHVyblswLHgsNzddO2Nhc2UgNjk6cmV0dXJuWzAseCw3NV07Y2FzZSA3MDpyZXR1cm5bMCx4LDc2XTtjYXNlIDcxOnJldHVyblswLHgsNzNdO2Nhc2UgNzI6cmV0dXJuWzAseCw3Ml07Y2FzZSA3MzpyZXR1cm5bMCx4LDcxXTtjYXNlIDc0OnJldHVyblswLHgsNzBdO2Nhc2UgNzU6cmV0dXJuWzAseCw3OV07Y2FzZSA3NjpyZXR1cm5bMCx4LDgwXTtjYXNlIDc3OnJldHVyblswLHgsODFdO2Nhc2UgNzg6cmV0dXJuWzAseCw5OF07Y2FzZSA3OTpyZXR1cm5bMCx4LDk5XTtjYXNlIDgwOnJldHVyblswLHgsZm5dO2Nhc2UgODE6cmV0dXJuWzAseCxEdF07Y2FzZSA4MjpyZXR1cm5bMCx4LGwyXTtjYXNlIDgzOnJldHVyblswLHgsRzJdO2Nhc2UgODQ6cmV0dXJuWzAseCx2bl07Y2FzZSA4NTpyZXR1cm5bMCx4LDg5XTtjYXNlIDg2OnJldHVyblswLHgsOTFdO2Nhc2UgODc6cmV0dXJuWzAseCw5MF07Y2FzZSA4ODpyZXR1cm5bMCx4LElzXTtjYXNlIDg5OnJldHVyblswLHgsVjFdO2Nhc2UgOTA6cmV0dXJuWzAseCw4Ml07Y2FzZSA5MTpyZXR1cm5bMCx4LDExXTtjYXNlIDkyOnJldHVyblswLHgsNzRdO2Nhc2UgOTM6cmV0dXJuWzAseCxEZV07Y2FzZSA5NDpyZXR1cm5bMCx4LDEzXTtjYXNlIDk1OnJldHVyblswLHgsMTRdO2Nhc2UgOTY6cmV0dXJuWzIsdnQoeCxWcih4LHIpKV07Y2FzZSA5Nzp2YXIgQng9cls2XTtRVihyKTt2YXIgR3g9cWwoeCxCeCxyWzNdKTtMTyhyLEJ4KTt2YXIgSjA9WXgociksYng9VHgoSjAsWjMpO2lmKDA8PWJ4KXtpZigwPj1ieClyZXR1cm5bMCx4LDE4XTt2YXIgSng9VHgoSjAsTmEpO2lmKDA8PUp4KXtpZigwPj1KeClyZXR1cm5bMCx4LDUxXTt2YXIgVzA9VHgoSjAsVHMpO2lmKDA8PVcwKXtpZigwPj1XMClyZXR1cm5bMCx4LDQ2XTtpZighUChKMCxzbCkpcmV0dXJuWzAseCwyNF07aWYoIVAoSjAsUHMpKXJldHVyblswLHgsNDddO2lmKCFQKEowLE1wKSlyZXR1cm5bMCx4LDI1XTtpZighUChKMCx2cCkpcmV0dXJuWzAseCwyNl07aWYoIVAoSjAsajIpKXJldHVyblswLHgsNThdfWVsc2V7aWYoIVAoSjAsWWUpKXJldHVyblswLHgsMjBdO2lmKCFQKEowLHZ2KSlyZXR1cm5bMCx4LDIxXTtpZighUChKMCxYZSkpcmV0dXJuWzAseCwyMl07aWYoIVAoSjAsU3MpKXJldHVyblswLHgsMzFdO2lmKCFQKEowLHRkKSlyZXR1cm5bMCx4LDIzXTtpZighUChKMCxlaSkpcmV0dXJuWzAseCw2MV19fWVsc2V7dmFyIG5yPVR4KEowLFdwKTtpZigwPD1ucil7aWYoMD49bnIpcmV0dXJuWzAseCw1NF07aWYoIVAoSjAsa2wpKXJldHVyblswLHgsNTVdO2lmKCFQKEowLEIzKSlyZXR1cm5bMCx4LDU2XTtpZighUChKMCxqMykpcmV0dXJuWzAseCw1N107aWYoIVAoSjAsVWUpKXJldHVyblswLHgsMTldO2lmKCFQKEowLGplKSlyZXR1cm5bMCx4LDQyXX1lbHNle2lmKCFQKEowLFEyKSlyZXR1cm5bMCx4LDUzXTtpZighUChKMCxkYSkpcmV0dXJuWzAseCwyOF07aWYoIVAoSjAsb3YpKXJldHVyblswLHgsNDRdO2lmKCFQKEowLG12KSlyZXR1cm5bMCx4LDI5XTtpZighUChKMCxYaCkpcmV0dXJuWzAseCw2M107aWYoIVAoSjAsQ2gpKXJldHVyblswLHgsNjJdfX19ZWxzZXt2YXIgVjA9VHgoSjAsSzUpO2lmKDA8PVYwKXtpZigwPj1WMClyZXR1cm5bMCx4LDM3XTt2YXIgU3I9VHgoSjAsZDgpO2lmKDA8PVNyKXtpZigwPj1TcilyZXR1cm5bMCx4LDM5XTtpZighUChKMCxsYSkpcmV0dXJuWzAseCwxNV07aWYoIVAoSjAsUXApKXJldHVyblswLHgsMTZdO2lmKCFQKEowLF92KSlyZXR1cm5bMCx4LDUyXTtpZighUChKMCxNMikpcmV0dXJuWzAseCw1MF07aWYoIVAoSjAsd28pKXJldHVyblswLHgsMTddfWVsc2V7aWYoIVAoSjAsSXApKXJldHVyblswLHgsNDNdO2lmKCFQKEowLGNsKSlyZXR1cm5bMCx4LDQ4XTtpZighUChKMCx4OCkpcmV0dXJuWzAseCw0OV07aWYoIVAoSjAsT2MpKXJldHVyblswLHgsNDFdO2lmKCFQKEowLEFzKSlyZXR1cm5bMCx4LDMwXTtpZighUChKMCxncCkpcmV0dXJuWzAseCwzOF19fWVsc2V7dmFyIFVyPVR4KEowLG5sKTtpZigwPD1Vcil7aWYoMD49VXIpcmV0dXJuWzAseCwyN107aWYoIVAoSjAsT2UpKXJldHVyblswLHgsMzVdO2lmKCFQKEowLFJlKSlyZXR1cm5bMCx4LDU5XTtpZighUChKMCxRMykpcmV0dXJuWzAseCw2MF07aWYoIVAoSjAsYXYpKXJldHVyblswLHgsMzZdO2lmKCFQKEowLGVsKSlyZXR1cm5bMCx4LDQ1XX1lbHNle2lmKCFQKEowLFRvKSlyZXR1cm5bMCx4LDY0XTtpZighUChKMCxFdikpcmV0dXJuWzAseCw2NV07aWYoIVAoSjAsTWUpKXJldHVyblswLHgsMzJdO2lmKCFQKEowLFhwKSlyZXR1cm5bMCx4LDMzXTtpZighUChKMCxLOCkpcmV0dXJuWzAseCwzNF07aWYoIVAoSjAsVjMpKXJldHVyblswLHgsNDBdfX19dmFyIGx4PXQxKHIpLGJyPXh6KHgsbHgpLGUyPWJyWzJdLGgxPWJyWzFdO3JldHVyblswLGgxLFs0LEd4LGUyLFpsKGx4KV1dO2Nhc2UgOTg6dmFyIElyPXhbNF0/XzIoeCxWcih4LHIpLDk2KTp4O3JldHVyblswLElyLFJyXTtkZWZhdWx0OnZhciBSMT12dCh4LFZyKHgscikpO3JldHVyblswLFIxLFs3LFl4KHIpXV19fSxyUzA9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXg7eDpmb3IoOzspe3ByKGUpO3ZhciB1PW0oZSksaT05Mjx1P1ExPHU/MTpjMjx1PzI6MTpmeChcIlx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwNFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNlxceDA3XCIsdSsxfDApLTF8MDtpZig2PGk+Pj4wKXZhciBmPXcoZSk7ZWxzZSBzd2l0Y2goaSl7Y2FzZSAwOnZhciBmPTA7YnJlYWs7Y2FzZSAxOmZvcig7Oyl7ZTAoZSw3KTt2YXIgbz1tKGUpLGw9LTE8bz85MDxvPzkyPG8/YzI8bz9RMTxvPzA6LTE6MDotMTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVxcMFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLG8pLTF8MDotMTtpZihsIT09MCl7dmFyIGY9dyhlKTticmVha319YnJlYWs7Y2FzZSAyOnZhciBmPTY7YnJlYWs7Y2FzZSAzOmUwKGUsNik7dmFyIGY9cGUobShlKSk9PT0wPzY6dyhlKTticmVhaztjYXNlIDQ6aWYoZTAoZSw0KSxOVihtKGUpKT09PTApe2Zvcig7OylpZihlMChlLDMpLE5WKG0oZSkpIT09MCl7dmFyIGY9dyhlKTticmVha319ZWxzZSB2YXIgZj13KGUpO2JyZWFrO2Nhc2UgNTp2YXIgZj01O2JyZWFrO2RlZmF1bHQ6ZTAoZSw3KTt2YXIgZD1tKGUpLGs9LTE8ZD8xMzxkP1ExPGQ/MDpjMjxkPzE6MDpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwMVx1MDAwMVx1MDAwM1wiLGQpLTF8MDotMTtpZigyPGs+Pj4wKXZhciBmPXcoZSk7ZWxzZSBzd2l0Y2goayl7Y2FzZSAwOnZhciBmPTI7YnJlYWs7Y2FzZSAxOnZhciBmPTE7YnJlYWs7ZGVmYXVsdDplMChlLDEpO3ZhciBmPXBlKG0oZSkpPT09MD8xOncoZSl9fWlmKDc8Zj4+PjApcmV0dXJuIE94KEd0MCk7c3dpdGNoKGYpe2Nhc2UgMDpyZXR1cm5bMCxfMih0LFZyKHQsZSksdXQpLHF0MF07Y2FzZSAxOnJldHVyblswLHoyKF8yKHQsVnIodCxlKSx1dCksZSksSHQwXTtjYXNlIDI6dnIocixZeChlKSk7Y29udGludWU7Y2FzZSAzOnZhciBoPVl4KGUpO3JldHVyblswLHQsbTIoaCwxLFh4KGgpLTF8MCldO2Nhc2UgNDpyZXR1cm5bMCx0LGJ0MF07Y2FzZSA1OmZvcihzdChyLDkxKTs7KXtwcihlKTt2YXIgZz1tKGUpLEE9OTM8Zz9RMTxnPzE6YzI8Zz8yOjE6ZngoXCJcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDVcdTAwMDZcIixnKzF8MCktMXwwO2lmKDU8QT4+PjApdmFyIE49dyhlKTtlbHNlIHN3aXRjaChBKXtjYXNlIDA6dmFyIE49MDticmVhaztjYXNlIDE6Zm9yKDs7KXtlMChlLDUpO3ZhciBDPW0oZSksTz0tMTxDPzkxPEM/OTM8Qz9jMjxDP1ExPEM/MDotMTowOi0xOmZ4KFwiXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXFwwXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXHUwMDAxXCIsQyktMXwwOi0xO2lmKE8hPT0wKXt2YXIgTj13KGUpO2JyZWFrfX1icmVhaztjYXNlIDI6dmFyIE49NDticmVhaztjYXNlIDM6ZTAoZSw0KTt2YXIgTj1wZShtKGUpKT09PTA/NDp3KGUpO2JyZWFrO2Nhc2UgNDplMChlLDUpO3ZhciBMPW0oZSksTT05MTxMPzkzPEw/LTE6ZngocDgsTC05MnwwKS0xfDA6LTEsTj1NPT09MD8xOk09PT0xPzI6dyhlKTticmVhaztkZWZhdWx0OnZhciBOPTN9aWYoNTxOPj4+MCl2YXIgVj1PeChGdDApO2Vsc2Ugc3dpdGNoKE4pe2Nhc2UgMDp2YXIgVj10O2JyZWFrO2Nhc2UgMTp2cihyLFF0MCk7Y29udGludWU7Y2FzZSAyOnN0KHIsOTIpLHN0KHIsOTMpO2NvbnRpbnVlO2Nhc2UgMzpzdChyLDkzKTt2YXIgVj10O2JyZWFrO2Nhc2UgNDp2YXIgVj16MihfMih0LFZyKHQsZSksdXQpLGUpO2JyZWFrO2RlZmF1bHQ6dnIocixZeChlKSk7Y29udGludWV9dmFyIHQ9Vjtjb250aW51ZSB4fWNhc2UgNjpyZXR1cm5bMCx6MihfMih0LFZyKHQsZSksdXQpLGUpLHhuMF07ZGVmYXVsdDp2cihyLFl4KGUpKTtjb250aW51ZX19fSxlUzA9ZnVuY3Rpb24oeCxyKXtwcihyKTt2YXIgZT1tKHIpLHQ9UHY8ZT9TdjxlP3l2PGU/ZHY8ZT8xOjI6bHY8ZT8xOjI6ZnY8ZT9jdjxlP0F2PGU/MToyOnN2PGU/MToyOmMyPGU/UTE8ZT8xOjM6d3Y8ZT8xOjI6ZngoXCJcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDNcdTAwMDNcdTAwMDVcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDZcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcIixlKzF8MCktMXwwO2lmKDU8dD4+PjApdmFyIHU9dyhyKTtlbHNlIHN3aXRjaCh0KXtjYXNlIDA6dmFyIHU9MDticmVhaztjYXNlIDE6dmFyIHU9NjticmVhaztjYXNlIDI6aWYoZTAociwyKSxycyhtKHIpKT09PTApe2Zvcig7OylpZihlMChyLDIpLHJzKG0ocikpIT09MCl7dmFyIHU9dyhyKTticmVha319ZWxzZSB2YXIgdT13KHIpO2JyZWFrO2Nhc2UgMzp2YXIgdT0xO2JyZWFrO2Nhc2UgNDplMChyLDEpO3ZhciB1PXBlKG0ocikpPT09MD8xOncocik7YnJlYWs7ZGVmYXVsdDplMChyLDUpO3ZhciBpPU15KG0ocikpLHU9aT09PTA/NDppPT09MT8zOncocil9aWYoNjx1Pj4+MClyZXR1cm4gT3gobWMwKTtzd2l0Y2godSl7Y2FzZSAwOnJldHVyblswLHgsUnJdO2Nhc2UgMTpyZXR1cm5bMix6Mih4LHIpXTtjYXNlIDI6cmV0dXJuWzIseF07Y2FzZSAzOnZhciBmPWgyKHgsciksbz1acihZciksbD1IYSh4LG8sciksZD1sWzFdO3JldHVyblsxLGQsS3QoZCxmLGxbMl0sbywwKV07Y2FzZSA0OnZhciBrPWgyKHgsciksaD1acihZciksZz1Wdih4LGgsciksQT1nWzFdO3JldHVyblsxLEEsS3QoQSxrLGdbMl0saCwxKV07Y2FzZSA1OnZhciBOPWgyKHgsciksQz1acihZciksTz1yUzAoeCxDLHIpLEw9T1sxXSxNPU9bMl0sVj1kZShMLHIpLHo9WzAsTFsxXSxOLFZdO3JldHVyblswLEwsWzUseixVMShDKSxNXV07ZGVmYXVsdDp2YXIgWT12dCh4LFZyKHgscikpO3JldHVyblswLFksWzcsWXgocildXX19LG56PWZ1bmN0aW9uKHgpe3ZhciByPVR4KHgsXCJpZXhjbFwiKTtpZigwPD1yKXtpZigwPj1yKXJldHVybiB5YzA7dmFyIGU9VHgoeCxcInByaW1lXCIpO2lmKDA8PWUpe2lmKDA+PWUpcmV0dXJuIGRjMDt2YXIgdD1UeCh4LFwic3VwMVwiKTtpZigwPD10KXtpZigwPj10KXJldHVybiBwYzA7dmFyIHU9VHgoeCxcInVhcnJcIik7aWYoMDw9dSl7aWYoMD49dSlyZXR1cm4gbGMwO3ZhciBpPVR4KHgsXCJ4aVwiKTtpZigwPD1pKXtpZigwPj1pKXJldHVybiBhYzA7aWYoIVAoeCxcInlhY3V0ZVwiKSlyZXR1cm4gdmMwO2lmKCFQKHgsXCJ5ZW5cIikpcmV0dXJuIG9jMDtpZighUCh4LFwieXVtbFwiKSlyZXR1cm4gc2MwO2lmKCFQKHgsXCJ6ZXRhXCIpKXJldHVybiBjYzA7aWYoIVAoeCxcInp3alwiKSlyZXR1cm4gZmMwO2lmKCFQKHgsXCJ6d25qXCIpKXJldHVybiBpYzB9ZWxzZXtpZighUCh4LFwidWNpcmNcIikpcmV0dXJuIHVjMDtpZighUCh4LFwidWdyYXZlXCIpKXJldHVybiBuYzA7aWYoIVAoeCxcInVtbFwiKSlyZXR1cm4gdGMwO2lmKCFQKHgsXCJ1cHNpaFwiKSlyZXR1cm4gZWMwO2lmKCFQKHgsXCJ1cHNpbG9uXCIpKXJldHVybiByYzA7aWYoIVAoeCxcInV1bWxcIikpcmV0dXJuIHhjMDtpZighUCh4LFwid2VpZXJwXCIpKXJldHVybiBiZjB9fWVsc2V7dmFyIGY9VHgoeCxcInRoZXRhc3ltXCIpO2lmKDA8PWYpe2lmKDA+PWYpcmV0dXJuIEhmMDtpZighUCh4LFwidGhpbnNwXCIpKXJldHVybiBxZjA7aWYoIVAoeCxcInRob3JuXCIpKXJldHVybiBHZjA7aWYoIVAoeCxcInRpbGRlXCIpKXJldHVybiBRZjA7aWYoIVAoeCxcInRpbWVzXCIpKXJldHVybiBGZjA7aWYoIVAoeCxcInRyYWRlXCIpKXJldHVybiAkZjA7aWYoIVAoeCxcInVBcnJcIikpcmV0dXJuIFpmMDtpZighUCh4LFwidWFjdXRlXCIpKXJldHVybiBXZjB9ZWxzZXtpZighUCh4LFwic3VwMlwiKSlyZXR1cm4gQmYwO2lmKCFQKHgsXCJzdXAzXCIpKXJldHVybiBLZjA7aWYoIVAoeCxcInN1cGVcIikpcmV0dXJuIHpmMDtpZighUCh4LFwic3psaWdcIikpcmV0dXJuIFZmMDtpZighUCh4LFwidGF1XCIpKXJldHVybiBZZjA7aWYoIVAoeCxcInRoZXJlNFwiKSlyZXR1cm4gWGYwO2lmKCFQKHgsXCJ0aGV0YVwiKSlyZXR1cm4gSmYwfX19ZWxzZXt2YXIgbz1UeCh4LFwicmxtXCIpO2lmKDA8PW8pe2lmKDA+PW8pcmV0dXJuIGpmMDt2YXIgbD1UeCh4LFwic2lnbWFcIik7aWYoMDw9bCl7aWYoMD49bClyZXR1cm4gVWYwO2lmKCFQKHgsXCJzaWdtYWZcIikpcmV0dXJuIERmMDtpZighUCh4LFwic2ltXCIpKXJldHVybiBNZjA7aWYoIVAoeCxcInNwYWRlc1wiKSlyZXR1cm4gTGYwO2lmKCFQKHgsXCJzdWJcIikpcmV0dXJuIFJmMDtpZighUCh4LFwic3ViZVwiKSlyZXR1cm4gT2YwO2lmKCFQKHgsXCJzdW1cIikpcmV0dXJuIElmMDtpZighUCh4LFwic3VwXCIpKXJldHVybiBDZjB9ZWxzZXtpZighUCh4LFwicnNhcXVvXCIpKXJldHVybiBOZjA7aWYoIVAoeCxcInJzcXVvXCIpKXJldHVybiBQZjA7aWYoIVAoeCxcInNicXVvXCIpKXJldHVybiBBZjA7aWYoIVAoeCxcInNjYXJvblwiKSlyZXR1cm4gZ2YwO2lmKCFQKHgsXCJzZG90XCIpKXJldHVybiBFZjA7aWYoIVAoeCxcInNlY3RcIikpcmV0dXJuIFNmMDtpZighUCh4LFwic2h5XCIpKXJldHVybiBUZjB9fWVsc2V7dmFyIGQ9VHgoeCxcInJhcXVvXCIpO2lmKDA8PWQpe2lmKDA+PWQpcmV0dXJuIHdmMDtpZighUCh4LFwicmFyclwiKSlyZXR1cm4gX2YwO2lmKCFQKHgsXCJyY2VpbFwiKSlyZXR1cm4gaGYwO2lmKCFQKHgsXCJyZHF1b1wiKSlyZXR1cm4ga2YwO2lmKCFQKHgsXCJyZWFsXCIpKXJldHVybiBtZjA7aWYoIVAoeCxcInJlZ1wiKSlyZXR1cm4geWYwO2lmKCFQKHgsXCJyZmxvb3JcIikpcmV0dXJuIGRmMDtpZighUCh4LFwicmhvXCIpKXJldHVybiBwZjB9ZWxzZXtpZighUCh4LFwicHJvZFwiKSlyZXR1cm4gbGYwO2lmKCFQKHgsXCJwcm9wXCIpKXJldHVybiBhZjA7aWYoIVAoeCxcInBzaVwiKSlyZXR1cm4gdmYwO2lmKCFQKHgsXCJxdW90XCIpKXJldHVybiBvZjA7aWYoIVAoeCxcInJBcnJcIikpcmV0dXJuIHNmMDtpZighUCh4LFwicmFkaWNcIikpcmV0dXJuIGNmMDtpZighUCh4LFwicmFuZ1wiKSlyZXR1cm4gZmYwfX19fWVsc2V7dmFyIGs9VHgoeCxcIm5kYXNoXCIpO2lmKDA8PWspe2lmKDA+PWspcmV0dXJuIGlmMDt2YXIgaD1UeCh4LFwib3JcIik7aWYoMDw9aCl7aWYoMD49aClyZXR1cm4gdWYwO3ZhciBnPVR4KHgsXCJwYXJ0XCIpO2lmKDA8PWcpe2lmKDA+PWcpcmV0dXJuIG5mMDtpZighUCh4LFwicGVybWlsXCIpKXJldHVybiB0ZjA7aWYoIVAoeCxcInBlcnBcIikpcmV0dXJuIGVmMDtpZighUCh4LFwicGhpXCIpKXJldHVybiByZjA7aWYoIVAoeCxcInBpXCIpKXJldHVybiB4ZjA7aWYoIVAoeCxcInBpdlwiKSlyZXR1cm4gYmkwO2lmKCFQKHgsXCJwbHVzbW5cIikpcmV0dXJuIEhpMDtpZighUCh4LFwicG91bmRcIikpcmV0dXJuIHFpMH1lbHNle2lmKCFQKHgsXCJvcmRmXCIpKXJldHVybiBHaTA7aWYoIVAoeCxcIm9yZG1cIikpcmV0dXJuIFFpMDtpZighUCh4LFwib3NsYXNoXCIpKXJldHVybiBGaTA7aWYoIVAoeCxcIm90aWxkZVwiKSlyZXR1cm4gJGkwO2lmKCFQKHgsXCJvdGltZXNcIikpcmV0dXJuIFppMDtpZighUCh4LFwib3VtbFwiKSlyZXR1cm4gV2kwO2lmKCFQKHgsXCJwYXJhXCIpKXJldHVybiBCaTB9fWVsc2V7dmFyIEE9VHgoeCxcIm9hY3V0ZVwiKTtpZigwPD1BKXtpZigwPj1BKXJldHVybiBLaTA7aWYoIVAoeCxcIm9jaXJjXCIpKXJldHVybiB6aTA7aWYoIVAoeCxcIm9lbGlnXCIpKXJldHVybiBWaTA7aWYoIVAoeCxcIm9ncmF2ZVwiKSlyZXR1cm4gWWkwO2lmKCFQKHgsXCJvbGluZVwiKSlyZXR1cm4gWGkwO2lmKCFQKHgsXCJvbWVnYVwiKSlyZXR1cm4gSmkwO2lmKCFQKHgsXCJvbWljcm9uXCIpKXJldHVybiBqaTA7aWYoIVAoeCxcIm9wbHVzXCIpKXJldHVybiBVaTB9ZWxzZXtpZighUCh4LFwibmVcIikpcmV0dXJuIERpMDtpZighUCh4LFwibmlcIikpcmV0dXJuIE1pMDtpZighUCh4LFwibm90XCIpKXJldHVybiBMaTA7aWYoIVAoeCxcIm5vdGluXCIpKXJldHVybiBSaTA7aWYoIVAoeCxcIm5zdWJcIikpcmV0dXJuIE9pMDtpZighUCh4LFwibnRpbGRlXCIpKXJldHVybiBJaTA7aWYoIVAoeCxcIm51XCIpKXJldHVybiBDaTB9fX1lbHNle3ZhciBOPVR4KHgsXCJsZVwiKTtpZigwPD1OKXtpZigwPj1OKXJldHVybiBOaTA7dmFyIEM9VHgoeCxcIm1hY3JcIik7aWYoMDw9Qyl7aWYoMD49QylyZXR1cm4gUGkwO2lmKCFQKHgsXCJtZGFzaFwiKSlyZXR1cm4gQWkwO2lmKCFQKHgsXCJtaWNyb1wiKSlyZXR1cm4gZ2kwO2lmKCFQKHgsXCJtaWRkb3RcIikpcmV0dXJuIEVpMDtpZighUCh4LENEKSlyZXR1cm4gU2kwO2lmKCFQKHgsXCJtdVwiKSlyZXR1cm4gVGkwO2lmKCFQKHgsXCJuYWJsYVwiKSlyZXR1cm4gd2kwO2lmKCFQKHgsXCJuYnNwXCIpKXJldHVybiBfaTB9ZWxzZXtpZighUCh4LFwibGZsb29yXCIpKXJldHVybiBoaTA7aWYoIVAoeCxcImxvd2FzdFwiKSlyZXR1cm4ga2kwO2lmKCFQKHgsXCJsb3pcIikpcmV0dXJuIG1pMDtpZighUCh4LFwibHJtXCIpKXJldHVybiB5aTA7aWYoIVAoeCxcImxzYXF1b1wiKSlyZXR1cm4gZGkwO2lmKCFQKHgsXCJsc3F1b1wiKSlyZXR1cm4gcGkwO2lmKCFQKHgsXCJsdFwiKSlyZXR1cm4gbGkwfX1lbHNle3ZhciBPPVR4KHgsXCJrYXBwYVwiKTtpZigwPD1PKXtpZigwPj1PKXJldHVybiBhaTA7aWYoIVAoeCxcImxBcnJcIikpcmV0dXJuIHZpMDtpZighUCh4LFwibGFtYmRhXCIpKXJldHVybiBvaTA7aWYoIVAoeCxcImxhbmdcIikpcmV0dXJuIHNpMDtpZighUCh4LFwibGFxdW9cIikpcmV0dXJuIGNpMDtpZighUCh4LFwibGFyclwiKSlyZXR1cm4gZmkwO2lmKCFQKHgsXCJsY2VpbFwiKSlyZXR1cm4gaWkwO2lmKCFQKHgsXCJsZHF1b1wiKSlyZXR1cm4gdWkwfWVsc2V7aWYoIVAoeCxcImlncmF2ZVwiKSlyZXR1cm4gbmkwO2lmKCFQKHgsXCJpbWFnZVwiKSlyZXR1cm4gdGkwO2lmKCFQKHgsXCJpbmZpblwiKSlyZXR1cm4gZWkwO2lmKCFQKHgsXCJpb3RhXCIpKXJldHVybiByaTA7aWYoIVAoeCxcImlxdWVzdFwiKSlyZXR1cm4geGkwO2lmKCFQKHgsXCJpc2luXCIpKXJldHVybiBidTA7aWYoIVAoeCxcIml1bWxcIikpcmV0dXJuIEh1MH19fX19ZWxzZXt2YXIgTD1UeCh4LFwiYWVsaWdcIik7aWYoMDw9TCl7aWYoMD49TClyZXR1cm4gcXUwO3ZhciBNPVR4KHgsXCJkZWx0YVwiKTtpZigwPD1NKXtpZigwPj1NKXJldHVybiBHdTA7dmFyIFY9VHgoeCxcImZub2ZcIik7aWYoMDw9Vil7aWYoMD49VilyZXR1cm4gUXUwO3ZhciB6PVR4KHgsXCJndFwiKTtpZigwPD16KXtpZigwPj16KXJldHVybiBGdTA7aWYoIVAoeCxcImhBcnJcIikpcmV0dXJuICR1MDtpZighUCh4LFwiaGFyclwiKSlyZXR1cm4gWnUwO2lmKCFQKHgsXCJoZWFydHNcIikpcmV0dXJuIFd1MDtpZighUCh4LFwiaGVsbGlwXCIpKXJldHVybiBCdTA7aWYoIVAoeCxcImlhY3V0ZVwiKSlyZXR1cm4gS3UwO2lmKCFQKHgsXCJpY2lyY1wiKSlyZXR1cm4genUwfWVsc2V7aWYoIVAoeCxcImZvcmFsbFwiKSlyZXR1cm4gVnUwO2lmKCFQKHgsXCJmcmFjMTJcIikpcmV0dXJuIFl1MDtpZighUCh4LFwiZnJhYzE0XCIpKXJldHVybiBYdTA7aWYoIVAoeCxcImZyYWMzNFwiKSlyZXR1cm4gSnUwO2lmKCFQKHgsXCJmcmFzbFwiKSlyZXR1cm4ganUwO2lmKCFQKHgsXCJnYW1tYVwiKSlyZXR1cm4gVXUwO2lmKCFQKHgsXCJnZVwiKSlyZXR1cm4gRHUwfX1lbHNle3ZhciBZPVR4KHgsXCJlbnNwXCIpO2lmKDA8PVkpe2lmKDA+PVkpcmV0dXJuIE11MDtpZighUCh4LFwiZXBzaWxvblwiKSlyZXR1cm4gTHUwO2lmKCFQKHgsXCJlcXVpdlwiKSlyZXR1cm4gUnUwO2lmKCFQKHgsXCJldGFcIikpcmV0dXJuIE91MDtpZighUCh4LFwiZXRoXCIpKXJldHVybiBJdTA7aWYoIVAoeCxcImV1bWxcIikpcmV0dXJuIEN1MDtpZighUCh4LFwiZXVyb1wiKSlyZXR1cm4gTnUwO2lmKCFQKHgsXCJleGlzdFwiKSlyZXR1cm4gUHUwfWVsc2V7aWYoIVAoeCxcImRpYW1zXCIpKXJldHVybiBBdTA7aWYoIVAoeCxcImRpdmlkZVwiKSlyZXR1cm4gZ3UwO2lmKCFQKHgsXCJlYWN1dGVcIikpcmV0dXJuIEV1MDtpZighUCh4LFwiZWNpcmNcIikpcmV0dXJuIFN1MDtpZighUCh4LFwiZWdyYXZlXCIpKXJldHVybiBUdTA7aWYoIVAoeCxzZSkpcmV0dXJuIHd1MDtpZighUCh4LFwiZW1zcFwiKSlyZXR1cm4gX3UwfX19ZWxzZXt2YXIgdDA9VHgoeCxcImNhcFwiKTtpZigwPD10MCl7aWYoMD49dDApcmV0dXJuIGh1MDt2YXIgaTA9VHgoeCxcImNvcHlcIik7aWYoMDw9aTApe2lmKDA+PWkwKXJldHVybiBrdTA7aWYoIVAoeCxcImNyYXJyXCIpKXJldHVybiBtdTA7aWYoIVAoeCxcImN1cFwiKSlyZXR1cm4geXUwO2lmKCFQKHgsXCJjdXJyZW5cIikpcmV0dXJuIGR1MDtpZighUCh4LFwiZEFyclwiKSlyZXR1cm4gcHUwO2lmKCFQKHgsXCJkYWdnZXJcIikpcmV0dXJuIGx1MDtpZighUCh4LFwiZGFyclwiKSlyZXR1cm4gYXUwO2lmKCFQKHgsXCJkZWdcIikpcmV0dXJuIHZ1MH1lbHNle2lmKCFQKHgsXCJjY2VkaWxcIikpcmV0dXJuIG91MDtpZighUCh4LFwiY2VkaWxcIikpcmV0dXJuIHN1MDtpZighUCh4LFwiY2VudFwiKSlyZXR1cm4gY3UwO2lmKCFQKHgsXCJjaGlcIikpcmV0dXJuIGZ1MDtpZighUCh4LFwiY2lyY1wiKSlyZXR1cm4gaXUwO2lmKCFQKHgsXCJjbHVic1wiKSlyZXR1cm4gdXUwO2lmKCFQKHgsXCJjb25nXCIpKXJldHVybiBudTB9fWVsc2V7dmFyIGo9VHgoeCxcImFyaW5nXCIpO2lmKDA8PWope2lmKDA+PWopcmV0dXJuIHR1MDtpZighUCh4LFwiYXN5bXBcIikpcmV0dXJuIGV1MDtpZighUCh4LFwiYXRpbGRlXCIpKXJldHVybiBydTA7aWYoIVAoeCxcImF1bWxcIikpcmV0dXJuIHh1MDtpZighUCh4LFwiYmRxdW9cIikpcmV0dXJuIGI3MDtpZighUCh4LFwiYmV0YVwiKSlyZXR1cm4gSDcwO2lmKCFQKHgsXCJicnZiYXJcIikpcmV0dXJuIHE3MDtpZighUCh4LFwiYnVsbFwiKSlyZXR1cm4gRzcwfWVsc2V7aWYoIVAoeCxcImFncmF2ZVwiKSlyZXR1cm4gUTcwO2lmKCFQKHgsXCJhbGVmc3ltXCIpKXJldHVybiBGNzA7aWYoIVAoeCxcImFscGhhXCIpKXJldHVybiAkNzA7aWYoIVAoeCxcImFtcFwiKSlyZXR1cm4gWjcwO2lmKCFQKHgsXCJhbmRcIikpcmV0dXJuIFc3MDtpZighUCh4LFwiYW5nXCIpKXJldHVybiBCNzA7aWYoIVAoeCxcImFwb3NcIikpcmV0dXJuIEs3MH19fX1lbHNle3ZhciBLPVR4KHgsXCJOdVwiKTtpZigwPD1LKXtpZigwPj1LKXJldHVybiB6NzA7dmFyIEo9VHgoeCxcIlNpZ21hXCIpO2lmKDA8PUope2lmKDA+PUopcmV0dXJuIFY3MDt2YXIgUT1UeCh4LFwiVXVtbFwiKTtpZigwPD1RKXtpZigwPj1RKXJldHVybiBZNzA7aWYoIVAoeCxcIlhpXCIpKXJldHVybiBYNzA7aWYoIVAoeCxcIllhY3V0ZVwiKSlyZXR1cm4gSjcwO2lmKCFQKHgsXCJZdW1sXCIpKXJldHVybiBqNzA7aWYoIVAoeCxcIlpldGFcIikpcmV0dXJuIFU3MDtpZighUCh4LFwiYWFjdXRlXCIpKXJldHVybiBENzA7aWYoIVAoeCxcImFjaXJjXCIpKXJldHVybiBNNzA7aWYoIVAoeCxcImFjdXRlXCIpKXJldHVybiBMNzB9ZWxzZXtpZighUCh4LFwiVEhPUk5cIikpcmV0dXJuIFI3MDtpZighUCh4LFwiVGF1XCIpKXJldHVybiBPNzA7aWYoIVAoeCxcIlRoZXRhXCIpKXJldHVybiBJNzA7aWYoIVAoeCxcIlVhY3V0ZVwiKSlyZXR1cm4gQzcwO2lmKCFQKHgsXCJVY2lyY1wiKSlyZXR1cm4gTjcwO2lmKCFQKHgsXCJVZ3JhdmVcIikpcmV0dXJuIFA3MDtpZighUCh4LFwiVXBzaWxvblwiKSlyZXR1cm4gQTcwfX1lbHNle3ZhciB4MD1UeCh4LFwiT3RpbGRlXCIpO2lmKDA8PXgwKXtpZigwPj14MClyZXR1cm4gZzcwO2lmKCFQKHgsXCJPdW1sXCIpKXJldHVybiBFNzA7aWYoIVAoeCxcIlBoaVwiKSlyZXR1cm4gUzcwO2lmKCFQKHgsXCJQaVwiKSlyZXR1cm4gVDcwO2lmKCFQKHgsXCJQcmltZVwiKSlyZXR1cm4gdzcwO2lmKCFQKHgsXCJQc2lcIikpcmV0dXJuIF83MDtpZighUCh4LFwiUmhvXCIpKXJldHVybiBoNzA7aWYoIVAoeCxcIlNjYXJvblwiKSlyZXR1cm4gazcwfWVsc2V7aWYoIVAoeCxcIk9FbGlnXCIpKXJldHVybiBtNzA7aWYoIVAoeCxcIk9hY3V0ZVwiKSlyZXR1cm4geTcwO2lmKCFQKHgsXCJPY2lyY1wiKSlyZXR1cm4gZDcwO2lmKCFQKHgsXCJPZ3JhdmVcIikpcmV0dXJuIHA3MDtpZighUCh4LFwiT21lZ2FcIikpcmV0dXJuIGw3MDtpZighUCh4LFwiT21pY3JvblwiKSlyZXR1cm4gYTcwO2lmKCFQKHgsXCJPc2xhc2hcIikpcmV0dXJuIHY3MH19fWVsc2V7dmFyICQ9VHgoeCxcIkVhY3V0ZVwiKTtpZigwPD0kKXtpZigwPj0kKXJldHVybiBvNzA7dmFyIGYwPVR4KHgsXCJJY2lyY1wiKTtpZigwPD1mMCl7aWYoMD49ZjApcmV0dXJuIHM3MDtpZighUCh4LFwiSWdyYXZlXCIpKXJldHVybiBjNzA7aWYoIVAoeCxcIklvdGFcIikpcmV0dXJuIGY3MDtpZighUCh4LFwiSXVtbFwiKSlyZXR1cm4gaTcwO2lmKCFQKHgsXCJLYXBwYVwiKSlyZXR1cm4gdTcwO2lmKCFQKHgsXCJMYW1iZGFcIikpcmV0dXJuIG43MDtpZighUCh4LFwiTXVcIikpcmV0dXJuIHQ3MDtpZighUCh4LFwiTnRpbGRlXCIpKXJldHVybiBlNzB9ZWxzZXtpZighUCh4LFwiRWNpcmNcIikpcmV0dXJuIHI3MDtpZighUCh4LFwiRWdyYXZlXCIpKXJldHVybiB4NzA7aWYoIVAoeCxcIkVwc2lsb25cIikpcmV0dXJuIGJuMDtpZighUCh4LFwiRXRhXCIpKXJldHVybiBIbjA7aWYoIVAoeCxcIkV1bWxcIikpcmV0dXJuIHFuMDtpZighUCh4LFwiR2FtbWFcIikpcmV0dXJuIEduMDtpZighUCh4LFwiSWFjdXRlXCIpKXJldHVybiBRbjB9fWVsc2V7dmFyIHMwPVR4KHgsXCJBdGlsZGVcIik7aWYoMDw9czApe2lmKDA+PXMwKXJldHVybiBGbjA7aWYoIVAoeCxcIkF1bWxcIikpcmV0dXJuICRuMDtpZighUCh4LFwiQmV0YVwiKSlyZXR1cm4gWm4wO2lmKCFQKHgsXCJDY2VkaWxcIikpcmV0dXJuIFduMDtpZighUCh4LFwiQ2hpXCIpKXJldHVybiBCbjA7aWYoIVAoeCxcIkRhZ2dlclwiKSlyZXR1cm4gS24wO2lmKCFQKHgsXCJEZWx0YVwiKSlyZXR1cm4gem4wO2lmKCFQKHgsXCJFVEhcIikpcmV0dXJuIFZuMH1lbHNle2lmKCFQKHgsXCInaW50J1wiKSlyZXR1cm4gWW4wO2lmKCFQKHgsXCJBRWxpZ1wiKSlyZXR1cm4gWG4wO2lmKCFQKHgsXCJBYWN1dGVcIikpcmV0dXJuIEpuMDtpZighUCh4LFwiQWNpcmNcIikpcmV0dXJuIGpuMDtpZighUCh4LFwiQWdyYXZlXCIpKXJldHVybiBVbjA7aWYoIVAoeCxcIkFscGhhXCIpKXJldHVybiBEbjA7aWYoIVAoeCxcIkFyaW5nXCIpKXJldHVybiBNbjB9fX19fXJldHVybiAwfSx1ej1mdW5jdGlvbih4LHIsZSx0KXtmb3IodmFyIHU9eDs7KXt2YXIgaT1mdW5jdGlvbih4MCl7Zm9yKDs7KWlmKGUwKHgwLDgpLEZPKG0oeDApKSE9PTApcmV0dXJuIHcoeDApfTtwcih0KTt2YXIgZj1tKHQpLG89Q2k8Zj9RMTxmPzE6YzI8Zj8yOjE6ZngoXCJcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDRcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDVcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDZcdTAwMDJcXHgwN1x1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNlx1MDAwMlxcYlwiLGYrMXwwKS0xfDA7aWYoNzxvPj4+MCl2YXIgbD13KHQpO2Vsc2Ugc3dpdGNoKG8pe2Nhc2UgMDp2YXIgbD0zO2JyZWFrO2Nhc2UgMTp2YXIgbD1pKHQpO2JyZWFrO2Nhc2UgMjp2YXIgbD00O2JyZWFrO2Nhc2UgMzplMCh0LDQpO3ZhciBsPXBlKG0odCkpPT09MD80OncodCk7YnJlYWs7Y2FzZSA0OmUwKHQsOCk7dmFyIGQ9RlYobSh0KSk7aWYoZD09PTApe3ZhciBrPWdWKG0odCkpO2lmKGs9PT0wKWZvcig7Oyl7dmFyIGg9QVYobSh0KSk7aWYoaCE9PTApe3ZhciBsPWg9PT0xPzY6dyh0KTticmVha319ZWxzZSBpZihrPT09MSYmUHIobSh0KSk9PT0wKWZvcig7Oyl7dmFyIGc9V1YobSh0KSk7aWYoZyE9PTApe3ZhciBsPWc9PT0xPzU6dyh0KTticmVha319ZWxzZSB2YXIgbD13KHQpfWVsc2UgaWYoZD09PTEmJmFyKG0odCkpPT09MCl7dmFyIEE9enQobSh0KSk7aWYoQT09PTApe3ZhciBOPXp0KG0odCkpO2lmKE49PT0wKXt2YXIgQz16dChtKHQpKTtpZihDPT09MCl7dmFyIE89enQobSh0KSk7aWYoTz09PTApe3ZhciBMPXp0KG0odCkpO2lmKEw9PT0wKXZhciBNPXp0KG0odCkpLGw9TT09PTA/VlYobSh0KSk9PT0wPzc6dyh0KTpNPT09MT83OncodCk7ZWxzZSB2YXIgbD1MPT09MT83OncodCl9ZWxzZSB2YXIgbD1PPT09MT83OncodCl9ZWxzZSB2YXIgbD1DPT09MT83OncodCl9ZWxzZSB2YXIgbD1OPT09MT83OncodCl9ZWxzZSB2YXIgbD1BPT09MT83OncodCl9ZWxzZSB2YXIgbD13KHQpO2JyZWFrO2Nhc2UgNTp2YXIgbD0wO2JyZWFrO2Nhc2UgNjplMCh0LDEpO3ZhciBsPUZPKG0odCkpPT09MD9pKHQpOncodCk7YnJlYWs7ZGVmYXVsdDplMCh0LDIpO3ZhciBsPUZPKG0odCkpPT09MD9pKHQpOncodCl9aWYoODxsPj4+MClyZXR1cm4gT3gocm4wKTtzd2l0Y2gobCl7Y2FzZSAwOnJldHVybiAkYSh0KSx1O2Nhc2UgMTpyZXR1cm4gcU8odSxWcih1LHQpLHRuMCxlbjApO2Nhc2UgMjpyZXR1cm4gcU8odSxWcih1LHQpLHVuMCxubjApO2Nhc2UgMzpyZXR1cm4gdnQodSxWcih1LHQpKTtjYXNlIDQ6dmFyIFY9WXgodCk7dnIoZSxWKSx2cihyLFYpO3ZhciB1PXoyKHUsdCk7Y29udGludWU7Y2FzZSA1OnZhciB6PVl4KHQpLFk9bTIoeiwzLFh4KHopLTR8MCk7dnIoZSx6KSxiYyhyLGZ0KEZ4KGluMCxZKSkpO2NvbnRpbnVlO2Nhc2UgNjp2YXIgdDA9WXgodCksaTA9bTIodDAsMixYeCh0MCktM3wwKTt2cihlLHQwKSxiYyhyLGZ0KGkwKSk7Y29udGludWU7Y2FzZSA3OnZhciBqPVl4KHQpLEs9bTIoaiwxLFh4KGopLTJ8MCk7dnIoZSxqKTt2YXIgSj1ueihLKTtKP2JjKHIsSlsxXSk6dnIocixGeChjbjAsRngoSyxmbjApKSk7Y29udGludWU7ZGVmYXVsdDp2YXIgUT1ZeCh0KTt2cihlLFEpLHZyKHIsUSk7Y29udGludWV9fX0sdFMwPWZ1bmN0aW9uKHgscil7cHIocik7dmFyIGU9YlQwKG0ocikpO2lmKDE0PGU+Pj4wKXZhciB0PXcocik7ZWxzZSBzd2l0Y2goZSl7Y2FzZSAwOnZhciB0PTA7YnJlYWs7Y2FzZSAxOnZhciB0PTE0O2JyZWFrO2Nhc2UgMjppZihlMChyLDIpLHJzKG0ocikpPT09MCl7Zm9yKDs7KWlmKGUwKHIsMikscnMobShyKSkhPT0wKXt2YXIgdD13KHIpO2JyZWFrfX1lbHNlIHZhciB0PXcocik7YnJlYWs7Y2FzZSAzOnZhciB0PTE7YnJlYWs7Y2FzZSA0OmUwKHIsMSk7dmFyIHQ9cGUobShyKSk9PT0wPzE6dyhyKTticmVhaztjYXNlIDU6dmFyIHQ9MTI7YnJlYWs7Y2FzZSA2OnZhciB0PTEzO2JyZWFrO2Nhc2UgNzp2YXIgdD0xMDticmVhaztjYXNlIDg6ZTAociw2KTt2YXIgdT1NeShtKHIpKSx0PXU9PT0wPzQ6dT09PTE/Mzp3KHIpO2JyZWFrO2Nhc2UgOTp2YXIgdD05O2JyZWFrO2Nhc2UgMTA6dmFyIHQ9NTticmVhaztjYXNlIDExOnZhciB0PTExO2JyZWFrO2Nhc2UgMTI6dmFyIHQ9NzticmVhaztjYXNlIDEzOmlmKGUwKHIsMTQpLE1vKG0ocikpPT09MCl7dmFyIGk9WXYobShyKSk7aWYoaT09PTApdmFyIHQ9UHIobShyKSk9PT0wJiZQcihtKHIpKT09PTAmJlByKG0ocikpPT09MD8xMzp3KHIpO2Vsc2UgaWYoaT09PTEmJlByKG0ocikpPT09MClmb3IoOzspe3ZhciBmPVh2KG0ocikpO2lmKGYhPT0wKXt2YXIgdD1mPT09MT8xMzp3KHIpO2JyZWFrfX1lbHNlIHZhciB0PXcocil9ZWxzZSB2YXIgdD13KHIpO2JyZWFrO2RlZmF1bHQ6dmFyIHQ9OH1pZigxNDx0Pj4+MClyZXR1cm4gT3goTG4wKTtzd2l0Y2godCl7Y2FzZSAwOnJldHVyblswLHgsUnJdO2Nhc2UgMTpyZXR1cm5bMix6Mih4LHIpXTtjYXNlIDI6cmV0dXJuWzIseF07Y2FzZSAzOnZhciBvPWgyKHgsciksbD1acihZciksZD1IYSh4LGwsciksaz1kWzFdO3JldHVyblsxLGssS3QoayxvLGRbMl0sbCwwKV07Y2FzZSA0OnZhciBoPWgyKHgsciksZz1acihZciksQT1Wdih4LGcsciksTj1BWzFdO3JldHVyblsxLE4sS3QoTixoLEFbMl0sZywxKV07Y2FzZSA1OnJldHVyblswLHgsOThdO2Nhc2UgNjpyZXR1cm5bMCx4LERlXTtjYXNlIDc6cmV0dXJuWzAseCw5OV07Y2FzZSA4OnJldHVyblswLHgsMF07Y2FzZSA5OnJldHVyblswLHgsODZdO2Nhc2UgMTA6cmV0dXJuWzAseCwxMF07Y2FzZSAxMTpyZXR1cm5bMCx4LDgyXTtjYXNlIDEyOnZhciBDPVl4KHIpLE89aDIoeCxyKSxMPVpyKFlyKSxNPVpyKFlyKTt2cihNLEMpO2Zvcih2YXIgVj1BcihDLFwiJ1wiKSx6PXg7Oyl7cHIocik7dmFyIFk9bShyKSx0MD0zOTxZP1ExPFk/MTpjMjxZPzI6MTpmeChcIlx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwNFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNlxceDA3XCIsWSsxfDApLTF8MDtpZig2PHQwPj4+MCl2YXIgaTA9dyhyKTtlbHNlIHN3aXRjaCh0MCl7Y2FzZSAwOnZhciBpMD0yO2JyZWFrO2Nhc2UgMTpmb3IoOzspe2UwKHIsNyk7dmFyIGo9bShyKSxLPS0xPGo/Mzc8aj8zOTxqP2MyPGo/UTE8aj8wOi0xOjA6LTE6ZngoXCJcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcdTAwMDFcXDBcdTAwMDFcdTAwMDFcdTAwMDFcIixqKS0xfDA6LTE7aWYoSyE9PTApe3ZhciBpMD13KHIpO2JyZWFrfX1icmVhaztjYXNlIDI6dmFyIGkwPTM7YnJlYWs7Y2FzZSAzOmUwKHIsMyk7dmFyIGkwPXBlKG0ocikpPT09MD8zOncocik7YnJlYWs7Y2FzZSA0OnZhciBpMD0xO2JyZWFrO2Nhc2UgNTplMChyLDcpO3ZhciBKPUZWKG0ocikpO2lmKEo9PT0wKXt2YXIgUT1nVihtKHIpKTtpZihRPT09MClmb3IoOzspe3ZhciB4MD1BVihtKHIpKTtpZih4MCE9PTApe3ZhciBpMD14MD09PTE/NTp3KHIpO2JyZWFrfX1lbHNlIGlmKFE9PT0xJiZQcihtKHIpKT09PTApZm9yKDs7KXt2YXIgJD1XVihtKHIpKTtpZigkIT09MCl7dmFyIGkwPSQ9PT0xPzQ6dyhyKTticmVha319ZWxzZSB2YXIgaTA9dyhyKX1lbHNlIGlmKEo9PT0xJiZhcihtKHIpKT09PTApe3ZhciBmMD16dChtKHIpKTtpZihmMD09PTApe3ZhciBzMD16dChtKHIpKTtpZihzMD09PTApe3ZhciB2MD16dChtKHIpKTtpZih2MD09PTApe3ZhciBvMD16dChtKHIpKTtpZihvMD09PTApe3ZhciBjMD16dChtKHIpKTtpZihjMD09PTApdmFyIGQwPXp0KG0ocikpLGkwPWQwPT09MD9WVihtKHIpKT09PTA/Njp3KHIpOmQwPT09MT82Oncocik7ZWxzZSB2YXIgaTA9YzA9PT0xPzY6dyhyKX1lbHNlIHZhciBpMD1vMD09PTE/Njp3KHIpfWVsc2UgdmFyIGkwPXYwPT09MT82Oncocil9ZWxzZSB2YXIgaTA9czA9PT0xPzY6dyhyKX1lbHNlIHZhciBpMD1mMD09PTE/Njp3KHIpfWVsc2UgdmFyIGkwPXcocik7YnJlYWs7ZGVmYXVsdDp2YXIgaTA9MH1pZig3PGkwPj4+MCl2YXIgRTA9T3goc24wKTtlbHNlIHN3aXRjaChpMCl7Y2FzZSAwOmlmKCFWKXtzdChNLDM5KSxzdChMLDM5KTtjb250aW51ZX12YXIgRTA9ejticmVhaztjYXNlIDE6aWYoVil7c3QoTSwzNCksc3QoTCwzNCk7Y29udGludWV9dmFyIEUwPXo7YnJlYWs7Y2FzZSAyOnZhciBFMD12dCh6LFZyKHoscikpO2JyZWFrO2Nhc2UgMzp2YXIgTDA9WXgocik7dnIoTSxMMCksdnIoTCxMMCk7dmFyIHo9ejIoeixyKTtjb250aW51ZTtjYXNlIDQ6dmFyIFgwPVl4KHIpLHh4PW0yKFgwLDMsWHgoWDApLTR8MCk7dnIoTSxYMCksYmMoTCxmdChGeChvbjAseHgpKSk7Y29udGludWU7Y2FzZSA1OnZhciBnMD1ZeChyKSwkMD1tMihnMCwyLFh4KGcwKS0zfDApO3ZyKE0sZzApLGJjKEwsZnQoJDApKTtjb250aW51ZTtjYXNlIDY6dmFyIG4wPVl4KHIpLGl4PW0yKG4wLDEsWHgobjApLTJ8MCk7dnIoTSxuMCk7dmFyIHJ4PW56KGl4KTtyeD9iYyhMLHJ4WzFdKTp2cihMLEZ4KGFuMCxGeChpeCx2bjApKSk7Y29udGludWU7ZGVmYXVsdDp2YXIgZHg9WXgocik7dnIoTSxkeCksdnIoTCxkeCk7Y29udGludWV9dmFyIGF4PWRlKEUwLHIpO3ZyKE0sQyk7dmFyIFN4PVUxKEwpLEQwPVUxKE0pO3JldHVyblswLEUwLFsxMCxbMCxFMFsxXSxPLGF4XSxTeCxEMF1dfWNhc2UgMTM6Zm9yKHZhciBOMD1yWzZdOzspe3ByKHIpO3ZhciBBMD1tKHIpLFkwPUhyPEEwPzE6ZngoXCJcdTAwMDFcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDJcdTAwMDRcdTAwMDJcdTAwMDJcdTAwMDNcdTAwMDJcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcdTAwMDNcIixBMCsxfDApLTF8MDtpZigzPFkwPj4+MCl2YXIgQzA9dyhyKTtlbHNlIHN3aXRjaChZMCl7Y2FzZSAwOnZhciBDMD0xO2JyZWFrO2Nhc2UgMTp2YXIgQzA9MjticmVhaztjYXNlIDI6dmFyIEMwPTA7YnJlYWs7ZGVmYXVsdDppZihlMChyLDIpLE1vKG0ocikpPT09MCl7dmFyIEY9WXYobShyKSk7aWYoRj09PTApdmFyIEMwPVByKG0ocikpPT09MCYmUHIobShyKSk9PT0wJiZQcihtKHIpKT09PTA/MDp3KHIpO2Vsc2UgaWYoRj09PTEmJlByKG0ocikpPT09MClmb3IoOzspe3ZhciBIPVh2KG0ocikpO2lmKEghPT0wKXt2YXIgQzA9SD09PTE/MDp3KHIpO2JyZWFrfX1lbHNlIHZhciBDMD13KHIpfWVsc2UgdmFyIEMwPXcocil9aWYoMjxDMD4+PjApdGhyb3cgcTAoWzAsd3IsSnQwXSwxKTtzd2l0Y2goQzApe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDppZihWTyh4VihyKSkpY29udGludWU7ZVYociwxKX12YXIgQj1yWzNdO0xPKHIsTjApO3ZhciBhMD10MShyKSxtMD1xbCh4LE4wLEIpO3JldHVyblswLHgsWzgsWmwoYTApLG0wXV19ZGVmYXVsdDpyZXR1cm5bMCx4LFs3LFl4KHIpXV19fSxuUzA9ZnVuY3Rpb24oeCxyKXtwcihyKTt2YXIgZT1tKHIpLHQ9LTE8ZT9QdjxlP1N2PGU/eXY8ZT9kdjxlPzA6MTpsdjxlPzA6MTpmdjxlP2N2PGU/QXY8ZT8wOjE6c3Y8ZT8wOjE6YzI8ZT9RMTxlPzA6Mjp3djxlPzA6MTpmeChcIlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwNFx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwNlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMlx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVx1MDAwMVwiLGUpLTF8MDotMTtpZig1PHQ+Pj4wKXZhciB1PXcocik7ZWxzZSBzd2l0Y2godCl7Y2FzZSAwOnZhciB1PTU7YnJlYWs7Y2FzZSAxOmlmKGUwKHIsMSkscnMobShyKSk9PT0wKXtmb3IoOzspaWYoZTAociwxKSxycyhtKHIpKSE9PTApe3ZhciB1PXcocik7YnJlYWt9fWVsc2UgdmFyIHU9dyhyKTticmVhaztjYXNlIDI6dmFyIHU9MDticmVhaztjYXNlIDM6ZTAociwwKTt2YXIgdT1wZShtKHIpKT09PTA/MDp3KHIpO2JyZWFrO2Nhc2UgNDplMChyLDUpO3ZhciBpPU15KG0ocikpLHU9aT09PTA/MzppPT09MT8yOncocik7YnJlYWs7ZGVmYXVsdDp2YXIgdT00fWlmKDU8dT4+PjApcmV0dXJuIE94KENuMCk7c3dpdGNoKHUpe2Nhc2UgMDpyZXR1cm5bMix6Mih4LHIpXTtjYXNlIDE6cmV0dXJuWzIseF07Y2FzZSAyOnZhciBmPWgyKHgsciksbz1acihZciksbD1IYSh4LG8sciksZD1sWzFdO3JldHVyblsxLGQsS3QoZCxmLGxbMl0sbywwKV07Y2FzZSAzOnZhciBrPWgyKHgsciksaD1acihZciksZz1Wdih4LGgsciksQT1nWzFdO3JldHVyblsxLEEsS3QoQSxrLGdbMl0saCwxKV07Y2FzZSA0OnZhciBOPWgyKHgsciksQz1acihZciksTz1acihZciksTD10eih4LEMsTyxyKSxNPUxbMV0sVj1MWzJdLHo9ZGUoTSxyKSxZPVswLE1bMV0sTix6XSx0MD1VMShPKTtyZXR1cm5bMCxNLFszLFswLFksVTEoQyksdDAsMCxWXV1dO2RlZmF1bHQ6dmFyIGkwPXZ0KHgsVnIoeCxyKSk7cmV0dXJuWzAsaTAsWzMsWzAsVnIoaTAsciksT24wLEluMCwwLDFdXV19fSx1UzA9ZnVuY3Rpb24oeCxyKXtmdW5jdGlvbiBlKFQpe2Zvcig7OylpZihlMChULDI5KSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gdChUKXtlMChULDI4KTt2YXIgWD1PMShtKFQpKTtpZihYIT09MClyZXR1cm4gWD09PTE/ZShUKTp3KFQpO2Zvcig7OylpZihlMChULDI2KSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gdShUKXtlMChULDI3KTt2YXIgWD1PMShtKFQpKTtpZihYIT09MClyZXR1cm4gWD09PTE/ZShUKTp3KFQpO2Zvcig7OylpZihlMChULDI1KSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gaShUKXtlMChULDMwKTt2YXIgWD1RYShtKFQpKTtpZigyPFg+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChYKXtjYXNlIDA6cmV0dXJuIGUoVCk7Y2FzZSAxOmZvcig7Oyl7ZTAoVCwzMCk7dmFyIEYwPXRzKG0oVCkpO2lmKDM8RjA+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChGMCl7Y2FzZSAwOnJldHVybiBlKFQpO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6eDpmb3IoOzspe2lmKGRyKG0oVCkpIT09MClyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMzApO3ZhciBzeD10cyhtKFQpKTtpZigzPHN4Pj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goc3gpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gdShUKX19fWRlZmF1bHQ6cmV0dXJuIHUoVCl9fWRlZmF1bHQ6cmV0dXJuIHUoVCl9fWZ1bmN0aW9uIGYoVCl7eDpmb3IoOzspe2lmKGRyKG0oVCkpIT09MClyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMzApO3ZhciBYPVlWKG0oVCkpO2lmKDQ8WD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKFgpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6cmV0dXJuIGkoVCk7Y2FzZSAyOmNvbnRpbnVlO2Nhc2UgMzpjb250aW51ZSB4O2RlZmF1bHQ6cmV0dXJuIHQoVCl9fX19ZnVuY3Rpb24gbyhUKXtmb3IoOzspaWYoZTAoVCwxOSksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIGwoVCl7Zm9yKDs7KWlmKGUwKFQsMTkpLGFyKG0oVCkpIT09MClyZXR1cm4gdyhUKX1mdW5jdGlvbiBkKFQpe2Zvcig7OylpZihlMChULDEzKSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gayhUKXtmb3IoOzspaWYoZTAoVCwxMyksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIGgoVCl7Zm9yKDs7KWlmKGUwKFQsOSksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIGcoVCl7Zm9yKDs7KWlmKGUwKFQsOSksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIEEoVCl7Zm9yKDs7KWlmKGUwKFQsMTUpLGFyKG0oVCkpIT09MClyZXR1cm4gdyhUKX1mdW5jdGlvbiBOKFQpe2UwKFQsMTUpO3ZhciBYPU8xKG0oVCkpO2lmKFghPT0wKXJldHVybiBYPT09MT9BKFQpOncoVCk7Zm9yKDs7KWlmKGUwKFQsMTUpLGFyKG0oVCkpIT09MClyZXR1cm4gdyhUKX1mdW5jdGlvbiBDKFQpe2Zvcig7OylpZihlMChULDIzKSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gTyhUKXtlMChULDIyKTt2YXIgWD1PMShtKFQpKTtpZihYIT09MClyZXR1cm4gWD09PTE/QyhUKTp3KFQpO2Zvcig7OylpZihlMChULDIxKSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9ZnVuY3Rpb24gTChUKXtmb3IoOzspaWYoZTAoVCwyMyksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIE0oVCl7ZTAoVCwyMik7dmFyIFg9TzEobShUKSk7aWYoWCE9PTApcmV0dXJuIFg9PT0xP0woVCk6dyhUKTtmb3IoOzspaWYoZTAoVCwyMSksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfWZ1bmN0aW9uIFYoVCl7eDpmb3IoOzspe2lmKGRyKG0oVCkpIT09MClyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMjQpO3ZhciBYPXRzKG0oVCkpO2lmKDM8WD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKFgpe2Nhc2UgMDpyZXR1cm4gTChUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gTShUKX19fX1mdW5jdGlvbiB6KFQpe2UwKFQsMjkpO3ZhciBYPXpWKG0oVCkpO2lmKDM8WD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKFgpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6dmFyIEYwPUlvKG0oVCkpO2lmKEYwPT09MClmb3IoOzspe2UwKFQsMjQpO3ZhciBzeD1RYShtKFQpKTtpZigyPHN4Pj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goc3gpe2Nhc2UgMDpyZXR1cm4gTChUKTtjYXNlIDE6Y29udGludWU7ZGVmYXVsdDpyZXR1cm4gTShUKX19aWYoRjAhPT0xKXJldHVybiB3KFQpO2Zvcig7Oyl7ZTAoVCwyNCk7dmFyIGV4PXRzKG0oVCkpO2lmKDM8ZXg+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChleCl7Y2FzZSAwOnJldHVybiBMKFQpO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6cmV0dXJuIFYoVCk7ZGVmYXVsdDpyZXR1cm4gTShUKX19Y2FzZSAyOmZvcig7Oyl7ZTAoVCwyNCk7dmFyIFUwPVFhKG0oVCkpO2lmKDI8VTA+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChVMCl7Y2FzZSAwOnJldHVybiBDKFQpO2Nhc2UgMTpjb250aW51ZTtkZWZhdWx0OnJldHVybiBPKFQpfX1kZWZhdWx0OmZvcig7Oyl7ZTAoVCwyNCk7dmFyIE54PXRzKG0oVCkpO2lmKDM8Tng+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChOeCl7Y2FzZSAwOnJldHVybiBDKFQpO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6cmV0dXJuIFYoVCk7ZGVmYXVsdDpyZXR1cm4gTyhUKX19fX1mdW5jdGlvbiBZKFQpe2UwKFQsMzApO3ZhciBYPU9WKG0oVCkpO2lmKDM8WD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKFgpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6Zm9yKDs7KXtlMChULDMwKTt2YXIgRjA9T28obShUKSk7aWYoNDxGMD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKEYwKXtjYXNlIDA6cmV0dXJuIGUoVCk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpyZXR1cm4geihUKTtjYXNlIDM6eDpmb3IoOzspe2lmKGRyKG0oVCkpIT09MClyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMzApO3ZhciBzeD1PbyhtKFQpKTtpZig0PHN4Pj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goc3gpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOnJldHVybiB6KFQpO2Nhc2UgMzpjb250aW51ZSB4O2RlZmF1bHQ6cmV0dXJuIHUoVCl9fX1kZWZhdWx0OnJldHVybiB1KFQpfX1jYXNlIDI6cmV0dXJuIHooVCk7ZGVmYXVsdDpyZXR1cm4gdShUKX19ZnVuY3Rpb24gdDAoVCl7cmV0dXJuIEl5KG0oVCkpPT09MCYmQXkobShUKSk9PT0wJiZCVihtKFQpKT09PTAmJkxWKG0oVCkpPT09MCYmTVYobShUKSk9PT0wJiZHTyhtKFQpKT09PTAmJlFsKG0oVCkpPT09MCYmSXkobShUKSk9PT0wJiZNbyhtKFQpKT09PTAmJkRWKG0oVCkpPT09MCYmR2wobShUKSk9PT0wPzM6dyhUKX1mdW5jdGlvbiBpMChUKXtyZXR1cm4gZTAoVCwzKSwkVihtKFQpKT09PTA/Mzp3KFQpfWZ1bmN0aW9uIGooVCl7dmFyIFg9SFQwKG0oVCkpO2lmKDMwPFg+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChYKXtjYXNlIDA6cmV0dXJuIDY0O2Nhc2UgMTpyZXR1cm4gNjU7Y2FzZSAyOmlmKGUwKFQsMSkscnMobShUKSkhPT0wKXJldHVybiB3KFQpO2Zvcig7OylpZihlMChULDEpLHJzKG0oVCkpIT09MClyZXR1cm4gdyhUKTtjYXNlIDM6cmV0dXJuIDA7Y2FzZSA0OnJldHVybiBlMChULDApLHBlKG0oVCkpPT09MD8wOncoVCk7Y2FzZSA1OnJldHVybiA2O2Nhc2UgNjpyZXR1cm4gNjM7Y2FzZSA3OmlmKGUwKFQsNjUpLFFsKG0oVCkpIT09MClyZXR1cm4gdyhUKTt2YXIgRjA9bShUKSxzeD1mbjxGMD9EdDxGMD8tMTowOi0xO2lmKHN4IT09MHx8R2wobShUKSkhPT0wfHxRbChtKFQpKSE9PTApcmV0dXJuIHcoVCk7dmFyIGV4PW0oVCksVTA9bDI8ZXg/RzI8ZXg/LTE6MDotMTtyZXR1cm4gVTA9PT0wJiZDVihtKFQpKT09PTA/MzE6dyhUKTtjYXNlIDg6ZTAoVCw1OCk7dmFyIE54PW0oVCksbXg9Mzc8Tng/Mzg8Tng/LTE6MDotMTtyZXR1cm4gbXg9PT0wPzU1OncoVCk7Y2FzZSA5OnJldHVybiAzODtjYXNlIDEwOnJldHVybiAzOTtjYXNlIDExOnJldHVybiBlMChULDUzKSxaVihtKFQpKT09PTA/NDp3KFQpO2Nhc2UgMTI6cmV0dXJuIDYxO2Nhc2UgMTM6cmV0dXJuIDQzO2Nhc2UgMTQ6cmV0dXJuIDYyO2Nhc2UgMTU6ZTAoVCw0MSk7dmFyIEJ4PXFhKG0oVCkpO2lmKEJ4PT09MClyZXR1cm4gJE8obShUKSk9PT0wPzQwOncoVCk7aWYoQnghPT0xKXJldHVybiB3KFQpO2Zvcig7Oyl7ZTAoVCwzMCk7dmFyIEd4PU9vKG0oVCkpO2lmKDQ8R3g+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChHeCl7Y2FzZSAwOnJldHVybiBlKFQpO2Nhc2UgMTpjb250aW51ZTtjYXNlIDI6cmV0dXJuIHooVCk7Y2FzZSAzOng6Zm9yKDs7KXtpZihkcihtKFQpKSE9PTApcmV0dXJuIHcoVCk7Zm9yKDs7KXtlMChULDMwKTt2YXIgSjA9T28obShUKSk7aWYoNDxKMD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKEowKXtjYXNlIDA6cmV0dXJuIGUoVCk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpyZXR1cm4geihUKTtjYXNlIDM6Y29udGludWUgeDtkZWZhdWx0OnJldHVybiB1KFQpfX19ZGVmYXVsdDpyZXR1cm4gdShUKX19Y2FzZSAxNjplMChULDY1KTt2YXIgYng9TXkobShUKSk7aWYoYnghPT0wKXJldHVybiBieD09PTE/NTp3KFQpO2UwKFQsMik7dmFyIEp4PV95KG0oVCkpO2lmKDI8Sng+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChKeCl7Y2FzZSAwOmZvcig7Oyl7dmFyIFcwPV95KG0oVCkpO2lmKDI8VzA+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChXMCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpyZXR1cm4gaTAoVCk7ZGVmYXVsdDpyZXR1cm4gdDAoVCl9fWNhc2UgMTpyZXR1cm4gaTAoVCk7ZGVmYXVsdDpyZXR1cm4gdDAoVCl9Y2FzZSAxNzplMChULDMwKTt2YXIgbnI9alYobShUKSk7aWYoODxucj4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKG5yKXtjYXNlIDA6cmV0dXJuIGUoVCk7Y2FzZSAxOnJldHVybiBZKFQpO2Nhc2UgMjpmb3IoOzspe2UwKFQsMTYpO3ZhciBWMD1LVihtKFQpKTtpZig0PFYwPj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goVjApe2Nhc2UgMDpyZXR1cm4gQShUKTtjYXNlIDE6cmV0dXJuIGkoVCk7Y2FzZSAyOmNvbnRpbnVlO2Nhc2UgMzpmb3IoOzspe2UwKFQsMTUpO3ZhciBTcj1oeShtKFQpKTtpZigzPFNyPj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goU3Ipe2Nhc2UgMDpyZXR1cm4gQShUKTtjYXNlIDE6cmV0dXJuIGkoVCk7Y2FzZSAyOmNvbnRpbnVlO2RlZmF1bHQ6cmV0dXJuIE4oVCl9fWRlZmF1bHQ6cmV0dXJuIE4oVCl9fWNhc2UgMzpmb3IoOzspe2UwKFQsMzApO3ZhciBVcj1oeShtKFQpKTtpZigzPFVyPj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goVXIpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6cmV0dXJuIGkoVCk7Y2FzZSAyOmNvbnRpbnVlO2RlZmF1bHQ6cmV0dXJuIHQoVCl9fWNhc2UgNDplMChULDI5KTt2YXIgbHg9VVYobShUKSk7aWYobHg9PT0wKXJldHVybiBlKFQpO2lmKGx4IT09MSlyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMTApO3ZhciBicj1EeShtKFQpKTtpZigzPGJyPj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goYnIpe2Nhc2UgMDpyZXR1cm4gZyhUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOng6Zm9yKDs7KXtpZihlcyhtKFQpKSE9PTApcmV0dXJuIHcoVCk7Zm9yKDs7KXtlMChULDEwKTt2YXIgZTI9RHkobShUKSk7aWYoMzxlMj4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKGUyKXtjYXNlIDA6cmV0dXJuIGgoVCk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpjb250aW51ZSB4O2RlZmF1bHQ6ZTAoVCw4KTt2YXIgaDE9TzEobShUKSk7aWYoaDEhPT0wKXJldHVybiBoMT09PTE/aChUKTp3KFQpO2Zvcig7OylpZihlMChULDcpLGFyKG0oVCkpIT09MClyZXR1cm4gdyhUKX19fWRlZmF1bHQ6ZTAoVCw4KTt2YXIgSXI9TzEobShUKSk7aWYoSXIhPT0wKXJldHVybiBJcj09PTE/ZyhUKTp3KFQpO2Zvcig7OylpZihlMChULDcpLGFyKG0oVCkpIT09MClyZXR1cm4gdyhUKX19Y2FzZSA1OnJldHVybiB6KFQpO2Nhc2UgNjplMChULDI5KTt2YXIgUjE9SlYobShUKSk7aWYoUjE9PT0wKXJldHVybiBlKFQpO2lmKFIxIT09MSlyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMTQpO3ZhciBfPUx5KG0oVCkpO2lmKDM8Xz4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKF8pe2Nhc2UgMDpyZXR1cm4gayhUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOng6Zm9yKDs7KXtpZihWMihtKFQpKSE9PTApcmV0dXJuIHcoVCk7Zm9yKDs7KXtlMChULDE0KTt2YXIgYj1MeShtKFQpKTtpZigzPGI+Pj4wKXJldHVybiB3KFQpO3N3aXRjaChiKXtjYXNlIDA6cmV0dXJuIGQoVCk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpjb250aW51ZSB4O2RlZmF1bHQ6ZTAoVCwxMik7dmFyIHIwPU8xKG0oVCkpO2lmKHIwIT09MClyZXR1cm4gcjA9PT0xP2QoVCk6dyhUKTtmb3IoOzspaWYoZTAoVCwxMSksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfX19ZGVmYXVsdDplMChULDEyKTt2YXIgUzA9TzEobShUKSk7aWYoUzAhPT0wKXJldHVybiBTMD09PTE/ayhUKTp3KFQpO2Zvcig7OylpZihlMChULDExKSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9fWNhc2UgNzplMChULDI5KTt2YXIgRz1QVihtKFQpKTtpZihHPT09MClyZXR1cm4gZShUKTtpZihHIT09MSlyZXR1cm4gdyhUKTtmb3IoOzspe2UwKFQsMjApO3ZhciBoMD1VeShtKFQpKTtpZigzPGgwPj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goaDApe2Nhc2UgMDpyZXR1cm4gbChUKTtjYXNlIDE6Y29udGludWU7Y2FzZSAyOng6Zm9yKDs7KXtpZihQcihtKFQpKSE9PTApcmV0dXJuIHcoVCk7Zm9yKDs7KXtlMChULDIwKTt2YXIgejA9VXkobShUKSk7aWYoMzx6MD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKHowKXtjYXNlIDA6cmV0dXJuIG8oVCk7Y2FzZSAxOmNvbnRpbnVlO2Nhc2UgMjpjb250aW51ZSB4O2RlZmF1bHQ6ZTAoVCwxOCk7dmFyIE0wPU8xKG0oVCkpO2lmKE0wIT09MClyZXR1cm4gTTA9PT0xP28oVCk6dyhUKTtmb3IoOzspaWYoZTAoVCwxNyksYXIobShUKSkhPT0wKXJldHVybiB3KFQpfX19ZGVmYXVsdDplMChULDE4KTt2YXIgdXg9TzEobShUKSk7aWYodXghPT0wKXJldHVybiB1eD09PTE/bChUKTp3KFQpO2Zvcig7OylpZihlMChULDE3KSxhcihtKFQpKSE9PTApcmV0dXJuIHcoVCl9fWRlZmF1bHQ6cmV0dXJuIHQoVCl9Y2FzZSAxODplMChULDMwKTt2YXIgWng9VHkobShUKSk7aWYoNTxaeD4+PjApcmV0dXJuIHcoVCk7c3dpdGNoKFp4KXtjYXNlIDA6cmV0dXJuIGUoVCk7Y2FzZSAxOnJldHVybiBZKFQpO2Nhc2UgMjpmb3IoOzspe2UwKFQsMzApO3ZhciBMeD1UeShtKFQpKTtpZig1PEx4Pj4+MClyZXR1cm4gdyhUKTtzd2l0Y2goTHgpe2Nhc2UgMDpyZXR1cm4gZShUKTtjYXNlIDE6cmV0dXJuIFkoVCk7Y2FzZSAyOmNvbnRpbnVlO2Nhc2UgMzpyZXR1cm4geihUKTtjYXNlIDQ6cmV0dXJuIGYoVCk7ZGVmYXVsdDpyZXR1cm4gdChUKX19Y2FzZSAzOnJldHVybiB6KFQpO2Nhc2UgNDpyZXR1cm4gZihUKTtkZWZhdWx0OnJldHVybiB0KFQpfWNhc2UgMTk6cmV0dXJuIDQ0O2Nhc2UgMjA6cmV0dXJuIDQyO2Nhc2UgMjE6cmV0dXJuIDQ5O2Nhc2UgMjI6ZTAoVCw1MSk7dmFyIHRyPW0oVCksJHg9NjE8dHI/NjI8dHI/LTE6MDotMTtyZXR1cm4gJHg9PT0wPzU5OncoVCk7Y2FzZSAyMzpyZXR1cm4gNTA7Y2FzZSAyNDpyZXR1cm4gZTAoVCw0NiksJE8obShUKSk9PT0wPzQ1OncoVCk7Y2FzZSAyNTpyZXR1cm4gMzI7Y2FzZSAyNjppZihlMChULDY1KSxNbyhtKFQpKSE9PTApcmV0dXJuIHcoVCk7dmFyIHhyPVl2KG0oVCkpO2lmKHhyPT09MClyZXR1cm4gUHIobShUKSk9PT0wJiZQcihtKFQpKT09PTAmJlByKG0oVCkpPT09MD82Mzp3KFQpO2lmKHhyIT09MXx8UHIobShUKSkhPT0wKXJldHVybiB3KFQpO2Zvcig7Oyl7dmFyIHp4PVh2KG0oVCkpO2lmKHp4IT09MClyZXR1cm4geng9PT0xPzYzOncoVCl9Y2FzZSAyNzpyZXR1cm4gMzM7Y2FzZSAyODplMChULDM0KTt2YXIgT3I9bShUKSxXeD1SdDxPcj9PYTxPcj8tMTowOi0xO3JldHVybiBXeD09PTA/MzY6dyhUKTtjYXNlIDI5OmUwKFQsNTcpO3ZhciBCMj1tKFQpLGx0PVJ0PEIyP0NpPEIyPy0xOmZ4KHA4LEIyLTEyNHwwKS0xfDA6LTE7cmV0dXJuIGx0PT09MD81NjpsdD09PTE/Mzc6dyhUKTtkZWZhdWx0OnJldHVybiAzNX19cHIocik7dmFyIEs9aihyKTtpZig2NTxLPj4+MClyZXR1cm4gT3goZ24wKTt2YXIgSj1LO2lmKDMzPkopc3dpdGNoKEope2Nhc2UgMDpyZXR1cm5bMix6Mih4LHIpXTtjYXNlIDE6cmV0dXJuWzIseF07Y2FzZSAyOnZhciBRPWgyKHgscikseDA9WnIoWXIpLCQ9VnYoeCx4MCxyKSxmMD0kWzFdO3JldHVyblsxLGYwLEt0KGYwLFEsJFsyXSx4MCwxKV07Y2FzZSAzOnZhciBzMD1ZeChyKTtpZigheFs1XSl7dmFyIHYwPWgyKHgsciksbzA9WnIoWXIpO3ZyKG8wLHMwKTt2YXIgYzA9VnYoeCxvMCxyKSxkMD1jMFsxXTtyZXR1cm5bMSxkMCxLdChkMCx2MCxjMFsyXSxvMCwxKV19dmFyIEUwPXhbNF0/cVYoeCxWcih4LHIpLHMwKTp4LEwwPWF5KDEsRTApLFgwPWN5KHIpO3JldHVybiBBcihXbChyLFgwLTF8MCwxKSxDdikmJlAoV2wocixYMC0yfDAsMSksQ3YpP1swLEwwLDg2XTpbMixMMF07Y2FzZSA0OmlmKHhbNF0pcmV0dXJuWzIsYXkoMCx4KV07JGEocikscHIocik7dmFyIHh4PUlWKG0ocikpPT09MD8wOncocik7cmV0dXJuIHh4PT09MD9bMCx4LGwyXTpPeChBbjApO2Nhc2UgNTp2YXIgZzA9aDIoeCxyKSwkMD1acihZciksbjA9SGEoeCwkMCxyKSxpeD1uMFsxXTtyZXR1cm5bMSxpeCxLdChpeCxnMCxuMFsyXSwkMCwwKV07Y2FzZSA2OnZhciByeD1ZeChyKSxkeD1oMih4LHIpLGF4PVpyKFlyKSxTeD1acihZcik7dnIoU3gscngpO3ZhciBEMD1leih4LHJ4LGF4LFN4LDAsciksTjA9RDBbMV0sQTA9RDBbM10sWTA9WzAsTjBbMV0sZHgsRDBbMl1dLEMwPVUxKFN4KTtyZXR1cm5bMCxOMCxbMixbMCxZMCxVMShheCksQzAsQTBdXV07Y2FzZSA3OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oVCxYKXtpZihwcihYKSxsZShtKFgpKT09PTAmJkV5KG0oWCkpPT09MCYmZXMobShYKSk9PT0wKWZvcig7Oyl7dmFyIEYwPW15KG0oWCkpO2lmKDI8RjA+Pj4wKXZhciBVMD13KFgpO2Vsc2Ugc3dpdGNoKEYwKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOng6Zm9yKDs7KXtpZihlcyhtKFgpKT09PTApZm9yKDs7KXt2YXIgc3g9bXkobShYKSk7aWYoMjxzeD4+PjApdmFyIGV4PXcoWCk7ZWxzZSBzd2l0Y2goc3gpe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6Y29udGludWUgeDtkZWZhdWx0OnZhciBleD0wfWJyZWFrfWVsc2UgdmFyIGV4PXcoWCk7dmFyIFUwPWV4O2JyZWFrfWJyZWFrO2RlZmF1bHQ6dmFyIFUwPTB9YnJlYWt9ZWxzZSB2YXIgVTA9dyhYKTtyZXR1cm4gVTA9PT0wP1swLFQsV3QoMCx0MShYKSldOk94KEVuMCl9KTtjYXNlIDg6cmV0dXJuWzAseCxXdCgwLHQxKHIpKV07Y2FzZSA5OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oVCxYKXtpZihwcihYKSxsZShtKFgpKT09PTAmJkV5KG0oWCkpPT09MCYmZXMobShYKSk9PT0wKWZvcig7Oyl7ZTAoWCwwKTt2YXIgRjA9eXkobShYKSk7aWYoRjAhPT0wKXtpZihGMD09PTEpeDpmb3IoOzspe2lmKGVzKG0oWCkpPT09MClmb3IoOzspe2UwKFgsMCk7dmFyIHN4PXl5KG0oWCkpO2lmKHN4IT09MCl7aWYoc3g9PT0xKWNvbnRpbnVlIHg7dmFyIGV4PXcoWCk7YnJlYWt9fWVsc2UgdmFyIGV4PXcoWCk7dmFyIFUwPWV4O2JyZWFrfWVsc2UgdmFyIFUwPXcoWCk7YnJlYWt9fWVsc2UgdmFyIFUwPXcoWCk7cmV0dXJuIFUwPT09MD9bMCxULEJ0KDAsdDEoWCkpXTpPeChTbjApfSk7Y2FzZSAxMDpyZXR1cm5bMCx4LEJ0KDAsdDEocikpXTtjYXNlIDExOnJldHVybiBBMSh4LHIsZnVuY3Rpb24oVCxYKXtpZihwcihYKSxsZShtKFgpKT09PTAmJk55KG0oWCkpPT09MCYmVjIobShYKSk9PT0wKWZvcig7Oyl7dmFyIEYwPVN5KG0oWCkpO2lmKDI8RjA+Pj4wKXZhciBVMD13KFgpO2Vsc2Ugc3dpdGNoKEYwKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOng6Zm9yKDs7KXtpZihWMihtKFgpKT09PTApZm9yKDs7KXt2YXIgc3g9U3kobShYKSk7aWYoMjxzeD4+PjApdmFyIGV4PXcoWCk7ZWxzZSBzd2l0Y2goc3gpe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6Y29udGludWUgeDtkZWZhdWx0OnZhciBleD0wfWJyZWFrfWVsc2UgdmFyIGV4PXcoWCk7dmFyIFUwPWV4O2JyZWFrfWJyZWFrO2RlZmF1bHQ6dmFyIFUwPTB9YnJlYWt9ZWxzZSB2YXIgVTA9dyhYKTtyZXR1cm4gVTA9PT0wP1swLFQsV3QoMSx0MShYKSldOk94KFRuMCl9KTtjYXNlIDEyOnJldHVyblswLHgsV3QoMSx0MShyKSldO2Nhc2UgMTM6cmV0dXJuIEExKHgscixmdW5jdGlvbihULFgpe2lmKHByKFgpLGxlKG0oWCkpPT09MCYmTnkobShYKSk9PT0wJiZWMihtKFgpKT09PTApZm9yKDs7KXtlMChYLDApO3ZhciBGMD13eShtKFgpKTtpZihGMCE9PTApe2lmKEYwPT09MSl4OmZvcig7Oyl7aWYoVjIobShYKSk9PT0wKWZvcig7Oyl7ZTAoWCwwKTt2YXIgc3g9d3kobShYKSk7aWYoc3ghPT0wKXtpZihzeD09PTEpY29udGludWUgeDt2YXIgZXg9dyhYKTticmVha319ZWxzZSB2YXIgZXg9dyhYKTt2YXIgVTA9ZXg7YnJlYWt9ZWxzZSB2YXIgVTA9dyhYKTticmVha319ZWxzZSB2YXIgVTA9dyhYKTtyZXR1cm4gVTA9PT0wP1swLFQsQnQoMyx0MShYKSldOk94KHduMCl9KTtjYXNlIDE0OnJldHVyblswLHgsQnQoMyx0MShyKSldO2Nhc2UgMTU6cmV0dXJuIEExKHgscixmdW5jdGlvbihULFgpe2lmKHByKFgpLGxlKG0oWCkpPT09MCYmVjIobShYKSk9PT0wKXtmb3IoOzspaWYoZTAoWCwwKSxWMihtKFgpKSE9PTApe3ZhciBGMD13KFgpO2JyZWFrfX1lbHNlIHZhciBGMD13KFgpO3JldHVybiBGMD09PTA/WzAsVCxCdCgxLHQxKFgpKV06T3goX24wKX0pO2Nhc2UgMTY6cmV0dXJuWzAseCxCdCgxLHQxKHIpKV07Y2FzZSAxNzpyZXR1cm4gQTEoeCxyLGZ1bmN0aW9uKFQsWCl7aWYocHIoWCksbGUobShYKSk9PT0wJiZweShtKFgpKT09PTAmJlByKG0oWCkpPT09MClmb3IoOzspe3ZhciBGMD1reShtKFgpKTtpZigyPEYwPj4+MCl2YXIgVTA9dyhYKTtlbHNlIHN3aXRjaChGMCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp4OmZvcig7Oyl7aWYoUHIobShYKSk9PT0wKWZvcig7Oyl7dmFyIHN4PWt5KG0oWCkpO2lmKDI8c3g+Pj4wKXZhciBleD13KFgpO2Vsc2Ugc3dpdGNoKHN4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOmNvbnRpbnVlIHg7ZGVmYXVsdDp2YXIgZXg9MH1icmVha31lbHNlIHZhciBleD13KFgpO3ZhciBVMD1leDticmVha31icmVhaztkZWZhdWx0OnZhciBVMD0wfWJyZWFrfWVsc2UgdmFyIFUwPXcoWCk7cmV0dXJuIFUwPT09MD9bMCxULFd0KDIsdDEoWCkpXTpPeChobjApfSk7Y2FzZSAxODpyZXR1cm5bMCx4LFd0KDIsdDEocikpXTtjYXNlIDE5OnJldHVybiBBMSh4LHIsZnVuY3Rpb24oVCxYKXtpZihwcihYKSxsZShtKFgpKT09PTAmJnB5KG0oWCkpPT09MCYmUHIobShYKSk9PT0wKWZvcig7Oyl7ZTAoWCwwKTt2YXIgRjA9T3kobShYKSk7aWYoRjAhPT0wKXtpZihGMD09PTEpeDpmb3IoOzspe2lmKFByKG0oWCkpPT09MClmb3IoOzspe2UwKFgsMCk7dmFyIHN4PU95KG0oWCkpO2lmKHN4IT09MCl7aWYoc3g9PT0xKWNvbnRpbnVlIHg7dmFyIGV4PXcoWCk7YnJlYWt9fWVsc2UgdmFyIGV4PXcoWCk7dmFyIFUwPWV4O2JyZWFrfWVsc2UgdmFyIFUwPXcoWCk7YnJlYWt9fWVsc2UgdmFyIFUwPXcoWCk7cmV0dXJuIFUwPT09MD9bMCxULEJ0KDQsdDEoWCkpXTpPeChrbjApfSk7Y2FzZSAyMDpyZXR1cm5bMCx4LEJ0KDQsdDEocikpXTtjYXNlIDIxOnJldHVybiBBMSh4LHIsZnVuY3Rpb24oVCxYKXtmdW5jdGlvbiBGMChWMCl7Zm9yKDs7KXt2YXIgU3I9VnQobShWMCkpO2lmKDI8U3I+Pj4wKXJldHVybiB3KFYwKTtzd2l0Y2goU3Ipe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6eDpmb3IoOzspe2lmKGRyKG0oVjApKSE9PTApcmV0dXJuIHcoVjApO2Zvcig7Oyl7dmFyIFVyPVZ0KG0oVjApKTtpZigyPFVyPj4+MClyZXR1cm4gdyhWMCk7c3dpdGNoKFVyKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOmNvbnRpbnVlIHg7ZGVmYXVsdDpyZXR1cm4gMH19fWRlZmF1bHQ6cmV0dXJuIDB9fX1mdW5jdGlvbiBzeChWMCl7Zm9yKDs7KXt2YXIgU3I9R2EobShWMCkpO2lmKFNyIT09MClyZXR1cm4gU3I9PT0xPzA6dyhWMCl9fWZ1bmN0aW9uIGV4KFYwKXt2YXIgU3I9ankobShWMCkpO2lmKDI8U3I+Pj4wKXJldHVybiB3KFYwKTtzd2l0Y2goU3Ipe2Nhc2UgMDp2YXIgVXI9SW8obShWMCkpO3JldHVybiBVcj09PTA/c3goVjApOlVyPT09MT9GMChWMCk6dyhWMCk7Y2FzZSAxOnJldHVybiBzeChWMCk7ZGVmYXVsdDpyZXR1cm4gRjAoVjApfX1mdW5jdGlvbiBVMChWMCl7dmFyIFNyPUN5KG0oVjApKTtpZihTciE9PTApcmV0dXJuIFNyPT09MT9leChWMCk6dyhWMCk7Zm9yKDs7KXt2YXIgVXI9eGUobShWMCkpO2lmKDI8VXI+Pj4wKXJldHVybiB3KFYwKTtzd2l0Y2goVXIpe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6cmV0dXJuIGV4KFYwKTtkZWZhdWx0Ong6Zm9yKDs7KXtpZihkcihtKFYwKSkhPT0wKXJldHVybiB3KFYwKTtmb3IoOzspe3ZhciBseD14ZShtKFYwKSk7aWYoMjxseD4+PjApcmV0dXJuIHcoVjApO3N3aXRjaChseCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpyZXR1cm4gZXgoVjApO2RlZmF1bHQ6Y29udGludWUgeH19fX19fXByKFgpO3ZhciBOeD1DbyhtKFgpKTtpZigyPE54Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChOeCl7Y2FzZSAwOmlmKGRyKG0oWCkpPT09MClmb3IoOzspe3ZhciBCeD14ZShtKFgpKTtpZigyPEJ4Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChCeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp2YXIgbXg9ZXgoWCk7YnJlYWs7ZGVmYXVsdDp4OmZvcig7Oyl7aWYoZHIobShYKSk9PT0wKWZvcig7Oyl7dmFyIEd4PXhlKG0oWCkpO2lmKDI8R3g+Pj4wKXZhciBKMD13KFgpO2Vsc2Ugc3dpdGNoKEd4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnZhciBKMD1leChYKTticmVhaztkZWZhdWx0OmNvbnRpbnVlIHh9YnJlYWt9ZWxzZSB2YXIgSjA9dyhYKTt2YXIgbXg9SjA7YnJlYWt9fWJyZWFrfWVsc2UgdmFyIG14PXcoWCk7YnJlYWs7Y2FzZSAxOnZhciBieD1keShtKFgpKSxteD1ieD09PTA/VTAoWCk6Yng9PT0xP2V4KFgpOncoWCk7YnJlYWs7ZGVmYXVsdDpmb3IoOzspe3ZhciBKeD1QeShtKFgpKTtpZigyPEp4Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChKeCl7Y2FzZSAwOnZhciBteD1VMChYKTticmVhaztjYXNlIDE6Y29udGludWU7ZGVmYXVsdDp2YXIgbXg9ZXgoWCl9YnJlYWt9fWlmKG14IT09MClyZXR1cm4gT3gobW4wKTt2YXIgVzA9dDEoWCksbnI9XzIoVCxWcihULFgpLDQ4KTtyZXR1cm5bMCxucixXdCgyLFcwKV19KTtjYXNlIDIyOnZhciBGPXQxKHIpLEg9XzIoeCxWcih4LHIpLDQ4KTtyZXR1cm5bMCxILFd0KDIsRildO2Nhc2UgMjM6cmV0dXJuIEExKHgscixmdW5jdGlvbihULFgpe2Z1bmN0aW9uIEYwKFcwKXtmb3IoOzspe2UwKFcwLDApO3ZhciBucj1SbyhtKFcwKSk7aWYobnIhPT0wKXtpZihuciE9PTEpcmV0dXJuIHcoVzApO3g6Zm9yKDs7KXtpZihkcihtKFcwKSkhPT0wKXJldHVybiB3KFcwKTtmb3IoOzspe2UwKFcwLDApO3ZhciBWMD1SbyhtKFcwKSk7aWYoVjAhPT0wKXtpZihWMD09PTEpY29udGludWUgeDtyZXR1cm4gdyhXMCl9fX19fX1mdW5jdGlvbiBzeChXMCl7Zm9yKDs7KWlmKGUwKFcwLDApLGRyKG0oVzApKSE9PTApcmV0dXJuIHcoVzApfWZ1bmN0aW9uIGV4KFcwKXt2YXIgbnI9ankobShXMCkpO2lmKDI8bnI+Pj4wKXJldHVybiB3KFcwKTtzd2l0Y2gobnIpe2Nhc2UgMDp2YXIgVjA9SW8obShXMCkpO3JldHVybiBWMD09PTA/c3goVzApOlYwPT09MT9GMChXMCk6dyhXMCk7Y2FzZSAxOnJldHVybiBzeChXMCk7ZGVmYXVsdDpyZXR1cm4gRjAoVzApfX1mdW5jdGlvbiBVMChXMCl7dmFyIG5yPUN5KG0oVzApKTtpZihuciE9PTApcmV0dXJuIG5yPT09MT9leChXMCk6dyhXMCk7Zm9yKDs7KXt2YXIgVjA9eGUobShXMCkpO2lmKDI8VjA+Pj4wKXJldHVybiB3KFcwKTtzd2l0Y2goVjApe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6cmV0dXJuIGV4KFcwKTtkZWZhdWx0Ong6Zm9yKDs7KXtpZihkcihtKFcwKSkhPT0wKXJldHVybiB3KFcwKTtmb3IoOzspe3ZhciBTcj14ZShtKFcwKSk7aWYoMjxTcj4+PjApcmV0dXJuIHcoVzApO3N3aXRjaChTcil7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpyZXR1cm4gZXgoVzApO2RlZmF1bHQ6Y29udGludWUgeH19fX19fXByKFgpO3ZhciBOeD1DbyhtKFgpKTtpZigyPE54Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChOeCl7Y2FzZSAwOmlmKGRyKG0oWCkpPT09MClmb3IoOzspe3ZhciBCeD14ZShtKFgpKTtpZigyPEJ4Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChCeCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTp2YXIgbXg9ZXgoWCk7YnJlYWs7ZGVmYXVsdDp4OmZvcig7Oyl7aWYoZHIobShYKSk9PT0wKWZvcig7Oyl7dmFyIEd4PXhlKG0oWCkpO2lmKDI8R3g+Pj4wKXZhciBKMD13KFgpO2Vsc2Ugc3dpdGNoKEd4KXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOnZhciBKMD1leChYKTticmVhaztkZWZhdWx0OmNvbnRpbnVlIHh9YnJlYWt9ZWxzZSB2YXIgSjA9dyhYKTt2YXIgbXg9SjA7YnJlYWt9fWJyZWFrfWVsc2UgdmFyIG14PXcoWCk7YnJlYWs7Y2FzZSAxOnZhciBieD1keShtKFgpKSxteD1ieD09PTA/VTAoWCk6Yng9PT0xP2V4KFgpOncoWCk7YnJlYWs7ZGVmYXVsdDpmb3IoOzspe3ZhciBKeD1QeShtKFgpKTtpZigyPEp4Pj4+MCl2YXIgbXg9dyhYKTtlbHNlIHN3aXRjaChKeCl7Y2FzZSAwOnZhciBteD1VMChYKTticmVhaztjYXNlIDE6Y29udGludWU7ZGVmYXVsdDp2YXIgbXg9ZXgoWCl9YnJlYWt9fXJldHVybiBteD09PTA/WzAsVCxCdCg0LHQxKFgpKV06T3goeW4wKX0pO2Nhc2UgMjQ6cmV0dXJuWzAseCxCdCg0LHQxKHIpKV07Y2FzZSAyNTpyZXR1cm4gQTEoeCxyLGZ1bmN0aW9uKFQsWCl7ZnVuY3Rpb24gRjAoSngpe2Zvcig7Oyl7dmFyIFcwPVZ0KG0oSngpKTtpZigyPFcwPj4+MClyZXR1cm4gdyhKeCk7c3dpdGNoKFcwKXtjYXNlIDA6Y29udGludWU7Y2FzZSAxOng6Zm9yKDs7KXtpZihkcihtKEp4KSkhPT0wKXJldHVybiB3KEp4KTtmb3IoOzspe3ZhciBucj1WdChtKEp4KSk7aWYoMjxucj4+PjApcmV0dXJuIHcoSngpO3N3aXRjaChucil7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpjb250aW51ZSB4O2RlZmF1bHQ6cmV0dXJuIDB9fX1kZWZhdWx0OnJldHVybiAwfX19ZnVuY3Rpb24gc3goSngpe3ZhciBXMD1HYShtKEp4KSk7cmV0dXJuIFcwPT09MD9GMChKeCk6VzA9PT0xPzA6dyhKeCl9cHIoWCk7dmFyIGV4PUNvKG0oWCkpO2lmKDI8ZXg+Pj4wKXZhciBVMD13KFgpO2Vsc2Ugc3dpdGNoKGV4KXtjYXNlIDA6dmFyIFUwPWRyKG0oWCkpPT09MD9GMChYKTp3KFgpO2JyZWFrO2Nhc2UgMTpmb3IoOzspe3ZhciBOeD1xYShtKFgpKTtpZihOeD09PTApdmFyIFUwPXN4KFgpO2Vsc2V7aWYoTng9PT0xKWNvbnRpbnVlO3ZhciBVMD13KFgpfWJyZWFrfWJyZWFrO2RlZmF1bHQ6Zm9yKDs7KXt2YXIgbXg9TG8obShYKSk7aWYoMjxteD4+PjApdmFyIFUwPXcoWCk7ZWxzZSBzd2l0Y2gobXgpe2Nhc2UgMDp2YXIgVTA9c3goWCk7YnJlYWs7Y2FzZSAxOmNvbnRpbnVlO2RlZmF1bHQ6eDpmb3IoOzspe2lmKGRyKG0oWCkpPT09MClmb3IoOzspe3ZhciBCeD1MbyhtKFgpKTtpZigyPEJ4Pj4+MCl2YXIgR3g9dyhYKTtlbHNlIHN3aXRjaChCeCl7Y2FzZSAwOnZhciBHeD1zeChYKTticmVhaztjYXNlIDE6Y29udGludWU7ZGVmYXVsdDpjb250aW51ZSB4fWJyZWFrfWVsc2UgdmFyIEd4PXcoWCk7dmFyIFUwPUd4O2JyZWFrfX1icmVha319aWYoVTAhPT0wKXJldHVybiBPeChkbjApO3ZhciBKMD10MShYKSxieD1fMihULFZyKFQsWCksMzkpO3JldHVyblswLGJ4LFd0KDIsSjApXX0pO2Nhc2UgMjY6cmV0dXJuIEExKHgscixmdW5jdGlvbihULFgpe3ByKFgpO3ZhciBGMD1JbyhtKFgpKTtpZihGMD09PTApZm9yKDs7KXt2YXIgc3g9R2EobShYKSk7aWYoc3ghPT0wKXt2YXIgbXg9c3g9PT0xPzA6dyhYKTticmVha319ZWxzZSBpZihGMD09PTEpZm9yKDs7KXt2YXIgZXg9VnQobShYKSk7aWYoMjxleD4+PjApdmFyIG14PXcoWCk7ZWxzZSBzd2l0Y2goZXgpe2Nhc2UgMDpjb250aW51ZTtjYXNlIDE6eDpmb3IoOzspe2lmKGRyKG0oWCkpPT09MClmb3IoOzspe3ZhciBVMD1WdChtKFgpKTtpZigyPFUwPj4+MCl2YXIgTng9dyhYKTtlbHNlIHN3aXRjaChVMCl7Y2FzZSAwOmNvbnRpbnVlO2Nhc2UgMTpjb250aW51ZSB4O2RlZmF1bHQ6dmFyIE54PTB9YnJlYWt9ZWxzZSB2YXIgTng9dyhYKTt2YXIgbXg9Tng7YnJlYWt9YnJlYWs7ZGVmYXVsdDp2YXIgbXg9MH1icmVha31lbHNlIHZhciBteD13KFgpO3JldHVybiBteD09PTA/WzAsVCxXdCgyLHQxKFgpKV06T3gocG4wKX0pO2Nhc2UgMjc6dmFyIEI9dDEociksYTA9XzIoeCxWcih4LHIpLDM5KTtyZXR1cm5bMCxhMCxXdCgyLEIpXTtjYXNlIDI4OnJldHVyblswLHgsV3QoMix0MShyKSldO2Nhc2UgMjk6cmV0dXJuIEExKHgscixmdW5jdGlvbihULFgpe2Z1bmN0aW9uIEYwKEowKXtmb3IoOzspe2UwKEowLDApO3ZhciBieD1SbyhtKEowKSk7aWYoYnghPT0wKXtpZihieCE9PTEpcmV0dXJuIHcoSjApO3g6Zm9yKDs7KXtpZihkcihtKEowKSkhPT0wKXJldHVybiB3KEowKTtmb3IoOzspe2UwKEowLDApO3ZhciBKeD1SbyhtKEowKSk7aWYoSnghPT0wKXtpZihKeD09PTEpY29udGludWUgeDtyZXR1cm4gdyhKMCl9fX19fX1mdW5jdGlvbiBzeChKMCl7cmV0dXJuIGUwKEowLDApLGRyKG0oSjApKT09PTA/RjAoSjApOncoSjApfXByKFgpO3ZhciBleD1DbyhtKFgpKTtpZigyPGV4Pj4+MCl2YXIgVTA9dyhYKTtlbHNlIHN3aXRjaChleCl7Y2FzZSAwOnZhciBVMD1kcihtKFgpKT09PTA/RjAoWCk6dyhYKTticmVhaztjYXNlIDE6Zm9yKDs7KXtlMChYLDApO3ZhciBOeD1xYShtKFgpKTtpZihOeD09PTApdmFyIFUwPXN4KFgpO2Vsc2V7aWYoTng9PT0xKWNvbnRpbnVlO3ZhciBVMD13KFgpfWJyZWFrfWJyZWFrO2RlZmF1bHQ6Zm9yKDs7KXtlMChYLDApO3ZhciBteD1MbyhtKFgpKTtpZigyPG14Pj4+MCl2YXIgVTA9dyhYKTtlbHNlIHN3aXRjaChteCl7Y2FzZSAwOnZhciBVMD1zeChYKTticmVhaztjYXNlIDE6Y29udGludWU7ZGVmYXVsdDp4OmZvcig7Oyl7aWYoZHIobShYKSk9PT0wKWZvcig7Oyl7ZTAoWCwwKTt2YXIgQng9TG8obShYKSk7aWYoMjxCeD4+PjApdmFyIEd4PXcoWCk7ZWxzZSBzd2l0Y2goQngpe2Nhc2UgMDp2YXIgR3g9c3goWCk7YnJlYWs7Y2FzZSAxOmNvbnRpbnVlO2RlZmF1bHQ6Y29udGludWUgeH1icmVha31lbHNlIHZhciBHeD13KFgpO3ZhciBVMD1HeDticmVha319YnJlYWt9fXJldHVybiBVMD09PTA/WzAsVCxCdCg0LHQxKFgpKV06T3gobG4wKX0pO2Nhc2UgMzA6cmV0dXJuWzAseCxCdCg0LHQxKHIpKV07Y2FzZSAzMTpyZXR1cm5bMCx4LDY2XTtkZWZhdWx0OnJldHVyblswLHgsNl19c3dpdGNoKEope2Nhc2UgMzM6cmV0dXJuWzAseCw3XTtjYXNlIDM0OnJldHVyblswLHgsMF07Y2FzZSAzNTpyZXR1cm5bMCx4LDFdO2Nhc2UgMzY6cmV0dXJuWzAseCwyXTtjYXNlIDM3OnJldHVyblswLHgsM107Y2FzZSAzODpyZXR1cm5bMCx4LDRdO2Nhc2UgMzk6cmV0dXJuWzAseCw1XTtjYXNlIDQwOnJldHVyblswLHgsMTJdO2Nhc2UgNDE6cmV0dXJuWzAseCwxMF07Y2FzZSA0MjpyZXR1cm5bMCx4LDhdO2Nhc2UgNDM6cmV0dXJuWzAseCw5XTtjYXNlIDQ0OnJldHVyblswLHgsODZdO2Nhc2UgNDU6cmV0dXJuWzAseCw4M107Y2FzZSA0NjpyZXR1cm5bMCx4LDg1XTtjYXNlIDQ3OnJldHVyblswLHgsNl07Y2FzZSA0ODpyZXR1cm5bMCx4LDddO2Nhc2UgNDk6cmV0dXJuWzAseCw5OF07Y2FzZSA1MDpyZXR1cm5bMCx4LDk5XTtjYXNlIDUxOnJldHVyblswLHgsODJdO2Nhc2UgNTI6cmV0dXJuWzAseCw4NV07Y2FzZSA1MzpyZXR1cm5bMCx4LGwyXTtjYXNlIDU0OnJldHVyblswLHgsODZdO2Nhc2UgNTU6cmV0dXJuWzAseCw4OF07Y2FzZSA1NjpyZXR1cm5bMCx4LDg3XTtjYXNlIDU3OnJldHVyblswLHgsODldO2Nhc2UgNTg6cmV0dXJuWzAseCw5MV07Y2FzZSA1OTpyZXR1cm5bMCx4LDExXTtjYXNlIDYwOnJldHVyblswLHgsODJdO2Nhc2UgNjE6cmV0dXJuWzAseCxmbl07Y2FzZSA2MjpyZXR1cm5bMCx4LER0XTtjYXNlIDYzOnZhciBtMD1yWzZdO1FWKHIpO3ZhciBQMD1xbCh4LG0wLHJbM10pO0xPKHIsbTApO3ZhciBEPXQxKHIpLE8wPXh6KHgsRCksSzA9TzBbMl0sajA9TzBbMV0sb3g9VHgoSzAsc3ApO2lmKDA8PW94KXtpZigwPj1veClyZXR1cm5bMCxqMCxPc107dmFyIGIwPVR4KEswLHd4KTtpZigwPD1iMCl7aWYoMD49YjApcmV0dXJuWzAsajAsSDNdO2lmKCFQKEswLFNzKSlyZXR1cm5bMCxqMCwzMV07aWYoIVAoSzAsVHMpKXJldHVyblswLGowLDQ2XTtpZighUChLMCxxNSkpcmV0dXJuWzAsajAsT2FdO2lmKCFQKEswLGc1KSlyZXR1cm5bMCxqMCxIcl07aWYoIVAoSzAsUHMpKXJldHVyblswLGowLEFmXX1lbHNle2lmKCFQKEswLFA4KSlyZXR1cm5bMCxqMCxSdF07aWYoIVAoSzAsbXYpKXJldHVyblswLGowLDI5XTtpZighUChLMCxrYSkpcmV0dXJuWzAsajAscG9dO2lmKCFQKEswLFRhKSlyZXR1cm5bMCxqMCxMNF07aWYoIVAoSzAsamUpKXJldHVyblswLGowLDQyXTtpZighUChLMCxMYSkpcmV0dXJuWzAsajAseGxdfX1lbHNle3ZhciBfeD1UeChLMCxPYyk7aWYoMDw9X3gpe2lmKDA+PV94KXJldHVyblswLGowLDQxXTtpZighUChLMCxBcykpcmV0dXJuWzAsajAsMzBdO2lmKCFQKEswLFJVKSlyZXR1cm5bMCxqMCxZcl07aWYoIVAoSzAsUTIpKXJldHVyblswLGowLDUzXTtpZighUChLMCxhbCkpcmV0dXJuWzAsajAsbTFdO2lmKCFQKEswLEE4KSlyZXR1cm5bMCxqMCxDaV19ZWxzZXtpZighUChLMCx0NSkpcmV0dXJuWzAsajAsdXRdO2lmKCFQKEswLHlhKSlyZXR1cm5bMCxqMCxkbF07aWYoIVAoSzAsa3YpKXJldHVyblswLGowLHBhXTtpZighUChLMCxUNSkpcmV0dXJuWzAsajAsTm4wXTtpZighUChLMCxGMykpcmV0dXJuWzAsajAsUG4wXTtpZighUChLMCxzZSkpcmV0dXJuWzAsajAsTnNdfX1yZXR1cm5bMCxqMCxbNCxQMCxLMCxabChEKV1dO2Nhc2UgNjQ6dmFyIEIwPXhbNF0/XzIoeCxWcih4LHIpLDk2KTp4O3JldHVyblswLEIwLFJyXTtkZWZhdWx0OnJldHVyblswLHgsWzcsWXgocildXX19LEhsPWZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIGU9MCx0PXI7Oyl7dmFyIHU9cCh4LHQsdFsyXSk7c3dpdGNoKHVbMF0pe2Nhc2UgMDp2YXIgaT11WzJdLGY9dVsxXSxvPUdWKGYsaSksbD1lPT09MD8wOkF4KGUpLGQ9Zls2XTtpZihkPT09MClyZXR1cm5bMCxbMCxmWzFdLGZbMl0sZlszXSxmWzRdLGZbNV0sZls2XSxvXSxbMCxpLG8sMCxsXV07dmFyIGs9WzAsaSxvLEF4KGQpLGxdO3JldHVyblswLFswLGZbMV0sZlsyXSxmWzNdLGZbNF0sZls1XSxfVixvXSxrXTtjYXNlIDE6dmFyIGg9dVsyXSxnPXVbMV0sZT1bMCxoLGVdLHQ9WzAsZ1sxXSxnWzJdLGdbM10sZ1s0XSxnWzVdLGdbNl0saFsxXV07Y29udGludWU7ZGVmYXVsdDp2YXIgdD11WzFdO2NvbnRpbnVlfX19fSxpUzA9SGwoZVMwKSxmUzA9SGwodFMwKSxjUzA9SGwoblMwKSxzUzA9SGwodVMwKSxvUzA9SGwoeFMwKSx3Mj12VihbMCxtVDBdKSxibD1mdW5jdGlvbih4LHIpe3JldHVyblswLDAsMCxyLHdWKHgpXX0sWHk9ZnVuY3Rpb24oeCl7dmFyIHI9eFs0XTtzd2l0Y2goeFszXSl7Y2FzZSAwOnZhciBLPWEob1MwLHIpO2JyZWFrO2Nhc2UgMTp2YXIgSz1hKHNTMCxyKTticmVhaztjYXNlIDI6dmFyIEs9YShmUzAscik7YnJlYWs7Y2FzZSAzOnZhciBlPWRlKHIsclsyXSksdD1acihZciksdT1acihZciksaT1yWzJdO3ByKGkpO3ZhciBmPW0oaSksbz1SdDxmP1ExPGY/MTpjMjxmPzI6MTpmeChcIlx1MDAwMVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwM1x1MDAwMlx1MDAwMlx1MDAwNFx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNVx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwMlx1MDAwNlwiLGYrMXwwKS0xfDA7aWYoNTxvPj4+MCl2YXIgbD13KGkpO2Vsc2Ugc3dpdGNoKG8pe2Nhc2UgMDp2YXIgbD0xO2JyZWFrO2Nhc2UgMTp2YXIgbD00O2JyZWFrO2Nhc2UgMjp2YXIgbD0wO2JyZWFrO2Nhc2UgMzplMChpLDApO3ZhciBsPXBlKG0oaSkpPT09MD8wOncoaSk7YnJlYWs7Y2FzZSA0OnZhciBsPTI7YnJlYWs7ZGVmYXVsdDp2YXIgbD0zfWlmKDQ8bD4+PjApdmFyIGQ9T3goUm4wKTtlbHNlIHN3aXRjaChsKXtjYXNlIDA6dmFyIGs9WXgoaSk7dnIodSxrKSx2cih0LGspO3ZhciBoPXV6KHoyKHIsaSksdCx1LGkpLGc9ZGUoaCxpKSxBPVUxKHQpLE49VTEodSksZD1bMCxoLFs5LFswLGhbMV0sZSxnXSxBLE5dXTticmVhaztjYXNlIDE6dmFyIGQ9WzAscixScl07YnJlYWs7Y2FzZSAyOnZhciBkPVswLHIsOThdO2JyZWFrO2Nhc2UgMzp2YXIgZD1bMCxyLDBdO2JyZWFrO2RlZmF1bHQ6JGEoaSk7dmFyIEM9dXoocix0LHUsaSksTz1kZShDLGkpLEw9VTEodCksTT1VMSh1KSxkPVswLEMsWzksWzAsQ1sxXSxlLE9dLEwsTV1dfXZhciBWPWRbMl0sej1kWzFdLFk9R1YoeixWKSx0MD16WzZdO2lmKHQwPT09MCl2YXIgaj1bMCx6LFswLFYsWSwwLDBdXTtlbHNlIHZhciBpMD1bMCxWLFksQXgodDApLDBdLGo9WzAsWzAselsxXSx6WzJdLHpbM10sels0XSx6WzVdLDAsels3XV0saTBdO3ZhciBLPWo7YnJlYWs7Y2FzZSA0OnZhciBLPWEoY1MwLHIpO2JyZWFrO2RlZmF1bHQ6dmFyIEs9YShpUzAscil9dmFyIEo9S1sxXSxRPUtbMl0seDA9WzAsd1YoSiksUV07cmV0dXJuIHhbNF09Six4WzFdP3hbMl09WzAseDBdOnhbMV09WzAseDBdLHgwfSxpej1mdW5jdGlvbih4KXt2YXIgcj14WzFdO3JldHVybiByP3JbMV1bMl06WHkoeClbMl19LGJhPWZ1bmN0aW9uKHgpe3JldHVybiBSbCh4WzI0XVsxXSl9LGsxPWZ1bmN0aW9uKHgpe3JldHVybiB4WzI4XVs0XX0sbng9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yWzJdO3hbMV1bMV09WzAsWzAsclsxXSxlXSx4WzFdWzFdXTt2YXIgdD14WzIzXTtyZXR1cm4gdD9wKHRbMV0seCxlKTowfSx4Nj1mdW5jdGlvbih4LHIpe3JldHVybiB4WzMxXVsxXT1yLDB9LERvPWZ1bmN0aW9uKHgscil7aWYoeD09PTApcmV0dXJuIGl6KHJbMjZdWzFdKTtpZih4IT09MSl0aHJvdyBxMChbMCx3cix2czBdLDEpO3ZhciBlPXJbMjZdWzFdO2VbMV18fFh5KGUpO3ZhciB0PWVbMl07cmV0dXJuIHQ/dFsxXVsyXTpYeShlKVsyXX0sUXM9ZnVuY3Rpb24oeCxyKXtyZXR1cm4geD09PXJbNV0/cjpbMCxyWzFdLHJbMl0sclszXSxyWzRdLHgscls2XSxyWzddLHJbOF0scls5XSxyWzEwXSxyWzExXSxyWzEyXSxyWzEzXSxyWzE0XSxyWzE1XSxyWzE2XSxyWzE3XSxyWzE4XSxyWzE5XSxyWzIwXSxyWzIxXSxyWzIyXSxyWzIzXSxyWzI0XSxyWzI1XSxyWzI2XSxyWzI3XSxyWzI4XSxyWzI5XSxyWzMwXSxyWzMxXV19LGZ6PWZ1bmN0aW9uKHgscil7cmV0dXJuIHg9PT1yWzEwXT9yOlswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSxyWzZdLHJbN10scls4XSxyWzldLHgsclsxMV0sclsxMl0sclsxM10sclsxNF0sclsxNV0sclsxNl0sclsxN10sclsxOF0sclsxOV0sclsyMF0sclsyMV0sclsyMl0sclsyM10sclsyNF0sclsyNV0sclsyNl0sclsyN10sclsyOF0sclsyOV0sclszMF0sclszMV1dfSxITz1mdW5jdGlvbih4LHIpe3JldHVybiB4PT09clsxOF0/cjpbMCxyWzFdLHJbMl0sclszXSxyWzRdLHJbNV0scls2XSxyWzddLHJbOF0scls5XSxyWzEwXSxyWzExXSxyWzEyXSxyWzEzXSxyWzE0XSxyWzE1XSxyWzE2XSxyWzE3XSx4LHJbMTldLHJbMjBdLHJbMjFdLHJbMjJdLHJbMjNdLHJbMjRdLHJbMjVdLHJbMjZdLHJbMjddLHJbMjhdLHJbMjldLHJbMzBdLHJbMzFdXX0sYk89ZnVuY3Rpb24oeCxyKXtyZXR1cm4geD09PXJbMTldP3I6WzAsclsxXSxyWzJdLHJbM10scls0XSxyWzVdLHJbNl0scls3XSxyWzhdLHJbOV0sclsxMF0sclsxMV0sclsxMl0sclsxM10sclsxNF0sclsxNV0sclsxNl0sclsxN10sclsxOF0seCxyWzIwXSxyWzIxXSxyWzIyXSxyWzIzXSxyWzI0XSxyWzI1XSxyWzI2XSxyWzI3XSxyWzI4XSxyWzI5XSxyWzMwXSxyWzMxXV19LGN6PWZ1bmN0aW9uKHgscil7cmV0dXJuIHg9PT1yWzIwXT9yOlswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSxyWzZdLHJbN10scls4XSxyWzldLHJbMTBdLHJbMTFdLHJbMTJdLHJbMTNdLHJbMTRdLHJbMTVdLHJbMTZdLHJbMTddLHJbMThdLHJbMTldLHgsclsyMV0sclsyMl0sclsyM10sclsyNF0sclsyNV0sclsyNl0sclsyN10sclsyOF0sclsyOV0sclszMF0sclszMV1dfSx6dj1mdW5jdGlvbih4LHIpe3JldHVybiB4PT09clsyMl0/cjpbMCxyWzFdLHJbMl0sclszXSxyWzRdLHJbNV0scls2XSxyWzddLHJbOF0scls5XSxyWzEwXSxyWzExXSxyWzEyXSxyWzEzXSxyWzE0XSxyWzE1XSxyWzE2XSxyWzE3XSxyWzE4XSxyWzE5XSxyWzIwXSxyWzIxXSx4LHJbMjNdLHJbMjRdLHJbMjVdLHJbMjZdLHJbMjddLHJbMjhdLHJbMjldLHJbMzBdLHJbMzFdXX0seFI9ZnVuY3Rpb24oeCxyKXtyZXR1cm4geD09PXJbMTRdP3I6WzAsclsxXSxyWzJdLHJbM10scls0XSxyWzVdLHJbNl0scls3XSxyWzhdLHJbOV0sclsxMF0sclsxMV0sclsxMl0sclsxM10seCxyWzE1XSxyWzE2XSxyWzE3XSxyWzE4XSxyWzE5XSxyWzIwXSxyWzIxXSxyWzIyXSxyWzIzXSxyWzI0XSxyWzI1XSxyWzI2XSxyWzI3XSxyWzI4XSxyWzI5XSxyWzMwXSxyWzMxXV19LHI2PWZ1bmN0aW9uKHgscil7cmV0dXJuIHg9PT1yWzhdP3I6WzAsclsxXSxyWzJdLHJbM10scls0XSxyWzVdLHJbNl0scls3XSx4LHJbOV0sclsxMF0sclsxMV0sclsxMl0sclsxM10sclsxNF0sclsxNV0sclsxNl0sclsxN10sclsxOF0sclsxOV0sclsyMF0sclsyMV0sclsyMl0sclsyM10sclsyNF0sclsyNV0sclsyNl0sclsyN10sclsyOF0sclsyOV0sclszMF0sclszMV1dfSxlNj1mdW5jdGlvbih4LHIpe3JldHVybiB4PT09clsxMl0/cjpbMCxyWzFdLHJbMl0sclszXSxyWzRdLHJbNV0scls2XSxyWzddLHJbOF0scls5XSxyWzEwXSxyWzExXSx4LHJbMTNdLHJbMTRdLHJbMTVdLHJbMTZdLHJbMTddLHJbMThdLHJbMTldLHJbMjBdLHJbMjFdLHJbMjJdLHJbMjNdLHJbMjRdLHJbMjVdLHJbMjZdLHJbMjddLHJbMjhdLHJbMjldLHJbMzBdLHJbMzFdXX0sS3Y9ZnVuY3Rpb24oeCxyKXtyZXR1cm4geD09PXJbMTVdP3I6WzAsclsxXSxyWzJdLHJbM10scls0XSxyWzVdLHJbNl0scls3XSxyWzhdLHJbOV0sclsxMF0sclsxMV0sclsxMl0sclsxM10sclsxNF0seCxyWzE2XSxyWzE3XSxyWzE4XSxyWzE5XSxyWzIwXSxyWzIxXSxyWzIyXSxyWzIzXSxyWzI0XSxyWzI1XSxyWzI2XSxyWzI3XSxyWzI4XSxyWzI5XSxyWzMwXSxyWzMxXV19LHJSPWZ1bmN0aW9uKHgscil7cmV0dXJuIHg9PT1yWzE2XT9yOlswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSxyWzZdLHJbN10scls4XSxyWzldLHJbMTBdLHJbMTFdLHJbMTJdLHJbMTNdLHJbMTRdLHJbMTVdLHgsclsxN10sclsxOF0sclsxOV0sclsyMF0sclsyMV0sclsyMl0sclsyM10sclsyNF0sclsyNV0sclsyNl0sclsyN10sclsyOF0sclsyOV0sclszMF0sclszMV1dfSxzej1mdW5jdGlvbih4LHIpe3JldHVybiB4PT09cls2XT9yOlswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSx4LHJbN10scls4XSxyWzldLHJbMTBdLHJbMTFdLHJbMTJdLHJbMTNdLHJbMTRdLHJbMTVdLHJbMTZdLHJbMTddLHJbMThdLHJbMTldLHJbMjBdLHJbMjFdLHJbMjJdLHJbMjNdLHJbMjRdLHJbMjVdLHJbMjZdLHJbMjddLHJbMjhdLHJbMjldLHJbMzBdLHJbMzFdXX0sb3o9ZnVuY3Rpb24oeCxyKXtyZXR1cm4geD09PXJbN10/cjpbMCxyWzFdLHJbMl0sclszXSxyWzRdLHJbNV0scls2XSx4LHJbOF0scls5XSxyWzEwXSxyWzExXSxyWzEyXSxyWzEzXSxyWzE0XSxyWzE1XSxyWzE2XSxyWzE3XSxyWzE4XSxyWzE5XSxyWzIwXSxyWzIxXSxyWzIyXSxyWzIzXSxyWzI0XSxyWzI1XSxyWzI2XSxyWzI3XSxyWzI4XSxyWzI5XSxyWzMwXSxyWzMxXV19LGVSPWZ1bmN0aW9uKHgscil7cmV0dXJuIHg9PT1yWzEzXT9yOlswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSxyWzZdLHJbN10scls4XSxyWzldLHJbMTBdLHJbMTFdLHJbMTJdLHgsclsxNF0sclsxNV0sclsxNl0sclsxN10sclsxOF0sclsxOV0sclsyMF0sclsyMV0sclsyMl0sclsyM10sclsyNF0sclsyNV0sclsyNl0sclsyN10sclsyOF0sclsyOV0sclszMF0sclszMV1dfSxZeT1mdW5jdGlvbih4LHIpe3JldHVyblswLHJbMV0sclsyXSxyWzNdLHJbNF0scls1XSxyWzZdLHJbN10scls4XSxyWzldLHJbMTBdLHJbMTFdLHJbMTJdLHJbMTNdLHJbMTRdLHJbMTVdLHJbMTZdLHJbMTddLHJbMThdLHJbMTldLHJbMjBdLHJbMjFdLHJbMjJdLFswLHhdLHJbMjRdLHJbMjVdLHJbMjZdLHJbMjddLHJbMjhdLHJbMjldLHJbMzBdLHJbMzFdXX0sdFI9ZnVuY3Rpb24oeCl7ZnVuY3Rpb24gcihlKXtyZXR1cm4gbngoeCxlKX1yZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGcyKHIsZSl9fSx4Mz1mdW5jdGlvbih4KXt2YXIgcj14WzRdWzFdO3JldHVybiByP1swLHJbMV1bMl1dOjB9LHZ6PWZ1bmN0aW9uKHgpe3ZhciByPXhbNF1bMV07cmV0dXJuIHI/WzAsclsxXVsxXV06MH0sYXo9ZnVuY3Rpb24oeCl7cmV0dXJuWzAseFsxXSx4WzJdLHhbM10seFs0XSx4WzVdLHhbNl0seFs3XSx4WzhdLHhbOV0seFsxMF0seFsxMV0seFsxMl0seFsxM10seFsxNF0seFsxNV0seFsxNl0seFsxN10seFsxOF0seFsxOV0seFsyMF0seFsyMV0seFsyMl0sMCx4WzI0XSx4WzI1XSx4WzI2XSx4WzI3XSx4WzI4XSx4WzI5XSx4WzMwXSx4WzMxXV19LGx6PWZ1bmN0aW9uKHgscixlLHQpe3JldHVyblswLHhbMV0seFsyXSx3MlsxXSx4WzRdLHhbNV0sMCwwLDAsMCwwLDEseFsxMl0seFsxM10seFsxNF0seFsxNV0seFsxNl0seFsxN10sZSxyLHhbMjBdLHQseFsyMl0seFsyM10seFsyNF0seFsyNV0seFsyNl0seFsyN10seFsyOF0seFsyOV0seFszMF0seFszMV1dfSxyMz1mdW5jdGlvbih4KXtyZXR1cm4gUCh4LF92KSYmUCh4LFEyKSYmUCh4LGRhKSYmUCh4LFdwKSYmUCh4LGtsKSYmUCh4LEIzKSYmUCh4LGozKSYmUCh4LGplKSYmUCh4LGoyKT8wOjF9LEJ2PWZ1bmN0aW9uKHgpe3JldHVybiBQKHgsbVApJiZQKHgsXCJldmFsXCIpPzA6MX0sVnk9ZnVuY3Rpb24oeCl7dmFyIHI9VHgoeCxRcCksZT0wO2lmKDA8PXIpe2lmKDA8cil7dmFyIHQ9VHgoeCx2dik7MDw9dD8wPHQmJlAoeCxYZSkmJlAoeCxTcykmJlAoeCx0ZCkmJlAoeCxUcykmJlAoeCxzbCkmJlAoeCxQcykmJlAoeCxNcCkmJlAoeCx2cCkmJihlPTEpOlAoeCxNMikmJlAoeCx3bykmJlAoeCxaMykmJlAoeCxvdikmJlAoeCxtdikmJlAoeCxVZSkmJlAoeCxOYSkmJlAoeCxZZSkmJihlPTEpfX1lbHNle3ZhciB1PVR4KHgsSzUpOzA8PXU/MDx1JiZQKHgsSXApJiZQKHgsY2wpJiZQKHgseDgpJiZQKHgsT2MpJiZQKHgsQXMpJiZQKHgsZ3ApJiZQKHgsZDgpJiZQKHgsbGEpJiYoZT0xKTpQKHgsTWUpJiZQKHgsWHApJiZQKHgsSzgpJiZQKHgsVjMpJiZQKHgsbmwpJiZQKHgsT2UpJiZQKHgsUmUpJiZQKHgsYXYpJiZQKHgsZWwpJiYoZT0xKX1yZXR1cm4gZT8wOjF9LG5SPWZ1bmN0aW9uKHgpe3ZhciByPVR4KHgsUDgpLGU9MDtpZigwPD1yKXtpZigwPHIpe3ZhciB0PVR4KHgsd3gpOzA8PXQ/MDx0JiZQKHgsU3MpJiZQKHgsVHMpJiZQKHgscTUpJiZQKHgsZzUpJiZQKHgsUHMpJiYoZT0xKTpQKHgsbXYpJiZQKHgsa2EpJiZQKHgsVGEpJiZQKHgsamUpJiZQKHgsTGEpJiYoZT0xKX19ZWxzZXt2YXIgdT1UeCh4LE9jKTswPD11PzA8dSYmUCh4LEFzKSYmUCh4LGxhKSYmUCh4LFEyKSYmUCh4LEE4KSYmUCh4LHNwKSYmKGU9MSk6UCh4LEFhKSYmUCh4LHQ1KSYmUCh4LGt2KSYmUCh4LFQ1KSYmUCh4LEYzKSYmUCh4LHNlKSYmKGU9MSl9cmV0dXJuIGU/MDoxfSxwej1mdW5jdGlvbih4LHIpe3ZhciBlPWJhKHgpO2lmKGU9PT0xKXJldHVybiB0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTQ/MTowO2lmKGUpcmV0dXJuIDA7dmFyIHQ9MDtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil7dmFyIHU9cjtpZig0Njw9dSlzd2l0Y2godSl7Y2FzZSA0NjpjYXNlIDQ3OmNhc2UgMTI1OmNhc2UgMTI2OmNhc2UgMTI3OmNhc2UgMTI4OmNhc2UgMTI5OnQ9MjticmVhaztjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OmNhc2UgNTg6Y2FzZSA1OTpjYXNlIDYwOmNhc2UgNjE6Y2FzZSA2MjpjYXNlIDYzOmNhc2UgNjQ6Y2FzZSA2NTpjYXNlIDExNDpjYXNlIDExNTpjYXNlIDExNjpjYXNlIDExNzpjYXNlIDExODpjYXNlIDExOTpjYXNlIDEyMDpjYXNlIDEyMTpjYXNlIDEyMjpjYXNlIDEyMzpjYXNlIDEyNDpicmVhaztkZWZhdWx0OnQ9MX1lbHNlIHN3aXRjaCh1KXtjYXNlIDE1OmNhc2UgNDI6dD0yO2JyZWFrO2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDEzOmNhc2UgMTQ6dD0xO2JyZWFrfX1lbHNlIHN3aXRjaChyWzBdKXtjYXNlIDQ6aWYoblIoclszXSkpcmV0dXJuIDA7YnJlYWs7Y2FzZSA2OnQ9MTticmVhaztjYXNlIDExOmNhc2UgMTI6Y2FzZSAxMzpicmVhaztkZWZhdWx0OnJldHVybiAwfXN3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAwO2RlZmF1bHQ6cmV0dXJuIDB9fSxrcj1mdW5jdGlvbih4LHIpe3JldHVybiBEbyh4LHIpWzFdfSx0Nj1mdW5jdGlvbih4LHIpe3JldHVybiBEbyh4LHIpWzJdfSxXPWZ1bmN0aW9uKHgpe3JldHVybiBrcigwLHgpfSxQeD1mdW5jdGlvbih4KXtyZXR1cm4gdDYoMCx4KX0sR3M9ZnVuY3Rpb24oeCl7dmFyIHI9eDMoeCksZT1yP3JbMV06T3gob3MwKTtyZXR1cm5bMCxlWzFdLGVbM10sZVszXV19LHVSPWZ1bmN0aW9uKHgpe3JldHVybiBEbygwLHgpWzNdfSx3MD1mdW5jdGlvbih4KXt2YXIgcj1EbygwLHgpWzRdO3JldHVybiByP2EoTWwoZnVuY3Rpb24oZSl7cmV0dXJuIEZzKHhbMzFdWzFdLGVbMV1bMl0pPD0wPzE6MH0pLHIpOjB9LGR6PWZ1bmN0aW9uKHgpe3ZhciByPURvKDAseClbNF07cmV0dXJuIHJPKGZ1bmN0aW9uKGUpe3JldHVybiBGcyhlWzFdWzJdLHhbMzFdWzFdKTwwPzE6MH0scil9LG42PWZ1bmN0aW9uKHgscil7dmFyIGU9MDx4P1swLHQ2KHgtMXwwLHIpXTp4MyhyKTtpZighZSlyZXR1cm4gMDt2YXIgdD1lWzFdWzJdWzFdO3JldHVybiB0PHQ2KHgscilbMl1bMV0/MTowfSxyZT1mdW5jdGlvbih4KXtyZXR1cm4gbjYoMCx4KX0seXo9ZnVuY3Rpb24oeCxyKXt2YXIgZT1rcih4LHIpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXt2YXIgdD1lLTJ8MDtpZihWMTx0Pj4+MCl7aWYoTDI+PXQrMT4+PjApcmV0dXJuIDF9ZWxzZSBpZih0PT09NilyZXR1cm4gMH1yZXR1cm4gbjYoeCxyKX0sZTM9ZnVuY3Rpb24oeCl7cmV0dXJuIHl6KDAseCl9LFVvPWZ1bmN0aW9uKHgscil7dmFyIGU9a3IoeCxyKSx0PTA7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpc3dpdGNoKGUpe2Nhc2UgMjg6Y2FzZSA0MjpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpjYXNlIDU4OnZhciB1PTE7YnJlYWs7ZGVmYXVsdDp0PTF9ZWxzZSBpZihlWzBdPT09NCl2YXIgdT1yMyhlWzJdKTtlbHNlIHQ9MTtpZih0KXZhciB1PTA7aWYodSlyZXR1cm4gMTt2YXIgaT0wO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXN3aXRjaChlKXtjYXNlIDE0OmNhc2UgNDg6Y2FzZSA2MDpjYXNlIDYxOmNhc2UgNjI6Y2FzZSA2MzpjYXNlIDY0OmNhc2UgNjU6Y2FzZSAxMjY6aT0xO2JyZWFrfWVsc2UgZVswXT09PTQmJihpPTEpO3JldHVybiBpPzE6MH0senk9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gcHoocixrcih4LHIpKX0sbXo9ZnVuY3Rpb24oeCxyKXt2YXIgZT1Vbyh4LHIpO3JldHVybiBlfHx6eSh4LHIpfSxucz1mdW5jdGlvbih4KXtyZXR1cm4gVW8oMCx4KX0sam89ZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KT09PTE1PzE6MDtpZihyKXZhciBlPXI7ZWxzZXt2YXIgdD1XKHgpPT09NjQ/MTowO2lmKHQpe3ZhciB1PWtyKDEseCk9PT0xNT8xOjA7aWYodSl2YXIgaT10NigxLHgpWzJdWzFdLGU9UHgoeClbM11bMV09PT1pPzE6MDtlbHNlIHZhciBlPXV9ZWxzZSB2YXIgZT10fXJldHVybiBlfSx1Nj1mdW5jdGlvbih4KXt2YXIgcj1XKHgpO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXN3aXRjaChyKXtjYXNlIDEzOmNhc2UgNDA6cmV0dXJuIDF9ZWxzZSBpZihyWzBdPT09NCYmIVAoclszXSxCaCkmJmtyKDEseCk9PT00MClyZXR1cm4gMTtyZXR1cm4gMH0saVI9ZnVuY3Rpb24oeCl7dmFyIHI9eFsyOF1bMV07aWYocil7dmFyIGU9Vyh4KTtpZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTQmJiFQKGVbM10sbG8pJiZVbygxLHgpKXJldHVybiAxO3ZhciB0PTB9ZWxzZSB2YXIgdD1yO3JldHVybiB0fSxmUj1mdW5jdGlvbih4KXt2YXIgcj1XKHgpO3JldHVybiB0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTQmJiFQKHJbM10sWjEpPzE6MH0sVng9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gbngoeCxbMCxQeCh4KSxyXSl9LGt6PWZ1bmN0aW9uKHgscil7dmFyIGU9Wk8oMCxyKTtyZXR1cm4geD9bMjYsZSx4WzFdXTpbMjQsZV19LFMxPWZ1bmN0aW9uKHgscil7dmFyIGU9dVIocik7cmV0dXJuIGEodFIociksZSksVngocixreih4LFcocikpKX0sS3k9ZnVuY3Rpb24oeCl7ZnVuY3Rpb24gcihlKXtyZXR1cm4gbngoeCxbMCxlWzFdLFJyXSl9cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBnMihyLGUpfX0saHo9ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzZdP0gwKFRyKGNzMCkscixyLHIpOnNzMDtyZXR1cm4gUzEoWzAsZV0seCl9LFp0PWZ1bmN0aW9uKHgscil7dmFyIGU9eFs1XTtyZXR1cm4gZSYmVngoeCxyKX0sYXQ9ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzVdLHQ9clsyXSx1PXJbMV07cmV0dXJuIGUmJm54KHgsWzAsdSx0XSl9LFd2PWZ1bmN0aW9uKHgscil7cmV0dXJuIG54KHgsWzAscixbMTQseFs1XV1dKX0sWjA9ZnVuY3Rpb24oeCl7dmFyIHI9eFsyN11bMV07aWYocil7dmFyIGU9clsxXSx0PWJhKHgpLHU9Vyh4KTthKGUsWzAsUHgoeCksdSx0XSl9dmFyIGk9eFsyNl1bMV0sZj1pWzFdLG89Zj9mWzFdWzFdOlh5KGkpWzFdO3hbMjVdWzFdPW87dmFyIGw9dVIoeCk7YSh0Uih4KSxsKTt2YXIgZD14WzJdWzFdLGs9SGMoRG8oMCx4KVs0XSxkKTt4WzJdWzFdPWs7dmFyIGg9WzAsRG8oMCx4KV07eFs0XVsxXT1oO3ZhciBnPXhbMjZdWzFdO3JldHVybiBnWzJdPyhnWzFdPWdbMl0sZ1syXT0wLDApOihpeihnKSxnWzFdPTAsMCl9LG8xPWZ1bmN0aW9uKHgscil7dmFyIGU9cCh6TyxXKHgpLHIpO3JldHVybiBlJiZaMCh4KSxlfSxKMT1mdW5jdGlvbih4LHIpe3hbMjRdWzFdPVswLHIseFsyNF1bMV1dO3ZhciBlPWJhKHgpLHQ9YmwoeFsyNV1bMV0sZSk7cmV0dXJuIHhbMjZdWzFdPXQsMH0sSzE9ZnVuY3Rpb24oeCl7dmFyIHI9eFsyNF1bMV0sZT1yP3JbMl06T3goZnMwKTt4WzI0XVsxXT1lO3ZhciB0PWJhKHgpLHU9YmwoeFsyNV1bMV0sdCk7cmV0dXJuIHhbMjZdWzFdPXUsMH0saHg9ZnVuY3Rpb24oeCl7dmFyIHI9UHgoeCk7aWYoVyh4KT09PTkmJm42KDEseCkpe3ZhciBlPXcwKHgpLHQ9RG8oMSx4KVs0XSx1PVF4KGUsYShNbChmdW5jdGlvbihmKXtyZXR1cm4gZlsxXVsyXVsxXTw9clszXVsxXT8xOjB9KSx0KSk7cmV0dXJuIHg2KHgsWzAsclszXVsxXSsxfDAsMF0pLHV9dmFyIGk9dzAoeCk7cmV0dXJuIHg2KHgsclszXSksaX0sSm89ZnVuY3Rpb24oeCl7dmFyIHI9eFs0XVsxXTtpZighcilyZXR1cm4gMDt2YXIgZT1yWzFdWzJdLHQ9dzAoeCksdT1hKE1sKGZ1bmN0aW9uKGkpe3JldHVybiBpWzFdWzJdWzFdPD1lWzNdWzFdPzE6MH0pLHQpO3JldHVybiB4Nih4LFswLGVbM11bMV0rMXwwLDBdKSx1fSxxcz1mdW5jdGlvbih4LHIpe3JldHVybiBTMShbMCxaTyhuczAscildLHgpfSx1MD1mdW5jdGlvbih4LHIpe3JldHVybiAxLXAoek8sVyh4KSxyKSYmcXMoeCxyKSxaMCh4KX0sX3o9ZnVuY3Rpb24oeCxyKXt2YXIgZT1vMSh4LHIpO3JldHVybiAxLWUmJnFzKHgsciksZX0sQnk9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gX3ooeCxyKSwwfSxIcz1mdW5jdGlvbih4LHIpe3ZhciBlPVcoeCksdD0wO3JldHVybiB0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTQmJkFyKGVbM10scikmJih0PTEpLHR8fFMxKFswLGEoVHIodHMwKSxyKV0seCksWjAoeCl9LHVzPVtHcixtczAsSnMoMCldLHd6PWZ1bmN0aW9uKHgscixlKXtpZighZSlyZXR1cm4gMDt2YXIgdD1lWzFdLHU9dFsxXSxpPXRbMl07aWYoclsyN11bMV09WzAsdV0sIXgpcmV0dXJuIHg7Zm9yKHZhciBmPWlbMl07Oyl7aWYoIWYpcmV0dXJuIDA7dmFyIG89ZlsyXTthKHUsZlsxXSk7dmFyIGY9b319LGNSPWZ1bmN0aW9uKHgscil7dmFyIGU9eFsyN11bMV07aWYoZSl7dmFyIHQ9ZVsxXSx1PWlZKDApLGk9WzAsZnVuY3Rpb24oVil7cmV0dXJuIHVPKFYsdSl9XTt4WzI3XVsxXT1pO3ZhciBmPVswLFswLHQsdV1dfWVsc2UgdmFyIGY9MDt2YXIgbz14WzMxXVsxXSxsPXhbMjVdWzFdLGQ9eFsyNF1bMV0saz14WzRdWzFdLGg9eFsyXVsxXSxnPXhbMV1bMV07dHJ5e3ZhciBBPWEocix4KTt3eigxLHgsZik7dmFyIE49WzAsQV07cmV0dXJuIE59Y2F0Y2goTSl7dmFyIEM9QzEoTSk7aWYoQyE9PXVzKXRocm93IHEwKEMsMCk7d3ooMCx4LGYpLHhbMV1bMV09Zyx4WzJdWzFdPWgseFs0XVsxXT1rLHhbMjRdWzFdPWQseFsyNV1bMV09bCx4WzMxXVsxXT1vO3ZhciBPPWJhKHgpLEw9YmwoeFsyNV1bMV0sTyk7cmV0dXJuIHhbMjZdWzFdPUwsMH19LFd5PWZ1bmN0aW9uKHgscixlKXt2YXIgdD1jUih4LGUpO3JldHVybiB0P3RbMV06cn0saTY9ZnVuY3Rpb24oeCxyKXt2YXIgZT1BeChyKTtpZighZSlyZXR1cm4gcjt2YXIgdD1lWzFdLHU9ZVsyXSxpPWEoeCx0KTtyZXR1cm4gdD09PWk/cjpBeChbMCxpLHVdKX0sVHo9dXkoVHMwLGZ1bmN0aW9uKHgpe3ZhciByPU5PKHgsaHMwKSxlPUFPKHgsd3MwKSx0PWVbMjRdLHU9ZVsyOF0saT1lWzQxXSxmPWVbOTBdLG89ZVtJVF0sbD1lW2FnXSxkPWVbaHZdLGs9ZVtqal0saD1lW2NEXSxnPWVbZGpdLEE9ZVs2XSxOPWVbN10sQz1lWzEwXSxPPWVbMTddLEw9ZVsyM10sTT1lWzI5XSxWPWVbMzldLHo9ZVs0Ml0sWT1lWzUyXSx0MD1lWzYwXSxpMD1lW0RlXSxqPWVbSXNdLEs9ZVtPc10sSj1lW3BvXSxRPWVbcGFdLHgwPWVbdmhdLCQ9ZVt5X10sZjA9ZVtYRF0sczA9ZVtoal0sdjA9ZVtVU10sbzA9ZVtNUF0sYzA9ZVtDVF0sZDA9ZVtyNV0sRTA9ZVtka10sTDA9ZVtyZF0sWDA9ZVtZd10seHg9ZVtaQV0sZzA9ZVtwVF0sJDA9ZVtaNV0sbjA9ZVtCNF0saXg9ZVtPdl0scng9ZVtGRF0sZHg9ZVt6RF0sYXg9ZVtYal0sU3g9ZVtycl0sRDA9ZVtTRF0sTjA9ZVtmSl0sQTA9ZVt4a10sWTA9ZVthal0sQzA9ZVtQVV0sRj1JTyh4LDAsMCwkWCxqTywxKVsxXTtmdW5jdGlvbiBIKHIwLFMwLEcpe3ZhciBoMD1HWzJdLHowPWgwWzJdLE0wPWgwWzFdLHV4PUdbMV07aWYoejApe3ZhciBaeD16MFsxXSxMeD1mdW5jdGlvbigkeCl7cmV0dXJuWzAsdXgsWzAsTTAsWzAsJHhdXV19O3JldHVybiBHMChhKHIwWzFdWzErbF0scjApLFp4LEcsTHgpfWZ1bmN0aW9uIHRyKCR4KXtyZXR1cm5bMCx1eCxbMCwkeCx6MF1dfXJldHVybiBHMChwKHIwWzFdWzErQV0scjAsUzApLE0wLEcsdHIpfWZ1bmN0aW9uIEIocjAsUzAsRyl7dmFyIGgwPUdbMl0sejA9R1sxXSxNMD16MFszXSx1eD16MFsyXSxaeD16MFsxXTtpZihNMCl2YXIgTHg9aTYoYShyMFsxXVsxK3VdLHIwKSxNMCksdHI9dXg7ZWxzZSB2YXIgTHg9MCx0cj1wKHIwWzFdWzErdV0scjAsdXgpO3ZhciAkeD1wKHIwWzFdWzEraV0scjAsaDApO3JldHVybiB1eD09PXRyJiZNMD09PUx4JiZoMD09PSR4P0c6WzAsWzAsWngsdHIsTHhdLCR4XX1mdW5jdGlvbiBhMChyMCxTMCl7dmFyIEc9UzBbMl0saDA9R1syXSx6MD1HWzFdLE0wPVMwWzFdO2Z1bmN0aW9uIHV4KFp4KXtyZXR1cm5bMCxNMCxbMCx6MCxaeF1dfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLFMwLHV4KX1mdW5jdGlvbiBtMChyMCxTMCxHKXt2YXIgaDA9R1szXTtmdW5jdGlvbiB6MChNMCl7cmV0dXJuWzAsR1sxXSxHWzJdLE0wXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxoMCxHLHowKX1mdW5jdGlvbiBQMChyMCxTMCl7dmFyIEc9UzBbMl07ZnVuY3Rpb24gaDAoejApe3JldHVyblswLFMwWzFdLHowXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxHLFMwLGgwKX1mdW5jdGlvbiBEKHIwLFMwLEcpe3ZhciBoMD1HWzNdO2Z1bmN0aW9uIHowKE0wKXtyZXR1cm5bMCxHWzFdLEdbMl0sTTBdfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLEcsejApfWZ1bmN0aW9uIE8wKHIwLFMwLEcpe3ZhciBoMD1HWzJdLHowPUdbMV0sTTA9aTYoYShyMFsxXVsxK2xdLHIwKSx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLE0wLHV4XX1mdW5jdGlvbiBLMChyMCxTMCl7dmFyIEc9UzBbMl0saDA9R1syXSx6MD1HWzFdLE0wPVMwWzFdO2Z1bmN0aW9uIHV4KFp4KXtyZXR1cm5bMCxNMCxbMCx6MCxaeF1dfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLFMwLHV4KX1mdW5jdGlvbiBqMChyMCxTMCxHKXt2YXIgaDA9R1s0XTtmdW5jdGlvbiB6MChNMCl7cmV0dXJuWzAsR1sxXSxHWzJdLEdbM10sTTBdfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLEcsejApfWZ1bmN0aW9uIG94KHIwLFMwLEcpe3ZhciBoMD1HWzJdO2Z1bmN0aW9uIHowKE0wKXtyZXR1cm5bMCxHWzFdLE0wXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxoMCxHLHowKX1mdW5jdGlvbiBiMChyMCxTMCxHKXt2YXIgaDA9R1szXSx6MD1HWzJdLE0wPXAocjBbMV1bMStLXSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sTTAsdXhdfWZ1bmN0aW9uIF94KHIwLFMwLEcpe3ZhciBoMD1HWzRdLHowPUdbM10sTTA9R1syXSx1eD1HWzFdLFp4PXAocjBbMV1bMStpXSxyMCxoMCk7aWYoejApe3ZhciBMeD1LeChhKHIwWzFdWzErZ10scjApLHowKTtyZXR1cm4gejA9PT1MeCYmaDA9PT1aeD9HOlswLEdbMV0sR1syXSxMeCxaeF19aWYoTTApe3ZhciB0cj1LeChhKHIwWzFdWzEraF0scjApLE0wKTtyZXR1cm4gTTA9PT10ciYmaDA9PT1aeD9HOlswLEdbMV0sdHIsR1szXSxaeF19dmFyICR4PXAocjBbMV1bMStsXSxyMCx1eCk7cmV0dXJuIHV4PT09JHgmJmgwPT09Wng/RzpbMCwkeCxHWzJdLEdbM10sWnhdfWZ1bmN0aW9uIEIwKHIwLFMwLEcpe3ZhciBoMD1HWzRdLHowPUdbM10sTTA9cChyMFsxXVsxK2xdLHIwLHowKSx1eD1wKHIwWzFdWzEraV0scjAsaDApO3JldHVybiB6MD09PU0wJiZoMD09PXV4P0c6WzAsR1sxXSxHWzJdLE0wLHV4XX1mdW5jdGlvbiBUKHIwLFMwLEcpe3ZhciBoMD1HWzRdO2Z1bmN0aW9uIHowKE0wKXtyZXR1cm5bMCxHWzFdLEdbMl0sR1szXSxNMF19cmV0dXJuIEcwKGEocjBbMV1bMStpXSxyMCksaDAsRyx6MCl9ZnVuY3Rpb24gWChyMCxTMCxHKXt2YXIgaDA9R1s0XTtmdW5jdGlvbiB6MChNMCl7cmV0dXJuWzAsR1sxXSxHWzJdLEdbM10sTTBdfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLEcsejApfWZ1bmN0aW9uIEYwKHIwLFMwLEcpe3ZhciBoMD1HWzJdLHowPUdbMV0sTTA9ejBbM10sdXg9ejBbMl0sWng9ejBbMV07aWYoTTApdmFyIEx4PWk2KGEocjBbMV1bMSt1XSxyMCksTTApLHRyPXV4O2Vsc2UgdmFyIEx4PTAsdHI9cChyMFsxXVsxK3VdLHIwLHV4KTt2YXIgJHg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gdXg9PT10ciYmTTA9PT1MeCYmaDA9PT0keD9HOlswLFswLFp4LHRyLEx4XSwkeF19ZnVuY3Rpb24gc3gocjAsUzAsRyl7dmFyIGgwPUdbM10sejA9R1sxXSxNMD14MihhKHIwWzFdWzErZl0scjApLHowKSx1eD1wKHIwWzFdWzEraV0scjAsaDApO3JldHVybiB6MD09PU0wJiZoMD09PXV4P0c6WzAsTTAsR1syXSx1eF19ZnVuY3Rpb24gZXgocjAsUzAsRyl7dmFyIGgwPUdbMl07ZnVuY3Rpb24gejAoTTApe3JldHVyblswLEdbMV0sTTBdfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLEcsejApfWZ1bmN0aW9uIFUwKHIwLFMwKXtpZihTMFswXT09PTApe3ZhciBHPVMwWzFdLGgwPWZ1bmN0aW9uKHRyKXtyZXR1cm5bMCx0cl19O3JldHVybiBHMChhKHIwWzFdWzErb10scjApLEcsUzAsaDApfXZhciB6MD1TMFsxXSxNMD16MFsyXSx1eD1NMFsyXSxaeD16MFsxXSxMeD1wKHIwWzFdWzErb10scjAsdXgpO3JldHVybiB1eD09PUx4P1MwOlsxLFswLFp4LFswLE0wWzFdLEx4XV1dfWZ1bmN0aW9uIE54KHIwLFMwLEcpe3ZhciBoMD1HWzRdLHowPUdbM10sTTA9cChyMFsxXVsxK2MwXSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sR1syXSxNMCx1eF19ZnVuY3Rpb24gbXgocjAsUzApe3ZhciBHPVMwWzJdLGgwPVMwWzFdLHowPUdbNF07ZnVuY3Rpb24gTTAodXgpe3JldHVyblswLGgwLFswLEdbMV0sR1syXSxHWzNdLHV4XV19cmV0dXJuIEcwKGEocjBbMV1bMStpXSxyMCksejAsWzAsaDAsR10sTTApfWZ1bmN0aW9uIEJ4KHIwLFMwLEcpe3ZhciBoMD1HWzldLHowPUdbM10sTTA9cChyMFsxXVsxK0wwXSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sR1syXSxNMCxHWzRdLEdbNV0sR1s2XSxHWzddLEdbOF0sdXgsR1sxMF1dfWZ1bmN0aW9uIEd4KHIwLFMwLEcpe3ZhciBoMD1HWzRdLHowPUdbM10sTTA9cChyMFsxXVsxK2xdLHIwLHowKSx1eD1wKHIwWzFdWzEraV0scjAsaDApO3JldHVybiB6MD09PU0wJiZoMD09PXV4P0c6WzAsR1sxXSxHWzJdLE0wLHV4XX1mdW5jdGlvbiBKMChyMCxTMCl7dmFyIEc9UzBbMl0saDA9R1syXSx6MD1HWzFdLE0wPVMwWzFdO2Z1bmN0aW9uIHV4KFp4KXtyZXR1cm5bMCxNMCxbMCx6MCxaeF1dfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLFMwLHV4KX1mdW5jdGlvbiBieChyMCxTMCl7dmFyIEc9UzBbMl0saDA9UzBbMV0sejA9R1szXTtmdW5jdGlvbiBNMCh1eCl7cmV0dXJuWzAsaDAsWzAsR1sxXSxHWzJdLHV4XV19cmV0dXJuIEcwKGEocjBbMV1bMStpXSxyMCksejAsWzAsaDAsR10sTTApfWZ1bmN0aW9uIEp4KHIwLFMwLEcpe3ZhciBoMD1HWzZdLHowPUdbNV0sTTA9cChyMFsxXVsxK2l4XSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sR1syXSxHWzNdLEdbNF0sTTAsdXgsR1s3XV19ZnVuY3Rpb24gVzAocjAsUzApe3ZhciBHPVMwWzJdLGgwPUdbMl0sejA9R1sxXSxNMD1TMFsxXTtpZihoMD09PTApe3ZhciB1eD1mdW5jdGlvbih0cil7cmV0dXJuWzAsTTAsWzAsdHIsaDBdXX07cmV0dXJuIEcwKGEocjBbMV1bMStvXSxyMCksejAsUzAsdXgpfWZ1bmN0aW9uIFp4KHRyKXtyZXR1cm5bMCxNMCxbMCx6MCx0cl1dfXZhciBMeD1hKHIwWzFdWzErdF0scjApO3JldHVybiBHMChmdW5jdGlvbih0cil7cmV0dXJuIEt4KEx4LHRyKX0saDAsUzAsWngpfWZ1bmN0aW9uIG5yKHIwLFMwKXt2YXIgRz1TMFsyXSxoMD1HWzJdLHowPUdbMV0sTTA9UzBbMV07ZnVuY3Rpb24gdXgoTHgpe3JldHVyblswLE0wLFswLEx4LGgwXV19dmFyIFp4PWEocjBbMV1bMStkXSxyMCk7cmV0dXJuIEcwKGZ1bmN0aW9uKEx4KXtyZXR1cm4gaTYoWngsTHgpfSx6MCxTMCx1eCl9ZnVuY3Rpb24gVjAocjAsUzAsRyl7dmFyIGgwPUdbMl0sejA9R1sxXTtpZihoMD09PTApe3ZhciBNMD1mdW5jdGlvbihMeCl7cmV0dXJuWzAsTHgsR1syXSxHWzNdXX07cmV0dXJuIEcwKGEocjBbMV1bMStsXSxyMCksejAsRyxNMCl9ZnVuY3Rpb24gdXgoTHgpe3JldHVyblswLEdbMV0sTHgsR1szXV19dmFyIFp4PWEocjBbMV1bMSt0XSxyMCk7cmV0dXJuIEcwKGZ1bmN0aW9uKEx4KXtyZXR1cm4gS3goWngsTHgpfSxoMCxHLHV4KX1mdW5jdGlvbiBTcihyMCxTMCl7dmFyIEc9UzBbMl0saDA9R1syXSx6MD1HWzFdLE0wPVMwWzFdO2Z1bmN0aW9uIHV4KFp4KXtyZXR1cm5bMCxNMCxbMCx6MCxaeF1dfXJldHVybiBHMChhKHIwWzFdWzEraV0scjApLGgwLFMwLHV4KX1mdW5jdGlvbiBVcihyMCxTMCxHKXt2YXIgaDA9R1s3XSx6MD1HWzJdLE0wPXAocjBbMV1bMStrXSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sTTAsR1szXSxHWzRdLEdbNV0sR1s2XSx1eF19ZnVuY3Rpb24gbHgocjAsUzApe3ZhciBHPVMwWzJdLGgwPUdbMl0sejA9R1sxXSxNMD1TMFsxXTtmdW5jdGlvbiB1eChaeCl7cmV0dXJuWzAsTTAsWzAsejAsWnhdXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxoMCxTMCx1eCl9ZnVuY3Rpb24gYnIocjAsUzApe3ZhciBHPVMwWzJdLGgwPUdbMl0sejA9R1sxXSxNMD1TMFsxXTtmdW5jdGlvbiB1eChaeCl7cmV0dXJuWzAsTTAsWzAsejAsWnhdXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxoMCxTMCx1eCl9ZnVuY3Rpb24gZTIocjAsUzAsRyl7dmFyIGgwPUdbNF0sejA9R1szXSxNMD1wKHIwWzFdWzErZ10scjAsejApLHV4PXAocjBbMV1bMStpXSxyMCxoMCk7cmV0dXJuIHowPT09TTAmJmgwPT09dXg/RzpbMCxHWzFdLEdbMl0sTTAsdXhdfWZ1bmN0aW9uIGgxKHIwLFMwLEcpe3ZhciBoMD1HWzJdO2Z1bmN0aW9uIHowKE0wKXtyZXR1cm5bMCxHWzFdLE0wXX1yZXR1cm4gRzAoYShyMFsxXVsxK2ldLHIwKSxoMCxHLHowKX1mdW5jdGlvbiBJcihyMCxTMCxHKXt2YXIgaDA9R1s0XSx6MD1HWzNdLE0wPXAocjBbMV1bMStsXSxyMCx6MCksdXg9cChyMFsxXVsxK2ldLHIwLGgwKTtyZXR1cm4gejA9PT1NMCYmaDA9PT11eD9HOlswLEdbMV0sR1syXSxNMCx1eF19ZnVuY3Rpb24gUjEocjAsUzAsRyl7dmFyIGgwPUdbNF0sejA9R1szXSxNMD1wKHIwWzFdWzErbF0scjAsejApLHV4PXAocjBbMV1bMStpXSxyMCxoMCk7cmV0dXJuIHowPT09TTAmJmgwPT09dXg/RzpbMCxHWzFdLEdbMl0sTTAsdXhdfWZ1bmN0aW9uIF8ocjAsUzApe3ZhciBHPVMwWzJdO2Z1bmN0aW9uIGgwKHowKXtyZXR1cm5bMCxTMFsxXSx6MF19cmV0dXJuIEcwKGEocjBbMV1bMStpXSxyMCksRyxTMCxoMCl9ZnVuY3Rpb24gYihyMCxTMCxHKXt2YXIgaDA9R1syXTtmdW5jdGlvbiB6MChNMCl7cmV0dXJuWzAsR1sxXSxNMF19cmV0dXJuIEcwKGEocjBbMV1bMStpXSxyMCksaDAsRyx6MCl9cmV0dXJuIFJPKHgsWzAseixmdW5jdGlvbihyMCxTMCl7dmFyIEc9UzBbMl0saDA9YShNbChmdW5jdGlvbihNMCl7cmV0dXJuIEZzKE0wWzFdWzJdLHIwWzErcl0pPDA/MTowfSksRyksejA9cWMoaDApO3JldHVybiBxYyhHKT09PXowP1MwOlswLFMwWzFdLGgwLFMwWzNdXX0sQzAsYixZMCxfLEEwLFIxLE4wLElyLEQwLGgxLFN4LGUyLGcsYnIsaCxseCxheCxVcixrLFNyLGR4LFYwLHJ4LG5yLGQsVzAsbjAsSngsJDAsYngsZzAsSjAseHgsR3gsWDAsQngsRTAsbXgsZDAsTngsbzAsVTAsdjAsZXgsczAsc3gsZjAsRjAsJCxYLHgwLFQsUSxCMCxqLF94LEosYjAsaTAsb3gsZixqMCx0MCxLMCxZLE8wLFYsRCxNLFAwLEwsbTAsTyxhMCxDLEIsTixIXSksZnVuY3Rpb24ocjAsUzAsRyl7dmFyIGgwPWl5KFMwLHgpO3JldHVybiBoMFsxK3JdPUcsYShGLGgwKSxPTyhTMCxoMCx4KX19KSxaeT1mdW5jdGlvbih4KXt2YXIgcj14Myh4KTtpZihyKXZhciBlPXJbMV0sdD1keih4KT8oeDYoeCxlWzNdKSxbMCxwKFR6WzFdLDAsZVszXSldKTowLHU9dDtlbHNlIHZhciB1PTA7cmV0dXJuWzAsMCxmdW5jdGlvbihpLGYpe3JldHVybiB1P3AoZix1WzFdLGkpOml9XX0sZjY9ZnVuY3Rpb24oeCl7dmFyIHI9eDMoeCk7aWYocil7dmFyIGU9clsxXTtpZihkeih4KSl7eDYoeCxlWzNdKTt2YXIgdD1Kbyh4KSx1PVswLHAoVHpbMV0sMCxbMCxlWzNdWzFdKzF8MCwwXSldLGk9dH1lbHNlIHZhciB1PTAsaT1Kbyh4KX1lbHNlIHZhciB1PTAsaT0wO3JldHVyblswLGksZnVuY3Rpb24oZixvKXtyZXR1cm4gdT9wKG8sdVsxXSxmKTpmfV19LFAxPWZ1bmN0aW9uKHgpe3JldHVybiByZSh4KT9mNih4KTpaeSh4KX0sZ249ZnVuY3Rpb24oeCxyKXt2YXIgZT1QMSh4KVsyXTtyZXR1cm4gcChlLHIsZnVuY3Rpb24odCx1KXtyZXR1cm4gcChxeCh0LFBhLDIpLHQsdSl9KX0sZWU9ZnVuY3Rpb24oeCxyKXtpZighcilyZXR1cm4gMDt2YXIgZT1yWzFdLHQ9UDEoeClbMl07cmV0dXJuWzAscCh0LGUsZnVuY3Rpb24odSxpKXtyZXR1cm4gcChxeCh1LHpDLDUpLHUsaSl9KV19LHNSPWZ1bmN0aW9uKHgscil7dmFyIGU9UDEoeClbMl07cmV0dXJuIHAoZSxyLGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHAocXgodCxkRCw3KSx0LHUpfSl9LHQzPWZ1bmN0aW9uKHgscil7dmFyIGU9UDEoeClbMl07cmV0dXJuIHAoZSxyLGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHAocXgodCwtMTA0NTgyNDc3Nyw4KSx0LHUpfSl9LGM2PWZ1bmN0aW9uKHgscil7dmFyIGU9UDEoeClbMl07cmV0dXJuIHAoZSxyLGZ1bmN0aW9uKHQsdSl7cmV0dXJuIHAocXgodCwtNDU1NzcyOTc5LDkpLHQsdSl9KX0sU3o9ZnVuY3Rpb24oeCxyKXtpZighcilyZXR1cm4gMDt2YXIgZT1yWzFdLHQ9UDEoeClbMl07cmV0dXJuWzAscCh0LGUsZnVuY3Rpb24odSxpKXtyZXR1cm4gcChxeCh1LEZVLDEyKSx1LGkpfSldfSxBbj1mdW5jdGlvbih4LHIpe3ZhciBlPVAxKHgpWzJdO3JldHVybiBwKGUscixmdW5jdGlvbih0LHUpe3JldHVybiBwKHF4KHQseEQsMTMpLHQsdSl9KX0sRXo9ZnVuY3Rpb24oeCxyKXt2YXIgZT1QMSh4KVsyXTtyZXR1cm4gcChlLHIsZnVuY3Rpb24odCx1KXt2YXIgaT1hKHF4KHQsVmosMTUpLHQpO3JldHVybiBpNihmdW5jdGlvbihmKXtyZXR1cm4geDIoaSxmKX0sdSl9KX0sZ3o9ZnVuY3Rpb24oeCxyKXt2YXIgZT1QMSh4KVsyXTtyZXR1cm4gcChlLHIsZnVuY3Rpb24odCx1KXtyZXR1cm4gcChxeCh0LC0yMTQ3NjAwOSwxNiksdCx1KX0pfSx2UzA9ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzJdLHQ9eFsxXTtmdW5jdGlvbiB1KGJyKXtyZXR1cm4gTjIoYnIscil9c3dpdGNoKGVbMF0pe2Nhc2UgMDp2YXIgaT1lWzFdLGY9WU8oaVsyXSxyKSxseD1bMCxbMCxpWzFdLGZdXTticmVhaztjYXNlIDE6dmFyIG89ZVsxXSxsPXUob1syXSksbHg9WzEsWzAsb1sxXSxsXV07YnJlYWs7Y2FzZSAyOnZhciBkPWVbMV0saz11KGRbN10pLGx4PVsyLFswLGRbMV0sZFsyXSxkWzNdLGRbNF0sZFs1XSxkWzZdLGtdXTticmVhaztjYXNlIDM6dmFyIGg9ZVsxXSxnPWhbN10sQT11KGhbNl0pLGx4PVszLFswLGhbMV0saFsyXSxoWzNdLGhbNF0saFs1XSxBLGddXTticmVhaztjYXNlIDQ6dmFyIE49ZVsxXSxDPXUoTlsyXSksbHg9WzQsWzAsTlsxXSxDXV07YnJlYWs7Y2FzZSA1OnZhciBseD1bNSxbMCx1KGVbMV1bMV0pXV07YnJlYWs7Y2FzZSA2OnZhciBPPWVbMV0sTD11KE9bN10pLGx4PVs2LFswLE9bMV0sT1syXSxPWzNdLE9bNF0sT1s1XSxPWzZdLExdXTticmVhaztjYXNlIDc6dmFyIE09ZVsxXSxWPXUoTVs1XSksbHg9WzcsWzAsTVsxXSxNWzJdLE1bM10sTVs0XSxWXV07YnJlYWs7Y2FzZSA4OnZhciB6PWVbMV0sWT11KHpbM10pLGx4PVs4LFswLHpbMV0selsyXSxZXV07YnJlYWs7Y2FzZSA5OnZhciB0MD1lWzFdLGkwPXUodDBbNV0pLGx4PVs5LFswLHQwWzFdLHQwWzJdLHQwWzNdLHQwWzRdLGkwXV07YnJlYWs7Y2FzZSAxMDp2YXIgaj1lWzFdLEs9dShqWzRdKSxseD1bMTAsWzAsalsxXSxqWzJdLGpbM10sS11dO2JyZWFrO2Nhc2UgMTE6dmFyIEo9ZVsxXSxRPXUoSls1XSksbHg9WzExLFswLEpbMV0sSlsyXSxKWzNdLEpbNF0sUV1dO2JyZWFrO2Nhc2UgMTI6dmFyIHgwPWVbMV0sJD11KHgwWzRdKSxseD1bMTIsWzAseDBbMV0seDBbMl0seDBbM10sJF1dO2JyZWFrO2Nhc2UgMTM6dmFyIGYwPWVbMV0sczA9dShmMFsyXSksbHg9WzEzLFswLGYwWzFdLHMwXV07YnJlYWs7Y2FzZSAxNDp2YXIgdjA9ZVsxXSxvMD11KHYwWzRdKSxseD1bMTQsWzAsdjBbMV0sdjBbMl0sdjBbM10sbzBdXTticmVhaztjYXNlIDE1OnZhciBjMD1lWzFdLGQwPXUoYzBbNV0pLGx4PVsxNSxbMCxjMFsxXSxjMFsyXSxjMFszXSxjMFs0XSxkMF1dO2JyZWFrO2Nhc2UgMTY6dmFyIEUwPWVbMV0sTDA9dShFMFs0XSksbHg9WzE2LFswLEUwWzFdLEUwWzJdLEUwWzNdLEwwXV07YnJlYWs7Y2FzZSAxNzp2YXIgWDA9ZVsxXSx4eD11KFgwWzNdKSxseD1bMTcsWzAsWDBbMV0sWDBbMl0seHhdXTticmVhaztjYXNlIDE4OnZhciBseD1bMTgsWzAsdShlWzFdWzFdKV1dO2JyZWFrO2Nhc2UgMTk6dmFyIGcwPWVbMV0sJDA9dShnMFszXSksbHg9WzE5LFswLGcwWzFdLGcwWzJdLCQwXV07YnJlYWs7Y2FzZSAyMDp2YXIgbjA9ZVsxXSxpeD11KG4wWzNdKSxseD1bMjAsWzAsbjBbMV0sbjBbMl0saXhdXTticmVhaztjYXNlIDIxOnZhciByeD1lWzFdLGR4PXUocnhbNV0pLGx4PVsyMSxbMCxyeFsxXSxyeFsyXSxyeFszXSxyeFs0XSxkeF1dO2JyZWFrO2Nhc2UgMjI6dmFyIGF4PWVbMV0sU3g9dShheFszXSksbHg9WzIyLFswLGF4WzFdLGF4WzJdLFN4XV07YnJlYWs7Y2FzZSAyMzp2YXIgRDA9ZVsxXSxOMD11KEQwWzVdKSxseD1bMjMsWzAsRDBbMV0sRDBbMl0sRDBbM10sRDBbNF0sTjBdXTticmVhaztjYXNlIDI0OnZhciBBMD1lWzFdLFkwPXUoQTBbNV0pLGx4PVsyNCxbMCxBMFsxXSxBMFsyXSxBMFszXSxBMFs0XSxZMF1dO2JyZWFrO2Nhc2UgMjU6dmFyIEMwPWVbMV0sRj11KEMwWzVdKSxseD1bMjUsWzAsQzBbMV0sQzBbMl0sQzBbM10sQzBbNF0sRl1dO2JyZWFrO2Nhc2UgMjY6dmFyIEg9ZVsxXSxCPUhbMTBdLGEwPXUoSFs5XSksbHg9WzI2LFswLEhbMV0sSFsyXSxIWzNdLEhbNF0sSFs1XSxIWzZdLEhbN10sSFs4XSxhMCxCXV07YnJlYWs7Y2FzZSAyNzp2YXIgbTA9ZVsxXSxQMD11KG0wWzRdKSxseD1bMjcsWzAsbTBbMV0sbTBbMl0sbTBbM10sUDBdXTticmVhaztjYXNlIDI4OnZhciBEPWVbMV0sTzA9dShEWzVdKSxseD1bMjgsWzAsRFsxXSxEWzJdLERbM10sRFs0XSxPMF1dO2JyZWFrO2Nhc2UgMjk6dmFyIEswPWVbMV0sajA9dShLMFs1XSksbHg9WzI5LFswLEswWzFdLEswWzJdLEswWzNdLEswWzRdLGowXV07YnJlYWs7Y2FzZSAzMDp2YXIgb3g9ZVsxXSxiMD11KG94WzNdKSxseD1bMzAsWzAsb3hbMV0sb3hbMl0sYjBdXTticmVhaztjYXNlIDMxOnZhciBfeD1lWzFdLEIwPV94WzNdLFQ9dShfeFsyXSksbHg9WzMxLFswLF94WzFdLFQsQjBdXTticmVhaztjYXNlIDMyOnZhciBYPWVbMV0sRjA9WFs0XSxzeD11KFhbM10pLGx4PVszMixbMCxYWzFdLFhbMl0sc3gsRjBdXTticmVhaztjYXNlIDMzOnZhciBleD1lWzFdLFUwPXUoZXhbMl0pLGx4PVszMyxbMCxleFsxXSxVMF1dO2JyZWFrO2Nhc2UgMzQ6dmFyIE54PWVbMV0sbXg9dShOeFs0XSksbHg9WzM0LFswLE54WzFdLE54WzJdLE54WzNdLG14XV07YnJlYWs7Y2FzZSAzNTp2YXIgQng9ZVsxXSxHeD11KEJ4WzRdKSxseD1bMzUsWzAsQnhbMV0sQnhbMl0sQnhbM10sR3hdXTticmVhaztjYXNlIDM2OnZhciBKMD1lWzFdLGJ4PXUoSjBbNV0pLGx4PVszNixbMCxKMFsxXSxKMFsyXSxKMFszXSxKMFs0XSxieF1dO2JyZWFrO2Nhc2UgMzc6dmFyIEp4PWVbMV0sVzA9dShKeFszXSksbHg9WzM3LFswLEp4WzFdLEp4WzJdLFcwXV07YnJlYWs7Y2FzZSAzODp2YXIgbnI9ZVsxXSxWMD11KG5yWzNdKSxseD1bMzgsWzAsbnJbMV0sbnJbMl0sVjBdXTticmVhaztkZWZhdWx0OnZhciBTcj1lWzFdLFVyPXUoU3JbM10pLGx4PVszOSxbMCxTclsxXSxTclsyXSxVcl1dfXJldHVyblswLHQsbHhdfTt1eShTczAsZnVuY3Rpb24oeCl7dmFyIHI9Tk8oeCxrczApLGU9Q08oX3MwKSx0PWUubGVuZ3RoLTEsdT1aWC5sZW5ndGgtMSxpPUphKHQrdXwwLDApLGY9dC0xfDAsbz0wO2lmKGY+PTApZm9yKHZhciBsPW87Oyl7dmFyIGQ9S2woeCx6MShlLGwpWzErbF0pO3oxKGksbClbMStsXT1kO3ZhciBrPWwrMXwwO2lmKGYhPT1sKXt2YXIgbD1rO2NvbnRpbnVlfWJyZWFrfXZhciBoPXUtMXwwLGc9MDtpZihoPj0wKWZvcih2YXIgQT1nOzspe3ZhciBOPUErdHwwLEM9Tk8oeCx6MShaWCxBKVsxK0FdKTt6MShpLE4pWzErTl09Qzt2YXIgTz1BKzF8MDtpZihoIT09QSl7dmFyIEE9Tztjb250aW51ZX1icmVha312YXIgTD1pWzRdLE09aVs1XSxWPWlbejNdLHo9aVtodl0sWT1pWzI5Ml0sdDA9aVsyOTNdLGkwPWlbNDRdLGo9aVtROF0sSz1pW1dKXSxKPUlPKHgsMCwwLCRYLGpPLDEpWzFdO2Z1bmN0aW9uIFEobzAsYzAsZDApe3JldHVybiBwKG8wWzFdWzErVl0sbzAsZDBbMl0pLGQwfWZ1bmN0aW9uIHgwKG8wLGMwKXtyZXR1cm4gcChvMFsxXVsxK3pdLG8wLGMwKSxjMH1mdW5jdGlvbiAkKG8wLGMwKXt2YXIgZDA9YzBbMV0sRTA9bzBbMSt0MF07aWYoRTApe3ZhciBMMD1GcyhFMFsxXVsxXVsyXSxkMFsyXSk8MD8xOjAsWDA9TDAmJihvMFsxK3QwXT1bMCxjMF0sMCk7cmV0dXJuIFgwfXZhciB4eD0wPD1GcyhkMFsyXSxvMFsxK3JdWzNdKT8xOjAsZzA9eHgmJihvMFsxK3QwXT1bMCxjMF0sMCk7cmV0dXJuIGcwfWZ1bmN0aW9uIGYwKG8wLGMwKXt2YXIgZDA9YzBbMV0sRTA9bzBbMStZXTtpZihFMCl7dmFyIEwwPUZzKGQwWzJdLEUwWzFdWzFdWzJdKTwwPzE6MCxYMD1MMCYmKG8wWzErWV09WzAsYzBdLDApO3JldHVybiBYMH12YXIgeHg9RnMoZDBbMl0sbzBbMStyXVsyXSk8MD8xOjAsZzA9eHgmJihvMFsxK1ldPVswLGMwXSwwKTtyZXR1cm4gZzB9ZnVuY3Rpb24gczAobzAsYzApe3JldHVybiBjMD9wKG8wWzFdWzErel0sbzAsYzBbMV0pOjB9ZnVuY3Rpb24gdjAobzAsYzApe3ZhciBkMD1jMFsyXSxFMD1jMFsxXTtyZXR1cm4gZzIoYShvMFsxXVsxK01dLG8wKSxFMCksZzIoYShvMFsxXVsxK0xdLG8wKSxkMCl9cmV0dXJuIFJPKHgsWzAsaixmdW5jdGlvbihvMCl7cmV0dXJuWzAsbzBbMStZXSxvMFsxK3QwXV19LHosdjAsVixzMCxNLGYwLEwsJCxpMCx4MCxLLFFdKSxmdW5jdGlvbihvMCxjMCxkMCl7dmFyIEUwPWl5KGMwLHgpO3JldHVybiBFMFsxK3JdPWQwLGEoSixFMCksRTBbMStZXT0wLEUwWzErdDBdPTAsT08oYzAsRTAseCl9fSk7dmFyIEF6PWZ1bmN0aW9uKHgpe3ZhciByPVcoeCksZT0wO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXt2YXIgdD1yO2lmKDQ5PD10KXN3aXRjaCh0KXtjYXNlIDQ5OnZhciB1PW5vMDticmVhaztjYXNlIDUwOnZhciB1PXVvMDticmVhaztjYXNlIDUxOnZhciB1PWlvMDticmVhaztjYXNlIDUyOnZhciB1PWZvMDticmVhaztjYXNlIDUzOnZhciB1PWNvMDticmVhaztjYXNlIDU0OnZhciB1PXNvMDticmVhaztjYXNlIDU1OnZhciB1PW9vMDticmVhaztjYXNlIDU2OnZhciB1PXZvMDticmVhaztjYXNlIDU3OnZhciB1PWFvMDticmVhaztjYXNlIDU4OnZhciB1PWxvMDticmVhaztjYXNlIDU5OnZhciB1PXBvMDticmVhaztjYXNlIDYwOnZhciB1PWRvMDticmVhaztjYXNlIDYxOnZhciB1PXlvMDticmVhaztjYXNlIDYyOnZhciB1PW1vMDticmVhaztjYXNlIDYzOnZhciB1PWtvMDticmVhaztjYXNlIDY0OnZhciB1PWhvMDticmVhaztjYXNlIDY1OnZhciB1PV9vMDticmVhaztjYXNlIDExNDp2YXIgdT13bzA7YnJlYWs7Y2FzZSAxMTU6dmFyIHU9VG8wO2JyZWFrO2Nhc2UgMTE2OnZhciB1PVNvMDticmVhaztjYXNlIDExNzp2YXIgdT1FbzA7YnJlYWs7Y2FzZSAxMTg6dmFyIHU9Z28wO2JyZWFrO2Nhc2UgMTE5OnZhciB1PUFvMDticmVhaztjYXNlIDEyMDp2YXIgdT1QbzA7YnJlYWs7Y2FzZSAxMjE6dmFyIHU9Tm8wO2JyZWFrO2Nhc2UgMTIyOnZhciB1PUNvMDticmVhaztjYXNlIDEyMzp2YXIgdT1JbzA7YnJlYWs7Y2FzZSAxMjQ6dmFyIHU9T28wO2JyZWFrO2Nhc2UgMTI1OnZhciB1PVJvMDticmVhaztjYXNlIDEyNjp2YXIgdT1MbzA7YnJlYWs7Y2FzZSAxMjg6dmFyIHU9TW8wO2JyZWFrO2Nhc2UgMTI5OnZhciB1PURvMDticmVhaztkZWZhdWx0OmU9MX1lbHNlIHN3aXRjaCh0KXtjYXNlIDE1OnZhciB1PUVzMDticmVhaztjYXNlIDE2OnZhciB1PWdzMDticmVhaztjYXNlIDE3OnZhciB1PUFzMDticmVhaztjYXNlIDE4OnZhciB1PVBzMDticmVhaztjYXNlIDE5OnZhciB1PU5zMDticmVhaztjYXNlIDIwOnZhciB1PUNzMDticmVhaztjYXNlIDIxOnZhciB1PUlzMDticmVhaztjYXNlIDIyOnZhciB1PU9zMDticmVhaztjYXNlIDIzOnZhciB1PVJzMDticmVhaztjYXNlIDI0OnZhciB1PUxzMDticmVhaztjYXNlIDI1OnZhciB1PU1zMDticmVhaztjYXNlIDI2OnZhciB1PURzMDticmVhaztjYXNlIDI3OnZhciB1PVVzMDticmVhaztjYXNlIDI4OnZhciB1PWpzMDticmVhaztjYXNlIDI5OnZhciB1PUpzMDticmVhaztjYXNlIDMwOnZhciB1PVhzMDticmVhaztjYXNlIDMxOnZhciB1PVlzMDticmVhaztjYXNlIDMyOnZhciB1PVZzMDticmVhaztjYXNlIDMzOnZhciB1PXpzMDticmVhaztjYXNlIDM0OnZhciB1PUtzMDticmVhaztjYXNlIDM1OnZhciB1PUJzMDticmVhaztjYXNlIDM2OnZhciB1PVdzMDticmVhaztjYXNlIDM3OnZhciB1PVpzMDticmVhaztjYXNlIDM4OnZhciB1PSRzMDticmVhaztjYXNlIDM5OnZhciB1PUZzMDticmVhaztjYXNlIDQwOnZhciB1PVFzMDticmVhaztjYXNlIDQxOnZhciB1PUdzMDticmVhaztjYXNlIDQyOnZhciB1PXFzMDticmVhaztjYXNlIDQzOnZhciB1PUhzMDticmVhaztjYXNlIDQ0OnZhciB1PWJzMDticmVhaztjYXNlIDQ1OnZhciB1PXhvMDticmVhaztjYXNlIDQ2OnZhciB1PXJvMDticmVhaztjYXNlIDQ3OnZhciB1PWVvMDticmVhaztjYXNlIDQ4OnZhciB1PXRvMDticmVhaztkZWZhdWx0OmU9MX19ZWxzZSBzd2l0Y2goclswXSl7Y2FzZSA0OnZhciB1PXJbMl07YnJlYWs7Y2FzZSAxMTp2YXIgaT1yWzFdP1VvMDpqbzAsdT1pO2JyZWFrO2RlZmF1bHQ6ZT0xfWlmKGUpe1MxKEpvMCx4KTt2YXIgdT1YbzB9cmV0dXJuIFowKHgpLHV9LFQyPWZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9dzAoeCksdD1Beih4KTtyZXR1cm5bMCxyLFswLHQsazAoWzAsZV0sWzAsaHgoeCldLDApXV19LFB6PWZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9dzAoeCk7dTAoeCwxNCk7dmFyIHQ9UHgoeCksdT1Beih4KSxpPWswKFswLGVdLFswLGh4KHgpXSwwKSxmPXUxKHIsdCksbz10WzJdLGw9clszXSxkPWxbMV09PT1vWzFdPzE6MCxrPWQmJihsWzJdPT09b1syXT8xOjApO3JldHVybiAxLWsmJm54KHgsWzAsZixPc10pLFswLGYsWzAsdSxpXV19LFp2PWZ1bmN0aW9uKHgpe3ZhciByPXhbMl0sZT1yWzNdPT09MD8xOjAsdD1yWzJdO2lmKCFlKXJldHVybiBlO2Zvcih2YXIgdT10Ozspe2lmKCF1KXJldHVybiAxO3ZhciBpPXVbMV1bMl0sZj0wLG89dVsyXTtpZihpWzFdWzJdWzBdPT09MiYmIWlbMl0pe3ZhciBsPTE7Zj0xfWlmKCFmKXZhciBsPTA7aWYoIWwpcmV0dXJuIGw7dmFyIHU9b319LHM2PWZ1bmN0aW9uKHgpe2Zvcih2YXIgcj14Ozspe3ZhciBlPXJbMl07aWYoZVswXSE9PTMwKXJldHVybiAwO3ZhciB0PWVbMV1bMl07aWYodFsyXVswXT09PTI2KXJldHVybiAxO3ZhciByPXR9fSwkeT1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9ZVsyXVsxXSx1PWVbMV07aWYoIVAodCxFdikpe3ZhciBpPXJbMTldO3JldHVybiBpJiZueChyLFswLHUsNl0pfWlmKFAodCxkYSkpe2lmKCFQKHQsajIpKXJldHVybiByWzE4XT9ueChyLFswLHUsaXRdKTphdChyLFswLHUsODVdKX1lbHNlIGlmKHJbMTRdKXJldHVybiBueChyLFswLHUsWzI0LGx5KHQpXV0pO2lmKHIzKHQpKXJldHVybiBhdChyLFswLHUsODVdKTtpZihWeSh0KSlyZXR1cm4gbngocixbMCx1LGl0XSk7aWYoeCl7dmFyIGY9eFsxXTtpZihCdih0KSlyZXR1cm4gYXQocixbMCx1LGZdKX1yZXR1cm4gMH0sbDA9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXg/eFsxXTpQeChlKSx1PWEocixlKSxpPXgzKGUpLGY9aT91MSh0LGlbMV0pOnQ7cmV0dXJuWzAsZix1XX0sRnk9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PWwwKHgscixlKSx1PXRbMl07cmV0dXJuWzAsWzAsdFsxXSx1WzFdXSx1WzJdXX0sUXk9ZnVuY3Rpb24oeCl7SjEoeCwwKTt2YXIgcj1XKHgpO0sxKHgpO3ZhciBlPWtyKDEseCksdD0wO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXI9PT0yMSYmKHQ9MSk7ZWxzZSBpZihyWzBdPT09NClpZihQKHJbM10seWEpKXQ9MTtlbHNle3ZhciB1PTA7dHlwZW9mIGU9PVwibnVtYmVyXCI/ZT09PTIxJiYodT0xKTplWzBdPT09NCYmKHU9MSksdD11PzI6MX12YXIgaT0wO3N3aXRjaCh0KXtjYXNlIDE6dHlwZW9mIGU9PVwibnVtYmVyXCI/bTE9PT1lJiYoaT0xKTplWzBdPT09NCYmIVAoZVszXSxhbCkmJihpPTEpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0Omk9MX1yZXR1cm4gaT8xOjB9LE56PWZ1bmN0aW9uKHgpe3N3aXRjaCh4KXtjYXNlIDM6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiAxO2Nhc2UgNTpyZXR1cm4gMTtjYXNlIDY6cmV0dXJuIDE7Y2FzZSA3OnJldHVybiAxO2RlZmF1bHQ6cmV0dXJuIDF9fSxvUj1mdW5jdGlvbih4LHIsZSl7aWYoZSl7dmFyIHQ9ZVsxXSx1PTA7aWYodD09PTgyMzJ8fFExPT09dCl1PTE7ZWxzZSB2YXIgaT10PT09MTA/Njp0PT09MTM/NTpiMzw9dD8zOnNDPD10PzI6bTE8PXQ/MTowO2lmKHUpdmFyIGk9Nzt2YXIgZj1pfWVsc2UgdmFyIGY9NDtyZXR1cm5bMCxmLHhdfSxhUzA9W0dyLG12MCxKcygwKV0sQ3o9ZnVuY3Rpb24oeCxyLGUsdCl7dHJ5e3ZhciB1PXoxKHgscilbMStyXTtyZXR1cm4gdX1jYXRjaChmKXt2YXIgaT1DMShmKTt0aHJvdyBpWzFdPT09UUk/cTAoWzAsYVMwLGUsSDAoVHIoZHYwKSx0LHIseC5sZW5ndGgtMSldLDEpOnEwKGksMCl9fSxHeT1mdW5jdGlvbih4LHIpe2lmKHJbMV09PT0wJiZyWzJdPT09MClyZXR1cm4gMDt2YXIgZT1Deih4LHJbMV0tMXwwLHIsbHYwKTtyZXR1cm4gQ3ooZSxyWzJdLHIscHYwKX0sSXo9ZnVuY3Rpb24oeCl7dmFyIHI9WzAsenYwLHcyWzFdLDAsMF07ZnVuY3Rpb24gZShvKXt2YXIgbD1XKG8pO2lmKHR5cGVvZiBsPT1cIm51bWJlclwiKXt2YXIgZD0wO2lmKDg8PWw/MTA+bCYmKGQ9MSk6bD09PTEmJihkPTEpLGQpcmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gdChvKXt2YXIgbD1QeChvKSxkPXcwKG8pLGs9VyhvKTtpZih0eXBlb2Ygaz09XCJudW1iZXJcIilzd2l0Y2goayl7Y2FzZSAzMDpjYXNlIDMxOlowKG8pO3ZhciBoPWh4KG8pO3JldHVybiBlKG8pP1sxLGwsWzAsaz09PTMxPzE6MCxrMChbMCxkXSxbMCxoXSwwKV1dOlswLGxdfWVsc2Ugc3dpdGNoKGtbMF0pe2Nhc2UgMDp2YXIgZz1rWzJdLEE9SDAoeFsyNF0sbyxrWzFdLGcpLE49aHgobyk7cmV0dXJuIGUobyk/WzIsbCxbMCxBLGcsazAoWzAsZF0sWzAsTl0sMCldXTpbMCxsXTtjYXNlIDE6dmFyIEM9a1syXSxPPUgwKHhbMjZdLG8sa1sxXSxDKSxMPWh4KG8pO3JldHVybiBlKG8pP1s0LGwsWzAsTyxDLGswKFswLGRdLFswLExdLDApXV06WzAsbF07Y2FzZSAyOnZhciBNPWtbMV0sVj1NWzFdLHo9TVszXSxZPU1bMl07TVs0XSYmWnQobyw4MSksWjAobyk7dmFyIHQwPWh4KG8pO3JldHVybiBlKG8pP1szLFYsWzAsWSx6LGswKFswLGRdLFswLHQwXSwwKV1dOlswLFZdfXJldHVybiBaMChvKSxbMCxsXX1mdW5jdGlvbiB1KG8pe3ZhciBsPVQyKG8pLGQ9VyhvKSxrPTA7aWYodHlwZW9mIGQ9PVwibnVtYmVyXCIpaWYoZD09PTgyKXt1MChvLDgyKTt2YXIgaD10KG8pfWVsc2UgaWYoZD09PTg2KXtWeChvLFs4LGxbMl1bMV1dKSx1MChvLDg2KTt2YXIgaD10KG8pfWVsc2Ugaz0xO2Vsc2Ugaz0xO2lmKGspdmFyIGg9MDtyZXR1cm5bMCxsLGhdfXZhciBpPTA7ZnVuY3Rpb24gZihvLGwsZCxrLGgsZyxBKXt2YXIgTj1xYyhoKSxDPXFjKGcpO2Z1bmN0aW9uIE8oTSl7cmV0dXJuWzIsWzAsWzAsZ10sZCxrLEFdXX1mdW5jdGlvbiBMKE0pe3JldHVyblsyLFswLFsxLGhdLGQsayxBXV19cmV0dXJuIE49PT0wP08oMCk6Qz09PTA/TCgwKTpOPEM/KGcyKGZ1bmN0aW9uKE0pe3JldHVybiBueChvLFswLE1bMV0sWzEyLGxdXSl9LGgpLE8oMCkpOihnMihmdW5jdGlvbihNKXtyZXR1cm4gbngobyxbMCxNWzFdLFsxMixsXV0pfSxnKSxMKDApKX1yZXR1cm5bMCxmdW5jdGlvbihvLGwpe3ZhciBkPW8/b1sxXTowLGs9UXgoZCx3MChsKSk7dTAobCw0OCk7dmFyIGg9cCh4WzEzXSwwLGwpLGc9aFsyXVsxXSxBPWhbMV0sTj1sMCgwLGZ1bmN0aW9uKEMpe2lmKG8xKEMsNjMpKXtKMShDLDEpO3ZhciBPPVcoQyksTD0wO2lmKHR5cGVvZiBPPT1cIm51bWJlclwiKXN3aXRjaChPKXtjYXNlIDExNzp2YXIgTT1qdjA7YnJlYWs7Y2FzZSAxMTg6dmFyIE09SnYwO2JyZWFrO2Nhc2UgMTE5OnZhciBNPVh2MDticmVhaztjYXNlIDEyMTp2YXIgTT1ZdjA7YnJlYWs7ZGVmYXVsdDpMPTF9ZWxzZSBzd2l0Y2goT1swXSl7Y2FzZSA0OlZ4KEMsWzcsZyxbMCxPWzJdXV0pO3ZhciBNPTA7YnJlYWs7Y2FzZSAxMTppZihPWzFdKXZhciBNPVZ2MDtlbHNlIEw9MTticmVhaztkZWZhdWx0Okw9MX1pZihMKXtWeChDLFs3LGcsMF0pO3ZhciBNPTB9WjAoQyksSzEoQyk7dmFyIFY9TX1lbHNlIHZhciBWPTA7dmFyIHo9Vj09PTA/MDp3MChDKTt1MChDLDApO2Zvcih2YXIgWT1yOzspe3ZhciB0MD1XKEMpO2lmKHR5cGVvZiB0MD09XCJudW1iZXJcIil7dmFyIGkwPXQwLTJ8MDtpZihWMTxpMD4+PjApe2lmKEwyPj1pMCsxPj4+MCl7dmFyIGo9WVszXSxLPVlbNF0sSj1BeChZWzFdWzVdKSxRPUF4KFlbMV1bNF0pLHgwPUF4KFlbMV1bM10pLCQ9QXgoWVsxXVsyXSksZjA9QXgoWVsxXVsxXSksczA9UXgoSyx3MChDKSk7dTAoQywxKTt2YXIgdjA9VyhDKSxvMD0wO2lmKHR5cGVvZiB2MD09XCJudW1iZXJcIil7dmFyIGMwPTA7aWYodjA9PT0xfHxScj09PXYwP2MwPTE6bzA9MSxjMCl2YXIgZDA9aHgoQyl9ZWxzZSBvMD0xO2lmKG8wKXZhciBkMD1yZShDKT9KbyhDKTowO3ZhciBFMD1qMShbMCx6XSxbMCxkMF0sczAsMCk7aWYoVil7c3dpdGNoKFZbMV0pe2Nhc2UgMDp2YXIgTDA9WzAsWzAsZjAsMSxqLEUwXV07YnJlYWs7Y2FzZSAxOnZhciBMMD1bMSxbMCwkLDEsaixFMF1dO2JyZWFrO2Nhc2UgMjp2YXIgTDA9ZihDLGcsMSxqLHgwLEosRTApO2JyZWFrO2Nhc2UgMzp2YXIgTDA9WzMsWzAsSixqLEUwXV07YnJlYWs7ZGVmYXVsdDp2YXIgTDA9WzQsWzAsUSwxLGosRTBdXX12YXIgWDA9TDB9ZWxzZXt2YXIgeHg9cWMoZjApLGcwPXFjKCQpLCQwPXFjKHgwKSxuMD1xYyhKKSxpeD1mdW5jdGlvbihiKXtyZXR1cm5bMixbMCxVdjAsMCxqLEUwXV19LHJ4PTA7aWYoeHg9PT0wJiZnMD09PTApe3ZhciBkeD0wO2lmKCQwPT09MCYmbjA9PT0wKXZhciBheD1peCgwKTtlbHNlIGR4PTE7aWYoZHgpdmFyIGF4PWYoQyxnLDAsaix4MCxKLEUwKX1lbHNlIHJ4PTE7aWYocngpe3ZhciBTeD0wO2lmKGcwPT09MCYmJDA9PT0wJiZuMDw9eHgpe2cyKGZ1bmN0aW9uKHIwKXtyZXR1cm4gbngoQyxbMCxyMFsxXSxbMyxnLHIwWzJdWzFdWzJdWzFdXV0pfSxKKTt2YXIgYXg9WzAsWzAsZjAsMCxqLEUwXV07U3g9MX1pZighU3gpe3ZhciBEMD0wO2lmKHh4PT09MCYmJDA9PT0wJiZuMDw9ZzApe2cyKGZ1bmN0aW9uKHIwKXtyZXR1cm4gbngoQyxbMCxyMFsxXSxbMTEsZyxyMFsyXVsxXVsyXVsxXV1dKX0sSik7dmFyIGF4PVsxLFswLCQsMCxqLEUwXV07RDA9MX1pZighRDApe254KEMsWzAsQSxbNSxnXV0pO3ZhciBheD1peCgwKX19fXZhciBYMD1heH1yZXR1cm4gWDB9fWVsc2UgaWYoaTA9PT0xMCl7dmFyIE4wPVB4KEMpLEEwPXcwKEMpO1owKEMpO3ZhciBZMD1XKEMpLEMwPTA7aWYodHlwZW9mIFkwPT1cIm51bWJlclwiKXt2YXIgRj1ZMC0yfDAsSD0wO2lmKFYxPEY+Pj4wKUwyPj1GKzE+Pj4wJiYoSD0xKTtlbHNlIGlmKEY9PT03KXt1MChDLDkpO3ZhciBCPVcoQyksYTA9MDtpZih0eXBlb2YgQj09XCJudW1iZXJcIil7dmFyIG0wPTA7aWYoKEI9PT0xfHxScj09PUIpJiYobTA9MSksbTApe3ZhciBQMD0xO2EwPTF9fWlmKCFhMCl2YXIgUDA9MDtueChDLFswLE4wLFs2LFAwXV0pLEg9MX1IJiYoQzA9MSl9QzB8fG54KEMsWzAsTjAsRHYwXSk7dmFyIFk9WzAsWVsxXSxZWzJdLDEsQTBdO2NvbnRpbnVlfX12YXIgRD1ZWzJdLE8wPVlbMV0sSzA9bDAoaSx1LEMpLGowPUswWzJdLG94PWowWzJdLGIwPWowWzFdLF94PUswWzFdLEIwPWIwWzJdWzFdLFQ9YjBbMV07aWYoQXIoQjAsa3gpKXZhciBYPVk7ZWxzZXt2YXIgRjA9TjEoQjAsMCksc3g9OTc8PUYwPzE6MCxleD1zeCYmKEYwPD1Icj8xOjApO2V4JiZueChDLFswLFQsWzEwLGcsQjBdXSkscCh3MlszXSxCMCxEKSYmbngoQyxbMCxULFs0LGcsQjBdXSk7dmFyIFUwPVlbNF0sTng9WVszXSxteD1wKHcyWzRdLEIwLEQpLEJ4PVswLFlbMV0sbXgsTngsVTBdLEd4PWZ1bmN0aW9uKF8pe3JldHVybiBmdW5jdGlvbihiLHIwKXtyZXR1cm4gViYmVlsxXSE9PWI/bngoQyxbMCxyMCxbOSxnLFYsX11dKTowfX0oQjApO2lmKHR5cGVvZiBveD09XCJudW1iZXJcIil7dmFyIEowPTA7aWYoVilzd2l0Y2goVlsxXSl7Y2FzZSAwOm54KEMsWzAsX3gsWzMsZyxCMF1dKTt2YXIgWD1CeDticmVhaztjYXNlIDE6bngoQyxbMCxfeCxbMTEsZyxCMF1dKTt2YXIgWD1CeDticmVhaztjYXNlIDQ6bngoQyxbMCxfeCxbMixnLEIwXV0pO3ZhciBYPUJ4O2JyZWFrO2RlZmF1bHQ6SjA9MX1lbHNlIEowPTE7aWYoSjApdmFyIFg9WzAsWzAsTzBbMV0sTzBbMl0sTzBbM10sTzBbNF0sWzAsWzAsX3gsWzAsYjBdXSxPMFs1XV1dLG14LE54LFUwXX1lbHNlIHN3aXRjaChveFswXSl7Y2FzZSAwOm54KEMsWzAsb3hbMV0sWzksZyxWLEIwXV0pO3ZhciBYPUJ4O2JyZWFrO2Nhc2UgMTp2YXIgYng9b3hbMV0sSng9b3hbMl07R3goMCxieCk7dmFyIFg9WzAsWzAsWzAsWzAsX3gsWzAsYjAsWzAsYngsSnhdXV0sTzBbMV1dLE8wWzJdLE8wWzNdLE8wWzRdLE8wWzVdXSxteCxOeCxVMF07YnJlYWs7Y2FzZSAyOnZhciBXMD1veFsxXSxucj1veFsyXTtHeCgxLFcwKTt2YXIgWD1bMCxbMCxPMFsxXSxbMCxbMCxfeCxbMCxiMCxbMCxXMCxucl1dXSxPMFsyXV0sTzBbM10sTzBbNF0sTzBbNV1dLG14LE54LFUwXTticmVhaztjYXNlIDM6dmFyIFYwPW94WzFdLFNyPW94WzJdO0d4KDIsVjApO3ZhciBYPVswLFswLE8wWzFdLE8wWzJdLFswLFswLF94LFswLGIwLFswLFYwLFNyXV1dLE8wWzNdXSxPMFs0XSxPMFs1XV0sbXgsTngsVTBdO2JyZWFrO2RlZmF1bHQ6dmFyIFVyPW94WzFdLGx4PW94WzJdO0d4KDQsVXIpO3ZhciBYPVswLFswLE8wWzFdLE8wWzJdLE8wWzNdLFswLFswLF94LFswLGIwLFswLFVyLGx4XV1dLE8wWzRdXSxPMFs1XV0sbXgsTngsVTBdfX12YXIgYnI9VyhDKSxlMj0wO2lmKHR5cGVvZiBicj09XCJudW1iZXJcIil7dmFyIGgxPWJyLTJ8MCxJcj0wO1YxPGgxPj4+MD9MMj49aDErMT4+PjAmJihJcj0xKTpoMT09PTYmJihWeChDLDIyKSx1MChDLDgpLElyPTEpLElyJiYoZTI9MSl9ZTJ8fHUwKEMsOSk7dmFyIFk9WH19LGwpO3JldHVyblswLGgsTixrMChbMCxrXSwwLDApXX1dfSxxeT1mdW5jdGlvbih4LHIsZSl7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpcmV0dXJuWzAseCxyXTtpZihlWzBdPT09MCl7dmFyIHQ9ZVsxXSx1PVR4KHgsdCksaT1lWzJdO3JldHVybiB1PT09MD9pPT09cj9lOlswLHQscl06MDw9dT9bMSwyLHgscixlLDBdOlsxLDIseCxyLDAsZV19dmFyIGY9ZVs1XSxvPWVbNF0sbD1lWzNdLGQ9ZVsyXSxrPVR4KHgsZCksaD1lWzFdO2lmKGs9PT0wKXJldHVybiBsPT09cj9lOlsxLGgseCxyLG8sZl07aWYoMDw9ayl7dmFyIGc9cXkoeCxyLGYpO3JldHVybiBmPT09Zz9lOnRWKG8sZCxsLGcpfXZhciBBPXF5KHgscixvKTtyZXR1cm4gbz09PUE/ZTp0VihBLGQsbCxmKX0sbjM9ZnVuY3Rpb24oeCl7cmV0dXJuWzAsR3MoeCldfSx2Uj12VihbMCxmdW5jdGlvbih4LHIpe3ZhciBlPXJbMl0sdD14WzJdLHU9bVYoeFsxXSxyWzFdKTtyZXR1cm4gdT09PTA/cChrVix0LGUpOnV9XSksbzY9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PWVbMl1bMV0sdT1lWzFdO3JldHVybiBBcih0LGt4KT9yOnAodzJbM10sdCxyKT8obngoeCxbMCx1LFswLHRdXSkscik6cCh3Mls0XSx0LHIpfSxhUj1mdW5jdGlvbih4KXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU9clsyXTtzd2l0Y2goZVswXSl7Y2FzZSAwOnZhciB0PWVbMV1bMV07cmV0dXJuIEgxKGZ1bmN0aW9uKGksZil7dmFyIG89ZlswXT09PTA/ZlsxXVsyXVsyXTpmWzFdWzJdWzFdO3JldHVybiBhKGFSKGkpLG8pfSx4LHQpO2Nhc2UgMTp2YXIgdT1lWzFdWzFdO3JldHVybiBIMShmdW5jdGlvbihpLGYpe2lmKGZbMF09PT0yKXJldHVybiBpO3ZhciBvPWZbMV1bMl1bMV07cmV0dXJuIGEoYVIoaSksbyl9LHgsdSk7Y2FzZSAyOnJldHVyblswLGVbMV1bMV0seF07ZGVmYXVsdDpyZXR1cm4gT3goQmwwKX19fSxweD1ZWShabDAsV2wwWzFdKSxIeT1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9eD94WzFdOjAsdT1yP3JbMV06MCxpPVB4KGUpLGY9VyhlKTtpZih0eXBlb2YgZj09XCJudW1iZXJcIilzd2l0Y2goZil7Y2FzZSAxMDM6dmFyIG89dzAoZSk7cmV0dXJuIFowKGUpLFswLFswLGksWzAsMCxrMChbMCxvXSwwLDApXV1dO2Nhc2UgMTA0OnZhciBsPXcwKGUpO3JldHVybiBaMChlKSxbMCxbMCxpLFswLDEsazAoWzAsbF0sMCwwKV1dXTtjYXNlIDEyNjppZih0KXt2YXIgZD13MChlKTtyZXR1cm4gWjAoZSksWzAsWzAsaSxbMCwyLGswKFswLGRdLDAsMCldXV19YnJlYWt9ZWxzZSBpZihmWzBdPT09NCl7dmFyIGs9ZlszXTtpZihQKGssd28pKXtpZighUChrLGtfKSYmdSYmenkoMSxlKSl7dmFyIGg9dzAoZSk7cmV0dXJuIFowKGUpLFswLFswLGksWzAsNCxrMChbMCxoXSwwLDApXV1dfX1lbHNlIGlmKHUmJnp5KDEsZSkpe3ZhciBnPXcwKGUpO1owKGUpO3ZhciBBPVcoZSksTj0wO2lmKHR5cGVvZiBBIT1cIm51bWJlclwiJiZBWzBdPT09NCYmIVAoQVszXSxrXykpe3ZhciBDPVB4KGUpO1owKGUpO3ZhciBPPXUxKGksQyksTD01O049MX1pZighTil2YXIgTz1pLEw9MztyZXR1cm5bMCxbMCxPLFswLEwsazAoWzAsZ10sMCwwKV1dXX19cmV0dXJuIDB9LE96PWZ1bmN0aW9uKHgscixlLHQsdSl7cj09PTEmJlp0KHUsODEpO3ZhciBpPXcwKHUpO1owKHUpO3ZhciBmPWh4KHUpO2lmKHgpdmFyIG89azAoWzAsUXgoeFsxXSxpKV0sWzAsZl0sMCksbD1vLGQ9RngoYXYwLHQpLGs9LWU7ZWxzZSB2YXIgbD1rMChbMCxpXSxbMCxmXSwwKSxkPXQsaz1lO3JldHVyblsyOSxbMCxrLGQsbF1dfSxSej1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT13MCh0KTtaMCh0KTt2YXIgaT1oeCh0KTtpZih4KXZhciBmPWswKFswLFF4KHhbMV0sdSldLFswLGldLDApLG89RngodnYwLGUpLGw9ZixkPW8saz0kZChZSSxyKTtlbHNlIHZhciBsPWswKFswLHVdLFswLGldLDApLGQ9ZSxrPXI7cmV0dXJuWzMwLFswLGssZCxsXV19LCRyPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx1Mz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sTHo9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LE16PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxsUj1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxieT1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0scFI9ZnVuY3Rpb24geChyLGUsdCx1KXtyZXR1cm4geC5mdW4ocixlLHQsdSl9LGRSPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx5Uj1mdW5jdGlvbiB4KHIsZSx0LHUpe3JldHVybiB4LmZ1bihyLGUsdCx1KX0sbVI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LGtSPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0saFI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LER6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx4bT1mdW5jdGlvbiB4KHIsZSx0LHUpe3JldHVybiB4LmZ1bihyLGUsdCx1KX0scm09ZnVuY3Rpb24geChyLGUsdCx1LGkpe3JldHVybiB4LmZ1bihyLGUsdCx1LGkpfSxVej1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sano9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxfUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sSno9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFh6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxZej1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sVno9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LHdSPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0seno9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEt6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx2Nj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LEJ6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSwkdj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sZW09ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFd6PWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sVFI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFp6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSwkej1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sRno9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFF6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx0bT1mdW5jdGlvbiB4KHIsZSx0LHUpe3JldHVybiB4LmZ1bihyLGUsdCx1KX0sU1I9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LG5tPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxFUj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LHVtPWZ1bmN0aW9uIHgocixlLHQsdSl7cmV0dXJuIHguZnVuKHIsZSx0LHUpfSxnUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sWG89ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEd6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxGdj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sQVI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LGltPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxQUj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LHF6PWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sSHo9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LGJ6PWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxmbT1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0seEs9ZnVuY3Rpb24geChyLGUsdCl7cmV0dXJuIHguZnVuKHIsZSx0KX07STAoJHIsZnVuY3Rpb24oeCl7cmV0dXJuIGEoTXoseCl9KSxJMCh1MyxmdW5jdGlvbih4KXtyZXR1cm4gMS1rMSh4KSYmVngoeCxHMiksbDAoMCxmdW5jdGlvbihyKXtyZXR1cm4gdTAociw4NiksYSgkcixyKX0seCl9KSxJMChMeixmdW5jdGlvbih4KXsxLWsxKHgpJiZWeCh4LEcyKTt2YXIgcj1QeCh4KTtyZXR1cm4gdTAoeCw4NiksUXkoeCk/WzIscChFUix4LHIpXTpbMSxsMChbMCxyXSwkcix4KV19KSxJMChNeixmdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPXJSKDAseCk7cmV0dXJuIEgwKGxSLGUscixhKGJ5LGUpKX0pLEkwKGxSLGZ1bmN0aW9uKHgscixlKXt2YXIgdD1XKHgpO3JldHVybiB0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTQxP2wwKFswLHJdLGZ1bmN0aW9uKHUpe3UwKHUsNDEpO3ZhciBpPWEoYnksclIoMSx1KSk7QnkodSw4NSk7dmFyIGY9YSgkcix1KTtCeSh1LDg2KTt2YXIgbz1hKCRyLHUpO3JldHVyblsxNyxbMCxlLGksZixvLGswKDAsWzAsaHgodSldLDApXV19LHgpOmV9KSxJMChieSxmdW5jdGlvbih4KXt2YXIgcj1QeCh4KTtpZihXKHgpPT09ODkpe3ZhciBlPXcwKHgpO1owKHgpO3ZhciB0PWV9ZWxzZSB2YXIgdD0wO3JldHVybiB2ZShwUix4LFswLHRdLHIsYShkUix4KSl9KSxJMChwUixmdW5jdGlvbih4LHIsZSx0KXt2YXIgdT1yP3JbMV06MDtpZihXKHgpIT09ODkpcmV0dXJuIHQ7dmFyIGk9WzAsdCwwXTtyZXR1cm4gbDAoWzAsZV0sZnVuY3Rpb24oZil7Zm9yKHZhciBvPWk7Oyl7aWYobzEoZiw4OSkpe3ZhciBvPVswLGEoZFIsZiksb107Y29udGludWV9dmFyIGw9QXgobyk7aWYobCl7dmFyIGQ9bFsyXTtpZihkKXt2YXIgaz1kWzJdLGg9ZFsxXSxnPWxbMV07cmV0dXJuWzIyLFswLFswLGcsaCxrXSxrMChbMCx1XSwwLDApXV19fXRocm93IHEwKFswLHdyLG92MF0sMSl9fSx4KX0pLEkwKGRSLGZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpO2lmKFcoeCk9PT05MSl7dmFyIGU9dzAoeCk7WjAoeCk7dmFyIHQ9ZX1lbHNlIHZhciB0PTA7cmV0dXJuIHZlKHlSLHgsWzAsdF0scixhKG1SLHgpKX0pLEkwKHlSLGZ1bmN0aW9uKHgscixlLHQpe3ZhciB1PXI/clsxXTowO2lmKFcoeCkhPT05MSlyZXR1cm4gdDt2YXIgaT1bMCx0LDBdO3JldHVybiBsMChbMCxlXSxmdW5jdGlvbihmKXtmb3IodmFyIG89aTs7KXtpZihvMShmLDkxKSl7dmFyIG89WzAsYShtUixmKSxvXTtjb250aW51ZX12YXIgbD1BeChvKTtpZihsKXt2YXIgZD1sWzJdO2lmKGQpe3ZhciBrPWRbMl0saD1kWzFdLGc9bFsxXTtyZXR1cm5bMjMsWzAsWzAsZyxoLGtdLGswKFswLHVdLDAsMCldXX19dGhyb3cgcTAoWzAsd3Isc3YwXSwxKX19LHgpfSksSTAobVIsZnVuY3Rpb24oeCl7cmV0dXJuIHAoa1IseCxhKGhSLHgpKX0pLEkwKGtSLGZ1bmN0aW9uKHgscil7dmFyIGU9Vyh4KTtpZih0eXBlb2YgZT09XCJudW1iZXJcIiYmZT09PTExJiYheFsxNV0pe3ZhciB0PXAodjYseCxyKTtyZXR1cm4gdmUodG0seCx0WzFdLDAsWzAsdFsxXSxbMCwwLFswLHQsMF0sMCwwXV0pfXJldHVybiByfSksSTAoaFIsZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtyZXR1cm4gdHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04NT9sMCgwLGZ1bmN0aW9uKGUpe3ZhciB0PXcwKGUpO3UwKGUsODUpO3ZhciB1PWswKFswLHRdLDAsMCk7cmV0dXJuWzExLFswLGEoaFIsZSksdV1dfSx4KTphKER6LHgpfSksSTAoRHosZnVuY3Rpb24oeCl7dmFyIHI9UHgoeCk7cmV0dXJuIHZlKHhtLDAseCxyLGEoWHoseCkpfSksSTAoeG0sZnVuY3Rpb24oeCxyLGUsdCl7dmFyIHU9eD94WzFdOjA7aWYocmUocikpcmV0dXJuIHQ7dmFyIGk9VyhyKTtpZih0eXBlb2YgaT09XCJudW1iZXJcIil7aWYoaT09PTYpcmV0dXJuIFowKHIpLFZlKHJtLHUsMCxyLGUsdCk7aWYoaT09PTEwKXt2YXIgZj1rcigxLHIpO3JldHVybiB0eXBlb2YgZj09XCJudW1iZXJcIiYmZj09PTY/KFZ4KHIsZnYwKSx1MChyLDEwKSx1MChyLDYpLFZlKHJtLHUsMCxyLGUsdCkpOihWeChyLGN2MCksdCl9aWYoaT09PTgzKXJldHVybiBaMChyKSxXKHIpIT09NiYmVngociw0NiksdTAociw2KSxWZShybSwxLDEscixlLHQpfXJldHVybiB0fSksSTAocm0sZnVuY3Rpb24oeCxyLGUsdCx1KXtyZXR1cm4gdmUoeG0sWzAseF0sZSx0LGwwKFswLHRdLGZ1bmN0aW9uKGkpe2lmKCFyJiZvMShpLDcpKXJldHVyblsxNixbMCx1LGswKDAsWzAsaHgoaSldLDApXV07dmFyIGY9YSgkcixpKTt1MChpLDcpO3ZhciBvPVswLHUsZixrMCgwLFswLGh4KGkpXSwwKV07cmV0dXJuIHg/WzIxLFswLG8scl1dOlsyMCxvXX0sZSkpfSksSTAoVXosZnVuY3Rpb24oeCl7cmV0dXJuIHAoanoseCxwKHB4WzEzXSwwLHgpKX0pLEkwKGp6LGZ1bmN0aW9uKHgscil7Zm9yKHZhciBlPVswLHJbMV0sWzAscl1dOzspe3ZhciB0PWVbMl0sdT1lWzFdO2lmKFcoeCk9PT0xMCYmbXooMSx4KSl7dmFyIGk9bDAoWzAsdV0sZnVuY3Rpb24obCl7cmV0dXJuIGZ1bmN0aW9uKGQpe3JldHVybiB1MChkLDEwKSxbMCxsLFQyKGQpXX19KHQpLHgpLGY9aVsxXSxlPVswLGYsWzEsWzAsZixpWzJdXV1dO2NvbnRpbnVlfXJldHVybiB0fX0pLEkwKF9SLGZ1bmN0aW9uKHgpe2lmKEoxKHgsMCksVyh4KT09PTQpe1owKHgpO3ZhciByPWEoX1IseCk7dTAoeCw1KTt2YXIgZT1yfWVsc2UgdmFyIGU9bnMoeCk/WzAsYShVeix4KV06KFZ4KHgsNTEpLDApO3JldHVybiBLMSh4KSxlfSksSTAoSnosZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9dzAocik7dTAociw0Nik7dmFyIHQ9YShfUixyKTtpZighdClyZXR1cm4gaXYwO3ZhciB1PXRbMV07cmV0dXJuWzI0LFswLHUsazAoWzAsZV0sMCwwKV1dfSx4KX0pLEkwKFh6LGZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9Vyh4KSx0PTA7aWYodHlwZW9mIGU9PVwibnVtYmVyXCIpc3dpdGNoKGUpe2Nhc2UgNDpyZXR1cm4gYShGeix4KTtjYXNlIDY6cmV0dXJuIGEoS3oseCk7Y2FzZSA0NjpyZXR1cm4gYShKeix4KTtjYXNlIDUzOnJldHVybiBsMCgwLGZ1bmN0aW9uKFkpe3ZhciB0MD13MChZKTtaMChZKTt2YXIgaTA9YShnUixZKSxqPWkwWzJdLEs9aTBbMV07cmV0dXJuWzE1LFswLGosSyxrMChbMCx0MF0sMCwwKV1dfSx4KTtjYXNlIDk4OnJldHVybiBhKFF6LHgpO2Nhc2UgMTA0OnJldHVybiBsMCgwLFl6LHgpO2Nhc2UgMTA2OnZhciB1PXcwKHgpO3JldHVybiBaMCh4KSxbMCxyLFsxMCxrMChbMCx1XSxbMCxoeCh4KV0sMCldXTtjYXNlIDEyNTpyZXR1cm4gbDAoMCxmdW5jdGlvbihZKXt2YXIgdDA9dzAoWSk7WjAoWSk7dmFyIGkwPWh4KFkpLGo9YSgkcixZKTtyZXR1cm5bMjUsWzAsaixrMChbMCx0MF0sWzAsaTBdLDApXV19LHgpO2Nhc2UgMTI2OnJldHVybiBsMCgwLGZ1bmN0aW9uKFkpe3ZhciB0MD13MChZKTtaMChZKTt2YXIgaTA9aHgoWSksaj1hKCRyLFkpO3JldHVyblsyNixbMCxqLGswKFswLHQwXSxbMCxpMF0sMCldXX0seCk7Y2FzZSAxMjc6cmV0dXJuIGwwKDAsZnVuY3Rpb24oWSl7dmFyIHQwPXcwKFkpO1owKFkpO3ZhciBpMD1oeChZKSxqPWwwKDAsZnVuY3Rpb24oSyl7dmFyIEo9YShYbyxLKTtmdW5jdGlvbiBRKHgwKXtpZigxLW8xKHgwLDQxKSl0aHJvdyBxMCh1cywxKTt2YXIgJD1hKGJ5LHgwKTtpZigheDBbMTZdJiZXKHgwKT09PTg1KXRocm93IHEwKHVzLDEpO3JldHVyblsxLFswLCRbMV0sJF1dfXJldHVyblswLEosV3koSyxbMCxQeChLKV0sUSksMSwwLDBdfSxZKTtyZXR1cm5bMTgsWzAsaixrMChbMCx0MF0sWzAsaTBdLDApXV19LHgpO2Nhc2UgMDpjYXNlIDI6dmFyIGk9dmUodW0sMCwxLDEseCk7cmV0dXJuWzAsaVsxXSxbMTQsaVsyXV1dO2Nhc2UgNDE6Y2FzZSA0Mjp0PTE7YnJlYWs7Y2FzZSAzMDpjYXNlIDMxOnZhciBmPXcwKHgpO3JldHVybiBaMCh4KSxbMCxyLFszMSxbMCxlPT09MzE/MTowLGswKFswLGZdLFswLGh4KHgpXSwwKV1dXX1lbHNlIHN3aXRjaChlWzBdKXtjYXNlIDI6dmFyIG89ZVsxXSxsPW9bM10sZD1vWzJdLGs9b1sxXTtvWzRdJiZadCh4LDgxKTt2YXIgaD13MCh4KTtyZXR1cm4gWjAoeCksWzAsayxbMjgsWzAsZCxsLGswKFswLGhdLFswLGh4KHgpXSwwKV1dXTtjYXNlIDQ6aWYoUChlWzNdLGxvKSl0PTE7ZWxzZXtpZih4WzI4XVsxXSlyZXR1cm4gbDAoMCxmdW5jdGlvbihZKXt2YXIgdDA9dzAoWSk7SHMoWSxldjApO3ZhciBpMD1lZShZLGEoRnYsWSkpLGo9YShUUixZKTtpZihmUihZKSl2YXIgUT1zUihZLGEoZm0sWSkpLHgwPWo7ZWxzZSB2YXIgSz1hKGZtLFkpLEo9UDEoWSlbMl0sUT1LLHgwPXAoSixqLGZ1bmN0aW9uKCQsZjApe3JldHVybiBwKHF4KCQsNDIwNzc2ODczLDExKSwkLGYwKX0pO3JldHVyblsxMyxbMCxpMCx4MCxRLGswKFswLHQwXSwwLDApXV19LHgpO3Q9MX1icmVhaztjYXNlIDc6aWYoIVAoZVsxXSxVMykpcmV0dXJuIFZ4KHgsODkpLFswLHIsdHYwXTticmVhaztjYXNlIDEyOnZhciBnPWVbM10sQT1lWzJdLE49ZVsxXSxDPTA7cmV0dXJuIGwwKDAsZnVuY3Rpb24oWSl7cmV0dXJuIE96KEMsTixBLGcsWSl9LHgpO2Nhc2UgMTM6dmFyIE89ZVszXSxMPWVbMl0sTT0wO3JldHVybiBsMCgwLGZ1bmN0aW9uKFkpe3JldHVybiBSeihNLEwsTyxZKX0seCl9aWYodCl7dmFyIFY9YShpbSx4KTtyZXR1cm5bMCxWWzFdLFsxOSxWWzJdXV19dmFyIHo9YSh6eix4KTtyZXR1cm4gej9bMCxyLHpbMV1dOihTMShudjAseCksWzAscix1djBdKX0pLEkwKFl6LGZ1bmN0aW9uKHgpe3ZhciByPXcwKHgpO1owKHgpO3ZhciBlPVcoeCk7aWYodHlwZW9mIGUhPVwibnVtYmVyXCIpc3dpdGNoKGVbMF0pe2Nhc2UgMTI6cmV0dXJuIE96KFswLHJdLGVbMV0sZVsyXSxlWzNdLHgpO2Nhc2UgMTM6cmV0dXJuIFJ6KFswLHJdLGVbMl0sZVszXSx4KX1yZXR1cm4gUzEoeHYwLHgpLHJ2MH0pLEkwKFZ6LGZ1bmN0aW9uKHgpe3ZhciByPTA7aWYodHlwZW9mIHg9PVwibnVtYmVyXCIpc3dpdGNoKHgpe2Nhc2UgMjk6Y2FzZSAxMTQ6Y2FzZSAxMTU6Y2FzZSAxMTY6Y2FzZSAxMTc6Y2FzZSAxMTg6Y2FzZSAxMTk6Y2FzZSAxMjA6Y2FzZSAxMjE6Y2FzZSAxMjI6Y2FzZSAxMjM6Y2FzZSAxMjQ6cj0xO2JyZWFrfWVsc2UgeFswXT09PTExJiYocj0xKTtyZXR1cm4gcj8xOjB9KSxJMCh3UixmdW5jdGlvbih4LHIpe3ZhciBlPXcwKHgpLHQ9bDAoMCxaMCx4KVsxXSx1PWswKFswLGVdLFswLGh4KHgpXSwwKTtyZXR1cm5bMCxbMTksWzAsWzAsU24oMCxbMCx0LHJdKV0sMCx1XV1dfSksSTAoenosZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCksZT1XKHgpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXN3aXRjaChlKXtjYXNlIDI5OnJldHVybiBaMCh4KSxbMCxbNCxrMChbMCxyXSxbMCxoeCh4KV0sMCldXTtjYXNlIDExNDpyZXR1cm4gWjAoeCksWzAsWzAsazAoWzAscl0sWzAsaHgoeCldLDApXV07Y2FzZSAxMTU6cmV0dXJuIFowKHgpLFswLFsxLGswKFswLHJdLFswLGh4KHgpXSwwKV1dO2Nhc2UgMTE2OnJldHVybiBaMCh4KSxbMCxbMixrMChbMCxyXSxbMCxoeCh4KV0sMCldXTtjYXNlIDExNzpyZXR1cm4gWjAoeCksWzAsWzUsazAoWzAscl0sWzAsaHgoeCldLDApXV07Y2FzZSAxMTg6cmV0dXJuIFowKHgpLFswLFs2LGswKFswLHJdLFswLGh4KHgpXSwwKV1dO2Nhc2UgMTE5OnJldHVybiBaMCh4KSxbMCxbNyxrMChbMCxyXSxbMCxoeCh4KV0sMCldXTtjYXNlIDEyMDpyZXR1cm4gWjAoeCksWzAsWzMsazAoWzAscl0sWzAsaHgoeCldLDApXV07Y2FzZSAxMjE6cmV0dXJuIFowKHgpLFswLFs5LGswKFswLHJdLFswLGh4KHgpXSwwKV1dO2Nhc2UgMTIyOnJldHVybiBaMCh4KSxbMCxbMzIsazAoWzAscl0sWzAsaHgoeCldLDApXV07Y2FzZSAxMjM6cmV0dXJuIFowKHgpLFswLFszMyxrMChbMCxyXSxbMCxoeCh4KV0sMCldXTtjYXNlIDEyNDpyZXR1cm4gWjAoeCksWzAsWzM0LGswKFswLHJdLFswLGh4KHgpXSwwKV1dO2Nhc2UgMTI4OnJldHVybiBwKHdSLHgsSG8wKTtjYXNlIDEyOTpyZXR1cm4gcCh3Uix4LGJvMCl9ZWxzZSBpZihlWzBdPT09MTEpe3ZhciB0PWVbMV07WjAoeCk7dmFyIHU9aHgoeCksaT10Py04ODM5NDQ4MjQ6NzM3NDU2MjAyO3JldHVyblswLFs4LGksazAoWzAscl0sWzAsdV0sMCldXX1yZXR1cm4gMH0pLEkwKEt6LGZ1bmN0aW9uKHgpe3JldHVybiBsMCgwLGZ1bmN0aW9uKHIpe3ZhciBlPXcwKHIpO3UwKHIsNik7Zm9yKHZhciB0PUt2KDAsciksdT0wOzspe3ZhciBpPVcodCk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCIpe3ZhciBmPTA7aWYoaSE9PTcmJlJyIT09aSYmKGY9MSksIWYpe3ZhciBvPUF4KHUpO3JldHVybiB1MChyLDcpLFsyNyxbMCxvLGswKFswLGVdLFswLGh4KHIpXSwwKV1dfX12YXIgbD1bMCxsMCgwLGZ1bmN0aW9uKGspe2lmKCFvMShrLDEyKSl7dmFyIGg9VyhrKSxnPTA7aWYodHlwZW9mIGg9PVwibnVtYmVyXCImJihmbj09PWh8fER0PT09aCYmVW8oMSxrKSkpe3ZhciBBPUh5KDAsMCxrKTtnPTF9aWYoIWcpdmFyIEE9MDt2YXIgTj1ucyhrKSxDPWtyKDEsayk7aWYoTiYmdHlwZW9mIEM9PVwibnVtYmVyXCImJjE+PUMra28+Pj4wKXt2YXIgTz1UMihrKSxMPW8xKGssODUpO3JldHVybiB1MChrLDg2KSxbMSxbMCxPLGEoJHIsayksQSxMXV19dmFyIE09QT8xOjA7cmV0dXJuIE0mJlZ4KGssNTApLFswLGEoJHIsayldfXZhciBWPW5zKGspLHo9a3IoMSxrKSxZPTA7aWYoViYmdHlwZW9mIHo9PVwibnVtYmVyXCImJjE+PXora28+Pj4wKXt2YXIgdDA9VDIoayk7VyhrKT09PTg1JiYoVngoayw0OSksWjAoaykpLHUwKGssODYpO3ZhciBpMD1bMCx0MF07WT0xfWlmKCFZKXZhciBpMD0wO3JldHVyblsyLFswLGkwLGEoJHIsayldXX0sdCksdV07Vyh0KSE9PTcmJnUwKHQsOSk7dmFyIHU9bH19LHgpfSksSTAodjYsZnVuY3Rpb24oeCxyKXtyZXR1cm5bMCxyWzFdLFswLDAsciwwXV19KSxJMChCeixmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXtKMShyLDApO3ZhciBlPXAocHhbMTNdLDAscik7SzEociksMS1rMShyKSYmVngocixHMik7dmFyIHQ9bzEociw4NSk7cmV0dXJuIHUwKHIsODYpLFswLFswLGVdLGEoJHIsciksdF19LHgpfSk7dmFyIHJLPWZ1bmN0aW9uKHgpe3ZhciByPWtyKDEseCk7cmV0dXJuIHR5cGVvZiByPT1cIm51bWJlclwiJiYxPj1yK2tvPj4+MD9hKEJ6LHgpOnAodjYseCxhKCRyLHgpKX07STAoJHYsZnVuY3Rpb24oeCl7dmFyIHI9MDtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXIsdT1lOzspe3ZhciBpPVcoeCk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCIpc3dpdGNoKGkpe2Nhc2UgNTpjYXNlIDEyOmNhc2UgMTEzOnZhciBmPWk9PT0xMj9bMCxsMCgwLGZ1bmN0aW9uKEEpe3ZhciBOPXcwKEEpO3UwKEEsMTIpO3ZhciBDPWswKFswLE5dLDAsMCk7cmV0dXJuWzAscksoQSksQ119LHgpXTowO3JldHVyblswLHQsQXgodSksZiwwXX1lbHNlIGlmKGlbMF09PT00JiYhUChpWzNdLHZ2KSl7dmFyIG89MDtpZihrcigxLHgpIT09ODYmJmtyKDEseCkhPT04NSYmKG89MSksIW8pe3ZhciBsPXQhPT0wPzE6MCxkPWx8fCh1IT09MD8xOjApO2QmJlZ4KHgsOTQpO3ZhciBrPWwwKDAsZnVuY3Rpb24oTil7dmFyIEM9dzAoTik7WjAoTiksVyhOKT09PTg1JiZWeChOLDkzKTt2YXIgTz1rMChbMCxDXSwwLDApO3JldHVyblswLGEodTMsTiksT119LHgpO1coeCkhPT01JiZ1MCh4LDkpO3ZhciB0PVswLGtdO2NvbnRpbnVlfX12YXIgaD1bMCxySyh4KSx1XTtXKHgpIT09NSYmdTAoeCw5KTt2YXIgdT1ofX19KSxJMChlbSxmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKTt1MChyLDQpO3ZhciB0PXAoJHYsciwwKSx1PXcwKHIpO3UwKHIsNSk7dmFyIGk9ajEoWzAsZV0sWzAsaHgocildLHUsMCk7cmV0dXJuWzAsdFsxXSx0WzJdLHRbM10saV19LHgpfSksSTAoV3osZnVuY3Rpb24oeCxyKXtmb3IodmFyIGU9cjs7KXt2YXIgdD1XKHgpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXt2YXIgdT10LTV8MCxpPTA7aWYoNzx1Pj4+MD92bj09PXUmJihpPTEpOjU8dS0xPj4+MCYmKGk9MSksaSl7dmFyIGY9dD09PTEyP1swLGwwKDAsZnVuY3Rpb24oZCl7dmFyIGs9dzAoZCk7dTAoZCwxMik7dmFyIGg9a3IoMSxkKSxnPTA7aWYodHlwZW9mIGg9PVwibnVtYmVyXCIpaWYoaD09PTg1KXtKMShkLDApO3ZhciBBPXAocHhbMTNdLDAsZCk7SzEoZCksdTAoZCw4NSksdTAoZCw4Nik7dmFyIEM9MSxPPVswLEFdfWVsc2UgaWYoaD09PTg2KXtKMShkLDApO3ZhciBOPXAocHhbMTNdLDAsZCk7SzEoZCksdTAoZCw4Nik7dmFyIEM9MCxPPVswLE5dfWVsc2UgZz0xO2Vsc2UgZz0xO2lmKGcpdmFyIEM9MCxPPTA7dmFyIEw9YSgkcixkKTtyZXR1cm5bMCxPLEwsQyxrMChbMCxrXSwwLDApXX0seCldOjA7cmV0dXJuWzAsQXgoZSksZiwwXX19dmFyIG89WzAsbDAoMCxmdW5jdGlvbihkKXt2YXIgaz1XKGQpLGg9MDtpZih0eXBlb2YgayE9XCJudW1iZXJcIiYma1swXT09PTIpe3ZhciBnPWtbMV0sQT1nWzRdLE49Z1szXSxDPWdbMl0sTz1nWzFdO0EmJlp0KGQsODEpLHUwKGQsWzIsWzAsTyxDLE4sQV1dKTt2YXIgTD1bMSxbMCxPLFswLEMsTixrMCgwLFswLGh4KGQpXSwwKV1dXTtoPTF9aWYoIWgpe0oxKGQsMCk7dmFyIE09cChweFsxM10sMCxkKTtLMShkKTt2YXIgTD1bMCxNXX12YXIgVj1vMShkLDg1KTtyZXR1cm5bMCxMLGEodTMsZCksVl19LHgpLGVdO1coeCkhPT01JiZ1MCh4LDkpO3ZhciBlPW99fSksSTAoVFIsZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9dzAocik7dTAociw0KTt2YXIgdD1wKFd6LHIsMCksdT13MChyKTt1MChyLDUpO3ZhciBpPWoxKFswLGVdLFswLGh4KHIpXSx1LDApO3JldHVyblswLHRbMV0sdFsyXSxpXX0seCl9KSxJMChaeixmdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDQpO3ZhciBlPUt2KDAseCksdD1XKGUpLHU9MDtpZih0eXBlb2YgdD09XCJudW1iZXJcIilzd2l0Y2godCl7Y2FzZSA1OnZhciBpPXFvMDticmVhaztjYXNlIDQyOnU9MjticmVhaztjYXNlIDEyOmNhc2UgMTEzOnZhciBpPVswLHAoJHYsZSwwKV07YnJlYWs7ZGVmYXVsdDp1PTF9ZWxzZSB0WzBdPT09ND91PTI6dT0xO3N3aXRjaCh1KXtjYXNlIDE6aWYoYShWeix0KSl7dmFyIGY9a3IoMSxlKSxvPTA7aWYodHlwZW9mIGY9PVwibnVtYmVyXCImJjE+PWYra28+Pj4wKXt2YXIgbD1bMCxwKCR2LGUsMCldO289MX1pZighbyl2YXIgbD1bMSxhKCRyLGUpXTt2YXIgaT1sfWVsc2UgdmFyIGk9WzEsYSgkcixlKV07YnJlYWs7Y2FzZSAyOnZhciBpPWEoJHosZSk7YnJlYWt9aWYoaVswXT09PTApdmFyIGQ9aTtlbHNle3ZhciBrPWlbMV07aWYoeFsxNV0pdmFyIGg9aTtlbHNle3ZhciBnPVcoeCksQT0wO2lmKHR5cGVvZiBnPT1cIm51bWJlclwiKWlmKGc9PT01KXZhciBOPWtyKDEseCk9PT0xMT9bMCxwKCR2LHgsWzAscCh2Nix4LGspLDBdKV06WzEsa107ZWxzZSBpZihnPT09OSl7dTAoeCw5KTt2YXIgTj1bMCxwKCR2LHgsWzAscCh2Nix4LGspLDBdKV19ZWxzZSBBPTE7ZWxzZSBBPTE7aWYoQSl2YXIgTj1pO3ZhciBoPU59dmFyIGQ9aH12YXIgQz13MCh4KTt1MCh4LDUpO3ZhciBPPWh4KHgpO2lmKGRbMF09PT0wKXZhciBMPWRbMV0sTT1qMShbMCxyXSxbMCxPXSxDLDApLFY9WzAsWzAsTFsxXSxMWzJdLExbM10sTV1dO2Vsc2UgdmFyIFY9WzEsSDAoeEssZFsxXSxyLE8pXTtyZXR1cm4gVn0pLEkwKCR6LGZ1bmN0aW9uKHgpe3ZhciByPWtyKDEseCk7aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJjE+PXIra28+Pj4wKXJldHVyblswLHAoJHYseCwwKV07dmFyIGU9UHgoeCksdD1wKHF6LHgsYShYbyx4KSksdT1hKEgwKHhtLDAseCxlKSx0KSxpPWEoYShrUix4KSx1KSxmPWEocChhKHlSLHgpLDAsZSksaSksbz1hKHAoYShwUix4KSwwLGUpLGYpO3JldHVyblsxLGEocChsUixyUigwLHgpLGUpLG8pXX0pLEkwKEZ6LGZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9bDAoMCxaeix4KSx0PWVbMl0sdT1lWzFdO3JldHVybiB0WzBdPT09MD92ZSh0bSx4LHIsMCxbMCx1LHRbMV1dKTp0WzFdfSksSTAoUXosZnVuY3Rpb24oeCl7dmFyIHI9UHgoeCksZT1lZSh4LGEoRnYseCkpO3JldHVybiB2ZSh0bSx4LHIsZSxhKGVtLHgpKX0pLEkwKHRtLGZ1bmN0aW9uKHgscixlLHQpe3JldHVybiBsMChbMCxyXSxmdW5jdGlvbih1KXtyZXR1cm4gdTAodSwxMSksWzEyLFswLGUsdCxhKFNSLHUpLDBdXX0seCl9KSxJMChTUixmdW5jdGlvbih4KXtyZXR1cm4gUXkoeCk/WzEsYShubSx4KV06WzAsYSgkcix4KV19KSxJMChubSxmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKSx0PW8xKHIsZGwpO0oxKHIsMCk7dmFyIHU9VDIocik7SzEocik7dmFyIGk9VyhyKSxmPTA7aWYodHlwZW9mIGk9PVwibnVtYmVyXCImJm0xPT09aSl7dmFyIG89dzAocik7dTAocixtMSk7dmFyIGw9UXgobyx3MChyKSksZD1sLGs9WzAsYSgkcixyKV07Zj0xfWlmKCFmKXZhciBkPTAsaz0wO3JldHVyblswLHQsWzAsdSxrXSxqMShbMCxlXSwwLGQsMCldfSx4KX0pLEkwKEVSLGZ1bmN0aW9uKHgscil7cmV0dXJuIGwwKFswLHJdLG5tLHgpfSk7dmFyIGNtPWZ1bmN0aW9uKHgscixlKXtyZXR1cm4gbDAoWzAscl0sZnVuY3Rpb24odCl7dmFyIHU9YShlbSx0KTtyZXR1cm4gdTAodCw4NiksWzAsZSx1LGEoU1IsdCksMF19LHgpfSxlSz1mdW5jdGlvbih4LHIsZSx0LHUpe3ZhciBpPUFuKHgsdCksZj1jbSh4LHIsZWUoeCxhKEZ2LHgpKSksbz1bMCxmWzFdLFsxMixmWzJdXV0sbD1bMCxpLFswLG9dLDAsZSE9PTA/MTowLDAsMSwwLGswKFswLHVdLDAsMCldO3JldHVyblswLFswLG9bMV0sbF1dfSxzbT1mdW5jdGlvbih4LHIsZSx0LHUsaSxmKXt2YXIgbz1mWzJdLGw9ZlsxXTtyZXR1cm4gMS1rMSh4KSYmVngoeCxHMiksWzAsbDAoWzAscl0sZnVuY3Rpb24oZCl7dmFyIGs9bzEoZCw4NSksaD1feihkLDg2KT9hKCRyLGQpOlswLGwsR28wXTtyZXR1cm5bMCxvLFswLGhdLGssdCE9PTA/MTowLHUhPT0wPzE6MCwwLGUsazAoWzAsaV0sMCwwKV19LHgpXX0sYTY9ZnVuY3Rpb24oeCxyKXt2YXIgZT1XKHIpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiJiYxMD5lKXN3aXRjaChlKXtjYXNlIDE6aWYoIXgpcmV0dXJuIDA7YnJlYWs7Y2FzZSAzOmlmKHgpcmV0dXJuIDA7YnJlYWs7Y2FzZSA4OmNhc2UgOTpyZXR1cm4gWjAocil9cmV0dXJuIHFzKHIsOSl9LGw2PWZ1bmN0aW9uKHgscil7cmV0dXJuIHI/bngoeCxbMCxyWzFdWzFdLEwyXSk6MH0scDY9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gcj9ueCh4LFswLHJbMV0sOTldKTowfSxsUzA9ZnVuY3Rpb24oeCxyLGUsdCx1LGksZixvLGwpe2Zvcih2YXIgZD1lLGs9dCxoPXUsZz1pLEE9ZixOPW87Oyl7dmFyIEM9Vyh4KTtpZih0eXBlb2YgQz09XCJudW1iZXJcIilzd2l0Y2goQyl7Y2FzZSA2OnA2KHgsQSk7dmFyIE89a3IoMSx4KTtpZih0eXBlb2YgTz09XCJudW1iZXJcIiYmTz09PTYpcmV0dXJuIGw2KHgsaCksWzQsbDAoWzAsbF0sZnVuY3Rpb24oRDApe3ZhciBOMD1ReChOLHcwKEQwKSk7dTAoRDAsNiksdTAoRDAsNik7dmFyIEEwPVQyKEQwKTt1MChEMCw3KSx1MChEMCw3KTt2YXIgWTA9VyhEMCksQzA9MDtpZih0eXBlb2YgWTA9PVwibnVtYmVyXCIpe3ZhciBGPTA7aWYoKFkwPT09NHx8WTA9PT05OCkmJihGPTEpLEYpe3ZhciBIPWNtKEQwLGwsZWUoRDAsYShGdixEMCkpKSxCPTAsYTA9WzAsSFsxXSxbMTIsSFsyXV1dLG0wPTEsUDA9MDtDMD0xfX1pZighQzApe3ZhciBEPW8xKEQwLDg1KSxPMD1oeChEMCk7dTAoRDAsODYpO3ZhciBCPU8wLGEwPWEoJHIsRDApLG0wPTAsUDA9RH1yZXR1cm5bMCxBMCxhMCxQMCxnIT09MD8xOjAsbTAsazAoWzAsTjBdLFswLEJdLDApXX0seCldO3ZhciBMPVF4KE4sdzAoeCkpO3UwKHgsNik7dmFyIE09a3IoMSx4KTtyZXR1cm4gdHlwZW9mIE0hPVwibnVtYmVyXCImJk1bMF09PT00JiYhUChNWzNdLHdvKSYmZz09PTA/WzUsbDAoWzAsbF0sZnVuY3Rpb24oRDApe3ZhciBOMD1hKFhvLEQwKSxBMD1OMFsxXTtaMChEMCk7dmFyIFkwPWEoJHIsRDApO3UwKEQwLDcpO3ZhciBDMD1XKEQwKSxGPTAsSD1bMCxOMCxbMCxBMF0sMCwwLDBdO2lmKHR5cGVvZiBDMD09XCJudW1iZXJcIil7dmFyIEI9QzArTFB8MCxhMD0wO2lmKDE8Qj4+PjApaWYoQj09PS0xOCl7WjAoRDApO3ZhciBtMD0yfWVsc2UgYTA9MTtlbHNlIHZhciBtMD1CPyhaMChEMCksdTAoRDAsODUpLDEpOihaMChEMCksdTAoRDAsODUpLDApO2lmKCFhMCl7dmFyIFAwPW0wO0Y9MX19aWYoIUYpdmFyIFAwPTM7dTAoRDAsODYpO3ZhciBEPWEoJHIsRDApO3JldHVyblswLFswLEEwLEhdLEQsWTAsaCxQMCxrMChbMCxMXSxbMCxoeChEMCldLDApXX0seCldOlsyLGwwKFswLGxdLGZ1bmN0aW9uKEQwKXtpZihrcigxLEQwKT09PTg2KXt2YXIgTjA9VDIoRDApO3UwKEQwLDg2KTt2YXIgQTA9WzAsTjBdfWVsc2UgdmFyIEEwPTA7dmFyIFkwPWEoJHIsRDApO3UwKEQwLDcpO3ZhciBDMD1oeChEMCk7dTAoRDAsODYpO3ZhciBGPWEoJHIsRDApO3JldHVyblswLEEwLFkwLEYsZyE9PTA/MTowLGgsazAoWzAsTF0sWzAsQzBdLDApXX0seCldO2Nhc2UgNDI6aWYoZCl7aWYoaCE9PTApdGhyb3cgcTAoWzAsd3IsS28wXSwxKTt2YXIgVj1bMCxQeCh4KV0sej1ReChOLHcwKHgpKTtaMCh4KTt2YXIgZD0wLGs9MCxnPVYsTj16O2NvbnRpbnVlfWJyZWFrO2Nhc2UgMTI2OmlmKGg9PT0wKXt2YXIgWT0wO2lmKChVbygxLHgpfHxrcigxLHgpPT09NikmJihZPTEpLFkpe3ZhciBkPTAsaz0wLGg9SHkoQm8wLDAseCk7Y29udGludWV9fWJyZWFrO2Nhc2UgMTAzOmNhc2UgMTA0OmlmKGg9PT0wKXt2YXIgZD0wLGs9MCxoPUh5KDAsMCx4KTtjb250aW51ZX1icmVhaztjYXNlIDQ6Y2FzZSA5ODpyZXR1cm4gcDYoeCxBKSxsNih4LGgpLFszLGwwKFswLGxdLGZ1bmN0aW9uKEQwKXt2YXIgTjA9UHgoRDApLEEwPWNtKEQwLE4wLGVlKEQwLGEoRnYsRDApKSk7cmV0dXJuWzAsQTAsZyE9PTA/MTowLGswKFswLE5dLDAsMCldfSx4KV19ZWxzZSBpZihDWzBdPT09NCYmIVAoQ1szXSxDQykmJmspe2lmKGghPT0wKXRocm93IHEwKFswLHdyLFdvMF0sMSk7dmFyIHQwPVswLFB4KHgpXSxpMD1ReChOLHcwKHgpKTtaMCh4KTt2YXIgZD0wLGs9MCxBPXQwLE49aTA7Y29udGludWV9aWYoZyl7dmFyIGo9Z1sxXTtpZihBKXJldHVybiBPeChabzApO2lmKHR5cGVvZiBDPT1cIm51bWJlclwiJiYxPj1DK2tvPj4+MClyZXR1cm4gc20oeCxsLGgsMCxBLDAsWzAsaixbMyxTbihrMChbMCxOXSwwLDApLFswLGosJG8wXSldXSl9ZWxzZSBpZihBKXt2YXIgSz1BWzFdO2lmKHR5cGVvZiBDPT1cIm51bWJlclwiJiYxPj1DK2tvPj4+MClyZXR1cm4gc20oeCxsLGgsZywwLDAsWzAsSyxbMyxTbihrMChbMCxOXSwwLDApLFswLEssRm8wXSldXSl9dmFyIEo9ZnVuY3Rpb24oRDApe0oxKEQwLDApO3ZhciBOMD1wKHB4WzIwXSwwLEQwKTtyZXR1cm4gSzEoRDApLE4wfSxRPXcwKHgpLHgwPUooeCksJD14MFsxXSxmMD14MFsyXTtpZihmMFswXT09PTMpe3ZhciBzMD1mMFsxXVsyXVsxXSx2MD0wO2lmKFAoczAsZ3YpJiZQKHMwLFJhKSYmKHYwPTEpLCF2MCl7dmFyIG8wPVcoeCk7aWYodHlwZW9mIG8wPT1cIm51bWJlclwiKXt2YXIgYzA9bzAtNXwwO2lmKDkyPGMwPj4+MCl7aWYoOTQ+PWMwKzE+Pj4wKXJldHVybiBwNih4LEEpLGw2KHgsaCksZUsoeCxsLGcsZjAsTil9ZWxzZSBpZigxPj1jMCtIRD4+PjApcmV0dXJuIHNtKHgsbCxoLGcsQSxOLFswLCQsZjBdKX1Bbih4LGYwKTt2YXIgZDA9Sih4KSxFMD1BcihzMCxndiksTDA9UXgoTixRKTtyZXR1cm4gcDYoeCxBKSxsNih4LGgpLFswLGwwKFswLGxdLGZ1bmN0aW9uKEQwKXt2YXIgTjA9ZDBbMV0sQTA9QW4oRDAsZDBbMl0pLFkwPWNtKEQwLGwsMCksQzA9WTBbMl1bMl07aWYoRTApe3ZhciBGPUMwWzJdLEg9MDtpZihGWzFdKW54KEQwLFswLE4wLDI4XSksSD0xO2Vsc2V7dmFyIEI9MDtGWzJdfHxGWzNdP0I9MTpIPTEsQiYmbngoRDAsWzAsTjAsMjddKX19ZWxzZXt2YXIgYTA9QzBbMl0sbTA9MDtpZihhMFsxXSlueChEMCxbMCxOMCw3MV0pO2Vsc2V7dmFyIFAwPWEwWzJdLEQ9MDtpZihhMFszXSlueChEMCxbMCxOMCw3MF0pLEQ9MTtlbHNle3ZhciBPMD0wO1AwJiYhUDBbMl0/RD0xOk8wPTEsTzAmJihueChEMCxbMCxOMCw3MF0pLG0wPTEpfX19dmFyIEswPWswKFswLEwwXSwwLDApLGowPTAsb3g9MCxiMD0wLF94PWchPT0wPzE6MCxCMD0wLFQ9RTA/WzEsWTBdOlsyLFkwXTtyZXR1cm5bMCxBMCxULEIwLF94LGIwLG94LGowLEswXX0seCldfX12YXIgWDA9eDBbMl0seHg9Vyh4KTtpZih0eXBlb2YgeHg9PVwibnVtYmVyXCIpe3ZhciBnMD0wO2lmKHh4IT09NCYmeHghPT05OCYmKGcwPTEpLCFnMClyZXR1cm4gcDYoeCxBKSxsNih4LGgpLGVLKHgsbCxnLFgwLE4pfXZhciAkMD1nIT09MD8xOjAsbjA9MDtpZihYMFswXT09PTMpe3ZhciBpeD1YMFsxXSxyeD1peFsyXVsxXSxkeD0wLGF4PWl4WzFdO2lmKHIpe3ZhciBTeD0wOyhBcihUdixyeCl8fCQwJiZBcihfbyxyeCkpJiYoU3g9MSksU3gmJihueCh4LFswLGF4LFsxNSxyeCwkMCwwLDBdXSksbjA9MSxkeD0xKX19cmV0dXJuIHNtKHgsbCxoLGcsQSxOLFswLCQsWDBdKX19O0kwKHVtLGZ1bmN0aW9uKHgscixlLHQpe3ZhciB1PXImJihXKHQpPT09Mj8xOjApLGk9ciYmMS11O3JldHVybiBsMCgwLGZ1bmN0aW9uKGYpe3ZhciBvPXcwKGYpLGw9dT8yOjA7dTAoZixsKTtmb3IodmFyIGQ9S3YoMCxmKSxrPVFvMDs7KXt2YXIgaD1rWzNdLGc9a1syXSxBPWtbMV07aWYoeCYmZSl0aHJvdyBxMChbMCx3cixWbzBdLDEpO2lmKGkmJiFlKXRocm93IHEwKFswLHdyLHpvMF0sMSk7dmFyIE49UHgoZCksQz1XKGQpO2lmKHR5cGVvZiBDPT1cIm51bWJlclwiKXt2YXIgTz0wO2lmKDEzPD1DKXtpZihScj09PUMpe3ZhciBMPVswLEF4KEEpLGcsaF07Tz0xfX1lbHNlIGlmKEMpc3dpdGNoKEMtMXwwKXtjYXNlIDA6aWYoIXUpe3ZhciBMPVswLEF4KEEpLGcsaF07Tz0xfWJyZWFrO2Nhc2UgMjppZih1KXt2YXIgTD1bMCxBeChBKSxnLGhdO089MX1icmVhaztjYXNlIDExOmlmKCFlKXtaMChkKTt2YXIgTT1XKGQpO2lmKHR5cGVvZiBNPT1cIm51bWJlclwiJiYxMD5NKXN3aXRjaChNKXtjYXNlIDE6Y2FzZSAzOmNhc2UgODpjYXNlIDk6bngoZCxbMCxOLDM2XSksYTYodSxkKTtjb250aW51ZX12YXIgVj11UihkKTthKHRSKGQpLFYpLG54KGQsWzAsTixKZl0pLFowKGQpLGE2KHUsZCk7Y29udGludWV9dmFyIHo9dzAoZCk7WjAoZCk7dmFyIFk9VyhkKSx0MD0wO2lmKHR5cGVvZiBZPT1cIm51bWJlclwiJiYxMD5ZKXN3aXRjaChZKXtjYXNlIDE6Y2FzZSAzOmNhc2UgODpjYXNlIDk6YTYodSxkKTt2YXIgaTA9VyhkKSxqPTA7aWYodHlwZW9mIGkwPT1cIm51bWJlclwiKXt2YXIgSz1pMC0xfDA7aWYoMj49Sz4+PjApc3dpdGNoKEspe2Nhc2UgMDppZihpKXt2YXIgTD1bMCxBeChBKSwxLHpdO089MSx0MD0xLGo9MX1icmVhaztjYXNlIDE6YnJlYWs7ZGVmYXVsdDpueChkLFswLE4sMzVdKTt2YXIgTD1bMCxBeChBKSxnLGhdO089MSx0MD0xLGo9MX19aWYoIWope254KGQsWzAsTiw5N10pO2NvbnRpbnVlfWJyZWFrfWlmKCF0MCl7dmFyIEo9WzEsbDAoWzAsTl0sZnVuY3Rpb24oZDApe3JldHVybiBmdW5jdGlvbihFMCl7dmFyIEwwPWswKFswLGQwXSwwLDApO3JldHVyblswLGEoJHIsRTApLEwwXX19KHopLGQpXTthNih1LGQpO3ZhciBrPVswLFswLEosQV0sZyxoXTtjb250aW51ZX1icmVha31pZihPKXt2YXIgUT1MWzNdLHgwPUxbMl0sJD1MWzFdLGYwPVF4KFEsdzAoZikpLHMwPXU/MzoxO3JldHVybiB1MChmLHMwKSxbMCx1LHgwLCQsajEoWzAsb10sWzAsaHgoZildLGYwLDApXX19dmFyIHYwPWxTMChkLHgseCx4LDAsMCwwLDAsTik7YTYodSxkKTt2YXIgaz1bMCxbMCx2MCxBXSxnLGhdfX0sdCl9KSxJMChnUixmdW5jdGlvbih4KXtpZihvMSh4LDQxKSlmb3IodmFyIHI9MDs7KXt2YXIgZT1bMCxhKGltLHgpLHJdLHQ9Vyh4KTtpZih0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTkpe3UwKHgsOSk7dmFyIHI9ZTtjb250aW51ZX12YXIgdT1Feih4LEF4KGUpKTticmVha31lbHNlIHZhciB1PTA7cmV0dXJuWzAsdSx2ZSh1bSwwLDAsMCx4KV19KSxJMChYbyxmdW5jdGlvbih4KXt2YXIgcj1UMih4KSxlPXJbMl0sdD1lWzFdLHU9clsxXSxpPWVbMl07cmV0dXJuIG5SKHQpJiZueCh4LFswLHUsSXRdKSxbMCx1LFswLHQsaV1dfSksSTAoR3osZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9YShYbyxyKSx0PVcociksdT0wO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKWlmKHQ9PT00MSl2YXIgaT0xLGY9aSxvPVsxLGwwKDAsZnVuY3Rpb24obCl7cmV0dXJuIFowKGwpLGEoJHIsbCl9LHIpXTtlbHNlIGlmKHQ9PT04Nil2YXIgZj0wLG89WzEsYSh1MyxyKV07ZWxzZSB1PTE7ZWxzZSB1PTE7aWYodSl2YXIgZj0wLG89WzAsR3MocildO3JldHVyblswLGUsbyxmXX0seCl9KTt2YXIgdEs9ZnVuY3Rpb24oeCxyKXt2YXIgZT1weih4LHIpO2lmKGUpdmFyIHQ9ZTtlbHNle3ZhciB1PTA7aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJjE+PXIrTFA+Pj4wKXt2YXIgaT0xO3U9MX1pZighdSl2YXIgaT0wO2lmKCFpKXt2YXIgZj0wO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXN3aXRjaChyKXtjYXNlIDE1OmNhc2UgMjk6Y2FzZSAzMDpjYXNlIDMxOmNhc2UgNDE6Y2FzZSA0MjpjYXNlIDQ2OmNhc2UgNTM6Y2FzZSAxMTQ6Y2FzZSAxMTU6Y2FzZSAxMTY6Y2FzZSAxMTc6Y2FzZSAxMTg6Y2FzZSAxMTk6Y2FzZSAxMjA6Y2FzZSAxMjE6Y2FzZSAxMjI6Y2FzZSAxMjM6Y2FzZSAxMjQ6Y2FzZSAxMjU6Y2FzZSAxMjY6Zj0xO2JyZWFrfWVsc2Ugc3dpdGNoKHJbMF0pe2Nhc2UgNDppZihuUihyWzNdKSlyZXR1cm4gMTticmVhaztjYXNlIDExOmY9MTticmVha31yZXR1cm4gZj8xOjB9dmFyIHQ9aX1yZXR1cm4gdH07STAoRnYsZnVuY3Rpb24oeCl7aWYoVyh4KSE9PTk4KXJldHVybiAwOzEtazEoeCkmJlZ4KHgsRzIpO3ZhciByPWwwKDAsZnVuY3Rpb24odCl7dmFyIHU9dzAodCk7dTAodCw5OCk7Zm9yKHZhciBpPTAsZj0wOzspe2lmKHRLKHQsVyh0KSkpdmFyIG89RnkoMCxmdW5jdGlvbihZKXtyZXR1cm4gZnVuY3Rpb24odDApe3ZhciBpMD1IeSgwLFlvMCx0MCksaj1hKEd6LHQwKSxLPWpbMl0sSj1LWzNdLFE9S1syXSx4MD1LWzFdLCQ9alsxXSxmMD1XKHQwKSxzMD0wO2lmKHR5cGVvZiBmMD09XCJudW1iZXJcIiYmZjA9PT04Mil7WjAodDApO3ZhciB2MD0xLG8wPVswLGEoJHIsdDApXTtzMD0xfWlmKCFzMCl7WSYmbngodDAsWzAsJCw1N10pO3ZhciB2MD1ZLG8wPTB9cmV0dXJuWzAsWzAseDAsUSxKLGkwLG8wXSx2MF19fShpKSx0KSxsPW9bMl0sZD1bMCxvWzFdLGZdO2Vsc2UgdmFyIGw9aSxkPWY7dmFyIGs9Vyh0KSxoPTA7aWYodHlwZW9mIGs9PVwibnVtYmVyXCIpe3ZhciBnPWsraEp8MDtpZigxNDxnPj4+MCl7aWYoZz09PS05MCl7WjAodCk7dmFyIGk9bCxmPWQ7Y29udGludWV9fWVsc2UgaWYoMTI8Zy0xPj4+MCl7dmFyIEE9QXgoZCk7aD0xfX1pZighaCl7dmFyIE49MDtpZih0eXBlb2Ygaz09XCJudW1iZXJcIilzd2l0Y2goayl7Y2FzZSA0OmNhc2UgODI6Tj0yO2JyZWFrfWVsc2UgaWYoa1swXT09PTQpe3ZhciBDPWtbM10sTz0wO2lmKFZ5KEMpKU89MTtlbHNle3ZhciBMPTA7aWYoUChDLEV2KSYmUChDLGoyKSl7dmFyIE09MDtMPTF9aWYoIUwpdmFyIE09MTtpZihNKU89MTtlbHNlIGlmKFAoQyxjbCkpKCFQKEMsX3YpfHwhUChDLGVpKSkmJihOPTIpO2Vsc2UgaWYodFsyOF1bMl0pe3ZhciBWPTE7Tj0xfX1pZihPKXt2YXIgVj0xO049MX19c3dpdGNoKE4pe2Nhc2UgMDp2YXIgVj0wO2JyZWFrO2Nhc2UgMjp2YXIgVj0xO2JyZWFrfWlmKCFWKXtpZih0Syh0LGspKXtxcyh0LDkpO3ZhciBpPWwsZj1kO2NvbnRpbnVlfXUwKHQsOSk7dmFyIGk9bCxmPWQ7Y29udGludWV9cXModCw5OSk7dmFyIEE9QXgoZCl9dmFyIHo9dzAodCk7cmV0dXJuIEJ5KHQsOTkpLFswLEEsajEoWzAsdV0sWzAsaHgodCldLHosMCldfX0seCksZT1yWzFdO3JldHVybiByWzJdWzFdfHxueCh4LFswLGUsNTZdKSxbMCxyXX0pLEkwKEFSLGZ1bmN0aW9uKHgpe3JldHVybiBXKHgpPT09OTg/WzAsbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKTt1MChyLDk4KTtmb3IodmFyIHQ9S3YoMCxyKSx1PTA7Oyl7dmFyIGk9Vyh0KTtpZih0eXBlb2YgaT09XCJudW1iZXJcIil7dmFyIGY9MDtpZihpIT09OTkmJlJyIT09aSYmKGY9MSksIWYpe3ZhciBvPUF4KHUpLGw9dzAodCk7cmV0dXJuIHUwKHQsOTkpLFswLG8sajEoWzAsZV0sWzAsaHgodCldLGwsMCldfX12YXIgZD1bMCxhKCRyLHQpLHVdO1codCkhPT05OSYmdTAodCw5KTt2YXIgdT1kfX0seCldOjB9KSxJMChpbSxmdW5jdGlvbih4KXtyZXR1cm4gcChQUix4LGEoWG8seCkpfSksSTAoUFIsZnVuY3Rpb24oeCxyKXtmdW5jdGlvbiBlKHQpe2Zvcih2YXIgdT1bMCxyWzFdLFswLHJdXTs7KXt2YXIgaT11WzJdLGY9dVsxXTtpZihXKHQpPT09MTAmJnp5KDEsdCkpe3ZhciBvPWwwKFswLGZdLGZ1bmN0aW9uKGcpe3JldHVybiBmdW5jdGlvbihBKXtyZXR1cm4gdTAoQSwxMCksWzAsZyxhKFhvLEEpXX19KGkpLHQpLGw9b1sxXSx1PVswLGwsWzEsWzAsbCxvWzJdXV1dO2NvbnRpbnVlfWlmKFcodCk9PT05OCl2YXIgZD1QMSh0KVsyXSxrPXAoZCxpLGZ1bmN0aW9uKGgsZyl7cmV0dXJuIHAocXgoaCwtODYwMzczOTc2LDYwKSxoLGcpfSk7ZWxzZSB2YXIgaz1pO3JldHVyblswLGssYShBUix0KSwwXX19cmV0dXJuIGwwKFswLHJbMV1dLGUseCl9KSxJMChxeixmdW5jdGlvbih4LHIpe3ZhciBlPXAoUFIseCxyKTtyZXR1cm5bMCxlWzFdLFsxOSxlWzJdXV19KSxJMChIeixmdW5jdGlvbih4KXt2YXIgcj1XKHgpO3JldHVybiB0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg2P2EoTHoseCk6WzAsR3MoeCldfSksSTAoYnosZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtyZXR1cm4gdHlwZW9mIHI9PVwibnVtYmVyXCImJnI9PT04Nj9bMSxhKHUzLHgpXTpbMCxHcyh4KV19KSxJMChmbSxmdW5jdGlvbih4KXt2YXIgcj1XKHgpO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXtpZihyPT09ODYpcmV0dXJuIDEtazEoeCkmJlZ4KHgsRzIpLFZ4KHgsMzgpLFowKHgpLFsxLGwwKDAsZnVuY3Rpb24oZSl7cmV0dXJuIGEoJHIsZSl9LHgpXX1lbHNlIGlmKHJbMF09PT00JiYhUChyWzNdLFoxKSlyZXR1cm4gMS1rMSh4KSYmVngoeCxHMiksWjAoeCksWzEsbDAoMCxmdW5jdGlvbihlKXtyZXR1cm4gYSgkcixlKX0seCldO3JldHVyblswLEdzKHgpXX0pLEkwKHhLLGZ1bmN0aW9uKHgscixlKXt2YXIgdD14WzJdLHU9eFsxXTtmdW5jdGlvbiBpKEYpe3JldHVybiBOMihGLGswKFswLHJdLFswLGVdLDApKX1zd2l0Y2godFswXSl7Y2FzZSAwOnZhciBDMD1bMCxpKHRbMV0pXTticmVhaztjYXNlIDE6dmFyIEMwPVsxLGkodFsxXSldO2JyZWFrO2Nhc2UgMjp2YXIgQzA9WzIsaSh0WzFdKV07YnJlYWs7Y2FzZSAzOnZhciBDMD1bMyxpKHRbMV0pXTticmVhaztjYXNlIDQ6dmFyIEMwPVs0LGkodFsxXSldO2JyZWFrO2Nhc2UgNTp2YXIgQzA9WzUsaSh0WzFdKV07YnJlYWs7Y2FzZSA2OnZhciBDMD1bNixpKHRbMV0pXTticmVhaztjYXNlIDc6dmFyIEMwPVs3LGkodFsxXSldO2JyZWFrO2Nhc2UgODp2YXIgZj1pKHRbMl0pLEMwPVs4LHRbMV0sZl07YnJlYWs7Y2FzZSA5OnZhciBDMD1bOSxpKHRbMV0pXTticmVhaztjYXNlIDEwOnZhciBDMD1bMTAsaSh0WzFdKV07YnJlYWs7Y2FzZSAxMTp2YXIgbz10WzFdLGw9aShvWzJdKSxDMD1bMTEsWzAsb1sxXSxsXV07YnJlYWs7Y2FzZSAxMjp2YXIgZD10WzFdLGs9aShkWzRdKSxDMD1bMTIsWzAsZFsxXSxkWzJdLGRbM10sa11dO2JyZWFrO2Nhc2UgMTM6dmFyIGg9dFsxXSxnPWkoaFs0XSksQzA9WzEzLFswLGhbMV0saFsyXSxoWzNdLGddXTticmVhaztjYXNlIDE0OnZhciBBPXRbMV0sTj1BWzRdLEM9WU8oTixrMChbMCxyXSxbMCxlXSwwKSksQzA9WzE0LFswLEFbMV0sQVsyXSxBWzNdLENdXTticmVhaztjYXNlIDE1OnZhciBPPXRbMV0sTD1pKE9bM10pLEMwPVsxNSxbMCxPWzFdLE9bMl0sTF1dO2JyZWFrO2Nhc2UgMTY6dmFyIE09dFsxXSxWPWkoTVsyXSksQzA9WzE2LFswLE1bMV0sVl1dO2JyZWFrO2Nhc2UgMTc6dmFyIHo9dFsxXSxZPWkoels1XSksQzA9WzE3LFswLHpbMV0selsyXSx6WzNdLHpbNF0sWV1dO2JyZWFrO2Nhc2UgMTg6dmFyIHQwPXRbMV0saTA9aSh0MFsyXSksQzA9WzE4LFswLHQwWzFdLGkwXV07YnJlYWs7Y2FzZSAxOTp2YXIgaj10WzFdLEs9aShqWzNdKSxDMD1bMTksWzAsalsxXSxqWzJdLEtdXTticmVhaztjYXNlIDIwOnZhciBKPXRbMV0sUT1pKEpbM10pLEMwPVsyMCxbMCxKWzFdLEpbMl0sUV1dO2JyZWFrO2Nhc2UgMjE6dmFyIHgwPXRbMV0sJD14MFsxXSxmMD14MFsyXSxzMD1pKCRbM10pLEMwPVsyMSxbMCxbMCwkWzFdLCRbMl0sczBdLGYwXV07YnJlYWs7Y2FzZSAyMjp2YXIgdjA9dFsxXSxvMD1pKHYwWzJdKSxDMD1bMjIsWzAsdjBbMV0sbzBdXTticmVhaztjYXNlIDIzOnZhciBjMD10WzFdLGQwPWkoYzBbMl0pLEMwPVsyMyxbMCxjMFsxXSxkMF1dO2JyZWFrO2Nhc2UgMjQ6dmFyIEUwPXRbMV0sTDA9aShFMFsyXSksQzA9WzI0LFswLEUwWzFdLEwwXV07YnJlYWs7Y2FzZSAyNTp2YXIgWDA9dFsxXSx4eD1pKFgwWzJdKSxDMD1bMjUsWzAsWDBbMV0seHhdXTticmVhaztjYXNlIDI2OnZhciBnMD10WzFdLCQwPWkoZzBbMl0pLEMwPVsyNixbMCxnMFsxXSwkMF1dO2JyZWFrO2Nhc2UgMjc6dmFyIG4wPXRbMV0saXg9aShuMFsyXSksQzA9WzI3LFswLG4wWzFdLGl4XV07YnJlYWs7Y2FzZSAyODp2YXIgcng9dFsxXSxkeD1pKHJ4WzNdKSxDMD1bMjgsWzAscnhbMV0scnhbMl0sZHhdXTticmVhaztjYXNlIDI5OnZhciBheD10WzFdLFN4PWkoYXhbM10pLEMwPVsyOSxbMCxheFsxXSxheFsyXSxTeF1dO2JyZWFrO2Nhc2UgMzA6dmFyIEQwPXRbMV0sTjA9aShEMFszXSksQzA9WzMwLFswLEQwWzFdLEQwWzJdLE4wXV07YnJlYWs7Y2FzZSAzMTp2YXIgQTA9dFsxXSxZMD1pKEEwWzJdKSxDMD1bMzEsWzAsQTBbMV0sWTBdXTticmVhaztjYXNlIDMyOnZhciBDMD1bMzIsaSh0WzFdKV07YnJlYWs7Y2FzZSAzMzp2YXIgQzA9WzMzLGkodFsxXSldO2JyZWFrO2RlZmF1bHQ6dmFyIEMwPVszNCxpKHRbMV0pXX1yZXR1cm5bMCx1LEMwXX0pO3ZhciBuSz1mdW5jdGlvbih4LHIpe2lmKFcoeCkhPT00KXJldHVyblswLDAsazAoWzAscl0sWzAsaHgoeCldLDApXTt2YXIgZT1ReChyLHcwKHgpKTt1MCh4LDQpLEoxKHgsMCk7dmFyIHQ9YShweFs5XSx4KTtyZXR1cm4gSzEoeCksdTAoeCw1KSxbMCxbMCx0XSxrMChbMCxlXSxbMCxoeCh4KV0sMCldfSxwUzA9ZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7cmV0dXJuIHUwKHgsNjYpLG5LKHgscil9LGRTMD0wLHVLPWZ1bmN0aW9uKHgpe3ZhciByPUt2KDAseCksZT1XKHIpO3JldHVybiB0eXBlb2YgZT09XCJudW1iZXJcIiYmZT09PTY2P1swLGwwKGRTMCxwUzAscildOjB9LHlTMD1mdW5jdGlvbih4KXt2YXIgcj1XKHgpO2lmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09ODYpezEtazEoeCkmJlZ4KHgsRzIpO3ZhciBlPUdzKHgpLHQ9UHgoeCk7dTAoeCw4Nik7dmFyIHU9Vyh4KTtpZih0eXBlb2YgdT09XCJudW1iZXJcIiYmdT09PTY2KXt2YXIgaT1LdigwLHgpO3JldHVyblswLFswLGVdLFswLGwwKFswLHRdLGZ1bmN0aW9uKGwpe3ZhciBkPXcwKGwpO3JldHVybiB1MChsLDY2KSxuSyhsLGQpfSxpKV1dfWlmKFF5KHgpKXJldHVyblswLFsyLHAoRVIseCx0KV0sMF07dmFyIGY9WzEsbDAoWzAsdF0sJHIseCldLG89Vyh4KT09PTY2P3QzKHgsZik6ZjtyZXR1cm5bMCxvLHVLKHgpXX1yZXR1cm5bMCxbMCxHcyh4KV0sMF19LHllPWZ1bmN0aW9uKHgscil7dmFyIGU9UXMoMSxyKTtKMShlLDEpO3ZhciB0PWEoeCxlKTtyZXR1cm4gSzEoZSksdH0sYnM9ZnVuY3Rpb24oeCl7cmV0dXJuIHllKCRyLHgpfSxpcz1mdW5jdGlvbih4KXtyZXR1cm4geWUoWG8seCl9LFplPWZ1bmN0aW9uKHgpe3JldHVybiB5ZShGdix4KX0saUs9ZnVuY3Rpb24oeCl7cmV0dXJuIHllKEFSLHgpfSxRdj1mdW5jdGlvbih4KXtyZXR1cm4geWUodTMseCl9LE5SPWZ1bmN0aW9uKHgpe3JldHVybiB5ZShieix4KX0sQ1I9ZnVuY3Rpb24oeCl7cmV0dXJuIHllKEh6LHgpfSxJUj1mdW5jdGlvbih4KXtyZXR1cm4geWUoeVMwLHgpfSxmSz1mdW5jdGlvbih4KXtyZXR1cm4geWUoaW0seCl9LE9SPWZ1bmN0aW9uKHgpe3JldHVybiB5ZShmbSx4KX0sbVMwPUl6KHB4KSxZbz1mdW5jdGlvbih4LHIpe3ZhciBlPXJbMl0sdD1yWzFdLHU9eFsxXTtzd2l0Y2goZVswXSl7Y2FzZSAwOnJldHVybiBIMShrUzAseCxlWzFdWzFdKTtjYXNlIDE6cmV0dXJuIEgxKGhTMCx4LGVbMV1bMV0pO2Nhc2UgMjp2YXIgaT1lWzFdWzFdLGY9aVsyXVsxXSxvPXhbMl0sbD14WzFdLGQ9aVsxXTtwKHcyWzNdLGYsbykmJm54KGwsWzAsZCw4Ml0pO3ZhciBrPWlbMl1bMV0saD1pWzFdO3JldHVybiBCdihrKSYmYXQobCxbMCxoLDgzXSkscjMoaykmJmF0KGwsWzAsaCw4NV0pLFswLGwscCh3Mls0XSxmLG8pXTtkZWZhdWx0OnJldHVybiBueCh1LFswLHQsMjRdKSx4fX0sa1MwPWZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gclswXT09PTA/WW8oeCxyWzFdWzJdWzJdKTpZbyh4LHJbMV1bMl1bMV0pfX0saFMwPWZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbihyKXtzd2l0Y2goclswXSl7Y2FzZSAwOnJldHVybiBZbyh4LHJbMV1bMl1bMV0pO2Nhc2UgMTpyZXR1cm4gWW8oeCxyWzFdWzJdWzFdKTtkZWZhdWx0OnJldHVybiB4fX19LGNLPWZ1bmN0aW9uKHgscil7dmFyIGU9clsyXSx0PWVbM10sdT1lWzJdLGk9WzAseCx3MlsxXV0sZj1IMShmdW5jdGlvbihvLGwpe3JldHVybiBZbyhvLGxbMl1bMV0pfSxpLHUpO3JldHVybiB0JiZZbyhmLHRbMV1bMl1bMV0pLDB9LHNLPWZ1bmN0aW9uKHgscixlLHQpe3ZhciB1PXhbNV0saT10WzBdPT09MD9adih0WzFdKTowLGY9UXModT8wOnIseCksbz1yfHx1fHwxLWk7aWYoIW8pcmV0dXJuIG87aWYoZSl7dmFyIGw9ZVsxXSxkPWxbMl1bMV0saz1sWzFdO0J2KGQpJiZhdChmLFswLGssNzVdKSxyMyhkKSYmYXQoZixbMCxrLDg1XSl9aWYodFswXT09PTApcmV0dXJuIGNLKGYsdFsxXSk7dmFyIGg9dFsxXVsyXSxnPWhbMl0sQT1oWzFdLE49WzAsWWEsWzAsWzAsVG4oZnVuY3Rpb24oTyl7dmFyIEw9T1syXSxNPUxbMV0sVj1MWzRdLHo9TFszXSxZPUxbMl0sdDA9TVswXT09PTA/WzMsTVsxXV06WzAsWzAsWWEsTVsxXVsyXV1dO3JldHVyblswLFswLFlhLFswLHQwLFkseixWXV1dfSxBKSxbMCxZYV0sMF1dXSxDPVlvKFswLGYsdzJbMV1dLE4pO3JldHVybiBnJiZZbyhDLGdbMV1bMl1bMV0pLDB9LGkzPWZ1bmN0aW9uKHgscixlLHQpe3JldHVybiBzSyh4LHIsZSxbMCx0XSl9LG9LPWZ1bmN0aW9uKHgscil7aWYociE9PTEyKXJldHVybiAwO3ZhciBlPXcwKHgpLHQ9bDAoMCxmdW5jdGlvbihmKXtyZXR1cm4gdTAoZiwxMikscChweFsxOF0sZiw4Myl9LHgpLHU9dFsyXSxpPXRbMV07cmV0dXJuWzAsWzAsaSx1LGswKFswLGVdLDAsMCldXX0sUlI9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxfUzA9ZnVuY3Rpb24oeCl7Vyh4KT09PTIxJiZWeCh4LDk0KTt2YXIgcj1wKHB4WzE4XSx4LDgzKSxlPVcoeCk9PT04Mj8odTAoeCw4MiksWzAsYShweFsxMF0seCldKTowO3JldHVyblswLHIsZV19LHdTMD0wO0kwKFJSLGZ1bmN0aW9uKHgscil7dmFyIGU9Vyh4KTtpZih0eXBlb2YgZT09XCJudW1iZXJcIil7dmFyIHQ9ZS01fDAsdT0wO2lmKDc8dD4+PjA/dm49PT10JiYodT0xKTo1PHQtMT4+PjAmJih1PTEpLHUpe3ZhciBpPW9LKHgsZSksZj0kZChmdW5jdGlvbihsKXtyZXR1cm5bMCxsWzFdLFswLGxbMl0sbFszXV1dfSxpKTtyZXR1cm4gVyh4KSE9PTUmJlZ4KHgsNjYpLFswLEF4KHIpLGZdfX12YXIgbz1sMCh3UzAsX1MwLHgpO3JldHVybiBXKHgpIT09NSYmdTAoeCw5KSxwKFJSLHgsWzAsbyxyXSl9KTt2YXIgZjM9ZnVuY3Rpb24oeCxyKXtmdW5jdGlvbiBlKHUpe3ZhciBpPWZ6KDEsSE8ocixiTyh4LHUpKSksZj13MChpKTt1MChpLDQpO3ZhciBvPTA7aWYoazEoaSkmJlcoaSk9PT0yMSl7dmFyIGw9dzAoaSksZD1sMCgwLGZ1bmN0aW9uKFYpe3JldHVybiB1MChWLDIxKSxXKFYpPT09ODY/WzAsUXYoVildOihWeChWLDkwKSwwKX0saSksaz1kWzJdLGg9ZFsxXTtpZihrKXt2YXIgZz1rWzFdO1coaSk9PT05JiZaMChpKTt2YXIgQT1bMCxbMCxoLFswLGcsazAoWzAsbF0sMCwwKV1dXX1lbHNlIHZhciBBPTB9ZWxzZSBvPTE7aWYobyl2YXIgQT0wO3ZhciBOPXAoUlIsaSwwKSxDPU5bMl0sTz1OWzFdLEw9dzAoaSk7cmV0dXJuIHUwKGksNSksWzAsQSxPLEMsajEoWzAsZl0sWzAsaHgoaSldLEwsMCldfXZhciB0PTA7cmV0dXJuIGZ1bmN0aW9uKHUpe3JldHVybiBsMCh0LGUsdSl9fSx2Sz1mdW5jdGlvbih4LHIsZSx0LHUpe3ZhciBpPWx6KHgscixlLHUpO3JldHVybiBwKHB4WzE2XSx0LGkpfSxkNj1mdW5jdGlvbih4LHIsZSx0LHUpe3ZhciBpPXZLKHgscixlLHQsdSk7cmV0dXJuWzAsWzAsaVsxXV0saVsyXV19LGMzPWZ1bmN0aW9uKHgpe2lmKGwyIT09Vyh4KSlyZXR1cm4gSHYwO3ZhciByPXcwKHgpO3JldHVybiBaMCh4KSxbMCwxLHJdfSxvbT1mdW5jdGlvbih4KXtpZihXKHgpPT09NjQmJiFuNigxLHgpKXt2YXIgcj13MCh4KTtyZXR1cm4gWjAoeCksWzAsMSxyXX1yZXR1cm4gcXYwfSxUUzA9ZnVuY3Rpb24oeCl7dmFyIHI9b20oeCksZT1yWzFdLHQ9clsyXSx1PWwwKDAsZnVuY3Rpb24oTyl7dmFyIEw9dzAoTyk7dTAoTywxNSk7dmFyIE09YzMoTyksVj1NWzFdLHo9TGwoWzAsdCxbMCxMLFswLE1bMl0sMF1dXSksWT1PWzddLHQwPVcoTyksaTA9MDtpZihZJiZ0eXBlb2YgdDA9PVwibnVtYmVyXCIpe2lmKHQwPT09NCl7dmFyIFE9MCx4MD0wO2kwPTF9ZWxzZSBpZih0MD09PTk4KXt2YXIgaj1lZShPLFplKE8pKSxLPVcoTyk9PT00PzA6WzAsZ24oTyxwKHB4WzEzXSwkdjAsTykpXSxRPUsseDA9ajtpMD0xfX1pZighaTApdmFyIEo9bnMoTyk/Z24oTyxwKHB4WzEzXSxGdjAsTykpOihoeihPLFF2MCksWzAsUHgoTyksR3YwXSksUT1bMCxKXSx4MD1lZShPLFplKE8pKTt2YXIgJD1hKGYzKGUsViksTyksZjA9VyhPKT09PTg2PyQ6YzYoTywkKSxzMD1JUihPKSx2MD1zMFsyXSxvMD1zMFsxXTtpZih2MCl2YXIgYzA9U3ooTyx2MCksZDA9bzA7ZWxzZSB2YXIgYzA9djAsZDA9dDMoTyxvMCk7cmV0dXJuWzAsVix4MCxRLGYwLGQwLGMwLHpdfSx4KSxpPXVbMl0sZj1pWzRdLG89aVszXSxsPWlbMV0sZD1pWzddLGs9aVs2XSxoPWlbNV0sZz1pWzJdLEE9dVsxXSxOPWQ2KHgsZSxsLDAsWnYoZikpLEM9TlsxXTtyZXR1cm4gaTMoeCxOWzJdLG8sZiksWzI2LFswLG8sZixDLGUsbCxrLGgsZyxrMChbMCxkXSwwLDApLEFdXX0sU1MwPTAseTY9ZnVuY3Rpb24oeCl7cmV0dXJuIGwwKFNTMCxUUzAseCl9LExSPWZ1bmN0aW9uKHgscil7dmFyIGU9dzAocik7dTAocix4KTt2YXIgdD1yWzI4XVsyXTtpZih0KXZhciB1PXg9PT0yNz8xOjAsaT11JiYoVyhyKT09PTQ4PzE6MCk7ZWxzZSB2YXIgaT10O2kmJlZ4KHIsMjMpO2Zvcih2YXIgZj0wLG89MDs7KXt2YXIgbD1sMCgwLGZ1bmN0aW9uKE4pe3ZhciBDPXAocHhbMThdLE4sODYpO2lmKG8xKE4sODIpKXZhciBPPTAsTD1bMCxhKHB4WzEwXSxOKV07ZWxzZXt2YXIgTT1DWzFdO2lmKENbMl1bMF09PT0yKXZhciBPPTAsTD0wO2Vsc2UgdmFyIE89WzAsWzAsTSw2M11dLEw9MH1yZXR1cm5bMCxbMCxDLExdLE9dfSxyKSxkPWxbMl0saz1kWzJdLGg9WzAsWzAsbFsxXSxkWzFdXSxmXSxnPWs/WzAsa1sxXSxvXTpvO2lmKG8xKHIsOSkpe3ZhciBmPWgsbz1nO2NvbnRpbnVlfXZhciBBPUF4KGcpO3JldHVyblswLEF4KGgpLGUsQV19fSxFUzA9MjQsYUs9ZnVuY3Rpb24oeCl7cmV0dXJuIExSKEVTMCx4KX0sbEs9ZnVuY3Rpb24oeCl7dmFyIHI9TFIoMjcseFIoMSx4KSksZT1yWzFdLHQ9clszXSx1PXJbMl07cmV0dXJuWzAsZSx1LEF4KEgxKGZ1bmN0aW9uKGksZil7cmV0dXJuIGZbMl1bMl0/aTpbMCxbMCxmWzFdLDYyXSxpXX0sdCxlKSldfSxwSz1mdW5jdGlvbih4KXtyZXR1cm4gTFIoMjgseFIoMSx4KSl9LGRLPWZ1bmN0aW9uKHgpe2Z1bmN0aW9uIHIodCl7cmV0dXJuWzE5LHAobVMwWzFdLHgsdCldfXZhciBlPTA7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBsMChlLHIsdCl9fSxNUj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LGdTMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KSxlPVcoeCksdD1rcigxLHgpLHU9MDtpZih0eXBlb2YgZSE9XCJudW1iZXJcIiYmZVswXT09PTIpe3ZhciBpPWVbMV0sZj1pWzRdLG89aVszXSxsPWlbMl0sZD1pWzFdLGs9MDtpZih0eXBlb2YgdD09XCJudW1iZXJcIilzd2l0Y2godCl7Y2FzZSA4NTpjYXNlIDg2Oms9MjticmVhaztkZWZhdWx0Oms9MX1lbHNlIHRbMF09PT00P1AodFszXSxsbil8fChrPTIpOms9MTtzd2l0Y2goayl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpicmVhaztkZWZhdWx0OmYmJlp0KHgsODEpLHUwKHgsWzIsWzAsZCxsLG8sZl1dKTt2YXIgaD1bMSxbMCxkLFswLGwsbyxrMChbMCxyXSxbMCxoeCh4KV0sMCldXV0sZz0wO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiJiYhKDE8dCtrbz4+PjApKXt2YXIgQT10PT09ODU/MTowO1Z4KHgsWzE2LEEsbF0pLEEmJlowKHgpO3ZhciBOPVB4KHgpLEM9MCxPPVswLE4sWzIsWzAsWzAsTixXdjBdLE5SKHgpLEFdXV0sTD1oO3U9MX1lbHNlIGc9MTtpZihnKXtaMCh4KTt2YXIgQz0wLE89cChweFsxOF0seCw4MyksTD1oO3U9MX19fWlmKCF1KXt2YXIgTT0wO2lmKHR5cGVvZiB0IT1cIm51bWJlclwiJiZ0WzBdPT09NCYmIVAodFszXSxsbikpe3ZhciBWPVswLFQyKHgpXTtIcyh4LFp2MCk7dmFyIEM9MCxPPXAocHhbMThdLHgsODMpLEw9VjtNPTF9aWYoIU0pdmFyIHo9SDAocHhbMTRdLHgsMCw4MyksWT16WzJdLEM9MSxPPVswLHpbMV0sWzIsWV1dLEw9WzAsWVsxXV19dmFyIHQwPVcoeCk9PT04Mj8odTAoeCw4MiksWzAsYShweFsxMF0seCldKTowO3JldHVyblswLEwsTyx0MCxDXX0sQVMwPTA7STAoTVIsZnVuY3Rpb24oeCxyKXt2YXIgZT1XKHgpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXt2YXIgdD1lLTV8MCx1PTA7aWYoNzx0Pj4+MD92bj09PXQmJih1PTEpOjU8dC0xPj4+MCYmKHU9MSksdSl7dmFyIGk9b0soeCxlKSxmPSRkKGZ1bmN0aW9uKGwpe3JldHVyblswLGxbMV0sWzAsbFsyXSxsWzNdXV19LGkpO3JldHVybiBXKHgpIT09NSYmVngoeCw2NiksWzAsQXgociksZl19fXZhciBvPWwwKEFTMCxnUzAseCk7cmV0dXJuIFcoeCkhPT01JiZ1MCh4LDkpLHAoTVIseCxbMCxvLHJdKX0pO3ZhciBQUzA9ZnVuY3Rpb24oeCl7dmFyIHI9ZnooMSx4KSxlPXcwKHIpO3UwKHIsNCk7dmFyIHQ9cChNUixyLDApLHU9dFsyXSxpPXRbMV0sZj13MChyKTtyZXR1cm4gdTAociw1KSxbMCxpLHUsajEoWzAsZV0sWzAsaHgocildLGYsMCldfSxOUzA9MCxDUzA9ZnVuY3Rpb24oeCl7dmFyIHI9bDAoMCxmdW5jdGlvbihoKXt2YXIgZz13MChoKTtIcyhoLEt2MCk7dmFyIEE9Z24oaCxwKHB4WzEzXSxCdjAsaCkpLE49ZWUoaCxaZShoKSksQz1sMChOUzAsUFMwLGgpO2lmKGZSKGgpKXZhciBMPUM7ZWxzZSB2YXIgTz1QMShoKVsyXSxMPXAoTyxDLGZ1bmN0aW9uKE0sVil7cmV0dXJuIHAocXgoTSw4NDI2ODU4OTYsMTApLE0sVil9KTtyZXR1cm5bMCxOLEEsTCxzUihoLE9SKGgpKSxnXX0seCksZT1yWzJdLHQ9ZVszXSx1PWVbMl0saT1lWzVdLGY9ZVs0XSxvPWVbMV0sbD1yWzFdLGQ9dksoeCwwLDAsMCwwKSxrPWRbMV07cmV0dXJuIHNLKHgsZFsyXSxbMCx1XSxbMSx0XSksWzMsWzAsdSxvLHQsZixrLGswKFswLGldLDAsMCksbF1dfSxJUzA9MCxEUj1mdW5jdGlvbih4KXtyZXR1cm4gbDAoSVMwLENTMCx4KX0sbzI9ZnVuY3Rpb24oeCxyKXtpZihyWzBdPT09MClyZXR1cm4gclsxXTt2YXIgZT1yWzJdWzFdLHQ9clsxXTtyZXR1cm4gZzIoZnVuY3Rpb24odSl7cmV0dXJuIG54KHgsdSl9LGUpLHR9LFVSPWZ1bmN0aW9uKHgscixlKXt2YXIgdD14P3hbMV06NDE7aWYoZVswXT09PTApdmFyIHU9ZVsxXTtlbHNle3ZhciBpPWVbMl1bMl0sZj1lWzFdO2cyKGZ1bmN0aW9uKGgpe3JldHVybiBueChyLGgpfSxpKTt2YXIgdT1mfTEtYShweFsyM10sdSkmJm54KHIsWzAsdVsxXSx0XSk7dmFyIG89dVsyXSxsPTA7aWYob1swXT09PTgpe3ZhciBkPXVbMV07QnYob1sxXVsyXVsxXSkmJihhdChyLFswLGQsNzZdKSxsPTEpfXJldHVybiBwKHB4WzE5XSxyLHUpfSxqUj1mdW5jdGlvbih4LHIpe3ZhciBlPUhjKHhbMl0sclsyXSk7cmV0dXJuWzAsSGMoeFsxXSxyWzFdKSxlXX0seUs9ZnVuY3Rpb24oeCl7dmFyIHI9QXgoeFsyXSk7cmV0dXJuWzAsQXgoeFsxXSkscl19LG1LPWZ1bmN0aW9uKHgscil7dmFyIGU9eFswXT09PTA/eFsxXTp4WzFdLTF8MCx0PShyWzBdPT09MCxyWzFdKTtyZXR1cm4gdDw9ZT8xOjB9LHMzPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSwkdD1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sa0s9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEpSPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxoSz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sWFI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LF9LPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx3Sz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sbTY9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFlSPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxWUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0selI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFRLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxLUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sdm09ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEJSPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxTSz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sR3Y9ZnVuY3Rpb24geChyLGUsdCx1LGkpe3JldHVybiB4LmZ1bihyLGUsdCx1LGkpfSxXUj1mdW5jdGlvbiB4KHIsZSx0LHUpe3JldHVybiB4LmZ1bihyLGUsdCx1KX0sWlI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LGFtPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSwkUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sRlI9ZnVuY3Rpb24geChyLGUsdCx1LGkpe3JldHVybiB4LmZ1bihyLGUsdCx1LGkpfSxFSz1mdW5jdGlvbiB4KHIsZSx0LHUpe3JldHVybiB4LmZ1bihyLGUsdCx1KX0sUVI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LGxtPWZ1bmN0aW9uIHgocixlLHQpe3JldHVybiB4LmZ1bihyLGUsdCl9LGdLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxwbT1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxHUj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sQUs9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LHFSPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sSFI9ZnVuY3Rpb24geChyLGUsdCx1KXtyZXR1cm4geC5mdW4ocixlLHQsdSl9LFBLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxiUj1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxOSz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sQ0s9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LHhMPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxkbT1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxPUzA9ZnVuY3Rpb24oeCl7dmFyIHI9eFsyXTtzd2l0Y2goclswXSl7Y2FzZSAyMTp2YXIgZT1yWzFdLHQ9ZVsxXVsyXVsxXTtpZihQKHQsTTIpKXtpZighUCh0LG92KSYmIVAoZVsyXVsyXVsxXSxOUykpcmV0dXJuIDB9ZWxzZSBpZighUChlWzJdWzJdWzFdLHBsKSlyZXR1cm4gMDticmVhaztjYXNlIDA6Y2FzZSA4OmNhc2UgMjA6Y2FzZSAyMzpicmVhaztkZWZhdWx0OnJldHVybiAwfXJldHVybiAxfSxyTD1mdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPWEoWFIseCksdD1hKGhLLHgpO2lmKCF0KXJldHVybiBlO3ZhciB1PXRbMV07cmV0dXJuWzAsbDAoWzAscl0sZnVuY3Rpb24oaSl7dmFyIGY9VVIoMCxpLGUpO3JldHVyblsyLFswLHUsZixhKCR0LGkpLDBdXX0seCldfSxSUzA9ZnVuY3Rpb24oeCxyKXtpZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj09PTg1KXJldHVybiAwO3Rocm93IHEwKHVzLDEpfSxJSz1mdW5jdGlvbih4KXt2YXIgcj1ZeShSUzAseCksZT1yTChyKSx0PVcocik7aWYodHlwZW9mIHQ9PVwibnVtYmVyXCIpe2lmKHQ9PT0xMSl0aHJvdyBxMCh1cywxKTtpZih0PT09ODYpe3ZhciB1PXZ6KHIpLGk9MDtpZih1KXt2YXIgZj11WzFdO2lmKHR5cGVvZiBmPT1cIm51bWJlclwiJiZmPT09NSl7dmFyIG89MTtpPTF9fWlmKCFpKXZhciBvPTA7aWYobyl0aHJvdyBxMCh1cywxKX19aWYoIW5zKHIpKXJldHVybiBlO2lmKGVbMF09PT0wKXt2YXIgbD1lWzFdWzJdO2lmKGxbMF09PT04JiYhUChsWzFdWzJdWzFdLFRvKSYmIXJlKHIpKXRocm93IHEwKHVzLDEpfXJldHVybiBlfTtJMChzMyxmdW5jdGlvbih4KXt2YXIgcj1ucyh4KTtpZihyKXt2YXIgZT1XKHgpLHQ9MDtpZih0eXBlb2YgZT09XCJudW1iZXJcIil7aWYoZT09PTU4KXtpZih4WzE4XSl7dmFyIHU9MDt0PTF9fWVsc2UgaWYoZT09PTY1JiZ4WzE5XSl7dmFyIHU9MDt0PTF9fWlmKCF0KXZhciB1PTE7dmFyIGk9dX1lbHNlIHZhciBpPXI7dmFyIGY9Vyh4KSxvPTA7aWYodHlwZW9mIGY9PVwibnVtYmVyXCIpe3ZhciBsPTA7aWYoMjI8PWYpaWYoZj09PTU4KXtpZih4WzE4XSlyZXR1cm5bMCxhKGtLLHgpXTtsPTF9ZWxzZSBmIT09OTgmJihsPTEpO2Vsc2UgZiE9PTQmJjIxPmYmJihsPTEpO2x8fChvPTEpfWlmKCFvJiYhaSlyZXR1cm4gckwoeCk7dmFyIGQ9MDtpZihmPT09NjQmJmsxKHgpJiZrcigxLHgpPT09OTgpe3ZhciBrPUlLLGg9eEw7ZD0xfWlmKCFkKXZhciBrPXhMLGg9SUs7dmFyIGc9Y1IoeCxoKTtpZihnKXJldHVybiBnWzFdO3ZhciBBPWNSKHgsayk7cmV0dXJuIEE/QVsxXTpyTCh4KX0pLEkwKCR0LGZ1bmN0aW9uKHgpe3JldHVybiBvMih4LGEoczMseCkpfSksSTAoa0ssZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7clsxMF0mJlZ4KHIscG8pO3ZhciBlPXcwKHIpLHQ9UHgocik7dTAociw1OCk7dmFyIHU9UHgocik7aWYoZTMocikpdmFyIGk9MCxmPTA7ZWxzZXt2YXIgbz1vMShyLGwyKSxsPVcociksZD0wO2lmKHR5cGVvZiBsPT1cIm51bWJlclwiKXt2YXIgaz0wO2lmKGw9PT04NilrPTE7ZWxzZSBpZigxMD5sKXN3aXRjaChsKXtjYXNlIDA6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA2OmJyZWFrO2RlZmF1bHQ6az0xfWlmKGspe3ZhciBoPTA7ZD0xfX1pZighZCl2YXIgaD0xO3ZhciBnPTA7aWYoIW8mJiFoKXt2YXIgQT0wO2c9MX1pZighZyl2YXIgQT1bMCxhKCR0LHIpXTt2YXIgaT1vLGY9QX12YXIgTj1mPzA6aHgociksQz11MSh0LHUpO3JldHVyblszNSxbMCxmLGswKFswLGVdLFswLE5dLDApLGksQ11dfSx4KX0pLEkwKEpSLGZ1bmN0aW9uKHgpe3ZhciByPXhbMl07c3dpdGNoKHJbMF0pe2Nhc2UgMjE6dmFyIGU9clsxXSx0PWVbMV1bMl1bMV07aWYoUCh0LE0yKSl7aWYoIVAodCxvdikmJiFQKGVbMl1bMl1bMV0sTlMpKXJldHVybiAwfWVsc2UgaWYoIVAoZVsyXVsyXVsxXSxwbCkpcmV0dXJuIDA7YnJlYWs7Y2FzZSA4OmNhc2UgMjA6YnJlYWs7ZGVmYXVsdDpyZXR1cm4gMH1yZXR1cm4gMX0pLEkwKGhLLGZ1bmN0aW9uKHgpe3ZhciByPVcoeCksZT0wO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKXt2YXIgdD1yK1FEfDA7aWYoMTU+PXQ+Pj4wKXtzd2l0Y2godCl7Y2FzZSAwOnZhciB1PWwzMDticmVhaztjYXNlIDE6dmFyIHU9cDMwO2JyZWFrO2Nhc2UgMjp2YXIgdT1kMzA7YnJlYWs7Y2FzZSAzOnZhciB1PXkzMDticmVhaztjYXNlIDQ6dmFyIHU9bTMwO2JyZWFrO2Nhc2UgNTp2YXIgdT1rMzA7YnJlYWs7Y2FzZSA2OnZhciB1PWgzMDticmVhaztjYXNlIDc6dmFyIHU9XzMwO2JyZWFrO2Nhc2UgODp2YXIgdT13MzA7YnJlYWs7Y2FzZSA5OnZhciB1PVQzMDticmVhaztjYXNlIDEwOnZhciB1PVMzMDticmVhaztjYXNlIDExOnZhciB1PUUzMDticmVhaztjYXNlIDEyOnZhciB1PWczMDticmVhaztjYXNlIDEzOnZhciB1PUEzMDticmVhaztjYXNlIDE0OnZhciB1PVAzMDticmVhaztkZWZhdWx0OnZhciB1PU4zMH12YXIgaT11O2U9MX19aWYoIWUpdmFyIGk9MDtyZXR1cm4gaSE9PTAmJlowKHgpLGl9KSxJMChYUixmdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPWEod0sseCk7aWYoVyh4KSE9PTg1KXJldHVybiBlO1owKHgpO3ZhciB0PWEoJHQsZTYoMCx4KSk7dTAoeCw4Nik7dmFyIHU9bDAoWzAscl0sJHQseCksaT11WzJdLGY9dVsxXTtyZXR1cm5bMCxbMCxmLFs2LFswLG8yKHgsZSksdCxpLDBdXV1dfSksSTAoX0ssZnVuY3Rpb24oeCl7cmV0dXJuIG8yKHgsYShYUix4KSl9KTt2YXIgZUw9ZnVuY3Rpb24oeCxyLGUsdCx1KXt2YXIgaT1vMih4LHIpO3JldHVyblswLFswLHUsWzE5LFswLHQsaSxvMih4LGUpLDBdXV1dfSx0TD1mdW5jdGlvbih4LHIsZSl7Zm9yKHZhciB0PXIsdT1lOzspe3ZhciBpPVcoeCk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCImJmk9PT04OCl7WjAoeCk7dmFyIGY9bDAoMCxtNix4KSxvPWZbMl0sbD11MSh1LGZbMV0pLGQ9bkwoMCx4LGVMKHgsdCxvLDEsbCksbCksdD1kWzJdLHU9ZFsxXTtjb250aW51ZX1yZXR1cm5bMCx1LHRdfX0sT0s9ZnVuY3Rpb24oeCxyLGUpe2Zvcih2YXIgdD1yLHU9ZTs7KXt2YXIgaT1XKHgpO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiJiZpPT09ODcpe1owKHgpO3ZhciBmPWwwKDAsbTYseCksbz10TCh4LGZbMl0sZlsxXSksbD1vWzJdLGQ9dTEodSxvWzFdKSxrPW5MKDAseCxlTCh4LHQsbCwwLGQpLGQpLHQ9a1syXSx1PWtbMV07Y29udGludWV9cmV0dXJuWzAsdSx0XX19LG5MPWZ1bmN0aW9uKHgscixlLHQpe2Zvcih2YXIgdT14LGk9ZSxmPXQ7Oyl7dmFyIG89VyhyKTtpZih0eXBlb2Ygbz09XCJudW1iZXJcIiYmbz09PTg0KXsxLXUmJlZ4KHIsYTMwKSx1MChyLDg0KTt2YXIgbD1sMCgwLG02LHIpLGQ9bFsyXSxrPWxbMV0saD1XKHIpLGc9MDtpZih0eXBlb2YgaD09XCJudW1iZXJcIiYmMT49aC04Nz4+PjApe1Z4KHIsWzIwLFdPKGgpXSk7dmFyIEE9dEwocixkLGspLE49T0socixBWzJdLEFbMV0pLEM9TlsyXSxPPU5bMV07Zz0xfWlmKCFnKXZhciBDPWQsTz1rO3ZhciBMPXUxKGYsTyksdT0xLGk9ZUwocixpLEMsMixMKSxmPUw7Y29udGludWV9cmV0dXJuWzAsZixpXX19O0kwKHdLLGZ1bmN0aW9uKHgpe3ZhciByPWwwKDAsbTYseCksZT1yWzJdLHQ9clsxXSx1PVcoeCksaT0wO2lmKHR5cGVvZiB1PT1cIm51bWJlclwiJiZ1PT09ODQpe3ZhciBvPW5MKDEseCxlLHQpO2k9MX1pZighaSl2YXIgZj10TCh4LGUsdCksbz1PSyh4LGZbMl0sZlsxXSk7cmV0dXJuIG9bMl19KTt2YXIgdUw9ZnVuY3Rpb24oeCxyLGUsdCl7cmV0dXJuWzAsdCxbMyxbMCxlLHgsciwwXV1dfSxMUzA9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yO3g6Zm9yKDs7KXt2YXIgdD1sMCgwLGZ1bmN0aW9uKG94KXt2YXIgYjA9YShZUixveCkhPT0wPzE6MDtyZXR1cm5bMCxiMCxhKFZSLGU2KDAsb3gpKV19LHgpLHU9dFsyXSxpPXVbMl0sZj11WzFdLG89dFsxXTtpZihXKHgpPT09OTgpe3ZhciBsPTA7aVswXT09PTAmJmlbMV1bMl1bMF09PT0xMCYmKFZ4KHgsMiksbD0xKX1mb3IodmFyIGQ9ZSxrPWk7Oyl7dmFyIGg9Vyh4KTtpZih0eXBlb2YgaCE9XCJudW1iZXJcIiYmaFswXT09PTQpe3ZhciBnPWhbM10sQT0wO2lmKFAoZyxsbikmJlAoZyxaVSkmJihBPTEpLCFBJiZrMSh4KSl7WjAoeCk7dmFyIE49bzIoeCxrKSxDPTA7aWYoZCl7dmFyIE89ZFsxXSxMPU9bMl0sTT1kWzJdLFY9T1szXSx6PUxbMV0sWT1PWzFdO2lmKG1LKExbMl0sS2EwKSl7dmFyIHQwPXVMKFksTix6LHUxKFYsbykpLGkwPU07Qz0xfX1pZighQyl2YXIgdDA9TixpMD1kO3ZhciBqPXQwWzFdO2lmKEFyKGcsWlUpKXZhciBLPWJzKHgpLHgwPUtbMV0sJD1bMSxLXTtlbHNlIGlmKFcoeCk9PT0yNyl7dmFyIEo9UHgoeCk7WjAoeCk7dmFyIHgwPUosJD0wfWVsc2UgdmFyIFE9YnMoeCkseDA9UVsxXSwkPVswLFFdO3ZhciBkPWkwLGs9WzAsWzAsdTEoaix4MCksWzMyLFswLHQwLCQsMF1dXV07Y29udGludWV9fXZhciBmMD1XKHgpLHMwPTA7aWYodHlwZW9mIGYwPT1cIm51bWJlclwiKXt2YXIgdjA9ZjAtMTd8MCxvMD0wO2lmKDE8djA+Pj4wKWlmKDcyPD12MCl7dmFyIGMwPTA7c3dpdGNoKHYwLTcyfDApe2Nhc2UgMDp2YXIgZDA9QmEwO2JyZWFrO2Nhc2UgMTp2YXIgZDA9V2EwO2JyZWFrO2Nhc2UgMjp2YXIgZDA9WmEwO2JyZWFrO2Nhc2UgMzp2YXIgZDA9JGEwO2JyZWFrO2Nhc2UgNDp2YXIgZDA9RmEwO2JyZWFrO2Nhc2UgNTp2YXIgZDA9UWEwO2JyZWFrO2Nhc2UgNjp2YXIgZDA9R2EwO2JyZWFrO2Nhc2UgNzp2YXIgZDA9cWEwO2JyZWFrO2Nhc2UgODp2YXIgZDA9SGEwO2JyZWFrO2Nhc2UgOTp2YXIgZDA9YmEwO2JyZWFrO2Nhc2UgMTA6dmFyIGQwPXgzMDticmVhaztjYXNlIDExOnZhciBkMD1yMzA7YnJlYWs7Y2FzZSAxMjp2YXIgZDA9ZTMwO2JyZWFrO2Nhc2UgMTM6dmFyIGQwPXQzMDticmVhaztjYXNlIDE0OnZhciBkMD1uMzA7YnJlYWs7Y2FzZSAxNTp2YXIgZDA9dTMwO2JyZWFrO2Nhc2UgMTY6dmFyIGQwPWkzMDticmVhaztjYXNlIDE3OnZhciBkMD1mMzA7YnJlYWs7Y2FzZSAxODp2YXIgZDA9YzMwO2JyZWFrO2Nhc2UgMTk6dmFyIGQwPXMzMDticmVhaztkZWZhdWx0Om8wPTEsYzA9MX1pZighYzApdmFyIEUwPWQwfWVsc2UgbzA9MTtlbHNlIHZhciBFMD12MD9vMzA6eFsxMl0/MDp2MzA7aWYoIW8wKXt2YXIgTDA9RTA7czA9MX19aWYoIXMwKXZhciBMMD0wO2lmKEwwIT09MCYmWjAoeCksIWQmJiFMMClyZXR1cm4gaztpZighTDApZm9yKHZhciBYMD1vMih4LGspLHh4PW8sZzA9ZDs7KXtpZighZzApcmV0dXJuWzAsWDBdO3ZhciAkMD1nMFsxXSxuMD1nMFsyXSxpeD0kMFsyXVsxXSxyeD0kMFsxXSxkeD11MSgkMFszXSx4eCksWDA9dUwocngsWDAsaXgsZHgpLHh4PWR4LGcwPW4wfXZhciBheD1MMFsxXSxTeD1heFsxXSxEMD1heFsyXSxOMD1mJiYoU3g9PT0xND8xOjApO04wJiZueCh4LFswLG8sNDJdKTtmb3IodmFyIEEwPW8yKHgsayksWTA9WzAsU3gsRDBdLEMwPW8sRj1kOzspe3ZhciBIPVkwWzJdLEI9WTBbMV07aWYoRil7dmFyIGEwPUZbMV0sbTA9YTBbMl0sUDA9RlsyXSxEPWEwWzNdLE8wPW0wWzFdLEswPWEwWzFdO2lmKG1LKG0wWzJdLEgpKXt2YXIgajA9dTEoRCxDMCksQTA9dUwoSzAsQTAsTzAsajApLFkwPVswLEIsSF0sQzA9ajAsRj1QMDtjb250aW51ZX19dmFyIGU9WzAsWzAsQTAsWzAsQixIXSxDMF0sRl07Y29udGludWUgeH19fX07STAobTYsZnVuY3Rpb24oeCl7cmV0dXJuIExTMCh4LDApfSksSTAoWVIsZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil7aWYoNDg8PXIpe2lmKGZuPD1yKXtpZihPdD5yKXN3aXRjaChyK0xQfDApe2Nhc2UgMDpyZXR1cm4gRGEwO2Nhc2UgMTpyZXR1cm4gVWEwO2Nhc2UgNjpyZXR1cm4gamEwO2Nhc2UgNzpyZXR1cm4gSmEwfX1lbHNlIGlmKHI9PT02NSYmeFsxOV0pcmV0dXJuIHhbMTBdJiZWeCh4LDcpLFhhMH1lbHNlIGlmKDQ1PD1yKXN3aXRjaChyK3BFfDApe2Nhc2UgMDpyZXR1cm4gWWEwO2Nhc2UgMTpyZXR1cm4gVmEwO2RlZmF1bHQ6cmV0dXJuIHphMH19cmV0dXJuIDB9KSxJMChWUixmdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPXcwKHgpLHQ9YShZUix4KTtpZih0KXt2YXIgdT10WzFdO1owKHgpO3ZhciBpPWwwKFswLHJdLHpSLHgpLGY9aVsyXSxvPWlbMV0sbD0wO2lmKHU9PT02KXt2YXIgZD1mWzJdLGs9MDtzd2l0Y2goZFswXSl7Y2FzZSA4OmF0KHgsWzAsbyw3M10pLGs9MTticmVhaztjYXNlIDIwOmRbMV1bMl1bMF09PT0xJiZueCh4LFswLG8sNjddKSxrPTE7YnJlYWt9ayYmKGw9MSl9cmV0dXJuWzAsWzAsbyxbMzMsWzAsdSxmLGswKFswLGVdLDAsMCldXV1dfXZhciBoPVcoeCksZz0wO2lmKHR5cGVvZiBoPT1cIm51bWJlclwiKWlmKE90PT09aCl2YXIgQT1NYTA7ZWxzZSBpZihMMj09PWgpdmFyIEE9TGEwO2Vsc2UgZz0xO2Vsc2UgZz0xO2lmKGcpdmFyIEE9MDtpZighQSlyZXR1cm4gYShUSyx4KTt2YXIgTj1BWzFdO1owKHgpO3ZhciBDPWwwKFswLHJdLHpSLHgpLE89Q1syXSxMPUNbMV07MS1hKEpSLE8pJiZueCh4LFswLE9bMV0sNDFdKTt2YXIgTT1PWzJdLFY9MDtyZXR1cm4gTVswXT09PTgmJkJ2KE1bMV1bMl1bMV0pJiYoWnQoeCw3OCksVj0xKSxbMCxbMCxMLFszNCxbMCxOLE8sMSxrMChbMCxlXSwwLDApXV1dXX0pLEkwKHpSLGZ1bmN0aW9uKHgpe3JldHVybiBvMih4LGEoVlIseCkpfSksSTAoVEssZnVuY3Rpb24oeCl7dmFyIHI9YShLUix4KTtpZihyZSh4KSlyZXR1cm4gcjt2YXIgZT1XKHgpLHQ9MDtpZih0eXBlb2YgZT09XCJudW1iZXJcIilpZihPdD09PWUpdmFyIHU9UmEwO2Vsc2UgaWYoTDI9PT1lKXZhciB1PU9hMDtlbHNlIHQ9MTtlbHNlIHQ9MTtpZih0KXZhciB1PTA7aWYoIXUpcmV0dXJuIHI7dmFyIGk9dVsxXSxmPW8yKHgscik7MS1hKEpSLGYpJiZueCh4LFswLGZbMV0sNDFdKTt2YXIgbz1mWzJdLGw9MDtvWzBdPT09OCYmQnYob1sxXVsyXVsxXSkmJihadCh4LDc3KSxsPTEpO3ZhciBkPVB4KHgpO1owKHgpO3ZhciBrPWh4KHgpLGg9dTEoZlsxXSxkKTtyZXR1cm5bMCxbMCxoLFszNCxbMCxpLGYsMCxrMCgwLFswLGtdLDApXV1dXX0pLEkwKEtSLGZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9MS14WzE3XSx0PTAsdT14WzE3XT09PTA/eDpbMCx4WzFdLHhbMl0seFszXSx4WzRdLHhbNV0seFs2XSx4WzddLHhbOF0seFs5XSx4WzEwXSx4WzExXSx4WzEyXSx4WzEzXSx4WzE0XSx4WzE1XSx4WzE2XSx0LHhbMThdLHhbMTldLHhbMjBdLHhbMjFdLHhbMjJdLHhbMjNdLHhbMjRdLHhbMjVdLHhbMjZdLHhbMjddLHhbMjhdLHhbMjldLHhbMzBdLHhbMzFdXSxpPVcodSksZj0wO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiKXt2YXIgbz1pLTQ0fDA7aWYoNz49bz4+PjApe3ZhciBsPTA7c3dpdGNoKG8pe2Nhc2UgMDppZihlKXZhciBkPVswLGEoWlIsdSldO2Vsc2UgbD0xO2JyZWFrO2Nhc2UgNjp2YXIgZD1bMCxhKFNLLHUpXTticmVhaztjYXNlIDc6dmFyIGQ9WzAsYShCUix1KV07YnJlYWs7ZGVmYXVsdDpsPTF9aWYoIWwpe3ZhciBrPWQ7Zj0xfX19aWYoIWYpdmFyIGs9am8odSk/WzAsYShRUix1KV06YShHUix1KTtyZXR1cm4gVmUoR3YsMCwwLHUscixrKX0pLEkwKHZtLGZ1bmN0aW9uKHgpe3JldHVybiBvMih4LGEoS1IseCkpfSksSTAoQlIsZnVuY3Rpb24oeCl7c3dpdGNoKHhbMjJdKXtjYXNlIDA6dmFyIHI9MCxlPTA7YnJlYWs7Y2FzZSAxOnZhciByPTAsZT0xO2JyZWFrO2RlZmF1bHQ6dmFyIHI9MSxlPTF9dmFyIHQ9UHgoeCksdT13MCh4KTt1MCh4LDUxKTt2YXIgaT1bMCx0LFsyNyxbMCxrMChbMCx1XSxbMCxoeCh4KV0sMCldXV0sZj1XKHgpO2lmKHR5cGVvZiBmPT1cIm51bWJlclwiJiYxMT5mKXN3aXRjaChmKXtjYXNlIDQ6dmFyIG89cj9pOihueCh4LFswLHQsRGVdKSxbMCx0LFs4LFNuKDAsWzAsdCxOYTBdKV1dKTtyZXR1cm4gdmUoV1IsMCx4LHQsbyk7Y2FzZSA2OmNhc2UgMTA6dmFyIGw9ZT9pOihueCh4LFswLHQsRHRdKSxbMCx0LFs4LFNuKDAsWzAsdCxJYTBdKV1dKTtyZXR1cm4gdmUoV1IsMCx4LHQsbCl9cmV0dXJuIGU/UzEoQ2EwLHgpOm54KHgsWzAsdCxEdF0pLGl9KSxJMChTSyxmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKSx0PVB4KHIpO2lmKHUwKHIsNTApLG8xKHIsMTApKXt2YXIgdT1TbigwLFswLHQsZ2EwXSksaT1QeChyKTtIcyhyLEFhMCk7dmFyIGY9U24oMCxbMCxpLFBhMF0pO3JldHVyblsyMSxbMCx1LGYsazAoWzAsZV0sWzAsaHgocildLDApXV19dmFyIG89dzAocik7dTAociw0KTt2YXIgbD1IMChiUixbMCxvXSwwLGEoJHQsZTYoMCxyKSkpO3JldHVybiB1MChyLDUpLFs5LFswLGwsazAoWzAsZV0sWzAsaHgocildLDApXV19LHgpfSksSTAoR3YsZnVuY3Rpb24oeCxyLGUsdCx1KXt2YXIgaT14P3hbMV06MSxmPXI/clsxXTowLG89VmUoRlIsWzAsaV0sWzAsZl0sZSx0LHUpLGw9dnooZSksZD0wO2lmKGwpe3ZhciBrPWxbMV07aWYodHlwZW9mIGs9PVwibnVtYmVyXCImJms9PT04Myl7dmFyIGg9MTtkPTF9fWlmKCFkKXZhciBoPTA7ZnVuY3Rpb24gZyhMKXt2YXIgTT1QMShMKVsyXTtmdW5jdGlvbiBWKHosWSl7cmV0dXJuIHAocXgoeixtbiw2MSkseixZKX1yZXR1cm4gcChNLG8yKEwsbyksVil9ZnVuY3Rpb24gQShMLE0sVil7dmFyIHo9YSgkUixNKSxZPXpbMV0sdDA9elsyXSxpMD11MSh0LFkpLGo9WzAsVixMLFswLFksdDBdLDBdLEs9MDtpZighaCYmIWYpe3ZhciBKPVs0LGpdO0s9MX1pZighSyl2YXIgSj1bMjQsWzAsaixpMCxoXV07dmFyIFE9Znx8aDtyZXR1cm4gVmUoR3YsWzAsaV0sWzAsUV0sTSx0LFswLFswLGkwLEpdXSl9aWYoZVsxM10pcmV0dXJuIG87dmFyIE49VyhlKTtpZih0eXBlb2YgTj09XCJudW1iZXJcIil7dmFyIEM9Ti05OHwwO2lmKDI8Qz4+PjApe2lmKEM9PT0tOTQpcmV0dXJuIEEoMCxlLGcoZSkpfWVsc2UgaWYoQyE9PTEmJmsxKGUpKXt2YXIgTz1ZeShmdW5jdGlvbihMLE0pe3Rocm93IHEwKHVzLDEpfSxlKTtyZXR1cm4gV3koTyxvLGZ1bmN0aW9uKEwpe3ZhciBNPWcoTCk7cmV0dXJuIEEoYShhbSxMKSxMLE0pfSl9fXJldHVybiBvfSksSTAoV1IsZnVuY3Rpb24oeCxyLGUsdCl7dmFyIHU9eD94WzFdOjE7cmV0dXJuIG8yKHIsVmUoR3YsWzAsdV0sMCxyLGUsWzAsdF0pKX0pLEkwKFpSLGZ1bmN0aW9uKHgpe3JldHVybiBsMCgwLGZ1bmN0aW9uKHIpe3ZhciBlPVB4KHIpLHQ9dzAocik7aWYodTAociw0NCksclsxMV0mJlcocik9PT0xMCl7dmFyIHU9aHgocik7WjAocik7dmFyIGk9U24oazAoWzAsdF0sWzAsdV0sMCksWzAsZSxUYTBdKSxmPVcocik7cmV0dXJuIHR5cGVvZiBmIT1cIm51bWJlclwiJiZmWzBdPT09NCYmIVAoZlszXSxOUyk/WzIxLFswLGkscChweFsxM10sMCxyKSwwXV06KFMxKFNhMCxyKSxaMChyKSxbOCxpXSl9dmFyIG89UHgociksbD1XKHIpLGQ9MDtpZih0eXBlb2YgbD09XCJudW1iZXJcIilpZihsPT09NDQpdmFyIGs9YShaUixyKTtlbHNlIGlmKGw9PT01MSl2YXIgaz1hKEJSLGVSKDEscikpO2Vsc2UgZD0xO2Vsc2UgZD0xO2lmKGQpdmFyIGs9am8ocik/YShRUixyKTphKEFLLHIpO3ZhciBoPXZlKEVLLEVhMCxlUigxLHIpLG8sayksZz1XKHIpLEE9MDtpZih0eXBlb2YgZyE9XCJudW1iZXJcIiYmZ1swXT09PTMpe3ZhciBOPXZlKEhSLHIsbyxoLGdbMV0pO0E9MX1pZighQSl2YXIgTj1oO3ZhciBDPTA7aWYoVyhyKSE9PTQpe3ZhciBPPTA7aWYoKCFrMShyKXx8VyhyKSE9PTk4KSYmKE89MSksTyl7dmFyIE09TjtDPTF9fWlmKCFDKXZhciBMPVAxKHIpWzJdLE09cChMLE4sZnVuY3Rpb24oaTAsail7cmV0dXJuIHAocXgoaTAsbW4sNjIpLGkwLGopfSk7dmFyIFY9azEocik/V3koWXkoZnVuY3Rpb24oaTAsail7dGhyb3cgcTAodXMsMSl9LHIpLDAsYW0pOjAsej1XKHIpLFk9MDtpZih0eXBlb2Ygej09XCJudW1iZXJcIiYmej09PTQpe3ZhciB0MD1bMCxhKCRSLHIpXTtZPTF9aWYoIVkpdmFyIHQwPTA7cmV0dXJuWzIyLFswLE0sVix0MCxrMChbMCx0XSwwLDApXV19LHgpfSk7dmFyIE1TMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDk4KTtmb3IodmFyIGU9MDs7KXt2YXIgdD1XKHgpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXt2YXIgdT0wO2lmKHQhPT05OSYmUnIhPT10JiYodT0xKSwhdSl7dmFyIGk9QXgoZSksZj13MCh4KTt1MCh4LDk5KTt2YXIgbz1XKHgpPT09ND9QMSh4KVsxXTpoeCh4KTtyZXR1cm5bMCxpLGoxKFswLHJdLFswLG9dLGYsMCldfX12YXIgbD1XKHgpLGQ9MDtpZih0eXBlb2YgbCE9XCJudW1iZXJcIiYmbFswXT09PTQmJiFQKGxbMl0sQWEpKXt2YXIgaz1QeCh4KSxoPXcwKHgpO0hzKHgsd2EwKTt2YXIgZz1bMSxbMCxrLFswLGswKFswLGhdLFswLGh4KHgpXSwwKV1dXTtkPTF9aWYoIWQpdmFyIGc9WzAsYnMoeCldO3ZhciBBPVswLGcsZV07Vyh4KSE9PTk5JiZ1MCh4LDkpO3ZhciBlPUF9fTtJMChhbSxmdW5jdGlvbih4KXtKMSh4LDEpO3ZhciByPVcoeCk9PT05OD9bMCxsMCgwLE1TMCx4KV06MDtyZXR1cm4gSzEoeCkscn0pO3ZhciBEUzA9ZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7dTAoeCwxMik7dmFyIGU9YSgkdCx4KTtyZXR1cm5bMCxlLGswKFswLHJdLDAsMCldfTtJMCgkUixmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKTt1MChyLDQpO2Zvcih2YXIgdD0wOzspe3ZhciB1PVcocik7aWYodHlwZW9mIHU9PVwibnVtYmVyXCIpe3ZhciBpPTA7aWYodSE9PTUmJlJyIT09dSYmKGk9MSksIWkpe3ZhciBmPUF4KHQpLG89dzAocik7cmV0dXJuIHUwKHIsNSksWzAsZixqMShbMCxlXSxbMCxoeChyKV0sbywwKV19fXZhciBsPVcociksZD0wO2lmKHR5cGVvZiBsPT1cIm51bWJlclwiJiZsPT09MTIpe3ZhciBrPVsxLGwwKDAsRFMwLHIpXTtkPTF9aWYoIWQpdmFyIGs9WzAsYSgkdCxyKV07dmFyIGg9WzAsayx0XTtXKHIpIT09NSYmdTAociw5KTt2YXIgdD1ofX0seCl9KTt2YXIgUks9ZnVuY3Rpb24oeCxyLGUsdCx1LGkpe3ZhciBmPXg/eFsxXToxLG89cj9yWzFdOjAsbD1lP2VbMV06MCxkPWVSKDAsdCksaz1hKHB4WzddLGQpLGg9UHgodCk7dTAodCw3KTt2YXIgZz1oeCh0KSxBPXUxKHUsaCksTj1rMCgwLFswLGddLDApLEM9WzAsbzIodCxpKSxbMixrXSxOXSxPPW8/WzI1LFswLEMsQSxsXV06WzIwLENdO3JldHVybiBWZShHdixbMCxmXSxbMCxvXSx0LHUsWzAsWzAsQSxPXV0pfSxMSz1mdW5jdGlvbih4LHIsZSx0LHUsaSl7dmFyIGY9eD94WzFdOjEsbz1yP3JbMV06MCxsPWU/ZVsxXTowLGQ9Vyh0KSxrPTA7aWYodHlwZW9mIGQ9PVwibnVtYmVyXCImJmQ9PT0xNCl7dmFyIGg9UHoodCksZz1oWzFdLEE9dFszMF1bMV0sTj1oWzJdWzFdO2lmKEEpe3ZhciBDPUFbMV07dFszMF1bMV09WzAsWzAsQ1sxXSxbMCxbMCxOLGddLENbMl1dXSxBWzJdXX1lbHNlIG54KHQsWzAsZyw2OF0pO3ZhciBMPVsxLGhdLE09ZztrPTF9aWYoIWspdmFyIE89VDIodCksTD1bMCxPXSxNPU9bMV07dmFyIFY9dTEodSxNKSx6PTA7aVswXT09PTAmJmlbMV1bMl1bMF09PT0yNyYmTFswXT09PTEmJihueCh0LFswLFYsODddKSx6PTEpO3ZhciBZPVswLG8yKHQsaSksTCwwXSx0MD1vP1syNSxbMCxZLFYsbF1dOlsyMCxZXTtyZXR1cm4gVmUoR3YsWzAsZl0sWzAsb10sdCx1LFswLFswLFYsdDBdXSl9O0kwKEZSLGZ1bmN0aW9uKHgscixlLHQsdSl7dmFyIGk9eD94WzFdOjEsZj1yP3JbMV06MCxvPVcoZSk7aWYodHlwZW9mIG89PVwibnVtYmVyXCIpc3dpdGNoKG8pe2Nhc2UgNjpyZXR1cm4gWjAoZSksUksoWzAsaV0sWzAsZl0sMCxlLHQsdSk7Y2FzZSAxMDpyZXR1cm4gWjAoZSksTEsoWzAsaV0sWzAsZl0sMCxlLHQsdSk7Y2FzZSA4MzoxLWkmJlZ4KGUsNjQpLHUwKGUsODMpO3ZhciBsPVcoZSk7aWYodHlwZW9mIGw9PVwibnVtYmVyXCIpc3dpdGNoKGwpe2Nhc2UgNDpyZXR1cm4gdTtjYXNlIDY6cmV0dXJuIFowKGUpLFJLKFswLGldLG1hMCx5YTAsZSx0LHUpO2Nhc2UgOTg6aWYoazEoZSkpcmV0dXJuIHU7YnJlYWt9ZWxzZSBpZihsWzBdPT09MylyZXR1cm4gVngoZSw2NSksdTtyZXR1cm4gTEsoWzAsaV0saGEwLGthMCxlLHQsdSl9ZWxzZSBpZihvWzBdPT09Myl7dmFyIGQ9b1sxXTtyZXR1cm4gZiYmVngoZSw2NSksVmUoR3YsX2EwLDAsZSx0LFswLHZlKEhSLGUsdCxvMihlLHUpLGQpXSl9cmV0dXJuIHV9KSxJMChFSyxmdW5jdGlvbih4LHIsZSx0KXt2YXIgdT14P3hbMV06MTtyZXR1cm4gbzIocixWZShGUixbMCx1XSwwLHIsZSxbMCx0XSkpfSksSTAoUVIsZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9b20ociksdD1lWzFdLHU9ZVsyXSxpPWwwKDAsZnVuY3Rpb24oTCl7dmFyIE09dzAoTCk7dTAoTCwxNSk7dmFyIFY9YzMoTCksej1WWzFdLFk9TGwoWzAsdSxbMCxNLFswLFZbMl0sMF1dXSk7aWYoVyhMKT09PTQpdmFyIHQwPTAsaTA9MDtlbHNle3ZhciBqPVcoTCksSz0wO2lmKHR5cGVvZiBqPT1cIm51bWJlclwiJiZqPT09OTgpe3ZhciBRPTA7Sz0xfWlmKCFLKXZhciBKPUhPKHosYk8odCxMKSksUT1bMCxnbihKLHAocHhbMTNdLGRhMCxKKSldO3ZhciB0MD1lZShMLFplKEwpKSxpMD1RfXZhciB4MD16digwLEwpLCQ9dHx8eDBbMTldLGYwPWEoZjMoJCx6KSx4MCksczA9Vyh4MCk9PT04Nj9mMDpjNih4MCxmMCksdjA9SVIoeDApLG8wPXYwWzJdLGMwPXYwWzFdO2lmKG8wKXZhciBkMD1Teih4MCxvMCksRTA9YzA7ZWxzZSB2YXIgZDA9bzAsRTA9dDMoeDAsYzApO3JldHVyblswLGkwLHMwLHosZDAsRTAsdDAsWV19LHIpLGY9aVsyXSxvPWZbM10sbD1mWzJdLGQ9ZlsxXSxrPWZbN10saD1mWzZdLGc9Zls1XSxBPWZbNF0sTj1pWzFdLEM9ZDYocix0LG8sMSxadihsKSksTz1DWzFdO3JldHVybiBpMyhyLENbMl0sZCxsKSxbNyxbMCxkLGwsTyx0LG8sQSxnLGgsazAoWzAsa10sMCwwKSxOXV19LHgpfSksSTAobG0sZnVuY3Rpb24oeCxyLGUpe3N3aXRjaChyKXtjYXNlIDE6WnQoeCw4MSk7dHJ5e3ZhciB0PVZkKFNsKEZ4KG9hMCxlKSkpLHU9dH1jYXRjaChnKXt2YXIgaT1DMShnKTtpZihpWzFdIT09X24pdGhyb3cgcTAoaSwwKTt2YXIgdT1PeChGeCh2YTAsZSkpfWJyZWFrO2Nhc2UgMjpadCh4LDgwKTt0cnl7dmFyIGY9VUkoZSksdT1mfWNhdGNoKGcpe3ZhciBvPUMxKGcpO2lmKG9bMV0hPT1fbil0aHJvdyBxMChvLDApO3ZhciB1PU94KEZ4KGFhMCxlKSl9YnJlYWs7Y2FzZSA0OnRyeXt2YXIgbD1VSShlKSx1PWx9Y2F0Y2goZyl7dmFyIGQ9QzEoZyk7aWYoZFsxXSE9PV9uKXRocm93IHEwKGQsMCk7dmFyIHU9T3goRngobGEwLGUpKX1icmVhaztkZWZhdWx0OnRyeXt2YXIgaz1WZChTbChlKSksdT1rfWNhdGNoKGcpe3ZhciBoPUMxKGcpO2lmKGhbMV0hPT1fbil0aHJvdyBxMChoLDApO3ZhciB1PU94KEZ4KHBhMCxlKSl9fXJldHVybiB1MCh4LFswLHIsZV0pLHV9KSxJMChnSyxmdW5jdGlvbih4KXt2YXIgcj1YeCh4KSxlPTA7aWYociE9PTAmJlYxPT09TjEoeCxyLTF8MCkpe3ZhciB0PW0yKHgsMCxyLTF8MCk7ZT0xfWlmKCFlKXZhciB0PXg7cmV0dXJuIHR9KSxJMChwbSxmdW5jdGlvbih4LHIsZSl7dmFyIHQ9dVkoYShnSyxlKSk7cmV0dXJuIHUwKHgsWzEscixlXSksdH0pLEkwKEdSLGZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9dzAoeCksdD1XKHgpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXN3aXRjaCh0KXtjYXNlIDA6dmFyIHU9YShweFsxMl0seCk7cmV0dXJuWzEsWzAsdVsxXSxbMjMsdVsyXV1dLHVbM11dO2Nhc2UgNDpyZXR1cm5bMCxhKFBLLHgpXTtjYXNlIDY6dmFyIGk9bDAoMCxOSyx4KSxmPWlbMl07cmV0dXJuWzEsWzAsaVsxXSxbMCxmWzFdXV0sZlsyXV07Y2FzZSAyMTpyZXR1cm4gWjAoeCksWzAsWzAscixbMzAsWzAsazAoWzAsZV0sWzAsaHgoeCldLDApXV1dXTtjYXNlIDI5OnJldHVybiBaMCh4KSxbMCxbMCxyLFsxNCxrMChbMCxlXSxbMCxoeCh4KV0sMCldXV07Y2FzZSA0MDpyZXR1cm5bMCxhKHB4WzIyXSx4KV07Y2FzZSA5ODp2YXIgbz1hKHB4WzE3XSx4KSxsPW9bMl0sZD1vWzFdLGs9Y248PWxbMV0/WzExLGxbMl1dOlsxMCxsWzJdXTtyZXR1cm5bMCxbMCxkLGtdXTtjYXNlIDMwOmNhc2UgMzE6cmV0dXJuIFowKHgpLFswLFswLHIsWzEzLFswLHQ9PT0zMT8xOjAsazAoWzAsZV0sWzAsaHgoeCldLDApXV1dXTtjYXNlIDc0OmNhc2UgMTA1OnJldHVyblswLGEoQ0sseCldfWVsc2Ugc3dpdGNoKHRbMF0pe2Nhc2UgMDp2YXIgaD10WzJdLGc9SDAobG0seCx0WzFdLGgpO3JldHVyblswLFswLHIsWzE1LFswLGcsaCxrMChbMCxlXSxbMCxoeCh4KV0sMCldXV1dO2Nhc2UgMTp2YXIgQT10WzJdLE49SDAocG0seCx0WzFdLEEpO3JldHVyblswLFswLHIsWzE2LFswLE4sQSxrMChbMCxlXSxbMCxoeCh4KV0sMCldXV1dO2Nhc2UgMjp2YXIgQz10WzFdLE89Q1szXSxMPUNbMl0sTT1DWzFdO0NbNF0mJlp0KHgsODEpLFowKHgpO3ZhciBWPWswKFswLGVdLFswLGh4KHgpXSwwKSx6PXhbMjhdLFk9els2XSx0MD16WzddLGkwPTA7aWYoWSl7dmFyIGo9WVsxXTtpZih0WShqLEwpKXZhciBLPVsxOCxbMCxMLE0sWHgoaiksMCxPLFZdXTtlbHNlIGkwPTF9ZWxzZSBpMD0xO2lmKGkwKXt2YXIgSj0wO2lmKHQwKXt2YXIgUT10MFsxXTtpZih0WShRLEwpKXt2YXIgSz1bMTgsWzAsTCxNLFh4KFEpLDEsTyxWXV07Sj0xfX1pZighSil2YXIgSz1bMTIsWzAsTCxPLFZdXX1yZXR1cm5bMCxbMCxNLEtdXTtjYXNlIDM6dmFyIHgwPXAocVIseCx0WzFdKTtyZXR1cm5bMCxbMCx4MFsxXSxbMjkseDBbMl1dXV07Y2FzZSA0OmlmKCFQKHRbM10sQmgpJiZrcigxLHgpPT09NDApcmV0dXJuWzAsYShweFsyMl0seCldO2JyZWFrfWlmKG5zKHgpKXt2YXIgJD1wKHB4WzEzXSwwLHgpO3JldHVyblswLFswLCRbMV0sWzgsJF1dXX1TMSgwLHgpO3ZhciBmMD0wO3JldHVybiB0eXBlb2YgdCE9XCJudW1iZXJcIiYmdFswXT09PTcmJihaMCh4KSxmMD0xKSxbMCxbMCxyLFsxNCxrMChbMCxlXSxzYTAsMCldXV19KSxJMChBSyxmdW5jdGlvbih4KXtyZXR1cm4gbzIoeCxhKEdSLHgpKX0pLEkwKHFSLGZ1bmN0aW9uKHgscil7dmFyIGU9cls1XSx0PXJbMV0sdT1yWzNdLGk9clsyXSxmPXcwKHgpO3UwKHgsWzMscl0pO3ZhciBvPVswLHQsWzAsWzAsdSxpXSxlXV07aWYoZSl2YXIgbD0wLGQ9WzAsbywwXSxrPXQ7ZWxzZSBmb3IodmFyIGg9WzAsbywwXSxnPTA7Oyl7dmFyIEE9YShweFs3XSx4KSxOPVswLEEsZ10sQz1XKHgpLE89MDtpZih0eXBlb2YgQz09XCJudW1iZXJcIiYmQz09PTEpe0oxKHgsNCk7dmFyIEw9Vyh4KSxNPTA7aWYodHlwZW9mIEw9PVwibnVtYmVyXCJ8fExbMF0hPT0zKU09MTtlbHNle3ZhciBWPUxbMV0sej1WWzVdLFk9VlsxXSx0MD1WWzNdLGkwPVZbMl07WjAoeCksSzEoeCk7dmFyIGo9WzAsWzAsWSxbMCxbMCx0MCxpMF0sel1dLGhdO2lmKCF6KXt2YXIgaD1qLGc9Tjtjb250aW51ZX12YXIgSz1BeChOKSxKPVswLFksQXgoaiksS107Tz0xfWlmKE0pdGhyb3cgcTAoWzAsd3IsaWEwXSwxKX1pZighTyl7UzEoZmEwLHgpO3ZhciBRPVswLEFbMV0sY2EwXSx4MD1BeChOKSwkPUF4KFswLFEsaF0pLEo9WzAsQVsxXSwkLHgwXX12YXIgbD1KWzNdLGQ9SlsyXSxrPUpbMV07YnJlYWt9dmFyIGYwPWh4KHgpLHMwPXUxKHQsayk7cmV0dXJuWzAsczAsWzAsZCxsLGswKFswLGZdLFswLGYwXSwwKV1dfSksSTAoSFIsZnVuY3Rpb24oeCxyLGUsdCl7dmFyIHU9UDEoeClbMl0saT1wKHUsZSxmdW5jdGlvbihvLGwpe3JldHVybiBwKHF4KG8sbW4sMyksbyxsKX0pLGY9cChxUix4LHQpO3JldHVyblswLHUxKHIsZlsxXSksWzI4LFswLGksZiwwXV1dfSksSTAoUEssZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCksZT1sMCgwLGZ1bmN0aW9uKG8pe3UwKG8sNCk7dmFyIGw9UHgobyksZD1hKCR0LG8pLGs9VyhvKSxoPTA7aWYodHlwZW9mIGs9PVwibnVtYmVyXCIpaWYoaz09PTkpdmFyIGc9WzAsSDAoZG0sbyxsLFswLGQsMF0pXTtlbHNlIGlmKGs9PT04Nil2YXIgZz1bMSxbMCxkLFF2KG8pLDBdXTtlbHNlIGg9MTtlbHNlIGg9MTtpZihoKXZhciBnPVswLGRdO3JldHVybiB1MChvLDUpLGd9LHgpLHQ9ZVsyXSx1PWVbMV0saT1oeCh4KSxmPXRbMF09PT0wP3RbMV06WzAsdSxbMzEsdFsxXV1dO3JldHVybiBIMChiUixbMCxyXSxbMCxpXSxmKX0pLEkwKGJSLGZ1bmN0aW9uKHgscixlKXt2YXIgdD1lWzJdLHU9ZVsxXSxpPXg/eFsxXTowLGY9cj9yWzFdOjA7ZnVuY3Rpb24gbyhicil7cmV0dXJuIE4yKGJyLGswKFswLGldLFswLGZdLDApKX1mdW5jdGlvbiBsKGJyKXtyZXR1cm4gWU8oYnIsazAoWzAsaV0sWzAsZl0sMCkpfXN3aXRjaCh0WzBdKXtjYXNlIDA6dmFyIGQ9dFsxXSxrPWwoZFsyXSksbHg9WzAsWzAsZFsxXSxrXV07YnJlYWs7Y2FzZSAxOnZhciBoPXRbMV0sZz1oWzEwXSxBPW8oaFs5XSksbHg9WzEsWzAsaFsxXSxoWzJdLGhbM10saFs0XSxoWzVdLGhbNl0saFs3XSxoWzhdLEEsZ11dO2JyZWFrO2Nhc2UgMjp2YXIgTj10WzFdLEM9byhOWzRdKSxseD1bMixbMCxOWzFdLE5bMl0sTlszXSxDXV07YnJlYWs7Y2FzZSAzOnZhciBPPXRbMV0sTD1vKE9bNF0pLGx4PVszLFswLE9bMV0sT1syXSxPWzNdLExdXTticmVhaztjYXNlIDQ6dmFyIE09dFsxXSxWPW8oTVs0XSksbHg9WzQsWzAsTVsxXSxNWzJdLE1bM10sVl1dO2JyZWFrO2Nhc2UgNTp2YXIgej10WzFdLFk9byh6WzddKSxseD1bNSxbMCx6WzFdLHpbMl0selszXSx6WzRdLHpbNV0sels2XSxZXV07YnJlYWs7Y2FzZSA2OnZhciB0MD10WzFdLGkwPW8odDBbNF0pLGx4PVs2LFswLHQwWzFdLHQwWzJdLHQwWzNdLGkwXV07YnJlYWs7Y2FzZSA3OnZhciBqPXRbMV0sSz1qWzEwXSxKPW8oals5XSksbHg9WzcsWzAsalsxXSxqWzJdLGpbM10sals0XSxqWzVdLGpbNl0sals3XSxqWzhdLEosS11dO2JyZWFrO2Nhc2UgODp2YXIgUT10WzFdLHgwPVFbMl0sJD1RWzFdLGYwPW8oeDBbMl0pLGx4PVs4LFswLCQsWzAseDBbMV0sZjBdXV07YnJlYWs7Y2FzZSA5OnZhciBzMD10WzFdLHYwPW8oczBbMl0pLGx4PVs5LFswLHMwWzFdLHYwXV07YnJlYWs7Y2FzZSAxMDp2YXIgbzA9dFsxXSxjMD1vKG8wWzRdKSxseD1bMTAsWzAsbzBbMV0sbzBbMl0sbzBbM10sYzBdXTticmVhaztjYXNlIDExOnZhciBkMD10WzFdLEUwPW8oZDBbNF0pLGx4PVsxMSxbMCxkMFsxXSxkMFsyXSxkMFszXSxFMF1dO2JyZWFrO2Nhc2UgMTI6dmFyIEwwPXRbMV0sWDA9byhMMFszXSksbHg9WzEyLFswLEwwWzFdLEwwWzJdLFgwXV07YnJlYWs7Y2FzZSAxMzp2YXIgeHg9dFsxXSxnMD1vKHh4WzJdKSxseD1bMTMsWzAseHhbMV0sZzBdXTticmVhaztjYXNlIDE0OnZhciBseD1bMTQsbyh0WzFdKV07YnJlYWs7Y2FzZSAxNTp2YXIgJDA9dFsxXSxuMD1vKCQwWzNdKSxseD1bMTUsWzAsJDBbMV0sJDBbMl0sbjBdXTticmVhaztjYXNlIDE2OnZhciBpeD10WzFdLHJ4PW8oaXhbM10pLGx4PVsxNixbMCxpeFsxXSxpeFsyXSxyeF1dO2JyZWFrO2Nhc2UgMTc6dmFyIGR4PXRbMV0sYXg9byhkeFs0XSksbHg9WzE3LFswLGR4WzFdLGR4WzJdLGR4WzNdLGF4XV07YnJlYWs7Y2FzZSAxODp2YXIgU3g9dFsxXSxEMD1vKFN4WzZdKSxseD1bMTgsWzAsU3hbMV0sU3hbMl0sU3hbM10sU3hbNF0sU3hbNV0sRDBdXTticmVhaztjYXNlIDE5OnZhciBOMD10WzFdLEEwPW8oTjBbNF0pLGx4PVsxOSxbMCxOMFsxXSxOMFsyXSxOMFszXSxBMF1dO2JyZWFrO2Nhc2UgMjA6dmFyIFkwPXRbMV0sQzA9byhZMFszXSksbHg9WzIwLFswLFkwWzFdLFkwWzJdLEMwXV07YnJlYWs7Y2FzZSAyMTp2YXIgRj10WzFdLEg9byhGWzNdKSxseD1bMjEsWzAsRlsxXSxGWzJdLEhdXTticmVhaztjYXNlIDIyOnZhciBCPXRbMV0sYTA9byhCWzRdKSxseD1bMjIsWzAsQlsxXSxCWzJdLEJbM10sYTBdXTticmVhaztjYXNlIDIzOnZhciBtMD10WzFdLFAwPWwobTBbMl0pLGx4PVsyMyxbMCxtMFsxXSxQMF1dO2JyZWFrO2Nhc2UgMjQ6dmFyIEQ9dFsxXSxPMD1EWzFdLEswPURbM10sajA9RFsyXSxveD1vKE8wWzRdKSxseD1bMjQsWzAsWzAsTzBbMV0sTzBbMl0sTzBbM10sb3hdLGowLEswXV07YnJlYWs7Y2FzZSAyNTp2YXIgYjA9dFsxXSxfeD1iMFsxXSxCMD1iMFszXSxUPWIwWzJdLFg9byhfeFszXSksbHg9WzI1LFswLFswLF94WzFdLF94WzJdLFhdLFQsQjBdXTticmVhaztjYXNlIDI2OnZhciBGMD10WzFdLHN4PW8oRjBbMl0pLGx4PVsyNixbMCxGMFsxXSxzeF1dO2JyZWFrO2Nhc2UgMjc6dmFyIGx4PVsyNyxbMCxvKHRbMV1bMV0pXV07YnJlYWs7Y2FzZSAyODp2YXIgZXg9dFsxXSxVMD1vKGV4WzNdKSxseD1bMjgsWzAsZXhbMV0sZXhbMl0sVTBdXTticmVhaztjYXNlIDI5OnZhciBOeD10WzFdLG14PW8oTnhbM10pLGx4PVsyOSxbMCxOeFsxXSxOeFsyXSxteF1dO2JyZWFrO2Nhc2UgMzA6dmFyIGx4PVszMCxbMCxvKHRbMV1bMV0pXV07YnJlYWs7Y2FzZSAzMTp2YXIgQng9dFsxXSxHeD1vKEJ4WzNdKSxseD1bMzEsWzAsQnhbMV0sQnhbMl0sR3hdXTticmVhaztjYXNlIDMyOnZhciBseD10O2JyZWFrO2Nhc2UgMzM6dmFyIEowPXRbMV0sYng9byhKMFszXSksbHg9WzMzLFswLEowWzFdLEowWzJdLGJ4XV07YnJlYWs7Y2FzZSAzNDp2YXIgSng9dFsxXSxXMD1vKEp4WzRdKSxseD1bMzQsWzAsSnhbMV0sSnhbMl0sSnhbM10sVzBdXTticmVhaztkZWZhdWx0OnZhciBucj10WzFdLFYwPW5yWzRdLFNyPW5yWzNdLFVyPW8obnJbMl0pLGx4PVszNSxbMCxuclsxXSxVcixTcixWMF1dfXJldHVyblswLHUsbHhdfSksSTAoTkssZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7dTAoeCw2KTtmb3IodmFyIGU9WzAsMCx3bl07Oyl7dmFyIHQ9ZVsyXSx1PWVbMV0saT1XKHgpO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiKXt2YXIgZj0wO2lmKDEzPD1pKVJyPT09aSYmKGY9MSk7ZWxzZSBpZig3PD1pKXN3aXRjaChpLTd8MCl7Y2FzZSAwOmY9MTticmVhaztjYXNlIDI6dmFyIG89UHgoeCk7WjAoeCk7dmFyIGU9WzAsWzAsWzIsb10sdV0sdF07Y29udGludWU7Y2FzZSA1OnZhciBsPXcwKHgpLGQ9bDAoMCxmdW5jdGlvbihKKXtaMChKKTt2YXIgUT1hKHMzLEopO3JldHVybiBRWzBdPT09MD9bMCxRWzFdLHduXTpbMCxRWzFdLFFbMl1dfSx4KSxrPWRbMl0saD1rWzJdLGc9ZFsxXSxBPWtbMV0sTj1bMSxbMCxnLFswLEEsazAoWzAsbF0sMCwwKV1dXSxDPVcoeCk9PT03PzE6MCxPPTA7aWYoIUMmJmtyKDEseCk9PT03KXt2YXIgTD1bMCxoWzFdLFswLFswLGcsMjBdLGhbMl1dXTtPPTF9aWYoIU8pdmFyIEw9aDsxLUMmJnUwKHgsOSk7dmFyIGU9WzAsWzAsTix1XSxqUihMLHQpXTtjb250aW51ZX1pZihmKXt2YXIgTT15Syh0KSxWPUF4KHUpLHo9dzAoeCk7cmV0dXJuIHUwKHgsNyksWzAsWzAsVixqMShbMCxyXSxbMCxoeCh4KV0seiwwKV0sTV19fXZhciBZPWEoczMseCk7aWYoWVswXT09PTApdmFyIHQwPXduLGkwPVlbMV07ZWxzZSB2YXIgdDA9WVsyXSxpMD1ZWzFdO1coeCkhPT03JiZ1MCh4LDkpO3ZhciBlPVswLFswLFswLGkwXSx1XSxqUih0MCx0KV19fSksSTAoQ0ssZnVuY3Rpb24oeCl7SjEoeCw1KTt2YXIgcj1QeCh4KSxlPXcwKHgpLHQ9Vyh4KSx1PTA7aWYodHlwZW9mIHQhPVwibnVtYmVyXCImJnRbMF09PT01KXt2YXIgaT10WzNdLGY9dFsyXTtaMCh4KTt2YXIgbz1oeCh4KSxsPW8sZD1pLGs9ZixoPUZ4KHJhMCxGeChmLEZ4KHhhMCxpKSkpO3U9MX1pZighdSl7UzEoZWEwLHgpO3ZhciBsPTAsZD10YTAsaz1uYTAsaD11YTB9SzEoeCk7dmFyIGc9WnIoWHgoZCkpLEE9WHgoZCktMXwwLE49MDtpZihBPj0wKWZvcih2YXIgQz1OOzspe3ZhciBPPWZ4KGQsQyksTD1PLTEwMHwwLE09MDtpZigyMT49TD4+PjApc3dpdGNoKEwpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA1OmNhc2UgOTpjYXNlIDE1OmNhc2UgMTc6Y2FzZSAyMTpzdChnLE8pLE09MTticmVha312YXIgVj1DKzF8MDtpZihBIT09Qyl7dmFyIEM9Vjtjb250aW51ZX1icmVha312YXIgej1VMShnKTtyZXR1cm4gUCh6LGQpJiZWeCh4LFsxOCxkXSksWzAscixbMTcsWzAsayx6LGgsazAoWzAsZV0sWzAsbF0sMCldXV19KTt2YXIgVVMwPWZ1bmN0aW9uKHgpe3JldHVybiBmdW5jdGlvbihyKXtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil7dmFyIGU9MDtpZig2Njw9cil7dmFyIHQ9citRRHwwO2lmKDQ5PHQ+Pj4wKWU9MTtlbHNle3ZhciB1PXQtMTV8MDtpZig5Pj11Pj4+MClzd2l0Y2godSl7Y2FzZSAwOmNhc2UgMTpjYXNlIDM6Y2FzZSA5OmU9MTticmVha319fWVsc2UgODw9cj9yPT09NjAmJihlPTEpOjY8PXImJihlPTEpO2lmKGUpcmV0dXJuIDB9dGhyb3cgcTAodXMsMSl9fSxqUzA9ZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmIXIpe3ZhciBlPXAocHhbMTZdLDEseCk7cmV0dXJuWzAsWzAsZVsxXV0sZVsyXV19cmV0dXJuWzAsWzEsYShweFsxMF0seCldLDBdfTtJMCh4TCxmdW5jdGlvbih4KXt2YXIgcj1ZeShVUzAseCksZT1QeChyKTtpZihrcigxLHIpPT09MTEpdmFyIHU9MCxpPTA7ZWxzZSB2YXIgdD1vbShyKSx1PXRbMl0saT10WzFdO3ZhciBmPWl8fHJbMTldLG89Yk8oZixyKSxsPW9bMThdLGQ9bDAoMCxmdW5jdGlvbihjMCl7dmFyIGQwPWVlKGMwLFplKGMwKSk7aWYobnMoYzApJiZkMD09PTApe3ZhciBFMD1wKHB4WzEzXSxidjAsYzApLEwwPUUwWzFdLFgwPVswLEwwLFswLFswLEwwLFsyLFswLEUwLFswLEdzKGMwKV0sMF1dXSwwXV07cmV0dXJuWzAsZDAsWzAsTDAsWzAsMCxbMCxYMCwwXSwwLDBdXSxbMCxbMCxMMFsxXSxMMFszXSxMMFszXV1dLDBdfXZhciB4eD1hKGYzKGYsbCksYzApO2NLKGMwLHh4KTt2YXIgZzA9SVIoS3YoMSxjMCkpO3JldHVyblswLGQwLHh4LGcwWzFdLGcwWzJdXX0sbyksaz1kWzJdLGg9a1syXSxnPWhbMl0sQT0wLE49a1s0XSxDPWtbM10sTz1rWzFdLEw9ZFsxXTtpZighZ1sxXSl7dmFyIE09MCxWPWdbMl07aWYoKGdbM118fCFWKSYmKE09MSksTSl7dmFyIHo9YXoobyk7QT0xfX1pZighQSl2YXIgej1vO3ZhciBZPWhbMl0sdDA9WVsxXTtpZih0MCl7dmFyIGkwPWhbMV07bngoeixbMCx0MFsxXVsxXSw5MV0pO3ZhciBqPVswLGkwLFswLDAsWVsyXSxZWzNdLFlbNF1dXX1lbHNlIHZhciBqPWg7dmFyIEs9WnYoaiksSj1yZSh6KSxRPUomJihXKHopPT09MTE/MTowKTtRJiZWeCh6LDYwKSx1MCh6LDExKTt2YXIgeDA9bHooYXooeiksaSwwLEspLCQ9bDAoMCxqUzAseDApLGYwPSRbMl0sczA9ZjBbMV0sdjA9JFsxXTtpMyh4MCxmMFsyXSwwLGopO3ZhciBvMD11MShlLHYwKTtyZXR1cm5bMCxbMCxvMCxbMSxbMCwwLGosczAsaSwwLE4sQyxPLGswKFswLHVdLDAsMCksTF1dXV19KSxJMChkbSxmdW5jdGlvbih4LHIsZSl7cmV0dXJuIGwwKFswLHJdLGZ1bmN0aW9uKHQpe2Zvcih2YXIgdT1lOzspe3ZhciBpPVcodCk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCImJmk9PT05KXtaMCh0KTt2YXIgdT1bMCxhKCR0LHQpLHVdO2NvbnRpbnVlfXJldHVyblsyNixbMCxBeCh1KSwwXV19fSx4KX0pO3ZhciBKUzA9ZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7WjAoeCk7dmFyIGU9azAoWzAscl0sMCwwKSx0PWEodm0seCksdT1yZSh4KT9mNih4KTpaeSh4KSxpPXVbMl07cmV0dXJuWzAscChpLHQsZnVuY3Rpb24oZixvKXtyZXR1cm4gcChxeChmLG1uLDYzKSxmLG8pfSksZV19LGlMPWZ1bmN0aW9uKHgpe2lmKCF4WzI4XVszXSlyZXR1cm4gMDtmb3IodmFyIHI9MDs7KXt2YXIgZT1XKHgpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiJiZlPT09MTMpe3ZhciByPVswLGwwKDAsSlMwLHgpLHJdO2NvbnRpbnVlfXJldHVybiBBeChyKX19LFZvPWZ1bmN0aW9uKHgscil7dmFyIGU9eD94WzFdOjAsdD13MChyKSx1PVcocik7aWYodHlwZW9mIHU9PVwibnVtYmVyXCIpc3dpdGNoKHUpe2Nhc2UgNjp2YXIgaT1sMCgwLGZ1bmN0aW9uKHYwKXt2YXIgbzA9dzAodjApO3UwKHYwLDYpO3ZhciBjMD1lNigwLHYwKSxkMD1hKHB4WzEwXSxjMCk7cmV0dXJuIHUwKHYwLDcpLFswLGQwLGswKFswLG8wXSxbMCxoeCh2MCldLDApXX0sciksZj1pWzFdO3JldHVyblswLGYsWzUsWzAsZixpWzJdXV1dO2Nhc2UgMTQ6aWYoIWUpe3ZhciBvPWwwKDAsZnVuY3Rpb24odjApe3JldHVybiBaMCh2MCksWzMsVDIodjApXX0sciksbD1vWzFdLGQ9b1syXTtyZXR1cm4gbngocixbMCxsLDY4XSksWzAsbCxkXX12YXIgaz1QeihyKSxoPXJbMzBdWzFdLGc9a1syXVsxXSxBPWtbMV07aWYoaCl7dmFyIE49aFsxXSxDPWhbMl0sTz1OWzJdLEw9WzAsWzAscCh3Mls0XSxnLE5bMV0pLE9dLENdO3JbMzBdWzFdPUx9ZWxzZSBPeChhczApO3JldHVyblswLEEsWzQsa11dfWVsc2Ugc3dpdGNoKHVbMF0pe2Nhc2UgMDp2YXIgTT11WzJdLFY9dVsxXSx6PVB4KHIpLFk9SDAobG0scixWLE0pO3JldHVyblswLHosWzEsWzAseixbMCxZLE0sazAoWzAsdF0sWzAsaHgocildLDApXV1dXTtjYXNlIDE6dmFyIHQwPXVbMl0saTA9dVsxXSxqPVB4KHIpLEs9SDAocG0scixpMCx0MCk7cmV0dXJuWzAsaixbMixbMCxqLFswLEssdDAsazAoWzAsdF0sWzAsaHgocildLDApXV1dXTtjYXNlIDI6dmFyIEo9dVsxXSxRPUpbNF0seDA9SlszXSwkPUpbMl0sZjA9SlsxXTtyZXR1cm4gUSYmWnQociw4MSksdTAocixbMixbMCxmMCwkLHgwLFFdXSksWzAsZjAsWzAsWzAsZjAsWzAsJCx4MCxrMChbMCx0XSxbMCxoeChyKV0sMCldXV1dfXZhciBzMD1UMihyKTtyZXR1cm5bMCxzMFsxXSxbMyxzMF1dfSx5bT1mdW5jdGlvbih4LHIsZSl7dmFyIHQ9YzMoeCksdT10WzFdLGk9dFsyXSxmPVZvKFswLHJdLHgpLG89ZlsxXSxsPTAsZD1Bbih4LGZbMl0pO3JldHVyblswLGQsbDAoMCxmdW5jdGlvbihrKXt2YXIgaD16digxLGspLGc9bDAoMCxmdW5jdGlvbih6KXt2YXIgWT1hKGYzKDAsMCkseiksdDA9MCxpMD1XKHopPT09ODY/WTpjNih6LFkpO2lmKGUpe3ZhciBqPWkwWzJdLEs9MDtpZihqWzFdKW54KHosWzAsbywyOF0pLEs9MTtlbHNle3ZhciBKPTA7alsyXXx8alszXT9KPTE6Sz0xLEomJm54KHosWzAsbywyN10pfX1lbHNle3ZhciBRPWkwWzJdO2lmKFFbMV0pbngoeixbMCxvLDcxXSk7ZWxzZXt2YXIgeDA9UVsyXSwkPTA7eDAmJiF4MFsyXSYmIVFbM10mJigkPTEpLCR8fChRWzNdP254KHosWzAsbyw3MF0pOm54KHosWzAsbyw3MF0pKX19cmV0dXJuWzAsdDAsaTAsdDMoeixDUih6KSldfSxoKSxBPWdbMl0sTj1BWzJdLEM9QVszXSxPPUFbMV0sTD1nWzFdLE09ZDYoaCxsLHUsMCxadihOKSksVj1NWzFdO3JldHVybiBpMyhoLE1bMl0sMCxOKSxbMCwwLE4sVixsLHUsMCxDLE8sazAoWzAsaV0sMCwwKSxMXX0seCldfSxNSz1mdW5jdGlvbih4KXt2YXIgcj1hKHMzLHgpO3JldHVybiByWzBdPT09MD9bMCxyWzFdLHduXTpbMCxyWzFdLHJbMl1dfSxESz1mdW5jdGlvbih4LHIpe3N3aXRjaChyWzBdKXtjYXNlIDA6dmFyIGU9clsxXSx0PWVbMV0sdT1lWzJdO3JldHVybiBueCh4LFswLHQsNTNdKSxbMCx0LFsxMix1XV07Y2FzZSAxOnZhciBpPXJbMV0sZj1pWzFdLG89aVsyXTtyZXR1cm4gbngoeCxbMCxmLDUzXSksWzAsZixbMTUsb11dO2Nhc2UgMjp2YXIgbD1yWzFdLGQ9bFsxXSxrPWxbMl07cmV0dXJuIG54KHgsWzAsZCw1M10pLFswLGQsWzE2LGtdXTtjYXNlIDM6dmFyIGg9clsxXSxnPWhbMl1bMV0sQT1oWzFdO3JldHVybiBWeShnKT9ueCh4LFswLEEsaXRdKTpyMyhnKSYmYXQoeCxbMCxBLDg1XSksWzAsQSxbOCxoXV07Y2FzZSA0OnJldHVybiBPeChWMzApO2RlZmF1bHQ6dmFyIE49clsxXVsyXVsxXTtyZXR1cm4gbngoeCxbMCxOWzFdLDhdKSxOfX0sVUs9ZnVuY3Rpb24oeCxyLGUpe2Z1bmN0aW9uIHQoaSl7dmFyIGY9enYoMSxpKSxvPWwwKDAsZnVuY3Rpb24oQyl7dmFyIE89ZWUoQyxaZShDKSksTD1hKGYzKHgsciksQyksTT1XKEMpPT09ODY/TDpjNihDLEwpO3JldHVyblswLE8sTSx0MyhDLENSKEMpKV19LGYpLGw9b1syXSxkPWxbMl0saz1sWzNdLGg9bFsxXSxnPW9bMV0sQT1kNihmLHgsciwwLFp2KGQpKSxOPUFbMV07cmV0dXJuIGkzKGYsQVsyXSwwLGQpLFswLDAsZCxOLHgsciwwLGssaCxrMChbMCxlXSwwLDApLGddfXZhciB1PTA7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBsMCh1LHQsaSl9fSxqSz1mdW5jdGlvbih4KXtyZXR1cm4gdTAoeCw4NiksTUsoeCl9LGZMPWZ1bmN0aW9uKHgscixlLHQsdSxpKXt2YXIgZj1sMChbMCxyXSxmdW5jdGlvbihsKXtpZighdCYmIXUpe3ZhciBkPVcobCk7aWYodHlwZW9mIGQ9PVwibnVtYmVyXCIpe3ZhciBrPTA7aWYoODY8PWQpe2lmKGQ9PT05OClrPTE7ZWxzZSBpZig4Nz5kKXt2YXIgaD1qSyhsKTtyZXR1cm5bMCxbMCxlLGhbMV0sMF0saFsyXV19fWVsc2V7aWYoZD09PTgyKXtpZihlWzBdPT09Myl2YXIgZz1lWzFdLEE9UHgobCksTj1mdW5jdGlvbihWKXt2YXIgej13MChWKTt1MChWLDgyKTt2YXIgWT1oeChWKSx0MD1wKHB4WzE5XSxWLFswLGdbMV0sWzgsZ11dKSxpMD1hKHB4WzEwXSxWKTtyZXR1cm5bMixbMCwwLHQwLGkwLGswKFswLHpdLFswLFldLDApXV19LEM9bDAoWzAsZ1sxXV0sTixsKSxPPVswLEMsWzAsWzAsWzAsQSxbMjQsbHkoWTMwKV1dLDBdLDBdXTtlbHNlIHZhciBPPWpLKGwpO3JldHVyblswLFswLGUsT1sxXSwxXSxPWzJdXX1pZigxMD5kKXN3aXRjaChkKXtjYXNlIDQ6az0xO2JyZWFrO2Nhc2UgMTpjYXNlIDk6cmV0dXJuWzAsWzAsZSxESyhsLGUpLDFdLHduXX19aWYoayl7dmFyIEw9QW4obCxlKTtyZXR1cm5bMCxbMSxMLGEoVUsodCx1LGkpLGwpXSx3bl19fXJldHVyblswLFswLGUsREsobCxlKSwxXSx3bl19dmFyIE09QW4obCxlKTtyZXR1cm5bMCxbMSxNLGEoVUsodCx1LGkpLGwpXSx3bl19LHgpLG89ZlsyXTtyZXR1cm5bMCxbMCxbMCxmWzFdLG9bMV1dXSxvWzJdXX0sWFMwPWZ1bmN0aW9uKHgpe2lmKFcoeCk9PT0xMil7dmFyIHI9dzAoeCksZT1sMCgwLGZ1bmN0aW9uKEwwKXtyZXR1cm4gdTAoTDAsMTIpLE1LKEwwKX0seCksdD1lWzJdLHU9dFsyXSxpPXRbMV0sZj1lWzFdO3JldHVyblswLFsxLFswLGYsWzAsaSxrMChbMCxyXSwwLDApXV1dLHVdfXZhciBvPVB4KHgpLGw9a3IoMSx4KSxkPTA7aWYodHlwZW9mIGw9PVwibnVtYmVyXCIpe3ZhciBrPTA7aWYoODY8PWwpbCE9PTk4JiY4Nzw9bCYmKGs9MSk7ZWxzZSBpZihsIT09ODIpaWYoMTA8PWwpaz0xO2Vsc2Ugc3dpdGNoKGwpe2Nhc2UgMTpjYXNlIDQ6Y2FzZSA5OmJyZWFrO2RlZmF1bHQ6az0xfWlmKCFrKXt2YXIgZz0wLEE9MDtkPTF9fWlmKCFkKXZhciBoPW9tKHgpLGc9aFsyXSxBPWhbMV07dmFyIE49YzMoeCksQz1OWzFdLE89UXgoZyxOWzJdKSxMPVcoeCk7aWYoIUEmJiFDJiZ0eXBlb2YgTCE9XCJudW1iZXJcIiYmTFswXT09PTQpe3ZhciBNPUxbM107aWYoIVAoTSxndikpe3ZhciBWPXcwKHgpLHo9Vm8oMCx4KVsyXSxZPVcoeCk7aWYodHlwZW9mIFk9PVwibnVtYmVyXCIpe3ZhciB0MD0wO2lmKDg2PD1ZKVkhPT05OCYmODc8PVkmJih0MD0xKTtlbHNlIGlmKFkhPT04MilpZigxMDw9WSl0MD0xO2Vsc2Ugc3dpdGNoKFkpe2Nhc2UgMTpjYXNlIDQ6Y2FzZSA5OmJyZWFrO2RlZmF1bHQ6dDA9MX1pZighdDApcmV0dXJuIGZMKHgsbyx6LDAsMCwwKX1Bbih4LHopO3ZhciBpMD1sMChbMCxvXSxmdW5jdGlvbihMMCl7cmV0dXJuIHltKEwwLDAsMSl9LHgpLGo9aTBbMl0sSz1qWzJdLEo9alsxXSxRPWkwWzFdO3JldHVyblswLFswLFswLFEsWzIsSixLLGswKFswLFZdLDAsMCldXV0sd25dfWlmKCFQKE0sUmEpKXt2YXIgeDA9dzAoeCksJD1WbygwLHgpWzJdLGYwPVcoeCk7aWYodHlwZW9mIGYwPT1cIm51bWJlclwiKXt2YXIgczA9MDtpZig4Njw9ZjApZjAhPT05OCYmODc8PWYwJiYoczA9MSk7ZWxzZSBpZihmMCE9PTgyKWlmKDEwPD1mMClzMD0xO2Vsc2Ugc3dpdGNoKGYwKXtjYXNlIDE6Y2FzZSA0OmNhc2UgOTpicmVhaztkZWZhdWx0OnMwPTF9aWYoIXMwKXJldHVybiBmTCh4LG8sJCwwLDAsMCl9QW4oeCwkKTt2YXIgdjA9bDAoWzAsb10sZnVuY3Rpb24oTDApe3JldHVybiB5bShMMCwwLDApfSx4KSxvMD12MFsyXSxjMD1vMFsyXSxkMD1vMFsxXSxFMD12MFsxXTtyZXR1cm5bMCxbMCxbMCxFMCxbMyxkMCxjMCxrMChbMCx4MF0sMCwwKV1dXSx3bl19fXJldHVybiBmTCh4LG8sVm8oMCx4KVsyXSxBLEMsTyl9LFlTMD1mdW5jdGlvbih4KXt2YXIgcj1sMCgwLGZ1bmN0aW9uKHQpe3ZhciB1PXcwKHQpO3UwKHQsMCk7Zm9yKHZhciBpPTAsZj1bMCwwLHduXTs7KXt2YXIgbz1mWzJdLGw9ZlsxXSxkPVcodCk7aWYodHlwZW9mIGQ9PVwibnVtYmVyXCIpe3ZhciBrPTA7aWYoZCE9PTEmJlJyIT09ZCYmKGs9MSksIWspe3ZhciBoPWk/WzAsb1sxXSxbMCxbMCxpWzFdLDk1XSxvWzJdXV06byxnPXlLKGgpLEE9QXgobCksTj13MCh0KTtyZXR1cm4gdTAodCwxKSxbMCxbMCxBLGoxKFswLHVdLFswLGh4KHQpXSxOLDApXSxnXX19dmFyIEM9WFMwKHQpLE89Q1sxXSxMPTAsTT1DWzJdO2lmKE9bMF09PT0xJiZXKHQpPT09OSl7dmFyIFY9WzAsUHgodCldO0w9MX1pZighTCl2YXIgVj0wO3ZhciB6PWpSKE0sbyksWT1XKHQpLHQwPTA7aWYodHlwZW9mIFk9PVwibnVtYmVyXCIpe3ZhciBpMD1ZLTJ8MCxqPTA7aWYoVjE8aTA+Pj4wP0wyPj1pMCsxPj4+MCYmKGo9MSk6aTA9PT03JiYoWjAodCksaj0xKSxqKXt2YXIgSz16O3QwPTF9fWlmKCF0MCl7dmFyIEo9Wk8odXMwLDkpLFE9a3ooWzAsSl0sVyh0KSkseDA9WzAsUHgodCksUV07bzEodCw4KTt2YXIgSz1bMCxbMCx4MCx6WzFdXSxbMCx4MCx6WzJdXV19dmFyIGk9VixmPVswLFswLE8sbF0sS119fSx4KSxlPXJbMl07cmV0dXJuWzAsclsxXSxlWzFdLGVbMl1dfSxtbT1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT1lWzJdWzFdLGk9ZVsxXTtpZihBcih1LFR2KSlyZXR1cm4gbngoeCxbMCxpLFsxNSx1LDAsRGo9PT10PzE6MCwxXV0pLHI7Zm9yKHZhciBmPXI7Oyl7aWYodHlwZW9mIGY9PVwibnVtYmVyXCIpdmFyIGw9MDtlbHNlIGlmKGZbMF09PT0wKXZhciBvPWZbMl0sbD1UeCh1LGZbMV0pPT09MD9bMCxvXTowO2Vsc2V7dmFyIGQ9VHgodSxmWzJdKSxrPWZbNV0saD1mWzRdLGc9ZlszXTtpZihkIT09MCl7dmFyIEE9MDw9ZD9rOmgsZj1BO2NvbnRpbnVlfXZhciBsPVswLGddfWlmKCFsKXJldHVybiBxeSh1LHQscik7dmFyIE49bFsxXSxDPTA7cmV0dXJuIEFQPT09dD9YQz09PU4mJihDPTEpOlhDPT09dCYmQVA9PT1OJiYoQz0xKSxDfHxueCh4LFswLGksWzEsdV1dKSxxeSh1LEpVLHIpfX0sSks9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gbDAoMCxmdW5jdGlvbihlKXt2YXIgdD1yP3cwKGUpOjA7dTAoZSw1Mik7Zm9yKHZhciB1PTA7Oyl7dmFyIGk9WzAsbDAoMCxmdW5jdGlvbihsKXt2YXIgZD1pcyhsKTtpZihXKGwpPT09OTgpdmFyIGs9UDEobClbMl0saD1wKGssZCxmdW5jdGlvbihnLEEpe3JldHVybiBwKHF4KGcsUGEsNjQpLGcsQSl9KTtlbHNlIHZhciBoPWQ7cmV0dXJuWzAsaCxpSyhsKV19LGUpLHVdLGY9VyhlKTtpZih0eXBlb2YgZj09XCJudW1iZXJcIiYmZj09PTkpe3UwKGUsOSk7dmFyIHU9aTtjb250aW51ZX12YXIgbz1BeChpKTtyZXR1cm5bMCxvLGswKFswLHRdLDAsMCldfX0seCl9LGNMPWZ1bmN0aW9uKHgpe3N3aXRjaCh4WzBdKXtjYXNlIDA6Y2FzZSAzOnZhciByPXhbMV07cmV0dXJuWzAsWzAsclsxXSxyWzJdWzFdXV07ZGVmYXVsdDpyZXR1cm4gMH19LHNMPWZ1bmN0aW9uKHgscil7cmV0dXJuIHI/bngoeCxbMCxyWzFdWzFdLEwyXSk6MH0sb0w9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gcj9ueCh4LFswLHJbMV0sMTNdKTowfSxYSz1mdW5jdGlvbih4LHIsZSx0LHUsaSxmLG8pe3ZhciBsPWwwKFswLHJdLGZ1bmN0aW9uKEMpe3ZhciBPPU5SKEMpLEw9VyhDKTtpZihpKXt2YXIgTT0wO2lmKHR5cGVvZiBMPT1cIm51bWJlclwiJiZMPT09ODIpe1Z4KEMsMTQpLFowKEMpO3ZhciBWPTB9ZWxzZSBNPTE7aWYoTSl2YXIgVj0wfWVsc2V7dmFyIHo9MDtpZih0eXBlb2YgTD09XCJudW1iZXJcIiYmTD09PTgyKXtaMChDKTt2YXIgWT16digxLEMpLFY9WzAsYShweFs3XSxZKV07ej0xfWlmKCF6KXZhciBWPTF9dmFyIHQwPVcoQyksaTA9MDtpZih0eXBlb2YgdDA9PVwibnVtYmVyXCImJjk+dDApc3dpdGNoKHQwKXtjYXNlIDg6WjAoQyk7dmFyIGo9VyhDKSxLPTA7aWYodHlwZW9mIGo9PVwibnVtYmVyXCIpe3ZhciBKPTA7aWYoaj09PTF8fFJyPT09aj9KPTE6Sz0xLEopdmFyIFE9aHgoQyl9ZWxzZSBLPTE7aWYoSyl2YXIgUT1yZShDKT9KbyhDKTowO3ZhciB4MD1bMCx0LE8sVixRXTtpMD0xO2JyZWFrO2Nhc2UgNDpjYXNlIDY6UzEoMCxDKTt2YXIgeDA9WzAsdCxPLFYsMF07aTA9MTticmVha31pZighaTApe3ZhciAkPVcoQyksZjA9MDtpZih0eXBlb2YgJD09XCJudW1iZXJcIil7dmFyIHMwPTA7aWYoJD09PTF8fFJyPT09JD9zMD0xOmYwPTEsczApdmFyIHYwPVswLDAsZnVuY3Rpb24oYXgsU3gpe3JldHVybiBheH1dfWVsc2UgZjA9MTtpZihmMCl2YXIgdjA9cmUoQyk/ZjYoQyk6WnkoQyk7aWYodHlwZW9mIFY9PVwibnVtYmVyXCIpaWYoT1swXT09PTApdmFyIG8wPWZ1bmN0aW9uKGR4LGF4KXtyZXR1cm4gcChxeChkeCx4RCw2NyksZHgsYXgpfSxYMD1WLHh4PU8sZzA9cCh2MFsyXSx0LG8wKTtlbHNlIHZhciBjMD1PWzFdLGQwPWZ1bmN0aW9uKGR4LGF4KXtyZXR1cm4gcChxeChkeCxqQyw2OCksZHgsYXgpfSxYMD1WLHh4PVsxLHAodjBbMl0sYzAsZDApXSxnMD10O2Vsc2UgdmFyIEUwPVZbMV0sTDA9ZnVuY3Rpb24oZHgsYXgpe3JldHVybiBwKHF4KGR4LG1uLDY5KSxkeCxheCl9LFgwPVswLHAodjBbMl0sRTAsTDApXSx4eD1PLGcwPXQ7dmFyIHgwPVswLGcwLHh4LFgwLDBdfXZhciAkMD14MFszXSxuMD14MFsyXSxpeD14MFsxXTtyZXR1cm5bMCxpeCxuMCwkMCxrMChbMCxvXSxbMCx4MFs0XV0sMCldfSx4KSxkPWxbMl0saz1kWzRdLGg9ZFszXSxnPWRbMl0sQT1kWzFdLE49bFsxXTtyZXR1cm4gQVswXT09PTQ/WzIsWzAsTixbMCxBWzFdLGgsZyx1LGYsZSxrXV1dOlsxLFswLE4sWzAsQSxoLGcsdSxmLGUsa11dXX0sdkw9ZnVuY3Rpb24oeCxyLGUsdCx1LGksZixvLGwsZCl7Zm9yKDs7KXt2YXIgaz1XKHgpO2lmKHR5cGVvZiBrPT1cIm51bWJlclwiKXt2YXIgaD1rLTF8MCxnPTA7aWYoNzxoPj4+MCl7dmFyIEE9aC04MXwwO2lmKDQ+PUE+Pj4wKXN3aXRjaChBKXtjYXNlIDM6UzEoMCx4KSxaMCh4KTtjb250aW51ZTtjYXNlIDA6Y2FzZSA0Omc9MTticmVha319ZWxzZSA1PGgtMT4+PjAmJihnPTEpO2lmKGcmJiF1JiYhaSlyZXR1cm4gWEsoeCxyLGUsdCxmLG8sbCxkKX12YXIgTj1XKHgpLEM9MDtpZih0eXBlb2YgTj09XCJudW1iZXJcIiYmKE49PT00fHxOPT09OTgpKXZhciBPPTA7ZWxzZSBDPTE7aWYoQyl2YXIgTz1lMyh4KT8xOjA7aWYoTylyZXR1cm4gWEsoeCxyLGUsdCxmLG8sbCxkKTtvTCh4LG8pLHNMKHgsbCk7dmFyIEw9Y0wodCksTT0wO2lmKGYpe2lmKEwpe3ZhciBWPUxbMV0sej1WWzFdO2lmKCFQKFZbMl0sX28pKXtueCh4LFswLHosWzE1LEwzMCxmLDEsMF1dKTt2YXIgaTA9enYoMSx4KSxqPTE7TT0xfX19ZWxzZSBpZihMKXt2YXIgWT1MWzFdLHQwPVlbMV07aWYoIVAoWVsyXSxUdikpe3UmJm54KHgsWzAsdDAsMTBdKSxpJiZueCh4LFswLHQwLDExXSk7dmFyIGkwPXp2KDIseCksaj0wO009MX19aWYoIU0pdmFyIGkwPXp2KDEseCksaj0xO3ZhciBLPUFuKGkwLHQpLEo9bDAoMCxmdW5jdGlvbih4MCl7dmFyICQ9bDAoMCxmdW5jdGlvbihMMCl7dmFyIFgwPWVlKEwwLFplKEwwKSkseHg9YShmMyh1LGkpLEwwKSxnMD1XKEwwKT09PTg2P3h4OmM2KEwwLHh4KSwkMD1nMFsyXSxuMD0kMFsxXSxpeD0wO2lmKG4wKXt2YXIgcng9bjBbMV1bMV0sZHg9ZzBbMV07aWYoaj09PTApe254KEwwLFswLHJ4LDkyXSk7dmFyIGF4PVswLGR4LFswLDAsJDBbMl0sJDBbM10sJDBbNF1dXTtpeD0xfX1pZighaXgpdmFyIGF4PWcwO3JldHVyblswLFgwLGF4LHQzKEwwLENSKEwwKSldfSx4MCksZjA9JFsyXSxzMD1mMFsyXSx2MD1mMFszXSxvMD1mMFsxXSxjMD0kWzFdLGQwPWQ2KHgwLHUsaSwwLFp2KHMwKSksRTA9ZDBbMV07cmV0dXJuIGkzKHgwLGQwWzJdLDAsczApLFswLDAsczAsRTAsdSxpLDAsdjAsbzAsMCxjMF19LGkwKSxRPVswLGosSyxKLGYsZSxrMChbMCxkXSwwLDApXTtyZXR1cm5bMCxbMCx1MShyLEpbMV0pLFFdXX19LGFMPWZ1bmN0aW9uKHgscil7dmFyIGU9a3IoeCxyKTtpZih0eXBlb2YgZT09XCJudW1iZXJcIil7dmFyIHQ9MDtpZig4Njw9ZSllIT09OTgmJjg3PD1lJiYodD0xKTtlbHNlIGlmKGUhPT04MilpZig5PD1lKXQ9MTtlbHNlIHN3aXRjaChlKXtjYXNlIDE6Y2FzZSA0OmNhc2UgODpicmVhaztkZWZhdWx0OnQ9MX1pZighdClyZXR1cm4gMX1yZXR1cm4gMH0sVlMwPTAsWUs9ZnVuY3Rpb24oeCl7cmV0dXJuIGFMKFZTMCx4KX0selMwPWZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9aUwoeCksdD1XKHgpLHU9MDtpZih0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTYwJiYhYUwoMSx4KSl7dmFyIGk9WzAsUHgoeCldLGY9dzAoeCk7WjAoeCk7dmFyIG89ZixsPWk7dT0xfWlmKCF1KXZhciBvPTAsbD0wO3ZhciBkPVcoeCksaz0wO2lmKHR5cGVvZiBkPT1cIm51bWJlclwiJiYyPj1kK2lqPj4+MCYmVW8oMSx4KSl7dmFyIGg9MDtpZih0eXBlb2YgZD09XCJudW1iZXJcIil7dmFyIGc9ZCtpanwwO2lmKDI+PWc+Pj4wKXtzd2l0Y2goZyl7Y2FzZSAwOnZhciBBPVFKO2JyZWFrO2Nhc2UgMTp2YXIgQT1ybDticmVhaztkZWZhdWx0OnZhciBBPW9sfXZhciBOPUE7aD0xfX1pZighaCl2YXIgTj1PeChNMzApO1Z4KHgsWzIyLE5dKSxaMCh4KSxrPTF9dmFyIEM9Vyh4KT09PTQyPzE6MDtpZihDKXt2YXIgTz1rcigxLHgpLEw9MDtpZih0eXBlb2YgTz09XCJudW1iZXJcIil7dmFyIE09MDtpZig4Nzw9TylPIT09OTgmJlJyIT09TyYmKE09MSk7ZWxzZXt2YXIgVj1PLTl8MDtpZig3NjxWPj4+MCl7aWYoNzc+Vilzd2l0Y2goVis5fDApe2Nhc2UgMTpjYXNlIDQ6Y2FzZSA4OmJyZWFrO2RlZmF1bHQ6TT0xfX1lbHNlIFYhPT03MyYmKE09MSl9aWYoIU0pe3ZhciB6PTA7TD0xfX1pZighTCl2YXIgej0xO3ZhciBZPXp9ZWxzZSB2YXIgWT1DO2lmKFkpe3ZhciB0MD13MCh4KTtaMCh4KTt2YXIgaTA9dDB9ZWxzZSB2YXIgaTA9MDt2YXIgaj1XKHgpPT09NjQ/MTowO2lmKGopdmFyIEs9MS1hTCgxLHgpLEo9SyYmMS1uNigxLHgpO2Vsc2UgdmFyIEo9ajtpZihKKXt2YXIgUT13MCh4KTtaMCh4KTt2YXIgeDA9UX1lbHNlIHZhciB4MD0wO3ZhciAkPWMzKHgpLGYwPSRbMV0sczA9JFsyXSx2MD1VbygxLHgpLG8wPXYwfHwoa3IoMSx4KT09PTY/MTowKSxjMD1QeCh4KSxkMD1XKHgpLEUwPTA7aWYodHlwZW9mIGQwPT1cIm51bWJlclwiKXN3aXRjaChkMCl7Y2FzZSAxMDM6dmFyIEwwPXcwKHgpO1owKHgpO3ZhciBnMD1bMCxbMCxjMCxbMCwwLGswKFswLEwwXSwwLDApXV1dO0UwPTE7YnJlYWs7Y2FzZSAxMDQ6dmFyIFgwPXcwKHgpO1owKHgpO3ZhciBnMD1bMCxbMCxjMCxbMCwxLGswKFswLFgwXSwwLDApXV1dO0UwPTE7YnJlYWt9ZWxzZSBpZihkMFswXT09PTQmJiFQKGQwWzNdLFRhKSYmbzApe3ZhciB4eD13MCh4KTtaMCh4KTt2YXIgZzA9WzAsWzAsYzAsWzAsMixrMChbMCx4eF0sMCwwKV1dXTtFMD0xfWlmKCFFMCl2YXIgZzA9MDt2YXIgJDA9MDtpZihnMCl7dmFyIG4wPTAsaXg9ZzBbMV1bMV07aWYoKEp8fGYwKSYmKG4wPTEpLG4wKXtueCh4LFswLGl4LEwyXSk7dmFyIHJ4PTA7JDA9MX19aWYoISQwKXZhciByeD1nMDt2YXIgZHg9MDtpZighZjAmJnJ4KXt2YXIgYXg9YzMoeCksU3g9YXhbMl0sRDA9YXhbMV07ZHg9MX1pZighZHgpdmFyIFN4PXMwLEQwPWYwO3ZhciBOMD1MbChbMCxvLFswLGkwLFswLHgwLFswLFN4LDBdXV1dKSxBMD1XKHgpO2lmKCFKJiYhRDAmJnR5cGVvZiBBMCE9XCJudW1iZXJcIiYmQTBbMF09PT00KXt2YXIgWTA9QTBbM107aWYoIVAoWTAsZ3YpKXt2YXIgQzA9dzAoeCksRj1WbyhVMzAseClbMl07aWYoWUsoeCkpcmV0dXJuIHZMKHgscixlLEYsSixEMCxZLGwscngsTjApO29MKHgsbCksc0woeCxyeCksQW4oeCxGKTt2YXIgSD1ReChOMCxDMCksQj1sMChbMCxyXSxmdW5jdGlvbihXMCl7cmV0dXJuIHltKFcwLDEsMSl9LHgpLGEwPUJbMl0sbTA9YTBbMV0sUDA9YTBbMl0sRD1CWzFdLE8wPWNMKG0wKSxLMD0wO2lmKFkpe2lmKE8wKXt2YXIgajA9TzBbMV0sb3g9ajBbMV07UChqMFsyXSxfbyl8fChueCh4LFswLG94LFsxNSxYMzAsWSwwLDBdXSksSzA9MSl9fWVsc2UgaWYoTzApe3ZhciBiMD1PMFsxXSxfeD1iMFsxXTtQKGIwWzJdLFR2KXx8KG54KHgsWzAsX3gsOV0pLEswPTEpfXJldHVyblswLFswLEQsWzAsMixtMCxQMCxZLGUsazAoWzAsSF0sMCwwKV1dXX1pZighUChZMCxSYSkpe3ZhciBCMD13MCh4KSxUPVZvKEQzMCx4KVsyXTtpZihZSyh4KSlyZXR1cm4gdkwoeCxyLGUsVCxKLEQwLFksbCxyeCxOMCk7b0woeCxsKSxzTCh4LHJ4KSxBbih4LFQpO3ZhciBYPVF4KE4wLEIwKSxGMD1sMChbMCxyXSxmdW5jdGlvbihXMCl7cmV0dXJuIHltKFcwLDEsMCl9LHgpLHN4PUYwWzJdLGV4PXN4WzFdLFUwPXN4WzJdLE54PUYwWzFdLG14PWNMKGV4KSxCeD0wO2lmKFkpe2lmKG14KXt2YXIgR3g9bXhbMV0sSjA9R3hbMV07UChHeFsyXSxfbyl8fChueCh4LFswLEowLFsxNSxKMzAsWSwwLDBdXSksQng9MSl9fWVsc2UgaWYobXgpe3ZhciBieD1teFsxXSxKeD1ieFsxXTtQKGJ4WzJdLFR2KXx8KG54KHgsWzAsSngsOV0pLEJ4PTEpfXJldHVyblswLFswLE54LFswLDMsZXgsVTAsWSxlLGswKFswLFhdLDAsMCldXV19fXJldHVybiB2TCh4LHIsZSxWbyhqMzAseClbMl0sSixEMCxZLGwscngsTjApfSxWSz1mdW5jdGlvbih4LHIsZSx0KXt2YXIgdT14P3hbMV06MCxpPVFzKDEsciksZj1ReCh1LGlMKGkpKSxvPXcwKGkpLGw9VyhpKSxkPTA7dHlwZW9mIGwhPVwibnVtYmVyXCImJmxbMF09PT00JiYhUChsWzNdLEJoKSYmKFZ4KGksODgpLFowKGkpLGQ9MSksdTAoaSw0MCk7dmFyIGs9eFIoMSxpKSxoPVcoayksZz0wO2lmKGUmJnR5cGVvZiBoPT1cIm51bWJlclwiKXt2YXIgQT0wO2lmKDUyPD1oP2ghPT05OCYmNTM8PWgmJihBPTEpOmghPT00MSYmaCYmKEE9MSksIUEpe3ZhciBPPTA7Zz0xfX1pZighZylpZihucyhpKSl2YXIgTj1wKHB4WzEzXSwwLGspLEM9UDEoaSlbMl0sTz1bMCxwKEMsTixmdW5jdGlvbigkLGYwKXtyZXR1cm4gcChxeCgkLFBhLDcxKSwkLGYwKX0pXTtlbHNle2h6KGksQzMwKTt2YXIgTz1bMCxbMCxQeChpKSxJMzBdXX12YXIgTD1aZShpKTtpZihMKXZhciBNPUxbMV0sVj1QMShpKVsyXSx6PVswLHAoVixNLGZ1bmN0aW9uKCQsZjApe3JldHVybiBwKHF4KCQsekMsNzApLCQsZjApfSldO2Vsc2UgdmFyIHo9MDt2YXIgWT13MChpKTtpZihvMShpLDQxKSl2YXIgdDA9bDAoMCxmdW5jdGlvbigkKXt2YXIgZjA9YSh2bSxITygwLCQpKTtpZihXKCQpPT09OTgpdmFyIHMwPVAxKCQpWzJdLHYwPXAoczAsZjAsZnVuY3Rpb24oYzAsZDApe3JldHVybiBwKHF4KGMwLG1uLDY1KSxjMCxkMCl9KTtlbHNlIHZhciB2MD1mMDt2YXIgbzA9aUsoJCk7cmV0dXJuWzAsdjAsbzAsazAoWzAsWV0sMCwwKV19LGkpLGkwPXQwWzFdLGo9dDBbMl0sSz1QMShpKVsyXSxKPVswLFswLGkwLHAoSyxqLGZ1bmN0aW9uKCQsZjApe3JldHVybiBIMChxeCgkLC02NjM0NDc3OTAsNjYpLCQsaTAsZjApfSldXTtlbHNlIHZhciBKPTA7aWYoVyhpKT09PTUyKXsxLWsxKGkpJiZWeChpLE90KTt2YXIgUT1bMCxneihpLEpLKGksMSkpXX1lbHNlIHZhciBRPTA7dmFyIHgwPWwwKDAsZnVuY3Rpb24oJCl7dmFyIGYwPXcwKCQpO2lmKCFvMSgkLDApKXJldHVybiBxcygkLDApLFIzMDskWzMwXVsxXT1bMCxbMCx3MlsxXSwwXSwkWzMwXVsxXV07Zm9yKHZhciBzMD0wLHYwPVZUMCxvMD0wOzspe3ZhciBjMD1XKCQpO2lmKHR5cGVvZiBjMD09XCJudW1iZXJcIil7dmFyIGQwPWMwLTJ8MDtpZihWMTxkMD4+PjApe2lmKEwyPj1kMCsxPj4+MCl7dmFyIEUwPUF4KG8wKSxMMD1mdW5jdGlvbihKMCxieCl7cmV0dXJuIGEoTWwoZnVuY3Rpb24oSngpe3JldHVybiAxLXAodzJbM10sSnhbMV0sSjApfSksYngpfSxYMD0kWzMwXVsxXTtpZihYMCl7dmFyIHh4PVgwWzFdLGcwPXh4WzFdO2lmKFgwWzJdKXt2YXIgJDA9WDBbMl0sbjA9TDAoZzAseHhbMl0pLGl4PVJsKCQwKSxyeD1peFsyXSxkeD1peFsxXSxheD1xWCgkMCksU3g9WzAsWzAsZHgsUXgocngsbjApXSxheF07JFszMF1bMV09U3h9ZWxzZXt2YXIgRDA9TDAoZzAseHhbMl0pO2cyKGZ1bmN0aW9uKEowKXtyZXR1cm4gbngoJCxbMCxKMFsyXSxbMjMsSjBbMV1dXSl9LEQwKSwkWzMwXVsxXT0wfX1lbHNlIE94KGxzMCk7dTAoJCwxKTt2YXIgTjA9VygkKSxBMD0wO2lmKCF0KXt2YXIgWTA9MDtpZigodHlwZW9mIE4wIT1cIm51bWJlclwifHxOMCE9PTEmJlJyIT09TjApJiYoWTA9MSksWTApaWYocmUoJCkpe3ZhciBDMD1KbygkKTtBMD0xfWVsc2V7dmFyIEMwPTA7QTA9MX19aWYoIUEwKXZhciBDMD1oeCgkKTtyZXR1cm5bMCxFMCxrMChbMCxmMF0sWzAsQzBdLDApXX19ZWxzZSBpZihkMD09PTYpe3UwKCQsOCk7Y29udGludWV9fXZhciBGPXpTMCgkKTtzd2l0Y2goRlswXSl7Y2FzZSAwOnZhciBIPUZbMV0sQj1IWzJdLGEwPUhbMV07c3dpdGNoKEJbMV0pe2Nhc2UgMDppZihCWzRdKXZhciBVMD12MCxOeD1zMDtlbHNle3MwJiZueCgkLFswLGEwLDE4XSk7dmFyIFUwPXYwLE54PTF9YnJlYWs7Y2FzZSAxOnZhciBtMD1CWzJdLFAwPW0wWzBdPT09ND9tbSgkLHYwLG0wWzFdLERqKTp2MCxVMD1QMCxOeD1zMDticmVhaztjYXNlIDI6dmFyIEQ9QlsyXSxPMD1EWzBdPT09ND9tbSgkLHYwLERbMV0sQVApOnYwLFUwPU8wLE54PXMwO2JyZWFrO2RlZmF1bHQ6dmFyIEswPUJbMl0sajA9SzBbMF09PT00P21tKCQsdjAsSzBbMV0sWEMpOnYwLFUwPWowLE54PXMwfWJyZWFrO2Nhc2UgMTp2YXIgb3g9RlsxXVsyXSxiMD1veFs0XSxfeD1veFsxXTtzd2l0Y2goX3hbMF0pe2Nhc2UgNDpPeChPMzApO2JyZWFrO2Nhc2UgMDpjYXNlIDM6dmFyIEIwPV94WzFdLFQ9QjBbMl1bMV0sWD1BcihULFR2KSxGMD1CMFsxXTtpZihYKXZhciBleD1YO2Vsc2UgdmFyIHN4PUFyKFQsX28pLGV4PXN4JiZiMDtleCYmbngoJCxbMCxGMCxbMTUsVCxiMCwwLDBdXSk7YnJlYWt9dmFyIFUwPXYwLE54PXMwO2JyZWFrO2RlZmF1bHQ6dmFyIFUwPW1tKCQsdjAsRlsxXVsyXVsxXSxKVSksTng9czB9dmFyIHMwPU54LHYwPVUwLG8wPVswLEYsbzBdfX0saSk7cmV0dXJuWzAsTyx4MCx6LEosUSxmLGswKFswLG9dLDAsMCldfSxrbT1mdW5jdGlvbih4LHIpe3JldHVybiBsMCgwLGZ1bmN0aW9uKGUpe3JldHVyblsyLFZLKFswLHJdLGUsZVs3XSwwKV19LHgpfSxLUzA9ZnVuY3Rpb24oeCl7cmV0dXJuWzUsVksoMCx4LDEsMSldfSxCUzA9MCxXUzA9ZnVuY3Rpb24oeCl7cmV0dXJuIGwwKEJTMCxLUzAseCl9LHpLPUl6KHB4KSxLSz1mdW5jdGlvbih4KXt2YXIgcj15Nih4KTtpZih4WzVdKVd2KHgsclsxXSk7ZWxzZXt2YXIgZT1yWzJdLHQ9MDtpZihlWzBdPT09MjYpe3ZhciB1PWVbMV0saT1yWzFdLGY9MDt1WzRdPyhueCh4LFswLGksNV0pLGY9MSk6dVs1XSYmKG54KHgsWzAsaSwyNl0pLGY9MSksZiYmKHQ9MSl9fXJldHVybiByfSxobT1mdW5jdGlvbih4LHIpe3ZhciBlPXJbNF0sdD1yWzNdLHU9clsyXSxpPXJbMV07ZSYmWnQoeCw4MSk7dmFyIGY9dzAoeCk7cmV0dXJuIHUwKHgsWzIsWzAsaSx1LHQsZV1dKSxbMCxpLFswLHUsdCxrMChbMCxmXSxbMCxoeCh4KV0sMCldXX0scjI9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXg/eFsxXTpUbDAsdT1yP3JbMV06MSxpPVcoZSk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCIpe3ZhciBmPWktMnwwO2lmKFYxPGY+Pj4wKXtpZihMMj49ZisxPj4+MCl7dmFyIG89ZnVuY3Rpb24oayxoKXtyZXR1cm4ga307cmV0dXJuWzEsWzAsaHgoZSksb11dfX1lbHNlIGlmKGY9PT02KXtaMChlKTt2YXIgbD1XKGUpO2lmKHR5cGVvZiBsPT1cIm51bWJlclwiKXt2YXIgZD0wO2lmKGwhPT0xJiZSciE9PWwmJihkPTEpLCFkKXJldHVyblswLGh4KGUpXX1yZXR1cm4gcmUoZSk/WzAsSm8oZSldOlNsMH19cmV0dXJuIHJlKGUpP1sxLGY2KGUpXToodSYmUzEoWzAsdF0sZSksRWwwKX0seG89ZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil7dmFyIGU9MDtpZihyIT09MSYmUnIhPT1yJiYoZT0xKSwhZSl7dmFyIHQ9ZnVuY3Rpb24odSxpKXtyZXR1cm4gdX07cmV0dXJuWzAsaHgoeCksdF19fXJldHVybiByZSh4KT9mNih4KTpaeSh4KX0sbEw9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXIyKDAsMCxyKTtpZih0WzBdPT09MClyZXR1cm5bMCx0WzFdLGVdO3ZhciB1PXRbMV1bMl0saT1BeChlKTtpZihpKXZhciBmPWlbMl0sbz1pWzFdLGw9QXgoWzAscCh1LG8sZnVuY3Rpb24oZCxrKXtyZXR1cm4gSDAocXgoZCw2MzQ4NzI0NjgsNzIpLGQseCxrKX0pLGZdKTtlbHNlIHZhciBsPTA7cmV0dXJuWzAsMCxsXX0sQks9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFdLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxaSz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sJEs9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEZLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxrNj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LFFLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxHSz1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0saDY9ZnVuY3Rpb24geChyLGUsdCl7cmV0dXJuIHguZnVuKHIsZSx0KX0scUs9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LEhLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxfNj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LGJLPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSx4Qj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sX209ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxyQj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sd209ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxlQj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sdEI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFRtPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sbkI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LHc2PWZ1bmN0aW9uIHgocixlLHQpe3JldHVybiB4LmZ1bihyLGUsdCl9LFQ2PWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sdUI9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxpQj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LHBMPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sZkI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LG8zPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxTbT1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxkTD1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LGNCPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0seUw9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFpTMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDU5KTt2YXIgZT1XKHgpPT09OD9oeCh4KTowLHQ9cjIoMCwwLHgpLHU9dFswXT09PTA/dFsxXTp0WzFdWzFdO3JldHVybls1LFswLGswKFswLHJdLFswLFF4KGUsdSldLDApXV19LCRTMD0wLEZTMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDM3KTt2YXIgZT1yNigxLHgpLHQ9YShweFsyXSxlKSx1PTEteFs1XSxpPXUmJnM2KHQpO2kmJld2KHgsdFsxXSk7dmFyIGY9aHgoeCk7dTAoeCwyNSk7dmFyIG89aHgoeCk7dTAoeCw0KTt2YXIgbD1hKHB4WzddLHgpO3UwKHgsNSk7dmFyIGQ9Vyh4KT09PTg/aHgoeCk6MCxrPXIyKDAsd2wwLHgpLGg9a1swXT09PTA/UXgoZCxrWzFdKTprWzFdWzFdO3JldHVyblsxNyxbMCx0LGwsazAoWzAscl0sWzAsUXgoZixReChvLGgpKV0sMCldXX0sUVMwPTAsc0I9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PWVbMl1bMV0sdT1lWzFdO3JldHVybiB0JiYhdFsxXVsyXVsyXSYmIXRbMl0/MDpueCh4LFswLHUscl0pfSxtTD1mdW5jdGlvbih4LHIpe3JldHVybiF4WzVdJiZzNihyKT9Xdih4LHJbMV0pOjB9LEdTMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDM5KTt2YXIgZT14WzE5XSx0PWUmJm8xKHgsNjUpLHU9UXgocix3MCh4KSk7dTAoeCw0KTt2YXIgaT1rMChbMCx1XSwwLDApLGY9Vyh4KSxvPTA7aWYodHlwZW9mIGY9PVwibnVtYmVyXCImJmY9PT02NCl7dmFyIGw9MTtvPTF9aWYoIW8pdmFyIGw9MDt2YXIgZD1lNigxLHgpLGs9VyhkKSxoPTA7aWYodHlwZW9mIGs9PVwibnVtYmVyXCIpe2lmKDI0PD1rKXtpZigyOT5rKXN3aXRjaChrK2RUfDApe2Nhc2UgMDp2YXIgZz1sMCgwLGFLLGQpLEE9Z1syXSxOPUFbM10sQz1BWzFdLE89Z1sxXSxRPU4seDA9WzAsWzEsWzAsTyxbMCxDLDAsazAoWzAsQVsyXV0sMCwwKV1dXV07aD0xO2JyZWFrO2Nhc2UgMzp2YXIgTD1sMCgwLGxLLGQpLE09TFsyXSxWPU1bM10sej1NWzFdLFk9TFsxXSxRPVYseDA9WzAsWzEsWzAsWSxbMCx6LDIsazAoWzAsTVsyXV0sMCwwKV1dXV07aD0xO2JyZWFrO2Nhc2UgNDppZihrcigxLGQpIT09MTcpe3ZhciB0MD1sMCgwLHBLLGQpLGkwPXQwWzJdLGo9aTBbM10sSz1pMFsxXSxKPXQwWzFdLFE9aix4MD1bMCxbMSxbMCxKLFswLEssMSxrMChbMCxpMFsyXV0sMCwwKV1dXV07aD0xfWJyZWFrfX1lbHNlIGlmKGs9PT04KXt2YXIgUT0wLHgwPTA7aD0xfX1pZighaCl2YXIgUT0wLHgwPVswLFswLGEocHhbOF0sZCldXTt2YXIgJD1XKHgpO2lmKHR5cGVvZiAkPT1cIm51bWJlclwiKXtpZigkPT09MTcpe2lmKCF4MCl0aHJvdyBxMChbMCx3cixfbDBdLDEpO3ZhciBmMD14MFsxXTtpZihmMFswXT09PTApdmFyIHMwPVsxLFVSKGhsMCx4LGYwWzFdKV07ZWxzZXt2YXIgdjA9ZjBbMV07c0IoeCw0Myx2MCk7dmFyIHMwPVswLHYwXX10P3UwKHgsNjMpOnUwKHgsMTcpO3ZhciBvMD1hKHB4WzddLHgpO3UwKHgsNSk7dmFyIGMwPXI2KDEseCksZDA9YShweFsyXSxjMCk7cmV0dXJuIG1MKHgsZDApLFsyNCxbMCxzMCxvMCxkMCwwLGldXX1pZigkPT09NjMpe2lmKCF4MCl0aHJvdyBxMChbMCx3cixrbDBdLDEpO3ZhciBFMD14MFsxXTtpZihFMFswXT09PTApe3ZhciBMMD1VUihtbDAseCxFMFsxXSksWDA9MS10LHh4PVgwJiZsLGcwPTA7aWYoeHgpe3ZhciAkMD1MMFsyXTtpZigkMFswXT09PTIpe3ZhciBuMD0kMFsxXVsxXSxpeD1uMFsxXTtQKG4wWzJdWzFdLFRvKXx8KG54KHgsWzAsaXgsNDRdKSxnMD0xKX19dmFyIHJ4PVsxLEwwXX1lbHNle3ZhciBkeD1FMFsxXTtzQih4LDQ0LGR4KTt2YXIgcng9WzAsZHhdfXUwKHgsNjMpO3ZhciBheD1hKHB4WzEwXSx4KTt1MCh4LDUpO3ZhciBTeD1yNigxLHgpLEQwPWEocHhbMl0sU3gpO3JldHVybiBtTCh4LEQwKSxbMjUsWzAscngsYXgsRDAsdCxpXV19fWlmKGcyKGZ1bmN0aW9uKE8wKXtyZXR1cm4gbngoeCxPMCl9LFEpLHQ/dTAoeCw2Myk6dTAoeCw4KSx4MCl2YXIgTjA9eDBbMV0sQTA9TjBbMF09PT0wP1swLFsxLG8yKHgsTjBbMV0pXV06WzAsWzAsTjBbMV1dXSxZMD1BMDtlbHNlIHZhciBZMD0wO3ZhciBDMD1XKHgpLEY9MDtpZih0eXBlb2YgQzA9PVwibnVtYmVyXCImJkMwPT09OCl7dmFyIEg9MDtGPTF9aWYoIUYpdmFyIEg9WzAsYShweFs3XSx4KV07dTAoeCw4KTt2YXIgQj1XKHgpLGEwPTA7aWYodHlwZW9mIEI9PVwibnVtYmVyXCImJkI9PT01KXt2YXIgbTA9MDthMD0xfWlmKCFhMCl2YXIgbTA9WzAsYShweFs3XSx4KV07dTAoeCw1KTt2YXIgUDA9cjYoMSx4KSxEPWEocHhbMl0sUDApO3JldHVybiBtTCh4LEQpLFsyMyxbMCxZMCxILG0wLEQsaV1dfSxxUzA9MCxvQj1mdW5jdGlvbih4KXt2YXIgcj1qbyh4KT9LSyh4KTphKHB4WzJdLHgpLGU9MS14WzVdLHQ9ZSYmczYocik7cmV0dXJuIHQmJld2KHgsclsxXSkscn0sSFMwPWZ1bmN0aW9uKHgpe3ZhciByPXcwKHgpO3UwKHgsNDMpO3ZhciBlPW9CKHgpO3JldHVyblswLGUsazAoWzAscl0sMCwwKV19LGJTMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDE2KTt2YXIgZT1ReChyLHcwKHgpKTt1MCh4LDQpO3ZhciB0PWEocHhbN10seCk7dTAoeCw1KTt2YXIgdT1vQih4KSxpPVcoeCk9PT00Mz9bMCxsMCgwLEhTMCx4KV06MDtyZXR1cm5bMjcsWzAsdCx1LGksazAoWzAsZV0sMCwwKV1dfSx4RTA9MCx2Qj1mdW5jdGlvbih4KXtyZXR1cm4gbDAoeEUwLGJTMCx4KX0sckUwPWZ1bmN0aW9uKHgpezEteFsxMV0mJlZ4KHgsMzEpO3ZhciByPXcwKHgpLGU9UHgoeCk7dTAoeCwxOSk7dmFyIHQ9Vyh4KT09PTg/aHgoeCk6MCx1PTA7aWYoVyh4KSE9PTgmJiFlMyh4KSl7dmFyIGk9WzAsYShweFs3XSx4KV07dT0xfWlmKCF1KXZhciBpPTA7dmFyIGY9dTEoZSxQeCh4KSksbz1yMigwLDAseCksbD0wO2lmKG9bMF09PT0wKXZhciBkPW9bMV07ZWxzZXt2YXIgaz1vWzFdLGg9a1sxXTtpZihpKXt2YXIgZz1pWzFdLEE9a1syXSxOPVswLHAoQSxnLGZ1bmN0aW9uKFYseil7cmV0dXJuIHAocXgoVixtbiw3MyksVix6KX0pXSxDPXQ7bD0xfWVsc2UgdmFyIGQ9aH1pZighbCl2YXIgTj1pLEM9UXgodCxkKTtyZXR1cm5bMzEsWzAsTixrMChbMCxyXSxbMCxDXSwwKSxmXV19LGVFMD0wLHRFMD1mdW5jdGlvbih4KXt2YXIgcj13MCh4KTt1MCh4LDIwKSx1MCh4LDQpO3ZhciBlPWEocHhbN10seCk7dTAoeCw1KSx1MCh4LDApO2Zvcih2YXIgdD15bDA7Oyl7dmFyIHU9dFsyXSxpPXRbMV0sZj1XKHgpO2lmKHR5cGVvZiBmPT1cIm51bWJlclwiKXt2YXIgbz0wO2lmKGYhPT0xJiZSciE9PWYmJihvPTEpLCFvKXt2YXIgbD1BeCh1KTt1MCh4LDEpO3ZhciBkPXhvKHgpWzFdLGs9ZVsxXTtyZXR1cm5bMzIsWzAsZSxsLGswKFswLHJdLFswLGRdLDApLGtdXX19dmFyIGg9RnkoMCxmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oTil7dmFyIEM9dzAoTiksTz1XKE4pLEw9MDtpZih0eXBlb2YgTz09XCJudW1iZXJcIiYmTz09PTM2KXtBJiZWeChOLDU4KSx1MChOLDM2KTt2YXIgTT1oeChOKSxWPTA7TD0xfWlmKCFMKXt1MChOLDMzKTt2YXIgTT0wLFY9WzAsYShweFs3XSxOKV19dmFyIHo9QXx8KFY9PT0wPzE6MCk7dTAoTiw4Nik7dmFyIFk9UXgoTSx4byhOKVsxXSk7ZnVuY3Rpb24gdDAoSil7aWYodHlwZW9mIEo9PVwibnVtYmVyXCIpe3ZhciBRPUotMXwwLHgwPTA7aWYoMzI8UT4+PjA/UT09PTM1JiYoeDA9MSk6MzA8US0xPj4+MCYmKHgwPTEpLHgwKXJldHVybiAxfXJldHVybiAwfXZhciBpMD0xLGo9Tls5XT09PTE/TjpbMCxOWzFdLE5bMl0sTlszXSxOWzRdLE5bNV0sTls2XSxOWzddLE5bOF0saTAsTlsxMF0sTlsxMV0sTlsxMl0sTlsxM10sTlsxNF0sTlsxNV0sTlsxNl0sTlsxN10sTlsxOF0sTlsxOV0sTlsyMF0sTlsyMV0sTlsyMl0sTlsyM10sTlsyNF0sTlsyNV0sTlsyNl0sTlsyN10sTlsyOF0sTlsyOV0sTlszMF0sTlszMV1dLEs9cChweFs0XSx0MCxqKTtyZXR1cm5bMCxbMCxWLEssazAoWzAsQ10sWzAsWV0sMCldLHpdfX0oaSkseCksdD1bMCxoWzJdLFswLGhbMV0sdV1dfX0sbkUwPTAsdUUwPWZ1bmN0aW9uKHgpe3ZhciByPXcwKHgpLGU9UHgoeCk7dTAoeCwyMikscmUoeCkmJm54KHgsWzAsZSw1OV0pO3ZhciB0PWEocHhbN10seCksdT1yMigwLDAseCk7aWYodVswXT09PTApdmFyIG89dCxsPXVbMV07ZWxzZSB2YXIgaT11WzFdWzJdLGY9MCxvPXAoaSx0LGZ1bmN0aW9uKGQsayl7cmV0dXJuIHAocXgoZCxtbiw3NCksZCxrKX0pLGw9ZjtyZXR1cm5bMzMsWzAsbyxrMChbMCxyXSxbMCxsXSwwKV1dfSxpRTA9MCxmRTA9ZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7dTAoeCwyMyk7dmFyIGU9YShweFsxNV0seCk7aWYoVyh4KT09PTM0KXZhciB0PVAxKHgpWzJdLHU9cCh0LGUsZnVuY3Rpb24oTCxNKXt2YXIgVj1NWzFdO3JldHVyblswLFYsSDAocXgoTCxCcCw0KSxMLFYsTVsyXSldfSk7ZWxzZSB2YXIgdT1lO3ZhciBpPVcoeCksZj0wO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiJiZpPT09MzQpe3ZhciBvPVswLGwwKDAsZnVuY3Rpb24oTSl7dmFyIFY9dzAoTSk7dTAoTSwzNCk7dmFyIHo9aHgoTSk7aWYoVyhNKT09PTQpe3UwKE0sNCk7dmFyIFk9WzAscChweFsxOF0sTSw3MildO3UwKE0sNSk7dmFyIHQwPVl9ZWxzZSB2YXIgdDA9MDt2YXIgaTA9YShweFsxNV0sTSk7aWYoVyhNKT09PTM4KXZhciBLPWkwO2Vsc2UgdmFyIGo9eG8oTSlbMl0sSz1wKGosaTAsZnVuY3Rpb24oSixRKXt2YXIgeDA9UVsxXTtyZXR1cm5bMCx4MCxIMChxeChKLEJwLDc1KSxKLHgwLFFbMl0pXX0pO3JldHVyblswLHQwLEssazAoWzAsVl0sWzAsel0sMCldfSx4KV07Zj0xfWlmKCFmKXZhciBvPTA7dmFyIGw9Vyh4KSxkPTA7aWYodHlwZW9mIGw9PVwibnVtYmVyXCImJmw9PT0zOCl7dTAoeCwzOCk7dmFyIGs9YShweFsxNV0seCksaD1rWzFdLGc9a1syXSxBPXhvKHgpWzJdLE49WzAsWzAsaCxwKEEsZyxmdW5jdGlvbihNLFYpe3JldHVybiBIMChxeChNLEJwLDc2KSxNLGgsVil9KV1dO2Q9MX1pZighZCl2YXIgTj0wO3ZhciBDPW89PT0wPzE6MCxPPUMmJihOPT09MD8xOjApO3JldHVybiBPJiZueCh4LFswLHVbMV0sNjFdKSxbMzQsWzAsdSxvLE4sazAoWzAscl0sMCwwKV1dfSxjRTA9MCxzRTA9ZnVuY3Rpb24oeCl7dmFyIHI9YUsoeCksZT1yWzNdLHQ9clsyXSx1PWxMKDAseCxyWzFdKSxpPTAsZj11WzJdLG89dVsxXTtyZXR1cm4gZzIoZnVuY3Rpb24obCl7cmV0dXJuIG54KHgsbCl9LGUpLFszNyxbMCxmLGksazAoWzAsdF0sWzAsb10sMCldXX0sb0UwPTAsdkUwPWZ1bmN0aW9uKHgpe3ZhciByPWxLKHgpLGU9clszXSx0PXJbMl0sdT1sTCgyLHgsclsxXSksaT0yLGY9dVsyXSxvPXVbMV07cmV0dXJuIGcyKGZ1bmN0aW9uKGwpe3JldHVybiBueCh4LGwpfSxlKSxbMzcsWzAsZixpLGswKFswLHRdLFswLG9dLDApXV19LGFFMD0wLGxFMD1mdW5jdGlvbih4KXt2YXIgcj1wSyh4KSxlPXJbM10sdD1yWzJdLHU9bEwoMSx4LHJbMV0pLGk9MSxmPXVbMl0sbz11WzFdO3JldHVybiBnMihmdW5jdGlvbihsKXtyZXR1cm4gbngoeCxsKX0sZSksWzM3LFswLGYsaSxrMChbMCx0XSxbMCxvXSwwKV1dfSxwRTA9MCxkRTA9ZnVuY3Rpb24oeCl7dmFyIHI9dzAoeCk7dTAoeCwyNSk7dmFyIGU9UXgocix3MCh4KSk7dTAoeCw0KTt2YXIgdD1hKHB4WzddLHgpO3UwKHgsNSk7dmFyIHU9cjYoMSx4KSxpPWEocHhbMl0sdSksZj0xLXhbNV0sbz1mJiZzNihpKTtyZXR1cm4gbyYmV3YoeCxpWzFdKSxbMzgsWzAsdCxpLGswKFswLGVdLDAsMCldXX0seUUwPTAsbUUwPWZ1bmN0aW9uKHgpe3ZhciByPXcwKHgpLGU9YShweFs3XSx4KSx0PVcoeCksdT1lWzJdO2lmKHVbMF09PT04JiZ0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTg2KXt2YXIgaT11WzFdLGY9aVsyXVsxXSxvPWVbMV07dTAoeCw4NikscCh3MlszXSxmLHhbM10pJiZueCh4LFswLG8sWzIxLHBsMCxmXV0pO3ZhciBsPXhbMzFdLGQ9eFszMF0saz14WzI5XSxoPXhbMjhdLGc9eFsyN10sQT14WzI2XSxOPXhbMjVdLEM9eFsyNF0sTz14WzIzXSxMPXhbMjJdLE09eFsyMV0sVj14WzIwXSx6PXhbMTldLFk9eFsxOF0sdDA9eFsxN10saTA9eFsxNl0saj14WzE1XSxLPXhbMTRdLEo9eFsxM10sUT14WzEyXSx4MD14WzExXSwkPXhbMTBdLGYwPXhbOV0sczA9eFs4XSx2MD14WzddLG8wPXhbNl0sYzA9eFs1XSxkMD14WzRdLEUwPXAodzJbNF0sZix4WzNdKSxMMD1bMCx4WzFdLHhbMl0sRTAsZDAsYzAsbzAsdjAsczAsZjAsJCx4MCxRLEosSyxqLGkwLHQwLFkseixWLE0sTCxPLEMsTixBLGcsaCxrLGQsbF0sWDA9am8oTDApP0tLKEwwKTphKHB4WzJdLEwwKTtyZXR1cm5bMzAsWzAsaSxYMCxrMChbMCxyXSwwLDApXV19dmFyIHh4PXIyKGRsMCwwLHgpO2lmKHh4WzBdPT09MCl2YXIgbjA9ZSxpeD14eFsxXTtlbHNlIHZhciBnMD14eFsxXVsyXSwkMD0wLG4wPXAoZzAsZSxmdW5jdGlvbihyeCxkeCl7cmV0dXJuIHAocXgocngsbW4sNzcpLHJ4LGR4KX0pLGl4PSQwO3JldHVyblsyMixbMCxuMCwwLGswKDAsWzAsaXhdLDApXV19LGtFMD0wLGhFMD1mdW5jdGlvbih4KXt2YXIgcj1hKHB4WzddLHgpLGU9cjIobGwwLDAseCk7aWYoZVswXT09PTApdmFyIGk9cixmPWVbMV07ZWxzZSB2YXIgdD1lWzFdWzJdLHU9MCxpPXAodCxyLGZ1bmN0aW9uKE4sQyl7cmV0dXJuIHAocXgoTixtbiw3OCksTixDKX0pLGY9dTtpZih4WzIwXSl7dmFyIG89aVsyXTtpZihvWzBdPT09MTIpe3ZhciBsPW9bMV1bMl0sZD0wO2lmKDE8WHgobCkpe3ZhciBrPU4xKGwsWHgobCktMXwwKTtpZihOMShsLDApPT09ayl7dmFyIGg9WzAsbTIobCwxLFh4KGwpLTJ8MCldO2Q9MX19aWYoIWQpdmFyIGg9MDt2YXIgZz1ofWVsc2UgdmFyIGc9MDt2YXIgQT1nfWVsc2UgdmFyIEE9MDtyZXR1cm5bMjIsWzAsaSxBLGswKDAsWzAsZl0sMCldXX0sX0UwPTAsUzY9ZnVuY3Rpb24oeCl7cmV0dXJuIGwwKF9FMCxoRTAseCl9LGFCPWZ1bmN0aW9uKHgpe3JldHVyblswLEdzKHgpLGFsMF19LGxCPWZ1bmN0aW9uKHgpe3ZhciByPVcoeCk7aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT00JiYhUChyWzNdLGlsKSl7WjAoeCk7dmFyIGU9Vyh4KTtyZXR1cm4gdHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT0yP2htKHgsZVsxXSk6KFMxKG9sMCx4KSxhQih4KSl9cmV0dXJuIFMxKHZsMCx4KSxhQih4KX0sRW09ZnVuY3Rpb24oeCxyLGUpe2Z1bmN0aW9uIHQoZCl7cmV0dXJuIHg/aXMoZCk6cChweFsxM10sMCxkKX12YXIgdT1rcigxLGUpO2lmKHR5cGVvZiB1PT1cIm51bWJlclwiKXN3aXRjaCh1KXtjYXNlIDE6Y2FzZSA5OmNhc2UgMTEzOnJldHVyblswLHQoZSksMF19ZWxzZSBpZih1WzBdPT09NCYmIVAodVszXSxsbikpe3ZhciBpPVQyKGUpO3JldHVybiBaMChlKSxbMCxpLFswLHQoZSldXX12YXIgZj1XKGUpO2lmKHImJnR5cGVvZiBmPT1cIm51bWJlclwiKXt2YXIgbz0wLGw9clsxXTtpZihmIT09NDYmJmYhPT02MSYmKG89MSksIW8pcmV0dXJuIFZ4KGUsbCksWjAoZSksWzAsaXMoZSksMF19cmV0dXJuWzAsdChlKSwwXX0sd0UwPWZ1bmN0aW9uKHgpe3ZhciByPVcoeCksZT0wO2lmKHR5cGVvZiByPT1cIm51bWJlclwiKWlmKHI9PT00Nil2YXIgdD1zbDA7ZWxzZSBpZihyPT09NjEpdmFyIHQ9Y2wwO2Vsc2UgZT0xO2Vsc2UgZT0xO2lmKGUpdmFyIHQ9MDt2YXIgdT1XKHgpLGk9MDtpZih0eXBlb2YgdT09XCJudW1iZXJcIil7dmFyIGY9MDtpZigodT09PTQ2fHx1PT09NjEpJiYoZj0xKSxmKXt2YXIgbz0xO2k9MX19aWYoIWkpdmFyIG89MDtpZighbyl7dmFyIGw9RW0oMCwwLHgpO3JldHVyblswLDAsbFsyXSxsWzFdLDBdfXZhciBkPVQyKHgpLGs9Vyh4KTtpZih0eXBlb2Ygaz09XCJudW1iZXJcIilzd2l0Y2goayl7Y2FzZSAxOmNhc2UgOTpjYXNlIDExMzpyZXR1cm4gJHkoMCx4LGQpLFswLDAsMCxkLDBdfWVsc2UgaWYoa1swXT09PTQmJiFQKGtbM10sbG4pKXt2YXIgaD1rcigxLHgpO2lmKHR5cGVvZiBoPT1cIm51bWJlclwiKXN3aXRjaChoKXtjYXNlIDE6Y2FzZSA5OmNhc2UgMTEzOnJldHVyblswLHQsMCxpcyh4KSwwXX1lbHNlIGlmKGhbMF09PT00JiYhUChoWzNdLGxuKSl7dmFyIGc9VDIoeCk7cmV0dXJuIFowKHgpLFswLHQsWzAsaXMoeCldLGcsMF19cmV0dXJuICR5KDAseCxkKSxaMCh4KSxbMCwwLFswLHAocHhbMTNdLDAseCldLGQsMF19dmFyIEE9RW0oMSwwLHgpO3JldHVyblswLHQsQVsyXSxBWzFdLDBdfSxwQj1mdW5jdGlvbih4LHIpe3ZhciBlPVcoeCk7aWYodHlwZW9mIGU9PVwibnVtYmVyXCImJmwyPT09ZSl7dmFyIHQ9bDAoMCxmdW5jdGlvbihPKXtaMChPKTt2YXIgTD1XKE8pO3JldHVybiB0eXBlb2YgTCE9XCJudW1iZXJcIiYmTFswXT09PTQmJiFQKExbM10sbG4pPyhaMChPKSwyPD1yP1swLHAocHhbMTNdLDAsTyldOlswLGlzKE8pXSk6KFMxKHVsMCxPKSwwKX0seCksdT10WzJdLGk9dFsxXSxmPXU/WzAsWzAsaSx1WzFdXV06MDtyZXR1cm4gZj9bMCxbMSxmWzFdXV06MH11MCh4LDApO2Zvcih2YXIgbz0wLGw9MDs7KXt2YXIgZD1vP29bMV06MSxrPVcoeCk7aWYodHlwZW9mIGs9PVwibnVtYmVyXCIpe3ZhciBoPTA7aWYoayE9PTEmJlJyIT09ayYmKGg9MSksIWgpe3ZhciBnPUF4KGwpO3JldHVybiB1MCh4LDEpLFswLFswLGddXX19c3dpdGNoKDEtZCYmVngoeCwzMykscil7Y2FzZSAwOnZhciBBPUVtKDEsZmwwLHgpLEM9WzAsMCxBWzJdLEFbMV0sMF07YnJlYWs7Y2FzZSAxOnZhciBOPUVtKDEsaWwwLHgpLEM9WzAsMCxOWzJdLE5bMV0sMF07YnJlYWs7ZGVmYXVsdDp2YXIgQz13RTAoeCl9dmFyIG89WzAsbzEoeCw5KV0sbD1bMCxDLGxdfX0sa0w9ZnVuY3Rpb24oeCxyKXt2YXIgZT1yMigwLDAseCk7aWYoZVswXT09PTApcmV0dXJuWzAsZVsxXSxyXTt2YXIgdD1lWzFdWzJdO3JldHVyblswLDAscCh0LHIsZnVuY3Rpb24odSxpKXt2YXIgZj1pWzFdO3JldHVyblswLGYsSDAocXgodSxsVCw3OSksdSxmLGlbMl0pXX0pXX0sRTY9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXBCKHIseCksdT1rTChyLGxCKHIpKSxpPXVbMl07cmV0dXJuWzI4LFswLHgsaSwwLHQsazAoWzAsZV0sWzAsdVsxXV0sMCldXX0sZ209ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PTI8PXg/WzAscChweFsxM10sMCxyKSwwXTpbMCxpcyhyKSwwXSx1PVcociksaT0wO2lmKHR5cGVvZiB1PT1cIm51bWJlclwiJiZ1PT09OSl7dTAociw5KTt2YXIgZj1wQihyLHgpO2k9MX1pZighaSl2YXIgZj0wO3ZhciBvPWtMKHIsbEIocikpLGw9b1syXTtyZXR1cm5bMjgsWzAseCxsLFswLHRdLGYsazAoWzAsZV0sWzAsb1sxXV0sMCldXX0sVEUwPWZ1bmN0aW9uKHgpe3ZhciByPVFzKDEseCksZT13MChyKTt1MChyLDUwKTt2YXIgdD1XKHIpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXN3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIEU2KDIscixlKTtjYXNlIDQ2OmlmKGsxKHIpKXt1MChyLDQ2KTt2YXIgdT1XKHIpO2lmKHR5cGVvZiB1PT1cIm51bWJlclwiKXt2YXIgaT0wO2lmKGwyIT09dSYmdSYmKGk9MSksIWkpcmV0dXJuIEU2KDEscixlKX1yZXR1cm4gZ20oMSxyLGUpfWJyZWFrO2Nhc2UgNjE6aWYoazEocikpe3ZhciBmPWtyKDEsciksbz0wO2lmKHR5cGVvZiBmPT1cIm51bWJlclwiKXN3aXRjaChmKXtjYXNlIDA6cmV0dXJuIFowKHIpLEU2KDAscixlKTtjYXNlIDEwNjpyZXR1cm4gWjAociksUzEoMCxyKSxFNigwLHIsZSk7Y2FzZSA5Om89MTticmVha31lbHNlIGZbMF09PT00JiYhUChmWzNdLGlsKSYmKG89MSk7cmV0dXJuIG8/Z20oMixyLGUpOihaMChyKSxnbSgwLHIsZSkpfWJyZWFrO2Nhc2UgMTA2OnJldHVybiBFNigyLHIsZSl9ZWxzZSBpZih0WzBdPT09Mil7dmFyIGw9a0wocixobShyLHRbMV0pKSxkPWxbMl07cmV0dXJuWzI4LFswLDIsZCwwLDAsazAoWzAsZV0sWzAsbFsxXV0sMCldXX1yZXR1cm4gZ20oMixyLGUpfSxTRTA9MCxoTD1mdW5jdGlvbih4KXtyZXR1cm4gbDAoU0UwLFRFMCx4KX07STAoQkssZnVuY3Rpb24oeCl7dmFyIHI9UHgoeCksZT13MCh4KTtyZXR1cm4gdTAoeCw4KSxbMCxyLFsxOCxbMCxrMChbMCxlXSxbMCx4byh4KVsxXV0sMCldXV19KSxJMChXSyxmdW5jdGlvbih4KXt2YXIgcj13MCh4KSxlPWwwKDAsZnVuY3Rpb24oaCl7dTAoaCwzMik7dmFyIGc9MDtpZihXKGgpIT09OCYmIWUzKGgpKXt2YXIgQT1wKHB4WzEzXSwwLGgpLE49QVsyXVsxXSxDPUFbMV07MS1wKHcyWzNdLE4saFszXSkmJm54KGgsWzAsQyxbMjcsTl1dKTt2YXIgTz1bMCxBXTtnPTF9aWYoIWcpdmFyIE89MDt2YXIgTD1yMigwLDAsaCksTT0wO2lmKExbMF09PT0wKXZhciBWPUxbMV07ZWxzZXt2YXIgej1MWzFdLFk9elsxXTtpZihPKXt2YXIgdDA9T1sxXSxpMD16WzJdLGo9MCxLPVswLHAoaTAsdDAsZnVuY3Rpb24oZjAsczApe3JldHVybiBwKHF4KGYwLFBhLDgwKSxmMCxzMCl9KV0sSj1qO009MX1lbHNlIHZhciBWPVl9aWYoIU0pdmFyIEs9TyxKPVY7cmV0dXJuWzAsSyxKXX0seCksdD1lWzJdLHU9dFsxXSxpPWVbMV0sZj11PT09MD8xOjAsbz10WzJdO2lmKGYpdmFyIGw9eFs4XSxkPWx8fHhbOV0saz0xLWQ7ZWxzZSB2YXIgaz1mO3JldHVybiBrJiZueCh4LFswLGksMjldKSxbMCxpLFsxLFswLHUsazAoWzAscl0sWzAsb10sMCldXV19KSxJMChaSyxmdW5jdGlvbih4KXt2YXIgcj13MCh4KSxlPWwwKDAsZnVuY3Rpb24obyl7dTAobywzNSk7dmFyIGw9MDtpZihXKG8pIT09OCYmIWUzKG8pKXt2YXIgZD1wKHB4WzEzXSwwLG8pLGs9ZFsyXVsxXSxoPWRbMV07MS1wKHcyWzNdLGssb1szXSkmJm54KG8sWzAsaCxbMjcsa11dKTt2YXIgZz1bMCxkXTtsPTF9aWYoIWwpdmFyIGc9MDt2YXIgQT1yMigwLDAsbyksTj0wO2lmKEFbMF09PT0wKXZhciBDPUFbMV07ZWxzZXt2YXIgTz1BWzFdLEw9T1sxXTtpZihnKXt2YXIgTT1nWzFdLFY9T1syXSx6PTAsWT1bMCxwKFYsTSxmdW5jdGlvbihKLFEpe3JldHVybiBwKHF4KEosUGEsODEpLEosUSl9KV0sdDA9ejtOPTF9ZWxzZSB2YXIgQz1MfWlmKCFOKXZhciBZPWcsdDA9QztyZXR1cm5bMCxZLHQwXX0seCksdD1lWzJdLHU9ZVsxXSxpPXRbMl0sZj10WzFdO3JldHVybiAxLXhbOF0mJm54KHgsWzAsdSwzMF0pLFswLHUsWzQsWzAsZixrMChbMCxyXSxbMCxpXSwwKV1dXX0pLEkwKCRLLGZ1bmN0aW9uKHgpe3ZhciByPWwwKDAsZnVuY3Rpb24odSl7dmFyIGk9dzAodSk7dTAodSwyNik7dmFyIGY9UXgoaSx3MCh1KSk7dTAodSw0KTt2YXIgbz1hKHB4WzddLHUpO3UwKHUsNSk7dmFyIGw9YShweFsyXSx1KSxkPTEtdVs1XSxrPWQmJnM2KGwpO3JldHVybiBrJiZXdih1LGxbMV0pLFszOSxbMCxvLGwsazAoWzAsZl0sMCwwKV1dfSx4KSxlPXJbMV0sdD1yWzJdO3JldHVybiBhdCh4LFswLGUsNzldKSxbMCxlLHRdfSksSTAoRkssZnVuY3Rpb24oeCl7dmFyIHI9YShweFsxNV0seCksZT1yWzFdLHQ9clsyXSx1PXhvKHgpWzJdO3JldHVyblswLGUsWzAscCh1LHQsZnVuY3Rpb24oaSxmKXtyZXR1cm4gSDAocXgoaSxCcCw4MiksaSxlLGYpfSldXX0pLEkwKGs2LGZ1bmN0aW9uKHgscil7MS1rMShyKSYmVngocixsMik7dmFyIGU9UXgoeCx3MChyKSk7dTAociw2MSksSjEociwxKTt2YXIgdD1pcyhyKSx1PVcocik9PT05OD9nbihyLHQpOnQsaT1aZShyKTt1MChyLDgyKTt2YXIgZj1icyhyKTtLMShyKTt2YXIgbz1yMigwLDAscik7aWYob1swXT09PTApdmFyIGs9ZixoPW9bMV07ZWxzZSB2YXIgbD1vWzFdWzJdLGQ9MCxrPXAobCxmLGZ1bmN0aW9uKGcsQSl7cmV0dXJuIHAocXgoZyxTYSw4MyksZyxBKX0pLGg9ZDtyZXR1cm5bMCx1LGksayxrMChbMCxlXSxbMCxoXSwwKV19KSxJMChRSyxmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKTtyZXR1cm4gdTAociw2MCksWzE0LHAoazYsZSxyKV19LHgpfSksSTAoR0ssZnVuY3Rpb24oeCl7aWYoVW8oMSx4KSYmIXl6KDEseCkpe3ZhciByPWwwKDAsYShrNiwwKSx4KTtyZXR1cm5bMCxyWzFdLFszNSxyWzJdXV19cmV0dXJuIGEocHhbMl0seCl9KSxJMChoNixmdW5jdGlvbih4LHIsZSl7dmFyIHQ9eD94WzFdOjA7MS1rMShlKSYmVngoZSw5OCk7dmFyIHU9UXgocix3MChlKSk7dTAoZSw2Mik7dmFyIGk9dzAoZSk7dTAoZSw2MSk7dmFyIGY9UXgodSxpKTtKMShlLDEpO3ZhciBvPWlzKGUpLGw9VyhlKT09PTk4P2duKGUsbyk6byxkPVplKGUpLGs9VyhlKSxoPTA7aWYodHlwZW9mIGs9PVwibnVtYmVyXCImJms9PT04Nil7dTAoZSw4Nik7dmFyIGc9WzAsYnMoZSldO2g9MX1pZighaCl2YXIgZz0wO2lmKHQpe3ZhciBBPVcoZSksTj0wO2lmKHR5cGVvZiBBPT1cIm51bWJlclwiJiZBPT09ODIpe1Z4KGUsMTcpLFowKGUpO3ZhciBDPTA7aWYoVyhlKT09PTh8fGUzKGUpKUM9MTtlbHNlIHZhciBPPVswLGJzKGUpXTtpZihDKXZhciBPPTB9ZWxzZSBOPTE7aWYoTil2YXIgTz0wO3ZhciBMPU99ZWxzZXt1MChlLDgyKTt2YXIgTD1bMCxicyhlKV19SzEoZSk7dmFyIE09cjIoMCwwLGUpO2lmKE1bMF09PT0wKXZhciBWPUwsej1nLFk9ZCx0MD1sLGkwPU1bMV07ZWxzZXt2YXIgaj1NWzFdWzJdO2lmKEwpdmFyIEs9TFsxXSxKPTAsVj1bMCxwKGosSyxmdW5jdGlvbihpeCxyeCl7cmV0dXJuIHAocXgoaXgsU2EsODQpLGl4LHJ4KX0pXSx6PWcsWT1kLHQwPWwsaTA9SjtlbHNlIGlmKGcpdmFyIFE9Z1sxXSx4MD0wLFY9eDAsJD0wLHo9WzAscChqLFEsZnVuY3Rpb24oaXgscngpe3JldHVybiBwKHF4KGl4LFNhLDg1KSxpeCxyeCl9KV0sWT1kLHQwPWwsaTA9JDtlbHNlIGlmKGQpdmFyIGYwPWRbMV0sczA9MCx2MD0wLFY9czAsej12MCxvMD0wLFk9WzAscChqLGYwLGZ1bmN0aW9uKGl4LHJ4KXtyZXR1cm4gcChxeChpeCx6Qyw4NiksaXgscngpfSldLHQwPWwsaTA9bzA7ZWxzZSB2YXIgYzA9MCxkMD0wLEUwPTAsVj1jMCx6PWQwLFk9RTAsTDA9MCx0MD1wKGosbCxmdW5jdGlvbihpeCxyeCl7cmV0dXJuIHAocXgoaXgsUGEsODcpLGl4LHJ4KX0pLGkwPUwwfXJldHVyblswLHQwLFksVix6LGswKFswLGZdLFswLGkwXSwwKV19KSxJMChxSyxmdW5jdGlvbih4KXtyZXR1cm4gbDAoMCxmdW5jdGlvbihyKXt2YXIgZT13MChyKTtyZXR1cm4gdTAociw2MCksWzE1LEgwKGg2LG5sMCxlLHIpXX0seCl9KSxJMChISyxmdW5jdGlvbih4KXt2YXIgcj1rcigxLHgpO2lmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09NjEpe3ZhciBlPWwwKDAscChoNix0bDAsMCkseCk7cmV0dXJuWzAsZVsxXSxbMzYsZVsyXV1dfXJldHVybiBhKHB4WzJdLHgpfSksSTAoXzYsZnVuY3Rpb24oeCxyKXsxLWsxKHIpJiZWeChyLE90KTt2YXIgZT1ReCh4LHcwKHIpKTt1MChyLDUzKTt2YXIgdD1pcyhyKSx1PVcocik9PT00MT90OmduKHIsdCksaT1aZShyKSxmPVcocik9PT00MT9pOmVlKHIsaSksbz15ZShnUixyKSxsPW9bMl0sZD1vWzFdLGs9eG8ocilbMl0saD1wKGssbCxmdW5jdGlvbihnLEEpe3ZhciBOPUFbMV07cmV0dXJuWzAsTixIMChxeChnLG5qLDg4KSxnLE4sQVsyXSldfSk7cmV0dXJuWzAsdSxmLGQsaCxrMChbMCxlXSwwLDApXX0pLEkwKGJLLGZ1bmN0aW9uKHgpe3JldHVybiBsMCgwLGZ1bmN0aW9uKHIpe3ZhciBlPXcwKHIpO3JldHVybiB1MChyLDYwKSxbMTEscChfNixlLHIpXX0seCl9KSxJMCh4QixmdW5jdGlvbih4KXtpZighbXooMSx4KSlyZXR1cm4gUzYoeCk7dmFyIHI9bDAoMCxhKF82LDApLHgpO3JldHVyblswLHJbMV0sWzI5LHJbMl1dXX0pLEkwKF9tLGZ1bmN0aW9uKHgscil7dmFyIGU9UXMoMSxyKSx0PVF4KHgsdzAoZSkpO3UwKGUsNDApO3ZhciB1PXAocHhbMTNdLDAsZSksaT1XKGUpLGY9MDtpZih0eXBlb2YgaT09XCJudW1iZXJcIil7dmFyIG89MDtpZigoaT09PTk4fHwhaSkmJihvPTEpLG8pe3ZhciBsPWduKGUsdSk7Zj0xfX1pZighZil2YXIgbD11O3ZhciBkPVplKGUpLGs9VyhlKSxoPTA7aWYodHlwZW9mIGs9PVwibnVtYmVyXCImJiFrKXt2YXIgZz1lZShlLGQpO2g9MX1pZighaCl2YXIgZz1kO2lmKG8xKGUsNDEpKXt2YXIgQT1mSyhlKSxOPVcoZSksQz0wO2lmKHR5cGVvZiBOPT1cIm51bWJlclwiJiYhTil7dmFyIE89UDEoZSlbMl0sTD1bMCxwKE8sQSxmdW5jdGlvbigkMCxuMCl7cmV0dXJuIHgyKGEocXgoJDAsVmosMTQpLCQwKSxuMCl9KV07Qz0xfWlmKCFDKXZhciBMPVswLEFdO3ZhciBNPUx9ZWxzZSB2YXIgTT0wO3ZhciBWPVcoZSksej0wO2lmKHR5cGVvZiBWIT1cIm51bWJlclwiJiZWWzBdPT09NCYmIVAoVlszXSxwVSkpe1owKGUpO2Zvcih2YXIgWT0wOzspe3ZhciB0MD1bMCxmSyhlKSxZXSxpMD1XKGUpO2lmKHR5cGVvZiBpMD09XCJudW1iZXJcIiYmaTA9PT05KXt1MChlLDkpO3ZhciBZPXQwO2NvbnRpbnVlfXZhciBqPUF4KHQwKSxLPVcoZSksSj0wO2lmKHR5cGVvZiBLPT1cIm51bWJlclwiJiYhSyl7dmFyIFE9RXooZSxqKTtKPTF9aWYoIUopdmFyIFE9ajt2YXIgeDA9UTt6PTE7YnJlYWt9fWlmKCF6KXZhciB4MD0wO3ZhciAkPVcoZSksZjA9MDtpZih0eXBlb2YgJD09XCJudW1iZXJcIiYmJD09PTUyKXt2YXIgczA9SksoZSwwKSx2MD1XKGUpLG8wPTA7aWYodHlwZW9mIHYwPT1cIm51bWJlclwiJiYhdjApe3ZhciBjMD1bMCxneihlLHMwKV07bzA9MX1pZighbzApdmFyIGMwPVswLHMwXTt2YXIgZDA9YzA7ZjA9MX1pZighZjApdmFyIGQwPTA7dmFyIEUwPXllKEgwKHVtLDEsMCwwKSxlKSxMMD14byhlKVsyXSxYMD1wKEwwLEUwLGZ1bmN0aW9uKHh4LGcwKXt2YXIgJDA9ZzBbMV07cmV0dXJuWzAsJDAsSDAocXgoeHgsbmosODkpLHh4LCQwLGcwWzJdKV19KTtyZXR1cm5bMCxsLGcsWDAsTSx4MCxkMCxrMChbMCx0XSwwLDApXX0pLEkwKHJCLGZ1bmN0aW9uKHgpe3JldHVybiBsMCgwLGZ1bmN0aW9uKHIpe3ZhciBlPXcwKHIpO3JldHVybiB1MChyLDYwKSxbNixwKF9tLGUscildfSx4KX0pLEkwKHdtLGZ1bmN0aW9uKHgscil7dmFyIGU9UXgoeCx3MChyKSk7SHMocixybDApO3ZhciB0PWduKHIscChweFsxM10sZWwwLHIpKSx1PWVlKHIsWmUocikpLGk9eWUoVFIsciksZj1mUihyKT9zUihyLE9SKHIpKTpPUihyKSxvPXIyKDAsMCxyKTtpZihvWzBdPT09MCl2YXIgaz1mLGg9b1sxXTtlbHNlIHZhciBsPW9bMV1bMl0sZD0wLGs9cChsLGYsZnVuY3Rpb24oZyxBKXtyZXR1cm4gcChxeChnLGRELDkwKSxnLEEpfSksaD1kO3JldHVyblswLHQsdSxpLGssazAoWzAsZV0sWzAsaF0sMCldfSksSTAoZUIsZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9dzAocik7cmV0dXJuIHUwKHIsNjApLFs3LHAod20sZSxyKV19LHgpfSksSTAodEIsZnVuY3Rpb24oeCl7cmV0dXJuIGwwKDAsZnVuY3Rpb24ocil7dmFyIGU9dzAocik7cmV0dXJuIHUwKHIsNjApLFs4LHAoektbMV0sWzAsZV0scildfSx4KX0pLEkwKFRtLGZ1bmN0aW9uKHgscil7dmFyIGU9eD94WzFdOjAsdD1ReChlLHcwKHIpKTt1MChyLDE1KTt2YXIgdT1nbihyLHAocHhbMTNdLDAscikpLGk9bDAoMCxmdW5jdGlvbihMKXt2YXIgTT1lZShMLFplKEwpKSxWPXllKGVtLEwpO2lmKHUwKEwsODYpLEoxKEwsMSksUXkoTCkpdmFyIHo9WzEsYShubSxMKV07ZWxzZXt2YXIgWT1icyhMKTtpZihXKEwpPT09NjYpdmFyIHQwPVAxKEwpWzJdLGkwPVswLHAodDAsWSxmdW5jdGlvbihLLEope3JldHVybiBwKHF4KEssU2EsNiksSyxKKX0pXTtlbHNlIHZhciBpMD1bMCxZXTt2YXIgej1pMH1yZXR1cm4gSzEoTCksWzEyLFswLE0sVix6LDBdXX0sciksZj15ZSh1SyxyKSxvPXIyKDAsMCxyKTtpZihvWzBdPT09MCl2YXIgbD1mLGQ9aSxrPW9bMV07ZWxzZXt2YXIgaD1vWzFdWzJdO2lmKGYpdmFyIGc9ZlsxXSxBPTAsbD1bMCxwKGgsZyxmdW5jdGlvbih6LFkpe3JldHVybiBwKHF4KHosRlUsOTEpLHosWSl9KV0sZD1pLGs9QTtlbHNlIHZhciBOPTAsbD1OLEM9MCxkPXAoaCxpLGZ1bmN0aW9uKHosWSl7cmV0dXJuIHAocXgoeixTYSw5MikseixZKX0pLGs9Q312YXIgTz1bMCxkWzFdLGRdO3JldHVyblswLHUsTyxsLGswKFswLHRdLFswLGtdLDApXX0pLEkwKG5CLGZ1bmN0aW9uKHgpe3JldHVybiBsMCgwLGZ1bmN0aW9uKHIpe3ZhciBlPXcwKHIpO3UwKHIsNjApO3ZhciB0PVcociksdT0wO3JldHVybiB0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTY0JiYoVngociwxMiksdTAociw2NCksdT0xKSxbMTAscChUbSxbMCxlXSxyKV19LHgpfSksSTAodzYsZnVuY3Rpb24oeCxyLGUpe3ZhciB0PVF4KGUsdzAocikpO3N3aXRjaCh4KXtjYXNlIDA6dTAociwyNCk7YnJlYWs7Y2FzZSAxOnUwKHIsMjgpO2JyZWFrO2RlZmF1bHQ6dTAociwyNyl9dmFyIHU9cChweFsxM10seGwwLHIpLGk9UXYociksZj1yMigwLDAscik7aWYoZlswXT09PTApdmFyIGQ9aSxrPWZbMV07ZWxzZSB2YXIgbz1mWzFdWzJdLGw9MCxkPXAobyxpLGZ1bmN0aW9uKGgsZyl7cmV0dXJuIHAocXgoaCxqQyw5MyksaCxnKX0pLGs9bDtyZXR1cm5bMCx1LGQseCxrMChbMCx0XSxbMCxrXSwwKV19KSxJMChUNixmdW5jdGlvbih4LHIpe3JldHVybiBsMCgwLGZ1bmN0aW9uKGUpe3ZhciB0PXcwKGUpO3JldHVybiB1MChlLDYwKSxbMTYsSDAodzYseCxlLHQpXX0scil9KSxJMCh1QixmdW5jdGlvbih4LHIpe3ZhciBlPVB4KHIpLHQ9dzAocik7dTAociw2MCk7dmFyIHU9UXgodCx3MChyKSk7cmV0dXJuIEhzKHIsYjMwKSwheCYmVyhyKSE9PTEwP2wwKFswLGVdLGZ1bmN0aW9uKGkpe3ZhciBmPVcoaSksbz0wO2lmKHR5cGVvZiBmIT1cIm51bWJlclwiJiZmWzBdPT09Mil7dmFyIGw9aG0oaSxmWzFdKSxkPVAxKGkpWzJdLGs9WzEscChkLGwsZnVuY3Rpb24oTyxMKXt2YXIgTT1MWzFdO3JldHVyblswLE0sSDAocXgoTyxsVCwxNyksTyxNLExbMl0pXX0pXTtvPTF9aWYoIW8pdmFyIGs9WzAsZ24oaSxwKHB4WzEzXSwwLGkpKV07dmFyIGg9RnkoMCxmdW5jdGlvbihDKXt2YXIgTz13MChDKTt1MChDLDApO2Zvcih2YXIgTD0wLE09MDs7KXt2YXIgVj1XKEMpO2lmKHR5cGVvZiBWPT1cIm51bWJlclwiKXt2YXIgej0wO2lmKFYhPT0xJiZSciE9PVYmJih6PTEpLCF6KXt2YXIgWT1BeChNKSx0MD1ZPT09MD93MChDKTowO3JldHVybiB1MChDLDEpLFswLFswLFksajEoWzAsT10sWzAseG8oQylbMV1dLHQwLDApXSxMXX19dmFyIGkwPXAocEwsRzMwLEMpLGo9aTBbMl0sSz0wO2lmKEwpe3ZhciBKPTA7aWYoTFsxXSlqWzBdPT09MTM/VngoQywzKTooSz0xLEo9MSk7ZWxzZSBzd2l0Y2goalswXSl7Y2FzZSA5OnZhciBRPWpbMV1bMl0seDA9MDtpZihRKXN3aXRjaChRWzFdWzBdKXtjYXNlIDU6Y2FzZSA3OngwPTE7YnJlYWt9eDB8fFZ4KEMsMyk7YnJlYWs7Y2FzZSAxMzpWeChDLDE5KTticmVhaztkZWZhdWx0Oks9MSxKPTF9aWYoIUopdmFyIHYwPUx9ZWxzZSBzd2l0Y2goalswXSl7Y2FzZSA5OnZhciAkPWpbMV1bMl0sZjA9MDtpZigkKXN3aXRjaCgkWzFdWzBdKXtjYXNlIDU6Y2FzZSA3OnZhciBzMD1MO2YwPTE7YnJlYWt9aWYoIWYwKXZhciBzMD1xMzA7dmFyIHYwPXMwO2JyZWFrO2Nhc2UgMTM6dmFyIHYwPUgzMDticmVhaztkZWZhdWx0Oks9MX1pZihLKXZhciB2MD1MO3ZhciBMPXYwLE09WzAsaTAsTV19fSxpKSxnPWhbMl0sQT1oWzFdLE49Zz9nWzFdOjA7cmV0dXJuWzEyLFswLGssQSxOLGswKFswLHVdLDAsMCldXX0scik6bDAoWzAsZV0sYShpQix1KSxyKX0pLEkwKGlCLGZ1bmN0aW9uKHgscil7dmFyIGU9dzAocik7dTAociwxMCk7dmFyIHQ9dzAocik7SHMocixRMzApO3ZhciB1PUxsKFswLHgsWzAsZSxbMCx0LFswLHcwKHIpLDBdXV1dKSxpPVF2KHIpLGY9cjIoMCwwLHIpO2lmKGZbMF09PT0wKXZhciBkPWZbMV0saz1pO2Vsc2UgdmFyIG89ZlsxXVsyXSxsPTAsZD1sLGs9cChvLGksZnVuY3Rpb24oaCxnKXtyZXR1cm4gcChxeChoLGpDLDk0KSxoLGcpfSk7cmV0dXJuWzEzLFswLGssazAoWzAsdV0sWzAsZF0sMCldXX0pLEkwKHBMLGZ1bmN0aW9uKHgscil7dmFyIGU9eD94WzFdOjA7MS1rMShyKSYmVngocix2bik7dmFyIHQ9a3IoMSxyKTtpZih0eXBlb2YgdD09XCJudW1iZXJcIilzd2l0Y2godCl7Y2FzZSAyNDpyZXR1cm4gcChUNiwwLHIpO2Nhc2UgMjc6cmV0dXJuIHAoVDYsMixyKTtjYXNlIDI4OnJldHVybiBwKFQ2LDEscik7Y2FzZSA0MDpyZXR1cm4gYShyQixyKTtjYXNlIDQ2OmlmKFcocik9PT01MClyZXR1cm4gaEwocik7YnJlYWs7Y2FzZSA0ODppZihyWzI4XVsyXSlyZXR1cm4gYSh0QixyKTticmVhaztjYXNlIDQ5OmlmKGUpcmV0dXJuIHAoeUwsWzAsZV0scik7YnJlYWs7Y2FzZSA1MzpyZXR1cm4gYShiSyxyKTtjYXNlIDYxOnZhciB1PVcocik7cmV0dXJuIHR5cGVvZiB1PT1cIm51bWJlclwiJiZ1PT09NTAmJmU/aEwocik6YShRSyxyKTtjYXNlIDYyOnJldHVybiBhKHFLLHIpO2Nhc2UgMTU6Y2FzZSA2NDpyZXR1cm4gYShuQixyKX1lbHNlIGlmKHRbMF09PT00KXt2YXIgaT10WzNdO2lmKFAoaSxsbykpe2lmKCFQKGksdEopKXJldHVybiBwKHVCLGUscil9ZWxzZSBpZihyWzI4XVsxXSlyZXR1cm4gYShlQixyKX1pZighZSlyZXR1cm4gYShweFsyXSxyKTt2YXIgZj1XKHIpO3JldHVybiB0eXBlb2YgZj09XCJudW1iZXJcIiYmZj09PTUwPyhWeChyLDQ1KSxhKHB4WzJdLHIpKTpwKFQ2LDAscil9KSxJMChmQixmdW5jdGlvbih4KXtIcyh4LFozMCk7dmFyIHI9Vyh4KTtpZih0eXBlb2YgciE9XCJudW1iZXJcIiYmclswXT09PTIpcmV0dXJuIGhtKHgsclsxXSk7dmFyIGU9WzAsUHgoeCksJDMwXTtyZXR1cm4gUzEoRjMwLHgpLGV9KSxJMChvMyxmdW5jdGlvbih4KXt2YXIgcj1hKGZCLHgpLGU9clsyXSx0PXJbMV0sdT1yMigwLDAseCk7aWYodVswXT09PTApcmV0dXJuWzAsWzAsdCxlXSx1WzFdXTt2YXIgaT11WzFdWzJdLGY9MDtyZXR1cm5bMCxbMCx0LHAoaSxlLGZ1bmN0aW9uKG8sbCl7cmV0dXJuIEgwKHF4KG8sbFQsOTUpLG8sdCxsKX0pXSxmXX0pLEkwKFNtLGZ1bmN0aW9uKHgscixlKXt2YXIgdD14P3hbMV06MSx1PVcocik7aWYodHlwZW9mIHU9PVwibnVtYmVyXCIpe3ZhciBpPTA7aWYodSE9PTEmJlJyIT09dSYmKGk9MSksIWkpcmV0dXJuIEF4KGUpfTEtdCYmVngociwyNSk7dmFyIGY9bDAoMCxmdW5jdGlvbihvKXt2YXIgbD1UMihvKSxkPVcobyksaz0wO2lmKHR5cGVvZiBkIT1cIm51bWJlclwiJiZkWzBdPT09NCYmIVAoZFszXSxsbikpe1owKG8pO3ZhciBoPVswLFQyKG8pXTtrPTF9aWYoIWspdmFyIGg9MDtyZXR1cm5bMCxsLGhdfSxyKTtyZXR1cm4gSDAoU20sWzAsbzEociw5KV0scixbMCxmLGVdKX0pLEkwKGRMLGZ1bmN0aW9uKHgscil7cmV0dXJuIGcyKGZ1bmN0aW9uKGUpe3JldHVybiAkeShXMzAseCxlWzJdWzFdKX0scil9KSxJMChjQixmdW5jdGlvbih4LHIpe3ZhciBlPXN6KDEsUXMoMSxyKSksdD13MChlKSx1PVB4KGUpO3UwKGUsNDkpO3ZhciBpPVcoZSk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCIpe2lmKDUzPD1pKXtpZig2Mz5pKXN3aXRjaChpLTUzfDApe2Nhc2UgMDpyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7MS1rMShsKSYmVngobCxJcyk7dmFyIGQ9bDAoMCxhKF82LDApLGwpLGs9WzAsZFsxXSxbMjksZFsyXV1dO3JldHVyblsyMSxbMCxbMCxrXSwwLDAsMCxrMChbMCx0XSwwLDApXV19LGUpO2Nhc2UgODppZihrcigxLGUpIT09MClyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7MS1rMShsKSYmVngobCxJcyk7dmFyIGQ9a3IoMSxsKTtpZih0eXBlb2YgZD09XCJudW1iZXJcIil7aWYoZD09PTQ4KXJldHVybiBWeChsLDIxKSx1MChsLDYxKSxbMjEsWzAsMCwwLDAsMCxrMChbMCx0XSwwLDApXV07aWYobDI9PT1kKXt1MChsLDYxKTt2YXIgaz1QeChsKTt1MChsLGwyKTt2YXIgaD1hKG8zLGwpLGc9aFsxXTtyZXR1cm5bMjEsWzAsMCxbMCxbMSxbMCxrLDBdXV0sWzAsZ10sMCxrMChbMCx0XSxbMCxoWzJdXSwwKV1dfX12YXIgQT1sMCgwLGEoazYsMCksbCksTj1bMCxBWzFdLFszNSxBWzJdXV07cmV0dXJuWzIxLFswLFswLE5dLDAsMCwwLGswKFswLHRdLDAsMCldXX0sZSk7YnJlYWs7Y2FzZSA5OnJldHVybiBsMChbMCx1XSxmdW5jdGlvbihsKXt2YXIgZD1sMCgwLGZ1bmN0aW9uKGgpe3JldHVybiBhKHAoaDYsMCwwKSxoKX0sbCksaz1bMCxkWzFdLFszNixkWzJdXV07cmV0dXJuWzIxLFswLFswLGtdLDAsMCwwLGswKFswLHRdLDAsMCldXX0sZSl9fWVsc2UgaWYoaT09PTM2KXJldHVybiBsMChbMCx1XSxmdW5jdGlvbihsKXt2YXIgZD1ReCh0LHcwKGwpKSxrPWwwKDAsZnVuY3Rpb24oeil7cmV0dXJuIHUwKHosMzYpfSxsKVsxXSxoPW96KDEsbCk7aWYoam8oaCkpdmFyIGc9MCxBPVswLHk2KGgpXTtlbHNlIGlmKHU2KGgpKXZhciBnPTAsQT1bMCxrbShoLHgpXTtlbHNlIGlmKFcoaCk9PT00OCl2YXIgZz0wLEE9WzAsYShkSygwKSxoKV07ZWxzZSBpZihpUihoKSl2YXIgZz0wLEE9WzAsRFIoaCldO2Vsc2V7dmFyIE49YShweFsxMF0saCksQz1yMigwLDAsaCk7aWYoQ1swXT09PTApdmFyIE09Q1sxXSxWPU47ZWxzZSB2YXIgTz1DWzFdWzJdLEw9MCxNPUwsVj1wKE8sTixmdW5jdGlvbih0MCxpMCl7cmV0dXJuIHAocXgodDAsbW4sOTYpLHQwLGkwKX0pO3ZhciBnPU0sQT1bMSxWXX1yZXR1cm5bMjAsWzAsayxBLGswKFswLGRdLFswLGddLDApXV19LGUpfWlmKHU2KGUpKXJldHVybiBsMChbMCx1XSxmdW5jdGlvbihsKXt2YXIgZD1rbShsLHgpO3JldHVyblsyMSxbMCxbMCxkXSwwLDAsMSxrMChbMCx0XSwwLDApXV19LGUpO2lmKGpvKGUpKXJldHVybiBsMChbMCx1XSxmdW5jdGlvbihsKXthKEt5KGwpLHgpO3ZhciBkPXk2KGwpO3JldHVyblsyMSxbMCxbMCxkXSwwLDAsMSxrMChbMCx0XSwwLDApXV19LGUpO2lmKHR5cGVvZiBpPT1cIm51bWJlclwiKXt2YXIgZj1pK2RUfDA7aWYoNDxmPj4+MCl7aWYoZj09PTI0JiZlWzI4XVsyXSlyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7dmFyIGQ9cChweFszXSxbMCx4XSxsKTtyZXR1cm5bMjEsWzAsWzAsZF0sMCwwLDEsazAoWzAsdF0sMCwwKV1dfSxlKX1lbHNlIGlmKDE8Zi0xPj4+MClyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7dmFyIGQ9cChweFszXSxbMCx4XSxsKTtyZXR1cm5bMjEsWzAsWzAsZF0sMCwwLDEsazAoWzAsdF0sMCwwKV1dfSxlKX1pZihpUihlKSlyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7dmFyIGQ9RFIobCk7cmV0dXJuWzIxLFswLFswLGRdLDAsMCwxLGswKFswLHRdLDAsMCldXX0sZSk7aWYodHlwZW9mIGk9PVwibnVtYmVyXCImJmwyPT09aSlyZXR1cm4gbDAoWzAsdV0sZnVuY3Rpb24obCl7dmFyIGQ9UHgobCk7dTAobCxsMik7dmFyIGs9VyhsKSxoPTA7aWYodHlwZW9mIGshPVwibnVtYmVyXCImJmtbMF09PT00JiYhUChrWzNdLGxuKSl7WjAobCk7dmFyIGc9WzAsVDIobCldO2g9MX1pZighaCl2YXIgZz0wO3ZhciBBPWEobzMsbCksTj1BWzFdO3JldHVyblsyMSxbMCwwLFswLFsxLFswLGQsZ11dXSxbMCxOXSwxLGswKFswLHRdLFswLEFbMl1dLDApXV19LGUpO3ZhciBvPW8xKGUsNjEpPzA6MTtyZXR1cm4gbzEoZSwwKT9sMChbMCx1XSxmdW5jdGlvbihsKXt2YXIgZD1IMChTbSwwLGwsMCk7dTAobCwxKTt2YXIgaz1XKGwpLGg9MDtpZih0eXBlb2YgayE9XCJudW1iZXJcIiYma1swXT09PTQmJiFQKGtbM10saWwpKXt2YXIgZz1hKG8zLGwpLEE9Z1syXSxOPVswLGdbMV1dO2g9MX1pZighaCl7cChkTCxsLGQpO3ZhciBDPXIyKDAsMCxsKSxPPUNbMF09PT0wP0NbMV06Q1sxXVsxXSxBPU8sTj0wfXJldHVyblsyMSxbMCwwLFswLFswLGRdXSxOLG8sazAoWzAsdF0sWzAsQV0sMCldXX0sZSk6KFMxKEIzMCxlKSxwKHB4WzNdLFswLHhdLGUpKX0pLEkwKHlMLGZ1bmN0aW9uKHgpe3ZhciByPXg/eFsxXTowO2Z1bmN0aW9uIGUodSl7MS1rMSh1KSYmVngodSx2bik7dmFyIGk9dzAodSk7dTAodSw2MCk7dmFyIGY9c3ooMSxRcygxLHUpKSxvPVF4KGksdzAoZikpO3UwKGYsNDkpO3ZhciBsPVcoZik7aWYodHlwZW9mIGw9PVwibnVtYmVyXCIpc3dpdGNoKGwpe2Nhc2UgMzY6dmFyIGQ9UXgobyx3MChmKSksaz1sMCgwLGZ1bmN0aW9uKEEwKXtyZXR1cm4gdTAoQTAsMzYpfSxmKVsxXSxoPW96KDEsZiksZz1XKGgpLEE9MDtpZih0eXBlb2YgZz09XCJudW1iZXJcIilzd2l0Y2goZyl7Y2FzZSAxNTp2YXIgTj0wLEM9TixPPVswLFsxLGwwKDAsZnVuY3Rpb24oQTApe3JldHVybiBwKFRtLDAsQTApfSxoKV1dO0E9MTticmVhaztjYXNlIDQwOnZhciBDPTAsTz1bMCxbMixsMCgwLGEoX20sMCksaCldXTtBPTE7YnJlYWt9ZWxzZSBpZihnWzBdPT09NCYmIVAoZ1szXSxsbykmJmhbMjhdWzFdKXt2YXIgQz0wLE89WzAsWzMsbDAoMCxhKHdtLDApLGgpXV07QT0xfWlmKCFBKXt2YXIgTD1icyhoKSxNPXIyKDAsMCxoKTtpZihNWzBdPT09MCl2YXIgWT1NWzFdLHQwPUw7ZWxzZSB2YXIgVj1NWzFdWzJdLHo9MCxZPXosdDA9cChWLEwsZnVuY3Rpb24oQzAsRil7cmV0dXJuIHAocXgoQzAsU2EsOTcpLEMwLEYpfSk7dmFyIEM9WSxPPVswLFs0LHQwXV19cmV0dXJuWzksWzAsWzAsa10sTywwLDAsazAoWzAsZF0sWzAsQ10sMCldXTtjYXNlIDQ4OmlmKGZbMjhdWzJdKXt2YXIgaTA9ektbMV0saj1sMCgwLGZ1bmN0aW9uKEEwKXtyZXR1cm4gcChpMCwwLEEwKX0sZik7cmV0dXJuWzksWzAsMCxbMCxbOCxqXV0sMCwwLGswKFswLG9dLDAsMCldXX1icmVhaztjYXNlIDUzOmlmKHIpe3ZhciBLPWwwKDAsYShfNiwwKSxmKTtyZXR1cm5bOSxbMCwwLFswLFs3LEtdXSwwLDAsazAoWzAsb10sMCwwKV1dfWJyZWFrO2Nhc2UgNjE6aWYocil7dmFyIEo9bDAoMCxhKGs2LDApLGYpO3JldHVybls5LFswLDAsWzAsWzUsSl1dLDAsMCxrMChbMCxvXSwwLDApXV19YnJlYWs7Y2FzZSA2Mjp2YXIgUT1sMCgwLHAoaDYsejMwLDApLGYpO3JldHVybls5LFswLDAsWzAsWzYsUV1dLDAsMCxrMChbMCxvXSwwLDApXV07Y2FzZSAxMDY6dmFyIHgwPVB4KGYpO3UwKGYsbDIpO3ZhciAkPVcoZiksZjA9MDtpZih0eXBlb2YgJCE9XCJudW1iZXJcIiYmJFswXT09PTQmJiFQKCRbM10sbG4pKXtaMChmKTt2YXIgczA9WzAscChweFsxM10sMCxmKV07ZjA9MX1pZighZjApdmFyIHMwPTA7dmFyIHYwPWEobzMsZiksbzA9djBbMV07cmV0dXJuWzksWzAsMCwwLFswLFsxLFswLHgwLHMwXV1dLFswLG8wXSxrMChbMCxvXSxbMCx2MFsyXV0sMCldXTtjYXNlIDE1OmNhc2UgMjQ6Y2FzZSAyNzpjYXNlIDI4OmNhc2UgNDA6dmFyIGMwPVcoZik7aWYodHlwZW9mIGMwPT1cIm51bWJlclwiKXt2YXIgZDA9MDtpZigyNDw9YzApe2lmKDQxPmMwKXt2YXIgRTA9MDtzd2l0Y2goYzArZFR8MCl7Y2FzZSAwOnZhciBMMD1bMCxbMCxsMCgwLGZ1bmN0aW9uKEEwKXtyZXR1cm4gSDAodzYsMCxBMCwwKX0sZildXTticmVhaztjYXNlIDM6dmFyIEwwPVswLFswLGwwKDAsZnVuY3Rpb24oQTApe3JldHVybiBIMCh3NiwyLEEwLDApfSxmKV1dO2JyZWFrO2Nhc2UgNDp2YXIgTDA9WzAsWzAsbDAoMCxmdW5jdGlvbihBMCl7cmV0dXJuIEgwKHc2LDEsQTAsMCl9LGYpXV07YnJlYWs7Y2FzZSAxNjp2YXIgTDA9WzAsWzIsbDAoMCxhKF9tLDApLGYpXV07YnJlYWs7ZGVmYXVsdDpFMD0xfWlmKCFFMCl7dmFyIFgwPUwwO2QwPTF9fX1lbHNlIGlmKGMwPT09MTUpe3ZhciBYMD1bMCxbMSxsMCgwLGZ1bmN0aW9uKFkwKXtyZXR1cm4gcChUbSwwLFkwKX0sZildXTtkMD0xfWlmKGQwKXJldHVybls5LFswLDAsWDAsMCwwLGswKFswLG9dLDAsMCldXX10aHJvdyBxMChbMCx3cixLMzBdLDEpfWVsc2UgaWYobFswXT09PTQmJiFQKGxbM10sbG8pJiZmWzI4XVsxXSl7dmFyIHh4PVswLFszLGwwKDAsYSh3bSwwKSxmKV1dO3JldHVybls5LFswLDAseHgsMCwwLGswKFswLG9dLDAsMCldXX12YXIgZzA9VyhmKSwkMD0wO3R5cGVvZiBnMD09XCJudW1iZXJcIj9nMD09PTUzP1Z4KGYsMTUpOmcwPT09NjE/VngoZiwxNik6JDA9MTokMD0xLHUwKGYsMCk7dmFyIG4wPUgwKFNtLDAsZiwwKTt1MChmLDEpO3ZhciBpeD1XKGYpLHJ4PTA7aWYodHlwZW9mIGl4IT1cIm51bWJlclwiJiZpeFswXT09PTQmJiFQKGl4WzNdLGlsKSl7dmFyIGR4PWEobzMsZiksYXg9ZHhbMl0sU3g9WzAsZHhbMV1dO3J4PTF9aWYoIXJ4KXtwKGRMLGYsbjApO3ZhciBEMD1yMigwLDAsZiksTjA9RDBbMF09PT0wP0QwWzFdOkQwWzFdWzFdLGF4PU4wLFN4PTB9cmV0dXJuWzksWzAsMCwwLFswLFswLG4wXV0sU3gsazAoWzAsb10sWzAsYXhdLDApXV19dmFyIHQ9MDtyZXR1cm4gZnVuY3Rpb24odSl7cmV0dXJuIGwwKHQsZSx1KX19KTt2YXIgZEI9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSx5Qj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LGc2PWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sQW09ZnVuY3Rpb24oeCxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIEF4KHIpO3ZhciB0PWVbMV07aWYodFswXSE9PTApe3ZhciB1PXRbMV0saT11WzFdO2lmKGVbMl0pe3ZhciBmPWVbMl07cmV0dXJuIG54KHgsWzAsaSw2OV0pLGEoQW0oeCxyKSxmKX12YXIgbz11WzJdLGw9b1syXTtyZXR1cm4gYShBbSh4LFswLFsxLFswLGksWzAscChnNix4LG9bMV0pLGxdXV0scl0pLDApfXZhciBkPXRbMV0saz1kWzJdLGg9ZVsyXSxnPWRbMV07c3dpdGNoKGtbMF0pe2Nhc2UgMDp2YXIgQT1rWzJdLE49a1sxXSxDPWtbM107c3dpdGNoKE5bMF0pe2Nhc2UgMDp2YXIgTz1bMCxOWzFdXTticmVhaztjYXNlIDE6dmFyIE89WzEsTlsxXV07YnJlYWs7Y2FzZSAyOnZhciBPPVsyLE5bMV1dO2JyZWFrO2Nhc2UgMzp2YXIgTz1bMyxOWzFdXTticmVhaztjYXNlIDQ6dmFyIE89T3goUGwwKTticmVhaztkZWZhdWx0OnZhciBPPVs0LE5bMV1dfXZhciBMPUFbMl0sTT0wO2lmKExbMF09PT0yKXt2YXIgVj1MWzFdO2lmKCFWWzFdKXt2YXIgej1bMCxWWzNdXSxZPVZbMl07TT0xfX1pZighTSl2YXIgej0wLFk9cChnNix4LEEpO3ZhciB0MD1bMCxbMCxbMCxnLFswLE8sWSx6LENdXV0scl07YnJlYWs7Y2FzZSAxOm54KHgsWzAsa1syXVsxXSw1NV0pO3ZhciB0MD1yO2JyZWFrO2RlZmF1bHQ6bngoeCxbMCxrWzJdWzFdLE5sMF0pO3ZhciB0MD1yfXJldHVybiBhKEFtKHgsdDApLGgpfX07STAoZEIsZnVuY3Rpb24oeCxyKXt2YXIgZT1yWzJdLHQ9ZVsyXSx1PWVbMV0saT1yWzFdLGY9bjMoeCk7cmV0dXJuWzAsaSxbMCxbMCxhKEFtKHgsMCksdSksZix0XV1dfSk7dmFyIG1CPWZ1bmN0aW9uKHgscil7dmFyIGU9clsxXTtyZXR1cm4gYShweFsyM10scik/WzAscChnNix4LHIpXToobngoeCxbMCxlLDQxXSksMCl9LHYzPWZ1bmN0aW9uKHgscil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiBBeChyKTt2YXIgdD1lWzFdO3N3aXRjaCh0WzBdKXtjYXNlIDA6dmFyIHU9dFsxXSxpPXVbMl07aWYoaVswXT09PTIpe3ZhciBmPWlbMV07aWYoIWZbMV0pe3ZhciBvPWVbMl07cmV0dXJuIGEodjMoeCxbMCxbMCxbMCx1WzFdLFswLGZbMl0sWzAsZlszXV1dXV0scl0pLG8pfX12YXIgbD1lWzJdLGQ9bUIoeCx1KTtpZihkKXZhciBrPWRbMV0saD1bMCxbMCxbMCxrWzFdLFswLGssMF1dXSxyXTtlbHNlIHZhciBoPXI7cmV0dXJuIGEodjMoeCxoKSxsKTtjYXNlIDE6dmFyIGc9dFsxXSxBPWdbMV07aWYoZVsyXSl7dmFyIE49ZVsyXTtyZXR1cm4gbngoeCxbMCxBLDIwXSksYSh2Myh4LHIpLE4pfXZhciBDPWdbMl0sTz1DWzJdLEw9bUIoeCxDWzFdKSxNPUw/WzAsWzEsWzAsQSxbMCxMWzFdLE9dXV0scl06cjtyZXR1cm4gYSh2Myh4LE0pLDApO2RlZmF1bHQ6dmFyIFY9ZVsyXTtyZXR1cm4gYSh2Myh4LFswLFsyLHRbMV1dLHJdKSxWKX19fTtJMCh5QixmdW5jdGlvbih4LHIpe3ZhciBlPXJbMl0sdD1lWzJdLHU9ZVsxXSxpPXJbMV0sZj1uMyh4KTtyZXR1cm5bMCxpLFsxLFswLGEodjMoeCwwKSx1KSxmLHRdXV19KSxJMChnNixmdW5jdGlvbih4LHIpe3ZhciBlPXJbMl0sdD1yWzFdO3N3aXRjaChlWzBdKXtjYXNlIDA6cmV0dXJuIHAoeUIseCxbMCx0LGVbMV1dKTtjYXNlIDg6dmFyIHU9ZVsxXSxpPXVbMl1bMV0sZj11WzFdLG89MDtpZih4WzVdJiZCdihpKT9ueCh4LFswLGYsNzZdKTpvPTEsbyYmMS14WzVdKXt2YXIgbD0wO2lmKHhbMThdJiZBcihpLGoyKT9ueCh4LFswLGYsTnNdKTpsPTEsbCl7dmFyIGQ9eFsxOV0saz1kJiZBcihpLEV2KTtrJiZueCh4LFswLGYsNl0pfX1yZXR1cm5bMCx0LFsyLFswLHUsbjMoeCksMF1dXTtjYXNlIDIzOnJldHVybiBwKGRCLHgsWzAsdCxlWzFdXSk7ZGVmYXVsdDpyZXR1cm5bMCx0LFszLFswLHQsZV1dXX19KTt2YXIgQTY9ZnVuY3Rpb24oeCxyKXt2YXIgZT1XKHgpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXtpZihlPT09NilyZXR1cm4gbDAoMCxmdW5jdGlvbihpKXt2YXIgZj13MChpKTt1MChpLDYpO2Zvcih2YXIgbz0wOzspe3ZhciBsPVcoaSk7aWYodHlwZW9mIGw9PVwibnVtYmVyXCIpe3ZhciBkPTA7aWYoMTM8PWwpUnI9PT1sJiYoZD0xKTtlbHNlIGlmKDc8PWwpc3dpdGNoKGwtN3wwKXtjYXNlIDA6ZD0xO2JyZWFrO2Nhc2UgMjp2YXIgaz1QeChpKTt1MChpLDkpO3ZhciBvPVswLFsyLGtdLG9dO2NvbnRpbnVlO2Nhc2UgNTp2YXIgaD13MChpKSxnPWwwKDAsZnVuY3Rpb24oail7cmV0dXJuIHUwKGosMTIpLEE2KGoscil9LGkpLEE9Z1sxXSxOPWdbMl0sQz1bMSxbMCxBLFswLE4sazAoWzAsaF0sMCwwKV1dXTtXKGkpIT09NyYmKG54KGksWzAsQSwyMF0pLFcoaSk9PT05JiZaMChpKSk7dmFyIG89WzAsQyxvXTtjb250aW51ZX1pZihkKXt2YXIgTz1BeChvKSxMPXcwKGkpO3UwKGksNyk7dmFyIE09VyhpKT09PTg2P1sxLFF2KGkpXTpuMyhpKTtyZXR1cm5bMSxbMCxPLE0sajEoWzAsZl0sWzAsaHgoaSldLEwsMCldXX19dmFyIFY9bDAoMCxmdW5jdGlvbihpMCl7dmFyIGo9QTYoaTAsciksSz1XKGkwKSxKPTA7aWYodHlwZW9mIEs9PVwibnVtYmVyXCImJks9PT04Mil7dTAoaTAsODIpO3ZhciBRPVswLGEocHhbMTBdLGkwKV07Sj0xfWlmKCFKKXZhciBRPTA7cmV0dXJuWzAsaixRXX0saSksej1WWzJdLFk9WzAsWzAsVlsxXSxbMCx6WzFdLHpbMl1dXV07VyhpKSE9PTcmJnUwKGksOSk7dmFyIG89WzAsWSxvXX19LHgpO2lmKCFlKXt2YXIgdD1mdW5jdGlvbihpKXt2YXIgZj1XKGkpO3JldHVybiB0eXBlb2YgZj09XCJudW1iZXJcIiYmZj09PTgyPyh1MChpLDgyKSxbMCxhKHB4WzEwXSxpKV0pOjB9O3JldHVybiBsMCgwLGZ1bmN0aW9uKGkpe3ZhciBmPXcwKGkpO3UwKGksMCk7Zm9yKHZhciBvPTAsbD0wLGQ9MDs7KXt2YXIgaz1XKGkpO2lmKHR5cGVvZiBrPT1cIm51bWJlclwiKXt2YXIgaD0wO2lmKGshPT0xJiZSciE9PWsmJihoPTEpLCFoKXtsJiZueChpLFswLGxbMV0sOTVdKTt2YXIgZz1BeChkKSxBPXcwKGkpO3UwKGksMSk7dmFyIE49aHgoaSksQz1XKGkpPT09ODY/WzEsUXYoaSldOm4zKGkpO3JldHVyblswLFswLGcsQyxqMShbMCxmXSxbMCxOXSxBLDApXV19fWlmKFcoaSk9PT0xMil2YXIgTz13MChpKSxMPWwwKDAsZnVuY3Rpb24oU3gpe3JldHVybiB1MChTeCwxMiksQTYoU3gscil9LGkpLE09TFsyXSxWPUxbMV0sej1bMCxbMSxbMCxWLFswLE0sazAoWzAsT10sMCwwKV1dXV07ZWxzZXt2YXIgWT1QeChpKSx0MD1wKHB4WzIwXSwwLGkpLGkwPVcoaSksaj0wO2lmKHR5cGVvZiBpMD09XCJudW1iZXJcIiYmaTA9PT04Nil7dTAoaSw4Nik7dmFyIEs9bDAoWzAsWV0sZnVuY3Rpb24oRDApe3ZhciBOMD1BNihEMCxyKTtyZXR1cm5bMCxOMCx0KEQwKV19LGkpLEo9S1syXSxRPXQwWzJdLHgwPUpbMl0sJD1KWzFdLGYwPUtbMV07c3dpdGNoKFFbMF0pe2Nhc2UgMDp2YXIgczA9WzAsUVsxXV07YnJlYWs7Y2FzZSAxOnZhciBzMD1bMSxRWzFdXTticmVhaztjYXNlIDI6dmFyIHMwPVsyLFFbMV1dO2JyZWFrO2Nhc2UgMzp2YXIgczA9WzMsUVsxXV07YnJlYWs7Y2FzZSA0OnZhciBzMD1PeChnbDApO2JyZWFrO2RlZmF1bHQ6dmFyIHMwPVs0LFFbMV1dfXZhciB6PVswLFswLFswLGYwLFswLHMwLCQseDAsMF1dXV19ZWxzZSBqPTE7aWYoail7dmFyIHYwPXQwWzJdO2lmKHYwWzBdPT09Myl7dmFyIG8wPXYwWzFdLGMwPW8wWzJdWzFdLGQwPW8wWzFdO1Z5KGMwKT9ueChpLFswLGQwLGl0XSk6cjMoYzApJiZhdChpLFswLGQwLDg1XSk7dmFyIEUwPWwwKFswLFldLGZ1bmN0aW9uKEQwLE4wKXtyZXR1cm4gZnVuY3Rpb24oQTApe3ZhciBZMD1bMCxOMCxbMixbMCxEMCxuMyhBMCksMF1dXTtyZXR1cm5bMCxZMCx0KEEwKV19fShvMCxkMCksaSksTDA9RTBbMl0sej1bMCxbMCxbMCxFMFsxXSxbMCxbMyxvMF0sTDBbMV0sTDBbMl0sMV1dXV19ZWxzZXtTMShBbDAsaSk7dmFyIHo9MH19fWlmKHope3ZhciBYMD16WzFdLHh4PVgwWzFdWzFdLGcwPW8/KG54KGksWzAseHgsNjldKSwwKTpsO2lmKFgwWzBdPT09MCl2YXIgbjA9ZzAsaXg9bztlbHNlIHZhciAkMD1XKGkpPT09OT9bMCxQeChpKV06MCxuMD0kMCxpeD0xO1coaSkhPT0xJiZ1MChpLDkpO3ZhciBvPWl4LGw9bjAsZD1bMCxYMCxkXX19fSx4KX19dmFyIHU9SDAocHhbMTRdLHgsMCxyKTtyZXR1cm5bMCx1WzFdLFsyLHVbMl1dXX0sUG09ZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KTtpZih0eXBlb2Ygcj09XCJudW1iZXJcIil7dmFyIGU9citoSnwwLHQ9MDtpZig2PGU+Pj4wP2U9PT0xNCYmKHQ9MSk6NDxlLTE+Pj4wJiYodD0xKSx0KXJldHVybiBoeCh4KX1yZXR1cm4gcmUoeCk/Sm8oeCk6MH0sa0I9ZnVuY3Rpb24oeCl7cmV0dXJuIFcoeCk9PT0xPzA6WzAsYShweFs3XSx4KV19LHJvPWZ1bmN0aW9uKHgpe3ZhciByPVB4KHgpLGU9Vyh4KSx0PTA7aWYodHlwZW9mIGUhPVwibnVtYmVyXCImJmVbMF09PT04KXt2YXIgdT1lWzFdO3Q9MX1pZighdCl7UzEoRGwwLHgpO3ZhciB1PVVsMH12YXIgaT13MCh4KTtaMCh4KTt2YXIgZj1XKHgpLG89MDtpZih0eXBlb2YgZj09XCJudW1iZXJcIil7dmFyIGw9ZitPRHwwLGQ9MDtpZig3MjxsPj4+MD9sPT09NzYmJihkPTEpOjcwPGwtMT4+PjAmJihkPTEpLGQpe3ZhciBrPWh4KHgpO289MX19aWYoIW8pdmFyIGs9UG0oeCk7cmV0dXJuWzAscixbMCx1LGswKFswLGldLFswLGtdLDApXV19LGhCPWZ1bmN0aW9uKHgpe3ZhciByPWtyKDEseCk7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpe2lmKHI9PT0xMClmb3IodmFyIGU9bDAoMCxmdW5jdGlvbihpKXt2YXIgZj1bMCxybyhpKV07cmV0dXJuIHUwKGksMTApLFswLGYscm8oaSldfSx4KTs7KXt2YXIgdD1XKHgpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiJiZ0PT09MTApe3ZhciB1PWVbMV0sZT1sMChbMCx1XSxmdW5jdGlvbihmKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIHUwKG8sMTApLFswLFsxLGZdLHJvKG8pXX19KGUpLHgpO2NvbnRpbnVlfXJldHVyblsyLGVdfWlmKHI9PT04NilyZXR1cm5bMSxsMCgwLGZ1bmN0aW9uKGkpe3ZhciBmPXJvKGkpO3JldHVybiB1MChpLDg2KSxbMCxmLHJvKGkpXX0seCldfXJldHVyblswLHJvKHgpXX0sUDY9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gQXIoeFsyXVsxXSxyWzJdWzFdKX0sX0I9ZnVuY3Rpb24oeCxyKXt2YXIgZT14WzJdLHQ9ZVsxXSx1PXJbMl0saT11WzFdLGY9MCxvPWVbMl0sbD11WzJdO2lmKHRbMF09PT0wKXt2YXIgZD10WzFdO2lmKGlbMF09PT0wKXZhciBoPVA2KGQsaVsxXSk7ZWxzZSBmPTF9ZWxzZXt2YXIgaz10WzFdO2lmKGlbMF09PT0wKWY9MTtlbHNlIHZhciBoPV9CKGssaVsxXSl9aWYoZil2YXIgaD0wO3JldHVybiBoJiZQNihvLGwpfSxObT1mdW5jdGlvbih4LHIpe3N3aXRjaCh4WzBdKXtjYXNlIDA6dmFyIGU9eFsxXTtpZihyWzBdPT09MClyZXR1cm4gUDYoZSxyWzFdKTticmVhaztjYXNlIDE6dmFyIHQ9eFsxXTtpZihyWzBdPT09MSl7dmFyIHU9dFsyXSxpPXJbMV1bMl0sZj11WzJdLG89aVsyXSxsPVA2KHVbMV0saVsxXSk7cmV0dXJuIGwmJlA2KGYsbyl9YnJlYWs7ZGVmYXVsdDp2YXIgZD14WzFdO2lmKHJbMF09PT0yKXJldHVybiBfQihkLHJbMV0pfXJldHVybiAwfSxfTD1mdW5jdGlvbih4KXtzd2l0Y2goeFswXSl7Y2FzZSAwOnJldHVybiB4WzFdWzFdO2Nhc2UgMTpyZXR1cm4geFsxXVsxXTtkZWZhdWx0OnJldHVybiB4WzFdWzFdfX0sd0I9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSx3TD1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LFRMPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX07STAod0IsZnVuY3Rpb24oeCxyKXt2YXIgZT1XKHIpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXtpZihlPT09MCl7SjEociwwKTt2YXIgdD1sMCgwLGZ1bmN0aW9uKGcpe3UwKGcsMCk7dmFyIEE9VyhnKSxOPTA7aWYodHlwZW9mIEE9PVwibnVtYmVyXCImJkE9PT0xMil7dmFyIEM9dzAoZyk7dTAoZywxMik7dmFyIE89YShweFsxMF0sZyksVj1bMyxbMCxPLGswKFswLENdLDAsMCldXTtOPTF9aWYoIU4pdmFyIEw9a0IoZyksTT1MPzA6dzAoZyksVj1bMixbMCxMLGoxKDAsMCxNLDApXV07cmV0dXJuIHUwKGcsMSksVn0sciksdT10WzJdLGk9dFsxXTtyZXR1cm4gSzEociksWzAsaSx1XX19ZWxzZSBpZihlWzBdPT09OSl7dmFyIGY9ZVszXSxvPWVbMl0sbD1lWzFdO3JldHVybiB1MChyLGUpLFswLGwsWzQsWzAsbyxmXV1dfXZhciBkPXAoVEwseCxyKSxrPWRbMl0saD1kWzFdO3JldHVybiBjbjw9a1sxXT9bMCxoLFsxLGtbMl1dXTpbMCxoLFswLGtbMl1dXX0pO3ZhciBDbT1mdW5jdGlvbih4KXtzd2l0Y2goeFswXSl7Y2FzZSAwOnJldHVybiB4WzFdWzJdWzFdO2Nhc2UgMTp2YXIgcj14WzFdWzJdLGU9clsxXSx0PUZ4KENsMCxyWzJdWzJdWzFdKTtyZXR1cm4gRngoZVsyXVsxXSx0KTtkZWZhdWx0OnZhciB1PXhbMV1bMl0saT11WzFdLGY9dVsyXSxvPWlbMF09PT0wP2lbMV1bMl1bMV06Q20oWzIsaVsxXV0pO3JldHVybiBGeChvLEZ4KElsMCxmWzJdWzFdKSl9fTtJMCh3TCxmdW5jdGlvbih4LHIpe3ZhciBlPXcwKHIpLHQ9bDAoMCxmdW5jdGlvbihJcil7dTAoSXIsOTgpO3ZhciBSMT1XKElyKTtpZih0eXBlb2YgUjE9PVwibnVtYmVyXCIpe2lmKFIxPT09OTkpcmV0dXJuIFowKElyKSxSbDB9ZWxzZSBpZihSMVswXT09PTgpe3ZhciBfPWhCKElyKSxiPTA7aWYoazEoSXIpJiZXKElyKT09PTk4JiZEZSE9PWtyKDEsSXIpKXt2YXIgcjA9V3koSXIsMCxhbSk7Yj0xfWlmKCFiKXZhciByMD0wO2Zvcih2YXIgUzA9MDs7KXt2YXIgRz1XKElyKTtpZih0eXBlb2YgRz09XCJudW1iZXJcIil7aWYoRz09PTApe3ZhciBoMD13MChJcik7SjEoSXIsMCk7dmFyIHowPWwwKDAsZnVuY3Rpb24oJHgpe3UwKCR4LDApLHUwKCR4LDEyKTt2YXIgeHI9YShweFsxMF0sJHgpO3JldHVybiB1MCgkeCwxKSx4cn0sSXIpLE0wPXowWzJdLHV4PXowWzFdO0sxKElyKTt2YXIgUzA9WzAsWzEsWzAsdXgsWzAsTTAsazAoWzAsaDBdLFswLFBtKElyKV0sMCldXV0sUzBdO2NvbnRpbnVlfX1lbHNlIGlmKEdbMF09PT04KXt2YXIgUzA9WzAsWzAsbDAoMCxmdW5jdGlvbigkeCl7dmFyIHhyPWtyKDEsJHgpLHp4PTA7aWYodHlwZW9mIHhyPT1cIm51bWJlclwiJiZ4cj09PTg2KXt2YXIgT3I9WzEsbDAoMCxmdW5jdGlvbihoZSl7dmFyIHB0PXJvKGhlKTtyZXR1cm4gdTAoaGUsODYpLFswLHB0LHJvKGhlKV19LCR4KV07eng9MX1pZighengpdmFyIE9yPVswLHJvKCR4KV07dmFyIFd4PVcoJHgpLEIyPTA7aWYodHlwZW9mIFd4PT1cIm51bWJlclwiJiZXeD09PTgyKXt1MCgkeCw4Mik7dmFyIGx0PXcwKCR4KSxtZT1XKCR4KSxQbj0wO2lmKHR5cGVvZiBtZT09XCJudW1iZXJcIilpZihtZT09PTApe3ZhciB0bz13MCgkeCk7SjEoJHgsMCk7dmFyIE5uPWwwKDAsZnVuY3Rpb24oaGUpe3UwKGhlLDApO3ZhciBwdD1rQihoZSk7cmV0dXJuIHUwKGhlLDEpLHB0fSwkeCksY3M9Tm5bMV0sa2U9Tm5bMl07SzEoJHgpO3ZhciBDbj1bMCxrZSxqMShbMCx0b10sWzAsUG0oJHgpXSwwLDApXTtDblsxXXx8bngoJHgsWzAsY3MsNTJdKTt2YXIgdGU9WzAsWzEsWzAsY3MsQ25dXV19ZWxzZSBQbj0xO2Vsc2UgaWYobWVbMF09PT0xMCl7dmFyIEZ0PW1lWzNdLHlyPW1lWzJdLFF0PW1lWzFdO3UwKCR4LG1lKTt2YXIgdGU9WzAsWzAsWzAsUXQsWzAseXIsRnQsazAoWzAsbHRdLFswLFBtKCR4KV0sMCldXV1dfWVsc2UgUG49MTtpZihQbil7VngoJHgsNDApO3ZhciB0ZT1bMCxbMCxbMCxQeCgkeCksTWwwXV1dfXZhciBJbj10ZTtCMj0xfWlmKCFCMil2YXIgSW49MDtyZXR1cm5bMCxPcixJbl19LElyKV0sUzBdO2NvbnRpbnVlfXZhciBaeD1BeChTMCksTHg9WzAseW8sWzAsXyxyMCxvMShJcixEZSksWnhdXTtyZXR1cm4gbzEoSXIsOTkpP1swLEx4XToocXMoSXIsOTkpLFsxLEx4XSl9fXJldHVybiBxcyhJciw5OSksTGwwfSxyKTtLMShyKTt2YXIgdT10WzJdO2lmKHVbMF09PT0wKXZhciBpPXVbMV0sZj10eXBlb2YgaT09XCJudW1iZXJcIj8wOmlbMl1bM107ZWxzZSB2YXIgZj0xO2lmKGYpdmFyIG89SUEsbD1vLGQ9bDAoMCxmdW5jdGlvbihJcil7cmV0dXJuIDB9LHIpO2Vsc2V7SjEociwzKTtmb3IodmFyIGs9dFsyXVsxXSxoPXR5cGVvZiBrPT1cIm51bWJlclwiPzA6WzAsa1syXVsxXV0sZz1QeChyKSxBPTA7Oyl7dmFyIE49eDMociksQz0wO2lmKEEmJmgpe3ZhciBPPUFbMV0sTD1PWzJdLE09MCxWPWhbMV0sej1BWzJdO2lmKExbMF09PT0wKXt2YXIgWT1MWzFdLHQwPVlbMl07aWYodDApdmFyIGkwPXQwWzFdWzJdWzFdLGo9MS1ObShZWzFdWzJdWzFdLGkwKSxLPWomJk5tKFYsaTApO2Vsc2UgTT0xfWVsc2UgTT0xO2lmKE0pdmFyIEs9MDtpZihLKXt2YXIgSj1PWzJdLFE9MDtpZihKWzBdPT09MCl7dmFyIHgwPUpbMV0sJD14MFsyXTtpZigkKXt2YXIgZjA9JFsxXSxzMD11MShPWzFdLHgwWzNdWzFdKSx2MD1bMCx5byxmMF0sbzA9WzAsczAsWzAsWzAseDBbMV0sMCx4MFszXSx4MFs0XV1dXTtRPTF9fWlmKCFRKXZhciB2MD1JQSxvMD1PO0sxKHIpO3ZhciBjMD1bMCxBeChbMCxvMCx6XSksTix2MF07Qz0xfX1pZighQyl7dmFyIGQwPVcociksRTA9MDtpZih0eXBlb2YgZDA9PVwibnVtYmVyXCIpe2lmKGQwPT09OTgpe0oxKHIsMik7dmFyIEwwPVcociksWDA9a3IoMSxyKSx4eD0wO2lmKHR5cGVvZiBMMD09XCJudW1iZXJcIiYmTDA9PT05OCYmdHlwZW9mIFgwPT1cIm51bWJlclwiKXt2YXIgZzA9MDtpZigoRGU9PT1YMHx8UnI9PT1YMCkmJihnMD0xKSxnMCl7dmFyICQwPWwwKDAsZnVuY3Rpb24oYil7dTAoYiw5OCksdTAoYixEZSk7dmFyIHIwPVcoYik7aWYodHlwZW9mIHIwPT1cIm51bWJlclwiKXtpZihyMD09PTk5KXJldHVybiBaMChiKSxjbn1lbHNlIGlmKHIwWzBdPT09OCl7dmFyIFMwPWhCKGIpO3JldHVybiBCeShiLDk5KSxbMCx5byxbMCxTMF1dfXJldHVybiBxcyhiLDk5KSxjbn0sciksbjA9JDBbMl0saXg9JDBbMV0scng9dHlwZW9mIG4wPT1cIm51bWJlclwiP1swLGNuLGl4XTpbMCx5byxbMCxpeCxuMFsyXV1dLGR4PXJbMjRdWzFdLGF4PTA7aWYoZHgpe3ZhciBTeD1keFsyXTtpZihTeCl7dmFyIEQwPVN4WzJdO2F4PTF9fWlmKCFheCl2YXIgRDA9T3goaXMwKTtyWzI0XVsxXT1EMDt2YXIgTjA9YmEociksQTA9YmwoclsyNV1bMV0sTjApO3JbMjZdWzFdPUEwO3ZhciBjMD1bMCxBeChBKSxOLHJ4XTtFMD0xLHh4PTF9fWlmKCF4eCl7dmFyIFkwPXAod0wsaCxyKSxDMD1ZMFsyXSxGPVkwWzFdLEg9Y248PUMwWzFdP1swLEYsWzEsQzBbMl1dXTpbMCxGLFswLEMwWzJdXV0sQT1bMCxILEFdO2NvbnRpbnVlfX1lbHNlIGlmKFJyPT09ZDApe1MxKDAscik7dmFyIGMwPVswLEF4KEEpLE4sSUFdO0UwPTF9fWlmKCFFMCl7dmFyIEE9WzAscCh3QixoLHIpLEFdO2NvbnRpbnVlfX12YXIgQj1jMFszXSxhMD1jMFsxXSxtMD1OP05bMV06ZyxsPUIsZD1bMCx1MShnLG0wKSxhMF07YnJlYWt9fXZhciBQMD1oeChyKSxEPTA7aWYodHlwZW9mIGwhPVwibnVtYmVyXCIpe3ZhciBPMD1sWzFdLEswPTA7aWYoeW89PT1PMCl7dmFyIGowPWxbMl0sb3g9ajBbMl1bMV0sYjA9dFsyXSxfeD1qMFsxXTtpZihiMFswXT09PTApe3ZhciBCMD1iMFsxXTtpZih0eXBlb2YgQjA9PVwibnVtYmVyXCIpbngocixbMCxfTChveCksT2wwXSk7ZWxzZXt2YXIgVD1CMFsyXVsxXTtpZigxLU5tKG94LFQpKXt2YXIgWD0wO2lmKHgmJk5tKHhbMV0sb3gpKXt2YXIgRjA9WzE5LENtKFQpXTtueChyLFswLF9MKFQpLEYwXSksWD0xfWlmKCFYKXt2YXIgc3g9WzEzLENtKFQpXTtueChyLFswLF9MKG94KSxzeF0pfX19fXZhciBleD1feDtLMD0xfWVsc2UgaWYoY249PT1PMCl7dmFyIFUwPWxbMl0sTng9dFsyXTtpZihOeFswXT09PTApe3ZhciBteD1OeFsxXTt0eXBlb2YgbXghPVwibnVtYmVyXCImJm54KHIsWzAsVTAsWzEzLENtKG14WzJdWzFdKV1dKX12YXIgZXg9VTA7SzA9MX1pZihLMCl7dmFyIEJ4PWV4O0Q9MX19aWYoIUQpdmFyIEJ4PXRbMV07dmFyIEd4PXRbMl1bMV0sSjA9dFsxXTtpZih0eXBlb2YgR3g9PVwibnVtYmVyXCIpe3ZhciBieD0wLEp4PWswKFswLGVdLFswLFAwXSwwKTtpZih0eXBlb2YgbCE9XCJudW1iZXJcIil7dmFyIFcwPWxbMV0sbnI9MDtpZih5bz09PVcwKXt2YXIgVjA9bFsyXVsxXTtucj0xfWVsc2UgaWYoY249PT1XMCl7dmFyIFYwPWxbMl07bnI9MX1pZihucil7dmFyIFNyPVYwO2J4PTF9fWlmKCFieCl2YXIgU3I9Qng7dmFyIFVyPVswLGNuLFswLEowLFNyLGQsSnhdXX1lbHNle3ZhciBseD1HeFsyXSxicj0wLGUyPWswKFswLGVdLFswLFAwXSwwKTtpZih0eXBlb2YgbCE9XCJudW1iZXJcIiYmeW89PT1sWzFdKXt2YXIgaDE9WzAsbFsyXV07YnI9MX1pZighYnIpdmFyIGgxPTA7dmFyIFVyPVswLHlvLFswLFswLEowLGx4XSxoMSxkLGUyXV19cmV0dXJuWzAsdTEodFsxXSxCeCksVXJdfSksSTAoVEwsZnVuY3Rpb24oeCxyKXtyZXR1cm4gSjEociwyKSxwKHdMLHgscil9KTt2YXIgVEI9ZnVuY3Rpb24oeCxyKXt2YXIgZT1UMihyKTtyZXR1cm4gJHkoeCxyLGUpLGV9LFNCPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxTTD1mdW5jdGlvbiB4KHIsZSx0KXtyZXR1cm4geC5mdW4ocixlLHQpfSxFTD1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sRUI9ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxnTD1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LEFMPWZ1bmN0aW9uIHgocixlKXtyZXR1cm4geC5mdW4ocixlKX0sSW09ZnVuY3Rpb24geChyLGUpe3JldHVybiB4LmZ1bihyLGUpfSxONj1mdW5jdGlvbiB4KHIsZSl7cmV0dXJuIHguZnVuKHIsZSl9LE9tPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxnQj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sQUI9ZnVuY3Rpb24geChyKXtyZXR1cm4geC5mdW4ocil9LFBCPWZ1bmN0aW9uIHgocixlLHQpe3JldHVybiB4LmZ1bihyLGUsdCl9LE5CPWZ1bmN0aW9uIHgocil7cmV0dXJuIHguZnVuKHIpfSxDQj1mdW5jdGlvbiB4KHIpe3JldHVybiB4LmZ1bihyKX0sRUUwPWEoVEwsMCk7STAoU0IsZnVuY3Rpb24oeCl7dmFyIHI9Vyh4KSxlPTA7aWYodHlwZW9mIHIhPVwibnVtYmVyXCImJnJbMF09PT02KXt2YXIgdD1yWzJdLHU9clsxXTtaMCh4KTt2YXIgaT1bMCxbMCx1LHRdXTtlPTF9aWYoIWUpdmFyIGk9MDt2YXIgZj13MCh4KSxvPUF4KGYpLGw9NTt4OmZvcig7Oyl7aWYobylmb3IodmFyIGQ9b1syXSxrPW9bMV0saD1rWzJdLGc9a1sxXSxBPWhbMl0sTj0wLEM9WHgoQSk7Oyl7aWYoQzwoTis1fDApKXZhciBPPTA7ZWxzZXt2YXIgTD1BcihtMihBLE4sbCksXCJAZmxvd1wiKTtpZighTCl7dmFyIE49TisxfDA7Y29udGludWV9dmFyIE89TH1pZighTyl7dmFyIG89ZDtjb250aW51ZSB4fXhbMzFdWzFdPWdbM107dmFyIE09QXgoWzAsWzAsZyxoXSxkXSk7YnJlYWt9ZWxzZSB2YXIgTT0wO2lmKE09PT0wKXt2YXIgVj0wO2lmKGYpe3ZhciB6PWZbMV0sWT16WzJdO2lmKCFZWzFdKXt2YXIgdDA9WVsyXSxpMD0wLGo9elsxXTtpZigxPD1YeCh0MCkmJk4xKHQwLDApPT09NDIpe3hbMzFdWzFdPWpbM107dmFyIEs9WzAseiwwXTtWPTF9ZWxzZSBpMD0xfX1pZighVil2YXIgSz0wfWVsc2UgdmFyIEs9TTt2YXIgSj1wKEVCLHgsZnVuY3Rpb24odjApe3JldHVybiAwfSksUT1QeCh4KTt1MCh4LFJyKTt2YXIgeDA9dzJbMV07aWYoSDEoZnVuY3Rpb24odjAsbzApe3ZhciBjMD1vMFsyXTtzd2l0Y2goYzBbMF0pe2Nhc2UgMjA6cmV0dXJuIG82KHgsdjAsU24oMCxbMCxjMFsxXVsxXSxLbDBdKSk7Y2FzZSAyMTp2YXIgZDA9YzBbMV0sRTA9ZDBbMV07aWYoRTApe2lmKCFkMFsyXSl7dmFyIEwwPUUwWzFdLFgwPUwwWzJdLHh4PTAsZzA9TDBbMV07c3dpdGNoKFgwWzBdKXtjYXNlIDM3OnZhciAkMD1YMFsxXVsxXSxuMD0wLGl4PUgxKGZ1bmN0aW9uKE4wLEEwKXtyZXR1cm4gSDEoYVIsTjAsWzAsQTBbMl1bMV0sMF0pfSxuMCwkMCk7cmV0dXJuIEgxKGZ1bmN0aW9uKE4wLEEwKXtyZXR1cm4gbzYoeCxOMCxBMCl9LHYwLGl4KTtjYXNlIDI6Y2FzZSAyNjp2YXIgcng9WDBbMV1bMV07aWYocngpdmFyIGR4PXJ4WzFdO2Vsc2UgeHg9MTticmVhaztjYXNlIDM6Y2FzZSAxOTpjYXNlIDI5OmNhc2UgMzU6Y2FzZSAzNjp2YXIgZHg9WDBbMV1bMV07YnJlYWs7ZGVmYXVsdDp4eD0xfXJldHVybiB4eD92MDpvNih4LHYwLFNuKDAsWzAsZzAsZHhbMl1bMV1dKSl9fWVsc2V7dmFyIGF4PWQwWzJdO2lmKGF4KXt2YXIgU3g9YXhbMV07aWYoU3hbMF0hPT0wKXJldHVybiB2MDt2YXIgRDA9U3hbMV07cmV0dXJuIEgxKGZ1bmN0aW9uKE4wLEEwKXt2YXIgWTA9QTBbMl0sQzA9WTBbMl0sRj1ZMFsxXTtyZXR1cm4gQzA/bzYoeCxOMCxDMFsxXSk6bzYoeCxOMCxGKX0sdjAsRDApfX1yZXR1cm4gdjA7ZGVmYXVsdDpyZXR1cm4gdjB9fSx4MCxKKSxKKXZhciAkPVJsKEF4KEopKVsxXSxmMD11MShSbChKKVsxXSwkKTtlbHNlIHZhciBmMD1RO3ZhciBzMD1BeCh4WzJdWzFdKTtyZXR1cm5bMCxmMCxbMCxKLGksazAoWzAsS10sMCwwKSxzMF1dfX0pO3ZhciBnRTA9ZnVuY3Rpb24oeCxyLGUsdCl7Zm9yKHZhciB1PXgsaT10Ozspe3ZhciBmPWlbM10sbz1pWzJdLGw9aVsxXSxkPVcodSk7aWYodHlwZW9mIGQ9PVwibnVtYmVyXCImJlJyPT09ZClyZXR1cm5bMCx1LGwsbyxmXTtpZihhKHIsZCkpcmV0dXJuWzAsdSxsLG8sZl07aWYodHlwZW9mIGQhPVwibnVtYmVyXCImJmRbMF09PT0yKXt2YXIgaz1hKGUsdSksaD1bMCxrLG9dLGc9a1syXTtpZihnWzBdPT09MjIpe3ZhciBBPWdbMV1bMl07aWYoQSl7dmFyIE49QXIoQVsxXSxcInVzZSBzdHJpY3RcIiksQz1rWzFdLE89TiYmMS11WzIxXTtPJiZueCh1LFswLEMsODRdKTt2YXIgTD1OP1FzKDEsdSk6dSxNPVswLGQsbF0sVj1mfHxOLHU9TCxpPVswLE0saCxWXTtjb250aW51ZX19cmV0dXJuWzAsdSxsLGgsZl19cmV0dXJuWzAsdSxsLG8sZl19fTtJMChTTCxmdW5jdGlvbih4LHIsZSl7dmFyIHQ9Z0UwKGN6KDEseCkscixlLFlsMCksdT10WzRdLGk9dFszXSxmPXRbMl0sbz1jeigwLHRbMV0pLGw9QXgoZik7cmV0dXJuIGcyKGZ1bmN0aW9uKGQpe2lmKHR5cGVvZiBkIT1cIm51bWJlclwiJiZkWzBdPT09Mil7dmFyIGs9ZFsxXSxoPWtbNF0sZz1rWzFdO3JldHVybiBoJiZhdChvLFswLGcsODFdKX1yZXR1cm4gT3goRngoemwwLEZ4KEVWKGQpLFZsMCkpKX0sbCksWzAsbyxpLHVdfSksSTAoRUwsZnVuY3Rpb24oeCl7dmFyIHI9aUwoeCksZT1XKHgpO2lmKHR5cGVvZiBlPT1cIm51bWJlclwiKXt2YXIgdD1lLTQ5fDA7aWYoMTE+PXQ+Pj4wKXN3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHAoY0Iscix4KTtjYXNlIDE6YShLeSh4KSxyKTt2YXIgdT1rcigxLHgpLGk9MDtpZih0eXBlb2YgdT09XCJudW1iZXJcIil7dmFyIGY9MDtpZigodT09PTR8fHU9PT0xMCkmJihmPTEpLGYpe3ZhciBvPVM2KHgpO2k9MX19aWYoIWkpdmFyIG89aEwoeCk7cmV0dXJuIG87Y2FzZSAxMTppZihrcigxLHgpPT09NDkpcmV0dXJuIGEoS3koeCkscikscCh5TCwwLHgpO2JyZWFrfX1yZXR1cm4gcChONixbMCxyXSx4KX0pLEkwKEVCLGZ1bmN0aW9uKHgscil7dmFyIGU9SDAoU0wseCxyLEVMKSx0PWVbMl0sdT1wKGdMLHIsZVsxXSk7cmV0dXJuIEgxKGZ1bmN0aW9uKGksZil7cmV0dXJuWzAsZixpXX0sdSx0KX0pLEkwKGdMLGZ1bmN0aW9uKHgscil7Zm9yKHZhciBlPTA7Oyl7dmFyIHQ9VyhyKTtpZih0eXBlb2YgdD09XCJudW1iZXJcIiYmUnI9PT10fHxhKHgsdCkpcmV0dXJuIEF4KGUpO3ZhciBlPVswLGEoRUwsciksZV19fSksSTAoQUwsZnVuY3Rpb24oeCxyKXt2YXIgZT1IMChTTCxyLHgsZnVuY3Rpb24oZil7cmV0dXJuIHAoTjYsMCxmKX0pLHQ9ZVszXSx1PWVbMl0saT1wKEltLHgsZVsxXSk7cmV0dXJuWzAsSDEoZnVuY3Rpb24oZixvKXtyZXR1cm5bMCxvLGZdfSxpLHUpLHRdfSksSTAoSW0sZnVuY3Rpb24oeCxyKXtmb3IodmFyIGU9MDs7KXt2YXIgdD1XKHIpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiJiZScj09PXR8fGEoeCx0KSlyZXR1cm4gQXgoZSk7dmFyIGU9WzAscChONiwwLHIpLGVdfX0pLEkwKE42LGZ1bmN0aW9uKHgscil7dmFyIGU9eD94WzFdOjA7MS11NihyKSYmYShLeShyKSxlKTt2YXIgdD1XKHIpO2lmKHR5cGVvZiB0PT1cIm51bWJlclwiKXtpZih0PT09MjcpcmV0dXJuIGwwKGFFMCx2RTAscik7aWYodD09PTI4KXJldHVybiBsMChwRTAsbEUwLHIpfWlmKGpvKHIpKXJldHVybiB5NihyKTtpZih1NihyKSlyZXR1cm4ga20ocixlKTtpZih0eXBlb2YgdD09XCJudW1iZXJcIil7dmFyIHU9dCtZMXwwO2lmKDE0Pj11Pj4+MClzd2l0Y2godSl7Y2FzZSAwOmlmKHJbMjhdWzJdKXJldHVybiBhKGRLKDApLHIpO2JyZWFrO2Nhc2UgNTpyZXR1cm4gYSh4QixyKTtjYXNlIDEyOnJldHVybiBwKHBMLDAscik7Y2FzZSAxMzpyZXR1cm4gYShHSyxyKTtjYXNlIDE0OnJldHVybiBhKEhLLHIpfX1yZXR1cm4gaVIocik/RFIocik6YShPbSxyKX0pLEkwKE9tLGZ1bmN0aW9uKHgpe3ZhciByPVcoeCk7aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnV0PnIpc3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gYShGSyx4KTtjYXNlIDg6cmV0dXJuIGEoQksseCk7Y2FzZSAxNjpyZXR1cm4gdkIoeCk7Y2FzZSAxOTpyZXR1cm4gbDAoZUUwLHJFMCx4KTtjYXNlIDIwOnJldHVybiBsMChuRTAsdEUwLHgpO2Nhc2UgMjI6cmV0dXJuIGwwKGlFMCx1RTAseCk7Y2FzZSAyMzpyZXR1cm4gbDAoY0UwLGZFMCx4KTtjYXNlIDI0OnJldHVybiBsMChvRTAsc0UwLHgpO2Nhc2UgMjU6cmV0dXJuIGwwKHlFMCxkRTAseCk7Y2FzZSAyNjpyZXR1cm4gYSgkSyx4KTtjYXNlIDMyOnJldHVybiBhKFdLLHgpO2Nhc2UgMzU6cmV0dXJuIGEoWksseCk7Y2FzZSAzNzpyZXR1cm4gbDAoUVMwLEZTMCx4KTtjYXNlIDM5OnJldHVybiBsMChxUzAsR1MwLHgpO2Nhc2UgNDM6cmV0dXJuIHZCKHgpO2Nhc2UgNTk6cmV0dXJuIGwwKCRTMCxaUzAseCk7Y2FzZSAxMTM6cmV0dXJuIFMxKGpsMCx4KSxbMCxQeCh4KSxKbDBdO2Nhc2UgMTpjYXNlIDU6Y2FzZSA3OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDE3OmNhc2UgMTg6Y2FzZSAzMzpjYXNlIDM0OmNhc2UgMzY6Y2FzZSAzODpjYXNlIDQxOmNhc2UgNDI6Y2FzZSA0OTpjYXNlIDgzOmNhc2UgODY6cmV0dXJuIFMxKFhsMCx4KSxaMCh4KSxhKE9tLHgpfWlmKGpvKHgpKXt2YXIgZT15Nih4KTtyZXR1cm4gV3YoeCxlWzFdKSxlfWlmKHR5cGVvZiByPT1cIm51bWJlclwiJiZyPT09MjgmJmtyKDEseCk9PT02KXt2YXIgdD10NigxLHgpO3JldHVybiBueCh4LFswLHUxKFB4KHgpLHQpLDRdKSxTNih4KX1yZXR1cm4gbnMoeCk/bDAoa0UwLG1FMCx4KToodTYoeCkmJihTMSgwLHgpLFowKHgpKSxTNih4KSl9KSxJMChnQixmdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPWEoJHQseCksdD1XKHgpO3JldHVybiB0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTk/SDAoZG0seCxyLFswLGUsMF0pOmV9KSxJMChBQixmdW5jdGlvbih4KXt2YXIgcj1QeCh4KSxlPWEoczMseCksdD1XKHgpO3JldHVybiB0eXBlb2YgdD09XCJudW1iZXJcIiYmdD09PTk/WzAsSDAoZG0seCxyLFswLG8yKHgsZSksMF0pXTplfSksSTAoUEIsZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXI/clsxXTowO3JldHVybiBsMCgwLGZ1bmN0aW9uKHUpe3ZhciBpPTEtdCxmPVRCKFswLGVdLHUpLG89aSYmKFcodSk9PT04NT8xOjApO3JldHVybiBvJiYoMS1rMSh1KSYmVngodSxHMiksdTAodSw4NSkpLFswLGYsTlIodSksb119LHgpfSksSTAoTkIsZnVuY3Rpb24oeCl7dmFyIHI9UHgoeCksZT13MCh4KTt1MCh4LDApO3ZhciB0PXAoSW0sZnVuY3Rpb24obyl7cmV0dXJuIG89PT0xPzE6MH0seCksdT1QeCh4KSxpPXQ9PT0wP3cwKHgpOjA7dTAoeCwxKTt2YXIgZj1bMCx0LGoxKFswLGVdLFswLGh4KHgpXSxpLDApXTtyZXR1cm5bMCx1MShyLHUpLGZdfSksSTAoQ0IsZnVuY3Rpb24oeCl7ZnVuY3Rpb24gcih0KXt2YXIgdT13MCh0KTt1MCh0LDApO3ZhciBpPXAoQUwsZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0xPzE6MH0sdCksZj1pWzFdLG89aVsyXSxsPWY9PT0wP3cwKHQpOjA7dTAodCwxKTt2YXIgZD1XKHQpLGs9MDtpZigheCl7dmFyIGg9MDtpZigodHlwZW9mIGQhPVwibnVtYmVyXCJ8fGQhPT0xJiZSciE9PWQpJiYoaD0xKSxoKWlmKHJlKHQpKXt2YXIgZz1Kbyh0KTtrPTF9ZWxzZXt2YXIgZz0wO2s9MX19aWYoIWspdmFyIGc9aHgodCk7cmV0dXJuWzAsWzAsZixqMShbMCx1XSxbMCxnXSxsLDApXSxvXX12YXIgZT0wO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gRnkoZSxyLHQpfX0pLFZZKCRsMFsxXSxweCxbMCxTQixPbSxONixJbSxBTCxnTCxnQixBQixfSywkdCx2bSxZUzAsVEIsUEIsTkIsQ0IsRUUwLEE2LGc2LFZvLGttLFdTMCxPUzAsbG0sUXYscG1dKTt2YXIgUEw9W0dyLHRUMCxKcygwKV0sTkw9WzAsUEwsWzBdXSxBRTA9dXkoZVQwLGZ1bmN0aW9uKHgpe3ZhciByPUFPKHgsclQwKVs0MV0sZT1JTyh4LDAsMCx4VDAsak8sMSlbMV07cmV0dXJuIFhZKHgscixmdW5jdGlvbih0LHUpe3JldHVybiAwfSksZnVuY3Rpb24odCx1KXt2YXIgaT1peSh1LHgpO3JldHVybiBhKGUsaSksT08odSxpLHgpfX0pLFBFMD1MdihOTCk9PT1Hcj9OTDpOTFsxXTtaSShSRSxQRTApO3ZhciBlbz1wMCxLMj1udWxsLElCPXZvaWQgMCxORTA9ZnVuY3Rpb24oeCl7dGhyb3cgeH0sUm09ZnVuY3Rpb24oeCl7cmV0dXJuIHghPT1JQj8xOjB9O2VvLlN0cmluZyxlby5SZWdFeHAsZW8uT2JqZWN0LGVvLkRhdGUsZW8uTWF0aDt2YXIgQ0UwPWVvLkFycmF5LElFMD1lby5FcnJvcixPQj1mdW5jdGlvbih4KXtyZXR1cm4gYShORTAseCl9O2VvLkpTT04sZFkoZnVuY3Rpb24oeCl7cmV0dXJuIHhbMV09PT1QTD9bMCxKdCh4WzJdLnRvU3RyaW5nKCkpXTowfSksZFkoZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFuY2VvZiBDRTA/MDpbMCxKdCh4LnRvU3RyaW5nKCkpXX0pO3ZhciBSQj1bMCwwXSxPRTA9ZXIsZnM9ZnVuY3Rpb24oeCl7cmV0dXJuIFhXKERsKHgpKX0sWDE9ZnVuY3Rpb24oeCl7cmV0dXJuIEpXKERsKHgpKX0sTHI9ZnVuY3Rpb24oeCxyKXtyZXR1cm4gWDEoQXgoRmQoeCxyKSkpfSxSeD1mdW5jdGlvbih4LHIpe3JldHVybiByP2EoeCxyWzFdKTpLMn0sem89ZnVuY3Rpb24oeCxyKXtyZXR1cm4gclswXT09PTA/SzI6YSh4LHJbMV0pfSxMQj1mdW5jdGlvbih4KXtyZXR1cm4gZnMoWzAsWzAsYncwLHhbMV1dLFswLFswLEh3MCx4WzJdXSwwXV0pfSxNQj1mdW5jdGlvbih4KXt2YXIgcj14WzFdLGU9cj9lcihyWzFdWzFdKTpLMix0PVswLFswLFF3MCxMQih4WzNdKV0sMF07cmV0dXJuIGZzKFswLFswLHF3MCxlXSxbMCxbMCxHdzAsTEIoeFsyXSldLHRdXSl9LEUxPWZ1bmN0aW9uKHgpe2lmKCF4KXJldHVybiAwO3ZhciByPXhbMV0sZT1yWzFdO3JldHVybiBrMChbMCxlXSxbMCxReChyWzNdLHJbMl0pXSwwKX0sQzY9ZnVuY3Rpb24oeCxyLGUpe3ZhciB0PXJbZV07cmV0dXJuIFJtKHQpP3R8MDp4fSxSRTA9ZnVuY3Rpb24oeCxyKXt2YXIgZT1VZChyLElCKT97fTpyLHQ9SnQoeCksdT1DNihDbFs1XSxlLHVUMCksaT1DNihDbFs0XSxlLGlUMCksZj1DNihDbFszXSxlLGZUMCksbz1DNihDbFsyXSxlLGNUMCksbD1bMCxDNihDbFsxXSxlLHNUMCksbyxmLGksdSwwLDBdLGQ9ZVtwRF0saz1SbShkKSxoPWsmJmR8MCxnPWVbV01dLEE9Um0oZyk/Z3wwOjEsTj1lLmFsbF9jb21tZW50cyxDPVJtKE4pP058MDoxLE89WzAsMF0sTD1oP1swLGZ1bmN0aW9uKG10KXtyZXR1cm4gT1sxXT1bMCxtdCxPWzFdXSwwfV06MCxNPW5UMFsxXSxWPTA7dHJ5e3ZhciB6PTAsWT1yVih0KSx0MD16LGkwPVl9Y2F0Y2gobXQpe3ZhciBqPUMxKG10KTtpZihqIT09QW8pdGhyb3cgcTAoaiwwKTt2YXIgSz1bMCxbMCxbMCxWLFlhWzJdLFlhWzNdXSw1NF0sMF0sdDA9SyxpMD1yVihwczApfXZhciBKPVswLFYsaTAsZXgwLDAsbFs0XSxfVix0eDBdLFE9WzAsYmwoSiwwKV0seDA9WzAsWzAsdDBdLFswLDBdLHcyWzFdLFswLDBdLGxbNV0sMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsWzAseXMwXSxbMCxKXSxRLFswLExdLGwsVixbMCwwXSxbMCxkczBdXSwkPWEocHhbMV0seDApLGYwPUF4KHgwWzFdWzFdKSxzMD1bMCx2UlsxXSwwXSx2MD1BeChIMShmdW5jdGlvbihtdCxtMyl7dmFyIHE9bXRbMl0sST1tdFsxXTtyZXR1cm4gcCh2UlszXSxtMyxJKT9bMCxJLHFdOlswLHAodlJbNF0sbTMsSSksWzAsbTMscV1dfSxzMCxmMClbMl0pO2lmKHYwKXt2YXIgbzA9djBbMl0sYzA9djBbMV07aWYoTSl0aHJvdyBxMChbMCxRVDAsYzAsbzBdLDEpfVJCWzFdPTA7Zm9yKHZhciBkMD1YeCh0KS0wfDAsRTA9JGModCksTDA9MCxYMD0wOzspe2lmKFgwPT09ZDApdmFyIHh4PUwwO2Vsc2V7dmFyIGcwPW9lKEUwLFgwKSwkMD0wO2lmKDA8PWcwJiYhKFlyPGcwKSl2YXIgbjA9MTtlbHNlICQwPTE7aWYoJDApe3ZhciBpeD0wO2lmKGRoPD1nMCYmIShicDxnMCkpdmFyIG4wPTI7ZWxzZSBpeD0xO2lmKGl4KXt2YXIgcng9MDtpZihnYTw9ZzAmJiEoUVM8ZzApKXZhciBuMD0zO2Vsc2Ugcng9MTtpZihyeCl7dmFyIGR4PTA7aWYoaGE8PWcwJiZaNT49ZzApe3ZhciBuMD00O2R4PTF9aWYoIWR4KXZhciBuMD0wfX19aWYobjA9PT0wKXt2YXIgTDA9b1IoTDAsWDAsMCksWDA9WDArMXwwO2NvbnRpbnVlfWlmKChkMC1YMHwwKT49bjApe3ZhciBheD1uMC0xfDAsU3g9WDArbjB8MDtpZigzPGF4Pj4+MCl0aHJvdyBxMChbMCx3cixXUV0sMSk7c3dpdGNoKGF4KXtjYXNlIDA6dmFyIEQwPW9lKEUwLFgwKTticmVhaztjYXNlIDE6dmFyIEQwPShvZShFMCxYMCkmMzEpPDw2fG9lKEUwLFgwKzF8MCkmNjM7YnJlYWs7Y2FzZSAyOnZhciBEMD0ob2UoRTAsWDApJjE1KTw8MTJ8KG9lKEUwLFgwKzF8MCkmNjMpPDw2fG9lKEUwLFgwKzJ8MCkmNjM7YnJlYWs7ZGVmYXVsdDp2YXIgRDA9KG9lKEUwLFgwKSY3KTw8MTh8KG9lKEUwLFgwKzF8MCkmNjMpPDwxMnwob2UoRTAsWDArMnwwKSY2Myk8PDZ8b2UoRTAsWDArM3wwKSY2M312YXIgTDA9b1IoTDAsWDAsWzAsRDBdKSxYMD1TeDtjb250aW51ZX12YXIgeHg9b1IoTDAsWDAsMCl9Zm9yKHZhciBOMD15djAsQTA9QXgoWzAsNix4eF0pOzspe3ZhciBZMD1OMFszXSxDMD1OMFsyXSxGPU4wWzFdO2lmKCFBMCl7dmFyIEg9RGwoQXgoWTApKTtpZihBKXZhciBhMD0kO2Vsc2UgdmFyIEI9YShBRTBbMV0sMCksYTA9cChxeChCLC0yMDE3NjYyNjgsOTgpLEIsJCk7aWYoQyl2YXIgUDA9YTA7ZWxzZSB2YXIgbTA9YTBbMl0sUDA9WzAsYTBbMV0sWzAsbTBbMV0sbTBbMl0sbTBbM10sMF1dO3ZhciBEPWZ1bmN0aW9uKHEsSSxVLFQwKXt2YXIgUjA9WzAsR3koSCxJWzNdKSwwXSx0eD1bMCxbMCxGbDAsWDEoWzAsR3koSCxJWzJdKSxSMF0pXSwwXSxFeD1ReCh0eCxbMCxbMCxRbDAsTUIoSSldLDBdKTtpZihVKXt2YXIgVXg9VVsxXSxqeD1VeFsxXTtpZihqeCl7dmFyIEh4PVV4WzJdO2lmKEh4KXZhciBtcj1bMCxbMCxHbDAsUm4oSHgpXSwwXSxvcj1bMCxbMCxxbDAsUm4oangpXSxtcl07ZWxzZSB2YXIgb3I9WzAsWzAsSGwwLFJuKGp4KV0sMF07dmFyIHNyPW9yfWVsc2UgdmFyIGhyPVV4WzJdLGNyPWhyP1swLFswLGJsMCxSbihocildLDBdOjAsc3I9Y3I7dmFyIE5yPXNyfWVsc2UgdmFyIE5yPTA7cmV0dXJuIGZzKEhjKFF4KEV4LFF4KE5yLFswLFswLHg2MCxlcihxKV0sMF0pKSxUMCkpfSxPMD1mdW5jdGlvbihxKXtyZXR1cm4gTHIoVTAscSl9LEswPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPUlbMV0sUjA9cVsxXSx0eD1bMCxbMCxSOTAsZXIoTm4oSVsyXSkpXSwwXTtyZXR1cm4gRChNOTAsUjAsVSxbMCxbMCxMOTAsTHIoY3MsVDApXSx0eF0pfSxqMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVs1XSxUMD1JWzRdLFIwPUlbMl0sdHg9SVsxXSxFeD1xWzFdLFV4PVswLFswLFF5MCxMcihNMCxJWzNdKV0sMF0sang9WzAsWzAsR3kwLHRlKDAsVDApXSxVeF0sSHg9WzAsWzAscXkwLFJ4KHYyLFIwKV0sanhdO3JldHVybiBEKGJ5MCxFeCxVLFswLFswLEh5MCxXMCh0eCldLEh4XSl9LG94PWZ1bmN0aW9uKHEsSSl7dmFyIFU9SVsyXSxUMD1VWzddLFIwPVVbNV0sdHg9VVs0XSxFeD1VWzJdLFV4PVVbNl0sang9VVszXSxIeD1VWzFdLG1yPUlbMV07aWYodHgpdmFyIG9yPXR4WzFdWzJdLGhyPW9yWzJdLGNyPW9yWzFdLHNyPU4yKG9yWzNdLFQwKSxOcj1ocixGcj1bMCxjcl07ZWxzZSB2YXIgc3I9VDAsTnI9MCxGcj0wO2lmKFIwKXZhciBCcj1SMFsxXVsyXSxXcj1CclsxXSxNcj1OMihCclsyXSxzciksUXI9TXIseDE9THIoUzAsV3IpO2Vsc2UgdmFyIFFyPXNyLHgxPVgxKDApO3ZhciBhMT1bMCxbMCxmZDAseDFdLFswLFswLGlkMCxMcihyMCxVeCldLDBdXSxsMT1bMCxbMCxjZDAsUngoT24sTnIpXSxhMV0saTE9WzAsWzAsc2QwLFJ4KFYwLEZyKV0sbDFdLF8xPVswLFswLG9kMCxSeCh2MixqeCldLGkxXSxDcj1FeFsyXSxNMT1DclsyXSx0Mj1FeFsxXSxnMT1bMCxbMCx2ZDAsRChoZDAsdDIsTTEsWzAsWzAsa2QwLExyKEcsQ3JbMV0pXSwwXSldLF8xXTtyZXR1cm4gRChxLG1yLFFyLFswLFswLGFkMCxSeChXMCxIeCldLGcxXSl9LGIwPWZ1bmN0aW9uKHEsSSl7dmFyIFU9SVsyXSxUMD1VWzVdLFIwPVVbNF0sdHg9VVszXSxFeD1VWzJdLFV4PVVbMV0sang9SVsxXSxIeD1xP0g1MDpiNTAsbXI9WzAsWzAseGQwLFJ4KHlyLFIwKV0sMF0sb3I9WzAsWzAscmQwLFJ4KHlyLHR4KV0sbXJdLGhyPVswLFswLGVkMCxSeCh2MixFeCldLG9yXTtyZXR1cm4gRChIeCxqeCxUMCxbMCxbMCx0ZDAsVzAoVXgpXSxocl0pfSxfeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVs0XSxUMD1JWzJdLFIwPUlbMV0sdHg9cVsxXSxFeD1bMCxbMCxGNTAseXIoSVszXSldLDBdLFV4PVswLFswLFE1MCxSeCh2MixUMCldLEV4XTtyZXR1cm4gRChxNTAsdHgsVSxbMCxbMCxHNTAsVzAoUjApXSxVeF0pfSxCMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVszXSxUMD1JWzFdLFIwPXFbMV0sdHg9WzAsWzAsUjUwLHowKElbMl0pXSwwXTtyZXR1cm4gRChNNTAsUjAsVSxbMCxbMCxMNTAsVzAoVDApXSx0eF0pfSxUPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPXFbMV0sUjA9SVs1XSx0eD1JWzRdLEV4PUlbMl0sVXg9SVsxXSxqeD1OMihFMShVWzJdWzNdKSxSMCksSHg9VVsyXSxtcj1IeFsxXSxvcj1IeFsyXSxocj1bMCxbMCx5NTAsUngodjIsRXgpXSwwXSxjcj1bMCxbMCxtNTAsem8oengsdHgpXSxocl0sc3I9WzAsWzAsazUwLGgxKG1yKV0sY3JdLE5yPVswLFswLGg1MCxSeChSMSxvcildLHNyXSxGcj1bMCxbMCxfNTAsaDEobXIpXSxOcl07cmV0dXJuIEQoVDUwLFQwLGp4LFswLFswLHc1MCxXMChVeCldLEZyXSl9LFg9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbNl0sVDA9SVs0XSxSMD1JWzddLHR4PUlbNV0sRXg9SVszXSxVeD1JWzJdLGp4PUlbMV0sSHg9cVsxXSxtcj1YMShUMD9bMCxNMChUMFsxXSksMF06MCksb3I9VT9McihTMCxVWzFdWzJdWzFdKTpYMSgwKSxocj1bMCxbMCx2NTAsbXJdLFswLFswLG81MCxvcl0sWzAsWzAsczUwLExyKE0wLHR4KV0sMF1dXSxjcj1bMCxbMCxhNTAsdGUoMCxFeCldLGhyXSxzcj1bMCxbMCxsNTAsUngodjIsVXgpXSxjcl07cmV0dXJuIEQoZDUwLEh4LFIwLFswLFswLHA1MCxXMChqeCldLHNyXSl9LEYwPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPUlbMV0sUjA9SVs0XSx0eD1JWzNdLEV4PXFbMV0sVXg9dTEoVDBbMV0sVVsxXSksang9WzAsWzAsaTUwLFJ4KHNvLHR4KV0sMF07cmV0dXJuIEQoYzUwLEV4LFIwLFswLFswLGY1MCxVcihVeCxbMCxUMCxbMSxVXSwwXSldLGp4XSl9LHN4PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPUlbMV0sUjA9SVs0XSx0eD1JWzNdLEV4PXFbMV0sVXg9dTEoVDBbMV0sVVsxXSksang9WzAsWzAsdDUwLGVyKE5uKHR4KSldLDBdO3JldHVybiBEKHU1MCxFeCxSMCxbMCxbMCxuNTAsVXIoVXgsWzAsVDAsWzEsVV0sMF0pXSxqeF0pfSxleD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsyXSxUMD1xWzFdLFIwPVswLFswLHI1MCxPMChJWzFdKV0sMF07cmV0dXJuIEQoZTUwLFQwLEUxKFUpLFIwKX0sVTA9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPXFbMV07c3dpdGNoKElbMF0pe2Nhc2UgMDpyZXR1cm4gZXgoWzAsVSxJWzFdXSk7Y2FzZSAxOnZhciBUMD1JWzFdLFIwPVQwWzJdO3JldHVybiBEKGM2MCxVLFIwLFswLFswLGY2MCxSeChXMCxUMFsxXSldLDBdKTtjYXNlIDI6cmV0dXJuIG94KG5kMCxbMCxVLElbMV1dKTtjYXNlIDM6dmFyIHR4PUlbMV0sRXg9dHhbNF0sVXg9dHhbM10sang9dHhbNl0sSHg9dHhbNV0sbXI9VXhbMl1bM10sb3I9dHhbMl0saHI9dHhbMV0sY3I9RXhbMF09PT0wPzA6WzAsRXhbMV1dLHNyPU4yKEUxKG1yKSxqeCksTnI9WzAsWzAsR2QwLFJ4KHYyLG9yKV0sMF0sRnI9WzAsWzAscWQwLFJ4KHp4LGNyKV0sTnJdLEJyPVV4WzJdLFdyPUJyWzJdLE1yPUJyWzFdO2lmKFdyKXZhciBRcj1XclsxXSx4MT1RclsyXSxhMT14MVsyXSxsMT1RclsxXSxpMT1EKHR5MCxsMSxhMSxbMCxbMCxleTAsdXgoeDFbMV0pXSwwXSksXzE9WDEoQXgoWzAsaTEsRmQoaDAsTXIpXSkpO2Vsc2UgdmFyIF8xPVgxKFRuKGgwLE1yKSk7dmFyIENyPVswLFswLGJkMCxXMChocildLFswLFswLEhkMCxfMV0sRnJdXTtyZXR1cm4gRChyeTAsVSxzcixbMCxbMCx4eTAsZXgoSHgpXSxDcl0pO2Nhc2UgNDp2YXIgTTE9SVsxXSx0Mj1NMVsyXTtyZXR1cm4gRChvNjAsVSx0MixbMCxbMCxzNjAsUngoVzAsTTFbMV0pXSwwXSk7Y2FzZSA1OnJldHVybiBEKHY2MCxVLElbMV1bMV0sMCk7Y2FzZSA2OnJldHVybiBYKFswLFUsSVsxXV0pO2Nhc2UgNzpyZXR1cm4gVChbMCxVLElbMV1dKTtjYXNlIDg6cmV0dXJuIEIwKFswLFUsSVsxXV0pO2Nhc2UgOTp2YXIgZzE9SVsxXSxXMj1nMVs1XSxuZT1nMVs0XSxneD1nMVszXSxYcj1nMVsyXSxyMT1nMVsxXTtpZihneCl7dmFyIGxyPWd4WzFdO2lmKGxyWzBdIT09MCYmIWxyWzFdWzJdKXJldHVybiBEKGw2MCxVLFcyLFswLFswLGE2MCxSeChKMCxuZSldLDBdKX1pZihYcil7dmFyIHpyPVhyWzFdO3N3aXRjaCh6clswXSl7Y2FzZSAwOnZhciBCMT1zeCh6clsxXSk7YnJlYWs7Y2FzZSAxOnZhciBCMT1GMCh6clsxXSk7YnJlYWs7Y2FzZSAyOnZhciBCMT1YKHpyWzFdKTticmVhaztjYXNlIDM6dmFyIEIxPVQoenJbMV0pO2JyZWFrO2Nhc2UgNDp2YXIgQjE9eXIoenJbMV0pO2JyZWFrO2Nhc2UgNTp2YXIgQjE9X3goenJbMV0pO2JyZWFrO2Nhc2UgNjp2YXIgQjE9YjAoMSx6clsxXSk7YnJlYWs7Y2FzZSA3OnZhciBCMT1qMCh6clsxXSk7YnJlYWs7ZGVmYXVsdDp2YXIgQjE9QjAoenJbMV0pfXZhciBfZT1CMX1lbHNlIHZhciBfZT1LMjt2YXIgWjI9WzAsWzAscDYwLFJ4KEowLG5lKV0sMF0sd2U9WzAsWzAseTYwLF9lXSxbMCxbMCxkNjAsYihneCldLFoyXV0sR3Q9cjE/MTowO3JldHVybiBEKGs2MCxVLFcyLFswLFswLG02MCwhIUd0XSx3ZV0pO2Nhc2UgMTA6cmV0dXJuIEYwKFswLFUsSVsxXV0pO2Nhc2UgMTE6dmFyIEMyPUlbMV0sbjI9QzJbNV0sSTI9QzJbNF0sYTI9QzJbMl0sa3Q9QzJbMV0sTzI9WzAsWzAsRDUwLExyKE0wLEMyWzNdKV0sMF0saHQ9WzAsWzAsVTUwLHRlKDAsSTIpXSxPMl0sJGU9WzAsWzAsajUwLFJ4KHYyLGEyKV0saHRdO3JldHVybiBEKFg1MCxVLG4yLFswLFswLEo1MCxXMChrdCldLCRlXSk7Y2FzZSAxMjp2YXIgVGU9SVsxXSxTZT1UZVsxXSxFZT1UZVs0XSxnZT1UZVszXSxBZT1UZVsyXSxXMT1TZVswXT09PTA/VzAoU2VbMV0pOkowKFNlWzFdKSxQZT0wLF90PWdlP1wiRVNcIjpcIkNvbW1vbkpTXCI7cmV0dXJuIEQoVDYwLFUsRWUsWzAsWzAsdzYwLFcxXSxbMCxbMCxfNjAsZXgoQWUpXSxbMCxbMCxoNjAsX3RdLFBlXV1dKTtjYXNlIDEzOnZhciBGZT1JWzFdLHVlPUZlWzJdO3JldHVybiBEKEU2MCxVLHVlLFswLFswLFM2MCx6eChGZVsxXSldLDBdKTtjYXNlIDE0OnZhciBSMj1JWzFdLHF0PVIyWzRdLHZzPVIyWzJdLHd0PVIyWzFdLFR0PVswLFswLEI1MCx5cihSMlszXSldLDBdLEh0PVswLFswLFc1MCxSeCh2Mix2cyldLFR0XTtyZXR1cm4gRCgkNTAsVSxxdCxbMCxbMCxaNTAsVzAod3QpXSxIdF0pO2Nhc2UgMTU6cmV0dXJuIGIwKDEsWzAsVSxJWzFdXSk7Y2FzZSAxNjpyZXR1cm4gc3goWzAsVSxJWzFdXSk7Y2FzZSAxNzp2YXIgaWU9SVsxXSxTdD1pZVszXSxidD1pZVsxXSxmZT1bMCxbMCxnNjAsVjAoaWVbMl0pXSwwXTtyZXR1cm4gRChQNjAsVSxTdCxbMCxbMCxBNjAsVTAoYnQpXSxmZV0pO2Nhc2UgMTg6cmV0dXJuIEQoTjYwLFUsSVsxXVsxXSwwKTtjYXNlIDE5OnZhciB4bj1JWzFdLExuPXhuWzNdLHJuPXhuWzFdLE1uPVswLFswLFp5MCx6MCh4blsyXSldLDBdO3JldHVybiBEKEZ5MCxVLExuLFswLFswLCR5MCxXMChybildLE1uXSk7Y2FzZSAyMDp2YXIgZW49SVsxXSxEbj1lblsyXSxxbz1lblszXSx0bj1EblswXT09PTA/VTAoRG5bMV0pOlYwKERuWzFdKTtyZXR1cm4gRChPNjAsVSxxbyxbMCxbMCxJNjAsdG5dLFswLFswLEM2MCxlcihfKDEpKV0sMF1dKTtjYXNlIDIxOnZhciBFdD1JWzFdLGFzPUV0WzVdLGxzPUV0WzRdLHBzPUV0WzNdLEhvPUV0WzJdLGszPUV0WzFdO2lmKEhvKXt2YXIgb289SG9bMV07aWYob29bMF0hPT0wKXt2YXIgYm89b29bMV1bMl0sdGE9WzAsWzAsUjYwLGVyKF8obHMpKV0sMF0saDM9WzAsWzAsTDYwLFJ4KFcwLGJvKV0sdGFdO3JldHVybiBEKEQ2MCxVLGFzLFswLFswLE02MCxSeChKMCxwcyldLGgzXSl9fXZhciBfMz1bMCxbMCxVNjAsZXIoXyhscykpXSwwXSxuYT1bMCxbMCxqNjAsUngoSjAscHMpXSxfM10sdWE9WzAsWzAsSjYwLGIoSG8pXSxuYV07cmV0dXJuIEQoWTYwLFUsYXMsWzAsWzAsWDYwLFJ4KFUwLGszKV0sdWFdKTtjYXNlIDIyOnZhciBVbj1JWzFdLHczPVVuWzNdLFQzPVVuWzFdLFMzPVswLFswLFY2MCxSeChPRTAsVW5bMl0pXSwwXTtyZXR1cm4gRChLNjAsVSx3MyxbMCxbMCx6NjAsVjAoVDMpXSxTM10pO2Nhc2UgMjM6dmFyIE5lPUlbMV0sRTM9TmVbNV0sZzM9TmVbNF0saWE9TmVbM10sZHM9TmVbMl0sdm89TmVbMV0seHY9ZnVuY3Rpb24oWDYpe3JldHVybiBYNlswXT09PTA/SzAoWDZbMV0pOlYwKFg2WzFdKX0scnY9WzAsWzAsQjYwLFUwKGczKV0sMF0sQTM9WzAsWzAsVzYwLFJ4KFYwLGlhKV0scnZdLGZhPVswLFswLFo2MCxSeChWMCxkcyldLEEzXTtyZXR1cm4gRChGNjAsVSxFMyxbMCxbMCwkNjAsUngoeHYsdm8pXSxmYV0pO2Nhc2UgMjQ6dmFyIHlzPUlbMV0sYW89eXNbMV0sZXY9eXNbNV0sZ3Q9eXNbNF0sUWU9eXNbM10sbXM9eXNbMl0sQXQ9YW9bMF09PT0wP0swKGFvWzFdKTp1eChhb1sxXSksbm49WzAsWzAsRzYwLFUwKFFlKV0sWzAsWzAsUTYwLCEhZ3RdLDBdXTtyZXR1cm4gRChiNjAsVSxldixbMCxbMCxINjAsQXRdLFswLFswLHE2MCxWMChtcyldLG5uXV0pO2Nhc2UgMjU6dmFyIHVuPUlbMV0sdHY9dW5bMV0sUDM9dW5bNV0sTjM9dW5bNF0sbnY9dW5bM10sQzM9dW5bMl0sY2E9dHZbMF09PT0wP0swKHR2WzFdKTp1eCh0dlsxXSksWG09WzAsWzAscjQwLFUwKG52KV0sWzAsWzAseDQwLCEhTjNdLDBdXTtyZXR1cm4gRChuNDAsVSxQMyxbMCxbMCx0NDAsY2FdLFswLFswLGU0MCxWMChDMyldLFhtXV0pO2Nhc2UgMjY6dmFyIGpuPUlbMV0sWW09am5bM10sVm09am5bMl0sQ0w9am5bOV0sSUw9am5bOF0sT0w9am5bN10sUkw9am5bNl0sTEw9am5bNV0sTUw9am5bNF0sREw9Vm1bMl1bNF0sVUw9am5bMV0sakw9WW1bMF09PT0wP1ltWzFdOk94KGQ4MCksSkw9TjIoRTEoREwpLENMKSxYTD1bMCxbMCx5ODAsUngodjIsSUwpXSwwXSxZTD1bMCxbMCxrODAsITFdLFswLFswLG04MCxPcihPTCldLFhMXV0sVkw9WzAsWzAsdzgwLCEhTUxdLFswLFswLF84MCwhIUxMXSxbMCxbMCxoODAsUngoc28sUkwpXSxZTF1dXSx6TD1bMCxbMCxUODAsZXgoakwpXSxWTF0sS0w9WzAsWzAsUzgwLHRyKFZtKV0sekxdO3JldHVybiBEKGc4MCxVLEpMLFswLFswLEU4MCxSeChXMCxVTCldLEtMXSk7Y2FzZSAyNzp2YXIgSTM9SVsxXSx6bT1JM1szXSxCTD1JM1s0XSxXTD1JM1syXSxaTD1JM1sxXTtpZih6bSl2YXIgS209em1bMV1bMl0sQm09VTAodlMwKEttWzFdLEttWzJdKSk7ZWxzZSB2YXIgQm09SzI7dmFyICRMPVswLFswLGk0MCxVMChXTCldLFswLFswLHU0MCxCbV0sMF1dO3JldHVybiBEKGM0MCxVLEJMLFswLFswLGY0MCxWMChaTCldLCRMXSk7Y2FzZSAyODp2YXIgc2E9SVsxXSxXbT1zYVs0XSxabT1zYVszXSxGTD1zYVs1XSxRTD1zYVsyXSxHTD1zYVsxXTtpZihXbSl7dmFyIFI2PVdtWzFdO2lmKFI2WzBdPT09MCl2YXIgcUw9UjZbMV0sRm09VG4oZnVuY3Rpb24oWTYpe3ZhciBSMz1ZNlszXSxMMz1ZNlsyXSxibT1ZNlsxXSxfTT1MMz91MShSM1sxXSxMM1sxXVsxXSk6UjNbMV0sd009TDM/TDNbMV06UjMseDk9MCxUTT0wO2lmKGJtKXt2YXIgVjY9MDtzd2l0Y2goYm1bMV0pe2Nhc2UgMDp2YXIgcjk9ZWk7VjY9MTticmVhaztjYXNlIDE6dmFyIHI5PVRzO1Y2PTE7YnJlYWt9aWYoVjYpe3ZhciBlOT1yOTt4OT0xfX1pZigheDkpdmFyIGU5PUsyO3ZhciBTTT1bMCxbMCxSdzAsVzAod00pXSxbMCxbMCxPdzAsZTldLFRNXV07cmV0dXJuIEQoTXcwLF9NLDAsWzAsWzAsTHcwLFcwKFIzKV0sU01dKX0scUwpO2Vsc2UgdmFyICRtPVI2WzFdLEhMPSRtWzFdLEZtPVswLEQoSXcwLEhMLDAsWzAsWzAsQ3cwLFcwKCRtWzJdKV0sMF0pLDBdO3ZhciBMNj1GbX1lbHNlIHZhciBMNj0wO2lmKFptKXZhciBRbT1abVsxXVsxXSxiTD1bMCxbMCxQdzAsVzAoUW0pXSwwXSxHbT1bMCxEKE53MCxRbVsxXSwwLGJMKSxMNl07ZWxzZSB2YXIgR209TDY7c3dpdGNoKEdMKXtjYXNlIDA6dmFyIE02PXM0MDticmVhaztjYXNlIDE6dmFyIE02PW80MDticmVhaztkZWZhdWx0OnZhciBNNj12NDB9dmFyIHhNPVswLFswLGw0MCxKMChRTCldLFswLFswLGE0MCxlcihNNildLDBdXTtyZXR1cm4gRChkNDAsVSxGTCxbMCxbMCxwNDAsWDEoR20pXSx4TV0pO2Nhc2UgMjk6cmV0dXJuIGowKFswLFUsSVsxXV0pO2Nhc2UgMzA6dmFyIEQ2PUlbMV0sck09RDZbM10sZU09RDZbMV0sdE09WzAsWzAseTQwLFUwKEQ2WzJdKV0sMF07cmV0dXJuIEQoazQwLFUsck0sWzAsWzAsbTQwLFcwKGVNKV0sdE1dKTtjYXNlIDMxOnZhciBxbT1JWzFdLG5NPXFtWzJdO3JldHVybiBEKF80MCxVLG5NLFswLFswLGg0MCxSeChWMCxxbVsxXSldLDBdKTtjYXNlIDMyOnZhciBVNj1JWzFdLHVNPVU2WzNdLGlNPVU2WzFdLGZNPVswLFswLHc0MCxMcihicixVNlsyXSldLDBdO3JldHVybiBEKFM0MCxVLHVNLFswLFswLFQ0MCxWMChpTSldLGZNXSk7Y2FzZSAzMzp2YXIgSG09SVsxXSxjTT1IbVsyXTtyZXR1cm4gRChnNDAsVSxjTSxbMCxbMCxFNDAsVjAoSG1bMV0pXSwwXSk7Y2FzZSAzNDp2YXIgTzM9SVsxXSxzTT1PM1s0XSxvTT1PM1syXSx2TT1PM1sxXSxhTT1bMCxbMCxBNDAsUngoZXgsTzNbM10pXSwwXSxsTT1bMCxbMCxQNDAsUngoZTIsb00pXSxhTV07cmV0dXJuIEQoQzQwLFUsc00sWzAsWzAsTjQwLGV4KHZNKV0sbE1dKTtjYXNlIDM1OnJldHVybiBfeChbMCxVLElbMV1dKTtjYXNlIDM2OnJldHVybiBiMCgwLFswLFUsSVsxXV0pO2Nhc2UgMzc6cmV0dXJuIEswKFswLFUsSVsxXV0pO2Nhc2UgMzg6dmFyIGo2PUlbMV0scE09ajZbM10sZE09ajZbMV0seU09WzAsWzAsSTQwLFUwKGo2WzJdKV0sMF07cmV0dXJuIEQoUjQwLFUscE0sWzAsWzAsTzQwLFYwKGRNKV0seU1dKTtkZWZhdWx0OnZhciBKNj1JWzFdLG1NPUo2WzNdLGtNPUo2WzFdLGhNPVswLFswLEw0MCxVMChKNlsyXSldLDBdO3JldHVybiBEKEQ0MCxVLG1NLFswLFswLE00MCxWMChrTSldLGhNXSl9fSxOeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVs0XSxUMD1JWzNdWzJdLFIwPUlbMV0sdHg9cVsxXSxFeD1bMCxbMCxCXzAsRChldzAsSVsyXSwwLDApXSwwXSxVeD1bMCxbMCxXXzAsTHIoZm8sVDApXSxFeF07cmV0dXJuIEQoJF8wLHR4LFUsWzAsWzAsWl8wLEQoYl8wLFIwLDAsMCldLFV4XSl9LG14PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzFdLFQwPUlbNF0sUjA9SVsyXSx0eD1xWzFdLEV4PVswLFswLFlfMCxMcihmbyxJWzNdWzJdKV0sMF0sVXg9WzAsWzAsVl8wLFJ4KEh2LFIwKV0sRXhdLGp4PVVbMl0sSHg9anhbMl0sbXI9anhbNF0sb3I9anhbM10saHI9anhbMV0sY3I9VVsxXSxzcj1IeD9bMCxbMCxGXzAsZHQoSHhbMV0pXSwwXTowLE5yPVswLFswLEdfMCxMcihpbyxtcildLFswLFswLFFfMCwhIW9yXSwwXV07cmV0dXJuIEQoS18wLHR4LFQwLFswLFswLHpfMCxEKEhfMCxjciwwLFF4KFswLFswLHFfMCxjbyhocildLE5yXSxzcikpXSxVeF0pfSxCeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVszXSxUMD1JWzFdLFIwPXFbMV0sdHg9WzAsWzAsazkwLExyKFYwLElbMl0pXSwwXTtyZXR1cm4gRChfOTAsUjAsVSxbMCxbMCxoOTAsTHIodG8sVDApXSx0eF0pfSxHeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXSxUMD1JWzJdLFIwPXFbMV0sdHg9VT9uOTA6dTkwO3JldHVybiBEKGM5MCxSMCxUMCxbMCxbMCxmOTAsISFVXSxbMCxbMCxpOTAsZXIodHgpXSwwXV0pfSxKMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdO3JldHVybiBEKHQ5MCxxWzFdLElbM10sWzAsWzAsZTkwLGVyKElbMV0pXSxbMCxbMCxyOTAsZXIoSVsyXSldLDBdXSl9LGJ4PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPUlbM10sUjA9cVsxXTtyZXR1cm4gRCh4OTAsUjAsVDAsWzAsWzAsYm0wLEsyXSxbMCxbMCxIbTAsZXIobTIoVSwwLFh4KFUpLTF8MCkpXSxbMCxbMCxxbTAsZXIoVSldLDBdXV0pfSxKeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdO3JldHVybiBEKEdtMCxxWzFdLElbM10sWzAsWzAsUW0wLElbMV1dLFswLFswLEZtMCxlcihJWzJdKV0sMF1dKX0sVzA9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXTtyZXR1cm4gRChZODAscVsxXSxJWzJdLFswLFswLFg4MCxlcihJWzFdKV0sWzAsWzAsSjgwLEsyXSxbMCxbMCxqODAsITFdLDBdXV0pfSxucj1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVszXSxUMD1JWzJdLFIwPUlbOV0sdHg9SVs4XSxFeD1JWzddLFV4PUlbNl0sang9SVs1XSxIeD1JWzRdLG1yPVQwWzJdWzRdLG9yPUlbMV0saHI9cVsxXSxjcj1VWzBdPT09MD9VWzFdOk94KEE4MCksc3I9TjIoRTEobXIpLFIwKSxOcj1bMCxbMCxQODAsUngodjIsdHgpXSwwXSxGcj1bMCxbMCxDODAsITFdLFswLFswLE44MCxPcihFeCldLE5yXV0sQnI9WzAsWzAsUjgwLCEhSHhdLFswLFswLE84MCwhIWp4XSxbMCxbMCxJODAsUngoc28sVXgpXSxGcl1dXSxXcj1bMCxbMCxMODAsZXgoY3IpXSxCcl0sTXI9WzAsWzAsTTgwLHRyKFQwKV0sV3JdO3JldHVybiBEKFU4MCxocixzcixbMCxbMCxEODAsUngoVzAsb3IpXSxNcl0pfSxWMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXTtzd2l0Y2goSVswXSl7Y2FzZSAwOnZhciBUMD1JWzFdLFIwPVQwWzJdLHR4PVswLFswLFU0MCxMcihQbixUMFsxXSldLDBdO3JldHVybiBEKGo0MCxVLEUxKFIwKSx0eCk7Y2FzZSAxOnZhciBFeD1JWzFdLFV4PUV4WzNdLGp4PUV4WzJdLEh4PUV4WzldLG1yPUV4WzhdLG9yPUV4WzddLGhyPUV4WzZdLGNyPUV4WzRdLHNyPWp4WzJdWzRdO2lmKFV4WzBdPT09MCl2YXIgTnI9MCxGcj1leChVeFsxXSk7ZWxzZSB2YXIgTnI9MSxGcj1WMChVeFsxXSk7dmFyIEJyPU4yKEUxKHNyKSxIeCksV3I9WzAsWzAsSjQwLFJ4KHYyLG1yKV0sMF0sTXI9WzAsWzAsWTQwLCEhTnJdLFswLFswLFg0MCxPcihvcildLFdyXV0sUXI9WzAsWzAsQjQwLEZyXSxbMCxbMCxLNDAsISFjcl0sWzAsWzAsejQwLCExXSxbMCxbMCxWNDAsUngoc28saHIpXSxNcl1dXV07cmV0dXJuIEQoJDQwLFUsQnIsWzAsWzAsWjQwLEsyXSxbMCxbMCxXNDAsdHIoangpXSxRcl1dKTtjYXNlIDI6dmFyIHgxPUlbMV0sYTE9eDFbMV0sbDE9eDFbNF0saTE9eDFbM10sXzE9eDFbMl07aWYoYTEpe3N3aXRjaChhMVsxXSl7Y2FzZSAwOnZhciBDcj1ycTticmVhaztjYXNlIDE6dmFyIENyPWVxO2JyZWFrO2Nhc2UgMjp2YXIgQ3I9dHE7YnJlYWs7Y2FzZSAzOnZhciBDcj1ucTticmVhaztjYXNlIDQ6dmFyIENyPXVxO2JyZWFrO2Nhc2UgNTp2YXIgQ3I9aXE7YnJlYWs7Y2FzZSA2OnZhciBDcj1mcTticmVhaztjYXNlIDc6dmFyIENyPWNxO2JyZWFrO2Nhc2UgODp2YXIgQ3I9c3E7YnJlYWs7Y2FzZSA5OnZhciBDcj1vcTticmVhaztjYXNlIDEwOnZhciBDcj12cTticmVhaztjYXNlIDExOnZhciBDcj1hcTticmVhaztjYXNlIDEyOnZhciBDcj1scTticmVhaztjYXNlIDEzOnZhciBDcj1wcTticmVhaztkZWZhdWx0OnZhciBDcj1kcX12YXIgTTE9Q3J9ZWxzZSB2YXIgTTE9RjQwO3ZhciB0Mj1bMCxbMCxRNDAsVjAoaTEpXSwwXTtyZXR1cm4gRChINDAsVSxsMSxbMCxbMCxxNDAsZXIoTTEpXSxbMCxbMCxHNDAsdXgoXzEpXSx0Ml1dKTtjYXNlIDM6dmFyIGcxPUlbMV0sVzI9ZzFbNF0sbmU9ZzFbMl0sZ3g9ZzFbMV0sWHI9WzAsWzAsYjQwLFYwKGcxWzNdKV0sMF0scjE9WzAsWzAseHAwLFYwKG5lKV0sWHJdO3N3aXRjaChneCl7Y2FzZSAwOnZhciBscj1MRzticmVhaztjYXNlIDE6dmFyIGxyPU1HO2JyZWFrO2Nhc2UgMjp2YXIgbHI9REc7YnJlYWs7Y2FzZSAzOnZhciBscj1VRzticmVhaztjYXNlIDQ6dmFyIGxyPWpHO2JyZWFrO2Nhc2UgNTp2YXIgbHI9Skc7YnJlYWs7Y2FzZSA2OnZhciBscj1YRzticmVhaztjYXNlIDc6dmFyIGxyPVlHO2JyZWFrO2Nhc2UgODp2YXIgbHI9Vkc7YnJlYWs7Y2FzZSA5OnZhciBscj16RzticmVhaztjYXNlIDEwOnZhciBscj1LRzticmVhaztjYXNlIDExOnZhciBscj1CRzticmVhaztjYXNlIDEyOnZhciBscj1XRzticmVhaztjYXNlIDEzOnZhciBscj1aRzticmVhaztjYXNlIDE0OnZhciBscj0kRzticmVhaztjYXNlIDE1OnZhciBscj1GRzticmVhaztjYXNlIDE2OnZhciBscj1RRzticmVhaztjYXNlIDE3OnZhciBscj1HRzticmVhaztjYXNlIDE4OnZhciBscj1xRzticmVhaztjYXNlIDE5OnZhciBscj1IRzticmVhaztjYXNlIDIwOnZhciBscj1iRzticmVhaztkZWZhdWx0OnZhciBscj14cX1yZXR1cm4gRChlcDAsVSxXMixbMCxbMCxycDAsZXIobHIpXSxyMV0pO2Nhc2UgNDp2YXIgenI9SVsxXSxCMT16cls0XSxfZT1OMihFMSh6clszXVsyXVsyXSksQjEpO3JldHVybiBEKHRwMCxVLF9lLEZvKHpyKSk7Y2FzZSA1OnJldHVybiBveCh1ZDAsWzAsVSxJWzFdXSk7Y2FzZSA2OnZhciBaMj1JWzFdLHdlPVoyWzRdLEd0PVoyWzJdLEMyPVoyWzFdLG4yPVswLFswLG5wMCxWMChaMlszXSldLDBdLEkyPVswLFswLHVwMCxWMChHdCldLG4yXTtyZXR1cm4gRChmcDAsVSx3ZSxbMCxbMCxpcDAsVjAoQzIpXSxJMl0pO2Nhc2UgNzpyZXR1cm4gbnIoWzAsVSxJWzFdXSk7Y2FzZSA4OnJldHVybiBXMChJWzFdKTtjYXNlIDk6dmFyIGEyPUlbMV0sa3Q9YTJbMl07cmV0dXJuIEQoc3AwLFUsa3QsWzAsWzAsY3AwLFYwKGEyWzFdKV0sMF0pO2Nhc2UgMTA6cmV0dXJuIG14KFswLFUsSVsxXV0pO2Nhc2UgMTE6cmV0dXJuIE54KFswLFUsSVsxXV0pO2Nhc2UgMTI6cmV0dXJuIEowKFswLFUsSVsxXV0pO2Nhc2UgMTM6cmV0dXJuIEd4KFswLFUsSVsxXV0pO2Nhc2UgMTQ6cmV0dXJuIEQobTkwLFUsSVsxXSxbMCxbMCx5OTAsSzJdLFswLFswLGQ5MCxtdl0sMF1dKTtjYXNlIDE1OnJldHVybiBKeChbMCxVLElbMV1dKTtjYXNlIDE2OnJldHVybiBieChbMCxVLElbMV1dKTtjYXNlIDE3OnZhciBPMj1JWzFdLGh0PU8yWzJdLCRlPU8yWzFdLFRlPU8yWzRdLFNlPU8yWzNdO3RyeXt2YXIgRWU9bmV3IFJlZ0V4cChlcigkZSksZXIoaHQpKSxnZT1FZX1jYXRjaHt2YXIgZ2U9SzJ9cmV0dXJuIEQocDkwLFUsVGUsWzAsWzAsbDkwLGdlXSxbMCxbMCxhOTAsZXIoU2UpXSxbMCxbMCx2OTAsZnMoWzAsWzAsbzkwLGVyKCRlKV0sWzAsWzAsczkwLGVyKGh0KV0sMF1dKV0sMF1dXSk7Y2FzZSAxODp2YXIgQWU9SVsxXTtyZXR1cm4gSjAoWzAsVSxbMCxBZVsxXSxBZVs1XSxBZVs2XV1dKTtjYXNlIDE5OnZhciBXMT1JWzFdLFBlPVcxWzRdLF90PVcxWzNdLEZlPVcxWzJdO3N3aXRjaChXMVsxXSl7Y2FzZSAwOnZhciB1ZT1vcDA7YnJlYWs7Y2FzZSAxOnZhciB1ZT12cDA7YnJlYWs7ZGVmYXVsdDp2YXIgdWU9YXAwfXZhciBSMj1bMCxbMCxscDAsVjAoX3QpXSwwXTtyZXR1cm4gRCh5cDAsVSxQZSxbMCxbMCxkcDAsZXIodWUpXSxbMCxbMCxwcDAsVjAoRmUpXSxSMl1dKTtjYXNlIDIwOnZhciBxdD1JWzFdLHZzPXF0WzNdO3JldHVybiBEKG1wMCxVLHZzLHhhKHF0KSk7Y2FzZSAyMTp2YXIgd3Q9SVsxXSxUdD13dFszXSxIdD13dFsxXSxpZT1bMCxbMCxrcDAsVzAod3RbMl0pXSwwXTtyZXR1cm4gRChfcDAsVSxUdCxbMCxbMCxocDAsVzAoSHQpXSxpZV0pO2Nhc2UgMjI6dmFyIFN0PUlbMV0sYnQ9U3RbNF0sZmU9U3RbM10seG49U3RbMl0sTG49U3RbMV07aWYoZmUpdmFyIHJuPWZlWzFdLE1uPU4yKEUxKHJuWzJdWzJdKSxidCksZW49TW4sRG49bHgocm4pO2Vsc2UgdmFyIGVuPWJ0LERuPVgxKDApO3ZhciBxbz1bMCxbMCxUcDAsUngoZHQseG4pXSxbMCxbMCx3cDAsRG5dLDBdXTtyZXR1cm4gRChFcDAsVSxlbixbMCxbMCxTcDAsVjAoTG4pXSxxb10pO2Nhc2UgMjM6dmFyIHRuPUlbMV0sRXQ9dG5bMl0sYXM9WzAsWzAsZ3AwLExyKFd4LHRuWzFdKV0sMF07cmV0dXJuIEQoQXAwLFUsRTEoRXQpLGFzKTtjYXNlIDI0OnZhciBscz1JWzFdLHBzPWxzWzFdLEhvPWxzWzNdLGszPXBzWzRdLG9vPU4yKEUxKHBzWzNdWzJdWzJdKSxrMyk7cmV0dXJuIEQoTnAwLFUsb28sUXgoRm8ocHMpLFswLFswLFBwMCwhIUhvXSwwXSkpO2Nhc2UgMjU6dmFyIGJvPUlbMV0sdGE9Ym9bMV0saDM9dGFbM10sXzM9WzAsWzAsQ3AwLCEhYm9bM11dLDBdO3JldHVybiBEKElwMCxVLGgzLFF4KHhhKHRhKSxfMykpO2Nhc2UgMjY6dmFyIG5hPUlbMV0sdWE9bmFbMl07cmV0dXJuIEQoUnAwLFUsdWEsWzAsWzAsT3AwLExyKFYwLG5hWzFdKV0sMF0pO2Nhc2UgMjc6cmV0dXJuIEQoTHAwLFUsSVsxXVsxXSwwKTtjYXNlIDI4OnZhciBVbj1JWzFdLHczPVVuWzNdLFQzPVVuWzFdLFMzPVswLFswLEE5MCxCeChVblsyXSldLDBdO3JldHVybiBEKE45MCxVLHczLFswLFswLFA5MCxWMChUMyldLFMzXSk7Y2FzZSAyOTpyZXR1cm4gQngoWzAsVSxJWzFdXSk7Y2FzZSAzMDpyZXR1cm4gRChNcDAsVSxJWzFdWzFdLDApO2Nhc2UgMzE6dmFyIE5lPUlbMV0sRTM9TmVbM10sZzM9TmVbMV0saWE9WzAsWzAsRHAwLHp4KE5lWzJdKV0sMF07cmV0dXJuIEQoanAwLFUsRTMsWzAsWzAsVXAwLFYwKGczKV0saWFdKTtjYXNlIDMyOnZhciBkcz1JWzFdLHZvPWRzWzJdLHh2PWRzWzFdO2lmKHR5cGVvZiB2bz09XCJudW1iZXJcIil7dmFyIHJ2PWRzWzNdO3JldHVybiBEKFhwMCxVLHJ2LFswLFswLEpwMCxWMCh4dildLDBdKX1pZih2b1swXT09PTApe3ZhciBBMz1kc1szXSxmYT1bMCxbMCxZcDAseXIodm9bMV0pXSwwXTtyZXR1cm4gRCh6cDAsVSxBMyxbMCxbMCxWcDAsVjAoeHYpXSxmYV0pfXZhciB5cz1kc1szXSxhbz1bMCxbMCxLcDAseXIodm9bMV0pXSwwXTtyZXR1cm4gRChXcDAsVSx5cyxbMCxbMCxCcDAsVjAoeHYpXSxhb10pO2Nhc2UgMzM6dmFyIGV2PUlbMV0sZ3Q9ZXZbM10sUWU9ZXZbMl0sbXM9ZXZbMV07aWYoNzw9bXMpcmV0dXJuIEQoJHAwLFUsZ3QsWzAsWzAsWnAwLFYwKFFlKV0sMF0pO3N3aXRjaChtcyl7Y2FzZSAwOnZhciBBdD1GcDA7YnJlYWs7Y2FzZSAxOnZhciBBdD1RcDA7YnJlYWs7Y2FzZSAyOnZhciBBdD1HcDA7YnJlYWs7Y2FzZSAzOnZhciBBdD1xcDA7YnJlYWs7Y2FzZSA0OnZhciBBdD1IcDA7YnJlYWs7Y2FzZSA1OnZhciBBdD1icDA7YnJlYWs7Y2FzZSA2OnZhciBBdD14ODA7YnJlYWs7ZGVmYXVsdDp2YXIgQXQ9T3gocjgwKX1yZXR1cm4gRCh1ODAsVSxndCxbMCxbMCxuODAsZXIoQXQpXSxbMCxbMCx0ODAsITBdLFswLFswLGU4MCxWMChRZSldLDBdXV0pO2Nhc2UgMzQ6dmFyIG5uPUlbMV0sdW49bm5bNF0sdHY9bm5bM10sUDM9bm5bMl0sTjM9bm5bMV0/aTgwOmY4MDtyZXR1cm4gRCh2ODAsVSx1bixbMCxbMCxvODAsZXIoTjMpXSxbMCxbMCxzODAsVjAoUDMpXSxbMCxbMCxjODAsISF0dl0sMF1dXSk7ZGVmYXVsdDp2YXIgbnY9SVsxXSxDMz1udlsyXSxjYT1bMCxbMCxhODAsISFudlszXV0sMF07cmV0dXJuIEQocDgwLFUsQzMsWzAsWzAsbDgwLFJ4KFYwLG52WzFdKV0sY2FdKX19LFNyPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl07cmV0dXJuIEQoQjgwLHFbMV0sSVsyXSxbMCxbMCxLODAsZXIoSVsxXSldLFswLFswLHo4MCxLMl0sWzAsWzAsVjgwLCExXSwwXV1dKX0sVXI9ZnVuY3Rpb24ocSxJKXt2YXIgVT1JWzFdWzJdLFQwPVVbMl0sUjA9VVsxXSx0eD1bMCxbMCxXODAsISFJWzNdXSwwXTtyZXR1cm4gRChGODAscSxUMCxbMCxbMCwkODAsZXIoUjApXSxbMCxbMCxaODAsem8oengsSVsyXSldLHR4XV0pfSxseD1mdW5jdGlvbihxKXtyZXR1cm4gTHIobWUscVsyXVsxXSl9LGJyPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPUlbMV0sUjA9cVsxXSx0eD1bMCxbMCxRODAsTHIoVTAsSVsyXSldLDBdO3JldHVybiBEKHE4MCxSMCxVLFswLFswLEc4MCxSeChWMCxUMCldLHR4XSl9LGUyPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPUlbMV0sUjA9cVsxXSx0eD1bMCxbMCxIODAsZXgoSVsyXSldLDBdO3JldHVybiBEKHg1MCxSMCxVLFswLFswLGI4MCxSeCh1eCxUMCldLHR4XSl9LGgxPWZ1bmN0aW9uKHEpe3JldHVybiBYMShUbihmdW5jdGlvbihJKXt2YXIgVT1JWzJdO3JldHVybiBJcigwLFVbM10sSVsxXSxbMCxVWzFdXSxVWzJdWzJdKX0scSkpfSxJcj1mdW5jdGlvbihxLEksVSxUMCxSMCl7aWYoVDApdmFyIHR4PVQwWzFdLEV4PXR4WzBdPT09MD9SeChXMCxbMCx0eFsxXV0pOlJ4KEowLFswLHR4WzFdXSksVXg9RXg7ZWxzZSB2YXIgVXg9UngoVzAsMCk7cmV0dXJuIEQoTzUwLFUscSxbMCxbMCxJNTAsVXhdLFswLFswLEM1MCx5cihSMCldLFswLFswLE41MCwhIUldLDBdXV0pfSxSMT1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVs0XSxUMD1JWzNdLFIwPUlbMl0sdHg9SVsxXSxFeD1xWzFdO3JldHVybiBJcihVLFQwLEV4LCRkKGZ1bmN0aW9uKFV4KXtyZXR1cm5bMCxVeF19LHR4KSxSMCl9LF89ZnVuY3Rpb24ocSl7cmV0dXJuIHE/WTUwOlY1MH0sYj1mdW5jdGlvbihxKXtpZighcSlyZXR1cm4gWDEoMCk7dmFyIEk9cVsxXTtpZihJWzBdPT09MClyZXR1cm4gTHIoJG8sSVsxXSk7dmFyIFU9SVsxXSxUMD1VWzJdLFIwPVVbMV07cmV0dXJuIFgxKFQwP1swLEQoSzUwLFIwLDAsWzAsWzAsejUwLFcwKFQwWzFdKV0sMF0pLDBdOjApfSxyMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsyXSxUMD1xWzFdO3JldHVybiBEKHBkMCxUMCxVLFswLFswLGxkMCxWMChJWzFdKV0sMF0pfSxTMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXSxUMD1xWzFdLFIwPVswLFswLGRkMCxSeChPbixJWzJdKV0sMF07cmV0dXJuIEQobWQwLFQwLDAsWzAsWzAseWQwLFcwKFUpXSxSMF0pfSxHPWZ1bmN0aW9uKHEpe3N3aXRjaChxWzBdKXtjYXNlIDA6dmFyIEk9cVsxXSxVPUlbMl0sVDA9VVs2XSxSMD1VWzJdLHR4PVVbNV0sRXg9VVs0XSxVeD1VWzNdLGp4PVVbMV0sSHg9SVsxXTtzd2l0Y2goUjBbMF0pe2Nhc2UgMDp2YXIgY3I9VDAsc3I9MCxOcj1KMChSMFsxXSk7YnJlYWs7Y2FzZSAxOnZhciBjcj1UMCxzcj0wLE5yPUp4KFIwWzFdKTticmVhaztjYXNlIDI6dmFyIGNyPVQwLHNyPTAsTnI9YngoUjBbMV0pO2JyZWFrO2Nhc2UgMzp2YXIgY3I9VDAsc3I9MCxOcj1XMChSMFsxXSk7YnJlYWs7Y2FzZSA0OnZhciBjcj1UMCxzcj0wLE5yPVNyKFIwWzFdKTticmVhaztkZWZhdWx0OnZhciBtcj1SMFsxXVsyXSxvcj1tclsxXSxocj1OMihtclsyXSxUMCksY3I9aHIsc3I9MSxOcj1WMChvcil9c3dpdGNoKGp4KXtjYXNlIDA6dmFyIEZyPV9kMDticmVhaztjYXNlIDE6dmFyIEZyPXdkMDticmVhaztjYXNlIDI6dmFyIEZyPVRkMDticmVhaztkZWZhdWx0OnZhciBGcj1TZDB9dmFyIEJyPVswLFswLFBkMCxlcihGcildLFswLFswLEFkMCwhIUV4XSxbMCxbMCxnZDAsISFzcl0sWzAsWzAsRWQwLExyKHIwLHR4KV0sMF1dXV07cmV0dXJuIEQoSWQwLEh4LGNyLFswLFswLENkMCxOcl0sWzAsWzAsTmQwLG5yKFV4KV0sQnJdXSk7Y2FzZSAxOnZhciBXcj1xWzFdLE1yPVdyWzJdLFFyPU1yWzddLHgxPU1yWzZdLGExPU1yWzJdLGwxPU1yWzFdLGkxPU1yWzVdLF8xPU1yWzRdLENyPU1yWzNdLE0xPVdyWzFdO3N3aXRjaChsMVswXSl7Y2FzZSAwOnZhciBneD1RcixYcj0wLHIxPUowKGwxWzFdKTticmVhaztjYXNlIDE6dmFyIGd4PVFyLFhyPTAscjE9SngobDFbMV0pO2JyZWFrO2Nhc2UgMjp2YXIgZ3g9UXIsWHI9MCxyMT1ieChsMVsxXSk7YnJlYWs7Y2FzZSAzOnZhciBneD1RcixYcj0wLHIxPVcwKGwxWzFdKTticmVhaztjYXNlIDQ6dmFyIHQyPU94KFlkMCksZ3g9dDJbM10sWHI9dDJbMl0scjE9dDJbMV07YnJlYWs7ZGVmYXVsdDp2YXIgZzE9bDFbMV1bMl0sVzI9ZzFbMV0sbmU9TjIoZzFbMl0sUXIpLGd4PW5lLFhyPTEscjE9VjAoVzIpfWlmKHR5cGVvZiBhMT09XCJudW1iZXJcIilpZihhMSl2YXIgbHI9MCx6cj0wO2Vsc2UgdmFyIGxyPTEsenI9MDtlbHNlIHZhciBscj0wLHpyPVswLGExWzFdXTt2YXIgQjE9bHI/WzAsWzAsVmQwLCEhbHJdLDBdOjAsX2U9eDE9PT0wPzA6WzAsWzAsemQwLExyKHIwLHgxKV0sMF0sWjI9UXgoX2UsQjEpLHdlPVswLFswLFdkMCwhIVhyXSxbMCxbMCxCZDAsISFfMV0sWzAsWzAsS2QwLFJ4KGtlLGkxKV0sMF1dXSxHdD1bMCxbMCxaZDAsem8oengsQ3IpXSx3ZV07cmV0dXJuIEQoUWQwLE0xLGd4LFF4KFswLFswLEZkMCxyMV0sWzAsWzAsJGQwLFJ4KFYwLHpyKV0sR3RdXSxaMikpO2RlZmF1bHQ6dmFyIEMyPXFbMV0sbjI9QzJbMl0sSTI9bjJbNl0sYTI9bjJbMl0sa3Q9bjJbN10sTzI9bjJbNV0saHQ9bjJbNF0sJGU9bjJbM10sVGU9bjJbMV0sU2U9QzJbMV07aWYodHlwZW9mIGEyPT1cIm51bWJlclwiKWlmKGEyKXZhciBFZT0wLGdlPTA7ZWxzZSB2YXIgRWU9MSxnZT0wO2Vsc2UgdmFyIEVlPTAsZ2U9WzAsYTJbMV1dO3ZhciBBZT1FZT9bMCxbMCxPZDAsISFFZV0sMF06MCxXMT1JMj09PTA/MDpbMCxbMCxSZDAsTHIocjAsSTIpXSwwXSxQZT1ReChXMSxBZSksX3Q9WzAsWzAsRGQwLCExXSxbMCxbMCxNZDAsISFodF0sWzAsWzAsTGQwLFJ4KGtlLE8yKV0sMF1dXSxGZT1bMCxbMCxVZDAsem8oengsJGUpXSxfdF0sdWU9WzAsWzAsamQwLFJ4KFYwLGdlKV0sRmVdO3JldHVybiBEKFhkMCxTZSxrdCxReChbMCxbMCxKZDAsU3IoVGUpXSx1ZV0sUGUpKX19LGgwPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPUlbMl0sUjA9SVsxXSx0eD1xWzFdLEV4PUlbNF0sVXg9UjBbMF09PT0wP1cwKFIwWzFdKTpKMChSMFsxXSk7aWYoVSl2YXIgang9WzAsWzAsbnkwLFYwKFVbMV0pXSwwXSxIeD1EKGl5MCx0eCwwLFswLFswLHV5MCx1eChUMCldLGp4XSk7ZWxzZSB2YXIgSHg9dXgoVDApO3JldHVybiBEKG95MCx0eCwwLFswLFswLHN5MCxVeF0sWzAsWzAsY3kwLEh4XSxbMCxbMCxmeTAsISFFeF0sMF1dXSl9LHowPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1xWzFdO3N3aXRjaChJWzBdKXtjYXNlIDA6dmFyIFQwPUlbMV0sUjA9VDBbNF0sdHg9VDBbMV0sRXg9WzAsWzAsTnkwLCEhVDBbMl1dLFswLFswLFB5MCwhIVQwWzNdXSwwXV0sVXg9WzAsWzAsQ3kwLExyKGZ1bmN0aW9uKGd4KXt2YXIgWHI9Z3hbMl0scjE9WHJbMV0sbHI9Z3hbMV0senI9WzAsWzAsRXkwLEd4KFhyWzJdKV0sMF07cmV0dXJuIEQoQXkwLGxyLDAsWzAsWzAsZ3kwLFcwKHIxKV0senJdKX0sdHgpXSxFeF07cmV0dXJuIEQoSXkwLFUsRTEoUjApLFV4KTtjYXNlIDE6dmFyIGp4PUlbMV0sSHg9anhbNF0sbXI9anhbMV0sb3I9WzAsWzAsUnkwLCEhanhbMl1dLFswLFswLE95MCwhIWp4WzNdXSwwXV0saHI9WzAsWzAsTHkwLExyKGZ1bmN0aW9uKGd4KXt2YXIgWHI9Z3hbMl0scjE9WHJbMV0sbHI9Z3hbMV0senI9WzAsWzAsd3kwLEp4KFhyWzJdKV0sMF07cmV0dXJuIEQoU3kwLGxyLDAsWzAsWzAsVHkwLFcwKHIxKV0senJdKX0sbXIpXSxvcl07cmV0dXJuIEQoTXkwLFUsRTEoSHgpLGhyKTtjYXNlIDI6dmFyIGNyPUlbMV0sc3I9Y3JbMV0sTnI9Y3JbNF0sRnI9Y3JbM10sQnI9Y3JbMl07aWYoc3JbMF09PT0wKXZhciBXcj1zclsxXSxRcj1UbihmdW5jdGlvbihneCl7dmFyIFhyPWd4WzFdO3JldHVybiBEKF95MCxYciwwLFswLFswLGh5MCxXMChneFsyXVsxXSldLDBdKX0sV3IpO2Vsc2UgdmFyIE1yPXNyWzFdLFFyPVRuKGZ1bmN0aW9uKGd4KXt2YXIgWHI9Z3hbMl0scjE9WHJbMV0sbHI9Z3hbMV0senI9WzAsWzAseXkwLEowKFhyWzJdKV0sMF07cmV0dXJuIEQoa3kwLGxyLDAsWzAsWzAsbXkwLFcwKHIxKV0senJdKX0sTXIpO3ZhciB4MT1bMCxbMCxqeTAsWDEoUXIpXSxbMCxbMCxVeTAsISFCcl0sWzAsWzAsRHkwLCEhRnJdLDBdXV07cmV0dXJuIEQoSnkwLFUsRTEoTnIpLHgxKTtjYXNlIDM6dmFyIGExPUlbMV0sbDE9YTFbM10saTE9YTFbMV0sXzE9WzAsWzAsWHkwLCEhYTFbMl1dLDBdLENyPVswLFswLFl5MCxMcihmdW5jdGlvbihneCl7dmFyIFhyPWd4WzFdO3JldHVybiBEKGR5MCxYciwwLFswLFswLHB5MCxXMChneFsyXVsxXSldLDBdKX0saTEpXSxfMV07cmV0dXJuIEQoVnkwLFUsRTEobDEpLENyKTtkZWZhdWx0OnZhciBNMT1JWzFdLHQyPU0xWzRdLGcxPU0xWzFdLFcyPVswLFswLEt5MCwhIU0xWzJdXSxbMCxbMCx6eTAsISFNMVszXV0sMF1dLG5lPVswLFswLEJ5MCxMcihmdW5jdGlvbihneCl7dmFyIFhyPWd4WzJdLHIxPVhyWzFdLGxyPWd4WzFdLHpyPVswLFswLHZ5MCxieChYclsyXSldLDBdO3JldHVybiBEKGx5MCxsciwwLFswLFswLGF5MCxXMChyMSldLHpyXSl9LGcxKV0sVzJdO3JldHVybiBEKFd5MCxVLEUxKHQyKSxuZSl9fSxNMD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXSxUMD1JWzNdLFIwPUlbMl0sdHg9cVsxXSxFeD1VWzBdPT09MD9XMChVWzFdKTpwdChVWzFdKTtyZXR1cm4gRChlbTAsdHgsVDAsWzAsWzAscm0wLEV4XSxbMCxbMCx4bTAsUngoT24sUjApXSwwXV0pfSx1eD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXTtzd2l0Y2goSVswXSl7Y2FzZSAwOnZhciBUMD1JWzFdLFIwPVQwWzNdLHR4PVQwWzFdLEV4PVswLFswLHRtMCx6byh6eCxUMFsyXSldLDBdLFV4PVswLFswLG5tMCxMcihCMix0eCldLEV4XTtyZXR1cm4gRCh1bTAsVSxFMShSMCksVXgpO2Nhc2UgMTp2YXIgang9SVsxXSxIeD1qeFszXSxtcj1qeFsxXSxvcj1bMCxbMCxpbTAsem8oengsanhbMl0pXSwwXSxocj1bMCxbMCxmbTAsTHIoeHIsbXIpXSxvcl07cmV0dXJuIEQoY20wLFUsRTEoSHgpLGhyKTtjYXNlIDI6cmV0dXJuIFVyKFUsSVsxXSk7ZGVmYXVsdDpyZXR1cm4gVjAoSVsxXSl9fSxaeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsyXSxUMD1JWzFdLFIwPXFbMV07aWYoIVUpcmV0dXJuIHV4KFQwKTt2YXIgdHg9WzAsWzAsc20wLFYwKFVbMV0pXSwwXTtyZXR1cm4gRCh2bTAsUjAsMCxbMCxbMCxvbTAsdXgoVDApXSx0eF0pfSxMeD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsyXSxUMD1xWzFdO3JldHVybiBEKHBtMCxUMCxVLFswLFswLGxtMCx2dl0sWzAsWzAsYW0wLHp4KElbMV0pXSwwXV0pfSx0cj1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVszXSxUMD1JWzJdLFIwPUlbMV07aWYoVSl7dmFyIHR4PVVbMV0sRXg9dHhbMl0sVXg9RXhbMl0sang9dHhbMV0sSHg9RCh5bTAsangsVXgsWzAsWzAsZG0wLHV4KEV4WzFdKV0sMF0pLG1yPUF4KFswLEh4LEZkKFp4LFQwKV0pLG9yPVIwP1swLEx4KFIwWzFdKSxtcl06bXI7cmV0dXJuIFgxKG9yKX12YXIgaHI9VG4oWngsVDApLGNyPVIwP1swLEx4KFIwWzFdKSxocl06aHI7cmV0dXJuIFgxKGNyKX0sJHg9ZnVuY3Rpb24ocSxJKXt2YXIgVT1JWzJdO3JldHVybiBEKGttMCxxLFUsWzAsWzAsbW0wLHV4KElbMV0pXSwwXSl9LHhyPWZ1bmN0aW9uKHEpe3N3aXRjaChxWzBdKXtjYXNlIDA6dmFyIEk9cVsxXSxVPUlbMl0sVDA9VVsyXSxSMD1VWzFdLHR4PUlbMV07aWYoIVQwKXJldHVybiB1eChSMCk7dmFyIEV4PVswLFswLGhtMCxWMChUMFsxXSldLDBdO3JldHVybiBEKHdtMCx0eCwwLFswLFswLF9tMCx1eChSMCldLEV4XSk7Y2FzZSAxOnZhciBVeD1xWzFdO3JldHVybiAkeChVeFsxXSxVeFsyXSk7ZGVmYXVsdDpyZXR1cm4gSzJ9fSx6eD1mdW5jdGlvbihxKXt2YXIgST1xWzFdO3JldHVybiBEKEVfMCxJLDAsWzAsWzAsU18wLHlyKHFbMl0pXSwwXSl9LE9yPWZ1bmN0aW9uKHEpe3N3aXRjaChxWzBdKXtjYXNlIDA6cmV0dXJuIEsyO2Nhc2UgMTpyZXR1cm4gengocVsxXSk7ZGVmYXVsdDp2YXIgST1xWzFdLFU9SVsyXSxUMD1JWzFdO3JldHVybiBEKEFfMCxUMCwwLFswLFswLGdfMCxRdChbMCxVWzFdLFVbMl1dKV0sMF0pfX0sV3g9ZnVuY3Rpb24ocSl7aWYocVswXT09PTApe3ZhciBJPXFbMV0sVT1JWzJdLFQwPUlbMV07c3dpdGNoKFVbMF0pe2Nhc2UgMDp2YXIgUjA9VVszXSx0eD1VWzFdLHNyPTAsTnI9UjAsRnI9MCxCcj1UbTAsV3I9VjAoVVsyXSksTXI9dHg7YnJlYWs7Y2FzZSAxOnZhciBFeD1VWzJdLFV4PVVbMV0sc3I9MCxOcj0wLEZyPTEsQnI9U20wLFdyPW5yKFswLEV4WzFdLEV4WzJdXSksTXI9VXg7YnJlYWs7Y2FzZSAyOnZhciBqeD1VWzJdLEh4PVVbM10sbXI9VVsxXSxzcj1IeCxOcj0wLEZyPTAsQnI9RW0wLFdyPW5yKFswLGp4WzFdLGp4WzJdXSksTXI9bXI7YnJlYWs7ZGVmYXVsdDp2YXIgb3I9VVsyXSxocj1VWzNdLGNyPVVbMV0sc3I9aHIsTnI9MCxGcj0wLEJyPWdtMCxXcj1ucihbMCxvclsxXSxvclsyXV0pLE1yPWNyfXN3aXRjaChNclswXSl7Y2FzZSAwOnZhciBpMT1zcixfMT0wLENyPUowKE1yWzFdKTticmVhaztjYXNlIDE6dmFyIGkxPXNyLF8xPTAsQ3I9SngoTXJbMV0pO2JyZWFrO2Nhc2UgMjp2YXIgaTE9c3IsXzE9MCxDcj1ieChNclsxXSk7YnJlYWs7Y2FzZSAzOnZhciBpMT1zcixfMT0wLENyPVcwKE1yWzFdKTticmVhaztjYXNlIDQ6dmFyIFFyPU94KEFtMCksaTE9UXJbM10sXzE9UXJbMl0sQ3I9UXJbMV07YnJlYWs7ZGVmYXVsdDp2YXIgeDE9TXJbMV1bMl0sYTE9eDFbMV0sbDE9TjIoeDFbMl0sc3IpLGkxPWwxLF8xPTEsQ3I9VjAoYTEpfXJldHVybiBEKExtMCxUMCxpMSxbMCxbMCxSbTAsQ3JdLFswLFswLE9tMCxXcl0sWzAsWzAsSW0wLGVyKEJyKV0sWzAsWzAsQ20wLCEhRnJdLFswLFswLE5tMCwhIU5yXSxbMCxbMCxQbTAsISFfMV0sMF1dXV1dXSl9dmFyIE0xPXFbMV0sdDI9TTFbMl0sZzE9dDJbMl0sVzI9TTFbMV07cmV0dXJuIEQoRG0wLFcyLGcxLFswLFswLE1tMCxWMCh0MlsxXSldLDBdKX0sQjI9ZnVuY3Rpb24ocSl7aWYocVswXSE9PTApe3ZhciBJPXFbMV07cmV0dXJuICR4KElbMV0sSVsyXSl9dmFyIFU9cVsxXSxUMD1VWzJdLFIwPVQwWzNdLHR4PVQwWzJdLEV4PVQwWzFdLFV4PVQwWzRdLGp4PVVbMV07c3dpdGNoKEV4WzBdKXtjYXNlIDA6dmFyIG9yPTAsaHI9MCxjcj1KMChFeFsxXSk7YnJlYWs7Y2FzZSAxOnZhciBvcj0wLGhyPTAsY3I9SngoRXhbMV0pO2JyZWFrO2Nhc2UgMjp2YXIgb3I9MCxocj0wLGNyPWJ4KEV4WzFdKTticmVhaztjYXNlIDM6dmFyIG9yPTAsaHI9MCxjcj1XMChFeFsxXSk7YnJlYWs7ZGVmYXVsdDp2YXIgSHg9RXhbMV1bMl0sbXI9SHhbMl0sb3I9bXIsaHI9MSxjcj1WMChIeFsxXSl9aWYoUjApdmFyIHNyPVIwWzFdLE5yPXUxKHR4WzFdLHNyWzFdKSxGcj1bMCxbMCxVbTAsVjAoc3IpXSwwXSxCcj1EKEptMCxOciwwLFswLFswLGptMCx1eCh0eCldLEZyXSk7ZWxzZSB2YXIgQnI9dXgodHgpO3JldHVybiBEKFdtMCxqeCxvcixbMCxbMCxCbTAsY3JdLFswLFswLEttMCxCcl0sWzAsWzAsem0wLHB1XSxbMCxbMCxWbTAsITFdLFswLFswLFltMCwhIVV4XSxbMCxbMCxYbTAsISFocl0sMF1dXV1dXSl9LGx0PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPXFbMV07cmV0dXJuIEQoJG0wLFQwLFUsWzAsWzAsWm0wLFYwKElbMV0pXSwwXSl9LG1lPWZ1bmN0aW9uKHEpe3JldHVybiBxWzBdPT09MD9WMChxWzFdKTpsdChxWzFdKX0sUG49ZnVuY3Rpb24ocSl7c3dpdGNoKHFbMF0pe2Nhc2UgMDpyZXR1cm4gVjAocVsxXSk7Y2FzZSAxOnJldHVybiBsdChxWzFdKTtkZWZhdWx0OnJldHVybiBLMn19LHRvPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzFdLFQwPUlbMl0sUjA9cVsxXTtyZXR1cm4gRChnOTAsUjAsMCxbMCxbMCxFOTAsZnMoWzAsWzAsVDkwLGVyKFVbMV0pXSxbMCxbMCx3OTAsZXIoVVsyXSldLDBdXSldLFswLFswLFM5MCwhIVQwXSwwXV0pfSxObj1mdW5jdGlvbihxKXtzd2l0Y2gocSl7Y2FzZSAwOnJldHVybiBDOTA7Y2FzZSAxOnJldHVybiBJOTA7ZGVmYXVsdDpyZXR1cm4gTzkwfX0sY3M9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMV0sVDA9cVsxXSxSMD1bMCxbMCxEOTAsUngoVjAsSVsyXSldLDBdO3JldHVybiBEKGo5MCxUMCwwLFswLFswLFU5MCx1eChVKV0sUjBdKX0sa2U9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMl0sVDA9cVsxXTtzd2l0Y2goSVsxXSl7Y2FzZSAwOnZhciBSMD1KOTA7YnJlYWs7Y2FzZSAxOnZhciBSMD1YOTA7YnJlYWs7Y2FzZSAyOnZhciBSMD1ZOTA7YnJlYWs7Y2FzZSAzOnZhciBSMD1WOTA7YnJlYWs7Y2FzZSA0OnZhciBSMD16OTA7YnJlYWs7ZGVmYXVsdDp2YXIgUjA9SzkwfXJldHVybiBEKFc5MCxUMCxVLFswLFswLEI5MCxlcihSMCldLDBdKX0sQ249ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMV0sVDA9SVszXSxSMD1JWzJdLHR4PXFbMV0sRXg9VVswXT09PTA/VzAoVVsxXSk6cHQoVVsxXSk7cmV0dXJuIEQoTGgwLHR4LFQwLFswLFswLFJoMCxFeF0sWzAsWzAsT2gwLFJ4KE9uLFIwKV0sMF1dKX0sdGU9ZnVuY3Rpb24ocSxJKXt2YXIgVT1JWzJdLFQwPVVbNF0sUjA9VVszXSx0eD1VWzJdLEV4PVVbMV0sVXg9SVsxXSxqeD1IMShmdW5jdGlvbihCcixXcil7dmFyIE1yPUJyWzRdLFFyPUJyWzNdLHgxPUJyWzJdLGExPUJyWzFdO3N3aXRjaChXclswXSl7Y2FzZSAwOnZhciBsMT1XclsxXSxpMT1sMVsyXSxfMT1pMVsyXSxDcj1pMVsxXSxNMT1pMVs4XSx0Mj1pMVs3XSxnMT1pMVs2XSxXMj1pMVs1XSxuZT1pMVs0XSxneD1pMVszXSxYcj1sMVsxXTtzd2l0Y2goQ3JbMF0pe2Nhc2UgMDp2YXIgcjE9SjAoQ3JbMV0pO2JyZWFrO2Nhc2UgMTp2YXIgcjE9SngoQ3JbMV0pO2JyZWFrO2Nhc2UgMjp2YXIgcjE9YngoQ3JbMV0pO2JyZWFrO2Nhc2UgMzp2YXIgcjE9VzAoQ3JbMV0pO2JyZWFrO2Nhc2UgNDp2YXIgcjE9T3goTGswKTticmVhaztkZWZhdWx0OnZhciByMT1PeChNazApfXN3aXRjaChfMVswXSl7Y2FzZSAwOnZhciBCMT1EazAsX2U9eXIoXzFbMV0pO2JyZWFrO2Nhc2UgMTp2YXIgbHI9XzFbMV0sQjE9VWswLF9lPUZ0KFswLGxyWzFdLGxyWzJdXSk7YnJlYWs7ZGVmYXVsdDp2YXIgenI9XzFbMV0sQjE9amswLF9lPUZ0KFswLHpyWzFdLHpyWzJdXSl9cmV0dXJuWzAsWzAsRChaazAsWHIsTTEsWzAsWzAsV2swLHIxXSxbMCxbMCxCazAsX2VdLFswLFswLEtrMCwhIWcxXSxbMCxbMCx6azAsISFneF0sWzAsWzAsVmswLCEhbmVdLFswLFswLFlrMCwhIVcyXSxbMCxbMCxYazAsUngoa2UsdDIpXSxbMCxbMCxKazAsZXIoQjEpXSwwXV1dXV1dXV0pLGExXSx4MSxRcixNcl07Y2FzZSAxOnZhciBaMj1XclsxXSx3ZT1aMlsyXSxHdD13ZVsyXSxDMj1aMlsxXTtyZXR1cm5bMCxbMCxEKEZrMCxDMixHdCxbMCxbMCwkazAseXIod2VbMV0pXSwwXSksYTFdLHgxLFFyLE1yXTtjYXNlIDI6dmFyIG4yPVdyWzFdLEkyPW4yWzJdLGEyPUkyWzZdLGt0PUkyWzRdLE8yPUkyWzNdLGh0PUkyWzJdLCRlPUkyWzFdLFRlPW4yWzFdLFNlPVswLFswLEdrMCwhIWt0XSxbMCxbMCxRazAsUngoa2UsSTJbNV0pXSwwXV0sRWU9WzAsWzAscWswLHlyKE8yKV0sU2VdLGdlPVswLFswLEhrMCx5cihodCldLEVlXTtyZXR1cm5bMCxhMSxbMCxEKHhoMCxUZSxhMixbMCxbMCxiazAsUngoVzAsJGUpXSxnZV0pLHgxXSxRcixNcl07Y2FzZSAzOnZhciBBZT1XclsxXSxXMT1BZVsyXSxQZT1XMVszXSxfdD1BZVsxXSxGZT1bMCxbMCxyaDAsISFXMVsyXV0sMF07cmV0dXJuWzAsYTEseDEsWzAsRCh0aDAsX3QsUGUsWzAsWzAsZWgwLEZ0KFcxWzFdKV0sRmVdKSxRcl0sTXJdO2Nhc2UgNDp2YXIgdWU9V3JbMV0sUjI9dWVbMl0scXQ9UjJbNl0sdnM9UjJbNV0sd3Q9UjJbNF0sVHQ9UjJbM10sSHQ9UjJbMV0saWU9dWVbMV0sU3Q9WzAsWzAsbGgwLCEhVHRdLFswLFswLGFoMCwhIXd0XSxbMCxbMCx2aDAsISF2c10sWzAsWzAsb2gwLHlyKFIyWzJdKV0sMF1dXV07cmV0dXJuWzAsYTEseDEsUXIsWzAsRChkaDAsaWUscXQsWzAsWzAscGgwLFcwKEh0KV0sU3RdKSxNcl1dO2RlZmF1bHQ6dmFyIGJ0PVdyWzFdLGZlPWJ0WzJdLHhuPWZlWzZdLExuPWZlWzRdLHJuPWZlWzNdLE1uPWZlWzJdLGVuPWZlWzFdLERuPWJ0WzFdLHFvPTA7c3dpdGNoKGZlWzVdKXtjYXNlIDA6dmFyIHRuPVwiUGx1c09wdGlvbmFsXCI7YnJlYWs7Y2FzZSAxOnZhciB0bj1cIk1pbnVzT3B0aW9uYWxcIjticmVhaztjYXNlIDI6dmFyIHRuPVwiT3B0aW9uYWxcIjticmVhaztkZWZhdWx0OnZhciB0bj1LMn12YXIgRXQ9WzAsWzAsdWgwLFJ4KGtlLExuKV0sWzAsWzAsbmgwLHRuXSxxb11dLGFzPVswLFswLGloMCx5cihybildLEV0XSxscz1bMCxbMCxmaDAseXIoTW4pXSxhc107cmV0dXJuWzAsWzAsRChzaDAsRG4seG4sWzAsWzAsY2gwLHVvKGVuKV0sbHNdKSxhMV0seDEsUXIsTXJdfX0sZ2swLFIwKSxIeD1qeFszXSxtcj1qeFsyXSxvcj1qeFsxXSxocj1bMCxbMCxBazAsWDEoQXgoanhbNF0pKV0sMF0sY3I9WzAsWzAsUGswLFgxKEF4KEh4KSldLGhyXSxzcj1bMCxbMCxOazAsWDEoQXgobXIpKV0sY3JdLE5yPVswLFswLElrMCwhIUV4XSxbMCxbMCxDazAsWDEoQXgob3IpKV0sc3JdXSxGcj1xP1swLFswLE9rMCwhIXR4XSxOcl06TnI7cmV0dXJuIEQoUmswLFV4LEUxKFQwKSxGcil9LEZ0PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzNdLFQwPUlbMl1bMl0sUjA9SVs0XSx0eD1UMFszXSxFeD1UMFsyXSxVeD1UMFsxXSxqeD1JWzFdLEh4PXFbMV0sbXI9TjIoRTEoVDBbNF0pLFIwKSxvcj1bMCxbMCx2azAsUngodjIsangpXSwwXSxocj1bMCxbMCxhazAsUngocXYsdHgpXSxvcl0sY3I9VVswXT09PTA/eXIoVVsxXSk6UXQoVVsxXSksc3I9WzAsWzAscGswLFJ4KGhlLFV4KV0sWzAsWzAsbGswLGNyXSxocl1dO3JldHVybiBEKHlrMCxIeCxtcixbMCxbMCxkazAsTHIoZnVuY3Rpb24oTnIpe3JldHVybiBJbigwLE5yKX0sRXgpXSxzcl0pfSx5cj1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXTtzd2l0Y2goSVswXSl7Y2FzZSAwOnJldHVybiBEKFo5MCxVLElbMV0sMCk7Y2FzZSAxOnJldHVybiBEKCQ5MCxVLElbMV0sMCk7Y2FzZSAyOnJldHVybiBEKEY5MCxVLElbMV0sMCk7Y2FzZSAzOnJldHVybiBEKFE5MCxVLElbMV0sMCk7Y2FzZSA0OnJldHVybiBEKEc5MCxVLElbMV0sMCk7Y2FzZSA1OnJldHVybiBEKEg5MCxVLElbMV0sMCk7Y2FzZSA2OnJldHVybiBEKGI5MCxVLElbMV0sMCk7Y2FzZSA3OnJldHVybiBEKHhrMCxVLElbMV0sMCk7Y2FzZSA4OnJldHVybiBEKHJrMCxVLElbMl0sMCk7Y2FzZSA5OnJldHVybiBEKHE5MCxVLElbMV0sMCk7Y2FzZSAxMDpyZXR1cm4gRChUXzAsVSxJWzFdLDApO2Nhc2UgMTE6dmFyIFQwPUlbMV0sUjA9VDBbMl07cmV0dXJuIEQodGswLFUsUjAsWzAsWzAsZWswLHlyKFQwWzFdKV0sMF0pO2Nhc2UgMTI6cmV0dXJuIEZ0KFswLFUsSVsxXV0pO2Nhc2UgMTM6dmFyIHR4PUlbMV0sRXg9dHhbMl0sVXg9dHhbNF0sang9dHhbM10sSHg9dHhbMV0sbXI9TjIoRTEoRXhbMl1bM10pLFV4KSxvcj1FeFsyXSxocj1vclsyXSxjcj1vclsxXSxzcj1bMCxbMCxTNTAsUngodjIsSHgpXSwwXSxOcj1bMCxbMCxFNTAsem8oengsangpXSxzcl0sRnI9WzAsWzAsZzUwLFJ4KFIxLGhyKV0sTnJdO3JldHVybiBEKFA1MCxVLG1yLFswLFswLEE1MCxoMShjcildLEZyXSk7Y2FzZSAxNDpyZXR1cm4gdGUoMSxbMCxVLElbMV1dKTtjYXNlIDE1OnZhciBCcj1JWzFdLFdyPUJyWzNdLE1yPUJyWzJdLFFyPVswLFswLHloMCx0ZSgwLEJyWzFdKV0sMF07cmV0dXJuIEQoa2gwLFUsV3IsWzAsWzAsbWgwLExyKE0wLE1yKV0sUXJdKTtjYXNlIDE2OnZhciB4MT1JWzFdLGExPXgxWzJdO3JldHVybiBEKF9oMCxVLGExLFswLFswLGhoMCx5cih4MVsxXSldLDBdKTtjYXNlIDE3OnZhciBsMT1JWzFdLGkxPWwxWzVdLF8xPWwxWzNdLENyPWwxWzJdLE0xPWwxWzFdLHQyPVswLFswLHdoMCx5cihsMVs0XSldLDBdLGcxPVswLFswLFRoMCx5cihfMSldLHQyXSxXMj1bMCxbMCxTaDAseXIoQ3IpXSxnMV07cmV0dXJuIEQoZ2gwLFUsaTEsWzAsWzAsRWgwLHlyKE0xKV0sVzJdKTtjYXNlIDE4OnZhciBuZT1JWzFdLGd4PW5lWzJdO3JldHVybiBEKFBoMCxVLGd4LFswLFswLEFoMCx1byhuZVsxXSldLDBdKTtjYXNlIDE5OnJldHVybiBDbihbMCxVLElbMV1dKTtjYXNlIDIwOnZhciBYcj1JWzFdLHIxPVhyWzNdO3JldHVybiBEKFVoMCxVLHIxLEtvKFhyKSk7Y2FzZSAyMTp2YXIgbHI9SVsxXSx6cj1sclsxXSxCMT16clszXSxfZT1bMCxbMCxqaDAsISFsclsyXV0sMF07cmV0dXJuIEQoSmgwLFUsQjEsUXgoS28oenIpLF9lKSk7Y2FzZSAyMjp2YXIgWjI9SVsxXSx3ZT1aMlsxXSxHdD1aMlsyXTtyZXR1cm4gRChZaDAsVSxHdCxbMCxbMCxYaDAsTHIoeXIsWzAsd2VbMV0sWzAsd2VbMl0sd2VbM11dXSldLDBdKTtjYXNlIDIzOnZhciBDMj1JWzFdLG4yPUMyWzFdLEkyPUMyWzJdO3JldHVybiBEKHpoMCxVLEkyLFswLFswLFZoMCxMcih5cixbMCxuMlsxXSxbMCxuMlsyXSxuMlszXV1dKV0sMF0pO2Nhc2UgMjQ6dmFyIGEyPUlbMV0sa3Q9YTJbMl07cmV0dXJuIEQoQmgwLFUsa3QsWzAsWzAsS2gwLG5vKGEyWzFdKV0sMF0pO2Nhc2UgMjU6dmFyIE8yPUlbMV0saHQ9TzJbMl07cmV0dXJuIEQoUWgwLFUsaHQsWzAsWzAsRmgwLHlyKE8yWzFdKV0sMF0pO2Nhc2UgMjY6dmFyICRlPUlbMV0sVGU9JGVbMl07cmV0dXJuIEQocWgwLFUsVGUsWzAsWzAsR2gwLHlyKCRlWzFdKV0sMF0pO2Nhc2UgMjc6dmFyIFNlPUlbMV0sRWU9U2VbMl0sZ2U9U2VbMV0sQWU9MDtyZXR1cm4gRChiaDAsVSxFZSxbMCxbMCxIaDAsTHIoZnVuY3Rpb24od3Qpe3ZhciBUdD13dFsyXSxIdD13dFsxXTtzd2l0Y2goVHRbMF0pe2Nhc2UgMDpyZXR1cm4geXIoVHRbMV0pO2Nhc2UgMTp2YXIgaWU9VHRbMV0sU3Q9aWVbMl0sYnQ9aWVbMV0sZmU9WzAsWzAseF8wLCEhaWVbNF1dLDBdLHhuPVswLFswLHJfMCxSeChrZSxpZVszXSldLGZlXSxMbj1bMCxbMCxlXzAseXIoU3QpXSx4bl07cmV0dXJuIEQobl8wLEh0LDAsWzAsWzAsdF8wLFcwKGJ0KV0sTG5dKTtkZWZhdWx0OnZhciBybj1UdFsxXSxNbj1yblsxXSxlbj1bMCxbMCx1XzAseXIocm5bMl0pXSwwXTtyZXR1cm4gRChmXzAsSHQsMCxbMCxbMCxpXzAsUngoVzAsTW4pXSxlbl0pfX0sZ2UpXSxBZV0pO2Nhc2UgMjg6dmFyIFcxPUlbMV07cmV0dXJuIEQob18wLFUsVzFbM10sWzAsWzAsc18wLGVyKFcxWzFdKV0sWzAsWzAsY18wLGVyKFcxWzJdKV0sMF1dKTtjYXNlIDI5OnZhciBQZT1JWzFdO3JldHVybiBEKGxfMCxVLFBlWzNdLFswLFswLGFfMCxQZVsxXV0sWzAsWzAsdl8wLGVyKFBlWzJdKV0sMF1dKTtjYXNlIDMwOnZhciBfdD1JWzFdO3JldHVybiBEKHlfMCxVLF90WzNdLFswLFswLGRfMCxLMl0sWzAsWzAscF8wLGVyKF90WzJdKV0sMF1dKTtjYXNlIDMxOnZhciBGZT1JWzFdLHVlPUZlWzFdLFIyPUZlWzJdLHF0PTAsdnM9dWU/bV8wOmtfMDtyZXR1cm4gRCh3XzAsVSxSMixbMCxbMCxfXzAsISF1ZV0sWzAsWzAsaF8wLGVyKHZzKV0scXRdXSk7Y2FzZSAzMjpyZXR1cm4gRChuazAsVSxJWzFdLDApO2Nhc2UgMzM6cmV0dXJuIEQodWswLFUsSVsxXSwwKTtkZWZhdWx0OnJldHVybiBEKGlrMCxVLElbMV0sMCl9fSxRdD1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsyXSxUMD1JWzNdLFIwPVVbMV0sdHg9cVsxXSxFeD1bMCxbMCxmazAsISFJWzFdXSwwXSxVeD1bMCxbMCxjazAsUngoeXIsVVsyXSldLEV4XSxqeD1bMCxbMCxzazAsVzAoUjApXSxVeF07cmV0dXJuIEQob2swLHR4LEUxKFQwKSxqeCl9LEluPWZ1bmN0aW9uKHEsSSl7dmFyIFU9SVsyXSxUMD1VWzFdLFIwPUlbMV0sdHg9WzAsWzAsbWswLCEhVVszXV0sMF0sRXg9WzAsWzAsa2swLHlyKFVbMl0pXSx0eF07cmV0dXJuIEQoX2swLFIwLHEsWzAsWzAsaGswLFJ4KFcwLFQwKV0sRXhdKX0scXY9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXTtyZXR1cm4gSW4oSVsyXSxJWzFdKX0saGU9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMl0sVDA9cVsxXSxSMD1bMCxbMCxUazAseXIoSVsxXVsyXSldLFswLFswLHdrMCwhMV0sMF1dO3JldHVybiBEKEVrMCxUMCxVLFswLFswLFNrMCxSeChXMCwwKV0sUjBdKX0scHQ9ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMV0sVDA9SVsyXSxSMD1xWzFdLHR4PVVbMF09PT0wP1cwKFVbMV0pOnB0KFVbMV0pO3JldHVybiBEKEloMCxSMCwwLFswLFswLENoMCx0eF0sWzAsWzAsTmgwLFcwKFQwKV0sMF1dKX0sS289ZnVuY3Rpb24ocSl7dmFyIEk9cVsxXSxVPVswLFswLE1oMCx5cihxWzJdKV0sMF07cmV0dXJuWzAsWzAsRGgwLHlyKEkpXSxVXX0sbm89ZnVuY3Rpb24ocSl7aWYocVswXT09PTApcmV0dXJuIFcwKHFbMV0pO3ZhciBJPXFbMV0sVT1JWzJdLFQwPVVbMl0sUjA9SVsxXSx0eD1ubyhVWzFdKTtyZXR1cm4gRCgkaDAsUjAsMCxbMCxbMCxaaDAsdHhdLFswLFswLFdoMCxXMChUMCldLDBdXSl9LHYyPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPXFbMV0sUjA9WzAsWzAsUF8wLExyKHVvLElbMV0pXSwwXTtyZXR1cm4gRChOXzAsVDAsRTEoVSksUjApfSx1bz1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXVsyXSxUMD1JWzVdLFIwPUlbNF0sdHg9SVsyXSxFeD1VWzJdLFV4PVVbMV0sang9cVsxXSxIeD1JWzNdP1swLFswLENfMCwhMF0sMF06MCxtcj1bMCxbMCxJXzAsUngoeXIsVDApXSwwXSxvcj1bMCxbMCxPXzAsUngoa2UsUjApXSxtcl07cmV0dXJuIEQoTV8wLGp4LEV4LFF4KFswLFswLExfMCxlcihVeCldLFswLFswLFJfMCx6byh6eCx0eCldLG9yXV0sSHgpKX0sT249ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPUlbMl0sVDA9cVsxXSxSMD1bMCxbMCxEXzAsTHIoeXIsSVsxXSldLDBdO3JldHVybiBEKFVfMCxUMCxFMShVKSxSMCl9LGR0PWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPXFbMV0sUjA9WzAsWzAsal8wLExyKEJvLElbMV0pXSwwXTtyZXR1cm4gRChKXzAsVDAsRTEoVSksUjApfSxCbz1mdW5jdGlvbihxKXtpZihxWzBdPT09MClyZXR1cm4geXIocVsxXSk7dmFyIEk9cVsxXSxVPUlbMV0sVDA9SVsyXVsxXTtyZXR1cm4gQ24oWzAsVSxbMCxbMCxTbigwLFswLFUsWF8wXSldLDAsVDBdXSl9LGlvPWZ1bmN0aW9uKHEpe2lmKHFbMF09PT0wKXt2YXIgST1xWzFdLFU9SVsyXSxUMD1VWzFdLFIwPVVbMl0sdHg9SVsxXSxFeD1UMFswXT09PTA/eXQoVDBbMV0pOnNzKFQwWzFdKTtyZXR1cm4gRCh1dzAsdHgsMCxbMCxbMCxudzAsRXhdLFswLFswLHR3MCxSeChhMyxSMCldLDBdXSl9dmFyIFV4PXFbMV0sang9VXhbMl0sSHg9anhbMl0sbXI9VXhbMV07cmV0dXJuIEQoZncwLG1yLEh4LFswLFswLGl3MCxWMChqeFsxXSldLDBdKX0sSHY9ZnVuY3Rpb24ocSl7dmFyIEk9cVsxXTtyZXR1cm4gRChydzAsSSwwLFswLFswLHh3MCxjbyhxWzJdWzFdKV0sMF0pfSxXbz1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXSxUMD1xWzFdLFIwPUlbMl0sdHg9VT9WMChVWzFdKTpEKGN3MCxbMCxUMFsxXSxbMCxUMFsyXVsxXSxUMFsyXVsyXSsxfDBdLFswLFQwWzNdWzFdLFQwWzNdWzJdLTF8MF1dLDAsMCk7cmV0dXJuIEQob3cwLFQwLEUxKFIwKSxbMCxbMCxzdzAsdHhdLDBdKX0sZm89ZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPXFbMV07c3dpdGNoKElbMF0pe2Nhc2UgMDpyZXR1cm4gbXgoWzAsVSxJWzFdXSk7Y2FzZSAxOnJldHVybiBOeChbMCxVLElbMV1dKTtjYXNlIDI6cmV0dXJuIFdvKFswLFUsSVsxXV0pO2Nhc2UgMzp2YXIgVDA9SVsxXSxSMD1UMFsyXTtyZXR1cm4gRChhdzAsVSxSMCxbMCxbMCx2dzAsVjAoVDBbMV0pXSwwXSk7ZGVmYXVsdDp2YXIgdHg9SVsxXTtyZXR1cm4gRChkdzAsVSwwLFswLFswLHB3MCxlcih0eFsxXSldLFswLFswLGx3MCxlcih0eFsyXSldLDBdXSl9fSx5dD1mdW5jdGlvbihxKXt2YXIgST1xWzJdO3JldHVybiBEKFN3MCxxWzFdLElbMl0sWzAsWzAsVHcwLGVyKElbMV0pXSwwXSl9LHNzPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzFdLFQwPXFbMV0sUjA9WzAsWzAsaHcwLHl0KElbMl0pXSwwXTtyZXR1cm4gRCh3dzAsVDAsMCxbMCxbMCxfdzAseXQoVSldLFIwXSl9LFpvPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzFdLFQwPUlbMl0sUjA9cVsxXSx0eD1VWzBdPT09MD95dChVWzFdKTpabyhVWzFdKTtyZXR1cm4gRChrdzAsUjAsMCxbMCxbMCxtdzAsdHhdLFswLFswLHl3MCx5dChUMCldLDBdXSl9LGNvPWZ1bmN0aW9uKHEpe3N3aXRjaChxWzBdKXtjYXNlIDA6cmV0dXJuIHl0KHFbMV0pO2Nhc2UgMTpyZXR1cm4gc3MocVsxXSk7ZGVmYXVsdDpyZXR1cm4gWm8ocVsxXSl9fSxhMz1mdW5jdGlvbihxKXtpZihxWzBdPT09MCl7dmFyIEk9cVsxXTtyZXR1cm4gSjAoWzAsSVsxXSxJWzJdXSl9dmFyIFU9cVsxXTtyZXR1cm4gV28oWzAsVVsxXSxVWzJdXSl9LCRvPWZ1bmN0aW9uKHEpe3ZhciBJPXFbMl0sVT1JWzJdLFQwPUlbMV0sUjA9cVsxXSx0eD1XMChVP1VbMV06VDApO3JldHVybiBEKEF3MCxSMCwwLFswLFswLGd3MCxXMChUMCldLFswLFswLEV3MCx0eF0sMF1dKX0sUm49ZnVuY3Rpb24ocSl7cmV0dXJuIExyKGJ2LHEpfSxidj1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXTtpZihJWzFdKXZhciBUMD1JWzJdLFIwPUR3MDtlbHNlIHZhciBUMD1JWzJdLFIwPVV3MDtyZXR1cm4gRChSMCxVLDAsWzAsWzAsancwLGVyKFQwKV0sMF0pfSxzbz1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9SVsxXSxUMD1JWzJdLFIwPXFbMV07aWYoVSl2YXIgdHg9WzAsWzAsSncwLFYwKFVbMV0pXSwwXSxFeD1YdzA7ZWxzZSB2YXIgdHg9MCxFeD1ZdzA7cmV0dXJuIEQoRXgsUjAsVDAsdHgpfSxGbz1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXSxUMD1bMCxbMCxWdzAsbHgocVszXSldLDBdLFIwPVswLFswLHp3MCxSeChkdCxJKV0sVDBdO3JldHVyblswLFswLEt3MCxWMChVKV0sUjBdfSx4YT1mdW5jdGlvbihxKXt2YXIgST1xWzJdLFU9cVsxXTtzd2l0Y2goSVswXSl7Y2FzZSAwOnZhciBUMD0wLFIwPVcwKElbMV0pO2JyZWFrO2Nhc2UgMTp2YXIgVDA9MCxSMD1TcihJWzFdKTticmVhaztkZWZhdWx0OnZhciBUMD0xLFIwPVYwKElbMV0pfXJldHVyblswLFswLFp3MCxWMChVKV0sWzAsWzAsV3cwLFIwXSxbMCxbMCxCdzAsISFUMF0sMF1dXX0sb3M9UDBbMl0sUW89b3NbMl0sR289b3NbNF0scmE9b3NbM10sbDM9UDBbMV0sTG09TzAob3NbMV0pLHAzPVswLFswLGU2MCxMbV0sWzAsWzAscjYwLFJuKEdvKV0sMF1dO2lmKFFvKXZhciBJNj1Rb1sxXSxPNj1ReChwMyxbMCxbMCx1NjAsRChuNjAsSTZbMV0sMCxbMCxbMCx0NjAsZXIoSTZbMl0pXSwwXSldLDBdKTtlbHNlIHZhciBPNj1wMzt2YXIgZDM9RChpNjAsbDMscmEsTzYpLE1tPVF4KHYwLFJCWzFdKTtpZihkMy5lcnJvcnM9THIoZnVuY3Rpb24ocSl7dmFyIEk9cVsxXSxVPVswLFswLCR3MCxlcihHVDAocVsyXSkpXSwwXTtyZXR1cm4gZnMoWzAsWzAsRncwLE1CKEkpXSxVXSl9LE1tKSxoKXt2YXIgRG09T1sxXTtkM1twRF09WDEoRmQoZnVuY3Rpb24ocSl7dmFyIEk9cVsyXSxVPXFbMV0sVDA9cVszXSxSMD1bMCxbMCxrdjAsZXIoV08oSSkpXSwwXSx0eD1bMCxHeShILFVbM10pLDBdLEV4PVswLFswLGh2MCxYMShbMCxHeShILFVbMl0pLHR4XSldLFIwXSxVeD1bMCxbMCxUdjAsZnMoWzAsWzAsd3YwLFVbM11bMV1dLFswLFswLF92MCxVWzNdWzJdXSwwXV0pXSwwXSxqeD1bMCxbMCxBdjAsZnMoWzAsWzAsZ3YwLGZzKFswLFswLEV2MCxVWzJdWzFdXSxbMCxbMCxTdjAsVVsyXVsyXV0sMF1dKV0sVXhdKV0sRXhdO3N3aXRjaChUMCl7Y2FzZSAwOnZhciBIeD1QdjA7YnJlYWs7Y2FzZSAxOnZhciBIeD1OdjA7YnJlYWs7Y2FzZSAyOnZhciBIeD1DdjA7YnJlYWs7Y2FzZSAzOnZhciBIeD1JdjA7YnJlYWs7Y2FzZSA0OnZhciBIeD1PdjA7YnJlYWs7ZGVmYXVsdDp2YXIgSHg9UnYwfXJldHVybiBmcyhbMCxbMCxNdjAsZXIoRVYoSSkpXSxbMCxbMCxMdjAsZXIoSHgpXSxqeF1dKX0sRG0pKX1yZXR1cm4gZDN9dmFyIGVhPUEwWzFdO2lmKGVhPT09NSl7dmFyIHkzPUEwWzJdO2lmKHkzJiZ5M1sxXT09PTYpe3ZhciBVbT15M1syXSxOMD1bMCxGKzJ8MCwwLFswLERsKEF4KFswLEYsQzBdKSksWTBdXSxBMD1VbTtjb250aW51ZX19ZWxzZSBpZig2PmVhKXt2YXIgam09QTBbMl0sTjA9WzAsRitOeihlYSl8MCxbMCxGLEMwXSxZMF0sQTA9am07Y29udGludWV9dmFyIEptPUEwWzJdLEwxPVswLERsKEF4KFswLEYsQzBdKSksWTBdLE4wPVswLEYrTnooZWEpfDAsMCxMMV0sQTA9Sm19fX07aWYodHlwZW9mIGdNPFwidVwiKXZhciBEQj1nTTtlbHNle3ZhciBVQj17fTtlby5mbG93PVVCO3ZhciBEQj1VQn1EQi5wYXJzZT1WVyhmdW5jdGlvbih4LHIpe3RyeXt2YXIgZT1SRTAoeCxyKTtyZXR1cm4gZX1jYXRjaCh1KXt2YXIgdD1DMSh1KTtyZXR1cm4gdFsxXT09PVBMP09CKHRbMl0pOk9CKG5ldyBJRTAoZXIoRngob1QwLHh5KHQpKSkpKX19KSxiSSgwKTtyZXR1cm59fX0pKGdsb2JhbFRoaXMpfSk7dmFyIEZCPWpCKG9hPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG9hLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO29hLmV4dHJhY3Q9WE4wO29hLnBhcnNlPVZOMDtvYS5wYXJzZVdpdGhDb21tZW50cz0kQjtvYS5wcmludD16TjA7b2Euc3RyaXA9WU4wO3ZhciBNTjA9L1xcKlxcLyQvLEROMD0vXlxcL1xcKlxcKj8vLFdCPS9eXFxzKihcXC9cXCpcXCo/KC58XFxyP1xcbikqP1xcKlxcLykvLFVOMD0vKF58XFxzKylcXC9cXC8oW15cXHJcXG5dKikvZyx6Qj0vXihcXHI/XFxuKSsvLGpOMD0vKD86XnxcXHI/XFxuKSAqKEBbXlxcclxcbl0qPykgKlxccj9cXG4gKig/IVteQFxcclxcbl0qXFwvXFwvW15dKikoW15AXFxyXFxuXFxzXVteQFxcclxcbl0rPykgKlxccj9cXG4vZyxLQj0vKD86XnxcXHI/XFxuKSAqQChcXFMrKSAqKFteXFxyXFxuXSopL2csSk4wPS8oXFxyP1xcbnxeKSAqXFwqID8vZyxaQj1bXTtmdW5jdGlvbiBYTjAocDApe2xldCB3eD1wMC5tYXRjaChXQik7cmV0dXJuIHd4P3d4WzBdLnRyaW1MZWZ0KCk6XCJcIn1mdW5jdGlvbiBZTjAocDApe2xldCB3eD1wMC5tYXRjaChXQik7cmV0dXJuIHd4JiZ3eFswXT9wMC5zdWJzdHJpbmcod3hbMF0ubGVuZ3RoKTpwMH1mdW5jdGlvbiBWTjAocDApe3JldHVybiAkQihwMCkucHJhZ21hc31mdW5jdGlvbiAkQihwMCl7bGV0IHd4PWBcbmA7cDA9cDAucmVwbGFjZShETjAsXCJcIikucmVwbGFjZShNTjAsXCJcIikucmVwbGFjZShKTjAsXCIkMVwiKTtsZXQgcnI9XCJcIjtmb3IoO3JyIT09cDA7KXJyPXAwLHAwPXAwLnJlcGxhY2Uoak4wLGAke3d4fSQxICQyJHt3eH1gKTtwMD1wMC5yZXBsYWNlKHpCLFwiXCIpLnRyaW1SaWdodCgpO2xldCBncj1PYmplY3QuY3JlYXRlKG51bGwpLFoxPXAwLnJlcGxhY2UoS0IsXCJcIikucmVwbGFjZSh6QixcIlwiKS50cmltUmlnaHQoKSxpcjtmb3IoO2lyPUtCLmV4ZWMocDApOyl7bGV0IHVyPWlyWzJdLnJlcGxhY2UoVU4wLFwiXCIpO3R5cGVvZiBncltpclsxXV09PVwic3RyaW5nXCJ8fEFycmF5LmlzQXJyYXkoZ3JbaXJbMV1dKT9ncltpclsxXV09WkIuY29uY2F0KGdyW2lyWzFdXSx1cik6Z3JbaXJbMV1dPXVyfXJldHVybntjb21tZW50czpaMSxwcmFnbWFzOmdyfX1mdW5jdGlvbiB6TjAoe2NvbW1lbnRzOnAwPVwiXCIscHJhZ21hczp3eD17fX0pe2xldCBycj1gXG5gLGdyPVwiLyoqXCIsWjE9XCIgKlwiLGlyPVwiICovXCIsdXI9T2JqZWN0LmtleXMod3gpLHkxPXVyLm1hcCgkMT0+QkIoJDEsd3hbJDFdKSkucmVkdWNlKCgkMSxEMyk9PiQxLmNvbmNhdChEMyksW10pLm1hcCgkMT0+YCR7WjF9ICR7JDF9JHtycn1gKS5qb2luKFwiXCIpO2lmKCFwMCl7aWYodXIubGVuZ3RoPT09MClyZXR1cm5cIlwiO2lmKHVyLmxlbmd0aD09PTEmJiFBcnJheS5pc0FycmF5KHd4W3VyWzBdXSkpe2xldCAkMT13eFt1clswXV07cmV0dXJuYCR7Z3J9ICR7QkIodXJbMF0sJDEpWzBdfSR7aXJ9YH19bGV0IGl2PXAwLnNwbGl0KHJyKS5tYXAoJDE9PmAke1oxfSAkeyQxfWApLmpvaW4ocnIpK3JyO3JldHVybiBncitycisocDA/aXY6XCJcIikrKHAwJiZ1ci5sZW5ndGg/WjErcnI6XCJcIikreTEraXJ9ZnVuY3Rpb24gQkIocDAsd3gpe3JldHVybiBaQi5jb25jYXQod3gpLm1hcChycj0+YEAke3AwfSAke3JyfWAudHJpbSgpKX19KTt2YXIgUk09e307SkIoUk0se3BhcnNlcnM6KCk9Pk9NfSk7dmFyIE9NPXt9O0pCKE9NLHtmbG93OigpPT5pQzB9KTt2YXIgaVc9WEIoWUIoKSwxKTtmdW5jdGlvbiBMTjAocDAsd3gpe2xldCBycj1uZXcgU3ludGF4RXJyb3IocDArXCIgKFwiK3d4LmxvYy5zdGFydC5saW5lK1wiOlwiK3d4LmxvYy5zdGFydC5jb2x1bW4rXCIpXCIpO3JldHVybiBPYmplY3QuYXNzaWduKHJyLHd4KX12YXIgVkI9TE4wO3ZhciBNMz1YQihGQigpLDEpO2Z1bmN0aW9uIEtOMChwMCl7aWYoIXAwLnN0YXJ0c1dpdGgoXCIjIVwiKSlyZXR1cm5cIlwiO2xldCB3eD1wMC5pbmRleE9mKGBcbmApO3JldHVybiB3eD09PS0xP3AwOnAwLnNsaWNlKDAsd3gpfXZhciBRQj1LTjA7ZnVuY3Rpb24gQk4wKHAwKXtsZXQgd3g9UUIocDApO3d4JiYocDA9cDAuc2xpY2Uod3gubGVuZ3RoKzEpKTtsZXQgcnI9KDAsTTMuZXh0cmFjdCkocDApLHtwcmFnbWFzOmdyLGNvbW1lbnRzOloxfT0oMCxNMy5wYXJzZVdpdGhDb21tZW50cykocnIpO3JldHVybntzaGViYW5nOnd4LHRleHQ6cDAscHJhZ21hczpncixjb21tZW50czpaMX19ZnVuY3Rpb24gR0IocDApe2xldHtwcmFnbWFzOnd4fT1CTjAocDApO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwod3gsXCJwcmV0dGllclwiKXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHd4LFwiZm9ybWF0XCIpfWZ1bmN0aW9uIFdOMChwMCl7cmV0dXJuIEFycmF5LmlzQXJyYXkocDApJiZwMC5sZW5ndGg+MH12YXIgdDk9V04wO2Z1bmN0aW9uIE50KHAwKXt2YXIgZ3I7bGV0IHd4PXAwLnJhbmdlP3AwLnJhbmdlWzBdOnAwLnN0YXJ0LHJyPSgoZ3I9cDAuZGVjbGFyYXRpb24pPT1udWxsP3ZvaWQgMDpnci5kZWNvcmF0b3JzKT8/cDAuZGVjb3JhdG9ycztyZXR1cm4gdDkocnIpP01hdGgubWluKE50KHJyWzBdKSx3eCk6d3h9ZnVuY3Rpb24gd3MocDApe3JldHVybiBwMC5yYW5nZT9wMC5yYW5nZVsxXTpwMC5lbmR9ZnVuY3Rpb24gWk4wKHAwKXtyZXR1cm4gcDA9dHlwZW9mIHAwPT1cImZ1bmN0aW9uXCI/e3BhcnNlOnAwfTpwMCx7YXN0Rm9ybWF0OlwiZXN0cmVlXCIsaGFzUHJhZ21hOkdCLGxvY1N0YXJ0Ok50LGxvY0VuZDp3cywuLi5wMH19dmFyIHFCPVpOMDtmdW5jdGlvbiAkTjAocDApe3JldHVybiBwMC5jaGFyQXQoMCk9PT1cIiNcIiYmcDAuY2hhckF0KDEpPT09XCIhXCI/XCIvL1wiK3AwLnNsaWNlKDIpOnAwfXZhciBIQj0kTjA7dmFyIEZOMD0ocDAsd3gscnIpPT57aWYoIShwMCYmd3g9PW51bGwpKXJldHVybiBBcnJheS5pc0FycmF5KHd4KXx8dHlwZW9mIHd4PT1cInN0cmluZ1wiP3d4W3JyPDA/d3gubGVuZ3RoK3JyOnJyXTp3eC5hdChycil9LEFNPUZOMDtmdW5jdGlvbiBRTjAocDApe3JldHVybiBwMD1uZXcgU2V0KHAwKSx3eD0+cDAuaGFzKHd4PT1udWxsP3ZvaWQgMDp3eC50eXBlKX12YXIgYkI9UU4wO3ZhciBHTjA9YkIoW1wiQmxvY2tcIixcIkNvbW1lbnRCbG9ja1wiLFwiTXVsdGlMaW5lXCJdKSxQND1HTjA7ZnVuY3Rpb24gcU4wKHAwKXtyZXR1cm4gUDQocDApJiZwMC52YWx1ZVswXT09PVwiKlwiJiYvQCg/OnR5cGV8c2F0aXNmaWVzKVxcYi8udGVzdChwMC52YWx1ZSl9dmFyIHhXPXFOMDtmdW5jdGlvbiBITjAocDApe2xldCB3eD1gKiR7cDAudmFsdWV9KmAuc3BsaXQoYFxuYCk7cmV0dXJuIHd4Lmxlbmd0aD4xJiZ3eC5ldmVyeShycj0+cnIudHJpbVN0YXJ0KClbMF09PT1cIipcIil9dmFyIFBNPUhOMDt2YXIgTjQ9bnVsbDtmdW5jdGlvbiBDNChwMCl7aWYoTjQhPT1udWxsJiZ0eXBlb2YgTjQucHJvcGVydHkpe2xldCB3eD1ONDtyZXR1cm4gTjQ9QzQucHJvdG90eXBlPW51bGwsd3h9cmV0dXJuIE40PUM0LnByb3RvdHlwZT1wMD8/T2JqZWN0LmNyZWF0ZShudWxsKSxuZXcgQzR9dmFyIGJOMD0xMDtmb3IobGV0IHAwPTA7cDA8PWJOMDtwMCsrKUM0KCk7ZnVuY3Rpb24gTk0ocDApe3JldHVybiBDNChwMCl9ZnVuY3Rpb24geEMwKHAwLHd4PVwidHlwZVwiKXtOTShwMCk7ZnVuY3Rpb24gcnIoZ3Ipe2xldCBaMT1nclt3eF0saXI9cDBbWjFdO2lmKCFBcnJheS5pc0FycmF5KGlyKSl0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihgTWlzc2luZyB2aXNpdG9yIGtleXMgZm9yICcke1oxfScuYCkse25vZGU6Z3J9KTtyZXR1cm4gaXJ9cmV0dXJuIHJyfXZhciByVz14QzA7dmFyIGVXPXtBcnJheUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sQXNzaWdubWVudEV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sQmluYXJ5RXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxJbnRlcnByZXRlckRpcmVjdGl2ZTpbXSxEaXJlY3RpdmU6W1widmFsdWVcIl0sRGlyZWN0aXZlTGl0ZXJhbDpbXSxCbG9ja1N0YXRlbWVudDpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLEJyZWFrU3RhdGVtZW50OltcImxhYmVsXCJdLENhbGxFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxDYXRjaENsYXVzZTpbXCJwYXJhbVwiLFwiYm9keVwiXSxDb25kaXRpb25hbEV4cHJlc3Npb246W1widGVzdFwiLFwiY29uc2VxdWVudFwiLFwiYWx0ZXJuYXRlXCJdLENvbnRpbnVlU3RhdGVtZW50OltcImxhYmVsXCJdLERlYnVnZ2VyU3RhdGVtZW50OltdLERvV2hpbGVTdGF0ZW1lbnQ6W1widGVzdFwiLFwiYm9keVwiXSxFbXB0eVN0YXRlbWVudDpbXSxFeHByZXNzaW9uU3RhdGVtZW50OltcImV4cHJlc3Npb25cIl0sRmlsZTpbXCJwcm9ncmFtXCJdLEZvckluU3RhdGVtZW50OltcImxlZnRcIixcInJpZ2h0XCIsXCJib2R5XCJdLEZvclN0YXRlbWVudDpbXCJpbml0XCIsXCJ0ZXN0XCIsXCJ1cGRhdGVcIixcImJvZHlcIl0sRnVuY3Rpb25EZWNsYXJhdGlvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLEZ1bmN0aW9uRXhwcmVzc2lvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJZGVudGlmaWVyOltcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLElmU3RhdGVtZW50OltcInRlc3RcIixcImNvbnNlcXVlbnRcIixcImFsdGVybmF0ZVwiXSxMYWJlbGVkU3RhdGVtZW50OltcImxhYmVsXCIsXCJib2R5XCJdLFN0cmluZ0xpdGVyYWw6W10sTnVtZXJpY0xpdGVyYWw6W10sTnVsbExpdGVyYWw6W10sQm9vbGVhbkxpdGVyYWw6W10sUmVnRXhwTGl0ZXJhbDpbXSxMb2dpY2FsRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sTmV3RXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sUHJvZ3JhbTpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLE9iamVjdEV4cHJlc3Npb246W1wicHJvcGVydGllc1wiXSxPYmplY3RNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcImRlY29yYXRvcnNcIl0sUmVzdEVsZW1lbnQ6W1wiYXJndW1lbnRcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLFJldHVyblN0YXRlbWVudDpbXCJhcmd1bWVudFwiXSxTZXF1ZW5jZUV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sUGFyZW50aGVzaXplZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxTd2l0Y2hDYXNlOltcInRlc3RcIixcImNvbnNlcXVlbnRcIl0sU3dpdGNoU3RhdGVtZW50OltcImRpc2NyaW1pbmFudFwiLFwiY2FzZXNcIl0sVGhpc0V4cHJlc3Npb246W10sVGhyb3dTdGF0ZW1lbnQ6W1wiYXJndW1lbnRcIl0sVHJ5U3RhdGVtZW50OltcImJsb2NrXCIsXCJoYW5kbGVyXCIsXCJmaW5hbGl6ZXJcIl0sVW5hcnlFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLFVwZGF0ZUV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sVmFyaWFibGVEZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvbnNcIl0sVmFyaWFibGVEZWNsYXJhdG9yOltcImlkXCIsXCJpbml0XCJdLFdoaWxlU3RhdGVtZW50OltcInRlc3RcIixcImJvZHlcIl0sV2l0aFN0YXRlbWVudDpbXCJvYmplY3RcIixcImJvZHlcIl0sQXNzaWdubWVudFBhdHRlcm46W1wibGVmdFwiLFwicmlnaHRcIixcImRlY29yYXRvcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLEFycmF5UGF0dGVybjpbXCJlbGVtZW50c1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246W1wicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLENsYXNzQm9keTpbXCJib2R5XCJdLENsYXNzRXhwcmVzc2lvbjpbXCJpZFwiLFwiYm9keVwiLFwic3VwZXJDbGFzc1wiLFwibWl4aW5zXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwiaW1wbGVtZW50c1wiLFwiZGVjb3JhdG9yc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCJdLENsYXNzRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIixcInN1cGVyQ2xhc3NcIixcIm1peGluc1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVyVHlwZVBhcmFtZXRlcnNcIixcImltcGxlbWVudHNcIixcImRlY29yYXRvcnNcIixcInN1cGVyVHlwZUFyZ3VtZW50c1wiXSxFeHBvcnRBbGxEZWNsYXJhdGlvbjpbXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIixcImV4cG9ydGVkXCJdLEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiXSxFeHBvcnROYW1lZERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sRXhwb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJleHBvcnRlZFwiXSxGb3JPZlN0YXRlbWVudDpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm9keVwiXSxJbXBvcnREZWNsYXJhdGlvbjpbXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sSW1wb3J0RGVmYXVsdFNwZWNpZmllcjpbXCJsb2NhbFwiXSxJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6W1wibG9jYWxcIl0sSW1wb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJpbXBvcnRlZFwiXSxNZXRhUHJvcGVydHk6W1wibWV0YVwiLFwicHJvcGVydHlcIl0sQ2xhc3NNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFBhdHRlcm46W1wicHJvcGVydGllc1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sU3ByZWFkRWxlbWVudDpbXCJhcmd1bWVudFwiXSxTdXBlcjpbXSxUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246W1widGFnXCIsXCJxdWFzaVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVGVtcGxhdGVFbGVtZW50OltdLFRlbXBsYXRlTGl0ZXJhbDpbXCJxdWFzaXNcIixcImV4cHJlc3Npb25zXCJdLFlpZWxkRXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxBd2FpdEV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sSW1wb3J0OltdLEJpZ0ludExpdGVyYWw6W10sRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyOltcImV4cG9ydGVkXCJdLE9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLE9wdGlvbmFsQ2FsbEV4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLENsYXNzUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIixcInZhcmlhbmNlXCJdLENsYXNzQWNjZXNzb3JQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxDbGFzc1ByaXZhdGVQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJkZWNvcmF0b3JzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFyaWFuY2VcIl0sQ2xhc3NQcml2YXRlTWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxQcml2YXRlTmFtZTpbXCJpZFwiXSxTdGF0aWNCbG9jazpbXCJib2R5XCJdLEFueVR5cGVBbm5vdGF0aW9uOltdLEFycmF5VHlwZUFubm90YXRpb246W1wiZWxlbWVudFR5cGVcIl0sQm9vbGVhblR5cGVBbm5vdGF0aW9uOltdLEJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVsbExpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxDbGFzc0ltcGxlbWVudHM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLERlY2xhcmVDbGFzczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcIm1peGluc1wiLFwiaW1wbGVtZW50c1wiLFwiYm9keVwiXSxEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInByZWRpY2F0ZVwiXSxEZWNsYXJlSW50ZXJmYWNlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxEZWNsYXJlTW9kdWxlOltcImlkXCIsXCJib2R5XCJdLERlY2xhcmVNb2R1bGVFeHBvcnRzOltcInR5cGVBbm5vdGF0aW9uXCJdLERlY2xhcmVUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxEZWNsYXJlT3BhcXVlVHlwZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVydHlwZVwiXSxEZWNsYXJlVmFyaWFibGU6W1wiaWRcIl0sRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIl0sRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uOltcInNvdXJjZVwiXSxEZWNsYXJlZFByZWRpY2F0ZTpbXCJ2YWx1ZVwiXSxFeGlzdHNUeXBlQW5ub3RhdGlvbjpbXSxGdW5jdGlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJlc3RcIixcInJldHVyblR5cGVcIixcInRoaXNcIl0sRnVuY3Rpb25UeXBlUGFyYW06W1wibmFtZVwiLFwidHlwZUFubm90YXRpb25cIl0sR2VuZXJpY1R5cGVBbm5vdGF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbmZlcnJlZFByZWRpY2F0ZTpbXSxJbnRlcmZhY2VFeHRlbmRzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sSW50ZXJmYWNlVHlwZUFubm90YXRpb246W1wiZXh0ZW5kc1wiLFwiYm9keVwiXSxJbnRlcnNlY3Rpb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxNaXhlZFR5cGVBbm5vdGF0aW9uOltdLEVtcHR5VHlwZUFubm90YXRpb246W10sTnVsbGFibGVUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVtYmVyVHlwZUFubm90YXRpb246W10sT2JqZWN0VHlwZUFubm90YXRpb246W1wicHJvcGVydGllc1wiLFwiaW5kZXhlcnNcIixcImNhbGxQcm9wZXJ0aWVzXCIsXCJpbnRlcm5hbFNsb3RzXCJdLE9iamVjdFR5cGVJbnRlcm5hbFNsb3Q6W1wiaWRcIixcInZhbHVlXCIsXCJvcHRpb25hbFwiLFwic3RhdGljXCIsXCJtZXRob2RcIl0sT2JqZWN0VHlwZUNhbGxQcm9wZXJ0eTpbXCJ2YWx1ZVwiXSxPYmplY3RUeXBlSW5kZXhlcjpbXCJpZFwiLFwia2V5XCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sT2JqZWN0VHlwZVByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLE9iamVjdFR5cGVTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxPcGFxdWVUeXBlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJ0eXBlXCIsXCJpbXBsdHlwZVwiXSxRdWFsaWZpZWRUeXBlSWRlbnRpZmllcjpbXCJpZFwiLFwicXVhbGlmaWNhdGlvblwiXSxTdHJpbmdMaXRlcmFsVHlwZUFubm90YXRpb246W10sU3RyaW5nVHlwZUFubm90YXRpb246W10sU3ltYm9sVHlwZUFubm90YXRpb246W10sVGhpc1R5cGVBbm5vdGF0aW9uOltdLFR1cGxlVHlwZUFubm90YXRpb246W1widHlwZXNcIixcImVsZW1lbnRUeXBlc1wiXSxUeXBlb2ZUeXBlQW5ub3RhdGlvbjpbXCJhcmd1bWVudFwiXSxUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlQ2FzdEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVHlwZVBhcmFtZXRlcjpbXCJib3VuZFwiLFwiZGVmYXVsdFwiLFwidmFyaWFuY2VcIl0sVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOltcInBhcmFtc1wiXSxUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVW5pb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxWYXJpYW5jZTpbXSxWb2lkVHlwZUFubm90YXRpb246W10sRW51bURlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCJdLEVudW1Cb29sZWFuQm9keTpbXCJtZW1iZXJzXCJdLEVudW1OdW1iZXJCb2R5OltcIm1lbWJlcnNcIl0sRW51bVN0cmluZ0JvZHk6W1wibWVtYmVyc1wiXSxFbnVtU3ltYm9sQm9keTpbXCJtZW1iZXJzXCJdLEVudW1Cb29sZWFuTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1OdW1iZXJNZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bVN0cmluZ01lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtRGVmYXVsdGVkTWVtYmVyOltcImlkXCJdLEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxKU1hBdHRyaWJ1dGU6W1wibmFtZVwiLFwidmFsdWVcIl0sSlNYQ2xvc2luZ0VsZW1lbnQ6W1wibmFtZVwiXSxKU1hFbGVtZW50OltcIm9wZW5pbmdFbGVtZW50XCIsXCJjaGlsZHJlblwiLFwiY2xvc2luZ0VsZW1lbnRcIl0sSlNYRW1wdHlFeHByZXNzaW9uOltdLEpTWEV4cHJlc3Npb25Db250YWluZXI6W1wiZXhwcmVzc2lvblwiXSxKU1hTcHJlYWRDaGlsZDpbXCJleHByZXNzaW9uXCJdLEpTWElkZW50aWZpZXI6W10sSlNYTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLEpTWE5hbWVzcGFjZWROYW1lOltcIm5hbWVzcGFjZVwiLFwibmFtZVwiXSxKU1hPcGVuaW5nRWxlbWVudDpbXCJuYW1lXCIsXCJhdHRyaWJ1dGVzXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxKU1hTcHJlYWRBdHRyaWJ1dGU6W1wiYXJndW1lbnRcIl0sSlNYVGV4dDpbXSxKU1hGcmFnbWVudDpbXCJvcGVuaW5nRnJhZ21lbnRcIixcImNoaWxkcmVuXCIsXCJjbG9zaW5nRnJhZ21lbnRcIl0sSlNYT3BlbmluZ0ZyYWdtZW50OltdLEpTWENsb3NpbmdGcmFnbWVudDpbXSxOb29wOltdLFBsYWNlaG9sZGVyOltdLFY4SW50cmluc2ljSWRlbnRpZmllcjpbXSxBcmd1bWVudFBsYWNlaG9sZGVyOltdLEJpbmRFeHByZXNzaW9uOltcIm9iamVjdFwiLFwiY2FsbGVlXCJdLEltcG9ydEF0dHJpYnV0ZTpbXCJrZXlcIixcInZhbHVlXCJdLERlY29yYXRvcjpbXCJleHByZXNzaW9uXCJdLERvRXhwcmVzc2lvbjpbXCJib2R5XCJdLEV4cG9ydERlZmF1bHRTcGVjaWZpZXI6W1wiZXhwb3J0ZWRcIl0sUmVjb3JkRXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLFR1cGxlRXhwcmVzc2lvbjpbXCJlbGVtZW50c1wiXSxEZWNpbWFsTGl0ZXJhbDpbXSxNb2R1bGVFeHByZXNzaW9uOltcImJvZHlcIl0sVG9waWNSZWZlcmVuY2U6W10sUGlwZWxpbmVUb3BpY0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxQaXBlbGluZUJhcmVGdW5jdGlvbjpbXCJjYWxsZWVcIl0sUGlwZWxpbmVQcmltYXJ5VG9waWNSZWZlcmVuY2U6W10sVFNQYXJhbWV0ZXJQcm9wZXJ0eTpbXCJwYXJhbWV0ZXJcIixcImRlY29yYXRvcnNcIl0sVFNEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIixcImJvZHlcIl0sVFNEZWNsYXJlTWV0aG9kOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1F1YWxpZmllZE5hbWU6W1wibGVmdFwiLFwicmlnaHRcIl0sVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1Byb3BlcnR5U2lnbmF0dXJlOltcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNNZXRob2RTaWduYXR1cmU6W1wia2V5XCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0luZGV4U2lnbmF0dXJlOltcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQW55S2V5d29yZDpbXSxUU0Jvb2xlYW5LZXl3b3JkOltdLFRTQmlnSW50S2V5d29yZDpbXSxUU0ludHJpbnNpY0tleXdvcmQ6W10sVFNOZXZlcktleXdvcmQ6W10sVFNOdWxsS2V5d29yZDpbXSxUU051bWJlcktleXdvcmQ6W10sVFNPYmplY3RLZXl3b3JkOltdLFRTU3RyaW5nS2V5d29yZDpbXSxUU1N5bWJvbEtleXdvcmQ6W10sVFNVbmRlZmluZWRLZXl3b3JkOltdLFRTVW5rbm93bktleXdvcmQ6W10sVFNWb2lkS2V5d29yZDpbXSxUU1RoaXNUeXBlOltdLFRTRnVuY3Rpb25UeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTQ29uc3RydWN0b3JUeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTVHlwZVJlZmVyZW5jZTpbXCJ0eXBlTmFtZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNUeXBlUHJlZGljYXRlOltcInBhcmFtZXRlck5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZVF1ZXJ5OltcImV4cHJOYW1lXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU1R5cGVMaXRlcmFsOltcIm1lbWJlcnNcIl0sVFNBcnJheVR5cGU6W1wiZWxlbWVudFR5cGVcIl0sVFNUdXBsZVR5cGU6W1wiZWxlbWVudFR5cGVzXCJdLFRTT3B0aW9uYWxUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTUmVzdFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNOYW1lZFR1cGxlTWVtYmVyOltcImxhYmVsXCIsXCJlbGVtZW50VHlwZVwiXSxUU1VuaW9uVHlwZTpbXCJ0eXBlc1wiXSxUU0ludGVyc2VjdGlvblR5cGU6W1widHlwZXNcIl0sVFNDb25kaXRpb25hbFR5cGU6W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiLFwidHJ1ZVR5cGVcIixcImZhbHNlVHlwZVwiXSxUU0luZmVyVHlwZTpbXCJ0eXBlUGFyYW1ldGVyXCJdLFRTUGFyZW50aGVzaXplZFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlT3BlcmF0b3I6W1widHlwZUFubm90YXRpb25cIl0sVFNJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sVFNNYXBwZWRUeXBlOltcInR5cGVQYXJhbWV0ZXJcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJuYW1lVHlwZVwiXSxUU0xpdGVyYWxUeXBlOltcImxpdGVyYWxcIl0sVFNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sVFNJbnRlcmZhY2VCb2R5OltcImJvZHlcIl0sVFNUeXBlQWxpYXNEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNBc0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVFNTYXRpc2ZpZXNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZUFzc2VydGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiLFwiZXhwcmVzc2lvblwiXSxUU0VudW1EZWNsYXJhdGlvbjpbXCJpZFwiLFwibWVtYmVyc1wiXSxUU0VudW1NZW1iZXI6W1wiaWRcIixcImluaXRpYWxpemVyXCJdLFRTTW9kdWxlRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIl0sVFNNb2R1bGVCbG9jazpbXCJib2R5XCJdLFRTSW1wb3J0VHlwZTpbXCJhcmd1bWVudFwiLFwicXVhbGlmaWVyXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOltcImlkXCIsXCJtb2R1bGVSZWZlcmVuY2VcIl0sVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZTpbXCJleHByZXNzaW9uXCJdLFRTTm9uTnVsbEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxUU0V4cG9ydEFzc2lnbm1lbnQ6W1wiZXhwcmVzc2lvblwiXSxUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uOltcImlkXCJdLFRTVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246W1wicGFyYW1zXCJdLFRTVHlwZVBhcmFtZXRlcjpbXCJjb25zdHJhaW50XCIsXCJkZWZhdWx0XCIsXCJuYW1lXCJdLENoYWluRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLEV4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxFeHBlcmltZW50YWxTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxJbXBvcnRFeHByZXNzaW9uOltcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiXSxMaXRlcmFsOltdLE1ldGhvZERlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ2YWx1ZVwiXSxQcml2YXRlSWRlbnRpZmllcjpbXSxQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCJdLFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sQWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiXSxUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQWJzdHJhY3RLZXl3b3JkOltdLFRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uOltcImtleVwiLFwidmFsdWVcIl0sVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQXN5bmNLZXl3b3JkOltdLFRTQ2xhc3NJbXBsZW1lbnRzOltcImV4cHJlc3Npb25cIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTRGVjbGFyZUtleXdvcmQ6W10sVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNFeHBvcnRLZXl3b3JkOltdLFRTSW50ZXJmYWNlSGVyaXRhZ2U6W1wiZXhwcmVzc2lvblwiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNQcml2YXRlS2V5d29yZDpbXSxUU1Byb3RlY3RlZEtleXdvcmQ6W10sVFNQdWJsaWNLZXl3b3JkOltdLFRTUmVhZG9ubHlLZXl3b3JkOltdLFRTU3RhdGljS2V5d29yZDpbXSxUU1RlbXBsYXRlTGl0ZXJhbFR5cGU6W1wicXVhc2lzXCIsXCJ0eXBlc1wiXSxCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb246W10sQmlnSW50VHlwZUFubm90YXRpb246W10sQ29uZGl0aW9uYWxUeXBlQW5ub3RhdGlvbjpbXCJjaGVja1R5cGVcIixcImV4dGVuZHNUeXBlXCIsXCJ0cnVlVHlwZVwiLFwiZmFsc2VUeXBlXCJdLERlY2xhcmVFbnVtOltcImlkXCIsXCJib2R5XCJdLEluZmVyVHlwZUFubm90YXRpb246W1widHlwZVBhcmFtZXRlclwiXSxLZXlvZlR5cGVBbm5vdGF0aW9uOltcImFyZ3VtZW50XCJdLE9iamVjdFR5cGVNYXBwZWRUeXBlUHJvcGVydHk6W1wia2V5VHBhcmFtXCIsXCJwcm9wVHlwZVwiLFwic291cmNlVHlwZVwiLFwidmFyaWFuY2VcIl0sUXVhbGlmaWVkVHlwZW9mSWRlbnRpZmllcjpbXCJxdWFsaWZpY2F0aW9uXCIsXCJpZFwiXSxUdXBsZVR5cGVMYWJlbGVkRWxlbWVudDpbXCJsYWJlbFwiLFwiZWxlbWVudFR5cGVcIixcInZhcmlhbmNlXCJdLFR1cGxlVHlwZVNwcmVhZEVsZW1lbnQ6W1wibGFiZWxcIixcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVQcmVkaWNhdGU6W1wicGFyYW1ldGVyTmFtZVwiLFwidHlwZUFubm90YXRpb25cIixcImFzc2VydHNcIl0sTkdSb290OltcIm5vZGVcIl0sTkdQaXBlRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYXJndW1lbnRzXCJdLE5HQ2hhaW5lZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sTkdFbXB0eUV4cHJlc3Npb246W10sTkdNaWNyb3N5bnRheDpbXCJib2R5XCJdLE5HTWljcm9zeW50YXhLZXk6W10sTkdNaWNyb3N5bnRheEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwiYWxpYXNcIl0sTkdNaWNyb3N5bnRheEtleWVkRXhwcmVzc2lvbjpbXCJrZXlcIixcImV4cHJlc3Npb25cIl0sTkdNaWNyb3N5bnRheExldDpbXCJrZXlcIixcInZhbHVlXCJdLE5HTWljcm9zeW50YXhBczpbXCJrZXlcIixcImFsaWFzXCJdLEpzRXhwcmVzc2lvblJvb3Q6W1wibm9kZVwiXSxKc29uUm9vdDpbXCJub2RlXCJdLFRTSlNEb2NBbGxUeXBlOltdLFRTSlNEb2NVbmtub3duVHlwZTpbXSxUU0pTRG9jTnVsbGFibGVUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTSlNEb2NOb25OdWxsYWJsZVR5cGU6W1widHlwZUFubm90YXRpb25cIl0sTmV2ZXJUeXBlQW5ub3RhdGlvbjpbXSxVbmRlZmluZWRUeXBlQW5ub3RhdGlvbjpbXSxVbmtub3duVHlwZUFubm90YXRpb246W119O3ZhciByQzA9clcoZVcpLHRXPXJDMDtmdW5jdGlvbiBDTShwMCx3eCl7aWYoIShwMCE9PW51bGwmJnR5cGVvZiBwMD09XCJvYmplY3RcIikpcmV0dXJuIHAwO2lmKEFycmF5LmlzQXJyYXkocDApKXtmb3IobGV0IGdyPTA7Z3I8cDAubGVuZ3RoO2dyKyspcDBbZ3JdPUNNKHAwW2dyXSx3eCk7cmV0dXJuIHAwfWxldCBycj10VyhwMCk7Zm9yKGxldCBncj0wO2dyPHJyLmxlbmd0aDtncisrKXAwW3JyW2dyXV09Q00ocDBbcnJbZ3JdXSx3eCk7cmV0dXJuIHd4KHAwKXx8cDB9dmFyIG45PUNNO2Z1bmN0aW9uIGVDMChwMCx3eCl7bGV0e3BhcnNlcjpycix0ZXh0OmdyfT13eDtpZihwMC50eXBlPT09XCJGaWxlXCImJnAwLnByb2dyYW0uaW50ZXJwcmV0ZXIpe2xldHtwcm9ncmFtOntpbnRlcnByZXRlcjppcn0sY29tbWVudHM6dXJ9PXAwO2RlbGV0ZSBwMC5wcm9ncmFtLmludGVycHJldGVyLHVyLnVuc2hpZnQoaXIpfWlmKHJyPT09XCJiYWJlbFwiKXtsZXQgaXI9bmV3IFNldDtwMD1uOShwMCx1cj0+e3ZhciB5MTsoeTE9dXIubGVhZGluZ0NvbW1lbnRzKSE9bnVsbCYmeTEuc29tZSh4VykmJmlyLmFkZChOdCh1cikpfSkscDA9bjkocDAsdXI9PntpZih1ci50eXBlPT09XCJQYXJlbnRoZXNpemVkRXhwcmVzc2lvblwiKXtsZXR7ZXhwcmVzc2lvbjp5MX09dXI7aWYoeTEudHlwZT09PVwiVHlwZUNhc3RFeHByZXNzaW9uXCIpcmV0dXJuIHkxLnJhbmdlPXVyLnJhbmdlLHkxO2xldCBpdj1OdCh1cik7aWYoIWlyLmhhcyhpdikpcmV0dXJuIHkxLmV4dHJhPXsuLi55MS5leHRyYSxwYXJlbnRoZXNpemVkOiEwfSx5MX19KX1pZihwMD1uOShwMCxpcj0+e3N3aXRjaChpci50eXBlKXtjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmlmKG5XKGlyKSlyZXR1cm4gSU0oaXIpO2JyZWFrO2Nhc2VcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjp7bGV0IHVyPUFNKCExLGlyLmRlY2xhcmF0aW9ucywtMSk7dXIhPW51bGwmJnVyLmluaXQmJloxKGlyLHVyKTticmVha31jYXNlXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCI6cmV0dXJuIGlyLnR5cGVBbm5vdGF0aW9uO2Nhc2VcIlRTVHlwZVBhcmFtZXRlclwiOmlmKHR5cGVvZiBpci5uYW1lPT1cInN0cmluZ1wiKXtsZXQgdXI9TnQoaXIpO2lyLm5hbWU9e3R5cGU6XCJJZGVudGlmaWVyXCIsbmFtZTppci5uYW1lLHJhbmdlOlt1cix1citpci5uYW1lLmxlbmd0aF19fWJyZWFrO2Nhc2VcIlRvcGljUmVmZXJlbmNlXCI6cDAuZXh0cmE9ey4uLnAwLmV4dHJhLF9faXNVc2luZ0hhY2tQaXBlbGluZTohMH07YnJlYWs7Y2FzZVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIjp7bGV0e2V4cG9ydGVkOnVyfT1pcjtpZihycj09PVwibWVyaXlhaFwiJiYodXI9PW51bGw/dm9pZCAwOnVyLnR5cGUpPT09XCJJZGVudGlmaWVyXCIpe2xldCB5MT1nci5zbGljZShOdCh1ciksd3ModXIpKTsoeTEuc3RhcnRzV2l0aCgnXCInKXx8eTEuc3RhcnRzV2l0aChcIidcIikpJiYoaXIuZXhwb3J0ZWQ9ey4uLmlyLmV4cG9ydGVkLHR5cGU6XCJMaXRlcmFsXCIsdmFsdWU6aXIuZXhwb3J0ZWQubmFtZSxyYXc6eTF9KX1icmVha31jYXNlXCJUU1VuaW9uVHlwZVwiOmNhc2VcIlRTSW50ZXJzZWN0aW9uVHlwZVwiOmlmKGlyLnR5cGVzLmxlbmd0aD09PTEpcmV0dXJuIGlyLnR5cGVzWzBdO2JyZWFrfX0pLHQ5KHAwLmNvbW1lbnRzKSl7bGV0IGlyPUFNKCExLHAwLmNvbW1lbnRzLC0xKTtmb3IobGV0IHVyPXAwLmNvbW1lbnRzLmxlbmd0aC0yO3VyPj0wO3VyLS0pe2xldCB5MT1wMC5jb21tZW50c1t1cl07d3MoeTEpPT09TnQoaXIpJiZQNCh5MSkmJlA0KGlyKSYmUE0oeTEpJiZQTShpcikmJihwMC5jb21tZW50cy5zcGxpY2UodXIrMSwxKSx5MS52YWx1ZSs9XCIqLy8qXCIraXIudmFsdWUseTEucmFuZ2U9W050KHkxKSx3cyhpcildKSxpcj15MX19cmV0dXJuIHAwLnR5cGU9PT1cIlByb2dyYW1cIiYmKHAwLnJhbmdlPVswLGdyLmxlbmd0aF0pLHAwO2Z1bmN0aW9uIFoxKGlyLHVyKXtnclt3cyh1cildIT09XCI7XCImJihpci5yYW5nZT1bTnQoaXIpLHdzKHVyKV0pfX1mdW5jdGlvbiBuVyhwMCl7cmV0dXJuIHAwLnR5cGU9PT1cIkxvZ2ljYWxFeHByZXNzaW9uXCImJnAwLnJpZ2h0LnR5cGU9PT1cIkxvZ2ljYWxFeHByZXNzaW9uXCImJnAwLm9wZXJhdG9yPT09cDAucmlnaHQub3BlcmF0b3J9ZnVuY3Rpb24gSU0ocDApe3JldHVybiBuVyhwMCk/SU0oe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOnAwLm9wZXJhdG9yLGxlZnQ6SU0oe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOnAwLm9wZXJhdG9yLGxlZnQ6cDAubGVmdCxyaWdodDpwMC5yaWdodC5sZWZ0LHJhbmdlOltOdChwMC5sZWZ0KSx3cyhwMC5yaWdodC5sZWZ0KV19KSxyaWdodDpwMC5yaWdodC5yaWdodCxyYW5nZTpbTnQocDApLHdzKHAwKV19KTpwMH12YXIgdVc9ZUMwO3ZhciB0QzA9e2NvbW1lbnRzOiExLGVudW1zOiEwLGVzcHJvcG9zYWxfZGVjb3JhdG9yczohMCxlc3Byb3Bvc2FsX2V4cG9ydF9zdGFyX2FzOiEwLHRva2VuczohMH07ZnVuY3Rpb24gbkMwKHAwKXtsZXR7bWVzc2FnZTp3eCxsb2M6e3N0YXJ0OnJyLGVuZDpncn19PXAwO3JldHVybiBWQih3eCx7bG9jOntzdGFydDp7bGluZTpyci5saW5lLGNvbHVtbjpyci5jb2x1bW4rMX0sZW5kOntsaW5lOmdyLmxpbmUsY29sdW1uOmdyLmNvbHVtbisxfX0sY2F1c2U6cDB9KX1mdW5jdGlvbiB1QzAocDApe2xldCB3eD1pVy5kZWZhdWx0LnBhcnNlKEhCKHAwKSx0QzApLFtycl09d3guZXJyb3JzO2lmKHJyKXRocm93IG5DMChycik7cmV0dXJuIHVXKHd4LHt0ZXh0OnAwfSl9dmFyIGlDMD1xQih1QzApO3ZhciBpSTA9Uk07ZXhwb3J0e2lJMCBhcyBkZWZhdWx0LE9NIGFzIHBhcnNlcnN9O1xuIiwgInZhciBKbj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHp0PSh0LGUpPT57Zm9yKHZhciByIGluIGUpSm4odCxyLHtnZXQ6ZVtyXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBCcj0odCxlLHIpPT57aWYoIWUuaGFzKHQpKXRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBcIityKX07dmFyICQ9KHQsZSxyKT0+KEJyKHQsZSxcInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkXCIpLHI/ci5jYWxsKHQpOmUuZ2V0KHQpKSxScj0odCxlLHIpPT57aWYoZS5oYXModCkpdGhyb3cgVHlwZUVycm9yKFwiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZVwiKTtlIGluc3RhbmNlb2YgV2Vha1NldD9lLmFkZCh0KTplLnNldCh0LHIpfSxxcj0odCxlLHIsbik9PihCcih0LGUsXCJ3cml0ZSB0byBwcml2YXRlIGZpZWxkXCIpLG4/bi5jYWxsKHQscik6ZS5zZXQodCxyKSxyKTt2YXIgX3I9e307enQoX3Ise2xhbmd1YWdlczooKT0+WW4scGFyc2VyczooKT0+QXIscHJpbnRlcnM6KCk9PiRzfSk7dmFyIFhuPSh0LGUscixuKT0+e2lmKCEodCYmZT09bnVsbCkpcmV0dXJuIGUucmVwbGFjZUFsbD9lLnJlcGxhY2VBbGwocixuKTpyLmdsb2JhbD9lLnJlcGxhY2UocixuKTplLnNwbGl0KHIpLmpvaW4obil9LFd0PVhuO3ZhciB6ZT1cInN0cmluZ1wiLFdlPVwiYXJyYXlcIixLZT1cImN1cnNvclwiLERlPVwiaW5kZW50XCIsT2U9XCJhbGlnblwiLGplPVwidHJpbVwiLEllPVwiZ3JvdXBcIixCZT1cImZpbGxcIixSZT1cImlmLWJyZWFrXCIsUWU9XCJpbmRlbnQtaWYtYnJlYWtcIixKZT1cImxpbmUtc3VmZml4XCIsWGU9XCJsaW5lLXN1ZmZpeC1ib3VuZGFyeVwiLFo9XCJsaW5lXCIsJGU9XCJsYWJlbFwiLHFlPVwiYnJlYWstcGFyZW50XCIscHQ9bmV3IFNldChbS2UsRGUsT2UsamUsSWUsQmUsUmUsUWUsSmUsWGUsWiwkZSxxZV0pO2Z1bmN0aW9uICRuKHQpe2lmKHR5cGVvZiB0PT1cInN0cmluZ1wiKXJldHVybiB6ZTtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBXZTtpZighdClyZXR1cm47bGV0e3R5cGU6ZX09dDtpZihwdC5oYXMoZSkpcmV0dXJuIGV9dmFyIFplPSRuO3ZhciBabj10PT5uZXcgSW50bC5MaXN0Rm9ybWF0KFwiZW4tVVNcIix7dHlwZTpcImRpc2p1bmN0aW9uXCJ9KS5mb3JtYXQodCk7ZnVuY3Rpb24gZWkodCl7bGV0IGU9dD09PW51bGw/XCJudWxsXCI6dHlwZW9mIHQ7aWYoZSE9PVwic3RyaW5nXCImJmUhPT1cIm9iamVjdFwiKXJldHVybmBVbmV4cGVjdGVkIGRvYyAnJHtlfScsIFxuRXhwZWN0ZWQgaXQgdG8gYmUgJ3N0cmluZycgb3IgJ29iamVjdCcuYDtpZihaZSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJkb2MgaXMgdmFsaWQuXCIpO2xldCByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KTtpZihyIT09XCJbb2JqZWN0IE9iamVjdF1cIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7cn0nLmA7bGV0IG49Wm4oWy4uLnB0XS5tYXAoaT0+YCcke2l9J2ApKTtyZXR1cm5gVW5leHBlY3RlZCBkb2MudHlwZSAnJHt0LnR5cGV9Jy5cbkV4cGVjdGVkIGl0IHRvIGJlICR7bn0uYH12YXIgS3Q9Y2xhc3MgZXh0ZW5kcyBFcnJvcntuYW1lPVwiSW52YWxpZERvY0Vycm9yXCI7Y29uc3RydWN0b3IoZSl7c3VwZXIoZWkoZSkpLHRoaXMuZG9jPWV9fSxqdD1LdDt2YXIgVnI9KCk9Pnt9LFRlPVZyLGZ0PVZyO2Z1bmN0aW9uIE8odCl7cmV0dXJuIFRlKHQpLHt0eXBlOkRlLGNvbnRlbnRzOnR9fWZ1bmN0aW9uIHRpKHQsZSl7cmV0dXJuIFRlKGUpLHt0eXBlOk9lLGNvbnRlbnRzOmUsbjp0fX1mdW5jdGlvbiBJKHQsZT17fSl7cmV0dXJuIFRlKHQpLGZ0KGUuZXhwYW5kZWRTdGF0ZXMsITApLHt0eXBlOkllLGlkOmUuaWQsY29udGVudHM6dCxicmVhazohIWUuc2hvdWxkQnJlYWssZXhwYW5kZWRTdGF0ZXM6ZS5leHBhbmRlZFN0YXRlc319ZnVuY3Rpb24gUXQodCl7cmV0dXJuIHRpKC0xLHQpfWZ1bmN0aW9uIEp0KHQpe3JldHVybiBmdCh0KSx7dHlwZTpCZSxwYXJ0czp0fX1mdW5jdGlvbiBYdCh0LGU9XCJcIixyPXt9KXtyZXR1cm4gVGUodCksZSE9PVwiXCImJlRlKGUpLHt0eXBlOlJlLGJyZWFrQ29udGVudHM6dCxmbGF0Q29udGVudHM6ZSxncm91cElkOnIuZ3JvdXBJZH19dmFyIEhyPXt0eXBlOnFlfTt2YXIgcmk9e3R5cGU6WixoYXJkOiEwfSxuaT17dHlwZTpaLGhhcmQ6ITAsbGl0ZXJhbDohMH0sXz17dHlwZTpafSxNPXt0eXBlOlosc29mdDohMH0sdmU9W3JpLEhyXSxVcj1bbmksSHJdO2Z1bmN0aW9uIHdlKHQsZSl7VGUodCksZnQoZSk7bGV0IHI9W107Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspbiE9PTAmJnIucHVzaCh0KSxyLnB1c2goZVtuXSk7cmV0dXJuIHJ9dmFyIGlpPSh0LGUscik9PntpZighKHQmJmU9PW51bGwpKXJldHVybiBBcnJheS5pc0FycmF5KGUpfHx0eXBlb2YgZT09XCJzdHJpbmdcIj9lW3I8MD9lLmxlbmd0aCtyOnJdOmUuYXQocil9LGhlPWlpO2Z1bmN0aW9uIHNpKHQsZSl7aWYodHlwZW9mIHQ9PVwic3RyaW5nXCIpcmV0dXJuIGUodCk7bGV0IHI9bmV3IE1hcDtyZXR1cm4gbih0KTtmdW5jdGlvbiBuKHMpe2lmKHIuaGFzKHMpKXJldHVybiByLmdldChzKTtsZXQgYT1pKHMpO3JldHVybiByLnNldChzLGEpLGF9ZnVuY3Rpb24gaShzKXtzd2l0Y2goWmUocykpe2Nhc2UgV2U6cmV0dXJuIGUocy5tYXAobikpO2Nhc2UgQmU6cmV0dXJuIGUoey4uLnMscGFydHM6cy5wYXJ0cy5tYXAobil9KTtjYXNlIFJlOnJldHVybiBlKHsuLi5zLGJyZWFrQ29udGVudHM6bihzLmJyZWFrQ29udGVudHMpLGZsYXRDb250ZW50czpuKHMuZmxhdENvbnRlbnRzKX0pO2Nhc2UgSWU6e2xldHtleHBhbmRlZFN0YXRlczphLGNvbnRlbnRzOmx9PXM7cmV0dXJuIGE/KGE9YS5tYXAobiksbD1hWzBdKTpsPW4obCksZSh7Li4ucyxjb250ZW50czpsLGV4cGFuZGVkU3RhdGVzOmF9KX1jYXNlIE9lOmNhc2UgRGU6Y2FzZSBRZTpjYXNlICRlOmNhc2UgSmU6cmV0dXJuIGUoey4uLnMsY29udGVudHM6bihzLmNvbnRlbnRzKX0pO2Nhc2UgemU6Y2FzZSBLZTpjYXNlIGplOmNhc2UgWGU6Y2FzZSBaOmNhc2UgcWU6cmV0dXJuIGUocyk7ZGVmYXVsdDp0aHJvdyBuZXcganQocyl9fX1mdW5jdGlvbiBGcih0LGU9VXIpe3JldHVybiBzaSh0LHI9PnR5cGVvZiByPT1cInN0cmluZ1wiP3dlKGUsci5zcGxpdChgXG5gKSk6cil9dmFyIGR0PVwiJ1wiLE1yPSdcIic7ZnVuY3Rpb24gYWkodCxlKXtsZXQgcj1lPT09ITB8fGU9PT1kdD9kdDpNcixuPXI9PT1kdD9NcjpkdCxpPTAscz0wO2ZvcihsZXQgYSBvZiB0KWE9PT1yP2krKzphPT09biYmcysrO3JldHVybiBpPnM/bjpyfXZhciBtdD1haTtmdW5jdGlvbiBvaSh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg+MH12YXIgZXQ9b2k7dmFyICR0PWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIlVuZXhwZWN0ZWROb2RlRXJyb3JcIjtjb25zdHJ1Y3RvcihlLHIsbj1cInR5cGVcIil7c3VwZXIoYFVuZXhwZWN0ZWQgJHtyfSBub2RlICR7bn06ICR7SlNPTi5zdHJpbmdpZnkoZVtuXSl9LmApLHRoaXMubm9kZT1lfX0sR3I9JHQ7ZnVuY3Rpb24gWnQodCl7aWYodHlwZW9mIHQhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO3JldHVybiB0LnJlcGxhY2UoL1t8XFxcXHt9KClbXFxdXiQrKj8uXS9nLFwiXFxcXCQmXCIpLnJlcGxhY2UoLy0vZyxcIlxcXFx4MmRcIil9dmFyIFUsZXI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7UnIodGhpcyxVLHZvaWQgMCk7cXIodGhpcyxVLG5ldyBTZXQoZSkpfWdldExlYWRpbmdXaGl0ZXNwYWNlQ291bnQoZSl7bGV0IHI9JCh0aGlzLFUpLG49MDtmb3IobGV0IGk9MDtpPGUubGVuZ3RoJiZyLmhhcyhlLmNoYXJBdChpKSk7aSsrKW4rKztyZXR1cm4gbn1nZXRUcmFpbGluZ1doaXRlc3BhY2VDb3VudChlKXtsZXQgcj0kKHRoaXMsVSksbj0wO2ZvcihsZXQgaT1lLmxlbmd0aC0xO2k+PTAmJnIuaGFzKGUuY2hhckF0KGkpKTtpLS0pbisrO3JldHVybiBufWdldExlYWRpbmdXaGl0ZXNwYWNlKGUpe2xldCByPXRoaXMuZ2V0TGVhZGluZ1doaXRlc3BhY2VDb3VudChlKTtyZXR1cm4gZS5zbGljZSgwLHIpfWdldFRyYWlsaW5nV2hpdGVzcGFjZShlKXtsZXQgcj10aGlzLmdldFRyYWlsaW5nV2hpdGVzcGFjZUNvdW50KGUpO3JldHVybiBlLnNsaWNlKGUubGVuZ3RoLXIpfWhhc0xlYWRpbmdXaGl0ZXNwYWNlKGUpe3JldHVybiAkKHRoaXMsVSkuaGFzKGUuY2hhckF0KDApKX1oYXNUcmFpbGluZ1doaXRlc3BhY2UoZSl7cmV0dXJuICQodGhpcyxVKS5oYXMoaGUoITEsZSwtMSkpfXRyaW1TdGFydChlKXtsZXQgcj10aGlzLmdldExlYWRpbmdXaGl0ZXNwYWNlQ291bnQoZSk7cmV0dXJuIGUuc2xpY2Uocil9dHJpbUVuZChlKXtsZXQgcj10aGlzLmdldFRyYWlsaW5nV2hpdGVzcGFjZUNvdW50KGUpO3JldHVybiBlLnNsaWNlKDAsZS5sZW5ndGgtcil9dHJpbShlKXtyZXR1cm4gdGhpcy50cmltRW5kKHRoaXMudHJpbVN0YXJ0KGUpKX1zcGxpdChlLHI9ITEpe2xldCBuPWBbJHtadChbLi4uJCh0aGlzLFUpXS5qb2luKFwiXCIpKX1dK2AsaT1uZXcgUmVnRXhwKHI/YCgke259KWA6bik7cmV0dXJuIGUuc3BsaXQoaSl9aGFzV2hpdGVzcGFjZUNoYXJhY3RlcihlKXtsZXQgcj0kKHRoaXMsVSk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoZSxuPT5yLmhhcyhuKSl9aGFzTm9uV2hpdGVzcGFjZUNoYXJhY3RlcihlKXtsZXQgcj0kKHRoaXMsVSk7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zb21lLmNhbGwoZSxuPT4hci5oYXMobikpfWlzV2hpdGVzcGFjZU9ubHkoZSl7bGV0IHI9JCh0aGlzLFUpO3JldHVybiBBcnJheS5wcm90b3R5cGUuZXZlcnkuY2FsbChlLG49PnIuaGFzKG4pKX19O1U9bmV3IFdlYWtNYXA7dmFyIFlyPWVyO3ZhciBsaT1bXCJcdFwiLGBcbmAsXCJcXGZcIixcIlxcclwiLFwiIFwiXSxjaT1uZXcgWXIobGkpLEc9Y2k7ZnVuY3Rpb24geGUodCl7cmV0dXJuIHQubG9jLnN0YXJ0Lm9mZnNldH1mdW5jdGlvbiB0dCh0KXtyZXR1cm4gdC5sb2MuZW5kLm9mZnNldH1mdW5jdGlvbiB6cih0LGUpe2lmKHQudHlwZT09PVwiVGV4dE5vZGVcIil7bGV0IHI9dC5jaGFycy50cmltKCk7aWYoIXIpcmV0dXJuIG51bGw7ZS5jaGFycz1HLnNwbGl0KHIpLmpvaW4oXCIgXCIpfXQudHlwZT09PVwiQXR0ck5vZGVcIiYmdC5uYW1lLnRvTG93ZXJDYXNlKCk9PT1cImNsYXNzXCImJmRlbGV0ZSBlLnZhbHVlfXpyLmlnbm9yZWRQcm9wZXJ0aWVzPW5ldyBTZXQoW1wibG9jXCIsXCJzZWxmQ2xvc2luZ1wiXSk7dmFyIFdyPXpyO3ZhciBLcj1bXCJhcmVhXCIsXCJiYXNlXCIsXCJiclwiLFwiY29sXCIsXCJjb21tYW5kXCIsXCJlbWJlZFwiLFwiaHJcIixcImltZ1wiLFwiaW5wdXRcIixcImtleWdlblwiLFwibGlua1wiLFwibWV0YVwiLFwicGFyYW1cIixcInNvdXJjZVwiLFwidHJhY2tcIixcIndiclwiXTtmdW5jdGlvbiBRcih0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpPT09dH1mdW5jdGlvbiB1aSh0KXtyZXR1cm4gdC50eXBlPT09XCJFbGVtZW50Tm9kZVwiJiZ0eXBlb2YgdC50YWc9PVwic3RyaW5nXCImJiF0LnRhZy5zdGFydHNXaXRoKFwiOlwiKSYmKFFyKHQudGFnWzBdKXx8dC50YWcuaW5jbHVkZXMoXCIuXCIpKX12YXIgaGk9bmV3IFNldChLcik7ZnVuY3Rpb24gcGkodCl7cmV0dXJuIGhpLmhhcyh0LnRvTG93ZXJDYXNlKCkpJiYhUXIodFswXSl9ZnVuY3Rpb24gdHIodCl7cmV0dXJuIHQuc2VsZkNsb3Npbmc9PT0hMHx8cGkodC50YWcpfHx1aSh0KSYmdC5jaGlsZHJlbi5ldmVyeShlPT5ndChlKSl9ZnVuY3Rpb24gZ3QodCl7cmV0dXJuIHQudHlwZT09PVwiVGV4dE5vZGVcIiYmIS9cXFMvLnRlc3QodC5jaGFycyl9ZnVuY3Rpb24ganIodCl7cmV0dXJuKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cIk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFwiJiZ0eXBlb2YgdC52YWx1ZT09XCJzdHJpbmdcIiYmdC52YWx1ZS50cmltKCk9PT1cInByZXR0aWVyLWlnbm9yZVwifWZ1bmN0aW9uIEpyKHQpe3JldHVybiBqcih0Lm5vZGUpfHx0LmlzSW5BcnJheSYmKHQua2V5PT09XCJjaGlsZHJlblwifHx0LmtleT09PVwiYm9keVwifHx0LmtleT09PVwicGFydHNcIikmJmpyKHQuc2libGluZ3NbdC5pbmRleC0yXSl9dmFyIHJ0PW51bGw7ZnVuY3Rpb24gbnQodCl7aWYocnQhPT1udWxsJiZ0eXBlb2YgcnQucHJvcGVydHkpe2xldCBlPXJ0O3JldHVybiBydD1udC5wcm90b3R5cGU9bnVsbCxlfXJldHVybiBydD1udC5wcm90b3R5cGU9dD8/T2JqZWN0LmNyZWF0ZShudWxsKSxuZXcgbnR9dmFyIGZpPTEwO2ZvcihsZXQgdD0wO3Q8PWZpO3QrKyludCgpO2Z1bmN0aW9uIHJyKHQpe3JldHVybiBudCh0KX1mdW5jdGlvbiBkaSh0LGU9XCJ0eXBlXCIpe3JyKHQpO2Z1bmN0aW9uIHIobil7bGV0IGk9bltlXSxzPXRbaV07aWYoIUFycmF5LmlzQXJyYXkocykpdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYE1pc3NpbmcgdmlzaXRvciBrZXlzIGZvciAnJHtpfScuYCkse25vZGU6bn0pO3JldHVybiBzfXJldHVybiByfXZhciBYcj1kaTt2YXIgJHI9e1Byb2dyYW06W1wiYm9keVwiXSxUZW1wbGF0ZTpbXCJib2R5XCJdLEJsb2NrOltcImJvZHlcIl0sTXVzdGFjaGVTdGF0ZW1lbnQ6W1wicGF0aFwiLFwicGFyYW1zXCIsXCJoYXNoXCJdLEJsb2NrU3RhdGVtZW50OltcInBhdGhcIixcInBhcmFtc1wiLFwiaGFzaFwiLFwicHJvZ3JhbVwiLFwiaW52ZXJzZVwiXSxFbGVtZW50TW9kaWZpZXJTdGF0ZW1lbnQ6W1wicGF0aFwiLFwicGFyYW1zXCIsXCJoYXNoXCJdLFBhcnRpYWxTdGF0ZW1lbnQ6W1wibmFtZVwiLFwicGFyYW1zXCIsXCJoYXNoXCJdLENvbW1lbnRTdGF0ZW1lbnQ6W10sTXVzdGFjaGVDb21tZW50U3RhdGVtZW50OltdLEVsZW1lbnROb2RlOltcImF0dHJpYnV0ZXNcIixcIm1vZGlmaWVyc1wiLFwiY2hpbGRyZW5cIixcImNvbW1lbnRzXCJdLEF0dHJOb2RlOltcInZhbHVlXCJdLFRleHROb2RlOltdLENvbmNhdFN0YXRlbWVudDpbXCJwYXJ0c1wiXSxTdWJFeHByZXNzaW9uOltcInBhdGhcIixcInBhcmFtc1wiLFwiaGFzaFwiXSxQYXRoRXhwcmVzc2lvbjpbXSxQYXRoSGVhZDpbXSxTdHJpbmdMaXRlcmFsOltdLEJvb2xlYW5MaXRlcmFsOltdLE51bWJlckxpdGVyYWw6W10sTnVsbExpdGVyYWw6W10sVW5kZWZpbmVkTGl0ZXJhbDpbXSxIYXNoOltcInBhaXJzXCJdLEhhc2hQYWlyOltcInZhbHVlXCJdLE5hbWVkQmxvY2s6W1wiYXR0cmlidXRlc1wiLFwibW9kaWZpZXJzXCIsXCJjaGlsZHJlblwiLFwiY29tbWVudHNcIl0sU2ltcGxlRWxlbWVudDpbXCJhdHRyaWJ1dGVzXCIsXCJtb2RpZmllcnNcIixcImNoaWxkcmVuXCIsXCJjb21tZW50c1wiXSxDb21wb25lbnQ6W1wiaGVhZFwiLFwiYXR0cmlidXRlc1wiLFwibW9kaWZpZXJzXCIsXCJjaGlsZHJlblwiLFwiY29tbWVudHNcIl19O3ZhciBtaT1YcigkciksWnI9bWk7dmFyIGxuPTI7ZnVuY3Rpb24gZ2kodCxlLHIpe3ZhciBpLHMsYSxsLGMsaCxnLHksRjtsZXR7bm9kZTpufT10O3N3aXRjaChuLnR5cGUpe2Nhc2VcIkJsb2NrXCI6Y2FzZVwiUHJvZ3JhbVwiOmNhc2VcIlRlbXBsYXRlXCI6cmV0dXJuIEkodC5tYXAocixcImJvZHlcIikpO2Nhc2VcIkVsZW1lbnROb2RlXCI6e2xldCBiPUkoeWkodCxyKSksaz1lLmh0bWxXaGl0ZXNwYWNlU2Vuc2l0aXZpdHk9PT1cImlnbm9yZVwiJiYoKGk9dC5uZXh0KT09bnVsbD92b2lkIDA6aS50eXBlKT09PVwiRWxlbWVudE5vZGVcIj9NOlwiXCI7aWYodHIobikpcmV0dXJuW2Isa107bGV0IE49W1wiPC9cIixuLnRhZyxcIj5cIl07cmV0dXJuIG4uY2hpbGRyZW4ubGVuZ3RoPT09MD9bYixPKE4pLGtdOmUuaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eT09PVwiaWdub3JlXCI/W2IsTyhlbih0LGUscikpLHZlLE8oTiksa106W2IsTyhJKGVuKHQsZSxyKSkpLE8oTiksa119Y2FzZVwiQmxvY2tTdGF0ZW1lbnRcIjpyZXR1cm4geGkodCk/W2tpKHQsciksbm4odCxyLGUpLHNuKHQscixlKV06W3ZpKHQsciksSShbbm4odCxyLGUpLHNuKHQscixlKSxQaSh0LHIsZSldKV07Y2FzZVwiRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50XCI6cmV0dXJuIEkoW1wie3tcIixvbih0LHIpLFwifX1cIl0pO2Nhc2VcIk11c3RhY2hlU3RhdGVtZW50XCI6cmV0dXJuIEkoW2J0KG4pLG9uKHQscikseXQobildKTtjYXNlXCJTdWJFeHByZXNzaW9uXCI6cmV0dXJuIEkoW1wiKFwiLE9pKHQsciksTSxcIilcIl0pO2Nhc2VcIkF0dHJOb2RlXCI6e2xldHtuYW1lOmIsdmFsdWU6a309bixOPWsudHlwZT09PVwiVGV4dE5vZGVcIjtpZihOJiZrLmNoYXJzPT09XCJcIiYmeGUoayk9PT10dChrKSlyZXR1cm4gYjtsZXQgdz1OP210KGsuY2hhcnMsZS5zaW5nbGVRdW90ZSk6ay50eXBlPT09XCJDb25jYXRTdGF0ZW1lbnRcIj9tdChrLnBhcnRzLm1hcChSPT5SLnR5cGU9PT1cIlRleHROb2RlXCI/Ui5jaGFyczpcIlwiKS5qb2luKFwiXCIpLGUuc2luZ2xlUXVvdGUpOlwiXCIsc2U9cihcInZhbHVlXCIpO3JldHVybltiLFwiPVwiLHcsYj09PVwiY2xhc3NcIiYmdz9JKE8oc2UpKTpzZSx3XX1jYXNlXCJDb25jYXRTdGF0ZW1lbnRcIjpyZXR1cm4gdC5tYXAocixcInBhcnRzXCIpO2Nhc2VcIkhhc2hcIjpyZXR1cm4gd2UoXyx0Lm1hcChyLFwicGFpcnNcIikpO2Nhc2VcIkhhc2hQYWlyXCI6cmV0dXJuW24ua2V5LFwiPVwiLHIoXCJ2YWx1ZVwiKV07Y2FzZVwiVGV4dE5vZGVcIjp7bGV0IGI9V3QoITEsbi5jaGFycyxcInt7XCIsXCJcXFxce3tcIiksaz1DaSh0KTtpZihrKXtpZihrPT09XCJjbGFzc1wiKXtsZXQgSj1iLnRyaW0oKS5zcGxpdCgvXFxzKy8pLmpvaW4oXCIgXCIpLGFlPSExLHE9ITE7cmV0dXJuIHQucGFyZW50LnR5cGU9PT1cIkNvbmNhdFN0YXRlbWVudFwiJiYoKChzPXQucHJldmlvdXMpPT1udWxsP3ZvaWQgMDpzLnR5cGUpPT09XCJNdXN0YWNoZVN0YXRlbWVudFwiJiYvXlxccy8udGVzdChiKSYmKGFlPSEwKSwoKGE9dC5uZXh0KT09bnVsbD92b2lkIDA6YS50eXBlKT09PVwiTXVzdGFjaGVTdGF0ZW1lbnRcIiYmL1xccyQvLnRlc3QoYikmJkohPT1cIlwiJiYocT0hMCkpLFthZT9fOlwiXCIsSixxP186XCJcIl19cmV0dXJuIEZyKGIpfWxldCBOPUcuaXNXaGl0ZXNwYWNlT25seShiKSx7aXNGaXJzdDpCLGlzTGFzdDp3fT10O2lmKGUuaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eSE9PVwiaWdub3JlXCIpe2xldCBKPXcmJnQucGFyZW50LnR5cGU9PT1cIlRlbXBsYXRlXCIsYWU9QiYmdC5wYXJlbnQudHlwZT09PVwiVGVtcGxhdGVcIjtpZihOKXtpZihhZXx8SilyZXR1cm5cIlwiO2xldCBBPVtfXSxsZT1WZShiKTtyZXR1cm4gbGUmJihBPWl0KGxlKSksdyYmKEE9QS5tYXAoY3Q9PlF0KGN0KSkpLEF9bGV0IHE9Ry5nZXRMZWFkaW5nV2hpdGVzcGFjZShiKSxBZT1bXTtpZihxKXtBZT1bX107bGV0IEE9VmUocSk7QSYmKEFlPWl0KEEpKSxiPWIuc2xpY2UocS5sZW5ndGgpfWxldCBWPUcuZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlKGIpLG9lPVtdO2lmKFYpe2lmKCFKKXtvZT1bX107bGV0IEE9VmUoVik7QSYmKG9lPWl0KEEpKSx3JiYob2U9b2UubWFwKGxlPT5RdChsZSkpKX1iPWIuc2xpY2UoMCwtVi5sZW5ndGgpfXJldHVyblsuLi5BZSxKdChhbihiKSksLi4ub2VdfWxldCBzZT1WZShiKSxSPUFpKGIpLFE9X2koYik7aWYoKEJ8fHcpJiZOJiYodC5wYXJlbnQudHlwZT09PVwiQmxvY2tcInx8dC5wYXJlbnQudHlwZT09PVwiRWxlbWVudE5vZGVcInx8dC5wYXJlbnQudHlwZT09PVwiVGVtcGxhdGVcIikpcmV0dXJuXCJcIjtOJiZzZT8oUj1NYXRoLm1pbihzZSxsbiksUT0wKTooKCgobD10Lm5leHQpPT1udWxsP3ZvaWQgMDpsLnR5cGUpPT09XCJCbG9ja1N0YXRlbWVudFwifHwoKGM9dC5uZXh0KT09bnVsbD92b2lkIDA6Yy50eXBlKT09PVwiRWxlbWVudE5vZGVcIikmJihRPU1hdGgubWF4KFEsMSkpLCgoKGg9dC5wcmV2aW91cyk9PW51bGw/dm9pZCAwOmgudHlwZSk9PT1cIkJsb2NrU3RhdGVtZW50XCJ8fCgoZz10LnByZXZpb3VzKT09bnVsbD92b2lkIDA6Zy50eXBlKT09PVwiRWxlbWVudE5vZGVcIikmJihSPU1hdGgubWF4KFIsMSkpKTtsZXQgTmU9XCJcIixDZT1cIlwiO3JldHVybiBRPT09MCYmKCh5PXQubmV4dCk9PW51bGw/dm9pZCAwOnkudHlwZSk9PT1cIk11c3RhY2hlU3RhdGVtZW50XCImJihDZT1cIiBcIiksUj09PTAmJigoRj10LnByZXZpb3VzKT09bnVsbD92b2lkIDA6Ri50eXBlKT09PVwiTXVzdGFjaGVTdGF0ZW1lbnRcIiYmKE5lPVwiIFwiKSxCJiYoUj0wLE5lPVwiXCIpLHcmJihRPTAsQ2U9XCJcIiksRy5oYXNMZWFkaW5nV2hpdGVzcGFjZShiKSYmKGI9TmUrRy50cmltU3RhcnQoYikpLEcuaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKGIpJiYoYj1HLnRyaW1FbmQoYikrQ2UpLFsuLi5pdChSKSxKdChhbihiKSksLi4uaXQoUSldfWNhc2VcIk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFwiOntsZXQgYj14ZShuKSxrPXR0KG4pLE49ZS5vcmlnaW5hbFRleHQuY2hhckF0KGIrMik9PT1cIn5cIixCPWUub3JpZ2luYWxUZXh0LmNoYXJBdChrLTMpPT09XCJ+XCIsdz1uLnZhbHVlLmluY2x1ZGVzKFwifX1cIik/XCItLVwiOlwiXCI7cmV0dXJuW1wie3tcIixOP1wiflwiOlwiXCIsXCIhXCIsdyxuLnZhbHVlLHcsQj9cIn5cIjpcIlwiLFwifX1cIl19Y2FzZVwiUGF0aEV4cHJlc3Npb25cIjpyZXR1cm4gbi5vcmlnaW5hbDtjYXNlXCJCb29sZWFuTGl0ZXJhbFwiOnJldHVybiBTdHJpbmcobi52YWx1ZSk7Y2FzZVwiQ29tbWVudFN0YXRlbWVudFwiOnJldHVybltcIjwhLS1cIixuLnZhbHVlLFwiLS0+XCJdO2Nhc2VcIlN0cmluZ0xpdGVyYWxcIjpyZXR1cm4gTGkodCxlKTtjYXNlXCJOdW1iZXJMaXRlcmFsXCI6cmV0dXJuIFN0cmluZyhuLnZhbHVlKTtjYXNlXCJVbmRlZmluZWRMaXRlcmFsXCI6cmV0dXJuXCJ1bmRlZmluZWRcIjtjYXNlXCJOdWxsTGl0ZXJhbFwiOnJldHVyblwibnVsbFwiO2RlZmF1bHQ6dGhyb3cgbmV3IEdyKG4sXCJIYW5kbGViYXJzXCIpfX1mdW5jdGlvbiBiaSh0LGUpe3JldHVybiB4ZSh0KS14ZShlKX1mdW5jdGlvbiB5aSh0LGUpe2xldHtub2RlOnJ9PXQsbj1bXCJhdHRyaWJ1dGVzXCIsXCJtb2RpZmllcnNcIixcImNvbW1lbnRzXCJdLmZpbHRlcihzPT5ldChyW3NdKSksaT1uLmZsYXRNYXAocz0+cltzXSkuc29ydChiaSk7Zm9yKGxldCBzIG9mIG4pdC5lYWNoKCh7bm9kZTphfSk9PntsZXQgbD1pLmluZGV4T2YoYSk7aS5zcGxpY2UobCwxLFtfLGUoKV0pfSxzKTtyZXR1cm4gZXQoci5ibG9ja1BhcmFtcykmJmkucHVzaChfLGlyKHIpKSxbXCI8XCIsci50YWcsTyhpKSxTaShyKV19ZnVuY3Rpb24gZW4odCxlLHIpe2xldHtub2RlOm59PXQsaT1uLmNoaWxkcmVuLmV2ZXJ5KHM9Pmd0KHMpKTtyZXR1cm4gZS5odG1sV2hpdGVzcGFjZVNlbnNpdGl2aXR5PT09XCJpZ25vcmVcIiYmaT9cIlwiOnQubWFwKCh7aXNGaXJzdDpzfSk9PntsZXQgYT1yKCk7cmV0dXJuIHMmJmUuaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eT09PVwiaWdub3JlXCI/W00sYV06YX0sXCJjaGlsZHJlblwiKX1mdW5jdGlvbiBTaSh0KXtyZXR1cm4gdHIodCk/WHQoW00sXCIvPlwiXSxbXCIgLz5cIixNXSk6WHQoW00sXCI+XCJdLFwiPlwiKX1mdW5jdGlvbiBidCh0KXt2YXIgbjtsZXQgZT10LmVzY2FwZWQ9PT0hMT9cInt7e1wiOlwie3tcIixyPShuPXQuc3RyaXApIT1udWxsJiZuLm9wZW4/XCJ+XCI6XCJcIjtyZXR1cm5bZSxyXX1mdW5jdGlvbiB5dCh0KXt2YXIgbjtsZXQgZT10LmVzY2FwZWQ9PT0hMT9cIn19fVwiOlwifX1cIjtyZXR1cm5bKG49dC5zdHJpcCkhPW51bGwmJm4uY2xvc2U/XCJ+XCI6XCJcIixlXX1mdW5jdGlvbiBFaSh0KXtsZXQgZT1idCh0KSxyPXQub3BlblN0cmlwLm9wZW4/XCJ+XCI6XCJcIjtyZXR1cm5bZSxyLFwiI1wiXX1mdW5jdGlvbiBUaSh0KXtsZXQgZT15dCh0KTtyZXR1cm5bdC5vcGVuU3RyaXAuY2xvc2U/XCJ+XCI6XCJcIixlXX1mdW5jdGlvbiB0bih0KXtsZXQgZT1idCh0KSxyPXQuY2xvc2VTdHJpcC5vcGVuP1wiflwiOlwiXCI7cmV0dXJuW2UscixcIi9cIl19ZnVuY3Rpb24gcm4odCl7bGV0IGU9eXQodCk7cmV0dXJuW3QuY2xvc2VTdHJpcC5jbG9zZT9cIn5cIjpcIlwiLGVdfWZ1bmN0aW9uIGNuKHQpe2xldCBlPWJ0KHQpLHI9dC5pbnZlcnNlU3RyaXAub3Blbj9cIn5cIjpcIlwiO3JldHVybltlLHJdfWZ1bmN0aW9uIHVuKHQpe2xldCBlPXl0KHQpO3JldHVyblt0LmludmVyc2VTdHJpcC5jbG9zZT9cIn5cIjpcIlwiLGVdfWZ1bmN0aW9uIHZpKHQsZSl7bGV0e25vZGU6cn09dCxuPVtdLGk9U3QodCxlKTtyZXR1cm4gaSYmbi5wdXNoKEkoaSkpLGV0KHIucHJvZ3JhbS5ibG9ja1BhcmFtcykmJm4ucHVzaChpcihyLnByb2dyYW0pKSxJKFtFaShyKSxucih0LGUpLG4ubGVuZ3RoPjA/TyhbXyx3ZShfLG4pXSk6XCJcIixNLFRpKHIpXSl9ZnVuY3Rpb24gd2kodCxlKXtyZXR1cm5bZS5odG1sV2hpdGVzcGFjZVNlbnNpdGl2aXR5PT09XCJpZ25vcmVcIj92ZTpcIlwiLGNuKHQpLFwiZWxzZVwiLHVuKHQpXX1mdW5jdGlvbiB4aSh0KXt2YXIgbjtsZXR7Z3JhbmRwYXJlbnQ6ZSxub2RlOnJ9PXQ7cmV0dXJuKChuPWU9PW51bGw/dm9pZCAwOmUuaW52ZXJzZSk9PW51bGw/dm9pZCAwOm4uYm9keS5sZW5ndGgpPT09MSYmZS5pbnZlcnNlLmJvZHlbMF09PT1yJiZlLmludmVyc2UuYm9keVswXS5wYXRoLnBhcnRzWzBdPT09ZS5wYXRoLnBhcnRzWzBdfWZ1bmN0aW9uIGtpKHQsZSl7bGV0e25vZGU6cixncmFuZHBhcmVudDpufT10O3JldHVybiBJKFtjbihuKSxbXCJlbHNlXCIsXCIgXCIsbi5pbnZlcnNlLmJvZHlbMF0ucGF0aC5wYXJ0c1swXV0sTyhbXyxJKFN0KHQsZSkpLC4uLmV0KHIucHJvZ3JhbS5ibG9ja1BhcmFtcyk/W18saXIoci5wcm9ncmFtKV06W11dKSxNLHVuKG4pXSl9ZnVuY3Rpb24gUGkodCxlLHIpe2xldHtub2RlOm59PXQ7cmV0dXJuIHIuaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eT09PVwiaWdub3JlXCI/W2huKG4pP006dmUsdG4obiksZShcInBhdGhcIikscm4obildOlt0bihuKSxlKFwicGF0aFwiKSxybihuKV19ZnVuY3Rpb24gaG4odCl7cmV0dXJuIHQudHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIiYmdC5wcm9ncmFtLmJvZHkuZXZlcnkoZT0+Z3QoZSkpfWZ1bmN0aW9uIE5pKHQpe3JldHVybiBwbih0KSYmdC5pbnZlcnNlLmJvZHkubGVuZ3RoPT09MSYmdC5pbnZlcnNlLmJvZHlbMF0udHlwZT09PVwiQmxvY2tTdGF0ZW1lbnRcIiYmdC5pbnZlcnNlLmJvZHlbMF0ucGF0aC5wYXJ0c1swXT09PXQucGF0aC5wYXJ0c1swXX1mdW5jdGlvbiBwbih0KXtyZXR1cm4gdC50eXBlPT09XCJCbG9ja1N0YXRlbWVudFwiJiZ0LmludmVyc2V9ZnVuY3Rpb24gbm4odCxlLHIpe2xldHtub2RlOm59PXQ7aWYoaG4obikpcmV0dXJuXCJcIjtsZXQgaT1lKFwicHJvZ3JhbVwiKTtyZXR1cm4gci5odG1sV2hpdGVzcGFjZVNlbnNpdGl2aXR5PT09XCJpZ25vcmVcIj9PKFt2ZSxpXSk6TyhpKX1mdW5jdGlvbiBzbih0LGUscil7bGV0e25vZGU6bn09dCxpPWUoXCJpbnZlcnNlXCIpLHM9ci5odG1sV2hpdGVzcGFjZVNlbnNpdGl2aXR5PT09XCJpZ25vcmVcIj9bdmUsaV06aTtyZXR1cm4gTmkobik/czpwbihuKT9bd2kobixyKSxPKHMpXTpcIlwifWZ1bmN0aW9uIGFuKHQpe3JldHVybiB3ZShfLEcuc3BsaXQodCkpfWZ1bmN0aW9uIENpKHQpe2ZvcihsZXQgZT0wO2U8MjtlKyspe2xldCByPXQuZ2V0UGFyZW50Tm9kZShlKTtpZigocj09bnVsbD92b2lkIDA6ci50eXBlKT09PVwiQXR0ck5vZGVcIilyZXR1cm4gci5uYW1lLnRvTG93ZXJDYXNlKCl9fWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0PXR5cGVvZiB0PT1cInN0cmluZ1wiP3Q6XCJcIix0LnNwbGl0KGBcbmApLmxlbmd0aC0xfWZ1bmN0aW9uIEFpKHQpe3Q9dHlwZW9mIHQ9PVwic3RyaW5nXCI/dDpcIlwiO2xldCBlPSh0Lm1hdGNoKC9eKFteXFxTXFxuXFxyXSpbXFxuXFxyXSkrL2cpfHxbXSlbMF18fFwiXCI7cmV0dXJuIFZlKGUpfWZ1bmN0aW9uIF9pKHQpe3Q9dHlwZW9mIHQ9PVwic3RyaW5nXCI/dDpcIlwiO2xldCBlPSh0Lm1hdGNoKC8oW1xcblxccl1bXlxcU1xcblxccl0qKSskL2cpfHxbXSlbMF18fFwiXCI7cmV0dXJuIFZlKGUpfWZ1bmN0aW9uIGl0KHQ9MCl7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDpNYXRoLm1pbih0LGxuKX0pLmZpbGwodmUpfWZ1bmN0aW9uIExpKHQsZSl7bGV0e25vZGU6e3ZhbHVlOnJ9fT10LG49bXQocixEaSh0KT8hZS5zaW5nbGVRdW90ZTplLnNpbmdsZVF1b3RlKTtyZXR1cm5bbixXdCghMSxyLG4sYFxcXFwke259YCksbl19ZnVuY3Rpb24gRGkodCl7bGV0e2FuY2VzdG9yczplfT10LHI9ZS5maW5kSW5kZXgobj0+bi50eXBlIT09XCJTdWJFeHByZXNzaW9uXCIpO3JldHVybiByIT09LTEmJmVbcisxXS50eXBlPT09XCJDb25jYXRTdGF0ZW1lbnRcIiYmZVtyKzJdLnR5cGU9PT1cIkF0dHJOb2RlXCJ9ZnVuY3Rpb24gT2kodCxlKXtsZXQgcj1ucih0LGUpLG49U3QodCxlKTtyZXR1cm4gbj9PKFtyLF8sSShuKV0pOnJ9ZnVuY3Rpb24gb24odCxlKXtsZXQgcj1ucih0LGUpLG49U3QodCxlKTtyZXR1cm4gbj9bTyhbcixfLG5dKSxNXTpyfWZ1bmN0aW9uIG5yKHQsZSl7cmV0dXJuIGUoXCJwYXRoXCIpfWZ1bmN0aW9uIFN0KHQsZSl7dmFyIGk7bGV0e25vZGU6cn09dCxuPVtdO3JldHVybiByLnBhcmFtcy5sZW5ndGg+MCYmbi5wdXNoKC4uLnQubWFwKGUsXCJwYXJhbXNcIikpLCgoaT1yLmhhc2gpPT1udWxsP3ZvaWQgMDppLnBhaXJzLmxlbmd0aCk+MCYmbi5wdXNoKGUoXCJoYXNoXCIpKSxuLmxlbmd0aD09PTA/XCJcIjp3ZShfLG4pfWZ1bmN0aW9uIGlyKHQpe3JldHVybltcImFzIHxcIix0LmJsb2NrUGFyYW1zLmpvaW4oXCIgXCIpLFwifFwiXX12YXIgSWk9e3ByaW50OmdpLG1hc3NhZ2VBc3ROb2RlOldyLGhhc1ByZXR0aWVySWdub3JlOkpyLGdldFZpc2l0b3JLZXlzOlpyfSxmbj1JaTt2YXIgQXI9e307enQoQXIse2dsaW1tZXI6KCk9PlhzfSk7dmFyIEJpPU9iamVjdC5mcmVlemUoW10pO2Z1bmN0aW9uIGRuKCl7cmV0dXJuIEJpfXZhciBjbz1kbigpLHVvPWRuKCk7dmFyIHBlPU9iamVjdC5hc3NpZ247dmFyIHZvPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBTeW1ib2whPVwiZnVuY3Rpb25cIj8hMTp0eXBlb2YgU3ltYm9sKCk9PVwic3ltYm9sXCJ9KCk7dmFyIFQ9KC4uLnQpPT50O2Z1bmN0aW9uIHFpKHQpe3JldHVybiB0Ji01MzY4NzA5MTN9ZnVuY3Rpb24gVmkodCl7cmV0dXJuIHR8NTM2ODcwOTEyfWZ1bmN0aW9uIEhpKHQpe3JldHVybn50fWZ1bmN0aW9uIFVpKHQpe3JldHVybn50fWZ1bmN0aW9uIEZpKHQpe3JldHVybiB0fD0wLHQ8MD9xaSh0KTpIaSh0KX1mdW5jdGlvbiBNaSh0KXtyZXR1cm4gdHw9MCx0Pi01MzY4NzA5MTM/VWkodCk6VmkodCl9WzEsMiwzXS5mb3JFYWNoKHQ9PnQpO1sxLC0xXS5mb3JFYWNoKHQ9Pk1pKEZpKHQpKSk7ZnVuY3Rpb24gSGUodCl7cmV0dXJuIHQubGVuZ3RoPjB9ZnVuY3Rpb24gbW4odCxlPVwidW5leHBlY3RlZCBlbXB0eSBsaXN0XCIpe2lmKCFIZSh0KSl0aHJvdyBuZXcgRXJyb3IoZSl9dmFyIEdpO2lmKCExKXtsZXQgdD1uPT57bGV0IGk9bi5uYW1lO2lmKGk9PT12b2lkIDApe2xldCBzPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pLm1hdGNoKC9mdW5jdGlvbiAoXFx3KylcXHMqXFwoLyk7aT1zJiZzWzFdfHxcIlwifXJldHVybiBpLnJlcGxhY2UoL15ib3VuZCAvLFwiXCIpfSxlPW49PntsZXQgaSxzO3JldHVybiBuLmNvbnN0cnVjdG9yJiZ0eXBlb2Ygbi5jb25zdHJ1Y3Rvcj09XCJmdW5jdGlvblwiJiYocz10KG4uY29uc3RydWN0b3IpKSxcInRvU3RyaW5nXCJpbiBuJiZuLnRvU3RyaW5nIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyYmbi50b1N0cmluZyE9PUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyYmKGk9bi50b1N0cmluZygpKSxpJiZpLm1hdGNoKC88Lio6ZW1iZXJcXGQrPi8pJiZzJiZzWzBdIT09XCJfXCImJnMubGVuZ3RoPjImJnMhPT1cIkNsYXNzXCI/aS5yZXBsYWNlKC88Lio6LyxgPCR7c306YCk6aXx8c30scj1uPT5TdHJpbmcobik7R2k9bj0+dHlwZW9mIG49PVwiZnVuY3Rpb25cIj90KG4pfHxcIih1bmtub3duIGZ1bmN0aW9uKVwiOnR5cGVvZiBuPT1cIm9iamVjdFwiJiZuIT09bnVsbD9lKG4pfHxcIih1bmtub3duIG9iamVjdClcIjpyKG4pfXZhciBnbj1jb25zb2xlO2Z1bmN0aW9uIGJuKHQsZT1cInVuZXhwZWN0ZWQgdW5yZWFjaGFibGUgYnJhbmNoXCIpe3Rocm93IGduLmxvZyhcInVucmVhY2hhYmxlXCIsdCksZ24ubG9nKGAke2V9IDo6ICR7SlNPTi5zdHJpbmdpZnkodCl9ICgke3R9KWApLG5ldyBFcnJvcihcImNvZGUgcmVhY2hlZCB1bnJlYWNoYWJsZVwiKX12YXIgWWk9ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihjZSxwLG0sZil7Zm9yKG09bXx8e30sZj1jZS5sZW5ndGg7Zi0tO21bY2VbZl1dPXApO3JldHVybiBtfSxlPVsyLDQ0XSxyPVsxLDIwXSxuPVs1LDE0LDE1LDE5LDI5LDM0LDM5LDQ0LDQ3LDQ4LDUyLDU2LDYwXSxpPVsxLDM1XSxzPVsxLDM4XSxhPVsxLDMwXSxsPVsxLDMxXSxjPVsxLDMyXSxoPVsxLDMzXSxnPVsxLDM0XSx5PVsxLDM3XSxGPVsxNCwxNSwxOSwyOSwzNCwzOSw0NCw0Nyw0OCw1Miw1Niw2MF0sYj1bMTQsMTUsMTksMjksMzQsNDQsNDcsNDgsNTIsNTYsNjBdLGs9WzE1LDE4XSxOPVsxNCwxNSwxOSwyOSwzNCw0Nyw0OCw1Miw1Niw2MF0sQj1bMzMsNjQsNzEsNzksODAsODEsODIsODMsODRdLHc9WzIzLDMzLDU1LDY0LDY3LDcxLDc0LDc5LDgwLDgxLDgyLDgzLDg0XSxzZT1bMSw1MV0sUj1bMjMsMzMsNTUsNjQsNjcsNzEsNzQsNzksODAsODEsODIsODMsODQsODZdLFE9WzIsNDNdLE5lPVs1NSw2NCw3MSw3OSw4MCw4MSw4Miw4Myw4NF0sQ2U9WzEsNThdLEo9WzEsNTldLGFlPVsxLDY2XSxxPVszMyw2NCw3MSw3NCw3OSw4MCw4MSw4Miw4Myw4NF0sQWU9WzIzLDY0LDcxLDc5LDgwLDgxLDgyLDgzLDg0XSxWPVsxLDc2XSxvZT1bNjQsNjcsNzEsNzksODAsODEsODIsODMsODRdLEE9WzMzLDc0XSxsZT1bMjMsMzMsNTUsNjcsNzEsNzRdLGN0PVsxLDEwNl0scXQ9WzEsMTE4XSxMcj1bNzEsNzZdLFZ0PXt0cmFjZTpmdW5jdGlvbigpe30seXk6e30sc3ltYm9sc186e2Vycm9yOjIscm9vdDozLHByb2dyYW06NCxFT0Y6NSxwcm9ncmFtX3JlcGV0aXRpb24wOjYsc3RhdGVtZW50OjcsbXVzdGFjaGU6OCxibG9jazo5LHJhd0Jsb2NrOjEwLHBhcnRpYWw6MTEscGFydGlhbEJsb2NrOjEyLGNvbnRlbnQ6MTMsQ09NTUVOVDoxNCxDT05URU5UOjE1LG9wZW5SYXdCbG9jazoxNixyYXdCbG9ja19yZXBldGl0aW9uMDoxNyxFTkRfUkFXX0JMT0NLOjE4LE9QRU5fUkFXX0JMT0NLOjE5LGhlbHBlck5hbWU6MjAsb3BlblJhd0Jsb2NrX3JlcGV0aXRpb24wOjIxLG9wZW5SYXdCbG9ja19vcHRpb24wOjIyLENMT1NFX1JBV19CTE9DSzoyMyxvcGVuQmxvY2s6MjQsYmxvY2tfb3B0aW9uMDoyNSxjbG9zZUJsb2NrOjI2LG9wZW5JbnZlcnNlOjI3LGJsb2NrX29wdGlvbjE6MjgsT1BFTl9CTE9DSzoyOSxvcGVuQmxvY2tfcmVwZXRpdGlvbjA6MzAsb3BlbkJsb2NrX29wdGlvbjA6MzEsb3BlbkJsb2NrX29wdGlvbjE6MzIsQ0xPU0U6MzMsT1BFTl9JTlZFUlNFOjM0LG9wZW5JbnZlcnNlX3JlcGV0aXRpb24wOjM1LG9wZW5JbnZlcnNlX29wdGlvbjA6MzYsb3BlbkludmVyc2Vfb3B0aW9uMTozNyxvcGVuSW52ZXJzZUNoYWluOjM4LE9QRU5fSU5WRVJTRV9DSEFJTjozOSxvcGVuSW52ZXJzZUNoYWluX3JlcGV0aXRpb24wOjQwLG9wZW5JbnZlcnNlQ2hhaW5fb3B0aW9uMDo0MSxvcGVuSW52ZXJzZUNoYWluX29wdGlvbjE6NDIsaW52ZXJzZUFuZFByb2dyYW06NDMsSU5WRVJTRTo0NCxpbnZlcnNlQ2hhaW46NDUsaW52ZXJzZUNoYWluX29wdGlvbjA6NDYsT1BFTl9FTkRCTE9DSzo0NyxPUEVOOjQ4LGV4cHI6NDksbXVzdGFjaGVfcmVwZXRpdGlvbjA6NTAsbXVzdGFjaGVfb3B0aW9uMDo1MSxPUEVOX1VORVNDQVBFRDo1MixtdXN0YWNoZV9yZXBldGl0aW9uMTo1MyxtdXN0YWNoZV9vcHRpb24xOjU0LENMT1NFX1VORVNDQVBFRDo1NSxPUEVOX1BBUlRJQUw6NTYscGFydGlhbF9yZXBldGl0aW9uMDo1NyxwYXJ0aWFsX29wdGlvbjA6NTgsb3BlblBhcnRpYWxCbG9jazo1OSxPUEVOX1BBUlRJQUxfQkxPQ0s6NjAsb3BlblBhcnRpYWxCbG9ja19yZXBldGl0aW9uMDo2MSxvcGVuUGFydGlhbEJsb2NrX29wdGlvbjA6NjIsc2V4cHI6NjMsT1BFTl9TRVhQUjo2NCxzZXhwcl9yZXBldGl0aW9uMDo2NSxzZXhwcl9vcHRpb24wOjY2LENMT1NFX1NFWFBSOjY3LGhhc2g6NjgsaGFzaF9yZXBldGl0aW9uX3BsdXMwOjY5LGhhc2hTZWdtZW50OjcwLElEOjcxLEVRVUFMUzo3MixibG9ja1BhcmFtczo3MyxPUEVOX0JMT0NLX1BBUkFNUzo3NCxibG9ja1BhcmFtc19yZXBldGl0aW9uX3BsdXMwOjc1LENMT1NFX0JMT0NLX1BBUkFNUzo3NixwYXRoOjc3LGRhdGFOYW1lOjc4LFNUUklORzo3OSxOVU1CRVI6ODAsQk9PTEVBTjo4MSxVTkRFRklORUQ6ODIsTlVMTDo4MyxEQVRBOjg0LHBhdGhTZWdtZW50czo4NSxTRVA6ODYsJGFjY2VwdDowLCRlbmQ6MX0sdGVybWluYWxzXzp7MjpcImVycm9yXCIsNTpcIkVPRlwiLDE0OlwiQ09NTUVOVFwiLDE1OlwiQ09OVEVOVFwiLDE4OlwiRU5EX1JBV19CTE9DS1wiLDE5OlwiT1BFTl9SQVdfQkxPQ0tcIiwyMzpcIkNMT1NFX1JBV19CTE9DS1wiLDI5OlwiT1BFTl9CTE9DS1wiLDMzOlwiQ0xPU0VcIiwzNDpcIk9QRU5fSU5WRVJTRVwiLDM5OlwiT1BFTl9JTlZFUlNFX0NIQUlOXCIsNDQ6XCJJTlZFUlNFXCIsNDc6XCJPUEVOX0VOREJMT0NLXCIsNDg6XCJPUEVOXCIsNTI6XCJPUEVOX1VORVNDQVBFRFwiLDU1OlwiQ0xPU0VfVU5FU0NBUEVEXCIsNTY6XCJPUEVOX1BBUlRJQUxcIiw2MDpcIk9QRU5fUEFSVElBTF9CTE9DS1wiLDY0OlwiT1BFTl9TRVhQUlwiLDY3OlwiQ0xPU0VfU0VYUFJcIiw3MTpcIklEXCIsNzI6XCJFUVVBTFNcIiw3NDpcIk9QRU5fQkxPQ0tfUEFSQU1TXCIsNzY6XCJDTE9TRV9CTE9DS19QQVJBTVNcIiw3OTpcIlNUUklOR1wiLDgwOlwiTlVNQkVSXCIsODE6XCJCT09MRUFOXCIsODI6XCJVTkRFRklORURcIiw4MzpcIk5VTExcIiw4NDpcIkRBVEFcIiw4NjpcIlNFUFwifSxwcm9kdWN0aW9uc186WzAsWzMsMl0sWzQsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzcsMV0sWzEzLDFdLFsxMCwzXSxbMTYsNV0sWzksNF0sWzksNF0sWzI0LDZdLFsyNyw2XSxbMzgsNl0sWzQzLDJdLFs0NSwzXSxbNDUsMV0sWzI2LDNdLFs4LDVdLFs4LDVdLFsxMSw1XSxbMTIsM10sWzU5LDVdLFs0OSwxXSxbNDksMV0sWzYzLDVdLFs2OCwxXSxbNzAsM10sWzczLDNdLFsyMCwxXSxbMjAsMV0sWzIwLDFdLFsyMCwxXSxbMjAsMV0sWzIwLDFdLFsyMCwxXSxbNzgsMl0sWzc3LDFdLFs4NSwzXSxbODUsMV0sWzYsMF0sWzYsMl0sWzE3LDBdLFsxNywyXSxbMjEsMF0sWzIxLDJdLFsyMiwwXSxbMjIsMV0sWzI1LDBdLFsyNSwxXSxbMjgsMF0sWzI4LDFdLFszMCwwXSxbMzAsMl0sWzMxLDBdLFszMSwxXSxbMzIsMF0sWzMyLDFdLFszNSwwXSxbMzUsMl0sWzM2LDBdLFszNiwxXSxbMzcsMF0sWzM3LDFdLFs0MCwwXSxbNDAsMl0sWzQxLDBdLFs0MSwxXSxbNDIsMF0sWzQyLDFdLFs0NiwwXSxbNDYsMV0sWzUwLDBdLFs1MCwyXSxbNTEsMF0sWzUxLDFdLFs1MywwXSxbNTMsMl0sWzU0LDBdLFs1NCwxXSxbNTcsMF0sWzU3LDJdLFs1OCwwXSxbNTgsMV0sWzYxLDBdLFs2MSwyXSxbNjIsMF0sWzYyLDFdLFs2NSwwXSxbNjUsMl0sWzY2LDBdLFs2NiwxXSxbNjksMV0sWzY5LDJdLFs3NSwxXSxbNzUsMl1dLHBlcmZvcm1BY3Rpb246ZnVuY3Rpb24ocCxtLGYsZCx2LG8sX2Upe3ZhciB1PW8ubGVuZ3RoLTE7c3dpdGNoKHYpe2Nhc2UgMTpyZXR1cm4gb1t1LTFdO2Nhc2UgMjp0aGlzLiQ9ZC5wcmVwYXJlUHJvZ3JhbShvW3VdKTticmVhaztjYXNlIDM6Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgODpjYXNlIDIwOmNhc2UgMjc6Y2FzZSAyODpjYXNlIDMzOmNhc2UgMzQ6dGhpcy4kPW9bdV07YnJlYWs7Y2FzZSA5OnRoaXMuJD17dHlwZTpcIkNvbW1lbnRTdGF0ZW1lbnRcIix2YWx1ZTpkLnN0cmlwQ29tbWVudChvW3VdKSxzdHJpcDpkLnN0cmlwRmxhZ3Mob1t1XSxvW3VdKSxsb2M6ZC5sb2NJbmZvKHRoaXMuXyQpfTticmVhaztjYXNlIDEwOnRoaXMuJD17dHlwZTpcIkNvbnRlbnRTdGF0ZW1lbnRcIixvcmlnaW5hbDpvW3VdLHZhbHVlOm9bdV0sbG9jOmQubG9jSW5mbyh0aGlzLl8kKX07YnJlYWs7Y2FzZSAxMTp0aGlzLiQ9ZC5wcmVwYXJlUmF3QmxvY2sob1t1LTJdLG9bdS0xXSxvW3VdLHRoaXMuXyQpO2JyZWFrO2Nhc2UgMTI6dGhpcy4kPXtwYXRoOm9bdS0zXSxwYXJhbXM6b1t1LTJdLGhhc2g6b1t1LTFdfTticmVhaztjYXNlIDEzOnRoaXMuJD1kLnByZXBhcmVCbG9jayhvW3UtM10sb1t1LTJdLG9bdS0xXSxvW3VdLCExLHRoaXMuXyQpO2JyZWFrO2Nhc2UgMTQ6dGhpcy4kPWQucHJlcGFyZUJsb2NrKG9bdS0zXSxvW3UtMl0sb1t1LTFdLG9bdV0sITAsdGhpcy5fJCk7YnJlYWs7Y2FzZSAxNTp0aGlzLiQ9e29wZW46b1t1LTVdLHBhdGg6b1t1LTRdLHBhcmFtczpvW3UtM10saGFzaDpvW3UtMl0sYmxvY2tQYXJhbXM6b1t1LTFdLHN0cmlwOmQuc3RyaXBGbGFncyhvW3UtNV0sb1t1XSl9O2JyZWFrO2Nhc2UgMTY6Y2FzZSAxNzp0aGlzLiQ9e3BhdGg6b1t1LTRdLHBhcmFtczpvW3UtM10saGFzaDpvW3UtMl0sYmxvY2tQYXJhbXM6b1t1LTFdLHN0cmlwOmQuc3RyaXBGbGFncyhvW3UtNV0sb1t1XSl9O2JyZWFrO2Nhc2UgMTg6dGhpcy4kPXtzdHJpcDpkLnN0cmlwRmxhZ3Mob1t1LTFdLG9bdS0xXSkscHJvZ3JhbTpvW3VdfTticmVhaztjYXNlIDE5OnZhciB1ZT1kLnByZXBhcmVCbG9jayhvW3UtMl0sb1t1LTFdLG9bdV0sb1t1XSwhMSx0aGlzLl8kKSxZZT1kLnByZXBhcmVQcm9ncmFtKFt1ZV0sb1t1LTFdLmxvYyk7WWUuY2hhaW5lZD0hMCx0aGlzLiQ9e3N0cmlwOm9bdS0yXS5zdHJpcCxwcm9ncmFtOlllLGNoYWluOiEwfTticmVhaztjYXNlIDIxOnRoaXMuJD17cGF0aDpvW3UtMV0sc3RyaXA6ZC5zdHJpcEZsYWdzKG9bdS0yXSxvW3VdKX07YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOnRoaXMuJD1kLnByZXBhcmVNdXN0YWNoZShvW3UtM10sb1t1LTJdLG9bdS0xXSxvW3UtNF0sZC5zdHJpcEZsYWdzKG9bdS00XSxvW3VdKSx0aGlzLl8kKTticmVhaztjYXNlIDI0OnRoaXMuJD17dHlwZTpcIlBhcnRpYWxTdGF0ZW1lbnRcIixuYW1lOm9bdS0zXSxwYXJhbXM6b1t1LTJdLGhhc2g6b1t1LTFdLGluZGVudDpcIlwiLHN0cmlwOmQuc3RyaXBGbGFncyhvW3UtNF0sb1t1XSksbG9jOmQubG9jSW5mbyh0aGlzLl8kKX07YnJlYWs7Y2FzZSAyNTp0aGlzLiQ9ZC5wcmVwYXJlUGFydGlhbEJsb2NrKG9bdS0yXSxvW3UtMV0sb1t1XSx0aGlzLl8kKTticmVhaztjYXNlIDI2OnRoaXMuJD17cGF0aDpvW3UtM10scGFyYW1zOm9bdS0yXSxoYXNoOm9bdS0xXSxzdHJpcDpkLnN0cmlwRmxhZ3Mob1t1LTRdLG9bdV0pfTticmVhaztjYXNlIDI5OnRoaXMuJD17dHlwZTpcIlN1YkV4cHJlc3Npb25cIixwYXRoOm9bdS0zXSxwYXJhbXM6b1t1LTJdLGhhc2g6b1t1LTFdLGxvYzpkLmxvY0luZm8odGhpcy5fJCl9O2JyZWFrO2Nhc2UgMzA6dGhpcy4kPXt0eXBlOlwiSGFzaFwiLHBhaXJzOm9bdV0sbG9jOmQubG9jSW5mbyh0aGlzLl8kKX07YnJlYWs7Y2FzZSAzMTp0aGlzLiQ9e3R5cGU6XCJIYXNoUGFpclwiLGtleTpkLmlkKG9bdS0yXSksdmFsdWU6b1t1XSxsb2M6ZC5sb2NJbmZvKHRoaXMuXyQpfTticmVhaztjYXNlIDMyOnRoaXMuJD1kLmlkKG9bdS0xXSk7YnJlYWs7Y2FzZSAzNTp0aGlzLiQ9e3R5cGU6XCJTdHJpbmdMaXRlcmFsXCIsdmFsdWU6b1t1XSxvcmlnaW5hbDpvW3VdLGxvYzpkLmxvY0luZm8odGhpcy5fJCl9O2JyZWFrO2Nhc2UgMzY6dGhpcy4kPXt0eXBlOlwiTnVtYmVyTGl0ZXJhbFwiLHZhbHVlOk51bWJlcihvW3VdKSxvcmlnaW5hbDpOdW1iZXIob1t1XSksbG9jOmQubG9jSW5mbyh0aGlzLl8kKX07YnJlYWs7Y2FzZSAzNzp0aGlzLiQ9e3R5cGU6XCJCb29sZWFuTGl0ZXJhbFwiLHZhbHVlOm9bdV09PT1cInRydWVcIixvcmlnaW5hbDpvW3VdPT09XCJ0cnVlXCIsbG9jOmQubG9jSW5mbyh0aGlzLl8kKX07YnJlYWs7Y2FzZSAzODp0aGlzLiQ9e3R5cGU6XCJVbmRlZmluZWRMaXRlcmFsXCIsb3JpZ2luYWw6dm9pZCAwLHZhbHVlOnZvaWQgMCxsb2M6ZC5sb2NJbmZvKHRoaXMuXyQpfTticmVhaztjYXNlIDM5OnRoaXMuJD17dHlwZTpcIk51bGxMaXRlcmFsXCIsb3JpZ2luYWw6bnVsbCx2YWx1ZTpudWxsLGxvYzpkLmxvY0luZm8odGhpcy5fJCl9O2JyZWFrO2Nhc2UgNDA6dGhpcy4kPWQucHJlcGFyZVBhdGgoITAsb1t1XSx0aGlzLl8kKTticmVhaztjYXNlIDQxOnRoaXMuJD1kLnByZXBhcmVQYXRoKCExLG9bdV0sdGhpcy5fJCk7YnJlYWs7Y2FzZSA0MjpvW3UtMl0ucHVzaCh7cGFydDpkLmlkKG9bdV0pLG9yaWdpbmFsOm9bdV0sc2VwYXJhdG9yOm9bdS0xXX0pLHRoaXMuJD1vW3UtMl07YnJlYWs7Y2FzZSA0Mzp0aGlzLiQ9W3twYXJ0OmQuaWQob1t1XSksb3JpZ2luYWw6b1t1XX1dO2JyZWFrO2Nhc2UgNDQ6Y2FzZSA0NjpjYXNlIDQ4OmNhc2UgNTY6Y2FzZSA2MjpjYXNlIDY4OmNhc2UgNzY6Y2FzZSA4MDpjYXNlIDg0OmNhc2UgODg6Y2FzZSA5Mjp0aGlzLiQ9W107YnJlYWs7Y2FzZSA0NTpjYXNlIDQ3OmNhc2UgNDk6Y2FzZSA1NzpjYXNlIDYzOmNhc2UgNjk6Y2FzZSA3NzpjYXNlIDgxOmNhc2UgODU6Y2FzZSA4OTpjYXNlIDkzOmNhc2UgOTc6Y2FzZSA5OTpvW3UtMV0ucHVzaChvW3VdKTticmVhaztjYXNlIDk2OmNhc2UgOTg6dGhpcy4kPVtvW3VdXTticmVha319LHRhYmxlOlt0KFs1LDE0LDE1LDE5LDI5LDM0LDQ4LDUyLDU2LDYwXSxlLHszOjEsNDoyLDY6M30pLHsxOlszXX0sezU6WzEsNF19LHQoWzUsMzksNDQsNDddLFsyLDJdLHs3OjUsODo2LDk6NywxMDo4LDExOjksMTI6MTAsMTM6MTEsMjQ6MTUsMjc6MTYsMTY6MTcsNTk6MTksMTQ6WzEsMTJdLDE1OnIsMTk6WzEsMjNdLDI5OlsxLDIxXSwzNDpbMSwyMl0sNDg6WzEsMTNdLDUyOlsxLDE0XSw1NjpbMSwxOF0sNjA6WzEsMjRdfSksezE6WzIsMV19LHQobixbMiw0NV0pLHQobixbMiwzXSksdChuLFsyLDRdKSx0KG4sWzIsNV0pLHQobixbMiw2XSksdChuLFsyLDddKSx0KG4sWzIsOF0pLHQobixbMiw5XSksezIwOjI2LDQ5OjI1LDYzOjI3LDY0OmksNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sezIwOjI2LDQ5OjM5LDYzOjI3LDY0OmksNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sdChGLGUsezY6Myw0OjQwfSksdChiLGUsezY6Myw0OjQxfSksdChrLFsyLDQ2XSx7MTc6NDJ9KSx7MjA6MjYsNDk6NDMsNjM6MjcsNjQ6aSw3MTpzLDc3OjI4LDc4OjI5LDc5OmEsODA6bCw4MTpjLDgyOmgsODM6Zyw4NDp5LDg1OjM2fSx0KE4sZSx7NjozLDQ6NDR9KSx0KFs1LDE0LDE1LDE4LDE5LDI5LDM0LDM5LDQ0LDQ3LDQ4LDUyLDU2LDYwXSxbMiwxMF0pLHsyMDo0NSw3MTpzLDc3OjI4LDc4OjI5LDc5OmEsODA6bCw4MTpjLDgyOmgsODM6Zyw4NDp5LDg1OjM2fSx7MjA6NDYsNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sezIwOjQ3LDcxOnMsNzc6MjgsNzg6MjksNzk6YSw4MDpsLDgxOmMsODI6aCw4MzpnLDg0OnksODU6MzZ9LHsyMDoyNiw0OTo0OCw2MzoyNyw2NDppLDcxOnMsNzc6MjgsNzg6MjksNzk6YSw4MDpsLDgxOmMsODI6aCw4MzpnLDg0OnksODU6MzZ9LHQoQixbMiw3Nl0sezUwOjQ5fSksdCh3LFsyLDI3XSksdCh3LFsyLDI4XSksdCh3LFsyLDMzXSksdCh3LFsyLDM0XSksdCh3LFsyLDM1XSksdCh3LFsyLDM2XSksdCh3LFsyLDM3XSksdCh3LFsyLDM4XSksdCh3LFsyLDM5XSksezIwOjI2LDQ5OjUwLDYzOjI3LDY0OmksNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sdCh3LFsyLDQxXSx7ODY6c2V9KSx7NzE6cyw4NTo1Mn0sdChSLFEpLHQoTmUsWzIsODBdLHs1Mzo1M30pLHsyNTo1NCwzODo1NiwzOTpDZSw0Mzo1Nyw0NDpKLDQ1OjU1LDQ3OlsyLDUyXX0sezI4OjYwLDQzOjYxLDQ0OkosNDc6WzIsNTRdfSx7MTM6NjMsMTU6ciwxODpbMSw2Ml19LHQoQixbMiw4NF0sezU3OjY0fSksezI2OjY1LDQ3OmFlfSx0KHEsWzIsNTZdLHszMDo2N30pLHQocSxbMiw2Ml0sezM1OjY4fSksdChBZSxbMiw0OF0sezIxOjY5fSksdChCLFsyLDg4XSx7NjE6NzB9KSx7MjA6MjYsMzM6WzIsNzhdLDQ5OjcyLDUxOjcxLDYzOjI3LDY0OmksNjg6NzMsNjk6NzQsNzA6NzUsNzE6Viw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sdChvZSxbMiw5Ml0sezY1Ojc3fSksezcxOlsxLDc4XX0sdCh3LFsyLDQwXSx7ODY6c2V9KSx7MjA6MjYsNDk6ODAsNTQ6NzksNTU6WzIsODJdLDYzOjI3LDY0OmksNjg6ODEsNjk6NzQsNzA6NzUsNzE6Viw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sezI2OjgyLDQ3OmFlfSx7NDc6WzIsNTNdfSx0KEYsZSx7NjozLDQ6ODN9KSx7NDc6WzIsMjBdfSx7MjA6ODQsNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sdChOLGUsezY6Myw0Ojg1fSksezI2Ojg2LDQ3OmFlfSx7NDc6WzIsNTVdfSx0KG4sWzIsMTFdKSx0KGssWzIsNDddKSx7MjA6MjYsMzM6WzIsODZdLDQ5Ojg4LDU4Ojg3LDYzOjI3LDY0OmksNjg6ODksNjk6NzQsNzA6NzUsNzE6Viw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sdChuLFsyLDI1XSksezIwOjkwLDcxOnMsNzc6MjgsNzg6MjksNzk6YSw4MDpsLDgxOmMsODI6aCw4MzpnLDg0OnksODU6MzZ9LHQoQSxbMiw1OF0sezIwOjI2LDYzOjI3LDc3OjI4LDc4OjI5LDg1OjM2LDY5Ojc0LDcwOjc1LDMxOjkxLDQ5OjkyLDY4OjkzLDY0OmksNzE6Viw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eX0pLHQoQSxbMiw2NF0sezIwOjI2LDYzOjI3LDc3OjI4LDc4OjI5LDg1OjM2LDY5Ojc0LDcwOjc1LDM2Ojk0LDQ5Ojk1LDY4Ojk2LDY0OmksNzE6Viw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eX0pLHsyMDoyNiwyMjo5NywyMzpbMiw1MF0sNDk6OTgsNjM6MjcsNjQ6aSw2ODo5OSw2OTo3NCw3MDo3NSw3MTpWLDc3OjI4LDc4OjI5LDc5OmEsODA6bCw4MTpjLDgyOmgsODM6Zyw4NDp5LDg1OjM2fSx7MjA6MjYsMzM6WzIsOTBdLDQ5OjEwMSw2MjoxMDAsNjM6MjcsNjQ6aSw2ODoxMDIsNjk6NzQsNzA6NzUsNzE6Viw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sezMzOlsxLDEwM119LHQoQixbMiw3N10pLHszMzpbMiw3OV19LHQoWzIzLDMzLDU1LDY3LDc0XSxbMiwzMF0sezcwOjEwNCw3MTpbMSwxMDVdfSksdChsZSxbMiw5Nl0pLHQoUixRLHs3MjpjdH0pLHsyMDoyNiw0OToxMDgsNjM6MjcsNjQ6aSw2NjoxMDcsNjc6WzIsOTRdLDY4OjEwOSw2OTo3NCw3MDo3NSw3MTpWLDc3OjI4LDc4OjI5LDc5OmEsODA6bCw4MTpjLDgyOmgsODM6Zyw4NDp5LDg1OjM2fSx0KFIsWzIsNDJdKSx7NTU6WzEsMTEwXX0sdChOZSxbMiw4MV0pLHs1NTpbMiw4M119LHQobixbMiwxM10pLHszODo1NiwzOTpDZSw0Mzo1Nyw0NDpKLDQ1OjExMiw0NjoxMTEsNDc6WzIsNzRdfSx0KHEsWzIsNjhdLHs0MDoxMTN9KSx7NDc6WzIsMThdfSx0KG4sWzIsMTRdKSx7MzM6WzEsMTE0XX0sdChCLFsyLDg1XSksezMzOlsyLDg3XX0sezMzOlsxLDExNV19LHszMjoxMTYsMzM6WzIsNjBdLDczOjExNyw3NDpxdH0sdChxLFsyLDU3XSksdChBLFsyLDU5XSksezMzOlsyLDY2XSwzNzoxMTksNzM6MTIwLDc0OnF0fSx0KHEsWzIsNjNdKSx0KEEsWzIsNjVdKSx7MjM6WzEsMTIxXX0sdChBZSxbMiw0OV0pLHsyMzpbMiw1MV19LHszMzpbMSwxMjJdfSx0KEIsWzIsODldKSx7MzM6WzIsOTFdfSx0KG4sWzIsMjJdKSx0KGxlLFsyLDk3XSksezcyOmN0fSx7MjA6MjYsNDk6MTIzLDYzOjI3LDY0OmksNzE6cyw3NzoyOCw3ODoyOSw3OTphLDgwOmwsODE6Yyw4MjpoLDgzOmcsODQ6eSw4NTozNn0sezY3OlsxLDEyNF19LHQob2UsWzIsOTNdKSx7Njc6WzIsOTVdfSx0KG4sWzIsMjNdKSx7NDc6WzIsMTldfSx7NDc6WzIsNzVdfSx0KEEsWzIsNzBdLHsyMDoyNiw2MzoyNyw3NzoyOCw3ODoyOSw4NTozNiw2OTo3NCw3MDo3NSw0MToxMjUsNDk6MTI2LDY4OjEyNyw2NDppLDcxOlYsNzk6YSw4MDpsLDgxOmMsODI6aCw4MzpnLDg0Onl9KSx0KG4sWzIsMjRdKSx0KG4sWzIsMjFdKSx7MzM6WzEsMTI4XX0sezMzOlsyLDYxXX0sezcxOlsxLDEzMF0sNzU6MTI5fSx7MzM6WzEsMTMxXX0sezMzOlsyLDY3XX0sdChrLFsyLDEyXSksdChOLFsyLDI2XSksdChsZSxbMiwzMV0pLHQodyxbMiwyOV0pLHszMzpbMiw3Ml0sNDI6MTMyLDczOjEzMyw3NDpxdH0sdChxLFsyLDY5XSksdChBLFsyLDcxXSksdChGLFsyLDE1XSksezcxOlsxLDEzNV0sNzY6WzEsMTM0XX0sdChMcixbMiw5OF0pLHQoYixbMiwxNl0pLHszMzpbMSwxMzZdfSx7MzM6WzIsNzNdfSx7MzM6WzIsMzJdfSx0KExyLFsyLDk5XSksdChGLFsyLDE3XSldLGRlZmF1bHRBY3Rpb25zOns0OlsyLDFdLDU1OlsyLDUzXSw1NzpbMiwyMF0sNjE6WzIsNTVdLDczOlsyLDc5XSw4MTpbMiw4M10sODU6WzIsMThdLDg5OlsyLDg3XSw5OTpbMiw1MV0sMTAyOlsyLDkxXSwxMDk6WzIsOTVdLDExMTpbMiwxOV0sMTEyOlsyLDc1XSwxMTc6WzIsNjFdLDEyMDpbMiw2N10sMTMzOlsyLDczXSwxMzQ6WzIsMzJdfSxwYXJzZUVycm9yOmZ1bmN0aW9uKHAsbSl7aWYobS5yZWNvdmVyYWJsZSl0aGlzLnRyYWNlKHApO2Vsc2V7dmFyIGY9bmV3IEVycm9yKHApO3Rocm93IGYuaGFzaD1tLGZ9fSxwYXJzZTpmdW5jdGlvbihwKXt2YXIgbT10aGlzLGY9WzBdLGQ9W10sdj1bbnVsbF0sbz1bXSxfZT10aGlzLnRhYmxlLHU9XCJcIix1ZT0wLFllPTAsRHI9MCxXbj0yLE9yPTEsS249by5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxDPU9iamVjdC5jcmVhdGUodGhpcy5sZXhlciksU2U9e3l5Ont9fTtmb3IodmFyIFV0IGluIHRoaXMueXkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMueXksVXQpJiYoU2UueXlbVXRdPXRoaXMueXlbVXRdKTtDLnNldElucHV0KHAsU2UueXkpLFNlLnl5LmxleGVyPUMsU2UueXkucGFyc2VyPXRoaXMsdHlwZW9mIEMueXlsbG9jPlwidVwiJiYoQy55eWxsb2M9e30pO3ZhciBGdD1DLnl5bGxvYztvLnB1c2goRnQpO3ZhciBqbj1DLm9wdGlvbnMmJkMub3B0aW9ucy5yYW5nZXM7dHlwZW9mIFNlLnl5LnBhcnNlRXJyb3I9PVwiZnVuY3Rpb25cIj90aGlzLnBhcnNlRXJyb3I9U2UueXkucGFyc2VFcnJvcjp0aGlzLnBhcnNlRXJyb3I9T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLnBhcnNlRXJyb3I7ZnVuY3Rpb24gWnMoVyl7Zi5sZW5ndGg9Zi5sZW5ndGgtMipXLHYubGVuZ3RoPXYubGVuZ3RoLVcsby5sZW5ndGg9by5sZW5ndGgtV31mb3IodmFyIFFuPWZ1bmN0aW9uKCl7dmFyIFc7cmV0dXJuIFc9Qy5sZXgoKXx8T3IsdHlwZW9mIFchPVwibnVtYmVyXCImJihXPW0uc3ltYm9sc19bV118fFcpLFd9LEQsTXQsRWUsSCxlYSxHdCxMZT17fSx1dCxYLElyLGh0Ozspe2lmKEVlPWZbZi5sZW5ndGgtMV0sdGhpcy5kZWZhdWx0QWN0aW9uc1tFZV0/SD10aGlzLmRlZmF1bHRBY3Rpb25zW0VlXTooKEQ9PT1udWxsfHx0eXBlb2YgRD5cInVcIikmJihEPVFuKCkpLEg9X2VbRWVdJiZfZVtFZV1bRF0pLHR5cGVvZiBIPlwidVwifHwhSC5sZW5ndGh8fCFIWzBdKXt2YXIgWXQ9XCJcIjtodD1bXTtmb3IodXQgaW4gX2VbRWVdKXRoaXMudGVybWluYWxzX1t1dF0mJnV0PlduJiZodC5wdXNoKFwiJ1wiK3RoaXMudGVybWluYWxzX1t1dF0rXCInXCIpO0Muc2hvd1Bvc2l0aW9uP1l0PVwiUGFyc2UgZXJyb3Igb24gbGluZSBcIisodWUrMSkrYDpcbmArQy5zaG93UG9zaXRpb24oKStgXG5FeHBlY3RpbmcgYCtodC5qb2luKFwiLCBcIikrXCIsIGdvdCAnXCIrKHRoaXMudGVybWluYWxzX1tEXXx8RCkrXCInXCI6WXQ9XCJQYXJzZSBlcnJvciBvbiBsaW5lIFwiKyh1ZSsxKStcIjogVW5leHBlY3RlZCBcIisoRD09T3I/XCJlbmQgb2YgaW5wdXRcIjpcIidcIisodGhpcy50ZXJtaW5hbHNfW0RdfHxEKStcIidcIiksdGhpcy5wYXJzZUVycm9yKFl0LHt0ZXh0OkMubWF0Y2gsdG9rZW46dGhpcy50ZXJtaW5hbHNfW0RdfHxELGxpbmU6Qy55eWxpbmVubyxsb2M6RnQsZXhwZWN0ZWQ6aHR9KX1pZihIWzBdaW5zdGFuY2VvZiBBcnJheSYmSC5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoXCJQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogXCIrRWUrXCIsIHRva2VuOiBcIitEKTtzd2l0Y2goSFswXSl7Y2FzZSAxOmYucHVzaChEKSx2LnB1c2goQy55eXRleHQpLG8ucHVzaChDLnl5bGxvYyksZi5wdXNoKEhbMV0pLEQ9bnVsbCxNdD8oRD1NdCxNdD1udWxsKTooWWU9Qy55eWxlbmcsdT1DLnl5dGV4dCx1ZT1DLnl5bGluZW5vLEZ0PUMueXlsbG9jLERyPjAmJkRyLS0pO2JyZWFrO2Nhc2UgMjppZihYPXRoaXMucHJvZHVjdGlvbnNfW0hbMV1dWzFdLExlLiQ9dlt2Lmxlbmd0aC1YXSxMZS5fJD17Zmlyc3RfbGluZTpvW28ubGVuZ3RoLShYfHwxKV0uZmlyc3RfbGluZSxsYXN0X2xpbmU6b1tvLmxlbmd0aC0xXS5sYXN0X2xpbmUsZmlyc3RfY29sdW1uOm9bby5sZW5ndGgtKFh8fDEpXS5maXJzdF9jb2x1bW4sbGFzdF9jb2x1bW46b1tvLmxlbmd0aC0xXS5sYXN0X2NvbHVtbn0sam4mJihMZS5fJC5yYW5nZT1bb1tvLmxlbmd0aC0oWHx8MSldLnJhbmdlWzBdLG9bby5sZW5ndGgtMV0ucmFuZ2VbMV1dKSxHdD10aGlzLnBlcmZvcm1BY3Rpb24uYXBwbHkoTGUsW3UsWWUsdWUsU2UueXksSFsxXSx2LG9dLmNvbmNhdChLbikpLHR5cGVvZiBHdDxcInVcIilyZXR1cm4gR3Q7WCYmKGY9Zi5zbGljZSgwLC0xKlgqMiksdj12LnNsaWNlKDAsLTEqWCksbz1vLnNsaWNlKDAsLTEqWCkpLGYucHVzaCh0aGlzLnByb2R1Y3Rpb25zX1tIWzFdXVswXSksdi5wdXNoKExlLiQpLG8ucHVzaChMZS5fJCksSXI9X2VbZltmLmxlbmd0aC0yXV1bZltmLmxlbmd0aC0xXV0sZi5wdXNoKElyKTticmVhaztjYXNlIDM6cmV0dXJuITB9fXJldHVybiEwfX0sem49ZnVuY3Rpb24oKXt2YXIgY2U9e0VPRjoxLHBhcnNlRXJyb3I6ZnVuY3Rpb24obSxmKXtpZih0aGlzLnl5LnBhcnNlcil0aGlzLnl5LnBhcnNlci5wYXJzZUVycm9yKG0sZik7ZWxzZSB0aHJvdyBuZXcgRXJyb3IobSl9LHNldElucHV0OmZ1bmN0aW9uKHAsbSl7cmV0dXJuIHRoaXMueXk9bXx8dGhpcy55eXx8e30sdGhpcy5faW5wdXQ9cCx0aGlzLl9tb3JlPXRoaXMuX2JhY2t0cmFjaz10aGlzLmRvbmU9ITEsdGhpcy55eWxpbmVubz10aGlzLnl5bGVuZz0wLHRoaXMueXl0ZXh0PXRoaXMubWF0Y2hlZD10aGlzLm1hdGNoPVwiXCIsdGhpcy5jb25kaXRpb25TdGFjaz1bXCJJTklUSUFMXCJdLHRoaXMueXlsbG9jPXtmaXJzdF9saW5lOjEsZmlyc3RfY29sdW1uOjAsbGFzdF9saW5lOjEsbGFzdF9jb2x1bW46MH0sdGhpcy5vcHRpb25zLnJhbmdlcyYmKHRoaXMueXlsbG9jLnJhbmdlPVswLDBdKSx0aGlzLm9mZnNldD0wLHRoaXN9LGlucHV0OmZ1bmN0aW9uKCl7dmFyIHA9dGhpcy5faW5wdXRbMF07dGhpcy55eXRleHQrPXAsdGhpcy55eWxlbmcrKyx0aGlzLm9mZnNldCsrLHRoaXMubWF0Y2grPXAsdGhpcy5tYXRjaGVkKz1wO3ZhciBtPXAubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpO3JldHVybiBtPyh0aGlzLnl5bGluZW5vKyssdGhpcy55eWxsb2MubGFzdF9saW5lKyspOnRoaXMueXlsbG9jLmxhc3RfY29sdW1uKyssdGhpcy5vcHRpb25zLnJhbmdlcyYmdGhpcy55eWxsb2MucmFuZ2VbMV0rKyx0aGlzLl9pbnB1dD10aGlzLl9pbnB1dC5zbGljZSgxKSxwfSx1bnB1dDpmdW5jdGlvbihwKXt2YXIgbT1wLmxlbmd0aCxmPXAuc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKTt0aGlzLl9pbnB1dD1wK3RoaXMuX2lucHV0LHRoaXMueXl0ZXh0PXRoaXMueXl0ZXh0LnN1YnN0cigwLHRoaXMueXl0ZXh0Lmxlbmd0aC1tKSx0aGlzLm9mZnNldC09bTt2YXIgZD10aGlzLm1hdGNoLnNwbGl0KC8oPzpcXHJcXG4/fFxcbikvZyk7dGhpcy5tYXRjaD10aGlzLm1hdGNoLnN1YnN0cigwLHRoaXMubWF0Y2gubGVuZ3RoLTEpLHRoaXMubWF0Y2hlZD10aGlzLm1hdGNoZWQuc3Vic3RyKDAsdGhpcy5tYXRjaGVkLmxlbmd0aC0xKSxmLmxlbmd0aC0xJiYodGhpcy55eWxpbmVuby09Zi5sZW5ndGgtMSk7dmFyIHY9dGhpcy55eWxsb2MucmFuZ2U7cmV0dXJuIHRoaXMueXlsbG9jPXtmaXJzdF9saW5lOnRoaXMueXlsbG9jLmZpcnN0X2xpbmUsbGFzdF9saW5lOnRoaXMueXlsaW5lbm8rMSxmaXJzdF9jb2x1bW46dGhpcy55eWxsb2MuZmlyc3RfY29sdW1uLGxhc3RfY29sdW1uOmY/KGYubGVuZ3RoPT09ZC5sZW5ndGg/dGhpcy55eWxsb2MuZmlyc3RfY29sdW1uOjApK2RbZC5sZW5ndGgtZi5sZW5ndGhdLmxlbmd0aC1mWzBdLmxlbmd0aDp0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4tbX0sdGhpcy5vcHRpb25zLnJhbmdlcyYmKHRoaXMueXlsbG9jLnJhbmdlPVt2WzBdLHZbMF0rdGhpcy55eWxlbmctbV0pLHRoaXMueXlsZW5nPXRoaXMueXl0ZXh0Lmxlbmd0aCx0aGlzfSxtb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vcmU9ITAsdGhpc30scmVqZWN0OmZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlcil0aGlzLl9iYWNrdHJhY2s9ITA7ZWxzZSByZXR1cm4gdGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiKyh0aGlzLnl5bGluZW5vKzEpK2AuIFlvdSBjYW4gb25seSBpbnZva2UgcmVqZWN0KCkgaW4gdGhlIGxleGVyIHdoZW4gdGhlIGxleGVyIGlzIG9mIHRoZSBiYWNrdHJhY2tpbmcgcGVyc3Vhc2lvbiAob3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIgPSB0cnVlKS5cbmArdGhpcy5zaG93UG9zaXRpb24oKSx7dGV4dDpcIlwiLHRva2VuOm51bGwsbGluZTp0aGlzLnl5bGluZW5vfSk7cmV0dXJuIHRoaXN9LGxlc3M6ZnVuY3Rpb24ocCl7dGhpcy51bnB1dCh0aGlzLm1hdGNoLnNsaWNlKHApKX0scGFzdElucHV0OmZ1bmN0aW9uKCl7dmFyIHA9dGhpcy5tYXRjaGVkLnN1YnN0cigwLHRoaXMubWF0Y2hlZC5sZW5ndGgtdGhpcy5tYXRjaC5sZW5ndGgpO3JldHVybihwLmxlbmd0aD4yMD9cIi4uLlwiOlwiXCIpK3Auc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csXCJcIil9LHVwY29taW5nSW5wdXQ6ZnVuY3Rpb24oKXt2YXIgcD10aGlzLm1hdGNoO3JldHVybiBwLmxlbmd0aDwyMCYmKHArPXRoaXMuX2lucHV0LnN1YnN0cigwLDIwLXAubGVuZ3RoKSksKHAuc3Vic3RyKDAsMjApKyhwLmxlbmd0aD4yMD9cIi4uLlwiOlwiXCIpKS5yZXBsYWNlKC9cXG4vZyxcIlwiKX0sc2hvd1Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHA9dGhpcy5wYXN0SW5wdXQoKSxtPW5ldyBBcnJheShwLmxlbmd0aCsxKS5qb2luKFwiLVwiKTtyZXR1cm4gcCt0aGlzLnVwY29taW5nSW5wdXQoKStgXG5gK20rXCJeXCJ9LHRlc3RfbWF0Y2g6ZnVuY3Rpb24ocCxtKXt2YXIgZixkLHY7aWYodGhpcy5vcHRpb25zLmJhY2t0cmFja19sZXhlciYmKHY9e3l5bGluZW5vOnRoaXMueXlsaW5lbm8seXlsbG9jOntmaXJzdF9saW5lOnRoaXMueXlsbG9jLmZpcnN0X2xpbmUsbGFzdF9saW5lOnRoaXMubGFzdF9saW5lLGZpcnN0X2NvbHVtbjp0aGlzLnl5bGxvYy5maXJzdF9jb2x1bW4sbGFzdF9jb2x1bW46dGhpcy55eWxsb2MubGFzdF9jb2x1bW59LHl5dGV4dDp0aGlzLnl5dGV4dCxtYXRjaDp0aGlzLm1hdGNoLG1hdGNoZXM6dGhpcy5tYXRjaGVzLG1hdGNoZWQ6dGhpcy5tYXRjaGVkLHl5bGVuZzp0aGlzLnl5bGVuZyxvZmZzZXQ6dGhpcy5vZmZzZXQsX21vcmU6dGhpcy5fbW9yZSxfaW5wdXQ6dGhpcy5faW5wdXQseXk6dGhpcy55eSxjb25kaXRpb25TdGFjazp0aGlzLmNvbmRpdGlvblN0YWNrLnNsaWNlKDApLGRvbmU6dGhpcy5kb25lfSx0aGlzLm9wdGlvbnMucmFuZ2VzJiYodi55eWxsb2MucmFuZ2U9dGhpcy55eWxsb2MucmFuZ2Uuc2xpY2UoMCkpKSxkPXBbMF0ubWF0Y2goLyg/Olxcclxcbj98XFxuKS4qL2cpLGQmJih0aGlzLnl5bGluZW5vKz1kLmxlbmd0aCksdGhpcy55eWxsb2M9e2ZpcnN0X2xpbmU6dGhpcy55eWxsb2MubGFzdF9saW5lLGxhc3RfbGluZTp0aGlzLnl5bGluZW5vKzEsZmlyc3RfY29sdW1uOnRoaXMueXlsbG9jLmxhc3RfY29sdW1uLGxhc3RfY29sdW1uOmQ/ZFtkLmxlbmd0aC0xXS5sZW5ndGgtZFtkLmxlbmd0aC0xXS5tYXRjaCgvXFxyP1xcbj8vKVswXS5sZW5ndGg6dGhpcy55eWxsb2MubGFzdF9jb2x1bW4rcFswXS5sZW5ndGh9LHRoaXMueXl0ZXh0Kz1wWzBdLHRoaXMubWF0Y2grPXBbMF0sdGhpcy5tYXRjaGVzPXAsdGhpcy55eWxlbmc9dGhpcy55eXRleHQubGVuZ3RoLHRoaXMub3B0aW9ucy5yYW5nZXMmJih0aGlzLnl5bGxvYy5yYW5nZT1bdGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQrPXRoaXMueXlsZW5nXSksdGhpcy5fbW9yZT0hMSx0aGlzLl9iYWNrdHJhY2s9ITEsdGhpcy5faW5wdXQ9dGhpcy5faW5wdXQuc2xpY2UocFswXS5sZW5ndGgpLHRoaXMubWF0Y2hlZCs9cFswXSxmPXRoaXMucGVyZm9ybUFjdGlvbi5jYWxsKHRoaXMsdGhpcy55eSx0aGlzLG0sdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xXSksdGhpcy5kb25lJiZ0aGlzLl9pbnB1dCYmKHRoaXMuZG9uZT0hMSksZilyZXR1cm4gZjtpZih0aGlzLl9iYWNrdHJhY2spe2Zvcih2YXIgbyBpbiB2KXRoaXNbb109dltvXTtyZXR1cm4hMX1yZXR1cm4hMX0sbmV4dDpmdW5jdGlvbigpe2lmKHRoaXMuZG9uZSlyZXR1cm4gdGhpcy5FT0Y7dGhpcy5faW5wdXR8fCh0aGlzLmRvbmU9ITApO3ZhciBwLG0sZixkO3RoaXMuX21vcmV8fCh0aGlzLnl5dGV4dD1cIlwiLHRoaXMubWF0Y2g9XCJcIik7Zm9yKHZhciB2PXRoaXMuX2N1cnJlbnRSdWxlcygpLG89MDtvPHYubGVuZ3RoO28rKylpZihmPXRoaXMuX2lucHV0Lm1hdGNoKHRoaXMucnVsZXNbdltvXV0pLGYmJighbXx8ZlswXS5sZW5ndGg+bVswXS5sZW5ndGgpKXtpZihtPWYsZD1vLHRoaXMub3B0aW9ucy5iYWNrdHJhY2tfbGV4ZXIpe2lmKHA9dGhpcy50ZXN0X21hdGNoKGYsdltvXSkscCE9PSExKXJldHVybiBwO2lmKHRoaXMuX2JhY2t0cmFjayl7bT0hMTtjb250aW51ZX1lbHNlIHJldHVybiExfWVsc2UgaWYoIXRoaXMub3B0aW9ucy5mbGV4KWJyZWFrfXJldHVybiBtPyhwPXRoaXMudGVzdF9tYXRjaChtLHZbZF0pLHAhPT0hMT9wOiExKTp0aGlzLl9pbnB1dD09PVwiXCI/dGhpcy5FT0Y6dGhpcy5wYXJzZUVycm9yKFwiTGV4aWNhbCBlcnJvciBvbiBsaW5lIFwiKyh0aGlzLnl5bGluZW5vKzEpK2AuIFVucmVjb2duaXplZCB0ZXh0LlxuYCt0aGlzLnNob3dQb3NpdGlvbigpLHt0ZXh0OlwiXCIsdG9rZW46bnVsbCxsaW5lOnRoaXMueXlsaW5lbm99KX0sbGV4OmZ1bmN0aW9uKCl7dmFyIG09dGhpcy5uZXh0KCk7cmV0dXJuIG18fHRoaXMubGV4KCl9LGJlZ2luOmZ1bmN0aW9uKG0pe3RoaXMuY29uZGl0aW9uU3RhY2sucHVzaChtKX0scG9wU3RhdGU6ZnVuY3Rpb24oKXt2YXIgbT10aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xO3JldHVybiBtPjA/dGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTp0aGlzLmNvbmRpdGlvblN0YWNrWzBdfSxfY3VycmVudFJ1bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoJiZ0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTFdP3RoaXMuY29uZGl0aW9uc1t0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTFdXS5ydWxlczp0aGlzLmNvbmRpdGlvbnMuSU5JVElBTC5ydWxlc30sdG9wU3RhdGU6ZnVuY3Rpb24obSl7cmV0dXJuIG09dGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGgtMS1NYXRoLmFicyhtfHwwKSxtPj0wP3RoaXMuY29uZGl0aW9uU3RhY2tbbV06XCJJTklUSUFMXCJ9LHB1c2hTdGF0ZTpmdW5jdGlvbihtKXt0aGlzLmJlZ2luKG0pfSxzdGF0ZVN0YWNrU2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aH0sb3B0aW9uczp7fSxwZXJmb3JtQWN0aW9uOmZ1bmN0aW9uKG0sZixkLHYpe2Z1bmN0aW9uIG8odSx1ZSl7cmV0dXJuIGYueXl0ZXh0PWYueXl0ZXh0LnN1YnN0cmluZyh1LGYueXlsZW5nLXVlK3UpfXZhciBfZT12O3N3aXRjaChkKXtjYXNlIDA6aWYoZi55eXRleHQuc2xpY2UoLTIpPT09XCJcXFxcXFxcXFwiPyhvKDAsMSksdGhpcy5iZWdpbihcIm11XCIpKTpmLnl5dGV4dC5zbGljZSgtMSk9PT1cIlxcXFxcIj8obygwLDEpLHRoaXMuYmVnaW4oXCJlbXVcIikpOnRoaXMuYmVnaW4oXCJtdVwiKSxmLnl5dGV4dClyZXR1cm4gMTU7YnJlYWs7Y2FzZSAxOnJldHVybiAxNTtjYXNlIDI6cmV0dXJuIHRoaXMucG9wU3RhdGUoKSwxNTticmVhaztjYXNlIDM6cmV0dXJuIHRoaXMuYmVnaW4oXCJyYXdcIiksMTU7YnJlYWs7Y2FzZSA0OnJldHVybiB0aGlzLnBvcFN0YXRlKCksdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xXT09PVwicmF3XCI/MTU6KG8oNSw5KSwxOCk7Y2FzZSA1OnJldHVybiAxNTtjYXNlIDY6cmV0dXJuIHRoaXMucG9wU3RhdGUoKSwxNDticmVhaztjYXNlIDc6cmV0dXJuIDY0O2Nhc2UgODpyZXR1cm4gNjc7Y2FzZSA5OnJldHVybiAxOTtjYXNlIDEwOnJldHVybiB0aGlzLnBvcFN0YXRlKCksdGhpcy5iZWdpbihcInJhd1wiKSwyMzticmVhaztjYXNlIDExOnJldHVybiA1NjtjYXNlIDEyOnJldHVybiA2MDtjYXNlIDEzOnJldHVybiAyOTtjYXNlIDE0OnJldHVybiA0NztjYXNlIDE1OnJldHVybiB0aGlzLnBvcFN0YXRlKCksNDQ7YnJlYWs7Y2FzZSAxNjpyZXR1cm4gdGhpcy5wb3BTdGF0ZSgpLDQ0O2JyZWFrO2Nhc2UgMTc6cmV0dXJuIDM0O2Nhc2UgMTg6cmV0dXJuIDM5O2Nhc2UgMTk6cmV0dXJuIDUyO2Nhc2UgMjA6cmV0dXJuIDQ4O2Nhc2UgMjE6dGhpcy51bnB1dChmLnl5dGV4dCksdGhpcy5wb3BTdGF0ZSgpLHRoaXMuYmVnaW4oXCJjb21cIik7YnJlYWs7Y2FzZSAyMjpyZXR1cm4gdGhpcy5wb3BTdGF0ZSgpLDE0O2JyZWFrO2Nhc2UgMjM6cmV0dXJuIDQ4O2Nhc2UgMjQ6cmV0dXJuIDcyO2Nhc2UgMjU6cmV0dXJuIDcxO2Nhc2UgMjY6cmV0dXJuIDcxO2Nhc2UgMjc6cmV0dXJuIDg2O2Nhc2UgMjg6YnJlYWs7Y2FzZSAyOTpyZXR1cm4gdGhpcy5wb3BTdGF0ZSgpLDU1O2JyZWFrO2Nhc2UgMzA6cmV0dXJuIHRoaXMucG9wU3RhdGUoKSwzMzticmVhaztjYXNlIDMxOnJldHVybiBmLnl5dGV4dD1vKDEsMikucmVwbGFjZSgvXFxcXFwiL2csJ1wiJyksNzk7YnJlYWs7Y2FzZSAzMjpyZXR1cm4gZi55eXRleHQ9bygxLDIpLnJlcGxhY2UoL1xcXFwnL2csXCInXCIpLDc5O2JyZWFrO2Nhc2UgMzM6cmV0dXJuIDg0O2Nhc2UgMzQ6cmV0dXJuIDgxO2Nhc2UgMzU6cmV0dXJuIDgxO2Nhc2UgMzY6cmV0dXJuIDgyO2Nhc2UgMzc6cmV0dXJuIDgzO2Nhc2UgMzg6cmV0dXJuIDgwO2Nhc2UgMzk6cmV0dXJuIDc0O2Nhc2UgNDA6cmV0dXJuIDc2O2Nhc2UgNDE6cmV0dXJuIDcxO2Nhc2UgNDI6cmV0dXJuIGYueXl0ZXh0PWYueXl0ZXh0LnJlcGxhY2UoL1xcXFwoW1xcXFxcXF1dKS9nLFwiJDFcIiksNzE7YnJlYWs7Y2FzZSA0MzpyZXR1cm5cIklOVkFMSURcIjtjYXNlIDQ0OnJldHVybiA1fX0scnVsZXM6Wy9eKD86W15cXHgwMF0qPyg/PShcXHtcXHspKSkvLC9eKD86W15cXHgwMF0rKS8sL14oPzpbXlxceDAwXXsyLH0/KD89KFxce1xce3xcXFxcXFx7XFx7fFxcXFxcXFxcXFx7XFx7fCQpKSkvLC9eKD86XFx7XFx7XFx7XFx7KD89W14vXSkpLywvXig/Olxce1xce1xce1xce1xcL1teXFxzIVwiIyUtLFxcLlxcLzstPkBcXFstXFxeYFxcey1+XSsoPz1bPX1cXHNcXC8uXSlcXH1cXH1cXH1cXH0pLywvXig/OlteXFx4MDBdKz8oPz0oXFx7XFx7XFx7XFx7KSkpLywvXig/OltcXHNcXFNdKj8tLSh+KT9cXH1cXH0pLywvXig/OlxcKCkvLC9eKD86XFwpKS8sL14oPzpcXHtcXHtcXHtcXHspLywvXig/OlxcfVxcfVxcfVxcfSkvLC9eKD86XFx7XFx7KH4pPz4pLywvXig/Olxce1xceyh+KT8jPikvLC9eKD86XFx7XFx7KH4pPyNcXCo/KS8sL14oPzpcXHtcXHsofik/XFwvKS8sL14oPzpcXHtcXHsofik/XFxeXFxzKih+KT9cXH1cXH0pLywvXig/Olxce1xceyh+KT9cXHMqZWxzZVxccyoofik/XFx9XFx9KS8sL14oPzpcXHtcXHsofik/XFxeKS8sL14oPzpcXHtcXHsofik/XFxzKmVsc2VcXGIpLywvXig/Olxce1xceyh+KT9cXHspLywvXig/Olxce1xceyh+KT8mKS8sL14oPzpcXHtcXHsofik/IS0tKS8sL14oPzpcXHtcXHsofik/IVtcXHNcXFNdKj9cXH1cXH0pLywvXig/Olxce1xceyh+KT9cXCo/KS8sL14oPzo9KS8sL14oPzpcXC5cXC4pLywvXig/OlxcLig/PShbPX59XFxzXFwvLil8XSkpKS8sL14oPzpbXFwvLl0pLywvXig/OlxccyspLywvXig/OlxcfSh+KT9cXH1cXH0pLywvXig/Oih+KT9cXH1cXH0pLywvXig/OlwiKFxcXFxbXCJdfFteXCJdKSpcIikvLC9eKD86JyhcXFxcWyddfFteJ10pKicpLywvXig/OkApLywvXig/OnRydWUoPz0oW359XFxzKV0pKSkvLC9eKD86ZmFsc2UoPz0oW359XFxzKV0pKSkvLC9eKD86dW5kZWZpbmVkKD89KFt+fVxccyldKSkpLywvXig/Om51bGwoPz0oW359XFxzKV0pKSkvLC9eKD86LT9bMC05XSsoPzpcXC5bMC05XSspPyg/PShbfn1cXHMpXSkpKS8sL14oPzphc1xccytcXHwpLywvXig/OlxcfCkvLC9eKD86KFteXFxzIVwiIyUtLFxcLlxcLzstPkBcXFstXFxeYFxcey1+XSsoPz0oWz1+fVxcc1xcLy4pfF0pKSkpLywvXig/OlxcWyhcXFxcXFxdfFteXFxdXSkqXFxdKS8sL14oPzouKS8sL14oPzokKS9dLGNvbmRpdGlvbnM6e211OntydWxlczpbNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDRdLGluY2x1c2l2ZTohMX0sZW11OntydWxlczpbMl0saW5jbHVzaXZlOiExfSxjb206e3J1bGVzOls2XSxpbmNsdXNpdmU6ITF9LHJhdzp7cnVsZXM6WzMsNCw1XSxpbmNsdXNpdmU6ITF9LElOSVRJQUw6e3J1bGVzOlswLDEsNDRdLGluY2x1c2l2ZTohMH19fTtyZXR1cm4gY2V9KCk7VnQubGV4ZXI9em47ZnVuY3Rpb24gSHQoKXt0aGlzLnl5PXt9fXJldHVybiBIdC5wcm90b3R5cGU9VnQsVnQuUGFyc2VyPUh0LG5ldyBIdH0oKSxFdD1ZaTt2YXIgc3I9W1wiZGVzY3JpcHRpb25cIixcImZpbGVOYW1lXCIsXCJsaW5lTnVtYmVyXCIsXCJlbmRMaW5lTnVtYmVyXCIsXCJtZXNzYWdlXCIsXCJuYW1lXCIsXCJudW1iZXJcIixcInN0YWNrXCJdO2Z1bmN0aW9uIGFyKHQsZSl7dmFyIHI9ZSYmZS5sb2MsbixpLHMsYTtyJiYobj1yLnN0YXJ0LmxpbmUsaT1yLmVuZC5saW5lLHM9ci5zdGFydC5jb2x1bW4sYT1yLmVuZC5jb2x1bW4sdCs9XCIgLSBcIituK1wiOlwiK3MpO2Zvcih2YXIgbD1FcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3IuY2FsbCh0aGlzLHQpLGM9MDtjPHNyLmxlbmd0aDtjKyspdGhpc1tzcltjXV09bFtzcltjXV07RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsYXIpO3RyeXtyJiYodGhpcy5saW5lTnVtYmVyPW4sdGhpcy5lbmRMaW5lTnVtYmVyPWksT2JqZWN0LmRlZmluZVByb3BlcnR5PyhPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImNvbHVtblwiLHt2YWx1ZTpzLGVudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImVuZENvbHVtblwiLHt2YWx1ZTphLGVudW1lcmFibGU6ITB9KSk6KHRoaXMuY29sdW1uPXMsdGhpcy5lbmRDb2x1bW49YSkpfWNhdGNoe319YXIucHJvdG90eXBlPW5ldyBFcnJvcjt2YXIgZmU9YXI7ZnVuY3Rpb24gVHQoKXt0aGlzLnBhcmVudHM9W119VHQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpUdCxtdXRhdGluZzohMSxhY2NlcHRLZXk6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmFjY2VwdCh0W2VdKTtpZih0aGlzLm11dGF0aW5nKXtpZihyJiYhVHQucHJvdG90eXBlW3IudHlwZV0pdGhyb3cgbmV3IGZlKCdVbmV4cGVjdGVkIG5vZGUgdHlwZSBcIicrci50eXBlKydcIiBmb3VuZCB3aGVuIGFjY2VwdGluZyAnK2UrXCIgb24gXCIrdC50eXBlKTt0W2VdPXJ9fSxhY2NlcHRSZXF1aXJlZDpmdW5jdGlvbih0LGUpe2lmKHRoaXMuYWNjZXB0S2V5KHQsZSksIXRbZV0pdGhyb3cgbmV3IGZlKHQudHlwZStcIiByZXF1aXJlcyBcIitlKX0sYWNjZXB0QXJyYXk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7ZSsrKXRoaXMuYWNjZXB0S2V5KHQsZSksdFtlXXx8KHQuc3BsaWNlKGUsMSksZS0tLHItLSl9LGFjY2VwdDpmdW5jdGlvbih0KXtpZih0KXtpZighdGhpc1t0LnR5cGVdKXRocm93IG5ldyBmZShcIlVua25vd24gdHlwZTogXCIrdC50eXBlLHQpO3RoaXMuY3VycmVudCYmdGhpcy5wYXJlbnRzLnVuc2hpZnQodGhpcy5jdXJyZW50KSx0aGlzLmN1cnJlbnQ9dDt2YXIgZT10aGlzW3QudHlwZV0odCk7aWYodGhpcy5jdXJyZW50PXRoaXMucGFyZW50cy5zaGlmdCgpLCF0aGlzLm11dGF0aW5nfHxlKXJldHVybiBlO2lmKGUhPT0hMSlyZXR1cm4gdH19LFByb2dyYW06ZnVuY3Rpb24odCl7dGhpcy5hY2NlcHRBcnJheSh0LmJvZHkpfSxNdXN0YWNoZVN0YXRlbWVudDp2dCxEZWNvcmF0b3I6dnQsQmxvY2tTdGF0ZW1lbnQ6eW4sRGVjb3JhdG9yQmxvY2s6eW4sUGFydGlhbFN0YXRlbWVudDpTbixQYXJ0aWFsQmxvY2tTdGF0ZW1lbnQ6ZnVuY3Rpb24odCl7U24uY2FsbCh0aGlzLHQpLHRoaXMuYWNjZXB0S2V5KHQsXCJwcm9ncmFtXCIpfSxDb250ZW50U3RhdGVtZW50OmZ1bmN0aW9uKCl7fSxDb21tZW50U3RhdGVtZW50OmZ1bmN0aW9uKCl7fSxTdWJFeHByZXNzaW9uOnZ0LFBhdGhFeHByZXNzaW9uOmZ1bmN0aW9uKCl7fSxTdHJpbmdMaXRlcmFsOmZ1bmN0aW9uKCl7fSxOdW1iZXJMaXRlcmFsOmZ1bmN0aW9uKCl7fSxCb29sZWFuTGl0ZXJhbDpmdW5jdGlvbigpe30sVW5kZWZpbmVkTGl0ZXJhbDpmdW5jdGlvbigpe30sTnVsbExpdGVyYWw6ZnVuY3Rpb24oKXt9LEhhc2g6ZnVuY3Rpb24odCl7dGhpcy5hY2NlcHRBcnJheSh0LnBhaXJzKX0sSGFzaFBhaXI6ZnVuY3Rpb24odCl7dGhpcy5hY2NlcHRSZXF1aXJlZCh0LFwidmFsdWVcIil9fTtmdW5jdGlvbiB2dCh0KXt0aGlzLmFjY2VwdFJlcXVpcmVkKHQsXCJwYXRoXCIpLHRoaXMuYWNjZXB0QXJyYXkodC5wYXJhbXMpLHRoaXMuYWNjZXB0S2V5KHQsXCJoYXNoXCIpfWZ1bmN0aW9uIHluKHQpe3Z0LmNhbGwodGhpcyx0KSx0aGlzLmFjY2VwdEtleSh0LFwicHJvZ3JhbVwiKSx0aGlzLmFjY2VwdEtleSh0LFwiaW52ZXJzZVwiKX1mdW5jdGlvbiBTbih0KXt0aGlzLmFjY2VwdFJlcXVpcmVkKHQsXCJuYW1lXCIpLHRoaXMuYWNjZXB0QXJyYXkodC5wYXJhbXMpLHRoaXMuYWNjZXB0S2V5KHQsXCJoYXNoXCIpfXZhciBFbj1UdDtmdW5jdGlvbiBLKHQpe3Q9PT12b2lkIDAmJih0PXt9KSx0aGlzLm9wdGlvbnM9dH1LLnByb3RvdHlwZT1uZXcgRW47Sy5wcm90b3R5cGUuUHJvZ3JhbT1mdW5jdGlvbih0KXt2YXIgZT0hdGhpcy5vcHRpb25zLmlnbm9yZVN0YW5kYWxvbmUscj0hdGhpcy5pc1Jvb3RTZWVuO3RoaXMuaXNSb290U2Vlbj0hMDtmb3IodmFyIG49dC5ib2R5LGk9MCxzPW4ubGVuZ3RoO2k8cztpKyspe3ZhciBhPW5baV0sbD10aGlzLmFjY2VwdChhKTtpZihsKXt2YXIgYz1vcihuLGksciksaD1scihuLGksciksZz1sLm9wZW5TdGFuZGFsb25lJiZjLHk9bC5jbG9zZVN0YW5kYWxvbmUmJmgsRj1sLmlubGluZVN0YW5kYWxvbmUmJmMmJmg7bC5jbG9zZSYma2UobixpLCEwKSxsLm9wZW4mJmRlKG4saSwhMCksZSYmRiYmKGtlKG4saSksZGUobixpKSYmYS50eXBlPT09XCJQYXJ0aWFsU3RhdGVtZW50XCImJihhLmluZGVudD0vKFsgXFx0XSskKS8uZXhlYyhuW2ktMV0ub3JpZ2luYWwpWzFdKSksZSYmZyYmKGtlKChhLnByb2dyYW18fGEuaW52ZXJzZSkuYm9keSksZGUobixpKSksZSYmeSYmKGtlKG4saSksZGUoKGEuaW52ZXJzZXx8YS5wcm9ncmFtKS5ib2R5KSl9fXJldHVybiB0fTtLLnByb3RvdHlwZS5CbG9ja1N0YXRlbWVudD1LLnByb3RvdHlwZS5EZWNvcmF0b3JCbG9jaz1LLnByb3RvdHlwZS5QYXJ0aWFsQmxvY2tTdGF0ZW1lbnQ9ZnVuY3Rpb24odCl7dGhpcy5hY2NlcHQodC5wcm9ncmFtKSx0aGlzLmFjY2VwdCh0LmludmVyc2UpO3ZhciBlPXQucHJvZ3JhbXx8dC5pbnZlcnNlLHI9dC5wcm9ncmFtJiZ0LmludmVyc2Usbj1yLGk9cjtpZihyJiZyLmNoYWluZWQpZm9yKG49ci5ib2R5WzBdLnByb2dyYW07aS5jaGFpbmVkOylpPWkuYm9keVtpLmJvZHkubGVuZ3RoLTFdLnByb2dyYW07dmFyIHM9e29wZW46dC5vcGVuU3RyaXAub3BlbixjbG9zZTp0LmNsb3NlU3RyaXAuY2xvc2Usb3BlblN0YW5kYWxvbmU6bHIoZS5ib2R5KSxjbG9zZVN0YW5kYWxvbmU6b3IoKG58fGUpLmJvZHkpfTtpZih0Lm9wZW5TdHJpcC5jbG9zZSYma2UoZS5ib2R5LG51bGwsITApLHIpe3ZhciBhPXQuaW52ZXJzZVN0cmlwO2Eub3BlbiYmZGUoZS5ib2R5LG51bGwsITApLGEuY2xvc2UmJmtlKG4uYm9keSxudWxsLCEwKSx0LmNsb3NlU3RyaXAub3BlbiYmZGUoaS5ib2R5LG51bGwsITApLCF0aGlzLm9wdGlvbnMuaWdub3JlU3RhbmRhbG9uZSYmb3IoZS5ib2R5KSYmbHIobi5ib2R5KSYmKGRlKGUuYm9keSksa2Uobi5ib2R5KSl9ZWxzZSB0LmNsb3NlU3RyaXAub3BlbiYmZGUoZS5ib2R5LG51bGwsITApO3JldHVybiBzfTtLLnByb3RvdHlwZS5EZWNvcmF0b3I9Sy5wcm90b3R5cGUuTXVzdGFjaGVTdGF0ZW1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RyaXB9O0sucHJvdG90eXBlLlBhcnRpYWxTdGF0ZW1lbnQ9Sy5wcm90b3R5cGUuQ29tbWVudFN0YXRlbWVudD1mdW5jdGlvbih0KXt2YXIgZT10LnN0cmlwfHx7fTtyZXR1cm57aW5saW5lU3RhbmRhbG9uZTohMCxvcGVuOmUub3BlbixjbG9zZTplLmNsb3NlfX07ZnVuY3Rpb24gb3IodCxlLHIpe2U9PT12b2lkIDAmJihlPXQubGVuZ3RoKTt2YXIgbj10W2UtMV0saT10W2UtMl07aWYoIW4pcmV0dXJuIHI7aWYobi50eXBlPT09XCJDb250ZW50U3RhdGVtZW50XCIpcmV0dXJuKGl8fCFyPy9cXHI/XFxuXFxzKj8kLzovKF58XFxyP1xcbilcXHMqPyQvKS50ZXN0KG4ub3JpZ2luYWwpfWZ1bmN0aW9uIGxyKHQsZSxyKXtlPT09dm9pZCAwJiYoZT0tMSk7dmFyIG49dFtlKzFdLGk9dFtlKzJdO2lmKCFuKXJldHVybiByO2lmKG4udHlwZT09PVwiQ29udGVudFN0YXRlbWVudFwiKXJldHVybihpfHwhcj8vXlxccyo/XFxyP1xcbi86L15cXHMqPyhcXHI/XFxufCQpLykudGVzdChuLm9yaWdpbmFsKX1mdW5jdGlvbiBrZSh0LGUscil7dmFyIG49dFtlPT1udWxsPzA6ZSsxXTtpZighKCFufHxuLnR5cGUhPT1cIkNvbnRlbnRTdGF0ZW1lbnRcInx8IXImJm4ucmlnaHRTdHJpcHBlZCkpe3ZhciBpPW4udmFsdWU7bi52YWx1ZT1uLnZhbHVlLnJlcGxhY2Uocj8vXlxccysvOi9eWyBcXHRdKlxccj9cXG4/LyxcIlwiKSxuLnJpZ2h0U3RyaXBwZWQ9bi52YWx1ZSE9PWl9fWZ1bmN0aW9uIGRlKHQsZSxyKXt2YXIgbj10W2U9PW51bGw/dC5sZW5ndGgtMTplLTFdO2lmKCEoIW58fG4udHlwZSE9PVwiQ29udGVudFN0YXRlbWVudFwifHwhciYmbi5sZWZ0U3RyaXBwZWQpKXt2YXIgaT1uLnZhbHVlO3JldHVybiBuLnZhbHVlPW4udmFsdWUucmVwbGFjZShyPy9cXHMrJC86L1sgXFx0XSskLyxcIlwiKSxuLmxlZnRTdHJpcHBlZD1uLnZhbHVlIT09aSxuLmxlZnRTdHJpcHBlZH19dmFyIFRuPUs7dmFyIHN0PXt9O3p0KHN0LHtTb3VyY2VMb2NhdGlvbjooKT0+dXIsaWQ6KCk9PnppLHByZXBhcmVCbG9jazooKT0+WGkscHJlcGFyZU11c3RhY2hlOigpPT5RaSxwcmVwYXJlUGFydGlhbEJsb2NrOigpPT5aaSxwcmVwYXJlUGF0aDooKT0+amkscHJlcGFyZVByb2dyYW06KCk9PiRpLHByZXBhcmVSYXdCbG9jazooKT0+Smksc3RyaXBDb21tZW50OigpPT5LaSxzdHJpcEZsYWdzOigpPT5XaX0pO2Z1bmN0aW9uIGNyKHQsZSl7aWYoZT1lLnBhdGg/ZS5wYXRoLm9yaWdpbmFsOmUsdC5wYXRoLm9yaWdpbmFsIT09ZSl7dmFyIHI9e2xvYzp0LnBhdGgubG9jfTt0aHJvdyBuZXcgZmUodC5wYXRoLm9yaWdpbmFsK1wiIGRvZXNuJ3QgbWF0Y2ggXCIrZSxyKX19ZnVuY3Rpb24gdXIodCxlKXt0aGlzLnNvdXJjZT10LHRoaXMuc3RhcnQ9e2xpbmU6ZS5maXJzdF9saW5lLGNvbHVtbjplLmZpcnN0X2NvbHVtbn0sdGhpcy5lbmQ9e2xpbmU6ZS5sYXN0X2xpbmUsY29sdW1uOmUubGFzdF9jb2x1bW59fWZ1bmN0aW9uIHppKHQpe3JldHVybi9eXFxbLipcXF0kLy50ZXN0KHQpP3Quc3Vic3RyaW5nKDEsdC5sZW5ndGgtMSk6dH1mdW5jdGlvbiBXaSh0LGUpe3JldHVybntvcGVuOnQuY2hhckF0KDIpPT09XCJ+XCIsY2xvc2U6ZS5jaGFyQXQoZS5sZW5ndGgtMyk9PT1cIn5cIn19ZnVuY3Rpb24gS2kodCl7cmV0dXJuIHQucmVwbGFjZSgvXlxce1xce34/IS0/LT8vLFwiXCIpLnJlcGxhY2UoLy0/LT9+P1xcfVxcfSQvLFwiXCIpfWZ1bmN0aW9uIGppKHQsZSxyKXtyPXRoaXMubG9jSW5mbyhyKTtmb3IodmFyIG49dD9cIkBcIjpcIlwiLGk9W10scz0wLGE9MCxsPWUubGVuZ3RoO2E8bDthKyspe3ZhciBjPWVbYV0ucGFydCxoPWVbYV0ub3JpZ2luYWwhPT1jO2lmKG4rPShlW2FdLnNlcGFyYXRvcnx8XCJcIikrYywhaCYmKGM9PT1cIi4uXCJ8fGM9PT1cIi5cInx8Yz09PVwidGhpc1wiKSl7aWYoaS5sZW5ndGg+MCl0aHJvdyBuZXcgZmUoXCJJbnZhbGlkIHBhdGg6IFwiK24se2xvYzpyfSk7Yz09PVwiLi5cIiYmcysrfWVsc2UgaS5wdXNoKGMpfXJldHVybnt0eXBlOlwiUGF0aEV4cHJlc3Npb25cIixkYXRhOnQsZGVwdGg6cyxwYXJ0czppLG9yaWdpbmFsOm4sbG9jOnJ9fWZ1bmN0aW9uIFFpKHQsZSxyLG4saSxzKXt2YXIgYT1uLmNoYXJBdCgzKXx8bi5jaGFyQXQoMiksbD1hIT09XCJ7XCImJmEhPT1cIiZcIixjPS9cXCovLnRlc3Qobik7cmV0dXJue3R5cGU6Yz9cIkRlY29yYXRvclwiOlwiTXVzdGFjaGVTdGF0ZW1lbnRcIixwYXRoOnQscGFyYW1zOmUsaGFzaDpyLGVzY2FwZWQ6bCxzdHJpcDppLGxvYzp0aGlzLmxvY0luZm8ocyl9fWZ1bmN0aW9uIEppKHQsZSxyLG4pe2NyKHQsciksbj10aGlzLmxvY0luZm8obik7dmFyIGk9e3R5cGU6XCJQcm9ncmFtXCIsYm9keTplLHN0cmlwOnt9LGxvYzpufTtyZXR1cm57dHlwZTpcIkJsb2NrU3RhdGVtZW50XCIscGF0aDp0LnBhdGgscGFyYW1zOnQucGFyYW1zLGhhc2g6dC5oYXNoLHByb2dyYW06aSxvcGVuU3RyaXA6e30saW52ZXJzZVN0cmlwOnt9LGNsb3NlU3RyaXA6e30sbG9jOm59fWZ1bmN0aW9uIFhpKHQsZSxyLG4saSxzKXtuJiZuLnBhdGgmJmNyKHQsbik7dmFyIGE9L1xcKi8udGVzdCh0Lm9wZW4pO2UuYmxvY2tQYXJhbXM9dC5ibG9ja1BhcmFtczt2YXIgbCxjO2lmKHIpe2lmKGEpdGhyb3cgbmV3IGZlKFwiVW5leHBlY3RlZCBpbnZlcnNlIGJsb2NrIG9uIGRlY29yYXRvclwiLHIpO3IuY2hhaW4mJihyLnByb2dyYW0uYm9keVswXS5jbG9zZVN0cmlwPW4uc3RyaXApLGM9ci5zdHJpcCxsPXIucHJvZ3JhbX1yZXR1cm4gaSYmKGk9bCxsPWUsZT1pKSx7dHlwZTphP1wiRGVjb3JhdG9yQmxvY2tcIjpcIkJsb2NrU3RhdGVtZW50XCIscGF0aDp0LnBhdGgscGFyYW1zOnQucGFyYW1zLGhhc2g6dC5oYXNoLHByb2dyYW06ZSxpbnZlcnNlOmwsb3BlblN0cmlwOnQuc3RyaXAsaW52ZXJzZVN0cmlwOmMsY2xvc2VTdHJpcDpuJiZuLnN0cmlwLGxvYzp0aGlzLmxvY0luZm8ocyl9fWZ1bmN0aW9uICRpKHQsZSl7aWYoIWUmJnQubGVuZ3RoKXt2YXIgcj10WzBdLmxvYyxuPXRbdC5sZW5ndGgtMV0ubG9jO3ImJm4mJihlPXtzb3VyY2U6ci5zb3VyY2Usc3RhcnQ6e2xpbmU6ci5zdGFydC5saW5lLGNvbHVtbjpyLnN0YXJ0LmNvbHVtbn0sZW5kOntsaW5lOm4uZW5kLmxpbmUsY29sdW1uOm4uZW5kLmNvbHVtbn19KX1yZXR1cm57dHlwZTpcIlByb2dyYW1cIixib2R5OnQsc3RyaXA6e30sbG9jOmV9fWZ1bmN0aW9uIFppKHQsZSxyLG4pe3JldHVybiBjcih0LHIpLHt0eXBlOlwiUGFydGlhbEJsb2NrU3RhdGVtZW50XCIsbmFtZTp0LnBhdGgscGFyYW1zOnQucGFyYW1zLGhhc2g6dC5oYXNoLHByb2dyYW06ZSxvcGVuU3RyaXA6dC5zdHJpcCxjbG9zZVN0cmlwOnImJnIuc3RyaXAsbG9jOnRoaXMubG9jSW5mbyhuKX19dmFyIHZuPXt9O2Zvcih3dCBpbiBzdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3Qsd3QpJiYodm5bd3RdPXN0W3d0XSk7dmFyIHd0O2Z1bmN0aW9uIHh0KHQsZSl7aWYodC50eXBlPT09XCJQcm9ncmFtXCIpcmV0dXJuIHQ7RXQueXk9dm4sRXQueXkubG9jSW5mbz1mdW5jdGlvbihuKXtyZXR1cm4gbmV3IHVyKGUmJmUuc3JjTmFtZSxuKX07dmFyIHI9RXQucGFyc2UodCk7cmV0dXJuIHJ9ZnVuY3Rpb24gaHIodCxlKXt2YXIgcj14dCh0LGUpLG49bmV3IFRuKGUpO3JldHVybiBuLmFjY2VwdChyKX12YXIgeG49e0FhY3V0ZTpcIlxceEMxXCIsYWFjdXRlOlwiXFx4RTFcIixBYnJldmU6XCJcXHUwMTAyXCIsYWJyZXZlOlwiXFx1MDEwM1wiLGFjOlwiXFx1MjIzRVwiLGFjZDpcIlxcdTIyM0ZcIixhY0U6XCJcXHUyMjNFXFx1MDMzM1wiLEFjaXJjOlwiXFx4QzJcIixhY2lyYzpcIlxceEUyXCIsYWN1dGU6XCJcXHhCNFwiLEFjeTpcIlxcdTA0MTBcIixhY3k6XCJcXHUwNDMwXCIsQUVsaWc6XCJcXHhDNlwiLGFlbGlnOlwiXFx4RTZcIixhZjpcIlxcdTIwNjFcIixBZnI6XCJcXHV7MUQ1MDR9XCIsYWZyOlwiXFx1ezFENTFFfVwiLEFncmF2ZTpcIlxceEMwXCIsYWdyYXZlOlwiXFx4RTBcIixhbGVmc3ltOlwiXFx1MjEzNVwiLGFsZXBoOlwiXFx1MjEzNVwiLEFscGhhOlwiXFx1MDM5MVwiLGFscGhhOlwiXFx1MDNCMVwiLEFtYWNyOlwiXFx1MDEwMFwiLGFtYWNyOlwiXFx1MDEwMVwiLGFtYWxnOlwiXFx1MkEzRlwiLGFtcDpcIiZcIixBTVA6XCImXCIsYW5kYW5kOlwiXFx1MkE1NVwiLEFuZDpcIlxcdTJBNTNcIixhbmQ6XCJcXHUyMjI3XCIsYW5kZDpcIlxcdTJBNUNcIixhbmRzbG9wZTpcIlxcdTJBNThcIixhbmR2OlwiXFx1MkE1QVwiLGFuZzpcIlxcdTIyMjBcIixhbmdlOlwiXFx1MjlBNFwiLGFuZ2xlOlwiXFx1MjIyMFwiLGFuZ21zZGFhOlwiXFx1MjlBOFwiLGFuZ21zZGFiOlwiXFx1MjlBOVwiLGFuZ21zZGFjOlwiXFx1MjlBQVwiLGFuZ21zZGFkOlwiXFx1MjlBQlwiLGFuZ21zZGFlOlwiXFx1MjlBQ1wiLGFuZ21zZGFmOlwiXFx1MjlBRFwiLGFuZ21zZGFnOlwiXFx1MjlBRVwiLGFuZ21zZGFoOlwiXFx1MjlBRlwiLGFuZ21zZDpcIlxcdTIyMjFcIixhbmdydDpcIlxcdTIyMUZcIixhbmdydHZiOlwiXFx1MjJCRVwiLGFuZ3J0dmJkOlwiXFx1Mjk5RFwiLGFuZ3NwaDpcIlxcdTIyMjJcIixhbmdzdDpcIlxceEM1XCIsYW5nemFycjpcIlxcdTIzN0NcIixBb2dvbjpcIlxcdTAxMDRcIixhb2dvbjpcIlxcdTAxMDVcIixBb3BmOlwiXFx1ezFENTM4fVwiLGFvcGY6XCJcXHV7MUQ1NTJ9XCIsYXBhY2lyOlwiXFx1MkE2RlwiLGFwOlwiXFx1MjI0OFwiLGFwRTpcIlxcdTJBNzBcIixhcGU6XCJcXHUyMjRBXCIsYXBpZDpcIlxcdTIyNEJcIixhcG9zOlwiJ1wiLEFwcGx5RnVuY3Rpb246XCJcXHUyMDYxXCIsYXBwcm94OlwiXFx1MjI0OFwiLGFwcHJveGVxOlwiXFx1MjI0QVwiLEFyaW5nOlwiXFx4QzVcIixhcmluZzpcIlxceEU1XCIsQXNjcjpcIlxcdXsxRDQ5Q31cIixhc2NyOlwiXFx1ezFENEI2fVwiLEFzc2lnbjpcIlxcdTIyNTRcIixhc3Q6XCIqXCIsYXN5bXA6XCJcXHUyMjQ4XCIsYXN5bXBlcTpcIlxcdTIyNERcIixBdGlsZGU6XCJcXHhDM1wiLGF0aWxkZTpcIlxceEUzXCIsQXVtbDpcIlxceEM0XCIsYXVtbDpcIlxceEU0XCIsYXdjb25pbnQ6XCJcXHUyMjMzXCIsYXdpbnQ6XCJcXHUyQTExXCIsYmFja2Nvbmc6XCJcXHUyMjRDXCIsYmFja2Vwc2lsb246XCJcXHUwM0Y2XCIsYmFja3ByaW1lOlwiXFx1MjAzNVwiLGJhY2tzaW06XCJcXHUyMjNEXCIsYmFja3NpbWVxOlwiXFx1MjJDRFwiLEJhY2tzbGFzaDpcIlxcdTIyMTZcIixCYXJ2OlwiXFx1MkFFN1wiLGJhcnZlZTpcIlxcdTIyQkRcIixiYXJ3ZWQ6XCJcXHUyMzA1XCIsQmFyd2VkOlwiXFx1MjMwNlwiLGJhcndlZGdlOlwiXFx1MjMwNVwiLGJicms6XCJcXHUyM0I1XCIsYmJya3Ricms6XCJcXHUyM0I2XCIsYmNvbmc6XCJcXHUyMjRDXCIsQmN5OlwiXFx1MDQxMVwiLGJjeTpcIlxcdTA0MzFcIixiZHF1bzpcIlxcdTIwMUVcIixiZWNhdXM6XCJcXHUyMjM1XCIsYmVjYXVzZTpcIlxcdTIyMzVcIixCZWNhdXNlOlwiXFx1MjIzNVwiLGJlbXB0eXY6XCJcXHUyOUIwXCIsYmVwc2k6XCJcXHUwM0Y2XCIsYmVybm91OlwiXFx1MjEyQ1wiLEJlcm5vdWxsaXM6XCJcXHUyMTJDXCIsQmV0YTpcIlxcdTAzOTJcIixiZXRhOlwiXFx1MDNCMlwiLGJldGg6XCJcXHUyMTM2XCIsYmV0d2VlbjpcIlxcdTIyNkNcIixCZnI6XCJcXHV7MUQ1MDV9XCIsYmZyOlwiXFx1ezFENTFGfVwiLGJpZ2NhcDpcIlxcdTIyQzJcIixiaWdjaXJjOlwiXFx1MjVFRlwiLGJpZ2N1cDpcIlxcdTIyQzNcIixiaWdvZG90OlwiXFx1MkEwMFwiLGJpZ29wbHVzOlwiXFx1MkEwMVwiLGJpZ290aW1lczpcIlxcdTJBMDJcIixiaWdzcWN1cDpcIlxcdTJBMDZcIixiaWdzdGFyOlwiXFx1MjYwNVwiLGJpZ3RyaWFuZ2xlZG93bjpcIlxcdTI1QkRcIixiaWd0cmlhbmdsZXVwOlwiXFx1MjVCM1wiLGJpZ3VwbHVzOlwiXFx1MkEwNFwiLGJpZ3ZlZTpcIlxcdTIyQzFcIixiaWd3ZWRnZTpcIlxcdTIyQzBcIixia2Fyb3c6XCJcXHUyOTBEXCIsYmxhY2tsb3plbmdlOlwiXFx1MjlFQlwiLGJsYWNrc3F1YXJlOlwiXFx1MjVBQVwiLGJsYWNrdHJpYW5nbGU6XCJcXHUyNUI0XCIsYmxhY2t0cmlhbmdsZWRvd246XCJcXHUyNUJFXCIsYmxhY2t0cmlhbmdsZWxlZnQ6XCJcXHUyNUMyXCIsYmxhY2t0cmlhbmdsZXJpZ2h0OlwiXFx1MjVCOFwiLGJsYW5rOlwiXFx1MjQyM1wiLGJsazEyOlwiXFx1MjU5MlwiLGJsazE0OlwiXFx1MjU5MVwiLGJsazM0OlwiXFx1MjU5M1wiLGJsb2NrOlwiXFx1MjU4OFwiLGJuZTpcIj1cXHUyMEU1XCIsYm5lcXVpdjpcIlxcdTIyNjFcXHUyMEU1XCIsYk5vdDpcIlxcdTJBRURcIixibm90OlwiXFx1MjMxMFwiLEJvcGY6XCJcXHV7MUQ1Mzl9XCIsYm9wZjpcIlxcdXsxRDU1M31cIixib3Q6XCJcXHUyMkE1XCIsYm90dG9tOlwiXFx1MjJBNVwiLGJvd3RpZTpcIlxcdTIyQzhcIixib3hib3g6XCJcXHUyOUM5XCIsYm94ZGw6XCJcXHUyNTEwXCIsYm94ZEw6XCJcXHUyNTU1XCIsYm94RGw6XCJcXHUyNTU2XCIsYm94REw6XCJcXHUyNTU3XCIsYm94ZHI6XCJcXHUyNTBDXCIsYm94ZFI6XCJcXHUyNTUyXCIsYm94RHI6XCJcXHUyNTUzXCIsYm94RFI6XCJcXHUyNTU0XCIsYm94aDpcIlxcdTI1MDBcIixib3hIOlwiXFx1MjU1MFwiLGJveGhkOlwiXFx1MjUyQ1wiLGJveEhkOlwiXFx1MjU2NFwiLGJveGhEOlwiXFx1MjU2NVwiLGJveEhEOlwiXFx1MjU2NlwiLGJveGh1OlwiXFx1MjUzNFwiLGJveEh1OlwiXFx1MjU2N1wiLGJveGhVOlwiXFx1MjU2OFwiLGJveEhVOlwiXFx1MjU2OVwiLGJveG1pbnVzOlwiXFx1MjI5RlwiLGJveHBsdXM6XCJcXHUyMjlFXCIsYm94dGltZXM6XCJcXHUyMkEwXCIsYm94dWw6XCJcXHUyNTE4XCIsYm94dUw6XCJcXHUyNTVCXCIsYm94VWw6XCJcXHUyNTVDXCIsYm94VUw6XCJcXHUyNTVEXCIsYm94dXI6XCJcXHUyNTE0XCIsYm94dVI6XCJcXHUyNTU4XCIsYm94VXI6XCJcXHUyNTU5XCIsYm94VVI6XCJcXHUyNTVBXCIsYm94djpcIlxcdTI1MDJcIixib3hWOlwiXFx1MjU1MVwiLGJveHZoOlwiXFx1MjUzQ1wiLGJveHZIOlwiXFx1MjU2QVwiLGJveFZoOlwiXFx1MjU2QlwiLGJveFZIOlwiXFx1MjU2Q1wiLGJveHZsOlwiXFx1MjUyNFwiLGJveHZMOlwiXFx1MjU2MVwiLGJveFZsOlwiXFx1MjU2MlwiLGJveFZMOlwiXFx1MjU2M1wiLGJveHZyOlwiXFx1MjUxQ1wiLGJveHZSOlwiXFx1MjU1RVwiLGJveFZyOlwiXFx1MjU1RlwiLGJveFZSOlwiXFx1MjU2MFwiLGJwcmltZTpcIlxcdTIwMzVcIixicmV2ZTpcIlxcdTAyRDhcIixCcmV2ZTpcIlxcdTAyRDhcIixicnZiYXI6XCJcXHhBNlwiLGJzY3I6XCJcXHV7MUQ0Qjd9XCIsQnNjcjpcIlxcdTIxMkNcIixic2VtaTpcIlxcdTIwNEZcIixic2ltOlwiXFx1MjIzRFwiLGJzaW1lOlwiXFx1MjJDRFwiLGJzb2xiOlwiXFx1MjlDNVwiLGJzb2w6XCJcXFxcXCIsYnNvbGhzdWI6XCJcXHUyN0M4XCIsYnVsbDpcIlxcdTIwMjJcIixidWxsZXQ6XCJcXHUyMDIyXCIsYnVtcDpcIlxcdTIyNEVcIixidW1wRTpcIlxcdTJBQUVcIixidW1wZTpcIlxcdTIyNEZcIixCdW1wZXE6XCJcXHUyMjRFXCIsYnVtcGVxOlwiXFx1MjI0RlwiLENhY3V0ZTpcIlxcdTAxMDZcIixjYWN1dGU6XCJcXHUwMTA3XCIsY2FwYW5kOlwiXFx1MkE0NFwiLGNhcGJyY3VwOlwiXFx1MkE0OVwiLGNhcGNhcDpcIlxcdTJBNEJcIixjYXA6XCJcXHUyMjI5XCIsQ2FwOlwiXFx1MjJEMlwiLGNhcGN1cDpcIlxcdTJBNDdcIixjYXBkb3Q6XCJcXHUyQTQwXCIsQ2FwaXRhbERpZmZlcmVudGlhbEQ6XCJcXHUyMTQ1XCIsY2FwczpcIlxcdTIyMjlcXHVGRTAwXCIsY2FyZXQ6XCJcXHUyMDQxXCIsY2Fyb246XCJcXHUwMkM3XCIsQ2F5bGV5czpcIlxcdTIxMkRcIixjY2FwczpcIlxcdTJBNERcIixDY2Fyb246XCJcXHUwMTBDXCIsY2Nhcm9uOlwiXFx1MDEwRFwiLENjZWRpbDpcIlxceEM3XCIsY2NlZGlsOlwiXFx4RTdcIixDY2lyYzpcIlxcdTAxMDhcIixjY2lyYzpcIlxcdTAxMDlcIixDY29uaW50OlwiXFx1MjIzMFwiLGNjdXBzOlwiXFx1MkE0Q1wiLGNjdXBzc206XCJcXHUyQTUwXCIsQ2RvdDpcIlxcdTAxMEFcIixjZG90OlwiXFx1MDEwQlwiLGNlZGlsOlwiXFx4QjhcIixDZWRpbGxhOlwiXFx4QjhcIixjZW1wdHl2OlwiXFx1MjlCMlwiLGNlbnQ6XCJcXHhBMlwiLGNlbnRlcmRvdDpcIlxceEI3XCIsQ2VudGVyRG90OlwiXFx4QjdcIixjZnI6XCJcXHV7MUQ1MjB9XCIsQ2ZyOlwiXFx1MjEyRFwiLENIY3k6XCJcXHUwNDI3XCIsY2hjeTpcIlxcdTA0NDdcIixjaGVjazpcIlxcdTI3MTNcIixjaGVja21hcms6XCJcXHUyNzEzXCIsQ2hpOlwiXFx1MDNBN1wiLGNoaTpcIlxcdTAzQzdcIixjaXJjOlwiXFx1MDJDNlwiLGNpcmNlcTpcIlxcdTIyNTdcIixjaXJjbGVhcnJvd2xlZnQ6XCJcXHUyMUJBXCIsY2lyY2xlYXJyb3dyaWdodDpcIlxcdTIxQkJcIixjaXJjbGVkYXN0OlwiXFx1MjI5QlwiLGNpcmNsZWRjaXJjOlwiXFx1MjI5QVwiLGNpcmNsZWRkYXNoOlwiXFx1MjI5RFwiLENpcmNsZURvdDpcIlxcdTIyOTlcIixjaXJjbGVkUjpcIlxceEFFXCIsY2lyY2xlZFM6XCJcXHUyNEM4XCIsQ2lyY2xlTWludXM6XCJcXHUyMjk2XCIsQ2lyY2xlUGx1czpcIlxcdTIyOTVcIixDaXJjbGVUaW1lczpcIlxcdTIyOTdcIixjaXI6XCJcXHUyNUNCXCIsY2lyRTpcIlxcdTI5QzNcIixjaXJlOlwiXFx1MjI1N1wiLGNpcmZuaW50OlwiXFx1MkExMFwiLGNpcm1pZDpcIlxcdTJBRUZcIixjaXJzY2lyOlwiXFx1MjlDMlwiLENsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMzJcIixDbG9zZUN1cmx5RG91YmxlUXVvdGU6XCJcXHUyMDFEXCIsQ2xvc2VDdXJseVF1b3RlOlwiXFx1MjAxOVwiLGNsdWJzOlwiXFx1MjY2M1wiLGNsdWJzdWl0OlwiXFx1MjY2M1wiLGNvbG9uOlwiOlwiLENvbG9uOlwiXFx1MjIzN1wiLENvbG9uZTpcIlxcdTJBNzRcIixjb2xvbmU6XCJcXHUyMjU0XCIsY29sb25lcTpcIlxcdTIyNTRcIixjb21tYTpcIixcIixjb21tYXQ6XCJAXCIsY29tcDpcIlxcdTIyMDFcIixjb21wZm46XCJcXHUyMjE4XCIsY29tcGxlbWVudDpcIlxcdTIyMDFcIixjb21wbGV4ZXM6XCJcXHUyMTAyXCIsY29uZzpcIlxcdTIyNDVcIixjb25nZG90OlwiXFx1MkE2RFwiLENvbmdydWVudDpcIlxcdTIyNjFcIixjb25pbnQ6XCJcXHUyMjJFXCIsQ29uaW50OlwiXFx1MjIyRlwiLENvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMkVcIixjb3BmOlwiXFx1ezFENTU0fVwiLENvcGY6XCJcXHUyMTAyXCIsY29wcm9kOlwiXFx1MjIxMFwiLENvcHJvZHVjdDpcIlxcdTIyMTBcIixjb3B5OlwiXFx4QTlcIixDT1BZOlwiXFx4QTlcIixjb3B5c3I6XCJcXHUyMTE3XCIsQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMzNcIixjcmFycjpcIlxcdTIxQjVcIixjcm9zczpcIlxcdTI3MTdcIixDcm9zczpcIlxcdTJBMkZcIixDc2NyOlwiXFx1ezFENDlFfVwiLGNzY3I6XCJcXHV7MUQ0Qjh9XCIsY3N1YjpcIlxcdTJBQ0ZcIixjc3ViZTpcIlxcdTJBRDFcIixjc3VwOlwiXFx1MkFEMFwiLGNzdXBlOlwiXFx1MkFEMlwiLGN0ZG90OlwiXFx1MjJFRlwiLGN1ZGFycmw6XCJcXHUyOTM4XCIsY3VkYXJycjpcIlxcdTI5MzVcIixjdWVwcjpcIlxcdTIyREVcIixjdWVzYzpcIlxcdTIyREZcIixjdWxhcnI6XCJcXHUyMUI2XCIsY3VsYXJycDpcIlxcdTI5M0RcIixjdXBicmNhcDpcIlxcdTJBNDhcIixjdXBjYXA6XCJcXHUyQTQ2XCIsQ3VwQ2FwOlwiXFx1MjI0RFwiLGN1cDpcIlxcdTIyMkFcIixDdXA6XCJcXHUyMkQzXCIsY3VwY3VwOlwiXFx1MkE0QVwiLGN1cGRvdDpcIlxcdTIyOERcIixjdXBvcjpcIlxcdTJBNDVcIixjdXBzOlwiXFx1MjIyQVxcdUZFMDBcIixjdXJhcnI6XCJcXHUyMUI3XCIsY3VyYXJybTpcIlxcdTI5M0NcIixjdXJseWVxcHJlYzpcIlxcdTIyREVcIixjdXJseWVxc3VjYzpcIlxcdTIyREZcIixjdXJseXZlZTpcIlxcdTIyQ0VcIixjdXJseXdlZGdlOlwiXFx1MjJDRlwiLGN1cnJlbjpcIlxceEE0XCIsY3VydmVhcnJvd2xlZnQ6XCJcXHUyMUI2XCIsY3VydmVhcnJvd3JpZ2h0OlwiXFx1MjFCN1wiLGN1dmVlOlwiXFx1MjJDRVwiLGN1d2VkOlwiXFx1MjJDRlwiLGN3Y29uaW50OlwiXFx1MjIzMlwiLGN3aW50OlwiXFx1MjIzMVwiLGN5bGN0eTpcIlxcdTIzMkRcIixkYWdnZXI6XCJcXHUyMDIwXCIsRGFnZ2VyOlwiXFx1MjAyMVwiLGRhbGV0aDpcIlxcdTIxMzhcIixkYXJyOlwiXFx1MjE5M1wiLERhcnI6XCJcXHUyMUExXCIsZEFycjpcIlxcdTIxRDNcIixkYXNoOlwiXFx1MjAxMFwiLERhc2h2OlwiXFx1MkFFNFwiLGRhc2h2OlwiXFx1MjJBM1wiLGRia2Fyb3c6XCJcXHUyOTBGXCIsZGJsYWM6XCJcXHUwMkREXCIsRGNhcm9uOlwiXFx1MDEwRVwiLGRjYXJvbjpcIlxcdTAxMEZcIixEY3k6XCJcXHUwNDE0XCIsZGN5OlwiXFx1MDQzNFwiLGRkYWdnZXI6XCJcXHUyMDIxXCIsZGRhcnI6XCJcXHUyMUNBXCIsREQ6XCJcXHUyMTQ1XCIsZGQ6XCJcXHUyMTQ2XCIsRERvdHJhaGQ6XCJcXHUyOTExXCIsZGRvdHNlcTpcIlxcdTJBNzdcIixkZWc6XCJcXHhCMFwiLERlbDpcIlxcdTIyMDdcIixEZWx0YTpcIlxcdTAzOTRcIixkZWx0YTpcIlxcdTAzQjRcIixkZW1wdHl2OlwiXFx1MjlCMVwiLGRmaXNodDpcIlxcdTI5N0ZcIixEZnI6XCJcXHV7MUQ1MDd9XCIsZGZyOlwiXFx1ezFENTIxfVwiLGRIYXI6XCJcXHUyOTY1XCIsZGhhcmw6XCJcXHUyMUMzXCIsZGhhcnI6XCJcXHUyMUMyXCIsRGlhY3JpdGljYWxBY3V0ZTpcIlxceEI0XCIsRGlhY3JpdGljYWxEb3Q6XCJcXHUwMkQ5XCIsRGlhY3JpdGljYWxEb3VibGVBY3V0ZTpcIlxcdTAyRERcIixEaWFjcml0aWNhbEdyYXZlOlwiYFwiLERpYWNyaXRpY2FsVGlsZGU6XCJcXHUwMkRDXCIsZGlhbTpcIlxcdTIyQzRcIixkaWFtb25kOlwiXFx1MjJDNFwiLERpYW1vbmQ6XCJcXHUyMkM0XCIsZGlhbW9uZHN1aXQ6XCJcXHUyNjY2XCIsZGlhbXM6XCJcXHUyNjY2XCIsZGllOlwiXFx4QThcIixEaWZmZXJlbnRpYWxEOlwiXFx1MjE0NlwiLGRpZ2FtbWE6XCJcXHUwM0REXCIsZGlzaW46XCJcXHUyMkYyXCIsZGl2OlwiXFx4RjdcIixkaXZpZGU6XCJcXHhGN1wiLGRpdmlkZW9udGltZXM6XCJcXHUyMkM3XCIsZGl2b254OlwiXFx1MjJDN1wiLERKY3k6XCJcXHUwNDAyXCIsZGpjeTpcIlxcdTA0NTJcIixkbGNvcm46XCJcXHUyMzFFXCIsZGxjcm9wOlwiXFx1MjMwRFwiLGRvbGxhcjpcIiRcIixEb3BmOlwiXFx1ezFENTNCfVwiLGRvcGY6XCJcXHV7MUQ1NTV9XCIsRG90OlwiXFx4QThcIixkb3Q6XCJcXHUwMkQ5XCIsRG90RG90OlwiXFx1MjBEQ1wiLGRvdGVxOlwiXFx1MjI1MFwiLGRvdGVxZG90OlwiXFx1MjI1MVwiLERvdEVxdWFsOlwiXFx1MjI1MFwiLGRvdG1pbnVzOlwiXFx1MjIzOFwiLGRvdHBsdXM6XCJcXHUyMjE0XCIsZG90c3F1YXJlOlwiXFx1MjJBMVwiLGRvdWJsZWJhcndlZGdlOlwiXFx1MjMwNlwiLERvdWJsZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMkZcIixEb3VibGVEb3Q6XCJcXHhBOFwiLERvdWJsZURvd25BcnJvdzpcIlxcdTIxRDNcIixEb3VibGVMZWZ0QXJyb3c6XCJcXHUyMUQwXCIsRG91YmxlTGVmdFJpZ2h0QXJyb3c6XCJcXHUyMUQ0XCIsRG91YmxlTGVmdFRlZTpcIlxcdTJBRTRcIixEb3VibGVMb25nTGVmdEFycm93OlwiXFx1MjdGOFwiLERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdzpcIlxcdTI3RkFcIixEb3VibGVMb25nUmlnaHRBcnJvdzpcIlxcdTI3RjlcIixEb3VibGVSaWdodEFycm93OlwiXFx1MjFEMlwiLERvdWJsZVJpZ2h0VGVlOlwiXFx1MjJBOFwiLERvdWJsZVVwQXJyb3c6XCJcXHUyMUQxXCIsRG91YmxlVXBEb3duQXJyb3c6XCJcXHUyMUQ1XCIsRG91YmxlVmVydGljYWxCYXI6XCJcXHUyMjI1XCIsRG93bkFycm93QmFyOlwiXFx1MjkxM1wiLGRvd25hcnJvdzpcIlxcdTIxOTNcIixEb3duQXJyb3c6XCJcXHUyMTkzXCIsRG93bmFycm93OlwiXFx1MjFEM1wiLERvd25BcnJvd1VwQXJyb3c6XCJcXHUyMUY1XCIsRG93bkJyZXZlOlwiXFx1MDMxMVwiLGRvd25kb3duYXJyb3dzOlwiXFx1MjFDQVwiLGRvd25oYXJwb29ubGVmdDpcIlxcdTIxQzNcIixkb3duaGFycG9vbnJpZ2h0OlwiXFx1MjFDMlwiLERvd25MZWZ0UmlnaHRWZWN0b3I6XCJcXHUyOTUwXCIsRG93bkxlZnRUZWVWZWN0b3I6XCJcXHUyOTVFXCIsRG93bkxlZnRWZWN0b3JCYXI6XCJcXHUyOTU2XCIsRG93bkxlZnRWZWN0b3I6XCJcXHUyMUJEXCIsRG93blJpZ2h0VGVlVmVjdG9yOlwiXFx1Mjk1RlwiLERvd25SaWdodFZlY3RvckJhcjpcIlxcdTI5NTdcIixEb3duUmlnaHRWZWN0b3I6XCJcXHUyMUMxXCIsRG93blRlZUFycm93OlwiXFx1MjFBN1wiLERvd25UZWU6XCJcXHUyMkE0XCIsZHJia2Fyb3c6XCJcXHUyOTEwXCIsZHJjb3JuOlwiXFx1MjMxRlwiLGRyY3JvcDpcIlxcdTIzMENcIixEc2NyOlwiXFx1ezFENDlGfVwiLGRzY3I6XCJcXHV7MUQ0Qjl9XCIsRFNjeTpcIlxcdTA0MDVcIixkc2N5OlwiXFx1MDQ1NVwiLGRzb2w6XCJcXHUyOUY2XCIsRHN0cm9rOlwiXFx1MDExMFwiLGRzdHJvazpcIlxcdTAxMTFcIixkdGRvdDpcIlxcdTIyRjFcIixkdHJpOlwiXFx1MjVCRlwiLGR0cmlmOlwiXFx1MjVCRVwiLGR1YXJyOlwiXFx1MjFGNVwiLGR1aGFyOlwiXFx1Mjk2RlwiLGR3YW5nbGU6XCJcXHUyOUE2XCIsRFpjeTpcIlxcdTA0MEZcIixkemN5OlwiXFx1MDQ1RlwiLGR6aWdyYXJyOlwiXFx1MjdGRlwiLEVhY3V0ZTpcIlxceEM5XCIsZWFjdXRlOlwiXFx4RTlcIixlYXN0ZXI6XCJcXHUyQTZFXCIsRWNhcm9uOlwiXFx1MDExQVwiLGVjYXJvbjpcIlxcdTAxMUJcIixFY2lyYzpcIlxceENBXCIsZWNpcmM6XCJcXHhFQVwiLGVjaXI6XCJcXHUyMjU2XCIsZWNvbG9uOlwiXFx1MjI1NVwiLEVjeTpcIlxcdTA0MkRcIixlY3k6XCJcXHUwNDREXCIsZUREb3Q6XCJcXHUyQTc3XCIsRWRvdDpcIlxcdTAxMTZcIixlZG90OlwiXFx1MDExN1wiLGVEb3Q6XCJcXHUyMjUxXCIsZWU6XCJcXHUyMTQ3XCIsZWZEb3Q6XCJcXHUyMjUyXCIsRWZyOlwiXFx1ezFENTA4fVwiLGVmcjpcIlxcdXsxRDUyMn1cIixlZzpcIlxcdTJBOUFcIixFZ3JhdmU6XCJcXHhDOFwiLGVncmF2ZTpcIlxceEU4XCIsZWdzOlwiXFx1MkE5NlwiLGVnc2RvdDpcIlxcdTJBOThcIixlbDpcIlxcdTJBOTlcIixFbGVtZW50OlwiXFx1MjIwOFwiLGVsaW50ZXJzOlwiXFx1MjNFN1wiLGVsbDpcIlxcdTIxMTNcIixlbHM6XCJcXHUyQTk1XCIsZWxzZG90OlwiXFx1MkE5N1wiLEVtYWNyOlwiXFx1MDExMlwiLGVtYWNyOlwiXFx1MDExM1wiLGVtcHR5OlwiXFx1MjIwNVwiLGVtcHR5c2V0OlwiXFx1MjIwNVwiLEVtcHR5U21hbGxTcXVhcmU6XCJcXHUyNUZCXCIsZW1wdHl2OlwiXFx1MjIwNVwiLEVtcHR5VmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQlwiLGVtc3AxMzpcIlxcdTIwMDRcIixlbXNwMTQ6XCJcXHUyMDA1XCIsZW1zcDpcIlxcdTIwMDNcIixFTkc6XCJcXHUwMTRBXCIsZW5nOlwiXFx1MDE0QlwiLGVuc3A6XCJcXHUyMDAyXCIsRW9nb246XCJcXHUwMTE4XCIsZW9nb246XCJcXHUwMTE5XCIsRW9wZjpcIlxcdXsxRDUzQ31cIixlb3BmOlwiXFx1ezFENTU2fVwiLGVwYXI6XCJcXHUyMkQ1XCIsZXBhcnNsOlwiXFx1MjlFM1wiLGVwbHVzOlwiXFx1MkE3MVwiLGVwc2k6XCJcXHUwM0I1XCIsRXBzaWxvbjpcIlxcdTAzOTVcIixlcHNpbG9uOlwiXFx1MDNCNVwiLGVwc2l2OlwiXFx1MDNGNVwiLGVxY2lyYzpcIlxcdTIyNTZcIixlcWNvbG9uOlwiXFx1MjI1NVwiLGVxc2ltOlwiXFx1MjI0MlwiLGVxc2xhbnRndHI6XCJcXHUyQTk2XCIsZXFzbGFudGxlc3M6XCJcXHUyQTk1XCIsRXF1YWw6XCJcXHUyQTc1XCIsZXF1YWxzOlwiPVwiLEVxdWFsVGlsZGU6XCJcXHUyMjQyXCIsZXF1ZXN0OlwiXFx1MjI1RlwiLEVxdWlsaWJyaXVtOlwiXFx1MjFDQ1wiLGVxdWl2OlwiXFx1MjI2MVwiLGVxdWl2REQ6XCJcXHUyQTc4XCIsZXF2cGFyc2w6XCJcXHUyOUU1XCIsZXJhcnI6XCJcXHUyOTcxXCIsZXJEb3Q6XCJcXHUyMjUzXCIsZXNjcjpcIlxcdTIxMkZcIixFc2NyOlwiXFx1MjEzMFwiLGVzZG90OlwiXFx1MjI1MFwiLEVzaW06XCJcXHUyQTczXCIsZXNpbTpcIlxcdTIyNDJcIixFdGE6XCJcXHUwMzk3XCIsZXRhOlwiXFx1MDNCN1wiLEVUSDpcIlxceEQwXCIsZXRoOlwiXFx4RjBcIixFdW1sOlwiXFx4Q0JcIixldW1sOlwiXFx4RUJcIixldXJvOlwiXFx1MjBBQ1wiLGV4Y2w6XCIhXCIsZXhpc3Q6XCJcXHUyMjAzXCIsRXhpc3RzOlwiXFx1MjIwM1wiLGV4cGVjdGF0aW9uOlwiXFx1MjEzMFwiLGV4cG9uZW50aWFsZTpcIlxcdTIxNDdcIixFeHBvbmVudGlhbEU6XCJcXHUyMTQ3XCIsZmFsbGluZ2RvdHNlcTpcIlxcdTIyNTJcIixGY3k6XCJcXHUwNDI0XCIsZmN5OlwiXFx1MDQ0NFwiLGZlbWFsZTpcIlxcdTI2NDBcIixmZmlsaWc6XCJcXHVGQjAzXCIsZmZsaWc6XCJcXHVGQjAwXCIsZmZsbGlnOlwiXFx1RkIwNFwiLEZmcjpcIlxcdXsxRDUwOX1cIixmZnI6XCJcXHV7MUQ1MjN9XCIsZmlsaWc6XCJcXHVGQjAxXCIsRmlsbGVkU21hbGxTcXVhcmU6XCJcXHUyNUZDXCIsRmlsbGVkVmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQVwiLGZqbGlnOlwiZmpcIixmbGF0OlwiXFx1MjY2RFwiLGZsbGlnOlwiXFx1RkIwMlwiLGZsdG5zOlwiXFx1MjVCMVwiLGZub2Y6XCJcXHUwMTkyXCIsRm9wZjpcIlxcdXsxRDUzRH1cIixmb3BmOlwiXFx1ezFENTU3fVwiLGZvcmFsbDpcIlxcdTIyMDBcIixGb3JBbGw6XCJcXHUyMjAwXCIsZm9yazpcIlxcdTIyRDRcIixmb3JrdjpcIlxcdTJBRDlcIixGb3VyaWVydHJmOlwiXFx1MjEzMVwiLGZwYXJ0aW50OlwiXFx1MkEwRFwiLGZyYWMxMjpcIlxceEJEXCIsZnJhYzEzOlwiXFx1MjE1M1wiLGZyYWMxNDpcIlxceEJDXCIsZnJhYzE1OlwiXFx1MjE1NVwiLGZyYWMxNjpcIlxcdTIxNTlcIixmcmFjMTg6XCJcXHUyMTVCXCIsZnJhYzIzOlwiXFx1MjE1NFwiLGZyYWMyNTpcIlxcdTIxNTZcIixmcmFjMzQ6XCJcXHhCRVwiLGZyYWMzNTpcIlxcdTIxNTdcIixmcmFjMzg6XCJcXHUyMTVDXCIsZnJhYzQ1OlwiXFx1MjE1OFwiLGZyYWM1NjpcIlxcdTIxNUFcIixmcmFjNTg6XCJcXHUyMTVEXCIsZnJhYzc4OlwiXFx1MjE1RVwiLGZyYXNsOlwiXFx1MjA0NFwiLGZyb3duOlwiXFx1MjMyMlwiLGZzY3I6XCJcXHV7MUQ0QkJ9XCIsRnNjcjpcIlxcdTIxMzFcIixnYWN1dGU6XCJcXHUwMUY1XCIsR2FtbWE6XCJcXHUwMzkzXCIsZ2FtbWE6XCJcXHUwM0IzXCIsR2FtbWFkOlwiXFx1MDNEQ1wiLGdhbW1hZDpcIlxcdTAzRERcIixnYXA6XCJcXHUyQTg2XCIsR2JyZXZlOlwiXFx1MDExRVwiLGdicmV2ZTpcIlxcdTAxMUZcIixHY2VkaWw6XCJcXHUwMTIyXCIsR2NpcmM6XCJcXHUwMTFDXCIsZ2NpcmM6XCJcXHUwMTFEXCIsR2N5OlwiXFx1MDQxM1wiLGdjeTpcIlxcdTA0MzNcIixHZG90OlwiXFx1MDEyMFwiLGdkb3Q6XCJcXHUwMTIxXCIsZ2U6XCJcXHUyMjY1XCIsZ0U6XCJcXHUyMjY3XCIsZ0VsOlwiXFx1MkE4Q1wiLGdlbDpcIlxcdTIyREJcIixnZXE6XCJcXHUyMjY1XCIsZ2VxcTpcIlxcdTIyNjdcIixnZXFzbGFudDpcIlxcdTJBN0VcIixnZXNjYzpcIlxcdTJBQTlcIixnZXM6XCJcXHUyQTdFXCIsZ2VzZG90OlwiXFx1MkE4MFwiLGdlc2RvdG86XCJcXHUyQTgyXCIsZ2VzZG90b2w6XCJcXHUyQTg0XCIsZ2VzbDpcIlxcdTIyREJcXHVGRTAwXCIsZ2VzbGVzOlwiXFx1MkE5NFwiLEdmcjpcIlxcdXsxRDUwQX1cIixnZnI6XCJcXHV7MUQ1MjR9XCIsZ2c6XCJcXHUyMjZCXCIsR2c6XCJcXHUyMkQ5XCIsZ2dnOlwiXFx1MjJEOVwiLGdpbWVsOlwiXFx1MjEzN1wiLEdKY3k6XCJcXHUwNDAzXCIsZ2pjeTpcIlxcdTA0NTNcIixnbGE6XCJcXHUyQUE1XCIsZ2w6XCJcXHUyMjc3XCIsZ2xFOlwiXFx1MkE5MlwiLGdsajpcIlxcdTJBQTRcIixnbmFwOlwiXFx1MkE4QVwiLGduYXBwcm94OlwiXFx1MkE4QVwiLGduZTpcIlxcdTJBODhcIixnbkU6XCJcXHUyMjY5XCIsZ25lcTpcIlxcdTJBODhcIixnbmVxcTpcIlxcdTIyNjlcIixnbnNpbTpcIlxcdTIyRTdcIixHb3BmOlwiXFx1ezFENTNFfVwiLGdvcGY6XCJcXHV7MUQ1NTh9XCIsZ3JhdmU6XCJgXCIsR3JlYXRlckVxdWFsOlwiXFx1MjI2NVwiLEdyZWF0ZXJFcXVhbExlc3M6XCJcXHUyMkRCXCIsR3JlYXRlckZ1bGxFcXVhbDpcIlxcdTIyNjdcIixHcmVhdGVyR3JlYXRlcjpcIlxcdTJBQTJcIixHcmVhdGVyTGVzczpcIlxcdTIyNzdcIixHcmVhdGVyU2xhbnRFcXVhbDpcIlxcdTJBN0VcIixHcmVhdGVyVGlsZGU6XCJcXHUyMjczXCIsR3NjcjpcIlxcdXsxRDRBMn1cIixnc2NyOlwiXFx1MjEwQVwiLGdzaW06XCJcXHUyMjczXCIsZ3NpbWU6XCJcXHUyQThFXCIsZ3NpbWw6XCJcXHUyQTkwXCIsZ3RjYzpcIlxcdTJBQTdcIixndGNpcjpcIlxcdTJBN0FcIixndDpcIj5cIixHVDpcIj5cIixHdDpcIlxcdTIyNkJcIixndGRvdDpcIlxcdTIyRDdcIixndGxQYXI6XCJcXHUyOTk1XCIsZ3RxdWVzdDpcIlxcdTJBN0NcIixndHJhcHByb3g6XCJcXHUyQTg2XCIsZ3RyYXJyOlwiXFx1Mjk3OFwiLGd0cmRvdDpcIlxcdTIyRDdcIixndHJlcWxlc3M6XCJcXHUyMkRCXCIsZ3RyZXFxbGVzczpcIlxcdTJBOENcIixndHJsZXNzOlwiXFx1MjI3N1wiLGd0cnNpbTpcIlxcdTIyNzNcIixndmVydG5lcXE6XCJcXHUyMjY5XFx1RkUwMFwiLGd2bkU6XCJcXHUyMjY5XFx1RkUwMFwiLEhhY2VrOlwiXFx1MDJDN1wiLGhhaXJzcDpcIlxcdTIwMEFcIixoYWxmOlwiXFx4QkRcIixoYW1pbHQ6XCJcXHUyMTBCXCIsSEFSRGN5OlwiXFx1MDQyQVwiLGhhcmRjeTpcIlxcdTA0NEFcIixoYXJyY2lyOlwiXFx1Mjk0OFwiLGhhcnI6XCJcXHUyMTk0XCIsaEFycjpcIlxcdTIxRDRcIixoYXJydzpcIlxcdTIxQURcIixIYXQ6XCJeXCIsaGJhcjpcIlxcdTIxMEZcIixIY2lyYzpcIlxcdTAxMjRcIixoY2lyYzpcIlxcdTAxMjVcIixoZWFydHM6XCJcXHUyNjY1XCIsaGVhcnRzdWl0OlwiXFx1MjY2NVwiLGhlbGxpcDpcIlxcdTIwMjZcIixoZXJjb246XCJcXHUyMkI5XCIsaGZyOlwiXFx1ezFENTI1fVwiLEhmcjpcIlxcdTIxMENcIixIaWxiZXJ0U3BhY2U6XCJcXHUyMTBCXCIsaGtzZWFyb3c6XCJcXHUyOTI1XCIsaGtzd2Fyb3c6XCJcXHUyOTI2XCIsaG9hcnI6XCJcXHUyMUZGXCIsaG9tdGh0OlwiXFx1MjIzQlwiLGhvb2tsZWZ0YXJyb3c6XCJcXHUyMUE5XCIsaG9va3JpZ2h0YXJyb3c6XCJcXHUyMUFBXCIsaG9wZjpcIlxcdXsxRDU1OX1cIixIb3BmOlwiXFx1MjEwRFwiLGhvcmJhcjpcIlxcdTIwMTVcIixIb3Jpem9udGFsTGluZTpcIlxcdTI1MDBcIixoc2NyOlwiXFx1ezFENEJEfVwiLEhzY3I6XCJcXHUyMTBCXCIsaHNsYXNoOlwiXFx1MjEwRlwiLEhzdHJvazpcIlxcdTAxMjZcIixoc3Ryb2s6XCJcXHUwMTI3XCIsSHVtcERvd25IdW1wOlwiXFx1MjI0RVwiLEh1bXBFcXVhbDpcIlxcdTIyNEZcIixoeWJ1bGw6XCJcXHUyMDQzXCIsaHlwaGVuOlwiXFx1MjAxMFwiLElhY3V0ZTpcIlxceENEXCIsaWFjdXRlOlwiXFx4RURcIixpYzpcIlxcdTIwNjNcIixJY2lyYzpcIlxceENFXCIsaWNpcmM6XCJcXHhFRVwiLEljeTpcIlxcdTA0MThcIixpY3k6XCJcXHUwNDM4XCIsSWRvdDpcIlxcdTAxMzBcIixJRWN5OlwiXFx1MDQxNVwiLGllY3k6XCJcXHUwNDM1XCIsaWV4Y2w6XCJcXHhBMVwiLGlmZjpcIlxcdTIxRDRcIixpZnI6XCJcXHV7MUQ1MjZ9XCIsSWZyOlwiXFx1MjExMVwiLElncmF2ZTpcIlxceENDXCIsaWdyYXZlOlwiXFx4RUNcIixpaTpcIlxcdTIxNDhcIixpaWlpbnQ6XCJcXHUyQTBDXCIsaWlpbnQ6XCJcXHUyMjJEXCIsaWluZmluOlwiXFx1MjlEQ1wiLGlpb3RhOlwiXFx1MjEyOVwiLElKbGlnOlwiXFx1MDEzMlwiLGlqbGlnOlwiXFx1MDEzM1wiLEltYWNyOlwiXFx1MDEyQVwiLGltYWNyOlwiXFx1MDEyQlwiLGltYWdlOlwiXFx1MjExMVwiLEltYWdpbmFyeUk6XCJcXHUyMTQ4XCIsaW1hZ2xpbmU6XCJcXHUyMTEwXCIsaW1hZ3BhcnQ6XCJcXHUyMTExXCIsaW1hdGg6XCJcXHUwMTMxXCIsSW06XCJcXHUyMTExXCIsaW1vZjpcIlxcdTIyQjdcIixpbXBlZDpcIlxcdTAxQjVcIixJbXBsaWVzOlwiXFx1MjFEMlwiLGluY2FyZTpcIlxcdTIxMDVcIixpbjpcIlxcdTIyMDhcIixpbmZpbjpcIlxcdTIyMUVcIixpbmZpbnRpZTpcIlxcdTI5RERcIixpbm9kb3Q6XCJcXHUwMTMxXCIsaW50Y2FsOlwiXFx1MjJCQVwiLGludDpcIlxcdTIyMkJcIixJbnQ6XCJcXHUyMjJDXCIsaW50ZWdlcnM6XCJcXHUyMTI0XCIsSW50ZWdyYWw6XCJcXHUyMjJCXCIsaW50ZXJjYWw6XCJcXHUyMkJBXCIsSW50ZXJzZWN0aW9uOlwiXFx1MjJDMlwiLGludGxhcmhrOlwiXFx1MkExN1wiLGludHByb2Q6XCJcXHUyQTNDXCIsSW52aXNpYmxlQ29tbWE6XCJcXHUyMDYzXCIsSW52aXNpYmxlVGltZXM6XCJcXHUyMDYyXCIsSU9jeTpcIlxcdTA0MDFcIixpb2N5OlwiXFx1MDQ1MVwiLElvZ29uOlwiXFx1MDEyRVwiLGlvZ29uOlwiXFx1MDEyRlwiLElvcGY6XCJcXHV7MUQ1NDB9XCIsaW9wZjpcIlxcdXsxRDU1QX1cIixJb3RhOlwiXFx1MDM5OVwiLGlvdGE6XCJcXHUwM0I5XCIsaXByb2Q6XCJcXHUyQTNDXCIsaXF1ZXN0OlwiXFx4QkZcIixpc2NyOlwiXFx1ezFENEJFfVwiLElzY3I6XCJcXHUyMTEwXCIsaXNpbjpcIlxcdTIyMDhcIixpc2luZG90OlwiXFx1MjJGNVwiLGlzaW5FOlwiXFx1MjJGOVwiLGlzaW5zOlwiXFx1MjJGNFwiLGlzaW5zdjpcIlxcdTIyRjNcIixpc2ludjpcIlxcdTIyMDhcIixpdDpcIlxcdTIwNjJcIixJdGlsZGU6XCJcXHUwMTI4XCIsaXRpbGRlOlwiXFx1MDEyOVwiLEl1a2N5OlwiXFx1MDQwNlwiLGl1a2N5OlwiXFx1MDQ1NlwiLEl1bWw6XCJcXHhDRlwiLGl1bWw6XCJcXHhFRlwiLEpjaXJjOlwiXFx1MDEzNFwiLGpjaXJjOlwiXFx1MDEzNVwiLEpjeTpcIlxcdTA0MTlcIixqY3k6XCJcXHUwNDM5XCIsSmZyOlwiXFx1ezFENTBEfVwiLGpmcjpcIlxcdXsxRDUyN31cIixqbWF0aDpcIlxcdTAyMzdcIixKb3BmOlwiXFx1ezFENTQxfVwiLGpvcGY6XCJcXHV7MUQ1NUJ9XCIsSnNjcjpcIlxcdXsxRDRBNX1cIixqc2NyOlwiXFx1ezFENEJGfVwiLEpzZXJjeTpcIlxcdTA0MDhcIixqc2VyY3k6XCJcXHUwNDU4XCIsSnVrY3k6XCJcXHUwNDA0XCIsanVrY3k6XCJcXHUwNDU0XCIsS2FwcGE6XCJcXHUwMzlBXCIsa2FwcGE6XCJcXHUwM0JBXCIsa2FwcGF2OlwiXFx1MDNGMFwiLEtjZWRpbDpcIlxcdTAxMzZcIixrY2VkaWw6XCJcXHUwMTM3XCIsS2N5OlwiXFx1MDQxQVwiLGtjeTpcIlxcdTA0M0FcIixLZnI6XCJcXHV7MUQ1MEV9XCIsa2ZyOlwiXFx1ezFENTI4fVwiLGtncmVlbjpcIlxcdTAxMzhcIixLSGN5OlwiXFx1MDQyNVwiLGtoY3k6XCJcXHUwNDQ1XCIsS0pjeTpcIlxcdTA0MENcIixramN5OlwiXFx1MDQ1Q1wiLEtvcGY6XCJcXHV7MUQ1NDJ9XCIsa29wZjpcIlxcdXsxRDU1Q31cIixLc2NyOlwiXFx1ezFENEE2fVwiLGtzY3I6XCJcXHV7MUQ0QzB9XCIsbEFhcnI6XCJcXHUyMURBXCIsTGFjdXRlOlwiXFx1MDEzOVwiLGxhY3V0ZTpcIlxcdTAxM0FcIixsYWVtcHR5djpcIlxcdTI5QjRcIixsYWdyYW46XCJcXHUyMTEyXCIsTGFtYmRhOlwiXFx1MDM5QlwiLGxhbWJkYTpcIlxcdTAzQkJcIixsYW5nOlwiXFx1MjdFOFwiLExhbmc6XCJcXHUyN0VBXCIsbGFuZ2Q6XCJcXHUyOTkxXCIsbGFuZ2xlOlwiXFx1MjdFOFwiLGxhcDpcIlxcdTJBODVcIixMYXBsYWNldHJmOlwiXFx1MjExMlwiLGxhcXVvOlwiXFx4QUJcIixsYXJyYjpcIlxcdTIxRTRcIixsYXJyYmZzOlwiXFx1MjkxRlwiLGxhcnI6XCJcXHUyMTkwXCIsTGFycjpcIlxcdTIxOUVcIixsQXJyOlwiXFx1MjFEMFwiLGxhcnJmczpcIlxcdTI5MURcIixsYXJyaGs6XCJcXHUyMUE5XCIsbGFycmxwOlwiXFx1MjFBQlwiLGxhcnJwbDpcIlxcdTI5MzlcIixsYXJyc2ltOlwiXFx1Mjk3M1wiLGxhcnJ0bDpcIlxcdTIxQTJcIixsYXRhaWw6XCJcXHUyOTE5XCIsbEF0YWlsOlwiXFx1MjkxQlwiLGxhdDpcIlxcdTJBQUJcIixsYXRlOlwiXFx1MkFBRFwiLGxhdGVzOlwiXFx1MkFBRFxcdUZFMDBcIixsYmFycjpcIlxcdTI5MENcIixsQmFycjpcIlxcdTI5MEVcIixsYmJyazpcIlxcdTI3NzJcIixsYnJhY2U6XCJ7XCIsbGJyYWNrOlwiW1wiLGxicmtlOlwiXFx1Mjk4QlwiLGxicmtzbGQ6XCJcXHUyOThGXCIsbGJya3NsdTpcIlxcdTI5OERcIixMY2Fyb246XCJcXHUwMTNEXCIsbGNhcm9uOlwiXFx1MDEzRVwiLExjZWRpbDpcIlxcdTAxM0JcIixsY2VkaWw6XCJcXHUwMTNDXCIsbGNlaWw6XCJcXHUyMzA4XCIsbGN1YjpcIntcIixMY3k6XCJcXHUwNDFCXCIsbGN5OlwiXFx1MDQzQlwiLGxkY2E6XCJcXHUyOTM2XCIsbGRxdW86XCJcXHUyMDFDXCIsbGRxdW9yOlwiXFx1MjAxRVwiLGxkcmRoYXI6XCJcXHUyOTY3XCIsbGRydXNoYXI6XCJcXHUyOTRCXCIsbGRzaDpcIlxcdTIxQjJcIixsZTpcIlxcdTIyNjRcIixsRTpcIlxcdTIyNjZcIixMZWZ0QW5nbGVCcmFja2V0OlwiXFx1MjdFOFwiLExlZnRBcnJvd0JhcjpcIlxcdTIxRTRcIixsZWZ0YXJyb3c6XCJcXHUyMTkwXCIsTGVmdEFycm93OlwiXFx1MjE5MFwiLExlZnRhcnJvdzpcIlxcdTIxRDBcIixMZWZ0QXJyb3dSaWdodEFycm93OlwiXFx1MjFDNlwiLGxlZnRhcnJvd3RhaWw6XCJcXHUyMUEyXCIsTGVmdENlaWxpbmc6XCJcXHUyMzA4XCIsTGVmdERvdWJsZUJyYWNrZXQ6XCJcXHUyN0U2XCIsTGVmdERvd25UZWVWZWN0b3I6XCJcXHUyOTYxXCIsTGVmdERvd25WZWN0b3JCYXI6XCJcXHUyOTU5XCIsTGVmdERvd25WZWN0b3I6XCJcXHUyMUMzXCIsTGVmdEZsb29yOlwiXFx1MjMwQVwiLGxlZnRoYXJwb29uZG93bjpcIlxcdTIxQkRcIixsZWZ0aGFycG9vbnVwOlwiXFx1MjFCQ1wiLGxlZnRsZWZ0YXJyb3dzOlwiXFx1MjFDN1wiLGxlZnRyaWdodGFycm93OlwiXFx1MjE5NFwiLExlZnRSaWdodEFycm93OlwiXFx1MjE5NFwiLExlZnRyaWdodGFycm93OlwiXFx1MjFENFwiLGxlZnRyaWdodGFycm93czpcIlxcdTIxQzZcIixsZWZ0cmlnaHRoYXJwb29uczpcIlxcdTIxQ0JcIixsZWZ0cmlnaHRzcXVpZ2Fycm93OlwiXFx1MjFBRFwiLExlZnRSaWdodFZlY3RvcjpcIlxcdTI5NEVcIixMZWZ0VGVlQXJyb3c6XCJcXHUyMUE0XCIsTGVmdFRlZTpcIlxcdTIyQTNcIixMZWZ0VGVlVmVjdG9yOlwiXFx1Mjk1QVwiLGxlZnR0aHJlZXRpbWVzOlwiXFx1MjJDQlwiLExlZnRUcmlhbmdsZUJhcjpcIlxcdTI5Q0ZcIixMZWZ0VHJpYW5nbGU6XCJcXHUyMkIyXCIsTGVmdFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkI0XCIsTGVmdFVwRG93blZlY3RvcjpcIlxcdTI5NTFcIixMZWZ0VXBUZWVWZWN0b3I6XCJcXHUyOTYwXCIsTGVmdFVwVmVjdG9yQmFyOlwiXFx1Mjk1OFwiLExlZnRVcFZlY3RvcjpcIlxcdTIxQkZcIixMZWZ0VmVjdG9yQmFyOlwiXFx1Mjk1MlwiLExlZnRWZWN0b3I6XCJcXHUyMUJDXCIsbEVnOlwiXFx1MkE4QlwiLGxlZzpcIlxcdTIyREFcIixsZXE6XCJcXHUyMjY0XCIsbGVxcTpcIlxcdTIyNjZcIixsZXFzbGFudDpcIlxcdTJBN0RcIixsZXNjYzpcIlxcdTJBQThcIixsZXM6XCJcXHUyQTdEXCIsbGVzZG90OlwiXFx1MkE3RlwiLGxlc2RvdG86XCJcXHUyQTgxXCIsbGVzZG90b3I6XCJcXHUyQTgzXCIsbGVzZzpcIlxcdTIyREFcXHVGRTAwXCIsbGVzZ2VzOlwiXFx1MkE5M1wiLGxlc3NhcHByb3g6XCJcXHUyQTg1XCIsbGVzc2RvdDpcIlxcdTIyRDZcIixsZXNzZXFndHI6XCJcXHUyMkRBXCIsbGVzc2VxcWd0cjpcIlxcdTJBOEJcIixMZXNzRXF1YWxHcmVhdGVyOlwiXFx1MjJEQVwiLExlc3NGdWxsRXF1YWw6XCJcXHUyMjY2XCIsTGVzc0dyZWF0ZXI6XCJcXHUyMjc2XCIsbGVzc2d0cjpcIlxcdTIyNzZcIixMZXNzTGVzczpcIlxcdTJBQTFcIixsZXNzc2ltOlwiXFx1MjI3MlwiLExlc3NTbGFudEVxdWFsOlwiXFx1MkE3RFwiLExlc3NUaWxkZTpcIlxcdTIyNzJcIixsZmlzaHQ6XCJcXHUyOTdDXCIsbGZsb29yOlwiXFx1MjMwQVwiLExmcjpcIlxcdXsxRDUwRn1cIixsZnI6XCJcXHV7MUQ1Mjl9XCIsbGc6XCJcXHUyMjc2XCIsbGdFOlwiXFx1MkE5MVwiLGxIYXI6XCJcXHUyOTYyXCIsbGhhcmQ6XCJcXHUyMUJEXCIsbGhhcnU6XCJcXHUyMUJDXCIsbGhhcnVsOlwiXFx1Mjk2QVwiLGxoYmxrOlwiXFx1MjU4NFwiLExKY3k6XCJcXHUwNDA5XCIsbGpjeTpcIlxcdTA0NTlcIixsbGFycjpcIlxcdTIxQzdcIixsbDpcIlxcdTIyNkFcIixMbDpcIlxcdTIyRDhcIixsbGNvcm5lcjpcIlxcdTIzMUVcIixMbGVmdGFycm93OlwiXFx1MjFEQVwiLGxsaGFyZDpcIlxcdTI5NkJcIixsbHRyaTpcIlxcdTI1RkFcIixMbWlkb3Q6XCJcXHUwMTNGXCIsbG1pZG90OlwiXFx1MDE0MFwiLGxtb3VzdGFjaGU6XCJcXHUyM0IwXCIsbG1vdXN0OlwiXFx1MjNCMFwiLGxuYXA6XCJcXHUyQTg5XCIsbG5hcHByb3g6XCJcXHUyQTg5XCIsbG5lOlwiXFx1MkE4N1wiLGxuRTpcIlxcdTIyNjhcIixsbmVxOlwiXFx1MkE4N1wiLGxuZXFxOlwiXFx1MjI2OFwiLGxuc2ltOlwiXFx1MjJFNlwiLGxvYW5nOlwiXFx1MjdFQ1wiLGxvYXJyOlwiXFx1MjFGRFwiLGxvYnJrOlwiXFx1MjdFNlwiLGxvbmdsZWZ0YXJyb3c6XCJcXHUyN0Y1XCIsTG9uZ0xlZnRBcnJvdzpcIlxcdTI3RjVcIixMb25nbGVmdGFycm93OlwiXFx1MjdGOFwiLGxvbmdsZWZ0cmlnaHRhcnJvdzpcIlxcdTI3RjdcIixMb25nTGVmdFJpZ2h0QXJyb3c6XCJcXHUyN0Y3XCIsTG9uZ2xlZnRyaWdodGFycm93OlwiXFx1MjdGQVwiLGxvbmdtYXBzdG86XCJcXHUyN0ZDXCIsbG9uZ3JpZ2h0YXJyb3c6XCJcXHUyN0Y2XCIsTG9uZ1JpZ2h0QXJyb3c6XCJcXHUyN0Y2XCIsTG9uZ3JpZ2h0YXJyb3c6XCJcXHUyN0Y5XCIsbG9vcGFycm93bGVmdDpcIlxcdTIxQUJcIixsb29wYXJyb3dyaWdodDpcIlxcdTIxQUNcIixsb3BhcjpcIlxcdTI5ODVcIixMb3BmOlwiXFx1ezFENTQzfVwiLGxvcGY6XCJcXHV7MUQ1NUR9XCIsbG9wbHVzOlwiXFx1MkEyRFwiLGxvdGltZXM6XCJcXHUyQTM0XCIsbG93YXN0OlwiXFx1MjIxN1wiLGxvd2JhcjpcIl9cIixMb3dlckxlZnRBcnJvdzpcIlxcdTIxOTlcIixMb3dlclJpZ2h0QXJyb3c6XCJcXHUyMTk4XCIsbG96OlwiXFx1MjVDQVwiLGxvemVuZ2U6XCJcXHUyNUNBXCIsbG96ZjpcIlxcdTI5RUJcIixscGFyOlwiKFwiLGxwYXJsdDpcIlxcdTI5OTNcIixscmFycjpcIlxcdTIxQzZcIixscmNvcm5lcjpcIlxcdTIzMUZcIixscmhhcjpcIlxcdTIxQ0JcIixscmhhcmQ6XCJcXHUyOTZEXCIsbHJtOlwiXFx1MjAwRVwiLGxydHJpOlwiXFx1MjJCRlwiLGxzYXF1bzpcIlxcdTIwMzlcIixsc2NyOlwiXFx1ezFENEMxfVwiLExzY3I6XCJcXHUyMTEyXCIsbHNoOlwiXFx1MjFCMFwiLExzaDpcIlxcdTIxQjBcIixsc2ltOlwiXFx1MjI3MlwiLGxzaW1lOlwiXFx1MkE4RFwiLGxzaW1nOlwiXFx1MkE4RlwiLGxzcWI6XCJbXCIsbHNxdW86XCJcXHUyMDE4XCIsbHNxdW9yOlwiXFx1MjAxQVwiLExzdHJvazpcIlxcdTAxNDFcIixsc3Ryb2s6XCJcXHUwMTQyXCIsbHRjYzpcIlxcdTJBQTZcIixsdGNpcjpcIlxcdTJBNzlcIixsdDpcIjxcIixMVDpcIjxcIixMdDpcIlxcdTIyNkFcIixsdGRvdDpcIlxcdTIyRDZcIixsdGhyZWU6XCJcXHUyMkNCXCIsbHRpbWVzOlwiXFx1MjJDOVwiLGx0bGFycjpcIlxcdTI5NzZcIixsdHF1ZXN0OlwiXFx1MkE3QlwiLGx0cmk6XCJcXHUyNUMzXCIsbHRyaWU6XCJcXHUyMkI0XCIsbHRyaWY6XCJcXHUyNUMyXCIsbHRyUGFyOlwiXFx1Mjk5NlwiLGx1cmRzaGFyOlwiXFx1Mjk0QVwiLGx1cnVoYXI6XCJcXHUyOTY2XCIsbHZlcnRuZXFxOlwiXFx1MjI2OFxcdUZFMDBcIixsdm5FOlwiXFx1MjI2OFxcdUZFMDBcIixtYWNyOlwiXFx4QUZcIixtYWxlOlwiXFx1MjY0MlwiLG1hbHQ6XCJcXHUyNzIwXCIsbWFsdGVzZTpcIlxcdTI3MjBcIixNYXA6XCJcXHUyOTA1XCIsbWFwOlwiXFx1MjFBNlwiLG1hcHN0bzpcIlxcdTIxQTZcIixtYXBzdG9kb3duOlwiXFx1MjFBN1wiLG1hcHN0b2xlZnQ6XCJcXHUyMUE0XCIsbWFwc3RvdXA6XCJcXHUyMUE1XCIsbWFya2VyOlwiXFx1MjVBRVwiLG1jb21tYTpcIlxcdTJBMjlcIixNY3k6XCJcXHUwNDFDXCIsbWN5OlwiXFx1MDQzQ1wiLG1kYXNoOlwiXFx1MjAxNFwiLG1ERG90OlwiXFx1MjIzQVwiLG1lYXN1cmVkYW5nbGU6XCJcXHUyMjIxXCIsTWVkaXVtU3BhY2U6XCJcXHUyMDVGXCIsTWVsbGludHJmOlwiXFx1MjEzM1wiLE1mcjpcIlxcdXsxRDUxMH1cIixtZnI6XCJcXHV7MUQ1MkF9XCIsbWhvOlwiXFx1MjEyN1wiLG1pY3JvOlwiXFx4QjVcIixtaWRhc3Q6XCIqXCIsbWlkY2lyOlwiXFx1MkFGMFwiLG1pZDpcIlxcdTIyMjNcIixtaWRkb3Q6XCJcXHhCN1wiLG1pbnVzYjpcIlxcdTIyOUZcIixtaW51czpcIlxcdTIyMTJcIixtaW51c2Q6XCJcXHUyMjM4XCIsbWludXNkdTpcIlxcdTJBMkFcIixNaW51c1BsdXM6XCJcXHUyMjEzXCIsbWxjcDpcIlxcdTJBREJcIixtbGRyOlwiXFx1MjAyNlwiLG1ucGx1czpcIlxcdTIyMTNcIixtb2RlbHM6XCJcXHUyMkE3XCIsTW9wZjpcIlxcdXsxRDU0NH1cIixtb3BmOlwiXFx1ezFENTVFfVwiLG1wOlwiXFx1MjIxM1wiLG1zY3I6XCJcXHV7MUQ0QzJ9XCIsTXNjcjpcIlxcdTIxMzNcIixtc3Rwb3M6XCJcXHUyMjNFXCIsTXU6XCJcXHUwMzlDXCIsbXU6XCJcXHUwM0JDXCIsbXVsdGltYXA6XCJcXHUyMkI4XCIsbXVtYXA6XCJcXHUyMkI4XCIsbmFibGE6XCJcXHUyMjA3XCIsTmFjdXRlOlwiXFx1MDE0M1wiLG5hY3V0ZTpcIlxcdTAxNDRcIixuYW5nOlwiXFx1MjIyMFxcdTIwRDJcIixuYXA6XCJcXHUyMjQ5XCIsbmFwRTpcIlxcdTJBNzBcXHUwMzM4XCIsbmFwaWQ6XCJcXHUyMjRCXFx1MDMzOFwiLG5hcG9zOlwiXFx1MDE0OVwiLG5hcHByb3g6XCJcXHUyMjQ5XCIsbmF0dXJhbDpcIlxcdTI2NkVcIixuYXR1cmFsczpcIlxcdTIxMTVcIixuYXR1cjpcIlxcdTI2NkVcIixuYnNwOlwiXFx4QTBcIixuYnVtcDpcIlxcdTIyNEVcXHUwMzM4XCIsbmJ1bXBlOlwiXFx1MjI0RlxcdTAzMzhcIixuY2FwOlwiXFx1MkE0M1wiLE5jYXJvbjpcIlxcdTAxNDdcIixuY2Fyb246XCJcXHUwMTQ4XCIsTmNlZGlsOlwiXFx1MDE0NVwiLG5jZWRpbDpcIlxcdTAxNDZcIixuY29uZzpcIlxcdTIyNDdcIixuY29uZ2RvdDpcIlxcdTJBNkRcXHUwMzM4XCIsbmN1cDpcIlxcdTJBNDJcIixOY3k6XCJcXHUwNDFEXCIsbmN5OlwiXFx1MDQzRFwiLG5kYXNoOlwiXFx1MjAxM1wiLG5lYXJoazpcIlxcdTI5MjRcIixuZWFycjpcIlxcdTIxOTdcIixuZUFycjpcIlxcdTIxRDdcIixuZWFycm93OlwiXFx1MjE5N1wiLG5lOlwiXFx1MjI2MFwiLG5lZG90OlwiXFx1MjI1MFxcdTAzMzhcIixOZWdhdGl2ZU1lZGl1bVNwYWNlOlwiXFx1MjAwQlwiLE5lZ2F0aXZlVGhpY2tTcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVRoaW5TcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVZlcnlUaGluU3BhY2U6XCJcXHUyMDBCXCIsbmVxdWl2OlwiXFx1MjI2MlwiLG5lc2VhcjpcIlxcdTI5MjhcIixuZXNpbTpcIlxcdTIyNDJcXHUwMzM4XCIsTmVzdGVkR3JlYXRlckdyZWF0ZXI6XCJcXHUyMjZCXCIsTmVzdGVkTGVzc0xlc3M6XCJcXHUyMjZBXCIsTmV3TGluZTpgXG5gLG5leGlzdDpcIlxcdTIyMDRcIixuZXhpc3RzOlwiXFx1MjIwNFwiLE5mcjpcIlxcdXsxRDUxMX1cIixuZnI6XCJcXHV7MUQ1MkJ9XCIsbmdFOlwiXFx1MjI2N1xcdTAzMzhcIixuZ2U6XCJcXHUyMjcxXCIsbmdlcTpcIlxcdTIyNzFcIixuZ2VxcTpcIlxcdTIyNjdcXHUwMzM4XCIsbmdlcXNsYW50OlwiXFx1MkE3RVxcdTAzMzhcIixuZ2VzOlwiXFx1MkE3RVxcdTAzMzhcIixuR2c6XCJcXHUyMkQ5XFx1MDMzOFwiLG5nc2ltOlwiXFx1MjI3NVwiLG5HdDpcIlxcdTIyNkJcXHUyMEQyXCIsbmd0OlwiXFx1MjI2RlwiLG5ndHI6XCJcXHUyMjZGXCIsbkd0djpcIlxcdTIyNkJcXHUwMzM4XCIsbmhhcnI6XCJcXHUyMUFFXCIsbmhBcnI6XCJcXHUyMUNFXCIsbmhwYXI6XCJcXHUyQUYyXCIsbmk6XCJcXHUyMjBCXCIsbmlzOlwiXFx1MjJGQ1wiLG5pc2Q6XCJcXHUyMkZBXCIsbml2OlwiXFx1MjIwQlwiLE5KY3k6XCJcXHUwNDBBXCIsbmpjeTpcIlxcdTA0NUFcIixubGFycjpcIlxcdTIxOUFcIixubEFycjpcIlxcdTIxQ0RcIixubGRyOlwiXFx1MjAyNVwiLG5sRTpcIlxcdTIyNjZcXHUwMzM4XCIsbmxlOlwiXFx1MjI3MFwiLG5sZWZ0YXJyb3c6XCJcXHUyMTlBXCIsbkxlZnRhcnJvdzpcIlxcdTIxQ0RcIixubGVmdHJpZ2h0YXJyb3c6XCJcXHUyMUFFXCIsbkxlZnRyaWdodGFycm93OlwiXFx1MjFDRVwiLG5sZXE6XCJcXHUyMjcwXCIsbmxlcXE6XCJcXHUyMjY2XFx1MDMzOFwiLG5sZXFzbGFudDpcIlxcdTJBN0RcXHUwMzM4XCIsbmxlczpcIlxcdTJBN0RcXHUwMzM4XCIsbmxlc3M6XCJcXHUyMjZFXCIsbkxsOlwiXFx1MjJEOFxcdTAzMzhcIixubHNpbTpcIlxcdTIyNzRcIixuTHQ6XCJcXHUyMjZBXFx1MjBEMlwiLG5sdDpcIlxcdTIyNkVcIixubHRyaTpcIlxcdTIyRUFcIixubHRyaWU6XCJcXHUyMkVDXCIsbkx0djpcIlxcdTIyNkFcXHUwMzM4XCIsbm1pZDpcIlxcdTIyMjRcIixOb0JyZWFrOlwiXFx1MjA2MFwiLE5vbkJyZWFraW5nU3BhY2U6XCJcXHhBMFwiLG5vcGY6XCJcXHV7MUQ1NUZ9XCIsTm9wZjpcIlxcdTIxMTVcIixOb3Q6XCJcXHUyQUVDXCIsbm90OlwiXFx4QUNcIixOb3RDb25ncnVlbnQ6XCJcXHUyMjYyXCIsTm90Q3VwQ2FwOlwiXFx1MjI2RFwiLE5vdERvdWJsZVZlcnRpY2FsQmFyOlwiXFx1MjIyNlwiLE5vdEVsZW1lbnQ6XCJcXHUyMjA5XCIsTm90RXF1YWw6XCJcXHUyMjYwXCIsTm90RXF1YWxUaWxkZTpcIlxcdTIyNDJcXHUwMzM4XCIsTm90RXhpc3RzOlwiXFx1MjIwNFwiLE5vdEdyZWF0ZXI6XCJcXHUyMjZGXCIsTm90R3JlYXRlckVxdWFsOlwiXFx1MjI3MVwiLE5vdEdyZWF0ZXJGdWxsRXF1YWw6XCJcXHUyMjY3XFx1MDMzOFwiLE5vdEdyZWF0ZXJHcmVhdGVyOlwiXFx1MjI2QlxcdTAzMzhcIixOb3RHcmVhdGVyTGVzczpcIlxcdTIyNzlcIixOb3RHcmVhdGVyU2xhbnRFcXVhbDpcIlxcdTJBN0VcXHUwMzM4XCIsTm90R3JlYXRlclRpbGRlOlwiXFx1MjI3NVwiLE5vdEh1bXBEb3duSHVtcDpcIlxcdTIyNEVcXHUwMzM4XCIsTm90SHVtcEVxdWFsOlwiXFx1MjI0RlxcdTAzMzhcIixub3RpbjpcIlxcdTIyMDlcIixub3RpbmRvdDpcIlxcdTIyRjVcXHUwMzM4XCIsbm90aW5FOlwiXFx1MjJGOVxcdTAzMzhcIixub3RpbnZhOlwiXFx1MjIwOVwiLG5vdGludmI6XCJcXHUyMkY3XCIsbm90aW52YzpcIlxcdTIyRjZcIixOb3RMZWZ0VHJpYW5nbGVCYXI6XCJcXHUyOUNGXFx1MDMzOFwiLE5vdExlZnRUcmlhbmdsZTpcIlxcdTIyRUFcIixOb3RMZWZ0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRUNcIixOb3RMZXNzOlwiXFx1MjI2RVwiLE5vdExlc3NFcXVhbDpcIlxcdTIyNzBcIixOb3RMZXNzR3JlYXRlcjpcIlxcdTIyNzhcIixOb3RMZXNzTGVzczpcIlxcdTIyNkFcXHUwMzM4XCIsTm90TGVzc1NsYW50RXF1YWw6XCJcXHUyQTdEXFx1MDMzOFwiLE5vdExlc3NUaWxkZTpcIlxcdTIyNzRcIixOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjpcIlxcdTJBQTJcXHUwMzM4XCIsTm90TmVzdGVkTGVzc0xlc3M6XCJcXHUyQUExXFx1MDMzOFwiLG5vdG5pOlwiXFx1MjIwQ1wiLG5vdG5pdmE6XCJcXHUyMjBDXCIsbm90bml2YjpcIlxcdTIyRkVcIixub3RuaXZjOlwiXFx1MjJGRFwiLE5vdFByZWNlZGVzOlwiXFx1MjI4MFwiLE5vdFByZWNlZGVzRXF1YWw6XCJcXHUyQUFGXFx1MDMzOFwiLE5vdFByZWNlZGVzU2xhbnRFcXVhbDpcIlxcdTIyRTBcIixOb3RSZXZlcnNlRWxlbWVudDpcIlxcdTIyMENcIixOb3RSaWdodFRyaWFuZ2xlQmFyOlwiXFx1MjlEMFxcdTAzMzhcIixOb3RSaWdodFRyaWFuZ2xlOlwiXFx1MjJFQlwiLE5vdFJpZ2h0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRURcIixOb3RTcXVhcmVTdWJzZXQ6XCJcXHUyMjhGXFx1MDMzOFwiLE5vdFNxdWFyZVN1YnNldEVxdWFsOlwiXFx1MjJFMlwiLE5vdFNxdWFyZVN1cGVyc2V0OlwiXFx1MjI5MFxcdTAzMzhcIixOb3RTcXVhcmVTdXBlcnNldEVxdWFsOlwiXFx1MjJFM1wiLE5vdFN1YnNldDpcIlxcdTIyODJcXHUyMEQyXCIsTm90U3Vic2V0RXF1YWw6XCJcXHUyMjg4XCIsTm90U3VjY2VlZHM6XCJcXHUyMjgxXCIsTm90U3VjY2VlZHNFcXVhbDpcIlxcdTJBQjBcXHUwMzM4XCIsTm90U3VjY2VlZHNTbGFudEVxdWFsOlwiXFx1MjJFMVwiLE5vdFN1Y2NlZWRzVGlsZGU6XCJcXHUyMjdGXFx1MDMzOFwiLE5vdFN1cGVyc2V0OlwiXFx1MjI4M1xcdTIwRDJcIixOb3RTdXBlcnNldEVxdWFsOlwiXFx1MjI4OVwiLE5vdFRpbGRlOlwiXFx1MjI0MVwiLE5vdFRpbGRlRXF1YWw6XCJcXHUyMjQ0XCIsTm90VGlsZGVGdWxsRXF1YWw6XCJcXHUyMjQ3XCIsTm90VGlsZGVUaWxkZTpcIlxcdTIyNDlcIixOb3RWZXJ0aWNhbEJhcjpcIlxcdTIyMjRcIixucGFyYWxsZWw6XCJcXHUyMjI2XCIsbnBhcjpcIlxcdTIyMjZcIixucGFyc2w6XCJcXHUyQUZEXFx1MjBFNVwiLG5wYXJ0OlwiXFx1MjIwMlxcdTAzMzhcIixucG9saW50OlwiXFx1MkExNFwiLG5wcjpcIlxcdTIyODBcIixucHJjdWU6XCJcXHUyMkUwXCIsbnByZWM6XCJcXHUyMjgwXCIsbnByZWNlcTpcIlxcdTJBQUZcXHUwMzM4XCIsbnByZTpcIlxcdTJBQUZcXHUwMzM4XCIsbnJhcnJjOlwiXFx1MjkzM1xcdTAzMzhcIixucmFycjpcIlxcdTIxOUJcIixuckFycjpcIlxcdTIxQ0ZcIixucmFycnc6XCJcXHUyMTlEXFx1MDMzOFwiLG5yaWdodGFycm93OlwiXFx1MjE5QlwiLG5SaWdodGFycm93OlwiXFx1MjFDRlwiLG5ydHJpOlwiXFx1MjJFQlwiLG5ydHJpZTpcIlxcdTIyRURcIixuc2M6XCJcXHUyMjgxXCIsbnNjY3VlOlwiXFx1MjJFMVwiLG5zY2U6XCJcXHUyQUIwXFx1MDMzOFwiLE5zY3I6XCJcXHV7MUQ0QTl9XCIsbnNjcjpcIlxcdXsxRDRDM31cIixuc2hvcnRtaWQ6XCJcXHUyMjI0XCIsbnNob3J0cGFyYWxsZWw6XCJcXHUyMjI2XCIsbnNpbTpcIlxcdTIyNDFcIixuc2ltZTpcIlxcdTIyNDRcIixuc2ltZXE6XCJcXHUyMjQ0XCIsbnNtaWQ6XCJcXHUyMjI0XCIsbnNwYXI6XCJcXHUyMjI2XCIsbnNxc3ViZTpcIlxcdTIyRTJcIixuc3FzdXBlOlwiXFx1MjJFM1wiLG5zdWI6XCJcXHUyMjg0XCIsbnN1YkU6XCJcXHUyQUM1XFx1MDMzOFwiLG5zdWJlOlwiXFx1MjI4OFwiLG5zdWJzZXQ6XCJcXHUyMjgyXFx1MjBEMlwiLG5zdWJzZXRlcTpcIlxcdTIyODhcIixuc3Vic2V0ZXFxOlwiXFx1MkFDNVxcdTAzMzhcIixuc3VjYzpcIlxcdTIyODFcIixuc3VjY2VxOlwiXFx1MkFCMFxcdTAzMzhcIixuc3VwOlwiXFx1MjI4NVwiLG5zdXBFOlwiXFx1MkFDNlxcdTAzMzhcIixuc3VwZTpcIlxcdTIyODlcIixuc3Vwc2V0OlwiXFx1MjI4M1xcdTIwRDJcIixuc3Vwc2V0ZXE6XCJcXHUyMjg5XCIsbnN1cHNldGVxcTpcIlxcdTJBQzZcXHUwMzM4XCIsbnRnbDpcIlxcdTIyNzlcIixOdGlsZGU6XCJcXHhEMVwiLG50aWxkZTpcIlxceEYxXCIsbnRsZzpcIlxcdTIyNzhcIixudHJpYW5nbGVsZWZ0OlwiXFx1MjJFQVwiLG50cmlhbmdsZWxlZnRlcTpcIlxcdTIyRUNcIixudHJpYW5nbGVyaWdodDpcIlxcdTIyRUJcIixudHJpYW5nbGVyaWdodGVxOlwiXFx1MjJFRFwiLE51OlwiXFx1MDM5RFwiLG51OlwiXFx1MDNCRFwiLG51bTpcIiNcIixudW1lcm86XCJcXHUyMTE2XCIsbnVtc3A6XCJcXHUyMDA3XCIsbnZhcDpcIlxcdTIyNERcXHUyMEQyXCIsbnZkYXNoOlwiXFx1MjJBQ1wiLG52RGFzaDpcIlxcdTIyQURcIixuVmRhc2g6XCJcXHUyMkFFXCIsblZEYXNoOlwiXFx1MjJBRlwiLG52Z2U6XCJcXHUyMjY1XFx1MjBEMlwiLG52Z3Q6XCI+XFx1MjBEMlwiLG52SGFycjpcIlxcdTI5MDRcIixudmluZmluOlwiXFx1MjlERVwiLG52bEFycjpcIlxcdTI5MDJcIixudmxlOlwiXFx1MjI2NFxcdTIwRDJcIixudmx0OlwiPFxcdTIwRDJcIixudmx0cmllOlwiXFx1MjJCNFxcdTIwRDJcIixudnJBcnI6XCJcXHUyOTAzXCIsbnZydHJpZTpcIlxcdTIyQjVcXHUyMEQyXCIsbnZzaW06XCJcXHUyMjNDXFx1MjBEMlwiLG53YXJoazpcIlxcdTI5MjNcIixud2FycjpcIlxcdTIxOTZcIixud0FycjpcIlxcdTIxRDZcIixud2Fycm93OlwiXFx1MjE5NlwiLG53bmVhcjpcIlxcdTI5MjdcIixPYWN1dGU6XCJcXHhEM1wiLG9hY3V0ZTpcIlxceEYzXCIsb2FzdDpcIlxcdTIyOUJcIixPY2lyYzpcIlxceEQ0XCIsb2NpcmM6XCJcXHhGNFwiLG9jaXI6XCJcXHUyMjlBXCIsT2N5OlwiXFx1MDQxRVwiLG9jeTpcIlxcdTA0M0VcIixvZGFzaDpcIlxcdTIyOURcIixPZGJsYWM6XCJcXHUwMTUwXCIsb2RibGFjOlwiXFx1MDE1MVwiLG9kaXY6XCJcXHUyQTM4XCIsb2RvdDpcIlxcdTIyOTlcIixvZHNvbGQ6XCJcXHUyOUJDXCIsT0VsaWc6XCJcXHUwMTUyXCIsb2VsaWc6XCJcXHUwMTUzXCIsb2ZjaXI6XCJcXHUyOUJGXCIsT2ZyOlwiXFx1ezFENTEyfVwiLG9mcjpcIlxcdXsxRDUyQ31cIixvZ29uOlwiXFx1MDJEQlwiLE9ncmF2ZTpcIlxceEQyXCIsb2dyYXZlOlwiXFx4RjJcIixvZ3Q6XCJcXHUyOUMxXCIsb2hiYXI6XCJcXHUyOUI1XCIsb2htOlwiXFx1MDNBOVwiLG9pbnQ6XCJcXHUyMjJFXCIsb2xhcnI6XCJcXHUyMUJBXCIsb2xjaXI6XCJcXHUyOUJFXCIsb2xjcm9zczpcIlxcdTI5QkJcIixvbGluZTpcIlxcdTIwM0VcIixvbHQ6XCJcXHUyOUMwXCIsT21hY3I6XCJcXHUwMTRDXCIsb21hY3I6XCJcXHUwMTREXCIsT21lZ2E6XCJcXHUwM0E5XCIsb21lZ2E6XCJcXHUwM0M5XCIsT21pY3JvbjpcIlxcdTAzOUZcIixvbWljcm9uOlwiXFx1MDNCRlwiLG9taWQ6XCJcXHUyOUI2XCIsb21pbnVzOlwiXFx1MjI5NlwiLE9vcGY6XCJcXHV7MUQ1NDZ9XCIsb29wZjpcIlxcdXsxRDU2MH1cIixvcGFyOlwiXFx1MjlCN1wiLE9wZW5DdXJseURvdWJsZVF1b3RlOlwiXFx1MjAxQ1wiLE9wZW5DdXJseVF1b3RlOlwiXFx1MjAxOFwiLG9wZXJwOlwiXFx1MjlCOVwiLG9wbHVzOlwiXFx1MjI5NVwiLG9yYXJyOlwiXFx1MjFCQlwiLE9yOlwiXFx1MkE1NFwiLG9yOlwiXFx1MjIyOFwiLG9yZDpcIlxcdTJBNURcIixvcmRlcjpcIlxcdTIxMzRcIixvcmRlcm9mOlwiXFx1MjEzNFwiLG9yZGY6XCJcXHhBQVwiLG9yZG06XCJcXHhCQVwiLG9yaWdvZjpcIlxcdTIyQjZcIixvcm9yOlwiXFx1MkE1NlwiLG9yc2xvcGU6XCJcXHUyQTU3XCIsb3J2OlwiXFx1MkE1QlwiLG9TOlwiXFx1MjRDOFwiLE9zY3I6XCJcXHV7MUQ0QUF9XCIsb3NjcjpcIlxcdTIxMzRcIixPc2xhc2g6XCJcXHhEOFwiLG9zbGFzaDpcIlxceEY4XCIsb3NvbDpcIlxcdTIyOThcIixPdGlsZGU6XCJcXHhENVwiLG90aWxkZTpcIlxceEY1XCIsb3RpbWVzYXM6XCJcXHUyQTM2XCIsT3RpbWVzOlwiXFx1MkEzN1wiLG90aW1lczpcIlxcdTIyOTdcIixPdW1sOlwiXFx4RDZcIixvdW1sOlwiXFx4RjZcIixvdmJhcjpcIlxcdTIzM0RcIixPdmVyQmFyOlwiXFx1MjAzRVwiLE92ZXJCcmFjZTpcIlxcdTIzREVcIixPdmVyQnJhY2tldDpcIlxcdTIzQjRcIixPdmVyUGFyZW50aGVzaXM6XCJcXHUyM0RDXCIscGFyYTpcIlxceEI2XCIscGFyYWxsZWw6XCJcXHUyMjI1XCIscGFyOlwiXFx1MjIyNVwiLHBhcnNpbTpcIlxcdTJBRjNcIixwYXJzbDpcIlxcdTJBRkRcIixwYXJ0OlwiXFx1MjIwMlwiLFBhcnRpYWxEOlwiXFx1MjIwMlwiLFBjeTpcIlxcdTA0MUZcIixwY3k6XCJcXHUwNDNGXCIscGVyY250OlwiJVwiLHBlcmlvZDpcIi5cIixwZXJtaWw6XCJcXHUyMDMwXCIscGVycDpcIlxcdTIyQTVcIixwZXJ0ZW5rOlwiXFx1MjAzMVwiLFBmcjpcIlxcdXsxRDUxM31cIixwZnI6XCJcXHV7MUQ1MkR9XCIsUGhpOlwiXFx1MDNBNlwiLHBoaTpcIlxcdTAzQzZcIixwaGl2OlwiXFx1MDNENVwiLHBobW1hdDpcIlxcdTIxMzNcIixwaG9uZTpcIlxcdTI2MEVcIixQaTpcIlxcdTAzQTBcIixwaTpcIlxcdTAzQzBcIixwaXRjaGZvcms6XCJcXHUyMkQ0XCIscGl2OlwiXFx1MDNENlwiLHBsYW5jazpcIlxcdTIxMEZcIixwbGFuY2toOlwiXFx1MjEwRVwiLHBsYW5rdjpcIlxcdTIxMEZcIixwbHVzYWNpcjpcIlxcdTJBMjNcIixwbHVzYjpcIlxcdTIyOUVcIixwbHVzY2lyOlwiXFx1MkEyMlwiLHBsdXM6XCIrXCIscGx1c2RvOlwiXFx1MjIxNFwiLHBsdXNkdTpcIlxcdTJBMjVcIixwbHVzZTpcIlxcdTJBNzJcIixQbHVzTWludXM6XCJcXHhCMVwiLHBsdXNtbjpcIlxceEIxXCIscGx1c3NpbTpcIlxcdTJBMjZcIixwbHVzdHdvOlwiXFx1MkEyN1wiLHBtOlwiXFx4QjFcIixQb2luY2FyZXBsYW5lOlwiXFx1MjEwQ1wiLHBvaW50aW50OlwiXFx1MkExNVwiLHBvcGY6XCJcXHV7MUQ1NjF9XCIsUG9wZjpcIlxcdTIxMTlcIixwb3VuZDpcIlxceEEzXCIscHJhcDpcIlxcdTJBQjdcIixQcjpcIlxcdTJBQkJcIixwcjpcIlxcdTIyN0FcIixwcmN1ZTpcIlxcdTIyN0NcIixwcmVjYXBwcm94OlwiXFx1MkFCN1wiLHByZWM6XCJcXHUyMjdBXCIscHJlY2N1cmx5ZXE6XCJcXHUyMjdDXCIsUHJlY2VkZXM6XCJcXHUyMjdBXCIsUHJlY2VkZXNFcXVhbDpcIlxcdTJBQUZcIixQcmVjZWRlc1NsYW50RXF1YWw6XCJcXHUyMjdDXCIsUHJlY2VkZXNUaWxkZTpcIlxcdTIyN0VcIixwcmVjZXE6XCJcXHUyQUFGXCIscHJlY25hcHByb3g6XCJcXHUyQUI5XCIscHJlY25lcXE6XCJcXHUyQUI1XCIscHJlY25zaW06XCJcXHUyMkU4XCIscHJlOlwiXFx1MkFBRlwiLHByRTpcIlxcdTJBQjNcIixwcmVjc2ltOlwiXFx1MjI3RVwiLHByaW1lOlwiXFx1MjAzMlwiLFByaW1lOlwiXFx1MjAzM1wiLHByaW1lczpcIlxcdTIxMTlcIixwcm5hcDpcIlxcdTJBQjlcIixwcm5FOlwiXFx1MkFCNVwiLHBybnNpbTpcIlxcdTIyRThcIixwcm9kOlwiXFx1MjIwRlwiLFByb2R1Y3Q6XCJcXHUyMjBGXCIscHJvZmFsYXI6XCJcXHUyMzJFXCIscHJvZmxpbmU6XCJcXHUyMzEyXCIscHJvZnN1cmY6XCJcXHUyMzEzXCIscHJvcDpcIlxcdTIyMURcIixQcm9wb3J0aW9uYWw6XCJcXHUyMjFEXCIsUHJvcG9ydGlvbjpcIlxcdTIyMzdcIixwcm9wdG86XCJcXHUyMjFEXCIscHJzaW06XCJcXHUyMjdFXCIscHJ1cmVsOlwiXFx1MjJCMFwiLFBzY3I6XCJcXHV7MUQ0QUJ9XCIscHNjcjpcIlxcdXsxRDRDNX1cIixQc2k6XCJcXHUwM0E4XCIscHNpOlwiXFx1MDNDOFwiLHB1bmNzcDpcIlxcdTIwMDhcIixRZnI6XCJcXHV7MUQ1MTR9XCIscWZyOlwiXFx1ezFENTJFfVwiLHFpbnQ6XCJcXHUyQTBDXCIscW9wZjpcIlxcdXsxRDU2Mn1cIixRb3BmOlwiXFx1MjExQVwiLHFwcmltZTpcIlxcdTIwNTdcIixRc2NyOlwiXFx1ezFENEFDfVwiLHFzY3I6XCJcXHV7MUQ0QzZ9XCIscXVhdGVybmlvbnM6XCJcXHUyMTBEXCIscXVhdGludDpcIlxcdTJBMTZcIixxdWVzdDpcIj9cIixxdWVzdGVxOlwiXFx1MjI1RlwiLHF1b3Q6J1wiJyxRVU9UOidcIicsckFhcnI6XCJcXHUyMURCXCIscmFjZTpcIlxcdTIyM0RcXHUwMzMxXCIsUmFjdXRlOlwiXFx1MDE1NFwiLHJhY3V0ZTpcIlxcdTAxNTVcIixyYWRpYzpcIlxcdTIyMUFcIixyYWVtcHR5djpcIlxcdTI5QjNcIixyYW5nOlwiXFx1MjdFOVwiLFJhbmc6XCJcXHUyN0VCXCIscmFuZ2Q6XCJcXHUyOTkyXCIscmFuZ2U6XCJcXHUyOUE1XCIscmFuZ2xlOlwiXFx1MjdFOVwiLHJhcXVvOlwiXFx4QkJcIixyYXJyYXA6XCJcXHUyOTc1XCIscmFycmI6XCJcXHUyMUU1XCIscmFycmJmczpcIlxcdTI5MjBcIixyYXJyYzpcIlxcdTI5MzNcIixyYXJyOlwiXFx1MjE5MlwiLFJhcnI6XCJcXHUyMUEwXCIsckFycjpcIlxcdTIxRDJcIixyYXJyZnM6XCJcXHUyOTFFXCIscmFycmhrOlwiXFx1MjFBQVwiLHJhcnJscDpcIlxcdTIxQUNcIixyYXJycGw6XCJcXHUyOTQ1XCIscmFycnNpbTpcIlxcdTI5NzRcIixSYXJydGw6XCJcXHUyOTE2XCIscmFycnRsOlwiXFx1MjFBM1wiLHJhcnJ3OlwiXFx1MjE5RFwiLHJhdGFpbDpcIlxcdTI5MUFcIixyQXRhaWw6XCJcXHUyOTFDXCIscmF0aW86XCJcXHUyMjM2XCIscmF0aW9uYWxzOlwiXFx1MjExQVwiLHJiYXJyOlwiXFx1MjkwRFwiLHJCYXJyOlwiXFx1MjkwRlwiLFJCYXJyOlwiXFx1MjkxMFwiLHJiYnJrOlwiXFx1Mjc3M1wiLHJicmFjZTpcIn1cIixyYnJhY2s6XCJdXCIscmJya2U6XCJcXHUyOThDXCIscmJya3NsZDpcIlxcdTI5OEVcIixyYnJrc2x1OlwiXFx1Mjk5MFwiLFJjYXJvbjpcIlxcdTAxNThcIixyY2Fyb246XCJcXHUwMTU5XCIsUmNlZGlsOlwiXFx1MDE1NlwiLHJjZWRpbDpcIlxcdTAxNTdcIixyY2VpbDpcIlxcdTIzMDlcIixyY3ViOlwifVwiLFJjeTpcIlxcdTA0MjBcIixyY3k6XCJcXHUwNDQwXCIscmRjYTpcIlxcdTI5MzdcIixyZGxkaGFyOlwiXFx1Mjk2OVwiLHJkcXVvOlwiXFx1MjAxRFwiLHJkcXVvcjpcIlxcdTIwMURcIixyZHNoOlwiXFx1MjFCM1wiLHJlYWw6XCJcXHUyMTFDXCIscmVhbGluZTpcIlxcdTIxMUJcIixyZWFscGFydDpcIlxcdTIxMUNcIixyZWFsczpcIlxcdTIxMURcIixSZTpcIlxcdTIxMUNcIixyZWN0OlwiXFx1MjVBRFwiLHJlZzpcIlxceEFFXCIsUkVHOlwiXFx4QUVcIixSZXZlcnNlRWxlbWVudDpcIlxcdTIyMEJcIixSZXZlcnNlRXF1aWxpYnJpdW06XCJcXHUyMUNCXCIsUmV2ZXJzZVVwRXF1aWxpYnJpdW06XCJcXHUyOTZGXCIscmZpc2h0OlwiXFx1Mjk3RFwiLHJmbG9vcjpcIlxcdTIzMEJcIixyZnI6XCJcXHV7MUQ1MkZ9XCIsUmZyOlwiXFx1MjExQ1wiLHJIYXI6XCJcXHUyOTY0XCIscmhhcmQ6XCJcXHUyMUMxXCIscmhhcnU6XCJcXHUyMUMwXCIscmhhcnVsOlwiXFx1Mjk2Q1wiLFJobzpcIlxcdTAzQTFcIixyaG86XCJcXHUwM0MxXCIscmhvdjpcIlxcdTAzRjFcIixSaWdodEFuZ2xlQnJhY2tldDpcIlxcdTI3RTlcIixSaWdodEFycm93QmFyOlwiXFx1MjFFNVwiLHJpZ2h0YXJyb3c6XCJcXHUyMTkyXCIsUmlnaHRBcnJvdzpcIlxcdTIxOTJcIixSaWdodGFycm93OlwiXFx1MjFEMlwiLFJpZ2h0QXJyb3dMZWZ0QXJyb3c6XCJcXHUyMUM0XCIscmlnaHRhcnJvd3RhaWw6XCJcXHUyMUEzXCIsUmlnaHRDZWlsaW5nOlwiXFx1MjMwOVwiLFJpZ2h0RG91YmxlQnJhY2tldDpcIlxcdTI3RTdcIixSaWdodERvd25UZWVWZWN0b3I6XCJcXHUyOTVEXCIsUmlnaHREb3duVmVjdG9yQmFyOlwiXFx1Mjk1NVwiLFJpZ2h0RG93blZlY3RvcjpcIlxcdTIxQzJcIixSaWdodEZsb29yOlwiXFx1MjMwQlwiLHJpZ2h0aGFycG9vbmRvd246XCJcXHUyMUMxXCIscmlnaHRoYXJwb29udXA6XCJcXHUyMUMwXCIscmlnaHRsZWZ0YXJyb3dzOlwiXFx1MjFDNFwiLHJpZ2h0bGVmdGhhcnBvb25zOlwiXFx1MjFDQ1wiLHJpZ2h0cmlnaHRhcnJvd3M6XCJcXHUyMUM5XCIscmlnaHRzcXVpZ2Fycm93OlwiXFx1MjE5RFwiLFJpZ2h0VGVlQXJyb3c6XCJcXHUyMUE2XCIsUmlnaHRUZWU6XCJcXHUyMkEyXCIsUmlnaHRUZWVWZWN0b3I6XCJcXHUyOTVCXCIscmlnaHR0aHJlZXRpbWVzOlwiXFx1MjJDQ1wiLFJpZ2h0VHJpYW5nbGVCYXI6XCJcXHUyOUQwXCIsUmlnaHRUcmlhbmdsZTpcIlxcdTIyQjNcIixSaWdodFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkI1XCIsUmlnaHRVcERvd25WZWN0b3I6XCJcXHUyOTRGXCIsUmlnaHRVcFRlZVZlY3RvcjpcIlxcdTI5NUNcIixSaWdodFVwVmVjdG9yQmFyOlwiXFx1Mjk1NFwiLFJpZ2h0VXBWZWN0b3I6XCJcXHUyMUJFXCIsUmlnaHRWZWN0b3JCYXI6XCJcXHUyOTUzXCIsUmlnaHRWZWN0b3I6XCJcXHUyMUMwXCIscmluZzpcIlxcdTAyREFcIixyaXNpbmdkb3RzZXE6XCJcXHUyMjUzXCIscmxhcnI6XCJcXHUyMUM0XCIscmxoYXI6XCJcXHUyMUNDXCIscmxtOlwiXFx1MjAwRlwiLHJtb3VzdGFjaGU6XCJcXHUyM0IxXCIscm1vdXN0OlwiXFx1MjNCMVwiLHJubWlkOlwiXFx1MkFFRVwiLHJvYW5nOlwiXFx1MjdFRFwiLHJvYXJyOlwiXFx1MjFGRVwiLHJvYnJrOlwiXFx1MjdFN1wiLHJvcGFyOlwiXFx1Mjk4NlwiLHJvcGY6XCJcXHV7MUQ1NjN9XCIsUm9wZjpcIlxcdTIxMURcIixyb3BsdXM6XCJcXHUyQTJFXCIscm90aW1lczpcIlxcdTJBMzVcIixSb3VuZEltcGxpZXM6XCJcXHUyOTcwXCIscnBhcjpcIilcIixycGFyZ3Q6XCJcXHUyOTk0XCIscnBwb2xpbnQ6XCJcXHUyQTEyXCIscnJhcnI6XCJcXHUyMUM5XCIsUnJpZ2h0YXJyb3c6XCJcXHUyMURCXCIscnNhcXVvOlwiXFx1MjAzQVwiLHJzY3I6XCJcXHV7MUQ0Qzd9XCIsUnNjcjpcIlxcdTIxMUJcIixyc2g6XCJcXHUyMUIxXCIsUnNoOlwiXFx1MjFCMVwiLHJzcWI6XCJdXCIscnNxdW86XCJcXHUyMDE5XCIscnNxdW9yOlwiXFx1MjAxOVwiLHJ0aHJlZTpcIlxcdTIyQ0NcIixydGltZXM6XCJcXHUyMkNBXCIscnRyaTpcIlxcdTI1QjlcIixydHJpZTpcIlxcdTIyQjVcIixydHJpZjpcIlxcdTI1QjhcIixydHJpbHRyaTpcIlxcdTI5Q0VcIixSdWxlRGVsYXllZDpcIlxcdTI5RjRcIixydWx1aGFyOlwiXFx1Mjk2OFwiLHJ4OlwiXFx1MjExRVwiLFNhY3V0ZTpcIlxcdTAxNUFcIixzYWN1dGU6XCJcXHUwMTVCXCIsc2JxdW86XCJcXHUyMDFBXCIsc2NhcDpcIlxcdTJBQjhcIixTY2Fyb246XCJcXHUwMTYwXCIsc2Nhcm9uOlwiXFx1MDE2MVwiLFNjOlwiXFx1MkFCQ1wiLHNjOlwiXFx1MjI3QlwiLHNjY3VlOlwiXFx1MjI3RFwiLHNjZTpcIlxcdTJBQjBcIixzY0U6XCJcXHUyQUI0XCIsU2NlZGlsOlwiXFx1MDE1RVwiLHNjZWRpbDpcIlxcdTAxNUZcIixTY2lyYzpcIlxcdTAxNUNcIixzY2lyYzpcIlxcdTAxNURcIixzY25hcDpcIlxcdTJBQkFcIixzY25FOlwiXFx1MkFCNlwiLHNjbnNpbTpcIlxcdTIyRTlcIixzY3BvbGludDpcIlxcdTJBMTNcIixzY3NpbTpcIlxcdTIyN0ZcIixTY3k6XCJcXHUwNDIxXCIsc2N5OlwiXFx1MDQ0MVwiLHNkb3RiOlwiXFx1MjJBMVwiLHNkb3Q6XCJcXHUyMkM1XCIsc2RvdGU6XCJcXHUyQTY2XCIsc2VhcmhrOlwiXFx1MjkyNVwiLHNlYXJyOlwiXFx1MjE5OFwiLHNlQXJyOlwiXFx1MjFEOFwiLHNlYXJyb3c6XCJcXHUyMTk4XCIsc2VjdDpcIlxceEE3XCIsc2VtaTpcIjtcIixzZXN3YXI6XCJcXHUyOTI5XCIsc2V0bWludXM6XCJcXHUyMjE2XCIsc2V0bW46XCJcXHUyMjE2XCIsc2V4dDpcIlxcdTI3MzZcIixTZnI6XCJcXHV7MUQ1MTZ9XCIsc2ZyOlwiXFx1ezFENTMwfVwiLHNmcm93bjpcIlxcdTIzMjJcIixzaGFycDpcIlxcdTI2NkZcIixTSENIY3k6XCJcXHUwNDI5XCIsc2hjaGN5OlwiXFx1MDQ0OVwiLFNIY3k6XCJcXHUwNDI4XCIsc2hjeTpcIlxcdTA0NDhcIixTaG9ydERvd25BcnJvdzpcIlxcdTIxOTNcIixTaG9ydExlZnRBcnJvdzpcIlxcdTIxOTBcIixzaG9ydG1pZDpcIlxcdTIyMjNcIixzaG9ydHBhcmFsbGVsOlwiXFx1MjIyNVwiLFNob3J0UmlnaHRBcnJvdzpcIlxcdTIxOTJcIixTaG9ydFVwQXJyb3c6XCJcXHUyMTkxXCIsc2h5OlwiXFx4QURcIixTaWdtYTpcIlxcdTAzQTNcIixzaWdtYTpcIlxcdTAzQzNcIixzaWdtYWY6XCJcXHUwM0MyXCIsc2lnbWF2OlwiXFx1MDNDMlwiLHNpbTpcIlxcdTIyM0NcIixzaW1kb3Q6XCJcXHUyQTZBXCIsc2ltZTpcIlxcdTIyNDNcIixzaW1lcTpcIlxcdTIyNDNcIixzaW1nOlwiXFx1MkE5RVwiLHNpbWdFOlwiXFx1MkFBMFwiLHNpbWw6XCJcXHUyQTlEXCIsc2ltbEU6XCJcXHUyQTlGXCIsc2ltbmU6XCJcXHUyMjQ2XCIsc2ltcGx1czpcIlxcdTJBMjRcIixzaW1yYXJyOlwiXFx1Mjk3MlwiLHNsYXJyOlwiXFx1MjE5MFwiLFNtYWxsQ2lyY2xlOlwiXFx1MjIxOFwiLHNtYWxsc2V0bWludXM6XCJcXHUyMjE2XCIsc21hc2hwOlwiXFx1MkEzM1wiLHNtZXBhcnNsOlwiXFx1MjlFNFwiLHNtaWQ6XCJcXHUyMjIzXCIsc21pbGU6XCJcXHUyMzIzXCIsc210OlwiXFx1MkFBQVwiLHNtdGU6XCJcXHUyQUFDXCIsc210ZXM6XCJcXHUyQUFDXFx1RkUwMFwiLFNPRlRjeTpcIlxcdTA0MkNcIixzb2Z0Y3k6XCJcXHUwNDRDXCIsc29sYmFyOlwiXFx1MjMzRlwiLHNvbGI6XCJcXHUyOUM0XCIsc29sOlwiL1wiLFNvcGY6XCJcXHV7MUQ1NEF9XCIsc29wZjpcIlxcdXsxRDU2NH1cIixzcGFkZXM6XCJcXHUyNjYwXCIsc3BhZGVzdWl0OlwiXFx1MjY2MFwiLHNwYXI6XCJcXHUyMjI1XCIsc3FjYXA6XCJcXHUyMjkzXCIsc3FjYXBzOlwiXFx1MjI5M1xcdUZFMDBcIixzcWN1cDpcIlxcdTIyOTRcIixzcWN1cHM6XCJcXHUyMjk0XFx1RkUwMFwiLFNxcnQ6XCJcXHUyMjFBXCIsc3FzdWI6XCJcXHUyMjhGXCIsc3FzdWJlOlwiXFx1MjI5MVwiLHNxc3Vic2V0OlwiXFx1MjI4RlwiLHNxc3Vic2V0ZXE6XCJcXHUyMjkxXCIsc3FzdXA6XCJcXHUyMjkwXCIsc3FzdXBlOlwiXFx1MjI5MlwiLHNxc3Vwc2V0OlwiXFx1MjI5MFwiLHNxc3Vwc2V0ZXE6XCJcXHUyMjkyXCIsc3F1YXJlOlwiXFx1MjVBMVwiLFNxdWFyZTpcIlxcdTI1QTFcIixTcXVhcmVJbnRlcnNlY3Rpb246XCJcXHUyMjkzXCIsU3F1YXJlU3Vic2V0OlwiXFx1MjI4RlwiLFNxdWFyZVN1YnNldEVxdWFsOlwiXFx1MjI5MVwiLFNxdWFyZVN1cGVyc2V0OlwiXFx1MjI5MFwiLFNxdWFyZVN1cGVyc2V0RXF1YWw6XCJcXHUyMjkyXCIsU3F1YXJlVW5pb246XCJcXHUyMjk0XCIsc3F1YXJmOlwiXFx1MjVBQVwiLHNxdTpcIlxcdTI1QTFcIixzcXVmOlwiXFx1MjVBQVwiLHNyYXJyOlwiXFx1MjE5MlwiLFNzY3I6XCJcXHV7MUQ0QUV9XCIsc3NjcjpcIlxcdXsxRDRDOH1cIixzc2V0bW46XCJcXHUyMjE2XCIsc3NtaWxlOlwiXFx1MjMyM1wiLHNzdGFyZjpcIlxcdTIyQzZcIixTdGFyOlwiXFx1MjJDNlwiLHN0YXI6XCJcXHUyNjA2XCIsc3RhcmY6XCJcXHUyNjA1XCIsc3RyYWlnaHRlcHNpbG9uOlwiXFx1MDNGNVwiLHN0cmFpZ2h0cGhpOlwiXFx1MDNENVwiLHN0cm5zOlwiXFx4QUZcIixzdWI6XCJcXHUyMjgyXCIsU3ViOlwiXFx1MjJEMFwiLHN1YmRvdDpcIlxcdTJBQkRcIixzdWJFOlwiXFx1MkFDNVwiLHN1YmU6XCJcXHUyMjg2XCIsc3ViZWRvdDpcIlxcdTJBQzNcIixzdWJtdWx0OlwiXFx1MkFDMVwiLHN1Ym5FOlwiXFx1MkFDQlwiLHN1Ym5lOlwiXFx1MjI4QVwiLHN1YnBsdXM6XCJcXHUyQUJGXCIsc3VicmFycjpcIlxcdTI5NzlcIixzdWJzZXQ6XCJcXHUyMjgyXCIsU3Vic2V0OlwiXFx1MjJEMFwiLHN1YnNldGVxOlwiXFx1MjI4NlwiLHN1YnNldGVxcTpcIlxcdTJBQzVcIixTdWJzZXRFcXVhbDpcIlxcdTIyODZcIixzdWJzZXRuZXE6XCJcXHUyMjhBXCIsc3Vic2V0bmVxcTpcIlxcdTJBQ0JcIixzdWJzaW06XCJcXHUyQUM3XCIsc3Vic3ViOlwiXFx1MkFENVwiLHN1YnN1cDpcIlxcdTJBRDNcIixzdWNjYXBwcm94OlwiXFx1MkFCOFwiLHN1Y2M6XCJcXHUyMjdCXCIsc3VjY2N1cmx5ZXE6XCJcXHUyMjdEXCIsU3VjY2VlZHM6XCJcXHUyMjdCXCIsU3VjY2VlZHNFcXVhbDpcIlxcdTJBQjBcIixTdWNjZWVkc1NsYW50RXF1YWw6XCJcXHUyMjdEXCIsU3VjY2VlZHNUaWxkZTpcIlxcdTIyN0ZcIixzdWNjZXE6XCJcXHUyQUIwXCIsc3VjY25hcHByb3g6XCJcXHUyQUJBXCIsc3VjY25lcXE6XCJcXHUyQUI2XCIsc3VjY25zaW06XCJcXHUyMkU5XCIsc3VjY3NpbTpcIlxcdTIyN0ZcIixTdWNoVGhhdDpcIlxcdTIyMEJcIixzdW06XCJcXHUyMjExXCIsU3VtOlwiXFx1MjIxMVwiLHN1bmc6XCJcXHUyNjZBXCIsc3VwMTpcIlxceEI5XCIsc3VwMjpcIlxceEIyXCIsc3VwMzpcIlxceEIzXCIsc3VwOlwiXFx1MjI4M1wiLFN1cDpcIlxcdTIyRDFcIixzdXBkb3Q6XCJcXHUyQUJFXCIsc3VwZHN1YjpcIlxcdTJBRDhcIixzdXBFOlwiXFx1MkFDNlwiLHN1cGU6XCJcXHUyMjg3XCIsc3VwZWRvdDpcIlxcdTJBQzRcIixTdXBlcnNldDpcIlxcdTIyODNcIixTdXBlcnNldEVxdWFsOlwiXFx1MjI4N1wiLHN1cGhzb2w6XCJcXHUyN0M5XCIsc3VwaHN1YjpcIlxcdTJBRDdcIixzdXBsYXJyOlwiXFx1Mjk3QlwiLHN1cG11bHQ6XCJcXHUyQUMyXCIsc3VwbkU6XCJcXHUyQUNDXCIsc3VwbmU6XCJcXHUyMjhCXCIsc3VwcGx1czpcIlxcdTJBQzBcIixzdXBzZXQ6XCJcXHUyMjgzXCIsU3Vwc2V0OlwiXFx1MjJEMVwiLHN1cHNldGVxOlwiXFx1MjI4N1wiLHN1cHNldGVxcTpcIlxcdTJBQzZcIixzdXBzZXRuZXE6XCJcXHUyMjhCXCIsc3Vwc2V0bmVxcTpcIlxcdTJBQ0NcIixzdXBzaW06XCJcXHUyQUM4XCIsc3Vwc3ViOlwiXFx1MkFENFwiLHN1cHN1cDpcIlxcdTJBRDZcIixzd2FyaGs6XCJcXHUyOTI2XCIsc3dhcnI6XCJcXHUyMTk5XCIsc3dBcnI6XCJcXHUyMUQ5XCIsc3dhcnJvdzpcIlxcdTIxOTlcIixzd253YXI6XCJcXHUyOTJBXCIsc3psaWc6XCJcXHhERlwiLFRhYjpcIlx0XCIsdGFyZ2V0OlwiXFx1MjMxNlwiLFRhdTpcIlxcdTAzQTRcIix0YXU6XCJcXHUwM0M0XCIsdGJyazpcIlxcdTIzQjRcIixUY2Fyb246XCJcXHUwMTY0XCIsdGNhcm9uOlwiXFx1MDE2NVwiLFRjZWRpbDpcIlxcdTAxNjJcIix0Y2VkaWw6XCJcXHUwMTYzXCIsVGN5OlwiXFx1MDQyMlwiLHRjeTpcIlxcdTA0NDJcIix0ZG90OlwiXFx1MjBEQlwiLHRlbHJlYzpcIlxcdTIzMTVcIixUZnI6XCJcXHV7MUQ1MTd9XCIsdGZyOlwiXFx1ezFENTMxfVwiLHRoZXJlNDpcIlxcdTIyMzRcIix0aGVyZWZvcmU6XCJcXHUyMjM0XCIsVGhlcmVmb3JlOlwiXFx1MjIzNFwiLFRoZXRhOlwiXFx1MDM5OFwiLHRoZXRhOlwiXFx1MDNCOFwiLHRoZXRhc3ltOlwiXFx1MDNEMVwiLHRoZXRhdjpcIlxcdTAzRDFcIix0aGlja2FwcHJveDpcIlxcdTIyNDhcIix0aGlja3NpbTpcIlxcdTIyM0NcIixUaGlja1NwYWNlOlwiXFx1MjA1RlxcdTIwMEFcIixUaGluU3BhY2U6XCJcXHUyMDA5XCIsdGhpbnNwOlwiXFx1MjAwOVwiLHRoa2FwOlwiXFx1MjI0OFwiLHRoa3NpbTpcIlxcdTIyM0NcIixUSE9STjpcIlxceERFXCIsdGhvcm46XCJcXHhGRVwiLHRpbGRlOlwiXFx1MDJEQ1wiLFRpbGRlOlwiXFx1MjIzQ1wiLFRpbGRlRXF1YWw6XCJcXHUyMjQzXCIsVGlsZGVGdWxsRXF1YWw6XCJcXHUyMjQ1XCIsVGlsZGVUaWxkZTpcIlxcdTIyNDhcIix0aW1lc2JhcjpcIlxcdTJBMzFcIix0aW1lc2I6XCJcXHUyMkEwXCIsdGltZXM6XCJcXHhEN1wiLHRpbWVzZDpcIlxcdTJBMzBcIix0aW50OlwiXFx1MjIyRFwiLHRvZWE6XCJcXHUyOTI4XCIsdG9wYm90OlwiXFx1MjMzNlwiLHRvcGNpcjpcIlxcdTJBRjFcIix0b3A6XCJcXHUyMkE0XCIsVG9wZjpcIlxcdXsxRDU0Qn1cIix0b3BmOlwiXFx1ezFENTY1fVwiLHRvcGZvcms6XCJcXHUyQURBXCIsdG9zYTpcIlxcdTI5MjlcIix0cHJpbWU6XCJcXHUyMDM0XCIsdHJhZGU6XCJcXHUyMTIyXCIsVFJBREU6XCJcXHUyMTIyXCIsdHJpYW5nbGU6XCJcXHUyNUI1XCIsdHJpYW5nbGVkb3duOlwiXFx1MjVCRlwiLHRyaWFuZ2xlbGVmdDpcIlxcdTI1QzNcIix0cmlhbmdsZWxlZnRlcTpcIlxcdTIyQjRcIix0cmlhbmdsZXE6XCJcXHUyMjVDXCIsdHJpYW5nbGVyaWdodDpcIlxcdTI1QjlcIix0cmlhbmdsZXJpZ2h0ZXE6XCJcXHUyMkI1XCIsdHJpZG90OlwiXFx1MjVFQ1wiLHRyaWU6XCJcXHUyMjVDXCIsdHJpbWludXM6XCJcXHUyQTNBXCIsVHJpcGxlRG90OlwiXFx1MjBEQlwiLHRyaXBsdXM6XCJcXHUyQTM5XCIsdHJpc2I6XCJcXHUyOUNEXCIsdHJpdGltZTpcIlxcdTJBM0JcIix0cnBleml1bTpcIlxcdTIzRTJcIixUc2NyOlwiXFx1ezFENEFGfVwiLHRzY3I6XCJcXHV7MUQ0Qzl9XCIsVFNjeTpcIlxcdTA0MjZcIix0c2N5OlwiXFx1MDQ0NlwiLFRTSGN5OlwiXFx1MDQwQlwiLHRzaGN5OlwiXFx1MDQ1QlwiLFRzdHJvazpcIlxcdTAxNjZcIix0c3Ryb2s6XCJcXHUwMTY3XCIsdHdpeHQ6XCJcXHUyMjZDXCIsdHdvaGVhZGxlZnRhcnJvdzpcIlxcdTIxOUVcIix0d29oZWFkcmlnaHRhcnJvdzpcIlxcdTIxQTBcIixVYWN1dGU6XCJcXHhEQVwiLHVhY3V0ZTpcIlxceEZBXCIsdWFycjpcIlxcdTIxOTFcIixVYXJyOlwiXFx1MjE5RlwiLHVBcnI6XCJcXHUyMUQxXCIsVWFycm9jaXI6XCJcXHUyOTQ5XCIsVWJyY3k6XCJcXHUwNDBFXCIsdWJyY3k6XCJcXHUwNDVFXCIsVWJyZXZlOlwiXFx1MDE2Q1wiLHVicmV2ZTpcIlxcdTAxNkRcIixVY2lyYzpcIlxceERCXCIsdWNpcmM6XCJcXHhGQlwiLFVjeTpcIlxcdTA0MjNcIix1Y3k6XCJcXHUwNDQzXCIsdWRhcnI6XCJcXHUyMUM1XCIsVWRibGFjOlwiXFx1MDE3MFwiLHVkYmxhYzpcIlxcdTAxNzFcIix1ZGhhcjpcIlxcdTI5NkVcIix1ZmlzaHQ6XCJcXHUyOTdFXCIsVWZyOlwiXFx1ezFENTE4fVwiLHVmcjpcIlxcdXsxRDUzMn1cIixVZ3JhdmU6XCJcXHhEOVwiLHVncmF2ZTpcIlxceEY5XCIsdUhhcjpcIlxcdTI5NjNcIix1aGFybDpcIlxcdTIxQkZcIix1aGFycjpcIlxcdTIxQkVcIix1aGJsazpcIlxcdTI1ODBcIix1bGNvcm46XCJcXHUyMzFDXCIsdWxjb3JuZXI6XCJcXHUyMzFDXCIsdWxjcm9wOlwiXFx1MjMwRlwiLHVsdHJpOlwiXFx1MjVGOFwiLFVtYWNyOlwiXFx1MDE2QVwiLHVtYWNyOlwiXFx1MDE2QlwiLHVtbDpcIlxceEE4XCIsVW5kZXJCYXI6XCJfXCIsVW5kZXJCcmFjZTpcIlxcdTIzREZcIixVbmRlckJyYWNrZXQ6XCJcXHUyM0I1XCIsVW5kZXJQYXJlbnRoZXNpczpcIlxcdTIzRERcIixVbmlvbjpcIlxcdTIyQzNcIixVbmlvblBsdXM6XCJcXHUyMjhFXCIsVW9nb246XCJcXHUwMTcyXCIsdW9nb246XCJcXHUwMTczXCIsVW9wZjpcIlxcdXsxRDU0Q31cIix1b3BmOlwiXFx1ezFENTY2fVwiLFVwQXJyb3dCYXI6XCJcXHUyOTEyXCIsdXBhcnJvdzpcIlxcdTIxOTFcIixVcEFycm93OlwiXFx1MjE5MVwiLFVwYXJyb3c6XCJcXHUyMUQxXCIsVXBBcnJvd0Rvd25BcnJvdzpcIlxcdTIxQzVcIix1cGRvd25hcnJvdzpcIlxcdTIxOTVcIixVcERvd25BcnJvdzpcIlxcdTIxOTVcIixVcGRvd25hcnJvdzpcIlxcdTIxRDVcIixVcEVxdWlsaWJyaXVtOlwiXFx1Mjk2RVwiLHVwaGFycG9vbmxlZnQ6XCJcXHUyMUJGXCIsdXBoYXJwb29ucmlnaHQ6XCJcXHUyMUJFXCIsdXBsdXM6XCJcXHUyMjhFXCIsVXBwZXJMZWZ0QXJyb3c6XCJcXHUyMTk2XCIsVXBwZXJSaWdodEFycm93OlwiXFx1MjE5N1wiLHVwc2k6XCJcXHUwM0M1XCIsVXBzaTpcIlxcdTAzRDJcIix1cHNpaDpcIlxcdTAzRDJcIixVcHNpbG9uOlwiXFx1MDNBNVwiLHVwc2lsb246XCJcXHUwM0M1XCIsVXBUZWVBcnJvdzpcIlxcdTIxQTVcIixVcFRlZTpcIlxcdTIyQTVcIix1cHVwYXJyb3dzOlwiXFx1MjFDOFwiLHVyY29ybjpcIlxcdTIzMURcIix1cmNvcm5lcjpcIlxcdTIzMURcIix1cmNyb3A6XCJcXHUyMzBFXCIsVXJpbmc6XCJcXHUwMTZFXCIsdXJpbmc6XCJcXHUwMTZGXCIsdXJ0cmk6XCJcXHUyNUY5XCIsVXNjcjpcIlxcdXsxRDRCMH1cIix1c2NyOlwiXFx1ezFENENBfVwiLHV0ZG90OlwiXFx1MjJGMFwiLFV0aWxkZTpcIlxcdTAxNjhcIix1dGlsZGU6XCJcXHUwMTY5XCIsdXRyaTpcIlxcdTI1QjVcIix1dHJpZjpcIlxcdTI1QjRcIix1dWFycjpcIlxcdTIxQzhcIixVdW1sOlwiXFx4RENcIix1dW1sOlwiXFx4RkNcIix1d2FuZ2xlOlwiXFx1MjlBN1wiLHZhbmdydDpcIlxcdTI5OUNcIix2YXJlcHNpbG9uOlwiXFx1MDNGNVwiLHZhcmthcHBhOlwiXFx1MDNGMFwiLHZhcm5vdGhpbmc6XCJcXHUyMjA1XCIsdmFycGhpOlwiXFx1MDNENVwiLHZhcnBpOlwiXFx1MDNENlwiLHZhcnByb3B0bzpcIlxcdTIyMURcIix2YXJyOlwiXFx1MjE5NVwiLHZBcnI6XCJcXHUyMUQ1XCIsdmFycmhvOlwiXFx1MDNGMVwiLHZhcnNpZ21hOlwiXFx1MDNDMlwiLHZhcnN1YnNldG5lcTpcIlxcdTIyOEFcXHVGRTAwXCIsdmFyc3Vic2V0bmVxcTpcIlxcdTJBQ0JcXHVGRTAwXCIsdmFyc3Vwc2V0bmVxOlwiXFx1MjI4QlxcdUZFMDBcIix2YXJzdXBzZXRuZXFxOlwiXFx1MkFDQ1xcdUZFMDBcIix2YXJ0aGV0YTpcIlxcdTAzRDFcIix2YXJ0cmlhbmdsZWxlZnQ6XCJcXHUyMkIyXCIsdmFydHJpYW5nbGVyaWdodDpcIlxcdTIyQjNcIix2QmFyOlwiXFx1MkFFOFwiLFZiYXI6XCJcXHUyQUVCXCIsdkJhcnY6XCJcXHUyQUU5XCIsVmN5OlwiXFx1MDQxMlwiLHZjeTpcIlxcdTA0MzJcIix2ZGFzaDpcIlxcdTIyQTJcIix2RGFzaDpcIlxcdTIyQThcIixWZGFzaDpcIlxcdTIyQTlcIixWRGFzaDpcIlxcdTIyQUJcIixWZGFzaGw6XCJcXHUyQUU2XCIsdmVlYmFyOlwiXFx1MjJCQlwiLHZlZTpcIlxcdTIyMjhcIixWZWU6XCJcXHUyMkMxXCIsdmVlZXE6XCJcXHUyMjVBXCIsdmVsbGlwOlwiXFx1MjJFRVwiLHZlcmJhcjpcInxcIixWZXJiYXI6XCJcXHUyMDE2XCIsdmVydDpcInxcIixWZXJ0OlwiXFx1MjAxNlwiLFZlcnRpY2FsQmFyOlwiXFx1MjIyM1wiLFZlcnRpY2FsTGluZTpcInxcIixWZXJ0aWNhbFNlcGFyYXRvcjpcIlxcdTI3NThcIixWZXJ0aWNhbFRpbGRlOlwiXFx1MjI0MFwiLFZlcnlUaGluU3BhY2U6XCJcXHUyMDBBXCIsVmZyOlwiXFx1ezFENTE5fVwiLHZmcjpcIlxcdXsxRDUzM31cIix2bHRyaTpcIlxcdTIyQjJcIix2bnN1YjpcIlxcdTIyODJcXHUyMEQyXCIsdm5zdXA6XCJcXHUyMjgzXFx1MjBEMlwiLFZvcGY6XCJcXHV7MUQ1NER9XCIsdm9wZjpcIlxcdXsxRDU2N31cIix2cHJvcDpcIlxcdTIyMURcIix2cnRyaTpcIlxcdTIyQjNcIixWc2NyOlwiXFx1ezFENEIxfVwiLHZzY3I6XCJcXHV7MUQ0Q0J9XCIsdnN1Ym5FOlwiXFx1MkFDQlxcdUZFMDBcIix2c3VibmU6XCJcXHUyMjhBXFx1RkUwMFwiLHZzdXBuRTpcIlxcdTJBQ0NcXHVGRTAwXCIsdnN1cG5lOlwiXFx1MjI4QlxcdUZFMDBcIixWdmRhc2g6XCJcXHUyMkFBXCIsdnppZ3phZzpcIlxcdTI5OUFcIixXY2lyYzpcIlxcdTAxNzRcIix3Y2lyYzpcIlxcdTAxNzVcIix3ZWRiYXI6XCJcXHUyQTVGXCIsd2VkZ2U6XCJcXHUyMjI3XCIsV2VkZ2U6XCJcXHUyMkMwXCIsd2VkZ2VxOlwiXFx1MjI1OVwiLHdlaWVycDpcIlxcdTIxMThcIixXZnI6XCJcXHV7MUQ1MUF9XCIsd2ZyOlwiXFx1ezFENTM0fVwiLFdvcGY6XCJcXHV7MUQ1NEV9XCIsd29wZjpcIlxcdXsxRDU2OH1cIix3cDpcIlxcdTIxMThcIix3cjpcIlxcdTIyNDBcIix3cmVhdGg6XCJcXHUyMjQwXCIsV3NjcjpcIlxcdXsxRDRCMn1cIix3c2NyOlwiXFx1ezFENENDfVwiLHhjYXA6XCJcXHUyMkMyXCIseGNpcmM6XCJcXHUyNUVGXCIseGN1cDpcIlxcdTIyQzNcIix4ZHRyaTpcIlxcdTI1QkRcIixYZnI6XCJcXHV7MUQ1MUJ9XCIseGZyOlwiXFx1ezFENTM1fVwiLHhoYXJyOlwiXFx1MjdGN1wiLHhoQXJyOlwiXFx1MjdGQVwiLFhpOlwiXFx1MDM5RVwiLHhpOlwiXFx1MDNCRVwiLHhsYXJyOlwiXFx1MjdGNVwiLHhsQXJyOlwiXFx1MjdGOFwiLHhtYXA6XCJcXHUyN0ZDXCIseG5pczpcIlxcdTIyRkJcIix4b2RvdDpcIlxcdTJBMDBcIixYb3BmOlwiXFx1ezFENTRGfVwiLHhvcGY6XCJcXHV7MUQ1Njl9XCIseG9wbHVzOlwiXFx1MkEwMVwiLHhvdGltZTpcIlxcdTJBMDJcIix4cmFycjpcIlxcdTI3RjZcIix4ckFycjpcIlxcdTI3RjlcIixYc2NyOlwiXFx1ezFENEIzfVwiLHhzY3I6XCJcXHV7MUQ0Q0R9XCIseHNxY3VwOlwiXFx1MkEwNlwiLHh1cGx1czpcIlxcdTJBMDRcIix4dXRyaTpcIlxcdTI1QjNcIix4dmVlOlwiXFx1MjJDMVwiLHh3ZWRnZTpcIlxcdTIyQzBcIixZYWN1dGU6XCJcXHhERFwiLHlhY3V0ZTpcIlxceEZEXCIsWUFjeTpcIlxcdTA0MkZcIix5YWN5OlwiXFx1MDQ0RlwiLFljaXJjOlwiXFx1MDE3NlwiLHljaXJjOlwiXFx1MDE3N1wiLFljeTpcIlxcdTA0MkJcIix5Y3k6XCJcXHUwNDRCXCIseWVuOlwiXFx4QTVcIixZZnI6XCJcXHV7MUQ1MUN9XCIseWZyOlwiXFx1ezFENTM2fVwiLFlJY3k6XCJcXHUwNDA3XCIseWljeTpcIlxcdTA0NTdcIixZb3BmOlwiXFx1ezFENTUwfVwiLHlvcGY6XCJcXHV7MUQ1NkF9XCIsWXNjcjpcIlxcdXsxRDRCNH1cIix5c2NyOlwiXFx1ezFENENFfVwiLFlVY3k6XCJcXHUwNDJFXCIseXVjeTpcIlxcdTA0NEVcIix5dW1sOlwiXFx4RkZcIixZdW1sOlwiXFx1MDE3OFwiLFphY3V0ZTpcIlxcdTAxNzlcIix6YWN1dGU6XCJcXHUwMTdBXCIsWmNhcm9uOlwiXFx1MDE3RFwiLHpjYXJvbjpcIlxcdTAxN0VcIixaY3k6XCJcXHUwNDE3XCIsemN5OlwiXFx1MDQzN1wiLFpkb3Q6XCJcXHUwMTdCXCIsemRvdDpcIlxcdTAxN0NcIix6ZWV0cmY6XCJcXHUyMTI4XCIsWmVyb1dpZHRoU3BhY2U6XCJcXHUyMDBCXCIsWmV0YTpcIlxcdTAzOTZcIix6ZXRhOlwiXFx1MDNCNlwiLHpmcjpcIlxcdXsxRDUzN31cIixaZnI6XCJcXHUyMTI4XCIsWkhjeTpcIlxcdTA0MTZcIix6aGN5OlwiXFx1MDQzNlwiLHppZ3JhcnI6XCJcXHUyMUREXCIsem9wZjpcIlxcdXsxRDU2Qn1cIixab3BmOlwiXFx1MjEyNFwiLFpzY3I6XCJcXHV7MUQ0QjV9XCIsenNjcjpcIlxcdXsxRDRDRn1cIix6d2o6XCJcXHUyMDBEXCIsenduajpcIlxcdTIwMENcIn0sZXM9L14jW3hYXShbQS1GYS1mMC05XSspJC8sdHM9L14jKFswLTldKykkLyxycz0vXihbQS1aYS16MC05XSspJC8sa3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMubmFtZWQ9ZX1yZXR1cm4gdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHI9ZS5tYXRjaChlcyk7aWYocilyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChyWzFdLDE2KSk7aWYocj1lLm1hdGNoKHRzKSxyKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHJbMV0sMTApKTtpZihyPWUubWF0Y2gocnMpLHIpcmV0dXJuIHRoaXMubmFtZWRbclsxXV19fSx0fSgpLG5zPS9bXFx0XFxuXFxmIF0vLGlzPS9bQS1aYS16XS8sc3M9L1xcclxcbj8vZztmdW5jdGlvbiBMKHQpe3JldHVybiBucy50ZXN0KHQpfWZ1bmN0aW9uIHduKHQpe3JldHVybiBpcy50ZXN0KHQpfWZ1bmN0aW9uIGFzKHQpe3JldHVybiB0LnJlcGxhY2Uoc3MsYFxuYCl9dmFyIHByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIsbil7bj09PXZvaWQgMCYmKG49XCJwcmVjb21waWxlXCIpLHRoaXMuZGVsZWdhdGU9ZSx0aGlzLmVudGl0eVBhcnNlcj1yLHRoaXMubW9kZT1uLHRoaXMuc3RhdGU9XCJiZWZvcmVEYXRhXCIsdGhpcy5saW5lPS0xLHRoaXMuY29sdW1uPS0xLHRoaXMuaW5wdXQ9XCJcIix0aGlzLmluZGV4PS0xLHRoaXMudGFnTmFtZUJ1ZmZlcj1cIlwiLHRoaXMuc3RhdGVzPXtiZWZvcmVEYXRhOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5wZWVrKCk7aWYoaT09PVwiPFwiJiYhdGhpcy5pc0lnbm9yZWRFbmRUYWcoKSl0aGlzLnRyYW5zaXRpb25UbyhcInRhZ09wZW5cIiksdGhpcy5tYXJrVGFnU3RhcnQoKSx0aGlzLmNvbnN1bWUoKTtlbHNle2lmKHRoaXMubW9kZT09PVwicHJlY29tcGlsZVwiJiZpPT09YFxuYCl7dmFyIHM9dGhpcy50YWdOYW1lQnVmZmVyLnRvTG93ZXJDYXNlKCk7KHM9PT1cInByZVwifHxzPT09XCJ0ZXh0YXJlYVwiKSYmdGhpcy5jb25zdW1lKCl9dGhpcy50cmFuc2l0aW9uVG8oXCJkYXRhXCIpLHRoaXMuZGVsZWdhdGUuYmVnaW5EYXRhKCl9fSxkYXRhOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5wZWVrKCkscz10aGlzLnRhZ05hbWVCdWZmZXI7aT09PVwiPFwiJiYhdGhpcy5pc0lnbm9yZWRFbmRUYWcoKT8odGhpcy5kZWxlZ2F0ZS5maW5pc2hEYXRhKCksdGhpcy50cmFuc2l0aW9uVG8oXCJ0YWdPcGVuXCIpLHRoaXMubWFya1RhZ1N0YXJ0KCksdGhpcy5jb25zdW1lKCkpOmk9PT1cIiZcIiYmcyE9PVwic2NyaXB0XCImJnMhPT1cInN0eWxlXCI/KHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9EYXRhKHRoaXMuY29uc3VtZUNoYXJSZWYoKXx8XCImXCIpKToodGhpcy5jb25zdW1lKCksdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RhdGEoaSkpfSx0YWdPcGVuOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7aT09PVwiIVwiP3RoaXMudHJhbnNpdGlvblRvKFwibWFya3VwRGVjbGFyYXRpb25PcGVuXCIpOmk9PT1cIi9cIj90aGlzLnRyYW5zaXRpb25UbyhcImVuZFRhZ09wZW5cIik6KGk9PT1cIkBcInx8aT09PVwiOlwifHx3bihpKSkmJih0aGlzLnRyYW5zaXRpb25UbyhcInRhZ05hbWVcIiksdGhpcy50YWdOYW1lQnVmZmVyPVwiXCIsdGhpcy5kZWxlZ2F0ZS5iZWdpblN0YXJ0VGFnKCksdGhpcy5hcHBlbmRUb1RhZ05hbWUoaSkpfSxtYXJrdXBEZWNsYXJhdGlvbk9wZW46ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtpZihpPT09XCItXCImJnRoaXMucGVlaygpPT09XCItXCIpdGhpcy5jb25zdW1lKCksdGhpcy50cmFuc2l0aW9uVG8oXCJjb21tZW50U3RhcnRcIiksdGhpcy5kZWxlZ2F0ZS5iZWdpbkNvbW1lbnQoKTtlbHNle3ZhciBzPWkudG9VcHBlckNhc2UoKSt0aGlzLmlucHV0LnN1YnN0cmluZyh0aGlzLmluZGV4LHRoaXMuaW5kZXgrNikudG9VcHBlckNhc2UoKTtzPT09XCJET0NUWVBFXCImJih0aGlzLmNvbnN1bWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImRvY3R5cGVcIiksdGhpcy5kZWxlZ2F0ZS5iZWdpbkRvY3R5cGUmJnRoaXMuZGVsZWdhdGUuYmVnaW5Eb2N0eXBlKCkpfX0sZG9jdHlwZTpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO0woaSkmJnRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRG9jdHlwZU5hbWVcIil9LGJlZm9yZURvY3R5cGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7TChpKXx8KHRoaXMudHJhbnNpdGlvblRvKFwiZG9jdHlwZU5hbWVcIiksdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RvY3R5cGVOYW1lJiZ0aGlzLmRlbGVnYXRlLmFwcGVuZFRvRG9jdHlwZU5hbWUoaS50b0xvd2VyQ2FzZSgpKSl9LGRvY3R5cGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7TChpKT90aGlzLnRyYW5zaXRpb25UbyhcImFmdGVyRG9jdHlwZU5hbWVcIik6aT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUmJnRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6dGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RvY3R5cGVOYW1lJiZ0aGlzLmRlbGVnYXRlLmFwcGVuZFRvRG9jdHlwZU5hbWUoaS50b0xvd2VyQ2FzZSgpKX0sYWZ0ZXJEb2N0eXBlTmFtZTpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO2lmKCFMKGkpKWlmKGk9PT1cIj5cIil0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUmJnRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKTtlbHNle3ZhciBzPWkudG9VcHBlckNhc2UoKSt0aGlzLmlucHV0LnN1YnN0cmluZyh0aGlzLmluZGV4LHRoaXMuaW5kZXgrNSkudG9VcHBlckNhc2UoKSxhPXMudG9VcHBlckNhc2UoKT09PVwiUFVCTElDXCIsbD1zLnRvVXBwZXJDYXNlKCk9PT1cIlNZU1RFTVwiOyhhfHxsKSYmKHRoaXMuY29uc3VtZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMuY29uc3VtZSgpKSxhP3RoaXMudHJhbnNpdGlvblRvKFwiYWZ0ZXJEb2N0eXBlUHVibGljS2V5d29yZFwiKTpsJiZ0aGlzLnRyYW5zaXRpb25UbyhcImFmdGVyRG9jdHlwZVN5c3RlbUtleXdvcmRcIil9fSxhZnRlckRvY3R5cGVQdWJsaWNLZXl3b3JkOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5wZWVrKCk7TChpKT8odGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEb2N0eXBlUHVibGljSWRlbnRpZmllclwiKSx0aGlzLmNvbnN1bWUoKSk6aT09PSdcIic/KHRoaXMudHJhbnNpdGlvblRvKFwiZG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWRcIiksdGhpcy5jb25zdW1lKCkpOmk9PT1cIidcIj8odGhpcy50cmFuc2l0aW9uVG8oXCJkb2N0eXBlUHVibGljSWRlbnRpZmllclNpbmdsZVF1b3RlZFwiKSx0aGlzLmNvbnN1bWUoKSk6aT09PVwiPlwiJiYodGhpcy5jb25zdW1lKCksdGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlJiZ0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpfSxkb2N0eXBlUHVibGljSWRlbnRpZmllckRvdWJsZVF1b3RlZDpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO2k9PT0nXCInP3RoaXMudHJhbnNpdGlvblRvKFwiYWZ0ZXJEb2N0eXBlUHVibGljSWRlbnRpZmllclwiKTppPT09XCI+XCI/KHRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSYmdGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlKCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKTp0aGlzLmRlbGVnYXRlLmFwcGVuZFRvRG9jdHlwZVB1YmxpY0lkZW50aWZpZXImJnRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Eb2N0eXBlUHVibGljSWRlbnRpZmllcihpKX0sZG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtpPT09XCInXCI/dGhpcy50cmFuc2l0aW9uVG8oXCJhZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyXCIpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlJiZ0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpOnRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Eb2N0eXBlUHVibGljSWRlbnRpZmllciYmdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RvY3R5cGVQdWJsaWNJZGVudGlmaWVyKGkpfSxhZnRlckRvY3R5cGVQdWJsaWNJZGVudGlmaWVyOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7TChpKT90aGlzLnRyYW5zaXRpb25UbyhcImJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnNcIik6aT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUmJnRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6aT09PSdcIic/dGhpcy50cmFuc2l0aW9uVG8oXCJkb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFwiKTppPT09XCInXCImJnRoaXMudHJhbnNpdGlvblRvKFwiZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWRcIil9LGJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnM6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtMKGkpfHwoaT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUmJnRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6aT09PSdcIic/dGhpcy50cmFuc2l0aW9uVG8oXCJkb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFwiKTppPT09XCInXCImJnRoaXMudHJhbnNpdGlvblRvKFwiZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWRcIikpfSxkb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZDpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO2k9PT0nXCInP3RoaXMudHJhbnNpdGlvblRvKFwiYWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclwiKTppPT09XCI+XCI/KHRoaXMuZGVsZWdhdGUuZW5kRG9jdHlwZSYmdGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlKCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKTp0aGlzLmRlbGVnYXRlLmFwcGVuZFRvRG9jdHlwZVN5c3RlbUlkZW50aWZpZXImJnRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Eb2N0eXBlU3lzdGVtSWRlbnRpZmllcihpKX0sZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtpPT09XCInXCI/dGhpcy50cmFuc2l0aW9uVG8oXCJhZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyXCIpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlJiZ0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpOnRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Eb2N0eXBlU3lzdGVtSWRlbnRpZmllciYmdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0RvY3R5cGVTeXN0ZW1JZGVudGlmaWVyKGkpfSxhZnRlckRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7TChpKXx8aT09PVwiPlwiJiYodGhpcy5kZWxlZ2F0ZS5lbmREb2N0eXBlJiZ0aGlzLmRlbGVnYXRlLmVuZERvY3R5cGUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpfSxjb21tZW50U3RhcnQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtpPT09XCItXCI/dGhpcy50cmFuc2l0aW9uVG8oXCJjb21tZW50U3RhcnREYXNoXCIpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5maW5pc2hDb21tZW50KCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKToodGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKGkpLHRoaXMudHJhbnNpdGlvblRvKFwiY29tbWVudFwiKSl9LGNvbW1lbnRTdGFydERhc2g6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtpPT09XCItXCI/dGhpcy50cmFuc2l0aW9uVG8oXCJjb21tZW50RW5kXCIpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5maW5pc2hDb21tZW50KCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKToodGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKFwiLVwiKSx0aGlzLnRyYW5zaXRpb25UbyhcImNvbW1lbnRcIikpfSxjb21tZW50OmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7aT09PVwiLVwiP3RoaXMudHJhbnNpdGlvblRvKFwiY29tbWVudEVuZERhc2hcIik6dGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0NvbW1lbnREYXRhKGkpfSxjb21tZW50RW5kRGFzaDpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO2k9PT1cIi1cIj90aGlzLnRyYW5zaXRpb25UbyhcImNvbW1lbnRFbmRcIik6KHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9Db21tZW50RGF0YShcIi1cIitpKSx0aGlzLnRyYW5zaXRpb25UbyhcImNvbW1lbnRcIikpfSxjb21tZW50RW5kOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7aT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmZpbmlzaENvbW1lbnQoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpOih0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQ29tbWVudERhdGEoXCItLVwiK2kpLHRoaXMudHJhbnNpdGlvblRvKFwiY29tbWVudFwiKSl9LHRhZ05hbWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLmNvbnN1bWUoKTtMKGkpP3RoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlQXR0cmlidXRlTmFtZVwiKTppPT09XCIvXCI/dGhpcy50cmFuc2l0aW9uVG8oXCJzZWxmQ2xvc2luZ1N0YXJ0VGFnXCIpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpOnRoaXMuYXBwZW5kVG9UYWdOYW1lKGkpfSxlbmRUYWdOYW1lOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7TChpKT8odGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVBdHRyaWJ1dGVOYW1lXCIpLHRoaXMudGFnTmFtZUJ1ZmZlcj1cIlwiKTppPT09XCIvXCI/KHRoaXMudHJhbnNpdGlvblRvKFwic2VsZkNsb3NpbmdTdGFydFRhZ1wiKSx0aGlzLnRhZ05hbWVCdWZmZXI9XCJcIik6aT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSx0aGlzLnRhZ05hbWVCdWZmZXI9XCJcIik6dGhpcy5hcHBlbmRUb1RhZ05hbWUoaSl9LGJlZm9yZUF0dHJpYnV0ZU5hbWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnBlZWsoKTtpZihMKGkpKXt0aGlzLmNvbnN1bWUoKTtyZXR1cm59ZWxzZSBpPT09XCIvXCI/KHRoaXMudHJhbnNpdGlvblRvKFwic2VsZkNsb3NpbmdTdGFydFRhZ1wiKSx0aGlzLmNvbnN1bWUoKSk6aT09PVwiPlwiPyh0aGlzLmNvbnN1bWUoKSx0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6aT09PVwiPVwiPyh0aGlzLmRlbGVnYXRlLnJlcG9ydFN5bnRheEVycm9yKFwiYXR0cmlidXRlIG5hbWUgY2Fubm90IHN0YXJ0IHdpdGggZXF1YWxzIHNpZ25cIiksdGhpcy50cmFuc2l0aW9uVG8oXCJhdHRyaWJ1dGVOYW1lXCIpLHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlTmFtZShpKSk6KHRoaXMudHJhbnNpdGlvblRvKFwiYXR0cmlidXRlTmFtZVwiKSx0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlKCkpfSxhdHRyaWJ1dGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5wZWVrKCk7TChpKT8odGhpcy50cmFuc2l0aW9uVG8oXCJhZnRlckF0dHJpYnV0ZU5hbWVcIiksdGhpcy5jb25zdW1lKCkpOmk9PT1cIi9cIj8odGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKCExKSx0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCksdGhpcy5jb25zdW1lKCksdGhpcy50cmFuc2l0aW9uVG8oXCJzZWxmQ2xvc2luZ1N0YXJ0VGFnXCIpKTppPT09XCI9XCI/KHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlQXR0cmlidXRlVmFsdWVcIiksdGhpcy5jb25zdW1lKCkpOmk9PT1cIj5cIj8odGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKCExKSx0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCksdGhpcy5jb25zdW1lKCksdGhpcy5kZWxlZ2F0ZS5maW5pc2hUYWcoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIikpOmk9PT0nXCInfHxpPT09XCInXCJ8fGk9PT1cIjxcIj8odGhpcy5kZWxlZ2F0ZS5yZXBvcnRTeW50YXhFcnJvcihpK1wiIGlzIG5vdCBhIHZhbGlkIGNoYXJhY3RlciB3aXRoaW4gYXR0cmlidXRlIG5hbWVzXCIpLHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGkpKToodGhpcy5jb25zdW1lKCksdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoaSkpfSxhZnRlckF0dHJpYnV0ZU5hbWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnBlZWsoKTtpZihMKGkpKXt0aGlzLmNvbnN1bWUoKTtyZXR1cm59ZWxzZSBpPT09XCIvXCI/KHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZSghMSksdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMudHJhbnNpdGlvblRvKFwic2VsZkNsb3NpbmdTdGFydFRhZ1wiKSk6aT09PVwiPVwiPyh0aGlzLmNvbnN1bWUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZUF0dHJpYnV0ZVZhbHVlXCIpKTppPT09XCI+XCI/KHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZSghMSksdGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpLHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKToodGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKCExKSx0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCksdGhpcy50cmFuc2l0aW9uVG8oXCJhdHRyaWJ1dGVOYW1lXCIpLHRoaXMuZGVsZWdhdGUuYmVnaW5BdHRyaWJ1dGUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlTmFtZShpKSl9LGJlZm9yZUF0dHJpYnV0ZVZhbHVlOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5wZWVrKCk7TChpKT90aGlzLmNvbnN1bWUoKTppPT09J1wiJz8odGhpcy50cmFuc2l0aW9uVG8oXCJhdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZFwiKSx0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoITApLHRoaXMuY29uc3VtZSgpKTppPT09XCInXCI/KHRoaXMudHJhbnNpdGlvblRvKFwiYXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWRcIiksdGhpcy5kZWxlZ2F0ZS5iZWdpbkF0dHJpYnV0ZVZhbHVlKCEwKSx0aGlzLmNvbnN1bWUoKSk6aT09PVwiPlwiPyh0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoITEpLHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6KHRoaXMudHJhbnNpdGlvblRvKFwiYXR0cmlidXRlVmFsdWVVbnF1b3RlZFwiKSx0aGlzLmRlbGVnYXRlLmJlZ2luQXR0cmlidXRlVmFsdWUoITEpLHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShpKSl9LGF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7aT09PSdcIic/KHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWRcIikpOmk9PT1cIiZcIj90aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUodGhpcy5jb25zdW1lQ2hhclJlZigpfHxcIiZcIik6dGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKGkpfSxhdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZDpmdW5jdGlvbigpe3ZhciBpPXRoaXMuY29uc3VtZSgpO2k9PT1cIidcIj8odGhpcy5kZWxlZ2F0ZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZFwiKSk6aT09PVwiJlwiP3RoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZSh0aGlzLmNvbnN1bWVDaGFyUmVmKCl8fFwiJlwiKTp0aGlzLmRlbGVnYXRlLmFwcGVuZFRvQXR0cmlidXRlVmFsdWUoaSl9LGF0dHJpYnV0ZVZhbHVlVW5xdW90ZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnBlZWsoKTtMKGkpPyh0aGlzLmRlbGVnYXRlLmZpbmlzaEF0dHJpYnV0ZVZhbHVlKCksdGhpcy5jb25zdW1lKCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVBdHRyaWJ1dGVOYW1lXCIpKTppPT09XCIvXCI/KHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLnRyYW5zaXRpb25UbyhcInNlbGZDbG9zaW5nU3RhcnRUYWdcIikpOmk9PT1cIiZcIj8odGhpcy5jb25zdW1lKCksdGhpcy5kZWxlZ2F0ZS5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKHRoaXMuY29uc3VtZUNoYXJSZWYoKXx8XCImXCIpKTppPT09XCI+XCI/KHRoaXMuZGVsZWdhdGUuZmluaXNoQXR0cmlidXRlVmFsdWUoKSx0aGlzLmNvbnN1bWUoKSx0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6KHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuYXBwZW5kVG9BdHRyaWJ1dGVWYWx1ZShpKSl9LGFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnBlZWsoKTtMKGkpPyh0aGlzLmNvbnN1bWUoKSx0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZUF0dHJpYnV0ZU5hbWVcIikpOmk9PT1cIi9cIj8odGhpcy5jb25zdW1lKCksdGhpcy50cmFuc2l0aW9uVG8oXCJzZWxmQ2xvc2luZ1N0YXJ0VGFnXCIpKTppPT09XCI+XCI/KHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUuZmluaXNoVGFnKCksdGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVEYXRhXCIpKTp0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZUF0dHJpYnV0ZU5hbWVcIil9LHNlbGZDbG9zaW5nU3RhcnRUYWc6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnBlZWsoKTtpPT09XCI+XCI/KHRoaXMuY29uc3VtZSgpLHRoaXMuZGVsZWdhdGUubWFya1RhZ0FzU2VsZkNsb3NpbmcoKSx0aGlzLmRlbGVnYXRlLmZpbmlzaFRhZygpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSk6dGhpcy50cmFuc2l0aW9uVG8oXCJiZWZvcmVBdHRyaWJ1dGVOYW1lXCIpfSxlbmRUYWdPcGVuOmZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb25zdW1lKCk7KGk9PT1cIkBcInx8aT09PVwiOlwifHx3bihpKSkmJih0aGlzLnRyYW5zaXRpb25UbyhcImVuZFRhZ05hbWVcIiksdGhpcy50YWdOYW1lQnVmZmVyPVwiXCIsdGhpcy5kZWxlZ2F0ZS5iZWdpbkVuZFRhZygpLHRoaXMuYXBwZW5kVG9UYWdOYW1lKGkpKX19LHRoaXMucmVzZXQoKX1yZXR1cm4gdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25UbyhcImJlZm9yZURhdGFcIiksdGhpcy5pbnB1dD1cIlwiLHRoaXMudGFnTmFtZUJ1ZmZlcj1cIlwiLHRoaXMuaW5kZXg9MCx0aGlzLmxpbmU9MSx0aGlzLmNvbHVtbj0wLHRoaXMuZGVsZWdhdGUucmVzZXQoKX0sdC5wcm90b3R5cGUudHJhbnNpdGlvblRvPWZ1bmN0aW9uKGUpe3RoaXMuc3RhdGU9ZX0sdC5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24oZSl7dGhpcy5yZXNldCgpLHRoaXMudG9rZW5pemVQYXJ0KGUpLHRoaXMudG9rZW5pemVFT0YoKX0sdC5wcm90b3R5cGUudG9rZW5pemVQYXJ0PWZ1bmN0aW9uKGUpe2Zvcih0aGlzLmlucHV0Kz1hcyhlKTt0aGlzLmluZGV4PHRoaXMuaW5wdXQubGVuZ3RoOyl7dmFyIHI9dGhpcy5zdGF0ZXNbdGhpcy5zdGF0ZV07aWYociE9PXZvaWQgMClyLmNhbGwodGhpcyk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoXCJ1bmhhbmRsZWQgc3RhdGUgXCIrdGhpcy5zdGF0ZSl9fSx0LnByb3RvdHlwZS50b2tlbml6ZUVPRj1mdW5jdGlvbigpe3RoaXMuZmx1c2hEYXRhKCl9LHQucHJvdG90eXBlLmZsdXNoRGF0YT1mdW5jdGlvbigpe3RoaXMuc3RhdGU9PT1cImRhdGFcIiYmKHRoaXMuZGVsZWdhdGUuZmluaXNoRGF0YSgpLHRoaXMudHJhbnNpdGlvblRvKFwiYmVmb3JlRGF0YVwiKSl9LHQucHJvdG90eXBlLnBlZWs9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5jaGFyQXQodGhpcy5pbmRleCl9LHQucHJvdG90eXBlLmNvbnN1bWU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBlZWsoKTtyZXR1cm4gdGhpcy5pbmRleCsrLGU9PT1gXG5gPyh0aGlzLmxpbmUrKyx0aGlzLmNvbHVtbj0wKTp0aGlzLmNvbHVtbisrLGV9LHQucHJvdG90eXBlLmNvbnN1bWVDaGFyUmVmPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5pbnB1dC5pbmRleE9mKFwiO1wiLHRoaXMuaW5kZXgpO2lmKGUhPT0tMSl7dmFyIHI9dGhpcy5pbnB1dC5zbGljZSh0aGlzLmluZGV4LGUpLG49dGhpcy5lbnRpdHlQYXJzZXIucGFyc2Uocik7aWYobil7Zm9yKHZhciBpPXIubGVuZ3RoO2k7KXRoaXMuY29uc3VtZSgpLGktLTtyZXR1cm4gdGhpcy5jb25zdW1lKCksbn19fSx0LnByb3RvdHlwZS5tYXJrVGFnU3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLmRlbGVnYXRlLnRhZ09wZW4oKX0sdC5wcm90b3R5cGUuYXBwZW5kVG9UYWdOYW1lPWZ1bmN0aW9uKGUpe3RoaXMudGFnTmFtZUJ1ZmZlcis9ZSx0aGlzLmRlbGVnYXRlLmFwcGVuZFRvVGFnTmFtZShlKX0sdC5wcm90b3R5cGUuaXNJZ25vcmVkRW5kVGFnPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50YWdOYW1lQnVmZmVyO3JldHVybiBlPT09XCJ0aXRsZVwiJiZ0aGlzLmlucHV0LnN1YnN0cmluZyh0aGlzLmluZGV4LHRoaXMuaW5kZXgrOCkhPT1cIjwvdGl0bGU+XCJ8fGU9PT1cInN0eWxlXCImJnRoaXMuaW5wdXQuc3Vic3RyaW5nKHRoaXMuaW5kZXgsdGhpcy5pbmRleCs4KSE9PVwiPC9zdHlsZT5cInx8ZT09PVwic2NyaXB0XCImJnRoaXMuaW5wdXQuc3Vic3RyaW5nKHRoaXMuaW5kZXgsdGhpcy5pbmRleCs5KSE9PVwiPFxcL3NjcmlwdD5cIn0sdH0oKSxVbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxyKXtyPT09dm9pZCAwJiYocj17fSksdGhpcy5vcHRpb25zPXIsdGhpcy50b2tlbj1udWxsLHRoaXMuc3RhcnRMaW5lPTEsdGhpcy5zdGFydENvbHVtbj0wLHRoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5pemVyPW5ldyBwcih0aGlzLGUsci5tb2RlKSx0aGlzLl9jdXJyZW50QXR0cmlidXRlPXZvaWQgMH1yZXR1cm4gdC5wcm90b3R5cGUudG9rZW5pemU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5pemVyLnRva2VuaXplKGUpLHRoaXMudG9rZW5zfSx0LnByb3RvdHlwZS50b2tlbml6ZVBhcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5pemVyLnRva2VuaXplUGFydChlKSx0aGlzLnRva2Vuc30sdC5wcm90b3R5cGUudG9rZW5pemVFT0Y9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnM9W10sdGhpcy50b2tlbml6ZXIudG9rZW5pemVFT0YoKSx0aGlzLnRva2Vuc1swXX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnRva2VuPW51bGwsdGhpcy5zdGFydExpbmU9MSx0aGlzLnN0YXJ0Q29sdW1uPTB9LHQucHJvdG90eXBlLmN1cnJlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnRva2VuO2lmKGU9PT1udWxsKXRocm93IG5ldyBFcnJvcihcInRva2VuIHdhcyB1bmV4cGVjdGVkbHkgbnVsbFwiKTtpZihhcmd1bWVudHMubGVuZ3RoPT09MClyZXR1cm4gZTtmb3IodmFyIHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWlmKGUudHlwZT09PWFyZ3VtZW50c1tyXSlyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoXCJ0b2tlbiB0eXBlIHdhcyB1bmV4cGVjdGVkbHkgXCIrZS50eXBlKX0sdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihlKXt0aGlzLnRva2VuPWUsdGhpcy50b2tlbnMucHVzaChlKX0sdC5wcm90b3R5cGUuY3VycmVudEF0dHJpYnV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50QXR0cmlidXRlfSx0LnByb3RvdHlwZS5hZGRMb2NJbmZvPWZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmxvYyYmKHRoaXMuY3VycmVudCgpLmxvYz17c3RhcnQ6e2xpbmU6dGhpcy5zdGFydExpbmUsY29sdW1uOnRoaXMuc3RhcnRDb2x1bW59LGVuZDp7bGluZTp0aGlzLnRva2VuaXplci5saW5lLGNvbHVtbjp0aGlzLnRva2VuaXplci5jb2x1bW59fSksdGhpcy5zdGFydExpbmU9dGhpcy50b2tlbml6ZXIubGluZSx0aGlzLnN0YXJ0Q29sdW1uPXRoaXMudG9rZW5pemVyLmNvbHVtbn0sdC5wcm90b3R5cGUuYmVnaW5Eb2N0eXBlPWZ1bmN0aW9uKCl7dGhpcy5wdXNoKHt0eXBlOlwiRG9jdHlwZVwiLG5hbWU6XCJcIn0pfSx0LnByb3RvdHlwZS5hcHBlbmRUb0RvY3R5cGVOYW1lPWZ1bmN0aW9uKGUpe3RoaXMuY3VycmVudChcIkRvY3R5cGVcIikubmFtZSs9ZX0sdC5wcm90b3R5cGUuYXBwZW5kVG9Eb2N0eXBlUHVibGljSWRlbnRpZmllcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmN1cnJlbnQoXCJEb2N0eXBlXCIpO3IucHVibGljSWRlbnRpZmllcj09PXZvaWQgMD9yLnB1YmxpY0lkZW50aWZpZXI9ZTpyLnB1YmxpY0lkZW50aWZpZXIrPWV9LHQucHJvdG90eXBlLmFwcGVuZFRvRG9jdHlwZVN5c3RlbUlkZW50aWZpZXI9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5jdXJyZW50KFwiRG9jdHlwZVwiKTtyLnN5c3RlbUlkZW50aWZpZXI9PT12b2lkIDA/ci5zeXN0ZW1JZGVudGlmaWVyPWU6ci5zeXN0ZW1JZGVudGlmaWVyKz1lfSx0LnByb3RvdHlwZS5lbmREb2N0eXBlPWZ1bmN0aW9uKCl7dGhpcy5hZGRMb2NJbmZvKCl9LHQucHJvdG90eXBlLmJlZ2luRGF0YT1mdW5jdGlvbigpe3RoaXMucHVzaCh7dHlwZTpcIkNoYXJzXCIsY2hhcnM6XCJcIn0pfSx0LnByb3RvdHlwZS5hcHBlbmRUb0RhdGE9ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50KFwiQ2hhcnNcIikuY2hhcnMrPWV9LHQucHJvdG90eXBlLmZpbmlzaERhdGE9ZnVuY3Rpb24oKXt0aGlzLmFkZExvY0luZm8oKX0sdC5wcm90b3R5cGUuYmVnaW5Db21tZW50PWZ1bmN0aW9uKCl7dGhpcy5wdXNoKHt0eXBlOlwiQ29tbWVudFwiLGNoYXJzOlwiXCJ9KX0sdC5wcm90b3R5cGUuYXBwZW5kVG9Db21tZW50RGF0YT1mdW5jdGlvbihlKXt0aGlzLmN1cnJlbnQoXCJDb21tZW50XCIpLmNoYXJzKz1lfSx0LnByb3RvdHlwZS5maW5pc2hDb21tZW50PWZ1bmN0aW9uKCl7dGhpcy5hZGRMb2NJbmZvKCl9LHQucHJvdG90eXBlLnRhZ09wZW49ZnVuY3Rpb24oKXt9LHQucHJvdG90eXBlLmJlZ2luU3RhcnRUYWc9ZnVuY3Rpb24oKXt0aGlzLnB1c2goe3R5cGU6XCJTdGFydFRhZ1wiLHRhZ05hbWU6XCJcIixhdHRyaWJ1dGVzOltdLHNlbGZDbG9zaW5nOiExfSl9LHQucHJvdG90eXBlLmJlZ2luRW5kVGFnPWZ1bmN0aW9uKCl7dGhpcy5wdXNoKHt0eXBlOlwiRW5kVGFnXCIsdGFnTmFtZTpcIlwifSl9LHQucHJvdG90eXBlLmZpbmlzaFRhZz1mdW5jdGlvbigpe3RoaXMuYWRkTG9jSW5mbygpfSx0LnByb3RvdHlwZS5tYXJrVGFnQXNTZWxmQ2xvc2luZz1mdW5jdGlvbigpe3RoaXMuY3VycmVudChcIlN0YXJ0VGFnXCIpLnNlbGZDbG9zaW5nPSEwfSx0LnByb3RvdHlwZS5hcHBlbmRUb1RhZ05hbWU9ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50KFwiU3RhcnRUYWdcIixcIkVuZFRhZ1wiKS50YWdOYW1lKz1lfSx0LnByb3RvdHlwZS5iZWdpbkF0dHJpYnV0ZT1mdW5jdGlvbigpe3RoaXMuX2N1cnJlbnRBdHRyaWJ1dGU9W1wiXCIsXCJcIiwhMV19LHQucHJvdG90eXBlLmFwcGVuZFRvQXR0cmlidXRlTmFtZT1mdW5jdGlvbihlKXt0aGlzLmN1cnJlbnRBdHRyaWJ1dGUoKVswXSs9ZX0sdC5wcm90b3R5cGUuYmVnaW5BdHRyaWJ1dGVWYWx1ZT1mdW5jdGlvbihlKXt0aGlzLmN1cnJlbnRBdHRyaWJ1dGUoKVsyXT1lfSx0LnByb3RvdHlwZS5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlPWZ1bmN0aW9uKGUpe3RoaXMuY3VycmVudEF0dHJpYnV0ZSgpWzFdKz1lfSx0LnByb3RvdHlwZS5maW5pc2hBdHRyaWJ1dGVWYWx1ZT1mdW5jdGlvbigpe3RoaXMuY3VycmVudChcIlN0YXJ0VGFnXCIpLmF0dHJpYnV0ZXMucHVzaCh0aGlzLl9jdXJyZW50QXR0cmlidXRlKX0sdC5wcm90b3R5cGUucmVwb3J0U3ludGF4RXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5jdXJyZW50KCkuc3ludGF4RXJyb3I9ZX0sdH0oKTt2YXIgb3M9L1tcXHhBMFwiJl0vLE1sPW5ldyBSZWdFeHAob3Muc291cmNlLFwiZ1wiKSxscz0vW1xceEEwJjw+XS8sR2w9bmV3IFJlZ0V4cChscy5zb3VyY2UsXCJnXCIpO3ZhciBQdD1PYmplY3QuY3JlYXRlKG51bGwpLGNzPVwiYXJlYSBiYXNlIGJyIGNvbCBjb21tYW5kIGVtYmVkIGhyIGltZyBpbnB1dCBrZXlnZW4gbGluayBtZXRhIHBhcmFtIHNvdXJjZSB0cmFjayB3YnJcIjtjcy5zcGxpdChcIiBcIikuZm9yRWFjaCh0PT57UHRbdF09ITB9KTt2YXIgWT1PYmplY3QuZnJlZXplKHtsaW5lOjEsY29sdW1uOjB9KSxrbj1PYmplY3QuZnJlZXplKHtzb3VyY2U6XCIoc3ludGhldGljKVwiLHN0YXJ0OlksZW5kOll9KTt2YXIgZWM9T2JqZWN0LmZyZWV6ZSh7c291cmNlOlwiKHRlbXBvcmFyeSlcIixzdGFydDpZLGVuZDpZfSksRmU9T2JqZWN0LmZyZWV6ZSh7c291cmNlOlwiKG5vbmV4aXN0ZW50KVwiLHN0YXJ0OlksZW5kOll9KSxlZT1PYmplY3QuZnJlZXplKHtzb3VyY2U6XCIoYnJva2VuKVwiLHN0YXJ0OlksZW5kOll9KTt2YXIgTnQ9Y2xhc3MgdHtjb25zdHJ1Y3RvcihlKXt0aGlzLmxvYz1lLmxvYyx0aGlzLmNoYXJzPWUuY2hhcnN9c3RhdGljIHN5bnRoZXRpYyhlKXtsZXQgcj1QLnN5bnRoZXRpYyhlKTtyZXR1cm4gbmV3IHQoe2xvYzpyLGNoYXJzOmV9KX1zdGF0aWMgbG9hZChlLHIpe3JldHVybiBuZXcgdCh7bG9jOlAubG9hZChlLHJbMV0pLGNoYXJzOnJbMF19KX1nZXRTdHJpbmcoKXtyZXR1cm4gdGhpcy5jaGFyc31zZXJpYWxpemUoKXtyZXR1cm5bdGhpcy5jaGFycyx0aGlzLmxvYy5zZXJpYWxpemUoKV19fTt2YXIgUGU9XCJNQVRDSF9BTllcIixBdD1cIklTX0lOVklTSUJMRVwiLGZyPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuX3doZW5zPWV9Zmlyc3QoZSl7Zm9yKGxldCByIG9mIHRoaXMuX3doZW5zKXtsZXQgbj1yLm1hdGNoKGUpO2lmKEhlKG4pKXJldHVybiBuWzBdfXJldHVybiBudWxsfX0sQ3Q9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLl9tYXA9bmV3IE1hcH1nZXQoZSxyKXtsZXQgbj10aGlzLl9tYXAuZ2V0KGUpO3JldHVybiBufHwobj1yKCksdGhpcy5fbWFwLnNldChlLG4pLG4pfWFkZChlLHIpe3RoaXMuX21hcC5zZXQoZSxyKX1tYXRjaChlKXtsZXQgcj11cyhlKSxuPVtdLGk9dGhpcy5fbWFwLmdldChyKSxzPXRoaXMuX21hcC5nZXQoUGUpO3JldHVybiBpJiZuLnB1c2goaSkscyYmbi5wdXNoKHMpLG59fTtmdW5jdGlvbiBfdCh0KXtyZXR1cm4gdChuZXcgZHIpLmNoZWNrKCl9dmFyIGRyPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5fd2hlbnM9bmV3IEN0fWNoZWNrKCl7cmV0dXJuKGUscik9PnRoaXMubWF0Y2hGb3IoZS5raW5kLHIua2luZCkoZSxyKX1tYXRjaEZvcihlLHIpe2xldCBuPXRoaXMuX3doZW5zLm1hdGNoKGUpO3JldHVybiBuZXcgZnIobikuZmlyc3Qocil9d2hlbihlLHIsbil7cmV0dXJuIHRoaXMuX3doZW5zLmdldChlLCgpPT5uZXcgQ3QpLmFkZChyLG4pLHRoaXN9fTtmdW5jdGlvbiB1cyh0KXtzd2l0Y2godCl7Y2FzZVwiQnJva2VuXCI6Y2FzZVwiSW50ZXJuYWxzU3ludGhldGljXCI6Y2FzZVwiTm9uRXhpc3RlbnRcIjpyZXR1cm4gQXQ7ZGVmYXVsdDpyZXR1cm4gdH19dmFyIHRlPVwiQlJPS0VOXCIsbWU9Y2xhc3MgdHtjb25zdHJ1Y3RvcihlKXt0aGlzLmRhdGE9ZX1zdGF0aWMgZm9ySGJzUG9zKGUscil7cmV0dXJuIG5ldyByZShlLHIsbnVsbCkud3JhcCgpfXN0YXRpYyBicm9rZW4oZT1ZKXtyZXR1cm4gbmV3IE1lKFwiQnJva2VuXCIsZSkud3JhcCgpfWdldCBvZmZzZXQoKXtsZXQgZT10aGlzLmRhdGEudG9DaGFyUG9zKCk7cmV0dXJuIGU9PT1udWxsP251bGw6ZS5vZmZzZXR9ZXFsKGUpe3JldHVybiBocyh0aGlzLmRhdGEsZS5kYXRhKX11bnRpbChlKXtyZXR1cm4geih0aGlzLmRhdGEsZS5kYXRhKX1tb3ZlKGUpe2xldCByPXRoaXMuZGF0YS50b0NoYXJQb3MoKTtpZihyPT09bnVsbClyZXR1cm4gdC5icm9rZW4oKTt7bGV0IG49ci5vZmZzZXQrZTtyZXR1cm4gci5zb3VyY2UuY2hlY2sobik/bmV3IGdlKHIuc291cmNlLG4pLndyYXAoKTp0LmJyb2tlbigpfX1jb2xsYXBzZWQoKXtyZXR1cm4geih0aGlzLmRhdGEsdGhpcy5kYXRhKX10b0pTT04oKXtyZXR1cm4gdGhpcy5kYXRhLnRvSlNPTigpfX0sZ2U9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnNvdXJjZT1lLHRoaXMuY2hhclBvcz1yLHRoaXMua2luZD1cIkNoYXJQb3NpdGlvblwiLHRoaXMuX2xvY1Bvcz1udWxsfXRvQ2hhclBvcygpe3JldHVybiB0aGlzfXRvSlNPTigpe2xldCBlPXRoaXMudG9IYnNQb3MoKTtyZXR1cm4gZT09PW51bGw/WTplLnRvSlNPTigpfXdyYXAoKXtyZXR1cm4gbmV3IG1lKHRoaXMpfWdldCBvZmZzZXQoKXtyZXR1cm4gdGhpcy5jaGFyUG9zfXRvSGJzUG9zKCl7bGV0IGU9dGhpcy5fbG9jUG9zO2lmKGU9PT1udWxsKXtsZXQgcj10aGlzLnNvdXJjZS5oYnNQb3NGb3IodGhpcy5jaGFyUG9zKTtyPT09bnVsbD90aGlzLl9sb2NQb3M9ZT10ZTp0aGlzLl9sb2NQb3M9ZT1uZXcgcmUodGhpcy5zb3VyY2Uscix0aGlzLmNoYXJQb3MpfXJldHVybiBlPT09dGU/bnVsbDplfX0scmU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG49bnVsbCl7dGhpcy5zb3VyY2U9ZSx0aGlzLmhic1Bvcz1yLHRoaXMua2luZD1cIkhic1Bvc2l0aW9uXCIsdGhpcy5fY2hhclBvcz1uPT09bnVsbD9udWxsOm5ldyBnZShlLG4pfXRvQ2hhclBvcygpe2xldCBlPXRoaXMuX2NoYXJQb3M7aWYoZT09PW51bGwpe2xldCByPXRoaXMuc291cmNlLmNoYXJQb3NGb3IodGhpcy5oYnNQb3MpO3I9PT1udWxsP3RoaXMuX2NoYXJQb3M9ZT10ZTp0aGlzLl9jaGFyUG9zPWU9bmV3IGdlKHRoaXMuc291cmNlLHIpfXJldHVybiBlPT09dGU/bnVsbDplfXRvSlNPTigpe3JldHVybiB0aGlzLmhic1Bvc313cmFwKCl7cmV0dXJuIG5ldyBtZSh0aGlzKX10b0hic1Bvcygpe3JldHVybiB0aGlzfX0sTWU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLmtpbmQ9ZSx0aGlzLnBvcz1yfXRvQ2hhclBvcygpe3JldHVybiBudWxsfXRvSlNPTigpe3JldHVybiB0aGlzLnBvc313cmFwKCl7cmV0dXJuIG5ldyBtZSh0aGlzKX1nZXQgb2Zmc2V0KCl7cmV0dXJuIG51bGx9fSxocz1fdCh0PT50LndoZW4oXCJIYnNQb3NpdGlvblwiLFwiSGJzUG9zaXRpb25cIiwoe2hic1BvczplfSx7aGJzUG9zOnJ9KT0+ZS5jb2x1bW49PT1yLmNvbHVtbiYmZS5saW5lPT09ci5saW5lKS53aGVuKFwiQ2hhclBvc2l0aW9uXCIsXCJDaGFyUG9zaXRpb25cIiwoe2NoYXJQb3M6ZX0se2NoYXJQb3M6cn0pPT5lPT09cikud2hlbihcIkNoYXJQb3NpdGlvblwiLFwiSGJzUG9zaXRpb25cIiwoe29mZnNldDplfSxyKT0+e3ZhciBuO3JldHVybiBlPT09KChuPXIudG9DaGFyUG9zKCkpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vZmZzZXQpfSkud2hlbihcIkhic1Bvc2l0aW9uXCIsXCJDaGFyUG9zaXRpb25cIiwoZSx7b2Zmc2V0OnJ9KT0+e3ZhciBuO3JldHVybigobj1lLnRvQ2hhclBvcygpKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4ub2Zmc2V0KT09PXJ9KS53aGVuKFBlLFBlLCgpPT4hMSkpO3ZhciBQPWNsYXNzIHR7Y29uc3RydWN0b3IoZSl7dGhpcy5kYXRhPWUsdGhpcy5pc0ludmlzaWJsZT1lLmtpbmQhPT1cIkNoYXJQb3NpdGlvblwiJiZlLmtpbmQhPT1cIkhic1Bvc2l0aW9uXCJ9c3RhdGljIGdldCBOT05fRVhJU1RFTlQoKXtyZXR1cm4gbmV3IG5lKFwiTm9uRXhpc3RlbnRcIixGZSkud3JhcCgpfXN0YXRpYyBsb2FkKGUscil7aWYodHlwZW9mIHI9PVwibnVtYmVyXCIpcmV0dXJuIHQuZm9yQ2hhclBvc2l0aW9ucyhlLHIscik7aWYodHlwZW9mIHI9PVwic3RyaW5nXCIpcmV0dXJuIHQuc3ludGhldGljKHIpO2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIHQuZm9yQ2hhclBvc2l0aW9ucyhlLHJbMF0sclsxXSk7aWYocj09PVwiTm9uRXhpc3RlbnRcIilyZXR1cm4gdC5OT05fRVhJU1RFTlQ7aWYocj09PVwiQnJva2VuXCIpcmV0dXJuIHQuYnJva2VuKGVlKTtibihyKX1zdGF0aWMgZm9ySGJzTG9jKGUscil7bGV0IG49bmV3IHJlKGUsci5zdGFydCksaT1uZXcgcmUoZSxyLmVuZCk7cmV0dXJuIG5ldyBvdChlLHtzdGFydDpuLGVuZDppfSxyKS53cmFwKCl9c3RhdGljIGZvckNoYXJQb3NpdGlvbnMoZSxyLG4pe2xldCBpPW5ldyBnZShlLHIpLHM9bmV3IGdlKGUsbik7cmV0dXJuIG5ldyBhdChlLHtzdGFydDppLGVuZDpzfSkud3JhcCgpfXN0YXRpYyBzeW50aGV0aWMoZSl7cmV0dXJuIG5ldyBuZShcIkludGVybmFsc1N5bnRoZXRpY1wiLEZlLGUpLndyYXAoKX1zdGF0aWMgYnJva2VuKGU9ZWUpe3JldHVybiBuZXcgbmUoXCJCcm9rZW5cIixlKS53cmFwKCl9Z2V0U3RhcnQoKXtyZXR1cm4gdGhpcy5kYXRhLmdldFN0YXJ0KCkud3JhcCgpfWdldEVuZCgpe3JldHVybiB0aGlzLmRhdGEuZ2V0RW5kKCkud3JhcCgpfWdldCBsb2MoKXtsZXQgZT10aGlzLmRhdGEudG9IYnNTcGFuKCk7cmV0dXJuIGU9PT1udWxsP2VlOmUudG9IYnNMb2MoKX1nZXQgbW9kdWxlKCl7cmV0dXJuIHRoaXMuZGF0YS5nZXRNb2R1bGUoKX1nZXQgc3RhcnRQb3NpdGlvbigpe3JldHVybiB0aGlzLmxvYy5zdGFydH1nZXQgZW5kUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5sb2MuZW5kfXRvSlNPTigpe3JldHVybiB0aGlzLmxvY313aXRoU3RhcnQoZSl7cmV0dXJuIHooZS5kYXRhLHRoaXMuZGF0YS5nZXRFbmQoKSl9d2l0aEVuZChlKXtyZXR1cm4geih0aGlzLmRhdGEuZ2V0U3RhcnQoKSxlLmRhdGEpfWFzU3RyaW5nKCl7cmV0dXJuIHRoaXMuZGF0YS5hc1N0cmluZygpfXRvU2xpY2UoZSl7bGV0IHI9dGhpcy5kYXRhLmFzU3RyaW5nKCk7cmV0dXJuITEmJmUhPT12b2lkIDAmJnIhPT1lJiZjb25zb2xlLndhcm4oYHVuZXhwZWN0ZWRseSBmb3VuZCAke0pTT04uc3RyaW5naWZ5KHIpfSB3aGVuIHNsaWNpbmcgc291cmNlLCBidXQgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShlKX1gKSxuZXcgTnQoe2xvYzp0aGlzLGNoYXJzOmV8fHJ9KX1nZXQgc3RhcnQoKXtyZXR1cm4gdGhpcy5sb2Muc3RhcnR9c2V0IHN0YXJ0KGUpe3RoaXMuZGF0YS5sb2NEaWRVcGRhdGUoe3N0YXJ0OmV9KX1nZXQgZW5kKCl7cmV0dXJuIHRoaXMubG9jLmVuZH1zZXQgZW5kKGUpe3RoaXMuZGF0YS5sb2NEaWRVcGRhdGUoe2VuZDplfSl9Z2V0IHNvdXJjZSgpe3JldHVybiB0aGlzLm1vZHVsZX1jb2xsYXBzZShlKXtzd2l0Y2goZSl7Y2FzZVwic3RhcnRcIjpyZXR1cm4gdGhpcy5nZXRTdGFydCgpLmNvbGxhcHNlZCgpO2Nhc2VcImVuZFwiOnJldHVybiB0aGlzLmdldEVuZCgpLmNvbGxhcHNlZCgpfX1leHRlbmQoZSl7cmV0dXJuIHoodGhpcy5kYXRhLmdldFN0YXJ0KCksZS5kYXRhLmdldEVuZCgpKX1zZXJpYWxpemUoKXtyZXR1cm4gdGhpcy5kYXRhLnNlcmlhbGl6ZSgpfXNsaWNlKHtza2lwU3RhcnQ6ZT0wLHNraXBFbmQ6cj0wfSl7cmV0dXJuIHoodGhpcy5nZXRTdGFydCgpLm1vdmUoZSkuZGF0YSx0aGlzLmdldEVuZCgpLm1vdmUoLXIpLmRhdGEpfXNsaWNlU3RhcnRDaGFycyh7c2tpcFN0YXJ0OmU9MCxjaGFyczpyfSl7cmV0dXJuIHoodGhpcy5nZXRTdGFydCgpLm1vdmUoZSkuZGF0YSx0aGlzLmdldFN0YXJ0KCkubW92ZShlK3IpLmRhdGEpfXNsaWNlRW5kQ2hhcnMoe3NraXBFbmQ6ZT0wLGNoYXJzOnJ9KXtyZXR1cm4geih0aGlzLmdldEVuZCgpLm1vdmUoZS1yKS5kYXRhLHRoaXMuZ2V0U3RhcnQoKS5tb3ZlKC1lKS5kYXRhKX19LGF0PWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy5zb3VyY2U9ZSx0aGlzLmNoYXJQb3NpdGlvbnM9cix0aGlzLmtpbmQ9XCJDaGFyUG9zaXRpb25cIix0aGlzLl9sb2NQb3NTcGFuPW51bGx9d3JhcCgpe3JldHVybiBuZXcgUCh0aGlzKX1hc1N0cmluZygpe3JldHVybiB0aGlzLnNvdXJjZS5zbGljZSh0aGlzLmNoYXJQb3NpdGlvbnMuc3RhcnQuY2hhclBvcyx0aGlzLmNoYXJQb3NpdGlvbnMuZW5kLmNoYXJQb3MpfWdldE1vZHVsZSgpe3JldHVybiB0aGlzLnNvdXJjZS5tb2R1bGV9Z2V0U3RhcnQoKXtyZXR1cm4gdGhpcy5jaGFyUG9zaXRpb25zLnN0YXJ0fWdldEVuZCgpe3JldHVybiB0aGlzLmNoYXJQb3NpdGlvbnMuZW5kfWxvY0RpZFVwZGF0ZSgpe310b0hic1NwYW4oKXtsZXQgZT10aGlzLl9sb2NQb3NTcGFuO2lmKGU9PT1udWxsKXtsZXQgcj10aGlzLmNoYXJQb3NpdGlvbnMuc3RhcnQudG9IYnNQb3MoKSxuPXRoaXMuY2hhclBvc2l0aW9ucy5lbmQudG9IYnNQb3MoKTtyPT09bnVsbHx8bj09PW51bGw/ZT10aGlzLl9sb2NQb3NTcGFuPXRlOmU9dGhpcy5fbG9jUG9zU3Bhbj1uZXcgb3QodGhpcy5zb3VyY2Use3N0YXJ0OnIsZW5kOm59KX1yZXR1cm4gZT09PXRlP251bGw6ZX1zZXJpYWxpemUoKXtsZXR7c3RhcnQ6e2NoYXJQb3M6ZX0sZW5kOntjaGFyUG9zOnJ9fT10aGlzLmNoYXJQb3NpdGlvbnM7cmV0dXJuIGU9PT1yP2U6W2Uscl19dG9DaGFyUG9zU3Bhbigpe3JldHVybiB0aGlzfX0sb3Q9Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG49bnVsbCl7dGhpcy5zb3VyY2U9ZSx0aGlzLmhic1Bvc2l0aW9ucz1yLHRoaXMua2luZD1cIkhic1Bvc2l0aW9uXCIsdGhpcy5fY2hhclBvc1NwYW49bnVsbCx0aGlzLl9wcm92aWRlZEhic0xvYz1ufXNlcmlhbGl6ZSgpe2xldCBlPXRoaXMudG9DaGFyUG9zU3BhbigpO3JldHVybiBlPT09bnVsbD9cIkJyb2tlblwiOmUud3JhcCgpLnNlcmlhbGl6ZSgpfXdyYXAoKXtyZXR1cm4gbmV3IFAodGhpcyl9dXBkYXRlUHJvdmlkZWQoZSxyKXt0aGlzLl9wcm92aWRlZEhic0xvYyYmKHRoaXMuX3Byb3ZpZGVkSGJzTG9jW3JdPWUpLHRoaXMuX2NoYXJQb3NTcGFuPW51bGwsdGhpcy5fcHJvdmlkZWRIYnNMb2M9e3N0YXJ0OmUsZW5kOmV9fWxvY0RpZFVwZGF0ZSh7c3RhcnQ6ZSxlbmQ6cn0pe2UhPT12b2lkIDAmJih0aGlzLnVwZGF0ZVByb3ZpZGVkKGUsXCJzdGFydFwiKSx0aGlzLmhic1Bvc2l0aW9ucy5zdGFydD1uZXcgcmUodGhpcy5zb3VyY2UsZSxudWxsKSksciE9PXZvaWQgMCYmKHRoaXMudXBkYXRlUHJvdmlkZWQocixcImVuZFwiKSx0aGlzLmhic1Bvc2l0aW9ucy5lbmQ9bmV3IHJlKHRoaXMuc291cmNlLHIsbnVsbCkpfWFzU3RyaW5nKCl7bGV0IGU9dGhpcy50b0NoYXJQb3NTcGFuKCk7cmV0dXJuIGU9PT1udWxsP1wiXCI6ZS5hc1N0cmluZygpfWdldE1vZHVsZSgpe3JldHVybiB0aGlzLnNvdXJjZS5tb2R1bGV9Z2V0U3RhcnQoKXtyZXR1cm4gdGhpcy5oYnNQb3NpdGlvbnMuc3RhcnR9Z2V0RW5kKCl7cmV0dXJuIHRoaXMuaGJzUG9zaXRpb25zLmVuZH10b0hic0xvYygpe3JldHVybntzdGFydDp0aGlzLmhic1Bvc2l0aW9ucy5zdGFydC5oYnNQb3MsZW5kOnRoaXMuaGJzUG9zaXRpb25zLmVuZC5oYnNQb3N9fXRvSGJzU3Bhbigpe3JldHVybiB0aGlzfXRvQ2hhclBvc1NwYW4oKXtsZXQgZT10aGlzLl9jaGFyUG9zU3BhbjtpZihlPT09bnVsbCl7bGV0IHI9dGhpcy5oYnNQb3NpdGlvbnMuc3RhcnQudG9DaGFyUG9zKCksbj10aGlzLmhic1Bvc2l0aW9ucy5lbmQudG9DaGFyUG9zKCk7aWYociYmbillPXRoaXMuX2NoYXJQb3NTcGFuPW5ldyBhdCh0aGlzLnNvdXJjZSx7c3RhcnQ6cixlbmQ6bn0pO2Vsc2UgcmV0dXJuIGU9dGhpcy5fY2hhclBvc1NwYW49dGUsbnVsbH1yZXR1cm4gZT09PXRlP251bGw6ZX19LG5lPWNsYXNze2NvbnN0cnVjdG9yKGUscixuPW51bGwpe3RoaXMua2luZD1lLHRoaXMubG9jPXIsdGhpcy5zdHJpbmc9bn1zZXJpYWxpemUoKXtzd2l0Y2godGhpcy5raW5kKXtjYXNlXCJCcm9rZW5cIjpjYXNlXCJOb25FeGlzdGVudFwiOnJldHVybiB0aGlzLmtpbmQ7Y2FzZVwiSW50ZXJuYWxzU3ludGhldGljXCI6cmV0dXJuIHRoaXMuc3RyaW5nfHxcIlwifX13cmFwKCl7cmV0dXJuIG5ldyBQKHRoaXMpfWFzU3RyaW5nKCl7cmV0dXJuIHRoaXMuc3RyaW5nfHxcIlwifWxvY0RpZFVwZGF0ZSh7c3RhcnQ6ZSxlbmQ6cn0pe2UhPT12b2lkIDAmJih0aGlzLmxvYy5zdGFydD1lKSxyIT09dm9pZCAwJiYodGhpcy5sb2MuZW5kPXIpfWdldE1vZHVsZSgpe3JldHVyblwiYW4gdW5rbm93biBtb2R1bGVcIn1nZXRTdGFydCgpe3JldHVybiBuZXcgTWUodGhpcy5raW5kLHRoaXMubG9jLnN0YXJ0KX1nZXRFbmQoKXtyZXR1cm4gbmV3IE1lKHRoaXMua2luZCx0aGlzLmxvYy5lbmQpfXRvQ2hhclBvc1NwYW4oKXtyZXR1cm4gdGhpc310b0hic1NwYW4oKXtyZXR1cm4gbnVsbH10b0hic0xvYygpe3JldHVybiBlZX19LHo9X3QodD0+dC53aGVuKFwiSGJzUG9zaXRpb25cIixcIkhic1Bvc2l0aW9uXCIsKGUscik9Pm5ldyBvdChlLnNvdXJjZSx7c3RhcnQ6ZSxlbmQ6cn0pLndyYXAoKSkud2hlbihcIkNoYXJQb3NpdGlvblwiLFwiQ2hhclBvc2l0aW9uXCIsKGUscik9Pm5ldyBhdChlLnNvdXJjZSx7c3RhcnQ6ZSxlbmQ6cn0pLndyYXAoKSkud2hlbihcIkNoYXJQb3NpdGlvblwiLFwiSGJzUG9zaXRpb25cIiwoZSxyKT0+e2xldCBuPXIudG9DaGFyUG9zKCk7cmV0dXJuIG49PT1udWxsP25ldyBuZShcIkJyb2tlblwiLGVlKS53cmFwKCk6eihlLG4pfSkud2hlbihcIkhic1Bvc2l0aW9uXCIsXCJDaGFyUG9zaXRpb25cIiwoZSxyKT0+e2xldCBuPWUudG9DaGFyUG9zKCk7cmV0dXJuIG49PT1udWxsP25ldyBuZShcIkJyb2tlblwiLGVlKS53cmFwKCk6eihuLHIpfSkud2hlbihBdCxQZSxlPT5uZXcgbmUoZS5raW5kLGVlKS53cmFwKCkpLndoZW4oUGUsQXQsKGUscik9Pm5ldyBuZShyLmtpbmQsZWUpLndyYXAoKSkpO3ZhciBpZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHI9XCJhbiB1bmtub3duIG1vZHVsZVwiKXt0aGlzLnNvdXJjZT1lLHRoaXMubW9kdWxlPXJ9Y2hlY2soZSl7cmV0dXJuIGU+PTAmJmU8PXRoaXMuc291cmNlLmxlbmd0aH1zbGljZShlLHIpe3JldHVybiB0aGlzLnNvdXJjZS5zbGljZShlLHIpfW9mZnNldEZvcihlLHIpe3JldHVybiBtZS5mb3JIYnNQb3ModGhpcyx7bGluZTplLGNvbHVtbjpyfSl9c3BhbkZvcih7c3RhcnQ6ZSxlbmQ6cn0pe3JldHVybiBQLmZvckhic0xvYyh0aGlzLHtzdGFydDp7bGluZTplLmxpbmUsY29sdW1uOmUuY29sdW1ufSxlbmQ6e2xpbmU6ci5saW5lLGNvbHVtbjpyLmNvbHVtbn19KX1oYnNQb3NGb3IoZSl7bGV0IHI9MCxuPTA7aWYoZT50aGlzLnNvdXJjZS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKDs7KXtsZXQgaT10aGlzLnNvdXJjZS5pbmRleE9mKGBcbmAsbik7aWYoZTw9aXx8aT09PS0xKXJldHVybntsaW5lOnIrMSxjb2x1bW46ZS1ufTtyKz0xLG49aSsxfX1jaGFyUG9zRm9yKGUpe2xldHtsaW5lOnIsY29sdW1uOm59PWUscz10aGlzLnNvdXJjZS5sZW5ndGgsYT0wLGw9MDtmb3IoOzspe2lmKGw+PXMpcmV0dXJuIHM7bGV0IGM9dGhpcy5zb3VyY2UuaW5kZXhPZihgXG5gLGwpO2lmKGM9PT0tMSYmKGM9dGhpcy5zb3VyY2UubGVuZ3RoKSxhPT09ci0xKXtpZihsK24+YylyZXR1cm4gYztpZighMSl7bGV0IGg9dGhpcy5oYnNQb3NGb3IobCtuKX1yZXR1cm4gbCtufWVsc2V7aWYoYz09PS0xKXJldHVybiAwO2ErPTEsbD1jKzF9fX19O2Z1bmN0aW9uIFModCxlKXtsZXR7bW9kdWxlOnIsbG9jOm59PWUse2xpbmU6aSxjb2x1bW46c309bi5zdGFydCxhPWUuYXNTdHJpbmcoKSxsPWE/YFxuXG58XG58ICAke2Euc3BsaXQoYFxuYCkuam9pbihgXG58ICBgKX1cbnxcblxuYDpcIlwiLGM9bmV3IEVycm9yKGAke3R9OiAke2x9KGVycm9yIG9jY3VycmVkIGluICcke3J9JyBAIGxpbmUgJHtpfSA6IGNvbHVtbiAke3N9KWApO3JldHVybiBjLm5hbWU9XCJTeW50YXhFcnJvclwiLGMubG9jYXRpb249ZSxjLmNvZGU9YSxjfXZhciBwcz17UHJvZ3JhbTpUKFwiYm9keVwiKSxUZW1wbGF0ZTpUKFwiYm9keVwiKSxCbG9jazpUKFwiYm9keVwiKSxNdXN0YWNoZVN0YXRlbWVudDpUKFwicGF0aFwiLFwicGFyYW1zXCIsXCJoYXNoXCIpLEJsb2NrU3RhdGVtZW50OlQoXCJwYXRoXCIsXCJwYXJhbXNcIixcImhhc2hcIixcInByb2dyYW1cIixcImludmVyc2VcIiksRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50OlQoXCJwYXRoXCIsXCJwYXJhbXNcIixcImhhc2hcIiksUGFydGlhbFN0YXRlbWVudDpUKFwibmFtZVwiLFwicGFyYW1zXCIsXCJoYXNoXCIpLENvbW1lbnRTdGF0ZW1lbnQ6VCgpLE11c3RhY2hlQ29tbWVudFN0YXRlbWVudDpUKCksRWxlbWVudE5vZGU6VChcImF0dHJpYnV0ZXNcIixcIm1vZGlmaWVyc1wiLFwiY2hpbGRyZW5cIixcImNvbW1lbnRzXCIpLEF0dHJOb2RlOlQoXCJ2YWx1ZVwiKSxUZXh0Tm9kZTpUKCksQ29uY2F0U3RhdGVtZW50OlQoXCJwYXJ0c1wiKSxTdWJFeHByZXNzaW9uOlQoXCJwYXRoXCIsXCJwYXJhbXNcIixcImhhc2hcIiksUGF0aEV4cHJlc3Npb246VCgpLFBhdGhIZWFkOlQoKSxTdHJpbmdMaXRlcmFsOlQoKSxCb29sZWFuTGl0ZXJhbDpUKCksTnVtYmVyTGl0ZXJhbDpUKCksTnVsbExpdGVyYWw6VCgpLFVuZGVmaW5lZExpdGVyYWw6VCgpLEhhc2g6VChcInBhaXJzXCIpLEhhc2hQYWlyOlQoXCJ2YWx1ZVwiKSxOYW1lZEJsb2NrOlQoXCJhdHRyaWJ1dGVzXCIsXCJtb2RpZmllcnNcIixcImNoaWxkcmVuXCIsXCJjb21tZW50c1wiKSxTaW1wbGVFbGVtZW50OlQoXCJhdHRyaWJ1dGVzXCIsXCJtb2RpZmllcnNcIixcImNoaWxkcmVuXCIsXCJjb21tZW50c1wiKSxDb21wb25lbnQ6VChcImhlYWRcIixcImF0dHJpYnV0ZXNcIixcIm1vZGlmaWVyc1wiLFwiY2hpbGRyZW5cIixcImNvbW1lbnRzXCIpfSxQbj1wczt2YXIgbXI9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dDtmdW5jdGlvbiB0KGUscixuLGkpe2xldCBzPUVycm9yLmNhbGwodGhpcyxlKTt0aGlzLmtleT1pLHRoaXMubWVzc2FnZT1lLHRoaXMubm9kZT1yLHRoaXMucGFyZW50PW4sdGhpcy5zdGFjaz1zLnN0YWNrfXJldHVybiB0fSgpO2Z1bmN0aW9uIGdyKHQsZSxyKXtyZXR1cm4gbmV3IG1yKFwiQ2Fubm90IHJlbW92ZSBhIG5vZGUgdW5sZXNzIGl0IGlzIHBhcnQgb2YgYW4gYXJyYXlcIix0LGUscil9ZnVuY3Rpb24gTm4odCxlLHIpe3JldHVybiBuZXcgbXIoXCJDYW5ub3QgcmVwbGFjZSBhIG5vZGUgd2l0aCBtdWx0aXBsZSBub2RlcyB1bmxlc3MgaXQgaXMgcGFydCBvZiBhbiBhcnJheVwiLHQsZSxyKX1mdW5jdGlvbiBicih0LGUpe3JldHVybiBuZXcgbXIoXCJSZXBsYWNpbmcgYW5kIHJlbW92aW5nIGluIGtleSBoYW5kbGVycyBpcyBub3QgeWV0IHN1cHBvcnRlZC5cIix0LG51bGwsZSl9dmFyIGJlPWNsYXNze2NvbnN0cnVjdG9yKGUscj1udWxsLG49bnVsbCl7dGhpcy5ub2RlPWUsdGhpcy5wYXJlbnQ9cix0aGlzLnBhcmVudEtleT1ufWdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMucGFyZW50P3RoaXMucGFyZW50Lm5vZGU6bnVsbH1wYXJlbnRzKCl7cmV0dXJue1tTeW1ib2wuaXRlcmF0b3JdOigpPT5uZXcgeXIodGhpcyl9fX0seXI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wYXRoPWV9bmV4dCgpe3JldHVybiB0aGlzLnBhdGgucGFyZW50Pyh0aGlzLnBhdGg9dGhpcy5wYXRoLnBhcmVudCx7ZG9uZTohMSx2YWx1ZTp0aGlzLnBhdGh9KTp7ZG9uZTohMCx2YWx1ZTpudWxsfX19O2Z1bmN0aW9uIEFuKHQpe3JldHVybiB0eXBlb2YgdD09XCJmdW5jdGlvblwiP3Q6dC5lbnRlcn1mdW5jdGlvbiBfbih0KXtpZih0eXBlb2YgdCE9XCJmdW5jdGlvblwiKXJldHVybiB0LmV4aXR9ZnVuY3Rpb24gZnModCxlKXtsZXQgcj10eXBlb2YgdCE9XCJmdW5jdGlvblwiP3Qua2V5czp2b2lkIDA7aWYocj09PXZvaWQgMClyZXR1cm47bGV0IG49cltlXTtyZXR1cm4gbiE9PXZvaWQgMD9uOnIuQWxsfWZ1bmN0aW9uIGRzKHQsZSl7aWYoKGU9PT1cIlRlbXBsYXRlXCJ8fGU9PT1cIkJsb2NrXCIpJiZ0LlByb2dyYW0pcmV0dXJuIHQuUHJvZ3JhbTtsZXQgcj10W2VdO3JldHVybiByIT09dm9pZCAwP3I6dC5BbGx9ZnVuY3Rpb24gTHQodCxlKXtsZXR7bm9kZTpyLHBhcmVudDpuLHBhcmVudEtleTppfT1lLHM9ZHModCxyLnR5cGUpLGEsbDtzIT09dm9pZCAwJiYoYT1BbihzKSxsPV9uKHMpKTtsZXQgYztpZihhIT09dm9pZCAwJiYoYz1hKHIsZSkpLGMhPW51bGwpaWYoSlNPTi5zdHJpbmdpZnkocik9PT1KU09OLnN0cmluZ2lmeShjKSljPXZvaWQgMDtlbHNle2lmKEFycmF5LmlzQXJyYXkoYykpcmV0dXJuIExuKHQsYyxuLGkpLGM7e2xldCBoPW5ldyBiZShjLG4saSk7cmV0dXJuIEx0KHQsaCl8fGN9fWlmKGM9PT12b2lkIDApe2xldCBoPVBuW3IudHlwZV07Zm9yKGxldCBnPTA7ZzxoLmxlbmd0aDtnKyspe2xldCB5PWhbZ107Z3ModCxzLGUseSl9bCE9PXZvaWQgMCYmKGM9bChyLGUpKX1yZXR1cm4gY31mdW5jdGlvbiBtcyh0LGUpe3JldHVybiB0W2VdfWZ1bmN0aW9uIENuKHQsZSxyKXt0W2VdPXJ9ZnVuY3Rpb24gZ3ModCxlLHIsbil7bGV0e25vZGU6aX09cixzPW1zKGksbik7aWYoIXMpcmV0dXJuO2xldCBhLGw7aWYoZSE9PXZvaWQgMCl7bGV0IGM9ZnMoZSxuKTtjIT09dm9pZCAwJiYoYT1BbihjKSxsPV9uKGMpKX1pZihhIT09dm9pZCAwJiZhKGksbikhPT12b2lkIDApdGhyb3cgYnIoaSxuKTtpZihBcnJheS5pc0FycmF5KHMpKUxuKHQscyxyLG4pO2Vsc2V7bGV0IGM9bmV3IGJlKHMscixuKSxoPUx0KHQsYyk7aCE9PXZvaWQgMCYmYnMoaSxuLHMsaCl9aWYobCE9PXZvaWQgMCYmbChpLG4pIT09dm9pZCAwKXRocm93IGJyKGksbil9ZnVuY3Rpb24gTG4odCxlLHIsbil7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2xldCBzPWVbaV0sYT1uZXcgYmUocyxyLG4pLGw9THQodCxhKTtsIT09dm9pZCAwJiYoaSs9eXMoZSxpLGwpLTEpfX1mdW5jdGlvbiBicyh0LGUscixuKXtpZihuPT09bnVsbCl0aHJvdyBncihyLHQsZSk7aWYoQXJyYXkuaXNBcnJheShuKSlpZihuLmxlbmd0aD09PTEpQ24odCxlLG5bMF0pO2Vsc2UgdGhyb3cgbi5sZW5ndGg9PT0wP2dyKHIsdCxlKTpObihyLHQsZSk7ZWxzZSBDbih0LGUsbil9ZnVuY3Rpb24geXModCxlLHIpe3JldHVybiByPT09bnVsbD8odC5zcGxpY2UoZSwxKSwwKTpBcnJheS5pc0FycmF5KHIpPyh0LnNwbGljZShlLDEsLi4uciksci5sZW5ndGgpOih0LnNwbGljZShlLDEsciksMSl9ZnVuY3Rpb24gU3IodCxlKXtsZXQgcj1uZXcgYmUodCk7THQoZSxyKX12YXIgU3M9L1shXCIjJS0sXFwuXFwvOy0+QFxcWy1cXF5gXFx7LX5dLztmdW5jdGlvbiBEbih0KXtsZXQgZT1Fcyh0KTtlJiYodC5ibG9ja1BhcmFtcz1lKX1mdW5jdGlvbiBFcyh0KXtsZXQgZT10LmF0dHJpYnV0ZXMubGVuZ3RoLHI9W107Zm9yKGxldCBpPTA7aTxlO2krKylyLnB1c2godC5hdHRyaWJ1dGVzW2ldLm5hbWUpO2xldCBuPXIuaW5kZXhPZihcImFzXCIpO2lmKG49PT0tMSYmci5sZW5ndGg+MCYmcltyLmxlbmd0aC0xXS5jaGFyQXQoMCk9PT1cInxcIil0aHJvdyBTKFwiQmxvY2sgcGFyYW1ldGVycyBtdXN0IGJlIHByZWNlZGVkIGJ5IHRoZSBgYXNgIGtleXdvcmQsIGRldGVjdGVkIGJsb2NrIHBhcmFtZXRlcnMgd2l0aG91dCBgYXNgXCIsdC5sb2MpO2lmKG4hPT0tMSYmZT5uJiZyW24rMV0uY2hhckF0KDApPT09XCJ8XCIpe2xldCBpPXIuc2xpY2Uobikuam9pbihcIiBcIik7aWYoaS5jaGFyQXQoaS5sZW5ndGgtMSkhPT1cInxcInx8aS5tYXRjaCgvXFx8L2cpLmxlbmd0aCE9PTIpdGhyb3cgUyhcIkludmFsaWQgYmxvY2sgcGFyYW1ldGVycyBzeW50YXgsICdcIitpK1wiJ1wiLHQubG9jKTtsZXQgcz1bXTtmb3IobGV0IGE9bisxO2E8ZTthKyspe2xldCBsPXJbYV0ucmVwbGFjZSgvXFx8L2csXCJcIik7aWYobCE9PVwiXCIpe2lmKFNzLnRlc3QobCkpdGhyb3cgUyhcIkludmFsaWQgaWRlbnRpZmllciBmb3IgYmxvY2sgcGFyYW1ldGVycywgJ1wiK2wrXCInXCIsdC5sb2MpO3MucHVzaChsKX19aWYocy5sZW5ndGg9PT0wKXRocm93IFMoXCJDYW5ub3QgdXNlIHplcm8gYmxvY2sgcGFyYW1ldGVyc1wiLHQubG9jKTtyZXR1cm4gdC5hdHRyaWJ1dGVzPXQuYXR0cmlidXRlcy5zbGljZSgwLG4pLHN9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVHModCl7c3dpdGNoKHQudHlwZSl7Y2FzZVwiQmxvY2tcIjpjYXNlXCJUZW1wbGF0ZVwiOnJldHVybiB0LmJvZHk7Y2FzZVwiRWxlbWVudE5vZGVcIjpyZXR1cm4gdC5jaGlsZHJlbn19ZnVuY3Rpb24geWUodCxlKXtUcyh0KS5wdXNoKGUpfWZ1bmN0aW9uIEVyKHQpe3JldHVybiB0LnR5cGU9PT1cIlN0cmluZ0xpdGVyYWxcInx8dC50eXBlPT09XCJCb29sZWFuTGl0ZXJhbFwifHx0LnR5cGU9PT1cIk51bWJlckxpdGVyYWxcInx8dC50eXBlPT09XCJOdWxsTGl0ZXJhbFwifHx0LnR5cGU9PT1cIlVuZGVmaW5lZExpdGVyYWxcIn1mdW5jdGlvbiBPbih0KXtyZXR1cm4gdC50eXBlPT09XCJVbmRlZmluZWRMaXRlcmFsXCI/XCJ1bmRlZmluZWRcIjpKU09OLnN0cmluZ2lmeSh0LnZhbHVlKX12YXIgVHI7ZnVuY3Rpb24gdnIoKXtyZXR1cm4gVHJ8fChUcj1uZXcgaWUoXCJcIixcIihzeW50aGV0aWMpXCIpKSxUcn1mdW5jdGlvbiB2cyh0LGUscixuLGkscyl7cmV0dXJuIHR5cGVvZiB0PT1cInN0cmluZ1wiJiYodD1sdCh0KSkse3R5cGU6XCJNdXN0YWNoZVN0YXRlbWVudFwiLHBhdGg6dCxwYXJhbXM6ZXx8W10saGFzaDpyfHxHZShbXSksZXNjYXBlZDohbix0cnVzdGluZzohIW4sbG9jOkUoaXx8bnVsbCksc3RyaXA6c3x8e29wZW46ITEsY2xvc2U6ITF9fX1mdW5jdGlvbiB3cyh0LGUscixuLGkscyxhLGwsYyl7bGV0IGgsZztyZXR1cm4gbi50eXBlPT09XCJUZW1wbGF0ZVwiP2g9cGUoe30sbix7dHlwZTpcIkJsb2NrXCJ9KTpoPW4saSE9bnVsbCYmaS50eXBlPT09XCJUZW1wbGF0ZVwiP2c9cGUoe30saSx7dHlwZTpcIkJsb2NrXCJ9KTpnPWkse3R5cGU6XCJCbG9ja1N0YXRlbWVudFwiLHBhdGg6bHQodCkscGFyYW1zOmV8fFtdLGhhc2g6cnx8R2UoW10pLHByb2dyYW06aHx8bnVsbCxpbnZlcnNlOmd8fG51bGwsbG9jOkUoc3x8bnVsbCksb3BlblN0cmlwOmF8fHtvcGVuOiExLGNsb3NlOiExfSxpbnZlcnNlU3RyaXA6bHx8e29wZW46ITEsY2xvc2U6ITF9LGNsb3NlU3RyaXA6Y3x8e29wZW46ITEsY2xvc2U6ITF9fX1mdW5jdGlvbiB4cyh0LGUscixuKXtyZXR1cm57dHlwZTpcIkVsZW1lbnRNb2RpZmllclN0YXRlbWVudFwiLHBhdGg6bHQodCkscGFyYW1zOmV8fFtdLGhhc2g6cnx8R2UoW10pLGxvYzpFKG58fG51bGwpfX1mdW5jdGlvbiBrcyh0LGUscixuLGkpe3JldHVybnt0eXBlOlwiUGFydGlhbFN0YXRlbWVudFwiLG5hbWU6dCxwYXJhbXM6ZXx8W10saGFzaDpyfHxHZShbXSksaW5kZW50Om58fFwiXCIsc3RyaXA6e29wZW46ITEsY2xvc2U6ITF9LGxvYzpFKGl8fG51bGwpfX1mdW5jdGlvbiBQcyh0LGUpe3JldHVybnt0eXBlOlwiQ29tbWVudFN0YXRlbWVudFwiLHZhbHVlOnQsbG9jOkUoZXx8bnVsbCl9fWZ1bmN0aW9uIE5zKHQsZSl7cmV0dXJue3R5cGU6XCJNdXN0YWNoZUNvbW1lbnRTdGF0ZW1lbnRcIix2YWx1ZTp0LGxvYzpFKGV8fG51bGwpfX1mdW5jdGlvbiBDcyh0LGUpe2lmKCFIZSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJiLmNvbmNhdCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFydFwiKTtyZXR1cm57dHlwZTpcIkNvbmNhdFN0YXRlbWVudFwiLHBhcnRzOnR8fFtdLGxvYzpFKGV8fG51bGwpfX1mdW5jdGlvbiBBcyh0LGU9e30pe2xldHthdHRyczpyLGJsb2NrUGFyYW1zOm4sbW9kaWZpZXJzOmksY29tbWVudHM6cyxjaGlsZHJlbjphLGxvYzpsfT1lLGMsaD0hMTtyZXR1cm4gdHlwZW9mIHQ9PVwib2JqZWN0XCI/KGg9dC5zZWxmQ2xvc2luZyxjPXQubmFtZSk6dC5zbGljZSgtMSk9PT1cIi9cIj8oYz10LnNsaWNlKDAsLTEpLGg9ITApOmM9dCx7dHlwZTpcIkVsZW1lbnROb2RlXCIsdGFnOmMsc2VsZkNsb3Npbmc6aCxhdHRyaWJ1dGVzOnJ8fFtdLGJsb2NrUGFyYW1zOm58fFtdLG1vZGlmaWVyczppfHxbXSxjb21tZW50czpzfHxbXSxjaGlsZHJlbjphfHxbXSxsb2M6RShsfHxudWxsKX19ZnVuY3Rpb24gX3ModCxlLHIpe3JldHVybnt0eXBlOlwiQXR0ck5vZGVcIixuYW1lOnQsdmFsdWU6ZSxsb2M6RShyfHxudWxsKX19ZnVuY3Rpb24gTHModCxlKXtyZXR1cm57dHlwZTpcIlRleHROb2RlXCIsY2hhcnM6dHx8XCJcIixsb2M6RShlfHxudWxsKX19ZnVuY3Rpb24gRHModCxlLHIsbil7cmV0dXJue3R5cGU6XCJTdWJFeHByZXNzaW9uXCIscGF0aDpsdCh0KSxwYXJhbXM6ZXx8W10saGFzaDpyfHxHZShbXSksbG9jOkUobnx8bnVsbCl9fWZ1bmN0aW9uIEJuKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2VcIkF0SGVhZFwiOnJldHVybntvcmlnaW5hbDp0Lm5hbWUscGFydHM6W3QubmFtZV19O2Nhc2VcIlRoaXNIZWFkXCI6cmV0dXJue29yaWdpbmFsOlwidGhpc1wiLHBhcnRzOltdfTtjYXNlXCJWYXJIZWFkXCI6cmV0dXJue29yaWdpbmFsOnQubmFtZSxwYXJ0czpbdC5uYW1lXX19fWZ1bmN0aW9uIEluKHQsZSl7bGV0W3IsLi4ubl09dC5zcGxpdChcIi5cIiksaTtyZXR1cm4gcj09PVwidGhpc1wiP2k9e3R5cGU6XCJUaGlzSGVhZFwiLGxvYzpFKGV8fG51bGwpfTpyWzBdPT09XCJAXCI/aT17dHlwZTpcIkF0SGVhZFwiLG5hbWU6cixsb2M6RShlfHxudWxsKX06aT17dHlwZTpcIlZhckhlYWRcIixuYW1lOnIsbG9jOkUoZXx8bnVsbCl9LHtoZWFkOmksdGFpbDpufX1mdW5jdGlvbiBSbih0KXtyZXR1cm57dHlwZTpcIlRoaXNIZWFkXCIsbG9jOkUodHx8bnVsbCl9fWZ1bmN0aW9uIHFuKHQsZSl7cmV0dXJue3R5cGU6XCJBdEhlYWRcIixuYW1lOnQsbG9jOkUoZXx8bnVsbCl9fWZ1bmN0aW9uIFZuKHQsZSl7cmV0dXJue3R5cGU6XCJWYXJIZWFkXCIsbmFtZTp0LGxvYzpFKGV8fG51bGwpfX1mdW5jdGlvbiBPcyh0LGUpe3JldHVybiB0WzBdPT09XCJAXCI/cW4odCxlKTp0PT09XCJ0aGlzXCI/Um4oZSk6Vm4odCxlKX1mdW5jdGlvbiBJcyh0LGUpe3JldHVybnt0eXBlOlwiTmFtZWRCbG9ja05hbWVcIixuYW1lOnQsbG9jOkUoZXx8bnVsbCl9fWZ1bmN0aW9uIEJzKHQsZSxyKXtsZXR7b3JpZ2luYWw6bixwYXJ0czppfT1Cbih0KSxzPVsuLi5pLC4uLmVdLGE9Wy4uLm4sLi4uc10uam9pbihcIi5cIik7cmV0dXJuIG5ldyBqKGEsdCxlLEUocnx8bnVsbCkpfWZ1bmN0aW9uIGx0KHQsZSl7aWYodHlwZW9mIHQhPVwic3RyaW5nXCIpe2lmKFwidHlwZVwiaW4gdClyZXR1cm4gdDt7bGV0e2hlYWQ6aSx0YWlsOnN9PUluKHQuaGVhZCxQLmJyb2tlbigpKSx7b3JpZ2luYWw6YX09Qm4oaSk7cmV0dXJuIG5ldyBqKFthLC4uLnNdLmpvaW4oXCIuXCIpLGkscyxFKGV8fG51bGwpKX19bGV0e2hlYWQ6cix0YWlsOm59PUluKHQsUC5icm9rZW4oKSk7cmV0dXJuIG5ldyBqKHQscixuLEUoZXx8bnVsbCkpfWZ1bmN0aW9uIER0KHQsZSxyKXtyZXR1cm57dHlwZTp0LHZhbHVlOmUsb3JpZ2luYWw6ZSxsb2M6RShyfHxudWxsKX19ZnVuY3Rpb24gR2UodCxlKXtyZXR1cm57dHlwZTpcIkhhc2hcIixwYWlyczp0fHxbXSxsb2M6RShlfHxudWxsKX19ZnVuY3Rpb24gUnModCxlLHIpe3JldHVybnt0eXBlOlwiSGFzaFBhaXJcIixrZXk6dCx2YWx1ZTplLGxvYzpFKHJ8fG51bGwpfX1mdW5jdGlvbiBxcyh0LGUscil7cmV0dXJue3R5cGU6XCJUZW1wbGF0ZVwiLGJvZHk6dHx8W10sYmxvY2tQYXJhbXM6ZXx8W10sbG9jOkUocnx8bnVsbCl9fWZ1bmN0aW9uIFZzKHQsZSxyPSExLG4pe3JldHVybnt0eXBlOlwiQmxvY2tcIixib2R5OnR8fFtdLGJsb2NrUGFyYW1zOmV8fFtdLGNoYWluZWQ6cixsb2M6RShufHxudWxsKX19ZnVuY3Rpb24gSHModCxlLHIpe3JldHVybnt0eXBlOlwiVGVtcGxhdGVcIixib2R5OnR8fFtdLGJsb2NrUGFyYW1zOmV8fFtdLGxvYzpFKHJ8fG51bGwpfX1mdW5jdGlvbiBVcyh0LGUpe3JldHVybntsaW5lOnQsY29sdW1uOmV9fWZ1bmN0aW9uIEUoLi4udCl7aWYodC5sZW5ndGg9PT0xKXtsZXQgZT10WzBdO3JldHVybiBlJiZ0eXBlb2YgZT09XCJvYmplY3RcIj9QLmZvckhic0xvYyh2cigpLGUpOlAuZm9ySGJzTG9jKHZyKCksa24pfWVsc2V7bGV0W2UscixuLGksc109dCxhPXM/bmV3IGllKFwiXCIscyk6dnIoKTtyZXR1cm4gUC5mb3JIYnNMb2MoYSx7c3RhcnQ6e2xpbmU6ZSxjb2x1bW46cn0sZW5kOntsaW5lOm4sY29sdW1uOml9fSl9fXZhciBIbj17bXVzdGFjaGU6dnMsYmxvY2s6d3MscGFydGlhbDprcyxjb21tZW50OlBzLG11c3RhY2hlQ29tbWVudDpOcyxlbGVtZW50OkFzLGVsZW1lbnRNb2RpZmllcjp4cyxhdHRyOl9zLHRleHQ6THMsc2V4cHI6RHMsY29uY2F0OkNzLGhhc2g6R2UscGFpcjpScyxsaXRlcmFsOkR0LHByb2dyYW06cXMsYmxvY2tJdHNlbGY6VnMsdGVtcGxhdGU6SHMsbG9jOkUscG9zOlVzLHBhdGg6bHQsZnVsbFBhdGg6QnMsaGVhZDpPcyxhdDpxbix2YXI6Vm4sdGhpczpSbixibG9ja05hbWU6SXMsc3RyaW5nOndyKFwiU3RyaW5nTGl0ZXJhbFwiKSxib29sZWFuOndyKFwiQm9vbGVhbkxpdGVyYWxcIiksbnVtYmVyOndyKFwiTnVtYmVyTGl0ZXJhbFwiKSx1bmRlZmluZWQoKXtyZXR1cm4gRHQoXCJVbmRlZmluZWRMaXRlcmFsXCIsdm9pZCAwKX0sbnVsbCgpe3JldHVybiBEdChcIk51bGxMaXRlcmFsXCIsbnVsbCl9fTtmdW5jdGlvbiB3cih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gRHQodCxlLHIpfX12YXIgaj1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbixpKXt0aGlzLm9yaWdpbmFsPWUsdGhpcy5sb2M9aSx0aGlzLnR5cGU9XCJQYXRoRXhwcmVzc2lvblwiLHRoaXMudGhpcz0hMSx0aGlzLmRhdGE9ITEsdGhpcy5faGVhZD12b2lkIDA7bGV0IHM9bi5zbGljZSgpO3IudHlwZT09PVwiVGhpc0hlYWRcIj90aGlzLnRoaXM9ITA6ci50eXBlPT09XCJBdEhlYWRcIj8odGhpcy5kYXRhPSEwLHMudW5zaGlmdChyLm5hbWUuc2xpY2UoMSkpKTpzLnVuc2hpZnQoci5uYW1lKSx0aGlzLnBhcnRzPXN9Z2V0IGhlYWQoKXtpZih0aGlzLl9oZWFkKXJldHVybiB0aGlzLl9oZWFkO2xldCBlO3RoaXMudGhpcz9lPVwidGhpc1wiOnRoaXMuZGF0YT9lPWBAJHt0aGlzLnBhcnRzWzBdfWA6ZT10aGlzLnBhcnRzWzBdO2xldCByPXRoaXMubG9jLmNvbGxhcHNlKFwic3RhcnRcIikuc2xpY2VTdGFydENoYXJzKHtjaGFyczplLmxlbmd0aH0pLmxvYztyZXR1cm4gdGhpcy5faGVhZD1Ibi5oZWFkKGUscil9Z2V0IHRhaWwoKXtyZXR1cm4gdGhpcy50aGlzP3RoaXMucGFydHM6dGhpcy5wYXJ0cy5zbGljZSgxKX19O3ZhciBPdD17Y2xvc2U6ITEsb3BlbjohMX0seHI9Y2xhc3N7cG9zKGUscil7cmV0dXJue2xpbmU6ZSxjb2x1bW46cn19YmxvY2tJdHNlbGYoe2JvZHk6ZSxibG9ja1BhcmFtczpyLGNoYWluZWQ6bj0hMSxsb2M6aX0pe3JldHVybnt0eXBlOlwiQmxvY2tcIixib2R5OmV8fFtdLGJsb2NrUGFyYW1zOnJ8fFtdLGNoYWluZWQ6bixsb2M6aX19dGVtcGxhdGUoe2JvZHk6ZSxibG9ja1BhcmFtczpyLGxvYzpufSl7cmV0dXJue3R5cGU6XCJUZW1wbGF0ZVwiLGJvZHk6ZXx8W10sYmxvY2tQYXJhbXM6cnx8W10sbG9jOm59fW11c3RhY2hlKHtwYXRoOmUscGFyYW1zOnIsaGFzaDpuLHRydXN0aW5nOmksbG9jOnMsc3RyaXA6YT1PdH0pe3JldHVybnt0eXBlOlwiTXVzdGFjaGVTdGF0ZW1lbnRcIixwYXRoOmUscGFyYW1zOnIsaGFzaDpuLGVzY2FwZWQ6IWksdHJ1c3Rpbmc6aSxsb2M6cyxzdHJpcDphfHx7b3BlbjohMSxjbG9zZTohMX19fWJsb2NrKHtwYXRoOmUscGFyYW1zOnIsaGFzaDpuLGRlZmF1bHRCbG9jazppLGVsc2VCbG9jazpzPW51bGwsbG9jOmEsb3BlblN0cmlwOmw9T3QsaW52ZXJzZVN0cmlwOmM9T3QsY2xvc2VTdHJpcDpoPU90fSl7cmV0dXJue3R5cGU6XCJCbG9ja1N0YXRlbWVudFwiLHBhdGg6ZSxwYXJhbXM6cixoYXNoOm4scHJvZ3JhbTppLGludmVyc2U6cyxsb2M6YSxvcGVuU3RyaXA6bCxpbnZlcnNlU3RyaXA6YyxjbG9zZVN0cmlwOmh9fWNvbW1lbnQoZSxyKXtyZXR1cm57dHlwZTpcIkNvbW1lbnRTdGF0ZW1lbnRcIix2YWx1ZTplLGxvYzpyfX1tdXN0YWNoZUNvbW1lbnQoZSxyKXtyZXR1cm57dHlwZTpcIk11c3RhY2hlQ29tbWVudFN0YXRlbWVudFwiLHZhbHVlOmUsbG9jOnJ9fWNvbmNhdChlLHIpe3JldHVybnt0eXBlOlwiQ29uY2F0U3RhdGVtZW50XCIscGFydHM6ZSxsb2M6cn19ZWxlbWVudCh7dGFnOmUsc2VsZkNsb3Npbmc6cixhdHRyczpuLGJsb2NrUGFyYW1zOmksbW9kaWZpZXJzOnMsY29tbWVudHM6YSxjaGlsZHJlbjpsLGxvYzpjfSl7cmV0dXJue3R5cGU6XCJFbGVtZW50Tm9kZVwiLHRhZzplLHNlbGZDbG9zaW5nOnIsYXR0cmlidXRlczpufHxbXSxibG9ja1BhcmFtczppfHxbXSxtb2RpZmllcnM6c3x8W10sY29tbWVudHM6YXx8W10sY2hpbGRyZW46bHx8W10sbG9jOmN9fWVsZW1lbnRNb2RpZmllcih7cGF0aDplLHBhcmFtczpyLGhhc2g6bixsb2M6aX0pe3JldHVybnt0eXBlOlwiRWxlbWVudE1vZGlmaWVyU3RhdGVtZW50XCIscGF0aDplLHBhcmFtczpyLGhhc2g6bixsb2M6aX19YXR0cih7bmFtZTplLHZhbHVlOnIsbG9jOm59KXtyZXR1cm57dHlwZTpcIkF0dHJOb2RlXCIsbmFtZTplLHZhbHVlOnIsbG9jOm59fXRleHQoe2NoYXJzOmUsbG9jOnJ9KXtyZXR1cm57dHlwZTpcIlRleHROb2RlXCIsY2hhcnM6ZSxsb2M6cn19c2V4cHIoe3BhdGg6ZSxwYXJhbXM6cixoYXNoOm4sbG9jOml9KXtyZXR1cm57dHlwZTpcIlN1YkV4cHJlc3Npb25cIixwYXRoOmUscGFyYW1zOnIsaGFzaDpuLGxvYzppfX1wYXRoKHtoZWFkOmUsdGFpbDpyLGxvYzpufSl7bGV0e29yaWdpbmFsOml9PUZzKGUpLHM9Wy4uLmksLi4ucl0uam9pbihcIi5cIik7cmV0dXJuIG5ldyBqKHMsZSxyLG4pfWhlYWQoZSxyKXtyZXR1cm4gZVswXT09PVwiQFwiP3RoaXMuYXROYW1lKGUscik6ZT09PVwidGhpc1wiP3RoaXMudGhpcyhyKTp0aGlzLnZhcihlLHIpfXRoaXMoZSl7cmV0dXJue3R5cGU6XCJUaGlzSGVhZFwiLGxvYzplfX1hdE5hbWUoZSxyKXtyZXR1cm57dHlwZTpcIkF0SGVhZFwiLG5hbWU6ZSxsb2M6cn19dmFyKGUscil7cmV0dXJue3R5cGU6XCJWYXJIZWFkXCIsbmFtZTplLGxvYzpyfX1oYXNoKGUscil7cmV0dXJue3R5cGU6XCJIYXNoXCIscGFpcnM6ZXx8W10sbG9jOnJ9fXBhaXIoe2tleTplLHZhbHVlOnIsbG9jOm59KXtyZXR1cm57dHlwZTpcIkhhc2hQYWlyXCIsa2V5OmUsdmFsdWU6cixsb2M6bn19bGl0ZXJhbCh7dHlwZTplLHZhbHVlOnIsbG9jOm59KXtyZXR1cm57dHlwZTplLHZhbHVlOnIsb3JpZ2luYWw6cixsb2M6bn19dW5kZWZpbmVkKCl7cmV0dXJuIHRoaXMubGl0ZXJhbCh7dHlwZTpcIlVuZGVmaW5lZExpdGVyYWxcIix2YWx1ZTp2b2lkIDB9KX1udWxsKCl7cmV0dXJuIHRoaXMubGl0ZXJhbCh7dHlwZTpcIk51bGxMaXRlcmFsXCIsdmFsdWU6bnVsbH0pfXN0cmluZyhlLHIpe3JldHVybiB0aGlzLmxpdGVyYWwoe3R5cGU6XCJTdHJpbmdMaXRlcmFsXCIsdmFsdWU6ZSxsb2M6cn0pfWJvb2xlYW4oZSxyKXtyZXR1cm4gdGhpcy5saXRlcmFsKHt0eXBlOlwiQm9vbGVhbkxpdGVyYWxcIix2YWx1ZTplLGxvYzpyfSl9bnVtYmVyKGUscil7cmV0dXJuIHRoaXMubGl0ZXJhbCh7dHlwZTpcIk51bWJlckxpdGVyYWxcIix2YWx1ZTplLGxvYzpyfSl9fTtmdW5jdGlvbiBGcyh0KXtzd2l0Y2godC50eXBlKXtjYXNlXCJBdEhlYWRcIjpyZXR1cm57b3JpZ2luYWw6dC5uYW1lLHBhcnRzOlt0Lm5hbWVdfTtjYXNlXCJUaGlzSGVhZFwiOnJldHVybntvcmlnaW5hbDpcInRoaXNcIixwYXJ0czpbXX07Y2FzZVwiVmFySGVhZFwiOnJldHVybntvcmlnaW5hbDp0Lm5hbWUscGFydHM6W3QubmFtZV19fX12YXIgeD1uZXcgeHI7dmFyIEl0PWNsYXNze2NvbnN0cnVjdG9yKGUscj1uZXcga3QoeG4pLG49XCJwcmVjb21waWxlXCIpe3RoaXMuZWxlbWVudFN0YWNrPVtdLHRoaXMuY3VycmVudEF0dHJpYnV0ZT1udWxsLHRoaXMuY3VycmVudE5vZGU9bnVsbCx0aGlzLnNvdXJjZT1lLHRoaXMubGluZXM9ZS5zb3VyY2Uuc3BsaXQoLyg/Olxcclxcbj98XFxuKS9nKSx0aGlzLnRva2VuaXplcj1uZXcgcHIodGhpcyxyLG4pfW9mZnNldCgpe2xldHtsaW5lOmUsY29sdW1uOnJ9PXRoaXMudG9rZW5pemVyO3JldHVybiB0aGlzLnNvdXJjZS5vZmZzZXRGb3IoZSxyKX1wb3Moe2xpbmU6ZSxjb2x1bW46cn0pe3JldHVybiB0aGlzLnNvdXJjZS5vZmZzZXRGb3IoZSxyKX1maW5pc2goZSl7cmV0dXJuIHBlKHt9LGUse2xvYzplLmxvYy51bnRpbCh0aGlzLm9mZnNldCgpKX0pfWdldCBjdXJyZW50QXR0cigpe3JldHVybiB0aGlzLmN1cnJlbnRBdHRyaWJ1dGV9Z2V0IGN1cnJlbnRUYWcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Tm9kZX1nZXQgY3VycmVudFN0YXJ0VGFnKCl7cmV0dXJuIHRoaXMuY3VycmVudE5vZGV9Z2V0IGN1cnJlbnRFbmRUYWcoKXtyZXR1cm4gdGhpcy5jdXJyZW50Tm9kZX1nZXQgY3VycmVudENvbW1lbnQoKXtyZXR1cm4gdGhpcy5jdXJyZW50Tm9kZX1nZXQgY3VycmVudERhdGEoKXtyZXR1cm4gdGhpcy5jdXJyZW50Tm9kZX1hY2NlcHRUZW1wbGF0ZShlKXtyZXR1cm4gdGhpc1tlLnR5cGVdKGUpfWFjY2VwdE5vZGUoZSl7cmV0dXJuIHRoaXNbZS50eXBlXShlKX1jdXJyZW50RWxlbWVudCgpe3JldHVybiB0aGlzLmVsZW1lbnRTdGFja1t0aGlzLmVsZW1lbnRTdGFjay5sZW5ndGgtMV19c291cmNlRm9yTm9kZShlLHIpe2xldCBuPWUubG9jLnN0YXJ0LmxpbmUtMSxpPW4tMSxzPWUubG9jLnN0YXJ0LmNvbHVtbixhPVtdLGwsYyxoO2ZvcihyPyhjPXIubG9jLmVuZC5saW5lLTEsaD1yLmxvYy5lbmQuY29sdW1uKTooYz1lLmxvYy5lbmQubGluZS0xLGg9ZS5sb2MuZW5kLmNvbHVtbik7aTxjOylpKyssbD10aGlzLmxpbmVzW2ldLGk9PT1uP249PT1jP2EucHVzaChsLnNsaWNlKHMsaCkpOmEucHVzaChsLnNsaWNlKHMpKTppPT09Yz9hLnB1c2gobC5zbGljZSgwLGgpKTphLnB1c2gobCk7cmV0dXJuIGEuam9pbihgXG5gKX19O3ZhciBCdD1jbGFzcyBleHRlbmRzIEl0e2dldCBpc1RvcExldmVsKCl7cmV0dXJuIHRoaXMuZWxlbWVudFN0YWNrLmxlbmd0aD09PTB9UHJvZ3JhbShlKXtsZXQgcj1bXSxuO3RoaXMuaXNUb3BMZXZlbD9uPXgudGVtcGxhdGUoe2JvZHk6cixibG9ja1BhcmFtczplLmJsb2NrUGFyYW1zLGxvYzp0aGlzLnNvdXJjZS5zcGFuRm9yKGUubG9jKX0pOm49eC5ibG9ja0l0c2VsZih7Ym9keTpyLGJsb2NrUGFyYW1zOmUuYmxvY2tQYXJhbXMsY2hhaW5lZDplLmNoYWluZWQsbG9jOnRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpfSk7bGV0IGkscz1lLmJvZHkubGVuZ3RoO2lmKHRoaXMuZWxlbWVudFN0YWNrLnB1c2gobikscz09PTApcmV0dXJuIHRoaXMuZWxlbWVudFN0YWNrLnBvcCgpO2ZvcihpPTA7aTxzO2krKyl0aGlzLmFjY2VwdE5vZGUoZS5ib2R5W2ldKTtsZXQgYT10aGlzLmVsZW1lbnRTdGFjay5wb3AoKTtpZihhIT09bil7bGV0IGw9YTt0aHJvdyBTKGBVbmNsb3NlZCBlbGVtZW50IFxcYCR7bC50YWd9XFxgYCxsLmxvYyl9cmV0dXJuIG59QmxvY2tTdGF0ZW1lbnQoZSl7aWYodGhpcy50b2tlbml6ZXIuc3RhdGU9PT1cImNvbW1lbnRcIil7dGhpcy5hcHBlbmRUb0NvbW1lbnREYXRhKHRoaXMuc291cmNlRm9yTm9kZShlKSk7cmV0dXJufWlmKHRoaXMudG9rZW5pemVyLnN0YXRlIT09XCJkYXRhXCImJnRoaXMudG9rZW5pemVyLnN0YXRlIT09XCJiZWZvcmVEYXRhXCIpdGhyb3cgUyhcIkEgYmxvY2sgbWF5IG9ubHkgYmUgdXNlZCBpbnNpZGUgYW4gSFRNTCBlbGVtZW50IG9yIGFub3RoZXIgYmxvY2suXCIsdGhpcy5zb3VyY2Uuc3BhbkZvcihlLmxvYykpO2xldHtwYXRoOnIscGFyYW1zOm4saGFzaDppfT1rcih0aGlzLGUpO2UucHJvZ3JhbS5sb2N8fChlLnByb2dyYW0ubG9jPUZlKSxlLmludmVyc2UmJiFlLmludmVyc2UubG9jJiYoZS5pbnZlcnNlLmxvYz1GZSk7bGV0IHM9dGhpcy5Qcm9ncmFtKGUucHJvZ3JhbSksYT1lLmludmVyc2U/dGhpcy5Qcm9ncmFtKGUuaW52ZXJzZSk6bnVsbCxsPXguYmxvY2soe3BhdGg6cixwYXJhbXM6bixoYXNoOmksZGVmYXVsdEJsb2NrOnMsZWxzZUJsb2NrOmEsbG9jOnRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpLG9wZW5TdHJpcDplLm9wZW5TdHJpcCxpbnZlcnNlU3RyaXA6ZS5pbnZlcnNlU3RyaXAsY2xvc2VTdHJpcDplLmNsb3NlU3RyaXB9KSxjPXRoaXMuY3VycmVudEVsZW1lbnQoKTt5ZShjLGwpfU11c3RhY2hlU3RhdGVtZW50KGUpe2xldHt0b2tlbml6ZXI6cn09dGhpcztpZihyLnN0YXRlPT09XCJjb21tZW50XCIpe3RoaXMuYXBwZW5kVG9Db21tZW50RGF0YSh0aGlzLnNvdXJjZUZvck5vZGUoZSkpO3JldHVybn1sZXQgbix7ZXNjYXBlZDppLGxvYzpzLHN0cmlwOmF9PWU7aWYoRXIoZS5wYXRoKSluPXgubXVzdGFjaGUoe3BhdGg6dGhpcy5hY2NlcHROb2RlKGUucGF0aCkscGFyYW1zOltdLGhhc2g6eC5oYXNoKFtdLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5wYXRoLmxvYykuY29sbGFwc2UoXCJlbmRcIikpLHRydXN0aW5nOiFpLGxvYzp0aGlzLnNvdXJjZS5zcGFuRm9yKHMpLHN0cmlwOmF9KTtlbHNle2xldHtwYXRoOmwscGFyYW1zOmMsaGFzaDpofT1rcih0aGlzLGUpO249eC5tdXN0YWNoZSh7cGF0aDpsLHBhcmFtczpjLGhhc2g6aCx0cnVzdGluZzohaSxsb2M6dGhpcy5zb3VyY2Uuc3BhbkZvcihzKSxzdHJpcDphfSl9c3dpdGNoKHIuc3RhdGUpe2Nhc2VcInRhZ09wZW5cIjpjYXNlXCJ0YWdOYW1lXCI6dGhyb3cgUyhcIkNhbm5vdCB1c2UgbXVzdGFjaGVzIGluIGFuIGVsZW1lbnRzIHRhZ25hbWVcIixuLmxvYyk7Y2FzZVwiYmVmb3JlQXR0cmlidXRlTmFtZVwiOlByKHRoaXMuY3VycmVudFN0YXJ0VGFnLG4pO2JyZWFrO2Nhc2VcImF0dHJpYnV0ZU5hbWVcIjpjYXNlXCJhZnRlckF0dHJpYnV0ZU5hbWVcIjp0aGlzLmJlZ2luQXR0cmlidXRlVmFsdWUoITEpLHRoaXMuZmluaXNoQXR0cmlidXRlVmFsdWUoKSxQcih0aGlzLmN1cnJlbnRTdGFydFRhZyxuKSxyLnRyYW5zaXRpb25UbyhcImJlZm9yZUF0dHJpYnV0ZU5hbWVcIik7YnJlYWs7Y2FzZVwiYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZFwiOlByKHRoaXMuY3VycmVudFN0YXJ0VGFnLG4pLHIudHJhbnNpdGlvblRvKFwiYmVmb3JlQXR0cmlidXRlTmFtZVwiKTticmVhaztjYXNlXCJiZWZvcmVBdHRyaWJ1dGVWYWx1ZVwiOnRoaXMuYmVnaW5BdHRyaWJ1dGVWYWx1ZSghMSksdGhpcy5hcHBlbmREeW5hbWljQXR0cmlidXRlVmFsdWVQYXJ0KG4pLHIudHJhbnNpdGlvblRvKFwiYXR0cmlidXRlVmFsdWVVbnF1b3RlZFwiKTticmVhaztjYXNlXCJhdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZFwiOmNhc2VcImF0dHJpYnV0ZVZhbHVlU2luZ2xlUXVvdGVkXCI6Y2FzZVwiYXR0cmlidXRlVmFsdWVVbnF1b3RlZFwiOnRoaXMuYXBwZW5kRHluYW1pY0F0dHJpYnV0ZVZhbHVlUGFydChuKTticmVhaztkZWZhdWx0OnllKHRoaXMuY3VycmVudEVsZW1lbnQoKSxuKX1yZXR1cm4gbn1hcHBlbmREeW5hbWljQXR0cmlidXRlVmFsdWVQYXJ0KGUpe3RoaXMuZmluYWxpemVUZXh0UGFydCgpO2xldCByPXRoaXMuY3VycmVudEF0dHI7ci5pc0R5bmFtaWM9ITAsci5wYXJ0cy5wdXNoKGUpfWZpbmFsaXplVGV4dFBhcnQoKXtsZXQgcj10aGlzLmN1cnJlbnRBdHRyLmN1cnJlbnRQYXJ0O3IhPT1udWxsJiYodGhpcy5jdXJyZW50QXR0ci5wYXJ0cy5wdXNoKHIpLHRoaXMuc3RhcnRUZXh0UGFydCgpKX1zdGFydFRleHRQYXJ0KCl7dGhpcy5jdXJyZW50QXR0ci5jdXJyZW50UGFydD1udWxsfUNvbnRlbnRTdGF0ZW1lbnQoZSl7R3ModGhpcy50b2tlbml6ZXIsZSksdGhpcy50b2tlbml6ZXIudG9rZW5pemVQYXJ0KGUudmFsdWUpLHRoaXMudG9rZW5pemVyLmZsdXNoRGF0YSgpfUNvbW1lbnRTdGF0ZW1lbnQoZSl7bGV0e3Rva2VuaXplcjpyfT10aGlzO2lmKHIuc3RhdGU9PT1cImNvbW1lbnRcIilyZXR1cm4gdGhpcy5hcHBlbmRUb0NvbW1lbnREYXRhKHRoaXMuc291cmNlRm9yTm9kZShlKSksbnVsbDtsZXR7dmFsdWU6bixsb2M6aX09ZSxzPXgubXVzdGFjaGVDb21tZW50KG4sdGhpcy5zb3VyY2Uuc3BhbkZvcihpKSk7c3dpdGNoKHIuc3RhdGUpe2Nhc2VcImJlZm9yZUF0dHJpYnV0ZU5hbWVcIjpjYXNlXCJhZnRlckF0dHJpYnV0ZU5hbWVcIjp0aGlzLmN1cnJlbnRTdGFydFRhZy5jb21tZW50cy5wdXNoKHMpO2JyZWFrO2Nhc2VcImJlZm9yZURhdGFcIjpjYXNlXCJkYXRhXCI6eWUodGhpcy5jdXJyZW50RWxlbWVudCgpLHMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgUyhgVXNpbmcgYSBIYW5kbGViYXJzIGNvbW1lbnQgd2hlbiBpbiB0aGUgXFxgJHtyLnN0YXRlfVxcYCBzdGF0ZSBpcyBub3Qgc3VwcG9ydGVkYCx0aGlzLnNvdXJjZS5zcGFuRm9yKGUubG9jKSl9cmV0dXJuIHN9UGFydGlhbFN0YXRlbWVudChlKXt0aHJvdyBTKFwiSGFuZGxlYmFycyBwYXJ0aWFscyBhcmUgbm90IHN1cHBvcnRlZFwiLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKX1QYXJ0aWFsQmxvY2tTdGF0ZW1lbnQoZSl7dGhyb3cgUyhcIkhhbmRsZWJhcnMgcGFydGlhbCBibG9ja3MgYXJlIG5vdCBzdXBwb3J0ZWRcIix0aGlzLnNvdXJjZS5zcGFuRm9yKGUubG9jKSl9RGVjb3JhdG9yKGUpe3Rocm93IFMoXCJIYW5kbGViYXJzIGRlY29yYXRvcnMgYXJlIG5vdCBzdXBwb3J0ZWRcIix0aGlzLnNvdXJjZS5zcGFuRm9yKGUubG9jKSl9RGVjb3JhdG9yQmxvY2soZSl7dGhyb3cgUyhcIkhhbmRsZWJhcnMgZGVjb3JhdG9yIGJsb2NrcyBhcmUgbm90IHN1cHBvcnRlZFwiLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKX1TdWJFeHByZXNzaW9uKGUpe2xldHtwYXRoOnIscGFyYW1zOm4saGFzaDppfT1rcih0aGlzLGUpO3JldHVybiB4LnNleHByKHtwYXRoOnIscGFyYW1zOm4saGFzaDppLGxvYzp0aGlzLnNvdXJjZS5zcGFuRm9yKGUubG9jKX0pfVBhdGhFeHByZXNzaW9uKGUpe2xldHtvcmlnaW5hbDpyfT1lLG47aWYoci5pbmRleE9mKFwiL1wiKSE9PS0xKXtpZihyLnNsaWNlKDAsMik9PT1cIi4vXCIpdGhyb3cgUygnVXNpbmcgXCIuL1wiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gR2xpbW1lciBhbmQgdW5uZWNlc3NhcnknLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKTtpZihyLnNsaWNlKDAsMyk9PT1cIi4uL1wiKXRocm93IFMoJ0NoYW5naW5nIGNvbnRleHQgdXNpbmcgXCIuLi9cIiBpcyBub3Qgc3VwcG9ydGVkIGluIEdsaW1tZXInLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKTtpZihyLmluZGV4T2YoXCIuXCIpIT09LTEpdGhyb3cgUyhcIk1peGluZyAnLicgYW5kICcvJyBpbiBwYXRocyBpcyBub3Qgc3VwcG9ydGVkIGluIEdsaW1tZXI7IHVzZSBvbmx5ICcuJyB0byBzZXBhcmF0ZSBwcm9wZXJ0eSBwYXRoc1wiLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKTtuPVtlLnBhcnRzLmpvaW4oXCIvXCIpXX1lbHNle2lmKHI9PT1cIi5cIil0aHJvdyBTKFwiJy4nIGlzIG5vdCBhIHN1cHBvcnRlZCBwYXRoIGluIEdsaW1tZXI7IGNoZWNrIGZvciBhIHBhdGggd2l0aCBhIHRyYWlsaW5nICcuJ1wiLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKTtuPWUucGFydHN9bGV0IGk9ITE7ci5tYXRjaCgvXnRoaXMoXFwuLispPyQvKSYmKGk9ITApO2xldCBzO2lmKGkpcz17dHlwZTpcIlRoaXNIZWFkXCIsbG9jOntzdGFydDplLmxvYy5zdGFydCxlbmQ6e2xpbmU6ZS5sb2Muc3RhcnQubGluZSxjb2x1bW46ZS5sb2Muc3RhcnQuY29sdW1uKzR9fX07ZWxzZSBpZihlLmRhdGEpe2xldCBhPW4uc2hpZnQoKTtpZihhPT09dm9pZCAwKXRocm93IFMoXCJBdHRlbXB0ZWQgdG8gcGFyc2UgYSBwYXRoIGV4cHJlc3Npb24sIGJ1dCBpdCB3YXMgbm90IHZhbGlkLiBQYXRocyBiZWdpbm5pbmcgd2l0aCBAIG11c3Qgc3RhcnQgd2l0aCBhLXouXCIsdGhpcy5zb3VyY2Uuc3BhbkZvcihlLmxvYykpO3M9e3R5cGU6XCJBdEhlYWRcIixuYW1lOmBAJHthfWAsbG9jOntzdGFydDplLmxvYy5zdGFydCxlbmQ6e2xpbmU6ZS5sb2Muc3RhcnQubGluZSxjb2x1bW46ZS5sb2Muc3RhcnQuY29sdW1uK2EubGVuZ3RoKzF9fX19ZWxzZXtsZXQgYT1uLnNoaWZ0KCk7aWYoYT09PXZvaWQgMCl0aHJvdyBTKFwiQXR0ZW1wdGVkIHRvIHBhcnNlIGEgcGF0aCBleHByZXNzaW9uLCBidXQgaXQgd2FzIG5vdCB2YWxpZC4gUGF0aHMgbXVzdCBzdGFydCB3aXRoIGEteiBvciBBLVouXCIsdGhpcy5zb3VyY2Uuc3BhbkZvcihlLmxvYykpO3M9e3R5cGU6XCJWYXJIZWFkXCIsbmFtZTphLGxvYzp7c3RhcnQ6ZS5sb2Muc3RhcnQsZW5kOntsaW5lOmUubG9jLnN0YXJ0LmxpbmUsY29sdW1uOmUubG9jLnN0YXJ0LmNvbHVtbithLmxlbmd0aH19fX1yZXR1cm4gbmV3IGooZS5vcmlnaW5hbCxzLG4sdGhpcy5zb3VyY2Uuc3BhbkZvcihlLmxvYykpfUhhc2goZSl7bGV0IHI9W107Zm9yKGxldCBuPTA7bjxlLnBhaXJzLmxlbmd0aDtuKyspe2xldCBpPWUucGFpcnNbbl07ci5wdXNoKHgucGFpcih7a2V5Omkua2V5LHZhbHVlOnRoaXMuYWNjZXB0Tm9kZShpLnZhbHVlKSxsb2M6dGhpcy5zb3VyY2Uuc3BhbkZvcihpLmxvYyl9KSl9cmV0dXJuIHguaGFzaChyLHRoaXMuc291cmNlLnNwYW5Gb3IoZS5sb2MpKX1TdHJpbmdMaXRlcmFsKGUpe3JldHVybiB4LmxpdGVyYWwoe3R5cGU6XCJTdHJpbmdMaXRlcmFsXCIsdmFsdWU6ZS52YWx1ZSxsb2M6ZS5sb2N9KX1Cb29sZWFuTGl0ZXJhbChlKXtyZXR1cm4geC5saXRlcmFsKHt0eXBlOlwiQm9vbGVhbkxpdGVyYWxcIix2YWx1ZTplLnZhbHVlLGxvYzplLmxvY30pfU51bWJlckxpdGVyYWwoZSl7cmV0dXJuIHgubGl0ZXJhbCh7dHlwZTpcIk51bWJlckxpdGVyYWxcIix2YWx1ZTplLnZhbHVlLGxvYzplLmxvY30pfVVuZGVmaW5lZExpdGVyYWwoZSl7cmV0dXJuIHgubGl0ZXJhbCh7dHlwZTpcIlVuZGVmaW5lZExpdGVyYWxcIix2YWx1ZTp2b2lkIDAsbG9jOmUubG9jfSl9TnVsbExpdGVyYWwoZSl7cmV0dXJuIHgubGl0ZXJhbCh7dHlwZTpcIk51bGxMaXRlcmFsXCIsdmFsdWU6bnVsbCxsb2M6ZS5sb2N9KX19O2Z1bmN0aW9uIE1zKHQsZSl7aWYoZT09PVwiXCIpcmV0dXJue2xpbmVzOnQuc3BsaXQoYFxuYCkubGVuZ3RoLTEsY29sdW1uczowfTtsZXQgbj10LnNwbGl0KGUpWzBdLnNwbGl0KC9cXG4vKSxpPW4ubGVuZ3RoLTE7cmV0dXJue2xpbmVzOmksY29sdW1uczpuW2ldLmxlbmd0aH19ZnVuY3Rpb24gR3ModCxlKXtsZXQgcj1lLmxvYy5zdGFydC5saW5lLG49ZS5sb2Muc3RhcnQuY29sdW1uLGk9TXMoZS5vcmlnaW5hbCxlLnZhbHVlKTtyPXIraS5saW5lcyxpLmxpbmVzP249aS5jb2x1bW5zOm49bitpLmNvbHVtbnMsdC5saW5lPXIsdC5jb2x1bW49bn1mdW5jdGlvbiBrcih0LGUpe2lmKGUucGF0aC50eXBlLmVuZHNXaXRoKFwiTGl0ZXJhbFwiKSl7bGV0IGE9ZS5wYXRoLGw9XCJcIjt0aHJvdyBhLnR5cGU9PT1cIkJvb2xlYW5MaXRlcmFsXCI/bD1hLm9yaWdpbmFsLnRvU3RyaW5nKCk6YS50eXBlPT09XCJTdHJpbmdMaXRlcmFsXCI/bD1gXCIke2Eub3JpZ2luYWx9XCJgOmEudHlwZT09PVwiTnVsbExpdGVyYWxcIj9sPVwibnVsbFwiOmEudHlwZT09PVwiTnVtYmVyTGl0ZXJhbFwiP2w9YS52YWx1ZS50b1N0cmluZygpOmw9XCJ1bmRlZmluZWRcIixTKGAke2EudHlwZX0gXCIke2EudHlwZT09PVwiU3RyaW5nTGl0ZXJhbFwiP2Eub3JpZ2luYWw6bH1cIiBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgc3ViLWV4cHJlc3Npb24sIHJlcGxhY2UgKCR7bH0pIHdpdGggJHtsfWAsdC5zb3VyY2Uuc3BhbkZvcihhLmxvYykpfWxldCByPWUucGF0aC50eXBlPT09XCJQYXRoRXhwcmVzc2lvblwiP3QuUGF0aEV4cHJlc3Npb24oZS5wYXRoKTp0LlN1YkV4cHJlc3Npb24oZS5wYXRoKSxuPWUucGFyYW1zP2UucGFyYW1zLm1hcChhPT50LmFjY2VwdE5vZGUoYSkpOltdLGk9bi5sZW5ndGg+MD9uW24ubGVuZ3RoLTFdLmxvYzpyLmxvYyxzPWUuaGFzaD90Lkhhc2goZS5oYXNoKTp7dHlwZTpcIkhhc2hcIixwYWlyczpbXSxsb2M6dC5zb3VyY2Uuc3BhbkZvcihpKS5jb2xsYXBzZShcImVuZFwiKX07cmV0dXJue3BhdGg6cixwYXJhbXM6bixoYXNoOnN9fWZ1bmN0aW9uIFByKHQsZSl7bGV0e3BhdGg6cixwYXJhbXM6bixoYXNoOmksbG9jOnN9PWU7aWYoRXIocikpe2xldCBsPWB7eyR7T24ocil9fX1gLGM9YDwke3QubmFtZX0gLi4uICR7bH0gLi4uYDt0aHJvdyBTKGBJbiAke2N9LCAke2x9IGlzIG5vdCBhIHZhbGlkIG1vZGlmaWVyYCxlLmxvYyl9bGV0IGE9eC5lbGVtZW50TW9kaWZpZXIoe3BhdGg6cixwYXJhbXM6bixoYXNoOmksbG9jOnN9KTt0Lm1vZGlmaWVycy5wdXNoKGEpfXZhciBOcj1jbGFzcyBleHRlbmRzIEJ0e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnRhZ09wZW5MaW5lPTAsdGhpcy50YWdPcGVuQ29sdW1uPTB9cmVzZXQoKXt0aGlzLmN1cnJlbnROb2RlPW51bGx9YmVnaW5Db21tZW50KCl7dGhpcy5jdXJyZW50Tm9kZT14LmNvbW1lbnQoXCJcIix0aGlzLnNvdXJjZS5vZmZzZXRGb3IodGhpcy50YWdPcGVuTGluZSx0aGlzLnRhZ09wZW5Db2x1bW4pKX1hcHBlbmRUb0NvbW1lbnREYXRhKGUpe3RoaXMuY3VycmVudENvbW1lbnQudmFsdWUrPWV9ZmluaXNoQ29tbWVudCgpe3llKHRoaXMuY3VycmVudEVsZW1lbnQoKSx0aGlzLmZpbmlzaCh0aGlzLmN1cnJlbnRDb21tZW50KSl9YmVnaW5EYXRhKCl7dGhpcy5jdXJyZW50Tm9kZT14LnRleHQoe2NoYXJzOlwiXCIsbG9jOnRoaXMub2Zmc2V0KCkuY29sbGFwc2VkKCl9KX1hcHBlbmRUb0RhdGEoZSl7dGhpcy5jdXJyZW50RGF0YS5jaGFycys9ZX1maW5pc2hEYXRhKCl7dGhpcy5jdXJyZW50RGF0YS5sb2M9dGhpcy5jdXJyZW50RGF0YS5sb2Mud2l0aEVuZCh0aGlzLm9mZnNldCgpKSx5ZSh0aGlzLmN1cnJlbnRFbGVtZW50KCksdGhpcy5jdXJyZW50RGF0YSl9dGFnT3Blbigpe3RoaXMudGFnT3BlbkxpbmU9dGhpcy50b2tlbml6ZXIubGluZSx0aGlzLnRhZ09wZW5Db2x1bW49dGhpcy50b2tlbml6ZXIuY29sdW1ufWJlZ2luU3RhcnRUYWcoKXt0aGlzLmN1cnJlbnROb2RlPXt0eXBlOlwiU3RhcnRUYWdcIixuYW1lOlwiXCIsYXR0cmlidXRlczpbXSxtb2RpZmllcnM6W10sY29tbWVudHM6W10sc2VsZkNsb3Npbmc6ITEsbG9jOnRoaXMuc291cmNlLm9mZnNldEZvcih0aGlzLnRhZ09wZW5MaW5lLHRoaXMudGFnT3BlbkNvbHVtbil9fWJlZ2luRW5kVGFnKCl7dGhpcy5jdXJyZW50Tm9kZT17dHlwZTpcIkVuZFRhZ1wiLG5hbWU6XCJcIixhdHRyaWJ1dGVzOltdLG1vZGlmaWVyczpbXSxjb21tZW50czpbXSxzZWxmQ2xvc2luZzohMSxsb2M6dGhpcy5zb3VyY2Uub2Zmc2V0Rm9yKHRoaXMudGFnT3BlbkxpbmUsdGhpcy50YWdPcGVuQ29sdW1uKX19ZmluaXNoVGFnKCl7bGV0IGU9dGhpcy5maW5pc2godGhpcy5jdXJyZW50VGFnKTtpZihlLnR5cGU9PT1cIlN0YXJ0VGFnXCIpe2lmKHRoaXMuZmluaXNoU3RhcnRUYWcoKSxlLm5hbWU9PT1cIjpcIil0aHJvdyBTKFwiSW52YWxpZCBuYW1lZCBibG9jayBuYW1lZCBkZXRlY3RlZCwgeW91IG1heSBoYXZlIGNyZWF0ZWQgYSBuYW1lZCBibG9jayB3aXRob3V0IGEgbmFtZSwgb3IgeW91IG1heSBoYXZlIGJlZ2FuIHlvdXIgbmFtZSB3aXRoIGEgbnVtYmVyLiBOYW1lZCBibG9ja3MgbXVzdCBoYXZlIG5hbWVzIHRoYXQgYXJlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgbG9uZywgYW5kIGJlZ2luIHdpdGggYSBsb3dlciBjYXNlIGxldHRlclwiLHRoaXMuc291cmNlLnNwYW5Gb3Ioe3N0YXJ0OnRoaXMuY3VycmVudFRhZy5sb2MudG9KU09OKCksZW5kOnRoaXMub2Zmc2V0KCkudG9KU09OKCl9KSk7KFB0W2UubmFtZV18fGUuc2VsZkNsb3NpbmcpJiZ0aGlzLmZpbmlzaEVuZFRhZyghMCl9ZWxzZSBlLnR5cGU9PT1cIkVuZFRhZ1wiJiZ0aGlzLmZpbmlzaEVuZFRhZyghMSl9ZmluaXNoU3RhcnRUYWcoKXtsZXR7bmFtZTplLGF0dHJpYnV0ZXM6cixtb2RpZmllcnM6bixjb21tZW50czppLHNlbGZDbG9zaW5nOnMsbG9jOmF9PXRoaXMuZmluaXNoKHRoaXMuY3VycmVudFN0YXJ0VGFnKSxsPXguZWxlbWVudCh7dGFnOmUsc2VsZkNsb3Npbmc6cyxhdHRyczpyLG1vZGlmaWVyczpuLGNvbW1lbnRzOmksY2hpbGRyZW46W10sYmxvY2tQYXJhbXM6W10sbG9jOmF9KTt0aGlzLmVsZW1lbnRTdGFjay5wdXNoKGwpfWZpbmlzaEVuZFRhZyhlKXtsZXQgcj10aGlzLmZpbmlzaCh0aGlzLmN1cnJlbnRUYWcpLG49dGhpcy5lbGVtZW50U3RhY2sucG9wKCksaT10aGlzLmN1cnJlbnRFbGVtZW50KCk7dGhpcy52YWxpZGF0ZUVuZFRhZyhyLG4sZSksbi5sb2M9bi5sb2Mud2l0aEVuZCh0aGlzLm9mZnNldCgpKSxEbihuKSx5ZShpLG4pfW1hcmtUYWdBc1NlbGZDbG9zaW5nKCl7dGhpcy5jdXJyZW50VGFnLnNlbGZDbG9zaW5nPSEwfWFwcGVuZFRvVGFnTmFtZShlKXt0aGlzLmN1cnJlbnRUYWcubmFtZSs9ZX1iZWdpbkF0dHJpYnV0ZSgpe2xldCBlPXRoaXMub2Zmc2V0KCk7dGhpcy5jdXJyZW50QXR0cmlidXRlPXtuYW1lOlwiXCIscGFydHM6W10sY3VycmVudFBhcnQ6bnVsbCxpc1F1b3RlZDohMSxpc0R5bmFtaWM6ITEsc3RhcnQ6ZSx2YWx1ZVNwYW46ZS5jb2xsYXBzZWQoKX19YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKGUpe3RoaXMuY3VycmVudEF0dHIubmFtZSs9ZX1iZWdpbkF0dHJpYnV0ZVZhbHVlKGUpe3RoaXMuY3VycmVudEF0dHIuaXNRdW90ZWQ9ZSx0aGlzLnN0YXJ0VGV4dFBhcnQoKSx0aGlzLmN1cnJlbnRBdHRyLnZhbHVlU3Bhbj10aGlzLm9mZnNldCgpLmNvbGxhcHNlZCgpfWFwcGVuZFRvQXR0cmlidXRlVmFsdWUoZSl7bGV0IHI9dGhpcy5jdXJyZW50QXR0ci5wYXJ0cyxuPXJbci5sZW5ndGgtMV0saT10aGlzLmN1cnJlbnRBdHRyLmN1cnJlbnRQYXJ0O2lmKGkpaS5jaGFycys9ZSxpLmxvYz1pLmxvYy53aXRoRW5kKHRoaXMub2Zmc2V0KCkpO2Vsc2V7bGV0IHM9dGhpcy5vZmZzZXQoKTtlPT09YFxuYD9zPW4/bi5sb2MuZ2V0RW5kKCk6dGhpcy5jdXJyZW50QXR0ci52YWx1ZVNwYW4uZ2V0U3RhcnQoKTpzPXMubW92ZSgtMSksdGhpcy5jdXJyZW50QXR0ci5jdXJyZW50UGFydD14LnRleHQoe2NoYXJzOmUsbG9jOnMuY29sbGFwc2VkKCl9KX19ZmluaXNoQXR0cmlidXRlVmFsdWUoKXt0aGlzLmZpbmFsaXplVGV4dFBhcnQoKTtsZXQgZT10aGlzLmN1cnJlbnRUYWcscj10aGlzLm9mZnNldCgpO2lmKGUudHlwZT09PVwiRW5kVGFnXCIpdGhyb3cgUyhcIkludmFsaWQgZW5kIHRhZzogY2xvc2luZyB0YWcgbXVzdCBub3QgaGF2ZSBhdHRyaWJ1dGVzXCIsdGhpcy5zb3VyY2Uuc3BhbkZvcih7c3RhcnQ6ZS5sb2MudG9KU09OKCksZW5kOnIudG9KU09OKCl9KSk7bGV0e25hbWU6bixwYXJ0czppLHN0YXJ0OnMsaXNRdW90ZWQ6YSxpc0R5bmFtaWM6bCx2YWx1ZVNwYW46Y309dGhpcy5jdXJyZW50QXR0cixoPXRoaXMuYXNzZW1ibGVBdHRyaWJ1dGVWYWx1ZShpLGEsbCxzLnVudGlsKHIpKTtoLmxvYz1jLndpdGhFbmQocik7bGV0IGc9eC5hdHRyKHtuYW1lOm4sdmFsdWU6aCxsb2M6cy51bnRpbChyKX0pO3RoaXMuY3VycmVudFN0YXJ0VGFnLmF0dHJpYnV0ZXMucHVzaChnKX1yZXBvcnRTeW50YXhFcnJvcihlKXt0aHJvdyBTKGUsdGhpcy5vZmZzZXQoKS5jb2xsYXBzZWQoKSl9YXNzZW1ibGVDb25jYXRlbmF0ZWRWYWx1ZShlKXtmb3IobGV0IGk9MDtpPGUubGVuZ3RoO2krKyl7bGV0IHM9ZVtpXTtpZihzLnR5cGUhPT1cIk11c3RhY2hlU3RhdGVtZW50XCImJnMudHlwZSE9PVwiVGV4dE5vZGVcIil0aHJvdyBTKFwiVW5zdXBwb3J0ZWQgbm9kZSBpbiBxdW90ZWQgYXR0cmlidXRlIHZhbHVlOiBcIitzLnR5cGUscy5sb2MpfW1uKGUsXCJ0aGUgY29uY2F0ZW5hdGlvbiBwYXJ0cyBvZiBhbiBlbGVtZW50IHNob3VsZCBub3QgYmUgZW1wdHlcIik7bGV0IHI9ZVswXSxuPWVbZS5sZW5ndGgtMV07cmV0dXJuIHguY29uY2F0KGUsdGhpcy5zb3VyY2Uuc3BhbkZvcihyLmxvYykuZXh0ZW5kKHRoaXMuc291cmNlLnNwYW5Gb3Iobi5sb2MpKSl9dmFsaWRhdGVFbmRUYWcoZSxyLG4pe2xldCBpO2lmKFB0W2UubmFtZV0mJiFuP2k9YDwke2UubmFtZX0+IGVsZW1lbnRzIGRvIG5vdCBuZWVkIGVuZCB0YWdzLiBZb3Ugc2hvdWxkIHJlbW92ZSBpdGA6ci50YWc9PT12b2lkIDA/aT1gQ2xvc2luZyB0YWcgPC8ke2UubmFtZX0+IHdpdGhvdXQgYW4gb3BlbiB0YWdgOnIudGFnIT09ZS5uYW1lJiYoaT1gQ2xvc2luZyB0YWcgPC8ke2UubmFtZX0+IGRpZCBub3QgbWF0Y2ggbGFzdCBvcGVuIHRhZyA8JHtyLnRhZ30+IChvbiBsaW5lICR7ci5sb2Muc3RhcnRQb3NpdGlvbi5saW5lfSlgKSxpKXRocm93IFMoaSxlLmxvYyl9YXNzZW1ibGVBdHRyaWJ1dGVWYWx1ZShlLHIsbixpKXtpZihuKXtpZihyKXJldHVybiB0aGlzLmFzc2VtYmxlQ29uY2F0ZW5hdGVkVmFsdWUoZSk7aWYoZS5sZW5ndGg9PT0xfHxlLmxlbmd0aD09PTImJmVbMV0udHlwZT09PVwiVGV4dE5vZGVcIiYmZVsxXS5jaGFycz09PVwiL1wiKXJldHVybiBlWzBdO3Rocm93IFMoXCJBbiB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvciBhIG11c3RhY2hlLCBwcmVjZWRlZCBieSB3aGl0ZXNwYWNlIG9yIGEgJz0nIGNoYXJhY3RlciwgYW5kIGZvbGxvd2VkIGJ5IHdoaXRlc3BhY2UsIGEgJz4nIGNoYXJhY3Rlciwgb3IgJy8+J1wiLGkpfWVsc2UgcmV0dXJuIGUubGVuZ3RoPjA/ZVswXTp4LnRleHQoe2NoYXJzOlwiXCIsbG9jOml9KX19LFlzPXt9LENyPWNsYXNzIGV4dGVuZHMga3R7Y29uc3RydWN0b3IoKXtzdXBlcih7fSl9cGFyc2UoKXt9fTtmdW5jdGlvbiBVbih0LGU9e30pe3ZhciByLG4saTtsZXQgcz1lLm1vZGV8fFwicHJlY29tcGlsZVwiLGEsbDt0eXBlb2YgdD09XCJzdHJpbmdcIj8oYT1uZXcgaWUodCwocj1lLm1ldGEpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5tb2R1bGVOYW1lKSxzPT09XCJjb2RlbW9kXCI/bD14dCh0LGUucGFyc2VPcHRpb25zKTpsPWhyKHQsZS5wYXJzZU9wdGlvbnMpKTp0IGluc3RhbmNlb2YgaWU/KGE9dCxzPT09XCJjb2RlbW9kXCI/bD14dCh0LnNvdXJjZSxlLnBhcnNlT3B0aW9ucyk6bD1ocih0LnNvdXJjZSxlLnBhcnNlT3B0aW9ucykpOihhPW5ldyBpZShcIlwiLChuPWUubWV0YSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLm1vZHVsZU5hbWUpLGw9dCk7bGV0IGM7cz09PVwiY29kZW1vZFwiJiYoYz1uZXcgQ3IpO2xldCBoPVAuZm9yQ2hhclBvc2l0aW9ucyhhLDAsYS5zb3VyY2UubGVuZ3RoKTtsLmxvYz17c291cmNlOlwiKHByb2dyYW0pXCIsc3RhcnQ6aC5zdGFydFBvc2l0aW9uLGVuZDpoLmVuZFBvc2l0aW9ufTtsZXQgZz1uZXcgTnIoYSxjLHMpLmFjY2VwdFRlbXBsYXRlKGwpO2lmKGUuc3RyaWN0TW9kZSYmKGcuYmxvY2tQYXJhbXM9KGk9ZS5sb2NhbHMpIT09bnVsbCYmaSE9PXZvaWQgMD9pOltdKSxlJiZlLnBsdWdpbnMmJmUucGx1Z2lucy5hc3QpZm9yKGxldCB5PTAsRj1lLnBsdWdpbnMuYXN0Lmxlbmd0aDt5PEY7eSsrKXtsZXQgYj1lLnBsdWdpbnMuYXN0W3ldLGs9cGUoe30sZSx7c3ludGF4OllzfSx7cGx1Z2luczp2b2lkIDB9KSxOPWIoayk7U3IoZyxOLnZpc2l0b3IpfXJldHVybiBnfXZhciBSdD1gXG5gLEZuPVwiXFxyXCIsTW49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMubGVuZ3RoPWUubGVuZ3RoO2Zvcih2YXIgcj1bMF0sbj0wO248ZS5sZW5ndGg7KXN3aXRjaChlW25dKXtjYXNlIFJ0Om4rPVJ0Lmxlbmd0aCxyLnB1c2gobik7YnJlYWs7Y2FzZSBGbjpuKz1Gbi5sZW5ndGgsZVtuXT09PVJ0JiYobis9UnQubGVuZ3RoKSxyLnB1c2gobik7YnJlYWs7ZGVmYXVsdDpuKys7YnJlYWt9dGhpcy5vZmZzZXRzPXJ9cmV0dXJuIHQucHJvdG90eXBlLmxvY2F0aW9uRm9ySW5kZXg9ZnVuY3Rpb24oZSl7aWYoZTwwfHxlPnRoaXMubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgcj0wLG49dGhpcy5vZmZzZXRzO25bcisxXTw9ZTspcisrO3ZhciBpPWUtbltyXTtyZXR1cm57bGluZTpyLGNvbHVtbjppfX0sdC5wcm90b3R5cGUuaW5kZXhGb3JMb2NhdGlvbj1mdW5jdGlvbihlKXt2YXIgcj1lLmxpbmUsbj1lLmNvbHVtbjtyZXR1cm4gcjwwfHxyPj10aGlzLm9mZnNldHMubGVuZ3RofHxuPDB8fG4+dGhpcy5sZW5ndGhPZkxpbmUocik/bnVsbDp0aGlzLm9mZnNldHNbcl0rbn0sdC5wcm90b3R5cGUubGVuZ3RoT2ZMaW5lPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMub2Zmc2V0c1tlXSxuPWU9PT10aGlzLm9mZnNldHMubGVuZ3RoLTE/dGhpcy5sZW5ndGg6dGhpcy5vZmZzZXRzW2UrMV07cmV0dXJuIG4tcn0sdH0oKTtmdW5jdGlvbiB6cyh0LGUpe2xldCByPW5ldyBTeW50YXhFcnJvcih0K1wiIChcIitlLmxvYy5zdGFydC5saW5lK1wiOlwiK2UubG9jLnN0YXJ0LmNvbHVtbitcIilcIik7cmV0dXJuIE9iamVjdC5hc3NpZ24ocixlKX12YXIgR249enM7ZnVuY3Rpb24gV3ModCl7bGV0IGU9dC5jaGlsZHJlbj8/dC5ib2R5O2lmKGUpZm9yKGxldCByPTA7cjxlLmxlbmd0aC0xO3IrKyllW3JdLnR5cGU9PT1cIlRleHROb2RlXCImJmVbcisxXS50eXBlPT09XCJNdXN0YWNoZVN0YXRlbWVudFwiJiYoZVtyXS5jaGFycz1lW3JdLmNoYXJzLnJlcGxhY2UoL1xcXFwkLyxcIlxcXFxcXFxcXCIpKX1mdW5jdGlvbiBLcyh0KXtsZXQgZT1uZXcgTW4odCkscj0oe2xpbmU6aSxjb2x1bW46c30pPT5lLmluZGV4Rm9yTG9jYXRpb24oe2xpbmU6aS0xLGNvbHVtbjpzfSksbj1pPT57bGV0e3N0YXJ0OnMsZW5kOmF9PWkubG9jO3Mub2Zmc2V0PXIocyksYS5vZmZzZXQ9cihhKX07cmV0dXJuKCk9Pih7bmFtZTpcInByZXR0aWVyUGFyc2VQbHVnaW5cIix2aXNpdG9yOntBbGwoaSl7bihpKSxXcyhpKX19fSl9ZnVuY3Rpb24ganModCl7bGV0IGU7dHJ5e2U9VW4odCx7bW9kZTpcImNvZGVtb2RcIixwbHVnaW5zOnthc3Q6W0tzKHQpXX19KX1jYXRjaChyKXtsZXQgbj1KcyhyKTtpZihuKXtsZXQgaT1RcyhyKTt0aHJvdyBHbihpLHtsb2M6bixjYXVzZTpyfSl9dGhyb3cgcn1yZXR1cm4gZX1mdW5jdGlvbiBRcyh0KXtsZXR7bWVzc2FnZTplfT10LHI9ZS5zcGxpdChgXG5gKTtyZXR1cm4gci5sZW5ndGg+PTQmJi9eUGFyc2UgZXJyb3Igb24gbGluZSBcXGQrOiQvLnRlc3QoclswXSkmJi9eLSpcXF4kLy50ZXN0KGhlKCExLHIsLTIpKT9oZSghMSxyLC0xKTpyLmxlbmd0aD49NCYmLzpcXHM/JC8udGVzdChyWzBdKSYmL15cXChlcnJvciBvY2N1cnJlZCBpbiAnLio/JyBAIGxpbmUgXFxkKyA6IGNvbHVtbiBcXGQrXFwpJC8udGVzdChoZSghMSxyLC0xKSkmJnJbMV09PT1cIlwiJiZoZSghMSxyLC0yKT09PVwiXCImJnIuc2xpY2UoMiwtMikuZXZlcnkobj0+bi5zdGFydHNXaXRoKFwifFwiKSk/clswXS50cmltKCkuc2xpY2UoMCwtMSk6ZX1mdW5jdGlvbiBKcyh0KXtsZXR7bG9jYXRpb246ZSxoYXNoOnJ9PXQ7aWYoZSl7bGV0e3N0YXJ0Om4sZW5kOml9PWU7cmV0dXJuIHR5cGVvZiBpLmxpbmUhPVwibnVtYmVyXCI/e3N0YXJ0Om59OmV9aWYocil7bGV0e2xvYzp7bGFzdF9saW5lOm4sbGFzdF9jb2x1bW46aX19PXI7cmV0dXJue3N0YXJ0OntsaW5lOm4sY29sdW1uOmkrMX19fX12YXIgWHM9e3BhcnNlOmpzLGFzdEZvcm1hdDpcImdsaW1tZXJcIixsb2NTdGFydDp4ZSxsb2NFbmQ6dHR9O3ZhciBZbj1be2xpbmd1aXN0TGFuZ3VhZ2VJZDoxNTUsbmFtZTpcIkhhbmRsZWJhcnNcIix0eXBlOlwibWFya3VwXCIsY29sb3I6XCIjZjc5MzFlXCIsYWxpYXNlczpbXCJoYnNcIixcImh0bWxiYXJzXCJdLGV4dGVuc2lvbnM6W1wiLmhhbmRsZWJhcnNcIixcIi5oYnNcIl0sdG1TY29wZTpcInRleHQuaHRtbC5oYW5kbGViYXJzXCIsYWNlTW9kZTpcImhhbmRsZWJhcnNcIixwYXJzZXJzOltcImdsaW1tZXJcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wiaGFuZGxlYmFyc1wiXX1dO3ZhciAkcz17Z2xpbW1lcjpmbn07dmFyIEZ1PV9yO2V4cG9ydHtGdSBhcyBkZWZhdWx0LFluIGFzIGxhbmd1YWdlcyxBciBhcyBwYXJzZXJzLCRzIGFzIHByaW50ZXJzfTtcbiIsICJ2YXIgdHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBOZT0oZSx0KT0+e2Zvcih2YXIgbiBpbiB0KXR0KGUsbix7Z2V0OnRbbl0sZW51bWVyYWJsZTohMH0pfTt2YXIgVGU9e307TmUoVGUse2xhbmd1YWdlczooKT0+S2Usb3B0aW9uczooKT0+ZXQscGFyc2VyczooKT0+RWUscHJpbnRlcnM6KCk9PnJufSk7dmFyIG50PShlLHQsbixyKT0+e2lmKCEoZSYmdD09bnVsbCkpcmV0dXJuIHQucmVwbGFjZUFsbD90LnJlcGxhY2VBbGwobixyKTpuLmdsb2JhbD90LnJlcGxhY2UobixyKTp0LnNwbGl0KG4pLmpvaW4ocil9LFk9bnQ7dmFyIHJlPVwiaW5kZW50XCI7dmFyIHNlPVwiZ3JvdXBcIjt2YXIgb2U9XCJpZi1icmVha1wiO3ZhciBQPVwibGluZVwiO3ZhciBhZT1cImJyZWFrLXBhcmVudFwiO3ZhciB4ZT0oKT0+e30sYj14ZSxjZT14ZTtmdW5jdGlvbiB4KGUpe3JldHVybiBiKGUpLHt0eXBlOnJlLGNvbnRlbnRzOmV9fWZ1bmN0aW9uIHkoZSx0PXt9KXtyZXR1cm4gYihlKSxjZSh0LmV4cGFuZGVkU3RhdGVzLCEwKSx7dHlwZTpzZSxpZDp0LmlkLGNvbnRlbnRzOmUsYnJlYWs6ISF0LnNob3VsZEJyZWFrLGV4cGFuZGVkU3RhdGVzOnQuZXhwYW5kZWRTdGF0ZXN9fWZ1bmN0aW9uIE8oZSx0PVwiXCIsbj17fSl7cmV0dXJuIGIoZSksdCE9PVwiXCImJmIodCkse3R5cGU6b2UsYnJlYWtDb250ZW50czplLGZsYXRDb250ZW50czp0LGdyb3VwSWQ6bi5ncm91cElkfX12YXIgbXQ9e3R5cGU6YWV9O3ZhciBFdD17dHlwZTpQLGhhcmQ6ITB9O3ZhciBrPXt0eXBlOlB9LHA9e3R5cGU6UCxzb2Z0OiEwfSxmPVtFdCxtdF07ZnVuY3Rpb24gRShlLHQpe2IoZSksY2UodCk7bGV0IG49W107Zm9yKGxldCByPTA7cjx0Lmxlbmd0aDtyKyspciE9PTAmJm4ucHVzaChlKSxuLnB1c2godFtyXSk7cmV0dXJuIG59ZnVuY3Rpb24gVHQoZSx0LG4pe2xldCByPSEhKG4hPW51bGwmJm4uYmFja3dhcmRzKTtpZih0PT09ITEpcmV0dXJuITE7bGV0IGk9ZS5jaGFyQXQodCk7aWYocil7aWYoZS5jaGFyQXQodC0xKT09PVwiXFxyXCImJmk9PT1gXG5gKXJldHVybiB0LTI7aWYoaT09PWBcbmB8fGk9PT1cIlxcclwifHxpPT09XCJcXHUyMDI4XCJ8fGk9PT1cIlxcdTIwMjlcIilyZXR1cm4gdC0xfWVsc2V7aWYoaT09PVwiXFxyXCImJmUuY2hhckF0KHQrMSk9PT1gXG5gKXJldHVybiB0KzI7aWYoaT09PWBcbmB8fGk9PT1cIlxcclwifHxpPT09XCJcXHUyMDI4XCJ8fGk9PT1cIlxcdTIwMjlcIilyZXR1cm4gdCsxfXJldHVybiB0fXZhciBqPVR0O2Z1bmN0aW9uIEcoZSl7cmV0dXJuKHQsbixyKT0+e2xldCBpPSEhKHIhPW51bGwmJnIuYmFja3dhcmRzKTtpZihuPT09ITEpcmV0dXJuITE7bGV0e2xlbmd0aDpzfT10LGE9bjtmb3IoO2E+PTAmJmE8czspe2xldCB1PXQuY2hhckF0KGEpO2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApe2lmKCFlLnRlc3QodSkpcmV0dXJuIGF9ZWxzZSBpZighZS5pbmNsdWRlcyh1KSlyZXR1cm4gYTtpP2EtLTphKyt9cmV0dXJuIGE9PT0tMXx8YT09PXM/YTohMX19dmFyIGduPUcoL1xccy8pLCQ9RyhcIiBcdFwiKSxfZT1HKFwiLDsgXHRcIikseWU9RygvW15cXG5cXHJdLyk7ZnVuY3Rpb24gTnQoZSx0KXtpZih0PT09ITEpcmV0dXJuITE7aWYoZS5jaGFyQXQodCk9PT1cIi9cIiYmZS5jaGFyQXQodCsxKT09PVwiKlwiKXtmb3IobGV0IG49dCsyO248ZS5sZW5ndGg7KytuKWlmKGUuY2hhckF0KG4pPT09XCIqXCImJmUuY2hhckF0KG4rMSk9PT1cIi9cIilyZXR1cm4gbisyfXJldHVybiB0fXZhciBJZT1OdDtmdW5jdGlvbiB4dChlLHQpe3JldHVybiB0PT09ITE/ITE6ZS5jaGFyQXQodCk9PT1cIi9cIiYmZS5jaGFyQXQodCsxKT09PVwiL1wiP3llKGUsdCk6dH12YXIgT2U9eHQ7ZnVuY3Rpb24gX3QoZSx0LG49e30pe2xldCByPSQoZSxuLmJhY2t3YXJkcz90LTE6dCxuKSxpPWooZSxyLG4pO3JldHVybiByIT09aX12YXIgRGU9X3Q7ZnVuY3Rpb24geXQoZSx0KXtsZXQgbj1udWxsLHI9dDtmb3IoO3IhPT1uOyluPXIscj1fZShlLHIpLHI9SWUoZSxyKSxyPSQoZSxyKTtyZXR1cm4gcj1PZShlLHIpLHI9aihlLHIpLHIhPT0hMSYmRGUoZSxyKX12YXIgZ2U9eXQ7ZnVuY3Rpb24gSXQoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjB9dmFyIHVlPUl0O3ZhciBsZT1jbGFzcyBleHRlbmRzIEVycm9ye25hbWU9XCJVbmV4cGVjdGVkTm9kZUVycm9yXCI7Y29uc3RydWN0b3IodCxuLHI9XCJ0eXBlXCIpe3N1cGVyKGBVbmV4cGVjdGVkICR7bn0gbm9kZSAke3J9OiAke0pTT04uc3RyaW5naWZ5KHRbcl0pfS5gKSx0aGlzLm5vZGU9dH19LEFlPWxlO2Z1bmN0aW9uIGtlKGUpe3JldHVybi9eXFxzKiNbXlxcU1xcbl0qQCg/OmZvcm1hdHxwcmV0dGllcilcXHMqKD86XFxufCQpLy50ZXN0KGUpfWZ1bmN0aW9uIENlKGUpe3JldHVybmAjIEBmb3JtYXRcblxuYCtlfWZ1bmN0aW9uIEooZSl7cmV0dXJuIGUua2luZD09PVwiQ29tbWVudFwiP2Uuc3RhcnQ6ZS5sb2Muc3RhcnR9ZnVuY3Rpb24gWChlKXtyZXR1cm4gZS5raW5kPT09XCJDb21tZW50XCI/ZS5lbmQ6ZS5sb2MuZW5kfXZhciBGPW51bGw7ZnVuY3Rpb24gdyhlKXtpZihGIT09bnVsbCYmdHlwZW9mIEYucHJvcGVydHkpe2xldCB0PUY7cmV0dXJuIEY9dy5wcm90b3R5cGU9bnVsbCx0fXJldHVybiBGPXcucHJvdG90eXBlPWU/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IHd9dmFyIE90PTEwO2ZvcihsZXQgZT0wO2U8PU90O2UrKyl3KCk7ZnVuY3Rpb24gcGUoZSl7cmV0dXJuIHcoZSl9ZnVuY3Rpb24gRHQoZSx0PVwidHlwZVwiKXtwZShlKTtmdW5jdGlvbiBuKHIpe2xldCBpPXJbdF0scz1lW2ldO2lmKCFBcnJheS5pc0FycmF5KHMpKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7aX0nLmApLHtub2RlOnJ9KTtyZXR1cm4gc31yZXR1cm4gbn12YXIgU2U9RHQ7dmFyIHE9Y2xhc3N7Y29uc3RydWN0b3IodCxuLHIpe3RoaXMuc3RhcnQ9dC5zdGFydCx0aGlzLmVuZD1uLmVuZCx0aGlzLnN0YXJ0VG9rZW49dCx0aGlzLmVuZFRva2VuPW4sdGhpcy5zb3VyY2U9cn1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVyblwiTG9jYXRpb25cIn10b0pTT04oKXtyZXR1cm57c3RhcnQ6dGhpcy5zdGFydCxlbmQ6dGhpcy5lbmR9fX0sVj1jbGFzc3tjb25zdHJ1Y3Rvcih0LG4scixpLHMsYSl7dGhpcy5raW5kPXQsdGhpcy5zdGFydD1uLHRoaXMuZW5kPXIsdGhpcy5saW5lPWksdGhpcy5jb2x1bW49cyx0aGlzLnZhbHVlPWEsdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGx9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm5cIlRva2VuXCJ9dG9KU09OKCl7cmV0dXJue2tpbmQ6dGhpcy5raW5kLHZhbHVlOnRoaXMudmFsdWUsbGluZTp0aGlzLmxpbmUsY29sdW1uOnRoaXMuY29sdW1ufX19LFE9e05hbWU6W10sRG9jdW1lbnQ6W1wiZGVmaW5pdGlvbnNcIl0sT3BlcmF0aW9uRGVmaW5pdGlvbjpbXCJuYW1lXCIsXCJ2YXJpYWJsZURlZmluaXRpb25zXCIsXCJkaXJlY3RpdmVzXCIsXCJzZWxlY3Rpb25TZXRcIl0sVmFyaWFibGVEZWZpbml0aW9uOltcInZhcmlhYmxlXCIsXCJ0eXBlXCIsXCJkZWZhdWx0VmFsdWVcIixcImRpcmVjdGl2ZXNcIl0sVmFyaWFibGU6W1wibmFtZVwiXSxTZWxlY3Rpb25TZXQ6W1wic2VsZWN0aW9uc1wiXSxGaWVsZDpbXCJhbGlhc1wiLFwibmFtZVwiLFwiYXJndW1lbnRzXCIsXCJkaXJlY3RpdmVzXCIsXCJzZWxlY3Rpb25TZXRcIl0sQXJndW1lbnQ6W1wibmFtZVwiLFwidmFsdWVcIl0sRnJhZ21lbnRTcHJlYWQ6W1wibmFtZVwiLFwiZGlyZWN0aXZlc1wiXSxJbmxpbmVGcmFnbWVudDpbXCJ0eXBlQ29uZGl0aW9uXCIsXCJkaXJlY3RpdmVzXCIsXCJzZWxlY3Rpb25TZXRcIl0sRnJhZ21lbnREZWZpbml0aW9uOltcIm5hbWVcIixcInZhcmlhYmxlRGVmaW5pdGlvbnNcIixcInR5cGVDb25kaXRpb25cIixcImRpcmVjdGl2ZXNcIixcInNlbGVjdGlvblNldFwiXSxJbnRWYWx1ZTpbXSxGbG9hdFZhbHVlOltdLFN0cmluZ1ZhbHVlOltdLEJvb2xlYW5WYWx1ZTpbXSxOdWxsVmFsdWU6W10sRW51bVZhbHVlOltdLExpc3RWYWx1ZTpbXCJ2YWx1ZXNcIl0sT2JqZWN0VmFsdWU6W1wiZmllbGRzXCJdLE9iamVjdEZpZWxkOltcIm5hbWVcIixcInZhbHVlXCJdLERpcmVjdGl2ZTpbXCJuYW1lXCIsXCJhcmd1bWVudHNcIl0sTmFtZWRUeXBlOltcIm5hbWVcIl0sTGlzdFR5cGU6W1widHlwZVwiXSxOb25OdWxsVHlwZTpbXCJ0eXBlXCJdLFNjaGVtYURlZmluaXRpb246W1wiZGVzY3JpcHRpb25cIixcImRpcmVjdGl2ZXNcIixcIm9wZXJhdGlvblR5cGVzXCJdLE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOltcInR5cGVcIl0sU2NhbGFyVHlwZURlZmluaXRpb246W1wiZGVzY3JpcHRpb25cIixcIm5hbWVcIixcImRpcmVjdGl2ZXNcIl0sT2JqZWN0VHlwZURlZmluaXRpb246W1wiZGVzY3JpcHRpb25cIixcIm5hbWVcIixcImludGVyZmFjZXNcIixcImRpcmVjdGl2ZXNcIixcImZpZWxkc1wiXSxGaWVsZERlZmluaXRpb246W1wiZGVzY3JpcHRpb25cIixcIm5hbWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVwiLFwiZGlyZWN0aXZlc1wiXSxJbnB1dFZhbHVlRGVmaW5pdGlvbjpbXCJkZXNjcmlwdGlvblwiLFwibmFtZVwiLFwidHlwZVwiLFwiZGVmYXVsdFZhbHVlXCIsXCJkaXJlY3RpdmVzXCJdLEludGVyZmFjZVR5cGVEZWZpbml0aW9uOltcImRlc2NyaXB0aW9uXCIsXCJuYW1lXCIsXCJpbnRlcmZhY2VzXCIsXCJkaXJlY3RpdmVzXCIsXCJmaWVsZHNcIl0sVW5pb25UeXBlRGVmaW5pdGlvbjpbXCJkZXNjcmlwdGlvblwiLFwibmFtZVwiLFwiZGlyZWN0aXZlc1wiLFwidHlwZXNcIl0sRW51bVR5cGVEZWZpbml0aW9uOltcImRlc2NyaXB0aW9uXCIsXCJuYW1lXCIsXCJkaXJlY3RpdmVzXCIsXCJ2YWx1ZXNcIl0sRW51bVZhbHVlRGVmaW5pdGlvbjpbXCJkZXNjcmlwdGlvblwiLFwibmFtZVwiLFwiZGlyZWN0aXZlc1wiXSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOltcImRlc2NyaXB0aW9uXCIsXCJuYW1lXCIsXCJkaXJlY3RpdmVzXCIsXCJmaWVsZHNcIl0sRGlyZWN0aXZlRGVmaW5pdGlvbjpbXCJkZXNjcmlwdGlvblwiLFwibmFtZVwiLFwiYXJndW1lbnRzXCIsXCJsb2NhdGlvbnNcIl0sU2NoZW1hRXh0ZW5zaW9uOltcImRpcmVjdGl2ZXNcIixcIm9wZXJhdGlvblR5cGVzXCJdLFNjYWxhclR5cGVFeHRlbnNpb246W1wibmFtZVwiLFwiZGlyZWN0aXZlc1wiXSxPYmplY3RUeXBlRXh0ZW5zaW9uOltcIm5hbWVcIixcImludGVyZmFjZXNcIixcImRpcmVjdGl2ZXNcIixcImZpZWxkc1wiXSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOltcIm5hbWVcIixcImludGVyZmFjZXNcIixcImRpcmVjdGl2ZXNcIixcImZpZWxkc1wiXSxVbmlvblR5cGVFeHRlbnNpb246W1wibmFtZVwiLFwiZGlyZWN0aXZlc1wiLFwidHlwZXNcIl0sRW51bVR5cGVFeHRlbnNpb246W1wibmFtZVwiLFwiZGlyZWN0aXZlc1wiLFwidmFsdWVzXCJdLElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjpbXCJuYW1lXCIsXCJkaXJlY3RpdmVzXCIsXCJmaWVsZHNcIl19LFhuPW5ldyBTZXQoT2JqZWN0LmtleXMoUSkpO3ZhciBDOyhmdW5jdGlvbihlKXtlLlFVRVJZPVwicXVlcnlcIixlLk1VVEFUSU9OPVwibXV0YXRpb25cIixlLlNVQlNDUklQVElPTj1cInN1YnNjcmlwdGlvblwifSkoQ3x8KEM9e30pKTt2YXIgZ3Q9U2UoUSxcImtpbmRcIiksdmU9Z3Q7ZnVuY3Rpb24gQXQoZSx0LG4pe2xldHtub2RlOnJ9PWU7aWYoIXIuZGVzY3JpcHRpb24pcmV0dXJuXCJcIjtsZXQgaT1bbihcImRlc2NyaXB0aW9uXCIpXTtyZXR1cm4gci5raW5kPT09XCJJbnB1dFZhbHVlRGVmaW5pdGlvblwiJiYhci5kZXNjcmlwdGlvbi5ibG9jaz9pLnB1c2goayk6aS5wdXNoKGYpLGl9dmFyIGc9QXQ7ZnVuY3Rpb24ga3QoZSx0LG4pe2xldHtub2RlOnJ9PWU7c3dpdGNoKHIua2luZCl7Y2FzZVwiRG9jdW1lbnRcIjpyZXR1cm5bLi4uRShmLEEoZSx0LG4sXCJkZWZpbml0aW9uc1wiKSksZl07Y2FzZVwiT3BlcmF0aW9uRGVmaW5pdGlvblwiOntsZXQgaT10Lm9yaWdpbmFsVGV4dFtKKHIpXSE9PVwie1wiLHM9ISFyLm5hbWU7cmV0dXJuW2k/ci5vcGVyYXRpb246XCJcIixpJiZzP1tcIiBcIixuKFwibmFtZVwiKV06XCJcIixpJiYhcyYmdWUoci52YXJpYWJsZURlZmluaXRpb25zKT9cIiBcIjpcIlwiLGJlKGUsbiksXyhlLG4sciksIWkmJiFzP1wiXCI6XCIgXCIsbihcInNlbGVjdGlvblNldFwiKV19Y2FzZVwiRnJhZ21lbnREZWZpbml0aW9uXCI6cmV0dXJuW1wiZnJhZ21lbnQgXCIsbihcIm5hbWVcIiksYmUoZSxuKSxcIiBvbiBcIixuKFwidHlwZUNvbmRpdGlvblwiKSxfKGUsbixyKSxcIiBcIixuKFwic2VsZWN0aW9uU2V0XCIpXTtjYXNlXCJTZWxlY3Rpb25TZXRcIjpyZXR1cm5bXCJ7XCIseChbZixFKGYsQShlLHQsbixcInNlbGVjdGlvbnNcIikpXSksZixcIn1cIl07Y2FzZVwiRmllbGRcIjpyZXR1cm4geShbci5hbGlhcz9bbihcImFsaWFzXCIpLFwiOiBcIl06XCJcIixuKFwibmFtZVwiKSxyLmFyZ3VtZW50cy5sZW5ndGg+MD95KFtcIihcIix4KFtwLEUoW08oXCJcIixcIiwgXCIpLHBdLEEoZSx0LG4sXCJhcmd1bWVudHNcIikpXSkscCxcIilcIl0pOlwiXCIsXyhlLG4sciksci5zZWxlY3Rpb25TZXQ/XCIgXCI6XCJcIixuKFwic2VsZWN0aW9uU2V0XCIpXSk7Y2FzZVwiTmFtZVwiOnJldHVybiByLnZhbHVlO2Nhc2VcIlN0cmluZ1ZhbHVlXCI6aWYoci5ibG9jayl7bGV0IGk9WSghMSxyLnZhbHVlLCdcIlwiXCInLCdcXFxcXCJcIlwiJykuc3BsaXQoYFxuYCk7cmV0dXJuIGkubGVuZ3RoPT09MSYmKGlbMF09aVswXS50cmltKCkpLGkuZXZlcnkocz0+cz09PVwiXCIpJiYoaS5sZW5ndGg9MCksRShmLFsnXCJcIlwiJywuLi5pLCdcIlwiXCInXSl9cmV0dXJuWydcIicsWSghMSxZKCExLHIudmFsdWUsL1tcIlxcXFxdL2csXCJcXFxcJCZcIiksYFxuYCxcIlxcXFxuXCIpLCdcIiddO2Nhc2VcIkludFZhbHVlXCI6Y2FzZVwiRmxvYXRWYWx1ZVwiOmNhc2VcIkVudW1WYWx1ZVwiOnJldHVybiByLnZhbHVlO2Nhc2VcIkJvb2xlYW5WYWx1ZVwiOnJldHVybiByLnZhbHVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJOdWxsVmFsdWVcIjpyZXR1cm5cIm51bGxcIjtjYXNlXCJWYXJpYWJsZVwiOnJldHVybltcIiRcIixuKFwibmFtZVwiKV07Y2FzZVwiTGlzdFZhbHVlXCI6cmV0dXJuIHkoW1wiW1wiLHgoW3AsRShbTyhcIlwiLFwiLCBcIikscF0sZS5tYXAobixcInZhbHVlc1wiKSldKSxwLFwiXVwiXSk7Y2FzZVwiT2JqZWN0VmFsdWVcIjp7bGV0IGk9dC5icmFja2V0U3BhY2luZyYmci5maWVsZHMubGVuZ3RoPjA/XCIgXCI6XCJcIjtyZXR1cm4geShbXCJ7XCIsaSx4KFtwLEUoW08oXCJcIixcIiwgXCIpLHBdLGUubWFwKG4sXCJmaWVsZHNcIikpXSkscCxPKFwiXCIsaSksXCJ9XCJdKX1jYXNlXCJPYmplY3RGaWVsZFwiOmNhc2VcIkFyZ3VtZW50XCI6cmV0dXJuW24oXCJuYW1lXCIpLFwiOiBcIixuKFwidmFsdWVcIildO2Nhc2VcIkRpcmVjdGl2ZVwiOnJldHVybltcIkBcIixuKFwibmFtZVwiKSxyLmFyZ3VtZW50cy5sZW5ndGg+MD95KFtcIihcIix4KFtwLEUoW08oXCJcIixcIiwgXCIpLHBdLEEoZSx0LG4sXCJhcmd1bWVudHNcIikpXSkscCxcIilcIl0pOlwiXCJdO2Nhc2VcIk5hbWVkVHlwZVwiOnJldHVybiBuKFwibmFtZVwiKTtjYXNlXCJWYXJpYWJsZURlZmluaXRpb25cIjpyZXR1cm5bbihcInZhcmlhYmxlXCIpLFwiOiBcIixuKFwidHlwZVwiKSxyLmRlZmF1bHRWYWx1ZT9bXCIgPSBcIixuKFwiZGVmYXVsdFZhbHVlXCIpXTpcIlwiLF8oZSxuLHIpXTtjYXNlXCJPYmplY3RUeXBlRXh0ZW5zaW9uXCI6Y2FzZVwiT2JqZWN0VHlwZURlZmluaXRpb25cIjpjYXNlXCJJbnB1dE9iamVjdFR5cGVFeHRlbnNpb25cIjpjYXNlXCJJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uXCI6Y2FzZVwiSW50ZXJmYWNlVHlwZUV4dGVuc2lvblwiOmNhc2VcIkludGVyZmFjZVR5cGVEZWZpbml0aW9uXCI6e2xldHtraW5kOml9PXIscz1bXTtyZXR1cm4gaS5lbmRzV2l0aChcIlR5cGVEZWZpbml0aW9uXCIpP3MucHVzaChnKGUsdCxuKSk6cy5wdXNoKFwiZXh0ZW5kIFwiKSxpLnN0YXJ0c1dpdGgoXCJPYmplY3RUeXBlXCIpP3MucHVzaChcInR5cGVcIik6aS5zdGFydHNXaXRoKFwiSW5wdXRPYmplY3RUeXBlXCIpP3MucHVzaChcImlucHV0XCIpOnMucHVzaChcImludGVyZmFjZVwiKSxzLnB1c2goXCIgXCIsbihcIm5hbWVcIikpLCFpLnN0YXJ0c1dpdGgoXCJJbnB1dE9iamVjdFR5cGVcIikmJnIuaW50ZXJmYWNlcy5sZW5ndGg+MCYmcy5wdXNoKFwiIGltcGxlbWVudHMgXCIsLi4udnQoZSx0LG4pKSxzLnB1c2goXyhlLG4scikpLHIuZmllbGRzLmxlbmd0aD4wJiZzLnB1c2goW1wiIHtcIix4KFtmLEUoZixBKGUsdCxuLFwiZmllbGRzXCIpKV0pLGYsXCJ9XCJdKSxzfWNhc2VcIkZpZWxkRGVmaW5pdGlvblwiOnJldHVybltnKGUsdCxuKSxuKFwibmFtZVwiKSxyLmFyZ3VtZW50cy5sZW5ndGg+MD95KFtcIihcIix4KFtwLEUoW08oXCJcIixcIiwgXCIpLHBdLEEoZSx0LG4sXCJhcmd1bWVudHNcIikpXSkscCxcIilcIl0pOlwiXCIsXCI6IFwiLG4oXCJ0eXBlXCIpLF8oZSxuLHIpXTtjYXNlXCJEaXJlY3RpdmVEZWZpbml0aW9uXCI6cmV0dXJuW2coZSx0LG4pLFwiZGlyZWN0aXZlIFwiLFwiQFwiLG4oXCJuYW1lXCIpLHIuYXJndW1lbnRzLmxlbmd0aD4wP3koW1wiKFwiLHgoW3AsRShbTyhcIlwiLFwiLCBcIikscF0sQShlLHQsbixcImFyZ3VtZW50c1wiKSldKSxwLFwiKVwiXSk6XCJcIixyLnJlcGVhdGFibGU/XCIgcmVwZWF0YWJsZVwiOlwiXCIsXCIgb24gXCIsLi4uRShcIiB8IFwiLGUubWFwKG4sXCJsb2NhdGlvbnNcIikpXTtjYXNlXCJFbnVtVHlwZUV4dGVuc2lvblwiOmNhc2VcIkVudW1UeXBlRGVmaW5pdGlvblwiOnJldHVybltnKGUsdCxuKSxyLmtpbmQ9PT1cIkVudW1UeXBlRXh0ZW5zaW9uXCI/XCJleHRlbmQgXCI6XCJcIixcImVudW0gXCIsbihcIm5hbWVcIiksXyhlLG4sciksci52YWx1ZXMubGVuZ3RoPjA/W1wiIHtcIix4KFtmLEUoZixBKGUsdCxuLFwidmFsdWVzXCIpKV0pLGYsXCJ9XCJdOlwiXCJdO2Nhc2VcIkVudW1WYWx1ZURlZmluaXRpb25cIjpyZXR1cm5bZyhlLHQsbiksbihcIm5hbWVcIiksXyhlLG4scildO2Nhc2VcIklucHV0VmFsdWVEZWZpbml0aW9uXCI6cmV0dXJuW2coZSx0LG4pLG4oXCJuYW1lXCIpLFwiOiBcIixuKFwidHlwZVwiKSxyLmRlZmF1bHRWYWx1ZT9bXCIgPSBcIixuKFwiZGVmYXVsdFZhbHVlXCIpXTpcIlwiLF8oZSxuLHIpXTtjYXNlXCJTY2hlbWFFeHRlbnNpb25cIjpyZXR1cm5bXCJleHRlbmQgc2NoZW1hXCIsXyhlLG4sciksLi4uci5vcGVyYXRpb25UeXBlcy5sZW5ndGg+MD9bXCIge1wiLHgoW2YsRShmLEEoZSx0LG4sXCJvcGVyYXRpb25UeXBlc1wiKSldKSxmLFwifVwiXTpbXV07Y2FzZVwiU2NoZW1hRGVmaW5pdGlvblwiOnJldHVybltnKGUsdCxuKSxcInNjaGVtYVwiLF8oZSxuLHIpLFwiIHtcIixyLm9wZXJhdGlvblR5cGVzLmxlbmd0aD4wP3goW2YsRShmLEEoZSx0LG4sXCJvcGVyYXRpb25UeXBlc1wiKSldKTpcIlwiLGYsXCJ9XCJdO2Nhc2VcIk9wZXJhdGlvblR5cGVEZWZpbml0aW9uXCI6cmV0dXJuW3Iub3BlcmF0aW9uLFwiOiBcIixuKFwidHlwZVwiKV07Y2FzZVwiRnJhZ21lbnRTcHJlYWRcIjpyZXR1cm5bXCIuLi5cIixuKFwibmFtZVwiKSxfKGUsbixyKV07Y2FzZVwiSW5saW5lRnJhZ21lbnRcIjpyZXR1cm5bXCIuLi5cIixyLnR5cGVDb25kaXRpb24/W1wiIG9uIFwiLG4oXCJ0eXBlQ29uZGl0aW9uXCIpXTpcIlwiLF8oZSxuLHIpLFwiIFwiLG4oXCJzZWxlY3Rpb25TZXRcIildO2Nhc2VcIlVuaW9uVHlwZUV4dGVuc2lvblwiOmNhc2VcIlVuaW9uVHlwZURlZmluaXRpb25cIjpyZXR1cm4geShbZyhlLHQsbikseShbci5raW5kPT09XCJVbmlvblR5cGVFeHRlbnNpb25cIj9cImV4dGVuZCBcIjpcIlwiLFwidW5pb24gXCIsbihcIm5hbWVcIiksXyhlLG4sciksci50eXBlcy5sZW5ndGg+MD9bXCIgPVwiLE8oXCJcIixcIiBcIikseChbTyhbayxcIiAgXCJdKSxFKFtrLFwifCBcIl0sZS5tYXAobixcInR5cGVzXCIpKV0pXTpcIlwiXSldKTtjYXNlXCJTY2FsYXJUeXBlRXh0ZW5zaW9uXCI6Y2FzZVwiU2NhbGFyVHlwZURlZmluaXRpb25cIjpyZXR1cm5bZyhlLHQsbiksci5raW5kPT09XCJTY2FsYXJUeXBlRXh0ZW5zaW9uXCI/XCJleHRlbmQgXCI6XCJcIixcInNjYWxhciBcIixuKFwibmFtZVwiKSxfKGUsbixyKV07Y2FzZVwiTm9uTnVsbFR5cGVcIjpyZXR1cm5bbihcInR5cGVcIiksXCIhXCJdO2Nhc2VcIkxpc3RUeXBlXCI6cmV0dXJuW1wiW1wiLG4oXCJ0eXBlXCIpLFwiXVwiXTtkZWZhdWx0OnRocm93IG5ldyBBZShyLFwiR3JhcGhxbFwiLFwia2luZFwiKX19ZnVuY3Rpb24gXyhlLHQsbil7aWYobi5kaXJlY3RpdmVzLmxlbmd0aD09PTApcmV0dXJuXCJcIjtsZXQgcj1FKGssZS5tYXAodCxcImRpcmVjdGl2ZXNcIikpO3JldHVybiBuLmtpbmQ9PT1cIkZyYWdtZW50RGVmaW5pdGlvblwifHxuLmtpbmQ9PT1cIk9wZXJhdGlvbkRlZmluaXRpb25cIj95KFtrLHJdKTpbXCIgXCIseSh4KFtwLHJdKSldfWZ1bmN0aW9uIEEoZSx0LG4scil7cmV0dXJuIGUubWFwKCh7aXNMYXN0Omksbm9kZTpzfSk9PntsZXQgYT1uKCk7cmV0dXJuIWkmJmdlKHQub3JpZ2luYWxUZXh0LFgocykpP1thLGZdOmF9LHIpfWZ1bmN0aW9uIEN0KGUpe3JldHVybiBlLmtpbmQhPT1cIkNvbW1lbnRcIn1mdW5jdGlvbiBTdChlKXtsZXQgdD1lLm5vZGU7aWYodC5raW5kPT09XCJDb21tZW50XCIpcmV0dXJuXCIjXCIrdC52YWx1ZS50cmltRW5kKCk7dGhyb3cgbmV3IEVycm9yKFwiTm90IGEgY29tbWVudDogXCIrSlNPTi5zdHJpbmdpZnkodCkpfWZ1bmN0aW9uIHZ0KGUsdCxuKXtsZXR7bm9kZTpyfT1lLGk9W10se2ludGVyZmFjZXM6c309cixhPWUubWFwKG4sXCJpbnRlcmZhY2VzXCIpO2ZvcihsZXQgdT0wO3U8cy5sZW5ndGg7dSsrKXtsZXQgbD1zW3VdO2kucHVzaChhW3VdKTtsZXQgVD1zW3UrMV07aWYoVCl7bGV0IEQ9dC5vcmlnaW5hbFRleHQuc2xpY2UobC5sb2MuZW5kLFQubG9jLnN0YXJ0KS5pbmNsdWRlcyhcIiNcIik7aS5wdXNoKFwiICZcIixEP2s6XCIgXCIpfX1yZXR1cm4gaX1mdW5jdGlvbiBiZShlLHQpe2xldHtub2RlOm59PWU7cmV0dXJuIHVlKG4udmFyaWFibGVEZWZpbml0aW9ucyk/eShbXCIoXCIseChbcCxFKFtPKFwiXCIsXCIsIFwiKSxwXSxlLm1hcCh0LFwidmFyaWFibGVEZWZpbml0aW9uc1wiKSldKSxwLFwiKVwiXSk6XCJcIn1mdW5jdGlvbiBMZShlLHQpe2Uua2luZD09PVwiU3RyaW5nVmFsdWVcIiYmZS5ibG9jayYmIWUudmFsdWUuaW5jbHVkZXMoYFxuYCkmJih0LnZhbHVlPXQudmFsdWUudHJpbSgpKX1MZS5pZ25vcmVkUHJvcGVydGllcz1uZXcgU2V0KFtcImxvY1wiLFwiY29tbWVudHNcIl0pO2Z1bmN0aW9uIGJ0KGUpe3ZhciBuO2xldHtub2RlOnR9PWU7cmV0dXJuKG49dD09bnVsbD92b2lkIDA6dC5jb21tZW50cyk9PW51bGw/dm9pZCAwOm4uc29tZShyPT5yLnZhbHVlLnRyaW0oKT09PVwicHJldHRpZXItaWdub3JlXCIpfXZhciBMdD17cHJpbnQ6a3QsbWFzc2FnZUFzdE5vZGU6TGUsaGFzUHJldHRpZXJJZ25vcmU6YnQsaW5zZXJ0UHJhZ21hOkNlLHByaW50Q29tbWVudDpTdCxjYW5BdHRhY2hDb21tZW50OkN0LGdldFZpc2l0b3JLZXlzOnZlfSxSZT1MdDt2YXIgRWU9e307TmUoRWUse2dyYXBocWw6KCk9PnRufSk7ZnVuY3Rpb24gUGUoZSl7cmV0dXJuIHR5cGVvZiBlPT1cIm9iamVjdFwiJiZlIT09bnVsbH1mdW5jdGlvbiBGZShlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKHQ/P1wiVW5leHBlY3RlZCBpbnZhcmlhbnQgdHJpZ2dlcmVkLlwiKX12YXIgUnQ9L1xcclxcbnxbXFxuXFxyXS9nO2Z1bmN0aW9uIEIoZSx0KXtsZXQgbj0wLHI9MTtmb3IobGV0IGkgb2YgZS5ib2R5Lm1hdGNoQWxsKFJ0KSl7aWYodHlwZW9mIGkuaW5kZXg9PVwibnVtYmVyXCJ8fEZlKCExKSxpLmluZGV4Pj10KWJyZWFrO249aS5pbmRleCtpWzBdLmxlbmd0aCxyKz0xfXJldHVybntsaW5lOnIsY29sdW1uOnQrMS1ufX1mdW5jdGlvbiBWZShlKXtyZXR1cm4gZmUoZS5zb3VyY2UsQihlLnNvdXJjZSxlLnN0YXJ0KSl9ZnVuY3Rpb24gZmUoZSx0KXtsZXQgbj1lLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbi0xLHI9XCJcIi5wYWRTdGFydChuKStlLmJvZHksaT10LmxpbmUtMSxzPWUubG9jYXRpb25PZmZzZXQubGluZS0xLGE9dC5saW5lK3MsdT10LmxpbmU9PT0xP246MCxsPXQuY29sdW1uK3UsVD1gJHtlLm5hbWV9OiR7YX06JHtsfVxuYCxoPXIuc3BsaXQoL1xcclxcbnxbXFxuXFxyXS9nKSxEPWhbaV07aWYoRC5sZW5ndGg+MTIwKXtsZXQgST1NYXRoLmZsb29yKGwvODApLGllPWwlODAsTj1bXTtmb3IobGV0IHY9MDt2PEQubGVuZ3RoO3YrPTgwKU4ucHVzaChELnNsaWNlKHYsdis4MCkpO3JldHVybiBUK3dlKFtbYCR7YX0gfGAsTlswXV0sLi4uTi5zbGljZSgxLEkrMSkubWFwKHY9PltcInxcIix2XSksW1wifFwiLFwiXlwiLnBhZFN0YXJ0KGllKV0sW1wifFwiLE5bSSsxXV1dKX1yZXR1cm4gVCt3ZShbW2Ake2EtMX0gfGAsaFtpLTFdXSxbYCR7YX0gfGAsRF0sW1wifFwiLFwiXlwiLnBhZFN0YXJ0KGwpXSxbYCR7YSsxfSB8YCxoW2krMV1dXSl9ZnVuY3Rpb24gd2UoZSl7bGV0IHQ9ZS5maWx0ZXIoKFtyLGldKT0+aSE9PXZvaWQgMCksbj1NYXRoLm1heCguLi50Lm1hcCgoW3JdKT0+ci5sZW5ndGgpKTtyZXR1cm4gdC5tYXAoKFtyLGldKT0+ci5wYWRTdGFydChuKSsoaT9cIiBcIitpOlwiXCIpKS5qb2luKGBcbmApfWZ1bmN0aW9uIFB0KGUpe2xldCB0PWVbMF07cmV0dXJuIHQ9PW51bGx8fFwia2luZFwiaW4gdHx8XCJsZW5ndGhcImluIHQ/e25vZGVzOnQsc291cmNlOmVbMV0scG9zaXRpb25zOmVbMl0scGF0aDplWzNdLG9yaWdpbmFsRXJyb3I6ZVs0XSxleHRlbnNpb25zOmVbNV19OnR9dmFyIFc9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsLi4ubil7dmFyIHIsaSxzO2xldHtub2RlczphLHNvdXJjZTp1LHBvc2l0aW9uczpsLHBhdGg6VCxvcmlnaW5hbEVycm9yOmgsZXh0ZW5zaW9uczpEfT1QdChuKTtzdXBlcih0KSx0aGlzLm5hbWU9XCJHcmFwaFFMRXJyb3JcIix0aGlzLnBhdGg9VD8/dm9pZCAwLHRoaXMub3JpZ2luYWxFcnJvcj1oPz92b2lkIDAsdGhpcy5ub2Rlcz1CZShBcnJheS5pc0FycmF5KGEpP2E6YT9bYV06dm9pZCAwKTtsZXQgST1CZSgocj10aGlzLm5vZGVzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubWFwKE49Pk4ubG9jKS5maWx0ZXIoTj0+TiE9bnVsbCkpO3RoaXMuc291cmNlPXU/PyhJPT1udWxsfHwoaT1JWzBdKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkuc291cmNlKSx0aGlzLnBvc2l0aW9ucz1sPz8oST09bnVsbD92b2lkIDA6SS5tYXAoTj0+Ti5zdGFydCkpLHRoaXMubG9jYXRpb25zPWwmJnU/bC5tYXAoTj0+Qih1LE4pKTpJPT1udWxsP3ZvaWQgMDpJLm1hcChOPT5CKE4uc291cmNlLE4uc3RhcnQpKTtsZXQgaWU9UGUoaD09bnVsbD92b2lkIDA6aC5leHRlbnNpb25zKT9oPT1udWxsP3ZvaWQgMDpoLmV4dGVuc2lvbnM6dm9pZCAwO3RoaXMuZXh0ZW5zaW9ucz0ocz1EPz9pZSkhPT1udWxsJiZzIT09dm9pZCAwP3M6T2JqZWN0LmNyZWF0ZShudWxsKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHttZXNzYWdlOnt3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwfSxuYW1lOntlbnVtZXJhYmxlOiExfSxub2Rlczp7ZW51bWVyYWJsZTohMX0sc291cmNlOntlbnVtZXJhYmxlOiExfSxwb3NpdGlvbnM6e2VudW1lcmFibGU6ITF9LG9yaWdpbmFsRXJyb3I6e2VudW1lcmFibGU6ITF9fSksaCE9bnVsbCYmaC5zdGFjaz9PYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInN0YWNrXCIse3ZhbHVlOmguc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxlKTpPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInN0YWNrXCIse3ZhbHVlOkVycm9yKCkuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm5cIkdyYXBoUUxFcnJvclwifXRvU3RyaW5nKCl7bGV0IHQ9dGhpcy5tZXNzYWdlO2lmKHRoaXMubm9kZXMpZm9yKGxldCBuIG9mIHRoaXMubm9kZXMpbi5sb2MmJih0Kz1gXG5cbmArVmUobi5sb2MpKTtlbHNlIGlmKHRoaXMuc291cmNlJiZ0aGlzLmxvY2F0aW9ucylmb3IobGV0IG4gb2YgdGhpcy5sb2NhdGlvbnMpdCs9YFxuXG5gK2ZlKHRoaXMuc291cmNlLG4pO3JldHVybiB0fXRvSlNPTigpe2xldCB0PXttZXNzYWdlOnRoaXMubWVzc2FnZX07cmV0dXJuIHRoaXMubG9jYXRpb25zIT1udWxsJiYodC5sb2NhdGlvbnM9dGhpcy5sb2NhdGlvbnMpLHRoaXMucGF0aCE9bnVsbCYmKHQucGF0aD10aGlzLnBhdGgpLHRoaXMuZXh0ZW5zaW9ucyE9bnVsbCYmT2JqZWN0LmtleXModGhpcy5leHRlbnNpb25zKS5sZW5ndGg+MCYmKHQuZXh0ZW5zaW9ucz10aGlzLmV4dGVuc2lvbnMpLHR9fTtmdW5jdGlvbiBCZShlKXtyZXR1cm4gZT09PXZvaWQgMHx8ZS5sZW5ndGg9PT0wP3ZvaWQgMDplfWZ1bmN0aW9uIGQoZSx0LG4pe3JldHVybiBuZXcgVyhgU3ludGF4IEVycm9yOiAke259YCx7c291cmNlOmUscG9zaXRpb25zOlt0XX0pfXZhciBIOyhmdW5jdGlvbihlKXtlLlFVRVJZPVwiUVVFUllcIixlLk1VVEFUSU9OPVwiTVVUQVRJT05cIixlLlNVQlNDUklQVElPTj1cIlNVQlNDUklQVElPTlwiLGUuRklFTEQ9XCJGSUVMRFwiLGUuRlJBR01FTlRfREVGSU5JVElPTj1cIkZSQUdNRU5UX0RFRklOSVRJT05cIixlLkZSQUdNRU5UX1NQUkVBRD1cIkZSQUdNRU5UX1NQUkVBRFwiLGUuSU5MSU5FX0ZSQUdNRU5UPVwiSU5MSU5FX0ZSQUdNRU5UXCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPVwiVkFSSUFCTEVfREVGSU5JVElPTlwiLGUuU0NIRU1BPVwiU0NIRU1BXCIsZS5TQ0FMQVI9XCJTQ0FMQVJcIixlLk9CSkVDVD1cIk9CSkVDVFwiLGUuRklFTERfREVGSU5JVElPTj1cIkZJRUxEX0RFRklOSVRJT05cIixlLkFSR1VNRU5UX0RFRklOSVRJT049XCJBUkdVTUVOVF9ERUZJTklUSU9OXCIsZS5JTlRFUkZBQ0U9XCJJTlRFUkZBQ0VcIixlLlVOSU9OPVwiVU5JT05cIixlLkVOVU09XCJFTlVNXCIsZS5FTlVNX1ZBTFVFPVwiRU5VTV9WQUxVRVwiLGUuSU5QVVRfT0JKRUNUPVwiSU5QVVRfT0JKRUNUXCIsZS5JTlBVVF9GSUVMRF9ERUZJTklUSU9OPVwiSU5QVVRfRklFTERfREVGSU5JVElPTlwifSkoSHx8KEg9e30pKTt2YXIgYzsoZnVuY3Rpb24oZSl7ZS5OQU1FPVwiTmFtZVwiLGUuRE9DVU1FTlQ9XCJEb2N1bWVudFwiLGUuT1BFUkFUSU9OX0RFRklOSVRJT049XCJPcGVyYXRpb25EZWZpbml0aW9uXCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPVwiVmFyaWFibGVEZWZpbml0aW9uXCIsZS5TRUxFQ1RJT05fU0VUPVwiU2VsZWN0aW9uU2V0XCIsZS5GSUVMRD1cIkZpZWxkXCIsZS5BUkdVTUVOVD1cIkFyZ3VtZW50XCIsZS5GUkFHTUVOVF9TUFJFQUQ9XCJGcmFnbWVudFNwcmVhZFwiLGUuSU5MSU5FX0ZSQUdNRU5UPVwiSW5saW5lRnJhZ21lbnRcIixlLkZSQUdNRU5UX0RFRklOSVRJT049XCJGcmFnbWVudERlZmluaXRpb25cIixlLlZBUklBQkxFPVwiVmFyaWFibGVcIixlLklOVD1cIkludFZhbHVlXCIsZS5GTE9BVD1cIkZsb2F0VmFsdWVcIixlLlNUUklORz1cIlN0cmluZ1ZhbHVlXCIsZS5CT09MRUFOPVwiQm9vbGVhblZhbHVlXCIsZS5OVUxMPVwiTnVsbFZhbHVlXCIsZS5FTlVNPVwiRW51bVZhbHVlXCIsZS5MSVNUPVwiTGlzdFZhbHVlXCIsZS5PQkpFQ1Q9XCJPYmplY3RWYWx1ZVwiLGUuT0JKRUNUX0ZJRUxEPVwiT2JqZWN0RmllbGRcIixlLkRJUkVDVElWRT1cIkRpcmVjdGl2ZVwiLGUuTkFNRURfVFlQRT1cIk5hbWVkVHlwZVwiLGUuTElTVF9UWVBFPVwiTGlzdFR5cGVcIixlLk5PTl9OVUxMX1RZUEU9XCJOb25OdWxsVHlwZVwiLGUuU0NIRU1BX0RFRklOSVRJT049XCJTY2hlbWFEZWZpbml0aW9uXCIsZS5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OPVwiT3BlcmF0aW9uVHlwZURlZmluaXRpb25cIixlLlNDQUxBUl9UWVBFX0RFRklOSVRJT049XCJTY2FsYXJUeXBlRGVmaW5pdGlvblwiLGUuT0JKRUNUX1RZUEVfREVGSU5JVElPTj1cIk9iamVjdFR5cGVEZWZpbml0aW9uXCIsZS5GSUVMRF9ERUZJTklUSU9OPVwiRmllbGREZWZpbml0aW9uXCIsZS5JTlBVVF9WQUxVRV9ERUZJTklUSU9OPVwiSW5wdXRWYWx1ZURlZmluaXRpb25cIixlLklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT049XCJJbnRlcmZhY2VUeXBlRGVmaW5pdGlvblwiLGUuVU5JT05fVFlQRV9ERUZJTklUSU9OPVwiVW5pb25UeXBlRGVmaW5pdGlvblwiLGUuRU5VTV9UWVBFX0RFRklOSVRJT049XCJFbnVtVHlwZURlZmluaXRpb25cIixlLkVOVU1fVkFMVUVfREVGSU5JVElPTj1cIkVudW1WYWx1ZURlZmluaXRpb25cIixlLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT049XCJJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uXCIsZS5ESVJFQ1RJVkVfREVGSU5JVElPTj1cIkRpcmVjdGl2ZURlZmluaXRpb25cIixlLlNDSEVNQV9FWFRFTlNJT049XCJTY2hlbWFFeHRlbnNpb25cIixlLlNDQUxBUl9UWVBFX0VYVEVOU0lPTj1cIlNjYWxhclR5cGVFeHRlbnNpb25cIixlLk9CSkVDVF9UWVBFX0VYVEVOU0lPTj1cIk9iamVjdFR5cGVFeHRlbnNpb25cIixlLklOVEVSRkFDRV9UWVBFX0VYVEVOU0lPTj1cIkludGVyZmFjZVR5cGVFeHRlbnNpb25cIixlLlVOSU9OX1RZUEVfRVhURU5TSU9OPVwiVW5pb25UeXBlRXh0ZW5zaW9uXCIsZS5FTlVNX1RZUEVfRVhURU5TSU9OPVwiRW51bVR5cGVFeHRlbnNpb25cIixlLklOUFVUX09CSkVDVF9UWVBFX0VYVEVOU0lPTj1cIklucHV0T2JqZWN0VHlwZUV4dGVuc2lvblwifSkoY3x8KGM9e30pKTtmdW5jdGlvbiBVZShlKXtyZXR1cm4gZT09PTl8fGU9PT0zMn1mdW5jdGlvbiBMKGUpe3JldHVybiBlPj00OCYmZTw9NTd9ZnVuY3Rpb24gTWUoZSl7cmV0dXJuIGU+PTk3JiZlPD0xMjJ8fGU+PTY1JiZlPD05MH1mdW5jdGlvbiBoZShlKXtyZXR1cm4gTWUoZSl8fGU9PT05NX1mdW5jdGlvbiBZZShlKXtyZXR1cm4gTWUoZSl8fEwoZSl8fGU9PT05NX1mdW5jdGlvbiBqZShlKXt2YXIgdDtsZXQgbj1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixyPW51bGwsaT0tMTtmb3IobGV0IGE9MDthPGUubGVuZ3RoOysrYSl7dmFyIHM7bGV0IHU9ZVthXSxsPUZ0KHUpO2whPT11Lmxlbmd0aCYmKHI9KHM9cikhPT1udWxsJiZzIT09dm9pZCAwP3M6YSxpPWEsYSE9PTAmJmw8biYmKG49bCkpfXJldHVybiBlLm1hcCgoYSx1KT0+dT09PTA/YTphLnNsaWNlKG4pKS5zbGljZSgodD1yKSE9PW51bGwmJnQhPT12b2lkIDA/dDowLGkrMSl9ZnVuY3Rpb24gRnQoZSl7bGV0IHQ9MDtmb3IoO3Q8ZS5sZW5ndGgmJlVlKGUuY2hhckNvZGVBdCh0KSk7KSsrdDtyZXR1cm4gdH12YXIgbzsoZnVuY3Rpb24oZSl7ZS5TT0Y9XCI8U09GPlwiLGUuRU9GPVwiPEVPRj5cIixlLkJBTkc9XCIhXCIsZS5ET0xMQVI9XCIkXCIsZS5BTVA9XCImXCIsZS5QQVJFTl9MPVwiKFwiLGUuUEFSRU5fUj1cIilcIixlLlNQUkVBRD1cIi4uLlwiLGUuQ09MT049XCI6XCIsZS5FUVVBTFM9XCI9XCIsZS5BVD1cIkBcIixlLkJSQUNLRVRfTD1cIltcIixlLkJSQUNLRVRfUj1cIl1cIixlLkJSQUNFX0w9XCJ7XCIsZS5QSVBFPVwifFwiLGUuQlJBQ0VfUj1cIn1cIixlLk5BTUU9XCJOYW1lXCIsZS5JTlQ9XCJJbnRcIixlLkZMT0FUPVwiRmxvYXRcIixlLlNUUklORz1cIlN0cmluZ1wiLGUuQkxPQ0tfU1RSSU5HPVwiQmxvY2tTdHJpbmdcIixlLkNPTU1FTlQ9XCJDb21tZW50XCJ9KShvfHwobz17fSkpO3ZhciB6PWNsYXNze2NvbnN0cnVjdG9yKHQpe2xldCBuPW5ldyBWKG8uU09GLDAsMCwwLDApO3RoaXMuc291cmNlPXQsdGhpcy5sYXN0VG9rZW49bix0aGlzLnRva2VuPW4sdGhpcy5saW5lPTEsdGhpcy5saW5lU3RhcnQ9MH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVyblwiTGV4ZXJcIn1hZHZhbmNlKCl7cmV0dXJuIHRoaXMubGFzdFRva2VuPXRoaXMudG9rZW4sdGhpcy50b2tlbj10aGlzLmxvb2thaGVhZCgpfWxvb2thaGVhZCgpe2xldCB0PXRoaXMudG9rZW47aWYodC5raW5kIT09by5FT0YpZG8gaWYodC5uZXh0KXQ9dC5uZXh0O2Vsc2V7bGV0IG49d3QodGhpcyx0LmVuZCk7dC5uZXh0PW4sbi5wcmV2PXQsdD1ufXdoaWxlKHQua2luZD09PW8uQ09NTUVOVCk7cmV0dXJuIHR9fTtmdW5jdGlvbiAkZShlKXtyZXR1cm4gZT09PW8uQkFOR3x8ZT09PW8uRE9MTEFSfHxlPT09by5BTVB8fGU9PT1vLlBBUkVOX0x8fGU9PT1vLlBBUkVOX1J8fGU9PT1vLlNQUkVBRHx8ZT09PW8uQ09MT058fGU9PT1vLkVRVUFMU3x8ZT09PW8uQVR8fGU9PT1vLkJSQUNLRVRfTHx8ZT09PW8uQlJBQ0tFVF9SfHxlPT09by5CUkFDRV9MfHxlPT09by5QSVBFfHxlPT09by5CUkFDRV9SfWZ1bmN0aW9uIFIoZSl7cmV0dXJuIGU+PTAmJmU8PTU1Mjk1fHxlPj01NzM0NCYmZTw9MTExNDExMX1mdW5jdGlvbiBLKGUsdCl7cmV0dXJuIEplKGUuY2hhckNvZGVBdCh0KSkmJlhlKGUuY2hhckNvZGVBdCh0KzEpKX1mdW5jdGlvbiBKZShlKXtyZXR1cm4gZT49NTUyOTYmJmU8PTU2MzE5fWZ1bmN0aW9uIFhlKGUpe3JldHVybiBlPj01NjMyMCYmZTw9NTczNDN9ZnVuY3Rpb24gUyhlLHQpe2xldCBuPWUuc291cmNlLmJvZHkuY29kZVBvaW50QXQodCk7aWYobj09PXZvaWQgMClyZXR1cm4gby5FT0Y7aWYobj49MzImJm48PTEyNil7bGV0IHI9U3RyaW5nLmZyb21Db2RlUG9pbnQobik7cmV0dXJuIHI9PT0nXCInP2AnXCInYDpgXCIke3J9XCJgfXJldHVyblwiVStcIituLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDQsXCIwXCIpfWZ1bmN0aW9uIG0oZSx0LG4scixpKXtsZXQgcz1lLmxpbmUsYT0xK24tZS5saW5lU3RhcnQ7cmV0dXJuIG5ldyBWKHQsbixyLHMsYSxpKX1mdW5jdGlvbiB3dChlLHQpe2xldCBuPWUuc291cmNlLmJvZHkscj1uLmxlbmd0aCxpPXQ7Zm9yKDtpPHI7KXtsZXQgcz1uLmNoYXJDb2RlQXQoaSk7c3dpdGNoKHMpe2Nhc2UgNjUyNzk6Y2FzZSA5OmNhc2UgMzI6Y2FzZSA0NDorK2k7Y29udGludWU7Y2FzZSAxMDorK2ksKytlLmxpbmUsZS5saW5lU3RhcnQ9aTtjb250aW51ZTtjYXNlIDEzOm4uY2hhckNvZGVBdChpKzEpPT09MTA/aSs9MjorK2ksKytlLmxpbmUsZS5saW5lU3RhcnQ9aTtjb250aW51ZTtjYXNlIDM1OnJldHVybiBWdChlLGkpO2Nhc2UgMzM6cmV0dXJuIG0oZSxvLkJBTkcsaSxpKzEpO2Nhc2UgMzY6cmV0dXJuIG0oZSxvLkRPTExBUixpLGkrMSk7Y2FzZSAzODpyZXR1cm4gbShlLG8uQU1QLGksaSsxKTtjYXNlIDQwOnJldHVybiBtKGUsby5QQVJFTl9MLGksaSsxKTtjYXNlIDQxOnJldHVybiBtKGUsby5QQVJFTl9SLGksaSsxKTtjYXNlIDQ2OmlmKG4uY2hhckNvZGVBdChpKzEpPT09NDYmJm4uY2hhckNvZGVBdChpKzIpPT09NDYpcmV0dXJuIG0oZSxvLlNQUkVBRCxpLGkrMyk7YnJlYWs7Y2FzZSA1ODpyZXR1cm4gbShlLG8uQ09MT04saSxpKzEpO2Nhc2UgNjE6cmV0dXJuIG0oZSxvLkVRVUFMUyxpLGkrMSk7Y2FzZSA2NDpyZXR1cm4gbShlLG8uQVQsaSxpKzEpO2Nhc2UgOTE6cmV0dXJuIG0oZSxvLkJSQUNLRVRfTCxpLGkrMSk7Y2FzZSA5MzpyZXR1cm4gbShlLG8uQlJBQ0tFVF9SLGksaSsxKTtjYXNlIDEyMzpyZXR1cm4gbShlLG8uQlJBQ0VfTCxpLGkrMSk7Y2FzZSAxMjQ6cmV0dXJuIG0oZSxvLlBJUEUsaSxpKzEpO2Nhc2UgMTI1OnJldHVybiBtKGUsby5CUkFDRV9SLGksaSsxKTtjYXNlIDM0OnJldHVybiBuLmNoYXJDb2RlQXQoaSsxKT09PTM0JiZuLmNoYXJDb2RlQXQoaSsyKT09PTM0P0d0KGUsaSk6VXQoZSxpKX1pZihMKHMpfHxzPT09NDUpcmV0dXJuIEJ0KGUsaSxzKTtpZihoZShzKSlyZXR1cm4gJHQoZSxpKTt0aHJvdyBkKGUuc291cmNlLGkscz09PTM5P2BVbmV4cGVjdGVkIHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXIgKCcpLCBkaWQgeW91IG1lYW4gdG8gdXNlIGEgZG91YmxlIHF1b3RlIChcIik/YDpSKHMpfHxLKG4saSk/YFVuZXhwZWN0ZWQgY2hhcmFjdGVyOiAke1MoZSxpKX0uYDpgSW52YWxpZCBjaGFyYWN0ZXI6ICR7UyhlLGkpfS5gKX1yZXR1cm4gbShlLG8uRU9GLHIscil9ZnVuY3Rpb24gVnQoZSx0KXtsZXQgbj1lLnNvdXJjZS5ib2R5LHI9bi5sZW5ndGgsaT10KzE7Zm9yKDtpPHI7KXtsZXQgcz1uLmNoYXJDb2RlQXQoaSk7aWYocz09PTEwfHxzPT09MTMpYnJlYWs7aWYoUihzKSkrK2k7ZWxzZSBpZihLKG4saSkpaSs9MjtlbHNlIGJyZWFrfXJldHVybiBtKGUsby5DT01NRU5ULHQsaSxuLnNsaWNlKHQrMSxpKSl9ZnVuY3Rpb24gQnQoZSx0LG4pe2xldCByPWUuc291cmNlLmJvZHksaT10LHM9bixhPSExO2lmKHM9PT00NSYmKHM9ci5jaGFyQ29kZUF0KCsraSkpLHM9PT00OCl7aWYocz1yLmNoYXJDb2RlQXQoKytpKSxMKHMpKXRocm93IGQoZS5zb3VyY2UsaSxgSW52YWxpZCBudW1iZXIsIHVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgMDogJHtTKGUsaSl9LmApfWVsc2UgaT1kZShlLGkscykscz1yLmNoYXJDb2RlQXQoaSk7aWYocz09PTQ2JiYoYT0hMCxzPXIuY2hhckNvZGVBdCgrK2kpLGk9ZGUoZSxpLHMpLHM9ci5jaGFyQ29kZUF0KGkpKSwocz09PTY5fHxzPT09MTAxKSYmKGE9ITAscz1yLmNoYXJDb2RlQXQoKytpKSwocz09PTQzfHxzPT09NDUpJiYocz1yLmNoYXJDb2RlQXQoKytpKSksaT1kZShlLGkscykscz1yLmNoYXJDb2RlQXQoaSkpLHM9PT00Nnx8aGUocykpdGhyb3cgZChlLnNvdXJjZSxpLGBJbnZhbGlkIG51bWJlciwgZXhwZWN0ZWQgZGlnaXQgYnV0IGdvdDogJHtTKGUsaSl9LmApO3JldHVybiBtKGUsYT9vLkZMT0FUOm8uSU5ULHQsaSxyLnNsaWNlKHQsaSkpfWZ1bmN0aW9uIGRlKGUsdCxuKXtpZighTChuKSl0aHJvdyBkKGUuc291cmNlLHQsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke1MoZSx0KX0uYCk7bGV0IHI9ZS5zb3VyY2UuYm9keSxpPXQrMTtmb3IoO0woci5jaGFyQ29kZUF0KGkpKTspKytpO3JldHVybiBpfWZ1bmN0aW9uIFV0KGUsdCl7bGV0IG49ZS5zb3VyY2UuYm9keSxyPW4ubGVuZ3RoLGk9dCsxLHM9aSxhPVwiXCI7Zm9yKDtpPHI7KXtsZXQgdT1uLmNoYXJDb2RlQXQoaSk7aWYodT09PTM0KXJldHVybiBhKz1uLnNsaWNlKHMsaSksbShlLG8uU1RSSU5HLHQsaSsxLGEpO2lmKHU9PT05Mil7YSs9bi5zbGljZShzLGkpO2xldCBsPW4uY2hhckNvZGVBdChpKzEpPT09MTE3P24uY2hhckNvZGVBdChpKzIpPT09MTIzP010KGUsaSk6WXQoZSxpKTpqdChlLGkpO2ErPWwudmFsdWUsaSs9bC5zaXplLHM9aTtjb250aW51ZX1pZih1PT09MTB8fHU9PT0xMylicmVhaztpZihSKHUpKSsraTtlbHNlIGlmKEsobixpKSlpKz0yO2Vsc2UgdGhyb3cgZChlLnNvdXJjZSxpLGBJbnZhbGlkIGNoYXJhY3RlciB3aXRoaW4gU3RyaW5nOiAke1MoZSxpKX0uYCl9dGhyb3cgZChlLnNvdXJjZSxpLFwiVW50ZXJtaW5hdGVkIHN0cmluZy5cIil9ZnVuY3Rpb24gTXQoZSx0KXtsZXQgbj1lLnNvdXJjZS5ib2R5LHI9MCxpPTM7Zm9yKDtpPDEyOyl7bGV0IHM9bi5jaGFyQ29kZUF0KHQraSsrKTtpZihzPT09MTI1KXtpZihpPDV8fCFSKHIpKWJyZWFrO3JldHVybnt2YWx1ZTpTdHJpbmcuZnJvbUNvZGVQb2ludChyKSxzaXplOml9fWlmKHI9cjw8NHxVKHMpLHI8MClicmVha310aHJvdyBkKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6IFwiJHtuLnNsaWNlKHQsdCtpKX1cIi5gKX1mdW5jdGlvbiBZdChlLHQpe2xldCBuPWUuc291cmNlLmJvZHkscj1HZShuLHQrMik7aWYoUihyKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQociksc2l6ZTo2fTtpZihKZShyKSYmbi5jaGFyQ29kZUF0KHQrNik9PT05MiYmbi5jaGFyQ29kZUF0KHQrNyk9PT0xMTcpe2xldCBpPUdlKG4sdCs4KTtpZihYZShpKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQocixpKSxzaXplOjEyfX10aHJvdyBkKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6IFwiJHtuLnNsaWNlKHQsdCs2KX1cIi5gKX1mdW5jdGlvbiBHZShlLHQpe3JldHVybiBVKGUuY2hhckNvZGVBdCh0KSk8PDEyfFUoZS5jaGFyQ29kZUF0KHQrMSkpPDw4fFUoZS5jaGFyQ29kZUF0KHQrMikpPDw0fFUoZS5jaGFyQ29kZUF0KHQrMykpfWZ1bmN0aW9uIFUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz9lLTQ4OmU+PTY1JiZlPD03MD9lLTU1OmU+PTk3JiZlPD0xMDI/ZS04NzotMX1mdW5jdGlvbiBqdChlLHQpe2xldCBuPWUuc291cmNlLmJvZHk7c3dpdGNoKG4uY2hhckNvZGVBdCh0KzEpKXtjYXNlIDM0OnJldHVybnt2YWx1ZTonXCInLHNpemU6Mn07Y2FzZSA5MjpyZXR1cm57dmFsdWU6XCJcXFxcXCIsc2l6ZToyfTtjYXNlIDQ3OnJldHVybnt2YWx1ZTpcIi9cIixzaXplOjJ9O2Nhc2UgOTg6cmV0dXJue3ZhbHVlOlwiXFxiXCIsc2l6ZToyfTtjYXNlIDEwMjpyZXR1cm57dmFsdWU6XCJcXGZcIixzaXplOjJ9O2Nhc2UgMTEwOnJldHVybnt2YWx1ZTpgXG5gLHNpemU6Mn07Y2FzZSAxMTQ6cmV0dXJue3ZhbHVlOlwiXFxyXCIsc2l6ZToyfTtjYXNlIDExNjpyZXR1cm57dmFsdWU6XCJcdFwiLHNpemU6Mn19dGhyb3cgZChlLnNvdXJjZSx0LGBJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2U6IFwiJHtuLnNsaWNlKHQsdCsyKX1cIi5gKX1mdW5jdGlvbiBHdChlLHQpe2xldCBuPWUuc291cmNlLmJvZHkscj1uLmxlbmd0aCxpPWUubGluZVN0YXJ0LHM9dCszLGE9cyx1PVwiXCIsbD1bXTtmb3IoO3M8cjspe2xldCBUPW4uY2hhckNvZGVBdChzKTtpZihUPT09MzQmJm4uY2hhckNvZGVBdChzKzEpPT09MzQmJm4uY2hhckNvZGVBdChzKzIpPT09MzQpe3UrPW4uc2xpY2UoYSxzKSxsLnB1c2godSk7bGV0IGg9bShlLG8uQkxPQ0tfU1RSSU5HLHQscyszLGplKGwpLmpvaW4oYFxuYCkpO3JldHVybiBlLmxpbmUrPWwubGVuZ3RoLTEsZS5saW5lU3RhcnQ9aSxofWlmKFQ9PT05MiYmbi5jaGFyQ29kZUF0KHMrMSk9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMik9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMyk9PT0zNCl7dSs9bi5zbGljZShhLHMpLGE9cysxLHMrPTQ7Y29udGludWV9aWYoVD09PTEwfHxUPT09MTMpe3UrPW4uc2xpY2UoYSxzKSxsLnB1c2godSksVD09PTEzJiZuLmNoYXJDb2RlQXQocysxKT09PTEwP3MrPTI6KytzLHU9XCJcIixhPXMsaT1zO2NvbnRpbnVlfWlmKFIoVCkpKytzO2Vsc2UgaWYoSyhuLHMpKXMrPTI7ZWxzZSB0aHJvdyBkKGUuc291cmNlLHMsYEludmFsaWQgY2hhcmFjdGVyIHdpdGhpbiBTdHJpbmc6ICR7UyhlLHMpfS5gKX10aHJvdyBkKGUuc291cmNlLHMsXCJVbnRlcm1pbmF0ZWQgc3RyaW5nLlwiKX1mdW5jdGlvbiAkdChlLHQpe2xldCBuPWUuc291cmNlLmJvZHkscj1uLmxlbmd0aCxpPXQrMTtmb3IoO2k8cjspe2xldCBzPW4uY2hhckNvZGVBdChpKTtpZihZZShzKSkrK2k7ZWxzZSBicmVha31yZXR1cm4gbShlLG8uTkFNRSx0LGksbi5zbGljZSh0LGkpKX1mdW5jdGlvbiBaKGUsdCl7aWYoISEhZSl0aHJvdyBuZXcgRXJyb3IodCl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIHRlKGUsW10pfWZ1bmN0aW9uIHRlKGUsdCl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSk7Y2FzZVwiZnVuY3Rpb25cIjpyZXR1cm4gZS5uYW1lP2BbZnVuY3Rpb24gJHtlLm5hbWV9XWA6XCJbZnVuY3Rpb25dXCI7Y2FzZVwib2JqZWN0XCI6cmV0dXJuIEp0KGUsdCk7ZGVmYXVsdDpyZXR1cm4gU3RyaW5nKGUpfX1mdW5jdGlvbiBKdChlLHQpe2lmKGU9PT1udWxsKXJldHVyblwibnVsbFwiO2lmKHQuaW5jbHVkZXMoZSkpcmV0dXJuXCJbQ2lyY3VsYXJdXCI7bGV0IG49Wy4uLnQsZV07aWYoWHQoZSkpe2xldCByPWUudG9KU09OKCk7aWYociE9PWUpcmV0dXJuIHR5cGVvZiByPT1cInN0cmluZ1wiP3I6dGUocixuKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIFF0KGUsbik7cmV0dXJuIHF0KGUsbil9ZnVuY3Rpb24gWHQoZSl7cmV0dXJuIHR5cGVvZiBlLnRvSlNPTj09XCJmdW5jdGlvblwifWZ1bmN0aW9uIHF0KGUsdCl7bGV0IG49T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09MD9cInt9XCI6dC5sZW5ndGg+Mj9cIltcIitXdChlKStcIl1cIjpcInsgXCIrbi5tYXAoKFtpLHNdKT0+aStcIjogXCIrdGUocyx0KSkuam9pbihcIiwgXCIpK1wiIH1cIn1mdW5jdGlvbiBRdChlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm5cIltdXCI7aWYodC5sZW5ndGg+MilyZXR1cm5cIltBcnJheV1cIjtsZXQgbj1NYXRoLm1pbigxMCxlLmxlbmd0aCkscj1lLmxlbmd0aC1uLGk9W107Zm9yKGxldCBzPTA7czxuOysrcylpLnB1c2godGUoZVtzXSx0KSk7cmV0dXJuIHI9PT0xP2kucHVzaChcIi4uLiAxIG1vcmUgaXRlbVwiKTpyPjEmJmkucHVzaChgLi4uICR7cn0gbW9yZSBpdGVtc2ApLFwiW1wiK2kuam9pbihcIiwgXCIpK1wiXVwifWZ1bmN0aW9uIFd0KGUpe2xldCB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5yZXBsYWNlKC9eXFxbb2JqZWN0IC8sXCJcIikucmVwbGFjZSgvXSQvLFwiXCIpO2lmKHQ9PT1cIk9iamVjdFwiJiZ0eXBlb2YgZS5jb25zdHJ1Y3Rvcj09XCJmdW5jdGlvblwiKXtsZXQgbj1lLmNvbnN0cnVjdG9yLm5hbWU7aWYodHlwZW9mIG49PVwic3RyaW5nXCImJm4hPT1cIlwiKXJldHVybiBufXJldHVybiB0fXZhciBxZT1nbG9iYWxUaGlzLnByb2Nlc3MmJmdsb2JhbFRoaXMucHJvY2Vzcy5lbnYuTk9ERV9FTlY9PT1cInByb2R1Y3Rpb25cIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09XCJvYmplY3RcIiYmdCE9PW51bGwpe3ZhciByO2xldCBpPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KHI9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm5hbWU7aWYoaT09PXMpe2xldCBhPWVlKHQpO3Rocm93IG5ldyBFcnJvcihgQ2Fubm90IHVzZSAke2l9IFwiJHthfVwiIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uXG5cbkVuc3VyZSB0aGF0IHRoZXJlIGlzIG9ubHkgb25lIGluc3RhbmNlIG9mIFwiZ3JhcGhxbFwiIGluIHRoZSBub2RlX21vZHVsZXNcbmRpcmVjdG9yeS4gSWYgZGlmZmVyZW50IHZlcnNpb25zIG9mIFwiZ3JhcGhxbFwiIGFyZSB0aGUgZGVwZW5kZW5jaWVzIG9mIG90aGVyXG5yZWxpZWQgb24gbW9kdWxlcywgdXNlIFwicmVzb2x1dGlvbnNcIiB0byBlbnN1cmUgb25seSBvbmUgdmVyc2lvbiBpcyBpbnN0YWxsZWQuXG5cbmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9uc1xuXG5EdXBsaWNhdGUgXCJncmFwaHFsXCIgbW9kdWxlcyBjYW5ub3QgYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lIHNpbmNlIGRpZmZlcmVudFxudmVyc2lvbnMgbWF5IGhhdmUgZGlmZmVyZW50IGNhcGFiaWxpdGllcyBhbmQgYmVoYXZpb3IuIFRoZSBkYXRhIGZyb20gb25lXG52ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmRcbnNwdXJpb3VzIHJlc3VsdHMuYCl9fXJldHVybiExfTt2YXIgTT1jbGFzc3tjb25zdHJ1Y3Rvcih0LG49XCJHcmFwaFFMIHJlcXVlc3RcIixyPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09XCJzdHJpbmdcInx8WighMSxgQm9keSBtdXN0IGJlIGEgc3RyaW5nLiBSZWNlaXZlZDogJHtlZSh0KX0uYCksdGhpcy5ib2R5PXQsdGhpcy5uYW1lPW4sdGhpcy5sb2NhdGlvbk9mZnNldD1yLHRoaXMubG9jYXRpb25PZmZzZXQubGluZT4wfHxaKCExLFwibGluZSBpbiBsb2NhdGlvbk9mZnNldCBpcyAxLWluZGV4ZWQgYW5kIG11c3QgYmUgcG9zaXRpdmUuXCIpLHRoaXMubG9jYXRpb25PZmZzZXQuY29sdW1uPjB8fFooITEsXCJjb2x1bW4gaW4gbG9jYXRpb25PZmZzZXQgaXMgMS1pbmRleGVkIGFuZCBtdXN0IGJlIHBvc2l0aXZlLlwiKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVyblwiU291cmNlXCJ9fTtmdW5jdGlvbiBRZShlKXtyZXR1cm4gcWUoZSxNKX1mdW5jdGlvbiBXZShlLHQpe3JldHVybiBuZXcgbWUoZSx0KS5wYXJzZURvY3VtZW50KCl9dmFyIG1lPWNsYXNze2NvbnN0cnVjdG9yKHQsbj17fSl7bGV0IHI9UWUodCk/dDpuZXcgTSh0KTt0aGlzLl9sZXhlcj1uZXcgeihyKSx0aGlzLl9vcHRpb25zPW4sdGhpcy5fdG9rZW5Db3VudGVyPTB9cGFyc2VOYW1lKCl7bGV0IHQ9dGhpcy5leHBlY3RUb2tlbihvLk5BTUUpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLk5BTUUsdmFsdWU6dC52YWx1ZX0pfXBhcnNlRG9jdW1lbnQoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOmMuRE9DVU1FTlQsZGVmaW5pdGlvbnM6dGhpcy5tYW55KG8uU09GLHRoaXMucGFyc2VEZWZpbml0aW9uLG8uRU9GKX0pfXBhcnNlRGVmaW5pdGlvbigpe2lmKHRoaXMucGVlayhvLkJSQUNFX0wpKXJldHVybiB0aGlzLnBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpO2xldCB0PXRoaXMucGVla0Rlc2NyaXB0aW9uKCksbj10P3RoaXMuX2xleGVyLmxvb2thaGVhZCgpOnRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PW8uTkFNRSl7c3dpdGNoKG4udmFsdWUpe2Nhc2VcInNjaGVtYVwiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRGVmaW5pdGlvbigpO2Nhc2VcInNjYWxhclwiOnJldHVybiB0aGlzLnBhcnNlU2NhbGFyVHlwZURlZmluaXRpb24oKTtjYXNlXCJ0eXBlXCI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2VcImludGVyZmFjZVwiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZURlZmluaXRpb24oKTtjYXNlXCJ1bmlvblwiOnJldHVybiB0aGlzLnBhcnNlVW5pb25UeXBlRGVmaW5pdGlvbigpO2Nhc2VcImVudW1cIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRGVmaW5pdGlvbigpO2Nhc2VcImlucHV0XCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCk7Y2FzZVwiZGlyZWN0aXZlXCI6cmV0dXJuIHRoaXMucGFyc2VEaXJlY3RpdmVEZWZpbml0aW9uKCl9aWYodCl0aHJvdyBkKHRoaXMuX2xleGVyLnNvdXJjZSx0aGlzLl9sZXhlci50b2tlbi5zdGFydCxcIlVuZXhwZWN0ZWQgZGVzY3JpcHRpb24sIGRlc2NyaXB0aW9ucyBhcmUgc3VwcG9ydGVkIG9ubHkgb24gdHlwZSBkZWZpbml0aW9ucy5cIik7c3dpdGNoKG4udmFsdWUpe2Nhc2VcInF1ZXJ5XCI6Y2FzZVwibXV0YXRpb25cIjpjYXNlXCJzdWJzY3JpcHRpb25cIjpyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjYXNlXCJmcmFnbWVudFwiOnJldHVybiB0aGlzLnBhcnNlRnJhZ21lbnREZWZpbml0aW9uKCk7Y2FzZVwiZXh0ZW5kXCI6cmV0dXJuIHRoaXMucGFyc2VUeXBlU3lzdGVtRXh0ZW5zaW9uKCl9fXRocm93IHRoaXMudW5leHBlY3RlZChuKX1wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbjtpZih0aGlzLnBlZWsoby5CUkFDRV9MKSlyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246Qy5RVUVSWSxuYW1lOnZvaWQgMCx2YXJpYWJsZURlZmluaXRpb25zOltdLGRpcmVjdGl2ZXM6W10sc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pO2xldCBuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCkscjtyZXR1cm4gdGhpcy5wZWVrKG8uTkFNRSkmJihyPXRoaXMucGFyc2VOYW1lKCkpLHRoaXMubm9kZSh0LHtraW5kOmMuT1BFUkFUSU9OX0RFRklOSVRJT04sb3BlcmF0aW9uOm4sbmFtZTpyLHZhcmlhYmxlRGVmaW5pdGlvbnM6dGhpcy5wYXJzZVZhcmlhYmxlRGVmaW5pdGlvbnMoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSl9cGFyc2VPcGVyYXRpb25UeXBlKCl7bGV0IHQ9dGhpcy5leHBlY3RUb2tlbihvLk5BTUUpO3N3aXRjaCh0LnZhbHVlKXtjYXNlXCJxdWVyeVwiOnJldHVybiBDLlFVRVJZO2Nhc2VcIm11dGF0aW9uXCI6cmV0dXJuIEMuTVVUQVRJT047Y2FzZVwic3Vic2NyaXB0aW9uXCI6cmV0dXJuIEMuU1VCU0NSSVBUSU9OfXRocm93IHRoaXMudW5leHBlY3RlZCh0KX1wYXJzZVZhcmlhYmxlRGVmaW5pdGlvbnMoKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkoby5QQVJFTl9MLHRoaXMucGFyc2VWYXJpYWJsZURlZmluaXRpb24sby5QQVJFTl9SKX1wYXJzZVZhcmlhYmxlRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6Yy5WQVJJQUJMRV9ERUZJTklUSU9OLHZhcmlhYmxlOnRoaXMucGFyc2VWYXJpYWJsZSgpLHR5cGU6KHRoaXMuZXhwZWN0VG9rZW4oby5DT0xPTiksdGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSksZGVmYXVsdFZhbHVlOnRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihvLkVRVUFMUyk/dGhpcy5wYXJzZUNvbnN0VmFsdWVMaXRlcmFsKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpfSl9cGFyc2VWYXJpYWJsZSgpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKG8uRE9MTEFSKSx0aGlzLm5vZGUodCx7a2luZDpjLlZBUklBQkxFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKX0pfXBhcnNlU2VsZWN0aW9uU2V0KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpjLlNFTEVDVElPTl9TRVQsc2VsZWN0aW9uczp0aGlzLm1hbnkoby5CUkFDRV9MLHRoaXMucGFyc2VTZWxlY3Rpb24sby5CUkFDRV9SKX0pfXBhcnNlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhvLlNQUkVBRCk/dGhpcy5wYXJzZUZyYWdtZW50KCk6dGhpcy5wYXJzZUZpZWxkKCl9cGFyc2VGaWVsZCgpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZU5hbWUoKSxyLGk7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihvLkNPTE9OKT8ocj1uLGk9dGhpcy5wYXJzZU5hbWUoKSk6aT1uLHRoaXMubm9kZSh0LHtraW5kOmMuRklFTEQsYWxpYXM6cixuYW1lOmksYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHMoITEpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBlZWsoby5CUkFDRV9MKT90aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCk6dm9pZCAwfSl9cGFyc2VBcmd1bWVudHModCl7bGV0IG49dD90aGlzLnBhcnNlQ29uc3RBcmd1bWVudDp0aGlzLnBhcnNlQXJndW1lbnQ7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KG8uUEFSRU5fTCxuLG8uUEFSRU5fUil9cGFyc2VBcmd1bWVudCh0PSExKXtsZXQgbj10aGlzLl9sZXhlci50b2tlbixyPXRoaXMucGFyc2VOYW1lKCk7cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4oby5DT0xPTiksdGhpcy5ub2RlKG4se2tpbmQ6Yy5BUkdVTUVOVCxuYW1lOnIsdmFsdWU6dGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCh0KX0pfXBhcnNlQ29uc3RBcmd1bWVudCgpe3JldHVybiB0aGlzLnBhcnNlQXJndW1lbnQoITApfXBhcnNlRnJhZ21lbnQoKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdFRva2VuKG8uU1BSRUFEKTtsZXQgbj10aGlzLmV4cGVjdE9wdGlvbmFsS2V5d29yZChcIm9uXCIpO3JldHVybiFuJiZ0aGlzLnBlZWsoby5OQU1FKT90aGlzLm5vZGUodCx7a2luZDpjLkZSQUdNRU5UX1NQUkVBRCxuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKX0pOnRoaXMubm9kZSh0LHtraW5kOmMuSU5MSU5FX0ZSQUdNRU5ULHR5cGVDb25kaXRpb246bj90aGlzLnBhcnNlTmFtZWRUeXBlKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdEtleXdvcmQoXCJmcmFnbWVudFwiKSx0aGlzLl9vcHRpb25zLmFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM9PT0hMD90aGlzLm5vZGUodCx7a2luZDpjLkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLHR5cGVDb25kaXRpb246KHRoaXMuZXhwZWN0S2V5d29yZChcIm9uXCIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pOnRoaXMubm9kZSh0LHtraW5kOmMuRlJBR01FTlRfREVGSU5JVElPTixuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSx0eXBlQ29uZGl0aW9uOih0aGlzLmV4cGVjdEtleXdvcmQoXCJvblwiKSx0aGlzLnBhcnNlTmFtZWRUeXBlKCkpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50TmFtZSgpe2lmKHRoaXMuX2xleGVyLnRva2VuLnZhbHVlPT09XCJvblwiKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLnBhcnNlTmFtZSgpfXBhcnNlVmFsdWVMaXRlcmFsKHQpe2xldCBuPXRoaXMuX2xleGVyLnRva2VuO3N3aXRjaChuLmtpbmQpe2Nhc2Ugby5CUkFDS0VUX0w6cmV0dXJuIHRoaXMucGFyc2VMaXN0KHQpO2Nhc2Ugby5CUkFDRV9MOnJldHVybiB0aGlzLnBhcnNlT2JqZWN0KHQpO2Nhc2Ugby5JTlQ6cmV0dXJuIHRoaXMuYWR2YW5jZUxleGVyKCksdGhpcy5ub2RlKG4se2tpbmQ6Yy5JTlQsdmFsdWU6bi52YWx1ZX0pO2Nhc2Ugby5GTE9BVDpyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUobix7a2luZDpjLkZMT0FULHZhbHVlOm4udmFsdWV9KTtjYXNlIG8uU1RSSU5HOmNhc2Ugby5CTE9DS19TVFJJTkc6cmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKCk7Y2FzZSBvLk5BTUU6c3dpdGNoKHRoaXMuYWR2YW5jZUxleGVyKCksbi52YWx1ZSl7Y2FzZVwidHJ1ZVwiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpjLkJPT0xFQU4sdmFsdWU6ITB9KTtjYXNlXCJmYWxzZVwiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpjLkJPT0xFQU4sdmFsdWU6ITF9KTtjYXNlXCJudWxsXCI6cmV0dXJuIHRoaXMubm9kZShuLHtraW5kOmMuTlVMTH0pO2RlZmF1bHQ6cmV0dXJuIHRoaXMubm9kZShuLHtraW5kOmMuRU5VTSx2YWx1ZTpuLnZhbHVlfSl9Y2FzZSBvLkRPTExBUjppZih0KWlmKHRoaXMuZXhwZWN0VG9rZW4oby5ET0xMQVIpLHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT1vLk5BTUUpe2xldCByPXRoaXMuX2xleGVyLnRva2VuLnZhbHVlO3Rocm93IGQodGhpcy5fbGV4ZXIuc291cmNlLG4uc3RhcnQsYFVuZXhwZWN0ZWQgdmFyaWFibGUgXCIkJHtyfVwiIGluIGNvbnN0YW50IHZhbHVlLmApfWVsc2UgdGhyb3cgdGhpcy51bmV4cGVjdGVkKG4pO3JldHVybiB0aGlzLnBhcnNlVmFyaWFibGUoKTtkZWZhdWx0OnRocm93IHRoaXMudW5leHBlY3RlZCgpfX1wYXJzZUNvbnN0VmFsdWVMaXRlcmFsKCl7cmV0dXJuIHRoaXMucGFyc2VWYWx1ZUxpdGVyYWwoITApfXBhcnNlU3RyaW5nTGl0ZXJhbCgpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZSh0LHtraW5kOmMuU1RSSU5HLHZhbHVlOnQudmFsdWUsYmxvY2s6dC5raW5kPT09by5CTE9DS19TVFJJTkd9KX1wYXJzZUxpc3QodCl7bGV0IG49KCk9PnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpjLkxJU1QsdmFsdWVzOnRoaXMuYW55KG8uQlJBQ0tFVF9MLG4sby5CUkFDS0VUX1IpfSl9cGFyc2VPYmplY3QodCl7bGV0IG49KCk9PnRoaXMucGFyc2VPYmplY3RGaWVsZCh0KTtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOmMuT0JKRUNULGZpZWxkczp0aGlzLmFueShvLkJSQUNFX0wsbixvLkJSQUNFX1IpfSl9cGFyc2VPYmplY3RGaWVsZCh0KXtsZXQgbj10aGlzLl9sZXhlci50b2tlbixyPXRoaXMucGFyc2VOYW1lKCk7cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4oby5DT0xPTiksdGhpcy5ub2RlKG4se2tpbmQ6Yy5PQkpFQ1RfRklFTEQsbmFtZTpyLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZURpcmVjdGl2ZXModCl7bGV0IG49W107Zm9yKDt0aGlzLnBlZWsoby5BVCk7KW4ucHVzaCh0aGlzLnBhcnNlRGlyZWN0aXZlKHQpKTtyZXR1cm4gbn1wYXJzZUNvbnN0RGlyZWN0aXZlcygpe3JldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlcyghMCl9cGFyc2VEaXJlY3RpdmUodCl7bGV0IG49dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4oby5BVCksdGhpcy5ub2RlKG4se2tpbmQ6Yy5ESVJFQ1RJVkUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpLGFyZ3VtZW50czp0aGlzLnBhcnNlQXJndW1lbnRzKHQpfSl9cGFyc2VUeXBlUmVmZXJlbmNlKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbjtpZih0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oby5CUkFDS0VUX0wpKXtsZXQgcj10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO3RoaXMuZXhwZWN0VG9rZW4oby5CUkFDS0VUX1IpLG49dGhpcy5ub2RlKHQse2tpbmQ6Yy5MSVNUX1RZUEUsdHlwZTpyfSl9ZWxzZSBuPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKG8uQkFORyk/dGhpcy5ub2RlKHQse2tpbmQ6Yy5OT05fTlVMTF9UWVBFLHR5cGU6bn0pOm59cGFyc2VOYW1lZFR5cGUoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOmMuTkFNRURfVFlQRSxuYW1lOnRoaXMucGFyc2VOYW1lKCl9KX1wZWVrRGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5wZWVrKG8uU1RSSU5HKXx8dGhpcy5wZWVrKG8uQkxPQ0tfU1RSSU5HKX1wYXJzZURlc2NyaXB0aW9uKCl7aWYodGhpcy5wZWVrRGVzY3JpcHRpb24oKSlyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKX1wYXJzZVNjaGVtYURlZmluaXRpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZChcInNjaGVtYVwiKTtsZXQgcj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksaT10aGlzLm1hbnkoby5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixvLkJSQUNFX1IpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLlNDSEVNQV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sZGlyZWN0aXZlczpyLG9wZXJhdGlvblR5cGVzOml9KX1wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlT3BlcmF0aW9uVHlwZSgpO3RoaXMuZXhwZWN0VG9rZW4oby5DT0xPTik7bGV0IHI9dGhpcy5wYXJzZU5hbWVkVHlwZSgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLk9QRVJBVElPTl9UWVBFX0RFRklOSVRJT04sb3BlcmF0aW9uOm4sdHlwZTpyfSl9cGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKFwic2NhbGFyXCIpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuU0NBTEFSX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixkaXJlY3RpdmVzOml9KX1wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoXCJ0eXBlXCIpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxzPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxhPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixpbnRlcmZhY2VzOmksZGlyZWN0aXZlczpzLGZpZWxkczphfSl9cGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpe3JldHVybiB0aGlzLmV4cGVjdE9wdGlvbmFsS2V5d29yZChcImltcGxlbWVudHNcIik/dGhpcy5kZWxpbWl0ZWRNYW55KG8uQU1QLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShvLkJSQUNFX0wsdGhpcy5wYXJzZUZpZWxkRGVmaW5pdGlvbixvLkJSQUNFX1IpfXBhcnNlRmllbGREZWZpbml0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKSxyPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQXJndW1lbnREZWZzKCk7dGhpcy5leHBlY3RUb2tlbihvLkNPTE9OKTtsZXQgcz10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpLGE9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLkZJRUxEX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOnIsYXJndW1lbnRzOmksdHlwZTpzLGRpcmVjdGl2ZXM6YX0pfXBhcnNlQXJndW1lbnREZWZzKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KG8uUEFSRU5fTCx0aGlzLnBhcnNlSW5wdXRWYWx1ZURlZixvLlBBUkVOX1IpfXBhcnNlSW5wdXRWYWx1ZURlZigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCkscj10aGlzLnBhcnNlTmFtZSgpO3RoaXMuZXhwZWN0VG9rZW4oby5DT0xPTik7bGV0IGk9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSxzO3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihvLkVRVUFMUykmJihzPXRoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpKTtsZXQgYT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuSU5QVVRfVkFMVUVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cix0eXBlOmksZGVmYXVsdFZhbHVlOnMsZGlyZWN0aXZlczphfSl9cGFyc2VJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKFwiaW50ZXJmYWNlXCIpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxzPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxhPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixpbnRlcmZhY2VzOmksZGlyZWN0aXZlczpzLGZpZWxkczphfSl9cGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoXCJ1bmlvblwiKTtsZXQgcj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5VTklPTl9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOnIsZGlyZWN0aXZlczppLHR5cGVzOnN9KX1wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKG8uRVFVQUxTKT90aGlzLmRlbGltaXRlZE1hbnkoby5QSVBFLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoXCJlbnVtXCIpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlRW51bVZhbHVlc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5FTlVNX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixkaXJlY3RpdmVzOmksdmFsdWVzOnN9KX1wYXJzZUVudW1WYWx1ZXNEZWZpbml0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KG8uQlJBQ0VfTCx0aGlzLnBhcnNlRW51bVZhbHVlRGVmaW5pdGlvbixvLkJSQUNFX1IpfXBhcnNlRW51bVZhbHVlRGVmaW5pdGlvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCkscj10aGlzLnBhcnNlRW51bVZhbHVlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLkVOVU1fVkFMVUVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixkaXJlY3RpdmVzOml9KX1wYXJzZUVudW1WYWx1ZU5hbWUoKXtpZih0aGlzLl9sZXhlci50b2tlbi52YWx1ZT09PVwidHJ1ZVwifHx0aGlzLl9sZXhlci50b2tlbi52YWx1ZT09PVwiZmFsc2VcInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT1cIm51bGxcIil0aHJvdyBkKHRoaXMuX2xleGVyLnNvdXJjZSx0aGlzLl9sZXhlci50b2tlbi5zdGFydCxgJHtuZSh0aGlzLl9sZXhlci50b2tlbil9IGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgdXNlZCBmb3IgYW4gZW51bSB2YWx1ZS5gKTtyZXR1cm4gdGhpcy5wYXJzZU5hbWUoKX1wYXJzZUlucHV0T2JqZWN0VHlwZURlZmluaXRpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZChcImlucHV0XCIpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6cixkaXJlY3RpdmVzOmksZmllbGRzOnN9KX1wYXJzZUlucHV0RmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShvLkJSQUNFX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsby5CUkFDRV9SKX1wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKXtsZXQgdD10aGlzLl9sZXhlci5sb29rYWhlYWQoKTtpZih0LmtpbmQ9PT1vLk5BTUUpc3dpdGNoKHQudmFsdWUpe2Nhc2VcInNjaGVtYVwiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRXh0ZW5zaW9uKCk7Y2FzZVwic2NhbGFyXCI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCk7Y2FzZVwidHlwZVwiOnJldHVybiB0aGlzLnBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpO2Nhc2VcImludGVyZmFjZVwiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpO2Nhc2VcInVuaW9uXCI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVFeHRlbnNpb24oKTtjYXNlXCJlbnVtXCI6cmV0dXJuIHRoaXMucGFyc2VFbnVtVHlwZUV4dGVuc2lvbigpO2Nhc2VcImlucHV0XCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VTY2hlbWFFeHRlbnNpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoXCJleHRlbmRcIiksdGhpcy5leHBlY3RLZXl3b3JkKFwic2NoZW1hXCIpO2xldCBuPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMub3B0aW9uYWxNYW55KG8uQlJBQ0VfTCx0aGlzLnBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24sby5CUkFDRV9SKTtpZihuLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5TQ0hFTUFfRVhURU5TSU9OLGRpcmVjdGl2ZXM6bixvcGVyYXRpb25UeXBlczpyfSl9cGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKFwiZXh0ZW5kXCIpLHRoaXMuZXhwZWN0S2V5d29yZChcInNjYWxhclwiKTtsZXQgbj10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO2lmKHIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5TQ0FMQVJfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6cn0pfXBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZChcImV4dGVuZFwiKSx0aGlzLmV4cGVjdEtleXdvcmQoXCJ0eXBlXCIpO2xldCBuPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoci5sZW5ndGg9PT0wJiZpLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOmksZmllbGRzOnN9KX1wYXJzZUludGVyZmFjZVR5cGVFeHRlbnNpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoXCJleHRlbmRcIiksdGhpcy5leHBlY3RLZXl3b3JkKFwiaW50ZXJmYWNlXCIpO2xldCBuPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoci5sZW5ndGg9PT0wJiZpLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOmksZmllbGRzOnN9KX1wYXJzZVVuaW9uVHlwZUV4dGVuc2lvbigpe2xldCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZChcImV4dGVuZFwiKSx0aGlzLmV4cGVjdEtleXdvcmQoXCJ1bmlvblwiKTtsZXQgbj10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLGk9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtpZihyLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6Yy5VTklPTl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczpyLHR5cGVzOml9KX1wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKFwiZXh0ZW5kXCIpLHRoaXMuZXhwZWN0S2V5d29yZChcImVudW1cIik7bGV0IG49dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxpPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO2lmKHIubGVuZ3RoPT09MCYmaS5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLkVOVU1fVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6cix2YWx1ZXM6aX0pfXBhcnNlSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKFwiZXh0ZW5kXCIpLHRoaXMuZXhwZWN0S2V5d29yZChcImlucHV0XCIpO2xldCBuPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksaT10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7aWYoci5sZW5ndGg9PT0wJiZpLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOmMuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOnIsZmllbGRzOml9KX1wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKXtsZXQgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZChcImRpcmVjdGl2ZVwiKSx0aGlzLmV4cGVjdFRva2VuKG8uQVQpO2xldCByPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQXJndW1lbnREZWZzKCkscz10aGlzLmV4cGVjdE9wdGlvbmFsS2V5d29yZChcInJlcGVhdGFibGVcIik7dGhpcy5leHBlY3RLZXl3b3JkKFwib25cIik7bGV0IGE9dGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9ucygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpjLkRJUkVDVElWRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTpyLGFyZ3VtZW50czppLHJlcGVhdGFibGU6cyxsb2NhdGlvbnM6YX0pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVsaW1pdGVkTWFueShvLlBJUEUsdGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKX1wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKCl7bGV0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlTmFtZSgpO2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChILG4udmFsdWUpKXJldHVybiBuO3Rocm93IHRoaXMudW5leHBlY3RlZCh0KX1ub2RlKHQsbil7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Mb2NhdGlvbiE9PSEwJiYobi5sb2M9bmV3IHEodCx0aGlzLl9sZXhlci5sYXN0VG9rZW4sdGhpcy5fbGV4ZXIuc291cmNlKSksbn1wZWVrKHQpe3JldHVybiB0aGlzLl9sZXhlci50b2tlbi5raW5kPT09dH1leHBlY3RUb2tlbih0KXtsZXQgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT10KXJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLG47dGhyb3cgZCh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgJHtIZSh0KX0sIGZvdW5kICR7bmUobil9LmApfWV4cGVjdE9wdGlvbmFsVG9rZW4odCl7cmV0dXJuIHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX1leHBlY3RLZXl3b3JkKHQpe2xldCBuPXRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PW8uTkFNRSYmbi52YWx1ZT09PXQpdGhpcy5hZHZhbmNlTGV4ZXIoKTtlbHNlIHRocm93IGQodGhpcy5fbGV4ZXIuc291cmNlLG4uc3RhcnQsYEV4cGVjdGVkIFwiJHt0fVwiLCBmb3VuZCAke25lKG4pfS5gKX1leHBlY3RPcHRpb25hbEtleXdvcmQodCl7bGV0IG49dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIG4ua2luZD09PW8uTkFNRSYmbi52YWx1ZT09PXQ/KHRoaXMuYWR2YW5jZUxleGVyKCksITApOiExfXVuZXhwZWN0ZWQodCl7bGV0IG49dD8/dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIGQodGhpcy5fbGV4ZXIuc291cmNlLG4uc3RhcnQsYFVuZXhwZWN0ZWQgJHtuZShuKX0uYCl9YW55KHQsbixyKXt0aGlzLmV4cGVjdFRva2VuKHQpO2xldCBpPVtdO2Zvcig7IXRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihyKTspaS5wdXNoKG4uY2FsbCh0aGlzKSk7cmV0dXJuIGl9b3B0aW9uYWxNYW55KHQsbixyKXtpZih0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4odCkpe2xldCBpPVtdO2RvIGkucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4ocikpO3JldHVybiBpfXJldHVybltdfW1hbnkodCxuLHIpe3RoaXMuZXhwZWN0VG9rZW4odCk7bGV0IGk9W107ZG8gaS5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUoIXRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihyKSk7cmV0dXJuIGl9ZGVsaW1pdGVkTWFueSh0LG4pe3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbih0KTtsZXQgcj1bXTtkbyByLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSh0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4odCkpO3JldHVybiByfWFkdmFuY2VMZXhlcigpe2xldHttYXhUb2tlbnM6dH09dGhpcy5fb3B0aW9ucyxuPXRoaXMuX2xleGVyLmFkdmFuY2UoKTtpZih0IT09dm9pZCAwJiZuLmtpbmQhPT1vLkVPRiYmKCsrdGhpcy5fdG9rZW5Db3VudGVyLHRoaXMuX3Rva2VuQ291bnRlcj50KSl0aHJvdyBkKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBEb2N1bWVudCBjb250YWlucyBtb3JlIHRoYXQgJHt0fSB0b2tlbnMuIFBhcnNpbmcgYWJvcnRlZC5gKX19O2Z1bmN0aW9uIG5lKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIEhlKGUua2luZCkrKHQhPW51bGw/YCBcIiR7dH1cImA6XCJcIil9ZnVuY3Rpb24gSGUoZSl7cmV0dXJuICRlKGUpP2BcIiR7ZX1cImA6ZX1mdW5jdGlvbiBIdChlLHQpe2xldCBuPW5ldyBTeW50YXhFcnJvcihlK1wiIChcIit0LmxvYy5zdGFydC5saW5lK1wiOlwiK3QubG9jLnN0YXJ0LmNvbHVtbitcIilcIik7cmV0dXJuIE9iamVjdC5hc3NpZ24obix0KX12YXIgemU9SHQ7ZnVuY3Rpb24genQoZSl7bGV0IHQ9W10se3N0YXJ0VG9rZW46bixlbmRUb2tlbjpyfT1lLmxvYztmb3IobGV0IGk9bjtpIT09cjtpPWkubmV4dClpLmtpbmQ9PT1cIkNvbW1lbnRcIiYmdC5wdXNoKGkpO3JldHVybiB0fXZhciBLdD17YWxsb3dMZWdhY3lGcmFnbWVudFZhcmlhYmxlczohMH07ZnVuY3Rpb24gWnQoZSl7aWYoKGU9PW51bGw/dm9pZCAwOmUubmFtZSk9PT1cIkdyYXBoUUxFcnJvclwiKXtsZXR7bWVzc2FnZTp0LGxvY2F0aW9uczpbbl19PWU7cmV0dXJuIHplKHQse2xvYzp7c3RhcnQ6bn0sY2F1c2U6ZX0pfXJldHVybiBlfWZ1bmN0aW9uIGVuKGUpe2xldCB0O3RyeXt0PVdlKGUsS3QpfWNhdGNoKG4pe3Rocm93IFp0KG4pfXJldHVybiB0LmNvbW1lbnRzPXp0KHQpLHR9dmFyIHRuPXtwYXJzZTplbixhc3RGb3JtYXQ6XCJncmFwaHFsXCIsaGFzUHJhZ21hOmtlLGxvY1N0YXJ0OkosbG9jRW5kOlh9O3ZhciBLZT1be2xpbmd1aXN0TGFuZ3VhZ2VJZDoxMzksbmFtZTpcIkdyYXBoUUxcIix0eXBlOlwiZGF0YVwiLGNvbG9yOlwiI2UxMDA5OFwiLGV4dGVuc2lvbnM6W1wiLmdyYXBocWxcIixcIi5ncWxcIixcIi5ncmFwaHFsc1wiXSx0bVNjb3BlOlwic291cmNlLmdyYXBocWxcIixhY2VNb2RlOlwidGV4dFwiLHBhcnNlcnM6W1wiZ3JhcGhxbFwiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJncmFwaHFsXCJdfV07dmFyIFplPXticmFja2V0U3BhY2luZzp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITAsZGVzY3JpcHRpb246XCJQcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIixvcHBvc2l0ZURlc2NyaXB0aW9uOlwiRG8gbm90IHByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwifSxzaW5nbGVRdW90ZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJVc2Ugc2luZ2xlIHF1b3RlcyBpbnN0ZWFkIG9mIGRvdWJsZSBxdW90ZXMuXCJ9LHByb3NlV3JhcDp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiY2hvaWNlXCIsZGVmYXVsdDpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJIb3cgdG8gd3JhcCBwcm9zZS5cIixjaG9pY2VzOlt7dmFsdWU6XCJhbHdheXNcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgaWYgaXQgZXhjZWVkcyB0aGUgcHJpbnQgd2lkdGguXCJ9LHt2YWx1ZTpcIm5ldmVyXCIsZGVzY3JpcHRpb246XCJEbyBub3Qgd3JhcCBwcm9zZS5cIn0se3ZhbHVlOlwicHJlc2VydmVcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgYXMtaXMuXCJ9XX0sYnJhY2tldFNhbWVMaW5lOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIlB1dCA+IG9mIG9wZW5pbmcgdGFncyBvbiB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2Ygb24gYSBuZXcgbGluZS5cIn0sc2luZ2xlQXR0cmlidXRlUGVyTGluZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJFbmZvcmNlIHNpbmdsZSBhdHRyaWJ1dGUgcGVyIGxpbmUgaW4gSFRNTCwgVnVlIGFuZCBKU1guXCJ9fTt2YXIgbm49e2JyYWNrZXRTcGFjaW5nOlplLmJyYWNrZXRTcGFjaW5nfSxldD1ubjt2YXIgcm49e2dyYXBocWw6UmV9O3ZhciBwcj1UZTtleHBvcnR7cHIgYXMgZGVmYXVsdCxLZSBhcyBsYW5ndWFnZXMsZXQgYXMgb3B0aW9ucyxFZSBhcyBwYXJzZXJzLHJuIGFzIHByaW50ZXJzfTtcbiIsICJ2YXIgUnM9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxcj0odCxlKT0+e2Zvcih2YXIgciBpbiBlKVJzKHQscix7Z2V0OmVbcl0sZW51bWVyYWJsZTohMH0pfTt2YXIgSHI9KHQsZSxyKT0+e2lmKCFlLmhhcyh0KSl0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgXCIrcil9O3ZhciBZPSh0LGUscik9PihIcih0LGUsXCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZFwiKSxyP3IuY2FsbCh0KTplLmdldCh0KSksVnI9KHQsZSxyKT0+e2lmKGUuaGFzKHQpKXRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBhZGQgdGhlIHNhbWUgcHJpdmF0ZSBtZW1iZXIgbW9yZSB0aGFuIG9uY2VcIik7ZSBpbnN0YW5jZW9mIFdlYWtTZXQ/ZS5hZGQodCk6ZS5zZXQodCxyKX0sVXI9KHQsZSxyLG4pPT4oSHIodCxlLFwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZFwiKSxuP24uY2FsbCh0LHIpOmUuc2V0KHQscikscik7dmFyIFJyPXt9O3FyKFJyLHtsYW5ndWFnZXM6KCk9PkZzLG9wdGlvbnM6KCk9Pk5zLHBhcnNlcnM6KCk9Pk5yLHByaW50ZXJzOigpPT5vdX0pO3ZhciAkcz0odCxlLHIsbik9PntpZighKHQmJmU9PW51bGwpKXJldHVybiBlLnJlcGxhY2VBbGw/ZS5yZXBsYWNlQWxsKHIsbik6ci5nbG9iYWw/ZS5yZXBsYWNlKHIsbik6ZS5zcGxpdChyKS5qb2luKG4pfSx2PSRzO3ZhciBfZT1cInN0cmluZ1wiLERlPVwiYXJyYXlcIix2ZT1cImN1cnNvclwiLHNlPVwiaW5kZW50XCIsaWU9XCJhbGlnblwiLHllPVwidHJpbVwiLFE9XCJncm91cFwiLGFlPVwiZmlsbFwiLHVlPVwiaWYtYnJlYWtcIixvZT1cImluZGVudC1pZi1icmVha1wiLGJlPVwibGluZS1zdWZmaXhcIix3ZT1cImxpbmUtc3VmZml4LWJvdW5kYXJ5XCIsVj1cImxpbmVcIixUZT1cImxhYmVsXCIsbGU9XCJicmVhay1wYXJlbnRcIixvdD1uZXcgU2V0KFt2ZSxzZSxpZSx5ZSxRLGFlLHVlLG9lLGJlLHdlLFYsVGUsbGVdKTtmdW5jdGlvbiBNcyh0KXtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gX2U7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gRGU7aWYoIXQpcmV0dXJuO2xldHt0eXBlOmV9PXQ7aWYob3QuaGFzKGUpKXJldHVybiBlfXZhciB4ZT1Nczt2YXIgT3M9dD0+bmV3IEludGwuTGlzdEZvcm1hdChcImVuLVVTXCIse3R5cGU6XCJkaXNqdW5jdGlvblwifSkuZm9ybWF0KHQpO2Z1bmN0aW9uIHFzKHQpe2xldCBlPXQ9PT1udWxsP1wibnVsbFwiOnR5cGVvZiB0O2lmKGUhPT1cInN0cmluZ1wiJiZlIT09XCJvYmplY3RcIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7ZX0nLCBcbkV4cGVjdGVkIGl0IHRvIGJlICdzdHJpbmcnIG9yICdvYmplY3QnLmA7aWYoeGUodCkpdGhyb3cgbmV3IEVycm9yKFwiZG9jIGlzIHZhbGlkLlwiKTtsZXQgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk7aWYociE9PVwiW29iamVjdCBPYmplY3RdXCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke3J9Jy5gO2xldCBuPU9zKFsuLi5vdF0ubWFwKHM9PmAnJHtzfSdgKSk7cmV0dXJuYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7dC50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke259LmB9dmFyIFh0PWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkludmFsaWREb2NFcnJvclwiO2NvbnN0cnVjdG9yKGUpe3N1cGVyKHFzKGUpKSx0aGlzLmRvYz1lfX0sbHQ9WHQ7dmFyIFdyPSgpPT57fSxYPVdyLGN0PVdyO2Z1bmN0aW9uIFUodCl7cmV0dXJuIFgodCkse3R5cGU6c2UsY29udGVudHM6dH19ZnVuY3Rpb24gR3IodCxlKXtyZXR1cm4gWChlKSx7dHlwZTppZSxjb250ZW50czplLG46dH19ZnVuY3Rpb24gRCh0LGU9e30pe3JldHVybiBYKHQpLGN0KGUuZXhwYW5kZWRTdGF0ZXMsITApLHt0eXBlOlEsaWQ6ZS5pZCxjb250ZW50czp0LGJyZWFrOiEhZS5zaG91bGRCcmVhayxleHBhbmRlZFN0YXRlczplLmV4cGFuZGVkU3RhdGVzfX1mdW5jdGlvbiBZcih0KXtyZXR1cm4gR3IoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHQpfWZ1bmN0aW9uIHpyKHQpe3JldHVybiBHcih7dHlwZTpcInJvb3RcIn0sdCl9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIGN0KHQpLHt0eXBlOmFlLHBhcnRzOnR9fWZ1bmN0aW9uIGNlKHQsZT1cIlwiLHI9e30pe3JldHVybiBYKHQpLGUhPT1cIlwiJiZYKGUpLHt0eXBlOnVlLGJyZWFrQ29udGVudHM6dCxmbGF0Q29udGVudHM6ZSxncm91cElkOnIuZ3JvdXBJZH19ZnVuY3Rpb24ganIodCxlKXtyZXR1cm4gWCh0KSx7dHlwZTpvZSxjb250ZW50czp0LGdyb3VwSWQ6ZS5ncm91cElkLG5lZ2F0ZTplLm5lZ2F0ZX19dmFyIEo9e3R5cGU6bGV9O3ZhciBIcz17dHlwZTpWLGhhcmQ6ITB9LFZzPXt0eXBlOlYsaGFyZDohMCxsaXRlcmFsOiEwfSxfPXt0eXBlOlZ9LHg9e3R5cGU6Vixzb2Z0OiEwfSxTPVtIcyxKXSxLcj1bVnMsSl07ZnVuY3Rpb24gWih0LGUpe1godCksY3QoZSk7bGV0IHI9W107Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspbiE9PTAmJnIucHVzaCh0KSxyLnB1c2goZVtuXSk7cmV0dXJuIHJ9dmFyIFVzPSh0LGUscik9PntpZighKHQmJmU9PW51bGwpKXJldHVybiBBcnJheS5pc0FycmF5KGUpfHx0eXBlb2YgZT09XCJzdHJpbmdcIj9lW3I8MD9lLmxlbmd0aCtyOnJdOmUuYXQocil9LGtlPVVzO2Z1bmN0aW9uIGh0KHQsZSl7aWYodHlwZW9mIHQ9PVwic3RyaW5nXCIpcmV0dXJuIGUodCk7bGV0IHI9bmV3IE1hcDtyZXR1cm4gbih0KTtmdW5jdGlvbiBuKGkpe2lmKHIuaGFzKGkpKXJldHVybiByLmdldChpKTtsZXQgYT1zKGkpO3JldHVybiByLnNldChpLGEpLGF9ZnVuY3Rpb24gcyhpKXtzd2l0Y2goeGUoaSkpe2Nhc2UgRGU6cmV0dXJuIGUoaS5tYXAobikpO2Nhc2UgYWU6cmV0dXJuIGUoey4uLmkscGFydHM6aS5wYXJ0cy5tYXAobil9KTtjYXNlIHVlOnJldHVybiBlKHsuLi5pLGJyZWFrQ29udGVudHM6bihpLmJyZWFrQ29udGVudHMpLGZsYXRDb250ZW50czpuKGkuZmxhdENvbnRlbnRzKX0pO2Nhc2UgUTp7bGV0e2V4cGFuZGVkU3RhdGVzOmEsY29udGVudHM6dX09aTtyZXR1cm4gYT8oYT1hLm1hcChuKSx1PWFbMF0pOnU9bih1KSxlKHsuLi5pLGNvbnRlbnRzOnUsZXhwYW5kZWRTdGF0ZXM6YX0pfWNhc2UgaWU6Y2FzZSBzZTpjYXNlIG9lOmNhc2UgVGU6Y2FzZSBiZTpyZXR1cm4gZSh7Li4uaSxjb250ZW50czpuKGkuY29udGVudHMpfSk7Y2FzZSBfZTpjYXNlIHZlOmNhc2UgeWU6Y2FzZSB3ZTpjYXNlIFY6Y2FzZSBsZTpyZXR1cm4gZShpKTtkZWZhdWx0OnRocm93IG5ldyBsdChpKX19fWZ1bmN0aW9uIFdzKHQpe3N3aXRjaCh4ZSh0KSl7Y2FzZSBhZTppZih0LnBhcnRzLmV2ZXJ5KGU9PmU9PT1cIlwiKSlyZXR1cm5cIlwiO2JyZWFrO2Nhc2UgUTppZighdC5jb250ZW50cyYmIXQuaWQmJiF0LmJyZWFrJiYhdC5leHBhbmRlZFN0YXRlcylyZXR1cm5cIlwiO2lmKHQuY29udGVudHMudHlwZT09PVEmJnQuY29udGVudHMuaWQ9PT10LmlkJiZ0LmNvbnRlbnRzLmJyZWFrPT09dC5icmVhayYmdC5jb250ZW50cy5leHBhbmRlZFN0YXRlcz09PXQuZXhwYW5kZWRTdGF0ZXMpcmV0dXJuIHQuY29udGVudHM7YnJlYWs7Y2FzZSBpZTpjYXNlIHNlOmNhc2Ugb2U6Y2FzZSBiZTppZighdC5jb250ZW50cylyZXR1cm5cIlwiO2JyZWFrO2Nhc2UgdWU6aWYoIXQuZmxhdENvbnRlbnRzJiYhdC5icmVha0NvbnRlbnRzKXJldHVyblwiXCI7YnJlYWs7Y2FzZSBEZTp7bGV0IGU9W107Zm9yKGxldCByIG9mIHQpe2lmKCFyKWNvbnRpbnVlO2xldFtuLC4uLnNdPUFycmF5LmlzQXJyYXkocik/cjpbcl07dHlwZW9mIG49PVwic3RyaW5nXCImJnR5cGVvZiBrZSghMSxlLC0xKT09XCJzdHJpbmdcIj9lW2UubGVuZ3RoLTFdKz1uOmUucHVzaChuKSxlLnB1c2goLi4ucyl9cmV0dXJuIGUubGVuZ3RoPT09MD9cIlwiOmUubGVuZ3RoPT09MT9lWzBdOmV9Y2FzZSBfZTpjYXNlIHZlOmNhc2UgeWU6Y2FzZSB3ZTpjYXNlIFY6Y2FzZSBUZTpjYXNlIGxlOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IGx0KHQpfXJldHVybiB0fWZ1bmN0aW9uIFFyKHQpe3JldHVybiBodCh0LGU9PldzKGUpKX1mdW5jdGlvbiB3KHQsZT1Lcil7cmV0dXJuIGh0KHQscj0+dHlwZW9mIHI9PVwic3RyaW5nXCI/WihlLHIuc3BsaXQoYFxuYCkpOnIpfXZhciBKdD1jbGFzcyBleHRlbmRzIEVycm9ye25hbWU9XCJVbmV4cGVjdGVkTm9kZUVycm9yXCI7Y29uc3RydWN0b3IoZSxyLG49XCJ0eXBlXCIpe3N1cGVyKGBVbmV4cGVjdGVkICR7cn0gbm9kZSAke259OiAke0pTT04uc3RyaW5naWZ5KGVbbl0pfS5gKSx0aGlzLm5vZGU9ZX19LFhyPUp0O3ZhciBmdD1cIidcIixKcj0nXCInO2Z1bmN0aW9uIEdzKHQsZSl7bGV0IHI9ZT09PSEwfHxlPT09ZnQ/ZnQ6SnIsbj1yPT09ZnQ/SnI6ZnQscz0wLGk9MDtmb3IobGV0IGEgb2YgdClhPT09cj9zKys6YT09PW4mJmkrKztyZXR1cm4gcz5pP246cn12YXIgWnI9R3M7ZnVuY3Rpb24gWXModCl7cmV0dXJuKHQ9PW51bGw/dm9pZCAwOnQudHlwZSk9PT1cImZyb250LW1hdHRlclwifXZhciBCZT1Zczt2YXIgenM9bmV3IFNldChbXCJzb3VyY2VTcGFuXCIsXCJzdGFydFNvdXJjZVNwYW5cIixcImVuZFNvdXJjZVNwYW5cIixcIm5hbWVTcGFuXCIsXCJ2YWx1ZVNwYW5cIixcImtleVNwYW5cIixcInRhZ0RlZmluaXRpb25cIixcInRva2Vuc1wiLFwidmFsdWVUb2tlbnNcIl0pO2Z1bmN0aW9uIGVuKHQsZSl7aWYodC50eXBlPT09XCJ0ZXh0XCJ8fHQudHlwZT09PVwiY29tbWVudFwifHxCZSh0KXx8dC50eXBlPT09XCJ5YW1sXCJ8fHQudHlwZT09PVwidG9tbFwiKXJldHVybiBudWxsO3QudHlwZT09PVwiYXR0cmlidXRlXCImJmRlbGV0ZSBlLnZhbHVlLHQudHlwZT09PVwiZG9jVHlwZVwiJiZkZWxldGUgZS52YWx1ZX1lbi5pZ25vcmVkUHJvcGVydGllcz16czt2YXIgdG49ZW47dmFyIGpzPXQ9PnQuc3BsaXQoL1svXFxcXF0vKS5wb3AoKTtmdW5jdGlvbiBybih0LGUpe2lmKCFlKXJldHVybjtsZXQgcj1qcyhlKS50b0xvd2VyQ2FzZSgpO3JldHVybiB0LmZpbmQobj0+e3ZhciBzLGk7cmV0dXJuKChzPW4uZXh0ZW5zaW9ucyk9PW51bGw/dm9pZCAwOnMuc29tZShhPT5yLmVuZHNXaXRoKGEpKSl8fCgoaT1uLmZpbGVuYW1lcyk9PW51bGw/dm9pZCAwOmkuc29tZShhPT5hLnRvTG93ZXJDYXNlKCk9PT1yKSl9KX1mdW5jdGlvbiBLcyh0LGUpe2lmKGUpcmV0dXJuIHQuZmluZCgoe25hbWU6cn0pPT5yLnRvTG93ZXJDYXNlKCk9PT1lKT8/dC5maW5kKCh7YWxpYXNlczpyfSk9PnI9PW51bGw/dm9pZCAwOnIuaW5jbHVkZXMoZSkpPz90LmZpbmQoKHtleHRlbnNpb25zOnJ9KT0+cj09bnVsbD92b2lkIDA6ci5pbmNsdWRlcyhgLiR7ZX1gKSl9ZnVuY3Rpb24gUXModCxlKXtsZXQgcj10LnBsdWdpbnMuZmxhdE1hcChzPT5zLmxhbmd1YWdlcz8/W10pLG49S3MocixlLmxhbmd1YWdlKT8/cm4ocixlLnBoeXNpY2FsRmlsZSk/P3JuKHIsZS5maWxlKT8/KGUucGh5c2ljYWxGaWxlLHZvaWQgMCk7cmV0dXJuIG49PW51bGw/dm9pZCAwOm4ucGFyc2Vyc1swXX12YXIgTGU9UXM7dmFyIG5uPVwiaW5saW5lXCIsc249e2FyZWE6XCJub25lXCIsYmFzZTpcIm5vbmVcIixiYXNlZm9udDpcIm5vbmVcIixkYXRhbGlzdDpcIm5vbmVcIixoZWFkOlwibm9uZVwiLGxpbms6XCJub25lXCIsbWV0YTpcIm5vbmVcIixub2VtYmVkOlwibm9uZVwiLG5vZnJhbWVzOlwibm9uZVwiLHBhcmFtOlwiYmxvY2tcIixycDpcIm5vbmVcIixzY3JpcHQ6XCJibG9ja1wiLHNvdXJjZTpcImJsb2NrXCIsc3R5bGU6XCJub25lXCIsdGVtcGxhdGU6XCJpbmxpbmVcIix0cmFjazpcImJsb2NrXCIsdGl0bGU6XCJub25lXCIsaHRtbDpcImJsb2NrXCIsYm9keTpcImJsb2NrXCIsYWRkcmVzczpcImJsb2NrXCIsYmxvY2txdW90ZTpcImJsb2NrXCIsY2VudGVyOlwiYmxvY2tcIixkaXY6XCJibG9ja1wiLGZpZ3VyZTpcImJsb2NrXCIsZmlnY2FwdGlvbjpcImJsb2NrXCIsZm9vdGVyOlwiYmxvY2tcIixmb3JtOlwiYmxvY2tcIixoZWFkZXI6XCJibG9ja1wiLGhyOlwiYmxvY2tcIixsZWdlbmQ6XCJibG9ja1wiLGxpc3Rpbmc6XCJibG9ja1wiLG1haW46XCJibG9ja1wiLHA6XCJibG9ja1wiLHBsYWludGV4dDpcImJsb2NrXCIscHJlOlwiYmxvY2tcIix4bXA6XCJibG9ja1wiLHNsb3Q6XCJjb250ZW50c1wiLHJ1Ynk6XCJydWJ5XCIscnQ6XCJydWJ5LXRleHRcIixhcnRpY2xlOlwiYmxvY2tcIixhc2lkZTpcImJsb2NrXCIsaDE6XCJibG9ja1wiLGgyOlwiYmxvY2tcIixoMzpcImJsb2NrXCIsaDQ6XCJibG9ja1wiLGg1OlwiYmxvY2tcIixoNjpcImJsb2NrXCIsaGdyb3VwOlwiYmxvY2tcIixuYXY6XCJibG9ja1wiLHNlY3Rpb246XCJibG9ja1wiLGRpcjpcImJsb2NrXCIsZGQ6XCJibG9ja1wiLGRsOlwiYmxvY2tcIixkdDpcImJsb2NrXCIsb2w6XCJibG9ja1wiLHVsOlwiYmxvY2tcIixsaTpcImxpc3QtaXRlbVwiLHRhYmxlOlwidGFibGVcIixjYXB0aW9uOlwidGFibGUtY2FwdGlvblwiLGNvbGdyb3VwOlwidGFibGUtY29sdW1uLWdyb3VwXCIsY29sOlwidGFibGUtY29sdW1uXCIsdGhlYWQ6XCJ0YWJsZS1oZWFkZXItZ3JvdXBcIix0Ym9keTpcInRhYmxlLXJvdy1ncm91cFwiLHRmb290OlwidGFibGUtZm9vdGVyLWdyb3VwXCIsdHI6XCJ0YWJsZS1yb3dcIix0ZDpcInRhYmxlLWNlbGxcIix0aDpcInRhYmxlLWNlbGxcIixmaWVsZHNldDpcImJsb2NrXCIsYnV0dG9uOlwiaW5saW5lLWJsb2NrXCIsZGV0YWlsczpcImJsb2NrXCIsc3VtbWFyeTpcImJsb2NrXCIsZGlhbG9nOlwiYmxvY2tcIixtZXRlcjpcImlubGluZS1ibG9ja1wiLHByb2dyZXNzOlwiaW5saW5lLWJsb2NrXCIsb2JqZWN0OlwiaW5saW5lLWJsb2NrXCIsdmlkZW86XCJpbmxpbmUtYmxvY2tcIixhdWRpbzpcImlubGluZS1ibG9ja1wiLHNlbGVjdDpcImlubGluZS1ibG9ja1wiLG9wdGlvbjpcImJsb2NrXCIsb3B0Z3JvdXA6XCJibG9ja1wiLHNlYXJjaDpcImJsb2NrXCJ9LGFuPVwibm9ybWFsXCIsdW49e2xpc3Rpbmc6XCJwcmVcIixwbGFpbnRleHQ6XCJwcmVcIixwcmU6XCJwcmVcIix4bXA6XCJwcmVcIixub2JyOlwibm93cmFwXCIsdGFibGU6XCJpbml0aWFsXCIsdGV4dGFyZWE6XCJwcmUtd3JhcFwifTtmdW5jdGlvbiBadCh0KXtpZih0eXBlb2YgdCE9XCJzdHJpbmdcIil0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmdcIik7cmV0dXJuIHQucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csXCJcXFxcJCZcIikucmVwbGFjZSgvLS9nLFwiXFxcXHgyZFwiKX12YXIgUixlcj1jbGFzc3tjb25zdHJ1Y3RvcihlKXtWcih0aGlzLFIsdm9pZCAwKTtVcih0aGlzLFIsbmV3IFNldChlKSl9Z2V0TGVhZGluZ1doaXRlc3BhY2VDb3VudChlKXtsZXQgcj1ZKHRoaXMsUiksbj0wO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGgmJnIuaGFzKGUuY2hhckF0KHMpKTtzKyspbisrO3JldHVybiBufWdldFRyYWlsaW5nV2hpdGVzcGFjZUNvdW50KGUpe2xldCByPVkodGhpcyxSKSxuPTA7Zm9yKGxldCBzPWUubGVuZ3RoLTE7cz49MCYmci5oYXMoZS5jaGFyQXQocykpO3MtLSluKys7cmV0dXJuIG59Z2V0TGVhZGluZ1doaXRlc3BhY2UoZSl7bGV0IHI9dGhpcy5nZXRMZWFkaW5nV2hpdGVzcGFjZUNvdW50KGUpO3JldHVybiBlLnNsaWNlKDAscil9Z2V0VHJhaWxpbmdXaGl0ZXNwYWNlKGUpe2xldCByPXRoaXMuZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlQ291bnQoZSk7cmV0dXJuIGUuc2xpY2UoZS5sZW5ndGgtcil9aGFzTGVhZGluZ1doaXRlc3BhY2UoZSl7cmV0dXJuIFkodGhpcyxSKS5oYXMoZS5jaGFyQXQoMCkpfWhhc1RyYWlsaW5nV2hpdGVzcGFjZShlKXtyZXR1cm4gWSh0aGlzLFIpLmhhcyhrZSghMSxlLC0xKSl9dHJpbVN0YXJ0KGUpe2xldCByPXRoaXMuZ2V0TGVhZGluZ1doaXRlc3BhY2VDb3VudChlKTtyZXR1cm4gZS5zbGljZShyKX10cmltRW5kKGUpe2xldCByPXRoaXMuZ2V0VHJhaWxpbmdXaGl0ZXNwYWNlQ291bnQoZSk7cmV0dXJuIGUuc2xpY2UoMCxlLmxlbmd0aC1yKX10cmltKGUpe3JldHVybiB0aGlzLnRyaW1FbmQodGhpcy50cmltU3RhcnQoZSkpfXNwbGl0KGUscj0hMSl7bGV0IG49YFske1p0KFsuLi5ZKHRoaXMsUildLmpvaW4oXCJcIikpfV0rYCxzPW5ldyBSZWdFeHAocj9gKCR7bn0pYDpuKTtyZXR1cm4gZS5zcGxpdChzKX1oYXNXaGl0ZXNwYWNlQ2hhcmFjdGVyKGUpe2xldCByPVkodGhpcyxSKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChlLG49PnIuaGFzKG4pKX1oYXNOb25XaGl0ZXNwYWNlQ2hhcmFjdGVyKGUpe2xldCByPVkodGhpcyxSKTtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNvbWUuY2FsbChlLG49PiFyLmhhcyhuKSl9aXNXaGl0ZXNwYWNlT25seShlKXtsZXQgcj1ZKHRoaXMsUik7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5ldmVyeS5jYWxsKGUsbj0+ci5oYXMobikpfX07Uj1uZXcgV2Vha01hcDt2YXIgb249ZXI7dmFyIFhzPVtcIlx0XCIsYFxuYCxcIlxcZlwiLFwiXFxyXCIsXCIgXCJdLEpzPW5ldyBvbihYcyksej1KcztmdW5jdGlvbiBacyh0KXtyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJiF0Lmhhc0V4cGxpY2l0TmFtZXNwYWNlJiYhW1wiaHRtbFwiLFwic3ZnXCJdLmluY2x1ZGVzKHQubmFtZXNwYWNlKX12YXIgcGU9WnM7dmFyIGVpPXQ9PnYoITEsdCwvXltcXHRcXGZcXHIgXSpcXG4vZyxcIlwiKSx0cj10PT5laSh6LnRyaW1FbmQodCkpLGxuPXQ9PntsZXQgZT10LHI9ei5nZXRMZWFkaW5nV2hpdGVzcGFjZShlKTtyJiYoZT1lLnNsaWNlKHIubGVuZ3RoKSk7bGV0IG49ei5nZXRUcmFpbGluZ1doaXRlc3BhY2UoZSk7cmV0dXJuIG4mJihlPWUuc2xpY2UoMCwtbi5sZW5ndGgpKSx7bGVhZGluZ1doaXRlc3BhY2U6cix0cmFpbGluZ1doaXRlc3BhY2U6bix0ZXh0OmV9fTtmdW5jdGlvbiBtdCh0LGUpe3JldHVybiEhKHQudHlwZT09PVwiaWVDb25kaXRpb25hbENvbW1lbnRcIiYmdC5sYXN0Q2hpbGQmJiF0Lmxhc3RDaGlsZC5pc1NlbGZDbG9zaW5nJiYhdC5sYXN0Q2hpbGQuZW5kU291cmNlU3Bhbnx8dC50eXBlPT09XCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiJiYhdC5jb21wbGV0ZXx8aGUodCkmJnQuY2hpbGRyZW4uc29tZShyPT5yLnR5cGUhPT1cInRleHRcIiYmci50eXBlIT09XCJpbnRlcnBvbGF0aW9uXCIpfHxDdCh0LGUpJiYhTSh0KSYmdC50eXBlIT09XCJpbnRlcnBvbGF0aW9uXCIpfWZ1bmN0aW9uIEhlKHQpe3JldHVybiB0LnR5cGU9PT1cImF0dHJpYnV0ZVwifHwhdC5wYXJlbnR8fCF0LnByZXY/ITE6dGkodC5wcmV2KX1mdW5jdGlvbiB0aSh0KXtyZXR1cm4gdC50eXBlPT09XCJjb21tZW50XCImJnQudmFsdWUudHJpbSgpPT09XCJwcmV0dGllci1pZ25vcmVcIn1mdW5jdGlvbiBQKHQpe3JldHVybiB0LnR5cGU9PT1cInRleHRcInx8dC50eXBlPT09XCJjb21tZW50XCJ9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJih0LmZ1bGxOYW1lPT09XCJzY3JpcHRcInx8dC5mdWxsTmFtZT09PVwic3R5bGVcInx8dC5mdWxsTmFtZT09PVwic3ZnOnN0eWxlXCJ8fHQuZnVsbE5hbWU9PT1cInN2ZzpzY3JpcHRcInx8cGUodCkmJih0Lm5hbWU9PT1cInNjcmlwdFwifHx0Lm5hbWU9PT1cInN0eWxlXCIpKX1mdW5jdGlvbiBjbih0KXtyZXR1cm4gdC5jaGlsZHJlbiYmIU0odCl9ZnVuY3Rpb24gcG4odCl7cmV0dXJuIE0odCl8fHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwifHxycih0KX1mdW5jdGlvbiBycih0KXtyZXR1cm4gRG4odCkuc3RhcnRzV2l0aChcInByZVwiKX1mdW5jdGlvbiBobih0LGUpe3ZhciBzLGk7bGV0IHI9bigpO2lmKHImJiF0LnByZXYmJigoaT0ocz10LnBhcmVudCk9PW51bGw/dm9pZCAwOnMudGFnRGVmaW5pdGlvbikhPW51bGwmJmkuaWdub3JlRmlyc3RMZikpcmV0dXJuIHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiO3JldHVybiByO2Z1bmN0aW9uIG4oKXtyZXR1cm4gQmUodCk/ITE6KHQudHlwZT09PVwidGV4dFwifHx0LnR5cGU9PT1cImludGVycG9sYXRpb25cIikmJnQucHJldiYmKHQucHJldi50eXBlPT09XCJ0ZXh0XCJ8fHQucHJldi50eXBlPT09XCJpbnRlcnBvbGF0aW9uXCIpPyEwOiF0LnBhcmVudHx8dC5wYXJlbnQuY3NzRGlzcGxheT09PVwibm9uZVwiPyExOmhlKHQucGFyZW50KT8hMDohKCF0LnByZXYmJih0LnBhcmVudC50eXBlPT09XCJyb290XCJ8fGhlKHQpJiZ0LnBhcmVudHx8TSh0LnBhcmVudCl8fFdlKHQucGFyZW50LGUpfHwhdWkodC5wYXJlbnQuY3NzRGlzcGxheSkpfHx0LnByZXYmJiFjaSh0LnByZXYuY3NzRGlzcGxheSkpfX1mdW5jdGlvbiBmbih0LGUpe3JldHVybiBCZSh0KT8hMToodC50eXBlPT09XCJ0ZXh0XCJ8fHQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiKSYmdC5uZXh0JiYodC5uZXh0LnR5cGU9PT1cInRleHRcInx8dC5uZXh0LnR5cGU9PT1cImludGVycG9sYXRpb25cIik/ITA6IXQucGFyZW50fHx0LnBhcmVudC5jc3NEaXNwbGF5PT09XCJub25lXCI/ITE6aGUodC5wYXJlbnQpPyEwOiEoIXQubmV4dCYmKHQucGFyZW50LnR5cGU9PT1cInJvb3RcInx8aGUodCkmJnQucGFyZW50fHxNKHQucGFyZW50KXx8V2UodC5wYXJlbnQsZSl8fCFvaSh0LnBhcmVudC5jc3NEaXNwbGF5KSl8fHQubmV4dCYmIWxpKHQubmV4dC5jc3NEaXNwbGF5KSl9ZnVuY3Rpb24gbW4odCl7cmV0dXJuIHBpKHQuY3NzRGlzcGxheSkmJiFNKHQpfWZ1bmN0aW9uIFZlKHQpe3JldHVybiBCZSh0KXx8dC5uZXh0JiZ0LnNvdXJjZVNwYW4uZW5kJiZ0LnNvdXJjZVNwYW4uZW5kLmxpbmUrMTx0Lm5leHQuc291cmNlU3Bhbi5zdGFydC5saW5lfWZ1bmN0aW9uIGRuKHQpe3JldHVybiBucih0KXx8dC50eXBlPT09XCJlbGVtZW50XCImJnQuY2hpbGRyZW4ubGVuZ3RoPjAmJihbXCJib2R5XCIsXCJzY3JpcHRcIixcInN0eWxlXCJdLmluY2x1ZGVzKHQubmFtZSl8fHQuY2hpbGRyZW4uc29tZShlPT5uaShlKSkpfHx0LmZpcnN0Q2hpbGQmJnQuZmlyc3RDaGlsZD09PXQubGFzdENoaWxkJiZ0LmZpcnN0Q2hpbGQudHlwZSE9PVwidGV4dFwiJiZDbih0LmZpcnN0Q2hpbGQpJiYoIXQubGFzdENoaWxkLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZXx8U24odC5sYXN0Q2hpbGQpKX1mdW5jdGlvbiBucih0KXtyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJnQuY2hpbGRyZW4ubGVuZ3RoPjAmJihbXCJodG1sXCIsXCJoZWFkXCIsXCJ1bFwiLFwib2xcIixcInNlbGVjdFwiXS5pbmNsdWRlcyh0Lm5hbWUpfHx0LmNzc0Rpc3BsYXkuc3RhcnRzV2l0aChcInRhYmxlXCIpJiZ0LmNzc0Rpc3BsYXkhPT1cInRhYmxlLWNlbGxcIil9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIEVuKHQpfHx0LnByZXYmJnJpKHQucHJldil8fGduKHQpfWZ1bmN0aW9uIHJpKHQpe3JldHVybiBFbih0KXx8dC50eXBlPT09XCJlbGVtZW50XCImJnQuZnVsbE5hbWU9PT1cImJyXCJ8fGduKHQpfWZ1bmN0aW9uIGduKHQpe3JldHVybiBDbih0KSYmU24odCl9ZnVuY3Rpb24gQ24odCl7cmV0dXJuIHQuaGFzTGVhZGluZ1NwYWNlcyYmKHQucHJldj90LnByZXYuc291cmNlU3Bhbi5lbmQubGluZTx0LnNvdXJjZVNwYW4uc3RhcnQubGluZTp0LnBhcmVudC50eXBlPT09XCJyb290XCJ8fHQucGFyZW50LnN0YXJ0U291cmNlU3Bhbi5lbmQubGluZTx0LnNvdXJjZVNwYW4uc3RhcnQubGluZSl9ZnVuY3Rpb24gU24odCl7cmV0dXJuIHQuaGFzVHJhaWxpbmdTcGFjZXMmJih0Lm5leHQ/dC5uZXh0LnNvdXJjZVNwYW4uc3RhcnQubGluZT50LnNvdXJjZVNwYW4uZW5kLmxpbmU6dC5wYXJlbnQudHlwZT09PVwicm9vdFwifHx0LnBhcmVudC5lbmRTb3VyY2VTcGFuJiZ0LnBhcmVudC5lbmRTb3VyY2VTcGFuLnN0YXJ0LmxpbmU+dC5zb3VyY2VTcGFuLmVuZC5saW5lKX1mdW5jdGlvbiBFbih0KXtzd2l0Y2godC50eXBlKXtjYXNlXCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiOmNhc2VcImNvbW1lbnRcIjpjYXNlXCJkaXJlY3RpdmVcIjpyZXR1cm4hMDtjYXNlXCJlbGVtZW50XCI6cmV0dXJuW1wic2NyaXB0XCIsXCJzZWxlY3RcIl0uaW5jbHVkZXModC5uYW1lKX1yZXR1cm4hMX1mdW5jdGlvbiBndCh0KXtyZXR1cm4gdC5sYXN0Q2hpbGQ/Z3QodC5sYXN0Q2hpbGQpOnR9ZnVuY3Rpb24gbmkodCl7dmFyIGU7cmV0dXJuKGU9dC5jaGlsZHJlbik9PW51bGw/dm9pZCAwOmUuc29tZShyPT5yLnR5cGUhPT1cInRleHRcIil9ZnVuY3Rpb24gQW4odCl7aWYodClzd2l0Y2godCl7Y2FzZVwibW9kdWxlXCI6Y2FzZVwidGV4dC9qYXZhc2NyaXB0XCI6Y2FzZVwidGV4dC9iYWJlbFwiOmNhc2VcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIjpyZXR1cm5cImJhYmVsXCI7Y2FzZVwiYXBwbGljYXRpb24veC10eXBlc2NyaXB0XCI6cmV0dXJuXCJ0eXBlc2NyaXB0XCI7Y2FzZVwidGV4dC9tYXJrZG93blwiOnJldHVyblwibWFya2Rvd25cIjtjYXNlXCJ0ZXh0L2h0bWxcIjpyZXR1cm5cImh0bWxcIjtjYXNlXCJ0ZXh0L3gtaGFuZGxlYmFycy10ZW1wbGF0ZVwiOnJldHVyblwiZ2xpbW1lclwiO2RlZmF1bHQ6aWYodC5lbmRzV2l0aChcImpzb25cIil8fHQuZW5kc1dpdGgoXCJpbXBvcnRtYXBcIil8fHQ9PT1cInNwZWN1bGF0aW9ucnVsZXNcIilyZXR1cm5cImpzb25cIn19ZnVuY3Rpb24gc2kodCxlKXtsZXR7bmFtZTpyLGF0dHJNYXA6bn09dDtpZihyIT09XCJzY3JpcHRcInx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sXCJzcmNcIikpcmV0dXJuO2xldHt0eXBlOnMsbGFuZzppfT10LmF0dHJNYXA7cmV0dXJuIWkmJiFzP1wiYmFiZWxcIjpMZShlLHtsYW5ndWFnZTppfSk/P0FuKHMpfWZ1bmN0aW9uIGlpKHQsZSl7aWYoIUN0KHQsZSkpcmV0dXJuO2xldHthdHRyTWFwOnJ9PXQ7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsXCJzcmNcIikpcmV0dXJuO2xldHt0eXBlOm4sbGFuZzpzfT1yO3JldHVybiBMZShlLHtsYW5ndWFnZTpzfSk/P0FuKG4pfWZ1bmN0aW9uIGFpKHQsZSl7aWYodC5uYW1lIT09XCJzdHlsZVwiKXJldHVybjtsZXR7bGFuZzpyfT10LmF0dHJNYXA7cmV0dXJuIHI/TGUoZSx7bGFuZ3VhZ2U6cn0pOlwiY3NzXCJ9ZnVuY3Rpb24gc3IodCxlKXtyZXR1cm4gc2kodCxlKT8/YWkodCxlKT8/aWkodCxlKX1mdW5jdGlvbiBVZSh0KXtyZXR1cm4gdD09PVwiYmxvY2tcInx8dD09PVwibGlzdC1pdGVtXCJ8fHQuc3RhcnRzV2l0aChcInRhYmxlXCIpfWZ1bmN0aW9uIHVpKHQpe3JldHVybiFVZSh0KSYmdCE9PVwiaW5saW5lLWJsb2NrXCJ9ZnVuY3Rpb24gb2kodCl7cmV0dXJuIVVlKHQpJiZ0IT09XCJpbmxpbmUtYmxvY2tcIn1mdW5jdGlvbiBsaSh0KXtyZXR1cm4hVWUodCl9ZnVuY3Rpb24gY2kodCl7cmV0dXJuIVVlKHQpfWZ1bmN0aW9uIHBpKHQpe3JldHVybiFVZSh0KSYmdCE9PVwiaW5saW5lLWJsb2NrXCJ9ZnVuY3Rpb24gaGUodCl7cmV0dXJuIERuKHQpLnN0YXJ0c1dpdGgoXCJwcmVcIil9ZnVuY3Rpb24gaGkodCxlKXtsZXQgcj10O2Zvcig7cjspe2lmKGUocikpcmV0dXJuITA7cj1yLnBhcmVudH1yZXR1cm4hMX1mdW5jdGlvbiBfbih0LGUpe3ZhciBuO2lmKGZlKHQsZSkpcmV0dXJuXCJibG9ja1wiO2lmKCgobj10LnByZXYpPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJjb21tZW50XCIpe2xldCBzPXQucHJldi52YWx1ZS5tYXRjaCgvXlxccypkaXNwbGF5OlxccyooW2Etel0rKVxccyokLyk7aWYocylyZXR1cm4gc1sxXX1sZXQgcj0hMTtpZih0LnR5cGU9PT1cImVsZW1lbnRcIiYmdC5uYW1lc3BhY2U9PT1cInN2Z1wiKWlmKGhpKHQscz0+cy5mdWxsTmFtZT09PVwic3ZnOmZvcmVpZ25PYmplY3RcIikpcj0hMDtlbHNlIHJldHVybiB0Lm5hbWU9PT1cInN2Z1wiP1wiaW5saW5lLWJsb2NrXCI6XCJibG9ja1wiO3N3aXRjaChlLmh0bWxXaGl0ZXNwYWNlU2Vuc2l0aXZpdHkpe2Nhc2VcInN0cmljdFwiOnJldHVyblwiaW5saW5lXCI7Y2FzZVwiaWdub3JlXCI6cmV0dXJuXCJibG9ja1wiO2RlZmF1bHQ6cmV0dXJuIHQudHlwZT09PVwiZWxlbWVudFwiJiYoIXQubmFtZXNwYWNlfHxyfHxwZSh0KSkmJnNuW3QubmFtZV18fG5ufX1mdW5jdGlvbiBEbih0KXtyZXR1cm4gdC50eXBlPT09XCJlbGVtZW50XCImJighdC5uYW1lc3BhY2V8fHBlKHQpKSYmdW5bdC5uYW1lXXx8YW59ZnVuY3Rpb24gZmkodCl7bGV0IGU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2ZvcihsZXQgciBvZiB0LnNwbGl0KGBcbmApKXtpZihyLmxlbmd0aD09PTApY29udGludWU7bGV0IG49ei5nZXRMZWFkaW5nV2hpdGVzcGFjZUNvdW50KHIpO2lmKG49PT0wKXJldHVybiAwO3IubGVuZ3RoIT09biYmbjxlJiYoZT1uKX1yZXR1cm4gZT09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWT8wOmV9ZnVuY3Rpb24gaXIodCxlPWZpKHQpKXtyZXR1cm4gZT09PTA/dDp0LnNwbGl0KGBcbmApLm1hcChyPT5yLnNsaWNlKGUpKS5qb2luKGBcbmApfWZ1bmN0aW9uIGFyKHQpe3JldHVybiB2KCExLHYoITEsdCxcIiZhcG9zO1wiLFwiJ1wiKSxcIiZxdW90O1wiLCdcIicpfWZ1bmN0aW9uIGsodCl7cmV0dXJuIGFyKHQudmFsdWUpfXZhciBtaT1uZXcgU2V0KFtcInRlbXBsYXRlXCIsXCJzdHlsZVwiLFwic2NyaXB0XCJdKTtmdW5jdGlvbiBXZSh0LGUpe3JldHVybiBmZSh0LGUpJiYhbWkuaGFzKHQuZnVsbE5hbWUpfWZ1bmN0aW9uIGZlKHQsZSl7cmV0dXJuIGUucGFyc2VyPT09XCJ2dWVcIiYmdC50eXBlPT09XCJlbGVtZW50XCImJnQucGFyZW50LnR5cGU9PT1cInJvb3RcIiYmdC5mdWxsTmFtZS50b0xvd2VyQ2FzZSgpIT09XCJodG1sXCJ9ZnVuY3Rpb24gQ3QodCxlKXtyZXR1cm4gZmUodCxlKSYmKFdlKHQsZSl8fHQuYXR0ck1hcC5sYW5nJiZ0LmF0dHJNYXAubGFuZyE9PVwiaHRtbFwiKX1mdW5jdGlvbiB2bih0KXtsZXQgZT10LmZ1bGxOYW1lO3JldHVybiBlLmNoYXJBdCgwKT09PVwiI1wifHxlPT09XCJzbG90LXNjb3BlXCJ8fGU9PT1cInYtc2xvdFwifHxlLnN0YXJ0c1dpdGgoXCJ2LXNsb3Q6XCIpfWZ1bmN0aW9uIHluKHQsZSl7bGV0IHI9dC5wYXJlbnQ7aWYoIWZlKHIsZSkpcmV0dXJuITE7bGV0IG49ci5mdWxsTmFtZSxzPXQuZnVsbE5hbWU7cmV0dXJuIG49PT1cInNjcmlwdFwiJiZzPT09XCJzZXR1cFwifHxuPT09XCJzdHlsZVwiJiZzPT09XCJ2YXJzXCJ9ZnVuY3Rpb24gU3QodCxlPXQudmFsdWUpe3JldHVybiB0LnBhcmVudC5pc1doaXRlc3BhY2VTZW5zaXRpdmU/dC5wYXJlbnQuaXNJbmRlbnRhdGlvblNlbnNpdGl2ZT93KGUpOncoaXIodHIoZSkpLFMpOlooXyx6LnNwbGl0KGUpKX1mdW5jdGlvbiBFdCh0LGUpe3JldHVybiBmZSh0LGUpJiZ0Lm5hbWU9PT1cInNjcmlwdFwifWZ1bmN0aW9uIHVyKHQpe3JldHVybiB0Pj05JiZ0PD0zMnx8dD09MTYwfWZ1bmN0aW9uIGRpKHQpe3JldHVybiA0ODw9dCYmdDw9NTd9ZnVuY3Rpb24gb3IodCl7cmV0dXJuIHQ+PTk3JiZ0PD0xMjJ8fHQ+PTY1JiZ0PD05MH1mdW5jdGlvbiBibih0KXtyZXR1cm4gdD49OTcmJnQ8PTEwMnx8dD49NjUmJnQ8PTcwfHxkaSh0KX1mdW5jdGlvbiBscih0KXtyZXR1cm4gdD09PTEwfHx0PT09MTN9ZnVuY3Rpb24gY3IodCl7cmV0dXJuIDQ4PD10JiZ0PD01NX1mdW5jdGlvbiB3bih0KXtyZXR1cm4gdD09PTM5fHx0PT09MzR8fHQ9PT05Nn12YXIgZ2k9Ly0rKFthLXowLTldKS9nO2Z1bmN0aW9uIHhuKHQpe3JldHVybiB0LnJlcGxhY2UoZ2ksKC4uLmUpPT5lWzFdLnRvVXBwZXJDYXNlKCkpfXZhciBlZT1jbGFzcyB0e2NvbnN0cnVjdG9yKGUscixuLHMpe3RoaXMuZmlsZT1lLHRoaXMub2Zmc2V0PXIsdGhpcy5saW5lPW4sdGhpcy5jb2w9c310b1N0cmluZygpe3JldHVybiB0aGlzLm9mZnNldCE9bnVsbD9gJHt0aGlzLmZpbGUudXJsfUAke3RoaXMubGluZX06JHt0aGlzLmNvbH1gOnRoaXMuZmlsZS51cmx9bW92ZUJ5KGUpe2xldCByPXRoaXMuZmlsZS5jb250ZW50LG49ci5sZW5ndGgscz10aGlzLm9mZnNldCxpPXRoaXMubGluZSxhPXRoaXMuY29sO2Zvcig7cz4wJiZlPDA7KWlmKHMtLSxlKyssci5jaGFyQ29kZUF0KHMpPT0xMCl7aS0tO2xldCBvPXIuc3Vic3RyaW5nKDAscy0xKS5sYXN0SW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKDEwKSk7YT1vPjA/cy1vOnN9ZWxzZSBhLS07Zm9yKDtzPG4mJmU+MDspe2xldCB1PXIuY2hhckNvZGVBdChzKTtzKyssZS0tLHU9PTEwPyhpKyssYT0wKTphKyt9cmV0dXJuIG5ldyB0KHRoaXMuZmlsZSxzLGksYSl9Z2V0Q29udGV4dChlLHIpe2xldCBuPXRoaXMuZmlsZS5jb250ZW50LHM9dGhpcy5vZmZzZXQ7aWYocyE9bnVsbCl7cz5uLmxlbmd0aC0xJiYocz1uLmxlbmd0aC0xKTtsZXQgaT1zLGE9MCx1PTA7Zm9yKDthPGUmJnM+MCYmKHMtLSxhKyssIShuW3NdPT1gXG5gJiYrK3U9PXIpKTspO2ZvcihhPTAsdT0wO2E8ZSYmaTxuLmxlbmd0aC0xJiYoaSsrLGErKywhKG5baV09PWBcbmAmJisrdT09cikpOyk7cmV0dXJue2JlZm9yZTpuLnN1YnN0cmluZyhzLHRoaXMub2Zmc2V0KSxhZnRlcjpuLnN1YnN0cmluZyh0aGlzLm9mZnNldCxpKzEpfX1yZXR1cm4gbnVsbH19LG1lPWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy5jb250ZW50PWUsdGhpcy51cmw9cn19LG09Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG49ZSxzPW51bGwpe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD1yLHRoaXMuZnVsbFN0YXJ0PW4sdGhpcy5kZXRhaWxzPXN9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5zdGFydC5maWxlLmNvbnRlbnQuc3Vic3RyaW5nKHRoaXMuc3RhcnQub2Zmc2V0LHRoaXMuZW5kLm9mZnNldCl9fSxBdDsoZnVuY3Rpb24odCl7dFt0LldBUk5JTkc9MF09XCJXQVJOSU5HXCIsdFt0LkVSUk9SPTFdPVwiRVJST1JcIn0pKEF0fHwoQXQ9e30pKTt2YXIgUGU9Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG49QXQuRVJST1Ipe3RoaXMuc3Bhbj1lLHRoaXMubXNnPXIsdGhpcy5sZXZlbD1ufWNvbnRleHR1YWxNZXNzYWdlKCl7bGV0IGU9dGhpcy5zcGFuLnN0YXJ0LmdldENvbnRleHQoMTAwLDMpO3JldHVybiBlP2Ake3RoaXMubXNnfSAoXCIke2UuYmVmb3JlfVske0F0W3RoaXMubGV2ZWxdfSAtPl0ke2UuYWZ0ZXJ9XCIpYDp0aGlzLm1zZ310b1N0cmluZygpe2xldCBlPXRoaXMuc3Bhbi5kZXRhaWxzP2AsICR7dGhpcy5zcGFuLmRldGFpbHN9YDpcIlwiO3JldHVybmAke3RoaXMuY29udGV4dHVhbE1lc3NhZ2UoKX06ICR7dGhpcy5zcGFuLnN0YXJ0fSR7ZX1gfX07dmFyIENpPVtFaSxBaSxEaSx5aSxiaSx4aSx3aSxUaSxraSx2aV07ZnVuY3Rpb24gU2kodCxlKXtmb3IobGV0IHIgb2YgQ2kpcih0LGUpO3JldHVybiB0fWZ1bmN0aW9uIEVpKHQpe3Qud2FsayhlPT57aWYoZS50eXBlPT09XCJlbGVtZW50XCImJmUudGFnRGVmaW5pdGlvbi5pZ25vcmVGaXJzdExmJiZlLmNoaWxkcmVuLmxlbmd0aD4wJiZlLmNoaWxkcmVuWzBdLnR5cGU9PT1cInRleHRcIiYmZS5jaGlsZHJlblswXS52YWx1ZVswXT09PWBcbmApe2xldCByPWUuY2hpbGRyZW5bMF07ci52YWx1ZS5sZW5ndGg9PT0xP2UucmVtb3ZlQ2hpbGQocik6ci52YWx1ZT1yLnZhbHVlLnNsaWNlKDEpfX0pfWZ1bmN0aW9uIEFpKHQpe2xldCBlPXI9Pnt2YXIgbixzO3JldHVybiByLnR5cGU9PT1cImVsZW1lbnRcIiYmKChuPXIucHJldik9PW51bGw/dm9pZCAwOm4udHlwZSk9PT1cImllQ29uZGl0aW9uYWxTdGFydENvbW1lbnRcIiYmci5wcmV2LnNvdXJjZVNwYW4uZW5kLm9mZnNldD09PXIuc3RhcnRTb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldCYmKChzPXIuZmlyc3RDaGlsZCk9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cImllQ29uZGl0aW9uYWxFbmRDb21tZW50XCImJnIuZmlyc3RDaGlsZC5zb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldD09PXIuc3RhcnRTb3VyY2VTcGFuLmVuZC5vZmZzZXR9O3Qud2FsayhyPT57aWYoci5jaGlsZHJlbilmb3IobGV0IG49MDtuPHIuY2hpbGRyZW4ubGVuZ3RoO24rKyl7bGV0IHM9ci5jaGlsZHJlbltuXTtpZighZShzKSljb250aW51ZTtsZXQgaT1zLnByZXYsYT1zLmZpcnN0Q2hpbGQ7ci5yZW1vdmVDaGlsZChpKSxuLS07bGV0IHU9bmV3IG0oaS5zb3VyY2VTcGFuLnN0YXJ0LGEuc291cmNlU3Bhbi5lbmQpLG89bmV3IG0odS5zdGFydCxzLnNvdXJjZVNwYW4uZW5kKTtzLmNvbmRpdGlvbj1pLmNvbmRpdGlvbixzLnNvdXJjZVNwYW49byxzLnN0YXJ0U291cmNlU3Bhbj11LHMucmVtb3ZlQ2hpbGQoYSl9fSl9ZnVuY3Rpb24gX2kodCxlLHIpe3Qud2FsayhuPT57aWYobi5jaGlsZHJlbilmb3IobGV0IHM9MDtzPG4uY2hpbGRyZW4ubGVuZ3RoO3MrKyl7bGV0IGk9bi5jaGlsZHJlbltzXTtpZihpLnR5cGUhPT1cInRleHRcIiYmIWUoaSkpY29udGludWU7aS50eXBlIT09XCJ0ZXh0XCImJihpLnR5cGU9XCJ0ZXh0XCIsaS52YWx1ZT1yKGkpKTtsZXQgYT1pLnByZXY7IWF8fGEudHlwZSE9PVwidGV4dFwifHwoYS52YWx1ZSs9aS52YWx1ZSxhLnNvdXJjZVNwYW49bmV3IG0oYS5zb3VyY2VTcGFuLnN0YXJ0LGkuc291cmNlU3Bhbi5lbmQpLG4ucmVtb3ZlQ2hpbGQoaSkscy0tKX19KX1mdW5jdGlvbiBEaSh0KXtyZXR1cm4gX2kodCxlPT5lLnR5cGU9PT1cImNkYXRhXCIsZT0+YDwhW0NEQVRBWyR7ZS52YWx1ZX1dXT5gKX1mdW5jdGlvbiB2aSh0KXtsZXQgZT1yPT57dmFyIG4scztyZXR1cm4gci50eXBlPT09XCJlbGVtZW50XCImJnIuYXR0cnMubGVuZ3RoPT09MCYmci5jaGlsZHJlbi5sZW5ndGg9PT0xJiZyLmZpcnN0Q2hpbGQudHlwZT09PVwidGV4dFwiJiYhei5oYXNXaGl0ZXNwYWNlQ2hhcmFjdGVyKHIuY2hpbGRyZW5bMF0udmFsdWUpJiYhci5maXJzdENoaWxkLmhhc0xlYWRpbmdTcGFjZXMmJiFyLmZpcnN0Q2hpbGQuaGFzVHJhaWxpbmdTcGFjZXMmJnIuaXNMZWFkaW5nU3BhY2VTZW5zaXRpdmUmJiFyLmhhc0xlYWRpbmdTcGFjZXMmJnIuaXNUcmFpbGluZ1NwYWNlU2Vuc2l0aXZlJiYhci5oYXNUcmFpbGluZ1NwYWNlcyYmKChuPXIucHJldik9PW51bGw/dm9pZCAwOm4udHlwZSk9PT1cInRleHRcIiYmKChzPXIubmV4dCk9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cInRleHRcIn07dC53YWxrKHI9PntpZihyLmNoaWxkcmVuKWZvcihsZXQgbj0wO248ci5jaGlsZHJlbi5sZW5ndGg7bisrKXtsZXQgcz1yLmNoaWxkcmVuW25dO2lmKCFlKHMpKWNvbnRpbnVlO2xldCBpPXMucHJldixhPXMubmV4dDtpLnZhbHVlKz1gPCR7cy5yYXdOYW1lfT5gK3MuZmlyc3RDaGlsZC52YWx1ZStgPC8ke3MucmF3TmFtZX0+YCthLnZhbHVlLGkuc291cmNlU3Bhbj1uZXcgbShpLnNvdXJjZVNwYW4uc3RhcnQsYS5zb3VyY2VTcGFuLmVuZCksaS5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU9YS5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmUsaS5oYXNUcmFpbGluZ1NwYWNlcz1hLmhhc1RyYWlsaW5nU3BhY2VzLHIucmVtb3ZlQ2hpbGQocyksbi0tLHIucmVtb3ZlQ2hpbGQoYSl9fSl9ZnVuY3Rpb24geWkodCxlKXtpZihlLnBhcnNlcj09PVwiaHRtbFwiKXJldHVybjtsZXQgcj0ve3soLis/KX19L3M7dC53YWxrKG49PntpZihjbihuKSlmb3IobGV0IHMgb2Ygbi5jaGlsZHJlbil7aWYocy50eXBlIT09XCJ0ZXh0XCIpY29udGludWU7bGV0IGk9cy5zb3VyY2VTcGFuLnN0YXJ0LGE9bnVsbCx1PXMudmFsdWUuc3BsaXQocik7Zm9yKGxldCBvPTA7bzx1Lmxlbmd0aDtvKyssaT1hKXtsZXQgcD11W29dO2lmKG8lMj09PTApe2E9aS5tb3ZlQnkocC5sZW5ndGgpLHAubGVuZ3RoPjAmJm4uaW5zZXJ0Q2hpbGRCZWZvcmUocyx7dHlwZTpcInRleHRcIix2YWx1ZTpwLHNvdXJjZVNwYW46bmV3IG0oaSxhKX0pO2NvbnRpbnVlfWE9aS5tb3ZlQnkocC5sZW5ndGgrNCksbi5pbnNlcnRDaGlsZEJlZm9yZShzLHt0eXBlOlwiaW50ZXJwb2xhdGlvblwiLHNvdXJjZVNwYW46bmV3IG0oaSxhKSxjaGlsZHJlbjpwLmxlbmd0aD09PTA/W106W3t0eXBlOlwidGV4dFwiLHZhbHVlOnAsc291cmNlU3BhbjpuZXcgbShpLm1vdmVCeSgyKSxhLm1vdmVCeSgtMikpfV19KX1uLnJlbW92ZUNoaWxkKHMpfX0pfWZ1bmN0aW9uIGJpKHQpe3Qud2FsayhlPT57aWYoIWUuY2hpbGRyZW4pcmV0dXJuO2lmKGUuY2hpbGRyZW4ubGVuZ3RoPT09MHx8ZS5jaGlsZHJlbi5sZW5ndGg9PT0xJiZlLmNoaWxkcmVuWzBdLnR5cGU9PT1cInRleHRcIiYmei50cmltKGUuY2hpbGRyZW5bMF0udmFsdWUpLmxlbmd0aD09PTApe2UuaGFzRGFuZ2xpbmdTcGFjZXM9ZS5jaGlsZHJlbi5sZW5ndGg+MCxlLmNoaWxkcmVuPVtdO3JldHVybn1sZXQgcj1wbihlKSxuPXJyKGUpO2lmKCFyKWZvcihsZXQgcz0wO3M8ZS5jaGlsZHJlbi5sZW5ndGg7cysrKXtsZXQgaT1lLmNoaWxkcmVuW3NdO2lmKGkudHlwZSE9PVwidGV4dFwiKWNvbnRpbnVlO2xldHtsZWFkaW5nV2hpdGVzcGFjZTphLHRleHQ6dSx0cmFpbGluZ1doaXRlc3BhY2U6b309bG4oaS52YWx1ZSkscD1pLnByZXYsbD1pLm5leHQ7dT8oaS52YWx1ZT11LGkuc291cmNlU3Bhbj1uZXcgbShpLnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KGEubGVuZ3RoKSxpLnNvdXJjZVNwYW4uZW5kLm1vdmVCeSgtby5sZW5ndGgpKSxhJiYocCYmKHAuaGFzVHJhaWxpbmdTcGFjZXM9ITApLGkuaGFzTGVhZGluZ1NwYWNlcz0hMCksbyYmKGkuaGFzVHJhaWxpbmdTcGFjZXM9ITAsbCYmKGwuaGFzTGVhZGluZ1NwYWNlcz0hMCkpKTooZS5yZW1vdmVDaGlsZChpKSxzLS0sKGF8fG8pJiYocCYmKHAuaGFzVHJhaWxpbmdTcGFjZXM9ITApLGwmJihsLmhhc0xlYWRpbmdTcGFjZXM9ITApKSl9ZS5pc1doaXRlc3BhY2VTZW5zaXRpdmU9cixlLmlzSW5kZW50YXRpb25TZW5zaXRpdmU9bn0pfWZ1bmN0aW9uIHdpKHQpe3Qud2FsayhlPT57ZS5pc1NlbGZDbG9zaW5nPSFlLmNoaWxkcmVufHxlLnR5cGU9PT1cImVsZW1lbnRcIiYmKGUudGFnRGVmaW5pdGlvbi5pc1ZvaWR8fGUuZW5kU291cmNlU3BhbiYmZS5zdGFydFNvdXJjZVNwYW4uc3RhcnQ9PT1lLmVuZFNvdXJjZVNwYW4uc3RhcnQmJmUuc3RhcnRTb3VyY2VTcGFuLmVuZD09PWUuZW5kU291cmNlU3Bhbi5lbmQpfSl9ZnVuY3Rpb24gVGkodCxlKXt0LndhbGsocj0+e3IudHlwZT09PVwiZWxlbWVudFwiJiYoci5oYXNIdG1Db21wb25lbnRDbG9zaW5nVGFnPXIuZW5kU291cmNlU3BhbiYmL148XFxzKlxcL1xccypcXC9cXHMqPiQvLnRlc3QoZS5vcmlnaW5hbFRleHQuc2xpY2Uoci5lbmRTb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldCxyLmVuZFNvdXJjZVNwYW4uZW5kLm9mZnNldCkpKX0pfWZ1bmN0aW9uIHhpKHQsZSl7dC53YWxrKHI9PntyLmNzc0Rpc3BsYXk9X24ocixlKX0pfWZ1bmN0aW9uIGtpKHQsZSl7dC53YWxrKHI9PntsZXR7Y2hpbGRyZW46bn09cjtpZihuKXtpZihuLmxlbmd0aD09PTApe3IuaXNEYW5nbGluZ1NwYWNlU2Vuc2l0aXZlPW1uKHIpO3JldHVybn1mb3IobGV0IHMgb2YgbilzLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlPWhuKHMsZSkscy5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU9Zm4ocyxlKTtmb3IobGV0IHM9MDtzPG4ubGVuZ3RoO3MrKyl7bGV0IGk9bltzXTtpLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlPShzPT09MHx8aS5wcmV2LmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSkmJmkuaXNMZWFkaW5nU3BhY2VTZW5zaXRpdmUsaS5pc1RyYWlsaW5nU3BhY2VTZW5zaXRpdmU9KHM9PT1uLmxlbmd0aC0xfHxpLm5leHQuaXNMZWFkaW5nU3BhY2VTZW5zaXRpdmUpJiZpLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZX19fSl9dmFyIGtuPVNpO2Z1bmN0aW9uIEJuKHQpe3JldHVybi9eXFxzKjwhLS1cXHMqQCg/OmZvcm1hdHxwcmV0dGllcilcXHMqLS0+Ly50ZXN0KHQpfWZ1bmN0aW9uIExuKHQpe3JldHVybmA8IS0tIEBmb3JtYXQgLS0+XG5cbmArdH1mdW5jdGlvbiB0ZSh0KXtyZXR1cm4gdC5zb3VyY2VTcGFuLnN0YXJ0Lm9mZnNldH1mdW5jdGlvbiByZSh0KXtyZXR1cm4gdC5zb3VyY2VTcGFuLmVuZC5vZmZzZXR9YXN5bmMgZnVuY3Rpb24gQmkodCxlKXtpZih0Lmxhbmc9PT1cInlhbWxcIil7bGV0IHI9dC52YWx1ZS50cmltKCksbj1yP2F3YWl0IGUocix7cGFyc2VyOlwieWFtbFwifSk6XCJcIjtyZXR1cm4genIoW3Quc3RhcnREZWxpbWl0ZXIsUyxuLG4/UzpcIlwiLHQuZW5kRGVsaW1pdGVyXSl9fXZhciBGbj1CaTt2YXIgUG49bmV3IFByb3h5KCgpPT57fSx7Z2V0OigpPT5Qbn0pLHByPVBuO2Z1bmN0aW9uIExpKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wfXZhciBObj1MaTtmdW5jdGlvbiBHZSh0LGUpe3JldHVyblt0LmlzU2VsZkNsb3Npbmc/XCJcIjpGaSh0LGUpLFllKHQsZSldfWZ1bmN0aW9uIEZpKHQsZSl7cmV0dXJuIHQubGFzdENoaWxkJiZDZSh0Lmxhc3RDaGlsZCk/XCJcIjpbUGkodCxlKSxfdCh0LGUpXX1mdW5jdGlvbiBZZSh0LGUpe3JldHVybih0Lm5leHQ/Vyh0Lm5leHQpOmdlKHQucGFyZW50KSk/XCJcIjpbZGUodCxlKSxPKHQsZSldfWZ1bmN0aW9uIFBpKHQsZSl7cmV0dXJuIGdlKHQpP2RlKHQubGFzdENoaWxkLGUpOlwiXCJ9ZnVuY3Rpb24gTyh0LGUpe3JldHVybiBDZSh0KT9fdCh0LnBhcmVudCxlKTp6ZSh0KT9EdCh0Lm5leHQpOlwiXCJ9ZnVuY3Rpb24gX3QodCxlKXtpZihwcighdC5pc1NlbGZDbG9zaW5nKSxJbih0LGUpKXJldHVyblwiXCI7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpyZXR1cm5cIjwhXCI7Y2FzZVwiZWxlbWVudFwiOmlmKHQuaGFzSHRtQ29tcG9uZW50Q2xvc2luZ1RhZylyZXR1cm5cIjwvL1wiO2RlZmF1bHQ6cmV0dXJuYDwvJHt0LnJhd05hbWV9YH19ZnVuY3Rpb24gZGUodCxlKXtpZihJbih0LGUpKXJldHVyblwiXCI7c3dpdGNoKHQudHlwZSl7Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpjYXNlXCJpZUNvbmRpdGlvbmFsRW5kQ29tbWVudFwiOnJldHVyblwiW2VuZGlmXS0tPlwiO2Nhc2VcImllQ29uZGl0aW9uYWxTdGFydENvbW1lbnRcIjpyZXR1cm5cIl0+PCEtLT5cIjtjYXNlXCJpbnRlcnBvbGF0aW9uXCI6cmV0dXJuXCJ9fVwiO2Nhc2VcImVsZW1lbnRcIjppZih0LmlzU2VsZkNsb3NpbmcpcmV0dXJuXCIvPlwiO2RlZmF1bHQ6cmV0dXJuXCI+XCJ9fWZ1bmN0aW9uIEluKHQsZSl7cmV0dXJuIXQuaXNTZWxmQ2xvc2luZyYmIXQuZW5kU291cmNlU3BhbiYmKEhlKHQpfHxtdCh0LnBhcmVudCxlKSl9ZnVuY3Rpb24gVyh0KXtyZXR1cm4gdC5wcmV2JiZ0LnByZXYudHlwZSE9PVwiZG9jVHlwZVwiJiYhUCh0LnByZXYpJiZ0LmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlJiYhdC5oYXNMZWFkaW5nU3BhY2VzfWZ1bmN0aW9uIGdlKHQpe3ZhciBlO3JldHVybigoZT10Lmxhc3RDaGlsZCk9PW51bGw/dm9pZCAwOmUuaXNUcmFpbGluZ1NwYWNlU2Vuc2l0aXZlKSYmIXQubGFzdENoaWxkLmhhc1RyYWlsaW5nU3BhY2VzJiYhUChndCh0Lmxhc3RDaGlsZCkpJiYhaGUodCl9ZnVuY3Rpb24gQ2UodCl7cmV0dXJuIXQubmV4dCYmIXQuaGFzVHJhaWxpbmdTcGFjZXMmJnQuaXNUcmFpbGluZ1NwYWNlU2Vuc2l0aXZlJiZQKGd0KHQpKX1mdW5jdGlvbiB6ZSh0KXtyZXR1cm4gdC5uZXh0JiYhUCh0Lm5leHQpJiZQKHQpJiZ0LmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSYmIXQuaGFzVHJhaWxpbmdTcGFjZXN9ZnVuY3Rpb24gTmkodCl7bGV0IGU9dC50cmltKCkubWF0Y2goL15wcmV0dGllci1pZ25vcmUtYXR0cmlidXRlKD86XFxzKyguKykpPyQvcyk7cmV0dXJuIGU/ZVsxXT9lWzFdLnNwbGl0KC9cXHMrLyk6ITA6ITF9ZnVuY3Rpb24gamUodCl7cmV0dXJuIXQucHJldiYmdC5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZSYmIXQuaGFzTGVhZGluZ1NwYWNlc31mdW5jdGlvbiBJaSh0LGUscil7dmFyIGY7bGV0e25vZGU6bn09dDtpZighTm4obi5hdHRycykpcmV0dXJuIG4uaXNTZWxmQ2xvc2luZz9cIiBcIjpcIlwiO2xldCBzPSgoZj1uLnByZXYpPT1udWxsP3ZvaWQgMDpmLnR5cGUpPT09XCJjb21tZW50XCImJk5pKG4ucHJldi52YWx1ZSksaT10eXBlb2Ygcz09XCJib29sZWFuXCI/KCk9PnM6QXJyYXkuaXNBcnJheShzKT9kPT5zLmluY2x1ZGVzKGQucmF3TmFtZSk6KCk9PiExLGE9dC5tYXAoKHtub2RlOmR9KT0+aShkKT93KGUub3JpZ2luYWxUZXh0LnNsaWNlKHRlKGQpLHJlKGQpKSk6cigpLFwiYXR0cnNcIiksdT1uLnR5cGU9PT1cImVsZW1lbnRcIiYmbi5mdWxsTmFtZT09PVwic2NyaXB0XCImJm4uYXR0cnMubGVuZ3RoPT09MSYmbi5hdHRyc1swXS5mdWxsTmFtZT09PVwic3JjXCImJm4uY2hpbGRyZW4ubGVuZ3RoPT09MCxwPWUuc2luZ2xlQXR0cmlidXRlUGVyTGluZSYmbi5hdHRycy5sZW5ndGg+MSYmIWZlKG4sZSk/UzpfLGw9W1UoW3U/XCIgXCI6XyxaKHAsYSldKV07cmV0dXJuIG4uZmlyc3RDaGlsZCYmamUobi5maXJzdENoaWxkKXx8bi5pc1NlbGZDbG9zaW5nJiZnZShuLnBhcmVudCl8fHU/bC5wdXNoKG4uaXNTZWxmQ2xvc2luZz9cIiBcIjpcIlwiKTpsLnB1c2goZS5icmFja2V0U2FtZUxpbmU/bi5pc1NlbGZDbG9zaW5nP1wiIFwiOlwiXCI6bi5pc1NlbGZDbG9zaW5nP186eCksbH1mdW5jdGlvbiBSaSh0KXtyZXR1cm4gdC5maXJzdENoaWxkJiZqZSh0LmZpcnN0Q2hpbGQpP1wiXCI6dnQodCl9ZnVuY3Rpb24gS2UodCxlLHIpe2xldHtub2RlOm59PXQ7cmV0dXJuW1FlKG4sZSksSWkodCxlLHIpLG4uaXNTZWxmQ2xvc2luZz9cIlwiOlJpKG4pXX1mdW5jdGlvbiBRZSh0LGUpe3JldHVybiB0LnByZXYmJnplKHQucHJldik/XCJcIjpbcSh0LGUpLER0KHQpXX1mdW5jdGlvbiBxKHQsZSl7cmV0dXJuIGplKHQpP3Z0KHQucGFyZW50KTpXKHQpP2RlKHQucHJldixlKTpcIlwifWZ1bmN0aW9uIER0KHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2VcImllQ29uZGl0aW9uYWxDb21tZW50XCI6Y2FzZVwiaWVDb25kaXRpb25hbFN0YXJ0Q29tbWVudFwiOnJldHVybmA8IS0tW2lmICR7dC5jb25kaXRpb259YDtjYXNlXCJpZUNvbmRpdGlvbmFsRW5kQ29tbWVudFwiOnJldHVyblwiPCEtLTwhXCI7Y2FzZVwiaW50ZXJwb2xhdGlvblwiOnJldHVyblwie3tcIjtjYXNlXCJkb2NUeXBlXCI6cmV0dXJuIHQudmFsdWU9PT1cImh0bWxcIj9cIjwhZG9jdHlwZVwiOlwiPCFET0NUWVBFXCI7Y2FzZVwiZWxlbWVudFwiOmlmKHQuY29uZGl0aW9uKXJldHVybmA8IS0tW2lmICR7dC5jb25kaXRpb259XT48IS0tPjwke3QucmF3TmFtZX1gO2RlZmF1bHQ6cmV0dXJuYDwke3QucmF3TmFtZX1gfX1mdW5jdGlvbiB2dCh0KXtzd2l0Y2gocHIoIXQuaXNTZWxmQ2xvc2luZyksdC50eXBlKXtjYXNlXCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiOnJldHVyblwiXT5cIjtjYXNlXCJlbGVtZW50XCI6aWYodC5jb25kaXRpb24pcmV0dXJuXCI+PCEtLTwhW2VuZGlmXS0tPlwiO2RlZmF1bHQ6cmV0dXJuXCI+XCJ9fXZhciBocj1uZXcgV2Vha01hcDtmdW5jdGlvbiAkaSh0LGUpe2xldHtyb290OnJ9PXQ7cmV0dXJuIGhyLmhhcyhyKXx8aHIuc2V0KHIsci5jaGlsZHJlbi5zb21lKG49PkV0KG4sZSkmJltcInRzXCIsXCJ0eXBlc2NyaXB0XCJdLmluY2x1ZGVzKG4uYXR0ck1hcC5sYW5nKSkpLGhyLmdldChyKX12YXIgTmU9JGk7ZnVuY3Rpb24gTWkodCxlKXtpZighdC5lbmRTb3VyY2VTcGFuKXJldHVyblwiXCI7bGV0IHI9dC5zdGFydFNvdXJjZVNwYW4uZW5kLm9mZnNldDt0LmZpcnN0Q2hpbGQmJmplKHQuZmlyc3RDaGlsZCkmJihyLT12dCh0KS5sZW5ndGgpO2xldCBuPXQuZW5kU291cmNlU3Bhbi5zdGFydC5vZmZzZXQ7cmV0dXJuIHQubGFzdENoaWxkJiZDZSh0Lmxhc3RDaGlsZCk/bis9X3QodCxlKS5sZW5ndGg6Z2UodCkmJihuLT1kZSh0Lmxhc3RDaGlsZCxlKS5sZW5ndGgpLGUub3JpZ2luYWxUZXh0LnNsaWNlKHIsbil9dmFyIHl0PU1pO2Z1bmN0aW9uIFJuKHQpe3JldHVybiB0PT09XCJcdFwifHx0PT09YFxuYHx8dD09PVwiXFxmXCJ8fHQ9PT1cIlxcclwifHx0PT09XCIgXCJ9dmFyIE9pPS9eWyBcXHRcXG5cXHJcXHUwMDBjXSsvLHFpPS9eWywgXFx0XFxuXFxyXFx1MDAwY10rLyxIaT0vXlteIFxcdFxcblxcclxcdTAwMGNdKy8sVmk9L1ssXSskLywkbj0vXlxcZCskLyxVaT0vXi0/KD86WzAtOV0rfFswLTldKlxcLlswLTldKykoPzpbZUVdWystXT9bMC05XSspPyQvO2Z1bmN0aW9uIFdpKHQpe2xldCBlPXQubGVuZ3RoLHIsbixzLGksYSx1PTAsbztmdW5jdGlvbiBwKEMpe2xldCBFLEE9Qy5leGVjKHQuc3Vic3RyaW5nKHUpKTtpZihBKXJldHVybltFXT1BLHUrPUUubGVuZ3RoLEV9bGV0IGw9W107Zm9yKDs7KXtpZihwKHFpKSx1Pj1lKXtpZihsLmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKFwiTXVzdCBjb250YWluIG9uZSBvciBtb3JlIGltYWdlIGNhbmRpZGF0ZSBzdHJpbmdzLlwiKTtyZXR1cm4gbH1vPXUscj1wKEhpKSxuPVtdLHIuc2xpY2UoLTEpPT09XCIsXCI/KHI9ci5yZXBsYWNlKFZpLFwiXCIpLGQoKSk6ZigpfWZ1bmN0aW9uIGYoKXtmb3IocChPaSkscz1cIlwiLGk9XCJpbiBkZXNjcmlwdG9yXCI7Oyl7aWYoYT10LmNoYXJBdCh1KSxpPT09XCJpbiBkZXNjcmlwdG9yXCIpaWYoUm4oYSkpcyYmKG4ucHVzaChzKSxzPVwiXCIsaT1cImFmdGVyIGRlc2NyaXB0b3JcIik7ZWxzZSBpZihhPT09XCIsXCIpe3UrPTEscyYmbi5wdXNoKHMpLGQoKTtyZXR1cm59ZWxzZSBpZihhPT09XCIoXCIpcys9YSxpPVwiaW4gcGFyZW5zXCI7ZWxzZSBpZihhPT09XCJcIil7cyYmbi5wdXNoKHMpLGQoKTtyZXR1cm59ZWxzZSBzKz1hO2Vsc2UgaWYoaT09PVwiaW4gcGFyZW5zXCIpaWYoYT09PVwiKVwiKXMrPWEsaT1cImluIGRlc2NyaXB0b3JcIjtlbHNlIGlmKGE9PT1cIlwiKXtuLnB1c2gocyksZCgpO3JldHVybn1lbHNlIHMrPWE7ZWxzZSBpZihpPT09XCJhZnRlciBkZXNjcmlwdG9yXCImJiFSbihhKSlpZihhPT09XCJcIil7ZCgpO3JldHVybn1lbHNlIGk9XCJpbiBkZXNjcmlwdG9yXCIsdS09MTt1Kz0xfX1mdW5jdGlvbiBkKCl7bGV0IEM9ITEsRSxBLEYsVCxjPXt9LGcseSxJLGIsJDtmb3IoVD0wO1Q8bi5sZW5ndGg7VCsrKWc9bltUXSx5PWdbZy5sZW5ndGgtMV0sST1nLnN1YnN0cmluZygwLGcubGVuZ3RoLTEpLGI9cGFyc2VJbnQoSSwxMCksJD1wYXJzZUZsb2F0KEkpLCRuLnRlc3QoSSkmJnk9PT1cIndcIj8oKEV8fEEpJiYoQz0hMCksYj09PTA/Qz0hMDpFPWIpOlVpLnRlc3QoSSkmJnk9PT1cInhcIj8oKEV8fEF8fEYpJiYoQz0hMCksJDwwP0M9ITA6QT0kKTokbi50ZXN0KEkpJiZ5PT09XCJoXCI/KChGfHxBKSYmKEM9ITApLGI9PT0wP0M9ITA6Rj1iKTpDPSEwO2lmKCFDKWMuc291cmNlPXt2YWx1ZTpyLHN0YXJ0T2Zmc2V0Om99LEUmJihjLndpZHRoPXt2YWx1ZTpFfSksQSYmKGMuZGVuc2l0eT17dmFsdWU6QX0pLEYmJihjLmhlaWdodD17dmFsdWU6Rn0pLGwucHVzaChjKTtlbHNlIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzcmNzZXQgZGVzY3JpcHRvciBmb3VuZCBpbiBcIiR7dH1cIiBhdCBcIiR7Z31cIi5gKX19dmFyIE1uPVdpO2Z1bmN0aW9uIFNlKHQsZT0hMCl7cmV0dXJuW1UoW3gsdF0pLGU/eDpcIlwiXX1mdW5jdGlvbiBuZSh0LGUpe2xldCByPXQudHlwZT09PVwiTkdSb290XCI/dC5ub2RlLnR5cGU9PT1cIk5HTWljcm9zeW50YXhcIiYmdC5ub2RlLmJvZHkubGVuZ3RoPT09MSYmdC5ub2RlLmJvZHlbMF0udHlwZT09PVwiTkdNaWNyb3N5bnRheEV4cHJlc3Npb25cIj90Lm5vZGUuYm9keVswXS5leHByZXNzaW9uOnQubm9kZTp0LnR5cGU9PT1cIkpzRXhwcmVzc2lvblJvb3RcIj90Lm5vZGU6dDtyZXR1cm4gciYmKHIudHlwZT09PVwiT2JqZWN0RXhwcmVzc2lvblwifHxyLnR5cGU9PT1cIkFycmF5RXhwcmVzc2lvblwifHwoZS5wYXJzZXI9PT1cIl9fdnVlX2V4cHJlc3Npb25cInx8ZS5wYXJzZXI9PT1cIl9fdnVlX3RzX2V4cHJlc3Npb25cIikmJihyLnR5cGU9PT1cIlRlbXBsYXRlTGl0ZXJhbFwifHxyLnR5cGU9PT1cIlN0cmluZ0xpdGVyYWxcIikpfWFzeW5jIGZ1bmN0aW9uIEIodCxlLHIsbil7cj17X19pc0luSHRtbEF0dHJpYnV0ZTohMCxfX2VtYmVkZGVkSW5IdG1sOiEwLC4uLnJ9O2xldCBzPSEwO24mJihyLl9fb25IdG1sQmluZGluZ1Jvb3Q9KGEsdSk9PntzPW4oYSx1KX0pO2xldCBpPWF3YWl0IGUodCxyLGUpO3JldHVybiBzP0QoaSk6U2UoaSl9ZnVuY3Rpb24gR2kodCl7aWYodC5ub2RlLmZ1bGxOYW1lPT09XCJzcmNzZXRcIiYmKHQucGFyZW50LmZ1bGxOYW1lPT09XCJpbWdcInx8dC5wYXJlbnQuZnVsbE5hbWU9PT1cInNvdXJjZVwiKSlyZXR1cm4oKT0+emkoayh0Lm5vZGUpKX12YXIgT249e3dpZHRoOlwid1wiLGhlaWdodDpcImhcIixkZW5zaXR5OlwieFwifSxZaT1PYmplY3Qua2V5cyhPbik7ZnVuY3Rpb24gemkodCl7bGV0IGU9TW4odCkscj1ZaS5maWx0ZXIobD0+ZS5zb21lKGY9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmLGwpKSk7aWYoci5sZW5ndGg+MSl0aHJvdyBuZXcgRXJyb3IoXCJNaXhlZCBkZXNjcmlwdG9yIGluIHNyY3NldCBpcyBub3Qgc3VwcG9ydGVkXCIpO2xldFtuXT1yLHM9T25bbl0saT1lLm1hcChsPT5sLnNvdXJjZS52YWx1ZSksYT1NYXRoLm1heCguLi5pLm1hcChsPT5sLmxlbmd0aCkpLHU9ZS5tYXAobD0+bFtuXT9TdHJpbmcobFtuXS52YWx1ZSk6XCJcIiksbz11Lm1hcChsPT57bGV0IGY9bC5pbmRleE9mKFwiLlwiKTtyZXR1cm4gZj09PS0xP2wubGVuZ3RoOmZ9KSxwPU1hdGgubWF4KC4uLm8pO3JldHVybiBTZShaKFtcIixcIixfXSxpLm1hcCgobCxmKT0+e2xldCBkPVtsXSxDPXVbZl07aWYoQyl7bGV0IEU9YS1sLmxlbmd0aCsxLEE9cC1vW2ZdLEY9XCIgXCIucmVwZWF0KEUrQSk7ZC5wdXNoKGNlKEYsXCIgXCIpLEMrcyl9cmV0dXJuIGR9KSkpfXZhciBxbj1HaTtmdW5jdGlvbiBqaSh0LGUpe2xldHtub2RlOnJ9PXQsbj1rKHIpO2lmKHIuZnVsbE5hbWU9PT1cImNsYXNzXCImJiFlLnBhcmVudFBhcnNlciYmIW4uaW5jbHVkZXMoXCJ7e1wiKSlyZXR1cm4oKT0+bi50cmltKCkuc3BsaXQoL1xccysvKS5qb2luKFwiIFwiKX12YXIgSG49amk7ZnVuY3Rpb24gVm4odCxlKXtsZXR7bm9kZTpyfT10LG49ayh0Lm5vZGUpLnRyaW0oKTtpZihyLmZ1bGxOYW1lPT09XCJzdHlsZVwiJiYhZS5wYXJlbnRQYXJzZXImJiFuLmluY2x1ZGVzKFwie3tcIikpcmV0dXJuIGFzeW5jIHM9PlNlKGF3YWl0IHMobix7cGFyc2VyOlwiY3NzXCIsX19pc0hUTUxTdHlsZUF0dHJpYnV0ZTohMH0pKX1hc3luYyBmdW5jdGlvbiBVbih0LGUscixuKXtsZXQgcz1rKHIubm9kZSkse2xlZnQ6aSxvcGVyYXRvcjphLHJpZ2h0OnV9PUtpKHMpLG89TmUocixuKTtyZXR1cm5bRChhd2FpdCBCKGBmdW5jdGlvbiBfKCR7aX0pIHt9YCx0LHtwYXJzZXI6bz9cImJhYmVsLXRzXCI6XCJiYWJlbFwiLF9faXNWdWVGb3JCaW5kaW5nTGVmdDohMH0pKSxcIiBcIixhLFwiIFwiLGF3YWl0IEIodSx0LHtwYXJzZXI6bz9cIl9fdHNfZXhwcmVzc2lvblwiOlwiX19qc19leHByZXNzaW9uXCJ9KV19ZnVuY3Rpb24gS2kodCl7bGV0IGU9LyguKj8pXFxzKyhpbnxvZilcXHMrKC4qKS9zLHI9LywoW14sXFxdfV0qKSg/OiwoW14sXFxdfV0qKSk/JC8sbj0vXlxcKHxcXCkkL2cscz10Lm1hdGNoKGUpO2lmKCFzKXJldHVybjtsZXQgaT17fTtpZihpLmZvcj1zWzNdLnRyaW0oKSwhaS5mb3IpcmV0dXJuO2xldCBhPXYoITEsc1sxXS50cmltKCksbixcIlwiKSx1PWEubWF0Y2gocik7dT8oaS5hbGlhcz1hLnJlcGxhY2UocixcIlwiKSxpLml0ZXJhdG9yMT11WzFdLnRyaW0oKSx1WzJdJiYoaS5pdGVyYXRvcjI9dVsyXS50cmltKCkpKTppLmFsaWFzPWE7bGV0IG89W2kuYWxpYXMsaS5pdGVyYXRvcjEsaS5pdGVyYXRvcjJdO2lmKCFvLnNvbWUoKHAsbCk9PiFwJiYobD09PTB8fG8uc2xpY2UobCsxKS5zb21lKEJvb2xlYW4pKSkpcmV0dXJue2xlZnQ6by5maWx0ZXIoQm9vbGVhbikuam9pbihcIixcIiksb3BlcmF0b3I6c1syXSxyaWdodDppLmZvcn19ZnVuY3Rpb24gV24odCxlLHIpe2xldHtub2RlOm59PXIscz1rKG4pO3JldHVybiBCKGB0eXBlIFQ8JHtzfT4gPSBhbnlgLHQse3BhcnNlcjpcImJhYmVsLXRzXCIsX19pc0VtYmVkZGVkVHlwZXNjcmlwdEdlbmVyaWNQYXJhbWV0ZXJzOiEwfSxuZSl9ZnVuY3Rpb24gR24odCxlLHtwYXJzZVdpdGhUczpyfSl7cmV0dXJuIEIoYGZ1bmN0aW9uIF8oJHt0fSkge31gLGUse3BhcnNlcjpyP1wiYmFiZWwtdHNcIjpcImJhYmVsXCIsX19pc1Z1ZUJpbmRpbmdzOiEwfSl9ZnVuY3Rpb24gWW4odCl7bGV0IGU9L14oPzpbXFx3JF0rfFxcKFteKV0qXFwpKVxccyo9PnxeZnVuY3Rpb25cXHMqXFwoLyxyPS9eWyRBLVpfYS16XVtcXHckXSooPzpcXC5bJEEtWl9hLXpdW1xcdyRdKnxcXFsnW14nXSonXXxcXFtcIlteXCJdKlwiXXxcXFtcXGQrXXxcXFtbJEEtWl9hLXpdW1xcdyRdKl0pKiQvLG49dC50cmltKCk7cmV0dXJuIGUudGVzdChuKXx8ci50ZXN0KG4pfWZ1bmN0aW9uIFFpKHQsZSl7aWYoZS5wYXJzZXIhPT1cInZ1ZVwiKXJldHVybjtsZXR7bm9kZTpyfT10LG49ci5mdWxsTmFtZTtpZihuPT09XCJ2LWZvclwiKXJldHVybiBVbjtpZihuPT09XCJnZW5lcmljXCImJkV0KHIucGFyZW50LGUpKXJldHVybiBXbjtsZXQgcz1rKHIpLGk9TmUodCxlKTtpZih2bihyKXx8eW4ocixlKSlyZXR1cm4gYT0+R24ocyxhLHtwYXJzZVdpdGhUczppfSk7aWYobi5zdGFydHNXaXRoKFwiQFwiKXx8bi5zdGFydHNXaXRoKFwidi1vbjpcIikpcmV0dXJuIGE9PlhpKHMsYSx7cGFyc2VXaXRoVHM6aX0pO2lmKG4uc3RhcnRzV2l0aChcIjpcIil8fG4uc3RhcnRzV2l0aChcInYtYmluZDpcIikpcmV0dXJuIGE9PkppKHMsYSx7cGFyc2VXaXRoVHM6aX0pO2lmKG4uc3RhcnRzV2l0aChcInYtXCIpKXJldHVybiBhPT56bihzLGEse3BhcnNlV2l0aFRzOml9KX1mdW5jdGlvbiBYaSh0LGUse3BhcnNlV2l0aFRzOnJ9KXtyZXR1cm4gWW4odCk/em4odCxlLHtwYXJzZVdpdGhUczpyfSk6Qih0LGUse3BhcnNlcjpyP1wiX192dWVfdHNfZXZlbnRfYmluZGluZ1wiOlwiX192dWVfZXZlbnRfYmluZGluZ1wifSxuZSl9ZnVuY3Rpb24gSmkodCxlLHtwYXJzZVdpdGhUczpyfSl7cmV0dXJuIEIodCxlLHtwYXJzZXI6cj9cIl9fdnVlX3RzX2V4cHJlc3Npb25cIjpcIl9fdnVlX2V4cHJlc3Npb25cIn0sbmUpfWZ1bmN0aW9uIHpuKHQsZSx7cGFyc2VXaXRoVHM6cn0pe3JldHVybiBCKHQsZSx7cGFyc2VyOnI/XCJfX3RzX2V4cHJlc3Npb25cIjpcIl9fanNfZXhwcmVzc2lvblwifSxuZSl9dmFyIGpuPVFpO3ZhciBmcj0ve3soLis/KX19L3M7YXN5bmMgZnVuY3Rpb24gS24odCxlKXtsZXQgcj1bXTtmb3IobGV0W24sc11vZiB0LnNwbGl0KGZyKS5lbnRyaWVzKCkpaWYobiUyPT09MClyLnB1c2godyhzKSk7ZWxzZSB0cnl7ci5wdXNoKEQoW1wie3tcIixVKFtfLGF3YWl0IEIocyxlLHtwYXJzZXI6XCJfX25nX2ludGVycG9sYXRpb25cIixfX2lzSW5IdG1sSW50ZXJwb2xhdGlvbjohMCx0cmFpbGluZ0NvbW1hOlwibm9uZVwifSldKSxfLFwifX1cIl0pKX1jYXRjaHtyLnB1c2goXCJ7e1wiLHcocyksXCJ9fVwiKX1yZXR1cm4gcn1mdW5jdGlvbiBtcih7cGFyc2VyOnR9KXtyZXR1cm4oZSxyLG4pPT5CKGsobi5ub2RlKSxlLHtwYXJzZXI6dCx0cmFpbGluZ0NvbW1hOlwibm9uZVwifSxuZSl9dmFyIFppPW1yKHtwYXJzZXI6XCJfX25nX2FjdGlvblwifSksZWE9bXIoe3BhcnNlcjpcIl9fbmdfYmluZGluZ1wifSksdGE9bXIoe3BhcnNlcjpcIl9fbmdfZGlyZWN0aXZlXCJ9KTtmdW5jdGlvbiByYSh0LGUpe2lmKGUucGFyc2VyIT09XCJhbmd1bGFyXCIpcmV0dXJuO2xldHtub2RlOnJ9PXQsbj1yLmZ1bGxOYW1lO2lmKG4uc3RhcnRzV2l0aChcIihcIikmJm4uZW5kc1dpdGgoXCIpXCIpfHxuLnN0YXJ0c1dpdGgoXCJvbi1cIikpcmV0dXJuIFppO2lmKG4uc3RhcnRzV2l0aChcIltcIikmJm4uZW5kc1dpdGgoXCJdXCIpfHwvXmJpbmQoPzpvbik/LS8udGVzdChuKXx8L15uZy0oPzppZnxzaG93fGhpZGV8Y2xhc3N8c3R5bGUpJC8udGVzdChuKSlyZXR1cm4gZWE7aWYobi5zdGFydHNXaXRoKFwiKlwiKSlyZXR1cm4gdGE7bGV0IHM9ayhyKTtpZigvXmkxOG4oPzotLispPyQvLnRlc3QobikpcmV0dXJuKCk9PlNlKHB0KFN0KHIscy50cmltKCkpKSwhcy5pbmNsdWRlcyhcIkBAXCIpKTtpZihmci50ZXN0KHMpKXJldHVybiBpPT5LbihzLGkpfXZhciBRbj1yYTtmdW5jdGlvbiBuYSh0LGUpe2xldHtub2RlOnJ9PXQ7aWYoci52YWx1ZSl7aWYoL15QUkVUVElFUl9IVE1MX1BMQUNFSE9MREVSX1xcZCtfXFxkK19JTl9KUyQvLnRlc3QoZS5vcmlnaW5hbFRleHQuc2xpY2Uoci52YWx1ZVNwYW4uc3RhcnQub2Zmc2V0LHIudmFsdWVTcGFuLmVuZC5vZmZzZXQpKXx8ZS5wYXJzZXI9PT1cImx3Y1wiJiZyLnZhbHVlLnN0YXJ0c1dpdGgoXCJ7XCIpJiZyLnZhbHVlLmVuZHNXaXRoKFwifVwiKSlyZXR1cm5bci5yYXdOYW1lLFwiPVwiLHIudmFsdWVdO2ZvcihsZXQgbiBvZltxbixWbixIbixqbixRbl0pe2xldCBzPW4odCxlKTtpZihzKXJldHVybiBzYShzKX19fWZ1bmN0aW9uIHNhKHQpe3JldHVybiBhc3luYyhlLHIsbixzKT0+e2xldCBpPWF3YWl0IHQoZSxyLG4scyk7aWYoaSlyZXR1cm4gaT1odChpLGE9PnR5cGVvZiBhPT1cInN0cmluZ1wiP3YoITEsYSwnXCInLFwiJnF1b3Q7XCIpOmEpLFtuLm5vZGUucmF3TmFtZSwnPVwiJyxEKGkpLCdcIiddfX12YXIgWG49bmE7ZnVuY3Rpb24gaWEodCxlKXtsZXR7bm9kZTpyfT10O3N3aXRjaChyLnR5cGUpe2Nhc2VcImVsZW1lbnRcIjppZihNKHIpfHxyLnR5cGU9PT1cImludGVycG9sYXRpb25cIilyZXR1cm47aWYoIXIuaXNTZWxmQ2xvc2luZyYmQ3QocixlKSl7bGV0IG49c3IocixlKTtyZXR1cm4gbj9hc3luYyhzLGkpPT57bGV0IGE9eXQocixlKSx1PS9eXFxzKiQvLnRlc3QoYSksbz1cIlwiO3JldHVybiB1fHwobz1hd2FpdCBzKHRyKGEpLHtwYXJzZXI6bixfX2VtYmVkZGVkSW5IdG1sOiEwfSksdT1vPT09XCJcIiksW3EocixlKSxEKEtlKHQsZSxpKSksdT9cIlwiOlMsbyx1P1wiXCI6UyxHZShyLGUpLE8ocixlKV19OnZvaWQgMH1icmVhaztjYXNlXCJ0ZXh0XCI6aWYoTShyLnBhcmVudCkpe2xldCBuPXNyKHIucGFyZW50LGUpO2lmKG4pcmV0dXJuIGFzeW5jIHM9PntsZXQgaT1uPT09XCJtYXJrZG93blwiP2lyKHIudmFsdWUucmVwbGFjZSgvXlteXFxTXFxuXSpcXG4vLFwiXCIpKTpyLnZhbHVlLGE9e3BhcnNlcjpuLF9fZW1iZWRkZWRJbkh0bWw6ITB9O2lmKGUucGFyc2VyPT09XCJodG1sXCImJm49PT1cImJhYmVsXCIpe2xldCB1PVwic2NyaXB0XCIse2F0dHJNYXA6b309ci5wYXJlbnQ7byYmKG8udHlwZT09PVwibW9kdWxlXCJ8fG8udHlwZT09PVwidGV4dC9iYWJlbFwiJiZvW1wiZGF0YS10eXBlXCJdPT09XCJtb2R1bGVcIikmJih1PVwibW9kdWxlXCIpLGEuX19iYWJlbFNvdXJjZVR5cGU9dX1yZXR1cm5bSixxKHIsZSksYXdhaXQgcyhpLGEse3N0cmlwVHJhaWxpbmdIYXJkbGluZTohMH0pLE8ocixlKV19fWVsc2UgaWYoci5wYXJlbnQudHlwZT09PVwiaW50ZXJwb2xhdGlvblwiKXJldHVybiBhc3luYyBuPT57bGV0IHM9e19faXNJbkh0bWxJbnRlcnBvbGF0aW9uOiEwLF9fZW1iZWRkZWRJbkh0bWw6ITB9O3JldHVybiBlLnBhcnNlcj09PVwiYW5ndWxhclwiPyhzLnBhcnNlcj1cIl9fbmdfaW50ZXJwb2xhdGlvblwiLHMudHJhaWxpbmdDb21tYT1cIm5vbmVcIik6ZS5wYXJzZXI9PT1cInZ1ZVwiP3MucGFyc2VyPU5lKHQsZSk/XCJfX3Z1ZV90c19leHByZXNzaW9uXCI6XCJfX3Z1ZV9leHByZXNzaW9uXCI6cy5wYXJzZXI9XCJfX2pzX2V4cHJlc3Npb25cIixbVShbXyxhd2FpdCBuKHIudmFsdWUscyldKSxyLnBhcmVudC5uZXh0JiZXKHIucGFyZW50Lm5leHQpP1wiIFwiOl9dfTticmVhaztjYXNlXCJhdHRyaWJ1dGVcIjpyZXR1cm4gWG4odCxlKTtjYXNlXCJmcm9udC1tYXR0ZXJcIjpyZXR1cm4gbj0+Rm4ocixuKX19dmFyIEpuPWlhO2Z1bmN0aW9uIFhlKHQsZSxyKXtsZXQgbj10Lm5vZGU7cmV0dXJuIEhlKG4pP1txKG4sZSksdyhlLm9yaWdpbmFsVGV4dC5zbGljZSh0ZShuKSsobi5wcmV2JiZ6ZShuLnByZXYpP0R0KG4pLmxlbmd0aDowKSxyZShuKS0obi5uZXh0JiZXKG4ubmV4dCk/ZGUobixlKS5sZW5ndGg6MCkpKSxPKG4sZSldOnIoKX1mdW5jdGlvbiBidCh0LGUpe3JldHVybiBQKHQpJiZQKGUpP3QuaXNUcmFpbGluZ1NwYWNlU2Vuc2l0aXZlP3QuaGFzVHJhaWxpbmdTcGFjZXM/ZHQoZSk/UzpfOlwiXCI6ZHQoZSk/Uzp4OnplKHQpJiYoSGUoZSl8fGUuZmlyc3RDaGlsZHx8ZS5pc1NlbGZDbG9zaW5nfHxlLnR5cGU9PT1cImVsZW1lbnRcIiYmZS5hdHRycy5sZW5ndGg+MCl8fHQudHlwZT09PVwiZWxlbWVudFwiJiZ0LmlzU2VsZkNsb3NpbmcmJlcoZSk/XCJcIjohZS5pc0xlYWRpbmdTcGFjZVNlbnNpdGl2ZXx8ZHQoZSl8fFcoZSkmJnQubGFzdENoaWxkJiZDZSh0Lmxhc3RDaGlsZCkmJnQubGFzdENoaWxkLmxhc3RDaGlsZCYmQ2UodC5sYXN0Q2hpbGQubGFzdENoaWxkKT9TOmUuaGFzTGVhZGluZ1NwYWNlcz9fOnh9ZnVuY3Rpb24gd3QodCxlLHIpe2xldHtub2RlOm59PXQ7aWYobnIobikpcmV0dXJuW0osLi4udC5tYXAoaT0+e2xldCBhPWkubm9kZSx1PWEucHJldj9idChhLnByZXYsYSk6XCJcIjtyZXR1cm5bdT9bdSxWZShhLnByZXYpP1M6XCJcIl06XCJcIixYZShpLGUscildfSxcImNoaWxkcmVuXCIpXTtsZXQgcz1uLmNoaWxkcmVuLm1hcCgoKT0+U3ltYm9sKFwiXCIpKTtyZXR1cm4gdC5tYXAoKGksYSk9PntsZXQgdT1pLm5vZGU7aWYoUCh1KSl7aWYodS5wcmV2JiZQKHUucHJldikpe2xldCBFPWJ0KHUucHJldix1KTtpZihFKXJldHVybiBWZSh1LnByZXYpP1tTLFMsWGUoaSxlLHIpXTpbRSxYZShpLGUscildfXJldHVybiBYZShpLGUscil9bGV0IG89W10scD1bXSxsPVtdLGY9W10sZD11LnByZXY/YnQodS5wcmV2LHUpOlwiXCIsQz11Lm5leHQ/YnQodSx1Lm5leHQpOlwiXCI7cmV0dXJuIGQmJihWZSh1LnByZXYpP28ucHVzaChTLFMpOmQ9PT1TP28ucHVzaChTKTpQKHUucHJldik/cC5wdXNoKGQpOnAucHVzaChjZShcIlwiLHgse2dyb3VwSWQ6c1thLTFdfSkpKSxDJiYoVmUodSk/UCh1Lm5leHQpJiZmLnB1c2goUyxTKTpDPT09Uz9QKHUubmV4dCkmJmYucHVzaChTKTpsLnB1c2goQykpLFsuLi5vLEQoWy4uLnAsRChbWGUoaSxlLHIpLC4uLmxdLHtpZDpzW2FdfSldKSwuLi5mXX0sXCJjaGlsZHJlblwiKX1mdW5jdGlvbiBabih0LGUscil7bGV0e25vZGU6bn09dDtpZihtdChuLGUpKXJldHVybltxKG4sZSksRChLZSh0LGUscikpLHcoeXQobixlKSksLi4uR2UobixlKSxPKG4sZSldO2xldCBzPW4uY2hpbGRyZW4ubGVuZ3RoPT09MSYmbi5maXJzdENoaWxkLnR5cGU9PT1cImludGVycG9sYXRpb25cIiYmbi5maXJzdENoaWxkLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlJiYhbi5maXJzdENoaWxkLmhhc0xlYWRpbmdTcGFjZXMmJm4ubGFzdENoaWxkLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZSYmIW4ubGFzdENoaWxkLmhhc1RyYWlsaW5nU3BhY2VzLGk9U3ltYm9sKFwiZWxlbWVudC1hdHRyLWdyb3VwLWlkXCIpLGE9bD0+RChbRChLZSh0LGUscikse2lkOml9KSxsLEdlKG4sZSldKSx1PWw9PnM/anIobCx7Z3JvdXBJZDppfSk6KE0obil8fFdlKG4sZSkpJiZuLnBhcmVudC50eXBlPT09XCJyb290XCImJmUucGFyc2VyPT09XCJ2dWVcIiYmIWUudnVlSW5kZW50U2NyaXB0QW5kU3R5bGU/bDpVKGwpLG89KCk9PnM/Y2UoeCxcIlwiLHtncm91cElkOml9KTpuLmZpcnN0Q2hpbGQuaGFzTGVhZGluZ1NwYWNlcyYmbi5maXJzdENoaWxkLmlzTGVhZGluZ1NwYWNlU2Vuc2l0aXZlP186bi5maXJzdENoaWxkLnR5cGU9PT1cInRleHRcIiYmbi5pc1doaXRlc3BhY2VTZW5zaXRpdmUmJm4uaXNJbmRlbnRhdGlvblNlbnNpdGl2ZT9Zcih4KTp4LHA9KCk9PihuLm5leHQ/VyhuLm5leHQpOmdlKG4ucGFyZW50KSk/bi5sYXN0Q2hpbGQuaGFzVHJhaWxpbmdTcGFjZXMmJm4ubGFzdENoaWxkLmlzVHJhaWxpbmdTcGFjZVNlbnNpdGl2ZT9cIiBcIjpcIlwiOnM/Y2UoeCxcIlwiLHtncm91cElkOml9KTpuLmxhc3RDaGlsZC5oYXNUcmFpbGluZ1NwYWNlcyYmbi5sYXN0Q2hpbGQuaXNUcmFpbGluZ1NwYWNlU2Vuc2l0aXZlP186KG4ubGFzdENoaWxkLnR5cGU9PT1cImNvbW1lbnRcInx8bi5sYXN0Q2hpbGQudHlwZT09PVwidGV4dFwiJiZuLmlzV2hpdGVzcGFjZVNlbnNpdGl2ZSYmbi5pc0luZGVudGF0aW9uU2Vuc2l0aXZlKSYmbmV3IFJlZ0V4cChgXFxcXG5bXFxcXHQgXXske2UudGFiV2lkdGgqKHQuYW5jZXN0b3JzLmxlbmd0aC0xKX19JGApLnRlc3Qobi5sYXN0Q2hpbGQudmFsdWUpP1wiXCI6eDtyZXR1cm4gbi5jaGlsZHJlbi5sZW5ndGg9PT0wP2Eobi5oYXNEYW5nbGluZ1NwYWNlcyYmbi5pc0RhbmdsaW5nU3BhY2VTZW5zaXRpdmU/XzpcIlwiKTphKFtkbihuKT9KOlwiXCIsdShbbygpLHd0KHQsZSxyKV0pLHAoKV0pfXZhciBKZT1udWxsO2Z1bmN0aW9uIFplKHQpe2lmKEplIT09bnVsbCYmdHlwZW9mIEplLnByb3BlcnR5KXtsZXQgZT1KZTtyZXR1cm4gSmU9WmUucHJvdG90eXBlPW51bGwsZX1yZXR1cm4gSmU9WmUucHJvdG90eXBlPXQ/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IFplfXZhciBhYT0xMDtmb3IobGV0IHQ9MDt0PD1hYTt0KyspWmUoKTtmdW5jdGlvbiBkcih0KXtyZXR1cm4gWmUodCl9ZnVuY3Rpb24gdWEodCxlPVwidHlwZVwiKXtkcih0KTtmdW5jdGlvbiByKG4pe2xldCBzPW5bZV0saT10W3NdO2lmKCFBcnJheS5pc0FycmF5KGkpKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7c30nLmApLHtub2RlOm59KTtyZXR1cm4gaX1yZXR1cm4gcn12YXIgZXM9dWE7dmFyIG9hPXtcImZyb250LW1hdHRlclwiOltdLHJvb3Q6W1wiY2hpbGRyZW5cIl0sZWxlbWVudDpbXCJhdHRyc1wiLFwiY2hpbGRyZW5cIl0saWVDb25kaXRpb25hbENvbW1lbnQ6W1wiY2hpbGRyZW5cIl0saWVDb25kaXRpb25hbFN0YXJ0Q29tbWVudDpbXSxpZUNvbmRpdGlvbmFsRW5kQ29tbWVudDpbXSxpbnRlcnBvbGF0aW9uOltcImNoaWxkcmVuXCJdLHRleHQ6W1wiY2hpbGRyZW5cIl0sZG9jVHlwZTpbXSxjb21tZW50OltdLGF0dHJpYnV0ZTpbXSxjZGF0YTpbXX0sdHM9b2E7dmFyIGxhPWVzKHRzKSxycz1sYTtmdW5jdGlvbiBjYSh0LGUscil7bGV0e25vZGU6bn09dDtzd2l0Y2gobi50eXBlKXtjYXNlXCJmcm9udC1tYXR0ZXJcIjpyZXR1cm4gdyhuLnJhdyk7Y2FzZVwicm9vdFwiOnJldHVybiBlLl9fb25IdG1sUm9vdCYmZS5fX29uSHRtbFJvb3QobiksW0Qod3QodCxlLHIpKSxTXTtjYXNlXCJlbGVtZW50XCI6Y2FzZVwiaWVDb25kaXRpb25hbENvbW1lbnRcIjpyZXR1cm4gWm4odCxlLHIpO2Nhc2VcImllQ29uZGl0aW9uYWxTdGFydENvbW1lbnRcIjpjYXNlXCJpZUNvbmRpdGlvbmFsRW5kQ29tbWVudFwiOnJldHVybltRZShuKSxZZShuKV07Y2FzZVwiaW50ZXJwb2xhdGlvblwiOnJldHVybltRZShuLGUpLC4uLnQubWFwKHIsXCJjaGlsZHJlblwiKSxZZShuLGUpXTtjYXNlXCJ0ZXh0XCI6e2lmKG4ucGFyZW50LnR5cGU9PT1cImludGVycG9sYXRpb25cIil7bGV0IGk9L1xcblteXFxTXFxuXSokLyxhPWkudGVzdChuLnZhbHVlKSx1PWE/bi52YWx1ZS5yZXBsYWNlKGksXCJcIik6bi52YWx1ZTtyZXR1cm5bdyh1KSxhP1M6XCJcIl19bGV0IHM9UXIoW3EobixlKSwuLi5TdChuKSxPKG4sZSldKTtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9wdChzKTpzfWNhc2VcImRvY1R5cGVcIjpyZXR1cm5bRChbUWUobixlKSxcIiBcIix2KCExLG4udmFsdWUucmVwbGFjZSgvXmh0bWxcXGIvaSxcImh0bWxcIiksL1xccysvZyxcIiBcIildKSxZZShuLGUpXTtjYXNlXCJjb21tZW50XCI6cmV0dXJuW3EobixlKSx3KGUub3JpZ2luYWxUZXh0LnNsaWNlKHRlKG4pLHJlKG4pKSksTyhuLGUpXTtjYXNlXCJhdHRyaWJ1dGVcIjp7aWYobi52YWx1ZT09PW51bGwpcmV0dXJuIG4ucmF3TmFtZTtsZXQgcz1hcihuLnZhbHVlKSxpPVpyKHMsJ1wiJyk7cmV0dXJuW24ucmF3TmFtZSxcIj1cIixpLHcoaT09PSdcIic/dighMSxzLCdcIicsXCImcXVvdDtcIik6dighMSxzLFwiJ1wiLFwiJmFwb3M7XCIpKSxpXX1jYXNlXCJjZGF0YVwiOmRlZmF1bHQ6dGhyb3cgbmV3IFhyKG4sXCJIVE1MXCIpfX12YXIgcGE9e3ByZXByb2Nlc3M6a24scHJpbnQ6Y2EsaW5zZXJ0UHJhZ21hOkxuLG1hc3NhZ2VBc3ROb2RlOnRuLGVtYmVkOkpuLGdldFZpc2l0b3JLZXlzOnJzfSxucz1wYTt2YXIgTnI9e307cXIoTnIse2FuZ3VsYXI6KCk9PnN1LGh0bWw6KCk9Pm51LGx3YzooKT0+YXUsdnVlOigpPT5pdX0pO3ZhciBfYz1uZXcgUmVnRXhwKGAoXFxcXDpub3RcXFxcKCl8KChbXFxcXC5cXFxcI10/KVstXFxcXHddKyl8KD86XFxcXFsoWy0uXFxcXHcqXFxcXFxcXFwkXSspKD86PShbXCInXT8pKFteXFxcXF1cIiddKilcXFxcNSk/XFxcXF0pfChcXFxcKSl8KFxcXFxzKixcXFxccyopYCxcImdcIik7dmFyIHNzOyhmdW5jdGlvbih0KXt0W3QuRW11bGF0ZWQ9MF09XCJFbXVsYXRlZFwiLHRbdC5Ob25lPTJdPVwiTm9uZVwiLHRbdC5TaGFkb3dEb209M109XCJTaGFkb3dEb21cIn0pKHNzfHwoc3M9e30pKTt2YXIgaXM7KGZ1bmN0aW9uKHQpe3RbdC5PblB1c2g9MF09XCJPblB1c2hcIix0W3QuRGVmYXVsdD0xXT1cIkRlZmF1bHRcIn0pKGlzfHwoaXM9e30pKTt2YXIgZ3I9e25hbWU6XCJjdXN0b20tZWxlbWVudHNcIn0sQ3I9e25hbWU6XCJuby1lcnJvcnMtc2NoZW1hXCJ9O3ZhciBqOyhmdW5jdGlvbih0KXt0W3QuTk9ORT0wXT1cIk5PTkVcIix0W3QuSFRNTD0xXT1cIkhUTUxcIix0W3QuU1RZTEU9Ml09XCJTVFlMRVwiLHRbdC5TQ1JJUFQ9M109XCJTQ1JJUFRcIix0W3QuVVJMPTRdPVwiVVJMXCIsdFt0LlJFU09VUkNFX1VSTD01XT1cIlJFU09VUkNFX1VSTFwifSkoanx8KGo9e30pKTt2YXIgYXM7KGZ1bmN0aW9uKHQpe3RbdC5FcnJvcj0wXT1cIkVycm9yXCIsdFt0Lldhcm5pbmc9MV09XCJXYXJuaW5nXCIsdFt0Lklnbm9yZT0yXT1cIklnbm9yZVwifSkoYXN8fChhcz17fSkpO3ZhciBMOyhmdW5jdGlvbih0KXt0W3QuUkFXX1RFWFQ9MF09XCJSQVdfVEVYVFwiLHRbdC5FU0NBUEFCTEVfUkFXX1RFWFQ9MV09XCJFU0NBUEFCTEVfUkFXX1RFWFRcIix0W3QuUEFSU0FCTEVfREFUQT0yXT1cIlBBUlNBQkxFX0RBVEFcIn0pKEx8fChMPXt9KSk7ZnVuY3Rpb24gZXQodCl7aWYodFswXSE9XCI6XCIpcmV0dXJuW251bGwsdF07bGV0IGU9dC5pbmRleE9mKFwiOlwiLDEpO2lmKGU9PT0tMSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGZvcm1hdCBcIiR7dH1cIiBleHBlY3RpbmcgXCI6bmFtZXNwYWNlOm5hbWVcImApO3JldHVyblt0LnNsaWNlKDEsZSksdC5zbGljZShlKzEpXX1mdW5jdGlvbiBTcih0KXtyZXR1cm4gZXQodClbMV09PT1cIm5nLWNvbnRhaW5lclwifWZ1bmN0aW9uIEVyKHQpe3JldHVybiBldCh0KVsxXT09PVwibmctY29udGVudFwifWZ1bmN0aW9uIEllKHQpe3JldHVybiB0PT09bnVsbD9udWxsOmV0KHQpWzBdfWZ1bmN0aW9uIFJlKHQsZSl7cmV0dXJuIHQ/YDoke3R9OiR7ZX1gOmV9dmFyIHh0O2Z1bmN0aW9uIEFyKCl7cmV0dXJuIHh0fHwoeHQ9e30sVHQoai5IVE1MLFtcImlmcmFtZXxzcmNkb2NcIixcIip8aW5uZXJIVE1MXCIsXCIqfG91dGVySFRNTFwiXSksVHQoai5TVFlMRSxbXCIqfHN0eWxlXCJdKSxUdChqLlVSTCxbXCIqfGZvcm1BY3Rpb25cIixcImFyZWF8aHJlZlwiLFwiYXJlYXxwaW5nXCIsXCJhdWRpb3xzcmNcIixcImF8aHJlZlwiLFwiYXxwaW5nXCIsXCJibG9ja3F1b3RlfGNpdGVcIixcImJvZHl8YmFja2dyb3VuZFwiLFwiZGVsfGNpdGVcIixcImZvcm18YWN0aW9uXCIsXCJpbWd8c3JjXCIsXCJpbnB1dHxzcmNcIixcImluc3xjaXRlXCIsXCJxfGNpdGVcIixcInNvdXJjZXxzcmNcIixcInRyYWNrfHNyY1wiLFwidmlkZW98cG9zdGVyXCIsXCJ2aWRlb3xzcmNcIl0pLFR0KGouUkVTT1VSQ0VfVVJMLFtcImFwcGxldHxjb2RlXCIsXCJhcHBsZXR8Y29kZWJhc2VcIixcImJhc2V8aHJlZlwiLFwiZW1iZWR8c3JjXCIsXCJmcmFtZXxzcmNcIixcImhlYWR8cHJvZmlsZVwiLFwiaHRtbHxtYW5pZmVzdFwiLFwiaWZyYW1lfHNyY1wiLFwibGlua3xocmVmXCIsXCJtZWRpYXxzcmNcIixcIm9iamVjdHxjb2RlYmFzZVwiLFwib2JqZWN0fGRhdGFcIixcInNjcmlwdHxzcmNcIl0pKSx4dH1mdW5jdGlvbiBUdCh0LGUpe2ZvcihsZXQgciBvZiBlKXh0W3IudG9Mb3dlckNhc2UoKV09dH12YXIga3Q9Y2xhc3N7fTt2YXIgaGE9XCJib29sZWFuXCIsZmE9XCJudW1iZXJcIixtYT1cInN0cmluZ1wiLGRhPVwib2JqZWN0XCIsZ2E9W1wiW0VsZW1lbnRdfHRleHRDb250ZW50LCVhcmlhQXRvbWljLCVhcmlhQXV0b0NvbXBsZXRlLCVhcmlhQnVzeSwlYXJpYUNoZWNrZWQsJWFyaWFDb2xDb3VudCwlYXJpYUNvbEluZGV4LCVhcmlhQ29sU3BhbiwlYXJpYUN1cnJlbnQsJWFyaWFEZXNjcmlwdGlvbiwlYXJpYURpc2FibGVkLCVhcmlhRXhwYW5kZWQsJWFyaWFIYXNQb3B1cCwlYXJpYUhpZGRlbiwlYXJpYUtleVNob3J0Y3V0cywlYXJpYUxhYmVsLCVhcmlhTGV2ZWwsJWFyaWFMaXZlLCVhcmlhTW9kYWwsJWFyaWFNdWx0aUxpbmUsJWFyaWFNdWx0aVNlbGVjdGFibGUsJWFyaWFPcmllbnRhdGlvbiwlYXJpYVBsYWNlaG9sZGVyLCVhcmlhUG9zSW5TZXQsJWFyaWFQcmVzc2VkLCVhcmlhUmVhZE9ubHksJWFyaWFSZWxldmFudCwlYXJpYVJlcXVpcmVkLCVhcmlhUm9sZURlc2NyaXB0aW9uLCVhcmlhUm93Q291bnQsJWFyaWFSb3dJbmRleCwlYXJpYVJvd1NwYW4sJWFyaWFTZWxlY3RlZCwlYXJpYVNldFNpemUsJWFyaWFTb3J0LCVhcmlhVmFsdWVNYXgsJWFyaWFWYWx1ZU1pbiwlYXJpYVZhbHVlTm93LCVhcmlhVmFsdWVUZXh0LCVjbGFzc0xpc3QsY2xhc3NOYW1lLGVsZW1lbnRUaW1pbmcsaWQsaW5uZXJIVE1MLCpiZWZvcmVjb3B5LCpiZWZvcmVjdXQsKmJlZm9yZXBhc3RlLCpmdWxsc2NyZWVuY2hhbmdlLCpmdWxsc2NyZWVuZXJyb3IsKnNlYXJjaCwqd2Via2l0ZnVsbHNjcmVlbmNoYW5nZSwqd2Via2l0ZnVsbHNjcmVlbmVycm9yLG91dGVySFRNTCwlcGFydCwjc2Nyb2xsTGVmdCwjc2Nyb2xsVG9wLHNsb3QsKm1lc3NhZ2UsKm1vemZ1bGxzY3JlZW5jaGFuZ2UsKm1vemZ1bGxzY3JlZW5lcnJvciwqbW96cG9pbnRlcmxvY2tjaGFuZ2UsKm1venBvaW50ZXJsb2NrZXJyb3IsKndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IsKndlYmdsY29udGV4dGxvc3QsKndlYmdsY29udGV4dHJlc3RvcmVkXCIsXCJbSFRNTEVsZW1lbnRdXltFbGVtZW50XXxhY2Nlc3NLZXksYXV0b2NhcGl0YWxpemUsIWF1dG9mb2N1cyxjb250ZW50RWRpdGFibGUsZGlyLCFkcmFnZ2FibGUsZW50ZXJLZXlIaW50LCFoaWRkZW4saW5uZXJUZXh0LGlucHV0TW9kZSxsYW5nLG5vbmNlLCphYm9ydCwqYW5pbWF0aW9uZW5kLCphbmltYXRpb25pdGVyYXRpb24sKmFuaW1hdGlvbnN0YXJ0LCphdXhjbGljaywqYmVmb3JleHJzZWxlY3QsKmJsdXIsKmNhbmNlbCwqY2FucGxheSwqY2FucGxheXRocm91Z2gsKmNoYW5nZSwqY2xpY2ssKmNsb3NlLCpjb250ZXh0bWVudSwqY29weSwqY3VlY2hhbmdlLCpjdXQsKmRibGNsaWNrLCpkcmFnLCpkcmFnZW5kLCpkcmFnZW50ZXIsKmRyYWdsZWF2ZSwqZHJhZ292ZXIsKmRyYWdzdGFydCwqZHJvcCwqZHVyYXRpb25jaGFuZ2UsKmVtcHRpZWQsKmVuZGVkLCplcnJvciwqZm9jdXMsKmZvcm1kYXRhLCpnb3Rwb2ludGVyY2FwdHVyZSwqaW5wdXQsKmludmFsaWQsKmtleWRvd24sKmtleXByZXNzLCprZXl1cCwqbG9hZCwqbG9hZGVkZGF0YSwqbG9hZGVkbWV0YWRhdGEsKmxvYWRzdGFydCwqbG9zdHBvaW50ZXJjYXB0dXJlLCptb3VzZWRvd24sKm1vdXNlZW50ZXIsKm1vdXNlbGVhdmUsKm1vdXNlbW92ZSwqbW91c2VvdXQsKm1vdXNlb3ZlciwqbW91c2V1cCwqbW91c2V3aGVlbCwqcGFzdGUsKnBhdXNlLCpwbGF5LCpwbGF5aW5nLCpwb2ludGVyY2FuY2VsLCpwb2ludGVyZG93biwqcG9pbnRlcmVudGVyLCpwb2ludGVybGVhdmUsKnBvaW50ZXJtb3ZlLCpwb2ludGVyb3V0LCpwb2ludGVyb3ZlciwqcG9pbnRlcnJhd3VwZGF0ZSwqcG9pbnRlcnVwLCpwcm9ncmVzcywqcmF0ZWNoYW5nZSwqcmVzZXQsKnJlc2l6ZSwqc2Nyb2xsLCpzZWN1cml0eXBvbGljeXZpb2xhdGlvbiwqc2Vla2VkLCpzZWVraW5nLCpzZWxlY3QsKnNlbGVjdGlvbmNoYW5nZSwqc2VsZWN0c3RhcnQsKnNsb3RjaGFuZ2UsKnN0YWxsZWQsKnN1Ym1pdCwqc3VzcGVuZCwqdGltZXVwZGF0ZSwqdG9nZ2xlLCp0cmFuc2l0aW9uY2FuY2VsLCp0cmFuc2l0aW9uZW5kLCp0cmFuc2l0aW9ucnVuLCp0cmFuc2l0aW9uc3RhcnQsKnZvbHVtZWNoYW5nZSwqd2FpdGluZywqd2Via2l0YW5pbWF0aW9uZW5kLCp3ZWJraXRhbmltYXRpb25pdGVyYXRpb24sKndlYmtpdGFuaW1hdGlvbnN0YXJ0LCp3ZWJraXR0cmFuc2l0aW9uZW5kLCp3aGVlbCxvdXRlclRleHQsIXNwZWxsY2hlY2ssJXN0eWxlLCN0YWJJbmRleCx0aXRsZSwhdHJhbnNsYXRlLHZpcnR1YWxLZXlib2FyZFBvbGljeVwiLFwiYWJicixhZGRyZXNzLGFydGljbGUsYXNpZGUsYixiZGksYmRvLGNpdGUsY29udGVudCxjb2RlLGRkLGRmbixkdCxlbSxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxpLGtiZCxtYWluLG1hcmssbmF2LG5vc2NyaXB0LHJiLHJwLHJ0LHJ0YyxydWJ5LHMsc2FtcCxzZWN0aW9uLHNtYWxsLHN0cm9uZyxzdWIsc3VwLHUsdmFyLHdicl5bSFRNTEVsZW1lbnRdfGFjY2Vzc0tleSxhdXRvY2FwaXRhbGl6ZSwhYXV0b2ZvY3VzLGNvbnRlbnRFZGl0YWJsZSxkaXIsIWRyYWdnYWJsZSxlbnRlcktleUhpbnQsIWhpZGRlbixpbm5lclRleHQsaW5wdXRNb2RlLGxhbmcsbm9uY2UsKmFib3J0LCphbmltYXRpb25lbmQsKmFuaW1hdGlvbml0ZXJhdGlvbiwqYW5pbWF0aW9uc3RhcnQsKmF1eGNsaWNrLCpiZWZvcmV4cnNlbGVjdCwqYmx1ciwqY2FuY2VsLCpjYW5wbGF5LCpjYW5wbGF5dGhyb3VnaCwqY2hhbmdlLCpjbGljaywqY2xvc2UsKmNvbnRleHRtZW51LCpjb3B5LCpjdWVjaGFuZ2UsKmN1dCwqZGJsY2xpY2ssKmRyYWcsKmRyYWdlbmQsKmRyYWdlbnRlciwqZHJhZ2xlYXZlLCpkcmFnb3ZlciwqZHJhZ3N0YXJ0LCpkcm9wLCpkdXJhdGlvbmNoYW5nZSwqZW1wdGllZCwqZW5kZWQsKmVycm9yLCpmb2N1cywqZm9ybWRhdGEsKmdvdHBvaW50ZXJjYXB0dXJlLCppbnB1dCwqaW52YWxpZCwqa2V5ZG93biwqa2V5cHJlc3MsKmtleXVwLCpsb2FkLCpsb2FkZWRkYXRhLCpsb2FkZWRtZXRhZGF0YSwqbG9hZHN0YXJ0LCpsb3N0cG9pbnRlcmNhcHR1cmUsKm1vdXNlZG93biwqbW91c2VlbnRlciwqbW91c2VsZWF2ZSwqbW91c2Vtb3ZlLCptb3VzZW91dCwqbW91c2VvdmVyLCptb3VzZXVwLCptb3VzZXdoZWVsLCpwYXN0ZSwqcGF1c2UsKnBsYXksKnBsYXlpbmcsKnBvaW50ZXJjYW5jZWwsKnBvaW50ZXJkb3duLCpwb2ludGVyZW50ZXIsKnBvaW50ZXJsZWF2ZSwqcG9pbnRlcm1vdmUsKnBvaW50ZXJvdXQsKnBvaW50ZXJvdmVyLCpwb2ludGVycmF3dXBkYXRlLCpwb2ludGVydXAsKnByb2dyZXNzLCpyYXRlY2hhbmdlLCpyZXNldCwqcmVzaXplLCpzY3JvbGwsKnNlY3VyaXR5cG9saWN5dmlvbGF0aW9uLCpzZWVrZWQsKnNlZWtpbmcsKnNlbGVjdCwqc2VsZWN0aW9uY2hhbmdlLCpzZWxlY3RzdGFydCwqc2xvdGNoYW5nZSwqc3RhbGxlZCwqc3VibWl0LCpzdXNwZW5kLCp0aW1ldXBkYXRlLCp0b2dnbGUsKnRyYW5zaXRpb25jYW5jZWwsKnRyYW5zaXRpb25lbmQsKnRyYW5zaXRpb25ydW4sKnRyYW5zaXRpb25zdGFydCwqdm9sdW1lY2hhbmdlLCp3YWl0aW5nLCp3ZWJraXRhbmltYXRpb25lbmQsKndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiwqd2Via2l0YW5pbWF0aW9uc3RhcnQsKndlYmtpdHRyYW5zaXRpb25lbmQsKndoZWVsLG91dGVyVGV4dCwhc3BlbGxjaGVjaywlc3R5bGUsI3RhYkluZGV4LHRpdGxlLCF0cmFuc2xhdGUsdmlydHVhbEtleWJvYXJkUG9saWN5XCIsXCJtZWRpYV5bSFRNTEVsZW1lbnRdfCFhdXRvcGxheSwhY29udHJvbHMsJWNvbnRyb2xzTGlzdCwlY3Jvc3NPcmlnaW4sI2N1cnJlbnRUaW1lLCFkZWZhdWx0TXV0ZWQsI2RlZmF1bHRQbGF5YmFja1JhdGUsIWRpc2FibGVSZW1vdGVQbGF5YmFjaywhbG9vcCwhbXV0ZWQsKmVuY3J5cHRlZCwqd2FpdGluZ2ZvcmtleSwjcGxheWJhY2tSYXRlLHByZWxvYWQsIXByZXNlcnZlc1BpdGNoLHNyYywlc3JjT2JqZWN0LCN2b2x1bWVcIixcIjpzdmc6XltIVE1MRWxlbWVudF18IWF1dG9mb2N1cyxub25jZSwqYWJvcnQsKmFuaW1hdGlvbmVuZCwqYW5pbWF0aW9uaXRlcmF0aW9uLCphbmltYXRpb25zdGFydCwqYXV4Y2xpY2ssKmJlZm9yZXhyc2VsZWN0LCpibHVyLCpjYW5jZWwsKmNhbnBsYXksKmNhbnBsYXl0aHJvdWdoLCpjaGFuZ2UsKmNsaWNrLCpjbG9zZSwqY29udGV4dG1lbnUsKmNvcHksKmN1ZWNoYW5nZSwqY3V0LCpkYmxjbGljaywqZHJhZywqZHJhZ2VuZCwqZHJhZ2VudGVyLCpkcmFnbGVhdmUsKmRyYWdvdmVyLCpkcmFnc3RhcnQsKmRyb3AsKmR1cmF0aW9uY2hhbmdlLCplbXB0aWVkLCplbmRlZCwqZXJyb3IsKmZvY3VzLCpmb3JtZGF0YSwqZ290cG9pbnRlcmNhcHR1cmUsKmlucHV0LCppbnZhbGlkLCprZXlkb3duLCprZXlwcmVzcywqa2V5dXAsKmxvYWQsKmxvYWRlZGRhdGEsKmxvYWRlZG1ldGFkYXRhLCpsb2Fkc3RhcnQsKmxvc3Rwb2ludGVyY2FwdHVyZSwqbW91c2Vkb3duLCptb3VzZWVudGVyLCptb3VzZWxlYXZlLCptb3VzZW1vdmUsKm1vdXNlb3V0LCptb3VzZW92ZXIsKm1vdXNldXAsKm1vdXNld2hlZWwsKnBhc3RlLCpwYXVzZSwqcGxheSwqcGxheWluZywqcG9pbnRlcmNhbmNlbCwqcG9pbnRlcmRvd24sKnBvaW50ZXJlbnRlciwqcG9pbnRlcmxlYXZlLCpwb2ludGVybW92ZSwqcG9pbnRlcm91dCwqcG9pbnRlcm92ZXIsKnBvaW50ZXJyYXd1cGRhdGUsKnBvaW50ZXJ1cCwqcHJvZ3Jlc3MsKnJhdGVjaGFuZ2UsKnJlc2V0LCpyZXNpemUsKnNjcm9sbCwqc2VjdXJpdHlwb2xpY3l2aW9sYXRpb24sKnNlZWtlZCwqc2Vla2luZywqc2VsZWN0LCpzZWxlY3Rpb25jaGFuZ2UsKnNlbGVjdHN0YXJ0LCpzbG90Y2hhbmdlLCpzdGFsbGVkLCpzdWJtaXQsKnN1c3BlbmQsKnRpbWV1cGRhdGUsKnRvZ2dsZSwqdHJhbnNpdGlvbmNhbmNlbCwqdHJhbnNpdGlvbmVuZCwqdHJhbnNpdGlvbnJ1biwqdHJhbnNpdGlvbnN0YXJ0LCp2b2x1bWVjaGFuZ2UsKndhaXRpbmcsKndlYmtpdGFuaW1hdGlvbmVuZCwqd2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uLCp3ZWJraXRhbmltYXRpb25zdGFydCwqd2Via2l0dHJhbnNpdGlvbmVuZCwqd2hlZWwsJXN0eWxlLCN0YWJJbmRleFwiLFwiOnN2ZzpncmFwaGljc146c3ZnOnxcIixcIjpzdmc6YW5pbWF0aW9uXjpzdmc6fCpiZWdpbiwqZW5kLCpyZXBlYXRcIixcIjpzdmc6Z2VvbWV0cnleOnN2Zzp8XCIsXCI6c3ZnOmNvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25eOnN2Zzp8XCIsXCI6c3ZnOmdyYWRpZW50Xjpzdmc6fFwiLFwiOnN2Zzp0ZXh0Q29udGVudF46c3ZnOmdyYXBoaWNzfFwiLFwiOnN2Zzp0ZXh0UG9zaXRpb25pbmdeOnN2Zzp0ZXh0Q29udGVudHxcIixcImFeW0hUTUxFbGVtZW50XXxjaGFyc2V0LGNvb3Jkcyxkb3dubG9hZCxoYXNoLGhvc3QsaG9zdG5hbWUsaHJlZixocmVmbGFuZyxuYW1lLHBhc3N3b3JkLHBhdGhuYW1lLHBpbmcscG9ydCxwcm90b2NvbCxyZWZlcnJlclBvbGljeSxyZWwsJXJlbExpc3QscmV2LHNlYXJjaCxzaGFwZSx0YXJnZXQsdGV4dCx0eXBlLHVzZXJuYW1lXCIsXCJhcmVhXltIVE1MRWxlbWVudF18YWx0LGNvb3Jkcyxkb3dubG9hZCxoYXNoLGhvc3QsaG9zdG5hbWUsaHJlZiwhbm9IcmVmLHBhc3N3b3JkLHBhdGhuYW1lLHBpbmcscG9ydCxwcm90b2NvbCxyZWZlcnJlclBvbGljeSxyZWwsJXJlbExpc3Qsc2VhcmNoLHNoYXBlLHRhcmdldCx1c2VybmFtZVwiLFwiYXVkaW9ebWVkaWF8XCIsXCJicl5bSFRNTEVsZW1lbnRdfGNsZWFyXCIsXCJiYXNlXltIVE1MRWxlbWVudF18aHJlZix0YXJnZXRcIixcImJvZHleW0hUTUxFbGVtZW50XXxhTGluayxiYWNrZ3JvdW5kLGJnQ29sb3IsbGluaywqYWZ0ZXJwcmludCwqYmVmb3JlcHJpbnQsKmJlZm9yZXVubG9hZCwqYmx1ciwqZXJyb3IsKmZvY3VzLCpoYXNoY2hhbmdlLCpsYW5ndWFnZWNoYW5nZSwqbG9hZCwqbWVzc2FnZSwqbWVzc2FnZWVycm9yLCpvZmZsaW5lLCpvbmxpbmUsKnBhZ2VoaWRlLCpwYWdlc2hvdywqcG9wc3RhdGUsKnJlamVjdGlvbmhhbmRsZWQsKnJlc2l6ZSwqc2Nyb2xsLCpzdG9yYWdlLCp1bmhhbmRsZWRyZWplY3Rpb24sKnVubG9hZCx0ZXh0LHZMaW5rXCIsXCJidXR0b25eW0hUTUxFbGVtZW50XXwhZGlzYWJsZWQsZm9ybUFjdGlvbixmb3JtRW5jdHlwZSxmb3JtTWV0aG9kLCFmb3JtTm9WYWxpZGF0ZSxmb3JtVGFyZ2V0LG5hbWUsdHlwZSx2YWx1ZVwiLFwiY2FudmFzXltIVE1MRWxlbWVudF18I2hlaWdodCwjd2lkdGhcIixcImNvbnRlbnReW0hUTUxFbGVtZW50XXxzZWxlY3RcIixcImRsXltIVE1MRWxlbWVudF18IWNvbXBhY3RcIixcImRhdGFeW0hUTUxFbGVtZW50XXx2YWx1ZVwiLFwiZGF0YWxpc3ReW0hUTUxFbGVtZW50XXxcIixcImRldGFpbHNeW0hUTUxFbGVtZW50XXwhb3BlblwiLFwiZGlhbG9nXltIVE1MRWxlbWVudF18IW9wZW4scmV0dXJuVmFsdWVcIixcImRpcl5bSFRNTEVsZW1lbnRdfCFjb21wYWN0XCIsXCJkaXZeW0hUTUxFbGVtZW50XXxhbGlnblwiLFwiZW1iZWReW0hUTUxFbGVtZW50XXxhbGlnbixoZWlnaHQsbmFtZSxzcmMsdHlwZSx3aWR0aFwiLFwiZmllbGRzZXReW0hUTUxFbGVtZW50XXwhZGlzYWJsZWQsbmFtZVwiLFwiZm9udF5bSFRNTEVsZW1lbnRdfGNvbG9yLGZhY2Usc2l6ZVwiLFwiZm9ybV5bSFRNTEVsZW1lbnRdfGFjY2VwdENoYXJzZXQsYWN0aW9uLGF1dG9jb21wbGV0ZSxlbmNvZGluZyxlbmN0eXBlLG1ldGhvZCxuYW1lLCFub1ZhbGlkYXRlLHRhcmdldFwiLFwiZnJhbWVeW0hUTUxFbGVtZW50XXxmcmFtZUJvcmRlcixsb25nRGVzYyxtYXJnaW5IZWlnaHQsbWFyZ2luV2lkdGgsbmFtZSwhbm9SZXNpemUsc2Nyb2xsaW5nLHNyY1wiLFwiZnJhbWVzZXReW0hUTUxFbGVtZW50XXxjb2xzLCphZnRlcnByaW50LCpiZWZvcmVwcmludCwqYmVmb3JldW5sb2FkLCpibHVyLCplcnJvciwqZm9jdXMsKmhhc2hjaGFuZ2UsKmxhbmd1YWdlY2hhbmdlLCpsb2FkLCptZXNzYWdlLCptZXNzYWdlZXJyb3IsKm9mZmxpbmUsKm9ubGluZSwqcGFnZWhpZGUsKnBhZ2VzaG93LCpwb3BzdGF0ZSwqcmVqZWN0aW9uaGFuZGxlZCwqcmVzaXplLCpzY3JvbGwsKnN0b3JhZ2UsKnVuaGFuZGxlZHJlamVjdGlvbiwqdW5sb2FkLHJvd3NcIixcImhyXltIVE1MRWxlbWVudF18YWxpZ24sY29sb3IsIW5vU2hhZGUsc2l6ZSx3aWR0aFwiLFwiaGVhZF5bSFRNTEVsZW1lbnRdfFwiLFwiaDEsaDIsaDMsaDQsaDUsaDZeW0hUTUxFbGVtZW50XXxhbGlnblwiLFwiaHRtbF5bSFRNTEVsZW1lbnRdfHZlcnNpb25cIixcImlmcmFtZV5bSFRNTEVsZW1lbnRdfGFsaWduLGFsbG93LCFhbGxvd0Z1bGxzY3JlZW4sIWFsbG93UGF5bWVudFJlcXVlc3QsY3NwLGZyYW1lQm9yZGVyLGhlaWdodCxsb2FkaW5nLGxvbmdEZXNjLG1hcmdpbkhlaWdodCxtYXJnaW5XaWR0aCxuYW1lLHJlZmVycmVyUG9saWN5LCVzYW5kYm94LHNjcm9sbGluZyxzcmMsc3JjZG9jLHdpZHRoXCIsXCJpbWdeW0hUTUxFbGVtZW50XXxhbGlnbixhbHQsYm9yZGVyLCVjcm9zc09yaWdpbixkZWNvZGluZywjaGVpZ2h0LCNoc3BhY2UsIWlzTWFwLGxvYWRpbmcsbG9uZ0Rlc2MsbG93c3JjLG5hbWUscmVmZXJyZXJQb2xpY3ksc2l6ZXMsc3JjLHNyY3NldCx1c2VNYXAsI3ZzcGFjZSwjd2lkdGhcIixcImlucHV0XltIVE1MRWxlbWVudF18YWNjZXB0LGFsaWduLGFsdCxhdXRvY29tcGxldGUsIWNoZWNrZWQsIWRlZmF1bHRDaGVja2VkLGRlZmF1bHRWYWx1ZSxkaXJOYW1lLCFkaXNhYmxlZCwlZmlsZXMsZm9ybUFjdGlvbixmb3JtRW5jdHlwZSxmb3JtTWV0aG9kLCFmb3JtTm9WYWxpZGF0ZSxmb3JtVGFyZ2V0LCNoZWlnaHQsIWluY3JlbWVudGFsLCFpbmRldGVybWluYXRlLG1heCwjbWF4TGVuZ3RoLG1pbiwjbWluTGVuZ3RoLCFtdWx0aXBsZSxuYW1lLHBhdHRlcm4scGxhY2Vob2xkZXIsIXJlYWRPbmx5LCFyZXF1aXJlZCxzZWxlY3Rpb25EaXJlY3Rpb24sI3NlbGVjdGlvbkVuZCwjc2VsZWN0aW9uU3RhcnQsI3NpemUsc3JjLHN0ZXAsdHlwZSx1c2VNYXAsdmFsdWUsJXZhbHVlQXNEYXRlLCN2YWx1ZUFzTnVtYmVyLCN3aWR0aFwiLFwibGleW0hUTUxFbGVtZW50XXx0eXBlLCN2YWx1ZVwiLFwibGFiZWxeW0hUTUxFbGVtZW50XXxodG1sRm9yXCIsXCJsZWdlbmReW0hUTUxFbGVtZW50XXxhbGlnblwiLFwibGlua15bSFRNTEVsZW1lbnRdfGFzLGNoYXJzZXQsJWNyb3NzT3JpZ2luLCFkaXNhYmxlZCxocmVmLGhyZWZsYW5nLGltYWdlU2l6ZXMsaW1hZ2VTcmNzZXQsaW50ZWdyaXR5LG1lZGlhLHJlZmVycmVyUG9saWN5LHJlbCwlcmVsTGlzdCxyZXYsJXNpemVzLHRhcmdldCx0eXBlXCIsXCJtYXBeW0hUTUxFbGVtZW50XXxuYW1lXCIsXCJtYXJxdWVlXltIVE1MRWxlbWVudF18YmVoYXZpb3IsYmdDb2xvcixkaXJlY3Rpb24saGVpZ2h0LCNoc3BhY2UsI2xvb3AsI3Njcm9sbEFtb3VudCwjc2Nyb2xsRGVsYXksIXRydWVTcGVlZCwjdnNwYWNlLHdpZHRoXCIsXCJtZW51XltIVE1MRWxlbWVudF18IWNvbXBhY3RcIixcIm1ldGFeW0hUTUxFbGVtZW50XXxjb250ZW50LGh0dHBFcXVpdixtZWRpYSxuYW1lLHNjaGVtZVwiLFwibWV0ZXJeW0hUTUxFbGVtZW50XXwjaGlnaCwjbG93LCNtYXgsI21pbiwjb3B0aW11bSwjdmFsdWVcIixcImlucyxkZWxeW0hUTUxFbGVtZW50XXxjaXRlLGRhdGVUaW1lXCIsXCJvbF5bSFRNTEVsZW1lbnRdfCFjb21wYWN0LCFyZXZlcnNlZCwjc3RhcnQsdHlwZVwiLFwib2JqZWN0XltIVE1MRWxlbWVudF18YWxpZ24sYXJjaGl2ZSxib3JkZXIsY29kZSxjb2RlQmFzZSxjb2RlVHlwZSxkYXRhLCFkZWNsYXJlLGhlaWdodCwjaHNwYWNlLG5hbWUsc3RhbmRieSx0eXBlLHVzZU1hcCwjdnNwYWNlLHdpZHRoXCIsXCJvcHRncm91cF5bSFRNTEVsZW1lbnRdfCFkaXNhYmxlZCxsYWJlbFwiLFwib3B0aW9uXltIVE1MRWxlbWVudF18IWRlZmF1bHRTZWxlY3RlZCwhZGlzYWJsZWQsbGFiZWwsIXNlbGVjdGVkLHRleHQsdmFsdWVcIixcIm91dHB1dF5bSFRNTEVsZW1lbnRdfGRlZmF1bHRWYWx1ZSwlaHRtbEZvcixuYW1lLHZhbHVlXCIsXCJwXltIVE1MRWxlbWVudF18YWxpZ25cIixcInBhcmFtXltIVE1MRWxlbWVudF18bmFtZSx0eXBlLHZhbHVlLHZhbHVlVHlwZVwiLFwicGljdHVyZV5bSFRNTEVsZW1lbnRdfFwiLFwicHJlXltIVE1MRWxlbWVudF18I3dpZHRoXCIsXCJwcm9ncmVzc15bSFRNTEVsZW1lbnRdfCNtYXgsI3ZhbHVlXCIsXCJxLGJsb2NrcXVvdGUsY2l0ZV5bSFRNTEVsZW1lbnRdfFwiLFwic2NyaXB0XltIVE1MRWxlbWVudF18IWFzeW5jLGNoYXJzZXQsJWNyb3NzT3JpZ2luLCFkZWZlcixldmVudCxodG1sRm9yLGludGVncml0eSwhbm9Nb2R1bGUsJXJlZmVycmVyUG9saWN5LHNyYyx0ZXh0LHR5cGVcIixcInNlbGVjdF5bSFRNTEVsZW1lbnRdfGF1dG9jb21wbGV0ZSwhZGlzYWJsZWQsI2xlbmd0aCwhbXVsdGlwbGUsbmFtZSwhcmVxdWlyZWQsI3NlbGVjdGVkSW5kZXgsI3NpemUsdmFsdWVcIixcInNsb3ReW0hUTUxFbGVtZW50XXxuYW1lXCIsXCJzb3VyY2VeW0hUTUxFbGVtZW50XXwjaGVpZ2h0LG1lZGlhLHNpemVzLHNyYyxzcmNzZXQsdHlwZSwjd2lkdGhcIixcInNwYW5eW0hUTUxFbGVtZW50XXxcIixcInN0eWxlXltIVE1MRWxlbWVudF18IWRpc2FibGVkLG1lZGlhLHR5cGVcIixcImNhcHRpb25eW0hUTUxFbGVtZW50XXxhbGlnblwiLFwidGgsdGReW0hUTUxFbGVtZW50XXxhYmJyLGFsaWduLGF4aXMsYmdDb2xvcixjaCxjaE9mZiwjY29sU3BhbixoZWFkZXJzLGhlaWdodCwhbm9XcmFwLCNyb3dTcGFuLHNjb3BlLHZBbGlnbix3aWR0aFwiLFwiY29sLGNvbGdyb3VwXltIVE1MRWxlbWVudF18YWxpZ24sY2gsY2hPZmYsI3NwYW4sdkFsaWduLHdpZHRoXCIsXCJ0YWJsZV5bSFRNTEVsZW1lbnRdfGFsaWduLGJnQ29sb3IsYm9yZGVyLCVjYXB0aW9uLGNlbGxQYWRkaW5nLGNlbGxTcGFjaW5nLGZyYW1lLHJ1bGVzLHN1bW1hcnksJXRGb290LCV0SGVhZCx3aWR0aFwiLFwidHJeW0hUTUxFbGVtZW50XXxhbGlnbixiZ0NvbG9yLGNoLGNoT2ZmLHZBbGlnblwiLFwidGZvb3QsdGhlYWQsdGJvZHleW0hUTUxFbGVtZW50XXxhbGlnbixjaCxjaE9mZix2QWxpZ25cIixcInRlbXBsYXRlXltIVE1MRWxlbWVudF18XCIsXCJ0ZXh0YXJlYV5bSFRNTEVsZW1lbnRdfGF1dG9jb21wbGV0ZSwjY29scyxkZWZhdWx0VmFsdWUsZGlyTmFtZSwhZGlzYWJsZWQsI21heExlbmd0aCwjbWluTGVuZ3RoLG5hbWUscGxhY2Vob2xkZXIsIXJlYWRPbmx5LCFyZXF1aXJlZCwjcm93cyxzZWxlY3Rpb25EaXJlY3Rpb24sI3NlbGVjdGlvbkVuZCwjc2VsZWN0aW9uU3RhcnQsdmFsdWUsd3JhcFwiLFwidGltZV5bSFRNTEVsZW1lbnRdfGRhdGVUaW1lXCIsXCJ0aXRsZV5bSFRNTEVsZW1lbnRdfHRleHRcIixcInRyYWNrXltIVE1MRWxlbWVudF18IWRlZmF1bHQsa2luZCxsYWJlbCxzcmMsc3JjbGFuZ1wiLFwidWxeW0hUTUxFbGVtZW50XXwhY29tcGFjdCx0eXBlXCIsXCJ1bmtub3duXltIVE1MRWxlbWVudF18XCIsXCJ2aWRlb15tZWRpYXwhZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUsI2hlaWdodCwqZW50ZXJwaWN0dXJlaW5waWN0dXJlLCpsZWF2ZXBpY3R1cmVpbnBpY3R1cmUsIXBsYXlzSW5saW5lLHBvc3Rlciwjd2lkdGhcIixcIjpzdmc6YV46c3ZnOmdyYXBoaWNzfFwiLFwiOnN2ZzphbmltYXRlXjpzdmc6YW5pbWF0aW9ufFwiLFwiOnN2ZzphbmltYXRlTW90aW9uXjpzdmc6YW5pbWF0aW9ufFwiLFwiOnN2ZzphbmltYXRlVHJhbnNmb3JtXjpzdmc6YW5pbWF0aW9ufFwiLFwiOnN2ZzpjaXJjbGVeOnN2ZzpnZW9tZXRyeXxcIixcIjpzdmc6Y2xpcFBhdGheOnN2ZzpncmFwaGljc3xcIixcIjpzdmc6ZGVmc146c3ZnOmdyYXBoaWNzfFwiLFwiOnN2ZzpkZXNjXjpzdmc6fFwiLFwiOnN2ZzpkaXNjYXJkXjpzdmc6fFwiLFwiOnN2ZzplbGxpcHNlXjpzdmc6Z2VvbWV0cnl8XCIsXCI6c3ZnOmZlQmxlbmReOnN2Zzp8XCIsXCI6c3ZnOmZlQ29sb3JNYXRyaXheOnN2Zzp8XCIsXCI6c3ZnOmZlQ29tcG9uZW50VHJhbnNmZXJeOnN2Zzp8XCIsXCI6c3ZnOmZlQ29tcG9zaXRlXjpzdmc6fFwiLFwiOnN2ZzpmZUNvbnZvbHZlTWF0cml4Xjpzdmc6fFwiLFwiOnN2ZzpmZURpZmZ1c2VMaWdodGluZ146c3ZnOnxcIixcIjpzdmc6ZmVEaXNwbGFjZW1lbnRNYXBeOnN2Zzp8XCIsXCI6c3ZnOmZlRGlzdGFudExpZ2h0Xjpzdmc6fFwiLFwiOnN2ZzpmZURyb3BTaGFkb3deOnN2Zzp8XCIsXCI6c3ZnOmZlRmxvb2ReOnN2Zzp8XCIsXCI6c3ZnOmZlRnVuY0FeOnN2Zzpjb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9ufFwiLFwiOnN2ZzpmZUZ1bmNCXjpzdmc6Y29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbnxcIixcIjpzdmc6ZmVGdW5jR146c3ZnOmNvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb258XCIsXCI6c3ZnOmZlRnVuY1JeOnN2Zzpjb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9ufFwiLFwiOnN2ZzpmZUdhdXNzaWFuQmx1cl46c3ZnOnxcIixcIjpzdmc6ZmVJbWFnZV46c3ZnOnxcIixcIjpzdmc6ZmVNZXJnZV46c3ZnOnxcIixcIjpzdmc6ZmVNZXJnZU5vZGVeOnN2Zzp8XCIsXCI6c3ZnOmZlTW9ycGhvbG9neV46c3ZnOnxcIixcIjpzdmc6ZmVPZmZzZXReOnN2Zzp8XCIsXCI6c3ZnOmZlUG9pbnRMaWdodF46c3ZnOnxcIixcIjpzdmc6ZmVTcGVjdWxhckxpZ2h0aW5nXjpzdmc6fFwiLFwiOnN2ZzpmZVNwb3RMaWdodF46c3ZnOnxcIixcIjpzdmc6ZmVUaWxlXjpzdmc6fFwiLFwiOnN2ZzpmZVR1cmJ1bGVuY2VeOnN2Zzp8XCIsXCI6c3ZnOmZpbHRlcl46c3ZnOnxcIixcIjpzdmc6Zm9yZWlnbk9iamVjdF46c3ZnOmdyYXBoaWNzfFwiLFwiOnN2ZzpnXjpzdmc6Z3JhcGhpY3N8XCIsXCI6c3ZnOmltYWdlXjpzdmc6Z3JhcGhpY3N8ZGVjb2RpbmdcIixcIjpzdmc6bGluZV46c3ZnOmdlb21ldHJ5fFwiLFwiOnN2ZzpsaW5lYXJHcmFkaWVudF46c3ZnOmdyYWRpZW50fFwiLFwiOnN2ZzptcGF0aF46c3ZnOnxcIixcIjpzdmc6bWFya2VyXjpzdmc6fFwiLFwiOnN2ZzptYXNrXjpzdmc6fFwiLFwiOnN2ZzptZXRhZGF0YV46c3ZnOnxcIixcIjpzdmc6cGF0aF46c3ZnOmdlb21ldHJ5fFwiLFwiOnN2ZzpwYXR0ZXJuXjpzdmc6fFwiLFwiOnN2Zzpwb2x5Z29uXjpzdmc6Z2VvbWV0cnl8XCIsXCI6c3ZnOnBvbHlsaW5lXjpzdmc6Z2VvbWV0cnl8XCIsXCI6c3ZnOnJhZGlhbEdyYWRpZW50Xjpzdmc6Z3JhZGllbnR8XCIsXCI6c3ZnOnJlY3ReOnN2ZzpnZW9tZXRyeXxcIixcIjpzdmc6c3ZnXjpzdmc6Z3JhcGhpY3N8I2N1cnJlbnRTY2FsZSwjem9vbUFuZFBhblwiLFwiOnN2ZzpzY3JpcHReOnN2Zzp8dHlwZVwiLFwiOnN2ZzpzZXReOnN2ZzphbmltYXRpb258XCIsXCI6c3ZnOnN0b3BeOnN2Zzp8XCIsXCI6c3ZnOnN0eWxlXjpzdmc6fCFkaXNhYmxlZCxtZWRpYSx0aXRsZSx0eXBlXCIsXCI6c3ZnOnN3aXRjaF46c3ZnOmdyYXBoaWNzfFwiLFwiOnN2ZzpzeW1ib2xeOnN2Zzp8XCIsXCI6c3ZnOnRzcGFuXjpzdmc6dGV4dFBvc2l0aW9uaW5nfFwiLFwiOnN2Zzp0ZXh0Xjpzdmc6dGV4dFBvc2l0aW9uaW5nfFwiLFwiOnN2Zzp0ZXh0UGF0aF46c3ZnOnRleHRDb250ZW50fFwiLFwiOnN2Zzp0aXRsZV46c3ZnOnxcIixcIjpzdmc6dXNlXjpzdmc6Z3JhcGhpY3N8XCIsXCI6c3ZnOnZpZXdeOnN2Zzp8I3pvb21BbmRQYW5cIixcImRhdGFeW0hUTUxFbGVtZW50XXx2YWx1ZVwiLFwia2V5Z2VuXltIVE1MRWxlbWVudF18IWF1dG9mb2N1cyxjaGFsbGVuZ2UsIWRpc2FibGVkLGZvcm0sa2V5dHlwZSxuYW1lXCIsXCJtZW51aXRlbV5bSFRNTEVsZW1lbnRdfHR5cGUsbGFiZWwsaWNvbiwhZGlzYWJsZWQsIWNoZWNrZWQscmFkaW9ncm91cCwhZGVmYXVsdFwiLFwic3VtbWFyeV5bSFRNTEVsZW1lbnRdfFwiLFwidGltZV5bSFRNTEVsZW1lbnRdfGRhdGVUaW1lXCIsXCI6c3ZnOmN1cnNvcl46c3ZnOnxcIl0sdXM9bmV3IE1hcChPYmplY3QuZW50cmllcyh7Y2xhc3M6XCJjbGFzc05hbWVcIixmb3I6XCJodG1sRm9yXCIsZm9ybWFjdGlvbjpcImZvcm1BY3Rpb25cIixpbm5lckh0bWw6XCJpbm5lckhUTUxcIixyZWFkb25seTpcInJlYWRPbmx5XCIsdGFiaW5kZXg6XCJ0YWJJbmRleFwifSkpLENhPUFycmF5LmZyb20odXMpLnJlZHVjZSgodCxbZSxyXSk9Pih0LnNldChlLHIpLHQpLG5ldyBNYXApLEJ0PWNsYXNzIGV4dGVuZHMga3R7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuX3NjaGVtYT1uZXcgTWFwLHRoaXMuX2V2ZW50U2NoZW1hPW5ldyBNYXAsZ2EuZm9yRWFjaChlPT57bGV0IHI9bmV3IE1hcCxuPW5ldyBTZXQsW3MsaV09ZS5zcGxpdChcInxcIiksYT1pLnNwbGl0KFwiLFwiKSxbdSxvXT1zLnNwbGl0KFwiXlwiKTt1LnNwbGl0KFwiLFwiKS5mb3JFYWNoKGw9Pnt0aGlzLl9zY2hlbWEuc2V0KGwudG9Mb3dlckNhc2UoKSxyKSx0aGlzLl9ldmVudFNjaGVtYS5zZXQobC50b0xvd2VyQ2FzZSgpLG4pfSk7bGV0IHA9byYmdGhpcy5fc2NoZW1hLmdldChvLnRvTG93ZXJDYXNlKCkpO2lmKHApe2ZvcihsZXRbbCxmXW9mIHApci5zZXQobCxmKTtmb3IobGV0IGwgb2YgdGhpcy5fZXZlbnRTY2hlbWEuZ2V0KG8udG9Mb3dlckNhc2UoKSkpbi5hZGQobCl9YS5mb3JFYWNoKGw9PntpZihsLmxlbmd0aD4wKXN3aXRjaChsWzBdKXtjYXNlXCIqXCI6bi5hZGQobC5zdWJzdHJpbmcoMSkpO2JyZWFrO2Nhc2VcIiFcIjpyLnNldChsLnN1YnN0cmluZygxKSxoYSk7YnJlYWs7Y2FzZVwiI1wiOnIuc2V0KGwuc3Vic3RyaW5nKDEpLGZhKTticmVhaztjYXNlXCIlXCI6ci5zZXQobC5zdWJzdHJpbmcoMSksZGEpO2JyZWFrO2RlZmF1bHQ6ci5zZXQobCxtYSl9fSl9KX1oYXNQcm9wZXJ0eShlLHIsbil7aWYobi5zb21lKGk9PmkubmFtZT09PUNyLm5hbWUpKXJldHVybiEwO2lmKGUuaW5kZXhPZihcIi1cIik+LTEpe2lmKFNyKGUpfHxFcihlKSlyZXR1cm4hMTtpZihuLnNvbWUoaT0+aS5uYW1lPT09Z3IubmFtZSkpcmV0dXJuITB9cmV0dXJuKHRoaXMuX3NjaGVtYS5nZXQoZS50b0xvd2VyQ2FzZSgpKXx8dGhpcy5fc2NoZW1hLmdldChcInVua25vd25cIikpLmhhcyhyKX1oYXNFbGVtZW50KGUscil7cmV0dXJuIHIuc29tZShuPT5uLm5hbWU9PT1Dci5uYW1lKXx8ZS5pbmRleE9mKFwiLVwiKT4tMSYmKFNyKGUpfHxFcihlKXx8ci5zb21lKG49Pm4ubmFtZT09PWdyLm5hbWUpKT8hMDp0aGlzLl9zY2hlbWEuaGFzKGUudG9Mb3dlckNhc2UoKSl9c2VjdXJpdHlDb250ZXh0KGUscixuKXtuJiYocj10aGlzLmdldE1hcHBlZFByb3BOYW1lKHIpKSxlPWUudG9Mb3dlckNhc2UoKSxyPXIudG9Mb3dlckNhc2UoKTtsZXQgcz1BcigpW2UrXCJ8XCIrcl07cmV0dXJuIHN8fChzPUFyKClbXCIqfFwiK3JdLHN8fGouTk9ORSl9Z2V0TWFwcGVkUHJvcE5hbWUoZSl7cmV0dXJuIHVzLmdldChlKT8/ZX1nZXREZWZhdWx0Q29tcG9uZW50RWxlbWVudE5hbWUoKXtyZXR1cm5cIm5nLWNvbXBvbmVudFwifXZhbGlkYXRlUHJvcGVydHkoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwib25cIik/e2Vycm9yOiEwLG1zZzpgQmluZGluZyB0byBldmVudCBwcm9wZXJ0eSAnJHtlfScgaXMgZGlzYWxsb3dlZCBmb3Igc2VjdXJpdHkgcmVhc29ucywgcGxlYXNlIHVzZSAoJHtlLnNsaWNlKDIpfSk9Li4uXG5JZiAnJHtlfScgaXMgYSBkaXJlY3RpdmUgaW5wdXQsIG1ha2Ugc3VyZSB0aGUgZGlyZWN0aXZlIGlzIGltcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1vZHVsZS5gfTp7ZXJyb3I6ITF9fXZhbGlkYXRlQXR0cmlidXRlKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcIm9uXCIpP3tlcnJvcjohMCxtc2c6YEJpbmRpbmcgdG8gZXZlbnQgYXR0cmlidXRlICcke2V9JyBpcyBkaXNhbGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLCBwbGVhc2UgdXNlICgke2Uuc2xpY2UoMil9KT0uLi5gfTp7ZXJyb3I6ITF9fWFsbEtub3duRWxlbWVudE5hbWVzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5fc2NoZW1hLmtleXMoKSl9YWxsS25vd25BdHRyaWJ1dGVzT2ZFbGVtZW50KGUpe2xldCByPXRoaXMuX3NjaGVtYS5nZXQoZS50b0xvd2VyQ2FzZSgpKXx8dGhpcy5fc2NoZW1hLmdldChcInVua25vd25cIik7cmV0dXJuIEFycmF5LmZyb20oci5rZXlzKCkpLm1hcChuPT5DYS5nZXQobik/P24pfWFsbEtub3duRXZlbnRzT2ZFbGVtZW50KGUpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2V2ZW50U2NoZW1hLmdldChlLnRvTG93ZXJDYXNlKCkpPz9bXSl9bm9ybWFsaXplQW5pbWF0aW9uU3R5bGVQcm9wZXJ0eShlKXtyZXR1cm4geG4oZSl9bm9ybWFsaXplQW5pbWF0aW9uU3R5bGVWYWx1ZShlLHIsbil7bGV0IHM9XCJcIixpPW4udG9TdHJpbmcoKS50cmltKCksYT1udWxsO2lmKFNhKGUpJiZuIT09MCYmbiE9PVwiMFwiKWlmKHR5cGVvZiBuPT1cIm51bWJlclwiKXM9XCJweFwiO2Vsc2V7bGV0IHU9bi5tYXRjaCgvXlsrLV0/W1xcZFxcLl0rKFthLXpdKikkLyk7dSYmdVsxXS5sZW5ndGg9PTAmJihhPWBQbGVhc2UgcHJvdmlkZSBhIENTUyB1bml0IHZhbHVlIGZvciAke3J9OiR7bn1gKX1yZXR1cm57ZXJyb3I6YSx2YWx1ZTppK3N9fX07ZnVuY3Rpb24gU2EodCl7c3dpdGNoKHQpe2Nhc2VcIndpZHRoXCI6Y2FzZVwiaGVpZ2h0XCI6Y2FzZVwibWluV2lkdGhcIjpjYXNlXCJtaW5IZWlnaHRcIjpjYXNlXCJtYXhXaWR0aFwiOmNhc2VcIm1heEhlaWdodFwiOmNhc2VcImxlZnRcIjpjYXNlXCJ0b3BcIjpjYXNlXCJib3R0b21cIjpjYXNlXCJyaWdodFwiOmNhc2VcImZvbnRTaXplXCI6Y2FzZVwib3V0bGluZVdpZHRoXCI6Y2FzZVwib3V0bGluZU9mZnNldFwiOmNhc2VcInBhZGRpbmdUb3BcIjpjYXNlXCJwYWRkaW5nTGVmdFwiOmNhc2VcInBhZGRpbmdCb3R0b21cIjpjYXNlXCJwYWRkaW5nUmlnaHRcIjpjYXNlXCJtYXJnaW5Ub3BcIjpjYXNlXCJtYXJnaW5MZWZ0XCI6Y2FzZVwibWFyZ2luQm90dG9tXCI6Y2FzZVwibWFyZ2luUmlnaHRcIjpjYXNlXCJib3JkZXJSYWRpdXNcIjpjYXNlXCJib3JkZXJXaWR0aFwiOmNhc2VcImJvcmRlclRvcFdpZHRoXCI6Y2FzZVwiYm9yZGVyTGVmdFdpZHRoXCI6Y2FzZVwiYm9yZGVyUmlnaHRXaWR0aFwiOmNhc2VcImJvcmRlckJvdHRvbVdpZHRoXCI6Y2FzZVwidGV4dEluZGVudFwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBoPWNsYXNze2NvbnN0cnVjdG9yKHtjbG9zZWRCeUNoaWxkcmVuOmUsaW1wbGljaXROYW1lc3BhY2VQcmVmaXg6cixjb250ZW50VHlwZTpuPUwuUEFSU0FCTEVfREFUQSxjbG9zZWRCeVBhcmVudDpzPSExLGlzVm9pZDppPSExLGlnbm9yZUZpcnN0TGY6YT0hMSxwcmV2ZW50TmFtZXNwYWNlSW5oZXJpdGFuY2U6dT0hMSxjYW5TZWxmQ2xvc2U6bz0hMX09e30pe3RoaXMuY2xvc2VkQnlDaGlsZHJlbj17fSx0aGlzLmNsb3NlZEJ5UGFyZW50PSExLGUmJmUubGVuZ3RoPjAmJmUuZm9yRWFjaChwPT50aGlzLmNsb3NlZEJ5Q2hpbGRyZW5bcF09ITApLHRoaXMuaXNWb2lkPWksdGhpcy5jbG9zZWRCeVBhcmVudD1zfHxpLHRoaXMuaW1wbGljaXROYW1lc3BhY2VQcmVmaXg9cnx8bnVsbCx0aGlzLmNvbnRlbnRUeXBlPW4sdGhpcy5pZ25vcmVGaXJzdExmPWEsdGhpcy5wcmV2ZW50TmFtZXNwYWNlSW5oZXJpdGFuY2U9dSx0aGlzLmNhblNlbGZDbG9zZT1vPz9pfWlzQ2xvc2VkQnlDaGlsZChlKXtyZXR1cm4gdGhpcy5pc1ZvaWR8fGUudG9Mb3dlckNhc2UoKWluIHRoaXMuY2xvc2VkQnlDaGlsZHJlbn1nZXRDb250ZW50VHlwZShlKXtyZXR1cm4gdHlwZW9mIHRoaXMuY29udGVudFR5cGU9PVwib2JqZWN0XCI/KGU9PT12b2lkIDA/dm9pZCAwOnRoaXMuY29udGVudFR5cGVbZV0pPz90aGlzLmNvbnRlbnRUeXBlLmRlZmF1bHQ6dGhpcy5jb250ZW50VHlwZX19LG9zLHR0O2Z1bmN0aW9uICRlKHQpe3JldHVybiB0dHx8KG9zPW5ldyBoKHtjYW5TZWxmQ2xvc2U6ITB9KSx0dD17YmFzZTpuZXcgaCh7aXNWb2lkOiEwfSksbWV0YTpuZXcgaCh7aXNWb2lkOiEwfSksYXJlYTpuZXcgaCh7aXNWb2lkOiEwfSksZW1iZWQ6bmV3IGgoe2lzVm9pZDohMH0pLGxpbms6bmV3IGgoe2lzVm9pZDohMH0pLGltZzpuZXcgaCh7aXNWb2lkOiEwfSksaW5wdXQ6bmV3IGgoe2lzVm9pZDohMH0pLHBhcmFtOm5ldyBoKHtpc1ZvaWQ6ITB9KSxocjpuZXcgaCh7aXNWb2lkOiEwfSksYnI6bmV3IGgoe2lzVm9pZDohMH0pLHNvdXJjZTpuZXcgaCh7aXNWb2lkOiEwfSksdHJhY2s6bmV3IGgoe2lzVm9pZDohMH0pLHdicjpuZXcgaCh7aXNWb2lkOiEwfSkscDpuZXcgaCh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJhZGRyZXNzXCIsXCJhcnRpY2xlXCIsXCJhc2lkZVwiLFwiYmxvY2txdW90ZVwiLFwiZGl2XCIsXCJkbFwiLFwiZmllbGRzZXRcIixcImZvb3RlclwiLFwiZm9ybVwiLFwiaDFcIixcImgyXCIsXCJoM1wiLFwiaDRcIixcImg1XCIsXCJoNlwiLFwiaGVhZGVyXCIsXCJoZ3JvdXBcIixcImhyXCIsXCJtYWluXCIsXCJuYXZcIixcIm9sXCIsXCJwXCIsXCJwcmVcIixcInNlY3Rpb25cIixcInRhYmxlXCIsXCJ1bFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHRoZWFkOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInRib2R5XCIsXCJ0Zm9vdFwiXX0pLHRib2R5Om5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInRib2R5XCIsXCJ0Zm9vdFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHRmb290Om5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInRib2R5XCJdLGNsb3NlZEJ5UGFyZW50OiEwfSksdHI6bmV3IGgoe2Nsb3NlZEJ5Q2hpbGRyZW46W1widHJcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSx0ZDpuZXcgaCh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJ0ZFwiLFwidGhcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSx0aDpuZXcgaCh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJ0ZFwiLFwidGhcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxjb2w6bmV3IGgoe2lzVm9pZDohMH0pLHN2ZzpuZXcgaCh7aW1wbGljaXROYW1lc3BhY2VQcmVmaXg6XCJzdmdcIn0pLGZvcmVpZ25PYmplY3Q6bmV3IGgoe2ltcGxpY2l0TmFtZXNwYWNlUHJlZml4Olwic3ZnXCIscHJldmVudE5hbWVzcGFjZUluaGVyaXRhbmNlOiEwfSksbWF0aDpuZXcgaCh7aW1wbGljaXROYW1lc3BhY2VQcmVmaXg6XCJtYXRoXCJ9KSxsaTpuZXcgaCh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJsaVwiXSxjbG9zZWRCeVBhcmVudDohMH0pLGR0Om5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcImR0XCIsXCJkZFwiXX0pLGRkOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcImR0XCIsXCJkZFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHJiOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInJiXCIsXCJydFwiLFwicnRjXCIsXCJycFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHJ0Om5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInJiXCIsXCJydFwiLFwicnRjXCIsXCJycFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHJ0YzpuZXcgaCh7Y2xvc2VkQnlDaGlsZHJlbjpbXCJyYlwiLFwicnRjXCIsXCJycFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLHJwOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcInJiXCIsXCJydFwiLFwicnRjXCIsXCJycFwiXSxjbG9zZWRCeVBhcmVudDohMH0pLG9wdGdyb3VwOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcIm9wdGdyb3VwXCJdLGNsb3NlZEJ5UGFyZW50OiEwfSksb3B0aW9uOm5ldyBoKHtjbG9zZWRCeUNoaWxkcmVuOltcIm9wdGlvblwiLFwib3B0Z3JvdXBcIl0sY2xvc2VkQnlQYXJlbnQ6ITB9KSxwcmU6bmV3IGgoe2lnbm9yZUZpcnN0TGY6ITB9KSxsaXN0aW5nOm5ldyBoKHtpZ25vcmVGaXJzdExmOiEwfSksc3R5bGU6bmV3IGgoe2NvbnRlbnRUeXBlOkwuUkFXX1RFWFR9KSxzY3JpcHQ6bmV3IGgoe2NvbnRlbnRUeXBlOkwuUkFXX1RFWFR9KSx0aXRsZTpuZXcgaCh7Y29udGVudFR5cGU6e2RlZmF1bHQ6TC5FU0NBUEFCTEVfUkFXX1RFWFQsc3ZnOkwuUEFSU0FCTEVfREFUQX19KSx0ZXh0YXJlYTpuZXcgaCh7Y29udGVudFR5cGU6TC5FU0NBUEFCTEVfUkFXX1RFWFQsaWdub3JlRmlyc3RMZjohMH0pfSxuZXcgQnQoKS5hbGxLbm93bkVsZW1lbnROYW1lcygpLmZvckVhY2goZT0+eyF0dC5oYXNPd25Qcm9wZXJ0eShlKSYmSWUoZSk9PT1udWxsJiYodHRbZV09bmV3IGgoe2NhblNlbGZDbG9zZTohMX0pKX0pKSx0dFt0XT8/b3N9dmFyIEVlPWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy5zb3VyY2VTcGFuPWUsdGhpcy5pMThuPXJ9fSxMdD1jbGFzcyBleHRlbmRzIEVle2NvbnN0cnVjdG9yKGUscixuLHMpe3N1cGVyKHIscyksdGhpcy52YWx1ZT1lLHRoaXMudG9rZW5zPW4sdGhpcy50eXBlPVwidGV4dFwifXZpc2l0KGUscil7cmV0dXJuIGUudmlzaXRUZXh0KHRoaXMscil9fSxGdD1jbGFzcyBleHRlbmRzIEVle2NvbnN0cnVjdG9yKGUscixuLHMpe3N1cGVyKHIscyksdGhpcy52YWx1ZT1lLHRoaXMudG9rZW5zPW4sdGhpcy50eXBlPVwiY2RhdGFcIn12aXNpdChlLHIpe3JldHVybiBlLnZpc2l0Q2RhdGEodGhpcyxyKX19LFB0PWNsYXNzIGV4dGVuZHMgRWV7Y29uc3RydWN0b3IoZSxyLG4scyxpLGEpe3N1cGVyKHMsYSksdGhpcy5zd2l0Y2hWYWx1ZT1lLHRoaXMudHlwZT1yLHRoaXMuY2FzZXM9bix0aGlzLnN3aXRjaFZhbHVlU291cmNlU3Bhbj1pfXZpc2l0KGUscil7cmV0dXJuIGUudmlzaXRFeHBhbnNpb24odGhpcyxyKX19LE50PWNsYXNze2NvbnN0cnVjdG9yKGUscixuLHMsaSl7dGhpcy52YWx1ZT1lLHRoaXMuZXhwcmVzc2lvbj1yLHRoaXMuc291cmNlU3Bhbj1uLHRoaXMudmFsdWVTb3VyY2VTcGFuPXMsdGhpcy5leHBTb3VyY2VTcGFuPWl9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEV4cGFuc2lvbkNhc2UodGhpcyxyKX19LEl0PWNsYXNzIGV4dGVuZHMgRWV7Y29uc3RydWN0b3IoZSxyLG4scyxpLGEsdSl7c3VwZXIobix1KSx0aGlzLm5hbWU9ZSx0aGlzLnZhbHVlPXIsdGhpcy5rZXlTcGFuPXMsdGhpcy52YWx1ZVNwYW49aSx0aGlzLnZhbHVlVG9rZW5zPWEsdGhpcy50eXBlPVwiYXR0cmlidXRlXCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEF0dHJpYnV0ZSh0aGlzLHIpfWdldCBuYW1lU3Bhbigpe3JldHVybiB0aGlzLmtleVNwYW59fSxSdD1jbGFzcyBleHRlbmRzIEVle2NvbnN0cnVjdG9yKGUscixuLHMsaSxhPW51bGwsdT1udWxsLG8pe3N1cGVyKHMsbyksdGhpcy5uYW1lPWUsdGhpcy5hdHRycz1yLHRoaXMuY2hpbGRyZW49bix0aGlzLnN0YXJ0U291cmNlU3Bhbj1pLHRoaXMuZW5kU291cmNlU3Bhbj1hLHRoaXMubmFtZVNwYW49dSx0aGlzLnR5cGU9XCJlbGVtZW50XCJ9dmlzaXQoZSxyKXtyZXR1cm4gZS52aXNpdEVsZW1lbnQodGhpcyxyKX19LCR0PWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy52YWx1ZT1lLHRoaXMuc291cmNlU3Bhbj1yLHRoaXMudHlwZT1cImNvbW1lbnRcIn12aXNpdChlLHIpe3JldHVybiBlLnZpc2l0Q29tbWVudCh0aGlzLHIpfX0sTXQ9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnZhbHVlPWUsdGhpcy5zb3VyY2VTcGFuPXIsdGhpcy50eXBlPVwiZG9jVHlwZVwifXZpc2l0KGUscil7cmV0dXJuIGUudmlzaXREb2NUeXBlKHRoaXMscil9fTtmdW5jdGlvbiBPdCh0LGUscj1udWxsKXtsZXQgbj1bXSxzPXQudmlzaXQ/aT0+dC52aXNpdChpLHIpfHxpLnZpc2l0KHQscik6aT0+aS52aXNpdCh0LHIpO3JldHVybiBlLmZvckVhY2goaT0+e2xldCBhPXMoaSk7YSYmbi5wdXNoKGEpfSksbn12YXIgcnQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt9dmlzaXRFbGVtZW50KGUscil7dGhpcy52aXNpdENoaWxkcmVuKHIsbj0+e24oZS5hdHRycyksbihlLmNoaWxkcmVuKX0pfXZpc2l0QXR0cmlidXRlKGUscil7fXZpc2l0VGV4dChlLHIpe312aXNpdENkYXRhKGUscil7fXZpc2l0Q29tbWVudChlLHIpe312aXNpdERvY1R5cGUoZSxyKXt9dmlzaXRFeHBhbnNpb24oZSxyKXtyZXR1cm4gdGhpcy52aXNpdENoaWxkcmVuKHIsbj0+e24oZS5jYXNlcyl9KX12aXNpdEV4cGFuc2lvbkNhc2UoZSxyKXt9dmlzaXRDaGlsZHJlbihlLHIpe2xldCBuPVtdLHM9dGhpcztmdW5jdGlvbiBpKGEpe2EmJm4ucHVzaChPdChzLGEsZSkpfXJldHVybiByKGkpLEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sbil9fTt2YXIgTWU9e0FFbGlnOlwiXFx4QzZcIixBTVA6XCImXCIsYW1wOlwiJlwiLEFhY3V0ZTpcIlxceEMxXCIsQWJyZXZlOlwiXFx1MDEwMlwiLEFjaXJjOlwiXFx4QzJcIixBY3k6XCJcXHUwNDEwXCIsQWZyOlwiXFx1ezFENTA0fVwiLEFncmF2ZTpcIlxceEMwXCIsQWxwaGE6XCJcXHUwMzkxXCIsQW1hY3I6XCJcXHUwMTAwXCIsQW5kOlwiXFx1MkE1M1wiLEFvZ29uOlwiXFx1MDEwNFwiLEFvcGY6XCJcXHV7MUQ1Mzh9XCIsQXBwbHlGdW5jdGlvbjpcIlxcdTIwNjFcIixhZjpcIlxcdTIwNjFcIixBcmluZzpcIlxceEM1XCIsYW5nc3Q6XCJcXHhDNVwiLEFzY3I6XCJcXHV7MUQ0OUN9XCIsQXNzaWduOlwiXFx1MjI1NFwiLGNvbG9uZTpcIlxcdTIyNTRcIixjb2xvbmVxOlwiXFx1MjI1NFwiLEF0aWxkZTpcIlxceEMzXCIsQXVtbDpcIlxceEM0XCIsQmFja3NsYXNoOlwiXFx1MjIxNlwiLHNldG1pbnVzOlwiXFx1MjIxNlwiLHNldG1uOlwiXFx1MjIxNlwiLHNtYWxsc2V0bWludXM6XCJcXHUyMjE2XCIsc3NldG1uOlwiXFx1MjIxNlwiLEJhcnY6XCJcXHUyQUU3XCIsQmFyd2VkOlwiXFx1MjMwNlwiLGRvdWJsZWJhcndlZGdlOlwiXFx1MjMwNlwiLEJjeTpcIlxcdTA0MTFcIixCZWNhdXNlOlwiXFx1MjIzNVwiLGJlY2F1czpcIlxcdTIyMzVcIixiZWNhdXNlOlwiXFx1MjIzNVwiLEJlcm5vdWxsaXM6XCJcXHUyMTJDXCIsQnNjcjpcIlxcdTIxMkNcIixiZXJub3U6XCJcXHUyMTJDXCIsQmV0YTpcIlxcdTAzOTJcIixCZnI6XCJcXHV7MUQ1MDV9XCIsQm9wZjpcIlxcdXsxRDUzOX1cIixCcmV2ZTpcIlxcdTAyRDhcIixicmV2ZTpcIlxcdTAyRDhcIixCdW1wZXE6XCJcXHUyMjRFXCIsSHVtcERvd25IdW1wOlwiXFx1MjI0RVwiLGJ1bXA6XCJcXHUyMjRFXCIsQ0hjeTpcIlxcdTA0MjdcIixDT1BZOlwiXFx4QTlcIixjb3B5OlwiXFx4QTlcIixDYWN1dGU6XCJcXHUwMTA2XCIsQ2FwOlwiXFx1MjJEMlwiLENhcGl0YWxEaWZmZXJlbnRpYWxEOlwiXFx1MjE0NVwiLEREOlwiXFx1MjE0NVwiLENheWxleXM6XCJcXHUyMTJEXCIsQ2ZyOlwiXFx1MjEyRFwiLENjYXJvbjpcIlxcdTAxMENcIixDY2VkaWw6XCJcXHhDN1wiLENjaXJjOlwiXFx1MDEwOFwiLENjb25pbnQ6XCJcXHUyMjMwXCIsQ2RvdDpcIlxcdTAxMEFcIixDZWRpbGxhOlwiXFx4QjhcIixjZWRpbDpcIlxceEI4XCIsQ2VudGVyRG90OlwiXFx4QjdcIixjZW50ZXJkb3Q6XCJcXHhCN1wiLG1pZGRvdDpcIlxceEI3XCIsQ2hpOlwiXFx1MDNBN1wiLENpcmNsZURvdDpcIlxcdTIyOTlcIixvZG90OlwiXFx1MjI5OVwiLENpcmNsZU1pbnVzOlwiXFx1MjI5NlwiLG9taW51czpcIlxcdTIyOTZcIixDaXJjbGVQbHVzOlwiXFx1MjI5NVwiLG9wbHVzOlwiXFx1MjI5NVwiLENpcmNsZVRpbWVzOlwiXFx1MjI5N1wiLG90aW1lczpcIlxcdTIyOTdcIixDbG9ja3dpc2VDb250b3VySW50ZWdyYWw6XCJcXHUyMjMyXCIsY3djb25pbnQ6XCJcXHUyMjMyXCIsQ2xvc2VDdXJseURvdWJsZVF1b3RlOlwiXFx1MjAxRFwiLHJkcXVvOlwiXFx1MjAxRFwiLHJkcXVvcjpcIlxcdTIwMURcIixDbG9zZUN1cmx5UXVvdGU6XCJcXHUyMDE5XCIscnNxdW86XCJcXHUyMDE5XCIscnNxdW9yOlwiXFx1MjAxOVwiLENvbG9uOlwiXFx1MjIzN1wiLFByb3BvcnRpb246XCJcXHUyMjM3XCIsQ29sb25lOlwiXFx1MkE3NFwiLENvbmdydWVudDpcIlxcdTIyNjFcIixlcXVpdjpcIlxcdTIyNjFcIixDb25pbnQ6XCJcXHUyMjJGXCIsRG91YmxlQ29udG91ckludGVncmFsOlwiXFx1MjIyRlwiLENvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMkVcIixjb25pbnQ6XCJcXHUyMjJFXCIsb2ludDpcIlxcdTIyMkVcIixDb3BmOlwiXFx1MjEwMlwiLGNvbXBsZXhlczpcIlxcdTIxMDJcIixDb3Byb2R1Y3Q6XCJcXHUyMjEwXCIsY29wcm9kOlwiXFx1MjIxMFwiLENvdW50ZXJDbG9ja3dpc2VDb250b3VySW50ZWdyYWw6XCJcXHUyMjMzXCIsYXdjb25pbnQ6XCJcXHUyMjMzXCIsQ3Jvc3M6XCJcXHUyQTJGXCIsQ3NjcjpcIlxcdXsxRDQ5RX1cIixDdXA6XCJcXHUyMkQzXCIsQ3VwQ2FwOlwiXFx1MjI0RFwiLGFzeW1wZXE6XCJcXHUyMjREXCIsRERvdHJhaGQ6XCJcXHUyOTExXCIsREpjeTpcIlxcdTA0MDJcIixEU2N5OlwiXFx1MDQwNVwiLERaY3k6XCJcXHUwNDBGXCIsRGFnZ2VyOlwiXFx1MjAyMVwiLGRkYWdnZXI6XCJcXHUyMDIxXCIsRGFycjpcIlxcdTIxQTFcIixEYXNodjpcIlxcdTJBRTRcIixEb3VibGVMZWZ0VGVlOlwiXFx1MkFFNFwiLERjYXJvbjpcIlxcdTAxMEVcIixEY3k6XCJcXHUwNDE0XCIsRGVsOlwiXFx1MjIwN1wiLG5hYmxhOlwiXFx1MjIwN1wiLERlbHRhOlwiXFx1MDM5NFwiLERmcjpcIlxcdXsxRDUwN31cIixEaWFjcml0aWNhbEFjdXRlOlwiXFx4QjRcIixhY3V0ZTpcIlxceEI0XCIsRGlhY3JpdGljYWxEb3Q6XCJcXHUwMkQ5XCIsZG90OlwiXFx1MDJEOVwiLERpYWNyaXRpY2FsRG91YmxlQWN1dGU6XCJcXHUwMkREXCIsZGJsYWM6XCJcXHUwMkREXCIsRGlhY3JpdGljYWxHcmF2ZTpcImBcIixncmF2ZTpcImBcIixEaWFjcml0aWNhbFRpbGRlOlwiXFx1MDJEQ1wiLHRpbGRlOlwiXFx1MDJEQ1wiLERpYW1vbmQ6XCJcXHUyMkM0XCIsZGlhbTpcIlxcdTIyQzRcIixkaWFtb25kOlwiXFx1MjJDNFwiLERpZmZlcmVudGlhbEQ6XCJcXHUyMTQ2XCIsZGQ6XCJcXHUyMTQ2XCIsRG9wZjpcIlxcdXsxRDUzQn1cIixEb3Q6XCJcXHhBOFwiLERvdWJsZURvdDpcIlxceEE4XCIsZGllOlwiXFx4QThcIix1bWw6XCJcXHhBOFwiLERvdERvdDpcIlxcdTIwRENcIixEb3RFcXVhbDpcIlxcdTIyNTBcIixkb3RlcTpcIlxcdTIyNTBcIixlc2RvdDpcIlxcdTIyNTBcIixEb3VibGVEb3duQXJyb3c6XCJcXHUyMUQzXCIsRG93bmFycm93OlwiXFx1MjFEM1wiLGRBcnI6XCJcXHUyMUQzXCIsRG91YmxlTGVmdEFycm93OlwiXFx1MjFEMFwiLExlZnRhcnJvdzpcIlxcdTIxRDBcIixsQXJyOlwiXFx1MjFEMFwiLERvdWJsZUxlZnRSaWdodEFycm93OlwiXFx1MjFENFwiLExlZnRyaWdodGFycm93OlwiXFx1MjFENFwiLGhBcnI6XCJcXHUyMUQ0XCIsaWZmOlwiXFx1MjFENFwiLERvdWJsZUxvbmdMZWZ0QXJyb3c6XCJcXHUyN0Y4XCIsTG9uZ2xlZnRhcnJvdzpcIlxcdTI3RjhcIix4bEFycjpcIlxcdTI3RjhcIixEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3c6XCJcXHUyN0ZBXCIsTG9uZ2xlZnRyaWdodGFycm93OlwiXFx1MjdGQVwiLHhoQXJyOlwiXFx1MjdGQVwiLERvdWJsZUxvbmdSaWdodEFycm93OlwiXFx1MjdGOVwiLExvbmdyaWdodGFycm93OlwiXFx1MjdGOVwiLHhyQXJyOlwiXFx1MjdGOVwiLERvdWJsZVJpZ2h0QXJyb3c6XCJcXHUyMUQyXCIsSW1wbGllczpcIlxcdTIxRDJcIixSaWdodGFycm93OlwiXFx1MjFEMlwiLHJBcnI6XCJcXHUyMUQyXCIsRG91YmxlUmlnaHRUZWU6XCJcXHUyMkE4XCIsdkRhc2g6XCJcXHUyMkE4XCIsRG91YmxlVXBBcnJvdzpcIlxcdTIxRDFcIixVcGFycm93OlwiXFx1MjFEMVwiLHVBcnI6XCJcXHUyMUQxXCIsRG91YmxlVXBEb3duQXJyb3c6XCJcXHUyMUQ1XCIsVXBkb3duYXJyb3c6XCJcXHUyMUQ1XCIsdkFycjpcIlxcdTIxRDVcIixEb3VibGVWZXJ0aWNhbEJhcjpcIlxcdTIyMjVcIixwYXI6XCJcXHUyMjI1XCIscGFyYWxsZWw6XCJcXHUyMjI1XCIsc2hvcnRwYXJhbGxlbDpcIlxcdTIyMjVcIixzcGFyOlwiXFx1MjIyNVwiLERvd25BcnJvdzpcIlxcdTIxOTNcIixTaG9ydERvd25BcnJvdzpcIlxcdTIxOTNcIixkYXJyOlwiXFx1MjE5M1wiLGRvd25hcnJvdzpcIlxcdTIxOTNcIixEb3duQXJyb3dCYXI6XCJcXHUyOTEzXCIsRG93bkFycm93VXBBcnJvdzpcIlxcdTIxRjVcIixkdWFycjpcIlxcdTIxRjVcIixEb3duQnJldmU6XCJcXHUwMzExXCIsRG93bkxlZnRSaWdodFZlY3RvcjpcIlxcdTI5NTBcIixEb3duTGVmdFRlZVZlY3RvcjpcIlxcdTI5NUVcIixEb3duTGVmdFZlY3RvcjpcIlxcdTIxQkRcIixsZWZ0aGFycG9vbmRvd246XCJcXHUyMUJEXCIsbGhhcmQ6XCJcXHUyMUJEXCIsRG93bkxlZnRWZWN0b3JCYXI6XCJcXHUyOTU2XCIsRG93blJpZ2h0VGVlVmVjdG9yOlwiXFx1Mjk1RlwiLERvd25SaWdodFZlY3RvcjpcIlxcdTIxQzFcIixyaGFyZDpcIlxcdTIxQzFcIixyaWdodGhhcnBvb25kb3duOlwiXFx1MjFDMVwiLERvd25SaWdodFZlY3RvckJhcjpcIlxcdTI5NTdcIixEb3duVGVlOlwiXFx1MjJBNFwiLHRvcDpcIlxcdTIyQTRcIixEb3duVGVlQXJyb3c6XCJcXHUyMUE3XCIsbWFwc3RvZG93bjpcIlxcdTIxQTdcIixEc2NyOlwiXFx1ezFENDlGfVwiLERzdHJvazpcIlxcdTAxMTBcIixFTkc6XCJcXHUwMTRBXCIsRVRIOlwiXFx4RDBcIixFYWN1dGU6XCJcXHhDOVwiLEVjYXJvbjpcIlxcdTAxMUFcIixFY2lyYzpcIlxceENBXCIsRWN5OlwiXFx1MDQyRFwiLEVkb3Q6XCJcXHUwMTE2XCIsRWZyOlwiXFx1ezFENTA4fVwiLEVncmF2ZTpcIlxceEM4XCIsRWxlbWVudDpcIlxcdTIyMDhcIixpbjpcIlxcdTIyMDhcIixpc2luOlwiXFx1MjIwOFwiLGlzaW52OlwiXFx1MjIwOFwiLEVtYWNyOlwiXFx1MDExMlwiLEVtcHR5U21hbGxTcXVhcmU6XCJcXHUyNUZCXCIsRW1wdHlWZXJ5U21hbGxTcXVhcmU6XCJcXHUyNUFCXCIsRW9nb246XCJcXHUwMTE4XCIsRW9wZjpcIlxcdXsxRDUzQ31cIixFcHNpbG9uOlwiXFx1MDM5NVwiLEVxdWFsOlwiXFx1MkE3NVwiLEVxdWFsVGlsZGU6XCJcXHUyMjQyXCIsZXFzaW06XCJcXHUyMjQyXCIsZXNpbTpcIlxcdTIyNDJcIixFcXVpbGlicml1bTpcIlxcdTIxQ0NcIixyaWdodGxlZnRoYXJwb29uczpcIlxcdTIxQ0NcIixybGhhcjpcIlxcdTIxQ0NcIixFc2NyOlwiXFx1MjEzMFwiLGV4cGVjdGF0aW9uOlwiXFx1MjEzMFwiLEVzaW06XCJcXHUyQTczXCIsRXRhOlwiXFx1MDM5N1wiLEV1bWw6XCJcXHhDQlwiLEV4aXN0czpcIlxcdTIyMDNcIixleGlzdDpcIlxcdTIyMDNcIixFeHBvbmVudGlhbEU6XCJcXHUyMTQ3XCIsZWU6XCJcXHUyMTQ3XCIsZXhwb25lbnRpYWxlOlwiXFx1MjE0N1wiLEZjeTpcIlxcdTA0MjRcIixGZnI6XCJcXHV7MUQ1MDl9XCIsRmlsbGVkU21hbGxTcXVhcmU6XCJcXHUyNUZDXCIsRmlsbGVkVmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQVwiLGJsYWNrc3F1YXJlOlwiXFx1MjVBQVwiLHNxdWFyZjpcIlxcdTI1QUFcIixzcXVmOlwiXFx1MjVBQVwiLEZvcGY6XCJcXHV7MUQ1M0R9XCIsRm9yQWxsOlwiXFx1MjIwMFwiLGZvcmFsbDpcIlxcdTIyMDBcIixGb3VyaWVydHJmOlwiXFx1MjEzMVwiLEZzY3I6XCJcXHUyMTMxXCIsR0pjeTpcIlxcdTA0MDNcIixHVDpcIj5cIixndDpcIj5cIixHYW1tYTpcIlxcdTAzOTNcIixHYW1tYWQ6XCJcXHUwM0RDXCIsR2JyZXZlOlwiXFx1MDExRVwiLEdjZWRpbDpcIlxcdTAxMjJcIixHY2lyYzpcIlxcdTAxMUNcIixHY3k6XCJcXHUwNDEzXCIsR2RvdDpcIlxcdTAxMjBcIixHZnI6XCJcXHV7MUQ1MEF9XCIsR2c6XCJcXHUyMkQ5XCIsZ2dnOlwiXFx1MjJEOVwiLEdvcGY6XCJcXHV7MUQ1M0V9XCIsR3JlYXRlckVxdWFsOlwiXFx1MjI2NVwiLGdlOlwiXFx1MjI2NVwiLGdlcTpcIlxcdTIyNjVcIixHcmVhdGVyRXF1YWxMZXNzOlwiXFx1MjJEQlwiLGdlbDpcIlxcdTIyREJcIixndHJlcWxlc3M6XCJcXHUyMkRCXCIsR3JlYXRlckZ1bGxFcXVhbDpcIlxcdTIyNjdcIixnRTpcIlxcdTIyNjdcIixnZXFxOlwiXFx1MjI2N1wiLEdyZWF0ZXJHcmVhdGVyOlwiXFx1MkFBMlwiLEdyZWF0ZXJMZXNzOlwiXFx1MjI3N1wiLGdsOlwiXFx1MjI3N1wiLGd0cmxlc3M6XCJcXHUyMjc3XCIsR3JlYXRlclNsYW50RXF1YWw6XCJcXHUyQTdFXCIsZ2Vxc2xhbnQ6XCJcXHUyQTdFXCIsZ2VzOlwiXFx1MkE3RVwiLEdyZWF0ZXJUaWxkZTpcIlxcdTIyNzNcIixnc2ltOlwiXFx1MjI3M1wiLGd0cnNpbTpcIlxcdTIyNzNcIixHc2NyOlwiXFx1ezFENEEyfVwiLEd0OlwiXFx1MjI2QlwiLE5lc3RlZEdyZWF0ZXJHcmVhdGVyOlwiXFx1MjI2QlwiLGdnOlwiXFx1MjI2QlwiLEhBUkRjeTpcIlxcdTA0MkFcIixIYWNlazpcIlxcdTAyQzdcIixjYXJvbjpcIlxcdTAyQzdcIixIYXQ6XCJeXCIsSGNpcmM6XCJcXHUwMTI0XCIsSGZyOlwiXFx1MjEwQ1wiLFBvaW5jYXJlcGxhbmU6XCJcXHUyMTBDXCIsSGlsYmVydFNwYWNlOlwiXFx1MjEwQlwiLEhzY3I6XCJcXHUyMTBCXCIsaGFtaWx0OlwiXFx1MjEwQlwiLEhvcGY6XCJcXHUyMTBEXCIscXVhdGVybmlvbnM6XCJcXHUyMTBEXCIsSG9yaXpvbnRhbExpbmU6XCJcXHUyNTAwXCIsYm94aDpcIlxcdTI1MDBcIixIc3Ryb2s6XCJcXHUwMTI2XCIsSHVtcEVxdWFsOlwiXFx1MjI0RlwiLGJ1bXBlOlwiXFx1MjI0RlwiLGJ1bXBlcTpcIlxcdTIyNEZcIixJRWN5OlwiXFx1MDQxNVwiLElKbGlnOlwiXFx1MDEzMlwiLElPY3k6XCJcXHUwNDAxXCIsSWFjdXRlOlwiXFx4Q0RcIixJY2lyYzpcIlxceENFXCIsSWN5OlwiXFx1MDQxOFwiLElkb3Q6XCJcXHUwMTMwXCIsSWZyOlwiXFx1MjExMVwiLEltOlwiXFx1MjExMVwiLGltYWdlOlwiXFx1MjExMVwiLGltYWdwYXJ0OlwiXFx1MjExMVwiLElncmF2ZTpcIlxceENDXCIsSW1hY3I6XCJcXHUwMTJBXCIsSW1hZ2luYXJ5STpcIlxcdTIxNDhcIixpaTpcIlxcdTIxNDhcIixJbnQ6XCJcXHUyMjJDXCIsSW50ZWdyYWw6XCJcXHUyMjJCXCIsaW50OlwiXFx1MjIyQlwiLEludGVyc2VjdGlvbjpcIlxcdTIyQzJcIixiaWdjYXA6XCJcXHUyMkMyXCIseGNhcDpcIlxcdTIyQzJcIixJbnZpc2libGVDb21tYTpcIlxcdTIwNjNcIixpYzpcIlxcdTIwNjNcIixJbnZpc2libGVUaW1lczpcIlxcdTIwNjJcIixpdDpcIlxcdTIwNjJcIixJb2dvbjpcIlxcdTAxMkVcIixJb3BmOlwiXFx1ezFENTQwfVwiLElvdGE6XCJcXHUwMzk5XCIsSXNjcjpcIlxcdTIxMTBcIixpbWFnbGluZTpcIlxcdTIxMTBcIixJdGlsZGU6XCJcXHUwMTI4XCIsSXVrY3k6XCJcXHUwNDA2XCIsSXVtbDpcIlxceENGXCIsSmNpcmM6XCJcXHUwMTM0XCIsSmN5OlwiXFx1MDQxOVwiLEpmcjpcIlxcdXsxRDUwRH1cIixKb3BmOlwiXFx1ezFENTQxfVwiLEpzY3I6XCJcXHV7MUQ0QTV9XCIsSnNlcmN5OlwiXFx1MDQwOFwiLEp1a2N5OlwiXFx1MDQwNFwiLEtIY3k6XCJcXHUwNDI1XCIsS0pjeTpcIlxcdTA0MENcIixLYXBwYTpcIlxcdTAzOUFcIixLY2VkaWw6XCJcXHUwMTM2XCIsS2N5OlwiXFx1MDQxQVwiLEtmcjpcIlxcdXsxRDUwRX1cIixLb3BmOlwiXFx1ezFENTQyfVwiLEtzY3I6XCJcXHV7MUQ0QTZ9XCIsTEpjeTpcIlxcdTA0MDlcIixMVDpcIjxcIixsdDpcIjxcIixMYWN1dGU6XCJcXHUwMTM5XCIsTGFtYmRhOlwiXFx1MDM5QlwiLExhbmc6XCJcXHUyN0VBXCIsTGFwbGFjZXRyZjpcIlxcdTIxMTJcIixMc2NyOlwiXFx1MjExMlwiLGxhZ3JhbjpcIlxcdTIxMTJcIixMYXJyOlwiXFx1MjE5RVwiLHR3b2hlYWRsZWZ0YXJyb3c6XCJcXHUyMTlFXCIsTGNhcm9uOlwiXFx1MDEzRFwiLExjZWRpbDpcIlxcdTAxM0JcIixMY3k6XCJcXHUwNDFCXCIsTGVmdEFuZ2xlQnJhY2tldDpcIlxcdTI3RThcIixsYW5nOlwiXFx1MjdFOFwiLGxhbmdsZTpcIlxcdTI3RThcIixMZWZ0QXJyb3c6XCJcXHUyMTkwXCIsU2hvcnRMZWZ0QXJyb3c6XCJcXHUyMTkwXCIsbGFycjpcIlxcdTIxOTBcIixsZWZ0YXJyb3c6XCJcXHUyMTkwXCIsc2xhcnI6XCJcXHUyMTkwXCIsTGVmdEFycm93QmFyOlwiXFx1MjFFNFwiLGxhcnJiOlwiXFx1MjFFNFwiLExlZnRBcnJvd1JpZ2h0QXJyb3c6XCJcXHUyMUM2XCIsbGVmdHJpZ2h0YXJyb3dzOlwiXFx1MjFDNlwiLGxyYXJyOlwiXFx1MjFDNlwiLExlZnRDZWlsaW5nOlwiXFx1MjMwOFwiLGxjZWlsOlwiXFx1MjMwOFwiLExlZnREb3VibGVCcmFja2V0OlwiXFx1MjdFNlwiLGxvYnJrOlwiXFx1MjdFNlwiLExlZnREb3duVGVlVmVjdG9yOlwiXFx1Mjk2MVwiLExlZnREb3duVmVjdG9yOlwiXFx1MjFDM1wiLGRoYXJsOlwiXFx1MjFDM1wiLGRvd25oYXJwb29ubGVmdDpcIlxcdTIxQzNcIixMZWZ0RG93blZlY3RvckJhcjpcIlxcdTI5NTlcIixMZWZ0Rmxvb3I6XCJcXHUyMzBBXCIsbGZsb29yOlwiXFx1MjMwQVwiLExlZnRSaWdodEFycm93OlwiXFx1MjE5NFwiLGhhcnI6XCJcXHUyMTk0XCIsbGVmdHJpZ2h0YXJyb3c6XCJcXHUyMTk0XCIsTGVmdFJpZ2h0VmVjdG9yOlwiXFx1Mjk0RVwiLExlZnRUZWU6XCJcXHUyMkEzXCIsZGFzaHY6XCJcXHUyMkEzXCIsTGVmdFRlZUFycm93OlwiXFx1MjFBNFwiLG1hcHN0b2xlZnQ6XCJcXHUyMUE0XCIsTGVmdFRlZVZlY3RvcjpcIlxcdTI5NUFcIixMZWZ0VHJpYW5nbGU6XCJcXHUyMkIyXCIsdmFydHJpYW5nbGVsZWZ0OlwiXFx1MjJCMlwiLHZsdHJpOlwiXFx1MjJCMlwiLExlZnRUcmlhbmdsZUJhcjpcIlxcdTI5Q0ZcIixMZWZ0VHJpYW5nbGVFcXVhbDpcIlxcdTIyQjRcIixsdHJpZTpcIlxcdTIyQjRcIix0cmlhbmdsZWxlZnRlcTpcIlxcdTIyQjRcIixMZWZ0VXBEb3duVmVjdG9yOlwiXFx1Mjk1MVwiLExlZnRVcFRlZVZlY3RvcjpcIlxcdTI5NjBcIixMZWZ0VXBWZWN0b3I6XCJcXHUyMUJGXCIsdWhhcmw6XCJcXHUyMUJGXCIsdXBoYXJwb29ubGVmdDpcIlxcdTIxQkZcIixMZWZ0VXBWZWN0b3JCYXI6XCJcXHUyOTU4XCIsTGVmdFZlY3RvcjpcIlxcdTIxQkNcIixsZWZ0aGFycG9vbnVwOlwiXFx1MjFCQ1wiLGxoYXJ1OlwiXFx1MjFCQ1wiLExlZnRWZWN0b3JCYXI6XCJcXHUyOTUyXCIsTGVzc0VxdWFsR3JlYXRlcjpcIlxcdTIyREFcIixsZWc6XCJcXHUyMkRBXCIsbGVzc2VxZ3RyOlwiXFx1MjJEQVwiLExlc3NGdWxsRXF1YWw6XCJcXHUyMjY2XCIsbEU6XCJcXHUyMjY2XCIsbGVxcTpcIlxcdTIyNjZcIixMZXNzR3JlYXRlcjpcIlxcdTIyNzZcIixsZXNzZ3RyOlwiXFx1MjI3NlwiLGxnOlwiXFx1MjI3NlwiLExlc3NMZXNzOlwiXFx1MkFBMVwiLExlc3NTbGFudEVxdWFsOlwiXFx1MkE3RFwiLGxlcXNsYW50OlwiXFx1MkE3RFwiLGxlczpcIlxcdTJBN0RcIixMZXNzVGlsZGU6XCJcXHUyMjcyXCIsbGVzc3NpbTpcIlxcdTIyNzJcIixsc2ltOlwiXFx1MjI3MlwiLExmcjpcIlxcdXsxRDUwRn1cIixMbDpcIlxcdTIyRDhcIixMbGVmdGFycm93OlwiXFx1MjFEQVwiLGxBYXJyOlwiXFx1MjFEQVwiLExtaWRvdDpcIlxcdTAxM0ZcIixMb25nTGVmdEFycm93OlwiXFx1MjdGNVwiLGxvbmdsZWZ0YXJyb3c6XCJcXHUyN0Y1XCIseGxhcnI6XCJcXHUyN0Y1XCIsTG9uZ0xlZnRSaWdodEFycm93OlwiXFx1MjdGN1wiLGxvbmdsZWZ0cmlnaHRhcnJvdzpcIlxcdTI3RjdcIix4aGFycjpcIlxcdTI3RjdcIixMb25nUmlnaHRBcnJvdzpcIlxcdTI3RjZcIixsb25ncmlnaHRhcnJvdzpcIlxcdTI3RjZcIix4cmFycjpcIlxcdTI3RjZcIixMb3BmOlwiXFx1ezFENTQzfVwiLExvd2VyTGVmdEFycm93OlwiXFx1MjE5OVwiLHN3YXJyOlwiXFx1MjE5OVwiLHN3YXJyb3c6XCJcXHUyMTk5XCIsTG93ZXJSaWdodEFycm93OlwiXFx1MjE5OFwiLHNlYXJyOlwiXFx1MjE5OFwiLHNlYXJyb3c6XCJcXHUyMTk4XCIsTHNoOlwiXFx1MjFCMFwiLGxzaDpcIlxcdTIxQjBcIixMc3Ryb2s6XCJcXHUwMTQxXCIsTHQ6XCJcXHUyMjZBXCIsTmVzdGVkTGVzc0xlc3M6XCJcXHUyMjZBXCIsbGw6XCJcXHUyMjZBXCIsTWFwOlwiXFx1MjkwNVwiLE1jeTpcIlxcdTA0MUNcIixNZWRpdW1TcGFjZTpcIlxcdTIwNUZcIixNZWxsaW50cmY6XCJcXHUyMTMzXCIsTXNjcjpcIlxcdTIxMzNcIixwaG1tYXQ6XCJcXHUyMTMzXCIsTWZyOlwiXFx1ezFENTEwfVwiLE1pbnVzUGx1czpcIlxcdTIyMTNcIixtbnBsdXM6XCJcXHUyMjEzXCIsbXA6XCJcXHUyMjEzXCIsTW9wZjpcIlxcdXsxRDU0NH1cIixNdTpcIlxcdTAzOUNcIixOSmN5OlwiXFx1MDQwQVwiLE5hY3V0ZTpcIlxcdTAxNDNcIixOY2Fyb246XCJcXHUwMTQ3XCIsTmNlZGlsOlwiXFx1MDE0NVwiLE5jeTpcIlxcdTA0MURcIixOZWdhdGl2ZU1lZGl1bVNwYWNlOlwiXFx1MjAwQlwiLE5lZ2F0aXZlVGhpY2tTcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVRoaW5TcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVZlcnlUaGluU3BhY2U6XCJcXHUyMDBCXCIsWmVyb1dpZHRoU3BhY2U6XCJcXHUyMDBCXCIsTmV3TGluZTpgXG5gLE5mcjpcIlxcdXsxRDUxMX1cIixOb0JyZWFrOlwiXFx1MjA2MFwiLE5vbkJyZWFraW5nU3BhY2U6XCJcXHhBMFwiLG5ic3A6XCJcXHhBMFwiLE5vcGY6XCJcXHUyMTE1XCIsbmF0dXJhbHM6XCJcXHUyMTE1XCIsTm90OlwiXFx1MkFFQ1wiLE5vdENvbmdydWVudDpcIlxcdTIyNjJcIixuZXF1aXY6XCJcXHUyMjYyXCIsTm90Q3VwQ2FwOlwiXFx1MjI2RFwiLE5vdERvdWJsZVZlcnRpY2FsQmFyOlwiXFx1MjIyNlwiLG5wYXI6XCJcXHUyMjI2XCIsbnBhcmFsbGVsOlwiXFx1MjIyNlwiLG5zaG9ydHBhcmFsbGVsOlwiXFx1MjIyNlwiLG5zcGFyOlwiXFx1MjIyNlwiLE5vdEVsZW1lbnQ6XCJcXHUyMjA5XCIsbm90aW46XCJcXHUyMjA5XCIsbm90aW52YTpcIlxcdTIyMDlcIixOb3RFcXVhbDpcIlxcdTIyNjBcIixuZTpcIlxcdTIyNjBcIixOb3RFcXVhbFRpbGRlOlwiXFx1MjI0MlxcdTAzMzhcIixuZXNpbTpcIlxcdTIyNDJcXHUwMzM4XCIsTm90RXhpc3RzOlwiXFx1MjIwNFwiLG5leGlzdDpcIlxcdTIyMDRcIixuZXhpc3RzOlwiXFx1MjIwNFwiLE5vdEdyZWF0ZXI6XCJcXHUyMjZGXCIsbmd0OlwiXFx1MjI2RlwiLG5ndHI6XCJcXHUyMjZGXCIsTm90R3JlYXRlckVxdWFsOlwiXFx1MjI3MVwiLG5nZTpcIlxcdTIyNzFcIixuZ2VxOlwiXFx1MjI3MVwiLE5vdEdyZWF0ZXJGdWxsRXF1YWw6XCJcXHUyMjY3XFx1MDMzOFwiLG5nRTpcIlxcdTIyNjdcXHUwMzM4XCIsbmdlcXE6XCJcXHUyMjY3XFx1MDMzOFwiLE5vdEdyZWF0ZXJHcmVhdGVyOlwiXFx1MjI2QlxcdTAzMzhcIixuR3R2OlwiXFx1MjI2QlxcdTAzMzhcIixOb3RHcmVhdGVyTGVzczpcIlxcdTIyNzlcIixudGdsOlwiXFx1MjI3OVwiLE5vdEdyZWF0ZXJTbGFudEVxdWFsOlwiXFx1MkE3RVxcdTAzMzhcIixuZ2Vxc2xhbnQ6XCJcXHUyQTdFXFx1MDMzOFwiLG5nZXM6XCJcXHUyQTdFXFx1MDMzOFwiLE5vdEdyZWF0ZXJUaWxkZTpcIlxcdTIyNzVcIixuZ3NpbTpcIlxcdTIyNzVcIixOb3RIdW1wRG93bkh1bXA6XCJcXHUyMjRFXFx1MDMzOFwiLG5idW1wOlwiXFx1MjI0RVxcdTAzMzhcIixOb3RIdW1wRXF1YWw6XCJcXHUyMjRGXFx1MDMzOFwiLG5idW1wZTpcIlxcdTIyNEZcXHUwMzM4XCIsTm90TGVmdFRyaWFuZ2xlOlwiXFx1MjJFQVwiLG5sdHJpOlwiXFx1MjJFQVwiLG50cmlhbmdsZWxlZnQ6XCJcXHUyMkVBXCIsTm90TGVmdFRyaWFuZ2xlQmFyOlwiXFx1MjlDRlxcdTAzMzhcIixOb3RMZWZ0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRUNcIixubHRyaWU6XCJcXHUyMkVDXCIsbnRyaWFuZ2xlbGVmdGVxOlwiXFx1MjJFQ1wiLE5vdExlc3M6XCJcXHUyMjZFXCIsbmxlc3M6XCJcXHUyMjZFXCIsbmx0OlwiXFx1MjI2RVwiLE5vdExlc3NFcXVhbDpcIlxcdTIyNzBcIixubGU6XCJcXHUyMjcwXCIsbmxlcTpcIlxcdTIyNzBcIixOb3RMZXNzR3JlYXRlcjpcIlxcdTIyNzhcIixudGxnOlwiXFx1MjI3OFwiLE5vdExlc3NMZXNzOlwiXFx1MjI2QVxcdTAzMzhcIixuTHR2OlwiXFx1MjI2QVxcdTAzMzhcIixOb3RMZXNzU2xhbnRFcXVhbDpcIlxcdTJBN0RcXHUwMzM4XCIsbmxlcXNsYW50OlwiXFx1MkE3RFxcdTAzMzhcIixubGVzOlwiXFx1MkE3RFxcdTAzMzhcIixOb3RMZXNzVGlsZGU6XCJcXHUyMjc0XCIsbmxzaW06XCJcXHUyMjc0XCIsTm90TmVzdGVkR3JlYXRlckdyZWF0ZXI6XCJcXHUyQUEyXFx1MDMzOFwiLE5vdE5lc3RlZExlc3NMZXNzOlwiXFx1MkFBMVxcdTAzMzhcIixOb3RQcmVjZWRlczpcIlxcdTIyODBcIixucHI6XCJcXHUyMjgwXCIsbnByZWM6XCJcXHUyMjgwXCIsTm90UHJlY2VkZXNFcXVhbDpcIlxcdTJBQUZcXHUwMzM4XCIsbnByZTpcIlxcdTJBQUZcXHUwMzM4XCIsbnByZWNlcTpcIlxcdTJBQUZcXHUwMzM4XCIsTm90UHJlY2VkZXNTbGFudEVxdWFsOlwiXFx1MjJFMFwiLG5wcmN1ZTpcIlxcdTIyRTBcIixOb3RSZXZlcnNlRWxlbWVudDpcIlxcdTIyMENcIixub3RuaTpcIlxcdTIyMENcIixub3RuaXZhOlwiXFx1MjIwQ1wiLE5vdFJpZ2h0VHJpYW5nbGU6XCJcXHUyMkVCXCIsbnJ0cmk6XCJcXHUyMkVCXCIsbnRyaWFuZ2xlcmlnaHQ6XCJcXHUyMkVCXCIsTm90UmlnaHRUcmlhbmdsZUJhcjpcIlxcdTI5RDBcXHUwMzM4XCIsTm90UmlnaHRUcmlhbmdsZUVxdWFsOlwiXFx1MjJFRFwiLG5ydHJpZTpcIlxcdTIyRURcIixudHJpYW5nbGVyaWdodGVxOlwiXFx1MjJFRFwiLE5vdFNxdWFyZVN1YnNldDpcIlxcdTIyOEZcXHUwMzM4XCIsTm90U3F1YXJlU3Vic2V0RXF1YWw6XCJcXHUyMkUyXCIsbnNxc3ViZTpcIlxcdTIyRTJcIixOb3RTcXVhcmVTdXBlcnNldDpcIlxcdTIyOTBcXHUwMzM4XCIsTm90U3F1YXJlU3VwZXJzZXRFcXVhbDpcIlxcdTIyRTNcIixuc3FzdXBlOlwiXFx1MjJFM1wiLE5vdFN1YnNldDpcIlxcdTIyODJcXHUyMEQyXCIsbnN1YnNldDpcIlxcdTIyODJcXHUyMEQyXCIsdm5zdWI6XCJcXHUyMjgyXFx1MjBEMlwiLE5vdFN1YnNldEVxdWFsOlwiXFx1MjI4OFwiLG5zdWJlOlwiXFx1MjI4OFwiLG5zdWJzZXRlcTpcIlxcdTIyODhcIixOb3RTdWNjZWVkczpcIlxcdTIyODFcIixuc2M6XCJcXHUyMjgxXCIsbnN1Y2M6XCJcXHUyMjgxXCIsTm90U3VjY2VlZHNFcXVhbDpcIlxcdTJBQjBcXHUwMzM4XCIsbnNjZTpcIlxcdTJBQjBcXHUwMzM4XCIsbnN1Y2NlcTpcIlxcdTJBQjBcXHUwMzM4XCIsTm90U3VjY2VlZHNTbGFudEVxdWFsOlwiXFx1MjJFMVwiLG5zY2N1ZTpcIlxcdTIyRTFcIixOb3RTdWNjZWVkc1RpbGRlOlwiXFx1MjI3RlxcdTAzMzhcIixOb3RTdXBlcnNldDpcIlxcdTIyODNcXHUyMEQyXCIsbnN1cHNldDpcIlxcdTIyODNcXHUyMEQyXCIsdm5zdXA6XCJcXHUyMjgzXFx1MjBEMlwiLE5vdFN1cGVyc2V0RXF1YWw6XCJcXHUyMjg5XCIsbnN1cGU6XCJcXHUyMjg5XCIsbnN1cHNldGVxOlwiXFx1MjI4OVwiLE5vdFRpbGRlOlwiXFx1MjI0MVwiLG5zaW06XCJcXHUyMjQxXCIsTm90VGlsZGVFcXVhbDpcIlxcdTIyNDRcIixuc2ltZTpcIlxcdTIyNDRcIixuc2ltZXE6XCJcXHUyMjQ0XCIsTm90VGlsZGVGdWxsRXF1YWw6XCJcXHUyMjQ3XCIsbmNvbmc6XCJcXHUyMjQ3XCIsTm90VGlsZGVUaWxkZTpcIlxcdTIyNDlcIixuYXA6XCJcXHUyMjQ5XCIsbmFwcHJveDpcIlxcdTIyNDlcIixOb3RWZXJ0aWNhbEJhcjpcIlxcdTIyMjRcIixubWlkOlwiXFx1MjIyNFwiLG5zaG9ydG1pZDpcIlxcdTIyMjRcIixuc21pZDpcIlxcdTIyMjRcIixOc2NyOlwiXFx1ezFENEE5fVwiLE50aWxkZTpcIlxceEQxXCIsTnU6XCJcXHUwMzlEXCIsT0VsaWc6XCJcXHUwMTUyXCIsT2FjdXRlOlwiXFx4RDNcIixPY2lyYzpcIlxceEQ0XCIsT2N5OlwiXFx1MDQxRVwiLE9kYmxhYzpcIlxcdTAxNTBcIixPZnI6XCJcXHV7MUQ1MTJ9XCIsT2dyYXZlOlwiXFx4RDJcIixPbWFjcjpcIlxcdTAxNENcIixPbWVnYTpcIlxcdTAzQTlcIixvaG06XCJcXHUwM0E5XCIsT21pY3JvbjpcIlxcdTAzOUZcIixPb3BmOlwiXFx1ezFENTQ2fVwiLE9wZW5DdXJseURvdWJsZVF1b3RlOlwiXFx1MjAxQ1wiLGxkcXVvOlwiXFx1MjAxQ1wiLE9wZW5DdXJseVF1b3RlOlwiXFx1MjAxOFwiLGxzcXVvOlwiXFx1MjAxOFwiLE9yOlwiXFx1MkE1NFwiLE9zY3I6XCJcXHV7MUQ0QUF9XCIsT3NsYXNoOlwiXFx4RDhcIixPdGlsZGU6XCJcXHhENVwiLE90aW1lczpcIlxcdTJBMzdcIixPdW1sOlwiXFx4RDZcIixPdmVyQmFyOlwiXFx1MjAzRVwiLG9saW5lOlwiXFx1MjAzRVwiLE92ZXJCcmFjZTpcIlxcdTIzREVcIixPdmVyQnJhY2tldDpcIlxcdTIzQjRcIix0YnJrOlwiXFx1MjNCNFwiLE92ZXJQYXJlbnRoZXNpczpcIlxcdTIzRENcIixQYXJ0aWFsRDpcIlxcdTIyMDJcIixwYXJ0OlwiXFx1MjIwMlwiLFBjeTpcIlxcdTA0MUZcIixQZnI6XCJcXHV7MUQ1MTN9XCIsUGhpOlwiXFx1MDNBNlwiLFBpOlwiXFx1MDNBMFwiLFBsdXNNaW51czpcIlxceEIxXCIscGx1c21uOlwiXFx4QjFcIixwbTpcIlxceEIxXCIsUG9wZjpcIlxcdTIxMTlcIixwcmltZXM6XCJcXHUyMTE5XCIsUHI6XCJcXHUyQUJCXCIsUHJlY2VkZXM6XCJcXHUyMjdBXCIscHI6XCJcXHUyMjdBXCIscHJlYzpcIlxcdTIyN0FcIixQcmVjZWRlc0VxdWFsOlwiXFx1MkFBRlwiLHByZTpcIlxcdTJBQUZcIixwcmVjZXE6XCJcXHUyQUFGXCIsUHJlY2VkZXNTbGFudEVxdWFsOlwiXFx1MjI3Q1wiLHByY3VlOlwiXFx1MjI3Q1wiLHByZWNjdXJseWVxOlwiXFx1MjI3Q1wiLFByZWNlZGVzVGlsZGU6XCJcXHUyMjdFXCIscHJlY3NpbTpcIlxcdTIyN0VcIixwcnNpbTpcIlxcdTIyN0VcIixQcmltZTpcIlxcdTIwMzNcIixQcm9kdWN0OlwiXFx1MjIwRlwiLHByb2Q6XCJcXHUyMjBGXCIsUHJvcG9ydGlvbmFsOlwiXFx1MjIxRFwiLHByb3A6XCJcXHUyMjFEXCIscHJvcHRvOlwiXFx1MjIxRFwiLHZhcnByb3B0bzpcIlxcdTIyMURcIix2cHJvcDpcIlxcdTIyMURcIixQc2NyOlwiXFx1ezFENEFCfVwiLFBzaTpcIlxcdTAzQThcIixRVU9UOidcIicscXVvdDonXCInLFFmcjpcIlxcdXsxRDUxNH1cIixRb3BmOlwiXFx1MjExQVwiLHJhdGlvbmFsczpcIlxcdTIxMUFcIixRc2NyOlwiXFx1ezFENEFDfVwiLFJCYXJyOlwiXFx1MjkxMFwiLGRyYmthcm93OlwiXFx1MjkxMFwiLFJFRzpcIlxceEFFXCIsY2lyY2xlZFI6XCJcXHhBRVwiLHJlZzpcIlxceEFFXCIsUmFjdXRlOlwiXFx1MDE1NFwiLFJhbmc6XCJcXHUyN0VCXCIsUmFycjpcIlxcdTIxQTBcIix0d29oZWFkcmlnaHRhcnJvdzpcIlxcdTIxQTBcIixSYXJydGw6XCJcXHUyOTE2XCIsUmNhcm9uOlwiXFx1MDE1OFwiLFJjZWRpbDpcIlxcdTAxNTZcIixSY3k6XCJcXHUwNDIwXCIsUmU6XCJcXHUyMTFDXCIsUmZyOlwiXFx1MjExQ1wiLHJlYWw6XCJcXHUyMTFDXCIscmVhbHBhcnQ6XCJcXHUyMTFDXCIsUmV2ZXJzZUVsZW1lbnQ6XCJcXHUyMjBCXCIsU3VjaFRoYXQ6XCJcXHUyMjBCXCIsbmk6XCJcXHUyMjBCXCIsbml2OlwiXFx1MjIwQlwiLFJldmVyc2VFcXVpbGlicml1bTpcIlxcdTIxQ0JcIixsZWZ0cmlnaHRoYXJwb29uczpcIlxcdTIxQ0JcIixscmhhcjpcIlxcdTIxQ0JcIixSZXZlcnNlVXBFcXVpbGlicml1bTpcIlxcdTI5NkZcIixkdWhhcjpcIlxcdTI5NkZcIixSaG86XCJcXHUwM0ExXCIsUmlnaHRBbmdsZUJyYWNrZXQ6XCJcXHUyN0U5XCIscmFuZzpcIlxcdTI3RTlcIixyYW5nbGU6XCJcXHUyN0U5XCIsUmlnaHRBcnJvdzpcIlxcdTIxOTJcIixTaG9ydFJpZ2h0QXJyb3c6XCJcXHUyMTkyXCIscmFycjpcIlxcdTIxOTJcIixyaWdodGFycm93OlwiXFx1MjE5MlwiLHNyYXJyOlwiXFx1MjE5MlwiLFJpZ2h0QXJyb3dCYXI6XCJcXHUyMUU1XCIscmFycmI6XCJcXHUyMUU1XCIsUmlnaHRBcnJvd0xlZnRBcnJvdzpcIlxcdTIxQzRcIixyaWdodGxlZnRhcnJvd3M6XCJcXHUyMUM0XCIscmxhcnI6XCJcXHUyMUM0XCIsUmlnaHRDZWlsaW5nOlwiXFx1MjMwOVwiLHJjZWlsOlwiXFx1MjMwOVwiLFJpZ2h0RG91YmxlQnJhY2tldDpcIlxcdTI3RTdcIixyb2JyazpcIlxcdTI3RTdcIixSaWdodERvd25UZWVWZWN0b3I6XCJcXHUyOTVEXCIsUmlnaHREb3duVmVjdG9yOlwiXFx1MjFDMlwiLGRoYXJyOlwiXFx1MjFDMlwiLGRvd25oYXJwb29ucmlnaHQ6XCJcXHUyMUMyXCIsUmlnaHREb3duVmVjdG9yQmFyOlwiXFx1Mjk1NVwiLFJpZ2h0Rmxvb3I6XCJcXHUyMzBCXCIscmZsb29yOlwiXFx1MjMwQlwiLFJpZ2h0VGVlOlwiXFx1MjJBMlwiLHZkYXNoOlwiXFx1MjJBMlwiLFJpZ2h0VGVlQXJyb3c6XCJcXHUyMUE2XCIsbWFwOlwiXFx1MjFBNlwiLG1hcHN0bzpcIlxcdTIxQTZcIixSaWdodFRlZVZlY3RvcjpcIlxcdTI5NUJcIixSaWdodFRyaWFuZ2xlOlwiXFx1MjJCM1wiLHZhcnRyaWFuZ2xlcmlnaHQ6XCJcXHUyMkIzXCIsdnJ0cmk6XCJcXHUyMkIzXCIsUmlnaHRUcmlhbmdsZUJhcjpcIlxcdTI5RDBcIixSaWdodFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkI1XCIscnRyaWU6XCJcXHUyMkI1XCIsdHJpYW5nbGVyaWdodGVxOlwiXFx1MjJCNVwiLFJpZ2h0VXBEb3duVmVjdG9yOlwiXFx1Mjk0RlwiLFJpZ2h0VXBUZWVWZWN0b3I6XCJcXHUyOTVDXCIsUmlnaHRVcFZlY3RvcjpcIlxcdTIxQkVcIix1aGFycjpcIlxcdTIxQkVcIix1cGhhcnBvb25yaWdodDpcIlxcdTIxQkVcIixSaWdodFVwVmVjdG9yQmFyOlwiXFx1Mjk1NFwiLFJpZ2h0VmVjdG9yOlwiXFx1MjFDMFwiLHJoYXJ1OlwiXFx1MjFDMFwiLHJpZ2h0aGFycG9vbnVwOlwiXFx1MjFDMFwiLFJpZ2h0VmVjdG9yQmFyOlwiXFx1Mjk1M1wiLFJvcGY6XCJcXHUyMTFEXCIscmVhbHM6XCJcXHUyMTFEXCIsUm91bmRJbXBsaWVzOlwiXFx1Mjk3MFwiLFJyaWdodGFycm93OlwiXFx1MjFEQlwiLHJBYXJyOlwiXFx1MjFEQlwiLFJzY3I6XCJcXHUyMTFCXCIscmVhbGluZTpcIlxcdTIxMUJcIixSc2g6XCJcXHUyMUIxXCIscnNoOlwiXFx1MjFCMVwiLFJ1bGVEZWxheWVkOlwiXFx1MjlGNFwiLFNIQ0hjeTpcIlxcdTA0MjlcIixTSGN5OlwiXFx1MDQyOFwiLFNPRlRjeTpcIlxcdTA0MkNcIixTYWN1dGU6XCJcXHUwMTVBXCIsU2M6XCJcXHUyQUJDXCIsU2Nhcm9uOlwiXFx1MDE2MFwiLFNjZWRpbDpcIlxcdTAxNUVcIixTY2lyYzpcIlxcdTAxNUNcIixTY3k6XCJcXHUwNDIxXCIsU2ZyOlwiXFx1ezFENTE2fVwiLFNob3J0VXBBcnJvdzpcIlxcdTIxOTFcIixVcEFycm93OlwiXFx1MjE5MVwiLHVhcnI6XCJcXHUyMTkxXCIsdXBhcnJvdzpcIlxcdTIxOTFcIixTaWdtYTpcIlxcdTAzQTNcIixTbWFsbENpcmNsZTpcIlxcdTIyMThcIixjb21wZm46XCJcXHUyMjE4XCIsU29wZjpcIlxcdXsxRDU0QX1cIixTcXJ0OlwiXFx1MjIxQVwiLHJhZGljOlwiXFx1MjIxQVwiLFNxdWFyZTpcIlxcdTI1QTFcIixzcXU6XCJcXHUyNUExXCIsc3F1YXJlOlwiXFx1MjVBMVwiLFNxdWFyZUludGVyc2VjdGlvbjpcIlxcdTIyOTNcIixzcWNhcDpcIlxcdTIyOTNcIixTcXVhcmVTdWJzZXQ6XCJcXHUyMjhGXCIsc3FzdWI6XCJcXHUyMjhGXCIsc3FzdWJzZXQ6XCJcXHUyMjhGXCIsU3F1YXJlU3Vic2V0RXF1YWw6XCJcXHUyMjkxXCIsc3FzdWJlOlwiXFx1MjI5MVwiLHNxc3Vic2V0ZXE6XCJcXHUyMjkxXCIsU3F1YXJlU3VwZXJzZXQ6XCJcXHUyMjkwXCIsc3FzdXA6XCJcXHUyMjkwXCIsc3FzdXBzZXQ6XCJcXHUyMjkwXCIsU3F1YXJlU3VwZXJzZXRFcXVhbDpcIlxcdTIyOTJcIixzcXN1cGU6XCJcXHUyMjkyXCIsc3FzdXBzZXRlcTpcIlxcdTIyOTJcIixTcXVhcmVVbmlvbjpcIlxcdTIyOTRcIixzcWN1cDpcIlxcdTIyOTRcIixTc2NyOlwiXFx1ezFENEFFfVwiLFN0YXI6XCJcXHUyMkM2XCIsc3N0YXJmOlwiXFx1MjJDNlwiLFN1YjpcIlxcdTIyRDBcIixTdWJzZXQ6XCJcXHUyMkQwXCIsU3Vic2V0RXF1YWw6XCJcXHUyMjg2XCIsc3ViZTpcIlxcdTIyODZcIixzdWJzZXRlcTpcIlxcdTIyODZcIixTdWNjZWVkczpcIlxcdTIyN0JcIixzYzpcIlxcdTIyN0JcIixzdWNjOlwiXFx1MjI3QlwiLFN1Y2NlZWRzRXF1YWw6XCJcXHUyQUIwXCIsc2NlOlwiXFx1MkFCMFwiLHN1Y2NlcTpcIlxcdTJBQjBcIixTdWNjZWVkc1NsYW50RXF1YWw6XCJcXHUyMjdEXCIsc2NjdWU6XCJcXHUyMjdEXCIsc3VjY2N1cmx5ZXE6XCJcXHUyMjdEXCIsU3VjY2VlZHNUaWxkZTpcIlxcdTIyN0ZcIixzY3NpbTpcIlxcdTIyN0ZcIixzdWNjc2ltOlwiXFx1MjI3RlwiLFN1bTpcIlxcdTIyMTFcIixzdW06XCJcXHUyMjExXCIsU3VwOlwiXFx1MjJEMVwiLFN1cHNldDpcIlxcdTIyRDFcIixTdXBlcnNldDpcIlxcdTIyODNcIixzdXA6XCJcXHUyMjgzXCIsc3Vwc2V0OlwiXFx1MjI4M1wiLFN1cGVyc2V0RXF1YWw6XCJcXHUyMjg3XCIsc3VwZTpcIlxcdTIyODdcIixzdXBzZXRlcTpcIlxcdTIyODdcIixUSE9STjpcIlxceERFXCIsVFJBREU6XCJcXHUyMTIyXCIsdHJhZGU6XCJcXHUyMTIyXCIsVFNIY3k6XCJcXHUwNDBCXCIsVFNjeTpcIlxcdTA0MjZcIixUYWI6XCJcdFwiLFRhdTpcIlxcdTAzQTRcIixUY2Fyb246XCJcXHUwMTY0XCIsVGNlZGlsOlwiXFx1MDE2MlwiLFRjeTpcIlxcdTA0MjJcIixUZnI6XCJcXHV7MUQ1MTd9XCIsVGhlcmVmb3JlOlwiXFx1MjIzNFwiLHRoZXJlNDpcIlxcdTIyMzRcIix0aGVyZWZvcmU6XCJcXHUyMjM0XCIsVGhldGE6XCJcXHUwMzk4XCIsVGhpY2tTcGFjZTpcIlxcdTIwNUZcXHUyMDBBXCIsVGhpblNwYWNlOlwiXFx1MjAwOVwiLHRoaW5zcDpcIlxcdTIwMDlcIixUaWxkZTpcIlxcdTIyM0NcIixzaW06XCJcXHUyMjNDXCIsdGhpY2tzaW06XCJcXHUyMjNDXCIsdGhrc2ltOlwiXFx1MjIzQ1wiLFRpbGRlRXF1YWw6XCJcXHUyMjQzXCIsc2ltZTpcIlxcdTIyNDNcIixzaW1lcTpcIlxcdTIyNDNcIixUaWxkZUZ1bGxFcXVhbDpcIlxcdTIyNDVcIixjb25nOlwiXFx1MjI0NVwiLFRpbGRlVGlsZGU6XCJcXHUyMjQ4XCIsYXA6XCJcXHUyMjQ4XCIsYXBwcm94OlwiXFx1MjI0OFwiLGFzeW1wOlwiXFx1MjI0OFwiLHRoaWNrYXBwcm94OlwiXFx1MjI0OFwiLHRoa2FwOlwiXFx1MjI0OFwiLFRvcGY6XCJcXHV7MUQ1NEJ9XCIsVHJpcGxlRG90OlwiXFx1MjBEQlwiLHRkb3Q6XCJcXHUyMERCXCIsVHNjcjpcIlxcdXsxRDRBRn1cIixUc3Ryb2s6XCJcXHUwMTY2XCIsVWFjdXRlOlwiXFx4REFcIixVYXJyOlwiXFx1MjE5RlwiLFVhcnJvY2lyOlwiXFx1Mjk0OVwiLFVicmN5OlwiXFx1MDQwRVwiLFVicmV2ZTpcIlxcdTAxNkNcIixVY2lyYzpcIlxceERCXCIsVWN5OlwiXFx1MDQyM1wiLFVkYmxhYzpcIlxcdTAxNzBcIixVZnI6XCJcXHV7MUQ1MTh9XCIsVWdyYXZlOlwiXFx4RDlcIixVbWFjcjpcIlxcdTAxNkFcIixVbmRlckJhcjpcIl9cIixsb3diYXI6XCJfXCIsVW5kZXJCcmFjZTpcIlxcdTIzREZcIixVbmRlckJyYWNrZXQ6XCJcXHUyM0I1XCIsYmJyazpcIlxcdTIzQjVcIixVbmRlclBhcmVudGhlc2lzOlwiXFx1MjNERFwiLFVuaW9uOlwiXFx1MjJDM1wiLGJpZ2N1cDpcIlxcdTIyQzNcIix4Y3VwOlwiXFx1MjJDM1wiLFVuaW9uUGx1czpcIlxcdTIyOEVcIix1cGx1czpcIlxcdTIyOEVcIixVb2dvbjpcIlxcdTAxNzJcIixVb3BmOlwiXFx1ezFENTRDfVwiLFVwQXJyb3dCYXI6XCJcXHUyOTEyXCIsVXBBcnJvd0Rvd25BcnJvdzpcIlxcdTIxQzVcIix1ZGFycjpcIlxcdTIxQzVcIixVcERvd25BcnJvdzpcIlxcdTIxOTVcIix1cGRvd25hcnJvdzpcIlxcdTIxOTVcIix2YXJyOlwiXFx1MjE5NVwiLFVwRXF1aWxpYnJpdW06XCJcXHUyOTZFXCIsdWRoYXI6XCJcXHUyOTZFXCIsVXBUZWU6XCJcXHUyMkE1XCIsYm90OlwiXFx1MjJBNVwiLGJvdHRvbTpcIlxcdTIyQTVcIixwZXJwOlwiXFx1MjJBNVwiLFVwVGVlQXJyb3c6XCJcXHUyMUE1XCIsbWFwc3RvdXA6XCJcXHUyMUE1XCIsVXBwZXJMZWZ0QXJyb3c6XCJcXHUyMTk2XCIsbndhcnI6XCJcXHUyMTk2XCIsbndhcnJvdzpcIlxcdTIxOTZcIixVcHBlclJpZ2h0QXJyb3c6XCJcXHUyMTk3XCIsbmVhcnI6XCJcXHUyMTk3XCIsbmVhcnJvdzpcIlxcdTIxOTdcIixVcHNpOlwiXFx1MDNEMlwiLHVwc2loOlwiXFx1MDNEMlwiLFVwc2lsb246XCJcXHUwM0E1XCIsVXJpbmc6XCJcXHUwMTZFXCIsVXNjcjpcIlxcdXsxRDRCMH1cIixVdGlsZGU6XCJcXHUwMTY4XCIsVXVtbDpcIlxceERDXCIsVkRhc2g6XCJcXHUyMkFCXCIsVmJhcjpcIlxcdTJBRUJcIixWY3k6XCJcXHUwNDEyXCIsVmRhc2g6XCJcXHUyMkE5XCIsVmRhc2hsOlwiXFx1MkFFNlwiLFZlZTpcIlxcdTIyQzFcIixiaWd2ZWU6XCJcXHUyMkMxXCIseHZlZTpcIlxcdTIyQzFcIixWZXJiYXI6XCJcXHUyMDE2XCIsVmVydDpcIlxcdTIwMTZcIixWZXJ0aWNhbEJhcjpcIlxcdTIyMjNcIixtaWQ6XCJcXHUyMjIzXCIsc2hvcnRtaWQ6XCJcXHUyMjIzXCIsc21pZDpcIlxcdTIyMjNcIixWZXJ0aWNhbExpbmU6XCJ8XCIsdmVyYmFyOlwifFwiLHZlcnQ6XCJ8XCIsVmVydGljYWxTZXBhcmF0b3I6XCJcXHUyNzU4XCIsVmVydGljYWxUaWxkZTpcIlxcdTIyNDBcIix3cjpcIlxcdTIyNDBcIix3cmVhdGg6XCJcXHUyMjQwXCIsVmVyeVRoaW5TcGFjZTpcIlxcdTIwMEFcIixoYWlyc3A6XCJcXHUyMDBBXCIsVmZyOlwiXFx1ezFENTE5fVwiLFZvcGY6XCJcXHV7MUQ1NER9XCIsVnNjcjpcIlxcdXsxRDRCMX1cIixWdmRhc2g6XCJcXHUyMkFBXCIsV2NpcmM6XCJcXHUwMTc0XCIsV2VkZ2U6XCJcXHUyMkMwXCIsYmlnd2VkZ2U6XCJcXHUyMkMwXCIseHdlZGdlOlwiXFx1MjJDMFwiLFdmcjpcIlxcdXsxRDUxQX1cIixXb3BmOlwiXFx1ezFENTRFfVwiLFdzY3I6XCJcXHV7MUQ0QjJ9XCIsWGZyOlwiXFx1ezFENTFCfVwiLFhpOlwiXFx1MDM5RVwiLFhvcGY6XCJcXHV7MUQ1NEZ9XCIsWHNjcjpcIlxcdXsxRDRCM31cIixZQWN5OlwiXFx1MDQyRlwiLFlJY3k6XCJcXHUwNDA3XCIsWVVjeTpcIlxcdTA0MkVcIixZYWN1dGU6XCJcXHhERFwiLFljaXJjOlwiXFx1MDE3NlwiLFljeTpcIlxcdTA0MkJcIixZZnI6XCJcXHV7MUQ1MUN9XCIsWW9wZjpcIlxcdXsxRDU1MH1cIixZc2NyOlwiXFx1ezFENEI0fVwiLFl1bWw6XCJcXHUwMTc4XCIsWkhjeTpcIlxcdTA0MTZcIixaYWN1dGU6XCJcXHUwMTc5XCIsWmNhcm9uOlwiXFx1MDE3RFwiLFpjeTpcIlxcdTA0MTdcIixaZG90OlwiXFx1MDE3QlwiLFpldGE6XCJcXHUwMzk2XCIsWmZyOlwiXFx1MjEyOFwiLHplZXRyZjpcIlxcdTIxMjhcIixab3BmOlwiXFx1MjEyNFwiLGludGVnZXJzOlwiXFx1MjEyNFwiLFpzY3I6XCJcXHV7MUQ0QjV9XCIsYWFjdXRlOlwiXFx4RTFcIixhYnJldmU6XCJcXHUwMTAzXCIsYWM6XCJcXHUyMjNFXCIsbXN0cG9zOlwiXFx1MjIzRVwiLGFjRTpcIlxcdTIyM0VcXHUwMzMzXCIsYWNkOlwiXFx1MjIzRlwiLGFjaXJjOlwiXFx4RTJcIixhY3k6XCJcXHUwNDMwXCIsYWVsaWc6XCJcXHhFNlwiLGFmcjpcIlxcdXsxRDUxRX1cIixhZ3JhdmU6XCJcXHhFMFwiLGFsZWZzeW06XCJcXHUyMTM1XCIsYWxlcGg6XCJcXHUyMTM1XCIsYWxwaGE6XCJcXHUwM0IxXCIsYW1hY3I6XCJcXHUwMTAxXCIsYW1hbGc6XCJcXHUyQTNGXCIsYW5kOlwiXFx1MjIyN1wiLHdlZGdlOlwiXFx1MjIyN1wiLGFuZGFuZDpcIlxcdTJBNTVcIixhbmRkOlwiXFx1MkE1Q1wiLGFuZHNsb3BlOlwiXFx1MkE1OFwiLGFuZHY6XCJcXHUyQTVBXCIsYW5nOlwiXFx1MjIyMFwiLGFuZ2xlOlwiXFx1MjIyMFwiLGFuZ2U6XCJcXHUyOUE0XCIsYW5nbXNkOlwiXFx1MjIyMVwiLG1lYXN1cmVkYW5nbGU6XCJcXHUyMjIxXCIsYW5nbXNkYWE6XCJcXHUyOUE4XCIsYW5nbXNkYWI6XCJcXHUyOUE5XCIsYW5nbXNkYWM6XCJcXHUyOUFBXCIsYW5nbXNkYWQ6XCJcXHUyOUFCXCIsYW5nbXNkYWU6XCJcXHUyOUFDXCIsYW5nbXNkYWY6XCJcXHUyOUFEXCIsYW5nbXNkYWc6XCJcXHUyOUFFXCIsYW5nbXNkYWg6XCJcXHUyOUFGXCIsYW5ncnQ6XCJcXHUyMjFGXCIsYW5ncnR2YjpcIlxcdTIyQkVcIixhbmdydHZiZDpcIlxcdTI5OURcIixhbmdzcGg6XCJcXHUyMjIyXCIsYW5nemFycjpcIlxcdTIzN0NcIixhb2dvbjpcIlxcdTAxMDVcIixhb3BmOlwiXFx1ezFENTUyfVwiLGFwRTpcIlxcdTJBNzBcIixhcGFjaXI6XCJcXHUyQTZGXCIsYXBlOlwiXFx1MjI0QVwiLGFwcHJveGVxOlwiXFx1MjI0QVwiLGFwaWQ6XCJcXHUyMjRCXCIsYXBvczpcIidcIixhcmluZzpcIlxceEU1XCIsYXNjcjpcIlxcdXsxRDRCNn1cIixhc3Q6XCIqXCIsbWlkYXN0OlwiKlwiLGF0aWxkZTpcIlxceEUzXCIsYXVtbDpcIlxceEU0XCIsYXdpbnQ6XCJcXHUyQTExXCIsYk5vdDpcIlxcdTJBRURcIixiYWNrY29uZzpcIlxcdTIyNENcIixiY29uZzpcIlxcdTIyNENcIixiYWNrZXBzaWxvbjpcIlxcdTAzRjZcIixiZXBzaTpcIlxcdTAzRjZcIixiYWNrcHJpbWU6XCJcXHUyMDM1XCIsYnByaW1lOlwiXFx1MjAzNVwiLGJhY2tzaW06XCJcXHUyMjNEXCIsYnNpbTpcIlxcdTIyM0RcIixiYWNrc2ltZXE6XCJcXHUyMkNEXCIsYnNpbWU6XCJcXHUyMkNEXCIsYmFydmVlOlwiXFx1MjJCRFwiLGJhcndlZDpcIlxcdTIzMDVcIixiYXJ3ZWRnZTpcIlxcdTIzMDVcIixiYnJrdGJyazpcIlxcdTIzQjZcIixiY3k6XCJcXHUwNDMxXCIsYmRxdW86XCJcXHUyMDFFXCIsbGRxdW9yOlwiXFx1MjAxRVwiLGJlbXB0eXY6XCJcXHUyOUIwXCIsYmV0YTpcIlxcdTAzQjJcIixiZXRoOlwiXFx1MjEzNlwiLGJldHdlZW46XCJcXHUyMjZDXCIsdHdpeHQ6XCJcXHUyMjZDXCIsYmZyOlwiXFx1ezFENTFGfVwiLGJpZ2NpcmM6XCJcXHUyNUVGXCIseGNpcmM6XCJcXHUyNUVGXCIsYmlnb2RvdDpcIlxcdTJBMDBcIix4b2RvdDpcIlxcdTJBMDBcIixiaWdvcGx1czpcIlxcdTJBMDFcIix4b3BsdXM6XCJcXHUyQTAxXCIsYmlnb3RpbWVzOlwiXFx1MkEwMlwiLHhvdGltZTpcIlxcdTJBMDJcIixiaWdzcWN1cDpcIlxcdTJBMDZcIix4c3FjdXA6XCJcXHUyQTA2XCIsYmlnc3RhcjpcIlxcdTI2MDVcIixzdGFyZjpcIlxcdTI2MDVcIixiaWd0cmlhbmdsZWRvd246XCJcXHUyNUJEXCIseGR0cmk6XCJcXHUyNUJEXCIsYmlndHJpYW5nbGV1cDpcIlxcdTI1QjNcIix4dXRyaTpcIlxcdTI1QjNcIixiaWd1cGx1czpcIlxcdTJBMDRcIix4dXBsdXM6XCJcXHUyQTA0XCIsYmthcm93OlwiXFx1MjkwRFwiLHJiYXJyOlwiXFx1MjkwRFwiLGJsYWNrbG96ZW5nZTpcIlxcdTI5RUJcIixsb3pmOlwiXFx1MjlFQlwiLGJsYWNrdHJpYW5nbGU6XCJcXHUyNUI0XCIsdXRyaWY6XCJcXHUyNUI0XCIsYmxhY2t0cmlhbmdsZWRvd246XCJcXHUyNUJFXCIsZHRyaWY6XCJcXHUyNUJFXCIsYmxhY2t0cmlhbmdsZWxlZnQ6XCJcXHUyNUMyXCIsbHRyaWY6XCJcXHUyNUMyXCIsYmxhY2t0cmlhbmdsZXJpZ2h0OlwiXFx1MjVCOFwiLHJ0cmlmOlwiXFx1MjVCOFwiLGJsYW5rOlwiXFx1MjQyM1wiLGJsazEyOlwiXFx1MjU5MlwiLGJsazE0OlwiXFx1MjU5MVwiLGJsazM0OlwiXFx1MjU5M1wiLGJsb2NrOlwiXFx1MjU4OFwiLGJuZTpcIj1cXHUyMEU1XCIsYm5lcXVpdjpcIlxcdTIyNjFcXHUyMEU1XCIsYm5vdDpcIlxcdTIzMTBcIixib3BmOlwiXFx1ezFENTUzfVwiLGJvd3RpZTpcIlxcdTIyQzhcIixib3hETDpcIlxcdTI1NTdcIixib3hEUjpcIlxcdTI1NTRcIixib3hEbDpcIlxcdTI1NTZcIixib3hEcjpcIlxcdTI1NTNcIixib3hIOlwiXFx1MjU1MFwiLGJveEhEOlwiXFx1MjU2NlwiLGJveEhVOlwiXFx1MjU2OVwiLGJveEhkOlwiXFx1MjU2NFwiLGJveEh1OlwiXFx1MjU2N1wiLGJveFVMOlwiXFx1MjU1RFwiLGJveFVSOlwiXFx1MjU1QVwiLGJveFVsOlwiXFx1MjU1Q1wiLGJveFVyOlwiXFx1MjU1OVwiLGJveFY6XCJcXHUyNTUxXCIsYm94Vkg6XCJcXHUyNTZDXCIsYm94Vkw6XCJcXHUyNTYzXCIsYm94VlI6XCJcXHUyNTYwXCIsYm94Vmg6XCJcXHUyNTZCXCIsYm94Vmw6XCJcXHUyNTYyXCIsYm94VnI6XCJcXHUyNTVGXCIsYm94Ym94OlwiXFx1MjlDOVwiLGJveGRMOlwiXFx1MjU1NVwiLGJveGRSOlwiXFx1MjU1MlwiLGJveGRsOlwiXFx1MjUxMFwiLGJveGRyOlwiXFx1MjUwQ1wiLGJveGhEOlwiXFx1MjU2NVwiLGJveGhVOlwiXFx1MjU2OFwiLGJveGhkOlwiXFx1MjUyQ1wiLGJveGh1OlwiXFx1MjUzNFwiLGJveG1pbnVzOlwiXFx1MjI5RlwiLG1pbnVzYjpcIlxcdTIyOUZcIixib3hwbHVzOlwiXFx1MjI5RVwiLHBsdXNiOlwiXFx1MjI5RVwiLGJveHRpbWVzOlwiXFx1MjJBMFwiLHRpbWVzYjpcIlxcdTIyQTBcIixib3h1TDpcIlxcdTI1NUJcIixib3h1UjpcIlxcdTI1NThcIixib3h1bDpcIlxcdTI1MThcIixib3h1cjpcIlxcdTI1MTRcIixib3h2OlwiXFx1MjUwMlwiLGJveHZIOlwiXFx1MjU2QVwiLGJveHZMOlwiXFx1MjU2MVwiLGJveHZSOlwiXFx1MjU1RVwiLGJveHZoOlwiXFx1MjUzQ1wiLGJveHZsOlwiXFx1MjUyNFwiLGJveHZyOlwiXFx1MjUxQ1wiLGJydmJhcjpcIlxceEE2XCIsYnNjcjpcIlxcdXsxRDRCN31cIixic2VtaTpcIlxcdTIwNEZcIixic29sOlwiXFxcXFwiLGJzb2xiOlwiXFx1MjlDNVwiLGJzb2xoc3ViOlwiXFx1MjdDOFwiLGJ1bGw6XCJcXHUyMDIyXCIsYnVsbGV0OlwiXFx1MjAyMlwiLGJ1bXBFOlwiXFx1MkFBRVwiLGNhY3V0ZTpcIlxcdTAxMDdcIixjYXA6XCJcXHUyMjI5XCIsY2FwYW5kOlwiXFx1MkE0NFwiLGNhcGJyY3VwOlwiXFx1MkE0OVwiLGNhcGNhcDpcIlxcdTJBNEJcIixjYXBjdXA6XCJcXHUyQTQ3XCIsY2FwZG90OlwiXFx1MkE0MFwiLGNhcHM6XCJcXHUyMjI5XFx1RkUwMFwiLGNhcmV0OlwiXFx1MjA0MVwiLGNjYXBzOlwiXFx1MkE0RFwiLGNjYXJvbjpcIlxcdTAxMERcIixjY2VkaWw6XCJcXHhFN1wiLGNjaXJjOlwiXFx1MDEwOVwiLGNjdXBzOlwiXFx1MkE0Q1wiLGNjdXBzc206XCJcXHUyQTUwXCIsY2RvdDpcIlxcdTAxMEJcIixjZW1wdHl2OlwiXFx1MjlCMlwiLGNlbnQ6XCJcXHhBMlwiLGNmcjpcIlxcdXsxRDUyMH1cIixjaGN5OlwiXFx1MDQ0N1wiLGNoZWNrOlwiXFx1MjcxM1wiLGNoZWNrbWFyazpcIlxcdTI3MTNcIixjaGk6XCJcXHUwM0M3XCIsY2lyOlwiXFx1MjVDQlwiLGNpckU6XCJcXHUyOUMzXCIsY2lyYzpcIlxcdTAyQzZcIixjaXJjZXE6XCJcXHUyMjU3XCIsY2lyZTpcIlxcdTIyNTdcIixjaXJjbGVhcnJvd2xlZnQ6XCJcXHUyMUJBXCIsb2xhcnI6XCJcXHUyMUJBXCIsY2lyY2xlYXJyb3dyaWdodDpcIlxcdTIxQkJcIixvcmFycjpcIlxcdTIxQkJcIixjaXJjbGVkUzpcIlxcdTI0QzhcIixvUzpcIlxcdTI0QzhcIixjaXJjbGVkYXN0OlwiXFx1MjI5QlwiLG9hc3Q6XCJcXHUyMjlCXCIsY2lyY2xlZGNpcmM6XCJcXHUyMjlBXCIsb2NpcjpcIlxcdTIyOUFcIixjaXJjbGVkZGFzaDpcIlxcdTIyOURcIixvZGFzaDpcIlxcdTIyOURcIixjaXJmbmludDpcIlxcdTJBMTBcIixjaXJtaWQ6XCJcXHUyQUVGXCIsY2lyc2NpcjpcIlxcdTI5QzJcIixjbHViczpcIlxcdTI2NjNcIixjbHVic3VpdDpcIlxcdTI2NjNcIixjb2xvbjpcIjpcIixjb21tYTpcIixcIixjb21tYXQ6XCJAXCIsY29tcDpcIlxcdTIyMDFcIixjb21wbGVtZW50OlwiXFx1MjIwMVwiLGNvbmdkb3Q6XCJcXHUyQTZEXCIsY29wZjpcIlxcdXsxRDU1NH1cIixjb3B5c3I6XCJcXHUyMTE3XCIsY3JhcnI6XCJcXHUyMUI1XCIsY3Jvc3M6XCJcXHUyNzE3XCIsY3NjcjpcIlxcdXsxRDRCOH1cIixjc3ViOlwiXFx1MkFDRlwiLGNzdWJlOlwiXFx1MkFEMVwiLGNzdXA6XCJcXHUyQUQwXCIsY3N1cGU6XCJcXHUyQUQyXCIsY3Rkb3Q6XCJcXHUyMkVGXCIsY3VkYXJybDpcIlxcdTI5MzhcIixjdWRhcnJyOlwiXFx1MjkzNVwiLGN1ZXByOlwiXFx1MjJERVwiLGN1cmx5ZXFwcmVjOlwiXFx1MjJERVwiLGN1ZXNjOlwiXFx1MjJERlwiLGN1cmx5ZXFzdWNjOlwiXFx1MjJERlwiLGN1bGFycjpcIlxcdTIxQjZcIixjdXJ2ZWFycm93bGVmdDpcIlxcdTIxQjZcIixjdWxhcnJwOlwiXFx1MjkzRFwiLGN1cDpcIlxcdTIyMkFcIixjdXBicmNhcDpcIlxcdTJBNDhcIixjdXBjYXA6XCJcXHUyQTQ2XCIsY3VwY3VwOlwiXFx1MkE0QVwiLGN1cGRvdDpcIlxcdTIyOERcIixjdXBvcjpcIlxcdTJBNDVcIixjdXBzOlwiXFx1MjIyQVxcdUZFMDBcIixjdXJhcnI6XCJcXHUyMUI3XCIsY3VydmVhcnJvd3JpZ2h0OlwiXFx1MjFCN1wiLGN1cmFycm06XCJcXHUyOTNDXCIsY3VybHl2ZWU6XCJcXHUyMkNFXCIsY3V2ZWU6XCJcXHUyMkNFXCIsY3VybHl3ZWRnZTpcIlxcdTIyQ0ZcIixjdXdlZDpcIlxcdTIyQ0ZcIixjdXJyZW46XCJcXHhBNFwiLGN3aW50OlwiXFx1MjIzMVwiLGN5bGN0eTpcIlxcdTIzMkRcIixkSGFyOlwiXFx1Mjk2NVwiLGRhZ2dlcjpcIlxcdTIwMjBcIixkYWxldGg6XCJcXHUyMTM4XCIsZGFzaDpcIlxcdTIwMTBcIixoeXBoZW46XCJcXHUyMDEwXCIsZGJrYXJvdzpcIlxcdTI5MEZcIixyQmFycjpcIlxcdTI5MEZcIixkY2Fyb246XCJcXHUwMTBGXCIsZGN5OlwiXFx1MDQzNFwiLGRkYXJyOlwiXFx1MjFDQVwiLGRvd25kb3duYXJyb3dzOlwiXFx1MjFDQVwiLGRkb3RzZXE6XCJcXHUyQTc3XCIsZUREb3Q6XCJcXHUyQTc3XCIsZGVnOlwiXFx4QjBcIixkZWx0YTpcIlxcdTAzQjRcIixkZW1wdHl2OlwiXFx1MjlCMVwiLGRmaXNodDpcIlxcdTI5N0ZcIixkZnI6XCJcXHV7MUQ1MjF9XCIsZGlhbW9uZHN1aXQ6XCJcXHUyNjY2XCIsZGlhbXM6XCJcXHUyNjY2XCIsZGlnYW1tYTpcIlxcdTAzRERcIixnYW1tYWQ6XCJcXHUwM0REXCIsZGlzaW46XCJcXHUyMkYyXCIsZGl2OlwiXFx4RjdcIixkaXZpZGU6XCJcXHhGN1wiLGRpdmlkZW9udGltZXM6XCJcXHUyMkM3XCIsZGl2b254OlwiXFx1MjJDN1wiLGRqY3k6XCJcXHUwNDUyXCIsZGxjb3JuOlwiXFx1MjMxRVwiLGxsY29ybmVyOlwiXFx1MjMxRVwiLGRsY3JvcDpcIlxcdTIzMERcIixkb2xsYXI6XCIkXCIsZG9wZjpcIlxcdXsxRDU1NX1cIixkb3RlcWRvdDpcIlxcdTIyNTFcIixlRG90OlwiXFx1MjI1MVwiLGRvdG1pbnVzOlwiXFx1MjIzOFwiLG1pbnVzZDpcIlxcdTIyMzhcIixkb3RwbHVzOlwiXFx1MjIxNFwiLHBsdXNkbzpcIlxcdTIyMTRcIixkb3RzcXVhcmU6XCJcXHUyMkExXCIsc2RvdGI6XCJcXHUyMkExXCIsZHJjb3JuOlwiXFx1MjMxRlwiLGxyY29ybmVyOlwiXFx1MjMxRlwiLGRyY3JvcDpcIlxcdTIzMENcIixkc2NyOlwiXFx1ezFENEI5fVwiLGRzY3k6XCJcXHUwNDU1XCIsZHNvbDpcIlxcdTI5RjZcIixkc3Ryb2s6XCJcXHUwMTExXCIsZHRkb3Q6XCJcXHUyMkYxXCIsZHRyaTpcIlxcdTI1QkZcIix0cmlhbmdsZWRvd246XCJcXHUyNUJGXCIsZHdhbmdsZTpcIlxcdTI5QTZcIixkemN5OlwiXFx1MDQ1RlwiLGR6aWdyYXJyOlwiXFx1MjdGRlwiLGVhY3V0ZTpcIlxceEU5XCIsZWFzdGVyOlwiXFx1MkE2RVwiLGVjYXJvbjpcIlxcdTAxMUJcIixlY2lyOlwiXFx1MjI1NlwiLGVxY2lyYzpcIlxcdTIyNTZcIixlY2lyYzpcIlxceEVBXCIsZWNvbG9uOlwiXFx1MjI1NVwiLGVxY29sb246XCJcXHUyMjU1XCIsZWN5OlwiXFx1MDQ0RFwiLGVkb3Q6XCJcXHUwMTE3XCIsZWZEb3Q6XCJcXHUyMjUyXCIsZmFsbGluZ2RvdHNlcTpcIlxcdTIyNTJcIixlZnI6XCJcXHV7MUQ1MjJ9XCIsZWc6XCJcXHUyQTlBXCIsZWdyYXZlOlwiXFx4RThcIixlZ3M6XCJcXHUyQTk2XCIsZXFzbGFudGd0cjpcIlxcdTJBOTZcIixlZ3Nkb3Q6XCJcXHUyQTk4XCIsZWw6XCJcXHUyQTk5XCIsZWxpbnRlcnM6XCJcXHUyM0U3XCIsZWxsOlwiXFx1MjExM1wiLGVsczpcIlxcdTJBOTVcIixlcXNsYW50bGVzczpcIlxcdTJBOTVcIixlbHNkb3Q6XCJcXHUyQTk3XCIsZW1hY3I6XCJcXHUwMTEzXCIsZW1wdHk6XCJcXHUyMjA1XCIsZW1wdHlzZXQ6XCJcXHUyMjA1XCIsZW1wdHl2OlwiXFx1MjIwNVwiLHZhcm5vdGhpbmc6XCJcXHUyMjA1XCIsZW1zcDEzOlwiXFx1MjAwNFwiLGVtc3AxNDpcIlxcdTIwMDVcIixlbXNwOlwiXFx1MjAwM1wiLGVuZzpcIlxcdTAxNEJcIixlbnNwOlwiXFx1MjAwMlwiLGVvZ29uOlwiXFx1MDExOVwiLGVvcGY6XCJcXHV7MUQ1NTZ9XCIsZXBhcjpcIlxcdTIyRDVcIixlcGFyc2w6XCJcXHUyOUUzXCIsZXBsdXM6XCJcXHUyQTcxXCIsZXBzaTpcIlxcdTAzQjVcIixlcHNpbG9uOlwiXFx1MDNCNVwiLGVwc2l2OlwiXFx1MDNGNVwiLHN0cmFpZ2h0ZXBzaWxvbjpcIlxcdTAzRjVcIix2YXJlcHNpbG9uOlwiXFx1MDNGNVwiLGVxdWFsczpcIj1cIixlcXVlc3Q6XCJcXHUyMjVGXCIscXVlc3RlcTpcIlxcdTIyNUZcIixlcXVpdkREOlwiXFx1MkE3OFwiLGVxdnBhcnNsOlwiXFx1MjlFNVwiLGVyRG90OlwiXFx1MjI1M1wiLHJpc2luZ2RvdHNlcTpcIlxcdTIyNTNcIixlcmFycjpcIlxcdTI5NzFcIixlc2NyOlwiXFx1MjEyRlwiLGV0YTpcIlxcdTAzQjdcIixldGg6XCJcXHhGMFwiLGV1bWw6XCJcXHhFQlwiLGV1cm86XCJcXHUyMEFDXCIsZXhjbDpcIiFcIixmY3k6XCJcXHUwNDQ0XCIsZmVtYWxlOlwiXFx1MjY0MFwiLGZmaWxpZzpcIlxcdUZCMDNcIixmZmxpZzpcIlxcdUZCMDBcIixmZmxsaWc6XCJcXHVGQjA0XCIsZmZyOlwiXFx1ezFENTIzfVwiLGZpbGlnOlwiXFx1RkIwMVwiLGZqbGlnOlwiZmpcIixmbGF0OlwiXFx1MjY2RFwiLGZsbGlnOlwiXFx1RkIwMlwiLGZsdG5zOlwiXFx1MjVCMVwiLGZub2Y6XCJcXHUwMTkyXCIsZm9wZjpcIlxcdXsxRDU1N31cIixmb3JrOlwiXFx1MjJENFwiLHBpdGNoZm9yazpcIlxcdTIyRDRcIixmb3JrdjpcIlxcdTJBRDlcIixmcGFydGludDpcIlxcdTJBMERcIixmcmFjMTI6XCJcXHhCRFwiLGhhbGY6XCJcXHhCRFwiLGZyYWMxMzpcIlxcdTIxNTNcIixmcmFjMTQ6XCJcXHhCQ1wiLGZyYWMxNTpcIlxcdTIxNTVcIixmcmFjMTY6XCJcXHUyMTU5XCIsZnJhYzE4OlwiXFx1MjE1QlwiLGZyYWMyMzpcIlxcdTIxNTRcIixmcmFjMjU6XCJcXHUyMTU2XCIsZnJhYzM0OlwiXFx4QkVcIixmcmFjMzU6XCJcXHUyMTU3XCIsZnJhYzM4OlwiXFx1MjE1Q1wiLGZyYWM0NTpcIlxcdTIxNThcIixmcmFjNTY6XCJcXHUyMTVBXCIsZnJhYzU4OlwiXFx1MjE1RFwiLGZyYWM3ODpcIlxcdTIxNUVcIixmcmFzbDpcIlxcdTIwNDRcIixmcm93bjpcIlxcdTIzMjJcIixzZnJvd246XCJcXHUyMzIyXCIsZnNjcjpcIlxcdXsxRDRCQn1cIixnRWw6XCJcXHUyQThDXCIsZ3RyZXFxbGVzczpcIlxcdTJBOENcIixnYWN1dGU6XCJcXHUwMUY1XCIsZ2FtbWE6XCJcXHUwM0IzXCIsZ2FwOlwiXFx1MkE4NlwiLGd0cmFwcHJveDpcIlxcdTJBODZcIixnYnJldmU6XCJcXHUwMTFGXCIsZ2NpcmM6XCJcXHUwMTFEXCIsZ2N5OlwiXFx1MDQzM1wiLGdkb3Q6XCJcXHUwMTIxXCIsZ2VzY2M6XCJcXHUyQUE5XCIsZ2VzZG90OlwiXFx1MkE4MFwiLGdlc2RvdG86XCJcXHUyQTgyXCIsZ2VzZG90b2w6XCJcXHUyQTg0XCIsZ2VzbDpcIlxcdTIyREJcXHVGRTAwXCIsZ2VzbGVzOlwiXFx1MkE5NFwiLGdmcjpcIlxcdXsxRDUyNH1cIixnaW1lbDpcIlxcdTIxMzdcIixnamN5OlwiXFx1MDQ1M1wiLGdsRTpcIlxcdTJBOTJcIixnbGE6XCJcXHUyQUE1XCIsZ2xqOlwiXFx1MkFBNFwiLGduRTpcIlxcdTIyNjlcIixnbmVxcTpcIlxcdTIyNjlcIixnbmFwOlwiXFx1MkE4QVwiLGduYXBwcm94OlwiXFx1MkE4QVwiLGduZTpcIlxcdTJBODhcIixnbmVxOlwiXFx1MkE4OFwiLGduc2ltOlwiXFx1MjJFN1wiLGdvcGY6XCJcXHV7MUQ1NTh9XCIsZ3NjcjpcIlxcdTIxMEFcIixnc2ltZTpcIlxcdTJBOEVcIixnc2ltbDpcIlxcdTJBOTBcIixndGNjOlwiXFx1MkFBN1wiLGd0Y2lyOlwiXFx1MkE3QVwiLGd0ZG90OlwiXFx1MjJEN1wiLGd0cmRvdDpcIlxcdTIyRDdcIixndGxQYXI6XCJcXHUyOTk1XCIsZ3RxdWVzdDpcIlxcdTJBN0NcIixndHJhcnI6XCJcXHUyOTc4XCIsZ3ZlcnRuZXFxOlwiXFx1MjI2OVxcdUZFMDBcIixndm5FOlwiXFx1MjI2OVxcdUZFMDBcIixoYXJkY3k6XCJcXHUwNDRBXCIsaGFycmNpcjpcIlxcdTI5NDhcIixoYXJydzpcIlxcdTIxQURcIixsZWZ0cmlnaHRzcXVpZ2Fycm93OlwiXFx1MjFBRFwiLGhiYXI6XCJcXHUyMTBGXCIsaHNsYXNoOlwiXFx1MjEwRlwiLHBsYW5jazpcIlxcdTIxMEZcIixwbGFua3Y6XCJcXHUyMTBGXCIsaGNpcmM6XCJcXHUwMTI1XCIsaGVhcnRzOlwiXFx1MjY2NVwiLGhlYXJ0c3VpdDpcIlxcdTI2NjVcIixoZWxsaXA6XCJcXHUyMDI2XCIsbWxkcjpcIlxcdTIwMjZcIixoZXJjb246XCJcXHUyMkI5XCIsaGZyOlwiXFx1ezFENTI1fVwiLGhrc2Vhcm93OlwiXFx1MjkyNVwiLHNlYXJoazpcIlxcdTI5MjVcIixoa3N3YXJvdzpcIlxcdTI5MjZcIixzd2FyaGs6XCJcXHUyOTI2XCIsaG9hcnI6XCJcXHUyMUZGXCIsaG9tdGh0OlwiXFx1MjIzQlwiLGhvb2tsZWZ0YXJyb3c6XCJcXHUyMUE5XCIsbGFycmhrOlwiXFx1MjFBOVwiLGhvb2tyaWdodGFycm93OlwiXFx1MjFBQVwiLHJhcnJoazpcIlxcdTIxQUFcIixob3BmOlwiXFx1ezFENTU5fVwiLGhvcmJhcjpcIlxcdTIwMTVcIixoc2NyOlwiXFx1ezFENEJEfVwiLGhzdHJvazpcIlxcdTAxMjdcIixoeWJ1bGw6XCJcXHUyMDQzXCIsaWFjdXRlOlwiXFx4RURcIixpY2lyYzpcIlxceEVFXCIsaWN5OlwiXFx1MDQzOFwiLGllY3k6XCJcXHUwNDM1XCIsaWV4Y2w6XCJcXHhBMVwiLGlmcjpcIlxcdXsxRDUyNn1cIixpZ3JhdmU6XCJcXHhFQ1wiLGlpaWludDpcIlxcdTJBMENcIixxaW50OlwiXFx1MkEwQ1wiLGlpaW50OlwiXFx1MjIyRFwiLHRpbnQ6XCJcXHUyMjJEXCIsaWluZmluOlwiXFx1MjlEQ1wiLGlpb3RhOlwiXFx1MjEyOVwiLGlqbGlnOlwiXFx1MDEzM1wiLGltYWNyOlwiXFx1MDEyQlwiLGltYXRoOlwiXFx1MDEzMVwiLGlub2RvdDpcIlxcdTAxMzFcIixpbW9mOlwiXFx1MjJCN1wiLGltcGVkOlwiXFx1MDFCNVwiLGluY2FyZTpcIlxcdTIxMDVcIixpbmZpbjpcIlxcdTIyMUVcIixpbmZpbnRpZTpcIlxcdTI5RERcIixpbnRjYWw6XCJcXHUyMkJBXCIsaW50ZXJjYWw6XCJcXHUyMkJBXCIsaW50bGFyaGs6XCJcXHUyQTE3XCIsaW50cHJvZDpcIlxcdTJBM0NcIixpcHJvZDpcIlxcdTJBM0NcIixpb2N5OlwiXFx1MDQ1MVwiLGlvZ29uOlwiXFx1MDEyRlwiLGlvcGY6XCJcXHV7MUQ1NUF9XCIsaW90YTpcIlxcdTAzQjlcIixpcXVlc3Q6XCJcXHhCRlwiLGlzY3I6XCJcXHV7MUQ0QkV9XCIsaXNpbkU6XCJcXHUyMkY5XCIsaXNpbmRvdDpcIlxcdTIyRjVcIixpc2luczpcIlxcdTIyRjRcIixpc2luc3Y6XCJcXHUyMkYzXCIsaXRpbGRlOlwiXFx1MDEyOVwiLGl1a2N5OlwiXFx1MDQ1NlwiLGl1bWw6XCJcXHhFRlwiLGpjaXJjOlwiXFx1MDEzNVwiLGpjeTpcIlxcdTA0MzlcIixqZnI6XCJcXHV7MUQ1Mjd9XCIsam1hdGg6XCJcXHUwMjM3XCIsam9wZjpcIlxcdXsxRDU1Qn1cIixqc2NyOlwiXFx1ezFENEJGfVwiLGpzZXJjeTpcIlxcdTA0NThcIixqdWtjeTpcIlxcdTA0NTRcIixrYXBwYTpcIlxcdTAzQkFcIixrYXBwYXY6XCJcXHUwM0YwXCIsdmFya2FwcGE6XCJcXHUwM0YwXCIsa2NlZGlsOlwiXFx1MDEzN1wiLGtjeTpcIlxcdTA0M0FcIixrZnI6XCJcXHV7MUQ1Mjh9XCIsa2dyZWVuOlwiXFx1MDEzOFwiLGtoY3k6XCJcXHUwNDQ1XCIsa2pjeTpcIlxcdTA0NUNcIixrb3BmOlwiXFx1ezFENTVDfVwiLGtzY3I6XCJcXHV7MUQ0QzB9XCIsbEF0YWlsOlwiXFx1MjkxQlwiLGxCYXJyOlwiXFx1MjkwRVwiLGxFZzpcIlxcdTJBOEJcIixsZXNzZXFxZ3RyOlwiXFx1MkE4QlwiLGxIYXI6XCJcXHUyOTYyXCIsbGFjdXRlOlwiXFx1MDEzQVwiLGxhZW1wdHl2OlwiXFx1MjlCNFwiLGxhbWJkYTpcIlxcdTAzQkJcIixsYW5nZDpcIlxcdTI5OTFcIixsYXA6XCJcXHUyQTg1XCIsbGVzc2FwcHJveDpcIlxcdTJBODVcIixsYXF1bzpcIlxceEFCXCIsbGFycmJmczpcIlxcdTI5MUZcIixsYXJyZnM6XCJcXHUyOTFEXCIsbGFycmxwOlwiXFx1MjFBQlwiLGxvb3BhcnJvd2xlZnQ6XCJcXHUyMUFCXCIsbGFycnBsOlwiXFx1MjkzOVwiLGxhcnJzaW06XCJcXHUyOTczXCIsbGFycnRsOlwiXFx1MjFBMlwiLGxlZnRhcnJvd3RhaWw6XCJcXHUyMUEyXCIsbGF0OlwiXFx1MkFBQlwiLGxhdGFpbDpcIlxcdTI5MTlcIixsYXRlOlwiXFx1MkFBRFwiLGxhdGVzOlwiXFx1MkFBRFxcdUZFMDBcIixsYmFycjpcIlxcdTI5MENcIixsYmJyazpcIlxcdTI3NzJcIixsYnJhY2U6XCJ7XCIsbGN1YjpcIntcIixsYnJhY2s6XCJbXCIsbHNxYjpcIltcIixsYnJrZTpcIlxcdTI5OEJcIixsYnJrc2xkOlwiXFx1Mjk4RlwiLGxicmtzbHU6XCJcXHUyOThEXCIsbGNhcm9uOlwiXFx1MDEzRVwiLGxjZWRpbDpcIlxcdTAxM0NcIixsY3k6XCJcXHUwNDNCXCIsbGRjYTpcIlxcdTI5MzZcIixsZHJkaGFyOlwiXFx1Mjk2N1wiLGxkcnVzaGFyOlwiXFx1Mjk0QlwiLGxkc2g6XCJcXHUyMUIyXCIsbGU6XCJcXHUyMjY0XCIsbGVxOlwiXFx1MjI2NFwiLGxlZnRsZWZ0YXJyb3dzOlwiXFx1MjFDN1wiLGxsYXJyOlwiXFx1MjFDN1wiLGxlZnR0aHJlZXRpbWVzOlwiXFx1MjJDQlwiLGx0aHJlZTpcIlxcdTIyQ0JcIixsZXNjYzpcIlxcdTJBQThcIixsZXNkb3Q6XCJcXHUyQTdGXCIsbGVzZG90bzpcIlxcdTJBODFcIixsZXNkb3RvcjpcIlxcdTJBODNcIixsZXNnOlwiXFx1MjJEQVxcdUZFMDBcIixsZXNnZXM6XCJcXHUyQTkzXCIsbGVzc2RvdDpcIlxcdTIyRDZcIixsdGRvdDpcIlxcdTIyRDZcIixsZmlzaHQ6XCJcXHUyOTdDXCIsbGZyOlwiXFx1ezFENTI5fVwiLGxnRTpcIlxcdTJBOTFcIixsaGFydWw6XCJcXHUyOTZBXCIsbGhibGs6XCJcXHUyNTg0XCIsbGpjeTpcIlxcdTA0NTlcIixsbGhhcmQ6XCJcXHUyOTZCXCIsbGx0cmk6XCJcXHUyNUZBXCIsbG1pZG90OlwiXFx1MDE0MFwiLGxtb3VzdDpcIlxcdTIzQjBcIixsbW91c3RhY2hlOlwiXFx1MjNCMFwiLGxuRTpcIlxcdTIyNjhcIixsbmVxcTpcIlxcdTIyNjhcIixsbmFwOlwiXFx1MkE4OVwiLGxuYXBwcm94OlwiXFx1MkE4OVwiLGxuZTpcIlxcdTJBODdcIixsbmVxOlwiXFx1MkE4N1wiLGxuc2ltOlwiXFx1MjJFNlwiLGxvYW5nOlwiXFx1MjdFQ1wiLGxvYXJyOlwiXFx1MjFGRFwiLGxvbmdtYXBzdG86XCJcXHUyN0ZDXCIseG1hcDpcIlxcdTI3RkNcIixsb29wYXJyb3dyaWdodDpcIlxcdTIxQUNcIixyYXJybHA6XCJcXHUyMUFDXCIsbG9wYXI6XCJcXHUyOTg1XCIsbG9wZjpcIlxcdXsxRDU1RH1cIixsb3BsdXM6XCJcXHUyQTJEXCIsbG90aW1lczpcIlxcdTJBMzRcIixsb3dhc3Q6XCJcXHUyMjE3XCIsbG96OlwiXFx1MjVDQVwiLGxvemVuZ2U6XCJcXHUyNUNBXCIsbHBhcjpcIihcIixscGFybHQ6XCJcXHUyOTkzXCIsbHJoYXJkOlwiXFx1Mjk2RFwiLGxybTpcIlxcdTIwMEVcIixscnRyaTpcIlxcdTIyQkZcIixsc2FxdW86XCJcXHUyMDM5XCIsbHNjcjpcIlxcdXsxRDRDMX1cIixsc2ltZTpcIlxcdTJBOERcIixsc2ltZzpcIlxcdTJBOEZcIixsc3F1b3I6XCJcXHUyMDFBXCIsc2JxdW86XCJcXHUyMDFBXCIsbHN0cm9rOlwiXFx1MDE0MlwiLGx0Y2M6XCJcXHUyQUE2XCIsbHRjaXI6XCJcXHUyQTc5XCIsbHRpbWVzOlwiXFx1MjJDOVwiLGx0bGFycjpcIlxcdTI5NzZcIixsdHF1ZXN0OlwiXFx1MkE3QlwiLGx0clBhcjpcIlxcdTI5OTZcIixsdHJpOlwiXFx1MjVDM1wiLHRyaWFuZ2xlbGVmdDpcIlxcdTI1QzNcIixsdXJkc2hhcjpcIlxcdTI5NEFcIixsdXJ1aGFyOlwiXFx1Mjk2NlwiLGx2ZXJ0bmVxcTpcIlxcdTIyNjhcXHVGRTAwXCIsbHZuRTpcIlxcdTIyNjhcXHVGRTAwXCIsbUREb3Q6XCJcXHUyMjNBXCIsbWFjcjpcIlxceEFGXCIsc3RybnM6XCJcXHhBRlwiLG1hbGU6XCJcXHUyNjQyXCIsbWFsdDpcIlxcdTI3MjBcIixtYWx0ZXNlOlwiXFx1MjcyMFwiLG1hcmtlcjpcIlxcdTI1QUVcIixtY29tbWE6XCJcXHUyQTI5XCIsbWN5OlwiXFx1MDQzQ1wiLG1kYXNoOlwiXFx1MjAxNFwiLG1mcjpcIlxcdXsxRDUyQX1cIixtaG86XCJcXHUyMTI3XCIsbWljcm86XCJcXHhCNVwiLG1pZGNpcjpcIlxcdTJBRjBcIixtaW51czpcIlxcdTIyMTJcIixtaW51c2R1OlwiXFx1MkEyQVwiLG1sY3A6XCJcXHUyQURCXCIsbW9kZWxzOlwiXFx1MjJBN1wiLG1vcGY6XCJcXHV7MUQ1NUV9XCIsbXNjcjpcIlxcdXsxRDRDMn1cIixtdTpcIlxcdTAzQkNcIixtdWx0aW1hcDpcIlxcdTIyQjhcIixtdW1hcDpcIlxcdTIyQjhcIixuR2c6XCJcXHUyMkQ5XFx1MDMzOFwiLG5HdDpcIlxcdTIyNkJcXHUyMEQyXCIsbkxlZnRhcnJvdzpcIlxcdTIxQ0RcIixubEFycjpcIlxcdTIxQ0RcIixuTGVmdHJpZ2h0YXJyb3c6XCJcXHUyMUNFXCIsbmhBcnI6XCJcXHUyMUNFXCIsbkxsOlwiXFx1MjJEOFxcdTAzMzhcIixuTHQ6XCJcXHUyMjZBXFx1MjBEMlwiLG5SaWdodGFycm93OlwiXFx1MjFDRlwiLG5yQXJyOlwiXFx1MjFDRlwiLG5WRGFzaDpcIlxcdTIyQUZcIixuVmRhc2g6XCJcXHUyMkFFXCIsbmFjdXRlOlwiXFx1MDE0NFwiLG5hbmc6XCJcXHUyMjIwXFx1MjBEMlwiLG5hcEU6XCJcXHUyQTcwXFx1MDMzOFwiLG5hcGlkOlwiXFx1MjI0QlxcdTAzMzhcIixuYXBvczpcIlxcdTAxNDlcIixuYXR1cjpcIlxcdTI2NkVcIixuYXR1cmFsOlwiXFx1MjY2RVwiLG5jYXA6XCJcXHUyQTQzXCIsbmNhcm9uOlwiXFx1MDE0OFwiLG5jZWRpbDpcIlxcdTAxNDZcIixuY29uZ2RvdDpcIlxcdTJBNkRcXHUwMzM4XCIsbmN1cDpcIlxcdTJBNDJcIixuY3k6XCJcXHUwNDNEXCIsbmRhc2g6XCJcXHUyMDEzXCIsbmVBcnI6XCJcXHUyMUQ3XCIsbmVhcmhrOlwiXFx1MjkyNFwiLG5lZG90OlwiXFx1MjI1MFxcdTAzMzhcIixuZXNlYXI6XCJcXHUyOTI4XCIsdG9lYTpcIlxcdTI5MjhcIixuZnI6XCJcXHV7MUQ1MkJ9XCIsbmhhcnI6XCJcXHUyMUFFXCIsbmxlZnRyaWdodGFycm93OlwiXFx1MjFBRVwiLG5ocGFyOlwiXFx1MkFGMlwiLG5pczpcIlxcdTIyRkNcIixuaXNkOlwiXFx1MjJGQVwiLG5qY3k6XCJcXHUwNDVBXCIsbmxFOlwiXFx1MjI2NlxcdTAzMzhcIixubGVxcTpcIlxcdTIyNjZcXHUwMzM4XCIsbmxhcnI6XCJcXHUyMTlBXCIsbmxlZnRhcnJvdzpcIlxcdTIxOUFcIixubGRyOlwiXFx1MjAyNVwiLG5vcGY6XCJcXHV7MUQ1NUZ9XCIsbm90OlwiXFx4QUNcIixub3RpbkU6XCJcXHUyMkY5XFx1MDMzOFwiLG5vdGluZG90OlwiXFx1MjJGNVxcdTAzMzhcIixub3RpbnZiOlwiXFx1MjJGN1wiLG5vdGludmM6XCJcXHUyMkY2XCIsbm90bml2YjpcIlxcdTIyRkVcIixub3RuaXZjOlwiXFx1MjJGRFwiLG5wYXJzbDpcIlxcdTJBRkRcXHUyMEU1XCIsbnBhcnQ6XCJcXHUyMjAyXFx1MDMzOFwiLG5wb2xpbnQ6XCJcXHUyQTE0XCIsbnJhcnI6XCJcXHUyMTlCXCIsbnJpZ2h0YXJyb3c6XCJcXHUyMTlCXCIsbnJhcnJjOlwiXFx1MjkzM1xcdTAzMzhcIixucmFycnc6XCJcXHUyMTlEXFx1MDMzOFwiLG5zY3I6XCJcXHV7MUQ0QzN9XCIsbnN1YjpcIlxcdTIyODRcIixuc3ViRTpcIlxcdTJBQzVcXHUwMzM4XCIsbnN1YnNldGVxcTpcIlxcdTJBQzVcXHUwMzM4XCIsbnN1cDpcIlxcdTIyODVcIixuc3VwRTpcIlxcdTJBQzZcXHUwMzM4XCIsbnN1cHNldGVxcTpcIlxcdTJBQzZcXHUwMzM4XCIsbnRpbGRlOlwiXFx4RjFcIixudTpcIlxcdTAzQkRcIixudW06XCIjXCIsbnVtZXJvOlwiXFx1MjExNlwiLG51bXNwOlwiXFx1MjAwN1wiLG52RGFzaDpcIlxcdTIyQURcIixudkhhcnI6XCJcXHUyOTA0XCIsbnZhcDpcIlxcdTIyNERcXHUyMEQyXCIsbnZkYXNoOlwiXFx1MjJBQ1wiLG52Z2U6XCJcXHUyMjY1XFx1MjBEMlwiLG52Z3Q6XCI+XFx1MjBEMlwiLG52aW5maW46XCJcXHUyOURFXCIsbnZsQXJyOlwiXFx1MjkwMlwiLG52bGU6XCJcXHUyMjY0XFx1MjBEMlwiLG52bHQ6XCI8XFx1MjBEMlwiLG52bHRyaWU6XCJcXHUyMkI0XFx1MjBEMlwiLG52ckFycjpcIlxcdTI5MDNcIixudnJ0cmllOlwiXFx1MjJCNVxcdTIwRDJcIixudnNpbTpcIlxcdTIyM0NcXHUyMEQyXCIsbndBcnI6XCJcXHUyMUQ2XCIsbndhcmhrOlwiXFx1MjkyM1wiLG53bmVhcjpcIlxcdTI5MjdcIixvYWN1dGU6XCJcXHhGM1wiLG9jaXJjOlwiXFx4RjRcIixvY3k6XCJcXHUwNDNFXCIsb2RibGFjOlwiXFx1MDE1MVwiLG9kaXY6XCJcXHUyQTM4XCIsb2Rzb2xkOlwiXFx1MjlCQ1wiLG9lbGlnOlwiXFx1MDE1M1wiLG9mY2lyOlwiXFx1MjlCRlwiLG9mcjpcIlxcdXsxRDUyQ31cIixvZ29uOlwiXFx1MDJEQlwiLG9ncmF2ZTpcIlxceEYyXCIsb2d0OlwiXFx1MjlDMVwiLG9oYmFyOlwiXFx1MjlCNVwiLG9sY2lyOlwiXFx1MjlCRVwiLG9sY3Jvc3M6XCJcXHUyOUJCXCIsb2x0OlwiXFx1MjlDMFwiLG9tYWNyOlwiXFx1MDE0RFwiLG9tZWdhOlwiXFx1MDNDOVwiLG9taWNyb246XCJcXHUwM0JGXCIsb21pZDpcIlxcdTI5QjZcIixvb3BmOlwiXFx1ezFENTYwfVwiLG9wYXI6XCJcXHUyOUI3XCIsb3BlcnA6XCJcXHUyOUI5XCIsb3I6XCJcXHUyMjI4XCIsdmVlOlwiXFx1MjIyOFwiLG9yZDpcIlxcdTJBNURcIixvcmRlcjpcIlxcdTIxMzRcIixvcmRlcm9mOlwiXFx1MjEzNFwiLG9zY3I6XCJcXHUyMTM0XCIsb3JkZjpcIlxceEFBXCIsb3JkbTpcIlxceEJBXCIsb3JpZ29mOlwiXFx1MjJCNlwiLG9yb3I6XCJcXHUyQTU2XCIsb3JzbG9wZTpcIlxcdTJBNTdcIixvcnY6XCJcXHUyQTVCXCIsb3NsYXNoOlwiXFx4RjhcIixvc29sOlwiXFx1MjI5OFwiLG90aWxkZTpcIlxceEY1XCIsb3RpbWVzYXM6XCJcXHUyQTM2XCIsb3VtbDpcIlxceEY2XCIsb3ZiYXI6XCJcXHUyMzNEXCIscGFyYTpcIlxceEI2XCIscGFyc2ltOlwiXFx1MkFGM1wiLHBhcnNsOlwiXFx1MkFGRFwiLHBjeTpcIlxcdTA0M0ZcIixwZXJjbnQ6XCIlXCIscGVyaW9kOlwiLlwiLHBlcm1pbDpcIlxcdTIwMzBcIixwZXJ0ZW5rOlwiXFx1MjAzMVwiLHBmcjpcIlxcdXsxRDUyRH1cIixwaGk6XCJcXHUwM0M2XCIscGhpdjpcIlxcdTAzRDVcIixzdHJhaWdodHBoaTpcIlxcdTAzRDVcIix2YXJwaGk6XCJcXHUwM0Q1XCIscGhvbmU6XCJcXHUyNjBFXCIscGk6XCJcXHUwM0MwXCIscGl2OlwiXFx1MDNENlwiLHZhcnBpOlwiXFx1MDNENlwiLHBsYW5ja2g6XCJcXHUyMTBFXCIscGx1czpcIitcIixwbHVzYWNpcjpcIlxcdTJBMjNcIixwbHVzY2lyOlwiXFx1MkEyMlwiLHBsdXNkdTpcIlxcdTJBMjVcIixwbHVzZTpcIlxcdTJBNzJcIixwbHVzc2ltOlwiXFx1MkEyNlwiLHBsdXN0d286XCJcXHUyQTI3XCIscG9pbnRpbnQ6XCJcXHUyQTE1XCIscG9wZjpcIlxcdXsxRDU2MX1cIixwb3VuZDpcIlxceEEzXCIscHJFOlwiXFx1MkFCM1wiLHByYXA6XCJcXHUyQUI3XCIscHJlY2FwcHJveDpcIlxcdTJBQjdcIixwcmVjbmFwcHJveDpcIlxcdTJBQjlcIixwcm5hcDpcIlxcdTJBQjlcIixwcmVjbmVxcTpcIlxcdTJBQjVcIixwcm5FOlwiXFx1MkFCNVwiLHByZWNuc2ltOlwiXFx1MjJFOFwiLHBybnNpbTpcIlxcdTIyRThcIixwcmltZTpcIlxcdTIwMzJcIixwcm9mYWxhcjpcIlxcdTIzMkVcIixwcm9mbGluZTpcIlxcdTIzMTJcIixwcm9mc3VyZjpcIlxcdTIzMTNcIixwcnVyZWw6XCJcXHUyMkIwXCIscHNjcjpcIlxcdXsxRDRDNX1cIixwc2k6XCJcXHUwM0M4XCIscHVuY3NwOlwiXFx1MjAwOFwiLHFmcjpcIlxcdXsxRDUyRX1cIixxb3BmOlwiXFx1ezFENTYyfVwiLHFwcmltZTpcIlxcdTIwNTdcIixxc2NyOlwiXFx1ezFENEM2fVwiLHF1YXRpbnQ6XCJcXHUyQTE2XCIscXVlc3Q6XCI/XCIsckF0YWlsOlwiXFx1MjkxQ1wiLHJIYXI6XCJcXHUyOTY0XCIscmFjZTpcIlxcdTIyM0RcXHUwMzMxXCIscmFjdXRlOlwiXFx1MDE1NVwiLHJhZW1wdHl2OlwiXFx1MjlCM1wiLHJhbmdkOlwiXFx1Mjk5MlwiLHJhbmdlOlwiXFx1MjlBNVwiLHJhcXVvOlwiXFx4QkJcIixyYXJyYXA6XCJcXHUyOTc1XCIscmFycmJmczpcIlxcdTI5MjBcIixyYXJyYzpcIlxcdTI5MzNcIixyYXJyZnM6XCJcXHUyOTFFXCIscmFycnBsOlwiXFx1Mjk0NVwiLHJhcnJzaW06XCJcXHUyOTc0XCIscmFycnRsOlwiXFx1MjFBM1wiLHJpZ2h0YXJyb3d0YWlsOlwiXFx1MjFBM1wiLHJhcnJ3OlwiXFx1MjE5RFwiLHJpZ2h0c3F1aWdhcnJvdzpcIlxcdTIxOURcIixyYXRhaWw6XCJcXHUyOTFBXCIscmF0aW86XCJcXHUyMjM2XCIscmJicms6XCJcXHUyNzczXCIscmJyYWNlOlwifVwiLHJjdWI6XCJ9XCIscmJyYWNrOlwiXVwiLHJzcWI6XCJdXCIscmJya2U6XCJcXHUyOThDXCIscmJya3NsZDpcIlxcdTI5OEVcIixyYnJrc2x1OlwiXFx1Mjk5MFwiLHJjYXJvbjpcIlxcdTAxNTlcIixyY2VkaWw6XCJcXHUwMTU3XCIscmN5OlwiXFx1MDQ0MFwiLHJkY2E6XCJcXHUyOTM3XCIscmRsZGhhcjpcIlxcdTI5NjlcIixyZHNoOlwiXFx1MjFCM1wiLHJlY3Q6XCJcXHUyNUFEXCIscmZpc2h0OlwiXFx1Mjk3RFwiLHJmcjpcIlxcdXsxRDUyRn1cIixyaGFydWw6XCJcXHUyOTZDXCIscmhvOlwiXFx1MDNDMVwiLHJob3Y6XCJcXHUwM0YxXCIsdmFycmhvOlwiXFx1MDNGMVwiLHJpZ2h0cmlnaHRhcnJvd3M6XCJcXHUyMUM5XCIscnJhcnI6XCJcXHUyMUM5XCIscmlnaHR0aHJlZXRpbWVzOlwiXFx1MjJDQ1wiLHJ0aHJlZTpcIlxcdTIyQ0NcIixyaW5nOlwiXFx1MDJEQVwiLHJsbTpcIlxcdTIwMEZcIixybW91c3Q6XCJcXHUyM0IxXCIscm1vdXN0YWNoZTpcIlxcdTIzQjFcIixybm1pZDpcIlxcdTJBRUVcIixyb2FuZzpcIlxcdTI3RURcIixyb2FycjpcIlxcdTIxRkVcIixyb3BhcjpcIlxcdTI5ODZcIixyb3BmOlwiXFx1ezFENTYzfVwiLHJvcGx1czpcIlxcdTJBMkVcIixyb3RpbWVzOlwiXFx1MkEzNVwiLHJwYXI6XCIpXCIscnBhcmd0OlwiXFx1Mjk5NFwiLHJwcG9saW50OlwiXFx1MkExMlwiLHJzYXF1bzpcIlxcdTIwM0FcIixyc2NyOlwiXFx1ezFENEM3fVwiLHJ0aW1lczpcIlxcdTIyQ0FcIixydHJpOlwiXFx1MjVCOVwiLHRyaWFuZ2xlcmlnaHQ6XCJcXHUyNUI5XCIscnRyaWx0cmk6XCJcXHUyOUNFXCIscnVsdWhhcjpcIlxcdTI5NjhcIixyeDpcIlxcdTIxMUVcIixzYWN1dGU6XCJcXHUwMTVCXCIsc2NFOlwiXFx1MkFCNFwiLHNjYXA6XCJcXHUyQUI4XCIsc3VjY2FwcHJveDpcIlxcdTJBQjhcIixzY2Fyb246XCJcXHUwMTYxXCIsc2NlZGlsOlwiXFx1MDE1RlwiLHNjaXJjOlwiXFx1MDE1RFwiLHNjbkU6XCJcXHUyQUI2XCIsc3VjY25lcXE6XCJcXHUyQUI2XCIsc2NuYXA6XCJcXHUyQUJBXCIsc3VjY25hcHByb3g6XCJcXHUyQUJBXCIsc2Nuc2ltOlwiXFx1MjJFOVwiLHN1Y2Nuc2ltOlwiXFx1MjJFOVwiLHNjcG9saW50OlwiXFx1MkExM1wiLHNjeTpcIlxcdTA0NDFcIixzZG90OlwiXFx1MjJDNVwiLHNkb3RlOlwiXFx1MkE2NlwiLHNlQXJyOlwiXFx1MjFEOFwiLHNlY3Q6XCJcXHhBN1wiLHNlbWk6XCI7XCIsc2Vzd2FyOlwiXFx1MjkyOVwiLHRvc2E6XCJcXHUyOTI5XCIsc2V4dDpcIlxcdTI3MzZcIixzZnI6XCJcXHV7MUQ1MzB9XCIsc2hhcnA6XCJcXHUyNjZGXCIsc2hjaGN5OlwiXFx1MDQ0OVwiLHNoY3k6XCJcXHUwNDQ4XCIsc2h5OlwiXFx4QURcIixzaWdtYTpcIlxcdTAzQzNcIixzaWdtYWY6XCJcXHUwM0MyXCIsc2lnbWF2OlwiXFx1MDNDMlwiLHZhcnNpZ21hOlwiXFx1MDNDMlwiLHNpbWRvdDpcIlxcdTJBNkFcIixzaW1nOlwiXFx1MkE5RVwiLHNpbWdFOlwiXFx1MkFBMFwiLHNpbWw6XCJcXHUyQTlEXCIsc2ltbEU6XCJcXHUyQTlGXCIsc2ltbmU6XCJcXHUyMjQ2XCIsc2ltcGx1czpcIlxcdTJBMjRcIixzaW1yYXJyOlwiXFx1Mjk3MlwiLHNtYXNocDpcIlxcdTJBMzNcIixzbWVwYXJzbDpcIlxcdTI5RTRcIixzbWlsZTpcIlxcdTIzMjNcIixzc21pbGU6XCJcXHUyMzIzXCIsc210OlwiXFx1MkFBQVwiLHNtdGU6XCJcXHUyQUFDXCIsc210ZXM6XCJcXHUyQUFDXFx1RkUwMFwiLHNvZnRjeTpcIlxcdTA0NENcIixzb2w6XCIvXCIsc29sYjpcIlxcdTI5QzRcIixzb2xiYXI6XCJcXHUyMzNGXCIsc29wZjpcIlxcdXsxRDU2NH1cIixzcGFkZXM6XCJcXHUyNjYwXCIsc3BhZGVzdWl0OlwiXFx1MjY2MFwiLHNxY2FwczpcIlxcdTIyOTNcXHVGRTAwXCIsc3FjdXBzOlwiXFx1MjI5NFxcdUZFMDBcIixzc2NyOlwiXFx1ezFENEM4fVwiLHN0YXI6XCJcXHUyNjA2XCIsc3ViOlwiXFx1MjI4MlwiLHN1YnNldDpcIlxcdTIyODJcIixzdWJFOlwiXFx1MkFDNVwiLHN1YnNldGVxcTpcIlxcdTJBQzVcIixzdWJkb3Q6XCJcXHUyQUJEXCIsc3ViZWRvdDpcIlxcdTJBQzNcIixzdWJtdWx0OlwiXFx1MkFDMVwiLHN1Ym5FOlwiXFx1MkFDQlwiLHN1YnNldG5lcXE6XCJcXHUyQUNCXCIsc3VibmU6XCJcXHUyMjhBXCIsc3Vic2V0bmVxOlwiXFx1MjI4QVwiLHN1YnBsdXM6XCJcXHUyQUJGXCIsc3VicmFycjpcIlxcdTI5NzlcIixzdWJzaW06XCJcXHUyQUM3XCIsc3Vic3ViOlwiXFx1MkFENVwiLHN1YnN1cDpcIlxcdTJBRDNcIixzdW5nOlwiXFx1MjY2QVwiLHN1cDE6XCJcXHhCOVwiLHN1cDI6XCJcXHhCMlwiLHN1cDM6XCJcXHhCM1wiLHN1cEU6XCJcXHUyQUM2XCIsc3Vwc2V0ZXFxOlwiXFx1MkFDNlwiLHN1cGRvdDpcIlxcdTJBQkVcIixzdXBkc3ViOlwiXFx1MkFEOFwiLHN1cGVkb3Q6XCJcXHUyQUM0XCIsc3VwaHNvbDpcIlxcdTI3QzlcIixzdXBoc3ViOlwiXFx1MkFEN1wiLHN1cGxhcnI6XCJcXHUyOTdCXCIsc3VwbXVsdDpcIlxcdTJBQzJcIixzdXBuRTpcIlxcdTJBQ0NcIixzdXBzZXRuZXFxOlwiXFx1MkFDQ1wiLHN1cG5lOlwiXFx1MjI4QlwiLHN1cHNldG5lcTpcIlxcdTIyOEJcIixzdXBwbHVzOlwiXFx1MkFDMFwiLHN1cHNpbTpcIlxcdTJBQzhcIixzdXBzdWI6XCJcXHUyQUQ0XCIsc3Vwc3VwOlwiXFx1MkFENlwiLHN3QXJyOlwiXFx1MjFEOVwiLHN3bndhcjpcIlxcdTI5MkFcIixzemxpZzpcIlxceERGXCIsdGFyZ2V0OlwiXFx1MjMxNlwiLHRhdTpcIlxcdTAzQzRcIix0Y2Fyb246XCJcXHUwMTY1XCIsdGNlZGlsOlwiXFx1MDE2M1wiLHRjeTpcIlxcdTA0NDJcIix0ZWxyZWM6XCJcXHUyMzE1XCIsdGZyOlwiXFx1ezFENTMxfVwiLHRoZXRhOlwiXFx1MDNCOFwiLHRoZXRhc3ltOlwiXFx1MDNEMVwiLHRoZXRhdjpcIlxcdTAzRDFcIix2YXJ0aGV0YTpcIlxcdTAzRDFcIix0aG9ybjpcIlxceEZFXCIsdGltZXM6XCJcXHhEN1wiLHRpbWVzYmFyOlwiXFx1MkEzMVwiLHRpbWVzZDpcIlxcdTJBMzBcIix0b3Bib3Q6XCJcXHUyMzM2XCIsdG9wY2lyOlwiXFx1MkFGMVwiLHRvcGY6XCJcXHV7MUQ1NjV9XCIsdG9wZm9yazpcIlxcdTJBREFcIix0cHJpbWU6XCJcXHUyMDM0XCIsdHJpYW5nbGU6XCJcXHUyNUI1XCIsdXRyaTpcIlxcdTI1QjVcIix0cmlhbmdsZXE6XCJcXHUyMjVDXCIsdHJpZTpcIlxcdTIyNUNcIix0cmlkb3Q6XCJcXHUyNUVDXCIsdHJpbWludXM6XCJcXHUyQTNBXCIsdHJpcGx1czpcIlxcdTJBMzlcIix0cmlzYjpcIlxcdTI5Q0RcIix0cml0aW1lOlwiXFx1MkEzQlwiLHRycGV6aXVtOlwiXFx1MjNFMlwiLHRzY3I6XCJcXHV7MUQ0Qzl9XCIsdHNjeTpcIlxcdTA0NDZcIix0c2hjeTpcIlxcdTA0NUJcIix0c3Ryb2s6XCJcXHUwMTY3XCIsdUhhcjpcIlxcdTI5NjNcIix1YWN1dGU6XCJcXHhGQVwiLHVicmN5OlwiXFx1MDQ1RVwiLHVicmV2ZTpcIlxcdTAxNkRcIix1Y2lyYzpcIlxceEZCXCIsdWN5OlwiXFx1MDQ0M1wiLHVkYmxhYzpcIlxcdTAxNzFcIix1ZmlzaHQ6XCJcXHUyOTdFXCIsdWZyOlwiXFx1ezFENTMyfVwiLHVncmF2ZTpcIlxceEY5XCIsdWhibGs6XCJcXHUyNTgwXCIsdWxjb3JuOlwiXFx1MjMxQ1wiLHVsY29ybmVyOlwiXFx1MjMxQ1wiLHVsY3JvcDpcIlxcdTIzMEZcIix1bHRyaTpcIlxcdTI1RjhcIix1bWFjcjpcIlxcdTAxNkJcIix1b2dvbjpcIlxcdTAxNzNcIix1b3BmOlwiXFx1ezFENTY2fVwiLHVwc2k6XCJcXHUwM0M1XCIsdXBzaWxvbjpcIlxcdTAzQzVcIix1cHVwYXJyb3dzOlwiXFx1MjFDOFwiLHV1YXJyOlwiXFx1MjFDOFwiLHVyY29ybjpcIlxcdTIzMURcIix1cmNvcm5lcjpcIlxcdTIzMURcIix1cmNyb3A6XCJcXHUyMzBFXCIsdXJpbmc6XCJcXHUwMTZGXCIsdXJ0cmk6XCJcXHUyNUY5XCIsdXNjcjpcIlxcdXsxRDRDQX1cIix1dGRvdDpcIlxcdTIyRjBcIix1dGlsZGU6XCJcXHUwMTY5XCIsdXVtbDpcIlxceEZDXCIsdXdhbmdsZTpcIlxcdTI5QTdcIix2QmFyOlwiXFx1MkFFOFwiLHZCYXJ2OlwiXFx1MkFFOVwiLHZhbmdydDpcIlxcdTI5OUNcIix2YXJzdWJzZXRuZXE6XCJcXHUyMjhBXFx1RkUwMFwiLHZzdWJuZTpcIlxcdTIyOEFcXHVGRTAwXCIsdmFyc3Vic2V0bmVxcTpcIlxcdTJBQ0JcXHVGRTAwXCIsdnN1Ym5FOlwiXFx1MkFDQlxcdUZFMDBcIix2YXJzdXBzZXRuZXE6XCJcXHUyMjhCXFx1RkUwMFwiLHZzdXBuZTpcIlxcdTIyOEJcXHVGRTAwXCIsdmFyc3Vwc2V0bmVxcTpcIlxcdTJBQ0NcXHVGRTAwXCIsdnN1cG5FOlwiXFx1MkFDQ1xcdUZFMDBcIix2Y3k6XCJcXHUwNDMyXCIsdmVlYmFyOlwiXFx1MjJCQlwiLHZlZWVxOlwiXFx1MjI1QVwiLHZlbGxpcDpcIlxcdTIyRUVcIix2ZnI6XCJcXHV7MUQ1MzN9XCIsdm9wZjpcIlxcdXsxRDU2N31cIix2c2NyOlwiXFx1ezFENENCfVwiLHZ6aWd6YWc6XCJcXHUyOTlBXCIsd2NpcmM6XCJcXHUwMTc1XCIsd2VkYmFyOlwiXFx1MkE1RlwiLHdlZGdlcTpcIlxcdTIyNTlcIix3ZWllcnA6XCJcXHUyMTE4XCIsd3A6XCJcXHUyMTE4XCIsd2ZyOlwiXFx1ezFENTM0fVwiLHdvcGY6XCJcXHV7MUQ1Njh9XCIsd3NjcjpcIlxcdXsxRDRDQ31cIix4ZnI6XCJcXHV7MUQ1MzV9XCIseGk6XCJcXHUwM0JFXCIseG5pczpcIlxcdTIyRkJcIix4b3BmOlwiXFx1ezFENTY5fVwiLHhzY3I6XCJcXHV7MUQ0Q0R9XCIseWFjdXRlOlwiXFx4RkRcIix5YWN5OlwiXFx1MDQ0RlwiLHljaXJjOlwiXFx1MDE3N1wiLHljeTpcIlxcdTA0NEJcIix5ZW46XCJcXHhBNVwiLHlmcjpcIlxcdXsxRDUzNn1cIix5aWN5OlwiXFx1MDQ1N1wiLHlvcGY6XCJcXHV7MUQ1NkF9XCIseXNjcjpcIlxcdXsxRDRDRX1cIix5dWN5OlwiXFx1MDQ0RVwiLHl1bWw6XCJcXHhGRlwiLHphY3V0ZTpcIlxcdTAxN0FcIix6Y2Fyb246XCJcXHUwMTdFXCIsemN5OlwiXFx1MDQzN1wiLHpkb3Q6XCJcXHUwMTdDXCIsemV0YTpcIlxcdTAzQjZcIix6ZnI6XCJcXHV7MUQ1Mzd9XCIsemhjeTpcIlxcdTA0MzZcIix6aWdyYXJyOlwiXFx1MjFERFwiLHpvcGY6XCJcXHV7MUQ1NkJ9XCIsenNjcjpcIlxcdXsxRDRDRn1cIix6d2o6XCJcXHUyMDBEXCIsenduajpcIlxcdTIwMENcIn0sQWE9XCJcXHVFNTAwXCI7TWUubmdzcD1BYTt2YXIgX2E9Wy9eXFxzKiQvLC9bPD5dLywvXlt7fV0kLywvJigjfFthLXpdKS9pLC9eXFwvXFwvL107ZnVuY3Rpb24gbHModCxlKXtpZihlIT1udWxsJiYhKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPT0yKSl0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICcke3R9JyB0byBiZSBhbiBhcnJheSwgW3N0YXJ0LCBlbmRdLmApO2lmKGUhPW51bGwpe2xldCByPWVbMF0sbj1lWzFdO19hLmZvckVhY2gocz0+e2lmKHMudGVzdChyKXx8cy50ZXN0KG4pKXRocm93IG5ldyBFcnJvcihgWycke3J9JywgJyR7bn0nXSBjb250YWlucyB1bnVzYWJsZSBpbnRlcnBvbGF0aW9uIHN5bWJvbC5gKX0pfX12YXIgX3I9Y2xhc3MgdHtzdGF0aWMgZnJvbUFycmF5KGUpe3JldHVybiBlPyhscyhcImludGVycG9sYXRpb25cIixlKSxuZXcgdChlWzBdLGVbMV0pKTpEcn1jb25zdHJ1Y3RvcihlLHIpe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD1yfX0sRHI9bmV3IF9yKFwie3tcIixcIn19XCIpO3ZhciBpdD1jbGFzcyBleHRlbmRzIFBle2NvbnN0cnVjdG9yKGUscixuKXtzdXBlcihuLGUpLHRoaXMudG9rZW5UeXBlPXJ9fSxicj1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbil7dGhpcy50b2tlbnM9ZSx0aGlzLmVycm9ycz1yLHRoaXMubm9uTm9ybWFsaXplZEljdUV4cHJlc3Npb25zPW59fTtmdW5jdGlvbiBBcyh0LGUscixuPXt9KXtsZXQgcz1uZXcgd3IobmV3IG1lKHQsZSkscixuKTtyZXR1cm4gcy50b2tlbml6ZSgpLG5ldyBicihZYShzLnRva2Vucykscy5lcnJvcnMscy5ub25Ob3JtYWxpemVkSWN1RXhwcmVzc2lvbnMpfXZhciBPYT0vXFxyXFxuPy9nO2Z1bmN0aW9uIE9lKHQpe3JldHVybmBVbmV4cGVjdGVkIGNoYXJhY3RlciBcIiR7dD09PTA/XCJFT0ZcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKHQpfVwiYH1mdW5jdGlvbiBmcyh0KXtyZXR1cm5gVW5rbm93biBlbnRpdHkgXCIke3R9XCIgLSB1c2UgdGhlIFwiJiM8ZGVjaW1hbD47XCIgb3IgIFwiJiN4PGhleD47XCIgc3ludGF4YH1mdW5jdGlvbiBxYSh0LGUpe3JldHVybmBVbmFibGUgdG8gcGFyc2UgZW50aXR5IFwiJHtlfVwiIC0gJHt0fSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGVudGl0aWVzIG11c3QgZW5kIHdpdGggXCI7XCJgfXZhciBVdDsoZnVuY3Rpb24odCl7dC5IRVg9XCJoZXhhZGVjaW1hbFwiLHQuREVDPVwiZGVjaW1hbFwifSkoVXR8fChVdD17fSkpO3ZhciBhdD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmVycm9yPWV9fSx3cj1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbil7dGhpcy5fZ2V0VGFnQ29udGVudFR5cGU9cix0aGlzLl9jdXJyZW50VG9rZW5TdGFydD1udWxsLHRoaXMuX2N1cnJlbnRUb2tlblR5cGU9bnVsbCx0aGlzLl9leHBhbnNpb25DYXNlU3RhY2s9W10sdGhpcy5faW5JbnRlcnBvbGF0aW9uPSExLHRoaXMuX2Z1bGxOYW1lU3RhY2s9W10sdGhpcy50b2tlbnM9W10sdGhpcy5lcnJvcnM9W10sdGhpcy5ub25Ob3JtYWxpemVkSWN1RXhwcmVzc2lvbnM9W10sdGhpcy5fdG9rZW5pemVJY3U9bi50b2tlbml6ZUV4cGFuc2lvbkZvcm1zfHwhMSx0aGlzLl9pbnRlcnBvbGF0aW9uQ29uZmlnPW4uaW50ZXJwb2xhdGlvbkNvbmZpZ3x8RHIsdGhpcy5fbGVhZGluZ1RyaXZpYUNvZGVQb2ludHM9bi5sZWFkaW5nVHJpdmlhQ2hhcnMmJm4ubGVhZGluZ1RyaXZpYUNoYXJzLm1hcChpPT5pLmNvZGVQb2ludEF0KDApfHwwKSx0aGlzLl9jYW5TZWxmQ2xvc2U9bi5jYW5TZWxmQ2xvc2V8fCExLHRoaXMuX2FsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M9bi5hbGxvd0h0bUNvbXBvbmVudENsb3NpbmdUYWdzfHwhMTtsZXQgcz1uLnJhbmdlfHx7ZW5kUG9zOmUuY29udGVudC5sZW5ndGgsc3RhcnRQb3M6MCxzdGFydExpbmU6MCxzdGFydENvbDowfTt0aGlzLl9jdXJzb3I9bi5lc2NhcGVkU3RyaW5nP25ldyBUcihlLHMpOm5ldyBXdChlLHMpLHRoaXMuX3ByZXNlcnZlTGluZUVuZGluZ3M9bi5wcmVzZXJ2ZUxpbmVFbmRpbmdzfHwhMSx0aGlzLl9lc2NhcGVkU3RyaW5nPW4uZXNjYXBlZFN0cmluZ3x8ITEsdGhpcy5faTE4bk5vcm1hbGl6ZUxpbmVFbmRpbmdzSW5JQ1VzPW4uaTE4bk5vcm1hbGl6ZUxpbmVFbmRpbmdzSW5JQ1VzfHwhMTt0cnl7dGhpcy5fY3Vyc29yLmluaXQoKX1jYXRjaChpKXt0aGlzLmhhbmRsZUVycm9yKGkpfX1fcHJvY2Vzc0NhcnJpYWdlUmV0dXJucyhlKXtyZXR1cm4gdGhpcy5fcHJlc2VydmVMaW5lRW5kaW5ncz9lOmUucmVwbGFjZShPYSxgXG5gKX10b2tlbml6ZSgpe2Zvcig7dGhpcy5fY3Vyc29yLnBlZWsoKSE9PTA7KXtsZXQgZT10aGlzLl9jdXJzb3IuY2xvbmUoKTt0cnl7aWYodGhpcy5fYXR0ZW1wdENoYXJDb2RlKDYwKSlpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGUoMzMpKXRoaXMuX2F0dGVtcHRTdHIoXCJbQ0RBVEFbXCIpP3RoaXMuX2NvbnN1bWVDZGF0YShlKTp0aGlzLl9hdHRlbXB0U3RyKFwiLS1cIik/dGhpcy5fY29uc3VtZUNvbW1lbnQoZSk6dGhpcy5fYXR0ZW1wdFN0ckNhc2VJbnNlbnNpdGl2ZShcImRvY3R5cGVcIik/dGhpcy5fY29uc3VtZURvY1R5cGUoZSk6dGhpcy5fY29uc3VtZUJvZ3VzQ29tbWVudChlKTtlbHNlIGlmKHRoaXMuX2F0dGVtcHRDaGFyQ29kZSg0NykpdGhpcy5fY29uc3VtZVRhZ0Nsb3NlKGUpO2Vsc2V7bGV0IHI9dGhpcy5fY3Vyc29yLmNsb25lKCk7dGhpcy5fYXR0ZW1wdENoYXJDb2RlKDYzKT8odGhpcy5fY3Vyc29yPXIsdGhpcy5fY29uc3VtZUJvZ3VzQ29tbWVudChlKSk6dGhpcy5fY29uc3VtZVRhZ09wZW4oZSl9ZWxzZSB0aGlzLl90b2tlbml6ZUljdSYmdGhpcy5fdG9rZW5pemVFeHBhbnNpb25Gb3JtKCl8fHRoaXMuX2NvbnN1bWVXaXRoSW50ZXJwb2xhdGlvbig1LDgsKCk9PnRoaXMuX2lzVGV4dEVuZCgpLCgpPT50aGlzLl9pc1RhZ1N0YXJ0KCkpfWNhdGNoKHIpe3RoaXMuaGFuZGxlRXJyb3Iocil9fXRoaXMuX2JlZ2luVG9rZW4oMjUpLHRoaXMuX2VuZFRva2VuKFtdKX1fdG9rZW5pemVFeHBhbnNpb25Gb3JtKCl7aWYodGhpcy5pc0V4cGFuc2lvbkZvcm1TdGFydCgpKXJldHVybiB0aGlzLl9jb25zdW1lRXhwYW5zaW9uRm9ybVN0YXJ0KCksITA7aWYoV2EodGhpcy5fY3Vyc29yLnBlZWsoKSkmJnRoaXMuX2lzSW5FeHBhbnNpb25Gb3JtKCkpcmV0dXJuIHRoaXMuX2NvbnN1bWVFeHBhbnNpb25DYXNlU3RhcnQoKSwhMDtpZih0aGlzLl9jdXJzb3IucGVlaygpPT09MTI1KXtpZih0aGlzLl9pc0luRXhwYW5zaW9uQ2FzZSgpKXJldHVybiB0aGlzLl9jb25zdW1lRXhwYW5zaW9uQ2FzZUVuZCgpLCEwO2lmKHRoaXMuX2lzSW5FeHBhbnNpb25Gb3JtKCkpcmV0dXJuIHRoaXMuX2NvbnN1bWVFeHBhbnNpb25Gb3JtRW5kKCksITB9cmV0dXJuITF9X2JlZ2luVG9rZW4oZSxyPXRoaXMuX2N1cnNvci5jbG9uZSgpKXt0aGlzLl9jdXJyZW50VG9rZW5TdGFydD1yLHRoaXMuX2N1cnJlbnRUb2tlblR5cGU9ZX1fZW5kVG9rZW4oZSxyKXtpZih0aGlzLl9jdXJyZW50VG9rZW5TdGFydD09PW51bGwpdGhyb3cgbmV3IGl0KFwiUHJvZ3JhbW1pbmcgZXJyb3IgLSBhdHRlbXB0ZWQgdG8gZW5kIGEgdG9rZW4gd2hlbiB0aGVyZSB3YXMgbm8gc3RhcnQgdG8gdGhlIHRva2VuXCIsdGhpcy5fY3VycmVudFRva2VuVHlwZSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihyKSk7aWYodGhpcy5fY3VycmVudFRva2VuVHlwZT09PW51bGwpdGhyb3cgbmV3IGl0KFwiUHJvZ3JhbW1pbmcgZXJyb3IgLSBhdHRlbXB0ZWQgdG8gZW5kIGEgdG9rZW4gd2hpY2ggaGFzIG5vIHRva2VuIHR5cGVcIixudWxsLHRoaXMuX2N1cnNvci5nZXRTcGFuKHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0KSk7bGV0IG49e3R5cGU6dGhpcy5fY3VycmVudFRva2VuVHlwZSxwYXJ0czplLHNvdXJjZVNwYW46KHI/P3RoaXMuX2N1cnNvcikuZ2V0U3Bhbih0aGlzLl9jdXJyZW50VG9rZW5TdGFydCx0aGlzLl9sZWFkaW5nVHJpdmlhQ29kZVBvaW50cyl9O3JldHVybiB0aGlzLnRva2Vucy5wdXNoKG4pLHRoaXMuX2N1cnJlbnRUb2tlblN0YXJ0PW51bGwsdGhpcy5fY3VycmVudFRva2VuVHlwZT1udWxsLG59X2NyZWF0ZUVycm9yKGUscil7dGhpcy5faXNJbkV4cGFuc2lvbkZvcm0oKSYmKGUrPWAgKERvIHlvdSBoYXZlIGFuIHVuZXNjYXBlZCBcIntcIiBpbiB5b3VyIHRlbXBsYXRlPyBVc2UgXCJ7eyAneycgfX1cIikgdG8gZXNjYXBlIGl0LilgKTtsZXQgbj1uZXcgaXQoZSx0aGlzLl9jdXJyZW50VG9rZW5UeXBlLHIpO3JldHVybiB0aGlzLl9jdXJyZW50VG9rZW5TdGFydD1udWxsLHRoaXMuX2N1cnJlbnRUb2tlblR5cGU9bnVsbCxuZXcgYXQobil9aGFuZGxlRXJyb3IoZSl7aWYoZSBpbnN0YW5jZW9mIHV0JiYoZT10aGlzLl9jcmVhdGVFcnJvcihlLm1zZyx0aGlzLl9jdXJzb3IuZ2V0U3BhbihlLmN1cnNvcikpKSxlIGluc3RhbmNlb2YgYXQpdGhpcy5lcnJvcnMucHVzaChlLmVycm9yKTtlbHNlIHRocm93IGV9X2F0dGVtcHRDaGFyQ29kZShlKXtyZXR1cm4gdGhpcy5fY3Vyc29yLnBlZWsoKT09PWU/KHRoaXMuX2N1cnNvci5hZHZhbmNlKCksITApOiExfV9hdHRlbXB0Q2hhckNvZGVDYXNlSW5zZW5zaXRpdmUoZSl7cmV0dXJuIEdhKHRoaXMuX2N1cnNvci5wZWVrKCksZSk/KHRoaXMuX2N1cnNvci5hZHZhbmNlKCksITApOiExfV9yZXF1aXJlQ2hhckNvZGUoZSl7bGV0IHI9dGhpcy5fY3Vyc29yLmNsb25lKCk7aWYoIXRoaXMuX2F0dGVtcHRDaGFyQ29kZShlKSl0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihPZSh0aGlzLl9jdXJzb3IucGVlaygpKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihyKSl9X2F0dGVtcHRTdHIoZSl7bGV0IHI9ZS5sZW5ndGg7aWYodGhpcy5fY3Vyc29yLmNoYXJzTGVmdCgpPHIpcmV0dXJuITE7bGV0IG49dGhpcy5fY3Vyc29yLmNsb25lKCk7Zm9yKGxldCBzPTA7czxyO3MrKylpZighdGhpcy5fYXR0ZW1wdENoYXJDb2RlKGUuY2hhckNvZGVBdChzKSkpcmV0dXJuIHRoaXMuX2N1cnNvcj1uLCExO3JldHVybiEwfV9hdHRlbXB0U3RyQ2FzZUluc2Vuc2l0aXZlKGUpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKCF0aGlzLl9hdHRlbXB0Q2hhckNvZGVDYXNlSW5zZW5zaXRpdmUoZS5jaGFyQ29kZUF0KHIpKSlyZXR1cm4hMTtyZXR1cm4hMH1fcmVxdWlyZVN0cihlKXtsZXQgcj10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZighdGhpcy5fYXR0ZW1wdFN0cihlKSl0aHJvdyB0aGlzLl9jcmVhdGVFcnJvcihPZSh0aGlzLl9jdXJzb3IucGVlaygpKSx0aGlzLl9jdXJzb3IuZ2V0U3BhbihyKSl9X3JlcXVpcmVTdHJDYXNlSW5zZW5zaXRpdmUoZSl7bGV0IHI9dGhpcy5fY3Vyc29yLmNsb25lKCk7aWYoIXRoaXMuX2F0dGVtcHRTdHJDYXNlSW5zZW5zaXRpdmUoZSkpdGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IoT2UodGhpcy5fY3Vyc29yLnBlZWsoKSksdGhpcy5fY3Vyc29yLmdldFNwYW4ocikpfV9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGUpe2Zvcig7IWUodGhpcy5fY3Vyc29yLnBlZWsoKSk7KXRoaXMuX2N1cnNvci5hZHZhbmNlKCl9X3JlcXVpcmVDaGFyQ29kZVVudGlsRm4oZSxyKXtsZXQgbj10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKGUpLHRoaXMuX2N1cnNvci5kaWZmKG4pPHIpdGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IoT2UodGhpcy5fY3Vyc29yLnBlZWsoKSksdGhpcy5fY3Vyc29yLmdldFNwYW4obikpfV9hdHRlbXB0VW50aWxDaGFyKGUpe2Zvcig7dGhpcy5fY3Vyc29yLnBlZWsoKSE9PWU7KXRoaXMuX2N1cnNvci5hZHZhbmNlKCl9X3JlYWRDaGFyKCl7bGV0IGU9U3RyaW5nLmZyb21Db2RlUG9pbnQodGhpcy5fY3Vyc29yLnBlZWsoKSk7cmV0dXJuIHRoaXMuX2N1cnNvci5hZHZhbmNlKCksZX1fY29uc3VtZUVudGl0eShlKXt0aGlzLl9iZWdpblRva2VuKDkpO2xldCByPXRoaXMuX2N1cnNvci5jbG9uZSgpO2lmKHRoaXMuX2N1cnNvci5hZHZhbmNlKCksdGhpcy5fYXR0ZW1wdENoYXJDb2RlKDM1KSl7bGV0IG49dGhpcy5fYXR0ZW1wdENoYXJDb2RlKDEyMCl8fHRoaXMuX2F0dGVtcHRDaGFyQ29kZSg4OCkscz10aGlzLl9jdXJzb3IuY2xvbmUoKTtpZih0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKFZhKSx0aGlzLl9jdXJzb3IucGVlaygpIT01OSl7dGhpcy5fY3Vyc29yLmFkdmFuY2UoKTtsZXQgYT1uP1V0LkhFWDpVdC5ERUM7dGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IocWEoYSx0aGlzLl9jdXJzb3IuZ2V0Q2hhcnMocikpLHRoaXMuX2N1cnNvci5nZXRTcGFuKCkpfWxldCBpPXRoaXMuX2N1cnNvci5nZXRDaGFycyhzKTt0aGlzLl9jdXJzb3IuYWR2YW5jZSgpO3RyeXtsZXQgYT1wYXJzZUludChpLG4/MTY6MTApO3RoaXMuX2VuZFRva2VuKFtTdHJpbmcuZnJvbUNoYXJDb2RlKGEpLHRoaXMuX2N1cnNvci5nZXRDaGFycyhyKV0pfWNhdGNoe3Rocm93IHRoaXMuX2NyZWF0ZUVycm9yKGZzKHRoaXMuX2N1cnNvci5nZXRDaGFycyhyKSksdGhpcy5fY3Vyc29yLmdldFNwYW4oKSl9fWVsc2V7bGV0IG49dGhpcy5fY3Vyc29yLmNsb25lKCk7aWYodGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihVYSksdGhpcy5fY3Vyc29yLnBlZWsoKSE9NTkpdGhpcy5fYmVnaW5Ub2tlbihlLHIpLHRoaXMuX2N1cnNvcj1uLHRoaXMuX2VuZFRva2VuKFtcIiZcIl0pO2Vsc2V7bGV0IHM9dGhpcy5fY3Vyc29yLmdldENoYXJzKG4pO3RoaXMuX2N1cnNvci5hZHZhbmNlKCk7bGV0IGk9TWVbc107aWYoIWkpdGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IoZnMocyksdGhpcy5fY3Vyc29yLmdldFNwYW4ocikpO3RoaXMuX2VuZFRva2VuKFtpLGAmJHtzfTtgXSl9fX1fY29uc3VtZVJhd1RleHQoZSxyKXt0aGlzLl9iZWdpblRva2VuKGU/Njo3KTtsZXQgbj1bXTtmb3IoOzspe2xldCBzPXRoaXMuX2N1cnNvci5jbG9uZSgpLGk9cigpO2lmKHRoaXMuX2N1cnNvcj1zLGkpYnJlYWs7ZSYmdGhpcy5fY3Vyc29yLnBlZWsoKT09PTM4Pyh0aGlzLl9lbmRUb2tlbihbdGhpcy5fcHJvY2Vzc0NhcnJpYWdlUmV0dXJucyhuLmpvaW4oXCJcIikpXSksbi5sZW5ndGg9MCx0aGlzLl9jb25zdW1lRW50aXR5KDYpLHRoaXMuX2JlZ2luVG9rZW4oNikpOm4ucHVzaCh0aGlzLl9yZWFkQ2hhcigpKX10aGlzLl9lbmRUb2tlbihbdGhpcy5fcHJvY2Vzc0NhcnJpYWdlUmV0dXJucyhuLmpvaW4oXCJcIikpXSl9X2NvbnN1bWVDb21tZW50KGUpe3RoaXMuX2JlZ2luVG9rZW4oMTAsZSksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2NvbnN1bWVSYXdUZXh0KCExLCgpPT50aGlzLl9hdHRlbXB0U3RyKFwiLS0+XCIpKSx0aGlzLl9iZWdpblRva2VuKDExKSx0aGlzLl9yZXF1aXJlU3RyKFwiLS0+XCIpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZUJvZ3VzQ29tbWVudChlKXt0aGlzLl9iZWdpblRva2VuKDEwLGUpLHRoaXMuX2VuZFRva2VuKFtdKSx0aGlzLl9jb25zdW1lUmF3VGV4dCghMSwoKT0+dGhpcy5fY3Vyc29yLnBlZWsoKT09PTYyKSx0aGlzLl9iZWdpblRva2VuKDExKSx0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZUNkYXRhKGUpe3RoaXMuX2JlZ2luVG9rZW4oMTIsZSksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2NvbnN1bWVSYXdUZXh0KCExLCgpPT50aGlzLl9hdHRlbXB0U3RyKFwiXV0+XCIpKSx0aGlzLl9iZWdpblRva2VuKDEzKSx0aGlzLl9yZXF1aXJlU3RyKFwiXV0+XCIpLHRoaXMuX2VuZFRva2VuKFtdKX1fY29uc3VtZURvY1R5cGUoZSl7dGhpcy5fYmVnaW5Ub2tlbigxOCxlKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fY29uc3VtZVJhd1RleHQoITEsKCk9PnRoaXMuX2N1cnNvci5wZWVrKCk9PT02MiksdGhpcy5fYmVnaW5Ub2tlbigxOSksdGhpcy5fY3Vyc29yLmFkdmFuY2UoKSx0aGlzLl9lbmRUb2tlbihbXSl9X2NvbnN1bWVQcmVmaXhBbmROYW1lKCl7bGV0IGU9dGhpcy5fY3Vyc29yLmNsb25lKCkscj1cIlwiO2Zvcig7dGhpcy5fY3Vyc29yLnBlZWsoKSE9PTU4JiYhSGEodGhpcy5fY3Vyc29yLnBlZWsoKSk7KXRoaXMuX2N1cnNvci5hZHZhbmNlKCk7bGV0IG47dGhpcy5fY3Vyc29yLnBlZWsoKT09PTU4PyhyPXRoaXMuX2N1cnNvci5nZXRDaGFycyhlKSx0aGlzLl9jdXJzb3IuYWR2YW5jZSgpLG49dGhpcy5fY3Vyc29yLmNsb25lKCkpOm49ZSx0aGlzLl9yZXF1aXJlQ2hhckNvZGVVbnRpbEZuKG1zLHI9PT1cIlwiPzA6MSk7bGV0IHM9dGhpcy5fY3Vyc29yLmdldENoYXJzKG4pO3JldHVybltyLHNdfV9jb25zdW1lVGFnT3BlbihlKXtsZXQgcixuLHMsaT1bXTt0cnl7aWYoIW9yKHRoaXMuX2N1cnNvci5wZWVrKCkpKXRocm93IHRoaXMuX2NyZWF0ZUVycm9yKE9lKHRoaXMuX2N1cnNvci5wZWVrKCkpLHRoaXMuX2N1cnNvci5nZXRTcGFuKGUpKTtmb3Iocz10aGlzLl9jb25zdW1lVGFnT3BlblN0YXJ0KGUpLG49cy5wYXJ0c1swXSxyPXMucGFydHNbMV0sdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKTt0aGlzLl9jdXJzb3IucGVlaygpIT09NDcmJnRoaXMuX2N1cnNvci5wZWVrKCkhPT02MiYmdGhpcy5fY3Vyc29yLnBlZWsoKSE9PTYwJiZ0aGlzLl9jdXJzb3IucGVlaygpIT09MDspe2xldFt1LG9dPXRoaXMuX2NvbnN1bWVBdHRyaWJ1dGVOYW1lKCk7aWYodGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKSx0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNjEpKXt0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKE4pO2xldCBwPXRoaXMuX2NvbnN1bWVBdHRyaWJ1dGVWYWx1ZSgpO2kucHVzaCh7cHJlZml4OnUsbmFtZTpvLHZhbHVlOnB9KX1lbHNlIGkucHVzaCh7cHJlZml4OnUsbmFtZTpvfSk7dGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKX10aGlzLl9jb25zdW1lVGFnT3BlbkVuZCgpfWNhdGNoKHUpe2lmKHUgaW5zdGFuY2VvZiBhdCl7cz9zLnR5cGU9NDoodGhpcy5fYmVnaW5Ub2tlbig1LGUpLHRoaXMuX2VuZFRva2VuKFtcIjxcIl0pKTtyZXR1cm59dGhyb3cgdX1pZih0aGlzLl9jYW5TZWxmQ2xvc2UmJnRoaXMudG9rZW5zW3RoaXMudG9rZW5zLmxlbmd0aC0xXS50eXBlPT09MilyZXR1cm47bGV0IGE9dGhpcy5fZ2V0VGFnQ29udGVudFR5cGUocixuLHRoaXMuX2Z1bGxOYW1lU3RhY2subGVuZ3RoPjAsaSk7dGhpcy5faGFuZGxlRnVsbE5hbWVTdGFja0ZvclRhZ09wZW4obixyKSxhPT09TC5SQVdfVEVYVD90aGlzLl9jb25zdW1lUmF3VGV4dFdpdGhUYWdDbG9zZShuLHIsITEpOmE9PT1MLkVTQ0FQQUJMRV9SQVdfVEVYVCYmdGhpcy5fY29uc3VtZVJhd1RleHRXaXRoVGFnQ2xvc2UobixyLCEwKX1fY29uc3VtZVJhd1RleHRXaXRoVGFnQ2xvc2UoZSxyLG4pe3RoaXMuX2NvbnN1bWVSYXdUZXh0KG4sKCk9PiF0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNjApfHwhdGhpcy5fYXR0ZW1wdENoYXJDb2RlKDQ3KXx8KHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksIXRoaXMuX2F0dGVtcHRTdHJDYXNlSW5zZW5zaXRpdmUoZT9gJHtlfToke3J9YDpyKSk/ITE6KHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksdGhpcy5fYXR0ZW1wdENoYXJDb2RlKDYyKSkpLHRoaXMuX2JlZ2luVG9rZW4oMyksdGhpcy5fcmVxdWlyZUNoYXJDb2RlVW50aWxGbihzPT5zPT09NjIsMyksdGhpcy5fY3Vyc29yLmFkdmFuY2UoKSx0aGlzLl9lbmRUb2tlbihbZSxyXSksdGhpcy5faGFuZGxlRnVsbE5hbWVTdGFja0ZvclRhZ0Nsb3NlKGUscil9X2NvbnN1bWVUYWdPcGVuU3RhcnQoZSl7dGhpcy5fYmVnaW5Ub2tlbigwLGUpO2xldCByPXRoaXMuX2NvbnN1bWVQcmVmaXhBbmROYW1lKCk7cmV0dXJuIHRoaXMuX2VuZFRva2VuKHIpfV9jb25zdW1lQXR0cmlidXRlTmFtZSgpe2xldCBlPXRoaXMuX2N1cnNvci5wZWVrKCk7aWYoZT09PTM5fHxlPT09MzQpdGhyb3cgdGhpcy5fY3JlYXRlRXJyb3IoT2UoZSksdGhpcy5fY3Vyc29yLmdldFNwYW4oKSk7dGhpcy5fYmVnaW5Ub2tlbigxNCk7bGV0IHI9dGhpcy5fY29uc3VtZVByZWZpeEFuZE5hbWUoKTtyZXR1cm4gdGhpcy5fZW5kVG9rZW4ocikscn1fY29uc3VtZUF0dHJpYnV0ZVZhbHVlKCl7bGV0IGU7aWYodGhpcy5fY3Vyc29yLnBlZWsoKT09PTM5fHx0aGlzLl9jdXJzb3IucGVlaygpPT09MzQpe2xldCByPXRoaXMuX2N1cnNvci5wZWVrKCk7dGhpcy5fY29uc3VtZVF1b3RlKHIpO2xldCBuPSgpPT50aGlzLl9jdXJzb3IucGVlaygpPT09cjtlPXRoaXMuX2NvbnN1bWVXaXRoSW50ZXJwb2xhdGlvbigxNiwxNyxuLG4pLHRoaXMuX2NvbnN1bWVRdW90ZShyKX1lbHNle2xldCByPSgpPT5tcyh0aGlzLl9jdXJzb3IucGVlaygpKTtlPXRoaXMuX2NvbnN1bWVXaXRoSW50ZXJwb2xhdGlvbigxNiwxNyxyLHIpfXJldHVybiBlfV9jb25zdW1lUXVvdGUoZSl7dGhpcy5fYmVnaW5Ub2tlbigxNSksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKGUpLHRoaXMuX2VuZFRva2VuKFtTdHJpbmcuZnJvbUNvZGVQb2ludChlKV0pfV9jb25zdW1lVGFnT3BlbkVuZCgpe2xldCBlPXRoaXMuX2F0dGVtcHRDaGFyQ29kZSg0Nyk/MjoxO3RoaXMuX2JlZ2luVG9rZW4oZSksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDYyKSx0aGlzLl9lbmRUb2tlbihbXSl9X2NvbnN1bWVUYWdDbG9zZShlKXtpZih0aGlzLl9iZWdpblRva2VuKDMsZSksdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKSx0aGlzLl9hbGxvd0h0bUNvbXBvbmVudENsb3NpbmdUYWdzJiZ0aGlzLl9hdHRlbXB0Q2hhckNvZGUoNDcpKXRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDYyKSx0aGlzLl9lbmRUb2tlbihbXSk7ZWxzZXtsZXRbcixuXT10aGlzLl9jb25zdW1lUHJlZml4QW5kTmFtZSgpO3RoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDYyKSx0aGlzLl9lbmRUb2tlbihbcixuXSksdGhpcy5faGFuZGxlRnVsbE5hbWVTdGFja0ZvclRhZ0Nsb3NlKHIsbil9fV9jb25zdW1lRXhwYW5zaW9uRm9ybVN0YXJ0KCl7dGhpcy5fYmVnaW5Ub2tlbigyMCksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDEyMyksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5wdXNoKDIwKSx0aGlzLl9iZWdpblRva2VuKDcpO2xldCBlPXRoaXMuX3JlYWRVbnRpbCg0NCkscj10aGlzLl9wcm9jZXNzQ2FycmlhZ2VSZXR1cm5zKGUpO2lmKHRoaXMuX2kxOG5Ob3JtYWxpemVMaW5lRW5kaW5nc0luSUNVcyl0aGlzLl9lbmRUb2tlbihbcl0pO2Vsc2V7bGV0IHM9dGhpcy5fZW5kVG9rZW4oW2VdKTtyIT09ZSYmdGhpcy5ub25Ob3JtYWxpemVkSWN1RXhwcmVzc2lvbnMucHVzaChzKX10aGlzLl9yZXF1aXJlQ2hhckNvZGUoNDQpLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksdGhpcy5fYmVnaW5Ub2tlbig3KTtsZXQgbj10aGlzLl9yZWFkVW50aWwoNDQpO3RoaXMuX2VuZFRva2VuKFtuXSksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDQ0KSx0aGlzLl9hdHRlbXB0Q2hhckNvZGVVbnRpbEZuKE4pfV9jb25zdW1lRXhwYW5zaW9uQ2FzZVN0YXJ0KCl7dGhpcy5fYmVnaW5Ub2tlbigyMSk7bGV0IGU9dGhpcy5fcmVhZFVudGlsKDEyMykudHJpbSgpO3RoaXMuX2VuZFRva2VuKFtlXSksdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKSx0aGlzLl9iZWdpblRva2VuKDIyKSx0aGlzLl9yZXF1aXJlQ2hhckNvZGUoMTIzKSx0aGlzLl9lbmRUb2tlbihbXSksdGhpcy5fYXR0ZW1wdENoYXJDb2RlVW50aWxGbihOKSx0aGlzLl9leHBhbnNpb25DYXNlU3RhY2sucHVzaCgyMil9X2NvbnN1bWVFeHBhbnNpb25DYXNlRW5kKCl7dGhpcy5fYmVnaW5Ub2tlbigyMyksdGhpcy5fcmVxdWlyZUNoYXJDb2RlKDEyNSksdGhpcy5fZW5kVG9rZW4oW10pLHRoaXMuX2F0dGVtcHRDaGFyQ29kZVVudGlsRm4oTiksdGhpcy5fZXhwYW5zaW9uQ2FzZVN0YWNrLnBvcCgpfV9jb25zdW1lRXhwYW5zaW9uRm9ybUVuZCgpe3RoaXMuX2JlZ2luVG9rZW4oMjQpLHRoaXMuX3JlcXVpcmVDaGFyQ29kZSgxMjUpLHRoaXMuX2VuZFRva2VuKFtdKSx0aGlzLl9leHBhbnNpb25DYXNlU3RhY2sucG9wKCl9X2NvbnN1bWVXaXRoSW50ZXJwb2xhdGlvbihlLHIsbixzKXt0aGlzLl9iZWdpblRva2VuKGUpO2xldCBpPVtdO2Zvcig7IW4oKTspe2xldCB1PXRoaXMuX2N1cnNvci5jbG9uZSgpO3RoaXMuX2ludGVycG9sYXRpb25Db25maWcmJnRoaXMuX2F0dGVtcHRTdHIodGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZy5zdGFydCk/KHRoaXMuX2VuZFRva2VuKFt0aGlzLl9wcm9jZXNzQ2FycmlhZ2VSZXR1cm5zKGkuam9pbihcIlwiKSldLHUpLGkubGVuZ3RoPTAsdGhpcy5fY29uc3VtZUludGVycG9sYXRpb24ocix1LHMpLHRoaXMuX2JlZ2luVG9rZW4oZSkpOnRoaXMuX2N1cnNvci5wZWVrKCk9PT0zOD8odGhpcy5fZW5kVG9rZW4oW3RoaXMuX3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoaS5qb2luKFwiXCIpKV0pLGkubGVuZ3RoPTAsdGhpcy5fY29uc3VtZUVudGl0eShlKSx0aGlzLl9iZWdpblRva2VuKGUpKTppLnB1c2godGhpcy5fcmVhZENoYXIoKSl9dGhpcy5faW5JbnRlcnBvbGF0aW9uPSExO2xldCBhPXRoaXMuX3Byb2Nlc3NDYXJyaWFnZVJldHVybnMoaS5qb2luKFwiXCIpKTtyZXR1cm4gdGhpcy5fZW5kVG9rZW4oW2FdKSxhfV9jb25zdW1lSW50ZXJwb2xhdGlvbihlLHIsbil7bGV0IHM9W107dGhpcy5fYmVnaW5Ub2tlbihlLHIpLHMucHVzaCh0aGlzLl9pbnRlcnBvbGF0aW9uQ29uZmlnLnN0YXJ0KTtsZXQgaT10aGlzLl9jdXJzb3IuY2xvbmUoKSxhPW51bGwsdT0hMTtmb3IoO3RoaXMuX2N1cnNvci5wZWVrKCkhPT0wJiYobj09PW51bGx8fCFuKCkpOyl7bGV0IG89dGhpcy5fY3Vyc29yLmNsb25lKCk7aWYodGhpcy5faXNUYWdTdGFydCgpKXt0aGlzLl9jdXJzb3I9byxzLnB1c2godGhpcy5fZ2V0UHJvY2Vzc2VkQ2hhcnMoaSxvKSksdGhpcy5fZW5kVG9rZW4ocyk7cmV0dXJufWlmKGE9PT1udWxsKWlmKHRoaXMuX2F0dGVtcHRTdHIodGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZy5lbmQpKXtzLnB1c2godGhpcy5fZ2V0UHJvY2Vzc2VkQ2hhcnMoaSxvKSkscy5wdXNoKHRoaXMuX2ludGVycG9sYXRpb25Db25maWcuZW5kKSx0aGlzLl9lbmRUb2tlbihzKTtyZXR1cm59ZWxzZSB0aGlzLl9hdHRlbXB0U3RyKFwiLy9cIikmJih1PSEwKTtsZXQgcD10aGlzLl9jdXJzb3IucGVlaygpO3RoaXMuX2N1cnNvci5hZHZhbmNlKCkscD09PTkyP3RoaXMuX2N1cnNvci5hZHZhbmNlKCk6cD09PWE/YT1udWxsOiF1JiZhPT09bnVsbCYmd24ocCkmJihhPXApfXMucHVzaCh0aGlzLl9nZXRQcm9jZXNzZWRDaGFycyhpLHRoaXMuX2N1cnNvcikpLHRoaXMuX2VuZFRva2VuKHMpfV9nZXRQcm9jZXNzZWRDaGFycyhlLHIpe3JldHVybiB0aGlzLl9wcm9jZXNzQ2FycmlhZ2VSZXR1cm5zKHIuZ2V0Q2hhcnMoZSkpfV9pc1RleHRFbmQoKXtyZXR1cm4hISh0aGlzLl9pc1RhZ1N0YXJ0KCl8fHRoaXMuX2N1cnNvci5wZWVrKCk9PT0wfHx0aGlzLl90b2tlbml6ZUljdSYmIXRoaXMuX2luSW50ZXJwb2xhdGlvbiYmKHRoaXMuaXNFeHBhbnNpb25Gb3JtU3RhcnQoKXx8dGhpcy5fY3Vyc29yLnBlZWsoKT09PTEyNSYmdGhpcy5faXNJbkV4cGFuc2lvbkNhc2UoKSkpfV9pc1RhZ1N0YXJ0KCl7aWYodGhpcy5fY3Vyc29yLnBlZWsoKT09PTYwKXtsZXQgZT10aGlzLl9jdXJzb3IuY2xvbmUoKTtlLmFkdmFuY2UoKTtsZXQgcj1lLnBlZWsoKTtpZig5Nzw9ciYmcjw9MTIyfHw2NTw9ciYmcjw9OTB8fHI9PT00N3x8cj09PTMzKXJldHVybiEwfXJldHVybiExfV9yZWFkVW50aWwoZSl7bGV0IHI9dGhpcy5fY3Vyc29yLmNsb25lKCk7cmV0dXJuIHRoaXMuX2F0dGVtcHRVbnRpbENoYXIoZSksdGhpcy5fY3Vyc29yLmdldENoYXJzKHIpfV9pc0luRXhwYW5zaW9uQ2FzZSgpe3JldHVybiB0aGlzLl9leHBhbnNpb25DYXNlU3RhY2subGVuZ3RoPjAmJnRoaXMuX2V4cGFuc2lvbkNhc2VTdGFja1t0aGlzLl9leHBhbnNpb25DYXNlU3RhY2subGVuZ3RoLTFdPT09MjJ9X2lzSW5FeHBhbnNpb25Gb3JtKCl7cmV0dXJuIHRoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5sZW5ndGg+MCYmdGhpcy5fZXhwYW5zaW9uQ2FzZVN0YWNrW3RoaXMuX2V4cGFuc2lvbkNhc2VTdGFjay5sZW5ndGgtMV09PT0yMH1pc0V4cGFuc2lvbkZvcm1TdGFydCgpe2lmKHRoaXMuX2N1cnNvci5wZWVrKCkhPT0xMjMpcmV0dXJuITE7aWYodGhpcy5faW50ZXJwb2xhdGlvbkNvbmZpZyl7bGV0IGU9dGhpcy5fY3Vyc29yLmNsb25lKCkscj10aGlzLl9hdHRlbXB0U3RyKHRoaXMuX2ludGVycG9sYXRpb25Db25maWcuc3RhcnQpO3JldHVybiB0aGlzLl9jdXJzb3I9ZSwhcn1yZXR1cm4hMH1faGFuZGxlRnVsbE5hbWVTdGFja0ZvclRhZ09wZW4oZSxyKXtsZXQgbj1SZShlLHIpOyh0aGlzLl9mdWxsTmFtZVN0YWNrLmxlbmd0aD09PTB8fHRoaXMuX2Z1bGxOYW1lU3RhY2tbdGhpcy5fZnVsbE5hbWVTdGFjay5sZW5ndGgtMV09PT1uKSYmdGhpcy5fZnVsbE5hbWVTdGFjay5wdXNoKG4pfV9oYW5kbGVGdWxsTmFtZVN0YWNrRm9yVGFnQ2xvc2UoZSxyKXtsZXQgbj1SZShlLHIpO3RoaXMuX2Z1bGxOYW1lU3RhY2subGVuZ3RoIT09MCYmdGhpcy5fZnVsbE5hbWVTdGFja1t0aGlzLl9mdWxsTmFtZVN0YWNrLmxlbmd0aC0xXT09PW4mJnRoaXMuX2Z1bGxOYW1lU3RhY2sucG9wKCl9fTtmdW5jdGlvbiBOKHQpe3JldHVybiF1cih0KXx8dD09PTB9ZnVuY3Rpb24gbXModCl7cmV0dXJuIHVyKHQpfHx0PT09NjJ8fHQ9PT02MHx8dD09PTQ3fHx0PT09Mzl8fHQ9PT0zNHx8dD09PTYxfHx0PT09MH1mdW5jdGlvbiBIYSh0KXtyZXR1cm4odDw5N3x8MTIyPHQpJiYodDw2NXx8OTA8dCkmJih0PDQ4fHx0PjU3KX1mdW5jdGlvbiBWYSh0KXtyZXR1cm4gdD09PTU5fHx0PT09MHx8IWJuKHQpfWZ1bmN0aW9uIFVhKHQpe3JldHVybiB0PT09NTl8fHQ9PT0wfHwhb3IodCl9ZnVuY3Rpb24gV2EodCl7cmV0dXJuIHQhPT0xMjV9ZnVuY3Rpb24gR2EodCxlKXtyZXR1cm4gZHModCk9PT1kcyhlKX1mdW5jdGlvbiBkcyh0KXtyZXR1cm4gdD49OTcmJnQ8PTEyMj90LTk3KzY1OnR9ZnVuY3Rpb24gWWEodCl7bGV0IGU9W10scjtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl7bGV0IHM9dFtuXTtyJiZyLnR5cGU9PT01JiZzLnR5cGU9PT01fHxyJiZyLnR5cGU9PT0xNiYmcy50eXBlPT09MTY/KHIucGFydHNbMF0rPXMucGFydHNbMF0sci5zb3VyY2VTcGFuLmVuZD1zLnNvdXJjZVNwYW4uZW5kKToocj1zLGUucHVzaChyKSl9cmV0dXJuIGV9dmFyIFd0PWNsYXNzIHR7Y29uc3RydWN0b3IoZSxyKXtpZihlIGluc3RhbmNlb2YgdCl7dGhpcy5maWxlPWUuZmlsZSx0aGlzLmlucHV0PWUuaW5wdXQsdGhpcy5lbmQ9ZS5lbmQ7bGV0IG49ZS5zdGF0ZTt0aGlzLnN0YXRlPXtwZWVrOm4ucGVlayxvZmZzZXQ6bi5vZmZzZXQsbGluZTpuLmxpbmUsY29sdW1uOm4uY29sdW1ufX1lbHNle2lmKCFyKXRocm93IG5ldyBFcnJvcihcIlByb2dyYW1taW5nIGVycm9yOiB0aGUgcmFuZ2UgYXJndW1lbnQgbXVzdCBiZSBwcm92aWRlZCB3aXRoIGEgZmlsZSBhcmd1bWVudC5cIik7dGhpcy5maWxlPWUsdGhpcy5pbnB1dD1lLmNvbnRlbnQsdGhpcy5lbmQ9ci5lbmRQb3MsdGhpcy5zdGF0ZT17cGVlazotMSxvZmZzZXQ6ci5zdGFydFBvcyxsaW5lOnIuc3RhcnRMaW5lLGNvbHVtbjpyLnN0YXJ0Q29sfX19Y2xvbmUoKXtyZXR1cm4gbmV3IHQodGhpcyl9cGVlaygpe3JldHVybiB0aGlzLnN0YXRlLnBlZWt9Y2hhcnNMZWZ0KCl7cmV0dXJuIHRoaXMuZW5kLXRoaXMuc3RhdGUub2Zmc2V0fWRpZmYoZSl7cmV0dXJuIHRoaXMuc3RhdGUub2Zmc2V0LWUuc3RhdGUub2Zmc2V0fWFkdmFuY2UoKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLnN0YXRlKX1pbml0KCl7dGhpcy51cGRhdGVQZWVrKHRoaXMuc3RhdGUpfWdldFNwYW4oZSxyKXtlPWV8fHRoaXM7bGV0IG49ZTtpZihyKWZvcig7dGhpcy5kaWZmKGUpPjAmJnIuaW5kZXhPZihlLnBlZWsoKSkhPT0tMTspbj09PWUmJihlPWUuY2xvbmUoKSksZS5hZHZhbmNlKCk7bGV0IHM9dGhpcy5sb2NhdGlvbkZyb21DdXJzb3IoZSksaT10aGlzLmxvY2F0aW9uRnJvbUN1cnNvcih0aGlzKSxhPW4hPT1lP3RoaXMubG9jYXRpb25Gcm9tQ3Vyc29yKG4pOnM7cmV0dXJuIG5ldyBtKHMsaSxhKX1nZXRDaGFycyhlKXtyZXR1cm4gdGhpcy5pbnB1dC5zdWJzdHJpbmcoZS5zdGF0ZS5vZmZzZXQsdGhpcy5zdGF0ZS5vZmZzZXQpfWNoYXJBdChlKXtyZXR1cm4gdGhpcy5pbnB1dC5jaGFyQ29kZUF0KGUpfWFkdmFuY2VTdGF0ZShlKXtpZihlLm9mZnNldD49dGhpcy5lbmQpdGhyb3cgdGhpcy5zdGF0ZT1lLG5ldyB1dCgnVW5leHBlY3RlZCBjaGFyYWN0ZXIgXCJFT0ZcIicsdGhpcyk7bGV0IHI9dGhpcy5jaGFyQXQoZS5vZmZzZXQpO3I9PT0xMD8oZS5saW5lKyssZS5jb2x1bW49MCk6bHIocil8fGUuY29sdW1uKyssZS5vZmZzZXQrKyx0aGlzLnVwZGF0ZVBlZWsoZSl9dXBkYXRlUGVlayhlKXtlLnBlZWs9ZS5vZmZzZXQ+PXRoaXMuZW5kPzA6dGhpcy5jaGFyQXQoZS5vZmZzZXQpfWxvY2F0aW9uRnJvbUN1cnNvcihlKXtyZXR1cm4gbmV3IGVlKGUuZmlsZSxlLnN0YXRlLm9mZnNldCxlLnN0YXRlLmxpbmUsZS5zdGF0ZS5jb2x1bW4pfX0sVHI9Y2xhc3MgdCBleHRlbmRzIFd0e2NvbnN0cnVjdG9yKGUscil7ZSBpbnN0YW5jZW9mIHQ/KHN1cGVyKGUpLHRoaXMuaW50ZXJuYWxTdGF0ZT17Li4uZS5pbnRlcm5hbFN0YXRlfSk6KHN1cGVyKGUsciksdGhpcy5pbnRlcm5hbFN0YXRlPXRoaXMuc3RhdGUpfWFkdmFuY2UoKXt0aGlzLnN0YXRlPXRoaXMuaW50ZXJuYWxTdGF0ZSxzdXBlci5hZHZhbmNlKCksdGhpcy5wcm9jZXNzRXNjYXBlU2VxdWVuY2UoKX1pbml0KCl7c3VwZXIuaW5pdCgpLHRoaXMucHJvY2Vzc0VzY2FwZVNlcXVlbmNlKCl9Y2xvbmUoKXtyZXR1cm4gbmV3IHQodGhpcyl9Z2V0Q2hhcnMoZSl7bGV0IHI9ZS5jbG9uZSgpLG49XCJcIjtmb3IoO3IuaW50ZXJuYWxTdGF0ZS5vZmZzZXQ8dGhpcy5pbnRlcm5hbFN0YXRlLm9mZnNldDspbis9U3RyaW5nLmZyb21Db2RlUG9pbnQoci5wZWVrKCkpLHIuYWR2YW5jZSgpO3JldHVybiBufXByb2Nlc3NFc2NhcGVTZXF1ZW5jZSgpe2xldCBlPSgpPT50aGlzLmludGVybmFsU3RhdGUucGVlaztpZihlKCk9PT05MilpZih0aGlzLmludGVybmFsU3RhdGU9ey4uLnRoaXMuc3RhdGV9LHRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksZSgpPT09MTEwKXRoaXMuc3RhdGUucGVlaz0xMDtlbHNlIGlmKGUoKT09PTExNCl0aGlzLnN0YXRlLnBlZWs9MTM7ZWxzZSBpZihlKCk9PT0xMTgpdGhpcy5zdGF0ZS5wZWVrPTExO2Vsc2UgaWYoZSgpPT09MTE2KXRoaXMuc3RhdGUucGVlaz05O2Vsc2UgaWYoZSgpPT09OTgpdGhpcy5zdGF0ZS5wZWVrPTg7ZWxzZSBpZihlKCk9PT0xMDIpdGhpcy5zdGF0ZS5wZWVrPTEyO2Vsc2UgaWYoZSgpPT09MTE3KWlmKHRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksZSgpPT09MTIzKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpO2xldCByPXRoaXMuY2xvbmUoKSxuPTA7Zm9yKDtlKCkhPT0xMjU7KXRoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksbisrO3RoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLG4pfWVsc2V7bGV0IHI9dGhpcy5jbG9uZSgpO3RoaXMuYWR2YW5jZVN0YXRlKHRoaXMuaW50ZXJuYWxTdGF0ZSksdGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSx0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpLHRoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLDQpfWVsc2UgaWYoZSgpPT09MTIwKXt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpO2xldCByPXRoaXMuY2xvbmUoKTt0aGlzLmFkdmFuY2VTdGF0ZSh0aGlzLmludGVybmFsU3RhdGUpLHRoaXMuc3RhdGUucGVlaz10aGlzLmRlY29kZUhleERpZ2l0cyhyLDIpfWVsc2UgaWYoY3IoZSgpKSl7bGV0IHI9XCJcIixuPTAscz10aGlzLmNsb25lKCk7Zm9yKDtjcihlKCkpJiZuPDM7KXM9dGhpcy5jbG9uZSgpLHIrPVN0cmluZy5mcm9tQ29kZVBvaW50KGUoKSksdGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSxuKys7dGhpcy5zdGF0ZS5wZWVrPXBhcnNlSW50KHIsOCksdGhpcy5pbnRlcm5hbFN0YXRlPXMuaW50ZXJuYWxTdGF0ZX1lbHNlIGxyKHRoaXMuaW50ZXJuYWxTdGF0ZS5wZWVrKT8odGhpcy5hZHZhbmNlU3RhdGUodGhpcy5pbnRlcm5hbFN0YXRlKSx0aGlzLnN0YXRlPXRoaXMuaW50ZXJuYWxTdGF0ZSk6dGhpcy5zdGF0ZS5wZWVrPXRoaXMuaW50ZXJuYWxTdGF0ZS5wZWVrfWRlY29kZUhleERpZ2l0cyhlLHIpe2xldCBuPXRoaXMuaW5wdXQuc2xpY2UoZS5pbnRlcm5hbFN0YXRlLm9mZnNldCxlLmludGVybmFsU3RhdGUub2Zmc2V0K3IpLHM9cGFyc2VJbnQobiwxNik7aWYoaXNOYU4ocykpdGhyb3cgZS5zdGF0ZT1lLmludGVybmFsU3RhdGUsbmV3IHV0KFwiSW52YWxpZCBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2VcIixlKTtyZXR1cm4gc319LHV0PWNsYXNze2NvbnN0cnVjdG9yKGUscil7dGhpcy5tc2c9ZSx0aGlzLmN1cnNvcj1yfX07dmFyIEg9Y2xhc3MgdCBleHRlbmRzIFBle3N0YXRpYyBjcmVhdGUoZSxyLG4pe3JldHVybiBuZXcgdChlLHIsbil9Y29uc3RydWN0b3IoZSxyLG4pe3N1cGVyKHIsbiksdGhpcy5lbGVtZW50TmFtZT1lfX0sQnI9Y2xhc3N7Y29uc3RydWN0b3IoZSxyKXt0aGlzLnJvb3ROb2Rlcz1lLHRoaXMuZXJyb3JzPXJ9fSxHdD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmdldFRhZ0RlZmluaXRpb249ZX1wYXJzZShlLHIsbixzPSExLGkpe2xldCBhPUE9PihGLC4uLlQpPT5BKEYudG9Mb3dlckNhc2UoKSwuLi5UKSx1PXM/dGhpcy5nZXRUYWdEZWZpbml0aW9uOmEodGhpcy5nZXRUYWdEZWZpbml0aW9uKSxvPUE9PnUoQSkuZ2V0Q29udGVudFR5cGUoKSxwPXM/aTphKGkpLGY9QXMoZSxyLGk/KEEsRixULGMpPT57bGV0IGc9cChBLEYsVCxjKTtyZXR1cm4gZyE9PXZvaWQgMD9nOm8oQSl9Om8sbiksZD1uJiZuLmNhblNlbGZDbG9zZXx8ITEsQz1uJiZuLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3N8fCExLEU9bmV3IExyKGYudG9rZW5zLHUsZCxDLHMpO3JldHVybiBFLmJ1aWxkKCksbmV3IEJyKEUucm9vdE5vZGVzLGYuZXJyb3JzLmNvbmNhdChFLmVycm9ycykpfX0sTHI9Y2xhc3MgdHtjb25zdHJ1Y3RvcihlLHIsbixzLGkpe3RoaXMudG9rZW5zPWUsdGhpcy5nZXRUYWdEZWZpbml0aW9uPXIsdGhpcy5jYW5TZWxmQ2xvc2U9bix0aGlzLmFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M9cyx0aGlzLmlzVGFnTmFtZUNhc2VTZW5zaXRpdmU9aSx0aGlzLl9pbmRleD0tMSx0aGlzLl9lbGVtZW50U3RhY2s9W10sdGhpcy5yb290Tm9kZXM9W10sdGhpcy5lcnJvcnM9W10sdGhpcy5fYWR2YW5jZSgpfWJ1aWxkKCl7Zm9yKDt0aGlzLl9wZWVrLnR5cGUhPT0yNTspdGhpcy5fcGVlay50eXBlPT09MHx8dGhpcy5fcGVlay50eXBlPT09ND90aGlzLl9jb25zdW1lU3RhcnRUYWcodGhpcy5fYWR2YW5jZSgpKTp0aGlzLl9wZWVrLnR5cGU9PT0zPyh0aGlzLl9jbG9zZVZvaWRFbGVtZW50KCksdGhpcy5fY29uc3VtZUVuZFRhZyh0aGlzLl9hZHZhbmNlKCkpKTp0aGlzLl9wZWVrLnR5cGU9PT0xMj8odGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpLHRoaXMuX2NvbnN1bWVDZGF0YSh0aGlzLl9hZHZhbmNlKCkpKTp0aGlzLl9wZWVrLnR5cGU9PT0xMD8odGhpcy5fY2xvc2VWb2lkRWxlbWVudCgpLHRoaXMuX2NvbnN1bWVDb21tZW50KHRoaXMuX2FkdmFuY2UoKSkpOnRoaXMuX3BlZWsudHlwZT09PTV8fHRoaXMuX3BlZWsudHlwZT09PTd8fHRoaXMuX3BlZWsudHlwZT09PTY/KHRoaXMuX2Nsb3NlVm9pZEVsZW1lbnQoKSx0aGlzLl9jb25zdW1lVGV4dCh0aGlzLl9hZHZhbmNlKCkpKTp0aGlzLl9wZWVrLnR5cGU9PT0yMD90aGlzLl9jb25zdW1lRXhwYW5zaW9uKHRoaXMuX2FkdmFuY2UoKSk6dGhpcy5fcGVlay50eXBlPT09MTg/dGhpcy5fY29uc3VtZURvY1R5cGUodGhpcy5fYWR2YW5jZSgpKTp0aGlzLl9hZHZhbmNlKCl9X2FkdmFuY2UoKXtsZXQgZT10aGlzLl9wZWVrO3JldHVybiB0aGlzLl9pbmRleDx0aGlzLnRva2Vucy5sZW5ndGgtMSYmdGhpcy5faW5kZXgrKyx0aGlzLl9wZWVrPXRoaXMudG9rZW5zW3RoaXMuX2luZGV4XSxlfV9hZHZhbmNlSWYoZSl7cmV0dXJuIHRoaXMuX3BlZWsudHlwZT09PWU/dGhpcy5fYWR2YW5jZSgpOm51bGx9X2NvbnN1bWVDZGF0YShlKXtsZXQgcj10aGlzLl9hZHZhbmNlKCksbj10aGlzLl9nZXRUZXh0KHIpLHM9dGhpcy5fYWR2YW5jZUlmKDEzKTt0aGlzLl9hZGRUb1BhcmVudChuZXcgRnQobixuZXcgbShlLnNvdXJjZVNwYW4uc3RhcnQsKHN8fHIpLnNvdXJjZVNwYW4uZW5kKSxbcl0pKX1fY29uc3VtZUNvbW1lbnQoZSl7bGV0IHI9dGhpcy5fYWR2YW5jZUlmKDcpLG49dGhpcy5fYWR2YW5jZUlmKDExKSxzPXIhPW51bGw/ci5wYXJ0c1swXS50cmltKCk6bnVsbCxpPW5ldyBtKGUuc291cmNlU3Bhbi5zdGFydCwobnx8cnx8ZSkuc291cmNlU3Bhbi5lbmQpO3RoaXMuX2FkZFRvUGFyZW50KG5ldyAkdChzLGkpKX1fY29uc3VtZURvY1R5cGUoZSl7bGV0IHI9dGhpcy5fYWR2YW5jZUlmKDcpLG49dGhpcy5fYWR2YW5jZUlmKDE5KSxzPXIhPW51bGw/ci5wYXJ0c1swXS50cmltKCk6bnVsbCxpPW5ldyBtKGUuc291cmNlU3Bhbi5zdGFydCwobnx8cnx8ZSkuc291cmNlU3Bhbi5lbmQpO3RoaXMuX2FkZFRvUGFyZW50KG5ldyBNdChzLGkpKX1fY29uc3VtZUV4cGFuc2lvbihlKXtsZXQgcj10aGlzLl9hZHZhbmNlKCksbj10aGlzLl9hZHZhbmNlKCkscz1bXTtmb3IoO3RoaXMuX3BlZWsudHlwZT09PTIxOyl7bGV0IGE9dGhpcy5fcGFyc2VFeHBhbnNpb25DYXNlKCk7aWYoIWEpcmV0dXJuO3MucHVzaChhKX1pZih0aGlzLl9wZWVrLnR5cGUhPT0yNCl7dGhpcy5lcnJvcnMucHVzaChILmNyZWF0ZShudWxsLHRoaXMuX3BlZWsuc291cmNlU3BhbixcIkludmFsaWQgSUNVIG1lc3NhZ2UuIE1pc3NpbmcgJ30nLlwiKSk7cmV0dXJufWxldCBpPW5ldyBtKGUuc291cmNlU3Bhbi5zdGFydCx0aGlzLl9wZWVrLnNvdXJjZVNwYW4uZW5kLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpO3RoaXMuX2FkZFRvUGFyZW50KG5ldyBQdChyLnBhcnRzWzBdLG4ucGFydHNbMF0scyxpLHIuc291cmNlU3BhbikpLHRoaXMuX2FkdmFuY2UoKX1fcGFyc2VFeHBhbnNpb25DYXNlKCl7bGV0IGU9dGhpcy5fYWR2YW5jZSgpO2lmKHRoaXMuX3BlZWsudHlwZSE9PTIyKXJldHVybiB0aGlzLmVycm9ycy5wdXNoKEguY3JlYXRlKG51bGwsdGhpcy5fcGVlay5zb3VyY2VTcGFuLFwiSW52YWxpZCBJQ1UgbWVzc2FnZS4gTWlzc2luZyAneycuXCIpKSxudWxsO2xldCByPXRoaXMuX2FkdmFuY2UoKSxuPXRoaXMuX2NvbGxlY3RFeHBhbnNpb25FeHBUb2tlbnMocik7aWYoIW4pcmV0dXJuIG51bGw7bGV0IHM9dGhpcy5fYWR2YW5jZSgpO24ucHVzaCh7dHlwZToyNSxwYXJ0czpbXSxzb3VyY2VTcGFuOnMuc291cmNlU3Bhbn0pO2xldCBpPW5ldyB0KG4sdGhpcy5nZXRUYWdEZWZpbml0aW9uLHRoaXMuY2FuU2VsZkNsb3NlLHRoaXMuYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFncyx0aGlzLmlzVGFnTmFtZUNhc2VTZW5zaXRpdmUpO2lmKGkuYnVpbGQoKSxpLmVycm9ycy5sZW5ndGg+MClyZXR1cm4gdGhpcy5lcnJvcnM9dGhpcy5lcnJvcnMuY29uY2F0KGkuZXJyb3JzKSxudWxsO2xldCBhPW5ldyBtKGUuc291cmNlU3Bhbi5zdGFydCxzLnNvdXJjZVNwYW4uZW5kLGUuc291cmNlU3Bhbi5mdWxsU3RhcnQpLHU9bmV3IG0oci5zb3VyY2VTcGFuLnN0YXJ0LHMuc291cmNlU3Bhbi5lbmQsci5zb3VyY2VTcGFuLmZ1bGxTdGFydCk7cmV0dXJuIG5ldyBOdChlLnBhcnRzWzBdLGkucm9vdE5vZGVzLGEsZS5zb3VyY2VTcGFuLHUpfV9jb2xsZWN0RXhwYW5zaW9uRXhwVG9rZW5zKGUpe2xldCByPVtdLG49WzIyXTtmb3IoOzspe2lmKCh0aGlzLl9wZWVrLnR5cGU9PT0yMHx8dGhpcy5fcGVlay50eXBlPT09MjIpJiZuLnB1c2godGhpcy5fcGVlay50eXBlKSx0aGlzLl9wZWVrLnR5cGU9PT0yMylpZihfcyhuLDIyKSl7aWYobi5wb3AoKSxuLmxlbmd0aD09PTApcmV0dXJuIHJ9ZWxzZSByZXR1cm4gdGhpcy5lcnJvcnMucHVzaChILmNyZWF0ZShudWxsLGUuc291cmNlU3BhbixcIkludmFsaWQgSUNVIG1lc3NhZ2UuIE1pc3NpbmcgJ30nLlwiKSksbnVsbDtpZih0aGlzLl9wZWVrLnR5cGU9PT0yNClpZihfcyhuLDIwKSluLnBvcCgpO2Vsc2UgcmV0dXJuIHRoaXMuZXJyb3JzLnB1c2goSC5jcmVhdGUobnVsbCxlLnNvdXJjZVNwYW4sXCJJbnZhbGlkIElDVSBtZXNzYWdlLiBNaXNzaW5nICd9Jy5cIikpLG51bGw7aWYodGhpcy5fcGVlay50eXBlPT09MjUpcmV0dXJuIHRoaXMuZXJyb3JzLnB1c2goSC5jcmVhdGUobnVsbCxlLnNvdXJjZVNwYW4sXCJJbnZhbGlkIElDVSBtZXNzYWdlLiBNaXNzaW5nICd9Jy5cIikpLG51bGw7ci5wdXNoKHRoaXMuX2FkdmFuY2UoKSl9fV9nZXRUZXh0KGUpe2xldCByPWUucGFydHNbMF07aWYoci5sZW5ndGg+MCYmclswXT09YFxuYCl7bGV0IG49dGhpcy5fZ2V0UGFyZW50RWxlbWVudCgpO24hPW51bGwmJm4uY2hpbGRyZW4ubGVuZ3RoPT0wJiZ0aGlzLmdldFRhZ0RlZmluaXRpb24obi5uYW1lKS5pZ25vcmVGaXJzdExmJiYocj1yLnN1YnN0cmluZygxKSl9cmV0dXJuIHJ9X2NvbnN1bWVUZXh0KGUpe2xldCByPVtlXSxuPWUuc291cmNlU3BhbixzPWUucGFydHNbMF07aWYocy5sZW5ndGg+MCYmc1swXT09PWBcbmApe2xldCBpPXRoaXMuX2dldFBhcmVudEVsZW1lbnQoKTtpIT1udWxsJiZpLmNoaWxkcmVuLmxlbmd0aD09PTAmJnRoaXMuZ2V0VGFnRGVmaW5pdGlvbihpLm5hbWUpLmlnbm9yZUZpcnN0TGYmJihzPXMuc3Vic3RyaW5nKDEpLHJbMF09e3R5cGU6ZS50eXBlLHNvdXJjZVNwYW46ZS5zb3VyY2VTcGFuLHBhcnRzOltzXX0pfWZvcig7dGhpcy5fcGVlay50eXBlPT09OHx8dGhpcy5fcGVlay50eXBlPT09NXx8dGhpcy5fcGVlay50eXBlPT09OTspZT10aGlzLl9hZHZhbmNlKCksci5wdXNoKGUpLGUudHlwZT09PTg/cys9ZS5wYXJ0cy5qb2luKFwiXCIpLnJlcGxhY2UoLyYoW147XSspOy9nLERzKTplLnR5cGU9PT05P3MrPWUucGFydHNbMF06cys9ZS5wYXJ0cy5qb2luKFwiXCIpO2lmKHMubGVuZ3RoPjApe2xldCBpPWUuc291cmNlU3Bhbjt0aGlzLl9hZGRUb1BhcmVudChuZXcgTHQocyxuZXcgbShuLnN0YXJ0LGkuZW5kLG4uZnVsbFN0YXJ0LG4uZGV0YWlscykscikpfX1fY2xvc2VWb2lkRWxlbWVudCgpe2xldCBlPXRoaXMuX2dldFBhcmVudEVsZW1lbnQoKTtlJiZ0aGlzLmdldFRhZ0RlZmluaXRpb24oZS5uYW1lKS5pc1ZvaWQmJnRoaXMuX2VsZW1lbnRTdGFjay5wb3AoKX1fY29uc3VtZVN0YXJ0VGFnKGUpe2xldFtyLG5dPWUucGFydHMscz1bXTtmb3IoO3RoaXMuX3BlZWsudHlwZT09PTE0OylzLnB1c2godGhpcy5fY29uc3VtZUF0dHIodGhpcy5fYWR2YW5jZSgpKSk7bGV0IGk9dGhpcy5fZ2V0RWxlbWVudEZ1bGxOYW1lKHIsbix0aGlzLl9nZXRQYXJlbnRFbGVtZW50KCkpLGE9ITE7aWYodGhpcy5fcGVlay50eXBlPT09Mil7dGhpcy5fYWR2YW5jZSgpLGE9ITA7bGV0IGQ9dGhpcy5nZXRUYWdEZWZpbml0aW9uKGkpO3RoaXMuY2FuU2VsZkNsb3NlfHxkLmNhblNlbGZDbG9zZXx8SWUoaSkhPT1udWxsfHxkLmlzVm9pZHx8dGhpcy5lcnJvcnMucHVzaChILmNyZWF0ZShpLGUuc291cmNlU3BhbixgT25seSB2b2lkLCBjdXN0b20gYW5kIGZvcmVpZ24gZWxlbWVudHMgY2FuIGJlIHNlbGYgY2xvc2VkIFwiJHtlLnBhcnRzWzFdfVwiYCkpfWVsc2UgdGhpcy5fcGVlay50eXBlPT09MSYmKHRoaXMuX2FkdmFuY2UoKSxhPSExKTtsZXQgdT10aGlzLl9wZWVrLnNvdXJjZVNwYW4uZnVsbFN0YXJ0LG89bmV3IG0oZS5zb3VyY2VTcGFuLnN0YXJ0LHUsZS5zb3VyY2VTcGFuLmZ1bGxTdGFydCkscD1uZXcgbShlLnNvdXJjZVNwYW4uc3RhcnQsdSxlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KSxsPW5ldyBtKGUuc291cmNlU3Bhbi5zdGFydC5tb3ZlQnkoMSksZS5zb3VyY2VTcGFuLmVuZCksZj1uZXcgUnQoaSxzLFtdLG8scCx2b2lkIDAsbCk7dGhpcy5fcHVzaEVsZW1lbnQoZiksYT90aGlzLl9wb3BFbGVtZW50KGksbyk6ZS50eXBlPT09NCYmKHRoaXMuX3BvcEVsZW1lbnQoaSxudWxsKSx0aGlzLmVycm9ycy5wdXNoKEguY3JlYXRlKGksbyxgT3BlbmluZyB0YWcgXCIke2l9XCIgbm90IHRlcm1pbmF0ZWQuYCkpKX1fcHVzaEVsZW1lbnQoZSl7bGV0IHI9dGhpcy5fZ2V0UGFyZW50RWxlbWVudCgpO3ImJnRoaXMuZ2V0VGFnRGVmaW5pdGlvbihyLm5hbWUpLmlzQ2xvc2VkQnlDaGlsZChlLm5hbWUpJiZ0aGlzLl9lbGVtZW50U3RhY2sucG9wKCksdGhpcy5fYWRkVG9QYXJlbnQoZSksdGhpcy5fZWxlbWVudFN0YWNrLnB1c2goZSl9X2NvbnN1bWVFbmRUYWcoZSl7bGV0IHI9dGhpcy5hbGxvd0h0bUNvbXBvbmVudENsb3NpbmdUYWdzJiZlLnBhcnRzLmxlbmd0aD09PTA/bnVsbDp0aGlzLl9nZXRFbGVtZW50RnVsbE5hbWUoZS5wYXJ0c1swXSxlLnBhcnRzWzFdLHRoaXMuX2dldFBhcmVudEVsZW1lbnQoKSk7aWYociYmdGhpcy5nZXRUYWdEZWZpbml0aW9uKHIpLmlzVm9pZCl0aGlzLmVycm9ycy5wdXNoKEguY3JlYXRlKHIsZS5zb3VyY2VTcGFuLGBWb2lkIGVsZW1lbnRzIGRvIG5vdCBoYXZlIGVuZCB0YWdzIFwiJHtlLnBhcnRzWzFdfVwiYCkpO2Vsc2UgaWYoIXRoaXMuX3BvcEVsZW1lbnQocixlLnNvdXJjZVNwYW4pKXtsZXQgbj1gVW5leHBlY3RlZCBjbG9zaW5nIHRhZyBcIiR7cn1cIi4gSXQgbWF5IGhhcHBlbiB3aGVuIHRoZSB0YWcgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQgYnkgYW5vdGhlciB0YWcuIEZvciBtb3JlIGluZm8gc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNjbG9zaW5nLWVsZW1lbnRzLXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzYDt0aGlzLmVycm9ycy5wdXNoKEguY3JlYXRlKHIsZS5zb3VyY2VTcGFuLG4pKX19X3BvcEVsZW1lbnQoZSxyKXtsZXQgbj0hMTtmb3IobGV0IHM9dGhpcy5fZWxlbWVudFN0YWNrLmxlbmd0aC0xO3M+PTA7cy0tKXtsZXQgaT10aGlzLl9lbGVtZW50U3RhY2tbc107aWYoIWV8fChJZShpLm5hbWUpP2kubmFtZT09ZTppLm5hbWUudG9Mb3dlckNhc2UoKT09ZS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gaS5lbmRTb3VyY2VTcGFuPXIsaS5zb3VyY2VTcGFuLmVuZD1yIT09bnVsbD9yLmVuZDppLnNvdXJjZVNwYW4uZW5kLHRoaXMuX2VsZW1lbnRTdGFjay5zcGxpY2Uocyx0aGlzLl9lbGVtZW50U3RhY2subGVuZ3RoLXMpLCFuO3RoaXMuZ2V0VGFnRGVmaW5pdGlvbihpLm5hbWUpLmNsb3NlZEJ5UGFyZW50fHwobj0hMCl9cmV0dXJuITF9X2NvbnN1bWVBdHRyKGUpe2xldCByPVJlKGUucGFydHNbMF0sZS5wYXJ0c1sxXSksbj1lLnNvdXJjZVNwYW4uZW5kLHM7dGhpcy5fcGVlay50eXBlPT09MTUmJihzPXRoaXMuX2FkdmFuY2UoKSk7bGV0IGk9XCJcIixhPVtdLHUsbztpZih0aGlzLl9wZWVrLnR5cGU9PT0xNilmb3IodT10aGlzLl9wZWVrLnNvdXJjZVNwYW4sbz10aGlzLl9wZWVrLnNvdXJjZVNwYW4uZW5kO3RoaXMuX3BlZWsudHlwZT09PTE2fHx0aGlzLl9wZWVrLnR5cGU9PT0xN3x8dGhpcy5fcGVlay50eXBlPT09OTspe2xldCBmPXRoaXMuX2FkdmFuY2UoKTthLnB1c2goZiksZi50eXBlPT09MTc/aSs9Zi5wYXJ0cy5qb2luKFwiXCIpLnJlcGxhY2UoLyYoW147XSspOy9nLERzKTpmLnR5cGU9PT05P2krPWYucGFydHNbMF06aSs9Zi5wYXJ0cy5qb2luKFwiXCIpLG89bj1mLnNvdXJjZVNwYW4uZW5kfXRoaXMuX3BlZWsudHlwZT09PTE1JiYobz1uPXRoaXMuX2FkdmFuY2UoKS5zb3VyY2VTcGFuLmVuZCk7bGV0IGw9dSYmbyYmbmV3IG0oKHM9PW51bGw/dm9pZCAwOnMuc291cmNlU3Bhbi5zdGFydCk/P3Uuc3RhcnQsbywocz09bnVsbD92b2lkIDA6cy5zb3VyY2VTcGFuLmZ1bGxTdGFydCk/P3UuZnVsbFN0YXJ0KTtyZXR1cm4gbmV3IEl0KHIsaSxuZXcgbShlLnNvdXJjZVNwYW4uc3RhcnQsbixlLnNvdXJjZVNwYW4uZnVsbFN0YXJ0KSxlLnNvdXJjZVNwYW4sbCxhLmxlbmd0aD4wP2E6dm9pZCAwLHZvaWQgMCl9X2dldFBhcmVudEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZWxlbWVudFN0YWNrLmxlbmd0aD4wP3RoaXMuX2VsZW1lbnRTdGFja1t0aGlzLl9lbGVtZW50U3RhY2subGVuZ3RoLTFdOm51bGx9X2FkZFRvUGFyZW50KGUpe2xldCByPXRoaXMuX2dldFBhcmVudEVsZW1lbnQoKTtyIT1udWxsP3IuY2hpbGRyZW4ucHVzaChlKTp0aGlzLnJvb3ROb2Rlcy5wdXNoKGUpfV9nZXRFbGVtZW50RnVsbE5hbWUoZSxyLG4pe2lmKGU9PT1cIlwiJiYoZT10aGlzLmdldFRhZ0RlZmluaXRpb24ocikuaW1wbGljaXROYW1lc3BhY2VQcmVmaXh8fFwiXCIsZT09PVwiXCImJm4hPW51bGwpKXtsZXQgcz1ldChuLm5hbWUpWzFdO3RoaXMuZ2V0VGFnRGVmaW5pdGlvbihzKS5wcmV2ZW50TmFtZXNwYWNlSW5oZXJpdGFuY2V8fChlPUllKG4ubmFtZSkpfXJldHVybiBSZShlLHIpfX07ZnVuY3Rpb24gX3ModCxlKXtyZXR1cm4gdC5sZW5ndGg+MCYmdFt0Lmxlbmd0aC0xXT09PWV9ZnVuY3Rpb24gRHModCxlKXtyZXR1cm4gTWVbZV0hPT12b2lkIDA/TWVbZV18fHQ6L14jeFthLWYwLTldKyQvaS50ZXN0KGUpP1N0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGUuc2xpY2UoMiksMTYpKTovXiNcXGQrJC8udGVzdChlKT9TdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChlLnNsaWNlKDEpLDEwKSk6dH12YXIgWXQ9Y2xhc3MgZXh0ZW5kcyBHdHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCRlKX1wYXJzZShlLHIsbixzPSExLGkpe3JldHVybiBzdXBlci5wYXJzZShlLHIsbixzLGkpfX07dmFyIEZyPW51bGwsemE9KCk9PihGcnx8KEZyPW5ldyBZdCksRnIpO2Z1bmN0aW9uIFByKHQsZT17fSl7bGV0e2NhblNlbGZDbG9zZTpyPSExLGFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M6bj0hMSxpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOnM9ITEsZ2V0VGFnQ29udGVudFR5cGU6aX09ZTtyZXR1cm4gemEoKS5wYXJzZSh0LFwiYW5ndWxhci1odG1sLXBhcnNlclwiLHt0b2tlbml6ZUV4cGFuc2lvbkZvcm1zOiExLGludGVycG9sYXRpb25Db25maWc6dm9pZCAwLGNhblNlbGZDbG9zZTpyLGFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M6bn0scyxpKX12YXIgamE9bmV3IFJlZ0V4cChcIl4oPzxzdGFydERlbGltaXRlcj4tezN9fFxcXFwrezN9KSg/PGxhbmd1YWdlPlteXFxcXG5dKilcXFxcbig/OnwoPzx2YWx1ZT4uKj8pXFxcXG4pKD88ZW5kRGVsaW1pdGVyPlxcXFxrPHN0YXJ0RGVsaW1pdGVyPnxcXFxcLnszfSlbXlxcXFxTXFxcXG5dKig/OlxcXFxufCQpXCIsXCJzXCIpO2Z1bmN0aW9uIEthKHQpe2xldCBlPXQubWF0Y2goamEpO2lmKCFlKXJldHVybntjb250ZW50OnR9O2xldHtzdGFydERlbGltaXRlcjpyLGxhbmd1YWdlOm4sdmFsdWU6cz1cIlwiLGVuZERlbGltaXRlcjppfT1lLmdyb3VwcyxhPW4udHJpbSgpfHxcInlhbWxcIjtpZihyPT09XCIrKytcIiYmKGE9XCJ0b21sXCIpLGEhPT1cInlhbWxcIiYmciE9PWkpcmV0dXJue2NvbnRlbnQ6dH07bGV0W3VdPWU7cmV0dXJue2Zyb250TWF0dGVyOnt0eXBlOlwiZnJvbnQtbWF0dGVyXCIsbGFuZzphLHZhbHVlOnMsc3RhcnREZWxpbWl0ZXI6cixlbmREZWxpbWl0ZXI6aSxyYXc6dS5yZXBsYWNlKC9cXG4kLyxcIlwiKX0sY29udGVudDp2KCExLHUsL1teXFxuXS9nLFwiIFwiKSt0LnNsaWNlKHUubGVuZ3RoKX19dmFyIHZzPUthO2Z1bmN0aW9uIFFhKHQsZSl7bGV0IHI9bmV3IFN5bnRheEVycm9yKHQrXCIgKFwiK2UubG9jLnN0YXJ0LmxpbmUrXCI6XCIrZS5sb2Muc3RhcnQuY29sdW1uK1wiKVwiKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihyLGUpfXZhciB5cz1RYTt2YXIgYnM9bmV3IFNldChbXCJhXCIsXCJhYmJyXCIsXCJhY3JvbnltXCIsXCJhZGRyZXNzXCIsXCJhcHBsZXRcIixcImFyZWFcIixcImFydGljbGVcIixcImFzaWRlXCIsXCJhdWRpb1wiLFwiYlwiLFwiYmFzZVwiLFwiYmFzZWZvbnRcIixcImJkaVwiLFwiYmRvXCIsXCJiZ3NvdW5kXCIsXCJiaWdcIixcImJsaW5rXCIsXCJibG9ja3F1b3RlXCIsXCJib2R5XCIsXCJiclwiLFwiYnV0dG9uXCIsXCJjYW52YXNcIixcImNhcHRpb25cIixcImNlbnRlclwiLFwiY2l0ZVwiLFwiY29kZVwiLFwiY29sXCIsXCJjb2xncm91cFwiLFwiY29tbWFuZFwiLFwiY29udGVudFwiLFwiZGF0YVwiLFwiZGF0YWxpc3RcIixcImRkXCIsXCJkZWxcIixcImRldGFpbHNcIixcImRmblwiLFwiZGlhbG9nXCIsXCJkaXJcIixcImRpdlwiLFwiZGxcIixcImR0XCIsXCJlbGVtZW50XCIsXCJlbVwiLFwiZW1iZWRcIixcImZpZWxkc2V0XCIsXCJmaWdjYXB0aW9uXCIsXCJmaWd1cmVcIixcImZvbnRcIixcImZvb3RlclwiLFwiZm9ybVwiLFwiZnJhbWVcIixcImZyYW1lc2V0XCIsXCJoMVwiLFwiaDJcIixcImgzXCIsXCJoNFwiLFwiaDVcIixcImg2XCIsXCJoZWFkXCIsXCJoZWFkZXJcIixcImhncm91cFwiLFwiaHJcIixcImh0bWxcIixcImlcIixcImlmcmFtZVwiLFwiaW1hZ2VcIixcImltZ1wiLFwiaW5wdXRcIixcImluc1wiLFwiaXNpbmRleFwiLFwia2JkXCIsXCJrZXlnZW5cIixcImxhYmVsXCIsXCJsZWdlbmRcIixcImxpXCIsXCJsaW5rXCIsXCJsaXN0aW5nXCIsXCJtYWluXCIsXCJtYXBcIixcIm1hcmtcIixcIm1hcnF1ZWVcIixcIm1hdGhcIixcIm1lbnVcIixcIm1lbnVpdGVtXCIsXCJtZXRhXCIsXCJtZXRlclwiLFwibXVsdGljb2xcIixcIm5hdlwiLFwibmV4dGlkXCIsXCJub2JyXCIsXCJub2VtYmVkXCIsXCJub2ZyYW1lc1wiLFwibm9zY3JpcHRcIixcIm9iamVjdFwiLFwib2xcIixcIm9wdGdyb3VwXCIsXCJvcHRpb25cIixcIm91dHB1dFwiLFwicFwiLFwicGFyYW1cIixcInBpY3R1cmVcIixcInBsYWludGV4dFwiLFwicHJlXCIsXCJwcm9ncmVzc1wiLFwicVwiLFwicmJcIixcInJiY1wiLFwicnBcIixcInJ0XCIsXCJydGNcIixcInJ1YnlcIixcInNcIixcInNhbXBcIixcInNjcmlwdFwiLFwic2VhcmNoXCIsXCJzZWN0aW9uXCIsXCJzZWxlY3RcIixcInNoYWRvd1wiLFwic2xvdFwiLFwic21hbGxcIixcInNvdXJjZVwiLFwic3BhY2VyXCIsXCJzcGFuXCIsXCJzdHJpa2VcIixcInN0cm9uZ1wiLFwic3R5bGVcIixcInN1YlwiLFwic3VtbWFyeVwiLFwic3VwXCIsXCJzdmdcIixcInRhYmxlXCIsXCJ0Ym9keVwiLFwidGRcIixcInRlbXBsYXRlXCIsXCJ0ZXh0YXJlYVwiLFwidGZvb3RcIixcInRoXCIsXCJ0aGVhZFwiLFwidGltZVwiLFwidGl0bGVcIixcInRyXCIsXCJ0cmFja1wiLFwidHRcIixcInVcIixcInVsXCIsXCJ2YXJcIixcInZpZGVvXCIsXCJ3YnJcIixcInhtcFwiXSk7dmFyIHp0PW5ldyBNYXAoW1tcIipcIixuZXcgU2V0KFtcImFjY2Vzc2tleVwiLFwiYXV0b2NhcGl0YWxpemVcIixcImF1dG9mb2N1c1wiLFwiY2xhc3NcIixcImNvbnRlbnRlZGl0YWJsZVwiLFwiZGlyXCIsXCJkcmFnZ2FibGVcIixcImVudGVya2V5aGludFwiLFwiaGlkZGVuXCIsXCJpZFwiLFwiaW5lcnRcIixcImlucHV0bW9kZVwiLFwiaXNcIixcIml0ZW1pZFwiLFwiaXRlbXByb3BcIixcIml0ZW1yZWZcIixcIml0ZW1zY29wZVwiLFwiaXRlbXR5cGVcIixcImxhbmdcIixcIm5vbmNlXCIsXCJwb3BvdmVyXCIsXCJzbG90XCIsXCJzcGVsbGNoZWNrXCIsXCJzdHlsZVwiLFwidGFiaW5kZXhcIixcInRpdGxlXCIsXCJ0cmFuc2xhdGVcIl0pXSxbXCJhXCIsbmV3IFNldChbXCJjaGFyc2V0XCIsXCJjb29yZHNcIixcImRvd25sb2FkXCIsXCJocmVmXCIsXCJocmVmbGFuZ1wiLFwibmFtZVwiLFwicGluZ1wiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwicmV2XCIsXCJzaGFwZVwiLFwidGFyZ2V0XCIsXCJ0eXBlXCJdKV0sW1wiYXBwbGV0XCIsbmV3IFNldChbXCJhbGlnblwiLFwiYWx0XCIsXCJhcmNoaXZlXCIsXCJjb2RlXCIsXCJjb2RlYmFzZVwiLFwiaGVpZ2h0XCIsXCJoc3BhY2VcIixcIm5hbWVcIixcIm9iamVjdFwiLFwidnNwYWNlXCIsXCJ3aWR0aFwiXSldLFtcImFyZWFcIixuZXcgU2V0KFtcImFsdFwiLFwiY29vcmRzXCIsXCJkb3dubG9hZFwiLFwiaHJlZlwiLFwiaHJlZmxhbmdcIixcIm5vaHJlZlwiLFwicGluZ1wiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwic2hhcGVcIixcInRhcmdldFwiLFwidHlwZVwiXSldLFtcImF1ZGlvXCIsbmV3IFNldChbXCJhdXRvcGxheVwiLFwiY29udHJvbHNcIixcImNyb3Nzb3JpZ2luXCIsXCJsb29wXCIsXCJtdXRlZFwiLFwicHJlbG9hZFwiLFwic3JjXCJdKV0sW1wiYmFzZVwiLG5ldyBTZXQoW1wiaHJlZlwiLFwidGFyZ2V0XCJdKV0sW1wiYmFzZWZvbnRcIixuZXcgU2V0KFtcImNvbG9yXCIsXCJmYWNlXCIsXCJzaXplXCJdKV0sW1wiYmxvY2txdW90ZVwiLG5ldyBTZXQoW1wiY2l0ZVwiXSldLFtcImJvZHlcIixuZXcgU2V0KFtcImFsaW5rXCIsXCJiYWNrZ3JvdW5kXCIsXCJiZ2NvbG9yXCIsXCJsaW5rXCIsXCJ0ZXh0XCIsXCJ2bGlua1wiXSldLFtcImJyXCIsbmV3IFNldChbXCJjbGVhclwiXSldLFtcImJ1dHRvblwiLG5ldyBTZXQoW1wiZGlzYWJsZWRcIixcImZvcm1cIixcImZvcm1hY3Rpb25cIixcImZvcm1lbmN0eXBlXCIsXCJmb3JtbWV0aG9kXCIsXCJmb3Jtbm92YWxpZGF0ZVwiLFwiZm9ybXRhcmdldFwiLFwibmFtZVwiLFwicG9wb3ZlcnRhcmdldFwiLFwicG9wb3ZlcnRhcmdldGFjdGlvblwiLFwidHlwZVwiLFwidmFsdWVcIl0pXSxbXCJjYW52YXNcIixuZXcgU2V0KFtcImhlaWdodFwiLFwid2lkdGhcIl0pXSxbXCJjYXB0aW9uXCIsbmV3IFNldChbXCJhbGlnblwiXSldLFtcImNvbFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInNwYW5cIixcInZhbGlnblwiLFwid2lkdGhcIl0pXSxbXCJjb2xncm91cFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInNwYW5cIixcInZhbGlnblwiLFwid2lkdGhcIl0pXSxbXCJkYXRhXCIsbmV3IFNldChbXCJ2YWx1ZVwiXSldLFtcImRlbFwiLG5ldyBTZXQoW1wiY2l0ZVwiLFwiZGF0ZXRpbWVcIl0pXSxbXCJkZXRhaWxzXCIsbmV3IFNldChbXCJvcGVuXCJdKV0sW1wiZGlhbG9nXCIsbmV3IFNldChbXCJvcGVuXCJdKV0sW1wiZGlyXCIsbmV3IFNldChbXCJjb21wYWN0XCJdKV0sW1wiZGl2XCIsbmV3IFNldChbXCJhbGlnblwiXSldLFtcImRsXCIsbmV3IFNldChbXCJjb21wYWN0XCJdKV0sW1wiZW1iZWRcIixuZXcgU2V0KFtcImhlaWdodFwiLFwic3JjXCIsXCJ0eXBlXCIsXCJ3aWR0aFwiXSldLFtcImZpZWxkc2V0XCIsbmV3IFNldChbXCJkaXNhYmxlZFwiLFwiZm9ybVwiLFwibmFtZVwiXSldLFtcImZvbnRcIixuZXcgU2V0KFtcImNvbG9yXCIsXCJmYWNlXCIsXCJzaXplXCJdKV0sW1wiZm9ybVwiLG5ldyBTZXQoW1wiYWNjZXB0XCIsXCJhY2NlcHQtY2hhcnNldFwiLFwiYWN0aW9uXCIsXCJhdXRvY29tcGxldGVcIixcImVuY3R5cGVcIixcIm1ldGhvZFwiLFwibmFtZVwiLFwibm92YWxpZGF0ZVwiLFwidGFyZ2V0XCJdKV0sW1wiZnJhbWVcIixuZXcgU2V0KFtcImZyYW1lYm9yZGVyXCIsXCJsb25nZGVzY1wiLFwibWFyZ2luaGVpZ2h0XCIsXCJtYXJnaW53aWR0aFwiLFwibmFtZVwiLFwibm9yZXNpemVcIixcInNjcm9sbGluZ1wiLFwic3JjXCJdKV0sW1wiZnJhbWVzZXRcIixuZXcgU2V0KFtcImNvbHNcIixcInJvd3NcIl0pXSxbXCJoMVwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoMlwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoM1wiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNVwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoNlwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJoZWFkXCIsbmV3IFNldChbXCJwcm9maWxlXCJdKV0sW1wiaHJcIixuZXcgU2V0KFtcImFsaWduXCIsXCJub3NoYWRlXCIsXCJzaXplXCIsXCJ3aWR0aFwiXSldLFtcImh0bWxcIixuZXcgU2V0KFtcIm1hbmlmZXN0XCIsXCJ2ZXJzaW9uXCJdKV0sW1wiaWZyYW1lXCIsbmV3IFNldChbXCJhbGlnblwiLFwiYWxsb3dcIixcImFsbG93ZnVsbHNjcmVlblwiLFwiYWxsb3dwYXltZW50cmVxdWVzdFwiLFwiYWxsb3d1c2VybWVkaWFcIixcImZyYW1lYm9yZGVyXCIsXCJoZWlnaHRcIixcImxvYWRpbmdcIixcImxvbmdkZXNjXCIsXCJtYXJnaW5oZWlnaHRcIixcIm1hcmdpbndpZHRoXCIsXCJuYW1lXCIsXCJyZWZlcnJlcnBvbGljeVwiLFwic2FuZGJveFwiLFwic2Nyb2xsaW5nXCIsXCJzcmNcIixcInNyY2RvY1wiLFwid2lkdGhcIl0pXSxbXCJpbWdcIixuZXcgU2V0KFtcImFsaWduXCIsXCJhbHRcIixcImJvcmRlclwiLFwiY3Jvc3NvcmlnaW5cIixcImRlY29kaW5nXCIsXCJmZXRjaHByaW9yaXR5XCIsXCJoZWlnaHRcIixcImhzcGFjZVwiLFwiaXNtYXBcIixcImxvYWRpbmdcIixcImxvbmdkZXNjXCIsXCJuYW1lXCIsXCJyZWZlcnJlcnBvbGljeVwiLFwic2l6ZXNcIixcInNyY1wiLFwic3Jjc2V0XCIsXCJ1c2VtYXBcIixcInZzcGFjZVwiLFwid2lkdGhcIl0pXSxbXCJpbnB1dFwiLG5ldyBTZXQoW1wiYWNjZXB0XCIsXCJhbGlnblwiLFwiYWx0XCIsXCJhdXRvY29tcGxldGVcIixcImNoZWNrZWRcIixcImRpcm5hbWVcIixcImRpc2FibGVkXCIsXCJmb3JtXCIsXCJmb3JtYWN0aW9uXCIsXCJmb3JtZW5jdHlwZVwiLFwiZm9ybW1ldGhvZFwiLFwiZm9ybW5vdmFsaWRhdGVcIixcImZvcm10YXJnZXRcIixcImhlaWdodFwiLFwiaXNtYXBcIixcImxpc3RcIixcIm1heFwiLFwibWF4bGVuZ3RoXCIsXCJtaW5cIixcIm1pbmxlbmd0aFwiLFwibXVsdGlwbGVcIixcIm5hbWVcIixcInBhdHRlcm5cIixcInBsYWNlaG9sZGVyXCIsXCJwb3BvdmVydGFyZ2V0XCIsXCJwb3BvdmVydGFyZ2V0YWN0aW9uXCIsXCJyZWFkb25seVwiLFwicmVxdWlyZWRcIixcInNpemVcIixcInNyY1wiLFwic3RlcFwiLFwidHlwZVwiLFwidXNlbWFwXCIsXCJ2YWx1ZVwiLFwid2lkdGhcIl0pXSxbXCJpbnNcIixuZXcgU2V0KFtcImNpdGVcIixcImRhdGV0aW1lXCJdKV0sW1wiaXNpbmRleFwiLG5ldyBTZXQoW1wicHJvbXB0XCJdKV0sW1wibGFiZWxcIixuZXcgU2V0KFtcImZvclwiLFwiZm9ybVwiXSldLFtcImxlZ2VuZFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJsaVwiLG5ldyBTZXQoW1widHlwZVwiLFwidmFsdWVcIl0pXSxbXCJsaW5rXCIsbmV3IFNldChbXCJhc1wiLFwiYmxvY2tpbmdcIixcImNoYXJzZXRcIixcImNvbG9yXCIsXCJjcm9zc29yaWdpblwiLFwiZGlzYWJsZWRcIixcImZldGNocHJpb3JpdHlcIixcImhyZWZcIixcImhyZWZsYW5nXCIsXCJpbWFnZXNpemVzXCIsXCJpbWFnZXNyY3NldFwiLFwiaW50ZWdyaXR5XCIsXCJtZWRpYVwiLFwicmVmZXJyZXJwb2xpY3lcIixcInJlbFwiLFwicmV2XCIsXCJzaXplc1wiLFwidGFyZ2V0XCIsXCJ0eXBlXCJdKV0sW1wibWFwXCIsbmV3IFNldChbXCJuYW1lXCJdKV0sW1wibWVudVwiLG5ldyBTZXQoW1wiY29tcGFjdFwiXSldLFtcIm1ldGFcIixuZXcgU2V0KFtcImNoYXJzZXRcIixcImNvbnRlbnRcIixcImh0dHAtZXF1aXZcIixcIm1lZGlhXCIsXCJuYW1lXCIsXCJzY2hlbWVcIl0pXSxbXCJtZXRlclwiLG5ldyBTZXQoW1wiaGlnaFwiLFwibG93XCIsXCJtYXhcIixcIm1pblwiLFwib3B0aW11bVwiLFwidmFsdWVcIl0pXSxbXCJvYmplY3RcIixuZXcgU2V0KFtcImFsaWduXCIsXCJhcmNoaXZlXCIsXCJib3JkZXJcIixcImNsYXNzaWRcIixcImNvZGViYXNlXCIsXCJjb2RldHlwZVwiLFwiZGF0YVwiLFwiZGVjbGFyZVwiLFwiZm9ybVwiLFwiaGVpZ2h0XCIsXCJoc3BhY2VcIixcIm5hbWVcIixcInN0YW5kYnlcIixcInR5cGVcIixcInR5cGVtdXN0bWF0Y2hcIixcInVzZW1hcFwiLFwidnNwYWNlXCIsXCJ3aWR0aFwiXSldLFtcIm9sXCIsbmV3IFNldChbXCJjb21wYWN0XCIsXCJyZXZlcnNlZFwiLFwic3RhcnRcIixcInR5cGVcIl0pXSxbXCJvcHRncm91cFwiLG5ldyBTZXQoW1wiZGlzYWJsZWRcIixcImxhYmVsXCJdKV0sW1wib3B0aW9uXCIsbmV3IFNldChbXCJkaXNhYmxlZFwiLFwibGFiZWxcIixcInNlbGVjdGVkXCIsXCJ2YWx1ZVwiXSldLFtcIm91dHB1dFwiLG5ldyBTZXQoW1wiZm9yXCIsXCJmb3JtXCIsXCJuYW1lXCJdKV0sW1wicFwiLG5ldyBTZXQoW1wiYWxpZ25cIl0pXSxbXCJwYXJhbVwiLG5ldyBTZXQoW1wibmFtZVwiLFwidHlwZVwiLFwidmFsdWVcIixcInZhbHVldHlwZVwiXSldLFtcInByZVwiLG5ldyBTZXQoW1wid2lkdGhcIl0pXSxbXCJwcm9ncmVzc1wiLG5ldyBTZXQoW1wibWF4XCIsXCJ2YWx1ZVwiXSldLFtcInFcIixuZXcgU2V0KFtcImNpdGVcIl0pXSxbXCJzY3JpcHRcIixuZXcgU2V0KFtcImFzeW5jXCIsXCJibG9ja2luZ1wiLFwiY2hhcnNldFwiLFwiY3Jvc3NvcmlnaW5cIixcImRlZmVyXCIsXCJmZXRjaHByaW9yaXR5XCIsXCJpbnRlZ3JpdHlcIixcImxhbmd1YWdlXCIsXCJub21vZHVsZVwiLFwicmVmZXJyZXJwb2xpY3lcIixcInNyY1wiLFwidHlwZVwiXSldLFtcInNlbGVjdFwiLG5ldyBTZXQoW1wiYXV0b2NvbXBsZXRlXCIsXCJkaXNhYmxlZFwiLFwiZm9ybVwiLFwibXVsdGlwbGVcIixcIm5hbWVcIixcInJlcXVpcmVkXCIsXCJzaXplXCJdKV0sW1wic2xvdFwiLG5ldyBTZXQoW1wibmFtZVwiXSldLFtcInNvdXJjZVwiLG5ldyBTZXQoW1wiaGVpZ2h0XCIsXCJtZWRpYVwiLFwic2l6ZXNcIixcInNyY1wiLFwic3Jjc2V0XCIsXCJ0eXBlXCIsXCJ3aWR0aFwiXSldLFtcInN0eWxlXCIsbmV3IFNldChbXCJibG9ja2luZ1wiLFwibWVkaWFcIixcInR5cGVcIl0pXSxbXCJ0YWJsZVwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImJnY29sb3JcIixcImJvcmRlclwiLFwiY2VsbHBhZGRpbmdcIixcImNlbGxzcGFjaW5nXCIsXCJmcmFtZVwiLFwicnVsZXNcIixcInN1bW1hcnlcIixcIndpZHRoXCJdKV0sW1widGJvZHlcIixuZXcgU2V0KFtcImFsaWduXCIsXCJjaGFyXCIsXCJjaGFyb2ZmXCIsXCJ2YWxpZ25cIl0pXSxbXCJ0ZFwiLG5ldyBTZXQoW1wiYWJiclwiLFwiYWxpZ25cIixcImF4aXNcIixcImJnY29sb3JcIixcImNoYXJcIixcImNoYXJvZmZcIixcImNvbHNwYW5cIixcImhlYWRlcnNcIixcImhlaWdodFwiLFwibm93cmFwXCIsXCJyb3dzcGFuXCIsXCJzY29wZVwiLFwidmFsaWduXCIsXCJ3aWR0aFwiXSldLFtcInRleHRhcmVhXCIsbmV3IFNldChbXCJhdXRvY29tcGxldGVcIixcImNvbHNcIixcImRpcm5hbWVcIixcImRpc2FibGVkXCIsXCJmb3JtXCIsXCJtYXhsZW5ndGhcIixcIm1pbmxlbmd0aFwiLFwibmFtZVwiLFwicGxhY2Vob2xkZXJcIixcInJlYWRvbmx5XCIsXCJyZXF1aXJlZFwiLFwicm93c1wiLFwid3JhcFwiXSldLFtcInRmb290XCIsbmV3IFNldChbXCJhbGlnblwiLFwiY2hhclwiLFwiY2hhcm9mZlwiLFwidmFsaWduXCJdKV0sW1widGhcIixuZXcgU2V0KFtcImFiYnJcIixcImFsaWduXCIsXCJheGlzXCIsXCJiZ2NvbG9yXCIsXCJjaGFyXCIsXCJjaGFyb2ZmXCIsXCJjb2xzcGFuXCIsXCJoZWFkZXJzXCIsXCJoZWlnaHRcIixcIm5vd3JhcFwiLFwicm93c3BhblwiLFwic2NvcGVcIixcInZhbGlnblwiLFwid2lkdGhcIl0pXSxbXCJ0aGVhZFwiLG5ldyBTZXQoW1wiYWxpZ25cIixcImNoYXJcIixcImNoYXJvZmZcIixcInZhbGlnblwiXSldLFtcInRpbWVcIixuZXcgU2V0KFtcImRhdGV0aW1lXCJdKV0sW1widHJcIixuZXcgU2V0KFtcImFsaWduXCIsXCJiZ2NvbG9yXCIsXCJjaGFyXCIsXCJjaGFyb2ZmXCIsXCJ2YWxpZ25cIl0pXSxbXCJ0cmFja1wiLG5ldyBTZXQoW1wiZGVmYXVsdFwiLFwia2luZFwiLFwibGFiZWxcIixcInNyY1wiLFwic3JjbGFuZ1wiXSldLFtcInVsXCIsbmV3IFNldChbXCJjb21wYWN0XCIsXCJ0eXBlXCJdKV0sW1widmlkZW9cIixuZXcgU2V0KFtcImF1dG9wbGF5XCIsXCJjb250cm9sc1wiLFwiY3Jvc3NvcmlnaW5cIixcImhlaWdodFwiLFwibG9vcFwiLFwibXV0ZWRcIixcInBsYXlzaW5saW5lXCIsXCJwb3N0ZXJcIixcInByZWxvYWRcIixcInNyY1wiLFwid2lkdGhcIl0pXV0pO3ZhciBqdD17YXR0cnM6ITAsY2hpbGRyZW46ITB9LHdzPW5ldyBTZXQoW1wicGFyZW50XCJdKSxLdD1jbGFzcyB0e2NvbnN0cnVjdG9yKGU9e30pe2ZvcihsZXQgciBvZiBuZXcgU2V0KFsuLi53cywuLi5PYmplY3Qua2V5cyhlKV0pKXRoaXMuc2V0UHJvcGVydHkocixlW3JdKX1zZXRQcm9wZXJ0eShlLHIpe2lmKHRoaXNbZV0hPT1yKXtpZihlIGluIGp0JiYocj1yLm1hcChuPT50aGlzLmNyZWF0ZUNoaWxkKG4pKSksIXdzLmhhcyhlKSl7dGhpc1tlXT1yO3JldHVybn1PYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9fW1hcChlKXtsZXQgcjtmb3IobGV0IG4gaW4ganQpe2xldCBzPXRoaXNbbl07aWYocyl7bGV0IGk9WGEocyxhPT5hLm1hcChlKSk7ciE9PXMmJihyfHwocj1uZXcgdCh7cGFyZW50OnRoaXMucGFyZW50fSkpLHIuc2V0UHJvcGVydHkobixpKSl9fWlmKHIpZm9yKGxldCBuIGluIHRoaXMpbiBpbiBqdHx8KHJbbl09dGhpc1tuXSk7cmV0dXJuIGUocnx8dGhpcyl9d2FsayhlKXtmb3IobGV0IHIgaW4ganQpe2xldCBuPXRoaXNbcl07aWYobilmb3IobGV0IHM9MDtzPG4ubGVuZ3RoO3MrKyluW3NdLndhbGsoZSl9ZSh0aGlzKX1jcmVhdGVDaGlsZChlKXtsZXQgcj1lIGluc3RhbmNlb2YgdD9lLmNsb25lKCk6bmV3IHQoZSk7cmV0dXJuIHIuc2V0UHJvcGVydHkoXCJwYXJlbnRcIix0aGlzKSxyfWluc2VydENoaWxkQmVmb3JlKGUscil7dGhpcy5jaGlsZHJlbi5zcGxpY2UodGhpcy5jaGlsZHJlbi5pbmRleE9mKGUpLDAsdGhpcy5jcmVhdGVDaGlsZChyKSl9cmVtb3ZlQ2hpbGQoZSl7dGhpcy5jaGlsZHJlbi5zcGxpY2UodGhpcy5jaGlsZHJlbi5pbmRleE9mKGUpLDEpfXJlcGxhY2VDaGlsZChlLHIpe3RoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5pbmRleE9mKGUpXT10aGlzLmNyZWF0ZUNoaWxkKHIpfWNsb25lKCl7cmV0dXJuIG5ldyB0KHRoaXMpfWdldCBmaXJzdENoaWxkKCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5jaGlsZHJlbik9PW51bGw/dm9pZCAwOmVbMF19Z2V0IGxhc3RDaGlsZCgpe3ZhciBlO3JldHVybihlPXRoaXMuY2hpbGRyZW4pPT1udWxsP3ZvaWQgMDplW3RoaXMuY2hpbGRyZW4ubGVuZ3RoLTFdfWdldCBwcmV2KCl7dmFyIGU7cmV0dXJuKGU9dGhpcy5wYXJlbnQpPT1udWxsP3ZvaWQgMDplLmNoaWxkcmVuW3RoaXMucGFyZW50LmNoaWxkcmVuLmluZGV4T2YodGhpcyktMV19Z2V0IG5leHQoKXt2YXIgZTtyZXR1cm4oZT10aGlzLnBhcmVudCk9PW51bGw/dm9pZCAwOmUuY2hpbGRyZW5bdGhpcy5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZih0aGlzKSsxXX1nZXQgcmF3TmFtZSgpe3JldHVybiB0aGlzLmhhc0V4cGxpY2l0TmFtZXNwYWNlP3RoaXMuZnVsbE5hbWU6dGhpcy5uYW1lfWdldCBmdWxsTmFtZSgpe3JldHVybiB0aGlzLm5hbWVzcGFjZT90aGlzLm5hbWVzcGFjZStcIjpcIit0aGlzLm5hbWU6dGhpcy5uYW1lfWdldCBhdHRyTWFwKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyh0aGlzLmF0dHJzLm1hcChlPT5bZS5mdWxsTmFtZSxlLnZhbHVlXSkpfX07ZnVuY3Rpb24gWGEodCxlKXtsZXQgcj10Lm1hcChlKTtyZXR1cm4gci5zb21lKChuLHMpPT5uIT09dFtzXSk/cjp0fXZhciBKYT1be3JlZ2V4Oi9eKFxcW2lmKFteXFxdXSopXT4pKC4qPyk8IVxccypcXFtlbmRpZl0kL3MscGFyc2U6WmF9LHtyZWdleDovXlxcW2lmKFteXFxdXSopXT48ISQvLHBhcnNlOmV1fSx7cmVnZXg6L148IVxccypcXFtlbmRpZl0kLyxwYXJzZTp0dX1dO2Z1bmN0aW9uIFRzKHQsZSl7aWYodC52YWx1ZSlmb3IobGV0e3JlZ2V4OnIscGFyc2U6bn1vZiBKYSl7bGV0IHM9dC52YWx1ZS5tYXRjaChyKTtpZihzKXJldHVybiBuKHQsZSxzKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBaYSh0LGUscil7bGV0WyxuLHMsaV09cixhPTQrbi5sZW5ndGgsdT10LnNvdXJjZVNwYW4uc3RhcnQubW92ZUJ5KGEpLG89dS5tb3ZlQnkoaS5sZW5ndGgpLFtwLGxdPSgoKT0+e3RyeXtyZXR1cm5bITAsZShpLHUpLmNoaWxkcmVuXX1jYXRjaHtyZXR1cm5bITEsW3t0eXBlOlwidGV4dFwiLHZhbHVlOmksc291cmNlU3BhbjpuZXcgbSh1LG8pfV1dfX0pKCk7cmV0dXJue3R5cGU6XCJpZUNvbmRpdGlvbmFsQ29tbWVudFwiLGNvbXBsZXRlOnAsY2hpbGRyZW46bCxjb25kaXRpb246dighMSxzLnRyaW0oKSwvXFxzKy9nLFwiIFwiKSxzb3VyY2VTcGFuOnQuc291cmNlU3BhbixzdGFydFNvdXJjZVNwYW46bmV3IG0odC5zb3VyY2VTcGFuLnN0YXJ0LHUpLGVuZFNvdXJjZVNwYW46bmV3IG0obyx0LnNvdXJjZVNwYW4uZW5kKX19ZnVuY3Rpb24gZXUodCxlLHIpe2xldFssbl09cjtyZXR1cm57dHlwZTpcImllQ29uZGl0aW9uYWxTdGFydENvbW1lbnRcIixjb25kaXRpb246dighMSxuLnRyaW0oKSwvXFxzKy9nLFwiIFwiKSxzb3VyY2VTcGFuOnQuc291cmNlU3Bhbn19ZnVuY3Rpb24gdHUodCl7cmV0dXJue3R5cGU6XCJpZUNvbmRpdGlvbmFsRW5kQ29tbWVudFwiLHNvdXJjZVNwYW46dC5zb3VyY2VTcGFufX1mdW5jdGlvbiBrcyh0LGUscil7bGV0e25hbWU6bixjYW5TZWxmQ2xvc2U6cz0hMCxub3JtYWxpemVUYWdOYW1lOmk9ITEsbm9ybWFsaXplQXR0cmlidXRlTmFtZTphPSExLGFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M6dT0hMSxpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOm89ITEsc2hvdWxkUGFyc2VBc1Jhd1RleHQ6cH09ZSx7cm9vdE5vZGVzOmwsZXJyb3JzOmZ9PVByKHQse2NhblNlbGZDbG9zZTpzLGFsbG93SHRtQ29tcG9uZW50Q2xvc2luZ1RhZ3M6dSxpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOm8sZ2V0VGFnQ29udGVudFR5cGU6cD8oLi4uYyk9PnAoLi4uYyk/TC5SQVdfVEVYVDp2b2lkIDA6dm9pZCAwfSk7aWYobj09PVwidnVlXCIpe2lmKGwuc29tZShiPT5iLnR5cGU9PT1cImRvY1R5cGVcIiYmYi52YWx1ZT09PVwiaHRtbFwifHxiLnR5cGU9PT1cImVsZW1lbnRcIiYmYi5uYW1lLnRvTG93ZXJDYXNlKCk9PT1cImh0bWxcIikpcmV0dXJuIGtzKHQsTHMscik7bGV0IGcseT0oKT0+Zz8/KGc9UHIodCx7Y2FuU2VsZkNsb3NlOnMsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczp1LGlzVGFnTmFtZUNhc2VTZW5zaXRpdmU6b30pKSxJPWI9PnkoKS5yb290Tm9kZXMuZmluZCgoe3N0YXJ0U291cmNlU3BhbjokfSk9PiQmJiQuc3RhcnQub2Zmc2V0PT09Yi5zdGFydFNvdXJjZVNwYW4uc3RhcnQub2Zmc2V0KT8/Yjtmb3IobGV0W2IsJF1vZiBsLmVudHJpZXMoKSl7bGV0e2VuZFNvdXJjZVNwYW46JHIsc3RhcnRTb3VyY2VTcGFuOklzfT0kO2lmKCRyPT09bnVsbClmPXkoKS5lcnJvcnMsbFtiXT1JKCQpO2Vsc2UgaWYocnUoJCxyKSl7bGV0IE1yPXkoKS5lcnJvcnMuZmluZChPcj0+T3Iuc3Bhbi5zdGFydC5vZmZzZXQ+SXMuc3RhcnQub2Zmc2V0JiZPci5zcGFuLnN0YXJ0Lm9mZnNldDwkci5lbmQub2Zmc2V0KTtNciYmeHMoTXIpLGxbYl09SSgkKX19fWYubGVuZ3RoPjAmJnhzKGZbMF0pO2xldCBkPWM9PntsZXQgZz1jLm5hbWUuc3RhcnRzV2l0aChcIjpcIik/Yy5uYW1lLnNsaWNlKDEpLnNwbGl0KFwiOlwiKVswXTpudWxsLHk9Yy5uYW1lU3Bhbi50b1N0cmluZygpLEk9ZyE9PW51bGwmJnkuc3RhcnRzV2l0aChgJHtnfTpgKSxiPUk/eS5zbGljZShnLmxlbmd0aCsxKTp5O2MubmFtZT1iLGMubmFtZXNwYWNlPWcsYy5oYXNFeHBsaWNpdE5hbWVzcGFjZT1JfSxDPWM9Pntzd2l0Y2goYy50eXBlKXtjYXNlXCJlbGVtZW50XCI6ZChjKTtmb3IobGV0IGcgb2YgYy5hdHRycylkKGcpLGcudmFsdWVTcGFuPyhnLnZhbHVlPWcudmFsdWVTcGFuLnRvU3RyaW5nKCksL1tcIiddLy50ZXN0KGcudmFsdWVbMF0pJiYoZy52YWx1ZT1nLnZhbHVlLnNsaWNlKDEsLTEpKSk6Zy52YWx1ZT1udWxsO2JyZWFrO2Nhc2VcImNvbW1lbnRcIjpjLnZhbHVlPWMuc291cmNlU3Bhbi50b1N0cmluZygpLnNsaWNlKDQsLTMpO2JyZWFrO2Nhc2VcInRleHRcIjpjLnZhbHVlPWMuc291cmNlU3Bhbi50b1N0cmluZygpO2JyZWFrfX0sRT0oYyxnKT0+e2xldCB5PWMudG9Mb3dlckNhc2UoKTtyZXR1cm4gZyh5KT95OmN9LEE9Yz0+e2lmKGMudHlwZT09PVwiZWxlbWVudFwiJiYoaSYmKCFjLm5hbWVzcGFjZXx8Yy5uYW1lc3BhY2U9PT1jLnRhZ0RlZmluaXRpb24uaW1wbGljaXROYW1lc3BhY2VQcmVmaXh8fHBlKGMpKSYmKGMubmFtZT1FKGMubmFtZSxnPT5icy5oYXMoZykpKSxhKSlmb3IobGV0IGcgb2YgYy5hdHRycylnLm5hbWVzcGFjZXx8KGcubmFtZT1FKGcubmFtZSx5PT56dC5oYXMoYy5uYW1lKSYmKHp0LmdldChcIipcIikuaGFzKHkpfHx6dC5nZXQoYy5uYW1lKS5oYXMoeSkpKSl9LEY9Yz0+e2Muc291cmNlU3BhbiYmYy5lbmRTb3VyY2VTcGFuJiYoYy5zb3VyY2VTcGFuPW5ldyBtKGMuc291cmNlU3Bhbi5zdGFydCxjLmVuZFNvdXJjZVNwYW4uZW5kKSl9LFQ9Yz0+e2lmKGMudHlwZT09PVwiZWxlbWVudFwiKXtsZXQgZz0kZShvP2MubmFtZTpjLm5hbWUudG9Mb3dlckNhc2UoKSk7IWMubmFtZXNwYWNlfHxjLm5hbWVzcGFjZT09PWcuaW1wbGljaXROYW1lc3BhY2VQcmVmaXh8fHBlKGMpP2MudGFnRGVmaW5pdGlvbj1nOmMudGFnRGVmaW5pdGlvbj0kZShcIlwiKX19O3JldHVybiBPdChuZXcgY2xhc3MgZXh0ZW5kcyBydHt2aXNpdChjKXtDKGMpLFQoYyksQShjKSxGKGMpfX0sbCksbH1mdW5jdGlvbiBydSh0LGUpe3ZhciBuO2lmKHQudHlwZSE9PVwiZWxlbWVudFwifHx0Lm5hbWUhPT1cInRlbXBsYXRlXCIpcmV0dXJuITE7bGV0IHI9KG49dC5hdHRycy5maW5kKHM9PnMubmFtZT09PVwibGFuZ1wiKSk9PW51bGw/dm9pZCAwOm4udmFsdWU7cmV0dXJuIXJ8fExlKGUse2xhbmd1YWdlOnJ9KT09PVwiaHRtbFwifWZ1bmN0aW9uIHhzKHQpe2xldHttc2c6ZSxzcGFuOntzdGFydDpyLGVuZDpufX09dDt0aHJvdyB5cyhlLHtsb2M6e3N0YXJ0OntsaW5lOnIubGluZSsxLGNvbHVtbjpyLmNvbCsxfSxlbmQ6e2xpbmU6bi5saW5lKzEsY29sdW1uOm4uY29sKzF9fSxjYXVzZTp0fSl9ZnVuY3Rpb24gQnModCxlLHI9e30sbj0hMCl7bGV0e2Zyb250TWF0dGVyOnMsY29udGVudDppfT1uP3ZzKHQpOntmcm9udE1hdHRlcjpudWxsLGNvbnRlbnQ6dH0sYT1uZXcgbWUodCxyLmZpbGVwYXRoKSx1PW5ldyBlZShhLDAsMCwwKSxvPXUubW92ZUJ5KHQubGVuZ3RoKSxwPXt0eXBlOlwicm9vdFwiLHNvdXJjZVNwYW46bmV3IG0odSxvKSxjaGlsZHJlbjprcyhpLGUscil9O2lmKHMpe2xldCBkPW5ldyBlZShhLDAsMCwwKSxDPWQubW92ZUJ5KHMucmF3Lmxlbmd0aCk7cy5zb3VyY2VTcGFuPW5ldyBtKGQsQykscC5jaGlsZHJlbi51bnNoaWZ0KHMpfWxldCBsPW5ldyBLdChwKSxmPShkLEMpPT57bGV0e29mZnNldDpFfT1DLEE9dighMSx0LnNsaWNlKDAsRSksL1teXFxuXFxyXS9nLFwiIFwiKSxUPUJzKEErZCxlLHIsITEpO1Quc291cmNlU3Bhbj1uZXcgbShDLGtlKCExLFQuY2hpbGRyZW4sLTEpLnNvdXJjZVNwYW4uZW5kKTtsZXQgYz1ULmNoaWxkcmVuWzBdO3JldHVybiBjLmxlbmd0aD09PUU/VC5jaGlsZHJlbi5zaGlmdCgpOihjLnNvdXJjZVNwYW49bmV3IG0oYy5zb3VyY2VTcGFuLnN0YXJ0Lm1vdmVCeShFKSxjLnNvdXJjZVNwYW4uZW5kKSxjLnZhbHVlPWMudmFsdWUuc2xpY2UoRSkpLFR9O3JldHVybiBsLndhbGsoZD0+e2lmKGQudHlwZT09PVwiY29tbWVudFwiKXtsZXQgQz1UcyhkLGYpO0MmJmQucGFyZW50LnJlcGxhY2VDaGlsZChkLEMpfX0pLGx9ZnVuY3Rpb24gUXQodCl7cmV0dXJue3BhcnNlOihlLHIpPT5CcyhlLHQsciksaGFzUHJhZ21hOkJuLGFzdEZvcm1hdDpcImh0bWxcIixsb2NTdGFydDp0ZSxsb2NFbmQ6cmV9fXZhciBMcz17bmFtZTpcImh0bWxcIixub3JtYWxpemVUYWdOYW1lOiEwLG5vcm1hbGl6ZUF0dHJpYnV0ZU5hbWU6ITAsYWxsb3dIdG1Db21wb25lbnRDbG9zaW5nVGFnczohMH0sbnU9UXQoTHMpLHN1PVF0KHtuYW1lOlwiYW5ndWxhclwifSksaXU9UXQoe25hbWU6XCJ2dWVcIixpc1RhZ05hbWVDYXNlU2Vuc2l0aXZlOiEwLHNob3VsZFBhcnNlQXNSYXdUZXh0KHQsZSxyLG4pe3JldHVybiB0LnRvTG93ZXJDYXNlKCkhPT1cImh0bWxcIiYmIXImJih0IT09XCJ0ZW1wbGF0ZVwifHxuLnNvbWUoKHtuYW1lOnMsdmFsdWU6aX0pPT5zPT09XCJsYW5nXCImJmkhPT1cImh0bWxcIiYmaSE9PVwiXCImJmkhPT12b2lkIDApKX19KSxhdT1RdCh7bmFtZTpcImx3Y1wiLGNhblNlbGZDbG9zZTohMX0pO3ZhciBGcz1be2xpbmd1aXN0TGFuZ3VhZ2VJZDoxNDYsbmFtZTpcIkFuZ3VsYXJcIix0eXBlOlwibWFya3VwXCIsdG1TY29wZTpcInRleHQuaHRtbC5iYXNpY1wiLGFjZU1vZGU6XCJodG1sXCIsY29kZW1pcnJvck1vZGU6XCJodG1sbWl4ZWRcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L2h0bWxcIixjb2xvcjpcIiNlMzRjMjZcIixhbGlhc2VzOltcInhodG1sXCJdLGV4dGVuc2lvbnM6W1wiLmNvbXBvbmVudC5odG1sXCJdLHBhcnNlcnM6W1wiYW5ndWxhclwiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJodG1sXCJdLGZpbGVuYW1lczpbXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDoxNDYsbmFtZTpcIkhUTUxcIix0eXBlOlwibWFya3VwXCIsdG1TY29wZTpcInRleHQuaHRtbC5iYXNpY1wiLGFjZU1vZGU6XCJodG1sXCIsY29kZW1pcnJvck1vZGU6XCJodG1sbWl4ZWRcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L2h0bWxcIixjb2xvcjpcIiNlMzRjMjZcIixhbGlhc2VzOltcInhodG1sXCJdLGV4dGVuc2lvbnM6W1wiLmh0bWxcIixcIi5odGFcIixcIi5odG1cIixcIi5odG1sLmhsXCIsXCIuaW5jXCIsXCIueGh0XCIsXCIueGh0bWxcIixcIi5tam1sXCJdLHBhcnNlcnM6W1wiaHRtbFwiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJodG1sXCJdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjE0NixuYW1lOlwiTGlnaHRuaW5nIFdlYiBDb21wb25lbnRzXCIsdHlwZTpcIm1hcmt1cFwiLHRtU2NvcGU6XCJ0ZXh0Lmh0bWwuYmFzaWNcIixhY2VNb2RlOlwiaHRtbFwiLGNvZGVtaXJyb3JNb2RlOlwiaHRtbG1peGVkXCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9odG1sXCIsY29sb3I6XCIjZTM0YzI2XCIsYWxpYXNlczpbXCJ4aHRtbFwiXSxleHRlbnNpb25zOltdLHBhcnNlcnM6W1wibHdjXCJdLHZzY29kZUxhbmd1YWdlSWRzOltcImh0bWxcIl0sZmlsZW5hbWVzOltdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjM5MSxuYW1lOlwiVnVlXCIsdHlwZTpcIm1hcmt1cFwiLGNvbG9yOlwiIzQxYjg4M1wiLGV4dGVuc2lvbnM6W1wiLnZ1ZVwiXSx0bVNjb3BlOlwidGV4dC5odG1sLnZ1ZVwiLGFjZU1vZGU6XCJodG1sXCIscGFyc2VyczpbXCJ2dWVcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1widnVlXCJdfV07dmFyIElyPXticmFja2V0U3BhY2luZzp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITAsZGVzY3JpcHRpb246XCJQcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIixvcHBvc2l0ZURlc2NyaXB0aW9uOlwiRG8gbm90IHByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwifSxzaW5nbGVRdW90ZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJVc2Ugc2luZ2xlIHF1b3RlcyBpbnN0ZWFkIG9mIGRvdWJsZSBxdW90ZXMuXCJ9LHByb3NlV3JhcDp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiY2hvaWNlXCIsZGVmYXVsdDpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJIb3cgdG8gd3JhcCBwcm9zZS5cIixjaG9pY2VzOlt7dmFsdWU6XCJhbHdheXNcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgaWYgaXQgZXhjZWVkcyB0aGUgcHJpbnQgd2lkdGguXCJ9LHt2YWx1ZTpcIm5ldmVyXCIsZGVzY3JpcHRpb246XCJEbyBub3Qgd3JhcCBwcm9zZS5cIn0se3ZhbHVlOlwicHJlc2VydmVcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgYXMtaXMuXCJ9XX0sYnJhY2tldFNhbWVMaW5lOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIlB1dCA+IG9mIG9wZW5pbmcgdGFncyBvbiB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2Ygb24gYSBuZXcgbGluZS5cIn0sc2luZ2xlQXR0cmlidXRlUGVyTGluZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJFbmZvcmNlIHNpbmdsZSBhdHRyaWJ1dGUgcGVyIGxpbmUgaW4gSFRNTCwgVnVlIGFuZCBKU1guXCJ9fTt2YXIgUHM9XCJIVE1MXCIsdXU9e2JyYWNrZXRTYW1lTGluZTpJci5icmFja2V0U2FtZUxpbmUsaHRtbFdoaXRlc3BhY2VTZW5zaXRpdml0eTp7Y2F0ZWdvcnk6UHMsdHlwZTpcImNob2ljZVwiLGRlZmF1bHQ6XCJjc3NcIixkZXNjcmlwdGlvbjpcIkhvdyB0byBoYW5kbGUgd2hpdGVzcGFjZXMgaW4gSFRNTC5cIixjaG9pY2VzOlt7dmFsdWU6XCJjc3NcIixkZXNjcmlwdGlvbjpcIlJlc3BlY3QgdGhlIGRlZmF1bHQgdmFsdWUgb2YgQ1NTIGRpc3BsYXkgcHJvcGVydHkuXCJ9LHt2YWx1ZTpcInN0cmljdFwiLGRlc2NyaXB0aW9uOlwiV2hpdGVzcGFjZXMgYXJlIGNvbnNpZGVyZWQgc2Vuc2l0aXZlLlwifSx7dmFsdWU6XCJpZ25vcmVcIixkZXNjcmlwdGlvbjpcIldoaXRlc3BhY2VzIGFyZSBjb25zaWRlcmVkIGluc2Vuc2l0aXZlLlwifV19LHNpbmdsZUF0dHJpYnV0ZVBlckxpbmU6SXIuc2luZ2xlQXR0cmlidXRlUGVyTGluZSx2dWVJbmRlbnRTY3JpcHRBbmRTdHlsZTp7Y2F0ZWdvcnk6UHMsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiSW5kZW50IHNjcmlwdCBhbmQgc3R5bGUgdGFncyBpbiBWdWUgZmlsZXMuXCJ9fSxOcz11dTt2YXIgb3U9e2h0bWw6bnN9O3ZhciBxcD1ScjtleHBvcnR7cXAgYXMgZGVmYXVsdCxGcyBhcyBsYW5ndWFnZXMsTnMgYXMgb3B0aW9ucyxOciBhcyBwYXJzZXJzLG91IGFzIHByaW50ZXJzfTtcbiIsICJ2YXIgZWw9T2JqZWN0LmNyZWF0ZTt2YXIgbHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBybD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciB0bD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgbmw9T2JqZWN0LmdldFByb3RvdHlwZU9mLGlsPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIEM9KGUscik9PigpPT4ocnx8ZSgocj17ZXhwb3J0czp7fX0pLmV4cG9ydHMsciksci5leHBvcnRzKSxPbj0oZSxyKT0+e2Zvcih2YXIgbiBpbiByKWx0KGUsbix7Z2V0OnJbbl0sZW51bWVyYWJsZTohMH0pfSx1bD0oZSxyLG4sdCk9PntpZihyJiZ0eXBlb2Ygcj09XCJvYmplY3RcInx8dHlwZW9mIHI9PVwiZnVuY3Rpb25cIilmb3IobGV0IGEgb2YgdGwocikpIWlsLmNhbGwoZSxhKSYmYSE9PW4mJmx0KGUsYSx7Z2V0OigpPT5yW2FdLGVudW1lcmFibGU6ISh0PXJsKHIsYSkpfHx0LmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIEllPShlLHIsbik9PihuPWUhPW51bGw/ZWwobmwoZSkpOnt9LHVsKHJ8fCFlfHwhZS5fX2VzTW9kdWxlP2x0KG4sXCJkZWZhdWx0XCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMH0pOm4sZSkpO3ZhciBrcj1DKChUZyxJbik9PntcInVzZSBzdHJpY3RcIjtJbi5leHBvcnRzPXNsO2Z1bmN0aW9uIHNsKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvXFxzKy9nLFwiIFwiKX19KTt2YXIgX2U9QygoX3YsU2kpPT57U2kuZXhwb3J0cz1jZjt2YXIgc2Y9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjZigpe2Zvcih2YXIgZT17fSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIG49YXJndW1lbnRzW3JdO2Zvcih2YXIgdCBpbiBuKXNmLmNhbGwobix0KSYmKGVbdF09blt0XSl9cmV0dXJuIGV9fSk7dmFyIFBpPUMoKEx2LHl0KT0+e3R5cGVvZiBPYmplY3QuY3JlYXRlPT1cImZ1bmN0aW9uXCI/eXQuZXhwb3J0cz1mdW5jdGlvbihyLG4pe24mJihyLnN1cGVyXz1uLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpyLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06eXQuZXhwb3J0cz1mdW5jdGlvbihyLG4pe2lmKG4pe3Iuc3VwZXJfPW47dmFyIHQ9ZnVuY3Rpb24oKXt9O3QucHJvdG90eXBlPW4ucHJvdG90eXBlLHIucHJvdG90eXBlPW5ldyB0LHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXJ9fX0pO3ZhciBPaT1DKChPdixMaSk9PntcInVzZSBzdHJpY3RcIjt2YXIgbGY9X2UoKSxfaT1QaSgpO0xpLmV4cG9ydHM9ZmY7ZnVuY3Rpb24gZmYoZSl7dmFyIHIsbix0O19pKGksZSksX2koYSxpKSxyPWkucHJvdG90eXBlO2ZvcihuIGluIHIpdD1yW25dLHQmJnR5cGVvZiB0PT1cIm9iamVjdFwiJiYocltuXT1cImNvbmNhdFwiaW4gdD90LmNvbmNhdCgpOmxmKHQpKTtyZXR1cm4gaTtmdW5jdGlvbiBhKHUpe3JldHVybiBlLmFwcGx5KHRoaXMsdSl9ZnVuY3Rpb24gaSgpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgaT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuZXcgYShhcmd1bWVudHMpfX19KTt2YXIgTmk9QygoSXYsSWkpPT57XCJ1c2Ugc3RyaWN0XCI7SWkuZXhwb3J0cz1EZjtmdW5jdGlvbiBEZihlLHIsbil7cmV0dXJuIHQ7ZnVuY3Rpb24gdCgpe3ZhciBhPW58fHRoaXMsaT1hW2VdO3JldHVybiBhW2VdPSFyLHU7ZnVuY3Rpb24gdSgpe2FbZV09aX19fX0pO3ZhciB6aT1DKChOdixSaSk9PntcInVzZSBzdHJpY3RcIjtSaS5leHBvcnRzPXBmO2Z1bmN0aW9uIHBmKGUpe2Zvcih2YXIgcj1TdHJpbmcoZSksbj1bXSx0PS9cXHI/XFxufFxcci9nO3QuZXhlYyhyKTspbi5wdXNoKHQubGFzdEluZGV4KTtyZXR1cm4gbi5wdXNoKHIubGVuZ3RoKzEpLHt0b1BvaW50OmEsdG9Qb3NpdGlvbjphLHRvT2Zmc2V0Oml9O2Z1bmN0aW9uIGEodSl7dmFyIG89LTE7aWYodT4tMSYmdTxuW24ubGVuZ3RoLTFdKXtmb3IoOysrbzxuLmxlbmd0aDspaWYobltvXT51KXJldHVybntsaW5lOm8rMSxjb2x1bW46dS0obltvLTFdfHwwKSsxLG9mZnNldDp1fX1yZXR1cm57fX1mdW5jdGlvbiBpKHUpe3ZhciBvPXUmJnUubGluZSxzPXUmJnUuY29sdW1uLGw7cmV0dXJuIWlzTmFOKG8pJiYhaXNOYU4ocykmJm8tMSBpbiBuJiYobD0obltvLTJdfHwwKStzLTF8fDApLGw+LTEmJmw8bltuLmxlbmd0aC0xXT9sOi0xfX19KTt2YXIgVWk9QygoUnYsTWkpPT57XCJ1c2Ugc3RyaWN0XCI7TWkuZXhwb3J0cz1kZjt2YXIga3Q9XCJcXFxcXCI7ZnVuY3Rpb24gZGYoZSxyKXtyZXR1cm4gbjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgYT0wLGk9dC5pbmRleE9mKGt0KSx1PWVbcl0sbz1bXSxzO2khPT0tMTspby5wdXNoKHQuc2xpY2UoYSxpKSksYT1pKzEscz10LmNoYXJBdChhKSwoIXN8fHUuaW5kZXhPZihzKT09PS0xKSYmby5wdXNoKGt0KSxpPXQuaW5kZXhPZihrdCxhKzEpO3JldHVybiBvLnB1c2godC5zbGljZShhKSksby5qb2luKFwiXCIpfX19KTt2YXIgWWk9QygoenYsaGYpPT57aGYuZXhwb3J0cz17QUVsaWc6XCJcXHhDNlwiLEFNUDpcIiZcIixBYWN1dGU6XCJcXHhDMVwiLEFjaXJjOlwiXFx4QzJcIixBZ3JhdmU6XCJcXHhDMFwiLEFyaW5nOlwiXFx4QzVcIixBdGlsZGU6XCJcXHhDM1wiLEF1bWw6XCJcXHhDNFwiLENPUFk6XCJcXHhBOVwiLENjZWRpbDpcIlxceEM3XCIsRVRIOlwiXFx4RDBcIixFYWN1dGU6XCJcXHhDOVwiLEVjaXJjOlwiXFx4Q0FcIixFZ3JhdmU6XCJcXHhDOFwiLEV1bWw6XCJcXHhDQlwiLEdUOlwiPlwiLElhY3V0ZTpcIlxceENEXCIsSWNpcmM6XCJcXHhDRVwiLElncmF2ZTpcIlxceENDXCIsSXVtbDpcIlxceENGXCIsTFQ6XCI8XCIsTnRpbGRlOlwiXFx4RDFcIixPYWN1dGU6XCJcXHhEM1wiLE9jaXJjOlwiXFx4RDRcIixPZ3JhdmU6XCJcXHhEMlwiLE9zbGFzaDpcIlxceEQ4XCIsT3RpbGRlOlwiXFx4RDVcIixPdW1sOlwiXFx4RDZcIixRVU9UOidcIicsUkVHOlwiXFx4QUVcIixUSE9STjpcIlxceERFXCIsVWFjdXRlOlwiXFx4REFcIixVY2lyYzpcIlxceERCXCIsVWdyYXZlOlwiXFx4RDlcIixVdW1sOlwiXFx4RENcIixZYWN1dGU6XCJcXHhERFwiLGFhY3V0ZTpcIlxceEUxXCIsYWNpcmM6XCJcXHhFMlwiLGFjdXRlOlwiXFx4QjRcIixhZWxpZzpcIlxceEU2XCIsYWdyYXZlOlwiXFx4RTBcIixhbXA6XCImXCIsYXJpbmc6XCJcXHhFNVwiLGF0aWxkZTpcIlxceEUzXCIsYXVtbDpcIlxceEU0XCIsYnJ2YmFyOlwiXFx4QTZcIixjY2VkaWw6XCJcXHhFN1wiLGNlZGlsOlwiXFx4QjhcIixjZW50OlwiXFx4QTJcIixjb3B5OlwiXFx4QTlcIixjdXJyZW46XCJcXHhBNFwiLGRlZzpcIlxceEIwXCIsZGl2aWRlOlwiXFx4RjdcIixlYWN1dGU6XCJcXHhFOVwiLGVjaXJjOlwiXFx4RUFcIixlZ3JhdmU6XCJcXHhFOFwiLGV0aDpcIlxceEYwXCIsZXVtbDpcIlxceEVCXCIsZnJhYzEyOlwiXFx4QkRcIixmcmFjMTQ6XCJcXHhCQ1wiLGZyYWMzNDpcIlxceEJFXCIsZ3Q6XCI+XCIsaWFjdXRlOlwiXFx4RURcIixpY2lyYzpcIlxceEVFXCIsaWV4Y2w6XCJcXHhBMVwiLGlncmF2ZTpcIlxceEVDXCIsaXF1ZXN0OlwiXFx4QkZcIixpdW1sOlwiXFx4RUZcIixsYXF1bzpcIlxceEFCXCIsbHQ6XCI8XCIsbWFjcjpcIlxceEFGXCIsbWljcm86XCJcXHhCNVwiLG1pZGRvdDpcIlxceEI3XCIsbmJzcDpcIlxceEEwXCIsbm90OlwiXFx4QUNcIixudGlsZGU6XCJcXHhGMVwiLG9hY3V0ZTpcIlxceEYzXCIsb2NpcmM6XCJcXHhGNFwiLG9ncmF2ZTpcIlxceEYyXCIsb3JkZjpcIlxceEFBXCIsb3JkbTpcIlxceEJBXCIsb3NsYXNoOlwiXFx4RjhcIixvdGlsZGU6XCJcXHhGNVwiLG91bWw6XCJcXHhGNlwiLHBhcmE6XCJcXHhCNlwiLHBsdXNtbjpcIlxceEIxXCIscG91bmQ6XCJcXHhBM1wiLHF1b3Q6J1wiJyxyYXF1bzpcIlxceEJCXCIscmVnOlwiXFx4QUVcIixzZWN0OlwiXFx4QTdcIixzaHk6XCJcXHhBRFwiLHN1cDE6XCJcXHhCOVwiLHN1cDI6XCJcXHhCMlwiLHN1cDM6XCJcXHhCM1wiLHN6bGlnOlwiXFx4REZcIix0aG9ybjpcIlxceEZFXCIsdGltZXM6XCJcXHhEN1wiLHVhY3V0ZTpcIlxceEZBXCIsdWNpcmM6XCJcXHhGQlwiLHVncmF2ZTpcIlxceEY5XCIsdW1sOlwiXFx4QThcIix1dW1sOlwiXFx4RkNcIix5YWN1dGU6XCJcXHhGRFwiLHllbjpcIlxceEE1XCIseXVtbDpcIlxceEZGXCJ9fSk7dmFyIFZpPUMoKE12LG1mKT0+e21mLmV4cG9ydHM9e1wiMFwiOlwiXFx1RkZGRFwiLFwiMTI4XCI6XCJcXHUyMEFDXCIsXCIxMzBcIjpcIlxcdTIwMUFcIixcIjEzMVwiOlwiXFx1MDE5MlwiLFwiMTMyXCI6XCJcXHUyMDFFXCIsXCIxMzNcIjpcIlxcdTIwMjZcIixcIjEzNFwiOlwiXFx1MjAyMFwiLFwiMTM1XCI6XCJcXHUyMDIxXCIsXCIxMzZcIjpcIlxcdTAyQzZcIixcIjEzN1wiOlwiXFx1MjAzMFwiLFwiMTM4XCI6XCJcXHUwMTYwXCIsXCIxMzlcIjpcIlxcdTIwMzlcIixcIjE0MFwiOlwiXFx1MDE1MlwiLFwiMTQyXCI6XCJcXHUwMTdEXCIsXCIxNDVcIjpcIlxcdTIwMThcIixcIjE0NlwiOlwiXFx1MjAxOVwiLFwiMTQ3XCI6XCJcXHUyMDFDXCIsXCIxNDhcIjpcIlxcdTIwMURcIixcIjE0OVwiOlwiXFx1MjAyMlwiLFwiMTUwXCI6XCJcXHUyMDEzXCIsXCIxNTFcIjpcIlxcdTIwMTRcIixcIjE1MlwiOlwiXFx1MDJEQ1wiLFwiMTUzXCI6XCJcXHUyMTIyXCIsXCIxNTRcIjpcIlxcdTAxNjFcIixcIjE1NVwiOlwiXFx1MjAzQVwiLFwiMTU2XCI6XCJcXHUwMTUzXCIsXCIxNThcIjpcIlxcdTAxN0VcIixcIjE1OVwiOlwiXFx1MDE3OFwifX0pO3ZhciBMZT1DKChVdixqaSk9PntcInVzZSBzdHJpY3RcIjtqaS5leHBvcnRzPWdmO2Z1bmN0aW9uIGdmKGUpe3ZhciByPXR5cGVvZiBlPT1cInN0cmluZ1wiP2UuY2hhckNvZGVBdCgwKTplO3JldHVybiByPj00OCYmcjw9NTd9fSk7dmFyIEdpPUMoKFl2LCRpKT0+e1widXNlIHN0cmljdFwiOyRpLmV4cG9ydHM9dmY7ZnVuY3Rpb24gdmYoZSl7dmFyIHI9dHlwZW9mIGU9PVwic3RyaW5nXCI/ZS5jaGFyQ29kZUF0KDApOmU7cmV0dXJuIHI+PTk3JiZyPD0xMDJ8fHI+PTY1JiZyPD03MHx8cj49NDgmJnI8PTU3fX0pO3ZhciB6ZT1DKChWdixIaSk9PntcInVzZSBzdHJpY3RcIjtIaS5leHBvcnRzPUZmO2Z1bmN0aW9uIEZmKGUpe3ZhciByPXR5cGVvZiBlPT1cInN0cmluZ1wiP2UuY2hhckNvZGVBdCgwKTplO3JldHVybiByPj05NyYmcjw9MTIyfHxyPj02NSYmcjw9OTB9fSk7dmFyIEtpPUMoKGp2LFdpKT0+e1widXNlIHN0cmljdFwiO3ZhciBFZj16ZSgpLENmPUxlKCk7V2kuZXhwb3J0cz1iZjtmdW5jdGlvbiBiZihlKXtyZXR1cm4gRWYoZSl8fENmKGUpfX0pO3ZhciBKaT1DKCgkdix4Zik9Pnt4Zi5leHBvcnRzPXtBRWxpOlwiXFx4QzZcIixBRWxpZzpcIlxceEM2XCIsQU06XCImXCIsQU1QOlwiJlwiLEFhY3V0OlwiXFx4QzFcIixBYWN1dGU6XCJcXHhDMVwiLEFicmV2ZTpcIlxcdTAxMDJcIixBY2lyOlwiXFx4QzJcIixBY2lyYzpcIlxceEMyXCIsQWN5OlwiXFx1MDQxMFwiLEFmcjpcIlxcdXsxRDUwNH1cIixBZ3JhdjpcIlxceEMwXCIsQWdyYXZlOlwiXFx4QzBcIixBbHBoYTpcIlxcdTAzOTFcIixBbWFjcjpcIlxcdTAxMDBcIixBbmQ6XCJcXHUyQTUzXCIsQW9nb246XCJcXHUwMTA0XCIsQW9wZjpcIlxcdXsxRDUzOH1cIixBcHBseUZ1bmN0aW9uOlwiXFx1MjA2MVwiLEFyaW46XCJcXHhDNVwiLEFyaW5nOlwiXFx4QzVcIixBc2NyOlwiXFx1ezFENDlDfVwiLEFzc2lnbjpcIlxcdTIyNTRcIixBdGlsZDpcIlxceEMzXCIsQXRpbGRlOlwiXFx4QzNcIixBdW06XCJcXHhDNFwiLEF1bWw6XCJcXHhDNFwiLEJhY2tzbGFzaDpcIlxcdTIyMTZcIixCYXJ2OlwiXFx1MkFFN1wiLEJhcndlZDpcIlxcdTIzMDZcIixCY3k6XCJcXHUwNDExXCIsQmVjYXVzZTpcIlxcdTIyMzVcIixCZXJub3VsbGlzOlwiXFx1MjEyQ1wiLEJldGE6XCJcXHUwMzkyXCIsQmZyOlwiXFx1ezFENTA1fVwiLEJvcGY6XCJcXHV7MUQ1Mzl9XCIsQnJldmU6XCJcXHUwMkQ4XCIsQnNjcjpcIlxcdTIxMkNcIixCdW1wZXE6XCJcXHUyMjRFXCIsQ0hjeTpcIlxcdTA0MjdcIixDT1A6XCJcXHhBOVwiLENPUFk6XCJcXHhBOVwiLENhY3V0ZTpcIlxcdTAxMDZcIixDYXA6XCJcXHUyMkQyXCIsQ2FwaXRhbERpZmZlcmVudGlhbEQ6XCJcXHUyMTQ1XCIsQ2F5bGV5czpcIlxcdTIxMkRcIixDY2Fyb246XCJcXHUwMTBDXCIsQ2NlZGk6XCJcXHhDN1wiLENjZWRpbDpcIlxceEM3XCIsQ2NpcmM6XCJcXHUwMTA4XCIsQ2NvbmludDpcIlxcdTIyMzBcIixDZG90OlwiXFx1MDEwQVwiLENlZGlsbGE6XCJcXHhCOFwiLENlbnRlckRvdDpcIlxceEI3XCIsQ2ZyOlwiXFx1MjEyRFwiLENoaTpcIlxcdTAzQTdcIixDaXJjbGVEb3Q6XCJcXHUyMjk5XCIsQ2lyY2xlTWludXM6XCJcXHUyMjk2XCIsQ2lyY2xlUGx1czpcIlxcdTIyOTVcIixDaXJjbGVUaW1lczpcIlxcdTIyOTdcIixDbG9ja3dpc2VDb250b3VySW50ZWdyYWw6XCJcXHUyMjMyXCIsQ2xvc2VDdXJseURvdWJsZVF1b3RlOlwiXFx1MjAxRFwiLENsb3NlQ3VybHlRdW90ZTpcIlxcdTIwMTlcIixDb2xvbjpcIlxcdTIyMzdcIixDb2xvbmU6XCJcXHUyQTc0XCIsQ29uZ3J1ZW50OlwiXFx1MjI2MVwiLENvbmludDpcIlxcdTIyMkZcIixDb250b3VySW50ZWdyYWw6XCJcXHUyMjJFXCIsQ29wZjpcIlxcdTIxMDJcIixDb3Byb2R1Y3Q6XCJcXHUyMjEwXCIsQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMzNcIixDcm9zczpcIlxcdTJBMkZcIixDc2NyOlwiXFx1ezFENDlFfVwiLEN1cDpcIlxcdTIyRDNcIixDdXBDYXA6XCJcXHUyMjREXCIsREQ6XCJcXHUyMTQ1XCIsRERvdHJhaGQ6XCJcXHUyOTExXCIsREpjeTpcIlxcdTA0MDJcIixEU2N5OlwiXFx1MDQwNVwiLERaY3k6XCJcXHUwNDBGXCIsRGFnZ2VyOlwiXFx1MjAyMVwiLERhcnI6XCJcXHUyMUExXCIsRGFzaHY6XCJcXHUyQUU0XCIsRGNhcm9uOlwiXFx1MDEwRVwiLERjeTpcIlxcdTA0MTRcIixEZWw6XCJcXHUyMjA3XCIsRGVsdGE6XCJcXHUwMzk0XCIsRGZyOlwiXFx1ezFENTA3fVwiLERpYWNyaXRpY2FsQWN1dGU6XCJcXHhCNFwiLERpYWNyaXRpY2FsRG90OlwiXFx1MDJEOVwiLERpYWNyaXRpY2FsRG91YmxlQWN1dGU6XCJcXHUwMkREXCIsRGlhY3JpdGljYWxHcmF2ZTpcImBcIixEaWFjcml0aWNhbFRpbGRlOlwiXFx1MDJEQ1wiLERpYW1vbmQ6XCJcXHUyMkM0XCIsRGlmZmVyZW50aWFsRDpcIlxcdTIxNDZcIixEb3BmOlwiXFx1ezFENTNCfVwiLERvdDpcIlxceEE4XCIsRG90RG90OlwiXFx1MjBEQ1wiLERvdEVxdWFsOlwiXFx1MjI1MFwiLERvdWJsZUNvbnRvdXJJbnRlZ3JhbDpcIlxcdTIyMkZcIixEb3VibGVEb3Q6XCJcXHhBOFwiLERvdWJsZURvd25BcnJvdzpcIlxcdTIxRDNcIixEb3VibGVMZWZ0QXJyb3c6XCJcXHUyMUQwXCIsRG91YmxlTGVmdFJpZ2h0QXJyb3c6XCJcXHUyMUQ0XCIsRG91YmxlTGVmdFRlZTpcIlxcdTJBRTRcIixEb3VibGVMb25nTGVmdEFycm93OlwiXFx1MjdGOFwiLERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdzpcIlxcdTI3RkFcIixEb3VibGVMb25nUmlnaHRBcnJvdzpcIlxcdTI3RjlcIixEb3VibGVSaWdodEFycm93OlwiXFx1MjFEMlwiLERvdWJsZVJpZ2h0VGVlOlwiXFx1MjJBOFwiLERvdWJsZVVwQXJyb3c6XCJcXHUyMUQxXCIsRG91YmxlVXBEb3duQXJyb3c6XCJcXHUyMUQ1XCIsRG91YmxlVmVydGljYWxCYXI6XCJcXHUyMjI1XCIsRG93bkFycm93OlwiXFx1MjE5M1wiLERvd25BcnJvd0JhcjpcIlxcdTI5MTNcIixEb3duQXJyb3dVcEFycm93OlwiXFx1MjFGNVwiLERvd25CcmV2ZTpcIlxcdTAzMTFcIixEb3duTGVmdFJpZ2h0VmVjdG9yOlwiXFx1Mjk1MFwiLERvd25MZWZ0VGVlVmVjdG9yOlwiXFx1Mjk1RVwiLERvd25MZWZ0VmVjdG9yOlwiXFx1MjFCRFwiLERvd25MZWZ0VmVjdG9yQmFyOlwiXFx1Mjk1NlwiLERvd25SaWdodFRlZVZlY3RvcjpcIlxcdTI5NUZcIixEb3duUmlnaHRWZWN0b3I6XCJcXHUyMUMxXCIsRG93blJpZ2h0VmVjdG9yQmFyOlwiXFx1Mjk1N1wiLERvd25UZWU6XCJcXHUyMkE0XCIsRG93blRlZUFycm93OlwiXFx1MjFBN1wiLERvd25hcnJvdzpcIlxcdTIxRDNcIixEc2NyOlwiXFx1ezFENDlGfVwiLERzdHJvazpcIlxcdTAxMTBcIixFTkc6XCJcXHUwMTRBXCIsRVQ6XCJcXHhEMFwiLEVUSDpcIlxceEQwXCIsRWFjdXQ6XCJcXHhDOVwiLEVhY3V0ZTpcIlxceEM5XCIsRWNhcm9uOlwiXFx1MDExQVwiLEVjaXI6XCJcXHhDQVwiLEVjaXJjOlwiXFx4Q0FcIixFY3k6XCJcXHUwNDJEXCIsRWRvdDpcIlxcdTAxMTZcIixFZnI6XCJcXHV7MUQ1MDh9XCIsRWdyYXY6XCJcXHhDOFwiLEVncmF2ZTpcIlxceEM4XCIsRWxlbWVudDpcIlxcdTIyMDhcIixFbWFjcjpcIlxcdTAxMTJcIixFbXB0eVNtYWxsU3F1YXJlOlwiXFx1MjVGQlwiLEVtcHR5VmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQlwiLEVvZ29uOlwiXFx1MDExOFwiLEVvcGY6XCJcXHV7MUQ1M0N9XCIsRXBzaWxvbjpcIlxcdTAzOTVcIixFcXVhbDpcIlxcdTJBNzVcIixFcXVhbFRpbGRlOlwiXFx1MjI0MlwiLEVxdWlsaWJyaXVtOlwiXFx1MjFDQ1wiLEVzY3I6XCJcXHUyMTMwXCIsRXNpbTpcIlxcdTJBNzNcIixFdGE6XCJcXHUwMzk3XCIsRXVtOlwiXFx4Q0JcIixFdW1sOlwiXFx4Q0JcIixFeGlzdHM6XCJcXHUyMjAzXCIsRXhwb25lbnRpYWxFOlwiXFx1MjE0N1wiLEZjeTpcIlxcdTA0MjRcIixGZnI6XCJcXHV7MUQ1MDl9XCIsRmlsbGVkU21hbGxTcXVhcmU6XCJcXHUyNUZDXCIsRmlsbGVkVmVyeVNtYWxsU3F1YXJlOlwiXFx1MjVBQVwiLEZvcGY6XCJcXHV7MUQ1M0R9XCIsRm9yQWxsOlwiXFx1MjIwMFwiLEZvdXJpZXJ0cmY6XCJcXHUyMTMxXCIsRnNjcjpcIlxcdTIxMzFcIixHSmN5OlwiXFx1MDQwM1wiLEc6XCI+XCIsR1Q6XCI+XCIsR2FtbWE6XCJcXHUwMzkzXCIsR2FtbWFkOlwiXFx1MDNEQ1wiLEdicmV2ZTpcIlxcdTAxMUVcIixHY2VkaWw6XCJcXHUwMTIyXCIsR2NpcmM6XCJcXHUwMTFDXCIsR2N5OlwiXFx1MDQxM1wiLEdkb3Q6XCJcXHUwMTIwXCIsR2ZyOlwiXFx1ezFENTBBfVwiLEdnOlwiXFx1MjJEOVwiLEdvcGY6XCJcXHV7MUQ1M0V9XCIsR3JlYXRlckVxdWFsOlwiXFx1MjI2NVwiLEdyZWF0ZXJFcXVhbExlc3M6XCJcXHUyMkRCXCIsR3JlYXRlckZ1bGxFcXVhbDpcIlxcdTIyNjdcIixHcmVhdGVyR3JlYXRlcjpcIlxcdTJBQTJcIixHcmVhdGVyTGVzczpcIlxcdTIyNzdcIixHcmVhdGVyU2xhbnRFcXVhbDpcIlxcdTJBN0VcIixHcmVhdGVyVGlsZGU6XCJcXHUyMjczXCIsR3NjcjpcIlxcdXsxRDRBMn1cIixHdDpcIlxcdTIyNkJcIixIQVJEY3k6XCJcXHUwNDJBXCIsSGFjZWs6XCJcXHUwMkM3XCIsSGF0OlwiXlwiLEhjaXJjOlwiXFx1MDEyNFwiLEhmcjpcIlxcdTIxMENcIixIaWxiZXJ0U3BhY2U6XCJcXHUyMTBCXCIsSG9wZjpcIlxcdTIxMERcIixIb3Jpem9udGFsTGluZTpcIlxcdTI1MDBcIixIc2NyOlwiXFx1MjEwQlwiLEhzdHJvazpcIlxcdTAxMjZcIixIdW1wRG93bkh1bXA6XCJcXHUyMjRFXCIsSHVtcEVxdWFsOlwiXFx1MjI0RlwiLElFY3k6XCJcXHUwNDE1XCIsSUpsaWc6XCJcXHUwMTMyXCIsSU9jeTpcIlxcdTA0MDFcIixJYWN1dDpcIlxceENEXCIsSWFjdXRlOlwiXFx4Q0RcIixJY2lyOlwiXFx4Q0VcIixJY2lyYzpcIlxceENFXCIsSWN5OlwiXFx1MDQxOFwiLElkb3Q6XCJcXHUwMTMwXCIsSWZyOlwiXFx1MjExMVwiLElncmF2OlwiXFx4Q0NcIixJZ3JhdmU6XCJcXHhDQ1wiLEltOlwiXFx1MjExMVwiLEltYWNyOlwiXFx1MDEyQVwiLEltYWdpbmFyeUk6XCJcXHUyMTQ4XCIsSW1wbGllczpcIlxcdTIxRDJcIixJbnQ6XCJcXHUyMjJDXCIsSW50ZWdyYWw6XCJcXHUyMjJCXCIsSW50ZXJzZWN0aW9uOlwiXFx1MjJDMlwiLEludmlzaWJsZUNvbW1hOlwiXFx1MjA2M1wiLEludmlzaWJsZVRpbWVzOlwiXFx1MjA2MlwiLElvZ29uOlwiXFx1MDEyRVwiLElvcGY6XCJcXHV7MUQ1NDB9XCIsSW90YTpcIlxcdTAzOTlcIixJc2NyOlwiXFx1MjExMFwiLEl0aWxkZTpcIlxcdTAxMjhcIixJdWtjeTpcIlxcdTA0MDZcIixJdW06XCJcXHhDRlwiLEl1bWw6XCJcXHhDRlwiLEpjaXJjOlwiXFx1MDEzNFwiLEpjeTpcIlxcdTA0MTlcIixKZnI6XCJcXHV7MUQ1MER9XCIsSm9wZjpcIlxcdXsxRDU0MX1cIixKc2NyOlwiXFx1ezFENEE1fVwiLEpzZXJjeTpcIlxcdTA0MDhcIixKdWtjeTpcIlxcdTA0MDRcIixLSGN5OlwiXFx1MDQyNVwiLEtKY3k6XCJcXHUwNDBDXCIsS2FwcGE6XCJcXHUwMzlBXCIsS2NlZGlsOlwiXFx1MDEzNlwiLEtjeTpcIlxcdTA0MUFcIixLZnI6XCJcXHV7MUQ1MEV9XCIsS29wZjpcIlxcdXsxRDU0Mn1cIixLc2NyOlwiXFx1ezFENEE2fVwiLExKY3k6XCJcXHUwNDA5XCIsTDpcIjxcIixMVDpcIjxcIixMYWN1dGU6XCJcXHUwMTM5XCIsTGFtYmRhOlwiXFx1MDM5QlwiLExhbmc6XCJcXHUyN0VBXCIsTGFwbGFjZXRyZjpcIlxcdTIxMTJcIixMYXJyOlwiXFx1MjE5RVwiLExjYXJvbjpcIlxcdTAxM0RcIixMY2VkaWw6XCJcXHUwMTNCXCIsTGN5OlwiXFx1MDQxQlwiLExlZnRBbmdsZUJyYWNrZXQ6XCJcXHUyN0U4XCIsTGVmdEFycm93OlwiXFx1MjE5MFwiLExlZnRBcnJvd0JhcjpcIlxcdTIxRTRcIixMZWZ0QXJyb3dSaWdodEFycm93OlwiXFx1MjFDNlwiLExlZnRDZWlsaW5nOlwiXFx1MjMwOFwiLExlZnREb3VibGVCcmFja2V0OlwiXFx1MjdFNlwiLExlZnREb3duVGVlVmVjdG9yOlwiXFx1Mjk2MVwiLExlZnREb3duVmVjdG9yOlwiXFx1MjFDM1wiLExlZnREb3duVmVjdG9yQmFyOlwiXFx1Mjk1OVwiLExlZnRGbG9vcjpcIlxcdTIzMEFcIixMZWZ0UmlnaHRBcnJvdzpcIlxcdTIxOTRcIixMZWZ0UmlnaHRWZWN0b3I6XCJcXHUyOTRFXCIsTGVmdFRlZTpcIlxcdTIyQTNcIixMZWZ0VGVlQXJyb3c6XCJcXHUyMUE0XCIsTGVmdFRlZVZlY3RvcjpcIlxcdTI5NUFcIixMZWZ0VHJpYW5nbGU6XCJcXHUyMkIyXCIsTGVmdFRyaWFuZ2xlQmFyOlwiXFx1MjlDRlwiLExlZnRUcmlhbmdsZUVxdWFsOlwiXFx1MjJCNFwiLExlZnRVcERvd25WZWN0b3I6XCJcXHUyOTUxXCIsTGVmdFVwVGVlVmVjdG9yOlwiXFx1Mjk2MFwiLExlZnRVcFZlY3RvcjpcIlxcdTIxQkZcIixMZWZ0VXBWZWN0b3JCYXI6XCJcXHUyOTU4XCIsTGVmdFZlY3RvcjpcIlxcdTIxQkNcIixMZWZ0VmVjdG9yQmFyOlwiXFx1Mjk1MlwiLExlZnRhcnJvdzpcIlxcdTIxRDBcIixMZWZ0cmlnaHRhcnJvdzpcIlxcdTIxRDRcIixMZXNzRXF1YWxHcmVhdGVyOlwiXFx1MjJEQVwiLExlc3NGdWxsRXF1YWw6XCJcXHUyMjY2XCIsTGVzc0dyZWF0ZXI6XCJcXHUyMjc2XCIsTGVzc0xlc3M6XCJcXHUyQUExXCIsTGVzc1NsYW50RXF1YWw6XCJcXHUyQTdEXCIsTGVzc1RpbGRlOlwiXFx1MjI3MlwiLExmcjpcIlxcdXsxRDUwRn1cIixMbDpcIlxcdTIyRDhcIixMbGVmdGFycm93OlwiXFx1MjFEQVwiLExtaWRvdDpcIlxcdTAxM0ZcIixMb25nTGVmdEFycm93OlwiXFx1MjdGNVwiLExvbmdMZWZ0UmlnaHRBcnJvdzpcIlxcdTI3RjdcIixMb25nUmlnaHRBcnJvdzpcIlxcdTI3RjZcIixMb25nbGVmdGFycm93OlwiXFx1MjdGOFwiLExvbmdsZWZ0cmlnaHRhcnJvdzpcIlxcdTI3RkFcIixMb25ncmlnaHRhcnJvdzpcIlxcdTI3RjlcIixMb3BmOlwiXFx1ezFENTQzfVwiLExvd2VyTGVmdEFycm93OlwiXFx1MjE5OVwiLExvd2VyUmlnaHRBcnJvdzpcIlxcdTIxOThcIixMc2NyOlwiXFx1MjExMlwiLExzaDpcIlxcdTIxQjBcIixMc3Ryb2s6XCJcXHUwMTQxXCIsTHQ6XCJcXHUyMjZBXCIsTWFwOlwiXFx1MjkwNVwiLE1jeTpcIlxcdTA0MUNcIixNZWRpdW1TcGFjZTpcIlxcdTIwNUZcIixNZWxsaW50cmY6XCJcXHUyMTMzXCIsTWZyOlwiXFx1ezFENTEwfVwiLE1pbnVzUGx1czpcIlxcdTIyMTNcIixNb3BmOlwiXFx1ezFENTQ0fVwiLE1zY3I6XCJcXHUyMTMzXCIsTXU6XCJcXHUwMzlDXCIsTkpjeTpcIlxcdTA0MEFcIixOYWN1dGU6XCJcXHUwMTQzXCIsTmNhcm9uOlwiXFx1MDE0N1wiLE5jZWRpbDpcIlxcdTAxNDVcIixOY3k6XCJcXHUwNDFEXCIsTmVnYXRpdmVNZWRpdW1TcGFjZTpcIlxcdTIwMEJcIixOZWdhdGl2ZVRoaWNrU3BhY2U6XCJcXHUyMDBCXCIsTmVnYXRpdmVUaGluU3BhY2U6XCJcXHUyMDBCXCIsTmVnYXRpdmVWZXJ5VGhpblNwYWNlOlwiXFx1MjAwQlwiLE5lc3RlZEdyZWF0ZXJHcmVhdGVyOlwiXFx1MjI2QlwiLE5lc3RlZExlc3NMZXNzOlwiXFx1MjI2QVwiLE5ld0xpbmU6YFxuYCxOZnI6XCJcXHV7MUQ1MTF9XCIsTm9CcmVhazpcIlxcdTIwNjBcIixOb25CcmVha2luZ1NwYWNlOlwiXFx4QTBcIixOb3BmOlwiXFx1MjExNVwiLE5vdDpcIlxcdTJBRUNcIixOb3RDb25ncnVlbnQ6XCJcXHUyMjYyXCIsTm90Q3VwQ2FwOlwiXFx1MjI2RFwiLE5vdERvdWJsZVZlcnRpY2FsQmFyOlwiXFx1MjIyNlwiLE5vdEVsZW1lbnQ6XCJcXHUyMjA5XCIsTm90RXF1YWw6XCJcXHUyMjYwXCIsTm90RXF1YWxUaWxkZTpcIlxcdTIyNDJcXHUwMzM4XCIsTm90RXhpc3RzOlwiXFx1MjIwNFwiLE5vdEdyZWF0ZXI6XCJcXHUyMjZGXCIsTm90R3JlYXRlckVxdWFsOlwiXFx1MjI3MVwiLE5vdEdyZWF0ZXJGdWxsRXF1YWw6XCJcXHUyMjY3XFx1MDMzOFwiLE5vdEdyZWF0ZXJHcmVhdGVyOlwiXFx1MjI2QlxcdTAzMzhcIixOb3RHcmVhdGVyTGVzczpcIlxcdTIyNzlcIixOb3RHcmVhdGVyU2xhbnRFcXVhbDpcIlxcdTJBN0VcXHUwMzM4XCIsTm90R3JlYXRlclRpbGRlOlwiXFx1MjI3NVwiLE5vdEh1bXBEb3duSHVtcDpcIlxcdTIyNEVcXHUwMzM4XCIsTm90SHVtcEVxdWFsOlwiXFx1MjI0RlxcdTAzMzhcIixOb3RMZWZ0VHJpYW5nbGU6XCJcXHUyMkVBXCIsTm90TGVmdFRyaWFuZ2xlQmFyOlwiXFx1MjlDRlxcdTAzMzhcIixOb3RMZWZ0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRUNcIixOb3RMZXNzOlwiXFx1MjI2RVwiLE5vdExlc3NFcXVhbDpcIlxcdTIyNzBcIixOb3RMZXNzR3JlYXRlcjpcIlxcdTIyNzhcIixOb3RMZXNzTGVzczpcIlxcdTIyNkFcXHUwMzM4XCIsTm90TGVzc1NsYW50RXF1YWw6XCJcXHUyQTdEXFx1MDMzOFwiLE5vdExlc3NUaWxkZTpcIlxcdTIyNzRcIixOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjpcIlxcdTJBQTJcXHUwMzM4XCIsTm90TmVzdGVkTGVzc0xlc3M6XCJcXHUyQUExXFx1MDMzOFwiLE5vdFByZWNlZGVzOlwiXFx1MjI4MFwiLE5vdFByZWNlZGVzRXF1YWw6XCJcXHUyQUFGXFx1MDMzOFwiLE5vdFByZWNlZGVzU2xhbnRFcXVhbDpcIlxcdTIyRTBcIixOb3RSZXZlcnNlRWxlbWVudDpcIlxcdTIyMENcIixOb3RSaWdodFRyaWFuZ2xlOlwiXFx1MjJFQlwiLE5vdFJpZ2h0VHJpYW5nbGVCYXI6XCJcXHUyOUQwXFx1MDMzOFwiLE5vdFJpZ2h0VHJpYW5nbGVFcXVhbDpcIlxcdTIyRURcIixOb3RTcXVhcmVTdWJzZXQ6XCJcXHUyMjhGXFx1MDMzOFwiLE5vdFNxdWFyZVN1YnNldEVxdWFsOlwiXFx1MjJFMlwiLE5vdFNxdWFyZVN1cGVyc2V0OlwiXFx1MjI5MFxcdTAzMzhcIixOb3RTcXVhcmVTdXBlcnNldEVxdWFsOlwiXFx1MjJFM1wiLE5vdFN1YnNldDpcIlxcdTIyODJcXHUyMEQyXCIsTm90U3Vic2V0RXF1YWw6XCJcXHUyMjg4XCIsTm90U3VjY2VlZHM6XCJcXHUyMjgxXCIsTm90U3VjY2VlZHNFcXVhbDpcIlxcdTJBQjBcXHUwMzM4XCIsTm90U3VjY2VlZHNTbGFudEVxdWFsOlwiXFx1MjJFMVwiLE5vdFN1Y2NlZWRzVGlsZGU6XCJcXHUyMjdGXFx1MDMzOFwiLE5vdFN1cGVyc2V0OlwiXFx1MjI4M1xcdTIwRDJcIixOb3RTdXBlcnNldEVxdWFsOlwiXFx1MjI4OVwiLE5vdFRpbGRlOlwiXFx1MjI0MVwiLE5vdFRpbGRlRXF1YWw6XCJcXHUyMjQ0XCIsTm90VGlsZGVGdWxsRXF1YWw6XCJcXHUyMjQ3XCIsTm90VGlsZGVUaWxkZTpcIlxcdTIyNDlcIixOb3RWZXJ0aWNhbEJhcjpcIlxcdTIyMjRcIixOc2NyOlwiXFx1ezFENEE5fVwiLE50aWxkOlwiXFx4RDFcIixOdGlsZGU6XCJcXHhEMVwiLE51OlwiXFx1MDM5RFwiLE9FbGlnOlwiXFx1MDE1MlwiLE9hY3V0OlwiXFx4RDNcIixPYWN1dGU6XCJcXHhEM1wiLE9jaXI6XCJcXHhENFwiLE9jaXJjOlwiXFx4RDRcIixPY3k6XCJcXHUwNDFFXCIsT2RibGFjOlwiXFx1MDE1MFwiLE9mcjpcIlxcdXsxRDUxMn1cIixPZ3JhdjpcIlxceEQyXCIsT2dyYXZlOlwiXFx4RDJcIixPbWFjcjpcIlxcdTAxNENcIixPbWVnYTpcIlxcdTAzQTlcIixPbWljcm9uOlwiXFx1MDM5RlwiLE9vcGY6XCJcXHV7MUQ1NDZ9XCIsT3BlbkN1cmx5RG91YmxlUXVvdGU6XCJcXHUyMDFDXCIsT3BlbkN1cmx5UXVvdGU6XCJcXHUyMDE4XCIsT3I6XCJcXHUyQTU0XCIsT3NjcjpcIlxcdXsxRDRBQX1cIixPc2xhczpcIlxceEQ4XCIsT3NsYXNoOlwiXFx4RDhcIixPdGlsZDpcIlxceEQ1XCIsT3RpbGRlOlwiXFx4RDVcIixPdGltZXM6XCJcXHUyQTM3XCIsT3VtOlwiXFx4RDZcIixPdW1sOlwiXFx4RDZcIixPdmVyQmFyOlwiXFx1MjAzRVwiLE92ZXJCcmFjZTpcIlxcdTIzREVcIixPdmVyQnJhY2tldDpcIlxcdTIzQjRcIixPdmVyUGFyZW50aGVzaXM6XCJcXHUyM0RDXCIsUGFydGlhbEQ6XCJcXHUyMjAyXCIsUGN5OlwiXFx1MDQxRlwiLFBmcjpcIlxcdXsxRDUxM31cIixQaGk6XCJcXHUwM0E2XCIsUGk6XCJcXHUwM0EwXCIsUGx1c01pbnVzOlwiXFx4QjFcIixQb2luY2FyZXBsYW5lOlwiXFx1MjEwQ1wiLFBvcGY6XCJcXHUyMTE5XCIsUHI6XCJcXHUyQUJCXCIsUHJlY2VkZXM6XCJcXHUyMjdBXCIsUHJlY2VkZXNFcXVhbDpcIlxcdTJBQUZcIixQcmVjZWRlc1NsYW50RXF1YWw6XCJcXHUyMjdDXCIsUHJlY2VkZXNUaWxkZTpcIlxcdTIyN0VcIixQcmltZTpcIlxcdTIwMzNcIixQcm9kdWN0OlwiXFx1MjIwRlwiLFByb3BvcnRpb246XCJcXHUyMjM3XCIsUHJvcG9ydGlvbmFsOlwiXFx1MjIxRFwiLFBzY3I6XCJcXHV7MUQ0QUJ9XCIsUHNpOlwiXFx1MDNBOFwiLFFVTzonXCInLFFVT1Q6J1wiJyxRZnI6XCJcXHV7MUQ1MTR9XCIsUW9wZjpcIlxcdTIxMUFcIixRc2NyOlwiXFx1ezFENEFDfVwiLFJCYXJyOlwiXFx1MjkxMFwiLFJFOlwiXFx4QUVcIixSRUc6XCJcXHhBRVwiLFJhY3V0ZTpcIlxcdTAxNTRcIixSYW5nOlwiXFx1MjdFQlwiLFJhcnI6XCJcXHUyMUEwXCIsUmFycnRsOlwiXFx1MjkxNlwiLFJjYXJvbjpcIlxcdTAxNThcIixSY2VkaWw6XCJcXHUwMTU2XCIsUmN5OlwiXFx1MDQyMFwiLFJlOlwiXFx1MjExQ1wiLFJldmVyc2VFbGVtZW50OlwiXFx1MjIwQlwiLFJldmVyc2VFcXVpbGlicml1bTpcIlxcdTIxQ0JcIixSZXZlcnNlVXBFcXVpbGlicml1bTpcIlxcdTI5NkZcIixSZnI6XCJcXHUyMTFDXCIsUmhvOlwiXFx1MDNBMVwiLFJpZ2h0QW5nbGVCcmFja2V0OlwiXFx1MjdFOVwiLFJpZ2h0QXJyb3c6XCJcXHUyMTkyXCIsUmlnaHRBcnJvd0JhcjpcIlxcdTIxRTVcIixSaWdodEFycm93TGVmdEFycm93OlwiXFx1MjFDNFwiLFJpZ2h0Q2VpbGluZzpcIlxcdTIzMDlcIixSaWdodERvdWJsZUJyYWNrZXQ6XCJcXHUyN0U3XCIsUmlnaHREb3duVGVlVmVjdG9yOlwiXFx1Mjk1RFwiLFJpZ2h0RG93blZlY3RvcjpcIlxcdTIxQzJcIixSaWdodERvd25WZWN0b3JCYXI6XCJcXHUyOTU1XCIsUmlnaHRGbG9vcjpcIlxcdTIzMEJcIixSaWdodFRlZTpcIlxcdTIyQTJcIixSaWdodFRlZUFycm93OlwiXFx1MjFBNlwiLFJpZ2h0VGVlVmVjdG9yOlwiXFx1Mjk1QlwiLFJpZ2h0VHJpYW5nbGU6XCJcXHUyMkIzXCIsUmlnaHRUcmlhbmdsZUJhcjpcIlxcdTI5RDBcIixSaWdodFRyaWFuZ2xlRXF1YWw6XCJcXHUyMkI1XCIsUmlnaHRVcERvd25WZWN0b3I6XCJcXHUyOTRGXCIsUmlnaHRVcFRlZVZlY3RvcjpcIlxcdTI5NUNcIixSaWdodFVwVmVjdG9yOlwiXFx1MjFCRVwiLFJpZ2h0VXBWZWN0b3JCYXI6XCJcXHUyOTU0XCIsUmlnaHRWZWN0b3I6XCJcXHUyMUMwXCIsUmlnaHRWZWN0b3JCYXI6XCJcXHUyOTUzXCIsUmlnaHRhcnJvdzpcIlxcdTIxRDJcIixSb3BmOlwiXFx1MjExRFwiLFJvdW5kSW1wbGllczpcIlxcdTI5NzBcIixScmlnaHRhcnJvdzpcIlxcdTIxREJcIixSc2NyOlwiXFx1MjExQlwiLFJzaDpcIlxcdTIxQjFcIixSdWxlRGVsYXllZDpcIlxcdTI5RjRcIixTSENIY3k6XCJcXHUwNDI5XCIsU0hjeTpcIlxcdTA0MjhcIixTT0ZUY3k6XCJcXHUwNDJDXCIsU2FjdXRlOlwiXFx1MDE1QVwiLFNjOlwiXFx1MkFCQ1wiLFNjYXJvbjpcIlxcdTAxNjBcIixTY2VkaWw6XCJcXHUwMTVFXCIsU2NpcmM6XCJcXHUwMTVDXCIsU2N5OlwiXFx1MDQyMVwiLFNmcjpcIlxcdXsxRDUxNn1cIixTaG9ydERvd25BcnJvdzpcIlxcdTIxOTNcIixTaG9ydExlZnRBcnJvdzpcIlxcdTIxOTBcIixTaG9ydFJpZ2h0QXJyb3c6XCJcXHUyMTkyXCIsU2hvcnRVcEFycm93OlwiXFx1MjE5MVwiLFNpZ21hOlwiXFx1MDNBM1wiLFNtYWxsQ2lyY2xlOlwiXFx1MjIxOFwiLFNvcGY6XCJcXHV7MUQ1NEF9XCIsU3FydDpcIlxcdTIyMUFcIixTcXVhcmU6XCJcXHUyNUExXCIsU3F1YXJlSW50ZXJzZWN0aW9uOlwiXFx1MjI5M1wiLFNxdWFyZVN1YnNldDpcIlxcdTIyOEZcIixTcXVhcmVTdWJzZXRFcXVhbDpcIlxcdTIyOTFcIixTcXVhcmVTdXBlcnNldDpcIlxcdTIyOTBcIixTcXVhcmVTdXBlcnNldEVxdWFsOlwiXFx1MjI5MlwiLFNxdWFyZVVuaW9uOlwiXFx1MjI5NFwiLFNzY3I6XCJcXHV7MUQ0QUV9XCIsU3RhcjpcIlxcdTIyQzZcIixTdWI6XCJcXHUyMkQwXCIsU3Vic2V0OlwiXFx1MjJEMFwiLFN1YnNldEVxdWFsOlwiXFx1MjI4NlwiLFN1Y2NlZWRzOlwiXFx1MjI3QlwiLFN1Y2NlZWRzRXF1YWw6XCJcXHUyQUIwXCIsU3VjY2VlZHNTbGFudEVxdWFsOlwiXFx1MjI3RFwiLFN1Y2NlZWRzVGlsZGU6XCJcXHUyMjdGXCIsU3VjaFRoYXQ6XCJcXHUyMjBCXCIsU3VtOlwiXFx1MjIxMVwiLFN1cDpcIlxcdTIyRDFcIixTdXBlcnNldDpcIlxcdTIyODNcIixTdXBlcnNldEVxdWFsOlwiXFx1MjI4N1wiLFN1cHNldDpcIlxcdTIyRDFcIixUSE9SOlwiXFx4REVcIixUSE9STjpcIlxceERFXCIsVFJBREU6XCJcXHUyMTIyXCIsVFNIY3k6XCJcXHUwNDBCXCIsVFNjeTpcIlxcdTA0MjZcIixUYWI6XCJcdFwiLFRhdTpcIlxcdTAzQTRcIixUY2Fyb246XCJcXHUwMTY0XCIsVGNlZGlsOlwiXFx1MDE2MlwiLFRjeTpcIlxcdTA0MjJcIixUZnI6XCJcXHV7MUQ1MTd9XCIsVGhlcmVmb3JlOlwiXFx1MjIzNFwiLFRoZXRhOlwiXFx1MDM5OFwiLFRoaWNrU3BhY2U6XCJcXHUyMDVGXFx1MjAwQVwiLFRoaW5TcGFjZTpcIlxcdTIwMDlcIixUaWxkZTpcIlxcdTIyM0NcIixUaWxkZUVxdWFsOlwiXFx1MjI0M1wiLFRpbGRlRnVsbEVxdWFsOlwiXFx1MjI0NVwiLFRpbGRlVGlsZGU6XCJcXHUyMjQ4XCIsVG9wZjpcIlxcdXsxRDU0Qn1cIixUcmlwbGVEb3Q6XCJcXHUyMERCXCIsVHNjcjpcIlxcdXsxRDRBRn1cIixUc3Ryb2s6XCJcXHUwMTY2XCIsVWFjdXQ6XCJcXHhEQVwiLFVhY3V0ZTpcIlxceERBXCIsVWFycjpcIlxcdTIxOUZcIixVYXJyb2NpcjpcIlxcdTI5NDlcIixVYnJjeTpcIlxcdTA0MEVcIixVYnJldmU6XCJcXHUwMTZDXCIsVWNpcjpcIlxceERCXCIsVWNpcmM6XCJcXHhEQlwiLFVjeTpcIlxcdTA0MjNcIixVZGJsYWM6XCJcXHUwMTcwXCIsVWZyOlwiXFx1ezFENTE4fVwiLFVncmF2OlwiXFx4RDlcIixVZ3JhdmU6XCJcXHhEOVwiLFVtYWNyOlwiXFx1MDE2QVwiLFVuZGVyQmFyOlwiX1wiLFVuZGVyQnJhY2U6XCJcXHUyM0RGXCIsVW5kZXJCcmFja2V0OlwiXFx1MjNCNVwiLFVuZGVyUGFyZW50aGVzaXM6XCJcXHUyM0REXCIsVW5pb246XCJcXHUyMkMzXCIsVW5pb25QbHVzOlwiXFx1MjI4RVwiLFVvZ29uOlwiXFx1MDE3MlwiLFVvcGY6XCJcXHV7MUQ1NEN9XCIsVXBBcnJvdzpcIlxcdTIxOTFcIixVcEFycm93QmFyOlwiXFx1MjkxMlwiLFVwQXJyb3dEb3duQXJyb3c6XCJcXHUyMUM1XCIsVXBEb3duQXJyb3c6XCJcXHUyMTk1XCIsVXBFcXVpbGlicml1bTpcIlxcdTI5NkVcIixVcFRlZTpcIlxcdTIyQTVcIixVcFRlZUFycm93OlwiXFx1MjFBNVwiLFVwYXJyb3c6XCJcXHUyMUQxXCIsVXBkb3duYXJyb3c6XCJcXHUyMUQ1XCIsVXBwZXJMZWZ0QXJyb3c6XCJcXHUyMTk2XCIsVXBwZXJSaWdodEFycm93OlwiXFx1MjE5N1wiLFVwc2k6XCJcXHUwM0QyXCIsVXBzaWxvbjpcIlxcdTAzQTVcIixVcmluZzpcIlxcdTAxNkVcIixVc2NyOlwiXFx1ezFENEIwfVwiLFV0aWxkZTpcIlxcdTAxNjhcIixVdW06XCJcXHhEQ1wiLFV1bWw6XCJcXHhEQ1wiLFZEYXNoOlwiXFx1MjJBQlwiLFZiYXI6XCJcXHUyQUVCXCIsVmN5OlwiXFx1MDQxMlwiLFZkYXNoOlwiXFx1MjJBOVwiLFZkYXNobDpcIlxcdTJBRTZcIixWZWU6XCJcXHUyMkMxXCIsVmVyYmFyOlwiXFx1MjAxNlwiLFZlcnQ6XCJcXHUyMDE2XCIsVmVydGljYWxCYXI6XCJcXHUyMjIzXCIsVmVydGljYWxMaW5lOlwifFwiLFZlcnRpY2FsU2VwYXJhdG9yOlwiXFx1Mjc1OFwiLFZlcnRpY2FsVGlsZGU6XCJcXHUyMjQwXCIsVmVyeVRoaW5TcGFjZTpcIlxcdTIwMEFcIixWZnI6XCJcXHV7MUQ1MTl9XCIsVm9wZjpcIlxcdXsxRDU0RH1cIixWc2NyOlwiXFx1ezFENEIxfVwiLFZ2ZGFzaDpcIlxcdTIyQUFcIixXY2lyYzpcIlxcdTAxNzRcIixXZWRnZTpcIlxcdTIyQzBcIixXZnI6XCJcXHV7MUQ1MUF9XCIsV29wZjpcIlxcdXsxRDU0RX1cIixXc2NyOlwiXFx1ezFENEIyfVwiLFhmcjpcIlxcdXsxRDUxQn1cIixYaTpcIlxcdTAzOUVcIixYb3BmOlwiXFx1ezFENTRGfVwiLFhzY3I6XCJcXHV7MUQ0QjN9XCIsWUFjeTpcIlxcdTA0MkZcIixZSWN5OlwiXFx1MDQwN1wiLFlVY3k6XCJcXHUwNDJFXCIsWWFjdXQ6XCJcXHhERFwiLFlhY3V0ZTpcIlxceEREXCIsWWNpcmM6XCJcXHUwMTc2XCIsWWN5OlwiXFx1MDQyQlwiLFlmcjpcIlxcdXsxRDUxQ31cIixZb3BmOlwiXFx1ezFENTUwfVwiLFlzY3I6XCJcXHV7MUQ0QjR9XCIsWXVtbDpcIlxcdTAxNzhcIixaSGN5OlwiXFx1MDQxNlwiLFphY3V0ZTpcIlxcdTAxNzlcIixaY2Fyb246XCJcXHUwMTdEXCIsWmN5OlwiXFx1MDQxN1wiLFpkb3Q6XCJcXHUwMTdCXCIsWmVyb1dpZHRoU3BhY2U6XCJcXHUyMDBCXCIsWmV0YTpcIlxcdTAzOTZcIixaZnI6XCJcXHUyMTI4XCIsWm9wZjpcIlxcdTIxMjRcIixac2NyOlwiXFx1ezFENEI1fVwiLGFhY3V0OlwiXFx4RTFcIixhYWN1dGU6XCJcXHhFMVwiLGFicmV2ZTpcIlxcdTAxMDNcIixhYzpcIlxcdTIyM0VcIixhY0U6XCJcXHUyMjNFXFx1MDMzM1wiLGFjZDpcIlxcdTIyM0ZcIixhY2lyOlwiXFx4RTJcIixhY2lyYzpcIlxceEUyXCIsYWN1dDpcIlxceEI0XCIsYWN1dGU6XCJcXHhCNFwiLGFjeTpcIlxcdTA0MzBcIixhZWxpOlwiXFx4RTZcIixhZWxpZzpcIlxceEU2XCIsYWY6XCJcXHUyMDYxXCIsYWZyOlwiXFx1ezFENTFFfVwiLGFncmF2OlwiXFx4RTBcIixhZ3JhdmU6XCJcXHhFMFwiLGFsZWZzeW06XCJcXHUyMTM1XCIsYWxlcGg6XCJcXHUyMTM1XCIsYWxwaGE6XCJcXHUwM0IxXCIsYW1hY3I6XCJcXHUwMTAxXCIsYW1hbGc6XCJcXHUyQTNGXCIsYW06XCImXCIsYW1wOlwiJlwiLGFuZDpcIlxcdTIyMjdcIixhbmRhbmQ6XCJcXHUyQTU1XCIsYW5kZDpcIlxcdTJBNUNcIixhbmRzbG9wZTpcIlxcdTJBNThcIixhbmR2OlwiXFx1MkE1QVwiLGFuZzpcIlxcdTIyMjBcIixhbmdlOlwiXFx1MjlBNFwiLGFuZ2xlOlwiXFx1MjIyMFwiLGFuZ21zZDpcIlxcdTIyMjFcIixhbmdtc2RhYTpcIlxcdTI5QThcIixhbmdtc2RhYjpcIlxcdTI5QTlcIixhbmdtc2RhYzpcIlxcdTI5QUFcIixhbmdtc2RhZDpcIlxcdTI5QUJcIixhbmdtc2RhZTpcIlxcdTI5QUNcIixhbmdtc2RhZjpcIlxcdTI5QURcIixhbmdtc2RhZzpcIlxcdTI5QUVcIixhbmdtc2RhaDpcIlxcdTI5QUZcIixhbmdydDpcIlxcdTIyMUZcIixhbmdydHZiOlwiXFx1MjJCRVwiLGFuZ3J0dmJkOlwiXFx1Mjk5RFwiLGFuZ3NwaDpcIlxcdTIyMjJcIixhbmdzdDpcIlxceEM1XCIsYW5nemFycjpcIlxcdTIzN0NcIixhb2dvbjpcIlxcdTAxMDVcIixhb3BmOlwiXFx1ezFENTUyfVwiLGFwOlwiXFx1MjI0OFwiLGFwRTpcIlxcdTJBNzBcIixhcGFjaXI6XCJcXHUyQTZGXCIsYXBlOlwiXFx1MjI0QVwiLGFwaWQ6XCJcXHUyMjRCXCIsYXBvczpcIidcIixhcHByb3g6XCJcXHUyMjQ4XCIsYXBwcm94ZXE6XCJcXHUyMjRBXCIsYXJpbjpcIlxceEU1XCIsYXJpbmc6XCJcXHhFNVwiLGFzY3I6XCJcXHV7MUQ0QjZ9XCIsYXN0OlwiKlwiLGFzeW1wOlwiXFx1MjI0OFwiLGFzeW1wZXE6XCJcXHUyMjREXCIsYXRpbGQ6XCJcXHhFM1wiLGF0aWxkZTpcIlxceEUzXCIsYXVtOlwiXFx4RTRcIixhdW1sOlwiXFx4RTRcIixhd2NvbmludDpcIlxcdTIyMzNcIixhd2ludDpcIlxcdTJBMTFcIixiTm90OlwiXFx1MkFFRFwiLGJhY2tjb25nOlwiXFx1MjI0Q1wiLGJhY2tlcHNpbG9uOlwiXFx1MDNGNlwiLGJhY2twcmltZTpcIlxcdTIwMzVcIixiYWNrc2ltOlwiXFx1MjIzRFwiLGJhY2tzaW1lcTpcIlxcdTIyQ0RcIixiYXJ2ZWU6XCJcXHUyMkJEXCIsYmFyd2VkOlwiXFx1MjMwNVwiLGJhcndlZGdlOlwiXFx1MjMwNVwiLGJicms6XCJcXHUyM0I1XCIsYmJya3Ricms6XCJcXHUyM0I2XCIsYmNvbmc6XCJcXHUyMjRDXCIsYmN5OlwiXFx1MDQzMVwiLGJkcXVvOlwiXFx1MjAxRVwiLGJlY2F1czpcIlxcdTIyMzVcIixiZWNhdXNlOlwiXFx1MjIzNVwiLGJlbXB0eXY6XCJcXHUyOUIwXCIsYmVwc2k6XCJcXHUwM0Y2XCIsYmVybm91OlwiXFx1MjEyQ1wiLGJldGE6XCJcXHUwM0IyXCIsYmV0aDpcIlxcdTIxMzZcIixiZXR3ZWVuOlwiXFx1MjI2Q1wiLGJmcjpcIlxcdXsxRDUxRn1cIixiaWdjYXA6XCJcXHUyMkMyXCIsYmlnY2lyYzpcIlxcdTI1RUZcIixiaWdjdXA6XCJcXHUyMkMzXCIsYmlnb2RvdDpcIlxcdTJBMDBcIixiaWdvcGx1czpcIlxcdTJBMDFcIixiaWdvdGltZXM6XCJcXHUyQTAyXCIsYmlnc3FjdXA6XCJcXHUyQTA2XCIsYmlnc3RhcjpcIlxcdTI2MDVcIixiaWd0cmlhbmdsZWRvd246XCJcXHUyNUJEXCIsYmlndHJpYW5nbGV1cDpcIlxcdTI1QjNcIixiaWd1cGx1czpcIlxcdTJBMDRcIixiaWd2ZWU6XCJcXHUyMkMxXCIsYmlnd2VkZ2U6XCJcXHUyMkMwXCIsYmthcm93OlwiXFx1MjkwRFwiLGJsYWNrbG96ZW5nZTpcIlxcdTI5RUJcIixibGFja3NxdWFyZTpcIlxcdTI1QUFcIixibGFja3RyaWFuZ2xlOlwiXFx1MjVCNFwiLGJsYWNrdHJpYW5nbGVkb3duOlwiXFx1MjVCRVwiLGJsYWNrdHJpYW5nbGVsZWZ0OlwiXFx1MjVDMlwiLGJsYWNrdHJpYW5nbGVyaWdodDpcIlxcdTI1QjhcIixibGFuazpcIlxcdTI0MjNcIixibGsxMjpcIlxcdTI1OTJcIixibGsxNDpcIlxcdTI1OTFcIixibGszNDpcIlxcdTI1OTNcIixibG9jazpcIlxcdTI1ODhcIixibmU6XCI9XFx1MjBFNVwiLGJuZXF1aXY6XCJcXHUyMjYxXFx1MjBFNVwiLGJub3Q6XCJcXHUyMzEwXCIsYm9wZjpcIlxcdXsxRDU1M31cIixib3Q6XCJcXHUyMkE1XCIsYm90dG9tOlwiXFx1MjJBNVwiLGJvd3RpZTpcIlxcdTIyQzhcIixib3hETDpcIlxcdTI1NTdcIixib3hEUjpcIlxcdTI1NTRcIixib3hEbDpcIlxcdTI1NTZcIixib3hEcjpcIlxcdTI1NTNcIixib3hIOlwiXFx1MjU1MFwiLGJveEhEOlwiXFx1MjU2NlwiLGJveEhVOlwiXFx1MjU2OVwiLGJveEhkOlwiXFx1MjU2NFwiLGJveEh1OlwiXFx1MjU2N1wiLGJveFVMOlwiXFx1MjU1RFwiLGJveFVSOlwiXFx1MjU1QVwiLGJveFVsOlwiXFx1MjU1Q1wiLGJveFVyOlwiXFx1MjU1OVwiLGJveFY6XCJcXHUyNTUxXCIsYm94Vkg6XCJcXHUyNTZDXCIsYm94Vkw6XCJcXHUyNTYzXCIsYm94VlI6XCJcXHUyNTYwXCIsYm94Vmg6XCJcXHUyNTZCXCIsYm94Vmw6XCJcXHUyNTYyXCIsYm94VnI6XCJcXHUyNTVGXCIsYm94Ym94OlwiXFx1MjlDOVwiLGJveGRMOlwiXFx1MjU1NVwiLGJveGRSOlwiXFx1MjU1MlwiLGJveGRsOlwiXFx1MjUxMFwiLGJveGRyOlwiXFx1MjUwQ1wiLGJveGg6XCJcXHUyNTAwXCIsYm94aEQ6XCJcXHUyNTY1XCIsYm94aFU6XCJcXHUyNTY4XCIsYm94aGQ6XCJcXHUyNTJDXCIsYm94aHU6XCJcXHUyNTM0XCIsYm94bWludXM6XCJcXHUyMjlGXCIsYm94cGx1czpcIlxcdTIyOUVcIixib3h0aW1lczpcIlxcdTIyQTBcIixib3h1TDpcIlxcdTI1NUJcIixib3h1UjpcIlxcdTI1NThcIixib3h1bDpcIlxcdTI1MThcIixib3h1cjpcIlxcdTI1MTRcIixib3h2OlwiXFx1MjUwMlwiLGJveHZIOlwiXFx1MjU2QVwiLGJveHZMOlwiXFx1MjU2MVwiLGJveHZSOlwiXFx1MjU1RVwiLGJveHZoOlwiXFx1MjUzQ1wiLGJveHZsOlwiXFx1MjUyNFwiLGJveHZyOlwiXFx1MjUxQ1wiLGJwcmltZTpcIlxcdTIwMzVcIixicmV2ZTpcIlxcdTAyRDhcIixicnZiYTpcIlxceEE2XCIsYnJ2YmFyOlwiXFx4QTZcIixic2NyOlwiXFx1ezFENEI3fVwiLGJzZW1pOlwiXFx1MjA0RlwiLGJzaW06XCJcXHUyMjNEXCIsYnNpbWU6XCJcXHUyMkNEXCIsYnNvbDpcIlxcXFxcIixic29sYjpcIlxcdTI5QzVcIixic29saHN1YjpcIlxcdTI3QzhcIixidWxsOlwiXFx1MjAyMlwiLGJ1bGxldDpcIlxcdTIwMjJcIixidW1wOlwiXFx1MjI0RVwiLGJ1bXBFOlwiXFx1MkFBRVwiLGJ1bXBlOlwiXFx1MjI0RlwiLGJ1bXBlcTpcIlxcdTIyNEZcIixjYWN1dGU6XCJcXHUwMTA3XCIsY2FwOlwiXFx1MjIyOVwiLGNhcGFuZDpcIlxcdTJBNDRcIixjYXBicmN1cDpcIlxcdTJBNDlcIixjYXBjYXA6XCJcXHUyQTRCXCIsY2FwY3VwOlwiXFx1MkE0N1wiLGNhcGRvdDpcIlxcdTJBNDBcIixjYXBzOlwiXFx1MjIyOVxcdUZFMDBcIixjYXJldDpcIlxcdTIwNDFcIixjYXJvbjpcIlxcdTAyQzdcIixjY2FwczpcIlxcdTJBNERcIixjY2Fyb246XCJcXHUwMTBEXCIsY2NlZGk6XCJcXHhFN1wiLGNjZWRpbDpcIlxceEU3XCIsY2NpcmM6XCJcXHUwMTA5XCIsY2N1cHM6XCJcXHUyQTRDXCIsY2N1cHNzbTpcIlxcdTJBNTBcIixjZG90OlwiXFx1MDEwQlwiLGNlZGk6XCJcXHhCOFwiLGNlZGlsOlwiXFx4QjhcIixjZW1wdHl2OlwiXFx1MjlCMlwiLGNlbjpcIlxceEEyXCIsY2VudDpcIlxceEEyXCIsY2VudGVyZG90OlwiXFx4QjdcIixjZnI6XCJcXHV7MUQ1MjB9XCIsY2hjeTpcIlxcdTA0NDdcIixjaGVjazpcIlxcdTI3MTNcIixjaGVja21hcms6XCJcXHUyNzEzXCIsY2hpOlwiXFx1MDNDN1wiLGNpcjpcIlxcdTI1Q0JcIixjaXJFOlwiXFx1MjlDM1wiLGNpcmM6XCJcXHUwMkM2XCIsY2lyY2VxOlwiXFx1MjI1N1wiLGNpcmNsZWFycm93bGVmdDpcIlxcdTIxQkFcIixjaXJjbGVhcnJvd3JpZ2h0OlwiXFx1MjFCQlwiLGNpcmNsZWRSOlwiXFx4QUVcIixjaXJjbGVkUzpcIlxcdTI0QzhcIixjaXJjbGVkYXN0OlwiXFx1MjI5QlwiLGNpcmNsZWRjaXJjOlwiXFx1MjI5QVwiLGNpcmNsZWRkYXNoOlwiXFx1MjI5RFwiLGNpcmU6XCJcXHUyMjU3XCIsY2lyZm5pbnQ6XCJcXHUyQTEwXCIsY2lybWlkOlwiXFx1MkFFRlwiLGNpcnNjaXI6XCJcXHUyOUMyXCIsY2x1YnM6XCJcXHUyNjYzXCIsY2x1YnN1aXQ6XCJcXHUyNjYzXCIsY29sb246XCI6XCIsY29sb25lOlwiXFx1MjI1NFwiLGNvbG9uZXE6XCJcXHUyMjU0XCIsY29tbWE6XCIsXCIsY29tbWF0OlwiQFwiLGNvbXA6XCJcXHUyMjAxXCIsY29tcGZuOlwiXFx1MjIxOFwiLGNvbXBsZW1lbnQ6XCJcXHUyMjAxXCIsY29tcGxleGVzOlwiXFx1MjEwMlwiLGNvbmc6XCJcXHUyMjQ1XCIsY29uZ2RvdDpcIlxcdTJBNkRcIixjb25pbnQ6XCJcXHUyMjJFXCIsY29wZjpcIlxcdXsxRDU1NH1cIixjb3Byb2Q6XCJcXHUyMjEwXCIsY29wOlwiXFx4QTlcIixjb3B5OlwiXFx4QTlcIixjb3B5c3I6XCJcXHUyMTE3XCIsY3JhcnI6XCJcXHUyMUI1XCIsY3Jvc3M6XCJcXHUyNzE3XCIsY3NjcjpcIlxcdXsxRDRCOH1cIixjc3ViOlwiXFx1MkFDRlwiLGNzdWJlOlwiXFx1MkFEMVwiLGNzdXA6XCJcXHUyQUQwXCIsY3N1cGU6XCJcXHUyQUQyXCIsY3Rkb3Q6XCJcXHUyMkVGXCIsY3VkYXJybDpcIlxcdTI5MzhcIixjdWRhcnJyOlwiXFx1MjkzNVwiLGN1ZXByOlwiXFx1MjJERVwiLGN1ZXNjOlwiXFx1MjJERlwiLGN1bGFycjpcIlxcdTIxQjZcIixjdWxhcnJwOlwiXFx1MjkzRFwiLGN1cDpcIlxcdTIyMkFcIixjdXBicmNhcDpcIlxcdTJBNDhcIixjdXBjYXA6XCJcXHUyQTQ2XCIsY3VwY3VwOlwiXFx1MkE0QVwiLGN1cGRvdDpcIlxcdTIyOERcIixjdXBvcjpcIlxcdTJBNDVcIixjdXBzOlwiXFx1MjIyQVxcdUZFMDBcIixjdXJhcnI6XCJcXHUyMUI3XCIsY3VyYXJybTpcIlxcdTI5M0NcIixjdXJseWVxcHJlYzpcIlxcdTIyREVcIixjdXJseWVxc3VjYzpcIlxcdTIyREZcIixjdXJseXZlZTpcIlxcdTIyQ0VcIixjdXJseXdlZGdlOlwiXFx1MjJDRlwiLGN1cnJlOlwiXFx4QTRcIixjdXJyZW46XCJcXHhBNFwiLGN1cnZlYXJyb3dsZWZ0OlwiXFx1MjFCNlwiLGN1cnZlYXJyb3dyaWdodDpcIlxcdTIxQjdcIixjdXZlZTpcIlxcdTIyQ0VcIixjdXdlZDpcIlxcdTIyQ0ZcIixjd2NvbmludDpcIlxcdTIyMzJcIixjd2ludDpcIlxcdTIyMzFcIixjeWxjdHk6XCJcXHUyMzJEXCIsZEFycjpcIlxcdTIxRDNcIixkSGFyOlwiXFx1Mjk2NVwiLGRhZ2dlcjpcIlxcdTIwMjBcIixkYWxldGg6XCJcXHUyMTM4XCIsZGFycjpcIlxcdTIxOTNcIixkYXNoOlwiXFx1MjAxMFwiLGRhc2h2OlwiXFx1MjJBM1wiLGRia2Fyb3c6XCJcXHUyOTBGXCIsZGJsYWM6XCJcXHUwMkREXCIsZGNhcm9uOlwiXFx1MDEwRlwiLGRjeTpcIlxcdTA0MzRcIixkZDpcIlxcdTIxNDZcIixkZGFnZ2VyOlwiXFx1MjAyMVwiLGRkYXJyOlwiXFx1MjFDQVwiLGRkb3RzZXE6XCJcXHUyQTc3XCIsZGU6XCJcXHhCMFwiLGRlZzpcIlxceEIwXCIsZGVsdGE6XCJcXHUwM0I0XCIsZGVtcHR5djpcIlxcdTI5QjFcIixkZmlzaHQ6XCJcXHUyOTdGXCIsZGZyOlwiXFx1ezFENTIxfVwiLGRoYXJsOlwiXFx1MjFDM1wiLGRoYXJyOlwiXFx1MjFDMlwiLGRpYW06XCJcXHUyMkM0XCIsZGlhbW9uZDpcIlxcdTIyQzRcIixkaWFtb25kc3VpdDpcIlxcdTI2NjZcIixkaWFtczpcIlxcdTI2NjZcIixkaWU6XCJcXHhBOFwiLGRpZ2FtbWE6XCJcXHUwM0REXCIsZGlzaW46XCJcXHUyMkYyXCIsZGl2OlwiXFx4RjdcIixkaXZpZDpcIlxceEY3XCIsZGl2aWRlOlwiXFx4RjdcIixkaXZpZGVvbnRpbWVzOlwiXFx1MjJDN1wiLGRpdm9ueDpcIlxcdTIyQzdcIixkamN5OlwiXFx1MDQ1MlwiLGRsY29ybjpcIlxcdTIzMUVcIixkbGNyb3A6XCJcXHUyMzBEXCIsZG9sbGFyOlwiJFwiLGRvcGY6XCJcXHV7MUQ1NTV9XCIsZG90OlwiXFx1MDJEOVwiLGRvdGVxOlwiXFx1MjI1MFwiLGRvdGVxZG90OlwiXFx1MjI1MVwiLGRvdG1pbnVzOlwiXFx1MjIzOFwiLGRvdHBsdXM6XCJcXHUyMjE0XCIsZG90c3F1YXJlOlwiXFx1MjJBMVwiLGRvdWJsZWJhcndlZGdlOlwiXFx1MjMwNlwiLGRvd25hcnJvdzpcIlxcdTIxOTNcIixkb3duZG93bmFycm93czpcIlxcdTIxQ0FcIixkb3duaGFycG9vbmxlZnQ6XCJcXHUyMUMzXCIsZG93bmhhcnBvb25yaWdodDpcIlxcdTIxQzJcIixkcmJrYXJvdzpcIlxcdTI5MTBcIixkcmNvcm46XCJcXHUyMzFGXCIsZHJjcm9wOlwiXFx1MjMwQ1wiLGRzY3I6XCJcXHV7MUQ0Qjl9XCIsZHNjeTpcIlxcdTA0NTVcIixkc29sOlwiXFx1MjlGNlwiLGRzdHJvazpcIlxcdTAxMTFcIixkdGRvdDpcIlxcdTIyRjFcIixkdHJpOlwiXFx1MjVCRlwiLGR0cmlmOlwiXFx1MjVCRVwiLGR1YXJyOlwiXFx1MjFGNVwiLGR1aGFyOlwiXFx1Mjk2RlwiLGR3YW5nbGU6XCJcXHUyOUE2XCIsZHpjeTpcIlxcdTA0NUZcIixkemlncmFycjpcIlxcdTI3RkZcIixlRERvdDpcIlxcdTJBNzdcIixlRG90OlwiXFx1MjI1MVwiLGVhY3V0OlwiXFx4RTlcIixlYWN1dGU6XCJcXHhFOVwiLGVhc3RlcjpcIlxcdTJBNkVcIixlY2Fyb246XCJcXHUwMTFCXCIsZWNpcjpcIlxceEVBXCIsZWNpcmM6XCJcXHhFQVwiLGVjb2xvbjpcIlxcdTIyNTVcIixlY3k6XCJcXHUwNDREXCIsZWRvdDpcIlxcdTAxMTdcIixlZTpcIlxcdTIxNDdcIixlZkRvdDpcIlxcdTIyNTJcIixlZnI6XCJcXHV7MUQ1MjJ9XCIsZWc6XCJcXHUyQTlBXCIsZWdyYXY6XCJcXHhFOFwiLGVncmF2ZTpcIlxceEU4XCIsZWdzOlwiXFx1MkE5NlwiLGVnc2RvdDpcIlxcdTJBOThcIixlbDpcIlxcdTJBOTlcIixlbGludGVyczpcIlxcdTIzRTdcIixlbGw6XCJcXHUyMTEzXCIsZWxzOlwiXFx1MkE5NVwiLGVsc2RvdDpcIlxcdTJBOTdcIixlbWFjcjpcIlxcdTAxMTNcIixlbXB0eTpcIlxcdTIyMDVcIixlbXB0eXNldDpcIlxcdTIyMDVcIixlbXB0eXY6XCJcXHUyMjA1XCIsZW1zcDEzOlwiXFx1MjAwNFwiLGVtc3AxNDpcIlxcdTIwMDVcIixlbXNwOlwiXFx1MjAwM1wiLGVuZzpcIlxcdTAxNEJcIixlbnNwOlwiXFx1MjAwMlwiLGVvZ29uOlwiXFx1MDExOVwiLGVvcGY6XCJcXHV7MUQ1NTZ9XCIsZXBhcjpcIlxcdTIyRDVcIixlcGFyc2w6XCJcXHUyOUUzXCIsZXBsdXM6XCJcXHUyQTcxXCIsZXBzaTpcIlxcdTAzQjVcIixlcHNpbG9uOlwiXFx1MDNCNVwiLGVwc2l2OlwiXFx1MDNGNVwiLGVxY2lyYzpcIlxcdTIyNTZcIixlcWNvbG9uOlwiXFx1MjI1NVwiLGVxc2ltOlwiXFx1MjI0MlwiLGVxc2xhbnRndHI6XCJcXHUyQTk2XCIsZXFzbGFudGxlc3M6XCJcXHUyQTk1XCIsZXF1YWxzOlwiPVwiLGVxdWVzdDpcIlxcdTIyNUZcIixlcXVpdjpcIlxcdTIyNjFcIixlcXVpdkREOlwiXFx1MkE3OFwiLGVxdnBhcnNsOlwiXFx1MjlFNVwiLGVyRG90OlwiXFx1MjI1M1wiLGVyYXJyOlwiXFx1Mjk3MVwiLGVzY3I6XCJcXHUyMTJGXCIsZXNkb3Q6XCJcXHUyMjUwXCIsZXNpbTpcIlxcdTIyNDJcIixldGE6XCJcXHUwM0I3XCIsZXQ6XCJcXHhGMFwiLGV0aDpcIlxceEYwXCIsZXVtOlwiXFx4RUJcIixldW1sOlwiXFx4RUJcIixldXJvOlwiXFx1MjBBQ1wiLGV4Y2w6XCIhXCIsZXhpc3Q6XCJcXHUyMjAzXCIsZXhwZWN0YXRpb246XCJcXHUyMTMwXCIsZXhwb25lbnRpYWxlOlwiXFx1MjE0N1wiLGZhbGxpbmdkb3RzZXE6XCJcXHUyMjUyXCIsZmN5OlwiXFx1MDQ0NFwiLGZlbWFsZTpcIlxcdTI2NDBcIixmZmlsaWc6XCJcXHVGQjAzXCIsZmZsaWc6XCJcXHVGQjAwXCIsZmZsbGlnOlwiXFx1RkIwNFwiLGZmcjpcIlxcdXsxRDUyM31cIixmaWxpZzpcIlxcdUZCMDFcIixmamxpZzpcImZqXCIsZmxhdDpcIlxcdTI2NkRcIixmbGxpZzpcIlxcdUZCMDJcIixmbHRuczpcIlxcdTI1QjFcIixmbm9mOlwiXFx1MDE5MlwiLGZvcGY6XCJcXHV7MUQ1NTd9XCIsZm9yYWxsOlwiXFx1MjIwMFwiLGZvcms6XCJcXHUyMkQ0XCIsZm9ya3Y6XCJcXHUyQUQ5XCIsZnBhcnRpbnQ6XCJcXHUyQTBEXCIsZnJhYzE6XCJcXHhCQ1wiLGZyYWMxMjpcIlxceEJEXCIsZnJhYzEzOlwiXFx1MjE1M1wiLGZyYWMxNDpcIlxceEJDXCIsZnJhYzE1OlwiXFx1MjE1NVwiLGZyYWMxNjpcIlxcdTIxNTlcIixmcmFjMTg6XCJcXHUyMTVCXCIsZnJhYzIzOlwiXFx1MjE1NFwiLGZyYWMyNTpcIlxcdTIxNTZcIixmcmFjMzpcIlxceEJFXCIsZnJhYzM0OlwiXFx4QkVcIixmcmFjMzU6XCJcXHUyMTU3XCIsZnJhYzM4OlwiXFx1MjE1Q1wiLGZyYWM0NTpcIlxcdTIxNThcIixmcmFjNTY6XCJcXHUyMTVBXCIsZnJhYzU4OlwiXFx1MjE1RFwiLGZyYWM3ODpcIlxcdTIxNUVcIixmcmFzbDpcIlxcdTIwNDRcIixmcm93bjpcIlxcdTIzMjJcIixmc2NyOlwiXFx1ezFENEJCfVwiLGdFOlwiXFx1MjI2N1wiLGdFbDpcIlxcdTJBOENcIixnYWN1dGU6XCJcXHUwMUY1XCIsZ2FtbWE6XCJcXHUwM0IzXCIsZ2FtbWFkOlwiXFx1MDNERFwiLGdhcDpcIlxcdTJBODZcIixnYnJldmU6XCJcXHUwMTFGXCIsZ2NpcmM6XCJcXHUwMTFEXCIsZ2N5OlwiXFx1MDQzM1wiLGdkb3Q6XCJcXHUwMTIxXCIsZ2U6XCJcXHUyMjY1XCIsZ2VsOlwiXFx1MjJEQlwiLGdlcTpcIlxcdTIyNjVcIixnZXFxOlwiXFx1MjI2N1wiLGdlcXNsYW50OlwiXFx1MkE3RVwiLGdlczpcIlxcdTJBN0VcIixnZXNjYzpcIlxcdTJBQTlcIixnZXNkb3Q6XCJcXHUyQTgwXCIsZ2VzZG90bzpcIlxcdTJBODJcIixnZXNkb3RvbDpcIlxcdTJBODRcIixnZXNsOlwiXFx1MjJEQlxcdUZFMDBcIixnZXNsZXM6XCJcXHUyQTk0XCIsZ2ZyOlwiXFx1ezFENTI0fVwiLGdnOlwiXFx1MjI2QlwiLGdnZzpcIlxcdTIyRDlcIixnaW1lbDpcIlxcdTIxMzdcIixnamN5OlwiXFx1MDQ1M1wiLGdsOlwiXFx1MjI3N1wiLGdsRTpcIlxcdTJBOTJcIixnbGE6XCJcXHUyQUE1XCIsZ2xqOlwiXFx1MkFBNFwiLGduRTpcIlxcdTIyNjlcIixnbmFwOlwiXFx1MkE4QVwiLGduYXBwcm94OlwiXFx1MkE4QVwiLGduZTpcIlxcdTJBODhcIixnbmVxOlwiXFx1MkE4OFwiLGduZXFxOlwiXFx1MjI2OVwiLGduc2ltOlwiXFx1MjJFN1wiLGdvcGY6XCJcXHV7MUQ1NTh9XCIsZ3JhdmU6XCJgXCIsZ3NjcjpcIlxcdTIxMEFcIixnc2ltOlwiXFx1MjI3M1wiLGdzaW1lOlwiXFx1MkE4RVwiLGdzaW1sOlwiXFx1MkE5MFwiLGc6XCI+XCIsZ3Q6XCI+XCIsZ3RjYzpcIlxcdTJBQTdcIixndGNpcjpcIlxcdTJBN0FcIixndGRvdDpcIlxcdTIyRDdcIixndGxQYXI6XCJcXHUyOTk1XCIsZ3RxdWVzdDpcIlxcdTJBN0NcIixndHJhcHByb3g6XCJcXHUyQTg2XCIsZ3RyYXJyOlwiXFx1Mjk3OFwiLGd0cmRvdDpcIlxcdTIyRDdcIixndHJlcWxlc3M6XCJcXHUyMkRCXCIsZ3RyZXFxbGVzczpcIlxcdTJBOENcIixndHJsZXNzOlwiXFx1MjI3N1wiLGd0cnNpbTpcIlxcdTIyNzNcIixndmVydG5lcXE6XCJcXHUyMjY5XFx1RkUwMFwiLGd2bkU6XCJcXHUyMjY5XFx1RkUwMFwiLGhBcnI6XCJcXHUyMUQ0XCIsaGFpcnNwOlwiXFx1MjAwQVwiLGhhbGY6XCJcXHhCRFwiLGhhbWlsdDpcIlxcdTIxMEJcIixoYXJkY3k6XCJcXHUwNDRBXCIsaGFycjpcIlxcdTIxOTRcIixoYXJyY2lyOlwiXFx1Mjk0OFwiLGhhcnJ3OlwiXFx1MjFBRFwiLGhiYXI6XCJcXHUyMTBGXCIsaGNpcmM6XCJcXHUwMTI1XCIsaGVhcnRzOlwiXFx1MjY2NVwiLGhlYXJ0c3VpdDpcIlxcdTI2NjVcIixoZWxsaXA6XCJcXHUyMDI2XCIsaGVyY29uOlwiXFx1MjJCOVwiLGhmcjpcIlxcdXsxRDUyNX1cIixoa3NlYXJvdzpcIlxcdTI5MjVcIixoa3N3YXJvdzpcIlxcdTI5MjZcIixob2FycjpcIlxcdTIxRkZcIixob210aHQ6XCJcXHUyMjNCXCIsaG9va2xlZnRhcnJvdzpcIlxcdTIxQTlcIixob29rcmlnaHRhcnJvdzpcIlxcdTIxQUFcIixob3BmOlwiXFx1ezFENTU5fVwiLGhvcmJhcjpcIlxcdTIwMTVcIixoc2NyOlwiXFx1ezFENEJEfVwiLGhzbGFzaDpcIlxcdTIxMEZcIixoc3Ryb2s6XCJcXHUwMTI3XCIsaHlidWxsOlwiXFx1MjA0M1wiLGh5cGhlbjpcIlxcdTIwMTBcIixpYWN1dDpcIlxceEVEXCIsaWFjdXRlOlwiXFx4RURcIixpYzpcIlxcdTIwNjNcIixpY2lyOlwiXFx4RUVcIixpY2lyYzpcIlxceEVFXCIsaWN5OlwiXFx1MDQzOFwiLGllY3k6XCJcXHUwNDM1XCIsaWV4YzpcIlxceEExXCIsaWV4Y2w6XCJcXHhBMVwiLGlmZjpcIlxcdTIxRDRcIixpZnI6XCJcXHV7MUQ1MjZ9XCIsaWdyYXY6XCJcXHhFQ1wiLGlncmF2ZTpcIlxceEVDXCIsaWk6XCJcXHUyMTQ4XCIsaWlpaW50OlwiXFx1MkEwQ1wiLGlpaW50OlwiXFx1MjIyRFwiLGlpbmZpbjpcIlxcdTI5RENcIixpaW90YTpcIlxcdTIxMjlcIixpamxpZzpcIlxcdTAxMzNcIixpbWFjcjpcIlxcdTAxMkJcIixpbWFnZTpcIlxcdTIxMTFcIixpbWFnbGluZTpcIlxcdTIxMTBcIixpbWFncGFydDpcIlxcdTIxMTFcIixpbWF0aDpcIlxcdTAxMzFcIixpbW9mOlwiXFx1MjJCN1wiLGltcGVkOlwiXFx1MDFCNVwiLGluOlwiXFx1MjIwOFwiLGluY2FyZTpcIlxcdTIxMDVcIixpbmZpbjpcIlxcdTIyMUVcIixpbmZpbnRpZTpcIlxcdTI5RERcIixpbm9kb3Q6XCJcXHUwMTMxXCIsaW50OlwiXFx1MjIyQlwiLGludGNhbDpcIlxcdTIyQkFcIixpbnRlZ2VyczpcIlxcdTIxMjRcIixpbnRlcmNhbDpcIlxcdTIyQkFcIixpbnRsYXJoazpcIlxcdTJBMTdcIixpbnRwcm9kOlwiXFx1MkEzQ1wiLGlvY3k6XCJcXHUwNDUxXCIsaW9nb246XCJcXHUwMTJGXCIsaW9wZjpcIlxcdXsxRDU1QX1cIixpb3RhOlwiXFx1MDNCOVwiLGlwcm9kOlwiXFx1MkEzQ1wiLGlxdWVzOlwiXFx4QkZcIixpcXVlc3Q6XCJcXHhCRlwiLGlzY3I6XCJcXHV7MUQ0QkV9XCIsaXNpbjpcIlxcdTIyMDhcIixpc2luRTpcIlxcdTIyRjlcIixpc2luZG90OlwiXFx1MjJGNVwiLGlzaW5zOlwiXFx1MjJGNFwiLGlzaW5zdjpcIlxcdTIyRjNcIixpc2ludjpcIlxcdTIyMDhcIixpdDpcIlxcdTIwNjJcIixpdGlsZGU6XCJcXHUwMTI5XCIsaXVrY3k6XCJcXHUwNDU2XCIsaXVtOlwiXFx4RUZcIixpdW1sOlwiXFx4RUZcIixqY2lyYzpcIlxcdTAxMzVcIixqY3k6XCJcXHUwNDM5XCIsamZyOlwiXFx1ezFENTI3fVwiLGptYXRoOlwiXFx1MDIzN1wiLGpvcGY6XCJcXHV7MUQ1NUJ9XCIsanNjcjpcIlxcdXsxRDRCRn1cIixqc2VyY3k6XCJcXHUwNDU4XCIsanVrY3k6XCJcXHUwNDU0XCIsa2FwcGE6XCJcXHUwM0JBXCIsa2FwcGF2OlwiXFx1MDNGMFwiLGtjZWRpbDpcIlxcdTAxMzdcIixrY3k6XCJcXHUwNDNBXCIsa2ZyOlwiXFx1ezFENTI4fVwiLGtncmVlbjpcIlxcdTAxMzhcIixraGN5OlwiXFx1MDQ0NVwiLGtqY3k6XCJcXHUwNDVDXCIsa29wZjpcIlxcdXsxRDU1Q31cIixrc2NyOlwiXFx1ezFENEMwfVwiLGxBYXJyOlwiXFx1MjFEQVwiLGxBcnI6XCJcXHUyMUQwXCIsbEF0YWlsOlwiXFx1MjkxQlwiLGxCYXJyOlwiXFx1MjkwRVwiLGxFOlwiXFx1MjI2NlwiLGxFZzpcIlxcdTJBOEJcIixsSGFyOlwiXFx1Mjk2MlwiLGxhY3V0ZTpcIlxcdTAxM0FcIixsYWVtcHR5djpcIlxcdTI5QjRcIixsYWdyYW46XCJcXHUyMTEyXCIsbGFtYmRhOlwiXFx1MDNCQlwiLGxhbmc6XCJcXHUyN0U4XCIsbGFuZ2Q6XCJcXHUyOTkxXCIsbGFuZ2xlOlwiXFx1MjdFOFwiLGxhcDpcIlxcdTJBODVcIixsYXF1OlwiXFx4QUJcIixsYXF1bzpcIlxceEFCXCIsbGFycjpcIlxcdTIxOTBcIixsYXJyYjpcIlxcdTIxRTRcIixsYXJyYmZzOlwiXFx1MjkxRlwiLGxhcnJmczpcIlxcdTI5MURcIixsYXJyaGs6XCJcXHUyMUE5XCIsbGFycmxwOlwiXFx1MjFBQlwiLGxhcnJwbDpcIlxcdTI5MzlcIixsYXJyc2ltOlwiXFx1Mjk3M1wiLGxhcnJ0bDpcIlxcdTIxQTJcIixsYXQ6XCJcXHUyQUFCXCIsbGF0YWlsOlwiXFx1MjkxOVwiLGxhdGU6XCJcXHUyQUFEXCIsbGF0ZXM6XCJcXHUyQUFEXFx1RkUwMFwiLGxiYXJyOlwiXFx1MjkwQ1wiLGxiYnJrOlwiXFx1Mjc3MlwiLGxicmFjZTpcIntcIixsYnJhY2s6XCJbXCIsbGJya2U6XCJcXHUyOThCXCIsbGJya3NsZDpcIlxcdTI5OEZcIixsYnJrc2x1OlwiXFx1Mjk4RFwiLGxjYXJvbjpcIlxcdTAxM0VcIixsY2VkaWw6XCJcXHUwMTNDXCIsbGNlaWw6XCJcXHUyMzA4XCIsbGN1YjpcIntcIixsY3k6XCJcXHUwNDNCXCIsbGRjYTpcIlxcdTI5MzZcIixsZHF1bzpcIlxcdTIwMUNcIixsZHF1b3I6XCJcXHUyMDFFXCIsbGRyZGhhcjpcIlxcdTI5NjdcIixsZHJ1c2hhcjpcIlxcdTI5NEJcIixsZHNoOlwiXFx1MjFCMlwiLGxlOlwiXFx1MjI2NFwiLGxlZnRhcnJvdzpcIlxcdTIxOTBcIixsZWZ0YXJyb3d0YWlsOlwiXFx1MjFBMlwiLGxlZnRoYXJwb29uZG93bjpcIlxcdTIxQkRcIixsZWZ0aGFycG9vbnVwOlwiXFx1MjFCQ1wiLGxlZnRsZWZ0YXJyb3dzOlwiXFx1MjFDN1wiLGxlZnRyaWdodGFycm93OlwiXFx1MjE5NFwiLGxlZnRyaWdodGFycm93czpcIlxcdTIxQzZcIixsZWZ0cmlnaHRoYXJwb29uczpcIlxcdTIxQ0JcIixsZWZ0cmlnaHRzcXVpZ2Fycm93OlwiXFx1MjFBRFwiLGxlZnR0aHJlZXRpbWVzOlwiXFx1MjJDQlwiLGxlZzpcIlxcdTIyREFcIixsZXE6XCJcXHUyMjY0XCIsbGVxcTpcIlxcdTIyNjZcIixsZXFzbGFudDpcIlxcdTJBN0RcIixsZXM6XCJcXHUyQTdEXCIsbGVzY2M6XCJcXHUyQUE4XCIsbGVzZG90OlwiXFx1MkE3RlwiLGxlc2RvdG86XCJcXHUyQTgxXCIsbGVzZG90b3I6XCJcXHUyQTgzXCIsbGVzZzpcIlxcdTIyREFcXHVGRTAwXCIsbGVzZ2VzOlwiXFx1MkE5M1wiLGxlc3NhcHByb3g6XCJcXHUyQTg1XCIsbGVzc2RvdDpcIlxcdTIyRDZcIixsZXNzZXFndHI6XCJcXHUyMkRBXCIsbGVzc2VxcWd0cjpcIlxcdTJBOEJcIixsZXNzZ3RyOlwiXFx1MjI3NlwiLGxlc3NzaW06XCJcXHUyMjcyXCIsbGZpc2h0OlwiXFx1Mjk3Q1wiLGxmbG9vcjpcIlxcdTIzMEFcIixsZnI6XCJcXHV7MUQ1Mjl9XCIsbGc6XCJcXHUyMjc2XCIsbGdFOlwiXFx1MkE5MVwiLGxoYXJkOlwiXFx1MjFCRFwiLGxoYXJ1OlwiXFx1MjFCQ1wiLGxoYXJ1bDpcIlxcdTI5NkFcIixsaGJsazpcIlxcdTI1ODRcIixsamN5OlwiXFx1MDQ1OVwiLGxsOlwiXFx1MjI2QVwiLGxsYXJyOlwiXFx1MjFDN1wiLGxsY29ybmVyOlwiXFx1MjMxRVwiLGxsaGFyZDpcIlxcdTI5NkJcIixsbHRyaTpcIlxcdTI1RkFcIixsbWlkb3Q6XCJcXHUwMTQwXCIsbG1vdXN0OlwiXFx1MjNCMFwiLGxtb3VzdGFjaGU6XCJcXHUyM0IwXCIsbG5FOlwiXFx1MjI2OFwiLGxuYXA6XCJcXHUyQTg5XCIsbG5hcHByb3g6XCJcXHUyQTg5XCIsbG5lOlwiXFx1MkE4N1wiLGxuZXE6XCJcXHUyQTg3XCIsbG5lcXE6XCJcXHUyMjY4XCIsbG5zaW06XCJcXHUyMkU2XCIsbG9hbmc6XCJcXHUyN0VDXCIsbG9hcnI6XCJcXHUyMUZEXCIsbG9icms6XCJcXHUyN0U2XCIsbG9uZ2xlZnRhcnJvdzpcIlxcdTI3RjVcIixsb25nbGVmdHJpZ2h0YXJyb3c6XCJcXHUyN0Y3XCIsbG9uZ21hcHN0bzpcIlxcdTI3RkNcIixsb25ncmlnaHRhcnJvdzpcIlxcdTI3RjZcIixsb29wYXJyb3dsZWZ0OlwiXFx1MjFBQlwiLGxvb3BhcnJvd3JpZ2h0OlwiXFx1MjFBQ1wiLGxvcGFyOlwiXFx1Mjk4NVwiLGxvcGY6XCJcXHV7MUQ1NUR9XCIsbG9wbHVzOlwiXFx1MkEyRFwiLGxvdGltZXM6XCJcXHUyQTM0XCIsbG93YXN0OlwiXFx1MjIxN1wiLGxvd2JhcjpcIl9cIixsb3o6XCJcXHUyNUNBXCIsbG96ZW5nZTpcIlxcdTI1Q0FcIixsb3pmOlwiXFx1MjlFQlwiLGxwYXI6XCIoXCIsbHBhcmx0OlwiXFx1Mjk5M1wiLGxyYXJyOlwiXFx1MjFDNlwiLGxyY29ybmVyOlwiXFx1MjMxRlwiLGxyaGFyOlwiXFx1MjFDQlwiLGxyaGFyZDpcIlxcdTI5NkRcIixscm06XCJcXHUyMDBFXCIsbHJ0cmk6XCJcXHUyMkJGXCIsbHNhcXVvOlwiXFx1MjAzOVwiLGxzY3I6XCJcXHV7MUQ0QzF9XCIsbHNoOlwiXFx1MjFCMFwiLGxzaW06XCJcXHUyMjcyXCIsbHNpbWU6XCJcXHUyQThEXCIsbHNpbWc6XCJcXHUyQThGXCIsbHNxYjpcIltcIixsc3F1bzpcIlxcdTIwMThcIixsc3F1b3I6XCJcXHUyMDFBXCIsbHN0cm9rOlwiXFx1MDE0MlwiLGw6XCI8XCIsbHQ6XCI8XCIsbHRjYzpcIlxcdTJBQTZcIixsdGNpcjpcIlxcdTJBNzlcIixsdGRvdDpcIlxcdTIyRDZcIixsdGhyZWU6XCJcXHUyMkNCXCIsbHRpbWVzOlwiXFx1MjJDOVwiLGx0bGFycjpcIlxcdTI5NzZcIixsdHF1ZXN0OlwiXFx1MkE3QlwiLGx0clBhcjpcIlxcdTI5OTZcIixsdHJpOlwiXFx1MjVDM1wiLGx0cmllOlwiXFx1MjJCNFwiLGx0cmlmOlwiXFx1MjVDMlwiLGx1cmRzaGFyOlwiXFx1Mjk0QVwiLGx1cnVoYXI6XCJcXHUyOTY2XCIsbHZlcnRuZXFxOlwiXFx1MjI2OFxcdUZFMDBcIixsdm5FOlwiXFx1MjI2OFxcdUZFMDBcIixtRERvdDpcIlxcdTIyM0FcIixtYWM6XCJcXHhBRlwiLG1hY3I6XCJcXHhBRlwiLG1hbGU6XCJcXHUyNjQyXCIsbWFsdDpcIlxcdTI3MjBcIixtYWx0ZXNlOlwiXFx1MjcyMFwiLG1hcDpcIlxcdTIxQTZcIixtYXBzdG86XCJcXHUyMUE2XCIsbWFwc3RvZG93bjpcIlxcdTIxQTdcIixtYXBzdG9sZWZ0OlwiXFx1MjFBNFwiLG1hcHN0b3VwOlwiXFx1MjFBNVwiLG1hcmtlcjpcIlxcdTI1QUVcIixtY29tbWE6XCJcXHUyQTI5XCIsbWN5OlwiXFx1MDQzQ1wiLG1kYXNoOlwiXFx1MjAxNFwiLG1lYXN1cmVkYW5nbGU6XCJcXHUyMjIxXCIsbWZyOlwiXFx1ezFENTJBfVwiLG1obzpcIlxcdTIxMjdcIixtaWNyOlwiXFx4QjVcIixtaWNybzpcIlxceEI1XCIsbWlkOlwiXFx1MjIyM1wiLG1pZGFzdDpcIipcIixtaWRjaXI6XCJcXHUyQUYwXCIsbWlkZG86XCJcXHhCN1wiLG1pZGRvdDpcIlxceEI3XCIsbWludXM6XCJcXHUyMjEyXCIsbWludXNiOlwiXFx1MjI5RlwiLG1pbnVzZDpcIlxcdTIyMzhcIixtaW51c2R1OlwiXFx1MkEyQVwiLG1sY3A6XCJcXHUyQURCXCIsbWxkcjpcIlxcdTIwMjZcIixtbnBsdXM6XCJcXHUyMjEzXCIsbW9kZWxzOlwiXFx1MjJBN1wiLG1vcGY6XCJcXHV7MUQ1NUV9XCIsbXA6XCJcXHUyMjEzXCIsbXNjcjpcIlxcdXsxRDRDMn1cIixtc3Rwb3M6XCJcXHUyMjNFXCIsbXU6XCJcXHUwM0JDXCIsbXVsdGltYXA6XCJcXHUyMkI4XCIsbXVtYXA6XCJcXHUyMkI4XCIsbkdnOlwiXFx1MjJEOVxcdTAzMzhcIixuR3Q6XCJcXHUyMjZCXFx1MjBEMlwiLG5HdHY6XCJcXHUyMjZCXFx1MDMzOFwiLG5MZWZ0YXJyb3c6XCJcXHUyMUNEXCIsbkxlZnRyaWdodGFycm93OlwiXFx1MjFDRVwiLG5MbDpcIlxcdTIyRDhcXHUwMzM4XCIsbkx0OlwiXFx1MjI2QVxcdTIwRDJcIixuTHR2OlwiXFx1MjI2QVxcdTAzMzhcIixuUmlnaHRhcnJvdzpcIlxcdTIxQ0ZcIixuVkRhc2g6XCJcXHUyMkFGXCIsblZkYXNoOlwiXFx1MjJBRVwiLG5hYmxhOlwiXFx1MjIwN1wiLG5hY3V0ZTpcIlxcdTAxNDRcIixuYW5nOlwiXFx1MjIyMFxcdTIwRDJcIixuYXA6XCJcXHUyMjQ5XCIsbmFwRTpcIlxcdTJBNzBcXHUwMzM4XCIsbmFwaWQ6XCJcXHUyMjRCXFx1MDMzOFwiLG5hcG9zOlwiXFx1MDE0OVwiLG5hcHByb3g6XCJcXHUyMjQ5XCIsbmF0dXI6XCJcXHUyNjZFXCIsbmF0dXJhbDpcIlxcdTI2NkVcIixuYXR1cmFsczpcIlxcdTIxMTVcIixuYnM6XCJcXHhBMFwiLG5ic3A6XCJcXHhBMFwiLG5idW1wOlwiXFx1MjI0RVxcdTAzMzhcIixuYnVtcGU6XCJcXHUyMjRGXFx1MDMzOFwiLG5jYXA6XCJcXHUyQTQzXCIsbmNhcm9uOlwiXFx1MDE0OFwiLG5jZWRpbDpcIlxcdTAxNDZcIixuY29uZzpcIlxcdTIyNDdcIixuY29uZ2RvdDpcIlxcdTJBNkRcXHUwMzM4XCIsbmN1cDpcIlxcdTJBNDJcIixuY3k6XCJcXHUwNDNEXCIsbmRhc2g6XCJcXHUyMDEzXCIsbmU6XCJcXHUyMjYwXCIsbmVBcnI6XCJcXHUyMUQ3XCIsbmVhcmhrOlwiXFx1MjkyNFwiLG5lYXJyOlwiXFx1MjE5N1wiLG5lYXJyb3c6XCJcXHUyMTk3XCIsbmVkb3Q6XCJcXHUyMjUwXFx1MDMzOFwiLG5lcXVpdjpcIlxcdTIyNjJcIixuZXNlYXI6XCJcXHUyOTI4XCIsbmVzaW06XCJcXHUyMjQyXFx1MDMzOFwiLG5leGlzdDpcIlxcdTIyMDRcIixuZXhpc3RzOlwiXFx1MjIwNFwiLG5mcjpcIlxcdXsxRDUyQn1cIixuZ0U6XCJcXHUyMjY3XFx1MDMzOFwiLG5nZTpcIlxcdTIyNzFcIixuZ2VxOlwiXFx1MjI3MVwiLG5nZXFxOlwiXFx1MjI2N1xcdTAzMzhcIixuZ2Vxc2xhbnQ6XCJcXHUyQTdFXFx1MDMzOFwiLG5nZXM6XCJcXHUyQTdFXFx1MDMzOFwiLG5nc2ltOlwiXFx1MjI3NVwiLG5ndDpcIlxcdTIyNkZcIixuZ3RyOlwiXFx1MjI2RlwiLG5oQXJyOlwiXFx1MjFDRVwiLG5oYXJyOlwiXFx1MjFBRVwiLG5ocGFyOlwiXFx1MkFGMlwiLG5pOlwiXFx1MjIwQlwiLG5pczpcIlxcdTIyRkNcIixuaXNkOlwiXFx1MjJGQVwiLG5pdjpcIlxcdTIyMEJcIixuamN5OlwiXFx1MDQ1QVwiLG5sQXJyOlwiXFx1MjFDRFwiLG5sRTpcIlxcdTIyNjZcXHUwMzM4XCIsbmxhcnI6XCJcXHUyMTlBXCIsbmxkcjpcIlxcdTIwMjVcIixubGU6XCJcXHUyMjcwXCIsbmxlZnRhcnJvdzpcIlxcdTIxOUFcIixubGVmdHJpZ2h0YXJyb3c6XCJcXHUyMUFFXCIsbmxlcTpcIlxcdTIyNzBcIixubGVxcTpcIlxcdTIyNjZcXHUwMzM4XCIsbmxlcXNsYW50OlwiXFx1MkE3RFxcdTAzMzhcIixubGVzOlwiXFx1MkE3RFxcdTAzMzhcIixubGVzczpcIlxcdTIyNkVcIixubHNpbTpcIlxcdTIyNzRcIixubHQ6XCJcXHUyMjZFXCIsbmx0cmk6XCJcXHUyMkVBXCIsbmx0cmllOlwiXFx1MjJFQ1wiLG5taWQ6XCJcXHUyMjI0XCIsbm9wZjpcIlxcdXsxRDU1Rn1cIixubzpcIlxceEFDXCIsbm90OlwiXFx4QUNcIixub3RpbjpcIlxcdTIyMDlcIixub3RpbkU6XCJcXHUyMkY5XFx1MDMzOFwiLG5vdGluZG90OlwiXFx1MjJGNVxcdTAzMzhcIixub3RpbnZhOlwiXFx1MjIwOVwiLG5vdGludmI6XCJcXHUyMkY3XCIsbm90aW52YzpcIlxcdTIyRjZcIixub3RuaTpcIlxcdTIyMENcIixub3RuaXZhOlwiXFx1MjIwQ1wiLG5vdG5pdmI6XCJcXHUyMkZFXCIsbm90bml2YzpcIlxcdTIyRkRcIixucGFyOlwiXFx1MjIyNlwiLG5wYXJhbGxlbDpcIlxcdTIyMjZcIixucGFyc2w6XCJcXHUyQUZEXFx1MjBFNVwiLG5wYXJ0OlwiXFx1MjIwMlxcdTAzMzhcIixucG9saW50OlwiXFx1MkExNFwiLG5wcjpcIlxcdTIyODBcIixucHJjdWU6XCJcXHUyMkUwXCIsbnByZTpcIlxcdTJBQUZcXHUwMzM4XCIsbnByZWM6XCJcXHUyMjgwXCIsbnByZWNlcTpcIlxcdTJBQUZcXHUwMzM4XCIsbnJBcnI6XCJcXHUyMUNGXCIsbnJhcnI6XCJcXHUyMTlCXCIsbnJhcnJjOlwiXFx1MjkzM1xcdTAzMzhcIixucmFycnc6XCJcXHUyMTlEXFx1MDMzOFwiLG5yaWdodGFycm93OlwiXFx1MjE5QlwiLG5ydHJpOlwiXFx1MjJFQlwiLG5ydHJpZTpcIlxcdTIyRURcIixuc2M6XCJcXHUyMjgxXCIsbnNjY3VlOlwiXFx1MjJFMVwiLG5zY2U6XCJcXHUyQUIwXFx1MDMzOFwiLG5zY3I6XCJcXHV7MUQ0QzN9XCIsbnNob3J0bWlkOlwiXFx1MjIyNFwiLG5zaG9ydHBhcmFsbGVsOlwiXFx1MjIyNlwiLG5zaW06XCJcXHUyMjQxXCIsbnNpbWU6XCJcXHUyMjQ0XCIsbnNpbWVxOlwiXFx1MjI0NFwiLG5zbWlkOlwiXFx1MjIyNFwiLG5zcGFyOlwiXFx1MjIyNlwiLG5zcXN1YmU6XCJcXHUyMkUyXCIsbnNxc3VwZTpcIlxcdTIyRTNcIixuc3ViOlwiXFx1MjI4NFwiLG5zdWJFOlwiXFx1MkFDNVxcdTAzMzhcIixuc3ViZTpcIlxcdTIyODhcIixuc3Vic2V0OlwiXFx1MjI4MlxcdTIwRDJcIixuc3Vic2V0ZXE6XCJcXHUyMjg4XCIsbnN1YnNldGVxcTpcIlxcdTJBQzVcXHUwMzM4XCIsbnN1Y2M6XCJcXHUyMjgxXCIsbnN1Y2NlcTpcIlxcdTJBQjBcXHUwMzM4XCIsbnN1cDpcIlxcdTIyODVcIixuc3VwRTpcIlxcdTJBQzZcXHUwMzM4XCIsbnN1cGU6XCJcXHUyMjg5XCIsbnN1cHNldDpcIlxcdTIyODNcXHUyMEQyXCIsbnN1cHNldGVxOlwiXFx1MjI4OVwiLG5zdXBzZXRlcXE6XCJcXHUyQUM2XFx1MDMzOFwiLG50Z2w6XCJcXHUyMjc5XCIsbnRpbGQ6XCJcXHhGMVwiLG50aWxkZTpcIlxceEYxXCIsbnRsZzpcIlxcdTIyNzhcIixudHJpYW5nbGVsZWZ0OlwiXFx1MjJFQVwiLG50cmlhbmdsZWxlZnRlcTpcIlxcdTIyRUNcIixudHJpYW5nbGVyaWdodDpcIlxcdTIyRUJcIixudHJpYW5nbGVyaWdodGVxOlwiXFx1MjJFRFwiLG51OlwiXFx1MDNCRFwiLG51bTpcIiNcIixudW1lcm86XCJcXHUyMTE2XCIsbnVtc3A6XCJcXHUyMDA3XCIsbnZEYXNoOlwiXFx1MjJBRFwiLG52SGFycjpcIlxcdTI5MDRcIixudmFwOlwiXFx1MjI0RFxcdTIwRDJcIixudmRhc2g6XCJcXHUyMkFDXCIsbnZnZTpcIlxcdTIyNjVcXHUyMEQyXCIsbnZndDpcIj5cXHUyMEQyXCIsbnZpbmZpbjpcIlxcdTI5REVcIixudmxBcnI6XCJcXHUyOTAyXCIsbnZsZTpcIlxcdTIyNjRcXHUyMEQyXCIsbnZsdDpcIjxcXHUyMEQyXCIsbnZsdHJpZTpcIlxcdTIyQjRcXHUyMEQyXCIsbnZyQXJyOlwiXFx1MjkwM1wiLG52cnRyaWU6XCJcXHUyMkI1XFx1MjBEMlwiLG52c2ltOlwiXFx1MjIzQ1xcdTIwRDJcIixud0FycjpcIlxcdTIxRDZcIixud2FyaGs6XCJcXHUyOTIzXCIsbndhcnI6XCJcXHUyMTk2XCIsbndhcnJvdzpcIlxcdTIxOTZcIixud25lYXI6XCJcXHUyOTI3XCIsb1M6XCJcXHUyNEM4XCIsb2FjdXQ6XCJcXHhGM1wiLG9hY3V0ZTpcIlxceEYzXCIsb2FzdDpcIlxcdTIyOUJcIixvY2lyOlwiXFx4RjRcIixvY2lyYzpcIlxceEY0XCIsb2N5OlwiXFx1MDQzRVwiLG9kYXNoOlwiXFx1MjI5RFwiLG9kYmxhYzpcIlxcdTAxNTFcIixvZGl2OlwiXFx1MkEzOFwiLG9kb3Q6XCJcXHUyMjk5XCIsb2Rzb2xkOlwiXFx1MjlCQ1wiLG9lbGlnOlwiXFx1MDE1M1wiLG9mY2lyOlwiXFx1MjlCRlwiLG9mcjpcIlxcdXsxRDUyQ31cIixvZ29uOlwiXFx1MDJEQlwiLG9ncmF2OlwiXFx4RjJcIixvZ3JhdmU6XCJcXHhGMlwiLG9ndDpcIlxcdTI5QzFcIixvaGJhcjpcIlxcdTI5QjVcIixvaG06XCJcXHUwM0E5XCIsb2ludDpcIlxcdTIyMkVcIixvbGFycjpcIlxcdTIxQkFcIixvbGNpcjpcIlxcdTI5QkVcIixvbGNyb3NzOlwiXFx1MjlCQlwiLG9saW5lOlwiXFx1MjAzRVwiLG9sdDpcIlxcdTI5QzBcIixvbWFjcjpcIlxcdTAxNERcIixvbWVnYTpcIlxcdTAzQzlcIixvbWljcm9uOlwiXFx1MDNCRlwiLG9taWQ6XCJcXHUyOUI2XCIsb21pbnVzOlwiXFx1MjI5NlwiLG9vcGY6XCJcXHV7MUQ1NjB9XCIsb3BhcjpcIlxcdTI5QjdcIixvcGVycDpcIlxcdTI5QjlcIixvcGx1czpcIlxcdTIyOTVcIixvcjpcIlxcdTIyMjhcIixvcmFycjpcIlxcdTIxQkJcIixvcmQ6XCJcXHhCQVwiLG9yZGVyOlwiXFx1MjEzNFwiLG9yZGVyb2Y6XCJcXHUyMTM0XCIsb3JkZjpcIlxceEFBXCIsb3JkbTpcIlxceEJBXCIsb3JpZ29mOlwiXFx1MjJCNlwiLG9yb3I6XCJcXHUyQTU2XCIsb3JzbG9wZTpcIlxcdTJBNTdcIixvcnY6XCJcXHUyQTVCXCIsb3NjcjpcIlxcdTIxMzRcIixvc2xhczpcIlxceEY4XCIsb3NsYXNoOlwiXFx4RjhcIixvc29sOlwiXFx1MjI5OFwiLG90aWxkOlwiXFx4RjVcIixvdGlsZGU6XCJcXHhGNVwiLG90aW1lczpcIlxcdTIyOTdcIixvdGltZXNhczpcIlxcdTJBMzZcIixvdW06XCJcXHhGNlwiLG91bWw6XCJcXHhGNlwiLG92YmFyOlwiXFx1MjMzRFwiLHBhcjpcIlxceEI2XCIscGFyYTpcIlxceEI2XCIscGFyYWxsZWw6XCJcXHUyMjI1XCIscGFyc2ltOlwiXFx1MkFGM1wiLHBhcnNsOlwiXFx1MkFGRFwiLHBhcnQ6XCJcXHUyMjAyXCIscGN5OlwiXFx1MDQzRlwiLHBlcmNudDpcIiVcIixwZXJpb2Q6XCIuXCIscGVybWlsOlwiXFx1MjAzMFwiLHBlcnA6XCJcXHUyMkE1XCIscGVydGVuazpcIlxcdTIwMzFcIixwZnI6XCJcXHV7MUQ1MkR9XCIscGhpOlwiXFx1MDNDNlwiLHBoaXY6XCJcXHUwM0Q1XCIscGhtbWF0OlwiXFx1MjEzM1wiLHBob25lOlwiXFx1MjYwRVwiLHBpOlwiXFx1MDNDMFwiLHBpdGNoZm9yazpcIlxcdTIyRDRcIixwaXY6XCJcXHUwM0Q2XCIscGxhbmNrOlwiXFx1MjEwRlwiLHBsYW5ja2g6XCJcXHUyMTBFXCIscGxhbmt2OlwiXFx1MjEwRlwiLHBsdXM6XCIrXCIscGx1c2FjaXI6XCJcXHUyQTIzXCIscGx1c2I6XCJcXHUyMjlFXCIscGx1c2NpcjpcIlxcdTJBMjJcIixwbHVzZG86XCJcXHUyMjE0XCIscGx1c2R1OlwiXFx1MkEyNVwiLHBsdXNlOlwiXFx1MkE3MlwiLHBsdXNtOlwiXFx4QjFcIixwbHVzbW46XCJcXHhCMVwiLHBsdXNzaW06XCJcXHUyQTI2XCIscGx1c3R3bzpcIlxcdTJBMjdcIixwbTpcIlxceEIxXCIscG9pbnRpbnQ6XCJcXHUyQTE1XCIscG9wZjpcIlxcdXsxRDU2MX1cIixwb3VuOlwiXFx4QTNcIixwb3VuZDpcIlxceEEzXCIscHI6XCJcXHUyMjdBXCIscHJFOlwiXFx1MkFCM1wiLHByYXA6XCJcXHUyQUI3XCIscHJjdWU6XCJcXHUyMjdDXCIscHJlOlwiXFx1MkFBRlwiLHByZWM6XCJcXHUyMjdBXCIscHJlY2FwcHJveDpcIlxcdTJBQjdcIixwcmVjY3VybHllcTpcIlxcdTIyN0NcIixwcmVjZXE6XCJcXHUyQUFGXCIscHJlY25hcHByb3g6XCJcXHUyQUI5XCIscHJlY25lcXE6XCJcXHUyQUI1XCIscHJlY25zaW06XCJcXHUyMkU4XCIscHJlY3NpbTpcIlxcdTIyN0VcIixwcmltZTpcIlxcdTIwMzJcIixwcmltZXM6XCJcXHUyMTE5XCIscHJuRTpcIlxcdTJBQjVcIixwcm5hcDpcIlxcdTJBQjlcIixwcm5zaW06XCJcXHUyMkU4XCIscHJvZDpcIlxcdTIyMEZcIixwcm9mYWxhcjpcIlxcdTIzMkVcIixwcm9mbGluZTpcIlxcdTIzMTJcIixwcm9mc3VyZjpcIlxcdTIzMTNcIixwcm9wOlwiXFx1MjIxRFwiLHByb3B0bzpcIlxcdTIyMURcIixwcnNpbTpcIlxcdTIyN0VcIixwcnVyZWw6XCJcXHUyMkIwXCIscHNjcjpcIlxcdXsxRDRDNX1cIixwc2k6XCJcXHUwM0M4XCIscHVuY3NwOlwiXFx1MjAwOFwiLHFmcjpcIlxcdXsxRDUyRX1cIixxaW50OlwiXFx1MkEwQ1wiLHFvcGY6XCJcXHV7MUQ1NjJ9XCIscXByaW1lOlwiXFx1MjA1N1wiLHFzY3I6XCJcXHV7MUQ0QzZ9XCIscXVhdGVybmlvbnM6XCJcXHUyMTBEXCIscXVhdGludDpcIlxcdTJBMTZcIixxdWVzdDpcIj9cIixxdWVzdGVxOlwiXFx1MjI1RlwiLHF1bzonXCInLHF1b3Q6J1wiJyxyQWFycjpcIlxcdTIxREJcIixyQXJyOlwiXFx1MjFEMlwiLHJBdGFpbDpcIlxcdTI5MUNcIixyQmFycjpcIlxcdTI5MEZcIixySGFyOlwiXFx1Mjk2NFwiLHJhY2U6XCJcXHUyMjNEXFx1MDMzMVwiLHJhY3V0ZTpcIlxcdTAxNTVcIixyYWRpYzpcIlxcdTIyMUFcIixyYWVtcHR5djpcIlxcdTI5QjNcIixyYW5nOlwiXFx1MjdFOVwiLHJhbmdkOlwiXFx1Mjk5MlwiLHJhbmdlOlwiXFx1MjlBNVwiLHJhbmdsZTpcIlxcdTI3RTlcIixyYXF1OlwiXFx4QkJcIixyYXF1bzpcIlxceEJCXCIscmFycjpcIlxcdTIxOTJcIixyYXJyYXA6XCJcXHUyOTc1XCIscmFycmI6XCJcXHUyMUU1XCIscmFycmJmczpcIlxcdTI5MjBcIixyYXJyYzpcIlxcdTI5MzNcIixyYXJyZnM6XCJcXHUyOTFFXCIscmFycmhrOlwiXFx1MjFBQVwiLHJhcnJscDpcIlxcdTIxQUNcIixyYXJycGw6XCJcXHUyOTQ1XCIscmFycnNpbTpcIlxcdTI5NzRcIixyYXJydGw6XCJcXHUyMUEzXCIscmFycnc6XCJcXHUyMTlEXCIscmF0YWlsOlwiXFx1MjkxQVwiLHJhdGlvOlwiXFx1MjIzNlwiLHJhdGlvbmFsczpcIlxcdTIxMUFcIixyYmFycjpcIlxcdTI5MERcIixyYmJyazpcIlxcdTI3NzNcIixyYnJhY2U6XCJ9XCIscmJyYWNrOlwiXVwiLHJicmtlOlwiXFx1Mjk4Q1wiLHJicmtzbGQ6XCJcXHUyOThFXCIscmJya3NsdTpcIlxcdTI5OTBcIixyY2Fyb246XCJcXHUwMTU5XCIscmNlZGlsOlwiXFx1MDE1N1wiLHJjZWlsOlwiXFx1MjMwOVwiLHJjdWI6XCJ9XCIscmN5OlwiXFx1MDQ0MFwiLHJkY2E6XCJcXHUyOTM3XCIscmRsZGhhcjpcIlxcdTI5NjlcIixyZHF1bzpcIlxcdTIwMURcIixyZHF1b3I6XCJcXHUyMDFEXCIscmRzaDpcIlxcdTIxQjNcIixyZWFsOlwiXFx1MjExQ1wiLHJlYWxpbmU6XCJcXHUyMTFCXCIscmVhbHBhcnQ6XCJcXHUyMTFDXCIscmVhbHM6XCJcXHUyMTFEXCIscmVjdDpcIlxcdTI1QURcIixyZTpcIlxceEFFXCIscmVnOlwiXFx4QUVcIixyZmlzaHQ6XCJcXHUyOTdEXCIscmZsb29yOlwiXFx1MjMwQlwiLHJmcjpcIlxcdXsxRDUyRn1cIixyaGFyZDpcIlxcdTIxQzFcIixyaGFydTpcIlxcdTIxQzBcIixyaGFydWw6XCJcXHUyOTZDXCIscmhvOlwiXFx1MDNDMVwiLHJob3Y6XCJcXHUwM0YxXCIscmlnaHRhcnJvdzpcIlxcdTIxOTJcIixyaWdodGFycm93dGFpbDpcIlxcdTIxQTNcIixyaWdodGhhcnBvb25kb3duOlwiXFx1MjFDMVwiLHJpZ2h0aGFycG9vbnVwOlwiXFx1MjFDMFwiLHJpZ2h0bGVmdGFycm93czpcIlxcdTIxQzRcIixyaWdodGxlZnRoYXJwb29uczpcIlxcdTIxQ0NcIixyaWdodHJpZ2h0YXJyb3dzOlwiXFx1MjFDOVwiLHJpZ2h0c3F1aWdhcnJvdzpcIlxcdTIxOURcIixyaWdodHRocmVldGltZXM6XCJcXHUyMkNDXCIscmluZzpcIlxcdTAyREFcIixyaXNpbmdkb3RzZXE6XCJcXHUyMjUzXCIscmxhcnI6XCJcXHUyMUM0XCIscmxoYXI6XCJcXHUyMUNDXCIscmxtOlwiXFx1MjAwRlwiLHJtb3VzdDpcIlxcdTIzQjFcIixybW91c3RhY2hlOlwiXFx1MjNCMVwiLHJubWlkOlwiXFx1MkFFRVwiLHJvYW5nOlwiXFx1MjdFRFwiLHJvYXJyOlwiXFx1MjFGRVwiLHJvYnJrOlwiXFx1MjdFN1wiLHJvcGFyOlwiXFx1Mjk4NlwiLHJvcGY6XCJcXHV7MUQ1NjN9XCIscm9wbHVzOlwiXFx1MkEyRVwiLHJvdGltZXM6XCJcXHUyQTM1XCIscnBhcjpcIilcIixycGFyZ3Q6XCJcXHUyOTk0XCIscnBwb2xpbnQ6XCJcXHUyQTEyXCIscnJhcnI6XCJcXHUyMUM5XCIscnNhcXVvOlwiXFx1MjAzQVwiLHJzY3I6XCJcXHV7MUQ0Qzd9XCIscnNoOlwiXFx1MjFCMVwiLHJzcWI6XCJdXCIscnNxdW86XCJcXHUyMDE5XCIscnNxdW9yOlwiXFx1MjAxOVwiLHJ0aHJlZTpcIlxcdTIyQ0NcIixydGltZXM6XCJcXHUyMkNBXCIscnRyaTpcIlxcdTI1QjlcIixydHJpZTpcIlxcdTIyQjVcIixydHJpZjpcIlxcdTI1QjhcIixydHJpbHRyaTpcIlxcdTI5Q0VcIixydWx1aGFyOlwiXFx1Mjk2OFwiLHJ4OlwiXFx1MjExRVwiLHNhY3V0ZTpcIlxcdTAxNUJcIixzYnF1bzpcIlxcdTIwMUFcIixzYzpcIlxcdTIyN0JcIixzY0U6XCJcXHUyQUI0XCIsc2NhcDpcIlxcdTJBQjhcIixzY2Fyb246XCJcXHUwMTYxXCIsc2NjdWU6XCJcXHUyMjdEXCIsc2NlOlwiXFx1MkFCMFwiLHNjZWRpbDpcIlxcdTAxNUZcIixzY2lyYzpcIlxcdTAxNURcIixzY25FOlwiXFx1MkFCNlwiLHNjbmFwOlwiXFx1MkFCQVwiLHNjbnNpbTpcIlxcdTIyRTlcIixzY3BvbGludDpcIlxcdTJBMTNcIixzY3NpbTpcIlxcdTIyN0ZcIixzY3k6XCJcXHUwNDQxXCIsc2RvdDpcIlxcdTIyQzVcIixzZG90YjpcIlxcdTIyQTFcIixzZG90ZTpcIlxcdTJBNjZcIixzZUFycjpcIlxcdTIxRDhcIixzZWFyaGs6XCJcXHUyOTI1XCIsc2VhcnI6XCJcXHUyMTk4XCIsc2VhcnJvdzpcIlxcdTIxOThcIixzZWM6XCJcXHhBN1wiLHNlY3Q6XCJcXHhBN1wiLHNlbWk6XCI7XCIsc2Vzd2FyOlwiXFx1MjkyOVwiLHNldG1pbnVzOlwiXFx1MjIxNlwiLHNldG1uOlwiXFx1MjIxNlwiLHNleHQ6XCJcXHUyNzM2XCIsc2ZyOlwiXFx1ezFENTMwfVwiLHNmcm93bjpcIlxcdTIzMjJcIixzaGFycDpcIlxcdTI2NkZcIixzaGNoY3k6XCJcXHUwNDQ5XCIsc2hjeTpcIlxcdTA0NDhcIixzaG9ydG1pZDpcIlxcdTIyMjNcIixzaG9ydHBhcmFsbGVsOlwiXFx1MjIyNVwiLHNoOlwiXFx4QURcIixzaHk6XCJcXHhBRFwiLHNpZ21hOlwiXFx1MDNDM1wiLHNpZ21hZjpcIlxcdTAzQzJcIixzaWdtYXY6XCJcXHUwM0MyXCIsc2ltOlwiXFx1MjIzQ1wiLHNpbWRvdDpcIlxcdTJBNkFcIixzaW1lOlwiXFx1MjI0M1wiLHNpbWVxOlwiXFx1MjI0M1wiLHNpbWc6XCJcXHUyQTlFXCIsc2ltZ0U6XCJcXHUyQUEwXCIsc2ltbDpcIlxcdTJBOURcIixzaW1sRTpcIlxcdTJBOUZcIixzaW1uZTpcIlxcdTIyNDZcIixzaW1wbHVzOlwiXFx1MkEyNFwiLHNpbXJhcnI6XCJcXHUyOTcyXCIsc2xhcnI6XCJcXHUyMTkwXCIsc21hbGxzZXRtaW51czpcIlxcdTIyMTZcIixzbWFzaHA6XCJcXHUyQTMzXCIsc21lcGFyc2w6XCJcXHUyOUU0XCIsc21pZDpcIlxcdTIyMjNcIixzbWlsZTpcIlxcdTIzMjNcIixzbXQ6XCJcXHUyQUFBXCIsc210ZTpcIlxcdTJBQUNcIixzbXRlczpcIlxcdTJBQUNcXHVGRTAwXCIsc29mdGN5OlwiXFx1MDQ0Q1wiLHNvbDpcIi9cIixzb2xiOlwiXFx1MjlDNFwiLHNvbGJhcjpcIlxcdTIzM0ZcIixzb3BmOlwiXFx1ezFENTY0fVwiLHNwYWRlczpcIlxcdTI2NjBcIixzcGFkZXN1aXQ6XCJcXHUyNjYwXCIsc3BhcjpcIlxcdTIyMjVcIixzcWNhcDpcIlxcdTIyOTNcIixzcWNhcHM6XCJcXHUyMjkzXFx1RkUwMFwiLHNxY3VwOlwiXFx1MjI5NFwiLHNxY3VwczpcIlxcdTIyOTRcXHVGRTAwXCIsc3FzdWI6XCJcXHUyMjhGXCIsc3FzdWJlOlwiXFx1MjI5MVwiLHNxc3Vic2V0OlwiXFx1MjI4RlwiLHNxc3Vic2V0ZXE6XCJcXHUyMjkxXCIsc3FzdXA6XCJcXHUyMjkwXCIsc3FzdXBlOlwiXFx1MjI5MlwiLHNxc3Vwc2V0OlwiXFx1MjI5MFwiLHNxc3Vwc2V0ZXE6XCJcXHUyMjkyXCIsc3F1OlwiXFx1MjVBMVwiLHNxdWFyZTpcIlxcdTI1QTFcIixzcXVhcmY6XCJcXHUyNUFBXCIsc3F1ZjpcIlxcdTI1QUFcIixzcmFycjpcIlxcdTIxOTJcIixzc2NyOlwiXFx1ezFENEM4fVwiLHNzZXRtbjpcIlxcdTIyMTZcIixzc21pbGU6XCJcXHUyMzIzXCIsc3N0YXJmOlwiXFx1MjJDNlwiLHN0YXI6XCJcXHUyNjA2XCIsc3RhcmY6XCJcXHUyNjA1XCIsc3RyYWlnaHRlcHNpbG9uOlwiXFx1MDNGNVwiLHN0cmFpZ2h0cGhpOlwiXFx1MDNENVwiLHN0cm5zOlwiXFx4QUZcIixzdWI6XCJcXHUyMjgyXCIsc3ViRTpcIlxcdTJBQzVcIixzdWJkb3Q6XCJcXHUyQUJEXCIsc3ViZTpcIlxcdTIyODZcIixzdWJlZG90OlwiXFx1MkFDM1wiLHN1Ym11bHQ6XCJcXHUyQUMxXCIsc3VibkU6XCJcXHUyQUNCXCIsc3VibmU6XCJcXHUyMjhBXCIsc3VicGx1czpcIlxcdTJBQkZcIixzdWJyYXJyOlwiXFx1Mjk3OVwiLHN1YnNldDpcIlxcdTIyODJcIixzdWJzZXRlcTpcIlxcdTIyODZcIixzdWJzZXRlcXE6XCJcXHUyQUM1XCIsc3Vic2V0bmVxOlwiXFx1MjI4QVwiLHN1YnNldG5lcXE6XCJcXHUyQUNCXCIsc3Vic2ltOlwiXFx1MkFDN1wiLHN1YnN1YjpcIlxcdTJBRDVcIixzdWJzdXA6XCJcXHUyQUQzXCIsc3VjYzpcIlxcdTIyN0JcIixzdWNjYXBwcm94OlwiXFx1MkFCOFwiLHN1Y2NjdXJseWVxOlwiXFx1MjI3RFwiLHN1Y2NlcTpcIlxcdTJBQjBcIixzdWNjbmFwcHJveDpcIlxcdTJBQkFcIixzdWNjbmVxcTpcIlxcdTJBQjZcIixzdWNjbnNpbTpcIlxcdTIyRTlcIixzdWNjc2ltOlwiXFx1MjI3RlwiLHN1bTpcIlxcdTIyMTFcIixzdW5nOlwiXFx1MjY2QVwiLHN1cDpcIlxcdTIyODNcIixzdXAxOlwiXFx4QjlcIixzdXAyOlwiXFx4QjJcIixzdXAzOlwiXFx4QjNcIixzdXBFOlwiXFx1MkFDNlwiLHN1cGRvdDpcIlxcdTJBQkVcIixzdXBkc3ViOlwiXFx1MkFEOFwiLHN1cGU6XCJcXHUyMjg3XCIsc3VwZWRvdDpcIlxcdTJBQzRcIixzdXBoc29sOlwiXFx1MjdDOVwiLHN1cGhzdWI6XCJcXHUyQUQ3XCIsc3VwbGFycjpcIlxcdTI5N0JcIixzdXBtdWx0OlwiXFx1MkFDMlwiLHN1cG5FOlwiXFx1MkFDQ1wiLHN1cG5lOlwiXFx1MjI4QlwiLHN1cHBsdXM6XCJcXHUyQUMwXCIsc3Vwc2V0OlwiXFx1MjI4M1wiLHN1cHNldGVxOlwiXFx1MjI4N1wiLHN1cHNldGVxcTpcIlxcdTJBQzZcIixzdXBzZXRuZXE6XCJcXHUyMjhCXCIsc3Vwc2V0bmVxcTpcIlxcdTJBQ0NcIixzdXBzaW06XCJcXHUyQUM4XCIsc3Vwc3ViOlwiXFx1MkFENFwiLHN1cHN1cDpcIlxcdTJBRDZcIixzd0FycjpcIlxcdTIxRDlcIixzd2FyaGs6XCJcXHUyOTI2XCIsc3dhcnI6XCJcXHUyMTk5XCIsc3dhcnJvdzpcIlxcdTIxOTlcIixzd253YXI6XCJcXHUyOTJBXCIsc3psaTpcIlxceERGXCIsc3psaWc6XCJcXHhERlwiLHRhcmdldDpcIlxcdTIzMTZcIix0YXU6XCJcXHUwM0M0XCIsdGJyazpcIlxcdTIzQjRcIix0Y2Fyb246XCJcXHUwMTY1XCIsdGNlZGlsOlwiXFx1MDE2M1wiLHRjeTpcIlxcdTA0NDJcIix0ZG90OlwiXFx1MjBEQlwiLHRlbHJlYzpcIlxcdTIzMTVcIix0ZnI6XCJcXHV7MUQ1MzF9XCIsdGhlcmU0OlwiXFx1MjIzNFwiLHRoZXJlZm9yZTpcIlxcdTIyMzRcIix0aGV0YTpcIlxcdTAzQjhcIix0aGV0YXN5bTpcIlxcdTAzRDFcIix0aGV0YXY6XCJcXHUwM0QxXCIsdGhpY2thcHByb3g6XCJcXHUyMjQ4XCIsdGhpY2tzaW06XCJcXHUyMjNDXCIsdGhpbnNwOlwiXFx1MjAwOVwiLHRoa2FwOlwiXFx1MjI0OFwiLHRoa3NpbTpcIlxcdTIyM0NcIix0aG9yOlwiXFx4RkVcIix0aG9ybjpcIlxceEZFXCIsdGlsZGU6XCJcXHUwMkRDXCIsdGltZTpcIlxceEQ3XCIsdGltZXM6XCJcXHhEN1wiLHRpbWVzYjpcIlxcdTIyQTBcIix0aW1lc2JhcjpcIlxcdTJBMzFcIix0aW1lc2Q6XCJcXHUyQTMwXCIsdGludDpcIlxcdTIyMkRcIix0b2VhOlwiXFx1MjkyOFwiLHRvcDpcIlxcdTIyQTRcIix0b3Bib3Q6XCJcXHUyMzM2XCIsdG9wY2lyOlwiXFx1MkFGMVwiLHRvcGY6XCJcXHV7MUQ1NjV9XCIsdG9wZm9yazpcIlxcdTJBREFcIix0b3NhOlwiXFx1MjkyOVwiLHRwcmltZTpcIlxcdTIwMzRcIix0cmFkZTpcIlxcdTIxMjJcIix0cmlhbmdsZTpcIlxcdTI1QjVcIix0cmlhbmdsZWRvd246XCJcXHUyNUJGXCIsdHJpYW5nbGVsZWZ0OlwiXFx1MjVDM1wiLHRyaWFuZ2xlbGVmdGVxOlwiXFx1MjJCNFwiLHRyaWFuZ2xlcTpcIlxcdTIyNUNcIix0cmlhbmdsZXJpZ2h0OlwiXFx1MjVCOVwiLHRyaWFuZ2xlcmlnaHRlcTpcIlxcdTIyQjVcIix0cmlkb3Q6XCJcXHUyNUVDXCIsdHJpZTpcIlxcdTIyNUNcIix0cmltaW51czpcIlxcdTJBM0FcIix0cmlwbHVzOlwiXFx1MkEzOVwiLHRyaXNiOlwiXFx1MjlDRFwiLHRyaXRpbWU6XCJcXHUyQTNCXCIsdHJwZXppdW06XCJcXHUyM0UyXCIsdHNjcjpcIlxcdXsxRDRDOX1cIix0c2N5OlwiXFx1MDQ0NlwiLHRzaGN5OlwiXFx1MDQ1QlwiLHRzdHJvazpcIlxcdTAxNjdcIix0d2l4dDpcIlxcdTIyNkNcIix0d29oZWFkbGVmdGFycm93OlwiXFx1MjE5RVwiLHR3b2hlYWRyaWdodGFycm93OlwiXFx1MjFBMFwiLHVBcnI6XCJcXHUyMUQxXCIsdUhhcjpcIlxcdTI5NjNcIix1YWN1dDpcIlxceEZBXCIsdWFjdXRlOlwiXFx4RkFcIix1YXJyOlwiXFx1MjE5MVwiLHVicmN5OlwiXFx1MDQ1RVwiLHVicmV2ZTpcIlxcdTAxNkRcIix1Y2lyOlwiXFx4RkJcIix1Y2lyYzpcIlxceEZCXCIsdWN5OlwiXFx1MDQ0M1wiLHVkYXJyOlwiXFx1MjFDNVwiLHVkYmxhYzpcIlxcdTAxNzFcIix1ZGhhcjpcIlxcdTI5NkVcIix1ZmlzaHQ6XCJcXHUyOTdFXCIsdWZyOlwiXFx1ezFENTMyfVwiLHVncmF2OlwiXFx4RjlcIix1Z3JhdmU6XCJcXHhGOVwiLHVoYXJsOlwiXFx1MjFCRlwiLHVoYXJyOlwiXFx1MjFCRVwiLHVoYmxrOlwiXFx1MjU4MFwiLHVsY29ybjpcIlxcdTIzMUNcIix1bGNvcm5lcjpcIlxcdTIzMUNcIix1bGNyb3A6XCJcXHUyMzBGXCIsdWx0cmk6XCJcXHUyNUY4XCIsdW1hY3I6XCJcXHUwMTZCXCIsdW06XCJcXHhBOFwiLHVtbDpcIlxceEE4XCIsdW9nb246XCJcXHUwMTczXCIsdW9wZjpcIlxcdXsxRDU2Nn1cIix1cGFycm93OlwiXFx1MjE5MVwiLHVwZG93bmFycm93OlwiXFx1MjE5NVwiLHVwaGFycG9vbmxlZnQ6XCJcXHUyMUJGXCIsdXBoYXJwb29ucmlnaHQ6XCJcXHUyMUJFXCIsdXBsdXM6XCJcXHUyMjhFXCIsdXBzaTpcIlxcdTAzQzVcIix1cHNpaDpcIlxcdTAzRDJcIix1cHNpbG9uOlwiXFx1MDNDNVwiLHVwdXBhcnJvd3M6XCJcXHUyMUM4XCIsdXJjb3JuOlwiXFx1MjMxRFwiLHVyY29ybmVyOlwiXFx1MjMxRFwiLHVyY3JvcDpcIlxcdTIzMEVcIix1cmluZzpcIlxcdTAxNkZcIix1cnRyaTpcIlxcdTI1RjlcIix1c2NyOlwiXFx1ezFENENBfVwiLHV0ZG90OlwiXFx1MjJGMFwiLHV0aWxkZTpcIlxcdTAxNjlcIix1dHJpOlwiXFx1MjVCNVwiLHV0cmlmOlwiXFx1MjVCNFwiLHV1YXJyOlwiXFx1MjFDOFwiLHV1bTpcIlxceEZDXCIsdXVtbDpcIlxceEZDXCIsdXdhbmdsZTpcIlxcdTI5QTdcIix2QXJyOlwiXFx1MjFENVwiLHZCYXI6XCJcXHUyQUU4XCIsdkJhcnY6XCJcXHUyQUU5XCIsdkRhc2g6XCJcXHUyMkE4XCIsdmFuZ3J0OlwiXFx1Mjk5Q1wiLHZhcmVwc2lsb246XCJcXHUwM0Y1XCIsdmFya2FwcGE6XCJcXHUwM0YwXCIsdmFybm90aGluZzpcIlxcdTIyMDVcIix2YXJwaGk6XCJcXHUwM0Q1XCIsdmFycGk6XCJcXHUwM0Q2XCIsdmFycHJvcHRvOlwiXFx1MjIxRFwiLHZhcnI6XCJcXHUyMTk1XCIsdmFycmhvOlwiXFx1MDNGMVwiLHZhcnNpZ21hOlwiXFx1MDNDMlwiLHZhcnN1YnNldG5lcTpcIlxcdTIyOEFcXHVGRTAwXCIsdmFyc3Vic2V0bmVxcTpcIlxcdTJBQ0JcXHVGRTAwXCIsdmFyc3Vwc2V0bmVxOlwiXFx1MjI4QlxcdUZFMDBcIix2YXJzdXBzZXRuZXFxOlwiXFx1MkFDQ1xcdUZFMDBcIix2YXJ0aGV0YTpcIlxcdTAzRDFcIix2YXJ0cmlhbmdsZWxlZnQ6XCJcXHUyMkIyXCIsdmFydHJpYW5nbGVyaWdodDpcIlxcdTIyQjNcIix2Y3k6XCJcXHUwNDMyXCIsdmRhc2g6XCJcXHUyMkEyXCIsdmVlOlwiXFx1MjIyOFwiLHZlZWJhcjpcIlxcdTIyQkJcIix2ZWVlcTpcIlxcdTIyNUFcIix2ZWxsaXA6XCJcXHUyMkVFXCIsdmVyYmFyOlwifFwiLHZlcnQ6XCJ8XCIsdmZyOlwiXFx1ezFENTMzfVwiLHZsdHJpOlwiXFx1MjJCMlwiLHZuc3ViOlwiXFx1MjI4MlxcdTIwRDJcIix2bnN1cDpcIlxcdTIyODNcXHUyMEQyXCIsdm9wZjpcIlxcdXsxRDU2N31cIix2cHJvcDpcIlxcdTIyMURcIix2cnRyaTpcIlxcdTIyQjNcIix2c2NyOlwiXFx1ezFENENCfVwiLHZzdWJuRTpcIlxcdTJBQ0JcXHVGRTAwXCIsdnN1Ym5lOlwiXFx1MjI4QVxcdUZFMDBcIix2c3VwbkU6XCJcXHUyQUNDXFx1RkUwMFwiLHZzdXBuZTpcIlxcdTIyOEJcXHVGRTAwXCIsdnppZ3phZzpcIlxcdTI5OUFcIix3Y2lyYzpcIlxcdTAxNzVcIix3ZWRiYXI6XCJcXHUyQTVGXCIsd2VkZ2U6XCJcXHUyMjI3XCIsd2VkZ2VxOlwiXFx1MjI1OVwiLHdlaWVycDpcIlxcdTIxMThcIix3ZnI6XCJcXHV7MUQ1MzR9XCIsd29wZjpcIlxcdXsxRDU2OH1cIix3cDpcIlxcdTIxMThcIix3cjpcIlxcdTIyNDBcIix3cmVhdGg6XCJcXHUyMjQwXCIsd3NjcjpcIlxcdXsxRDRDQ31cIix4Y2FwOlwiXFx1MjJDMlwiLHhjaXJjOlwiXFx1MjVFRlwiLHhjdXA6XCJcXHUyMkMzXCIseGR0cmk6XCJcXHUyNUJEXCIseGZyOlwiXFx1ezFENTM1fVwiLHhoQXJyOlwiXFx1MjdGQVwiLHhoYXJyOlwiXFx1MjdGN1wiLHhpOlwiXFx1MDNCRVwiLHhsQXJyOlwiXFx1MjdGOFwiLHhsYXJyOlwiXFx1MjdGNVwiLHhtYXA6XCJcXHUyN0ZDXCIseG5pczpcIlxcdTIyRkJcIix4b2RvdDpcIlxcdTJBMDBcIix4b3BmOlwiXFx1ezFENTY5fVwiLHhvcGx1czpcIlxcdTJBMDFcIix4b3RpbWU6XCJcXHUyQTAyXCIseHJBcnI6XCJcXHUyN0Y5XCIseHJhcnI6XCJcXHUyN0Y2XCIseHNjcjpcIlxcdXsxRDRDRH1cIix4c3FjdXA6XCJcXHUyQTA2XCIseHVwbHVzOlwiXFx1MkEwNFwiLHh1dHJpOlwiXFx1MjVCM1wiLHh2ZWU6XCJcXHUyMkMxXCIseHdlZGdlOlwiXFx1MjJDMFwiLHlhY3V0OlwiXFx4RkRcIix5YWN1dGU6XCJcXHhGRFwiLHlhY3k6XCJcXHUwNDRGXCIseWNpcmM6XCJcXHUwMTc3XCIseWN5OlwiXFx1MDQ0QlwiLHllOlwiXFx4QTVcIix5ZW46XCJcXHhBNVwiLHlmcjpcIlxcdXsxRDUzNn1cIix5aWN5OlwiXFx1MDQ1N1wiLHlvcGY6XCJcXHV7MUQ1NkF9XCIseXNjcjpcIlxcdXsxRDRDRX1cIix5dWN5OlwiXFx1MDQ0RVwiLHl1bTpcIlxceEZGXCIseXVtbDpcIlxceEZGXCIsemFjdXRlOlwiXFx1MDE3QVwiLHpjYXJvbjpcIlxcdTAxN0VcIix6Y3k6XCJcXHUwNDM3XCIsemRvdDpcIlxcdTAxN0NcIix6ZWV0cmY6XCJcXHUyMTI4XCIsemV0YTpcIlxcdTAzQjZcIix6ZnI6XCJcXHV7MUQ1Mzd9XCIsemhjeTpcIlxcdTA0MzZcIix6aWdyYXJyOlwiXFx1MjFERFwiLHpvcGY6XCJcXHV7MUQ1NkJ9XCIsenNjcjpcIlxcdXsxRDRDRn1cIix6d2o6XCJcXHUyMDBEXCIsenduajpcIlxcdTIwMENcIn19KTt2YXIgWmk9QygoR3YsUWkpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFhpPUppKCk7UWkuZXhwb3J0cz1rZjt2YXIgeWY9e30uaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24ga2YoZSl7cmV0dXJuIHlmLmNhbGwoWGksZSk/WGlbZV06ITF9fSk7dmFyIGxyPUMoKEh2LER1KT0+e1widXNlIHN0cmljdFwiO3ZhciBldT1ZaSgpLHJ1PVZpKCksd2Y9TGUoKSxBZj1HaSgpLHV1PUtpKCksQmY9WmkoKTtEdS5leHBvcnRzPVVmO3ZhciBxZj17fS5oYXNPd25Qcm9wZXJ0eSxNZT1TdHJpbmcuZnJvbUNoYXJDb2RlLFRmPUZ1bmN0aW9uLnByb3RvdHlwZSx0dT17d2FybmluZzpudWxsLHJlZmVyZW5jZTpudWxsLHRleHQ6bnVsbCx3YXJuaW5nQ29udGV4dDpudWxsLHJlZmVyZW5jZUNvbnRleHQ6bnVsbCx0ZXh0Q29udGV4dDpudWxsLHBvc2l0aW9uOnt9LGFkZGl0aW9uYWw6bnVsbCxhdHRyaWJ1dGU6ITEsbm9uVGVybWluYXRlZDohMH0sU2Y9OSxudT0xMCxQZj0xMixfZj0zMixpdT0zOCxMZj01OSxPZj02MCxJZj02MSxOZj0zNSxSZj04OCx6Zj0xMjAsTWY9NjU1MzMsVWU9XCJuYW1lZFwiLEF0PVwiaGV4YWRlY2ltYWxcIixCdD1cImRlY2ltYWxcIixxdD17fTtxdFtBdF09MTY7cXRbQnRdPTEwO3ZhciBOcj17fTtOcltVZV09dXU7TnJbQnRdPXdmO05yW0F0XT1BZjt2YXIgYXU9MSxvdT0yLHN1PTMsY3U9NCxsdT01LHd0PTYsZnU9Nyx4ZT17fTt4ZVthdV09XCJOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb25cIjt4ZVtvdV09XCJOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIG11c3QgYmUgdGVybWluYXRlZCBieSBhIHNlbWljb2xvblwiO3hlW3N1XT1cIk5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIGNhbm5vdCBiZSBlbXB0eVwiO3hlW2N1XT1cIk51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGVtcHR5XCI7eGVbbHVdPVwiTmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgbXVzdCBiZSBrbm93blwiO3hlW3d0XT1cIk51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGRpc2FsbG93ZWRcIjt4ZVtmdV09XCJOdW1lcmljIGNoYXJhY3RlciByZWZlcmVuY2VzIGNhbm5vdCBiZSBvdXRzaWRlIHRoZSBwZXJtaXNzaWJsZSBVbmljb2RlIHJhbmdlXCI7ZnVuY3Rpb24gVWYoZSxyKXt2YXIgbj17fSx0LGE7cnx8KHI9e30pO2ZvcihhIGluIHR1KXQ9clthXSxuW2FdPXQ/P3R1W2FdO3JldHVybihuLnBvc2l0aW9uLmluZGVudHx8bi5wb3NpdGlvbi5zdGFydCkmJihuLmluZGVudD1uLnBvc2l0aW9uLmluZGVudHx8W10sbi5wb3NpdGlvbj1uLnBvc2l0aW9uLnN0YXJ0KSxZZihlLG4pfWZ1bmN0aW9uIFlmKGUscil7dmFyIG49ci5hZGRpdGlvbmFsLHQ9ci5ub25UZXJtaW5hdGVkLGE9ci50ZXh0LGk9ci5yZWZlcmVuY2UsdT1yLndhcm5pbmcsbz1yLnRleHRDb250ZXh0LHM9ci5yZWZlcmVuY2VDb250ZXh0LGw9ci53YXJuaW5nQ29udGV4dCxjPXIucG9zaXRpb24sZj1yLmluZGVudHx8W10sRD1lLmxlbmd0aCxoPTAscD0tMSxkPWMuY29sdW1ufHwxLG09Yy5saW5lfHwxLGc9XCJcIix4PVtdLEYsQixiLHYseSxrLEUsdyxBLHEsVCxOLF8sUCxTLEwsd2UsaixJO2Zvcih0eXBlb2Ygbj09XCJzdHJpbmdcIiYmKG49bi5jaGFyQ29kZUF0KDApKSxMPUooKSx3PXU/SzpUZixoLS0sRCsrOysraDxEOylpZih5PT09bnUmJihkPWZbcF18fDEpLHk9ZS5jaGFyQ29kZUF0KGgpLHk9PT1pdSl7aWYoRT1lLmNoYXJDb2RlQXQoaCsxKSxFPT09U2Z8fEU9PT1udXx8RT09PVBmfHxFPT09X2Z8fEU9PT1pdXx8RT09PU9mfHxFIT09RXx8biYmRT09PW4pe2crPU1lKHkpLGQrKztjb250aW51ZX1mb3IoXz1oKzEsTj1fLEk9XyxFPT09TmY/KEk9KytOLEU9ZS5jaGFyQ29kZUF0KEkpLEU9PT1SZnx8RT09PXpmPyhQPUF0LEk9KytOKTpQPUJ0KTpQPVVlLEY9XCJcIixUPVwiXCIsdj1cIlwiLFM9TnJbUF0sSS0tOysrSTxEJiYoRT1lLmNoYXJDb2RlQXQoSSksISFTKEUpKTspdis9TWUoRSksUD09PVVlJiZxZi5jYWxsKGV1LHYpJiYoRj12LFQ9ZXVbdl0pO2I9ZS5jaGFyQ29kZUF0KEkpPT09TGYsYiYmKEkrKyxCPVA9PT1VZT9CZih2KTohMSxCJiYoRj12LFQ9QikpLGo9MStJLV8sIWImJiF0fHwodj9QPT09VWU/KGImJiFUP3cobHUsMSk6KEYhPT12JiYoST1OK0YubGVuZ3RoLGo9MStJLU4sYj0hMSksYnx8KEE9Rj9hdTpzdSxyLmF0dHJpYnV0ZT8oRT1lLmNoYXJDb2RlQXQoSSksRT09PUlmPyh3KEEsaiksVD1udWxsKTp1dShFKT9UPW51bGw6dyhBLGopKTp3KEEsaikpKSxrPVQpOihifHx3KG91LGopLGs9cGFyc2VJbnQodixxdFtQXSksVmYoayk/KHcoZnUsaiksaz1NZShNZikpOmsgaW4gcnU/KHcod3Qsaiksaz1ydVtrXSk6KHE9XCJcIixqZihrKSYmdyh3dCxqKSxrPjY1NTM1JiYoay09NjU1MzYscSs9TWUoaz4+PjEwfDU1Mjk2KSxrPTU2MzIwfGsmMTAyMyksaz1xK01lKGspKSk6UCE9PVVlJiZ3KGN1LGopKSxrPyhtZSgpLEw9SigpLGg9SS0xLGQrPUktXysxLHgucHVzaChrKSx3ZT1KKCksd2Uub2Zmc2V0KyssaSYmaS5jYWxsKHMsayx7c3RhcnQ6TCxlbmQ6d2V9LGUuc2xpY2UoXy0xLEkpKSxMPXdlKToodj1lLnNsaWNlKF8tMSxJKSxnKz12LGQrPXYubGVuZ3RoLGg9SS0xKX1lbHNlIHk9PT0xMCYmKG0rKyxwKyssZD0wKSx5PT09eT8oZys9TWUoeSksZCsrKTptZSgpO3JldHVybiB4LmpvaW4oXCJcIik7ZnVuY3Rpb24gSigpe3JldHVybntsaW5lOm0sY29sdW1uOmQsb2Zmc2V0OmgrKGMub2Zmc2V0fHwwKX19ZnVuY3Rpb24gSyhnZSxNKXt2YXIgY3Q9SigpO2N0LmNvbHVtbis9TSxjdC5vZmZzZXQrPU0sdS5jYWxsKGwseGVbZ2VdLGN0LGdlKX1mdW5jdGlvbiBtZSgpe2cmJih4LnB1c2goZyksYSYmYS5jYWxsKG8sZyx7c3RhcnQ6TCxlbmQ6SigpfSksZz1cIlwiKX19ZnVuY3Rpb24gVmYoZSl7cmV0dXJuIGU+PTU1Mjk2JiZlPD01NzM0M3x8ZT4xMTE0MTExfWZ1bmN0aW9uIGpmKGUpe3JldHVybiBlPj0xJiZlPD04fHxlPT09MTF8fGU+PTEzJiZlPD0zMXx8ZT49MTI3JiZlPD0xNTl8fGU+PTY0OTc2JiZlPD02NTAwN3x8KGUmNjU1MzUpPT09NjU1MzV8fChlJjY1NTM1KT09PTY1NTM0fX0pO3ZhciBodT1DKChXdixkdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgJGY9X2UoKSxwdT1scigpO2R1LmV4cG9ydHM9R2Y7ZnVuY3Rpb24gR2YoZSl7cmV0dXJuIG4ucmF3PXQsbjtmdW5jdGlvbiByKGkpe2Zvcih2YXIgdT1lLm9mZnNldCxvPWkubGluZSxzPVtdOysrbyYmbyBpbiB1OylzLnB1c2goKHVbb118fDApKzEpO3JldHVybntzdGFydDppLGluZGVudDpzfX1mdW5jdGlvbiBuKGksdSxvKXtwdShpLHtwb3NpdGlvbjpyKHUpLHdhcm5pbmc6YSx0ZXh0Om8scmVmZXJlbmNlOm8sdGV4dENvbnRleHQ6ZSxyZWZlcmVuY2VDb250ZXh0OmV9KX1mdW5jdGlvbiB0KGksdSxvKXtyZXR1cm4gcHUoaSwkZihvLHtwb3NpdGlvbjpyKHUpLHdhcm5pbmc6YX0pKX1mdW5jdGlvbiBhKGksdSxvKXtvIT09MyYmZS5maWxlLm1lc3NhZ2UoaSx1KX19fSk7dmFyIHZ1PUMoKEt2LGd1KT0+e1widXNlIHN0cmljdFwiO2d1LmV4cG9ydHM9SGY7ZnVuY3Rpb24gSGYoZSl7cmV0dXJuIHI7ZnVuY3Rpb24gcihuLHQpe3ZhciBhPXRoaXMsaT1hLm9mZnNldCx1PVtdLG89YVtlK1wiTWV0aG9kc1wiXSxzPWFbZStcIlRva2VuaXplcnNcIl0sbD10LmxpbmUsYz10LmNvbHVtbixmLEQsaCxwLGQsbTtpZighbilyZXR1cm4gdTtmb3Ioay5ub3c9RixrLmZpbGU9YS5maWxlLGcoXCJcIik7bjspe2ZvcihmPS0xLEQ9by5sZW5ndGgsZD0hMTsrK2Y8RCYmKHA9b1tmXSxoPXNbcF0sIShoJiYoIWgub25seUF0U3RhcnR8fGEuYXRTdGFydCkmJighaC5ub3RJbkxpc3R8fCFhLmluTGlzdCkmJighaC5ub3RJbkJsb2NrfHwhYS5pbkJsb2NrKSYmKCFoLm5vdEluTGlua3x8IWEuaW5MaW5rKSYmKG09bi5sZW5ndGgsaC5hcHBseShhLFtrLG5dKSxkPW0hPT1uLmxlbmd0aCxkKSkpOyk7ZHx8YS5maWxlLmZhaWwobmV3IEVycm9yKFwiSW5maW5pdGUgbG9vcFwiKSxrLm5vdygpKX1yZXR1cm4gYS5lb2Y9RigpLHU7ZnVuY3Rpb24gZyhFKXtmb3IodmFyIHc9LTEsQT1FLmluZGV4T2YoYFxuYCk7QSE9PS0xOylsKyssdz1BLEE9RS5pbmRleE9mKGBcbmAsQSsxKTt3PT09LTE/Yys9RS5sZW5ndGg6Yz1FLmxlbmd0aC13LGwgaW4gaSYmKHchPT0tMT9jKz1pW2xdOmM8PWlbbF0mJihjPWlbbF0rMSkpfWZ1bmN0aW9uIHgoKXt2YXIgRT1bXSx3PWwrMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEE9bCsxO3c8QTspRS5wdXNoKChpW3ddfHwwKSsxKSx3Kys7cmV0dXJuIEV9fWZ1bmN0aW9uIEYoKXt2YXIgRT17bGluZTpsLGNvbHVtbjpjfTtyZXR1cm4gRS5vZmZzZXQ9YS50b09mZnNldChFKSxFfWZ1bmN0aW9uIEIoRSl7dGhpcy5zdGFydD1FLHRoaXMuZW5kPUYoKX1mdW5jdGlvbiBiKEUpe24uc2xpY2UoMCxFLmxlbmd0aCkhPT1FJiZhLmZpbGUuZmFpbChuZXcgRXJyb3IoXCJJbmNvcnJlY3RseSBlYXRlbiB2YWx1ZTogcGxlYXNlIHJlcG9ydCB0aGlzIHdhcm5pbmcgb24gaHR0cHM6Ly9naXQuaW8vdmc1RnRcIiksRigpKX1mdW5jdGlvbiB2KCl7dmFyIEU9RigpO3JldHVybiB3O2Z1bmN0aW9uIHcoQSxxKXt2YXIgVD1BLnBvc2l0aW9uLE49VD9ULnN0YXJ0OkUsXz1bXSxQPVQmJlQuZW5kLmxpbmUsUz1FLmxpbmU7aWYoQS5wb3NpdGlvbj1uZXcgQihOKSxUJiZxJiZULmluZGVudCl7aWYoXz1ULmluZGVudCxQPFMpe2Zvcig7KytQPFM7KV8ucHVzaCgoaVtQXXx8MCkrMSk7Xy5wdXNoKEUuY29sdW1uKX1xPV8uY29uY2F0KHEpfXJldHVybiBBLnBvc2l0aW9uLmluZGVudD1xfHxbXSxBfX1mdW5jdGlvbiB5KEUsdyl7dmFyIEE9dz93LmNoaWxkcmVuOnUscT1BW0EubGVuZ3RoLTFdLFQ7cmV0dXJuIHEmJkUudHlwZT09PXEudHlwZSYmKEUudHlwZT09PVwidGV4dFwifHxFLnR5cGU9PT1cImJsb2NrcXVvdGVcIikmJm11KHEpJiZtdShFKSYmKFQ9RS50eXBlPT09XCJ0ZXh0XCI/V2Y6S2YsRT1ULmNhbGwoYSxxLEUpKSxFIT09cSYmQS5wdXNoKEUpLGEuYXRTdGFydCYmdS5sZW5ndGghPT0wJiZhLmV4aXRTdGFydCgpLEV9ZnVuY3Rpb24gayhFKXt2YXIgdz14KCksQT12KCkscT1GKCk7cmV0dXJuIGIoRSksVC5yZXNldD1OLE4udGVzdD1fLFQudGVzdD1fLG49bi5zbGljZShFLmxlbmd0aCksZyhFKSx3PXcoKSxUO2Z1bmN0aW9uIFQoUCxTKXtyZXR1cm4gQSh5KEEoUCksUyksdyl9ZnVuY3Rpb24gTigpe3ZhciBQPVQuYXBwbHkobnVsbCxhcmd1bWVudHMpO3JldHVybiBsPXEubGluZSxjPXEuY29sdW1uLG49RStuLFB9ZnVuY3Rpb24gXygpe3ZhciBQPUEoe30pO3JldHVybiBsPXEubGluZSxjPXEuY29sdW1uLG49RStuLFAucG9zaXRpb259fX19ZnVuY3Rpb24gbXUoZSl7dmFyIHIsbjtyZXR1cm4gZS50eXBlIT09XCJ0ZXh0XCJ8fCFlLnBvc2l0aW9uPyEwOihyPWUucG9zaXRpb24uc3RhcnQsbj1lLnBvc2l0aW9uLmVuZCxyLmxpbmUhPT1uLmxpbmV8fG4uY29sdW1uLXIuY29sdW1uPT09ZS52YWx1ZS5sZW5ndGgpfWZ1bmN0aW9uIFdmKGUscil7cmV0dXJuIGUudmFsdWUrPXIudmFsdWUsZX1mdW5jdGlvbiBLZihlLHIpe3JldHVybiB0aGlzLm9wdGlvbnMuY29tbW9ubWFya3x8dGhpcy5vcHRpb25zLmdmbT9yOihlLmNoaWxkcmVuPWUuY2hpbGRyZW4uY29uY2F0KHIuY2hpbGRyZW4pLGUpfX0pO3ZhciBDdT1DKChKdixFdSk9PntcInVzZSBzdHJpY3RcIjtFdS5leHBvcnRzPVJyO3ZhciBUdD1bXCJcXFxcXCIsXCJgXCIsXCIqXCIsXCJ7XCIsXCJ9XCIsXCJbXCIsXCJdXCIsXCIoXCIsXCIpXCIsXCIjXCIsXCIrXCIsXCItXCIsXCIuXCIsXCIhXCIsXCJfXCIsXCI+XCJdLFN0PVR0LmNvbmNhdChbXCJ+XCIsXCJ8XCJdKSxGdT1TdC5jb25jYXQoW2BcbmAsJ1wiJyxcIiRcIixcIiVcIixcIiZcIixcIidcIixcIixcIixcIi9cIixcIjpcIixcIjtcIixcIjxcIixcIj1cIixcIj9cIixcIkBcIixcIl5cIl0pO1JyLmRlZmF1bHQ9VHQ7UnIuZ2ZtPVN0O1JyLmNvbW1vbm1hcms9RnU7ZnVuY3Rpb24gUnIoZSl7dmFyIHI9ZXx8e307cmV0dXJuIHIuY29tbW9ubWFyaz9GdTpyLmdmbT9TdDpUdH19KTt2YXIgeHU9QygoWHYsYnUpPT57XCJ1c2Ugc3RyaWN0XCI7YnUuZXhwb3J0cz1bXCJhZGRyZXNzXCIsXCJhcnRpY2xlXCIsXCJhc2lkZVwiLFwiYmFzZVwiLFwiYmFzZWZvbnRcIixcImJsb2NrcXVvdGVcIixcImJvZHlcIixcImNhcHRpb25cIixcImNlbnRlclwiLFwiY29sXCIsXCJjb2xncm91cFwiLFwiZGRcIixcImRldGFpbHNcIixcImRpYWxvZ1wiLFwiZGlyXCIsXCJkaXZcIixcImRsXCIsXCJkdFwiLFwiZmllbGRzZXRcIixcImZpZ2NhcHRpb25cIixcImZpZ3VyZVwiLFwiZm9vdGVyXCIsXCJmb3JtXCIsXCJmcmFtZVwiLFwiZnJhbWVzZXRcIixcImgxXCIsXCJoMlwiLFwiaDNcIixcImg0XCIsXCJoNVwiLFwiaDZcIixcImhlYWRcIixcImhlYWRlclwiLFwiaGdyb3VwXCIsXCJoclwiLFwiaHRtbFwiLFwiaWZyYW1lXCIsXCJsZWdlbmRcIixcImxpXCIsXCJsaW5rXCIsXCJtYWluXCIsXCJtZW51XCIsXCJtZW51aXRlbVwiLFwibWV0YVwiLFwibmF2XCIsXCJub2ZyYW1lc1wiLFwib2xcIixcIm9wdGdyb3VwXCIsXCJvcHRpb25cIixcInBcIixcInBhcmFtXCIsXCJwcmVcIixcInNlY3Rpb25cIixcInNvdXJjZVwiLFwidGl0bGVcIixcInN1bW1hcnlcIixcInRhYmxlXCIsXCJ0Ym9keVwiLFwidGRcIixcInRmb290XCIsXCJ0aFwiLFwidGhlYWRcIixcInRpdGxlXCIsXCJ0clwiLFwidHJhY2tcIixcInVsXCJdfSk7dmFyIFB0PUMoKFF2LHl1KT0+e1widXNlIHN0cmljdFwiO3l1LmV4cG9ydHM9e3Bvc2l0aW9uOiEwLGdmbTohMCxjb21tb25tYXJrOiExLHBlZGFudGljOiExLGJsb2Nrczp4dSgpfX0pO3ZhciB3dT1DKChadixrdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgSmY9X2UoKSxYZj1DdSgpLFFmPVB0KCk7a3UuZXhwb3J0cz1aZjtmdW5jdGlvbiBaZihlKXt2YXIgcj10aGlzLG49ci5vcHRpb25zLHQsYTtpZihlPT1udWxsKWU9e307ZWxzZSBpZih0eXBlb2YgZT09XCJvYmplY3RcIillPUpmKGUpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB2YWx1ZSBgXCIrZStcImAgZm9yIHNldHRpbmcgYG9wdGlvbnNgXCIpO2Zvcih0IGluIFFmKXtpZihhPWVbdF0sYT09bnVsbCYmKGE9blt0XSksdCE9PVwiYmxvY2tzXCImJnR5cGVvZiBhIT1cImJvb2xlYW5cInx8dD09PVwiYmxvY2tzXCImJnR5cGVvZiBhIT1cIm9iamVjdFwiKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgdmFsdWUgYFwiK2ErXCJgIGZvciBzZXR0aW5nIGBvcHRpb25zLlwiK3QrXCJgXCIpO2VbdF09YX1yZXR1cm4gci5vcHRpb25zPWUsci5lc2NhcGU9WGYoZSkscn19KTt2YXIgcXU9QygoZUYsQnUpPT57XCJ1c2Ugc3RyaWN0XCI7QnUuZXhwb3J0cz1BdTtmdW5jdGlvbiBBdShlKXtpZihlPT1udWxsKXJldHVybiBuRDtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gdEQoZSk7aWYodHlwZW9mIGU9PVwib2JqZWN0XCIpcmV0dXJuXCJsZW5ndGhcImluIGU/ckQoZSk6ZUQoZSk7aWYodHlwZW9mIGU9PVwiZnVuY3Rpb25cIilyZXR1cm4gZTt0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBmdW5jdGlvbiwgc3RyaW5nLCBvciBvYmplY3QgYXMgdGVzdFwiKX1mdW5jdGlvbiBlRChlKXtyZXR1cm4gcjtmdW5jdGlvbiByKG4pe3ZhciB0O2Zvcih0IGluIGUpaWYoblt0XSE9PWVbdF0pcmV0dXJuITE7cmV0dXJuITB9fWZ1bmN0aW9uIHJEKGUpe2Zvcih2YXIgcj1bXSxuPS0xOysrbjxlLmxlbmd0aDspcltuXT1BdShlW25dKTtyZXR1cm4gdDtmdW5jdGlvbiB0KCl7Zm9yKHZhciBhPS0xOysrYTxyLmxlbmd0aDspaWYoclthXS5hcHBseSh0aGlzLGFyZ3VtZW50cykpcmV0dXJuITA7cmV0dXJuITF9fWZ1bmN0aW9uIHREKGUpe3JldHVybiByO2Z1bmN0aW9uIHIobil7cmV0dXJuISEobiYmbi50eXBlPT09ZSl9fWZ1bmN0aW9uIG5EKCl7cmV0dXJuITB9fSk7dmFyIFN1PUMoKHJGLFR1KT0+e1R1LmV4cG9ydHM9aUQ7ZnVuY3Rpb24gaUQoZSl7cmV0dXJuIGV9fSk7dmFyIE91PUMoKHRGLEx1KT0+e1widXNlIHN0cmljdFwiO0x1LmV4cG9ydHM9enI7dmFyIHVEPXF1KCksYUQ9U3UoKSxQdT0hMCxfdT1cInNraXBcIixfdD0hMTt6ci5DT05USU5VRT1QdTt6ci5TS0lQPV91O3pyLkVYSVQ9X3Q7ZnVuY3Rpb24genIoZSxyLG4sdCl7dmFyIGEsaTt0eXBlb2Ygcj09XCJmdW5jdGlvblwiJiZ0eXBlb2YgbiE9XCJmdW5jdGlvblwiJiYodD1uLG49cixyPW51bGwpLGk9dUQociksYT10Py0xOjEsdShlLG51bGwsW10pKCk7ZnVuY3Rpb24gdShvLHMsbCl7dmFyIGM9dHlwZW9mIG89PVwib2JqZWN0XCImJm8hPT1udWxsP286e30sZjtyZXR1cm4gdHlwZW9mIGMudHlwZT09XCJzdHJpbmdcIiYmKGY9dHlwZW9mIGMudGFnTmFtZT09XCJzdHJpbmdcIj9jLnRhZ05hbWU6dHlwZW9mIGMubmFtZT09XCJzdHJpbmdcIj9jLm5hbWU6dm9pZCAwLEQuZGlzcGxheU5hbWU9XCJub2RlIChcIithRChjLnR5cGUrKGY/XCI8XCIrZitcIj5cIjpcIlwiKSkrXCIpXCIpLEQ7ZnVuY3Rpb24gRCgpe3ZhciBoPWwuY29uY2F0KG8pLHA9W10sZCxtO2lmKCghcnx8aShvLHMsbFtsLmxlbmd0aC0xXXx8bnVsbCkpJiYocD1vRChuKG8sbCkpLHBbMF09PT1fdCkpcmV0dXJuIHA7aWYoby5jaGlsZHJlbiYmcFswXSE9PV91KWZvcihtPSh0P28uY2hpbGRyZW4ubGVuZ3RoOi0xKSthO20+LTEmJm08by5jaGlsZHJlbi5sZW5ndGg7KXtpZihkPXUoby5jaGlsZHJlblttXSxtLGgpKCksZFswXT09PV90KXJldHVybiBkO209dHlwZW9mIGRbMV09PVwibnVtYmVyXCI/ZFsxXTptK2F9cmV0dXJuIHB9fX1mdW5jdGlvbiBvRChlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT1cIm9iamVjdFwiJiZcImxlbmd0aFwiaW4gZT9lOnR5cGVvZiBlPT1cIm51bWJlclwiP1tQdSxlXTpbZV19fSk7dmFyIE51PUMoKG5GLEl1KT0+e1widXNlIHN0cmljdFwiO0l1LmV4cG9ydHM9VXI7dmFyIE1yPU91KCksc0Q9TXIuQ09OVElOVUUsY0Q9TXIuU0tJUCxsRD1Nci5FWElUO1VyLkNPTlRJTlVFPXNEO1VyLlNLSVA9Y0Q7VXIuRVhJVD1sRDtmdW5jdGlvbiBVcihlLHIsbix0KXt0eXBlb2Ygcj09XCJmdW5jdGlvblwiJiZ0eXBlb2YgbiE9XCJmdW5jdGlvblwiJiYodD1uLG49cixyPW51bGwpLE1yKGUscixhLHQpO2Z1bmN0aW9uIGEoaSx1KXt2YXIgbz11W3UubGVuZ3RoLTFdLHM9bz9vLmNoaWxkcmVuLmluZGV4T2YoaSk6bnVsbDtyZXR1cm4gbihpLHMsbyl9fX0pO3ZhciB6dT1DKChpRixSdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgZkQ9TnUoKTtSdS5leHBvcnRzPUREO2Z1bmN0aW9uIEREKGUscil7cmV0dXJuIGZEKGUscj9wRDpkRCksZX1mdW5jdGlvbiBwRChlKXtkZWxldGUgZS5wb3NpdGlvbn1mdW5jdGlvbiBkRChlKXtlLnBvc2l0aW9uPXZvaWQgMH19KTt2YXIgWXU9QygodUYsVXUpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIE11PV9lKCksaEQ9enUoKTtVdS5leHBvcnRzPXZEO3ZhciBtRD1gXG5gLGdEPS9cXHJcXG58XFxyL2c7ZnVuY3Rpb24gdkQoKXt2YXIgZT10aGlzLHI9U3RyaW5nKGUuZmlsZSksbj17bGluZToxLGNvbHVtbjoxLG9mZnNldDowfSx0PU11KG4pLGE7cmV0dXJuIHI9ci5yZXBsYWNlKGdELG1EKSxyLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKHI9ci5zbGljZSgxKSx0LmNvbHVtbisrLHQub2Zmc2V0KyspLGE9e3R5cGU6XCJyb290XCIsY2hpbGRyZW46ZS50b2tlbml6ZUJsb2NrKHIsdCkscG9zaXRpb246e3N0YXJ0Om4sZW5kOmUuZW9mfHxNdShuKX19LGUub3B0aW9ucy5wb3NpdGlvbnx8aEQoYSwhMCksYX19KTt2YXIganU9QygoYUYsVnUpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIEZEPS9eWyBcXHRdKihcXG58JCkvO1Z1LmV4cG9ydHM9RUQ7ZnVuY3Rpb24gRUQoZSxyLG4pe2Zvcih2YXIgdCxhPVwiXCIsaT0wLHU9ci5sZW5ndGg7aTx1JiYodD1GRC5leGVjKHIuc2xpY2UoaSkpLHQhPW51bGwpOylpKz10WzBdLmxlbmd0aCxhKz10WzBdO2lmKGEhPT1cIlwiKXtpZihuKXJldHVybiEwO2UoYSl9fX0pO3ZhciBZcj1DKChvRiwkdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgcGU9XCJcIixMdDskdS5leHBvcnRzPUNEO2Z1bmN0aW9uIENEKGUscil7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihcImV4cGVjdGVkIGEgc3RyaW5nXCIpO2lmKHI9PT0xKXJldHVybiBlO2lmKHI9PT0yKXJldHVybiBlK2U7dmFyIG49ZS5sZW5ndGgqcjtpZihMdCE9PWV8fHR5cGVvZiBMdD5cInVcIilMdD1lLHBlPVwiXCI7ZWxzZSBpZihwZS5sZW5ndGg+PW4pcmV0dXJuIHBlLnN1YnN0cigwLG4pO2Zvcig7bj5wZS5sZW5ndGgmJnI+MTspciYxJiYocGUrPWUpLHI+Pj0xLGUrPWU7cmV0dXJuIHBlKz1lLHBlPXBlLnN1YnN0cigwLG4pLHBlfX0pO3ZhciBPdD1DKChzRixHdSk9PntcInVzZSBzdHJpY3RcIjtHdS5leHBvcnRzPWJEO2Z1bmN0aW9uIGJEKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvXFxuKyQvLFwiXCIpfX0pO3ZhciBLdT1DKChjRixXdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgeEQ9WXIoKSx5RD1PdCgpO1d1LmV4cG9ydHM9QUQ7dmFyIEl0PWBcbmAsSHU9XCJcdFwiLE50PVwiIFwiLGtEPTQsd0Q9eEQoTnQsa0QpO2Z1bmN0aW9uIEFEKGUscixuKXtmb3IodmFyIHQ9LTEsYT1yLmxlbmd0aCxpPVwiXCIsdT1cIlwiLG89XCJcIixzPVwiXCIsbCxjLGY7Kyt0PGE7KWlmKGw9ci5jaGFyQXQodCksZilpZihmPSExLGkrPW8sdSs9cyxvPVwiXCIscz1cIlwiLGw9PT1JdClvPWwscz1sO2Vsc2UgZm9yKGkrPWwsdSs9bDsrK3Q8YTspe2lmKGw9ci5jaGFyQXQodCksIWx8fGw9PT1JdCl7cz1sLG89bDticmVha31pKz1sLHUrPWx9ZWxzZSBpZihsPT09TnQmJnIuY2hhckF0KHQrMSk9PT1sJiZyLmNoYXJBdCh0KzIpPT09bCYmci5jaGFyQXQodCszKT09PWwpbys9d0QsdCs9MyxmPSEwO2Vsc2UgaWYobD09PUh1KW8rPWwsZj0hMDtlbHNle2ZvcihjPVwiXCI7bD09PUh1fHxsPT09TnQ7KWMrPWwsbD1yLmNoYXJBdCgrK3QpO2lmKGwhPT1JdClicmVhaztvKz1jK2wscys9bH1pZih1KXJldHVybiBuPyEwOmUoaSkoe3R5cGU6XCJjb2RlXCIsbGFuZzpudWxsLG1ldGE6bnVsbCx2YWx1ZTp5RCh1KX0pfX0pO3ZhciBRdT1DKChsRixYdSk9PntcInVzZSBzdHJpY3RcIjtYdS5leHBvcnRzPVNEO3ZhciBWcj1gXG5gLGZyPVwiXHRcIixZZT1cIiBcIixCRD1cIn5cIixKdT1cImBcIixxRD0zLFREPTQ7ZnVuY3Rpb24gU0QoZSxyLG4pe3ZhciB0PXRoaXMsYT10Lm9wdGlvbnMuZ2ZtLGk9ci5sZW5ndGgrMSx1PTAsbz1cIlwiLHMsbCxjLGYsRCxoLHAsZCxtLGcseCxGLEI7aWYoYSl7Zm9yKDt1PGkmJihjPXIuY2hhckF0KHUpLCEoYyE9PVllJiZjIT09ZnIpKTspbys9Yyx1Kys7aWYoRj11LGM9ci5jaGFyQXQodSksIShjIT09QkQmJmMhPT1KdSkpe2Zvcih1KyssbD1jLHM9MSxvKz1jO3U8aSYmKGM9ci5jaGFyQXQodSksYz09PWwpOylvKz1jLHMrKyx1Kys7aWYoIShzPHFEKSl7Zm9yKDt1PGkmJihjPXIuY2hhckF0KHUpLCEoYyE9PVllJiZjIT09ZnIpKTspbys9Yyx1Kys7Zm9yKGY9XCJcIixwPVwiXCI7dTxpJiYoYz1yLmNoYXJBdCh1KSwhKGM9PT1Wcnx8bD09PUp1JiZjPT09bCkpOyljPT09WWV8fGM9PT1mcj9wKz1jOihmKz1wK2MscD1cIlwiKSx1Kys7aWYoYz1yLmNoYXJBdCh1KSwhKGMmJmMhPT1Wcikpe2lmKG4pcmV0dXJuITA7Qj1lLm5vdygpLEIuY29sdW1uKz1vLmxlbmd0aCxCLm9mZnNldCs9by5sZW5ndGgsbys9ZixmPXQuZGVjb2RlLnJhdyh0LnVuZXNjYXBlKGYpLEIpLHAmJihvKz1wKSxwPVwiXCIsZz1cIlwiLHg9XCJcIixkPVwiXCIsbT1cIlwiO2Zvcih2YXIgYj0hMDt1PGk7KXtpZihjPXIuY2hhckF0KHUpLGQrPWcsbSs9eCxnPVwiXCIseD1cIlwiLGMhPT1Wcil7ZCs9Yyx4Kz1jLHUrKztjb250aW51ZX1mb3IoYj8obys9YyxiPSExKTooZys9Yyx4Kz1jKSxwPVwiXCIsdSsrO3U8aSYmKGM9ci5jaGFyQXQodSksYz09PVllKTspcCs9Yyx1Kys7aWYoZys9cCx4Kz1wLnNsaWNlKEYpLCEocC5sZW5ndGg+PVREKSl7Zm9yKHA9XCJcIjt1PGkmJihjPXIuY2hhckF0KHUpLGM9PT1sKTspcCs9Yyx1Kys7aWYoZys9cCx4Kz1wLCEocC5sZW5ndGg8cykpe2ZvcihwPVwiXCI7dTxpJiYoYz1yLmNoYXJBdCh1KSwhKGMhPT1ZZSYmYyE9PWZyKSk7KWcrPWMseCs9Yyx1Kys7aWYoIWN8fGM9PT1WcilicmVha319fWZvcihvKz1kK2csdT0tMSxpPWYubGVuZ3RoOysrdTxpOylpZihjPWYuY2hhckF0KHUpLGM9PT1ZZXx8Yz09PWZyKUR8fChEPWYuc2xpY2UoMCx1KSk7ZWxzZSBpZihEKXtoPWYuc2xpY2UodSk7YnJlYWt9cmV0dXJuIGUobykoe3R5cGU6XCJjb2RlXCIsbGFuZzpEfHxmfHxudWxsLG1ldGE6aHx8bnVsbCx2YWx1ZTptfSl9fX19fX0pO3ZhciBPZT1DKChWZSxadSk9PntWZT1adS5leHBvcnRzPVBEO2Z1bmN0aW9uIFBEKGUpe3JldHVybiBlLnRyaW0/ZS50cmltKCk6VmUucmlnaHQoVmUubGVmdChlKSl9VmUubGVmdD1mdW5jdGlvbihlKXtyZXR1cm4gZS50cmltTGVmdD9lLnRyaW1MZWZ0KCk6ZS5yZXBsYWNlKC9eXFxzXFxzKi8sXCJcIil9O1ZlLnJpZ2h0PWZ1bmN0aW9uKGUpe2lmKGUudHJpbVJpZ2h0KXJldHVybiBlLnRyaW1SaWdodCgpO2Zvcih2YXIgcj0vXFxzLyxuPWUubGVuZ3RoO3IudGVzdChlLmNoYXJBdCgtLW4pKTspO3JldHVybiBlLnNsaWNlKDAsbisxKX19KTt2YXIganI9QygoZkYsZWEpPT57XCJ1c2Ugc3RyaWN0XCI7ZWEuZXhwb3J0cz1fRDtmdW5jdGlvbiBfRChlLHIsbix0KXtmb3IodmFyIGE9ZS5sZW5ndGgsaT0tMSx1LG87KytpPGE7KWlmKHU9ZVtpXSxvPXVbMV18fHt9LCEoby5wZWRhbnRpYyE9PXZvaWQgMCYmby5wZWRhbnRpYyE9PW4ub3B0aW9ucy5wZWRhbnRpYykmJiEoby5jb21tb25tYXJrIT09dm9pZCAwJiZvLmNvbW1vbm1hcmshPT1uLm9wdGlvbnMuY29tbW9ubWFyaykmJnJbdVswXV0uYXBwbHkobix0KSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgaWE9QygoREYsbmEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIExEPU9lKCksT0Q9anIoKTtuYS5leHBvcnRzPUlEO3ZhciBSdD1gXG5gLHJhPVwiXHRcIix6dD1cIiBcIix0YT1cIj5cIjtmdW5jdGlvbiBJRChlLHIsbil7Zm9yKHZhciB0PXRoaXMsYT10Lm9mZnNldCxpPXQuYmxvY2tUb2tlbml6ZXJzLHU9dC5pbnRlcnJ1cHRCbG9ja3F1b3RlLG89ZS5ub3coKSxzPW8ubGluZSxsPXIubGVuZ3RoLGM9W10sZj1bXSxEPVtdLGgscD0wLGQsbSxnLHgsRixCLGIsdjtwPGwmJihkPXIuY2hhckF0KHApLCEoZCE9PXp0JiZkIT09cmEpKTspcCsrO2lmKHIuY2hhckF0KHApPT09dGEpe2lmKG4pcmV0dXJuITA7Zm9yKHA9MDtwPGw7KXtmb3IoZz1yLmluZGV4T2YoUnQscCksQj1wLGI9ITEsZz09PS0xJiYoZz1sKTtwPGwmJihkPXIuY2hhckF0KHApLCEoZCE9PXp0JiZkIT09cmEpKTspcCsrO2lmKHIuY2hhckF0KHApPT09dGE/KHArKyxiPSEwLHIuY2hhckF0KHApPT09enQmJnArKyk6cD1CLHg9ci5zbGljZShwLGcpLCFiJiYhTEQoeCkpe3A9QjticmVha31pZighYiYmKG09ci5zbGljZShwKSxPRCh1LGksdCxbZSxtLCEwXSkpKWJyZWFrO0Y9Qj09PXA/eDpyLnNsaWNlKEIsZyksRC5wdXNoKHAtQiksYy5wdXNoKEYpLGYucHVzaCh4KSxwPWcrMX1mb3IocD0tMSxsPUQubGVuZ3RoLGg9ZShjLmpvaW4oUnQpKTsrK3A8bDspYVtzXT0oYVtzXXx8MCkrRFtwXSxzKys7cmV0dXJuIHY9dC5lbnRlckJsb2NrKCksZj10LnRva2VuaXplQmxvY2soZi5qb2luKFJ0KSxvKSx2KCksaCh7dHlwZTpcImJsb2NrcXVvdGVcIixjaGlsZHJlbjpmfSl9fX0pO3ZhciBvYT1DKChwRixhYSk9PntcInVzZSBzdHJpY3RcIjthYS5leHBvcnRzPVJEO3ZhciB1YT1gXG5gLERyPVwiXHRcIixwcj1cIiBcIixkcj1cIiNcIixORD02O2Z1bmN0aW9uIFJEKGUscixuKXtmb3IodmFyIHQ9dGhpcyxhPXQub3B0aW9ucy5wZWRhbnRpYyxpPXIubGVuZ3RoKzEsdT0tMSxvPWUubm93KCkscz1cIlwiLGw9XCJcIixjLGYsRDsrK3U8aTspe2lmKGM9ci5jaGFyQXQodSksYyE9PXByJiZjIT09RHIpe3UtLTticmVha31zKz1jfWZvcihEPTA7Kyt1PD1pOyl7aWYoYz1yLmNoYXJBdCh1KSxjIT09ZHIpe3UtLTticmVha31zKz1jLEQrK31pZighKEQ+TkQpJiYhKCFEfHwhYSYmci5jaGFyQXQodSsxKT09PWRyKSl7Zm9yKGk9ci5sZW5ndGgrMSxmPVwiXCI7Kyt1PGk7KXtpZihjPXIuY2hhckF0KHUpLGMhPT1wciYmYyE9PURyKXt1LS07YnJlYWt9Zis9Y31pZighKCFhJiZmLmxlbmd0aD09PTAmJmMmJmMhPT11YSkpe2lmKG4pcmV0dXJuITA7Zm9yKHMrPWYsZj1cIlwiLGw9XCJcIjsrK3U8aSYmKGM9ci5jaGFyQXQodSksISghY3x8Yz09PXVhKSk7KXtpZihjIT09cHImJmMhPT1EciYmYyE9PWRyKXtsKz1mK2MsZj1cIlwiO2NvbnRpbnVlfWZvcig7Yz09PXByfHxjPT09RHI7KWYrPWMsYz1yLmNoYXJBdCgrK3UpO2lmKCFhJiZsJiYhZiYmYz09PWRyKXtsKz1jO2NvbnRpbnVlfWZvcig7Yz09PWRyOylmKz1jLGM9ci5jaGFyQXQoKyt1KTtmb3IoO2M9PT1wcnx8Yz09PURyOylmKz1jLGM9ci5jaGFyQXQoKyt1KTt1LS19cmV0dXJuIG8uY29sdW1uKz1zLmxlbmd0aCxvLm9mZnNldCs9cy5sZW5ndGgscys9bCtmLGUocykoe3R5cGU6XCJoZWFkaW5nXCIsZGVwdGg6RCxjaGlsZHJlbjp0LnRva2VuaXplSW5saW5lKGwsbyl9KX19fX0pO3ZhciBsYT1DKChkRixjYSk9PntcInVzZSBzdHJpY3RcIjtjYS5leHBvcnRzPSREO3ZhciB6RD1cIlx0XCIsTUQ9YFxuYCxzYT1cIiBcIixVRD1cIipcIixZRD1cIi1cIixWRD1cIl9cIixqRD0zO2Z1bmN0aW9uICREKGUscixuKXtmb3IodmFyIHQ9LTEsYT1yLmxlbmd0aCsxLGk9XCJcIix1LG8scyxsOysrdDxhJiYodT1yLmNoYXJBdCh0KSwhKHUhPT16RCYmdSE9PXNhKSk7KWkrPXU7aWYoISh1IT09VUQmJnUhPT1ZRCYmdSE9PVZEKSlmb3Iobz11LGkrPXUscz0xLGw9XCJcIjsrK3Q8YTspaWYodT1yLmNoYXJBdCh0KSx1PT09bylzKyssaSs9bCtvLGw9XCJcIjtlbHNlIGlmKHU9PT1zYSlsKz11O2Vsc2UgcmV0dXJuIHM+PWpEJiYoIXV8fHU9PT1NRCk/KGkrPWwsbj8hMDplKGkpKHt0eXBlOlwidGhlbWF0aWNCcmVha1wifSkpOnZvaWQgMH19KTt2YXIgTXQ9QygoaEYsRGEpPT57XCJ1c2Ugc3RyaWN0XCI7RGEuZXhwb3J0cz1LRDt2YXIgZmE9XCJcdFwiLEdEPVwiIFwiLEhEPTEsV0Q9NDtmdW5jdGlvbiBLRChlKXtmb3IodmFyIHI9MCxuPTAsdD1lLmNoYXJBdChyKSxhPXt9LGksdT0wO3Q9PT1mYXx8dD09PUdEOyl7Zm9yKGk9dD09PWZhP1dEOkhELG4rPWksaT4xJiYobj1NYXRoLmZsb29yKG4vaSkqaSk7dTxuOylhWysrdV09cjt0PWUuY2hhckF0KCsrcil9cmV0dXJue2luZGVudDpuLHN0b3BzOmF9fX0pO3ZhciBoYT1DKChtRixkYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgSkQ9T2UoKSxYRD1ZcigpLFFEPU10KCk7ZGEuZXhwb3J0cz1ycDt2YXIgcGE9YFxuYCxaRD1cIiBcIixlcD1cIiFcIjtmdW5jdGlvbiBycChlLHIpe3ZhciBuPWUuc3BsaXQocGEpLHQ9bi5sZW5ndGgrMSxhPTEvMCxpPVtdLHUsbyxzO2ZvcihuLnVuc2hpZnQoWEQoWkQscikrZXApO3QtLTspaWYobz1RRChuW3RdKSxpW3RdPW8uc3RvcHMsSkQoblt0XSkubGVuZ3RoIT09MClpZihvLmluZGVudClvLmluZGVudD4wJiZvLmluZGVudDxhJiYoYT1vLmluZGVudCk7ZWxzZXthPTEvMDticmVha31pZihhIT09MS8wKWZvcih0PW4ubGVuZ3RoO3QtLTspe2ZvcihzPWlbdF0sdT1hO3UmJiEodSBpbiBzKTspdS0tO25bdF09blt0XS5zbGljZShzW3VdKzEpfXJldHVybiBuLnNoaWZ0KCksbi5qb2luKHBhKX19KTt2YXIgQ2E9QygoZ0YsRWEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHRwPU9lKCksbnA9WXIoKSxtYT1MZSgpLGlwPU10KCksdXA9aGEoKSxhcD1qcigpO0VhLmV4cG9ydHM9ZHA7dmFyIFV0PVwiKlwiLG9wPVwiX1wiLGdhPVwiK1wiLFl0PVwiLVwiLHZhPVwiLlwiLGRlPVwiIFwiLHRlPWBcbmAsJHI9XCJcdFwiLEZhPVwiKVwiLHNwPVwieFwiLHllPTQsY3A9L1xcblxcbig/IVxccyokKS8sbHA9L15cXFsoWyBYXFx0eF0pXVsgXFx0XS8sZnA9L14oWyBcXHRdKikoWyorLV18XFxkK1suKV0pKCB7MSw0fSg/ISApfCB8XFx0fCR8KD89XFxuKSkoW15cXG5dKikvLERwPS9eKFsgXFx0XSopKFsqKy1dfFxcZCtbLildKShbIFxcdF0rKS8scHA9L14oIHsxLDR9fFxcdCk/L2dtO2Z1bmN0aW9uIGRwKGUscixuKXtmb3IodmFyIHQ9dGhpcyxhPXQub3B0aW9ucy5jb21tb25tYXJrLGk9dC5vcHRpb25zLnBlZGFudGljLHU9dC5ibG9ja1Rva2VuaXplcnMsbz10LmludGVycnVwdExpc3Qscz0wLGw9ci5sZW5ndGgsYz1udWxsLGYsRCxoLHAsZCxtLGcseCxGLEIsYix2LHksayxFLHcsQSxxLFQsTj0hMSxfLFAsUyxMO3M8bCYmKHA9ci5jaGFyQXQocyksIShwIT09JHImJnAhPT1kZSkpOylzKys7aWYocD1yLmNoYXJBdChzKSxwPT09VXR8fHA9PT1nYXx8cD09PVl0KWQ9cCxoPSExO2Vsc2V7Zm9yKGg9ITAsRD1cIlwiO3M8bCYmKHA9ci5jaGFyQXQocyksISFtYShwKSk7KUQrPXAscysrO2lmKHA9ci5jaGFyQXQocyksIUR8fCEocD09PXZhfHxhJiZwPT09RmEpfHxuJiZEIT09XCIxXCIpcmV0dXJuO2M9cGFyc2VJbnQoRCwxMCksZD1wfWlmKHA9ci5jaGFyQXQoKytzKSwhKHAhPT1kZSYmcCE9PSRyJiYoaXx8cCE9PXRlJiZwIT09XCJcIikpKXtpZihuKXJldHVybiEwO2ZvcihzPTAsaz1bXSxFPVtdLHc9W107czxsOyl7Zm9yKG09ci5pbmRleE9mKHRlLHMpLGc9cyx4PSExLEw9ITEsbT09PS0xJiYobT1sKSxmPTA7czxsOyl7aWYocD1yLmNoYXJBdChzKSxwPT09JHIpZis9eWUtZiV5ZTtlbHNlIGlmKHA9PT1kZSlmKys7ZWxzZSBicmVhaztzKyt9aWYoQSYmZj49QS5pbmRlbnQmJihMPSEwKSxwPXIuY2hhckF0KHMpLEY9bnVsbCwhTCl7aWYocD09PVV0fHxwPT09Z2F8fHA9PT1ZdClGPXAscysrLGYrKztlbHNle2ZvcihEPVwiXCI7czxsJiYocD1yLmNoYXJBdChzKSwhIW1hKHApKTspRCs9cCxzKys7cD1yLmNoYXJBdChzKSxzKyssRCYmKHA9PT12YXx8YSYmcD09PUZhKSYmKEY9cCxmKz1ELmxlbmd0aCsxKX1pZihGKWlmKHA9ci5jaGFyQXQocykscD09PSRyKWYrPXllLWYleWUscysrO2Vsc2UgaWYocD09PWRlKXtmb3IoUz1zK3llO3M8UyYmci5jaGFyQXQocyk9PT1kZTspcysrLGYrKztzPT09UyYmci5jaGFyQXQocyk9PT1kZSYmKHMtPXllLTEsZi09eWUtMSl9ZWxzZSBwIT09dGUmJnAhPT1cIlwiJiYoRj1udWxsKX1pZihGKXtpZighaSYmZCE9PUYpYnJlYWs7eD0hMH1lbHNlIWEmJiFMJiZyLmNoYXJBdChnKT09PWRlP0w9ITA6YSYmQSYmKEw9Zj49QS5pbmRlbnR8fGY+eWUpLHg9ITEscz1nO2lmKGI9ci5zbGljZShnLG0pLEI9Zz09PXM/YjpyLnNsaWNlKHMsbSksKEY9PT1VdHx8Rj09PW9wfHxGPT09WXQpJiZ1LnRoZW1hdGljQnJlYWsuY2FsbCh0LGUsYiwhMCkpYnJlYWs7aWYodj15LHk9IXgmJiF0cChCKS5sZW5ndGgsTCYmQSlBLnZhbHVlPUEudmFsdWUuY29uY2F0KHcsYiksRT1FLmNvbmNhdCh3LGIpLHc9W107ZWxzZSBpZih4KXcubGVuZ3RoIT09MCYmKE49ITAsQS52YWx1ZS5wdXNoKFwiXCIpLEEudHJhaWw9dy5jb25jYXQoKSksQT17dmFsdWU6W2JdLGluZGVudDpmLHRyYWlsOltdfSxrLnB1c2goQSksRT1FLmNvbmNhdCh3LGIpLHc9W107ZWxzZSBpZih5KXtpZih2JiYhYSlicmVhazt3LnB1c2goYil9ZWxzZXtpZih2fHxhcChvLHUsdCxbZSxiLCEwXSkpYnJlYWs7QS52YWx1ZT1BLnZhbHVlLmNvbmNhdCh3LGIpLEU9RS5jb25jYXQodyxiKSx3PVtdfXM9bSsxfWZvcihfPWUoRS5qb2luKHRlKSkucmVzZXQoe3R5cGU6XCJsaXN0XCIsb3JkZXJlZDpoLHN0YXJ0OmMsc3ByZWFkOk4sY2hpbGRyZW46W119KSxxPXQuZW50ZXJMaXN0KCksVD10LmVudGVyQmxvY2soKSxzPS0xLGw9ay5sZW5ndGg7KytzPGw7KUE9a1tzXS52YWx1ZS5qb2luKHRlKSxQPWUubm93KCksZShBKShocCh0LEEsUCksXyksQT1rW3NdLnRyYWlsLmpvaW4odGUpLHMhPT1sLTEmJihBKz10ZSksZShBKTtyZXR1cm4gcSgpLFQoKSxffX1mdW5jdGlvbiBocChlLHIsbil7dmFyIHQ9ZS5vZmZzZXQsYT1lLm9wdGlvbnMucGVkYW50aWM/bXA6Z3AsaT1udWxsLHUsbztyZXR1cm4gcj1hLmFwcGx5KG51bGwsYXJndW1lbnRzKSxlLm9wdGlvbnMuZ2ZtJiYodT1yLm1hdGNoKGxwKSx1JiYobz11WzBdLmxlbmd0aCxpPXVbMV0udG9Mb3dlckNhc2UoKT09PXNwLHRbbi5saW5lXSs9byxyPXIuc2xpY2UobykpKSx7dHlwZTpcImxpc3RJdGVtXCIsc3ByZWFkOmNwLnRlc3QociksY2hlY2tlZDppLGNoaWxkcmVuOmUudG9rZW5pemVCbG9jayhyLG4pfX1mdW5jdGlvbiBtcChlLHIsbil7dmFyIHQ9ZS5vZmZzZXQsYT1uLmxpbmU7cmV0dXJuIHI9ci5yZXBsYWNlKERwLGkpLGE9bi5saW5lLHIucmVwbGFjZShwcCxpKTtmdW5jdGlvbiBpKHUpe3JldHVybiB0W2FdPSh0W2FdfHwwKSt1Lmxlbmd0aCxhKyssXCJcIn19ZnVuY3Rpb24gZ3AoZSxyLG4pe3ZhciB0PWUub2Zmc2V0LGE9bi5saW5lLGksdSxvLHMsbCxjLGY7Zm9yKHI9ci5yZXBsYWNlKGZwLEQpLHM9ci5zcGxpdCh0ZSksbD11cChyLGlwKGkpLmluZGVudCkuc3BsaXQodGUpLGxbMF09byx0W2FdPSh0W2FdfHwwKSt1Lmxlbmd0aCxhKyssYz0wLGY9cy5sZW5ndGg7KytjPGY7KXRbYV09KHRbYV18fDApK3NbY10ubGVuZ3RoLWxbY10ubGVuZ3RoLGErKztyZXR1cm4gbC5qb2luKHRlKTtmdW5jdGlvbiBEKGgscCxkLG0sZyl7cmV0dXJuIHU9cCtkK20sbz1nLE51bWJlcihkKTwxMCYmdS5sZW5ndGglMj09PTEmJihkPWRlK2QpLGk9cCtucChkZSxkLmxlbmd0aCkrbSxpK299fX0pO3ZhciBrYT1DKCh2Rix5YSk9PntcInVzZSBzdHJpY3RcIjt5YS5leHBvcnRzPXhwO3ZhciBWdD1gXG5gLHZwPVwiXHRcIixiYT1cIiBcIix4YT1cIj1cIixGcD1cIi1cIixFcD0zLENwPTEsYnA9MjtmdW5jdGlvbiB4cChlLHIsbil7Zm9yKHZhciB0PXRoaXMsYT1lLm5vdygpLGk9ci5sZW5ndGgsdT0tMSxvPVwiXCIscyxsLGMsZixEOysrdTxpOyl7aWYoYz1yLmNoYXJBdCh1KSxjIT09YmF8fHU+PUVwKXt1LS07YnJlYWt9bys9Y31mb3Iocz1cIlwiLGw9XCJcIjsrK3U8aTspe2lmKGM9ci5jaGFyQXQodSksYz09PVZ0KXt1LS07YnJlYWt9Yz09PWJhfHxjPT09dnA/bCs9Yzoocys9bCtjLGw9XCJcIil9aWYoYS5jb2x1bW4rPW8ubGVuZ3RoLGEub2Zmc2V0Kz1vLmxlbmd0aCxvKz1zK2wsYz1yLmNoYXJBdCgrK3UpLGY9ci5jaGFyQXQoKyt1KSwhKGMhPT1WdHx8ZiE9PXhhJiZmIT09RnApKXtmb3Iobys9YyxsPWYsRD1mPT09eGE/Q3A6YnA7Kyt1PGk7KXtpZihjPXIuY2hhckF0KHUpLGMhPT1mKXtpZihjIT09VnQpcmV0dXJuO3UtLTticmVha31sKz1jfXJldHVybiBuPyEwOmUobytsKSh7dHlwZTpcImhlYWRpbmdcIixkZXB0aDpELGNoaWxkcmVuOnQudG9rZW5pemVJbmxpbmUocyxhKX0pfX19KTt2YXIgJHQ9QyhqdD0+e1widXNlIHN0cmljdFwiO3ZhciB5cD1cIlthLXpBLVpfOl1bYS16QS1aMC05Oi5fLV0qXCIsa3A9XCJbXlxcXCInPTw+YFxcXFx1MDAwMC1cXFxcdTAwMjBdK1wiLHdwPVwiJ1teJ10qJ1wiLEFwPSdcIlteXCJdKlwiJyxCcD1cIig/OlwiK2twK1wifFwiK3dwK1wifFwiK0FwK1wiKVwiLHFwPVwiKD86XFxcXHMrXCIreXArXCIoPzpcXFxccyo9XFxcXHMqXCIrQnArXCIpPylcIix3YT1cIjxbQS1aYS16XVtBLVphLXowLTlcXFxcLV0qXCIrcXArXCIqXFxcXHMqXFxcXC8/PlwiLEFhPVwiPFxcXFwvW0EtWmEtel1bQS1aYS16MC05XFxcXC1dKlxcXFxzKj5cIixUcD1cIjwhLS0tLT58PCEtLSg/Oi0/W14+LV0pKD86LT9bXi1dKSotLT5cIixTcD1cIjxbP10uKj9bP10+XCIsUHA9XCI8IVtBLVphLXpdK1xcXFxzK1tePl0qPlwiLF9wPVwiPCFcXFxcW0NEQVRBXFxcXFtbXFxcXHNcXFxcU10qP1xcXFxdXFxcXF0+XCI7anQub3BlbkNsb3NlVGFnPW5ldyBSZWdFeHAoXCJeKD86XCIrd2ErXCJ8XCIrQWErXCIpXCIpO2p0LnRhZz1uZXcgUmVnRXhwKFwiXig/OlwiK3dhK1wifFwiK0FhK1wifFwiK1RwK1wifFwiK1NwK1wifFwiK1BwK1wifFwiK19wK1wiKVwiKX0pO3ZhciBTYT1DKChFRixUYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgTHA9JHQoKS5vcGVuQ2xvc2VUYWc7VGEuZXhwb3J0cz1LcDt2YXIgT3A9XCJcdFwiLElwPVwiIFwiLEJhPWBcbmAsTnA9XCI8XCIsUnA9L148KHNjcmlwdHxwcmV8c3R5bGUpKD89KFxcc3w+fCQpKS9pLHpwPS88XFwvKHNjcmlwdHxwcmV8c3R5bGUpPi9pLE1wPS9ePCEtLS8sVXA9Ly0tPi8sWXA9L148XFw/LyxWcD0vXFw/Pi8sanA9L148IVtBLVphLXpdLywkcD0vPi8sR3A9L148IVxcW0NEQVRBXFxbLyxIcD0vXV0+LyxxYT0vXiQvLFdwPW5ldyBSZWdFeHAoTHAuc291cmNlK1wiXFxcXHMqJFwiKTtmdW5jdGlvbiBLcChlLHIsbil7Zm9yKHZhciB0PXRoaXMsYT10Lm9wdGlvbnMuYmxvY2tzLmpvaW4oXCJ8XCIpLGk9bmV3IFJlZ0V4cChcIl48Lz8oXCIrYStcIikoPz0oXFxcXHN8Lz8+fCQpKVwiLFwiaVwiKSx1PXIubGVuZ3RoLG89MCxzLGwsYyxmLEQsaCxwLGQ9W1tScCx6cCwhMF0sW01wLFVwLCEwXSxbWXAsVnAsITBdLFtqcCwkcCwhMF0sW0dwLEhwLCEwXSxbaSxxYSwhMF0sW1dwLHFhLCExXV07bzx1JiYoZj1yLmNoYXJBdChvKSwhKGYhPT1PcCYmZiE9PUlwKSk7KW8rKztpZihyLmNoYXJBdChvKT09PU5wKXtmb3Iocz1yLmluZGV4T2YoQmEsbysxKSxzPXM9PT0tMT91OnMsbD1yLnNsaWNlKG8scyksYz0tMSxEPWQubGVuZ3RoOysrYzxEOylpZihkW2NdWzBdLnRlc3QobCkpe2g9ZFtjXTticmVha31pZihoKXtpZihuKXJldHVybiBoWzJdO2lmKG89cywhaFsxXS50ZXN0KGwpKWZvcig7bzx1Oyl7aWYocz1yLmluZGV4T2YoQmEsbysxKSxzPXM9PT0tMT91OnMsbD1yLnNsaWNlKG8rMSxzKSxoWzFdLnRlc3QobCkpe2wmJihvPXMpO2JyZWFrfW89c31yZXR1cm4gcD1yLnNsaWNlKDAsbyksZShwKSh7dHlwZTpcImh0bWxcIix2YWx1ZTpwfSl9fX19KTt2YXIgbmU9QygoQ0YsUGEpPT57XCJ1c2Ugc3RyaWN0XCI7UGEuZXhwb3J0cz1RcDt2YXIgSnA9U3RyaW5nLmZyb21DaGFyQ29kZSxYcD0vXFxzLztmdW5jdGlvbiBRcChlKXtyZXR1cm4gWHAudGVzdCh0eXBlb2YgZT09XCJudW1iZXJcIj9KcChlKTplLmNoYXJBdCgwKSl9fSk7dmFyIEd0PUMoKGJGLF9hKT0+e1widXNlIHN0cmljdFwiO3ZhciBacD1rcigpO19hLmV4cG9ydHM9ZWQ7ZnVuY3Rpb24gZWQoZSl7cmV0dXJuIFpwKGUpLnRvTG93ZXJDYXNlKCl9fSk7dmFyIE1hPUMoKHhGLHphKT0+e1widXNlIHN0cmljdFwiO3ZhciByZD1uZSgpLHRkPUd0KCk7emEuZXhwb3J0cz1hZDt2YXIgTGE9J1wiJyxPYT1cIidcIixuZD1cIlxcXFxcIixqZT1gXG5gLEdyPVwiXHRcIixIcj1cIiBcIixXdD1cIltcIixocj1cIl1cIixpZD1cIihcIix1ZD1cIilcIixJYT1cIjpcIixOYT1cIjxcIixSYT1cIj5cIjtmdW5jdGlvbiBhZChlLHIsbil7Zm9yKHZhciB0PXRoaXMsYT10Lm9wdGlvbnMuY29tbW9ubWFyayxpPTAsdT1yLmxlbmd0aCxvPVwiXCIscyxsLGMsZixELGgscCxkO2k8dSYmKGY9ci5jaGFyQXQoaSksIShmIT09SHImJmYhPT1HcikpOylvKz1mLGkrKztpZihmPXIuY2hhckF0KGkpLGY9PT1XdCl7Zm9yKGkrKyxvKz1mLGM9XCJcIjtpPHUmJihmPXIuY2hhckF0KGkpLGYhPT1ocik7KWY9PT1uZCYmKGMrPWYsaSsrLGY9ci5jaGFyQXQoaSkpLGMrPWYsaSsrO2lmKCEoIWN8fHIuY2hhckF0KGkpIT09aHJ8fHIuY2hhckF0KGkrMSkhPT1JYSkpe2ZvcihoPWMsbys9YytocitJYSxpPW8ubGVuZ3RoLGM9XCJcIjtpPHUmJihmPXIuY2hhckF0KGkpLCEoZiE9PUdyJiZmIT09SHImJmYhPT1qZSkpOylvKz1mLGkrKztpZihmPXIuY2hhckF0KGkpLGM9XCJcIixzPW8sZj09PU5hKXtmb3IoaSsrO2k8dSYmKGY9ci5jaGFyQXQoaSksISFIdChmKSk7KWMrPWYsaSsrO2lmKGY9ci5jaGFyQXQoaSksZj09PUh0LmRlbGltaXRlcilvKz1OYStjK2YsaSsrO2Vsc2V7aWYoYSlyZXR1cm47aS09Yy5sZW5ndGgrMSxjPVwiXCJ9fWlmKCFjKXtmb3IoO2k8dSYmKGY9ci5jaGFyQXQoaSksISFvZChmKSk7KWMrPWYsaSsrO28rPWN9aWYoYyl7Zm9yKHA9YyxjPVwiXCI7aTx1JiYoZj1yLmNoYXJBdChpKSwhKGYhPT1HciYmZiE9PUhyJiZmIT09amUpKTspYys9ZixpKys7aWYoZj1yLmNoYXJBdChpKSxEPW51bGwsZj09PUxhP0Q9TGE6Zj09PU9hP0Q9T2E6Zj09PWlkJiYoRD11ZCksIUQpYz1cIlwiLGk9by5sZW5ndGg7ZWxzZSBpZihjKXtmb3Iobys9YytmLGk9by5sZW5ndGgsYz1cIlwiO2k8dSYmKGY9ci5jaGFyQXQoaSksZiE9PUQpOyl7aWYoZj09PWplKXtpZihpKyssZj1yLmNoYXJBdChpKSxmPT09amV8fGY9PT1EKXJldHVybjtjKz1qZX1jKz1mLGkrK31pZihmPXIuY2hhckF0KGkpLGYhPT1EKXJldHVybjtsPW8sbys9YytmLGkrKyxkPWMsYz1cIlwifWVsc2UgcmV0dXJuO2Zvcig7aTx1JiYoZj1yLmNoYXJBdChpKSwhKGYhPT1HciYmZiE9PUhyKSk7KW8rPWYsaSsrO2lmKGY9ci5jaGFyQXQoaSksIWZ8fGY9PT1qZSlyZXR1cm4gbj8hMDoocz1lKHMpLnRlc3QoKS5lbmQscD10LmRlY29kZS5yYXcodC51bmVzY2FwZShwKSxzLHtub25UZXJtaW5hdGVkOiExfSksZCYmKGw9ZShsKS50ZXN0KCkuZW5kLGQ9dC5kZWNvZGUucmF3KHQudW5lc2NhcGUoZCksbCkpLGUobykoe3R5cGU6XCJkZWZpbml0aW9uXCIsaWRlbnRpZmllcjp0ZChoKSxsYWJlbDpoLHRpdGxlOmR8fG51bGwsdXJsOnB9KSl9fX19ZnVuY3Rpb24gSHQoZSl7cmV0dXJuIGUhPT1SYSYmZSE9PVd0JiZlIT09aHJ9SHQuZGVsaW1pdGVyPVJhO2Z1bmN0aW9uIG9kKGUpe3JldHVybiBlIT09V3QmJmUhPT1ociYmIXJkKGUpfX0pO3ZhciBWYT1DKCh5RixZYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgc2Q9bmUoKTtZYS5leHBvcnRzPXZkO3ZhciBjZD1cIlx0XCIsV3I9YFxuYCxsZD1cIiBcIixmZD1cIi1cIixEZD1cIjpcIixwZD1cIlxcXFxcIixLdD1cInxcIixkZD0xLGhkPTIsVWE9XCJsZWZ0XCIsbWQ9XCJjZW50ZXJcIixnZD1cInJpZ2h0XCI7ZnVuY3Rpb24gdmQoZSxyLG4pe3ZhciB0PXRoaXMsYSxpLHUsbyxzLGwsYyxmLEQsaCxwLGQsbSxnLHgsRixCLGIsdix5LGssRTtpZih0Lm9wdGlvbnMuZ2ZtKXtmb3IoYT0wLEY9MCxsPXIubGVuZ3RoKzEsYz1bXTthPGw7KXtpZih5PXIuaW5kZXhPZihXcixhKSxrPXIuaW5kZXhPZihLdCxhKzEpLHk9PT0tMSYmKHk9ci5sZW5ndGgpLGs9PT0tMXx8az55KXtpZihGPGhkKXJldHVybjticmVha31jLnB1c2goci5zbGljZShhLHkpKSxGKyssYT15KzF9Zm9yKG89Yy5qb2luKFdyKSxpPWMuc3BsaWNlKDEsMSlbMF18fFtdLGE9MCxsPWkubGVuZ3RoLEYtLSx1PSExLHA9W107YTxsOyl7aWYoRD1pLmNoYXJBdChhKSxEPT09S3Qpe2lmKGg9bnVsbCx1PT09ITEpe2lmKEU9PT0hMSlyZXR1cm59ZWxzZSBwLnB1c2godSksdT0hMTtFPSExfWVsc2UgaWYoRD09PWZkKWg9ITAsdT11fHxudWxsO2Vsc2UgaWYoRD09PURkKXU9PT1VYT91PW1kOmgmJnU9PT1udWxsP3U9Z2Q6dT1VYTtlbHNlIGlmKCFzZChEKSlyZXR1cm47YSsrfWlmKHUhPT0hMSYmcC5wdXNoKHUpLCEocC5sZW5ndGg8ZGQpKXtpZihuKXJldHVybiEwO2Zvcih4PS0xLGI9W10sdj1lKG8pLnJlc2V0KHt0eXBlOlwidGFibGVcIixhbGlnbjpwLGNoaWxkcmVuOmJ9KTsrK3g8Rjspe2ZvcihCPWNbeF0scz17dHlwZTpcInRhYmxlUm93XCIsY2hpbGRyZW46W119LHgmJmUoV3IpLGUoQikucmVzZXQocyx2KSxsPUIubGVuZ3RoKzEsYT0wLGY9XCJcIixkPVwiXCIsbT0hMDthPGw7KXtpZihEPUIuY2hhckF0KGEpLEQ9PT1jZHx8RD09PWxkKXtkP2YrPUQ6ZShEKSxhKys7Y29udGludWV9RD09PVwiXCJ8fEQ9PT1LdD9tP2UoRCk6KChkfHxEKSYmIW0mJihvPWQsZi5sZW5ndGg+MSYmKEQ/KG8rPWYuc2xpY2UoMCwtMSksZj1mLmNoYXJBdChmLmxlbmd0aC0xKSk6KG8rPWYsZj1cIlwiKSksZz1lLm5vdygpLGUobykoe3R5cGU6XCJ0YWJsZUNlbGxcIixjaGlsZHJlbjp0LnRva2VuaXplSW5saW5lKGQsZyl9LHMpKSxlKGYrRCksZj1cIlwiLGQ9XCJcIik6KGYmJihkKz1mLGY9XCJcIiksZCs9RCxEPT09cGQmJmEhPT1sLTImJihkKz1CLmNoYXJBdChhKzEpLGErKykpLG09ITEsYSsrfXh8fGUoV3IraSl9cmV0dXJuIHZ9fX19KTt2YXIgR2E9Qygoa0YsJGEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIEZkPU9lKCksRWQ9T3QoKSxDZD1qcigpOyRhLmV4cG9ydHM9eWQ7dmFyIGJkPVwiXHRcIixtcj1gXG5gLHhkPVwiIFwiLGphPTQ7ZnVuY3Rpb24geWQoZSxyLG4pe2Zvcih2YXIgdD10aGlzLGE9dC5vcHRpb25zLGk9YS5jb21tb25tYXJrLHU9dC5ibG9ja1Rva2VuaXplcnMsbz10LmludGVycnVwdFBhcmFncmFwaCxzPXIuaW5kZXhPZihtciksbD1yLmxlbmd0aCxjLGYsRCxoLHA7czxsOyl7aWYocz09PS0xKXtzPWw7YnJlYWt9aWYoci5jaGFyQXQocysxKT09PW1yKWJyZWFrO2lmKGkpe2ZvcihoPTAsYz1zKzE7YzxsOyl7aWYoRD1yLmNoYXJBdChjKSxEPT09YmQpe2g9amE7YnJlYWt9ZWxzZSBpZihEPT09eGQpaCsrO2Vsc2UgYnJlYWs7YysrfWlmKGg+PWphJiZEIT09bXIpe3M9ci5pbmRleE9mKG1yLHMrMSk7Y29udGludWV9fWlmKGY9ci5zbGljZShzKzEpLENkKG8sdSx0LFtlLGYsITBdKSlicmVhaztpZihjPXMscz1yLmluZGV4T2YobXIscysxKSxzIT09LTEmJkZkKHIuc2xpY2UoYyxzKSk9PT1cIlwiKXtzPWM7YnJlYWt9fXJldHVybiBmPXIuc2xpY2UoMCxzKSxuPyEwOihwPWUubm93KCksZj1FZChmKSxlKGYpKHt0eXBlOlwicGFyYWdyYXBoXCIsY2hpbGRyZW46dC50b2tlbml6ZUlubGluZShmLHApfSkpfX0pO3ZhciBXYT1DKCh3RixIYSk9PntcInVzZSBzdHJpY3RcIjtIYS5leHBvcnRzPWtkO2Z1bmN0aW9uIGtkKGUscil7cmV0dXJuIGUuaW5kZXhPZihcIlxcXFxcIixyKX19KTt2YXIgUWE9QygoQUYsWGEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHdkPVdhKCk7WGEuZXhwb3J0cz1KYTtKYS5sb2NhdG9yPXdkO3ZhciBBZD1gXG5gLEthPVwiXFxcXFwiO2Z1bmN0aW9uIEphKGUscixuKXt2YXIgdD10aGlzLGEsaTtpZihyLmNoYXJBdCgwKT09PUthJiYoYT1yLmNoYXJBdCgxKSx0LmVzY2FwZS5pbmRleE9mKGEpIT09LTEpKXJldHVybiBuPyEwOihhPT09QWQ/aT17dHlwZTpcImJyZWFrXCJ9Omk9e3R5cGU6XCJ0ZXh0XCIsdmFsdWU6YX0sZShLYSthKShpKSl9fSk7dmFyIEp0PUMoKEJGLFphKT0+e1widXNlIHN0cmljdFwiO1phLmV4cG9ydHM9QmQ7ZnVuY3Rpb24gQmQoZSxyKXtyZXR1cm4gZS5pbmRleE9mKFwiPFwiLHIpfX0pO3ZhciBpbz1DKChxRixubyk9PntcInVzZSBzdHJpY3RcIjt2YXIgZW89bmUoKSxxZD1scigpLFRkPUp0KCk7bm8uZXhwb3J0cz1lbjtlbi5sb2NhdG9yPVRkO2VuLm5vdEluTGluaz0hMDt2YXIgcm89XCI8XCIsWHQ9XCI+XCIsdG89XCJAXCIsUXQ9XCIvXCIsWnQ9XCJtYWlsdG86XCIsS3I9WnQubGVuZ3RoO2Z1bmN0aW9uIGVuKGUscixuKXt2YXIgdD10aGlzLGE9XCJcIixpPXIubGVuZ3RoLHU9MCxvPVwiXCIscz0hMSxsPVwiXCIsYyxmLEQsaCxwO2lmKHIuY2hhckF0KDApPT09cm8pe2Zvcih1KyssYT1ybzt1PGkmJihjPXIuY2hhckF0KHUpLCEoZW8oYyl8fGM9PT1YdHx8Yz09PXRvfHxjPT09XCI6XCImJnIuY2hhckF0KHUrMSk9PT1RdCkpOylvKz1jLHUrKztpZihvKXtpZihsKz1vLG89XCJcIixjPXIuY2hhckF0KHUpLGwrPWMsdSsrLGM9PT10bylzPSEwO2Vsc2V7aWYoYyE9PVwiOlwifHxyLmNoYXJBdCh1KzEpIT09UXQpcmV0dXJuO2wrPVF0LHUrK31mb3IoO3U8aSYmKGM9ci5jaGFyQXQodSksIShlbyhjKXx8Yz09PVh0KSk7KW8rPWMsdSsrO2lmKGM9ci5jaGFyQXQodSksISghb3x8YyE9PVh0KSlyZXR1cm4gbj8hMDoobCs9byxEPWwsYSs9bCtjLGY9ZS5ub3coKSxmLmNvbHVtbisrLGYub2Zmc2V0KysscyYmKGwuc2xpY2UoMCxLcikudG9Mb3dlckNhc2UoKT09PVp0PyhEPUQuc2xpY2UoS3IpLGYuY29sdW1uKz1LcixmLm9mZnNldCs9S3IpOmw9WnQrbCksaD10LmlubGluZVRva2VuaXplcnMsdC5pbmxpbmVUb2tlbml6ZXJzPXt0ZXh0OmgudGV4dH0scD10LmVudGVyTGluaygpLEQ9dC50b2tlbml6ZUlubGluZShELGYpLHQuaW5saW5lVG9rZW5pemVycz1oLHAoKSxlKGEpKHt0eXBlOlwibGlua1wiLHRpdGxlOm51bGwsdXJsOnFkKGwse25vblRlcm1pbmF0ZWQ6ITF9KSxjaGlsZHJlbjpEfSkpfX19fSk7dmFyIGFvPUMoKFRGLHVvKT0+e1widXNlIHN0cmljdFwiO3VvLmV4cG9ydHM9U2Q7ZnVuY3Rpb24gU2QoZSxyKXt2YXIgbj1TdHJpbmcoZSksdD0wLGE7aWYodHlwZW9mIHIhPVwic3RyaW5nXCIpdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgY2hhcmFjdGVyXCIpO2ZvcihhPW4uaW5kZXhPZihyKTthIT09LTE7KXQrKyxhPW4uaW5kZXhPZihyLGErci5sZW5ndGgpO3JldHVybiB0fX0pO3ZhciBjbz1DKChTRixzbyk9PntcInVzZSBzdHJpY3RcIjtzby5leHBvcnRzPVBkO3ZhciBvbz1bXCJ3d3cuXCIsXCJodHRwOi8vXCIsXCJodHRwczovL1wiXTtmdW5jdGlvbiBQZChlLHIpe3ZhciBuPS0xLHQsYSxpO2lmKCF0aGlzLm9wdGlvbnMuZ2ZtKXJldHVybiBuO2ZvcihhPW9vLmxlbmd0aCx0PS0xOysrdDxhOylpPWUuaW5kZXhPZihvb1t0XSxyKSxpIT09LTEmJihuPT09LTF8fGk8bikmJihuPWkpO3JldHVybiBufX0pO3ZhciBobz1DKChQRixwbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgbG89YW8oKSxfZD1scigpLExkPUxlKCkscm49emUoKSxPZD1uZSgpLElkPWNvKCk7cG8uZXhwb3J0cz1ubjtubi5sb2NhdG9yPUlkO25uLm5vdEluTGluaz0hMDt2YXIgTmQ9MzMsUmQ9MzgsemQ9NDEsTWQ9NDIsVWQ9NDQsWWQ9NDUsdG49NDYsVmQ9NTgsamQ9NTksJGQ9NjMsR2Q9NjAsZm89OTUsSGQ9MTI2LFdkPVwiKFwiLERvPVwiKVwiO2Z1bmN0aW9uIG5uKGUscixuKXt2YXIgdD10aGlzLGE9dC5vcHRpb25zLmdmbSxpPXQuaW5saW5lVG9rZW5pemVycyx1PXIubGVuZ3RoLG89LTEscz0hMSxsLGMsZixELGgscCxkLG0sZyx4LEYsQixiLHY7aWYoYSl7aWYoci5zbGljZSgwLDQpPT09XCJ3d3cuXCIpcz0hMCxEPTQ7ZWxzZSBpZihyLnNsaWNlKDAsNykudG9Mb3dlckNhc2UoKT09PVwiaHR0cDovL1wiKUQ9NztlbHNlIGlmKHIuc2xpY2UoMCw4KS50b0xvd2VyQ2FzZSgpPT09XCJodHRwczovL1wiKUQ9ODtlbHNlIHJldHVybjtmb3Iobz1ELTEsZj1ELGw9W107RDx1Oyl7aWYoZD1yLmNoYXJDb2RlQXQoRCksZD09PXRuKXtpZihvPT09RC0xKWJyZWFrO2wucHVzaChEKSxvPUQsRCsrO2NvbnRpbnVlfWlmKExkKGQpfHxybihkKXx8ZD09PVlkfHxkPT09Zm8pe0QrKztjb250aW51ZX1icmVha31pZihkPT09dG4mJihsLnBvcCgpLEQtLSksbFswXSE9PXZvaWQgMCYmKGM9bC5sZW5ndGg8Mj9mOmxbbC5sZW5ndGgtMl0rMSxyLnNsaWNlKGMsRCkuaW5kZXhPZihcIl9cIik9PT0tMSkpe2lmKG4pcmV0dXJuITA7Zm9yKG09RCxoPUQ7RDx1JiYoZD1yLmNoYXJDb2RlQXQoRCksIShPZChkKXx8ZD09PUdkKSk7KUQrKyxkPT09TmR8fGQ9PT1NZHx8ZD09PVVkfHxkPT09dG58fGQ9PT1WZHx8ZD09PSRkfHxkPT09Zm98fGQ9PT1IZHx8KG09RCk7aWYoRD1tLHIuY2hhckNvZGVBdChELTEpPT09emQpZm9yKHA9ci5zbGljZShoLEQpLGc9bG8ocCxXZCkseD1sbyhwLERvKTt4Pmc7KUQ9aCtwLmxhc3RJbmRleE9mKERvKSxwPXIuc2xpY2UoaCxEKSx4LS07aWYoci5jaGFyQ29kZUF0KEQtMSk9PT1qZCYmKEQtLSxybihyLmNoYXJDb2RlQXQoRC0xKSkpKXtmb3IobT1ELTI7cm4oci5jaGFyQ29kZUF0KG0pKTspbS0tO3IuY2hhckNvZGVBdChtKT09PVJkJiYoRD1tKX1yZXR1cm4gRj1yLnNsaWNlKDAsRCksYj1fZChGLHtub25UZXJtaW5hdGVkOiExfSkscyYmKGI9XCJodHRwOi8vXCIrYiksdj10LmVudGVyTGluaygpLHQuaW5saW5lVG9rZW5pemVycz17dGV4dDppLnRleHR9LEI9dC50b2tlbml6ZUlubGluZShGLGUubm93KCkpLHQuaW5saW5lVG9rZW5pemVycz1pLHYoKSxlKEYpKHt0eXBlOlwibGlua1wiLHRpdGxlOm51bGwsdXJsOmIsY2hpbGRyZW46Qn0pfX19fSk7dmFyIEZvPUMoKF9GLHZvKT0+e1widXNlIHN0cmljdFwiO3ZhciBLZD1MZSgpLEpkPXplKCksWGQ9NDMsUWQ9NDUsWmQ9NDYsZWg9OTU7dm8uZXhwb3J0cz1nbztmdW5jdGlvbiBnbyhlLHIpe3ZhciBuPXRoaXMsdCxhO2lmKCF0aGlzLm9wdGlvbnMuZ2ZtfHwodD1lLmluZGV4T2YoXCJAXCIsciksdD09PS0xKSlyZXR1cm4tMTtpZihhPXQsYT09PXJ8fCFtbyhlLmNoYXJDb2RlQXQoYS0xKSkpcmV0dXJuIGdvLmNhbGwobixlLHQrMSk7Zm9yKDthPnImJm1vKGUuY2hhckNvZGVBdChhLTEpKTspYS0tO3JldHVybiBhfWZ1bmN0aW9uIG1vKGUpe3JldHVybiBLZChlKXx8SmQoZSl8fGU9PT1YZHx8ZT09PVFkfHxlPT09WmR8fGU9PT1laH19KTt2YXIgeG89QygoTEYsYm8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHJoPWxyKCksRW89TGUoKSxDbz16ZSgpLHRoPUZvKCk7Ym8uZXhwb3J0cz1vbjtvbi5sb2NhdG9yPXRoO29uLm5vdEluTGluaz0hMDt2YXIgbmg9NDMsdW49NDUsSnI9NDYsaWg9NjQsYW49OTU7ZnVuY3Rpb24gb24oZSxyLG4pe3ZhciB0PXRoaXMsYT10Lm9wdGlvbnMuZ2ZtLGk9dC5pbmxpbmVUb2tlbml6ZXJzLHU9MCxvPXIubGVuZ3RoLHM9LTEsbCxjLGYsRDtpZihhKXtmb3IobD1yLmNoYXJDb2RlQXQodSk7RW8obCl8fENvKGwpfHxsPT09bmh8fGw9PT11bnx8bD09PUpyfHxsPT09YW47KWw9ci5jaGFyQ29kZUF0KCsrdSk7aWYodSE9PTAmJmw9PT1paCl7Zm9yKHUrKzt1PG87KXtpZihsPXIuY2hhckNvZGVBdCh1KSxFbyhsKXx8Q28obCl8fGw9PT11bnx8bD09PUpyfHxsPT09YW4pe3UrKyxzPT09LTEmJmw9PT1KciYmKHM9dSk7Y29udGludWV9YnJlYWt9aWYoIShzPT09LTF8fHM9PT11fHxsPT09dW58fGw9PT1hbikpcmV0dXJuIGw9PT1KciYmdS0tLGM9ci5zbGljZSgwLHUpLG4/ITA6KEQ9dC5lbnRlckxpbmsoKSx0LmlubGluZVRva2VuaXplcnM9e3RleHQ6aS50ZXh0fSxmPXQudG9rZW5pemVJbmxpbmUoYyxlLm5vdygpKSx0LmlubGluZVRva2VuaXplcnM9aSxEKCksZShjKSh7dHlwZTpcImxpbmtcIix0aXRsZTpudWxsLHVybDpcIm1haWx0bzpcIityaChjLHtub25UZXJtaW5hdGVkOiExfSksY2hpbGRyZW46Zn0pKX19fX0pO3ZhciB3bz1DKChPRixrbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgdWg9emUoKSxhaD1KdCgpLG9oPSR0KCkudGFnO2tvLmV4cG9ydHM9eW87eW8ubG9jYXRvcj1haDt2YXIgc2g9XCI8XCIsY2g9XCI/XCIsbGg9XCIhXCIsZmg9XCIvXCIsRGg9L148YSAvaSxwaD0vXjxcXC9hPi9pO2Z1bmN0aW9uIHlvKGUscixuKXt2YXIgdD10aGlzLGE9ci5sZW5ndGgsaSx1O2lmKCEoci5jaGFyQXQoMCkhPT1zaHx8YTwzKSYmKGk9ci5jaGFyQXQoMSksISghdWgoaSkmJmkhPT1jaCYmaSE9PWxoJiZpIT09ZmgpJiYodT1yLm1hdGNoKG9oKSwhIXUpKSlyZXR1cm4gbj8hMDoodT11WzBdLCF0LmluTGluayYmRGgudGVzdCh1KT90LmluTGluaz0hMDp0LmluTGluayYmcGgudGVzdCh1KSYmKHQuaW5MaW5rPSExKSxlKHUpKHt0eXBlOlwiaHRtbFwiLHZhbHVlOnV9KSl9fSk7dmFyIHNuPUMoKElGLEFvKT0+e1widXNlIHN0cmljdFwiO0FvLmV4cG9ydHM9ZGg7ZnVuY3Rpb24gZGgoZSxyKXt2YXIgbj1lLmluZGV4T2YoXCJbXCIsciksdD1lLmluZGV4T2YoXCIhW1wiLHIpO3JldHVybiB0PT09LTF8fG48dD9uOnR9fSk7dmFyIExvPUMoKE5GLF9vKT0+e1widXNlIHN0cmljdFwiO3ZhciBncj1uZSgpLGhoPXNuKCk7X28uZXhwb3J0cz1QbztQby5sb2NhdG9yPWhoO3ZhciBtaD1gXG5gLGdoPVwiIVwiLEJvPSdcIicscW89XCInXCIsJGU9XCIoXCIsdnI9XCIpXCIsY249XCI8XCIsbG49XCI+XCIsVG89XCJbXCIsRnI9XCJcXFxcXCIsdmg9XCJdXCIsU289XCJgXCI7ZnVuY3Rpb24gUG8oZSxyLG4pe3ZhciB0PXRoaXMsYT1cIlwiLGk9MCx1PXIuY2hhckF0KDApLG89dC5vcHRpb25zLnBlZGFudGljLHM9dC5vcHRpb25zLmNvbW1vbm1hcmssbD10Lm9wdGlvbnMuZ2ZtLGMsZixELGgscCxkLG0sZyx4LEYsQixiLHYseSxrLEUsdyxBO2lmKHU9PT1naCYmKGc9ITAsYT11LHU9ci5jaGFyQXQoKytpKSksdT09PVRvJiYhKCFnJiZ0LmluTGluaykpe2ZvcihhKz11LHk9XCJcIixpKyssQj1yLmxlbmd0aCxFPWUubm93KCksdj0wLEUuY29sdW1uKz1pLEUub2Zmc2V0Kz1pO2k8Qjspe2lmKHU9ci5jaGFyQXQoaSksZD11LHU9PT1Tbyl7Zm9yKGY9MTtyLmNoYXJBdChpKzEpPT09U287KWQrPXUsaSsrLGYrKztEP2Y+PUQmJihEPTApOkQ9Zn1lbHNlIGlmKHU9PT1GcilpKyssZCs9ci5jaGFyQXQoaSk7ZWxzZSBpZigoIUR8fGwpJiZ1PT09VG8pdisrO2Vsc2UgaWYoKCFEfHxsKSYmdT09PXZoKWlmKHYpdi0tO2Vsc2V7aWYoci5jaGFyQXQoaSsxKSE9PSRlKXJldHVybjtkKz0kZSxjPSEwLGkrKzticmVha315Kz1kLGQ9XCJcIixpKyt9aWYoYyl7Zm9yKHg9eSxhKz15K2QsaSsrO2k8QiYmKHU9ci5jaGFyQXQoaSksISFncih1KSk7KWErPXUsaSsrO2lmKHU9ci5jaGFyQXQoaSkseT1cIlwiLGg9YSx1PT09Y24pe2ZvcihpKyssaCs9Y247aTxCJiYodT1yLmNoYXJBdChpKSx1IT09bG4pOyl7aWYocyYmdT09PW1oKXJldHVybjt5Kz11LGkrK31pZihyLmNoYXJBdChpKSE9PWxuKXJldHVybjthKz1jbit5K2xuLGs9eSxpKyt9ZWxzZXtmb3IodT1udWxsLGQ9XCJcIjtpPEImJih1PXIuY2hhckF0KGkpLCEoZCYmKHU9PT1Cb3x8dT09PXFvfHxzJiZ1PT09JGUpKSk7KXtpZihncih1KSl7aWYoIW8pYnJlYWs7ZCs9dX1lbHNle2lmKHU9PT0kZSl2Kys7ZWxzZSBpZih1PT09dnIpe2lmKHY9PT0wKWJyZWFrO3YtLX15Kz1kLGQ9XCJcIix1PT09RnImJih5Kz1Gcix1PXIuY2hhckF0KCsraSkpLHkrPXV9aSsrfWErPXksaz15LGk9YS5sZW5ndGh9Zm9yKHk9XCJcIjtpPEImJih1PXIuY2hhckF0KGkpLCEhZ3IodSkpOyl5Kz11LGkrKztpZih1PXIuY2hhckF0KGkpLGErPXkseSYmKHU9PT1Cb3x8dT09PXFvfHxzJiZ1PT09JGUpKWlmKGkrKyxhKz11LHk9XCJcIixGPXU9PT0kZT92cjp1LHA9YSxzKXtmb3IoO2k8QiYmKHU9ci5jaGFyQXQoaSksdSE9PUYpOyl1PT09RnImJih5Kz1Gcix1PXIuY2hhckF0KCsraSkpLGkrKyx5Kz11O2lmKHU9ci5jaGFyQXQoaSksdSE9PUYpcmV0dXJuO2ZvcihiPXksYSs9eSt1LGkrKztpPEImJih1PXIuY2hhckF0KGkpLCEhZ3IodSkpOylhKz11LGkrK31lbHNlIGZvcihkPVwiXCI7aTxCOyl7aWYodT1yLmNoYXJBdChpKSx1PT09RiltJiYoeSs9RitkLGQ9XCJcIiksbT0hMDtlbHNlIGlmKCFtKXkrPXU7ZWxzZSBpZih1PT09dnIpe2ErPXkrRitkLGI9eTticmVha31lbHNlIGdyKHUpP2QrPXU6KHkrPUYrZCt1LGQ9XCJcIixtPSExKTtpKyt9aWYoci5jaGFyQXQoaSk9PT12cilyZXR1cm4gbj8hMDooYSs9dnIsaz10LmRlY29kZS5yYXcodC51bmVzY2FwZShrKSxlKGgpLnRlc3QoKS5lbmQse25vblRlcm1pbmF0ZWQ6ITF9KSxiJiYocD1lKHApLnRlc3QoKS5lbmQsYj10LmRlY29kZS5yYXcodC51bmVzY2FwZShiKSxwKSksQT17dHlwZTpnP1wiaW1hZ2VcIjpcImxpbmtcIix0aXRsZTpifHxudWxsLHVybDprfSxnP0EuYWx0PXQuZGVjb2RlLnJhdyh0LnVuZXNjYXBlKHgpLEUpfHxudWxsOih3PXQuZW50ZXJMaW5rKCksQS5jaGlsZHJlbj10LnRva2VuaXplSW5saW5lKHgsRSksdygpKSxlKGEpKEEpKX19fX0pO3ZhciBObz1DKChSRixJbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgRmg9bmUoKSxFaD1zbigpLENoPUd0KCk7SW8uZXhwb3J0cz1PbztPby5sb2NhdG9yPUVoO3ZhciBmbj1cImxpbmtcIixiaD1cImltYWdlXCIseGg9XCJzaG9ydGN1dFwiLHloPVwiY29sbGFwc2VkXCIsRG49XCJmdWxsXCIsa2g9XCIhXCIsWHI9XCJbXCIsUXI9XCJcXFxcXCIsWnI9XCJdXCI7ZnVuY3Rpb24gT28oZSxyLG4pe3ZhciB0PXRoaXMsYT10Lm9wdGlvbnMuY29tbW9ubWFyayxpPXIuY2hhckF0KDApLHU9MCxvPXIubGVuZ3RoLHM9XCJcIixsPVwiXCIsYz1mbixmPXhoLEQsaCxwLGQsbSxnLHgsRjtpZihpPT09a2gmJihjPWJoLGw9aSxpPXIuY2hhckF0KCsrdSkpLGk9PT1Ycil7Zm9yKHUrKyxsKz1pLGc9XCJcIixGPTA7dTxvOyl7aWYoaT1yLmNoYXJBdCh1KSxpPT09WHIpeD0hMCxGKys7ZWxzZSBpZihpPT09WnIpe2lmKCFGKWJyZWFrO0YtLX1pPT09UXImJihnKz1RcixpPXIuY2hhckF0KCsrdSkpLGcrPWksdSsrfWlmKHM9ZyxEPWcsaT1yLmNoYXJBdCh1KSxpPT09WnIpe2lmKHUrKyxzKz1pLGc9XCJcIiwhYSlmb3IoO3U8byYmKGk9ci5jaGFyQXQodSksISFGaChpKSk7KWcrPWksdSsrO2lmKGk9ci5jaGFyQXQodSksaT09PVhyKXtmb3IoaD1cIlwiLGcrPWksdSsrO3U8byYmKGk9ci5jaGFyQXQodSksIShpPT09WHJ8fGk9PT1acikpOylpPT09UXImJihoKz1RcixpPXIuY2hhckF0KCsrdSkpLGgrPWksdSsrO2k9ci5jaGFyQXQodSksaT09PVpyPyhmPWg/RG46eWgsZys9aCtpLHUrKyk6aD1cIlwiLHMrPWcsZz1cIlwifWVsc2V7aWYoIUQpcmV0dXJuO2g9RH1pZighKGYhPT1EbiYmeCkpcmV0dXJuIHM9bCtzLGM9PT1mbiYmdC5pbkxpbms/bnVsbDpuPyEwOihwPWUubm93KCkscC5jb2x1bW4rPWwubGVuZ3RoLHAub2Zmc2V0Kz1sLmxlbmd0aCxoPWY9PT1Ebj9oOkQsZD17dHlwZTpjK1wiUmVmZXJlbmNlXCIsaWRlbnRpZmllcjpDaChoKSxsYWJlbDpoLHJlZmVyZW5jZVR5cGU6Zn0sYz09PWZuPyhtPXQuZW50ZXJMaW5rKCksZC5jaGlsZHJlbj10LnRva2VuaXplSW5saW5lKEQscCksbSgpKTpkLmFsdD10LmRlY29kZS5yYXcodC51bmVzY2FwZShEKSxwKXx8bnVsbCxlKHMpKGQpKX19fX0pO3ZhciB6bz1DKCh6RixSbyk9PntcInVzZSBzdHJpY3RcIjtSby5leHBvcnRzPXdoO2Z1bmN0aW9uIHdoKGUscil7dmFyIG49ZS5pbmRleE9mKFwiKipcIixyKSx0PWUuaW5kZXhPZihcIl9fXCIscik7cmV0dXJuIHQ9PT0tMT9uOm49PT0tMXx8dDxuP3Q6bn19KTt2YXIgVm89QygoTUYsWW8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIEFoPU9lKCksTW89bmUoKSxCaD16bygpO1lvLmV4cG9ydHM9VW87VW8ubG9jYXRvcj1CaDt2YXIgcWg9XCJcXFxcXCIsVGg9XCIqXCIsU2g9XCJfXCI7ZnVuY3Rpb24gVW8oZSxyLG4pe3ZhciB0PXRoaXMsYT0wLGk9ci5jaGFyQXQoYSksdSxvLHMsbCxjLGYsRDtpZighKGkhPT1UaCYmaSE9PVNofHxyLmNoYXJBdCgrK2EpIT09aSkmJihvPXQub3B0aW9ucy5wZWRhbnRpYyxzPWksYz1zK3MsZj1yLmxlbmd0aCxhKyssbD1cIlwiLGk9XCJcIiwhKG8mJk1vKHIuY2hhckF0KGEpKSkpKWZvcig7YTxmOyl7aWYoRD1pLGk9ci5jaGFyQXQoYSksaT09PXMmJnIuY2hhckF0KGErMSk9PT1zJiYoIW98fCFNbyhEKSkmJihpPXIuY2hhckF0KGErMiksaSE9PXMpKXJldHVybiBBaChsKT9uPyEwOih1PWUubm93KCksdS5jb2x1bW4rPTIsdS5vZmZzZXQrPTIsZShjK2wrYykoe3R5cGU6XCJzdHJvbmdcIixjaGlsZHJlbjp0LnRva2VuaXplSW5saW5lKGwsdSl9KSk6dm9pZCAwOyFvJiZpPT09cWgmJihsKz1pLGk9ci5jaGFyQXQoKythKSksbCs9aSxhKyt9fX0pO3ZhciAkbz1DKChVRixqbyk9PntcInVzZSBzdHJpY3RcIjtqby5leHBvcnRzPUxoO3ZhciBQaD1TdHJpbmcuZnJvbUNoYXJDb2RlLF9oPS9cXHcvO2Z1bmN0aW9uIExoKGUpe3JldHVybiBfaC50ZXN0KHR5cGVvZiBlPT1cIm51bWJlclwiP1BoKGUpOmUuY2hhckF0KDApKX19KTt2YXIgSG89QygoWUYsR28pPT57XCJ1c2Ugc3RyaWN0XCI7R28uZXhwb3J0cz1PaDtmdW5jdGlvbiBPaChlLHIpe3ZhciBuPWUuaW5kZXhPZihcIipcIixyKSx0PWUuaW5kZXhPZihcIl9cIixyKTtyZXR1cm4gdD09PS0xP246bj09PS0xfHx0PG4/dDpufX0pO3ZhciBRbz1DKChWRixYbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgSWg9T2UoKSxOaD0kbygpLFdvPW5lKCksUmg9SG8oKTtYby5leHBvcnRzPUpvO0pvLmxvY2F0b3I9Umg7dmFyIHpoPVwiKlwiLEtvPVwiX1wiLE1oPVwiXFxcXFwiO2Z1bmN0aW9uIEpvKGUscixuKXt2YXIgdD10aGlzLGE9MCxpPXIuY2hhckF0KGEpLHUsbyxzLGwsYyxmLEQ7aWYoIShpIT09emgmJmkhPT1LbykmJihvPXQub3B0aW9ucy5wZWRhbnRpYyxjPWkscz1pLGY9ci5sZW5ndGgsYSsrLGw9XCJcIixpPVwiXCIsIShvJiZXbyhyLmNoYXJBdChhKSkpKSlmb3IoO2E8Zjspe2lmKEQ9aSxpPXIuY2hhckF0KGEpLGk9PT1zJiYoIW98fCFXbyhEKSkpe2lmKGk9ci5jaGFyQXQoKythKSxpIT09cyl7aWYoIUloKGwpfHxEPT09cylyZXR1cm47aWYoIW8mJnM9PT1LbyYmTmgoaSkpe2wrPXM7Y29udGludWV9cmV0dXJuIG4/ITA6KHU9ZS5ub3coKSx1LmNvbHVtbisrLHUub2Zmc2V0KyssZShjK2wrcykoe3R5cGU6XCJlbXBoYXNpc1wiLGNoaWxkcmVuOnQudG9rZW5pemVJbmxpbmUobCx1KX0pKX1sKz1zfSFvJiZpPT09TWgmJihsKz1pLGk9ci5jaGFyQXQoKythKSksbCs9aSxhKyt9fX0pO3ZhciBlcz1DKChqRixabyk9PntcInVzZSBzdHJpY3RcIjtaby5leHBvcnRzPVVoO2Z1bmN0aW9uIFVoKGUscil7cmV0dXJuIGUuaW5kZXhPZihcIn5+XCIscil9fSk7dmFyIHVzPUMoKCRGLGlzKT0+e1widXNlIHN0cmljdFwiO3ZhciBycz1uZSgpLFloPWVzKCk7aXMuZXhwb3J0cz1ucztucy5sb2NhdG9yPVloO3ZhciBldD1cIn5cIix0cz1cIn5+XCI7ZnVuY3Rpb24gbnMoZSxyLG4pe3ZhciB0PXRoaXMsYT1cIlwiLGk9XCJcIix1PVwiXCIsbz1cIlwiLHMsbCxjO2lmKCEoIXQub3B0aW9ucy5nZm18fHIuY2hhckF0KDApIT09ZXR8fHIuY2hhckF0KDEpIT09ZXR8fHJzKHIuY2hhckF0KDIpKSkpZm9yKHM9MSxsPXIubGVuZ3RoLGM9ZS5ub3coKSxjLmNvbHVtbis9MixjLm9mZnNldCs9MjsrK3M8bDspe2lmKGE9ci5jaGFyQXQocyksYT09PWV0JiZpPT09ZXQmJighdXx8IXJzKHUpKSlyZXR1cm4gbj8hMDplKHRzK28rdHMpKHt0eXBlOlwiZGVsZXRlXCIsY2hpbGRyZW46dC50b2tlbml6ZUlubGluZShvLGMpfSk7bys9aSx1PWksaT1hfX19KTt2YXIgb3M9QygoR0YsYXMpPT57XCJ1c2Ugc3RyaWN0XCI7YXMuZXhwb3J0cz1WaDtmdW5jdGlvbiBWaChlLHIpe3JldHVybiBlLmluZGV4T2YoXCJgXCIscil9fSk7dmFyIGxzPUMoKEhGLGNzKT0+e1widXNlIHN0cmljdFwiO3ZhciBqaD1vcygpO2NzLmV4cG9ydHM9c3M7c3MubG9jYXRvcj1qaDt2YXIgcG49MTAsZG49MzIsaG49OTY7ZnVuY3Rpb24gc3MoZSxyLG4pe2Zvcih2YXIgdD1yLmxlbmd0aCxhPTAsaSx1LG8scyxsLGM7YTx0JiZyLmNoYXJDb2RlQXQoYSk9PT1objspYSsrO2lmKCEoYT09PTB8fGE9PT10KSl7Zm9yKGk9YSxsPXIuY2hhckNvZGVBdChhKTthPHQ7KXtpZihzPWwsbD1yLmNoYXJDb2RlQXQoYSsxKSxzPT09aG4pe2lmKHU9PT12b2lkIDAmJih1PWEpLG89YSsxLGwhPT1obiYmby11PT09aSl7Yz0hMDticmVha319ZWxzZSB1IT09dm9pZCAwJiYodT12b2lkIDAsbz12b2lkIDApO2ErK31pZihjKXtpZihuKXJldHVybiEwO2lmKGE9aSx0PXUscz1yLmNoYXJDb2RlQXQoYSksbD1yLmNoYXJDb2RlQXQodC0xKSxjPSExLHQtYT4yJiYocz09PWRufHxzPT09cG4pJiYobD09PWRufHxsPT09cG4pKXtmb3IoYSsrLHQtLTthPHQ7KXtpZihzPXIuY2hhckNvZGVBdChhKSxzIT09ZG4mJnMhPT1wbil7Yz0hMDticmVha31hKyt9Yz09PSEwJiYoaSsrLHUtLSl9cmV0dXJuIGUoci5zbGljZSgwLG8pKSh7dHlwZTpcImlubGluZUNvZGVcIix2YWx1ZTpyLnNsaWNlKGksdSl9KX19fX0pO3ZhciBEcz1DKChXRixmcyk9PntcInVzZSBzdHJpY3RcIjtmcy5leHBvcnRzPSRoO2Z1bmN0aW9uICRoKGUscil7Zm9yKHZhciBuPWUuaW5kZXhPZihgXG5gLHIpO24+ciYmZS5jaGFyQXQobi0xKT09PVwiIFwiOyluLS07cmV0dXJuIG59fSk7dmFyIGhzPUMoKEtGLGRzKT0+e1widXNlIHN0cmljdFwiO3ZhciBHaD1EcygpO2RzLmV4cG9ydHM9cHM7cHMubG9jYXRvcj1HaDt2YXIgSGg9XCIgXCIsV2g9YFxuYCxLaD0yO2Z1bmN0aW9uIHBzKGUscixuKXtmb3IodmFyIHQ9ci5sZW5ndGgsYT0tMSxpPVwiXCIsdTsrK2E8dDspe2lmKHU9ci5jaGFyQXQoYSksdT09PVdoKXJldHVybiBhPEtoP3ZvaWQgMDpuPyEwOihpKz11LGUoaSkoe3R5cGU6XCJicmVha1wifSkpO2lmKHUhPT1IaClyZXR1cm47aSs9dX19fSk7dmFyIGdzPUMoKEpGLG1zKT0+e1widXNlIHN0cmljdFwiO21zLmV4cG9ydHM9Smg7ZnVuY3Rpb24gSmgoZSxyLG4pe3ZhciB0PXRoaXMsYSxpLHUsbyxzLGwsYyxmLEQsaDtpZihuKXJldHVybiEwO2ZvcihhPXQuaW5saW5lTWV0aG9kcyxvPWEubGVuZ3RoLGk9dC5pbmxpbmVUb2tlbml6ZXJzLHU9LTEsRD1yLmxlbmd0aDsrK3U8bzspZj1hW3VdLCEoZj09PVwidGV4dFwifHwhaVtmXSkmJihjPWlbZl0ubG9jYXRvcixjfHxlLmZpbGUuZmFpbChcIk1pc3NpbmcgbG9jYXRvcjogYFwiK2YrXCJgXCIpLGw9Yy5jYWxsKHQsciwxKSxsIT09LTEmJmw8RCYmKEQ9bCkpO3M9ci5zbGljZSgwLEQpLGg9ZS5ub3coKSx0LmRlY29kZShzLGgscCk7ZnVuY3Rpb24gcChkLG0sZyl7ZShnfHxkKSh7dHlwZTpcInRleHRcIix2YWx1ZTpkfSl9fX0pO3ZhciBDcz1DKChYRixFcyk9PntcInVzZSBzdHJpY3RcIjt2YXIgWGg9X2UoKSxydD1OaSgpLFFoPXppKCksWmg9VWkoKSxlbT1odSgpLG1uPXZ1KCk7RXMuZXhwb3J0cz12cztmdW5jdGlvbiB2cyhlLHIpe3RoaXMuZmlsZT1yLHRoaXMub2Zmc2V0PXt9LHRoaXMub3B0aW9ucz1YaCh0aGlzLm9wdGlvbnMpLHRoaXMuc2V0T3B0aW9ucyh7fSksdGhpcy5pbkxpc3Q9ITEsdGhpcy5pbkJsb2NrPSExLHRoaXMuaW5MaW5rPSExLHRoaXMuYXRTdGFydD0hMCx0aGlzLnRvT2Zmc2V0PVFoKHIpLnRvT2Zmc2V0LHRoaXMudW5lc2NhcGU9WmgodGhpcyxcImVzY2FwZVwiKSx0aGlzLmRlY29kZT1lbSh0aGlzKX12YXIgej12cy5wcm90b3R5cGU7ei5zZXRPcHRpb25zPXd1KCk7ei5wYXJzZT1ZdSgpO3oub3B0aW9ucz1QdCgpO3ouZXhpdFN0YXJ0PXJ0KFwiYXRTdGFydFwiLCEwKTt6LmVudGVyTGlzdD1ydChcImluTGlzdFwiLCExKTt6LmVudGVyTGluaz1ydChcImluTGlua1wiLCExKTt6LmVudGVyQmxvY2s9cnQoXCJpbkJsb2NrXCIsITEpO3ouaW50ZXJydXB0UGFyYWdyYXBoPVtbXCJ0aGVtYXRpY0JyZWFrXCJdLFtcImxpc3RcIl0sW1wiYXR4SGVhZGluZ1wiXSxbXCJmZW5jZWRDb2RlXCJdLFtcImJsb2NrcXVvdGVcIl0sW1wiaHRtbFwiXSxbXCJzZXRleHRIZWFkaW5nXCIse2NvbW1vbm1hcms6ITF9XSxbXCJkZWZpbml0aW9uXCIse2NvbW1vbm1hcms6ITF9XV07ei5pbnRlcnJ1cHRMaXN0PVtbXCJhdHhIZWFkaW5nXCIse3BlZGFudGljOiExfV0sW1wiZmVuY2VkQ29kZVwiLHtwZWRhbnRpYzohMX1dLFtcInRoZW1hdGljQnJlYWtcIix7cGVkYW50aWM6ITF9XSxbXCJkZWZpbml0aW9uXCIse2NvbW1vbm1hcms6ITF9XV07ei5pbnRlcnJ1cHRCbG9ja3F1b3RlPVtbXCJpbmRlbnRlZENvZGVcIix7Y29tbW9ubWFyazohMH1dLFtcImZlbmNlZENvZGVcIix7Y29tbW9ubWFyazohMH1dLFtcImF0eEhlYWRpbmdcIix7Y29tbW9ubWFyazohMH1dLFtcInNldGV4dEhlYWRpbmdcIix7Y29tbW9ubWFyazohMH1dLFtcInRoZW1hdGljQnJlYWtcIix7Y29tbW9ubWFyazohMH1dLFtcImh0bWxcIix7Y29tbW9ubWFyazohMH1dLFtcImxpc3RcIix7Y29tbW9ubWFyazohMH1dLFtcImRlZmluaXRpb25cIix7Y29tbW9ubWFyazohMX1dXTt6LmJsb2NrVG9rZW5pemVycz17YmxhbmtMaW5lOmp1KCksaW5kZW50ZWRDb2RlOkt1KCksZmVuY2VkQ29kZTpRdSgpLGJsb2NrcXVvdGU6aWEoKSxhdHhIZWFkaW5nOm9hKCksdGhlbWF0aWNCcmVhazpsYSgpLGxpc3Q6Q2EoKSxzZXRleHRIZWFkaW5nOmthKCksaHRtbDpTYSgpLGRlZmluaXRpb246TWEoKSx0YWJsZTpWYSgpLHBhcmFncmFwaDpHYSgpfTt6LmlubGluZVRva2VuaXplcnM9e2VzY2FwZTpRYSgpLGF1dG9MaW5rOmlvKCksdXJsOmhvKCksZW1haWw6eG8oKSxodG1sOndvKCksbGluazpMbygpLHJlZmVyZW5jZTpObygpLHN0cm9uZzpWbygpLGVtcGhhc2lzOlFvKCksZGVsZXRpb246dXMoKSxjb2RlOmxzKCksYnJlYWs6aHMoKSx0ZXh0OmdzKCl9O3ouYmxvY2tNZXRob2RzPUZzKHouYmxvY2tUb2tlbml6ZXJzKTt6LmlubGluZU1ldGhvZHM9RnMoei5pbmxpbmVUb2tlbml6ZXJzKTt6LnRva2VuaXplQmxvY2s9bW4oXCJibG9ja1wiKTt6LnRva2VuaXplSW5saW5lPW1uKFwiaW5saW5lXCIpO3oudG9rZW5pemVGYWN0b3J5PW1uO2Z1bmN0aW9uIEZzKGUpe3ZhciByPVtdLG47Zm9yKG4gaW4gZSlyLnB1c2gobik7cmV0dXJuIHJ9fSk7dmFyIGtzPUMoKFFGLHlzKT0+e1widXNlIHN0cmljdFwiO3ZhciBybT1PaSgpLHRtPV9lKCksYnM9Q3MoKTt5cy5leHBvcnRzPXhzO3hzLlBhcnNlcj1icztmdW5jdGlvbiB4cyhlKXt2YXIgcj10aGlzLmRhdGEoXCJzZXR0aW5nc1wiKSxuPXJtKGJzKTtuLnByb3RvdHlwZS5vcHRpb25zPXRtKG4ucHJvdG90eXBlLm9wdGlvbnMscixlKSx0aGlzLlBhcnNlcj1ufX0pO3ZhciBBcz1DKChaRix3cyk9PntcInVzZSBzdHJpY3RcIjt3cy5leHBvcnRzPW5tO2Z1bmN0aW9uIG5tKGUpe2lmKGUpdGhyb3cgZX19KTt2YXIgZ249QygoZUUsQnMpPT57QnMuZXhwb3J0cz1mdW5jdGlvbihyKXtyZXR1cm4gciE9bnVsbCYmci5jb25zdHJ1Y3RvciE9bnVsbCYmdHlwZW9mIHIuY29uc3RydWN0b3IuaXNCdWZmZXI9PVwiZnVuY3Rpb25cIiYmci5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihyKX19KTt2YXIgTnM9QygockUsSXMpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHR0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksT3M9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxxcz1PYmplY3QuZGVmaW5lUHJvcGVydHksVHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixTcz1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIEFycmF5LmlzQXJyYXk9PVwiZnVuY3Rpb25cIj9BcnJheS5pc0FycmF5KHIpOk9zLmNhbGwocik9PT1cIltvYmplY3QgQXJyYXldXCJ9LFBzPWZ1bmN0aW9uKHIpe2lmKCFyfHxPcy5jYWxsKHIpIT09XCJbb2JqZWN0IE9iamVjdF1cIilyZXR1cm4hMTt2YXIgbj10dC5jYWxsKHIsXCJjb25zdHJ1Y3RvclwiKSx0PXIuY29uc3RydWN0b3ImJnIuY29uc3RydWN0b3IucHJvdG90eXBlJiZ0dC5jYWxsKHIuY29uc3RydWN0b3IucHJvdG90eXBlLFwiaXNQcm90b3R5cGVPZlwiKTtpZihyLmNvbnN0cnVjdG9yJiYhbiYmIXQpcmV0dXJuITE7dmFyIGE7Zm9yKGEgaW4gcik7cmV0dXJuIHR5cGVvZiBhPlwidVwifHx0dC5jYWxsKHIsYSl9LF9zPWZ1bmN0aW9uKHIsbil7cXMmJm4ubmFtZT09PVwiX19wcm90b19fXCI/cXMocixuLm5hbWUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOm4ubmV3VmFsdWUsd3JpdGFibGU6ITB9KTpyW24ubmFtZV09bi5uZXdWYWx1ZX0sTHM9ZnVuY3Rpb24ocixuKXtpZihuPT09XCJfX3Byb3RvX19cIilpZih0dC5jYWxsKHIsbikpe2lmKFRzKXJldHVybiBUcyhyLG4pLnZhbHVlfWVsc2UgcmV0dXJuO3JldHVybiByW25dfTtJcy5leHBvcnRzPWZ1bmN0aW9uIGUoKXt2YXIgcixuLHQsYSxpLHUsbz1hcmd1bWVudHNbMF0scz0xLGw9YXJndW1lbnRzLmxlbmd0aCxjPSExO2Zvcih0eXBlb2Ygbz09XCJib29sZWFuXCImJihjPW8sbz1hcmd1bWVudHNbMV18fHt9LHM9MiksKG89PW51bGx8fHR5cGVvZiBvIT1cIm9iamVjdFwiJiZ0eXBlb2YgbyE9XCJmdW5jdGlvblwiKSYmKG89e30pO3M8bDsrK3MpaWYocj1hcmd1bWVudHNbc10sciE9bnVsbClmb3IobiBpbiByKXQ9THMobyxuKSxhPUxzKHIsbiksbyE9PWEmJihjJiZhJiYoUHMoYSl8fChpPVNzKGEpKSk/KGk/KGk9ITEsdT10JiZTcyh0KT90OltdKTp1PXQmJlBzKHQpP3Q6e30sX3Mobyx7bmFtZTpuLG5ld1ZhbHVlOmUoYyx1LGEpfSkpOnR5cGVvZiBhPFwidVwiJiZfcyhvLHtuYW1lOm4sbmV3VmFsdWU6YX0pKTtyZXR1cm4gb319KTt2YXIgenM9QygodEUsUnMpPT57XCJ1c2Ugc3RyaWN0XCI7UnMuZXhwb3J0cz1lPT57aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIT09XCJbb2JqZWN0IE9iamVjdF1cIilyZXR1cm4hMTtsZXQgcj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIHI9PT1udWxsfHxyPT09T2JqZWN0LnByb3RvdHlwZX19KTt2YXIgVXM9QygobkUsTXMpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGltPVtdLnNsaWNlO01zLmV4cG9ydHM9dW07ZnVuY3Rpb24gdW0oZSxyKXt2YXIgbjtyZXR1cm4gdDtmdW5jdGlvbiB0KCl7dmFyIHU9aW0uY2FsbChhcmd1bWVudHMsMCksbz1lLmxlbmd0aD51Lmxlbmd0aCxzO28mJnUucHVzaChhKTt0cnl7cz1lLmFwcGx5KG51bGwsdSl9Y2F0Y2gobCl7aWYobyYmbil0aHJvdyBsO3JldHVybiBhKGwpfW98fChzJiZ0eXBlb2Ygcy50aGVuPT1cImZ1bmN0aW9uXCI/cy50aGVuKGksYSk6cyBpbnN0YW5jZW9mIEVycm9yP2Eocyk6aShzKSl9ZnVuY3Rpb24gYSgpe258fChuPSEwLHIuYXBwbHkobnVsbCxhcmd1bWVudHMpKX1mdW5jdGlvbiBpKHUpe2EobnVsbCx1KX19fSk7dmFyIEdzPUMoKGlFLCRzKT0+e1widXNlIHN0cmljdFwiO3ZhciBWcz1VcygpOyRzLmV4cG9ydHM9anM7anMud3JhcD1Wczt2YXIgWXM9W10uc2xpY2U7ZnVuY3Rpb24ganMoKXt2YXIgZT1bXSxyPXt9O3JldHVybiByLnJ1bj1uLHIudXNlPXQscjtmdW5jdGlvbiBuKCl7dmFyIGE9LTEsaT1Zcy5jYWxsKGFyZ3VtZW50cywwLC0xKSx1PWFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdO2lmKHR5cGVvZiB1IT1cImZ1bmN0aW9uXCIpdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgZnVuY3Rpb24gYXMgbGFzdCBhcmd1bWVudCwgbm90IFwiK3UpO28uYXBwbHkobnVsbCxbbnVsbF0uY29uY2F0KGkpKTtmdW5jdGlvbiBvKHMpe3ZhciBsPWVbKythXSxjPVlzLmNhbGwoYXJndW1lbnRzLDApLGY9Yy5zbGljZSgxKSxEPWkubGVuZ3RoLGg9LTE7aWYocyl7dShzKTtyZXR1cm59Zm9yKDsrK2g8RDspKGZbaF09PT1udWxsfHxmW2hdPT09dm9pZCAwKSYmKGZbaF09aVtoXSk7aT1mLGw/VnMobCxvKS5hcHBseShudWxsLGkpOnUuYXBwbHkobnVsbCxbbnVsbF0uY29uY2F0KGkpKX19ZnVuY3Rpb24gdChhKXtpZih0eXBlb2YgYSE9XCJmdW5jdGlvblwiKXRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGBmbmAgdG8gYmUgYSBmdW5jdGlvbiwgbm90IFwiK2EpO3JldHVybiBlLnB1c2goYSkscn19fSk7dmFyIEpzPUMoKHVFLEtzKT0+e1widXNlIHN0cmljdFwiO3ZhciBHZT17fS5oYXNPd25Qcm9wZXJ0eTtLcy5leHBvcnRzPWFtO2Z1bmN0aW9uIGFtKGUpe3JldHVybiFlfHx0eXBlb2YgZSE9XCJvYmplY3RcIj9cIlwiOkdlLmNhbGwoZSxcInBvc2l0aW9uXCIpfHxHZS5jYWxsKGUsXCJ0eXBlXCIpP0hzKGUucG9zaXRpb24pOkdlLmNhbGwoZSxcInN0YXJ0XCIpfHxHZS5jYWxsKGUsXCJlbmRcIik/SHMoZSk6R2UuY2FsbChlLFwibGluZVwiKXx8R2UuY2FsbChlLFwiY29sdW1uXCIpP3ZuKGUpOlwiXCJ9ZnVuY3Rpb24gdm4oZSl7cmV0dXJuKCFlfHx0eXBlb2YgZSE9XCJvYmplY3RcIikmJihlPXt9KSxXcyhlLmxpbmUpK1wiOlwiK1dzKGUuY29sdW1uKX1mdW5jdGlvbiBIcyhlKXtyZXR1cm4oIWV8fHR5cGVvZiBlIT1cIm9iamVjdFwiKSYmKGU9e30pLHZuKGUuc3RhcnQpK1wiLVwiK3ZuKGUuZW5kKX1mdW5jdGlvbiBXcyhlKXtyZXR1cm4gZSYmdHlwZW9mIGU9PVwibnVtYmVyXCI/ZToxfX0pO3ZhciBacz1DKChhRSxRcyk9PntcInVzZSBzdHJpY3RcIjt2YXIgb209SnMoKTtRcy5leHBvcnRzPUZuO2Z1bmN0aW9uIFhzKCl7fVhzLnByb3RvdHlwZT1FcnJvci5wcm90b3R5cGU7Rm4ucHJvdG90eXBlPW5ldyBYczt2YXIga2U9Rm4ucHJvdG90eXBlO2tlLmZpbGU9XCJcIjtrZS5uYW1lPVwiXCI7a2UucmVhc29uPVwiXCI7a2UubWVzc2FnZT1cIlwiO2tlLnN0YWNrPVwiXCI7a2UuZmF0YWw9bnVsbDtrZS5jb2x1bW49bnVsbDtrZS5saW5lPW51bGw7ZnVuY3Rpb24gRm4oZSxyLG4pe3ZhciB0LGEsaTt0eXBlb2Ygcj09XCJzdHJpbmdcIiYmKG49cixyPW51bGwpLHQ9c20obiksYT1vbShyKXx8XCIxOjFcIixpPXtzdGFydDp7bGluZTpudWxsLGNvbHVtbjpudWxsfSxlbmQ6e2xpbmU6bnVsbCxjb2x1bW46bnVsbH19LHImJnIucG9zaXRpb24mJihyPXIucG9zaXRpb24pLHImJihyLnN0YXJ0PyhpPXIscj1yLnN0YXJ0KTppLnN0YXJ0PXIpLGUuc3RhY2smJih0aGlzLnN0YWNrPWUuc3RhY2ssZT1lLm1lc3NhZ2UpLHRoaXMubWVzc2FnZT1lLHRoaXMubmFtZT1hLHRoaXMucmVhc29uPWUsdGhpcy5saW5lPXI/ci5saW5lOm51bGwsdGhpcy5jb2x1bW49cj9yLmNvbHVtbjpudWxsLHRoaXMubG9jYXRpb249aSx0aGlzLnNvdXJjZT10WzBdLHRoaXMucnVsZUlkPXRbMV19ZnVuY3Rpb24gc20oZSl7dmFyIHI9W251bGwsbnVsbF0sbjtyZXR1cm4gdHlwZW9mIGU9PVwic3RyaW5nXCImJihuPWUuaW5kZXhPZihcIjpcIiksbj09PS0xP3JbMV09ZTooclswXT1lLnNsaWNlKDAsbiksclsxXT1lLnNsaWNlKG4rMSkpKSxyfX0pO3ZhciBlYz1DKEhlPT57XCJ1c2Ugc3RyaWN0XCI7SGUuYmFzZW5hbWU9Y207SGUuZGlybmFtZT1sbTtIZS5leHRuYW1lPWZtO0hlLmpvaW49RG07SGUuc2VwPVwiL1wiO2Z1bmN0aW9uIGNtKGUscil7dmFyIG49MCx0PS0xLGEsaSx1LG87aWYociE9PXZvaWQgMCYmdHlwZW9mIHIhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcignXCJleHRcIiBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJyk7aWYoRXIoZSksYT1lLmxlbmd0aCxyPT09dm9pZCAwfHwhci5sZW5ndGh8fHIubGVuZ3RoPmUubGVuZ3RoKXtmb3IoO2EtLTspaWYoZS5jaGFyQ29kZUF0KGEpPT09NDcpe2lmKHUpe249YSsxO2JyZWFrfX1lbHNlIHQ8MCYmKHU9ITAsdD1hKzEpO3JldHVybiB0PDA/XCJcIjplLnNsaWNlKG4sdCl9aWYocj09PWUpcmV0dXJuXCJcIjtmb3IoaT0tMSxvPXIubGVuZ3RoLTE7YS0tOylpZihlLmNoYXJDb2RlQXQoYSk9PT00Nyl7aWYodSl7bj1hKzE7YnJlYWt9fWVsc2UgaTwwJiYodT0hMCxpPWErMSksbz4tMSYmKGUuY2hhckNvZGVBdChhKT09PXIuY2hhckNvZGVBdChvLS0pP288MCYmKHQ9YSk6KG89LTEsdD1pKSk7cmV0dXJuIG49PT10P3Q9aTp0PDAmJih0PWUubGVuZ3RoKSxlLnNsaWNlKG4sdCl9ZnVuY3Rpb24gbG0oZSl7dmFyIHIsbix0O2lmKEVyKGUpLCFlLmxlbmd0aClyZXR1cm5cIi5cIjtmb3Iocj0tMSx0PWUubGVuZ3RoOy0tdDspaWYoZS5jaGFyQ29kZUF0KHQpPT09NDcpe2lmKG4pe3I9dDticmVha319ZWxzZSBufHwobj0hMCk7cmV0dXJuIHI8MD9lLmNoYXJDb2RlQXQoMCk9PT00Nz9cIi9cIjpcIi5cIjpyPT09MSYmZS5jaGFyQ29kZUF0KDApPT09NDc/XCIvL1wiOmUuc2xpY2UoMCxyKX1mdW5jdGlvbiBmbShlKXt2YXIgcj0tMSxuPTAsdD0tMSxhPTAsaSx1LG87Zm9yKEVyKGUpLG89ZS5sZW5ndGg7by0tOyl7aWYodT1lLmNoYXJDb2RlQXQobyksdT09PTQ3KXtpZihpKXtuPW8rMTticmVha31jb250aW51ZX10PDAmJihpPSEwLHQ9bysxKSx1PT09NDY/cjwwP3I9bzphIT09MSYmKGE9MSk6cj4tMSYmKGE9LTEpfXJldHVybiByPDB8fHQ8MHx8YT09PTB8fGE9PT0xJiZyPT09dC0xJiZyPT09bisxP1wiXCI6ZS5zbGljZShyLHQpfWZ1bmN0aW9uIERtKCl7Zm9yKHZhciBlPS0xLHI7KytlPGFyZ3VtZW50cy5sZW5ndGg7KUVyKGFyZ3VtZW50c1tlXSksYXJndW1lbnRzW2VdJiYocj1yPT09dm9pZCAwP2FyZ3VtZW50c1tlXTpyK1wiL1wiK2FyZ3VtZW50c1tlXSk7cmV0dXJuIHI9PT12b2lkIDA/XCIuXCI6cG0ocil9ZnVuY3Rpb24gcG0oZSl7dmFyIHIsbjtyZXR1cm4gRXIoZSkscj1lLmNoYXJDb2RlQXQoMCk9PT00NyxuPWRtKGUsIXIpLCFuLmxlbmd0aCYmIXImJihuPVwiLlwiKSxuLmxlbmd0aCYmZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpPT09NDcmJihuKz1cIi9cIikscj9cIi9cIituOm59ZnVuY3Rpb24gZG0oZSxyKXtmb3IodmFyIG49XCJcIix0PTAsYT0tMSxpPTAsdT0tMSxvLHM7Kyt1PD1lLmxlbmd0aDspe2lmKHU8ZS5sZW5ndGgpbz1lLmNoYXJDb2RlQXQodSk7ZWxzZXtpZihvPT09NDcpYnJlYWs7bz00N31pZihvPT09NDcpe2lmKCEoYT09PXUtMXx8aT09PTEpKWlmKGEhPT11LTEmJmk9PT0yKXtpZihuLmxlbmd0aDwyfHx0IT09Mnx8bi5jaGFyQ29kZUF0KG4ubGVuZ3RoLTEpIT09NDZ8fG4uY2hhckNvZGVBdChuLmxlbmd0aC0yKSE9PTQ2KXtpZihuLmxlbmd0aD4yKXtpZihzPW4ubGFzdEluZGV4T2YoXCIvXCIpLHMhPT1uLmxlbmd0aC0xKXtzPDA/KG49XCJcIix0PTApOihuPW4uc2xpY2UoMCxzKSx0PW4ubGVuZ3RoLTEtbi5sYXN0SW5kZXhPZihcIi9cIikpLGE9dSxpPTA7Y29udGludWV9fWVsc2UgaWYobi5sZW5ndGgpe249XCJcIix0PTAsYT11LGk9MDtjb250aW51ZX19ciYmKG49bi5sZW5ndGg/bitcIi8uLlwiOlwiLi5cIix0PTIpfWVsc2Ugbi5sZW5ndGg/bis9XCIvXCIrZS5zbGljZShhKzEsdSk6bj1lLnNsaWNlKGErMSx1KSx0PXUtYS0xO2E9dSxpPTB9ZWxzZSBvPT09NDYmJmk+LTE/aSsrOmk9LTF9cmV0dXJuIG59ZnVuY3Rpb24gRXIoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgXCIrSlNPTi5zdHJpbmdpZnkoZSkpfX0pO3ZhciB0Yz1DKHJjPT57XCJ1c2Ugc3RyaWN0XCI7cmMuY3dkPWhtO2Z1bmN0aW9uIGhtKCl7cmV0dXJuXCIvXCJ9fSk7dmFyIHVjPUMoKGNFLGljKT0+e1widXNlIHN0cmljdFwiO3ZhciBpZT1lYygpLG1tPXRjKCksZ209Z24oKTtpYy5leHBvcnRzPWhlO3ZhciB2bT17fS5oYXNPd25Qcm9wZXJ0eSxFbj1bXCJoaXN0b3J5XCIsXCJwYXRoXCIsXCJiYXNlbmFtZVwiLFwic3RlbVwiLFwiZXh0bmFtZVwiLFwiZGlybmFtZVwiXTtoZS5wcm90b3R5cGUudG9TdHJpbmc9cW07T2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSxcInBhdGhcIix7Z2V0OkZtLHNldDpFbX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoZS5wcm90b3R5cGUsXCJkaXJuYW1lXCIse2dldDpDbSxzZXQ6Ym19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLFwiYmFzZW5hbWVcIix7Z2V0OnhtLHNldDp5bX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoZS5wcm90b3R5cGUsXCJleHRuYW1lXCIse2dldDprbSxzZXQ6d219KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLFwic3RlbVwiLHtnZXQ6QW0sc2V0OkJtfSk7ZnVuY3Rpb24gaGUoZSl7dmFyIHIsbjtpZighZSllPXt9O2Vsc2UgaWYodHlwZW9mIGU9PVwic3RyaW5nXCJ8fGdtKGUpKWU9e2NvbnRlbnRzOmV9O2Vsc2UgaWYoXCJtZXNzYWdlXCJpbiBlJiZcIm1lc3NhZ2VzXCJpbiBlKXJldHVybiBlO2lmKCEodGhpcyBpbnN0YW5jZW9mIGhlKSlyZXR1cm4gbmV3IGhlKGUpO2Zvcih0aGlzLmRhdGE9e30sdGhpcy5tZXNzYWdlcz1bXSx0aGlzLmhpc3Rvcnk9W10sdGhpcy5jd2Q9bW0uY3dkKCksbj0tMTsrK248RW4ubGVuZ3RoOylyPUVuW25dLHZtLmNhbGwoZSxyKSYmKHRoaXNbcl09ZVtyXSk7Zm9yKHIgaW4gZSlFbi5pbmRleE9mKHIpPDAmJih0aGlzW3JdPWVbcl0pfWZ1bmN0aW9uIEZtKCl7cmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoLTFdfWZ1bmN0aW9uIEVtKGUpe2JuKGUsXCJwYXRoXCIpLHRoaXMucGF0aCE9PWUmJnRoaXMuaGlzdG9yeS5wdXNoKGUpfWZ1bmN0aW9uIENtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PVwic3RyaW5nXCI/aWUuZGlybmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1mdW5jdGlvbiBibShlKXtuYyh0aGlzLnBhdGgsXCJkaXJuYW1lXCIpLHRoaXMucGF0aD1pZS5qb2luKGV8fFwiXCIsdGhpcy5iYXNlbmFtZSl9ZnVuY3Rpb24geG0oKXtyZXR1cm4gdHlwZW9mIHRoaXMucGF0aD09XCJzdHJpbmdcIj9pZS5iYXNlbmFtZSh0aGlzLnBhdGgpOnZvaWQgMH1mdW5jdGlvbiB5bShlKXtibihlLFwiYmFzZW5hbWVcIiksQ24oZSxcImJhc2VuYW1lXCIpLHRoaXMucGF0aD1pZS5qb2luKHRoaXMuZGlybmFtZXx8XCJcIixlKX1mdW5jdGlvbiBrbSgpe3JldHVybiB0eXBlb2YgdGhpcy5wYXRoPT1cInN0cmluZ1wiP2llLmV4dG5hbWUodGhpcy5wYXRoKTp2b2lkIDB9ZnVuY3Rpb24gd20oZSl7aWYoQ24oZSxcImV4dG5hbWVcIiksbmModGhpcy5wYXRoLFwiZXh0bmFtZVwiKSxlKXtpZihlLmNoYXJDb2RlQXQoMCkhPT00Nil0aHJvdyBuZXcgRXJyb3IoXCJgZXh0bmFtZWAgbXVzdCBzdGFydCB3aXRoIGAuYFwiKTtpZihlLmluZGV4T2YoXCIuXCIsMSk+LTEpdGhyb3cgbmV3IEVycm9yKFwiYGV4dG5hbWVgIGNhbm5vdCBjb250YWluIG11bHRpcGxlIGRvdHNcIil9dGhpcy5wYXRoPWllLmpvaW4odGhpcy5kaXJuYW1lLHRoaXMuc3RlbSsoZXx8XCJcIikpfWZ1bmN0aW9uIEFtKCl7cmV0dXJuIHR5cGVvZiB0aGlzLnBhdGg9PVwic3RyaW5nXCI/aWUuYmFzZW5hbWUodGhpcy5wYXRoLHRoaXMuZXh0bmFtZSk6dm9pZCAwfWZ1bmN0aW9uIEJtKGUpe2JuKGUsXCJzdGVtXCIpLENuKGUsXCJzdGVtXCIpLHRoaXMucGF0aD1pZS5qb2luKHRoaXMuZGlybmFtZXx8XCJcIixlKyh0aGlzLmV4dG5hbWV8fFwiXCIpKX1mdW5jdGlvbiBxbShlKXtyZXR1cm4odGhpcy5jb250ZW50c3x8XCJcIikudG9TdHJpbmcoZSl9ZnVuY3Rpb24gQ24oZSxyKXtpZihlJiZlLmluZGV4T2YoaWUuc2VwKT4tMSl0aHJvdyBuZXcgRXJyb3IoXCJgXCIrcitcImAgY2Fubm90IGJlIGEgcGF0aDogZGlkIG5vdCBleHBlY3QgYFwiK2llLnNlcCtcImBcIil9ZnVuY3Rpb24gYm4oZSxyKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJgXCIrcitcImAgY2Fubm90IGJlIGVtcHR5XCIpfWZ1bmN0aW9uIG5jKGUscil7aWYoIWUpdGhyb3cgbmV3IEVycm9yKFwiU2V0dGluZyBgXCIrcitcImAgcmVxdWlyZXMgYHBhdGhgIHRvIGJlIHNldCB0b29cIil9fSk7dmFyIG9jPUMoKGxFLGFjKT0+e1widXNlIHN0cmljdFwiO3ZhciBUbT1acygpLG50PXVjKCk7YWMuZXhwb3J0cz1udDtudC5wcm90b3R5cGUubWVzc2FnZT1TbTtudC5wcm90b3R5cGUuaW5mbz1fbTtudC5wcm90b3R5cGUuZmFpbD1QbTtmdW5jdGlvbiBTbShlLHIsbil7dmFyIHQ9bmV3IFRtKGUscixuKTtyZXR1cm4gdGhpcy5wYXRoJiYodC5uYW1lPXRoaXMucGF0aCtcIjpcIit0Lm5hbWUsdC5maWxlPXRoaXMucGF0aCksdC5mYXRhbD0hMSx0aGlzLm1lc3NhZ2VzLnB1c2godCksdH1mdW5jdGlvbiBQbSgpe3ZhciBlPXRoaXMubWVzc2FnZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgZS5mYXRhbD0hMCxlfWZ1bmN0aW9uIF9tKCl7dmFyIGU9dGhpcy5tZXNzYWdlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5mYXRhbD1udWxsLGV9fSk7dmFyIGNjPUMoKGZFLHNjKT0+e1widXNlIHN0cmljdFwiO3NjLmV4cG9ydHM9b2MoKX0pO3ZhciB2Yz1DKChERSxnYyk9PntcInVzZSBzdHJpY3RcIjt2YXIgbGM9QXMoKSxMbT1nbigpLGl0PU5zKCksZmM9enMoKSxoYz1HcygpLENyPWNjKCk7Z2MuZXhwb3J0cz1tYygpLmZyZWV6ZSgpO3ZhciBPbT1bXS5zbGljZSxJbT17fS5oYXNPd25Qcm9wZXJ0eSxObT1oYygpLnVzZShSbSkudXNlKHptKS51c2UoTW0pO2Z1bmN0aW9uIFJtKGUscil7ci50cmVlPWUucGFyc2Uoci5maWxlKX1mdW5jdGlvbiB6bShlLHIsbil7ZS5ydW4oci50cmVlLHIuZmlsZSx0KTtmdW5jdGlvbiB0KGEsaSx1KXthP24oYSk6KHIudHJlZT1pLHIuZmlsZT11LG4oKSl9fWZ1bmN0aW9uIE1tKGUscil7dmFyIG49ZS5zdHJpbmdpZnkoci50cmVlLHIuZmlsZSk7bj09bnVsbHx8KHR5cGVvZiBuPT1cInN0cmluZ1wifHxMbShuKT8oXCJ2YWx1ZVwiaW4gci5maWxlJiYoci5maWxlLnZhbHVlPW4pLHIuZmlsZS5jb250ZW50cz1uKTpyLmZpbGUucmVzdWx0PW4pfWZ1bmN0aW9uIG1jKCl7dmFyIGU9W10scj1oYygpLG49e30sdD0tMSxhO3JldHVybiBpLmRhdGE9byxpLmZyZWV6ZT11LGkuYXR0YWNoZXJzPWUsaS51c2U9cyxpLnBhcnNlPWMsaS5zdHJpbmdpZnk9aCxpLnJ1bj1mLGkucnVuU3luYz1ELGkucHJvY2Vzcz1wLGkucHJvY2Vzc1N5bmM9ZCxpO2Z1bmN0aW9uIGkoKXtmb3IodmFyIG09bWMoKSxnPS0xOysrZzxlLmxlbmd0aDspbS51c2UuYXBwbHkobnVsbCxlW2ddKTtyZXR1cm4gbS5kYXRhKGl0KCEwLHt9LG4pKSxtfWZ1bmN0aW9uIHUoKXt2YXIgbSxnO2lmKGEpcmV0dXJuIGk7Zm9yKDsrK3Q8ZS5sZW5ndGg7KW09ZVt0XSxtWzFdIT09ITEmJihtWzFdPT09ITAmJihtWzFdPXZvaWQgMCksZz1tWzBdLmFwcGx5KGksbS5zbGljZSgxKSksdHlwZW9mIGc9PVwiZnVuY3Rpb25cIiYmci51c2UoZykpO3JldHVybiBhPSEwLHQ9MS8wLGl9ZnVuY3Rpb24gbyhtLGcpe3JldHVybiB0eXBlb2YgbT09XCJzdHJpbmdcIj9hcmd1bWVudHMubGVuZ3RoPT09Mj8oa24oXCJkYXRhXCIsYSksblttXT1nLGkpOkltLmNhbGwobixtKSYmblttXXx8bnVsbDptPyhrbihcImRhdGFcIixhKSxuPW0saSk6bn1mdW5jdGlvbiBzKG0pe3ZhciBnO2lmKGtuKFwidXNlXCIsYSksbSE9bnVsbClpZih0eXBlb2YgbT09XCJmdW5jdGlvblwiKWIuYXBwbHkobnVsbCxhcmd1bWVudHMpO2Vsc2UgaWYodHlwZW9mIG09PVwib2JqZWN0XCIpXCJsZW5ndGhcImluIG0/QihtKTp4KG0pO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYFwiK20rXCJgXCIpO3JldHVybiBnJiYobi5zZXR0aW5ncz1pdChuLnNldHRpbmdzfHx7fSxnKSksaTtmdW5jdGlvbiB4KHYpe0Iodi5wbHVnaW5zKSx2LnNldHRpbmdzJiYoZz1pdChnfHx7fSx2LnNldHRpbmdzKSl9ZnVuY3Rpb24gRih2KXtpZih0eXBlb2Ygdj09XCJmdW5jdGlvblwiKWIodik7ZWxzZSBpZih0eXBlb2Ygdj09XCJvYmplY3RcIilcImxlbmd0aFwiaW4gdj9iLmFwcGx5KG51bGwsdik6eCh2KTtlbHNlIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGBcIit2K1wiYFwiKX1mdW5jdGlvbiBCKHYpe3ZhciB5PS0xO2lmKHYhPW51bGwpaWYodHlwZW9mIHY9PVwib2JqZWN0XCImJlwibGVuZ3RoXCJpbiB2KWZvcig7Kyt5PHYubGVuZ3RoOylGKHZbeV0pO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYSBsaXN0IG9mIHBsdWdpbnMsIG5vdCBgXCIrditcImBcIil9ZnVuY3Rpb24gYih2LHkpe3ZhciBrPWwodik7az8oZmMoa1sxXSkmJmZjKHkpJiYoeT1pdCghMCxrWzFdLHkpKSxrWzFdPXkpOmUucHVzaChPbS5jYWxsKGFyZ3VtZW50cykpfX1mdW5jdGlvbiBsKG0pe2Zvcih2YXIgZz0tMTsrK2c8ZS5sZW5ndGg7KWlmKGVbZ11bMF09PT1tKXJldHVybiBlW2ddfWZ1bmN0aW9uIGMobSl7dmFyIGc9Q3IobSkseDtyZXR1cm4gdSgpLHg9aS5QYXJzZXIseG4oXCJwYXJzZVwiLHgpLERjKHgsXCJwYXJzZVwiKT9uZXcgeChTdHJpbmcoZyksZykucGFyc2UoKTp4KFN0cmluZyhnKSxnKX1mdW5jdGlvbiBmKG0sZyx4KXtpZihwYyhtKSx1KCksIXgmJnR5cGVvZiBnPT1cImZ1bmN0aW9uXCImJih4PWcsZz1udWxsKSwheClyZXR1cm4gbmV3IFByb21pc2UoRik7RihudWxsLHgpO2Z1bmN0aW9uIEYoQixiKXtyLnJ1bihtLENyKGcpLHYpO2Z1bmN0aW9uIHYoeSxrLEUpe2s9a3x8bSx5P2IoeSk6Qj9CKGspOngobnVsbCxrLEUpfX19ZnVuY3Rpb24gRChtLGcpe3ZhciB4LEY7cmV0dXJuIGYobSxnLEIpLGRjKFwicnVuU3luY1wiLFwicnVuXCIsRikseDtmdW5jdGlvbiBCKGIsdil7Rj0hMCx4PXYsbGMoYil9fWZ1bmN0aW9uIGgobSxnKXt2YXIgeD1DcihnKSxGO3JldHVybiB1KCksRj1pLkNvbXBpbGVyLHluKFwic3RyaW5naWZ5XCIsRikscGMobSksRGMoRixcImNvbXBpbGVcIik/bmV3IEYobSx4KS5jb21waWxlKCk6RihtLHgpfWZ1bmN0aW9uIHAobSxnKXtpZih1KCkseG4oXCJwcm9jZXNzXCIsaS5QYXJzZXIpLHluKFwicHJvY2Vzc1wiLGkuQ29tcGlsZXIpLCFnKXJldHVybiBuZXcgUHJvbWlzZSh4KTt4KG51bGwsZyk7ZnVuY3Rpb24geChGLEIpe3ZhciBiPUNyKG0pO05tLnJ1bihpLHtmaWxlOmJ9LHYpO2Z1bmN0aW9uIHYoeSl7eT9CKHkpOkY/RihiKTpnKG51bGwsYil9fX1mdW5jdGlvbiBkKG0pe3ZhciBnLHg7cmV0dXJuIHUoKSx4bihcInByb2Nlc3NTeW5jXCIsaS5QYXJzZXIpLHluKFwicHJvY2Vzc1N5bmNcIixpLkNvbXBpbGVyKSxnPUNyKG0pLHAoZyxGKSxkYyhcInByb2Nlc3NTeW5jXCIsXCJwcm9jZXNzXCIseCksZztmdW5jdGlvbiBGKEIpe3g9ITAsbGMoQil9fX1mdW5jdGlvbiBEYyhlLHIpe3JldHVybiB0eXBlb2YgZT09XCJmdW5jdGlvblwiJiZlLnByb3RvdHlwZSYmKFVtKGUucHJvdG90eXBlKXx8ciBpbiBlLnByb3RvdHlwZSl9ZnVuY3Rpb24gVW0oZSl7dmFyIHI7Zm9yKHIgaW4gZSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB4bihlLHIpe2lmKHR5cGVvZiByIT1cImZ1bmN0aW9uXCIpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGBcIitlK1wiYCB3aXRob3V0IGBQYXJzZXJgXCIpfWZ1bmN0aW9uIHluKGUscil7aWYodHlwZW9mIHIhPVwiZnVuY3Rpb25cIil0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgYFwiK2UrXCJgIHdpdGhvdXQgYENvbXBpbGVyYFwiKX1mdW5jdGlvbiBrbihlLHIpe2lmKHIpdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGludm9rZSBgXCIrZStcImAgb24gYSBmcm96ZW4gcHJvY2Vzc29yLlxcbkNyZWF0ZSBhIG5ldyBwcm9jZXNzb3IgZmlyc3QsIGJ5IGludm9raW5nIGl0OiB1c2UgYHByb2Nlc3NvcigpYCBpbnN0ZWFkIG9mIGBwcm9jZXNzb3JgLlwiKX1mdW5jdGlvbiBwYyhlKXtpZighZXx8dHlwZW9mIGUudHlwZSE9XCJzdHJpbmdcIil0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBub2RlLCBnb3QgYFwiK2UrXCJgXCIpfWZ1bmN0aW9uIGRjKGUscixuKXtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJgXCIrZStcImAgZmluaXNoZWQgYXN5bmMuIFVzZSBgXCIrcitcImAgaW5zdGVhZFwiKX19KTt2YXIgQW49Qyh3bj0+e3duLmlzUmVtYXJrUGFyc2VyPVltO3duLmlzUmVtYXJrQ29tcGlsZXI9Vm07ZnVuY3Rpb24gWW0oZSl7cmV0dXJuISEoZSYmZS5wcm90b3R5cGUmJmUucHJvdG90eXBlLmJsb2NrVG9rZW5pemVycyl9ZnVuY3Rpb24gVm0oZSl7cmV0dXJuISEoZSYmZS5wcm90b3R5cGUmJmUucHJvdG90eXBlLnZpc2l0b3JzKX19KTt2YXIga2M9QygoZEUseWMpPT57dmFyIEZjPUFuKCk7eWMuZXhwb3J0cz1IbTt2YXIgRWM9OSxDYz0zMix1dD0zNixqbT00OCwkbT01NyxiYz05MixHbT1bXCJtYXRoXCIsXCJtYXRoLWlubGluZVwiXSx4Yz1cIm1hdGgtZGlzcGxheVwiO2Z1bmN0aW9uIEhtKGUpe2xldCByPXRoaXMuUGFyc2VyLG49dGhpcy5Db21waWxlcjtGYy5pc1JlbWFya1BhcnNlcihyKSYmV20ocixlKSxGYy5pc1JlbWFya0NvbXBpbGVyKG4pJiZLbShuLGUpfWZ1bmN0aW9uIFdtKGUscil7bGV0IG49ZS5wcm90b3R5cGUsdD1uLmlubGluZU1ldGhvZHM7aS5sb2NhdG9yPWEsbi5pbmxpbmVUb2tlbml6ZXJzLm1hdGg9aSx0LnNwbGljZSh0LmluZGV4T2YoXCJ0ZXh0XCIpLDAsXCJtYXRoXCIpO2Z1bmN0aW9uIGEodSxvKXtyZXR1cm4gdS5pbmRleE9mKFwiJFwiLG8pfWZ1bmN0aW9uIGkodSxvLHMpe2xldCBsPW8ubGVuZ3RoLGM9ITEsZj0hMSxEPTAsaCxwLGQsbSxnLHgsRjtpZihvLmNoYXJDb2RlQXQoRCk9PT1iYyYmKGY9ITAsRCsrKSxvLmNoYXJDb2RlQXQoRCk9PT11dCl7aWYoRCsrLGYpcmV0dXJuIHM/ITA6dShvLnNsaWNlKDAsRCkpKHt0eXBlOlwidGV4dFwiLHZhbHVlOlwiJFwifSk7aWYoby5jaGFyQ29kZUF0KEQpPT09dXQmJihjPSEwLEQrKyksZD1vLmNoYXJDb2RlQXQoRCksIShkPT09Q2N8fGQ9PT1FYykpe2ZvcihtPUQ7RDxsOyl7aWYocD1kLGQ9by5jaGFyQ29kZUF0KEQrMSkscD09PXV0KXtpZihoPW8uY2hhckNvZGVBdChELTEpLGghPT1DYyYmaCE9PUVjJiYoZCE9PWR8fGQ8am18fGQ+JG0pJiYoIWN8fGQ9PT11dCkpe2c9RC0xLEQrKyxjJiZEKysseD1EO2JyZWFrfX1lbHNlIHA9PT1iYyYmKEQrKyxkPW8uY2hhckNvZGVBdChEKzEpKTtEKyt9aWYoeCE9PXZvaWQgMClyZXR1cm4gcz8hMDooRj1vLnNsaWNlKG0sZysxKSx1KG8uc2xpY2UoMCx4KSkoe3R5cGU6XCJpbmxpbmVNYXRoXCIsdmFsdWU6RixkYXRhOntoTmFtZTpcInNwYW5cIixoUHJvcGVydGllczp7Y2xhc3NOYW1lOkdtLmNvbmNhdChjJiZyLmlubGluZU1hdGhEb3VibGU/W3hjXTpbXSl9LGhDaGlsZHJlbjpbe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6Rn1dfX0pKX19fX1mdW5jdGlvbiBLbShlKXtsZXQgcj1lLnByb3RvdHlwZTtyLnZpc2l0b3JzLmlubGluZU1hdGg9bjtmdW5jdGlvbiBuKHQpe2xldCBhPVwiJFwiO3JldHVybih0LmRhdGEmJnQuZGF0YS5oUHJvcGVydGllcyYmdC5kYXRhLmhQcm9wZXJ0aWVzLmNsYXNzTmFtZXx8W10pLmluY2x1ZGVzKHhjKSYmKGE9XCIkJFwiKSxhK3QudmFsdWUrYX19fSk7dmFyIFRjPUMoKGhFLHFjKT0+e3ZhciB3Yz1BbigpO3FjLmV4cG9ydHM9Wm07dmFyIEFjPTEwLGJyPTMyLEJuPTM2LEJjPWBcbmAsSm09XCIkXCIsWG09MixRbT1bXCJtYXRoXCIsXCJtYXRoLWRpc3BsYXlcIl07ZnVuY3Rpb24gWm0oKXtsZXQgZT10aGlzLlBhcnNlcixyPXRoaXMuQ29tcGlsZXI7d2MuaXNSZW1hcmtQYXJzZXIoZSkmJmVnKGUpLHdjLmlzUmVtYXJrQ29tcGlsZXIocikmJnJnKHIpfWZ1bmN0aW9uIGVnKGUpe2xldCByPWUucHJvdG90eXBlLG49ci5ibG9ja01ldGhvZHMsdD1yLmludGVycnVwdFBhcmFncmFwaCxhPXIuaW50ZXJydXB0TGlzdCxpPXIuaW50ZXJydXB0QmxvY2txdW90ZTtyLmJsb2NrVG9rZW5pemVycy5tYXRoPXUsbi5zcGxpY2Uobi5pbmRleE9mKFwiZmVuY2VkQ29kZVwiKSsxLDAsXCJtYXRoXCIpLHQuc3BsaWNlKHQuaW5kZXhPZihcImZlbmNlZENvZGVcIikrMSwwLFtcIm1hdGhcIl0pLGEuc3BsaWNlKGEuaW5kZXhPZihcImZlbmNlZENvZGVcIikrMSwwLFtcIm1hdGhcIl0pLGkuc3BsaWNlKGkuaW5kZXhPZihcImZlbmNlZENvZGVcIikrMSwwLFtcIm1hdGhcIl0pO2Z1bmN0aW9uIHUobyxzLGwpe3ZhciBjPXMubGVuZ3RoLGY9MDtsZXQgRCxoLHAsZCxtLGcseCxGLEIsYix2O2Zvcig7ZjxjJiZzLmNoYXJDb2RlQXQoZik9PT1icjspZisrO2ZvcihtPWY7ZjxjJiZzLmNoYXJDb2RlQXQoZik9PT1CbjspZisrO2lmKGc9Zi1tLCEoZzxYbSkpe2Zvcig7ZjxjJiZzLmNoYXJDb2RlQXQoZik9PT1icjspZisrO2Zvcih4PWY7ZjxjOyl7aWYoRD1zLmNoYXJDb2RlQXQoZiksRD09PUJuKXJldHVybjtpZihEPT09QWMpYnJlYWs7ZisrfWlmKHMuY2hhckNvZGVBdChmKT09PUFjKXtpZihsKXJldHVybiEwO2ZvcihoPVtdLHghPT1mJiZoLnB1c2gocy5zbGljZSh4LGYpKSxmKysscD1zLmluZGV4T2YoQmMsZisxKSxwPXA9PT0tMT9jOnA7ZjxjOyl7Zm9yKEY9ITEsYj1mLHY9cCxkPXAsQj0wO2Q+YiYmcy5jaGFyQ29kZUF0KGQtMSk9PT1icjspZC0tO2Zvcig7ZD5iJiZzLmNoYXJDb2RlQXQoZC0xKT09PUJuOylCKyssZC0tO2ZvcihnPD1CJiZzLmluZGV4T2YoSm0sYik9PT1kJiYoRj0hMCx2PWQpO2I8PXYmJmItZjxtJiZzLmNoYXJDb2RlQXQoYik9PT1icjspYisrO2lmKEYpZm9yKDt2PmImJnMuY2hhckNvZGVBdCh2LTEpPT09YnI7KXYtLTtpZigoIUZ8fGIhPT12KSYmaC5wdXNoKHMuc2xpY2UoYix2KSksRilicmVhaztmPXArMSxwPXMuaW5kZXhPZihCYyxmKzEpLHA9cD09PS0xP2M6cH1yZXR1cm4gaD1oLmpvaW4oYFxuYCksbyhzLnNsaWNlKDAscCkpKHt0eXBlOlwibWF0aFwiLHZhbHVlOmgsZGF0YTp7aE5hbWU6XCJkaXZcIixoUHJvcGVydGllczp7Y2xhc3NOYW1lOlFtLmNvbmNhdCgpfSxoQ2hpbGRyZW46W3t0eXBlOlwidGV4dFwiLHZhbHVlOmh9XX19KX19fX1mdW5jdGlvbiByZyhlKXtsZXQgcj1lLnByb3RvdHlwZTtyLnZpc2l0b3JzLm1hdGg9bjtmdW5jdGlvbiBuKHQpe3JldHVybmAkJFxuYCt0LnZhbHVlK2BcbiQkYH19fSk7dmFyIFBjPUMoKG1FLFNjKT0+e3ZhciB0Zz1rYygpLG5nPVRjKCk7U2MuZXhwb3J0cz1pZztmdW5jdGlvbiBpZyhlKXt2YXIgcj1lfHx7fTtuZy5jYWxsKHRoaXMsciksdGcuY2FsbCh0aGlzLHIpfX0pO3ZhciBMYz1DKChnRSxfYyk9PntcInVzZSBzdHJpY3RcIjtfYy5leHBvcnRzPWNnO3ZhciB4cj05LGF0PTEwLFdlPTMyLHVnPTMzLGFnPTU4LEtlPTkxLG9nPTkyLHFuPTkzLHlyPTk0LG90PTk2LHN0PTQsc2c9MTAyNDtmdW5jdGlvbiBjZyhlKXt2YXIgcj10aGlzLlBhcnNlcixuPXRoaXMuQ29tcGlsZXI7bGcocikmJkRnKHIsZSksZmcobikmJnBnKG4pfWZ1bmN0aW9uIGxnKGUpe3JldHVybiEhKGUmJmUucHJvdG90eXBlJiZlLnByb3RvdHlwZS5ibG9ja1Rva2VuaXplcnMpfWZ1bmN0aW9uIGZnKGUpe3JldHVybiEhKGUmJmUucHJvdG90eXBlJiZlLnByb3RvdHlwZS52aXNpdG9ycyl9ZnVuY3Rpb24gRGcoZSxyKXtmb3IodmFyIG49cnx8e30sdD1lLnByb3RvdHlwZSxhPXQuYmxvY2tUb2tlbml6ZXJzLGk9dC5pbmxpbmVUb2tlbml6ZXJzLHU9dC5ibG9ja01ldGhvZHMsbz10LmlubGluZU1ldGhvZHMscz1hLmRlZmluaXRpb24sbD1pLnJlZmVyZW5jZSxjPVtdLGY9LTEsRD11Lmxlbmd0aCxoOysrZjxEOyloPXVbZl0sIShoPT09XCJuZXdsaW5lXCJ8fGg9PT1cImluZGVudGVkQ29kZVwifHxoPT09XCJwYXJhZ3JhcGhcInx8aD09PVwiZm9vdG5vdGVEZWZpbml0aW9uXCIpJiZjLnB1c2goW2hdKTtjLnB1c2goW1wiZm9vdG5vdGVEZWZpbml0aW9uXCJdKSxuLmlubGluZU5vdGVzJiYoVG4obyxcInJlZmVyZW5jZVwiLFwiaW5saW5lTm90ZVwiKSxpLmlubGluZU5vdGU9bSksVG4odSxcImRlZmluaXRpb25cIixcImZvb3Rub3RlRGVmaW5pdGlvblwiKSxUbihvLFwicmVmZXJlbmNlXCIsXCJmb290bm90ZUNhbGxcIiksYS5kZWZpbml0aW9uPXgsYS5mb290bm90ZURlZmluaXRpb249cCxpLmZvb3Rub3RlQ2FsbD1kLGkucmVmZXJlbmNlPWcsdC5pbnRlcnJ1cHRGb290bm90ZURlZmluaXRpb249YyxnLmxvY2F0b3I9bC5sb2NhdG9yLGQubG9jYXRvcj1GLG0ubG9jYXRvcj1CO2Z1bmN0aW9uIHAoYix2LHkpe2Zvcih2YXIgaz10aGlzLEU9ay5pbnRlcnJ1cHRGb290bm90ZURlZmluaXRpb24sdz1rLm9mZnNldCxBPXYubGVuZ3RoKzEscT0wLFQ9W10sTixfLFAsUyxMLHdlLGosSSxKLEssbWUsZ2UsTTtxPEEmJihTPXYuY2hhckNvZGVBdChxKSwhKFMhPT14ciYmUyE9PVdlKSk7KXErKztpZih2LmNoYXJDb2RlQXQocSsrKT09PUtlJiZ2LmNoYXJDb2RlQXQocSsrKT09PXlyKXtmb3IoXz1xO3E8QTspe2lmKFM9di5jaGFyQ29kZUF0KHEpLFMhPT1TfHxTPT09YXR8fFM9PT14cnx8Uz09PVdlKXJldHVybjtpZihTPT09cW4pe1A9cSxxKys7YnJlYWt9cSsrfWlmKCEoUD09PXZvaWQgMHx8Xz09PVB8fHYuY2hhckNvZGVBdChxKyspIT09YWcpKXtpZih5KXJldHVybiEwO2ZvcihOPXYuc2xpY2UoXyxQKSxMPWIubm93KCksSj0wLEs9MCxtZT1xLGdlPVtdO3E8QTspe2lmKFM9di5jaGFyQ29kZUF0KHEpLFMhPT1TfHxTPT09YXQpTT17c3RhcnQ6Sixjb250ZW50U3RhcnQ6bWV8fHEsY29udGVudEVuZDpxLGVuZDpxfSxnZS5wdXNoKE0pLFM9PT1hdCYmKEo9cSsxLEs9MCxtZT12b2lkIDAsTS5lbmQ9Sik7ZWxzZSBpZihLIT09dm9pZCAwKWlmKFM9PT1XZXx8Uz09PXhyKUsrPVM9PT1XZT8xOnN0LUslc3QsSz5zdCYmKEs9dm9pZCAwLG1lPXEpO2Vsc2V7aWYoSzxzdCYmTSYmKE0uY29udGVudFN0YXJ0PT09TS5jb250ZW50RW5kfHxkZyhFLGEsayxbYix2LnNsaWNlKHEsc2cpLCEwXSkpKWJyZWFrO0s9dm9pZCAwLG1lPXF9cSsrfWZvcihxPS0xLEE9Z2UubGVuZ3RoO0E+MCYmKE09Z2VbQS0xXSxNLmNvbnRlbnRTdGFydD09PU0uY29udGVudEVuZCk7KUEtLTtmb3Iod2U9Yih2LnNsaWNlKDAsTS5jb250ZW50RW5kKSk7KytxPEE7KU09Z2VbcV0sd1tMLmxpbmUrcV09KHdbTC5saW5lK3FdfHwwKSsoTS5jb250ZW50U3RhcnQtTS5zdGFydCksVC5wdXNoKHYuc2xpY2UoTS5jb250ZW50U3RhcnQsTS5lbmQpKTtyZXR1cm4gaj1rLmVudGVyQmxvY2soKSxJPWsudG9rZW5pemVCbG9jayhULmpvaW4oXCJcIiksTCksaigpLHdlKHt0eXBlOlwiZm9vdG5vdGVEZWZpbml0aW9uXCIsaWRlbnRpZmllcjpOLnRvTG93ZXJDYXNlKCksbGFiZWw6TixjaGlsZHJlbjpJfSl9fX1mdW5jdGlvbiBkKGIsdix5KXt2YXIgaz12Lmxlbmd0aCsxLEU9MCx3LEEscSxUO2lmKHYuY2hhckNvZGVBdChFKyspPT09S2UmJnYuY2hhckNvZGVBdChFKyspPT09eXIpe2ZvcihBPUU7RTxrOyl7aWYoVD12LmNoYXJDb2RlQXQoRSksVCE9PVR8fFQ9PT1hdHx8VD09PXhyfHxUPT09V2UpcmV0dXJuO2lmKFQ9PT1xbil7cT1FLEUrKzticmVha31FKyt9aWYoIShxPT09dm9pZCAwfHxBPT09cSkpcmV0dXJuIHk/ITA6KHc9di5zbGljZShBLHEpLGIodi5zbGljZSgwLEUpKSh7dHlwZTpcImZvb3Rub3RlUmVmZXJlbmNlXCIsaWRlbnRpZmllcjp3LnRvTG93ZXJDYXNlKCksbGFiZWw6d30pKX19ZnVuY3Rpb24gbShiLHYseSl7dmFyIGs9dGhpcyxFPXYubGVuZ3RoKzEsdz0wLEE9MCxxLFQsTixfLFAsUyxMO2lmKHYuY2hhckNvZGVBdCh3KyspPT09eXImJnYuY2hhckNvZGVBdCh3KyspPT09S2Upe2ZvcihOPXc7dzxFOyl7aWYoVD12LmNoYXJDb2RlQXQodyksVCE9PVQpcmV0dXJuO2lmKFM9PT12b2lkIDApaWYoVD09PW9nKXcrPTI7ZWxzZSBpZihUPT09S2UpQSsrLHcrKztlbHNlIGlmKFQ9PT1xbilpZihBPT09MCl7Xz13LHcrKzticmVha31lbHNlIEEtLSx3Kys7ZWxzZSBpZihUPT09b3Qpe2ZvcihQPXcsUz0xO3YuY2hhckNvZGVBdChQK1MpPT09b3Q7KVMrKzt3Kz1TfWVsc2UgdysrO2Vsc2UgaWYoVD09PW90KXtmb3IoUD13LEw9MTt2LmNoYXJDb2RlQXQoUCtMKT09PW90OylMKys7dys9TCxTPT09TCYmKFM9dm9pZCAwKSxMPXZvaWQgMH1lbHNlIHcrK31pZihfIT09dm9pZCAwKXJldHVybiB5PyEwOihxPWIubm93KCkscS5jb2x1bW4rPTIscS5vZmZzZXQrPTIsYih2LnNsaWNlKDAsdykpKHt0eXBlOlwiZm9vdG5vdGVcIixjaGlsZHJlbjprLnRva2VuaXplSW5saW5lKHYuc2xpY2UoTixfKSxxKX0pKX19ZnVuY3Rpb24gZyhiLHYseSl7dmFyIGs9MDtpZih2LmNoYXJDb2RlQXQoayk9PT11ZyYmaysrLHYuY2hhckNvZGVBdChrKT09PUtlJiZ2LmNoYXJDb2RlQXQoaysxKSE9PXlyKXJldHVybiBsLmNhbGwodGhpcyxiLHYseSl9ZnVuY3Rpb24geChiLHYseSl7Zm9yKHZhciBrPTAsRT12LmNoYXJDb2RlQXQoayk7RT09PVdlfHxFPT09eHI7KUU9di5jaGFyQ29kZUF0KCsrayk7aWYoRT09PUtlJiZ2LmNoYXJDb2RlQXQoaysxKSE9PXlyKXJldHVybiBzLmNhbGwodGhpcyxiLHYseSl9ZnVuY3Rpb24gRihiLHYpe3JldHVybiBiLmluZGV4T2YoXCJbXCIsdil9ZnVuY3Rpb24gQihiLHYpe3JldHVybiBiLmluZGV4T2YoXCJeW1wiLHYpfX1mdW5jdGlvbiBwZyhlKXt2YXIgcj1lLnByb3RvdHlwZS52aXNpdG9ycyxuPVwiICAgIFwiO3IuZm9vdG5vdGU9dCxyLmZvb3Rub3RlUmVmZXJlbmNlPWEsci5mb290bm90ZURlZmluaXRpb249aTtmdW5jdGlvbiB0KHUpe3JldHVyblwiXltcIit0aGlzLmFsbCh1KS5qb2luKFwiXCIpK1wiXVwifWZ1bmN0aW9uIGEodSl7cmV0dXJuXCJbXlwiKyh1LmxhYmVsfHx1LmlkZW50aWZpZXIpK1wiXVwifWZ1bmN0aW9uIGkodSl7Zm9yKHZhciBvPXRoaXMuYWxsKHUpLmpvaW4oYFxuXG5gKS5zcGxpdChgXG5gKSxzPTAsbD1vLmxlbmd0aCxjOysrczxsOyljPW9bc10sYyE9PVwiXCImJihvW3NdPW4rYyk7cmV0dXJuXCJbXlwiKyh1LmxhYmVsfHx1LmlkZW50aWZpZXIpK1wiXTogXCIrby5qb2luKGBcbmApfX1mdW5jdGlvbiBUbihlLHIsbil7ZS5zcGxpY2UoZS5pbmRleE9mKHIpLDAsbil9ZnVuY3Rpb24gZGcoZSxyLG4sdCl7Zm9yKHZhciBhPWUubGVuZ3RoLGk9LTE7KytpPGE7KWlmKHJbZVtpXVswXV0uYXBwbHkobix0KSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgTG49e307T24oTG4se2xhbmd1YWdlczooKT0+UWMsb3B0aW9uczooKT0+WmMscGFyc2VyczooKT0+UG4scHJpbnRlcnM6KCk9PndnfSk7dmFyIGFsPShlLHIsbix0KT0+e2lmKCEoZSYmcj09bnVsbCkpcmV0dXJuIHIucmVwbGFjZUFsbD9yLnJlcGxhY2VBbGwobix0KTpuLmdsb2JhbD9yLnJlcGxhY2Uobix0KTpyLnNwbGl0KG4pLmpvaW4odCl9LFI9YWw7dmFyIG9sPShlLHIsbik9PntpZighKGUmJnI9PW51bGwpKXJldHVybiBBcnJheS5pc0FycmF5KHIpfHx0eXBlb2Ygcj09XCJzdHJpbmdcIj9yW248MD9yLmxlbmd0aCtuOm5dOnIuYXQobil9LFU9b2w7dmFyIHFpPUllKGtyKCksMSk7ZnVuY3Rpb24gSmUoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO3JldHVybiBlLnJlcGxhY2UoL1t8XFxcXHt9KClbXFxdXiQrKj8uXS9nLFwiXFxcXCQmXCIpLnJlcGxhY2UoLy0vZyxcIlxcXFx4MmRcIil9ZnVuY3Rpb24gY2woZSxyKXtsZXQgbj1lLm1hdGNoKG5ldyBSZWdFeHAoYCgke0plKHIpfSkrYCxcImdcIikpO2lmKG49PT1udWxsKXJldHVybiAwO2xldCB0PW5ldyBNYXAsYT0wO2ZvcihsZXQgaSBvZiBuKXtsZXQgdT1pLmxlbmd0aC9yLmxlbmd0aDt0LnNldCh1LCEwKSx1PmEmJihhPXUpfWZvcihsZXQgaT0xO2k8YTtpKyspaWYoIXQuZ2V0KGkpKXJldHVybiBpO3JldHVybiBhKzF9dmFyIE5uPWNsO2Z1bmN0aW9uIGxsKGUscil7bGV0IG49ZS5tYXRjaChuZXcgUmVnRXhwKGAoJHtKZShyKX0pK2AsXCJnXCIpKTtyZXR1cm4gbj09PW51bGw/MDpuLnJlZHVjZSgodCxhKT0+TWF0aC5tYXgodCxhLmxlbmd0aC9yLmxlbmd0aCksMCl9dmFyIHdyPWxsO3ZhciBSbj0oKT0+L1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZzt2YXIgem49e2Vhc3RBc2lhbldpZHRoKGUpe3ZhciByPWUuY2hhckNvZGVBdCgwKSxuPWUubGVuZ3RoPT0yP2UuY2hhckNvZGVBdCgxKTowLHQ9cjtyZXR1cm4gNTUyOTY8PXImJnI8PTU2MzE5JiY1NjMyMDw9biYmbjw9NTczNDMmJihyJj0xMDIzLG4mPTEwMjMsdD1yPDwxMHxuLHQrPTY1NTM2KSx0PT0xMjI4OHx8NjUyODE8PXQmJnQ8PTY1Mzc2fHw2NTUwNDw9dCYmdDw9NjU1MTA/XCJGXCI6NDM1Mjw9dCYmdDw9NDQ0N3x8NDUxNTw9dCYmdDw9NDUxOXx8NDYwMjw9dCYmdDw9NDYwN3x8OTAwMTw9dCYmdDw9OTAwMnx8MTE5MDQ8PXQmJnQ8PTExOTI5fHwxMTkzMTw9dCYmdDw9MTIwMTl8fDEyMDMyPD10JiZ0PD0xMjI0NXx8MTIyNzI8PXQmJnQ8PTEyMjgzfHwxMjI4OTw9dCYmdDw9MTIzNTB8fDEyMzUzPD10JiZ0PD0xMjQzOHx8MTI0NDE8PXQmJnQ8PTEyNTQzfHwxMjU0OTw9dCYmdDw9MTI1ODl8fDEyNTkzPD10JiZ0PD0xMjY4Nnx8MTI2ODg8PXQmJnQ8PTEyNzMwfHwxMjczNjw9dCYmdDw9MTI3NzF8fDEyNzg0PD10JiZ0PD0xMjgzMHx8MTI4MzI8PXQmJnQ8PTEyODcxfHwxMjg4MDw9dCYmdDw9MTMwNTR8fDEzMDU2PD10JiZ0PD0xOTkwM3x8MTk5Njg8PXQmJnQ8PTQyMTI0fHw0MjEyODw9dCYmdDw9NDIxODJ8fDQzMzYwPD10JiZ0PD00MzM4OHx8NDQwMzI8PXQmJnQ8PTU1MjAzfHw1NTIxNjw9dCYmdDw9NTUyMzh8fDU1MjQzPD10JiZ0PD01NTI5MXx8NjM3NDQ8PXQmJnQ8PTY0MjU1fHw2NTA0MDw9dCYmdDw9NjUwNDl8fDY1MDcyPD10JiZ0PD02NTEwNnx8NjUxMDg8PXQmJnQ8PTY1MTI2fHw2NTEyODw9dCYmdDw9NjUxMzF8fDExMDU5Mjw9dCYmdDw9MTEwNTkzfHwxMjc0ODg8PXQmJnQ8PTEyNzQ5MHx8MTI3NTA0PD10JiZ0PD0xMjc1NDZ8fDEyNzU1Mjw9dCYmdDw9MTI3NTYwfHwxMjc1Njg8PXQmJnQ8PTEyNzU2OXx8MTMxMDcyPD10JiZ0PD0xOTQzNjd8fDE3Nzk4NDw9dCYmdDw9MTk2NjA1fHwxOTY2MDg8PXQmJnQ8PTI2MjE0MT9cIldcIjpcIk5cIn19O3ZhciBmbD0vW15cXHgyMC1cXHg3Rl0vO2Z1bmN0aW9uIERsKGUpe2lmKCFlKXJldHVybiAwO2lmKCFmbC50ZXN0KGUpKXJldHVybiBlLmxlbmd0aDtlPWUucmVwbGFjZShSbigpLFwiICBcIik7bGV0IHI9MDtmb3IobGV0IG4gb2YgZSl7bGV0IHQ9bi5jb2RlUG9pbnRBdCgwKTtpZih0PD0zMXx8dD49MTI3JiZ0PD0xNTl8fHQ+PTc2OCYmdDw9ODc5KWNvbnRpbnVlO2xldCBhPXpuLmVhc3RBc2lhbldpZHRoKG4pO3IrPWE9PT1cIkZcInx8YT09PVwiV1wiPzI6MX1yZXR1cm4gcn12YXIgWGU9RGw7dmFyIEFyPVwiJ1wiLE1uPSdcIic7ZnVuY3Rpb24gcGwoZSxyKXtsZXQgbj1yPT09ITB8fHI9PT1Bcj9BcjpNbix0PW49PT1Bcj9NbjpBcixhPTAsaT0wO2ZvcihsZXQgdSBvZiBlKXU9PT1uP2ErKzp1PT09dCYmaSsrO3JldHVybiBhPmk/dDpufXZhciBVbj1wbDt2YXIgdWU9XCJzdHJpbmdcIixYPVwiYXJyYXlcIix2ZT1cImN1cnNvclwiLFE9XCJpbmRlbnRcIixaPVwiYWxpZ25cIixhZT1cInRyaW1cIixHPVwiZ3JvdXBcIixIPVwiZmlsbFwiLFc9XCJpZi1icmVha1wiLG9lPVwiaW5kZW50LWlmLWJyZWFrXCIsc2U9XCJsaW5lLXN1ZmZpeFwiLGNlPVwibGluZS1zdWZmaXgtYm91bmRhcnlcIiwkPVwibGluZVwiLGxlPVwibGFiZWxcIixlZT1cImJyZWFrLXBhcmVudFwiLEJyPW5ldyBTZXQoW3ZlLFEsWixhZSxHLEgsVyxvZSxzZSxjZSwkLGxlLGVlXSk7ZnVuY3Rpb24gZGwoZSl7aWYodHlwZW9mIGU9PVwic3RyaW5nXCIpcmV0dXJuIHVlO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIFg7aWYoIWUpcmV0dXJuO2xldHt0eXBlOnJ9PWU7aWYoQnIuaGFzKHIpKXJldHVybiByfXZhciBmZT1kbDt2YXIgaGw9ZT0+bmV3IEludGwuTGlzdEZvcm1hdChcImVuLVVTXCIse3R5cGU6XCJkaXNqdW5jdGlvblwifSkuZm9ybWF0KGUpO2Z1bmN0aW9uIG1sKGUpe2xldCByPWU9PT1udWxsP1wibnVsbFwiOnR5cGVvZiBlO2lmKHIhPT1cInN0cmluZ1wiJiZyIT09XCJvYmplY3RcIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7cn0nLCBcbkV4cGVjdGVkIGl0IHRvIGJlICdzdHJpbmcnIG9yICdvYmplY3QnLmA7aWYoZmUoZSkpdGhyb3cgbmV3IEVycm9yKFwiZG9jIGlzIHZhbGlkLlwiKTtsZXQgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk7aWYobiE9PVwiW29iamVjdCBPYmplY3RdXCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke259Jy5gO2xldCB0PWhsKFsuLi5Ccl0ubWFwKGE9PmAnJHthfSdgKSk7cmV0dXJuYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7ZS50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke3R9LmB9dmFyIGZ0PWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkludmFsaWREb2NFcnJvclwiO2NvbnN0cnVjdG9yKHIpe3N1cGVyKG1sKHIpKSx0aGlzLmRvYz1yfX0sQWU9ZnQ7dmFyIFluPXt9O2Z1bmN0aW9uIGdsKGUscixuLHQpe2xldCBhPVtlXTtmb3IoO2EubGVuZ3RoPjA7KXtsZXQgaT1hLnBvcCgpO2lmKGk9PT1Zbil7bihhLnBvcCgpKTtjb250aW51ZX1uJiZhLnB1c2goaSxZbik7bGV0IHU9ZmUoaSk7aWYoIXUpdGhyb3cgbmV3IEFlKGkpO2lmKChyPT1udWxsP3ZvaWQgMDpyKGkpKSE9PSExKXN3aXRjaCh1KXtjYXNlIFg6Y2FzZSBIOntsZXQgbz11PT09WD9pOmkucGFydHM7Zm9yKGxldCBzPW8ubGVuZ3RoLGw9cy0xO2w+PTA7LS1sKWEucHVzaChvW2xdKTticmVha31jYXNlIFc6YS5wdXNoKGkuZmxhdENvbnRlbnRzLGkuYnJlYWtDb250ZW50cyk7YnJlYWs7Y2FzZSBHOmlmKHQmJmkuZXhwYW5kZWRTdGF0ZXMpZm9yKGxldCBvPWkuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoLHM9by0xO3M+PTA7LS1zKWEucHVzaChpLmV4cGFuZGVkU3RhdGVzW3NdKTtlbHNlIGEucHVzaChpLmNvbnRlbnRzKTticmVhaztjYXNlIFo6Y2FzZSBROmNhc2Ugb2U6Y2FzZSBsZTpjYXNlIHNlOmEucHVzaChpLmNvbnRlbnRzKTticmVhaztjYXNlIHVlOmNhc2UgdmU6Y2FzZSBhZTpjYXNlIGNlOmNhc2UgJDpjYXNlIGVlOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEFlKGkpfX19dmFyIFZuPWdsO3ZhciBqbj0oKT0+e30sQmU9am4scXI9am47ZnVuY3Rpb24gUWUoZSl7cmV0dXJuIEJlKGUpLHt0eXBlOlEsY29udGVudHM6ZX19ZnVuY3Rpb24gRmUoZSxyKXtyZXR1cm4gQmUocikse3R5cGU6Wixjb250ZW50czpyLG46ZX19ZnVuY3Rpb24gWmUoZSxyPXt9KXtyZXR1cm4gQmUoZSkscXIoci5leHBhbmRlZFN0YXRlcywhMCkse3R5cGU6RyxpZDpyLmlkLGNvbnRlbnRzOmUsYnJlYWs6ISFyLnNob3VsZEJyZWFrLGV4cGFuZGVkU3RhdGVzOnIuZXhwYW5kZWRTdGF0ZXN9fWZ1bmN0aW9uIHFlKGUpe3JldHVybiBGZSh7dHlwZTpcInJvb3RcIn0sZSl9ZnVuY3Rpb24gVHIoZSl7cmV0dXJuIHFyKGUpLHt0eXBlOkgscGFydHM6ZX19ZnVuY3Rpb24gJG4oZSxyPVwiXCIsbj17fSl7cmV0dXJuIEJlKGUpLHIhPT1cIlwiJiZCZShyKSx7dHlwZTpXLGJyZWFrQ29udGVudHM6ZSxmbGF0Q29udGVudHM6cixncm91cElkOm4uZ3JvdXBJZH19dmFyIGVyPXt0eXBlOmVlfTt2YXIgTmU9e3R5cGU6JCxoYXJkOiEwfSx2bD17dHlwZTokLGhhcmQ6ITAsbGl0ZXJhbDohMH0sU3I9e3R5cGU6JH0scnI9e3R5cGU6JCxzb2Z0OiEwfSxPPVtOZSxlcl0sdHI9W3ZsLGVyXTtmdW5jdGlvbiBucihlLHIpe0JlKGUpLHFyKHIpO2xldCBuPVtdO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXQhPT0wJiZuLnB1c2goZSksbi5wdXNoKHJbdF0pO3JldHVybiBufXZhciBXbj1lPT57aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZTtpZihlLnR5cGUhPT1IKXRocm93IG5ldyBFcnJvcihgRXhwZWN0IGRvYyB0byBiZSAnYXJyYXknIG9yICcke0h9Jy5gKTtyZXR1cm4gZS5wYXJ0c307ZnVuY3Rpb24gS24oZSxyKXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gcihlKTtsZXQgbj1uZXcgTWFwO3JldHVybiB0KGUpO2Z1bmN0aW9uIHQoaSl7aWYobi5oYXMoaSkpcmV0dXJuIG4uZ2V0KGkpO2xldCB1PWEoaSk7cmV0dXJuIG4uc2V0KGksdSksdX1mdW5jdGlvbiBhKGkpe3N3aXRjaChmZShpKSl7Y2FzZSBYOnJldHVybiByKGkubWFwKHQpKTtjYXNlIEg6cmV0dXJuIHIoey4uLmkscGFydHM6aS5wYXJ0cy5tYXAodCl9KTtjYXNlIFc6cmV0dXJuIHIoey4uLmksYnJlYWtDb250ZW50czp0KGkuYnJlYWtDb250ZW50cyksZmxhdENvbnRlbnRzOnQoaS5mbGF0Q29udGVudHMpfSk7Y2FzZSBHOntsZXR7ZXhwYW5kZWRTdGF0ZXM6dSxjb250ZW50czpvfT1pO3JldHVybiB1Pyh1PXUubWFwKHQpLG89dVswXSk6bz10KG8pLHIoey4uLmksY29udGVudHM6byxleHBhbmRlZFN0YXRlczp1fSl9Y2FzZSBaOmNhc2UgUTpjYXNlIG9lOmNhc2UgbGU6Y2FzZSBzZTpyZXR1cm4gcih7Li4uaSxjb250ZW50czp0KGkuY29udGVudHMpfSk7Y2FzZSB1ZTpjYXNlIHZlOmNhc2UgYWU6Y2FzZSBjZTpjYXNlICQ6Y2FzZSBlZTpyZXR1cm4gcihpKTtkZWZhdWx0OnRocm93IG5ldyBBZShpKX19fWZ1bmN0aW9uIEduKGUpe2lmKGUubGVuZ3RoPjApe2xldCByPVUoITEsZSwtMSk7IXIuZXhwYW5kZWRTdGF0ZXMmJiFyLmJyZWFrJiYoci5icmVhaz1cInByb3BhZ2F0ZWRcIil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gSm4oZSl7bGV0IHI9bmV3IFNldCxuPVtdO2Z1bmN0aW9uIHQoaSl7aWYoaS50eXBlPT09ZWUmJkduKG4pLGkudHlwZT09PUcpe2lmKG4ucHVzaChpKSxyLmhhcyhpKSlyZXR1cm4hMTtyLmFkZChpKX19ZnVuY3Rpb24gYShpKXtpLnR5cGU9PT1HJiZuLnBvcCgpLmJyZWFrJiZHbihuKX1WbihlLHQsYSwhMCl9ZnVuY3Rpb24gSG4oZSl7bGV0IHI9W10sbj1lLmZpbHRlcihCb29sZWFuKTtmb3IoO24ubGVuZ3RoPjA7KXtsZXQgdD1uLnNoaWZ0KCk7aWYodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7bi51bnNoaWZ0KC4uLnQpO2NvbnRpbnVlfWlmKHIubGVuZ3RoPjAmJnR5cGVvZiBVKCExLHIsLTEpPT1cInN0cmluZ1wiJiZ0eXBlb2YgdD09XCJzdHJpbmdcIil7cltyLmxlbmd0aC0xXSs9dDtjb250aW51ZX1yLnB1c2godCl9fXJldHVybiByfWZ1bmN0aW9uIFhuKGUpe3JldHVybiBLbihlLHI9PkFycmF5LmlzQXJyYXkocik/SG4ocik6ci5wYXJ0cz97Li4ucixwYXJ0czpIbihyLnBhcnRzKX06cil9ZnVuY3Rpb24gRWUoZSxyPXRyKXtyZXR1cm4gS24oZSxuPT50eXBlb2Ygbj09XCJzdHJpbmdcIj9ucihyLG4uc3BsaXQoYFxuYCkpOm4pfWZ1bmN0aW9uIFFuKGUpe3N3aXRjaChlKXtjYXNlXCJjclwiOnJldHVyblwiXFxyXCI7Y2FzZVwiY3JsZlwiOnJldHVybmBcXHJcbmA7ZGVmYXVsdDpyZXR1cm5gXG5gfX12YXIgVj1TeW1ib2woXCJNT0RFX0JSRUFLXCIpLHJlPVN5bWJvbChcIk1PREVfRkxBVFwiKSxpcj1TeW1ib2woXCJjdXJzb3JcIik7ZnVuY3Rpb24gWm4oKXtyZXR1cm57dmFsdWU6XCJcIixsZW5ndGg6MCxxdWV1ZTpbXX19ZnVuY3Rpb24gRmwoZSxyKXtyZXR1cm4gRHQoZSx7dHlwZTpcImluZGVudFwifSxyKX1mdW5jdGlvbiBFbChlLHIsbil7cmV0dXJuIHI9PT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk/ZS5yb290fHxabigpOnI8MD9EdChlLHt0eXBlOlwiZGVkZW50XCJ9LG4pOnI/ci50eXBlPT09XCJyb290XCI/ey4uLmUscm9vdDplfTpEdChlLHt0eXBlOnR5cGVvZiByPT1cInN0cmluZ1wiP1wic3RyaW5nQWxpZ25cIjpcIm51bWJlckFsaWduXCIsbjpyfSxuKTplfWZ1bmN0aW9uIER0KGUscixuKXtsZXQgdD1yLnR5cGU9PT1cImRlZGVudFwiP2UucXVldWUuc2xpY2UoMCwtMSk6Wy4uLmUucXVldWUscl0sYT1cIlwiLGk9MCx1PTAsbz0wO2ZvcihsZXQgcCBvZiB0KXN3aXRjaChwLnR5cGUpe2Nhc2VcImluZGVudFwiOmMoKSxuLnVzZVRhYnM/cygxKTpsKG4udGFiV2lkdGgpO2JyZWFrO2Nhc2VcInN0cmluZ0FsaWduXCI6YygpLGErPXAubixpKz1wLm4ubGVuZ3RoO2JyZWFrO2Nhc2VcIm51bWJlckFsaWduXCI6dSs9MSxvKz1wLm47YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAnJHtwLnR5cGV9J2ApfXJldHVybiBEKCksey4uLmUsdmFsdWU6YSxsZW5ndGg6aSxxdWV1ZTp0fTtmdW5jdGlvbiBzKHApe2ErPVwiXHRcIi5yZXBlYXQocCksaSs9bi50YWJXaWR0aCpwfWZ1bmN0aW9uIGwocCl7YSs9XCIgXCIucmVwZWF0KHApLGkrPXB9ZnVuY3Rpb24gYygpe24udXNlVGFicz9mKCk6RCgpfWZ1bmN0aW9uIGYoKXt1PjAmJnModSksaCgpfWZ1bmN0aW9uIEQoKXtvPjAmJmwobyksaCgpfWZ1bmN0aW9uIGgoKXt1PTAsbz0wfX1mdW5jdGlvbiBwdChlKXtsZXQgcj0wLG49MCx0PWUubGVuZ3RoO2U6Zm9yKDt0LS07KXtsZXQgYT1lW3RdO2lmKGE9PT1pcil7bisrO2NvbnRpbnVlfWZvcihsZXQgaT1hLmxlbmd0aC0xO2k+PTA7aS0tKXtsZXQgdT1hW2ldO2lmKHU9PT1cIiBcInx8dT09PVwiXHRcIilyKys7ZWxzZXtlW3RdPWEuc2xpY2UoMCxpKzEpO2JyZWFrIGV9fX1pZihyPjB8fG4+MClmb3IoZS5sZW5ndGg9dCsxO24tLSA+MDspZS5wdXNoKGlyKTtyZXR1cm4gcn1mdW5jdGlvbiBQcihlLHIsbix0LGEsaSl7aWYobj09PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSlyZXR1cm4hMDtsZXQgdT1yLmxlbmd0aCxvPVtlXSxzPVtdO2Zvcig7bj49MDspe2lmKG8ubGVuZ3RoPT09MCl7aWYodT09PTApcmV0dXJuITA7by5wdXNoKHJbLS11XSk7Y29udGludWV9bGV0e21vZGU6bCxkb2M6Y309by5wb3AoKTtzd2l0Y2goZmUoYykpe2Nhc2UgdWU6cy5wdXNoKGMpLG4tPVhlKGMpO2JyZWFrO2Nhc2UgWDpjYXNlIEg6e2xldCBmPVduKGMpO2ZvcihsZXQgRD1mLmxlbmd0aC0xO0Q+PTA7RC0tKW8ucHVzaCh7bW9kZTpsLGRvYzpmW0RdfSk7YnJlYWt9Y2FzZSBROmNhc2UgWjpjYXNlIG9lOmNhc2UgbGU6by5wdXNoKHttb2RlOmwsZG9jOmMuY29udGVudHN9KTticmVhaztjYXNlIGFlOm4rPXB0KHMpO2JyZWFrO2Nhc2UgRzp7aWYoaSYmYy5icmVhaylyZXR1cm4hMTtsZXQgZj1jLmJyZWFrP1Y6bCxEPWMuZXhwYW5kZWRTdGF0ZXMmJmY9PT1WP1UoITEsYy5leHBhbmRlZFN0YXRlcywtMSk6Yy5jb250ZW50cztvLnB1c2goe21vZGU6Zixkb2M6RH0pO2JyZWFrfWNhc2UgVzp7bGV0IEQ9KGMuZ3JvdXBJZD9hW2MuZ3JvdXBJZF18fHJlOmwpPT09Vj9jLmJyZWFrQ29udGVudHM6Yy5mbGF0Q29udGVudHM7RCYmby5wdXNoKHttb2RlOmwsZG9jOkR9KTticmVha31jYXNlICQ6aWYobD09PVZ8fGMuaGFyZClyZXR1cm4hMDtjLnNvZnR8fChzLnB1c2goXCIgXCIpLG4tLSk7YnJlYWs7Y2FzZSBzZTp0PSEwO2JyZWFrO2Nhc2UgY2U6aWYodClyZXR1cm4hMTticmVha319cmV0dXJuITF9ZnVuY3Rpb24gZWkoZSxyKXtsZXQgbj17fSx0PXIucHJpbnRXaWR0aCxhPVFuKHIuZW5kT2ZMaW5lKSxpPTAsdT1be2luZDpabigpLG1vZGU6Vixkb2M6ZX1dLG89W10scz0hMSxsPVtdLGM9MDtmb3IoSm4oZSk7dS5sZW5ndGg+MDspe2xldHtpbmQ6RCxtb2RlOmgsZG9jOnB9PXUucG9wKCk7c3dpdGNoKGZlKHApKXtjYXNlIHVlOntsZXQgZD1hIT09YFxuYD9SKCExLHAsYFxuYCxhKTpwO28ucHVzaChkKSx1Lmxlbmd0aD4wJiYoaSs9WGUoZCkpO2JyZWFrfWNhc2UgWDpmb3IobGV0IGQ9cC5sZW5ndGgtMTtkPj0wO2QtLSl1LnB1c2goe2luZDpELG1vZGU6aCxkb2M6cFtkXX0pO2JyZWFrO2Nhc2UgdmU6aWYoYz49Mil0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBhcmUgdG9vIG1hbnkgJ2N1cnNvcicgaW4gZG9jLlwiKTtvLnB1c2goaXIpLGMrKzticmVhaztjYXNlIFE6dS5wdXNoKHtpbmQ6RmwoRCxyKSxtb2RlOmgsZG9jOnAuY29udGVudHN9KTticmVhaztjYXNlIFo6dS5wdXNoKHtpbmQ6RWwoRCxwLm4sciksbW9kZTpoLGRvYzpwLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBhZTppLT1wdChvKTticmVhaztjYXNlIEc6c3dpdGNoKGgpe2Nhc2UgcmU6aWYoIXMpe3UucHVzaCh7aW5kOkQsbW9kZTpwLmJyZWFrP1Y6cmUsZG9jOnAuY29udGVudHN9KTticmVha31jYXNlIFY6e3M9ITE7bGV0IGQ9e2luZDpELG1vZGU6cmUsZG9jOnAuY29udGVudHN9LG09dC1pLGc9bC5sZW5ndGg+MDtpZighcC5icmVhayYmUHIoZCx1LG0sZyxuKSl1LnB1c2goZCk7ZWxzZSBpZihwLmV4cGFuZGVkU3RhdGVzKXtsZXQgeD1VKCExLHAuZXhwYW5kZWRTdGF0ZXMsLTEpO2lmKHAuYnJlYWspe3UucHVzaCh7aW5kOkQsbW9kZTpWLGRvYzp4fSk7YnJlYWt9ZWxzZSBmb3IobGV0IEY9MTtGPHAuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKzE7RisrKWlmKEY+PXAuZXhwYW5kZWRTdGF0ZXMubGVuZ3RoKXt1LnB1c2goe2luZDpELG1vZGU6Vixkb2M6eH0pO2JyZWFrfWVsc2V7bGV0IEI9cC5leHBhbmRlZFN0YXRlc1tGXSxiPXtpbmQ6RCxtb2RlOnJlLGRvYzpCfTtpZihQcihiLHUsbSxnLG4pKXt1LnB1c2goYik7YnJlYWt9fX1lbHNlIHUucHVzaCh7aW5kOkQsbW9kZTpWLGRvYzpwLmNvbnRlbnRzfSk7YnJlYWt9fXAuaWQmJihuW3AuaWRdPVUoITEsdSwtMSkubW9kZSk7YnJlYWs7Y2FzZSBIOntsZXQgZD10LWkse3BhcnRzOm19PXA7aWYobS5sZW5ndGg9PT0wKWJyZWFrO2xldFtnLHhdPW0sRj17aW5kOkQsbW9kZTpyZSxkb2M6Z30sQj17aW5kOkQsbW9kZTpWLGRvYzpnfSxiPVByKEYsW10sZCxsLmxlbmd0aD4wLG4sITApO2lmKG0ubGVuZ3RoPT09MSl7Yj91LnB1c2goRik6dS5wdXNoKEIpO2JyZWFrfWxldCB2PXtpbmQ6RCxtb2RlOnJlLGRvYzp4fSx5PXtpbmQ6RCxtb2RlOlYsZG9jOnh9O2lmKG0ubGVuZ3RoPT09Mil7Yj91LnB1c2godixGKTp1LnB1c2goeSxCKTticmVha31tLnNwbGljZSgwLDIpO2xldCBrPXtpbmQ6RCxtb2RlOmgsZG9jOlRyKG0pfSxFPW1bMF07UHIoe2luZDpELG1vZGU6cmUsZG9jOltnLHgsRV19LFtdLGQsbC5sZW5ndGg+MCxuLCEwKT91LnB1c2goayx2LEYpOmI/dS5wdXNoKGsseSxGKTp1LnB1c2goayx5LEIpO2JyZWFrfWNhc2UgVzpjYXNlIG9lOntsZXQgZD1wLmdyb3VwSWQ/bltwLmdyb3VwSWRdOmg7aWYoZD09PVYpe2xldCBtPXAudHlwZT09PVc/cC5icmVha0NvbnRlbnRzOnAubmVnYXRlP3AuY29udGVudHM6UWUocC5jb250ZW50cyk7bSYmdS5wdXNoKHtpbmQ6RCxtb2RlOmgsZG9jOm19KX1pZihkPT09cmUpe2xldCBtPXAudHlwZT09PVc/cC5mbGF0Q29udGVudHM6cC5uZWdhdGU/UWUocC5jb250ZW50cyk6cC5jb250ZW50czttJiZ1LnB1c2goe2luZDpELG1vZGU6aCxkb2M6bX0pfWJyZWFrfWNhc2Ugc2U6bC5wdXNoKHtpbmQ6RCxtb2RlOmgsZG9jOnAuY29udGVudHN9KTticmVhaztjYXNlIGNlOmwubGVuZ3RoPjAmJnUucHVzaCh7aW5kOkQsbW9kZTpoLGRvYzpOZX0pO2JyZWFrO2Nhc2UgJDpzd2l0Y2goaCl7Y2FzZSByZTppZihwLmhhcmQpcz0hMDtlbHNle3Auc29mdHx8KG8ucHVzaChcIiBcIiksaSs9MSk7YnJlYWt9Y2FzZSBWOmlmKGwubGVuZ3RoPjApe3UucHVzaCh7aW5kOkQsbW9kZTpoLGRvYzpwfSwuLi5sLnJldmVyc2UoKSksbC5sZW5ndGg9MDticmVha31wLmxpdGVyYWw/RC5yb290PyhvLnB1c2goYSxELnJvb3QudmFsdWUpLGk9RC5yb290Lmxlbmd0aCk6KG8ucHVzaChhKSxpPTApOihpLT1wdChvKSxvLnB1c2goYStELnZhbHVlKSxpPUQubGVuZ3RoKTticmVha31icmVhaztjYXNlIGxlOnUucHVzaCh7aW5kOkQsbW9kZTpoLGRvYzpwLmNvbnRlbnRzfSk7YnJlYWs7Y2FzZSBlZTpicmVhaztkZWZhdWx0OnRocm93IG5ldyBBZShwKX11Lmxlbmd0aD09PTAmJmwubGVuZ3RoPjAmJih1LnB1c2goLi4ubC5yZXZlcnNlKCkpLGwubGVuZ3RoPTApfWxldCBmPW8uaW5kZXhPZihpcik7aWYoZiE9PS0xKXtsZXQgRD1vLmluZGV4T2YoaXIsZisxKSxoPW8uc2xpY2UoMCxmKS5qb2luKFwiXCIpLHA9by5zbGljZShmKzEsRCkuam9pbihcIlwiKSxkPW8uc2xpY2UoRCsxKS5qb2luKFwiXCIpO3JldHVybntmb3JtYXR0ZWQ6aCtwK2QsY3Vyc29yTm9kZVN0YXJ0OmgubGVuZ3RoLGN1cnNvck5vZGVUZXh0OnB9fXJldHVybntmb3JtYXR0ZWQ6by5qb2luKFwiXCIpfX12YXIgZHQ9Y2xhc3MgZXh0ZW5kcyBFcnJvcntuYW1lPVwiVW5leHBlY3RlZE5vZGVFcnJvclwiO2NvbnN0cnVjdG9yKHIsbix0PVwidHlwZVwiKXtzdXBlcihgVW5leHBlY3RlZCAke259IG5vZGUgJHt0fTogJHtKU09OLnN0cmluZ2lmeShyW3RdKX0uYCksdGhpcy5ub2RlPXJ9fSxyaT1kdDthc3luYyBmdW5jdGlvbiBDbChlLHIpe2lmKGUubGFuZz09PVwieWFtbFwiKXtsZXQgbj1lLnZhbHVlLnRyaW0oKSx0PW4/YXdhaXQgcihuLHtwYXJzZXI6XCJ5YW1sXCJ9KTpcIlwiO3JldHVybiBxZShbZS5zdGFydERlbGltaXRlcixPLHQsdD9POlwiXCIsZS5lbmREZWxpbWl0ZXJdKX19dmFyIHRpPUNsO3ZhciBibD1lPT5lLnNwbGl0KC9bL1xcXFxdLykucG9wKCk7ZnVuY3Rpb24gbmkoZSxyKXtpZighcilyZXR1cm47bGV0IG49YmwocikudG9Mb3dlckNhc2UoKTtyZXR1cm4gZS5maW5kKHQ9Pnt2YXIgYSxpO3JldHVybigoYT10LmV4dGVuc2lvbnMpPT1udWxsP3ZvaWQgMDphLnNvbWUodT0+bi5lbmRzV2l0aCh1KSkpfHwoKGk9dC5maWxlbmFtZXMpPT1udWxsP3ZvaWQgMDppLnNvbWUodT0+dS50b0xvd2VyQ2FzZSgpPT09bikpfSl9ZnVuY3Rpb24geGwoZSxyKXtpZihyKXJldHVybiBlLmZpbmQoKHtuYW1lOm59KT0+bi50b0xvd2VyQ2FzZSgpPT09cik/P2UuZmluZCgoe2FsaWFzZXM6bn0pPT5uPT1udWxsP3ZvaWQgMDpuLmluY2x1ZGVzKHIpKT8/ZS5maW5kKCh7ZXh0ZW5zaW9uczpufSk9Pm49PW51bGw/dm9pZCAwOm4uaW5jbHVkZXMoYC4ke3J9YCkpfWZ1bmN0aW9uIHlsKGUscil7bGV0IG49ZS5wbHVnaW5zLmZsYXRNYXAoYT0+YS5sYW5ndWFnZXM/P1tdKSx0PXhsKG4sci5sYW5ndWFnZSk/P25pKG4sci5waHlzaWNhbEZpbGUpPz9uaShuLHIuZmlsZSk/PyhyLnBoeXNpY2FsRmlsZSx2b2lkIDApO3JldHVybiB0PT1udWxsP3ZvaWQgMDp0LnBhcnNlcnNbMF19dmFyIGlpPXlsO3ZhciBrbD1uZXcgUHJveHkoKCk9Pnt9LHtnZXQ6KCk9PmtsfSk7ZnVuY3Rpb24gVGUoZSl7cmV0dXJuIGUucG9zaXRpb24uc3RhcnQub2Zmc2V0fWZ1bmN0aW9uIFNlKGUpe3JldHVybiBlLnBvc2l0aW9uLmVuZC5vZmZzZXR9dmFyIHVpPVwiKD86W1xcXFx1MDJlYS1cXFxcdTAyZWJcXFxcdTExMDAtXFxcXHUxMWZmXFxcXHUyZTgwLVxcXFx1MmU5OVxcXFx1MmU5Yi1cXFxcdTJlZjNcXFxcdTJmMDAtXFxcXHUyZmQ1XFxcXHUyZmYwLVxcXFx1MzAzZlxcXFx1MzA0MS1cXFxcdTMwOTZcXFxcdTMwOTktXFxcXHUzMDlmXFxcXHUzMGExLVxcXFx1MzBmYVxcXFx1MzBmYy1cXFxcdTMwZmZcXFxcdTMxMDUtXFxcXHUzMTJmXFxcXHUzMTMxLVxcXFx1MzE4ZVxcXFx1MzE5MC1cXFxcdTMxOTFcXFxcdTMxOTYtXFxcXHUzMWUzXFxcXHUzMWYwLVxcXFx1MzIxZVxcXFx1MzIyYS1cXFxcdTMyNDdcXFxcdTMyNjAtXFxcXHUzMjdlXFxcXHUzMjhhLVxcXFx1MzJiMFxcXFx1MzJjMC1cXFxcdTMyY2JcXFxcdTMyZDAtXFxcXHUzMzcwXFxcXHUzMzdiLVxcXFx1MzM3ZlxcXFx1MzNlMC1cXFxcdTMzZmVcXFxcdTM0MDAtXFxcXHU0ZGJmXFxcXHU0ZTAwLVxcXFx1OWZmZlxcXFx1YTcwMC1cXFxcdWE3MDdcXFxcdWE5NjAtXFxcXHVhOTdjXFxcXHVhYzAwLVxcXFx1ZDdhM1xcXFx1ZDdiMC1cXFxcdWQ3YzZcXFxcdWQ3Y2ItXFxcXHVkN2ZiXFxcXHVmOTAwLVxcXFx1ZmE2ZFxcXFx1ZmE3MC1cXFxcdWZhZDlcXFxcdWZlMTAtXFxcXHVmZTFmXFxcXHVmZTMwLVxcXFx1ZmU2ZlxcXFx1ZmYwMC1cXFxcdWZmZWZdfFtcXFxcdWQ4NDAtXFxcXHVkODY4XFxcXHVkODZhLVxcXFx1ZDg2Y1xcXFx1ZDg2Zi1cXFxcdWQ4NzJcXFxcdWQ4NzQtXFxcXHVkODc5XFxcXHVkODgwLVxcXFx1ZDg4M1xcXFx1ZDg4NS1cXFxcdWQ4ODddW1xcXFx1ZGMwMC1cXFxcdWRmZmZdfFxcXFx1ZDgxYltcXFxcdWRmZTNdfFxcXFx1ZDgyYltcXFxcdWRmZjAtXFxcXHVkZmYzXFxcXHVkZmY1LVxcXFx1ZGZmYlxcXFx1ZGZmZC1cXFxcdWRmZmVdfFxcXFx1ZDgyY1tcXFxcdWRjMDAtXFxcXHVkZDIyXFxcXHVkZDMyXFxcXHVkZDUwLVxcXFx1ZGQ1MlxcXFx1ZGQ1NVxcXFx1ZGQ2NC1cXFxcdWRkNjddfFxcXFx1ZDgzY1tcXFxcdWRlMDBcXFxcdWRlNTAtXFxcXHVkZTUxXXxcXFxcdWQ4NjlbXFxcXHVkYzAwLVxcXFx1ZGVkZlxcXFx1ZGYwMC1cXFxcdWRmZmZdfFxcXFx1ZDg2ZFtcXFxcdWRjMDAtXFxcXHVkZjM5XFxcXHVkZjQwLVxcXFx1ZGZmZl18XFxcXHVkODZlW1xcXFx1ZGMwMC1cXFxcdWRjMWRcXFxcdWRjMjAtXFxcXHVkZmZmXXxcXFxcdWQ4NzNbXFxcXHVkYzAwLVxcXFx1ZGVhMVxcXFx1ZGViMC1cXFxcdWRmZmZdfFxcXFx1ZDg3YVtcXFxcdWRjMDAtXFxcXHVkZmUwXXxcXFxcdWQ4N2VbXFxcXHVkYzAwLVxcXFx1ZGUxZF18XFxcXHVkODg0W1xcXFx1ZGMwMC1cXFxcdWRmNGFcXFxcdWRmNTAtXFxcXHVkZmZmXXxcXFxcdWQ4ODhbXFxcXHVkYzAwLVxcXFx1ZGZhZl0pKD86W1xcXFx1ZmUwMC1cXFxcdWZlMGZdfFxcXFx1ZGI0MFtcXFxcdWRkMDAtXFxcXHVkZGVmXSk/XCIsYWk9bmV3IFJlZ0V4cChcIltcXFxcdTExMDAtXFxcXHUxMWZmXFxcXHUzMDAxLVxcXFx1MzAwM1xcXFx1MzAwOC1cXFxcdTMwMTFcXFxcdTMwMTMtXFxcXHUzMDFmXFxcXHUzMDJlLVxcXFx1MzAzMFxcXFx1MzAzN1xcXFx1MzBmYlxcXFx1MzEzMS1cXFxcdTMxOGVcXFxcdTMyMDAtXFxcXHUzMjFlXFxcXHUzMjYwLVxcXFx1MzI3ZVxcXFx1YTk2MC1cXFxcdWE5N2NcXFxcdWFjMDAtXFxcXHVkN2EzXFxcXHVkN2IwLVxcXFx1ZDdjNlxcXFx1ZDdjYi1cXFxcdWQ3ZmJcXFxcdWZlNDUtXFxcXHVmZTQ2XFxcXHVmZjYxLVxcXFx1ZmY2NVxcXFx1ZmZhMC1cXFxcdWZmYmVcXFxcdWZmYzItXFxcXHVmZmM3XFxcXHVmZmNhLVxcXFx1ZmZjZlxcXFx1ZmZkMi1cXFxcdWZmZDdcXFxcdWZmZGEtXFxcXHVmZmRjXVwiLFwiXCIpLHVyPVwiW1xcXFx1MDAyMS1cXFxcdTAwMmZcXFxcdTAwM2EtXFxcXHUwMDQwXFxcXHUwMDViLVxcXFx1MDA2MFxcXFx1MDA3Yi1cXFxcdTAwN2VcXFxcdTAwYTFcXFxcdTAwYTdcXFxcdTAwYWJcXFxcdTAwYjYtXFxcXHUwMGI3XFxcXHUwMGJiXFxcXHUwMGJmXFxcXHUwMzdlXFxcXHUwMzg3XFxcXHUwNTVhLVxcXFx1MDU1ZlxcXFx1MDU4OS1cXFxcdTA1OGFcXFxcdTA1YmVcXFxcdTA1YzBcXFxcdTA1YzNcXFxcdTA1YzZcXFxcdTA1ZjMtXFxcXHUwNWY0XFxcXHUwNjA5LVxcXFx1MDYwYVxcXFx1MDYwYy1cXFxcdTA2MGRcXFxcdTA2MWJcXFxcdTA2MWQtXFxcXHUwNjFmXFxcXHUwNjZhLVxcXFx1MDY2ZFxcXFx1MDZkNFxcXFx1MDcwMC1cXFxcdTA3MGRcXFxcdTA3ZjctXFxcXHUwN2Y5XFxcXHUwODMwLVxcXFx1MDgzZVxcXFx1MDg1ZVxcXFx1MDk2NC1cXFxcdTA5NjVcXFxcdTA5NzBcXFxcdTA5ZmRcXFxcdTBhNzZcXFxcdTBhZjBcXFxcdTBjNzdcXFxcdTBjODRcXFxcdTBkZjRcXFxcdTBlNGZcXFxcdTBlNWEtXFxcXHUwZTViXFxcXHUwZjA0LVxcXFx1MGYxMlxcXFx1MGYxNFxcXFx1MGYzYS1cXFxcdTBmM2RcXFxcdTBmODVcXFxcdTBmZDAtXFxcXHUwZmQ0XFxcXHUwZmQ5LVxcXFx1MGZkYVxcXFx1MTA0YS1cXFxcdTEwNGZcXFxcdTEwZmJcXFxcdTEzNjAtXFxcXHUxMzY4XFxcXHUxNDAwXFxcXHUxNjZlXFxcXHUxNjliLVxcXFx1MTY5Y1xcXFx1MTZlYi1cXFxcdTE2ZWRcXFxcdTE3MzUtXFxcXHUxNzM2XFxcXHUxN2Q0LVxcXFx1MTdkNlxcXFx1MTdkOC1cXFxcdTE3ZGFcXFxcdTE4MDAtXFxcXHUxODBhXFxcXHUxOTQ0LVxcXFx1MTk0NVxcXFx1MWExZS1cXFxcdTFhMWZcXFxcdTFhYTAtXFxcXHUxYWE2XFxcXHUxYWE4LVxcXFx1MWFhZFxcXFx1MWI1YS1cXFxcdTFiNjBcXFxcdTFiN2QtXFxcXHUxYjdlXFxcXHUxYmZjLVxcXFx1MWJmZlxcXFx1MWMzYi1cXFxcdTFjM2ZcXFxcdTFjN2UtXFxcXHUxYzdmXFxcXHUxY2MwLVxcXFx1MWNjN1xcXFx1MWNkM1xcXFx1MjAxMC1cXFxcdTIwMjdcXFxcdTIwMzAtXFxcXHUyMDQzXFxcXHUyMDQ1LVxcXFx1MjA1MVxcXFx1MjA1My1cXFxcdTIwNWVcXFxcdTIwN2QtXFxcXHUyMDdlXFxcXHUyMDhkLVxcXFx1MjA4ZVxcXFx1MjMwOC1cXFxcdTIzMGJcXFxcdTIzMjktXFxcXHUyMzJhXFxcXHUyNzY4LVxcXFx1Mjc3NVxcXFx1MjdjNS1cXFxcdTI3YzZcXFxcdTI3ZTYtXFxcXHUyN2VmXFxcXHUyOTgzLVxcXFx1Mjk5OFxcXFx1MjlkOC1cXFxcdTI5ZGJcXFxcdTI5ZmMtXFxcXHUyOWZkXFxcXHUyY2Y5LVxcXFx1MmNmY1xcXFx1MmNmZS1cXFxcdTJjZmZcXFxcdTJkNzBcXFxcdTJlMDAtXFxcXHUyZTJlXFxcXHUyZTMwLVxcXFx1MmU0ZlxcXFx1MmU1Mi1cXFxcdTJlNWRcXFxcdTMwMDEtXFxcXHUzMDAzXFxcXHUzMDA4LVxcXFx1MzAxMVxcXFx1MzAxNC1cXFxcdTMwMWZcXFxcdTMwMzBcXFxcdTMwM2RcXFxcdTMwYTBcXFxcdTMwZmJcXFxcdWE0ZmUtXFxcXHVhNGZmXFxcXHVhNjBkLVxcXFx1YTYwZlxcXFx1YTY3M1xcXFx1YTY3ZVxcXFx1YTZmMi1cXFxcdWE2ZjdcXFxcdWE4NzQtXFxcXHVhODc3XFxcXHVhOGNlLVxcXFx1YThjZlxcXFx1YThmOC1cXFxcdWE4ZmFcXFxcdWE4ZmNcXFxcdWE5MmUtXFxcXHVhOTJmXFxcXHVhOTVmXFxcXHVhOWMxLVxcXFx1YTljZFxcXFx1YTlkZS1cXFxcdWE5ZGZcXFxcdWFhNWMtXFxcXHVhYTVmXFxcXHVhYWRlLVxcXFx1YWFkZlxcXFx1YWFmMC1cXFxcdWFhZjFcXFxcdWFiZWJcXFxcdWZkM2UtXFxcXHVmZDNmXFxcXHVmZTEwLVxcXFx1ZmUxOVxcXFx1ZmUzMC1cXFxcdWZlNTJcXFxcdWZlNTQtXFxcXHVmZTYxXFxcXHVmZTYzXFxcXHVmZTY4XFxcXHVmZTZhLVxcXFx1ZmU2YlxcXFx1ZmYwMS1cXFxcdWZmMDNcXFxcdWZmMDUtXFxcXHVmZjBhXFxcXHVmZjBjLVxcXFx1ZmYwZlxcXFx1ZmYxYS1cXFxcdWZmMWJcXFxcdWZmMWYtXFxcXHVmZjIwXFxcXHVmZjNiLVxcXFx1ZmYzZFxcXFx1ZmYzZlxcXFx1ZmY1YlxcXFx1ZmY1ZFxcXFx1ZmY1Zi1cXFxcdWZmNjVdfFxcXFx1ZDgwMFtcXFxcdWRkMDAtXFxcXHVkZDAyXFxcXHVkZjlmXFxcXHVkZmQwXXxcXFxcdWQ4MDFbXFxcXHVkZDZmXXxcXFxcdWQ4MDJbXFxcXHVkYzU3XFxcXHVkZDFmXFxcXHVkZDNmXFxcXHVkZTUwLVxcXFx1ZGU1OFxcXFx1ZGU3ZlxcXFx1ZGVmMC1cXFxcdWRlZjZcXFxcdWRmMzktXFxcXHVkZjNmXFxcXHVkZjk5LVxcXFx1ZGY5Y118XFxcXHVkODAzW1xcXFx1ZGVhZFxcXFx1ZGY1NS1cXFxcdWRmNTlcXFxcdWRmODYtXFxcXHVkZjg5XXxcXFxcdWQ4MDRbXFxcXHVkYzQ3LVxcXFx1ZGM0ZFxcXFx1ZGNiYi1cXFxcdWRjYmNcXFxcdWRjYmUtXFxcXHVkY2MxXFxcXHVkZDQwLVxcXFx1ZGQ0M1xcXFx1ZGQ3NC1cXFxcdWRkNzVcXFxcdWRkYzUtXFxcXHVkZGM4XFxcXHVkZGNkXFxcXHVkZGRiXFxcXHVkZGRkLVxcXFx1ZGRkZlxcXFx1ZGUzOC1cXFxcdWRlM2RcXFxcdWRlYTldfFxcXFx1ZDgwNVtcXFxcdWRjNGItXFxcXHVkYzRmXFxcXHVkYzVhLVxcXFx1ZGM1YlxcXFx1ZGM1ZFxcXFx1ZGNjNlxcXFx1ZGRjMS1cXFxcdWRkZDdcXFxcdWRlNDEtXFxcXHVkZTQzXFxcXHVkZTYwLVxcXFx1ZGU2Y1xcXFx1ZGViOVxcXFx1ZGYzYy1cXFxcdWRmM2VdfFxcXFx1ZDgwNltcXFxcdWRjM2JcXFxcdWRkNDQtXFxcXHVkZDQ2XFxcXHVkZGUyXFxcXHVkZTNmLVxcXFx1ZGU0NlxcXFx1ZGU5YS1cXFxcdWRlOWNcXFxcdWRlOWUtXFxcXHVkZWEyXFxcXHVkZjAwLVxcXFx1ZGYwOV18XFxcXHVkODA3W1xcXFx1ZGM0MS1cXFxcdWRjNDVcXFxcdWRjNzAtXFxcXHVkYzcxXFxcXHVkZWY3LVxcXFx1ZGVmOFxcXFx1ZGY0My1cXFxcdWRmNGZcXFxcdWRmZmZdfFxcXFx1ZDgwOVtcXFxcdWRjNzAtXFxcXHVkYzc0XXxcXFxcdWQ4MGJbXFxcXHVkZmYxLVxcXFx1ZGZmMl18XFxcXHVkODFhW1xcXFx1ZGU2ZS1cXFxcdWRlNmZcXFxcdWRlZjVcXFxcdWRmMzctXFxcXHVkZjNiXFxcXHVkZjQ0XXxcXFxcdWQ4MWJbXFxcXHVkZTk3LVxcXFx1ZGU5YVxcXFx1ZGZlMl18XFxcXHVkODJmW1xcXFx1ZGM5Zl18XFxcXHVkODM2W1xcXFx1ZGU4Ny1cXFxcdWRlOGJdfFxcXFx1ZDgzYVtcXFxcdWRkNWUtXFxcXHVkZDVmXVwiO3ZhciBtdD1uZXcgU2V0KFtcImxpcXVpZE5vZGVcIixcImlubGluZUNvZGVcIixcImVtcGhhc2lzXCIsXCJlc0NvbW1lbnRcIixcInN0cm9uZ1wiLFwiZGVsZXRlXCIsXCJ3aWtpTGlua1wiLFwibGlua1wiLFwibGlua1JlZmVyZW5jZVwiLFwiaW1hZ2VcIixcImltYWdlUmVmZXJlbmNlXCIsXCJmb290bm90ZVwiLFwiZm9vdG5vdGVSZWZlcmVuY2VcIixcInNlbnRlbmNlXCIsXCJ3aGl0ZXNwYWNlXCIsXCJ3b3JkXCIsXCJicmVha1wiLFwiaW5saW5lTWF0aFwiXSksX3I9bmV3IFNldChbLi4ubXQsXCJ0YWJsZUNlbGxcIixcInBhcmFncmFwaFwiLFwiaGVhZGluZ1wiXSksaHQ9bmV3IFJlZ0V4cCh1ciksUGU9XCJub24tY2prXCIsRGU9XCJjai1sZXR0ZXJcIixDZT1cImstbGV0dGVyXCIsYXI9XCJjamstcHVuY3R1YXRpb25cIjtmdW5jdGlvbiBMcihlKXtsZXQgcj1bXSxuPWUuc3BsaXQoLyhbXFx0XFxuIF0rKS8pO2ZvcihsZXRbYSxpXW9mIG4uZW50cmllcygpKXtpZihhJTI9PT0xKXtyLnB1c2goe3R5cGU6XCJ3aGl0ZXNwYWNlXCIsdmFsdWU6L1xcbi8udGVzdChpKT9gXG5gOlwiIFwifSk7Y29udGludWV9aWYoKGE9PT0wfHxhPT09bi5sZW5ndGgtMSkmJmk9PT1cIlwiKWNvbnRpbnVlO2xldCB1PWkuc3BsaXQobmV3IFJlZ0V4cChgKCR7dWl9KWApKTtmb3IobGV0W28sc11vZiB1LmVudHJpZXMoKSlpZighKChvPT09MHx8bz09PXUubGVuZ3RoLTEpJiZzPT09XCJcIikpe2lmKG8lMj09PTApe3MhPT1cIlwiJiZ0KHt0eXBlOlwid29yZFwiLHZhbHVlOnMsa2luZDpQZSxoYXNMZWFkaW5nUHVuY3R1YXRpb246aHQudGVzdChzWzBdKSxoYXNUcmFpbGluZ1B1bmN0dWF0aW9uOmh0LnRlc3QoVSghMSxzLC0xKSl9KTtjb250aW51ZX10KGh0LnRlc3Qocyk/e3R5cGU6XCJ3b3JkXCIsdmFsdWU6cyxraW5kOmFyLGhhc0xlYWRpbmdQdW5jdHVhdGlvbjohMCxoYXNUcmFpbGluZ1B1bmN0dWF0aW9uOiEwfTp7dHlwZTpcIndvcmRcIix2YWx1ZTpzLGtpbmQ6YWkudGVzdChzKT9DZTpEZSxoYXNMZWFkaW5nUHVuY3R1YXRpb246ITEsaGFzVHJhaWxpbmdQdW5jdHVhdGlvbjohMX0pfX1yZXR1cm4gcjtmdW5jdGlvbiB0KGEpe2xldCBpPVUoITEsciwtMSk7KGk9PW51bGw/dm9pZCAwOmkudHlwZSk9PT1cIndvcmRcIiYmIXUoUGUsYXIpJiYhW2kudmFsdWUsYS52YWx1ZV0uc29tZShvPT4vXFx1MzAwMC8udGVzdChvKSkmJnIucHVzaCh7dHlwZTpcIndoaXRlc3BhY2VcIix2YWx1ZTpcIlwifSksci5wdXNoKGEpO2Z1bmN0aW9uIHUobyxzKXtyZXR1cm4gaS5raW5kPT09byYmYS5raW5kPT09c3x8aS5raW5kPT09cyYmYS5raW5kPT09b319fWZ1bmN0aW9uIFJlKGUscil7bGV0WyxuLHQsYV09ci5zbGljZShlLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCxlLnBvc2l0aW9uLmVuZC5vZmZzZXQpLm1hdGNoKC9eXFxzKihcXGQrKShcXC58XFwpKShcXHMqKS8pO3JldHVybntudW1iZXJUZXh0Om4sbWFya2VyOnQsbGVhZGluZ1NwYWNlczphfX1mdW5jdGlvbiBvaShlLHIpe2lmKCFlLm9yZGVyZWR8fGUuY2hpbGRyZW4ubGVuZ3RoPDIpcmV0dXJuITE7bGV0IG49TnVtYmVyKFJlKGUuY2hpbGRyZW5bMF0sci5vcmlnaW5hbFRleHQpLm51bWJlclRleHQpLHQ9TnVtYmVyKFJlKGUuY2hpbGRyZW5bMV0sci5vcmlnaW5hbFRleHQpLm51bWJlclRleHQpO2lmKG49PT0wJiZlLmNoaWxkcmVuLmxlbmd0aD4yKXtsZXQgYT1OdW1iZXIoUmUoZS5jaGlsZHJlblsyXSxyLm9yaWdpbmFsVGV4dCkubnVtYmVyVGV4dCk7cmV0dXJuIHQ9PT0xJiZhPT09MX1yZXR1cm4gdD09PTF9ZnVuY3Rpb24gT3IoZSxyKXtsZXR7dmFsdWU6bn09ZTtyZXR1cm4gZS5wb3NpdGlvbi5lbmQub2Zmc2V0PT09ci5sZW5ndGgmJm4uZW5kc1dpdGgoYFxuYCkmJnIuZW5kc1dpdGgoYFxuYCk/bi5zbGljZSgwLC0xKTpufWZ1bmN0aW9uIGJlKGUscil7cmV0dXJuIGZ1bmN0aW9uIG4odCxhLGkpe2xldCB1PXsuLi5yKHQsYSxpKX07cmV0dXJuIHUuY2hpbGRyZW4mJih1LmNoaWxkcmVuPXUuY2hpbGRyZW4ubWFwKChvLHMpPT5uKG8scyxbdSwuLi5pXSkpKSx1fShlLG51bGwsW10pfWZ1bmN0aW9uIGd0KGUpe2lmKChlPT1udWxsP3ZvaWQgMDplLnR5cGUpIT09XCJsaW5rXCJ8fGUuY2hpbGRyZW4ubGVuZ3RoIT09MSlyZXR1cm4hMTtsZXRbcl09ZS5jaGlsZHJlbjtyZXR1cm4gVGUoZSk9PT1UZShyKSYmU2UoZSk9PT1TZShyKX1mdW5jdGlvbiB3bChlLHIpe2xldHtub2RlOm59PWU7aWYobi50eXBlPT09XCJjb2RlXCImJm4ubGFuZyE9PW51bGwpe2xldCB0PWlpKHIse2xhbmd1YWdlOm4ubGFuZ30pO2lmKHQpcmV0dXJuIGFzeW5jIGE9PntsZXQgaT1yLl9faW5Kc1RlbXBsYXRlP1wiflwiOlwiYFwiLHU9aS5yZXBlYXQoTWF0aC5tYXgoMyx3cihuLnZhbHVlLGkpKzEpKSxvPXtwYXJzZXI6dH07bi5sYW5nPT09XCJ0c1wifHxuLmxhbmc9PT1cInR5cGVzY3JpcHRcIj9vLmZpbGVwYXRoPVwiZHVtbXkudHNcIjpuLmxhbmc9PT1cInRzeFwiJiYoby5maWxlcGF0aD1cImR1bW15LnRzeFwiKTtsZXQgcz1hd2FpdCBhKE9yKG4sci5vcmlnaW5hbFRleHQpLG8pO3JldHVybiBxZShbdSxuLmxhbmcsbi5tZXRhP1wiIFwiK24ubWV0YTpcIlwiLE8sRWUocyksTyx1XSl9fXN3aXRjaChuLnR5cGUpe2Nhc2VcImZyb250LW1hdHRlclwiOnJldHVybiB0PT50aShuLHQpO2Nhc2VcImltcG9ydFwiOmNhc2VcImV4cG9ydFwiOnJldHVybiB0PT50KG4udmFsdWUse3BhcnNlcjpcImJhYmVsXCJ9KTtjYXNlXCJqc3hcIjpyZXR1cm4gdD0+dChgPCQ+JHtuLnZhbHVlfTwvJD5gLHtwYXJzZXI6XCJfX2pzX2V4cHJlc3Npb25cIixyb290TWFya2VyOlwibWR4XCJ9KX1yZXR1cm4gbnVsbH12YXIgc2k9d2w7dmFyIEFsPW5ldyBSZWdFeHAoXCJeKD88c3RhcnREZWxpbWl0ZXI+LXszfXxcXFxcK3szfSkoPzxsYW5ndWFnZT5bXlxcXFxuXSopXFxcXG4oPzp8KD88dmFsdWU+Lio/KVxcXFxuKSg/PGVuZERlbGltaXRlcj5cXFxcazxzdGFydERlbGltaXRlcj58XFxcXC57M30pW15cXFxcU1xcXFxuXSooPzpcXFxcbnwkKVwiLFwic1wiKTtmdW5jdGlvbiBCbChlKXtsZXQgcj1lLm1hdGNoKEFsKTtpZighcilyZXR1cm57Y29udGVudDplfTtsZXR7c3RhcnREZWxpbWl0ZXI6bixsYW5ndWFnZTp0LHZhbHVlOmE9XCJcIixlbmREZWxpbWl0ZXI6aX09ci5ncm91cHMsdT10LnRyaW0oKXx8XCJ5YW1sXCI7aWYobj09PVwiKysrXCImJih1PVwidG9tbFwiKSx1IT09XCJ5YW1sXCImJm4hPT1pKXJldHVybntjb250ZW50OmV9O2xldFtvXT1yO3JldHVybntmcm9udE1hdHRlcjp7dHlwZTpcImZyb250LW1hdHRlclwiLGxhbmc6dSx2YWx1ZTphLHN0YXJ0RGVsaW1pdGVyOm4sZW5kRGVsaW1pdGVyOmkscmF3Om8ucmVwbGFjZSgvXFxuJC8sXCJcIil9LGNvbnRlbnQ6UighMSxvLC9bXlxcbl0vZyxcIiBcIikrZS5zbGljZShvLmxlbmd0aCl9fXZhciBvcj1CbDt2YXIgY2k9W1wiZm9ybWF0XCIsXCJwcmV0dGllclwiXTtmdW5jdGlvbiB2dChlKXtsZXQgcj1gQCgke2NpLmpvaW4oXCJ8XCIpfSlgLG49bmV3IFJlZ0V4cChbYDwhLS1cXFxccyoke3J9XFxcXHMqLS0+YCxge1xcXFxzKlxcXFwvXFxcXCpcXFxccyoke3J9XFxcXHMqXFxcXCpcXFxcL1xcXFxzKn1gLGA8IS0tLipcXHI/XG5bXFxcXHNcXFxcU10qKF58XG4pW15cXFxcU1xuXSoke3J9W15cXFxcU1xuXSooJHxcbilbXFxcXHNcXFxcU10qXG4uKi0tPmBdLmpvaW4oXCJ8XCIpLFwibVwiKSx0PWUubWF0Y2gobik7cmV0dXJuKHQ9PW51bGw/dm9pZCAwOnQuaW5kZXgpPT09MH12YXIgbGk9ZT0+dnQob3IoZSkuY29udGVudC50cmltU3RhcnQoKSksZmk9ZT0+e2xldCByPW9yKGUpLG49YDwhLS0gQCR7Y2lbMF19IC0tPmA7cmV0dXJuIHIuZnJvbnRNYXR0ZXI/YCR7ci5mcm9udE1hdHRlci5yYXd9XG5cbiR7bn1cblxuJHtyLmNvbnRlbnR9YDpgJHtufVxuXG4ke3IuY29udGVudH1gfTt2YXIgcWw9L14uJC9zdTtmdW5jdGlvbiBUbChlLHIpe3JldHVybiBlPVNsKGUsciksZT1fbChlKSxlPU9sKGUsciksZT1JbChlLHIpLGU9TGwoZSksZX1mdW5jdGlvbiBTbChlLHIpe3JldHVybiBiZShlLG49Pm4udHlwZSE9PVwidGV4dFwifHxuLnZhbHVlPT09XCIqXCJ8fG4udmFsdWU9PT1cIl9cInx8IXFsLnRlc3Qobi52YWx1ZSl8fG4ucG9zaXRpb24uZW5kLm9mZnNldC1uLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldD09PW4udmFsdWUubGVuZ3RoP246ey4uLm4sdmFsdWU6ci5vcmlnaW5hbFRleHQuc2xpY2Uobi5wb3NpdGlvbi5zdGFydC5vZmZzZXQsbi5wb3NpdGlvbi5lbmQub2Zmc2V0KX0pfWZ1bmN0aW9uIFBsKGUscixuKXtyZXR1cm4gYmUoZSx0PT57aWYoIXQuY2hpbGRyZW4pcmV0dXJuIHQ7bGV0IGE9dC5jaGlsZHJlbi5yZWR1Y2UoKGksdSk9PntsZXQgbz1VKCExLGksLTEpO3JldHVybiBvJiZyKG8sdSk/aS5zcGxpY2UoLTEsMSxuKG8sdSkpOmkucHVzaCh1KSxpfSxbXSk7cmV0dXJuey4uLnQsY2hpbGRyZW46YX19KX1mdW5jdGlvbiBfbChlKXtyZXR1cm4gUGwoZSwocixuKT0+ci50eXBlPT09XCJ0ZXh0XCImJm4udHlwZT09PVwidGV4dFwiLChyLG4pPT4oe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6ci52YWx1ZStuLnZhbHVlLHBvc2l0aW9uOntzdGFydDpyLnBvc2l0aW9uLnN0YXJ0LGVuZDpuLnBvc2l0aW9uLmVuZH19KSl9ZnVuY3Rpb24gTGwoZSl7cmV0dXJuIGJlKGUsKHIsbixbdF0pPT57aWYoci50eXBlIT09XCJ0ZXh0XCIpcmV0dXJuIHI7bGV0e3ZhbHVlOmF9PXI7cmV0dXJuIHQudHlwZT09PVwicGFyYWdyYXBoXCImJihuPT09MCYmKGE9YS50cmltU3RhcnQoKSksbj09PXQuY2hpbGRyZW4ubGVuZ3RoLTEmJihhPWEudHJpbUVuZCgpKSkse3R5cGU6XCJzZW50ZW5jZVwiLHBvc2l0aW9uOnIucG9zaXRpb24sY2hpbGRyZW46THIoYSl9fSl9ZnVuY3Rpb24gT2woZSxyKXtyZXR1cm4gYmUoZSwobix0LGEpPT57aWYobi50eXBlPT09XCJjb2RlXCIpe2xldCBpPS9eXFxuPyg/OiB7NCx9fFxcdCkvLnRlc3Qoci5vcmlnaW5hbFRleHQuc2xpY2Uobi5wb3NpdGlvbi5zdGFydC5vZmZzZXQsbi5wb3NpdGlvbi5lbmQub2Zmc2V0KSk7aWYobi5pc0luZGVudGVkPWksaSlmb3IobGV0IHU9MDt1PGEubGVuZ3RoO3UrKyl7bGV0IG89YVt1XTtpZihvLmhhc0luZGVudGVkQ29kZWJsb2NrKWJyZWFrO28udHlwZT09PVwibGlzdFwiJiYoby5oYXNJbmRlbnRlZENvZGVibG9jaz0hMCl9fXJldHVybiBufSl9ZnVuY3Rpb24gSWwoZSxyKXtyZXR1cm4gYmUoZSwoYSxpLHUpPT57aWYoYS50eXBlPT09XCJsaXN0XCImJmEuY2hpbGRyZW4ubGVuZ3RoPjApe2ZvcihsZXQgbz0wO288dS5sZW5ndGg7bysrKXtsZXQgcz11W29dO2lmKHMudHlwZT09PVwibGlzdFwiJiYhcy5pc0FsaWduZWQpcmV0dXJuIGEuaXNBbGlnbmVkPSExLGF9YS5pc0FsaWduZWQ9dChhKX1yZXR1cm4gYX0pO2Z1bmN0aW9uIG4oYSl7cmV0dXJuIGEuY2hpbGRyZW4ubGVuZ3RoPT09MD8tMTphLmNoaWxkcmVuWzBdLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbi0xfWZ1bmN0aW9uIHQoYSl7aWYoIWEub3JkZXJlZClyZXR1cm4hMDtsZXRbaSx1XT1hLmNoaWxkcmVuO2lmKFJlKGksci5vcmlnaW5hbFRleHQpLmxlYWRpbmdTcGFjZXMubGVuZ3RoPjEpcmV0dXJuITA7bGV0IHM9bihpKTtpZihzPT09LTEpcmV0dXJuITE7aWYoYS5jaGlsZHJlbi5sZW5ndGg9PT0xKXJldHVybiBzJXIudGFiV2lkdGg9PT0wO2xldCBsPW4odSk7cmV0dXJuIHMhPT1sPyExOnMlci50YWJXaWR0aD09PTA/ITA6UmUodSxyLm9yaWdpbmFsVGV4dCkubGVhZGluZ1NwYWNlcy5sZW5ndGg+MX19dmFyIERpPVRsO3ZhciBkaT1JZShrcigpLDEpO2Z1bmN0aW9uIE5sKGUpe3JldHVybihlPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09XCJmcm9udC1tYXR0ZXJcIn12YXIgcGk9Tmw7dmFyIFJsPW5ldyBTZXQoW1wicG9zaXRpb25cIixcInJhd1wiXSk7ZnVuY3Rpb24gaGkoZSxyLG4pe2lmKChlLnR5cGU9PT1cImZyb250LW1hdHRlclwifHxlLnR5cGU9PT1cImNvZGVcInx8ZS50eXBlPT09XCJ5YW1sXCJ8fGUudHlwZT09PVwiaW1wb3J0XCJ8fGUudHlwZT09PVwiZXhwb3J0XCJ8fGUudHlwZT09PVwianN4XCIpJiZkZWxldGUgci52YWx1ZSxlLnR5cGU9PT1cImxpc3RcIiYmZGVsZXRlIHIuaXNBbGlnbmVkLChlLnR5cGU9PT1cImxpc3RcInx8ZS50eXBlPT09XCJsaXN0SXRlbVwiKSYmZGVsZXRlIHIuc3ByZWFkLGUudHlwZT09PVwidGV4dFwifHwoZS50eXBlPT09XCJpbmxpbmVDb2RlXCImJihyLnZhbHVlPVIoITEsZS52YWx1ZSxgXG5gLFwiIFwiKSksZS50eXBlPT09XCJ3aWtpTGlua1wiJiYoci52YWx1ZT1SKCExLGUudmFsdWUudHJpbSgpLC9bXFx0XFxuXSsvZyxcIiBcIikpLChlLnR5cGU9PT1cImRlZmluaXRpb25cInx8ZS50eXBlPT09XCJsaW5rUmVmZXJlbmNlXCJ8fGUudHlwZT09PVwiaW1hZ2VSZWZlcmVuY2VcIikmJihyLmxhYmVsPSgwLGRpLmRlZmF1bHQpKGUubGFiZWwpKSwoZS50eXBlPT09XCJkZWZpbml0aW9uXCJ8fGUudHlwZT09PVwibGlua1wifHxlLnR5cGU9PT1cImltYWdlXCIpJiZlLnRpdGxlJiYoci50aXRsZT1SKCExLGUudGl0bGUsL1xcXFwoPz1bXCInKV0pL2csXCJcIikpLChuPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJyb290XCImJm4uY2hpbGRyZW4ubGVuZ3RoPjAmJihuLmNoaWxkcmVuWzBdPT09ZXx8cGkobi5jaGlsZHJlblswXSkmJm4uY2hpbGRyZW5bMV09PT1lKSYmZS50eXBlPT09XCJodG1sXCImJnZ0KGUudmFsdWUpKSlyZXR1cm4gbnVsbH1oaS5pZ25vcmVkUHJvcGVydGllcz1SbDt2YXIgbWk9aGk7dmFyIHNyPW51bGw7ZnVuY3Rpb24gY3IoZSl7aWYoc3IhPT1udWxsJiZ0eXBlb2Ygc3IucHJvcGVydHkpe2xldCByPXNyO3JldHVybiBzcj1jci5wcm90b3R5cGU9bnVsbCxyfXJldHVybiBzcj1jci5wcm90b3R5cGU9ZT8/T2JqZWN0LmNyZWF0ZShudWxsKSxuZXcgY3J9dmFyIHpsPTEwO2ZvcihsZXQgZT0wO2U8PXpsO2UrKyljcigpO2Z1bmN0aW9uIEZ0KGUpe3JldHVybiBjcihlKX1mdW5jdGlvbiBNbChlLHI9XCJ0eXBlXCIpe0Z0KGUpO2Z1bmN0aW9uIG4odCl7bGV0IGE9dFtyXSxpPWVbYV07aWYoIUFycmF5LmlzQXJyYXkoaSkpdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYE1pc3NpbmcgdmlzaXRvciBrZXlzIGZvciAnJHthfScuYCkse25vZGU6dH0pO3JldHVybiBpfXJldHVybiBufXZhciBnaT1NbDt2YXIgVWw9e1wiZnJvbnQtbWF0dGVyXCI6W10scm9vdDpbXCJjaGlsZHJlblwiXSxwYXJhZ3JhcGg6W1wiY2hpbGRyZW5cIl0sc2VudGVuY2U6W1wiY2hpbGRyZW5cIl0sd29yZDpbXSx3aGl0ZXNwYWNlOltdLGVtcGhhc2lzOltcImNoaWxkcmVuXCJdLHN0cm9uZzpbXCJjaGlsZHJlblwiXSxkZWxldGU6W1wiY2hpbGRyZW5cIl0saW5saW5lQ29kZTpbXSx3aWtpTGluazpbXSxsaW5rOltcImNoaWxkcmVuXCJdLGltYWdlOltdLGJsb2NrcXVvdGU6W1wiY2hpbGRyZW5cIl0saGVhZGluZzpbXCJjaGlsZHJlblwiXSxjb2RlOltdLGh0bWw6W10sbGlzdDpbXCJjaGlsZHJlblwiXSx0aGVtYXRpY0JyZWFrOltdLGxpbmtSZWZlcmVuY2U6W1wiY2hpbGRyZW5cIl0saW1hZ2VSZWZlcmVuY2U6W10sZGVmaW5pdGlvbjpbXSxmb290bm90ZTpbXCJjaGlsZHJlblwiXSxmb290bm90ZVJlZmVyZW5jZTpbXSxmb290bm90ZURlZmluaXRpb246W1wiY2hpbGRyZW5cIl0sdGFibGU6W1wiY2hpbGRyZW5cIl0sdGFibGVDZWxsOltcImNoaWxkcmVuXCJdLGJyZWFrOltdLGxpcXVpZE5vZGU6W10saW1wb3J0OltdLGV4cG9ydDpbXSxlc0NvbW1lbnQ6W10sanN4OltdLG1hdGg6W10saW5saW5lTWF0aDpbXSx0YWJsZVJvdzpbXCJjaGlsZHJlblwiXSxsaXN0SXRlbTpbXCJjaGlsZHJlblwiXSx0ZXh0OltdfSx2aT1VbDt2YXIgWWw9Z2kodmkpLEZpPVlsO3ZhciBWbD1uZXcgU2V0KFtcImhlYWRpbmdcIixcInRhYmxlQ2VsbFwiLFwibGlua1wiLFwid2lraUxpbmtcIl0pLGpsPW5ldyBTZXQoYCQoXFx4QTNcXHhBNVxceEI3J1wiXFx1MzAwOFxcdTMwMEFcXHUzMDBDXFx1MzAwRVxcdTMwMTBcXHUzMDE0XFx1MzAxNlxcdTMwMURcXHVGRTU5XFx1RkU1QlxcdUZGMDRcXHVGRjA4XFx1RkYzQlxcdUZGNUJcXHVGRkUxXFx1RkZFNVt7XFx1MjAzNVxcdUZFMzRcXHVGRTM1XFx1RkUzN1xcdUZFMzlcXHVGRTNCXFx1RkUzRFxcdUZFM0ZcXHVGRTQxXFx1RkU0M1xcdUZFNEZcXHUzMDE4XFx1RkY1RlxceEFCYCksJGw9bmV3IFNldChgISUpLC46Oz9dfVxceEEyXFx4QjBcXHhCNydcIlxcdTIwMjBcXHUyMDIxXFx1MjAzQVxcdTIxMDNcXHUyMjM2XFx1MzAwMVxcdTMwMDJcXHUzMDAzXFx1MzAwNlxcdTMwMTVcXHUzMDE3XFx1MzAxRVxcdUZFNUFcXHVGRTVDXFx1RkYwMVxcdUZGMDJcXHVGRjA1XFx1RkYwN1xcdUZGMDlcXHVGRjBDXFx1RkYwRVxcdUZGMUFcXHVGRjFCXFx1RkYxRlxcdUZGM0RcXHVGRjVEXFx1RkY1RVxcdTIwMTNcXHUyMDE0XFx1MjAyMlxcdTMwMDlcXHUzMDBCXFx1MzAwRFxcdUZFMzBcXHVGRTMxXFx1RkUzMlxcdUZFMzNcXHVGRTUwXFx1RkU1MVxcdUZFNTJcXHVGRTUzXFx1RkU1NFxcdUZFNTVcXHVGRTU2XFx1RkU1OFxcdUZFMzZcXHVGRTM4XFx1RkUzQVxcdUZFM0NcXHVGRTNFXFx1RkU0MFxcdUZFNDJcXHVGRTU3XFx1RkY1Q1xcdUZGNjRcXHUzMDBGXFx1MzAxMVxcdTMwMTlcXHUzMDFGXFx1RkY2MFxceEJCXFx1MzBGRFxcdTMwRkVcXHUzMEZDXFx1MzBBMVxcdTMwQTNcXHUzMEE1XFx1MzBBN1xcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRlxcdTMwMDVcXHUzMDNCXFx1MjAxMFxcdTMwQTBcXHUzMDFDXFx1RkY1RVxcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMEZCYCksRWk9bmV3IFNldChcIiFcXFwiIyQlJicoKSorLC0uLzo7PD0+P0BbXFxcXF1eX2B7fH1+XCIpO2Z1bmN0aW9uIEdsKHtwYXJlbnQ6ZX0pe2lmKGUudXNlc0NKU3BhY2VzPT09dm9pZCAwKXtsZXQgcj17XCIgXCI6MCxcIlwiOjB9LHtjaGlsZHJlbjpufT1lO2ZvcihsZXQgdD0xO3Q8bi5sZW5ndGgtMTsrK3Qpe2xldCBhPW5bdF07aWYoYS50eXBlPT09XCJ3aGl0ZXNwYWNlXCImJihhLnZhbHVlPT09XCIgXCJ8fGEudmFsdWU9PT1cIlwiKSl7bGV0IGk9blt0LTFdLmtpbmQsdT1uW3QrMV0ua2luZDsoaT09PURlJiZ1PT09UGV8fGk9PT1QZSYmdT09PURlKSYmKytyW2EudmFsdWVdfX1lLnVzZXNDSlNwYWNlcz1yW1wiIFwiXT5yW1wiXCJdfXJldHVybiBlLnVzZXNDSlNwYWNlc31mdW5jdGlvbiBIbChlLHIpe2lmKHIpcmV0dXJuITA7bGV0e3ByZXZpb3VzOm4sbmV4dDp0fT1lO2lmKCFufHwhdClyZXR1cm4hMDtsZXQgYT1uLmtpbmQsaT10LmtpbmQ7cmV0dXJuIGJpKGEpJiZiaShpKXx8YT09PUNlJiZpPT09RGV8fGk9PT1DZSYmYT09PURlPyEwOmE9PT1hcnx8aT09PWFyfHxhPT09RGUmJmk9PT1EZT8hMTpFaS5oYXModC52YWx1ZVswXSl8fEVpLmhhcyhVKCExLG4udmFsdWUsLTEpKT8hMDpuLmhhc1RyYWlsaW5nUHVuY3R1YXRpb258fHQuaGFzTGVhZGluZ1B1bmN0dWF0aW9uPyExOkdsKGUpfWZ1bmN0aW9uIENpKGUpe3JldHVybiBlPT09UGV8fGU9PT1EZXx8ZT09PUNlfWZ1bmN0aW9uIGJpKGUpe3JldHVybiBlPT09UGV8fGU9PT1DZX1mdW5jdGlvbiBXbChlLHIsbix0LGEpe2lmKG4hPT1cImFsd2F5c1wifHxlLmhhc0FuY2VzdG9yKHM9PlZsLmhhcyhzLnR5cGUpKSlyZXR1cm4hMTtpZih0KXJldHVybiByIT09XCJcIjtpZihyPT09XCIgXCIpcmV0dXJuITA7bGV0e3ByZXZpb3VzOmksbmV4dDp1fT1lO3JldHVybiEocj09PVwiXCImJigoaT09bnVsbD92b2lkIDA6aS5raW5kKT09PUNlJiZDaSh1PT1udWxsP3ZvaWQgMDp1LmtpbmQpfHwodT09bnVsbD92b2lkIDA6dS5raW5kKT09PUNlJiZDaShpPT1udWxsP3ZvaWQgMDppLmtpbmQpKXx8IWEmJih1JiYkbC5oYXModS52YWx1ZVswXSl8fGkmJmpsLmhhcyhVKCExLGkudmFsdWUsLTEpKSkpfWZ1bmN0aW9uIEV0KGUscixuLHQpe2lmKG49PT1cInByZXNlcnZlXCImJnI9PT1gXG5gKXJldHVybiBPO2xldCBhPXI9PT1cIiBcInx8cj09PWBcbmAmJkhsKGUsdCk7cmV0dXJuIFdsKGUscixuLHQsYSk/YT9TcjpycjphP1wiIFwiOlwiXCJ9dmFyIEtsPW5ldyBTZXQoW1wibGlzdEl0ZW1cIixcImRlZmluaXRpb25cIixcImZvb3Rub3RlRGVmaW5pdGlvblwiXSk7ZnVuY3Rpb24gSmwoZSxyLG4pe3ZhciBhLGksdTtsZXR7bm9kZTp0fT1lO2lmKG5mKGUpKXJldHVybiBMcihyLm9yaWdpbmFsVGV4dC5zbGljZSh0LnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCx0LnBvc2l0aW9uLmVuZC5vZmZzZXQpKS5tYXAobz0+by50eXBlPT09XCJ3b3JkXCI/by52YWx1ZTpFdChlLG8udmFsdWUsci5wcm9zZVdyYXAsITApKTtzd2l0Y2godC50eXBlKXtjYXNlXCJmcm9udC1tYXR0ZXJcIjpyZXR1cm4gci5vcmlnaW5hbFRleHQuc2xpY2UodC5wb3NpdGlvbi5zdGFydC5vZmZzZXQsdC5wb3NpdGlvbi5lbmQub2Zmc2V0KTtjYXNlXCJyb290XCI6cmV0dXJuIHQuY2hpbGRyZW4ubGVuZ3RoPT09MD9cIlwiOltYbihlZihlLHIsbikpLE9dO2Nhc2VcInBhcmFncmFwaFwiOnJldHVybiBZKGUscixuLHtwb3N0cHJvY2Vzc29yOlRyfSk7Y2FzZVwic2VudGVuY2VcIjpyZXR1cm4gWShlLHIsbik7Y2FzZVwid29yZFwiOntsZXQgbz1SKCExLFIoITEsdC52YWx1ZSxcIipcIixcIlxcXFwqXCIpLG5ldyBSZWdFeHAoW2AoXnwke3VyfSkoXyspYCxgKF8rKSgke3VyfXwkKWBdLmpvaW4oXCJ8XCIpLFwiZ1wiKSwoYyxmLEQsaCxwKT0+UighMSxEP2Ake2Z9JHtEfWA6YCR7aH0ke3B9YCxcIl9cIixcIlxcXFxfXCIpKSxzPShjLGYsRCk9PmMudHlwZT09PVwic2VudGVuY2VcIiYmRD09PTAsbD0oYyxmLEQpPT5ndChjLmNoaWxkcmVuW0QtMV0pO3JldHVybiBvIT09dC52YWx1ZSYmKGUubWF0Y2godm9pZCAwLHMsbCl8fGUubWF0Y2godm9pZCAwLHMsKGMsZixEKT0+Yy50eXBlPT09XCJlbXBoYXNpc1wiJiZEPT09MCxsKSkmJihvPW8ucmVwbGFjZSgvXihcXFxcP1sqX10pKy8sYz0+UighMSxjLFwiXFxcXFwiLFwiXCIpKSksb31jYXNlXCJ3aGl0ZXNwYWNlXCI6e2xldHtuZXh0Om99PWUscz1vJiYvXj58Xig/OlsqKy1dfCN7MSw2fXxcXGQrWykuXSkkLy50ZXN0KG8udmFsdWUpP1wibmV2ZXJcIjpyLnByb3NlV3JhcDtyZXR1cm4gRXQoZSx0LnZhbHVlLHMpfWNhc2VcImVtcGhhc2lzXCI6e2xldCBvO2lmKGd0KHQuY2hpbGRyZW5bMF0pKW89ci5vcmlnaW5hbFRleHRbdC5wb3NpdGlvbi5zdGFydC5vZmZzZXRdO2Vsc2V7bGV0e3ByZXZpb3VzOnMsbmV4dDpsfT1lO289KHM9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cInNlbnRlbmNlXCImJigoYT1VKCExLHMuY2hpbGRyZW4sLTEpKT09bnVsbD92b2lkIDA6YS50eXBlKT09PVwid29yZFwiJiYhVSghMSxzLmNoaWxkcmVuLC0xKS5oYXNUcmFpbGluZ1B1bmN0dWF0aW9ufHwobD09bnVsbD92b2lkIDA6bC50eXBlKT09PVwic2VudGVuY2VcIiYmKChpPWwuY2hpbGRyZW5bMF0pPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09XCJ3b3JkXCImJiFsLmNoaWxkcmVuWzBdLmhhc0xlYWRpbmdQdW5jdHVhdGlvbnx8ZS5oYXNBbmNlc3RvcihmPT5mLnR5cGU9PT1cImVtcGhhc2lzXCIpP1wiKlwiOlwiX1wifXJldHVybltvLFkoZSxyLG4pLG9dfWNhc2VcInN0cm9uZ1wiOnJldHVybltcIioqXCIsWShlLHIsbiksXCIqKlwiXTtjYXNlXCJkZWxldGVcIjpyZXR1cm5bXCJ+flwiLFkoZSxyLG4pLFwifn5cIl07Y2FzZVwiaW5saW5lQ29kZVwiOntsZXQgbz1yLnByb3NlV3JhcD09PVwicHJlc2VydmVcIj90LnZhbHVlOlIoITEsdC52YWx1ZSxgXG5gLFwiIFwiKSxzPU5uKG8sXCJgXCIpLGw9XCJgXCIucmVwZWF0KHN8fDEpLGM9by5zdGFydHNXaXRoKFwiYFwiKXx8by5lbmRzV2l0aChcImBcIil8fC9eW1xcbiBdLy50ZXN0KG8pJiYvW1xcbiBdJC8udGVzdChvKSYmL1teXFxuIF0vLnRlc3Qobyk/XCIgXCI6XCJcIjtyZXR1cm5bbCxjLG8sYyxsXX1jYXNlXCJ3aWtpTGlua1wiOntsZXQgbz1cIlwiO3JldHVybiByLnByb3NlV3JhcD09PVwicHJlc2VydmVcIj9vPXQudmFsdWU6bz1SKCExLHQudmFsdWUsL1tcXHRcXG5dKy9nLFwiIFwiKSxbXCJbW1wiLG8sXCJdXVwiXX1jYXNlXCJsaW5rXCI6c3dpdGNoKHIub3JpZ2luYWxUZXh0W3QucG9zaXRpb24uc3RhcnQub2Zmc2V0XSl7Y2FzZVwiPFwiOntsZXQgbz1cIm1haWx0bzpcIjtyZXR1cm5bXCI8XCIsdC51cmwuc3RhcnRzV2l0aChvKSYmci5vcmlnaW5hbFRleHQuc2xpY2UodC5wb3NpdGlvbi5zdGFydC5vZmZzZXQrMSx0LnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsxK28ubGVuZ3RoKSE9PW8/dC51cmwuc2xpY2Uoby5sZW5ndGgpOnQudXJsLFwiPlwiXX1jYXNlXCJbXCI6cmV0dXJuW1wiW1wiLFkoZSxyLG4pLFwiXShcIixDdCh0LnVybCxcIilcIiksSXIodC50aXRsZSxyKSxcIilcIl07ZGVmYXVsdDpyZXR1cm4gci5vcmlnaW5hbFRleHQuc2xpY2UodC5wb3NpdGlvbi5zdGFydC5vZmZzZXQsdC5wb3NpdGlvbi5lbmQub2Zmc2V0KX1jYXNlXCJpbWFnZVwiOnJldHVybltcIiFbXCIsdC5hbHR8fFwiXCIsXCJdKFwiLEN0KHQudXJsLFwiKVwiKSxJcih0LnRpdGxlLHIpLFwiKVwiXTtjYXNlXCJibG9ja3F1b3RlXCI6cmV0dXJuW1wiPiBcIixGZShcIj4gXCIsWShlLHIsbikpXTtjYXNlXCJoZWFkaW5nXCI6cmV0dXJuW1wiI1wiLnJlcGVhdCh0LmRlcHRoKStcIiBcIixZKGUscixuKV07Y2FzZVwiY29kZVwiOntpZih0LmlzSW5kZW50ZWQpe2xldCBsPVwiIFwiLnJlcGVhdCg0KTtyZXR1cm4gRmUobCxbbCxFZSh0LnZhbHVlLE8pXSl9bGV0IG89ci5fX2luSnNUZW1wbGF0ZT9cIn5cIjpcImBcIixzPW8ucmVwZWF0KE1hdGgubWF4KDMsd3IodC52YWx1ZSxvKSsxKSk7cmV0dXJuW3MsdC5sYW5nfHxcIlwiLHQubWV0YT9cIiBcIit0Lm1ldGE6XCJcIixPLEVlKE9yKHQsci5vcmlnaW5hbFRleHQpLE8pLE8sc119Y2FzZVwiaHRtbFwiOntsZXR7cGFyZW50Om8saXNMYXN0OnN9PWUsbD1vLnR5cGU9PT1cInJvb3RcIiYmcz90LnZhbHVlLnRyaW1FbmQoKTp0LnZhbHVlLGM9L148IS0tLiotLT4kL3MudGVzdChsKTtyZXR1cm4gRWUobCxjP086cWUodHIpKX1jYXNlXCJsaXN0XCI6e2xldCBvPXlpKHQsZS5wYXJlbnQpLHM9b2kodCxyKTtyZXR1cm4gWShlLHIsbix7cHJvY2Vzc29yKGwpe2xldCBjPUQoKSxmPWwubm9kZTtpZihmLmNoaWxkcmVuLmxlbmd0aD09PTImJmYuY2hpbGRyZW5bMV0udHlwZT09PVwiaHRtbFwiJiZmLmNoaWxkcmVuWzBdLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbiE9PWYuY2hpbGRyZW5bMV0ucG9zaXRpb24uc3RhcnQuY29sdW1uKXJldHVybltjLHhpKGwscixuLGMpXTtyZXR1cm5bYyxGZShcIiBcIi5yZXBlYXQoYy5sZW5ndGgpLHhpKGwscixuLGMpKV07ZnVuY3Rpb24gRCgpe2xldCBoPXQub3JkZXJlZD8obC5pc0ZpcnN0P3Quc3RhcnQ6cz8xOnQuc3RhcnQrbC5pbmRleCkrKG8lMj09PTA/XCIuIFwiOlwiKSBcIik6byUyPT09MD9cIi0gXCI6XCIqIFwiO3JldHVybiB0LmlzQWxpZ25lZHx8dC5oYXNJbmRlbnRlZENvZGVibG9jaz9YbChoLHIpOmh9fX0pfWNhc2VcInRoZW1hdGljQnJlYWtcIjp7bGV0e2FuY2VzdG9yczpvfT1lLHM9by5maW5kSW5kZXgoYz0+Yy50eXBlPT09XCJsaXN0XCIpO3JldHVybiBzPT09LTE/XCItLS1cIjp5aShvW3NdLG9bcysxXSklMj09PTA/XCIqKipcIjpcIi0tLVwifWNhc2VcImxpbmtSZWZlcmVuY2VcIjpyZXR1cm5bXCJbXCIsWShlLHIsbiksXCJdXCIsdC5yZWZlcmVuY2VUeXBlPT09XCJmdWxsXCI/YnQodCk6dC5yZWZlcmVuY2VUeXBlPT09XCJjb2xsYXBzZWRcIj9cIltdXCI6XCJcIl07Y2FzZVwiaW1hZ2VSZWZlcmVuY2VcIjpzd2l0Y2godC5yZWZlcmVuY2VUeXBlKXtjYXNlXCJmdWxsXCI6cmV0dXJuW1wiIVtcIix0LmFsdHx8XCJcIixcIl1cIixidCh0KV07ZGVmYXVsdDpyZXR1cm5bXCIhW1wiLHQuYWx0LFwiXVwiLHQucmVmZXJlbmNlVHlwZT09PVwiY29sbGFwc2VkXCI/XCJbXVwiOlwiXCJdfWNhc2VcImRlZmluaXRpb25cIjp7bGV0IG89ci5wcm9zZVdyYXA9PT1cImFsd2F5c1wiP1NyOlwiIFwiO3JldHVybiBaZShbYnQodCksXCI6XCIsUWUoW28sQ3QodC51cmwpLHQudGl0bGU9PT1udWxsP1wiXCI6W28sSXIodC50aXRsZSxyLCExKV1dKV0pfWNhc2VcImZvb3Rub3RlXCI6cmV0dXJuW1wiW15cIixZKGUscixuKSxcIl1cIl07Y2FzZVwiZm9vdG5vdGVSZWZlcmVuY2VcIjpyZXR1cm4gQmkodCk7Y2FzZVwiZm9vdG5vdGVEZWZpbml0aW9uXCI6e2xldCBvPXQuY2hpbGRyZW4ubGVuZ3RoPT09MSYmdC5jaGlsZHJlblswXS50eXBlPT09XCJwYXJhZ3JhcGhcIiYmKHIucHJvc2VXcmFwPT09XCJuZXZlclwifHxyLnByb3NlV3JhcD09PVwicHJlc2VydmVcIiYmdC5jaGlsZHJlblswXS5wb3NpdGlvbi5zdGFydC5saW5lPT09dC5jaGlsZHJlblswXS5wb3NpdGlvbi5lbmQubGluZSk7cmV0dXJuW0JpKHQpLFwiOiBcIixvP1koZSxyLG4pOlplKFtGZShcIiBcIi5yZXBlYXQoNCksWShlLHIsbix7cHJvY2Vzc29yOih7aXNGaXJzdDpzfSk9PnM/WmUoW3JyLG4oKV0pOm4oKX0pKSwoKHU9ZS5uZXh0KT09bnVsbD92b2lkIDA6dS50eXBlKT09PVwiZm9vdG5vdGVEZWZpbml0aW9uXCI/cnI6XCJcIl0pXX1jYXNlXCJ0YWJsZVwiOnJldHVybiBabChlLHIsbik7Y2FzZVwidGFibGVDZWxsXCI6cmV0dXJuIFkoZSxyLG4pO2Nhc2VcImJyZWFrXCI6cmV0dXJuL1xccy8udGVzdChyLm9yaWdpbmFsVGV4dFt0LnBvc2l0aW9uLnN0YXJ0Lm9mZnNldF0pP1tcIiAgXCIscWUodHIpXTpbXCJcXFxcXCIsT107Y2FzZVwibGlxdWlkTm9kZVwiOnJldHVybiBFZSh0LnZhbHVlLE8pO2Nhc2VcImltcG9ydFwiOmNhc2VcImV4cG9ydFwiOmNhc2VcImpzeFwiOnJldHVybiB0LnZhbHVlO2Nhc2VcImVzQ29tbWVudFwiOnJldHVybltcInsvKiBcIix0LnZhbHVlLFwiICovfVwiXTtjYXNlXCJtYXRoXCI6cmV0dXJuW1wiJCRcIixPLHQudmFsdWU/W0VlKHQudmFsdWUsTyksT106XCJcIixcIiQkXCJdO2Nhc2VcImlubGluZU1hdGhcIjpyZXR1cm4gci5vcmlnaW5hbFRleHQuc2xpY2UoVGUodCksU2UodCkpO2Nhc2VcInRhYmxlUm93XCI6Y2FzZVwibGlzdEl0ZW1cIjpjYXNlXCJ0ZXh0XCI6ZGVmYXVsdDp0aHJvdyBuZXcgcmkodCxcIk1hcmtkb3duXCIpfX1mdW5jdGlvbiB4aShlLHIsbix0KXtsZXR7bm9kZTphfT1lLGk9YS5jaGVja2VkPT09bnVsbD9cIlwiOmEuY2hlY2tlZD9cIlt4XSBcIjpcIlsgXSBcIjtyZXR1cm5baSxZKGUscixuLHtwcm9jZXNzb3Ioe25vZGU6dSxpc0ZpcnN0Om99KXtpZihvJiZ1LnR5cGUhPT1cImxpc3RcIilyZXR1cm4gRmUoXCIgXCIucmVwZWF0KGkubGVuZ3RoKSxuKCkpO2xldCBzPVwiIFwiLnJlcGVhdCh1ZihyLnRhYldpZHRoLXQubGVuZ3RoLDAsMykpO3JldHVybltzLEZlKHMsbigpKV19fSldfWZ1bmN0aW9uIFhsKGUscil7bGV0IG49dCgpO3JldHVybiBlK1wiIFwiLnJlcGVhdChuPj00PzA6bik7ZnVuY3Rpb24gdCgpe2xldCBhPWUubGVuZ3RoJXIudGFiV2lkdGg7cmV0dXJuIGE9PT0wPzA6ci50YWJXaWR0aC1hfX1mdW5jdGlvbiB5aShlLHIpe3JldHVybiBRbChlLHIsbj0+bi5vcmRlcmVkPT09ZS5vcmRlcmVkKX1mdW5jdGlvbiBRbChlLHIsbil7bGV0IHQ9LTE7Zm9yKGxldCBhIG9mIHIuY2hpbGRyZW4paWYoYS50eXBlPT09ZS50eXBlJiZuKGEpP3QrKzp0PS0xLGE9PT1lKXJldHVybiB0fWZ1bmN0aW9uIFpsKGUscixuKXtsZXR7bm9kZTp0fT1lLGE9W10saT1lLm1hcCgoKT0+ZS5tYXAoKHtpbmRleDpmfSk9PntsZXQgRD1laShuKCkscikuZm9ybWF0dGVkLGg9WGUoRCk7cmV0dXJuIGFbZl09TWF0aC5tYXgoYVtmXXx8MyxoKSx7dGV4dDpELHdpZHRoOmh9fSxcImNoaWxkcmVuXCIpLFwiY2hpbGRyZW5cIiksdT1zKCExKTtpZihyLnByb3NlV3JhcCE9PVwibmV2ZXJcIilyZXR1cm5bZXIsdV07bGV0IG89cyghMCk7cmV0dXJuW2VyLFplKCRuKG8sdSkpXTtmdW5jdGlvbiBzKGYpe2xldCBEPVtjKGlbMF0sZiksbChmKV07cmV0dXJuIGkubGVuZ3RoPjEmJkQucHVzaChucihOZSxpLnNsaWNlKDEpLm1hcChoPT5jKGgsZikpKSksbnIoTmUsRCl9ZnVuY3Rpb24gbChmKXtyZXR1cm5gfCAke2EubWFwKChoLHApPT57bGV0IGQ9dC5hbGlnbltwXSxtPWQ9PT1cImNlbnRlclwifHxkPT09XCJsZWZ0XCI/XCI6XCI6XCItXCIsZz1kPT09XCJjZW50ZXJcInx8ZD09PVwicmlnaHRcIj9cIjpcIjpcIi1cIix4PWY/XCItXCI6XCItXCIucmVwZWF0KGgtMik7cmV0dXJuYCR7bX0ke3h9JHtnfWB9KS5qb2luKFwiIHwgXCIpfSB8YH1mdW5jdGlvbiBjKGYsRCl7cmV0dXJuYHwgJHtmLm1hcCgoe3RleHQ6cCx3aWR0aDpkfSxtKT0+e2lmKEQpcmV0dXJuIHA7bGV0IGc9YVttXS1kLHg9dC5hbGlnblttXSxGPTA7eD09PVwicmlnaHRcIj9GPWc6eD09PVwiY2VudGVyXCImJihGPU1hdGguZmxvb3IoZy8yKSk7bGV0IEI9Zy1GO3JldHVybmAke1wiIFwiLnJlcGVhdChGKX0ke3B9JHtcIiBcIi5yZXBlYXQoQil9YH0pLmpvaW4oXCIgfCBcIil9IHxgfX1mdW5jdGlvbiBlZihlLHIsbil7bGV0IHQ9W10sYT1udWxsLHtjaGlsZHJlbjppfT1lLm5vZGU7Zm9yKGxldFt1LG9db2YgaS5lbnRyaWVzKCkpc3dpdGNoKHh0KG8pKXtjYXNlXCJzdGFydFwiOmE9PT1udWxsJiYoYT17aW5kZXg6dSxvZmZzZXQ6by5wb3NpdGlvbi5lbmQub2Zmc2V0fSk7YnJlYWs7Y2FzZVwiZW5kXCI6YSE9PW51bGwmJih0LnB1c2goe3N0YXJ0OmEsZW5kOntpbmRleDp1LG9mZnNldDpvLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldH19KSxhPW51bGwpO2JyZWFrO2RlZmF1bHQ6YnJlYWt9cmV0dXJuIFkoZSxyLG4se3Byb2Nlc3Nvcih7aW5kZXg6dX0pe2lmKHQubGVuZ3RoPjApe2xldCBvPXRbMF07aWYodT09PW8uc3RhcnQuaW5kZXgpcmV0dXJuW2tpKGlbby5zdGFydC5pbmRleF0pLHIub3JpZ2luYWxUZXh0LnNsaWNlKG8uc3RhcnQub2Zmc2V0LG8uZW5kLm9mZnNldCksa2koaVtvLmVuZC5pbmRleF0pXTtpZihvLnN0YXJ0LmluZGV4PHUmJnU8by5lbmQuaW5kZXgpcmV0dXJuITE7aWYodT09PW8uZW5kLmluZGV4KXJldHVybiB0LnNoaWZ0KCksITF9cmV0dXJuIG4oKX19KX1mdW5jdGlvbiBZKGUscixuLHQ9e30pe2xldHtwb3N0cHJvY2Vzc29yOmE9bz0+byxwcm9jZXNzb3I6aT0oKT0+bigpfT10LHU9W107cmV0dXJuIGUuZWFjaCgoKT0+e2xldCBvPWkoZSk7byE9PSExJiYodS5sZW5ndGg+MCYmcmYoZSkmJih1LnB1c2goTyksKHRmKGUscil8fEFpKGUpKSYmdS5wdXNoKE8pLEFpKGUpJiZ1LnB1c2goTykpLHUucHVzaChvKSl9LFwiY2hpbGRyZW5cIiksYSh1KX1mdW5jdGlvbiBraShlKXtpZihlLnR5cGU9PT1cImh0bWxcIilyZXR1cm4gZS52YWx1ZTtpZihlLnR5cGU9PT1cInBhcmFncmFwaFwiJiZBcnJheS5pc0FycmF5KGUuY2hpbGRyZW4pJiZlLmNoaWxkcmVuLmxlbmd0aD09PTEmJmUuY2hpbGRyZW5bMF0udHlwZT09PVwiZXNDb21tZW50XCIpcmV0dXJuW1wiey8qIFwiLGUuY2hpbGRyZW5bMF0udmFsdWUsXCIgKi99XCJdfWZ1bmN0aW9uIHh0KGUpe2xldCByO2lmKGUudHlwZT09PVwiaHRtbFwiKXI9ZS52YWx1ZS5tYXRjaCgvXjwhLS1cXHMqcHJldHRpZXItaWdub3JlKD86LShzdGFydHxlbmQpKT9cXHMqLS0+JC8pO2Vsc2V7bGV0IG47ZS50eXBlPT09XCJlc0NvbW1lbnRcIj9uPWU6ZS50eXBlPT09XCJwYXJhZ3JhcGhcIiYmZS5jaGlsZHJlbi5sZW5ndGg9PT0xJiZlLmNoaWxkcmVuWzBdLnR5cGU9PT1cImVzQ29tbWVudFwiJiYobj1lLmNoaWxkcmVuWzBdKSxuJiYocj1uLnZhbHVlLm1hdGNoKC9ecHJldHRpZXItaWdub3JlKD86LShzdGFydHxlbmQpKT8kLykpfXJldHVybiByP3JbMV18fFwibmV4dFwiOiExfWZ1bmN0aW9uIHJmKHtub2RlOmUscGFyZW50OnJ9KXtsZXQgbj1tdC5oYXMoZS50eXBlKSx0PWUudHlwZT09PVwiaHRtbFwiJiZfci5oYXMoci50eXBlKTtyZXR1cm4hbiYmIXR9ZnVuY3Rpb24gd2koZSxyKXtyZXR1cm4gZS50eXBlPT09XCJsaXN0SXRlbVwiJiYoZS5zcHJlYWR8fHIub3JpZ2luYWxUZXh0LmNoYXJBdChlLnBvc2l0aW9uLmVuZC5vZmZzZXQtMSk9PT1gXG5gKX1mdW5jdGlvbiB0Zih7bm9kZTplLHByZXZpb3VzOnIscGFyZW50Om59LHQpe2lmKHdpKHIsdCkpcmV0dXJuITA7bGV0IHU9ci50eXBlPT09ZS50eXBlJiZLbC5oYXMoZS50eXBlKSxvPW4udHlwZT09PVwibGlzdEl0ZW1cIiYmIXdpKG4sdCkscz14dChyKT09PVwibmV4dFwiLGw9ZS50eXBlPT09XCJodG1sXCImJnIudHlwZT09PVwiaHRtbFwiJiZyLnBvc2l0aW9uLmVuZC5saW5lKzE9PT1lLnBvc2l0aW9uLnN0YXJ0LmxpbmUsYz1lLnR5cGU9PT1cImh0bWxcIiYmbi50eXBlPT09XCJsaXN0SXRlbVwiJiZyLnR5cGU9PT1cInBhcmFncmFwaFwiJiZyLnBvc2l0aW9uLmVuZC5saW5lKzE9PT1lLnBvc2l0aW9uLnN0YXJ0LmxpbmU7cmV0dXJuISh1fHxvfHxzfHxsfHxjKX1mdW5jdGlvbiBBaSh7bm9kZTplLHByZXZpb3VzOnJ9KXtsZXQgbj1yLnR5cGU9PT1cImxpc3RcIix0PWUudHlwZT09PVwiY29kZVwiJiZlLmlzSW5kZW50ZWQ7cmV0dXJuIG4mJnR9ZnVuY3Rpb24gbmYoZSl7bGV0IHI9ZS5maW5kQW5jZXN0b3Iobj0+bi50eXBlPT09XCJsaW5rUmVmZXJlbmNlXCJ8fG4udHlwZT09PVwiaW1hZ2VSZWZlcmVuY2VcIik7cmV0dXJuIHImJihyLnR5cGUhPT1cImxpbmtSZWZlcmVuY2VcInx8ci5yZWZlcmVuY2VUeXBlIT09XCJmdWxsXCIpfWZ1bmN0aW9uIEN0KGUscj1bXSl7bGV0IG49W1wiIFwiLC4uLkFycmF5LmlzQXJyYXkocik/cjpbcl1dO3JldHVybiBuZXcgUmVnRXhwKG4ubWFwKHQ9PmBcXFxcJHt0fWApLmpvaW4oXCJ8XCIpKS50ZXN0KGUpP2A8JHtlfT5gOmV9ZnVuY3Rpb24gSXIoZSxyLG49ITApe2lmKCFlKXJldHVyblwiXCI7aWYobilyZXR1cm5cIiBcIitJcihlLHIsITEpO2lmKGU9UighMSxlLC9cXFxcKD89W1wiJyldKS9nLFwiXCIpLGUuaW5jbHVkZXMoJ1wiJykmJmUuaW5jbHVkZXMoXCInXCIpJiYhZS5pbmNsdWRlcyhcIilcIikpcmV0dXJuYCgke2V9KWA7bGV0IHQ9VW4oZSxyLnNpbmdsZVF1b3RlKTtyZXR1cm4gZT1SKCExLGUsXCJcXFxcXCIsXCJcXFxcXFxcXFwiKSxlPVIoITEsZSx0LGBcXFxcJHt0fWApLGAke3R9JHtlfSR7dH1gfWZ1bmN0aW9uIHVmKGUscixuKXtyZXR1cm4gZTxyP3I6ZT5uP246ZX1mdW5jdGlvbiBhZihlKXtyZXR1cm4gZS5pbmRleD4wJiZ4dChlLnByZXZpb3VzKT09PVwibmV4dFwifWZ1bmN0aW9uIGJ0KGUpe3JldHVybmBbJHsoMCxxaS5kZWZhdWx0KShlLmxhYmVsKX1dYH1mdW5jdGlvbiBCaShlKXtyZXR1cm5gW14ke2UubGFiZWx9XWB9dmFyIG9mPXtwcmVwcm9jZXNzOkRpLHByaW50OkpsLGVtYmVkOnNpLG1hc3NhZ2VBc3ROb2RlOm1pLGhhc1ByZXR0aWVySWdub3JlOmFmLGluc2VydFByYWdtYTpmaSxnZXRWaXNpdG9yS2V5czpGaX0sVGk9b2Y7dmFyIFBuPXt9O09uKFBuLHttYXJrZG93bjooKT0+eGcsbWR4OigpPT55ZyxyZW1hcms6KCk9PnhnfSk7dmFyIEdjPUllKGtzKCksMSksSGM9SWUodmMoKSwxKSxXYz1JZShQYygpLDEpLEtjPUllKExjKCksMSk7dmFyIGhnPS9eaW1wb3J0XFxzLyxtZz0vXmV4cG9ydFxccy8sT2M9XCJbYS16XVthLXowLTldKihcXFxcLlthLXpdW2EtejAtOV0qKSp8XCIsSWM9LzwhLS0tLT58PCEtLS0/W14+LV0oPzotP1teLV0pKi0tPi8sZ2c9L157XFxzKlxcL1xcKiguKilcXCpcXC9cXHMqfS8sdmc9YFxuXG5gLE5jPWU9PmhnLnRlc3QoZSksU249ZT0+bWcudGVzdChlKSxSYz0oZSxyKT0+e2xldCBuPXIuaW5kZXhPZih2ZyksdD1yLnNsaWNlKDAsbik7aWYoU24odCl8fE5jKHQpKXJldHVybiBlKHQpKHt0eXBlOlNuKHQpP1wiZXhwb3J0XCI6XCJpbXBvcnRcIix2YWx1ZTp0fSl9LHpjPShlLHIpPT57bGV0IG49Z2cuZXhlYyhyKTtpZihuKXJldHVybiBlKG5bMF0pKHt0eXBlOlwiZXNDb21tZW50XCIsdmFsdWU6blsxXS50cmltKCl9KX07UmMubG9jYXRvcj1lPT5TbihlKXx8TmMoZSk/LTE6MTt6Yy5sb2NhdG9yPShlLHIpPT5lLmluZGV4T2YoXCJ7XCIscik7dmFyIE1jPWZ1bmN0aW9uKCl7bGV0e1BhcnNlcjplfT10aGlzLHtibG9ja1Rva2VuaXplcnM6cixibG9ja01ldGhvZHM6bixpbmxpbmVUb2tlbml6ZXJzOnQsaW5saW5lTWV0aG9kczphfT1lLnByb3RvdHlwZTtyLmVzU3ludGF4PVJjLHQuZXNDb21tZW50PXpjLG4uc3BsaWNlKG4uaW5kZXhPZihcInBhcmFncmFwaFwiKSwwLFwiZXNTeW50YXhcIiksYS5zcGxpY2UoYS5pbmRleE9mKFwidGV4dFwiKSwwLFwiZXNDb21tZW50XCIpfTtmdW5jdGlvbiBGZygpe3JldHVybiBlPT5iZShlLChyLG4sW3RdKT0+ci50eXBlIT09XCJodG1sXCJ8fEljLnRlc3Qoci52YWx1ZSl8fF9yLmhhcyh0LnR5cGUpP3I6ey4uLnIsdHlwZTpcImpzeFwifSl9dmFyIFVjPUZnO3ZhciBFZz1mdW5jdGlvbigpe2xldCBlPXRoaXMuUGFyc2VyLnByb3RvdHlwZTtlLmJsb2NrTWV0aG9kcz1bXCJmcm9udE1hdHRlclwiLC4uLmUuYmxvY2tNZXRob2RzXSxlLmJsb2NrVG9rZW5pemVycy5mcm9udE1hdHRlcj1yO2Z1bmN0aW9uIHIobix0KXtsZXQgYT1vcih0KTtpZihhLmZyb250TWF0dGVyKXJldHVybiBuKGEuZnJvbnRNYXR0ZXIucmF3KShhLmZyb250TWF0dGVyKX1yLm9ubHlBdFN0YXJ0PSEwfSxZYz1FZzt2YXIgQ2c9ZnVuY3Rpb24oKXtsZXQgZT10aGlzLlBhcnNlci5wcm90b3R5cGUscj1lLmlubGluZU1ldGhvZHM7ci5zcGxpY2Uoci5pbmRleE9mKFwidGV4dFwiKSwwLFwibGlxdWlkXCIpLGUuaW5saW5lVG9rZW5pemVycy5saXF1aWQ9bjtmdW5jdGlvbiBuKHQsYSl7bGV0IGk9YS5tYXRjaCgvXih7JS4qPyV9fHt7Lio/fX0pL3MpO2lmKGkpcmV0dXJuIHQoaVswXSkoe3R5cGU6XCJsaXF1aWROb2RlXCIsdmFsdWU6aVswXX0pfW4ubG9jYXRvcj1mdW5jdGlvbih0LGEpe3JldHVybiB0LmluZGV4T2YoXCJ7XCIsYSl9fSxWYz1DZzt2YXIgYmc9ZnVuY3Rpb24oKXtsZXQgZT1cIndpa2lMaW5rXCIscj0vXlxcW1xcWyg/PGxpbmtDb250ZW50cz4uKz8pXV0vcyxuPXRoaXMuUGFyc2VyLnByb3RvdHlwZSx0PW4uaW5saW5lTWV0aG9kczt0LnNwbGljZSh0LmluZGV4T2YoXCJsaW5rXCIpLDAsZSksbi5pbmxpbmVUb2tlbml6ZXJzLndpa2lMaW5rPWE7ZnVuY3Rpb24gYShpLHUpe2xldCBvPXIuZXhlYyh1KTtpZihvKXtsZXQgcz1vLmdyb3Vwcy5saW5rQ29udGVudHMudHJpbSgpO3JldHVybiBpKG9bMF0pKHt0eXBlOmUsdmFsdWU6c30pfX1hLmxvY2F0b3I9ZnVuY3Rpb24oaSx1KXtyZXR1cm4gaS5pbmRleE9mKFwiW1wiLHUpfX0samM9Ymc7ZnVuY3Rpb24gSmMoe2lzTURYOmV9KXtyZXR1cm4gcj0+e2xldCBuPSgwLEhjLmRlZmF1bHQpKCkudXNlKEdjLmRlZmF1bHQse2NvbW1vbm1hcms6ITAsLi4uZSYme2Jsb2NrczpbT2NdfX0pLnVzZShLYy5kZWZhdWx0KS51c2UoWWMpLnVzZShXYy5kZWZhdWx0KS51c2UoZT9NYzokYykudXNlKFZjKS51c2UoZT9VYzokYykudXNlKGpjKTtyZXR1cm4gbi5ydW4obi5wYXJzZShyKSl9fWZ1bmN0aW9uICRjKCl7fXZhciBYYz17YXN0Rm9ybWF0OlwibWRhc3RcIixoYXNQcmFnbWE6bGksbG9jU3RhcnQ6VGUsbG9jRW5kOlNlfSx4Zz17Li4uWGMscGFyc2U6SmMoe2lzTURYOiExfSl9LHlnPXsuLi5YYyxwYXJzZTpKYyh7aXNNRFg6ITB9KX07dmFyIFFjPVt7bGluZ3Vpc3RMYW5ndWFnZUlkOjIyMixuYW1lOlwiTWFya2Rvd25cIix0eXBlOlwicHJvc2VcIixjb2xvcjpcIiMwODNmYTFcIixhbGlhc2VzOltcIm1kXCIsXCJwYW5kb2NcIl0sYWNlTW9kZTpcIm1hcmtkb3duXCIsY29kZW1pcnJvck1vZGU6XCJnZm1cIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L3gtZ2ZtXCIsd3JhcDohMCxleHRlbnNpb25zOltcIi5tZFwiLFwiLmxpdmVtZFwiLFwiLm1hcmtkb3duXCIsXCIubWRvd25cIixcIi5tZHduXCIsXCIubWtkXCIsXCIubWtkblwiLFwiLm1rZG93blwiLFwiLnJvbm5cIixcIi5zY2RcIixcIi53b3JrYm9va1wiXSxmaWxlbmFtZXM6W1wiY29udGVudHMubHJcIixcIlJFQURNRVwiXSx0bVNjb3BlOlwidGV4dC5tZFwiLHBhcnNlcnM6W1wibWFya2Rvd25cIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wibWFya2Rvd25cIl19LHtsaW5ndWlzdExhbmd1YWdlSWQ6MjIyLG5hbWU6XCJNRFhcIix0eXBlOlwicHJvc2VcIixjb2xvcjpcIiMwODNmYTFcIixhbGlhc2VzOltcIm1kXCIsXCJwYW5kb2NcIl0sYWNlTW9kZTpcIm1hcmtkb3duXCIsY29kZW1pcnJvck1vZGU6XCJnZm1cIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L3gtZ2ZtXCIsd3JhcDohMCxleHRlbnNpb25zOltcIi5tZHhcIl0sZmlsZW5hbWVzOltdLHRtU2NvcGU6XCJ0ZXh0Lm1kXCIscGFyc2VyczpbXCJtZHhcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wibWR4XCJdfV07dmFyIF9uPXticmFja2V0U3BhY2luZzp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITAsZGVzY3JpcHRpb246XCJQcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIixvcHBvc2l0ZURlc2NyaXB0aW9uOlwiRG8gbm90IHByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwifSxzaW5nbGVRdW90ZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJVc2Ugc2luZ2xlIHF1b3RlcyBpbnN0ZWFkIG9mIGRvdWJsZSBxdW90ZXMuXCJ9LHByb3NlV3JhcDp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiY2hvaWNlXCIsZGVmYXVsdDpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJIb3cgdG8gd3JhcCBwcm9zZS5cIixjaG9pY2VzOlt7dmFsdWU6XCJhbHdheXNcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgaWYgaXQgZXhjZWVkcyB0aGUgcHJpbnQgd2lkdGguXCJ9LHt2YWx1ZTpcIm5ldmVyXCIsZGVzY3JpcHRpb246XCJEbyBub3Qgd3JhcCBwcm9zZS5cIn0se3ZhbHVlOlwicHJlc2VydmVcIixkZXNjcmlwdGlvbjpcIldyYXAgcHJvc2UgYXMtaXMuXCJ9XX0sYnJhY2tldFNhbWVMaW5lOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIlB1dCA+IG9mIG9wZW5pbmcgdGFncyBvbiB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2Ygb24gYSBuZXcgbGluZS5cIn0sc2luZ2xlQXR0cmlidXRlUGVyTGluZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJFbmZvcmNlIHNpbmdsZSBhdHRyaWJ1dGUgcGVyIGxpbmUgaW4gSFRNTCwgVnVlIGFuZCBKU1guXCJ9fTt2YXIga2c9e3Byb3NlV3JhcDpfbi5wcm9zZVdyYXAsc2luZ2xlUXVvdGU6X24uc2luZ2xlUXVvdGV9LFpjPWtnO3ZhciB3Zz17bWRhc3Q6VGl9O3ZhciBZRT1MbjtleHBvcnR7WUUgYXMgZGVmYXVsdCxRYyBhcyBsYW5ndWFnZXMsWmMgYXMgb3B0aW9ucyxQbiBhcyBwYXJzZXJzLHdnIGFzIHByaW50ZXJzfTtcbiIsICJ2YXIgSWU9T2JqZWN0LmNyZWF0ZTt2YXIgUTI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBOZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBWZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgUmU9T2JqZWN0LmdldFByb3RvdHlwZU9mLE9lPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFVlPSh1LGUpPT4oKT0+KGV8fHUoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyksRXU9KHUsZSk9Pntmb3IodmFyIG4gaW4gZSlRMih1LG4se2dldDplW25dLGVudW1lcmFibGU6ITB9KX0sTWU9KHUsZSxuLGkpPT57aWYoZSYmdHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpZm9yKGxldCB0IG9mIFZlKGUpKSFPZS5jYWxsKHUsdCkmJnQhPT1uJiZRMih1LHQse2dldDooKT0+ZVt0XSxlbnVtZXJhYmxlOiEoaT1OZShlLHQpKXx8aS5lbnVtZXJhYmxlfSk7cmV0dXJuIHV9O3ZhciBKZT0odSxlLG4pPT4obj11IT1udWxsP0llKFJlKHUpKTp7fSxNZShlfHwhdXx8IXUuX19lc01vZHVsZT9RMihuLFwiZGVmYXVsdFwiLHt2YWx1ZTp1LGVudW1lcmFibGU6ITB9KTpuLHUpKTt2YXIgYmU9VWUoYTI9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYTIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7YTIuZXh0cmFjdD1BMDthMi5wYXJzZT1DMDthMi5wYXJzZVdpdGhDb21tZW50cz1BZTthMi5wcmludD1QMDthMi5zdHJpcD1iMDt2YXIgZzA9L1xcKlxcLyQvLHkwPS9eXFwvXFwqXFwqPy8saGU9L15cXHMqKFxcL1xcKlxcKj8oLnxcXHI/XFxuKSo/XFwqXFwvKS8sazA9LyhefFxccyspXFwvXFwvKFteXFxyXFxuXSopL2csZ2U9L14oXFxyP1xcbikrLyxoMD0vKD86XnxcXHI/XFxuKSAqKEBbXlxcclxcbl0qPykgKlxccj9cXG4gKig/IVteQFxcclxcbl0qXFwvXFwvW15dKikoW15AXFxyXFxuXFxzXVteQFxcclxcbl0rPykgKlxccj9cXG4vZyx5ZT0vKD86XnxcXHI/XFxuKSAqQChcXFMrKSAqKFteXFxyXFxuXSopL2csRDA9LyhcXHI/XFxufF4pICpcXCogPy9nLERlPVtdO2Z1bmN0aW9uIEEwKHUpe2xldCBlPXUubWF0Y2goaGUpO3JldHVybiBlP2VbMF0udHJpbUxlZnQoKTpcIlwifWZ1bmN0aW9uIGIwKHUpe2xldCBlPXUubWF0Y2goaGUpO3JldHVybiBlJiZlWzBdP3Uuc3Vic3RyaW5nKGVbMF0ubGVuZ3RoKTp1fWZ1bmN0aW9uIEMwKHUpe3JldHVybiBBZSh1KS5wcmFnbWFzfWZ1bmN0aW9uIEFlKHUpe2xldCBlPWBcbmA7dT11LnJlcGxhY2UoeTAsXCJcIikucmVwbGFjZShnMCxcIlwiKS5yZXBsYWNlKEQwLFwiJDFcIik7bGV0IG49XCJcIjtmb3IoO24hPT11OyluPXUsdT11LnJlcGxhY2UoaDAsYCR7ZX0kMSAkMiR7ZX1gKTt1PXUucmVwbGFjZShnZSxcIlwiKS50cmltUmlnaHQoKTtsZXQgaT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9dS5yZXBsYWNlKHllLFwiXCIpLnJlcGxhY2UoZ2UsXCJcIikudHJpbVJpZ2h0KCksbztmb3IoO289eWUuZXhlYyh1KTspe2xldCBsPW9bMl0ucmVwbGFjZShrMCxcIlwiKTt0eXBlb2YgaVtvWzFdXT09XCJzdHJpbmdcInx8QXJyYXkuaXNBcnJheShpW29bMV1dKT9pW29bMV1dPURlLmNvbmNhdChpW29bMV1dLGwpOmlbb1sxXV09bH1yZXR1cm57Y29tbWVudHM6dCxwcmFnbWFzOml9fWZ1bmN0aW9uIFAwKHtjb21tZW50czp1PVwiXCIscHJhZ21hczplPXt9fSl7bGV0IG49YFxuYCxpPVwiLyoqXCIsdD1cIiAqXCIsbz1cIiAqL1wiLGw9T2JqZWN0LmtleXMoZSksZj1sLm1hcChhPT5rZShhLGVbYV0pKS5yZWR1Y2UoKGEsZyk9PmEuY29uY2F0KGcpLFtdKS5tYXAoYT0+YCR7dH0gJHthfSR7bn1gKS5qb2luKFwiXCIpO2lmKCF1KXtpZihsLmxlbmd0aD09PTApcmV0dXJuXCJcIjtpZihsLmxlbmd0aD09PTEmJiFBcnJheS5pc0FycmF5KGVbbFswXV0pKXtsZXQgYT1lW2xbMF1dO3JldHVybmAke2l9ICR7a2UobFswXSxhKVswXX0ke299YH19bGV0IGM9dS5zcGxpdChuKS5tYXAoYT0+YCR7dH0gJHthfWApLmpvaW4obikrbjtyZXR1cm4gaStuKyh1P2M6XCJcIikrKHUmJmwubGVuZ3RoP3QrbjpcIlwiKStmK299ZnVuY3Rpb24ga2UodSxlKXtyZXR1cm4gRGUuY29uY2F0KGUpLm1hcChuPT5gQCR7dX0gJHtufWAudHJpbSgpKX19KTt2YXIgUHU9e307RXUoUHUse3BhcnNlcnM6KCk9PkN1fSk7dmFyIEN1PXt9O0V1KEN1LHttZXJpeWFoOigpPT5YMH0pO3ZhciBqZT17MDpcIlVuZXhwZWN0ZWQgdG9rZW5cIiwyODpcIlVuZXhwZWN0ZWQgdG9rZW46ICclMCdcIiwxOlwiT2N0YWwgZXNjYXBlIHNlcXVlbmNlcyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGVcIiwyOlwiT2N0YWwgZXNjYXBlIHNlcXVlbmNlcyBhcmUgbm90IGFsbG93ZWQgaW4gdGVtcGxhdGUgc3RyaW5nc1wiLDM6XCJVbmV4cGVjdGVkIHRva2VuIGAjYFwiLDQ6XCJJbGxlZ2FsIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlXCIsNTpcIkludmFsaWQgY29kZSBwb2ludCAlMFwiLDY6XCJJbnZhbGlkIGhleGFkZWNpbWFsIGVzY2FwZSBzZXF1ZW5jZVwiLDg6XCJPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaWN0IG1vZGVcIiw3OlwiRGVjaW1hbCBpbnRlZ2VyIGxpdGVyYWxzIHdpdGggYSBsZWFkaW5nIHplcm8gYXJlIGZvcmJpZGRlbiBpbiBzdHJpY3QgbW9kZVwiLDk6XCJFeHBlY3RlZCBudW1iZXIgaW4gcmFkaXggJTBcIiwxNDY6XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGFzc2lnbm1lbnQgdG8gYSBkZXN0cnVjdGlibGUgcmlnaHQtaGFuZCBzaWRlXCIsMTA6XCJOb24tbnVtYmVyIGZvdW5kIGFmdGVyIGV4cG9uZW50IGluZGljYXRvclwiLDExOlwiSW52YWxpZCBCaWdJbnRMaXRlcmFsXCIsMTI6XCJObyBpZGVudGlmaWVycyBhbGxvd2VkIGRpcmVjdGx5IGFmdGVyIG51bWVyaWMgbGl0ZXJhbFwiLDEzOlwiRXNjYXBlcyBcXFxcOCBvciBcXFxcOSBhcmUgbm90IHN5bnRhY3RpY2FsbHkgdmFsaWQgZXNjYXBlc1wiLDE0OlwiVW50ZXJtaW5hdGVkIHN0cmluZyBsaXRlcmFsXCIsMTU6XCJVbnRlcm1pbmF0ZWQgdGVtcGxhdGUgbGl0ZXJhbFwiLDE2OlwiTXVsdGlsaW5lIGNvbW1lbnQgd2FzIG5vdCBjbG9zZWQgcHJvcGVybHlcIiwxNzpcIlRoZSBpZGVudGlmaWVyIGNvbnRhaW5lZCBkeW5hbWljIHVuaWNvZGUgZXNjYXBlIHRoYXQgd2FzIG5vdCBjbG9zZWRcIiwxODpcIklsbGVnYWwgY2hhcmFjdGVyICclMCdcIiwxOTpcIk1pc3NpbmcgaGV4YWRlY2ltYWwgZGlnaXRzXCIsMjA6XCJJbnZhbGlkIGltcGxpY2l0IG9jdGFsXCIsMjE6XCJJbnZhbGlkIGxpbmUgYnJlYWsgaW4gc3RyaW5nIGxpdGVyYWxcIiwyMjpcIk9ubHkgdW5pY29kZSBlc2NhcGVzIGFyZSBsZWdhbCBpbiBpZGVudGlmaWVyIG5hbWVzXCIsMjM6XCJFeHBlY3RlZCAnJTAnXCIsMjQ6XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGFzc2lnbm1lbnRcIiwyNTpcIkludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXN5bmMgYXJyb3dcIiwyNjonQ2FsbHMgdG8gc3VwZXIgbXVzdCBiZSBpbiB0aGUgXCJjb25zdHJ1Y3RvclwiIG1ldGhvZCBvZiBhIGNsYXNzIGV4cHJlc3Npb24gb3IgY2xhc3MgZGVjbGFyYXRpb24gdGhhdCBoYXMgYSBzdXBlcmNsYXNzJywyNzpcIk1lbWJlciBhY2Nlc3Mgb24gc3VwZXIgbXVzdCBiZSBpbiBhIG1ldGhvZFwiLDI5OlwiQXdhaXQgZXhwcmVzc2lvbiBub3QgYWxsb3dlZCBpbiBmb3JtYWwgcGFyYW1ldGVyXCIsMzA6XCJZaWVsZCBleHByZXNzaW9uIG5vdCBhbGxvd2VkIGluIGZvcm1hbCBwYXJhbWV0ZXJcIiw5MzpcIlVuZXhwZWN0ZWQgdG9rZW46ICdlc2NhcGVkIGtleXdvcmQnXCIsMzE6XCJVbmFyeSBleHByZXNzaW9ucyBhcyB0aGUgbGVmdCBvcGVyYW5kIG9mIGFuIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBkaXNhbWJpZ3VhdGVkIHdpdGggcGFyZW50aGVzZXNcIiwxMjA6XCJBc3luYyBmdW5jdGlvbnMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBsZXZlbCBvciBpbnNpZGUgYSBibG9ja1wiLDMyOlwiVW50ZXJtaW5hdGVkIHJlZ3VsYXIgZXhwcmVzc2lvblwiLDMzOlwiVW5leHBlY3RlZCByZWd1bGFyIGV4cHJlc3Npb24gZmxhZ1wiLDM0OlwiRHVwbGljYXRlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFnICclMCdcIiwzNTpcIiUwIGZ1bmN0aW9ucyBtdXN0IGhhdmUgZXhhY3RseSAlMSBhcmd1bWVudCUyXCIsMzY6XCJTZXR0ZXIgZnVuY3Rpb24gYXJndW1lbnQgbXVzdCBub3QgYmUgYSByZXN0IHBhcmFtZXRlclwiLDM3OlwiJTAgZGVjbGFyYXRpb24gbXVzdCBoYXZlIGEgbmFtZSBpbiB0aGlzIGNvbnRleHRcIiwzODpcIkZ1bmN0aW9uIG5hbWUgbWF5IG5vdCBjb250YWluIGFueSByZXNlcnZlZCB3b3JkcyBvciBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZVwiLDM5OlwiVGhlIHJlc3Qgb3BlcmF0b3IgaXMgbWlzc2luZyBhbiBhcmd1bWVudFwiLDQwOlwiQSBnZXR0ZXIgY2Fubm90IGJlIGEgZ2VuZXJhdG9yXCIsNDE6XCJBIHNldHRlciBjYW5ub3QgYmUgYSBnZW5lcmF0b3JcIiw0MjpcIkEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgY29sb24gb3IgcGFyZW5cIiwxMzE6XCJPYmplY3QgbGl0ZXJhbCBrZXlzIHRoYXQgYXJlIHN0cmluZ3Mgb3IgbnVtYmVycyBtdXN0IGJlIGEgbWV0aG9kIG9yIGhhdmUgYSBjb2xvblwiLDQ0OlwiRm91bmQgYCogYXN5bmMgeCgpe31gIGJ1dCB0aGlzIHNob3VsZCBiZSBgYXN5bmMgKiB4KCl7fWBcIiw0MzpcIkdldHRlcnMgYW5kIHNldHRlcnMgY2FuIG5vdCBiZSBnZW5lcmF0b3JzXCIsNDU6XCInJTAnIGNhbiBub3QgYmUgZ2VuZXJhdG9yIG1ldGhvZFwiLDQ2OlwiTm8gbGluZSBicmVhayBpcyBhbGxvd2VkIGFmdGVyICc9PidcIiw0NzpcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiB0aGUgYXJyb3cgY2FuIG9ubHkgYmUgZGVzdHJ1Y3RlZCB0aHJvdWdoIGFzc2lnbm1lbnRcIiw0ODpcIlRoZSBiaW5kaW5nIGRlY2xhcmF0aW9uIGlzIG5vdCBkZXN0cnVjdGlibGVcIiw0OTpcIkFzeW5jIGFycm93IGNhbiBub3QgYmUgZm9sbG93ZWQgYnkgbmV3IGV4cHJlc3Npb25cIiw1MDpcIkNsYXNzZXMgbWF5IG5vdCBoYXZlIGEgc3RhdGljIHByb3BlcnR5IG5hbWVkICdwcm90b3R5cGUnXCIsNTE6XCJDbGFzcyBjb25zdHJ1Y3RvciBtYXkgbm90IGJlIGEgJTBcIiw1MjpcIkR1cGxpY2F0ZSBjb25zdHJ1Y3RvciBtZXRob2QgaW4gY2xhc3NcIiw1MzpcIkludmFsaWQgaW5jcmVtZW50L2RlY3JlbWVudCBvcGVyYW5kXCIsNTQ6XCJJbnZhbGlkIHVzZSBvZiBgbmV3YCBrZXl3b3JkIG9uIGFuIGluY3JlbWVudC9kZWNyZW1lbnQgZXhwcmVzc2lvblwiLDU1OlwiYD0+YCBpcyBhbiBpbnZhbGlkIGFzc2lnbm1lbnQgdGFyZ2V0XCIsNTY6XCJSZXN0IGVsZW1lbnQgbWF5IG5vdCBoYXZlIGEgdHJhaWxpbmcgY29tbWFcIiw1NzpcIk1pc3NpbmcgaW5pdGlhbGl6ZXIgaW4gJTAgZGVjbGFyYXRpb25cIiw1ODpcIidmb3ItJTAnIGxvb3AgaGVhZCBkZWNsYXJhdGlvbnMgY2FuIG5vdCBoYXZlIGFuIGluaXRpYWxpemVyXCIsNTk6XCJJbnZhbGlkIGxlZnQtaGFuZCBzaWRlIGluIGZvci0lMCBsb29wOiBNdXN0IGhhdmUgYSBzaW5nbGUgYmluZGluZ1wiLDYwOlwiSW52YWxpZCBzaG9ydGhhbmQgcHJvcGVydHkgaW5pdGlhbGl6ZXJcIiw2MTpcIlByb3BlcnR5IG5hbWUgX19wcm90b19fIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gb2JqZWN0IGxpdGVyYWxcIiw2MjpcIkxldCBpcyBkaXNhbGxvd2VkIGFzIGEgbGV4aWNhbGx5IGJvdW5kIG5hbWVcIiw2MzpcIkludmFsaWQgdXNlIG9mICclMCcgaW5zaWRlIG5ldyBleHByZXNzaW9uXCIsNjQ6XCJJbGxlZ2FsICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgaW4gZnVuY3Rpb24gd2l0aCBub24tc2ltcGxlIHBhcmFtZXRlciBsaXN0XCIsNjU6J0lkZW50aWZpZXIgXCJsZXRcIiBkaXNhbGxvd2VkIGFzIGxlZnQtaGFuZCBzaWRlIGV4cHJlc3Npb24gaW4gc3RyaWN0IG1vZGUnLDY2OlwiSWxsZWdhbCBjb250aW51ZSBzdGF0ZW1lbnRcIiw2NzpcIklsbGVnYWwgYnJlYWsgc3RhdGVtZW50XCIsNjg6XCJDYW5ub3QgaGF2ZSBgbGV0Wy4uLl1gIGFzIGEgdmFyIG5hbWUgaW4gc3RyaWN0IG1vZGVcIiw2OTpcIkludmFsaWQgZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50IHRhcmdldFwiLDcwOlwiUmVzdCBwYXJhbWV0ZXIgbWF5IG5vdCBoYXZlIGEgZGVmYXVsdCBpbml0aWFsaXplclwiLDcxOlwiVGhlIHJlc3QgYXJndW1lbnQgbXVzdCB0aGUgYmUgbGFzdCBwYXJhbWV0ZXJcIiw3MjpcIkludmFsaWQgcmVzdCBhcmd1bWVudFwiLDc0OlwiSW4gc3RyaWN0IG1vZGUgY29kZSwgZnVuY3Rpb25zIGNhbiBvbmx5IGJlIGRlY2xhcmVkIGF0IHRvcCBsZXZlbCBvciBpbnNpZGUgYSBibG9ja1wiLDc1OlwiSW4gbm9uLXN0cmljdCBtb2RlIGNvZGUsIGZ1bmN0aW9ucyBjYW4gb25seSBiZSBkZWNsYXJlZCBhdCB0b3AgbGV2ZWwsIGluc2lkZSBhIGJsb2NrLCBvciBhcyB0aGUgYm9keSBvZiBhbiBpZiBzdGF0ZW1lbnRcIiw3NjpcIldpdGhvdXQgd2ViIGNvbXBhdGliaWxpdHkgZW5hYmxlZCBmdW5jdGlvbnMgY2FuIG5vdCBiZSBkZWNsYXJlZCBhdCB0b3AgbGV2ZWwsIGluc2lkZSBhIGJsb2NrLCBvciBhcyB0aGUgYm9keSBvZiBhbiBpZiBzdGF0ZW1lbnRcIiw3NzpcIkNsYXNzIGRlY2xhcmF0aW9uIGNhbid0IGFwcGVhciBpbiBzaW5nbGUtc3RhdGVtZW50IGNvbnRleHRcIiw3ODpcIkludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gZm9yLSUwXCIsNzk6XCJJbnZhbGlkIGFzc2lnbm1lbnQgaW4gZm9yLSUwXCIsODA6XCJmb3IgYXdhaXQgKC4uLiBvZiAuLi4pIGlzIG9ubHkgdmFsaWQgaW4gYXN5bmMgZnVuY3Rpb25zIGFuZCBhc3luYyBnZW5lcmF0b3JzXCIsODE6XCJUaGUgZmlyc3QgdG9rZW4gYWZ0ZXIgdGhlIHRlbXBsYXRlIGV4cHJlc3Npb24gc2hvdWxkIGJlIGEgY29udGludWF0aW9uIG9mIHRoZSB0ZW1wbGF0ZVwiLDgzOlwiYGxldGAgZGVjbGFyYXRpb24gbm90IGFsbG93ZWQgaGVyZSBhbmQgYGxldGAgY2Fubm90IGJlIGEgcmVndWxhciB2YXIgbmFtZSBpbiBzdHJpY3QgbW9kZVwiLDgyOlwiYGxldCBcXG4gW2AgaXMgYSByZXN0cmljdGVkIHByb2R1Y3Rpb24gYXQgdGhlIHN0YXJ0IG9mIGEgc3RhdGVtZW50XCIsODQ6XCJDYXRjaCBjbGF1c2UgcmVxdWlyZXMgZXhhY3RseSBvbmUgcGFyYW1ldGVyLCBub3QgbW9yZSAoYW5kIG5vIHRyYWlsaW5nIGNvbW1hKVwiLDg1OlwiQ2F0Y2ggY2xhdXNlIHBhcmFtZXRlciBkb2VzIG5vdCBzdXBwb3J0IGRlZmF1bHQgdmFsdWVzXCIsODY6XCJNaXNzaW5nIGNhdGNoIG9yIGZpbmFsbHkgYWZ0ZXIgdHJ5XCIsODc6XCJNb3JlIHRoYW4gb25lIGRlZmF1bHQgY2xhdXNlIGluIHN3aXRjaCBzdGF0ZW1lbnRcIiw4ODpcIklsbGVnYWwgbmV3bGluZSBhZnRlciB0aHJvd1wiLDg5OlwiU3RyaWN0IG1vZGUgY29kZSBtYXkgbm90IGluY2x1ZGUgYSB3aXRoIHN0YXRlbWVudFwiLDkwOlwiSWxsZWdhbCByZXR1cm4gc3RhdGVtZW50XCIsOTE6XCJUaGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIGZvci1oZWFkZXIgYmluZGluZyBkZWNsYXJhdGlvbiBpcyBub3QgZGVzdHJ1Y3RpYmxlXCIsOTI6XCJuZXcudGFyZ2V0IG9ubHkgYWxsb3dlZCB3aXRoaW4gZnVuY3Rpb25zXCIsOTQ6XCInIycgbm90IGZvbGxvd2VkIGJ5IGlkZW50aWZpZXJcIiwxMDA6XCJJbnZhbGlkIGtleXdvcmRcIiw5OTpcIkNhbiBub3QgdXNlICdsZXQnIGFzIGEgY2xhc3MgbmFtZVwiLDk4OlwiJ0EgbGV4aWNhbCBkZWNsYXJhdGlvbiBjYW4ndCBkZWZpbmUgYSAnbGV0JyBiaW5kaW5nXCIsOTc6XCJDYW4gbm90IHVzZSBgbGV0YCBhcyB2YXJpYWJsZSBuYW1lIGluIHN0cmljdCBtb2RlXCIsOTU6XCInJTAnIG1heSBub3QgYmUgdXNlZCBhcyBhbiBpZGVudGlmaWVyIGluIHRoaXMgY29udGV4dFwiLDk2OlwiQXdhaXQgaXMgb25seSB2YWxpZCBpbiBhc3luYyBmdW5jdGlvbnNcIiwxMDE6XCJUaGUgJTAga2V5d29yZCBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIG1vZHVsZSBnb2FsXCIsMTAyOlwiVW5pY29kZSBjb2RlcG9pbnQgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIDB4MTBGRkZGXCIsMTAzOlwiJTAgc291cmNlIG11c3QgYmUgc3RyaW5nXCIsMTA0OlwiT25seSBhIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgYWxpYXNcIiwxMDU6XCJPbmx5ICcqJyBvciAney4uLn0nIGNhbiBiZSBpbXBvcnRlZCBhZnRlciBkZWZhdWx0XCIsMTA2OlwiVHJhaWxpbmcgZGVjb3JhdG9yIG1heSBiZSBmb2xsb3dlZCBieSBtZXRob2RcIiwxMDc6XCJEZWNvcmF0b3JzIGNhbid0IGJlIHVzZWQgd2l0aCBhIGNvbnN0cnVjdG9yXCIsMTA5OlwiSFRNTCBjb21tZW50cyBhcmUgb25seSBhbGxvd2VkIHdpdGggd2ViIGNvbXBhdGliaWxpdHkgKEFubmV4IEIpXCIsMTEwOlwiVGhlIGlkZW50aWZpZXIgJ2xldCcgbXVzdCBub3QgYmUgaW4gZXhwcmVzc2lvbiBwb3NpdGlvbiBpbiBzdHJpY3QgbW9kZVwiLDExMTpcIkNhbm5vdCBhc3NpZ24gdG8gYGV2YWxgIGFuZCBgYXJndW1lbnRzYCBpbiBzdHJpY3QgbW9kZVwiLDExMjpcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhIGZvci1vZiBsb29wIG1heSBub3Qgc3RhcnQgd2l0aCAnbGV0J1wiLDExMzpcIkJsb2NrIGJvZHkgYXJyb3dzIGNhbiBub3QgYmUgaW1tZWRpYXRlbHkgaW52b2tlZCB3aXRob3V0IGEgZ3JvdXBcIiwxMTQ6XCJCbG9jayBib2R5IGFycm93cyBjYW4gbm90IGJlIGltbWVkaWF0ZWx5IGFjY2Vzc2VkIHdpdGhvdXQgYSBncm91cFwiLDExNTpcIlVuZXhwZWN0ZWQgc3RyaWN0IG1vZGUgcmVzZXJ2ZWQgd29yZFwiLDExNjpcIlVuZXhwZWN0ZWQgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGVcIiwxMTc6XCJEZWNvcmF0b3JzIG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IGEgc2VtaWNvbG9uXCIsMTE4OlwiQ2FsbGluZyBkZWxldGUgb24gZXhwcmVzc2lvbiBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZVwiLDExOTpcIlBhdHRlcm4gY2FuIG5vdCBoYXZlIGEgdGFpbFwiLDEyMTpcIkNhbiBub3QgaGF2ZSBhIGB5aWVsZGAgZXhwcmVzc2lvbiBvbiB0aGUgbGVmdCBzaWRlIG9mIGEgdGVybmFyeVwiLDEyMjpcIkFuIGFycm93IGZ1bmN0aW9uIGNhbiBub3QgaGF2ZSBhIHBvc3RmaXggdXBkYXRlIG9wZXJhdG9yXCIsMTIzOlwiSW52YWxpZCBvYmplY3QgbGl0ZXJhbCBrZXkgY2hhcmFjdGVyIGFmdGVyIGdlbmVyYXRvciBzdGFyXCIsMTI0OlwiUHJpdmF0ZSBmaWVsZHMgY2FuIG5vdCBiZSBkZWxldGVkXCIsMTI2OlwiQ2xhc3NlcyBtYXkgbm90IGhhdmUgYSBmaWVsZCBjYWxsZWQgY29uc3RydWN0b3JcIiwxMjU6XCJDbGFzc2VzIG1heSBub3QgaGF2ZSBhIHByaXZhdGUgZWxlbWVudCBuYW1lZCBjb25zdHJ1Y3RvclwiLDEyNzpcIkEgY2xhc3MgZmllbGQgaW5pdGlhbGl6ZXIgbWF5IG5vdCBjb250YWluIGFyZ3VtZW50c1wiLDEyODpcIkdlbmVyYXRvcnMgY2FuIG9ubHkgYmUgZGVjbGFyZWQgYXQgdGhlIHRvcCBsZXZlbCBvciBpbnNpZGUgYSBibG9ja1wiLDEyOTpcIkFzeW5jIG1ldGhvZHMgYXJlIGEgcmVzdHJpY3RlZCBwcm9kdWN0aW9uIGFuZCBjYW5ub3QgaGF2ZSBhIG5ld2xpbmUgZm9sbG93aW5nIGl0XCIsMTMwOlwiVW5leHBlY3RlZCBjaGFyYWN0ZXIgYWZ0ZXIgb2JqZWN0IGxpdGVyYWwgcHJvcGVydHkgbmFtZVwiLDEzMjpcIkludmFsaWQga2V5IHRva2VuXCIsMTMzOlwiTGFiZWwgJyUwJyBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkXCIsMTM0OlwiY29udGludWUgc3RhdGVtZW50IG11c3QgYmUgbmVzdGVkIHdpdGhpbiBhbiBpdGVyYXRpb24gc3RhdGVtZW50XCIsMTM1OlwiVW5kZWZpbmVkIGxhYmVsICclMCdcIiwxMzY6XCJUcmFpbGluZyBjb21tYSBpcyBkaXNhbGxvd2VkIGluc2lkZSBpbXBvcnQoLi4uKSBhcmd1bWVudHNcIiwxMzc6XCJpbXBvcnQoKSByZXF1aXJlcyBleGFjdGx5IG9uZSBhcmd1bWVudFwiLDEzODpcIkNhbm5vdCB1c2UgbmV3IHdpdGggaW1wb3J0KC4uLilcIiwxMzk6XCIuLi4gaXMgbm90IGFsbG93ZWQgaW4gaW1wb3J0KClcIiwxNDA6XCJFeHBlY3RlZCAnPT4nXCIsMTQxOlwiRHVwbGljYXRlIGJpbmRpbmcgJyUwJ1wiLDE0MjpcIkNhbm5vdCBleHBvcnQgYSBkdXBsaWNhdGUgbmFtZSAnJTAnXCIsMTQ1OlwiRHVwbGljYXRlICUwIGZvci1iaW5kaW5nXCIsMTQzOlwiRXhwb3J0ZWQgYmluZGluZyAnJTAnIG5lZWRzIHRvIHJlZmVyIHRvIGEgdG9wLWxldmVsIGRlY2xhcmVkIHZhcmlhYmxlXCIsMTQ0OlwiVW5leHBlY3RlZCBwcml2YXRlIGZpZWxkXCIsMTQ4OlwiTnVtZXJpYyBzZXBhcmF0b3JzIGFyZSBub3QgYWxsb3dlZCBhdCB0aGUgZW5kIG9mIG51bWVyaWMgbGl0ZXJhbHNcIiwxNDc6XCJPbmx5IG9uZSB1bmRlcnNjb3JlIGlzIGFsbG93ZWQgYXMgbnVtZXJpYyBzZXBhcmF0b3JcIiwxNDk6XCJKU1ggdmFsdWUgc2hvdWxkIGJlIGVpdGhlciBhbiBleHByZXNzaW9uIG9yIGEgcXVvdGVkIEpTWCB0ZXh0XCIsMTUwOlwiRXhwZWN0ZWQgY29ycmVzcG9uZGluZyBKU1ggY2xvc2luZyB0YWcgZm9yICUwXCIsMTUxOlwiQWRqYWNlbnQgSlNYIGVsZW1lbnRzIG11c3QgYmUgd3JhcHBlZCBpbiBhbiBlbmNsb3NpbmcgdGFnXCIsMTUyOlwiSlNYIGF0dHJpYnV0ZXMgbXVzdCBvbmx5IGJlIGFzc2lnbmVkIGEgbm9uLWVtcHR5ICdleHByZXNzaW9uJ1wiLDE1MzpcIiclMCcgaGFzIGFscmVhZHkgYmVlbiBkZWNsYXJlZFwiLDE1NDpcIiclMCcgc2hhZG93ZWQgYSBjYXRjaCBjbGF1c2UgYmluZGluZ1wiLDE1NTpcIkRvdCBwcm9wZXJ0eSBtdXN0IGJlIGFuIGlkZW50aWZpZXJcIiwxNTY6XCJFbmNvdW50ZXJlZCBpbnZhbGlkIGlucHV0IGFmdGVyIHNwcmVhZC9yZXN0IGFyZ3VtZW50XCIsMTU3OlwiQ2F0Y2ggd2l0aG91dCB0cnlcIiwxNTg6XCJGaW5hbGx5IHdpdGhvdXQgdHJ5XCIsMTU5OlwiRXhwZWN0ZWQgY29ycmVzcG9uZGluZyBjbG9zaW5nIHRhZyBmb3IgSlNYIGZyYWdtZW50XCIsMTYwOlwiQ29hbGVzY2luZyBhbmQgbG9naWNhbCBvcGVyYXRvcnMgdXNlZCB0b2dldGhlciBpbiB0aGUgc2FtZSBleHByZXNzaW9uIG11c3QgYmUgZGlzYW1iaWd1YXRlZCB3aXRoIHBhcmVudGhlc2VzXCIsMTYxOlwiSW52YWxpZCB0YWdnZWQgdGVtcGxhdGUgb24gb3B0aW9uYWwgY2hhaW5cIiwxNjI6XCJJbnZhbGlkIG9wdGlvbmFsIGNoYWluIGZyb20gc3VwZXIgcHJvcGVydHlcIiwxNjM6XCJJbnZhbGlkIG9wdGlvbmFsIGNoYWluIGZyb20gbmV3IGV4cHJlc3Npb25cIiwxNjQ6J0Nhbm5vdCB1c2UgXCJpbXBvcnQubWV0YVwiIG91dHNpZGUgYSBtb2R1bGUnLDE2NTpcIkxlYWRpbmcgZGVjb3JhdG9ycyBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgY2xhc3MgZGVjbGFyYXRpb25cIn0sazI9Y2xhc3MgZXh0ZW5kcyBTeW50YXhFcnJvcntjb25zdHJ1Y3RvcihlLG4saSx0LC4uLm8pe2xldCBsPVwiW1wiK24rXCI6XCIraStcIl06IFwiK2plW3RdLnJlcGxhY2UoLyUoXFxkKykvZywoZixjKT0+b1tjXSk7c3VwZXIoYCR7bH1gKSx0aGlzLmluZGV4PWUsdGhpcy5saW5lPW4sdGhpcy5jb2x1bW49aSx0aGlzLmRlc2NyaXB0aW9uPWwsdGhpcy5sb2M9e2xpbmU6bixjb2x1bW46aX19fTtmdW5jdGlvbiBkKHUsZSwuLi5uKXt0aHJvdyBuZXcgazIodS5pbmRleCx1LmxpbmUsdS5jb2x1bW4sZSwuLi5uKX1mdW5jdGlvbiBYMih1KXt0aHJvdyBuZXcgazIodS5pbmRleCx1LmxpbmUsdS5jb2x1bW4sdS50eXBlLHUucGFyYW1zKX1mdW5jdGlvbiBoMih1LGUsbixpLC4uLnQpe3Rocm93IG5ldyBrMih1LGUsbixpLC4uLnQpfWZ1bmN0aW9uIEQyKHUsZSxuLGkpe3Rocm93IG5ldyBrMih1LGUsbixpKX12YXIgRTI9KCh1LGUpPT57bGV0IG49bmV3IFVpbnQzMkFycmF5KDEwNDQ0OCksaT0wLHQ9MDtmb3IoO2k8MzU0MDspe2xldCBvPXVbaSsrXTtpZihvPDApdC09bztlbHNle2xldCBsPXVbaSsrXTtvJjImJihsPWVbbF0pLG8mMT9uLmZpbGwobCx0LHQrPXVbaSsrXSk6blt0KytdPWx9fXJldHVybiBufSkoWy0xLDIsMjQsMiwyNSwyLDUsLTEsMCw3NzU5NTY0OCwzLDQ0LDIsMywwLDE0LDIsNTcsMiw1OCwzLDAsMywwLDMxNjg3OTY2NzEsMCw0Mjk0OTU2OTkyLDIsMSwyLDAsMiw1OSwzLDAsNCwwLDQyOTQ5NjY1MjMsMywwLDQsMiwxNiwyLDYwLDIsMCwwLDQyOTQ4MzY3MzUsMCwzMjIxMjI1NDcxLDAsNDI5NDkwMTk0MiwyLDYxLDAsMTM0MTUyMTkyLDMsMCwyLDAsNDI5NDk1MTkzNSwzLDAsMiwwLDI2ODMzMDU5ODMsMCwyNjg0MzU0MDQ3LDIsMTcsMiwwLDAsNDI5NDk2MTE1MSwzLDAsMiwyLDE5LDIsMCwwLDYwODE3NDA3OSwyLDAsMiwxMzEsMiw2LDIsNTYsLTEsMiwzNywwLDQyOTQ0NDMyNjMsMiwxLDMsMCwzLDAsNDI5NDkwMTcxMSwyLDM5LDAsNDA4OTgzOTEwMywwLDI5NjEyMDk3NTksMCwxMzQyNDM5Mzc1LDAsNDI5NDU0MzM0MiwwLDM1NDcyMDEwMjMsMCwxNTc3MjA0MTAzLDAsNDE5NDI0MCwwLDQyOTQ2ODg3NTAsMiwyLDAsODA4MzEsMCw0MjYxNDc4MzUxLDAsNDI5NDU0OTQ4NiwyLDIsMCwyOTY3NDg0ODMxLDAsMTk2NTU5LDAsMzU5NDM3MzEwMCwwLDMyODgzMTk3NjgsMCw4NDY5OTU5LDIsMTk0LDIsMywwLDM4MjUyMDQ3MzUsMCwxMjM3NDc4MDcsMCw2NTQ4NywwLDQyOTQ4MjgwMTUsMCw0MDkyNTkxNjE1LDAsMTA4MDA0OTExOSwwLDQ1ODcwMywyLDMsMiwwLDAsMjE2MzI0NDUxMSwwLDQyMjc5MjM5MTksMCw0MjM2MjQ3MDIyLDIsNjYsMCw0Mjg0NDQ5OTE5LDAsODUxOTA0LDIsNCwyLDExLDAsNjcwNzYwOTUsLTEsMiw2NywwLDEwNzM3NDE3NDMsMCw0MDkzNTkxMzkxLC0xLDAsNTAzMzE2NDksMCwzMjY1MjY2Njg3LDIsMzIsMCw0Mjk0ODQ0NDE1LDAsNDI3ODE5MDA0NywyLDE4LDIsMTI5LC0xLDMsMCwyLDIsMjEsMiwwLDIsOSwyLDAsMiwxNCwyLDE1LDMsMCwxMCwyLDY5LDIsMCwyLDcwLDIsNzEsMiw3MiwyLDAsMiw3MywyLDAsMiwxMCwwLDI2MTYzMiwyLDIzLDMsMCwyLDIsMTIsMiw0LDMsMCwxOCwyLDc0LDIsNSwzLDAsMiwyLDc1LDAsMjA4ODk1OSwyLDI3LDIsOCwwLDkwOTMxMSwzLDAsMiwwLDgxNDc0MzU1MSwyLDQxLDAsNjcwNTc2NjQsMywwLDIsMiw0MCwyLDAsMiwyOCwyLDAsMiwyOSwyLDcsMCwyNjgzNzQwMTUsMiwyNiwyLDQ5LDIsMCwyLDc2LDAsMTM0MTUzMjE1LC0xLDIsNiwyLDAsMiw3LDAsMjY4NDM1NDU1OSwwLDY3MDQ0MzUxLDAsMzIyMTE2MDA2NCwwLDEsLTEsMywwLDIsMiw0MiwwLDEwNDY1MjgsMywwLDMsMiw4LDIsMCwyLDUxLDAsNDI5NDk2MDEyNywyLDksMiwzOCwyLDEwLDAsNDI5NDM3NzQ3MiwyLDExLDMsMCw3LDAsNDIyNzg1ODQzMSwzLDAsOCwyLDEyLDIsMCwyLDc4LDIsOSwyLDAsMiw3OSwyLDgwLDIsODEsLTEsMiwxMjQsMCwxMDQ4NTc3LDIsODIsMiwxMywtMSwyLDEzLDAsMTMxMDQyLDIsODMsMiw4NCwyLDg1LDIsMCwyLDMzLC04MywyLDAsMiw1MywyLDcsMywwLDQsMCwxMDQ2NTU5LDIsMCwyLDE0LDIsMCwwLDIxNDc1MTY2NzEsMiwyMCwzLDg2LDIsMiwwLC0xNiwyLDg3LDAsNTI0MjIyNDYyLDIsNCwyLDAsMCw0MjY5ODAxNDcxLDIsNCwyLDAsMiwxNSwyLDc3LDIsMTYsMywwLDIsMiw0NywyLDAsLTEsMiwxNywtMTYsMywwLDIwNiwtMiwzLDAsNjU1LDIsMTgsMywwLDM2LDIsNjgsLTEsMiwxNywyLDksMywwLDgsMiw4OSwyLDEyMSwyLDAsMCwzMjIwMjQyNDMxLDMsMCwzLDIsMTksMiw5MCwyLDkxLDMsMCwyLDIsOTIsMiwwLDIsOTMsMiw5NCwyLDAsMCw0MzUxLDIsMCwyLDgsMywwLDIsMCw2NzA0MzM5MSwwLDM5MDkwOTEzMjcsMiwwLDIsMjIsMiw4LDIsMTgsMywwLDIsMCw2NzA3NjA5NywyLDcsMiwwLDIsMjAsMCw2NzA1OTcxMSwwLDQyMzYyNDcwMzksMywwLDIsMCw5Mzk1MjQxMDMsMCw4MTkxOTk5LDIsOTcsMiw5OCwyLDE1LDIsMjEsMywwLDMsMCw2NzA1NzY2MywzLDAsMzQ5LDIsOTksMiwxMDAsMiw2LC0yNjQsMywwLDExLDIsMjIsMywwLDIsMiwzMSwtMSwwLDM3NzQzNDk0MzksMiwxMDEsMiwxMDIsMywwLDIsMiwxOSwyLDEwMywzLDAsMTAsMiw5LDIsMTcsMiwwLDIsNDUsMiwwLDIsMzAsMiwxMDQsMiwyMywwLDE2MzgzOTksMiwxNzIsMiwxMDUsMywwLDMsMiwxOCwyLDI0LDIsMjUsMiw1LDIsMjYsMiwwLDIsNywyLDEwNiwtMSwyLDEwNywyLDEwOCwyLDEwOSwtMSwzLDAsMywyLDExLC0yLDIsMCwyLDI3LC0zLDIsMTUwLC00LDIsMTgsMiwwLDIsMzUsMCwxLDIsMCwyLDYyLDIsMjgsMiwxMSwyLDksMiwwLDIsMTEwLC0xLDMsMCw0LDIsOSwyLDIxLDIsMTExLDIsNiwyLDAsMiwxMTIsMiwwLDIsNDgsLTQsMywwLDksMiwyMCwyLDI5LDIsMzAsLTQsMiwxMTMsMiwxMTQsMiwyOSwyLDIwLDIsNywtMiwyLDExNSwyLDI5LDIsMzEsLTIsMiwwLDIsMTE2LC0yLDAsNDI3NzEzNzUxOSwwLDIyNjkxMTg0NjMsLTEsMywxOCwyLC0xLDIsMzIsMiwzNiwyLDAsMywyOSwyLDIsMzQsMiwxOSwtMywzLDAsMiwyLDMzLC0xLDIsMCwyLDM0LDIsMCwyLDM0LDIsMCwyLDQ2LC0xMCwyLDAsMCwyMDM3NzUsLTIsMiwxOCwyLDQzLDIsMzUsLTIsMiwxNywyLDExNywyLDIwLDMsMCwyLDIsMzYsMCwyMTQ3NTQ5MTIwLDIsMCwyLDExLDIsMTcsMiwxMzUsMiwwLDIsMzcsMiw1MiwwLDUyNDI4NzksMywwLDIsMCw0MDI2NDQ1MTEsLTEsMiwxMjAsMCwxMDkwNTE5MDM5LC0yLDIsMTIyLDIsMzgsMiwwLDAsNjcwNDUzNzUsMiwzOSwwLDQyMjY2NzgyNzEsMCwzNzY2NTY1Mjc5LDAsMjAzOTc1OSwtNCwzLDAsMiwwLDMyODgyNzA4NDcsMCwzLDMsMCwyLDAsNjcwNDM1MTksLTUsMiwwLDAsNDI4MjM4NDM4MywwLDEwNTY5NjQ2MDksLTEsMywwLDIsMCw2NzA0MzM0NSwtMSwyLDAsMiw0MCwyLDQxLC0xLDIsMTAsMiw0MiwtNiwyLDAsMiwxMSwtMywzLDAsMiwwLDIxNDc0ODQ2NzEsMiwxMjUsMCw0MTkwMTA5Njk1LDIsNTAsLTIsMiwxMjYsMCw0MjQ0NjM1NjQ3LDAsMjcsMiwwLDIsNywyLDQzLDIsMCwyLDYzLC0xLDIsMCwyLDQwLC04LDIsNTQsMiw0NCwwLDY3MDQzMzI5LDIsMTI3LDIsNDUsMCw4Mzg4MzUxLC0yLDIsMTI4LDAsMzAyODI4NzQ4NywyLDQ2LDIsMTMwLDAsMzMyNTk1MTksMiw0MSwtOSwyLDIwLC01LDIsNjQsLTIsMywwLDI4LDIsMzEsLTMsMywwLDMsMiw0NywzLDAsNiwyLDQ4LC04NSwzLDAsMzMsMiw0NywtMTI2LDMsMCwxOCwyLDM2LC0yNjksMywwLDE3LDIsNDAsMiw3LDIsNDEsLTIsMiwxNywyLDQ5LDIsMCwyLDIwLDIsNTAsMiwxMzIsMiwyMywtMjEsMywwLDIsLTQsMywwLDIsMCw0Mjk0OTM2NTc1LDIsMCwwLDQyOTQ5MzQ3ODMsLTIsMCwxOTY2MzUsMywwLDE5MSwyLDUxLDMsMCwzOCwyLDI5LC0xLDIsMzMsLTI3OSwzLDAsOCwyLDcsLTEsMiwxMzMsMiw1MiwzLDAsMTEsMiw2LC03MiwzLDAsMywyLDEzNCwwLDE2Nzc2NTY1NzUsLTE2NiwwLDQxNjEyNjY2NTYsMCw0MDcxLDAsMTUzNjAsLTQsMCwyOCwtMTMsMywwLDIsMiwzNywyLDAsMiwxMzYsMiwxMzcsMiw1NSwyLDAsMiwxMzgsMiwxMzksMiwxNDAsMywwLDEwLDIsMTQxLDIsMTQyLDIsMTUsMywzNywyLDMsNTMsMiwzLDU0LDIsMCw0Mjk0OTU0OTk5LDIsMCwtMTYsMiwwLDIsODgsMiwwLDAsMjEwNTM0MywwLDQxNjA3NDk1ODQsMCw2NTUzNCwtNDIsMCw0MTk0MzAzODcxLDAsMjAxMSwtNiwyLDAsMCwxMDczNjg0NDc5LDAsMTc0MDcsLTExLDIsMCwyLDMxLC00MCwzLDAsNiwwLDgzMjMxMDMsLTEsMywwLDIsMiw0MiwtMzcsMiw1NSwyLDE0NCwyLDE0NSwyLDE0NiwyLDE0NywyLDE0OCwtMTA1LDIsMjQsLTMyLDMsMCwxMzM0LDIsOSwtMSwzLDAsMTI5LDIsMjcsMywwLDYsMiw5LDMsMCwxODAsMiwxNDksMywwLDIzMywwLDEsLTk2LDMsMCwxNiwyLDksLTQ3LDMsMCwxNTQsMiw1NiwtMjIzODEsMywwLDcsMiwyMywtNjEzMCwzLDUsMiwtMSwwLDY5MjA3MDQwLDMsNDQsMiwzLDAsMTQsMiw1NywyLDU4LC0zLDAsMzE2ODczMTEzNiwwLDQyOTQ5NTY4NjQsMiwxLDIsMCwyLDU5LDMsMCw0LDAsNDI5NDk2NjI3NSwzLDAsNCwyLDE2LDIsNjAsMiwwLDIsMzMsLTEsMiwxNywyLDYxLC0xLDIsMCwyLDU2LDAsNDI5NDg4NTM3NiwzLDAsMiwwLDMxNDU3MjcsMCwyNjE3Mjk0OTQ0LDAsNDI5NDc3MDY4OCwyLDIzLDIsNjIsMywwLDIsMCwxMzExMzUsMiw5NSwwLDcwMjU2NjM5LDAsNzEzMDMxNjcsMCwyNzIsMiw0MCwyLDU2LC0xLDIsMzcsMiwzMCwtMSwyLDk2LDIsNjMsMCw0Mjc4MjU1NjE2LDAsNDI5NDgzNjIyNywwLDQyOTQ1NDk0NzMsMCw2MDAxNzgxNzUsMCwyOTUyODA2NDAwLDAsMjY4NjMyMDY3LDAsNDI5NDU0MzMyOCwwLDU3NTQwMDk1LDAsMTU3NzA1ODMwNCwwLDE4MzUwMDgsMCw0Mjk0Njg4NzM2LDIsNjUsMiw2NCwwLDMzNTU0NDM1LDIsMTIzLDIsNjUsMiwxNTEsMCwxMzEwNzUsMCwzNTk0MzczMDk2LDAsNjcwOTQyOTYsMiw2NCwtMSwwLDQyOTQ4MjhlMywwLDYwMzk3OTI2MywyLDE2MCwwLDMsMCw0Mjk0ODI4MDAxLDAsNjAyOTMwNjg3LDIsMTgzLDAsMzkzMjE5LDAsNDI5NDgyODAxNiwwLDY3MTA4ODYzOSwwLDIxNTQ4NDAwNjQsMCw0MjI3ODU4NDM1LDAsNDIzNjI0NzAwOCwyLDY2LDIsMzYsLTEsMiw0LDAsOTE3NTAzLDIsMzYsLTEsMiw2NywwLDUzNzc4ODMzNSwwLDQwMjY1MzE5MzUsLTEsMCwxLC0xLDIsMzIsMiw2OCwwLDc5MzYsLTMsMiwwLDAsMjE0NzQ4NTY5NSwwLDEwMTA3NjE3MjgsMCw0MjkyOTg0OTMwLDAsMTYzODcsMiwwLDIsMTQsMiwxNSwzLDAsMTAsMiw2OSwyLDAsMiw3MCwyLDcxLDIsNzIsMiwwLDIsNzMsMiwwLDIsMTEsLTEsMiwyMywzLDAsMiwyLDEyLDIsNCwzLDAsMTgsMiw3NCwyLDUsMywwLDIsMiw3NSwwLDI1Mzk1MSwzLDE5LDIsMCwxMjI4NzksMiwwLDIsOCwwLDI3NjgyNDA2NCwtMiwzLDAsMiwyLDQwLDIsMCwwLDQyOTQ5MDMyOTUsMiwwLDIsMjksMiw3LC0xLDIsMTcsMiw0OSwyLDAsMiw3NiwyLDQxLC0xLDIsMjAsMiwwLDIsMjcsLTIsMCwxMjgsLTIsMiw3NywyLDgsMCw0MDY0LC0xLDIsMTE5LDAsNDIyNzkwNzU4NSwyLDAsMiwxMTgsMiwwLDIsNDgsMiwxNzMsMiw5LDIsMzgsMiwxMCwtMSwwLDc0NDQwMTkyLDMsMCw2LC0yLDMsMCw4LDIsMTIsMiwwLDIsNzgsMiw5LDIsMCwyLDc5LDIsODAsMiw4MSwtMywyLDgyLDIsMTMsLTMsMiw4MywyLDg0LDIsODUsMiwwLDIsMzMsLTgzLDIsMCwyLDUzLDIsNywzLDAsNCwwLDgxNzE4MywyLDAsMiwxNCwyLDAsMCwzMzAyMywyLDIwLDMsODYsMiwtMTcsMiw4NywwLDUyNDE1Nzk1MCwyLDQsMiwwLDIsODgsMiw0LDIsMCwyLDE1LDIsNzcsMiwxNiwzLDAsMiwyLDQ3LDIsMCwtMSwyLDE3LC0xNiwzLDAsMjA2LC0yLDMsMCw2NTUsMiwxOCwzLDAsMzYsMiw2OCwtMSwyLDE3LDIsOSwzLDAsOCwyLDg5LDAsMzA3MiwyLDAsMCwyMTQ3NTE2NDE1LDIsOSwzLDAsMiwyLDIzLDIsOTAsMiw5MSwzLDAsMiwyLDkyLDIsMCwyLDkzLDIsOTQsMCw0Mjk0OTY1MTc5LDAsNywyLDAsMiw4LDIsOTEsMiw4LC0xLDAsMTc2MTM0NTUzNiwyLDk1LDAsNDI5NDkwMTgyMywyLDM2LDIsMTgsMiw5NiwyLDM0LDIsMTY2LDAsMjA4MDQ0MDI4NywyLDAsMiwzMywyLDE0MywwLDMyOTY3MjI5NDMsMiwwLDAsMTA0NjY3NTQ1NSwwLDkzOTUyNDEwMSwwLDE4MzcwNTUsMiw5NywyLDk4LDIsMTUsMiwyMSwzLDAsMywwLDcsMywwLDM0OSwyLDk5LDIsMTAwLDIsNiwtMjY0LDMsMCwxMSwyLDIyLDMsMCwyLDIsMzEsLTEsMCwyNzAwNjA3NjE1LDIsMTAxLDIsMTAyLDMsMCwyLDIsMTksMiwxMDMsMywwLDEwLDIsOSwyLDE3LDIsMCwyLDQ1LDIsMCwyLDMwLDIsMTA0LC0zLDIsMTA1LDMsMCwzLDIsMTgsLTEsMyw1LDIsMiwyNiwyLDAsMiw3LDIsMTA2LC0xLDIsMTA3LDIsMTA4LDIsMTA5LC0xLDMsMCwzLDIsMTEsLTIsMiwwLDIsMjcsLTgsMiwxOCwyLDAsMiwzNSwtMSwyLDAsMiw2MiwyLDI4LDIsMjksMiw5LDIsMCwyLDExMCwtMSwzLDAsNCwyLDksMiwxNywyLDExMSwyLDYsMiwwLDIsMTEyLDIsMCwyLDQ4LC00LDMsMCw5LDIsMjAsMiwyOSwyLDMwLC00LDIsMTEzLDIsMTE0LDIsMjksMiwyMCwyLDcsLTIsMiwxMTUsMiwyOSwyLDMxLC0yLDIsMCwyLDExNiwtMiwwLDQyNzcwNzU5NjksMiwyOSwtMSwzLDE4LDIsLTEsMiwzMiwyLDExNywyLDAsMywyOSwyLDIsMzQsMiwxOSwtMywzLDAsMiwyLDMzLC0xLDIsMCwyLDM0LDIsMCwyLDM0LDIsMCwyLDQ4LC0xMCwyLDAsMCwxOTc2MzEsLTIsMiwxOCwyLDQzLDIsMTE4LC0yLDIsMTcsMiwxMTcsMiwyMCwyLDExOSwyLDUxLC0yLDIsMTE5LDIsMjMsMiwxNywyLDMzLDIsMTE5LDIsMzYsMCw0Mjk0OTAxOTA0LDAsNDcxODU5MSwyLDExOSwyLDM0LDAsMzM1NTQ0MzUwLC0xLDIsMTIwLDIsMTIxLC0yLDIsMTIyLDIsMzgsMiw3LC0xLDIsMTIzLDIsNjUsMCwzNzU4MTYxOTIwLDAsMywtNCwyLDAsMiwyNywwLDIxNDc0ODU1NjgsMCwzLDIsMCwyLDIzLDAsMTc2LC01LDIsMCwyLDQ3LDIsMTg2LC0xLDIsMCwyLDIzLDIsMTk3LC0xLDIsMCwwLDE2Nzc5MjYzLC0yLDIsMTEsLTcsMiwwLDIsMTIxLC0zLDMsMCwyLDIsMTI0LDIsMTI1LDAsMjE0NzU0OTE4MywwLDIsLTIsMiwxMjYsMiwzNSwwLDEwLDAsNDI5NDk2NTI0OSwwLDY3NjMzMTUxLDAsNDAyNjU5NzM3NiwyLDAsMCw1MzY4NzE5MzUsLTEsMiwwLDIsNDAsLTgsMiw1NCwyLDQ3LDAsMSwyLDEyNywyLDIzLC0zLDIsMTI4LDIsMzUsMiwxMjksMiwxMzAsMCwxNjc3ODIzOSwtMTAsMiwzNCwtNSwyLDY0LC0yLDMsMCwyOCwyLDMxLC0zLDMsMCwzLDIsNDcsMywwLDYsMiw0OCwtODUsMywwLDMzLDIsNDcsLTEyNiwzLDAsMTgsMiwzNiwtMjY5LDMsMCwxNywyLDQwLDIsNywtMywyLDE3LDIsMTMxLDIsMCwyLDIzLDIsNDgsMiwxMzIsMiwyMywtMjEsMywwLDIsLTQsMywwLDIsMCw2NzU4MywtMSwyLDEwMywtMiwwLDExLDMsMCwxOTEsMiw1MSwzLDAsMzgsMiwyOSwtMSwyLDMzLC0yNzksMywwLDgsMiw3LC0xLDIsMTMzLDIsNTIsMywwLDExLDIsNiwtNzIsMywwLDMsMiwxMzQsMiwxMzUsLTE4NywzLDAsMiwyLDM3LDIsMCwyLDEzNiwyLDEzNywyLDU1LDIsMCwyLDEzOCwyLDEzOSwyLDE0MCwzLDAsMTAsMiwxNDEsMiwxNDIsMiwxNSwzLDM3LDIsMyw1MywyLDMsNTQsMiwyLDE0MywtNzMsMiwwLDAsMTA2NTM2MTQwNywwLDE2Mzg0LC0xMSwyLDAsMiwxMjEsLTQwLDMsMCw2LDIsMTE3LC0xLDMsMCwyLDAsMjA2MywtMzcsMiw1NSwyLDE0NCwyLDE0NSwyLDE0NiwyLDE0NywyLDE0OCwtMTM4LDMsMCwxMzM0LDIsOSwtMSwzLDAsMTI5LDIsMjcsMywwLDYsMiw5LDMsMCwxODAsMiwxNDksMywwLDIzMywwLDEsLTk2LDMsMCwxNiwyLDksLTQ3LDMsMCwxNTQsMiw1NiwtMjg1MTcsMiwwLDAsMSwtMSwyLDEyNCwyLDAsMCw4MTkzLC0yMSwyLDE5MywwLDEwMjU1LDAsNCwtMTEsMiw2NCwyLDE3MSwtMSwwLDcxNjgwLC0xLDIsMTYxLDAsNDI5MjkwMDg2NCwwLDgwNTMwNjQzMSwtNSwyLDE1MCwtMSwyLDE1NywtMSwwLDYxNDQsLTIsMiwxMjcsLTEsMiwxNTQsLTEsMCwyMTQ3NTMyODAwLDIsMTUxLDIsMTY1LDIsMCwyLDE2NCwwLDUyNDAzMiwwLDQsLTQsMiwxOTAsMCwyMDUxMjgxOTIsMCwxMzMzNzU3NTM2LDAsMjE0NzQ4MzY5NiwwLDQyMzk1MywwLDc0Nzc2NjI3MiwwLDI3MTc3NjMxOTIsMCw0Mjg2NTc4NzUxLDAsMjc4NTQ1LDIsMTUyLDAsNDI5NDg4NjQ2NCwwLDMzMjkyMzM2LDAsNDE3ODA5LDIsMTUyLDAsMTMyNzQ4MjQ2NCwwLDQyNzgxOTAxMjgsMCw3MDA1OTQxOTUsMCwxMDA2NjQ3NTI3LDAsNDI4NjQ5NzMzNiwwLDQxNjA3NDk2MzEsMiwxNTMsMCw0Njk3NjI1NjAsMCw0MTcxMjE5NDg4LDAsODMyMzEyMCwyLDE1MywwLDIwMjM3NTY4MCwwLDMyMTQ5MTgxNzYsMCw0Mjk0NTA4NTkyLDIsMTUzLC0xLDAsOTgzNTg0LDAsNDgsMCw1ODcyMDI3MywwLDM0ODk5MjMwNzIsMCwxMDUxNzM3NiwwLDQyOTMwNjY4MTUsMCwxLDAsMjAxMzI2NTkyMCwyLDE3NywyLDAsMCwyMDg5LDAsMzIyMTIyNTU1MiwwLDIwMTM3NTkwNCwyLDAsLTIsMCwyNTYsMCwxMjI4ODAsMCwxNjc3NzIxNiwyLDE1MCwwLDQxNjA3NTc3NjAsMiwwLC02LDIsMTY3LC0xMSwwLDMyNjMyMTgxNzYsLTEsMCw0OTY2NCwwLDIxNjAxOTc2MzIsMCw4Mzg4ODAyLC0xLDAsMTI3MTM5ODQsLTEsMiwxNTQsMiwxNTksMiwxNzgsLTIsMiwxNjIsLTIwLDAsMzc1ODA5NjM4NSwtMiwyLDE1NSwwLDQyOTI4NzgzMzYsMiw5MCwyLDE2OSwwLDQyOTQwNTc5ODQsLTIsMiwxNjMsMiwxNTYsMiwxNzUsLTIsMiwxNTUsLTEsMiwxODIsLTEsMiwxNzAsMiwxMjQsMCw0MDI2NTkzMjgwLDAsMTQsMCw0MjkyOTE5Mjk2LC0xLDIsMTU4LDAsOTM5NTg4NjA4LC0xLDAsODA1MzA2MzY4LC0xLDIsMTI0LDAsMTYxMDYxMjczNiwyLDE1NiwyLDE1NywyLDQsMiwwLC0yLDIsMTU4LDIsMTU5LC0zLDAsMjY3Mzg2ODgwLC0xLDIsMTYwLDAsNzE2OCwtMSwwLDY1MDI0LDIsMTU0LDIsMTYxLDIsMTc5LC03LDIsMTY4LC04LDIsMTYyLC0xLDAsMTQyNjExMjcwNCwyLDE2MywtMSwyLDE2NCwwLDI3MTU4MTIxNiwwLDIxNDk3Nzc0MDgsMiwyMywyLDE2MSwyLDEyNCwwLDg1MTk2NywyLDE4MCwtMSwyLDIzLDIsMTgxLC00LDIsMTU4LC0yMCwyLDE5NSwyLDE2NSwtNTYsMCwzMTQ1NzI4LDIsMTg1LC00LDIsMTY2LDIsMTI0LC00LDAsMzI1MDU4NTYsLTEsMiwxNjcsLTEsMCwyMTQ3Mzg1MDg4LDIsOTAsMSwyMTU1OTA1MTUyLDIsLTMsMiwxMDMsMiwwLDIsMTY4LC0yLDIsMTY5LC02LDIsMTcwLDAsNDAyNjU5NzM3NSwwLDEsLTEsMCwxLC0xLDIsMTcxLC0zLDIsMTE3LDIsNjQsLTIsMiwxNjYsLTIsMiwxNzYsMiwxMjQsLTg3OCwyLDE1OSwtMzYsMiwxNzIsLTEsMiwyMDEsLTEwLDIsMTg4LC01LDIsMTc0LC02LDAsNDI5NDk2NTI1MSwyLDI3LC0xLDIsMTczLC0xLDIsMTc0LC0yLDAsNDIyNzg3NDc1MiwtMywwLDIxNDY0MzUwNzIsMiwxNTksLTIsMCwxMDA2NjQ5MzQ0LDIsMTI0LC0xLDIsOTAsMCwyMDEzNzU3NDQsLTMsMCwxMzQyMTc3MjAsMiw5MCwwLDQyODY2NzczNzcsMCwzMjg5NiwtMSwyLDE1OCwtMywyLDE3NSwtMzQ5LDIsMTc2LDAsMTkyMCwyLDE3NywzLDAsMjY0LC0xMSwyLDE1NywtMiwyLDE3OCwyLDAsMCw1MjA2MTc4NTYsMCwyNjkyNzQzMTY4LDAsMzYsLTMsMCw1MjQyODQsLTExLDIsMjMsLTEsMiwxODcsLTEsMiwxODQsMCwzMjIxMjkxMDA3LDIsMTc4LC0xLDIsMjAyLDAsMjE1ODcyMCwtMywyLDE1OSwwLDEsLTQsMiwxMjQsMCwzODA4NjI1NDExLDAsMzQ4OTYyODI4OCwyLDIwMCwwLDEyMDc5NTk2ODAsMCwzMjIxMjc0NjI0LDIsMCwtMywyLDE3OSwwLDEyMCwwLDczNDAwMzIsLTIsMiwxODAsMiw0LDIsMjMsMiwxNjMsMywwLDQsMiwxNTksLTEsMiwxODEsMiwxNzcsLTEsMCw4MTc2LDIsMTgyLDIsMTc5LDIsMTgzLC0xLDAsNDI5MDc3MzIzMiwyLDAsLTQsMiwxNjMsMiwxODksMCwxNTcyODY0MCwyLDE3NywtMSwyLDE2MSwtMSwwLDQyOTQ5MzQ1MTIsMywwLDQsLTksMiw5MCwyLDE3MCwyLDE4NCwzLDAsNCwwLDcwNCwwLDE4NDk2ODgwNjQsMiwxODUsLTEsMiwxMjQsMCw0Mjk0OTAxODg3LDIsMCwwLDEzMDU0NzcxMiwwLDE4NzkwNDgxOTIsMiwxOTksMywwLDIsLTEsMiwxODYsMiwxODcsLTEsMCwxNzgyOTc3NiwwLDIwMjU4NDg4MzIsMCw0MjYxNDc3ODg4LC0yLDIsMCwtMSwwLDQyODY1ODA2MDgsLTEsMCwyOTM2MDEyOCwyLDE5MiwwLDE2MjUyOTI4LDAsMzc5MTM4ODY3MiwyLDM4LDMsMCwyLC0yLDIsMTk2LDIsMCwtMSwyLDEwMywtMSwwLDY2NTg0NTc2LC0xLDIsMTkxLDMsMCw5LDIsMTI0LC0xLDAsNDI5NDc1NTMyOCwzLDAsMiwtMSwyLDE2MSwyLDE3OCwzLDAsMiwyLDIzLDIsMTg4LDIsOTAsLTIsMCwyNDU3NjAsMCwyMTQ3NDE4MTEyLC0xLDIsMTUwLDIsMjAzLDAsNDIyNzkyMzQ1NiwtMSwyLDE2NCwyLDE2MSwyLDkwLC0zLDAsNDI5Mjg3MDE0NSwwLDI2MjE0NCwyLDEyNCwzLDAsMiwwLDEwNzM3NTg4NDgsMiwxODksLTEsMCw0MjI3OTIxOTIwLDIsMTkwLDAsNjgyODkwMjQsMCw1Mjg0MDIwMTYsMCw0MjkyOTI3NTM2LDMsMCw0LC0yLDAsMjY4NDM1NDU2LDIsOTEsLTIsMiwxOTEsMywwLDUsLTEsMiwxOTIsMiwxNjMsMiwwLC0yLDAsNDIyNzkyMzkzNiwyLDYyLC0xLDIsMTU1LDIsOTUsMiwwLDIsMTU0LDIsMTU4LDMsMCw2LC0xLDIsMTc3LDMsMCwzLC0yLDAsMjE0Njk1OTM2MCwwLDk0NDA2NDAsMCwxMDQ4NTc2MDAsMCw0MjI3OTIzODQwLDMsMCwyLDAsNzY4LDIsMTkzLDIsNzcsLTIsMiwxNjEsLTIsMiwxMTksLTEsMiwxNTUsMywwLDgsMCw1MTIsMCw4Mzg4NjA4LDIsMTk0LDIsMTcyLDIsMTg3LDAsNDI4NjU3ODk0NCwzLDAsMiwwLDExNTIsMCwxMjY2Njc5ODA4LDIsMTkxLDAsNTc2LDAsNDI2MTcwNzc3NiwyLDk1LDMsMCw5LDIsMTU1LDMsMCw1LDIsMTYsLTEsMCwyMTQ3MjIxNTA0LC0yOCwyLDE3OCwzLDAsMywtMywwLDQyOTI5MDI5MTIsLTYsMiw5NiwzLDAsODUsLTMzLDAsNDI5NDkzNDUyOCwzLDAsMTI2LC0xOCwyLDE5NSwzLDAsMjY5LC0xNywyLDE1NSwyLDEyNCwyLDE5OCwzLDAsMiwyLDIzLDAsNDI5MDgyMjE0NCwtMiwwLDY3MTc0MzM2LDAsNTIwMDkzNzAwLDIsMTcsMywwLDIxLC0yLDIsMTc5LDMsMCwzLC0yLDAsMzA3MjAsLTEsMCwzMjUxMiwzLDAsMiwwLDQyOTQ3NzA2NTYsLTE5MSwyLDE3NCwtMzgsMiwxNzAsMiwwLDIsMTk2LDMsMCwyNzksLTgsMiwxMjQsMiwwLDAsNDI5NDUwODU0MywwLDY1Mjk1LC0xMSwyLDE3NywzLDAsNzIsLTMsMCwzNzU4MTU5ODcyLDAsMjAxMzkxNjE2LDMsMCwxNTUsLTcsMiwxNzAsLTEsMCwzODQsLTEsMCwxMzM2OTM0NDAsLTMsMiwxOTYsLTIsMiwyNiwzLDAsNCwyLDE2OSwtMiwyLDkwLDIsMTU1LDMsMCw0LC0yLDIsMTY0LC0xLDIsMTUwLDAsMzM1NTUyOTIzLDIsMTk3LC0xLDAsNTM4OTc0MjcyLDAsMjIxNDU5MjUxMiwwLDEzMmUzLC0xMCwwLDE5MiwtOCwwLDEyMjg4LC0yMSwwLDEzNDIxMzYzMiwwLDQyOTQ5MDE3NjEsMywwLDQyLDAsMTAwNjYzNDI0LDAsNDI5NDk2NTI4NCwzLDAsNiwtMSwwLDMyMjEyODI4MTYsMiwxOTgsMywwLDExLC0xLDIsMTk5LDMsMCw0MCwtNiwwLDQyODY1Nzg3ODQsMiwwLC0yLDAsMTAwNjY5NDQwMCwzLDAsMjQsMiwzNSwtMSwyLDk0LDMsMCwyLDAsMSwyLDE2MywzLDAsNiwyLDE5NywwLDQxMTA5NDI1NjksMCwxNDMyOTUwMTM5LDAsMjcwMTY1ODIxNywwLDQwMjY1MzI4NjQsMCw0MDI2NTMyODgxLDIsMCwyLDQ1LDMsMCw4LC0xLDIsMTU4LC0yLDIsMTY5LDAsOTgzMDQsMCw2NTUzNywyLDE3MCwtNSwwLDQyOTQ5NTA5MTIsMiwwLDIsMTE4LDAsNjU1MjgsMiwxNzcsMCw0Mjk0NzcwMTc2LDIsMjYsMywwLDQsLTMwLDIsMTc0LDAsMzc1ODE1MzcyOCwtMywyLDE2OSwtMiwyLDE1NSwyLDE4OCwyLDE1OCwtMSwyLDE5MSwtMSwyLDE2MSwwLDQyOTQ3NTQzMDQsMywwLDIsLTMsMCwzMzU1NDQzMiwtMiwyLDIwMCwtMywyLDE2OSwwLDQxNzU0Nzg3ODQsMiwyMDEsMCw0Mjg2NjQzNzEyLDAsNDI4NjY0NDIxNiwyLDAsLTQsMiwyMDIsLTEsMiwxNjUsMCw0MjI3OTIzOTY3LDMsMCwzMiwtMTMzNCwyLDE2MywyLDAsLTEyOSwyLDk0LC02LDIsMTYzLC0xODAsMiwyMDMsLTIzMywyLDQsMywwLDk2LC0xNiwyLDE2MywzLDAsNDcsLTE1NCwyLDE2NSwzLDAsMjIzODEsLTcsMiwxNywzLDAsNjEyOF0sWzQyOTQ5NjcyOTUsNDI5NDk2NzI5MSw0MDkyNDYwNTQzLDQyOTQ4MjgwMzEsNDI5NDk2NzI5NCwxMzQyMTc3MjYsMjY4NDM1NDU1LDIxNDc0ODM2NDcsMTA0ODU3NSwxMDczNzQxODIzLDM4OTIzMTQxMTEsMTM0MjE3NzI3LDEwNjExNTg5MTEsNTM2ODA1Mzc2LDQyOTQ5MTAxNDMsNDE2MDc0OTU2Nyw0Mjk0OTAxNzU5LDQyOTQ5MDE3NjAsNTM2ODcwOTExLDI2MjE0Myw4Mzg4NjA3LDQyOTQ5MDI3ODMsNDI5NDkxODE0Myw2NTUzNSw2NzA0MzMyOCwyMjgxNzAxMzc0LDQyOTQ5NjcyMzIsMjA5NzE1MSw0Mjk0OTAzODA3LDQxOTQzMDMsMjU1LDY3MTA4ODYzLDQyOTQ5NjcwMzksNTExLDUyNDI4NywxMzEwNzEsMTI3LDQyOTI4NzAxNDMsNDI5NDkwMjI3MSw0Mjk0NTQ5NDg3LDMzNTU0NDMxLDEwMjMsNjcwNDc0MjMsNDI5NDkwMTg4OCw0Mjg2NTc4Njg3LDQyOTQ3NzA2ODcsNjcwNDM1ODMsMzI3NjcsMTUsMjA0Nzk5OSw2NzA0MzM0MywxNjc3NzIxNSw0Mjk0OTAyZTMsNDI5NDkzNDUyNyw0Mjk0OTY2NzgzLDQyOTQ5NjcyNzksMjA0NywyNjIwODMsMjA1MTEsNDI5MDc3Mjk5MSw0MTk0MzAzOSw0OTM1NjcsNDI5NDk1OTEwNCw2MDM5Nzk3NzUsNjU1MzYsNjAyNzk5NjE1LDgwNTA0NDIyMyw0Mjk0OTY1MjA2LDgxOTEsMTAzMTc0OTExOSw0Mjk0OTE3NjMxLDIxMzQ3Njk2NjMsNDI4NjU3ODQ5Myw0MjgyMjUzMzExLDQyOTQ5NDI3MTksMzM1NDAwOTUsNDI5NDkwNTg1NSw0Mjk0OTY3MjY0LDI4Njg4NTQ1OTEsMTYwODUxNTU4MywyNjUyMzIzNDgsNTM0NTE5ODA3LDIxNDc2MTQ3MjAsMTA2MDEwOTQ0NCw0MDkzNjQwMDE2LDE3Mzc2LDIxMzkwNjIxNDMsMjI0LDQxNjkxMzgxNzUsNDI5NDkwOTk1MSw0Mjg2NTc4Njg4LDQyOTQ5NjcyOTIsNDI5NDk2NTc1OSwyMDQ0LDQyOTI4NzAxNDQsNDI5NDk2NjI3Miw0Mjk0OTY3MjgwLDgyODk5MTgsNDI5NDkzNDM5OSw0Mjk0OTAxNzc1LDQyOTQ5NjUzNzUsMTYwMjIyMzYxNSw0Mjk0OTY3MjU5LDQyOTQ0NDMwMDgsMjY4MzY5OTIwLDQyOTI4MDQ2MDgsNDg2MzQxODg0LDQyOTQ5NjMxOTksMzA4NzAwNzYxNSwxMDczNjkyNjcxLDQxMjg1MjcsNDI3OTIzODY1NSw0Mjk0OTAyMDE1LDQyOTQ5NjY1OTEsMjQ0NTI3OTIzMSwzNjcwMDE1LDMyMzgwMDI2ODcsMzEsNjMsNDI5NDk2NzI4OCw0Mjk0NzA1MTUxLDQwOTUsMzIyMTIwODQ0Nyw0Mjk0NTQ5NDcyLDIxNDc0ODM2NDgsNDI4NTUyNjY1NSw0Mjk0OTY2NTI3LDQyOTQ3MDUxNTIsNDI5NDk2NjE0Myw2NCw0Mjk0OTY2NzE5LDE2MzgzLDM3NzQ4NzM1OTIsNDU4NzUyLDUzNjgwNzQyMyw2NzA0MzgzOSwzNzU4MDk2MzgzLDM5NTk0MTQzNzIsMzc1NTk5MzAyMywyMDgwMzc0NzgzLDQyOTQ4MzUyOTUsNDI5NDk2NzEwMyw0MTYwNzQ5NTY1LDQwODcsMTg0MDI0NzI2LDI4NjIwMTcxNTYsMTU5MzMwOTA3OCwyNjg0MzQ0MzEsMjY4NDM0NDE0LDQyOTQ5MDE3NjMsNTM2ODcwOTEyLDI5NTI3OTAwMTYsMjAyNTA2NzUyLDEzOTI2NCw0MDI2NTMxODQsNDI2MTQxMjg2NCw0MjI3OTIyOTQ0LDQ5MTUyLDYxNDQwLDM3NTgwOTYzODQsMTE3NDQwNTEyLDY1MjgwLDMyMzM4MDgzODQsMzIyMTIyNTQ3MiwyMDk3MTUyLDQyOTQ5NjUyNDgsMzI3NjgsNTcxNTIsNjcxMDg4NjQsNDI5MzkxODcyMCw0MjkwNzcyOTkyLDI1MTY1ODI0LDU3MzQ0LDQyMjc5MTU3NzYsNDI3ODE5MDA4MCw0MjI3OTA3NTg0LDY1NTIwLDQwMjY1MzE4NDAsNDIyNzg1ODQzMiw0MTYwNzQ5NTY4LDM3NTgxMjkxNTIsNDI5NDgzNjIyNCw2MzQ4OCwxMDczNzQxODI0LDQyOTQ5NjcwNDAsNDE5NDMwNCwyNTE2NTgyNDAsMTk2NjA4LDQyOTQ5NjMyMDAsNjQ1MTIsNDE3ODA4LDQyMjc5MjM3MTIsMTI1ODI5MTIsNTAzMzE2NDgsNjU0NzIsNDI5NDk2NzE2OCw0Mjk0OTY2Nzg0LDE2LDQyOTQ5MTcxMjAsMjA4MDM3NDc4NCw0MDk2LDY1NDA4LDUyNDI4OCw2NTUzMl0pO2Z1bmN0aW9uIGgodSl7cmV0dXJuIHUuY29sdW1uKyssdS5jdXJyZW50Q2hhcj11LnNvdXJjZS5jaGFyQ29kZUF0KCsrdS5pbmRleCl9ZnVuY3Rpb24gWGUodSxlKXtpZigoZSY2NDUxMikhPT01NTI5NilyZXR1cm4gMDtsZXQgbj11LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgrMSk7cmV0dXJuKG4mNjQ1MTIpIT09NTYzMjA/MDooZT11LmN1cnJlbnRDaGFyPTY1NTM2KygoZSYxMDIzKTw8MTApKyhuJjEwMjMpLEUyWyhlPj4+NSkrMF0+Pj5lJjMxJjF8fGQodSwxOCxHKGUpKSx1LmluZGV4KyssdS5jb2x1bW4rKywxKX1mdW5jdGlvbiB1dSh1LGUpe3UuY3VycmVudENoYXI9dS5zb3VyY2UuY2hhckNvZGVBdCgrK3UuaW5kZXgpLHUuZmxhZ3N8PTEsZSY0fHwodS5jb2x1bW49MCx1LmxpbmUrKyl9ZnVuY3Rpb24gYzIodSl7dS5mbGFnc3w9MSx1LmN1cnJlbnRDaGFyPXUuc291cmNlLmNoYXJDb2RlQXQoKyt1LmluZGV4KSx1LmNvbHVtbj0wLHUubGluZSsrfWZ1bmN0aW9uIHplKHUpe3JldHVybiB1PT09MTYwfHx1PT09NjUyNzl8fHU9PT0xMzN8fHU9PT01NzYwfHx1Pj04MTkyJiZ1PD04MjAzfHx1PT09ODIzOXx8dT09PTgyODd8fHU9PT0xMjI4OHx8dT09PTgyMDF8fHU9PT02NTUxOX1mdW5jdGlvbiBHKHUpe3JldHVybiB1PD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKHUpOlN0cmluZy5mcm9tQ2hhckNvZGUodT4+PjEwKStTdHJpbmcuZnJvbUNoYXJDb2RlKHUmMTAyMyl9ZnVuY3Rpb24gSCh1KXtyZXR1cm4gdTw2NT91LTQ4OnUtNjUrMTAmMTV9ZnVuY3Rpb24gSGUodSl7c3dpdGNoKHUpe2Nhc2UgMTM0MjgzMjY2OnJldHVyblwiTnVtZXJpY0xpdGVyYWxcIjtjYXNlIDEzNDI4MzI2NzpyZXR1cm5cIlN0cmluZ0xpdGVyYWxcIjtjYXNlIDg2MDIxOmNhc2UgODYwMjI6cmV0dXJuXCJCb29sZWFuTGl0ZXJhbFwiO2Nhc2UgODYwMjM6cmV0dXJuXCJOdWxsTGl0ZXJhbFwiO2Nhc2UgNjU1NDA6cmV0dXJuXCJSZWd1bGFyRXhwcmVzc2lvblwiO2Nhc2UgNjcxNzQ0MDg6Y2FzZSA2NzE3NDQwOTpjYXNlIDEzMjpyZXR1cm5cIlRlbXBsYXRlTGl0ZXJhbFwiO2RlZmF1bHQ6cmV0dXJuKHUmMTQzMzYwKT09PTE0MzM2MD9cIklkZW50aWZpZXJcIjoodSY0MDk2KT09PTQwOTY/XCJLZXl3b3JkXCI6XCJQdW5jdHVhdG9yXCJ9fXZhciBMPVswLDAsMCwwLDAsMCwwLDAsMCwwLDEwMzIsMCwwLDIwNTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgxOTIsMCwzLDAsMCw4MTkyLDAsMCwwLDI1NiwwLDMzMDI0LDAsMCwyNDIsMjQyLDExNCwxMTQsMTE0LDExNCwxMTQsMTE0LDU5NCw1OTQsMCwwLDE2Mzg0LDAsMCwwLDAsNjcsNjcsNjcsNjcsNjcsNjcsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDAsMSwwLDAsNDA5OSwwLDcxLDcxLDcxLDcxLDcxLDcxLDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNyw3LDcsNywxNjM4NCwwLDAsMCwwXSxLZT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCwwLDEsMCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMCwwLDAsMCwwXSxJdT1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwwLDAsMCwwLDEsMCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMCwwLDAsMCwwXTtmdW5jdGlvbiBaMih1KXtyZXR1cm4gdTw9MTI3P0tlW3VdOkUyWyh1Pj4+NSkrMzQ4MTZdPj4+dSYzMSYxfWZ1bmN0aW9uIE8yKHUpe3JldHVybiB1PD0xMjc/SXVbdV06RTJbKHU+Pj41KSswXT4+PnUmMzEmMXx8dT09PTgyMDR8fHU9PT04MjA1fXZhciBOdT1bXCJTaW5nbGVMaW5lXCIsXCJNdWx0aUxpbmVcIixcIkhUTUxPcGVuXCIsXCJIVE1MQ2xvc2VcIixcIkhhc2hiYW5nQ29tbWVudFwiXTtmdW5jdGlvbiAkZSh1KXtsZXQgZT11LnNvdXJjZTt1LmN1cnJlbnRDaGFyPT09MzUmJmUuY2hhckNvZGVBdCh1LmluZGV4KzEpPT09MzMmJihoKHUpLGgodSksZXUodSxlLDAsNCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpfWZ1bmN0aW9uIHd1KHUsZSxuLGksdCxvLGwsZil7cmV0dXJuIGkmMjA0OCYmZCh1LDApLGV1KHUsZSxuLHQsbyxsLGYpfWZ1bmN0aW9uIGV1KHUsZSxuLGksdCxvLGwpe2xldHtpbmRleDpmfT11O2Zvcih1LnRva2VuUG9zPXUuaW5kZXgsdS5saW5lUG9zPXUubGluZSx1LmNvbFBvcz11LmNvbHVtbjt1LmluZGV4PHUuZW5kOyl7aWYoTFt1LmN1cnJlbnRDaGFyXSY4KXtsZXQgYz11LmN1cnJlbnRDaGFyPT09MTM7YzIodSksYyYmdS5pbmRleDx1LmVuZCYmdS5jdXJyZW50Q2hhcj09PTEwJiYodS5jdXJyZW50Q2hhcj1lLmNoYXJDb2RlQXQoKyt1LmluZGV4KSk7YnJlYWt9ZWxzZSBpZigodS5jdXJyZW50Q2hhcl44MjMyKTw9MSl7YzIodSk7YnJlYWt9aCh1KSx1LnRva2VuUG9zPXUuaW5kZXgsdS5saW5lUG9zPXUubGluZSx1LmNvbFBvcz11LmNvbHVtbn1pZih1Lm9uQ29tbWVudCl7bGV0IGM9e3N0YXJ0OntsaW5lOm8sY29sdW1uOmx9LGVuZDp7bGluZTp1LmxpbmVQb3MsY29sdW1uOnUuY29sUG9zfX07dS5vbkNvbW1lbnQoTnVbaSYyNTVdLGUuc2xpY2UoZix1LnRva2VuUG9zKSx0LHUudG9rZW5Qb3MsYyl9cmV0dXJuIG58MX1mdW5jdGlvbiBXZSh1LGUsbil7bGV0e2luZGV4Oml9PXU7Zm9yKDt1LmluZGV4PHUuZW5kOylpZih1LmN1cnJlbnRDaGFyPDQzKXtsZXQgdD0hMTtmb3IoO3UuY3VycmVudENoYXI9PT00MjspaWYodHx8KG4mPS01LHQ9ITApLGgodSk9PT00Nyl7aWYoaCh1KSx1Lm9uQ29tbWVudCl7bGV0IG89e3N0YXJ0OntsaW5lOnUubGluZVBvcyxjb2x1bW46dS5jb2xQb3N9LGVuZDp7bGluZTp1LmxpbmUsY29sdW1uOnUuY29sdW1ufX07dS5vbkNvbW1lbnQoTnVbMV0sZS5zbGljZShpLHUuaW5kZXgtMiksaS0yLHUuaW5kZXgsbyl9cmV0dXJuIHUudG9rZW5Qb3M9dS5pbmRleCx1LmxpbmVQb3M9dS5saW5lLHUuY29sUG9zPXUuY29sdW1uLG59aWYodCljb250aW51ZTtMW3UuY3VycmVudENoYXJdJjg/dS5jdXJyZW50Q2hhcj09PTEzPyhufD01LGMyKHUpKToodXUodSxuKSxuPW4mLTV8MSk6aCh1KX1lbHNlKHUuY3VycmVudENoYXJeODIzMik8PTE/KG49biYtNXwxLGMyKHUpKToobiY9LTUsaCh1KSk7ZCh1LDE2KX1mdW5jdGlvbiBfZSh1LGUpe2xldCBuPXUuaW5kZXgsaT0wO3U6Zm9yKDs7KXtsZXQgZz11LmN1cnJlbnRDaGFyO2lmKGgodSksaSYxKWkmPS0yO2Vsc2Ugc3dpdGNoKGcpe2Nhc2UgNDc6aWYoaSlicmVhazticmVhayB1O2Nhc2UgOTI6aXw9MTticmVhaztjYXNlIDkxOml8PTI7YnJlYWs7Y2FzZSA5MzppJj0xO2JyZWFrO2Nhc2UgMTM6Y2FzZSAxMDpjYXNlIDgyMzI6Y2FzZSA4MjMzOmQodSwzMil9aWYodS5pbmRleD49dS5zb3VyY2UubGVuZ3RoKXJldHVybiBkKHUsMzIpfWxldCB0PXUuaW5kZXgtMSxvPTAsbD11LmN1cnJlbnRDaGFyLHtpbmRleDpmfT11O2Zvcig7TzIobCk7KXtzd2l0Y2gobCl7Y2FzZSAxMDM6byYyJiZkKHUsMzQsXCJnXCIpLG98PTI7YnJlYWs7Y2FzZSAxMDU6byYxJiZkKHUsMzQsXCJpXCIpLG98PTE7YnJlYWs7Y2FzZSAxMDk6byY0JiZkKHUsMzQsXCJtXCIpLG98PTQ7YnJlYWs7Y2FzZSAxMTc6byYxNiYmZCh1LDM0LFwidVwiKSxvfD0xNjticmVhaztjYXNlIDEyMTpvJjgmJmQodSwzNCxcInlcIiksb3w9ODticmVhaztjYXNlIDExNTpvJjMyJiZkKHUsMzQsXCJzXCIpLG98PTMyO2JyZWFrO2Nhc2UgMTAwOm8mNjQmJmQodSwzNCxcImRcIiksb3w9NjQ7YnJlYWs7ZGVmYXVsdDpkKHUsMzMpfWw9aCh1KX1sZXQgYz11LnNvdXJjZS5zbGljZShmLHUuaW5kZXgpLGE9dS5zb3VyY2Uuc2xpY2Uobix0KTtyZXR1cm4gdS50b2tlblJlZ0V4cD17cGF0dGVybjphLGZsYWdzOmN9LGUmNTEyJiYodS50b2tlblJhdz11LnNvdXJjZS5zbGljZSh1LnRva2VuUG9zLHUuaW5kZXgpKSx1LnRva2VuVmFsdWU9WWUodSxhLGMpLDY1NTQwfWZ1bmN0aW9uIFllKHUsZSxuKXt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZSxuKX1jYXRjaHt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZSxuLnJlcGxhY2UoXCJkXCIsXCJcIikpLG51bGx9Y2F0Y2h7ZCh1LDMyKX19fWZ1bmN0aW9uIFFlKHUsZSxuKXtsZXR7aW5kZXg6aX09dSx0PVwiXCIsbz1oKHUpLGw9dS5pbmRleDtmb3IoOyEoTFtvXSY4KTspe2lmKG89PT1uKXJldHVybiB0Kz11LnNvdXJjZS5zbGljZShsLHUuaW5kZXgpLGgodSksZSY1MTImJih1LnRva2VuUmF3PXUuc291cmNlLnNsaWNlKGksdS5pbmRleCkpLHUudG9rZW5WYWx1ZT10LDEzNDI4MzI2NztpZigobyY4KT09PTgmJm89PT05Mil7aWYodCs9dS5zb3VyY2Uuc2xpY2UobCx1LmluZGV4KSxvPWgodSksbzwxMjd8fG89PT04MjMyfHxvPT09ODIzMyl7bGV0IGY9VnUodSxlLG8pO2Y+PTA/dCs9RyhmKTpSdSh1LGYsMCl9ZWxzZSB0Kz1HKG8pO2w9dS5pbmRleCsxfXUuaW5kZXg+PXUuZW5kJiZkKHUsMTQpLG89aCh1KX1kKHUsMTQpfWZ1bmN0aW9uIFZ1KHUsZSxuKXtzd2l0Y2gobil7Y2FzZSA5ODpyZXR1cm4gODtjYXNlIDEwMjpyZXR1cm4gMTI7Y2FzZSAxMTQ6cmV0dXJuIDEzO2Nhc2UgMTEwOnJldHVybiAxMDtjYXNlIDExNjpyZXR1cm4gOTtjYXNlIDExODpyZXR1cm4gMTE7Y2FzZSAxMzppZih1LmluZGV4PHUuZW5kKXtsZXQgaT11LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgrMSk7aT09PTEwJiYodS5pbmRleD11LmluZGV4KzEsdS5jdXJyZW50Q2hhcj1pKX1jYXNlIDEwOmNhc2UgODIzMjpjYXNlIDgyMzM6cmV0dXJuIHUuY29sdW1uPS0xLHUubGluZSsrLC0xO2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6e2xldCBpPW4tNDgsdD11LmluZGV4KzEsbz11LmNvbHVtbisxO2lmKHQ8dS5lbmQpe2xldCBsPXUuc291cmNlLmNoYXJDb2RlQXQodCk7aWYoTFtsXSYzMil7aWYoZSYxMDI0KXJldHVybi0yO2lmKHUuY3VycmVudENoYXI9bCxpPWk8PDN8bC00OCx0KyssbysrLHQ8dS5lbmQpe2xldCBmPXUuc291cmNlLmNoYXJDb2RlQXQodCk7TFtmXSYzMiYmKHUuY3VycmVudENoYXI9ZixpPWk8PDN8Zi00OCx0KyssbysrKX11LmZsYWdzfD02NCx1LmluZGV4PXQtMSx1LmNvbHVtbj1vLTF9ZWxzZSBpZigoaSE9PTB8fExbbF0mNTEyKSYmZSYxMDI0KXJldHVybi0yfXJldHVybiBpfWNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6e2lmKGUmMTAyNClyZXR1cm4tMjtsZXQgaT1uLTQ4LHQ9dS5pbmRleCsxLG89dS5jb2x1bW4rMTtpZih0PHUuZW5kKXtsZXQgbD11LnNvdXJjZS5jaGFyQ29kZUF0KHQpO0xbbF0mMzImJihpPWk8PDN8bC00OCx1LmN1cnJlbnRDaGFyPWwsdS5pbmRleD10LHUuY29sdW1uPW8pfXJldHVybiB1LmZsYWdzfD02NCxpfWNhc2UgMTIwOntsZXQgaT1oKHUpO2lmKCEoTFtpXSY2NCkpcmV0dXJuLTQ7bGV0IHQ9SChpKSxvPWgodSk7aWYoIShMW29dJjY0KSlyZXR1cm4tNDtsZXQgbD1IKG8pO3JldHVybiB0PDw0fGx9Y2FzZSAxMTc6e2xldCBpPWgodSk7aWYodS5jdXJyZW50Q2hhcj09PTEyMyl7bGV0IHQ9MDtmb3IoO0xbaCh1KV0mNjQ7KWlmKHQ9dDw8NHxIKHUuY3VycmVudENoYXIpLHQ+MTExNDExMSlyZXR1cm4tNTtyZXR1cm4gdS5jdXJyZW50Q2hhcjwxfHx1LmN1cnJlbnRDaGFyIT09MTI1Py00OnR9ZWxzZXtpZighKExbaV0mNjQpKXJldHVybi00O2xldCB0PXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCsxKTtpZighKExbdF0mNjQpKXJldHVybi00O2xldCBvPXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCsyKTtpZighKExbb10mNjQpKXJldHVybi00O2xldCBsPXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCszKTtyZXR1cm4gTFtsXSY2ND8odS5pbmRleCs9Myx1LmNvbHVtbis9Myx1LmN1cnJlbnRDaGFyPXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCksSChpKTw8MTJ8SCh0KTw8OHxIKG8pPDw0fEgobCkpOi00fX1jYXNlIDU2OmNhc2UgNTc6aWYoIShlJjI1NikpcmV0dXJuLTM7ZGVmYXVsdDpyZXR1cm4gbn19ZnVuY3Rpb24gUnUodSxlLG4pe3N3aXRjaChlKXtjYXNlLTE6cmV0dXJuO2Nhc2UtMjpkKHUsbj8yOjEpO2Nhc2UtMzpkKHUsMTMpO2Nhc2UtNDpkKHUsNik7Y2FzZS01OmQodSwxMDIpfX1mdW5jdGlvbiBPdSh1LGUpe2xldHtpbmRleDpufT11LGk9NjcxNzQ0MDksdD1cIlwiLG89aCh1KTtmb3IoO28hPT05Njspe2lmKG89PT0zNiYmdS5zb3VyY2UuY2hhckNvZGVBdCh1LmluZGV4KzEpPT09MTIzKXtoKHUpLGk9NjcxNzQ0MDg7YnJlYWt9ZWxzZSBpZigobyY4KT09PTgmJm89PT05MilpZihvPWgodSksbz4xMjYpdCs9RyhvKTtlbHNle2xldCBsPVZ1KHUsZXwxMDI0LG8pO2lmKGw+PTApdCs9RyhsKTtlbHNlIGlmKGwhPT0tMSYmZSY2NTUzNil7dD12b2lkIDAsbz1aZSh1LG8pLG88MCYmKGk9NjcxNzQ0MDgpO2JyZWFrfWVsc2UgUnUodSxsLDEpfWVsc2UgdS5pbmRleDx1LmVuZCYmbz09PTEzJiZ1LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgpPT09MTAmJih0Kz1HKG8pLHUuY3VycmVudENoYXI9dS5zb3VyY2UuY2hhckNvZGVBdCgrK3UuaW5kZXgpKSwoKG8mODMpPDMmJm89PT0xMHx8KG9eODIzMik8PTEpJiYodS5jb2x1bW49LTEsdS5saW5lKyspLHQrPUcobyk7dS5pbmRleD49dS5lbmQmJmQodSwxNSksbz1oKHUpfXJldHVybiBoKHUpLHUudG9rZW5WYWx1ZT10LHUudG9rZW5SYXc9dS5zb3VyY2Uuc2xpY2UobisxLHUuaW5kZXgtKGk9PT02NzE3NDQwOT8xOjIpKSxpfWZ1bmN0aW9uIFplKHUsZSl7Zm9yKDtlIT09OTY7KXtzd2l0Y2goZSl7Y2FzZSAzNjp7bGV0IG49dS5pbmRleCsxO2lmKG48dS5lbmQmJnUuc291cmNlLmNoYXJDb2RlQXQobik9PT0xMjMpcmV0dXJuIHUuaW5kZXg9bix1LmNvbHVtbisrLC1lO2JyZWFrfWNhc2UgMTA6Y2FzZSA4MjMyOmNhc2UgODIzMzp1LmNvbHVtbj0tMSx1LmxpbmUrK311LmluZGV4Pj11LmVuZCYmZCh1LDE1KSxlPWgodSl9cmV0dXJuIGV9ZnVuY3Rpb24gcmUodSxlKXtyZXR1cm4gdS5pbmRleD49dS5lbmQmJmQodSwwKSx1LmluZGV4LS0sdS5jb2x1bW4tLSxPdSh1LGUpfWZ1bmN0aW9uIFN1KHUsZSxuKXtsZXQgaT11LmN1cnJlbnRDaGFyLHQ9MCxvPTksbD1uJjY0PzA6MSxmPTAsYz0wO2lmKG4mNjQpdD1cIi5cIitMMih1LGkpLGk9dS5jdXJyZW50Q2hhcixpPT09MTEwJiZkKHUsMTEpO2Vsc2V7aWYoaT09PTQ4KWlmKGk9aCh1KSwoaXwzMik9PT0xMjApe2ZvcihuPTEzNixpPWgodSk7TFtpXSY0MTYwOyl7aWYoaT09PTk1KXtjfHxkKHUsMTQ3KSxjPTAsaT1oKHUpO2NvbnRpbnVlfWM9MSx0PXQqMTYrSChpKSxmKyssaT1oKHUpfShmPT09MHx8IWMpJiZkKHUsZj09PTA/MTk6MTQ4KX1lbHNlIGlmKChpfDMyKT09PTExMSl7Zm9yKG49MTMyLGk9aCh1KTtMW2ldJjQxMjg7KXtpZihpPT09OTUpe2N8fGQodSwxNDcpLGM9MCxpPWgodSk7Y29udGludWV9Yz0xLHQ9dCo4KyhpLTQ4KSxmKyssaT1oKHUpfShmPT09MHx8IWMpJiZkKHUsZj09PTA/MDoxNDgpfWVsc2UgaWYoKGl8MzIpPT09OTgpe2ZvcihuPTEzMCxpPWgodSk7TFtpXSY0MjI0Oyl7aWYoaT09PTk1KXtjfHxkKHUsMTQ3KSxjPTAsaT1oKHUpO2NvbnRpbnVlfWM9MSx0PXQqMisoaS00OCksZisrLGk9aCh1KX0oZj09PTB8fCFjKSYmZCh1LGY9PT0wPzA6MTQ4KX1lbHNlIGlmKExbaV0mMzIpZm9yKGUmMTAyNCYmZCh1LDEpLG49MTtMW2ldJjE2Oyl7aWYoTFtpXSY1MTIpe249MzIsbD0wO2JyZWFrfXQ9dCo4KyhpLTQ4KSxpPWgodSl9ZWxzZSBMW2ldJjUxMj8oZSYxMDI0JiZkKHUsMSksdS5mbGFnc3w9NjQsbj0zMik6aT09PTk1JiZkKHUsMCk7aWYobiY0OCl7aWYobCl7Zm9yKDtvPj0wJiZMW2ldJjQxMTI7KXtpZihpPT09OTUpe2k9aCh1KSwoaT09PTk1fHxuJjMyKSYmRDIodS5pbmRleCx1LmxpbmUsdS5pbmRleCsxLDE0NyksYz0xO2NvbnRpbnVlfWM9MCx0PTEwKnQrKGktNDgpLGk9aCh1KSwtLW99aWYoYyYmRDIodS5pbmRleCx1LmxpbmUsdS5pbmRleCsxLDE0OCksbz49MCYmIVoyKGkpJiZpIT09NDYpcmV0dXJuIHUudG9rZW5WYWx1ZT10LGUmNTEyJiYodS50b2tlblJhdz11LnNvdXJjZS5zbGljZSh1LnRva2VuUG9zLHUuaW5kZXgpKSwxMzQyODMyNjZ9dCs9TDIodSxpKSxpPXUuY3VycmVudENoYXIsaT09PTQ2JiYoaCh1KT09PTk1JiZkKHUsMCksbj02NCx0Kz1cIi5cIitMMih1LHUuY3VycmVudENoYXIpLGk9dS5jdXJyZW50Q2hhcil9fWxldCBhPXUuaW5kZXgsZz0wO2lmKGk9PT0xMTAmJm4mMTI4KWc9MSxpPWgodSk7ZWxzZSBpZigoaXwzMik9PT0xMDEpe2k9aCh1KSxMW2ldJjI1NiYmKGk9aCh1KSk7bGV0e2luZGV4Om19PXU7TFtpXSYxNnx8ZCh1LDEwKSx0Kz11LnNvdXJjZS5zdWJzdHJpbmcoYSxtKStMMih1LGkpLGk9dS5jdXJyZW50Q2hhcn1yZXR1cm4odS5pbmRleDx1LmVuZCYmTFtpXSYxNnx8WjIoaSkpJiZkKHUsMTIpLGc/KHUudG9rZW5SYXc9dS5zb3VyY2Uuc2xpY2UodS50b2tlblBvcyx1LmluZGV4KSx1LnRva2VuVmFsdWU9QmlnSW50KHQpLDEzNDI4MzM4OSk6KHUudG9rZW5WYWx1ZT1uJjE1P3Q6biYzMj9wYXJzZUZsb2F0KHUuc291cmNlLnN1YnN0cmluZyh1LnRva2VuUG9zLHUuaW5kZXgpKTordCxlJjUxMiYmKHUudG9rZW5SYXc9dS5zb3VyY2Uuc2xpY2UodS50b2tlblBvcyx1LmluZGV4KSksMTM0MjgzMjY2KX1mdW5jdGlvbiBMMih1LGUpe2xldCBuPTAsaT11LmluZGV4LHQ9XCJcIjtmb3IoO0xbZV0mNDExMjspe2lmKGU9PT05NSl7bGV0e2luZGV4Om99PXU7ZT1oKHUpLGU9PT05NSYmRDIodS5pbmRleCx1LmxpbmUsdS5pbmRleCsxLDE0Nyksbj0xLHQrPXUuc291cmNlLnN1YnN0cmluZyhpLG8pLGk9dS5pbmRleDtjb250aW51ZX1uPTAsZT1oKHUpfXJldHVybiBuJiZEMih1LmluZGV4LHUubGluZSx1LmluZGV4KzEsMTQ4KSx0K3Uuc291cmNlLnN1YnN0cmluZyhpLHUuaW5kZXgpfXZhciBVPVtcImVuZCBvZiBzb3VyY2VcIixcImlkZW50aWZpZXJcIixcIm51bWJlclwiLFwic3RyaW5nXCIsXCJyZWd1bGFyIGV4cHJlc3Npb25cIixcImZhbHNlXCIsXCJ0cnVlXCIsXCJudWxsXCIsXCJ0ZW1wbGF0ZSBjb250aW51YXRpb25cIixcInRlbXBsYXRlIHRhaWxcIixcIj0+XCIsXCIoXCIsXCJ7XCIsXCIuXCIsXCIuLi5cIixcIn1cIixcIilcIixcIjtcIixcIixcIixcIltcIixcIl1cIixcIjpcIixcIj9cIixcIidcIiwnXCInLFwiPC9cIixcIi8+XCIsXCIrK1wiLFwiLS1cIixcIj1cIixcIjw8PVwiLFwiPj49XCIsXCI+Pj49XCIsXCIqKj1cIixcIis9XCIsXCItPVwiLFwiKj1cIixcIi89XCIsXCIlPVwiLFwiXj1cIixcInw9XCIsXCImPVwiLFwifHw9XCIsXCImJj1cIixcIj8/PVwiLFwidHlwZW9mXCIsXCJkZWxldGVcIixcInZvaWRcIixcIiFcIixcIn5cIixcIitcIixcIi1cIixcImluXCIsXCJpbnN0YW5jZW9mXCIsXCIqXCIsXCIlXCIsXCIvXCIsXCIqKlwiLFwiJiZcIixcInx8XCIsXCI9PT1cIixcIiE9PVwiLFwiPT1cIixcIiE9XCIsXCI8PVwiLFwiPj1cIixcIjxcIixcIj5cIixcIjw8XCIsXCI+PlwiLFwiPj4+XCIsXCImXCIsXCJ8XCIsXCJeXCIsXCJ2YXJcIixcImxldFwiLFwiY29uc3RcIixcImJyZWFrXCIsXCJjYXNlXCIsXCJjYXRjaFwiLFwiY2xhc3NcIixcImNvbnRpbnVlXCIsXCJkZWJ1Z2dlclwiLFwiZGVmYXVsdFwiLFwiZG9cIixcImVsc2VcIixcImV4cG9ydFwiLFwiZXh0ZW5kc1wiLFwiZmluYWxseVwiLFwiZm9yXCIsXCJmdW5jdGlvblwiLFwiaWZcIixcImltcG9ydFwiLFwibmV3XCIsXCJyZXR1cm5cIixcInN1cGVyXCIsXCJzd2l0Y2hcIixcInRoaXNcIixcInRocm93XCIsXCJ0cnlcIixcIndoaWxlXCIsXCJ3aXRoXCIsXCJpbXBsZW1lbnRzXCIsXCJpbnRlcmZhY2VcIixcInBhY2thZ2VcIixcInByaXZhdGVcIixcInByb3RlY3RlZFwiLFwicHVibGljXCIsXCJzdGF0aWNcIixcInlpZWxkXCIsXCJhc1wiLFwiYXN5bmNcIixcImF3YWl0XCIsXCJjb25zdHJ1Y3RvclwiLFwiZ2V0XCIsXCJzZXRcIixcImZyb21cIixcIm9mXCIsXCJlbnVtXCIsXCJldmFsXCIsXCJhcmd1bWVudHNcIixcImVzY2FwZWQga2V5d29yZFwiLFwiZXNjYXBlZCBmdXR1cmUgcmVzZXJ2ZWQga2V5d29yZFwiLFwicmVzZXJ2ZWQgaWYgc3RyaWN0XCIsXCIjXCIsXCJCaWdJbnRMaXRlcmFsXCIsXCI/P1wiLFwiPy5cIixcIldoaXRlU3BhY2VcIixcIklsbGVnYWxcIixcIkxpbmVUZXJtaW5hdG9yXCIsXCJQcml2YXRlRmllbGRcIixcIlRlbXBsYXRlXCIsXCJAXCIsXCJ0YXJnZXRcIixcIm1ldGFcIixcIkxpbmVGZWVkXCIsXCJFc2NhcGVkXCIsXCJKU1hUZXh0XCJdLFV1PU9iamVjdC5jcmVhdGUobnVsbCx7dGhpczp7dmFsdWU6ODYxMTN9LGZ1bmN0aW9uOnt2YWx1ZTo4NjEwNn0saWY6e3ZhbHVlOjIwNTcxfSxyZXR1cm46e3ZhbHVlOjIwNTc0fSx2YXI6e3ZhbHVlOjg2MDkwfSxlbHNlOnt2YWx1ZToyMDU2NX0sZm9yOnt2YWx1ZToyMDU2OX0sbmV3Ont2YWx1ZTo4NjEwOX0saW46e3ZhbHVlOjg3Mzg4Njh9LHR5cGVvZjp7dmFsdWU6MTY4NjMyNzd9LHdoaWxlOnt2YWx1ZToyMDU4MH0sY2FzZTp7dmFsdWU6MjA1NTh9LGJyZWFrOnt2YWx1ZToyMDU1N30sdHJ5Ont2YWx1ZToyMDU3OX0sY2F0Y2g6e3ZhbHVlOjIwNTU5fSxkZWxldGU6e3ZhbHVlOjE2ODYzMjc4fSx0aHJvdzp7dmFsdWU6ODYxMTR9LHN3aXRjaDp7dmFsdWU6ODYxMTJ9LGNvbnRpbnVlOnt2YWx1ZToyMDU2MX0sZGVmYXVsdDp7dmFsdWU6MjA1NjN9LGluc3RhbmNlb2Y6e3ZhbHVlOjg0NzY3MjV9LGRvOnt2YWx1ZToyMDU2NH0sdm9pZDp7dmFsdWU6MTY4NjMyNzl9LGZpbmFsbHk6e3ZhbHVlOjIwNTY4fSxhc3luYzp7dmFsdWU6MjA5MDA3fSxhd2FpdDp7dmFsdWU6MjA5MDA4fSxjbGFzczp7dmFsdWU6ODYwOTZ9LGNvbnN0Ont2YWx1ZTo4NjA5Mn0sY29uc3RydWN0b3I6e3ZhbHVlOjEyNDAxfSxkZWJ1Z2dlcjp7dmFsdWU6MjA1NjJ9LGV4cG9ydDp7dmFsdWU6MjA1NjZ9LGV4dGVuZHM6e3ZhbHVlOjIwNTY3fSxmYWxzZTp7dmFsdWU6ODYwMjF9LGZyb206e3ZhbHVlOjEyNDA0fSxnZXQ6e3ZhbHVlOjEyNDAyfSxpbXBsZW1lbnRzOnt2YWx1ZTozNjk2Nn0saW1wb3J0Ont2YWx1ZTo4NjEwOH0saW50ZXJmYWNlOnt2YWx1ZTozNjk2N30sbGV0Ont2YWx1ZToyNDE3Mzl9LG51bGw6e3ZhbHVlOjg2MDIzfSxvZjp7dmFsdWU6Mjc0NTQ5fSxwYWNrYWdlOnt2YWx1ZTozNjk2OH0scHJpdmF0ZTp7dmFsdWU6MzY5Njl9LHByb3RlY3RlZDp7dmFsdWU6MzY5NzB9LHB1YmxpYzp7dmFsdWU6MzY5NzF9LHNldDp7dmFsdWU6MTI0MDN9LHN0YXRpYzp7dmFsdWU6MzY5NzJ9LHN1cGVyOnt2YWx1ZTo4NjExMX0sdHJ1ZTp7dmFsdWU6ODYwMjJ9LHdpdGg6e3ZhbHVlOjIwNTgxfSx5aWVsZDp7dmFsdWU6MjQxNzczfSxlbnVtOnt2YWx1ZTo4NjEzNH0sZXZhbDp7dmFsdWU6NTM3MDc5OTI3fSxhczp7dmFsdWU6Nzc5MzR9LGFyZ3VtZW50czp7dmFsdWU6NTM3MDc5OTI4fSx0YXJnZXQ6e3ZhbHVlOjE0MzQ5NH0sbWV0YTp7dmFsdWU6MTQzNDk1fX0pO2Z1bmN0aW9uIEJ1KHUsZSxuKXtmb3IoO0l1W2godSldOyk7cmV0dXJuIHUudG9rZW5WYWx1ZT11LnNvdXJjZS5zbGljZSh1LnRva2VuUG9zLHUuaW5kZXgpLHUuY3VycmVudENoYXIhPT05MiYmdS5jdXJyZW50Q2hhcjw9MTI2P1V1W3UudG9rZW5WYWx1ZV18fDIwODg5NzpudSh1LGUsMCxuKX1mdW5jdGlvbiBHZSh1LGUpe2xldCBuPU11KHUpO3JldHVybiBPMihuKXx8ZCh1LDQpLHUudG9rZW5WYWx1ZT1HKG4pLG51KHUsZSwxLExbbl0mNCl9ZnVuY3Rpb24gbnUodSxlLG4saSl7bGV0IHQ9dS5pbmRleDtmb3IoO3UuaW5kZXg8dS5lbmQ7KWlmKHUuY3VycmVudENoYXI9PT05Mil7dS50b2tlblZhbHVlKz11LnNvdXJjZS5zbGljZSh0LHUuaW5kZXgpLG49MTtsZXQgbD1NdSh1KTtPMihsKXx8ZCh1LDQpLGk9aSYmTFtsXSY0LHUudG9rZW5WYWx1ZSs9RyhsKSx0PXUuaW5kZXh9ZWxzZSBpZihPMih1LmN1cnJlbnRDaGFyKXx8WGUodSx1LmN1cnJlbnRDaGFyKSloKHUpO2Vsc2UgYnJlYWs7dS5pbmRleDw9dS5lbmQmJih1LnRva2VuVmFsdWUrPXUuc291cmNlLnNsaWNlKHQsdS5pbmRleCkpO2xldCBvPXUudG9rZW5WYWx1ZS5sZW5ndGg7aWYoaSYmbz49MiYmbzw9MTEpe2xldCBsPVV1W3UudG9rZW5WYWx1ZV07cmV0dXJuIGw9PT12b2lkIDA/MjA4ODk3Om4/bD09PTIwOTAwOD9lJjQxOTYzNTI/MTIxOmw6ZSYxMDI0P2w9PT0zNjk3Mnx8KGwmMzY4NjQpPT09MzY4NjQ/MTIyOihsJjIwNDgwKT09PTIwNDgwP2UmMTA3Mzc0MTgyNCYmIShlJjgxOTIpP2w6MTIxOjE0MzQ4MzplJjEwNzM3NDE4MjQmJiEoZSY4MTkyKSYmKGwmMjA0ODApPT09MjA0ODA/bDpsPT09MjQxNzczP2UmMTA3Mzc0MTgyND8xNDM0ODM6ZSYyMDk3MTUyPzEyMTpsOmw9PT0yMDkwMDc/MTQzNDgzOihsJjM2ODY0KT09PTM2ODY0P2w6MTIxOmx9cmV0dXJuIDIwODg5N31mdW5jdGlvbiB4ZSh1KXtyZXR1cm4gWjIoaCh1KSl8fGQodSw5NCksMTMxfWZ1bmN0aW9uIE11KHUpe3JldHVybiB1LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgrMSkhPT0xMTcmJmQodSw0KSx1LmN1cnJlbnRDaGFyPXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCs9MikscGUodSl9ZnVuY3Rpb24gcGUodSl7bGV0IGU9MCxuPXUuY3VycmVudENoYXI7aWYobj09PTEyMyl7bGV0IGw9dS5pbmRleC0yO2Zvcig7TFtoKHUpXSY2NDspZT1lPDw0fEgodS5jdXJyZW50Q2hhciksZT4xMTE0MTExJiZEMihsLHUubGluZSx1LmluZGV4KzEsMTAyKTtyZXR1cm4gdS5jdXJyZW50Q2hhciE9PTEyNSYmRDIobCx1LmxpbmUsdS5pbmRleC0xLDYpLGgodSksZX1MW25dJjY0fHxkKHUsNik7bGV0IGk9dS5zb3VyY2UuY2hhckNvZGVBdCh1LmluZGV4KzEpO0xbaV0mNjR8fGQodSw2KTtsZXQgdD11LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgrMik7TFt0XSY2NHx8ZCh1LDYpO2xldCBvPXUuc291cmNlLmNoYXJDb2RlQXQodS5pbmRleCszKTtyZXR1cm4gTFtvXSY2NHx8ZCh1LDYpLGU9SChuKTw8MTJ8SChpKTw8OHxIKHQpPDw0fEgobyksdS5jdXJyZW50Q2hhcj11LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgrPTQpLGV9dmFyIEp1PVsxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjgsMTM2LDEyOCwxMjgsMTMwLDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOSwxMjksMTI5LDEyOCwxNjg0MjgwMCwxMzQyODMyNjcsMTMxLDIwODg5Nyw4NDU3MDE1LDg0NTU3NTEsMTM0MjgzMjY3LDY3MTc0NDExLDE2LDg0NTcwMTQsMjUyMzM5NzAsMTgsMjUyMzM5NzEsNjcxMDg4NzcsODQ1NzAxNiwxMzQyODMyNjYsMTM0MjgzMjY2LDEzNDI4MzI2NiwxMzQyODMyNjYsMTM0MjgzMjY2LDEzNDI4MzI2NiwxMzQyODMyNjYsMTM0MjgzMjY2LDEzNDI4MzI2NiwxMzQyODMyNjYsMjEsMTA3NDc5MDQxNyw4NDU2MjU4LDEwNzc5MzYxNTcsODQ1NjI1OSwyMiwxMzMsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5NywyMDg4OTcsMjA4ODk3LDIwODg5Nyw2OTI3MTU3MSwxMzcsMjAsODQ1NTQ5NywyMDg4OTcsMTMyLDQwOTYsNDA5Niw0MDk2LDQwOTYsNDA5Niw0MDk2LDQwOTYsMjA4ODk3LDQwOTYsMjA4ODk3LDIwODg5Nyw0MDk2LDIwODg5Nyw0MDk2LDIwODg5Nyw0MDk2LDIwODg5Nyw0MDk2LDQwOTYsNDA5NiwyMDg4OTcsNDA5Niw0MDk2LDIwODg5Nyw0MDk2LDQwOTYsMjE2MjcwMCw4NDU1MjQwLDEwNzQ3OTA0MTUsMTY4NDI4MDEsMTI5XTtmdW5jdGlvbiBBKHUsZSl7aWYodS5mbGFncz0odS5mbGFnc3wxKV4xLHUuc3RhcnRQb3M9dS5pbmRleCx1LnN0YXJ0Q29sdW1uPXUuY29sdW1uLHUuc3RhcnRMaW5lPXUubGluZSx1LnRva2VuPWp1KHUsZSwwKSx1Lm9uVG9rZW4mJnUudG9rZW4hPT0xMDQ4NTc2KXtsZXQgbj17c3RhcnQ6e2xpbmU6dS5saW5lUG9zLGNvbHVtbjp1LmNvbFBvc30sZW5kOntsaW5lOnUubGluZSxjb2x1bW46dS5jb2x1bW59fTt1Lm9uVG9rZW4oSGUodS50b2tlbiksdS50b2tlblBvcyx1LmluZGV4LG4pfX1mdW5jdGlvbiBqdSh1LGUsbil7bGV0IGk9dS5pbmRleD09PTAsdD11LnNvdXJjZSxvPXUuaW5kZXgsbD11LmxpbmUsZj11LmNvbHVtbjtmb3IoO3UuaW5kZXg8dS5lbmQ7KXt1LnRva2VuUG9zPXUuaW5kZXgsdS5jb2xQb3M9dS5jb2x1bW4sdS5saW5lUG9zPXUubGluZTtsZXQgYz11LmN1cnJlbnRDaGFyO2lmKGM8PTEyNil7bGV0IGE9SnVbY107c3dpdGNoKGEpe2Nhc2UgNjcxNzQ0MTE6Y2FzZSAxNjpjYXNlIDIxNjI3MDA6Y2FzZSAxMDc0NzkwNDE1OmNhc2UgNjkyNzE1NzE6Y2FzZSAyMDpjYXNlIDIxOmNhc2UgMTA3NDc5MDQxNzpjYXNlIDE4OmNhc2UgMTY4NDI4MDE6Y2FzZSAxMzM6Y2FzZSAxMjk6cmV0dXJuIGgodSksYTtjYXNlIDIwODg5NzpyZXR1cm4gQnUodSxlLDApO2Nhc2UgNDA5NjpyZXR1cm4gQnUodSxlLDEpO2Nhc2UgMTM0MjgzMjY2OnJldHVybiBTdSh1LGUsMTQ0KTtjYXNlIDEzNDI4MzI2NzpyZXR1cm4gUWUodSxlLGMpO2Nhc2UgMTMyOnJldHVybiBPdSh1LGUpO2Nhc2UgMTM3OnJldHVybiBHZSh1LGUpO2Nhc2UgMTMxOnJldHVybiB4ZSh1KTtjYXNlIDEyODpoKHUpO2JyZWFrO2Nhc2UgMTMwOm58PTUsYzIodSk7YnJlYWs7Y2FzZSAxMzY6dXUodSxuKSxuPW4mLTV8MTticmVhaztjYXNlIDg0NTYyNTg6bGV0IGc9aCh1KTtpZih1LmluZGV4PHUuZW5kKXtpZihnPT09NjApcmV0dXJuIHUuaW5kZXg8dS5lbmQmJmgodSk9PT02MT8oaCh1KSw0MTk0MzM0KTo4NDU2NTE2O2lmKGc9PT02MSlyZXR1cm4gaCh1KSw4NDU2MjU2O2lmKGc9PT0zMyl7bGV0IHM9dS5pbmRleCsxO2lmKHMrMTx1LmVuZCYmdC5jaGFyQ29kZUF0KHMpPT09NDUmJnQuY2hhckNvZGVBdChzKzEpPT00NSl7dS5jb2x1bW4rPTMsdS5jdXJyZW50Q2hhcj10LmNoYXJDb2RlQXQodS5pbmRleCs9Myksbj13dSh1LHQsbixlLDIsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLG89dS50b2tlblBvcyxsPXUubGluZVBvcyxmPXUuY29sUG9zO2NvbnRpbnVlfXJldHVybiA4NDU2MjU4fWlmKGc9PT00Nyl7aWYoIShlJjE2KSlyZXR1cm4gODQ1NjI1ODtsZXQgcz11LmluZGV4KzE7aWYoczx1LmVuZCYmKGc9dC5jaGFyQ29kZUF0KHMpLGc9PT00Mnx8Zz09PTQ3KSlicmVhaztyZXR1cm4gaCh1KSwyNX19cmV0dXJuIDg0NTYyNTg7Y2FzZSAxMDc3OTM2MTU3OntoKHUpO2xldCBzPXUuY3VycmVudENoYXI7cmV0dXJuIHM9PT02MT9oKHUpPT09NjE/KGgodSksODQ1NTk5Nik6ODQ1NTk5ODpzPT09NjI/KGgodSksMTApOjEwNzc5MzYxNTd9Y2FzZSAxNjg0MjgwMDpyZXR1cm4gaCh1KSE9PTYxPzE2ODQyODAwOmgodSkhPT02MT84NDU1OTk5OihoKHUpLDg0NTU5OTcpO2Nhc2UgODQ1NzAxNTpyZXR1cm4gaCh1KSE9PTYxPzg0NTcwMTU6KGgodSksNDE5NDM0Mik7Y2FzZSA4NDU3MDE0OntpZihoKHUpLHUuaW5kZXg+PXUuZW5kKXJldHVybiA4NDU3MDE0O2xldCBzPXUuY3VycmVudENoYXI7cmV0dXJuIHM9PT02MT8oaCh1KSw0MTk0MzQwKTpzIT09NDI/ODQ1NzAxNDpoKHUpIT09NjE/ODQ1NzI3MzooaCh1KSw0MTk0MzM3KX1jYXNlIDg0NTU0OTc6cmV0dXJuIGgodSkhPT02MT84NDU1NDk3OihoKHUpLDQxOTQzNDMpO2Nhc2UgMjUyMzM5NzA6e2godSk7bGV0IHM9dS5jdXJyZW50Q2hhcjtyZXR1cm4gcz09PTQzPyhoKHUpLDMzNjE5OTk1KTpzPT09NjE/KGgodSksNDE5NDMzOCk6MjUyMzM5NzB9Y2FzZSAyNTIzMzk3MTp7aCh1KTtsZXQgcz11LmN1cnJlbnRDaGFyO2lmKHM9PT00NSl7aWYoaCh1KSwobiYxfHxpKSYmdS5jdXJyZW50Q2hhcj09PTYyKXtlJjI1Nnx8ZCh1LDEwOSksaCh1KSxuPXd1KHUsdCxuLGUsMyxvLGwsZiksbz11LnRva2VuUG9zLGw9dS5saW5lUG9zLGY9dS5jb2xQb3M7Y29udGludWV9cmV0dXJuIDMzNjE5OTk2fXJldHVybiBzPT09NjE/KGgodSksNDE5NDMzOSk6MjUyMzM5NzF9Y2FzZSA4NDU3MDE2OntpZihoKHUpLHUuaW5kZXg8dS5lbmQpe2xldCBzPXUuY3VycmVudENoYXI7aWYocz09PTQ3KXtoKHUpLG49ZXUodSx0LG4sMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyksbz11LnRva2VuUG9zLGw9dS5saW5lUG9zLGY9dS5jb2xQb3M7Y29udGludWV9aWYocz09PTQyKXtoKHUpLG49V2UodSx0LG4pLG89dS50b2tlblBvcyxsPXUubGluZVBvcyxmPXUuY29sUG9zO2NvbnRpbnVlfWlmKGUmMzI3NjgpcmV0dXJuIF9lKHUsZSk7aWYocz09PTYxKXJldHVybiBoKHUpLDQyNTk4Nzd9cmV0dXJuIDg0NTcwMTZ9Y2FzZSA2NzEwODg3NzpsZXQgbT1oKHUpO2lmKG0+PTQ4JiZtPD01NylyZXR1cm4gU3UodSxlLDgwKTtpZihtPT09NDYpe2xldCBzPXUuaW5kZXgrMTtpZihzPHUuZW5kJiZ0LmNoYXJDb2RlQXQocyk9PT00NilyZXR1cm4gdS5jb2x1bW4rPTIsdS5jdXJyZW50Q2hhcj10LmNoYXJDb2RlQXQodS5pbmRleCs9MiksMTR9cmV0dXJuIDY3MTA4ODc3O2Nhc2UgODQ1NTI0MDp7aCh1KTtsZXQgcz11LmN1cnJlbnRDaGFyO3JldHVybiBzPT09MTI0PyhoKHUpLHUuY3VycmVudENoYXI9PT02MT8oaCh1KSw0MTk0MzQ2KTo4OTc5MDAzKTpzPT09NjE/KGgodSksNDE5NDM0NCk6ODQ1NTI0MH1jYXNlIDg0NTYyNTk6e2godSk7bGV0IHM9dS5jdXJyZW50Q2hhcjtpZihzPT09NjEpcmV0dXJuIGgodSksODQ1NjI1NztpZihzIT09NjIpcmV0dXJuIDg0NTYyNTk7aWYoaCh1KSx1LmluZGV4PHUuZW5kKXtsZXQgaz11LmN1cnJlbnRDaGFyO2lmKGs9PT02MilyZXR1cm4gaCh1KT09PTYxPyhoKHUpLDQxOTQzMzYpOjg0NTY1MTg7aWYoaz09PTYxKXJldHVybiBoKHUpLDQxOTQzMzV9cmV0dXJuIDg0NTY1MTd9Y2FzZSA4NDU1NzUxOntoKHUpO2xldCBzPXUuY3VycmVudENoYXI7cmV0dXJuIHM9PT0zOD8oaCh1KSx1LmN1cnJlbnRDaGFyPT09NjE/KGgodSksNDE5NDM0Nyk6ODk3OTI1OCk6cz09PTYxPyhoKHUpLDQxOTQzNDUpOjg0NTU3NTF9Y2FzZSAyMjp7bGV0IHM9aCh1KTtpZihzPT09NjMpcmV0dXJuIGgodSksdS5jdXJyZW50Q2hhcj09PTYxPyhoKHUpLDQxOTQzNDgpOjI3Njg4OTk4MjtpZihzPT09NDYpe2xldCBrPXUuaW5kZXgrMTtpZihrPHUuZW5kJiYocz10LmNoYXJDb2RlQXQoayksIShzPj00OCYmczw9NTcpKSlyZXR1cm4gaCh1KSw2NzEwODk5MX1yZXR1cm4gMjJ9fX1lbHNle2lmKChjXjgyMzIpPD0xKXtuPW4mLTV8MSxjMih1KTtjb250aW51ZX1pZigoYyY2NDUxMik9PT01NTI5Nnx8RTJbKGM+Pj41KSszNDgxNl0+Pj5jJjMxJjEpcmV0dXJuKGMmNjQ1MTIpPT09NTYzMjAmJihjPShjJjEwMjMpPDwxMHxjJjEwMjN8NjU1MzYsRTJbKGM+Pj41KSswXT4+PmMmMzEmMXx8ZCh1LDE4LEcoYykpLHUuaW5kZXgrKyx1LmN1cnJlbnRDaGFyPWMpLHUuY29sdW1uKyssdS50b2tlblZhbHVlPVwiXCIsbnUodSxlLDAsMCk7aWYoemUoYykpe2godSk7Y29udGludWV9ZCh1LDE4LEcoYykpfX1yZXR1cm4gMTA0ODU3Nn1mdW5jdGlvbiB1MSh1LGUpe3JldHVybiB1LnN0YXJ0UG9zPXUudG9rZW5Qb3M9dS5pbmRleCx1LnN0YXJ0Q29sdW1uPXUuY29sUG9zPXUuY29sdW1uLHUuc3RhcnRMaW5lPXUubGluZVBvcz11LmxpbmUsdS50b2tlbj1MW3UuY3VycmVudENoYXJdJjgxOTI/ZTEodSxlKTpqdSh1LGUsMCksdS50b2tlbn1mdW5jdGlvbiBlMSh1LGUpe2xldCBuPXUuY3VycmVudENoYXIsaT1oKHUpLHQ9dS5pbmRleDtmb3IoO2khPT1uOyl1LmluZGV4Pj11LmVuZCYmZCh1LDE0KSxpPWgodSk7cmV0dXJuIGkhPT1uJiZkKHUsMTQpLHUudG9rZW5WYWx1ZT11LnNvdXJjZS5zbGljZSh0LHUuaW5kZXgpLGgodSksZSY1MTImJih1LnRva2VuUmF3PXUuc291cmNlLnNsaWNlKHUudG9rZW5Qb3MsdS5pbmRleCkpLDEzNDI4MzI2N31mdW5jdGlvbiBkMih1LGUpe2lmKHUuc3RhcnRQb3M9dS50b2tlblBvcz11LmluZGV4LHUuc3RhcnRDb2x1bW49dS5jb2xQb3M9dS5jb2x1bW4sdS5zdGFydExpbmU9dS5saW5lUG9zPXUubGluZSx1LmluZGV4Pj11LmVuZClyZXR1cm4gdS50b2tlbj0xMDQ4NTc2O3N3aXRjaChKdVt1LnNvdXJjZS5jaGFyQ29kZUF0KHUuaW5kZXgpXSl7Y2FzZSA4NDU2MjU4OntoKHUpLHUuY3VycmVudENoYXI9PT00Nz8oaCh1KSx1LnRva2VuPTI1KTp1LnRva2VuPTg0NTYyNTg7YnJlYWt9Y2FzZSAyMTYyNzAwOntoKHUpLHUudG9rZW49MjE2MjcwMDticmVha31kZWZhdWx0OntsZXQgaT0wO2Zvcig7dS5pbmRleDx1LmVuZDspe2xldCBvPUxbdS5zb3VyY2UuY2hhckNvZGVBdCh1LmluZGV4KV07aWYobyYxMDI0PyhpfD01LGMyKHUpKTpvJjIwNDg/KHV1KHUsaSksaT1pJi01fDEpOmgodSksTFt1LmN1cnJlbnRDaGFyXSYxNjM4NClicmVha31sZXQgdD11LnNvdXJjZS5zbGljZSh1LnRva2VuUG9zLHUuaW5kZXgpO2UmNTEyJiYodS50b2tlblJhdz10KSx1LnRva2VuVmFsdWU9dCx1LnRva2VuPTEzOH19cmV0dXJuIHUudG9rZW59ZnVuY3Rpb24gcjIodSl7aWYoKHUudG9rZW4mMTQzMzYwKT09PTE0MzM2MCl7bGV0e2luZGV4OmV9PXUsbj11LmN1cnJlbnRDaGFyO2Zvcig7TFtuXSYzMjc3MDspbj1oKHUpO3UudG9rZW5WYWx1ZSs9dS5zb3VyY2Uuc2xpY2UoZSx1LmluZGV4KX1yZXR1cm4gdS50b2tlbj0yMDg4OTcsdS50b2tlbn1mdW5jdGlvbiB6KHUsZSxuKXshKHUuZmxhZ3MmMSkmJih1LnRva2VuJjEwNDg1NzYpIT09MTA0ODU3NiYmIW4mJmQodSwyOCxVW3UudG9rZW4mMjU1XSkscSh1LGUsMTA3NDc5MDQxNyl9ZnVuY3Rpb24gWHUodSxlLG4saSl7cmV0dXJuIGUtbjwxMyYmaT09PVwidXNlIHN0cmljdFwiJiYoKHUudG9rZW4mMTA0ODU3Nik9PT0xMDQ4NTc2fHx1LmZsYWdzJjEpPzE6MH1mdW5jdGlvbiBpdSh1LGUsbil7cmV0dXJuIHUudG9rZW4hPT1uPzA6KEEodSxlKSwxKX1mdW5jdGlvbiBxKHUsZSxuKXtyZXR1cm4gdS50b2tlbiE9PW4/ITE6KEEodSxlKSwhMCl9ZnVuY3Rpb24gUCh1LGUsbil7dS50b2tlbiE9PW4mJmQodSwyMyxVW24mMjU1XSksQSh1LGUpfWZ1bmN0aW9uIHIodSxlKXtzd2l0Y2goZS50eXBlKXtjYXNlXCJBcnJheUV4cHJlc3Npb25cIjplLnR5cGU9XCJBcnJheVBhdHRlcm5cIjtsZXQgbj1lLmVsZW1lbnRzO2ZvcihsZXQgdD0wLG89bi5sZW5ndGg7dDxvOysrdCl7bGV0IGw9blt0XTtsJiZyKHUsbCl9cmV0dXJuO2Nhc2VcIk9iamVjdEV4cHJlc3Npb25cIjplLnR5cGU9XCJPYmplY3RQYXR0ZXJuXCI7bGV0IGk9ZS5wcm9wZXJ0aWVzO2ZvcihsZXQgdD0wLG89aS5sZW5ndGg7dDxvOysrdClyKHUsaVt0XSk7cmV0dXJuO2Nhc2VcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCI6ZS50eXBlPVwiQXNzaWdubWVudFBhdHRlcm5cIixlLm9wZXJhdG9yIT09XCI9XCImJmQodSw2OSksZGVsZXRlIGUub3BlcmF0b3Iscih1LGUubGVmdCk7cmV0dXJuO2Nhc2VcIlByb3BlcnR5XCI6cih1LGUudmFsdWUpO3JldHVybjtjYXNlXCJTcHJlYWRFbGVtZW50XCI6ZS50eXBlPVwiUmVzdEVsZW1lbnRcIixyKHUsZS5hcmd1bWVudCl9fWZ1bmN0aW9uIFUyKHUsZSxuLGksdCl7ZSYxMDI0JiYoKGkmMzY4NjQpPT09MzY4NjQmJmQodSwxMTUpLCF0JiYoaSY1MzcwNzk4MDgpPT09NTM3MDc5ODA4JiZkKHUsMTE2KSksKGkmMjA0ODApPT09MjA0ODAmJmQodSwxMDApLG4mMjQmJmk9PT0yNDE3MzkmJmQodSw5OCksZSY0MTk2MzUyJiZpPT09MjA5MDA4JiZkKHUsOTYpLGUmMjA5ODE3NiYmaT09PTI0MTc3MyYmZCh1LDk1LFwieWllbGRcIil9ZnVuY3Rpb24genUodSxlLG4pe2UmMTAyNCYmKChuJjM2ODY0KT09PTM2ODY0JiZkKHUsMTE1KSwobiY1MzcwNzk4MDgpPT09NTM3MDc5ODA4JiZkKHUsMTE2KSxuPT09MTIyJiZkKHUsOTMpLG49PT0xMjEmJmQodSw5MykpLChuJjIwNDgwKT09PTIwNDgwJiZkKHUsMTAwKSxlJjQxOTYzNTImJm49PT0yMDkwMDgmJmQodSw5NiksZSYyMDk4MTc2JiZuPT09MjQxNzczJiZkKHUsOTUsXCJ5aWVsZFwiKX1mdW5jdGlvbiBIdSh1LGUsbil7cmV0dXJuIG49PT0yMDkwMDgmJihlJjQxOTYzNTImJmQodSw5NiksdS5kZXN0cnVjdGlibGV8PTEyOCksbj09PTI0MTc3MyYmZSYyMDk3MTUyJiZkKHUsOTUsXCJ5aWVsZFwiKSwobiYyMDQ4MCk9PT0yMDQ4MHx8KG4mMzY4NjQpPT09MzY4NjR8fG49PTEyMn1mdW5jdGlvbiBuMSh1KXtyZXR1cm4gdS5wcm9wZXJ0eT91LnByb3BlcnR5LnR5cGU9PT1cIlByaXZhdGVJZGVudGlmaWVyXCI6ITF9ZnVuY3Rpb24gS3UodSxlLG4saSl7Zm9yKDtlOyl7aWYoZVtcIiRcIituXSlyZXR1cm4gaSYmZCh1LDEzNCksMTtpJiZlLmxvb3AmJihpPTApLGU9ZS4kfXJldHVybiAwfWZ1bmN0aW9uIGkxKHUsZSxuKXtsZXQgaT1lO2Zvcig7aTspaVtcIiRcIituXSYmZCh1LDEzMyxuKSxpPWkuJDtlW1wiJFwiK25dPTF9ZnVuY3Rpb24geSh1LGUsbixpLHQsbyl7cmV0dXJuIGUmMiYmKG8uc3RhcnQ9bixvLmVuZD11LnN0YXJ0UG9zLG8ucmFuZ2U9W24sdS5zdGFydFBvc10pLGUmNCYmKG8ubG9jPXtzdGFydDp7bGluZTppLGNvbHVtbjp0fSxlbmQ6e2xpbmU6dS5zdGFydExpbmUsY29sdW1uOnUuc3RhcnRDb2x1bW59fSx1LnNvdXJjZUZpbGUmJihvLmxvYy5zb3VyY2U9dS5zb3VyY2VGaWxlKSksb31mdW5jdGlvbiBNMih1KXtzd2l0Y2godS50eXBlKXtjYXNlXCJKU1hJZGVudGlmaWVyXCI6cmV0dXJuIHUubmFtZTtjYXNlXCJKU1hOYW1lc3BhY2VkTmFtZVwiOnJldHVybiB1Lm5hbWVzcGFjZStcIjpcIit1Lm5hbWU7Y2FzZVwiSlNYTWVtYmVyRXhwcmVzc2lvblwiOnJldHVybiBNMih1Lm9iamVjdCkrXCIuXCIrTTIodS5wcm9wZXJ0eSl9fWZ1bmN0aW9uIHoyKHUsZSxuKXtsZXQgaT1KKHMyKCksMTAyNCk7cmV0dXJuIHQyKHUsZSxpLG4sMSwwKSxpfWZ1bmN0aW9uIEcyKHUsZSwuLi5uKXtsZXR7aW5kZXg6aSxsaW5lOnQsY29sdW1uOm99PXU7cmV0dXJue3R5cGU6ZSxwYXJhbXM6bixpbmRleDppLGxpbmU6dCxjb2x1bW46b319ZnVuY3Rpb24gczIoKXtyZXR1cm57cGFyZW50OnZvaWQgMCx0eXBlOjJ9fWZ1bmN0aW9uIEoodSxlKXtyZXR1cm57cGFyZW50OnUsdHlwZTplLHNjb3BlRXJyb3I6dm9pZCAwfX1mdW5jdGlvbiB1Mih1LGUsbixpLHQsbyl7dCY0PyR1KHUsZSxuLGksdCk6dDIodSxlLG4saSx0LG8pLG8mNjQmJmwyKHUsaSl9ZnVuY3Rpb24gdDIodSxlLG4saSx0LG8pe2xldCBsPW5bXCIjXCIraV07bCYmIShsJjIpJiYodCYxP24uc2NvcGVFcnJvcj1HMih1LDE0MSxpKTplJjI1NiYmbCY2NCYmbyYyfHxkKHUsMTQxLGkpKSxuLnR5cGUmMTI4JiZuLnBhcmVudFtcIiNcIitpXSYmIShuLnBhcmVudFtcIiNcIitpXSYyKSYmZCh1LDE0MSxpKSxuLnR5cGUmMTAyNCYmbCYmIShsJjIpJiZ0JjEmJihuLnNjb3BlRXJyb3I9RzIodSwxNDEsaSkpLG4udHlwZSY2NCYmbi5wYXJlbnRbXCIjXCIraV0mNzY4JiZkKHUsMTU0LGkpLG5bXCIjXCIraV09dH1mdW5jdGlvbiAkdSh1LGUsbixpLHQpe2xldCBvPW47Zm9yKDtvJiYhKG8udHlwZSYyNTYpOyl7bGV0IGw9b1tcIiNcIitpXTtsJjI0OCYmKGUmMjU2JiYhKGUmMTAyNCkmJih0JjEyOCYmbCY2OHx8bCYxMjgmJnQmNjgpfHxkKHUsMTQxLGkpKSxvPT09biYmbCYxJiZ0JjEmJihvLnNjb3BlRXJyb3I9RzIodSwxNDEsaSkpLGwmNzY4JiYoIShsJjUxMil8fCEoZSYyNTYpfHxlJjEwMjQpJiZkKHUsMTQxLGkpLG9bXCIjXCIraV09dCxvPW8ucGFyZW50fX1mdW5jdGlvbiBsMih1LGUpe3UuZXhwb3J0ZWROYW1lcyE9PXZvaWQgMCYmZSE9PVwiXCImJih1LmV4cG9ydGVkTmFtZXNbXCIjXCIrZV0mJmQodSwxNDIsZSksdS5leHBvcnRlZE5hbWVzW1wiI1wiK2VdPTEpfWZ1bmN0aW9uIHQxKHUsZSl7dS5leHBvcnRlZEJpbmRpbmdzIT09dm9pZCAwJiZlIT09XCJcIiYmKHUuZXhwb3J0ZWRCaW5kaW5nc1tcIiNcIitlXT0xKX1mdW5jdGlvbiBvMSh1LGUpe3JldHVybiBmdW5jdGlvbihuLGksdCxvLGwpe2xldCBmPXt0eXBlOm4sdmFsdWU6aX07dSYyJiYoZi5zdGFydD10LGYuZW5kPW8sZi5yYW5nZT1bdCxvXSksdSY0JiYoZi5sb2M9bCksZS5wdXNoKGYpfX1mdW5jdGlvbiBsMSh1LGUpe3JldHVybiBmdW5jdGlvbihuLGksdCxvKXtsZXQgbD17dG9rZW46bn07dSYyJiYobC5zdGFydD1pLGwuZW5kPXQsbC5yYW5nZT1baSx0XSksdSY0JiYobC5sb2M9byksZS5wdXNoKGwpfX1mdW5jdGlvbiB0dSh1LGUpe3JldHVybiB1JjIwOTgxNzY/dSYyMDQ4JiZlPT09MjA5MDA4fHx1JjIwOTcxNTImJmU9PT0yNDE3NzM/ITE6KGUmMTQzMzYwKT09PTE0MzM2MHx8KGUmMTIyODgpPT09MTIyODg6KGUmMTQzMzYwKT09PTE0MzM2MHx8KGUmMTIyODgpPT09MTIyODh8fChlJjM2ODY0KT09PTM2ODY0fWZ1bmN0aW9uIG91KHUsZSxuLGkpeyhuJjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJihlJjEwMjQmJmQodSwxMTYpLGkmJih1LmZsYWdzfD01MTIpKSx0dShlLG4pfHxkKHUsMCl9ZnVuY3Rpb24gZjEodSxlLG4saSl7cmV0dXJue3NvdXJjZTp1LGZsYWdzOjAsaW5kZXg6MCxsaW5lOjEsY29sdW1uOjAsc3RhcnRQb3M6MCxlbmQ6dS5sZW5ndGgsdG9rZW5Qb3M6MCxzdGFydENvbHVtbjowLGNvbFBvczowLGxpbmVQb3M6MSxzdGFydExpbmU6MSxzb3VyY2VGaWxlOmUsdG9rZW5WYWx1ZTpcIlwiLHRva2VuOjEwNDg1NzYsdG9rZW5SYXc6XCJcIix0b2tlblJlZ0V4cDp2b2lkIDAsY3VycmVudENoYXI6dS5jaGFyQ29kZUF0KDApLGV4cG9ydGVkTmFtZXM6W10sZXhwb3J0ZWRCaW5kaW5nczpbXSxhc3NpZ25hYmxlOjEsZGVzdHJ1Y3RpYmxlOjAsb25Db21tZW50Om4sb25Ub2tlbjppLGxlYWRpbmdEZWNvcmF0b3JzOltdfX1mdW5jdGlvbiBjMSh1LGUsbil7bGV0IGk9XCJcIix0LG87ZSE9bnVsbCYmKGUubW9kdWxlJiYobnw9MzA3MiksZS5uZXh0JiYobnw9MSksZS5sb2MmJihufD00KSxlLnJhbmdlcyYmKG58PTIpLGUudW5pcXVlS2V5SW5QYXR0ZXJuJiYobnw9LTIxNDc0ODM2NDgpLGUubGV4aWNhbCYmKG58PTY0KSxlLndlYmNvbXBhdCYmKG58PTI1NiksZS5kaXJlY3RpdmVzJiYobnw9NTIwKSxlLmdsb2JhbFJldHVybiYmKG58PTMyKSxlLnJhdyYmKG58PTUxMiksZS5wcmVzZXJ2ZVBhcmVucyYmKG58PTEyOCksZS5pbXBsaWVkU3RyaWN0JiYobnw9MTAyNCksZS5qc3gmJihufD0xNiksZS5pZGVudGlmaWVyUGF0dGVybiYmKG58PTI2ODQzNTQ1NiksZS5zcGVjRGV2aWF0aW9uJiYobnw9NTM2ODcwOTEyKSxlLnNvdXJjZSYmKGk9ZS5zb3VyY2UpLGUub25Db21tZW50IT1udWxsJiYodD1BcnJheS5pc0FycmF5KGUub25Db21tZW50KT9vMShuLGUub25Db21tZW50KTplLm9uQ29tbWVudCksZS5vblRva2VuIT1udWxsJiYobz1BcnJheS5pc0FycmF5KGUub25Ub2tlbik/bDEobixlLm9uVG9rZW4pOmUub25Ub2tlbikpO2xldCBsPWYxKHUsaSx0LG8pO24mMSYmJGUobCk7bGV0IGY9biY2ND9zMigpOnZvaWQgMCxjPVtdLGE9XCJzY3JpcHRcIjtpZihuJjIwNDgpe2lmKGE9XCJtb2R1bGVcIixjPXMxKGwsbnw4MTkyLGYpLGYpZm9yKGxldCBtIGluIGwuZXhwb3J0ZWRCaW5kaW5ncyltWzBdPT09XCIjXCImJiFmW21dJiZkKGwsMTQzLG0uc2xpY2UoMSkpfWVsc2UgYz1kMShsLG58ODE5MixmKTtsZXQgZz17dHlwZTpcIlByb2dyYW1cIixzb3VyY2VUeXBlOmEsYm9keTpjfTtyZXR1cm4gbiYyJiYoZy5zdGFydD0wLGcuZW5kPXUubGVuZ3RoLGcucmFuZ2U9WzAsdS5sZW5ndGhdKSxuJjQmJihnLmxvYz17c3RhcnQ6e2xpbmU6MSxjb2x1bW46MH0sZW5kOntsaW5lOmwubGluZSxjb2x1bW46bC5jb2x1bW59fSxsLnNvdXJjZUZpbGUmJihnLmxvYy5zb3VyY2U9aSkpLGd9ZnVuY3Rpb24gZDEodSxlLG4pe0EodSxlfDMyNzY4fDEwNzM3NDE4MjQpO2xldCBpPVtdO2Zvcig7dS50b2tlbj09PTEzNDI4MzI2Nzspe2xldHtpbmRleDp0LHRva2VuUG9zOm8sdG9rZW5WYWx1ZTpsLGxpbmVQb3M6Zixjb2xQb3M6Yyx0b2tlbjphfT11LGc9WCh1LGUpO1h1KHUsdCxvLGwpJiYoZXw9MTAyNCksaS5wdXNoKGZ1KHUsZSxnLGEsbyxmLGMpKX1mb3IoO3UudG9rZW4hPT0xMDQ4NTc2OylpLnB1c2goUzIodSxlLG4sNCx7fSkpO3JldHVybiBpfWZ1bmN0aW9uIHMxKHUsZSxuKXtBKHUsZXwzMjc2OCk7bGV0IGk9W107aWYoZSY4KWZvcig7dS50b2tlbj09PTEzNDI4MzI2Nzspe2xldHt0b2tlblBvczp0LGxpbmVQb3M6byxjb2xQb3M6bCx0b2tlbjpmfT11O2kucHVzaChmdSh1LGUsWCh1LGUpLGYsdCxvLGwpKX1mb3IoO3UudG9rZW4hPT0xMDQ4NTc2OylpLnB1c2goYTEodSxlLG4pKTtyZXR1cm4gaX1mdW5jdGlvbiBhMSh1LGUsbil7dS5sZWFkaW5nRGVjb3JhdG9ycz0kMih1LGUpO2xldCBpO3N3aXRjaCh1LnRva2VuKXtjYXNlIDIwNTY2Omk9STEodSxlLG4pO2JyZWFrO2Nhc2UgODYxMDg6aT1xMSh1LGUsbik7YnJlYWs7ZGVmYXVsdDppPVMyKHUsZSxuLDQse30pfXJldHVybiB1LmxlYWRpbmdEZWNvcmF0b3JzLmxlbmd0aCYmZCh1LDE2NSksaX1mdW5jdGlvbiBTMih1LGUsbixpLHQpe2xldCBvPXUudG9rZW5Qb3MsbD11LmxpbmVQb3MsZj11LmNvbFBvcztzd2l0Y2godS50b2tlbil7Y2FzZSA4NjEwNjpyZXR1cm4gaTIodSxlLG4saSwxLDAsMCxvLGwsZik7Y2FzZSAxMzM6Y2FzZSA4NjA5NjpyZXR1cm4gcDIodSxlLG4sMCxvLGwsZik7Y2FzZSA4NjA5MjpyZXR1cm4geDIodSxlLG4sMTYsMCxvLGwsZik7Y2FzZSAyNDE3Mzk6cmV0dXJuIFQxKHUsZSxuLGksbyxsLGYpO2Nhc2UgMjA1NjY6ZCh1LDEwMSxcImV4cG9ydFwiKTtjYXNlIDg2MTA4OnN3aXRjaChBKHUsZSksdS50b2tlbil7Y2FzZSA2NzE3NDQxMTpyZXR1cm4gWnUodSxlLG8sbCxmKTtjYXNlIDY3MTA4ODc3OnJldHVybiBRdSh1LGUsbyxsLGYpO2RlZmF1bHQ6ZCh1LDEwMSxcImltcG9ydFwiKX1jYXNlIDIwOTAwNzpyZXR1cm4gV3UodSxlLG4saSx0LDEsbyxsLGYpO2RlZmF1bHQ6cmV0dXJuIEIyKHUsZSxuLGksdCwxLG8sbCxmKX19ZnVuY3Rpb24gQjIodSxlLG4saSx0LG8sbCxmLGMpe3N3aXRjaCh1LnRva2VuKXtjYXNlIDg2MDkwOnJldHVybiBfdSh1LGUsbiwwLGwsZixjKTtjYXNlIDIwNTc0OnJldHVybiBnMSh1LGUsbCxmLGMpO2Nhc2UgMjA1NzE6cmV0dXJuIGgxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMjA1Njk6cmV0dXJuIEYxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMjA1NjQ6cmV0dXJuIHYxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMjA1ODA6cmV0dXJuIEExKHUsZSxuLHQsbCxmLGMpO2Nhc2UgODYxMTI6cmV0dXJuIEQxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMTA3NDc5MDQxNzpyZXR1cm4geTEodSxlLGwsZixjKTtjYXNlIDIxNjI3MDA6cmV0dXJuIHcyKHUsZSxuJiZKKG4sMiksdCxsLGYsYyk7Y2FzZSA4NjExNDpyZXR1cm4gazEodSxlLGwsZixjKTtjYXNlIDIwNTU3OnJldHVybiBDMSh1LGUsdCxsLGYsYyk7Y2FzZSAyMDU2MTpyZXR1cm4gYjEodSxlLHQsbCxmLGMpO2Nhc2UgMjA1Nzk6cmV0dXJuIHcxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMjA1ODE6cmV0dXJuIFAxKHUsZSxuLHQsbCxmLGMpO2Nhc2UgMjA1NjI6cmV0dXJuIEUxKHUsZSxsLGYsYyk7Y2FzZSAyMDkwMDc6cmV0dXJuIFd1KHUsZSxuLGksdCwwLGwsZixjKTtjYXNlIDIwNTU5OmQodSwxNTcpO2Nhc2UgMjA1Njg6ZCh1LDE1OCk7Y2FzZSA4NjEwNjpkKHUsZSYxMDI0Pzc0OmUmMjU2Pzc1Ojc2KTtjYXNlIDg2MDk2OmQodSw3Nyk7ZGVmYXVsdDpyZXR1cm4gbTEodSxlLG4saSx0LG8sbCxmLGMpfX1mdW5jdGlvbiBtMSh1LGUsbixpLHQsbyxsLGYsYyl7bGV0e3Rva2VuVmFsdWU6YSx0b2tlbjpnfT11LG07c3dpdGNoKGcpe2Nhc2UgMjQxNzM5Om09SSh1LGUsMCksZSYxMDI0JiZkKHUsODMpLHUudG9rZW49PT02OTI3MTU3MSYmZCh1LDgyKTticmVhaztkZWZhdWx0Om09Syh1LGUsMiwwLDEsMCwwLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpfXJldHVybiBnJjE0MzM2MCYmdS50b2tlbj09PTIxP2x1KHUsZSxuLGksdCxhLG0sZyxvLGwsZixjKToobT1OKHUsZSxtLDAsMCxsLGYsYyksbT1PKHUsZSwwLDAsbCxmLGMsbSksdS50b2tlbj09PTE4JiYobT1lMih1LGUsMCxsLGYsYyxtKSksQTIodSxlLG0sbCxmLGMpKX1mdW5jdGlvbiB3Mih1LGUsbixpLHQsbyxsKXtsZXQgZj1bXTtmb3IoUCh1LGV8MzI3NjgsMjE2MjcwMCk7dS50b2tlbiE9PTEwNzQ3OTA0MTU7KWYucHVzaChTMih1LGUsbiwyLHskOml9KSk7cmV0dXJuIFAodSxlfDMyNzY4LDEwNzQ3OTA0MTUpLHkodSxlLHQsbyxsLHt0eXBlOlwiQmxvY2tTdGF0ZW1lbnRcIixib2R5OmZ9KX1mdW5jdGlvbiBnMSh1LGUsbixpLHQpeyEoZSYzMikmJmUmODE5MiYmZCh1LDkwKSxBKHUsZXwzMjc2OCk7bGV0IG89dS5mbGFncyYxfHx1LnRva2VuJjEwNDg1NzY/bnVsbDpqKHUsZSwwLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB6KHUsZXwzMjc2OCkseSh1LGUsbixpLHQse3R5cGU6XCJSZXR1cm5TdGF0ZW1lbnRcIixhcmd1bWVudDpvfSl9ZnVuY3Rpb24gQTIodSxlLG4saSx0LG8pe3JldHVybiB6KHUsZXwzMjc2OCkseSh1LGUsaSx0LG8se3R5cGU6XCJFeHByZXNzaW9uU3RhdGVtZW50XCIsZXhwcmVzc2lvbjpufSl9ZnVuY3Rpb24gbHUodSxlLG4saSx0LG8sbCxmLGMsYSxnLG0pe1UyKHUsZSwwLGYsMSksaTEodSx0LG8pLEEodSxlfDMyNzY4KTtsZXQgcz1jJiYhKGUmMTAyNCkmJmUmMjU2JiZ1LnRva2VuPT09ODYxMDY/aTIodSxlLEoobiwyKSxpLDAsMCwwLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTpCMih1LGUsbixpLHQsYyx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHkodSxlLGEsZyxtLHt0eXBlOlwiTGFiZWxlZFN0YXRlbWVudFwiLGxhYmVsOmwsYm9keTpzfSl9ZnVuY3Rpb24gV3UodSxlLG4saSx0LG8sbCxmLGMpe2xldHt0b2tlbjphLHRva2VuVmFsdWU6Z309dSxtPUkodSxlLDApO2lmKHUudG9rZW49PT0yMSlyZXR1cm4gbHUodSxlLG4saSx0LGcsbSxhLDEsbCxmLGMpO2xldCBzPXUuZmxhZ3MmMTtpZighcyl7aWYodS50b2tlbj09PTg2MTA2KXJldHVybiBvfHxkKHUsMTIwKSxpMih1LGUsbixpLDEsMCwxLGwsZixjKTtpZigodS50b2tlbiYxNDMzNjApPT09MTQzMzYwKXJldHVybiBtPWllKHUsZSwxLGwsZixjKSx1LnRva2VuPT09MTgmJihtPWUyKHUsZSwwLGwsZixjLG0pKSxBMih1LGUsbSxsLGYsYyl9cmV0dXJuIHUudG9rZW49PT02NzE3NDQxMT9tPW11KHUsZSxtLDEsMSwwLHMsbCxmLGMpOih1LnRva2VuPT09MTAmJihvdSh1LGUsYSwxKSxtPUsyKHUsZSx1LnRva2VuVmFsdWUsbSwwLDEsMCxsLGYsYykpLHUuYXNzaWduYWJsZT0xKSxtPU4odSxlLG0sMCwwLGwsZixjKSx1LnRva2VuPT09MTgmJihtPWUyKHUsZSwwLGwsZixjLG0pKSxtPU8odSxlLDAsMCxsLGYsYyxtKSx1LmFzc2lnbmFibGU9MSxBMih1LGUsbSxsLGYsYyl9ZnVuY3Rpb24gZnUodSxlLG4saSx0LG8sbCl7cmV0dXJuIGkhPT0xMDc0NzkwNDE3JiYodS5hc3NpZ25hYmxlPTIsbj1OKHUsZSxuLDAsMCx0LG8sbCksdS50b2tlbiE9PTEwNzQ3OTA0MTcmJihuPU8odSxlLDAsMCx0LG8sbCxuKSx1LnRva2VuPT09MTgmJihuPWUyKHUsZSwwLHQsbyxsLG4pKSkseih1LGV8MzI3NjgpKSxlJjgmJm4udHlwZT09PVwiTGl0ZXJhbFwiJiZ0eXBlb2Ygbi52YWx1ZT09XCJzdHJpbmdcIj95KHUsZSx0LG8sbCx7dHlwZTpcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixleHByZXNzaW9uOm4sZGlyZWN0aXZlOm4ucmF3LnNsaWNlKDEsLTEpfSk6eSh1LGUsdCxvLGwse3R5cGU6XCJFeHByZXNzaW9uU3RhdGVtZW50XCIsZXhwcmVzc2lvbjpufSl9ZnVuY3Rpb24geTEodSxlLG4saSx0KXtyZXR1cm4gQSh1LGV8MzI3NjgpLHkodSxlLG4saSx0LHt0eXBlOlwiRW1wdHlTdGF0ZW1lbnRcIn0pfWZ1bmN0aW9uIGsxKHUsZSxuLGksdCl7QSh1LGV8MzI3NjgpLHUuZmxhZ3MmMSYmZCh1LDg4KTtsZXQgbz1qKHUsZSwwLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB6KHUsZXwzMjc2OCkseSh1LGUsbixpLHQse3R5cGU6XCJUaHJvd1N0YXRlbWVudFwiLGFyZ3VtZW50Om99KX1mdW5jdGlvbiBoMSh1LGUsbixpLHQsbyxsKXtBKHUsZSksUCh1LGV8MzI3NjgsNjcxNzQ0MTEpLHUuYXNzaWduYWJsZT0xO2xldCBmPWoodSxlLDAsMSx1LnRva2VuUG9zLHUubGluZSx1LmNvbFBvcyk7UCh1LGV8MzI3NjgsMTYpO2xldCBjPXZ1KHUsZSxuLGksdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLGE9bnVsbDtyZXR1cm4gdS50b2tlbj09PTIwNTY1JiYoQSh1LGV8MzI3NjgpLGE9dnUodSxlLG4saSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpLHkodSxlLHQsbyxsLHt0eXBlOlwiSWZTdGF0ZW1lbnRcIix0ZXN0OmYsY29uc2VxdWVudDpjLGFsdGVybmF0ZTphfSl9ZnVuY3Rpb24gdnUodSxlLG4saSx0LG8sbCl7cmV0dXJuIGUmMTAyNHx8IShlJjI1Nil8fHUudG9rZW4hPT04NjEwNj9CMih1LGUsbiwwLHskOml9LDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpOmkyKHUsZSxKKG4sMiksMCwwLDAsMCx0LG8sbCl9ZnVuY3Rpb24gRDEodSxlLG4saSx0LG8sbCl7QSh1LGUpLFAodSxlfDMyNzY4LDY3MTc0NDExKTtsZXQgZj1qKHUsZSwwLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO1AodSxlLDE2KSxQKHUsZSwyMTYyNzAwKTtsZXQgYz1bXSxhPTA7Zm9yKG4mJihuPUoobiw4KSk7dS50b2tlbiE9PTEwNzQ3OTA0MTU7KXtsZXR7dG9rZW5Qb3M6ZyxsaW5lUG9zOm0sY29sUG9zOnN9PXUsaz1udWxsLEM9W107Zm9yKHEodSxlfDMyNzY4LDIwNTU4KT9rPWoodSxlLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk6KFAodSxlfDMyNzY4LDIwNTYzKSxhJiZkKHUsODcpLGE9MSksUCh1LGV8MzI3NjgsMjEpO3UudG9rZW4hPT0yMDU1OCYmdS50b2tlbiE9PTEwNzQ3OTA0MTUmJnUudG9rZW4hPT0yMDU2MzspQy5wdXNoKFMyKHUsZXw0MDk2LG4sMix7JDppfSkpO2MucHVzaCh5KHUsZSxnLG0scyx7dHlwZTpcIlN3aXRjaENhc2VcIix0ZXN0OmssY29uc2VxdWVudDpDfSkpfXJldHVybiBQKHUsZXwzMjc2OCwxMDc0NzkwNDE1KSx5KHUsZSx0LG8sbCx7dHlwZTpcIlN3aXRjaFN0YXRlbWVudFwiLGRpc2NyaW1pbmFudDpmLGNhc2VzOmN9KX1mdW5jdGlvbiBBMSh1LGUsbixpLHQsbyxsKXtBKHUsZSksUCh1LGV8MzI3NjgsNjcxNzQ0MTEpO2xldCBmPWoodSxlLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7UCh1LGV8MzI3NjgsMTYpO2xldCBjPVAyKHUsZSxuLGkpO3JldHVybiB5KHUsZSx0LG8sbCx7dHlwZTpcIldoaWxlU3RhdGVtZW50XCIsdGVzdDpmLGJvZHk6Y30pfWZ1bmN0aW9uIFAyKHUsZSxuLGkpe3JldHVybiBCMih1LChlfDEzNDIxNzcyOCleMTM0MjE3NzI4fDEzMTA3MixuLDAse2xvb3A6MSwkOml9LDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpfWZ1bmN0aW9uIGIxKHUsZSxuLGksdCxvKXtlJjEzMTA3Mnx8ZCh1LDY2KSxBKHUsZSk7bGV0IGw9bnVsbDtpZighKHUuZmxhZ3MmMSkmJnUudG9rZW4mMTQzMzYwKXtsZXR7dG9rZW5WYWx1ZTpmfT11O2w9SSh1LGV8MzI3NjgsMCksS3UodSxuLGYsMSl8fGQodSwxMzUsZil9cmV0dXJuIHoodSxlfDMyNzY4KSx5KHUsZSxpLHQsbyx7dHlwZTpcIkNvbnRpbnVlU3RhdGVtZW50XCIsbGFiZWw6bH0pfWZ1bmN0aW9uIEMxKHUsZSxuLGksdCxvKXtBKHUsZXwzMjc2OCk7bGV0IGw9bnVsbDtpZighKHUuZmxhZ3MmMSkmJnUudG9rZW4mMTQzMzYwKXtsZXR7dG9rZW5WYWx1ZTpmfT11O2w9SSh1LGV8MzI3NjgsMCksS3UodSxuLGYsMCl8fGQodSwxMzUsZil9ZWxzZSBlJjEzNTE2OHx8ZCh1LDY3KTtyZXR1cm4geih1LGV8MzI3NjgpLHkodSxlLGksdCxvLHt0eXBlOlwiQnJlYWtTdGF0ZW1lbnRcIixsYWJlbDpsfSl9ZnVuY3Rpb24gUDEodSxlLG4saSx0LG8sbCl7QSh1LGUpLGUmMTAyNCYmZCh1LDg5KSxQKHUsZXwzMjc2OCw2NzE3NDQxMSk7bGV0IGY9aih1LGUsMCwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTtQKHUsZXwzMjc2OCwxNik7bGV0IGM9QjIodSxlLG4sMixpLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB5KHUsZSx0LG8sbCx7dHlwZTpcIldpdGhTdGF0ZW1lbnRcIixvYmplY3Q6Zixib2R5OmN9KX1mdW5jdGlvbiBFMSh1LGUsbixpLHQpe3JldHVybiBBKHUsZXwzMjc2OCkseih1LGV8MzI3NjgpLHkodSxlLG4saSx0LHt0eXBlOlwiRGVidWdnZXJTdGF0ZW1lbnRcIn0pfWZ1bmN0aW9uIHcxKHUsZSxuLGksdCxvLGwpe0EodSxlfDMyNzY4KTtsZXQgZj1uP0oobiwzMik6dm9pZCAwLGM9dzIodSxlLGYseyQ6aX0sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLHt0b2tlblBvczphLGxpbmVQb3M6Zyxjb2xQb3M6bX09dSxzPXEodSxlfDMyNzY4LDIwNTU5KT9TMSh1LGUsbixpLGEsZyxtKTpudWxsLGs9bnVsbDtpZih1LnRva2VuPT09MjA1Njgpe0EodSxlfDMyNzY4KTtsZXQgQz1mP0oobiw0KTp2b2lkIDA7az13Mih1LGUsQyx7JDppfSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyl9cmV0dXJuIXMmJiFrJiZkKHUsODYpLHkodSxlLHQsbyxsLHt0eXBlOlwiVHJ5U3RhdGVtZW50XCIsYmxvY2s6YyxoYW5kbGVyOnMsZmluYWxpemVyOmt9KX1mdW5jdGlvbiBTMSh1LGUsbixpLHQsbyxsKXtsZXQgZj1udWxsLGM9bjtxKHUsZSw2NzE3NDQxMSkmJihuJiYobj1KKG4sNCkpLGY9bGUodSxlLG4sKHUudG9rZW4mMjA5NzE1Mik9PT0yMDk3MTUyPzI1Njo1MTIsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyksdS50b2tlbj09PTE4P2QodSw4NCk6dS50b2tlbj09PTEwNzc5MzYxNTcmJmQodSw4NSksUCh1LGV8MzI3NjgsMTYpLG4mJihjPUoobiw2NCkpKTtsZXQgYT13Mih1LGUsYyx7JDppfSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHkodSxlLHQsbyxsLHt0eXBlOlwiQ2F0Y2hDbGF1c2VcIixwYXJhbTpmLGJvZHk6YX0pfWZ1bmN0aW9uIEIxKHUsZSxuLGksdCxvKXtuJiYobj1KKG4sMikpO2xldCBsPTU0MDY3MjtlPShlfGwpXmx8MjYyMTQ0O2xldHtib2R5OmZ9PXcyKHUsZSxuLHt9LGksdCxvKTtyZXR1cm4geSh1LGUsaSx0LG8se3R5cGU6XCJTdGF0aWNCbG9ja1wiLGJvZHk6Zn0pfWZ1bmN0aW9uIHYxKHUsZSxuLGksdCxvLGwpe0EodSxlfDMyNzY4KTtsZXQgZj1QMih1LGUsbixpKTtQKHUsZSwyMDU4MCksUCh1LGV8MzI3NjgsNjcxNzQ0MTEpO2xldCBjPWoodSxlLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIFAodSxlfDMyNzY4LDE2KSxxKHUsZSwxMDc0NzkwNDE3KSx5KHUsZSx0LG8sbCx7dHlwZTpcIkRvV2hpbGVTdGF0ZW1lbnRcIixib2R5OmYsdGVzdDpjfSl9ZnVuY3Rpb24gVDEodSxlLG4saSx0LG8sbCl7bGV0e3Rva2VuOmYsdG9rZW5WYWx1ZTpjfT11LGE9SSh1LGUsMCk7aWYodS50b2tlbiYyMjQwNTEyKXtsZXQgZz15Mih1LGUsbiw4LDApO3JldHVybiB6KHUsZXwzMjc2OCkseSh1LGUsdCxvLGwse3R5cGU6XCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsa2luZDpcImxldFwiLGRlY2xhcmF0aW9uczpnfSl9aWYodS5hc3NpZ25hYmxlPTEsZSYxMDI0JiZkKHUsODMpLHUudG9rZW49PT0yMSlyZXR1cm4gbHUodSxlLG4saSx7fSxjLGEsZiwwLHQsbyxsKTtpZih1LnRva2VuPT09MTApe2xldCBnO2UmNjQmJihnPXoyKHUsZSxjKSksdS5mbGFncz0odS5mbGFnc3wxMjgpXjEyOCxhPXYyKHUsZSxnLFthXSwwLHQsbyxsKX1lbHNlIGE9Tih1LGUsYSwwLDAsdCxvLGwpLGE9Tyh1LGUsMCwwLHQsbyxsLGEpO3JldHVybiB1LnRva2VuPT09MTgmJihhPWUyKHUsZSwwLHQsbyxsLGEpKSxBMih1LGUsYSx0LG8sbCl9ZnVuY3Rpb24geDIodSxlLG4saSx0LG8sbCxmKXtBKHUsZSk7bGV0IGM9eTIodSxlLG4saSx0KTtyZXR1cm4geih1LGV8MzI3NjgpLHkodSxlLG8sbCxmLHt0eXBlOlwiVmFyaWFibGVEZWNsYXJhdGlvblwiLGtpbmQ6aSY4P1wibGV0XCI6XCJjb25zdFwiLGRlY2xhcmF0aW9uczpjfSl9ZnVuY3Rpb24gX3UodSxlLG4saSx0LG8sbCl7QSh1LGUpO2xldCBmPXkyKHUsZSxuLDQsaSk7cmV0dXJuIHoodSxlfDMyNzY4KSx5KHUsZSx0LG8sbCx7dHlwZTpcIlZhcmlhYmxlRGVjbGFyYXRpb25cIixraW5kOlwidmFyXCIsZGVjbGFyYXRpb25zOmZ9KX1mdW5jdGlvbiB5Mih1LGUsbixpLHQpe2xldCBvPTEsbD1bVHUodSxlLG4saSx0KV07Zm9yKDtxKHUsZSwxOCk7KW8rKyxsLnB1c2goVHUodSxlLG4saSx0KSk7cmV0dXJuIG8+MSYmdCYzMiYmdS50b2tlbiYyNjIxNDQmJmQodSw1OSxVW3UudG9rZW4mMjU1XSksbH1mdW5jdGlvbiBUdSh1LGUsbixpLHQpe2xldHt0b2tlbjpvLHRva2VuUG9zOmwsbGluZVBvczpmLGNvbFBvczpjfT11LGE9bnVsbCxnPWxlKHUsZSxuLGksdCxsLGYsYyk7cmV0dXJuIHUudG9rZW49PT0xMDc3OTM2MTU3PyhBKHUsZXwzMjc2OCksYT1SKHUsZSwxLDAsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyksKHQmMzJ8fCEobyYyMDk3MTUyKSkmJih1LnRva2VuPT09Mjc0NTQ5fHx1LnRva2VuPT09ODczODg2OCYmKG8mMjA5NzE1Mnx8IShpJjQpfHxlJjEwMjQpKSYmaDIobCx1LmxpbmUsdS5pbmRleC0zLDU4LHUudG9rZW49PT0yNzQ1NDk/XCJvZlwiOlwiaW5cIikpOihpJjE2fHwobyYyMDk3MTUyKT4wKSYmKHUudG9rZW4mMjYyMTQ0KSE9PTI2MjE0NCYmZCh1LDU3LGkmMTY/XCJjb25zdFwiOlwiZGVzdHJ1Y3R1cmluZ1wiKSx5KHUsZSxsLGYsYyx7dHlwZTpcIlZhcmlhYmxlRGVjbGFyYXRvclwiLGlkOmcsaW5pdDphfSl9ZnVuY3Rpb24gRjEodSxlLG4saSx0LG8sbCl7QSh1LGUpO2xldCBmPSgoZSY0MTk0MzA0KT4wfHwoZSYyMDQ4KT4wJiYoZSY4MTkyKT4wKSYmcSh1LGUsMjA5MDA4KTtQKHUsZXwzMjc2OCw2NzE3NDQxMSksbiYmKG49SihuLDEpKTtsZXQgYz1udWxsLGE9bnVsbCxnPTAsbT1udWxsLHM9dS50b2tlbj09PTg2MDkwfHx1LnRva2VuPT09MjQxNzM5fHx1LnRva2VuPT09ODYwOTIsayx7dG9rZW46Qyx0b2tlblBvczpiLGxpbmVQb3M6RSxjb2xQb3M6d309dTtpZihzP0M9PT0yNDE3Mzk/KG09SSh1LGUsMCksdS50b2tlbiYyMjQwNTEyPyh1LnRva2VuPT09ODczODg2OD9lJjEwMjQmJmQodSw2NSk6bT15KHUsZSxiLEUsdyx7dHlwZTpcIlZhcmlhYmxlRGVjbGFyYXRpb25cIixraW5kOlwibGV0XCIsZGVjbGFyYXRpb25zOnkyKHUsZXwxMzQyMTc3Mjgsbiw4LDMyKX0pLHUuYXNzaWduYWJsZT0xKTplJjEwMjQ/ZCh1LDY1KToocz0hMSx1LmFzc2lnbmFibGU9MSxtPU4odSxlLG0sMCwwLGIsRSx3KSx1LnRva2VuPT09Mjc0NTQ5JiZkKHUsMTEyKSkpOihBKHUsZSksbT15KHUsZSxiLEUsdyxDPT09ODYwOTA/e3R5cGU6XCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsa2luZDpcInZhclwiLGRlY2xhcmF0aW9uczp5Mih1LGV8MTM0MjE3NzI4LG4sNCwzMil9Ont0eXBlOlwiVmFyaWFibGVEZWNsYXJhdGlvblwiLGtpbmQ6XCJjb25zdFwiLGRlY2xhcmF0aW9uczp5Mih1LGV8MTM0MjE3NzI4LG4sMTYsMzIpfSksdS5hc3NpZ25hYmxlPTEpOkM9PT0xMDc0NzkwNDE3P2YmJmQodSw4MCk6KEMmMjA5NzE1Mik9PT0yMDk3MTUyPyhtPUM9PT0yMTYyNzAwP1kodSxlLHZvaWQgMCwxLDAsMCwyLDMyLGIsRSx3KTpfKHUsZSx2b2lkIDAsMSwwLDAsMiwzMixiLEUsdyksZz11LmRlc3RydWN0aWJsZSxlJjI1NiYmZyY2NCYmZCh1LDYxKSx1LmFzc2lnbmFibGU9ZyYxNj8yOjEsbT1OKHUsZXwxMzQyMTc3MjgsbSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTptPVcodSxlfDEzNDIxNzcyOCwxLDAsMSxiLEUsdyksKHUudG9rZW4mMjYyMTQ0KT09PTI2MjE0NCl7aWYodS50b2tlbj09PTI3NDU0OSl7dS5hc3NpZ25hYmxlJjImJmQodSw3OCxmP1wiYXdhaXRcIjpcIm9mXCIpLHIodSxtKSxBKHUsZXwzMjc2OCksaz1SKHUsZSwxLDAsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyksUCh1LGV8MzI3NjgsMTYpO2xldCBTPVAyKHUsZSxuLGkpO3JldHVybiB5KHUsZSx0LG8sbCx7dHlwZTpcIkZvck9mU3RhdGVtZW50XCIsbGVmdDptLHJpZ2h0OmssYm9keTpTLGF3YWl0OmZ9KX11LmFzc2lnbmFibGUmMiYmZCh1LDc4LFwiaW5cIikscih1LG0pLEEodSxlfDMyNzY4KSxmJiZkKHUsODApLGs9aih1LGUsMCwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSxQKHUsZXwzMjc2OCwxNik7bGV0IE09UDIodSxlLG4saSk7cmV0dXJuIHkodSxlLHQsbyxsLHt0eXBlOlwiRm9ySW5TdGF0ZW1lbnRcIixib2R5Ok0sbGVmdDptLHJpZ2h0Omt9KX1mJiZkKHUsODApLHN8fChnJjgmJnUudG9rZW4hPT0xMDc3OTM2MTU3JiZkKHUsNzgsXCJsb29wXCIpLG09Tyh1LGV8MTM0MjE3NzI4LDAsMCxiLEUsdyxtKSksdS50b2tlbj09PTE4JiYobT1lMih1LGUsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyxtKSksUCh1LGV8MzI3NjgsMTA3NDc5MDQxNyksdS50b2tlbiE9PTEwNzQ3OTA0MTcmJihjPWoodSxlLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpLFAodSxlfDMyNzY4LDEwNzQ3OTA0MTcpLHUudG9rZW4hPT0xNiYmKGE9aih1LGUsMCwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSksUCh1LGV8MzI3NjgsMTYpO2xldCB2PVAyKHUsZSxuLGkpO3JldHVybiB5KHUsZSx0LG8sbCx7dHlwZTpcIkZvclN0YXRlbWVudFwiLGluaXQ6bSx0ZXN0OmMsdXBkYXRlOmEsYm9keTp2fSl9ZnVuY3Rpb24gWXUodSxlLG4pe3JldHVybiB0dShlLHUudG9rZW4pfHxkKHUsMTE1KSwodS50b2tlbiY1MzcwNzk4MDgpPT09NTM3MDc5ODA4JiZkKHUsMTE2KSxuJiZ0Mih1LGUsbix1LnRva2VuVmFsdWUsOCwwKSxJKHUsZSwwKX1mdW5jdGlvbiBxMSh1LGUsbil7bGV0IGk9dS50b2tlblBvcyx0PXUubGluZVBvcyxvPXUuY29sUG9zO0EodSxlKTtsZXQgbD1udWxsLHt0b2tlblBvczpmLGxpbmVQb3M6Yyxjb2xQb3M6YX09dSxnPVtdO2lmKHUudG9rZW49PT0xMzQyODMyNjcpbD1YKHUsZSk7ZWxzZXtpZih1LnRva2VuJjE0MzM2MCl7bGV0IG09WXUodSxlLG4pO2lmKGc9W3kodSxlLGYsYyxhLHt0eXBlOlwiSW1wb3J0RGVmYXVsdFNwZWNpZmllclwiLGxvY2FsOm19KV0scSh1LGUsMTgpKXN3aXRjaCh1LnRva2VuKXtjYXNlIDg0NTcwMTQ6Zy5wdXNoKEZ1KHUsZSxuKSk7YnJlYWs7Y2FzZSAyMTYyNzAwOnF1KHUsZSxuLGcpO2JyZWFrO2RlZmF1bHQ6ZCh1LDEwNSl9fWVsc2Ugc3dpdGNoKHUudG9rZW4pe2Nhc2UgODQ1NzAxNDpnPVtGdSh1LGUsbildO2JyZWFrO2Nhc2UgMjE2MjcwMDpxdSh1LGUsbixnKTticmVhaztjYXNlIDY3MTc0NDExOnJldHVybiBadSh1LGUsaSx0LG8pO2Nhc2UgNjcxMDg4Nzc6cmV0dXJuIFF1KHUsZSxpLHQsbyk7ZGVmYXVsdDpkKHUsMjgsVVt1LnRva2VuJjI1NV0pfWw9TDEodSxlKX1yZXR1cm4geih1LGV8MzI3NjgpLHkodSxlLGksdCxvLHt0eXBlOlwiSW1wb3J0RGVjbGFyYXRpb25cIixzcGVjaWZpZXJzOmcsc291cmNlOmx9KX1mdW5jdGlvbiBGdSh1LGUsbil7bGV0e3Rva2VuUG9zOmksbGluZVBvczp0LGNvbFBvczpvfT11O3JldHVybiBBKHUsZSksUCh1LGUsNzc5MzQpLCh1LnRva2VuJjEzNDIxNzcyOCk9PT0xMzQyMTc3MjgmJmgyKGksdS5saW5lLHUuaW5kZXgsMjgsVVt1LnRva2VuJjI1NV0pLHkodSxlLGksdCxvLHt0eXBlOlwiSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyXCIsbG9jYWw6WXUodSxlLG4pfSl9ZnVuY3Rpb24gTDEodSxlKXtyZXR1cm4gcSh1LGUsMTI0MDQpLHUudG9rZW4hPT0xMzQyODMyNjcmJmQodSwxMDMsXCJJbXBvcnRcIiksWCh1LGUpfWZ1bmN0aW9uIHF1KHUsZSxuLGkpe2ZvcihBKHUsZSk7dS50b2tlbiYxNDMzNjA7KXtsZXR7dG9rZW46dCx0b2tlblZhbHVlOm8sdG9rZW5Qb3M6bCxsaW5lUG9zOmYsY29sUG9zOmN9PXUsYT1JKHUsZSwwKSxnO3EodSxlLDc3OTM0KT8oKHUudG9rZW4mMTM0MjE3NzI4KT09PTEzNDIxNzcyOHx8dS50b2tlbj09PTE4P2QodSwxMDQpOlUyKHUsZSwxNix1LnRva2VuLDApLG89dS50b2tlblZhbHVlLGc9SSh1LGUsMCkpOihVMih1LGUsMTYsdCwwKSxnPWEpLG4mJnQyKHUsZSxuLG8sOCwwKSxpLnB1c2goeSh1LGUsbCxmLGMse3R5cGU6XCJJbXBvcnRTcGVjaWZpZXJcIixsb2NhbDpnLGltcG9ydGVkOmF9KSksdS50b2tlbiE9PTEwNzQ3OTA0MTUmJlAodSxlLDE4KX1yZXR1cm4gUCh1LGUsMTA3NDc5MDQxNSksaX1mdW5jdGlvbiBRdSh1LGUsbixpLHQpe2xldCBvPUd1KHUsZSx5KHUsZSxuLGksdCx7dHlwZTpcIklkZW50aWZpZXJcIixuYW1lOlwiaW1wb3J0XCJ9KSxuLGksdCk7cmV0dXJuIG89Tih1LGUsbywwLDAsbixpLHQpLG89Tyh1LGUsMCwwLG4saSx0LG8pLEEyKHUsZSxvLG4saSx0KX1mdW5jdGlvbiBadSh1LGUsbixpLHQpe2xldCBvPXh1KHUsZSwwLG4saSx0KTtyZXR1cm4gbz1OKHUsZSxvLDAsMCxuLGksdCksdS50b2tlbj09PTE4JiYobz1lMih1LGUsMCxuLGksdCxvKSksQTIodSxlLG8sbixpLHQpfWZ1bmN0aW9uIEkxKHUsZSxuKXtsZXQgaT11LnRva2VuUG9zLHQ9dS5saW5lUG9zLG89dS5jb2xQb3M7QSh1LGV8MzI3NjgpO2xldCBsPVtdLGY9bnVsbCxjPW51bGwsYTtpZihxKHUsZXwzMjc2OCwyMDU2Mykpe3N3aXRjaCh1LnRva2VuKXtjYXNlIDg2MTA2OntmPWkyKHUsZSxuLDQsMSwxLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO2JyZWFrfWNhc2UgMTMzOmNhc2UgODYwOTY6Zj1wMih1LGUsbiwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTticmVhaztjYXNlIDIwOTAwNzpsZXR7dG9rZW5Qb3M6ZyxsaW5lUG9zOm0sY29sUG9zOnN9PXU7Zj1JKHUsZSwwKTtsZXR7ZmxhZ3M6a309dTtrJjF8fCh1LnRva2VuPT09ODYxMDY/Zj1pMih1LGUsbiw0LDEsMSwxLGcsbSxzKTp1LnRva2VuPT09NjcxNzQ0MTE/KGY9bXUodSxlLGYsMSwxLDAsayxnLG0scyksZj1OKHUsZSxmLDAsMCxnLG0scyksZj1PKHUsZSwwLDAsZyxtLHMsZikpOnUudG9rZW4mMTQzMzYwJiYobiYmKG49ejIodSxlLHUudG9rZW5WYWx1ZSkpLGY9SSh1LGUsMCksZj12Mih1LGUsbixbZl0sMSxnLG0scykpKTticmVhaztkZWZhdWx0OmY9Uih1LGUsMSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLHoodSxlfDMyNzY4KX1yZXR1cm4gbiYmbDIodSxcImRlZmF1bHRcIikseSh1LGUsaSx0LG8se3R5cGU6XCJFeHBvcnREZWZhdWx0RGVjbGFyYXRpb25cIixkZWNsYXJhdGlvbjpmfSl9c3dpdGNoKHUudG9rZW4pe2Nhc2UgODQ1NzAxNDp7QSh1LGUpO2xldCBrPW51bGw7cmV0dXJuIHEodSxlLDc3OTM0KSYmKG4mJmwyKHUsdS50b2tlblZhbHVlKSxrPUkodSxlLDApKSxQKHUsZSwxMjQwNCksdS50b2tlbiE9PTEzNDI4MzI2NyYmZCh1LDEwMyxcIkV4cG9ydFwiKSxjPVgodSxlKSx6KHUsZXwzMjc2OCkseSh1LGUsaSx0LG8se3R5cGU6XCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiLHNvdXJjZTpjLGV4cG9ydGVkOmt9KX1jYXNlIDIxNjI3MDA6e0EodSxlKTtsZXQgaz1bXSxDPVtdO2Zvcig7dS50b2tlbiYxNDMzNjA7KXtsZXR7dG9rZW5Qb3M6Yix0b2tlblZhbHVlOkUsbGluZVBvczp3LGNvbFBvczp2fT11LE09SSh1LGUsMCksUzt1LnRva2VuPT09Nzc5MzQ/KEEodSxlKSwodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4JiZkKHUsMTA0KSxuJiYoay5wdXNoKHUudG9rZW5WYWx1ZSksQy5wdXNoKEUpKSxTPUkodSxlLDApKToobiYmKGsucHVzaCh1LnRva2VuVmFsdWUpLEMucHVzaCh1LnRva2VuVmFsdWUpKSxTPU0pLGwucHVzaCh5KHUsZSxiLHcsdix7dHlwZTpcIkV4cG9ydFNwZWNpZmllclwiLGxvY2FsOk0sZXhwb3J0ZWQ6U30pKSx1LnRva2VuIT09MTA3NDc5MDQxNSYmUCh1LGUsMTgpfWlmKFAodSxlLDEwNzQ3OTA0MTUpLHEodSxlLDEyNDA0KSl1LnRva2VuIT09MTM0MjgzMjY3JiZkKHUsMTAzLFwiRXhwb3J0XCIpLGM9WCh1LGUpO2Vsc2UgaWYobil7bGV0IGI9MCxFPWsubGVuZ3RoO2Zvcig7YjxFO2IrKylsMih1LGtbYl0pO2ZvcihiPTAsRT1DLmxlbmd0aDtiPEU7YisrKXQxKHUsQ1tiXSl9eih1LGV8MzI3NjgpO2JyZWFrfWNhc2UgODYwOTY6Zj1wMih1LGUsbiwyLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTticmVhaztjYXNlIDg2MTA2OmY9aTIodSxlLG4sNCwxLDIsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7YnJlYWs7Y2FzZSAyNDE3Mzk6Zj14Mih1LGUsbiw4LDY0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTticmVhaztjYXNlIDg2MDkyOmY9eDIodSxlLG4sMTYsNjQsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO2JyZWFrO2Nhc2UgODYwOTA6Zj1fdSh1LGUsbiw2NCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7YnJlYWs7Y2FzZSAyMDkwMDc6bGV0e3Rva2VuUG9zOmcsbGluZVBvczptLGNvbFBvczpzfT11O2lmKEEodSxlKSwhKHUuZmxhZ3MmMSkmJnUudG9rZW49PT04NjEwNil7Zj1pMih1LGUsbiw0LDEsMiwxLGcsbSxzKSxuJiYoYT1mLmlkP2YuaWQubmFtZTpcIlwiLGwyKHUsYSkpO2JyZWFrfWRlZmF1bHQ6ZCh1LDI4LFVbdS50b2tlbiYyNTVdKX1yZXR1cm4geSh1LGUsaSx0LG8se3R5cGU6XCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsZGVjbGFyYXRpb246ZixzcGVjaWZpZXJzOmwsc291cmNlOmN9KX1mdW5jdGlvbiBSKHUsZSxuLGksdCxvLGwsZil7bGV0IGM9Syh1LGUsMiwwLG4saSx0LDEsbyxsLGYpO3JldHVybiBjPU4odSxlLGMsdCwwLG8sbCxmKSxPKHUsZSx0LDAsbyxsLGYsYyl9ZnVuY3Rpb24gZTIodSxlLG4saSx0LG8sbCl7bGV0IGY9W2xdO2Zvcig7cSh1LGV8MzI3NjgsMTgpOylmLnB1c2goUih1LGUsMSwwLG4sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTtyZXR1cm4geSh1LGUsaSx0LG8se3R5cGU6XCJTZXF1ZW5jZUV4cHJlc3Npb25cIixleHByZXNzaW9uczpmfSl9ZnVuY3Rpb24gaih1LGUsbixpLHQsbyxsKXtsZXQgZj1SKHUsZSxpLDAsbix0LG8sbCk7cmV0dXJuIHUudG9rZW49PT0xOD9lMih1LGUsbix0LG8sbCxmKTpmfWZ1bmN0aW9uIE8odSxlLG4saSx0LG8sbCxmKXtsZXR7dG9rZW46Y309dTtpZigoYyY0MTk0MzA0KT09PTQxOTQzMDQpe3UuYXNzaWduYWJsZSYyJiZkKHUsMjQpLCghaSYmYz09PTEwNzc5MzYxNTcmJmYudHlwZT09PVwiQXJyYXlFeHByZXNzaW9uXCJ8fGYudHlwZT09PVwiT2JqZWN0RXhwcmVzc2lvblwiKSYmcih1LGYpLEEodSxlfDMyNzY4KTtsZXQgYT1SKHUsZSwxLDEsbix1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHUuYXNzaWduYWJsZT0yLHkodSxlLHQsbyxsLGk/e3R5cGU6XCJBc3NpZ25tZW50UGF0dGVyblwiLGxlZnQ6ZixyaWdodDphfTp7dHlwZTpcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsbGVmdDpmLG9wZXJhdG9yOlVbYyYyNTVdLHJpZ2h0OmF9KX1yZXR1cm4oYyY4NDU0MTQ0KT09PTg0NTQxNDQmJihmPW4yKHUsZSxuLHQsbyxsLDQsYyxmKSkscSh1LGV8MzI3NjgsMjIpJiYoZj1mMih1LGUsZix0LG8sbCkpLGZ9ZnVuY3Rpb24gSTIodSxlLG4saSx0LG8sbCxmKXtsZXR7dG9rZW46Y309dTtBKHUsZXwzMjc2OCk7bGV0IGE9Uih1LGUsMSwxLG4sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiBmPXkodSxlLHQsbyxsLGk/e3R5cGU6XCJBc3NpZ25tZW50UGF0dGVyblwiLGxlZnQ6ZixyaWdodDphfTp7dHlwZTpcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsbGVmdDpmLG9wZXJhdG9yOlVbYyYyNTVdLHJpZ2h0OmF9KSx1LmFzc2lnbmFibGU9MixmfWZ1bmN0aW9uIGYyKHUsZSxuLGksdCxvKXtsZXQgbD1SKHUsKGV8MTM0MjE3NzI4KV4xMzQyMTc3MjgsMSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO1AodSxlfDMyNzY4LDIxKSx1LmFzc2lnbmFibGU9MTtsZXQgZj1SKHUsZSwxLDAsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHUuYXNzaWduYWJsZT0yLHkodSxlLGksdCxvLHt0eXBlOlwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIsdGVzdDpuLGNvbnNlcXVlbnQ6bCxhbHRlcm5hdGU6Zn0pfWZ1bmN0aW9uIG4yKHUsZSxuLGksdCxvLGwsZixjKXtsZXQgYT0tKChlJjEzNDIxNzcyOCk+MCkmODczODg2OCxnLG07Zm9yKHUuYXNzaWduYWJsZT0yO3UudG9rZW4mODQ1NDE0NCYmKGc9dS50b2tlbixtPWcmMzg0MCwoZyY1MjQyODgmJmYmMjY4NDM1NDU2fHxmJjUyNDI4OCYmZyYyNjg0MzU0NTYpJiZkKHUsMTYwKSwhKG0rKChnPT09ODQ1NzI3Myk8PDgpLSgoYT09PWcpPDwxMik8PWwpKTspQSh1LGV8MzI3NjgpLGM9eSh1LGUsaSx0LG8se3R5cGU6ZyY1MjQyODh8fGcmMjY4NDM1NDU2P1wiTG9naWNhbEV4cHJlc3Npb25cIjpcIkJpbmFyeUV4cHJlc3Npb25cIixsZWZ0OmMscmlnaHQ6bjIodSxlLG4sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MsbSxnLFcodSxlLDAsbiwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSksb3BlcmF0b3I6VVtnJjI1NV19KTtyZXR1cm4gdS50b2tlbj09PTEwNzc5MzYxNTcmJmQodSwyNCksY31mdW5jdGlvbiBOMSh1LGUsbixpLHQsbyxsKXtufHxkKHUsMCk7bGV0IGY9dS50b2tlbjtBKHUsZXwzMjc2OCk7bGV0IGM9Vyh1LGUsMCxsLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB1LnRva2VuPT09ODQ1NzI3MyYmZCh1LDMxKSxlJjEwMjQmJmY9PT0xNjg2MzI3OCYmKGMudHlwZT09PVwiSWRlbnRpZmllclwiP2QodSwxMTgpOm4xKGMpJiZkKHUsMTI0KSksdS5hc3NpZ25hYmxlPTIseSh1LGUsaSx0LG8se3R5cGU6XCJVbmFyeUV4cHJlc3Npb25cIixvcGVyYXRvcjpVW2YmMjU1XSxhcmd1bWVudDpjLHByZWZpeDohMH0pfWZ1bmN0aW9uIFYxKHUsZSxuLGksdCxvLGwsZixjLGEpe2xldHt0b2tlbjpnfT11LG09SSh1LGUsbykse2ZsYWdzOnN9PXU7aWYoIShzJjEpKXtpZih1LnRva2VuPT09ODYxMDYpcmV0dXJuIHVlKHUsZSwxLG4sZixjLGEpO2lmKCh1LnRva2VuJjE0MzM2MCk9PT0xNDMzNjApcmV0dXJuIGl8fGQodSwwKSxpZSh1LGUsdCxmLGMsYSl9cmV0dXJuIWwmJnUudG9rZW49PT02NzE3NDQxMT9tdSh1LGUsbSx0LDEsMCxzLGYsYyxhKTp1LnRva2VuPT09MTA/KG91KHUsZSxnLDEpLGwmJmQodSw0OSksSzIodSxlLHUudG9rZW5WYWx1ZSxtLGwsdCwwLGYsYyxhKSk6bX1mdW5jdGlvbiBSMSh1LGUsbixpLHQsbyxsKXtpZihuJiYodS5kZXN0cnVjdGlibGV8PTI1NiksZSYyMDk3MTUyKXtBKHUsZXwzMjc2OCksZSY4Mzg4NjA4JiZkKHUsMzApLGl8fGQodSwyNCksdS50b2tlbj09PTIyJiZkKHUsMTIxKTtsZXQgZj1udWxsLGM9ITE7cmV0dXJuIHUuZmxhZ3MmMXx8KGM9cSh1LGV8MzI3NjgsODQ1NzAxNCksKHUudG9rZW4mNzc4MjR8fGMpJiYoZj1SKHUsZSwxLDAsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpKSx1LmFzc2lnbmFibGU9Mix5KHUsZSx0LG8sbCx7dHlwZTpcIllpZWxkRXhwcmVzc2lvblwiLGFyZ3VtZW50OmYsZGVsZWdhdGU6Y30pfXJldHVybiBlJjEwMjQmJmQodSw5NSxcInlpZWxkXCIpLGF1KHUsZSx0LG8sbCl9ZnVuY3Rpb24gTzEodSxlLG4saSx0LG8sbCl7aWYoaSYmKHUuZGVzdHJ1Y3RpYmxlfD0xMjgpLGUmNDE5NDMwNHx8ZSYyMDQ4JiZlJjgxOTIpe24mJmQodSwwKSxlJjgzODg2MDgmJmgyKHUuaW5kZXgsdS5saW5lLHUuaW5kZXgsMjkpLEEodSxlfDMyNzY4KTtsZXQgZj1XKHUsZSwwLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHUudG9rZW49PT04NDU3MjczJiZkKHUsMzEpLHUuYXNzaWduYWJsZT0yLHkodSxlLHQsbyxsLHt0eXBlOlwiQXdhaXRFeHByZXNzaW9uXCIsYXJndW1lbnQ6Zn0pfXJldHVybiBlJjIwNDgmJmQodSw5NiksYXUodSxlLHQsbyxsKX1mdW5jdGlvbiBIMih1LGUsbixpLHQsbyl7bGV0e3Rva2VuUG9zOmwsbGluZVBvczpmLGNvbFBvczpjfT11O1AodSxlfDMyNzY4LDIxNjI3MDApO2xldCBhPVtdLGc9ZTtpZih1LnRva2VuIT09MTA3NDc5MDQxNSl7Zm9yKDt1LnRva2VuPT09MTM0MjgzMjY3Oyl7bGV0e2luZGV4Om0sdG9rZW5Qb3M6cyx0b2tlblZhbHVlOmssdG9rZW46Q309dSxiPVgodSxlKTtYdSh1LG0scyxrKSYmKGV8PTEwMjQsdS5mbGFncyYxMjgmJmgyKHUuaW5kZXgsdS5saW5lLHUudG9rZW5Qb3MsNjQpLHUuZmxhZ3MmNjQmJmgyKHUuaW5kZXgsdS5saW5lLHUudG9rZW5Qb3MsOCkpLGEucHVzaChmdSh1LGUsYixDLHMsdS5saW5lUG9zLHUuY29sUG9zKSl9ZSYxMDI0JiYodCYmKCh0JjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJmQodSwxMTYpLCh0JjM2ODY0KT09PTM2ODY0JiZkKHUsMzgpKSx1LmZsYWdzJjUxMiYmZCh1LDExNiksdS5mbGFncyYyNTYmJmQodSwxMTUpKSxlJjY0JiZuJiZvIT09dm9pZCAwJiYhKGcmMTAyNCkmJiEoZSY4MTkyKSYmWDIobyl9Zm9yKHUuZmxhZ3M9KHUuZmxhZ3N8NTEyfDI1Nnw2NCleODMyLHUuZGVzdHJ1Y3RpYmxlPSh1LmRlc3RydWN0aWJsZXwyNTYpXjI1Njt1LnRva2VuIT09MTA3NDc5MDQxNTspYS5wdXNoKFMyKHUsZSxuLDQse30pKTtyZXR1cm4gUCh1LGkmMjQ/ZXwzMjc2ODplLDEwNzQ3OTA0MTUpLHUuZmxhZ3MmPS0xOTMsdS50b2tlbj09PTEwNzc5MzYxNTcmJmQodSwyNCkseSh1LGUsbCxmLGMse3R5cGU6XCJCbG9ja1N0YXRlbWVudFwiLGJvZHk6YX0pfWZ1bmN0aW9uIFUxKHUsZSxuLGksdCl7c3dpdGNoKEEodSxlKSx1LnRva2VuKXtjYXNlIDY3MTA4OTkxOmQodSwxNjIpO2Nhc2UgNjcxNzQ0MTE6e2UmNTI0Mjg4fHxkKHUsMjYpLGUmMTYzODQmJmQodSwyNyksdS5hc3NpZ25hYmxlPTI7YnJlYWt9Y2FzZSA2OTI3MTU3MTpjYXNlIDY3MTA4ODc3OntlJjI2MjE0NHx8ZCh1LDI3KSxlJjE2Mzg0JiZkKHUsMjcpLHUuYXNzaWduYWJsZT0xO2JyZWFrfWRlZmF1bHQ6ZCh1LDI4LFwic3VwZXJcIil9cmV0dXJuIHkodSxlLG4saSx0LHt0eXBlOlwiU3VwZXJcIn0pfWZ1bmN0aW9uIFcodSxlLG4saSx0LG8sbCxmKXtsZXQgYz1LKHUsZSwyLDAsbiwwLGksdCxvLGwsZik7cmV0dXJuIE4odSxlLGMsaSwwLG8sbCxmKX1mdW5jdGlvbiBNMSh1LGUsbixpLHQsbyl7dS5hc3NpZ25hYmxlJjImJmQodSw1Myk7bGV0e3Rva2VuOmx9PXU7cmV0dXJuIEEodSxlKSx1LmFzc2lnbmFibGU9Mix5KHUsZSxpLHQsbyx7dHlwZTpcIlVwZGF0ZUV4cHJlc3Npb25cIixhcmd1bWVudDpuLG9wZXJhdG9yOlVbbCYyNTVdLHByZWZpeDohMX0pfWZ1bmN0aW9uIE4odSxlLG4saSx0LG8sbCxmKXtpZigodS50b2tlbiYzMzYxOTk2OCk9PT0zMzYxOTk2OCYmISh1LmZsYWdzJjEpKW49TTEodSxlLG4sbyxsLGYpO2Vsc2UgaWYoKHUudG9rZW4mNjcxMDg4NjQpPT09NjcxMDg4NjQpe3N3aXRjaChlPShlfDEzNDIxNzcyOCleMTM0MjE3NzI4LHUudG9rZW4pe2Nhc2UgNjcxMDg4Nzc6e0EodSwoZXwxMDczNzQxODI0fDgxOTIpXjgxOTIpLHUuYXNzaWduYWJsZT0xO2xldCBjPXJ1KHUsZSk7bj15KHUsZSxvLGwsZix7dHlwZTpcIk1lbWJlckV4cHJlc3Npb25cIixvYmplY3Q6bixjb21wdXRlZDohMSxwcm9wZXJ0eTpjfSk7YnJlYWt9Y2FzZSA2OTI3MTU3MTp7bGV0IGM9ITE7KHUuZmxhZ3MmMjA0OCk9PT0yMDQ4JiYoYz0hMCx1LmZsYWdzPSh1LmZsYWdzfDIwNDgpXjIwNDgpLEEodSxlfDMyNzY4KTtsZXR7dG9rZW5Qb3M6YSxsaW5lUG9zOmcsY29sUG9zOm19PXUscz1qKHUsZSxpLDEsYSxnLG0pO1AodSxlLDIwKSx1LmFzc2lnbmFibGU9MSxuPXkodSxlLG8sbCxmLHt0eXBlOlwiTWVtYmVyRXhwcmVzc2lvblwiLG9iamVjdDpuLGNvbXB1dGVkOiEwLHByb3BlcnR5OnN9KSxjJiYodS5mbGFnc3w9MjA0OCk7YnJlYWt9Y2FzZSA2NzE3NDQxMTp7aWYoKHUuZmxhZ3MmMTAyNCk9PT0xMDI0KXJldHVybiB1LmZsYWdzPSh1LmZsYWdzfDEwMjQpXjEwMjQsbjtsZXQgYz0hMTsodS5mbGFncyYyMDQ4KT09PTIwNDgmJihjPSEwLHUuZmxhZ3M9KHUuZmxhZ3N8MjA0OCleMjA0OCk7bGV0IGE9c3UodSxlLGkpO3UuYXNzaWduYWJsZT0yLG49eSh1LGUsbyxsLGYse3R5cGU6XCJDYWxsRXhwcmVzc2lvblwiLGNhbGxlZTpuLGFyZ3VtZW50czphfSksYyYmKHUuZmxhZ3N8PTIwNDgpO2JyZWFrfWNhc2UgNjcxMDg5OTE6e0EodSwoZXwxMDczNzQxODI0fDgxOTIpXjgxOTIpLHUuZmxhZ3N8PTIwNDgsdS5hc3NpZ25hYmxlPTIsbj1KMSh1LGUsbixvLGwsZik7YnJlYWt9ZGVmYXVsdDoodS5mbGFncyYyMDQ4KT09PTIwNDgmJmQodSwxNjEpLHUuYXNzaWduYWJsZT0yLG49eSh1LGUsbyxsLGYse3R5cGU6XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIix0YWc6bixxdWFzaTp1LnRva2VuPT09NjcxNzQ0MDg/ZHUodSxlfDY1NTM2KTpjdSh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpfSl9bj1OKHUsZSxuLDAsMSxvLGwsZil9cmV0dXJuIHQ9PT0wJiYodS5mbGFncyYyMDQ4KT09PTIwNDgmJih1LmZsYWdzPSh1LmZsYWdzfDIwNDgpXjIwNDgsbj15KHUsZSxvLGwsZix7dHlwZTpcIkNoYWluRXhwcmVzc2lvblwiLGV4cHJlc3Npb246bn0pKSxufWZ1bmN0aW9uIEoxKHUsZSxuLGksdCxvKXtsZXQgbD0hMSxmO2lmKCh1LnRva2VuPT09NjkyNzE1NzF8fHUudG9rZW49PT02NzE3NDQxMSkmJih1LmZsYWdzJjIwNDgpPT09MjA0OCYmKGw9ITAsdS5mbGFncz0odS5mbGFnc3wyMDQ4KV4yMDQ4KSx1LnRva2VuPT09NjkyNzE1NzEpe0EodSxlfDMyNzY4KTtsZXR7dG9rZW5Qb3M6YyxsaW5lUG9zOmEsY29sUG9zOmd9PXUsbT1qKHUsZSwwLDEsYyxhLGcpO1AodSxlLDIwKSx1LmFzc2lnbmFibGU9MixmPXkodSxlLGksdCxvLHt0eXBlOlwiTWVtYmVyRXhwcmVzc2lvblwiLG9iamVjdDpuLGNvbXB1dGVkOiEwLG9wdGlvbmFsOiEwLHByb3BlcnR5Om19KX1lbHNlIGlmKHUudG9rZW49PT02NzE3NDQxMSl7bGV0IGM9c3UodSxlLDApO3UuYXNzaWduYWJsZT0yLGY9eSh1LGUsaSx0LG8se3R5cGU6XCJDYWxsRXhwcmVzc2lvblwiLGNhbGxlZTpuLGFyZ3VtZW50czpjLG9wdGlvbmFsOiEwfSl9ZWxzZXt1LnRva2VuJjE0MzM2MHx8ZCh1LDE1NSk7bGV0IGM9SSh1LGUsMCk7dS5hc3NpZ25hYmxlPTIsZj15KHUsZSxpLHQsbyx7dHlwZTpcIk1lbWJlckV4cHJlc3Npb25cIixvYmplY3Q6bixjb21wdXRlZDohMSxvcHRpb25hbDohMCxwcm9wZXJ0eTpjfSl9cmV0dXJuIGwmJih1LmZsYWdzfD0yMDQ4KSxmfWZ1bmN0aW9uIHJ1KHUsZSl7cmV0dXJuISh1LnRva2VuJjE0MzM2MCkmJnUudG9rZW4hPT0xMzEmJmQodSwxNTUpLGUmMSYmdS50b2tlbj09PTEzMT9qMih1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpOkkodSxlLDApfWZ1bmN0aW9uIGoxKHUsZSxuLGksdCxvLGwpe24mJmQodSw1NCksaXx8ZCh1LDApO2xldHt0b2tlbjpmfT11O0EodSxlfDMyNzY4KTtsZXQgYz1XKHUsZSwwLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIHUuYXNzaWduYWJsZSYyJiZkKHUsNTMpLHUuYXNzaWduYWJsZT0yLHkodSxlLHQsbyxsLHt0eXBlOlwiVXBkYXRlRXhwcmVzc2lvblwiLGFyZ3VtZW50OmMsb3BlcmF0b3I6VVtmJjI1NV0scHJlZml4OiEwfSl9ZnVuY3Rpb24gSyh1LGUsbixpLHQsbyxsLGYsYyxhLGcpe2lmKCh1LnRva2VuJjE0MzM2MCk9PT0xNDMzNjApe3N3aXRjaCh1LnRva2VuKXtjYXNlIDIwOTAwODpyZXR1cm4gTzEodSxlLGksbCxjLGEsZyk7Y2FzZSAyNDE3NzM6cmV0dXJuIFIxKHUsZSxsLHQsYyxhLGcpO2Nhc2UgMjA5MDA3OnJldHVybiBWMSh1LGUsbCxmLHQsbyxpLGMsYSxnKX1sZXR7dG9rZW46bSx0b2tlblZhbHVlOnN9PXUsaz1JKHUsZXw2NTUzNixvKTtyZXR1cm4gdS50b2tlbj09PTEwPyhmfHxkKHUsMCksb3UodSxlLG0sMSksSzIodSxlLHMsayxpLHQsMCxjLGEsZykpOihlJjE2Mzg0JiZtPT09NTM3MDc5OTI4JiZkKHUsMTI3KSxtPT09MjQxNzM5JiYoZSYxMDI0JiZkKHUsMTEwKSxuJjI0JiZkKHUsOTgpKSx1LmFzc2lnbmFibGU9ZSYxMDI0JiYobSY1MzcwNzk4MDgpPT09NTM3MDc5ODA4PzI6MSxrKX1pZigodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4KXJldHVybiBYKHUsZSk7c3dpdGNoKHUudG9rZW4pe2Nhc2UgMzM2MTk5OTU6Y2FzZSAzMzYxOTk5NjpyZXR1cm4gajEodSxlLGksZixjLGEsZyk7Y2FzZSAxNjg2MzI3ODpjYXNlIDE2ODQyODAwOmNhc2UgMTY4NDI4MDE6Y2FzZSAyNTIzMzk3MDpjYXNlIDI1MjMzOTcxOmNhc2UgMTY4NjMyNzc6Y2FzZSAxNjg2MzI3OTpyZXR1cm4gTjEodSxlLGYsYyxhLGcsbCk7Y2FzZSA4NjEwNjpyZXR1cm4gdWUodSxlLDAsbCxjLGEsZyk7Y2FzZSAyMTYyNzAwOnJldHVybiBXMSh1LGUsdD8wOjEsbCxjLGEsZyk7Y2FzZSA2OTI3MTU3MTpyZXR1cm4gJDEodSxlLHQ/MDoxLGwsYyxhLGcpO2Nhc2UgNjcxNzQ0MTE6cmV0dXJuIFkxKHUsZSx0LDEsMCxjLGEsZyk7Y2FzZSA4NjAyMTpjYXNlIDg2MDIyOmNhc2UgODYwMjM6cmV0dXJuIEgxKHUsZSxjLGEsZyk7Y2FzZSA4NjExMzpyZXR1cm4gSzEodSxlKTtjYXNlIDY1NTQwOnJldHVybiByMSh1LGUsYyxhLGcpO2Nhc2UgMTMzOmNhc2UgODYwOTY6cmV0dXJuIEcxKHUsZSxsLGMsYSxnKTtjYXNlIDg2MTExOnJldHVybiBVMSh1LGUsYyxhLGcpO2Nhc2UgNjcxNzQ0MDk6cmV0dXJuIGN1KHUsZSxjLGEsZyk7Y2FzZSA2NzE3NDQwODpyZXR1cm4gZHUodSxlKTtjYXNlIDg2MTA5OnJldHVybiBRMSh1LGUsbCxjLGEsZyk7Y2FzZSAxMzQyODMzODk6cmV0dXJuIHB1KHUsZSxjLGEsZyk7Y2FzZSAxMzE6cmV0dXJuIGoyKHUsZSxjLGEsZyk7Y2FzZSA4NjEwODpyZXR1cm4gWDEodSxlLGksbCxjLGEsZyk7Y2FzZSA4NDU2MjU4OmlmKGUmMTYpcmV0dXJuIHl1KHUsZSwxLGMsYSxnKTtkZWZhdWx0OmlmKHR1KGUsdS50b2tlbikpcmV0dXJuIGF1KHUsZSxjLGEsZyk7ZCh1LDI4LFVbdS50b2tlbiYyNTVdKX19ZnVuY3Rpb24gWDEodSxlLG4saSx0LG8sbCl7bGV0IGY9SSh1LGUsMCk7cmV0dXJuIHUudG9rZW49PT02NzEwODg3Nz9HdSh1LGUsZix0LG8sbCk6KG4mJmQodSwxMzgpLGY9eHUodSxlLGksdCxvLGwpLHUuYXNzaWduYWJsZT0yLE4odSxlLGYsaSwwLHQsbyxsKSl9ZnVuY3Rpb24gR3UodSxlLG4saSx0LG8pe3JldHVybiBlJjIwNDh8fGQodSwxNjQpLEEodSxlKSx1LnRva2VuIT09MTQzNDk1JiZ1LnRva2VuVmFsdWUhPT1cIm1ldGFcIiYmZCh1LDI4LFVbdS50b2tlbiYyNTVdKSx1LmFzc2lnbmFibGU9Mix5KHUsZSxpLHQsbyx7dHlwZTpcIk1ldGFQcm9wZXJ0eVwiLG1ldGE6bixwcm9wZXJ0eTpJKHUsZSwwKX0pfWZ1bmN0aW9uIHh1KHUsZSxuLGksdCxvKXtQKHUsZXwzMjc2OCw2NzE3NDQxMSksdS50b2tlbj09PTE0JiZkKHUsMTM5KTtsZXQgbD1SKHUsZSwxLDAsbix1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIFAodSxlLDE2KSx5KHUsZSxpLHQsbyx7dHlwZTpcIkltcG9ydEV4cHJlc3Npb25cIixzb3VyY2U6bH0pfWZ1bmN0aW9uIHB1KHUsZSxuLGksdCl7bGV0e3Rva2VuUmF3Om8sdG9rZW5WYWx1ZTpsfT11O3JldHVybiBBKHUsZSksdS5hc3NpZ25hYmxlPTIseSh1LGUsbixpLHQsZSY1MTI/e3R5cGU6XCJMaXRlcmFsXCIsdmFsdWU6bCxiaWdpbnQ6by5zbGljZSgwLC0xKSxyYXc6b306e3R5cGU6XCJMaXRlcmFsXCIsdmFsdWU6bCxiaWdpbnQ6by5zbGljZSgwLC0xKX0pfWZ1bmN0aW9uIGN1KHUsZSxuLGksdCl7dS5hc3NpZ25hYmxlPTI7bGV0e3Rva2VuVmFsdWU6byx0b2tlblJhdzpsLHRva2VuUG9zOmYsbGluZVBvczpjLGNvbFBvczphfT11O1AodSxlLDY3MTc0NDA5KTtsZXQgZz1bVjIodSxlLG8sbCxmLGMsYSwhMCldO3JldHVybiB5KHUsZSxuLGksdCx7dHlwZTpcIlRlbXBsYXRlTGl0ZXJhbFwiLGV4cHJlc3Npb25zOltdLHF1YXNpczpnfSl9ZnVuY3Rpb24gZHUodSxlKXtlPShlfDEzNDIxNzcyOCleMTM0MjE3NzI4O2xldHt0b2tlblZhbHVlOm4sdG9rZW5SYXc6aSx0b2tlblBvczp0LGxpbmVQb3M6byxjb2xQb3M6bH09dTtQKHUsZXwzMjc2OCw2NzE3NDQwOCk7bGV0IGY9W1YyKHUsZSxuLGksdCxvLGwsITEpXSxjPVtqKHUsZSwwLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpXTtmb3IodS50b2tlbiE9PTEwNzQ3OTA0MTUmJmQodSw4MSk7KHUudG9rZW49cmUodSxlKSkhPT02NzE3NDQwOTspe2xldHt0b2tlblZhbHVlOmEsdG9rZW5SYXc6Zyx0b2tlblBvczptLGxpbmVQb3M6cyxjb2xQb3M6a309dTtQKHUsZXwzMjc2OCw2NzE3NDQwOCksZi5wdXNoKFYyKHUsZSxhLGcsbSxzLGssITEpKSxjLnB1c2goaih1LGUsMCwxLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSksdS50b2tlbiE9PTEwNzQ3OTA0MTUmJmQodSw4MSl9e2xldHt0b2tlblZhbHVlOmEsdG9rZW5SYXc6Zyx0b2tlblBvczptLGxpbmVQb3M6cyxjb2xQb3M6a309dTtQKHUsZSw2NzE3NDQwOSksZi5wdXNoKFYyKHUsZSxhLGcsbSxzLGssITApKX1yZXR1cm4geSh1LGUsdCxvLGwse3R5cGU6XCJUZW1wbGF0ZUxpdGVyYWxcIixleHByZXNzaW9uczpjLHF1YXNpczpmfSl9ZnVuY3Rpb24gVjIodSxlLG4saSx0LG8sbCxmKXtsZXQgYz15KHUsZSx0LG8sbCx7dHlwZTpcIlRlbXBsYXRlRWxlbWVudFwiLHZhbHVlOntjb29rZWQ6bixyYXc6aX0sdGFpbDpmfSksYT1mPzE6MjtyZXR1cm4gZSYyJiYoYy5zdGFydCs9MSxjLnJhbmdlWzBdKz0xLGMuZW5kLT1hLGMucmFuZ2VbMV0tPWEpLGUmNCYmKGMubG9jLnN0YXJ0LmNvbHVtbis9MSxjLmxvYy5lbmQuY29sdW1uLT1hKSxjfWZ1bmN0aW9uIHoxKHUsZSxuLGksdCl7ZT0oZXwxMzQyMTc3MjgpXjEzNDIxNzcyOCxQKHUsZXwzMjc2OCwxNCk7bGV0IG89Uih1LGUsMSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB1LmFzc2lnbmFibGU9MSx5KHUsZSxuLGksdCx7dHlwZTpcIlNwcmVhZEVsZW1lbnRcIixhcmd1bWVudDpvfSl9ZnVuY3Rpb24gc3UodSxlLG4pe0EodSxlfDMyNzY4KTtsZXQgaT1bXTtpZih1LnRva2VuPT09MTYpcmV0dXJuIEEodSxlKSxpO2Zvcig7dS50b2tlbiE9PTE2JiYodS50b2tlbj09PTE0P2kucHVzaCh6MSh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTppLnB1c2goUih1LGUsMSwwLG4sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKSwhKHUudG9rZW4hPT0xOHx8KEEodSxlfDMyNzY4KSx1LnRva2VuPT09MTYpKSk7KTtyZXR1cm4gUCh1LGUsMTYpLGl9ZnVuY3Rpb24gSSh1LGUsbil7bGV0e3Rva2VuVmFsdWU6aSx0b2tlblBvczp0LGxpbmVQb3M6byxjb2xQb3M6bH09dTtyZXR1cm4gQSh1LGUpLHkodSxlLHQsbyxsLGUmMjY4NDM1NDU2P3t0eXBlOlwiSWRlbnRpZmllclwiLG5hbWU6aSxwYXR0ZXJuOm49PT0xfTp7dHlwZTpcIklkZW50aWZpZXJcIixuYW1lOml9KX1mdW5jdGlvbiBYKHUsZSl7bGV0e3Rva2VuVmFsdWU6bix0b2tlblJhdzppLHRva2VuUG9zOnQsbGluZVBvczpvLGNvbFBvczpsfT11O3JldHVybiB1LnRva2VuPT09MTM0MjgzMzg5P3B1KHUsZSx0LG8sbCk6KEEodSxlKSx1LmFzc2lnbmFibGU9Mix5KHUsZSx0LG8sbCxlJjUxMj97dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpuLHJhdzppfTp7dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpufSkpfWZ1bmN0aW9uIEgxKHUsZSxuLGksdCl7bGV0IG89VVt1LnRva2VuJjI1NV0sbD11LnRva2VuPT09ODYwMjM/bnVsbDpvPT09XCJ0cnVlXCI7cmV0dXJuIEEodSxlKSx1LmFzc2lnbmFibGU9Mix5KHUsZSxuLGksdCxlJjUxMj97dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpsLHJhdzpvfTp7dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpsfSl9ZnVuY3Rpb24gSzEodSxlKXtsZXR7dG9rZW5Qb3M6bixsaW5lUG9zOmksY29sUG9zOnR9PXU7cmV0dXJuIEEodSxlKSx1LmFzc2lnbmFibGU9Mix5KHUsZSxuLGksdCx7dHlwZTpcIlRoaXNFeHByZXNzaW9uXCJ9KX1mdW5jdGlvbiBpMih1LGUsbixpLHQsbyxsLGYsYyxhKXtBKHUsZXwzMjc2OCk7bGV0IGc9dD9pdSh1LGUsODQ1NzAxNCk6MCxtPW51bGwscyxrPW4/czIoKTp2b2lkIDA7aWYodS50b2tlbj09PTY3MTc0NDExKW8mMXx8ZCh1LDM3LFwiRnVuY3Rpb25cIik7ZWxzZXtsZXQgRT1pJjQmJighKGUmODE5Mil8fCEoZSYyMDQ4KSk/NDo2NDt6dSh1LGV8KGUmMzA3Mik8PDExLHUudG9rZW4pLG4mJihFJjQ/JHUodSxlLG4sdS50b2tlblZhbHVlLEUpOnQyKHUsZSxuLHUudG9rZW5WYWx1ZSxFLGkpLGs9SihrLDI1NiksbyYmbyYyJiZsMih1LHUudG9rZW5WYWx1ZSkpLHM9dS50b2tlbix1LnRva2VuJjE0MzM2MD9tPUkodSxlLDApOmQodSwyOCxVW3UudG9rZW4mMjU1XSl9ZT0oZXwzMjI0MzcxMileMzIyNDM3MTJ8NjcxMDg4NjR8bCoyK2c8PDIxfChnPzA6MTA3Mzc0MTgyNCksbiYmKGs9SihrLDUxMikpO2xldCBDPW5lKHUsZXw4Mzg4NjA4LGssMCwxKSxiPUgyKHUsKGV8ODE5Mnw0MDk2fDEzMTA3MileMTQzMzYwLG4/SihrLDEyOCk6ayw4LHMsbj9rLnNjb3BlRXJyb3I6dm9pZCAwKTtyZXR1cm4geSh1LGUsZixjLGEse3R5cGU6XCJGdW5jdGlvbkRlY2xhcmF0aW9uXCIsaWQ6bSxwYXJhbXM6Qyxib2R5OmIsYXN5bmM6bD09PTEsZ2VuZXJhdG9yOmc9PT0xfSl9ZnVuY3Rpb24gdWUodSxlLG4saSx0LG8sbCl7QSh1LGV8MzI3NjgpO2xldCBmPWl1KHUsZSw4NDU3MDE0KSxjPW4qMitmPDwyMSxhPW51bGwsZyxtPWUmNjQ/czIoKTp2b2lkIDA7KHUudG9rZW4mMTc2MTI4KT4wJiYoenUodSwoZXwzMjI0MzcxMileMzIyNDM3MTJ8Yyx1LnRva2VuKSxtJiYobT1KKG0sMjU2KSksZz11LnRva2VuLGE9SSh1LGUsMCkpLGU9KGV8MzIyNDM3MTIpXjMyMjQzNzEyfDY3MTA4ODY0fGN8KGY/MDoxMDczNzQxODI0KSxtJiYobT1KKG0sNTEyKSk7bGV0IHM9bmUodSxlfDgzODg2MDgsbSxpLDEpLGs9SDIodSxlJi0xMzQzNzc0NzMsbSYmSihtLDEyOCksMCxnLHZvaWQgMCk7cmV0dXJuIHUuYXNzaWduYWJsZT0yLHkodSxlLHQsbyxsLHt0eXBlOlwiRnVuY3Rpb25FeHByZXNzaW9uXCIsaWQ6YSxwYXJhbXM6cyxib2R5OmssYXN5bmM6bj09PTEsZ2VuZXJhdG9yOmY9PT0xfSl9ZnVuY3Rpb24gJDEodSxlLG4saSx0LG8sbCl7bGV0IGY9Xyh1LGUsdm9pZCAwLG4saSwwLDIsMCx0LG8sbCk7cmV0dXJuIGUmMjU2JiZ1LmRlc3RydWN0aWJsZSY2NCYmZCh1LDYxKSx1LmRlc3RydWN0aWJsZSY4JiZkKHUsNjApLGZ9ZnVuY3Rpb24gXyh1LGUsbixpLHQsbyxsLGYsYyxhLGcpe0EodSxlfDMyNzY4KTtsZXQgbT1bXSxzPTA7Zm9yKGU9KGV8MTM0MjE3NzI4KV4xMzQyMTc3Mjg7dS50b2tlbiE9PTIwOylpZihxKHUsZXwzMjc2OCwxOCkpbS5wdXNoKG51bGwpO2Vsc2V7bGV0IEMse3Rva2VuOmIsdG9rZW5Qb3M6RSxsaW5lUG9zOncsY29sUG9zOnYsdG9rZW5WYWx1ZTpNfT11O2lmKGImMTQzMzYwKWlmKEM9Syh1LGUsbCwwLDEsMCx0LDEsRSx3LHYpLHUudG9rZW49PT0xMDc3OTM2MTU3KXt1LmFzc2lnbmFibGUmMiYmZCh1LDI0KSxBKHUsZXwzMjc2OCksbiYmdTIodSxlLG4sTSxsLGYpO2xldCBTPVIodSxlLDEsMSx0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTtDPXkodSxlLEUsdyx2LG8/e3R5cGU6XCJBc3NpZ25tZW50UGF0dGVyblwiLGxlZnQ6QyxyaWdodDpTfTp7dHlwZTpcIkFzc2lnbm1lbnRFeHByZXNzaW9uXCIsb3BlcmF0b3I6XCI9XCIsbGVmdDpDLHJpZ2h0OlN9KSxzfD11LmRlc3RydWN0aWJsZSYyNTY/MjU2OjB8dS5kZXN0cnVjdGlibGUmMTI4PzEyODowfWVsc2UgdS50b2tlbj09PTE4fHx1LnRva2VuPT09MjA/KHUuYXNzaWduYWJsZSYyP3N8PTE2Om4mJnUyKHUsZSxuLE0sbCxmKSxzfD11LmRlc3RydWN0aWJsZSYyNTY/MjU2OjB8dS5kZXN0cnVjdGlibGUmMTI4PzEyODowKTooc3w9bCYxPzMyOmwmMj8wOjE2LEM9Tih1LGUsQyx0LDAsRSx3LHYpLHUudG9rZW4hPT0xOCYmdS50b2tlbiE9PTIwPyh1LnRva2VuIT09MTA3NzkzNjE1NyYmKHN8PTE2KSxDPU8odSxlLHQsbyxFLHcsdixDKSk6dS50b2tlbiE9PTEwNzc5MzYxNTcmJihzfD11LmFzc2lnbmFibGUmMj8xNjozMikpO2Vsc2UgYiYyMDk3MTUyPyhDPXUudG9rZW49PT0yMTYyNzAwP1kodSxlLG4sMCx0LG8sbCxmLEUsdyx2KTpfKHUsZSxuLDAsdCxvLGwsZixFLHcsdiksc3w9dS5kZXN0cnVjdGlibGUsdS5hc3NpZ25hYmxlPXUuZGVzdHJ1Y3RpYmxlJjE2PzI6MSx1LnRva2VuPT09MTh8fHUudG9rZW49PT0yMD91LmFzc2lnbmFibGUmMiYmKHN8PTE2KTp1LmRlc3RydWN0aWJsZSY4P2QodSw2OSk6KEM9Tih1LGUsQyx0LDAsRSx3LHYpLHM9dS5hc3NpZ25hYmxlJjI/MTY6MCx1LnRva2VuIT09MTgmJnUudG9rZW4hPT0yMD9DPU8odSxlLHQsbyxFLHcsdixDKTp1LnRva2VuIT09MTA3NzkzNjE1NyYmKHN8PXUuYXNzaWduYWJsZSYyPzE2OjMyKSkpOmI9PT0xND8oQz1iMih1LGUsbiwyMCxsLGYsMCx0LG8sRSx3LHYpLHN8PXUuZGVzdHJ1Y3RpYmxlLHUudG9rZW4hPT0xOCYmdS50b2tlbiE9PTIwJiZkKHUsMjgsVVt1LnRva2VuJjI1NV0pKTooQz1XKHUsZSwxLDAsMSxFLHcsdiksdS50b2tlbiE9PTE4JiZ1LnRva2VuIT09MjA/KEM9Tyh1LGUsdCxvLEUsdyx2LEMpLCEobCYzKSYmYj09PTY3MTc0NDExJiYoc3w9MTYpKTp1LmFzc2lnbmFibGUmMj9zfD0xNjpiPT09NjcxNzQ0MTEmJihzfD11LmFzc2lnbmFibGUmMSYmbCYzPzMyOjE2KSk7aWYobS5wdXNoKEMpLHEodSxlfDMyNzY4LDE4KSl7aWYodS50b2tlbj09PTIwKWJyZWFrfWVsc2UgYnJlYWt9UCh1LGUsMjApO2xldCBrPXkodSxlLGMsYSxnLHt0eXBlOm8/XCJBcnJheVBhdHRlcm5cIjpcIkFycmF5RXhwcmVzc2lvblwiLGVsZW1lbnRzOm19KTtyZXR1cm4haSYmdS50b2tlbiY0MTk0MzA0P2VlKHUsZSxzLHQsbyxjLGEsZyxrKToodS5kZXN0cnVjdGlibGU9cyxrKX1mdW5jdGlvbiBlZSh1LGUsbixpLHQsbyxsLGYsYyl7dS50b2tlbiE9PTEwNzc5MzYxNTcmJmQodSwyNCksQSh1LGV8MzI3NjgpLG4mMTYmJmQodSwyNCksdHx8cih1LGMpO2xldHt0b2tlblBvczphLGxpbmVQb3M6Zyxjb2xQb3M6bX09dSxzPVIodSxlLDEsMSxpLGEsZyxtKTtyZXR1cm4gdS5kZXN0cnVjdGlibGU9KG58NjR8OCleNzJ8KHUuZGVzdHJ1Y3RpYmxlJjEyOD8xMjg6MCl8KHUuZGVzdHJ1Y3RpYmxlJjI1Nj8yNTY6MCkseSh1LGUsbyxsLGYsdD97dHlwZTpcIkFzc2lnbm1lbnRQYXR0ZXJuXCIsbGVmdDpjLHJpZ2h0OnN9Ont0eXBlOlwiQXNzaWdubWVudEV4cHJlc3Npb25cIixsZWZ0OmMsb3BlcmF0b3I6XCI9XCIscmlnaHQ6c30pfWZ1bmN0aW9uIGIyKHUsZSxuLGksdCxvLGwsZixjLGEsZyxtKXtBKHUsZXwzMjc2OCk7bGV0IHM9bnVsbCxrPTAse3Rva2VuOkMsdG9rZW5WYWx1ZTpiLHRva2VuUG9zOkUsbGluZVBvczp3LGNvbFBvczp2fT11O2lmKEMmMTQzMzYwKXUuYXNzaWduYWJsZT0xLHM9Syh1LGUsdCwwLDEsMCxmLDEsRSx3LHYpLEM9dS50b2tlbixzPU4odSxlLHMsZiwwLEUsdyx2KSx1LnRva2VuIT09MTgmJnUudG9rZW4hPT1pJiYodS5hc3NpZ25hYmxlJjImJnUudG9rZW49PT0xMDc3OTM2MTU3JiZkKHUsNjkpLGt8PTE2LHM9Tyh1LGUsZixjLEUsdyx2LHMpKSx1LmFzc2lnbmFibGUmMj9rfD0xNjpDPT09aXx8Qz09PTE4P24mJnUyKHUsZSxuLGIsdCxvKTprfD0zMixrfD11LmRlc3RydWN0aWJsZSYxMjg/MTI4OjA7ZWxzZSBpZihDPT09aSlkKHUsMzkpO2Vsc2UgaWYoQyYyMDk3MTUyKXM9dS50b2tlbj09PTIxNjI3MDA/WSh1LGUsbiwxLGYsYyx0LG8sRSx3LHYpOl8odSxlLG4sMSxmLGMsdCxvLEUsdyx2KSxDPXUudG9rZW4sQyE9PTEwNzc5MzYxNTcmJkMhPT1pJiZDIT09MTg/KHUuZGVzdHJ1Y3RpYmxlJjgmJmQodSw2OSkscz1OKHUsZSxzLGYsMCxFLHcsdiksa3w9dS5hc3NpZ25hYmxlJjI/MTY6MCwodS50b2tlbiY0MTk0MzA0KT09PTQxOTQzMDQ/KHUudG9rZW4hPT0xMDc3OTM2MTU3JiYoa3w9MTYpLHM9Tyh1LGUsZixjLEUsdyx2LHMpKTooKHUudG9rZW4mODQ1NDE0NCk9PT04NDU0MTQ0JiYocz1uMih1LGUsMSxFLHcsdiw0LEMscykpLHEodSxlfDMyNzY4LDIyKSYmKHM9ZjIodSxlLHMsRSx3LHYpKSxrfD11LmFzc2lnbmFibGUmMj8xNjozMikpOmt8PWk9PT0xMDc0NzkwNDE1JiZDIT09MTA3NzkzNjE1Nz8xNjp1LmRlc3RydWN0aWJsZTtlbHNle2t8PTMyLHM9Vyh1LGUsMSxmLDEsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO2xldHt0b2tlbjpNLHRva2VuUG9zOlMsbGluZVBvczpWLGNvbFBvczpEfT11O3JldHVybiBNPT09MTA3NzkzNjE1NyYmTSE9PWkmJk0hPT0xOD8odS5hc3NpZ25hYmxlJjImJmQodSwyNCkscz1PKHUsZSxmLGMsUyxWLEQscyksa3w9MTYpOihNPT09MTg/a3w9MTY6TSE9PWkmJihzPU8odSxlLGYsYyxTLFYsRCxzKSksa3w9dS5hc3NpZ25hYmxlJjE/MzI6MTYpLHUuZGVzdHJ1Y3RpYmxlPWssdS50b2tlbiE9PWkmJnUudG9rZW4hPT0xOCYmZCh1LDE1NikseSh1LGUsYSxnLG0se3R5cGU6Yz9cIlJlc3RFbGVtZW50XCI6XCJTcHJlYWRFbGVtZW50XCIsYXJndW1lbnQ6c30pfWlmKHUudG9rZW4hPT1pKWlmKHQmMSYmKGt8PWw/MTY6MzIpLHEodSxlfDMyNzY4LDEwNzc5MzYxNTcpKXtrJjE2JiZkKHUsMjQpLHIodSxzKTtsZXQgTT1SKHUsZSwxLDEsZix1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cz15KHUsZSxFLHcsdixjP3t0eXBlOlwiQXNzaWdubWVudFBhdHRlcm5cIixsZWZ0OnMscmlnaHQ6TX06e3R5cGU6XCJBc3NpZ25tZW50RXhwcmVzc2lvblwiLGxlZnQ6cyxvcGVyYXRvcjpcIj1cIixyaWdodDpNfSksaz0xNn1lbHNlIGt8PTE2O3JldHVybiB1LmRlc3RydWN0aWJsZT1rLHkodSxlLGEsZyxtLHt0eXBlOmM/XCJSZXN0RWxlbWVudFwiOlwiU3ByZWFkRWxlbWVudFwiLGFyZ3VtZW50OnN9KX1mdW5jdGlvbiBaKHUsZSxuLGksdCxvLGwpe2xldCBmPW4mNjQ/MTQ2ODAwNjQ6MzE5ODE1Njg7ZT0oZXxmKV5mfChuJjg4KTw8MTh8MTAwOTI1NDQwO2xldCBjPWUmNjQ/SihzMigpLDUxMik6dm9pZCAwLGE9XzEodSxlfDgzODg2MDgsYyxuLDEsaSk7YyYmKGM9SihjLDEyOCkpO2xldCBnPUgyKHUsZSYtMTM0MjMwMDE3LGMsMCx2b2lkIDAsdm9pZCAwKTtyZXR1cm4geSh1LGUsdCxvLGwse3R5cGU6XCJGdW5jdGlvbkV4cHJlc3Npb25cIixwYXJhbXM6YSxib2R5OmcsYXN5bmM6KG4mMTYpPjAsZ2VuZXJhdG9yOihuJjgpPjAsaWQ6bnVsbH0pfWZ1bmN0aW9uIFcxKHUsZSxuLGksdCxvLGwpe2xldCBmPVkodSxlLHZvaWQgMCxuLGksMCwyLDAsdCxvLGwpO3JldHVybiBlJjI1NiYmdS5kZXN0cnVjdGlibGUmNjQmJmQodSw2MSksdS5kZXN0cnVjdGlibGUmOCYmZCh1LDYwKSxmfWZ1bmN0aW9uIFkodSxlLG4saSx0LG8sbCxmLGMsYSxnKXtBKHUsZSk7bGV0IG09W10scz0wLGs9MDtmb3IoZT0oZXwxMzQyMTc3MjgpXjEzNDIxNzcyODt1LnRva2VuIT09MTA3NDc5MDQxNTspe2xldHt0b2tlbjpiLHRva2VuVmFsdWU6RSxsaW5lUG9zOncsY29sUG9zOnYsdG9rZW5Qb3M6TX09dTtpZihiPT09MTQpbS5wdXNoKGIyKHUsZSxuLDEwNzQ3OTA0MTUsbCxmLDAsdCxvLE0sdyx2KSk7ZWxzZXtsZXQgUz0wLFY9bnVsbCxELFE9dS50b2tlbjtpZih1LnRva2VuJjE0MzM2MHx8dS50b2tlbj09PTEyMSlpZihWPUkodSxlLDApLHUudG9rZW49PT0xOHx8dS50b2tlbj09PTEwNzQ3OTA0MTV8fHUudG9rZW49PT0xMDc3OTM2MTU3KWlmKFN8PTQsZSYxMDI0JiYoYiY1MzcwNzk4MDgpPT09NTM3MDc5ODA4P3N8PTE2OlUyKHUsZSxsLGIsMCksbiYmdTIodSxlLG4sRSxsLGYpLHEodSxlfDMyNzY4LDEwNzc5MzYxNTcpKXtzfD04O2xldCBCPVIodSxlLDEsMSx0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTtzfD11LmRlc3RydWN0aWJsZSYyNTY/MjU2OjB8dS5kZXN0cnVjdGlibGUmMTI4PzEyODowLEQ9eSh1LGUsTSx3LHYse3R5cGU6XCJBc3NpZ25tZW50UGF0dGVyblwiLGxlZnQ6ZSYtMjE0NzQ4MzY0OD9PYmplY3QuYXNzaWduKHt9LFYpOlYscmlnaHQ6Qn0pfWVsc2Ugc3w9KGI9PT0yMDkwMDg/MTI4OjApfChiPT09MTIxPzE2OjApLEQ9ZSYtMjE0NzQ4MzY0OD9PYmplY3QuYXNzaWduKHt9LFYpOlY7ZWxzZSBpZihxKHUsZXwzMjc2OCwyMSkpe2xldHt0b2tlblBvczpCLGxpbmVQb3M6Rixjb2xQb3M6VH09dTtpZihFPT09XCJfX3Byb3RvX19cIiYmaysrLHUudG9rZW4mMTQzMzYwKXtsZXQgbzI9dS50b2tlbixtMj11LnRva2VuVmFsdWU7c3w9UT09PTEyMT8xNjowLEQ9Syh1LGUsbCwwLDEsMCx0LDEsQixGLFQpO2xldHt0b2tlbjp4fT11O0Q9Tih1LGUsRCx0LDAsQixGLFQpLHUudG9rZW49PT0xOHx8dS50b2tlbj09PTEwNzQ3OTA0MTU/eD09PTEwNzc5MzYxNTd8fHg9PT0xMDc0NzkwNDE1fHx4PT09MTg/KHN8PXUuZGVzdHJ1Y3RpYmxlJjEyOD8xMjg6MCx1LmFzc2lnbmFibGUmMj9zfD0xNjpuJiYobzImMTQzMzYwKT09PTE0MzM2MCYmdTIodSxlLG4sbTIsbCxmKSk6c3w9dS5hc3NpZ25hYmxlJjE/MzI6MTY6KHUudG9rZW4mNDE5NDMwNCk9PT00MTk0MzA0Pyh1LmFzc2lnbmFibGUmMj9zfD0xNjp4IT09MTA3NzkzNjE1Nz9zfD0zMjpuJiZ1Mih1LGUsbixtMixsLGYpLEQ9Tyh1LGUsdCxvLEIsRixULEQpKTooc3w9MTYsKHUudG9rZW4mODQ1NDE0NCk9PT04NDU0MTQ0JiYoRD1uMih1LGUsMSxCLEYsVCw0LHgsRCkpLHEodSxlfDMyNzY4LDIyKSYmKEQ9ZjIodSxlLEQsQixGLFQpKSl9ZWxzZSh1LnRva2VuJjIwOTcxNTIpPT09MjA5NzE1Mj8oRD11LnRva2VuPT09NjkyNzE1NzE/Xyh1LGUsbiwwLHQsbyxsLGYsQixGLFQpOlkodSxlLG4sMCx0LG8sbCxmLEIsRixUKSxzPXUuZGVzdHJ1Y3RpYmxlLHUuYXNzaWduYWJsZT1zJjE2PzI6MSx1LnRva2VuPT09MTh8fHUudG9rZW49PT0xMDc0NzkwNDE1P3UuYXNzaWduYWJsZSYyJiYoc3w9MTYpOnUuZGVzdHJ1Y3RpYmxlJjg/ZCh1LDY5KTooRD1OKHUsZSxELHQsMCxCLEYsVCkscz11LmFzc2lnbmFibGUmMj8xNjowLCh1LnRva2VuJjQxOTQzMDQpPT09NDE5NDMwND9EPUkyKHUsZSx0LG8sQixGLFQsRCk6KCh1LnRva2VuJjg0NTQxNDQpPT09ODQ1NDE0NCYmKEQ9bjIodSxlLDEsQixGLFQsNCxiLEQpKSxxKHUsZXwzMjc2OCwyMikmJihEPWYyKHUsZSxELEIsRixUKSksc3w9dS5hc3NpZ25hYmxlJjI/MTY6MzIpKSk6KEQ9Vyh1LGUsMSx0LDEsQixGLFQpLHN8PXUuYXNzaWduYWJsZSYxPzMyOjE2LHUudG9rZW49PT0xOHx8dS50b2tlbj09PTEwNzQ3OTA0MTU/dS5hc3NpZ25hYmxlJjImJihzfD0xNik6KEQ9Tih1LGUsRCx0LDAsQixGLFQpLHM9dS5hc3NpZ25hYmxlJjI/MTY6MCx1LnRva2VuIT09MTgmJmIhPT0xMDc0NzkwNDE1JiYodS50b2tlbiE9PTEwNzc5MzYxNTcmJihzfD0xNiksRD1PKHUsZSx0LG8sQixGLFQsRCkpKSl9ZWxzZSB1LnRva2VuPT09NjkyNzE1NzE/KHN8PTE2LGI9PT0yMDkwMDcmJihTfD0xNiksU3w9KGI9PT0xMjQwMj8yNTY6Yj09PTEyNDAzPzUxMjoxKXwyLFY9ZzIodSxlLHQpLHN8PXUuYXNzaWduYWJsZSxEPVoodSxlLFMsdCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpOnUudG9rZW4mMTQzMzYwPyhzfD0xNixiPT09MTIxJiZkKHUsOTMpLGI9PT0yMDkwMDcmJih1LmZsYWdzJjEmJmQodSwxMjkpLFN8PTE2KSxWPUkodSxlLDApLFN8PWI9PT0xMjQwMj8yNTY6Yj09PTEyNDAzPzUxMjoxLEQ9Wih1LGUsUyx0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSk6dS50b2tlbj09PTY3MTc0NDExPyhzfD0xNixTfD0xLEQ9Wih1LGUsUyx0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSk6dS50b2tlbj09PTg0NTcwMTQ/KHN8PTE2LGI9PT0xMjQwMj9kKHUsNDApOmI9PT0xMjQwMz9kKHUsNDEpOmI9PT0xNDM0ODMmJmQodSw5MyksQSh1LGUpLFN8PTl8KGI9PT0yMDkwMDc/MTY6MCksdS50b2tlbiYxNDMzNjA/Vj1JKHUsZSwwKToodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4P1Y9WCh1LGUpOnUudG9rZW49PT02OTI3MTU3MT8oU3w9MixWPWcyKHUsZSx0KSxzfD11LmFzc2lnbmFibGUpOmQodSwyOCxVW3UudG9rZW4mMjU1XSksRD1aKHUsZSxTLHQsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKToodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4PyhiPT09MjA5MDA3JiYoU3w9MTYpLFN8PWI9PT0xMjQwMj8yNTY6Yj09PTEyNDAzPzUxMjoxLHN8PTE2LFY9WCh1LGUpLEQ9Wih1LGUsUyx0LHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSk6ZCh1LDEzMCk7ZWxzZSBpZigodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4KWlmKFY9WCh1LGUpLHUudG9rZW49PT0yMSl7UCh1LGV8MzI3NjgsMjEpO2xldHt0b2tlblBvczpCLGxpbmVQb3M6Rixjb2xQb3M6VH09dTtpZihFPT09XCJfX3Byb3RvX19cIiYmaysrLHUudG9rZW4mMTQzMzYwKXtEPUsodSxlLGwsMCwxLDAsdCwxLEIsRixUKTtsZXR7dG9rZW46bzIsdG9rZW5WYWx1ZTptMn09dTtEPU4odSxlLEQsdCwwLEIsRixUKSx1LnRva2VuPT09MTh8fHUudG9rZW49PT0xMDc0NzkwNDE1P28yPT09MTA3NzkzNjE1N3x8bzI9PT0xMDc0NzkwNDE1fHxvMj09PTE4P3UuYXNzaWduYWJsZSYyP3N8PTE2Om4mJnUyKHUsZSxuLG0yLGwsZik6c3w9dS5hc3NpZ25hYmxlJjE/MzI6MTY6dS50b2tlbj09PTEwNzc5MzYxNTc/KHUuYXNzaWduYWJsZSYyJiYoc3w9MTYpLEQ9Tyh1LGUsdCxvLEIsRixULEQpKTooc3w9MTYsRD1PKHUsZSx0LG8sQixGLFQsRCkpfWVsc2UodS50b2tlbiYyMDk3MTUyKT09PTIwOTcxNTI/KEQ9dS50b2tlbj09PTY5MjcxNTcxP18odSxlLG4sMCx0LG8sbCxmLEIsRixUKTpZKHUsZSxuLDAsdCxvLGwsZixCLEYsVCkscz11LmRlc3RydWN0aWJsZSx1LmFzc2lnbmFibGU9cyYxNj8yOjEsdS50b2tlbj09PTE4fHx1LnRva2VuPT09MTA3NDc5MDQxNT91LmFzc2lnbmFibGUmMiYmKHN8PTE2KToodS5kZXN0cnVjdGlibGUmOCkhPT04JiYoRD1OKHUsZSxELHQsMCxCLEYsVCkscz11LmFzc2lnbmFibGUmMj8xNjowLCh1LnRva2VuJjQxOTQzMDQpPT09NDE5NDMwND9EPUkyKHUsZSx0LG8sQixGLFQsRCk6KCh1LnRva2VuJjg0NTQxNDQpPT09ODQ1NDE0NCYmKEQ9bjIodSxlLDEsQixGLFQsNCxiLEQpKSxxKHUsZXwzMjc2OCwyMikmJihEPWYyKHUsZSxELEIsRixUKSksc3w9dS5hc3NpZ25hYmxlJjI/MTY6MzIpKSk6KEQ9Vyh1LGUsMSwwLDEsQixGLFQpLHN8PXUuYXNzaWduYWJsZSYxPzMyOjE2LHUudG9rZW49PT0xOHx8dS50b2tlbj09PTEwNzQ3OTA0MTU/dS5hc3NpZ25hYmxlJjImJihzfD0xNik6KEQ9Tih1LGUsRCx0LDAsQixGLFQpLHM9dS5hc3NpZ25hYmxlJjE/MDoxNix1LnRva2VuIT09MTgmJnUudG9rZW4hPT0xMDc0NzkwNDE1JiYodS50b2tlbiE9PTEwNzc5MzYxNTcmJihzfD0xNiksRD1PKHUsZSx0LG8sQixGLFQsRCkpKSl9ZWxzZSB1LnRva2VuPT09NjcxNzQ0MTE/KFN8PTEsRD1aKHUsZSxTLHQsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLHM9dS5hc3NpZ25hYmxlfDE2KTpkKHUsMTMxKTtlbHNlIGlmKHUudG9rZW49PT02OTI3MTU3MSlpZihWPWcyKHUsZSx0KSxzfD11LmRlc3RydWN0aWJsZSYyNTY/MjU2OjAsU3w9Mix1LnRva2VuPT09MjEpe0EodSxlfDMyNzY4KTtsZXR7dG9rZW5Qb3M6QixsaW5lUG9zOkYsY29sUG9zOlQsdG9rZW5WYWx1ZTpvMix0b2tlbjptMn09dTtpZih1LnRva2VuJjE0MzM2MCl7RD1LKHUsZSxsLDAsMSwwLHQsMSxCLEYsVCk7bGV0e3Rva2VuOnh9PXU7RD1OKHUsZSxELHQsMCxCLEYsVCksKHUudG9rZW4mNDE5NDMwNCk9PT00MTk0MzA0PyhzfD11LmFzc2lnbmFibGUmMj8xNjp4PT09MTA3NzkzNjE1Nz8wOjMyLEQ9STIodSxlLHQsbyxCLEYsVCxEKSk6dS50b2tlbj09PTE4fHx1LnRva2VuPT09MTA3NDc5MDQxNT94PT09MTA3NzkzNjE1N3x8eD09PTEwNzQ3OTA0MTV8fHg9PT0xOD91LmFzc2lnbmFibGUmMj9zfD0xNjpuJiYobTImMTQzMzYwKT09PTE0MzM2MCYmdTIodSxlLG4sbzIsbCxmKTpzfD11LmFzc2lnbmFibGUmMT8zMjoxNjooc3w9MTYsRD1PKHUsZSx0LG8sQixGLFQsRCkpfWVsc2UodS50b2tlbiYyMDk3MTUyKT09PTIwOTcxNTI/KEQ9dS50b2tlbj09PTY5MjcxNTcxP18odSxlLG4sMCx0LG8sbCxmLEIsRixUKTpZKHUsZSxuLDAsdCxvLGwsZixCLEYsVCkscz11LmRlc3RydWN0aWJsZSx1LmFzc2lnbmFibGU9cyYxNj8yOjEsdS50b2tlbj09PTE4fHx1LnRva2VuPT09MTA3NDc5MDQxNT91LmFzc2lnbmFibGUmMiYmKHN8PTE2KTpzJjg/ZCh1LDYwKTooRD1OKHUsZSxELHQsMCxCLEYsVCkscz11LmFzc2lnbmFibGUmMj9zfDE2OjAsKHUudG9rZW4mNDE5NDMwNCk9PT00MTk0MzA0Pyh1LnRva2VuIT09MTA3NzkzNjE1NyYmKHN8PTE2KSxEPUkyKHUsZSx0LG8sQixGLFQsRCkpOigodS50b2tlbiY4NDU0MTQ0KT09PTg0NTQxNDQmJihEPW4yKHUsZSwxLEIsRixULDQsYixEKSkscSh1LGV8MzI3NjgsMjIpJiYoRD1mMih1LGUsRCxCLEYsVCkpLHN8PXUuYXNzaWduYWJsZSYyPzE2OjMyKSkpOihEPVcodSxlLDEsMCwxLEIsRixUKSxzfD11LmFzc2lnbmFibGUmMT8zMjoxNix1LnRva2VuPT09MTh8fHUudG9rZW49PT0xMDc0NzkwNDE1P3UuYXNzaWduYWJsZSYyJiYoc3w9MTYpOihEPU4odSxlLEQsdCwwLEIsRixUKSxzPXUuYXNzaWduYWJsZSYxPzA6MTYsdS50b2tlbiE9PTE4JiZ1LnRva2VuIT09MTA3NDc5MDQxNSYmKHUudG9rZW4hPT0xMDc3OTM2MTU3JiYoc3w9MTYpLEQ9Tyh1LGUsdCxvLEIsRixULEQpKSkpfWVsc2UgdS50b2tlbj09PTY3MTc0NDExPyhTfD0xLEQ9Wih1LGUsUyx0LHUudG9rZW5Qb3Msdyx2KSxzPTE2KTpkKHUsNDIpO2Vsc2UgaWYoYj09PTg0NTcwMTQpaWYoUCh1LGV8MzI3NjgsODQ1NzAxNCksU3w9OCx1LnRva2VuJjE0MzM2MCl7bGV0e3Rva2VuOkIsbGluZTpGLGluZGV4OlR9PXU7Vj1JKHUsZSwwKSxTfD0xLHUudG9rZW49PT02NzE3NDQxMT8oc3w9MTYsRD1aKHUsZSxTLHQsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTpoMihULEYsVCxCPT09MjA5MDA3PzQ0OkI9PT0xMjQwMnx8dS50b2tlbj09PTEyNDAzPzQzOjQ1LFVbQiYyNTVdKX1lbHNlKHUudG9rZW4mMTM0MjE3NzI4KT09PTEzNDIxNzcyOD8oc3w9MTYsVj1YKHUsZSksU3w9MSxEPVoodSxlLFMsdCxNLHcsdikpOnUudG9rZW49PT02OTI3MTU3MT8oc3w9MTYsU3w9MyxWPWcyKHUsZSx0KSxEPVoodSxlLFMsdCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpOmQodSwxMjMpO2Vsc2UgZCh1LDI4LFVbYiYyNTVdKTtzfD11LmRlc3RydWN0aWJsZSYxMjg/MTI4OjAsdS5kZXN0cnVjdGlibGU9cyxtLnB1c2goeSh1LGUsTSx3LHYse3R5cGU6XCJQcm9wZXJ0eVwiLGtleTpWLHZhbHVlOkQsa2luZDpTJjc2OD9TJjUxMj9cInNldFwiOlwiZ2V0XCI6XCJpbml0XCIsY29tcHV0ZWQ6KFMmMik+MCxtZXRob2Q6KFMmMSk+MCxzaG9ydGhhbmQ6KFMmNCk+MH0pKX1pZihzfD11LmRlc3RydWN0aWJsZSx1LnRva2VuIT09MTgpYnJlYWs7QSh1LGUpfVAodSxlLDEwNzQ3OTA0MTUpLGs+MSYmKHN8PTY0KTtsZXQgQz15KHUsZSxjLGEsZyx7dHlwZTpvP1wiT2JqZWN0UGF0dGVyblwiOlwiT2JqZWN0RXhwcmVzc2lvblwiLHByb3BlcnRpZXM6bX0pO3JldHVybiFpJiZ1LnRva2VuJjQxOTQzMDQ/ZWUodSxlLHMsdCxvLGMsYSxnLEMpOih1LmRlc3RydWN0aWJsZT1zLEMpfWZ1bmN0aW9uIF8xKHUsZSxuLGksdCxvKXtQKHUsZSw2NzE3NDQxMSk7bGV0IGw9W107aWYodS5mbGFncz0odS5mbGFnc3wxMjgpXjEyOCx1LnRva2VuPT09MTYpcmV0dXJuIGkmNTEyJiZkKHUsMzUsXCJTZXR0ZXJcIixcIm9uZVwiLFwiXCIpLEEodSxlKSxsO2kmMjU2JiZkKHUsMzUsXCJHZXR0ZXJcIixcIm5vXCIsXCJzXCIpLGkmNTEyJiZ1LnRva2VuPT09MTQmJmQodSwzNiksZT0oZXwxMzQyMTc3MjgpXjEzNDIxNzcyODtsZXQgZj0wLGM9MDtmb3IoO3UudG9rZW4hPT0xODspe2xldCBhPW51bGwse3Rva2VuUG9zOmcsbGluZVBvczptLGNvbFBvczpzfT11O2lmKHUudG9rZW4mMTQzMzYwPyhlJjEwMjR8fCgodS50b2tlbiYzNjg2NCk9PT0zNjg2NCYmKHUuZmxhZ3N8PTI1NiksKHUudG9rZW4mNTM3MDc5ODA4KT09PTUzNzA3OTgwOCYmKHUuZmxhZ3N8PTUxMikpLGE9Z3UodSxlLG4saXwxLDAsZyxtLHMpKToodS50b2tlbj09PTIxNjI3MDA/YT1ZKHUsZSxuLDEsbywxLHQsMCxnLG0scyk6dS50b2tlbj09PTY5MjcxNTcxP2E9Xyh1LGUsbiwxLG8sMSx0LDAsZyxtLHMpOnUudG9rZW49PT0xNCYmKGE9YjIodSxlLG4sMTYsdCwwLDAsbywxLGcsbSxzKSksYz0xLHUuZGVzdHJ1Y3RpYmxlJjQ4JiZkKHUsNDgpKSx1LnRva2VuPT09MTA3NzkzNjE1Nyl7QSh1LGV8MzI3NjgpLGM9MTtsZXQgaz1SKHUsZSwxLDEsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7YT15KHUsZSxnLG0scyx7dHlwZTpcIkFzc2lnbm1lbnRQYXR0ZXJuXCIsbGVmdDphLHJpZ2h0Omt9KX1pZihmKyssbC5wdXNoKGEpLCFxKHUsZSwxOCl8fHUudG9rZW49PT0xNilicmVha31yZXR1cm4gaSY1MTImJmYhPT0xJiZkKHUsMzUsXCJTZXR0ZXJcIixcIm9uZVwiLFwiXCIpLG4mJm4uc2NvcGVFcnJvciE9PXZvaWQgMCYmWDIobi5zY29wZUVycm9yKSxjJiYodS5mbGFnc3w9MTI4KSxQKHUsZSwxNiksbH1mdW5jdGlvbiBnMih1LGUsbil7QSh1LGV8MzI3NjgpO2xldCBpPVIodSwoZXwxMzQyMTc3MjgpXjEzNDIxNzcyOCwxLDAsbix1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7cmV0dXJuIFAodSxlLDIwKSxpfWZ1bmN0aW9uIFkxKHUsZSxuLGksdCxvLGwsZil7dS5mbGFncz0odS5mbGFnc3wxMjgpXjEyODtsZXR7dG9rZW5Qb3M6YyxsaW5lUG9zOmEsY29sUG9zOmd9PXU7QSh1LGV8MzI3Njh8MTA3Mzc0MTgyNCk7bGV0IG09ZSY2ND9KKHMyKCksMTAyNCk6dm9pZCAwO2lmKGU9KGV8MTM0MjE3NzI4KV4xMzQyMTc3MjgscSh1LGUsMTYpKXJldHVybiBKMih1LGUsbSxbXSxuLDAsbyxsLGYpO2xldCBzPTA7dS5kZXN0cnVjdGlibGUmPS0zODU7bGV0IGssQz1bXSxiPTAsRT0wLHt0b2tlblBvczp3LGxpbmVQb3M6dixjb2xQb3M6TX09dTtmb3IodS5hc3NpZ25hYmxlPTE7dS50b2tlbiE9PTE2Oyl7bGV0e3Rva2VuOlMsdG9rZW5Qb3M6VixsaW5lUG9zOkQsY29sUG9zOlF9PXU7aWYoUyYxNDMzNjApbSYmdDIodSxlLG0sdS50b2tlblZhbHVlLDEsMCksaz1LKHUsZSxpLDAsMSwwLDEsMSxWLEQsUSksdS50b2tlbj09PTE2fHx1LnRva2VuPT09MTg/dS5hc3NpZ25hYmxlJjI/KHN8PTE2LEU9MSk6KChTJjUzNzA3OTgwOCk9PT01MzcwNzk4MDh8fChTJjM2ODY0KT09PTM2ODY0KSYmKEU9MSk6KHUudG9rZW49PT0xMDc3OTM2MTU3P0U9MTpzfD0xNixrPU4odSxlLGssMSwwLFYsRCxRKSx1LnRva2VuIT09MTYmJnUudG9rZW4hPT0xOCYmKGs9Tyh1LGUsMSwwLFYsRCxRLGspKSk7ZWxzZSBpZigoUyYyMDk3MTUyKT09PTIwOTcxNTIpaz1TPT09MjE2MjcwMD9ZKHUsZXwxMDczNzQxODI0LG0sMCwxLDAsaSx0LFYsRCxRKTpfKHUsZXwxMDczNzQxODI0LG0sMCwxLDAsaSx0LFYsRCxRKSxzfD11LmRlc3RydWN0aWJsZSxFPTEsdS5hc3NpZ25hYmxlPTIsdS50b2tlbiE9PTE2JiZ1LnRva2VuIT09MTgmJihzJjgmJmQodSwxMTkpLGs9Tih1LGUsaywwLDAsVixELFEpLHN8PTE2LHUudG9rZW4hPT0xNiYmdS50b2tlbiE9PTE4JiYoaz1PKHUsZSwwLDAsVixELFEsaykpKTtlbHNlIGlmKFM9PT0xNCl7az1iMih1LGUsbSwxNixpLHQsMCwxLDAsVixELFEpLHUuZGVzdHJ1Y3RpYmxlJjE2JiZkKHUsNzIpLEU9MSxiJiYodS50b2tlbj09PTE2fHx1LnRva2VuPT09MTgpJiZDLnB1c2goayksc3w9ODticmVha31lbHNle2lmKHN8PTE2LGs9Uih1LGUsMSwwLDEsVixELFEpLGImJih1LnRva2VuPT09MTZ8fHUudG9rZW49PT0xOCkmJkMucHVzaChrKSx1LnRva2VuPT09MTgmJihifHwoYj0xLEM9W2tdKSksYil7Zm9yKDtxKHUsZXwzMjc2OCwxOCk7KUMucHVzaChSKHUsZSwxLDAsMSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpO3UuYXNzaWduYWJsZT0yLGs9eSh1LGUsdyx2LE0se3R5cGU6XCJTZXF1ZW5jZUV4cHJlc3Npb25cIixleHByZXNzaW9uczpDfSl9cmV0dXJuIFAodSxlLDE2KSx1LmRlc3RydWN0aWJsZT1zLGt9aWYoYiYmKHUudG9rZW49PT0xNnx8dS50b2tlbj09PTE4KSYmQy5wdXNoKGspLCFxKHUsZXwzMjc2OCwxOCkpYnJlYWs7aWYoYnx8KGI9MSxDPVtrXSksdS50b2tlbj09PTE2KXtzfD04O2JyZWFrfX1yZXR1cm4gYiYmKHUuYXNzaWduYWJsZT0yLGs9eSh1LGUsdyx2LE0se3R5cGU6XCJTZXF1ZW5jZUV4cHJlc3Npb25cIixleHByZXNzaW9uczpDfSkpLFAodSxlLDE2KSxzJjE2JiZzJjgmJmQodSwxNDYpLHN8PXUuZGVzdHJ1Y3RpYmxlJjI1Nj8yNTY6MHx1LmRlc3RydWN0aWJsZSYxMjg/MTI4OjAsdS50b2tlbj09PTEwPyhzJjQ4JiZkKHUsNDcpLGUmNDE5NjM1MiYmcyYxMjgmJmQodSwyOSksZSYyMDk4MTc2JiZzJjI1NiYmZCh1LDMwKSxFJiYodS5mbGFnc3w9MTI4KSxKMih1LGUsbSxiP0M6W2tdLG4sMCxvLGwsZikpOihzJjgmJmQodSwxNDApLHUuZGVzdHJ1Y3RpYmxlPSh1LmRlc3RydWN0aWJsZXwyNTYpXjI1NnxzLGUmMTI4P3kodSxlLGMsYSxnLHt0eXBlOlwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIixleHByZXNzaW9uOmt9KTprKX1mdW5jdGlvbiBhdSh1LGUsbixpLHQpe2xldHt0b2tlblZhbHVlOm99PXUsbD1JKHUsZSwwKTtpZih1LmFzc2lnbmFibGU9MSx1LnRva2VuPT09MTApe2xldCBmO3JldHVybiBlJjY0JiYoZj16Mih1LGUsbykpLHUuZmxhZ3M9KHUuZmxhZ3N8MTI4KV4xMjgsdjIodSxlLGYsW2xdLDAsbixpLHQpfXJldHVybiBsfWZ1bmN0aW9uIEsyKHUsZSxuLGksdCxvLGwsZixjLGEpe298fGQodSw1NSksdCYmZCh1LDQ5KSx1LmZsYWdzJj0tMTI5O2xldCBnPWUmNjQ/ejIodSxlLG4pOnZvaWQgMDtyZXR1cm4gdjIodSxlLGcsW2ldLGwsZixjLGEpfWZ1bmN0aW9uIEoyKHUsZSxuLGksdCxvLGwsZixjKXt0fHxkKHUsNTUpO2ZvcihsZXQgYT0wO2E8aS5sZW5ndGg7KythKXIodSxpW2FdKTtyZXR1cm4gdjIodSxlLG4saSxvLGwsZixjKX1mdW5jdGlvbiB2Mih1LGUsbixpLHQsbyxsLGYpe3UuZmxhZ3MmMSYmZCh1LDQ2KSxQKHUsZXwzMjc2OCwxMCksZT0oZXwxNTcyODY0MCleMTU3Mjg2NDB8dDw8MjI7bGV0IGM9dS50b2tlbiE9PTIxNjI3MDAsYTtpZihuJiZuLnNjb3BlRXJyb3IhPT12b2lkIDAmJlgyKG4uc2NvcGVFcnJvciksYylhPVIodSxlLDEsMCwwLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTtlbHNle3N3aXRjaChuJiYobj1KKG4sMTI4KSksYT1IMih1LChlfDEzNDIyMTgyNHw4MTkyfDE2Mzg0KV4xMzQyNDY0MDAsbiwxNix2b2lkIDAsdm9pZCAwKSx1LnRva2VuKXtjYXNlIDY5MjcxNTcxOnUuZmxhZ3MmMXx8ZCh1LDExMyk7YnJlYWs7Y2FzZSA2NzEwODg3NzpjYXNlIDY3MTc0NDA5OmNhc2UgMjI6ZCh1LDExNCk7Y2FzZSA2NzE3NDQxMTp1LmZsYWdzJjF8fGQodSwxMTMpLHUuZmxhZ3N8PTEwMjQ7YnJlYWt9KHUudG9rZW4mODQ1NDE0NCk9PT04NDU0MTQ0JiYhKHUuZmxhZ3MmMSkmJmQodSwyOCxVW3UudG9rZW4mMjU1XSksKHUudG9rZW4mMzM2MTk5NjgpPT09MzM2MTk5NjgmJmQodSwxMjIpfXJldHVybiB1LmFzc2lnbmFibGU9Mix5KHUsZSxvLGwsZix7dHlwZTpcIkFycm93RnVuY3Rpb25FeHByZXNzaW9uXCIscGFyYW1zOmksYm9keTphLGFzeW5jOnQ9PT0xLGV4cHJlc3Npb246Y30pfWZ1bmN0aW9uIG5lKHUsZSxuLGksdCl7UCh1LGUsNjcxNzQ0MTEpLHUuZmxhZ3M9KHUuZmxhZ3N8MTI4KV4xMjg7bGV0IG89W107aWYocSh1LGUsMTYpKXJldHVybiBvO2U9KGV8MTM0MjE3NzI4KV4xMzQyMTc3Mjg7bGV0IGw9MDtmb3IoO3UudG9rZW4hPT0xODspe2xldCBmLHt0b2tlblBvczpjLGxpbmVQb3M6YSxjb2xQb3M6Z309dTtpZih1LnRva2VuJjE0MzM2MD8oZSYxMDI0fHwoKHUudG9rZW4mMzY4NjQpPT09MzY4NjQmJih1LmZsYWdzfD0yNTYpLCh1LnRva2VuJjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJih1LmZsYWdzfD01MTIpKSxmPWd1KHUsZSxuLHR8MSwwLGMsYSxnKSk6KHUudG9rZW49PT0yMTYyNzAwP2Y9WSh1LGUsbiwxLGksMSx0LDAsYyxhLGcpOnUudG9rZW49PT02OTI3MTU3MT9mPV8odSxlLG4sMSxpLDEsdCwwLGMsYSxnKTp1LnRva2VuPT09MTQ/Zj1iMih1LGUsbiwxNix0LDAsMCxpLDEsYyxhLGcpOmQodSwyOCxVW3UudG9rZW4mMjU1XSksbD0xLHUuZGVzdHJ1Y3RpYmxlJjQ4JiZkKHUsNDgpKSx1LnRva2VuPT09MTA3NzkzNjE1Nyl7QSh1LGV8MzI3NjgpLGw9MTtsZXQgbT1SKHUsZSwxLDEsaSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyk7Zj15KHUsZSxjLGEsZyx7dHlwZTpcIkFzc2lnbm1lbnRQYXR0ZXJuXCIsbGVmdDpmLHJpZ2h0Om19KX1pZihvLnB1c2goZiksIXEodSxlLDE4KXx8dS50b2tlbj09PTE2KWJyZWFrfXJldHVybiBsJiYodS5mbGFnc3w9MTI4KSxuJiYobHx8ZSYxMDI0KSYmbi5zY29wZUVycm9yIT09dm9pZCAwJiZYMihuLnNjb3BlRXJyb3IpLFAodSxlLDE2KSxvfWZ1bmN0aW9uIFIyKHUsZSxuLGksdCxvLGwpe2xldHt0b2tlbjpmfT11O2lmKGYmNjcxMDg4NjQpe2lmKGY9PT02NzEwODg3Nyl7QSh1LGV8MTA3Mzc0MTgyNCksdS5hc3NpZ25hYmxlPTE7bGV0IGM9cnUodSxlKTtyZXR1cm4gUjIodSxlLHkodSxlLHQsbyxsLHt0eXBlOlwiTWVtYmVyRXhwcmVzc2lvblwiLG9iamVjdDpuLGNvbXB1dGVkOiExLHByb3BlcnR5OmN9KSwwLHQsbyxsKX1lbHNlIGlmKGY9PT02OTI3MTU3MSl7QSh1LGV8MzI3NjgpO2xldHt0b2tlblBvczpjLGxpbmVQb3M6YSxjb2xQb3M6Z309dSxtPWoodSxlLGksMSxjLGEsZyk7cmV0dXJuIFAodSxlLDIwKSx1LmFzc2lnbmFibGU9MSxSMih1LGUseSh1LGUsdCxvLGwse3R5cGU6XCJNZW1iZXJFeHByZXNzaW9uXCIsb2JqZWN0Om4sY29tcHV0ZWQ6ITAscHJvcGVydHk6bX0pLDAsdCxvLGwpfWVsc2UgaWYoZj09PTY3MTc0NDA4fHxmPT09NjcxNzQ0MDkpcmV0dXJuIHUuYXNzaWduYWJsZT0yLFIyKHUsZSx5KHUsZSx0LG8sbCx7dHlwZTpcIlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvblwiLHRhZzpuLHF1YXNpOnUudG9rZW49PT02NzE3NDQwOD9kdSh1LGV8NjU1MzYpOmN1KHUsZSx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyl9KSwwLHQsbyxsKX1yZXR1cm4gbn1mdW5jdGlvbiBRMSh1LGUsbixpLHQsbyl7bGV0IGw9SSh1LGV8MzI3NjgsMCkse3Rva2VuUG9zOmYsbGluZVBvczpjLGNvbFBvczphfT11O2lmKHEodSxlLDY3MTA4ODc3KSl7aWYoZSY2NzEwODg2NCYmdS50b2tlbj09PTE0MzQ5NClyZXR1cm4gdS5hc3NpZ25hYmxlPTIsWjEodSxlLGwsaSx0LG8pO2QodSw5Mil9dS5hc3NpZ25hYmxlPTIsKHUudG9rZW4mMTY4NDI3NTIpPT09MTY4NDI3NTImJmQodSw2MyxVW3UudG9rZW4mMjU1XSk7bGV0IGc9Syh1LGUsMiwxLDAsMCxuLDEsZixjLGEpO2U9KGV8MTM0MjE3NzI4KV4xMzQyMTc3MjgsdS50b2tlbj09PTY3MTA4OTkxJiZkKHUsMTYzKTtsZXQgbT1SMih1LGUsZyxuLGYsYyxhKTtyZXR1cm4gdS5hc3NpZ25hYmxlPTIseSh1LGUsaSx0LG8se3R5cGU6XCJOZXdFeHByZXNzaW9uXCIsY2FsbGVlOm0sYXJndW1lbnRzOnUudG9rZW49PT02NzE3NDQxMT9zdSh1LGUsbik6W119KX1mdW5jdGlvbiBaMSh1LGUsbixpLHQsbyl7bGV0IGw9SSh1LGUsMCk7cmV0dXJuIHkodSxlLGksdCxvLHt0eXBlOlwiTWV0YVByb3BlcnR5XCIsbWV0YTpuLHByb3BlcnR5Omx9KX1mdW5jdGlvbiBpZSh1LGUsbixpLHQsbyl7cmV0dXJuIHUudG9rZW49PT0yMDkwMDgmJmQodSwyOSksZSYyMDk4MTc2JiZ1LnRva2VuPT09MjQxNzczJiZkKHUsMzApLCh1LnRva2VuJjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJih1LmZsYWdzfD01MTIpLEsyKHUsZSx1LnRva2VuVmFsdWUsSSh1LGUsMCksMCxuLDEsaSx0LG8pfWZ1bmN0aW9uIG11KHUsZSxuLGksdCxvLGwsZixjLGEpe0EodSxlfDMyNzY4KTtsZXQgZz1lJjY0P0ooczIoKSwxMDI0KTp2b2lkIDA7aWYoZT0oZXwxMzQyMTc3MjgpXjEzNDIxNzcyOCxxKHUsZSwxNikpcmV0dXJuIHUudG9rZW49PT0xMD8obCYxJiZkKHUsNDYpLEoyKHUsZSxnLFtdLGksMSxmLGMsYSkpOnkodSxlLGYsYyxhLHt0eXBlOlwiQ2FsbEV4cHJlc3Npb25cIixjYWxsZWU6bixhcmd1bWVudHM6W119KTtsZXQgbT0wLHM9bnVsbCxrPTA7dS5kZXN0cnVjdGlibGU9KHUuZGVzdHJ1Y3RpYmxlfDI1NnwxMjgpXjM4NDtsZXQgQz1bXTtmb3IoO3UudG9rZW4hPT0xNjspe2xldHt0b2tlbjpiLHRva2VuUG9zOkUsbGluZVBvczp3LGNvbFBvczp2fT11O2lmKGImMTQzMzYwKWcmJnQyKHUsZSxnLHUudG9rZW5WYWx1ZSx0LDApLHM9Syh1LGUsdCwwLDEsMCwxLDEsRSx3LHYpLHUudG9rZW49PT0xNnx8dS50b2tlbj09PTE4P3UuYXNzaWduYWJsZSYyPyhtfD0xNixrPTEpOihiJjUzNzA3OTgwOCk9PT01MzcwNzk4MDg/dS5mbGFnc3w9NTEyOihiJjM2ODY0KT09PTM2ODY0JiYodS5mbGFnc3w9MjU2KToodS50b2tlbj09PTEwNzc5MzYxNTc/az0xOm18PTE2LHM9Tih1LGUscywxLDAsRSx3LHYpLHUudG9rZW4hPT0xNiYmdS50b2tlbiE9PTE4JiYocz1PKHUsZSwxLDAsRSx3LHYscykpKTtlbHNlIGlmKGImMjA5NzE1MilzPWI9PT0yMTYyNzAwP1kodSxlLGcsMCwxLDAsdCxvLEUsdyx2KTpfKHUsZSxnLDAsMSwwLHQsbyxFLHcsdiksbXw9dS5kZXN0cnVjdGlibGUsaz0xLHUudG9rZW4hPT0xNiYmdS50b2tlbiE9PTE4JiYobSY4JiZkKHUsMTE5KSxzPU4odSxlLHMsMCwwLEUsdyx2KSxtfD0xNiwodS50b2tlbiY4NDU0MTQ0KT09PTg0NTQxNDQmJihzPW4yKHUsZSwxLGYsYyxhLDQsYixzKSkscSh1LGV8MzI3NjgsMjIpJiYocz1mMih1LGUscyxmLGMsYSkpKTtlbHNlIGlmKGI9PT0xNClzPWIyKHUsZSxnLDE2LHQsbywxLDEsMCxFLHcsdiksbXw9KHUudG9rZW49PT0xNj8wOjE2KXx1LmRlc3RydWN0aWJsZSxrPTE7ZWxzZXtmb3Iocz1SKHUsZSwxLDAsMCxFLHcsdiksbT11LmFzc2lnbmFibGUsQy5wdXNoKHMpO3EodSxlfDMyNzY4LDE4KTspQy5wdXNoKFIodSxlLDEsMCwwLEUsdyx2KSk7cmV0dXJuIG18PXUuYXNzaWduYWJsZSxQKHUsZSwxNiksdS5kZXN0cnVjdGlibGU9bXwxNix1LmFzc2lnbmFibGU9Mix5KHUsZSxmLGMsYSx7dHlwZTpcIkNhbGxFeHByZXNzaW9uXCIsY2FsbGVlOm4sYXJndW1lbnRzOkN9KX1pZihDLnB1c2gocyksIXEodSxlfDMyNzY4LDE4KSlicmVha31yZXR1cm4gUCh1LGUsMTYpLG18PXUuZGVzdHJ1Y3RpYmxlJjI1Nj8yNTY6MHx1LmRlc3RydWN0aWJsZSYxMjg/MTI4OjAsdS50b2tlbj09PTEwPyhtJjQ4JiZkKHUsMjUpLCh1LmZsYWdzJjF8fGwmMSkmJmQodSw0NiksbSYxMjgmJmQodSwyOSksZSYyMDk4MTc2JiZtJjI1NiYmZCh1LDMwKSxrJiYodS5mbGFnc3w9MTI4KSxKMih1LGUsZyxDLGksMSxmLGMsYSkpOihtJjgmJmQodSw2MCksdS5hc3NpZ25hYmxlPTIseSh1LGUsZixjLGEse3R5cGU6XCJDYWxsRXhwcmVzc2lvblwiLGNhbGxlZTpuLGFyZ3VtZW50czpDfSkpfWZ1bmN0aW9uIHIxKHUsZSxuLGksdCl7bGV0e3Rva2VuUmF3Om8sdG9rZW5SZWdFeHA6bCx0b2tlblZhbHVlOmZ9PXU7cmV0dXJuIEEodSxlKSx1LmFzc2lnbmFibGU9MixlJjUxMj95KHUsZSxuLGksdCx7dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpmLHJlZ2V4OmwscmF3Om99KTp5KHUsZSxuLGksdCx7dHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpmLHJlZ2V4Omx9KX1mdW5jdGlvbiBwMih1LGUsbixpLHQsbyxsKXtlPShlfDE2Nzc3MjE2fDEwMjQpXjE2Nzc3MjE2O2xldCBmPSQyKHUsZSk7Zi5sZW5ndGgmJih0PXUudG9rZW5Qb3Msbz11LmxpbmVQb3MsbD11LmNvbFBvcyksdS5sZWFkaW5nRGVjb3JhdG9ycy5sZW5ndGgmJih1LmxlYWRpbmdEZWNvcmF0b3JzLnB1c2goLi4uZiksZj11LmxlYWRpbmdEZWNvcmF0b3JzLHUubGVhZGluZ0RlY29yYXRvcnM9W10pLEEodSxlKTtsZXQgYz1udWxsLGE9bnVsbCx7dG9rZW5WYWx1ZTpnfT11O3UudG9rZW4mNDA5NiYmdS50b2tlbiE9PTIwNTY3PyhIdSh1LGUsdS50b2tlbikmJmQodSwxMTUpLCh1LnRva2VuJjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJmQodSwxMTYpLG4mJih0Mih1LGUsbixnLDMyLDApLGkmJmkmMiYmbDIodSxnKSksYz1JKHUsZSwwKSk6aSYxfHxkKHUsMzcsXCJDbGFzc1wiKTtsZXQgbT1lO3EodSxlfDMyNzY4LDIwNTY3KT8oYT1XKHUsZSwwLDAsMCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcyksbXw9NTI0Mjg4KTptPShtfDUyNDI4OCleNTI0Mjg4O2xldCBzPXRlKHUsbSxlLG4sMiw4LDApO3JldHVybiB5KHUsZSx0LG8sbCxlJjE/e3R5cGU6XCJDbGFzc0RlY2xhcmF0aW9uXCIsaWQ6YyxzdXBlckNsYXNzOmEsZGVjb3JhdG9yczpmLGJvZHk6c306e3R5cGU6XCJDbGFzc0RlY2xhcmF0aW9uXCIsaWQ6YyxzdXBlckNsYXNzOmEsYm9keTpzfSl9ZnVuY3Rpb24gRzEodSxlLG4saSx0LG8pe2xldCBsPW51bGwsZj1udWxsO2U9KGV8MTAyNHwxNjc3NzIxNileMTY3NzcyMTY7bGV0IGM9JDIodSxlKTtjLmxlbmd0aCYmKGk9dS50b2tlblBvcyx0PXUubGluZVBvcyxvPXUuY29sUG9zKSxBKHUsZSksdS50b2tlbiY0MDk2JiZ1LnRva2VuIT09MjA1NjcmJihIdSh1LGUsdS50b2tlbikmJmQodSwxMTUpLCh1LnRva2VuJjUzNzA3OTgwOCk9PT01MzcwNzk4MDgmJmQodSwxMTYpLGw9SSh1LGUsMCkpO2xldCBhPWU7cSh1LGV8MzI3NjgsMjA1NjcpPyhmPVcodSxlLDAsbiwwLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKSxhfD01MjQyODgpOmE9KGF8NTI0Mjg4KV41MjQyODg7bGV0IGc9dGUodSxhLGUsdm9pZCAwLDIsMCxuKTtyZXR1cm4gdS5hc3NpZ25hYmxlPTIseSh1LGUsaSx0LG8sZSYxP3t0eXBlOlwiQ2xhc3NFeHByZXNzaW9uXCIsaWQ6bCxzdXBlckNsYXNzOmYsZGVjb3JhdG9yczpjLGJvZHk6Z306e3R5cGU6XCJDbGFzc0V4cHJlc3Npb25cIixpZDpsLHN1cGVyQ2xhc3M6Zixib2R5Omd9KX1mdW5jdGlvbiAkMih1LGUpe2xldCBuPVtdO2lmKGUmMSlmb3IoO3UudG9rZW49PT0xMzM7KW4ucHVzaCh4MSh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTtyZXR1cm4gbn1mdW5jdGlvbiB4MSh1LGUsbixpLHQpe0EodSxlfDMyNzY4KTtsZXQgbz1LKHUsZSwyLDAsMSwwLDAsMSxuLGksdCk7cmV0dXJuIG89Tih1LGUsbywwLDAsbixpLHQpLHkodSxlLG4saSx0LHt0eXBlOlwiRGVjb3JhdG9yXCIsZXhwcmVzc2lvbjpvfSl9ZnVuY3Rpb24gdGUodSxlLG4saSx0LG8sbCl7bGV0e3Rva2VuUG9zOmYsbGluZVBvczpjLGNvbFBvczphfT11O1AodSxlfDMyNzY4LDIxNjI3MDApLGU9KGV8MTM0MjE3NzI4KV4xMzQyMTc3Mjg7bGV0IGc9dS5mbGFncyYzMjt1LmZsYWdzPSh1LmZsYWdzfDMyKV4zMjtsZXQgbT1bXSxzO2Zvcig7dS50b2tlbiE9PTEwNzQ3OTA0MTU7KXtsZXQgaz0wO2lmKHM9JDIodSxlKSxrPXMubGVuZ3RoLGs+MCYmdS50b2tlblZhbHVlPT09XCJjb25zdHJ1Y3RvclwiJiZkKHUsMTA3KSx1LnRva2VuPT09MTA3NDc5MDQxNSYmZCh1LDEwNikscSh1LGUsMTA3NDc5MDQxNykpe2s+MCYmZCh1LDExNyk7Y29udGludWV9bS5wdXNoKG9lKHUsZSxpLG4sdCxzLDAsbCx1LnRva2VuUG9zLHUubGluZVBvcyx1LmNvbFBvcykpfXJldHVybiBQKHUsbyY4P2V8MzI3Njg6ZSwxMDc0NzkwNDE1KSx1LmZsYWdzPXUuZmxhZ3MmLTMzfGcseSh1LGUsZixjLGEse3R5cGU6XCJDbGFzc0JvZHlcIixib2R5Om19KX1mdW5jdGlvbiBvZSh1LGUsbixpLHQsbyxsLGYsYyxhLGcpe2xldCBtPWw/MzI6MCxzPW51bGwse3Rva2VuOmssdG9rZW5Qb3M6QyxsaW5lUG9zOmIsY29sUG9zOkV9PXU7aWYoayYxNzYxMjgpc3dpdGNoKHM9SSh1LGUsMCksayl7Y2FzZSAzNjk3MjppZighbCYmdS50b2tlbiE9PTY3MTc0NDExJiYodS50b2tlbiYxMDQ4NTc2KSE9PTEwNDg1NzYmJnUudG9rZW4hPT0xMDc3OTM2MTU3KXJldHVybiBvZSh1LGUsbixpLHQsbywxLGYsYyxhLGcpO2JyZWFrO2Nhc2UgMjA5MDA3OmlmKHUudG9rZW4hPT02NzE3NDQxMSYmISh1LmZsYWdzJjEpKXtpZihlJjEmJih1LnRva2VuJjEwNzM3NDE4MjQpPT09MTA3Mzc0MTgyNClyZXR1cm4gTjIodSxlLHMsbSxvLEMsYixFKTttfD0xNnwoaXUodSxlLDg0NTcwMTQpPzg6MCl9YnJlYWs7Y2FzZSAxMjQwMjppZih1LnRva2VuIT09NjcxNzQ0MTEpe2lmKGUmMSYmKHUudG9rZW4mMTA3Mzc0MTgyNCk9PT0xMDczNzQxODI0KXJldHVybiBOMih1LGUscyxtLG8sQyxiLEUpO218PTI1Nn1icmVhaztjYXNlIDEyNDAzOmlmKHUudG9rZW4hPT02NzE3NDQxMSl7aWYoZSYxJiYodS50b2tlbiYxMDczNzQxODI0KT09PTEwNzM3NDE4MjQpcmV0dXJuIE4yKHUsZSxzLG0sbyxDLGIsRSk7bXw9NTEyfWJyZWFrfWVsc2UgaWYoaz09PTY5MjcxNTcxKW18PTIscz1nMih1LGksZik7ZWxzZSBpZigoayYxMzQyMTc3MjgpPT09MTM0MjE3NzI4KXM9WCh1LGUpO2Vsc2UgaWYoaz09PTg0NTcwMTQpbXw9OCxBKHUsZSk7ZWxzZSBpZihlJjEmJnUudG9rZW49PT0xMzEpbXw9NDA5NixzPWoyKHUsZXwxNjM4NCxDLGIsRSk7ZWxzZSBpZihlJjEmJih1LnRva2VuJjEwNzM3NDE4MjQpPT09MTA3Mzc0MTgyNCltfD0xMjg7ZWxzZXtpZihsJiZrPT09MjE2MjcwMClyZXR1cm4gQjEodSxlLG4sQyxiLEUpO2s9PT0xMjI/KHM9SSh1LGUsMCksdS50b2tlbiE9PTY3MTc0NDExJiZkKHUsMjgsVVt1LnRva2VuJjI1NV0pKTpkKHUsMjgsVVt1LnRva2VuJjI1NV0pfWlmKG0mNzkyJiYodS50b2tlbiYxNDMzNjA/cz1JKHUsZSwwKToodS50b2tlbiYxMzQyMTc3MjgpPT09MTM0MjE3NzI4P3M9WCh1LGUpOnUudG9rZW49PT02OTI3MTU3MT8obXw9MixzPWcyKHUsZSwwKSk6dS50b2tlbj09PTEyMj9zPUkodSxlLDApOmUmMSYmdS50b2tlbj09PTEzMT8obXw9NDA5NixzPWoyKHUsZSxDLGIsRSkpOmQodSwxMzIpKSxtJjJ8fCh1LnRva2VuVmFsdWU9PT1cImNvbnN0cnVjdG9yXCI/KCh1LnRva2VuJjEwNzM3NDE4MjQpPT09MTA3Mzc0MTgyND9kKHUsMTI2KTohKG0mMzIpJiZ1LnRva2VuPT09NjcxNzQ0MTEmJihtJjkyMD9kKHUsNTEsXCJhY2Nlc3NvclwiKTplJjUyNDI4OHx8KHUuZmxhZ3MmMzI/ZCh1LDUyKTp1LmZsYWdzfD0zMikpLG18PTY0KTohKG0mNDA5NikmJm0mODI0JiZ1LnRva2VuVmFsdWU9PT1cInByb3RvdHlwZVwiJiZkKHUsNTApKSxlJjEmJnUudG9rZW4hPT02NzE3NDQxMSlyZXR1cm4gTjIodSxlLHMsbSxvLEMsYixFKTtsZXQgdz1aKHUsZSxtLGYsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB5KHUsZSxjLGEsZyxlJjE/e3R5cGU6XCJNZXRob2REZWZpbml0aW9uXCIsa2luZDohKG0mMzIpJiZtJjY0P1wiY29uc3RydWN0b3JcIjptJjI1Nj9cImdldFwiOm0mNTEyP1wic2V0XCI6XCJtZXRob2RcIixzdGF0aWM6KG0mMzIpPjAsY29tcHV0ZWQ6KG0mMik+MCxrZXk6cyxkZWNvcmF0b3JzOm8sdmFsdWU6d306e3R5cGU6XCJNZXRob2REZWZpbml0aW9uXCIsa2luZDohKG0mMzIpJiZtJjY0P1wiY29uc3RydWN0b3JcIjptJjI1Nj9cImdldFwiOm0mNTEyP1wic2V0XCI6XCJtZXRob2RcIixzdGF0aWM6KG0mMzIpPjAsY29tcHV0ZWQ6KG0mMik+MCxrZXk6cyx2YWx1ZTp3fSl9ZnVuY3Rpb24gajIodSxlLG4saSx0KXtBKHUsZSk7bGV0e3Rva2VuVmFsdWU6b309dTtyZXR1cm4gbz09PVwiY29uc3RydWN0b3JcIiYmZCh1LDEyNSksQSh1LGUpLHkodSxlLG4saSx0LHt0eXBlOlwiUHJpdmF0ZUlkZW50aWZpZXJcIixuYW1lOm99KX1mdW5jdGlvbiBOMih1LGUsbixpLHQsbyxsLGYpe2xldCBjPW51bGw7aWYoaSY4JiZkKHUsMCksdS50b2tlbj09PTEwNzc5MzYxNTcpe0EodSxlfDMyNzY4KTtsZXR7dG9rZW5Qb3M6YSxsaW5lUG9zOmcsY29sUG9zOm19PXU7dS50b2tlbj09PTUzNzA3OTkyOCYmZCh1LDExNiksYz1LKHUsZXwxNjM4NCwyLDAsMSwwLDAsMSxhLGcsbSksKHUudG9rZW4mMTA3Mzc0MTgyNCkhPT0xMDczNzQxODI0JiYoYz1OKHUsZXwxNjM4NCxjLDAsMCxhLGcsbSksYz1PKHUsZXwxNjM4NCwwLDAsYSxnLG0sYyksdS50b2tlbj09PTE4JiYoYz1lMih1LGUsMCxvLGwsZixjKSkpfXJldHVybiB5KHUsZSxvLGwsZix7dHlwZTpcIlByb3BlcnR5RGVmaW5pdGlvblwiLGtleTpuLHZhbHVlOmMsc3RhdGljOihpJjMyKT4wLGNvbXB1dGVkOihpJjIpPjAsZGVjb3JhdG9yczp0fSl9ZnVuY3Rpb24gbGUodSxlLG4saSx0LG8sbCxmKXtpZih1LnRva2VuJjE0MzM2MClyZXR1cm4gZ3UodSxlLG4saSx0LG8sbCxmKTsodS50b2tlbiYyMDk3MTUyKSE9PTIwOTcxNTImJmQodSwyOCxVW3UudG9rZW4mMjU1XSk7bGV0IGM9dS50b2tlbj09PTY5MjcxNTcxP18odSxlLG4sMSwwLDEsaSx0LG8sbCxmKTpZKHUsZSxuLDEsMCwxLGksdCxvLGwsZik7cmV0dXJuIHUuZGVzdHJ1Y3RpYmxlJjE2JiZkKHUsNDgpLHUuZGVzdHJ1Y3RpYmxlJjMyJiZkKHUsNDgpLGN9ZnVuY3Rpb24gZ3UodSxlLG4saSx0LG8sbCxmKXtsZXR7dG9rZW5WYWx1ZTpjLHRva2VuOmF9PXU7cmV0dXJuIGUmMTAyNCYmKChhJjUzNzA3OTgwOCk9PT01MzcwNzk4MDg/ZCh1LDExNik6KGEmMzY4NjQpPT09MzY4NjQmJmQodSwxMTUpKSwoYSYyMDQ4MCk9PT0yMDQ4MCYmZCh1LDEwMCksZSYyMDk5MjAwJiZhPT09MjQxNzczJiZkKHUsMzApLGE9PT0yNDE3MzkmJmkmMjQmJmQodSw5OCksZSY0MTk2MzUyJiZhPT09MjA5MDA4JiZkKHUsOTYpLEEodSxlKSxuJiZ1Mih1LGUsbixjLGksdCkseSh1LGUsbyxsLGYse3R5cGU6XCJJZGVudGlmaWVyXCIsbmFtZTpjfSl9ZnVuY3Rpb24geXUodSxlLG4saSx0LG8pe2lmKEEodSxlKSx1LnRva2VuPT09ODQ1NjI1OSlyZXR1cm4geSh1LGUsaSx0LG8se3R5cGU6XCJKU1hGcmFnbWVudFwiLG9wZW5pbmdGcmFnbWVudDpwMSh1LGUsaSx0LG8pLGNoaWxkcmVuOkx1KHUsZSksY2xvc2luZ0ZyYWdtZW50OmUwKHUsZSxuLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKX0pO2xldCBsPW51bGwsZj1bXSxjPXQwKHUsZSxuLGksdCxvKTtpZighYy5zZWxmQ2xvc2luZyl7Zj1MdSh1LGUpLGw9dTAodSxlLG4sdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO2xldCBhPU0yKGwubmFtZSk7TTIoYy5uYW1lKSE9PWEmJmQodSwxNTAsYSl9cmV0dXJuIHkodSxlLGksdCxvLHt0eXBlOlwiSlNYRWxlbWVudFwiLGNoaWxkcmVuOmYsb3BlbmluZ0VsZW1lbnQ6YyxjbG9zaW5nRWxlbWVudDpsfSl9ZnVuY3Rpb24gcDEodSxlLG4saSx0KXtyZXR1cm4gZDIodSxlKSx5KHUsZSxuLGksdCx7dHlwZTpcIkpTWE9wZW5pbmdGcmFnbWVudFwifSl9ZnVuY3Rpb24gdTAodSxlLG4saSx0LG8pe1AodSxlLDI1KTtsZXQgbD1mZSh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiBuP1AodSxlLDg0NTYyNTkpOnUudG9rZW49ZDIodSxlKSx5KHUsZSxpLHQsbyx7dHlwZTpcIkpTWENsb3NpbmdFbGVtZW50XCIsbmFtZTpsfSl9ZnVuY3Rpb24gZTAodSxlLG4saSx0LG8pe3JldHVybiBQKHUsZSwyNSksUCh1LGUsODQ1NjI1OSkseSh1LGUsaSx0LG8se3R5cGU6XCJKU1hDbG9zaW5nRnJhZ21lbnRcIn0pfWZ1bmN0aW9uIEx1KHUsZSl7bGV0IG49W107Zm9yKDt1LnRva2VuIT09MjU7KXUuaW5kZXg9dS50b2tlblBvcz11LnN0YXJ0UG9zLHUuY29sdW1uPXUuY29sUG9zPXUuc3RhcnRDb2x1bW4sdS5saW5lPXUubGluZVBvcz11LnN0YXJ0TGluZSxkMih1LGUpLG4ucHVzaChuMCh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTtyZXR1cm4gbn1mdW5jdGlvbiBuMCh1LGUsbixpLHQpe2lmKHUudG9rZW49PT0xMzgpcmV0dXJuIGkwKHUsZSxuLGksdCk7aWYodS50b2tlbj09PTIxNjI3MDApcmV0dXJuIGRlKHUsZSwwLDAsbixpLHQpO2lmKHUudG9rZW49PT04NDU2MjU4KXJldHVybiB5dSh1LGUsMCxuLGksdCk7ZCh1LDApfWZ1bmN0aW9uIGkwKHUsZSxuLGksdCl7ZDIodSxlKTtsZXQgbz17dHlwZTpcIkpTWFRleHRcIix2YWx1ZTp1LnRva2VuVmFsdWV9O3JldHVybiBlJjUxMiYmKG8ucmF3PXUudG9rZW5SYXcpLHkodSxlLG4saSx0LG8pfWZ1bmN0aW9uIHQwKHUsZSxuLGksdCxvKXsodS50b2tlbiYxNDMzNjApIT09MTQzMzYwJiYodS50b2tlbiY0MDk2KSE9PTQwOTYmJmQodSwwKTtsZXQgbD1mZSh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpLGY9bDAodSxlKSxjPXUudG9rZW49PT04NDU3MDE2O3JldHVybiB1LnRva2VuPT09ODQ1NjI1OT9kMih1LGUpOihQKHUsZSw4NDU3MDE2KSxuP1AodSxlLDg0NTYyNTkpOmQyKHUsZSkpLHkodSxlLGksdCxvLHt0eXBlOlwiSlNYT3BlbmluZ0VsZW1lbnRcIixuYW1lOmwsYXR0cmlidXRlczpmLHNlbGZDbG9zaW5nOmN9KX1mdW5jdGlvbiBmZSh1LGUsbixpLHQpe3IyKHUpO2xldCBvPVcyKHUsZSxuLGksdCk7aWYodS50b2tlbj09PTIxKXJldHVybiBjZSh1LGUsbyxuLGksdCk7Zm9yKDtxKHUsZSw2NzEwODg3Nyk7KXIyKHUpLG89bzAodSxlLG8sbixpLHQpO3JldHVybiBvfWZ1bmN0aW9uIG8wKHUsZSxuLGksdCxvKXtsZXQgbD1XMih1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiB5KHUsZSxpLHQsbyx7dHlwZTpcIkpTWE1lbWJlckV4cHJlc3Npb25cIixvYmplY3Q6bixwcm9wZXJ0eTpsfSl9ZnVuY3Rpb24gbDAodSxlKXtsZXQgbj1bXTtmb3IoO3UudG9rZW4hPT04NDU3MDE2JiZ1LnRva2VuIT09ODQ1NjI1OSYmdS50b2tlbiE9PTEwNDg1NzY7KW4ucHVzaChjMCh1LGUsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpKTtyZXR1cm4gbn1mdW5jdGlvbiBmMCh1LGUsbixpLHQpe0EodSxlKSxQKHUsZSwxNCk7bGV0IG89Uih1LGUsMSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiBQKHUsZSwxMDc0NzkwNDE1KSx5KHUsZSxuLGksdCx7dHlwZTpcIkpTWFNwcmVhZEF0dHJpYnV0ZVwiLGFyZ3VtZW50Om99KX1mdW5jdGlvbiBjMCh1LGUsbixpLHQpe2lmKHUudG9rZW49PT0yMTYyNzAwKXJldHVybiBmMCh1LGUsbixpLHQpO3IyKHUpO2xldCBvPW51bGwsbD1XMih1LGUsbixpLHQpO2lmKHUudG9rZW49PT0yMSYmKGw9Y2UodSxlLGwsbixpLHQpKSx1LnRva2VuPT09MTA3NzkzNjE1Nyl7bGV0IGY9dTEodSxlKSx7dG9rZW5Qb3M6YyxsaW5lUG9zOmEsY29sUG9zOmd9PXU7c3dpdGNoKGYpe2Nhc2UgMTM0MjgzMjY3Om89WCh1LGUpO2JyZWFrO2Nhc2UgODQ1NjI1ODpvPXl1KHUsZSwxLGMsYSxnKTticmVhaztjYXNlIDIxNjI3MDA6bz1kZSh1LGUsMSwxLGMsYSxnKTticmVhaztkZWZhdWx0OmQodSwxNDkpfX1yZXR1cm4geSh1LGUsbixpLHQse3R5cGU6XCJKU1hBdHRyaWJ1dGVcIix2YWx1ZTpvLG5hbWU6bH0pfWZ1bmN0aW9uIGNlKHUsZSxuLGksdCxvKXtQKHUsZSwyMSk7bGV0IGw9VzIodSxlLHUudG9rZW5Qb3MsdS5saW5lUG9zLHUuY29sUG9zKTtyZXR1cm4geSh1LGUsaSx0LG8se3R5cGU6XCJKU1hOYW1lc3BhY2VkTmFtZVwiLG5hbWVzcGFjZTpuLG5hbWU6bH0pfWZ1bmN0aW9uIGRlKHUsZSxuLGksdCxvLGwpe0EodSxlfDMyNzY4KTtsZXR7dG9rZW5Qb3M6ZixsaW5lUG9zOmMsY29sUG9zOmF9PXU7aWYodS50b2tlbj09PTE0KXJldHVybiBkMCh1LGUsdCxvLGwpO2xldCBnPW51bGw7cmV0dXJuIHUudG9rZW49PT0xMDc0NzkwNDE1PyhpJiZkKHUsMTUyKSxnPXMwKHUsZSx1LnN0YXJ0UG9zLHUuc3RhcnRMaW5lLHUuc3RhcnRDb2x1bW4pKTpnPVIodSxlLDEsMCwwLGYsYyxhKSxuP1AodSxlLDEwNzQ3OTA0MTUpOmQyKHUsZSkseSh1LGUsdCxvLGwse3R5cGU6XCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCIsZXhwcmVzc2lvbjpnfSl9ZnVuY3Rpb24gZDAodSxlLG4saSx0KXtQKHUsZSwxNCk7bGV0IG89Uih1LGUsMSwwLDAsdS50b2tlblBvcyx1LmxpbmVQb3MsdS5jb2xQb3MpO3JldHVybiBQKHUsZSwxMDc0NzkwNDE1KSx5KHUsZSxuLGksdCx7dHlwZTpcIkpTWFNwcmVhZENoaWxkXCIsZXhwcmVzc2lvbjpvfSl9ZnVuY3Rpb24gczAodSxlLG4saSx0KXtyZXR1cm4gdS5zdGFydFBvcz11LnRva2VuUG9zLHUuc3RhcnRMaW5lPXUubGluZVBvcyx1LnN0YXJ0Q29sdW1uPXUuY29sUG9zLHkodSxlLG4saSx0LHt0eXBlOlwiSlNYRW1wdHlFeHByZXNzaW9uXCJ9KX1mdW5jdGlvbiBXMih1LGUsbixpLHQpe2xldHt0b2tlblZhbHVlOm99PXU7cmV0dXJuIEEodSxlKSx5KHUsZSxuLGksdCx7dHlwZTpcIkpTWElkZW50aWZpZXJcIixuYW1lOm99KX1mdW5jdGlvbiBzZSh1LGUpe3JldHVybiBjMSh1LGUsMCl9ZnVuY3Rpb24gYTAodSxlKXtsZXQgbj1uZXcgU3ludGF4RXJyb3IodStcIiAoXCIrZS5sb2Muc3RhcnQubGluZStcIjpcIitlLmxvYy5zdGFydC5jb2x1bW4rXCIpXCIpO3JldHVybiBPYmplY3QuYXNzaWduKG4sZSl9dmFyIGFlPWEwO2Z1bmN0aW9uIG0wKHUpe2xldCBlPVtdO2ZvcihsZXQgbiBvZiB1KXRyeXtyZXR1cm4gbigpfWNhdGNoKGkpe2UucHVzaChpKX10aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIkFsbCBjb21iaW5hdGlvbnMgZmFpbGVkXCIpLHtlcnJvcnM6ZX0pfXZhciBtZT1tMDt2YXIgQzI9SmUoYmUoKSwxKTtmdW5jdGlvbiBFMCh1KXtpZighdS5zdGFydHNXaXRoKFwiIyFcIikpcmV0dXJuXCJcIjtsZXQgZT11LmluZGV4T2YoYFxuYCk7cmV0dXJuIGU9PT0tMT91OnUuc2xpY2UoMCxlKX12YXIgQ2U9RTA7ZnVuY3Rpb24gdzAodSl7bGV0IGU9Q2UodSk7ZSYmKHU9dS5zbGljZShlLmxlbmd0aCsxKSk7bGV0IG49KDAsQzIuZXh0cmFjdCkodSkse3ByYWdtYXM6aSxjb21tZW50czp0fT0oMCxDMi5wYXJzZVdpdGhDb21tZW50cykobik7cmV0dXJue3NoZWJhbmc6ZSx0ZXh0OnUscHJhZ21hczppLGNvbW1lbnRzOnR9fWZ1bmN0aW9uIFBlKHUpe2xldHtwcmFnbWFzOmV9PXcwKHUpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxcInByZXR0aWVyXCIpfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxcImZvcm1hdFwiKX1mdW5jdGlvbiBTMCh1KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh1KSYmdS5sZW5ndGg+MH12YXIgXzI9UzA7ZnVuY3Rpb24gJCh1KXt2YXIgaTtsZXQgZT11LnJhbmdlP3UucmFuZ2VbMF06dS5zdGFydCxuPSgoaT11LmRlY2xhcmF0aW9uKT09bnVsbD92b2lkIDA6aS5kZWNvcmF0b3JzKT8/dS5kZWNvcmF0b3JzO3JldHVybiBfMihuKT9NYXRoLm1pbigkKG5bMF0pLGUpOmV9ZnVuY3Rpb24gcCh1KXtyZXR1cm4gdS5yYW5nZT91LnJhbmdlWzFdOnUuZW5kfWZ1bmN0aW9uIEIwKHUpe3JldHVybiB1PXR5cGVvZiB1PT1cImZ1bmN0aW9uXCI/e3BhcnNlOnV9OnUse2FzdEZvcm1hdDpcImVzdHJlZVwiLGhhc1ByYWdtYTpQZSxsb2NTdGFydDokLGxvY0VuZDpwLC4uLnV9fXZhciBFZT1CMDt2YXIgdjA9KHUsZSxuKT0+e2lmKCEodSYmZT09bnVsbCkpcmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiBlPT1cInN0cmluZ1wiP2VbbjwwP2UubGVuZ3RoK246bl06ZS5hdChuKX0sa3U9djA7ZnVuY3Rpb24gVDAodSl7cmV0dXJuIHU9bmV3IFNldCh1KSxlPT51LmhhcyhlPT1udWxsP3ZvaWQgMDplLnR5cGUpfXZhciB3ZT1UMDt2YXIgRjA9d2UoW1wiQmxvY2tcIixcIkNvbW1lbnRCbG9ja1wiLFwiTXVsdGlMaW5lXCJdKSxUMj1GMDtmdW5jdGlvbiBxMCh1KXtyZXR1cm4gVDIodSkmJnUudmFsdWVbMF09PT1cIipcIiYmL0AoPzp0eXBlfHNhdGlzZmllcylcXGIvLnRlc3QodS52YWx1ZSl9dmFyIFNlPXEwO2Z1bmN0aW9uIEwwKHUpe2xldCBlPWAqJHt1LnZhbHVlfSpgLnNwbGl0KGBcbmApO3JldHVybiBlLmxlbmd0aD4xJiZlLmV2ZXJ5KG49Pm4udHJpbVN0YXJ0KClbMF09PT1cIipcIil9dmFyIGh1PUwwO3ZhciBGMj1udWxsO2Z1bmN0aW9uIHEyKHUpe2lmKEYyIT09bnVsbCYmdHlwZW9mIEYyLnByb3BlcnR5KXtsZXQgZT1GMjtyZXR1cm4gRjI9cTIucHJvdG90eXBlPW51bGwsZX1yZXR1cm4gRjI9cTIucHJvdG90eXBlPXU/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IHEyfXZhciBJMD0xMDtmb3IobGV0IHU9MDt1PD1JMDt1KyspcTIoKTtmdW5jdGlvbiBEdSh1KXtyZXR1cm4gcTIodSl9ZnVuY3Rpb24gTjAodSxlPVwidHlwZVwiKXtEdSh1KTtmdW5jdGlvbiBuKGkpe2xldCB0PWlbZV0sbz11W3RdO2lmKCFBcnJheS5pc0FycmF5KG8pKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7dH0nLmApLHtub2RlOml9KTtyZXR1cm4gb31yZXR1cm4gbn12YXIgQmU9TjA7dmFyIHZlPXtBcnJheUV4cHJlc3Npb246W1wiZWxlbWVudHNcIl0sQXNzaWdubWVudEV4cHJlc3Npb246W1wibGVmdFwiLFwicmlnaHRcIl0sQmluYXJ5RXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxJbnRlcnByZXRlckRpcmVjdGl2ZTpbXSxEaXJlY3RpdmU6W1widmFsdWVcIl0sRGlyZWN0aXZlTGl0ZXJhbDpbXSxCbG9ja1N0YXRlbWVudDpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLEJyZWFrU3RhdGVtZW50OltcImxhYmVsXCJdLENhbGxFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxDYXRjaENsYXVzZTpbXCJwYXJhbVwiLFwiYm9keVwiXSxDb25kaXRpb25hbEV4cHJlc3Npb246W1widGVzdFwiLFwiY29uc2VxdWVudFwiLFwiYWx0ZXJuYXRlXCJdLENvbnRpbnVlU3RhdGVtZW50OltcImxhYmVsXCJdLERlYnVnZ2VyU3RhdGVtZW50OltdLERvV2hpbGVTdGF0ZW1lbnQ6W1widGVzdFwiLFwiYm9keVwiXSxFbXB0eVN0YXRlbWVudDpbXSxFeHByZXNzaW9uU3RhdGVtZW50OltcImV4cHJlc3Npb25cIl0sRmlsZTpbXCJwcm9ncmFtXCJdLEZvckluU3RhdGVtZW50OltcImxlZnRcIixcInJpZ2h0XCIsXCJib2R5XCJdLEZvclN0YXRlbWVudDpbXCJpbml0XCIsXCJ0ZXN0XCIsXCJ1cGRhdGVcIixcImJvZHlcIl0sRnVuY3Rpb25EZWNsYXJhdGlvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLEZ1bmN0aW9uRXhwcmVzc2lvbjpbXCJpZFwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJZGVudGlmaWVyOltcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLElmU3RhdGVtZW50OltcInRlc3RcIixcImNvbnNlcXVlbnRcIixcImFsdGVybmF0ZVwiXSxMYWJlbGVkU3RhdGVtZW50OltcImxhYmVsXCIsXCJib2R5XCJdLFN0cmluZ0xpdGVyYWw6W10sTnVtZXJpY0xpdGVyYWw6W10sTnVsbExpdGVyYWw6W10sQm9vbGVhbkxpdGVyYWw6W10sUmVnRXhwTGl0ZXJhbDpbXSxMb2dpY2FsRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sTmV3RXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sUHJvZ3JhbTpbXCJkaXJlY3RpdmVzXCIsXCJib2R5XCJdLE9iamVjdEV4cHJlc3Npb246W1wicHJvcGVydGllc1wiXSxPYmplY3RNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcImRlY29yYXRvcnNcIl0sUmVzdEVsZW1lbnQ6W1wiYXJndW1lbnRcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLFJldHVyblN0YXRlbWVudDpbXCJhcmd1bWVudFwiXSxTZXF1ZW5jZUV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sUGFyZW50aGVzaXplZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxTd2l0Y2hDYXNlOltcInRlc3RcIixcImNvbnNlcXVlbnRcIl0sU3dpdGNoU3RhdGVtZW50OltcImRpc2NyaW1pbmFudFwiLFwiY2FzZXNcIl0sVGhpc0V4cHJlc3Npb246W10sVGhyb3dTdGF0ZW1lbnQ6W1wiYXJndW1lbnRcIl0sVHJ5U3RhdGVtZW50OltcImJsb2NrXCIsXCJoYW5kbGVyXCIsXCJmaW5hbGl6ZXJcIl0sVW5hcnlFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLFVwZGF0ZUV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sVmFyaWFibGVEZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvbnNcIl0sVmFyaWFibGVEZWNsYXJhdG9yOltcImlkXCIsXCJpbml0XCJdLFdoaWxlU3RhdGVtZW50OltcInRlc3RcIixcImJvZHlcIl0sV2l0aFN0YXRlbWVudDpbXCJvYmplY3RcIixcImJvZHlcIl0sQXNzaWdubWVudFBhdHRlcm46W1wibGVmdFwiLFwicmlnaHRcIixcImRlY29yYXRvcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLEFycmF5UGF0dGVybjpbXCJlbGVtZW50c1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246W1wicGFyYW1zXCIsXCJib2R5XCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicHJlZGljYXRlXCJdLENsYXNzQm9keTpbXCJib2R5XCJdLENsYXNzRXhwcmVzc2lvbjpbXCJpZFwiLFwiYm9keVwiLFwic3VwZXJDbGFzc1wiLFwibWl4aW5zXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwiaW1wbGVtZW50c1wiLFwiZGVjb3JhdG9yc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCJdLENsYXNzRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIixcInN1cGVyQ2xhc3NcIixcIm1peGluc1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVyVHlwZVBhcmFtZXRlcnNcIixcImltcGxlbWVudHNcIixcImRlY29yYXRvcnNcIixcInN1cGVyVHlwZUFyZ3VtZW50c1wiXSxFeHBvcnRBbGxEZWNsYXJhdGlvbjpbXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIixcImV4cG9ydGVkXCJdLEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjpbXCJkZWNsYXJhdGlvblwiXSxFeHBvcnROYW1lZERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sRXhwb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJleHBvcnRlZFwiXSxGb3JPZlN0YXRlbWVudDpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYm9keVwiXSxJbXBvcnREZWNsYXJhdGlvbjpbXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIixcImF0dHJpYnV0ZXNcIixcImFzc2VydGlvbnNcIl0sSW1wb3J0RGVmYXVsdFNwZWNpZmllcjpbXCJsb2NhbFwiXSxJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI6W1wibG9jYWxcIl0sSW1wb3J0U3BlY2lmaWVyOltcImxvY2FsXCIsXCJpbXBvcnRlZFwiXSxNZXRhUHJvcGVydHk6W1wibWV0YVwiLFwicHJvcGVydHlcIl0sQ2xhc3NNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLE9iamVjdFBhdHRlcm46W1wicHJvcGVydGllc1wiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sU3ByZWFkRWxlbWVudDpbXCJhcmd1bWVudFwiXSxTdXBlcjpbXSxUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246W1widGFnXCIsXCJxdWFzaVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVGVtcGxhdGVFbGVtZW50OltdLFRlbXBsYXRlTGl0ZXJhbDpbXCJxdWFzaXNcIixcImV4cHJlc3Npb25zXCJdLFlpZWxkRXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxBd2FpdEV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sSW1wb3J0OltdLEJpZ0ludExpdGVyYWw6W10sRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyOltcImV4cG9ydGVkXCJdLE9wdGlvbmFsTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLE9wdGlvbmFsQ2FsbEV4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLENsYXNzUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIixcInZhcmlhbmNlXCJdLENsYXNzQWNjZXNzb3JQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxDbGFzc1ByaXZhdGVQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJkZWNvcmF0b3JzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwidmFyaWFuY2VcIl0sQ2xhc3NQcml2YXRlTWV0aG9kOltcImtleVwiLFwicGFyYW1zXCIsXCJib2R5XCIsXCJkZWNvcmF0b3JzXCIsXCJyZXR1cm5UeXBlXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxQcml2YXRlTmFtZTpbXCJpZFwiXSxTdGF0aWNCbG9jazpbXCJib2R5XCJdLEFueVR5cGVBbm5vdGF0aW9uOltdLEFycmF5VHlwZUFubm90YXRpb246W1wiZWxlbWVudFR5cGVcIl0sQm9vbGVhblR5cGVBbm5vdGF0aW9uOltdLEJvb2xlYW5MaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVsbExpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxDbGFzc0ltcGxlbWVudHM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLERlY2xhcmVDbGFzczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcIm1peGluc1wiLFwiaW1wbGVtZW50c1wiLFwiYm9keVwiXSxEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInByZWRpY2F0ZVwiXSxEZWNsYXJlSW50ZXJmYWNlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxEZWNsYXJlTW9kdWxlOltcImlkXCIsXCJib2R5XCJdLERlY2xhcmVNb2R1bGVFeHBvcnRzOltcInR5cGVBbm5vdGF0aW9uXCJdLERlY2xhcmVUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxEZWNsYXJlT3BhcXVlVHlwZTpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInN1cGVydHlwZVwiXSxEZWNsYXJlVmFyaWFibGU6W1wiaWRcIl0sRGVjbGFyZUV4cG9ydERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCIsXCJzcGVjaWZpZXJzXCIsXCJzb3VyY2VcIl0sRGVjbGFyZUV4cG9ydEFsbERlY2xhcmF0aW9uOltcInNvdXJjZVwiXSxEZWNsYXJlZFByZWRpY2F0ZTpbXCJ2YWx1ZVwiXSxFeGlzdHNUeXBlQW5ub3RhdGlvbjpbXSxGdW5jdGlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJlc3RcIixcInJldHVyblR5cGVcIixcInRoaXNcIl0sRnVuY3Rpb25UeXBlUGFyYW06W1wibmFtZVwiLFwidHlwZUFubm90YXRpb25cIl0sR2VuZXJpY1R5cGVBbm5vdGF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbmZlcnJlZFByZWRpY2F0ZTpbXSxJbnRlcmZhY2VFeHRlbmRzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sSW50ZXJmYWNlVHlwZUFubm90YXRpb246W1wiZXh0ZW5kc1wiLFwiYm9keVwiXSxJbnRlcnNlY3Rpb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxNaXhlZFR5cGVBbm5vdGF0aW9uOltdLEVtcHR5VHlwZUFubm90YXRpb246W10sTnVsbGFibGVUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxOdW1iZXJMaXRlcmFsVHlwZUFubm90YXRpb246W10sTnVtYmVyVHlwZUFubm90YXRpb246W10sT2JqZWN0VHlwZUFubm90YXRpb246W1wicHJvcGVydGllc1wiLFwiaW5kZXhlcnNcIixcImNhbGxQcm9wZXJ0aWVzXCIsXCJpbnRlcm5hbFNsb3RzXCJdLE9iamVjdFR5cGVJbnRlcm5hbFNsb3Q6W1wiaWRcIixcInZhbHVlXCIsXCJvcHRpb25hbFwiLFwic3RhdGljXCIsXCJtZXRob2RcIl0sT2JqZWN0VHlwZUNhbGxQcm9wZXJ0eTpbXCJ2YWx1ZVwiXSxPYmplY3RUeXBlSW5kZXhlcjpbXCJpZFwiLFwia2V5XCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sT2JqZWN0VHlwZVByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInZhcmlhbmNlXCJdLE9iamVjdFR5cGVTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxPcGFxdWVUeXBlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJ0eXBlXCIsXCJpbXBsdHlwZVwiXSxRdWFsaWZpZWRUeXBlSWRlbnRpZmllcjpbXCJpZFwiLFwicXVhbGlmaWNhdGlvblwiXSxTdHJpbmdMaXRlcmFsVHlwZUFubm90YXRpb246W10sU3RyaW5nVHlwZUFubm90YXRpb246W10sU3ltYm9sVHlwZUFubm90YXRpb246W10sVGhpc1R5cGVBbm5vdGF0aW9uOltdLFR1cGxlVHlwZUFubm90YXRpb246W1widHlwZXNcIixcImVsZW1lbnRUeXBlc1wiXSxUeXBlb2ZUeXBlQW5ub3RhdGlvbjpbXCJhcmd1bWVudFwiXSxUeXBlQWxpYXM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJyaWdodFwiXSxUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlQ2FzdEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVHlwZVBhcmFtZXRlcjpbXCJib3VuZFwiLFwiZGVmYXVsdFwiLFwidmFyaWFuY2VcIl0sVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOltcInBhcmFtc1wiXSxUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVW5pb25UeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiXSxWYXJpYW5jZTpbXSxWb2lkVHlwZUFubm90YXRpb246W10sRW51bURlY2xhcmF0aW9uOltcImlkXCIsXCJib2R5XCJdLEVudW1Cb29sZWFuQm9keTpbXCJtZW1iZXJzXCJdLEVudW1OdW1iZXJCb2R5OltcIm1lbWJlcnNcIl0sRW51bVN0cmluZ0JvZHk6W1wibWVtYmVyc1wiXSxFbnVtU3ltYm9sQm9keTpbXCJtZW1iZXJzXCJdLEVudW1Cb29sZWFuTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1OdW1iZXJNZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bVN0cmluZ01lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtRGVmYXVsdGVkTWVtYmVyOltcImlkXCJdLEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxPcHRpb25hbEluZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxKU1hBdHRyaWJ1dGU6W1wibmFtZVwiLFwidmFsdWVcIl0sSlNYQ2xvc2luZ0VsZW1lbnQ6W1wibmFtZVwiXSxKU1hFbGVtZW50OltcIm9wZW5pbmdFbGVtZW50XCIsXCJjaGlsZHJlblwiLFwiY2xvc2luZ0VsZW1lbnRcIl0sSlNYRW1wdHlFeHByZXNzaW9uOltdLEpTWEV4cHJlc3Npb25Db250YWluZXI6W1wiZXhwcmVzc2lvblwiXSxKU1hTcHJlYWRDaGlsZDpbXCJleHByZXNzaW9uXCJdLEpTWElkZW50aWZpZXI6W10sSlNYTWVtYmVyRXhwcmVzc2lvbjpbXCJvYmplY3RcIixcInByb3BlcnR5XCJdLEpTWE5hbWVzcGFjZWROYW1lOltcIm5hbWVzcGFjZVwiLFwibmFtZVwiXSxKU1hPcGVuaW5nRWxlbWVudDpbXCJuYW1lXCIsXCJhdHRyaWJ1dGVzXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxKU1hTcHJlYWRBdHRyaWJ1dGU6W1wiYXJndW1lbnRcIl0sSlNYVGV4dDpbXSxKU1hGcmFnbWVudDpbXCJvcGVuaW5nRnJhZ21lbnRcIixcImNoaWxkcmVuXCIsXCJjbG9zaW5nRnJhZ21lbnRcIl0sSlNYT3BlbmluZ0ZyYWdtZW50OltdLEpTWENsb3NpbmdGcmFnbWVudDpbXSxOb29wOltdLFBsYWNlaG9sZGVyOltdLFY4SW50cmluc2ljSWRlbnRpZmllcjpbXSxBcmd1bWVudFBsYWNlaG9sZGVyOltdLEJpbmRFeHByZXNzaW9uOltcIm9iamVjdFwiLFwiY2FsbGVlXCJdLEltcG9ydEF0dHJpYnV0ZTpbXCJrZXlcIixcInZhbHVlXCJdLERlY29yYXRvcjpbXCJleHByZXNzaW9uXCJdLERvRXhwcmVzc2lvbjpbXCJib2R5XCJdLEV4cG9ydERlZmF1bHRTcGVjaWZpZXI6W1wiZXhwb3J0ZWRcIl0sUmVjb3JkRXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLFR1cGxlRXhwcmVzc2lvbjpbXCJlbGVtZW50c1wiXSxEZWNpbWFsTGl0ZXJhbDpbXSxNb2R1bGVFeHByZXNzaW9uOltcImJvZHlcIl0sVG9waWNSZWZlcmVuY2U6W10sUGlwZWxpbmVUb3BpY0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxQaXBlbGluZUJhcmVGdW5jdGlvbjpbXCJjYWxsZWVcIl0sUGlwZWxpbmVQcmltYXJ5VG9waWNSZWZlcmVuY2U6W10sVFNQYXJhbWV0ZXJQcm9wZXJ0eTpbXCJwYXJhbWV0ZXJcIixcImRlY29yYXRvcnNcIl0sVFNEZWNsYXJlRnVuY3Rpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIixcImJvZHlcIl0sVFNEZWNsYXJlTWV0aG9kOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1F1YWxpZmllZE5hbWU6W1wibGVmdFwiLFwicmlnaHRcIl0sVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU1Byb3BlcnR5U2lnbmF0dXJlOltcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNNZXRob2RTaWduYXR1cmU6W1wia2V5XCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0luZGV4U2lnbmF0dXJlOltcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQW55S2V5d29yZDpbXSxUU0Jvb2xlYW5LZXl3b3JkOltdLFRTQmlnSW50S2V5d29yZDpbXSxUU0ludHJpbnNpY0tleXdvcmQ6W10sVFNOZXZlcktleXdvcmQ6W10sVFNOdWxsS2V5d29yZDpbXSxUU051bWJlcktleXdvcmQ6W10sVFNPYmplY3RLZXl3b3JkOltdLFRTU3RyaW5nS2V5d29yZDpbXSxUU1N5bWJvbEtleXdvcmQ6W10sVFNVbmRlZmluZWRLZXl3b3JkOltdLFRTVW5rbm93bktleXdvcmQ6W10sVFNWb2lkS2V5d29yZDpbXSxUU1RoaXNUeXBlOltdLFRTRnVuY3Rpb25UeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTQ29uc3RydWN0b3JUeXBlOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTVHlwZVJlZmVyZW5jZTpbXCJ0eXBlTmFtZVwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNUeXBlUHJlZGljYXRlOltcInBhcmFtZXRlck5hbWVcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZVF1ZXJ5OltcImV4cHJOYW1lXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU1R5cGVMaXRlcmFsOltcIm1lbWJlcnNcIl0sVFNBcnJheVR5cGU6W1wiZWxlbWVudFR5cGVcIl0sVFNUdXBsZVR5cGU6W1wiZWxlbWVudFR5cGVzXCJdLFRTT3B0aW9uYWxUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTUmVzdFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNOYW1lZFR1cGxlTWVtYmVyOltcImxhYmVsXCIsXCJlbGVtZW50VHlwZVwiXSxUU1VuaW9uVHlwZTpbXCJ0eXBlc1wiXSxUU0ludGVyc2VjdGlvblR5cGU6W1widHlwZXNcIl0sVFNDb25kaXRpb25hbFR5cGU6W1wiY2hlY2tUeXBlXCIsXCJleHRlbmRzVHlwZVwiLFwidHJ1ZVR5cGVcIixcImZhbHNlVHlwZVwiXSxUU0luZmVyVHlwZTpbXCJ0eXBlUGFyYW1ldGVyXCJdLFRTUGFyZW50aGVzaXplZFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlT3BlcmF0b3I6W1widHlwZUFubm90YXRpb25cIl0sVFNJbmRleGVkQWNjZXNzVHlwZTpbXCJvYmplY3RUeXBlXCIsXCJpbmRleFR5cGVcIl0sVFNNYXBwZWRUeXBlOltcInR5cGVQYXJhbWV0ZXJcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJuYW1lVHlwZVwiXSxUU0xpdGVyYWxUeXBlOltcImxpdGVyYWxcIl0sVFNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNJbnRlcmZhY2VEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcImV4dGVuZHNcIixcImJvZHlcIl0sVFNJbnRlcmZhY2VCb2R5OltcImJvZHlcIl0sVFNUeXBlQWxpYXNEZWNsYXJhdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sVFNBc0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVFNTYXRpc2ZpZXNFeHByZXNzaW9uOltcImV4cHJlc3Npb25cIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTVHlwZUFzc2VydGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiLFwiZXhwcmVzc2lvblwiXSxUU0VudW1EZWNsYXJhdGlvbjpbXCJpZFwiLFwibWVtYmVyc1wiXSxUU0VudW1NZW1iZXI6W1wiaWRcIixcImluaXRpYWxpemVyXCJdLFRTTW9kdWxlRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIl0sVFNNb2R1bGVCbG9jazpbXCJib2R5XCJdLFRTSW1wb3J0VHlwZTpbXCJhcmd1bWVudFwiLFwicXVhbGlmaWVyXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOltcImlkXCIsXCJtb2R1bGVSZWZlcmVuY2VcIl0sVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZTpbXCJleHByZXNzaW9uXCJdLFRTTm9uTnVsbEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiXSxUU0V4cG9ydEFzc2lnbm1lbnQ6W1wiZXhwcmVzc2lvblwiXSxUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uOltcImlkXCJdLFRTVHlwZUFubm90YXRpb246W1widHlwZUFubm90YXRpb25cIl0sVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbjpbXCJwYXJhbXNcIl0sVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246W1wicGFyYW1zXCJdLFRTVHlwZVBhcmFtZXRlcjpbXCJjb25zdHJhaW50XCIsXCJkZWZhdWx0XCIsXCJuYW1lXCJdLENoYWluRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLEV4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxFeHBlcmltZW50YWxTcHJlYWRQcm9wZXJ0eTpbXCJhcmd1bWVudFwiXSxJbXBvcnRFeHByZXNzaW9uOltcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiXSxMaXRlcmFsOltdLE1ldGhvZERlZmluaXRpb246W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ2YWx1ZVwiXSxQcml2YXRlSWRlbnRpZmllcjpbXSxQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCJdLFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sQWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YWx1ZVwiXSxUU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eTpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQWJzdHJhY3RLZXl3b3JkOltdLFRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uOltcImtleVwiLFwidmFsdWVcIl0sVFNBYnN0cmFjdFByb3BlcnR5RGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInR5cGVBbm5vdGF0aW9uXCJdLFRTQXN5bmNLZXl3b3JkOltdLFRTQ2xhc3NJbXBsZW1lbnRzOltcImV4cHJlc3Npb25cIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFRTRGVjbGFyZUtleXdvcmQ6W10sVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNFeHBvcnRLZXl3b3JkOltdLFRTSW50ZXJmYWNlSGVyaXRhZ2U6W1wiZXhwcmVzc2lvblwiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNQcml2YXRlS2V5d29yZDpbXSxUU1Byb3RlY3RlZEtleXdvcmQ6W10sVFNQdWJsaWNLZXl3b3JkOltdLFRTUmVhZG9ubHlLZXl3b3JkOltdLFRTU3RhdGljS2V5d29yZDpbXSxUU1RlbXBsYXRlTGl0ZXJhbFR5cGU6W1wicXVhc2lzXCIsXCJ0eXBlc1wiXSxCaWdJbnRMaXRlcmFsVHlwZUFubm90YXRpb246W10sQmlnSW50VHlwZUFubm90YXRpb246W10sQ29uZGl0aW9uYWxUeXBlQW5ub3RhdGlvbjpbXCJjaGVja1R5cGVcIixcImV4dGVuZHNUeXBlXCIsXCJ0cnVlVHlwZVwiLFwiZmFsc2VUeXBlXCJdLERlY2xhcmVFbnVtOltcImlkXCIsXCJib2R5XCJdLEluZmVyVHlwZUFubm90YXRpb246W1widHlwZVBhcmFtZXRlclwiXSxLZXlvZlR5cGVBbm5vdGF0aW9uOltcImFyZ3VtZW50XCJdLE9iamVjdFR5cGVNYXBwZWRUeXBlUHJvcGVydHk6W1wia2V5VHBhcmFtXCIsXCJwcm9wVHlwZVwiLFwic291cmNlVHlwZVwiLFwidmFyaWFuY2VcIl0sUXVhbGlmaWVkVHlwZW9mSWRlbnRpZmllcjpbXCJxdWFsaWZpY2F0aW9uXCIsXCJpZFwiXSxUdXBsZVR5cGVMYWJlbGVkRWxlbWVudDpbXCJsYWJlbFwiLFwiZWxlbWVudFR5cGVcIixcInZhcmlhbmNlXCJdLFR1cGxlVHlwZVNwcmVhZEVsZW1lbnQ6W1wibGFiZWxcIixcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVQcmVkaWNhdGU6W1wicGFyYW1ldGVyTmFtZVwiLFwidHlwZUFubm90YXRpb25cIixcImFzc2VydHNcIl0sTkdSb290OltcIm5vZGVcIl0sTkdQaXBlRXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiYXJndW1lbnRzXCJdLE5HQ2hhaW5lZEV4cHJlc3Npb246W1wiZXhwcmVzc2lvbnNcIl0sTkdFbXB0eUV4cHJlc3Npb246W10sTkdNaWNyb3N5bnRheDpbXCJib2R5XCJdLE5HTWljcm9zeW50YXhLZXk6W10sTkdNaWNyb3N5bnRheEV4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwiYWxpYXNcIl0sTkdNaWNyb3N5bnRheEtleWVkRXhwcmVzc2lvbjpbXCJrZXlcIixcImV4cHJlc3Npb25cIl0sTkdNaWNyb3N5bnRheExldDpbXCJrZXlcIixcInZhbHVlXCJdLE5HTWljcm9zeW50YXhBczpbXCJrZXlcIixcImFsaWFzXCJdLEpzRXhwcmVzc2lvblJvb3Q6W1wibm9kZVwiXSxKc29uUm9vdDpbXCJub2RlXCJdLFRTSlNEb2NBbGxUeXBlOltdLFRTSlNEb2NVbmtub3duVHlwZTpbXSxUU0pTRG9jTnVsbGFibGVUeXBlOltcInR5cGVBbm5vdGF0aW9uXCJdLFRTSlNEb2NOb25OdWxsYWJsZVR5cGU6W1widHlwZUFubm90YXRpb25cIl0sTmV2ZXJUeXBlQW5ub3RhdGlvbjpbXSxVbmRlZmluZWRUeXBlQW5ub3RhdGlvbjpbXSxVbmtub3duVHlwZUFubm90YXRpb246W119O3ZhciBWMD1CZSh2ZSksVGU9VjA7ZnVuY3Rpb24gQXUodSxlKXtpZighKHUhPT1udWxsJiZ0eXBlb2YgdT09XCJvYmplY3RcIikpcmV0dXJuIHU7aWYoQXJyYXkuaXNBcnJheSh1KSl7Zm9yKGxldCBpPTA7aTx1Lmxlbmd0aDtpKyspdVtpXT1BdSh1W2ldLGUpO3JldHVybiB1fWxldCBuPVRlKHUpO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKXVbbltpXV09QXUodVtuW2ldXSxlKTtyZXR1cm4gZSh1KXx8dX12YXIgWTI9QXU7ZnVuY3Rpb24gUjAodSxlKXtsZXR7cGFyc2VyOm4sdGV4dDppfT1lO2lmKHUudHlwZT09PVwiRmlsZVwiJiZ1LnByb2dyYW0uaW50ZXJwcmV0ZXIpe2xldHtwcm9ncmFtOntpbnRlcnByZXRlcjpvfSxjb21tZW50czpsfT11O2RlbGV0ZSB1LnByb2dyYW0uaW50ZXJwcmV0ZXIsbC51bnNoaWZ0KG8pfWlmKG49PT1cImJhYmVsXCIpe2xldCBvPW5ldyBTZXQ7dT1ZMih1LGw9Pnt2YXIgZjsoZj1sLmxlYWRpbmdDb21tZW50cykhPW51bGwmJmYuc29tZShTZSkmJm8uYWRkKCQobCkpfSksdT1ZMih1LGw9PntpZihsLnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCIpe2xldHtleHByZXNzaW9uOmZ9PWw7aWYoZi50eXBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cIilyZXR1cm4gZi5yYW5nZT1sLnJhbmdlLGY7bGV0IGM9JChsKTtpZighby5oYXMoYykpcmV0dXJuIGYuZXh0cmE9ey4uLmYuZXh0cmEscGFyZW50aGVzaXplZDohMH0sZn19KX1pZih1PVkyKHUsbz0+e3N3aXRjaChvLnR5cGUpe2Nhc2VcIkxvZ2ljYWxFeHByZXNzaW9uXCI6aWYoRmUobykpcmV0dXJuIGJ1KG8pO2JyZWFrO2Nhc2VcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjp7bGV0IGw9a3UoITEsby5kZWNsYXJhdGlvbnMsLTEpO2whPW51bGwmJmwuaW5pdCYmdChvLGwpO2JyZWFrfWNhc2VcIlRTUGFyZW50aGVzaXplZFR5cGVcIjpyZXR1cm4gby50eXBlQW5ub3RhdGlvbjtjYXNlXCJUU1R5cGVQYXJhbWV0ZXJcIjppZih0eXBlb2Ygby5uYW1lPT1cInN0cmluZ1wiKXtsZXQgbD0kKG8pO28ubmFtZT17dHlwZTpcIklkZW50aWZpZXJcIixuYW1lOm8ubmFtZSxyYW5nZTpbbCxsK28ubmFtZS5sZW5ndGhdfX1icmVhaztjYXNlXCJUb3BpY1JlZmVyZW5jZVwiOnUuZXh0cmE9ey4uLnUuZXh0cmEsX19pc1VzaW5nSGFja1BpcGVsaW5lOiEwfTticmVhaztjYXNlXCJFeHBvcnRBbGxEZWNsYXJhdGlvblwiOntsZXR7ZXhwb3J0ZWQ6bH09bztpZihuPT09XCJtZXJpeWFoXCImJihsPT1udWxsP3ZvaWQgMDpsLnR5cGUpPT09XCJJZGVudGlmaWVyXCIpe2xldCBmPWkuc2xpY2UoJChsKSxwKGwpKTsoZi5zdGFydHNXaXRoKCdcIicpfHxmLnN0YXJ0c1dpdGgoXCInXCIpKSYmKG8uZXhwb3J0ZWQ9ey4uLm8uZXhwb3J0ZWQsdHlwZTpcIkxpdGVyYWxcIix2YWx1ZTpvLmV4cG9ydGVkLm5hbWUscmF3OmZ9KX1icmVha31jYXNlXCJUU1VuaW9uVHlwZVwiOmNhc2VcIlRTSW50ZXJzZWN0aW9uVHlwZVwiOmlmKG8udHlwZXMubGVuZ3RoPT09MSlyZXR1cm4gby50eXBlc1swXTticmVha319KSxfMih1LmNvbW1lbnRzKSl7bGV0IG89a3UoITEsdS5jb21tZW50cywtMSk7Zm9yKGxldCBsPXUuY29tbWVudHMubGVuZ3RoLTI7bD49MDtsLS0pe2xldCBmPXUuY29tbWVudHNbbF07cChmKT09PSQobykmJlQyKGYpJiZUMihvKSYmaHUoZikmJmh1KG8pJiYodS5jb21tZW50cy5zcGxpY2UobCsxLDEpLGYudmFsdWUrPVwiKi8vKlwiK28udmFsdWUsZi5yYW5nZT1bJChmKSxwKG8pXSksbz1mfX1yZXR1cm4gdS50eXBlPT09XCJQcm9ncmFtXCImJih1LnJhbmdlPVswLGkubGVuZ3RoXSksdTtmdW5jdGlvbiB0KG8sbCl7aVtwKGwpXSE9PVwiO1wiJiYoby5yYW5nZT1bJChvKSxwKGwpXSl9fWZ1bmN0aW9uIEZlKHUpe3JldHVybiB1LnR5cGU9PT1cIkxvZ2ljYWxFeHByZXNzaW9uXCImJnUucmlnaHQudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cIiYmdS5vcGVyYXRvcj09PXUucmlnaHQub3BlcmF0b3J9ZnVuY3Rpb24gYnUodSl7cmV0dXJuIEZlKHUpP2J1KHt0eXBlOlwiTG9naWNhbEV4cHJlc3Npb25cIixvcGVyYXRvcjp1Lm9wZXJhdG9yLGxlZnQ6YnUoe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOnUub3BlcmF0b3IsbGVmdDp1LmxlZnQscmlnaHQ6dS5yaWdodC5sZWZ0LHJhbmdlOlskKHUubGVmdCkscCh1LnJpZ2h0LmxlZnQpXX0pLHJpZ2h0OnUucmlnaHQucmlnaHQscmFuZ2U6WyQodSkscCh1KV19KTp1fXZhciBxZT1SMDtmdW5jdGlvbiBPMCh1KXtsZXR7ZmlsZXBhdGg6ZX09dTtpZihlKXtpZihlPWUudG9Mb3dlckNhc2UoKSxlLmVuZHNXaXRoKFwiLmNqc1wiKSlyZXR1cm5cInNjcmlwdFwiO2lmKGUuZW5kc1dpdGgoXCIubWpzXCIpKXJldHVyblwibW9kdWxlXCJ9fXZhciBMZT1PMDt2YXIgVTA9e25leHQ6ITAscmFuZ2VzOiEwLHdlYmNvbXBhdDohMCxsb2M6ITAscmF3OiEwLGRpcmVjdGl2ZXM6ITAsZ2xvYmFsUmV0dXJuOiEwLGltcGxpZWRTdHJpY3Q6ITEscHJlc2VydmVQYXJlbnM6ITEsbGV4aWNhbDohMSxpZGVudGlmaWVyUGF0dGVybjohMSxqc3g6ITAsc3BlY0RldmlhdGlvbjohMCx1bmlxdWVLZXlJblBhdHRlcm46ITF9O2Z1bmN0aW9uIE0wKHUsZSl7bGV0IG49W10saT1bXSx0PXNlKHUsey4uLlUwLG1vZHVsZTplPT09XCJtb2R1bGVcIixvbkNvbW1lbnQ6bixvblRva2VuOml9KTtyZXR1cm4gdC5jb21tZW50cz1uLHQudG9rZW5zPWksdH1mdW5jdGlvbiBKMCh1KXt2YXIgbztsZXR7bWVzc2FnZTplLGxpbmU6bixjb2x1bW46aX09dSx0PShvPWUubWF0Y2goL15cXFsoPzxsaW5lPlxcZCspOig/PGNvbHVtbj5cXGQrKV06ICg/PG1lc3NhZ2U+LiopJC8pKT09bnVsbD92b2lkIDA6by5ncm91cHM7cmV0dXJuIHQmJihlPXQubWVzc2FnZSx0eXBlb2YgbiE9XCJudW1iZXJcIiYmKG49TnVtYmVyKHQubGluZSksaT1OdW1iZXIodC5jb2x1bW4pKSksdHlwZW9mIG4hPVwibnVtYmVyXCI/dTphZShlLHtsb2M6e3N0YXJ0OntsaW5lOm4sY29sdW1uOml9fSxjYXVzZTp1fSl9ZnVuY3Rpb24gajAodSxlPXt9KXtsZXQgbj1MZShlKSxpPShuP1tuXTpbXCJtb2R1bGVcIixcInNjcmlwdFwiXSkubWFwKG89PigpPT5NMCh1LG8pKSx0O3RyeXt0PW1lKGkpfWNhdGNoKHtlcnJvcnM6W29dfSl7dGhyb3cgSjAobyl9cmV0dXJuIHFlKHQse3BhcnNlcjpcIm1lcml5YWhcIix0ZXh0OnV9KX12YXIgWDA9RWUoajApO3ZhciBqbj1QdTtleHBvcnR7am4gYXMgZGVmYXVsdCxDdSBhcyBwYXJzZXJzfTtcbiIsICJ2YXIgVmw9T2JqZWN0LmNyZWF0ZTt2YXIgWnI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBZbD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBHbD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgS2w9T2JqZWN0LmdldFByb3RvdHlwZU9mLEhsPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHk9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxPcz0odCxlKT0+e2Zvcih2YXIgbiBpbiBlKVpyKHQsbix7Z2V0OmVbbl0sZW51bWVyYWJsZTohMH0pfSxRbD0odCxlLG4scik9PntpZihlJiZ0eXBlb2YgZT09XCJvYmplY3RcInx8dHlwZW9mIGU9PVwiZnVuY3Rpb25cIilmb3IobGV0IHMgb2YgR2woZSkpIUhsLmNhbGwodCxzKSYmcyE9PW4mJlpyKHQscyx7Z2V0OigpPT5lW3NdLGVudW1lcmFibGU6IShyPVlsKGUscykpfHxyLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIHVlPSh0LGUsbik9PihuPXQhPW51bGw/VmwoS2wodCkpOnt9LFFsKGV8fCF0fHwhdC5fX2VzTW9kdWxlP1pyKG4sXCJkZWZhdWx0XCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOm4sdCkpO3ZhciBRcz15KHBlPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHBlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3BlLmV4dHJhY3Q9Z2M7cGUucGFyc2U9dmM7cGUucGFyc2VXaXRoQ29tbWVudHM9SHM7cGUucHJpbnQ9eGM7cGUuc3RyaXA9d2M7dmFyIHBjPS9cXCpcXC8kLyxoYz0vXlxcL1xcKlxcKj8vLEdzPS9eXFxzKihcXC9cXCpcXCo/KC58XFxyP1xcbikqP1xcKlxcLykvLGRjPS8oXnxcXHMrKVxcL1xcLyhbXlxcclxcbl0qKS9nLHpzPS9eKFxccj9cXG4pKy8sbWM9Lyg/Ol58XFxyP1xcbikgKihAW15cXHJcXG5dKj8pICpcXHI/XFxuICooPyFbXkBcXHJcXG5dKlxcL1xcL1teXSopKFteQFxcclxcblxcc11bXkBcXHJcXG5dKz8pICpcXHI/XFxuL2csVnM9Lyg/Ol58XFxyP1xcbikgKkAoXFxTKykgKihbXlxcclxcbl0qKS9nLHljPS8oXFxyP1xcbnxeKSAqXFwqID8vZyxLcz1bXTtmdW5jdGlvbiBnYyh0KXtsZXQgZT10Lm1hdGNoKEdzKTtyZXR1cm4gZT9lWzBdLnRyaW1MZWZ0KCk6XCJcIn1mdW5jdGlvbiB3Yyh0KXtsZXQgZT10Lm1hdGNoKEdzKTtyZXR1cm4gZSYmZVswXT90LnN1YnN0cmluZyhlWzBdLmxlbmd0aCk6dH1mdW5jdGlvbiB2Yyh0KXtyZXR1cm4gSHModCkucHJhZ21hc31mdW5jdGlvbiBIcyh0KXtsZXQgZT1gXG5gO3Q9dC5yZXBsYWNlKGhjLFwiXCIpLnJlcGxhY2UocGMsXCJcIikucmVwbGFjZSh5YyxcIiQxXCIpO2xldCBuPVwiXCI7Zm9yKDtuIT09dDspbj10LHQ9dC5yZXBsYWNlKG1jLGAke2V9JDEgJDIke2V9YCk7dD10LnJlcGxhY2UoenMsXCJcIikudHJpbVJpZ2h0KCk7bGV0IHI9T2JqZWN0LmNyZWF0ZShudWxsKSxzPXQucmVwbGFjZShWcyxcIlwiKS5yZXBsYWNlKHpzLFwiXCIpLnRyaW1SaWdodCgpLGk7Zm9yKDtpPVZzLmV4ZWModCk7KXtsZXQgbz1pWzJdLnJlcGxhY2UoZGMsXCJcIik7dHlwZW9mIHJbaVsxXV09PVwic3RyaW5nXCJ8fEFycmF5LmlzQXJyYXkocltpWzFdXSk/cltpWzFdXT1Lcy5jb25jYXQocltpWzFdXSxvKTpyW2lbMV1dPW99cmV0dXJue2NvbW1lbnRzOnMscHJhZ21hczpyfX1mdW5jdGlvbiB4Yyh7Y29tbWVudHM6dD1cIlwiLHByYWdtYXM6ZT17fX0pe2xldCBuPWBcbmAscj1cIi8qKlwiLHM9XCIgKlwiLGk9XCIgKi9cIixvPU9iamVjdC5rZXlzKGUpLGE9by5tYXAoYz0+WXMoYyxlW2NdKSkucmVkdWNlKChjLGYpPT5jLmNvbmNhdChmKSxbXSkubWFwKGM9PmAke3N9ICR7Y30ke259YCkuam9pbihcIlwiKTtpZighdCl7aWYoby5sZW5ndGg9PT0wKXJldHVyblwiXCI7aWYoby5sZW5ndGg9PT0xJiYhQXJyYXkuaXNBcnJheShlW29bMF1dKSl7bGV0IGM9ZVtvWzBdXTtyZXR1cm5gJHtyfSAke1lzKG9bMF0sYylbMF19JHtpfWB9fWxldCB1PXQuc3BsaXQobikubWFwKGM9PmAke3N9ICR7Y31gKS5qb2luKG4pK247cmV0dXJuIHIrbisodD91OlwiXCIpKyh0JiZvLmxlbmd0aD9zK246XCJcIikrYStpfWZ1bmN0aW9uIFlzKHQsZSl7cmV0dXJuIEtzLmNvbmNhdChlKS5tYXAobj0+YEAke3R9ICR7bn1gLnRyaW0oKSl9fSk7dmFyIHp0PXkoKGR4LGduKT0+e1widXNlIHN0cmljdFwiO2duLmV4cG9ydHMuaXNDbGVhbj1TeW1ib2woXCJpc0NsZWFuXCIpO2duLmV4cG9ydHMubXk9U3ltYm9sKFwibXlcIil9KTt2YXIgVWk9eSgobXgsd24pPT57dmFyIEU9U3RyaW5nLCRpPWZ1bmN0aW9uKCl7cmV0dXJue2lzQ29sb3JTdXBwb3J0ZWQ6ITEscmVzZXQ6RSxib2xkOkUsZGltOkUsaXRhbGljOkUsdW5kZXJsaW5lOkUsaW52ZXJzZTpFLGhpZGRlbjpFLHN0cmlrZXRocm91Z2g6RSxibGFjazpFLHJlZDpFLGdyZWVuOkUseWVsbG93OkUsYmx1ZTpFLG1hZ2VudGE6RSxjeWFuOkUsd2hpdGU6RSxncmF5OkUsYmdCbGFjazpFLGJnUmVkOkUsYmdHcmVlbjpFLGJnWWVsbG93OkUsYmdCbHVlOkUsYmdNYWdlbnRhOkUsYmdDeWFuOkUsYmdXaGl0ZTpFfX07d24uZXhwb3J0cz0kaSgpO3duLmV4cG9ydHMuY3JlYXRlQ29sb3JzPSRpfSk7dmFyIHZuPXkoKCk9Pnt9KTt2YXIgVnQ9eSgod3gsVmkpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFdpPVVpKCksemk9dm4oKSxzdD1jbGFzcyB0IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSxuLHIscyxpLG8pe3N1cGVyKGUpLHRoaXMubmFtZT1cIkNzc1N5bnRheEVycm9yXCIsdGhpcy5yZWFzb249ZSxpJiYodGhpcy5maWxlPWkpLHMmJih0aGlzLnNvdXJjZT1zKSxvJiYodGhpcy5wbHVnaW49byksdHlwZW9mIG48XCJ1XCImJnR5cGVvZiByPFwidVwiJiYodHlwZW9mIG49PVwibnVtYmVyXCI/KHRoaXMubGluZT1uLHRoaXMuY29sdW1uPXIpOih0aGlzLmxpbmU9bi5saW5lLHRoaXMuY29sdW1uPW4uY29sdW1uLHRoaXMuZW5kTGluZT1yLmxpbmUsdGhpcy5lbmRDb2x1bW49ci5jb2x1bW4pKSx0aGlzLnNldE1lc3NhZ2UoKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0KX1zZXRNZXNzYWdlKCl7dGhpcy5tZXNzYWdlPXRoaXMucGx1Z2luP3RoaXMucGx1Z2luK1wiOiBcIjpcIlwiLHRoaXMubWVzc2FnZSs9dGhpcy5maWxlP3RoaXMuZmlsZTpcIjxjc3MgaW5wdXQ+XCIsdHlwZW9mIHRoaXMubGluZTxcInVcIiYmKHRoaXMubWVzc2FnZSs9XCI6XCIrdGhpcy5saW5lK1wiOlwiK3RoaXMuY29sdW1uKSx0aGlzLm1lc3NhZ2UrPVwiOiBcIit0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuXCJcIjtsZXQgbj10aGlzLnNvdXJjZTtlPT1udWxsJiYoZT1XaS5pc0NvbG9yU3VwcG9ydGVkKSx6aSYmZSYmKG49emkobikpO2xldCByPW4uc3BsaXQoL1xccj9cXG4vKSxzPU1hdGgubWF4KHRoaXMubGluZS0zLDApLGk9TWF0aC5taW4odGhpcy5saW5lKzIsci5sZW5ndGgpLG89U3RyaW5nKGkpLmxlbmd0aCxhLHU7aWYoZSl7bGV0e2JvbGQ6YyxncmF5OmYscmVkOnB9PVdpLmNyZWF0ZUNvbG9ycyghMCk7YT1sPT5jKHAobCkpLHU9bD0+ZihsKX1lbHNlIGE9dT1jPT5jO3JldHVybiByLnNsaWNlKHMsaSkubWFwKChjLGYpPT57bGV0IHA9cysxK2YsbD1cIiBcIisoXCIgXCIrcCkuc2xpY2UoLW8pK1wiIHwgXCI7aWYocD09PXRoaXMubGluZSl7bGV0IGc9dShsLnJlcGxhY2UoL1xcZC9nLFwiIFwiKSkrYy5zbGljZSgwLHRoaXMuY29sdW1uLTEpLnJlcGxhY2UoL1teXFx0XS9nLFwiIFwiKTtyZXR1cm4gYShcIj5cIikrdShsKStjK2BcbiBgK2crYShcIl5cIil9cmV0dXJuXCIgXCIrdShsKStjfSkuam9pbihgXG5gKX10b1N0cmluZygpe2xldCBlPXRoaXMuc2hvd1NvdXJjZUNvZGUoKTtyZXR1cm4gZSYmKGU9YFxuXG5gK2UrYFxuYCksdGhpcy5uYW1lK1wiOiBcIit0aGlzLm1lc3NhZ2UrZX19O1ZpLmV4cG9ydHM9c3Q7c3QuZGVmYXVsdD1zdH0pO3ZhciBZdD15KCh2eCxHaSk9PntcInVzZSBzdHJpY3RcIjt2YXIgWWk9e2FmdGVyOmBcbmAsYmVmb3JlQ2xvc2U6YFxuYCxiZWZvcmVDb21tZW50OmBcbmAsYmVmb3JlRGVjbDpgXG5gLGJlZm9yZU9wZW46XCIgXCIsYmVmb3JlUnVsZTpgXG5gLGNvbG9uOlwiOiBcIixjb21tZW50TGVmdDpcIiBcIixjb21tZW50UmlnaHQ6XCIgXCIsZW1wdHlCb2R5OlwiXCIsaW5kZW50OlwiICAgIFwiLHNlbWljb2xvbjohMX07ZnVuY3Rpb24gUWModCl7cmV0dXJuIHRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpfXZhciBpdD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmJ1aWxkZXI9ZX1hdHJ1bGUoZSxuKXtsZXQgcj1cIkBcIitlLm5hbWUscz1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsXCJwYXJhbXNcIik6XCJcIjtpZih0eXBlb2YgZS5yYXdzLmFmdGVyTmFtZTxcInVcIj9yKz1lLnJhd3MuYWZ0ZXJOYW1lOnMmJihyKz1cIiBcIiksZS5ub2Rlcyl0aGlzLmJsb2NrKGUscitzKTtlbHNle2xldCBpPShlLnJhd3MuYmV0d2Vlbnx8XCJcIikrKG4/XCI7XCI6XCJcIik7dGhpcy5idWlsZGVyKHIrcytpLGUpfX1iZWZvcmVBZnRlcihlLG4pe2xldCByO2UudHlwZT09PVwiZGVjbFwiP3I9dGhpcy5yYXcoZSxudWxsLFwiYmVmb3JlRGVjbFwiKTplLnR5cGU9PT1cImNvbW1lbnRcIj9yPXRoaXMucmF3KGUsbnVsbCxcImJlZm9yZUNvbW1lbnRcIik6bj09PVwiYmVmb3JlXCI/cj10aGlzLnJhdyhlLG51bGwsXCJiZWZvcmVSdWxlXCIpOnI9dGhpcy5yYXcoZSxudWxsLFwiYmVmb3JlQ2xvc2VcIik7bGV0IHM9ZS5wYXJlbnQsaT0wO2Zvcig7cyYmcy50eXBlIT09XCJyb290XCI7KWkrPTEscz1zLnBhcmVudDtpZihyLmluY2x1ZGVzKGBcbmApKXtsZXQgbz10aGlzLnJhdyhlLG51bGwsXCJpbmRlbnRcIik7aWYoby5sZW5ndGgpZm9yKGxldCBhPTA7YTxpO2ErKylyKz1vfXJldHVybiByfWJsb2NrKGUsbil7bGV0IHI9dGhpcy5yYXcoZSxcImJldHdlZW5cIixcImJlZm9yZU9wZW5cIik7dGhpcy5idWlsZGVyKG4rcitcIntcIixlLFwic3RhcnRcIik7bGV0IHM7ZS5ub2RlcyYmZS5ub2Rlcy5sZW5ndGg/KHRoaXMuYm9keShlKSxzPXRoaXMucmF3KGUsXCJhZnRlclwiKSk6cz10aGlzLnJhdyhlLFwiYWZ0ZXJcIixcImVtcHR5Qm9keVwiKSxzJiZ0aGlzLmJ1aWxkZXIocyksdGhpcy5idWlsZGVyKFwifVwiLGUsXCJlbmRcIil9Ym9keShlKXtsZXQgbj1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7bj4wJiZlLm5vZGVzW25dLnR5cGU9PT1cImNvbW1lbnRcIjspbi09MTtsZXQgcj10aGlzLnJhdyhlLFwic2VtaWNvbG9uXCIpO2ZvcihsZXQgcz0wO3M8ZS5ub2Rlcy5sZW5ndGg7cysrKXtsZXQgaT1lLm5vZGVzW3NdLG89dGhpcy5yYXcoaSxcImJlZm9yZVwiKTtvJiZ0aGlzLmJ1aWxkZXIobyksdGhpcy5zdHJpbmdpZnkoaSxuIT09c3x8cil9fWNvbW1lbnQoZSl7bGV0IG49dGhpcy5yYXcoZSxcImxlZnRcIixcImNvbW1lbnRMZWZ0XCIpLHI9dGhpcy5yYXcoZSxcInJpZ2h0XCIsXCJjb21tZW50UmlnaHRcIik7dGhpcy5idWlsZGVyKFwiLypcIituK2UudGV4dCtyK1wiKi9cIixlKX1kZWNsKGUsbil7bGV0IHI9dGhpcy5yYXcoZSxcImJldHdlZW5cIixcImNvbG9uXCIpLHM9ZS5wcm9wK3IrdGhpcy5yYXdWYWx1ZShlLFwidmFsdWVcIik7ZS5pbXBvcnRhbnQmJihzKz1lLnJhd3MuaW1wb3J0YW50fHxcIiAhaW1wb3J0YW50XCIpLG4mJihzKz1cIjtcIiksdGhpcy5idWlsZGVyKHMsZSl9ZG9jdW1lbnQoZSl7dGhpcy5ib2R5KGUpfXJhdyhlLG4scil7bGV0IHM7aWYocnx8KHI9biksbiYmKHM9ZS5yYXdzW25dLHR5cGVvZiBzPFwidVwiKSlyZXR1cm4gcztsZXQgaT1lLnBhcmVudDtpZihyPT09XCJiZWZvcmVcIiYmKCFpfHxpLnR5cGU9PT1cInJvb3RcIiYmaS5maXJzdD09PWV8fGkmJmkudHlwZT09PVwiZG9jdW1lbnRcIikpcmV0dXJuXCJcIjtpZighaSlyZXR1cm4gWWlbcl07bGV0IG89ZS5yb290KCk7aWYoby5yYXdDYWNoZXx8KG8ucmF3Q2FjaGU9e30pLHR5cGVvZiBvLnJhd0NhY2hlW3JdPFwidVwiKXJldHVybiBvLnJhd0NhY2hlW3JdO2lmKHI9PT1cImJlZm9yZVwifHxyPT09XCJhZnRlclwiKXJldHVybiB0aGlzLmJlZm9yZUFmdGVyKGUscik7e2xldCBhPVwicmF3XCIrUWMocik7dGhpc1thXT9zPXRoaXNbYV0obyxlKTpvLndhbGsodT0+e2lmKHM9dS5yYXdzW25dLHR5cGVvZiBzPFwidVwiKXJldHVybiExfSl9cmV0dXJuIHR5cGVvZiBzPlwidVwiJiYocz1ZaVtyXSksby5yYXdDYWNoZVtyXT1zLHN9cmF3QmVmb3JlQ2xvc2UoZSl7bGV0IG47cmV0dXJuIGUud2FsayhyPT57aWYoci5ub2RlcyYmci5ub2Rlcy5sZW5ndGg+MCYmdHlwZW9mIHIucmF3cy5hZnRlcjxcInVcIilyZXR1cm4gbj1yLnJhd3MuYWZ0ZXIsbi5pbmNsdWRlcyhgXG5gKSYmKG49bi5yZXBsYWNlKC9bXlxcbl0rJC8sXCJcIikpLCExfSksbiYmKG49bi5yZXBsYWNlKC9cXFMvZyxcIlwiKSksbn1yYXdCZWZvcmVDb21tZW50KGUsbil7bGV0IHI7cmV0dXJuIGUud2Fsa0NvbW1lbnRzKHM9PntpZih0eXBlb2Ygcy5yYXdzLmJlZm9yZTxcInVcIilyZXR1cm4gcj1zLnJhd3MuYmVmb3JlLHIuaW5jbHVkZXMoYFxuYCkmJihyPXIucmVwbGFjZSgvW15cXG5dKyQvLFwiXCIpKSwhMX0pLHR5cGVvZiByPlwidVwiP3I9dGhpcy5yYXcobixudWxsLFwiYmVmb3JlRGVjbFwiKTpyJiYocj1yLnJlcGxhY2UoL1xcUy9nLFwiXCIpKSxyfXJhd0JlZm9yZURlY2woZSxuKXtsZXQgcjtyZXR1cm4gZS53YWxrRGVjbHMocz0+e2lmKHR5cGVvZiBzLnJhd3MuYmVmb3JlPFwidVwiKXJldHVybiByPXMucmF3cy5iZWZvcmUsci5pbmNsdWRlcyhgXG5gKSYmKHI9ci5yZXBsYWNlKC9bXlxcbl0rJC8sXCJcIikpLCExfSksdHlwZW9mIHI+XCJ1XCI/cj10aGlzLnJhdyhuLG51bGwsXCJiZWZvcmVSdWxlXCIpOnImJihyPXIucmVwbGFjZSgvXFxTL2csXCJcIikpLHJ9cmF3QmVmb3JlT3BlbihlKXtsZXQgbjtyZXR1cm4gZS53YWxrKHI9PntpZihyLnR5cGUhPT1cImRlY2xcIiYmKG49ci5yYXdzLmJldHdlZW4sdHlwZW9mIG48XCJ1XCIpKXJldHVybiExfSksbn1yYXdCZWZvcmVSdWxlKGUpe2xldCBuO3JldHVybiBlLndhbGsocj0+e2lmKHIubm9kZXMmJihyLnBhcmVudCE9PWV8fGUuZmlyc3QhPT1yKSYmdHlwZW9mIHIucmF3cy5iZWZvcmU8XCJ1XCIpcmV0dXJuIG49ci5yYXdzLmJlZm9yZSxuLmluY2x1ZGVzKGBcbmApJiYobj1uLnJlcGxhY2UoL1teXFxuXSskLyxcIlwiKSksITF9KSxuJiYobj1uLnJlcGxhY2UoL1xcUy9nLFwiXCIpKSxufXJhd0NvbG9uKGUpe2xldCBuO3JldHVybiBlLndhbGtEZWNscyhyPT57aWYodHlwZW9mIHIucmF3cy5iZXR3ZWVuPFwidVwiKXJldHVybiBuPXIucmF3cy5iZXR3ZWVuLnJlcGxhY2UoL1teXFxzOl0vZyxcIlwiKSwhMX0pLG59cmF3RW1wdHlCb2R5KGUpe2xldCBuO3JldHVybiBlLndhbGsocj0+e2lmKHIubm9kZXMmJnIubm9kZXMubGVuZ3RoPT09MCYmKG49ci5yYXdzLmFmdGVyLHR5cGVvZiBuPFwidVwiKSlyZXR1cm4hMX0pLG59cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IG47cmV0dXJuIGUud2FsayhyPT57bGV0IHM9ci5wYXJlbnQ7aWYocyYmcyE9PWUmJnMucGFyZW50JiZzLnBhcmVudD09PWUmJnR5cGVvZiByLnJhd3MuYmVmb3JlPFwidVwiKXtsZXQgaT1yLnJhd3MuYmVmb3JlLnNwbGl0KGBcbmApO3JldHVybiBuPWlbaS5sZW5ndGgtMV0sbj1uLnJlcGxhY2UoL1xcUy9nLFwiXCIpLCExfX0pLG59cmF3U2VtaWNvbG9uKGUpe2xldCBuO3JldHVybiBlLndhbGsocj0+e2lmKHIubm9kZXMmJnIubm9kZXMubGVuZ3RoJiZyLmxhc3QudHlwZT09PVwiZGVjbFwiJiYobj1yLnJhd3Muc2VtaWNvbG9uLHR5cGVvZiBuPFwidVwiKSlyZXR1cm4hMX0pLG59cmF3VmFsdWUoZSxuKXtsZXQgcj1lW25dLHM9ZS5yYXdzW25dO3JldHVybiBzJiZzLnZhbHVlPT09cj9zLnJhdzpyfXJvb3QoZSl7dGhpcy5ib2R5KGUpLGUucmF3cy5hZnRlciYmdGhpcy5idWlsZGVyKGUucmF3cy5hZnRlcil9cnVsZShlKXt0aGlzLmJsb2NrKGUsdGhpcy5yYXdWYWx1ZShlLFwic2VsZWN0b3JcIikpLGUucmF3cy5vd25TZW1pY29sb24mJnRoaXMuYnVpbGRlcihlLnJhd3Mub3duU2VtaWNvbG9uLGUsXCJlbmRcIil9c3RyaW5naWZ5KGUsbil7aWYoIXRoaXNbZS50eXBlXSl0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIEFTVCBub2RlIHR5cGUgXCIrZS50eXBlK1wiLiBNYXliZSB5b3UgbmVlZCB0byBjaGFuZ2UgUG9zdENTUyBzdHJpbmdpZmllci5cIik7dGhpc1tlLnR5cGVdKGUsbil9fTtHaS5leHBvcnRzPWl0O2l0LmRlZmF1bHQ9aXR9KTt2YXIgb3Q9eSgoeHgsS2kpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGpjPVl0KCk7ZnVuY3Rpb24geG4odCxlKXtuZXcgamMoZSkuc3RyaW5naWZ5KHQpfUtpLmV4cG9ydHM9eG47eG4uZGVmYXVsdD14bn0pO3ZhciB1dD15KChieCxIaSk9PntcInVzZSBzdHJpY3RcIjt2YXJ7aXNDbGVhbjpHdCxteTpKY309enQoKSxYYz1WdCgpLFpjPVl0KCksZWY9b3QoKTtmdW5jdGlvbiBibih0LGUpe2xldCBuPW5ldyB0LmNvbnN0cnVjdG9yO2ZvcihsZXQgciBpbiB0KXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscil8fHI9PT1cInByb3h5Q2FjaGVcIiljb250aW51ZTtsZXQgcz10W3JdLGk9dHlwZW9mIHM7cj09PVwicGFyZW50XCImJmk9PT1cIm9iamVjdFwiP2UmJihuW3JdPWUpOnI9PT1cInNvdXJjZVwiP25bcl09czpBcnJheS5pc0FycmF5KHMpP25bcl09cy5tYXAobz0+Ym4obyxuKSk6KGk9PT1cIm9iamVjdFwiJiZzIT09bnVsbCYmKHM9Ym4ocykpLG5bcl09cyl9cmV0dXJuIG59dmFyIGF0PWNsYXNze2NvbnN0cnVjdG9yKGU9e30pe3RoaXMucmF3cz17fSx0aGlzW0d0XT0hMSx0aGlzW0pjXT0hMDtmb3IobGV0IG4gaW4gZSlpZihuPT09XCJub2Rlc1wiKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgciBvZiBlW25dKXR5cGVvZiByLmNsb25lPT1cImZ1bmN0aW9uXCI/dGhpcy5hcHBlbmQoci5jbG9uZSgpKTp0aGlzLmFwcGVuZChyKX1lbHNlIHRoaXNbbl09ZVtuXX1hZGRUb0Vycm9yKGUpe2lmKGUucG9zdGNzc05vZGU9dGhpcyxlLnN0YWNrJiZ0aGlzLnNvdXJjZSYmL1xcblxcc3s0fWF0IC8udGVzdChlLnN0YWNrKSl7bGV0IG49dGhpcy5zb3VyY2U7ZS5zdGFjaz1lLnN0YWNrLnJlcGxhY2UoL1xcblxcc3s0fWF0IC8sYCQmJHtuLmlucHV0LmZyb219OiR7bi5zdGFydC5saW5lfToke24uc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCBuIGluIGUpdGhpc1tuXT1lW25dO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IG49Ym4odGhpcyk7Zm9yKGxldCByIGluIGUpbltyXT1lW3JdO3JldHVybiBufWNsb25lQWZ0ZXIoZT17fSl7bGV0IG49dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyxuKSxufWNsb25lQmVmb3JlKGU9e30pe2xldCBuPXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLG4pLG59ZXJyb3IoZSxuPXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDpyLHN0YXJ0OnN9PXRoaXMucmFuZ2VCeShuKTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOnMuY29sdW1uLGxpbmU6cy5saW5lfSx7Y29sdW1uOnIuY29sdW1uLGxpbmU6ci5saW5lfSxuKX1yZXR1cm4gbmV3IFhjKGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldChlLG4pe3JldHVybiBuPT09XCJwcm94eU9mXCI/ZTpuPT09XCJyb290XCI/KCk9PmUucm9vdCgpLnRvUHJveHkoKTplW25dfSxzZXQoZSxuLHIpe3JldHVybiBlW25dPT09cnx8KGVbbl09ciwobj09PVwicHJvcFwifHxuPT09XCJ2YWx1ZVwifHxuPT09XCJuYW1lXCJ8fG49PT1cInBhcmFtc1wifHxuPT09XCJpbXBvcnRhbnRcInx8bj09PVwidGV4dFwiKSYmZS5tYXJrRGlydHkoKSksITB9fX1tYXJrRGlydHkoKXtpZih0aGlzW0d0XSl7dGhpc1tHdF09ITE7bGV0IGU9dGhpcztmb3IoO2U9ZS5wYXJlbnQ7KWVbR3RdPSExfX1uZXh0KCl7aWYoIXRoaXMucGFyZW50KXJldHVybjtsZXQgZT10aGlzLnBhcmVudC5pbmRleCh0aGlzKTtyZXR1cm4gdGhpcy5wYXJlbnQubm9kZXNbZSsxXX1wb3NpdGlvbkJ5KGUsbil7bGV0IHI9dGhpcy5zb3VyY2Uuc3RhcnQ7aWYoZS5pbmRleClyPXRoaXMucG9zaXRpb25JbnNpZGUoZS5pbmRleCxuKTtlbHNlIGlmKGUud29yZCl7bj10aGlzLnRvU3RyaW5nKCk7bGV0IHM9bi5pbmRleE9mKGUud29yZCk7cyE9PS0xJiYocj10aGlzLnBvc2l0aW9uSW5zaWRlKHMsbikpfXJldHVybiByfXBvc2l0aW9uSW5zaWRlKGUsbil7bGV0IHI9bnx8dGhpcy50b1N0cmluZygpLHM9dGhpcy5zb3VyY2Uuc3RhcnQuY29sdW1uLGk9dGhpcy5zb3VyY2Uuc3RhcnQubGluZTtmb3IobGV0IG89MDtvPGU7bysrKXJbb109PT1gXG5gPyhzPTEsaSs9MSk6cys9MTtyZXR1cm57Y29sdW1uOnMsbGluZTppfX1wcmV2KCl7aWYoIXRoaXMucGFyZW50KXJldHVybjtsZXQgZT10aGlzLnBhcmVudC5pbmRleCh0aGlzKTtyZXR1cm4gdGhpcy5wYXJlbnQubm9kZXNbZS0xXX1nZXQgcHJveHlPZigpe3JldHVybiB0aGlzfXJhbmdlQnkoZSl7bGV0IG49e2NvbHVtbjp0aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4sbGluZTp0aGlzLnNvdXJjZS5zdGFydC5saW5lfSxyPXRoaXMuc291cmNlLmVuZD97Y29sdW1uOnRoaXMuc291cmNlLmVuZC5jb2x1bW4rMSxsaW5lOnRoaXMuc291cmNlLmVuZC5saW5lfTp7Y29sdW1uOm4uY29sdW1uKzEsbGluZTpuLmxpbmV9O2lmKGUud29yZCl7bGV0IHM9dGhpcy50b1N0cmluZygpLGk9cy5pbmRleE9mKGUud29yZCk7aSE9PS0xJiYobj10aGlzLnBvc2l0aW9uSW5zaWRlKGkscykscj10aGlzLnBvc2l0aW9uSW5zaWRlKGkrZS53b3JkLmxlbmd0aCxzKSl9ZWxzZSBlLnN0YXJ0P249e2NvbHVtbjplLnN0YXJ0LmNvbHVtbixsaW5lOmUuc3RhcnQubGluZX06ZS5pbmRleCYmKG49dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KSksZS5lbmQ/cj17Y29sdW1uOmUuZW5kLmNvbHVtbixsaW5lOmUuZW5kLmxpbmV9OmUuZW5kSW5kZXg/cj10aGlzLnBvc2l0aW9uSW5zaWRlKGUuZW5kSW5kZXgpOmUuaW5kZXgmJihyPXRoaXMucG9zaXRpb25JbnNpZGUoZS5pbmRleCsxKSk7cmV0dXJuKHIubGluZTxuLmxpbmV8fHIubGluZT09PW4ubGluZSYmci5jb2x1bW48PW4uY29sdW1uKSYmKHI9e2NvbHVtbjpuLmNvbHVtbisxLGxpbmU6bi5saW5lfSkse2VuZDpyLHN0YXJ0Om59fXJhdyhlLG4pe3JldHVybiBuZXcgWmMoKS5yYXcodGhpcyxlLG4pfXJlbW92ZSgpe3JldHVybiB0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyksdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXN9cmVwbGFjZVdpdGgoLi4uZSl7aWYodGhpcy5wYXJlbnQpe2xldCBuPXRoaXMscj0hMTtmb3IobGV0IHMgb2YgZSlzPT09dGhpcz9yPSEwOnI/KHRoaXMucGFyZW50Lmluc2VydEFmdGVyKG4scyksbj1zKTp0aGlzLnBhcmVudC5pbnNlcnRCZWZvcmUobixzKTtyfHx0aGlzLnJlbW92ZSgpfXJldHVybiB0aGlzfXJvb3QoKXtsZXQgZT10aGlzO2Zvcig7ZS5wYXJlbnQmJmUucGFyZW50LnR5cGUhPT1cImRvY3VtZW50XCI7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9dG9KU09OKGUsbil7bGV0IHI9e30scz1uPT1udWxsO249bnx8bmV3IE1hcDtsZXQgaT0wO2ZvcihsZXQgbyBpbiB0aGlzKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsbyl8fG89PT1cInBhcmVudFwifHxvPT09XCJwcm94eUNhY2hlXCIpY29udGludWU7bGV0IGE9dGhpc1tvXTtpZihBcnJheS5pc0FycmF5KGEpKXJbb109YS5tYXAodT0+dHlwZW9mIHU9PVwib2JqZWN0XCImJnUudG9KU09OP3UudG9KU09OKG51bGwsbik6dSk7ZWxzZSBpZih0eXBlb2YgYT09XCJvYmplY3RcIiYmYS50b0pTT04pcltvXT1hLnRvSlNPTihudWxsLG4pO2Vsc2UgaWYobz09PVwic291cmNlXCIpe2xldCB1PW4uZ2V0KGEuaW5wdXQpO3U9PW51bGwmJih1PWksbi5zZXQoYS5pbnB1dCxpKSxpKyspLHJbb109e2VuZDphLmVuZCxpbnB1dElkOnUsc3RhcnQ6YS5zdGFydH19ZWxzZSByW29dPWF9cmV0dXJuIHMmJihyLmlucHV0cz1bLi4ubi5rZXlzKCldLm1hcChvPT5vLnRvSlNPTigpKSkscn10b1Byb3h5KCl7cmV0dXJuIHRoaXMucHJveHlDYWNoZXx8KHRoaXMucHJveHlDYWNoZT1uZXcgUHJveHkodGhpcyx0aGlzLmdldFByb3h5UHJvY2Vzc29yKCkpKSx0aGlzLnByb3h5Q2FjaGV9dG9TdHJpbmcoZT1lZil7ZS5zdHJpbmdpZnkmJihlPWUuc3RyaW5naWZ5KTtsZXQgbj1cIlwiO3JldHVybiBlKHRoaXMscj0+e24rPXJ9KSxufXdhcm4oZSxuLHIpe2xldCBzPXtub2RlOnRoaXN9O2ZvcihsZXQgaSBpbiByKXNbaV09cltpXTtyZXR1cm4gZS53YXJuKG4scyl9fTtIaS5leHBvcnRzPWF0O2F0LmRlZmF1bHQ9YXR9KTt2YXIgY3Q9eSgoa3gsUWkpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHRmPXV0KCksbHQ9Y2xhc3MgZXh0ZW5kcyB0Zntjb25zdHJ1Y3RvcihlKXtlJiZ0eXBlb2YgZS52YWx1ZTxcInVcIiYmdHlwZW9mIGUudmFsdWUhPVwic3RyaW5nXCImJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pLHN1cGVyKGUpLHRoaXMudHlwZT1cImRlY2xcIn1nZXQgdmFyaWFibGUoKXtyZXR1cm4gdGhpcy5wcm9wLnN0YXJ0c1dpdGgoXCItLVwiKXx8dGhpcy5wcm9wWzBdPT09XCIkXCJ9fTtRaS5leHBvcnRzPWx0O2x0LmRlZmF1bHQ9bHR9KTt2YXIgQWU9eSgoX3gsamkpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHJmPXV0KCksZnQ9Y2xhc3MgZXh0ZW5kcyByZntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJjb21tZW50XCJ9fTtqaS5leHBvcnRzPWZ0O2Z0LmRlZmF1bHQ9ZnR9KTt2YXIgc2U9eSgoVHgsaW8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFye2lzQ2xlYW46SmksbXk6WGl9PXp0KCksWmk9Y3QoKSxlbz1BZSgpLG5mPXV0KCksdG8sa24sX24scm87ZnVuY3Rpb24gbm8odCl7cmV0dXJuIHQubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1ubyhlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiBzbyh0KXtpZih0W0ppXT0hMSx0LnByb3h5T2Yubm9kZXMpZm9yKGxldCBlIG9mIHQucHJveHlPZi5ub2RlcylzbyhlKX12YXIgej1jbGFzcyB0IGV4dGVuZHMgbmZ7YXBwZW5kKC4uLmUpe2ZvcihsZXQgbiBvZiBlKXtsZXQgcj10aGlzLm5vcm1hbGl6ZShuLHRoaXMubGFzdCk7Zm9yKGxldCBzIG9mIHIpdGhpcy5wcm94eU9mLm5vZGVzLnB1c2gocyl9cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31jbGVhblJhd3MoZSl7aWYoc3VwZXIuY2xlYW5SYXdzKGUpLHRoaXMubm9kZXMpZm9yKGxldCBuIG9mIHRoaXMubm9kZXMpbi5jbGVhblJhd3MoZSl9ZWFjaChlKXtpZighdGhpcy5wcm94eU9mLm5vZGVzKXJldHVybjtsZXQgbj10aGlzLmdldEl0ZXJhdG9yKCkscixzO2Zvcig7dGhpcy5pbmRleGVzW25dPHRoaXMucHJveHlPZi5ub2Rlcy5sZW5ndGgmJihyPXRoaXMuaW5kZXhlc1tuXSxzPWUodGhpcy5wcm94eU9mLm5vZGVzW3JdLHIpLHMhPT0hMSk7KXRoaXMuaW5kZXhlc1tuXSs9MTtyZXR1cm4gZGVsZXRlIHRoaXMuaW5kZXhlc1tuXSxzfWV2ZXJ5KGUpe3JldHVybiB0aGlzLm5vZGVzLmV2ZXJ5KGUpfWdldCBmaXJzdCgpe2lmKHRoaXMucHJveHlPZi5ub2RlcylyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzWzBdfWdldEl0ZXJhdG9yKCl7dGhpcy5sYXN0RWFjaHx8KHRoaXMubGFzdEVhY2g9MCksdGhpcy5pbmRleGVzfHwodGhpcy5pbmRleGVzPXt9KSx0aGlzLmxhc3RFYWNoKz0xO2xldCBlPXRoaXMubGFzdEVhY2g7cmV0dXJuIHRoaXMuaW5kZXhlc1tlXT0wLGV9Z2V0UHJveHlQcm9jZXNzb3IoKXtyZXR1cm57Z2V0KGUsbil7cmV0dXJuIG49PT1cInByb3h5T2ZcIj9lOmVbbl0/bj09PVwiZWFjaFwifHx0eXBlb2Ygbj09XCJzdHJpbmdcIiYmbi5zdGFydHNXaXRoKFwid2Fsa1wiKT8oLi4ucik9PmVbbl0oLi4uci5tYXAocz0+dHlwZW9mIHM9PVwiZnVuY3Rpb25cIj8oaSxvKT0+cyhpLnRvUHJveHkoKSxvKTpzKSk6bj09PVwiZXZlcnlcInx8bj09PVwic29tZVwiP3I9PmVbbl0oKHMsLi4uaSk9PnIocy50b1Byb3h5KCksLi4uaSkpOm49PT1cInJvb3RcIj8oKT0+ZS5yb290KCkudG9Qcm94eSgpOm49PT1cIm5vZGVzXCI/ZS5ub2Rlcy5tYXAocj0+ci50b1Byb3h5KCkpOm49PT1cImZpcnN0XCJ8fG49PT1cImxhc3RcIj9lW25dLnRvUHJveHkoKTplW25dOmVbbl19LHNldChlLG4scil7cmV0dXJuIGVbbl09PT1yfHwoZVtuXT1yLChuPT09XCJuYW1lXCJ8fG49PT1cInBhcmFtc1wifHxuPT09XCJzZWxlY3RvclwiKSYmZS5tYXJrRGlydHkoKSksITB9fX1pbmRleChlKXtyZXR1cm4gdHlwZW9mIGU9PVwibnVtYmVyXCI/ZTooZS5wcm94eU9mJiYoZT1lLnByb3h5T2YpLHRoaXMucHJveHlPZi5ub2Rlcy5pbmRleE9mKGUpKX1pbnNlcnRBZnRlcihlLG4pe2xldCByPXRoaXMuaW5kZXgoZSkscz10aGlzLm5vcm1hbGl6ZShuLHRoaXMucHJveHlPZi5ub2Rlc1tyXSkucmV2ZXJzZSgpO3I9dGhpcy5pbmRleChlKTtmb3IobGV0IG8gb2Ygcyl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKHIrMSwwLG8pO2xldCBpO2ZvcihsZXQgbyBpbiB0aGlzLmluZGV4ZXMpaT10aGlzLmluZGV4ZXNbb10scjxpJiYodGhpcy5pbmRleGVzW29dPWkrcy5sZW5ndGgpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9aW5zZXJ0QmVmb3JlKGUsbil7bGV0IHI9dGhpcy5pbmRleChlKSxzPXI9PT0wP1wicHJlcGVuZFwiOiExLGk9dGhpcy5ub3JtYWxpemUobix0aGlzLnByb3h5T2Yubm9kZXNbcl0scykucmV2ZXJzZSgpO3I9dGhpcy5pbmRleChlKTtmb3IobGV0IGEgb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKHIsMCxhKTtsZXQgbztmb3IobGV0IGEgaW4gdGhpcy5pbmRleGVzKW89dGhpcy5pbmRleGVzW2FdLHI8PW8mJih0aGlzLmluZGV4ZXNbYV09bytpLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31nZXQgbGFzdCgpe2lmKHRoaXMucHJveHlPZi5ub2RlcylyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzW3RoaXMucHJveHlPZi5ub2Rlcy5sZW5ndGgtMV19bm9ybWFsaXplKGUsbil7aWYodHlwZW9mIGU9PVwic3RyaW5nXCIpZT1ubyh0byhlKS5ub2Rlcyk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtlPWUuc2xpY2UoMCk7Zm9yKGxldCBzIG9mIGUpcy5wYXJlbnQmJnMucGFyZW50LnJlbW92ZUNoaWxkKHMsXCJpZ25vcmVcIil9ZWxzZSBpZihlLnR5cGU9PT1cInJvb3RcIiYmdGhpcy50eXBlIT09XCJkb2N1bWVudFwiKXtlPWUubm9kZXMuc2xpY2UoMCk7Zm9yKGxldCBzIG9mIGUpcy5wYXJlbnQmJnMucGFyZW50LnJlbW92ZUNoaWxkKHMsXCJpZ25vcmVcIil9ZWxzZSBpZihlLnR5cGUpZT1bZV07ZWxzZSBpZihlLnByb3Ape2lmKHR5cGVvZiBlLnZhbHVlPlwidVwiKXRocm93IG5ldyBFcnJvcihcIlZhbHVlIGZpZWxkIGlzIG1pc3NlZCBpbiBub2RlIGNyZWF0aW9uXCIpO3R5cGVvZiBlLnZhbHVlIT1cInN0cmluZ1wiJiYoZS52YWx1ZT1TdHJpbmcoZS52YWx1ZSkpLGU9W25ldyBaaShlKV19ZWxzZSBpZihlLnNlbGVjdG9yKWU9W25ldyBrbihlKV07ZWxzZSBpZihlLm5hbWUpZT1bbmV3IF9uKGUpXTtlbHNlIGlmKGUudGV4dCllPVtuZXcgZW8oZSldO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvblwiKTtyZXR1cm4gZS5tYXAocz0+KHNbWGldfHx0LnJlYnVpbGQocykscz1zLnByb3h5T2Yscy5wYXJlbnQmJnMucGFyZW50LnJlbW92ZUNoaWxkKHMpLHNbSmldJiZzbyhzKSx0eXBlb2Ygcy5yYXdzLmJlZm9yZT5cInVcIiYmbiYmdHlwZW9mIG4ucmF3cy5iZWZvcmU8XCJ1XCImJihzLnJhd3MuYmVmb3JlPW4ucmF3cy5iZWZvcmUucmVwbGFjZSgvXFxTL2csXCJcIikpLHMucGFyZW50PXRoaXMucHJveHlPZixzKSl9cHJlcGVuZCguLi5lKXtlPWUucmV2ZXJzZSgpO2ZvcihsZXQgbiBvZiBlKXtsZXQgcj10aGlzLm5vcm1hbGl6ZShuLHRoaXMuZmlyc3QsXCJwcmVwZW5kXCIpLnJldmVyc2UoKTtmb3IobGV0IHMgb2Ygcil0aGlzLnByb3h5T2Yubm9kZXMudW5zaGlmdChzKTtmb3IobGV0IHMgaW4gdGhpcy5pbmRleGVzKXRoaXMuaW5kZXhlc1tzXT10aGlzLmluZGV4ZXNbc10rci5sZW5ndGh9cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31wdXNoKGUpe3JldHVybiBlLnBhcmVudD10aGlzLHRoaXMucHJveHlPZi5ub2Rlcy5wdXNoKGUpLHRoaXN9cmVtb3ZlQWxsKCl7Zm9yKGxldCBlIG9mIHRoaXMucHJveHlPZi5ub2RlcyllLnBhcmVudD12b2lkIDA7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlcz1bXSx0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVtb3ZlQ2hpbGQoZSl7ZT10aGlzLmluZGV4KGUpLHRoaXMucHJveHlPZi5ub2Rlc1tlXS5wYXJlbnQ9dm9pZCAwLHRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoZSwxKTtsZXQgbjtmb3IobGV0IHIgaW4gdGhpcy5pbmRleGVzKW49dGhpcy5pbmRleGVzW3JdLG4+PWUmJih0aGlzLmluZGV4ZXNbcl09bi0xKTtyZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXJlcGxhY2VWYWx1ZXMoZSxuLHIpe3JldHVybiByfHwocj1uLG49e30pLHRoaXMud2Fsa0RlY2xzKHM9PntuLnByb3BzJiYhbi5wcm9wcy5pbmNsdWRlcyhzLnByb3ApfHxuLmZhc3QmJiFzLnZhbHVlLmluY2x1ZGVzKG4uZmFzdCl8fChzLnZhbHVlPXMudmFsdWUucmVwbGFjZShlLHIpKX0pLHRoaXMubWFya0RpcnR5KCksdGhpc31zb21lKGUpe3JldHVybiB0aGlzLm5vZGVzLnNvbWUoZSl9d2FsayhlKXtyZXR1cm4gdGhpcy5lYWNoKChuLHIpPT57bGV0IHM7dHJ5e3M9ZShuLHIpfWNhdGNoKGkpe3Rocm93IG4uYWRkVG9FcnJvcihpKX1yZXR1cm4gcyE9PSExJiZuLndhbGsmJihzPW4ud2FsayhlKSksc30pfXdhbGtBdFJ1bGVzKGUsbil7cmV0dXJuIG4/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKHIscyk9PntpZihyLnR5cGU9PT1cImF0cnVsZVwiJiZlLnRlc3Qoci5uYW1lKSlyZXR1cm4gbihyLHMpfSk6dGhpcy53YWxrKChyLHMpPT57aWYoci50eXBlPT09XCJhdHJ1bGVcIiYmci5uYW1lPT09ZSlyZXR1cm4gbihyLHMpfSk6KG49ZSx0aGlzLndhbGsoKHIscyk9PntpZihyLnR5cGU9PT1cImF0cnVsZVwiKXJldHVybiBuKHIscyl9KSl9d2Fsa0NvbW1lbnRzKGUpe3JldHVybiB0aGlzLndhbGsoKG4scik9PntpZihuLnR5cGU9PT1cImNvbW1lbnRcIilyZXR1cm4gZShuLHIpfSl9d2Fsa0RlY2xzKGUsbil7cmV0dXJuIG4/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKHIscyk9PntpZihyLnR5cGU9PT1cImRlY2xcIiYmZS50ZXN0KHIucHJvcCkpcmV0dXJuIG4ocixzKX0pOnRoaXMud2FsaygocixzKT0+e2lmKHIudHlwZT09PVwiZGVjbFwiJiZyLnByb3A9PT1lKXJldHVybiBuKHIscyl9KToobj1lLHRoaXMud2FsaygocixzKT0+e2lmKHIudHlwZT09PVwiZGVjbFwiKXJldHVybiBuKHIscyl9KSl9d2Fsa1J1bGVzKGUsbil7cmV0dXJuIG4/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKHIscyk9PntpZihyLnR5cGU9PT1cInJ1bGVcIiYmZS50ZXN0KHIuc2VsZWN0b3IpKXJldHVybiBuKHIscyl9KTp0aGlzLndhbGsoKHIscyk9PntpZihyLnR5cGU9PT1cInJ1bGVcIiYmci5zZWxlY3Rvcj09PWUpcmV0dXJuIG4ocixzKX0pOihuPWUsdGhpcy53YWxrKChyLHMpPT57aWYoci50eXBlPT09XCJydWxlXCIpcmV0dXJuIG4ocixzKX0pKX19O3oucmVnaXN0ZXJQYXJzZT10PT57dG89dH07ei5yZWdpc3RlclJ1bGU9dD0+e2tuPXR9O3oucmVnaXN0ZXJBdFJ1bGU9dD0+e19uPXR9O3oucmVnaXN0ZXJSb290PXQ9Pntybz10fTtpby5leHBvcnRzPXo7ei5kZWZhdWx0PXo7ei5yZWJ1aWxkPXQ9Pnt0LnR5cGU9PT1cImF0cnVsZVwiP09iamVjdC5zZXRQcm90b3R5cGVPZih0LF9uLnByb3RvdHlwZSk6dC50eXBlPT09XCJydWxlXCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsa24ucHJvdG90eXBlKTp0LnR5cGU9PT1cImRlY2xcIj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxaaS5wcm90b3R5cGUpOnQudHlwZT09PVwiY29tbWVudFwiP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGVvLnByb3RvdHlwZSk6dC50eXBlPT09XCJyb290XCImJk9iamVjdC5zZXRQcm90b3R5cGVPZih0LHJvLnByb3RvdHlwZSksdFtYaV09ITAsdC5ub2RlcyYmdC5ub2Rlcy5mb3JFYWNoKGU9Pnt6LnJlYnVpbGQoZSl9KX19KTt2YXIgZXI9eSgoRXgsbG8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFRuPVwiJ1wiLmNoYXJDb2RlQXQoMCksb289J1wiJy5jaGFyQ29kZUF0KDApLEt0PVwiXFxcXFwiLmNoYXJDb2RlQXQoMCksYW89XCIvXCIuY2hhckNvZGVBdCgwKSxIdD1gXG5gLmNoYXJDb2RlQXQoMCkscHQ9XCIgXCIuY2hhckNvZGVBdCgwKSxRdD1cIlxcZlwiLmNoYXJDb2RlQXQoMCksanQ9XCJcdFwiLmNoYXJDb2RlQXQoMCksSnQ9XCJcXHJcIi5jaGFyQ29kZUF0KDApLHNmPVwiW1wiLmNoYXJDb2RlQXQoMCksb2Y9XCJdXCIuY2hhckNvZGVBdCgwKSxhZj1cIihcIi5jaGFyQ29kZUF0KDApLHVmPVwiKVwiLmNoYXJDb2RlQXQoMCksbGY9XCJ7XCIuY2hhckNvZGVBdCgwKSxjZj1cIn1cIi5jaGFyQ29kZUF0KDApLGZmPVwiO1wiLmNoYXJDb2RlQXQoMCkscGY9XCIqXCIuY2hhckNvZGVBdCgwKSxoZj1cIjpcIi5jaGFyQ29kZUF0KDApLGRmPVwiQFwiLmNoYXJDb2RlQXQoMCksWHQ9L1tcXHRcXG5cXGZcXHIgXCIjJygpLztbXFxcXFxcXXt9XS9nLFp0PS9bXFx0XFxuXFxmXFxyICFcIiMnKCk6O0BbXFxcXFxcXXt9XXxcXC8oPz1cXCopL2csbWY9Ly5bXFxuXCInKC9cXFxcXS8sdW89L1tcXGRhLWZdL2k7bG8uZXhwb3J0cz1mdW5jdGlvbihlLG49e30pe2xldCByPWUuY3NzLnZhbHVlT2YoKSxzPW4uaWdub3JlRXJyb3JzLGksbyxhLHUsYyxmLHAsbCxnLHgsaD1yLmxlbmd0aCxkPTAsbT1bXSxiPVtdO2Z1bmN0aW9uIHcoKXtyZXR1cm4gZH1mdW5jdGlvbiB2KFUpe3Rocm93IGUuZXJyb3IoXCJVbmNsb3NlZCBcIitVLGQpfWZ1bmN0aW9uIE4oKXtyZXR1cm4gYi5sZW5ndGg9PT0wJiZkPj1ofWZ1bmN0aW9uICQoVSl7aWYoYi5sZW5ndGgpcmV0dXJuIGIucG9wKCk7aWYoZD49aClyZXR1cm47bGV0IFM9VT9VLmlnbm9yZVVuY2xvc2VkOiExO3N3aXRjaChpPXIuY2hhckNvZGVBdChkKSxpKXtjYXNlIEh0OmNhc2UgcHQ6Y2FzZSBqdDpjYXNlIEp0OmNhc2UgUXQ6e289ZDtkbyBvKz0xLGk9ci5jaGFyQ29kZUF0KG8pO3doaWxlKGk9PT1wdHx8aT09PUh0fHxpPT09anR8fGk9PT1KdHx8aT09PVF0KTt4PVtcInNwYWNlXCIsci5zbGljZShkLG8pXSxkPW8tMTticmVha31jYXNlIHNmOmNhc2Ugb2Y6Y2FzZSBsZjpjYXNlIGNmOmNhc2UgaGY6Y2FzZSBmZjpjYXNlIHVmOntsZXQgQz1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpO3g9W0MsQyxkXTticmVha31jYXNlIGFmOntpZihsPW0ubGVuZ3RoP20ucG9wKClbMV06XCJcIixnPXIuY2hhckNvZGVBdChkKzEpLGw9PT1cInVybFwiJiZnIT09VG4mJmchPT1vbyYmZyE9PXB0JiZnIT09SHQmJmchPT1qdCYmZyE9PVF0JiZnIT09SnQpe289ZDtkb3tpZihmPSExLG89ci5pbmRleE9mKFwiKVwiLG8rMSksbz09PS0xKWlmKHN8fFMpe289ZDticmVha31lbHNlIHYoXCJicmFja2V0XCIpO2ZvcihwPW87ci5jaGFyQ29kZUF0KHAtMSk9PT1LdDspcC09MSxmPSFmfXdoaWxlKGYpO3g9W1wiYnJhY2tldHNcIixyLnNsaWNlKGQsbysxKSxkLG9dLGQ9b31lbHNlIG89ci5pbmRleE9mKFwiKVwiLGQrMSksdT1yLnNsaWNlKGQsbysxKSxvPT09LTF8fG1mLnRlc3QodSk/eD1bXCIoXCIsXCIoXCIsZF06KHg9W1wiYnJhY2tldHNcIix1LGQsb10sZD1vKTticmVha31jYXNlIFRuOmNhc2Ugb286e2E9aT09PVRuP1wiJ1wiOidcIicsbz1kO2Rve2lmKGY9ITEsbz1yLmluZGV4T2YoYSxvKzEpLG89PT0tMSlpZihzfHxTKXtvPWQrMTticmVha31lbHNlIHYoXCJzdHJpbmdcIik7Zm9yKHA9bztyLmNoYXJDb2RlQXQocC0xKT09PUt0OylwLT0xLGY9IWZ9d2hpbGUoZik7eD1bXCJzdHJpbmdcIixyLnNsaWNlKGQsbysxKSxkLG9dLGQ9bzticmVha31jYXNlIGRmOntYdC5sYXN0SW5kZXg9ZCsxLFh0LnRlc3QociksWHQubGFzdEluZGV4PT09MD9vPXIubGVuZ3RoLTE6bz1YdC5sYXN0SW5kZXgtMix4PVtcImF0LXdvcmRcIixyLnNsaWNlKGQsbysxKSxkLG9dLGQ9bzticmVha31jYXNlIEt0Ontmb3Iobz1kLGM9ITA7ci5jaGFyQ29kZUF0KG8rMSk9PT1LdDspbys9MSxjPSFjO2lmKGk9ci5jaGFyQ29kZUF0KG8rMSksYyYmaSE9PWFvJiZpIT09cHQmJmkhPT1IdCYmaSE9PWp0JiZpIT09SnQmJmkhPT1RdCYmKG8rPTEsdW8udGVzdChyLmNoYXJBdChvKSkpKXtmb3IoO3VvLnRlc3Qoci5jaGFyQXQobysxKSk7KW8rPTE7ci5jaGFyQ29kZUF0KG8rMSk9PT1wdCYmKG8rPTEpfXg9W1wid29yZFwiLHIuc2xpY2UoZCxvKzEpLGQsb10sZD1vO2JyZWFrfWRlZmF1bHQ6e2k9PT1hbyYmci5jaGFyQ29kZUF0KGQrMSk9PT1wZj8obz1yLmluZGV4T2YoXCIqL1wiLGQrMikrMSxvPT09MCYmKHN8fFM/bz1yLmxlbmd0aDp2KFwiY29tbWVudFwiKSkseD1bXCJjb21tZW50XCIsci5zbGljZShkLG8rMSksZCxvXSxkPW8pOihadC5sYXN0SW5kZXg9ZCsxLFp0LnRlc3QociksWnQubGFzdEluZGV4PT09MD9vPXIubGVuZ3RoLTE6bz1adC5sYXN0SW5kZXgtMix4PVtcIndvcmRcIixyLnNsaWNlKGQsbysxKSxkLG9dLG0ucHVzaCh4KSxkPW8pO2JyZWFrfX1yZXR1cm4gZCsrLHh9ZnVuY3Rpb24gSChVKXtiLnB1c2goVSl9cmV0dXJue2JhY2s6SCxlbmRPZkZpbGU6TixuZXh0VG9rZW46JCxwb3NpdGlvbjp3fX19KTt2YXIgdHI9eSgoU3gsZm8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGNvPXNlKCksTmU9Y2xhc3MgZXh0ZW5kcyBjb3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJhdHJ1bGVcIn1hcHBlbmQoLi4uZSl7cmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc3x8KHRoaXMubm9kZXM9W10pLHN1cGVyLmFwcGVuZCguLi5lKX1wcmVwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5wcmVwZW5kKC4uLmUpfX07Zm8uZXhwb3J0cz1OZTtOZS5kZWZhdWx0PU5lO2NvLnJlZ2lzdGVyQXRSdWxlKE5lKX0pO3ZhciBQZT15KChDeCx5byk9PntcInVzZSBzdHJpY3RcIjt2YXIgcG89c2UoKSxobyxtbyxpZT1jbGFzcyBleHRlbmRzIHBve2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1cInJvb3RcIix0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsbixyKXtsZXQgcz1zdXBlci5ub3JtYWxpemUoZSk7aWYobil7aWYocj09PVwicHJlcGVuZFwiKXRoaXMubm9kZXMubGVuZ3RoPjE/bi5yYXdzLmJlZm9yZT10aGlzLm5vZGVzWzFdLnJhd3MuYmVmb3JlOmRlbGV0ZSBuLnJhd3MuYmVmb3JlO2Vsc2UgaWYodGhpcy5maXJzdCE9PW4pZm9yKGxldCBpIG9mIHMpaS5yYXdzLmJlZm9yZT1uLnJhd3MuYmVmb3JlfXJldHVybiBzfXJlbW92ZUNoaWxkKGUsbil7bGV0IHI9dGhpcy5pbmRleChlKTtyZXR1cm4hbiYmcj09PTAmJnRoaXMubm9kZXMubGVuZ3RoPjEmJih0aGlzLm5vZGVzWzFdLnJhd3MuYmVmb3JlPXRoaXMubm9kZXNbcl0ucmF3cy5iZWZvcmUpLHN1cGVyLnJlbW92ZUNoaWxkKGUpfXRvUmVzdWx0KGU9e30pe3JldHVybiBuZXcgaG8obmV3IG1vLHRoaXMsZSkuc3RyaW5naWZ5KCl9fTtpZS5yZWdpc3RlckxhenlSZXN1bHQ9dD0+e2hvPXR9O2llLnJlZ2lzdGVyUHJvY2Vzc29yPXQ9Pnttbz10fTt5by5leHBvcnRzPWllO2llLmRlZmF1bHQ9aWU7cG8ucmVnaXN0ZXJSb290KGllKX0pO3ZhciBFbj15KChPeCxnbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgaHQ9e2NvbW1hKHQpe3JldHVybiBodC5zcGxpdCh0LFtcIixcIl0sITApfSxzcGFjZSh0KXtsZXQgZT1bXCIgXCIsYFxuYCxcIlx0XCJdO3JldHVybiBodC5zcGxpdCh0LGUpfSxzcGxpdCh0LGUsbil7bGV0IHI9W10scz1cIlwiLGk9ITEsbz0wLGE9ITEsdT1cIlwiLGM9ITE7Zm9yKGxldCBmIG9mIHQpYz9jPSExOmY9PT1cIlxcXFxcIj9jPSEwOmE/Zj09PXUmJihhPSExKTpmPT09J1wiJ3x8Zj09PVwiJ1wiPyhhPSEwLHU9Zik6Zj09PVwiKFwiP28rPTE6Zj09PVwiKVwiP28+MCYmKG8tPTEpOm89PT0wJiZlLmluY2x1ZGVzKGYpJiYoaT0hMCksaT8ocyE9PVwiXCImJnIucHVzaChzLnRyaW0oKSkscz1cIlwiLGk9ITEpOnMrPWY7cmV0dXJuKG58fHMhPT1cIlwiKSYmci5wdXNoKHMudHJpbSgpKSxyfX07Z28uZXhwb3J0cz1odDtodC5kZWZhdWx0PWh0fSk7dmFyIHJyPXkoKEF4LHZvKT0+e1widXNlIHN0cmljdFwiO3ZhciB3bz1zZSgpLHlmPUVuKCksUmU9Y2xhc3MgZXh0ZW5kcyB3b3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJydWxlXCIsdGhpcy5ub2Rlc3x8KHRoaXMubm9kZXM9W10pfWdldCBzZWxlY3RvcnMoKXtyZXR1cm4geWYuY29tbWEodGhpcy5zZWxlY3Rvcil9c2V0IHNlbGVjdG9ycyhlKXtsZXQgbj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IubWF0Y2goLyxcXHMqLyk6bnVsbCxyPW4/blswXTpcIixcIit0aGlzLnJhdyhcImJldHdlZW5cIixcImJlZm9yZU9wZW5cIik7dGhpcy5zZWxlY3Rvcj1lLmpvaW4ocil9fTt2by5leHBvcnRzPVJlO1JlLmRlZmF1bHQ9UmU7d28ucmVnaXN0ZXJSdWxlKFJlKX0pO3ZhciBucj15KChOeCxrbyk9PntcInVzZSBzdHJpY3RcIjt2YXIgZ2Y9Y3QoKSx3Zj1lcigpLHZmPUFlKCkseGY9dHIoKSxiZj1QZSgpLHhvPXJyKCksYm89e2VtcHR5OiEwLHNwYWNlOiEwfTtmdW5jdGlvbiBrZih0KXtmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7bGV0IG49dFtlXSxyPW5bM118fG5bMl07aWYocilyZXR1cm4gcn19dmFyIFNuPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuaW5wdXQ9ZSx0aGlzLnJvb3Q9bmV3IGJmLHRoaXMuY3VycmVudD10aGlzLnJvb3QsdGhpcy5zcGFjZXM9XCJcIix0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1c3RvbVByb3BlcnR5PSExLHRoaXMuY3JlYXRlVG9rZW5pemVyKCksdGhpcy5yb290LnNvdXJjZT17aW5wdXQ6ZSxzdGFydDp7Y29sdW1uOjEsbGluZToxLG9mZnNldDowfX19YXRydWxlKGUpe2xldCBuPW5ldyB4ZjtuLm5hbWU9ZVsxXS5zbGljZSgxKSxuLm5hbWU9PT1cIlwiJiZ0aGlzLnVubmFtZWRBdHJ1bGUobixlKSx0aGlzLmluaXQobixlWzJdKTtsZXQgcixzLGksbz0hMSxhPSExLHU9W10sYz1bXTtmb3IoOyF0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKTspe2lmKGU9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCkscj1lWzBdLHI9PT1cIihcInx8cj09PVwiW1wiP2MucHVzaChyPT09XCIoXCI/XCIpXCI6XCJdXCIpOnI9PT1cIntcIiYmYy5sZW5ndGg+MD9jLnB1c2goXCJ9XCIpOnI9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MClpZihyPT09XCI7XCIpe24uc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuc2VtaWNvbG9uPSEwO2JyZWFrfWVsc2UgaWYocj09PVwie1wiKXthPSEwO2JyZWFrfWVsc2UgaWYocj09PVwifVwiKXtpZih1Lmxlbmd0aD4wKXtmb3IoaT11Lmxlbmd0aC0xLHM9dVtpXTtzJiZzWzBdPT09XCJzcGFjZVwiOylzPXVbLS1pXTtzJiYobi5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oc1szXXx8c1syXSkpfXRoaXMuZW5kKGUpO2JyZWFrfWVsc2UgdS5wdXNoKGUpO2Vsc2UgdS5wdXNoKGUpO2lmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpKXtvPSEwO2JyZWFrfX1uLnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZCh1KSx1Lmxlbmd0aD8obi5yYXdzLmFmdGVyTmFtZT10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KHUpLHRoaXMucmF3KG4sXCJwYXJhbXNcIix1KSxvJiYoZT11W3UubGVuZ3RoLTFdLG4uc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHRoaXMuc3BhY2VzPW4ucmF3cy5iZXR3ZWVuLG4ucmF3cy5iZXR3ZWVuPVwiXCIpKToobi5yYXdzLmFmdGVyTmFtZT1cIlwiLG4ucGFyYW1zPVwiXCIpLGEmJihuLm5vZGVzPVtdLHRoaXMuY3VycmVudD1uKX1jaGVja01pc3NlZFNlbWljb2xvbihlKXtsZXQgbj10aGlzLmNvbG9uKGUpO2lmKG49PT0hMSlyZXR1cm47bGV0IHI9MCxzO2ZvcihsZXQgaT1uLTE7aT49MCYmKHM9ZVtpXSwhKHNbMF0hPT1cInNwYWNlXCImJihyKz0xLHI9PT0yKSkpO2ktLSk7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihcIk1pc3NlZCBzZW1pY29sb25cIixzWzBdPT09XCJ3b3JkXCI/c1szXSsxOnNbMl0pfWNvbG9uKGUpe2xldCBuPTAscixzLGk7Zm9yKGxldFtvLGFdb2YgZS5lbnRyaWVzKCkpe2lmKHI9YSxzPXJbMF0scz09PVwiKFwiJiYobis9MSkscz09PVwiKVwiJiYobi09MSksbj09PTAmJnM9PT1cIjpcIilpZighaSl0aGlzLmRvdWJsZUNvbG9uKHIpO2Vsc2V7aWYoaVswXT09PVwid29yZFwiJiZpWzFdPT09XCJwcm9naWRcIiljb250aW51ZTtyZXR1cm4gb31pPXJ9cmV0dXJuITF9Y29tbWVudChlKXtsZXQgbj1uZXcgdmY7dGhpcy5pbml0KG4sZVsyXSksbi5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oZVszXXx8ZVsyXSk7bGV0IHI9ZVsxXS5zbGljZSgyLC0yKTtpZigvXlxccyokLy50ZXN0KHIpKW4udGV4dD1cIlwiLG4ucmF3cy5sZWZ0PXIsbi5yYXdzLnJpZ2h0PVwiXCI7ZWxzZXtsZXQgcz1yLm1hdGNoKC9eKFxccyopKFteXSpcXFMpKFxccyopJC8pO24udGV4dD1zWzJdLG4ucmF3cy5sZWZ0PXNbMV0sbi5yYXdzLnJpZ2h0PXNbM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPXdmKHRoaXMuaW5wdXQpfWRlY2woZSxuKXtsZXQgcj1uZXcgZ2Y7dGhpcy5pbml0KHIsZVswXVsyXSk7bGV0IHM9ZVtlLmxlbmd0aC0xXTtmb3Ioc1swXT09PVwiO1wiJiYodGhpcy5zZW1pY29sb249ITAsZS5wb3AoKSksci5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24oc1szXXx8c1syXXx8a2YoZSkpO2VbMF1bMF0hPT1cIndvcmRcIjspZS5sZW5ndGg9PT0xJiZ0aGlzLnVua25vd25Xb3JkKGUpLHIucmF3cy5iZWZvcmUrPWUuc2hpZnQoKVsxXTtmb3Ioci5zb3VyY2Uuc3RhcnQ9dGhpcy5nZXRQb3NpdGlvbihlWzBdWzJdKSxyLnByb3A9XCJcIjtlLmxlbmd0aDspe2xldCBjPWVbMF1bMF07aWYoYz09PVwiOlwifHxjPT09XCJzcGFjZVwifHxjPT09XCJjb21tZW50XCIpYnJlYWs7ci5wcm9wKz1lLnNoaWZ0KClbMV19ci5yYXdzLmJldHdlZW49XCJcIjtsZXQgaTtmb3IoO2UubGVuZ3RoOylpZihpPWUuc2hpZnQoKSxpWzBdPT09XCI6XCIpe3IucmF3cy5iZXR3ZWVuKz1pWzFdO2JyZWFrfWVsc2UgaVswXT09PVwid29yZFwiJiYvXFx3Ly50ZXN0KGlbMV0pJiZ0aGlzLnVua25vd25Xb3JkKFtpXSksci5yYXdzLmJldHdlZW4rPWlbMV07KHIucHJvcFswXT09PVwiX1wifHxyLnByb3BbMF09PT1cIipcIikmJihyLnJhd3MuYmVmb3JlKz1yLnByb3BbMF0sci5wcm9wPXIucHJvcC5zbGljZSgxKSk7bGV0IG89W10sYTtmb3IoO2UubGVuZ3RoJiYoYT1lWzBdWzBdLCEoYSE9PVwic3BhY2VcIiYmYSE9PVwiY29tbWVudFwiKSk7KW8ucHVzaChlLnNoaWZ0KCkpO3RoaXMucHJlY2hlY2tNaXNzZWRTZW1pY29sb24oZSk7Zm9yKGxldCBjPWUubGVuZ3RoLTE7Yz49MDtjLS0pe2lmKGk9ZVtjXSxpWzFdLnRvTG93ZXJDYXNlKCk9PT1cIiFpbXBvcnRhbnRcIil7ci5pbXBvcnRhbnQ9ITA7bGV0IGY9dGhpcy5zdHJpbmdGcm9tKGUsYyk7Zj10aGlzLnNwYWNlc0Zyb21FbmQoZSkrZixmIT09XCIgIWltcG9ydGFudFwiJiYoci5yYXdzLmltcG9ydGFudD1mKTticmVha31lbHNlIGlmKGlbMV0udG9Mb3dlckNhc2UoKT09PVwiaW1wb3J0YW50XCIpe2xldCBmPWUuc2xpY2UoMCkscD1cIlwiO2ZvcihsZXQgbD1jO2w+MDtsLS0pe2xldCBnPWZbbF1bMF07aWYocC50cmltKCkuaW5kZXhPZihcIiFcIik9PT0wJiZnIT09XCJzcGFjZVwiKWJyZWFrO3A9Zi5wb3AoKVsxXStwfXAudHJpbSgpLmluZGV4T2YoXCIhXCIpPT09MCYmKHIuaW1wb3J0YW50PSEwLHIucmF3cy5pbXBvcnRhbnQ9cCxlPWYpfWlmKGlbMF0hPT1cInNwYWNlXCImJmlbMF0hPT1cImNvbW1lbnRcIilicmVha31lLnNvbWUoYz0+Y1swXSE9PVwic3BhY2VcIiYmY1swXSE9PVwiY29tbWVudFwiKSYmKHIucmF3cy5iZXR3ZWVuKz1vLm1hcChjPT5jWzFdKS5qb2luKFwiXCIpLG89W10pLHRoaXMucmF3KHIsXCJ2YWx1ZVwiLG8uY29uY2F0KGUpLG4pLHIudmFsdWUuaW5jbHVkZXMoXCI6XCIpJiYhbiYmdGhpcy5jaGVja01pc3NlZFNlbWljb2xvbihlKX1kb3VibGVDb2xvbihlKXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKFwiRG91YmxlIGNvbG9uXCIse29mZnNldDplWzJdfSx7b2Zmc2V0OmVbMl0rZVsxXS5sZW5ndGh9KX1lbXB0eVJ1bGUoZSl7bGV0IG49bmV3IHhvO3RoaXMuaW5pdChuLGVbMl0pLG4uc2VsZWN0b3I9XCJcIixuLnJhd3MuYmV0d2Vlbj1cIlwiLHRoaXMuY3VycmVudD1ufWVuZChlKXt0aGlzLmN1cnJlbnQubm9kZXMmJnRoaXMuY3VycmVudC5ub2Rlcy5sZW5ndGgmJih0aGlzLmN1cnJlbnQucmF3cy5zZW1pY29sb249dGhpcy5zZW1pY29sb24pLHRoaXMuc2VtaWNvbG9uPSExLHRoaXMuY3VycmVudC5yYXdzLmFmdGVyPSh0aGlzLmN1cnJlbnQucmF3cy5hZnRlcnx8XCJcIikrdGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9XCJcIix0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fFwiXCIpK3RoaXMuc3BhY2VzLHRoaXMucm9vdC5zb3VyY2UuZW5kPXRoaXMuZ2V0UG9zaXRpb24odGhpcy50b2tlbml6ZXIucG9zaXRpb24oKSl9ZnJlZVNlbWljb2xvbihlKXtpZih0aGlzLnNwYWNlcys9ZVsxXSx0aGlzLmN1cnJlbnQubm9kZXMpe2xldCBuPXRoaXMuY3VycmVudC5ub2Rlc1t0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoLTFdO24mJm4udHlwZT09PVwicnVsZVwiJiYhbi5yYXdzLm93blNlbWljb2xvbiYmKG4ucmF3cy5vd25TZW1pY29sb249dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9XCJcIil9fWdldFBvc2l0aW9uKGUpe2xldCBuPXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOm4uY29sLGxpbmU6bi5saW5lLG9mZnNldDplfX1pbml0KGUsbil7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbihuKX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz1cIlwiLGUudHlwZSE9PVwiY29tbWVudFwiJiYodGhpcy5zZW1pY29sb249ITEpfW90aGVyKGUpe2xldCBuPSExLHI9bnVsbCxzPSExLGk9bnVsbCxvPVtdLGE9ZVsxXS5zdGFydHNXaXRoKFwiLS1cIiksdT1bXSxjPWU7Zm9yKDtjOyl7aWYocj1jWzBdLHUucHVzaChjKSxyPT09XCIoXCJ8fHI9PT1cIltcIilpfHwoaT1jKSxvLnB1c2gocj09PVwiKFwiP1wiKVwiOlwiXVwiKTtlbHNlIGlmKGEmJnMmJnI9PT1cIntcIilpfHwoaT1jKSxvLnB1c2goXCJ9XCIpO2Vsc2UgaWYoby5sZW5ndGg9PT0wKWlmKHI9PT1cIjtcIilpZihzKXt0aGlzLmRlY2wodSxhKTtyZXR1cm59ZWxzZSBicmVhaztlbHNlIGlmKHI9PT1cIntcIil7dGhpcy5ydWxlKHUpO3JldHVybn1lbHNlIGlmKHI9PT1cIn1cIil7dGhpcy50b2tlbml6ZXIuYmFjayh1LnBvcCgpKSxuPSEwO2JyZWFrfWVsc2Ugcj09PVwiOlwiJiYocz0hMCk7ZWxzZSByPT09b1tvLmxlbmd0aC0xXSYmKG8ucG9wKCksby5sZW5ndGg9PT0wJiYoaT1udWxsKSk7Yz10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKX1pZih0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKSYmKG49ITApLG8ubGVuZ3RoPjAmJnRoaXMudW5jbG9zZWRCcmFja2V0KGkpLG4mJnMpe2lmKCFhKWZvcig7dS5sZW5ndGgmJihjPXVbdS5sZW5ndGgtMV1bMF0sIShjIT09XCJzcGFjZVwiJiZjIT09XCJjb21tZW50XCIpKTspdGhpcy50b2tlbml6ZXIuYmFjayh1LnBvcCgpKTt0aGlzLmRlY2wodSxhKX1lbHNlIHRoaXMudW5rbm93bldvcmQodSl9cGFyc2UoKXtsZXQgZTtmb3IoOyF0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKTspc3dpdGNoKGU9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKCksZVswXSl7Y2FzZVwic3BhY2VcIjp0aGlzLnNwYWNlcys9ZVsxXTticmVhaztjYXNlXCI7XCI6dGhpcy5mcmVlU2VtaWNvbG9uKGUpO2JyZWFrO2Nhc2VcIn1cIjp0aGlzLmVuZChlKTticmVhaztjYXNlXCJjb21tZW50XCI6dGhpcy5jb21tZW50KGUpO2JyZWFrO2Nhc2VcImF0LXdvcmRcIjp0aGlzLmF0cnVsZShlKTticmVhaztjYXNlXCJ7XCI6dGhpcy5lbXB0eVJ1bGUoZSk7YnJlYWs7ZGVmYXVsdDp0aGlzLm90aGVyKGUpO2JyZWFrfXRoaXMuZW5kRmlsZSgpfXByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKCl7fXJhdyhlLG4scixzKXtsZXQgaSxvLGE9ci5sZW5ndGgsdT1cIlwiLGM9ITAsZixwO2ZvcihsZXQgbD0wO2w8YTtsKz0xKWk9cltsXSxvPWlbMF0sbz09PVwic3BhY2VcIiYmbD09PWEtMSYmIXM/Yz0hMTpvPT09XCJjb21tZW50XCI/KHA9cltsLTFdP3JbbC0xXVswXTpcImVtcHR5XCIsZj1yW2wrMV0/cltsKzFdWzBdOlwiZW1wdHlcIiwhYm9bcF0mJiFib1tmXT91LnNsaWNlKC0xKT09PVwiLFwiP2M9ITE6dSs9aVsxXTpjPSExKTp1Kz1pWzFdO2lmKCFjKXtsZXQgbD1yLnJlZHVjZSgoZyx4KT0+Zyt4WzFdLFwiXCIpO2UucmF3c1tuXT17cmF3OmwsdmFsdWU6dX19ZVtuXT11fXJ1bGUoZSl7ZS5wb3AoKTtsZXQgbj1uZXcgeG87dGhpcy5pbml0KG4sZVswXVsyXSksbi5yYXdzLmJldHdlZW49dGhpcy5zcGFjZXNBbmRDb21tZW50c0Zyb21FbmQoZSksdGhpcy5yYXcobixcInNlbGVjdG9yXCIsZSksdGhpcy5jdXJyZW50PW59c3BhY2VzQW5kQ29tbWVudHNGcm9tRW5kKGUpe2xldCBuLHI9XCJcIjtmb3IoO2UubGVuZ3RoJiYobj1lW2UubGVuZ3RoLTFdWzBdLCEobiE9PVwic3BhY2VcIiYmbiE9PVwiY29tbWVudFwiKSk7KXI9ZS5wb3AoKVsxXStyO3JldHVybiByfXNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGUpe2xldCBuLHI9XCJcIjtmb3IoO2UubGVuZ3RoJiYobj1lWzBdWzBdLCEobiE9PVwic3BhY2VcIiYmbiE9PVwiY29tbWVudFwiKSk7KXIrPWUuc2hpZnQoKVsxXTtyZXR1cm4gcn1zcGFjZXNGcm9tRW5kKGUpe2xldCBuLHI9XCJcIjtmb3IoO2UubGVuZ3RoJiYobj1lW2UubGVuZ3RoLTFdWzBdLG49PT1cInNwYWNlXCIpOylyPWUucG9wKClbMV0rcjtyZXR1cm4gcn1zdHJpbmdGcm9tKGUsbil7bGV0IHI9XCJcIjtmb3IobGV0IHM9bjtzPGUubGVuZ3RoO3MrKylyKz1lW3NdWzFdO3JldHVybiBlLnNwbGljZShuLGUubGVuZ3RoLW4pLHJ9dW5jbG9zZWRCbG9jaygpe2xldCBlPXRoaXMuY3VycmVudC5zb3VyY2Uuc3RhcnQ7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihcIlVuY2xvc2VkIGJsb2NrXCIsZS5saW5lLGUuY29sdW1uKX11bmNsb3NlZEJyYWNrZXQoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihcIlVuY2xvc2VkIGJyYWNrZXRcIix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5leHBlY3RlZENsb3NlKGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoXCJVbmV4cGVjdGVkIH1cIix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5rbm93bldvcmQoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcihcIlVua25vd24gd29yZFwiLHtvZmZzZXQ6ZVswXVsyXX0se29mZnNldDplWzBdWzJdK2VbMF1bMV0ubGVuZ3RofSl9dW5uYW1lZEF0cnVsZShlLG4pe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoXCJBdC1ydWxlIHdpdGhvdXQgbmFtZVwiLHtvZmZzZXQ6blsyXX0se29mZnNldDpuWzJdK25bMV0ubGVuZ3RofSl9fTtrby5leHBvcnRzPVNufSk7dmFyIF9vPXkoKCk9Pnt9KTt2YXIgRW89eSgoSXgsVG8pPT57dmFyIF9mPVwidXNlYW5kb20tMjZUMTk4MzQwUFg3NXB4SkFDS1ZFUllNSU5EQlVTSFdPTEZfR1FaYmZnaGprbHF2d3l6cmljdFwiLFRmPSh0LGU9MjEpPT4obj1lKT0+e2xldCByPVwiXCIscz1uO2Zvcig7cy0tOylyKz10W01hdGgucmFuZG9tKCkqdC5sZW5ndGh8MF07cmV0dXJuIHJ9LEVmPSh0PTIxKT0+e2xldCBlPVwiXCIsbj10O2Zvcig7bi0tOyllKz1fZltNYXRoLnJhbmRvbSgpKjY0fDBdO3JldHVybiBlfTtUby5leHBvcnRzPXtuYW5vaWQ6RWYsY3VzdG9tQWxwaGFiZXQ6VGZ9fSk7dmFyIENuPXkoKHF4LFNvKT0+e1NvLmV4cG9ydHM9Y2xhc3N7fX0pO3ZhciBxZT15KChMeCxObyk9PntcInVzZSBzdHJpY3RcIjt2YXJ7U291cmNlTWFwQ29uc3VtZXI6U2YsU291cmNlTWFwR2VuZXJhdG9yOkNmfT1fbygpLHtmaWxlVVJMVG9QYXRoOkNvLHBhdGhUb0ZpbGVVUkw6c3J9PXt9LHtpc0Fic29sdXRlOk5uLHJlc29sdmU6UG59PXt9LHtuYW5vaWQ6T2Z9PUVvKCksT249dm4oKSxPbz1WdCgpLEFmPUNuKCksQW49U3ltYm9sKFwiZnJvbU9mZnNldENhY2hlXCIpLE5mPSEhKFNmJiZDZiksQW89ISEoUG4mJk5uKSxJZT1jbGFzc3tjb25zdHJ1Y3RvcihlLG49e30pe2lmKGU9PT1udWxsfHx0eXBlb2YgZT5cInVcInx8dHlwZW9mIGU9PVwib2JqZWN0XCImJiFlLnRvU3RyaW5nKXRocm93IG5ldyBFcnJvcihgUG9zdENTUyByZWNlaXZlZCAke2V9IGluc3RlYWQgb2YgQ1NTIHN0cmluZ2ApO2lmKHRoaXMuY3NzPWUudG9TdHJpbmcoKSx0aGlzLmNzc1swXT09PVwiXFx1RkVGRlwifHx0aGlzLmNzc1swXT09PVwiXFx1RkZGRVwiPyh0aGlzLmhhc0JPTT0hMCx0aGlzLmNzcz10aGlzLmNzcy5zbGljZSgxKSk6dGhpcy5oYXNCT009ITEsbi5mcm9tJiYoIUFvfHwvXlxcdys6XFwvXFwvLy50ZXN0KG4uZnJvbSl8fE5uKG4uZnJvbSk/dGhpcy5maWxlPW4uZnJvbTp0aGlzLmZpbGU9UG4obi5mcm9tKSksQW8mJk5mKXtsZXQgcj1uZXcgQWYodGhpcy5jc3Msbik7aWYoci50ZXh0KXt0aGlzLm1hcD1yO2xldCBzPXIuY29uc3VtZXIoKS5maWxlOyF0aGlzLmZpbGUmJnMmJih0aGlzLmZpbGU9dGhpcy5tYXBSZXNvbHZlKHMpKX19dGhpcy5maWxlfHwodGhpcy5pZD1cIjxpbnB1dCBjc3MgXCIrT2YoNikrXCI+XCIpLHRoaXMubWFwJiYodGhpcy5tYXAuZmlsZT10aGlzLmZyb20pfWVycm9yKGUsbixyLHM9e30pe2xldCBpLG8sYTtpZihuJiZ0eXBlb2Ygbj09XCJvYmplY3RcIil7bGV0IGM9bixmPXI7aWYodHlwZW9mIGMub2Zmc2V0PT1cIm51bWJlclwiKXtsZXQgcD10aGlzLmZyb21PZmZzZXQoYy5vZmZzZXQpO249cC5saW5lLHI9cC5jb2x9ZWxzZSBuPWMubGluZSxyPWMuY29sdW1uO2lmKHR5cGVvZiBmLm9mZnNldD09XCJudW1iZXJcIil7bGV0IHA9dGhpcy5mcm9tT2Zmc2V0KGYub2Zmc2V0KTtvPXAubGluZSxhPXAuY29sfWVsc2Ugbz1mLmxpbmUsYT1mLmNvbHVtbn1lbHNlIGlmKCFyKXtsZXQgYz10aGlzLmZyb21PZmZzZXQobik7bj1jLmxpbmUscj1jLmNvbH1sZXQgdT10aGlzLm9yaWdpbihuLHIsbyxhKTtyZXR1cm4gdT9pPW5ldyBPbyhlLHUuZW5kTGluZT09PXZvaWQgMD91LmxpbmU6e2NvbHVtbjp1LmNvbHVtbixsaW5lOnUubGluZX0sdS5lbmRMaW5lPT09dm9pZCAwP3UuY29sdW1uOntjb2x1bW46dS5lbmRDb2x1bW4sbGluZTp1LmVuZExpbmV9LHUuc291cmNlLHUuZmlsZSxzLnBsdWdpbik6aT1uZXcgT28oZSxvPT09dm9pZCAwP246e2NvbHVtbjpyLGxpbmU6bn0sbz09PXZvaWQgMD9yOntjb2x1bW46YSxsaW5lOm99LHRoaXMuY3NzLHRoaXMuZmlsZSxzLnBsdWdpbiksaS5pbnB1dD17Y29sdW1uOnIsZW5kQ29sdW1uOmEsZW5kTGluZTpvLGxpbmU6bixzb3VyY2U6dGhpcy5jc3N9LHRoaXMuZmlsZSYmKHNyJiYoaS5pbnB1dC51cmw9c3IodGhpcy5maWxlKS50b1N0cmluZygpKSxpLmlucHV0LmZpbGU9dGhpcy5maWxlKSxpfWdldCBmcm9tKCl7cmV0dXJuIHRoaXMuZmlsZXx8dGhpcy5pZH1mcm9tT2Zmc2V0KGUpe2xldCBuLHI7aWYodGhpc1tBbl0pcj10aGlzW0FuXTtlbHNle2xldCBpPXRoaXMuY3NzLnNwbGl0KGBcbmApO3I9bmV3IEFycmF5KGkubGVuZ3RoKTtsZXQgbz0wO2ZvcihsZXQgYT0wLHU9aS5sZW5ndGg7YTx1O2ErKylyW2FdPW8sbys9aVthXS5sZW5ndGgrMTt0aGlzW0FuXT1yfW49cltyLmxlbmd0aC0xXTtsZXQgcz0wO2lmKGU+PW4pcz1yLmxlbmd0aC0xO2Vsc2V7bGV0IGk9ci5sZW5ndGgtMixvO2Zvcig7czxpOylpZihvPXMrKGktcz4+MSksZTxyW29dKWk9by0xO2Vsc2UgaWYoZT49cltvKzFdKXM9bysxO2Vsc2V7cz1vO2JyZWFrfX1yZXR1cm57Y29sOmUtcltzXSsxLGxpbmU6cysxfX1tYXBSZXNvbHZlKGUpe3JldHVybi9eXFx3KzpcXC9cXC8vLnRlc3QoZSk/ZTpQbih0aGlzLm1hcC5jb25zdW1lcigpLnNvdXJjZVJvb3R8fHRoaXMubWFwLnJvb3R8fFwiLlwiLGUpfW9yaWdpbihlLG4scixzKXtpZighdGhpcy5tYXApcmV0dXJuITE7bGV0IGk9dGhpcy5tYXAuY29uc3VtZXIoKSxvPWkub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOm4sbGluZTplfSk7aWYoIW8uc291cmNlKXJldHVybiExO2xldCBhO3R5cGVvZiByPT1cIm51bWJlclwiJiYoYT1pLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe2NvbHVtbjpzLGxpbmU6cn0pKTtsZXQgdTtObihvLnNvdXJjZSk/dT1zcihvLnNvdXJjZSk6dT1uZXcgVVJMKG8uc291cmNlLHRoaXMubWFwLmNvbnN1bWVyKCkuc291cmNlUm9vdHx8c3IodGhpcy5tYXAubWFwRmlsZSkpO2xldCBjPXtjb2x1bW46by5jb2x1bW4sZW5kQ29sdW1uOmEmJmEuY29sdW1uLGVuZExpbmU6YSYmYS5saW5lLGxpbmU6by5saW5lLHVybDp1LnRvU3RyaW5nKCl9O2lmKHUucHJvdG9jb2w9PT1cImZpbGU6XCIpaWYoQ28pYy5maWxlPUNvKHUpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKFwiZmlsZTogcHJvdG9jb2wgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIFBvc3RDU1MgYnVpbGRcIik7bGV0IGY9aS5zb3VyY2VDb250ZW50Rm9yKG8uc291cmNlKTtyZXR1cm4gZiYmKGMuc291cmNlPWYpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCBuIG9mW1wiaGFzQk9NXCIsXCJjc3NcIixcImZpbGVcIixcImlkXCJdKXRoaXNbbl0hPW51bGwmJihlW25dPXRoaXNbbl0pO3JldHVybiB0aGlzLm1hcCYmKGUubWFwPXsuLi50aGlzLm1hcH0sZS5tYXAuY29uc3VtZXJDYWNoZSYmKGUubWFwLmNvbnN1bWVyQ2FjaGU9dm9pZCAwKSksZX19O05vLmV4cG9ydHM9SWU7SWUuZGVmYXVsdD1JZTtPbiYmT24ucmVnaXN0ZXJJbnB1dCYmT24ucmVnaXN0ZXJJbnB1dChJZSl9KTt2YXIgZHQ9eSgoTXgsUG8pPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFBmPXNlKCksUmY9bnIoKSxJZj1xZSgpO2Z1bmN0aW9uIGlyKHQsZSl7bGV0IG49bmV3IElmKHQsZSkscj1uZXcgUmYobik7dHJ5e3IucGFyc2UoKX1jYXRjaChzKXt0aHJvdyBzfXJldHVybiByLnJvb3R9UG8uZXhwb3J0cz1pcjtpci5kZWZhdWx0PWlyO1BmLnJlZ2lzdGVyUGFyc2UoaXIpfSk7dmFyIFJvPXkoKEJ4LFJuKT0+e3ZhciBxZj1lcigpLERmPXFlKCk7Um4uZXhwb3J0cz17aXNJbmxpbmVDb21tZW50KHQpe2lmKHRbMF09PT1cIndvcmRcIiYmdFsxXS5zbGljZSgwLDIpPT09XCIvL1wiKXtsZXQgZT10LG49W10scixzO2Zvcig7dDspe2lmKC9cXHI/XFxuLy50ZXN0KHRbMV0pKXtpZigvWydcIl0uKlxccj9cXG4vLnRlc3QodFsxXSkpe24ucHVzaCh0WzFdLnN1YnN0cmluZygwLHRbMV0uaW5kZXhPZihgXG5gKSkpLHM9dFsxXS5zdWJzdHJpbmcodFsxXS5pbmRleE9mKGBcbmApKTtsZXQgbz10aGlzLmlucHV0LmNzcy52YWx1ZU9mKCkuc3Vic3RyaW5nKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpO3MrPW8scj10WzNdK28ubGVuZ3RoLXMubGVuZ3RofWVsc2UgdGhpcy50b2tlbml6ZXIuYmFjayh0KTticmVha31uLnB1c2godFsxXSkscj10WzJdLHQ9dGhpcy50b2tlbml6ZXIubmV4dFRva2VuKHtpZ25vcmVVbmNsb3NlZDohMH0pfWxldCBpPVtcImNvbW1lbnRcIixuLmpvaW4oXCJcIiksZVsyXSxyXTtyZXR1cm4gdGhpcy5pbmxpbmVDb21tZW50KGkpLHMmJih0aGlzLmlucHV0PW5ldyBEZihzKSx0aGlzLnRva2VuaXplcj1xZih0aGlzLmlucHV0KSksITB9ZWxzZSBpZih0WzFdPT09XCIvXCIpe2xldCBlPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbih7aWdub3JlVW5jbG9zZWQ6ITB9KTtpZihlWzBdPT09XCJjb21tZW50XCImJi9eXFwvXFwqLy50ZXN0KGVbMV0pKXJldHVybiBlWzBdPVwid29yZFwiLGVbMV09ZVsxXS5zbGljZSgxKSx0WzFdPVwiLy9cIix0aGlzLnRva2VuaXplci5iYWNrKGUpLFJuLmV4cG9ydHMuaXNJbmxpbmVDb21tZW50LmJpbmQodGhpcykodCl9cmV0dXJuITF9fX0pO3ZhciBxbz15KChGeCxJbyk9PntJby5leHBvcnRzPXtpbnRlcnBvbGF0aW9uKHQpe2xldCBlPVt0LHRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpXSxuPVtcIndvcmRcIixcIn1cIl07aWYoZVswXVsxXS5sZW5ndGg+MXx8ZVsxXVswXSE9PVwie1wiKXJldHVybiB0aGlzLnRva2VuaXplci5iYWNrKGVbMV0pLCExO2Zvcih0PXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpO3QmJm4uaW5jbHVkZXModFswXSk7KWUucHVzaCh0KSx0PXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpO2xldCByPWUubWFwKGE9PmFbMV0pLFtzXT1lLGk9ZS5wb3AoKSxvPVtcIndvcmRcIixyLmpvaW4oXCJcIiksc1syXSxpWzJdXTtyZXR1cm4gdGhpcy50b2tlbml6ZXIuYmFjayh0KSx0aGlzLnRva2VuaXplci5iYWNrKG8pLCEwfX19KTt2YXIgTG89eSgoJHgsRG8pPT57dmFyIExmPS9eI1swLTlhLWZBLUZdezZ9JHxeI1swLTlhLWZBLUZdezN9JC8sTWY9L1xcLlswLTldLyxCZj10PT57bGV0WyxlXT10LFtuXT1lO3JldHVybihuPT09XCIuXCJ8fG49PT1cIiNcIikmJkxmLnRlc3QoZSk9PT0hMSYmTWYudGVzdChlKT09PSExfTtEby5leHBvcnRzPXtpc01peGluVG9rZW46QmZ9fSk7dmFyIEJvPXkoKFV4LE1vKT0+e3ZhciBGZj1lcigpLCRmPS9edXJsXFwoKC4rKVxcKS87TW8uZXhwb3J0cz10PT57bGV0e25hbWU6ZSxwYXJhbXM6bj1cIlwifT10O2lmKGU9PT1cImltcG9ydFwiJiZuLmxlbmd0aCl7dC5pbXBvcnQ9ITA7bGV0IHI9RmYoe2NzczpufSk7Zm9yKHQuZmlsZW5hbWU9bi5yZXBsYWNlKCRmLFwiJDFcIik7IXIuZW5kT2ZGaWxlKCk7KXtsZXRbcyxpXT1yLm5leHRUb2tlbigpO2lmKHM9PT1cIndvcmRcIiYmaT09PVwidXJsXCIpcmV0dXJuO2lmKHM9PT1cImJyYWNrZXRzXCIpe3Qub3B0aW9ucz1pLHQuZmlsZW5hbWU9bi5yZXBsYWNlKGksXCJcIikudHJpbSgpO2JyZWFrfX19fX0pO3ZhciBXbz15KChXeCxVbyk9Pnt2YXIgRm89LzokLywkbz0vXjooXFxzKyk/LztVby5leHBvcnRzPXQ9PntsZXR7bmFtZTplLHBhcmFtczpuPVwiXCJ9PXQ7aWYodC5uYW1lLnNsaWNlKC0xKT09PVwiOlwiKXtpZihGby50ZXN0KGUpKXtsZXRbcl09ZS5tYXRjaChGbyk7dC5uYW1lPWUucmVwbGFjZShyLFwiXCIpLHQucmF3cy5hZnRlck5hbWU9cisodC5yYXdzLmFmdGVyTmFtZXx8XCJcIiksdC52YXJpYWJsZT0hMCx0LnZhbHVlPXQucGFyYW1zfWlmKCRvLnRlc3Qobikpe2xldFtyXT1uLm1hdGNoKCRvKTt0LnZhbHVlPW4ucmVwbGFjZShyLFwiXCIpLHQucmF3cy5hZnRlck5hbWU9KHQucmF3cy5hZnRlck5hbWV8fFwiXCIpK3IsdC52YXJpYWJsZT0hMH19fX0pO3ZhciBZbz15KChWeCxWbyk9Pnt2YXIgVWY9QWUoKSxXZj1ucigpLHtpc0lubGluZUNvbW1lbnQ6emZ9PVJvKCkse2ludGVycG9sYXRpb246em99PXFvKCkse2lzTWl4aW5Ub2tlbjpWZn09TG8oKSxZZj1CbygpLEdmPVdvKCksS2Y9LyghXFxzKmltcG9ydGFudCkkL2k7Vm8uZXhwb3J0cz1jbGFzcyBleHRlbmRzIFdme2NvbnN0cnVjdG9yKC4uLmUpe3N1cGVyKC4uLmUpLHRoaXMubGFzdE5vZGU9bnVsbH1hdHJ1bGUoZSl7em8uYmluZCh0aGlzKShlKXx8KHN1cGVyLmF0cnVsZShlKSxZZih0aGlzLmxhc3ROb2RlKSxHZih0aGlzLmxhc3ROb2RlKSl9ZGVjbCguLi5lKXtzdXBlci5kZWNsKC4uLmUpLC9leHRlbmRcXCguK1xcKS9pLnRlc3QodGhpcy5sYXN0Tm9kZS52YWx1ZSkmJih0aGlzLmxhc3ROb2RlLmV4dGVuZD0hMCl9ZWFjaChlKXtlWzBdWzFdPWAgJHtlWzBdWzFdfWA7bGV0IG49ZS5maW5kSW5kZXgoYT0+YVswXT09PVwiKFwiKSxyPWUucmV2ZXJzZSgpLmZpbmQoYT0+YVswXT09PVwiKVwiKSxzPWUucmV2ZXJzZSgpLmluZGV4T2Yociksbz1lLnNwbGljZShuLHMpLm1hcChhPT5hWzFdKS5qb2luKFwiXCIpO2ZvcihsZXQgYSBvZiBlLnJldmVyc2UoKSl0aGlzLnRva2VuaXplci5iYWNrKGEpO3RoaXMuYXRydWxlKHRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpKSx0aGlzLmxhc3ROb2RlLmZ1bmN0aW9uPSEwLHRoaXMubGFzdE5vZGUucGFyYW1zPW99aW5pdChlLG4scil7c3VwZXIuaW5pdChlLG4sciksdGhpcy5sYXN0Tm9kZT1lfWlubGluZUNvbW1lbnQoZSl7bGV0IG49bmV3IFVmLHI9ZVsxXS5zbGljZSgyKTtpZih0aGlzLmluaXQobixlWzJdKSxuLnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzNdfHxlWzJdKSxuLmlubGluZT0hMCxuLnJhd3MuYmVnaW49XCIvL1wiLC9eXFxzKiQvLnRlc3Qocikpbi50ZXh0PVwiXCIsbi5yYXdzLmxlZnQ9cixuLnJhd3MucmlnaHQ9XCJcIjtlbHNle2xldCBzPXIubWF0Y2goL14oXFxzKikoW15dKlteXFxzXSkoXFxzKikkLyk7WyxuLnJhd3MubGVmdCxuLnRleHQsbi5yYXdzLnJpZ2h0XT1zfX1taXhpbihlKXtsZXRbbl09ZSxyPW5bMV0uc2xpY2UoMCwxKSxzPWUuZmluZEluZGV4KGM9PmNbMF09PT1cImJyYWNrZXRzXCIpLGk9ZS5maW5kSW5kZXgoYz0+Y1swXT09PVwiKFwiKSxvPVwiXCI7aWYoKHM8MHx8cz4zKSYmaT4wKXtsZXQgYz1lLnJlZHVjZSgodyx2LE4pPT52WzBdPT09XCIpXCI/Tjp3KSxwPWUuc2xpY2UoaSxjK2kpLm1hcCh3PT53WzFdKS5qb2luKFwiXCIpLFtsXT1lLnNsaWNlKGkpLGc9W2xbMl0sbFszXV0sW3hdPWUuc2xpY2UoYyxjKzEpLGg9W3hbMl0seFszXV0sZD1bXCJicmFja2V0c1wiLHBdLmNvbmNhdChnLGgpLG09ZS5zbGljZSgwLGkpLGI9ZS5zbGljZShjKzEpO2U9bSxlLnB1c2goZCksZT1lLmNvbmNhdChiKX1sZXQgYT1bXTtmb3IobGV0IGMgb2YgZSlpZigoY1sxXT09PVwiIVwifHxhLmxlbmd0aCkmJmEucHVzaChjKSxjWzFdPT09XCJpbXBvcnRhbnRcIilicmVhaztpZihhLmxlbmd0aCl7bGV0W2NdPWEsZj1lLmluZGV4T2YoYykscD1hW2EubGVuZ3RoLTFdLGw9W2NbMl0sY1szXV0sZz1bcFs0XSxwWzVdXSxoPVtcIndvcmRcIixhLm1hcChkPT5kWzFdKS5qb2luKFwiXCIpXS5jb25jYXQobCxnKTtlLnNwbGljZShmLGEubGVuZ3RoLGgpfWxldCB1PWUuZmluZEluZGV4KGM9PktmLnRlc3QoY1sxXSkpO3U+MCYmKFssb109ZVt1XSxlLnNwbGljZSh1LDEpKTtmb3IobGV0IGMgb2YgZS5yZXZlcnNlKCkpdGhpcy50b2tlbml6ZXIuYmFjayhjKTt0aGlzLmF0cnVsZSh0aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSksdGhpcy5sYXN0Tm9kZS5taXhpbj0hMCx0aGlzLmxhc3ROb2RlLnJhd3MuaWRlbnRpZmllcj1yLG8mJih0aGlzLmxhc3ROb2RlLmltcG9ydGFudD0hMCx0aGlzLmxhc3ROb2RlLnJhd3MuaW1wb3J0YW50PW8pfW90aGVyKGUpe3pmLmJpbmQodGhpcykoZSl8fHN1cGVyLm90aGVyKGUpfXJ1bGUoZSl7bGV0IG49ZVtlLmxlbmd0aC0xXSxyPWVbZS5sZW5ndGgtMl07aWYoclswXT09PVwiYXQtd29yZFwiJiZuWzBdPT09XCJ7XCImJih0aGlzLnRva2VuaXplci5iYWNrKG4pLHpvLmJpbmQodGhpcykocikpKXtsZXQgaT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKTtlPWUuc2xpY2UoMCxlLmxlbmd0aC0yKS5jb25jYXQoW2ldKTtmb3IobGV0IG8gb2YgZS5yZXZlcnNlKCkpdGhpcy50b2tlbml6ZXIuYmFjayhvKTtyZXR1cm59c3VwZXIucnVsZShlKSwvOmV4dGVuZFxcKC4rXFwpL2kudGVzdCh0aGlzLmxhc3ROb2RlLnNlbGVjdG9yKSYmKHRoaXMubGFzdE5vZGUuZXh0ZW5kPSEwKX11bmtub3duV29yZChlKXtsZXRbbl09ZTtpZihlWzBdWzFdPT09XCJlYWNoXCImJmVbMV1bMF09PT1cIihcIil7dGhpcy5lYWNoKGUpO3JldHVybn1pZihWZihuKSl7dGhpcy5taXhpbihlKTtyZXR1cm59c3VwZXIudW5rbm93bldvcmQoZSl9fX0pO3ZhciBLbz15KChHeCxHbyk9Pnt2YXIgSGY9WXQoKTtHby5leHBvcnRzPWNsYXNzIGV4dGVuZHMgSGZ7YXRydWxlKGUsbil7aWYoIWUubWl4aW4mJiFlLnZhcmlhYmxlJiYhZS5mdW5jdGlvbil7c3VwZXIuYXRydWxlKGUsbik7cmV0dXJufWxldCBzPWAke2UuZnVuY3Rpb24/XCJcIjplLnJhd3MuaWRlbnRpZmllcnx8XCJAXCJ9JHtlLm5hbWV9YCxpPWUucGFyYW1zP3RoaXMucmF3VmFsdWUoZSxcInBhcmFtc1wiKTpcIlwiLG89ZS5yYXdzLmltcG9ydGFudHx8XCJcIjtpZihlLnZhcmlhYmxlJiYoaT1lLnZhbHVlKSx0eXBlb2YgZS5yYXdzLmFmdGVyTmFtZTxcInVcIj9zKz1lLnJhd3MuYWZ0ZXJOYW1lOmkmJihzKz1cIiBcIiksZS5ub2Rlcyl0aGlzLmJsb2NrKGUscytpK28pO2Vsc2V7bGV0IGE9KGUucmF3cy5iZXR3ZWVufHxcIlwiKStvKyhuP1wiO1wiOlwiXCIpO3RoaXMuYnVpbGRlcihzK2krYSxlKX19Y29tbWVudChlKXtpZihlLmlubGluZSl7bGV0IG49dGhpcy5yYXcoZSxcImxlZnRcIixcImNvbW1lbnRMZWZ0XCIpLHI9dGhpcy5yYXcoZSxcInJpZ2h0XCIsXCJjb21tZW50UmlnaHRcIik7dGhpcy5idWlsZGVyKGAvLyR7bn0ke2UudGV4dH0ke3J9YCxlKX1lbHNlIHN1cGVyLmNvbW1lbnQoZSl9fX0pO3ZhciBIbz15KChLeCxJbik9Pnt2YXIgUWY9cWUoKSxqZj1ZbygpLEpmPUtvKCk7SW4uZXhwb3J0cz17cGFyc2UodCxlKXtsZXQgbj1uZXcgUWYodCxlKSxyPW5ldyBqZihuKTtyZXR1cm4gci5wYXJzZSgpLHIucm9vdC53YWxrKHM9PntsZXQgaT1uLmNzcy5sYXN0SW5kZXhPZihzLnNvdXJjZS5pbnB1dC5jc3MpO2lmKGk9PT0wKXJldHVybjtpZihpK3Muc291cmNlLmlucHV0LmNzcy5sZW5ndGghPT1uLmNzcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzdGF0ZSBkZXRlY3RlZCBpbiBwb3N0Y3NzLWxlc3NcIik7bGV0IG89aStzLnNvdXJjZS5zdGFydC5vZmZzZXQsYT1uLmZyb21PZmZzZXQoaStzLnNvdXJjZS5zdGFydC5vZmZzZXQpO2lmKHMuc291cmNlLnN0YXJ0PXtvZmZzZXQ6byxsaW5lOmEubGluZSxjb2x1bW46YS5jb2x9LHMuc291cmNlLmVuZCl7bGV0IHU9aStzLnNvdXJjZS5lbmQub2Zmc2V0LGM9bi5mcm9tT2Zmc2V0KGkrcy5zb3VyY2UuZW5kLm9mZnNldCk7cy5zb3VyY2UuZW5kPXtvZmZzZXQ6dSxsaW5lOmMubGluZSxjb2x1bW46Yy5jb2x9fX0pLHIucm9vdH0sc3RyaW5naWZ5KHQsZSl7bmV3IEpmKGUpLnN0cmluZ2lmeSh0KX0sbm9kZVRvU3RyaW5nKHQpe2xldCBlPVwiXCI7cmV0dXJuIEluLmV4cG9ydHMuc3RyaW5naWZ5KHQsbj0+e2UrPW59KSxlfX19KTt2YXIgcW49eSgoSHgsUW8pPT57UW8uZXhwb3J0cz1jbGFzc3tnZW5lcmF0ZSgpe319fSk7dmFyIG9yPXkoKGp4LFhvKT0+e1widXNlIHN0cmljdFwiO3ZhciBYZj1zZSgpLGpvLEpvLHllPWNsYXNzIGV4dGVuZHMgWGZ7Y29uc3RydWN0b3IoZSl7c3VwZXIoe3R5cGU6XCJkb2N1bWVudFwiLC4uLmV9KSx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9dG9SZXN1bHQoZT17fSl7cmV0dXJuIG5ldyBqbyhuZXcgSm8sdGhpcyxlKS5zdHJpbmdpZnkoKX19O3llLnJlZ2lzdGVyTGF6eVJlc3VsdD10PT57am89dH07eWUucmVnaXN0ZXJQcm9jZXNzb3I9dD0+e0pvPXR9O1hvLmV4cG9ydHM9eWU7eWUuZGVmYXVsdD15ZX0pO3ZhciBEbj15KChKeCxlYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgWm89e307ZWEuZXhwb3J0cz1mdW5jdGlvbihlKXtab1tlXXx8KFpvW2VdPSEwLHR5cGVvZiBjb25zb2xlPFwidVwiJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihlKSl9fSk7dmFyIExuPXkoKFh4LHRhKT0+e1widXNlIHN0cmljdFwiO3ZhciBtdD1jbGFzc3tjb25zdHJ1Y3RvcihlLG49e30pe2lmKHRoaXMudHlwZT1cIndhcm5pbmdcIix0aGlzLnRleHQ9ZSxuLm5vZGUmJm4ubm9kZS5zb3VyY2Upe2xldCByPW4ubm9kZS5yYW5nZUJ5KG4pO3RoaXMubGluZT1yLnN0YXJ0LmxpbmUsdGhpcy5jb2x1bW49ci5zdGFydC5jb2x1bW4sdGhpcy5lbmRMaW5lPXIuZW5kLmxpbmUsdGhpcy5lbmRDb2x1bW49ci5lbmQuY29sdW1ufWZvcihsZXQgciBpbiBuKXRoaXNbcl09bltyXX10b1N0cmluZygpe3JldHVybiB0aGlzLm5vZGU/dGhpcy5ub2RlLmVycm9yKHRoaXMudGV4dCx7aW5kZXg6dGhpcy5pbmRleCxwbHVnaW46dGhpcy5wbHVnaW4sd29yZDp0aGlzLndvcmR9KS5tZXNzYWdlOnRoaXMucGx1Z2luP3RoaXMucGx1Z2luK1wiOiBcIit0aGlzLnRleHQ6dGhpcy50ZXh0fX07dGEuZXhwb3J0cz1tdDttdC5kZWZhdWx0PW10fSk7dmFyIGFyPXkoKFp4LHJhKT0+e1widXNlIHN0cmljdFwiO3ZhciBaZj1MbigpLHl0PWNsYXNze2NvbnN0cnVjdG9yKGUsbixyKXt0aGlzLnByb2Nlc3Nvcj1lLHRoaXMubWVzc2FnZXM9W10sdGhpcy5yb290PW4sdGhpcy5vcHRzPXIsdGhpcy5jc3M9dm9pZCAwLHRoaXMubWFwPXZvaWQgMH1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc310b1N0cmluZygpe3JldHVybiB0aGlzLmNzc313YXJuKGUsbj17fSl7bi5wbHVnaW58fHRoaXMubGFzdFBsdWdpbiYmdGhpcy5sYXN0UGx1Z2luLnBvc3Rjc3NQbHVnaW4mJihuLnBsdWdpbj10aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbik7bGV0IHI9bmV3IFpmKGUsbik7cmV0dXJuIHRoaXMubWVzc2FnZXMucHVzaChyKSxyfXdhcm5pbmdzKCl7cmV0dXJuIHRoaXMubWVzc2FnZXMuZmlsdGVyKGU9PmUudHlwZT09PVwid2FybmluZ1wiKX19O3JhLmV4cG9ydHM9eXQ7eXQuZGVmYXVsdD15dH0pO3ZhciBGbj15KCh0YixvYSk9PntcInVzZSBzdHJpY3RcIjt2YXJ7aXNDbGVhbjpLLG15OmVwfT16dCgpLHRwPXFuKCkscnA9b3QoKSxucD1zZSgpLHNwPW9yKCksZWI9RG4oKSxuYT1hcigpLGlwPWR0KCksb3A9UGUoKSxhcD17YXRydWxlOlwiQXRSdWxlXCIsY29tbWVudDpcIkNvbW1lbnRcIixkZWNsOlwiRGVjbGFyYXRpb25cIixkb2N1bWVudDpcIkRvY3VtZW50XCIscm9vdDpcIlJvb3RcIixydWxlOlwiUnVsZVwifSx1cD17QXRSdWxlOiEwLEF0UnVsZUV4aXQ6ITAsQ29tbWVudDohMCxDb21tZW50RXhpdDohMCxEZWNsYXJhdGlvbjohMCxEZWNsYXJhdGlvbkV4aXQ6ITAsRG9jdW1lbnQ6ITAsRG9jdW1lbnRFeGl0OiEwLE9uY2U6ITAsT25jZUV4aXQ6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwLFJvb3Q6ITAsUm9vdEV4aXQ6ITAsUnVsZTohMCxSdWxlRXhpdDohMH0sbHA9e09uY2U6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwfSxEZT0wO2Z1bmN0aW9uIGd0KHQpe3JldHVybiB0eXBlb2YgdD09XCJvYmplY3RcIiYmdHlwZW9mIHQudGhlbj09XCJmdW5jdGlvblwifWZ1bmN0aW9uIGlhKHQpe2xldCBlPSExLG49YXBbdC50eXBlXTtyZXR1cm4gdC50eXBlPT09XCJkZWNsXCI/ZT10LnByb3AudG9Mb3dlckNhc2UoKTp0LnR5cGU9PT1cImF0cnVsZVwiJiYoZT10Lm5hbWUudG9Mb3dlckNhc2UoKSksZSYmdC5hcHBlbmQ/W24sbitcIi1cIitlLERlLG4rXCJFeGl0XCIsbitcIkV4aXQtXCIrZV06ZT9bbixuK1wiLVwiK2UsbitcIkV4aXRcIixuK1wiRXhpdC1cIitlXTp0LmFwcGVuZD9bbixEZSxuK1wiRXhpdFwiXTpbbixuK1wiRXhpdFwiXX1mdW5jdGlvbiBzYSh0KXtsZXQgZTtyZXR1cm4gdC50eXBlPT09XCJkb2N1bWVudFwiP2U9W1wiRG9jdW1lbnRcIixEZSxcIkRvY3VtZW50RXhpdFwiXTp0LnR5cGU9PT1cInJvb3RcIj9lPVtcIlJvb3RcIixEZSxcIlJvb3RFeGl0XCJdOmU9aWEodCkse2V2ZW50SW5kZXg6MCxldmVudHM6ZSxpdGVyYXRvcjowLG5vZGU6dCx2aXNpdG9ySW5kZXg6MCx2aXNpdG9yczpbXX19ZnVuY3Rpb24gTW4odCl7cmV0dXJuIHRbS109ITEsdC5ub2RlcyYmdC5ub2Rlcy5mb3JFYWNoKGU9Pk1uKGUpKSx0fXZhciBCbj17fSxvZT1jbGFzcyB0e2NvbnN0cnVjdG9yKGUsbixyKXt0aGlzLnN0cmluZ2lmaWVkPSExLHRoaXMucHJvY2Vzc2VkPSExO2xldCBzO2lmKHR5cGVvZiBuPT1cIm9iamVjdFwiJiZuIT09bnVsbCYmKG4udHlwZT09PVwicm9vdFwifHxuLnR5cGU9PT1cImRvY3VtZW50XCIpKXM9TW4obik7ZWxzZSBpZihuIGluc3RhbmNlb2YgdHx8biBpbnN0YW5jZW9mIG5hKXM9TW4obi5yb290KSxuLm1hcCYmKHR5cGVvZiByLm1hcD5cInVcIiYmKHIubWFwPXt9KSxyLm1hcC5pbmxpbmV8fChyLm1hcC5pbmxpbmU9ITEpLHIubWFwLnByZXY9bi5tYXApO2Vsc2V7bGV0IGk9aXA7ci5zeW50YXgmJihpPXIuc3ludGF4LnBhcnNlKSxyLnBhcnNlciYmKGk9ci5wYXJzZXIpLGkucGFyc2UmJihpPWkucGFyc2UpO3RyeXtzPWkobixyKX1jYXRjaChvKXt0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLmVycm9yPW99cyYmIXNbZXBdJiZucC5yZWJ1aWxkKHMpfXRoaXMucmVzdWx0PW5ldyBuYShlLHMsciksdGhpcy5oZWxwZXJzPXsuLi5Cbixwb3N0Y3NzOkJuLHJlc3VsdDp0aGlzLnJlc3VsdH0sdGhpcy5wbHVnaW5zPXRoaXMucHJvY2Vzc29yLnBsdWdpbnMubWFwKGk9PnR5cGVvZiBpPT1cIm9iamVjdFwiJiZpLnByZXBhcmU/ey4uLmksLi4uaS5wcmVwYXJlKHRoaXMucmVzdWx0KX06aSl9YXN5bmMoKXtyZXR1cm4gdGhpcy5lcnJvcj9Qcm9taXNlLnJlamVjdCh0aGlzLmVycm9yKTp0aGlzLnByb2Nlc3NlZD9Qcm9taXNlLnJlc29sdmUodGhpcy5yZXN1bHQpOih0aGlzLnByb2Nlc3Npbmd8fCh0aGlzLnByb2Nlc3Npbmc9dGhpcy5ydW5Bc3luYygpKSx0aGlzLnByb2Nlc3NpbmcpfWNhdGNoKGUpe3JldHVybiB0aGlzLmFzeW5jKCkuY2F0Y2goZSl9Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jb250ZW50fWdldCBjc3MoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jc3N9ZmluYWxseShlKXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSxlKX1nZXRBc3luY0Vycm9yKCl7dGhyb3cgbmV3IEVycm9yKFwiVXNlIHByb2Nlc3MoY3NzKS50aGVuKGNiKSB0byB3b3JrIHdpdGggYXN5bmMgcGx1Z2luc1wiKX1oYW5kbGVFcnJvcihlLG4pe2xldCByPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e24mJm4uYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lPT09XCJDc3NTeW50YXhFcnJvclwiJiYhZS5wbHVnaW4/KGUucGx1Z2luPXIucG9zdGNzc1BsdWdpbixlLnNldE1lc3NhZ2UoKSk6ci5wb3N0Y3NzVmVyc2lvbn1jYXRjaChzKXtjb25zb2xlJiZjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKHMpfXJldHVybiBlfWdldCBtYXAoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5tYXB9Z2V0IG1lc3NhZ2VzKCl7cmV0dXJuIHRoaXMuc3luYygpLm1lc3NhZ2VzfWdldCBvcHRzKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm9wdHN9cHJlcGFyZVZpc2l0b3JzKCl7dGhpcy5saXN0ZW5lcnM9e307bGV0IGU9KG4scixzKT0+e3RoaXMubGlzdGVuZXJzW3JdfHwodGhpcy5saXN0ZW5lcnNbcl09W10pLHRoaXMubGlzdGVuZXJzW3JdLnB1c2goW24sc10pfTtmb3IobGV0IG4gb2YgdGhpcy5wbHVnaW5zKWlmKHR5cGVvZiBuPT1cIm9iamVjdFwiKWZvcihsZXQgciBpbiBuKXtpZighdXBbcl0mJi9eW0EtWl0vLnRlc3QocikpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGV2ZW50ICR7cn0gaW4gJHtuLnBvc3Rjc3NQbHVnaW59LiBUcnkgdG8gdXBkYXRlIFBvc3RDU1MgKCR7dGhpcy5wcm9jZXNzb3IudmVyc2lvbn0gbm93KS5gKTtpZighbHBbcl0paWYodHlwZW9mIG5bcl09PVwib2JqZWN0XCIpZm9yKGxldCBzIGluIG5bcl0pcz09PVwiKlwiP2UobixyLG5bcl1bc10pOmUobixyK1wiLVwiK3MudG9Mb3dlckNhc2UoKSxuW3JdW3NdKTtlbHNlIHR5cGVvZiBuW3JdPT1cImZ1bmN0aW9uXCImJmUobixyLG5bcl0pfXRoaXMuaGFzTGlzdGVuZXI9T2JqZWN0LmtleXModGhpcy5saXN0ZW5lcnMpLmxlbmd0aD4wfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7cmV0dXJuIHRoaXMuc3luYygpLnJvb3R9YXN5bmMgcnVuQXN5bmMoKXt0aGlzLnBsdWdpbj0wO2ZvcihsZXQgZT0wO2U8dGhpcy5wbHVnaW5zLmxlbmd0aDtlKyspe2xldCBuPXRoaXMucGx1Z2luc1tlXSxyPXRoaXMucnVuT25Sb290KG4pO2lmKGd0KHIpKXRyeXthd2FpdCByfWNhdGNoKHMpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3Iocyl9fWlmKHRoaXMucHJlcGFyZVZpc2l0b3JzKCksdGhpcy5oYXNMaXN0ZW5lcil7bGV0IGU9dGhpcy5yZXN1bHQucm9vdDtmb3IoOyFlW0tdOyl7ZVtLXT0hMDtsZXQgbj1bc2EoZSldO2Zvcig7bi5sZW5ndGg+MDspe2xldCByPXRoaXMudmlzaXRUaWNrKG4pO2lmKGd0KHIpKXRyeXthd2FpdCByfWNhdGNoKHMpe2xldCBpPW5bbi5sZW5ndGgtMV0ubm9kZTt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKHMsaSl9fX1pZih0aGlzLmxpc3RlbmVycy5PbmNlRXhpdClmb3IobGV0W24scl1vZiB0aGlzLmxpc3RlbmVycy5PbmNlRXhpdCl7dGhpcy5yZXN1bHQubGFzdFBsdWdpbj1uO3RyeXtpZihlLnR5cGU9PT1cImRvY3VtZW50XCIpe2xldCBzPWUubm9kZXMubWFwKGk9PnIoaSx0aGlzLmhlbHBlcnMpKTthd2FpdCBQcm9taXNlLmFsbChzKX1lbHNlIGF3YWl0IHIoZSx0aGlzLmhlbHBlcnMpfWNhdGNoKHMpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3Iocyl9fX1yZXR1cm4gdGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5zdHJpbmdpZnkoKX1ydW5PblJvb3QoZSl7dGhpcy5yZXN1bHQubGFzdFBsdWdpbj1lO3RyeXtpZih0eXBlb2YgZT09XCJvYmplY3RcIiYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT1cImRvY3VtZW50XCIpe2xldCBuPXRoaXMucmVzdWx0LnJvb3Qubm9kZXMubWFwKHI9PmUuT25jZShyLHRoaXMuaGVscGVycykpO3JldHVybiBndChuWzBdKT9Qcm9taXNlLmFsbChuKTpufXJldHVybiBlLk9uY2UodGhpcy5yZXN1bHQucm9vdCx0aGlzLmhlbHBlcnMpfWVsc2UgaWYodHlwZW9mIGU9PVwiZnVuY3Rpb25cIilyZXR1cm4gZSh0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0KX1jYXRjaChuKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKG4pfX1zdHJpbmdpZnkoKXtpZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7aWYodGhpcy5zdHJpbmdpZmllZClyZXR1cm4gdGhpcy5yZXN1bHQ7dGhpcy5zdHJpbmdpZmllZD0hMCx0aGlzLnN5bmMoKTtsZXQgZT10aGlzLnJlc3VsdC5vcHRzLG49cnA7ZS5zeW50YXgmJihuPWUuc3ludGF4LnN0cmluZ2lmeSksZS5zdHJpbmdpZmllciYmKG49ZS5zdHJpbmdpZmllciksbi5zdHJpbmdpZnkmJihuPW4uc3RyaW5naWZ5KTtsZXQgcz1uZXcgdHAobix0aGlzLnJlc3VsdC5yb290LHRoaXMucmVzdWx0Lm9wdHMpLmdlbmVyYXRlKCk7cmV0dXJuIHRoaXMucmVzdWx0LmNzcz1zWzBdLHRoaXMucmVzdWx0Lm1hcD1zWzFdLHRoaXMucmVzdWx0fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuXCJMYXp5UmVzdWx0XCJ9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnByb2Nlc3NlZClyZXR1cm4gdGhpcy5yZXN1bHQ7aWYodGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5wcm9jZXNzaW5nKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpO2ZvcihsZXQgZSBvZiB0aGlzLnBsdWdpbnMpe2xldCBuPXRoaXMucnVuT25Sb290KGUpO2lmKGd0KG4pKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfWlmKHRoaXMucHJlcGFyZVZpc2l0b3JzKCksdGhpcy5oYXNMaXN0ZW5lcil7bGV0IGU9dGhpcy5yZXN1bHQucm9vdDtmb3IoOyFlW0tdOyllW0tdPSEwLHRoaXMud2Fsa1N5bmMoZSk7aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpaWYoZS50eXBlPT09XCJkb2N1bWVudFwiKWZvcihsZXQgbiBvZiBlLm5vZGVzKXRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LG4pO2Vsc2UgdGhpcy52aXNpdFN5bmModGhpcy5saXN0ZW5lcnMuT25jZUV4aXQsZSl9cmV0dXJuIHRoaXMucmVzdWx0fXRoZW4oZSxuKXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSxuKX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc312aXNpdFN5bmMoZSxuKXtmb3IobGV0W3Isc11vZiBlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPXI7bGV0IGk7dHJ5e2k9cyhuLHRoaXMuaGVscGVycyl9Y2F0Y2gobyl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihvLG4ucHJveHlPZil9aWYobi50eXBlIT09XCJyb290XCImJm4udHlwZSE9PVwiZG9jdW1lbnRcIiYmIW4ucGFyZW50KXJldHVybiEwO2lmKGd0KGkpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfX12aXNpdFRpY2soZSl7bGV0IG49ZVtlLmxlbmd0aC0xXSx7bm9kZTpyLHZpc2l0b3JzOnN9PW47aWYoci50eXBlIT09XCJyb290XCImJnIudHlwZSE9PVwiZG9jdW1lbnRcIiYmIXIucGFyZW50KXtlLnBvcCgpO3JldHVybn1pZihzLmxlbmd0aD4wJiZuLnZpc2l0b3JJbmRleDxzLmxlbmd0aCl7bGV0W28sYV09c1tuLnZpc2l0b3JJbmRleF07bi52aXNpdG9ySW5kZXgrPTEsbi52aXNpdG9ySW5kZXg9PT1zLmxlbmd0aCYmKG4udmlzaXRvcnM9W10sbi52aXNpdG9ySW5kZXg9MCksdGhpcy5yZXN1bHQubGFzdFBsdWdpbj1vO3RyeXtyZXR1cm4gYShyLnRvUHJveHkoKSx0aGlzLmhlbHBlcnMpfWNhdGNoKHUpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IodSxyKX19aWYobi5pdGVyYXRvciE9PTApe2xldCBvPW4uaXRlcmF0b3IsYTtmb3IoO2E9ci5ub2Rlc1tyLmluZGV4ZXNbb11dOylpZihyLmluZGV4ZXNbb10rPTEsIWFbS10pe2FbS109ITAsZS5wdXNoKHNhKGEpKTtyZXR1cm59bi5pdGVyYXRvcj0wLGRlbGV0ZSByLmluZGV4ZXNbb119bGV0IGk9bi5ldmVudHM7Zm9yKDtuLmV2ZW50SW5kZXg8aS5sZW5ndGg7KXtsZXQgbz1pW24uZXZlbnRJbmRleF07aWYobi5ldmVudEluZGV4Kz0xLG89PT1EZSl7ci5ub2RlcyYmci5ub2Rlcy5sZW5ndGgmJihyW0tdPSEwLG4uaXRlcmF0b3I9ci5nZXRJdGVyYXRvcigpKTtyZXR1cm59ZWxzZSBpZih0aGlzLmxpc3RlbmVyc1tvXSl7bi52aXNpdG9ycz10aGlzLmxpc3RlbmVyc1tvXTtyZXR1cm59fWUucG9wKCl9d2Fsa1N5bmMoZSl7ZVtLXT0hMDtsZXQgbj1pYShlKTtmb3IobGV0IHIgb2YgbilpZihyPT09RGUpZS5ub2RlcyYmZS5lYWNoKHM9PntzW0tdfHx0aGlzLndhbGtTeW5jKHMpfSk7ZWxzZXtsZXQgcz10aGlzLmxpc3RlbmVyc1tyXTtpZihzJiZ0aGlzLnZpc2l0U3luYyhzLGUudG9Qcm94eSgpKSlyZXR1cm59fXdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuc3luYygpLndhcm5pbmdzKCl9fTtvZS5yZWdpc3RlclBvc3Rjc3M9dD0+e0JuPXR9O29hLmV4cG9ydHM9b2U7b2UuZGVmYXVsdD1vZTtvcC5yZWdpc3RlckxhenlSZXN1bHQob2UpO3NwLnJlZ2lzdGVyTGF6eVJlc3VsdChvZSl9KTt2YXIgdWE9eSgobmIsYWEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGNwPXFuKCksZnA9b3QoKSxyYj1EbigpLHBwPWR0KCksaHA9YXIoKSx3dD1jbGFzc3tjb25zdHJ1Y3RvcihlLG4scil7bj1uLnRvU3RyaW5nKCksdGhpcy5zdHJpbmdpZmllZD0hMSx0aGlzLl9wcm9jZXNzb3I9ZSx0aGlzLl9jc3M9bix0aGlzLl9vcHRzPXIsdGhpcy5fbWFwPXZvaWQgMDtsZXQgcyxpPWZwO3RoaXMucmVzdWx0PW5ldyBocCh0aGlzLl9wcm9jZXNzb3Iscyx0aGlzLl9vcHRzKSx0aGlzLnJlc3VsdC5jc3M9bjtsZXQgbz10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnJlc3VsdCxcInJvb3RcIix7Z2V0KCl7cmV0dXJuIG8ucm9vdH19KTtsZXQgYT1uZXcgY3AoaSxzLHRoaXMuX29wdHMsbik7aWYoYS5pc01hcCgpKXtsZXRbdSxjXT1hLmdlbmVyYXRlKCk7dSYmKHRoaXMucmVzdWx0LmNzcz11KSxjJiYodGhpcy5yZXN1bHQubWFwPWMpfX1hc3luYygpe3JldHVybiB0aGlzLmVycm9yP1Byb21pc2UucmVqZWN0KHRoaXMuZXJyb3IpOlByb21pc2UucmVzb2x2ZSh0aGlzLnJlc3VsdCl9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS5jYXRjaChlKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLnJlc3VsdC5jc3N9Z2V0IGNzcygpe3JldHVybiB0aGlzLnJlc3VsdC5jc3N9ZmluYWxseShlKXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSxlKX1nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSxuPXBwO3RyeXtlPW4odGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKHIpe3RoaXMuZXJyb3I9cn1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuXCJOb1dvcmtSZXN1bHRcIn1zeW5jKCl7aWYodGhpcy5lcnJvcil0aHJvdyB0aGlzLmVycm9yO3JldHVybiB0aGlzLnJlc3VsdH10aGVuKGUsbil7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsbil9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5fY3NzfXdhcm5pbmdzKCl7cmV0dXJuW119fTthYS5leHBvcnRzPXd0O3d0LmRlZmF1bHQ9d3R9KTt2YXIgY2E9eSgoc2IsbGEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGRwPXVhKCksbXA9Rm4oKSx5cD1vcigpLGdwPVBlKCksZ2U9Y2xhc3N7Y29uc3RydWN0b3IoZT1bXSl7dGhpcy52ZXJzaW9uPVwiOC40LjI4XCIsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgbj1bXTtmb3IobGV0IHIgb2YgZSlpZihyLnBvc3Rjc3M9PT0hMD9yPXIoKTpyLnBvc3Rjc3MmJihyPXIucG9zdGNzcyksdHlwZW9mIHI9PVwib2JqZWN0XCImJkFycmF5LmlzQXJyYXkoci5wbHVnaW5zKSluPW4uY29uY2F0KHIucGx1Z2lucyk7ZWxzZSBpZih0eXBlb2Ygcj09XCJvYmplY3RcIiYmci5wb3N0Y3NzUGx1Z2luKW4ucHVzaChyKTtlbHNlIGlmKHR5cGVvZiByPT1cImZ1bmN0aW9uXCIpbi5wdXNoKHIpO2Vsc2UgaWYoISh0eXBlb2Ygcj09XCJvYmplY3RcIiYmKHIucGFyc2V8fHIuc3RyaW5naWZ5KSkpdGhyb3cgbmV3IEVycm9yKHIrXCIgaXMgbm90IGEgUG9zdENTUyBwbHVnaW5cIik7cmV0dXJuIG59cHJvY2VzcyhlLG49e30pe3JldHVybiB0aGlzLnBsdWdpbnMubGVuZ3RoPT09MCYmdHlwZW9mIG4ucGFyc2VyPlwidVwiJiZ0eXBlb2Ygbi5zdHJpbmdpZmllcj5cInVcIiYmdHlwZW9mIG4uc3ludGF4PlwidVwiP25ldyBkcCh0aGlzLGUsbik6bmV3IG1wKHRoaXMsZSxuKX11c2UoZSl7cmV0dXJuIHRoaXMucGx1Z2lucz10aGlzLnBsdWdpbnMuY29uY2F0KHRoaXMubm9ybWFsaXplKFtlXSkpLHRoaXN9fTtsYS5leHBvcnRzPWdlO2dlLmRlZmF1bHQ9Z2U7Z3AucmVnaXN0ZXJQcm9jZXNzb3IoZ2UpO3lwLnJlZ2lzdGVyUHJvY2Vzc29yKGdlKX0pO3ZhciBwYT15KChpYixmYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgd3A9Y3QoKSx2cD1DbigpLHhwPUFlKCksYnA9dHIoKSxrcD1xZSgpLF9wPVBlKCksVHA9cnIoKTtmdW5jdGlvbiB2dCh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQubWFwKHM9PnZ0KHMpKTtsZXR7aW5wdXRzOm4sLi4ucn09dDtpZihuKXtlPVtdO2ZvcihsZXQgcyBvZiBuKXtsZXQgaT17Li4ucyxfX3Byb3RvX186a3AucHJvdG90eXBlfTtpLm1hcCYmKGkubWFwPXsuLi5pLm1hcCxfX3Byb3RvX186dnAucHJvdG90eXBlfSksZS5wdXNoKGkpfX1pZihyLm5vZGVzJiYoci5ub2Rlcz10Lm5vZGVzLm1hcChzPT52dChzLGUpKSksci5zb3VyY2Upe2xldHtpbnB1dElkOnMsLi4uaX09ci5zb3VyY2U7ci5zb3VyY2U9aSxzIT1udWxsJiYoci5zb3VyY2UuaW5wdXQ9ZVtzXSl9aWYoci50eXBlPT09XCJyb290XCIpcmV0dXJuIG5ldyBfcChyKTtpZihyLnR5cGU9PT1cImRlY2xcIilyZXR1cm4gbmV3IHdwKHIpO2lmKHIudHlwZT09PVwicnVsZVwiKXJldHVybiBuZXcgVHAocik7aWYoci50eXBlPT09XCJjb21tZW50XCIpcmV0dXJuIG5ldyB4cChyKTtpZihyLnR5cGU9PT1cImF0cnVsZVwiKXJldHVybiBuZXcgYnAocik7dGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBub2RlIHR5cGU6IFwiK3QudHlwZSl9ZmEuZXhwb3J0cz12dDt2dC5kZWZhdWx0PXZ0fSk7dmFyIHVyPXkoKG9iLHZhKT0+e1widXNlIHN0cmljdFwiO3ZhciBFcD1WdCgpLGhhPWN0KCksU3A9Rm4oKSxDcD1zZSgpLCRuPWNhKCksT3A9b3QoKSxBcD1wYSgpLGRhPW9yKCksTnA9TG4oKSxtYT1BZSgpLHlhPXRyKCksUHA9YXIoKSxScD1xZSgpLElwPWR0KCkscXA9RW4oKSxnYT1ycigpLHdhPVBlKCksRHA9dXQoKTtmdW5jdGlvbiBrKC4uLnQpe3JldHVybiB0Lmxlbmd0aD09PTEmJkFycmF5LmlzQXJyYXkodFswXSkmJih0PXRbMF0pLG5ldyAkbih0KX1rLnBsdWdpbj1mdW5jdGlvbihlLG4pe2xldCByPSExO2Z1bmN0aW9uIHMoLi4ubyl7Y29uc29sZSYmY29uc29sZS53YXJuJiYhciYmKHI9ITAsY29uc29sZS53YXJuKGUrYDogcG9zdGNzcy5wbHVnaW4gd2FzIGRlcHJlY2F0ZWQuIE1pZ3JhdGlvbiBndWlkZTpcbmh0dHBzOi8vZXZpbG1hcnRpYW5zLmNvbS9jaHJvbmljbGVzL3Bvc3Rjc3MtOC1wbHVnaW4tbWlncmF0aW9uYCkpO2xldCBhPW4oLi4ubyk7cmV0dXJuIGEucG9zdGNzc1BsdWdpbj1lLGEucG9zdGNzc1ZlcnNpb249bmV3ICRuKCkudmVyc2lvbixhfWxldCBpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocyxcInBvc3Rjc3NcIix7Z2V0KCl7cmV0dXJuIGl8fChpPXMoKSksaX19KSxzLnByb2Nlc3M9ZnVuY3Rpb24obyxhLHUpe3JldHVybiBrKFtzKHUpXSkucHJvY2VzcyhvLGEpfSxzfTtrLnN0cmluZ2lmeT1PcDtrLnBhcnNlPUlwO2suZnJvbUpTT049QXA7ay5saXN0PXFwO2suY29tbWVudD10PT5uZXcgbWEodCk7ay5hdFJ1bGU9dD0+bmV3IHlhKHQpO2suZGVjbD10PT5uZXcgaGEodCk7ay5ydWxlPXQ9Pm5ldyBnYSh0KTtrLnJvb3Q9dD0+bmV3IHdhKHQpO2suZG9jdW1lbnQ9dD0+bmV3IGRhKHQpO2suQ3NzU3ludGF4RXJyb3I9RXA7ay5EZWNsYXJhdGlvbj1oYTtrLkNvbnRhaW5lcj1DcDtrLlByb2Nlc3Nvcj0kbjtrLkRvY3VtZW50PWRhO2suQ29tbWVudD1tYTtrLldhcm5pbmc9TnA7ay5BdFJ1bGU9eWE7ay5SZXN1bHQ9UHA7ay5JbnB1dD1ScDtrLlJ1bGU9Z2E7ay5Sb290PXdhO2suTm9kZT1EcDtTcC5yZWdpc3RlclBvc3Rjc3Moayk7dmEuZXhwb3J0cz1rO2suZGVmYXVsdD1rfSk7dmFyIGJhPXkoKGFiLHhhKT0+e3ZhcntDb250YWluZXI6THB9PXVyKCksVW49Y2xhc3MgZXh0ZW5kcyBMcHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJkZWNsXCIsdGhpcy5pc05lc3RlZD0hMCx0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9fTt4YS5leHBvcnRzPVVufSk7dmFyIENhPXkoKHViLFNhKT0+e1widXNlIHN0cmljdFwiO3ZhciBXbj1cIidcIi5jaGFyQ29kZUF0KDApLHpuPSdcIicuY2hhckNvZGVBdCgwKSx4dD1cIlxcXFxcIi5jaGFyQ29kZUF0KDApLGxyPVwiL1wiLmNoYXJDb2RlQXQoMCksVm49YFxuYC5jaGFyQ29kZUF0KDApLGNyPVwiIFwiLmNoYXJDb2RlQXQoMCksWW49XCJcXGZcIi5jaGFyQ29kZUF0KDApLEduPVwiXHRcIi5jaGFyQ29kZUF0KDApLEtuPVwiXFxyXCIuY2hhckNvZGVBdCgwKSxNcD1cIltcIi5jaGFyQ29kZUF0KDApLEJwPVwiXVwiLmNoYXJDb2RlQXQoMCksa2E9XCIoXCIuY2hhckNvZGVBdCgwKSxfYT1cIilcIi5jaGFyQ29kZUF0KDApLGZyPVwie1wiLmNoYXJDb2RlQXQoMCksVGE9XCJ9XCIuY2hhckNvZGVBdCgwKSxGcD1cIjtcIi5jaGFyQ29kZUF0KDApLCRwPVwiKlwiLmNoYXJDb2RlQXQoMCksVXA9XCI6XCIuY2hhckNvZGVBdCgwKSxXcD1cIkBcIi5jaGFyQ29kZUF0KDApLHpwPVwiLFwiLmNoYXJDb2RlQXQoMCksSG49XCIjXCIuY2hhckNvZGVBdCgwKSxwcj0vW1xcdFxcblxcZlxcciBcIiMnKCkvO1tcXFxcXFxde31dL2csaHI9L1ssXFx0XFxuXFxmXFxyICFcIiMnKCk6O0BbXFxcXFxcXXt9XXxcXC8oPz1cXCopL2csVnA9Ly5bXFxuXCInKC9cXFxcXS8sRWE9L1tcXGRhLWZdL2ksZHI9L1tcXG5cXGZcXHJdL2c7U2EuZXhwb3J0cz1mdW5jdGlvbihlLG49e30pe2xldCByPWUuY3NzLnZhbHVlT2YoKSxzPW4uaWdub3JlRXJyb3JzLGksbyxhLHUsYyxmLHAsbCxnLHg9ci5sZW5ndGgsaD0wLGQ9W10sbT1bXSxiO2Z1bmN0aW9uIHcoKXtyZXR1cm4gaH1mdW5jdGlvbiB2KFMpe3Rocm93IGUuZXJyb3IoXCJVbmNsb3NlZCBcIitTLGgpfWZ1bmN0aW9uIE4oKXtyZXR1cm4gbS5sZW5ndGg9PT0wJiZoPj14fWZ1bmN0aW9uICQoKXtsZXQgUz0xLEM9ITEsTz0hMTtmb3IoO1M+MDspbys9MSxyLmxlbmd0aDw9byYmdihcImludGVycG9sYXRpb25cIiksaT1yLmNoYXJDb2RlQXQobyksbD1yLmNoYXJDb2RlQXQobysxKSxDPyFPJiZpPT09Qz8oQz0hMSxPPSExKTppPT09eHQ/Tz0hTzpPJiYoTz0hMSk6aT09PVdufHxpPT09em4/Qz1pOmk9PT1UYT9TLT0xOmk9PT1IbiYmbD09PWZyJiYoUys9MSl9ZnVuY3Rpb24gSChTKXtpZihtLmxlbmd0aClyZXR1cm4gbS5wb3AoKTtpZihoPj14KXJldHVybjtsZXQgQz1TP1MuaWdub3JlVW5jbG9zZWQ6ITE7c3dpdGNoKGk9ci5jaGFyQ29kZUF0KGgpLGkpe2Nhc2UgVm46Y2FzZSBjcjpjYXNlIEduOmNhc2UgS246Y2FzZSBZbjp7bz1oO2RvIG8rPTEsaT1yLmNoYXJDb2RlQXQobyk7d2hpbGUoaT09PWNyfHxpPT09Vm58fGk9PT1Hbnx8aT09PUtufHxpPT09WW4pO2c9W1wic3BhY2VcIixyLnNsaWNlKGgsbyldLGg9by0xO2JyZWFrfWNhc2UgTXA6Y2FzZSBCcDpjYXNlIGZyOmNhc2UgVGE6Y2FzZSBVcDpjYXNlIEZwOmNhc2UgX2E6e2xldCBPPVN0cmluZy5mcm9tQ2hhckNvZGUoaSk7Zz1bTyxPLGhdO2JyZWFrfWNhc2UgenA6e2c9W1wid29yZFwiLFwiLFwiLGgsaCsxXTticmVha31jYXNlIGthOntpZihwPWQubGVuZ3RoP2QucG9wKClbMV06XCJcIixsPXIuY2hhckNvZGVBdChoKzEpLHA9PT1cInVybFwiJiZsIT09V24mJmwhPT16bil7Zm9yKGI9MSxmPSExLG89aCsxO288PXIubGVuZ3RoLTE7KXtpZihsPXIuY2hhckNvZGVBdChvKSxsPT09eHQpZj0hZjtlbHNlIGlmKGw9PT1rYSliKz0xO2Vsc2UgaWYobD09PV9hJiYoYi09MSxiPT09MCkpYnJlYWs7bys9MX11PXIuc2xpY2UoaCxvKzEpLGc9W1wiYnJhY2tldHNcIix1LGgsb10saD1vfWVsc2Ugbz1yLmluZGV4T2YoXCIpXCIsaCsxKSx1PXIuc2xpY2UoaCxvKzEpLG89PT0tMXx8VnAudGVzdCh1KT9nPVtcIihcIixcIihcIixoXTooZz1bXCJicmFja2V0c1wiLHUsaCxvXSxoPW8pO2JyZWFrfWNhc2UgV246Y2FzZSB6bjp7Zm9yKGE9aSxvPWgsZj0hMTtvPHgmJihvKyssbz09PXgmJnYoXCJzdHJpbmdcIiksaT1yLmNoYXJDb2RlQXQobyksbD1yLmNoYXJDb2RlQXQobysxKSwhKCFmJiZpPT09YSkpOylpPT09eHQ/Zj0hZjpmP2Y9ITE6aT09PUhuJiZsPT09ZnImJiQoKTtnPVtcInN0cmluZ1wiLHIuc2xpY2UoaCxvKzEpLGgsb10saD1vO2JyZWFrfWNhc2UgV3A6e3ByLmxhc3RJbmRleD1oKzEscHIudGVzdChyKSxwci5sYXN0SW5kZXg9PT0wP289ci5sZW5ndGgtMTpvPXByLmxhc3RJbmRleC0yLGc9W1wiYXQtd29yZFwiLHIuc2xpY2UoaCxvKzEpLGgsb10saD1vO2JyZWFrfWNhc2UgeHQ6e2ZvcihvPWgsYz0hMDtyLmNoYXJDb2RlQXQobysxKT09PXh0OylvKz0xLGM9IWM7aWYoaT1yLmNoYXJDb2RlQXQobysxKSxjJiZpIT09bHImJmkhPT1jciYmaSE9PVZuJiZpIT09R24mJmkhPT1LbiYmaSE9PVluJiYobys9MSxFYS50ZXN0KHIuY2hhckF0KG8pKSkpe2Zvcig7RWEudGVzdChyLmNoYXJBdChvKzEpKTspbys9MTtyLmNoYXJDb2RlQXQobysxKT09PWNyJiYobys9MSl9Zz1bXCJ3b3JkXCIsci5zbGljZShoLG8rMSksaCxvXSxoPW87YnJlYWt9ZGVmYXVsdDpsPXIuY2hhckNvZGVBdChoKzEpLGk9PT1IbiYmbD09PWZyPyhvPWgsJCgpLHU9ci5zbGljZShoLG8rMSksZz1bXCJ3b3JkXCIsdSxoLG9dLGg9byk6aT09PWxyJiZsPT09JHA/KG89ci5pbmRleE9mKFwiKi9cIixoKzIpKzEsbz09PTAmJihzfHxDP289ci5sZW5ndGg6dihcImNvbW1lbnRcIikpLGc9W1wiY29tbWVudFwiLHIuc2xpY2UoaCxvKzEpLGgsb10saD1vKTppPT09bHImJmw9PT1scj8oZHIubGFzdEluZGV4PWgrMSxkci50ZXN0KHIpLGRyLmxhc3RJbmRleD09PTA/bz1yLmxlbmd0aC0xOm89ZHIubGFzdEluZGV4LTIsdT1yLnNsaWNlKGgsbysxKSxnPVtcImNvbW1lbnRcIix1LGgsbyxcImlubGluZVwiXSxoPW8pOihoci5sYXN0SW5kZXg9aCsxLGhyLnRlc3QociksaHIubGFzdEluZGV4PT09MD9vPXIubGVuZ3RoLTE6bz1oci5sYXN0SW5kZXgtMixnPVtcIndvcmRcIixyLnNsaWNlKGgsbysxKSxoLG9dLGQucHVzaChnKSxoPW8pO2JyZWFrfXJldHVybiBoKyssZ31mdW5jdGlvbiBVKFMpe20ucHVzaChTKX1yZXR1cm57YmFjazpVLGVuZE9mRmlsZTpOLG5leHRUb2tlbjpILHBvc2l0aW9uOnd9fX0pO3ZhciBBYT15KChsYixPYSk9Pnt2YXJ7Q29tbWVudDpZcH09dXIoKSxHcD1ucigpLEtwPWJhKCksSHA9Q2EoKSxRbj1jbGFzcyBleHRlbmRzIEdwe2F0cnVsZShlKXtsZXQgbj1lWzFdLHI9ZTtmb3IoOyF0aGlzLnRva2VuaXplci5lbmRPZkZpbGUoKTspe2xldCBzPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpO2lmKHNbMF09PT1cIndvcmRcIiYmc1syXT09PXJbM10rMSluKz1zWzFdLHI9cztlbHNle3RoaXMudG9rZW5pemVyLmJhY2socyk7YnJlYWt9fXN1cGVyLmF0cnVsZShbXCJhdC13b3JkXCIsbixlWzJdLHJbM11dKX1jb21tZW50KGUpe2lmKGVbNF09PT1cImlubGluZVwiKXtsZXQgbj1uZXcgWXA7dGhpcy5pbml0KG4sZVsyXSksbi5yYXdzLmlubGluZT0hMDtsZXQgcj10aGlzLmlucHV0LmZyb21PZmZzZXQoZVszXSk7bi5zb3VyY2UuZW5kPXtjb2x1bW46ci5jb2wsbGluZTpyLmxpbmUsb2Zmc2V0OmVbM119O2xldCBzPWVbMV0uc2xpY2UoMik7aWYoL15cXHMqJC8udGVzdChzKSluLnRleHQ9XCJcIixuLnJhd3MubGVmdD1zLG4ucmF3cy5yaWdodD1cIlwiO2Vsc2V7bGV0IGk9cy5tYXRjaCgvXihcXHMqKShbXl0qXFxTKShcXHMqKSQvKSxvPWlbMl0ucmVwbGFjZSgvKFxcKlxcL3xcXC9cXCopL2csXCIqLy8qXCIpO24udGV4dD1vLG4ucmF3cy5sZWZ0PWlbMV0sbi5yYXdzLnJpZ2h0PWlbM10sbi5yYXdzLnRleHQ9aVsyXX19ZWxzZSBzdXBlci5jb21tZW50KGUpfWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPUhwKHRoaXMuaW5wdXQpfXJhdyhlLG4scixzKXtpZihzdXBlci5yYXcoZSxuLHIscyksZS5yYXdzW25dKXtsZXQgaT1lLnJhd3Nbbl0ucmF3O2UucmF3c1tuXS5yYXc9ci5yZWR1Y2UoKG8sYSk9PntpZihhWzBdPT09XCJjb21tZW50XCImJmFbNF09PT1cImlubGluZVwiKXtsZXQgdT1hWzFdLnNsaWNlKDIpLnJlcGxhY2UoLyhcXCpcXC98XFwvXFwqKS9nLFwiKi8vKlwiKTtyZXR1cm4gbytcIi8qXCIrdStcIiovXCJ9ZWxzZSByZXR1cm4gbythWzFdfSxcIlwiKSxpIT09ZS5yYXdzW25dLnJhdyYmKGUucmF3c1tuXS5zY3NzPWkpfX1ydWxlKGUpe2xldCBuPSExLHI9MCxzPVwiXCI7Zm9yKGxldCBpIG9mIGUpaWYobilpWzBdIT09XCJjb21tZW50XCImJmlbMF0hPT1cIntcIiYmKHMrPWlbMV0pO2Vsc2V7aWYoaVswXT09PVwic3BhY2VcIiYmaVsxXS5pbmNsdWRlcyhgXG5gKSlicmVhaztpWzBdPT09XCIoXCI/cis9MTppWzBdPT09XCIpXCI/ci09MTpyPT09MCYmaVswXT09PVwiOlwiJiYobj0hMCl9aWYoIW58fHMudHJpbSgpPT09XCJcInx8L15bIzpBLVphLXotXS8udGVzdChzKSlzdXBlci5ydWxlKGUpO2Vsc2V7ZS5wb3AoKTtsZXQgaT1uZXcgS3A7dGhpcy5pbml0KGksZVswXVsyXSk7bGV0IG87Zm9yKGxldCB1PWUubGVuZ3RoLTE7dT49MDt1LS0paWYoZVt1XVswXSE9PVwic3BhY2VcIil7bz1lW3VdO2JyZWFrfWlmKG9bM10pe2xldCB1PXRoaXMuaW5wdXQuZnJvbU9mZnNldChvWzNdKTtpLnNvdXJjZS5lbmQ9e2NvbHVtbjp1LmNvbCxsaW5lOnUubGluZSxvZmZzZXQ6b1szXX19ZWxzZXtsZXQgdT10aGlzLmlucHV0LmZyb21PZmZzZXQob1syXSk7aS5zb3VyY2UuZW5kPXtjb2x1bW46dS5jb2wsbGluZTp1LmxpbmUsb2Zmc2V0Om9bMl19fWZvcig7ZVswXVswXSE9PVwid29yZFwiOylpLnJhd3MuYmVmb3JlKz1lLnNoaWZ0KClbMV07aWYoZVswXVsyXSl7bGV0IHU9dGhpcy5pbnB1dC5mcm9tT2Zmc2V0KGVbMF1bMl0pO2kuc291cmNlLnN0YXJ0PXtjb2x1bW46dS5jb2wsbGluZTp1LmxpbmUsb2Zmc2V0OmVbMF1bMl19fWZvcihpLnByb3A9XCJcIjtlLmxlbmd0aDspe2xldCB1PWVbMF1bMF07aWYodT09PVwiOlwifHx1PT09XCJzcGFjZVwifHx1PT09XCJjb21tZW50XCIpYnJlYWs7aS5wcm9wKz1lLnNoaWZ0KClbMV19aS5yYXdzLmJldHdlZW49XCJcIjtsZXQgYTtmb3IoO2UubGVuZ3RoOylpZihhPWUuc2hpZnQoKSxhWzBdPT09XCI6XCIpe2kucmF3cy5iZXR3ZWVuKz1hWzFdO2JyZWFrfWVsc2UgaS5yYXdzLmJldHdlZW4rPWFbMV07KGkucHJvcFswXT09PVwiX1wifHxpLnByb3BbMF09PT1cIipcIikmJihpLnJhd3MuYmVmb3JlKz1pLnByb3BbMF0saS5wcm9wPWkucHJvcC5zbGljZSgxKSksaS5yYXdzLmJldHdlZW4rPXRoaXMuc3BhY2VzQW5kQ29tbWVudHNGcm9tU3RhcnQoZSksdGhpcy5wcmVjaGVja01pc3NlZFNlbWljb2xvbihlKTtmb3IobGV0IHU9ZS5sZW5ndGgtMTt1PjA7dS0tKXtpZihhPWVbdV0sYVsxXT09PVwiIWltcG9ydGFudFwiKXtpLmltcG9ydGFudD0hMDtsZXQgYz10aGlzLnN0cmluZ0Zyb20oZSx1KTtjPXRoaXMuc3BhY2VzRnJvbUVuZChlKStjLGMhPT1cIiAhaW1wb3J0YW50XCImJihpLnJhd3MuaW1wb3J0YW50PWMpO2JyZWFrfWVsc2UgaWYoYVsxXT09PVwiaW1wb3J0YW50XCIpe2xldCBjPWUuc2xpY2UoMCksZj1cIlwiO2ZvcihsZXQgcD11O3A+MDtwLS0pe2xldCBsPWNbcF1bMF07aWYoZi50cmltKCkuaW5kZXhPZihcIiFcIik9PT0wJiZsIT09XCJzcGFjZVwiKWJyZWFrO2Y9Yy5wb3AoKVsxXStmfWYudHJpbSgpLmluZGV4T2YoXCIhXCIpPT09MCYmKGkuaW1wb3J0YW50PSEwLGkucmF3cy5pbXBvcnRhbnQ9ZixlPWMpfWlmKGFbMF0hPT1cInNwYWNlXCImJmFbMF0hPT1cImNvbW1lbnRcIilicmVha310aGlzLnJhdyhpLFwidmFsdWVcIixlKSxpLnZhbHVlLmluY2x1ZGVzKFwiOlwiKSYmdGhpcy5jaGVja01pc3NlZFNlbWljb2xvbihlKSx0aGlzLmN1cnJlbnQ9aX19fTtPYS5leHBvcnRzPVFufSk7dmFyIFBhPXkoKGNiLE5hKT0+e3ZhcntJbnB1dDpRcH09dXIoKSxqcD1BYSgpO05hLmV4cG9ydHM9ZnVuY3Rpb24oZSxuKXtsZXQgcj1uZXcgUXAoZSxuKSxzPW5ldyBqcChyKTtyZXR1cm4gcy5wYXJzZSgpLHMucm9vdH19KTt2YXIgVj15KChtYixEYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgam49ZnVuY3Rpb24odCxlKXtsZXQgbj1uZXcgdC5jb25zdHJ1Y3Rvcjtmb3IobGV0IHIgaW4gdCl7aWYoIXQuaGFzT3duUHJvcGVydHkocikpY29udGludWU7bGV0IHM9dFtyXSxpPXR5cGVvZiBzO3I9PT1cInBhcmVudFwiJiZpPT09XCJvYmplY3RcIj9lJiYobltyXT1lKTpyPT09XCJzb3VyY2VcIj9uW3JdPXM6cyBpbnN0YW5jZW9mIEFycmF5P25bcl09cy5tYXAobz0+am4obyxuKSk6ciE9PVwiYmVmb3JlXCImJnIhPT1cImFmdGVyXCImJnIhPT1cImJldHdlZW5cIiYmciE9PVwic2VtaWNvbG9uXCImJihpPT09XCJvYmplY3RcIiYmcyE9PW51bGwmJihzPWpuKHMpKSxuW3JdPXMpfXJldHVybiBufTtEYS5leHBvcnRzPWNsYXNze2NvbnN0cnVjdG9yKGUpe2U9ZXx8e30sdGhpcy5yYXdzPXtiZWZvcmU6XCJcIixhZnRlcjpcIlwifTtmb3IobGV0IG4gaW4gZSl0aGlzW25dPWVbbl19cmVtb3ZlKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc310b1N0cmluZygpe3JldHVyblt0aGlzLnJhd3MuYmVmb3JlLFN0cmluZyh0aGlzLnZhbHVlKSx0aGlzLnJhd3MuYWZ0ZXJdLmpvaW4oXCJcIil9Y2xvbmUoZSl7ZT1lfHx7fTtsZXQgbj1qbih0aGlzKTtmb3IobGV0IHIgaW4gZSluW3JdPWVbcl07cmV0dXJuIG59Y2xvbmVCZWZvcmUoZSl7ZT1lfHx7fTtsZXQgbj10aGlzLmNsb25lKGUpO3JldHVybiB0aGlzLnBhcmVudC5pbnNlcnRCZWZvcmUodGhpcyxuKSxufWNsb25lQWZ0ZXIoZSl7ZT1lfHx7fTtsZXQgbj10aGlzLmNsb25lKGUpO3JldHVybiB0aGlzLnBhcmVudC5pbnNlcnRBZnRlcih0aGlzLG4pLG59cmVwbGFjZVdpdGgoKXtsZXQgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKHRoaXMucGFyZW50KXtmb3IobGV0IG4gb2YgZSl0aGlzLnBhcmVudC5pbnNlcnRCZWZvcmUodGhpcyxuKTt0aGlzLnJlbW92ZSgpfXJldHVybiB0aGlzfW1vdmVUbyhlKXtyZXR1cm4gdGhpcy5jbGVhblJhd3ModGhpcy5yb290KCk9PT1lLnJvb3QoKSksdGhpcy5yZW1vdmUoKSxlLmFwcGVuZCh0aGlzKSx0aGlzfW1vdmVCZWZvcmUoZSl7cmV0dXJuIHRoaXMuY2xlYW5SYXdzKHRoaXMucm9vdCgpPT09ZS5yb290KCkpLHRoaXMucmVtb3ZlKCksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsdGhpcyksdGhpc31tb3ZlQWZ0ZXIoZSl7cmV0dXJuIHRoaXMuY2xlYW5SYXdzKHRoaXMucm9vdCgpPT09ZS5yb290KCkpLHRoaXMucmVtb3ZlKCksZS5wYXJlbnQuaW5zZXJ0QWZ0ZXIoZSx0aGlzKSx0aGlzfW5leHQoKXtsZXQgZT10aGlzLnBhcmVudC5pbmRleCh0aGlzKTtyZXR1cm4gdGhpcy5wYXJlbnQubm9kZXNbZSsxXX1wcmV2KCl7bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCBuIGluIHRoaXMpe2lmKCF0aGlzLmhhc093blByb3BlcnR5KG4pfHxuPT09XCJwYXJlbnRcIiljb250aW51ZTtsZXQgcj10aGlzW25dO3IgaW5zdGFuY2VvZiBBcnJheT9lW25dPXIubWFwKHM9PnR5cGVvZiBzPT1cIm9iamVjdFwiJiZzLnRvSlNPTj9zLnRvSlNPTigpOnMpOnR5cGVvZiByPT1cIm9iamVjdFwiJiZyLnRvSlNPTj9lW25dPXIudG9KU09OKCk6ZVtuXT1yfXJldHVybiBlfXJvb3QoKXtsZXQgZT10aGlzO2Zvcig7ZS5wYXJlbnQ7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9Y2xlYW5SYXdzKGUpe2RlbGV0ZSB0aGlzLnJhd3MuYmVmb3JlLGRlbGV0ZSB0aGlzLnJhd3MuYWZ0ZXIsZXx8ZGVsZXRlIHRoaXMucmF3cy5iZXR3ZWVufXBvc2l0aW9uSW5zaWRlKGUpe2xldCBuPXRoaXMudG9TdHJpbmcoKSxyPXRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixzPXRoaXMuc291cmNlLnN0YXJ0LmxpbmU7Zm9yKGxldCBpPTA7aTxlO2krKyluW2ldPT09YFxuYD8ocj0xLHMrPTEpOnIrPTE7cmV0dXJue2xpbmU6cyxjb2x1bW46cn19cG9zaXRpb25CeShlKXtsZXQgbj10aGlzLnNvdXJjZS5zdGFydDtpZihPYmplY3QoZSkuaW5kZXgpbj10aGlzLnBvc2l0aW9uSW5zaWRlKGUuaW5kZXgpO2Vsc2UgaWYoT2JqZWN0KGUpLndvcmQpe2xldCByPXRoaXMudG9TdHJpbmcoKS5pbmRleE9mKGUud29yZCk7ciE9PS0xJiYobj10aGlzLnBvc2l0aW9uSW5zaWRlKHIpKX1yZXR1cm4gbn19fSk7dmFyIEI9eSgoeWIsTGEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHRoPVYoKSxMZT1jbGFzcyBleHRlbmRzIHRoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX1wdXNoKGUpe3JldHVybiBlLnBhcmVudD10aGlzLHRoaXMubm9kZXMucHVzaChlKSx0aGlzfWVhY2goZSl7dGhpcy5sYXN0RWFjaHx8KHRoaXMubGFzdEVhY2g9MCksdGhpcy5pbmRleGVzfHwodGhpcy5pbmRleGVzPXt9KSx0aGlzLmxhc3RFYWNoKz0xO2xldCBuPXRoaXMubGFzdEVhY2gscixzO2lmKHRoaXMuaW5kZXhlc1tuXT0wLCEhdGhpcy5ub2Rlcyl7Zm9yKDt0aGlzLmluZGV4ZXNbbl08dGhpcy5ub2Rlcy5sZW5ndGgmJihyPXRoaXMuaW5kZXhlc1tuXSxzPWUodGhpcy5ub2Rlc1tyXSxyKSxzIT09ITEpOyl0aGlzLmluZGV4ZXNbbl0rPTE7cmV0dXJuIGRlbGV0ZSB0aGlzLmluZGV4ZXNbbl0sc319d2FsayhlKXtyZXR1cm4gdGhpcy5lYWNoKChuLHIpPT57bGV0IHM9ZShuLHIpO3JldHVybiBzIT09ITEmJm4ud2FsayYmKHM9bi53YWxrKGUpKSxzfSl9d2Fsa1R5cGUoZSxuKXtpZighZXx8IW4pdGhyb3cgbmV3IEVycm9yKFwiUGFyYW1ldGVycyB7dHlwZX0gYW5kIHtjYWxsYmFja30gYXJlIHJlcXVpcmVkLlwiKTtsZXQgcj10eXBlb2YgZT09XCJmdW5jdGlvblwiO3JldHVybiB0aGlzLndhbGsoKHMsaSk9PntpZihyJiZzIGluc3RhbmNlb2YgZXx8IXImJnMudHlwZT09PWUpcmV0dXJuIG4uY2FsbCh0aGlzLHMsaSl9KX1hcHBlbmQoZSl7cmV0dXJuIGUucGFyZW50PXRoaXMsdGhpcy5ub2Rlcy5wdXNoKGUpLHRoaXN9cHJlcGVuZChlKXtyZXR1cm4gZS5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnVuc2hpZnQoZSksdGhpc31jbGVhblJhd3MoZSl7aWYoc3VwZXIuY2xlYW5SYXdzKGUpLHRoaXMubm9kZXMpZm9yKGxldCBuIG9mIHRoaXMubm9kZXMpbi5jbGVhblJhd3MoZSl9aW5zZXJ0QWZ0ZXIoZSxuKXtsZXQgcj10aGlzLmluZGV4KGUpLHM7dGhpcy5ub2Rlcy5zcGxpY2UocisxLDAsbik7Zm9yKGxldCBpIGluIHRoaXMuaW5kZXhlcylzPXRoaXMuaW5kZXhlc1tpXSxyPD1zJiYodGhpcy5pbmRleGVzW2ldPXMrdGhpcy5ub2Rlcy5sZW5ndGgpO3JldHVybiB0aGlzfWluc2VydEJlZm9yZShlLG4pe2xldCByPXRoaXMuaW5kZXgoZSksczt0aGlzLm5vZGVzLnNwbGljZShyLDAsbik7Zm9yKGxldCBpIGluIHRoaXMuaW5kZXhlcylzPXRoaXMuaW5kZXhlc1tpXSxyPD1zJiYodGhpcy5pbmRleGVzW2ldPXMrdGhpcy5ub2Rlcy5sZW5ndGgpO3JldHVybiB0aGlzfXJlbW92ZUNoaWxkKGUpe2U9dGhpcy5pbmRleChlKSx0aGlzLm5vZGVzW2VdLnBhcmVudD12b2lkIDAsdGhpcy5ub2Rlcy5zcGxpY2UoZSwxKTtsZXQgbjtmb3IobGV0IHIgaW4gdGhpcy5pbmRleGVzKW49dGhpcy5pbmRleGVzW3JdLG4+PWUmJih0aGlzLmluZGV4ZXNbcl09bi0xKTtyZXR1cm4gdGhpc31yZW1vdmVBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5ub2RlcyllLnBhcmVudD12b2lkIDA7cmV0dXJuIHRoaXMubm9kZXM9W10sdGhpc31ldmVyeShlKXtyZXR1cm4gdGhpcy5ub2Rlcy5ldmVyeShlKX1zb21lKGUpe3JldHVybiB0aGlzLm5vZGVzLnNvbWUoZSl9aW5kZXgoZSl7cmV0dXJuIHR5cGVvZiBlPT1cIm51bWJlclwiP2U6dGhpcy5ub2Rlcy5pbmRleE9mKGUpfWdldCBmaXJzdCgpe2lmKHRoaXMubm9kZXMpcmV0dXJuIHRoaXMubm9kZXNbMF19Z2V0IGxhc3QoKXtpZih0aGlzLm5vZGVzKXJldHVybiB0aGlzLm5vZGVzW3RoaXMubm9kZXMubGVuZ3RoLTFdfXRvU3RyaW5nKCl7bGV0IGU9dGhpcy5ub2Rlcy5tYXAoU3RyaW5nKS5qb2luKFwiXCIpO3JldHVybiB0aGlzLnZhbHVlJiYoZT10aGlzLnZhbHVlK2UpLHRoaXMucmF3cy5iZWZvcmUmJihlPXRoaXMucmF3cy5iZWZvcmUrZSksdGhpcy5yYXdzLmFmdGVyJiYoZSs9dGhpcy5yYXdzLmFmdGVyKSxlfX07TGUucmVnaXN0ZXJXYWxrZXI9dD0+e2xldCBlPVwid2Fsa1wiK3QubmFtZTtlLmxhc3RJbmRleE9mKFwic1wiKSE9PWUubGVuZ3RoLTEmJihlKz1cInNcIiksIUxlLnByb3RvdHlwZVtlXSYmKExlLnByb3RvdHlwZVtlXT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy53YWxrVHlwZSh0LG4pfSl9O0xhLmV4cG9ydHM9TGV9KTt2YXIgQmE9eSgod2IsTWEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHJoPUIoKTtNYS5leHBvcnRzPWNsYXNzIGV4dGVuZHMgcmh7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPVwicm9vdFwifX19KTt2YXIgJGE9eSgoeGIsRmEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIG5oPUIoKTtGYS5leHBvcnRzPWNsYXNzIGV4dGVuZHMgbmh7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPVwidmFsdWVcIix0aGlzLnVuYmFsYW5jZWQ9MH19fSk7dmFyIHphPXkoKGJiLFdhKT0+e1widXNlIHN0cmljdFwiO3ZhciBVYT1CKCksbXI9Y2xhc3MgZXh0ZW5kcyBVYXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJhdHdvcmRcIn10b1N0cmluZygpe2xldCBlPXRoaXMucXVvdGVkP3RoaXMucmF3cy5xdW90ZTpcIlwiO3JldHVyblt0aGlzLnJhd3MuYmVmb3JlLFwiQFwiLFN0cmluZy5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzLnZhbHVlKSx0aGlzLnJhd3MuYWZ0ZXJdLmpvaW4oXCJcIil9fTtVYS5yZWdpc3RlcldhbGtlcihtcik7V2EuZXhwb3J0cz1tcn0pO3ZhciBZYT15KChrYixWYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgc2g9QigpLGloPVYoKSx5cj1jbGFzcyBleHRlbmRzIGloe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1cImNvbG9uXCJ9fTtzaC5yZWdpc3RlcldhbGtlcih5cik7VmEuZXhwb3J0cz15cn0pO3ZhciBLYT15KChfYixHYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgb2g9QigpLGFoPVYoKSxncj1jbGFzcyBleHRlbmRzIGFoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1cImNvbW1hXCJ9fTtvaC5yZWdpc3RlcldhbGtlcihncik7R2EuZXhwb3J0cz1ncn0pO3ZhciBRYT15KChUYixIYSk9PntcInVzZSBzdHJpY3RcIjt2YXIgdWg9QigpLGxoPVYoKSx3cj1jbGFzcyBleHRlbmRzIGxoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1cImNvbW1lbnRcIix0aGlzLmlubGluZT1PYmplY3QoZSkuaW5saW5lfHwhMX10b1N0cmluZygpe3JldHVyblt0aGlzLnJhd3MuYmVmb3JlLHRoaXMuaW5saW5lP1wiLy9cIjpcIi8qXCIsU3RyaW5nKHRoaXMudmFsdWUpLHRoaXMuaW5saW5lP1wiXCI6XCIqL1wiLHRoaXMucmF3cy5hZnRlcl0uam9pbihcIlwiKX19O3VoLnJlZ2lzdGVyV2Fsa2VyKHdyKTtIYS5leHBvcnRzPXdyfSk7dmFyIFhhPXkoKEViLEphKT0+e1widXNlIHN0cmljdFwiO3ZhciBqYT1CKCksdnI9Y2xhc3MgZXh0ZW5kcyBqYXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJmdW5jXCIsdGhpcy51bmJhbGFuY2VkPS0xfX07amEucmVnaXN0ZXJXYWxrZXIodnIpO0phLmV4cG9ydHM9dnJ9KTt2YXIgZXU9eSgoU2IsWmEpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGNoPUIoKSxmaD1WKCkseHI9Y2xhc3MgZXh0ZW5kcyBmaHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJudW1iZXJcIix0aGlzLnVuaXQ9T2JqZWN0KGUpLnVuaXR8fFwiXCJ9dG9TdHJpbmcoKXtyZXR1cm5bdGhpcy5yYXdzLmJlZm9yZSxTdHJpbmcodGhpcy52YWx1ZSksdGhpcy51bml0LHRoaXMucmF3cy5hZnRlcl0uam9pbihcIlwiKX19O2NoLnJlZ2lzdGVyV2Fsa2VyKHhyKTtaYS5leHBvcnRzPXhyfSk7dmFyIHJ1PXkoKENiLHR1KT0+e1widXNlIHN0cmljdFwiO3ZhciBwaD1CKCksaGg9VigpLGJyPWNsYXNzIGV4dGVuZHMgaGh7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPVwib3BlcmF0b3JcIn19O3BoLnJlZ2lzdGVyV2Fsa2VyKGJyKTt0dS5leHBvcnRzPWJyfSk7dmFyIHN1PXkoKE9iLG51KT0+e1widXNlIHN0cmljdFwiO3ZhciBkaD1CKCksbWg9VigpLGtyPWNsYXNzIGV4dGVuZHMgbWh7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy50eXBlPVwicGFyZW5cIix0aGlzLnBhcmVuVHlwZT1cIlwifX07ZGgucmVnaXN0ZXJXYWxrZXIoa3IpO251LmV4cG9ydHM9a3J9KTt2YXIgb3U9eSgoQWIsaXUpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHloPUIoKSxnaD1WKCksX3I9Y2xhc3MgZXh0ZW5kcyBnaHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJzdHJpbmdcIn10b1N0cmluZygpe2xldCBlPXRoaXMucXVvdGVkP3RoaXMucmF3cy5xdW90ZTpcIlwiO3JldHVyblt0aGlzLnJhd3MuYmVmb3JlLGUsdGhpcy52YWx1ZStcIlwiLGUsdGhpcy5yYXdzLmFmdGVyXS5qb2luKFwiXCIpfX07eWgucmVnaXN0ZXJXYWxrZXIoX3IpO2l1LmV4cG9ydHM9X3J9KTt2YXIgdXU9eSgoTmIsYXUpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHdoPUIoKSx2aD1WKCksVHI9Y2xhc3MgZXh0ZW5kcyB2aHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnR5cGU9XCJ3b3JkXCJ9fTt3aC5yZWdpc3RlcldhbGtlcihUcik7YXUuZXhwb3J0cz1Ucn0pO3ZhciBjdT15KChQYixsdSk9PntcInVzZSBzdHJpY3RcIjt2YXIgeGg9QigpLGJoPVYoKSxFcj1jbGFzcyBleHRlbmRzIGJoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMudHlwZT1cInVuaWNvZGUtcmFuZ2VcIn19O3hoLnJlZ2lzdGVyV2Fsa2VyKEVyKTtsdS5leHBvcnRzPUVyfSk7dmFyIHB1PXkoKFJiLGZ1KT0+e1widXNlIHN0cmljdFwiO3ZhciBKbj1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWUsdGhpcy5tZXNzYWdlPWV8fFwiQW4gZXJyb3Igb2N1cnJlZCB3aGlsZSB0b2t6ZW5pemluZy5cIix0eXBlb2YgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U9PVwiZnVuY3Rpb25cIj9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKGUpLnN0YWNrfX07ZnUuZXhwb3J0cz1Kbn0pO3ZhciB2dT15KChJYix3dSk9PntcInVzZSBzdHJpY3RcIjt2YXIga2g9XCJ7XCIuY2hhckNvZGVBdCgwKSxfaD1cIn1cIi5jaGFyQ29kZUF0KDApLFRoPVwiKFwiLmNoYXJDb2RlQXQoMCksRWg9XCIpXCIuY2hhckNvZGVBdCgwKSxodT1cIidcIi5jaGFyQ29kZUF0KDApLFNoPSdcIicuY2hhckNvZGVBdCgwKSxkdT1cIlxcXFxcIi5jaGFyQ29kZUF0KDApLFNyPVwiL1wiLmNoYXJDb2RlQXQoMCksQ2g9XCIuXCIuY2hhckNvZGVBdCgwKSxPaD1cIixcIi5jaGFyQ29kZUF0KDApLEFoPVwiOlwiLmNoYXJDb2RlQXQoMCksWG49XCIqXCIuY2hhckNvZGVBdCgwKSxDcj1cIi1cIi5jaGFyQ29kZUF0KDApLFpuPVwiK1wiLmNoYXJDb2RlQXQoMCksTmg9XCIjXCIuY2hhckNvZGVBdCgwKSxidD1gXG5gLmNoYXJDb2RlQXQoMCksZXM9XCIgXCIuY2hhckNvZGVBdCgwKSx0cz1cIlxcZlwiLmNoYXJDb2RlQXQoMCkscnM9XCJcdFwiLmNoYXJDb2RlQXQoMCksbnM9XCJcXHJcIi5jaGFyQ29kZUF0KDApLFBoPVwiQFwiLmNoYXJDb2RlQXQoMCksUmg9XCJlXCIuY2hhckNvZGVBdCgwKSxJaD1cIkVcIi5jaGFyQ29kZUF0KDApLG11PVwiMFwiLmNoYXJDb2RlQXQoMCkseXU9XCI5XCIuY2hhckNvZGVBdCgwKSxxaD1cInVcIi5jaGFyQ29kZUF0KDApLERoPVwiVVwiLmNoYXJDb2RlQXQoMCksT3I9L1sgXFxuXFx0XFxyXFx7XFwoXFwpJ1wiXFxcXDssL10vZyxMaD0vWyBcXG5cXHRcXHJcXChcXClcXHtcXH1cXCo6O0AhJidcIlxcK1xcfH4+LFxcW1xcXVxcXFxdfFxcLyg/PVxcKikvZyxNZT0vWyBcXG5cXHRcXHJcXChcXClcXHtcXH1cXCo6O0AhJidcIlxcLVxcK1xcfH4+LFxcW1xcXVxcXFxdfFxcLy9nLE1oPS9eW2EtejAtOV0vaSxCaD0vXlthLWYwLTk/XFwtXS9pLGd1PXB1KCk7d3UuZXhwb3J0cz1mdW5jdGlvbihlLG4pe249bnx8e307bGV0IHI9W10scz1lLnZhbHVlT2YoKSxpPXMubGVuZ3RoLG89LTEsYT0xLHU9MCxjPTAsZj1udWxsLHAsbCxnLHgsaCxkLG0sYix3LHYsTiwkO2Z1bmN0aW9uIEgoUyl7bGV0IEM9YFVuY2xvc2VkICR7U30gYXQgbGluZTogJHthfSwgY29sdW1uOiAke3Utb30sIHRva2VuOiAke3V9YDt0aHJvdyBuZXcgZ3UoQyl9ZnVuY3Rpb24gVSgpe2xldCBTPWBTeW50YXggZXJyb3IgYXQgbGluZTogJHthfSwgY29sdW1uOiAke3Utb30sIHRva2VuOiAke3V9YDt0aHJvdyBuZXcgZ3UoUyl9Zm9yKDt1PGk7KXtzd2l0Y2gocD1zLmNoYXJDb2RlQXQodSkscD09PWJ0JiYobz11LGErPTEpLHApe2Nhc2UgYnQ6Y2FzZSBlczpjYXNlIHJzOmNhc2UgbnM6Y2FzZSB0czpsPXU7ZG8gbCs9MSxwPXMuY2hhckNvZGVBdChsKSxwPT09YnQmJihvPWwsYSs9MSk7d2hpbGUocD09PWVzfHxwPT09YnR8fHA9PT1yc3x8cD09PW5zfHxwPT09dHMpO3IucHVzaChbXCJzcGFjZVwiLHMuc2xpY2UodSxsKSxhLHUtbyxhLGwtbyx1XSksdT1sLTE7YnJlYWs7Y2FzZSBBaDpsPXUrMSxyLnB1c2goW1wiY29sb25cIixzLnNsaWNlKHUsbCksYSx1LW8sYSxsLW8sdV0pLHU9bC0xO2JyZWFrO2Nhc2UgT2g6bD11KzEsci5wdXNoKFtcImNvbW1hXCIscy5zbGljZSh1LGwpLGEsdS1vLGEsbC1vLHVdKSx1PWwtMTticmVhaztjYXNlIGtoOnIucHVzaChbXCJ7XCIsXCJ7XCIsYSx1LW8sYSxsLW8sdV0pO2JyZWFrO2Nhc2UgX2g6ci5wdXNoKFtcIn1cIixcIn1cIixhLHUtbyxhLGwtbyx1XSk7YnJlYWs7Y2FzZSBUaDpjKyssZj0hZiYmYz09PTEmJnIubGVuZ3RoPjAmJnJbci5sZW5ndGgtMV1bMF09PT1cIndvcmRcIiYmcltyLmxlbmd0aC0xXVsxXT09PVwidXJsXCIsci5wdXNoKFtcIihcIixcIihcIixhLHUtbyxhLGwtbyx1XSk7YnJlYWs7Y2FzZSBFaDpjLS0sZj1mJiZjPjAsci5wdXNoKFtcIilcIixcIilcIixhLHUtbyxhLGwtbyx1XSk7YnJlYWs7Y2FzZSBodTpjYXNlIFNoOmc9cD09PWh1P1wiJ1wiOidcIicsbD11O2RvIGZvcih2PSExLGw9cy5pbmRleE9mKGcsbCsxKSxsPT09LTEmJkgoXCJxdW90ZVwiLGcpLE49bDtzLmNoYXJDb2RlQXQoTi0xKT09PWR1OylOLT0xLHY9IXY7d2hpbGUodik7ci5wdXNoKFtcInN0cmluZ1wiLHMuc2xpY2UodSxsKzEpLGEsdS1vLGEsbC1vLHVdKSx1PWw7YnJlYWs7Y2FzZSBQaDpPci5sYXN0SW5kZXg9dSsxLE9yLnRlc3QocyksT3IubGFzdEluZGV4PT09MD9sPXMubGVuZ3RoLTE6bD1Pci5sYXN0SW5kZXgtMixyLnB1c2goW1wiYXR3b3JkXCIscy5zbGljZSh1LGwrMSksYSx1LW8sYSxsLW8sdV0pLHU9bDticmVhaztjYXNlIGR1Omw9dSxwPXMuY2hhckNvZGVBdChsKzEpLG0mJnAhPT1TciYmcCE9PWVzJiZwIT09YnQmJnAhPT1ycyYmcCE9PW5zJiZwIT09dHMmJihsKz0xKSxyLnB1c2goW1wid29yZFwiLHMuc2xpY2UodSxsKzEpLGEsdS1vLGEsbC1vLHVdKSx1PWw7YnJlYWs7Y2FzZSBabjpjYXNlIENyOmNhc2UgWG46bD11KzEsJD1zLnNsaWNlKHUrMSxsKzEpO2xldCBTPXMuc2xpY2UodS0xLHUpO2lmKHA9PT1DciYmJC5jaGFyQ29kZUF0KDApPT09Q3Ipe2wrKyxyLnB1c2goW1wid29yZFwiLHMuc2xpY2UodSxsKSxhLHUtbyxhLGwtbyx1XSksdT1sLTE7YnJlYWt9ci5wdXNoKFtcIm9wZXJhdG9yXCIscy5zbGljZSh1LGwpLGEsdS1vLGEsbC1vLHVdKSx1PWwtMTticmVhaztkZWZhdWx0OmlmKHA9PT1TciYmKHMuY2hhckNvZGVBdCh1KzEpPT09WG58fG4ubG9vc2UmJiFmJiZzLmNoYXJDb2RlQXQodSsxKT09PVNyKSl7aWYocy5jaGFyQ29kZUF0KHUrMSk9PT1YbilsPXMuaW5kZXhPZihcIiovXCIsdSsyKSsxLGw9PT0wJiZIKFwiY29tbWVudFwiLFwiKi9cIik7ZWxzZXtsZXQgTz1zLmluZGV4T2YoYFxuYCx1KzIpO2w9TyE9PS0xP08tMTppfWQ9cy5zbGljZSh1LGwrMSkseD1kLnNwbGl0KGBcbmApLGg9eC5sZW5ndGgtMSxoPjA/KGI9YStoLHc9bC14W2hdLmxlbmd0aCk6KGI9YSx3PW8pLHIucHVzaChbXCJjb21tZW50XCIsZCxhLHUtbyxiLGwtdyx1XSksbz13LGE9Yix1PWx9ZWxzZSBpZihwPT09TmgmJiFNaC50ZXN0KHMuc2xpY2UodSsxLHUrMikpKWw9dSsxLHIucHVzaChbXCIjXCIscy5zbGljZSh1LGwpLGEsdS1vLGEsbC1vLHVdKSx1PWwtMTtlbHNlIGlmKChwPT09cWh8fHA9PT1EaCkmJnMuY2hhckNvZGVBdCh1KzEpPT09Wm4pe2w9dSsyO2RvIGwrPTEscD1zLmNoYXJDb2RlQXQobCk7d2hpbGUobDxpJiZCaC50ZXN0KHMuc2xpY2UobCxsKzEpKSk7ci5wdXNoKFtcInVuaWNvZGVyYW5nZVwiLHMuc2xpY2UodSxsKSxhLHUtbyxhLGwtbyx1XSksdT1sLTF9ZWxzZSBpZihwPT09U3IpbD11KzEsci5wdXNoKFtcIm9wZXJhdG9yXCIscy5zbGljZSh1LGwpLGEsdS1vLGEsbC1vLHVdKSx1PWwtMTtlbHNle2xldCBDPUxoO2lmKHA+PW11JiZwPD15dSYmKEM9TWUpLEMubGFzdEluZGV4PXUrMSxDLnRlc3QocyksQy5sYXN0SW5kZXg9PT0wP2w9cy5sZW5ndGgtMTpsPUMubGFzdEluZGV4LTIsQz09PU1lfHxwPT09Q2gpe2xldCBPPXMuY2hhckNvZGVBdChsKSx2ZT1zLmNoYXJDb2RlQXQobCsxKSxDcz1zLmNoYXJDb2RlQXQobCsyKTsoTz09PVJofHxPPT09SWgpJiYodmU9PT1Dcnx8dmU9PT1abikmJkNzPj1tdSYmQ3M8PXl1JiYoTWUubGFzdEluZGV4PWwrMixNZS50ZXN0KHMpLE1lLmxhc3RJbmRleD09PTA/bD1zLmxlbmd0aC0xOmw9TWUubGFzdEluZGV4LTIpfXIucHVzaChbXCJ3b3JkXCIscy5zbGljZSh1LGwrMSksYSx1LW8sYSxsLW8sdV0pLHU9bH1icmVha311Kyt9cmV0dXJuIHJ9fSk7dmFyIHNzPXkoKHFiLHh1KT0+e3h1LmV4cG9ydHM9ZnVuY3Rpb24oZSxuKXtpZihuPXR5cGVvZiBuPT1cIm51bWJlclwiP246MS8wLCFuKXJldHVybiBBcnJheS5pc0FycmF5KGUpP2UubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzfSk6ZTtyZXR1cm4gcihlLDEpO2Z1bmN0aW9uIHIocyxpKXtyZXR1cm4gcy5yZWR1Y2UoZnVuY3Rpb24obyxhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKSYmaTxuP28uY29uY2F0KHIoYSxpKzEpKTpvLmNvbmNhdChhKX0sW10pfX19KTt2YXIgaXM9eSgoRGIsYnUpPT57YnUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj0tMSxyPVtdOyhuPXQuaW5kZXhPZihlLG4rMSkpIT09LTE7KXIucHVzaChuKTtyZXR1cm4gcn19KTt2YXIgb3M9eSgoTGIsa3UpPT57XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gRmgodCxlKXtmb3IodmFyIG49MSxyPXQubGVuZ3RoLHM9dFswXSxpPXRbMF0sbz0xO288cjsrK28paWYoaT1zLHM9dFtvXSxlKHMsaSkpe2lmKG89PT1uKXtuKys7Y29udGludWV9dFtuKytdPXN9cmV0dXJuIHQubGVuZ3RoPW4sdH1mdW5jdGlvbiAkaCh0KXtmb3IodmFyIGU9MSxuPXQubGVuZ3RoLHI9dFswXSxzPXRbMF0saT0xO2k8bjsrK2kscz1yKWlmKHM9cixyPXRbaV0sciE9PXMpe2lmKGk9PT1lKXtlKys7Y29udGludWV9dFtlKytdPXJ9cmV0dXJuIHQubGVuZ3RoPWUsdH1mdW5jdGlvbiBVaCh0LGUsbil7cmV0dXJuIHQubGVuZ3RoPT09MD90OmU/KG58fHQuc29ydChlKSxGaCh0LGUpKToobnx8dC5zb3J0KCksJGgodCkpfWt1LmV4cG9ydHM9VWh9KTt2YXIgVHU9eSgoTWIsX3UpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGFzPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5uYW1lPXRoaXMuY29uc3RydWN0b3IubmFtZSx0aGlzLm1lc3NhZ2U9ZXx8XCJBbiBlcnJvciBvY3VycmVkIHdoaWxlIHBhcnNpbmcuXCIsdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT1cImZ1bmN0aW9uXCI/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcihlKS5zdGFja319O191LmV4cG9ydHM9YXN9KTt2YXIgT3U9eSgoRmIsQ3UpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFdoPUJhKCksemg9JGEoKSxWaD16YSgpLFloPVlhKCksR2g9S2EoKSxLaD1RYSgpLEhoPVhhKCksUWg9ZXUoKSxqaD1ydSgpLEV1PXN1KCksSmg9b3UoKSxTdT11dSgpLFhoPWN1KCksWmg9dnUoKSxlZD1zcygpLHRkPWlzKCkscmQ9b3MoKSxuZD1UdSgpO2Z1bmN0aW9uIHNkKHQpe3JldHVybiB0LnNvcnQoKGUsbik9PmUtbil9Q3UuZXhwb3J0cz1jbGFzc3tjb25zdHJ1Y3RvcihlLG4pe2xldCByPXtsb29zZTohMX07dGhpcy5jYWNoZT1bXSx0aGlzLmlucHV0PWUsdGhpcy5vcHRpb25zPU9iamVjdC5hc3NpZ24oe30scixuKSx0aGlzLnBvc2l0aW9uPTAsdGhpcy51bmJhbGFuY2VkPTAsdGhpcy5yb290PW5ldyBXaDtsZXQgcz1uZXcgemg7dGhpcy5yb290LmFwcGVuZChzKSx0aGlzLmN1cnJlbnQ9cyx0aGlzLnRva2Vucz1aaChlLHRoaXMub3B0aW9ucyl9cGFyc2UoKXtyZXR1cm4gdGhpcy5sb29wKCl9Y29sb24oKXtsZXQgZT10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IFloKHt2YWx1ZTplWzFdLHNvdXJjZTp7c3RhcnQ6e2xpbmU6ZVsyXSxjb2x1bW46ZVszXX0sZW5kOntsaW5lOmVbNF0sY29sdW1uOmVbNV19fSxzb3VyY2VJbmRleDplWzZdfSkpLHRoaXMucG9zaXRpb24rK31jb21tYSgpe2xldCBlPXRoaXMuY3VyclRva2VuO3RoaXMubmV3Tm9kZShuZXcgR2goe3ZhbHVlOmVbMV0sc291cmNlOntzdGFydDp7bGluZTplWzJdLGNvbHVtbjplWzNdfSxlbmQ6e2xpbmU6ZVs0XSxjb2x1bW46ZVs1XX19LHNvdXJjZUluZGV4OmVbNl19KSksdGhpcy5wb3NpdGlvbisrfWNvbW1lbnQoKXtsZXQgZT0hMSxuPXRoaXMuY3VyclRva2VuWzFdLnJlcGxhY2UoL1xcL1xcKnxcXCpcXC8vZyxcIlwiKSxyO3RoaXMub3B0aW9ucy5sb29zZSYmbi5zdGFydHNXaXRoKFwiLy9cIikmJihuPW4uc3Vic3RyaW5nKDIpLGU9ITApLHI9bmV3IEtoKHt2YWx1ZTpuLGlubGluZTplLHNvdXJjZTp7c3RhcnQ6e2xpbmU6dGhpcy5jdXJyVG9rZW5bMl0sY29sdW1uOnRoaXMuY3VyclRva2VuWzNdfSxlbmQ6e2xpbmU6dGhpcy5jdXJyVG9rZW5bNF0sY29sdW1uOnRoaXMuY3VyclRva2VuWzVdfX0sc291cmNlSW5kZXg6dGhpcy5jdXJyVG9rZW5bNl19KSx0aGlzLm5ld05vZGUociksdGhpcy5wb3NpdGlvbisrfWVycm9yKGUsbil7dGhyb3cgbmV3IG5kKGUrYCBhdCBsaW5lOiAke25bMl19LCBjb2x1bW4gJHtuWzNdfWApfWxvb3AoKXtmb3IoO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoOyl0aGlzLnBhcnNlVG9rZW5zKCk7cmV0dXJuIXRoaXMuY3VycmVudC5sYXN0JiZ0aGlzLnNwYWNlcz90aGlzLmN1cnJlbnQucmF3cy5iZWZvcmUrPXRoaXMuc3BhY2VzOnRoaXMuc3BhY2VzJiYodGhpcy5jdXJyZW50Lmxhc3QucmF3cy5hZnRlcis9dGhpcy5zcGFjZXMpLHRoaXMuc3BhY2VzPVwiXCIsdGhpcy5yb290fW9wZXJhdG9yKCl7bGV0IGU9dGhpcy5jdXJyVG9rZW5bMV0sbjtpZihlPT09XCIrXCJ8fGU9PT1cIi1cIil7aWYodGhpcy5vcHRpb25zLmxvb3NlfHx0aGlzLnBvc2l0aW9uPjAmJih0aGlzLmN1cnJlbnQudHlwZT09PVwiZnVuY1wiJiZ0aGlzLmN1cnJlbnQudmFsdWU9PT1cImNhbGNcIj90aGlzLnByZXZUb2tlblswXSE9PVwic3BhY2VcIiYmdGhpcy5wcmV2VG9rZW5bMF0hPT1cIihcIj90aGlzLmVycm9yKFwiU3ludGF4IEVycm9yXCIsdGhpcy5jdXJyVG9rZW4pOnRoaXMubmV4dFRva2VuWzBdIT09XCJzcGFjZVwiJiZ0aGlzLm5leHRUb2tlblswXSE9PVwid29yZFwiP3RoaXMuZXJyb3IoXCJTeW50YXggRXJyb3JcIix0aGlzLmN1cnJUb2tlbik6dGhpcy5uZXh0VG9rZW5bMF09PT1cIndvcmRcIiYmdGhpcy5jdXJyZW50Lmxhc3QudHlwZSE9PVwib3BlcmF0b3JcIiYmdGhpcy5jdXJyZW50Lmxhc3QudmFsdWUhPT1cIihcIiYmdGhpcy5lcnJvcihcIlN5bnRheCBFcnJvclwiLHRoaXMuY3VyclRva2VuKToodGhpcy5uZXh0VG9rZW5bMF09PT1cInNwYWNlXCJ8fHRoaXMubmV4dFRva2VuWzBdPT09XCJvcGVyYXRvclwifHx0aGlzLnByZXZUb2tlblswXT09PVwib3BlcmF0b3JcIikmJnRoaXMuZXJyb3IoXCJTeW50YXggRXJyb3JcIix0aGlzLmN1cnJUb2tlbikpLHRoaXMub3B0aW9ucy5sb29zZSl7aWYoKCF0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RofHx0aGlzLmN1cnJlbnQubGFzdCYmdGhpcy5jdXJyZW50Lmxhc3QudHlwZT09PVwib3BlcmF0b3JcIikmJnRoaXMubmV4dFRva2VuWzBdPT09XCJ3b3JkXCIpcmV0dXJuIHRoaXMud29yZCgpfWVsc2UgaWYodGhpcy5uZXh0VG9rZW5bMF09PT1cIndvcmRcIilyZXR1cm4gdGhpcy53b3JkKCl9cmV0dXJuIG49bmV3IGpoKHt2YWx1ZTp0aGlzLmN1cnJUb2tlblsxXSxzb3VyY2U6e3N0YXJ0OntsaW5lOnRoaXMuY3VyclRva2VuWzJdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXX0sZW5kOntsaW5lOnRoaXMuY3VyclRva2VuWzJdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXX19LHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuWzRdfSksdGhpcy5wb3NpdGlvbisrLHRoaXMubmV3Tm9kZShuKX1wYXJzZVRva2Vucygpe3N3aXRjaCh0aGlzLmN1cnJUb2tlblswXSl7Y2FzZVwic3BhY2VcIjp0aGlzLnNwYWNlKCk7YnJlYWs7Y2FzZVwiY29sb25cIjp0aGlzLmNvbG9uKCk7YnJlYWs7Y2FzZVwiY29tbWFcIjp0aGlzLmNvbW1hKCk7YnJlYWs7Y2FzZVwiY29tbWVudFwiOnRoaXMuY29tbWVudCgpO2JyZWFrO2Nhc2VcIihcIjp0aGlzLnBhcmVuT3BlbigpO2JyZWFrO2Nhc2VcIilcIjp0aGlzLnBhcmVuQ2xvc2UoKTticmVhaztjYXNlXCJhdHdvcmRcIjpjYXNlXCJ3b3JkXCI6dGhpcy53b3JkKCk7YnJlYWs7Y2FzZVwib3BlcmF0b3JcIjp0aGlzLm9wZXJhdG9yKCk7YnJlYWs7Y2FzZVwic3RyaW5nXCI6dGhpcy5zdHJpbmcoKTticmVhaztjYXNlXCJ1bmljb2RlcmFuZ2VcIjp0aGlzLnVuaWNvZGVSYW5nZSgpO2JyZWFrO2RlZmF1bHQ6dGhpcy53b3JkKCk7YnJlYWt9fXBhcmVuT3Blbigpe2xldCBlPTEsbj10aGlzLnBvc2l0aW9uKzEscj10aGlzLmN1cnJUb2tlbixzO2Zvcig7bjx0aGlzLnRva2Vucy5sZW5ndGgmJmU7KXtsZXQgaT10aGlzLnRva2Vuc1tuXTtpWzBdPT09XCIoXCImJmUrKyxpWzBdPT09XCIpXCImJmUtLSxuKyt9aWYoZSYmdGhpcy5lcnJvcihcIkV4cGVjdGVkIGNsb3NpbmcgcGFyZW50aGVzaXNcIixyKSxzPXRoaXMuY3VycmVudC5sYXN0LHMmJnMudHlwZT09PVwiZnVuY1wiJiZzLnVuYmFsYW5jZWQ8MCYmKHMudW5iYWxhbmNlZD0wLHRoaXMuY3VycmVudD1zKSx0aGlzLmN1cnJlbnQudW5iYWxhbmNlZCsrLHRoaXMubmV3Tm9kZShuZXcgRXUoe3ZhbHVlOnJbMV0sc291cmNlOntzdGFydDp7bGluZTpyWzJdLGNvbHVtbjpyWzNdfSxlbmQ6e2xpbmU6cls0XSxjb2x1bW46cls1XX19LHNvdXJjZUluZGV4OnJbNl19KSksdGhpcy5wb3NpdGlvbisrLHRoaXMuY3VycmVudC50eXBlPT09XCJmdW5jXCImJnRoaXMuY3VycmVudC51bmJhbGFuY2VkJiZ0aGlzLmN1cnJlbnQudmFsdWU9PT1cInVybFwiJiZ0aGlzLmN1cnJUb2tlblswXSE9PVwic3RyaW5nXCImJnRoaXMuY3VyclRva2VuWzBdIT09XCIpXCImJiF0aGlzLm9wdGlvbnMubG9vc2Upe2xldCBpPXRoaXMubmV4dFRva2VuLG89dGhpcy5jdXJyVG9rZW5bMV0sYT17bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119O2Zvcig7aSYmaVswXSE9PVwiKVwiJiZ0aGlzLmN1cnJlbnQudW5iYWxhbmNlZDspdGhpcy5wb3NpdGlvbisrLG8rPXRoaXMuY3VyclRva2VuWzFdLGk9dGhpcy5uZXh0VG9rZW47dGhpcy5wb3NpdGlvbiE9PXRoaXMudG9rZW5zLmxlbmd0aC0xJiYodGhpcy5wb3NpdGlvbisrLHRoaXMubmV3Tm9kZShuZXcgU3Uoe3ZhbHVlOm8sc291cmNlOntzdGFydDphLGVuZDp7bGluZTp0aGlzLmN1cnJUb2tlbls0XSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bNV19fSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbls2XX0pKSl9fXBhcmVuQ2xvc2UoKXtsZXQgZT10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IEV1KHt2YWx1ZTplWzFdLHNvdXJjZTp7c3RhcnQ6e2xpbmU6ZVsyXSxjb2x1bW46ZVszXX0sZW5kOntsaW5lOmVbNF0sY29sdW1uOmVbNV19fSxzb3VyY2VJbmRleDplWzZdfSkpLHRoaXMucG9zaXRpb24rKywhKHRoaXMucG9zaXRpb24+PXRoaXMudG9rZW5zLmxlbmd0aC0xJiYhdGhpcy5jdXJyZW50LnVuYmFsYW5jZWQpJiYodGhpcy5jdXJyZW50LnVuYmFsYW5jZWQtLSx0aGlzLmN1cnJlbnQudW5iYWxhbmNlZDwwJiZ0aGlzLmVycm9yKFwiRXhwZWN0ZWQgb3BlbmluZyBwYXJlbnRoZXNpc1wiLGUpLCF0aGlzLmN1cnJlbnQudW5iYWxhbmNlZCYmdGhpcy5jYWNoZS5sZW5ndGgmJih0aGlzLmN1cnJlbnQ9dGhpcy5jYWNoZS5wb3AoKSkpfXNwYWNlKCl7bGV0IGU9dGhpcy5jdXJyVG9rZW47dGhpcy5wb3NpdGlvbj09PXRoaXMudG9rZW5zLmxlbmd0aC0xfHx0aGlzLm5leHRUb2tlblswXT09PVwiLFwifHx0aGlzLm5leHRUb2tlblswXT09PVwiKVwiPyh0aGlzLmN1cnJlbnQubGFzdC5yYXdzLmFmdGVyKz1lWzFdLHRoaXMucG9zaXRpb24rKyk6KHRoaXMuc3BhY2VzPWVbMV0sdGhpcy5wb3NpdGlvbisrKX11bmljb2RlUmFuZ2UoKXtsZXQgZT10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IFhoKHt2YWx1ZTplWzFdLHNvdXJjZTp7c3RhcnQ6e2xpbmU6ZVsyXSxjb2x1bW46ZVszXX0sZW5kOntsaW5lOmVbNF0sY29sdW1uOmVbNV19fSxzb3VyY2VJbmRleDplWzZdfSkpLHRoaXMucG9zaXRpb24rK31zcGxpdFdvcmQoKXtsZXQgZT10aGlzLm5leHRUb2tlbixuPXRoaXMuY3VyclRva2VuWzFdLHI9L15bXFwrXFwtXT8oKFxcZCsoXFwuXFxkKik/KXwoXFwuXFxkKykpKFtlRV1bXFwrXFwtXT9cXGQrKT8vLHM9L14oPyFcXCMoW2EtejAtOV0rKSlbXFwjXFx7XFx9XS9naSxpLG87aWYoIXMudGVzdChuKSlmb3IoO2UmJmVbMF09PT1cIndvcmRcIjspe3RoaXMucG9zaXRpb24rKztsZXQgYT10aGlzLmN1cnJUb2tlblsxXTtuKz1hLGU9dGhpcy5uZXh0VG9rZW59aT10ZChuLFwiQFwiKSxvPXNkKHJkKGVkKFtbMF0saV0pKSksby5mb3JFYWNoKChhLHUpPT57bGV0IGM9b1t1KzFdfHxuLmxlbmd0aCxmPW4uc2xpY2UoYSxjKSxwO2lmKH5pLmluZGV4T2YoYSkpcD1uZXcgVmgoe3ZhbHVlOmYuc2xpY2UoMSksc291cmNlOntzdGFydDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM10rYX0sZW5kOntsaW5lOnRoaXMuY3VyclRva2VuWzRdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXSsoYy0xKX19LHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuWzZdK29bdV19KTtlbHNlIGlmKHIudGVzdCh0aGlzLmN1cnJUb2tlblsxXSkpe2xldCBsPWYucmVwbGFjZShyLFwiXCIpO3A9bmV3IFFoKHt2YWx1ZTpmLnJlcGxhY2UobCxcIlwiKSxzb3VyY2U6e3N0YXJ0OntsaW5lOnRoaXMuY3VyclRva2VuWzJdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXSthfSxlbmQ6e2xpbmU6dGhpcy5jdXJyVG9rZW5bNF0sY29sdW1uOnRoaXMuY3VyclRva2VuWzNdKyhjLTEpfX0sc291cmNlSW5kZXg6dGhpcy5jdXJyVG9rZW5bNl0rb1t1XSx1bml0Omx9KX1lbHNlIHA9bmV3KGUmJmVbMF09PT1cIihcIj9IaDpTdSkoe3ZhbHVlOmYsc291cmNlOntzdGFydDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM10rYX0sZW5kOntsaW5lOnRoaXMuY3VyclRva2VuWzRdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXSsoYy0xKX19LHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuWzZdK29bdV19KSxwLnR5cGU9PT1cIndvcmRcIj8ocC5pc0hleD0vXiMoLispLy50ZXN0KGYpLHAuaXNDb2xvcj0vXiMoWzAtOWEtZl17M318WzAtOWEtZl17NH18WzAtOWEtZl17Nn18WzAtOWEtZl17OH0pJC9pLnRlc3QoZikpOnRoaXMuY2FjaGUucHVzaCh0aGlzLmN1cnJlbnQpO3RoaXMubmV3Tm9kZShwKX0pLHRoaXMucG9zaXRpb24rK31zdHJpbmcoKXtsZXQgZT10aGlzLmN1cnJUb2tlbixuPXRoaXMuY3VyclRva2VuWzFdLHI9L14oXFxcInxcXCcpLyxzPXIudGVzdChuKSxpPVwiXCIsbztzJiYoaT1uLm1hdGNoKHIpWzBdLG49bi5zbGljZSgxLG4ubGVuZ3RoLTEpKSxvPW5ldyBKaCh7dmFsdWU6bixzb3VyY2U6e3N0YXJ0OntsaW5lOmVbMl0sY29sdW1uOmVbM119LGVuZDp7bGluZTplWzRdLGNvbHVtbjplWzVdfX0sc291cmNlSW5kZXg6ZVs2XSxxdW90ZWQ6c30pLG8ucmF3cy5xdW90ZT1pLHRoaXMubmV3Tm9kZShvKSx0aGlzLnBvc2l0aW9uKyt9d29yZCgpe3JldHVybiB0aGlzLnNwbGl0V29yZCgpfW5ld05vZGUoZSl7cmV0dXJuIHRoaXMuc3BhY2VzJiYoZS5yYXdzLmJlZm9yZSs9dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9XCJcIiksdGhpcy5jdXJyZW50LmFwcGVuZChlKX1nZXQgY3VyclRva2VuKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dfWdldCBuZXh0VG9rZW4oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXX1nZXQgcHJldlRva2VuKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV19fX0pO3ZhciB3ZT15KChOcixxdSk9PntcInVzZSBzdHJpY3RcIjtOci5fX2VzTW9kdWxlPSEwO3ZhciBJdT10eXBlb2YgU3ltYm9sPT1cImZ1bmN0aW9uXCImJnR5cGVvZiBTeW1ib2wuaXRlcmF0b3I9PVwic3ltYm9sXCI/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIFN5bWJvbD09XCJmdW5jdGlvblwiJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT9cInN5bWJvbFwiOnR5cGVvZiB0fTtmdW5jdGlvbiBjZCh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9dmFyIGZkPWZ1bmN0aW9uIHQoZSxuKXtpZigodHlwZW9mIGU+XCJ1XCI/XCJ1bmRlZmluZWRcIjpJdShlKSkhPT1cIm9iamVjdFwiKXJldHVybiBlO3ZhciByPW5ldyBlLmNvbnN0cnVjdG9yO2Zvcih2YXIgcyBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkocykpe3ZhciBpPWVbc10sbz10eXBlb2YgaT5cInVcIj9cInVuZGVmaW5lZFwiOkl1KGkpO3M9PT1cInBhcmVudFwiJiZvPT09XCJvYmplY3RcIj9uJiYocltzXT1uKTppIGluc3RhbmNlb2YgQXJyYXk/cltzXT1pLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gdChhLHIpfSk6cltzXT10KGkscil9cmV0dXJuIHJ9LHBkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dm9pZCAwP2FyZ3VtZW50c1swXTp7fTtjZCh0aGlzLHQpO2Zvcih2YXIgbiBpbiBlKXRoaXNbbl09ZVtuXTt2YXIgcj1lLnNwYWNlcztyPXI9PT12b2lkIDA/e306cjt2YXIgcz1yLmJlZm9yZSxpPXM9PT12b2lkIDA/XCJcIjpzLG89ci5hZnRlcixhPW89PT12b2lkIDA/XCJcIjpvO3RoaXMuc3BhY2VzPXtiZWZvcmU6aSxhZnRlcjphfX1yZXR1cm4gdC5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc30sdC5wcm90b3R5cGUucmVwbGFjZVdpdGg9ZnVuY3Rpb24oKXtpZih0aGlzLnBhcmVudCl7Zm9yKHZhciBuIGluIGFyZ3VtZW50cyl0aGlzLnBhcmVudC5pbnNlcnRCZWZvcmUodGhpcyxhcmd1bWVudHNbbl0pO3RoaXMucmVtb3ZlKCl9cmV0dXJuIHRoaXN9LHQucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuYXQodGhpcy5wYXJlbnQuaW5kZXgodGhpcykrMSl9LHQucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuYXQodGhpcy5wYXJlbnQuaW5kZXgodGhpcyktMSl9LHQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT12b2lkIDA/YXJndW1lbnRzWzBdOnt9LHI9ZmQodGhpcyk7Zm9yKHZhciBzIGluIG4pcltzXT1uW3NdO3JldHVybiByfSx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnNwYWNlcy5iZWZvcmUsU3RyaW5nKHRoaXMudmFsdWUpLHRoaXMuc3BhY2VzLmFmdGVyXS5qb2luKFwiXCIpfSx0fSgpO05yLmRlZmF1bHQ9cGQ7cXUuZXhwb3J0cz1Oci5kZWZhdWx0fSk7dmFyIEw9eShGPT57XCJ1c2Ugc3RyaWN0XCI7Ri5fX2VzTW9kdWxlPSEwO3ZhciBLYj1GLlRBRz1cInRhZ1wiLEhiPUYuU1RSSU5HPVwic3RyaW5nXCIsUWI9Ri5TRUxFQ1RPUj1cInNlbGVjdG9yXCIsamI9Ri5ST09UPVwicm9vdFwiLEpiPUYuUFNFVURPPVwicHNldWRvXCIsWGI9Ri5ORVNUSU5HPVwibmVzdGluZ1wiLFpiPUYuSUQ9XCJpZFwiLGVrPUYuQ09NTUVOVD1cImNvbW1lbnRcIix0az1GLkNPTUJJTkFUT1I9XCJjb21iaW5hdG9yXCIscms9Ri5DTEFTUz1cImNsYXNzXCIsbms9Ri5BVFRSSUJVVEU9XCJhdHRyaWJ1dGVcIixzaz1GLlVOSVZFUlNBTD1cInVuaXZlcnNhbFwifSk7dmFyIFJyPXkoKFByLER1KT0+e1widXNlIHN0cmljdFwiO1ByLl9fZXNNb2R1bGU9ITA7dmFyIGhkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgcz1uW3JdO3MuZW51bWVyYWJsZT1zLmVudW1lcmFibGV8fCExLHMuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHMmJihzLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLmtleSxzKX19cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gbiYmdChlLnByb3RvdHlwZSxuKSxyJiZ0KGUsciksZX19KCksZGQ9d2UoKSxtZD13ZChkZCkseWQ9TCgpLEo9Z2QoeWQpO2Z1bmN0aW9uIGdkKHQpe2lmKHQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDt2YXIgZT17fTtpZih0IT1udWxsKWZvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZS5kZWZhdWx0PXQsZX1mdW5jdGlvbiB3ZCh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gdmQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIHhkKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBiZCh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciBrZD1mdW5jdGlvbih0KXtiZChlLHQpO2Z1bmN0aW9uIGUobil7dmQodGhpcyxlKTt2YXIgcj14ZCh0aGlzLHQuY2FsbCh0aGlzLG4pKTtyZXR1cm4gci5ub2Rlc3x8KHIubm9kZXM9W10pLHJ9cmV0dXJuIGUucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihyKXtyZXR1cm4gci5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnB1c2gociksdGhpc30sZS5wcm90b3R5cGUucHJlcGVuZD1mdW5jdGlvbihyKXtyZXR1cm4gci5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnVuc2hpZnQociksdGhpc30sZS5wcm90b3R5cGUuYXQ9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMubm9kZXNbcl19LGUucHJvdG90eXBlLmluZGV4PWZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09XCJudW1iZXJcIj9yOnRoaXMubm9kZXMuaW5kZXhPZihyKX0sZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24ocil7cj10aGlzLmluZGV4KHIpLHRoaXMuYXQocikucGFyZW50PXZvaWQgMCx0aGlzLm5vZGVzLnNwbGljZShyLDEpO3ZhciBzPXZvaWQgMDtmb3IodmFyIGkgaW4gdGhpcy5pbmRleGVzKXM9dGhpcy5pbmRleGVzW2ldLHM+PXImJih0aGlzLmluZGV4ZXNbaV09cy0xKTtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUucmVtb3ZlQWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBpPXRoaXMubm9kZXMscj1BcnJheS5pc0FycmF5KGkpLHM9MCxpPXI/aTppW1N5bWJvbC5pdGVyYXRvcl0oKTs7KXt2YXIgbztpZihyKXtpZihzPj1pLmxlbmd0aClicmVhaztvPWlbcysrXX1lbHNle2lmKHM9aS5uZXh0KCkscy5kb25lKWJyZWFrO289cy52YWx1ZX12YXIgYT1vO2EucGFyZW50PXZvaWQgMH1yZXR1cm4gdGhpcy5ub2Rlcz1bXSx0aGlzfSxlLnByb3RvdHlwZS5lbXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbW92ZUFsbCgpfSxlLnByb3RvdHlwZS5pbnNlcnRBZnRlcj1mdW5jdGlvbihyLHMpe3ZhciBpPXRoaXMuaW5kZXgocik7dGhpcy5ub2Rlcy5zcGxpY2UoaSsxLDAscyk7dmFyIG89dm9pZCAwO2Zvcih2YXIgYSBpbiB0aGlzLmluZGV4ZXMpbz10aGlzLmluZGV4ZXNbYV0saTw9byYmKHRoaXMuaW5kZXhlc1thXT1vK3RoaXMubm9kZXMubGVuZ3RoKTtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlPWZ1bmN0aW9uKHIscyl7dmFyIGk9dGhpcy5pbmRleChyKTt0aGlzLm5vZGVzLnNwbGljZShpLDAscyk7dmFyIG89dm9pZCAwO2Zvcih2YXIgYSBpbiB0aGlzLmluZGV4ZXMpbz10aGlzLmluZGV4ZXNbYV0saTw9byYmKHRoaXMuaW5kZXhlc1thXT1vK3RoaXMubm9kZXMubGVuZ3RoKTtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZWFjaD1mdW5jdGlvbihyKXt0aGlzLmxhc3RFYWNofHwodGhpcy5sYXN0RWFjaD0wKSx0aGlzLmluZGV4ZXN8fCh0aGlzLmluZGV4ZXM9e30pLHRoaXMubGFzdEVhY2grKzt2YXIgcz10aGlzLmxhc3RFYWNoO2lmKHRoaXMuaW5kZXhlc1tzXT0wLCEhdGhpcy5sZW5ndGgpe2Zvcih2YXIgaT12b2lkIDAsbz12b2lkIDA7dGhpcy5pbmRleGVzW3NdPHRoaXMubGVuZ3RoJiYoaT10aGlzLmluZGV4ZXNbc10sbz1yKHRoaXMuYXQoaSksaSksbyE9PSExKTspdGhpcy5pbmRleGVzW3NdKz0xO2lmKGRlbGV0ZSB0aGlzLmluZGV4ZXNbc10sbz09PSExKXJldHVybiExfX0sZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHMsaSl7dmFyIG89cihzLGkpO2lmKG8hPT0hMSYmcy5sZW5ndGgmJihvPXMud2FsayhyKSksbz09PSExKXJldHVybiExfSl9LGUucHJvdG90eXBlLndhbGtBdHRyaWJ1dGVzPWZ1bmN0aW9uKHIpe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihpKXtpZihpLnR5cGU9PT1KLkFUVFJJQlVURSlyZXR1cm4gci5jYWxsKHMsaSl9KX0sZS5wcm90b3R5cGUud2Fsa0NsYXNzZXM9ZnVuY3Rpb24ocil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGkpe2lmKGkudHlwZT09PUouQ0xBU1MpcmV0dXJuIHIuY2FsbChzLGkpfSl9LGUucHJvdG90eXBlLndhbGtDb21iaW5hdG9ycz1mdW5jdGlvbihyKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oaSl7aWYoaS50eXBlPT09Si5DT01CSU5BVE9SKXJldHVybiByLmNhbGwocyxpKX0pfSxlLnByb3RvdHlwZS53YWxrQ29tbWVudHM9ZnVuY3Rpb24ocil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGkpe2lmKGkudHlwZT09PUouQ09NTUVOVClyZXR1cm4gci5jYWxsKHMsaSl9KX0sZS5wcm90b3R5cGUud2Fsa0lkcz1mdW5jdGlvbihyKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oaSl7aWYoaS50eXBlPT09Si5JRClyZXR1cm4gci5jYWxsKHMsaSl9KX0sZS5wcm90b3R5cGUud2Fsa05lc3Rpbmc9ZnVuY3Rpb24ocil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGkpe2lmKGkudHlwZT09PUouTkVTVElORylyZXR1cm4gci5jYWxsKHMsaSl9KX0sZS5wcm90b3R5cGUud2Fsa1BzZXVkb3M9ZnVuY3Rpb24ocil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGkpe2lmKGkudHlwZT09PUouUFNFVURPKXJldHVybiByLmNhbGwocyxpKX0pfSxlLnByb3RvdHlwZS53YWxrVGFncz1mdW5jdGlvbihyKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oaSl7aWYoaS50eXBlPT09Si5UQUcpcmV0dXJuIHIuY2FsbChzLGkpfSl9LGUucHJvdG90eXBlLndhbGtVbml2ZXJzYWxzPWZ1bmN0aW9uKHIpe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihpKXtpZihpLnR5cGU9PT1KLlVOSVZFUlNBTClyZXR1cm4gci5jYWxsKHMsaSl9KX0sZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24ocil7dmFyIHM9dGhpcyxpPVtdO3JldHVybiB0aGlzLnJlZHVjZShmdW5jdGlvbihvLGEsdSl7dmFyIGM9ci5jYWxsKHMsYSk7cmV0dXJuIGkucHVzaChhKSxjPyhvLnB1c2goaSksaT1bXSk6dT09PXMubGVuZ3RoLTEmJm8ucHVzaChpKSxvfSxbXSl9LGUucHJvdG90eXBlLm1hcD1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5ub2Rlcy5tYXAocil9LGUucHJvdG90eXBlLnJlZHVjZT1mdW5jdGlvbihyLHMpe3JldHVybiB0aGlzLm5vZGVzLnJlZHVjZShyLHMpfSxlLnByb3RvdHlwZS5ldmVyeT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5ub2Rlcy5ldmVyeShyKX0sZS5wcm90b3R5cGUuc29tZT1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb21lKHIpfSxlLnByb3RvdHlwZS5maWx0ZXI9ZnVuY3Rpb24ocil7cmV0dXJuIHRoaXMubm9kZXMuZmlsdGVyKHIpfSxlLnByb3RvdHlwZS5zb3J0PWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLm5vZGVzLnNvcnQocil9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKFN0cmluZykuam9pbihcIlwiKX0saGQoZSxbe2tleTpcImZpcnN0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXQoMCl9fSx7a2V5OlwibGFzdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0KHRoaXMubGVuZ3RoLTEpfX0se2tleTpcImxlbmd0aFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVzLmxlbmd0aH19XSksZX0obWQuZGVmYXVsdCk7UHIuZGVmYXVsdD1rZDtEdS5leHBvcnRzPVByLmRlZmF1bHR9KTt2YXIgTXU9eSgoSXIsTHUpPT57XCJ1c2Ugc3RyaWN0XCI7SXIuX19lc01vZHVsZT0hMDt2YXIgX2Q9UnIoKSxUZD1TZChfZCksRWQ9TCgpO2Z1bmN0aW9uIFNkKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiBDZCh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gT2QodCxlKXtpZighdCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGUmJih0eXBlb2YgZT09XCJvYmplY3RcInx8dHlwZW9mIGU9PVwiZnVuY3Rpb25cIik/ZTp0fWZ1bmN0aW9uIEFkKHQsZSl7aWYodHlwZW9mIGUhPVwiZnVuY3Rpb25cIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIrdHlwZW9mIGUpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLGUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSl9dmFyIE5kPWZ1bmN0aW9uKHQpe0FkKGUsdCk7ZnVuY3Rpb24gZShuKXtDZCh0aGlzLGUpO3ZhciByPU9kKHRoaXMsdC5jYWxsKHRoaXMsbikpO3JldHVybiByLnR5cGU9RWQuUk9PVCxyfXJldHVybiBlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciByPXRoaXMucmVkdWNlKGZ1bmN0aW9uKHMsaSl7dmFyIG89U3RyaW5nKGkpO3JldHVybiBvP3MrbytcIixcIjpcIlwifSxcIlwiKS5zbGljZSgwLC0xKTtyZXR1cm4gdGhpcy50cmFpbGluZ0NvbW1hP3IrXCIsXCI6cn0sZX0oVGQuZGVmYXVsdCk7SXIuZGVmYXVsdD1OZDtMdS5leHBvcnRzPUlyLmRlZmF1bHR9KTt2YXIgRnU9eSgocXIsQnUpPT57XCJ1c2Ugc3RyaWN0XCI7cXIuX19lc01vZHVsZT0hMDt2YXIgUGQ9UnIoKSxSZD1xZChQZCksSWQ9TCgpO2Z1bmN0aW9uIHFkKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiBEZCh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gTGQodCxlKXtpZighdCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGUmJih0eXBlb2YgZT09XCJvYmplY3RcInx8dHlwZW9mIGU9PVwiZnVuY3Rpb25cIik/ZTp0fWZ1bmN0aW9uIE1kKHQsZSl7aWYodHlwZW9mIGUhPVwiZnVuY3Rpb25cIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIrdHlwZW9mIGUpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLGUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSl9dmFyIEJkPWZ1bmN0aW9uKHQpe01kKGUsdCk7ZnVuY3Rpb24gZShuKXtEZCh0aGlzLGUpO3ZhciByPUxkKHRoaXMsdC5jYWxsKHRoaXMsbikpO3JldHVybiByLnR5cGU9SWQuU0VMRUNUT1Iscn1yZXR1cm4gZX0oUmQuZGVmYXVsdCk7cXIuZGVmYXVsdD1CZDtCdS5leHBvcnRzPXFyLmRlZmF1bHR9KTt2YXIgQmU9eSgoRHIsJHUpPT57XCJ1c2Ugc3RyaWN0XCI7RHIuX19lc01vZHVsZT0hMDt2YXIgRmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBzPW5bcl07cy5lbnVtZXJhYmxlPXMuZW51bWVyYWJsZXx8ITEscy5jb25maWd1cmFibGU9ITAsXCJ2YWx1ZVwiaW4gcyYmKHMud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHMua2V5LHMpfX1yZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiBuJiZ0KGUucHJvdG90eXBlLG4pLHImJnQoZSxyKSxlfX0oKSwkZD13ZSgpLFVkPVdkKCRkKTtmdW5jdGlvbiBXZCh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gemQodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIFZkKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBZZCh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciBHZD1mdW5jdGlvbih0KXtZZChlLHQpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gemQodGhpcyxlKSxWZCh0aGlzLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1yZXR1cm4gZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5zcGFjZXMuYmVmb3JlLHRoaXMubnMsU3RyaW5nKHRoaXMudmFsdWUpLHRoaXMuc3BhY2VzLmFmdGVyXS5qb2luKFwiXCIpfSxGZChlLFt7a2V5OlwibnNcIixnZXQ6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gcj8odHlwZW9mIHI9PVwic3RyaW5nXCI/cjpcIlwiKStcInxcIjpcIlwifX1dKSxlfShVZC5kZWZhdWx0KTtEci5kZWZhdWx0PUdkOyR1LmV4cG9ydHM9RHIuZGVmYXVsdH0pO3ZhciBXdT15KChMcixVdSk9PntcInVzZSBzdHJpY3RcIjtMci5fX2VzTW9kdWxlPSEwO3ZhciBLZD1CZSgpLEhkPWpkKEtkKSxRZD1MKCk7ZnVuY3Rpb24gamQodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIEpkKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBYZCh0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gZSYmKHR5cGVvZiBlPT1cIm9iamVjdFwifHx0eXBlb2YgZT09XCJmdW5jdGlvblwiKT9lOnR9ZnVuY3Rpb24gWmQodCxlKXtpZih0eXBlb2YgZSE9XCJmdW5jdGlvblwiJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX12YXIgZW09ZnVuY3Rpb24odCl7WmQoZSx0KTtmdW5jdGlvbiBlKG4pe0pkKHRoaXMsZSk7dmFyIHI9WGQodGhpcyx0LmNhbGwodGhpcyxuKSk7cmV0dXJuIHIudHlwZT1RZC5DTEFTUyxyfXJldHVybiBlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnNwYWNlcy5iZWZvcmUsdGhpcy5ucyxcIi5cIit0aGlzLnZhbHVlLHRoaXMuc3BhY2VzLmFmdGVyXS5qb2luKFwiXCIpfSxlfShIZC5kZWZhdWx0KTtMci5kZWZhdWx0PWVtO1V1LmV4cG9ydHM9THIuZGVmYXVsdH0pO3ZhciBWdT15KChNcix6dSk9PntcInVzZSBzdHJpY3RcIjtNci5fX2VzTW9kdWxlPSEwO3ZhciB0bT13ZSgpLHJtPXNtKHRtKSxubT1MKCk7ZnVuY3Rpb24gc20odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIGltKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBvbSh0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gZSYmKHR5cGVvZiBlPT1cIm9iamVjdFwifHx0eXBlb2YgZT09XCJmdW5jdGlvblwiKT9lOnR9ZnVuY3Rpb24gYW0odCxlKXtpZih0eXBlb2YgZSE9XCJmdW5jdGlvblwiJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX12YXIgdW09ZnVuY3Rpb24odCl7YW0oZSx0KTtmdW5jdGlvbiBlKG4pe2ltKHRoaXMsZSk7dmFyIHI9b20odGhpcyx0LmNhbGwodGhpcyxuKSk7cmV0dXJuIHIudHlwZT1ubS5DT01NRU5ULHJ9cmV0dXJuIGV9KHJtLmRlZmF1bHQpO01yLmRlZmF1bHQ9dW07enUuZXhwb3J0cz1Nci5kZWZhdWx0fSk7dmFyIEd1PXkoKEJyLFl1KT0+e1widXNlIHN0cmljdFwiO0JyLl9fZXNNb2R1bGU9ITA7dmFyIGxtPUJlKCksY209cG0obG0pLGZtPUwoKTtmdW5jdGlvbiBwbSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gaG0odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGRtKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBtbSh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciB5bT1mdW5jdGlvbih0KXttbShlLHQpO2Z1bmN0aW9uIGUobil7aG0odGhpcyxlKTt2YXIgcj1kbSh0aGlzLHQuY2FsbCh0aGlzLG4pKTtyZXR1cm4gci50eXBlPWZtLklELHJ9cmV0dXJuIGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuc3BhY2VzLmJlZm9yZSx0aGlzLm5zLFwiI1wiK3RoaXMudmFsdWUsdGhpcy5zcGFjZXMuYWZ0ZXJdLmpvaW4oXCJcIil9LGV9KGNtLmRlZmF1bHQpO0JyLmRlZmF1bHQ9eW07WXUuZXhwb3J0cz1Cci5kZWZhdWx0fSk7dmFyIEh1PXkoKEZyLEt1KT0+e1widXNlIHN0cmljdFwiO0ZyLl9fZXNNb2R1bGU9ITA7dmFyIGdtPUJlKCksd209eG0oZ20pLHZtPUwoKTtmdW5jdGlvbiB4bSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gYm0odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIGttKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBfbSh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciBUbT1mdW5jdGlvbih0KXtfbShlLHQpO2Z1bmN0aW9uIGUobil7Ym0odGhpcyxlKTt2YXIgcj1rbSh0aGlzLHQuY2FsbCh0aGlzLG4pKTtyZXR1cm4gci50eXBlPXZtLlRBRyxyfXJldHVybiBlfSh3bS5kZWZhdWx0KTtGci5kZWZhdWx0PVRtO0t1LmV4cG9ydHM9RnIuZGVmYXVsdH0pO3ZhciBqdT15KCgkcixRdSk9PntcInVzZSBzdHJpY3RcIjskci5fX2VzTW9kdWxlPSEwO3ZhciBFbT13ZSgpLFNtPU9tKEVtKSxDbT1MKCk7ZnVuY3Rpb24gT20odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIEFtKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBObSh0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gZSYmKHR5cGVvZiBlPT1cIm9iamVjdFwifHx0eXBlb2YgZT09XCJmdW5jdGlvblwiKT9lOnR9ZnVuY3Rpb24gUG0odCxlKXtpZih0eXBlb2YgZSE9XCJmdW5jdGlvblwiJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX12YXIgUm09ZnVuY3Rpb24odCl7UG0oZSx0KTtmdW5jdGlvbiBlKG4pe0FtKHRoaXMsZSk7dmFyIHI9Tm0odGhpcyx0LmNhbGwodGhpcyxuKSk7cmV0dXJuIHIudHlwZT1DbS5TVFJJTkcscn1yZXR1cm4gZX0oU20uZGVmYXVsdCk7JHIuZGVmYXVsdD1SbTtRdS5leHBvcnRzPSRyLmRlZmF1bHR9KTt2YXIgWHU9eSgoVXIsSnUpPT57XCJ1c2Ugc3RyaWN0XCI7VXIuX19lc01vZHVsZT0hMDt2YXIgSW09UnIoKSxxbT1MbShJbSksRG09TCgpO2Z1bmN0aW9uIExtKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiBNbSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9ZnVuY3Rpb24gQm0odCxlKXtpZighdCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7cmV0dXJuIGUmJih0eXBlb2YgZT09XCJvYmplY3RcInx8dHlwZW9mIGU9PVwiZnVuY3Rpb25cIik/ZTp0fWZ1bmN0aW9uIEZtKHQsZSl7aWYodHlwZW9mIGUhPVwiZnVuY3Rpb25cIiYmZSE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIrdHlwZW9mIGUpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLGUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSl9dmFyICRtPWZ1bmN0aW9uKHQpe0ZtKGUsdCk7ZnVuY3Rpb24gZShuKXtNbSh0aGlzLGUpO3ZhciByPUJtKHRoaXMsdC5jYWxsKHRoaXMsbikpO3JldHVybiByLnR5cGU9RG0uUFNFVURPLHJ9cmV0dXJuIGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5sZW5ndGg/XCIoXCIrdGhpcy5tYXAoU3RyaW5nKS5qb2luKFwiLFwiKStcIilcIjpcIlwiO3JldHVyblt0aGlzLnNwYWNlcy5iZWZvcmUsU3RyaW5nKHRoaXMudmFsdWUpLHIsdGhpcy5zcGFjZXMuYWZ0ZXJdLmpvaW4oXCJcIil9LGV9KHFtLmRlZmF1bHQpO1VyLmRlZmF1bHQ9JG07SnUuZXhwb3J0cz1Vci5kZWZhdWx0fSk7dmFyIGVsPXkoKFdyLFp1KT0+e1widXNlIHN0cmljdFwiO1dyLl9fZXNNb2R1bGU9ITA7dmFyIFVtPUJlKCksV209Vm0oVW0pLHptPUwoKTtmdW5jdGlvbiBWbSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gWW0odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIEdtKHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBLbSh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciBIbT1mdW5jdGlvbih0KXtLbShlLHQpO2Z1bmN0aW9uIGUobil7WW0odGhpcyxlKTt2YXIgcj1HbSh0aGlzLHQuY2FsbCh0aGlzLG4pKTtyZXR1cm4gci50eXBlPXptLkFUVFJJQlVURSxyLnJhd3M9e30scn1yZXR1cm4gZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgcj1bdGhpcy5zcGFjZXMuYmVmb3JlLFwiW1wiLHRoaXMubnMsdGhpcy5hdHRyaWJ1dGVdO3JldHVybiB0aGlzLm9wZXJhdG9yJiZyLnB1c2godGhpcy5vcGVyYXRvciksdGhpcy52YWx1ZSYmci5wdXNoKHRoaXMudmFsdWUpLHRoaXMucmF3cy5pbnNlbnNpdGl2ZT9yLnB1c2godGhpcy5yYXdzLmluc2Vuc2l0aXZlKTp0aGlzLmluc2Vuc2l0aXZlJiZyLnB1c2goXCIgaVwiKSxyLnB1c2goXCJdXCIpLHIuY29uY2F0KHRoaXMuc3BhY2VzLmFmdGVyKS5qb2luKFwiXCIpfSxlfShXbS5kZWZhdWx0KTtXci5kZWZhdWx0PUhtO1p1LmV4cG9ydHM9V3IuZGVmYXVsdH0pO3ZhciBybD15KCh6cix0bCk9PntcInVzZSBzdHJpY3RcIjt6ci5fX2VzTW9kdWxlPSEwO3ZhciBRbT1CZSgpLGptPVhtKFFtKSxKbT1MKCk7ZnVuY3Rpb24gWG0odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIFptKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiBleSh0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gZSYmKHR5cGVvZiBlPT1cIm9iamVjdFwifHx0eXBlb2YgZT09XCJmdW5jdGlvblwiKT9lOnR9ZnVuY3Rpb24gdHkodCxlKXtpZih0eXBlb2YgZSE9XCJmdW5jdGlvblwiJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX12YXIgcnk9ZnVuY3Rpb24odCl7dHkoZSx0KTtmdW5jdGlvbiBlKG4pe1ptKHRoaXMsZSk7dmFyIHI9ZXkodGhpcyx0LmNhbGwodGhpcyxuKSk7cmV0dXJuIHIudHlwZT1KbS5VTklWRVJTQUwsci52YWx1ZT1cIipcIixyfXJldHVybiBlfShqbS5kZWZhdWx0KTt6ci5kZWZhdWx0PXJ5O3RsLmV4cG9ydHM9enIuZGVmYXVsdH0pO3ZhciBzbD15KChWcixubCk9PntcInVzZSBzdHJpY3RcIjtWci5fX2VzTW9kdWxlPSEwO3ZhciBueT13ZSgpLHN5PW95KG55KSxpeT1MKCk7ZnVuY3Rpb24gb3kodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIGF5KHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX1mdW5jdGlvbiB1eSh0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtyZXR1cm4gZSYmKHR5cGVvZiBlPT1cIm9iamVjdFwifHx0eXBlb2YgZT09XCJmdW5jdGlvblwiKT9lOnR9ZnVuY3Rpb24gbHkodCxlKXtpZih0eXBlb2YgZSE9XCJmdW5jdGlvblwiJiZlIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIit0eXBlb2YgZSk7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksZSYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxlKTp0Ll9fcHJvdG9fXz1lKX12YXIgY3k9ZnVuY3Rpb24odCl7bHkoZSx0KTtmdW5jdGlvbiBlKG4pe2F5KHRoaXMsZSk7dmFyIHI9dXkodGhpcyx0LmNhbGwodGhpcyxuKSk7cmV0dXJuIHIudHlwZT1peS5DT01CSU5BVE9SLHJ9cmV0dXJuIGV9KHN5LmRlZmF1bHQpO1ZyLmRlZmF1bHQ9Y3k7bmwuZXhwb3J0cz1Wci5kZWZhdWx0fSk7dmFyIG9sPXkoKFlyLGlsKT0+e1widXNlIHN0cmljdFwiO1lyLl9fZXNNb2R1bGU9ITA7dmFyIGZ5PXdlKCkscHk9ZHkoZnkpLGh5PUwoKTtmdW5jdGlvbiBkeSh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gbXkodCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfWZ1bmN0aW9uIHl5KHQsZSl7aWYoIXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO3JldHVybiBlJiYodHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpP2U6dH1mdW5jdGlvbiBneSh0LGUpe2lmKHR5cGVvZiBlIT1cImZ1bmN0aW9uXCImJmUhPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBlKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxlJiYoT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpOnQuX19wcm90b19fPWUpfXZhciB3eT1mdW5jdGlvbih0KXtneShlLHQpO2Z1bmN0aW9uIGUobil7bXkodGhpcyxlKTt2YXIgcj15eSh0aGlzLHQuY2FsbCh0aGlzLG4pKTtyZXR1cm4gci50eXBlPWh5Lk5FU1RJTkcsci52YWx1ZT1cIiZcIixyfXJldHVybiBlfShweS5kZWZhdWx0KTtZci5kZWZhdWx0PXd5O2lsLmV4cG9ydHM9WXIuZGVmYXVsdH0pO3ZhciB1bD15KChHcixhbCk9PntcInVzZSBzdHJpY3RcIjtHci5fX2VzTW9kdWxlPSEwO0dyLmRlZmF1bHQ9dnk7ZnVuY3Rpb24gdnkodCl7cmV0dXJuIHQuc29ydChmdW5jdGlvbihlLG4pe3JldHVybiBlLW59KX1hbC5leHBvcnRzPUdyLmRlZmF1bHR9KTt2YXIgZ2w9eSgoUXIseWwpPT57XCJ1c2Ugc3RyaWN0XCI7UXIuX19lc01vZHVsZT0hMDtRci5kZWZhdWx0PU55O3ZhciBsbD0zOSx4eT0zNCx1cz05MixjbD00NyxrdD0xMCxscz0zMixjcz0xMixmcz05LHBzPTEzLGZsPTQzLHBsPTYyLGhsPTEyNixkbD0xMjQsYnk9NDQsa3k9NDAsX3k9NDEsVHk9OTEsRXk9OTMsU3k9NTksbWw9NDIsQ3k9NTgsT3k9MzgsQXk9NjQsS3I9L1sgXFxuXFx0XFxyXFx7XFwoXFwpJ1wiXFxcXDsvXS9nLEhyPS9bIFxcblxcdFxcclxcKFxcKVxcKjo7QCEmJ1wiXFwrXFx8fj4sXFxbXFxdXFxcXF18XFwvKD89XFwqKS9nO2Z1bmN0aW9uIE55KHQpe2Zvcih2YXIgZT1bXSxuPXQuY3NzLnZhbHVlT2YoKSxyPXZvaWQgMCxzPXZvaWQgMCxpPXZvaWQgMCxvPXZvaWQgMCxhPXZvaWQgMCx1PXZvaWQgMCxjPXZvaWQgMCxmPXZvaWQgMCxwPXZvaWQgMCxsPXZvaWQgMCxnPXZvaWQgMCx4PW4ubGVuZ3RoLGg9LTEsZD0xLG09MCxiPWZ1bmN0aW9uKHYsTil7aWYodC5zYWZlKW4rPU4scz1uLmxlbmd0aC0xO2Vsc2UgdGhyb3cgdC5lcnJvcihcIlVuY2xvc2VkIFwiK3YsZCxtLWgsbSl9O208eDspe3N3aXRjaChyPW4uY2hhckNvZGVBdChtKSxyPT09a3QmJihoPW0sZCs9MSkscil7Y2FzZSBrdDpjYXNlIGxzOmNhc2UgZnM6Y2FzZSBwczpjYXNlIGNzOnM9bTtkbyBzKz0xLHI9bi5jaGFyQ29kZUF0KHMpLHI9PT1rdCYmKGg9cyxkKz0xKTt3aGlsZShyPT09bHN8fHI9PT1rdHx8cj09PWZzfHxyPT09cHN8fHI9PT1jcyk7ZS5wdXNoKFtcInNwYWNlXCIsbi5zbGljZShtLHMpLGQsbS1oLG1dKSxtPXMtMTticmVhaztjYXNlIGZsOmNhc2UgcGw6Y2FzZSBobDpjYXNlIGRsOnM9bTtkbyBzKz0xLHI9bi5jaGFyQ29kZUF0KHMpO3doaWxlKHI9PT1mbHx8cj09PXBsfHxyPT09aGx8fHI9PT1kbCk7ZS5wdXNoKFtcImNvbWJpbmF0b3JcIixuLnNsaWNlKG0scyksZCxtLWgsbV0pLG09cy0xO2JyZWFrO2Nhc2UgbWw6ZS5wdXNoKFtcIipcIixcIipcIixkLG0taCxtXSk7YnJlYWs7Y2FzZSBPeTplLnB1c2goW1wiJlwiLFwiJlwiLGQsbS1oLG1dKTticmVhaztjYXNlIGJ5OmUucHVzaChbXCIsXCIsXCIsXCIsZCxtLWgsbV0pO2JyZWFrO2Nhc2UgVHk6ZS5wdXNoKFtcIltcIixcIltcIixkLG0taCxtXSk7YnJlYWs7Y2FzZSBFeTplLnB1c2goW1wiXVwiLFwiXVwiLGQsbS1oLG1dKTticmVhaztjYXNlIEN5OmUucHVzaChbXCI6XCIsXCI6XCIsZCxtLWgsbV0pO2JyZWFrO2Nhc2UgU3k6ZS5wdXNoKFtcIjtcIixcIjtcIixkLG0taCxtXSk7YnJlYWs7Y2FzZSBreTplLnB1c2goW1wiKFwiLFwiKFwiLGQsbS1oLG1dKTticmVhaztjYXNlIF95OmUucHVzaChbXCIpXCIsXCIpXCIsZCxtLWgsbV0pO2JyZWFrO2Nhc2UgbGw6Y2FzZSB4eTppPXI9PT1sbD9cIidcIjonXCInLHM9bTtkbyBmb3IobD0hMSxzPW4uaW5kZXhPZihpLHMrMSkscz09PS0xJiZiKFwicXVvdGVcIixpKSxnPXM7bi5jaGFyQ29kZUF0KGctMSk9PT11czspZy09MSxsPSFsO3doaWxlKGwpO2UucHVzaChbXCJzdHJpbmdcIixuLnNsaWNlKG0scysxKSxkLG0taCxkLHMtaCxtXSksbT1zO2JyZWFrO2Nhc2UgQXk6S3IubGFzdEluZGV4PW0rMSxLci50ZXN0KG4pLEtyLmxhc3RJbmRleD09PTA/cz1uLmxlbmd0aC0xOnM9S3IubGFzdEluZGV4LTIsZS5wdXNoKFtcImF0LXdvcmRcIixuLnNsaWNlKG0scysxKSxkLG0taCxkLHMtaCxtXSksbT1zO2JyZWFrO2Nhc2UgdXM6Zm9yKHM9bSxjPSEwO24uY2hhckNvZGVBdChzKzEpPT09dXM7KXMrPTEsYz0hYztyPW4uY2hhckNvZGVBdChzKzEpLGMmJnIhPT1jbCYmciE9PWxzJiZyIT09a3QmJnIhPT1mcyYmciE9PXBzJiZyIT09Y3MmJihzKz0xKSxlLnB1c2goW1wid29yZFwiLG4uc2xpY2UobSxzKzEpLGQsbS1oLGQscy1oLG1dKSxtPXM7YnJlYWs7ZGVmYXVsdDpyPT09Y2wmJm4uY2hhckNvZGVBdChtKzEpPT09bWw/KHM9bi5pbmRleE9mKFwiKi9cIixtKzIpKzEscz09PTAmJmIoXCJjb21tZW50XCIsXCIqL1wiKSx1PW4uc2xpY2UobSxzKzEpLG89dS5zcGxpdChgXG5gKSxhPW8ubGVuZ3RoLTEsYT4wPyhmPWQrYSxwPXMtb1thXS5sZW5ndGgpOihmPWQscD1oKSxlLnB1c2goW1wiY29tbWVudFwiLHUsZCxtLWgsZixzLXAsbV0pLGg9cCxkPWYsbT1zKTooSHIubGFzdEluZGV4PW0rMSxIci50ZXN0KG4pLEhyLmxhc3RJbmRleD09PTA/cz1uLmxlbmd0aC0xOnM9SHIubGFzdEluZGV4LTIsZS5wdXNoKFtcIndvcmRcIixuLnNsaWNlKG0scysxKSxkLG0taCxkLHMtaCxtXSksbT1zKTticmVha31tKyt9cmV0dXJuIGV9eWwuZXhwb3J0cz1Rci5kZWZhdWx0fSk7dmFyIHhsPXkoKGpyLHZsKT0+e1widXNlIHN0cmljdFwiO2pyLl9fZXNNb2R1bGU9ITA7dmFyIFB5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe2Zvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgcz1uW3JdO3MuZW51bWVyYWJsZT1zLmVudW1lcmFibGV8fCExLHMuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHMmJihzLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLmtleSxzKX19cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gbiYmdChlLnByb3RvdHlwZSxuKSxyJiZ0KGUsciksZX19KCksUnk9c3MoKSxJeT1JKFJ5KSxxeT1pcygpLGhzPUkocXkpLER5PW9zKCksTHk9SShEeSksTXk9TXUoKSxCeT1JKE15KSxGeT1GdSgpLGRzPUkoRnkpLCR5PVd1KCksVXk9SSgkeSksV3k9VnUoKSx6eT1JKFd5KSxWeT1HdSgpLFl5PUkoVnkpLEd5PUh1KCksS3k9SShHeSksSHk9anUoKSxReT1JKEh5KSxqeT1YdSgpLEp5PUkoankpLFh5PWVsKCksWnk9SShYeSksZWc9cmwoKSx0Zz1JKGVnKSxyZz1zbCgpLG5nPUkocmcpLHNnPW9sKCksaWc9SShzZyksb2c9dWwoKSxhZz1JKG9nKSx1Zz1nbCgpLHdsPUkodWcpLGxnPUwoKSxjZz1mZyhsZyk7ZnVuY3Rpb24gZmcodCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBlPXt9O2lmKHQhPW51bGwpZm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlLmRlZmF1bHQ9dCxlfWZ1bmN0aW9uIEkodCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fWZ1bmN0aW9uIHBnKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX12YXIgaGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3BnKHRoaXMsdCksdGhpcy5pbnB1dD1lLHRoaXMubG9zc3k9ZS5vcHRpb25zLmxvc3NsZXNzPT09ITEsdGhpcy5wb3NpdGlvbj0wLHRoaXMucm9vdD1uZXcgQnkuZGVmYXVsdDt2YXIgbj1uZXcgZHMuZGVmYXVsdDtyZXR1cm4gdGhpcy5yb290LmFwcGVuZChuKSx0aGlzLmN1cnJlbnQ9bix0aGlzLmxvc3N5P3RoaXMudG9rZW5zPSgwLHdsLmRlZmF1bHQpKHtzYWZlOmUuc2FmZSxjc3M6ZS5jc3MudHJpbSgpfSk6dGhpcy50b2tlbnM9KDAsd2wuZGVmYXVsdCkoZSksdGhpcy5sb29wKCl9cmV0dXJuIHQucHJvdG90eXBlLmF0dHJpYnV0ZT1mdW5jdGlvbigpe3ZhciBuPVwiXCIscj12b2lkIDAscz10aGlzLmN1cnJUb2tlbjtmb3IodGhpcy5wb3NpdGlvbisrO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoJiZ0aGlzLmN1cnJUb2tlblswXSE9PVwiXVwiOyluKz10aGlzLnRva2Vuc1t0aGlzLnBvc2l0aW9uXVsxXSx0aGlzLnBvc2l0aW9uKys7dGhpcy5wb3NpdGlvbj09PXRoaXMudG9rZW5zLmxlbmd0aCYmIX5uLmluZGV4T2YoXCJdXCIpJiZ0aGlzLmVycm9yKFwiRXhwZWN0ZWQgYSBjbG9zaW5nIHNxdWFyZSBicmFja2V0LlwiKTt2YXIgaT1uLnNwbGl0KC8oKD86Wyp+XiR8XT89KSkoW15dKikvKSxvPWlbMF0uc3BsaXQoLyhcXHwpL2cpLGE9e29wZXJhdG9yOmlbMV0sdmFsdWU6aVsyXSxzb3VyY2U6e3N0YXJ0OntsaW5lOnNbMl0sY29sdW1uOnNbM119LGVuZDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119fSxzb3VyY2VJbmRleDpzWzRdfTtpZihvLmxlbmd0aD4xPyhvWzBdPT09XCJcIiYmKG9bMF09ITApLGEuYXR0cmlidXRlPXRoaXMucGFyc2VWYWx1ZShvWzJdKSxhLm5hbWVzcGFjZT10aGlzLnBhcnNlTmFtZXNwYWNlKG9bMF0pKTphLmF0dHJpYnV0ZT10aGlzLnBhcnNlVmFsdWUoaVswXSkscj1uZXcgWnkuZGVmYXVsdChhKSxpWzJdKXt2YXIgdT1pWzJdLnNwbGl0KC8oXFxzK2lcXHMqPykkLyksYz11WzBdLnRyaW0oKTtyLnZhbHVlPXRoaXMubG9zc3k/Yzp1WzBdLHVbMV0mJihyLmluc2Vuc2l0aXZlPSEwLHRoaXMubG9zc3l8fChyLnJhd3MuaW5zZW5zaXRpdmU9dVsxXSkpLHIucXVvdGVkPWNbMF09PT1cIidcInx8Y1swXT09PSdcIicsci5yYXdzLnVucXVvdGVkPXIucXVvdGVkP2Muc2xpY2UoMSwtMSk6Y310aGlzLm5ld05vZGUociksdGhpcy5wb3NpdGlvbisrfSx0LnByb3RvdHlwZS5jb21iaW5hdG9yPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyVG9rZW5bMV09PT1cInxcIilyZXR1cm4gdGhpcy5uYW1lc3BhY2UoKTtmb3IodmFyIG49bmV3IG5nLmRlZmF1bHQoe3ZhbHVlOlwiXCIsc291cmNlOntzdGFydDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119LGVuZDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119fSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbls0XX0pO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoJiZ0aGlzLmN1cnJUb2tlbiYmKHRoaXMuY3VyclRva2VuWzBdPT09XCJzcGFjZVwifHx0aGlzLmN1cnJUb2tlblswXT09PVwiY29tYmluYXRvclwiKTspdGhpcy5uZXh0VG9rZW4mJnRoaXMubmV4dFRva2VuWzBdPT09XCJjb21iaW5hdG9yXCI/KG4uc3BhY2VzLmJlZm9yZT10aGlzLnBhcnNlU3BhY2UodGhpcy5jdXJyVG9rZW5bMV0pLG4uc291cmNlLnN0YXJ0LmxpbmU9dGhpcy5uZXh0VG9rZW5bMl0sbi5zb3VyY2Uuc3RhcnQuY29sdW1uPXRoaXMubmV4dFRva2VuWzNdLG4uc291cmNlLmVuZC5jb2x1bW49dGhpcy5uZXh0VG9rZW5bM10sbi5zb3VyY2UuZW5kLmxpbmU9dGhpcy5uZXh0VG9rZW5bMl0sbi5zb3VyY2VJbmRleD10aGlzLm5leHRUb2tlbls0XSk6dGhpcy5wcmV2VG9rZW4mJnRoaXMucHJldlRva2VuWzBdPT09XCJjb21iaW5hdG9yXCI/bi5zcGFjZXMuYWZ0ZXI9dGhpcy5wYXJzZVNwYWNlKHRoaXMuY3VyclRva2VuWzFdKTp0aGlzLmN1cnJUb2tlblswXT09PVwiY29tYmluYXRvclwiP24udmFsdWU9dGhpcy5jdXJyVG9rZW5bMV06dGhpcy5jdXJyVG9rZW5bMF09PT1cInNwYWNlXCImJihuLnZhbHVlPXRoaXMucGFyc2VTcGFjZSh0aGlzLmN1cnJUb2tlblsxXSxcIiBcIikpLHRoaXMucG9zaXRpb24rKztyZXR1cm4gdGhpcy5uZXdOb2RlKG4pfSx0LnByb3RvdHlwZS5jb21tYT1mdW5jdGlvbigpe2lmKHRoaXMucG9zaXRpb249PT10aGlzLnRva2Vucy5sZW5ndGgtMSl7dGhpcy5yb290LnRyYWlsaW5nQ29tbWE9ITAsdGhpcy5wb3NpdGlvbisrO3JldHVybn12YXIgbj1uZXcgZHMuZGVmYXVsdDt0aGlzLmN1cnJlbnQucGFyZW50LmFwcGVuZChuKSx0aGlzLmN1cnJlbnQ9bix0aGlzLnBvc2l0aW9uKyt9LHQucHJvdG90eXBlLmNvbW1lbnQ9ZnVuY3Rpb24oKXt2YXIgbj1uZXcgenkuZGVmYXVsdCh7dmFsdWU6dGhpcy5jdXJyVG9rZW5bMV0sc291cmNlOntzdGFydDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119LGVuZDp7bGluZTp0aGlzLmN1cnJUb2tlbls0XSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bNV19fSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbls2XX0pO3RoaXMubmV3Tm9kZShuKSx0aGlzLnBvc2l0aW9uKyt9LHQucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKG4pe3Rocm93IG5ldyB0aGlzLmlucHV0LmVycm9yKG4pfSx0LnByb3RvdHlwZS5taXNzaW5nQmFja3NsYXNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3IoXCJFeHBlY3RlZCBhIGJhY2tzbGFzaCBwcmVjZWRpbmcgdGhlIHNlbWljb2xvbi5cIil9LHQucHJvdG90eXBlLm1pc3NpbmdQYXJlbnRoZXNpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVycm9yKFwiRXhwZWN0ZWQgb3BlbmluZyBwYXJlbnRoZXNpcy5cIil9LHQucHJvdG90eXBlLm1pc3NpbmdTcXVhcmVCcmFja2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3IoXCJFeHBlY3RlZCBvcGVuaW5nIHNxdWFyZSBicmFja2V0LlwiKX0sdC5wcm90b3R5cGUubmFtZXNwYWNlPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wcmV2VG9rZW4mJnRoaXMucHJldlRva2VuWzFdfHwhMDtpZih0aGlzLm5leHRUb2tlblswXT09PVwid29yZFwiKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy53b3JkKG4pO2lmKHRoaXMubmV4dFRva2VuWzBdPT09XCIqXCIpcmV0dXJuIHRoaXMucG9zaXRpb24rKyx0aGlzLnVuaXZlcnNhbChuKX0sdC5wcm90b3R5cGUubmVzdGluZz1mdW5jdGlvbigpe3RoaXMubmV3Tm9kZShuZXcgaWcuZGVmYXVsdCh7dmFsdWU6dGhpcy5jdXJyVG9rZW5bMV0sc291cmNlOntzdGFydDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119LGVuZDp7bGluZTp0aGlzLmN1cnJUb2tlblsyXSxjb2x1bW46dGhpcy5jdXJyVG9rZW5bM119fSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbls0XX0pKSx0aGlzLnBvc2l0aW9uKyt9LHQucHJvdG90eXBlLnBhcmVudGhlc2VzPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5jdXJyZW50Lmxhc3Q7aWYobiYmbi50eXBlPT09Y2cuUFNFVURPKXt2YXIgcj1uZXcgZHMuZGVmYXVsdCxzPXRoaXMuY3VycmVudDtuLmFwcGVuZChyKSx0aGlzLmN1cnJlbnQ9cjt2YXIgaT0xO2Zvcih0aGlzLnBvc2l0aW9uKys7dGhpcy5wb3NpdGlvbjx0aGlzLnRva2Vucy5sZW5ndGgmJmk7KXRoaXMuY3VyclRva2VuWzBdPT09XCIoXCImJmkrKyx0aGlzLmN1cnJUb2tlblswXT09PVwiKVwiJiZpLS0saT90aGlzLnBhcnNlKCk6KHIucGFyZW50LnNvdXJjZS5lbmQubGluZT10aGlzLmN1cnJUb2tlblsyXSxyLnBhcmVudC5zb3VyY2UuZW5kLmNvbHVtbj10aGlzLmN1cnJUb2tlblszXSx0aGlzLnBvc2l0aW9uKyspO2kmJnRoaXMuZXJyb3IoXCJFeHBlY3RlZCBjbG9zaW5nIHBhcmVudGhlc2lzLlwiKSx0aGlzLmN1cnJlbnQ9c31lbHNle3ZhciBvPTE7Zm9yKHRoaXMucG9zaXRpb24rKyxuLnZhbHVlKz1cIihcIjt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbzspdGhpcy5jdXJyVG9rZW5bMF09PT1cIihcIiYmbysrLHRoaXMuY3VyclRva2VuWzBdPT09XCIpXCImJm8tLSxuLnZhbHVlKz10aGlzLnBhcnNlUGFyZW50aGVzaXNUb2tlbih0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO28mJnRoaXMuZXJyb3IoXCJFeHBlY3RlZCBjbG9zaW5nIHBhcmVudGhlc2lzLlwiKX19LHQucHJvdG90eXBlLnBzZXVkbz1mdW5jdGlvbigpe2Zvcih2YXIgbj10aGlzLHI9XCJcIixzPXRoaXMuY3VyclRva2VuO3RoaXMuY3VyclRva2VuJiZ0aGlzLmN1cnJUb2tlblswXT09PVwiOlwiOylyKz10aGlzLmN1cnJUb2tlblsxXSx0aGlzLnBvc2l0aW9uKys7aWYoIXRoaXMuY3VyclRva2VuKXJldHVybiB0aGlzLmVycm9yKFwiRXhwZWN0ZWQgcHNldWRvLWNsYXNzIG9yIHBzZXVkby1lbGVtZW50XCIpO2lmKHRoaXMuY3VyclRva2VuWzBdPT09XCJ3b3JkXCIpe3ZhciBpPXZvaWQgMDt0aGlzLnNwbGl0V29yZCghMSxmdW5jdGlvbihvLGEpe3IrPW8saT1uZXcgSnkuZGVmYXVsdCh7dmFsdWU6cixzb3VyY2U6e3N0YXJ0OntsaW5lOnNbMl0sY29sdW1uOnNbM119LGVuZDp7bGluZTpuLmN1cnJUb2tlbls0XSxjb2x1bW46bi5jdXJyVG9rZW5bNV19fSxzb3VyY2VJbmRleDpzWzRdfSksbi5uZXdOb2RlKGkpLGE+MSYmbi5uZXh0VG9rZW4mJm4ubmV4dFRva2VuWzBdPT09XCIoXCImJm4uZXJyb3IoXCJNaXNwbGFjZWQgcGFyZW50aGVzaXMuXCIpfSl9ZWxzZSB0aGlzLmVycm9yKCdVbmV4cGVjdGVkIFwiJyt0aGlzLmN1cnJUb2tlblswXSsnXCIgZm91bmQuJyl9LHQucHJvdG90eXBlLnNwYWNlPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5jdXJyVG9rZW47dGhpcy5wb3NpdGlvbj09PTB8fHRoaXMucHJldlRva2VuWzBdPT09XCIsXCJ8fHRoaXMucHJldlRva2VuWzBdPT09XCIoXCI/KHRoaXMuc3BhY2VzPXRoaXMucGFyc2VTcGFjZShuWzFdKSx0aGlzLnBvc2l0aW9uKyspOnRoaXMucG9zaXRpb249PT10aGlzLnRva2Vucy5sZW5ndGgtMXx8dGhpcy5uZXh0VG9rZW5bMF09PT1cIixcInx8dGhpcy5uZXh0VG9rZW5bMF09PT1cIilcIj8odGhpcy5jdXJyZW50Lmxhc3Quc3BhY2VzLmFmdGVyPXRoaXMucGFyc2VTcGFjZShuWzFdKSx0aGlzLnBvc2l0aW9uKyspOnRoaXMuY29tYmluYXRvcigpfSx0LnByb3RvdHlwZS5zdHJpbmc9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IFF5LmRlZmF1bHQoe3ZhbHVlOnRoaXMuY3VyclRva2VuWzFdLHNvdXJjZTp7c3RhcnQ6e2xpbmU6blsyXSxjb2x1bW46blszXX0sZW5kOntsaW5lOm5bNF0sY29sdW1uOm5bNV19fSxzb3VyY2VJbmRleDpuWzZdfSkpLHRoaXMucG9zaXRpb24rK30sdC5wcm90b3R5cGUudW5pdmVyc2FsPWZ1bmN0aW9uKG4pe3ZhciByPXRoaXMubmV4dFRva2VuO2lmKHImJnJbMV09PT1cInxcIilyZXR1cm4gdGhpcy5wb3NpdGlvbisrLHRoaXMubmFtZXNwYWNlKCk7dGhpcy5uZXdOb2RlKG5ldyB0Zy5kZWZhdWx0KHt2YWx1ZTp0aGlzLmN1cnJUb2tlblsxXSxzb3VyY2U6e3N0YXJ0OntsaW5lOnRoaXMuY3VyclRva2VuWzJdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXX0sZW5kOntsaW5lOnRoaXMuY3VyclRva2VuWzJdLGNvbHVtbjp0aGlzLmN1cnJUb2tlblszXX19LHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuWzRdfSksbiksdGhpcy5wb3NpdGlvbisrfSx0LnByb3RvdHlwZS5zcGxpdFdvcmQ9ZnVuY3Rpb24obixyKXtmb3IodmFyIHM9dGhpcyxpPXRoaXMubmV4dFRva2VuLG89dGhpcy5jdXJyVG9rZW5bMV07aSYmaVswXT09PVwid29yZFwiOyl7dGhpcy5wb3NpdGlvbisrO3ZhciBhPXRoaXMuY3VyclRva2VuWzFdO2lmKG8rPWEsYS5sYXN0SW5kZXhPZihcIlxcXFxcIik9PT1hLmxlbmd0aC0xKXt2YXIgdT10aGlzLm5leHRUb2tlbjt1JiZ1WzBdPT09XCJzcGFjZVwiJiYobys9dGhpcy5wYXJzZVNwYWNlKHVbMV0sXCIgXCIpLHRoaXMucG9zaXRpb24rKyl9aT10aGlzLm5leHRUb2tlbn12YXIgYz0oMCxocy5kZWZhdWx0KShvLFwiLlwiKSxmPSgwLGhzLmRlZmF1bHQpKG8sXCIjXCIpLHA9KDAsaHMuZGVmYXVsdCkobyxcIiN7XCIpO3AubGVuZ3RoJiYoZj1mLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hfnAuaW5kZXhPZihnKX0pKTt2YXIgbD0oMCxhZy5kZWZhdWx0KSgoMCxMeS5kZWZhdWx0KSgoMCxJeS5kZWZhdWx0KShbWzBdLGMsZl0pKSk7bC5mb3JFYWNoKGZ1bmN0aW9uKGcseCl7dmFyIGg9bFt4KzFdfHxvLmxlbmd0aCxkPW8uc2xpY2UoZyxoKTtpZih4PT09MCYmcilyZXR1cm4gci5jYWxsKHMsZCxsLmxlbmd0aCk7dmFyIG09dm9pZCAwO35jLmluZGV4T2YoZyk/bT1uZXcgVXkuZGVmYXVsdCh7dmFsdWU6ZC5zbGljZSgxKSxzb3VyY2U6e3N0YXJ0OntsaW5lOnMuY3VyclRva2VuWzJdLGNvbHVtbjpzLmN1cnJUb2tlblszXStnfSxlbmQ6e2xpbmU6cy5jdXJyVG9rZW5bNF0sY29sdW1uOnMuY3VyclRva2VuWzNdKyhoLTEpfX0sc291cmNlSW5kZXg6cy5jdXJyVG9rZW5bNl0rbFt4XX0pOn5mLmluZGV4T2YoZyk/bT1uZXcgWXkuZGVmYXVsdCh7dmFsdWU6ZC5zbGljZSgxKSxzb3VyY2U6e3N0YXJ0OntsaW5lOnMuY3VyclRva2VuWzJdLGNvbHVtbjpzLmN1cnJUb2tlblszXStnfSxlbmQ6e2xpbmU6cy5jdXJyVG9rZW5bNF0sY29sdW1uOnMuY3VyclRva2VuWzNdKyhoLTEpfX0sc291cmNlSW5kZXg6cy5jdXJyVG9rZW5bNl0rbFt4XX0pOm09bmV3IEt5LmRlZmF1bHQoe3ZhbHVlOmQsc291cmNlOntzdGFydDp7bGluZTpzLmN1cnJUb2tlblsyXSxjb2x1bW46cy5jdXJyVG9rZW5bM10rZ30sZW5kOntsaW5lOnMuY3VyclRva2VuWzRdLGNvbHVtbjpzLmN1cnJUb2tlblszXSsoaC0xKX19LHNvdXJjZUluZGV4OnMuY3VyclRva2VuWzZdK2xbeF19KSxzLm5ld05vZGUobSxuKX0pLHRoaXMucG9zaXRpb24rK30sdC5wcm90b3R5cGUud29yZD1mdW5jdGlvbihuKXt2YXIgcj10aGlzLm5leHRUb2tlbjtyZXR1cm4gciYmclsxXT09PVwifFwiPyh0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKSk6dGhpcy5zcGxpdFdvcmQobil9LHQucHJvdG90eXBlLmxvb3A9ZnVuY3Rpb24oKXtmb3IoO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoOyl0aGlzLnBhcnNlKCEwKTtyZXR1cm4gdGhpcy5yb290fSx0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihuKXtzd2l0Y2godGhpcy5jdXJyVG9rZW5bMF0pe2Nhc2VcInNwYWNlXCI6dGhpcy5zcGFjZSgpO2JyZWFrO2Nhc2VcImNvbW1lbnRcIjp0aGlzLmNvbW1lbnQoKTticmVhaztjYXNlXCIoXCI6dGhpcy5wYXJlbnRoZXNlcygpO2JyZWFrO2Nhc2VcIilcIjpuJiZ0aGlzLm1pc3NpbmdQYXJlbnRoZXNpcygpO2JyZWFrO2Nhc2VcIltcIjp0aGlzLmF0dHJpYnV0ZSgpO2JyZWFrO2Nhc2VcIl1cIjp0aGlzLm1pc3NpbmdTcXVhcmVCcmFja2V0KCk7YnJlYWs7Y2FzZVwiYXQtd29yZFwiOmNhc2VcIndvcmRcIjp0aGlzLndvcmQoKTticmVhaztjYXNlXCI6XCI6dGhpcy5wc2V1ZG8oKTticmVhaztjYXNlXCI7XCI6dGhpcy5taXNzaW5nQmFja3NsYXNoKCk7YnJlYWs7Y2FzZVwiLFwiOnRoaXMuY29tbWEoKTticmVhaztjYXNlXCIqXCI6dGhpcy51bml2ZXJzYWwoKTticmVhaztjYXNlXCImXCI6dGhpcy5uZXN0aW5nKCk7YnJlYWs7Y2FzZVwiY29tYmluYXRvclwiOnRoaXMuY29tYmluYXRvcigpO2JyZWFrO2Nhc2VcInN0cmluZ1wiOnRoaXMuc3RyaW5nKCk7YnJlYWt9fSx0LnByb3RvdHlwZS5wYXJzZU5hbWVzcGFjZT1mdW5jdGlvbihuKXtpZih0aGlzLmxvc3N5JiZ0eXBlb2Ygbj09XCJzdHJpbmdcIil7dmFyIHI9bi50cmltKCk7cmV0dXJuIHIubGVuZ3RoP3I6ITB9cmV0dXJuIG59LHQucHJvdG90eXBlLnBhcnNlU3BhY2U9ZnVuY3Rpb24obixyKXtyZXR1cm4gdGhpcy5sb3NzeT9yfHxcIlwiOm59LHQucHJvdG90eXBlLnBhcnNlVmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubG9zc3kmJm4mJnR5cGVvZiBuPT1cInN0cmluZ1wiP24udHJpbSgpOm59LHQucHJvdG90eXBlLnBhcnNlUGFyZW50aGVzaXNUb2tlbj1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5sb3NzeT9uWzBdPT09XCJzcGFjZVwiP3RoaXMucGFyc2VTcGFjZShuWzFdLFwiIFwiKTp0aGlzLnBhcnNlVmFsdWUoblsxXSk6blsxXX0sdC5wcm90b3R5cGUubmV3Tm9kZT1mdW5jdGlvbihuLHIpe3JldHVybiByJiYobi5uYW1lc3BhY2U9dGhpcy5wYXJzZU5hbWVzcGFjZShyKSksdGhpcy5zcGFjZXMmJihuLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9XCJcIiksdGhpcy5jdXJyZW50LmFwcGVuZChuKX0sUHkodCxbe2tleTpcImN1cnJUb2tlblwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRva2Vuc1t0aGlzLnBvc2l0aW9uXX19LHtrZXk6XCJuZXh0VG9rZW5cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXX19LHtrZXk6XCJwcmV2VG9rZW5cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbi0xXX19XSksdH0oKTtqci5kZWZhdWx0PWhnO3ZsLmV4cG9ydHM9anIuZGVmYXVsdH0pO3ZhciBrbD15KChKcixibCk9PntcInVzZSBzdHJpY3RcIjtKci5fX2VzTW9kdWxlPSEwO3ZhciBkZz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXtmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIHM9bltyXTtzLmVudW1lcmFibGU9cy5lbnVtZXJhYmxlfHwhMSxzLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBzJiYocy53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscy5rZXkscyl9fXJldHVybiBmdW5jdGlvbihlLG4scil7cmV0dXJuIG4mJnQoZS5wcm90b3R5cGUsbiksciYmdChlLHIpLGV9fSgpLG1nPXhsKCkseWc9Z2cobWcpO2Z1bmN0aW9uIGdnKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiB3Zyh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9dmFyIHZnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXtyZXR1cm4gd2codGhpcyx0KSx0aGlzLmZ1bmM9ZXx8ZnVuY3Rpb24oKXt9LHRoaXN9cmV0dXJuIHQucHJvdG90eXBlLnByb2Nlc3M9ZnVuY3Rpb24obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LHM9bmV3IHlnLmRlZmF1bHQoe2NzczpuLGVycm9yOmZ1bmN0aW9uKG8pe3Rocm93IG5ldyBFcnJvcihvKX0sb3B0aW9uczpyfSk7cmV0dXJuIHRoaXMucmVzPXMsdGhpcy5mdW5jKHMpLHRoaXN9LGRnKHQsW3trZXk6XCJyZXN1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMucmVzKX19XSksdH0oKTtKci5kZWZhdWx0PXZnO2JsLmV4cG9ydHM9SnIuZGVmYXVsdH0pO3ZhciBncz15KHlzPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHlzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2Z1bmN0aW9uIF9nKHQpe3RoaXMuYWZ0ZXI9dC5hZnRlcix0aGlzLmJlZm9yZT10LmJlZm9yZSx0aGlzLnR5cGU9dC50eXBlLHRoaXMudmFsdWU9dC52YWx1ZSx0aGlzLnNvdXJjZUluZGV4PXQuc291cmNlSW5kZXh9eXMuZGVmYXVsdD1fZ30pO3ZhciB2cz15KHdzPT57XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHdzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBUZz1ncygpLFNsPUVnKFRnKTtmdW5jdGlvbiBFZyh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gX3QodCl7dmFyIGU9dGhpczt0aGlzLmNvbnN0cnVjdG9yKHQpLHRoaXMubm9kZXM9dC5ub2Rlcyx0aGlzLmFmdGVyPT09dm9pZCAwJiYodGhpcy5hZnRlcj10aGlzLm5vZGVzLmxlbmd0aD4wP3RoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGgtMV0uYWZ0ZXI6XCJcIiksdGhpcy5iZWZvcmU9PT12b2lkIDAmJih0aGlzLmJlZm9yZT10aGlzLm5vZGVzLmxlbmd0aD4wP3RoaXMubm9kZXNbMF0uYmVmb3JlOlwiXCIpLHRoaXMuc291cmNlSW5kZXg9PT12b2lkIDAmJih0aGlzLnNvdXJjZUluZGV4PXRoaXMuYmVmb3JlLmxlbmd0aCksdGhpcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKG4pe24ucGFyZW50PWV9KX1fdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShTbC5kZWZhdWx0LnByb3RvdHlwZSk7X3QuY29uc3RydWN0b3I9U2wuZGVmYXVsdDtfdC5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlLG4pe2Zvcih2YXIgcj10eXBlb2YgZT09XCJzdHJpbmdcInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCxzPXI/bjplLGk9dHlwZW9mIGU9PVwic3RyaW5nXCI/bmV3IFJlZ0V4cChlKTplLG89MDtvPHRoaXMubm9kZXMubGVuZ3RoO28rKyl7dmFyIGE9dGhpcy5ub2Rlc1tvXSx1PXI/aS50ZXN0KGEudHlwZSk6ITA7aWYodSYmcyYmcyhhLG8sdGhpcy5ub2Rlcyk9PT0hMXx8YS5ub2RlcyYmYS53YWxrKGUsbik9PT0hMSlyZXR1cm4hMX1yZXR1cm4hMH07X3QucHJvdG90eXBlLmVhY2g9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aDw9MHx8YXJndW1lbnRzWzBdPT09dm9pZCAwP2Z1bmN0aW9uKCl7fTphcmd1bWVudHNbMF0sbj0wO248dGhpcy5ub2Rlcy5sZW5ndGg7bisrKXt2YXIgcj10aGlzLm5vZGVzW25dO2lmKGUocixuLHRoaXMubm9kZXMpPT09ITEpcmV0dXJuITF9cmV0dXJuITB9O3dzLmRlZmF1bHQ9X3R9KTt2YXIgTmw9eShUdD0+e1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUdCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtUdC5wYXJzZU1lZGlhRmVhdHVyZT1BbDtUdC5wYXJzZU1lZGlhUXVlcnk9YnM7VHQucGFyc2VNZWRpYUxpc3Q9T2c7dmFyIFNnPWdzKCksQ2w9T2woU2cpLENnPXZzKCkseHM9T2woQ2cpO2Z1bmN0aW9uIE9sKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX1mdW5jdGlvbiBBbCh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPD0xfHxhcmd1bWVudHNbMV09PT12b2lkIDA/MDphcmd1bWVudHNbMV0sbj1be21vZGU6XCJub3JtYWxcIixjaGFyYWN0ZXI6bnVsbH1dLHI9W10scz0wLGk9XCJcIixvPW51bGwsYT1udWxsLHU9ZSxjPXQ7dFswXT09PVwiKFwiJiZ0W3QubGVuZ3RoLTFdPT09XCIpXCImJihjPXQuc3Vic3RyaW5nKDEsdC5sZW5ndGgtMSksdSsrKTtmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKyl7dmFyIHA9Y1tmXTtpZigocD09PVwiJ1wifHxwPT09J1wiJykmJihuW3NdLmlzQ2FsY3VsYXRpb25FbmFibGVkPT09ITA/KG4ucHVzaCh7bW9kZTpcInN0cmluZ1wiLGlzQ2FsY3VsYXRpb25FbmFibGVkOiExLGNoYXJhY3RlcjpwfSkscysrKTpuW3NdLm1vZGU9PT1cInN0cmluZ1wiJiZuW3NdLmNoYXJhY3Rlcj09PXAmJmNbZi0xXSE9PVwiXFxcXFwiJiYobi5wb3AoKSxzLS0pKSxwPT09XCJ7XCI/KG4ucHVzaCh7bW9kZTpcImludGVycG9sYXRpb25cIixpc0NhbGN1bGF0aW9uRW5hYmxlZDohMH0pLHMrKyk6cD09PVwifVwiJiYobi5wb3AoKSxzLS0pLG5bc10ubW9kZT09PVwibm9ybWFsXCImJnA9PT1cIjpcIil7dmFyIGw9Yy5zdWJzdHJpbmcoZisxKTthPXt0eXBlOlwidmFsdWVcIixiZWZvcmU6L14oXFxzKikvLmV4ZWMobClbMV0sYWZ0ZXI6LyhcXHMqKSQvLmV4ZWMobClbMV0sdmFsdWU6bC50cmltKCl9LGEuc291cmNlSW5kZXg9YS5iZWZvcmUubGVuZ3RoK2YrMSt1LG89e3R5cGU6XCJjb2xvblwiLHNvdXJjZUluZGV4OmYrdSxhZnRlcjphLmJlZm9yZSx2YWx1ZTpcIjpcIn07YnJlYWt9aSs9cH1yZXR1cm4gaT17dHlwZTpcIm1lZGlhLWZlYXR1cmVcIixiZWZvcmU6L14oXFxzKikvLmV4ZWMoaSlbMV0sYWZ0ZXI6LyhcXHMqKSQvLmV4ZWMoaSlbMV0sdmFsdWU6aS50cmltKCl9LGkuc291cmNlSW5kZXg9aS5iZWZvcmUubGVuZ3RoK3Usci5wdXNoKGkpLG8hPT1udWxsJiYoby5iZWZvcmU9aS5hZnRlcixyLnB1c2gobykpLGEhPT1udWxsJiZyLnB1c2goYSkscn1mdW5jdGlvbiBicyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPD0xfHxhcmd1bWVudHNbMV09PT12b2lkIDA/MDphcmd1bWVudHNbMV0sbj1bXSxyPTAscz0hMSxpPXZvaWQgMDtmdW5jdGlvbiBvKCl7cmV0dXJue2JlZm9yZTpcIlwiLGFmdGVyOlwiXCIsdmFsdWU6XCJcIn19aT1vKCk7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciB1PXRbYV07cz8oaS52YWx1ZSs9dSwodT09PVwie1wifHx1PT09XCIoXCIpJiZyKyssKHU9PT1cIilcInx8dT09PVwifVwiKSYmci0tKTp1LnNlYXJjaCgvXFxzLykhPT0tMT9pLmJlZm9yZSs9dToodT09PVwiKFwiJiYoaS50eXBlPVwibWVkaWEtZmVhdHVyZS1leHByZXNzaW9uXCIscisrKSxpLnZhbHVlPXUsaS5zb3VyY2VJbmRleD1lK2Escz0hMCkscyYmcj09PTAmJih1PT09XCIpXCJ8fGE9PT10Lmxlbmd0aC0xfHx0W2ErMV0uc2VhcmNoKC9cXHMvKSE9PS0xKSYmKFtcIm5vdFwiLFwib25seVwiLFwiYW5kXCJdLmluZGV4T2YoaS52YWx1ZSkhPT0tMSYmKGkudHlwZT1cImtleXdvcmRcIiksaS50eXBlPT09XCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cIiYmKGkubm9kZXM9QWwoaS52YWx1ZSxpLnNvdXJjZUluZGV4KSksbi5wdXNoKEFycmF5LmlzQXJyYXkoaS5ub2Rlcyk/bmV3IHhzLmRlZmF1bHQoaSk6bmV3IENsLmRlZmF1bHQoaSkpLGk9bygpLHM9ITEpfWZvcih2YXIgYz0wO2M8bi5sZW5ndGg7YysrKWlmKGk9bltjXSxjPjAmJihuW2MtMV0uYWZ0ZXI9aS5iZWZvcmUpLGkudHlwZT09PXZvaWQgMCl7aWYoYz4wKXtpZihuW2MtMV0udHlwZT09PVwibWVkaWEtZmVhdHVyZS1leHByZXNzaW9uXCIpe2kudHlwZT1cImtleXdvcmRcIjtjb250aW51ZX1pZihuW2MtMV0udmFsdWU9PT1cIm5vdFwifHxuW2MtMV0udmFsdWU9PT1cIm9ubHlcIil7aS50eXBlPVwibWVkaWEtdHlwZVwiO2NvbnRpbnVlfWlmKG5bYy0xXS52YWx1ZT09PVwiYW5kXCIpe2kudHlwZT1cIm1lZGlhLWZlYXR1cmUtZXhwcmVzc2lvblwiO2NvbnRpbnVlfW5bYy0xXS50eXBlPT09XCJtZWRpYS10eXBlXCImJihuW2MrMV0/aS50eXBlPW5bYysxXS50eXBlPT09XCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cIj9cImtleXdvcmRcIjpcIm1lZGlhLWZlYXR1cmUtZXhwcmVzc2lvblwiOmkudHlwZT1cIm1lZGlhLWZlYXR1cmUtZXhwcmVzc2lvblwiKX1pZihjPT09MCl7aWYoIW5bYysxXSl7aS50eXBlPVwibWVkaWEtdHlwZVwiO2NvbnRpbnVlfWlmKG5bYysxXSYmKG5bYysxXS50eXBlPT09XCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cInx8bltjKzFdLnR5cGU9PT1cImtleXdvcmRcIikpe2kudHlwZT1cIm1lZGlhLXR5cGVcIjtjb250aW51ZX1pZihuW2MrMl0pe2lmKG5bYysyXS50eXBlPT09XCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cIil7aS50eXBlPVwibWVkaWEtdHlwZVwiLG5bYysxXS50eXBlPVwia2V5d29yZFwiO2NvbnRpbnVlfWlmKG5bYysyXS50eXBlPT09XCJrZXl3b3JkXCIpe2kudHlwZT1cImtleXdvcmRcIixuW2MrMV0udHlwZT1cIm1lZGlhLXR5cGVcIjtjb250aW51ZX19aWYobltjKzNdJiZuW2MrM10udHlwZT09PVwibWVkaWEtZmVhdHVyZS1leHByZXNzaW9uXCIpe2kudHlwZT1cImtleXdvcmRcIixuW2MrMV0udHlwZT1cIm1lZGlhLXR5cGVcIixuW2MrMl0udHlwZT1cImtleXdvcmRcIjtjb250aW51ZX19fXJldHVybiBufWZ1bmN0aW9uIE9nKHQpe3ZhciBlPVtdLG49MCxyPTAscz0vXihcXHMqKXVybFxccypcXCgvLmV4ZWModCk7aWYocyE9PW51bGwpe2Zvcih2YXIgaT1zWzBdLmxlbmd0aCxvPTE7bz4wOyl7dmFyIGE9dFtpXTthPT09XCIoXCImJm8rKyxhPT09XCIpXCImJm8tLSxpKyt9ZS51bnNoaWZ0KG5ldyBDbC5kZWZhdWx0KHt0eXBlOlwidXJsXCIsdmFsdWU6dC5zdWJzdHJpbmcoMCxpKS50cmltKCksc291cmNlSW5kZXg6c1sxXS5sZW5ndGgsYmVmb3JlOnNbMV0sYWZ0ZXI6L14oXFxzKikvLmV4ZWModC5zdWJzdHJpbmcoaSkpWzFdfSkpLG49aX1mb3IodmFyIHU9bjt1PHQubGVuZ3RoO3UrKyl7dmFyIGM9dFt1XTtpZihjPT09XCIoXCImJnIrKyxjPT09XCIpXCImJnItLSxyPT09MCYmYz09PVwiLFwiKXt2YXIgZj10LnN1YnN0cmluZyhuLHUpLHA9L14oXFxzKikvLmV4ZWMoZilbMV07ZS5wdXNoKG5ldyB4cy5kZWZhdWx0KHt0eXBlOlwibWVkaWEtcXVlcnlcIix2YWx1ZTpmLnRyaW0oKSxzb3VyY2VJbmRleDpuK3AubGVuZ3RoLG5vZGVzOmJzKGYsbiksYmVmb3JlOnAsYWZ0ZXI6LyhcXHMqKSQvLmV4ZWMoZilbMV19KSksbj11KzF9fXZhciBsPXQuc3Vic3RyaW5nKG4pLGc9L14oXFxzKikvLmV4ZWMobClbMV07cmV0dXJuIGUucHVzaChuZXcgeHMuZGVmYXVsdCh7dHlwZTpcIm1lZGlhLXF1ZXJ5XCIsdmFsdWU6bC50cmltKCksc291cmNlSW5kZXg6bitnLmxlbmd0aCxub2RlczpicyhsLG4pLGJlZm9yZTpnLGFmdGVyOi8oXFxzKikkLy5leGVjKGwpWzFdfSkpLGV9fSk7dmFyIFBsPXkoa3M9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoa3MsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7a3MuZGVmYXVsdD1JZzt2YXIgQWc9dnMoKSxOZz1SZyhBZyksUGc9TmwoKTtmdW5jdGlvbiBSZyh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24gSWcodCl7cmV0dXJuIG5ldyBOZy5kZWZhdWx0KHtub2RlczooMCxQZy5wYXJzZU1lZGlhTGlzdCkodCksdHlwZTpcIm1lZGlhLXF1ZXJ5LWxpc3RcIix2YWx1ZTp0LnRyaW0oKX0pfX0pO3ZhciBTcz17fTtPcyhTcyx7bGFuZ3VhZ2VzOigpPT5VbCxvcHRpb25zOigpPT56bCxwYXJzZXJzOigpPT5FcyxwcmludGVyczooKT0+V2d9KTt2YXIgamw9KHQsZSxuLHIpPT57aWYoISh0JiZlPT1udWxsKSlyZXR1cm4gZS5yZXBsYWNlQWxsP2UucmVwbGFjZUFsbChuLHIpOm4uZ2xvYmFsP2UucmVwbGFjZShuLHIpOmUuc3BsaXQobikuam9pbihyKX0sVD1qbDt2YXIgRXQ9XCInXCIsQXM9J1wiJztmdW5jdGlvbiBKbCh0LGUpe2xldCBuPWU9PT0hMHx8ZT09PUV0P0V0OkFzLHI9bj09PUV0P0FzOkV0LHM9MCxpPTA7Zm9yKGxldCBvIG9mIHQpbz09PW4/cysrOm89PT1yJiZpKys7cmV0dXJuIHM+aT9yOm59dmFyIE5zPUpsO2Z1bmN0aW9uIFhsKHQsZSxuKXtsZXQgcj1lPT09J1wiJz9cIidcIjonXCInLGk9VCghMSx0LC9cXFxcKC4pfChbXCInXSkvZ3MsKG8sYSx1KT0+YT09PXI/YTp1PT09ZT9cIlxcXFxcIit1OnV8fChuJiYvXlteXFxuXFxyXCInMC03XFxcXGJmbnJ0LXZ4XFx1MjAyOFxcdTIwMjldJC8udGVzdChhKT9hOlwiXFxcXFwiK2EpKTtyZXR1cm4gZStpK2V9dmFyIFBzPVhsO2Z1bmN0aW9uIFpsKHQsZSl7bGV0IG49dC5zbGljZSgxLC0xKSxyPWUucGFyc2VyPT09XCJqc29uXCJ8fGUucGFyc2VyPT09XCJqc29uNVwiJiZlLnF1b3RlUHJvcHM9PT1cInByZXNlcnZlXCImJiFlLnNpbmdsZVF1b3RlPydcIic6ZS5fX2lzSW5IdG1sQXR0cmlidXRlP1wiJ1wiOk5zKG4sZS5zaW5nbGVRdW90ZSk7cmV0dXJuIFBzKG4sciwhKGUucGFyc2VyPT09XCJjc3NcInx8ZS5wYXJzZXI9PT1cImxlc3NcInx8ZS5wYXJzZXI9PT1cInNjc3NcInx8ZS5fX2VtYmVkZGVkSW5IdG1sKSl9dmFyIFN0PVpsO2Z1bmN0aW9uIGVjKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wfXZhciBlZT1lYzt2YXIgRmU9XCJzdHJpbmdcIiwkZT1cImFycmF5XCIsVWU9XCJjdXJzb3JcIix4ZT1cImluZGVudFwiLGJlPVwiYWxpZ25cIixXZT1cInRyaW1cIixrZT1cImdyb3VwXCIsdGU9XCJmaWxsXCIsbGU9XCJpZi1icmVha1wiLHplPVwiaW5kZW50LWlmLWJyZWFrXCIsVmU9XCJsaW5lLXN1ZmZpeFwiLFllPVwibGluZS1zdWZmaXgtYm91bmRhcnlcIixRPVwibGluZVwiLEdlPVwibGFiZWxcIixfZT1cImJyZWFrLXBhcmVudFwiLEN0PW5ldyBTZXQoW1VlLHhlLGJlLFdlLGtlLHRlLGxlLHplLFZlLFllLFEsR2UsX2VdKTtmdW5jdGlvbiB0Yyh0KXtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gRmU7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gJGU7aWYoIXQpcmV0dXJuO2xldHt0eXBlOmV9PXQ7aWYoQ3QuaGFzKGUpKXJldHVybiBlfXZhciBLZT10Yzt2YXIgcmM9dD0+bmV3IEludGwuTGlzdEZvcm1hdChcImVuLVVTXCIse3R5cGU6XCJkaXNqdW5jdGlvblwifSkuZm9ybWF0KHQpO2Z1bmN0aW9uIG5jKHQpe2xldCBlPXQ9PT1udWxsP1wibnVsbFwiOnR5cGVvZiB0O2lmKGUhPT1cInN0cmluZ1wiJiZlIT09XCJvYmplY3RcIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7ZX0nLCBcbkV4cGVjdGVkIGl0IHRvIGJlICdzdHJpbmcnIG9yICdvYmplY3QnLmA7aWYoS2UodCkpdGhyb3cgbmV3IEVycm9yKFwiZG9jIGlzIHZhbGlkLlwiKTtsZXQgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk7aWYobiE9PVwiW29iamVjdCBPYmplY3RdXCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke259Jy5gO2xldCByPXJjKFsuLi5DdF0ubWFwKHM9PmAnJHtzfSdgKSk7cmV0dXJuYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7dC50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke3J9LmB9dmFyIGVuPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkludmFsaWREb2NFcnJvclwiO2NvbnN0cnVjdG9yKGUpe3N1cGVyKG5jKGUpKSx0aGlzLmRvYz1lfX0sdG49ZW47dmFyIFJzPSgpPT57fSxjZT1ScyxPdD1ScztmdW5jdGlvbiBxKHQpe3JldHVybiBjZSh0KSx7dHlwZTp4ZSxjb250ZW50czp0fX1mdW5jdGlvbiBJcyh0LGUpe3JldHVybiBjZShlKSx7dHlwZTpiZSxjb250ZW50czplLG46dH19ZnVuY3Rpb24gRCh0LGU9e30pe3JldHVybiBjZSh0KSxPdChlLmV4cGFuZGVkU3RhdGVzLCEwKSx7dHlwZTprZSxpZDplLmlkLGNvbnRlbnRzOnQsYnJlYWs6ISFlLnNob3VsZEJyZWFrLGV4cGFuZGVkU3RhdGVzOmUuZXhwYW5kZWRTdGF0ZXN9fWZ1bmN0aW9uIHFzKHQpe3JldHVybiBJcyh7dHlwZTpcInJvb3RcIn0sdCl9ZnVuY3Rpb24gZmUodCl7cmV0dXJuIElzKC0xLHQpfWZ1bmN0aW9uIEhlKHQpe3JldHVybiBPdCh0KSx7dHlwZTp0ZSxwYXJ0czp0fX1mdW5jdGlvbiBBdCh0LGU9XCJcIixuPXt9KXtyZXR1cm4gY2UodCksZSE9PVwiXCImJmNlKGUpLHt0eXBlOmxlLGJyZWFrQ29udGVudHM6dCxmbGF0Q29udGVudHM6ZSxncm91cElkOm4uZ3JvdXBJZH19dmFyIFFlPXt0eXBlOl9lfTt2YXIgc2M9e3R5cGU6USxoYXJkOiEwfTt2YXIgQT17dHlwZTpRfSxNPXt0eXBlOlEsc29mdDohMH0sXz1bc2MsUWVdO2Z1bmN0aW9uIFkodCxlKXtjZSh0KSxPdChlKTtsZXQgbj1bXTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylyIT09MCYmbi5wdXNoKHQpLG4ucHVzaChlW3JdKTtyZXR1cm4gbn12YXIgaWM9KHQsZSxuKT0+e2lmKCEodCYmZT09bnVsbCkpcmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiBlPT1cInN0cmluZ1wiP2VbbjwwP2UubGVuZ3RoK246bl06ZS5hdChuKX0sRz1pYzt2YXIgRHM9dD0+e2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQ7aWYodC50eXBlIT09dGUpdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgZG9jIHRvIGJlICdhcnJheScgb3IgJyR7dGV9Jy5gKTtyZXR1cm4gdC5wYXJ0c307ZnVuY3Rpb24gb2ModCxlKXtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gZSh0KTtsZXQgbj1uZXcgTWFwO3JldHVybiByKHQpO2Z1bmN0aW9uIHIoaSl7aWYobi5oYXMoaSkpcmV0dXJuIG4uZ2V0KGkpO2xldCBvPXMoaSk7cmV0dXJuIG4uc2V0KGksbyksb31mdW5jdGlvbiBzKGkpe3N3aXRjaChLZShpKSl7Y2FzZSAkZTpyZXR1cm4gZShpLm1hcChyKSk7Y2FzZSB0ZTpyZXR1cm4gZSh7Li4uaSxwYXJ0czppLnBhcnRzLm1hcChyKX0pO2Nhc2UgbGU6cmV0dXJuIGUoey4uLmksYnJlYWtDb250ZW50czpyKGkuYnJlYWtDb250ZW50cyksZmxhdENvbnRlbnRzOnIoaS5mbGF0Q29udGVudHMpfSk7Y2FzZSBrZTp7bGV0e2V4cGFuZGVkU3RhdGVzOm8sY29udGVudHM6YX09aTtyZXR1cm4gbz8obz1vLm1hcChyKSxhPW9bMF0pOmE9cihhKSxlKHsuLi5pLGNvbnRlbnRzOmEsZXhwYW5kZWRTdGF0ZXM6b30pfWNhc2UgYmU6Y2FzZSB4ZTpjYXNlIHplOmNhc2UgR2U6Y2FzZSBWZTpyZXR1cm4gZSh7Li4uaSxjb250ZW50czpyKGkuY29udGVudHMpfSk7Y2FzZSBGZTpjYXNlIFVlOmNhc2UgV2U6Y2FzZSBZZTpjYXNlIFE6Y2FzZSBfZTpyZXR1cm4gZShpKTtkZWZhdWx0OnRocm93IG5ldyB0bihpKX19fWZ1bmN0aW9uIGFjKHQpe3JldHVybiB0LnR5cGU9PT1RJiYhdC5oYXJkP3Quc29mdD9cIlwiOlwiIFwiOnQudHlwZT09PWxlP3QuZmxhdENvbnRlbnRzOnR9ZnVuY3Rpb24gTHModCl7cmV0dXJuIG9jKHQsYWMpfXZhciBybj1jbGFzcyBleHRlbmRzIEVycm9ye25hbWU9XCJVbmV4cGVjdGVkTm9kZUVycm9yXCI7Y29uc3RydWN0b3IoZSxuLHI9XCJ0eXBlXCIpe3N1cGVyKGBVbmV4cGVjdGVkICR7bn0gbm9kZSAke3J9OiAke0pTT04uc3RyaW5naWZ5KGVbcl0pfS5gKSx0aGlzLm5vZGU9ZX19LE1zPXJuO2Z1bmN0aW9uIHVjKHQpe3JldHVybih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT09XCJmcm9udC1tYXR0ZXJcIn12YXIgVGU9dWM7dmFyIGxjPW5ldyBTZXQoW1wicmF3XCIsXCJyYXdzXCIsXCJzb3VyY2VJbmRleFwiLFwic291cmNlXCIsXCJiZWZvcmVcIixcImFmdGVyXCIsXCJ0cmFpbGluZ0NvbW1hXCIsXCJzcGFjZXNcIl0pO2Z1bmN0aW9uIEJzKHQsZSxuKXtpZihUZSh0KSYmdC5sYW5nPT09XCJ5YW1sXCImJmRlbGV0ZSBlLnZhbHVlLHQudHlwZT09PVwiY3NzLWNvbW1lbnRcIiYmbi50eXBlPT09XCJjc3Mtcm9vdFwiJiZuLm5vZGVzLmxlbmd0aD4wJiYoKG4ubm9kZXNbMF09PT10fHxUZShuLm5vZGVzWzBdKSYmbi5ub2Rlc1sxXT09PXQpJiYoZGVsZXRlIGUudGV4dCwvXlxcKlxccypAKD86Zm9ybWF0fHByZXR0aWVyKVxccyokLy50ZXN0KHQudGV4dCkpfHxuLnR5cGU9PT1cImNzcy1yb290XCImJkcoITEsbi5ub2RlcywtMSk9PT10KSlyZXR1cm4gbnVsbDtpZih0LnR5cGU9PT1cInZhbHVlLXJvb3RcIiYmZGVsZXRlIGUudGV4dCwodC50eXBlPT09XCJtZWRpYS1xdWVyeVwifHx0LnR5cGU9PT1cIm1lZGlhLXF1ZXJ5LWxpc3RcInx8dC50eXBlPT09XCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cIikmJmRlbGV0ZSBlLnZhbHVlLHQudHlwZT09PVwiY3NzLXJ1bGVcIiYmZGVsZXRlIGUucGFyYW1zLHQudHlwZT09PVwic2VsZWN0b3ItY29tYmluYXRvclwiJiYoZS52YWx1ZT1UKCExLGUudmFsdWUsL1xccysvZyxcIiBcIikpLHQudHlwZT09PVwibWVkaWEtZmVhdHVyZVwiJiYoZS52YWx1ZT1UKCExLGUudmFsdWUsXCIgXCIsXCJcIikpLCh0LnR5cGU9PT1cInZhbHVlLXdvcmRcIiYmKHQuaXNDb2xvciYmdC5pc0hleHx8W1wiaW5pdGlhbFwiLFwiaW5oZXJpdFwiLFwidW5zZXRcIixcInJldmVydFwiXS5pbmNsdWRlcyhlLnZhbHVlLnRvTG93ZXJDYXNlKCkpKXx8dC50eXBlPT09XCJtZWRpYS1mZWF0dXJlXCJ8fHQudHlwZT09PVwic2VsZWN0b3Itcm9vdC1pbnZhbGlkXCJ8fHQudHlwZT09PVwic2VsZWN0b3ItcHNldWRvXCIpJiYoZS52YWx1ZT1lLnZhbHVlLnRvTG93ZXJDYXNlKCkpLHQudHlwZT09PVwiY3NzLWRlY2xcIiYmKGUucHJvcD1lLnByb3AudG9Mb3dlckNhc2UoKSksKHQudHlwZT09PVwiY3NzLWF0cnVsZVwifHx0LnR5cGU9PT1cImNzcy1pbXBvcnRcIikmJihlLm5hbWU9ZS5uYW1lLnRvTG93ZXJDYXNlKCkpLHQudHlwZT09PVwidmFsdWUtbnVtYmVyXCImJihlLnVuaXQ9ZS51bml0LnRvTG93ZXJDYXNlKCkpLHQudHlwZT09PVwidmFsdWUtdW5rbm93blwiJiYoZS52YWx1ZT1UKCExLGUudmFsdWUsLzskL2csXCJcIikpLCh0LnR5cGU9PT1cIm1lZGlhLWZlYXR1cmVcInx8dC50eXBlPT09XCJtZWRpYS1rZXl3b3JkXCJ8fHQudHlwZT09PVwibWVkaWEtdHlwZVwifHx0LnR5cGU9PT1cIm1lZGlhLXVua25vd25cInx8dC50eXBlPT09XCJtZWRpYS11cmxcInx8dC50eXBlPT09XCJtZWRpYS12YWx1ZVwifHx0LnR5cGU9PT1cInNlbGVjdG9yLWF0dHJpYnV0ZVwifHx0LnR5cGU9PT1cInNlbGVjdG9yLXN0cmluZ1wifHx0LnR5cGU9PT1cInNlbGVjdG9yLWNsYXNzXCJ8fHQudHlwZT09PVwic2VsZWN0b3ItY29tYmluYXRvclwifHx0LnR5cGU9PT1cInZhbHVlLXN0cmluZ1wiKSYmZS52YWx1ZSYmKGUudmFsdWU9Y2MoZS52YWx1ZSkpLHQudHlwZT09PVwic2VsZWN0b3ItYXR0cmlidXRlXCImJihlLmF0dHJpYnV0ZT1lLmF0dHJpYnV0ZS50cmltKCksZS5uYW1lc3BhY2UmJnR5cGVvZiBlLm5hbWVzcGFjZT09XCJzdHJpbmdcIiYmKGUubmFtZXNwYWNlPWUubmFtZXNwYWNlLnRyaW0oKSxlLm5hbWVzcGFjZS5sZW5ndGg9PT0wJiYoZS5uYW1lc3BhY2U9ITApKSxlLnZhbHVlJiYoZS52YWx1ZT1UKCExLGUudmFsdWUudHJpbSgpLC9eW1wiJ118W1wiJ10kL2csXCJcIiksZGVsZXRlIGUucXVvdGVkKSksKHQudHlwZT09PVwibWVkaWEtdmFsdWVcInx8dC50eXBlPT09XCJtZWRpYS10eXBlXCJ8fHQudHlwZT09PVwidmFsdWUtbnVtYmVyXCJ8fHQudHlwZT09PVwic2VsZWN0b3Itcm9vdC1pbnZhbGlkXCJ8fHQudHlwZT09PVwic2VsZWN0b3ItY2xhc3NcInx8dC50eXBlPT09XCJzZWxlY3Rvci1jb21iaW5hdG9yXCJ8fHQudHlwZT09PVwic2VsZWN0b3ItdGFnXCIpJiZlLnZhbHVlJiYoZS52YWx1ZT1UKCExLGUudmFsdWUsLyhbXFxkKy5FZS1dKykoW0EtWmEtel0qKS9nLChyLHMsaSk9PntsZXQgbz1OdW1iZXIocyk7cmV0dXJuIE51bWJlci5pc05hTihvKT9yOm8raS50b0xvd2VyQ2FzZSgpfSkpLHQudHlwZT09PVwic2VsZWN0b3ItdGFnXCIpe2xldCByPXQudmFsdWUudG9Mb3dlckNhc2UoKTtbXCJmcm9tXCIsXCJ0b1wiXS5pbmNsdWRlcyhyKSYmKGUudmFsdWU9cil9aWYodC50eXBlPT09XCJjc3MtYXRydWxlXCImJnQubmFtZS50b0xvd2VyQ2FzZSgpPT09XCJzdXBwb3J0c1wiJiZkZWxldGUgZS52YWx1ZSx0LnR5cGU9PT1cInNlbGVjdG9yLXVua25vd25cIiYmZGVsZXRlIGUudmFsdWUsdC50eXBlPT09XCJ2YWx1ZS1jb21tYV9ncm91cFwiKXtsZXQgcj10Lmdyb3Vwcy5maW5kSW5kZXgocz0+cy50eXBlPT09XCJ2YWx1ZS1udW1iZXJcIiYmcy51bml0PT09XCIuLi5cIik7ciE9PS0xJiYoZS5ncm91cHNbcl0udW5pdD1cIlwiLGUuZ3JvdXBzLnNwbGljZShyKzEsMCx7dHlwZTpcInZhbHVlLXdvcmRcIix2YWx1ZTpcIi4uLlwiLGlzQ29sb3I6ITEsaXNIZXg6ITF9KSl9aWYodC50eXBlPT09XCJ2YWx1ZS1jb21tYV9ncm91cFwiJiZ0Lmdyb3Vwcy5zb21lKHI9PnIudHlwZT09PVwidmFsdWUtYXR3b3JkXCImJnIudmFsdWUuZW5kc1dpdGgoXCJbXCIpfHxyLnR5cGU9PT1cInZhbHVlLXdvcmRcIiYmci52YWx1ZS5zdGFydHNXaXRoKFwiXVwiKSkpcmV0dXJue3R5cGU6XCJ2YWx1ZS1hdHdvcmRcIix2YWx1ZTp0Lmdyb3Vwcy5tYXAocj0+ci52YWx1ZSkuam9pbihcIlwiKSxncm91cDp7b3BlbjpudWxsLGNsb3NlOm51bGwsZ3JvdXBzOltdLHR5cGU6XCJ2YWx1ZS1wYXJlbl9ncm91cFwifX19QnMuaWdub3JlZFByb3BlcnRpZXM9bGM7ZnVuY3Rpb24gY2ModCl7cmV0dXJuIFQoITEsVCghMSx0LFwiJ1wiLCdcIicpLC9cXFxcKFteXFxkQS1GYS1mXSkvZyxcIiQxXCIpfXZhciBGcz1Cczthc3luYyBmdW5jdGlvbiBmYyh0LGUpe2lmKHQubGFuZz09PVwieWFtbFwiKXtsZXQgbj10LnZhbHVlLnRyaW0oKSxyPW4/YXdhaXQgZShuLHtwYXJzZXI6XCJ5YW1sXCJ9KTpcIlwiO3JldHVybiBxcyhbdC5zdGFydERlbGltaXRlcixfLHIscj9fOlwiXCIsdC5lbmREZWxpbWl0ZXJdKX19dmFyICRzPWZjO2Z1bmN0aW9uIFVzKHQpe2xldHtub2RlOmV9PXQ7aWYoZS50eXBlPT09XCJmcm9udC1tYXR0ZXJcIilyZXR1cm4gYXN5bmMgbj0+e2xldCByPWF3YWl0ICRzKGUsbik7cmV0dXJuIHI/W3IsX106dm9pZCAwfX1Vcy5nZXRWaXNpdG9yS2V5cz10PT50LnR5cGU9PT1cImNzcy1yb290XCI/W1wiZnJvbnRNYXR0ZXJcIl06W107dmFyIFdzPVVzO3ZhciByZT11ZShRcygpLDEpO2Z1bmN0aW9uIGJjKHQpe2lmKCF0LnN0YXJ0c1dpdGgoXCIjIVwiKSlyZXR1cm5cIlwiO2xldCBlPXQuaW5kZXhPZihgXG5gKTtyZXR1cm4gZT09PS0xP3Q6dC5zbGljZSgwLGUpfXZhciBqcz1iYztmdW5jdGlvbiBKcyh0KXtsZXQgZT1qcyh0KTtlJiYodD10LnNsaWNlKGUubGVuZ3RoKzEpKTtsZXQgbj0oMCxyZS5leHRyYWN0KSh0KSx7cHJhZ21hczpyLGNvbW1lbnRzOnN9PSgwLHJlLnBhcnNlV2l0aENvbW1lbnRzKShuKTtyZXR1cm57c2hlYmFuZzplLHRleHQ6dCxwcmFnbWFzOnIsY29tbWVudHM6c319ZnVuY3Rpb24gWHModCl7bGV0e3ByYWdtYXM6ZX09SnModCk7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwicHJldHRpZXJcIil8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZm9ybWF0XCIpfWZ1bmN0aW9uIFpzKHQpe2xldHtzaGViYW5nOmUsdGV4dDpuLHByYWdtYXM6cixjb21tZW50czpzfT1Kcyh0KSxpPSgwLHJlLnN0cmlwKShuKSxvPSgwLHJlLnByaW50KSh7cHJhZ21hczp7Zm9ybWF0OlwiXCIsLi4ucn0sY29tbWVudHM6cy50cmltU3RhcnQoKX0pO3JldHVybihlP2Ake2V9XG5gOlwiXCIpK28rKGkuc3RhcnRzV2l0aChgXG5gKT9gXG5gOmBcblxuYCkraX12YXIga2M9bmV3IFJlZ0V4cChcIl4oPzxzdGFydERlbGltaXRlcj4tezN9fFxcXFwrezN9KSg/PGxhbmd1YWdlPlteXFxcXG5dKilcXFxcbig/OnwoPzx2YWx1ZT4uKj8pXFxcXG4pKD88ZW5kRGVsaW1pdGVyPlxcXFxrPHN0YXJ0RGVsaW1pdGVyPnxcXFxcLnszfSlbXlxcXFxTXFxcXG5dKig/OlxcXFxufCQpXCIsXCJzXCIpO2Z1bmN0aW9uIF9jKHQpe2xldCBlPXQubWF0Y2goa2MpO2lmKCFlKXJldHVybntjb250ZW50OnR9O2xldHtzdGFydERlbGltaXRlcjpuLGxhbmd1YWdlOnIsdmFsdWU6cz1cIlwiLGVuZERlbGltaXRlcjppfT1lLmdyb3VwcyxvPXIudHJpbSgpfHxcInlhbWxcIjtpZihuPT09XCIrKytcIiYmKG89XCJ0b21sXCIpLG8hPT1cInlhbWxcIiYmbiE9PWkpcmV0dXJue2NvbnRlbnQ6dH07bGV0W2FdPWU7cmV0dXJue2Zyb250TWF0dGVyOnt0eXBlOlwiZnJvbnQtbWF0dGVyXCIsbGFuZzpvLHZhbHVlOnMsc3RhcnREZWxpbWl0ZXI6bixlbmREZWxpbWl0ZXI6aSxyYXc6YS5yZXBsYWNlKC9cXG4kLyxcIlwiKX0sY29udGVudDpUKCExLGEsL1teXFxuXS9nLFwiIFwiKSt0LnNsaWNlKGEubGVuZ3RoKX19dmFyIGplPV9jO2Z1bmN0aW9uIGVpKHQpe3JldHVybiBYcyhqZSh0KS5jb250ZW50KX1mdW5jdGlvbiB0aSh0KXtsZXR7ZnJvbnRNYXR0ZXI6ZSxjb250ZW50Om59PWplKHQpO3JldHVybihlP2UucmF3K2BcblxuYDpcIlwiKStacyhuKX12YXIgSmU9bnVsbDtmdW5jdGlvbiBYZSh0KXtpZihKZSE9PW51bGwmJnR5cGVvZiBKZS5wcm9wZXJ0eSl7bGV0IGU9SmU7cmV0dXJuIEplPVhlLnByb3RvdHlwZT1udWxsLGV9cmV0dXJuIEplPVhlLnByb3RvdHlwZT10Pz9PYmplY3QuY3JlYXRlKG51bGwpLG5ldyBYZX12YXIgVGM9MTA7Zm9yKGxldCB0PTA7dDw9VGM7dCsrKVhlKCk7ZnVuY3Rpb24gbm4odCl7cmV0dXJuIFhlKHQpfWZ1bmN0aW9uIEVjKHQsZT1cInR5cGVcIil7bm4odCk7ZnVuY3Rpb24gbihyKXtsZXQgcz1yW2VdLGk9dFtzXTtpZighQXJyYXkuaXNBcnJheShpKSl0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihgTWlzc2luZyB2aXNpdG9yIGtleXMgZm9yICcke3N9Jy5gKSx7bm9kZTpyfSk7cmV0dXJuIGl9cmV0dXJuIG59dmFyIHJpPUVjO3ZhciBTYz17XCJmcm9udC1tYXR0ZXJcIjpbXSxcImNzcy1yb290XCI6W1wiZnJvbnRNYXR0ZXJcIixcIm5vZGVzXCJdLFwiY3NzLWNvbW1lbnRcIjpbXSxcImNzcy1ydWxlXCI6W1wic2VsZWN0b3JcIixcIm5vZGVzXCJdLFwiY3NzLWRlY2xcIjpbXCJ2YWx1ZVwiLFwic2VsZWN0b3JcIixcIm5vZGVzXCJdLFwiY3NzLWF0cnVsZVwiOltcInNlbGVjdG9yXCIsXCJwYXJhbXNcIixcInZhbHVlXCIsXCJub2Rlc1wiXSxcIm1lZGlhLXF1ZXJ5LWxpc3RcIjpbXCJub2Rlc1wiXSxcIm1lZGlhLXF1ZXJ5XCI6W1wibm9kZXNcIl0sXCJtZWRpYS10eXBlXCI6W10sXCJtZWRpYS1mZWF0dXJlLWV4cHJlc3Npb25cIjpbXCJub2Rlc1wiXSxcIm1lZGlhLWZlYXR1cmVcIjpbXSxcIm1lZGlhLWNvbG9uXCI6W10sXCJtZWRpYS12YWx1ZVwiOltdLFwibWVkaWEta2V5d29yZFwiOltdLFwibWVkaWEtdXJsXCI6W10sXCJtZWRpYS11bmtub3duXCI6W10sXCJzZWxlY3Rvci1yb290XCI6W1wibm9kZXNcIl0sXCJzZWxlY3Rvci1zZWxlY3RvclwiOltcIm5vZGVzXCJdLFwic2VsZWN0b3ItY29tbWVudFwiOltdLFwic2VsZWN0b3Itc3RyaW5nXCI6W10sXCJzZWxlY3Rvci10YWdcIjpbXSxcInNlbGVjdG9yLWlkXCI6W10sXCJzZWxlY3Rvci1jbGFzc1wiOltdLFwic2VsZWN0b3ItYXR0cmlidXRlXCI6W10sXCJzZWxlY3Rvci1jb21iaW5hdG9yXCI6W1wibm9kZXNcIl0sXCJzZWxlY3Rvci11bml2ZXJzYWxcIjpbXSxcInNlbGVjdG9yLXBzZXVkb1wiOltcIm5vZGVzXCJdLFwic2VsZWN0b3ItbmVzdGluZ1wiOltdLFwic2VsZWN0b3ItdW5rbm93blwiOltdLFwidmFsdWUtdmFsdWVcIjpbXCJncm91cFwiXSxcInZhbHVlLXJvb3RcIjpbXCJncm91cFwiXSxcInZhbHVlLWNvbW1lbnRcIjpbXSxcInZhbHVlLWNvbW1hX2dyb3VwXCI6W1wiZ3JvdXBzXCJdLFwidmFsdWUtcGFyZW5fZ3JvdXBcIjpbXCJvcGVuXCIsXCJncm91cHNcIixcImNsb3NlXCJdLFwidmFsdWUtZnVuY1wiOltcImdyb3VwXCJdLFwidmFsdWUtcGFyZW5cIjpbXSxcInZhbHVlLW51bWJlclwiOltdLFwidmFsdWUtb3BlcmF0b3JcIjpbXSxcInZhbHVlLXdvcmRcIjpbXSxcInZhbHVlLWNvbG9uXCI6W10sXCJ2YWx1ZS1jb21tYVwiOltdLFwidmFsdWUtc3RyaW5nXCI6W10sXCJ2YWx1ZS1hdHdvcmRcIjpbXSxcInZhbHVlLXVuaWNvZGUtcmFuZ2VcIjpbXSxcInZhbHVlLXVua25vd25cIjpbXX0sbmk9U2M7dmFyIENjPXJpKG5pKSxzaT1DYzt2YXIgT2M9bmV3IFNldChbXCJyZWRcIixcImdyZWVuXCIsXCJibHVlXCIsXCJhbHBoYVwiLFwiYVwiLFwicmdiXCIsXCJodWVcIixcImhcIixcInNhdHVyYXRpb25cIixcInNcIixcImxpZ2h0bmVzc1wiLFwibFwiLFwid2hpdGVuZXNzXCIsXCJ3XCIsXCJibGFja25lc3NcIixcImJcIixcInRpbnRcIixcInNoYWRlXCIsXCJibGVuZFwiLFwiYmxlbmRhXCIsXCJjb250cmFzdFwiLFwiaHNsXCIsXCJoc2xhXCIsXCJod2JcIixcImh3YmFcIl0pO2Z1bmN0aW9uIGlpKHQpe3ZhciBlLG47cmV0dXJuKG49KGU9dC5maW5kQW5jZXN0b3Iocj0+ci50eXBlPT09XCJjc3MtZGVjbFwiKSk9PW51bGw/dm9pZCAwOmUucHJvcCk9PW51bGw/dm9pZCAwOm4udG9Mb3dlckNhc2UoKX12YXIgQWM9bmV3IFNldChbXCJpbml0aWFsXCIsXCJpbmhlcml0XCIsXCJ1bnNldFwiLFwicmV2ZXJ0XCJdKTtmdW5jdGlvbiBvaSh0KXtyZXR1cm4gQWMuaGFzKHQudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gYWkodCxlKXt2YXIgcjtsZXQgbj10LmZpbmRBbmNlc3RvcihzPT5zLnR5cGU9PT1cImNzcy1hdHJ1bGVcIik7cmV0dXJuKChyPW49PW51bGw/dm9pZCAwOm4ubmFtZSk9PW51bGw/dm9pZCAwOnIudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChcImtleWZyYW1lc1wiKSkmJltcImZyb21cIixcInRvXCJdLmluY2x1ZGVzKGUudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gbmUodCl7cmV0dXJuIHQuaW5jbHVkZXMoXCIkXCIpfHx0LmluY2x1ZGVzKFwiQFwiKXx8dC5pbmNsdWRlcyhcIiNcIil8fHQuc3RhcnRzV2l0aChcIiVcIil8fHQuc3RhcnRzV2l0aChcIi0tXCIpfHx0LnN0YXJ0c1dpdGgoXCI6LS1cIil8fHQuaW5jbHVkZXMoXCIoXCIpJiZ0LmluY2x1ZGVzKFwiKVwiKT90OnQudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBFZSh0LGUpe3ZhciByO2xldCBuPXQuZmluZEFuY2VzdG9yKHM9PnMudHlwZT09PVwidmFsdWUtZnVuY1wiKTtyZXR1cm4oKHI9bj09bnVsbD92b2lkIDA6bi52YWx1ZSk9PW51bGw/dm9pZCAwOnIudG9Mb3dlckNhc2UoKSk9PT1lfWZ1bmN0aW9uIHVpKHQpe3ZhciByO2xldCBlPXQuZmluZEFuY2VzdG9yKHM9PnMudHlwZT09PVwiY3NzLXJ1bGVcIiksbj0ocj1lPT1udWxsP3ZvaWQgMDplLnJhd3MpPT1udWxsP3ZvaWQgMDpyLnNlbGVjdG9yO3JldHVybiBuJiYobi5zdGFydHNXaXRoKFwiOmltcG9ydFwiKXx8bi5zdGFydHNXaXRoKFwiOmV4cG9ydFwiKSl9ZnVuY3Rpb24gU2UodCxlKXtsZXQgbj1BcnJheS5pc0FycmF5KGUpP2U6W2VdLHI9dC5maW5kQW5jZXN0b3Iocz0+cy50eXBlPT09XCJjc3MtYXRydWxlXCIpO3JldHVybiByJiZuLmluY2x1ZGVzKHIubmFtZS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiBsaSh0KXt2YXIgbjtsZXR7bm9kZTplfT10O3JldHVybiBlLmdyb3Vwc1swXS52YWx1ZT09PVwidXJsXCImJmUuZ3JvdXBzLmxlbmd0aD09PTImJigobj10LmZpbmRBbmNlc3RvcihyPT5yLnR5cGU9PT1cImNzcy1hdHJ1bGVcIikpPT1udWxsP3ZvaWQgMDpuLm5hbWUpPT09XCJpbXBvcnRcIn1mdW5jdGlvbiBjaSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS1mdW5jXCImJnQudmFsdWUudG9Mb3dlckNhc2UoKT09PVwidXJsXCJ9ZnVuY3Rpb24gZmkodCl7cmV0dXJuIHQudHlwZT09PVwidmFsdWUtZnVuY1wiJiZ0LnZhbHVlLnRvTG93ZXJDYXNlKCk9PT1cInZhclwifWZ1bmN0aW9uIE50KHQsZSl7dmFyIHI7bGV0IG49KHI9dC5wYXJlbnQpPT1udWxsP3ZvaWQgMDpyLm5vZGVzO3JldHVybiBuJiZuLmluZGV4T2YoZSk9PT1uLmxlbmd0aC0xfWZ1bmN0aW9uIHBpKHQpe2xldHtzZWxlY3RvcjplfT10O3JldHVybiBlP3R5cGVvZiBlPT1cInN0cmluZ1wiJiYvXkAuKzouKiQvLnRlc3QoZSl8fGUudmFsdWUmJi9eQC4rOi4qJC8udGVzdChlLnZhbHVlKTohMX1mdW5jdGlvbiBoaSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJltcImZyb21cIixcInRocm91Z2hcIixcImVuZFwiXS5pbmNsdWRlcyh0LnZhbHVlKX1mdW5jdGlvbiBkaSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJltcImFuZFwiLFwib3JcIixcIm5vdFwiXS5pbmNsdWRlcyh0LnZhbHVlKX1mdW5jdGlvbiBtaSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJnQudmFsdWU9PT1cImluXCJ9ZnVuY3Rpb24gUHQodCl7cmV0dXJuIHQudHlwZT09PVwidmFsdWUtb3BlcmF0b3JcIiYmdC52YWx1ZT09PVwiKlwifWZ1bmN0aW9uIFplKHQpe3JldHVybiB0LnR5cGU9PT1cInZhbHVlLW9wZXJhdG9yXCImJnQudmFsdWU9PT1cIi9cIn1mdW5jdGlvbiBqKHQpe3JldHVybiB0LnR5cGU9PT1cInZhbHVlLW9wZXJhdG9yXCImJnQudmFsdWU9PT1cIitcIn1mdW5jdGlvbiBoZSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS1vcGVyYXRvclwiJiZ0LnZhbHVlPT09XCItXCJ9ZnVuY3Rpb24gTmModCl7cmV0dXJuIHQudHlwZT09PVwidmFsdWUtb3BlcmF0b3JcIiYmdC52YWx1ZT09PVwiJVwifWZ1bmN0aW9uIFJ0KHQpe3JldHVybiBQdCh0KXx8WmUodCl8fGoodCl8fGhlKHQpfHxOYyh0KX1mdW5jdGlvbiB5aSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJltcIj09XCIsXCIhPVwiXS5pbmNsdWRlcyh0LnZhbHVlKX1mdW5jdGlvbiBnaSh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJltcIjxcIixcIj5cIixcIjw9XCIsXCI+PVwiXS5pbmNsdWRlcyh0LnZhbHVlKX1mdW5jdGlvbiBldCh0LGUpe3JldHVybiBlLnBhcnNlcj09PVwic2Nzc1wiJiZ0LnR5cGU9PT1cImNzcy1hdHJ1bGVcIiYmW1wiaWZcIixcImVsc2VcIixcImZvclwiLFwiZWFjaFwiLFwid2hpbGVcIl0uaW5jbHVkZXModC5uYW1lKX1mdW5jdGlvbiBvbih0KXt2YXIgZTtyZXR1cm4oKGU9dC5yYXdzKT09bnVsbD92b2lkIDA6ZS5wYXJhbXMpJiYvXlxcKFxccypcXCkkLy50ZXN0KHQucmF3cy5wYXJhbXMpfWZ1bmN0aW9uIGFuKHQpe3JldHVybiB0Lm5hbWUuc3RhcnRzV2l0aChcInByZXR0aWVyLXBsYWNlaG9sZGVyXCIpfWZ1bmN0aW9uIHdpKHQpe3JldHVybiB0LnByb3Auc3RhcnRzV2l0aChcIkBwcmV0dGllci1wbGFjZWhvbGRlclwiKX1mdW5jdGlvbiB2aSh0LGUpe3JldHVybiB0LnZhbHVlPT09XCIkJFwiJiZ0LnR5cGU9PT1cInZhbHVlLWZ1bmNcIiYmKGU9PW51bGw/dm9pZCAwOmUudHlwZSk9PT1cInZhbHVlLXdvcmRcIiYmIWUucmF3cy5iZWZvcmV9ZnVuY3Rpb24geGkodCl7dmFyIGUsbjtyZXR1cm4oKGU9dC52YWx1ZSk9PW51bGw/dm9pZCAwOmUudHlwZSk9PT1cInZhbHVlLXJvb3RcIiYmKChuPXQudmFsdWUuZ3JvdXApPT1udWxsP3ZvaWQgMDpuLnR5cGUpPT09XCJ2YWx1ZS12YWx1ZVwiJiZ0LnByb3AudG9Mb3dlckNhc2UoKT09PVwiY29tcG9zZXNcIn1mdW5jdGlvbiBiaSh0KXt2YXIgZSxuLHI7cmV0dXJuKChyPShuPShlPXQudmFsdWUpPT1udWxsP3ZvaWQgMDplLmdyb3VwKT09bnVsbD92b2lkIDA6bi5ncm91cCk9PW51bGw/dm9pZCAwOnIudHlwZSk9PT1cInZhbHVlLXBhcmVuX2dyb3VwXCImJnQudmFsdWUuZ3JvdXAuZ3JvdXAub3BlbiE9PW51bGwmJnQudmFsdWUuZ3JvdXAuZ3JvdXAuY2xvc2UhPT1udWxsfWZ1bmN0aW9uIGRlKHQpe3ZhciBlO3JldHVybigoZT10LnJhd3MpPT1udWxsP3ZvaWQgMDplLmJlZm9yZSk9PT1cIlwifWZ1bmN0aW9uIEl0KHQpe3ZhciBlLG47cmV0dXJuIHQudHlwZT09PVwidmFsdWUtY29tbWFfZ3JvdXBcIiYmKChuPShlPXQuZ3JvdXBzKT09bnVsbD92b2lkIDA6ZVsxXSk9PW51bGw/dm9pZCAwOm4udHlwZSk9PT1cInZhbHVlLWNvbG9uXCJ9ZnVuY3Rpb24gc24odCl7dmFyIGU7cmV0dXJuIHQudHlwZT09PVwidmFsdWUtcGFyZW5fZ3JvdXBcIiYmKChlPXQuZ3JvdXBzKT09bnVsbD92b2lkIDA6ZVswXSkmJkl0KHQuZ3JvdXBzWzBdKX1mdW5jdGlvbiB1bih0LGUpe3ZhciBpO2lmKGUucGFyc2VyIT09XCJzY3NzXCIpcmV0dXJuITE7bGV0e25vZGU6bn09dDtpZihuLmdyb3Vwcy5sZW5ndGg9PT0wKXJldHVybiExO2xldCByPXQuZ3JhbmRwYXJlbnQ7aWYoIXNuKG4pJiYhKHImJnNuKHIpKSlyZXR1cm4hMTtsZXQgcz10LmZpbmRBbmNlc3RvcihvPT5vLnR5cGU9PT1cImNzcy1kZWNsXCIpO3JldHVybiEhKChpPXM9PW51bGw/dm9pZCAwOnMucHJvcCkhPW51bGwmJmkuc3RhcnRzV2l0aChcIiRcIil8fHNuKHIpfHxyLnR5cGU9PT1cInZhbHVlLWZ1bmNcIil9ZnVuY3Rpb24gbG4odCl7cmV0dXJuIHQudHlwZT09PVwidmFsdWUtY29tbWVudFwiJiZ0LmlubGluZX1mdW5jdGlvbiBxdCh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJnQudmFsdWU9PT1cIiNcIn1mdW5jdGlvbiBjbih0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJnQudmFsdWU9PT1cIntcIn1mdW5jdGlvbiBEdCh0KXtyZXR1cm4gdC50eXBlPT09XCJ2YWx1ZS13b3JkXCImJnQudmFsdWU9PT1cIn1cIn1mdW5jdGlvbiB0dCh0KXtyZXR1cm5bXCJ2YWx1ZS13b3JkXCIsXCJ2YWx1ZS1hdHdvcmRcIl0uaW5jbHVkZXModC50eXBlKX1mdW5jdGlvbiBMdCh0KXtyZXR1cm4odD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwidmFsdWUtY29sb25cIn1mdW5jdGlvbiBraSh0LGUpe2lmKCFJdChlKSlyZXR1cm4hMTtsZXR7Z3JvdXBzOm59PWUscj1uLmluZGV4T2YodCk7cmV0dXJuIHI9PT0tMT8hMTpMdChuW3IrMV0pfWZ1bmN0aW9uIF9pKHQpe3JldHVybiB0LnZhbHVlJiZbXCJub3RcIixcImFuZFwiLFwib3JcIl0uaW5jbHVkZXModC52YWx1ZS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiBUaSh0KXtyZXR1cm4gdC50eXBlIT09XCJ2YWx1ZS1mdW5jXCI/ITE6T2MuaGFzKHQudmFsdWUudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gQ2UodCl7cmV0dXJuL1xcL1xcLy8udGVzdCh0LnNwbGl0KC9bXFxuXFxyXS8pLnBvcCgpKX1mdW5jdGlvbiBydCh0KXtyZXR1cm4odD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwidmFsdWUtYXR3b3JkXCImJnQudmFsdWUuc3RhcnRzV2l0aChcInByZXR0aWVyLXBsYWNlaG9sZGVyLVwiKX1mdW5jdGlvbiBFaSh0LGUpe3ZhciBuLHI7aWYoKChuPXQub3Blbik9PW51bGw/dm9pZCAwOm4udmFsdWUpIT09XCIoXCJ8fCgocj10LmNsb3NlKT09bnVsbD92b2lkIDA6ci52YWx1ZSkhPT1cIilcInx8dC5ncm91cHMuc29tZShzPT5zLnR5cGUhPT1cInZhbHVlLWNvbW1hX2dyb3VwXCIpKXJldHVybiExO2lmKGUudHlwZT09PVwidmFsdWUtY29tbWFfZ3JvdXBcIil7bGV0IHM9ZS5ncm91cHMuaW5kZXhPZih0KS0xLGk9ZS5ncm91cHNbc107aWYoKGk9PW51bGw/dm9pZCAwOmkudHlwZSk9PT1cInZhbHVlLXdvcmRcIiYmaS52YWx1ZT09PVwid2l0aFwiKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG50KHQpe3ZhciBlLG47cmV0dXJuIHQudHlwZT09PVwidmFsdWUtcGFyZW5fZ3JvdXBcIiYmKChlPXQub3Blbik9PW51bGw/dm9pZCAwOmUudmFsdWUpPT09XCIoXCImJigobj10LmNsb3NlKT09bnVsbD92b2lkIDA6bi52YWx1ZSk9PT1cIilcIn1mdW5jdGlvbiBNdCh0KXtyZXR1cm4oZSxuLHIpPT57bGV0IHM9ISEociE9bnVsbCYmci5iYWNrd2FyZHMpO2lmKG49PT0hMSlyZXR1cm4hMTtsZXR7bGVuZ3RoOml9PWUsbz1uO2Zvcig7bz49MCYmbzxpOyl7bGV0IGE9ZS5jaGFyQXQobyk7aWYodCBpbnN0YW5jZW9mIFJlZ0V4cCl7aWYoIXQudGVzdChhKSlyZXR1cm4gb31lbHNlIGlmKCF0LmluY2x1ZGVzKGEpKXJldHVybiBvO3M/by0tOm8rK31yZXR1cm4gbz09PS0xfHxvPT09aT9vOiExfX12YXIgcnY9TXQoL1xccy8pLEJ0PU10KFwiIFx0XCIpLFNpPU10KFwiLDsgXHRcIiksRnQ9TXQoL1teXFxuXFxyXS8pO2Z1bmN0aW9uIFBjKHQsZSl7bGV0IG49MDtmb3IobGV0IHI9MDtyPHQubGluZS0xOysrciluPWUuaW5kZXhPZihgXG5gLG4pKzE7cmV0dXJuIG4rdC5jb2x1bW59dmFyIGZuPVBjO2Z1bmN0aW9uIENpKHQsZSl7dmFyIG4scixzO2lmKHR5cGVvZigocj0obj10LnNvdXJjZSk9PW51bGw/dm9pZCAwOm4uc3RhcnQpPT1udWxsP3ZvaWQgMDpyLm9mZnNldCk9PVwibnVtYmVyXCIpcmV0dXJuIHQuc291cmNlLnN0YXJ0Lm9mZnNldDtpZih0eXBlb2YgdC5zb3VyY2VJbmRleD09XCJudW1iZXJcIilyZXR1cm4gdC5zb3VyY2VJbmRleDtpZigocz10LnNvdXJjZSkhPW51bGwmJnMuc3RhcnQpcmV0dXJuIGZuKHQuc291cmNlLnN0YXJ0LGUpO3Rocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiQ2FuIG5vdCBsb2NhdGUgbm9kZS5cIikse25vZGU6dH0pfWZ1bmN0aW9uIHBuKHQsZSl7dmFyIG4scjtpZih0LnR5cGU9PT1cImNzcy1jb21tZW50XCImJnQuaW5saW5lKXJldHVybiBGdChlLHQuc291cmNlLnN0YXJ0T2Zmc2V0KTtpZih0eXBlb2YoKHI9KG49dC5zb3VyY2UpPT1udWxsP3ZvaWQgMDpuLmVuZCk9PW51bGw/dm9pZCAwOnIub2Zmc2V0KT09XCJudW1iZXJcIilyZXR1cm4gdC5zb3VyY2UuZW5kLm9mZnNldCsxO2lmKHQuc291cmNlKXtpZih0LnNvdXJjZS5lbmQpcmV0dXJuIGZuKHQuc291cmNlLmVuZCxlKTtpZihlZSh0Lm5vZGVzKSlyZXR1cm4gcG4oRyghMSx0Lm5vZGVzLC0xKSxlKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBobih0LGUpe3Quc291cmNlJiYodC5zb3VyY2Uuc3RhcnRPZmZzZXQ9Q2kodCxlKSx0LnNvdXJjZS5lbmRPZmZzZXQ9cG4odCxlKSk7Zm9yKGxldCBuIGluIHQpe2xldCByPXRbbl07bj09PVwic291cmNlXCJ8fCFyfHx0eXBlb2YgciE9XCJvYmplY3RcInx8KHIudHlwZT09PVwidmFsdWUtcm9vdFwifHxyLnR5cGU9PT1cInZhbHVlLXVua25vd25cIj9PaShyLFJjKHQpLHIudGV4dHx8ci52YWx1ZSk6aG4ocixlKSl9fWZ1bmN0aW9uIE9pKHQsZSxuKXt0LnNvdXJjZSYmKHQuc291cmNlLnN0YXJ0T2Zmc2V0PUNpKHQsbikrZSx0LnNvdXJjZS5lbmRPZmZzZXQ9cG4odCxuKStlKTtmb3IobGV0IHIgaW4gdCl7bGV0IHM9dFtyXTtyPT09XCJzb3VyY2VcInx8IXN8fHR5cGVvZiBzIT1cIm9iamVjdFwifHxPaShzLGUsbil9fWZ1bmN0aW9uIFJjKHQpe3ZhciBuO2xldCBlPXQuc291cmNlLnN0YXJ0T2Zmc2V0O3JldHVybiB0eXBlb2YgdC5wcm9wPT1cInN0cmluZ1wiJiYoZSs9dC5wcm9wLmxlbmd0aCksdC50eXBlPT09XCJjc3MtYXRydWxlXCImJnR5cGVvZiB0Lm5hbWU9PVwic3RyaW5nXCImJihlKz0xK3QubmFtZS5sZW5ndGgrdC5yYXdzLmFmdGVyTmFtZS5tYXRjaCgvXlxccyo6P1xccyovKVswXS5sZW5ndGgpLHQudHlwZSE9PVwiY3NzLWF0cnVsZVwiJiZ0eXBlb2YoKG49dC5yYXdzKT09bnVsbD92b2lkIDA6bi5iZXR3ZWVuKT09XCJzdHJpbmdcIiYmKGUrPXQucmF3cy5iZXR3ZWVuLmxlbmd0aCksZX1mdW5jdGlvbiBBaSh0KXtsZXQgZT1cImluaXRpYWxcIixuPVwiaW5pdGlhbFwiLHIscz0hMSxpPVtdO2ZvcihsZXQgbz0wO288dC5sZW5ndGg7bysrKXtsZXQgYT10W29dO3N3aXRjaChlKXtjYXNlXCJpbml0aWFsXCI6aWYoYT09PVwiJ1wiKXtlPVwic2luZ2xlLXF1b3Rlc1wiO2NvbnRpbnVlfWlmKGE9PT0nXCInKXtlPVwiZG91YmxlLXF1b3Rlc1wiO2NvbnRpbnVlfWlmKChhPT09XCJ1XCJ8fGE9PT1cIlVcIikmJnQuc2xpY2UobyxvKzQpLnRvTG93ZXJDYXNlKCk9PT1cInVybChcIil7ZT1cInVybFwiLG8rPTM7Y29udGludWV9aWYoYT09PVwiKlwiJiZ0W28tMV09PT1cIi9cIil7ZT1cImNvbW1lbnQtYmxvY2tcIjtjb250aW51ZX1pZihhPT09XCIvXCImJnRbby0xXT09PVwiL1wiKXtlPVwiY29tbWVudC1pbmxpbmVcIixyPW8tMTtjb250aW51ZX1jb250aW51ZTtjYXNlXCJzaW5nbGUtcXVvdGVzXCI6aWYoYT09PVwiJ1wiJiZ0W28tMV0hPT1cIlxcXFxcIiYmKGU9bixuPVwiaW5pdGlhbFwiKSxhPT09YFxuYHx8YT09PVwiXFxyXCIpcmV0dXJuIHQ7Y29udGludWU7Y2FzZVwiZG91YmxlLXF1b3Rlc1wiOmlmKGE9PT0nXCInJiZ0W28tMV0hPT1cIlxcXFxcIiYmKGU9bixuPVwiaW5pdGlhbFwiKSxhPT09YFxuYHx8YT09PVwiXFxyXCIpcmV0dXJuIHQ7Y29udGludWU7Y2FzZVwidXJsXCI6aWYoYT09PVwiKVwiJiYoZT1cImluaXRpYWxcIiksYT09PWBcbmB8fGE9PT1cIlxcclwiKXJldHVybiB0O2lmKGE9PT1cIidcIil7ZT1cInNpbmdsZS1xdW90ZXNcIixuPVwidXJsXCI7Y29udGludWV9aWYoYT09PSdcIicpe2U9XCJkb3VibGUtcXVvdGVzXCIsbj1cInVybFwiO2NvbnRpbnVlfWNvbnRpbnVlO2Nhc2VcImNvbW1lbnQtYmxvY2tcIjphPT09XCIvXCImJnRbby0xXT09PVwiKlwiJiYoZT1cImluaXRpYWxcIik7Y29udGludWU7Y2FzZVwiY29tbWVudC1pbmxpbmVcIjooYT09PSdcIid8fGE9PT1cIidcInx8YT09PVwiKlwiKSYmKHM9ITApLChhPT09YFxuYHx8YT09PVwiXFxyXCIpJiYocyYmaS5wdXNoKFtyLG9dKSxlPVwiaW5pdGlhbFwiLHM9ITEpO2NvbnRpbnVlfX1mb3IobGV0W28sYV1vZiBpKXQ9dC5zbGljZSgwLG8pK1QoITEsdC5zbGljZShvLGEpLC9bXCInKl0vZyxcIiBcIikrdC5zbGljZShhKTtyZXR1cm4gdH1mdW5jdGlvbiBQKHQpe3ZhciBlO3JldHVybihlPXQuc291cmNlKT09bnVsbD92b2lkIDA6ZS5zdGFydE9mZnNldH1mdW5jdGlvbiBSKHQpe3ZhciBlO3JldHVybihlPXQuc291cmNlKT09bnVsbD92b2lkIDA6ZS5lbmRPZmZzZXR9ZnVuY3Rpb24gSWModCl7cmV0dXJuIHQudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eKFsrLV0/W1xcZC5dK2UpKD86XFwrfCgtKSk/MCooPz1cXGQpLyxcIiQxJDJcIikucmVwbGFjZSgvXihbKy1dP1tcXGQuXSspZVsrLV0/MCskLyxcIiQxXCIpLnJlcGxhY2UoL14oWystXSk/XFwuLyxcIiQxMC5cIikucmVwbGFjZSgvKFxcLlxcZCs/KTArKD89ZXwkKS8sXCIkMVwiKS5yZXBsYWNlKC9cXC4oPz1lfCQpLyxcIlwiKX12YXIgTmk9SWM7dmFyIGRuPW5ldyBNYXAoW1tcImVtXCIsXCJlbVwiXSxbXCJyZW1cIixcInJlbVwiXSxbXCJleFwiLFwiZXhcIl0sW1wicmV4XCIsXCJyZXhcIl0sW1wiY2FwXCIsXCJjYXBcIl0sW1wicmNhcFwiLFwicmNhcFwiXSxbXCJjaFwiLFwiY2hcIl0sW1wicmNoXCIsXCJyY2hcIl0sW1wiaWNcIixcImljXCJdLFtcInJpY1wiLFwicmljXCJdLFtcImxoXCIsXCJsaFwiXSxbXCJybGhcIixcInJsaFwiXSxbXCJ2d1wiLFwidndcIl0sW1wic3Z3XCIsXCJzdndcIl0sW1wibHZ3XCIsXCJsdndcIl0sW1wiZHZ3XCIsXCJkdndcIl0sW1widmhcIixcInZoXCJdLFtcInN2aFwiLFwic3ZoXCJdLFtcImx2aFwiLFwibHZoXCJdLFtcImR2aFwiLFwiZHZoXCJdLFtcInZpXCIsXCJ2aVwiXSxbXCJzdmlcIixcInN2aVwiXSxbXCJsdmlcIixcImx2aVwiXSxbXCJkdmlcIixcImR2aVwiXSxbXCJ2YlwiLFwidmJcIl0sW1wic3ZiXCIsXCJzdmJcIl0sW1wibHZiXCIsXCJsdmJcIl0sW1wiZHZiXCIsXCJkdmJcIl0sW1widm1pblwiLFwidm1pblwiXSxbXCJzdm1pblwiLFwic3ZtaW5cIl0sW1wibHZtaW5cIixcImx2bWluXCJdLFtcImR2bWluXCIsXCJkdm1pblwiXSxbXCJ2bWF4XCIsXCJ2bWF4XCJdLFtcInN2bWF4XCIsXCJzdm1heFwiXSxbXCJsdm1heFwiLFwibHZtYXhcIl0sW1wiZHZtYXhcIixcImR2bWF4XCJdLFtcImNtXCIsXCJjbVwiXSxbXCJtbVwiLFwibW1cIl0sW1wicVwiLFwiUVwiXSxbXCJpblwiLFwiaW5cIl0sW1wicHRcIixcInB0XCJdLFtcInBjXCIsXCJwY1wiXSxbXCJweFwiLFwicHhcIl0sW1wiZGVnXCIsXCJkZWdcIl0sW1wiZ3JhZFwiLFwiZ3JhZFwiXSxbXCJyYWRcIixcInJhZFwiXSxbXCJ0dXJuXCIsXCJ0dXJuXCJdLFtcInNcIixcInNcIl0sW1wibXNcIixcIm1zXCJdLFtcImh6XCIsXCJIelwiXSxbXCJraHpcIixcImtIelwiXSxbXCJkcGlcIixcImRwaVwiXSxbXCJkcGNtXCIsXCJkcGNtXCJdLFtcImRwcHhcIixcImRwcHhcIl0sW1wieFwiLFwieFwiXSxbXCJjcXdcIixcImNxd1wiXSxbXCJjcWhcIixcImNxaFwiXSxbXCJjcWlcIixcImNxaVwiXSxbXCJjcWJcIixcImNxYlwiXSxbXCJjcW1pblwiLFwiY3FtaW5cIl0sW1wiY3FtYXhcIixcImNxbWF4XCJdXSk7ZnVuY3Rpb24gUGkodCl7bGV0IGU9dC50b0xvd2VyQ2FzZSgpO3JldHVybiBkbi5oYXMoZSk/ZG4uZ2V0KGUpOnR9dmFyIFJpPS8oW1wiJ10pKD86KD8hXFwxKVteXFxcXF18XFxcXC4pKlxcMS9ncyxxYz0vKD86XFxkKlxcLlxcZCt8XFxkK1xcLj8pKD86W0VlXVsrLV0/XFxkKyk/L2csRGM9L1tBLVphLXpdKy9nLExjPS9bJEBdP1tBLVpfYS16XFx1MDA4MC1cXHVGRkZGXVtcXHdcXHUwMDgwLVxcdUZGRkYtXSovZyxNYz1uZXcgUmVnRXhwKFJpLnNvdXJjZStgfCgke0xjLnNvdXJjZX0pPygke3FjLnNvdXJjZX0pKCR7RGMuc291cmNlfSk/YCxcImdcIik7ZnVuY3Rpb24gVyh0LGUpe3JldHVybiBUKCExLHQsUmksbj0+U3QobixlKSl9ZnVuY3Rpb24gSWkodCxlKXtsZXQgbj1lLnNpbmdsZVF1b3RlP1wiJ1wiOidcIic7cmV0dXJuIHQuaW5jbHVkZXMoJ1wiJyl8fHQuaW5jbHVkZXMoXCInXCIpP3Q6bit0K259ZnVuY3Rpb24gbWUodCl7cmV0dXJuIFQoITEsdCxNYywoZSxuLHIscyxpKT0+IXImJnM/bW4ocykrbmUoaXx8XCJcIik6ZSl9ZnVuY3Rpb24gbW4odCl7cmV0dXJuIE5pKHQpLnJlcGxhY2UoL1xcLjAoPz0kfGUpLyxcIlwiKX1mdW5jdGlvbiBxaSh0KXtyZXR1cm4gdC50cmFpbGluZ0NvbW1hPT09XCJlczVcInx8dC50cmFpbGluZ0NvbW1hPT09XCJhbGxcIn1mdW5jdGlvbiBCYyh0LGUsbil7dmFyIGQ7bGV0e25vZGU6cn09dCxzPXQucGFyZW50LGk9dC5ncmFuZHBhcmVudCxvPWlpKHQpLGE9byYmcy50eXBlPT09XCJ2YWx1ZS12YWx1ZVwiJiYobz09PVwiZ3JpZFwifHxvLnN0YXJ0c1dpdGgoXCJncmlkLXRlbXBsYXRlXCIpKSx1PXQuZmluZEFuY2VzdG9yKG09Pm0udHlwZT09PVwiY3NzLWF0cnVsZVwiKSxjPXUmJmV0KHUsZSksZj1yLmdyb3Vwcy5zb21lKG09PmxuKG0pKSxwPXQubWFwKG4sXCJncm91cHNcIiksbD1bXSxnPUVlKHQsXCJ1cmxcIikseD0hMSxoPSExO2ZvcihsZXQgbT0wO208ci5ncm91cHMubGVuZ3RoOysrbSl7bC5wdXNoKHBbbV0pO2xldCBiPXIuZ3JvdXBzW20tMV0sdz1yLmdyb3Vwc1ttXSx2PXIuZ3JvdXBzW20rMV0sTj1yLmdyb3Vwc1ttKzJdO2lmKGcpeyh2JiZqKHYpfHxqKHcpKSYmbC5wdXNoKFwiIFwiKTtjb250aW51ZX1pZihTZSh0LFwiZm9yd2FyZFwiKSYmdy50eXBlPT09XCJ2YWx1ZS13b3JkXCImJncudmFsdWUmJmIhPT12b2lkIDAmJmIudHlwZT09PVwidmFsdWUtd29yZFwiJiZiLnZhbHVlPT09XCJhc1wiJiZ2LnR5cGU9PT1cInZhbHVlLW9wZXJhdG9yXCImJnYudmFsdWU9PT1cIipcInx8IXZ8fHcudHlwZT09PVwidmFsdWUtd29yZFwiJiZ3LnZhbHVlLmVuZHNXaXRoKFwiLVwiKSYmcnQodikpY29udGludWU7aWYody50eXBlPT09XCJ2YWx1ZS1zdHJpbmdcIiYmdy5xdW90ZWQpe2xldCBPPXcudmFsdWUubGFzdEluZGV4T2YoXCIje1wiKSx2ZT13LnZhbHVlLmxhc3RJbmRleE9mKFwifVwiKTtPIT09LTEmJnZlIT09LTE/eD1PPnZlOk8hPT0tMT94PSEwOnZlIT09LTEmJih4PSExKX1pZih4fHxMdCh3KXx8THQodil8fHcudHlwZT09PVwidmFsdWUtYXR3b3JkXCImJih3LnZhbHVlPT09XCJcInx8dy52YWx1ZS5lbmRzV2l0aChcIltcIikpfHx2LnR5cGU9PT1cInZhbHVlLXdvcmRcIiYmdi52YWx1ZS5zdGFydHNXaXRoKFwiXVwiKXx8dy52YWx1ZT09PVwiflwifHx3LnR5cGUhPT1cInZhbHVlLXN0cmluZ1wiJiZ3LnZhbHVlJiZ3LnZhbHVlLmluY2x1ZGVzKFwiXFxcXFwiKSYmdiYmdi50eXBlIT09XCJ2YWx1ZS1jb21tZW50XCJ8fGIhPW51bGwmJmIudmFsdWUmJmIudmFsdWUuaW5kZXhPZihcIlxcXFxcIik9PT1iLnZhbHVlLmxlbmd0aC0xJiZ3LnR5cGU9PT1cInZhbHVlLW9wZXJhdG9yXCImJncudmFsdWU9PT1cIi9cInx8dy52YWx1ZT09PVwiXFxcXFwifHx2aSh3LHYpfHxxdCh3KXx8Y24odyl8fER0KHYpfHxjbih2KSYmZGUodil8fER0KHcpJiZkZSh2KXx8dy52YWx1ZT09PVwiLS1cIiYmcXQodikpY29udGludWU7bGV0ICQ9UnQodyksSD1SdCh2KTtpZigoJCYmcXQodil8fEgmJkR0KHcpKSYmZGUodil8fCFiJiZaZSh3KXx8RWUodCxcImNhbGNcIikmJihqKHcpfHxqKHYpfHxoZSh3KXx8aGUodikpJiZkZSh2KSljb250aW51ZTtsZXQgVT0oaih3KXx8aGUodykpJiZtPT09MCYmKHYudHlwZT09PVwidmFsdWUtbnVtYmVyXCJ8fHYuaXNIZXgpJiZpJiZUaShpKSYmIWRlKHYpLFM9KE49PW51bGw/dm9pZCAwOk4udHlwZSk9PT1cInZhbHVlLWZ1bmNcInx8TiYmdHQoTil8fHcudHlwZT09PVwidmFsdWUtZnVuY1wifHx0dCh3KSxDPXYudHlwZT09PVwidmFsdWUtZnVuY1wifHx0dCh2KXx8KGI9PW51bGw/dm9pZCAwOmIudHlwZSk9PT1cInZhbHVlLWZ1bmNcInx8YiYmdHQoYik7aWYoZS5wYXJzZXI9PT1cInNjc3NcIiYmJCYmdy52YWx1ZT09PVwiLVwiJiZ2LnR5cGU9PT1cInZhbHVlLWZ1bmNcIil7bC5wdXNoKFwiIFwiKTtjb250aW51ZX1pZighKCEoUHQodil8fFB0KHcpKSYmIUVlKHQsXCJjYWxjXCIpJiYhVSYmKFplKHYpJiYhU3x8WmUodykmJiFDfHxqKHYpJiYhU3x8aih3KSYmIUN8fGhlKHYpfHxoZSh3KSkmJihkZSh2KXx8JCYmKCFifHxiJiZSdChiKSkpKSYmISgoZS5wYXJzZXI9PT1cInNjc3NcInx8ZS5wYXJzZXI9PT1cImxlc3NcIikmJiQmJncudmFsdWU9PT1cIi1cIiYmbnQodikmJlIodyk9PT1QKHYub3BlbikmJnYub3Blbi52YWx1ZT09PVwiKFwiKSl7aWYobG4odykpe2lmKHMudHlwZT09PVwidmFsdWUtcGFyZW5fZ3JvdXBcIil7bC5wdXNoKGZlKF8pKTtjb250aW51ZX1sLnB1c2goXyk7Y29udGludWV9aWYoYyYmKHlpKHYpfHxnaSh2KXx8ZGkodil8fG1pKHcpfHxoaSh3KSkpe2wucHVzaChcIiBcIik7Y29udGludWV9aWYodSYmdS5uYW1lLnRvTG93ZXJDYXNlKCk9PT1cIm5hbWVzcGFjZVwiKXtsLnB1c2goXCIgXCIpO2NvbnRpbnVlfWlmKGEpe3cuc291cmNlJiZ2LnNvdXJjZSYmdy5zb3VyY2Uuc3RhcnQubGluZSE9PXYuc291cmNlLnN0YXJ0LmxpbmU/KGwucHVzaChfKSxoPSEwKTpsLnB1c2goXCIgXCIpO2NvbnRpbnVlfWlmKEgpe2wucHVzaChcIiBcIik7Y29udGludWV9aWYoKHY9PW51bGw/dm9pZCAwOnYudmFsdWUpIT09XCIuLi5cIiYmIShydCh3KSYmcnQodikmJlIodyk9PT1QKHYpKSl7aWYocnQodykmJm50KHYpJiZSKHcpPT09UCh2Lm9wZW4pKXtsLnB1c2goTSk7Y29udGludWV9aWYody52YWx1ZT09PVwid2l0aFwiJiZudCh2KSl7bC5wdXNoKFwiIFwiKTtjb250aW51ZX0oZD13LnZhbHVlKSE9bnVsbCYmZC5lbmRzV2l0aChcIiNcIikmJnYudmFsdWU9PT1cIntcIiYmbnQodi5ncm91cCl8fGwucHVzaChBKX19fXJldHVybiBmJiZsLnB1c2goUWUpLGgmJmwudW5zaGlmdChfKSxjP0QocShsKSk6bGkodCk/RChIZShsKSk6RChxKEhlKGwpKSl9dmFyIERpPUJjO2Z1bmN0aW9uIEZjKHQsZSxuKXtsZXQgcj0hIShuIT1udWxsJiZuLmJhY2t3YXJkcyk7aWYoZT09PSExKXJldHVybiExO2xldCBzPXQuY2hhckF0KGUpO2lmKHIpe2lmKHQuY2hhckF0KGUtMSk9PT1cIlxcclwiJiZzPT09YFxuYClyZXR1cm4gZS0yO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIGUtMX1lbHNle2lmKHM9PT1cIlxcclwiJiZ0LmNoYXJBdChlKzEpPT09YFxuYClyZXR1cm4gZSsyO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIGUrMX1yZXR1cm4gZX12YXIgJHQ9RmM7ZnVuY3Rpb24gJGModCxlKXtpZihlPT09ITEpcmV0dXJuITE7aWYodC5jaGFyQXQoZSk9PT1cIi9cIiYmdC5jaGFyQXQoZSsxKT09PVwiKlwiKXtmb3IobGV0IG49ZSsyO248dC5sZW5ndGg7KytuKWlmKHQuY2hhckF0KG4pPT09XCIqXCImJnQuY2hhckF0KG4rMSk9PT1cIi9cIilyZXR1cm4gbisyfXJldHVybiBlfXZhciBMaT0kYztmdW5jdGlvbiBVYyh0LGUpe3JldHVybiBlPT09ITE/ITE6dC5jaGFyQXQoZSk9PT1cIi9cIiYmdC5jaGFyQXQoZSsxKT09PVwiL1wiP0Z0KHQsZSk6ZX12YXIgTWk9VWM7ZnVuY3Rpb24gV2ModCxlLG49e30pe2xldCByPUJ0KHQsbi5iYWNrd2FyZHM/ZS0xOmUsbikscz0kdCh0LHIsbik7cmV0dXJuIHIhPT1zfXZhciBVdD1XYztmdW5jdGlvbiB6Yyh0LGUpe2xldCBuPW51bGwscj1lO2Zvcig7ciE9PW47KW49cixyPVNpKHQscikscj1MaSh0LHIpLHI9QnQodCxyKTtyZXR1cm4gcj1NaSh0LHIpLHI9JHQodCxyKSxyIT09ITEmJlV0KHQscil9dmFyIFd0PXpjO2Z1bmN0aW9uIFZjKHtub2RlOnQscGFyZW50OmV9LG4pe3JldHVybiEhKHQuc291cmNlJiZuLm9yaWdpbmFsVGV4dC5zbGljZShQKHQpLFAoZS5jbG9zZSkpLnRyaW1FbmQoKS5lbmRzV2l0aChcIixcIikpfWZ1bmN0aW9uIFljKHQsZSl7cmV0dXJuIGZpKHQuZ3JhbmRwYXJlbnQpJiZWYyh0LGUpP1wiLFwiOnQubm9kZS50eXBlIT09XCJ2YWx1ZS1jb21tZW50XCImJiEodC5ub2RlLnR5cGU9PT1cInZhbHVlLWNvbW1hX2dyb3VwXCImJnQubm9kZS5ncm91cHMuZXZlcnkobj0+bi50eXBlPT09XCJ2YWx1ZS1jb21tZW50XCIpKSYmcWkoZSkmJnQuY2FsbFBhcmVudCgoKT0+dW4odCxlKSk/QXQoXCIsXCIpOlwiXCJ9ZnVuY3Rpb24gQmkodCxlLG4pe2xldHtub2RlOnIscGFyZW50OnN9PXQsaT10Lm1hcCgoe25vZGU6Z30pPT50eXBlb2YgZz09XCJzdHJpbmdcIj9nOm4oKSxcImdyb3Vwc1wiKTtpZihzJiZjaShzKSYmKHIuZ3JvdXBzLmxlbmd0aD09PTF8fHIuZ3JvdXBzLmxlbmd0aD4wJiZyLmdyb3Vwc1swXS50eXBlPT09XCJ2YWx1ZS1jb21tYV9ncm91cFwiJiZyLmdyb3Vwc1swXS5ncm91cHMubGVuZ3RoPjAmJnIuZ3JvdXBzWzBdLmdyb3Vwc1swXS50eXBlPT09XCJ2YWx1ZS13b3JkXCImJnIuZ3JvdXBzWzBdLmdyb3Vwc1swXS52YWx1ZS5zdGFydHNXaXRoKFwiZGF0YTpcIikpKXJldHVybltyLm9wZW4/bihcIm9wZW5cIik6XCJcIixZKFwiLFwiLGkpLHIuY2xvc2U/bihcImNsb3NlXCIpOlwiXCJdO2lmKCFyLm9wZW4pe2xldCBnPXluKHQpLHg9WShbXCIsXCIsZz9fOkFdLGkpO3JldHVybiBxKGc/W18seF06RChIZSh4KSkpfWxldCBvPXQubWFwKCh7bm9kZTpnLGlzTGFzdDp4LGluZGV4Omh9KT0+e3ZhciBiO2xldCBkPWlbaF07aWYoSXQoZykmJmcudHlwZT09PVwidmFsdWUtY29tbWFfZ3JvdXBcIiYmZy5ncm91cHMmJmcuZ3JvdXBzWzBdLnR5cGUhPT1cInZhbHVlLXBhcmVuX2dyb3VwXCImJigoYj1nLmdyb3Vwc1syXSk9PW51bGw/dm9pZCAwOmIudHlwZSk9PT1cInZhbHVlLXBhcmVuX2dyb3VwXCIpe2xldCB3PURzKGQuY29udGVudHMuY29udGVudHMpO3dbMV09RCh3WzFdKSxkPUQoZmUoZCkpfWxldCBtPVtkLHg/WWModCxlKTpcIixcIl07aWYoIXgmJmcudHlwZT09PVwidmFsdWUtY29tbWFfZ3JvdXBcIiYmZWUoZy5ncm91cHMpKXtsZXQgdz1HKCExLGcuZ3JvdXBzLC0xKTshdy5zb3VyY2UmJncuY2xvc2UmJih3PXcuY2xvc2UpLHcuc291cmNlJiZXdChlLm9yaWdpbmFsVGV4dCxSKHcpKSYmbS5wdXNoKF8pfXJldHVybiBtfSxcImdyb3Vwc1wiKSxhPWtpKHIscyksdT1FaShyLHMpLGM9dW4odCxlKSxmPXV8fGMmJiFhLHA9dXx8YSxsPUQoW3Iub3Blbj9uKFwib3BlblwiKTpcIlwiLHEoW00sWShBLG8pXSksTSxyLmNsb3NlP24oXCJjbG9zZVwiKTpcIlwiXSx7c2hvdWxkQnJlYWs6Zn0pO3JldHVybiBwP2ZlKGwpOmx9ZnVuY3Rpb24geW4odCl7cmV0dXJuIHQubWF0Y2goZT0+ZS50eXBlPT09XCJ2YWx1ZS1wYXJlbl9ncm91cFwiJiYhZS5vcGVuJiZlLmdyb3Vwcy5zb21lKG49Pm4udHlwZT09PVwidmFsdWUtY29tbWFfZ3JvdXBcIiksKGUsbik9Pm49PT1cImdyb3VwXCImJmUudHlwZT09PVwidmFsdWUtdmFsdWVcIiwoZSxuKT0+bj09PVwiZ3JvdXBcIiYmZS50eXBlPT09XCJ2YWx1ZS1yb290XCIsKGUsbik9Pm49PT1cInZhbHVlXCImJihlLnR5cGU9PT1cImNzcy1kZWNsXCImJiFlLnByb3Auc3RhcnRzV2l0aChcIi0tXCIpfHxlLnR5cGU9PT1cImNzcy1hdHJ1bGVcIiYmZS52YXJpYWJsZSkpfWZ1bmN0aW9uIEdjKHQsZSxuKXtsZXQgcj1bXTtyZXR1cm4gdC5lYWNoKCgpPT57bGV0e25vZGU6cyxwcmV2aW91czppfT10O2lmKChpPT1udWxsP3ZvaWQgMDppLnR5cGUpPT09XCJjc3MtY29tbWVudFwiJiZpLnRleHQudHJpbSgpPT09XCJwcmV0dGllci1pZ25vcmVcIj9yLnB1c2goZS5vcmlnaW5hbFRleHQuc2xpY2UoUChzKSxSKHMpKSk6ci5wdXNoKG4oKSksdC5pc0xhc3QpcmV0dXJuO2xldHtuZXh0Om99PXQ7by50eXBlPT09XCJjc3MtY29tbWVudFwiJiYhVXQoZS5vcmlnaW5hbFRleHQsUChvKSx7YmFja3dhcmRzOiEwfSkmJiFUZShzKXx8by50eXBlPT09XCJjc3MtYXRydWxlXCImJm8ubmFtZT09PVwiZWxzZVwiJiZzLnR5cGUhPT1cImNzcy1jb21tZW50XCI/ci5wdXNoKFwiIFwiKTooci5wdXNoKGUuX19pc0hUTUxTdHlsZUF0dHJpYnV0ZT9BOl8pLFd0KGUub3JpZ2luYWxUZXh0LFIocykpJiYhVGUocykmJnIucHVzaChfKSl9LFwibm9kZXNcIikscn12YXIgT2U9R2M7ZnVuY3Rpb24gS2ModCxlLG4pe3ZhciBzLGksbyxhLHUsYztsZXR7bm9kZTpyfT10O3N3aXRjaChyLnR5cGUpe2Nhc2VcImZyb250LW1hdHRlclwiOnJldHVybltyLnJhdyxfXTtjYXNlXCJjc3Mtcm9vdFwiOntsZXQgZj1PZSh0LGUsbikscD1yLnJhd3MuYWZ0ZXIudHJpbSgpO3JldHVybiBwLnN0YXJ0c1dpdGgoXCI7XCIpJiYocD1wLnNsaWNlKDEpLnRyaW0oKSksW3IuZnJvbnRNYXR0ZXI/W24oXCJmcm9udE1hdHRlclwiKSxfXTpcIlwiLGYscD9gICR7cH1gOlwiXCIsci5ub2Rlcy5sZW5ndGg+MD9fOlwiXCJdfWNhc2VcImNzcy1jb21tZW50XCI6e2xldCBmPXIuaW5saW5lfHxyLnJhd3MuaW5saW5lLHA9ZS5vcmlnaW5hbFRleHQuc2xpY2UoUChyKSxSKHIpKTtyZXR1cm4gZj9wLnRyaW1FbmQoKTpwfWNhc2VcImNzcy1ydWxlXCI6cmV0dXJuW24oXCJzZWxlY3RvclwiKSxyLmltcG9ydGFudD9cIiAhaW1wb3J0YW50XCI6XCJcIixyLm5vZGVzP1soKHM9ci5zZWxlY3Rvcik9PW51bGw/dm9pZCAwOnMudHlwZSk9PT1cInNlbGVjdG9yLXVua25vd25cIiYmQ2Uoci5zZWxlY3Rvci52YWx1ZSk/QTpyLnNlbGVjdG9yP1wiIFwiOlwiXCIsXCJ7XCIsci5ub2Rlcy5sZW5ndGg+MD9xKFtfLE9lKHQsZSxuKV0pOlwiXCIsXyxcIn1cIixwaShyKT9cIjtcIjpcIlwiXTpcIjtcIl07Y2FzZVwiY3NzLWRlY2xcIjp7bGV0IGY9dC5wYXJlbnQse2JldHdlZW46cH09ci5yYXdzLGw9cC50cmltKCksZz1sPT09XCI6XCIseD10eXBlb2Ygci52YWx1ZT09XCJzdHJpbmdcIiYmL14gKiQvLnRlc3Qoci52YWx1ZSksaD10eXBlb2Ygci52YWx1ZT09XCJzdHJpbmdcIj9yLnZhbHVlOm4oXCJ2YWx1ZVwiKTtyZXR1cm4gaD14aShyKT9McyhoKTpoLCFnJiZDZShsKSYmISgobz0oaT1yLnZhbHVlKT09bnVsbD92b2lkIDA6aS5ncm91cCkhPW51bGwmJm8uZ3JvdXAmJnQuY2FsbCgoKT0+eW4odCksXCJ2YWx1ZVwiLFwiZ3JvdXBcIixcImdyb3VwXCIpKSYmKGg9cShbXyxmZShoKV0pKSxbVCghMSxyLnJhd3MuYmVmb3JlLC9bXFxzO10vZyxcIlwiKSxmLnR5cGU9PT1cImNzcy1hdHJ1bGVcIiYmZi52YXJpYWJsZXx8dWkodCk/ci5wcm9wOm5lKHIucHJvcCksbC5zdGFydHNXaXRoKFwiLy9cIik/XCIgXCI6XCJcIixsLHIuZXh0ZW5kfHx4P1wiXCI6XCIgXCIsZS5wYXJzZXI9PT1cImxlc3NcIiYmci5leHRlbmQmJnIuc2VsZWN0b3I/W1wiZXh0ZW5kKFwiLG4oXCJzZWxlY3RvclwiKSxcIilcIl06XCJcIixoLHIucmF3cy5pbXBvcnRhbnQ/ci5yYXdzLmltcG9ydGFudC5yZXBsYWNlKC9cXHMqIVxccyppbXBvcnRhbnQvaSxcIiAhaW1wb3J0YW50XCIpOnIuaW1wb3J0YW50P1wiICFpbXBvcnRhbnRcIjpcIlwiLHIucmF3cy5zY3NzRGVmYXVsdD9yLnJhd3Muc2Nzc0RlZmF1bHQucmVwbGFjZSgvXFxzKiFkZWZhdWx0L2ksXCIgIWRlZmF1bHRcIik6ci5zY3NzRGVmYXVsdD9cIiAhZGVmYXVsdFwiOlwiXCIsci5yYXdzLnNjc3NHbG9iYWw/ci5yYXdzLnNjc3NHbG9iYWwucmVwbGFjZSgvXFxzKiFnbG9iYWwvaSxcIiAhZ2xvYmFsXCIpOnIuc2Nzc0dsb2JhbD9cIiAhZ2xvYmFsXCI6XCJcIixyLm5vZGVzP1tcIiB7XCIscShbTSxPZSh0LGUsbildKSxNLFwifVwiXTp3aShyKSYmIWYucmF3cy5zZW1pY29sb24mJmUub3JpZ2luYWxUZXh0W1IociktMV0hPT1cIjtcIj9cIlwiOmUuX19pc0hUTUxTdHlsZUF0dHJpYnV0ZSYmTnQodCxyKT9BdChcIjtcIik6XCI7XCJdfWNhc2VcImNzcy1hdHJ1bGVcIjp7bGV0IGY9dC5wYXJlbnQscD1hbihyKSYmIWYucmF3cy5zZW1pY29sb24mJmUub3JpZ2luYWxUZXh0W1IociktMV0hPT1cIjtcIjtpZihlLnBhcnNlcj09PVwibGVzc1wiKXtpZihyLm1peGluKXJldHVybltuKFwic2VsZWN0b3JcIiksci5pbXBvcnRhbnQ/XCIgIWltcG9ydGFudFwiOlwiXCIscD9cIlwiOlwiO1wiXTtpZihyLmZ1bmN0aW9uKXJldHVybltyLm5hbWUsdHlwZW9mIHIucGFyYW1zPT1cInN0cmluZ1wiP3IucGFyYW1zOm4oXCJwYXJhbXNcIikscD9cIlwiOlwiO1wiXTtpZihyLnZhcmlhYmxlKXJldHVybltcIkBcIixyLm5hbWUsXCI6IFwiLHIudmFsdWU/bihcInZhbHVlXCIpOlwiXCIsci5yYXdzLmJldHdlZW4udHJpbSgpP3IucmF3cy5iZXR3ZWVuLnRyaW0oKStcIiBcIjpcIlwiLHIubm9kZXM/W1wie1wiLHEoW3Iubm9kZXMubGVuZ3RoPjA/TTpcIlwiLE9lKHQsZSxuKV0pLE0sXCJ9XCJdOlwiXCIscD9cIlwiOlwiO1wiXX1sZXQgbD1yLm5hbWU9PT1cImltcG9ydFwiJiYoKGE9ci5wYXJhbXMpPT1udWxsP3ZvaWQgMDphLnR5cGUpPT09XCJ2YWx1ZS11bmtub3duXCImJnIucGFyYW1zLnZhbHVlLmVuZHNXaXRoKFwiO1wiKTtyZXR1cm5bXCJAXCIsb24ocil8fHIubmFtZS5lbmRzV2l0aChcIjpcIik/ci5uYW1lOm5lKHIubmFtZSksci5wYXJhbXM/W29uKHIpP1wiXCI6YW4ocik/ci5yYXdzLmFmdGVyTmFtZT09PVwiXCI/XCJcIjpyLm5hbWUuZW5kc1dpdGgoXCI6XCIpP1wiIFwiOi9eXFxzKlxcblxccypcXG4vLnRlc3Qoci5yYXdzLmFmdGVyTmFtZSk/W18sX106L15cXHMqXFxuLy50ZXN0KHIucmF3cy5hZnRlck5hbWUpP186XCIgXCI6XCIgXCIsdHlwZW9mIHIucGFyYW1zPT1cInN0cmluZ1wiP3IucGFyYW1zOm4oXCJwYXJhbXNcIildOlwiXCIsci5zZWxlY3Rvcj9xKFtcIiBcIixuKFwic2VsZWN0b3JcIildKTpcIlwiLHIudmFsdWU/RChbXCIgXCIsbihcInZhbHVlXCIpLGV0KHIsZSk/Ymkocik/XCIgXCI6QTpcIlwiXSk6ci5uYW1lPT09XCJlbHNlXCI/XCIgXCI6XCJcIixyLm5vZGVzP1tldChyLGUpP1wiXCI6ci5zZWxlY3RvciYmIXIuc2VsZWN0b3Iubm9kZXMmJnR5cGVvZiByLnNlbGVjdG9yLnZhbHVlPT1cInN0cmluZ1wiJiZDZShyLnNlbGVjdG9yLnZhbHVlKXx8IXIuc2VsZWN0b3ImJnR5cGVvZiByLnBhcmFtcz09XCJzdHJpbmdcIiYmQ2Uoci5wYXJhbXMpP0E6XCIgXCIsXCJ7XCIscShbci5ub2Rlcy5sZW5ndGg+MD9NOlwiXCIsT2UodCxlLG4pXSksTSxcIn1cIl06cHx8bD9cIlwiOlwiO1wiXX1jYXNlXCJtZWRpYS1xdWVyeS1saXN0XCI6e2xldCBmPVtdO3JldHVybiB0LmVhY2goKHtub2RlOnB9KT0+e3AudHlwZT09PVwibWVkaWEtcXVlcnlcIiYmcC52YWx1ZT09PVwiXCJ8fGYucHVzaChuKCkpfSxcIm5vZGVzXCIpLEQocShZKEEsZikpKX1jYXNlXCJtZWRpYS1xdWVyeVwiOnJldHVybltZKFwiIFwiLHQubWFwKG4sXCJub2Rlc1wiKSksTnQodCxyKT9cIlwiOlwiLFwiXTtjYXNlXCJtZWRpYS10eXBlXCI6cmV0dXJuIG1lKFcoci52YWx1ZSxlKSk7Y2FzZVwibWVkaWEtZmVhdHVyZS1leHByZXNzaW9uXCI6cmV0dXJuIHIubm9kZXM/W1wiKFwiLC4uLnQubWFwKG4sXCJub2Rlc1wiKSxcIilcIl06ci52YWx1ZTtjYXNlXCJtZWRpYS1mZWF0dXJlXCI6cmV0dXJuIG5lKFcoVCghMSxyLnZhbHVlLC8gKy9nLFwiIFwiKSxlKSk7Y2FzZVwibWVkaWEtY29sb25cIjpyZXR1cm5bci52YWx1ZSxcIiBcIl07Y2FzZVwibWVkaWEtdmFsdWVcIjpyZXR1cm4gbWUoVyhyLnZhbHVlLGUpKTtjYXNlXCJtZWRpYS1rZXl3b3JkXCI6cmV0dXJuIFcoci52YWx1ZSxlKTtjYXNlXCJtZWRpYS11cmxcIjpyZXR1cm4gVyhUKCExLFQoITEsci52YWx1ZSwvXnVybFxcKFxccysvZ2ksXCJ1cmwoXCIpLC9cXHMrXFwpJC9nLFwiKVwiKSxlKTtjYXNlXCJtZWRpYS11bmtub3duXCI6cmV0dXJuIHIudmFsdWU7Y2FzZVwic2VsZWN0b3Itcm9vdFwiOnJldHVybiBEKFtTZSh0LFwiY3VzdG9tLXNlbGVjdG9yXCIpP1t0LmZpbmRBbmNlc3RvcihmPT5mLnR5cGU9PT1cImNzcy1hdHJ1bGVcIikuY3VzdG9tU2VsZWN0b3IsQV06XCJcIixZKFtcIixcIixTZSh0LFtcImV4dGVuZFwiLFwiY3VzdG9tLXNlbGVjdG9yXCIsXCJuZXN0XCJdKT9BOl9dLHQubWFwKG4sXCJub2Rlc1wiKSldKTtjYXNlXCJzZWxlY3Rvci1zZWxlY3RvclwiOnJldHVybiBEKHEodC5tYXAobixcIm5vZGVzXCIpKSk7Y2FzZVwic2VsZWN0b3ItY29tbWVudFwiOnJldHVybiByLnZhbHVlO2Nhc2VcInNlbGVjdG9yLXN0cmluZ1wiOnJldHVybiBXKHIudmFsdWUsZSk7Y2FzZVwic2VsZWN0b3ItdGFnXCI6cmV0dXJuW3IubmFtZXNwYWNlP1tyLm5hbWVzcGFjZT09PSEwP1wiXCI6ci5uYW1lc3BhY2UudHJpbSgpLFwifFwiXTpcIlwiLCgodT10LnByZXZpb3VzKT09bnVsbD92b2lkIDA6dS50eXBlKT09PVwic2VsZWN0b3ItbmVzdGluZ1wiP3IudmFsdWU6bWUoYWkodCxyLnZhbHVlKT9yLnZhbHVlLnRvTG93ZXJDYXNlKCk6ci52YWx1ZSldO2Nhc2VcInNlbGVjdG9yLWlkXCI6cmV0dXJuW1wiI1wiLHIudmFsdWVdO2Nhc2VcInNlbGVjdG9yLWNsYXNzXCI6cmV0dXJuW1wiLlwiLG1lKFcoci52YWx1ZSxlKSldO2Nhc2VcInNlbGVjdG9yLWF0dHJpYnV0ZVwiOnJldHVybltcIltcIixyLm5hbWVzcGFjZT9bci5uYW1lc3BhY2U9PT0hMD9cIlwiOnIubmFtZXNwYWNlLnRyaW0oKSxcInxcIl06XCJcIixyLmF0dHJpYnV0ZS50cmltKCksci5vcGVyYXRvcj8/XCJcIixyLnZhbHVlP0lpKFcoci52YWx1ZS50cmltKCksZSksZSk6XCJcIixyLmluc2Vuc2l0aXZlP1wiIGlcIjpcIlwiLFwiXVwiXTtjYXNlXCJzZWxlY3Rvci1jb21iaW5hdG9yXCI6e2lmKHIudmFsdWU9PT1cIitcInx8ci52YWx1ZT09PVwiPlwifHxyLnZhbHVlPT09XCJ+XCJ8fHIudmFsdWU9PT1cIj4+PlwiKXtsZXQgbD10LnBhcmVudDtyZXR1cm5bbC50eXBlPT09XCJzZWxlY3Rvci1zZWxlY3RvclwiJiZsLm5vZGVzWzBdPT09cj9cIlwiOkEsci52YWx1ZSxOdCh0LHIpP1wiXCI6XCIgXCJdfWxldCBmPXIudmFsdWUudHJpbSgpLnN0YXJ0c1dpdGgoXCIoXCIpP0E6XCJcIixwPW1lKFcoci52YWx1ZS50cmltKCksZSkpfHxBO3JldHVybltmLHBdfWNhc2VcInNlbGVjdG9yLXVuaXZlcnNhbFwiOnJldHVybltyLm5hbWVzcGFjZT9bci5uYW1lc3BhY2U9PT0hMD9cIlwiOnIubmFtZXNwYWNlLnRyaW0oKSxcInxcIl06XCJcIixyLnZhbHVlXTtjYXNlXCJzZWxlY3Rvci1wc2V1ZG9cIjpyZXR1cm5bbmUoci52YWx1ZSksZWUoci5ub2Rlcyk/RChbXCIoXCIscShbTSxZKFtcIixcIixBXSx0Lm1hcChuLFwibm9kZXNcIikpXSksTSxcIilcIl0pOlwiXCJdO2Nhc2VcInNlbGVjdG9yLW5lc3RpbmdcIjpyZXR1cm4gci52YWx1ZTtjYXNlXCJzZWxlY3Rvci11bmtub3duXCI6e2xldCBmPXQuZmluZEFuY2VzdG9yKGc9PmcudHlwZT09PVwiY3NzLXJ1bGVcIik7aWYoZiE9bnVsbCYmZi5pc1NDU1NOZXN0ZXJQcm9wZXJ0eSlyZXR1cm4gbWUoVyhuZShyLnZhbHVlKSxlKSk7bGV0IHA9dC5wYXJlbnQ7aWYoKGM9cC5yYXdzKSE9bnVsbCYmYy5zZWxlY3Rvcil7bGV0IGc9UChwKSx4PWcrcC5yYXdzLnNlbGVjdG9yLmxlbmd0aDtyZXR1cm4gZS5vcmlnaW5hbFRleHQuc2xpY2UoZyx4KS50cmltKCl9bGV0IGw9dC5ncmFuZHBhcmVudDtpZihwLnR5cGU9PT1cInZhbHVlLXBhcmVuX2dyb3VwXCImJihsPT1udWxsP3ZvaWQgMDpsLnR5cGUpPT09XCJ2YWx1ZS1mdW5jXCImJmwudmFsdWU9PT1cInNlbGVjdG9yXCIpe2xldCBnPVIocC5vcGVuKSsxLHg9UChwLmNsb3NlKSxoPWUub3JpZ2luYWxUZXh0LnNsaWNlKGcseCkudHJpbSgpO3JldHVybiBDZShoKT9bUWUsaF06aH1yZXR1cm4gci52YWx1ZX1jYXNlXCJ2YWx1ZS12YWx1ZVwiOmNhc2VcInZhbHVlLXJvb3RcIjpyZXR1cm4gbihcImdyb3VwXCIpO2Nhc2VcInZhbHVlLWNvbW1lbnRcIjpyZXR1cm4gZS5vcmlnaW5hbFRleHQuc2xpY2UoUChyKSxSKHIpKTtjYXNlXCJ2YWx1ZS1jb21tYV9ncm91cFwiOnJldHVybiBEaSh0LGUsbik7Y2FzZVwidmFsdWUtcGFyZW5fZ3JvdXBcIjpyZXR1cm4gQmkodCxlLG4pO2Nhc2VcInZhbHVlLWZ1bmNcIjpyZXR1cm5bci52YWx1ZSxTZSh0LFwic3VwcG9ydHNcIikmJl9pKHIpP1wiIFwiOlwiXCIsbihcImdyb3VwXCIpXTtjYXNlXCJ2YWx1ZS1wYXJlblwiOnJldHVybiByLnZhbHVlO2Nhc2VcInZhbHVlLW51bWJlclwiOnJldHVyblttbihyLnZhbHVlKSxQaShyLnVuaXQpXTtjYXNlXCJ2YWx1ZS1vcGVyYXRvclwiOnJldHVybiByLnZhbHVlO2Nhc2VcInZhbHVlLXdvcmRcIjpyZXR1cm4gci5pc0NvbG9yJiZyLmlzSGV4fHxvaShyLnZhbHVlKT9yLnZhbHVlLnRvTG93ZXJDYXNlKCk6ci52YWx1ZTtjYXNlXCJ2YWx1ZS1jb2xvblwiOntsZXR7cHJldmlvdXM6Zn09dDtyZXR1cm5bci52YWx1ZSx0eXBlb2YoZj09bnVsbD92b2lkIDA6Zi52YWx1ZSk9PVwic3RyaW5nXCImJmYudmFsdWUuZW5kc1dpdGgoXCJcXFxcXCIpfHxFZSh0LFwidXJsXCIpP1wiXCI6QV19Y2FzZVwidmFsdWUtc3RyaW5nXCI6cmV0dXJuIFN0KHIucmF3cy5xdW90ZStyLnZhbHVlK3IucmF3cy5xdW90ZSxlKTtjYXNlXCJ2YWx1ZS1hdHdvcmRcIjpyZXR1cm5bXCJAXCIsci52YWx1ZV07Y2FzZVwidmFsdWUtdW5pY29kZS1yYW5nZVwiOnJldHVybiByLnZhbHVlO2Nhc2VcInZhbHVlLXVua25vd25cIjpyZXR1cm4gci52YWx1ZTtjYXNlXCJ2YWx1ZS1jb21tYVwiOmRlZmF1bHQ6dGhyb3cgbmV3IE1zKHIsXCJQb3N0Q1NTXCIpfX12YXIgSGM9e3ByaW50OktjLGVtYmVkOldzLGluc2VydFByYWdtYTp0aSxtYXNzYWdlQXN0Tm9kZTpGcyxnZXRWaXNpdG9yS2V5czpzaX0sRmk9SGM7dmFyIEVzPXt9O09zKEVzLHtjc3M6KCk9PkJnLGxlc3M6KCk9PkZnLHNjc3M6KCk9PiRnfSk7dmFyIHFsPXVlKGR0KCksMSksRGw9dWUoSG8oKSwxKSxMbD11ZShQYSgpLDEpO2Z1bmN0aW9uIEpwKHQsZSl7bGV0IG49bmV3IFN5bnRheEVycm9yKHQrXCIgKFwiK2UubG9jLnN0YXJ0LmxpbmUrXCI6XCIrZS5sb2Muc3RhcnQuY29sdW1uK1wiKVwiKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuLGUpfXZhciBSYT1KcDtmdW5jdGlvbiBYcCh0LGUpe3JldHVybiBlLnBhcnNlciE9PVwic2Nzc1wifHwhdC5zZWxlY3Rvcj8hMTp0LnNlbGVjdG9yLnJlcGxhY2UoL1xcL1xcKi4qP1xcKlxcLy8sXCJcIikucmVwbGFjZSgvXFwvXFwvLipcXG4vLFwiXCIpLnRyaW0oKS5lbmRzV2l0aChcIjpcIil9dmFyIElhPVhwO3ZhciBacD1uZXcgU2V0KFtcImltcG9ydFwiLFwidXNlXCIsXCJmb3J3YXJkXCJdKTtmdW5jdGlvbiBlaCh0KXtyZXR1cm4gWnAuaGFzKHQpfXZhciBxYT1laDt2YXIgVGw9dWUoT3UoKSwxKTt2YXIgaWQ9dD0+e2Zvcig7dC5wYXJlbnQ7KXQ9dC5wYXJlbnQ7cmV0dXJuIHR9LEFyPWlkO2Z1bmN0aW9uIG9kKHQpe3JldHVybiBBcih0KS50ZXh0LnNsaWNlKHQuZ3JvdXAub3Blbi5zb3VyY2VJbmRleCsxLHQuZ3JvdXAuY2xvc2Uuc291cmNlSW5kZXgpLnRyaW0oKX12YXIgQXU9b2Q7ZnVuY3Rpb24gYWQodCl7aWYoZWUodCkpe2ZvcihsZXQgZT10Lmxlbmd0aC0xO2U+MDtlLS0paWYodFtlXS50eXBlPT09XCJ3b3JkXCImJnRbZV0udmFsdWU9PT1cIntcIiYmdFtlLTFdLnR5cGU9PT1cIndvcmRcIiYmdFtlLTFdLnZhbHVlLmVuZHNXaXRoKFwiI1wiKSlyZXR1cm4hMH1yZXR1cm4hMX12YXIgTnU9YWQ7ZnVuY3Rpb24gdWQodCl7cmV0dXJuIHQuc29tZShlPT5lLnR5cGU9PT1cInN0cmluZ1wifHxlLnR5cGU9PT1cImZ1bmNcIiYmIWUudmFsdWUuZW5kc1dpdGgoXCJcXFxcXCIpKX12YXIgUHU9dWQ7ZnVuY3Rpb24gbGQodCxlKXtyZXR1cm4hIShlLnBhcnNlcj09PVwic2Nzc1wiJiYodD09bnVsbD92b2lkIDA6dC50eXBlKT09PVwid29yZFwiJiZ0LnZhbHVlLnN0YXJ0c1dpdGgoXCIkXCIpKX12YXIgUnU9bGQ7dmFyIF9sPXVlKGtsKCksMSk7ZnVuY3Rpb24gWCh0LGUsbil7aWYodCYmdHlwZW9mIHQ9PVwib2JqZWN0XCIpe2RlbGV0ZSB0LnBhcmVudDtmb3IobGV0IHIgaW4gdClYKHRbcl0sZSxuKSxyPT09XCJ0eXBlXCImJnR5cGVvZiB0W3JdPT1cInN0cmluZ1wiJiYhdFtyXS5zdGFydHNXaXRoKGUpJiYoIW58fCFuLnRlc3QodFtyXSkpJiYodFtyXT1lK3Rbcl0pfXJldHVybiB0fWZ1bmN0aW9uIG1zKHQpe2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwiKXtkZWxldGUgdC5wYXJlbnQ7Zm9yKGxldCBlIGluIHQpbXModFtlXSk7IUFycmF5LmlzQXJyYXkodCkmJnQudmFsdWUmJiF0LnR5cGUmJih0LnR5cGU9XCJ1bmtub3duXCIpfXJldHVybiB0fWZ1bmN0aW9uIHhnKHQpe2lmKC9cXC9cXC98XFwvXFwqLy50ZXN0KHQpKXJldHVybnt0eXBlOlwic2VsZWN0b3ItdW5rbm93blwiLHZhbHVlOnQudHJpbSgpfTtsZXQgZTt0cnl7bmV3IF9sLmRlZmF1bHQobj0+e2U9bn0pLnByb2Nlc3ModCl9Y2F0Y2h7cmV0dXJue3R5cGU6XCJzZWxlY3Rvci11bmtub3duXCIsdmFsdWU6dH19cmV0dXJuIFgoZSxcInNlbGVjdG9yLVwiKX12YXIgWj14ZztmdW5jdGlvbiBiZyh0LGUpe3ZhciB1O2xldHtub2RlczpufT10LHI9e29wZW46bnVsbCxjbG9zZTpudWxsLGdyb3VwczpbXSx0eXBlOlwicGFyZW5fZ3JvdXBcIn0scz1bcl0saT1yLG89e2dyb3VwczpbXSx0eXBlOlwiY29tbWFfZ3JvdXBcIn0sYT1bb107Zm9yKGxldCBjPTA7YzxuLmxlbmd0aDsrK2Mpe2xldCBmPW5bY107aWYoZS5wYXJzZXI9PT1cInNjc3NcIiYmZi50eXBlPT09XCJudW1iZXJcIiYmZi51bml0PT09XCIuLlwiJiZmLnZhbHVlLmVuZHNXaXRoKFwiLlwiKSYmKGYudmFsdWU9Zi52YWx1ZS5zbGljZSgwLC0xKSxmLnVuaXQ9XCIuLi5cIiksZi50eXBlPT09XCJmdW5jXCImJmYudmFsdWU9PT1cInNlbGVjdG9yXCImJihmLmdyb3VwLmdyb3Vwcz1bWihBcih0KS50ZXh0LnNsaWNlKGYuZ3JvdXAub3Blbi5zb3VyY2VJbmRleCsxLGYuZ3JvdXAuY2xvc2Uuc291cmNlSW5kZXgpKV0pLGYudHlwZT09PVwiZnVuY1wiJiZmLnZhbHVlPT09XCJ1cmxcIil7bGV0IHA9KCh1PWYuZ3JvdXApPT1udWxsP3ZvaWQgMDp1Lmdyb3Vwcyk/P1tdLGw9W107Zm9yKGxldCBnPTA7ZzxwLmxlbmd0aDtnKyspe2xldCB4PXBbZ107eC50eXBlPT09XCJjb21tYV9ncm91cFwiP2w9Wy4uLmwsLi4ueC5ncm91cHNdOmwucHVzaCh4KX0oTnUobCl8fCFQdShsKSYmIVJ1KGxbMF0sZSkpJiYoZi5ncm91cC5ncm91cHM9W0F1KGYpXSl9aWYoZi50eXBlPT09XCJwYXJlblwiJiZmLnZhbHVlPT09XCIoXCIpcj17b3BlbjpmLGNsb3NlOm51bGwsZ3JvdXBzOltdLHR5cGU6XCJwYXJlbl9ncm91cFwifSxzLnB1c2gociksbz17Z3JvdXBzOltdLHR5cGU6XCJjb21tYV9ncm91cFwifSxhLnB1c2gobyk7ZWxzZSBpZihmLnR5cGU9PT1cInBhcmVuXCImJmYudmFsdWU9PT1cIilcIil7aWYoby5ncm91cHMubGVuZ3RoPjAmJnIuZ3JvdXBzLnB1c2gobyksci5jbG9zZT1mLGEubGVuZ3RoPT09MSl0aHJvdyBuZXcgRXJyb3IoXCJVbmJhbGFuY2VkIHBhcmVudGhlc2lzXCIpO2EucG9wKCksbz1HKCExLGEsLTEpLG8uZ3JvdXBzLnB1c2gocikscy5wb3AoKSxyPUcoITEscywtMSl9ZWxzZSBmLnR5cGU9PT1cImNvbW1hXCI/KHIuZ3JvdXBzLnB1c2gobyksbz17Z3JvdXBzOltdLHR5cGU6XCJjb21tYV9ncm91cFwifSxhW2EubGVuZ3RoLTFdPW8pOm8uZ3JvdXBzLnB1c2goZil9cmV0dXJuIG8uZ3JvdXBzLmxlbmd0aD4wJiZyLmdyb3Vwcy5wdXNoKG8pLGl9ZnVuY3Rpb24gWHIodCl7cmV0dXJuIHQudHlwZT09PVwicGFyZW5fZ3JvdXBcIiYmIXQub3BlbiYmIXQuY2xvc2UmJnQuZ3JvdXBzLmxlbmd0aD09PTF8fHQudHlwZT09PVwiY29tbWFfZ3JvdXBcIiYmdC5ncm91cHMubGVuZ3RoPT09MT9Ycih0Lmdyb3Vwc1swXSk6dC50eXBlPT09XCJwYXJlbl9ncm91cFwifHx0LnR5cGU9PT1cImNvbW1hX2dyb3VwXCI/ey4uLnQsZ3JvdXBzOnQuZ3JvdXBzLm1hcChYcil9OnR9ZnVuY3Rpb24gRWwodCxlKXtpZih0JiZ0eXBlb2YgdD09XCJvYmplY3RcIilmb3IobGV0IG4gaW4gdCluIT09XCJwYXJlbnRcIiYmKEVsKHRbbl0sZSksbj09PVwibm9kZXNcIiYmKHQuZ3JvdXA9WHIoYmcodCxlKSksZGVsZXRlIHRbbl0pKTtyZXR1cm4gdH1mdW5jdGlvbiBrZyh0LGUpe2lmKGUucGFyc2VyPT09XCJsZXNzXCImJnQuc3RhcnRzV2l0aChcIn5gXCIpKXJldHVybnt0eXBlOlwidmFsdWUtdW5rbm93blwiLHZhbHVlOnR9O2xldCBuPW51bGw7dHJ5e249bmV3IFRsLmRlZmF1bHQodCx7bG9vc2U6ITB9KS5wYXJzZSgpfWNhdGNoe3JldHVybnt0eXBlOlwidmFsdWUtdW5rbm93blwiLHZhbHVlOnR9fW4udGV4dD10O2xldCByPUVsKG4sZSk7cmV0dXJuIFgocixcInZhbHVlLVwiLC9ec2VsZWN0b3ItLyl9dmFyIGFlPWtnO3ZhciBSbD11ZShQbCgpLDEpO3ZhciBxZz1SbC5kZWZhdWx0LmRlZmF1bHQ7ZnVuY3Rpb24gRGcodCl7bGV0IGU7dHJ5e2U9cWcodCl9Y2F0Y2h7cmV0dXJue3R5cGU6XCJzZWxlY3Rvci11bmtub3duXCIsdmFsdWU6dH19cmV0dXJuIFgobXMoZSksXCJtZWRpYS1cIil9dmFyIElsPURnO3ZhciBMZz0vKFxccyopKCFkZWZhdWx0KS4qJC8sTWc9LyhcXHMqKSghZ2xvYmFsKS4qJC87ZnVuY3Rpb24gTWwodCxlKXt2YXIgbixyO2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwiKXtkZWxldGUgdC5wYXJlbnQ7Zm9yKGxldCBhIGluIHQpTWwodFthXSxlKTtpZighdC50eXBlKXJldHVybiB0O2lmKHQucmF3cz8/KHQucmF3cz17fSksdC50eXBlPT09XCJjc3MtZGVjbFwiJiZ0eXBlb2YgdC5wcm9wPT1cInN0cmluZ1wiJiZ0LnByb3Auc3RhcnRzV2l0aChcIi0tXCIpJiZ0eXBlb2YgdC52YWx1ZT09XCJzdHJpbmdcIiYmdC52YWx1ZS5zdGFydHNXaXRoKFwie1wiKSl7bGV0IGE7aWYodC52YWx1ZS50cmltRW5kKCkuZW5kc1dpdGgoXCJ9XCIpKXtsZXQgdT1lLm9yaWdpbmFsVGV4dC5zbGljZSgwLHQuc291cmNlLnN0YXJ0Lm9mZnNldCksYz1cImFcIi5yZXBlYXQodC5wcm9wLmxlbmd0aCkrZS5vcmlnaW5hbFRleHQuc2xpY2UodC5zb3VyY2Uuc3RhcnQub2Zmc2V0K3QucHJvcC5sZW5ndGgsdC5zb3VyY2UuZW5kLm9mZnNldCsxKSxmPVQoITEsdSwvW15cXG5dL2csXCIgXCIpK2MscDtlLnBhcnNlcj09PVwic2Nzc1wiP3A9JGw6ZS5wYXJzZXI9PT1cImxlc3NcIj9wPUZsOnA9Qmw7bGV0IGw7dHJ5e2w9cChmLHsuLi5lfSl9Y2F0Y2h7fSgobj1sPT1udWxsP3ZvaWQgMDpsLm5vZGVzKT09bnVsbD92b2lkIDA6bi5sZW5ndGgpPT09MSYmbC5ub2Rlc1swXS50eXBlPT09XCJjc3MtcnVsZVwiJiYoYT1sLm5vZGVzWzBdLm5vZGVzKX1yZXR1cm4gYT90LnZhbHVlPXt0eXBlOlwiY3NzLXJ1bGVcIixub2RlczphfTp0LnZhbHVlPXt0eXBlOlwidmFsdWUtdW5rbm93blwiLHZhbHVlOnQucmF3cy52YWx1ZS5yYXd9LHR9bGV0IHM9XCJcIjt0eXBlb2YgdC5zZWxlY3Rvcj09XCJzdHJpbmdcIiYmKHM9dC5yYXdzLnNlbGVjdG9yP3QucmF3cy5zZWxlY3Rvci5zY3NzPz90LnJhd3Muc2VsZWN0b3IucmF3OnQuc2VsZWN0b3IsdC5yYXdzLmJldHdlZW4mJnQucmF3cy5iZXR3ZWVuLnRyaW0oKS5sZW5ndGg+MCYmKHMrPXQucmF3cy5iZXR3ZWVuKSx0LnJhd3Muc2VsZWN0b3I9cyk7bGV0IGk9XCJcIjt0eXBlb2YgdC52YWx1ZT09XCJzdHJpbmdcIiYmKGk9dC5yYXdzLnZhbHVlP3QucmF3cy52YWx1ZS5zY3NzPz90LnJhd3MudmFsdWUucmF3OnQudmFsdWUsaT1pLnRyaW0oKSx0LnJhd3MudmFsdWU9aSk7bGV0IG89XCJcIjtpZih0eXBlb2YgdC5wYXJhbXM9PVwic3RyaW5nXCImJihvPXQucmF3cy5wYXJhbXM/dC5yYXdzLnBhcmFtcy5zY3NzPz90LnJhd3MucGFyYW1zLnJhdzp0LnBhcmFtcyx0LnJhd3MuYWZ0ZXJOYW1lJiZ0LnJhd3MuYWZ0ZXJOYW1lLnRyaW0oKS5sZW5ndGg+MCYmKG89dC5yYXdzLmFmdGVyTmFtZStvKSx0LnJhd3MuYmV0d2VlbiYmdC5yYXdzLmJldHdlZW4udHJpbSgpLmxlbmd0aD4wJiYobz1vK3QucmF3cy5iZXR3ZWVuKSxvPW8udHJpbSgpLHQucmF3cy5wYXJhbXM9bykscy50cmltKCkubGVuZ3RoPjApcmV0dXJuIHMuc3RhcnRzV2l0aChcIkBcIikmJnMuZW5kc1dpdGgoXCI6XCIpP3Q6dC5taXhpbj8odC5zZWxlY3Rvcj1hZShzLGUpLHQpOihJYSh0LGUpJiYodC5pc1NDU1NOZXN0ZXJQcm9wZXJ0eT0hMCksdC5zZWxlY3Rvcj1aKHMpLHQpO2lmKGkubGVuZ3RoPjApe2xldCBhPWkubWF0Y2goTGcpO2EmJihpPWkuc2xpY2UoMCxhLmluZGV4KSx0LnNjc3NEZWZhdWx0PSEwLGFbMF0udHJpbSgpIT09XCIhZGVmYXVsdFwiJiYodC5yYXdzLnNjc3NEZWZhdWx0PWFbMF0pKTtsZXQgdT1pLm1hdGNoKE1nKTtpZih1JiYoaT1pLnNsaWNlKDAsdS5pbmRleCksdC5zY3NzR2xvYmFsPSEwLHVbMF0udHJpbSgpIT09XCIhZ2xvYmFsXCImJih0LnJhd3Muc2Nzc0dsb2JhbD11WzBdKSksaS5zdGFydHNXaXRoKFwicHJvZ2lkOlwiKSlyZXR1cm57dHlwZTpcInZhbHVlLXVua25vd25cIix2YWx1ZTppfTt0LnZhbHVlPWFlKGksZSl9aWYoZS5wYXJzZXI9PT1cImxlc3NcIiYmdC50eXBlPT09XCJjc3MtZGVjbFwiJiZpLnN0YXJ0c1dpdGgoXCJleHRlbmQoXCIpJiYodC5leHRlbmR8fCh0LmV4dGVuZD10LnJhd3MuYmV0d2Vlbj09PVwiOlwiKSx0LmV4dGVuZCYmIXQuc2VsZWN0b3ImJihkZWxldGUgdC52YWx1ZSx0LnNlbGVjdG9yPVooaS5zbGljZSg3LC0xKSkpKSx0LnR5cGU9PT1cImNzcy1hdHJ1bGVcIil7aWYoZS5wYXJzZXI9PT1cImxlc3NcIil7aWYodC5taXhpbil7bGV0IGE9dC5yYXdzLmlkZW50aWZpZXIrdC5uYW1lK3QucmF3cy5hZnRlck5hbWUrdC5yYXdzLnBhcmFtcztyZXR1cm4gdC5zZWxlY3Rvcj1aKGEpLGRlbGV0ZSB0LnBhcmFtcyx0fWlmKHQuZnVuY3Rpb24pcmV0dXJuIHR9aWYoZS5wYXJzZXI9PT1cImNzc1wiJiZ0Lm5hbWU9PT1cImN1c3RvbS1zZWxlY3RvclwiKXtsZXQgYT10LnBhcmFtcy5tYXRjaCgvOi0tXFxTK1xccysvKVswXS50cmltKCk7cmV0dXJuIHQuY3VzdG9tU2VsZWN0b3I9YSx0LnNlbGVjdG9yPVoodC5wYXJhbXMuc2xpY2UoYS5sZW5ndGgpLnRyaW0oKSksZGVsZXRlIHQucGFyYW1zLHR9aWYoZS5wYXJzZXI9PT1cImxlc3NcIil7aWYodC5uYW1lLmluY2x1ZGVzKFwiOlwiKSYmIXQucGFyYW1zKXt0LnZhcmlhYmxlPSEwO2xldCBhPXQubmFtZS5zcGxpdChcIjpcIik7dC5uYW1lPWFbMF0sdC52YWx1ZT1hZShhLnNsaWNlKDEpLmpvaW4oXCI6XCIpLGUpfWlmKCFbXCJwYWdlXCIsXCJuZXN0XCIsXCJrZXlmcmFtZXNcIl0uaW5jbHVkZXModC5uYW1lKSYmKChyPXQucGFyYW1zKT09bnVsbD92b2lkIDA6clswXSk9PT1cIjpcIil7dC52YXJpYWJsZT0hMDtsZXQgYT10LnBhcmFtcy5zbGljZSgxKTthJiYodC52YWx1ZT1hZShhLGUpKSx0LnJhd3MuYWZ0ZXJOYW1lKz1cIjpcIn1pZih0LnZhcmlhYmxlKXJldHVybiBkZWxldGUgdC5wYXJhbXMsdC52YWx1ZXx8ZGVsZXRlIHQudmFsdWUsdH19aWYodC50eXBlPT09XCJjc3MtYXRydWxlXCImJm8ubGVuZ3RoPjApe2xldHtuYW1lOmF9PXQsdT10Lm5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gYT09PVwid2FyblwifHxhPT09XCJlcnJvclwiPyh0LnBhcmFtcz17dHlwZTpcIm1lZGlhLXVua25vd25cIix2YWx1ZTpvfSx0KTphPT09XCJleHRlbmRcInx8YT09PVwibmVzdFwiPyh0LnNlbGVjdG9yPVoobyksZGVsZXRlIHQucGFyYW1zLHQpOmE9PT1cImF0LXJvb3RcIj8oL15cXChcXHMqKD86d2l0aG91dHx3aXRoKVxccyo6LitcXCkkL3MudGVzdChvKT90LnBhcmFtcz1hZShvLGUpOih0LnNlbGVjdG9yPVoobyksZGVsZXRlIHQucGFyYW1zKSx0KTpxYSh1KT8odC5pbXBvcnQ9ITAsZGVsZXRlIHQuZmlsZW5hbWUsdC5wYXJhbXM9YWUobyxlKSx0KTpbXCJuYW1lc3BhY2VcIixcInN1cHBvcnRzXCIsXCJpZlwiLFwiZWxzZVwiLFwiZm9yXCIsXCJlYWNoXCIsXCJ3aGlsZVwiLFwiZGVidWdcIixcIm1peGluXCIsXCJpbmNsdWRlXCIsXCJmdW5jdGlvblwiLFwicmV0dXJuXCIsXCJkZWZpbmUtbWl4aW5cIixcImFkZC1taXhpblwiXS5pbmNsdWRlcyhhKT8obz1vLnJlcGxhY2UoLyhcXCRcXFMrPykoXFxzKyk/XFwuezN9LyxcIiQxLi4uJDJcIiksbz1vLnJlcGxhY2UoL14oPyFpZikoXFxTKykoXFxzKylcXCgvLFwiJDEoJDJcIiksdC52YWx1ZT1hZShvLGUpLGRlbGV0ZSB0LnBhcmFtcyx0KTpbXCJtZWRpYVwiLFwiY3VzdG9tLW1lZGlhXCJdLmluY2x1ZGVzKHUpP28uaW5jbHVkZXMoXCIje1wiKT97dHlwZTpcIm1lZGlhLXVua25vd25cIix2YWx1ZTpvfToodC5wYXJhbXM9SWwobyksdCk6KHQucGFyYW1zPW8sdCl9fXJldHVybiB0fWZ1bmN0aW9uIF9zKHQsZSxuKXtsZXQgcj1qZShlKSx7ZnJvbnRNYXR0ZXI6c309cjtlPXIuY29udGVudDtsZXQgaTt0cnl7aT10KGUse21hcDohMX0pfWNhdGNoKG8pe2xldHtuYW1lOmEscmVhc29uOnUsbGluZTpjLGNvbHVtbjpmfT1vO3Rocm93IHR5cGVvZiBjIT1cIm51bWJlclwiP286UmEoYCR7YX06ICR7dX1gLHtsb2M6e3N0YXJ0OntsaW5lOmMsY29sdW1uOmZ9fSxjYXVzZTpvfSl9cmV0dXJuIG4ub3JpZ2luYWxUZXh0PWUsaT1NbChYKGksXCJjc3MtXCIpLG4pLGhuKGksZSkscyYmKHMuc291cmNlPXtzdGFydE9mZnNldDowLGVuZE9mZnNldDpzLnJhdy5sZW5ndGh9LGkuZnJvbnRNYXR0ZXI9cyksaX1mdW5jdGlvbiBCbCh0LGU9e30pe3JldHVybiBfcyhxbC5kZWZhdWx0LmRlZmF1bHQsdCxlKX1mdW5jdGlvbiBGbCh0LGU9e30pe3JldHVybiBfcyhuPT5EbC5kZWZhdWx0LnBhcnNlKEFpKG4pKSx0LGUpfWZ1bmN0aW9uICRsKHQsZT17fSl7cmV0dXJuIF9zKExsLmRlZmF1bHQsdCxlKX12YXIgVHM9e2FzdEZvcm1hdDpcInBvc3Rjc3NcIixoYXNQcmFnbWE6ZWksbG9jU3RhcnQ6UCxsb2NFbmQ6Un0sQmc9ey4uLlRzLHBhcnNlOkJsfSxGZz17Li4uVHMscGFyc2U6Rmx9LCRnPXsuLi5UcyxwYXJzZTokbH07dmFyIFVsPVt7bGluZ3Vpc3RMYW5ndWFnZUlkOjUwLG5hbWU6XCJDU1NcIix0eXBlOlwibWFya3VwXCIsdG1TY29wZTpcInNvdXJjZS5jc3NcIixhY2VNb2RlOlwiY3NzXCIsY29kZW1pcnJvck1vZGU6XCJjc3NcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L2Nzc1wiLGNvbG9yOlwiIzU2M2Q3Y1wiLGV4dGVuc2lvbnM6W1wiLmNzc1wiLFwiLnd4c3NcIl0scGFyc2VyczpbXCJjc3NcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wiY3NzXCJdfSx7bGluZ3Vpc3RMYW5ndWFnZUlkOjI2Mjc2NDQzNyxuYW1lOlwiUG9zdENTU1wiLHR5cGU6XCJtYXJrdXBcIixjb2xvcjpcIiNkYzNhMGNcIix0bVNjb3BlOlwic291cmNlLnBvc3Rjc3NcIixncm91cDpcIkNTU1wiLGV4dGVuc2lvbnM6W1wiLnBjc3NcIixcIi5wb3N0Y3NzXCJdLGFjZU1vZGU6XCJ0ZXh0XCIscGFyc2VyczpbXCJjc3NcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wicG9zdGNzc1wiXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDoxOTgsbmFtZTpcIkxlc3NcIix0eXBlOlwibWFya3VwXCIsY29sb3I6XCIjMWQzNjVkXCIsYWxpYXNlczpbXCJsZXNzLWNzc1wiXSxleHRlbnNpb25zOltcIi5sZXNzXCJdLHRtU2NvcGU6XCJzb3VyY2UuY3NzLmxlc3NcIixhY2VNb2RlOlwibGVzc1wiLGNvZGVtaXJyb3JNb2RlOlwiY3NzXCIsY29kZW1pcnJvck1pbWVUeXBlOlwidGV4dC9jc3NcIixwYXJzZXJzOltcImxlc3NcIl0sdnNjb2RlTGFuZ3VhZ2VJZHM6W1wibGVzc1wiXX0se2xpbmd1aXN0TGFuZ3VhZ2VJZDozMjksbmFtZTpcIlNDU1NcIix0eXBlOlwibWFya3VwXCIsY29sb3I6XCIjYzY1MzhjXCIsdG1TY29wZTpcInNvdXJjZS5jc3Muc2Nzc1wiLGFjZU1vZGU6XCJzY3NzXCIsY29kZW1pcnJvck1vZGU6XCJjc3NcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L3gtc2Nzc1wiLGV4dGVuc2lvbnM6W1wiLnNjc3NcIl0scGFyc2VyczpbXCJzY3NzXCJdLHZzY29kZUxhbmd1YWdlSWRzOltcInNjc3NcIl19XTt2YXIgV2w9e2JyYWNrZXRTcGFjaW5nOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMCxkZXNjcmlwdGlvbjpcIlByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwiLG9wcG9zaXRlRGVzY3JpcHRpb246XCJEbyBub3QgcHJpbnQgc3BhY2VzIGJldHdlZW4gYnJhY2tldHMuXCJ9LHNpbmdsZVF1b3RlOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIlVzZSBzaW5nbGUgcXVvdGVzIGluc3RlYWQgb2YgZG91YmxlIHF1b3Rlcy5cIn0scHJvc2VXcmFwOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJjaG9pY2VcIixkZWZhdWx0OlwicHJlc2VydmVcIixkZXNjcmlwdGlvbjpcIkhvdyB0byB3cmFwIHByb3NlLlwiLGNob2ljZXM6W3t2YWx1ZTpcImFsd2F5c1wiLGRlc2NyaXB0aW9uOlwiV3JhcCBwcm9zZSBpZiBpdCBleGNlZWRzIHRoZSBwcmludCB3aWR0aC5cIn0se3ZhbHVlOlwibmV2ZXJcIixkZXNjcmlwdGlvbjpcIkRvIG5vdCB3cmFwIHByb3NlLlwifSx7dmFsdWU6XCJwcmVzZXJ2ZVwiLGRlc2NyaXB0aW9uOlwiV3JhcCBwcm9zZSBhcy1pcy5cIn1dfSxicmFja2V0U2FtZUxpbmU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiUHV0ID4gb2Ygb3BlbmluZyB0YWdzIG9uIHRoZSBsYXN0IGxpbmUgaW5zdGVhZCBvZiBvbiBhIG5ldyBsaW5lLlwifSxzaW5nbGVBdHRyaWJ1dGVQZXJMaW5lOntjYXRlZ29yeTpcIkNvbW1vblwiLHR5cGU6XCJib29sZWFuXCIsZGVmYXVsdDohMSxkZXNjcmlwdGlvbjpcIkVuZm9yY2Ugc2luZ2xlIGF0dHJpYnV0ZSBwZXIgbGluZSBpbiBIVE1MLCBWdWUgYW5kIEpTWC5cIn19O3ZhciBVZz17c2luZ2xlUXVvdGU6V2wuc2luZ2xlUXVvdGV9LHpsPVVnO3ZhciBXZz17cG9zdGNzczpGaX07dmFyIFZrPVNzO2V4cG9ydHtWayBhcyBkZWZhdWx0LFVsIGFzIGxhbmd1YWdlcyx6bCBhcyBvcHRpb25zLEVzIGFzIHBhcnNlcnMsV2cgYXMgcHJpbnRlcnN9O1xuIiwgInZhciBTNT1PYmplY3QuY3JlYXRlO3ZhciB4Zj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHg1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIHc1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBDNT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsRTU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgQTU9KGUsdCk9PigpPT4oZSYmKHQ9ZShlPTApKSx0KTt2YXIgdXQ9KGUsdCk9PigpPT4odHx8ZSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKSxWaD0oZSx0KT0+e2Zvcih2YXIgciBpbiB0KXhmKGUscix7Z2V0OnRbcl0sZW51bWVyYWJsZTohMH0pfSxPYj0oZSx0LHIsYSk9PntpZih0JiZ0eXBlb2YgdD09XCJvYmplY3RcInx8dHlwZW9mIHQ9PVwiZnVuY3Rpb25cIilmb3IobGV0IF8gb2YgdzUodCkpIUU1LmNhbGwoZSxfKSYmXyE9PXImJnhmKGUsXyx7Z2V0OigpPT50W19dLGVudW1lcmFibGU6IShhPXg1KHQsXykpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIE1iPShlLHQscik9PihyPWUhPW51bGw/UzUoQzUoZSkpOnt9LE9iKHR8fCFlfHwhZS5fX2VzTW9kdWxlP3hmKHIsXCJkZWZhdWx0XCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMH0pOnIsZSkpLEhoPWU9Pk9iKHhmKHt9LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLGUpO3ZhciB3Zj17fTtWaCh3Zix7ZGVmYXVsdDooKT0+RDV9KTt2YXIgazUsRDUsQ2Y9QTUoKCk9PntrNT0oKT0+KCk9Pnt9LEQ1PWs1fSk7dmFyIER0PXV0KChRVixBNyk9Pnt2YXIgUDU9T2JqZWN0LmRlZmluZVByb3BlcnR5LHl2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLFZ0PShlLHQpPT5mdW5jdGlvbigpe3JldHVybiBlJiYodD0oMCxlW3l2KGUpWzBdXSkoZT0wKSksdH0sSTU9KGUsdCk9PmZ1bmN0aW9uKCl7cmV0dXJuIHR8fCgwLGVbeXYoZSlbMF1dKSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzfSxONT0oZSx0KT0+e2Zvcih2YXIgciBpbiB0KVA1KGUscix7Z2V0OnRbcl0sZW51bWVyYWJsZTohMH0pfSxndixIZixaaCxPNT1WdCh7XCJzcmMvY29tcGlsZXIvY29yZVB1YmxpYy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7Z3Y9XCI1LjJcIixIZj1cIjUuMi4yXCIsWmg9KGU9PihlW2UuTGVzc1RoYW49LTFdPVwiTGVzc1RoYW5cIixlW2UuRXF1YWxUbz0wXT1cIkVxdWFsVG9cIixlW2UuR3JlYXRlclRoYW49MV09XCJHcmVhdGVyVGhhblwiLGUpKShaaHx8e30pfX0pO2Z1bmN0aW9uIEthKGUpe3JldHVybiBlP2UubGVuZ3RoOjB9ZnVuY3Rpb24geXIoZSx0KXtpZihlKWZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgYT10KGVbcl0scik7aWYoYSlyZXR1cm4gYX19ZnVuY3Rpb24gTTUoZSx0KXtpZihlKWZvcihsZXQgcj1lLmxlbmd0aC0xO3I+PTA7ci0tKXtsZXQgYT10KGVbcl0scik7aWYoYSlyZXR1cm4gYX19ZnVuY3Rpb24gbmcoZSx0KXtpZihlIT09dm9pZCAwKWZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgYT10KGVbcl0scik7aWYoYSE9PXZvaWQgMClyZXR1cm4gYX19ZnVuY3Rpb24gTDUoZSx0KXtmb3IobGV0IHIgb2YgZSl7bGV0IGE9dChyKTtpZihhIT09dm9pZCAwKXJldHVybiBhfX1mdW5jdGlvbiBKNShlLHQscil7bGV0IGE9cjtpZihlKXtsZXQgXz0wO2ZvcihsZXQgcCBvZiBlKWE9dChhLHAsXyksXysrfXJldHVybiBhfWZ1bmN0aW9uIGV5KGUsdCxyKXtsZXQgYT1bXTtOLmFzc2VydEVxdWFsKGUubGVuZ3RoLHQubGVuZ3RoKTtmb3IobGV0IF89MDtfPGUubGVuZ3RoO18rKylhLnB1c2gocihlW19dLHRbX10sXykpO3JldHVybiBhfWZ1bmN0aW9uIFI1KGUsdCl7aWYoZS5sZW5ndGg8PTEpcmV0dXJuIGU7bGV0IHI9W107Zm9yKGxldCBhPTAsXz1lLmxlbmd0aDthPF87YSsrKWEmJnIucHVzaCh0KSxyLnB1c2goZVthXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gc28oZSx0KXtpZihlKXtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylpZighdChlW3JdLHIpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFlyKGUsdCxyKXtpZihlIT09dm9pZCAwKWZvcihsZXQgYT1yPz8wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgXz1lW2FdO2lmKHQoXyxhKSlyZXR1cm4gX319ZnVuY3Rpb24gaWcoZSx0LHIpe2lmKGUhPT12b2lkIDApZm9yKGxldCBhPXI/P2UubGVuZ3RoLTE7YT49MDthLS0pe2xldCBfPWVbYV07aWYodChfLGEpKXJldHVybiBffX1mdW5jdGlvbiBfbChlLHQscil7aWYoZT09PXZvaWQgMClyZXR1cm4tMTtmb3IobGV0IGE9cj8/MDthPGUubGVuZ3RoO2ErKylpZih0KGVbYV0sYSkpcmV0dXJuIGE7cmV0dXJuLTF9ZnVuY3Rpb24gajUoZSx0LHIpe2lmKGU9PT12b2lkIDApcmV0dXJuLTE7Zm9yKGxldCBhPXI/P2UubGVuZ3RoLTE7YT49MDthLS0paWYodChlW2FdLGEpKXJldHVybiBhO3JldHVybi0xfWZ1bmN0aW9uIEY1KGUsdCl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBhPXQoZVtyXSxyKTtpZihhKXJldHVybiBhfXJldHVybiBOLmZhaWwoKX1mdW5jdGlvbiBlcyhlLHQscj1fbyl7aWYoZSl7Zm9yKGxldCBhIG9mIGUpaWYocihhLHQpKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGJ2KGUsdCxyPV9vKXtyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5ldmVyeSgoYSxfKT0+cihhLHRbX10pKX1mdW5jdGlvbiB2dihlLHQscil7Zm9yKGxldCBhPXJ8fDA7YTxlLmxlbmd0aDthKyspaWYoZXModCxlLmNoYXJDb2RlQXQoYSkpKXJldHVybiBhO3JldHVybi0xfWZ1bmN0aW9uIEI1KGUsdCl7bGV0IHI9MDtpZihlKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgXz1lW2FdO3QoXyxhKSYmcisrfXJldHVybiByfWZ1bmN0aW9uICRyKGUsdCl7aWYoZSl7bGV0IHI9ZS5sZW5ndGgsYT0wO2Zvcig7YTxyJiZ0KGVbYV0pOylhKys7aWYoYTxyKXtsZXQgXz1lLnNsaWNlKDAsYSk7Zm9yKGErKzthPHI7KXtsZXQgcD1lW2FdO3QocCkmJl8ucHVzaChwKSxhKyt9cmV0dXJuIF99fXJldHVybiBlfWZ1bmN0aW9uIFU1KGUsdCl7bGV0IHI9MDtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl0KGVbYV0sYSxlKSYmKGVbcl09ZVthXSxyKyspO2UubGVuZ3RoPXJ9ZnVuY3Rpb24gcTUoZSl7ZS5sZW5ndGg9MH1mdW5jdGlvbiBBYShlLHQpe2xldCByO2lmKGUpe3I9W107Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspci5wdXNoKHQoZVthXSxhKSl9cmV0dXJuIHJ9ZnVuY3Rpb24qejUoZSx0KXtmb3IobGV0IHIgb2YgZSl5aWVsZCB0KHIpfWZ1bmN0aW9uIFc1KGUsdCl7aWYoZSlmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IGE9ZVtyXSxfPXQoYSxyKTtpZihhIT09Xyl7bGV0IHA9ZS5zbGljZSgwLHIpO2ZvcihwLnB1c2goXykscisrO3I8ZS5sZW5ndGg7cisrKXAucHVzaCh0KGVbcl0scikpO3JldHVybiBwfX1yZXR1cm4gZX1mdW5jdGlvbiBvXyhlKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgZSlyJiYoenQocik/UnIodCxyKTp0LnB1c2gocikpO3JldHVybiB0fWZ1bmN0aW9uIEJvKGUsdCl7bGV0IHI7aWYoZSlmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7bGV0IF89dChlW2FdLGEpO18mJih6dChfKT9yPVJyKHIsXyk6cj14dChyLF8pKX1yZXR1cm4gcnx8JGV9ZnVuY3Rpb24gVHYoZSx0KXtsZXQgcj1bXTtpZihlKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgXz10KGVbYV0sYSk7XyYmKHp0KF8pP1JyKHIsXyk6ci5wdXNoKF8pKX1yZXR1cm4gcn1mdW5jdGlvbipWNShlLHQpe2ZvcihsZXQgciBvZiBlKXtsZXQgYT10KHIpO2EmJih5aWVsZCphKX19ZnVuY3Rpb24gU3YoZSx0KXtsZXQgcjtpZihlKWZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSsrKXtsZXQgXz1lW2FdLHA9dChfLGEpOyhyfHxfIT09cHx8enQocCkpJiYocnx8KHI9ZS5zbGljZSgwLGEpKSx6dChwKT9ScihyLHApOnIucHVzaChwKSl9cmV0dXJuIHJ8fGV9ZnVuY3Rpb24gSDUoZSx0KXtsZXQgcj1bXTtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyl7bGV0IF89dChlW2FdLGEpO2lmKF89PT12b2lkIDApcmV0dXJuO3IucHVzaChfKX1yZXR1cm4gcn1mdW5jdGlvbiBaYShlLHQpe2xldCByPVtdO2lmKGUpZm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspe2xldCBfPXQoZVthXSxhKTtfIT09dm9pZCAwJiZyLnB1c2goXyl9cmV0dXJuIHJ9ZnVuY3Rpb24qRzUoZSx0KXtmb3IobGV0IHIgb2YgZSl7bGV0IGE9dChyKTthIT09dm9pZCAwJiYoeWllbGQgYSl9fWZ1bmN0aW9uIFg1KGUsdCl7aWYoIWUpcmV0dXJuO2xldCByPW5ldyBNYXA7cmV0dXJuIGUuZm9yRWFjaCgoYSxfKT0+e2xldCBwPXQoXyxhKTtpZihwIT09dm9pZCAwKXtsZXRbZCxoXT1wO2QhPT12b2lkIDAmJmghPT12b2lkIDAmJnIuc2V0KGQsaCl9fSkscn1mdW5jdGlvbiAkNShlLHQscil7aWYoZS5oYXModCkpcmV0dXJuIGUuZ2V0KHQpO2xldCBhPXIoKTtyZXR1cm4gZS5zZXQodCxhKSxhfWZ1bmN0aW9uIFE1KGUsdCl7cmV0dXJuIGUuaGFzKHQpPyExOihlLmFkZCh0KSwhMCl9ZnVuY3Rpb24qWTUoZSl7eWllbGQgZX1mdW5jdGlvbiBLNShlLHQscil7bGV0IGE7aWYoZSl7YT1bXTtsZXQgXz1lLmxlbmd0aCxwLGQsaD0wLGw9MDtmb3IoO2g8Xzspe2Zvcig7bDxfOyl7bGV0IHY9ZVtsXTtpZihkPXQodixsKSxsPT09MClwPWQ7ZWxzZSBpZihkIT09cClicmVhaztsKyt9aWYoaDxsKXtsZXQgdj1yKGUuc2xpY2UoaCxsKSxwLGgsbCk7diYmYS5wdXNoKHYpLGg9bH1wPWQsbCsrfX1yZXR1cm4gYX1mdW5jdGlvbiBaNShlLHQpe2lmKCFlKXJldHVybjtsZXQgcj1uZXcgTWFwO3JldHVybiBlLmZvckVhY2goKGEsXyk9PntsZXRbcCxkXT10KF8sYSk7ci5zZXQocCxkKX0pLHJ9ZnVuY3Rpb24gbXQoZSx0KXtpZihlKWlmKHQpe2ZvcihsZXQgciBvZiBlKWlmKHQocikpcmV0dXJuITB9ZWxzZSByZXR1cm4gZS5sZW5ndGg+MDtyZXR1cm4hMX1mdW5jdGlvbiBlQyhlLHQscil7bGV0IGE7Zm9yKGxldCBfPTA7XzxlLmxlbmd0aDtfKyspdChlW19dKT9hPWE9PT12b2lkIDA/XzphOmEhPT12b2lkIDAmJihyKGEsXyksYT12b2lkIDApO2EhPT12b2lkIDAmJnIoYSxlLmxlbmd0aCl9ZnVuY3Rpb24geV8oZSx0KXtyZXR1cm4gbXQodCk/bXQoZSk/Wy4uLmUsLi4udF06dDplfWZ1bmN0aW9uIHRDKGUsdCl7cmV0dXJuIHR9ZnVuY3Rpb24gYWcoZSl7cmV0dXJuIGUubWFwKHRDKX1mdW5jdGlvbiByQyhlLHQscil7bGV0IGE9YWcoZSk7RXYoZSxhLHIpO2xldCBfPWVbYVswXV0scD1bYVswXV07Zm9yKGxldCBkPTE7ZDxhLmxlbmd0aDtkKyspe2xldCBoPWFbZF0sbD1lW2hdO3QoXyxsKXx8KHAucHVzaChoKSxfPWwpfXJldHVybiBwLnNvcnQoKSxwLm1hcChkPT5lW2RdKX1mdW5jdGlvbiBuQyhlLHQpe2xldCByPVtdO2ZvcihsZXQgYSBvZiBlKU9sKHIsYSx0KTtyZXR1cm4gcn1mdW5jdGlvbiB4dihlLHQscil7cmV0dXJuIGUubGVuZ3RoPT09MD9bXTplLmxlbmd0aD09PTE/ZS5zbGljZSgpOnI/ckMoZSx0LHIpOm5DKGUsdCl9ZnVuY3Rpb24gaUMoZSx0KXtpZihlLmxlbmd0aD09PTApcmV0dXJuICRlO2xldCByPWVbMF0sYT1bcl07Zm9yKGxldCBfPTE7XzxlLmxlbmd0aDtfKyspe2xldCBwPWVbX107c3dpdGNoKHQocCxyKSl7Y2FzZSEwOmNhc2UgMDpjb250aW51ZTtjYXNlLTE6cmV0dXJuIE4uZmFpbChcIkFycmF5IGlzIHVuc29ydGVkLlwiKX1hLnB1c2gocj1wKX1yZXR1cm4gYX1mdW5jdGlvbiBhQygpe3JldHVybltdfWZ1bmN0aW9uIHlsKGUsdCxyLGEpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gZS5wdXNoKHQpLCEwO2xldCBfPU1sKGUsdCxidCxyKTtyZXR1cm4gXzwwPyhlLnNwbGljZSh+XywwLHQpLCEwKTphPyhlLnNwbGljZShfLDAsdCksITApOiExfWZ1bmN0aW9uIHd2KGUsdCxyKXtyZXR1cm4gaUMoR2YoZSx0KSxyfHx0fHxDaSl9ZnVuY3Rpb24gb0MoZSx0KXtpZihlLmxlbmd0aDwyKXJldHVybiEwO2ZvcihsZXQgcj0xLGE9ZS5sZW5ndGg7cjxhO3IrKylpZih0KGVbci0xXSxlW3JdKT09PTEpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gc0MoZSx0LHIsYSl7bGV0IF89MztpZihlLmxlbmd0aDwyKXJldHVybiBfO2xldCBwPXQoZVswXSk7Zm9yKGxldCBkPTEsaD1lLmxlbmd0aDtkPGgmJl8hPT0wO2QrKyl7bGV0IGw9dChlW2RdKTtfJjEmJnIocCxsKT4wJiYoXyY9LTIpLF8mMiYmYShwLGwpPjAmJihfJj0tMykscD1sfXJldHVybiBffWZ1bmN0aW9uIF9DKGUsdCxyPV9vKXtpZighZXx8IXQpcmV0dXJuIGU9PT10O2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBhPTA7YTxlLmxlbmd0aDthKyspaWYoIXIoZVthXSx0W2FdLGEpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGNDKGUpe2xldCB0O2lmKGUpZm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspe2xldCBhPWVbcl07KHR8fCFhKSYmKHR8fCh0PWUuc2xpY2UoMCxyKSksYSYmdC5wdXNoKGEpKX1yZXR1cm4gdHx8ZX1mdW5jdGlvbiBsQyhlLHQscil7aWYoIXR8fCFlfHx0Lmxlbmd0aD09PTB8fGUubGVuZ3RoPT09MClyZXR1cm4gdDtsZXQgYT1bXTtlOmZvcihsZXQgXz0wLHA9MDtwPHQubGVuZ3RoO3ArKyl7cD4wJiZOLmFzc2VydEdyZWF0ZXJUaGFuT3JFcXVhbChyKHRbcF0sdFtwLTFdKSwwKTt0OmZvcihsZXQgZD1fO188ZS5sZW5ndGg7XysrKXN3aXRjaChfPmQmJk4uYXNzZXJ0R3JlYXRlclRoYW5PckVxdWFsKHIoZVtfXSxlW18tMV0pLDApLHIodFtwXSxlW19dKSl7Y2FzZS0xOmEucHVzaCh0W3BdKTtjb250aW51ZSBlO2Nhc2UgMDpjb250aW51ZSBlO2Nhc2UgMTpjb250aW51ZSB0fX1yZXR1cm4gYX1mdW5jdGlvbiB4dChlLHQpe3JldHVybiB0PT09dm9pZCAwP2U6ZT09PXZvaWQgMD9bdF06KGUucHVzaCh0KSxlKX1mdW5jdGlvbiB1QyhlLHQpe3JldHVybiBlPT09dm9pZCAwP3Q6dD09PXZvaWQgMD9lOnp0KGUpP3p0KHQpP3lfKGUsdCk6eHQoZSx0KTp6dCh0KT94dCh0LGUpOltlLHRdfWZ1bmN0aW9uIHR5KGUsdCl7cmV0dXJuIHQ8MD9lLmxlbmd0aCt0OnR9ZnVuY3Rpb24gUnIoZSx0LHIsYSl7aWYodD09PXZvaWQgMHx8dC5sZW5ndGg9PT0wKXJldHVybiBlO2lmKGU9PT12b2lkIDApcmV0dXJuIHQuc2xpY2UocixhKTtyPXI9PT12b2lkIDA/MDp0eSh0LHIpLGE9YT09PXZvaWQgMD90Lmxlbmd0aDp0eSh0LGEpO2ZvcihsZXQgXz1yO188YSYmXzx0Lmxlbmd0aDtfKyspdFtfXSE9PXZvaWQgMCYmZS5wdXNoKHRbX10pO3JldHVybiBlfWZ1bmN0aW9uIE9sKGUsdCxyKXtyZXR1cm4gZXMoZSx0LHIpPyExOihlLnB1c2godCksITApfWZ1bmN0aW9uIEN2KGUsdCxyKXtyZXR1cm4gZT8oT2woZSx0LHIpLGUpOlt0XX1mdW5jdGlvbiBFdihlLHQscil7dC5zb3J0KChhLF8pPT5yKGVbYV0sZVtfXSl8fGtyKGEsXykpfWZ1bmN0aW9uIEdmKGUsdCl7cmV0dXJuIGUubGVuZ3RoPT09MD9lOmUuc2xpY2UoKS5zb3J0KHQpfWZ1bmN0aW9uKnBDKGUpe2ZvcihsZXQgdD1lLmxlbmd0aC0xO3Q+PTA7dC0tKXlpZWxkIGVbdF19ZnVuY3Rpb24gQXYoZSx0KXtsZXQgcj1hZyhlKTtyZXR1cm4gRXYoZSxyLHQpLHIubWFwKGE9PmVbYV0pfWZ1bmN0aW9uIGZDKGUsdCxyLGEpe2Zvcig7cjxhOyl7aWYoZVtyXSE9PXRbcl0pcmV0dXJuITE7cisrfXJldHVybiEwfWZ1bmN0aW9uIGdfKGUpe3JldHVybiBlPT09dm9pZCAwfHxlLmxlbmd0aD09PTA/dm9pZCAwOmVbMF19ZnVuY3Rpb24gZEMoZSl7aWYoZSlmb3IobGV0IHQgb2YgZSlyZXR1cm4gdH1mdW5jdGlvbiBvZyhlKXtyZXR1cm4gTi5hc3NlcnQoZS5sZW5ndGghPT0wKSxlWzBdfWZ1bmN0aW9uIG1DKGUpe2ZvcihsZXQgdCBvZiBlKXJldHVybiB0O04uZmFpbChcIml0ZXJhdG9yIGlzIGVtcHR5XCIpfWZ1bmN0aW9uIHdpKGUpe3JldHVybiBlPT09dm9pZCAwfHxlLmxlbmd0aD09PTA/dm9pZCAwOmVbZS5sZW5ndGgtMV19ZnVuY3Rpb24ga2EoZSl7cmV0dXJuIE4uYXNzZXJ0KGUubGVuZ3RoIT09MCksZVtlLmxlbmd0aC0xXX1mdW5jdGlvbiBMZChlKXtyZXR1cm4gZSYmZS5sZW5ndGg9PT0xP2VbMF06dm9pZCAwfWZ1bmN0aW9uIGhDKGUpe3JldHVybiBOLmNoZWNrRGVmaW5lZChMZChlKSl9ZnVuY3Rpb24geUMoZSl7cmV0dXJuIGUmJmUubGVuZ3RoPT09MT9lWzBdOmV9ZnVuY3Rpb24gZ0MoZSx0LHIpe2xldCBhPWUuc2xpY2UoMCk7cmV0dXJuIGFbdF09cixhfWZ1bmN0aW9uIE1sKGUsdCxyLGEsXyl7cmV0dXJuIGt2KGUscih0KSxyLGEsXyl9ZnVuY3Rpb24ga3YoZSx0LHIsYSxfKXtpZighbXQoZSkpcmV0dXJuLTE7bGV0IHA9X3x8MCxkPWUubGVuZ3RoLTE7Zm9yKDtwPD1kOyl7bGV0IGg9cCsoZC1wPj4xKSxsPXIoZVtoXSxoKTtzd2l0Y2goYShsLHQpKXtjYXNlLTE6cD1oKzE7YnJlYWs7Y2FzZSAwOnJldHVybiBoO2Nhc2UgMTpkPWgtMTticmVha319cmV0dXJufnB9ZnVuY3Rpb24gSmQoZSx0LHIsYSxfKXtpZihlJiZlLmxlbmd0aD4wKXtsZXQgcD1lLmxlbmd0aDtpZihwPjApe2xldCBkPWE9PT12b2lkIDB8fGE8MD8wOmEsaD1fPT09dm9pZCAwfHxkK18+cC0xP3AtMTpkK18sbDtmb3IoYXJndW1lbnRzLmxlbmd0aDw9Mj8obD1lW2RdLGQrKyk6bD1yO2Q8PWg7KWw9dChsLGVbZF0sZCksZCsrO3JldHVybiBsfX1yZXR1cm4gcn1mdW5jdGlvbiBRcihlLHQpe3JldHVybiBKbi5jYWxsKGUsdCl9ZnVuY3Rpb24gYkMoZSx0KXtyZXR1cm4gSm4uY2FsbChlLHQpP2VbdF06dm9pZCAwfWZ1bmN0aW9uIHNnKGUpe2xldCB0PVtdO2ZvcihsZXQgciBpbiBlKUpuLmNhbGwoZSxyKSYmdC5wdXNoKHIpO3JldHVybiB0fWZ1bmN0aW9uIHZDKGUpe2xldCB0PVtdO2Rve2xldCByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpO2ZvcihsZXQgYSBvZiByKU9sKHQsYSl9d2hpbGUoZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkpO3JldHVybiB0fWZ1bmN0aW9uIFRDKGUpe2xldCB0PVtdO2ZvcihsZXQgciBpbiBlKUpuLmNhbGwoZSxyKSYmdC5wdXNoKGVbcl0pO3JldHVybiB0fWZ1bmN0aW9uIFNDKGUsdCl7bGV0IHI9bmV3IEFycmF5KGUpO2ZvcihsZXQgYT0wO2E8ZTthKyspclthXT10KGEpO3JldHVybiByfWZ1bmN0aW9uIFJkKGUsdCl7bGV0IHI9W107Zm9yKGxldCBhIG9mIGUpci5wdXNoKHQ/dChhKTphKTtyZXR1cm4gcn1mdW5jdGlvbiB4QyhlLC4uLnQpe2ZvcihsZXQgciBvZiB0KWlmKHIhPT12b2lkIDApZm9yKGxldCBhIGluIHIpUXIocixhKSYmKGVbYV09clthXSk7cmV0dXJuIGV9ZnVuY3Rpb24gRHYoZSx0LHI9X28pe2lmKGU9PT10KXJldHVybiEwO2lmKCFlfHwhdClyZXR1cm4hMTtmb3IobGV0IGEgaW4gZSlpZihKbi5jYWxsKGUsYSkmJighSm4uY2FsbCh0LGEpfHwhcihlW2FdLHRbYV0pKSlyZXR1cm4hMTtmb3IobGV0IGEgaW4gdClpZihKbi5jYWxsKHQsYSkmJiFKbi5jYWxsKGUsYSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gd0MoZSx0LHI9YnQpe2xldCBhPW5ldyBNYXA7Zm9yKGxldCBfIG9mIGUpe2xldCBwPXQoXyk7cCE9PXZvaWQgMCYmYS5zZXQocCxyKF8pKX1yZXR1cm4gYX1mdW5jdGlvbiBDQyhlLHQscj1idCl7bGV0IGE9W107Zm9yKGxldCBfIG9mIGUpYVt0KF8pXT1yKF8pO3JldHVybiBhfWZ1bmN0aW9uIFB2KGUsdCxyPWJ0KXtsZXQgYT1qZCgpO2ZvcihsZXQgXyBvZiBlKWEuYWRkKHQoXykscihfKSk7cmV0dXJuIGF9ZnVuY3Rpb24gRUMoZSx0LHI9YnQpe3JldHVybiBSZChQdihlLHQpLnZhbHVlcygpLHIpfWZ1bmN0aW9uIEFDKGUsdCl7bGV0IHI9e307aWYoZSlmb3IobGV0IGEgb2YgZSl7bGV0IF89YCR7dChhKX1gOyhyW19dPz8ocltfXT1bXSkpLnB1c2goYSl9cmV0dXJuIHJ9ZnVuY3Rpb24ga0MoZSl7bGV0IHQ9e307Zm9yKGxldCByIGluIGUpSm4uY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiBEQyhlLHQpe2xldCByPXt9O2ZvcihsZXQgYSBpbiB0KUpuLmNhbGwodCxhKSYmKHJbYV09dFthXSk7Zm9yKGxldCBhIGluIGUpSm4uY2FsbChlLGEpJiYoclthXT1lW2FdKTtyZXR1cm4gcn1mdW5jdGlvbiBQQyhlLHQpe2ZvcihsZXQgciBpbiB0KUpuLmNhbGwodCxyKSYmKGVbcl09dFtyXSl9ZnVuY3Rpb24gcnIoZSx0KXtyZXR1cm4gdD90LmJpbmQoZSk6dm9pZCAwfWZ1bmN0aW9uIGpkKCl7bGV0IGU9bmV3IE1hcDtyZXR1cm4gZS5hZGQ9SUMsZS5yZW1vdmU9TkMsZX1mdW5jdGlvbiBJQyhlLHQpe2xldCByPXRoaXMuZ2V0KGUpO3JldHVybiByP3IucHVzaCh0KTp0aGlzLnNldChlLHI9W3RdKSxyfWZ1bmN0aW9uIE5DKGUsdCl7bGV0IHI9dGhpcy5nZXQoZSk7ciYmKGp2KHIsdCksci5sZW5ndGh8fHRoaXMuZGVsZXRlKGUpKX1mdW5jdGlvbiBPQyhlKXtsZXQgdD0oZT09bnVsbD92b2lkIDA6ZS5zbGljZSgpKXx8W10scj0wO2Z1bmN0aW9uIGEoKXtyZXR1cm4gcj09PXQubGVuZ3RofWZ1bmN0aW9uIF8oLi4uZCl7dC5wdXNoKC4uLmQpfWZ1bmN0aW9uIHAoKXtpZihhKCkpdGhyb3cgbmV3IEVycm9yKFwiUXVldWUgaXMgZW1wdHlcIik7bGV0IGQ9dFtyXTtpZih0W3JdPXZvaWQgMCxyKysscj4xMDAmJnI+dC5sZW5ndGg+PjEpe2xldCBoPXQubGVuZ3RoLXI7dC5jb3B5V2l0aGluKDAsciksdC5sZW5ndGg9aCxyPTB9cmV0dXJuIGR9cmV0dXJue2VucXVldWU6XyxkZXF1ZXVlOnAsaXNFbXB0eTphfX1mdW5jdGlvbiBNQyhlLHQpe2xldCByPW5ldyBNYXAsYT0wO2Z1bmN0aW9uKl8oKXtmb3IobGV0IGQgb2Ygci52YWx1ZXMoKSl6dChkKT95aWVsZCpkOnlpZWxkIGR9bGV0IHA9e2hhcyhkKXtsZXQgaD1lKGQpO2lmKCFyLmhhcyhoKSlyZXR1cm4hMTtsZXQgbD1yLmdldChoKTtpZighenQobCkpcmV0dXJuIHQobCxkKTtmb3IobGV0IHYgb2YgbClpZih0KHYsZCkpcmV0dXJuITA7cmV0dXJuITF9LGFkZChkKXtsZXQgaD1lKGQpO2lmKHIuaGFzKGgpKXtsZXQgbD1yLmdldChoKTtpZih6dChsKSllcyhsLGQsdCl8fChsLnB1c2goZCksYSsrKTtlbHNle2xldCB2PWw7dCh2LGQpfHwoci5zZXQoaCxbdixkXSksYSsrKX19ZWxzZSByLnNldChoLGQpLGErKztyZXR1cm4gdGhpc30sZGVsZXRlKGQpe2xldCBoPWUoZCk7aWYoIXIuaGFzKGgpKXJldHVybiExO2xldCBsPXIuZ2V0KGgpO2lmKHp0KGwpKXtmb3IobGV0IHY9MDt2PGwubGVuZ3RoO3YrKylpZih0KGxbdl0sZCkpcmV0dXJuIGwubGVuZ3RoPT09MT9yLmRlbGV0ZShoKTpsLmxlbmd0aD09PTI/ci5zZXQoaCxsWzEtdl0pOmNnKGwsdiksYS0tLCEwfWVsc2UgaWYodChsLGQpKXJldHVybiByLmRlbGV0ZShoKSxhLS0sITA7cmV0dXJuITF9LGNsZWFyKCl7ci5jbGVhcigpLGE9MH0sZ2V0IHNpemUoKXtyZXR1cm4gYX0sZm9yRWFjaChkKXtmb3IobGV0IGggb2YgUmQoci52YWx1ZXMoKSkpaWYoenQoaCkpZm9yKGxldCBsIG9mIGgpZChsLGwscCk7ZWxzZXtsZXQgbD1oO2QobCxsLHApfX0sa2V5cygpe3JldHVybiBfKCl9LHZhbHVlcygpe3JldHVybiBfKCl9LCplbnRyaWVzKCl7Zm9yKGxldCBkIG9mIF8oKSl5aWVsZFtkLGRdfSxbU3ltYm9sLml0ZXJhdG9yXTooKT0+XygpLFtTeW1ib2wudG9TdHJpbmdUYWddOnJbU3ltYm9sLnRvU3RyaW5nVGFnXX07cmV0dXJuIHB9ZnVuY3Rpb24genQoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24gUGYoZSl7cmV0dXJuIHp0KGUpP2U6W2VdfWZ1bmN0aW9uIGJfKGUpe3JldHVybiB0eXBlb2YgZT09XCJzdHJpbmdcIn1mdW5jdGlvbiBMQyhlKXtyZXR1cm4gdHlwZW9mIGU9PVwibnVtYmVyXCJ9ZnVuY3Rpb24gT24oZSx0KXtyZXR1cm4gZSE9PXZvaWQgMCYmdChlKT9lOnZvaWQgMH1mdW5jdGlvbiBnaShlLHQpe3JldHVybiBlIT09dm9pZCAwJiZ0KGUpP2U6Ti5mYWlsKGBJbnZhbGlkIGNhc3QuIFRoZSBzdXBwbGllZCB2YWx1ZSAke2V9IGRpZCBub3QgcGFzcyB0aGUgdGVzdCAnJHtOLmdldEZ1bmN0aW9uTmFtZSh0KX0nLmApfWZ1bmN0aW9uIFJuKGUpe31mdW5jdGlvbiBYZigpe3JldHVybiExfWZ1bmN0aW9uIEl2KCl7cmV0dXJuITB9ZnVuY3Rpb24gSkMoKXt9ZnVuY3Rpb24gYnQoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gTnYoZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBPdihlKXtyZXR1cm4gaXkudGVzdChlKT9lLnJlcGxhY2UoaXksTnYpOmV9ZnVuY3Rpb24gUkMoKXt0aHJvdyBuZXcgRXJyb3IoXCJOb3QgaW1wbGVtZW50ZWRcIil9ZnVuY3Rpb24gcnkoZSl7bGV0IHQ7cmV0dXJuKCk9PihlJiYodD1lKCksZT12b2lkIDApLHQpfWZ1bmN0aW9uIE5uKGUpe2xldCB0PW5ldyBNYXA7cmV0dXJuIHI9PntsZXQgYT1gJHt0eXBlb2Ygcn06JHtyfWAsXz10LmdldChhKTtyZXR1cm4gXz09PXZvaWQgMCYmIXQuaGFzKGEpJiYoXz1lKHIpLHQuc2V0KGEsXykpLF99fWZ1bmN0aW9uIGpDKGUpe2xldCB0PW5ldyBXZWFrTWFwO3JldHVybiByPT57bGV0IGE9dC5nZXQocik7cmV0dXJuIGE9PT12b2lkIDAmJiF0LmhhcyhyKSYmKGE9ZShyKSx0LnNldChyLGEpKSxhfX1mdW5jdGlvbiBGQyhlLHQpe3JldHVybiguLi5yKT0+e2xldCBhPXQuZ2V0KHIpO3JldHVybiBhPT09dm9pZCAwJiYhdC5oYXMocikmJihhPWUoLi4uciksdC5zZXQocixhKSksYX19ZnVuY3Rpb24gQkMoZSx0LHIsYSxfKXtpZihfKXtsZXQgcD1bXTtmb3IobGV0IGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKXBbZF09YXJndW1lbnRzW2RdO3JldHVybiBkPT5KZChwLChoLGwpPT5sKGgpLGQpfWVsc2UgcmV0dXJuIGE/cD0+YShyKHQoZShwKSkpKTpyP3A9PnIodChlKHApKSk6dD9wPT50KGUocCkpOmU/cD0+ZShwKTpwPT5wfWZ1bmN0aW9uIF9vKGUsdCl7cmV0dXJuIGU9PT10fWZ1bmN0aW9uIHNfKGUsdCl7cmV0dXJuIGU9PT10fHxlIT09dm9pZCAwJiZ0IT09dm9pZCAwJiZlLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gTGwoZSx0KXtyZXR1cm4gX28oZSx0KX1mdW5jdGlvbiBNdihlLHQpe3JldHVybiBlPT09dD8wOmU9PT12b2lkIDA/LTE6dD09PXZvaWQgMD8xOmU8dD8tMToxfWZ1bmN0aW9uIGtyKGUsdCl7cmV0dXJuIE12KGUsdCl9ZnVuY3Rpb24gVUMoZSx0KXtyZXR1cm4ga3IoZT09bnVsbD92b2lkIDA6ZS5zdGFydCx0PT1udWxsP3ZvaWQgMDp0LnN0YXJ0KXx8a3IoZT09bnVsbD92b2lkIDA6ZS5sZW5ndGgsdD09bnVsbD92b2lkIDA6dC5sZW5ndGgpfWZ1bmN0aW9uIHFDKGUsdCl7cmV0dXJuIEpkKGUsKHIsYSk9PnQocixhKT09PS0xP3I6YSl9ZnVuY3Rpb24gRmQoZSx0KXtyZXR1cm4gZT09PXQ/MDplPT09dm9pZCAwPy0xOnQ9PT12b2lkIDA/MTooZT1lLnRvVXBwZXJDYXNlKCksdD10LnRvVXBwZXJDYXNlKCksZTx0Py0xOmU+dD8xOjApfWZ1bmN0aW9uIHpDKGUsdCl7cmV0dXJuIGU9PT10PzA6ZT09PXZvaWQgMD8tMTp0PT09dm9pZCAwPzE6KGU9ZS50b0xvd2VyQ2FzZSgpLHQ9dC50b0xvd2VyQ2FzZSgpLGU8dD8tMTplPnQ/MTowKX1mdW5jdGlvbiBDaShlLHQpe3JldHVybiBNdihlLHQpfWZ1bmN0aW9uIF9nKGUpe3JldHVybiBlP0ZkOkNpfWZ1bmN0aW9uIFdDKCl7cmV0dXJuIFFmfWZ1bmN0aW9uIEx2KGUpe1FmIT09ZSYmKFFmPWUsb3k9dm9pZCAwKX1mdW5jdGlvbiBWQyhlLHQpe3JldHVybihveXx8KG95PVZ2KFFmKSkpKGUsdCl9ZnVuY3Rpb24gSEMoZSx0LHIsYSl7cmV0dXJuIGU9PT10PzA6ZT09PXZvaWQgMD8tMTp0PT09dm9pZCAwPzE6YShlW3JdLHRbcl0pfWZ1bmN0aW9uIEdDKGUsdCl7cmV0dXJuIGtyKGU/MTowLHQ/MTowKX1mdW5jdGlvbiBKdihlLHQscil7bGV0IGE9TWF0aC5tYXgoMixNYXRoLmZsb29yKGUubGVuZ3RoKi4zNCkpLF89TWF0aC5mbG9vcihlLmxlbmd0aCouNCkrMSxwO2ZvcihsZXQgZCBvZiB0KXtsZXQgaD1yKGQpO2lmKGghPT12b2lkIDAmJk1hdGguYWJzKGgubGVuZ3RoLWUubGVuZ3RoKTw9YSl7aWYoaD09PWV8fGgubGVuZ3RoPDMmJmgudG9Mb3dlckNhc2UoKSE9PWUudG9Mb3dlckNhc2UoKSljb250aW51ZTtsZXQgbD1YQyhlLGgsXy0uMSk7aWYobD09PXZvaWQgMCljb250aW51ZTtOLmFzc2VydChsPF8pLF89bCxwPWR9fXJldHVybiBwfWZ1bmN0aW9uIFhDKGUsdCxyKXtsZXQgYT1uZXcgQXJyYXkodC5sZW5ndGgrMSksXz1uZXcgQXJyYXkodC5sZW5ndGgrMSkscD1yKy4wMTtmb3IobGV0IGg9MDtoPD10Lmxlbmd0aDtoKyspYVtoXT1oO2ZvcihsZXQgaD0xO2g8PWUubGVuZ3RoO2grKyl7bGV0IGw9ZS5jaGFyQ29kZUF0KGgtMSksdj1NYXRoLmNlaWwoaD5yP2gtcjoxKSx5PU1hdGguZmxvb3IodC5sZW5ndGg+citoP3IraDp0Lmxlbmd0aCk7X1swXT1oO2xldCBDPWg7Zm9yKGxldCBrPTE7azx2O2srKylfW2tdPXA7Zm9yKGxldCBrPXY7azw9eTtrKyspe2xldCBMPWVbaC0xXS50b0xvd2VyQ2FzZSgpPT09dFtrLTFdLnRvTG93ZXJDYXNlKCk/YVtrLTFdKy4xOmFbay0xXSsyLEc9bD09PXQuY2hhckNvZGVBdChrLTEpP2Fbay0xXTpNYXRoLm1pbihhW2tdKzEsX1trLTFdKzEsTCk7X1trXT1HLEM9TWF0aC5taW4oQyxHKX1mb3IobGV0IGs9eSsxO2s8PXQubGVuZ3RoO2srKylfW2tdPXA7aWYoQz5yKXJldHVybjtsZXQgUz1hO2E9XyxfPVN9bGV0IGQ9YVt0Lmxlbmd0aF07cmV0dXJuIGQ+cj92b2lkIDA6ZH1mdW5jdGlvbiB0cyhlLHQpe2xldCByPWUubGVuZ3RoLXQubGVuZ3RoO3JldHVybiByPj0wJiZlLmluZGV4T2YodCxyKT09PXJ9ZnVuY3Rpb24gJEMoZSx0KXtyZXR1cm4gdHMoZSx0KT9lLnNsaWNlKDAsZS5sZW5ndGgtdC5sZW5ndGgpOmV9ZnVuY3Rpb24gUUMoZSx0KXtyZXR1cm4gdHMoZSx0KT9lLnNsaWNlKDAsZS5sZW5ndGgtdC5sZW5ndGgpOnZvaWQgMH1mdW5jdGlvbiBlbyhlLHQpe3JldHVybiBlLmluZGV4T2YodCkhPT0tMX1mdW5jdGlvbiBZQyhlKXtsZXQgdD1lLmxlbmd0aDtmb3IobGV0IHI9dC0xO3I+MDtyLS0pe2xldCBhPWUuY2hhckNvZGVBdChyKTtpZihhPj00OCYmYTw9NTcpZG8tLXIsYT1lLmNoYXJDb2RlQXQocik7d2hpbGUocj4wJiZhPj00OCYmYTw9NTcpO2Vsc2UgaWYocj40JiYoYT09PTExMHx8YT09PTc4KSl7aWYoLS1yLGE9ZS5jaGFyQ29kZUF0KHIpLGEhPT0xMDUmJmEhPT03M3x8KC0tcixhPWUuY2hhckNvZGVBdChyKSxhIT09MTA5JiZhIT09NzcpKWJyZWFrOy0tcixhPWUuY2hhckNvZGVBdChyKX1lbHNlIGJyZWFrO2lmKGEhPT00NSYmYSE9PTQ2KWJyZWFrO3Q9cn1yZXR1cm4gdD09PWUubGVuZ3RoP2U6ZS5zbGljZSgwLHQpfWZ1bmN0aW9uIEtDKGUsdCl7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXT09PXQpcmV0dXJuIFJ2KGUsciksITA7cmV0dXJuITF9ZnVuY3Rpb24gUnYoZSx0KXtmb3IobGV0IHI9dDtyPGUubGVuZ3RoLTE7cisrKWVbcl09ZVtyKzFdO2UucG9wKCl9ZnVuY3Rpb24gY2coZSx0KXtlW3RdPWVbZS5sZW5ndGgtMV0sZS5wb3AoKX1mdW5jdGlvbiBqdihlLHQpe3JldHVybiBaQyhlLHI9PnI9PT10KX1mdW5jdGlvbiBaQyhlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuIGNnKGUsciksITA7cmV0dXJuITF9ZnVuY3Rpb24gQmQoZSl7cmV0dXJuIGU/YnQ6T3Z9ZnVuY3Rpb24gZUUoe3ByZWZpeDplLHN1ZmZpeDp0fSl7cmV0dXJuYCR7ZX0qJHt0fWB9ZnVuY3Rpb24gdEUoZSx0KXtyZXR1cm4gTi5hc3NlcnQobGcoZSx0KSksdC5zdWJzdHJpbmcoZS5wcmVmaXgubGVuZ3RoLHQubGVuZ3RoLWUuc3VmZml4Lmxlbmd0aCl9ZnVuY3Rpb24gRnYoZSx0LHIpe2xldCBhLF89LTE7Zm9yKGxldCBwIG9mIGUpe2xldCBkPXQocCk7bGcoZCxyKSYmZC5wcmVmaXgubGVuZ3RoPl8mJihfPWQucHJlZml4Lmxlbmd0aCxhPXApfXJldHVybiBhfWZ1bmN0aW9uIEZyKGUsdCl7cmV0dXJuIGUubGFzdEluZGV4T2YodCwwKT09PTB9ZnVuY3Rpb24gckUoZSx0KXtyZXR1cm4gRnIoZSx0KT9lLnN1YnN0cih0Lmxlbmd0aCk6ZX1mdW5jdGlvbiBCdihlLHQscj1idCl7cmV0dXJuIEZyKHIoZSkscih0KSk/ZS5zdWJzdHJpbmcodC5sZW5ndGgpOnZvaWQgMH1mdW5jdGlvbiBsZyh7cHJlZml4OmUsc3VmZml4OnR9LHIpe3JldHVybiByLmxlbmd0aD49ZS5sZW5ndGgrdC5sZW5ndGgmJkZyKHIsZSkmJnRzKHIsdCl9ZnVuY3Rpb24gbkUoZSx0KXtyZXR1cm4gcj0+ZShyKSYmdChyKX1mdW5jdGlvbiB1ZyguLi5lKXtyZXR1cm4oLi4udCk9PntsZXQgcjtmb3IobGV0IGEgb2YgZSlpZihyPWEoLi4udCkscilyZXR1cm4gcjtyZXR1cm4gcn19ZnVuY3Rpb24gaUUoZSl7cmV0dXJuKC4uLnQpPT4hZSguLi50KX1mdW5jdGlvbiBhRShlKXt9ZnVuY3Rpb24gJGYoZSl7cmV0dXJuIGU9PT12b2lkIDA/dm9pZCAwOltlXX1mdW5jdGlvbiBvRShlLHQscixhLF8scCl7cD1wfHxSbjtsZXQgZD0wLGg9MCxsPWUubGVuZ3RoLHY9dC5sZW5ndGgseT0hMTtmb3IoO2Q8bCYmaDx2Oyl7bGV0IEM9ZVtkXSxTPXRbaF0saz1yKEMsUyk7az09PS0xPyhhKEMpLGQrKyx5PSEwKTprPT09MT8oXyhTKSxoKysseT0hMCk6KHAoUyxDKSxkKyssaCsrKX1mb3IoO2Q8bDspYShlW2QrK10pLHk9ITA7Zm9yKDtoPHY7KV8odFtoKytdKSx5PSEwO3JldHVybiB5fWZ1bmN0aW9uIHNFKGUpe2xldCB0PVtdO3JldHVybiBVdihlLHQsdm9pZCAwLDApLHR9ZnVuY3Rpb24gVXYoZSx0LHIsYSl7Zm9yKGxldCBfIG9mIGVbYV0pe2xldCBwO3I/KHA9ci5zbGljZSgpLHAucHVzaChfKSk6cD1bX10sYT09PWUubGVuZ3RoLTE/dC5wdXNoKHApOlV2KGUsdCxwLGErMSl9fWZ1bmN0aW9uIHF2KGUsdCxyPVwiIFwiKXtyZXR1cm4gdDw9ZS5sZW5ndGg/ZTpyLnJlcGVhdCh0LWUubGVuZ3RoKStlfWZ1bmN0aW9uIF9FKGUsdCxyPVwiIFwiKXtyZXR1cm4gdDw9ZS5sZW5ndGg/ZTplK3IucmVwZWF0KHQtZS5sZW5ndGgpfWZ1bmN0aW9uIGNFKGUsdCl7aWYoZSl7bGV0IHI9ZS5sZW5ndGgsYT0wO2Zvcig7YTxyJiZ0KGVbYV0pOylhKys7cmV0dXJuIGUuc2xpY2UoMCxhKX19ZnVuY3Rpb24gbEUoZSx0KXtpZihlKXtsZXQgcj1lLmxlbmd0aCxhPTA7Zm9yKDthPHImJnQoZVthXSk7KWErKztyZXR1cm4gZS5zbGljZShhKX19ZnVuY3Rpb24gdUUoZSl7bGV0IHQ9ZS5sZW5ndGgtMTtmb3IoO3Q+PTAmJlZpKGUuY2hhckNvZGVBdCh0KSk7KXQtLTtyZXR1cm4gZS5zbGljZSgwLHQrMSl9ZnVuY3Rpb24gcEUoKXtyZXR1cm4hMX12YXIgJGUscGcsenYsbnksV3YsSm4saXksYXksVnYsb3ksUWYsVWQsbl8sZ2wsZkU9VnQoe1wic3JjL2NvbXBpbGVyL2NvcmUudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksJGU9W10scGc9bmV3IE1hcCx6dj1uZXcgU2V0LG55PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkNhc2VTZW5zaXRpdmU9MV09XCJDYXNlU2Vuc2l0aXZlXCIsZVtlLkNhc2VJbnNlbnNpdGl2ZT0yXT1cIkNhc2VJbnNlbnNpdGl2ZVwiLGVbZS5Cb3RoPTNdPVwiQm90aFwiLGUpKShueXx8e30pLFd2PUFycmF5LnByb3RvdHlwZS5hdD8oZSx0KT0+ZT09bnVsbD92b2lkIDA6ZS5hdCh0KTooZSx0KT0+e2lmKGUmJih0PXR5KGUsdCksdDxlLmxlbmd0aCkpcmV0dXJuIGVbdF19LEpuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksaXk9L1teXFx1MDEzMFxcdTAxMzFcXHUwMERGYS16MC05XFxcXC86XFwtXy4gXSsvZyxheT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5Ob3JtYWw9MV09XCJOb3JtYWxcIixlW2UuQWdncmVzc2l2ZT0yXT1cIkFnZ3Jlc3NpdmVcIixlW2UuVmVyeUFnZ3Jlc3NpdmU9M109XCJWZXJ5QWdncmVzc2l2ZVwiLGUpKShheXx8e30pLFZ2PSgoKT0+e2xldCBlLHQscj1oKCk7cmV0dXJuIGw7ZnVuY3Rpb24gYSh2LHksQyl7aWYodj09PXkpcmV0dXJuIDA7aWYodj09PXZvaWQgMClyZXR1cm4tMTtpZih5PT09dm9pZCAwKXJldHVybiAxO2xldCBTPUModix5KTtyZXR1cm4gUzwwPy0xOlM+MD8xOjB9ZnVuY3Rpb24gXyh2KXtsZXQgeT1uZXcgSW50bC5Db2xsYXRvcih2LHt1c2FnZTpcInNvcnRcIixzZW5zaXRpdml0eTpcInZhcmlhbnRcIn0pLmNvbXBhcmU7cmV0dXJuKEMsUyk9PmEoQyxTLHkpfWZ1bmN0aW9uIHAodil7aWYodiE9PXZvaWQgMClyZXR1cm4gZCgpO3JldHVybihDLFMpPT5hKEMsUyx5KTtmdW5jdGlvbiB5KEMsUyl7cmV0dXJuIEMubG9jYWxlQ29tcGFyZShTKX19ZnVuY3Rpb24gZCgpe3JldHVybihDLFMpPT5hKEMsUyx2KTtmdW5jdGlvbiB2KEMsUyl7cmV0dXJuIHkoQy50b1VwcGVyQ2FzZSgpLFMudG9VcHBlckNhc2UoKSl8fHkoQyxTKX1mdW5jdGlvbiB5KEMsUyl7cmV0dXJuIEM8Uz8tMTpDPlM/MTowfX1mdW5jdGlvbiBoKCl7cmV0dXJuIHR5cGVvZiBJbnRsPT1cIm9iamVjdFwiJiZ0eXBlb2YgSW50bC5Db2xsYXRvcj09XCJmdW5jdGlvblwiP186dHlwZW9mIFN0cmluZy5wcm90b3R5cGUubG9jYWxlQ29tcGFyZT09XCJmdW5jdGlvblwiJiZ0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS50b0xvY2FsZVVwcGVyQ2FzZT09XCJmdW5jdGlvblwiJiZcImFcIi5sb2NhbGVDb21wYXJlKFwiQlwiKTwwP3A6ZH1mdW5jdGlvbiBsKHYpe3JldHVybiB2PT09dm9pZCAwP2V8fChlPXIodikpOnY9PT1cImVuLVVTXCI/dHx8KHQ9cih2KSk6cih2KX19KSgpLFVkPVN0cmluZy5wcm90b3R5cGUudHJpbT9lPT5lLnRyaW0oKTplPT5uXyhnbChlKSksbl89U3RyaW5nLnByb3RvdHlwZS50cmltRW5kP2U9PmUudHJpbUVuZCgpOnVFLGdsPVN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0P2U9PmUudHJpbVN0YXJ0KCk6ZT0+ZS5yZXBsYWNlKC9eXFxzKy9nLFwiXCIpfX0pLHN5LE4sSHY9VnQoe1wic3JjL2NvbXBpbGVyL2RlYnVnLnRzXCIoKXtcInVzZSBzdHJpY3RcIjtEcigpLERyKCksc3k9KGU9PihlW2UuT2ZmPTBdPVwiT2ZmXCIsZVtlLkVycm9yPTFdPVwiRXJyb3JcIixlW2UuV2FybmluZz0yXT1cIldhcm5pbmdcIixlW2UuSW5mbz0zXT1cIkluZm9cIixlW2UuVmVyYm9zZT00XT1cIlZlcmJvc2VcIixlKSkoc3l8fHt9KSwoZT0+e2xldCB0PTA7ZS5jdXJyZW50TG9nTGV2ZWw9MixlLmlzRGVidWdnaW5nPSExO2Z1bmN0aW9uIHIocSl7cmV0dXJuIGUuY3VycmVudExvZ0xldmVsPD1xfWUuc2hvdWxkTG9nPXI7ZnVuY3Rpb24gYShxLG9lKXtlLmxvZ2dpbmdIb3N0JiZyKHEpJiZlLmxvZ2dpbmdIb3N0LmxvZyhxLG9lKX1mdW5jdGlvbiBfKHEpe2EoMyxxKX1lLmxvZz1fLChxPT57ZnVuY3Rpb24gb2Uoeil7YSgxLHopfXEuZXJyb3I9b2U7ZnVuY3Rpb24gZ2Uoeil7YSgyLHopfXEud2Fybj1nZTtmdW5jdGlvbiBTZSh6KXthKDMseil9cS5sb2c9U2U7ZnVuY3Rpb24gbnQoeil7YSg0LHopfXEudHJhY2U9bnR9KShfPWUubG9nfHwoZS5sb2c9e30pKTtsZXQgcD17fTtmdW5jdGlvbiBkKCl7cmV0dXJuIHR9ZS5nZXRBc3NlcnRpb25MZXZlbD1kO2Z1bmN0aW9uIGgocSl7bGV0IG9lPXQ7aWYodD1xLHE+b2UpZm9yKGxldCBnZSBvZiBzZyhwKSl7bGV0IFNlPXBbZ2VdO1NlIT09dm9pZCAwJiZlW2dlXSE9PVNlLmFzc2VydGlvbiYmcT49U2UubGV2ZWwmJihlW2dlXT1TZSxwW2dlXT12b2lkIDApfX1lLnNldEFzc2VydGlvbkxldmVsPWg7ZnVuY3Rpb24gbChxKXtyZXR1cm4gdD49cX1lLnNob3VsZEFzc2VydD1sO2Z1bmN0aW9uIHYocSxvZSl7cmV0dXJuIGwocSk/ITA6KHBbb2VdPXtsZXZlbDpxLGFzc2VydGlvbjplW29lXX0sZVtvZV09Um4sITEpfWZ1bmN0aW9uIHkocSxvZSl7ZGVidWdnZXI7bGV0IGdlPW5ldyBFcnJvcihxP2BEZWJ1ZyBGYWlsdXJlLiAke3F9YDpcIkRlYnVnIEZhaWx1cmUuXCIpO3Rocm93IEVycm9yLmNhcHR1cmVTdGFja1RyYWNlJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShnZSxvZXx8eSksZ2V9ZS5mYWlsPXk7ZnVuY3Rpb24gQyhxLG9lLGdlKXtyZXR1cm4geShgJHtvZXx8XCJVbmV4cGVjdGVkIG5vZGUuXCJ9XFxyXG5Ob2RlICR7WHQocS5raW5kKX0gd2FzIHVuZXhwZWN0ZWQuYCxnZXx8Qyl9ZS5mYWlsQmFkU3ludGF4S2luZD1DO2Z1bmN0aW9uIFMocSxvZSxnZSxTZSl7cXx8KG9lPW9lP2BGYWxzZSBleHByZXNzaW9uOiAke29lfWA6XCJGYWxzZSBleHByZXNzaW9uLlwiLGdlJiYob2UrPWBcXHJcblZlcmJvc2UgRGVidWcgSW5mb3JtYXRpb246IGArKHR5cGVvZiBnZT09XCJzdHJpbmdcIj9nZTpnZSgpKSkseShvZSxTZXx8UykpfWUuYXNzZXJ0PVM7ZnVuY3Rpb24gayhxLG9lLGdlLFNlLG50KXtpZihxIT09b2Upe2xldCB6PWdlP1NlP2Ake2dlfSAke1NlfWA6Z2U6XCJcIjt5KGBFeHBlY3RlZCAke3F9ID09PSAke29lfS4gJHt6fWAsbnR8fGspfX1lLmFzc2VydEVxdWFsPWs7ZnVuY3Rpb24gTChxLG9lLGdlLFNlKXtxPj1vZSYmeShgRXhwZWN0ZWQgJHtxfSA8ICR7b2V9LiAke2dlfHxcIlwifWAsU2V8fEwpfWUuYXNzZXJ0TGVzc1RoYW49TDtmdW5jdGlvbiBHKHEsb2UsZ2Upe3E+b2UmJnkoYEV4cGVjdGVkICR7cX0gPD0gJHtvZX1gLGdlfHxHKX1lLmFzc2VydExlc3NUaGFuT3JFcXVhbD1HO2Z1bmN0aW9uIEsocSxvZSxnZSl7cTxvZSYmeShgRXhwZWN0ZWQgJHtxfSA+PSAke29lfWAsZ2V8fEspfWUuYXNzZXJ0R3JlYXRlclRoYW5PckVxdWFsPUs7ZnVuY3Rpb24gdWUocSxvZSxnZSl7cT09bnVsbCYmeShvZSxnZXx8dWUpfWUuYXNzZXJ0SXNEZWZpbmVkPXVlO2Z1bmN0aW9uIFkocSxvZSxnZSl7cmV0dXJuIHVlKHEsb2UsZ2V8fFkpLHF9ZS5jaGVja0RlZmluZWQ9WTtmdW5jdGlvbiBCKHEsb2UsZ2Upe2ZvcihsZXQgU2Ugb2YgcSl1ZShTZSxvZSxnZXx8Qil9ZS5hc3NlcnRFYWNoSXNEZWZpbmVkPUI7ZnVuY3Rpb24gYWUocSxvZSxnZSl7cmV0dXJuIEIocSxvZSxnZXx8YWUpLHF9ZS5jaGVja0VhY2hEZWZpbmVkPWFlO2Z1bmN0aW9uIENlKHEsb2U9XCJJbGxlZ2FsIHZhbHVlOlwiLGdlKXtsZXQgU2U9dHlwZW9mIHE9PVwib2JqZWN0XCImJlFyKHEsXCJraW5kXCIpJiZRcihxLFwicG9zXCIpP1wiU3ludGF4S2luZDogXCIrWHQocS5raW5kKTpKU09OLnN0cmluZ2lmeShxKTtyZXR1cm4geShgJHtvZX0gJHtTZX1gLGdlfHxDZSl9ZS5hc3NlcnROZXZlcj1DZTtmdW5jdGlvbiBaZShxLG9lLGdlLFNlKXt2KDEsXCJhc3NlcnRFYWNoTm9kZVwiKSYmUyhvZT09PXZvaWQgMHx8c28ocSxvZSksZ2V8fFwiVW5leHBlY3RlZCBub2RlLlwiLCgpPT5gTm9kZSBhcnJheSBkaWQgbm90IHBhc3MgdGVzdCAnJHtvcihvZSl9Jy5gLFNlfHxaZSl9ZS5hc3NlcnRFYWNoTm9kZT1aZTtmdW5jdGlvbiBxZShxLG9lLGdlLFNlKXt2KDEsXCJhc3NlcnROb2RlXCIpJiZTKHEhPT12b2lkIDAmJihvZT09PXZvaWQgMHx8b2UocSkpLGdlfHxcIlVuZXhwZWN0ZWQgbm9kZS5cIiwoKT0+YE5vZGUgJHtYdChxPT1udWxsP3ZvaWQgMDpxLmtpbmQpfSBkaWQgbm90IHBhc3MgdGVzdCAnJHtvcihvZSl9Jy5gLFNlfHxxZSl9ZS5hc3NlcnROb2RlPXFlO2Z1bmN0aW9uIHJ0KHEsb2UsZ2UsU2Upe3YoMSxcImFzc2VydE5vdE5vZGVcIikmJlMocT09PXZvaWQgMHx8b2U9PT12b2lkIDB8fCFvZShxKSxnZXx8XCJVbmV4cGVjdGVkIG5vZGUuXCIsKCk9PmBOb2RlICR7WHQocS5raW5kKX0gc2hvdWxkIG5vdCBoYXZlIHBhc3NlZCB0ZXN0ICcke29yKG9lKX0nLmAsU2V8fHJ0KX1lLmFzc2VydE5vdE5vZGU9cnQ7ZnVuY3Rpb24gaXQocSxvZSxnZSxTZSl7digxLFwiYXNzZXJ0T3B0aW9uYWxOb2RlXCIpJiZTKG9lPT09dm9pZCAwfHxxPT09dm9pZCAwfHxvZShxKSxnZXx8XCJVbmV4cGVjdGVkIG5vZGUuXCIsKCk9PmBOb2RlICR7WHQocT09bnVsbD92b2lkIDA6cS5raW5kKX0gZGlkIG5vdCBwYXNzIHRlc3QgJyR7b3Iob2UpfScuYCxTZXx8aXQpfWUuYXNzZXJ0T3B0aW9uYWxOb2RlPWl0O2Z1bmN0aW9uIElyKHEsb2UsZ2UsU2Upe3YoMSxcImFzc2VydE9wdGlvbmFsVG9rZW5cIikmJlMob2U9PT12b2lkIDB8fHE9PT12b2lkIDB8fHEua2luZD09PW9lLGdlfHxcIlVuZXhwZWN0ZWQgbm9kZS5cIiwoKT0+YE5vZGUgJHtYdChxPT1udWxsP3ZvaWQgMDpxLmtpbmQpfSB3YXMgbm90IGEgJyR7WHQob2UpfScgdG9rZW4uYCxTZXx8SXIpfWUuYXNzZXJ0T3B0aW9uYWxUb2tlbj1JcjtmdW5jdGlvbiBhcihxLG9lLGdlKXt2KDEsXCJhc3NlcnRNaXNzaW5nTm9kZVwiKSYmUyhxPT09dm9pZCAwLG9lfHxcIlVuZXhwZWN0ZWQgbm9kZS5cIiwoKT0+YE5vZGUgJHtYdChxLmtpbmQpfSB3YXMgdW5leHBlY3RlZCcuYCxnZXx8YXIpfWUuYXNzZXJ0TWlzc2luZ05vZGU9YXI7ZnVuY3Rpb24gY2kocSl7fWUudHlwZT1jaTtmdW5jdGlvbiBvcihxKXtpZih0eXBlb2YgcSE9XCJmdW5jdGlvblwiKXJldHVyblwiXCI7aWYoUXIocSxcIm5hbWVcIikpcmV0dXJuIHEubmFtZTt7bGV0IG9lPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHEpLGdlPS9eZnVuY3Rpb25cXHMrKFtcXHckXSspXFxzKlxcKC8uZXhlYyhvZSk7cmV0dXJuIGdlP2dlWzFdOlwiXCJ9fWUuZ2V0RnVuY3Rpb25OYW1lPW9yO2Z1bmN0aW9uIE5yKHEpe3JldHVybmB7IG5hbWU6ICR7Vm8ocS5lc2NhcGVkTmFtZSl9OyBmbGFnczogJHtUcihxLmZsYWdzKX07IGRlY2xhcmF0aW9uczogJHtBYShxLmRlY2xhcmF0aW9ucyxvZT0+WHQob2Uua2luZCkpfSB9YH1lLmZvcm1hdFN5bWJvbD1OcjtmdW5jdGlvbiBHZShxPTAsb2UsZ2Upe2xldCBTZT1VcihvZSk7aWYocT09PTApcmV0dXJuIFNlLmxlbmd0aD4wJiZTZVswXVswXT09PTA/U2VbMF1bMV06XCIwXCI7aWYoZ2Upe2xldCBudD1bXSx6PXE7Zm9yKGxldFtYLGVlXW9mIFNlKXtpZihYPnEpYnJlYWs7WCE9PTAmJlgmcSYmKG50LnB1c2goZWUpLHomPX5YKX1pZih6PT09MClyZXR1cm4gbnQuam9pbihcInxcIil9ZWxzZSBmb3IobGV0W250LHpdb2YgU2UpaWYobnQ9PT1xKXJldHVybiB6O3JldHVybiBxLnRvU3RyaW5nKCl9ZS5mb3JtYXRFbnVtPUdlO2xldCBHdD1uZXcgTWFwO2Z1bmN0aW9uIFVyKHEpe2xldCBvZT1HdC5nZXQocSk7aWYob2UpcmV0dXJuIG9lO2xldCBnZT1bXTtmb3IobGV0IG50IGluIHEpe2xldCB6PXFbbnRdO3R5cGVvZiB6PT1cIm51bWJlclwiJiZnZS5wdXNoKFt6LG50XSl9bGV0IFNlPUF2KGdlLChudCx6KT0+a3IobnRbMF0selswXSkpO3JldHVybiBHdC5zZXQocSxTZSksU2V9ZnVuY3Rpb24gWHQocSl7cmV0dXJuIEdlKHEsZWQsITEpfWUuZm9ybWF0U3ludGF4S2luZD1YdDtmdW5jdGlvbiBUbihxKXtyZXR1cm4gR2UocSxwZCwhMSl9ZS5mb3JtYXRTbmlwcGV0S2luZD1UbjtmdW5jdGlvbiBTbihxKXtyZXR1cm4gR2UocSxsZCwhMSl9ZS5mb3JtYXRTY3JpcHRLaW5kPVNuO2Z1bmN0aW9uIHNyKHEpe3JldHVybiBHZShxLHRkLCEwKX1lLmZvcm1hdE5vZGVGbGFncz1zcjtmdW5jdGlvbiAkdChxKXtyZXR1cm4gR2UocSxyZCwhMCl9ZS5mb3JtYXRNb2RpZmllckZsYWdzPSR0O2Z1bmN0aW9uIFN0KHEpe3JldHVybiBHZShxLHVkLCEwKX1lLmZvcm1hdFRyYW5zZm9ybUZsYWdzPVN0O2Z1bmN0aW9uIHhuKHEpe3JldHVybiBHZShxLGZkLCEwKX1lLmZvcm1hdEVtaXRGbGFncz14bjtmdW5jdGlvbiBUcihxKXtyZXR1cm4gR2UocSxhZCwhMCl9ZS5mb3JtYXRTeW1ib2xGbGFncz1UcjtmdW5jdGlvbiB2dChxKXtyZXR1cm4gR2UocSxvZCwhMCl9ZS5mb3JtYXRUeXBlRmxhZ3M9dnQ7ZnVuY3Rpb24gY3QocSl7cmV0dXJuIEdlKHEsX2QsITApfWUuZm9ybWF0U2lnbmF0dXJlRmxhZ3M9Y3Q7ZnVuY3Rpb24gVXQocSl7cmV0dXJuIEdlKHEsc2QsITApfWUuZm9ybWF0T2JqZWN0RmxhZ3M9VXQ7ZnVuY3Rpb24gZnIocSl7cmV0dXJuIEdlKHEsYmwsITApfWUuZm9ybWF0Rmxvd0ZsYWdzPWZyO2Z1bmN0aW9uIGh0KHEpe3JldHVybiBHZShxLG5kLCEwKX1lLmZvcm1hdFJlbGF0aW9uQ29tcGFyaXNvblJlc3VsdD1odDtmdW5jdGlvbiB3bihxKXtyZXR1cm4gR2UocSxDaGVja01vZGUsITApfWUuZm9ybWF0Q2hlY2tNb2RlPXduO2Z1bmN0aW9uIFR0KHEpe3JldHVybiBHZShxLFNpZ25hdHVyZUNoZWNrTW9kZSwhMCl9ZS5mb3JtYXRTaWduYXR1cmVDaGVja01vZGU9VHQ7ZnVuY3Rpb24gT3IocSl7cmV0dXJuIEdlKHEsVHlwZUZhY3RzLCEwKX1lLmZvcm1hdFR5cGVGYWN0cz1PcjtsZXQgcHQ9ITEsTXI7ZnVuY3Rpb24gYXQocSl7XCJfX2RlYnVnRmxvd0ZsYWdzXCJpbiBxfHxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhxLHtfX3RzRGVidWdnZXJEaXNwbGF5Ont2YWx1ZSgpe2xldCBvZT10aGlzLmZsYWdzJjI/XCJGbG93U3RhcnRcIjp0aGlzLmZsYWdzJjQ/XCJGbG93QnJhbmNoTGFiZWxcIjp0aGlzLmZsYWdzJjg/XCJGbG93TG9vcExhYmVsXCI6dGhpcy5mbGFncyYxNj9cIkZsb3dBc3NpZ25tZW50XCI6dGhpcy5mbGFncyYzMj9cIkZsb3dUcnVlQ29uZGl0aW9uXCI6dGhpcy5mbGFncyY2ND9cIkZsb3dGYWxzZUNvbmRpdGlvblwiOnRoaXMuZmxhZ3MmMTI4P1wiRmxvd1N3aXRjaENsYXVzZVwiOnRoaXMuZmxhZ3MmMjU2P1wiRmxvd0FycmF5TXV0YXRpb25cIjp0aGlzLmZsYWdzJjUxMj9cIkZsb3dDYWxsXCI6dGhpcy5mbGFncyYxMDI0P1wiRmxvd1JlZHVjZUxhYmVsXCI6dGhpcy5mbGFncyYxP1wiRmxvd1VucmVhY2hhYmxlXCI6XCJVbmtub3duRmxvd1wiLGdlPXRoaXMuZmxhZ3MmfigyMDQ4LTEpO3JldHVybmAke29lfSR7Z2U/YCAoJHtmcihnZSl9KWA6XCJcIn1gfX0sX19kZWJ1Z0Zsb3dGbGFnczp7Z2V0KCl7cmV0dXJuIEdlKHRoaXMuZmxhZ3MsYmwsITApfX0sX19kZWJ1Z1RvU3RyaW5nOnt2YWx1ZSgpe3JldHVybiBBZSh0aGlzKX19fSl9ZnVuY3Rpb24gZXIocSl7cHQmJih0eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mPT1cImZ1bmN0aW9uXCI/KE1yfHwoTXI9T2JqZWN0LmNyZWF0ZShPYmplY3QucHJvdG90eXBlKSxhdChNcikpLE9iamVjdC5zZXRQcm90b3R5cGVPZihxLE1yKSk6YXQocSkpfWUuYXR0YWNoRmxvd05vZGVEZWJ1Z0luZm89ZXI7bGV0IFF0O2Z1bmN0aW9uIHRuKHEpe1wiX190c0RlYnVnZ2VyRGlzcGxheVwiaW4gcXx8T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocSx7X190c0RlYnVnZ2VyRGlzcGxheTp7dmFsdWUob2Upe3JldHVybiBvZT1TdHJpbmcob2UpLnJlcGxhY2UoLyg/OixbXFxzXFx3XFxkX10rOlteLF0rKStcXF0kLyxcIl1cIiksYE5vZGVBcnJheSAke29lfWB9fX0pfWZ1bmN0aW9uIEJuKHEpe3B0JiYodHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj09XCJmdW5jdGlvblwiPyhRdHx8KFF0PU9iamVjdC5jcmVhdGUoQXJyYXkucHJvdG90eXBlKSx0bihRdCkpLE9iamVjdC5zZXRQcm90b3R5cGVPZihxLFF0KSk6dG4ocSkpfWUuYXR0YWNoTm9kZUFycmF5RGVidWdJbmZvPUJuO2Z1bmN0aW9uIFVuKCl7aWYocHQpcmV0dXJuO2xldCBxPW5ldyBXZWFrTWFwLG9lPW5ldyBXZWFrTWFwO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHd0LmdldFN5bWJvbENvbnN0cnVjdG9yKCkucHJvdG90eXBlLHtfX3RzRGVidWdnZXJEaXNwbGF5Ont2YWx1ZSgpe2xldCBTZT10aGlzLmZsYWdzJjMzNTU0NDMyP1wiVHJhbnNpZW50U3ltYm9sXCI6XCJTeW1ib2xcIixudD10aGlzLmZsYWdzJi0zMzU1NDQzMztyZXR1cm5gJHtTZX0gJyR7bWQodGhpcyl9JyR7bnQ/YCAoJHtUcihudCl9KWA6XCJcIn1gfX0sX19kZWJ1Z0ZsYWdzOntnZXQoKXtyZXR1cm4gVHIodGhpcy5mbGFncyl9fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHd0LmdldFR5cGVDb25zdHJ1Y3RvcigpLnByb3RvdHlwZSx7X190c0RlYnVnZ2VyRGlzcGxheTp7dmFsdWUoKXtsZXQgU2U9dGhpcy5mbGFncyY5ODMwND9cIk51bGxhYmxlVHlwZVwiOnRoaXMuZmxhZ3MmMzg0P2BMaXRlcmFsVHlwZSAke0pTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpfWA6dGhpcy5mbGFncyYyMDQ4P2BMaXRlcmFsVHlwZSAke3RoaXMudmFsdWUubmVnYXRpdmU/XCItXCI6XCJcIn0ke3RoaXMudmFsdWUuYmFzZTEwVmFsdWV9bmA6dGhpcy5mbGFncyY4MTkyP1wiVW5pcXVlRVNTeW1ib2xUeXBlXCI6dGhpcy5mbGFncyYzMj9cIkVudW1UeXBlXCI6dGhpcy5mbGFncyY2NzM1OTMyNz9gSW50cmluc2ljVHlwZSAke3RoaXMuaW50cmluc2ljTmFtZX1gOnRoaXMuZmxhZ3MmMTA0ODU3Nj9cIlVuaW9uVHlwZVwiOnRoaXMuZmxhZ3MmMjA5NzE1Mj9cIkludGVyc2VjdGlvblR5cGVcIjp0aGlzLmZsYWdzJjQxOTQzMDQ/XCJJbmRleFR5cGVcIjp0aGlzLmZsYWdzJjgzODg2MDg/XCJJbmRleGVkQWNjZXNzVHlwZVwiOnRoaXMuZmxhZ3MmMTY3NzcyMTY/XCJDb25kaXRpb25hbFR5cGVcIjp0aGlzLmZsYWdzJjMzNTU0NDMyP1wiU3Vic3RpdHV0aW9uVHlwZVwiOnRoaXMuZmxhZ3MmMjYyMTQ0P1wiVHlwZVBhcmFtZXRlclwiOnRoaXMuZmxhZ3MmNTI0Mjg4P3RoaXMub2JqZWN0RmxhZ3MmMz9cIkludGVyZmFjZVR5cGVcIjp0aGlzLm9iamVjdEZsYWdzJjQ/XCJUeXBlUmVmZXJlbmNlXCI6dGhpcy5vYmplY3RGbGFncyY4P1wiVHVwbGVUeXBlXCI6dGhpcy5vYmplY3RGbGFncyYxNj9cIkFub255bW91c1R5cGVcIjp0aGlzLm9iamVjdEZsYWdzJjMyP1wiTWFwcGVkVHlwZVwiOnRoaXMub2JqZWN0RmxhZ3MmMTAyND9cIlJldmVyc2VNYXBwZWRUeXBlXCI6dGhpcy5vYmplY3RGbGFncyYyNTY/XCJFdm9sdmluZ0FycmF5VHlwZVwiOlwiT2JqZWN0VHlwZVwiOlwiVHlwZVwiLG50PXRoaXMuZmxhZ3MmNTI0Mjg4P3RoaXMub2JqZWN0RmxhZ3MmLTEzNDQ6MDtyZXR1cm5gJHtTZX0ke3RoaXMuc3ltYm9sP2AgJyR7bWQodGhpcy5zeW1ib2wpfSdgOlwiXCJ9JHtudD9gICgke1V0KG50KX0pYDpcIlwifWB9fSxfX2RlYnVnRmxhZ3M6e2dldCgpe3JldHVybiB2dCh0aGlzLmZsYWdzKX19LF9fZGVidWdPYmplY3RGbGFnczp7Z2V0KCl7cmV0dXJuIHRoaXMuZmxhZ3MmNTI0Mjg4P1V0KHRoaXMub2JqZWN0RmxhZ3MpOlwiXCJ9fSxfX2RlYnVnVHlwZVRvU3RyaW5nOnt2YWx1ZSgpe2xldCBTZT1xLmdldCh0aGlzKTtyZXR1cm4gU2U9PT12b2lkIDAmJihTZT10aGlzLmNoZWNrZXIudHlwZVRvU3RyaW5nKHRoaXMpLHEuc2V0KHRoaXMsU2UpKSxTZX19fSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMod3QuZ2V0U2lnbmF0dXJlQ29uc3RydWN0b3IoKS5wcm90b3R5cGUse19fZGVidWdGbGFnczp7Z2V0KCl7cmV0dXJuIGN0KHRoaXMuZmxhZ3MpfX0sX19kZWJ1Z1NpZ25hdHVyZVRvU3RyaW5nOnt2YWx1ZSgpe3ZhciBTZTtyZXR1cm4oU2U9dGhpcy5jaGVja2VyKT09bnVsbD92b2lkIDA6U2Uuc2lnbmF0dXJlVG9TdHJpbmcodGhpcyl9fX0pO2xldCBnZT1bd3QuZ2V0Tm9kZUNvbnN0cnVjdG9yKCksd3QuZ2V0SWRlbnRpZmllckNvbnN0cnVjdG9yKCksd3QuZ2V0VG9rZW5Db25zdHJ1Y3RvcigpLHd0LmdldFNvdXJjZUZpbGVDb25zdHJ1Y3RvcigpXTtmb3IobGV0IFNlIG9mIGdlKVFyKFNlLnByb3RvdHlwZSxcIl9fZGVidWdLaW5kXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhTZS5wcm90b3R5cGUse19fdHNEZWJ1Z2dlckRpc3BsYXk6e3ZhbHVlKCl7cmV0dXJuYCR7d2EodGhpcyk/XCJHZW5lcmF0ZWRJZGVudGlmaWVyXCI6RWUodGhpcyk/YElkZW50aWZpZXIgJyR7T3QodGhpcyl9J2A6anIodGhpcyk/YFByaXZhdGVJZGVudGlmaWVyICcke090KHRoaXMpfSdgOm1uKHRoaXMpP2BTdHJpbmdMaXRlcmFsICR7SlNPTi5zdHJpbmdpZnkodGhpcy50ZXh0Lmxlbmd0aDwxMD90aGlzLnRleHQ6dGhpcy50ZXh0LnNsaWNlKDEwKStcIi4uLlwiKX1gOmxvKHRoaXMpP2BOdW1lcmljTGl0ZXJhbCAke3RoaXMudGV4dH1gOm82KHRoaXMpP2BCaWdJbnRMaXRlcmFsICR7dGhpcy50ZXh0fW5gOk5vKHRoaXMpP1wiVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uXCI6TWEodGhpcyk/XCJQYXJhbWV0ZXJEZWNsYXJhdGlvblwiOkpfKHRoaXMpP1wiQ29uc3RydWN0b3JEZWNsYXJhdGlvblwiOm1fKHRoaXMpP1wiR2V0QWNjZXNzb3JEZWNsYXJhdGlvblwiOlFvKHRoaXMpP1wiU2V0QWNjZXNzb3JEZWNsYXJhdGlvblwiOmM2KHRoaXMpP1wiQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uXCI6SHgodGhpcyk/XCJDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvblwiOmw2KHRoaXMpP1wiSW5kZXhTaWduYXR1cmVEZWNsYXJhdGlvblwiOkd4KHRoaXMpP1wiVHlwZVByZWRpY2F0ZU5vZGVcIjpSXyh0aGlzKT9cIlR5cGVSZWZlcmVuY2VOb2RlXCI6dHUodGhpcyk/XCJGdW5jdGlvblR5cGVOb2RlXCI6dTYodGhpcyk/XCJDb25zdHJ1Y3RvclR5cGVOb2RlXCI6WHgodGhpcyk/XCJUeXBlUXVlcnlOb2RlXCI6RW0odGhpcyk/XCJUeXBlTGl0ZXJhbE5vZGVcIjokeCh0aGlzKT9cIkFycmF5VHlwZU5vZGVcIjpReCh0aGlzKT9cIlR1cGxlVHlwZU5vZGVcIjpZeCh0aGlzKT9cIk9wdGlvbmFsVHlwZU5vZGVcIjpLeCh0aGlzKT9cIlJlc3RUeXBlTm9kZVwiOlp4KHRoaXMpP1wiVW5pb25UeXBlTm9kZVwiOmU4KHRoaXMpP1wiSW50ZXJzZWN0aW9uVHlwZU5vZGVcIjp0OCh0aGlzKT9cIkNvbmRpdGlvbmFsVHlwZU5vZGVcIjpyOCh0aGlzKT9cIkluZmVyVHlwZU5vZGVcIjpmNih0aGlzKT9cIlBhcmVudGhlc2l6ZWRUeXBlTm9kZVwiOmQ2KHRoaXMpP1wiVGhpc1R5cGVOb2RlXCI6bjgodGhpcyk/XCJUeXBlT3BlcmF0b3JOb2RlXCI6aTgodGhpcyk/XCJJbmRleGVkQWNjZXNzVHlwZU5vZGVcIjphOCh0aGlzKT9cIk1hcHBlZFR5cGVOb2RlXCI6bTYodGhpcyk/XCJMaXRlcmFsVHlwZU5vZGVcIjpwNih0aGlzKT9cIk5hbWVkVHVwbGVNZW1iZXJcIjpydSh0aGlzKT9cIkltcG9ydFR5cGVOb2RlXCI6WHQodGhpcy5raW5kKX0ke3RoaXMuZmxhZ3M/YCAoJHtzcih0aGlzLmZsYWdzKX0pYDpcIlwifWB9fSxfX2RlYnVnS2luZDp7Z2V0KCl7cmV0dXJuIFh0KHRoaXMua2luZCl9fSxfX2RlYnVnTm9kZUZsYWdzOntnZXQoKXtyZXR1cm4gc3IodGhpcy5mbGFncyl9fSxfX2RlYnVnTW9kaWZpZXJGbGFnczp7Z2V0KCl7cmV0dXJuICR0KHVTKHRoaXMpKX19LF9fZGVidWdUcmFuc2Zvcm1GbGFnczp7Z2V0KCl7cmV0dXJuIFN0KHRoaXMudHJhbnNmb3JtRmxhZ3MpfX0sX19kZWJ1Z0lzUGFyc2VUcmVlTm9kZTp7Z2V0KCl7cmV0dXJuIFRsKHRoaXMpfX0sX19kZWJ1Z0VtaXRGbGFnczp7Z2V0KCl7cmV0dXJuIHhuKHRpKHRoaXMpKX19LF9fZGVidWdHZXRUZXh0Ont2YWx1ZShudCl7aWYoVGEodGhpcykpcmV0dXJuXCJcIjtsZXQgej1vZS5nZXQodGhpcyk7aWYoej09PXZvaWQgMCl7bGV0IFg9RmwodGhpcyksZWU9WCYmcmkoWCk7ej1lZT9YbyhlZSxYLG50KTpcIlwiLG9lLnNldCh0aGlzLHopfXJldHVybiB6fX19KTtwdD0hMH1lLmVuYWJsZURlYnVnSW5mbz1VbjtmdW5jdGlvbiBybihxKXtsZXQgb2U9cSY3LGdlPW9lPT09MD9cImluIG91dFwiOm9lPT09Mz9cIltiaXZhcmlhbnRdXCI6b2U9PT0yP1wiaW5cIjpvZT09PTE/XCJvdXRcIjpvZT09PTQ/XCJbaW5kZXBlbmRlbnRdXCI6XCJcIjtyZXR1cm4gcSY4P2dlKz1cIiAodW5tZWFzdXJhYmxlKVwiOnEmMTYmJihnZSs9XCIgKHVucmVsaWFibGUpXCIpLGdlfWUuZm9ybWF0VmFyaWFuY2U9cm47Y2xhc3Mgbm57X19kZWJ1Z1RvU3RyaW5nKCl7dmFyIG9lO3N3aXRjaCh0aGlzLmtpbmQpe2Nhc2UgMzpyZXR1cm4oKG9lPXRoaXMuZGVidWdJbmZvKT09bnVsbD92b2lkIDA6b2UuY2FsbCh0aGlzKSl8fFwiKGZ1bmN0aW9uIG1hcHBlcilcIjtjYXNlIDA6cmV0dXJuYCR7dGhpcy5zb3VyY2UuX19kZWJ1Z1R5cGVUb1N0cmluZygpfSAtPiAke3RoaXMudGFyZ2V0Ll9fZGVidWdUeXBlVG9TdHJpbmcoKX1gO2Nhc2UgMTpyZXR1cm4gZXkodGhpcy5zb3VyY2VzLHRoaXMudGFyZ2V0c3x8QWEodGhpcy5zb3VyY2VzLCgpPT5cImFueVwiKSwoZ2UsU2UpPT5gJHtnZS5fX2RlYnVnVHlwZVRvU3RyaW5nKCl9IC0+ICR7dHlwZW9mIFNlPT1cInN0cmluZ1wiP1NlOlNlLl9fZGVidWdUeXBlVG9TdHJpbmcoKX1gKS5qb2luKFwiLCBcIik7Y2FzZSAyOnJldHVybiBleSh0aGlzLnNvdXJjZXMsdGhpcy50YXJnZXRzLChnZSxTZSk9PmAke2dlLl9fZGVidWdUeXBlVG9TdHJpbmcoKX0gLT4gJHtTZSgpLl9fZGVidWdUeXBlVG9TdHJpbmcoKX1gKS5qb2luKFwiLCBcIik7Y2FzZSA1OmNhc2UgNDpyZXR1cm5gbTE6ICR7dGhpcy5tYXBwZXIxLl9fZGVidWdUb1N0cmluZygpLnNwbGl0KGBcbmApLmpvaW4oYFxuICAgIGApfVxubTI6ICR7dGhpcy5tYXBwZXIyLl9fZGVidWdUb1N0cmluZygpLnNwbGl0KGBcbmApLmpvaW4oYFxuICAgIGApfWA7ZGVmYXVsdDpyZXR1cm4gQ2UodGhpcyl9fX1lLkRlYnVnVHlwZU1hcHBlcj1ubjtmdW5jdGlvbiBEaShxKXtyZXR1cm4gZS5pc0RlYnVnZ2luZz9PYmplY3Quc2V0UHJvdG90eXBlT2YocSxubi5wcm90b3R5cGUpOnF9ZS5hdHRhY2hEZWJ1Z1Byb3RvdHlwZUlmRGVidWc9RGk7ZnVuY3Rpb24gcW4ocSl7cmV0dXJuIGNvbnNvbGUubG9nKEFlKHEpKX1lLnByaW50Q29udHJvbEZsb3dHcmFwaD1xbjtmdW5jdGlvbiBBZShxKXtsZXQgb2U9LTE7ZnVuY3Rpb24gZ2UoeCl7cmV0dXJuIHguaWR8fCh4LmlkPW9lLG9lLS0pLHguaWR9bGV0IFNlOyh4PT57eC5scj1cIlxcdTI1MDBcIix4LnVkPVwiXFx1MjUwMlwiLHguZHI9XCJcXHUyNTZEXCIseC5kbD1cIlxcdTI1NkVcIix4LnVsPVwiXFx1MjU2RlwiLHgudXI9XCJcXHUyNTcwXCIseC51ZHI9XCJcXHUyNTFDXCIseC51ZGw9XCJcXHUyNTI0XCIseC5kbHI9XCJcXHUyNTJDXCIseC51bHI9XCJcXHUyNTM0XCIseC51ZGxyPVwiXFx1MjU2QlwifSkoU2V8fChTZT17fSkpO2xldCBudDsoeD0+e3hbeC5Ob25lPTBdPVwiTm9uZVwiLHhbeC5VcD0xXT1cIlVwXCIseFt4LkRvd249Ml09XCJEb3duXCIseFt4LkxlZnQ9NF09XCJMZWZ0XCIseFt4LlJpZ2h0PThdPVwiUmlnaHRcIix4W3guVXBEb3duPTNdPVwiVXBEb3duXCIseFt4LkxlZnRSaWdodD0xMl09XCJMZWZ0UmlnaHRcIix4W3guVXBMZWZ0PTVdPVwiVXBMZWZ0XCIseFt4LlVwUmlnaHQ9OV09XCJVcFJpZ2h0XCIseFt4LkRvd25MZWZ0PTZdPVwiRG93bkxlZnRcIix4W3guRG93blJpZ2h0PTEwXT1cIkRvd25SaWdodFwiLHhbeC5VcERvd25MZWZ0PTddPVwiVXBEb3duTGVmdFwiLHhbeC5VcERvd25SaWdodD0xMV09XCJVcERvd25SaWdodFwiLHhbeC5VcExlZnRSaWdodD0xM109XCJVcExlZnRSaWdodFwiLHhbeC5Eb3duTGVmdFJpZ2h0PTE0XT1cIkRvd25MZWZ0UmlnaHRcIix4W3guVXBEb3duTGVmdFJpZ2h0PTE1XT1cIlVwRG93bkxlZnRSaWdodFwiLHhbeC5Ob0NoaWxkcmVuPTE2XT1cIk5vQ2hpbGRyZW5cIn0pKG50fHwobnQ9e30pKTtsZXQgej0yMDMyLFg9ODgyLGVlPU9iamVjdC5jcmVhdGUobnVsbCkseGU9W10sa2U9W10sTGU9aWEocSxuZXcgU2V0KTtmb3IobGV0IHggb2YgeGUpeC50ZXh0PW9hKHguZmxvd05vZGUseC5jaXJjdWxhciksRW4oeCk7bGV0IGx0PUlpKExlKSx5dD1hYShsdCk7cmV0dXJuIFZuKExlLDApLE10KCk7ZnVuY3Rpb24ganQoeCl7cmV0dXJuISEoeC5mbGFncyYxMjgpfWZ1bmN0aW9uIHFyKHgpe3JldHVybiEhKHguZmxhZ3MmMTIpJiYhIXguYW50ZWNlZGVudHN9ZnVuY3Rpb24gbmEoeCl7cmV0dXJuISEoeC5mbGFncyZ6KX1mdW5jdGlvbiBDbih4KXtyZXR1cm4hISh4LmZsYWdzJlgpfWZ1bmN0aW9uIHpuKHgpe2xldCBmPVtdO2ZvcihsZXQgJCBvZiB4LmVkZ2VzKSQuc291cmNlPT09eCYmZi5wdXNoKCQudGFyZ2V0KTtyZXR1cm4gZn1mdW5jdGlvbiBQaSh4KXtsZXQgZj1bXTtmb3IobGV0ICQgb2YgeC5lZGdlcykkLnRhcmdldD09PXgmJmYucHVzaCgkLnNvdXJjZSk7cmV0dXJuIGZ9ZnVuY3Rpb24gaWEoeCxmKXtsZXQgJD1nZSh4KSxRPWVlWyRdO2lmKFEmJmYuaGFzKHgpKXJldHVybiBRLmNpcmN1bGFyPSEwLFE9e2lkOi0xLGZsb3dOb2RlOngsZWRnZXM6W10sdGV4dDpcIlwiLGxhbmU6LTEsZW5kTGFuZTotMSxsZXZlbDotMSxjaXJjdWxhcjpcImNpcmN1bGFyaXR5XCJ9LHhlLnB1c2goUSksUTtpZihmLmFkZCh4KSwhUSlpZihlZVskXT1RPXtpZDokLGZsb3dOb2RlOngsZWRnZXM6W10sdGV4dDpcIlwiLGxhbmU6LTEsZW5kTGFuZTotMSxsZXZlbDotMSxjaXJjdWxhcjohMX0seGUucHVzaChRKSxxcih4KSlmb3IobGV0IE8gb2YgeC5hbnRlY2VkZW50cylXbihRLE8sZik7ZWxzZSBuYSh4KSYmV24oUSx4LmFudGVjZWRlbnQsZik7cmV0dXJuIGYuZGVsZXRlKHgpLFF9ZnVuY3Rpb24gV24oeCxmLCQpe2xldCBRPWlhKGYsJCksTz17c291cmNlOngsdGFyZ2V0OlF9O2tlLnB1c2goTykseC5lZGdlcy5wdXNoKE8pLFEuZWRnZXMucHVzaChPKX1mdW5jdGlvbiBFbih4KXtpZih4LmxldmVsIT09LTEpcmV0dXJuIHgubGV2ZWw7bGV0IGY9MDtmb3IobGV0ICQgb2YgUGkoeCkpZj1NYXRoLm1heChmLEVuKCQpKzEpO3JldHVybiB4LmxldmVsPWZ9ZnVuY3Rpb24gSWkoeCl7bGV0IGY9MDtmb3IobGV0ICQgb2Ygem4oeCkpZj1NYXRoLm1heChmLElpKCQpKTtyZXR1cm4gZisxfWZ1bmN0aW9uIGFhKHgpe2xldCBmPWooQXJyYXkoeCksMCk7Zm9yKGxldCAkIG9mIHhlKWZbJC5sZXZlbF09TWF0aC5tYXgoZlskLmxldmVsXSwkLnRleHQubGVuZ3RoKTtyZXR1cm4gZn1mdW5jdGlvbiBWbih4LGYpe2lmKHgubGFuZT09PS0xKXt4LmxhbmU9Zix4LmVuZExhbmU9ZjtsZXQgJD16bih4KTtmb3IobGV0IFE9MDtRPCQubGVuZ3RoO1ErKyl7UT4wJiZmKys7bGV0IE89JFtRXTtWbihPLGYpLE8uZW5kTGFuZT54LmVuZExhbmUmJihmPU8uZW5kTGFuZSl9eC5lbmRMYW5lPWZ9fWZ1bmN0aW9uIFNyKHgpe2lmKHgmMilyZXR1cm5cIlN0YXJ0XCI7aWYoeCY0KXJldHVyblwiQnJhbmNoXCI7aWYoeCY4KXJldHVyblwiTG9vcFwiO2lmKHgmMTYpcmV0dXJuXCJBc3NpZ25tZW50XCI7aWYoeCYzMilyZXR1cm5cIlRydWVcIjtpZih4JjY0KXJldHVyblwiRmFsc2VcIjtpZih4JjEyOClyZXR1cm5cIlN3aXRjaENsYXVzZVwiO2lmKHgmMjU2KXJldHVyblwiQXJyYXlNdXRhdGlvblwiO2lmKHgmNTEyKXJldHVyblwiQ2FsbFwiO2lmKHgmMTAyNClyZXR1cm5cIlJlZHVjZUxhYmVsXCI7aWYoeCYxKXJldHVyblwiVW5yZWFjaGFibGVcIjt0aHJvdyBuZXcgRXJyb3J9ZnVuY3Rpb24gSmUoeCl7bGV0IGY9cmkoeCk7cmV0dXJuIFhvKGYseCwhMSl9ZnVuY3Rpb24gb2EoeCxmKXtsZXQgJD1Tcih4LmZsYWdzKTtpZihmJiYoJD1gJHskfSMke2dlKHgpfWApLENuKHgpKXgubm9kZSYmKCQrPWAgKCR7SmUoeC5ub2RlKX0pYCk7ZWxzZSBpZihqdCh4KSl7bGV0IFE9W107Zm9yKGxldCBPPXguY2xhdXNlU3RhcnQ7Tzx4LmNsYXVzZUVuZDtPKyspe2xldCBmZT14LnN3aXRjaFN0YXRlbWVudC5jYXNlQmxvY2suY2xhdXNlc1tPXTtoOChmZSk/US5wdXNoKFwiZGVmYXVsdFwiKTpRLnB1c2goSmUoZmUuZXhwcmVzc2lvbikpfSQrPWAgKCR7US5qb2luKFwiLCBcIil9KWB9cmV0dXJuIGY9PT1cImNpcmN1bGFyaXR5XCI/YENpcmN1bGFyKCR7JH0pYDokfWZ1bmN0aW9uIE10KCl7bGV0IHg9eXQubGVuZ3RoLGY9eGUucmVkdWNlKChiZSxoZSk9Pk1hdGgubWF4KGJlLGhlLmxhbmUpLDApKzEsJD1qKEFycmF5KGYpLFwiXCIpLFE9eXQubWFwKCgpPT5BcnJheShmKSksTz15dC5tYXAoKCk9PmooQXJyYXkoZiksMCkpO2ZvcihsZXQgYmUgb2YgeGUpe1FbYmUubGV2ZWxdW2JlLmxhbmVdPWJlO2xldCBoZT16bihiZSk7Zm9yKGxldCB3ZT0wO3dlPGhlLmxlbmd0aDt3ZSsrKXtsZXQgZXQ9aGVbd2VdLFllPTg7ZXQubGFuZT09PWJlLmxhbmUmJihZZXw9NCksd2U+MCYmKFllfD0xKSx3ZTxoZS5sZW5ndGgtMSYmKFllfD0yKSxPW2JlLmxldmVsXVtldC5sYW5lXXw9WWV9aGUubGVuZ3RoPT09MCYmKE9bYmUubGV2ZWxdW2JlLmxhbmVdfD0xNik7bGV0IFJlPVBpKGJlKTtmb3IobGV0IHdlPTA7d2U8UmUubGVuZ3RoO3dlKyspe2xldCBldD1SZVt3ZV0sWWU9NDt3ZT4wJiYoWWV8PTEpLHdlPFJlLmxlbmd0aC0xJiYoWWV8PTIpLE9bYmUubGV2ZWwtMV1bZXQubGFuZV18PVllfX1mb3IobGV0IGJlPTA7YmU8eDtiZSsrKWZvcihsZXQgaGU9MDtoZTxmO2hlKyspe2xldCBSZT1iZT4wP09bYmUtMV1baGVdOjAsd2U9aGU+MD9PW2JlXVtoZS0xXTowLGV0PU9bYmVdW2hlXTtldHx8KFJlJjgmJihldHw9MTIpLHdlJjImJihldHw9MyksT1tiZV1baGVdPWV0KX1mb3IobGV0IGJlPTA7YmU8eDtiZSsrKWZvcihsZXQgaGU9MDtoZTwkLmxlbmd0aDtoZSsrKXtsZXQgUmU9T1tiZV1baGVdLHdlPVJlJjQ/XCJcXHUyNTAwXCI6XCIgXCIsZXQ9UVtiZV1baGVdO2V0PyhmZShoZSxldC50ZXh0KSxiZTx4LTEmJihmZShoZSxcIiBcIiksZmUoaGUsVCh3ZSx5dFtiZV0tZXQudGV4dC5sZW5ndGgpKSkpOmJlPHgtMSYmZmUoaGUsVCh3ZSx5dFtiZV0rMSkpLGZlKGhlLExyKFJlKSksZmUoaGUsUmUmOCYmYmU8eC0xJiYhUVtiZSsxXVtoZV0/XCJcXHUyNTAwXCI6XCIgXCIpfXJldHVybmBcbiR7JC5qb2luKGBcbmApfVxuYDtmdW5jdGlvbiBmZShiZSxoZSl7JFtiZV0rPWhlfX1mdW5jdGlvbiBMcih4KXtzd2l0Y2goeCl7Y2FzZSAzOnJldHVyblwiXFx1MjUwMlwiO2Nhc2UgMTI6cmV0dXJuXCJcXHUyNTAwXCI7Y2FzZSA1OnJldHVyblwiXFx1MjU2RlwiO2Nhc2UgOTpyZXR1cm5cIlxcdTI1NzBcIjtjYXNlIDY6cmV0dXJuXCJcXHUyNTZFXCI7Y2FzZSAxMDpyZXR1cm5cIlxcdTI1NkRcIjtjYXNlIDc6cmV0dXJuXCJcXHUyNTI0XCI7Y2FzZSAxMTpyZXR1cm5cIlxcdTI1MUNcIjtjYXNlIDEzOnJldHVyblwiXFx1MjUzNFwiO2Nhc2UgMTQ6cmV0dXJuXCJcXHUyNTJDXCI7Y2FzZSAxNTpyZXR1cm5cIlxcdTI1NkJcIn1yZXR1cm5cIiBcIn1mdW5jdGlvbiBqKHgsZil7aWYoeC5maWxsKXguZmlsbChmKTtlbHNlIGZvcihsZXQgJD0wOyQ8eC5sZW5ndGg7JCsrKXhbJF09ZjtyZXR1cm4geH1mdW5jdGlvbiBUKHgsZil7aWYoeC5yZXBlYXQpcmV0dXJuIGY+MD94LnJlcGVhdChmKTpcIlwiO2xldCAkPVwiXCI7Zm9yKDskLmxlbmd0aDxmOykkKz14O3JldHVybiAkfX1lLmZvcm1hdENvbnRyb2xGbG93R3JhcGg9QWV9KShOfHwoTj17fSkpfX0pLGRFPSgpPT57fSxtRT0oKT0+e30saEU9KCk9Pnt9LFNhPURhdGUubm93LHlFPSgpPT57fSxZZj1uZXcgUHJveHkoKCk9Pnt9LHtnZXQ6KCk9PllmfSk7ZnVuY3Rpb24gTGIoZSl7aWYoZmcpe2xldCB0PV95LmdldChlKT8/MDtfeS5zZXQoZSx0KzEpLFpmLnNldChlLFNhKCkpLEtmPT1udWxsfHxLZi5tYXJrKGUpLHR5cGVvZiBvblByb2ZpbGVyRXZlbnQ9PVwiZnVuY3Rpb25cIiYmb25Qcm9maWxlckV2ZW50KGUpfX1mdW5jdGlvbiBnRShlLHQscil7aWYoZmcpe2xldCBhPShyIT09dm9pZCAwP1pmLmdldChyKTp2b2lkIDApPz9TYSgpLF89KHQhPT12b2lkIDA/WmYuZ2V0KHQpOnZvaWQgMCk/P0d2LHA9Y3kuZ2V0KGUpfHwwO2N5LnNldChlLHArKGEtXykpLEtmPT1udWxsfHxLZi5tZWFzdXJlKGUsdCxyKX19dmFyIEtmLGJFLGZnLEd2LFpmLF95LGN5LFhWPVZ0KHtcInNyYy9jb21waWxlci9wZXJmb3JtYW5jZS50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7RHIoKSxiRT17ZW50ZXI6Um4sZXhpdDpSbn0sZmc9ITEsR3Y9U2EoKSxaZj1uZXcgTWFwLF95PW5ldyBNYXAsY3k9bmV3IE1hcH19KSxYdj0oKT0+e30sdkU9KCk9Pnt9LHhhO2Z1bmN0aW9uIFRFKGUsdD0hMCl7bGV0IHI9Y2RbZS5jYXRlZ29yeV07cmV0dXJuIHQ/ci50b0xvd2VyQ2FzZSgpOnJ9dmFyIGVkLHRkLHJkLGx5LG5kLHV5LHB5LGJsLGZ5LGlkLGR5LG15LGh5LHl5LGd5LGJ5LHZ5LFR5LFN5LHh5LHd5LEN5LEV5LEF5LGt5LGFkLER5LFB5LEl5LE55LG9kLHNkLE95LE15LEx5LEp5LFJ5LGp5LF9kLEZ5LEJ5LFV5LHF5LHp5LFd5LGNkLFZ5LEh5LEd5LFh5LCR5LFF5LFl5LEt5LFp5LGxkLGUwLHQwLHIwLG4wLGkwLHVkLHBkLGZkLGEwLG8wLHMwLF8wLGMwLGwwLHUwLHAwLHFkLCR2PVZ0KHtcInNyYy9jb21waWxlci90eXBlcy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7ZWQ9KGU9PihlW2UuVW5rbm93bj0wXT1cIlVua25vd25cIixlW2UuRW5kT2ZGaWxlVG9rZW49MV09XCJFbmRPZkZpbGVUb2tlblwiLGVbZS5TaW5nbGVMaW5lQ29tbWVudFRyaXZpYT0yXT1cIlNpbmdsZUxpbmVDb21tZW50VHJpdmlhXCIsZVtlLk11bHRpTGluZUNvbW1lbnRUcml2aWE9M109XCJNdWx0aUxpbmVDb21tZW50VHJpdmlhXCIsZVtlLk5ld0xpbmVUcml2aWE9NF09XCJOZXdMaW5lVHJpdmlhXCIsZVtlLldoaXRlc3BhY2VUcml2aWE9NV09XCJXaGl0ZXNwYWNlVHJpdmlhXCIsZVtlLlNoZWJhbmdUcml2aWE9Nl09XCJTaGViYW5nVHJpdmlhXCIsZVtlLkNvbmZsaWN0TWFya2VyVHJpdmlhPTddPVwiQ29uZmxpY3RNYXJrZXJUcml2aWFcIixlW2UuTm9uVGV4dEZpbGVNYXJrZXJUcml2aWE9OF09XCJOb25UZXh0RmlsZU1hcmtlclRyaXZpYVwiLGVbZS5OdW1lcmljTGl0ZXJhbD05XT1cIk51bWVyaWNMaXRlcmFsXCIsZVtlLkJpZ0ludExpdGVyYWw9MTBdPVwiQmlnSW50TGl0ZXJhbFwiLGVbZS5TdHJpbmdMaXRlcmFsPTExXT1cIlN0cmluZ0xpdGVyYWxcIixlW2UuSnN4VGV4dD0xMl09XCJKc3hUZXh0XCIsZVtlLkpzeFRleHRBbGxXaGl0ZVNwYWNlcz0xM109XCJKc3hUZXh0QWxsV2hpdGVTcGFjZXNcIixlW2UuUmVndWxhckV4cHJlc3Npb25MaXRlcmFsPTE0XT1cIlJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbFwiLGVbZS5Ob1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbD0xNV09XCJOb1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbFwiLGVbZS5UZW1wbGF0ZUhlYWQ9MTZdPVwiVGVtcGxhdGVIZWFkXCIsZVtlLlRlbXBsYXRlTWlkZGxlPTE3XT1cIlRlbXBsYXRlTWlkZGxlXCIsZVtlLlRlbXBsYXRlVGFpbD0xOF09XCJUZW1wbGF0ZVRhaWxcIixlW2UuT3BlbkJyYWNlVG9rZW49MTldPVwiT3BlbkJyYWNlVG9rZW5cIixlW2UuQ2xvc2VCcmFjZVRva2VuPTIwXT1cIkNsb3NlQnJhY2VUb2tlblwiLGVbZS5PcGVuUGFyZW5Ub2tlbj0yMV09XCJPcGVuUGFyZW5Ub2tlblwiLGVbZS5DbG9zZVBhcmVuVG9rZW49MjJdPVwiQ2xvc2VQYXJlblRva2VuXCIsZVtlLk9wZW5CcmFja2V0VG9rZW49MjNdPVwiT3BlbkJyYWNrZXRUb2tlblwiLGVbZS5DbG9zZUJyYWNrZXRUb2tlbj0yNF09XCJDbG9zZUJyYWNrZXRUb2tlblwiLGVbZS5Eb3RUb2tlbj0yNV09XCJEb3RUb2tlblwiLGVbZS5Eb3REb3REb3RUb2tlbj0yNl09XCJEb3REb3REb3RUb2tlblwiLGVbZS5TZW1pY29sb25Ub2tlbj0yN109XCJTZW1pY29sb25Ub2tlblwiLGVbZS5Db21tYVRva2VuPTI4XT1cIkNvbW1hVG9rZW5cIixlW2UuUXVlc3Rpb25Eb3RUb2tlbj0yOV09XCJRdWVzdGlvbkRvdFRva2VuXCIsZVtlLkxlc3NUaGFuVG9rZW49MzBdPVwiTGVzc1RoYW5Ub2tlblwiLGVbZS5MZXNzVGhhblNsYXNoVG9rZW49MzFdPVwiTGVzc1RoYW5TbGFzaFRva2VuXCIsZVtlLkdyZWF0ZXJUaGFuVG9rZW49MzJdPVwiR3JlYXRlclRoYW5Ub2tlblwiLGVbZS5MZXNzVGhhbkVxdWFsc1Rva2VuPTMzXT1cIkxlc3NUaGFuRXF1YWxzVG9rZW5cIixlW2UuR3JlYXRlclRoYW5FcXVhbHNUb2tlbj0zNF09XCJHcmVhdGVyVGhhbkVxdWFsc1Rva2VuXCIsZVtlLkVxdWFsc0VxdWFsc1Rva2VuPTM1XT1cIkVxdWFsc0VxdWFsc1Rva2VuXCIsZVtlLkV4Y2xhbWF0aW9uRXF1YWxzVG9rZW49MzZdPVwiRXhjbGFtYXRpb25FcXVhbHNUb2tlblwiLGVbZS5FcXVhbHNFcXVhbHNFcXVhbHNUb2tlbj0zN109XCJFcXVhbHNFcXVhbHNFcXVhbHNUb2tlblwiLGVbZS5FeGNsYW1hdGlvbkVxdWFsc0VxdWFsc1Rva2VuPTM4XT1cIkV4Y2xhbWF0aW9uRXF1YWxzRXF1YWxzVG9rZW5cIixlW2UuRXF1YWxzR3JlYXRlclRoYW5Ub2tlbj0zOV09XCJFcXVhbHNHcmVhdGVyVGhhblRva2VuXCIsZVtlLlBsdXNUb2tlbj00MF09XCJQbHVzVG9rZW5cIixlW2UuTWludXNUb2tlbj00MV09XCJNaW51c1Rva2VuXCIsZVtlLkFzdGVyaXNrVG9rZW49NDJdPVwiQXN0ZXJpc2tUb2tlblwiLGVbZS5Bc3Rlcmlza0FzdGVyaXNrVG9rZW49NDNdPVwiQXN0ZXJpc2tBc3Rlcmlza1Rva2VuXCIsZVtlLlNsYXNoVG9rZW49NDRdPVwiU2xhc2hUb2tlblwiLGVbZS5QZXJjZW50VG9rZW49NDVdPVwiUGVyY2VudFRva2VuXCIsZVtlLlBsdXNQbHVzVG9rZW49NDZdPVwiUGx1c1BsdXNUb2tlblwiLGVbZS5NaW51c01pbnVzVG9rZW49NDddPVwiTWludXNNaW51c1Rva2VuXCIsZVtlLkxlc3NUaGFuTGVzc1RoYW5Ub2tlbj00OF09XCJMZXNzVGhhbkxlc3NUaGFuVG9rZW5cIixlW2UuR3JlYXRlclRoYW5HcmVhdGVyVGhhblRva2VuPTQ5XT1cIkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5Ub2tlblwiLGVbZS5HcmVhdGVyVGhhbkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5Ub2tlbj01MF09XCJHcmVhdGVyVGhhbkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5Ub2tlblwiLGVbZS5BbXBlcnNhbmRUb2tlbj01MV09XCJBbXBlcnNhbmRUb2tlblwiLGVbZS5CYXJUb2tlbj01Ml09XCJCYXJUb2tlblwiLGVbZS5DYXJldFRva2VuPTUzXT1cIkNhcmV0VG9rZW5cIixlW2UuRXhjbGFtYXRpb25Ub2tlbj01NF09XCJFeGNsYW1hdGlvblRva2VuXCIsZVtlLlRpbGRlVG9rZW49NTVdPVwiVGlsZGVUb2tlblwiLGVbZS5BbXBlcnNhbmRBbXBlcnNhbmRUb2tlbj01Nl09XCJBbXBlcnNhbmRBbXBlcnNhbmRUb2tlblwiLGVbZS5CYXJCYXJUb2tlbj01N109XCJCYXJCYXJUb2tlblwiLGVbZS5RdWVzdGlvblRva2VuPTU4XT1cIlF1ZXN0aW9uVG9rZW5cIixlW2UuQ29sb25Ub2tlbj01OV09XCJDb2xvblRva2VuXCIsZVtlLkF0VG9rZW49NjBdPVwiQXRUb2tlblwiLGVbZS5RdWVzdGlvblF1ZXN0aW9uVG9rZW49NjFdPVwiUXVlc3Rpb25RdWVzdGlvblRva2VuXCIsZVtlLkJhY2t0aWNrVG9rZW49NjJdPVwiQmFja3RpY2tUb2tlblwiLGVbZS5IYXNoVG9rZW49NjNdPVwiSGFzaFRva2VuXCIsZVtlLkVxdWFsc1Rva2VuPTY0XT1cIkVxdWFsc1Rva2VuXCIsZVtlLlBsdXNFcXVhbHNUb2tlbj02NV09XCJQbHVzRXF1YWxzVG9rZW5cIixlW2UuTWludXNFcXVhbHNUb2tlbj02Nl09XCJNaW51c0VxdWFsc1Rva2VuXCIsZVtlLkFzdGVyaXNrRXF1YWxzVG9rZW49NjddPVwiQXN0ZXJpc2tFcXVhbHNUb2tlblwiLGVbZS5Bc3Rlcmlza0FzdGVyaXNrRXF1YWxzVG9rZW49NjhdPVwiQXN0ZXJpc2tBc3Rlcmlza0VxdWFsc1Rva2VuXCIsZVtlLlNsYXNoRXF1YWxzVG9rZW49NjldPVwiU2xhc2hFcXVhbHNUb2tlblwiLGVbZS5QZXJjZW50RXF1YWxzVG9rZW49NzBdPVwiUGVyY2VudEVxdWFsc1Rva2VuXCIsZVtlLkxlc3NUaGFuTGVzc1RoYW5FcXVhbHNUb2tlbj03MV09XCJMZXNzVGhhbkxlc3NUaGFuRXF1YWxzVG9rZW5cIixlW2UuR3JlYXRlclRoYW5HcmVhdGVyVGhhbkVxdWFsc1Rva2VuPTcyXT1cIkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5FcXVhbHNUb2tlblwiLGVbZS5HcmVhdGVyVGhhbkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5FcXVhbHNUb2tlbj03M109XCJHcmVhdGVyVGhhbkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5FcXVhbHNUb2tlblwiLGVbZS5BbXBlcnNhbmRFcXVhbHNUb2tlbj03NF09XCJBbXBlcnNhbmRFcXVhbHNUb2tlblwiLGVbZS5CYXJFcXVhbHNUb2tlbj03NV09XCJCYXJFcXVhbHNUb2tlblwiLGVbZS5CYXJCYXJFcXVhbHNUb2tlbj03Nl09XCJCYXJCYXJFcXVhbHNUb2tlblwiLGVbZS5BbXBlcnNhbmRBbXBlcnNhbmRFcXVhbHNUb2tlbj03N109XCJBbXBlcnNhbmRBbXBlcnNhbmRFcXVhbHNUb2tlblwiLGVbZS5RdWVzdGlvblF1ZXN0aW9uRXF1YWxzVG9rZW49NzhdPVwiUXVlc3Rpb25RdWVzdGlvbkVxdWFsc1Rva2VuXCIsZVtlLkNhcmV0RXF1YWxzVG9rZW49NzldPVwiQ2FyZXRFcXVhbHNUb2tlblwiLGVbZS5JZGVudGlmaWVyPTgwXT1cIklkZW50aWZpZXJcIixlW2UuUHJpdmF0ZUlkZW50aWZpZXI9ODFdPVwiUHJpdmF0ZUlkZW50aWZpZXJcIixlW2UuSlNEb2NDb21tZW50VGV4dFRva2VuPTgyXT1cIkpTRG9jQ29tbWVudFRleHRUb2tlblwiLGVbZS5CcmVha0tleXdvcmQ9ODNdPVwiQnJlYWtLZXl3b3JkXCIsZVtlLkNhc2VLZXl3b3JkPTg0XT1cIkNhc2VLZXl3b3JkXCIsZVtlLkNhdGNoS2V5d29yZD04NV09XCJDYXRjaEtleXdvcmRcIixlW2UuQ2xhc3NLZXl3b3JkPTg2XT1cIkNsYXNzS2V5d29yZFwiLGVbZS5Db25zdEtleXdvcmQ9ODddPVwiQ29uc3RLZXl3b3JkXCIsZVtlLkNvbnRpbnVlS2V5d29yZD04OF09XCJDb250aW51ZUtleXdvcmRcIixlW2UuRGVidWdnZXJLZXl3b3JkPTg5XT1cIkRlYnVnZ2VyS2V5d29yZFwiLGVbZS5EZWZhdWx0S2V5d29yZD05MF09XCJEZWZhdWx0S2V5d29yZFwiLGVbZS5EZWxldGVLZXl3b3JkPTkxXT1cIkRlbGV0ZUtleXdvcmRcIixlW2UuRG9LZXl3b3JkPTkyXT1cIkRvS2V5d29yZFwiLGVbZS5FbHNlS2V5d29yZD05M109XCJFbHNlS2V5d29yZFwiLGVbZS5FbnVtS2V5d29yZD05NF09XCJFbnVtS2V5d29yZFwiLGVbZS5FeHBvcnRLZXl3b3JkPTk1XT1cIkV4cG9ydEtleXdvcmRcIixlW2UuRXh0ZW5kc0tleXdvcmQ9OTZdPVwiRXh0ZW5kc0tleXdvcmRcIixlW2UuRmFsc2VLZXl3b3JkPTk3XT1cIkZhbHNlS2V5d29yZFwiLGVbZS5GaW5hbGx5S2V5d29yZD05OF09XCJGaW5hbGx5S2V5d29yZFwiLGVbZS5Gb3JLZXl3b3JkPTk5XT1cIkZvcktleXdvcmRcIixlW2UuRnVuY3Rpb25LZXl3b3JkPTEwMF09XCJGdW5jdGlvbktleXdvcmRcIixlW2UuSWZLZXl3b3JkPTEwMV09XCJJZktleXdvcmRcIixlW2UuSW1wb3J0S2V5d29yZD0xMDJdPVwiSW1wb3J0S2V5d29yZFwiLGVbZS5JbktleXdvcmQ9MTAzXT1cIkluS2V5d29yZFwiLGVbZS5JbnN0YW5jZU9mS2V5d29yZD0xMDRdPVwiSW5zdGFuY2VPZktleXdvcmRcIixlW2UuTmV3S2V5d29yZD0xMDVdPVwiTmV3S2V5d29yZFwiLGVbZS5OdWxsS2V5d29yZD0xMDZdPVwiTnVsbEtleXdvcmRcIixlW2UuUmV0dXJuS2V5d29yZD0xMDddPVwiUmV0dXJuS2V5d29yZFwiLGVbZS5TdXBlcktleXdvcmQ9MTA4XT1cIlN1cGVyS2V5d29yZFwiLGVbZS5Td2l0Y2hLZXl3b3JkPTEwOV09XCJTd2l0Y2hLZXl3b3JkXCIsZVtlLlRoaXNLZXl3b3JkPTExMF09XCJUaGlzS2V5d29yZFwiLGVbZS5UaHJvd0tleXdvcmQ9MTExXT1cIlRocm93S2V5d29yZFwiLGVbZS5UcnVlS2V5d29yZD0xMTJdPVwiVHJ1ZUtleXdvcmRcIixlW2UuVHJ5S2V5d29yZD0xMTNdPVwiVHJ5S2V5d29yZFwiLGVbZS5UeXBlT2ZLZXl3b3JkPTExNF09XCJUeXBlT2ZLZXl3b3JkXCIsZVtlLlZhcktleXdvcmQ9MTE1XT1cIlZhcktleXdvcmRcIixlW2UuVm9pZEtleXdvcmQ9MTE2XT1cIlZvaWRLZXl3b3JkXCIsZVtlLldoaWxlS2V5d29yZD0xMTddPVwiV2hpbGVLZXl3b3JkXCIsZVtlLldpdGhLZXl3b3JkPTExOF09XCJXaXRoS2V5d29yZFwiLGVbZS5JbXBsZW1lbnRzS2V5d29yZD0xMTldPVwiSW1wbGVtZW50c0tleXdvcmRcIixlW2UuSW50ZXJmYWNlS2V5d29yZD0xMjBdPVwiSW50ZXJmYWNlS2V5d29yZFwiLGVbZS5MZXRLZXl3b3JkPTEyMV09XCJMZXRLZXl3b3JkXCIsZVtlLlBhY2thZ2VLZXl3b3JkPTEyMl09XCJQYWNrYWdlS2V5d29yZFwiLGVbZS5Qcml2YXRlS2V5d29yZD0xMjNdPVwiUHJpdmF0ZUtleXdvcmRcIixlW2UuUHJvdGVjdGVkS2V5d29yZD0xMjRdPVwiUHJvdGVjdGVkS2V5d29yZFwiLGVbZS5QdWJsaWNLZXl3b3JkPTEyNV09XCJQdWJsaWNLZXl3b3JkXCIsZVtlLlN0YXRpY0tleXdvcmQ9MTI2XT1cIlN0YXRpY0tleXdvcmRcIixlW2UuWWllbGRLZXl3b3JkPTEyN109XCJZaWVsZEtleXdvcmRcIixlW2UuQWJzdHJhY3RLZXl3b3JkPTEyOF09XCJBYnN0cmFjdEtleXdvcmRcIixlW2UuQWNjZXNzb3JLZXl3b3JkPTEyOV09XCJBY2Nlc3NvcktleXdvcmRcIixlW2UuQXNLZXl3b3JkPTEzMF09XCJBc0tleXdvcmRcIixlW2UuQXNzZXJ0c0tleXdvcmQ9MTMxXT1cIkFzc2VydHNLZXl3b3JkXCIsZVtlLkFzc2VydEtleXdvcmQ9MTMyXT1cIkFzc2VydEtleXdvcmRcIixlW2UuQW55S2V5d29yZD0xMzNdPVwiQW55S2V5d29yZFwiLGVbZS5Bc3luY0tleXdvcmQ9MTM0XT1cIkFzeW5jS2V5d29yZFwiLGVbZS5Bd2FpdEtleXdvcmQ9MTM1XT1cIkF3YWl0S2V5d29yZFwiLGVbZS5Cb29sZWFuS2V5d29yZD0xMzZdPVwiQm9vbGVhbktleXdvcmRcIixlW2UuQ29uc3RydWN0b3JLZXl3b3JkPTEzN109XCJDb25zdHJ1Y3RvcktleXdvcmRcIixlW2UuRGVjbGFyZUtleXdvcmQ9MTM4XT1cIkRlY2xhcmVLZXl3b3JkXCIsZVtlLkdldEtleXdvcmQ9MTM5XT1cIkdldEtleXdvcmRcIixlW2UuSW5mZXJLZXl3b3JkPTE0MF09XCJJbmZlcktleXdvcmRcIixlW2UuSW50cmluc2ljS2V5d29yZD0xNDFdPVwiSW50cmluc2ljS2V5d29yZFwiLGVbZS5Jc0tleXdvcmQ9MTQyXT1cIklzS2V5d29yZFwiLGVbZS5LZXlPZktleXdvcmQ9MTQzXT1cIktleU9mS2V5d29yZFwiLGVbZS5Nb2R1bGVLZXl3b3JkPTE0NF09XCJNb2R1bGVLZXl3b3JkXCIsZVtlLk5hbWVzcGFjZUtleXdvcmQ9MTQ1XT1cIk5hbWVzcGFjZUtleXdvcmRcIixlW2UuTmV2ZXJLZXl3b3JkPTE0Nl09XCJOZXZlcktleXdvcmRcIixlW2UuT3V0S2V5d29yZD0xNDddPVwiT3V0S2V5d29yZFwiLGVbZS5SZWFkb25seUtleXdvcmQ9MTQ4XT1cIlJlYWRvbmx5S2V5d29yZFwiLGVbZS5SZXF1aXJlS2V5d29yZD0xNDldPVwiUmVxdWlyZUtleXdvcmRcIixlW2UuTnVtYmVyS2V5d29yZD0xNTBdPVwiTnVtYmVyS2V5d29yZFwiLGVbZS5PYmplY3RLZXl3b3JkPTE1MV09XCJPYmplY3RLZXl3b3JkXCIsZVtlLlNhdGlzZmllc0tleXdvcmQ9MTUyXT1cIlNhdGlzZmllc0tleXdvcmRcIixlW2UuU2V0S2V5d29yZD0xNTNdPVwiU2V0S2V5d29yZFwiLGVbZS5TdHJpbmdLZXl3b3JkPTE1NF09XCJTdHJpbmdLZXl3b3JkXCIsZVtlLlN5bWJvbEtleXdvcmQ9MTU1XT1cIlN5bWJvbEtleXdvcmRcIixlW2UuVHlwZUtleXdvcmQ9MTU2XT1cIlR5cGVLZXl3b3JkXCIsZVtlLlVuZGVmaW5lZEtleXdvcmQ9MTU3XT1cIlVuZGVmaW5lZEtleXdvcmRcIixlW2UuVW5pcXVlS2V5d29yZD0xNThdPVwiVW5pcXVlS2V5d29yZFwiLGVbZS5Vbmtub3duS2V5d29yZD0xNTldPVwiVW5rbm93bktleXdvcmRcIixlW2UuVXNpbmdLZXl3b3JkPTE2MF09XCJVc2luZ0tleXdvcmRcIixlW2UuRnJvbUtleXdvcmQ9MTYxXT1cIkZyb21LZXl3b3JkXCIsZVtlLkdsb2JhbEtleXdvcmQ9MTYyXT1cIkdsb2JhbEtleXdvcmRcIixlW2UuQmlnSW50S2V5d29yZD0xNjNdPVwiQmlnSW50S2V5d29yZFwiLGVbZS5PdmVycmlkZUtleXdvcmQ9MTY0XT1cIk92ZXJyaWRlS2V5d29yZFwiLGVbZS5PZktleXdvcmQ9MTY1XT1cIk9mS2V5d29yZFwiLGVbZS5RdWFsaWZpZWROYW1lPTE2Nl09XCJRdWFsaWZpZWROYW1lXCIsZVtlLkNvbXB1dGVkUHJvcGVydHlOYW1lPTE2N109XCJDb21wdXRlZFByb3BlcnR5TmFtZVwiLGVbZS5UeXBlUGFyYW1ldGVyPTE2OF09XCJUeXBlUGFyYW1ldGVyXCIsZVtlLlBhcmFtZXRlcj0xNjldPVwiUGFyYW1ldGVyXCIsZVtlLkRlY29yYXRvcj0xNzBdPVwiRGVjb3JhdG9yXCIsZVtlLlByb3BlcnR5U2lnbmF0dXJlPTE3MV09XCJQcm9wZXJ0eVNpZ25hdHVyZVwiLGVbZS5Qcm9wZXJ0eURlY2xhcmF0aW9uPTE3Ml09XCJQcm9wZXJ0eURlY2xhcmF0aW9uXCIsZVtlLk1ldGhvZFNpZ25hdHVyZT0xNzNdPVwiTWV0aG9kU2lnbmF0dXJlXCIsZVtlLk1ldGhvZERlY2xhcmF0aW9uPTE3NF09XCJNZXRob2REZWNsYXJhdGlvblwiLGVbZS5DbGFzc1N0YXRpY0Jsb2NrRGVjbGFyYXRpb249MTc1XT1cIkNsYXNzU3RhdGljQmxvY2tEZWNsYXJhdGlvblwiLGVbZS5Db25zdHJ1Y3Rvcj0xNzZdPVwiQ29uc3RydWN0b3JcIixlW2UuR2V0QWNjZXNzb3I9MTc3XT1cIkdldEFjY2Vzc29yXCIsZVtlLlNldEFjY2Vzc29yPTE3OF09XCJTZXRBY2Nlc3NvclwiLGVbZS5DYWxsU2lnbmF0dXJlPTE3OV09XCJDYWxsU2lnbmF0dXJlXCIsZVtlLkNvbnN0cnVjdFNpZ25hdHVyZT0xODBdPVwiQ29uc3RydWN0U2lnbmF0dXJlXCIsZVtlLkluZGV4U2lnbmF0dXJlPTE4MV09XCJJbmRleFNpZ25hdHVyZVwiLGVbZS5UeXBlUHJlZGljYXRlPTE4Ml09XCJUeXBlUHJlZGljYXRlXCIsZVtlLlR5cGVSZWZlcmVuY2U9MTgzXT1cIlR5cGVSZWZlcmVuY2VcIixlW2UuRnVuY3Rpb25UeXBlPTE4NF09XCJGdW5jdGlvblR5cGVcIixlW2UuQ29uc3RydWN0b3JUeXBlPTE4NV09XCJDb25zdHJ1Y3RvclR5cGVcIixlW2UuVHlwZVF1ZXJ5PTE4Nl09XCJUeXBlUXVlcnlcIixlW2UuVHlwZUxpdGVyYWw9MTg3XT1cIlR5cGVMaXRlcmFsXCIsZVtlLkFycmF5VHlwZT0xODhdPVwiQXJyYXlUeXBlXCIsZVtlLlR1cGxlVHlwZT0xODldPVwiVHVwbGVUeXBlXCIsZVtlLk9wdGlvbmFsVHlwZT0xOTBdPVwiT3B0aW9uYWxUeXBlXCIsZVtlLlJlc3RUeXBlPTE5MV09XCJSZXN0VHlwZVwiLGVbZS5VbmlvblR5cGU9MTkyXT1cIlVuaW9uVHlwZVwiLGVbZS5JbnRlcnNlY3Rpb25UeXBlPTE5M109XCJJbnRlcnNlY3Rpb25UeXBlXCIsZVtlLkNvbmRpdGlvbmFsVHlwZT0xOTRdPVwiQ29uZGl0aW9uYWxUeXBlXCIsZVtlLkluZmVyVHlwZT0xOTVdPVwiSW5mZXJUeXBlXCIsZVtlLlBhcmVudGhlc2l6ZWRUeXBlPTE5Nl09XCJQYXJlbnRoZXNpemVkVHlwZVwiLGVbZS5UaGlzVHlwZT0xOTddPVwiVGhpc1R5cGVcIixlW2UuVHlwZU9wZXJhdG9yPTE5OF09XCJUeXBlT3BlcmF0b3JcIixlW2UuSW5kZXhlZEFjY2Vzc1R5cGU9MTk5XT1cIkluZGV4ZWRBY2Nlc3NUeXBlXCIsZVtlLk1hcHBlZFR5cGU9MjAwXT1cIk1hcHBlZFR5cGVcIixlW2UuTGl0ZXJhbFR5cGU9MjAxXT1cIkxpdGVyYWxUeXBlXCIsZVtlLk5hbWVkVHVwbGVNZW1iZXI9MjAyXT1cIk5hbWVkVHVwbGVNZW1iZXJcIixlW2UuVGVtcGxhdGVMaXRlcmFsVHlwZT0yMDNdPVwiVGVtcGxhdGVMaXRlcmFsVHlwZVwiLGVbZS5UZW1wbGF0ZUxpdGVyYWxUeXBlU3Bhbj0yMDRdPVwiVGVtcGxhdGVMaXRlcmFsVHlwZVNwYW5cIixlW2UuSW1wb3J0VHlwZT0yMDVdPVwiSW1wb3J0VHlwZVwiLGVbZS5PYmplY3RCaW5kaW5nUGF0dGVybj0yMDZdPVwiT2JqZWN0QmluZGluZ1BhdHRlcm5cIixlW2UuQXJyYXlCaW5kaW5nUGF0dGVybj0yMDddPVwiQXJyYXlCaW5kaW5nUGF0dGVyblwiLGVbZS5CaW5kaW5nRWxlbWVudD0yMDhdPVwiQmluZGluZ0VsZW1lbnRcIixlW2UuQXJyYXlMaXRlcmFsRXhwcmVzc2lvbj0yMDldPVwiQXJyYXlMaXRlcmFsRXhwcmVzc2lvblwiLGVbZS5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbj0yMTBdPVwiT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb25cIixlW2UuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uPTIxMV09XCJQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb25cIixlW2UuRWxlbWVudEFjY2Vzc0V4cHJlc3Npb249MjEyXT1cIkVsZW1lbnRBY2Nlc3NFeHByZXNzaW9uXCIsZVtlLkNhbGxFeHByZXNzaW9uPTIxM109XCJDYWxsRXhwcmVzc2lvblwiLGVbZS5OZXdFeHByZXNzaW9uPTIxNF09XCJOZXdFeHByZXNzaW9uXCIsZVtlLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbj0yMTVdPVwiVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uXCIsZVtlLlR5cGVBc3NlcnRpb25FeHByZXNzaW9uPTIxNl09XCJUeXBlQXNzZXJ0aW9uRXhwcmVzc2lvblwiLGVbZS5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbj0yMTddPVwiUGFyZW50aGVzaXplZEV4cHJlc3Npb25cIixlW2UuRnVuY3Rpb25FeHByZXNzaW9uPTIxOF09XCJGdW5jdGlvbkV4cHJlc3Npb25cIixlW2UuQXJyb3dGdW5jdGlvbj0yMTldPVwiQXJyb3dGdW5jdGlvblwiLGVbZS5EZWxldGVFeHByZXNzaW9uPTIyMF09XCJEZWxldGVFeHByZXNzaW9uXCIsZVtlLlR5cGVPZkV4cHJlc3Npb249MjIxXT1cIlR5cGVPZkV4cHJlc3Npb25cIixlW2UuVm9pZEV4cHJlc3Npb249MjIyXT1cIlZvaWRFeHByZXNzaW9uXCIsZVtlLkF3YWl0RXhwcmVzc2lvbj0yMjNdPVwiQXdhaXRFeHByZXNzaW9uXCIsZVtlLlByZWZpeFVuYXJ5RXhwcmVzc2lvbj0yMjRdPVwiUHJlZml4VW5hcnlFeHByZXNzaW9uXCIsZVtlLlBvc3RmaXhVbmFyeUV4cHJlc3Npb249MjI1XT1cIlBvc3RmaXhVbmFyeUV4cHJlc3Npb25cIixlW2UuQmluYXJ5RXhwcmVzc2lvbj0yMjZdPVwiQmluYXJ5RXhwcmVzc2lvblwiLGVbZS5Db25kaXRpb25hbEV4cHJlc3Npb249MjI3XT1cIkNvbmRpdGlvbmFsRXhwcmVzc2lvblwiLGVbZS5UZW1wbGF0ZUV4cHJlc3Npb249MjI4XT1cIlRlbXBsYXRlRXhwcmVzc2lvblwiLGVbZS5ZaWVsZEV4cHJlc3Npb249MjI5XT1cIllpZWxkRXhwcmVzc2lvblwiLGVbZS5TcHJlYWRFbGVtZW50PTIzMF09XCJTcHJlYWRFbGVtZW50XCIsZVtlLkNsYXNzRXhwcmVzc2lvbj0yMzFdPVwiQ2xhc3NFeHByZXNzaW9uXCIsZVtlLk9taXR0ZWRFeHByZXNzaW9uPTIzMl09XCJPbWl0dGVkRXhwcmVzc2lvblwiLGVbZS5FeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM9MjMzXT1cIkV4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50c1wiLGVbZS5Bc0V4cHJlc3Npb249MjM0XT1cIkFzRXhwcmVzc2lvblwiLGVbZS5Ob25OdWxsRXhwcmVzc2lvbj0yMzVdPVwiTm9uTnVsbEV4cHJlc3Npb25cIixlW2UuTWV0YVByb3BlcnR5PTIzNl09XCJNZXRhUHJvcGVydHlcIixlW2UuU3ludGhldGljRXhwcmVzc2lvbj0yMzddPVwiU3ludGhldGljRXhwcmVzc2lvblwiLGVbZS5TYXRpc2ZpZXNFeHByZXNzaW9uPTIzOF09XCJTYXRpc2ZpZXNFeHByZXNzaW9uXCIsZVtlLlRlbXBsYXRlU3Bhbj0yMzldPVwiVGVtcGxhdGVTcGFuXCIsZVtlLlNlbWljb2xvbkNsYXNzRWxlbWVudD0yNDBdPVwiU2VtaWNvbG9uQ2xhc3NFbGVtZW50XCIsZVtlLkJsb2NrPTI0MV09XCJCbG9ja1wiLGVbZS5FbXB0eVN0YXRlbWVudD0yNDJdPVwiRW1wdHlTdGF0ZW1lbnRcIixlW2UuVmFyaWFibGVTdGF0ZW1lbnQ9MjQzXT1cIlZhcmlhYmxlU3RhdGVtZW50XCIsZVtlLkV4cHJlc3Npb25TdGF0ZW1lbnQ9MjQ0XT1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixlW2UuSWZTdGF0ZW1lbnQ9MjQ1XT1cIklmU3RhdGVtZW50XCIsZVtlLkRvU3RhdGVtZW50PTI0Nl09XCJEb1N0YXRlbWVudFwiLGVbZS5XaGlsZVN0YXRlbWVudD0yNDddPVwiV2hpbGVTdGF0ZW1lbnRcIixlW2UuRm9yU3RhdGVtZW50PTI0OF09XCJGb3JTdGF0ZW1lbnRcIixlW2UuRm9ySW5TdGF0ZW1lbnQ9MjQ5XT1cIkZvckluU3RhdGVtZW50XCIsZVtlLkZvck9mU3RhdGVtZW50PTI1MF09XCJGb3JPZlN0YXRlbWVudFwiLGVbZS5Db250aW51ZVN0YXRlbWVudD0yNTFdPVwiQ29udGludWVTdGF0ZW1lbnRcIixlW2UuQnJlYWtTdGF0ZW1lbnQ9MjUyXT1cIkJyZWFrU3RhdGVtZW50XCIsZVtlLlJldHVyblN0YXRlbWVudD0yNTNdPVwiUmV0dXJuU3RhdGVtZW50XCIsZVtlLldpdGhTdGF0ZW1lbnQ9MjU0XT1cIldpdGhTdGF0ZW1lbnRcIixlW2UuU3dpdGNoU3RhdGVtZW50PTI1NV09XCJTd2l0Y2hTdGF0ZW1lbnRcIixlW2UuTGFiZWxlZFN0YXRlbWVudD0yNTZdPVwiTGFiZWxlZFN0YXRlbWVudFwiLGVbZS5UaHJvd1N0YXRlbWVudD0yNTddPVwiVGhyb3dTdGF0ZW1lbnRcIixlW2UuVHJ5U3RhdGVtZW50PTI1OF09XCJUcnlTdGF0ZW1lbnRcIixlW2UuRGVidWdnZXJTdGF0ZW1lbnQ9MjU5XT1cIkRlYnVnZ2VyU3RhdGVtZW50XCIsZVtlLlZhcmlhYmxlRGVjbGFyYXRpb249MjYwXT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cIixlW2UuVmFyaWFibGVEZWNsYXJhdGlvbkxpc3Q9MjYxXT1cIlZhcmlhYmxlRGVjbGFyYXRpb25MaXN0XCIsZVtlLkZ1bmN0aW9uRGVjbGFyYXRpb249MjYyXT1cIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixlW2UuQ2xhc3NEZWNsYXJhdGlvbj0yNjNdPVwiQ2xhc3NEZWNsYXJhdGlvblwiLGVbZS5JbnRlcmZhY2VEZWNsYXJhdGlvbj0yNjRdPVwiSW50ZXJmYWNlRGVjbGFyYXRpb25cIixlW2UuVHlwZUFsaWFzRGVjbGFyYXRpb249MjY1XT1cIlR5cGVBbGlhc0RlY2xhcmF0aW9uXCIsZVtlLkVudW1EZWNsYXJhdGlvbj0yNjZdPVwiRW51bURlY2xhcmF0aW9uXCIsZVtlLk1vZHVsZURlY2xhcmF0aW9uPTI2N109XCJNb2R1bGVEZWNsYXJhdGlvblwiLGVbZS5Nb2R1bGVCbG9jaz0yNjhdPVwiTW9kdWxlQmxvY2tcIixlW2UuQ2FzZUJsb2NrPTI2OV09XCJDYXNlQmxvY2tcIixlW2UuTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb249MjcwXT1cIk5hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uXCIsZVtlLkltcG9ydEVxdWFsc0RlY2xhcmF0aW9uPTI3MV09XCJJbXBvcnRFcXVhbHNEZWNsYXJhdGlvblwiLGVbZS5JbXBvcnREZWNsYXJhdGlvbj0yNzJdPVwiSW1wb3J0RGVjbGFyYXRpb25cIixlW2UuSW1wb3J0Q2xhdXNlPTI3M109XCJJbXBvcnRDbGF1c2VcIixlW2UuTmFtZXNwYWNlSW1wb3J0PTI3NF09XCJOYW1lc3BhY2VJbXBvcnRcIixlW2UuTmFtZWRJbXBvcnRzPTI3NV09XCJOYW1lZEltcG9ydHNcIixlW2UuSW1wb3J0U3BlY2lmaWVyPTI3Nl09XCJJbXBvcnRTcGVjaWZpZXJcIixlW2UuRXhwb3J0QXNzaWdubWVudD0yNzddPVwiRXhwb3J0QXNzaWdubWVudFwiLGVbZS5FeHBvcnREZWNsYXJhdGlvbj0yNzhdPVwiRXhwb3J0RGVjbGFyYXRpb25cIixlW2UuTmFtZWRFeHBvcnRzPTI3OV09XCJOYW1lZEV4cG9ydHNcIixlW2UuTmFtZXNwYWNlRXhwb3J0PTI4MF09XCJOYW1lc3BhY2VFeHBvcnRcIixlW2UuRXhwb3J0U3BlY2lmaWVyPTI4MV09XCJFeHBvcnRTcGVjaWZpZXJcIixlW2UuTWlzc2luZ0RlY2xhcmF0aW9uPTI4Ml09XCJNaXNzaW5nRGVjbGFyYXRpb25cIixlW2UuRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2U9MjgzXT1cIkV4dGVybmFsTW9kdWxlUmVmZXJlbmNlXCIsZVtlLkpzeEVsZW1lbnQ9Mjg0XT1cIkpzeEVsZW1lbnRcIixlW2UuSnN4U2VsZkNsb3NpbmdFbGVtZW50PTI4NV09XCJKc3hTZWxmQ2xvc2luZ0VsZW1lbnRcIixlW2UuSnN4T3BlbmluZ0VsZW1lbnQ9Mjg2XT1cIkpzeE9wZW5pbmdFbGVtZW50XCIsZVtlLkpzeENsb3NpbmdFbGVtZW50PTI4N109XCJKc3hDbG9zaW5nRWxlbWVudFwiLGVbZS5Kc3hGcmFnbWVudD0yODhdPVwiSnN4RnJhZ21lbnRcIixlW2UuSnN4T3BlbmluZ0ZyYWdtZW50PTI4OV09XCJKc3hPcGVuaW5nRnJhZ21lbnRcIixlW2UuSnN4Q2xvc2luZ0ZyYWdtZW50PTI5MF09XCJKc3hDbG9zaW5nRnJhZ21lbnRcIixlW2UuSnN4QXR0cmlidXRlPTI5MV09XCJKc3hBdHRyaWJ1dGVcIixlW2UuSnN4QXR0cmlidXRlcz0yOTJdPVwiSnN4QXR0cmlidXRlc1wiLGVbZS5Kc3hTcHJlYWRBdHRyaWJ1dGU9MjkzXT1cIkpzeFNwcmVhZEF0dHJpYnV0ZVwiLGVbZS5Kc3hFeHByZXNzaW9uPTI5NF09XCJKc3hFeHByZXNzaW9uXCIsZVtlLkpzeE5hbWVzcGFjZWROYW1lPTI5NV09XCJKc3hOYW1lc3BhY2VkTmFtZVwiLGVbZS5DYXNlQ2xhdXNlPTI5Nl09XCJDYXNlQ2xhdXNlXCIsZVtlLkRlZmF1bHRDbGF1c2U9Mjk3XT1cIkRlZmF1bHRDbGF1c2VcIixlW2UuSGVyaXRhZ2VDbGF1c2U9Mjk4XT1cIkhlcml0YWdlQ2xhdXNlXCIsZVtlLkNhdGNoQ2xhdXNlPTI5OV09XCJDYXRjaENsYXVzZVwiLGVbZS5Bc3NlcnRDbGF1c2U9MzAwXT1cIkFzc2VydENsYXVzZVwiLGVbZS5Bc3NlcnRFbnRyeT0zMDFdPVwiQXNzZXJ0RW50cnlcIixlW2UuSW1wb3J0VHlwZUFzc2VydGlvbkNvbnRhaW5lcj0zMDJdPVwiSW1wb3J0VHlwZUFzc2VydGlvbkNvbnRhaW5lclwiLGVbZS5Qcm9wZXJ0eUFzc2lnbm1lbnQ9MzAzXT1cIlByb3BlcnR5QXNzaWdubWVudFwiLGVbZS5TaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQ9MzA0XT1cIlNob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudFwiLGVbZS5TcHJlYWRBc3NpZ25tZW50PTMwNV09XCJTcHJlYWRBc3NpZ25tZW50XCIsZVtlLkVudW1NZW1iZXI9MzA2XT1cIkVudW1NZW1iZXJcIixlW2UuVW5wYXJzZWRQcm9sb2d1ZT0zMDddPVwiVW5wYXJzZWRQcm9sb2d1ZVwiLGVbZS5VbnBhcnNlZFByZXBlbmQ9MzA4XT1cIlVucGFyc2VkUHJlcGVuZFwiLGVbZS5VbnBhcnNlZFRleHQ9MzA5XT1cIlVucGFyc2VkVGV4dFwiLGVbZS5VbnBhcnNlZEludGVybmFsVGV4dD0zMTBdPVwiVW5wYXJzZWRJbnRlcm5hbFRleHRcIixlW2UuVW5wYXJzZWRTeW50aGV0aWNSZWZlcmVuY2U9MzExXT1cIlVucGFyc2VkU3ludGhldGljUmVmZXJlbmNlXCIsZVtlLlNvdXJjZUZpbGU9MzEyXT1cIlNvdXJjZUZpbGVcIixlW2UuQnVuZGxlPTMxM109XCJCdW5kbGVcIixlW2UuVW5wYXJzZWRTb3VyY2U9MzE0XT1cIlVucGFyc2VkU291cmNlXCIsZVtlLklucHV0RmlsZXM9MzE1XT1cIklucHV0RmlsZXNcIixlW2UuSlNEb2NUeXBlRXhwcmVzc2lvbj0zMTZdPVwiSlNEb2NUeXBlRXhwcmVzc2lvblwiLGVbZS5KU0RvY05hbWVSZWZlcmVuY2U9MzE3XT1cIkpTRG9jTmFtZVJlZmVyZW5jZVwiLGVbZS5KU0RvY01lbWJlck5hbWU9MzE4XT1cIkpTRG9jTWVtYmVyTmFtZVwiLGVbZS5KU0RvY0FsbFR5cGU9MzE5XT1cIkpTRG9jQWxsVHlwZVwiLGVbZS5KU0RvY1Vua25vd25UeXBlPTMyMF09XCJKU0RvY1Vua25vd25UeXBlXCIsZVtlLkpTRG9jTnVsbGFibGVUeXBlPTMyMV09XCJKU0RvY051bGxhYmxlVHlwZVwiLGVbZS5KU0RvY05vbk51bGxhYmxlVHlwZT0zMjJdPVwiSlNEb2NOb25OdWxsYWJsZVR5cGVcIixlW2UuSlNEb2NPcHRpb25hbFR5cGU9MzIzXT1cIkpTRG9jT3B0aW9uYWxUeXBlXCIsZVtlLkpTRG9jRnVuY3Rpb25UeXBlPTMyNF09XCJKU0RvY0Z1bmN0aW9uVHlwZVwiLGVbZS5KU0RvY1ZhcmlhZGljVHlwZT0zMjVdPVwiSlNEb2NWYXJpYWRpY1R5cGVcIixlW2UuSlNEb2NOYW1lcGF0aFR5cGU9MzI2XT1cIkpTRG9jTmFtZXBhdGhUeXBlXCIsZVtlLkpTRG9jPTMyN109XCJKU0RvY1wiLGVbZS5KU0RvY0NvbW1lbnQ9MzI3XT1cIkpTRG9jQ29tbWVudFwiLGVbZS5KU0RvY1RleHQ9MzI4XT1cIkpTRG9jVGV4dFwiLGVbZS5KU0RvY1R5cGVMaXRlcmFsPTMyOV09XCJKU0RvY1R5cGVMaXRlcmFsXCIsZVtlLkpTRG9jU2lnbmF0dXJlPTMzMF09XCJKU0RvY1NpZ25hdHVyZVwiLGVbZS5KU0RvY0xpbms9MzMxXT1cIkpTRG9jTGlua1wiLGVbZS5KU0RvY0xpbmtDb2RlPTMzMl09XCJKU0RvY0xpbmtDb2RlXCIsZVtlLkpTRG9jTGlua1BsYWluPTMzM109XCJKU0RvY0xpbmtQbGFpblwiLGVbZS5KU0RvY1RhZz0zMzRdPVwiSlNEb2NUYWdcIixlW2UuSlNEb2NBdWdtZW50c1RhZz0zMzVdPVwiSlNEb2NBdWdtZW50c1RhZ1wiLGVbZS5KU0RvY0ltcGxlbWVudHNUYWc9MzM2XT1cIkpTRG9jSW1wbGVtZW50c1RhZ1wiLGVbZS5KU0RvY0F1dGhvclRhZz0zMzddPVwiSlNEb2NBdXRob3JUYWdcIixlW2UuSlNEb2NEZXByZWNhdGVkVGFnPTMzOF09XCJKU0RvY0RlcHJlY2F0ZWRUYWdcIixlW2UuSlNEb2NDbGFzc1RhZz0zMzldPVwiSlNEb2NDbGFzc1RhZ1wiLGVbZS5KU0RvY1B1YmxpY1RhZz0zNDBdPVwiSlNEb2NQdWJsaWNUYWdcIixlW2UuSlNEb2NQcml2YXRlVGFnPTM0MV09XCJKU0RvY1ByaXZhdGVUYWdcIixlW2UuSlNEb2NQcm90ZWN0ZWRUYWc9MzQyXT1cIkpTRG9jUHJvdGVjdGVkVGFnXCIsZVtlLkpTRG9jUmVhZG9ubHlUYWc9MzQzXT1cIkpTRG9jUmVhZG9ubHlUYWdcIixlW2UuSlNEb2NPdmVycmlkZVRhZz0zNDRdPVwiSlNEb2NPdmVycmlkZVRhZ1wiLGVbZS5KU0RvY0NhbGxiYWNrVGFnPTM0NV09XCJKU0RvY0NhbGxiYWNrVGFnXCIsZVtlLkpTRG9jT3ZlcmxvYWRUYWc9MzQ2XT1cIkpTRG9jT3ZlcmxvYWRUYWdcIixlW2UuSlNEb2NFbnVtVGFnPTM0N109XCJKU0RvY0VudW1UYWdcIixlW2UuSlNEb2NQYXJhbWV0ZXJUYWc9MzQ4XT1cIkpTRG9jUGFyYW1ldGVyVGFnXCIsZVtlLkpTRG9jUmV0dXJuVGFnPTM0OV09XCJKU0RvY1JldHVyblRhZ1wiLGVbZS5KU0RvY1RoaXNUYWc9MzUwXT1cIkpTRG9jVGhpc1RhZ1wiLGVbZS5KU0RvY1R5cGVUYWc9MzUxXT1cIkpTRG9jVHlwZVRhZ1wiLGVbZS5KU0RvY1RlbXBsYXRlVGFnPTM1Ml09XCJKU0RvY1RlbXBsYXRlVGFnXCIsZVtlLkpTRG9jVHlwZWRlZlRhZz0zNTNdPVwiSlNEb2NUeXBlZGVmVGFnXCIsZVtlLkpTRG9jU2VlVGFnPTM1NF09XCJKU0RvY1NlZVRhZ1wiLGVbZS5KU0RvY1Byb3BlcnR5VGFnPTM1NV09XCJKU0RvY1Byb3BlcnR5VGFnXCIsZVtlLkpTRG9jVGhyb3dzVGFnPTM1Nl09XCJKU0RvY1Rocm93c1RhZ1wiLGVbZS5KU0RvY1NhdGlzZmllc1RhZz0zNTddPVwiSlNEb2NTYXRpc2ZpZXNUYWdcIixlW2UuU3ludGF4TGlzdD0zNThdPVwiU3ludGF4TGlzdFwiLGVbZS5Ob3RFbWl0dGVkU3RhdGVtZW50PTM1OV09XCJOb3RFbWl0dGVkU3RhdGVtZW50XCIsZVtlLlBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9uPTM2MF09XCJQYXJ0aWFsbHlFbWl0dGVkRXhwcmVzc2lvblwiLGVbZS5Db21tYUxpc3RFeHByZXNzaW9uPTM2MV09XCJDb21tYUxpc3RFeHByZXNzaW9uXCIsZVtlLlN5bnRoZXRpY1JlZmVyZW5jZUV4cHJlc3Npb249MzYyXT1cIlN5bnRoZXRpY1JlZmVyZW5jZUV4cHJlc3Npb25cIixlW2UuQ291bnQ9MzYzXT1cIkNvdW50XCIsZVtlLkZpcnN0QXNzaWdubWVudD02NF09XCJGaXJzdEFzc2lnbm1lbnRcIixlW2UuTGFzdEFzc2lnbm1lbnQ9NzldPVwiTGFzdEFzc2lnbm1lbnRcIixlW2UuRmlyc3RDb21wb3VuZEFzc2lnbm1lbnQ9NjVdPVwiRmlyc3RDb21wb3VuZEFzc2lnbm1lbnRcIixlW2UuTGFzdENvbXBvdW5kQXNzaWdubWVudD03OV09XCJMYXN0Q29tcG91bmRBc3NpZ25tZW50XCIsZVtlLkZpcnN0UmVzZXJ2ZWRXb3JkPTgzXT1cIkZpcnN0UmVzZXJ2ZWRXb3JkXCIsZVtlLkxhc3RSZXNlcnZlZFdvcmQ9MTE4XT1cIkxhc3RSZXNlcnZlZFdvcmRcIixlW2UuRmlyc3RLZXl3b3JkPTgzXT1cIkZpcnN0S2V5d29yZFwiLGVbZS5MYXN0S2V5d29yZD0xNjVdPVwiTGFzdEtleXdvcmRcIixlW2UuRmlyc3RGdXR1cmVSZXNlcnZlZFdvcmQ9MTE5XT1cIkZpcnN0RnV0dXJlUmVzZXJ2ZWRXb3JkXCIsZVtlLkxhc3RGdXR1cmVSZXNlcnZlZFdvcmQ9MTI3XT1cIkxhc3RGdXR1cmVSZXNlcnZlZFdvcmRcIixlW2UuRmlyc3RUeXBlTm9kZT0xODJdPVwiRmlyc3RUeXBlTm9kZVwiLGVbZS5MYXN0VHlwZU5vZGU9MjA1XT1cIkxhc3RUeXBlTm9kZVwiLGVbZS5GaXJzdFB1bmN0dWF0aW9uPTE5XT1cIkZpcnN0UHVuY3R1YXRpb25cIixlW2UuTGFzdFB1bmN0dWF0aW9uPTc5XT1cIkxhc3RQdW5jdHVhdGlvblwiLGVbZS5GaXJzdFRva2VuPTBdPVwiRmlyc3RUb2tlblwiLGVbZS5MYXN0VG9rZW49MTY1XT1cIkxhc3RUb2tlblwiLGVbZS5GaXJzdFRyaXZpYVRva2VuPTJdPVwiRmlyc3RUcml2aWFUb2tlblwiLGVbZS5MYXN0VHJpdmlhVG9rZW49N109XCJMYXN0VHJpdmlhVG9rZW5cIixlW2UuRmlyc3RMaXRlcmFsVG9rZW49OV09XCJGaXJzdExpdGVyYWxUb2tlblwiLGVbZS5MYXN0TGl0ZXJhbFRva2VuPTE1XT1cIkxhc3RMaXRlcmFsVG9rZW5cIixlW2UuRmlyc3RUZW1wbGF0ZVRva2VuPTE1XT1cIkZpcnN0VGVtcGxhdGVUb2tlblwiLGVbZS5MYXN0VGVtcGxhdGVUb2tlbj0xOF09XCJMYXN0VGVtcGxhdGVUb2tlblwiLGVbZS5GaXJzdEJpbmFyeU9wZXJhdG9yPTMwXT1cIkZpcnN0QmluYXJ5T3BlcmF0b3JcIixlW2UuTGFzdEJpbmFyeU9wZXJhdG9yPTc5XT1cIkxhc3RCaW5hcnlPcGVyYXRvclwiLGVbZS5GaXJzdFN0YXRlbWVudD0yNDNdPVwiRmlyc3RTdGF0ZW1lbnRcIixlW2UuTGFzdFN0YXRlbWVudD0yNTldPVwiTGFzdFN0YXRlbWVudFwiLGVbZS5GaXJzdE5vZGU9MTY2XT1cIkZpcnN0Tm9kZVwiLGVbZS5GaXJzdEpTRG9jTm9kZT0zMTZdPVwiRmlyc3RKU0RvY05vZGVcIixlW2UuTGFzdEpTRG9jTm9kZT0zNTddPVwiTGFzdEpTRG9jTm9kZVwiLGVbZS5GaXJzdEpTRG9jVGFnTm9kZT0zMzRdPVwiRmlyc3RKU0RvY1RhZ05vZGVcIixlW2UuTGFzdEpTRG9jVGFnTm9kZT0zNTddPVwiTGFzdEpTRG9jVGFnTm9kZVwiLGVbZS5GaXJzdENvbnRleHR1YWxLZXl3b3JkPTEyOF09XCJGaXJzdENvbnRleHR1YWxLZXl3b3JkXCIsZVtlLkxhc3RDb250ZXh0dWFsS2V5d29yZD0xNjVdPVwiTGFzdENvbnRleHR1YWxLZXl3b3JkXCIsZSkpKGVkfHx7fSksdGQ9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuTGV0PTFdPVwiTGV0XCIsZVtlLkNvbnN0PTJdPVwiQ29uc3RcIixlW2UuVXNpbmc9NF09XCJVc2luZ1wiLGVbZS5Bd2FpdFVzaW5nPTZdPVwiQXdhaXRVc2luZ1wiLGVbZS5OZXN0ZWROYW1lc3BhY2U9OF09XCJOZXN0ZWROYW1lc3BhY2VcIixlW2UuU3ludGhlc2l6ZWQ9MTZdPVwiU3ludGhlc2l6ZWRcIixlW2UuTmFtZXNwYWNlPTMyXT1cIk5hbWVzcGFjZVwiLGVbZS5PcHRpb25hbENoYWluPTY0XT1cIk9wdGlvbmFsQ2hhaW5cIixlW2UuRXhwb3J0Q29udGV4dD0xMjhdPVwiRXhwb3J0Q29udGV4dFwiLGVbZS5Db250YWluc1RoaXM9MjU2XT1cIkNvbnRhaW5zVGhpc1wiLGVbZS5IYXNJbXBsaWNpdFJldHVybj01MTJdPVwiSGFzSW1wbGljaXRSZXR1cm5cIixlW2UuSGFzRXhwbGljaXRSZXR1cm49MTAyNF09XCJIYXNFeHBsaWNpdFJldHVyblwiLGVbZS5HbG9iYWxBdWdtZW50YXRpb249MjA0OF09XCJHbG9iYWxBdWdtZW50YXRpb25cIixlW2UuSGFzQXN5bmNGdW5jdGlvbnM9NDA5Nl09XCJIYXNBc3luY0Z1bmN0aW9uc1wiLGVbZS5EaXNhbGxvd0luQ29udGV4dD04MTkyXT1cIkRpc2FsbG93SW5Db250ZXh0XCIsZVtlLllpZWxkQ29udGV4dD0xNjM4NF09XCJZaWVsZENvbnRleHRcIixlW2UuRGVjb3JhdG9yQ29udGV4dD0zMjc2OF09XCJEZWNvcmF0b3JDb250ZXh0XCIsZVtlLkF3YWl0Q29udGV4dD02NTUzNl09XCJBd2FpdENvbnRleHRcIixlW2UuRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dD0xMzEwNzJdPVwiRGlzYWxsb3dDb25kaXRpb25hbFR5cGVzQ29udGV4dFwiLGVbZS5UaGlzTm9kZUhhc0Vycm9yPTI2MjE0NF09XCJUaGlzTm9kZUhhc0Vycm9yXCIsZVtlLkphdmFTY3JpcHRGaWxlPTUyNDI4OF09XCJKYXZhU2NyaXB0RmlsZVwiLGVbZS5UaGlzTm9kZU9yQW55U3ViTm9kZXNIYXNFcnJvcj0xMDQ4NTc2XT1cIlRoaXNOb2RlT3JBbnlTdWJOb2Rlc0hhc0Vycm9yXCIsZVtlLkhhc0FnZ3JlZ2F0ZWRDaGlsZERhdGE9MjA5NzE1Ml09XCJIYXNBZ2dyZWdhdGVkQ2hpbGREYXRhXCIsZVtlLlBvc3NpYmx5Q29udGFpbnNEeW5hbWljSW1wb3J0PTQxOTQzMDRdPVwiUG9zc2libHlDb250YWluc0R5bmFtaWNJbXBvcnRcIixlW2UuUG9zc2libHlDb250YWluc0ltcG9ydE1ldGE9ODM4ODYwOF09XCJQb3NzaWJseUNvbnRhaW5zSW1wb3J0TWV0YVwiLGVbZS5KU0RvYz0xNjc3NzIxNl09XCJKU0RvY1wiLGVbZS5BbWJpZW50PTMzNTU0NDMyXT1cIkFtYmllbnRcIixlW2UuSW5XaXRoU3RhdGVtZW50PTY3MTA4ODY0XT1cIkluV2l0aFN0YXRlbWVudFwiLGVbZS5Kc29uRmlsZT0xMzQyMTc3MjhdPVwiSnNvbkZpbGVcIixlW2UuVHlwZUNhY2hlZD0yNjg0MzU0NTZdPVwiVHlwZUNhY2hlZFwiLGVbZS5EZXByZWNhdGVkPTUzNjg3MDkxMl09XCJEZXByZWNhdGVkXCIsZVtlLkJsb2NrU2NvcGVkPTddPVwiQmxvY2tTY29wZWRcIixlW2UuQ29uc3RhbnQ9Nl09XCJDb25zdGFudFwiLGVbZS5SZWFjaGFiaWxpdHlDaGVja0ZsYWdzPTE1MzZdPVwiUmVhY2hhYmlsaXR5Q2hlY2tGbGFnc1wiLGVbZS5SZWFjaGFiaWxpdHlBbmRFbWl0RmxhZ3M9NTYzMl09XCJSZWFjaGFiaWxpdHlBbmRFbWl0RmxhZ3NcIixlW2UuQ29udGV4dEZsYWdzPTEwMTQ0MTUzNl09XCJDb250ZXh0RmxhZ3NcIixlW2UuVHlwZUV4Y2x1ZGVzRmxhZ3M9ODE5MjBdPVwiVHlwZUV4Y2x1ZGVzRmxhZ3NcIixlW2UuUGVybWFuZW50bHlTZXRJbmNyZW1lbnRhbEZsYWdzPTEyNTgyOTEyXT1cIlBlcm1hbmVudGx5U2V0SW5jcmVtZW50YWxGbGFnc1wiLGVbZS5JZGVudGlmaWVySGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlPTI1Nl09XCJJZGVudGlmaWVySGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlXCIsZVtlLklkZW50aWZpZXJJc0luSlNEb2NOYW1lc3BhY2U9NDA5Nl09XCJJZGVudGlmaWVySXNJbkpTRG9jTmFtZXNwYWNlXCIsZSkpKHRkfHx7fSkscmQ9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuRXhwb3J0PTFdPVwiRXhwb3J0XCIsZVtlLkFtYmllbnQ9Ml09XCJBbWJpZW50XCIsZVtlLlB1YmxpYz00XT1cIlB1YmxpY1wiLGVbZS5Qcml2YXRlPThdPVwiUHJpdmF0ZVwiLGVbZS5Qcm90ZWN0ZWQ9MTZdPVwiUHJvdGVjdGVkXCIsZVtlLlN0YXRpYz0zMl09XCJTdGF0aWNcIixlW2UuUmVhZG9ubHk9NjRdPVwiUmVhZG9ubHlcIixlW2UuQWNjZXNzb3I9MTI4XT1cIkFjY2Vzc29yXCIsZVtlLkFic3RyYWN0PTI1Nl09XCJBYnN0cmFjdFwiLGVbZS5Bc3luYz01MTJdPVwiQXN5bmNcIixlW2UuRGVmYXVsdD0xMDI0XT1cIkRlZmF1bHRcIixlW2UuQ29uc3Q9MjA0OF09XCJDb25zdFwiLGVbZS5IYXNDb21wdXRlZEpTRG9jTW9kaWZpZXJzPTQwOTZdPVwiSGFzQ29tcHV0ZWRKU0RvY01vZGlmaWVyc1wiLGVbZS5EZXByZWNhdGVkPTgxOTJdPVwiRGVwcmVjYXRlZFwiLGVbZS5PdmVycmlkZT0xNjM4NF09XCJPdmVycmlkZVwiLGVbZS5Jbj0zMjc2OF09XCJJblwiLGVbZS5PdXQ9NjU1MzZdPVwiT3V0XCIsZVtlLkRlY29yYXRvcj0xMzEwNzJdPVwiRGVjb3JhdG9yXCIsZVtlLkhhc0NvbXB1dGVkRmxhZ3M9NTM2ODcwOTEyXT1cIkhhc0NvbXB1dGVkRmxhZ3NcIixlW2UuQWNjZXNzaWJpbGl0eU1vZGlmaWVyPTI4XT1cIkFjY2Vzc2liaWxpdHlNb2RpZmllclwiLGVbZS5QYXJhbWV0ZXJQcm9wZXJ0eU1vZGlmaWVyPTE2NDc2XT1cIlBhcmFtZXRlclByb3BlcnR5TW9kaWZpZXJcIixlW2UuTm9uUHVibGljQWNjZXNzaWJpbGl0eU1vZGlmaWVyPTI0XT1cIk5vblB1YmxpY0FjY2Vzc2liaWxpdHlNb2RpZmllclwiLGVbZS5UeXBlU2NyaXB0TW9kaWZpZXI9MTE3MDg2XT1cIlR5cGVTY3JpcHRNb2RpZmllclwiLGVbZS5FeHBvcnREZWZhdWx0PTEwMjVdPVwiRXhwb3J0RGVmYXVsdFwiLGVbZS5BbGw9MjU4MDQ3XT1cIkFsbFwiLGVbZS5Nb2RpZmllcj0xMjY5NzVdPVwiTW9kaWZpZXJcIixlKSkocmR8fHt9KSxseT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5JbnRyaW5zaWNOYW1lZEVsZW1lbnQ9MV09XCJJbnRyaW5zaWNOYW1lZEVsZW1lbnRcIixlW2UuSW50cmluc2ljSW5kZXhlZEVsZW1lbnQ9Ml09XCJJbnRyaW5zaWNJbmRleGVkRWxlbWVudFwiLGVbZS5JbnRyaW5zaWNFbGVtZW50PTNdPVwiSW50cmluc2ljRWxlbWVudFwiLGUpKShseXx8e30pLG5kPShlPT4oZVtlLlN1Y2NlZWRlZD0xXT1cIlN1Y2NlZWRlZFwiLGVbZS5GYWlsZWQ9Ml09XCJGYWlsZWRcIixlW2UuUmVwb3J0ZWQ9NF09XCJSZXBvcnRlZFwiLGVbZS5SZXBvcnRzVW5tZWFzdXJhYmxlPThdPVwiUmVwb3J0c1VubWVhc3VyYWJsZVwiLGVbZS5SZXBvcnRzVW5yZWxpYWJsZT0xNl09XCJSZXBvcnRzVW5yZWxpYWJsZVwiLGVbZS5SZXBvcnRzTWFzaz0yNF09XCJSZXBvcnRzTWFza1wiLGUpKShuZHx8e30pLHV5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkF1dG89MV09XCJBdXRvXCIsZVtlLkxvb3A9Ml09XCJMb29wXCIsZVtlLlVuaXF1ZT0zXT1cIlVuaXF1ZVwiLGVbZS5Ob2RlPTRdPVwiTm9kZVwiLGVbZS5LaW5kTWFzaz03XT1cIktpbmRNYXNrXCIsZVtlLlJlc2VydmVkSW5OZXN0ZWRTY29wZXM9OF09XCJSZXNlcnZlZEluTmVzdGVkU2NvcGVzXCIsZVtlLk9wdGltaXN0aWM9MTZdPVwiT3B0aW1pc3RpY1wiLGVbZS5GaWxlTGV2ZWw9MzJdPVwiRmlsZUxldmVsXCIsZVtlLkFsbG93TmFtZVN1YnN0aXR1dGlvbj02NF09XCJBbGxvd05hbWVTdWJzdGl0dXRpb25cIixlKSkodXl8fHt9KSxweT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5QcmVjZWRpbmdMaW5lQnJlYWs9MV09XCJQcmVjZWRpbmdMaW5lQnJlYWtcIixlW2UuUHJlY2VkaW5nSlNEb2NDb21tZW50PTJdPVwiUHJlY2VkaW5nSlNEb2NDb21tZW50XCIsZVtlLlVudGVybWluYXRlZD00XT1cIlVudGVybWluYXRlZFwiLGVbZS5FeHRlbmRlZFVuaWNvZGVFc2NhcGU9OF09XCJFeHRlbmRlZFVuaWNvZGVFc2NhcGVcIixlW2UuU2NpZW50aWZpYz0xNl09XCJTY2llbnRpZmljXCIsZVtlLk9jdGFsPTMyXT1cIk9jdGFsXCIsZVtlLkhleFNwZWNpZmllcj02NF09XCJIZXhTcGVjaWZpZXJcIixlW2UuQmluYXJ5U3BlY2lmaWVyPTEyOF09XCJCaW5hcnlTcGVjaWZpZXJcIixlW2UuT2N0YWxTcGVjaWZpZXI9MjU2XT1cIk9jdGFsU3BlY2lmaWVyXCIsZVtlLkNvbnRhaW5zU2VwYXJhdG9yPTUxMl09XCJDb250YWluc1NlcGFyYXRvclwiLGVbZS5Vbmljb2RlRXNjYXBlPTEwMjRdPVwiVW5pY29kZUVzY2FwZVwiLGVbZS5Db250YWluc0ludmFsaWRFc2NhcGU9MjA0OF09XCJDb250YWluc0ludmFsaWRFc2NhcGVcIixlW2UuSGV4RXNjYXBlPTQwOTZdPVwiSGV4RXNjYXBlXCIsZVtlLkNvbnRhaW5zTGVhZGluZ1plcm89ODE5Ml09XCJDb250YWluc0xlYWRpbmdaZXJvXCIsZVtlLkNvbnRhaW5zSW52YWxpZFNlcGFyYXRvcj0xNjM4NF09XCJDb250YWluc0ludmFsaWRTZXBhcmF0b3JcIixlW2UuQmluYXJ5T3JPY3RhbFNwZWNpZmllcj0zODRdPVwiQmluYXJ5T3JPY3RhbFNwZWNpZmllclwiLGVbZS5XaXRoU3BlY2lmaWVyPTQ0OF09XCJXaXRoU3BlY2lmaWVyXCIsZVtlLlN0cmluZ0xpdGVyYWxGbGFncz03MTc2XT1cIlN0cmluZ0xpdGVyYWxGbGFnc1wiLGVbZS5OdW1lcmljTGl0ZXJhbEZsYWdzPTI1NTg0XT1cIk51bWVyaWNMaXRlcmFsRmxhZ3NcIixlW2UuVGVtcGxhdGVMaXRlcmFsTGlrZUZsYWdzPTcxNzZdPVwiVGVtcGxhdGVMaXRlcmFsTGlrZUZsYWdzXCIsZVtlLklzSW52YWxpZD0yNjY1Nl09XCJJc0ludmFsaWRcIixlKSkocHl8fHt9KSxibD0oZT0+KGVbZS5VbnJlYWNoYWJsZT0xXT1cIlVucmVhY2hhYmxlXCIsZVtlLlN0YXJ0PTJdPVwiU3RhcnRcIixlW2UuQnJhbmNoTGFiZWw9NF09XCJCcmFuY2hMYWJlbFwiLGVbZS5Mb29wTGFiZWw9OF09XCJMb29wTGFiZWxcIixlW2UuQXNzaWdubWVudD0xNl09XCJBc3NpZ25tZW50XCIsZVtlLlRydWVDb25kaXRpb249MzJdPVwiVHJ1ZUNvbmRpdGlvblwiLGVbZS5GYWxzZUNvbmRpdGlvbj02NF09XCJGYWxzZUNvbmRpdGlvblwiLGVbZS5Td2l0Y2hDbGF1c2U9MTI4XT1cIlN3aXRjaENsYXVzZVwiLGVbZS5BcnJheU11dGF0aW9uPTI1Nl09XCJBcnJheU11dGF0aW9uXCIsZVtlLkNhbGw9NTEyXT1cIkNhbGxcIixlW2UuUmVkdWNlTGFiZWw9MTAyNF09XCJSZWR1Y2VMYWJlbFwiLGVbZS5SZWZlcmVuY2VkPTIwNDhdPVwiUmVmZXJlbmNlZFwiLGVbZS5TaGFyZWQ9NDA5Nl09XCJTaGFyZWRcIixlW2UuTGFiZWw9MTJdPVwiTGFiZWxcIixlW2UuQ29uZGl0aW9uPTk2XT1cIkNvbmRpdGlvblwiLGUpKShibHx8e30pLGZ5PShlPT4oZVtlLkV4cGVjdEVycm9yPTBdPVwiRXhwZWN0RXJyb3JcIixlW2UuSWdub3JlPTFdPVwiSWdub3JlXCIsZSkpKGZ5fHx7fSksaWQ9Y2xhc3N7fSxkeT0oZT0+KGVbZS5Sb290RmlsZT0wXT1cIlJvb3RGaWxlXCIsZVtlLlNvdXJjZUZyb21Qcm9qZWN0UmVmZXJlbmNlPTFdPVwiU291cmNlRnJvbVByb2plY3RSZWZlcmVuY2VcIixlW2UuT3V0cHV0RnJvbVByb2plY3RSZWZlcmVuY2U9Ml09XCJPdXRwdXRGcm9tUHJvamVjdFJlZmVyZW5jZVwiLGVbZS5JbXBvcnQ9M109XCJJbXBvcnRcIixlW2UuUmVmZXJlbmNlRmlsZT00XT1cIlJlZmVyZW5jZUZpbGVcIixlW2UuVHlwZVJlZmVyZW5jZURpcmVjdGl2ZT01XT1cIlR5cGVSZWZlcmVuY2VEaXJlY3RpdmVcIixlW2UuTGliRmlsZT02XT1cIkxpYkZpbGVcIixlW2UuTGliUmVmZXJlbmNlRGlyZWN0aXZlPTddPVwiTGliUmVmZXJlbmNlRGlyZWN0aXZlXCIsZVtlLkF1dG9tYXRpY1R5cGVEaXJlY3RpdmVGaWxlPThdPVwiQXV0b21hdGljVHlwZURpcmVjdGl2ZUZpbGVcIixlKSkoZHl8fHt9KSxteT0oZT0+KGVbZS5GaWxlUHJlcHJvY2Vzc2luZ1JlZmVyZW5jZWREaWFnbm9zdGljPTBdPVwiRmlsZVByZXByb2Nlc3NpbmdSZWZlcmVuY2VkRGlhZ25vc3RpY1wiLGVbZS5GaWxlUHJlcHJvY2Vzc2luZ0ZpbGVFeHBsYWluaW5nRGlhZ25vc3RpYz0xXT1cIkZpbGVQcmVwcm9jZXNzaW5nRmlsZUV4cGxhaW5pbmdEaWFnbm9zdGljXCIsZVtlLlJlc29sdXRpb25EaWFnbm9zdGljcz0yXT1cIlJlc29sdXRpb25EaWFnbm9zdGljc1wiLGUpKShteXx8e30pLGh5PShlPT4oZVtlLkpzPTBdPVwiSnNcIixlW2UuRHRzPTFdPVwiRHRzXCIsZSkpKGh5fHx7fSkseXk9KGU9PihlW2UuTm90PTBdPVwiTm90XCIsZVtlLlNhZmVNb2R1bGVzPTFdPVwiU2FmZU1vZHVsZXNcIixlW2UuQ29tcGxldGVseT0yXT1cIkNvbXBsZXRlbHlcIixlKSkoeXl8fHt9KSxneT0oZT0+KGVbZS5TdWNjZXNzPTBdPVwiU3VjY2Vzc1wiLGVbZS5EaWFnbm9zdGljc1ByZXNlbnRfT3V0cHV0c1NraXBwZWQ9MV09XCJEaWFnbm9zdGljc1ByZXNlbnRfT3V0cHV0c1NraXBwZWRcIixlW2UuRGlhZ25vc3RpY3NQcmVzZW50X091dHB1dHNHZW5lcmF0ZWQ9Ml09XCJEaWFnbm9zdGljc1ByZXNlbnRfT3V0cHV0c0dlbmVyYXRlZFwiLGVbZS5JbnZhbGlkUHJvamVjdF9PdXRwdXRzU2tpcHBlZD0zXT1cIkludmFsaWRQcm9qZWN0X091dHB1dHNTa2lwcGVkXCIsZVtlLlByb2plY3RSZWZlcmVuY2VDeWNsZV9PdXRwdXRzU2tpcHBlZD00XT1cIlByb2plY3RSZWZlcmVuY2VDeWNsZV9PdXRwdXRzU2tpcHBlZFwiLGUpKShneXx8e30pLGJ5PShlPT4oZVtlLk9rPTBdPVwiT2tcIixlW2UuTmVlZHNPdmVycmlkZT0xXT1cIk5lZWRzT3ZlcnJpZGVcIixlW2UuSGFzSW52YWxpZE92ZXJyaWRlPTJdPVwiSGFzSW52YWxpZE92ZXJyaWRlXCIsZSkpKGJ5fHx7fSksdnk9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuTGl0ZXJhbD0xXT1cIkxpdGVyYWxcIixlW2UuU3VidHlwZT0yXT1cIlN1YnR5cGVcIixlKSkodnl8fHt9KSxUeT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5TaWduYXR1cmU9MV09XCJTaWduYXR1cmVcIixlW2UuTm9Db25zdHJhaW50cz0yXT1cIk5vQ29uc3RyYWludHNcIixlW2UuQ29tcGxldGlvbnM9NF09XCJDb21wbGV0aW9uc1wiLGVbZS5Ta2lwQmluZGluZ1BhdHRlcm5zPThdPVwiU2tpcEJpbmRpbmdQYXR0ZXJuc1wiLGUpKShUeXx8e30pLFN5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLk5vVHJ1bmNhdGlvbj0xXT1cIk5vVHJ1bmNhdGlvblwiLGVbZS5Xcml0ZUFycmF5QXNHZW5lcmljVHlwZT0yXT1cIldyaXRlQXJyYXlBc0dlbmVyaWNUeXBlXCIsZVtlLkdlbmVyYXRlTmFtZXNGb3JTaGFkb3dlZFR5cGVQYXJhbXM9NF09XCJHZW5lcmF0ZU5hbWVzRm9yU2hhZG93ZWRUeXBlUGFyYW1zXCIsZVtlLlVzZVN0cnVjdHVyYWxGYWxsYmFjaz04XT1cIlVzZVN0cnVjdHVyYWxGYWxsYmFja1wiLGVbZS5Gb3JiaWRJbmRleGVkQWNjZXNzU3ltYm9sUmVmZXJlbmNlcz0xNl09XCJGb3JiaWRJbmRleGVkQWNjZXNzU3ltYm9sUmVmZXJlbmNlc1wiLGVbZS5Xcml0ZVR5cGVBcmd1bWVudHNPZlNpZ25hdHVyZT0zMl09XCJXcml0ZVR5cGVBcmd1bWVudHNPZlNpZ25hdHVyZVwiLGVbZS5Vc2VGdWxseVF1YWxpZmllZFR5cGU9NjRdPVwiVXNlRnVsbHlRdWFsaWZpZWRUeXBlXCIsZVtlLlVzZU9ubHlFeHRlcm5hbEFsaWFzaW5nPTEyOF09XCJVc2VPbmx5RXh0ZXJuYWxBbGlhc2luZ1wiLGVbZS5TdXBwcmVzc0FueVJldHVyblR5cGU9MjU2XT1cIlN1cHByZXNzQW55UmV0dXJuVHlwZVwiLGVbZS5Xcml0ZVR5cGVQYXJhbWV0ZXJzSW5RdWFsaWZpZWROYW1lPTUxMl09XCJXcml0ZVR5cGVQYXJhbWV0ZXJzSW5RdWFsaWZpZWROYW1lXCIsZVtlLk11bHRpbGluZU9iamVjdExpdGVyYWxzPTEwMjRdPVwiTXVsdGlsaW5lT2JqZWN0TGl0ZXJhbHNcIixlW2UuV3JpdGVDbGFzc0V4cHJlc3Npb25Bc1R5cGVMaXRlcmFsPTIwNDhdPVwiV3JpdGVDbGFzc0V4cHJlc3Npb25Bc1R5cGVMaXRlcmFsXCIsZVtlLlVzZVR5cGVPZkZ1bmN0aW9uPTQwOTZdPVwiVXNlVHlwZU9mRnVuY3Rpb25cIixlW2UuT21pdFBhcmFtZXRlck1vZGlmaWVycz04MTkyXT1cIk9taXRQYXJhbWV0ZXJNb2RpZmllcnNcIixlW2UuVXNlQWxpYXNEZWZpbmVkT3V0c2lkZUN1cnJlbnRTY29wZT0xNjM4NF09XCJVc2VBbGlhc0RlZmluZWRPdXRzaWRlQ3VycmVudFNjb3BlXCIsZVtlLlVzZVNpbmdsZVF1b3Rlc0ZvclN0cmluZ0xpdGVyYWxUeXBlPTI2ODQzNTQ1Nl09XCJVc2VTaW5nbGVRdW90ZXNGb3JTdHJpbmdMaXRlcmFsVHlwZVwiLGVbZS5Ob1R5cGVSZWR1Y3Rpb249NTM2ODcwOTEyXT1cIk5vVHlwZVJlZHVjdGlvblwiLGVbZS5PbWl0VGhpc1BhcmFtZXRlcj0zMzU1NDQzMl09XCJPbWl0VGhpc1BhcmFtZXRlclwiLGVbZS5BbGxvd1RoaXNJbk9iamVjdExpdGVyYWw9MzI3NjhdPVwiQWxsb3dUaGlzSW5PYmplY3RMaXRlcmFsXCIsZVtlLkFsbG93UXVhbGlmaWVkTmFtZUluUGxhY2VPZklkZW50aWZpZXI9NjU1MzZdPVwiQWxsb3dRdWFsaWZpZWROYW1lSW5QbGFjZU9mSWRlbnRpZmllclwiLGVbZS5BbGxvd0Fub255bW91c0lkZW50aWZpZXI9MTMxMDcyXT1cIkFsbG93QW5vbnltb3VzSWRlbnRpZmllclwiLGVbZS5BbGxvd0VtcHR5VW5pb25PckludGVyc2VjdGlvbj0yNjIxNDRdPVwiQWxsb3dFbXB0eVVuaW9uT3JJbnRlcnNlY3Rpb25cIixlW2UuQWxsb3dFbXB0eVR1cGxlPTUyNDI4OF09XCJBbGxvd0VtcHR5VHVwbGVcIixlW2UuQWxsb3dVbmlxdWVFU1N5bWJvbFR5cGU9MTA0ODU3Nl09XCJBbGxvd1VuaXF1ZUVTU3ltYm9sVHlwZVwiLGVbZS5BbGxvd0VtcHR5SW5kZXhJbmZvVHlwZT0yMDk3MTUyXT1cIkFsbG93RW1wdHlJbmRleEluZm9UeXBlXCIsZVtlLldyaXRlQ29tcHV0ZWRQcm9wcz0xMDczNzQxODI0XT1cIldyaXRlQ29tcHV0ZWRQcm9wc1wiLGVbZS5BbGxvd05vZGVNb2R1bGVzUmVsYXRpdmVQYXRocz02NzEwODg2NF09XCJBbGxvd05vZGVNb2R1bGVzUmVsYXRpdmVQYXRoc1wiLGVbZS5Eb05vdEluY2x1ZGVTeW1ib2xDaGFpbj0xMzQyMTc3MjhdPVwiRG9Ob3RJbmNsdWRlU3ltYm9sQ2hhaW5cIixlW2UuSWdub3JlRXJyb3JzPTcwMjIxODI0XT1cIklnbm9yZUVycm9yc1wiLGVbZS5Jbk9iamVjdFR5cGVMaXRlcmFsPTQxOTQzMDRdPVwiSW5PYmplY3RUeXBlTGl0ZXJhbFwiLGVbZS5JblR5cGVBbGlhcz04Mzg4NjA4XT1cIkluVHlwZUFsaWFzXCIsZVtlLkluSW5pdGlhbEVudGl0eU5hbWU9MTY3NzcyMTZdPVwiSW5Jbml0aWFsRW50aXR5TmFtZVwiLGUpKShTeXx8e30pLHh5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLk5vVHJ1bmNhdGlvbj0xXT1cIk5vVHJ1bmNhdGlvblwiLGVbZS5Xcml0ZUFycmF5QXNHZW5lcmljVHlwZT0yXT1cIldyaXRlQXJyYXlBc0dlbmVyaWNUeXBlXCIsZVtlLlVzZVN0cnVjdHVyYWxGYWxsYmFjaz04XT1cIlVzZVN0cnVjdHVyYWxGYWxsYmFja1wiLGVbZS5Xcml0ZVR5cGVBcmd1bWVudHNPZlNpZ25hdHVyZT0zMl09XCJXcml0ZVR5cGVBcmd1bWVudHNPZlNpZ25hdHVyZVwiLGVbZS5Vc2VGdWxseVF1YWxpZmllZFR5cGU9NjRdPVwiVXNlRnVsbHlRdWFsaWZpZWRUeXBlXCIsZVtlLlN1cHByZXNzQW55UmV0dXJuVHlwZT0yNTZdPVwiU3VwcHJlc3NBbnlSZXR1cm5UeXBlXCIsZVtlLk11bHRpbGluZU9iamVjdExpdGVyYWxzPTEwMjRdPVwiTXVsdGlsaW5lT2JqZWN0TGl0ZXJhbHNcIixlW2UuV3JpdGVDbGFzc0V4cHJlc3Npb25Bc1R5cGVMaXRlcmFsPTIwNDhdPVwiV3JpdGVDbGFzc0V4cHJlc3Npb25Bc1R5cGVMaXRlcmFsXCIsZVtlLlVzZVR5cGVPZkZ1bmN0aW9uPTQwOTZdPVwiVXNlVHlwZU9mRnVuY3Rpb25cIixlW2UuT21pdFBhcmFtZXRlck1vZGlmaWVycz04MTkyXT1cIk9taXRQYXJhbWV0ZXJNb2RpZmllcnNcIixlW2UuVXNlQWxpYXNEZWZpbmVkT3V0c2lkZUN1cnJlbnRTY29wZT0xNjM4NF09XCJVc2VBbGlhc0RlZmluZWRPdXRzaWRlQ3VycmVudFNjb3BlXCIsZVtlLlVzZVNpbmdsZVF1b3Rlc0ZvclN0cmluZ0xpdGVyYWxUeXBlPTI2ODQzNTQ1Nl09XCJVc2VTaW5nbGVRdW90ZXNGb3JTdHJpbmdMaXRlcmFsVHlwZVwiLGVbZS5Ob1R5cGVSZWR1Y3Rpb249NTM2ODcwOTEyXT1cIk5vVHlwZVJlZHVjdGlvblwiLGVbZS5PbWl0VGhpc1BhcmFtZXRlcj0zMzU1NDQzMl09XCJPbWl0VGhpc1BhcmFtZXRlclwiLGVbZS5BbGxvd1VuaXF1ZUVTU3ltYm9sVHlwZT0xMDQ4NTc2XT1cIkFsbG93VW5pcXVlRVNTeW1ib2xUeXBlXCIsZVtlLkFkZFVuZGVmaW5lZD0xMzEwNzJdPVwiQWRkVW5kZWZpbmVkXCIsZVtlLldyaXRlQXJyb3dTdHlsZVNpZ25hdHVyZT0yNjIxNDRdPVwiV3JpdGVBcnJvd1N0eWxlU2lnbmF0dXJlXCIsZVtlLkluQXJyYXlUeXBlPTUyNDI4OF09XCJJbkFycmF5VHlwZVwiLGVbZS5JbkVsZW1lbnRUeXBlPTIwOTcxNTJdPVwiSW5FbGVtZW50VHlwZVwiLGVbZS5JbkZpcnN0VHlwZUFyZ3VtZW50PTQxOTQzMDRdPVwiSW5GaXJzdFR5cGVBcmd1bWVudFwiLGVbZS5JblR5cGVBbGlhcz04Mzg4NjA4XT1cIkluVHlwZUFsaWFzXCIsZVtlLk5vZGVCdWlsZGVyRmxhZ3NNYXNrPTg0ODMzMDA5MV09XCJOb2RlQnVpbGRlckZsYWdzTWFza1wiLGUpKSh4eXx8e30pLHd5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLldyaXRlVHlwZVBhcmFtZXRlcnNPckFyZ3VtZW50cz0xXT1cIldyaXRlVHlwZVBhcmFtZXRlcnNPckFyZ3VtZW50c1wiLGVbZS5Vc2VPbmx5RXh0ZXJuYWxBbGlhc2luZz0yXT1cIlVzZU9ubHlFeHRlcm5hbEFsaWFzaW5nXCIsZVtlLkFsbG93QW55Tm9kZUtpbmQ9NF09XCJBbGxvd0FueU5vZGVLaW5kXCIsZVtlLlVzZUFsaWFzRGVmaW5lZE91dHNpZGVDdXJyZW50U2NvcGU9OF09XCJVc2VBbGlhc0RlZmluZWRPdXRzaWRlQ3VycmVudFNjb3BlXCIsZVtlLldyaXRlQ29tcHV0ZWRQcm9wcz0xNl09XCJXcml0ZUNvbXB1dGVkUHJvcHNcIixlW2UuRG9Ob3RJbmNsdWRlU3ltYm9sQ2hhaW49MzJdPVwiRG9Ob3RJbmNsdWRlU3ltYm9sQ2hhaW5cIixlKSkod3l8fHt9KSxDeT0oZT0+KGVbZS5BY2Nlc3NpYmxlPTBdPVwiQWNjZXNzaWJsZVwiLGVbZS5Ob3RBY2Nlc3NpYmxlPTFdPVwiTm90QWNjZXNzaWJsZVwiLGVbZS5DYW5ub3RCZU5hbWVkPTJdPVwiQ2Fubm90QmVOYW1lZFwiLGUpKShDeXx8e30pLEV5PShlPT4oZVtlLlVuaW9uT3JJbnRlcnNlY3Rpb249MF09XCJVbmlvbk9ySW50ZXJzZWN0aW9uXCIsZVtlLlNwcmVhZD0xXT1cIlNwcmVhZFwiLGUpKShFeXx8e30pLEF5PShlPT4oZVtlLlRoaXM9MF09XCJUaGlzXCIsZVtlLklkZW50aWZpZXI9MV09XCJJZGVudGlmaWVyXCIsZVtlLkFzc2VydHNUaGlzPTJdPVwiQXNzZXJ0c1RoaXNcIixlW2UuQXNzZXJ0c0lkZW50aWZpZXI9M109XCJBc3NlcnRzSWRlbnRpZmllclwiLGUpKShBeXx8e30pLGt5PShlPT4oZVtlLlVua25vd249MF09XCJVbmtub3duXCIsZVtlLlR5cGVXaXRoQ29uc3RydWN0U2lnbmF0dXJlQW5kVmFsdWU9MV09XCJUeXBlV2l0aENvbnN0cnVjdFNpZ25hdHVyZUFuZFZhbHVlXCIsZVtlLlZvaWROdWxsYWJsZU9yTmV2ZXJUeXBlPTJdPVwiVm9pZE51bGxhYmxlT3JOZXZlclR5cGVcIixlW2UuTnVtYmVyTGlrZVR5cGU9M109XCJOdW1iZXJMaWtlVHlwZVwiLGVbZS5CaWdJbnRMaWtlVHlwZT00XT1cIkJpZ0ludExpa2VUeXBlXCIsZVtlLlN0cmluZ0xpa2VUeXBlPTVdPVwiU3RyaW5nTGlrZVR5cGVcIixlW2UuQm9vbGVhblR5cGU9Nl09XCJCb29sZWFuVHlwZVwiLGVbZS5BcnJheUxpa2VUeXBlPTddPVwiQXJyYXlMaWtlVHlwZVwiLGVbZS5FU1N5bWJvbFR5cGU9OF09XCJFU1N5bWJvbFR5cGVcIixlW2UuUHJvbWlzZT05XT1cIlByb21pc2VcIixlW2UuVHlwZVdpdGhDYWxsU2lnbmF0dXJlPTEwXT1cIlR5cGVXaXRoQ2FsbFNpZ25hdHVyZVwiLGVbZS5PYmplY3RUeXBlPTExXT1cIk9iamVjdFR5cGVcIixlKSkoa3l8fHt9KSxhZD0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5GdW5jdGlvblNjb3BlZFZhcmlhYmxlPTFdPVwiRnVuY3Rpb25TY29wZWRWYXJpYWJsZVwiLGVbZS5CbG9ja1Njb3BlZFZhcmlhYmxlPTJdPVwiQmxvY2tTY29wZWRWYXJpYWJsZVwiLGVbZS5Qcm9wZXJ0eT00XT1cIlByb3BlcnR5XCIsZVtlLkVudW1NZW1iZXI9OF09XCJFbnVtTWVtYmVyXCIsZVtlLkZ1bmN0aW9uPTE2XT1cIkZ1bmN0aW9uXCIsZVtlLkNsYXNzPTMyXT1cIkNsYXNzXCIsZVtlLkludGVyZmFjZT02NF09XCJJbnRlcmZhY2VcIixlW2UuQ29uc3RFbnVtPTEyOF09XCJDb25zdEVudW1cIixlW2UuUmVndWxhckVudW09MjU2XT1cIlJlZ3VsYXJFbnVtXCIsZVtlLlZhbHVlTW9kdWxlPTUxMl09XCJWYWx1ZU1vZHVsZVwiLGVbZS5OYW1lc3BhY2VNb2R1bGU9MTAyNF09XCJOYW1lc3BhY2VNb2R1bGVcIixlW2UuVHlwZUxpdGVyYWw9MjA0OF09XCJUeXBlTGl0ZXJhbFwiLGVbZS5PYmplY3RMaXRlcmFsPTQwOTZdPVwiT2JqZWN0TGl0ZXJhbFwiLGVbZS5NZXRob2Q9ODE5Ml09XCJNZXRob2RcIixlW2UuQ29uc3RydWN0b3I9MTYzODRdPVwiQ29uc3RydWN0b3JcIixlW2UuR2V0QWNjZXNzb3I9MzI3NjhdPVwiR2V0QWNjZXNzb3JcIixlW2UuU2V0QWNjZXNzb3I9NjU1MzZdPVwiU2V0QWNjZXNzb3JcIixlW2UuU2lnbmF0dXJlPTEzMTA3Ml09XCJTaWduYXR1cmVcIixlW2UuVHlwZVBhcmFtZXRlcj0yNjIxNDRdPVwiVHlwZVBhcmFtZXRlclwiLGVbZS5UeXBlQWxpYXM9NTI0Mjg4XT1cIlR5cGVBbGlhc1wiLGVbZS5FeHBvcnRWYWx1ZT0xMDQ4NTc2XT1cIkV4cG9ydFZhbHVlXCIsZVtlLkFsaWFzPTIwOTcxNTJdPVwiQWxpYXNcIixlW2UuUHJvdG90eXBlPTQxOTQzMDRdPVwiUHJvdG90eXBlXCIsZVtlLkV4cG9ydFN0YXI9ODM4ODYwOF09XCJFeHBvcnRTdGFyXCIsZVtlLk9wdGlvbmFsPTE2Nzc3MjE2XT1cIk9wdGlvbmFsXCIsZVtlLlRyYW5zaWVudD0zMzU1NDQzMl09XCJUcmFuc2llbnRcIixlW2UuQXNzaWdubWVudD02NzEwODg2NF09XCJBc3NpZ25tZW50XCIsZVtlLk1vZHVsZUV4cG9ydHM9MTM0MjE3NzI4XT1cIk1vZHVsZUV4cG9ydHNcIixlW2UuQWxsPTY3MTA4ODYzXT1cIkFsbFwiLGVbZS5FbnVtPTM4NF09XCJFbnVtXCIsZVtlLlZhcmlhYmxlPTNdPVwiVmFyaWFibGVcIixlW2UuVmFsdWU9MTExNTUxXT1cIlZhbHVlXCIsZVtlLlR5cGU9Nzg4OTY4XT1cIlR5cGVcIixlW2UuTmFtZXNwYWNlPTE5MjBdPVwiTmFtZXNwYWNlXCIsZVtlLk1vZHVsZT0xNTM2XT1cIk1vZHVsZVwiLGVbZS5BY2Nlc3Nvcj05ODMwNF09XCJBY2Nlc3NvclwiLGVbZS5GdW5jdGlvblNjb3BlZFZhcmlhYmxlRXhjbHVkZXM9MTExNTUwXT1cIkZ1bmN0aW9uU2NvcGVkVmFyaWFibGVFeGNsdWRlc1wiLGVbZS5CbG9ja1Njb3BlZFZhcmlhYmxlRXhjbHVkZXM9MTExNTUxXT1cIkJsb2NrU2NvcGVkVmFyaWFibGVFeGNsdWRlc1wiLGVbZS5QYXJhbWV0ZXJFeGNsdWRlcz0xMTE1NTFdPVwiUGFyYW1ldGVyRXhjbHVkZXNcIixlW2UuUHJvcGVydHlFeGNsdWRlcz0wXT1cIlByb3BlcnR5RXhjbHVkZXNcIixlW2UuRW51bU1lbWJlckV4Y2x1ZGVzPTkwMDA5NV09XCJFbnVtTWVtYmVyRXhjbHVkZXNcIixlW2UuRnVuY3Rpb25FeGNsdWRlcz0xMTA5OTFdPVwiRnVuY3Rpb25FeGNsdWRlc1wiLGVbZS5DbGFzc0V4Y2x1ZGVzPTg5OTUwM109XCJDbGFzc0V4Y2x1ZGVzXCIsZVtlLkludGVyZmFjZUV4Y2x1ZGVzPTc4ODg3Ml09XCJJbnRlcmZhY2VFeGNsdWRlc1wiLGVbZS5SZWd1bGFyRW51bUV4Y2x1ZGVzPTg5OTMyN109XCJSZWd1bGFyRW51bUV4Y2x1ZGVzXCIsZVtlLkNvbnN0RW51bUV4Y2x1ZGVzPTg5OTk2N109XCJDb25zdEVudW1FeGNsdWRlc1wiLGVbZS5WYWx1ZU1vZHVsZUV4Y2x1ZGVzPTExMDczNV09XCJWYWx1ZU1vZHVsZUV4Y2x1ZGVzXCIsZVtlLk5hbWVzcGFjZU1vZHVsZUV4Y2x1ZGVzPTBdPVwiTmFtZXNwYWNlTW9kdWxlRXhjbHVkZXNcIixlW2UuTWV0aG9kRXhjbHVkZXM9MTAzMzU5XT1cIk1ldGhvZEV4Y2x1ZGVzXCIsZVtlLkdldEFjY2Vzc29yRXhjbHVkZXM9NDYwMTVdPVwiR2V0QWNjZXNzb3JFeGNsdWRlc1wiLGVbZS5TZXRBY2Nlc3NvckV4Y2x1ZGVzPTc4NzgzXT1cIlNldEFjY2Vzc29yRXhjbHVkZXNcIixlW2UuQWNjZXNzb3JFeGNsdWRlcz0xMzI0N109XCJBY2Nlc3NvckV4Y2x1ZGVzXCIsZVtlLlR5cGVQYXJhbWV0ZXJFeGNsdWRlcz01MjY4MjRdPVwiVHlwZVBhcmFtZXRlckV4Y2x1ZGVzXCIsZVtlLlR5cGVBbGlhc0V4Y2x1ZGVzPTc4ODk2OF09XCJUeXBlQWxpYXNFeGNsdWRlc1wiLGVbZS5BbGlhc0V4Y2x1ZGVzPTIwOTcxNTJdPVwiQWxpYXNFeGNsdWRlc1wiLGVbZS5Nb2R1bGVNZW1iZXI9MjYyMzQ3NV09XCJNb2R1bGVNZW1iZXJcIixlW2UuRXhwb3J0SGFzTG9jYWw9OTQ0XT1cIkV4cG9ydEhhc0xvY2FsXCIsZVtlLkJsb2NrU2NvcGVkPTQxOF09XCJCbG9ja1Njb3BlZFwiLGVbZS5Qcm9wZXJ0eU9yQWNjZXNzb3I9OTgzMDhdPVwiUHJvcGVydHlPckFjY2Vzc29yXCIsZVtlLkNsYXNzTWVtYmVyPTEwNjUwMF09XCJDbGFzc01lbWJlclwiLGVbZS5FeHBvcnRTdXBwb3J0c0RlZmF1bHRNb2RpZmllcj0xMTJdPVwiRXhwb3J0U3VwcG9ydHNEZWZhdWx0TW9kaWZpZXJcIixlW2UuRXhwb3J0RG9lc05vdFN1cHBvcnREZWZhdWx0TW9kaWZpZXI9LTExM109XCJFeHBvcnREb2VzTm90U3VwcG9ydERlZmF1bHRNb2RpZmllclwiLGVbZS5DbGFzc2lmaWFibGU9Mjg4NTYwMF09XCJDbGFzc2lmaWFibGVcIixlW2UuTGF0ZUJpbmRpbmdDb250YWluZXI9NjI1Nl09XCJMYXRlQmluZGluZ0NvbnRhaW5lclwiLGUpKShhZHx8e30pLER5PShlPT4oZVtlLk51bWVyaWM9MF09XCJOdW1lcmljXCIsZVtlLkxpdGVyYWw9MV09XCJMaXRlcmFsXCIsZSkpKER5fHx7fSksUHk9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuSW5zdGFudGlhdGVkPTFdPVwiSW5zdGFudGlhdGVkXCIsZVtlLlN5bnRoZXRpY1Byb3BlcnR5PTJdPVwiU3ludGhldGljUHJvcGVydHlcIixlW2UuU3ludGhldGljTWV0aG9kPTRdPVwiU3ludGhldGljTWV0aG9kXCIsZVtlLlJlYWRvbmx5PThdPVwiUmVhZG9ubHlcIixlW2UuUmVhZFBhcnRpYWw9MTZdPVwiUmVhZFBhcnRpYWxcIixlW2UuV3JpdGVQYXJ0aWFsPTMyXT1cIldyaXRlUGFydGlhbFwiLGVbZS5IYXNOb25Vbmlmb3JtVHlwZT02NF09XCJIYXNOb25Vbmlmb3JtVHlwZVwiLGVbZS5IYXNMaXRlcmFsVHlwZT0xMjhdPVwiSGFzTGl0ZXJhbFR5cGVcIixlW2UuQ29udGFpbnNQdWJsaWM9MjU2XT1cIkNvbnRhaW5zUHVibGljXCIsZVtlLkNvbnRhaW5zUHJvdGVjdGVkPTUxMl09XCJDb250YWluc1Byb3RlY3RlZFwiLGVbZS5Db250YWluc1ByaXZhdGU9MTAyNF09XCJDb250YWluc1ByaXZhdGVcIixlW2UuQ29udGFpbnNTdGF0aWM9MjA0OF09XCJDb250YWluc1N0YXRpY1wiLGVbZS5MYXRlPTQwOTZdPVwiTGF0ZVwiLGVbZS5SZXZlcnNlTWFwcGVkPTgxOTJdPVwiUmV2ZXJzZU1hcHBlZFwiLGVbZS5PcHRpb25hbFBhcmFtZXRlcj0xNjM4NF09XCJPcHRpb25hbFBhcmFtZXRlclwiLGVbZS5SZXN0UGFyYW1ldGVyPTMyNzY4XT1cIlJlc3RQYXJhbWV0ZXJcIixlW2UuRGVmZXJyZWRUeXBlPTY1NTM2XT1cIkRlZmVycmVkVHlwZVwiLGVbZS5IYXNOZXZlclR5cGU9MTMxMDcyXT1cIkhhc05ldmVyVHlwZVwiLGVbZS5NYXBwZWQ9MjYyMTQ0XT1cIk1hcHBlZFwiLGVbZS5TdHJpcE9wdGlvbmFsPTUyNDI4OF09XCJTdHJpcE9wdGlvbmFsXCIsZVtlLlVucmVzb2x2ZWQ9MTA0ODU3Nl09XCJVbnJlc29sdmVkXCIsZVtlLlN5bnRoZXRpYz02XT1cIlN5bnRoZXRpY1wiLGVbZS5EaXNjcmltaW5hbnQ9MTkyXT1cIkRpc2NyaW1pbmFudFwiLGVbZS5QYXJ0aWFsPTQ4XT1cIlBhcnRpYWxcIixlKSkoUHl8fHt9KSxJeT0oZT0+KGUuQ2FsbD1cIl9fY2FsbFwiLGUuQ29uc3RydWN0b3I9XCJfX2NvbnN0cnVjdG9yXCIsZS5OZXc9XCJfX25ld1wiLGUuSW5kZXg9XCJfX2luZGV4XCIsZS5FeHBvcnRTdGFyPVwiX19leHBvcnRcIixlLkdsb2JhbD1cIl9fZ2xvYmFsXCIsZS5NaXNzaW5nPVwiX19taXNzaW5nXCIsZS5UeXBlPVwiX190eXBlXCIsZS5PYmplY3Q9XCJfX29iamVjdFwiLGUuSlNYQXR0cmlidXRlcz1cIl9fanN4QXR0cmlidXRlc1wiLGUuQ2xhc3M9XCJfX2NsYXNzXCIsZS5GdW5jdGlvbj1cIl9fZnVuY3Rpb25cIixlLkNvbXB1dGVkPVwiX19jb21wdXRlZFwiLGUuUmVzb2x2aW5nPVwiX19yZXNvbHZpbmdfX1wiLGUuRXhwb3J0RXF1YWxzPVwiZXhwb3J0PVwiLGUuRGVmYXVsdD1cImRlZmF1bHRcIixlLlRoaXM9XCJ0aGlzXCIsZSkpKEl5fHx7fSksTnk9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuVHlwZUNoZWNrZWQ9MV09XCJUeXBlQ2hlY2tlZFwiLGVbZS5MZXhpY2FsVGhpcz0yXT1cIkxleGljYWxUaGlzXCIsZVtlLkNhcHR1cmVUaGlzPTRdPVwiQ2FwdHVyZVRoaXNcIixlW2UuQ2FwdHVyZU5ld1RhcmdldD04XT1cIkNhcHR1cmVOZXdUYXJnZXRcIixlW2UuU3VwZXJJbnN0YW5jZT0xNl09XCJTdXBlckluc3RhbmNlXCIsZVtlLlN1cGVyU3RhdGljPTMyXT1cIlN1cGVyU3RhdGljXCIsZVtlLkNvbnRleHRDaGVja2VkPTY0XT1cIkNvbnRleHRDaGVja2VkXCIsZVtlLk1ldGhvZFdpdGhTdXBlclByb3BlcnR5QWNjZXNzSW5Bc3luYz0xMjhdPVwiTWV0aG9kV2l0aFN1cGVyUHJvcGVydHlBY2Nlc3NJbkFzeW5jXCIsZVtlLk1ldGhvZFdpdGhTdXBlclByb3BlcnR5QXNzaWdubWVudEluQXN5bmM9MjU2XT1cIk1ldGhvZFdpdGhTdXBlclByb3BlcnR5QXNzaWdubWVudEluQXN5bmNcIixlW2UuQ2FwdHVyZUFyZ3VtZW50cz01MTJdPVwiQ2FwdHVyZUFyZ3VtZW50c1wiLGVbZS5FbnVtVmFsdWVzQ29tcHV0ZWQ9MTAyNF09XCJFbnVtVmFsdWVzQ29tcHV0ZWRcIixlW2UuTGV4aWNhbE1vZHVsZU1lcmdlc1dpdGhDbGFzcz0yMDQ4XT1cIkxleGljYWxNb2R1bGVNZXJnZXNXaXRoQ2xhc3NcIixlW2UuTG9vcFdpdGhDYXB0dXJlZEJsb2NrU2NvcGVkQmluZGluZz00MDk2XT1cIkxvb3BXaXRoQ2FwdHVyZWRCbG9ja1Njb3BlZEJpbmRpbmdcIixlW2UuQ29udGFpbnNDYXB0dXJlZEJsb2NrU2NvcGVCaW5kaW5nPTgxOTJdPVwiQ29udGFpbnNDYXB0dXJlZEJsb2NrU2NvcGVCaW5kaW5nXCIsZVtlLkNhcHR1cmVkQmxvY2tTY29wZWRCaW5kaW5nPTE2Mzg0XT1cIkNhcHR1cmVkQmxvY2tTY29wZWRCaW5kaW5nXCIsZVtlLkJsb2NrU2NvcGVkQmluZGluZ0luTG9vcD0zMjc2OF09XCJCbG9ja1Njb3BlZEJpbmRpbmdJbkxvb3BcIixlW2UuTmVlZHNMb29wT3V0UGFyYW1ldGVyPTY1NTM2XT1cIk5lZWRzTG9vcE91dFBhcmFtZXRlclwiLGVbZS5Bc3NpZ25tZW50c01hcmtlZD0xMzEwNzJdPVwiQXNzaWdubWVudHNNYXJrZWRcIixlW2UuQ29udGFpbnNDb25zdHJ1Y3RvclJlZmVyZW5jZT0yNjIxNDRdPVwiQ29udGFpbnNDb25zdHJ1Y3RvclJlZmVyZW5jZVwiLGVbZS5Db25zdHJ1Y3RvclJlZmVyZW5jZT01MzY4NzA5MTJdPVwiQ29uc3RydWN0b3JSZWZlcmVuY2VcIixlW2UuQ29udGFpbnNDbGFzc1dpdGhQcml2YXRlSWRlbnRpZmllcnM9MTA0ODU3Nl09XCJDb250YWluc0NsYXNzV2l0aFByaXZhdGVJZGVudGlmaWVyc1wiLGVbZS5Db250YWluc1N1cGVyUHJvcGVydHlJblN0YXRpY0luaXRpYWxpemVyPTIwOTcxNTJdPVwiQ29udGFpbnNTdXBlclByb3BlcnR5SW5TdGF0aWNJbml0aWFsaXplclwiLGVbZS5JbkNoZWNrSWRlbnRpZmllcj00MTk0MzA0XT1cIkluQ2hlY2tJZGVudGlmaWVyXCIsZSkpKE55fHx7fSksb2Q9KGU9PihlW2UuQW55PTFdPVwiQW55XCIsZVtlLlVua25vd249Ml09XCJVbmtub3duXCIsZVtlLlN0cmluZz00XT1cIlN0cmluZ1wiLGVbZS5OdW1iZXI9OF09XCJOdW1iZXJcIixlW2UuQm9vbGVhbj0xNl09XCJCb29sZWFuXCIsZVtlLkVudW09MzJdPVwiRW51bVwiLGVbZS5CaWdJbnQ9NjRdPVwiQmlnSW50XCIsZVtlLlN0cmluZ0xpdGVyYWw9MTI4XT1cIlN0cmluZ0xpdGVyYWxcIixlW2UuTnVtYmVyTGl0ZXJhbD0yNTZdPVwiTnVtYmVyTGl0ZXJhbFwiLGVbZS5Cb29sZWFuTGl0ZXJhbD01MTJdPVwiQm9vbGVhbkxpdGVyYWxcIixlW2UuRW51bUxpdGVyYWw9MTAyNF09XCJFbnVtTGl0ZXJhbFwiLGVbZS5CaWdJbnRMaXRlcmFsPTIwNDhdPVwiQmlnSW50TGl0ZXJhbFwiLGVbZS5FU1N5bWJvbD00MDk2XT1cIkVTU3ltYm9sXCIsZVtlLlVuaXF1ZUVTU3ltYm9sPTgxOTJdPVwiVW5pcXVlRVNTeW1ib2xcIixlW2UuVm9pZD0xNjM4NF09XCJWb2lkXCIsZVtlLlVuZGVmaW5lZD0zMjc2OF09XCJVbmRlZmluZWRcIixlW2UuTnVsbD02NTUzNl09XCJOdWxsXCIsZVtlLk5ldmVyPTEzMTA3Ml09XCJOZXZlclwiLGVbZS5UeXBlUGFyYW1ldGVyPTI2MjE0NF09XCJUeXBlUGFyYW1ldGVyXCIsZVtlLk9iamVjdD01MjQyODhdPVwiT2JqZWN0XCIsZVtlLlVuaW9uPTEwNDg1NzZdPVwiVW5pb25cIixlW2UuSW50ZXJzZWN0aW9uPTIwOTcxNTJdPVwiSW50ZXJzZWN0aW9uXCIsZVtlLkluZGV4PTQxOTQzMDRdPVwiSW5kZXhcIixlW2UuSW5kZXhlZEFjY2Vzcz04Mzg4NjA4XT1cIkluZGV4ZWRBY2Nlc3NcIixlW2UuQ29uZGl0aW9uYWw9MTY3NzcyMTZdPVwiQ29uZGl0aW9uYWxcIixlW2UuU3Vic3RpdHV0aW9uPTMzNTU0NDMyXT1cIlN1YnN0aXR1dGlvblwiLGVbZS5Ob25QcmltaXRpdmU9NjcxMDg4NjRdPVwiTm9uUHJpbWl0aXZlXCIsZVtlLlRlbXBsYXRlTGl0ZXJhbD0xMzQyMTc3MjhdPVwiVGVtcGxhdGVMaXRlcmFsXCIsZVtlLlN0cmluZ01hcHBpbmc9MjY4NDM1NDU2XT1cIlN0cmluZ01hcHBpbmdcIixlW2UuQW55T3JVbmtub3duPTNdPVwiQW55T3JVbmtub3duXCIsZVtlLk51bGxhYmxlPTk4MzA0XT1cIk51bGxhYmxlXCIsZVtlLkxpdGVyYWw9Mjk0NF09XCJMaXRlcmFsXCIsZVtlLlVuaXQ9MTA5NDcyXT1cIlVuaXRcIixlW2UuRnJlc2hhYmxlPTI5NzZdPVwiRnJlc2hhYmxlXCIsZVtlLlN0cmluZ09yTnVtYmVyTGl0ZXJhbD0zODRdPVwiU3RyaW5nT3JOdW1iZXJMaXRlcmFsXCIsZVtlLlN0cmluZ09yTnVtYmVyTGl0ZXJhbE9yVW5pcXVlPTg1NzZdPVwiU3RyaW5nT3JOdW1iZXJMaXRlcmFsT3JVbmlxdWVcIixlW2UuRGVmaW5pdGVseUZhbHN5PTExNzYzMl09XCJEZWZpbml0ZWx5RmFsc3lcIixlW2UuUG9zc2libHlGYWxzeT0xMTc3MjRdPVwiUG9zc2libHlGYWxzeVwiLGVbZS5JbnRyaW5zaWM9NjczNTkzMjddPVwiSW50cmluc2ljXCIsZVtlLlN0cmluZ0xpa2U9NDAyNjUzMzE2XT1cIlN0cmluZ0xpa2VcIixlW2UuTnVtYmVyTGlrZT0yOTZdPVwiTnVtYmVyTGlrZVwiLGVbZS5CaWdJbnRMaWtlPTIxMTJdPVwiQmlnSW50TGlrZVwiLGVbZS5Cb29sZWFuTGlrZT01MjhdPVwiQm9vbGVhbkxpa2VcIixlW2UuRW51bUxpa2U9MTA1Nl09XCJFbnVtTGlrZVwiLGVbZS5FU1N5bWJvbExpa2U9MTIyODhdPVwiRVNTeW1ib2xMaWtlXCIsZVtlLlZvaWRMaWtlPTQ5MTUyXT1cIlZvaWRMaWtlXCIsZVtlLlByaW1pdGl2ZT00MDI3ODQyNTJdPVwiUHJpbWl0aXZlXCIsZVtlLkRlZmluaXRlbHlOb25OdWxsYWJsZT00NzAzMDI3MTZdPVwiRGVmaW5pdGVseU5vbk51bGxhYmxlXCIsZVtlLkRpc2pvaW50RG9tYWlucz00Njk4OTIwOTJdPVwiRGlzam9pbnREb21haW5zXCIsZVtlLlVuaW9uT3JJbnRlcnNlY3Rpb249MzE0NTcyOF09XCJVbmlvbk9ySW50ZXJzZWN0aW9uXCIsZVtlLlN0cnVjdHVyZWRUeXBlPTM2NzAwMTZdPVwiU3RydWN0dXJlZFR5cGVcIixlW2UuVHlwZVZhcmlhYmxlPTg2NTA3NTJdPVwiVHlwZVZhcmlhYmxlXCIsZVtlLkluc3RhbnRpYWJsZU5vblByaW1pdGl2ZT01ODk4MjQwMF09XCJJbnN0YW50aWFibGVOb25QcmltaXRpdmVcIixlW2UuSW5zdGFudGlhYmxlUHJpbWl0aXZlPTQwNjg0NzQ4OF09XCJJbnN0YW50aWFibGVQcmltaXRpdmVcIixlW2UuSW5zdGFudGlhYmxlPTQ2NTgyOTg4OF09XCJJbnN0YW50aWFibGVcIixlW2UuU3RydWN0dXJlZE9ySW5zdGFudGlhYmxlPTQ2OTQ5OTkwNF09XCJTdHJ1Y3R1cmVkT3JJbnN0YW50aWFibGVcIixlW2UuT2JqZWN0RmxhZ3NUeXBlPTEzODExNzEyMV09XCJPYmplY3RGbGFnc1R5cGVcIixlW2UuU2ltcGxpZmlhYmxlPTI1MTY1ODI0XT1cIlNpbXBsaWZpYWJsZVwiLGVbZS5TaW5nbGV0b249NjczNTg4MTVdPVwiU2luZ2xldG9uXCIsZVtlLk5hcnJvd2FibGU9NTM2NjI0MTI3XT1cIk5hcnJvd2FibGVcIixlW2UuSW5jbHVkZXNNYXNrPTQ3MzY5NDIwN109XCJJbmNsdWRlc01hc2tcIixlW2UuSW5jbHVkZXNNaXNzaW5nVHlwZT0yNjIxNDRdPVwiSW5jbHVkZXNNaXNzaW5nVHlwZVwiLGVbZS5JbmNsdWRlc05vbldpZGVuaW5nVHlwZT00MTk0MzA0XT1cIkluY2x1ZGVzTm9uV2lkZW5pbmdUeXBlXCIsZVtlLkluY2x1ZGVzV2lsZGNhcmQ9ODM4ODYwOF09XCJJbmNsdWRlc1dpbGRjYXJkXCIsZVtlLkluY2x1ZGVzRW1wdHlPYmplY3Q9MTY3NzcyMTZdPVwiSW5jbHVkZXNFbXB0eU9iamVjdFwiLGVbZS5JbmNsdWRlc0luc3RhbnRpYWJsZT0zMzU1NDQzMl09XCJJbmNsdWRlc0luc3RhbnRpYWJsZVwiLGVbZS5Ob3RQcmltaXRpdmVVbmlvbj0zNjMyMzMzMV09XCJOb3RQcmltaXRpdmVVbmlvblwiLGUpKShvZHx8e30pLHNkPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkNsYXNzPTFdPVwiQ2xhc3NcIixlW2UuSW50ZXJmYWNlPTJdPVwiSW50ZXJmYWNlXCIsZVtlLlJlZmVyZW5jZT00XT1cIlJlZmVyZW5jZVwiLGVbZS5UdXBsZT04XT1cIlR1cGxlXCIsZVtlLkFub255bW91cz0xNl09XCJBbm9ueW1vdXNcIixlW2UuTWFwcGVkPTMyXT1cIk1hcHBlZFwiLGVbZS5JbnN0YW50aWF0ZWQ9NjRdPVwiSW5zdGFudGlhdGVkXCIsZVtlLk9iamVjdExpdGVyYWw9MTI4XT1cIk9iamVjdExpdGVyYWxcIixlW2UuRXZvbHZpbmdBcnJheT0yNTZdPVwiRXZvbHZpbmdBcnJheVwiLGVbZS5PYmplY3RMaXRlcmFsUGF0dGVybldpdGhDb21wdXRlZFByb3BlcnRpZXM9NTEyXT1cIk9iamVjdExpdGVyYWxQYXR0ZXJuV2l0aENvbXB1dGVkUHJvcGVydGllc1wiLGVbZS5SZXZlcnNlTWFwcGVkPTEwMjRdPVwiUmV2ZXJzZU1hcHBlZFwiLGVbZS5Kc3hBdHRyaWJ1dGVzPTIwNDhdPVwiSnN4QXR0cmlidXRlc1wiLGVbZS5KU0xpdGVyYWw9NDA5Nl09XCJKU0xpdGVyYWxcIixlW2UuRnJlc2hMaXRlcmFsPTgxOTJdPVwiRnJlc2hMaXRlcmFsXCIsZVtlLkFycmF5TGl0ZXJhbD0xNjM4NF09XCJBcnJheUxpdGVyYWxcIixlW2UuUHJpbWl0aXZlVW5pb249MzI3NjhdPVwiUHJpbWl0aXZlVW5pb25cIixlW2UuQ29udGFpbnNXaWRlbmluZ1R5cGU9NjU1MzZdPVwiQ29udGFpbnNXaWRlbmluZ1R5cGVcIixlW2UuQ29udGFpbnNPYmplY3RPckFycmF5TGl0ZXJhbD0xMzEwNzJdPVwiQ29udGFpbnNPYmplY3RPckFycmF5TGl0ZXJhbFwiLGVbZS5Ob25JbmZlcnJhYmxlVHlwZT0yNjIxNDRdPVwiTm9uSW5mZXJyYWJsZVR5cGVcIixlW2UuQ291bGRDb250YWluVHlwZVZhcmlhYmxlc0NvbXB1dGVkPTUyNDI4OF09XCJDb3VsZENvbnRhaW5UeXBlVmFyaWFibGVzQ29tcHV0ZWRcIixlW2UuQ291bGRDb250YWluVHlwZVZhcmlhYmxlcz0xMDQ4NTc2XT1cIkNvdWxkQ29udGFpblR5cGVWYXJpYWJsZXNcIixlW2UuQ2xhc3NPckludGVyZmFjZT0zXT1cIkNsYXNzT3JJbnRlcmZhY2VcIixlW2UuUmVxdWlyZXNXaWRlbmluZz0xOTY2MDhdPVwiUmVxdWlyZXNXaWRlbmluZ1wiLGVbZS5Qcm9wYWdhdGluZ0ZsYWdzPTQ1ODc1Ml09XCJQcm9wYWdhdGluZ0ZsYWdzXCIsZVtlLk9iamVjdFR5cGVLaW5kTWFzaz0xMzQzXT1cIk9iamVjdFR5cGVLaW5kTWFza1wiLGVbZS5Db250YWluc1NwcmVhZD0yMDk3MTUyXT1cIkNvbnRhaW5zU3ByZWFkXCIsZVtlLk9iamVjdFJlc3RUeXBlPTQxOTQzMDRdPVwiT2JqZWN0UmVzdFR5cGVcIixlW2UuSW5zdGFudGlhdGlvbkV4cHJlc3Npb25UeXBlPTgzODg2MDhdPVwiSW5zdGFudGlhdGlvbkV4cHJlc3Npb25UeXBlXCIsZVtlLklzQ2xhc3NJbnN0YW5jZUNsb25lPTE2Nzc3MjE2XT1cIklzQ2xhc3NJbnN0YW5jZUNsb25lXCIsZVtlLklkZW50aWNhbEJhc2VUeXBlQ2FsY3VsYXRlZD0zMzU1NDQzMl09XCJJZGVudGljYWxCYXNlVHlwZUNhbGN1bGF0ZWRcIixlW2UuSWRlbnRpY2FsQmFzZVR5cGVFeGlzdHM9NjcxMDg4NjRdPVwiSWRlbnRpY2FsQmFzZVR5cGVFeGlzdHNcIixlW2UuSXNHZW5lcmljVHlwZUNvbXB1dGVkPTIwOTcxNTJdPVwiSXNHZW5lcmljVHlwZUNvbXB1dGVkXCIsZVtlLklzR2VuZXJpY09iamVjdFR5cGU9NDE5NDMwNF09XCJJc0dlbmVyaWNPYmplY3RUeXBlXCIsZVtlLklzR2VuZXJpY0luZGV4VHlwZT04Mzg4NjA4XT1cIklzR2VuZXJpY0luZGV4VHlwZVwiLGVbZS5Jc0dlbmVyaWNUeXBlPTEyNTgyOTEyXT1cIklzR2VuZXJpY1R5cGVcIixlW2UuQ29udGFpbnNJbnRlcnNlY3Rpb25zPTE2Nzc3MjE2XT1cIkNvbnRhaW5zSW50ZXJzZWN0aW9uc1wiLGVbZS5Jc1Vua25vd25MaWtlVW5pb25Db21wdXRlZD0zMzU1NDQzMl09XCJJc1Vua25vd25MaWtlVW5pb25Db21wdXRlZFwiLGVbZS5Jc1Vua25vd25MaWtlVW5pb249NjcxMDg4NjRdPVwiSXNVbmtub3duTGlrZVVuaW9uXCIsZVtlLklzTmV2ZXJJbnRlcnNlY3Rpb25Db21wdXRlZD0xNjc3NzIxNl09XCJJc05ldmVySW50ZXJzZWN0aW9uQ29tcHV0ZWRcIixlW2UuSXNOZXZlckludGVyc2VjdGlvbj0zMzU1NDQzMl09XCJJc05ldmVySW50ZXJzZWN0aW9uXCIsZSkpKHNkfHx7fSksT3k9KGU9PihlW2UuSW52YXJpYW50PTBdPVwiSW52YXJpYW50XCIsZVtlLkNvdmFyaWFudD0xXT1cIkNvdmFyaWFudFwiLGVbZS5Db250cmF2YXJpYW50PTJdPVwiQ29udHJhdmFyaWFudFwiLGVbZS5CaXZhcmlhbnQ9M109XCJCaXZhcmlhbnRcIixlW2UuSW5kZXBlbmRlbnQ9NF09XCJJbmRlcGVuZGVudFwiLGVbZS5WYXJpYW5jZU1hc2s9N109XCJWYXJpYW5jZU1hc2tcIixlW2UuVW5tZWFzdXJhYmxlPThdPVwiVW5tZWFzdXJhYmxlXCIsZVtlLlVucmVsaWFibGU9MTZdPVwiVW5yZWxpYWJsZVwiLGVbZS5BbGxvd3NTdHJ1Y3R1cmFsRmFsbGJhY2s9MjRdPVwiQWxsb3dzU3RydWN0dXJhbEZhbGxiYWNrXCIsZSkpKE95fHx7fSksTXk9KGU9PihlW2UuUmVxdWlyZWQ9MV09XCJSZXF1aXJlZFwiLGVbZS5PcHRpb25hbD0yXT1cIk9wdGlvbmFsXCIsZVtlLlJlc3Q9NF09XCJSZXN0XCIsZVtlLlZhcmlhZGljPThdPVwiVmFyaWFkaWNcIixlW2UuRml4ZWQ9M109XCJGaXhlZFwiLGVbZS5WYXJpYWJsZT0xMl09XCJWYXJpYWJsZVwiLGVbZS5Ob25SZXF1aXJlZD0xNF09XCJOb25SZXF1aXJlZFwiLGVbZS5Ob25SZXN0PTExXT1cIk5vblJlc3RcIixlKSkoTXl8fHt9KSxMeT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5JbmNsdWRlVW5kZWZpbmVkPTFdPVwiSW5jbHVkZVVuZGVmaW5lZFwiLGVbZS5Ob0luZGV4U2lnbmF0dXJlcz0yXT1cIk5vSW5kZXhTaWduYXR1cmVzXCIsZVtlLldyaXRpbmc9NF09XCJXcml0aW5nXCIsZVtlLkNhY2hlU3ltYm9sPThdPVwiQ2FjaGVTeW1ib2xcIixlW2UuTm9UdXBsZUJvdW5kc0NoZWNrPTE2XT1cIk5vVHVwbGVCb3VuZHNDaGVja1wiLGVbZS5FeHByZXNzaW9uUG9zaXRpb249MzJdPVwiRXhwcmVzc2lvblBvc2l0aW9uXCIsZVtlLlJlcG9ydERlcHJlY2F0ZWQ9NjRdPVwiUmVwb3J0RGVwcmVjYXRlZFwiLGVbZS5TdXBwcmVzc05vSW1wbGljaXRBbnlFcnJvcj0xMjhdPVwiU3VwcHJlc3NOb0ltcGxpY2l0QW55RXJyb3JcIixlW2UuQ29udGV4dHVhbD0yNTZdPVwiQ29udGV4dHVhbFwiLGVbZS5QZXJzaXN0ZW50PTFdPVwiUGVyc2lzdGVudFwiLGUpKShMeXx8e30pLEp5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLlN0cmluZ3NPbmx5PTFdPVwiU3RyaW5nc09ubHlcIixlW2UuTm9JbmRleFNpZ25hdHVyZXM9Ml09XCJOb0luZGV4U2lnbmF0dXJlc1wiLGVbZS5Ob1JlZHVjaWJsZUNoZWNrPTRdPVwiTm9SZWR1Y2libGVDaGVja1wiLGUpKShKeXx8e30pLFJ5PShlPT4oZVtlLkNvbXBvbmVudD0wXT1cIkNvbXBvbmVudFwiLGVbZS5GdW5jdGlvbj0xXT1cIkZ1bmN0aW9uXCIsZVtlLk1peGVkPTJdPVwiTWl4ZWRcIixlKSkoUnl8fHt9KSxqeT0oZT0+KGVbZS5DYWxsPTBdPVwiQ2FsbFwiLGVbZS5Db25zdHJ1Y3Q9MV09XCJDb25zdHJ1Y3RcIixlKSkoanl8fHt9KSxfZD0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5IYXNSZXN0UGFyYW1ldGVyPTFdPVwiSGFzUmVzdFBhcmFtZXRlclwiLGVbZS5IYXNMaXRlcmFsVHlwZXM9Ml09XCJIYXNMaXRlcmFsVHlwZXNcIixlW2UuQWJzdHJhY3Q9NF09XCJBYnN0cmFjdFwiLGVbZS5Jc0lubmVyQ2FsbENoYWluPThdPVwiSXNJbm5lckNhbGxDaGFpblwiLGVbZS5Jc091dGVyQ2FsbENoYWluPTE2XT1cIklzT3V0ZXJDYWxsQ2hhaW5cIixlW2UuSXNVbnR5cGVkU2lnbmF0dXJlSW5KU0ZpbGU9MzJdPVwiSXNVbnR5cGVkU2lnbmF0dXJlSW5KU0ZpbGVcIixlW2UuSXNOb25JbmZlcnJhYmxlPTY0XT1cIklzTm9uSW5mZXJyYWJsZVwiLGVbZS5Jc1NpZ25hdHVyZUNhbmRpZGF0ZUZvck92ZXJsb2FkRmFpbHVyZT0xMjhdPVwiSXNTaWduYXR1cmVDYW5kaWRhdGVGb3JPdmVybG9hZEZhaWx1cmVcIixlW2UuUHJvcGFnYXRpbmdGbGFncz0xNjddPVwiUHJvcGFnYXRpbmdGbGFnc1wiLGVbZS5DYWxsQ2hhaW5GbGFncz0yNF09XCJDYWxsQ2hhaW5GbGFnc1wiLGUpKShfZHx8e30pLEZ5PShlPT4oZVtlLlN0cmluZz0wXT1cIlN0cmluZ1wiLGVbZS5OdW1iZXI9MV09XCJOdW1iZXJcIixlKSkoRnl8fHt9KSxCeT0oZT0+KGVbZS5TaW1wbGU9MF09XCJTaW1wbGVcIixlW2UuQXJyYXk9MV09XCJBcnJheVwiLGVbZS5EZWZlcnJlZD0yXT1cIkRlZmVycmVkXCIsZVtlLkZ1bmN0aW9uPTNdPVwiRnVuY3Rpb25cIixlW2UuQ29tcG9zaXRlPTRdPVwiQ29tcG9zaXRlXCIsZVtlLk1lcmdlZD01XT1cIk1lcmdlZFwiLGUpKShCeXx8e30pLFV5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLk5ha2VkVHlwZVZhcmlhYmxlPTFdPVwiTmFrZWRUeXBlVmFyaWFibGVcIixlW2UuU3BlY3VsYXRpdmVUdXBsZT0yXT1cIlNwZWN1bGF0aXZlVHVwbGVcIixlW2UuU3Vic3RpdHV0ZVNvdXJjZT00XT1cIlN1YnN0aXR1dGVTb3VyY2VcIixlW2UuSG9tb21vcnBoaWNNYXBwZWRUeXBlPThdPVwiSG9tb21vcnBoaWNNYXBwZWRUeXBlXCIsZVtlLlBhcnRpYWxIb21vbW9ycGhpY01hcHBlZFR5cGU9MTZdPVwiUGFydGlhbEhvbW9tb3JwaGljTWFwcGVkVHlwZVwiLGVbZS5NYXBwZWRUeXBlQ29uc3RyYWludD0zMl09XCJNYXBwZWRUeXBlQ29uc3RyYWludFwiLGVbZS5Db250cmF2YXJpYW50Q29uZGl0aW9uYWw9NjRdPVwiQ29udHJhdmFyaWFudENvbmRpdGlvbmFsXCIsZVtlLlJldHVyblR5cGU9MTI4XT1cIlJldHVyblR5cGVcIixlW2UuTGl0ZXJhbEtleW9mPTI1Nl09XCJMaXRlcmFsS2V5b2ZcIixlW2UuTm9Db25zdHJhaW50cz01MTJdPVwiTm9Db25zdHJhaW50c1wiLGVbZS5BbHdheXNTdHJpY3Q9MTAyNF09XCJBbHdheXNTdHJpY3RcIixlW2UuTWF4VmFsdWU9MjA0OF09XCJNYXhWYWx1ZVwiLGVbZS5Qcmlvcml0eUltcGxpZXNDb21iaW5hdGlvbj00MTZdPVwiUHJpb3JpdHlJbXBsaWVzQ29tYmluYXRpb25cIixlW2UuQ2lyY3VsYXJpdHk9LTFdPVwiQ2lyY3VsYXJpdHlcIixlKSkoVXl8fHt9KSxxeT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5Ob0RlZmF1bHQ9MV09XCJOb0RlZmF1bHRcIixlW2UuQW55RGVmYXVsdD0yXT1cIkFueURlZmF1bHRcIixlW2UuU2tpcHBlZEdlbmVyaWNGdW5jdGlvbj00XT1cIlNraXBwZWRHZW5lcmljRnVuY3Rpb25cIixlKSkocXl8fHt9KSx6eT0oZT0+KGVbZS5GYWxzZT0wXT1cIkZhbHNlXCIsZVtlLlVua25vd249MV09XCJVbmtub3duXCIsZVtlLk1heWJlPTNdPVwiTWF5YmVcIixlW2UuVHJ1ZT0tMV09XCJUcnVlXCIsZSkpKHp5fHx7fSksV3k9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuRXhwb3J0c1Byb3BlcnR5PTFdPVwiRXhwb3J0c1Byb3BlcnR5XCIsZVtlLk1vZHVsZUV4cG9ydHM9Ml09XCJNb2R1bGVFeHBvcnRzXCIsZVtlLlByb3RvdHlwZVByb3BlcnR5PTNdPVwiUHJvdG90eXBlUHJvcGVydHlcIixlW2UuVGhpc1Byb3BlcnR5PTRdPVwiVGhpc1Byb3BlcnR5XCIsZVtlLlByb3BlcnR5PTVdPVwiUHJvcGVydHlcIixlW2UuUHJvdG90eXBlPTZdPVwiUHJvdG90eXBlXCIsZVtlLk9iamVjdERlZmluZVByb3BlcnR5VmFsdWU9N109XCJPYmplY3REZWZpbmVQcm9wZXJ0eVZhbHVlXCIsZVtlLk9iamVjdERlZmluZVByb3BlcnR5RXhwb3J0cz04XT1cIk9iamVjdERlZmluZVByb3BlcnR5RXhwb3J0c1wiLGVbZS5PYmplY3REZWZpbmVQcm90b3R5cGVQcm9wZXJ0eT05XT1cIk9iamVjdERlZmluZVByb3RvdHlwZVByb3BlcnR5XCIsZSkpKFd5fHx7fSksY2Q9KGU9PihlW2UuV2FybmluZz0wXT1cIldhcm5pbmdcIixlW2UuRXJyb3I9MV09XCJFcnJvclwiLGVbZS5TdWdnZXN0aW9uPTJdPVwiU3VnZ2VzdGlvblwiLGVbZS5NZXNzYWdlPTNdPVwiTWVzc2FnZVwiLGUpKShjZHx8e30pLFZ5PShlPT4oZVtlLkNsYXNzaWM9MV09XCJDbGFzc2ljXCIsZVtlLk5vZGVKcz0yXT1cIk5vZGVKc1wiLGVbZS5Ob2RlMTA9Ml09XCJOb2RlMTBcIixlW2UuTm9kZTE2PTNdPVwiTm9kZTE2XCIsZVtlLk5vZGVOZXh0PTk5XT1cIk5vZGVOZXh0XCIsZVtlLkJ1bmRsZXI9MTAwXT1cIkJ1bmRsZXJcIixlKSkoVnl8fHt9KSxIeT0oZT0+KGVbZS5MZWdhY3k9MV09XCJMZWdhY3lcIixlW2UuQXV0bz0yXT1cIkF1dG9cIixlW2UuRm9yY2U9M109XCJGb3JjZVwiLGUpKShIeXx8e30pLEd5PShlPT4oZVtlLkZpeGVkUG9sbGluZ0ludGVydmFsPTBdPVwiRml4ZWRQb2xsaW5nSW50ZXJ2YWxcIixlW2UuUHJpb3JpdHlQb2xsaW5nSW50ZXJ2YWw9MV09XCJQcmlvcml0eVBvbGxpbmdJbnRlcnZhbFwiLGVbZS5EeW5hbWljUHJpb3JpdHlQb2xsaW5nPTJdPVwiRHluYW1pY1ByaW9yaXR5UG9sbGluZ1wiLGVbZS5GaXhlZENodW5rU2l6ZVBvbGxpbmc9M109XCJGaXhlZENodW5rU2l6ZVBvbGxpbmdcIixlW2UuVXNlRnNFdmVudHM9NF09XCJVc2VGc0V2ZW50c1wiLGVbZS5Vc2VGc0V2ZW50c09uUGFyZW50RGlyZWN0b3J5PTVdPVwiVXNlRnNFdmVudHNPblBhcmVudERpcmVjdG9yeVwiLGUpKShHeXx8e30pLFh5PShlPT4oZVtlLlVzZUZzRXZlbnRzPTBdPVwiVXNlRnNFdmVudHNcIixlW2UuRml4ZWRQb2xsaW5nSW50ZXJ2YWw9MV09XCJGaXhlZFBvbGxpbmdJbnRlcnZhbFwiLGVbZS5EeW5hbWljUHJpb3JpdHlQb2xsaW5nPTJdPVwiRHluYW1pY1ByaW9yaXR5UG9sbGluZ1wiLGVbZS5GaXhlZENodW5rU2l6ZVBvbGxpbmc9M109XCJGaXhlZENodW5rU2l6ZVBvbGxpbmdcIixlKSkoWHl8fHt9KSwkeT0oZT0+KGVbZS5GaXhlZEludGVydmFsPTBdPVwiRml4ZWRJbnRlcnZhbFwiLGVbZS5Qcmlvcml0eUludGVydmFsPTFdPVwiUHJpb3JpdHlJbnRlcnZhbFwiLGVbZS5EeW5hbWljUHJpb3JpdHk9Ml09XCJEeW5hbWljUHJpb3JpdHlcIixlW2UuRml4ZWRDaHVua1NpemU9M109XCJGaXhlZENodW5rU2l6ZVwiLGUpKSgkeXx8e30pLFF5PShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkNvbW1vbkpTPTFdPVwiQ29tbW9uSlNcIixlW2UuQU1EPTJdPVwiQU1EXCIsZVtlLlVNRD0zXT1cIlVNRFwiLGVbZS5TeXN0ZW09NF09XCJTeXN0ZW1cIixlW2UuRVMyMDE1PTVdPVwiRVMyMDE1XCIsZVtlLkVTMjAyMD02XT1cIkVTMjAyMFwiLGVbZS5FUzIwMjI9N109XCJFUzIwMjJcIixlW2UuRVNOZXh0PTk5XT1cIkVTTmV4dFwiLGVbZS5Ob2RlMTY9MTAwXT1cIk5vZGUxNlwiLGVbZS5Ob2RlTmV4dD0xOTldPVwiTm9kZU5leHRcIixlKSkoUXl8fHt9KSxZeT0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5QcmVzZXJ2ZT0xXT1cIlByZXNlcnZlXCIsZVtlLlJlYWN0PTJdPVwiUmVhY3RcIixlW2UuUmVhY3ROYXRpdmU9M109XCJSZWFjdE5hdGl2ZVwiLGVbZS5SZWFjdEpTWD00XT1cIlJlYWN0SlNYXCIsZVtlLlJlYWN0SlNYRGV2PTVdPVwiUmVhY3RKU1hEZXZcIixlKSkoWXl8fHt9KSxLeT0oZT0+KGVbZS5SZW1vdmU9MF09XCJSZW1vdmVcIixlW2UuUHJlc2VydmU9MV09XCJQcmVzZXJ2ZVwiLGVbZS5FcnJvcj0yXT1cIkVycm9yXCIsZSkpKEt5fHx7fSksWnk9KGU9PihlW2UuQ2FycmlhZ2VSZXR1cm5MaW5lRmVlZD0wXT1cIkNhcnJpYWdlUmV0dXJuTGluZUZlZWRcIixlW2UuTGluZUZlZWQ9MV09XCJMaW5lRmVlZFwiLGUpKShaeXx8e30pLGxkPShlPT4oZVtlLlVua25vd249MF09XCJVbmtub3duXCIsZVtlLkpTPTFdPVwiSlNcIixlW2UuSlNYPTJdPVwiSlNYXCIsZVtlLlRTPTNdPVwiVFNcIixlW2UuVFNYPTRdPVwiVFNYXCIsZVtlLkV4dGVybmFsPTVdPVwiRXh0ZXJuYWxcIixlW2UuSlNPTj02XT1cIkpTT05cIixlW2UuRGVmZXJyZWQ9N109XCJEZWZlcnJlZFwiLGUpKShsZHx8e30pLGUwPShlPT4oZVtlLkVTMz0wXT1cIkVTM1wiLGVbZS5FUzU9MV09XCJFUzVcIixlW2UuRVMyMDE1PTJdPVwiRVMyMDE1XCIsZVtlLkVTMjAxNj0zXT1cIkVTMjAxNlwiLGVbZS5FUzIwMTc9NF09XCJFUzIwMTdcIixlW2UuRVMyMDE4PTVdPVwiRVMyMDE4XCIsZVtlLkVTMjAxOT02XT1cIkVTMjAxOVwiLGVbZS5FUzIwMjA9N109XCJFUzIwMjBcIixlW2UuRVMyMDIxPThdPVwiRVMyMDIxXCIsZVtlLkVTMjAyMj05XT1cIkVTMjAyMlwiLGVbZS5FU05leHQ9OTldPVwiRVNOZXh0XCIsZVtlLkpTT049MTAwXT1cIkpTT05cIixlW2UuTGF0ZXN0PTk5XT1cIkxhdGVzdFwiLGUpKShlMHx8e30pLHQwPShlPT4oZVtlLlN0YW5kYXJkPTBdPVwiU3RhbmRhcmRcIixlW2UuSlNYPTFdPVwiSlNYXCIsZSkpKHQwfHx7fSkscjA9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuUmVjdXJzaXZlPTFdPVwiUmVjdXJzaXZlXCIsZSkpKHIwfHx7fSksbjA9KGU9PihlW2UubnVsbENoYXJhY3Rlcj0wXT1cIm51bGxDaGFyYWN0ZXJcIixlW2UubWF4QXNjaWlDaGFyYWN0ZXI9MTI3XT1cIm1heEFzY2lpQ2hhcmFjdGVyXCIsZVtlLmxpbmVGZWVkPTEwXT1cImxpbmVGZWVkXCIsZVtlLmNhcnJpYWdlUmV0dXJuPTEzXT1cImNhcnJpYWdlUmV0dXJuXCIsZVtlLmxpbmVTZXBhcmF0b3I9ODIzMl09XCJsaW5lU2VwYXJhdG9yXCIsZVtlLnBhcmFncmFwaFNlcGFyYXRvcj04MjMzXT1cInBhcmFncmFwaFNlcGFyYXRvclwiLGVbZS5uZXh0TGluZT0xMzNdPVwibmV4dExpbmVcIixlW2Uuc3BhY2U9MzJdPVwic3BhY2VcIixlW2Uubm9uQnJlYWtpbmdTcGFjZT0xNjBdPVwibm9uQnJlYWtpbmdTcGFjZVwiLGVbZS5lblF1YWQ9ODE5Ml09XCJlblF1YWRcIixlW2UuZW1RdWFkPTgxOTNdPVwiZW1RdWFkXCIsZVtlLmVuU3BhY2U9ODE5NF09XCJlblNwYWNlXCIsZVtlLmVtU3BhY2U9ODE5NV09XCJlbVNwYWNlXCIsZVtlLnRocmVlUGVyRW1TcGFjZT04MTk2XT1cInRocmVlUGVyRW1TcGFjZVwiLGVbZS5mb3VyUGVyRW1TcGFjZT04MTk3XT1cImZvdXJQZXJFbVNwYWNlXCIsZVtlLnNpeFBlckVtU3BhY2U9ODE5OF09XCJzaXhQZXJFbVNwYWNlXCIsZVtlLmZpZ3VyZVNwYWNlPTgxOTldPVwiZmlndXJlU3BhY2VcIixlW2UucHVuY3R1YXRpb25TcGFjZT04MjAwXT1cInB1bmN0dWF0aW9uU3BhY2VcIixlW2UudGhpblNwYWNlPTgyMDFdPVwidGhpblNwYWNlXCIsZVtlLmhhaXJTcGFjZT04MjAyXT1cImhhaXJTcGFjZVwiLGVbZS56ZXJvV2lkdGhTcGFjZT04MjAzXT1cInplcm9XaWR0aFNwYWNlXCIsZVtlLm5hcnJvd05vQnJlYWtTcGFjZT04MjM5XT1cIm5hcnJvd05vQnJlYWtTcGFjZVwiLGVbZS5pZGVvZ3JhcGhpY1NwYWNlPTEyMjg4XT1cImlkZW9ncmFwaGljU3BhY2VcIixlW2UubWF0aGVtYXRpY2FsU3BhY2U9ODI4N109XCJtYXRoZW1hdGljYWxTcGFjZVwiLGVbZS5vZ2hhbT01NzYwXT1cIm9naGFtXCIsZVtlLnJlcGxhY2VtZW50Q2hhcmFjdGVyPTY1NTMzXT1cInJlcGxhY2VtZW50Q2hhcmFjdGVyXCIsZVtlLl89OTVdPVwiX1wiLGVbZS4kPTM2XT1cIiRcIixlW2UuXzA9NDhdPVwiXzBcIixlW2UuXzE9NDldPVwiXzFcIixlW2UuXzI9NTBdPVwiXzJcIixlW2UuXzM9NTFdPVwiXzNcIixlW2UuXzQ9NTJdPVwiXzRcIixlW2UuXzU9NTNdPVwiXzVcIixlW2UuXzY9NTRdPVwiXzZcIixlW2UuXzc9NTVdPVwiXzdcIixlW2UuXzg9NTZdPVwiXzhcIixlW2UuXzk9NTddPVwiXzlcIixlW2UuYT05N109XCJhXCIsZVtlLmI9OThdPVwiYlwiLGVbZS5jPTk5XT1cImNcIixlW2UuZD0xMDBdPVwiZFwiLGVbZS5lPTEwMV09XCJlXCIsZVtlLmY9MTAyXT1cImZcIixlW2UuZz0xMDNdPVwiZ1wiLGVbZS5oPTEwNF09XCJoXCIsZVtlLmk9MTA1XT1cImlcIixlW2Uuaj0xMDZdPVwialwiLGVbZS5rPTEwN109XCJrXCIsZVtlLmw9MTA4XT1cImxcIixlW2UubT0xMDldPVwibVwiLGVbZS5uPTExMF09XCJuXCIsZVtlLm89MTExXT1cIm9cIixlW2UucD0xMTJdPVwicFwiLGVbZS5xPTExM109XCJxXCIsZVtlLnI9MTE0XT1cInJcIixlW2Uucz0xMTVdPVwic1wiLGVbZS50PTExNl09XCJ0XCIsZVtlLnU9MTE3XT1cInVcIixlW2Uudj0xMThdPVwidlwiLGVbZS53PTExOV09XCJ3XCIsZVtlLng9MTIwXT1cInhcIixlW2UueT0xMjFdPVwieVwiLGVbZS56PTEyMl09XCJ6XCIsZVtlLkE9NjVdPVwiQVwiLGVbZS5CPTY2XT1cIkJcIixlW2UuQz02N109XCJDXCIsZVtlLkQ9NjhdPVwiRFwiLGVbZS5FPTY5XT1cIkVcIixlW2UuRj03MF09XCJGXCIsZVtlLkc9NzFdPVwiR1wiLGVbZS5IPTcyXT1cIkhcIixlW2UuST03M109XCJJXCIsZVtlLko9NzRdPVwiSlwiLGVbZS5LPTc1XT1cIktcIixlW2UuTD03Nl09XCJMXCIsZVtlLk09NzddPVwiTVwiLGVbZS5OPTc4XT1cIk5cIixlW2UuTz03OV09XCJPXCIsZVtlLlA9ODBdPVwiUFwiLGVbZS5RPTgxXT1cIlFcIixlW2UuUj04Ml09XCJSXCIsZVtlLlM9ODNdPVwiU1wiLGVbZS5UPTg0XT1cIlRcIixlW2UuVT04NV09XCJVXCIsZVtlLlY9ODZdPVwiVlwiLGVbZS5XPTg3XT1cIldcIixlW2UuWD04OF09XCJYXCIsZVtlLlk9ODldPVwiWVwiLGVbZS5aPTkwXT1cIlpcIixlW2UuYW1wZXJzYW5kPTM4XT1cImFtcGVyc2FuZFwiLGVbZS5hc3Rlcmlzaz00Ml09XCJhc3Rlcmlza1wiLGVbZS5hdD02NF09XCJhdFwiLGVbZS5iYWNrc2xhc2g9OTJdPVwiYmFja3NsYXNoXCIsZVtlLmJhY2t0aWNrPTk2XT1cImJhY2t0aWNrXCIsZVtlLmJhcj0xMjRdPVwiYmFyXCIsZVtlLmNhcmV0PTk0XT1cImNhcmV0XCIsZVtlLmNsb3NlQnJhY2U9MTI1XT1cImNsb3NlQnJhY2VcIixlW2UuY2xvc2VCcmFja2V0PTkzXT1cImNsb3NlQnJhY2tldFwiLGVbZS5jbG9zZVBhcmVuPTQxXT1cImNsb3NlUGFyZW5cIixlW2UuY29sb249NThdPVwiY29sb25cIixlW2UuY29tbWE9NDRdPVwiY29tbWFcIixlW2UuZG90PTQ2XT1cImRvdFwiLGVbZS5kb3VibGVRdW90ZT0zNF09XCJkb3VibGVRdW90ZVwiLGVbZS5lcXVhbHM9NjFdPVwiZXF1YWxzXCIsZVtlLmV4Y2xhbWF0aW9uPTMzXT1cImV4Y2xhbWF0aW9uXCIsZVtlLmdyZWF0ZXJUaGFuPTYyXT1cImdyZWF0ZXJUaGFuXCIsZVtlLmhhc2g9MzVdPVwiaGFzaFwiLGVbZS5sZXNzVGhhbj02MF09XCJsZXNzVGhhblwiLGVbZS5taW51cz00NV09XCJtaW51c1wiLGVbZS5vcGVuQnJhY2U9MTIzXT1cIm9wZW5CcmFjZVwiLGVbZS5vcGVuQnJhY2tldD05MV09XCJvcGVuQnJhY2tldFwiLGVbZS5vcGVuUGFyZW49NDBdPVwib3BlblBhcmVuXCIsZVtlLnBlcmNlbnQ9MzddPVwicGVyY2VudFwiLGVbZS5wbHVzPTQzXT1cInBsdXNcIixlW2UucXVlc3Rpb249NjNdPVwicXVlc3Rpb25cIixlW2Uuc2VtaWNvbG9uPTU5XT1cInNlbWljb2xvblwiLGVbZS5zaW5nbGVRdW90ZT0zOV09XCJzaW5nbGVRdW90ZVwiLGVbZS5zbGFzaD00N109XCJzbGFzaFwiLGVbZS50aWxkZT0xMjZdPVwidGlsZGVcIixlW2UuYmFja3NwYWNlPThdPVwiYmFja3NwYWNlXCIsZVtlLmZvcm1GZWVkPTEyXT1cImZvcm1GZWVkXCIsZVtlLmJ5dGVPcmRlck1hcms9NjUyNzldPVwiYnl0ZU9yZGVyTWFya1wiLGVbZS50YWI9OV09XCJ0YWJcIixlW2UudmVydGljYWxUYWI9MTFdPVwidmVydGljYWxUYWJcIixlKSkobjB8fHt9KSxpMD0oZT0+KGUuVHM9XCIudHNcIixlLlRzeD1cIi50c3hcIixlLkR0cz1cIi5kLnRzXCIsZS5Kcz1cIi5qc1wiLGUuSnN4PVwiLmpzeFwiLGUuSnNvbj1cIi5qc29uXCIsZS5Uc0J1aWxkSW5mbz1cIi50c2J1aWxkaW5mb1wiLGUuTWpzPVwiLm1qc1wiLGUuTXRzPVwiLm10c1wiLGUuRG10cz1cIi5kLm10c1wiLGUuQ2pzPVwiLmNqc1wiLGUuQ3RzPVwiLmN0c1wiLGUuRGN0cz1cIi5kLmN0c1wiLGUpKShpMHx8e30pLHVkPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkNvbnRhaW5zVHlwZVNjcmlwdD0xXT1cIkNvbnRhaW5zVHlwZVNjcmlwdFwiLGVbZS5Db250YWluc0pzeD0yXT1cIkNvbnRhaW5zSnN4XCIsZVtlLkNvbnRhaW5zRVNOZXh0PTRdPVwiQ29udGFpbnNFU05leHRcIixlW2UuQ29udGFpbnNFUzIwMjI9OF09XCJDb250YWluc0VTMjAyMlwiLGVbZS5Db250YWluc0VTMjAyMT0xNl09XCJDb250YWluc0VTMjAyMVwiLGVbZS5Db250YWluc0VTMjAyMD0zMl09XCJDb250YWluc0VTMjAyMFwiLGVbZS5Db250YWluc0VTMjAxOT02NF09XCJDb250YWluc0VTMjAxOVwiLGVbZS5Db250YWluc0VTMjAxOD0xMjhdPVwiQ29udGFpbnNFUzIwMThcIixlW2UuQ29udGFpbnNFUzIwMTc9MjU2XT1cIkNvbnRhaW5zRVMyMDE3XCIsZVtlLkNvbnRhaW5zRVMyMDE2PTUxMl09XCJDb250YWluc0VTMjAxNlwiLGVbZS5Db250YWluc0VTMjAxNT0xMDI0XT1cIkNvbnRhaW5zRVMyMDE1XCIsZVtlLkNvbnRhaW5zR2VuZXJhdG9yPTIwNDhdPVwiQ29udGFpbnNHZW5lcmF0b3JcIixlW2UuQ29udGFpbnNEZXN0cnVjdHVyaW5nQXNzaWdubWVudD00MDk2XT1cIkNvbnRhaW5zRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnRcIixlW2UuQ29udGFpbnNUeXBlU2NyaXB0Q2xhc3NTeW50YXg9ODE5Ml09XCJDb250YWluc1R5cGVTY3JpcHRDbGFzc1N5bnRheFwiLGVbZS5Db250YWluc0xleGljYWxUaGlzPTE2Mzg0XT1cIkNvbnRhaW5zTGV4aWNhbFRoaXNcIixlW2UuQ29udGFpbnNSZXN0T3JTcHJlYWQ9MzI3NjhdPVwiQ29udGFpbnNSZXN0T3JTcHJlYWRcIixlW2UuQ29udGFpbnNPYmplY3RSZXN0T3JTcHJlYWQ9NjU1MzZdPVwiQ29udGFpbnNPYmplY3RSZXN0T3JTcHJlYWRcIixlW2UuQ29udGFpbnNDb21wdXRlZFByb3BlcnR5TmFtZT0xMzEwNzJdPVwiQ29udGFpbnNDb21wdXRlZFByb3BlcnR5TmFtZVwiLGVbZS5Db250YWluc0Jsb2NrU2NvcGVkQmluZGluZz0yNjIxNDRdPVwiQ29udGFpbnNCbG9ja1Njb3BlZEJpbmRpbmdcIixlW2UuQ29udGFpbnNCaW5kaW5nUGF0dGVybj01MjQyODhdPVwiQ29udGFpbnNCaW5kaW5nUGF0dGVyblwiLGVbZS5Db250YWluc1lpZWxkPTEwNDg1NzZdPVwiQ29udGFpbnNZaWVsZFwiLGVbZS5Db250YWluc0F3YWl0PTIwOTcxNTJdPVwiQ29udGFpbnNBd2FpdFwiLGVbZS5Db250YWluc0hvaXN0ZWREZWNsYXJhdGlvbk9yQ29tcGxldGlvbj00MTk0MzA0XT1cIkNvbnRhaW5zSG9pc3RlZERlY2xhcmF0aW9uT3JDb21wbGV0aW9uXCIsZVtlLkNvbnRhaW5zRHluYW1pY0ltcG9ydD04Mzg4NjA4XT1cIkNvbnRhaW5zRHluYW1pY0ltcG9ydFwiLGVbZS5Db250YWluc0NsYXNzRmllbGRzPTE2Nzc3MjE2XT1cIkNvbnRhaW5zQ2xhc3NGaWVsZHNcIixlW2UuQ29udGFpbnNEZWNvcmF0b3JzPTMzNTU0NDMyXT1cIkNvbnRhaW5zRGVjb3JhdG9yc1wiLGVbZS5Db250YWluc1Bvc3NpYmxlVG9wTGV2ZWxBd2FpdD02NzEwODg2NF09XCJDb250YWluc1Bvc3NpYmxlVG9wTGV2ZWxBd2FpdFwiLGVbZS5Db250YWluc0xleGljYWxTdXBlcj0xMzQyMTc3MjhdPVwiQ29udGFpbnNMZXhpY2FsU3VwZXJcIixlW2UuQ29udGFpbnNVcGRhdGVFeHByZXNzaW9uRm9ySWRlbnRpZmllcj0yNjg0MzU0NTZdPVwiQ29udGFpbnNVcGRhdGVFeHByZXNzaW9uRm9ySWRlbnRpZmllclwiLGVbZS5Db250YWluc1ByaXZhdGVJZGVudGlmaWVySW5FeHByZXNzaW9uPTUzNjg3MDkxMl09XCJDb250YWluc1ByaXZhdGVJZGVudGlmaWVySW5FeHByZXNzaW9uXCIsZVtlLkhhc0NvbXB1dGVkRmxhZ3M9LTIxNDc0ODM2NDhdPVwiSGFzQ29tcHV0ZWRGbGFnc1wiLGVbZS5Bc3NlcnRUeXBlU2NyaXB0PTFdPVwiQXNzZXJ0VHlwZVNjcmlwdFwiLGVbZS5Bc3NlcnRKc3g9Ml09XCJBc3NlcnRKc3hcIixlW2UuQXNzZXJ0RVNOZXh0PTRdPVwiQXNzZXJ0RVNOZXh0XCIsZVtlLkFzc2VydEVTMjAyMj04XT1cIkFzc2VydEVTMjAyMlwiLGVbZS5Bc3NlcnRFUzIwMjE9MTZdPVwiQXNzZXJ0RVMyMDIxXCIsZVtlLkFzc2VydEVTMjAyMD0zMl09XCJBc3NlcnRFUzIwMjBcIixlW2UuQXNzZXJ0RVMyMDE5PTY0XT1cIkFzc2VydEVTMjAxOVwiLGVbZS5Bc3NlcnRFUzIwMTg9MTI4XT1cIkFzc2VydEVTMjAxOFwiLGVbZS5Bc3NlcnRFUzIwMTc9MjU2XT1cIkFzc2VydEVTMjAxN1wiLGVbZS5Bc3NlcnRFUzIwMTY9NTEyXT1cIkFzc2VydEVTMjAxNlwiLGVbZS5Bc3NlcnRFUzIwMTU9MTAyNF09XCJBc3NlcnRFUzIwMTVcIixlW2UuQXNzZXJ0R2VuZXJhdG9yPTIwNDhdPVwiQXNzZXJ0R2VuZXJhdG9yXCIsZVtlLkFzc2VydERlc3RydWN0dXJpbmdBc3NpZ25tZW50PTQwOTZdPVwiQXNzZXJ0RGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnRcIixlW2UuT3V0ZXJFeHByZXNzaW9uRXhjbHVkZXM9LTIxNDc0ODM2NDhdPVwiT3V0ZXJFeHByZXNzaW9uRXhjbHVkZXNcIixlW2UuUHJvcGVydHlBY2Nlc3NFeGNsdWRlcz0tMjE0NzQ4MzY0OF09XCJQcm9wZXJ0eUFjY2Vzc0V4Y2x1ZGVzXCIsZVtlLk5vZGVFeGNsdWRlcz0tMjE0NzQ4MzY0OF09XCJOb2RlRXhjbHVkZXNcIixlW2UuQXJyb3dGdW5jdGlvbkV4Y2x1ZGVzPS0yMDcyMTc0NTkyXT1cIkFycm93RnVuY3Rpb25FeGNsdWRlc1wiLGVbZS5GdW5jdGlvbkV4Y2x1ZGVzPS0xOTM3OTQwNDgwXT1cIkZ1bmN0aW9uRXhjbHVkZXNcIixlW2UuQ29uc3RydWN0b3JFeGNsdWRlcz0tMTkzNzk0ODY3Ml09XCJDb25zdHJ1Y3RvckV4Y2x1ZGVzXCIsZVtlLk1ldGhvZE9yQWNjZXNzb3JFeGNsdWRlcz0tMjAwNTA1NzUzNl09XCJNZXRob2RPckFjY2Vzc29yRXhjbHVkZXNcIixlW2UuUHJvcGVydHlFeGNsdWRlcz0tMjAxMzI0OTUzNl09XCJQcm9wZXJ0eUV4Y2x1ZGVzXCIsZVtlLkNsYXNzRXhjbHVkZXM9LTIxNDczNDQzODRdPVwiQ2xhc3NFeGNsdWRlc1wiLGVbZS5Nb2R1bGVFeGNsdWRlcz0tMTk0MTY3NjAzMl09XCJNb2R1bGVFeGNsdWRlc1wiLGVbZS5UeXBlRXhjbHVkZXM9LTJdPVwiVHlwZUV4Y2x1ZGVzXCIsZVtlLk9iamVjdExpdGVyYWxFeGNsdWRlcz0tMjE0NzI3ODg0OF09XCJPYmplY3RMaXRlcmFsRXhjbHVkZXNcIixlW2UuQXJyYXlMaXRlcmFsT3JDYWxsT3JOZXdFeGNsdWRlcz0tMjE0NzQ1MDg4MF09XCJBcnJheUxpdGVyYWxPckNhbGxPck5ld0V4Y2x1ZGVzXCIsZVtlLlZhcmlhYmxlRGVjbGFyYXRpb25MaXN0RXhjbHVkZXM9LTIxNDY4OTM4MjRdPVwiVmFyaWFibGVEZWNsYXJhdGlvbkxpc3RFeGNsdWRlc1wiLGVbZS5QYXJhbWV0ZXJFeGNsdWRlcz0tMjE0NzQ4MzY0OF09XCJQYXJhbWV0ZXJFeGNsdWRlc1wiLGVbZS5DYXRjaENsYXVzZUV4Y2x1ZGVzPS0yMTQ3NDE4MTEyXT1cIkNhdGNoQ2xhdXNlRXhjbHVkZXNcIixlW2UuQmluZGluZ1BhdHRlcm5FeGNsdWRlcz0tMjE0NzQ1MDg4MF09XCJCaW5kaW5nUGF0dGVybkV4Y2x1ZGVzXCIsZVtlLkNvbnRhaW5zTGV4aWNhbFRoaXNPclN1cGVyPTEzNDIzNDExMl09XCJDb250YWluc0xleGljYWxUaGlzT3JTdXBlclwiLGVbZS5Qcm9wZXJ0eU5hbWVQcm9wYWdhdGluZ0ZsYWdzPTEzNDIzNDExMl09XCJQcm9wZXJ0eU5hbWVQcm9wYWdhdGluZ0ZsYWdzXCIsZSkpKHVkfHx7fSkscGQ9KGU9PihlW2UuVGFiU3RvcD0wXT1cIlRhYlN0b3BcIixlW2UuUGxhY2Vob2xkZXI9MV09XCJQbGFjZWhvbGRlclwiLGVbZS5DaG9pY2U9Ml09XCJDaG9pY2VcIixlW2UuVmFyaWFibGU9M109XCJWYXJpYWJsZVwiLGUpKShwZHx8e30pLGZkPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLlNpbmdsZUxpbmU9MV09XCJTaW5nbGVMaW5lXCIsZVtlLk11bHRpTGluZT0yXT1cIk11bHRpTGluZVwiLGVbZS5BZHZpc2VPbkVtaXROb2RlPTRdPVwiQWR2aXNlT25FbWl0Tm9kZVwiLGVbZS5Ob1N1YnN0aXR1dGlvbj04XT1cIk5vU3Vic3RpdHV0aW9uXCIsZVtlLkNhcHR1cmVzVGhpcz0xNl09XCJDYXB0dXJlc1RoaXNcIixlW2UuTm9MZWFkaW5nU291cmNlTWFwPTMyXT1cIk5vTGVhZGluZ1NvdXJjZU1hcFwiLGVbZS5Ob1RyYWlsaW5nU291cmNlTWFwPTY0XT1cIk5vVHJhaWxpbmdTb3VyY2VNYXBcIixlW2UuTm9Tb3VyY2VNYXA9OTZdPVwiTm9Tb3VyY2VNYXBcIixlW2UuTm9OZXN0ZWRTb3VyY2VNYXBzPTEyOF09XCJOb05lc3RlZFNvdXJjZU1hcHNcIixlW2UuTm9Ub2tlbkxlYWRpbmdTb3VyY2VNYXBzPTI1Nl09XCJOb1Rva2VuTGVhZGluZ1NvdXJjZU1hcHNcIixlW2UuTm9Ub2tlblRyYWlsaW5nU291cmNlTWFwcz01MTJdPVwiTm9Ub2tlblRyYWlsaW5nU291cmNlTWFwc1wiLGVbZS5Ob1Rva2VuU291cmNlTWFwcz03NjhdPVwiTm9Ub2tlblNvdXJjZU1hcHNcIixlW2UuTm9MZWFkaW5nQ29tbWVudHM9MTAyNF09XCJOb0xlYWRpbmdDb21tZW50c1wiLGVbZS5Ob1RyYWlsaW5nQ29tbWVudHM9MjA0OF09XCJOb1RyYWlsaW5nQ29tbWVudHNcIixlW2UuTm9Db21tZW50cz0zMDcyXT1cIk5vQ29tbWVudHNcIixlW2UuTm9OZXN0ZWRDb21tZW50cz00MDk2XT1cIk5vTmVzdGVkQ29tbWVudHNcIixlW2UuSGVscGVyTmFtZT04MTkyXT1cIkhlbHBlck5hbWVcIixlW2UuRXhwb3J0TmFtZT0xNjM4NF09XCJFeHBvcnROYW1lXCIsZVtlLkxvY2FsTmFtZT0zMjc2OF09XCJMb2NhbE5hbWVcIixlW2UuSW50ZXJuYWxOYW1lPTY1NTM2XT1cIkludGVybmFsTmFtZVwiLGVbZS5JbmRlbnRlZD0xMzEwNzJdPVwiSW5kZW50ZWRcIixlW2UuTm9JbmRlbnRhdGlvbj0yNjIxNDRdPVwiTm9JbmRlbnRhdGlvblwiLGVbZS5Bc3luY0Z1bmN0aW9uQm9keT01MjQyODhdPVwiQXN5bmNGdW5jdGlvbkJvZHlcIixlW2UuUmV1c2VUZW1wVmFyaWFibGVTY29wZT0xMDQ4NTc2XT1cIlJldXNlVGVtcFZhcmlhYmxlU2NvcGVcIixlW2UuQ3VzdG9tUHJvbG9ndWU9MjA5NzE1Ml09XCJDdXN0b21Qcm9sb2d1ZVwiLGVbZS5Ob0hvaXN0aW5nPTQxOTQzMDRdPVwiTm9Ib2lzdGluZ1wiLGVbZS5JdGVyYXRvcj04Mzg4NjA4XT1cIkl0ZXJhdG9yXCIsZVtlLk5vQXNjaWlFc2NhcGluZz0xNjc3NzIxNl09XCJOb0FzY2lpRXNjYXBpbmdcIixlKSkoZmR8fHt9KSxhMD0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5UeXBlU2NyaXB0Q2xhc3NXcmFwcGVyPTFdPVwiVHlwZVNjcmlwdENsYXNzV3JhcHBlclwiLGVbZS5OZXZlckFwcGx5SW1wb3J0SGVscGVyPTJdPVwiTmV2ZXJBcHBseUltcG9ydEhlbHBlclwiLGVbZS5JZ25vcmVTb3VyY2VOZXdsaW5lcz00XT1cIklnbm9yZVNvdXJjZU5ld2xpbmVzXCIsZVtlLkltbXV0YWJsZT04XT1cIkltbXV0YWJsZVwiLGVbZS5JbmRpcmVjdENhbGw9MTZdPVwiSW5kaXJlY3RDYWxsXCIsZVtlLlRyYW5zZm9ybVByaXZhdGVTdGF0aWNFbGVtZW50cz0zMl09XCJUcmFuc2Zvcm1Qcml2YXRlU3RhdGljRWxlbWVudHNcIixlKSkoYTB8fHt9KSxvMD0oZT0+KGVbZS5FeHRlbmRzPTFdPVwiRXh0ZW5kc1wiLGVbZS5Bc3NpZ249Ml09XCJBc3NpZ25cIixlW2UuUmVzdD00XT1cIlJlc3RcIixlW2UuRGVjb3JhdGU9OF09XCJEZWNvcmF0ZVwiLGVbZS5FU0RlY29yYXRlQW5kUnVuSW5pdGlhbGl6ZXJzPThdPVwiRVNEZWNvcmF0ZUFuZFJ1bkluaXRpYWxpemVyc1wiLGVbZS5NZXRhZGF0YT0xNl09XCJNZXRhZGF0YVwiLGVbZS5QYXJhbT0zMl09XCJQYXJhbVwiLGVbZS5Bd2FpdGVyPTY0XT1cIkF3YWl0ZXJcIixlW2UuR2VuZXJhdG9yPTEyOF09XCJHZW5lcmF0b3JcIixlW2UuVmFsdWVzPTI1Nl09XCJWYWx1ZXNcIixlW2UuUmVhZD01MTJdPVwiUmVhZFwiLGVbZS5TcHJlYWRBcnJheT0xMDI0XT1cIlNwcmVhZEFycmF5XCIsZVtlLkF3YWl0PTIwNDhdPVwiQXdhaXRcIixlW2UuQXN5bmNHZW5lcmF0b3I9NDA5Nl09XCJBc3luY0dlbmVyYXRvclwiLGVbZS5Bc3luY0RlbGVnYXRvcj04MTkyXT1cIkFzeW5jRGVsZWdhdG9yXCIsZVtlLkFzeW5jVmFsdWVzPTE2Mzg0XT1cIkFzeW5jVmFsdWVzXCIsZVtlLkV4cG9ydFN0YXI9MzI3NjhdPVwiRXhwb3J0U3RhclwiLGVbZS5JbXBvcnRTdGFyPTY1NTM2XT1cIkltcG9ydFN0YXJcIixlW2UuSW1wb3J0RGVmYXVsdD0xMzEwNzJdPVwiSW1wb3J0RGVmYXVsdFwiLGVbZS5NYWtlVGVtcGxhdGVPYmplY3Q9MjYyMTQ0XT1cIk1ha2VUZW1wbGF0ZU9iamVjdFwiLGVbZS5DbGFzc1ByaXZhdGVGaWVsZEdldD01MjQyODhdPVwiQ2xhc3NQcml2YXRlRmllbGRHZXRcIixlW2UuQ2xhc3NQcml2YXRlRmllbGRTZXQ9MTA0ODU3Nl09XCJDbGFzc1ByaXZhdGVGaWVsZFNldFwiLGVbZS5DbGFzc1ByaXZhdGVGaWVsZEluPTIwOTcxNTJdPVwiQ2xhc3NQcml2YXRlRmllbGRJblwiLGVbZS5DcmVhdGVCaW5kaW5nPTQxOTQzMDRdPVwiQ3JlYXRlQmluZGluZ1wiLGVbZS5TZXRGdW5jdGlvbk5hbWU9ODM4ODYwOF09XCJTZXRGdW5jdGlvbk5hbWVcIixlW2UuUHJvcEtleT0xNjc3NzIxNl09XCJQcm9wS2V5XCIsZVtlLkFkZERpc3Bvc2FibGVSZXNvdXJjZUFuZERpc3Bvc2VSZXNvdXJjZXM9MzM1NTQ0MzJdPVwiQWRkRGlzcG9zYWJsZVJlc291cmNlQW5kRGlzcG9zZVJlc291cmNlc1wiLGVbZS5GaXJzdEVtaXRIZWxwZXI9MV09XCJGaXJzdEVtaXRIZWxwZXJcIixlW2UuTGFzdEVtaXRIZWxwZXI9MzM1NTQ0MzJdPVwiTGFzdEVtaXRIZWxwZXJcIixlW2UuRm9yT2ZJbmNsdWRlcz0yNTZdPVwiRm9yT2ZJbmNsdWRlc1wiLGVbZS5Gb3JBd2FpdE9mSW5jbHVkZXM9MTYzODRdPVwiRm9yQXdhaXRPZkluY2x1ZGVzXCIsZVtlLkFzeW5jR2VuZXJhdG9ySW5jbHVkZXM9NjE0NF09XCJBc3luY0dlbmVyYXRvckluY2x1ZGVzXCIsZVtlLkFzeW5jRGVsZWdhdG9ySW5jbHVkZXM9MjY2MjRdPVwiQXN5bmNEZWxlZ2F0b3JJbmNsdWRlc1wiLGVbZS5TcHJlYWRJbmNsdWRlcz0xNTM2XT1cIlNwcmVhZEluY2x1ZGVzXCIsZSkpKG8wfHx7fSksczA9KGU9PihlW2UuU291cmNlRmlsZT0wXT1cIlNvdXJjZUZpbGVcIixlW2UuRXhwcmVzc2lvbj0xXT1cIkV4cHJlc3Npb25cIixlW2UuSWRlbnRpZmllck5hbWU9Ml09XCJJZGVudGlmaWVyTmFtZVwiLGVbZS5NYXBwZWRUeXBlUGFyYW1ldGVyPTNdPVwiTWFwcGVkVHlwZVBhcmFtZXRlclwiLGVbZS5VbnNwZWNpZmllZD00XT1cIlVuc3BlY2lmaWVkXCIsZVtlLkVtYmVkZGVkU3RhdGVtZW50PTVdPVwiRW1iZWRkZWRTdGF0ZW1lbnRcIixlW2UuSnN4QXR0cmlidXRlVmFsdWU9Nl09XCJKc3hBdHRyaWJ1dGVWYWx1ZVwiLGUpKShzMHx8e30pLF8wPShlPT4oZVtlLlBhcmVudGhlc2VzPTFdPVwiUGFyZW50aGVzZXNcIixlW2UuVHlwZUFzc2VydGlvbnM9Ml09XCJUeXBlQXNzZXJ0aW9uc1wiLGVbZS5Ob25OdWxsQXNzZXJ0aW9ucz00XT1cIk5vbk51bGxBc3NlcnRpb25zXCIsZVtlLlBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9ucz04XT1cIlBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9uc1wiLGVbZS5Bc3NlcnRpb25zPTZdPVwiQXNzZXJ0aW9uc1wiLGVbZS5BbGw9MTVdPVwiQWxsXCIsZVtlLkV4Y2x1ZGVKU0RvY1R5cGVBc3NlcnRpb249MTZdPVwiRXhjbHVkZUpTRG9jVHlwZUFzc2VydGlvblwiLGUpKShfMHx8e30pLGMwPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLkluUGFyYW1ldGVycz0xXT1cIkluUGFyYW1ldGVyc1wiLGVbZS5WYXJpYWJsZXNIb2lzdGVkSW5QYXJhbWV0ZXJzPTJdPVwiVmFyaWFibGVzSG9pc3RlZEluUGFyYW1ldGVyc1wiLGUpKShjMHx8e30pLGwwPShlPT4oZS5Qcm9sb2d1ZT1cInByb2xvZ3VlXCIsZS5FbWl0SGVscGVycz1cImVtaXRIZWxwZXJzXCIsZS5Ob0RlZmF1bHRMaWI9XCJuby1kZWZhdWx0LWxpYlwiLGUuUmVmZXJlbmNlPVwicmVmZXJlbmNlXCIsZS5UeXBlPVwidHlwZVwiLGUuVHlwZVJlc29sdXRpb25Nb2RlUmVxdWlyZT1cInR5cGUtcmVxdWlyZVwiLGUuVHlwZVJlc29sdXRpb25Nb2RlSW1wb3J0PVwidHlwZS1pbXBvcnRcIixlLkxpYj1cImxpYlwiLGUuUHJlcGVuZD1cInByZXBlbmRcIixlLlRleHQ9XCJ0ZXh0XCIsZS5JbnRlcm5hbD1cImludGVybmFsXCIsZSkpKGwwfHx7fSksdTA9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuU2luZ2xlTGluZT0wXT1cIlNpbmdsZUxpbmVcIixlW2UuTXVsdGlMaW5lPTFdPVwiTXVsdGlMaW5lXCIsZVtlLlByZXNlcnZlTGluZXM9Ml09XCJQcmVzZXJ2ZUxpbmVzXCIsZVtlLkxpbmVzTWFzaz0zXT1cIkxpbmVzTWFza1wiLGVbZS5Ob3REZWxpbWl0ZWQ9MF09XCJOb3REZWxpbWl0ZWRcIixlW2UuQmFyRGVsaW1pdGVkPTRdPVwiQmFyRGVsaW1pdGVkXCIsZVtlLkFtcGVyc2FuZERlbGltaXRlZD04XT1cIkFtcGVyc2FuZERlbGltaXRlZFwiLGVbZS5Db21tYURlbGltaXRlZD0xNl09XCJDb21tYURlbGltaXRlZFwiLGVbZS5Bc3Rlcmlza0RlbGltaXRlZD0zMl09XCJBc3Rlcmlza0RlbGltaXRlZFwiLGVbZS5EZWxpbWl0ZXJzTWFzaz02MF09XCJEZWxpbWl0ZXJzTWFza1wiLGVbZS5BbGxvd1RyYWlsaW5nQ29tbWE9NjRdPVwiQWxsb3dUcmFpbGluZ0NvbW1hXCIsZVtlLkluZGVudGVkPTEyOF09XCJJbmRlbnRlZFwiLGVbZS5TcGFjZUJldHdlZW5CcmFjZXM9MjU2XT1cIlNwYWNlQmV0d2VlbkJyYWNlc1wiLGVbZS5TcGFjZUJldHdlZW5TaWJsaW5ncz01MTJdPVwiU3BhY2VCZXR3ZWVuU2libGluZ3NcIixlW2UuQnJhY2VzPTEwMjRdPVwiQnJhY2VzXCIsZVtlLlBhcmVudGhlc2lzPTIwNDhdPVwiUGFyZW50aGVzaXNcIixlW2UuQW5nbGVCcmFja2V0cz00MDk2XT1cIkFuZ2xlQnJhY2tldHNcIixlW2UuU3F1YXJlQnJhY2tldHM9ODE5Ml09XCJTcXVhcmVCcmFja2V0c1wiLGVbZS5CcmFja2V0c01hc2s9MTUzNjBdPVwiQnJhY2tldHNNYXNrXCIsZVtlLk9wdGlvbmFsSWZVbmRlZmluZWQ9MTYzODRdPVwiT3B0aW9uYWxJZlVuZGVmaW5lZFwiLGVbZS5PcHRpb25hbElmRW1wdHk9MzI3NjhdPVwiT3B0aW9uYWxJZkVtcHR5XCIsZVtlLk9wdGlvbmFsPTQ5MTUyXT1cIk9wdGlvbmFsXCIsZVtlLlByZWZlck5ld0xpbmU9NjU1MzZdPVwiUHJlZmVyTmV3TGluZVwiLGVbZS5Ob1RyYWlsaW5nTmV3TGluZT0xMzEwNzJdPVwiTm9UcmFpbGluZ05ld0xpbmVcIixlW2UuTm9JbnRlcnZlbmluZ0NvbW1lbnRzPTI2MjE0NF09XCJOb0ludGVydmVuaW5nQ29tbWVudHNcIixlW2UuTm9TcGFjZUlmRW1wdHk9NTI0Mjg4XT1cIk5vU3BhY2VJZkVtcHR5XCIsZVtlLlNpbmdsZUVsZW1lbnQ9MTA0ODU3Nl09XCJTaW5nbGVFbGVtZW50XCIsZVtlLlNwYWNlQWZ0ZXJMaXN0PTIwOTcxNTJdPVwiU3BhY2VBZnRlckxpc3RcIixlW2UuTW9kaWZpZXJzPTIzNTk4MDhdPVwiTW9kaWZpZXJzXCIsZVtlLkhlcml0YWdlQ2xhdXNlcz01MTJdPVwiSGVyaXRhZ2VDbGF1c2VzXCIsZVtlLlNpbmdsZUxpbmVUeXBlTGl0ZXJhbE1lbWJlcnM9NzY4XT1cIlNpbmdsZUxpbmVUeXBlTGl0ZXJhbE1lbWJlcnNcIixlW2UuTXVsdGlMaW5lVHlwZUxpdGVyYWxNZW1iZXJzPTMyODk3XT1cIk11bHRpTGluZVR5cGVMaXRlcmFsTWVtYmVyc1wiLGVbZS5TaW5nbGVMaW5lVHVwbGVUeXBlRWxlbWVudHM9NTI4XT1cIlNpbmdsZUxpbmVUdXBsZVR5cGVFbGVtZW50c1wiLGVbZS5NdWx0aUxpbmVUdXBsZVR5cGVFbGVtZW50cz02NTddPVwiTXVsdGlMaW5lVHVwbGVUeXBlRWxlbWVudHNcIixlW2UuVW5pb25UeXBlQ29uc3RpdHVlbnRzPTUxNl09XCJVbmlvblR5cGVDb25zdGl0dWVudHNcIixlW2UuSW50ZXJzZWN0aW9uVHlwZUNvbnN0aXR1ZW50cz01MjBdPVwiSW50ZXJzZWN0aW9uVHlwZUNvbnN0aXR1ZW50c1wiLGVbZS5PYmplY3RCaW5kaW5nUGF0dGVybkVsZW1lbnRzPTUyNTEzNl09XCJPYmplY3RCaW5kaW5nUGF0dGVybkVsZW1lbnRzXCIsZVtlLkFycmF5QmluZGluZ1BhdHRlcm5FbGVtZW50cz01MjQ4ODBdPVwiQXJyYXlCaW5kaW5nUGF0dGVybkVsZW1lbnRzXCIsZVtlLk9iamVjdExpdGVyYWxFeHByZXNzaW9uUHJvcGVydGllcz01MjYyMjZdPVwiT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb25Qcm9wZXJ0aWVzXCIsZVtlLkltcG9ydENsYXVzZUVudHJpZXM9NTI2MjI2XT1cIkltcG9ydENsYXVzZUVudHJpZXNcIixlW2UuQXJyYXlMaXRlcmFsRXhwcmVzc2lvbkVsZW1lbnRzPTg5MTRdPVwiQXJyYXlMaXRlcmFsRXhwcmVzc2lvbkVsZW1lbnRzXCIsZVtlLkNvbW1hTGlzdEVsZW1lbnRzPTUyOF09XCJDb21tYUxpc3RFbGVtZW50c1wiLGVbZS5DYWxsRXhwcmVzc2lvbkFyZ3VtZW50cz0yNTc2XT1cIkNhbGxFeHByZXNzaW9uQXJndW1lbnRzXCIsZVtlLk5ld0V4cHJlc3Npb25Bcmd1bWVudHM9MTg5NjBdPVwiTmV3RXhwcmVzc2lvbkFyZ3VtZW50c1wiLGVbZS5UZW1wbGF0ZUV4cHJlc3Npb25TcGFucz0yNjIxNDRdPVwiVGVtcGxhdGVFeHByZXNzaW9uU3BhbnNcIixlW2UuU2luZ2xlTGluZUJsb2NrU3RhdGVtZW50cz03NjhdPVwiU2luZ2xlTGluZUJsb2NrU3RhdGVtZW50c1wiLGVbZS5NdWx0aUxpbmVCbG9ja1N0YXRlbWVudHM9MTI5XT1cIk11bHRpTGluZUJsb2NrU3RhdGVtZW50c1wiLGVbZS5WYXJpYWJsZURlY2xhcmF0aW9uTGlzdD01MjhdPVwiVmFyaWFibGVEZWNsYXJhdGlvbkxpc3RcIixlW2UuU2luZ2xlTGluZUZ1bmN0aW9uQm9keVN0YXRlbWVudHM9NzY4XT1cIlNpbmdsZUxpbmVGdW5jdGlvbkJvZHlTdGF0ZW1lbnRzXCIsZVtlLk11bHRpTGluZUZ1bmN0aW9uQm9keVN0YXRlbWVudHM9MV09XCJNdWx0aUxpbmVGdW5jdGlvbkJvZHlTdGF0ZW1lbnRzXCIsZVtlLkNsYXNzSGVyaXRhZ2VDbGF1c2VzPTBdPVwiQ2xhc3NIZXJpdGFnZUNsYXVzZXNcIixlW2UuQ2xhc3NNZW1iZXJzPTEyOV09XCJDbGFzc01lbWJlcnNcIixlW2UuSW50ZXJmYWNlTWVtYmVycz0xMjldPVwiSW50ZXJmYWNlTWVtYmVyc1wiLGVbZS5FbnVtTWVtYmVycz0xNDVdPVwiRW51bU1lbWJlcnNcIixlW2UuQ2FzZUJsb2NrQ2xhdXNlcz0xMjldPVwiQ2FzZUJsb2NrQ2xhdXNlc1wiLGVbZS5OYW1lZEltcG9ydHNPckV4cG9ydHNFbGVtZW50cz01MjUxMzZdPVwiTmFtZWRJbXBvcnRzT3JFeHBvcnRzRWxlbWVudHNcIixlW2UuSnN4RWxlbWVudE9yRnJhZ21lbnRDaGlsZHJlbj0yNjIxNDRdPVwiSnN4RWxlbWVudE9yRnJhZ21lbnRDaGlsZHJlblwiLGVbZS5Kc3hFbGVtZW50QXR0cmlidXRlcz0yNjI2NTZdPVwiSnN4RWxlbWVudEF0dHJpYnV0ZXNcIixlW2UuQ2FzZU9yRGVmYXVsdENsYXVzZVN0YXRlbWVudHM9MTYzOTY5XT1cIkNhc2VPckRlZmF1bHRDbGF1c2VTdGF0ZW1lbnRzXCIsZVtlLkhlcml0YWdlQ2xhdXNlVHlwZXM9NTI4XT1cIkhlcml0YWdlQ2xhdXNlVHlwZXNcIixlW2UuU291cmNlRmlsZVN0YXRlbWVudHM9MTMxMDczXT1cIlNvdXJjZUZpbGVTdGF0ZW1lbnRzXCIsZVtlLkRlY29yYXRvcnM9MjE0NjMwNV09XCJEZWNvcmF0b3JzXCIsZVtlLlR5cGVBcmd1bWVudHM9NTM3NzZdPVwiVHlwZUFyZ3VtZW50c1wiLGVbZS5UeXBlUGFyYW1ldGVycz01Mzc3Nl09XCJUeXBlUGFyYW1ldGVyc1wiLGVbZS5QYXJhbWV0ZXJzPTI1NzZdPVwiUGFyYW1ldGVyc1wiLGVbZS5JbmRleFNpZ25hdHVyZVBhcmFtZXRlcnM9ODg0OF09XCJJbmRleFNpZ25hdHVyZVBhcmFtZXRlcnNcIixlW2UuSlNEb2NDb21tZW50PTMzXT1cIkpTRG9jQ29tbWVudFwiLGUpKSh1MHx8e30pLHAwPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLlRyaXBsZVNsYXNoWE1MPTFdPVwiVHJpcGxlU2xhc2hYTUxcIixlW2UuU2luZ2xlTGluZT0yXT1cIlNpbmdsZUxpbmVcIixlW2UuTXVsdGlMaW5lPTRdPVwiTXVsdGlMaW5lXCIsZVtlLkFsbD03XT1cIkFsbFwiLGVbZS5EZWZhdWx0PTddPVwiRGVmYXVsdFwiLGUpKShwMHx8e30pLHFkPXtyZWZlcmVuY2U6e2FyZ3M6W3tuYW1lOlwidHlwZXNcIixvcHRpb25hbDohMCxjYXB0dXJlU3BhbjohMH0se25hbWU6XCJsaWJcIixvcHRpb25hbDohMCxjYXB0dXJlU3BhbjohMH0se25hbWU6XCJwYXRoXCIsb3B0aW9uYWw6ITAsY2FwdHVyZVNwYW46ITB9LHtuYW1lOlwibm8tZGVmYXVsdC1saWJcIixvcHRpb25hbDohMH0se25hbWU6XCJyZXNvbHV0aW9uLW1vZGVcIixvcHRpb25hbDohMH1dLGtpbmQ6MX0sXCJhbWQtZGVwZW5kZW5jeVwiOnthcmdzOlt7bmFtZTpcInBhdGhcIn0se25hbWU6XCJuYW1lXCIsb3B0aW9uYWw6ITB9XSxraW5kOjF9LFwiYW1kLW1vZHVsZVwiOnthcmdzOlt7bmFtZTpcIm5hbWVcIn1dLGtpbmQ6MX0sXCJ0cy1jaGVja1wiOntraW5kOjJ9LFwidHMtbm9jaGVja1wiOntraW5kOjJ9LGpzeDp7YXJnczpbe25hbWU6XCJmYWN0b3J5XCJ9XSxraW5kOjR9LGpzeGZyYWc6e2FyZ3M6W3tuYW1lOlwiZmFjdG9yeVwifV0sa2luZDo0fSxqc3hpbXBvcnRzb3VyY2U6e2FyZ3M6W3tuYW1lOlwiZmFjdG9yeVwifV0sa2luZDo0fSxqc3hydW50aW1lOnthcmdzOlt7bmFtZTpcImZhY3RvcnlcIn1dLGtpbmQ6NH19fX0pLFNFPSgpPT57fSxmMDtmdW5jdGlvbiBkZyhlKXtyZXR1cm4gZT09PTQ3fHxlPT09OTJ9ZnVuY3Rpb24geEUoZSl7cmV0dXJuIEpsKGUpPDB9ZnVuY3Rpb24gdl8oZSl7cmV0dXJuIEpsKGUpPjB9ZnVuY3Rpb24gd0UoZSl7bGV0IHQ9SmwoZSk7cmV0dXJuIHQ+MCYmdD09PWUubGVuZ3RofWZ1bmN0aW9uIG1nKGUpe3JldHVybiBKbChlKSE9PTB9ZnVuY3Rpb24gcnMoZSl7cmV0dXJuL15cXC5cXC4/KCR8W1xcXFwvXSkvLnRlc3QoZSl9ZnVuY3Rpb24gQ0UoZSl7cmV0dXJuIW1nKGUpJiYhcnMoZSl9ZnVuY3Rpb24gUXYoZSl7cmV0dXJuIGVvKFRfKGUpLFwiLlwiKX1mdW5jdGlvbiBMYShlLHQpe3JldHVybiBlLmxlbmd0aD50Lmxlbmd0aCYmdHMoZSx0KX1mdW5jdGlvbiBlaShlLHQpe2ZvcihsZXQgciBvZiB0KWlmKExhKGUscikpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gemQoZSl7cmV0dXJuIGUubGVuZ3RoPjAmJmRnKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKSl9ZnVuY3Rpb24gSmIoZSl7cmV0dXJuIGU+PTk3JiZlPD0xMjJ8fGU+PTY1JiZlPD05MH1mdW5jdGlvbiBFRShlLHQpe2xldCByPWUuY2hhckNvZGVBdCh0KTtpZihyPT09NTgpcmV0dXJuIHQrMTtpZihyPT09MzcmJmUuY2hhckNvZGVBdCh0KzEpPT09NTEpe2xldCBhPWUuY2hhckNvZGVBdCh0KzIpO2lmKGE9PT05N3x8YT09PTY1KXJldHVybiB0KzN9cmV0dXJuLTF9ZnVuY3Rpb24gSmwoZSl7aWYoIWUpcmV0dXJuIDA7bGV0IHQ9ZS5jaGFyQ29kZUF0KDApO2lmKHQ9PT00N3x8dD09PTkyKXtpZihlLmNoYXJDb2RlQXQoMSkhPT10KXJldHVybiAxO2xldCBhPWUuaW5kZXhPZih0PT09NDc/Zm46dmcsMik7cmV0dXJuIGE8MD9lLmxlbmd0aDphKzF9aWYoSmIodCkmJmUuY2hhckNvZGVBdCgxKT09PTU4KXtsZXQgYT1lLmNoYXJDb2RlQXQoMik7aWYoYT09PTQ3fHxhPT09OTIpcmV0dXJuIDM7aWYoZS5sZW5ndGg9PT0yKXJldHVybiAyfWxldCByPWUuaW5kZXhPZihtMCk7aWYociE9PS0xKXtsZXQgYT1yK20wLmxlbmd0aCxfPWUuaW5kZXhPZihmbixhKTtpZihfIT09LTEpe2xldCBwPWUuc2xpY2UoMCxyKSxkPWUuc2xpY2UoYSxfKTtpZihwPT09XCJmaWxlXCImJihkPT09XCJcInx8ZD09PVwibG9jYWxob3N0XCIpJiZKYihlLmNoYXJDb2RlQXQoXysxKSkpe2xldCBoPUVFKGUsXysyKTtpZihoIT09LTEpe2lmKGUuY2hhckNvZGVBdChoKT09PTQ3KXJldHVybn4oaCsxKTtpZihoPT09ZS5sZW5ndGgpcmV0dXJufmh9fXJldHVybn4oXysxKX1yZXR1cm5+ZS5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gRWkoZSl7bGV0IHQ9SmwoZSk7cmV0dXJuIHQ8MD9+dDp0fWZ1bmN0aW9uICRpKGUpe2U9cW8oZSk7bGV0IHQ9RWkoZSk7cmV0dXJuIHQ9PT1lLmxlbmd0aD9lOihlPVNfKGUpLGUuc2xpY2UoMCxNYXRoLm1heCh0LGUubGFzdEluZGV4T2YoZm4pKSkpfWZ1bmN0aW9uIFRfKGUsdCxyKXtpZihlPXFvKGUpLEVpKGUpPT09ZS5sZW5ndGgpcmV0dXJuXCJcIjtlPVNfKGUpO2xldCBfPWUuc2xpY2UoTWF0aC5tYXgoRWkoZSksZS5sYXN0SW5kZXhPZihmbikrMSkpLHA9dCE9PXZvaWQgMCYmciE9PXZvaWQgMD9kZChfLHQscik6dm9pZCAwO3JldHVybiBwP18uc2xpY2UoMCxfLmxlbmd0aC1wLmxlbmd0aCk6X31mdW5jdGlvbiBSYihlLHQscil7aWYoRnIodCxcIi5cIil8fCh0PVwiLlwiK3QpLGUubGVuZ3RoPj10Lmxlbmd0aCYmZS5jaGFyQ29kZUF0KGUubGVuZ3RoLXQubGVuZ3RoKT09PTQ2KXtsZXQgYT1lLnNsaWNlKGUubGVuZ3RoLXQubGVuZ3RoKTtpZihyKGEsdCkpcmV0dXJuIGF9fWZ1bmN0aW9uIEFFKGUsdCxyKXtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gUmIoZSx0LHIpfHxcIlwiO2ZvcihsZXQgYSBvZiB0KXtsZXQgXz1SYihlLGEscik7aWYoXylyZXR1cm4gX31yZXR1cm5cIlwifWZ1bmN0aW9uIGRkKGUsdCxyKXtpZih0KXJldHVybiBBRShTXyhlKSx0LHI/c186TGwpO2xldCBhPVRfKGUpLF89YS5sYXN0SW5kZXhPZihcIi5cIik7cmV0dXJuIF8+PTA/YS5zdWJzdHJpbmcoXyk6XCJcIn1mdW5jdGlvbiBrRShlLHQpe2xldCByPWUuc3Vic3RyaW5nKDAsdCksYT1lLnN1YnN0cmluZyh0KS5zcGxpdChmbik7cmV0dXJuIGEubGVuZ3RoJiYhd2koYSkmJmEucG9wKCksW3IsLi4uYV19ZnVuY3Rpb24gQWkoZSx0PVwiXCIpe3JldHVybiBlPWhyKHQsZSksa0UoZSxFaShlKSl9ZnVuY3Rpb24gVW8oZSx0KXtyZXR1cm4gZS5sZW5ndGg9PT0wP1wiXCI6KGVbMF0mJnpvKGVbMF0pKStlLnNsaWNlKDEsdCkuam9pbihmbil9ZnVuY3Rpb24gcW8oZSl7cmV0dXJuIGUuaW5kZXhPZihcIlxcXFxcIikhPT0tMT9lLnJlcGxhY2UodDQsZm4pOmV9ZnVuY3Rpb24gRGEoZSl7aWYoIW10KGUpKXJldHVybltdO2xldCB0PVtlWzBdXTtmb3IobGV0IHI9MTtyPGUubGVuZ3RoO3IrKyl7bGV0IGE9ZVtyXTtpZihhJiZhIT09XCIuXCIpe2lmKGE9PT1cIi4uXCIpe2lmKHQubGVuZ3RoPjEpe2lmKHRbdC5sZW5ndGgtMV0hPT1cIi4uXCIpe3QucG9wKCk7Y29udGludWV9fWVsc2UgaWYodFswXSljb250aW51ZX10LnB1c2goYSl9fXJldHVybiB0fWZ1bmN0aW9uIGhyKGUsLi4udCl7ZSYmKGU9cW8oZSkpO2ZvcihsZXQgciBvZiB0KXImJihyPXFvKHIpLCFlfHxFaShyKSE9PTA/ZT1yOmU9em8oZSkrcik7cmV0dXJuIGV9ZnVuY3Rpb24gZDAoZSwuLi50KXtyZXR1cm4gcG4obXQodCk/aHIoZSwuLi50KTpxbyhlKSl9ZnVuY3Rpb24gV2QoZSx0KXtyZXR1cm4gRGEoQWkoZSx0KSl9ZnVuY3Rpb24gUGEoZSx0KXtyZXR1cm4gVW8oV2QoZSx0KSl9ZnVuY3Rpb24gcG4oZSl7aWYoZT1xbyhlKSwhdmwudGVzdChlKSlyZXR1cm4gZTtsZXQgdD1lLnJlcGxhY2UoL1xcL1xcLlxcLy9nLFwiL1wiKS5yZXBsYWNlKC9eXFwuXFwvLyxcIlwiKTtpZih0IT09ZSYmKGU9dCwhdmwudGVzdChlKSkpcmV0dXJuIGU7bGV0IHI9VW8oRGEoQWkoZSkpKTtyZXR1cm4gciYmemQoZSk/em8ocik6cn1mdW5jdGlvbiBERShlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP1wiXCI6ZS5zbGljZSgxKS5qb2luKGZuKX1mdW5jdGlvbiBQRShlLHQpe3JldHVybiBERShXZChlLHQpKX1mdW5jdGlvbiB4aShlLHQscil7bGV0IGE9dl8oZSk/cG4oZSk6UGEoZSx0KTtyZXR1cm4gcihhKX1mdW5jdGlvbiBTXyhlKXtyZXR1cm4gemQoZSk/ZS5zdWJzdHIoMCxlLmxlbmd0aC0xKTplfWZ1bmN0aW9uIHpvKGUpe3JldHVybiB6ZChlKT9lOmUrZm59ZnVuY3Rpb24gaGcoZSl7cmV0dXJuIW1nKGUpJiYhcnMoZSk/XCIuL1wiK2U6ZX1mdW5jdGlvbiBZdihlLHQscixhKXtsZXQgXz1yIT09dm9pZCAwJiZhIT09dm9pZCAwP2RkKGUscixhKTpkZChlKTtyZXR1cm4gXz9lLnNsaWNlKDAsZS5sZW5ndGgtXy5sZW5ndGgpKyhGcih0LFwiLlwiKT90OlwiLlwiK3QpOmV9ZnVuY3Rpb24geWcoZSx0LHIpe2lmKGU9PT10KXJldHVybiAwO2lmKGU9PT12b2lkIDApcmV0dXJuLTE7aWYodD09PXZvaWQgMClyZXR1cm4gMTtsZXQgYT1lLnN1YnN0cmluZygwLEVpKGUpKSxfPXQuc3Vic3RyaW5nKDAsRWkodCkpLHA9RmQoYSxfKTtpZihwIT09MClyZXR1cm4gcDtsZXQgZD1lLnN1YnN0cmluZyhhLmxlbmd0aCksaD10LnN1YnN0cmluZyhfLmxlbmd0aCk7aWYoIXZsLnRlc3QoZCkmJiF2bC50ZXN0KGgpKXJldHVybiByKGQsaCk7bGV0IGw9RGEoQWkoZSkpLHY9RGEoQWkodCkpLHk9TWF0aC5taW4obC5sZW5ndGgsdi5sZW5ndGgpO2ZvcihsZXQgQz0xO0M8eTtDKyspe2xldCBTPXIobFtDXSx2W0NdKTtpZihTIT09MClyZXR1cm4gU31yZXR1cm4ga3IobC5sZW5ndGgsdi5sZW5ndGgpfWZ1bmN0aW9uIElFKGUsdCl7cmV0dXJuIHlnKGUsdCxDaSl9ZnVuY3Rpb24gTkUoZSx0KXtyZXR1cm4geWcoZSx0LEZkKX1mdW5jdGlvbiBPRShlLHQscixhKXtyZXR1cm4gdHlwZW9mIHI9PVwic3RyaW5nXCI/KGU9aHIocixlKSx0PWhyKHIsdCkpOnR5cGVvZiByPT1cImJvb2xlYW5cIiYmKGE9cikseWcoZSx0LF9nKGEpKX1mdW5jdGlvbiBLdihlLHQscixhKXtpZih0eXBlb2Ygcj09XCJzdHJpbmdcIj8oZT1ocihyLGUpLHQ9aHIocix0KSk6dHlwZW9mIHI9PVwiYm9vbGVhblwiJiYoYT1yKSxlPT09dm9pZCAwfHx0PT09dm9pZCAwKXJldHVybiExO2lmKGU9PT10KXJldHVybiEwO2xldCBfPURhKEFpKGUpKSxwPURhKEFpKHQpKTtpZihwLmxlbmd0aDxfLmxlbmd0aClyZXR1cm4hMTtsZXQgZD1hP3NfOkxsO2ZvcihsZXQgaD0wO2g8Xy5sZW5ndGg7aCsrKWlmKCEoaD09PTA/c186ZCkoX1toXSxwW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBNRShlLHQscil7bGV0IGE9cihlKSxfPXIodCk7cmV0dXJuIEZyKGEsXytcIi9cIil8fEZyKGEsXytcIlxcXFxcIil9ZnVuY3Rpb24gZ2coZSx0LHIsYSl7bGV0IF89RGEoQWkoZSkpLHA9RGEoQWkodCkpLGQ7Zm9yKGQ9MDtkPF8ubGVuZ3RoJiZkPHAubGVuZ3RoO2QrKyl7bGV0IHY9YShfW2RdKSx5PWEocFtkXSk7aWYoIShkPT09MD9zXzpyKSh2LHkpKWJyZWFrfWlmKGQ9PT0wKXJldHVybiBwO2xldCBoPXAuc2xpY2UoZCksbD1bXTtmb3IoO2Q8Xy5sZW5ndGg7ZCsrKWwucHVzaChcIi4uXCIpO3JldHVybltcIlwiLC4uLmwsLi4uaF19ZnVuY3Rpb24gWnYoZSx0LHIpe04uYXNzZXJ0KEVpKGUpPjA9PUVpKHQpPjAsXCJQYXRocyBtdXN0IGVpdGhlciBib3RoIGJlIGFic29sdXRlIG9yIGJvdGggYmUgcmVsYXRpdmVcIik7bGV0IHA9Z2coZSx0LCh0eXBlb2Ygcj09XCJib29sZWFuXCI/cjohMSk/c186TGwsdHlwZW9mIHI9PVwiZnVuY3Rpb25cIj9yOmJ0KTtyZXR1cm4gVW8ocCl9ZnVuY3Rpb24gTEUoZSx0LHIpe3JldHVybiB2XyhlKT9iZyh0LGUsdCxyLCExKTplfWZ1bmN0aW9uIEpFKGUsdCxyKXtyZXR1cm4gaGcoWnYoJGkoZSksdCxyKSl9ZnVuY3Rpb24gYmcoZSx0LHIsYSxfKXtsZXQgcD1nZyhkMChyLGUpLGQwKHIsdCksTGwsYSksZD1wWzBdO2lmKF8mJnZfKGQpKXtsZXQgaD1kLmNoYXJBdCgwKT09PWZuP1wiZmlsZTovL1wiOlwiZmlsZTovLy9cIjtwWzBdPWgrZH1yZXR1cm4gVW8ocCl9ZnVuY3Rpb24gZTQoZSx0KXtmb3IoOzspe2xldCByPXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtsZXQgYT0kaShlKTtpZihhPT09ZSlyZXR1cm47ZT1hfX1mdW5jdGlvbiBSRShlKXtyZXR1cm4gdHMoZSxcIi9ub2RlX21vZHVsZXNcIil9dmFyIGZuLHZnLG0wLHQ0LHZsLHI0PVZ0KHtcInNyYy9jb21waWxlci9wYXRoLnRzXCIoKXtcInVzZSBzdHJpY3RcIjtEcigpLGZuPVwiL1wiLHZnPVwiXFxcXFwiLG0wPVwiOi8vXCIsdDQ9L1xcXFwvZyx2bD0vKD86XFwvXFwvKXwoPzpefFxcLylcXC5cXC4/KD86JHxcXC8pL319KTtmdW5jdGlvbiBpKGUsdCxyLGEsXyxwLGQpe3JldHVybntjb2RlOmUsY2F0ZWdvcnk6dCxrZXk6cixtZXNzYWdlOmEscmVwb3J0c1VubmVjZXNzYXJ5Ol8sZWxpZGVkSW5Db21wYXRhYmlsaXR5UHlyYW1pZDpwLHJlcG9ydHNEZXByZWNhdGVkOmR9fXZhciBVLGpFPVZ0KHtcInNyYy9jb21waWxlci9kaWFnbm9zdGljSW5mb3JtYXRpb25NYXAuZ2VuZXJhdGVkLnRzXCIoKXtcInVzZSBzdHJpY3RcIjskdigpLFU9e1VudGVybWluYXRlZF9zdHJpbmdfbGl0ZXJhbDppKDEwMDIsMSxcIlVudGVybWluYXRlZF9zdHJpbmdfbGl0ZXJhbF8xMDAyXCIsXCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGxpdGVyYWwuXCIpLElkZW50aWZpZXJfZXhwZWN0ZWQ6aSgxMDAzLDEsXCJJZGVudGlmaWVyX2V4cGVjdGVkXzEwMDNcIixcIklkZW50aWZpZXIgZXhwZWN0ZWQuXCIpLF8wX2V4cGVjdGVkOmkoMTAwNSwxLFwiXzBfZXhwZWN0ZWRfMTAwNVwiLFwiJ3swfScgZXhwZWN0ZWQuXCIpLEFfZmlsZV9jYW5ub3RfaGF2ZV9hX3JlZmVyZW5jZV90b19pdHNlbGY6aSgxMDA2LDEsXCJBX2ZpbGVfY2Fubm90X2hhdmVfYV9yZWZlcmVuY2VfdG9faXRzZWxmXzEwMDZcIixcIkEgZmlsZSBjYW5ub3QgaGF2ZSBhIHJlZmVyZW5jZSB0byBpdHNlbGYuXCIpLFRoZV9wYXJzZXJfZXhwZWN0ZWRfdG9fZmluZF9hXzFfdG9fbWF0Y2hfdGhlXzBfdG9rZW5faGVyZTppKDEwMDcsMSxcIlRoZV9wYXJzZXJfZXhwZWN0ZWRfdG9fZmluZF9hXzFfdG9fbWF0Y2hfdGhlXzBfdG9rZW5faGVyZV8xMDA3XCIsXCJUaGUgcGFyc2VyIGV4cGVjdGVkIHRvIGZpbmQgYSAnezF9JyB0byBtYXRjaCB0aGUgJ3swfScgdG9rZW4gaGVyZS5cIiksVHJhaWxpbmdfY29tbWFfbm90X2FsbG93ZWQ6aSgxMDA5LDEsXCJUcmFpbGluZ19jb21tYV9ub3RfYWxsb3dlZF8xMDA5XCIsXCJUcmFpbGluZyBjb21tYSBub3QgYWxsb3dlZC5cIiksQXN0ZXJpc2tfU2xhc2hfZXhwZWN0ZWQ6aSgxMDEwLDEsXCJBc3Rlcmlza19TbGFzaF9leHBlY3RlZF8xMDEwXCIsXCInKi8nIGV4cGVjdGVkLlwiKSxBbl9lbGVtZW50X2FjY2Vzc19leHByZXNzaW9uX3Nob3VsZF90YWtlX2FuX2FyZ3VtZW50OmkoMTAxMSwxLFwiQW5fZWxlbWVudF9hY2Nlc3NfZXhwcmVzc2lvbl9zaG91bGRfdGFrZV9hbl9hcmd1bWVudF8xMDExXCIsXCJBbiBlbGVtZW50IGFjY2VzcyBleHByZXNzaW9uIHNob3VsZCB0YWtlIGFuIGFyZ3VtZW50LlwiKSxVbmV4cGVjdGVkX3Rva2VuOmkoMTAxMiwxLFwiVW5leHBlY3RlZF90b2tlbl8xMDEyXCIsXCJVbmV4cGVjdGVkIHRva2VuLlwiKSxBX3Jlc3RfcGFyYW1ldGVyX29yX2JpbmRpbmdfcGF0dGVybl9tYXlfbm90X2hhdmVfYV90cmFpbGluZ19jb21tYTppKDEwMTMsMSxcIkFfcmVzdF9wYXJhbWV0ZXJfb3JfYmluZGluZ19wYXR0ZXJuX21heV9ub3RfaGF2ZV9hX3RyYWlsaW5nX2NvbW1hXzEwMTNcIixcIkEgcmVzdCBwYXJhbWV0ZXIgb3IgYmluZGluZyBwYXR0ZXJuIG1heSBub3QgaGF2ZSBhIHRyYWlsaW5nIGNvbW1hLlwiKSxBX3Jlc3RfcGFyYW1ldGVyX211c3RfYmVfbGFzdF9pbl9hX3BhcmFtZXRlcl9saXN0OmkoMTAxNCwxLFwiQV9yZXN0X3BhcmFtZXRlcl9tdXN0X2JlX2xhc3RfaW5fYV9wYXJhbWV0ZXJfbGlzdF8xMDE0XCIsXCJBIHJlc3QgcGFyYW1ldGVyIG11c3QgYmUgbGFzdCBpbiBhIHBhcmFtZXRlciBsaXN0LlwiKSxQYXJhbWV0ZXJfY2Fubm90X2hhdmVfcXVlc3Rpb25fbWFya19hbmRfaW5pdGlhbGl6ZXI6aSgxMDE1LDEsXCJQYXJhbWV0ZXJfY2Fubm90X2hhdmVfcXVlc3Rpb25fbWFya19hbmRfaW5pdGlhbGl6ZXJfMTAxNVwiLFwiUGFyYW1ldGVyIGNhbm5vdCBoYXZlIHF1ZXN0aW9uIG1hcmsgYW5kIGluaXRpYWxpemVyLlwiKSxBX3JlcXVpcmVkX3BhcmFtZXRlcl9jYW5ub3RfZm9sbG93X2FuX29wdGlvbmFsX3BhcmFtZXRlcjppKDEwMTYsMSxcIkFfcmVxdWlyZWRfcGFyYW1ldGVyX2Nhbm5vdF9mb2xsb3dfYW5fb3B0aW9uYWxfcGFyYW1ldGVyXzEwMTZcIixcIkEgcmVxdWlyZWQgcGFyYW1ldGVyIGNhbm5vdCBmb2xsb3cgYW4gb3B0aW9uYWwgcGFyYW1ldGVyLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfY2Fubm90X2hhdmVfYV9yZXN0X3BhcmFtZXRlcjppKDEwMTcsMSxcIkFuX2luZGV4X3NpZ25hdHVyZV9jYW5ub3RfaGF2ZV9hX3Jlc3RfcGFyYW1ldGVyXzEwMTdcIixcIkFuIGluZGV4IHNpZ25hdHVyZSBjYW5ub3QgaGF2ZSBhIHJlc3QgcGFyYW1ldGVyLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2FjY2Vzc2liaWxpdHlfbW9kaWZpZXI6aSgxMDE4LDEsXCJBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2FjY2Vzc2liaWxpdHlfbW9kaWZpZXJfMTAxOFwiLFwiQW4gaW5kZXggc2lnbmF0dXJlIHBhcmFtZXRlciBjYW5ub3QgaGF2ZSBhbiBhY2Nlc3NpYmlsaXR5IG1vZGlmaWVyLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FfcXVlc3Rpb25fbWFyazppKDEwMTksMSxcIkFuX2luZGV4X3NpZ25hdHVyZV9wYXJhbWV0ZXJfY2Fubm90X2hhdmVfYV9xdWVzdGlvbl9tYXJrXzEwMTlcIixcIkFuIGluZGV4IHNpZ25hdHVyZSBwYXJhbWV0ZXIgY2Fubm90IGhhdmUgYSBxdWVzdGlvbiBtYXJrLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyOmkoMTAyMCwxLFwiQW5faW5kZXhfc2lnbmF0dXJlX3BhcmFtZXRlcl9jYW5ub3RfaGF2ZV9hbl9pbml0aWFsaXplcl8xMDIwXCIsXCJBbiBpbmRleCBzaWduYXR1cmUgcGFyYW1ldGVyIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfbXVzdF9oYXZlX2FfdHlwZV9hbm5vdGF0aW9uOmkoMTAyMSwxLFwiQW5faW5kZXhfc2lnbmF0dXJlX211c3RfaGF2ZV9hX3R5cGVfYW5ub3RhdGlvbl8xMDIxXCIsXCJBbiBpbmRleCBzaWduYXR1cmUgbXVzdCBoYXZlIGEgdHlwZSBhbm5vdGF0aW9uLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX211c3RfaGF2ZV9hX3R5cGVfYW5ub3RhdGlvbjppKDEwMjIsMSxcIkFuX2luZGV4X3NpZ25hdHVyZV9wYXJhbWV0ZXJfbXVzdF9oYXZlX2FfdHlwZV9hbm5vdGF0aW9uXzEwMjJcIixcIkFuIGluZGV4IHNpZ25hdHVyZSBwYXJhbWV0ZXIgbXVzdCBoYXZlIGEgdHlwZSBhbm5vdGF0aW9uLlwiKSxyZWFkb25seV9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV9wcm9wZXJ0eV9kZWNsYXJhdGlvbl9vcl9pbmRleF9zaWduYXR1cmU6aSgxMDI0LDEsXCJyZWFkb25seV9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV9wcm9wZXJ0eV9kZWNsYXJhdGlvbl9vcl9pbmRleF9zaWduYXR1cmVfMTAyNFwiLFwiJ3JlYWRvbmx5JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSBwcm9wZXJ0eSBkZWNsYXJhdGlvbiBvciBpbmRleCBzaWduYXR1cmUuXCIpLEFuX2luZGV4X3NpZ25hdHVyZV9jYW5ub3RfaGF2ZV9hX3RyYWlsaW5nX2NvbW1hOmkoMTAyNSwxLFwiQW5faW5kZXhfc2lnbmF0dXJlX2Nhbm5vdF9oYXZlX2FfdHJhaWxpbmdfY29tbWFfMTAyNVwiLFwiQW4gaW5kZXggc2lnbmF0dXJlIGNhbm5vdCBoYXZlIGEgdHJhaWxpbmcgY29tbWEuXCIpLEFjY2Vzc2liaWxpdHlfbW9kaWZpZXJfYWxyZWFkeV9zZWVuOmkoMTAyOCwxLFwiQWNjZXNzaWJpbGl0eV9tb2RpZmllcl9hbHJlYWR5X3NlZW5fMTAyOFwiLFwiQWNjZXNzaWJpbGl0eSBtb2RpZmllciBhbHJlYWR5IHNlZW4uXCIpLF8wX21vZGlmaWVyX211c3RfcHJlY2VkZV8xX21vZGlmaWVyOmkoMTAyOSwxLFwiXzBfbW9kaWZpZXJfbXVzdF9wcmVjZWRlXzFfbW9kaWZpZXJfMTAyOVwiLFwiJ3swfScgbW9kaWZpZXIgbXVzdCBwcmVjZWRlICd7MX0nIG1vZGlmaWVyLlwiKSxfMF9tb2RpZmllcl9hbHJlYWR5X3NlZW46aSgxMDMwLDEsXCJfMF9tb2RpZmllcl9hbHJlYWR5X3NlZW5fMTAzMFwiLFwiJ3swfScgbW9kaWZpZXIgYWxyZWFkeSBzZWVuLlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2NsYXNzX2VsZW1lbnRzX29mX3RoaXNfa2luZDppKDEwMzEsMSxcIl8wX21vZGlmaWVyX2Nhbm5vdF9hcHBlYXJfb25fY2xhc3NfZWxlbWVudHNfb2ZfdGhpc19raW5kXzEwMzFcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gY2xhc3MgZWxlbWVudHMgb2YgdGhpcyBraW5kLlwiKSxzdXBlcl9tdXN0X2JlX2ZvbGxvd2VkX2J5X2FuX2FyZ3VtZW50X2xpc3Rfb3JfbWVtYmVyX2FjY2VzczppKDEwMzQsMSxcInN1cGVyX211c3RfYmVfZm9sbG93ZWRfYnlfYW5fYXJndW1lbnRfbGlzdF9vcl9tZW1iZXJfYWNjZXNzXzEwMzRcIixcIidzdXBlcicgbXVzdCBiZSBmb2xsb3dlZCBieSBhbiBhcmd1bWVudCBsaXN0IG9yIG1lbWJlciBhY2Nlc3MuXCIpLE9ubHlfYW1iaWVudF9tb2R1bGVzX2Nhbl91c2VfcXVvdGVkX25hbWVzOmkoMTAzNSwxLFwiT25seV9hbWJpZW50X21vZHVsZXNfY2FuX3VzZV9xdW90ZWRfbmFtZXNfMTAzNVwiLFwiT25seSBhbWJpZW50IG1vZHVsZXMgY2FuIHVzZSBxdW90ZWQgbmFtZXMuXCIpLFN0YXRlbWVudHNfYXJlX25vdF9hbGxvd2VkX2luX2FtYmllbnRfY29udGV4dHM6aSgxMDM2LDEsXCJTdGF0ZW1lbnRzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbWJpZW50X2NvbnRleHRzXzEwMzZcIixcIlN0YXRlbWVudHMgYXJlIG5vdCBhbGxvd2VkIGluIGFtYmllbnQgY29udGV4dHMuXCIpLEFfZGVjbGFyZV9tb2RpZmllcl9jYW5ub3RfYmVfdXNlZF9pbl9hbl9hbHJlYWR5X2FtYmllbnRfY29udGV4dDppKDEwMzgsMSxcIkFfZGVjbGFyZV9tb2RpZmllcl9jYW5ub3RfYmVfdXNlZF9pbl9hbl9hbHJlYWR5X2FtYmllbnRfY29udGV4dF8xMDM4XCIsXCJBICdkZWNsYXJlJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBpbiBhbiBhbHJlYWR5IGFtYmllbnQgY29udGV4dC5cIiksSW5pdGlhbGl6ZXJzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbWJpZW50X2NvbnRleHRzOmkoMTAzOSwxLFwiSW5pdGlhbGl6ZXJzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbWJpZW50X2NvbnRleHRzXzEwMzlcIixcIkluaXRpYWxpemVycyBhcmUgbm90IGFsbG93ZWQgaW4gYW1iaWVudCBjb250ZXh0cy5cIiksXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfaW5fYW5fYW1iaWVudF9jb250ZXh0OmkoMTA0MCwxLFwiXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfaW5fYW5fYW1iaWVudF9jb250ZXh0XzEwNDBcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIGluIGFuIGFtYmllbnQgY29udGV4dC5cIiksXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfaGVyZTppKDEwNDIsMSxcIl8wX21vZGlmaWVyX2Nhbm5vdF9iZV91c2VkX2hlcmVfMTA0MlwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgaGVyZS5cIiksXzBfbW9kaWZpZXJfY2Fubm90X2FwcGVhcl9vbl9hX21vZHVsZV9vcl9uYW1lc3BhY2VfZWxlbWVudDppKDEwNDQsMSxcIl8wX21vZGlmaWVyX2Nhbm5vdF9hcHBlYXJfb25fYV9tb2R1bGVfb3JfbmFtZXNwYWNlX2VsZW1lbnRfMTA0NFwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIG1vZHVsZSBvciBuYW1lc3BhY2UgZWxlbWVudC5cIiksVG9wX2xldmVsX2RlY2xhcmF0aW9uc19pbl9kX3RzX2ZpbGVzX211c3Rfc3RhcnRfd2l0aF9laXRoZXJfYV9kZWNsYXJlX29yX2V4cG9ydF9tb2RpZmllcjppKDEwNDYsMSxcIlRvcF9sZXZlbF9kZWNsYXJhdGlvbnNfaW5fZF90c19maWxlc19tdXN0X3N0YXJ0X3dpdGhfZWl0aGVyX2FfZGVjbGFyZV9vcl9leHBvcnRfbW9kaWZpZXJfMTA0NlwiLFwiVG9wLWxldmVsIGRlY2xhcmF0aW9ucyBpbiAuZC50cyBmaWxlcyBtdXN0IHN0YXJ0IHdpdGggZWl0aGVyIGEgJ2RlY2xhcmUnIG9yICdleHBvcnQnIG1vZGlmaWVyLlwiKSxBX3Jlc3RfcGFyYW1ldGVyX2Nhbm5vdF9iZV9vcHRpb25hbDppKDEwNDcsMSxcIkFfcmVzdF9wYXJhbWV0ZXJfY2Fubm90X2JlX29wdGlvbmFsXzEwNDdcIixcIkEgcmVzdCBwYXJhbWV0ZXIgY2Fubm90IGJlIG9wdGlvbmFsLlwiKSxBX3Jlc3RfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyOmkoMTA0OCwxLFwiQV9yZXN0X3BhcmFtZXRlcl9jYW5ub3RfaGF2ZV9hbl9pbml0aWFsaXplcl8xMDQ4XCIsXCJBIHJlc3QgcGFyYW1ldGVyIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBX3NldF9hY2Nlc3Nvcl9tdXN0X2hhdmVfZXhhY3RseV9vbmVfcGFyYW1ldGVyOmkoMTA0OSwxLFwiQV9zZXRfYWNjZXNzb3JfbXVzdF9oYXZlX2V4YWN0bHlfb25lX3BhcmFtZXRlcl8xMDQ5XCIsXCJBICdzZXQnIGFjY2Vzc29yIG11c3QgaGF2ZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXIuXCIpLEFfc2V0X2FjY2Vzc29yX2Nhbm5vdF9oYXZlX2FuX29wdGlvbmFsX3BhcmFtZXRlcjppKDEwNTEsMSxcIkFfc2V0X2FjY2Vzc29yX2Nhbm5vdF9oYXZlX2FuX29wdGlvbmFsX3BhcmFtZXRlcl8xMDUxXCIsXCJBICdzZXQnIGFjY2Vzc29yIGNhbm5vdCBoYXZlIGFuIG9wdGlvbmFsIHBhcmFtZXRlci5cIiksQV9zZXRfYWNjZXNzb3JfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyOmkoMTA1MiwxLFwiQV9zZXRfYWNjZXNzb3JfcGFyYW1ldGVyX2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyXzEwNTJcIixcIkEgJ3NldCcgYWNjZXNzb3IgcGFyYW1ldGVyIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBX3NldF9hY2Nlc3Nvcl9jYW5ub3RfaGF2ZV9yZXN0X3BhcmFtZXRlcjppKDEwNTMsMSxcIkFfc2V0X2FjY2Vzc29yX2Nhbm5vdF9oYXZlX3Jlc3RfcGFyYW1ldGVyXzEwNTNcIixcIkEgJ3NldCcgYWNjZXNzb3IgY2Fubm90IGhhdmUgcmVzdCBwYXJhbWV0ZXIuXCIpLEFfZ2V0X2FjY2Vzc29yX2Nhbm5vdF9oYXZlX3BhcmFtZXRlcnM6aSgxMDU0LDEsXCJBX2dldF9hY2Nlc3Nvcl9jYW5ub3RfaGF2ZV9wYXJhbWV0ZXJzXzEwNTRcIixcIkEgJ2dldCcgYWNjZXNzb3IgY2Fubm90IGhhdmUgcGFyYW1ldGVycy5cIiksVHlwZV8wX2lzX25vdF9hX3ZhbGlkX2FzeW5jX2Z1bmN0aW9uX3JldHVybl90eXBlX2luX0VTNV9TbGFzaEVTM19iZWNhdXNlX2l0X2RvZXNfbm90X3JlZmVyX3RvX2FfUHJvbWlzZV9jb21wYXRpYmxlX2NvbnN0cnVjdG9yX3ZhbHVlOmkoMTA1NSwxLFwiVHlwZV8wX2lzX25vdF9hX3ZhbGlkX2FzeW5jX2Z1bmN0aW9uX3JldHVybl90eXBlX2luX0VTNV9TbGFzaEVTM19iZWNhdXNlX2l0X2RvZXNfbm90X3JlZmVyX3RvX2FfUHJvbV8xMDU1XCIsXCJUeXBlICd7MH0nIGlzIG5vdCBhIHZhbGlkIGFzeW5jIGZ1bmN0aW9uIHJldHVybiB0eXBlIGluIEVTNS9FUzMgYmVjYXVzZSBpdCBkb2VzIG5vdCByZWZlciB0byBhIFByb21pc2UtY29tcGF0aWJsZSBjb25zdHJ1Y3RvciB2YWx1ZS5cIiksQWNjZXNzb3JzX2FyZV9vbmx5X2F2YWlsYWJsZV93aGVuX3RhcmdldGluZ19FQ01BU2NyaXB0XzVfYW5kX2hpZ2hlcjppKDEwNTYsMSxcIkFjY2Vzc29yc19hcmVfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF81X2FuZF9oaWdoZXJfMTA1NlwiLFwiQWNjZXNzb3JzIGFyZSBvbmx5IGF2YWlsYWJsZSB3aGVuIHRhcmdldGluZyBFQ01BU2NyaXB0IDUgYW5kIGhpZ2hlci5cIiksVGhlX3JldHVybl90eXBlX29mX2FuX2FzeW5jX2Z1bmN0aW9uX211c3RfZWl0aGVyX2JlX2FfdmFsaWRfcHJvbWlzZV9vcl9tdXN0X25vdF9jb250YWluX2FfY2FsbGFibGVfdGhlbl9tZW1iZXI6aSgxMDU4LDEsXCJUaGVfcmV0dXJuX3R5cGVfb2ZfYW5fYXN5bmNfZnVuY3Rpb25fbXVzdF9laXRoZXJfYmVfYV92YWxpZF9wcm9taXNlX29yX211c3Rfbm90X2NvbnRhaW5fYV9jYWxsYWJsZV90XzEwNThcIixcIlRoZSByZXR1cm4gdHlwZSBvZiBhbiBhc3luYyBmdW5jdGlvbiBtdXN0IGVpdGhlciBiZSBhIHZhbGlkIHByb21pc2Ugb3IgbXVzdCBub3QgY29udGFpbiBhIGNhbGxhYmxlICd0aGVuJyBtZW1iZXIuXCIpLEFfcHJvbWlzZV9tdXN0X2hhdmVfYV90aGVuX21ldGhvZDppKDEwNTksMSxcIkFfcHJvbWlzZV9tdXN0X2hhdmVfYV90aGVuX21ldGhvZF8xMDU5XCIsXCJBIHByb21pc2UgbXVzdCBoYXZlIGEgJ3RoZW4nIG1ldGhvZC5cIiksVGhlX2ZpcnN0X3BhcmFtZXRlcl9vZl90aGVfdGhlbl9tZXRob2Rfb2ZfYV9wcm9taXNlX211c3RfYmVfYV9jYWxsYmFjazppKDEwNjAsMSxcIlRoZV9maXJzdF9wYXJhbWV0ZXJfb2ZfdGhlX3RoZW5fbWV0aG9kX29mX2FfcHJvbWlzZV9tdXN0X2JlX2FfY2FsbGJhY2tfMTA2MFwiLFwiVGhlIGZpcnN0IHBhcmFtZXRlciBvZiB0aGUgJ3RoZW4nIG1ldGhvZCBvZiBhIHByb21pc2UgbXVzdCBiZSBhIGNhbGxiYWNrLlwiKSxFbnVtX21lbWJlcl9tdXN0X2hhdmVfaW5pdGlhbGl6ZXI6aSgxMDYxLDEsXCJFbnVtX21lbWJlcl9tdXN0X2hhdmVfaW5pdGlhbGl6ZXJfMTA2MVwiLFwiRW51bSBtZW1iZXIgbXVzdCBoYXZlIGluaXRpYWxpemVyLlwiKSxUeXBlX2lzX3JlZmVyZW5jZWRfZGlyZWN0bHlfb3JfaW5kaXJlY3RseV9pbl90aGVfZnVsZmlsbG1lbnRfY2FsbGJhY2tfb2ZfaXRzX293bl90aGVuX21ldGhvZDppKDEwNjIsMSxcIlR5cGVfaXNfcmVmZXJlbmNlZF9kaXJlY3RseV9vcl9pbmRpcmVjdGx5X2luX3RoZV9mdWxmaWxsbWVudF9jYWxsYmFja19vZl9pdHNfb3duX3RoZW5fbWV0aG9kXzEwNjJcIixcIlR5cGUgaXMgcmVmZXJlbmNlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluIHRoZSBmdWxmaWxsbWVudCBjYWxsYmFjayBvZiBpdHMgb3duICd0aGVuJyBtZXRob2QuXCIpLEFuX2V4cG9ydF9hc3NpZ25tZW50X2Nhbm5vdF9iZV91c2VkX2luX2FfbmFtZXNwYWNlOmkoMTA2MywxLFwiQW5fZXhwb3J0X2Fzc2lnbm1lbnRfY2Fubm90X2JlX3VzZWRfaW5fYV9uYW1lc3BhY2VfMTA2M1wiLFwiQW4gZXhwb3J0IGFzc2lnbm1lbnQgY2Fubm90IGJlIHVzZWQgaW4gYSBuYW1lc3BhY2UuXCIpLFRoZV9yZXR1cm5fdHlwZV9vZl9hbl9hc3luY19mdW5jdGlvbl9vcl9tZXRob2RfbXVzdF9iZV90aGVfZ2xvYmFsX1Byb21pc2VfVF90eXBlX0RpZF95b3VfbWVhbl90b193cml0ZV9Qcm9taXNlXzA6aSgxMDY0LDEsXCJUaGVfcmV0dXJuX3R5cGVfb2ZfYW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX211c3RfYmVfdGhlX2dsb2JhbF9Qcm9taXNlX1RfdHlwZV9EaWRfeW91X21lYW5fdG9fd3JpXzEwNjRcIixcIlRoZSByZXR1cm4gdHlwZSBvZiBhbiBhc3luYyBmdW5jdGlvbiBvciBtZXRob2QgbXVzdCBiZSB0aGUgZ2xvYmFsIFByb21pc2U8VD4gdHlwZS4gRGlkIHlvdSBtZWFuIHRvIHdyaXRlICdQcm9taXNlPHswfT4nP1wiKSxUaGVfcmV0dXJuX3R5cGVfb2ZfYW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX211c3RfYmVfdGhlX2dsb2JhbF9Qcm9taXNlX1RfdHlwZTppKDEwNjUsMSxcIlRoZV9yZXR1cm5fdHlwZV9vZl9hbl9hc3luY19mdW5jdGlvbl9vcl9tZXRob2RfbXVzdF9iZV90aGVfZ2xvYmFsX1Byb21pc2VfVF90eXBlXzEwNjVcIixcIlRoZSByZXR1cm4gdHlwZSBvZiBhbiBhc3luYyBmdW5jdGlvbiBvciBtZXRob2QgbXVzdCBiZSB0aGUgZ2xvYmFsIFByb21pc2U8VD4gdHlwZS5cIiksSW5fYW1iaWVudF9lbnVtX2RlY2xhcmF0aW9uc19tZW1iZXJfaW5pdGlhbGl6ZXJfbXVzdF9iZV9jb25zdGFudF9leHByZXNzaW9uOmkoMTA2NiwxLFwiSW5fYW1iaWVudF9lbnVtX2RlY2xhcmF0aW9uc19tZW1iZXJfaW5pdGlhbGl6ZXJfbXVzdF9iZV9jb25zdGFudF9leHByZXNzaW9uXzEwNjZcIixcIkluIGFtYmllbnQgZW51bSBkZWNsYXJhdGlvbnMgbWVtYmVyIGluaXRpYWxpemVyIG11c3QgYmUgY29uc3RhbnQgZXhwcmVzc2lvbi5cIiksVW5leHBlY3RlZF90b2tlbl9BX2NvbnN0cnVjdG9yX21ldGhvZF9hY2Nlc3Nvcl9vcl9wcm9wZXJ0eV93YXNfZXhwZWN0ZWQ6aSgxMDY4LDEsXCJVbmV4cGVjdGVkX3Rva2VuX0FfY29uc3RydWN0b3JfbWV0aG9kX2FjY2Vzc29yX29yX3Byb3BlcnR5X3dhc19leHBlY3RlZF8xMDY4XCIsXCJVbmV4cGVjdGVkIHRva2VuLiBBIGNvbnN0cnVjdG9yLCBtZXRob2QsIGFjY2Vzc29yLCBvciBwcm9wZXJ0eSB3YXMgZXhwZWN0ZWQuXCIpLFVuZXhwZWN0ZWRfdG9rZW5fQV90eXBlX3BhcmFtZXRlcl9uYW1lX3dhc19leHBlY3RlZF93aXRob3V0X2N1cmx5X2JyYWNlczppKDEwNjksMSxcIlVuZXhwZWN0ZWRfdG9rZW5fQV90eXBlX3BhcmFtZXRlcl9uYW1lX3dhc19leHBlY3RlZF93aXRob3V0X2N1cmx5X2JyYWNlc18xMDY5XCIsXCJVbmV4cGVjdGVkIHRva2VuLiBBIHR5cGUgcGFyYW1ldGVyIG5hbWUgd2FzIGV4cGVjdGVkIHdpdGhvdXQgY3VybHkgYnJhY2VzLlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfdHlwZV9tZW1iZXI6aSgxMDcwLDEsXCJfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfdHlwZV9tZW1iZXJfMTA3MFwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIHR5cGUgbWVtYmVyLlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FuX2luZGV4X3NpZ25hdHVyZTppKDEwNzEsMSxcIl8wX21vZGlmaWVyX2Nhbm5vdF9hcHBlYXJfb25fYW5faW5kZXhfc2lnbmF0dXJlXzEwNzFcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gYW4gaW5kZXggc2lnbmF0dXJlLlwiKSxBXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfd2l0aF9hbl9pbXBvcnRfZGVjbGFyYXRpb246aSgxMDc5LDEsXCJBXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfd2l0aF9hbl9pbXBvcnRfZGVjbGFyYXRpb25fMTA3OVwiLFwiQSAnezB9JyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCB3aXRoIGFuIGltcG9ydCBkZWNsYXJhdGlvbi5cIiksSW52YWxpZF9yZWZlcmVuY2VfZGlyZWN0aXZlX3N5bnRheDppKDEwODQsMSxcIkludmFsaWRfcmVmZXJlbmNlX2RpcmVjdGl2ZV9zeW50YXhfMTA4NFwiLFwiSW52YWxpZCAncmVmZXJlbmNlJyBkaXJlY3RpdmUgc3ludGF4LlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfY29uc3RydWN0b3JfZGVjbGFyYXRpb246aSgxMDg5LDEsXCJfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfY29uc3RydWN0b3JfZGVjbGFyYXRpb25fMTA4OVwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIGNvbnN0cnVjdG9yIGRlY2xhcmF0aW9uLlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfcGFyYW1ldGVyOmkoMTA5MCwxLFwiXzBfbW9kaWZpZXJfY2Fubm90X2FwcGVhcl9vbl9hX3BhcmFtZXRlcl8xMDkwXCIsXCInezB9JyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGEgcGFyYW1ldGVyLlwiKSxPbmx5X2Ffc2luZ2xlX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX2lzX2FsbG93ZWRfaW5fYV9mb3JfaW5fc3RhdGVtZW50OmkoMTA5MSwxLFwiT25seV9hX3NpbmdsZV92YXJpYWJsZV9kZWNsYXJhdGlvbl9pc19hbGxvd2VkX2luX2FfZm9yX2luX3N0YXRlbWVudF8xMDkxXCIsXCJPbmx5IGEgc2luZ2xlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGlzIGFsbG93ZWQgaW4gYSAnZm9yLi4uaW4nIHN0YXRlbWVudC5cIiksVHlwZV9wYXJhbWV0ZXJzX2Nhbm5vdF9hcHBlYXJfb25fYV9jb25zdHJ1Y3Rvcl9kZWNsYXJhdGlvbjppKDEwOTIsMSxcIlR5cGVfcGFyYW1ldGVyc19jYW5ub3RfYXBwZWFyX29uX2FfY29uc3RydWN0b3JfZGVjbGFyYXRpb25fMTA5MlwiLFwiVHlwZSBwYXJhbWV0ZXJzIGNhbm5vdCBhcHBlYXIgb24gYSBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi5cIiksVHlwZV9hbm5vdGF0aW9uX2Nhbm5vdF9hcHBlYXJfb25fYV9jb25zdHJ1Y3Rvcl9kZWNsYXJhdGlvbjppKDEwOTMsMSxcIlR5cGVfYW5ub3RhdGlvbl9jYW5ub3RfYXBwZWFyX29uX2FfY29uc3RydWN0b3JfZGVjbGFyYXRpb25fMTA5M1wiLFwiVHlwZSBhbm5vdGF0aW9uIGNhbm5vdCBhcHBlYXIgb24gYSBjb25zdHJ1Y3RvciBkZWNsYXJhdGlvbi5cIiksQW5fYWNjZXNzb3JfY2Fubm90X2hhdmVfdHlwZV9wYXJhbWV0ZXJzOmkoMTA5NCwxLFwiQW5fYWNjZXNzb3JfY2Fubm90X2hhdmVfdHlwZV9wYXJhbWV0ZXJzXzEwOTRcIixcIkFuIGFjY2Vzc29yIGNhbm5vdCBoYXZlIHR5cGUgcGFyYW1ldGVycy5cIiksQV9zZXRfYWNjZXNzb3JfY2Fubm90X2hhdmVfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uOmkoMTA5NSwxLFwiQV9zZXRfYWNjZXNzb3JfY2Fubm90X2hhdmVfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uXzEwOTVcIixcIkEgJ3NldCcgYWNjZXNzb3IgY2Fubm90IGhhdmUgYSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfbXVzdF9oYXZlX2V4YWN0bHlfb25lX3BhcmFtZXRlcjppKDEwOTYsMSxcIkFuX2luZGV4X3NpZ25hdHVyZV9tdXN0X2hhdmVfZXhhY3RseV9vbmVfcGFyYW1ldGVyXzEwOTZcIixcIkFuIGluZGV4IHNpZ25hdHVyZSBtdXN0IGhhdmUgZXhhY3RseSBvbmUgcGFyYW1ldGVyLlwiKSxfMF9saXN0X2Nhbm5vdF9iZV9lbXB0eTppKDEwOTcsMSxcIl8wX2xpc3RfY2Fubm90X2JlX2VtcHR5XzEwOTdcIixcIid7MH0nIGxpc3QgY2Fubm90IGJlIGVtcHR5LlwiKSxUeXBlX3BhcmFtZXRlcl9saXN0X2Nhbm5vdF9iZV9lbXB0eTppKDEwOTgsMSxcIlR5cGVfcGFyYW1ldGVyX2xpc3RfY2Fubm90X2JlX2VtcHR5XzEwOThcIixcIlR5cGUgcGFyYW1ldGVyIGxpc3QgY2Fubm90IGJlIGVtcHR5LlwiKSxUeXBlX2FyZ3VtZW50X2xpc3RfY2Fubm90X2JlX2VtcHR5OmkoMTA5OSwxLFwiVHlwZV9hcmd1bWVudF9saXN0X2Nhbm5vdF9iZV9lbXB0eV8xMDk5XCIsXCJUeXBlIGFyZ3VtZW50IGxpc3QgY2Fubm90IGJlIGVtcHR5LlwiKSxJbnZhbGlkX3VzZV9vZl8wX2luX3N0cmljdF9tb2RlOmkoMTEwMCwxLFwiSW52YWxpZF91c2Vfb2ZfMF9pbl9zdHJpY3RfbW9kZV8xMTAwXCIsXCJJbnZhbGlkIHVzZSBvZiAnezB9JyBpbiBzdHJpY3QgbW9kZS5cIiksd2l0aF9zdGF0ZW1lbnRzX2FyZV9ub3RfYWxsb3dlZF9pbl9zdHJpY3RfbW9kZTppKDExMDEsMSxcIndpdGhfc3RhdGVtZW50c19hcmVfbm90X2FsbG93ZWRfaW5fc3RyaWN0X21vZGVfMTEwMVwiLFwiJ3dpdGgnIHN0YXRlbWVudHMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlLlwiKSxkZWxldGVfY2Fubm90X2JlX2NhbGxlZF9vbl9hbl9pZGVudGlmaWVyX2luX3N0cmljdF9tb2RlOmkoMTEwMiwxLFwiZGVsZXRlX2Nhbm5vdF9iZV9jYWxsZWRfb25fYW5faWRlbnRpZmllcl9pbl9zdHJpY3RfbW9kZV8xMTAyXCIsXCInZGVsZXRlJyBjYW5ub3QgYmUgY2FsbGVkIG9uIGFuIGlkZW50aWZpZXIgaW4gc3RyaWN0IG1vZGUuXCIpLGZvcl9hd2FpdF9sb29wc19hcmVfb25seV9hbGxvd2VkX3dpdGhpbl9hc3luY19mdW5jdGlvbnNfYW5kX2F0X3RoZV90b3BfbGV2ZWxzX29mX21vZHVsZXM6aSgxMTAzLDEsXCJmb3JfYXdhaXRfbG9vcHNfYXJlX29ubHlfYWxsb3dlZF93aXRoaW5fYXN5bmNfZnVuY3Rpb25zX2FuZF9hdF90aGVfdG9wX2xldmVsc19vZl9tb2R1bGVzXzExMDNcIixcIidmb3IgYXdhaXQnIGxvb3BzIGFyZSBvbmx5IGFsbG93ZWQgd2l0aGluIGFzeW5jIGZ1bmN0aW9ucyBhbmQgYXQgdGhlIHRvcCBsZXZlbHMgb2YgbW9kdWxlcy5cIiksQV9jb250aW51ZV9zdGF0ZW1lbnRfY2FuX29ubHlfYmVfdXNlZF93aXRoaW5fYW5fZW5jbG9zaW5nX2l0ZXJhdGlvbl9zdGF0ZW1lbnQ6aSgxMTA0LDEsXCJBX2NvbnRpbnVlX3N0YXRlbWVudF9jYW5fb25seV9iZV91c2VkX3dpdGhpbl9hbl9lbmNsb3NpbmdfaXRlcmF0aW9uX3N0YXRlbWVudF8xMTA0XCIsXCJBICdjb250aW51ZScgc3RhdGVtZW50IGNhbiBvbmx5IGJlIHVzZWQgd2l0aGluIGFuIGVuY2xvc2luZyBpdGVyYXRpb24gc3RhdGVtZW50LlwiKSxBX2JyZWFrX3N0YXRlbWVudF9jYW5fb25seV9iZV91c2VkX3dpdGhpbl9hbl9lbmNsb3NpbmdfaXRlcmF0aW9uX29yX3N3aXRjaF9zdGF0ZW1lbnQ6aSgxMTA1LDEsXCJBX2JyZWFrX3N0YXRlbWVudF9jYW5fb25seV9iZV91c2VkX3dpdGhpbl9hbl9lbmNsb3NpbmdfaXRlcmF0aW9uX29yX3N3aXRjaF9zdGF0ZW1lbnRfMTEwNVwiLFwiQSAnYnJlYWsnIHN0YXRlbWVudCBjYW4gb25seSBiZSB1c2VkIHdpdGhpbiBhbiBlbmNsb3NpbmcgaXRlcmF0aW9uIG9yIHN3aXRjaCBzdGF0ZW1lbnQuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9vZl9zdGF0ZW1lbnRfbWF5X25vdF9iZV9hc3luYzppKDExMDYsMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9vZl9zdGF0ZW1lbnRfbWF5X25vdF9iZV9hc3luY18xMTA2XCIsXCJUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSAnZm9yLi4ub2YnIHN0YXRlbWVudCBtYXkgbm90IGJlICdhc3luYycuXCIpLEp1bXBfdGFyZ2V0X2Nhbm5vdF9jcm9zc19mdW5jdGlvbl9ib3VuZGFyeTppKDExMDcsMSxcIkp1bXBfdGFyZ2V0X2Nhbm5vdF9jcm9zc19mdW5jdGlvbl9ib3VuZGFyeV8xMTA3XCIsXCJKdW1wIHRhcmdldCBjYW5ub3QgY3Jvc3MgZnVuY3Rpb24gYm91bmRhcnkuXCIpLEFfcmV0dXJuX3N0YXRlbWVudF9jYW5fb25seV9iZV91c2VkX3dpdGhpbl9hX2Z1bmN0aW9uX2JvZHk6aSgxMTA4LDEsXCJBX3JldHVybl9zdGF0ZW1lbnRfY2FuX29ubHlfYmVfdXNlZF93aXRoaW5fYV9mdW5jdGlvbl9ib2R5XzExMDhcIixcIkEgJ3JldHVybicgc3RhdGVtZW50IGNhbiBvbmx5IGJlIHVzZWQgd2l0aGluIGEgZnVuY3Rpb24gYm9keS5cIiksRXhwcmVzc2lvbl9leHBlY3RlZDppKDExMDksMSxcIkV4cHJlc3Npb25fZXhwZWN0ZWRfMTEwOVwiLFwiRXhwcmVzc2lvbiBleHBlY3RlZC5cIiksVHlwZV9leHBlY3RlZDppKDExMTAsMSxcIlR5cGVfZXhwZWN0ZWRfMTExMFwiLFwiVHlwZSBleHBlY3RlZC5cIiksUHJpdmF0ZV9maWVsZF8wX211c3RfYmVfZGVjbGFyZWRfaW5fYW5fZW5jbG9zaW5nX2NsYXNzOmkoMTExMSwxLFwiUHJpdmF0ZV9maWVsZF8wX211c3RfYmVfZGVjbGFyZWRfaW5fYW5fZW5jbG9zaW5nX2NsYXNzXzExMTFcIixcIlByaXZhdGUgZmllbGQgJ3swfScgbXVzdCBiZSBkZWNsYXJlZCBpbiBhbiBlbmNsb3NpbmcgY2xhc3MuXCIpLEFfZGVmYXVsdF9jbGF1c2VfY2Fubm90X2FwcGVhcl9tb3JlX3RoYW5fb25jZV9pbl9hX3N3aXRjaF9zdGF0ZW1lbnQ6aSgxMTEzLDEsXCJBX2RlZmF1bHRfY2xhdXNlX2Nhbm5vdF9hcHBlYXJfbW9yZV90aGFuX29uY2VfaW5fYV9zd2l0Y2hfc3RhdGVtZW50XzExMTNcIixcIkEgJ2RlZmF1bHQnIGNsYXVzZSBjYW5ub3QgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIGEgJ3N3aXRjaCcgc3RhdGVtZW50LlwiKSxEdXBsaWNhdGVfbGFiZWxfMDppKDExMTQsMSxcIkR1cGxpY2F0ZV9sYWJlbF8wXzExMTRcIixcIkR1cGxpY2F0ZSBsYWJlbCAnezB9Jy5cIiksQV9jb250aW51ZV9zdGF0ZW1lbnRfY2FuX29ubHlfanVtcF90b19hX2xhYmVsX29mX2FuX2VuY2xvc2luZ19pdGVyYXRpb25fc3RhdGVtZW50OmkoMTExNSwxLFwiQV9jb250aW51ZV9zdGF0ZW1lbnRfY2FuX29ubHlfanVtcF90b19hX2xhYmVsX29mX2FuX2VuY2xvc2luZ19pdGVyYXRpb25fc3RhdGVtZW50XzExMTVcIixcIkEgJ2NvbnRpbnVlJyBzdGF0ZW1lbnQgY2FuIG9ubHkganVtcCB0byBhIGxhYmVsIG9mIGFuIGVuY2xvc2luZyBpdGVyYXRpb24gc3RhdGVtZW50LlwiKSxBX2JyZWFrX3N0YXRlbWVudF9jYW5fb25seV9qdW1wX3RvX2FfbGFiZWxfb2ZfYW5fZW5jbG9zaW5nX3N0YXRlbWVudDppKDExMTYsMSxcIkFfYnJlYWtfc3RhdGVtZW50X2Nhbl9vbmx5X2p1bXBfdG9fYV9sYWJlbF9vZl9hbl9lbmNsb3Npbmdfc3RhdGVtZW50XzExMTZcIixcIkEgJ2JyZWFrJyBzdGF0ZW1lbnQgY2FuIG9ubHkganVtcCB0byBhIGxhYmVsIG9mIGFuIGVuY2xvc2luZyBzdGF0ZW1lbnQuXCIpLEFuX29iamVjdF9saXRlcmFsX2Nhbm5vdF9oYXZlX211bHRpcGxlX3Byb3BlcnRpZXNfd2l0aF90aGVfc2FtZV9uYW1lOmkoMTExNywxLFwiQW5fb2JqZWN0X2xpdGVyYWxfY2Fubm90X2hhdmVfbXVsdGlwbGVfcHJvcGVydGllc193aXRoX3RoZV9zYW1lX25hbWVfMTExN1wiLFwiQW4gb2JqZWN0IGxpdGVyYWwgY2Fubm90IGhhdmUgbXVsdGlwbGUgcHJvcGVydGllcyB3aXRoIHRoZSBzYW1lIG5hbWUuXCIpLEFuX29iamVjdF9saXRlcmFsX2Nhbm5vdF9oYXZlX211bHRpcGxlX2dldF9TbGFzaHNldF9hY2Nlc3NvcnNfd2l0aF90aGVfc2FtZV9uYW1lOmkoMTExOCwxLFwiQW5fb2JqZWN0X2xpdGVyYWxfY2Fubm90X2hhdmVfbXVsdGlwbGVfZ2V0X1NsYXNoc2V0X2FjY2Vzc29yc193aXRoX3RoZV9zYW1lX25hbWVfMTExOFwiLFwiQW4gb2JqZWN0IGxpdGVyYWwgY2Fubm90IGhhdmUgbXVsdGlwbGUgZ2V0L3NldCBhY2Nlc3NvcnMgd2l0aCB0aGUgc2FtZSBuYW1lLlwiKSxBbl9vYmplY3RfbGl0ZXJhbF9jYW5ub3RfaGF2ZV9wcm9wZXJ0eV9hbmRfYWNjZXNzb3Jfd2l0aF90aGVfc2FtZV9uYW1lOmkoMTExOSwxLFwiQW5fb2JqZWN0X2xpdGVyYWxfY2Fubm90X2hhdmVfcHJvcGVydHlfYW5kX2FjY2Vzc29yX3dpdGhfdGhlX3NhbWVfbmFtZV8xMTE5XCIsXCJBbiBvYmplY3QgbGl0ZXJhbCBjYW5ub3QgaGF2ZSBwcm9wZXJ0eSBhbmQgYWNjZXNzb3Igd2l0aCB0aGUgc2FtZSBuYW1lLlwiKSxBbl9leHBvcnRfYXNzaWdubWVudF9jYW5ub3RfaGF2ZV9tb2RpZmllcnM6aSgxMTIwLDEsXCJBbl9leHBvcnRfYXNzaWdubWVudF9jYW5ub3RfaGF2ZV9tb2RpZmllcnNfMTEyMFwiLFwiQW4gZXhwb3J0IGFzc2lnbm1lbnQgY2Fubm90IGhhdmUgbW9kaWZpZXJzLlwiKSxPY3RhbF9saXRlcmFsc19hcmVfbm90X2FsbG93ZWRfVXNlX3RoZV9zeW50YXhfMDppKDExMjEsMSxcIk9jdGFsX2xpdGVyYWxzX2FyZV9ub3RfYWxsb3dlZF9Vc2VfdGhlX3N5bnRheF8wXzExMjFcIixcIk9jdGFsIGxpdGVyYWxzIGFyZSBub3QgYWxsb3dlZC4gVXNlIHRoZSBzeW50YXggJ3swfScuXCIpLFZhcmlhYmxlX2RlY2xhcmF0aW9uX2xpc3RfY2Fubm90X2JlX2VtcHR5OmkoMTEyMywxLFwiVmFyaWFibGVfZGVjbGFyYXRpb25fbGlzdF9jYW5ub3RfYmVfZW1wdHlfMTEyM1wiLFwiVmFyaWFibGUgZGVjbGFyYXRpb24gbGlzdCBjYW5ub3QgYmUgZW1wdHkuXCIpLERpZ2l0X2V4cGVjdGVkOmkoMTEyNCwxLFwiRGlnaXRfZXhwZWN0ZWRfMTEyNFwiLFwiRGlnaXQgZXhwZWN0ZWQuXCIpLEhleGFkZWNpbWFsX2RpZ2l0X2V4cGVjdGVkOmkoMTEyNSwxLFwiSGV4YWRlY2ltYWxfZGlnaXRfZXhwZWN0ZWRfMTEyNVwiLFwiSGV4YWRlY2ltYWwgZGlnaXQgZXhwZWN0ZWQuXCIpLFVuZXhwZWN0ZWRfZW5kX29mX3RleHQ6aSgxMTI2LDEsXCJVbmV4cGVjdGVkX2VuZF9vZl90ZXh0XzExMjZcIixcIlVuZXhwZWN0ZWQgZW5kIG9mIHRleHQuXCIpLEludmFsaWRfY2hhcmFjdGVyOmkoMTEyNywxLFwiSW52YWxpZF9jaGFyYWN0ZXJfMTEyN1wiLFwiSW52YWxpZCBjaGFyYWN0ZXIuXCIpLERlY2xhcmF0aW9uX29yX3N0YXRlbWVudF9leHBlY3RlZDppKDExMjgsMSxcIkRlY2xhcmF0aW9uX29yX3N0YXRlbWVudF9leHBlY3RlZF8xMTI4XCIsXCJEZWNsYXJhdGlvbiBvciBzdGF0ZW1lbnQgZXhwZWN0ZWQuXCIpLFN0YXRlbWVudF9leHBlY3RlZDppKDExMjksMSxcIlN0YXRlbWVudF9leHBlY3RlZF8xMTI5XCIsXCJTdGF0ZW1lbnQgZXhwZWN0ZWQuXCIpLGNhc2Vfb3JfZGVmYXVsdF9leHBlY3RlZDppKDExMzAsMSxcImNhc2Vfb3JfZGVmYXVsdF9leHBlY3RlZF8xMTMwXCIsXCInY2FzZScgb3IgJ2RlZmF1bHQnIGV4cGVjdGVkLlwiKSxQcm9wZXJ0eV9vcl9zaWduYXR1cmVfZXhwZWN0ZWQ6aSgxMTMxLDEsXCJQcm9wZXJ0eV9vcl9zaWduYXR1cmVfZXhwZWN0ZWRfMTEzMVwiLFwiUHJvcGVydHkgb3Igc2lnbmF0dXJlIGV4cGVjdGVkLlwiKSxFbnVtX21lbWJlcl9leHBlY3RlZDppKDExMzIsMSxcIkVudW1fbWVtYmVyX2V4cGVjdGVkXzExMzJcIixcIkVudW0gbWVtYmVyIGV4cGVjdGVkLlwiKSxWYXJpYWJsZV9kZWNsYXJhdGlvbl9leHBlY3RlZDppKDExMzQsMSxcIlZhcmlhYmxlX2RlY2xhcmF0aW9uX2V4cGVjdGVkXzExMzRcIixcIlZhcmlhYmxlIGRlY2xhcmF0aW9uIGV4cGVjdGVkLlwiKSxBcmd1bWVudF9leHByZXNzaW9uX2V4cGVjdGVkOmkoMTEzNSwxLFwiQXJndW1lbnRfZXhwcmVzc2lvbl9leHBlY3RlZF8xMTM1XCIsXCJBcmd1bWVudCBleHByZXNzaW9uIGV4cGVjdGVkLlwiKSxQcm9wZXJ0eV9hc3NpZ25tZW50X2V4cGVjdGVkOmkoMTEzNiwxLFwiUHJvcGVydHlfYXNzaWdubWVudF9leHBlY3RlZF8xMTM2XCIsXCJQcm9wZXJ0eSBhc3NpZ25tZW50IGV4cGVjdGVkLlwiKSxFeHByZXNzaW9uX29yX2NvbW1hX2V4cGVjdGVkOmkoMTEzNywxLFwiRXhwcmVzc2lvbl9vcl9jb21tYV9leHBlY3RlZF8xMTM3XCIsXCJFeHByZXNzaW9uIG9yIGNvbW1hIGV4cGVjdGVkLlwiKSxQYXJhbWV0ZXJfZGVjbGFyYXRpb25fZXhwZWN0ZWQ6aSgxMTM4LDEsXCJQYXJhbWV0ZXJfZGVjbGFyYXRpb25fZXhwZWN0ZWRfMTEzOFwiLFwiUGFyYW1ldGVyIGRlY2xhcmF0aW9uIGV4cGVjdGVkLlwiKSxUeXBlX3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9leHBlY3RlZDppKDExMzksMSxcIlR5cGVfcGFyYW1ldGVyX2RlY2xhcmF0aW9uX2V4cGVjdGVkXzExMzlcIixcIlR5cGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9uIGV4cGVjdGVkLlwiKSxUeXBlX2FyZ3VtZW50X2V4cGVjdGVkOmkoMTE0MCwxLFwiVHlwZV9hcmd1bWVudF9leHBlY3RlZF8xMTQwXCIsXCJUeXBlIGFyZ3VtZW50IGV4cGVjdGVkLlwiKSxTdHJpbmdfbGl0ZXJhbF9leHBlY3RlZDppKDExNDEsMSxcIlN0cmluZ19saXRlcmFsX2V4cGVjdGVkXzExNDFcIixcIlN0cmluZyBsaXRlcmFsIGV4cGVjdGVkLlwiKSxMaW5lX2JyZWFrX25vdF9wZXJtaXR0ZWRfaGVyZTppKDExNDIsMSxcIkxpbmVfYnJlYWtfbm90X3Blcm1pdHRlZF9oZXJlXzExNDJcIixcIkxpbmUgYnJlYWsgbm90IHBlcm1pdHRlZCBoZXJlLlwiKSxvcl9leHBlY3RlZDppKDExNDQsMSxcIm9yX2V4cGVjdGVkXzExNDRcIixcIid7JyBvciAnOycgZXhwZWN0ZWQuXCIpLG9yX0pTWF9lbGVtZW50X2V4cGVjdGVkOmkoMTE0NSwxLFwib3JfSlNYX2VsZW1lbnRfZXhwZWN0ZWRfMTE0NVwiLFwiJ3snIG9yIEpTWCBlbGVtZW50IGV4cGVjdGVkLlwiKSxEZWNsYXJhdGlvbl9leHBlY3RlZDppKDExNDYsMSxcIkRlY2xhcmF0aW9uX2V4cGVjdGVkXzExNDZcIixcIkRlY2xhcmF0aW9uIGV4cGVjdGVkLlwiKSxJbXBvcnRfZGVjbGFyYXRpb25zX2luX2FfbmFtZXNwYWNlX2Nhbm5vdF9yZWZlcmVuY2VfYV9tb2R1bGU6aSgxMTQ3LDEsXCJJbXBvcnRfZGVjbGFyYXRpb25zX2luX2FfbmFtZXNwYWNlX2Nhbm5vdF9yZWZlcmVuY2VfYV9tb2R1bGVfMTE0N1wiLFwiSW1wb3J0IGRlY2xhcmF0aW9ucyBpbiBhIG5hbWVzcGFjZSBjYW5ub3QgcmVmZXJlbmNlIGEgbW9kdWxlLlwiKSxDYW5ub3RfdXNlX2ltcG9ydHNfZXhwb3J0c19vcl9tb2R1bGVfYXVnbWVudGF0aW9uc193aGVuX21vZHVsZV9pc19ub25lOmkoMTE0OCwxLFwiQ2Fubm90X3VzZV9pbXBvcnRzX2V4cG9ydHNfb3JfbW9kdWxlX2F1Z21lbnRhdGlvbnNfd2hlbl9tb2R1bGVfaXNfbm9uZV8xMTQ4XCIsXCJDYW5ub3QgdXNlIGltcG9ydHMsIGV4cG9ydHMsIG9yIG1vZHVsZSBhdWdtZW50YXRpb25zIHdoZW4gJy0tbW9kdWxlJyBpcyAnbm9uZScuXCIpLEZpbGVfbmFtZV8wX2RpZmZlcnNfZnJvbV9hbHJlYWR5X2luY2x1ZGVkX2ZpbGVfbmFtZV8xX29ubHlfaW5fY2FzaW5nOmkoMTE0OSwxLFwiRmlsZV9uYW1lXzBfZGlmZmVyc19mcm9tX2FscmVhZHlfaW5jbHVkZWRfZmlsZV9uYW1lXzFfb25seV9pbl9jYXNpbmdfMTE0OVwiLFwiRmlsZSBuYW1lICd7MH0nIGRpZmZlcnMgZnJvbSBhbHJlYWR5IGluY2x1ZGVkIGZpbGUgbmFtZSAnezF9JyBvbmx5IGluIGNhc2luZy5cIiksXzBfZGVjbGFyYXRpb25zX211c3RfYmVfaW5pdGlhbGl6ZWQ6aSgxMTU1LDEsXCJfMF9kZWNsYXJhdGlvbnNfbXVzdF9iZV9pbml0aWFsaXplZF8xMTU1XCIsXCInezB9JyBkZWNsYXJhdGlvbnMgbXVzdCBiZSBpbml0aWFsaXplZC5cIiksXzBfZGVjbGFyYXRpb25zX2Nhbl9vbmx5X2JlX2RlY2xhcmVkX2luc2lkZV9hX2Jsb2NrOmkoMTE1NiwxLFwiXzBfZGVjbGFyYXRpb25zX2Nhbl9vbmx5X2JlX2RlY2xhcmVkX2luc2lkZV9hX2Jsb2NrXzExNTZcIixcIid7MH0nIGRlY2xhcmF0aW9ucyBjYW4gb25seSBiZSBkZWNsYXJlZCBpbnNpZGUgYSBibG9jay5cIiksVW50ZXJtaW5hdGVkX3RlbXBsYXRlX2xpdGVyYWw6aSgxMTYwLDEsXCJVbnRlcm1pbmF0ZWRfdGVtcGxhdGVfbGl0ZXJhbF8xMTYwXCIsXCJVbnRlcm1pbmF0ZWQgdGVtcGxhdGUgbGl0ZXJhbC5cIiksVW50ZXJtaW5hdGVkX3JlZ3VsYXJfZXhwcmVzc2lvbl9saXRlcmFsOmkoMTE2MSwxLFwiVW50ZXJtaW5hdGVkX3JlZ3VsYXJfZXhwcmVzc2lvbl9saXRlcmFsXzExNjFcIixcIlVudGVybWluYXRlZCByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbC5cIiksQW5fb2JqZWN0X21lbWJlcl9jYW5ub3RfYmVfZGVjbGFyZWRfb3B0aW9uYWw6aSgxMTYyLDEsXCJBbl9vYmplY3RfbWVtYmVyX2Nhbm5vdF9iZV9kZWNsYXJlZF9vcHRpb25hbF8xMTYyXCIsXCJBbiBvYmplY3QgbWVtYmVyIGNhbm5vdCBiZSBkZWNsYXJlZCBvcHRpb25hbC5cIiksQV95aWVsZF9leHByZXNzaW9uX2lzX29ubHlfYWxsb3dlZF9pbl9hX2dlbmVyYXRvcl9ib2R5OmkoMTE2MywxLFwiQV95aWVsZF9leHByZXNzaW9uX2lzX29ubHlfYWxsb3dlZF9pbl9hX2dlbmVyYXRvcl9ib2R5XzExNjNcIixcIkEgJ3lpZWxkJyBleHByZXNzaW9uIGlzIG9ubHkgYWxsb3dlZCBpbiBhIGdlbmVyYXRvciBib2R5LlwiKSxDb21wdXRlZF9wcm9wZXJ0eV9uYW1lc19hcmVfbm90X2FsbG93ZWRfaW5fZW51bXM6aSgxMTY0LDEsXCJDb21wdXRlZF9wcm9wZXJ0eV9uYW1lc19hcmVfbm90X2FsbG93ZWRfaW5fZW51bXNfMTE2NFwiLFwiQ29tcHV0ZWQgcHJvcGVydHkgbmFtZXMgYXJlIG5vdCBhbGxvd2VkIGluIGVudW1zLlwiKSxBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfaW5fYW5fYW1iaWVudF9jb250ZXh0X211c3RfcmVmZXJfdG9fYW5fZXhwcmVzc2lvbl93aG9zZV90eXBlX2lzX2FfbGl0ZXJhbF90eXBlX29yX2FfdW5pcXVlX3N5bWJvbF90eXBlOmkoMTE2NSwxLFwiQV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lX2luX2FuX2FtYmllbnRfY29udGV4dF9tdXN0X3JlZmVyX3RvX2FuX2V4cHJlc3Npb25fd2hvc2VfdHlwZV9pc19hX2xpdGVyYWxfdF8xMTY1XCIsXCJBIGNvbXB1dGVkIHByb3BlcnR5IG5hbWUgaW4gYW4gYW1iaWVudCBjb250ZXh0IG11c3QgcmVmZXIgdG8gYW4gZXhwcmVzc2lvbiB3aG9zZSB0eXBlIGlzIGEgbGl0ZXJhbCB0eXBlIG9yIGEgJ3VuaXF1ZSBzeW1ib2wnIHR5cGUuXCIpLEFfY29tcHV0ZWRfcHJvcGVydHlfbmFtZV9pbl9hX2NsYXNzX3Byb3BlcnR5X2RlY2xhcmF0aW9uX211c3RfaGF2ZV9hX3NpbXBsZV9saXRlcmFsX3R5cGVfb3JfYV91bmlxdWVfc3ltYm9sX3R5cGU6aSgxMTY2LDEsXCJBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfaW5fYV9jbGFzc19wcm9wZXJ0eV9kZWNsYXJhdGlvbl9tdXN0X2hhdmVfYV9zaW1wbGVfbGl0ZXJhbF90eXBlX29yX2FfdW5pcXVlXzExNjZcIixcIkEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBpbiBhIGNsYXNzIHByb3BlcnR5IGRlY2xhcmF0aW9uIG11c3QgaGF2ZSBhIHNpbXBsZSBsaXRlcmFsIHR5cGUgb3IgYSAndW5pcXVlIHN5bWJvbCcgdHlwZS5cIiksQV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lX2luX2FfbWV0aG9kX292ZXJsb2FkX211c3RfcmVmZXJfdG9fYW5fZXhwcmVzc2lvbl93aG9zZV90eXBlX2lzX2FfbGl0ZXJhbF90eXBlX29yX2FfdW5pcXVlX3N5bWJvbF90eXBlOmkoMTE2OCwxLFwiQV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lX2luX2FfbWV0aG9kX292ZXJsb2FkX211c3RfcmVmZXJfdG9fYW5fZXhwcmVzc2lvbl93aG9zZV90eXBlX2lzX2FfbGl0ZXJhbF90eV8xMTY4XCIsXCJBIGNvbXB1dGVkIHByb3BlcnR5IG5hbWUgaW4gYSBtZXRob2Qgb3ZlcmxvYWQgbXVzdCByZWZlciB0byBhbiBleHByZXNzaW9uIHdob3NlIHR5cGUgaXMgYSBsaXRlcmFsIHR5cGUgb3IgYSAndW5pcXVlIHN5bWJvbCcgdHlwZS5cIiksQV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lX2luX2FuX2ludGVyZmFjZV9tdXN0X3JlZmVyX3RvX2FuX2V4cHJlc3Npb25fd2hvc2VfdHlwZV9pc19hX2xpdGVyYWxfdHlwZV9vcl9hX3VuaXF1ZV9zeW1ib2xfdHlwZTppKDExNjksMSxcIkFfY29tcHV0ZWRfcHJvcGVydHlfbmFtZV9pbl9hbl9pbnRlcmZhY2VfbXVzdF9yZWZlcl90b19hbl9leHByZXNzaW9uX3dob3NlX3R5cGVfaXNfYV9saXRlcmFsX3R5cGVfb3JfMTE2OVwiLFwiQSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1lIGluIGFuIGludGVyZmFjZSBtdXN0IHJlZmVyIHRvIGFuIGV4cHJlc3Npb24gd2hvc2UgdHlwZSBpcyBhIGxpdGVyYWwgdHlwZSBvciBhICd1bmlxdWUgc3ltYm9sJyB0eXBlLlwiKSxBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfaW5fYV90eXBlX2xpdGVyYWxfbXVzdF9yZWZlcl90b19hbl9leHByZXNzaW9uX3dob3NlX3R5cGVfaXNfYV9saXRlcmFsX3R5cGVfb3JfYV91bmlxdWVfc3ltYm9sX3R5cGU6aSgxMTcwLDEsXCJBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfaW5fYV90eXBlX2xpdGVyYWxfbXVzdF9yZWZlcl90b19hbl9leHByZXNzaW9uX3dob3NlX3R5cGVfaXNfYV9saXRlcmFsX3R5cGVfXzExNzBcIixcIkEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBpbiBhIHR5cGUgbGl0ZXJhbCBtdXN0IHJlZmVyIHRvIGFuIGV4cHJlc3Npb24gd2hvc2UgdHlwZSBpcyBhIGxpdGVyYWwgdHlwZSBvciBhICd1bmlxdWUgc3ltYm9sJyB0eXBlLlwiKSxBX2NvbW1hX2V4cHJlc3Npb25faXNfbm90X2FsbG93ZWRfaW5fYV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lOmkoMTE3MSwxLFwiQV9jb21tYV9leHByZXNzaW9uX2lzX25vdF9hbGxvd2VkX2luX2FfY29tcHV0ZWRfcHJvcGVydHlfbmFtZV8xMTcxXCIsXCJBIGNvbW1hIGV4cHJlc3Npb24gaXMgbm90IGFsbG93ZWQgaW4gYSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1lLlwiKSxleHRlbmRzX2NsYXVzZV9hbHJlYWR5X3NlZW46aSgxMTcyLDEsXCJleHRlbmRzX2NsYXVzZV9hbHJlYWR5X3NlZW5fMTE3MlwiLFwiJ2V4dGVuZHMnIGNsYXVzZSBhbHJlYWR5IHNlZW4uXCIpLGV4dGVuZHNfY2xhdXNlX211c3RfcHJlY2VkZV9pbXBsZW1lbnRzX2NsYXVzZTppKDExNzMsMSxcImV4dGVuZHNfY2xhdXNlX211c3RfcHJlY2VkZV9pbXBsZW1lbnRzX2NsYXVzZV8xMTczXCIsXCInZXh0ZW5kcycgY2xhdXNlIG11c3QgcHJlY2VkZSAnaW1wbGVtZW50cycgY2xhdXNlLlwiKSxDbGFzc2VzX2Nhbl9vbmx5X2V4dGVuZF9hX3NpbmdsZV9jbGFzczppKDExNzQsMSxcIkNsYXNzZXNfY2FuX29ubHlfZXh0ZW5kX2Ffc2luZ2xlX2NsYXNzXzExNzRcIixcIkNsYXNzZXMgY2FuIG9ubHkgZXh0ZW5kIGEgc2luZ2xlIGNsYXNzLlwiKSxpbXBsZW1lbnRzX2NsYXVzZV9hbHJlYWR5X3NlZW46aSgxMTc1LDEsXCJpbXBsZW1lbnRzX2NsYXVzZV9hbHJlYWR5X3NlZW5fMTE3NVwiLFwiJ2ltcGxlbWVudHMnIGNsYXVzZSBhbHJlYWR5IHNlZW4uXCIpLEludGVyZmFjZV9kZWNsYXJhdGlvbl9jYW5ub3RfaGF2ZV9pbXBsZW1lbnRzX2NsYXVzZTppKDExNzYsMSxcIkludGVyZmFjZV9kZWNsYXJhdGlvbl9jYW5ub3RfaGF2ZV9pbXBsZW1lbnRzX2NsYXVzZV8xMTc2XCIsXCJJbnRlcmZhY2UgZGVjbGFyYXRpb24gY2Fubm90IGhhdmUgJ2ltcGxlbWVudHMnIGNsYXVzZS5cIiksQmluYXJ5X2RpZ2l0X2V4cGVjdGVkOmkoMTE3NywxLFwiQmluYXJ5X2RpZ2l0X2V4cGVjdGVkXzExNzdcIixcIkJpbmFyeSBkaWdpdCBleHBlY3RlZC5cIiksT2N0YWxfZGlnaXRfZXhwZWN0ZWQ6aSgxMTc4LDEsXCJPY3RhbF9kaWdpdF9leHBlY3RlZF8xMTc4XCIsXCJPY3RhbCBkaWdpdCBleHBlY3RlZC5cIiksVW5leHBlY3RlZF90b2tlbl9leHBlY3RlZDppKDExNzksMSxcIlVuZXhwZWN0ZWRfdG9rZW5fZXhwZWN0ZWRfMTE3OVwiLFwiVW5leHBlY3RlZCB0b2tlbi4gJ3snIGV4cGVjdGVkLlwiKSxQcm9wZXJ0eV9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fZXhwZWN0ZWQ6aSgxMTgwLDEsXCJQcm9wZXJ0eV9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fZXhwZWN0ZWRfMTE4MFwiLFwiUHJvcGVydHkgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuIGV4cGVjdGVkLlwiKSxBcnJheV9lbGVtZW50X2Rlc3RydWN0dXJpbmdfcGF0dGVybl9leHBlY3RlZDppKDExODEsMSxcIkFycmF5X2VsZW1lbnRfZGVzdHJ1Y3R1cmluZ19wYXR0ZXJuX2V4cGVjdGVkXzExODFcIixcIkFycmF5IGVsZW1lbnQgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuIGV4cGVjdGVkLlwiKSxBX2Rlc3RydWN0dXJpbmdfZGVjbGFyYXRpb25fbXVzdF9oYXZlX2FuX2luaXRpYWxpemVyOmkoMTE4MiwxLFwiQV9kZXN0cnVjdHVyaW5nX2RlY2xhcmF0aW9uX211c3RfaGF2ZV9hbl9pbml0aWFsaXplcl8xMTgyXCIsXCJBIGRlc3RydWN0dXJpbmcgZGVjbGFyYXRpb24gbXVzdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBbl9pbXBsZW1lbnRhdGlvbl9jYW5ub3RfYmVfZGVjbGFyZWRfaW5fYW1iaWVudF9jb250ZXh0czppKDExODMsMSxcIkFuX2ltcGxlbWVudGF0aW9uX2Nhbm5vdF9iZV9kZWNsYXJlZF9pbl9hbWJpZW50X2NvbnRleHRzXzExODNcIixcIkFuIGltcGxlbWVudGF0aW9uIGNhbm5vdCBiZSBkZWNsYXJlZCBpbiBhbWJpZW50IGNvbnRleHRzLlwiKSxNb2RpZmllcnNfY2Fubm90X2FwcGVhcl9oZXJlOmkoMTE4NCwxLFwiTW9kaWZpZXJzX2Nhbm5vdF9hcHBlYXJfaGVyZV8xMTg0XCIsXCJNb2RpZmllcnMgY2Fubm90IGFwcGVhciBoZXJlLlwiKSxNZXJnZV9jb25mbGljdF9tYXJrZXJfZW5jb3VudGVyZWQ6aSgxMTg1LDEsXCJNZXJnZV9jb25mbGljdF9tYXJrZXJfZW5jb3VudGVyZWRfMTE4NVwiLFwiTWVyZ2UgY29uZmxpY3QgbWFya2VyIGVuY291bnRlcmVkLlwiKSxBX3Jlc3RfZWxlbWVudF9jYW5ub3RfaGF2ZV9hbl9pbml0aWFsaXplcjppKDExODYsMSxcIkFfcmVzdF9lbGVtZW50X2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyXzExODZcIixcIkEgcmVzdCBlbGVtZW50IGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBX3BhcmFtZXRlcl9wcm9wZXJ0eV9tYXlfbm90X2JlX2RlY2xhcmVkX3VzaW5nX2FfYmluZGluZ19wYXR0ZXJuOmkoMTE4NywxLFwiQV9wYXJhbWV0ZXJfcHJvcGVydHlfbWF5X25vdF9iZV9kZWNsYXJlZF91c2luZ19hX2JpbmRpbmdfcGF0dGVybl8xMTg3XCIsXCJBIHBhcmFtZXRlciBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlY2xhcmVkIHVzaW5nIGEgYmluZGluZyBwYXR0ZXJuLlwiKSxPbmx5X2Ffc2luZ2xlX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX2lzX2FsbG93ZWRfaW5fYV9mb3Jfb2Zfc3RhdGVtZW50OmkoMTE4OCwxLFwiT25seV9hX3NpbmdsZV92YXJpYWJsZV9kZWNsYXJhdGlvbl9pc19hbGxvd2VkX2luX2FfZm9yX29mX3N0YXRlbWVudF8xMTg4XCIsXCJPbmx5IGEgc2luZ2xlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGlzIGFsbG93ZWQgaW4gYSAnZm9yLi4ub2YnIHN0YXRlbWVudC5cIiksVGhlX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX29mX2FfZm9yX2luX3N0YXRlbWVudF9jYW5ub3RfaGF2ZV9hbl9pbml0aWFsaXplcjppKDExODksMSxcIlRoZV92YXJpYWJsZV9kZWNsYXJhdGlvbl9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXJfMTE4OVwiLFwiVGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgY2Fubm90IGhhdmUgYW4gaW5pdGlhbGl6ZXIuXCIpLFRoZV92YXJpYWJsZV9kZWNsYXJhdGlvbl9vZl9hX2Zvcl9vZl9zdGF0ZW1lbnRfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXI6aSgxMTkwLDEsXCJUaGVfdmFyaWFibGVfZGVjbGFyYXRpb25fb2ZfYV9mb3Jfb2Zfc3RhdGVtZW50X2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyXzExOTBcIixcIlRoZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBvZiBhICdmb3IuLi5vZicgc3RhdGVtZW50IGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBbl9pbXBvcnRfZGVjbGFyYXRpb25fY2Fubm90X2hhdmVfbW9kaWZpZXJzOmkoMTE5MSwxLFwiQW5faW1wb3J0X2RlY2xhcmF0aW9uX2Nhbm5vdF9oYXZlX21vZGlmaWVyc18xMTkxXCIsXCJBbiBpbXBvcnQgZGVjbGFyYXRpb24gY2Fubm90IGhhdmUgbW9kaWZpZXJzLlwiKSxNb2R1bGVfMF9oYXNfbm9fZGVmYXVsdF9leHBvcnQ6aSgxMTkyLDEsXCJNb2R1bGVfMF9oYXNfbm9fZGVmYXVsdF9leHBvcnRfMTE5MlwiLFwiTW9kdWxlICd7MH0nIGhhcyBubyBkZWZhdWx0IGV4cG9ydC5cIiksQW5fZXhwb3J0X2RlY2xhcmF0aW9uX2Nhbm5vdF9oYXZlX21vZGlmaWVyczppKDExOTMsMSxcIkFuX2V4cG9ydF9kZWNsYXJhdGlvbl9jYW5ub3RfaGF2ZV9tb2RpZmllcnNfMTE5M1wiLFwiQW4gZXhwb3J0IGRlY2xhcmF0aW9uIGNhbm5vdCBoYXZlIG1vZGlmaWVycy5cIiksRXhwb3J0X2RlY2xhcmF0aW9uc19hcmVfbm90X3Blcm1pdHRlZF9pbl9hX25hbWVzcGFjZTppKDExOTQsMSxcIkV4cG9ydF9kZWNsYXJhdGlvbnNfYXJlX25vdF9wZXJtaXR0ZWRfaW5fYV9uYW1lc3BhY2VfMTE5NFwiLFwiRXhwb3J0IGRlY2xhcmF0aW9ucyBhcmUgbm90IHBlcm1pdHRlZCBpbiBhIG5hbWVzcGFjZS5cIiksZXhwb3J0X0FzdGVyaXNrX2RvZXNfbm90X3JlX2V4cG9ydF9hX2RlZmF1bHQ6aSgxMTk1LDEsXCJleHBvcnRfQXN0ZXJpc2tfZG9lc19ub3RfcmVfZXhwb3J0X2FfZGVmYXVsdF8xMTk1XCIsXCInZXhwb3J0IConIGRvZXMgbm90IHJlLWV4cG9ydCBhIGRlZmF1bHQuXCIpLENhdGNoX2NsYXVzZV92YXJpYWJsZV90eXBlX2Fubm90YXRpb25fbXVzdF9iZV9hbnlfb3JfdW5rbm93bl9pZl9zcGVjaWZpZWQ6aSgxMTk2LDEsXCJDYXRjaF9jbGF1c2VfdmFyaWFibGVfdHlwZV9hbm5vdGF0aW9uX211c3RfYmVfYW55X29yX3Vua25vd25faWZfc3BlY2lmaWVkXzExOTZcIixcIkNhdGNoIGNsYXVzZSB2YXJpYWJsZSB0eXBlIGFubm90YXRpb24gbXVzdCBiZSAnYW55JyBvciAndW5rbm93bicgaWYgc3BlY2lmaWVkLlwiKSxDYXRjaF9jbGF1c2VfdmFyaWFibGVfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXI6aSgxMTk3LDEsXCJDYXRjaF9jbGF1c2VfdmFyaWFibGVfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXJfMTE5N1wiLFwiQ2F0Y2ggY2xhdXNlIHZhcmlhYmxlIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBbl9leHRlbmRlZF9Vbmljb2RlX2VzY2FwZV92YWx1ZV9tdXN0X2JlX2JldHdlZW5fMHgwX2FuZF8weDEwRkZGRl9pbmNsdXNpdmU6aSgxMTk4LDEsXCJBbl9leHRlbmRlZF9Vbmljb2RlX2VzY2FwZV92YWx1ZV9tdXN0X2JlX2JldHdlZW5fMHgwX2FuZF8weDEwRkZGRl9pbmNsdXNpdmVfMTE5OFwiLFwiQW4gZXh0ZW5kZWQgVW5pY29kZSBlc2NhcGUgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDB4MCBhbmQgMHgxMEZGRkYgaW5jbHVzaXZlLlwiKSxVbnRlcm1pbmF0ZWRfVW5pY29kZV9lc2NhcGVfc2VxdWVuY2U6aSgxMTk5LDEsXCJVbnRlcm1pbmF0ZWRfVW5pY29kZV9lc2NhcGVfc2VxdWVuY2VfMTE5OVwiLFwiVW50ZXJtaW5hdGVkIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlLlwiKSxMaW5lX3Rlcm1pbmF0b3Jfbm90X3Blcm1pdHRlZF9iZWZvcmVfYXJyb3c6aSgxMjAwLDEsXCJMaW5lX3Rlcm1pbmF0b3Jfbm90X3Blcm1pdHRlZF9iZWZvcmVfYXJyb3dfMTIwMFwiLFwiTGluZSB0ZXJtaW5hdG9yIG5vdCBwZXJtaXR0ZWQgYmVmb3JlIGFycm93LlwiKSxJbXBvcnRfYXNzaWdubWVudF9jYW5ub3RfYmVfdXNlZF93aGVuX3RhcmdldGluZ19FQ01BU2NyaXB0X21vZHVsZXNfQ29uc2lkZXJfdXNpbmdfaW1wb3J0X0FzdGVyaXNrX2FzX25zX2Zyb21fbW9kX2ltcG9ydF9hX2Zyb21fbW9kX2ltcG9ydF9kX2Zyb21fbW9kX29yX2Fub3RoZXJfbW9kdWxlX2Zvcm1hdF9pbnN0ZWFkOmkoMTIwMiwxLFwiSW1wb3J0X2Fzc2lnbm1lbnRfY2Fubm90X2JlX3VzZWRfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF9tb2R1bGVzX0NvbnNpZGVyX3VzaW5nX2ltcG9ydF9Bc3Rlcmlza19hc18xMjAyXCIsYEltcG9ydCBhc3NpZ25tZW50IGNhbm5vdCBiZSB1c2VkIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgbW9kdWxlcy4gQ29uc2lkZXIgdXNpbmcgJ2ltcG9ydCAqIGFzIG5zIGZyb20gXCJtb2RcIicsICdpbXBvcnQge2F9IGZyb20gXCJtb2RcIicsICdpbXBvcnQgZCBmcm9tIFwibW9kXCInLCBvciBhbm90aGVyIG1vZHVsZSBmb3JtYXQgaW5zdGVhZC5gKSxFeHBvcnRfYXNzaWdubWVudF9jYW5ub3RfYmVfdXNlZF93aGVuX3RhcmdldGluZ19FQ01BU2NyaXB0X21vZHVsZXNfQ29uc2lkZXJfdXNpbmdfZXhwb3J0X2RlZmF1bHRfb3JfYW5vdGhlcl9tb2R1bGVfZm9ybWF0X2luc3RlYWQ6aSgxMjAzLDEsXCJFeHBvcnRfYXNzaWdubWVudF9jYW5ub3RfYmVfdXNlZF93aGVuX3RhcmdldGluZ19FQ01BU2NyaXB0X21vZHVsZXNfQ29uc2lkZXJfdXNpbmdfZXhwb3J0X2RlZmF1bHRfb3JfXzEyMDNcIixcIkV4cG9ydCBhc3NpZ25tZW50IGNhbm5vdCBiZSB1c2VkIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgbW9kdWxlcy4gQ29uc2lkZXIgdXNpbmcgJ2V4cG9ydCBkZWZhdWx0JyBvciBhbm90aGVyIG1vZHVsZSBmb3JtYXQgaW5zdGVhZC5cIiksUmVfZXhwb3J0aW5nX2FfdHlwZV93aGVuXzBfaXNfZW5hYmxlZF9yZXF1aXJlc191c2luZ19leHBvcnRfdHlwZTppKDEyMDUsMSxcIlJlX2V4cG9ydGluZ19hX3R5cGVfd2hlbl8wX2lzX2VuYWJsZWRfcmVxdWlyZXNfdXNpbmdfZXhwb3J0X3R5cGVfMTIwNVwiLFwiUmUtZXhwb3J0aW5nIGEgdHlwZSB3aGVuICd7MH0nIGlzIGVuYWJsZWQgcmVxdWlyZXMgdXNpbmcgJ2V4cG9ydCB0eXBlJy5cIiksRGVjb3JhdG9yc19hcmVfbm90X3ZhbGlkX2hlcmU6aSgxMjA2LDEsXCJEZWNvcmF0b3JzX2FyZV9ub3RfdmFsaWRfaGVyZV8xMjA2XCIsXCJEZWNvcmF0b3JzIGFyZSBub3QgdmFsaWQgaGVyZS5cIiksRGVjb3JhdG9yc19jYW5ub3RfYmVfYXBwbGllZF90b19tdWx0aXBsZV9nZXRfU2xhc2hzZXRfYWNjZXNzb3JzX29mX3RoZV9zYW1lX25hbWU6aSgxMjA3LDEsXCJEZWNvcmF0b3JzX2Nhbm5vdF9iZV9hcHBsaWVkX3RvX211bHRpcGxlX2dldF9TbGFzaHNldF9hY2Nlc3NvcnNfb2ZfdGhlX3NhbWVfbmFtZV8xMjA3XCIsXCJEZWNvcmF0b3JzIGNhbm5vdCBiZSBhcHBsaWVkIHRvIG11bHRpcGxlIGdldC9zZXQgYWNjZXNzb3JzIG9mIHRoZSBzYW1lIG5hbWUuXCIpLEludmFsaWRfb3B0aW9uYWxfY2hhaW5fZnJvbV9uZXdfZXhwcmVzc2lvbl9EaWRfeW91X21lYW5fdG9fY2FsbF8wOmkoMTIwOSwxLFwiSW52YWxpZF9vcHRpb25hbF9jaGFpbl9mcm9tX25ld19leHByZXNzaW9uX0RpZF95b3VfbWVhbl90b19jYWxsXzBfMTIwOVwiLFwiSW52YWxpZCBvcHRpb25hbCBjaGFpbiBmcm9tIG5ldyBleHByZXNzaW9uLiBEaWQgeW91IG1lYW4gdG8gY2FsbCAnezB9KCknP1wiKSxDb2RlX2NvbnRhaW5lZF9pbl9hX2NsYXNzX2lzX2V2YWx1YXRlZF9pbl9KYXZhU2NyaXB0X3Nfc3RyaWN0X21vZGVfd2hpY2hfZG9lc19ub3RfYWxsb3dfdGhpc191c2Vfb2ZfMF9Gb3JfbW9yZV9pbmZvcm1hdGlvbl9zZWVfaHR0cHNfQ29sb25fU2xhc2hfU2xhc2hkZXZlbG9wZXJfbW96aWxsYV9vcmdfU2xhc2hlbl9VU19TbGFzaGRvY3NfU2xhc2hXZWJfU2xhc2hKYXZhU2NyaXB0X1NsYXNoUmVmZXJlbmNlX1NsYXNoU3RyaWN0X21vZGU6aSgxMjEwLDEsXCJDb2RlX2NvbnRhaW5lZF9pbl9hX2NsYXNzX2lzX2V2YWx1YXRlZF9pbl9KYXZhU2NyaXB0X3Nfc3RyaWN0X21vZGVfd2hpY2hfZG9lc19ub3RfYWxsb3dfdGhpc191c2Vfb2ZfXzEyMTBcIixcIkNvZGUgY29udGFpbmVkIGluIGEgY2xhc3MgaXMgZXZhbHVhdGVkIGluIEphdmFTY3JpcHQncyBzdHJpY3QgbW9kZSB3aGljaCBkb2VzIG5vdCBhbGxvdyB0aGlzIHVzZSBvZiAnezB9Jy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9TdHJpY3RfbW9kZS5cIiksQV9jbGFzc19kZWNsYXJhdGlvbl93aXRob3V0X3RoZV9kZWZhdWx0X21vZGlmaWVyX211c3RfaGF2ZV9hX25hbWU6aSgxMjExLDEsXCJBX2NsYXNzX2RlY2xhcmF0aW9uX3dpdGhvdXRfdGhlX2RlZmF1bHRfbW9kaWZpZXJfbXVzdF9oYXZlX2FfbmFtZV8xMjExXCIsXCJBIGNsYXNzIGRlY2xhcmF0aW9uIHdpdGhvdXQgdGhlICdkZWZhdWx0JyBtb2RpZmllciBtdXN0IGhhdmUgYSBuYW1lLlwiKSxJZGVudGlmaWVyX2V4cGVjdGVkXzBfaXNfYV9yZXNlcnZlZF93b3JkX2luX3N0cmljdF9tb2RlOmkoMTIxMiwxLFwiSWRlbnRpZmllcl9leHBlY3RlZF8wX2lzX2FfcmVzZXJ2ZWRfd29yZF9pbl9zdHJpY3RfbW9kZV8xMjEyXCIsXCJJZGVudGlmaWVyIGV4cGVjdGVkLiAnezB9JyBpcyBhIHJlc2VydmVkIHdvcmQgaW4gc3RyaWN0IG1vZGUuXCIpLElkZW50aWZpZXJfZXhwZWN0ZWRfMF9pc19hX3Jlc2VydmVkX3dvcmRfaW5fc3RyaWN0X21vZGVfQ2xhc3NfZGVmaW5pdGlvbnNfYXJlX2F1dG9tYXRpY2FsbHlfaW5fc3RyaWN0X21vZGU6aSgxMjEzLDEsXCJJZGVudGlmaWVyX2V4cGVjdGVkXzBfaXNfYV9yZXNlcnZlZF93b3JkX2luX3N0cmljdF9tb2RlX0NsYXNzX2RlZmluaXRpb25zX2FyZV9hdXRvbWF0aWNhbGx5X2luX3N0cmljXzEyMTNcIixcIklkZW50aWZpZXIgZXhwZWN0ZWQuICd7MH0nIGlzIGEgcmVzZXJ2ZWQgd29yZCBpbiBzdHJpY3QgbW9kZS4gQ2xhc3MgZGVmaW5pdGlvbnMgYXJlIGF1dG9tYXRpY2FsbHkgaW4gc3RyaWN0IG1vZGUuXCIpLElkZW50aWZpZXJfZXhwZWN0ZWRfMF9pc19hX3Jlc2VydmVkX3dvcmRfaW5fc3RyaWN0X21vZGVfTW9kdWxlc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZTppKDEyMTQsMSxcIklkZW50aWZpZXJfZXhwZWN0ZWRfMF9pc19hX3Jlc2VydmVkX3dvcmRfaW5fc3RyaWN0X21vZGVfTW9kdWxlc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZV8xMjE0XCIsXCJJZGVudGlmaWVyIGV4cGVjdGVkLiAnezB9JyBpcyBhIHJlc2VydmVkIHdvcmQgaW4gc3RyaWN0IG1vZGUuIE1vZHVsZXMgYXJlIGF1dG9tYXRpY2FsbHkgaW4gc3RyaWN0IG1vZGUuXCIpLEludmFsaWRfdXNlX29mXzBfTW9kdWxlc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZTppKDEyMTUsMSxcIkludmFsaWRfdXNlX29mXzBfTW9kdWxlc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZV8xMjE1XCIsXCJJbnZhbGlkIHVzZSBvZiAnezB9Jy4gTW9kdWxlcyBhcmUgYXV0b21hdGljYWxseSBpbiBzdHJpY3QgbW9kZS5cIiksSWRlbnRpZmllcl9leHBlY3RlZF9lc01vZHVsZV9pc19yZXNlcnZlZF9hc19hbl9leHBvcnRlZF9tYXJrZXJfd2hlbl90cmFuc2Zvcm1pbmdfRUNNQVNjcmlwdF9tb2R1bGVzOmkoMTIxNiwxLFwiSWRlbnRpZmllcl9leHBlY3RlZF9lc01vZHVsZV9pc19yZXNlcnZlZF9hc19hbl9leHBvcnRlZF9tYXJrZXJfd2hlbl90cmFuc2Zvcm1pbmdfRUNNQVNjcmlwdF9tb2R1bGVzXzEyMTZcIixcIklkZW50aWZpZXIgZXhwZWN0ZWQuICdfX2VzTW9kdWxlJyBpcyByZXNlcnZlZCBhcyBhbiBleHBvcnRlZCBtYXJrZXIgd2hlbiB0cmFuc2Zvcm1pbmcgRUNNQVNjcmlwdCBtb2R1bGVzLlwiKSxFeHBvcnRfYXNzaWdubWVudF9pc19ub3Rfc3VwcG9ydGVkX3doZW5fbW9kdWxlX2ZsYWdfaXNfc3lzdGVtOmkoMTIxOCwxLFwiRXhwb3J0X2Fzc2lnbm1lbnRfaXNfbm90X3N1cHBvcnRlZF93aGVuX21vZHVsZV9mbGFnX2lzX3N5c3RlbV8xMjE4XCIsXCJFeHBvcnQgYXNzaWdubWVudCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gJy0tbW9kdWxlJyBmbGFnIGlzICdzeXN0ZW0nLlwiKSxHZW5lcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbl9hbWJpZW50X2NvbnRleHQ6aSgxMjIxLDEsXCJHZW5lcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbl9hbWJpZW50X2NvbnRleHRfMTIyMVwiLFwiR2VuZXJhdG9ycyBhcmUgbm90IGFsbG93ZWQgaW4gYW4gYW1iaWVudCBjb250ZXh0LlwiKSxBbl9vdmVybG9hZF9zaWduYXR1cmVfY2Fubm90X2JlX2RlY2xhcmVkX2FzX2FfZ2VuZXJhdG9yOmkoMTIyMiwxLFwiQW5fb3ZlcmxvYWRfc2lnbmF0dXJlX2Nhbm5vdF9iZV9kZWNsYXJlZF9hc19hX2dlbmVyYXRvcl8xMjIyXCIsXCJBbiBvdmVybG9hZCBzaWduYXR1cmUgY2Fubm90IGJlIGRlY2xhcmVkIGFzIGEgZ2VuZXJhdG9yLlwiKSxfMF90YWdfYWxyZWFkeV9zcGVjaWZpZWQ6aSgxMjIzLDEsXCJfMF90YWdfYWxyZWFkeV9zcGVjaWZpZWRfMTIyM1wiLFwiJ3swfScgdGFnIGFscmVhZHkgc3BlY2lmaWVkLlwiKSxTaWduYXR1cmVfMF9tdXN0X2JlX2FfdHlwZV9wcmVkaWNhdGU6aSgxMjI0LDEsXCJTaWduYXR1cmVfMF9tdXN0X2JlX2FfdHlwZV9wcmVkaWNhdGVfMTIyNFwiLFwiU2lnbmF0dXJlICd7MH0nIG11c3QgYmUgYSB0eXBlIHByZWRpY2F0ZS5cIiksQ2Fubm90X2ZpbmRfcGFyYW1ldGVyXzA6aSgxMjI1LDEsXCJDYW5ub3RfZmluZF9wYXJhbWV0ZXJfMF8xMjI1XCIsXCJDYW5ub3QgZmluZCBwYXJhbWV0ZXIgJ3swfScuXCIpLFR5cGVfcHJlZGljYXRlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fMTppKDEyMjYsMSxcIlR5cGVfcHJlZGljYXRlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fMV8xMjI2XCIsXCJUeXBlIHByZWRpY2F0ZSAnezB9JyBpcyBub3QgYXNzaWduYWJsZSB0byAnezF9Jy5cIiksUGFyYW1ldGVyXzBfaXNfbm90X2luX3RoZV9zYW1lX3Bvc2l0aW9uX2FzX3BhcmFtZXRlcl8xOmkoMTIyNywxLFwiUGFyYW1ldGVyXzBfaXNfbm90X2luX3RoZV9zYW1lX3Bvc2l0aW9uX2FzX3BhcmFtZXRlcl8xXzEyMjdcIixcIlBhcmFtZXRlciAnezB9JyBpcyBub3QgaW4gdGhlIHNhbWUgcG9zaXRpb24gYXMgcGFyYW1ldGVyICd7MX0nLlwiKSxBX3R5cGVfcHJlZGljYXRlX2lzX29ubHlfYWxsb3dlZF9pbl9yZXR1cm5fdHlwZV9wb3NpdGlvbl9mb3JfZnVuY3Rpb25zX2FuZF9tZXRob2RzOmkoMTIyOCwxLFwiQV90eXBlX3ByZWRpY2F0ZV9pc19vbmx5X2FsbG93ZWRfaW5fcmV0dXJuX3R5cGVfcG9zaXRpb25fZm9yX2Z1bmN0aW9uc19hbmRfbWV0aG9kc18xMjI4XCIsXCJBIHR5cGUgcHJlZGljYXRlIGlzIG9ubHkgYWxsb3dlZCBpbiByZXR1cm4gdHlwZSBwb3NpdGlvbiBmb3IgZnVuY3Rpb25zIGFuZCBtZXRob2RzLlwiKSxBX3R5cGVfcHJlZGljYXRlX2Nhbm5vdF9yZWZlcmVuY2VfYV9yZXN0X3BhcmFtZXRlcjppKDEyMjksMSxcIkFfdHlwZV9wcmVkaWNhdGVfY2Fubm90X3JlZmVyZW5jZV9hX3Jlc3RfcGFyYW1ldGVyXzEyMjlcIixcIkEgdHlwZSBwcmVkaWNhdGUgY2Fubm90IHJlZmVyZW5jZSBhIHJlc3QgcGFyYW1ldGVyLlwiKSxBX3R5cGVfcHJlZGljYXRlX2Nhbm5vdF9yZWZlcmVuY2VfZWxlbWVudF8wX2luX2FfYmluZGluZ19wYXR0ZXJuOmkoMTIzMCwxLFwiQV90eXBlX3ByZWRpY2F0ZV9jYW5ub3RfcmVmZXJlbmNlX2VsZW1lbnRfMF9pbl9hX2JpbmRpbmdfcGF0dGVybl8xMjMwXCIsXCJBIHR5cGUgcHJlZGljYXRlIGNhbm5vdCByZWZlcmVuY2UgZWxlbWVudCAnezB9JyBpbiBhIGJpbmRpbmcgcGF0dGVybi5cIiksQW5fZXhwb3J0X2Fzc2lnbm1lbnRfbXVzdF9iZV9hdF90aGVfdG9wX2xldmVsX29mX2FfZmlsZV9vcl9tb2R1bGVfZGVjbGFyYXRpb246aSgxMjMxLDEsXCJBbl9leHBvcnRfYXNzaWdubWVudF9tdXN0X2JlX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9maWxlX29yX21vZHVsZV9kZWNsYXJhdGlvbl8xMjMxXCIsXCJBbiBleHBvcnQgYXNzaWdubWVudCBtdXN0IGJlIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBmaWxlIG9yIG1vZHVsZSBkZWNsYXJhdGlvbi5cIiksQW5faW1wb3J0X2RlY2xhcmF0aW9uX2Nhbl9vbmx5X2JlX3VzZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX25hbWVzcGFjZV9vcl9tb2R1bGU6aSgxMjMyLDEsXCJBbl9pbXBvcnRfZGVjbGFyYXRpb25fY2FuX29ubHlfYmVfdXNlZF9hdF90aGVfdG9wX2xldmVsX29mX2FfbmFtZXNwYWNlX29yX21vZHVsZV8xMjMyXCIsXCJBbiBpbXBvcnQgZGVjbGFyYXRpb24gY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgbmFtZXNwYWNlIG9yIG1vZHVsZS5cIiksQW5fZXhwb3J0X2RlY2xhcmF0aW9uX2Nhbl9vbmx5X2JlX3VzZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX25hbWVzcGFjZV9vcl9tb2R1bGU6aSgxMjMzLDEsXCJBbl9leHBvcnRfZGVjbGFyYXRpb25fY2FuX29ubHlfYmVfdXNlZF9hdF90aGVfdG9wX2xldmVsX29mX2FfbmFtZXNwYWNlX29yX21vZHVsZV8xMjMzXCIsXCJBbiBleHBvcnQgZGVjbGFyYXRpb24gY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgbmFtZXNwYWNlIG9yIG1vZHVsZS5cIiksQW5fYW1iaWVudF9tb2R1bGVfZGVjbGFyYXRpb25faXNfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfaW5fYV9maWxlOmkoMTIzNCwxLFwiQW5fYW1iaWVudF9tb2R1bGVfZGVjbGFyYXRpb25faXNfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfaW5fYV9maWxlXzEyMzRcIixcIkFuIGFtYmllbnQgbW9kdWxlIGRlY2xhcmF0aW9uIGlzIG9ubHkgYWxsb3dlZCBhdCB0aGUgdG9wIGxldmVsIGluIGEgZmlsZS5cIiksQV9uYW1lc3BhY2VfZGVjbGFyYXRpb25faXNfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9uYW1lc3BhY2Vfb3JfbW9kdWxlOmkoMTIzNSwxLFwiQV9uYW1lc3BhY2VfZGVjbGFyYXRpb25faXNfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9uYW1lc3BhY2Vfb3JfbW9kdWxlXzEyMzVcIixcIkEgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIGlzIG9ubHkgYWxsb3dlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgbmFtZXNwYWNlIG9yIG1vZHVsZS5cIiksVGhlX3JldHVybl90eXBlX29mX2FfcHJvcGVydHlfZGVjb3JhdG9yX2Z1bmN0aW9uX211c3RfYmVfZWl0aGVyX3ZvaWRfb3JfYW55OmkoMTIzNiwxLFwiVGhlX3JldHVybl90eXBlX29mX2FfcHJvcGVydHlfZGVjb3JhdG9yX2Z1bmN0aW9uX211c3RfYmVfZWl0aGVyX3ZvaWRfb3JfYW55XzEyMzZcIixcIlRoZSByZXR1cm4gdHlwZSBvZiBhIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvbiBtdXN0IGJlIGVpdGhlciAndm9pZCcgb3IgJ2FueScuXCIpLFRoZV9yZXR1cm5fdHlwZV9vZl9hX3BhcmFtZXRlcl9kZWNvcmF0b3JfZnVuY3Rpb25fbXVzdF9iZV9laXRoZXJfdm9pZF9vcl9hbnk6aSgxMjM3LDEsXCJUaGVfcmV0dXJuX3R5cGVfb2ZfYV9wYXJhbWV0ZXJfZGVjb3JhdG9yX2Z1bmN0aW9uX211c3RfYmVfZWl0aGVyX3ZvaWRfb3JfYW55XzEyMzdcIixcIlRoZSByZXR1cm4gdHlwZSBvZiBhIHBhcmFtZXRlciBkZWNvcmF0b3IgZnVuY3Rpb24gbXVzdCBiZSBlaXRoZXIgJ3ZvaWQnIG9yICdhbnknLlwiKSxVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfY2xhc3NfZGVjb3JhdG9yX3doZW5fY2FsbGVkX2FzX2FuX2V4cHJlc3Npb246aSgxMjM4LDEsXCJVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfY2xhc3NfZGVjb3JhdG9yX3doZW5fY2FsbGVkX2FzX2FuX2V4cHJlc3Npb25fMTIzOFwiLFwiVW5hYmxlIHRvIHJlc29sdmUgc2lnbmF0dXJlIG9mIGNsYXNzIGRlY29yYXRvciB3aGVuIGNhbGxlZCBhcyBhbiBleHByZXNzaW9uLlwiKSxVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfcGFyYW1ldGVyX2RlY29yYXRvcl93aGVuX2NhbGxlZF9hc19hbl9leHByZXNzaW9uOmkoMTIzOSwxLFwiVW5hYmxlX3RvX3Jlc29sdmVfc2lnbmF0dXJlX29mX3BhcmFtZXRlcl9kZWNvcmF0b3Jfd2hlbl9jYWxsZWRfYXNfYW5fZXhwcmVzc2lvbl8xMjM5XCIsXCJVbmFibGUgdG8gcmVzb2x2ZSBzaWduYXR1cmUgb2YgcGFyYW1ldGVyIGRlY29yYXRvciB3aGVuIGNhbGxlZCBhcyBhbiBleHByZXNzaW9uLlwiKSxVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfcHJvcGVydHlfZGVjb3JhdG9yX3doZW5fY2FsbGVkX2FzX2FuX2V4cHJlc3Npb246aSgxMjQwLDEsXCJVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfcHJvcGVydHlfZGVjb3JhdG9yX3doZW5fY2FsbGVkX2FzX2FuX2V4cHJlc3Npb25fMTI0MFwiLFwiVW5hYmxlIHRvIHJlc29sdmUgc2lnbmF0dXJlIG9mIHByb3BlcnR5IGRlY29yYXRvciB3aGVuIGNhbGxlZCBhcyBhbiBleHByZXNzaW9uLlwiKSxVbmFibGVfdG9fcmVzb2x2ZV9zaWduYXR1cmVfb2ZfbWV0aG9kX2RlY29yYXRvcl93aGVuX2NhbGxlZF9hc19hbl9leHByZXNzaW9uOmkoMTI0MSwxLFwiVW5hYmxlX3RvX3Jlc29sdmVfc2lnbmF0dXJlX29mX21ldGhvZF9kZWNvcmF0b3Jfd2hlbl9jYWxsZWRfYXNfYW5fZXhwcmVzc2lvbl8xMjQxXCIsXCJVbmFibGUgdG8gcmVzb2x2ZSBzaWduYXR1cmUgb2YgbWV0aG9kIGRlY29yYXRvciB3aGVuIGNhbGxlZCBhcyBhbiBleHByZXNzaW9uLlwiKSxhYnN0cmFjdF9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV9jbGFzc19tZXRob2Rfb3JfcHJvcGVydHlfZGVjbGFyYXRpb246aSgxMjQyLDEsXCJhYnN0cmFjdF9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV9jbGFzc19tZXRob2Rfb3JfcHJvcGVydHlfZGVjbGFyYXRpb25fMTI0MlwiLFwiJ2Fic3RyYWN0JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSBjbGFzcywgbWV0aG9kLCBvciBwcm9wZXJ0eSBkZWNsYXJhdGlvbi5cIiksXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfd2l0aF8xX21vZGlmaWVyOmkoMTI0MywxLFwiXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfd2l0aF8xX21vZGlmaWVyXzEyNDNcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIHdpdGggJ3sxfScgbW9kaWZpZXIuXCIpLEFic3RyYWN0X21ldGhvZHNfY2FuX29ubHlfYXBwZWFyX3dpdGhpbl9hbl9hYnN0cmFjdF9jbGFzczppKDEyNDQsMSxcIkFic3RyYWN0X21ldGhvZHNfY2FuX29ubHlfYXBwZWFyX3dpdGhpbl9hbl9hYnN0cmFjdF9jbGFzc18xMjQ0XCIsXCJBYnN0cmFjdCBtZXRob2RzIGNhbiBvbmx5IGFwcGVhciB3aXRoaW4gYW4gYWJzdHJhY3QgY2xhc3MuXCIpLE1ldGhvZF8wX2Nhbm5vdF9oYXZlX2FuX2ltcGxlbWVudGF0aW9uX2JlY2F1c2VfaXRfaXNfbWFya2VkX2Fic3RyYWN0OmkoMTI0NSwxLFwiTWV0aG9kXzBfY2Fubm90X2hhdmVfYW5faW1wbGVtZW50YXRpb25fYmVjYXVzZV9pdF9pc19tYXJrZWRfYWJzdHJhY3RfMTI0NVwiLFwiTWV0aG9kICd7MH0nIGNhbm5vdCBoYXZlIGFuIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgaXQgaXMgbWFya2VkIGFic3RyYWN0LlwiKSxBbl9pbnRlcmZhY2VfcHJvcGVydHlfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXI6aSgxMjQ2LDEsXCJBbl9pbnRlcmZhY2VfcHJvcGVydHlfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXJfMTI0NlwiLFwiQW4gaW50ZXJmYWNlIHByb3BlcnR5IGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBX3R5cGVfbGl0ZXJhbF9wcm9wZXJ0eV9jYW5ub3RfaGF2ZV9hbl9pbml0aWFsaXplcjppKDEyNDcsMSxcIkFfdHlwZV9saXRlcmFsX3Byb3BlcnR5X2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyXzEyNDdcIixcIkEgdHlwZSBsaXRlcmFsIHByb3BlcnR5IGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyLlwiKSxBX2NsYXNzX21lbWJlcl9jYW5ub3RfaGF2ZV90aGVfMF9rZXl3b3JkOmkoMTI0OCwxLFwiQV9jbGFzc19tZW1iZXJfY2Fubm90X2hhdmVfdGhlXzBfa2V5d29yZF8xMjQ4XCIsXCJBIGNsYXNzIG1lbWJlciBjYW5ub3QgaGF2ZSB0aGUgJ3swfScga2V5d29yZC5cIiksQV9kZWNvcmF0b3JfY2FuX29ubHlfZGVjb3JhdGVfYV9tZXRob2RfaW1wbGVtZW50YXRpb25fbm90X2FuX292ZXJsb2FkOmkoMTI0OSwxLFwiQV9kZWNvcmF0b3JfY2FuX29ubHlfZGVjb3JhdGVfYV9tZXRob2RfaW1wbGVtZW50YXRpb25fbm90X2FuX292ZXJsb2FkXzEyNDlcIixcIkEgZGVjb3JhdG9yIGNhbiBvbmx5IGRlY29yYXRlIGEgbWV0aG9kIGltcGxlbWVudGF0aW9uLCBub3QgYW4gb3ZlcmxvYWQuXCIpLEZ1bmN0aW9uX2RlY2xhcmF0aW9uc19hcmVfbm90X2FsbG93ZWRfaW5zaWRlX2Jsb2Nrc19pbl9zdHJpY3RfbW9kZV93aGVuX3RhcmdldGluZ19FUzNfb3JfRVM1OmkoMTI1MCwxLFwiRnVuY3Rpb25fZGVjbGFyYXRpb25zX2FyZV9ub3RfYWxsb3dlZF9pbnNpZGVfYmxvY2tzX2luX3N0cmljdF9tb2RlX3doZW5fdGFyZ2V0aW5nX0VTM19vcl9FUzVfMTI1MFwiLFwiRnVuY3Rpb24gZGVjbGFyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYmxvY2tzIGluIHN0cmljdCBtb2RlIHdoZW4gdGFyZ2V0aW5nICdFUzMnIG9yICdFUzUnLlwiKSxGdW5jdGlvbl9kZWNsYXJhdGlvbnNfYXJlX25vdF9hbGxvd2VkX2luc2lkZV9ibG9ja3NfaW5fc3RyaWN0X21vZGVfd2hlbl90YXJnZXRpbmdfRVMzX29yX0VTNV9DbGFzc19kZWZpbml0aW9uc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZTppKDEyNTEsMSxcIkZ1bmN0aW9uX2RlY2xhcmF0aW9uc19hcmVfbm90X2FsbG93ZWRfaW5zaWRlX2Jsb2Nrc19pbl9zdHJpY3RfbW9kZV93aGVuX3RhcmdldGluZ19FUzNfb3JfRVM1X0NsYXNzX2RfMTI1MVwiLFwiRnVuY3Rpb24gZGVjbGFyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYmxvY2tzIGluIHN0cmljdCBtb2RlIHdoZW4gdGFyZ2V0aW5nICdFUzMnIG9yICdFUzUnLiBDbGFzcyBkZWZpbml0aW9ucyBhcmUgYXV0b21hdGljYWxseSBpbiBzdHJpY3QgbW9kZS5cIiksRnVuY3Rpb25fZGVjbGFyYXRpb25zX2FyZV9ub3RfYWxsb3dlZF9pbnNpZGVfYmxvY2tzX2luX3N0cmljdF9tb2RlX3doZW5fdGFyZ2V0aW5nX0VTM19vcl9FUzVfTW9kdWxlc19hcmVfYXV0b21hdGljYWxseV9pbl9zdHJpY3RfbW9kZTppKDEyNTIsMSxcIkZ1bmN0aW9uX2RlY2xhcmF0aW9uc19hcmVfbm90X2FsbG93ZWRfaW5zaWRlX2Jsb2Nrc19pbl9zdHJpY3RfbW9kZV93aGVuX3RhcmdldGluZ19FUzNfb3JfRVM1X01vZHVsZXNfMTI1MlwiLFwiRnVuY3Rpb24gZGVjbGFyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbnNpZGUgYmxvY2tzIGluIHN0cmljdCBtb2RlIHdoZW4gdGFyZ2V0aW5nICdFUzMnIG9yICdFUzUnLiBNb2R1bGVzIGFyZSBhdXRvbWF0aWNhbGx5IGluIHN0cmljdCBtb2RlLlwiKSxBYnN0cmFjdF9wcm9wZXJ0aWVzX2Nhbl9vbmx5X2FwcGVhcl93aXRoaW5fYW5fYWJzdHJhY3RfY2xhc3M6aSgxMjUzLDEsXCJBYnN0cmFjdF9wcm9wZXJ0aWVzX2Nhbl9vbmx5X2FwcGVhcl93aXRoaW5fYW5fYWJzdHJhY3RfY2xhc3NfMTI1M1wiLFwiQWJzdHJhY3QgcHJvcGVydGllcyBjYW4gb25seSBhcHBlYXIgd2l0aGluIGFuIGFic3RyYWN0IGNsYXNzLlwiKSxBX2NvbnN0X2luaXRpYWxpemVyX2luX2FuX2FtYmllbnRfY29udGV4dF9tdXN0X2JlX2Ffc3RyaW5nX29yX251bWVyaWNfbGl0ZXJhbF9vcl9saXRlcmFsX2VudW1fcmVmZXJlbmNlOmkoMTI1NCwxLFwiQV9jb25zdF9pbml0aWFsaXplcl9pbl9hbl9hbWJpZW50X2NvbnRleHRfbXVzdF9iZV9hX3N0cmluZ19vcl9udW1lcmljX2xpdGVyYWxfb3JfbGl0ZXJhbF9lbnVtX3JlZmVyZV8xMjU0XCIsXCJBICdjb25zdCcgaW5pdGlhbGl6ZXIgaW4gYW4gYW1iaWVudCBjb250ZXh0IG11c3QgYmUgYSBzdHJpbmcgb3IgbnVtZXJpYyBsaXRlcmFsIG9yIGxpdGVyYWwgZW51bSByZWZlcmVuY2UuXCIpLEFfZGVmaW5pdGVfYXNzaWdubWVudF9hc3NlcnRpb25faXNfbm90X3Blcm1pdHRlZF9pbl90aGlzX2NvbnRleHQ6aSgxMjU1LDEsXCJBX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uX2lzX25vdF9wZXJtaXR0ZWRfaW5fdGhpc19jb250ZXh0XzEyNTVcIixcIkEgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb24gJyEnIGlzIG5vdCBwZXJtaXR0ZWQgaW4gdGhpcyBjb250ZXh0LlwiKSxBX3JlcXVpcmVkX2VsZW1lbnRfY2Fubm90X2ZvbGxvd19hbl9vcHRpb25hbF9lbGVtZW50OmkoMTI1NywxLFwiQV9yZXF1aXJlZF9lbGVtZW50X2Nhbm5vdF9mb2xsb3dfYW5fb3B0aW9uYWxfZWxlbWVudF8xMjU3XCIsXCJBIHJlcXVpcmVkIGVsZW1lbnQgY2Fubm90IGZvbGxvdyBhbiBvcHRpb25hbCBlbGVtZW50LlwiKSxBX2RlZmF1bHRfZXhwb3J0X211c3RfYmVfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX2ZpbGVfb3JfbW9kdWxlX2RlY2xhcmF0aW9uOmkoMTI1OCwxLFwiQV9kZWZhdWx0X2V4cG9ydF9tdXN0X2JlX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9maWxlX29yX21vZHVsZV9kZWNsYXJhdGlvbl8xMjU4XCIsXCJBIGRlZmF1bHQgZXhwb3J0IG11c3QgYmUgYXQgdGhlIHRvcCBsZXZlbCBvZiBhIGZpbGUgb3IgbW9kdWxlIGRlY2xhcmF0aW9uLlwiKSxNb2R1bGVfMF9jYW5fb25seV9iZV9kZWZhdWx0X2ltcG9ydGVkX3VzaW5nX3RoZV8xX2ZsYWc6aSgxMjU5LDEsXCJNb2R1bGVfMF9jYW5fb25seV9iZV9kZWZhdWx0X2ltcG9ydGVkX3VzaW5nX3RoZV8xX2ZsYWdfMTI1OVwiLFwiTW9kdWxlICd7MH0nIGNhbiBvbmx5IGJlIGRlZmF1bHQtaW1wb3J0ZWQgdXNpbmcgdGhlICd7MX0nIGZsYWdcIiksS2V5d29yZHNfY2Fubm90X2NvbnRhaW5fZXNjYXBlX2NoYXJhY3RlcnM6aSgxMjYwLDEsXCJLZXl3b3Jkc19jYW5ub3RfY29udGFpbl9lc2NhcGVfY2hhcmFjdGVyc18xMjYwXCIsXCJLZXl3b3JkcyBjYW5ub3QgY29udGFpbiBlc2NhcGUgY2hhcmFjdGVycy5cIiksQWxyZWFkeV9pbmNsdWRlZF9maWxlX25hbWVfMF9kaWZmZXJzX2Zyb21fZmlsZV9uYW1lXzFfb25seV9pbl9jYXNpbmc6aSgxMjYxLDEsXCJBbHJlYWR5X2luY2x1ZGVkX2ZpbGVfbmFtZV8wX2RpZmZlcnNfZnJvbV9maWxlX25hbWVfMV9vbmx5X2luX2Nhc2luZ18xMjYxXCIsXCJBbHJlYWR5IGluY2x1ZGVkIGZpbGUgbmFtZSAnezB9JyBkaWZmZXJzIGZyb20gZmlsZSBuYW1lICd7MX0nIG9ubHkgaW4gY2FzaW5nLlwiKSxJZGVudGlmaWVyX2V4cGVjdGVkXzBfaXNfYV9yZXNlcnZlZF93b3JkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9tb2R1bGU6aSgxMjYyLDEsXCJJZGVudGlmaWVyX2V4cGVjdGVkXzBfaXNfYV9yZXNlcnZlZF93b3JkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9tb2R1bGVfMTI2MlwiLFwiSWRlbnRpZmllciBleHBlY3RlZC4gJ3swfScgaXMgYSByZXNlcnZlZCB3b3JkIGF0IHRoZSB0b3AtbGV2ZWwgb2YgYSBtb2R1bGUuXCIpLERlY2xhcmF0aW9uc193aXRoX2luaXRpYWxpemVyc19jYW5ub3RfYWxzb19oYXZlX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uczppKDEyNjMsMSxcIkRlY2xhcmF0aW9uc193aXRoX2luaXRpYWxpemVyc19jYW5ub3RfYWxzb19oYXZlX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uc18xMjYzXCIsXCJEZWNsYXJhdGlvbnMgd2l0aCBpbml0aWFsaXplcnMgY2Fubm90IGFsc28gaGF2ZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMuXCIpLERlY2xhcmF0aW9uc193aXRoX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uc19tdXN0X2Fsc29faGF2ZV90eXBlX2Fubm90YXRpb25zOmkoMTI2NCwxLFwiRGVjbGFyYXRpb25zX3dpdGhfZGVmaW5pdGVfYXNzaWdubWVudF9hc3NlcnRpb25zX211c3RfYWxzb19oYXZlX3R5cGVfYW5ub3RhdGlvbnNfMTI2NFwiLFwiRGVjbGFyYXRpb25zIHdpdGggZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zIG11c3QgYWxzbyBoYXZlIHR5cGUgYW5ub3RhdGlvbnMuXCIpLEFfcmVzdF9lbGVtZW50X2Nhbm5vdF9mb2xsb3dfYW5vdGhlcl9yZXN0X2VsZW1lbnQ6aSgxMjY1LDEsXCJBX3Jlc3RfZWxlbWVudF9jYW5ub3RfZm9sbG93X2Fub3RoZXJfcmVzdF9lbGVtZW50XzEyNjVcIixcIkEgcmVzdCBlbGVtZW50IGNhbm5vdCBmb2xsb3cgYW5vdGhlciByZXN0IGVsZW1lbnQuXCIpLEFuX29wdGlvbmFsX2VsZW1lbnRfY2Fubm90X2ZvbGxvd19hX3Jlc3RfZWxlbWVudDppKDEyNjYsMSxcIkFuX29wdGlvbmFsX2VsZW1lbnRfY2Fubm90X2ZvbGxvd19hX3Jlc3RfZWxlbWVudF8xMjY2XCIsXCJBbiBvcHRpb25hbCBlbGVtZW50IGNhbm5vdCBmb2xsb3cgYSByZXN0IGVsZW1lbnQuXCIpLFByb3BlcnR5XzBfY2Fubm90X2hhdmVfYW5faW5pdGlhbGl6ZXJfYmVjYXVzZV9pdF9pc19tYXJrZWRfYWJzdHJhY3Q6aSgxMjY3LDEsXCJQcm9wZXJ0eV8wX2Nhbm5vdF9oYXZlX2FuX2luaXRpYWxpemVyX2JlY2F1c2VfaXRfaXNfbWFya2VkX2Fic3RyYWN0XzEyNjdcIixcIlByb3BlcnR5ICd7MH0nIGNhbm5vdCBoYXZlIGFuIGluaXRpYWxpemVyIGJlY2F1c2UgaXQgaXMgbWFya2VkIGFic3RyYWN0LlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX3R5cGVfbXVzdF9iZV9zdHJpbmdfbnVtYmVyX3N5bWJvbF9vcl9hX3RlbXBsYXRlX2xpdGVyYWxfdHlwZTppKDEyNjgsMSxcIkFuX2luZGV4X3NpZ25hdHVyZV9wYXJhbWV0ZXJfdHlwZV9tdXN0X2JlX3N0cmluZ19udW1iZXJfc3ltYm9sX29yX2FfdGVtcGxhdGVfbGl0ZXJhbF90eXBlXzEyNjhcIixcIkFuIGluZGV4IHNpZ25hdHVyZSBwYXJhbWV0ZXIgdHlwZSBtdXN0IGJlICdzdHJpbmcnLCAnbnVtYmVyJywgJ3N5bWJvbCcsIG9yIGEgdGVtcGxhdGUgbGl0ZXJhbCB0eXBlLlwiKSxDYW5ub3RfdXNlX2V4cG9ydF9pbXBvcnRfb25fYV90eXBlX29yX3R5cGVfb25seV9uYW1lc3BhY2Vfd2hlbl8wX2lzX2VuYWJsZWQ6aSgxMjY5LDEsXCJDYW5ub3RfdXNlX2V4cG9ydF9pbXBvcnRfb25fYV90eXBlX29yX3R5cGVfb25seV9uYW1lc3BhY2Vfd2hlbl8wX2lzX2VuYWJsZWRfMTI2OVwiLFwiQ2Fubm90IHVzZSAnZXhwb3J0IGltcG9ydCcgb24gYSB0eXBlIG9yIHR5cGUtb25seSBuYW1lc3BhY2Ugd2hlbiAnezB9JyBpcyBlbmFibGVkLlwiKSxEZWNvcmF0b3JfZnVuY3Rpb25fcmV0dXJuX3R5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzE6aSgxMjcwLDEsXCJEZWNvcmF0b3JfZnVuY3Rpb25fcmV0dXJuX3R5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfMTI3MFwiLFwiRGVjb3JhdG9yIGZ1bmN0aW9uIHJldHVybiB0eXBlICd7MH0nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ3sxfScuXCIpLERlY29yYXRvcl9mdW5jdGlvbl9yZXR1cm5fdHlwZV9pc18wX2J1dF9pc19leHBlY3RlZF90b19iZV92b2lkX29yX2FueTppKDEyNzEsMSxcIkRlY29yYXRvcl9mdW5jdGlvbl9yZXR1cm5fdHlwZV9pc18wX2J1dF9pc19leHBlY3RlZF90b19iZV92b2lkX29yX2FueV8xMjcxXCIsXCJEZWNvcmF0b3IgZnVuY3Rpb24gcmV0dXJuIHR5cGUgaXMgJ3swfScgYnV0IGlzIGV4cGVjdGVkIHRvIGJlICd2b2lkJyBvciAnYW55Jy5cIiksQV90eXBlX3JlZmVyZW5jZWRfaW5fYV9kZWNvcmF0ZWRfc2lnbmF0dXJlX211c3RfYmVfaW1wb3J0ZWRfd2l0aF9pbXBvcnRfdHlwZV9vcl9hX25hbWVzcGFjZV9pbXBvcnRfd2hlbl9pc29sYXRlZE1vZHVsZXNfYW5kX2VtaXREZWNvcmF0b3JNZXRhZGF0YV9hcmVfZW5hYmxlZDppKDEyNzIsMSxcIkFfdHlwZV9yZWZlcmVuY2VkX2luX2FfZGVjb3JhdGVkX3NpZ25hdHVyZV9tdXN0X2JlX2ltcG9ydGVkX3dpdGhfaW1wb3J0X3R5cGVfb3JfYV9uYW1lc3BhY2VfaW1wb3J0X3dfMTI3MlwiLFwiQSB0eXBlIHJlZmVyZW5jZWQgaW4gYSBkZWNvcmF0ZWQgc2lnbmF0dXJlIG11c3QgYmUgaW1wb3J0ZWQgd2l0aCAnaW1wb3J0IHR5cGUnIG9yIGEgbmFtZXNwYWNlIGltcG9ydCB3aGVuICdpc29sYXRlZE1vZHVsZXMnIGFuZCAnZW1pdERlY29yYXRvck1ldGFkYXRhJyBhcmUgZW5hYmxlZC5cIiksXzBfbW9kaWZpZXJfY2Fubm90X2FwcGVhcl9vbl9hX3R5cGVfcGFyYW1ldGVyOmkoMTI3MywxLFwiXzBfbW9kaWZpZXJfY2Fubm90X2FwcGVhcl9vbl9hX3R5cGVfcGFyYW1ldGVyXzEyNzNcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlclwiKSxfMF9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV90eXBlX3BhcmFtZXRlcl9vZl9hX2NsYXNzX2ludGVyZmFjZV9vcl90eXBlX2FsaWFzOmkoMTI3NCwxLFwiXzBfbW9kaWZpZXJfY2FuX29ubHlfYXBwZWFyX29uX2FfdHlwZV9wYXJhbWV0ZXJfb2ZfYV9jbGFzc19pbnRlcmZhY2Vfb3JfdHlwZV9hbGlhc18xMjc0XCIsXCInezB9JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlciBvZiBhIGNsYXNzLCBpbnRlcmZhY2Ugb3IgdHlwZSBhbGlhc1wiKSxhY2Nlc3Nvcl9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV9wcm9wZXJ0eV9kZWNsYXJhdGlvbjppKDEyNzUsMSxcImFjY2Vzc29yX21vZGlmaWVyX2Nhbl9vbmx5X2FwcGVhcl9vbl9hX3Byb3BlcnR5X2RlY2xhcmF0aW9uXzEyNzVcIixcIidhY2Nlc3NvcicgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgcHJvcGVydHkgZGVjbGFyYXRpb24uXCIpLEFuX2FjY2Vzc29yX3Byb3BlcnR5X2Nhbm5vdF9iZV9kZWNsYXJlZF9vcHRpb25hbDppKDEyNzYsMSxcIkFuX2FjY2Vzc29yX3Byb3BlcnR5X2Nhbm5vdF9iZV9kZWNsYXJlZF9vcHRpb25hbF8xMjc2XCIsXCJBbiAnYWNjZXNzb3InIHByb3BlcnR5IGNhbm5vdCBiZSBkZWNsYXJlZCBvcHRpb25hbC5cIiksXzBfbW9kaWZpZXJfY2FuX29ubHlfYXBwZWFyX29uX2FfdHlwZV9wYXJhbWV0ZXJfb2ZfYV9mdW5jdGlvbl9tZXRob2Rfb3JfY2xhc3M6aSgxMjc3LDEsXCJfMF9tb2RpZmllcl9jYW5fb25seV9hcHBlYXJfb25fYV90eXBlX3BhcmFtZXRlcl9vZl9hX2Z1bmN0aW9uX21ldGhvZF9vcl9jbGFzc18xMjc3XCIsXCInezB9JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlciBvZiBhIGZ1bmN0aW9uLCBtZXRob2Qgb3IgY2xhc3NcIiksVGhlX3J1bnRpbWVfd2lsbF9pbnZva2VfdGhlX2RlY29yYXRvcl93aXRoXzFfYXJndW1lbnRzX2J1dF90aGVfZGVjb3JhdG9yX2V4cGVjdHNfMDppKDEyNzgsMSxcIlRoZV9ydW50aW1lX3dpbGxfaW52b2tlX3RoZV9kZWNvcmF0b3Jfd2l0aF8xX2FyZ3VtZW50c19idXRfdGhlX2RlY29yYXRvcl9leHBlY3RzXzBfMTI3OFwiLFwiVGhlIHJ1bnRpbWUgd2lsbCBpbnZva2UgdGhlIGRlY29yYXRvciB3aXRoIHsxfSBhcmd1bWVudHMsIGJ1dCB0aGUgZGVjb3JhdG9yIGV4cGVjdHMgezB9LlwiKSxUaGVfcnVudGltZV93aWxsX2ludm9rZV90aGVfZGVjb3JhdG9yX3dpdGhfMV9hcmd1bWVudHNfYnV0X3RoZV9kZWNvcmF0b3JfZXhwZWN0c19hdF9sZWFzdF8wOmkoMTI3OSwxLFwiVGhlX3J1bnRpbWVfd2lsbF9pbnZva2VfdGhlX2RlY29yYXRvcl93aXRoXzFfYXJndW1lbnRzX2J1dF90aGVfZGVjb3JhdG9yX2V4cGVjdHNfYXRfbGVhc3RfMF8xMjc5XCIsXCJUaGUgcnVudGltZSB3aWxsIGludm9rZSB0aGUgZGVjb3JhdG9yIHdpdGggezF9IGFyZ3VtZW50cywgYnV0IHRoZSBkZWNvcmF0b3IgZXhwZWN0cyBhdCBsZWFzdCB7MH0uXCIpLE5hbWVzcGFjZXNfYXJlX25vdF9hbGxvd2VkX2luX2dsb2JhbF9zY3JpcHRfZmlsZXNfd2hlbl8wX2lzX2VuYWJsZWRfSWZfdGhpc19maWxlX2lzX25vdF9pbnRlbmRlZF90b19iZV9hX2dsb2JhbF9zY3JpcHRfc2V0X21vZHVsZURldGVjdGlvbl90b19mb3JjZV9vcl9hZGRfYW5fZW1wdHlfZXhwb3J0X3N0YXRlbWVudDppKDEyODAsMSxcIk5hbWVzcGFjZXNfYXJlX25vdF9hbGxvd2VkX2luX2dsb2JhbF9zY3JpcHRfZmlsZXNfd2hlbl8wX2lzX2VuYWJsZWRfSWZfdGhpc19maWxlX2lzX25vdF9pbnRlbmRlZF90b19fMTI4MFwiLFwiTmFtZXNwYWNlcyBhcmUgbm90IGFsbG93ZWQgaW4gZ2xvYmFsIHNjcmlwdCBmaWxlcyB3aGVuICd7MH0nIGlzIGVuYWJsZWQuIElmIHRoaXMgZmlsZSBpcyBub3QgaW50ZW5kZWQgdG8gYmUgYSBnbG9iYWwgc2NyaXB0LCBzZXQgJ21vZHVsZURldGVjdGlvbicgdG8gJ2ZvcmNlJyBvciBhZGQgYW4gZW1wdHkgJ2V4cG9ydCB7fScgc3RhdGVtZW50LlwiKSxDYW5ub3RfYWNjZXNzXzBfZnJvbV9hbm90aGVyX2ZpbGVfd2l0aG91dF9xdWFsaWZpY2F0aW9uX3doZW5fMV9pc19lbmFibGVkX1VzZV8yX2luc3RlYWQ6aSgxMjgxLDEsXCJDYW5ub3RfYWNjZXNzXzBfZnJvbV9hbm90aGVyX2ZpbGVfd2l0aG91dF9xdWFsaWZpY2F0aW9uX3doZW5fMV9pc19lbmFibGVkX1VzZV8yX2luc3RlYWRfMTI4MVwiLFwiQ2Fubm90IGFjY2VzcyAnezB9JyBmcm9tIGFub3RoZXIgZmlsZSB3aXRob3V0IHF1YWxpZmljYXRpb24gd2hlbiAnezF9JyBpcyBlbmFibGVkLiBVc2UgJ3syfScgaW5zdGVhZC5cIiksQW5fZXhwb3J0X2RlY2xhcmF0aW9uX211c3RfcmVmZXJlbmNlX2FfdmFsdWVfd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkX2J1dF8wX29ubHlfcmVmZXJzX3RvX2FfdHlwZTppKDEyODIsMSxcIkFuX2V4cG9ydF9kZWNsYXJhdGlvbl9tdXN0X3JlZmVyZW5jZV9hX3ZhbHVlX3doZW5fdmVyYmF0aW1Nb2R1bGVTeW50YXhfaXNfZW5hYmxlZF9idXRfMF9vbmx5X3JlZmVyc19fMTI4MlwiLFwiQW4gJ2V4cG9ydCA9JyBkZWNsYXJhdGlvbiBtdXN0IHJlZmVyZW5jZSBhIHZhbHVlIHdoZW4gJ3ZlcmJhdGltTW9kdWxlU3ludGF4JyBpcyBlbmFibGVkLCBidXQgJ3swfScgb25seSByZWZlcnMgdG8gYSB0eXBlLlwiKSxBbl9leHBvcnRfZGVjbGFyYXRpb25fbXVzdF9yZWZlcmVuY2VfYV9yZWFsX3ZhbHVlX3doZW5fdmVyYmF0aW1Nb2R1bGVTeW50YXhfaXNfZW5hYmxlZF9idXRfMF9yZXNvbHZlc190b19hX3R5cGVfb25seV9kZWNsYXJhdGlvbjppKDEyODMsMSxcIkFuX2V4cG9ydF9kZWNsYXJhdGlvbl9tdXN0X3JlZmVyZW5jZV9hX3JlYWxfdmFsdWVfd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkX2J1dF8wX3Jlc29sdmVfMTI4M1wiLFwiQW4gJ2V4cG9ydCA9JyBkZWNsYXJhdGlvbiBtdXN0IHJlZmVyZW5jZSBhIHJlYWwgdmFsdWUgd2hlbiAndmVyYmF0aW1Nb2R1bGVTeW50YXgnIGlzIGVuYWJsZWQsIGJ1dCAnezB9JyByZXNvbHZlcyB0byBhIHR5cGUtb25seSBkZWNsYXJhdGlvbi5cIiksQW5fZXhwb3J0X2RlZmF1bHRfbXVzdF9yZWZlcmVuY2VfYV92YWx1ZV93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWRfYnV0XzBfb25seV9yZWZlcnNfdG9fYV90eXBlOmkoMTI4NCwxLFwiQW5fZXhwb3J0X2RlZmF1bHRfbXVzdF9yZWZlcmVuY2VfYV92YWx1ZV93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWRfYnV0XzBfb25seV9yZWZlcnNfdG9fYV8xMjg0XCIsXCJBbiAnZXhwb3J0IGRlZmF1bHQnIG11c3QgcmVmZXJlbmNlIGEgdmFsdWUgd2hlbiAndmVyYmF0aW1Nb2R1bGVTeW50YXgnIGlzIGVuYWJsZWQsIGJ1dCAnezB9JyBvbmx5IHJlZmVycyB0byBhIHR5cGUuXCIpLEFuX2V4cG9ydF9kZWZhdWx0X211c3RfcmVmZXJlbmNlX2FfcmVhbF92YWx1ZV93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWRfYnV0XzBfcmVzb2x2ZXNfdG9fYV90eXBlX29ubHlfZGVjbGFyYXRpb246aSgxMjg1LDEsXCJBbl9leHBvcnRfZGVmYXVsdF9tdXN0X3JlZmVyZW5jZV9hX3JlYWxfdmFsdWVfd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkX2J1dF8wX3Jlc29sdmVzX3RvXzEyODVcIixcIkFuICdleHBvcnQgZGVmYXVsdCcgbXVzdCByZWZlcmVuY2UgYSByZWFsIHZhbHVlIHdoZW4gJ3ZlcmJhdGltTW9kdWxlU3ludGF4JyBpcyBlbmFibGVkLCBidXQgJ3swfScgcmVzb2x2ZXMgdG8gYSB0eXBlLW9ubHkgZGVjbGFyYXRpb24uXCIpLEVTTV9zeW50YXhfaXNfbm90X2FsbG93ZWRfaW5fYV9Db21tb25KU19tb2R1bGVfd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkOmkoMTI4NiwxLFwiRVNNX3N5bnRheF9pc19ub3RfYWxsb3dlZF9pbl9hX0NvbW1vbkpTX21vZHVsZV93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWRfMTI4NlwiLFwiRVNNIHN5bnRheCBpcyBub3QgYWxsb3dlZCBpbiBhIENvbW1vbkpTIG1vZHVsZSB3aGVuICd2ZXJiYXRpbU1vZHVsZVN5bnRheCcgaXMgZW5hYmxlZC5cIiksQV90b3BfbGV2ZWxfZXhwb3J0X21vZGlmaWVyX2Nhbm5vdF9iZV91c2VkX29uX3ZhbHVlX2RlY2xhcmF0aW9uc19pbl9hX0NvbW1vbkpTX21vZHVsZV93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWQ6aSgxMjg3LDEsXCJBX3RvcF9sZXZlbF9leHBvcnRfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfb25fdmFsdWVfZGVjbGFyYXRpb25zX2luX2FfQ29tbW9uSlNfbW9kdWxlX3doZW5fdmVyYmF0aW1NXzEyODdcIixcIkEgdG9wLWxldmVsICdleHBvcnQnIG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIG9uIHZhbHVlIGRlY2xhcmF0aW9ucyBpbiBhIENvbW1vbkpTIG1vZHVsZSB3aGVuICd2ZXJiYXRpbU1vZHVsZVN5bnRheCcgaXMgZW5hYmxlZC5cIiksQW5faW1wb3J0X2FsaWFzX2Nhbm5vdF9yZXNvbHZlX3RvX2FfdHlwZV9vcl90eXBlX29ubHlfZGVjbGFyYXRpb25fd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkOmkoMTI4OCwxLFwiQW5faW1wb3J0X2FsaWFzX2Nhbm5vdF9yZXNvbHZlX3RvX2FfdHlwZV9vcl90eXBlX29ubHlfZGVjbGFyYXRpb25fd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibF8xMjg4XCIsXCJBbiBpbXBvcnQgYWxpYXMgY2Fubm90IHJlc29sdmUgdG8gYSB0eXBlIG9yIHR5cGUtb25seSBkZWNsYXJhdGlvbiB3aGVuICd2ZXJiYXRpbU1vZHVsZVN5bnRheCcgaXMgZW5hYmxlZC5cIiksd2l0aF9zdGF0ZW1lbnRzX2FyZV9ub3RfYWxsb3dlZF9pbl9hbl9hc3luY19mdW5jdGlvbl9ibG9jazppKDEzMDAsMSxcIndpdGhfc3RhdGVtZW50c19hcmVfbm90X2FsbG93ZWRfaW5fYW5fYXN5bmNfZnVuY3Rpb25fYmxvY2tfMTMwMFwiLFwiJ3dpdGgnIHN0YXRlbWVudHMgYXJlIG5vdCBhbGxvd2VkIGluIGFuIGFzeW5jIGZ1bmN0aW9uIGJsb2NrLlwiKSxhd2FpdF9leHByZXNzaW9uc19hcmVfb25seV9hbGxvd2VkX3dpdGhpbl9hc3luY19mdW5jdGlvbnNfYW5kX2F0X3RoZV90b3BfbGV2ZWxzX29mX21vZHVsZXM6aSgxMzA4LDEsXCJhd2FpdF9leHByZXNzaW9uc19hcmVfb25seV9hbGxvd2VkX3dpdGhpbl9hc3luY19mdW5jdGlvbnNfYW5kX2F0X3RoZV90b3BfbGV2ZWxzX29mX21vZHVsZXNfMTMwOFwiLFwiJ2F3YWl0JyBleHByZXNzaW9ucyBhcmUgb25seSBhbGxvd2VkIHdpdGhpbiBhc3luYyBmdW5jdGlvbnMgYW5kIGF0IHRoZSB0b3AgbGV2ZWxzIG9mIG1vZHVsZXMuXCIpLFRoZV9jdXJyZW50X2ZpbGVfaXNfYV9Db21tb25KU19tb2R1bGVfYW5kX2Nhbm5vdF91c2VfYXdhaXRfYXRfdGhlX3RvcF9sZXZlbDppKDEzMDksMSxcIlRoZV9jdXJyZW50X2ZpbGVfaXNfYV9Db21tb25KU19tb2R1bGVfYW5kX2Nhbm5vdF91c2VfYXdhaXRfYXRfdGhlX3RvcF9sZXZlbF8xMzA5XCIsXCJUaGUgY3VycmVudCBmaWxlIGlzIGEgQ29tbW9uSlMgbW9kdWxlIGFuZCBjYW5ub3QgdXNlICdhd2FpdCcgYXQgdGhlIHRvcCBsZXZlbC5cIiksRGlkX3lvdV9tZWFuX3RvX3VzZV9hX0NvbG9uX0FuX2Nhbl9vbmx5X2ZvbGxvd19hX3Byb3BlcnR5X25hbWVfd2hlbl90aGVfY29udGFpbmluZ19vYmplY3RfbGl0ZXJhbF9pc19wYXJ0X29mX2FfZGVzdHJ1Y3R1cmluZ19wYXR0ZXJuOmkoMTMxMiwxLFwiRGlkX3lvdV9tZWFuX3RvX3VzZV9hX0NvbG9uX0FuX2Nhbl9vbmx5X2ZvbGxvd19hX3Byb3BlcnR5X25hbWVfd2hlbl90aGVfY29udGFpbmluZ19vYmplY3RfbGl0ZXJhbF9pc18xMzEyXCIsXCJEaWQgeW91IG1lYW4gdG8gdXNlIGEgJzonPyBBbiAnPScgY2FuIG9ubHkgZm9sbG93IGEgcHJvcGVydHkgbmFtZSB3aGVuIHRoZSBjb250YWluaW5nIG9iamVjdCBsaXRlcmFsIGlzIHBhcnQgb2YgYSBkZXN0cnVjdHVyaW5nIHBhdHRlcm4uXCIpLFRoZV9ib2R5X29mX2FuX2lmX3N0YXRlbWVudF9jYW5ub3RfYmVfdGhlX2VtcHR5X3N0YXRlbWVudDppKDEzMTMsMSxcIlRoZV9ib2R5X29mX2FuX2lmX3N0YXRlbWVudF9jYW5ub3RfYmVfdGhlX2VtcHR5X3N0YXRlbWVudF8xMzEzXCIsXCJUaGUgYm9keSBvZiBhbiAnaWYnIHN0YXRlbWVudCBjYW5ub3QgYmUgdGhlIGVtcHR5IHN0YXRlbWVudC5cIiksR2xvYmFsX21vZHVsZV9leHBvcnRzX21heV9vbmx5X2FwcGVhcl9pbl9tb2R1bGVfZmlsZXM6aSgxMzE0LDEsXCJHbG9iYWxfbW9kdWxlX2V4cG9ydHNfbWF5X29ubHlfYXBwZWFyX2luX21vZHVsZV9maWxlc18xMzE0XCIsXCJHbG9iYWwgbW9kdWxlIGV4cG9ydHMgbWF5IG9ubHkgYXBwZWFyIGluIG1vZHVsZSBmaWxlcy5cIiksR2xvYmFsX21vZHVsZV9leHBvcnRzX21heV9vbmx5X2FwcGVhcl9pbl9kZWNsYXJhdGlvbl9maWxlczppKDEzMTUsMSxcIkdsb2JhbF9tb2R1bGVfZXhwb3J0c19tYXlfb25seV9hcHBlYXJfaW5fZGVjbGFyYXRpb25fZmlsZXNfMTMxNVwiLFwiR2xvYmFsIG1vZHVsZSBleHBvcnRzIG1heSBvbmx5IGFwcGVhciBpbiBkZWNsYXJhdGlvbiBmaWxlcy5cIiksR2xvYmFsX21vZHVsZV9leHBvcnRzX21heV9vbmx5X2FwcGVhcl9hdF90b3BfbGV2ZWw6aSgxMzE2LDEsXCJHbG9iYWxfbW9kdWxlX2V4cG9ydHNfbWF5X29ubHlfYXBwZWFyX2F0X3RvcF9sZXZlbF8xMzE2XCIsXCJHbG9iYWwgbW9kdWxlIGV4cG9ydHMgbWF5IG9ubHkgYXBwZWFyIGF0IHRvcCBsZXZlbC5cIiksQV9wYXJhbWV0ZXJfcHJvcGVydHlfY2Fubm90X2JlX2RlY2xhcmVkX3VzaW5nX2FfcmVzdF9wYXJhbWV0ZXI6aSgxMzE3LDEsXCJBX3BhcmFtZXRlcl9wcm9wZXJ0eV9jYW5ub3RfYmVfZGVjbGFyZWRfdXNpbmdfYV9yZXN0X3BhcmFtZXRlcl8xMzE3XCIsXCJBIHBhcmFtZXRlciBwcm9wZXJ0eSBjYW5ub3QgYmUgZGVjbGFyZWQgdXNpbmcgYSByZXN0IHBhcmFtZXRlci5cIiksQW5fYWJzdHJhY3RfYWNjZXNzb3JfY2Fubm90X2hhdmVfYW5faW1wbGVtZW50YXRpb246aSgxMzE4LDEsXCJBbl9hYnN0cmFjdF9hY2Nlc3Nvcl9jYW5ub3RfaGF2ZV9hbl9pbXBsZW1lbnRhdGlvbl8xMzE4XCIsXCJBbiBhYnN0cmFjdCBhY2Nlc3NvciBjYW5ub3QgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbi5cIiksQV9kZWZhdWx0X2V4cG9ydF9jYW5fb25seV9iZV91c2VkX2luX2FuX0VDTUFTY3JpcHRfc3R5bGVfbW9kdWxlOmkoMTMxOSwxLFwiQV9kZWZhdWx0X2V4cG9ydF9jYW5fb25seV9iZV91c2VkX2luX2FuX0VDTUFTY3JpcHRfc3R5bGVfbW9kdWxlXzEzMTlcIixcIkEgZGVmYXVsdCBleHBvcnQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhbiBFQ01BU2NyaXB0LXN0eWxlIG1vZHVsZS5cIiksVHlwZV9vZl9hd2FpdF9vcGVyYW5kX211c3RfZWl0aGVyX2JlX2FfdmFsaWRfcHJvbWlzZV9vcl9tdXN0X25vdF9jb250YWluX2FfY2FsbGFibGVfdGhlbl9tZW1iZXI6aSgxMzIwLDEsXCJUeXBlX29mX2F3YWl0X29wZXJhbmRfbXVzdF9laXRoZXJfYmVfYV92YWxpZF9wcm9taXNlX29yX211c3Rfbm90X2NvbnRhaW5fYV9jYWxsYWJsZV90aGVuX21lbWJlcl8xMzIwXCIsXCJUeXBlIG9mICdhd2FpdCcgb3BlcmFuZCBtdXN0IGVpdGhlciBiZSBhIHZhbGlkIHByb21pc2Ugb3IgbXVzdCBub3QgY29udGFpbiBhIGNhbGxhYmxlICd0aGVuJyBtZW1iZXIuXCIpLFR5cGVfb2ZfeWllbGRfb3BlcmFuZF9pbl9hbl9hc3luY19nZW5lcmF0b3JfbXVzdF9laXRoZXJfYmVfYV92YWxpZF9wcm9taXNlX29yX211c3Rfbm90X2NvbnRhaW5fYV9jYWxsYWJsZV90aGVuX21lbWJlcjppKDEzMjEsMSxcIlR5cGVfb2ZfeWllbGRfb3BlcmFuZF9pbl9hbl9hc3luY19nZW5lcmF0b3JfbXVzdF9laXRoZXJfYmVfYV92YWxpZF9wcm9taXNlX29yX211c3Rfbm90X2NvbnRhaW5fYV9jYWxfMTMyMVwiLFwiVHlwZSBvZiAneWllbGQnIG9wZXJhbmQgaW4gYW4gYXN5bmMgZ2VuZXJhdG9yIG11c3QgZWl0aGVyIGJlIGEgdmFsaWQgcHJvbWlzZSBvciBtdXN0IG5vdCBjb250YWluIGEgY2FsbGFibGUgJ3RoZW4nIG1lbWJlci5cIiksVHlwZV9vZl9pdGVyYXRlZF9lbGVtZW50c19vZl9hX3lpZWxkX0FzdGVyaXNrX29wZXJhbmRfbXVzdF9laXRoZXJfYmVfYV92YWxpZF9wcm9taXNlX29yX211c3Rfbm90X2NvbnRhaW5fYV9jYWxsYWJsZV90aGVuX21lbWJlcjppKDEzMjIsMSxcIlR5cGVfb2ZfaXRlcmF0ZWRfZWxlbWVudHNfb2ZfYV95aWVsZF9Bc3Rlcmlza19vcGVyYW5kX211c3RfZWl0aGVyX2JlX2FfdmFsaWRfcHJvbWlzZV9vcl9tdXN0X25vdF9jb25fMTMyMlwiLFwiVHlwZSBvZiBpdGVyYXRlZCBlbGVtZW50cyBvZiBhICd5aWVsZConIG9wZXJhbmQgbXVzdCBlaXRoZXIgYmUgYSB2YWxpZCBwcm9taXNlIG9yIG11c3Qgbm90IGNvbnRhaW4gYSBjYWxsYWJsZSAndGhlbicgbWVtYmVyLlwiKSxEeW5hbWljX2ltcG9ydHNfYXJlX29ubHlfc3VwcG9ydGVkX3doZW5fdGhlX21vZHVsZV9mbGFnX2lzX3NldF90b19lczIwMjBfZXMyMDIyX2VzbmV4dF9jb21tb25qc19hbWRfc3lzdGVtX3VtZF9ub2RlMTZfb3Jfbm9kZW5leHQ6aSgxMzIzLDEsXCJEeW5hbWljX2ltcG9ydHNfYXJlX29ubHlfc3VwcG9ydGVkX3doZW5fdGhlX21vZHVsZV9mbGFnX2lzX3NldF90b19lczIwMjBfZXMyMDIyX2VzbmV4dF9jb21tb25qc19hbWRfXzEzMjNcIixcIkR5bmFtaWMgaW1wb3J0cyBhcmUgb25seSBzdXBwb3J0ZWQgd2hlbiB0aGUgJy0tbW9kdWxlJyBmbGFnIGlzIHNldCB0byAnZXMyMDIwJywgJ2VzMjAyMicsICdlc25leHQnLCAnY29tbW9uanMnLCAnYW1kJywgJ3N5c3RlbScsICd1bWQnLCAnbm9kZTE2Jywgb3IgJ25vZGVuZXh0Jy5cIiksRHluYW1pY19pbXBvcnRzX29ubHlfc3VwcG9ydF9hX3NlY29uZF9hcmd1bWVudF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX3NldF90b19lc25leHRfbm9kZTE2X29yX25vZGVuZXh0OmkoMTMyNCwxLFwiRHluYW1pY19pbXBvcnRzX29ubHlfc3VwcG9ydF9hX3NlY29uZF9hcmd1bWVudF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX3NldF90b19lc25leHRfbm9kZTE2X29yX25vZF8xMzI0XCIsXCJEeW5hbWljIGltcG9ydHMgb25seSBzdXBwb3J0IGEgc2Vjb25kIGFyZ3VtZW50IHdoZW4gdGhlICctLW1vZHVsZScgb3B0aW9uIGlzIHNldCB0byAnZXNuZXh0JywgJ25vZGUxNicsIG9yICdub2RlbmV4dCcuXCIpLEFyZ3VtZW50X29mX2R5bmFtaWNfaW1wb3J0X2Nhbm5vdF9iZV9zcHJlYWRfZWxlbWVudDppKDEzMjUsMSxcIkFyZ3VtZW50X29mX2R5bmFtaWNfaW1wb3J0X2Nhbm5vdF9iZV9zcHJlYWRfZWxlbWVudF8xMzI1XCIsXCJBcmd1bWVudCBvZiBkeW5hbWljIGltcG9ydCBjYW5ub3QgYmUgc3ByZWFkIGVsZW1lbnQuXCIpLFRoaXNfdXNlX29mX2ltcG9ydF9pc19pbnZhbGlkX2ltcG9ydF9jYWxsc19jYW5fYmVfd3JpdHRlbl9idXRfdGhleV9tdXN0X2hhdmVfcGFyZW50aGVzZXNfYW5kX2Nhbm5vdF9oYXZlX3R5cGVfYXJndW1lbnRzOmkoMTMyNiwxLFwiVGhpc191c2Vfb2ZfaW1wb3J0X2lzX2ludmFsaWRfaW1wb3J0X2NhbGxzX2Nhbl9iZV93cml0dGVuX2J1dF90aGV5X211c3RfaGF2ZV9wYXJlbnRoZXNlc19hbmRfY2Fubm90X18xMzI2XCIsXCJUaGlzIHVzZSBvZiAnaW1wb3J0JyBpcyBpbnZhbGlkLiAnaW1wb3J0KCknIGNhbGxzIGNhbiBiZSB3cml0dGVuLCBidXQgdGhleSBtdXN0IGhhdmUgcGFyZW50aGVzZXMgYW5kIGNhbm5vdCBoYXZlIHR5cGUgYXJndW1lbnRzLlwiKSxTdHJpbmdfbGl0ZXJhbF93aXRoX2RvdWJsZV9xdW90ZXNfZXhwZWN0ZWQ6aSgxMzI3LDEsXCJTdHJpbmdfbGl0ZXJhbF93aXRoX2RvdWJsZV9xdW90ZXNfZXhwZWN0ZWRfMTMyN1wiLFwiU3RyaW5nIGxpdGVyYWwgd2l0aCBkb3VibGUgcXVvdGVzIGV4cGVjdGVkLlwiKSxQcm9wZXJ0eV92YWx1ZV9jYW5fb25seV9iZV9zdHJpbmdfbGl0ZXJhbF9udW1lcmljX2xpdGVyYWxfdHJ1ZV9mYWxzZV9udWxsX29iamVjdF9saXRlcmFsX29yX2FycmF5X2xpdGVyYWw6aSgxMzI4LDEsXCJQcm9wZXJ0eV92YWx1ZV9jYW5fb25seV9iZV9zdHJpbmdfbGl0ZXJhbF9udW1lcmljX2xpdGVyYWxfdHJ1ZV9mYWxzZV9udWxsX29iamVjdF9saXRlcmFsX29yX2FycmF5X2xpXzEzMjhcIixcIlByb3BlcnR5IHZhbHVlIGNhbiBvbmx5IGJlIHN0cmluZyBsaXRlcmFsLCBudW1lcmljIGxpdGVyYWwsICd0cnVlJywgJ2ZhbHNlJywgJ251bGwnLCBvYmplY3QgbGl0ZXJhbCBvciBhcnJheSBsaXRlcmFsLlwiKSxfMF9hY2NlcHRzX3Rvb19mZXdfYXJndW1lbnRzX3RvX2JlX3VzZWRfYXNfYV9kZWNvcmF0b3JfaGVyZV9EaWRfeW91X21lYW5fdG9fY2FsbF9pdF9maXJzdF9hbmRfd3JpdGVfMDppKDEzMjksMSxcIl8wX2FjY2VwdHNfdG9vX2Zld19hcmd1bWVudHNfdG9fYmVfdXNlZF9hc19hX2RlY29yYXRvcl9oZXJlX0RpZF95b3VfbWVhbl90b19jYWxsX2l0X2ZpcnN0X2FuZF93cml0ZV9fMTMyOVwiLFwiJ3swfScgYWNjZXB0cyB0b28gZmV3IGFyZ3VtZW50cyB0byBiZSB1c2VkIGFzIGEgZGVjb3JhdG9yIGhlcmUuIERpZCB5b3UgbWVhbiB0byBjYWxsIGl0IGZpcnN0IGFuZCB3cml0ZSAnQHswfSgpJz9cIiksQV9wcm9wZXJ0eV9vZl9hbl9pbnRlcmZhY2Vfb3JfdHlwZV9saXRlcmFsX3dob3NlX3R5cGVfaXNfYV91bmlxdWVfc3ltYm9sX3R5cGVfbXVzdF9iZV9yZWFkb25seTppKDEzMzAsMSxcIkFfcHJvcGVydHlfb2ZfYW5faW50ZXJmYWNlX29yX3R5cGVfbGl0ZXJhbF93aG9zZV90eXBlX2lzX2FfdW5pcXVlX3N5bWJvbF90eXBlX211c3RfYmVfcmVhZG9ubHlfMTMzMFwiLFwiQSBwcm9wZXJ0eSBvZiBhbiBpbnRlcmZhY2Ugb3IgdHlwZSBsaXRlcmFsIHdob3NlIHR5cGUgaXMgYSAndW5pcXVlIHN5bWJvbCcgdHlwZSBtdXN0IGJlICdyZWFkb25seScuXCIpLEFfcHJvcGVydHlfb2ZfYV9jbGFzc193aG9zZV90eXBlX2lzX2FfdW5pcXVlX3N5bWJvbF90eXBlX211c3RfYmVfYm90aF9zdGF0aWNfYW5kX3JlYWRvbmx5OmkoMTMzMSwxLFwiQV9wcm9wZXJ0eV9vZl9hX2NsYXNzX3dob3NlX3R5cGVfaXNfYV91bmlxdWVfc3ltYm9sX3R5cGVfbXVzdF9iZV9ib3RoX3N0YXRpY19hbmRfcmVhZG9ubHlfMTMzMVwiLFwiQSBwcm9wZXJ0eSBvZiBhIGNsYXNzIHdob3NlIHR5cGUgaXMgYSAndW5pcXVlIHN5bWJvbCcgdHlwZSBtdXN0IGJlIGJvdGggJ3N0YXRpYycgYW5kICdyZWFkb25seScuXCIpLEFfdmFyaWFibGVfd2hvc2VfdHlwZV9pc19hX3VuaXF1ZV9zeW1ib2xfdHlwZV9tdXN0X2JlX2NvbnN0OmkoMTMzMiwxLFwiQV92YXJpYWJsZV93aG9zZV90eXBlX2lzX2FfdW5pcXVlX3N5bWJvbF90eXBlX211c3RfYmVfY29uc3RfMTMzMlwiLFwiQSB2YXJpYWJsZSB3aG9zZSB0eXBlIGlzIGEgJ3VuaXF1ZSBzeW1ib2wnIHR5cGUgbXVzdCBiZSAnY29uc3QnLlwiKSx1bmlxdWVfc3ltYm9sX3R5cGVzX21heV9ub3RfYmVfdXNlZF9vbl9hX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX3dpdGhfYV9iaW5kaW5nX25hbWU6aSgxMzMzLDEsXCJ1bmlxdWVfc3ltYm9sX3R5cGVzX21heV9ub3RfYmVfdXNlZF9vbl9hX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX3dpdGhfYV9iaW5kaW5nX25hbWVfMTMzM1wiLFwiJ3VuaXF1ZSBzeW1ib2wnIHR5cGVzIG1heSBub3QgYmUgdXNlZCBvbiBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHdpdGggYSBiaW5kaW5nIG5hbWUuXCIpLHVuaXF1ZV9zeW1ib2xfdHlwZXNfYXJlX29ubHlfYWxsb3dlZF9vbl92YXJpYWJsZXNfaW5fYV92YXJpYWJsZV9zdGF0ZW1lbnQ6aSgxMzM0LDEsXCJ1bmlxdWVfc3ltYm9sX3R5cGVzX2FyZV9vbmx5X2FsbG93ZWRfb25fdmFyaWFibGVzX2luX2FfdmFyaWFibGVfc3RhdGVtZW50XzEzMzRcIixcIid1bmlxdWUgc3ltYm9sJyB0eXBlcyBhcmUgb25seSBhbGxvd2VkIG9uIHZhcmlhYmxlcyBpbiBhIHZhcmlhYmxlIHN0YXRlbWVudC5cIiksdW5pcXVlX3N5bWJvbF90eXBlc19hcmVfbm90X2FsbG93ZWRfaGVyZTppKDEzMzUsMSxcInVuaXF1ZV9zeW1ib2xfdHlwZXNfYXJlX25vdF9hbGxvd2VkX2hlcmVfMTMzNVwiLFwiJ3VuaXF1ZSBzeW1ib2wnIHR5cGVzIGFyZSBub3QgYWxsb3dlZCBoZXJlLlwiKSxBbl9pbmRleF9zaWduYXR1cmVfcGFyYW1ldGVyX3R5cGVfY2Fubm90X2JlX2FfbGl0ZXJhbF90eXBlX29yX2dlbmVyaWNfdHlwZV9Db25zaWRlcl91c2luZ19hX21hcHBlZF9vYmplY3RfdHlwZV9pbnN0ZWFkOmkoMTMzNywxLFwiQW5faW5kZXhfc2lnbmF0dXJlX3BhcmFtZXRlcl90eXBlX2Nhbm5vdF9iZV9hX2xpdGVyYWxfdHlwZV9vcl9nZW5lcmljX3R5cGVfQ29uc2lkZXJfdXNpbmdfYV9tYXBwZWRfb18xMzM3XCIsXCJBbiBpbmRleCBzaWduYXR1cmUgcGFyYW1ldGVyIHR5cGUgY2Fubm90IGJlIGEgbGl0ZXJhbCB0eXBlIG9yIGdlbmVyaWMgdHlwZS4gQ29uc2lkZXIgdXNpbmcgYSBtYXBwZWQgb2JqZWN0IHR5cGUgaW5zdGVhZC5cIiksaW5mZXJfZGVjbGFyYXRpb25zX2FyZV9vbmx5X3Blcm1pdHRlZF9pbl90aGVfZXh0ZW5kc19jbGF1c2Vfb2ZfYV9jb25kaXRpb25hbF90eXBlOmkoMTMzOCwxLFwiaW5mZXJfZGVjbGFyYXRpb25zX2FyZV9vbmx5X3Blcm1pdHRlZF9pbl90aGVfZXh0ZW5kc19jbGF1c2Vfb2ZfYV9jb25kaXRpb25hbF90eXBlXzEzMzhcIixcIidpbmZlcicgZGVjbGFyYXRpb25zIGFyZSBvbmx5IHBlcm1pdHRlZCBpbiB0aGUgJ2V4dGVuZHMnIGNsYXVzZSBvZiBhIGNvbmRpdGlvbmFsIHR5cGUuXCIpLE1vZHVsZV8wX2RvZXNfbm90X3JlZmVyX3RvX2FfdmFsdWVfYnV0X2lzX3VzZWRfYXNfYV92YWx1ZV9oZXJlOmkoMTMzOSwxLFwiTW9kdWxlXzBfZG9lc19ub3RfcmVmZXJfdG9fYV92YWx1ZV9idXRfaXNfdXNlZF9hc19hX3ZhbHVlX2hlcmVfMTMzOVwiLFwiTW9kdWxlICd7MH0nIGRvZXMgbm90IHJlZmVyIHRvIGEgdmFsdWUsIGJ1dCBpcyB1c2VkIGFzIGEgdmFsdWUgaGVyZS5cIiksTW9kdWxlXzBfZG9lc19ub3RfcmVmZXJfdG9fYV90eXBlX2J1dF9pc191c2VkX2FzX2FfdHlwZV9oZXJlX0RpZF95b3VfbWVhbl90eXBlb2ZfaW1wb3J0XzA6aSgxMzQwLDEsXCJNb2R1bGVfMF9kb2VzX25vdF9yZWZlcl90b19hX3R5cGVfYnV0X2lzX3VzZWRfYXNfYV90eXBlX2hlcmVfRGlkX3lvdV9tZWFuX3R5cGVvZl9pbXBvcnRfMF8xMzQwXCIsXCJNb2R1bGUgJ3swfScgZG9lcyBub3QgcmVmZXIgdG8gYSB0eXBlLCBidXQgaXMgdXNlZCBhcyBhIHR5cGUgaGVyZS4gRGlkIHlvdSBtZWFuICd0eXBlb2YgaW1wb3J0KCd7MH0nKSc/XCIpLENsYXNzX2NvbnN0cnVjdG9yX21heV9ub3RfYmVfYW5fYWNjZXNzb3I6aSgxMzQxLDEsXCJDbGFzc19jb25zdHJ1Y3Rvcl9tYXlfbm90X2JlX2FuX2FjY2Vzc29yXzEzNDFcIixcIkNsYXNzIGNvbnN0cnVjdG9yIG1heSBub3QgYmUgYW4gYWNjZXNzb3IuXCIpLFRoZV9pbXBvcnRfbWV0YV9tZXRhX3Byb3BlcnR5X2lzX29ubHlfYWxsb3dlZF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX2VzMjAyMF9lczIwMjJfZXNuZXh0X3N5c3RlbV9ub2RlMTZfb3Jfbm9kZW5leHQ6aSgxMzQzLDEsXCJUaGVfaW1wb3J0X21ldGFfbWV0YV9wcm9wZXJ0eV9pc19vbmx5X2FsbG93ZWRfd2hlbl90aGVfbW9kdWxlX29wdGlvbl9pc19lczIwMjBfZXMyMDIyX2VzbmV4dF9zeXN0ZW1fXzEzNDNcIixcIlRoZSAnaW1wb3J0Lm1ldGEnIG1ldGEtcHJvcGVydHkgaXMgb25seSBhbGxvd2VkIHdoZW4gdGhlICctLW1vZHVsZScgb3B0aW9uIGlzICdlczIwMjAnLCAnZXMyMDIyJywgJ2VzbmV4dCcsICdzeXN0ZW0nLCAnbm9kZTE2Jywgb3IgJ25vZGVuZXh0Jy5cIiksQV9sYWJlbF9pc19ub3RfYWxsb3dlZF9oZXJlOmkoMTM0NCwxLFwiQV9sYWJlbF9pc19ub3RfYWxsb3dlZF9oZXJlXzEzNDRcIixcIidBIGxhYmVsIGlzIG5vdCBhbGxvd2VkIGhlcmUuXCIpLEFuX2V4cHJlc3Npb25fb2ZfdHlwZV92b2lkX2Nhbm5vdF9iZV90ZXN0ZWRfZm9yX3RydXRoaW5lc3M6aSgxMzQ1LDEsXCJBbl9leHByZXNzaW9uX29mX3R5cGVfdm9pZF9jYW5ub3RfYmVfdGVzdGVkX2Zvcl90cnV0aGluZXNzXzEzNDVcIixcIkFuIGV4cHJlc3Npb24gb2YgdHlwZSAndm9pZCcgY2Fubm90IGJlIHRlc3RlZCBmb3IgdHJ1dGhpbmVzcy5cIiksVGhpc19wYXJhbWV0ZXJfaXNfbm90X2FsbG93ZWRfd2l0aF91c2Vfc3RyaWN0X2RpcmVjdGl2ZTppKDEzNDYsMSxcIlRoaXNfcGFyYW1ldGVyX2lzX25vdF9hbGxvd2VkX3dpdGhfdXNlX3N0cmljdF9kaXJlY3RpdmVfMTM0NlwiLFwiVGhpcyBwYXJhbWV0ZXIgaXMgbm90IGFsbG93ZWQgd2l0aCAndXNlIHN0cmljdCcgZGlyZWN0aXZlLlwiKSx1c2Vfc3RyaWN0X2RpcmVjdGl2ZV9jYW5ub3RfYmVfdXNlZF93aXRoX25vbl9zaW1wbGVfcGFyYW1ldGVyX2xpc3Q6aSgxMzQ3LDEsXCJ1c2Vfc3RyaWN0X2RpcmVjdGl2ZV9jYW5ub3RfYmVfdXNlZF93aXRoX25vbl9zaW1wbGVfcGFyYW1ldGVyX2xpc3RfMTM0N1wiLFwiJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSBjYW5ub3QgYmUgdXNlZCB3aXRoIG5vbi1zaW1wbGUgcGFyYW1ldGVyIGxpc3QuXCIpLE5vbl9zaW1wbGVfcGFyYW1ldGVyX2RlY2xhcmVkX2hlcmU6aSgxMzQ4LDEsXCJOb25fc2ltcGxlX3BhcmFtZXRlcl9kZWNsYXJlZF9oZXJlXzEzNDhcIixcIk5vbi1zaW1wbGUgcGFyYW1ldGVyIGRlY2xhcmVkIGhlcmUuXCIpLHVzZV9zdHJpY3RfZGlyZWN0aXZlX3VzZWRfaGVyZTppKDEzNDksMSxcInVzZV9zdHJpY3RfZGlyZWN0aXZlX3VzZWRfaGVyZV8xMzQ5XCIsXCIndXNlIHN0cmljdCcgZGlyZWN0aXZlIHVzZWQgaGVyZS5cIiksUHJpbnRfdGhlX2ZpbmFsX2NvbmZpZ3VyYXRpb25faW5zdGVhZF9vZl9idWlsZGluZzppKDEzNTAsMyxcIlByaW50X3RoZV9maW5hbF9jb25maWd1cmF0aW9uX2luc3RlYWRfb2ZfYnVpbGRpbmdfMTM1MFwiLFwiUHJpbnQgdGhlIGZpbmFsIGNvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBidWlsZGluZy5cIiksQW5faWRlbnRpZmllcl9vcl9rZXl3b3JkX2Nhbm5vdF9pbW1lZGlhdGVseV9mb2xsb3dfYV9udW1lcmljX2xpdGVyYWw6aSgxMzUxLDEsXCJBbl9pZGVudGlmaWVyX29yX2tleXdvcmRfY2Fubm90X2ltbWVkaWF0ZWx5X2ZvbGxvd19hX251bWVyaWNfbGl0ZXJhbF8xMzUxXCIsXCJBbiBpZGVudGlmaWVyIG9yIGtleXdvcmQgY2Fubm90IGltbWVkaWF0ZWx5IGZvbGxvdyBhIG51bWVyaWMgbGl0ZXJhbC5cIiksQV9iaWdpbnRfbGl0ZXJhbF9jYW5ub3RfdXNlX2V4cG9uZW50aWFsX25vdGF0aW9uOmkoMTM1MiwxLFwiQV9iaWdpbnRfbGl0ZXJhbF9jYW5ub3RfdXNlX2V4cG9uZW50aWFsX25vdGF0aW9uXzEzNTJcIixcIkEgYmlnaW50IGxpdGVyYWwgY2Fubm90IHVzZSBleHBvbmVudGlhbCBub3RhdGlvbi5cIiksQV9iaWdpbnRfbGl0ZXJhbF9tdXN0X2JlX2FuX2ludGVnZXI6aSgxMzUzLDEsXCJBX2JpZ2ludF9saXRlcmFsX211c3RfYmVfYW5faW50ZWdlcl8xMzUzXCIsXCJBIGJpZ2ludCBsaXRlcmFsIG11c3QgYmUgYW4gaW50ZWdlci5cIikscmVhZG9ubHlfdHlwZV9tb2RpZmllcl9pc19vbmx5X3Blcm1pdHRlZF9vbl9hcnJheV9hbmRfdHVwbGVfbGl0ZXJhbF90eXBlczppKDEzNTQsMSxcInJlYWRvbmx5X3R5cGVfbW9kaWZpZXJfaXNfb25seV9wZXJtaXR0ZWRfb25fYXJyYXlfYW5kX3R1cGxlX2xpdGVyYWxfdHlwZXNfMTM1NFwiLFwiJ3JlYWRvbmx5JyB0eXBlIG1vZGlmaWVyIGlzIG9ubHkgcGVybWl0dGVkIG9uIGFycmF5IGFuZCB0dXBsZSBsaXRlcmFsIHR5cGVzLlwiKSxBX2NvbnN0X2Fzc2VydGlvbnNfY2FuX29ubHlfYmVfYXBwbGllZF90b19yZWZlcmVuY2VzX3RvX2VudW1fbWVtYmVyc19vcl9zdHJpbmdfbnVtYmVyX2Jvb2xlYW5fYXJyYXlfb3Jfb2JqZWN0X2xpdGVyYWxzOmkoMTM1NSwxLFwiQV9jb25zdF9hc3NlcnRpb25zX2Nhbl9vbmx5X2JlX2FwcGxpZWRfdG9fcmVmZXJlbmNlc190b19lbnVtX21lbWJlcnNfb3Jfc3RyaW5nX251bWJlcl9ib29sZWFuX2FycmF5X18xMzU1XCIsXCJBICdjb25zdCcgYXNzZXJ0aW9ucyBjYW4gb25seSBiZSBhcHBsaWVkIHRvIHJlZmVyZW5jZXMgdG8gZW51bSBtZW1iZXJzLCBvciBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgYXJyYXksIG9yIG9iamVjdCBsaXRlcmFscy5cIiksRGlkX3lvdV9tZWFuX3RvX21hcmtfdGhpc19mdW5jdGlvbl9hc19hc3luYzppKDEzNTYsMSxcIkRpZF95b3VfbWVhbl90b19tYXJrX3RoaXNfZnVuY3Rpb25fYXNfYXN5bmNfMTM1NlwiLFwiRGlkIHlvdSBtZWFuIHRvIG1hcmsgdGhpcyBmdW5jdGlvbiBhcyAnYXN5bmMnP1wiKSxBbl9lbnVtX21lbWJlcl9uYW1lX211c3RfYmVfZm9sbG93ZWRfYnlfYV9vcjppKDEzNTcsMSxcIkFuX2VudW1fbWVtYmVyX25hbWVfbXVzdF9iZV9mb2xsb3dlZF9ieV9hX29yXzEzNTdcIixcIkFuIGVudW0gbWVtYmVyIG5hbWUgbXVzdCBiZSBmb2xsb3dlZCBieSBhICcsJywgJz0nLCBvciAnfScuXCIpLFRhZ2dlZF90ZW1wbGF0ZV9leHByZXNzaW9uc19hcmVfbm90X3Blcm1pdHRlZF9pbl9hbl9vcHRpb25hbF9jaGFpbjppKDEzNTgsMSxcIlRhZ2dlZF90ZW1wbGF0ZV9leHByZXNzaW9uc19hcmVfbm90X3Blcm1pdHRlZF9pbl9hbl9vcHRpb25hbF9jaGFpbl8xMzU4XCIsXCJUYWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgaW4gYW4gb3B0aW9uYWwgY2hhaW4uXCIpLElkZW50aWZpZXJfZXhwZWN0ZWRfMF9pc19hX3Jlc2VydmVkX3dvcmRfdGhhdF9jYW5ub3RfYmVfdXNlZF9oZXJlOmkoMTM1OSwxLFwiSWRlbnRpZmllcl9leHBlY3RlZF8wX2lzX2FfcmVzZXJ2ZWRfd29yZF90aGF0X2Nhbm5vdF9iZV91c2VkX2hlcmVfMTM1OVwiLFwiSWRlbnRpZmllciBleHBlY3RlZC4gJ3swfScgaXMgYSByZXNlcnZlZCB3b3JkIHRoYXQgY2Fubm90IGJlIHVzZWQgaGVyZS5cIiksVHlwZV8wX2RvZXNfbm90X3NhdGlzZnlfdGhlX2V4cGVjdGVkX3R5cGVfMTppKDEzNjAsMSxcIlR5cGVfMF9kb2VzX25vdF9zYXRpc2Z5X3RoZV9leHBlY3RlZF90eXBlXzFfMTM2MFwiLFwiVHlwZSAnezB9JyBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBleHBlY3RlZCB0eXBlICd7MX0nLlwiKSxfMF9jYW5ub3RfYmVfdXNlZF9hc19hX3ZhbHVlX2JlY2F1c2VfaXRfd2FzX2ltcG9ydGVkX3VzaW5nX2ltcG9ydF90eXBlOmkoMTM2MSwxLFwiXzBfY2Fubm90X2JlX3VzZWRfYXNfYV92YWx1ZV9iZWNhdXNlX2l0X3dhc19pbXBvcnRlZF91c2luZ19pbXBvcnRfdHlwZV8xMzYxXCIsXCInezB9JyBjYW5ub3QgYmUgdXNlZCBhcyBhIHZhbHVlIGJlY2F1c2UgaXQgd2FzIGltcG9ydGVkIHVzaW5nICdpbXBvcnQgdHlwZScuXCIpLF8wX2Nhbm5vdF9iZV91c2VkX2FzX2FfdmFsdWVfYmVjYXVzZV9pdF93YXNfZXhwb3J0ZWRfdXNpbmdfZXhwb3J0X3R5cGU6aSgxMzYyLDEsXCJfMF9jYW5ub3RfYmVfdXNlZF9hc19hX3ZhbHVlX2JlY2F1c2VfaXRfd2FzX2V4cG9ydGVkX3VzaW5nX2V4cG9ydF90eXBlXzEzNjJcIixcIid7MH0nIGNhbm5vdCBiZSB1c2VkIGFzIGEgdmFsdWUgYmVjYXVzZSBpdCB3YXMgZXhwb3J0ZWQgdXNpbmcgJ2V4cG9ydCB0eXBlJy5cIiksQV90eXBlX29ubHlfaW1wb3J0X2Nhbl9zcGVjaWZ5X2FfZGVmYXVsdF9pbXBvcnRfb3JfbmFtZWRfYmluZGluZ3NfYnV0X25vdF9ib3RoOmkoMTM2MywxLFwiQV90eXBlX29ubHlfaW1wb3J0X2Nhbl9zcGVjaWZ5X2FfZGVmYXVsdF9pbXBvcnRfb3JfbmFtZWRfYmluZGluZ3NfYnV0X25vdF9ib3RoXzEzNjNcIixcIkEgdHlwZS1vbmx5IGltcG9ydCBjYW4gc3BlY2lmeSBhIGRlZmF1bHQgaW1wb3J0IG9yIG5hbWVkIGJpbmRpbmdzLCBidXQgbm90IGJvdGguXCIpLENvbnZlcnRfdG9fdHlwZV9vbmx5X2V4cG9ydDppKDEzNjQsMyxcIkNvbnZlcnRfdG9fdHlwZV9vbmx5X2V4cG9ydF8xMzY0XCIsXCJDb252ZXJ0IHRvIHR5cGUtb25seSBleHBvcnRcIiksQ29udmVydF9hbGxfcmVfZXhwb3J0ZWRfdHlwZXNfdG9fdHlwZV9vbmx5X2V4cG9ydHM6aSgxMzY1LDMsXCJDb252ZXJ0X2FsbF9yZV9leHBvcnRlZF90eXBlc190b190eXBlX29ubHlfZXhwb3J0c18xMzY1XCIsXCJDb252ZXJ0IGFsbCByZS1leHBvcnRlZCB0eXBlcyB0byB0eXBlLW9ubHkgZXhwb3J0c1wiKSxTcGxpdF9pbnRvX3R3b19zZXBhcmF0ZV9pbXBvcnRfZGVjbGFyYXRpb25zOmkoMTM2NiwzLFwiU3BsaXRfaW50b190d29fc2VwYXJhdGVfaW1wb3J0X2RlY2xhcmF0aW9uc18xMzY2XCIsXCJTcGxpdCBpbnRvIHR3byBzZXBhcmF0ZSBpbXBvcnQgZGVjbGFyYXRpb25zXCIpLFNwbGl0X2FsbF9pbnZhbGlkX3R5cGVfb25seV9pbXBvcnRzOmkoMTM2NywzLFwiU3BsaXRfYWxsX2ludmFsaWRfdHlwZV9vbmx5X2ltcG9ydHNfMTM2N1wiLFwiU3BsaXQgYWxsIGludmFsaWQgdHlwZS1vbmx5IGltcG9ydHNcIiksQ2xhc3NfY29uc3RydWN0b3JfbWF5X25vdF9iZV9hX2dlbmVyYXRvcjppKDEzNjgsMSxcIkNsYXNzX2NvbnN0cnVjdG9yX21heV9ub3RfYmVfYV9nZW5lcmF0b3JfMTM2OFwiLFwiQ2xhc3MgY29uc3RydWN0b3IgbWF5IG5vdCBiZSBhIGdlbmVyYXRvci5cIiksRGlkX3lvdV9tZWFuXzA6aSgxMzY5LDMsXCJEaWRfeW91X21lYW5fMF8xMzY5XCIsXCJEaWQgeW91IG1lYW4gJ3swfSc/XCIpLFRoaXNfaW1wb3J0X2lzX25ldmVyX3VzZWRfYXNfYV92YWx1ZV9hbmRfbXVzdF91c2VfaW1wb3J0X3R5cGVfYmVjYXVzZV9pbXBvcnRzTm90VXNlZEFzVmFsdWVzX2lzX3NldF90b19lcnJvcjppKDEzNzEsMSxcIlRoaXNfaW1wb3J0X2lzX25ldmVyX3VzZWRfYXNfYV92YWx1ZV9hbmRfbXVzdF91c2VfaW1wb3J0X3R5cGVfYmVjYXVzZV9pbXBvcnRzTm90VXNlZEFzVmFsdWVzX2lzX3NldF9fMTM3MVwiLFwiVGhpcyBpbXBvcnQgaXMgbmV2ZXIgdXNlZCBhcyBhIHZhbHVlIGFuZCBtdXN0IHVzZSAnaW1wb3J0IHR5cGUnIGJlY2F1c2UgJ2ltcG9ydHNOb3RVc2VkQXNWYWx1ZXMnIGlzIHNldCB0byAnZXJyb3InLlwiKSxhd2FpdF9leHByZXNzaW9uc19hcmVfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9maWxlX3doZW5fdGhhdF9maWxlX2lzX2FfbW9kdWxlX2J1dF90aGlzX2ZpbGVfaGFzX25vX2ltcG9ydHNfb3JfZXhwb3J0c19Db25zaWRlcl9hZGRpbmdfYW5fZW1wdHlfZXhwb3J0X3RvX21ha2VfdGhpc19maWxlX2FfbW9kdWxlOmkoMTM3NSwxLFwiYXdhaXRfZXhwcmVzc2lvbnNfYXJlX29ubHlfYWxsb3dlZF9hdF90aGVfdG9wX2xldmVsX29mX2FfZmlsZV93aGVuX3RoYXRfZmlsZV9pc19hX21vZHVsZV9idXRfdGhpc19maV8xMzc1XCIsXCInYXdhaXQnIGV4cHJlc3Npb25zIGFyZSBvbmx5IGFsbG93ZWQgYXQgdGhlIHRvcCBsZXZlbCBvZiBhIGZpbGUgd2hlbiB0aGF0IGZpbGUgaXMgYSBtb2R1bGUsIGJ1dCB0aGlzIGZpbGUgaGFzIG5vIGltcG9ydHMgb3IgZXhwb3J0cy4gQ29uc2lkZXIgYWRkaW5nIGFuIGVtcHR5ICdleHBvcnQge30nIHRvIG1ha2UgdGhpcyBmaWxlIGEgbW9kdWxlLlwiKSxfMF93YXNfaW1wb3J0ZWRfaGVyZTppKDEzNzYsMyxcIl8wX3dhc19pbXBvcnRlZF9oZXJlXzEzNzZcIixcIid7MH0nIHdhcyBpbXBvcnRlZCBoZXJlLlwiKSxfMF93YXNfZXhwb3J0ZWRfaGVyZTppKDEzNzcsMyxcIl8wX3dhc19leHBvcnRlZF9oZXJlXzEzNzdcIixcIid7MH0nIHdhcyBleHBvcnRlZCBoZXJlLlwiKSxUb3BfbGV2ZWxfYXdhaXRfZXhwcmVzc2lvbnNfYXJlX29ubHlfYWxsb3dlZF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX3NldF90b19lczIwMjJfZXNuZXh0X3N5c3RlbV9ub2RlMTZfb3Jfbm9kZW5leHRfYW5kX3RoZV90YXJnZXRfb3B0aW9uX2lzX3NldF90b19lczIwMTdfb3JfaGlnaGVyOmkoMTM3OCwxLFwiVG9wX2xldmVsX2F3YWl0X2V4cHJlc3Npb25zX2FyZV9vbmx5X2FsbG93ZWRfd2hlbl90aGVfbW9kdWxlX29wdGlvbl9pc19zZXRfdG9fZXMyMDIyX2VzbmV4dF9zeXN0ZW1fbl8xMzc4XCIsXCJUb3AtbGV2ZWwgJ2F3YWl0JyBleHByZXNzaW9ucyBhcmUgb25seSBhbGxvd2VkIHdoZW4gdGhlICdtb2R1bGUnIG9wdGlvbiBpcyBzZXQgdG8gJ2VzMjAyMicsICdlc25leHQnLCAnc3lzdGVtJywgJ25vZGUxNicsIG9yICdub2RlbmV4dCcsIGFuZCB0aGUgJ3RhcmdldCcgb3B0aW9uIGlzIHNldCB0byAnZXMyMDE3JyBvciBoaWdoZXIuXCIpLEFuX2ltcG9ydF9hbGlhc19jYW5ub3RfcmVmZXJlbmNlX2FfZGVjbGFyYXRpb25fdGhhdF93YXNfZXhwb3J0ZWRfdXNpbmdfZXhwb3J0X3R5cGU6aSgxMzc5LDEsXCJBbl9pbXBvcnRfYWxpYXNfY2Fubm90X3JlZmVyZW5jZV9hX2RlY2xhcmF0aW9uX3RoYXRfd2FzX2V4cG9ydGVkX3VzaW5nX2V4cG9ydF90eXBlXzEzNzlcIixcIkFuIGltcG9ydCBhbGlhcyBjYW5ub3QgcmVmZXJlbmNlIGEgZGVjbGFyYXRpb24gdGhhdCB3YXMgZXhwb3J0ZWQgdXNpbmcgJ2V4cG9ydCB0eXBlJy5cIiksQW5faW1wb3J0X2FsaWFzX2Nhbm5vdF9yZWZlcmVuY2VfYV9kZWNsYXJhdGlvbl90aGF0X3dhc19pbXBvcnRlZF91c2luZ19pbXBvcnRfdHlwZTppKDEzODAsMSxcIkFuX2ltcG9ydF9hbGlhc19jYW5ub3RfcmVmZXJlbmNlX2FfZGVjbGFyYXRpb25fdGhhdF93YXNfaW1wb3J0ZWRfdXNpbmdfaW1wb3J0X3R5cGVfMTM4MFwiLFwiQW4gaW1wb3J0IGFsaWFzIGNhbm5vdCByZWZlcmVuY2UgYSBkZWNsYXJhdGlvbiB0aGF0IHdhcyBpbXBvcnRlZCB1c2luZyAnaW1wb3J0IHR5cGUnLlwiKSxVbmV4cGVjdGVkX3Rva2VuX0RpZF95b3VfbWVhbl9vcl9yYnJhY2U6aSgxMzgxLDEsXCJVbmV4cGVjdGVkX3Rva2VuX0RpZF95b3VfbWVhbl9vcl9yYnJhY2VfMTM4MVwiLFwiVW5leHBlY3RlZCB0b2tlbi4gRGlkIHlvdSBtZWFuIGB7J30nfWAgb3IgYCZyYnJhY2U7YD9cIiksVW5leHBlY3RlZF90b2tlbl9EaWRfeW91X21lYW5fb3JfZ3Q6aSgxMzgyLDEsXCJVbmV4cGVjdGVkX3Rva2VuX0RpZF95b3VfbWVhbl9vcl9ndF8xMzgyXCIsXCJVbmV4cGVjdGVkIHRva2VuLiBEaWQgeW91IG1lYW4gYHsnPid9YCBvciBgJmd0O2A/XCIpLEZ1bmN0aW9uX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hX3VuaW9uX3R5cGU6aSgxMzg1LDEsXCJGdW5jdGlvbl90eXBlX25vdGF0aW9uX211c3RfYmVfcGFyZW50aGVzaXplZF93aGVuX3VzZWRfaW5fYV91bmlvbl90eXBlXzEzODVcIixcIkZ1bmN0aW9uIHR5cGUgbm90YXRpb24gbXVzdCBiZSBwYXJlbnRoZXNpemVkIHdoZW4gdXNlZCBpbiBhIHVuaW9uIHR5cGUuXCIpLENvbnN0cnVjdG9yX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hX3VuaW9uX3R5cGU6aSgxMzg2LDEsXCJDb25zdHJ1Y3Rvcl90eXBlX25vdGF0aW9uX211c3RfYmVfcGFyZW50aGVzaXplZF93aGVuX3VzZWRfaW5fYV91bmlvbl90eXBlXzEzODZcIixcIkNvbnN0cnVjdG9yIHR5cGUgbm90YXRpb24gbXVzdCBiZSBwYXJlbnRoZXNpemVkIHdoZW4gdXNlZCBpbiBhIHVuaW9uIHR5cGUuXCIpLEZ1bmN0aW9uX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hbl9pbnRlcnNlY3Rpb25fdHlwZTppKDEzODcsMSxcIkZ1bmN0aW9uX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hbl9pbnRlcnNlY3Rpb25fdHlwZV8xMzg3XCIsXCJGdW5jdGlvbiB0eXBlIG5vdGF0aW9uIG11c3QgYmUgcGFyZW50aGVzaXplZCB3aGVuIHVzZWQgaW4gYW4gaW50ZXJzZWN0aW9uIHR5cGUuXCIpLENvbnN0cnVjdG9yX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hbl9pbnRlcnNlY3Rpb25fdHlwZTppKDEzODgsMSxcIkNvbnN0cnVjdG9yX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hbl9pbnRlcnNlY3Rpb25fdHlwZV8xMzg4XCIsXCJDb25zdHJ1Y3RvciB0eXBlIG5vdGF0aW9uIG11c3QgYmUgcGFyZW50aGVzaXplZCB3aGVuIHVzZWQgaW4gYW4gaW50ZXJzZWN0aW9uIHR5cGUuXCIpLF8wX2lzX25vdF9hbGxvd2VkX2FzX2FfdmFyaWFibGVfZGVjbGFyYXRpb25fbmFtZTppKDEzODksMSxcIl8wX2lzX25vdF9hbGxvd2VkX2FzX2FfdmFyaWFibGVfZGVjbGFyYXRpb25fbmFtZV8xMzg5XCIsXCInezB9JyBpcyBub3QgYWxsb3dlZCBhcyBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG5hbWUuXCIpLF8wX2lzX25vdF9hbGxvd2VkX2FzX2FfcGFyYW1ldGVyX25hbWU6aSgxMzkwLDEsXCJfMF9pc19ub3RfYWxsb3dlZF9hc19hX3BhcmFtZXRlcl9uYW1lXzEzOTBcIixcIid7MH0nIGlzIG5vdCBhbGxvd2VkIGFzIGEgcGFyYW1ldGVyIG5hbWUuXCIpLEFuX2ltcG9ydF9hbGlhc19jYW5ub3RfdXNlX2ltcG9ydF90eXBlOmkoMTM5MiwxLFwiQW5faW1wb3J0X2FsaWFzX2Nhbm5vdF91c2VfaW1wb3J0X3R5cGVfMTM5MlwiLFwiQW4gaW1wb3J0IGFsaWFzIGNhbm5vdCB1c2UgJ2ltcG9ydCB0eXBlJ1wiKSxJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMTppKDEzOTMsMyxcIkltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xXzEzOTNcIixcIkltcG9ydGVkIHZpYSB7MH0gZnJvbSBmaWxlICd7MX0nXCIpLEltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xX3dpdGhfcGFja2FnZUlkXzI6aSgxMzk0LDMsXCJJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMV93aXRoX3BhY2thZ2VJZF8yXzEzOTRcIixcIkltcG9ydGVkIHZpYSB7MH0gZnJvbSBmaWxlICd7MX0nIHdpdGggcGFja2FnZUlkICd7Mn0nXCIpLEltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xX3RvX2ltcG9ydF9pbXBvcnRIZWxwZXJzX2FzX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnM6aSgxMzk1LDMsXCJJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMV90b19pbXBvcnRfaW1wb3J0SGVscGVyc19hc19zcGVjaWZpZWRfaW5fY29tcGlsZXJPcHRpb25zXzEzOTVcIixcIkltcG9ydGVkIHZpYSB7MH0gZnJvbSBmaWxlICd7MX0nIHRvIGltcG9ydCAnaW1wb3J0SGVscGVycycgYXMgc3BlY2lmaWVkIGluIGNvbXBpbGVyT3B0aW9uc1wiKSxJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMV93aXRoX3BhY2thZ2VJZF8yX3RvX2ltcG9ydF9pbXBvcnRIZWxwZXJzX2FzX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnM6aSgxMzk2LDMsXCJJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMV93aXRoX3BhY2thZ2VJZF8yX3RvX2ltcG9ydF9pbXBvcnRIZWxwZXJzX2FzX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnNfMTM5NlwiLFwiSW1wb3J0ZWQgdmlhIHswfSBmcm9tIGZpbGUgJ3sxfScgd2l0aCBwYWNrYWdlSWQgJ3syfScgdG8gaW1wb3J0ICdpbXBvcnRIZWxwZXJzJyBhcyBzcGVjaWZpZWQgaW4gY29tcGlsZXJPcHRpb25zXCIpLEltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xX3RvX2ltcG9ydF9qc3hfYW5kX2pzeHNfZmFjdG9yeV9mdW5jdGlvbnM6aSgxMzk3LDMsXCJJbXBvcnRlZF92aWFfMF9mcm9tX2ZpbGVfMV90b19pbXBvcnRfanN4X2FuZF9qc3hzX2ZhY3RvcnlfZnVuY3Rpb25zXzEzOTdcIixcIkltcG9ydGVkIHZpYSB7MH0gZnJvbSBmaWxlICd7MX0nIHRvIGltcG9ydCAnanN4JyBhbmQgJ2pzeHMnIGZhY3RvcnkgZnVuY3Rpb25zXCIpLEltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xX3dpdGhfcGFja2FnZUlkXzJfdG9faW1wb3J0X2pzeF9hbmRfanN4c19mYWN0b3J5X2Z1bmN0aW9uczppKDEzOTgsMyxcIkltcG9ydGVkX3ZpYV8wX2Zyb21fZmlsZV8xX3dpdGhfcGFja2FnZUlkXzJfdG9faW1wb3J0X2pzeF9hbmRfanN4c19mYWN0b3J5X2Z1bmN0aW9uc18xMzk4XCIsXCJJbXBvcnRlZCB2aWEgezB9IGZyb20gZmlsZSAnezF9JyB3aXRoIHBhY2thZ2VJZCAnezJ9JyB0byBpbXBvcnQgJ2pzeCcgYW5kICdqc3hzJyBmYWN0b3J5IGZ1bmN0aW9uc1wiKSxGaWxlX2lzX2luY2x1ZGVkX3ZpYV9pbXBvcnRfaGVyZTppKDEzOTksMyxcIkZpbGVfaXNfaW5jbHVkZWRfdmlhX2ltcG9ydF9oZXJlXzEzOTlcIixcIkZpbGUgaXMgaW5jbHVkZWQgdmlhIGltcG9ydCBoZXJlLlwiKSxSZWZlcmVuY2VkX3ZpYV8wX2Zyb21fZmlsZV8xOmkoMTQwMCwzLFwiUmVmZXJlbmNlZF92aWFfMF9mcm9tX2ZpbGVfMV8xNDAwXCIsXCJSZWZlcmVuY2VkIHZpYSAnezB9JyBmcm9tIGZpbGUgJ3sxfSdcIiksRmlsZV9pc19pbmNsdWRlZF92aWFfcmVmZXJlbmNlX2hlcmU6aSgxNDAxLDMsXCJGaWxlX2lzX2luY2x1ZGVkX3ZpYV9yZWZlcmVuY2VfaGVyZV8xNDAxXCIsXCJGaWxlIGlzIGluY2x1ZGVkIHZpYSByZWZlcmVuY2UgaGVyZS5cIiksVHlwZV9saWJyYXJ5X3JlZmVyZW5jZWRfdmlhXzBfZnJvbV9maWxlXzE6aSgxNDAyLDMsXCJUeXBlX2xpYnJhcnlfcmVmZXJlbmNlZF92aWFfMF9mcm9tX2ZpbGVfMV8xNDAyXCIsXCJUeXBlIGxpYnJhcnkgcmVmZXJlbmNlZCB2aWEgJ3swfScgZnJvbSBmaWxlICd7MX0nXCIpLFR5cGVfbGlicmFyeV9yZWZlcmVuY2VkX3ZpYV8wX2Zyb21fZmlsZV8xX3dpdGhfcGFja2FnZUlkXzI6aSgxNDAzLDMsXCJUeXBlX2xpYnJhcnlfcmVmZXJlbmNlZF92aWFfMF9mcm9tX2ZpbGVfMV93aXRoX3BhY2thZ2VJZF8yXzE0MDNcIixcIlR5cGUgbGlicmFyeSByZWZlcmVuY2VkIHZpYSAnezB9JyBmcm9tIGZpbGUgJ3sxfScgd2l0aCBwYWNrYWdlSWQgJ3syfSdcIiksRmlsZV9pc19pbmNsdWRlZF92aWFfdHlwZV9saWJyYXJ5X3JlZmVyZW5jZV9oZXJlOmkoMTQwNCwzLFwiRmlsZV9pc19pbmNsdWRlZF92aWFfdHlwZV9saWJyYXJ5X3JlZmVyZW5jZV9oZXJlXzE0MDRcIixcIkZpbGUgaXMgaW5jbHVkZWQgdmlhIHR5cGUgbGlicmFyeSByZWZlcmVuY2UgaGVyZS5cIiksTGlicmFyeV9yZWZlcmVuY2VkX3ZpYV8wX2Zyb21fZmlsZV8xOmkoMTQwNSwzLFwiTGlicmFyeV9yZWZlcmVuY2VkX3ZpYV8wX2Zyb21fZmlsZV8xXzE0MDVcIixcIkxpYnJhcnkgcmVmZXJlbmNlZCB2aWEgJ3swfScgZnJvbSBmaWxlICd7MX0nXCIpLEZpbGVfaXNfaW5jbHVkZWRfdmlhX2xpYnJhcnlfcmVmZXJlbmNlX2hlcmU6aSgxNDA2LDMsXCJGaWxlX2lzX2luY2x1ZGVkX3ZpYV9saWJyYXJ5X3JlZmVyZW5jZV9oZXJlXzE0MDZcIixcIkZpbGUgaXMgaW5jbHVkZWQgdmlhIGxpYnJhcnkgcmVmZXJlbmNlIGhlcmUuXCIpLE1hdGNoZWRfYnlfaW5jbHVkZV9wYXR0ZXJuXzBfaW5fMTppKDE0MDcsMyxcIk1hdGNoZWRfYnlfaW5jbHVkZV9wYXR0ZXJuXzBfaW5fMV8xNDA3XCIsXCJNYXRjaGVkIGJ5IGluY2x1ZGUgcGF0dGVybiAnezB9JyBpbiAnezF9J1wiKSxGaWxlX2lzX21hdGNoZWRfYnlfaW5jbHVkZV9wYXR0ZXJuX3NwZWNpZmllZF9oZXJlOmkoMTQwOCwzLFwiRmlsZV9pc19tYXRjaGVkX2J5X2luY2x1ZGVfcGF0dGVybl9zcGVjaWZpZWRfaGVyZV8xNDA4XCIsXCJGaWxlIGlzIG1hdGNoZWQgYnkgaW5jbHVkZSBwYXR0ZXJuIHNwZWNpZmllZCBoZXJlLlwiKSxQYXJ0X29mX2ZpbGVzX2xpc3RfaW5fdHNjb25maWdfanNvbjppKDE0MDksMyxcIlBhcnRfb2ZfZmlsZXNfbGlzdF9pbl90c2NvbmZpZ19qc29uXzE0MDlcIixcIlBhcnQgb2YgJ2ZpbGVzJyBsaXN0IGluIHRzY29uZmlnLmpzb25cIiksRmlsZV9pc19tYXRjaGVkX2J5X2ZpbGVzX2xpc3Rfc3BlY2lmaWVkX2hlcmU6aSgxNDEwLDMsXCJGaWxlX2lzX21hdGNoZWRfYnlfZmlsZXNfbGlzdF9zcGVjaWZpZWRfaGVyZV8xNDEwXCIsXCJGaWxlIGlzIG1hdGNoZWQgYnkgJ2ZpbGVzJyBsaXN0IHNwZWNpZmllZCBoZXJlLlwiKSxPdXRwdXRfZnJvbV9yZWZlcmVuY2VkX3Byb2plY3RfMF9pbmNsdWRlZF9iZWNhdXNlXzFfc3BlY2lmaWVkOmkoMTQxMSwzLFwiT3V0cHV0X2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0XzBfaW5jbHVkZWRfYmVjYXVzZV8xX3NwZWNpZmllZF8xNDExXCIsXCJPdXRwdXQgZnJvbSByZWZlcmVuY2VkIHByb2plY3QgJ3swfScgaW5jbHVkZWQgYmVjYXVzZSAnezF9JyBzcGVjaWZpZWRcIiksT3V0cHV0X2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0XzBfaW5jbHVkZWRfYmVjYXVzZV9tb2R1bGVfaXNfc3BlY2lmaWVkX2FzX25vbmU6aSgxNDEyLDMsXCJPdXRwdXRfZnJvbV9yZWZlcmVuY2VkX3Byb2plY3RfMF9pbmNsdWRlZF9iZWNhdXNlX21vZHVsZV9pc19zcGVjaWZpZWRfYXNfbm9uZV8xNDEyXCIsXCJPdXRwdXQgZnJvbSByZWZlcmVuY2VkIHByb2plY3QgJ3swfScgaW5jbHVkZWQgYmVjYXVzZSAnLS1tb2R1bGUnIGlzIHNwZWNpZmllZCBhcyAnbm9uZSdcIiksRmlsZV9pc19vdXRwdXRfZnJvbV9yZWZlcmVuY2VkX3Byb2plY3Rfc3BlY2lmaWVkX2hlcmU6aSgxNDEzLDMsXCJGaWxlX2lzX291dHB1dF9mcm9tX3JlZmVyZW5jZWRfcHJvamVjdF9zcGVjaWZpZWRfaGVyZV8xNDEzXCIsXCJGaWxlIGlzIG91dHB1dCBmcm9tIHJlZmVyZW5jZWQgcHJvamVjdCBzcGVjaWZpZWQgaGVyZS5cIiksU291cmNlX2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0XzBfaW5jbHVkZWRfYmVjYXVzZV8xX3NwZWNpZmllZDppKDE0MTQsMyxcIlNvdXJjZV9mcm9tX3JlZmVyZW5jZWRfcHJvamVjdF8wX2luY2x1ZGVkX2JlY2F1c2VfMV9zcGVjaWZpZWRfMTQxNFwiLFwiU291cmNlIGZyb20gcmVmZXJlbmNlZCBwcm9qZWN0ICd7MH0nIGluY2x1ZGVkIGJlY2F1c2UgJ3sxfScgc3BlY2lmaWVkXCIpLFNvdXJjZV9mcm9tX3JlZmVyZW5jZWRfcHJvamVjdF8wX2luY2x1ZGVkX2JlY2F1c2VfbW9kdWxlX2lzX3NwZWNpZmllZF9hc19ub25lOmkoMTQxNSwzLFwiU291cmNlX2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0XzBfaW5jbHVkZWRfYmVjYXVzZV9tb2R1bGVfaXNfc3BlY2lmaWVkX2FzX25vbmVfMTQxNVwiLFwiU291cmNlIGZyb20gcmVmZXJlbmNlZCBwcm9qZWN0ICd7MH0nIGluY2x1ZGVkIGJlY2F1c2UgJy0tbW9kdWxlJyBpcyBzcGVjaWZpZWQgYXMgJ25vbmUnXCIpLEZpbGVfaXNfc291cmNlX2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0X3NwZWNpZmllZF9oZXJlOmkoMTQxNiwzLFwiRmlsZV9pc19zb3VyY2VfZnJvbV9yZWZlcmVuY2VkX3Byb2plY3Rfc3BlY2lmaWVkX2hlcmVfMTQxNlwiLFwiRmlsZSBpcyBzb3VyY2UgZnJvbSByZWZlcmVuY2VkIHByb2plY3Qgc3BlY2lmaWVkIGhlcmUuXCIpLEVudHJ5X3BvaW50X29mX3R5cGVfbGlicmFyeV8wX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnM6aSgxNDE3LDMsXCJFbnRyeV9wb2ludF9vZl90eXBlX2xpYnJhcnlfMF9zcGVjaWZpZWRfaW5fY29tcGlsZXJPcHRpb25zXzE0MTdcIixcIkVudHJ5IHBvaW50IG9mIHR5cGUgbGlicmFyeSAnezB9JyBzcGVjaWZpZWQgaW4gY29tcGlsZXJPcHRpb25zXCIpLEVudHJ5X3BvaW50X29mX3R5cGVfbGlicmFyeV8wX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnNfd2l0aF9wYWNrYWdlSWRfMTppKDE0MTgsMyxcIkVudHJ5X3BvaW50X29mX3R5cGVfbGlicmFyeV8wX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnNfd2l0aF9wYWNrYWdlSWRfMV8xNDE4XCIsXCJFbnRyeSBwb2ludCBvZiB0eXBlIGxpYnJhcnkgJ3swfScgc3BlY2lmaWVkIGluIGNvbXBpbGVyT3B0aW9ucyB3aXRoIHBhY2thZ2VJZCAnezF9J1wiKSxGaWxlX2lzX2VudHJ5X3BvaW50X29mX3R5cGVfbGlicmFyeV9zcGVjaWZpZWRfaGVyZTppKDE0MTksMyxcIkZpbGVfaXNfZW50cnlfcG9pbnRfb2ZfdHlwZV9saWJyYXJ5X3NwZWNpZmllZF9oZXJlXzE0MTlcIixcIkZpbGUgaXMgZW50cnkgcG9pbnQgb2YgdHlwZSBsaWJyYXJ5IHNwZWNpZmllZCBoZXJlLlwiKSxFbnRyeV9wb2ludF9mb3JfaW1wbGljaXRfdHlwZV9saWJyYXJ5XzA6aSgxNDIwLDMsXCJFbnRyeV9wb2ludF9mb3JfaW1wbGljaXRfdHlwZV9saWJyYXJ5XzBfMTQyMFwiLFwiRW50cnkgcG9pbnQgZm9yIGltcGxpY2l0IHR5cGUgbGlicmFyeSAnezB9J1wiKSxFbnRyeV9wb2ludF9mb3JfaW1wbGljaXRfdHlwZV9saWJyYXJ5XzBfd2l0aF9wYWNrYWdlSWRfMTppKDE0MjEsMyxcIkVudHJ5X3BvaW50X2Zvcl9pbXBsaWNpdF90eXBlX2xpYnJhcnlfMF93aXRoX3BhY2thZ2VJZF8xXzE0MjFcIixcIkVudHJ5IHBvaW50IGZvciBpbXBsaWNpdCB0eXBlIGxpYnJhcnkgJ3swfScgd2l0aCBwYWNrYWdlSWQgJ3sxfSdcIiksTGlicmFyeV8wX3NwZWNpZmllZF9pbl9jb21waWxlck9wdGlvbnM6aSgxNDIyLDMsXCJMaWJyYXJ5XzBfc3BlY2lmaWVkX2luX2NvbXBpbGVyT3B0aW9uc18xNDIyXCIsXCJMaWJyYXJ5ICd7MH0nIHNwZWNpZmllZCBpbiBjb21waWxlck9wdGlvbnNcIiksRmlsZV9pc19saWJyYXJ5X3NwZWNpZmllZF9oZXJlOmkoMTQyMywzLFwiRmlsZV9pc19saWJyYXJ5X3NwZWNpZmllZF9oZXJlXzE0MjNcIixcIkZpbGUgaXMgbGlicmFyeSBzcGVjaWZpZWQgaGVyZS5cIiksRGVmYXVsdF9saWJyYXJ5OmkoMTQyNCwzLFwiRGVmYXVsdF9saWJyYXJ5XzE0MjRcIixcIkRlZmF1bHQgbGlicmFyeVwiKSxEZWZhdWx0X2xpYnJhcnlfZm9yX3RhcmdldF8wOmkoMTQyNSwzLFwiRGVmYXVsdF9saWJyYXJ5X2Zvcl90YXJnZXRfMF8xNDI1XCIsXCJEZWZhdWx0IGxpYnJhcnkgZm9yIHRhcmdldCAnezB9J1wiKSxGaWxlX2lzX2RlZmF1bHRfbGlicmFyeV9mb3JfdGFyZ2V0X3NwZWNpZmllZF9oZXJlOmkoMTQyNiwzLFwiRmlsZV9pc19kZWZhdWx0X2xpYnJhcnlfZm9yX3RhcmdldF9zcGVjaWZpZWRfaGVyZV8xNDI2XCIsXCJGaWxlIGlzIGRlZmF1bHQgbGlicmFyeSBmb3IgdGFyZ2V0IHNwZWNpZmllZCBoZXJlLlwiKSxSb290X2ZpbGVfc3BlY2lmaWVkX2Zvcl9jb21waWxhdGlvbjppKDE0MjcsMyxcIlJvb3RfZmlsZV9zcGVjaWZpZWRfZm9yX2NvbXBpbGF0aW9uXzE0MjdcIixcIlJvb3QgZmlsZSBzcGVjaWZpZWQgZm9yIGNvbXBpbGF0aW9uXCIpLEZpbGVfaXNfb3V0cHV0X29mX3Byb2plY3RfcmVmZXJlbmNlX3NvdXJjZV8wOmkoMTQyOCwzLFwiRmlsZV9pc19vdXRwdXRfb2ZfcHJvamVjdF9yZWZlcmVuY2Vfc291cmNlXzBfMTQyOFwiLFwiRmlsZSBpcyBvdXRwdXQgb2YgcHJvamVjdCByZWZlcmVuY2Ugc291cmNlICd7MH0nXCIpLEZpbGVfcmVkaXJlY3RzX3RvX2ZpbGVfMDppKDE0MjksMyxcIkZpbGVfcmVkaXJlY3RzX3RvX2ZpbGVfMF8xNDI5XCIsXCJGaWxlIHJlZGlyZWN0cyB0byBmaWxlICd7MH0nXCIpLFRoZV9maWxlX2lzX2luX3RoZV9wcm9ncmFtX2JlY2F1c2VfQ29sb246aSgxNDMwLDMsXCJUaGVfZmlsZV9pc19pbl90aGVfcHJvZ3JhbV9iZWNhdXNlX0NvbG9uXzE0MzBcIixcIlRoZSBmaWxlIGlzIGluIHRoZSBwcm9ncmFtIGJlY2F1c2U6XCIpLGZvcl9hd2FpdF9sb29wc19hcmVfb25seV9hbGxvd2VkX2F0X3RoZV90b3BfbGV2ZWxfb2ZfYV9maWxlX3doZW5fdGhhdF9maWxlX2lzX2FfbW9kdWxlX2J1dF90aGlzX2ZpbGVfaGFzX25vX2ltcG9ydHNfb3JfZXhwb3J0c19Db25zaWRlcl9hZGRpbmdfYW5fZW1wdHlfZXhwb3J0X3RvX21ha2VfdGhpc19maWxlX2FfbW9kdWxlOmkoMTQzMSwxLFwiZm9yX2F3YWl0X2xvb3BzX2FyZV9vbmx5X2FsbG93ZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX2ZpbGVfd2hlbl90aGF0X2ZpbGVfaXNfYV9tb2R1bGVfYnV0X3RoaXNfZmlsZV8xNDMxXCIsXCInZm9yIGF3YWl0JyBsb29wcyBhcmUgb25seSBhbGxvd2VkIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBmaWxlIHdoZW4gdGhhdCBmaWxlIGlzIGEgbW9kdWxlLCBidXQgdGhpcyBmaWxlIGhhcyBubyBpbXBvcnRzIG9yIGV4cG9ydHMuIENvbnNpZGVyIGFkZGluZyBhbiBlbXB0eSAnZXhwb3J0IHt9JyB0byBtYWtlIHRoaXMgZmlsZSBhIG1vZHVsZS5cIiksVG9wX2xldmVsX2Zvcl9hd2FpdF9sb29wc19hcmVfb25seV9hbGxvd2VkX3doZW5fdGhlX21vZHVsZV9vcHRpb25faXNfc2V0X3RvX2VzMjAyMl9lc25leHRfc3lzdGVtX25vZGUxNl9vcl9ub2RlbmV4dF9hbmRfdGhlX3RhcmdldF9vcHRpb25faXNfc2V0X3RvX2VzMjAxN19vcl9oaWdoZXI6aSgxNDMyLDEsXCJUb3BfbGV2ZWxfZm9yX2F3YWl0X2xvb3BzX2FyZV9vbmx5X2FsbG93ZWRfd2hlbl90aGVfbW9kdWxlX29wdGlvbl9pc19zZXRfdG9fZXMyMDIyX2VzbmV4dF9zeXN0ZW1fbm9kXzE0MzJcIixcIlRvcC1sZXZlbCAnZm9yIGF3YWl0JyBsb29wcyBhcmUgb25seSBhbGxvd2VkIHdoZW4gdGhlICdtb2R1bGUnIG9wdGlvbiBpcyBzZXQgdG8gJ2VzMjAyMicsICdlc25leHQnLCAnc3lzdGVtJywgJ25vZGUxNicsIG9yICdub2RlbmV4dCcsIGFuZCB0aGUgJ3RhcmdldCcgb3B0aW9uIGlzIHNldCB0byAnZXMyMDE3JyBvciBoaWdoZXIuXCIpLE5laXRoZXJfZGVjb3JhdG9yc19ub3JfbW9kaWZpZXJzX21heV9iZV9hcHBsaWVkX3RvX3RoaXNfcGFyYW1ldGVyczppKDE0MzMsMSxcIk5laXRoZXJfZGVjb3JhdG9yc19ub3JfbW9kaWZpZXJzX21heV9iZV9hcHBsaWVkX3RvX3RoaXNfcGFyYW1ldGVyc18xNDMzXCIsXCJOZWl0aGVyIGRlY29yYXRvcnMgbm9yIG1vZGlmaWVycyBtYXkgYmUgYXBwbGllZCB0byAndGhpcycgcGFyYW1ldGVycy5cIiksVW5leHBlY3RlZF9rZXl3b3JkX29yX2lkZW50aWZpZXI6aSgxNDM0LDEsXCJVbmV4cGVjdGVkX2tleXdvcmRfb3JfaWRlbnRpZmllcl8xNDM0XCIsXCJVbmV4cGVjdGVkIGtleXdvcmQgb3IgaWRlbnRpZmllci5cIiksVW5rbm93bl9rZXl3b3JkX29yX2lkZW50aWZpZXJfRGlkX3lvdV9tZWFuXzA6aSgxNDM1LDEsXCJVbmtub3duX2tleXdvcmRfb3JfaWRlbnRpZmllcl9EaWRfeW91X21lYW5fMF8xNDM1XCIsXCJVbmtub3duIGtleXdvcmQgb3IgaWRlbnRpZmllci4gRGlkIHlvdSBtZWFuICd7MH0nP1wiKSxEZWNvcmF0b3JzX211c3RfcHJlY2VkZV90aGVfbmFtZV9hbmRfYWxsX2tleXdvcmRzX29mX3Byb3BlcnR5X2RlY2xhcmF0aW9uczppKDE0MzYsMSxcIkRlY29yYXRvcnNfbXVzdF9wcmVjZWRlX3RoZV9uYW1lX2FuZF9hbGxfa2V5d29yZHNfb2ZfcHJvcGVydHlfZGVjbGFyYXRpb25zXzE0MzZcIixcIkRlY29yYXRvcnMgbXVzdCBwcmVjZWRlIHRoZSBuYW1lIGFuZCBhbGwga2V5d29yZHMgb2YgcHJvcGVydHkgZGVjbGFyYXRpb25zLlwiKSxOYW1lc3BhY2VfbXVzdF9iZV9naXZlbl9hX25hbWU6aSgxNDM3LDEsXCJOYW1lc3BhY2VfbXVzdF9iZV9naXZlbl9hX25hbWVfMTQzN1wiLFwiTmFtZXNwYWNlIG11c3QgYmUgZ2l2ZW4gYSBuYW1lLlwiKSxJbnRlcmZhY2VfbXVzdF9iZV9naXZlbl9hX25hbWU6aSgxNDM4LDEsXCJJbnRlcmZhY2VfbXVzdF9iZV9naXZlbl9hX25hbWVfMTQzOFwiLFwiSW50ZXJmYWNlIG11c3QgYmUgZ2l2ZW4gYSBuYW1lLlwiKSxUeXBlX2FsaWFzX211c3RfYmVfZ2l2ZW5fYV9uYW1lOmkoMTQzOSwxLFwiVHlwZV9hbGlhc19tdXN0X2JlX2dpdmVuX2FfbmFtZV8xNDM5XCIsXCJUeXBlIGFsaWFzIG11c3QgYmUgZ2l2ZW4gYSBuYW1lLlwiKSxWYXJpYWJsZV9kZWNsYXJhdGlvbl9ub3RfYWxsb3dlZF9hdF90aGlzX2xvY2F0aW9uOmkoMTQ0MCwxLFwiVmFyaWFibGVfZGVjbGFyYXRpb25fbm90X2FsbG93ZWRfYXRfdGhpc19sb2NhdGlvbl8xNDQwXCIsXCJWYXJpYWJsZSBkZWNsYXJhdGlvbiBub3QgYWxsb3dlZCBhdCB0aGlzIGxvY2F0aW9uLlwiKSxDYW5ub3Rfc3RhcnRfYV9mdW5jdGlvbl9jYWxsX2luX2FfdHlwZV9hbm5vdGF0aW9uOmkoMTQ0MSwxLFwiQ2Fubm90X3N0YXJ0X2FfZnVuY3Rpb25fY2FsbF9pbl9hX3R5cGVfYW5ub3RhdGlvbl8xNDQxXCIsXCJDYW5ub3Qgc3RhcnQgYSBmdW5jdGlvbiBjYWxsIGluIGEgdHlwZSBhbm5vdGF0aW9uLlwiKSxFeHBlY3RlZF9mb3JfcHJvcGVydHlfaW5pdGlhbGl6ZXI6aSgxNDQyLDEsXCJFeHBlY3RlZF9mb3JfcHJvcGVydHlfaW5pdGlhbGl6ZXJfMTQ0MlwiLFwiRXhwZWN0ZWQgJz0nIGZvciBwcm9wZXJ0eSBpbml0aWFsaXplci5cIiksTW9kdWxlX2RlY2xhcmF0aW9uX25hbWVzX21heV9vbmx5X3VzZV9vcl9xdW90ZWRfc3RyaW5nczppKDE0NDMsMSxcIk1vZHVsZV9kZWNsYXJhdGlvbl9uYW1lc19tYXlfb25seV91c2Vfb3JfcXVvdGVkX3N0cmluZ3NfMTQ0M1wiLGBNb2R1bGUgZGVjbGFyYXRpb24gbmFtZXMgbWF5IG9ubHkgdXNlICcgb3IgXCIgcXVvdGVkIHN0cmluZ3MuYCksXzBfaXNfYV90eXBlX2FuZF9tdXN0X2JlX2ltcG9ydGVkX3VzaW5nX2FfdHlwZV9vbmx5X2ltcG9ydF93aGVuX3ByZXNlcnZlVmFsdWVJbXBvcnRzX2FuZF9pc29sYXRlZE1vZHVsZXNfYXJlX2JvdGhfZW5hYmxlZDppKDE0NDQsMSxcIl8wX2lzX2FfdHlwZV9hbmRfbXVzdF9iZV9pbXBvcnRlZF91c2luZ19hX3R5cGVfb25seV9pbXBvcnRfd2hlbl9wcmVzZXJ2ZVZhbHVlSW1wb3J0c19hbmRfaXNvbGF0ZWRNb2RfMTQ0NFwiLFwiJ3swfScgaXMgYSB0eXBlIGFuZCBtdXN0IGJlIGltcG9ydGVkIHVzaW5nIGEgdHlwZS1vbmx5IGltcG9ydCB3aGVuICdwcmVzZXJ2ZVZhbHVlSW1wb3J0cycgYW5kICdpc29sYXRlZE1vZHVsZXMnIGFyZSBib3RoIGVuYWJsZWQuXCIpLF8wX3Jlc29sdmVzX3RvX2FfdHlwZV9vbmx5X2RlY2xhcmF0aW9uX2FuZF9tdXN0X2JlX2ltcG9ydGVkX3VzaW5nX2FfdHlwZV9vbmx5X2ltcG9ydF93aGVuX3ByZXNlcnZlVmFsdWVJbXBvcnRzX2FuZF9pc29sYXRlZE1vZHVsZXNfYXJlX2JvdGhfZW5hYmxlZDppKDE0NDYsMSxcIl8wX3Jlc29sdmVzX3RvX2FfdHlwZV9vbmx5X2RlY2xhcmF0aW9uX2FuZF9tdXN0X2JlX2ltcG9ydGVkX3VzaW5nX2FfdHlwZV9vbmx5X2ltcG9ydF93aGVuX3ByZXNlcnZlVmFfMTQ0NlwiLFwiJ3swfScgcmVzb2x2ZXMgdG8gYSB0eXBlLW9ubHkgZGVjbGFyYXRpb24gYW5kIG11c3QgYmUgaW1wb3J0ZWQgdXNpbmcgYSB0eXBlLW9ubHkgaW1wb3J0IHdoZW4gJ3ByZXNlcnZlVmFsdWVJbXBvcnRzJyBhbmQgJ2lzb2xhdGVkTW9kdWxlcycgYXJlIGJvdGggZW5hYmxlZC5cIiksXzBfcmVzb2x2ZXNfdG9fYV90eXBlX29ubHlfZGVjbGFyYXRpb25fYW5kX211c3RfYmVfcmVfZXhwb3J0ZWRfdXNpbmdfYV90eXBlX29ubHlfcmVfZXhwb3J0X3doZW5fMV9pc19lbmFibGVkOmkoMTQ0OCwxLFwiXzBfcmVzb2x2ZXNfdG9fYV90eXBlX29ubHlfZGVjbGFyYXRpb25fYW5kX211c3RfYmVfcmVfZXhwb3J0ZWRfdXNpbmdfYV90eXBlX29ubHlfcmVfZXhwb3J0X3doZW5fMV9pc18xNDQ4XCIsXCInezB9JyByZXNvbHZlcyB0byBhIHR5cGUtb25seSBkZWNsYXJhdGlvbiBhbmQgbXVzdCBiZSByZS1leHBvcnRlZCB1c2luZyBhIHR5cGUtb25seSByZS1leHBvcnQgd2hlbiAnezF9JyBpcyBlbmFibGVkLlwiKSxQcmVzZXJ2ZV91bnVzZWRfaW1wb3J0ZWRfdmFsdWVzX2luX3RoZV9KYXZhU2NyaXB0X291dHB1dF90aGF0X3dvdWxkX290aGVyd2lzZV9iZV9yZW1vdmVkOmkoMTQ0OSwzLFwiUHJlc2VydmVfdW51c2VkX2ltcG9ydGVkX3ZhbHVlc19pbl90aGVfSmF2YVNjcmlwdF9vdXRwdXRfdGhhdF93b3VsZF9vdGhlcndpc2VfYmVfcmVtb3ZlZF8xNDQ5XCIsXCJQcmVzZXJ2ZSB1bnVzZWQgaW1wb3J0ZWQgdmFsdWVzIGluIHRoZSBKYXZhU2NyaXB0IG91dHB1dCB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSByZW1vdmVkLlwiKSxEeW5hbWljX2ltcG9ydHNfY2FuX29ubHlfYWNjZXB0X2FfbW9kdWxlX3NwZWNpZmllcl9hbmRfYW5fb3B0aW9uYWxfYXNzZXJ0aW9uX2FzX2FyZ3VtZW50czppKDE0NTAsMyxcIkR5bmFtaWNfaW1wb3J0c19jYW5fb25seV9hY2NlcHRfYV9tb2R1bGVfc3BlY2lmaWVyX2FuZF9hbl9vcHRpb25hbF9hc3NlcnRpb25fYXNfYXJndW1lbnRzXzE0NTBcIixcIkR5bmFtaWMgaW1wb3J0cyBjYW4gb25seSBhY2NlcHQgYSBtb2R1bGUgc3BlY2lmaWVyIGFuZCBhbiBvcHRpb25hbCBhc3NlcnRpb24gYXMgYXJndW1lbnRzXCIpLFByaXZhdGVfaWRlbnRpZmllcnNfYXJlX29ubHlfYWxsb3dlZF9pbl9jbGFzc19ib2RpZXNfYW5kX21heV9vbmx5X2JlX3VzZWRfYXNfcGFydF9vZl9hX2NsYXNzX21lbWJlcl9kZWNsYXJhdGlvbl9wcm9wZXJ0eV9hY2Nlc3Nfb3Jfb25fdGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2luX2V4cHJlc3Npb246aSgxNDUxLDEsXCJQcml2YXRlX2lkZW50aWZpZXJzX2FyZV9vbmx5X2FsbG93ZWRfaW5fY2xhc3NfYm9kaWVzX2FuZF9tYXlfb25seV9iZV91c2VkX2FzX3BhcnRfb2ZfYV9jbGFzc19tZW1iZXJfXzE0NTFcIixcIlByaXZhdGUgaWRlbnRpZmllcnMgYXJlIG9ubHkgYWxsb3dlZCBpbiBjbGFzcyBib2RpZXMgYW5kIG1heSBvbmx5IGJlIHVzZWQgYXMgcGFydCBvZiBhIGNsYXNzIG1lbWJlciBkZWNsYXJhdGlvbiwgcHJvcGVydHkgYWNjZXNzLCBvciBvbiB0aGUgbGVmdC1oYW5kLXNpZGUgb2YgYW4gJ2luJyBleHByZXNzaW9uXCIpLHJlc29sdXRpb25fbW9kZV9hc3NlcnRpb25zX2FyZV9vbmx5X3N1cHBvcnRlZF93aGVuX21vZHVsZVJlc29sdXRpb25faXNfbm9kZTE2X29yX25vZGVuZXh0OmkoMTQ1MiwxLFwicmVzb2x1dGlvbl9tb2RlX2Fzc2VydGlvbnNfYXJlX29ubHlfc3VwcG9ydGVkX3doZW5fbW9kdWxlUmVzb2x1dGlvbl9pc19ub2RlMTZfb3Jfbm9kZW5leHRfMTQ1MlwiLFwiJ3Jlc29sdXRpb24tbW9kZScgYXNzZXJ0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgd2hlbiBgbW9kdWxlUmVzb2x1dGlvbmAgaXMgYG5vZGUxNmAgb3IgYG5vZGVuZXh0YC5cIikscmVzb2x1dGlvbl9tb2RlX3Nob3VsZF9iZV9laXRoZXJfcmVxdWlyZV9vcl9pbXBvcnQ6aSgxNDUzLDEsXCJyZXNvbHV0aW9uX21vZGVfc2hvdWxkX2JlX2VpdGhlcl9yZXF1aXJlX29yX2ltcG9ydF8xNDUzXCIsXCJgcmVzb2x1dGlvbi1tb2RlYCBzaG91bGQgYmUgZWl0aGVyIGByZXF1aXJlYCBvciBgaW1wb3J0YC5cIikscmVzb2x1dGlvbl9tb2RlX2Nhbl9vbmx5X2JlX3NldF9mb3JfdHlwZV9vbmx5X2ltcG9ydHM6aSgxNDU0LDEsXCJyZXNvbHV0aW9uX21vZGVfY2FuX29ubHlfYmVfc2V0X2Zvcl90eXBlX29ubHlfaW1wb3J0c18xNDU0XCIsXCJgcmVzb2x1dGlvbi1tb2RlYCBjYW4gb25seSBiZSBzZXQgZm9yIHR5cGUtb25seSBpbXBvcnRzLlwiKSxyZXNvbHV0aW9uX21vZGVfaXNfdGhlX29ubHlfdmFsaWRfa2V5X2Zvcl90eXBlX2ltcG9ydF9hc3NlcnRpb25zOmkoMTQ1NSwxLFwicmVzb2x1dGlvbl9tb2RlX2lzX3RoZV9vbmx5X3ZhbGlkX2tleV9mb3JfdHlwZV9pbXBvcnRfYXNzZXJ0aW9uc18xNDU1XCIsXCJgcmVzb2x1dGlvbi1tb2RlYCBpcyB0aGUgb25seSB2YWxpZCBrZXkgZm9yIHR5cGUgaW1wb3J0IGFzc2VydGlvbnMuXCIpLFR5cGVfaW1wb3J0X2Fzc2VydGlvbnNfc2hvdWxkX2hhdmVfZXhhY3RseV9vbmVfa2V5X3Jlc29sdXRpb25fbW9kZV93aXRoX3ZhbHVlX2ltcG9ydF9vcl9yZXF1aXJlOmkoMTQ1NiwxLFwiVHlwZV9pbXBvcnRfYXNzZXJ0aW9uc19zaG91bGRfaGF2ZV9leGFjdGx5X29uZV9rZXlfcmVzb2x1dGlvbl9tb2RlX3dpdGhfdmFsdWVfaW1wb3J0X29yX3JlcXVpcmVfMTQ1NlwiLFwiVHlwZSBpbXBvcnQgYXNzZXJ0aW9ucyBzaG91bGQgaGF2ZSBleGFjdGx5IG9uZSBrZXkgLSBgcmVzb2x1dGlvbi1tb2RlYCAtIHdpdGggdmFsdWUgYGltcG9ydGAgb3IgYHJlcXVpcmVgLlwiKSxNYXRjaGVkX2J5X2RlZmF1bHRfaW5jbHVkZV9wYXR0ZXJuX0FzdGVyaXNrX0FzdGVyaXNrX1NsYXNoX0FzdGVyaXNrOmkoMTQ1NywzLFwiTWF0Y2hlZF9ieV9kZWZhdWx0X2luY2x1ZGVfcGF0dGVybl9Bc3Rlcmlza19Bc3Rlcmlza19TbGFzaF9Bc3Rlcmlza18xNDU3XCIsXCJNYXRjaGVkIGJ5IGRlZmF1bHQgaW5jbHVkZSBwYXR0ZXJuICcqKi8qJ1wiKSxGaWxlX2lzX0VDTUFTY3JpcHRfbW9kdWxlX2JlY2F1c2VfMF9oYXNfZmllbGRfdHlwZV93aXRoX3ZhbHVlX21vZHVsZTppKDE0NTgsMyxcIkZpbGVfaXNfRUNNQVNjcmlwdF9tb2R1bGVfYmVjYXVzZV8wX2hhc19maWVsZF90eXBlX3dpdGhfdmFsdWVfbW9kdWxlXzE0NThcIixgRmlsZSBpcyBFQ01BU2NyaXB0IG1vZHVsZSBiZWNhdXNlICd7MH0nIGhhcyBmaWVsZCBcInR5cGVcIiB3aXRoIHZhbHVlIFwibW9kdWxlXCJgKSxGaWxlX2lzX0NvbW1vbkpTX21vZHVsZV9iZWNhdXNlXzBfaGFzX2ZpZWxkX3R5cGVfd2hvc2VfdmFsdWVfaXNfbm90X21vZHVsZTppKDE0NTksMyxcIkZpbGVfaXNfQ29tbW9uSlNfbW9kdWxlX2JlY2F1c2VfMF9oYXNfZmllbGRfdHlwZV93aG9zZV92YWx1ZV9pc19ub3RfbW9kdWxlXzE0NTlcIixgRmlsZSBpcyBDb21tb25KUyBtb2R1bGUgYmVjYXVzZSAnezB9JyBoYXMgZmllbGQgXCJ0eXBlXCIgd2hvc2UgdmFsdWUgaXMgbm90IFwibW9kdWxlXCJgKSxGaWxlX2lzX0NvbW1vbkpTX21vZHVsZV9iZWNhdXNlXzBfZG9lc19ub3RfaGF2ZV9maWVsZF90eXBlOmkoMTQ2MCwzLFwiRmlsZV9pc19Db21tb25KU19tb2R1bGVfYmVjYXVzZV8wX2RvZXNfbm90X2hhdmVfZmllbGRfdHlwZV8xNDYwXCIsYEZpbGUgaXMgQ29tbW9uSlMgbW9kdWxlIGJlY2F1c2UgJ3swfScgZG9lcyBub3QgaGF2ZSBmaWVsZCBcInR5cGVcImApLEZpbGVfaXNfQ29tbW9uSlNfbW9kdWxlX2JlY2F1c2VfcGFja2FnZV9qc29uX3dhc19ub3RfZm91bmQ6aSgxNDYxLDMsXCJGaWxlX2lzX0NvbW1vbkpTX21vZHVsZV9iZWNhdXNlX3BhY2thZ2VfanNvbl93YXNfbm90X2ZvdW5kXzE0NjFcIixcIkZpbGUgaXMgQ29tbW9uSlMgbW9kdWxlIGJlY2F1c2UgJ3BhY2thZ2UuanNvbicgd2FzIG5vdCBmb3VuZFwiKSxUaGVfaW1wb3J0X21ldGFfbWV0YV9wcm9wZXJ0eV9pc19ub3RfYWxsb3dlZF9pbl9maWxlc193aGljaF93aWxsX2J1aWxkX2ludG9fQ29tbW9uSlNfb3V0cHV0OmkoMTQ3MCwxLFwiVGhlX2ltcG9ydF9tZXRhX21ldGFfcHJvcGVydHlfaXNfbm90X2FsbG93ZWRfaW5fZmlsZXNfd2hpY2hfd2lsbF9idWlsZF9pbnRvX0NvbW1vbkpTX291dHB1dF8xNDcwXCIsXCJUaGUgJ2ltcG9ydC5tZXRhJyBtZXRhLXByb3BlcnR5IGlzIG5vdCBhbGxvd2VkIGluIGZpbGVzIHdoaWNoIHdpbGwgYnVpbGQgaW50byBDb21tb25KUyBvdXRwdXQuXCIpLE1vZHVsZV8wX2Nhbm5vdF9iZV9pbXBvcnRlZF91c2luZ190aGlzX2NvbnN0cnVjdF9UaGVfc3BlY2lmaWVyX29ubHlfcmVzb2x2ZXNfdG9fYW5fRVNfbW9kdWxlX3doaWNoX2Nhbm5vdF9iZV9pbXBvcnRlZF93aXRoX3JlcXVpcmVfVXNlX2FuX0VDTUFTY3JpcHRfaW1wb3J0X2luc3RlYWQ6aSgxNDcxLDEsXCJNb2R1bGVfMF9jYW5ub3RfYmVfaW1wb3J0ZWRfdXNpbmdfdGhpc19jb25zdHJ1Y3RfVGhlX3NwZWNpZmllcl9vbmx5X3Jlc29sdmVzX3RvX2FuX0VTX21vZHVsZV93aGljaF9jXzE0NzFcIixcIk1vZHVsZSAnezB9JyBjYW5ub3QgYmUgaW1wb3J0ZWQgdXNpbmcgdGhpcyBjb25zdHJ1Y3QuIFRoZSBzcGVjaWZpZXIgb25seSByZXNvbHZlcyB0byBhbiBFUyBtb2R1bGUsIHdoaWNoIGNhbm5vdCBiZSBpbXBvcnRlZCB3aXRoICdyZXF1aXJlJy4gVXNlIGFuIEVDTUFTY3JpcHQgaW1wb3J0IGluc3RlYWQuXCIpLGNhdGNoX29yX2ZpbmFsbHlfZXhwZWN0ZWQ6aSgxNDcyLDEsXCJjYXRjaF9vcl9maW5hbGx5X2V4cGVjdGVkXzE0NzJcIixcIidjYXRjaCcgb3IgJ2ZpbmFsbHknIGV4cGVjdGVkLlwiKSxBbl9pbXBvcnRfZGVjbGFyYXRpb25fY2FuX29ubHlfYmVfdXNlZF9hdF90aGVfdG9wX2xldmVsX29mX2FfbW9kdWxlOmkoMTQ3MywxLFwiQW5faW1wb3J0X2RlY2xhcmF0aW9uX2Nhbl9vbmx5X2JlX3VzZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX21vZHVsZV8xNDczXCIsXCJBbiBpbXBvcnQgZGVjbGFyYXRpb24gY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlLlwiKSxBbl9leHBvcnRfZGVjbGFyYXRpb25fY2FuX29ubHlfYmVfdXNlZF9hdF90aGVfdG9wX2xldmVsX29mX2FfbW9kdWxlOmkoMTQ3NCwxLFwiQW5fZXhwb3J0X2RlY2xhcmF0aW9uX2Nhbl9vbmx5X2JlX3VzZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX21vZHVsZV8xNDc0XCIsXCJBbiBleHBvcnQgZGVjbGFyYXRpb24gY2FuIG9ubHkgYmUgdXNlZCBhdCB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlLlwiKSxDb250cm9sX3doYXRfbWV0aG9kX2lzX3VzZWRfdG9fZGV0ZWN0X21vZHVsZV9mb3JtYXRfSlNfZmlsZXM6aSgxNDc1LDMsXCJDb250cm9sX3doYXRfbWV0aG9kX2lzX3VzZWRfdG9fZGV0ZWN0X21vZHVsZV9mb3JtYXRfSlNfZmlsZXNfMTQ3NVwiLFwiQ29udHJvbCB3aGF0IG1ldGhvZCBpcyB1c2VkIHRvIGRldGVjdCBtb2R1bGUtZm9ybWF0IEpTIGZpbGVzLlwiKSxhdXRvX0NvbG9uX1RyZWF0X2ZpbGVzX3dpdGhfaW1wb3J0c19leHBvcnRzX2ltcG9ydF9tZXRhX2pzeF93aXRoX2pzeF9Db2xvbl9yZWFjdF9qc3hfb3JfZXNtX2Zvcm1hdF93aXRoX21vZHVsZV9Db2xvbl9ub2RlMTZfYXNfbW9kdWxlczppKDE0NzYsMyxcImF1dG9fQ29sb25fVHJlYXRfZmlsZXNfd2l0aF9pbXBvcnRzX2V4cG9ydHNfaW1wb3J0X21ldGFfanN4X3dpdGhfanN4X0NvbG9uX3JlYWN0X2pzeF9vcl9lc21fZm9ybWF0X3dfMTQ3NlwiLCdcImF1dG9cIjogVHJlYXQgZmlsZXMgd2l0aCBpbXBvcnRzLCBleHBvcnRzLCBpbXBvcnQubWV0YSwganN4ICh3aXRoIGpzeDogcmVhY3QtanN4KSwgb3IgZXNtIGZvcm1hdCAod2l0aCBtb2R1bGU6IG5vZGUxNispIGFzIG1vZHVsZXMuJyksQW5faW5zdGFudGlhdGlvbl9leHByZXNzaW9uX2Nhbm5vdF9iZV9mb2xsb3dlZF9ieV9hX3Byb3BlcnR5X2FjY2VzczppKDE0NzcsMSxcIkFuX2luc3RhbnRpYXRpb25fZXhwcmVzc2lvbl9jYW5ub3RfYmVfZm9sbG93ZWRfYnlfYV9wcm9wZXJ0eV9hY2Nlc3NfMTQ3N1wiLFwiQW4gaW5zdGFudGlhdGlvbiBleHByZXNzaW9uIGNhbm5vdCBiZSBmb2xsb3dlZCBieSBhIHByb3BlcnR5IGFjY2Vzcy5cIiksSWRlbnRpZmllcl9vcl9zdHJpbmdfbGl0ZXJhbF9leHBlY3RlZDppKDE0NzgsMSxcIklkZW50aWZpZXJfb3Jfc3RyaW5nX2xpdGVyYWxfZXhwZWN0ZWRfMTQ3OFwiLFwiSWRlbnRpZmllciBvciBzdHJpbmcgbGl0ZXJhbCBleHBlY3RlZC5cIiksVGhlX2N1cnJlbnRfZmlsZV9pc19hX0NvbW1vbkpTX21vZHVsZV93aG9zZV9pbXBvcnRzX3dpbGxfcHJvZHVjZV9yZXF1aXJlX2NhbGxzX2hvd2V2ZXJfdGhlX3JlZmVyZW5jZWRfZmlsZV9pc19hbl9FQ01BU2NyaXB0X21vZHVsZV9hbmRfY2Fubm90X2JlX2ltcG9ydGVkX3dpdGhfcmVxdWlyZV9Db25zaWRlcl93cml0aW5nX2FfZHluYW1pY19pbXBvcnRfMF9jYWxsX2luc3RlYWQ6aSgxNDc5LDEsXCJUaGVfY3VycmVudF9maWxlX2lzX2FfQ29tbW9uSlNfbW9kdWxlX3dob3NlX2ltcG9ydHNfd2lsbF9wcm9kdWNlX3JlcXVpcmVfY2FsbHNfaG93ZXZlcl90aGVfcmVmZXJlbmNlXzE0NzlcIixgVGhlIGN1cnJlbnQgZmlsZSBpcyBhIENvbW1vbkpTIG1vZHVsZSB3aG9zZSBpbXBvcnRzIHdpbGwgcHJvZHVjZSAncmVxdWlyZScgY2FsbHM7IGhvd2V2ZXIsIHRoZSByZWZlcmVuY2VkIGZpbGUgaXMgYW4gRUNNQVNjcmlwdCBtb2R1bGUgYW5kIGNhbm5vdCBiZSBpbXBvcnRlZCB3aXRoICdyZXF1aXJlJy4gQ29uc2lkZXIgd3JpdGluZyBhIGR5bmFtaWMgJ2ltcG9ydChcInswfVwiKScgY2FsbCBpbnN0ZWFkLmApLFRvX2NvbnZlcnRfdGhpc19maWxlX3RvX2FuX0VDTUFTY3JpcHRfbW9kdWxlX2NoYW5nZV9pdHNfZmlsZV9leHRlbnNpb25fdG9fMF9vcl9jcmVhdGVfYV9sb2NhbF9wYWNrYWdlX2pzb25fZmlsZV93aXRoX3R5cGVfQ29sb25fbW9kdWxlOmkoMTQ4MCwzLFwiVG9fY29udmVydF90aGlzX2ZpbGVfdG9fYW5fRUNNQVNjcmlwdF9tb2R1bGVfY2hhbmdlX2l0c19maWxlX2V4dGVuc2lvbl90b18wX29yX2NyZWF0ZV9hX2xvY2FsX3BhY2thZ18xNDgwXCIsJ1RvIGNvbnZlcnQgdGhpcyBmaWxlIHRvIGFuIEVDTUFTY3JpcHQgbW9kdWxlLCBjaGFuZ2UgaXRzIGZpbGUgZXh0ZW5zaW9uIHRvIFxcJ3swfVxcJyBvciBjcmVhdGUgYSBsb2NhbCBwYWNrYWdlLmpzb24gZmlsZSB3aXRoIGB7IFwidHlwZVwiOiBcIm1vZHVsZVwiIH1gLicpLFRvX2NvbnZlcnRfdGhpc19maWxlX3RvX2FuX0VDTUFTY3JpcHRfbW9kdWxlX2NoYW5nZV9pdHNfZmlsZV9leHRlbnNpb25fdG9fMF9vcl9hZGRfdGhlX2ZpZWxkX3R5cGVfQ29sb25fbW9kdWxlX3RvXzE6aSgxNDgxLDMsXCJUb19jb252ZXJ0X3RoaXNfZmlsZV90b19hbl9FQ01BU2NyaXB0X21vZHVsZV9jaGFuZ2VfaXRzX2ZpbGVfZXh0ZW5zaW9uX3RvXzBfb3JfYWRkX3RoZV9maWVsZF90eXBlX0NvXzE0ODFcIixgVG8gY29udmVydCB0aGlzIGZpbGUgdG8gYW4gRUNNQVNjcmlwdCBtb2R1bGUsIGNoYW5nZSBpdHMgZmlsZSBleHRlbnNpb24gdG8gJ3swfScsIG9yIGFkZCB0aGUgZmllbGQgXFxgXCJ0eXBlXCI6IFwibW9kdWxlXCJcXGAgdG8gJ3sxfScuYCksVG9fY29udmVydF90aGlzX2ZpbGVfdG9fYW5fRUNNQVNjcmlwdF9tb2R1bGVfYWRkX3RoZV9maWVsZF90eXBlX0NvbG9uX21vZHVsZV90b18wOmkoMTQ4MiwzLFwiVG9fY29udmVydF90aGlzX2ZpbGVfdG9fYW5fRUNNQVNjcmlwdF9tb2R1bGVfYWRkX3RoZV9maWVsZF90eXBlX0NvbG9uX21vZHVsZV90b18wXzE0ODJcIiwnVG8gY29udmVydCB0aGlzIGZpbGUgdG8gYW4gRUNNQVNjcmlwdCBtb2R1bGUsIGFkZCB0aGUgZmllbGQgYFwidHlwZVwiOiBcIm1vZHVsZVwiYCB0byBcXCd7MH1cXCcuJyksVG9fY29udmVydF90aGlzX2ZpbGVfdG9fYW5fRUNNQVNjcmlwdF9tb2R1bGVfY3JlYXRlX2FfbG9jYWxfcGFja2FnZV9qc29uX2ZpbGVfd2l0aF90eXBlX0NvbG9uX21vZHVsZTppKDE0ODMsMyxcIlRvX2NvbnZlcnRfdGhpc19maWxlX3RvX2FuX0VDTUFTY3JpcHRfbW9kdWxlX2NyZWF0ZV9hX2xvY2FsX3BhY2thZ2VfanNvbl9maWxlX3dpdGhfdHlwZV9Db2xvbl9tb2R1bGVfMTQ4M1wiLCdUbyBjb252ZXJ0IHRoaXMgZmlsZSB0byBhbiBFQ01BU2NyaXB0IG1vZHVsZSwgY3JlYXRlIGEgbG9jYWwgcGFja2FnZS5qc29uIGZpbGUgd2l0aCBgeyBcInR5cGVcIjogXCJtb2R1bGVcIiB9YC4nKSxfMF9pc19hX3R5cGVfYW5kX211c3RfYmVfaW1wb3J0ZWRfdXNpbmdfYV90eXBlX29ubHlfaW1wb3J0X3doZW5fdmVyYmF0aW1Nb2R1bGVTeW50YXhfaXNfZW5hYmxlZDppKDE0ODQsMSxcIl8wX2lzX2FfdHlwZV9hbmRfbXVzdF9iZV9pbXBvcnRlZF91c2luZ19hX3R5cGVfb25seV9pbXBvcnRfd2hlbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9pc19lbmFibGVkXzE0ODRcIixcIid7MH0nIGlzIGEgdHlwZSBhbmQgbXVzdCBiZSBpbXBvcnRlZCB1c2luZyBhIHR5cGUtb25seSBpbXBvcnQgd2hlbiAndmVyYmF0aW1Nb2R1bGVTeW50YXgnIGlzIGVuYWJsZWQuXCIpLF8wX3Jlc29sdmVzX3RvX2FfdHlwZV9vbmx5X2RlY2xhcmF0aW9uX2FuZF9tdXN0X2JlX2ltcG9ydGVkX3VzaW5nX2FfdHlwZV9vbmx5X2ltcG9ydF93aGVuX3ZlcmJhdGltTW9kdWxlU3ludGF4X2lzX2VuYWJsZWQ6aSgxNDg1LDEsXCJfMF9yZXNvbHZlc190b19hX3R5cGVfb25seV9kZWNsYXJhdGlvbl9hbmRfbXVzdF9iZV9pbXBvcnRlZF91c2luZ19hX3R5cGVfb25seV9pbXBvcnRfd2hlbl92ZXJiYXRpbU1vXzE0ODVcIixcIid7MH0nIHJlc29sdmVzIHRvIGEgdHlwZS1vbmx5IGRlY2xhcmF0aW9uIGFuZCBtdXN0IGJlIGltcG9ydGVkIHVzaW5nIGEgdHlwZS1vbmx5IGltcG9ydCB3aGVuICd2ZXJiYXRpbU1vZHVsZVN5bnRheCcgaXMgZW5hYmxlZC5cIiksRGVjb3JhdG9yX3VzZWRfYmVmb3JlX2V4cG9ydF9oZXJlOmkoMTQ4NiwxLFwiRGVjb3JhdG9yX3VzZWRfYmVmb3JlX2V4cG9ydF9oZXJlXzE0ODZcIixcIkRlY29yYXRvciB1c2VkIGJlZm9yZSAnZXhwb3J0JyBoZXJlLlwiKSxPY3RhbF9lc2NhcGVfc2VxdWVuY2VzX2FyZV9ub3RfYWxsb3dlZF9Vc2VfdGhlX3N5bnRheF8wOmkoMTQ4NywxLFwiT2N0YWxfZXNjYXBlX3NlcXVlbmNlc19hcmVfbm90X2FsbG93ZWRfVXNlX3RoZV9zeW50YXhfMF8xNDg3XCIsXCJPY3RhbCBlc2NhcGUgc2VxdWVuY2VzIGFyZSBub3QgYWxsb3dlZC4gVXNlIHRoZSBzeW50YXggJ3swfScuXCIpLEVzY2FwZV9zZXF1ZW5jZV8wX2lzX25vdF9hbGxvd2VkOmkoMTQ4OCwxLFwiRXNjYXBlX3NlcXVlbmNlXzBfaXNfbm90X2FsbG93ZWRfMTQ4OFwiLFwiRXNjYXBlIHNlcXVlbmNlICd7MH0nIGlzIG5vdCBhbGxvd2VkLlwiKSxEZWNpbWFsc193aXRoX2xlYWRpbmdfemVyb3NfYXJlX25vdF9hbGxvd2VkOmkoMTQ4OSwxLFwiRGVjaW1hbHNfd2l0aF9sZWFkaW5nX3plcm9zX2FyZV9ub3RfYWxsb3dlZF8xNDg5XCIsXCJEZWNpbWFscyB3aXRoIGxlYWRpbmcgemVyb3MgYXJlIG5vdCBhbGxvd2VkLlwiKSxGaWxlX2FwcGVhcnNfdG9fYmVfYmluYXJ5OmkoMTQ5MCwxLFwiRmlsZV9hcHBlYXJzX3RvX2JlX2JpbmFyeV8xNDkwXCIsXCJGaWxlIGFwcGVhcnMgdG8gYmUgYmluYXJ5LlwiKSxfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfdXNpbmdfZGVjbGFyYXRpb246aSgxNDkxLDEsXCJfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FfdXNpbmdfZGVjbGFyYXRpb25fMTQ5MVwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhICd1c2luZycgZGVjbGFyYXRpb24uXCIpLF8wX2RlY2xhcmF0aW9uc19tYXlfbm90X2hhdmVfYmluZGluZ19wYXR0ZXJuczppKDE0OTIsMSxcIl8wX2RlY2xhcmF0aW9uc19tYXlfbm90X2hhdmVfYmluZGluZ19wYXR0ZXJuc18xNDkyXCIsXCInezB9JyBkZWNsYXJhdGlvbnMgbWF5IG5vdCBoYXZlIGJpbmRpbmcgcGF0dGVybnMuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X2JlX2FfdXNpbmdfZGVjbGFyYXRpb246aSgxNDkzLDEsXCJUaGVfbGVmdF9oYW5kX3NpZGVfb2ZfYV9mb3JfaW5fc3RhdGVtZW50X2Nhbm5vdF9iZV9hX3VzaW5nX2RlY2xhcmF0aW9uXzE0OTNcIixcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5pbicgc3RhdGVtZW50IGNhbm5vdCBiZSBhICd1c2luZycgZGVjbGFyYXRpb24uXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X2JlX2FuX2F3YWl0X3VzaW5nX2RlY2xhcmF0aW9uOmkoMTQ5NCwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9jYW5ub3RfYmVfYW5fYXdhaXRfdXNpbmdfZGVjbGFyYXRpb25fMTQ5NFwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgY2Fubm90IGJlIGFuICdhd2FpdCB1c2luZycgZGVjbGFyYXRpb24uXCIpLF8wX21vZGlmaWVyX2Nhbm5vdF9hcHBlYXJfb25fYW5fYXdhaXRfdXNpbmdfZGVjbGFyYXRpb246aSgxNDk1LDEsXCJfMF9tb2RpZmllcl9jYW5ub3RfYXBwZWFyX29uX2FuX2F3YWl0X3VzaW5nX2RlY2xhcmF0aW9uXzE0OTVcIixcIid7MH0nIG1vZGlmaWVyIGNhbm5vdCBhcHBlYXIgb24gYW4gJ2F3YWl0IHVzaW5nJyBkZWNsYXJhdGlvbi5cIiksVGhlX3R5cGVzX29mXzBfYXJlX2luY29tcGF0aWJsZV9iZXR3ZWVuX3RoZXNlX3R5cGVzOmkoMjIwMCwxLFwiVGhlX3R5cGVzX29mXzBfYXJlX2luY29tcGF0aWJsZV9iZXR3ZWVuX3RoZXNlX3R5cGVzXzIyMDBcIixcIlRoZSB0eXBlcyBvZiAnezB9JyBhcmUgaW5jb21wYXRpYmxlIGJldHdlZW4gdGhlc2UgdHlwZXMuXCIpLFRoZV90eXBlc19yZXR1cm5lZF9ieV8wX2FyZV9pbmNvbXBhdGlibGVfYmV0d2Vlbl90aGVzZV90eXBlczppKDIyMDEsMSxcIlRoZV90eXBlc19yZXR1cm5lZF9ieV8wX2FyZV9pbmNvbXBhdGlibGVfYmV0d2Vlbl90aGVzZV90eXBlc18yMjAxXCIsXCJUaGUgdHlwZXMgcmV0dXJuZWQgYnkgJ3swfScgYXJlIGluY29tcGF0aWJsZSBiZXR3ZWVuIHRoZXNlIHR5cGVzLlwiKSxDYWxsX3NpZ25hdHVyZV9yZXR1cm5fdHlwZXNfMF9hbmRfMV9hcmVfaW5jb21wYXRpYmxlOmkoMjIwMiwxLFwiQ2FsbF9zaWduYXR1cmVfcmV0dXJuX3R5cGVzXzBfYW5kXzFfYXJlX2luY29tcGF0aWJsZV8yMjAyXCIsXCJDYWxsIHNpZ25hdHVyZSByZXR1cm4gdHlwZXMgJ3swfScgYW5kICd7MX0nIGFyZSBpbmNvbXBhdGlibGUuXCIsdm9pZCAwLCEwKSxDb25zdHJ1Y3Rfc2lnbmF0dXJlX3JldHVybl90eXBlc18wX2FuZF8xX2FyZV9pbmNvbXBhdGlibGU6aSgyMjAzLDEsXCJDb25zdHJ1Y3Rfc2lnbmF0dXJlX3JldHVybl90eXBlc18wX2FuZF8xX2FyZV9pbmNvbXBhdGlibGVfMjIwM1wiLFwiQ29uc3RydWN0IHNpZ25hdHVyZSByZXR1cm4gdHlwZXMgJ3swfScgYW5kICd7MX0nIGFyZSBpbmNvbXBhdGlibGUuXCIsdm9pZCAwLCEwKSxDYWxsX3NpZ25hdHVyZXNfd2l0aF9ub19hcmd1bWVudHNfaGF2ZV9pbmNvbXBhdGlibGVfcmV0dXJuX3R5cGVzXzBfYW5kXzE6aSgyMjA0LDEsXCJDYWxsX3NpZ25hdHVyZXNfd2l0aF9ub19hcmd1bWVudHNfaGF2ZV9pbmNvbXBhdGlibGVfcmV0dXJuX3R5cGVzXzBfYW5kXzFfMjIwNFwiLFwiQ2FsbCBzaWduYXR1cmVzIHdpdGggbm8gYXJndW1lbnRzIGhhdmUgaW5jb21wYXRpYmxlIHJldHVybiB0eXBlcyAnezB9JyBhbmQgJ3sxfScuXCIsdm9pZCAwLCEwKSxDb25zdHJ1Y3Rfc2lnbmF0dXJlc193aXRoX25vX2FyZ3VtZW50c19oYXZlX2luY29tcGF0aWJsZV9yZXR1cm5fdHlwZXNfMF9hbmRfMTppKDIyMDUsMSxcIkNvbnN0cnVjdF9zaWduYXR1cmVzX3dpdGhfbm9fYXJndW1lbnRzX2hhdmVfaW5jb21wYXRpYmxlX3JldHVybl90eXBlc18wX2FuZF8xXzIyMDVcIixcIkNvbnN0cnVjdCBzaWduYXR1cmVzIHdpdGggbm8gYXJndW1lbnRzIGhhdmUgaW5jb21wYXRpYmxlIHJldHVybiB0eXBlcyAnezB9JyBhbmQgJ3sxfScuXCIsdm9pZCAwLCEwKSxUaGVfdHlwZV9tb2RpZmllcl9jYW5ub3RfYmVfdXNlZF9vbl9hX25hbWVkX2ltcG9ydF93aGVuX2ltcG9ydF90eXBlX2lzX3VzZWRfb25faXRzX2ltcG9ydF9zdGF0ZW1lbnQ6aSgyMjA2LDEsXCJUaGVfdHlwZV9tb2RpZmllcl9jYW5ub3RfYmVfdXNlZF9vbl9hX25hbWVkX2ltcG9ydF93aGVuX2ltcG9ydF90eXBlX2lzX3VzZWRfb25faXRzX2ltcG9ydF9zdGF0ZW1lbnRfMjIwNlwiLFwiVGhlICd0eXBlJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBvbiBhIG5hbWVkIGltcG9ydCB3aGVuICdpbXBvcnQgdHlwZScgaXMgdXNlZCBvbiBpdHMgaW1wb3J0IHN0YXRlbWVudC5cIiksVGhlX3R5cGVfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfb25fYV9uYW1lZF9leHBvcnRfd2hlbl9leHBvcnRfdHlwZV9pc191c2VkX29uX2l0c19leHBvcnRfc3RhdGVtZW50OmkoMjIwNywxLFwiVGhlX3R5cGVfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfb25fYV9uYW1lZF9leHBvcnRfd2hlbl9leHBvcnRfdHlwZV9pc191c2VkX29uX2l0c19leHBvcnRfc3RhdGVtZW50XzIyMDdcIixcIlRoZSAndHlwZScgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgb24gYSBuYW1lZCBleHBvcnQgd2hlbiAnZXhwb3J0IHR5cGUnIGlzIHVzZWQgb24gaXRzIGV4cG9ydCBzdGF0ZW1lbnQuXCIpLFRoaXNfdHlwZV9wYXJhbWV0ZXJfbWlnaHRfbmVlZF9hbl9leHRlbmRzXzBfY29uc3RyYWludDppKDIyMDgsMSxcIlRoaXNfdHlwZV9wYXJhbWV0ZXJfbWlnaHRfbmVlZF9hbl9leHRlbmRzXzBfY29uc3RyYWludF8yMjA4XCIsXCJUaGlzIHR5cGUgcGFyYW1ldGVyIG1pZ2h0IG5lZWQgYW4gYGV4dGVuZHMgezB9YCBjb25zdHJhaW50LlwiKSxUaGVfcHJvamVjdF9yb290X2lzX2FtYmlndW91c19idXRfaXNfcmVxdWlyZWRfdG9fcmVzb2x2ZV9leHBvcnRfbWFwX2VudHJ5XzBfaW5fZmlsZV8xX1N1cHBseV90aGVfcm9vdERpcl9jb21waWxlcl9vcHRpb25fdG9fZGlzYW1iaWd1YXRlOmkoMjIwOSwxLFwiVGhlX3Byb2plY3Rfcm9vdF9pc19hbWJpZ3VvdXNfYnV0X2lzX3JlcXVpcmVkX3RvX3Jlc29sdmVfZXhwb3J0X21hcF9lbnRyeV8wX2luX2ZpbGVfMV9TdXBwbHlfdGhlX3Jvb18yMjA5XCIsXCJUaGUgcHJvamVjdCByb290IGlzIGFtYmlndW91cywgYnV0IGlzIHJlcXVpcmVkIHRvIHJlc29sdmUgZXhwb3J0IG1hcCBlbnRyeSAnezB9JyBpbiBmaWxlICd7MX0nLiBTdXBwbHkgdGhlIGByb290RGlyYCBjb21waWxlciBvcHRpb24gdG8gZGlzYW1iaWd1YXRlLlwiKSxUaGVfcHJvamVjdF9yb290X2lzX2FtYmlndW91c19idXRfaXNfcmVxdWlyZWRfdG9fcmVzb2x2ZV9pbXBvcnRfbWFwX2VudHJ5XzBfaW5fZmlsZV8xX1N1cHBseV90aGVfcm9vdERpcl9jb21waWxlcl9vcHRpb25fdG9fZGlzYW1iaWd1YXRlOmkoMjIxMCwxLFwiVGhlX3Byb2plY3Rfcm9vdF9pc19hbWJpZ3VvdXNfYnV0X2lzX3JlcXVpcmVkX3RvX3Jlc29sdmVfaW1wb3J0X21hcF9lbnRyeV8wX2luX2ZpbGVfMV9TdXBwbHlfdGhlX3Jvb18yMjEwXCIsXCJUaGUgcHJvamVjdCByb290IGlzIGFtYmlndW91cywgYnV0IGlzIHJlcXVpcmVkIHRvIHJlc29sdmUgaW1wb3J0IG1hcCBlbnRyeSAnezB9JyBpbiBmaWxlICd7MX0nLiBTdXBwbHkgdGhlIGByb290RGlyYCBjb21waWxlciBvcHRpb24gdG8gZGlzYW1iaWd1YXRlLlwiKSxBZGRfZXh0ZW5kc19jb25zdHJhaW50OmkoMjIxMSwzLFwiQWRkX2V4dGVuZHNfY29uc3RyYWludF8yMjExXCIsXCJBZGQgYGV4dGVuZHNgIGNvbnN0cmFpbnQuXCIpLEFkZF9leHRlbmRzX2NvbnN0cmFpbnRfdG9fYWxsX3R5cGVfcGFyYW1ldGVyczppKDIyMTIsMyxcIkFkZF9leHRlbmRzX2NvbnN0cmFpbnRfdG9fYWxsX3R5cGVfcGFyYW1ldGVyc18yMjEyXCIsXCJBZGQgYGV4dGVuZHNgIGNvbnN0cmFpbnQgdG8gYWxsIHR5cGUgcGFyYW1ldGVyc1wiKSxEdXBsaWNhdGVfaWRlbnRpZmllcl8wOmkoMjMwMCwxLFwiRHVwbGljYXRlX2lkZW50aWZpZXJfMF8yMzAwXCIsXCJEdXBsaWNhdGUgaWRlbnRpZmllciAnezB9Jy5cIiksSW5pdGlhbGl6ZXJfb2ZfaW5zdGFuY2VfbWVtYmVyX3ZhcmlhYmxlXzBfY2Fubm90X3JlZmVyZW5jZV9pZGVudGlmaWVyXzFfZGVjbGFyZWRfaW5fdGhlX2NvbnN0cnVjdG9yOmkoMjMwMSwxLFwiSW5pdGlhbGl6ZXJfb2ZfaW5zdGFuY2VfbWVtYmVyX3ZhcmlhYmxlXzBfY2Fubm90X3JlZmVyZW5jZV9pZGVudGlmaWVyXzFfZGVjbGFyZWRfaW5fdGhlX2NvbnN0cnVjdG9yXzIzMDFcIixcIkluaXRpYWxpemVyIG9mIGluc3RhbmNlIG1lbWJlciB2YXJpYWJsZSAnezB9JyBjYW5ub3QgcmVmZXJlbmNlIGlkZW50aWZpZXIgJ3sxfScgZGVjbGFyZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlwiKSxTdGF0aWNfbWVtYmVyc19jYW5ub3RfcmVmZXJlbmNlX2NsYXNzX3R5cGVfcGFyYW1ldGVyczppKDIzMDIsMSxcIlN0YXRpY19tZW1iZXJzX2Nhbm5vdF9yZWZlcmVuY2VfY2xhc3NfdHlwZV9wYXJhbWV0ZXJzXzIzMDJcIixcIlN0YXRpYyBtZW1iZXJzIGNhbm5vdCByZWZlcmVuY2UgY2xhc3MgdHlwZSBwYXJhbWV0ZXJzLlwiKSxDaXJjdWxhcl9kZWZpbml0aW9uX29mX2ltcG9ydF9hbGlhc18wOmkoMjMwMywxLFwiQ2lyY3VsYXJfZGVmaW5pdGlvbl9vZl9pbXBvcnRfYWxpYXNfMF8yMzAzXCIsXCJDaXJjdWxhciBkZWZpbml0aW9uIG9mIGltcG9ydCBhbGlhcyAnezB9Jy5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wOmkoMjMwNCwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wXzIzMDRcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuXCIpLE1vZHVsZV8wX2hhc19ub19leHBvcnRlZF9tZW1iZXJfMTppKDIzMDUsMSxcIk1vZHVsZV8wX2hhc19ub19leHBvcnRlZF9tZW1iZXJfMV8yMzA1XCIsXCJNb2R1bGUgJ3swfScgaGFzIG5vIGV4cG9ydGVkIG1lbWJlciAnezF9Jy5cIiksRmlsZV8wX2lzX25vdF9hX21vZHVsZTppKDIzMDYsMSxcIkZpbGVfMF9pc19ub3RfYV9tb2R1bGVfMjMwNlwiLFwiRmlsZSAnezB9JyBpcyBub3QgYSBtb2R1bGUuXCIpLENhbm5vdF9maW5kX21vZHVsZV8wX29yX2l0c19jb3JyZXNwb25kaW5nX3R5cGVfZGVjbGFyYXRpb25zOmkoMjMwNywxLFwiQ2Fubm90X2ZpbmRfbW9kdWxlXzBfb3JfaXRzX2NvcnJlc3BvbmRpbmdfdHlwZV9kZWNsYXJhdGlvbnNfMjMwN1wiLFwiQ2Fubm90IGZpbmQgbW9kdWxlICd7MH0nIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlwiKSxNb2R1bGVfMF9oYXNfYWxyZWFkeV9leHBvcnRlZF9hX21lbWJlcl9uYW1lZF8xX0NvbnNpZGVyX2V4cGxpY2l0bHlfcmVfZXhwb3J0aW5nX3RvX3Jlc29sdmVfdGhlX2FtYmlndWl0eTppKDIzMDgsMSxcIk1vZHVsZV8wX2hhc19hbHJlYWR5X2V4cG9ydGVkX2FfbWVtYmVyX25hbWVkXzFfQ29uc2lkZXJfZXhwbGljaXRseV9yZV9leHBvcnRpbmdfdG9fcmVzb2x2ZV90aGVfYW1iaWdfMjMwOFwiLFwiTW9kdWxlIHswfSBoYXMgYWxyZWFkeSBleHBvcnRlZCBhIG1lbWJlciBuYW1lZCAnezF9Jy4gQ29uc2lkZXIgZXhwbGljaXRseSByZS1leHBvcnRpbmcgdG8gcmVzb2x2ZSB0aGUgYW1iaWd1aXR5LlwiKSxBbl9leHBvcnRfYXNzaWdubWVudF9jYW5ub3RfYmVfdXNlZF9pbl9hX21vZHVsZV93aXRoX290aGVyX2V4cG9ydGVkX2VsZW1lbnRzOmkoMjMwOSwxLFwiQW5fZXhwb3J0X2Fzc2lnbm1lbnRfY2Fubm90X2JlX3VzZWRfaW5fYV9tb2R1bGVfd2l0aF9vdGhlcl9leHBvcnRlZF9lbGVtZW50c18yMzA5XCIsXCJBbiBleHBvcnQgYXNzaWdubWVudCBjYW5ub3QgYmUgdXNlZCBpbiBhIG1vZHVsZSB3aXRoIG90aGVyIGV4cG9ydGVkIGVsZW1lbnRzLlwiKSxUeXBlXzBfcmVjdXJzaXZlbHlfcmVmZXJlbmNlc19pdHNlbGZfYXNfYV9iYXNlX3R5cGU6aSgyMzEwLDEsXCJUeXBlXzBfcmVjdXJzaXZlbHlfcmVmZXJlbmNlc19pdHNlbGZfYXNfYV9iYXNlX3R5cGVfMjMxMFwiLFwiVHlwZSAnezB9JyByZWN1cnNpdmVseSByZWZlcmVuY2VzIGl0c2VsZiBhcyBhIGJhc2UgdHlwZS5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RpZF95b3VfbWVhbl90b193cml0ZV90aGlzX2luX2FuX2FzeW5jX2Z1bmN0aW9uOmkoMjMxMSwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RpZF95b3VfbWVhbl90b193cml0ZV90aGlzX2luX2FuX2FzeW5jX2Z1bmN0aW9uXzIzMTFcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERpZCB5b3UgbWVhbiB0byB3cml0ZSB0aGlzIGluIGFuIGFzeW5jIGZ1bmN0aW9uP1wiKSxBbl9pbnRlcmZhY2VfY2FuX29ubHlfZXh0ZW5kX2FuX29iamVjdF90eXBlX29yX2ludGVyc2VjdGlvbl9vZl9vYmplY3RfdHlwZXNfd2l0aF9zdGF0aWNhbGx5X2tub3duX21lbWJlcnM6aSgyMzEyLDEsXCJBbl9pbnRlcmZhY2VfY2FuX29ubHlfZXh0ZW5kX2FuX29iamVjdF90eXBlX29yX2ludGVyc2VjdGlvbl9vZl9vYmplY3RfdHlwZXNfd2l0aF9zdGF0aWNhbGx5X2tub3duX21lXzIzMTJcIixcIkFuIGludGVyZmFjZSBjYW4gb25seSBleHRlbmQgYW4gb2JqZWN0IHR5cGUgb3IgaW50ZXJzZWN0aW9uIG9mIG9iamVjdCB0eXBlcyB3aXRoIHN0YXRpY2FsbHkga25vd24gbWVtYmVycy5cIiksVHlwZV9wYXJhbWV0ZXJfMF9oYXNfYV9jaXJjdWxhcl9jb25zdHJhaW50OmkoMjMxMywxLFwiVHlwZV9wYXJhbWV0ZXJfMF9oYXNfYV9jaXJjdWxhcl9jb25zdHJhaW50XzIzMTNcIixcIlR5cGUgcGFyYW1ldGVyICd7MH0nIGhhcyBhIGNpcmN1bGFyIGNvbnN0cmFpbnQuXCIpLEdlbmVyaWNfdHlwZV8wX3JlcXVpcmVzXzFfdHlwZV9hcmd1bWVudF9zOmkoMjMxNCwxLFwiR2VuZXJpY190eXBlXzBfcmVxdWlyZXNfMV90eXBlX2FyZ3VtZW50X3NfMjMxNFwiLFwiR2VuZXJpYyB0eXBlICd7MH0nIHJlcXVpcmVzIHsxfSB0eXBlIGFyZ3VtZW50KHMpLlwiKSxUeXBlXzBfaXNfbm90X2dlbmVyaWM6aSgyMzE1LDEsXCJUeXBlXzBfaXNfbm90X2dlbmVyaWNfMjMxNVwiLFwiVHlwZSAnezB9JyBpcyBub3QgZ2VuZXJpYy5cIiksR2xvYmFsX3R5cGVfMF9tdXN0X2JlX2FfY2xhc3Nfb3JfaW50ZXJmYWNlX3R5cGU6aSgyMzE2LDEsXCJHbG9iYWxfdHlwZV8wX211c3RfYmVfYV9jbGFzc19vcl9pbnRlcmZhY2VfdHlwZV8yMzE2XCIsXCJHbG9iYWwgdHlwZSAnezB9JyBtdXN0IGJlIGEgY2xhc3Mgb3IgaW50ZXJmYWNlIHR5cGUuXCIpLEdsb2JhbF90eXBlXzBfbXVzdF9oYXZlXzFfdHlwZV9wYXJhbWV0ZXJfczppKDIzMTcsMSxcIkdsb2JhbF90eXBlXzBfbXVzdF9oYXZlXzFfdHlwZV9wYXJhbWV0ZXJfc18yMzE3XCIsXCJHbG9iYWwgdHlwZSAnezB9JyBtdXN0IGhhdmUgezF9IHR5cGUgcGFyYW1ldGVyKHMpLlwiKSxDYW5ub3RfZmluZF9nbG9iYWxfdHlwZV8wOmkoMjMxOCwxLFwiQ2Fubm90X2ZpbmRfZ2xvYmFsX3R5cGVfMF8yMzE4XCIsXCJDYW5ub3QgZmluZCBnbG9iYWwgdHlwZSAnezB9Jy5cIiksTmFtZWRfcHJvcGVydHlfMF9vZl90eXBlc18xX2FuZF8yX2FyZV9ub3RfaWRlbnRpY2FsOmkoMjMxOSwxLFwiTmFtZWRfcHJvcGVydHlfMF9vZl90eXBlc18xX2FuZF8yX2FyZV9ub3RfaWRlbnRpY2FsXzIzMTlcIixcIk5hbWVkIHByb3BlcnR5ICd7MH0nIG9mIHR5cGVzICd7MX0nIGFuZCAnezJ9JyBhcmUgbm90IGlkZW50aWNhbC5cIiksSW50ZXJmYWNlXzBfY2Fubm90X3NpbXVsdGFuZW91c2x5X2V4dGVuZF90eXBlc18xX2FuZF8yOmkoMjMyMCwxLFwiSW50ZXJmYWNlXzBfY2Fubm90X3NpbXVsdGFuZW91c2x5X2V4dGVuZF90eXBlc18xX2FuZF8yXzIzMjBcIixcIkludGVyZmFjZSAnezB9JyBjYW5ub3Qgc2ltdWx0YW5lb3VzbHkgZXh0ZW5kIHR5cGVzICd7MX0nIGFuZCAnezJ9Jy5cIiksRXhjZXNzaXZlX3N0YWNrX2RlcHRoX2NvbXBhcmluZ190eXBlc18wX2FuZF8xOmkoMjMyMSwxLFwiRXhjZXNzaXZlX3N0YWNrX2RlcHRoX2NvbXBhcmluZ190eXBlc18wX2FuZF8xXzIzMjFcIixcIkV4Y2Vzc2l2ZSBzdGFjayBkZXB0aCBjb21wYXJpbmcgdHlwZXMgJ3swfScgYW5kICd7MX0nLlwiKSxUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xOmkoMjMyMiwxLFwiVHlwZV8wX2lzX25vdF9hc3NpZ25hYmxlX3RvX3R5cGVfMV8yMzIyXCIsXCJUeXBlICd7MH0nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ3sxfScuXCIpLENhbm5vdF9yZWRlY2xhcmVfZXhwb3J0ZWRfdmFyaWFibGVfMDppKDIzMjMsMSxcIkNhbm5vdF9yZWRlY2xhcmVfZXhwb3J0ZWRfdmFyaWFibGVfMF8yMzIzXCIsXCJDYW5ub3QgcmVkZWNsYXJlIGV4cG9ydGVkIHZhcmlhYmxlICd7MH0nLlwiKSxQcm9wZXJ0eV8wX2lzX21pc3NpbmdfaW5fdHlwZV8xOmkoMjMyNCwxLFwiUHJvcGVydHlfMF9pc19taXNzaW5nX2luX3R5cGVfMV8yMzI0XCIsXCJQcm9wZXJ0eSAnezB9JyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sxfScuXCIpLFByb3BlcnR5XzBfaXNfcHJpdmF0ZV9pbl90eXBlXzFfYnV0X25vdF9pbl90eXBlXzI6aSgyMzI1LDEsXCJQcm9wZXJ0eV8wX2lzX3ByaXZhdGVfaW5fdHlwZV8xX2J1dF9ub3RfaW5fdHlwZV8yXzIzMjVcIixcIlByb3BlcnR5ICd7MH0nIGlzIHByaXZhdGUgaW4gdHlwZSAnezF9JyBidXQgbm90IGluIHR5cGUgJ3syfScuXCIpLFR5cGVzX29mX3Byb3BlcnR5XzBfYXJlX2luY29tcGF0aWJsZTppKDIzMjYsMSxcIlR5cGVzX29mX3Byb3BlcnR5XzBfYXJlX2luY29tcGF0aWJsZV8yMzI2XCIsXCJUeXBlcyBvZiBwcm9wZXJ0eSAnezB9JyBhcmUgaW5jb21wYXRpYmxlLlwiKSxQcm9wZXJ0eV8wX2lzX29wdGlvbmFsX2luX3R5cGVfMV9idXRfcmVxdWlyZWRfaW5fdHlwZV8yOmkoMjMyNywxLFwiUHJvcGVydHlfMF9pc19vcHRpb25hbF9pbl90eXBlXzFfYnV0X3JlcXVpcmVkX2luX3R5cGVfMl8yMzI3XCIsXCJQcm9wZXJ0eSAnezB9JyBpcyBvcHRpb25hbCBpbiB0eXBlICd7MX0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7Mn0nLlwiKSxUeXBlc19vZl9wYXJhbWV0ZXJzXzBfYW5kXzFfYXJlX2luY29tcGF0aWJsZTppKDIzMjgsMSxcIlR5cGVzX29mX3BhcmFtZXRlcnNfMF9hbmRfMV9hcmVfaW5jb21wYXRpYmxlXzIzMjhcIixcIlR5cGVzIG9mIHBhcmFtZXRlcnMgJ3swfScgYW5kICd7MX0nIGFyZSBpbmNvbXBhdGlibGUuXCIpLEluZGV4X3NpZ25hdHVyZV9mb3JfdHlwZV8wX2lzX21pc3NpbmdfaW5fdHlwZV8xOmkoMjMyOSwxLFwiSW5kZXhfc2lnbmF0dXJlX2Zvcl90eXBlXzBfaXNfbWlzc2luZ19pbl90eXBlXzFfMjMyOVwiLFwiSW5kZXggc2lnbmF0dXJlIGZvciB0eXBlICd7MH0nIGlzIG1pc3NpbmcgaW4gdHlwZSAnezF9Jy5cIiksXzBfYW5kXzFfaW5kZXhfc2lnbmF0dXJlc19hcmVfaW5jb21wYXRpYmxlOmkoMjMzMCwxLFwiXzBfYW5kXzFfaW5kZXhfc2lnbmF0dXJlc19hcmVfaW5jb21wYXRpYmxlXzIzMzBcIixcIid7MH0nIGFuZCAnezF9JyBpbmRleCBzaWduYXR1cmVzIGFyZSBpbmNvbXBhdGlibGUuXCIpLHRoaXNfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYV9tb2R1bGVfb3JfbmFtZXNwYWNlX2JvZHk6aSgyMzMxLDEsXCJ0aGlzX2Nhbm5vdF9iZV9yZWZlcmVuY2VkX2luX2FfbW9kdWxlX29yX25hbWVzcGFjZV9ib2R5XzIzMzFcIixcIid0aGlzJyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBpbiBhIG1vZHVsZSBvciBuYW1lc3BhY2UgYm9keS5cIiksdGhpc19jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9jdXJyZW50X2xvY2F0aW9uOmkoMjMzMiwxLFwidGhpc19jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9jdXJyZW50X2xvY2F0aW9uXzIzMzJcIixcIid0aGlzJyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBpbiBjdXJyZW50IGxvY2F0aW9uLlwiKSx0aGlzX2Nhbm5vdF9iZV9yZWZlcmVuY2VkX2luX2NvbnN0cnVjdG9yX2FyZ3VtZW50czppKDIzMzMsMSxcInRoaXNfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fY29uc3RydWN0b3JfYXJndW1lbnRzXzIzMzNcIixcIid0aGlzJyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBpbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMuXCIpLHRoaXNfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYV9zdGF0aWNfcHJvcGVydHlfaW5pdGlhbGl6ZXI6aSgyMzM0LDEsXCJ0aGlzX2Nhbm5vdF9iZV9yZWZlcmVuY2VkX2luX2Ffc3RhdGljX3Byb3BlcnR5X2luaXRpYWxpemVyXzIzMzRcIixcIid0aGlzJyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBpbiBhIHN0YXRpYyBwcm9wZXJ0eSBpbml0aWFsaXplci5cIiksc3VwZXJfY2FuX29ubHlfYmVfcmVmZXJlbmNlZF9pbl9hX2Rlcml2ZWRfY2xhc3M6aSgyMzM1LDEsXCJzdXBlcl9jYW5fb25seV9iZV9yZWZlcmVuY2VkX2luX2FfZGVyaXZlZF9jbGFzc18yMzM1XCIsXCInc3VwZXInIGNhbiBvbmx5IGJlIHJlZmVyZW5jZWQgaW4gYSBkZXJpdmVkIGNsYXNzLlwiKSxzdXBlcl9jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9jb25zdHJ1Y3Rvcl9hcmd1bWVudHM6aSgyMzM2LDEsXCJzdXBlcl9jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9jb25zdHJ1Y3Rvcl9hcmd1bWVudHNfMjMzNlwiLFwiJ3N1cGVyJyBjYW5ub3QgYmUgcmVmZXJlbmNlZCBpbiBjb25zdHJ1Y3RvciBhcmd1bWVudHMuXCIpLFN1cGVyX2NhbGxzX2FyZV9ub3RfcGVybWl0dGVkX291dHNpZGVfY29uc3RydWN0b3JzX29yX2luX25lc3RlZF9mdW5jdGlvbnNfaW5zaWRlX2NvbnN0cnVjdG9yczppKDIzMzcsMSxcIlN1cGVyX2NhbGxzX2FyZV9ub3RfcGVybWl0dGVkX291dHNpZGVfY29uc3RydWN0b3JzX29yX2luX25lc3RlZF9mdW5jdGlvbnNfaW5zaWRlX2NvbnN0cnVjdG9yc18yMzM3XCIsXCJTdXBlciBjYWxscyBhcmUgbm90IHBlcm1pdHRlZCBvdXRzaWRlIGNvbnN0cnVjdG9ycyBvciBpbiBuZXN0ZWQgZnVuY3Rpb25zIGluc2lkZSBjb25zdHJ1Y3RvcnMuXCIpLHN1cGVyX3Byb3BlcnR5X2FjY2Vzc19pc19wZXJtaXR0ZWRfb25seV9pbl9hX2NvbnN0cnVjdG9yX21lbWJlcl9mdW5jdGlvbl9vcl9tZW1iZXJfYWNjZXNzb3Jfb2ZfYV9kZXJpdmVkX2NsYXNzOmkoMjMzOCwxLFwic3VwZXJfcHJvcGVydHlfYWNjZXNzX2lzX3Blcm1pdHRlZF9vbmx5X2luX2FfY29uc3RydWN0b3JfbWVtYmVyX2Z1bmN0aW9uX29yX21lbWJlcl9hY2Nlc3Nvcl9vZl9hX2Rlcl8yMzM4XCIsXCInc3VwZXInIHByb3BlcnR5IGFjY2VzcyBpcyBwZXJtaXR0ZWQgb25seSBpbiBhIGNvbnN0cnVjdG9yLCBtZW1iZXIgZnVuY3Rpb24sIG9yIG1lbWJlciBhY2Nlc3NvciBvZiBhIGRlcml2ZWQgY2xhc3MuXCIpLFByb3BlcnR5XzBfZG9lc19ub3RfZXhpc3Rfb25fdHlwZV8xOmkoMjMzOSwxLFwiUHJvcGVydHlfMF9kb2VzX25vdF9leGlzdF9vbl90eXBlXzFfMjMzOVwiLFwiUHJvcGVydHkgJ3swfScgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSAnezF9Jy5cIiksT25seV9wdWJsaWNfYW5kX3Byb3RlY3RlZF9tZXRob2RzX29mX3RoZV9iYXNlX2NsYXNzX2FyZV9hY2Nlc3NpYmxlX3ZpYV90aGVfc3VwZXJfa2V5d29yZDppKDIzNDAsMSxcIk9ubHlfcHVibGljX2FuZF9wcm90ZWN0ZWRfbWV0aG9kc19vZl90aGVfYmFzZV9jbGFzc19hcmVfYWNjZXNzaWJsZV92aWFfdGhlX3N1cGVyX2tleXdvcmRfMjM0MFwiLFwiT25seSBwdWJsaWMgYW5kIHByb3RlY3RlZCBtZXRob2RzIG9mIHRoZSBiYXNlIGNsYXNzIGFyZSBhY2Nlc3NpYmxlIHZpYSB0aGUgJ3N1cGVyJyBrZXl3b3JkLlwiKSxQcm9wZXJ0eV8wX2lzX3ByaXZhdGVfYW5kX29ubHlfYWNjZXNzaWJsZV93aXRoaW5fY2xhc3NfMTppKDIzNDEsMSxcIlByb3BlcnR5XzBfaXNfcHJpdmF0ZV9hbmRfb25seV9hY2Nlc3NpYmxlX3dpdGhpbl9jbGFzc18xXzIzNDFcIixcIlByb3BlcnR5ICd7MH0nIGlzIHByaXZhdGUgYW5kIG9ubHkgYWNjZXNzaWJsZSB3aXRoaW4gY2xhc3MgJ3sxfScuXCIpLFRoaXNfc3ludGF4X3JlcXVpcmVzX2FuX2ltcG9ydGVkX2hlbHBlcl9uYW1lZF8xX3doaWNoX2RvZXNfbm90X2V4aXN0X2luXzBfQ29uc2lkZXJfdXBncmFkaW5nX3lvdXJfdmVyc2lvbl9vZl8wOmkoMjM0MywxLFwiVGhpc19zeW50YXhfcmVxdWlyZXNfYW5faW1wb3J0ZWRfaGVscGVyX25hbWVkXzFfd2hpY2hfZG9lc19ub3RfZXhpc3RfaW5fMF9Db25zaWRlcl91cGdyYWRpbmdfeW91cl92ZV8yMzQzXCIsXCJUaGlzIHN5bnRheCByZXF1aXJlcyBhbiBpbXBvcnRlZCBoZWxwZXIgbmFtZWQgJ3sxfScgd2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gJ3swfScuIENvbnNpZGVyIHVwZ3JhZGluZyB5b3VyIHZlcnNpb24gb2YgJ3swfScuXCIpLFR5cGVfMF9kb2VzX25vdF9zYXRpc2Z5X3RoZV9jb25zdHJhaW50XzE6aSgyMzQ0LDEsXCJUeXBlXzBfZG9lc19ub3Rfc2F0aXNmeV90aGVfY29uc3RyYWludF8xXzIzNDRcIixcIlR5cGUgJ3swfScgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY29uc3RyYWludCAnezF9Jy5cIiksQXJndW1lbnRfb2ZfdHlwZV8wX2lzX25vdF9hc3NpZ25hYmxlX3RvX3BhcmFtZXRlcl9vZl90eXBlXzE6aSgyMzQ1LDEsXCJBcmd1bWVudF9vZl90eXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fcGFyYW1ldGVyX29mX3R5cGVfMV8yMzQ1XCIsXCJBcmd1bWVudCBvZiB0eXBlICd7MH0nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHBhcmFtZXRlciBvZiB0eXBlICd7MX0nLlwiKSxVbnR5cGVkX2Z1bmN0aW9uX2NhbGxzX21heV9ub3RfYWNjZXB0X3R5cGVfYXJndW1lbnRzOmkoMjM0NywxLFwiVW50eXBlZF9mdW5jdGlvbl9jYWxsc19tYXlfbm90X2FjY2VwdF90eXBlX2FyZ3VtZW50c18yMzQ3XCIsXCJVbnR5cGVkIGZ1bmN0aW9uIGNhbGxzIG1heSBub3QgYWNjZXB0IHR5cGUgYXJndW1lbnRzLlwiKSxWYWx1ZV9vZl90eXBlXzBfaXNfbm90X2NhbGxhYmxlX0RpZF95b3VfbWVhbl90b19pbmNsdWRlX25ldzppKDIzNDgsMSxcIlZhbHVlX29mX3R5cGVfMF9pc19ub3RfY2FsbGFibGVfRGlkX3lvdV9tZWFuX3RvX2luY2x1ZGVfbmV3XzIzNDhcIixcIlZhbHVlIG9mIHR5cGUgJ3swfScgaXMgbm90IGNhbGxhYmxlLiBEaWQgeW91IG1lYW4gdG8gaW5jbHVkZSAnbmV3Jz9cIiksVGhpc19leHByZXNzaW9uX2lzX25vdF9jYWxsYWJsZTppKDIzNDksMSxcIlRoaXNfZXhwcmVzc2lvbl9pc19ub3RfY2FsbGFibGVfMjM0OVwiLFwiVGhpcyBleHByZXNzaW9uIGlzIG5vdCBjYWxsYWJsZS5cIiksT25seV9hX3ZvaWRfZnVuY3Rpb25fY2FuX2JlX2NhbGxlZF93aXRoX3RoZV9uZXdfa2V5d29yZDppKDIzNTAsMSxcIk9ubHlfYV92b2lkX2Z1bmN0aW9uX2Nhbl9iZV9jYWxsZWRfd2l0aF90aGVfbmV3X2tleXdvcmRfMjM1MFwiLFwiT25seSBhIHZvaWQgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLlwiKSxUaGlzX2V4cHJlc3Npb25faXNfbm90X2NvbnN0cnVjdGFibGU6aSgyMzUxLDEsXCJUaGlzX2V4cHJlc3Npb25faXNfbm90X2NvbnN0cnVjdGFibGVfMjM1MVwiLFwiVGhpcyBleHByZXNzaW9uIGlzIG5vdCBjb25zdHJ1Y3RhYmxlLlwiKSxDb252ZXJzaW9uX29mX3R5cGVfMF90b190eXBlXzFfbWF5X2JlX2FfbWlzdGFrZV9iZWNhdXNlX25laXRoZXJfdHlwZV9zdWZmaWNpZW50bHlfb3ZlcmxhcHNfd2l0aF90aGVfb3RoZXJfSWZfdGhpc193YXNfaW50ZW50aW9uYWxfY29udmVydF90aGVfZXhwcmVzc2lvbl90b191bmtub3duX2ZpcnN0OmkoMjM1MiwxLFwiQ29udmVyc2lvbl9vZl90eXBlXzBfdG9fdHlwZV8xX21heV9iZV9hX21pc3Rha2VfYmVjYXVzZV9uZWl0aGVyX3R5cGVfc3VmZmljaWVudGx5X292ZXJsYXBzX3dpdGhfdGhlX18yMzUyXCIsXCJDb252ZXJzaW9uIG9mIHR5cGUgJ3swfScgdG8gdHlwZSAnezF9JyBtYXkgYmUgYSBtaXN0YWtlIGJlY2F1c2UgbmVpdGhlciB0eXBlIHN1ZmZpY2llbnRseSBvdmVybGFwcyB3aXRoIHRoZSBvdGhlci4gSWYgdGhpcyB3YXMgaW50ZW50aW9uYWwsIGNvbnZlcnQgdGhlIGV4cHJlc3Npb24gdG8gJ3Vua25vd24nIGZpcnN0LlwiKSxPYmplY3RfbGl0ZXJhbF9tYXlfb25seV9zcGVjaWZ5X2tub3duX3Byb3BlcnRpZXNfYW5kXzBfZG9lc19ub3RfZXhpc3RfaW5fdHlwZV8xOmkoMjM1MywxLFwiT2JqZWN0X2xpdGVyYWxfbWF5X29ubHlfc3BlY2lmeV9rbm93bl9wcm9wZXJ0aWVzX2FuZF8wX2RvZXNfbm90X2V4aXN0X2luX3R5cGVfMV8yMzUzXCIsXCJPYmplY3QgbGl0ZXJhbCBtYXkgb25seSBzcGVjaWZ5IGtub3duIHByb3BlcnRpZXMsIGFuZCAnezB9JyBkb2VzIG5vdCBleGlzdCBpbiB0eXBlICd7MX0nLlwiKSxUaGlzX3N5bnRheF9yZXF1aXJlc19hbl9pbXBvcnRlZF9oZWxwZXJfYnV0X21vZHVsZV8wX2Nhbm5vdF9iZV9mb3VuZDppKDIzNTQsMSxcIlRoaXNfc3ludGF4X3JlcXVpcmVzX2FuX2ltcG9ydGVkX2hlbHBlcl9idXRfbW9kdWxlXzBfY2Fubm90X2JlX2ZvdW5kXzIzNTRcIixcIlRoaXMgc3ludGF4IHJlcXVpcmVzIGFuIGltcG9ydGVkIGhlbHBlciBidXQgbW9kdWxlICd7MH0nIGNhbm5vdCBiZSBmb3VuZC5cIiksQV9mdW5jdGlvbl93aG9zZV9kZWNsYXJlZF90eXBlX2lzX25laXRoZXJfdW5kZWZpbmVkX3ZvaWRfbm9yX2FueV9tdXN0X3JldHVybl9hX3ZhbHVlOmkoMjM1NSwxLFwiQV9mdW5jdGlvbl93aG9zZV9kZWNsYXJlZF90eXBlX2lzX25laXRoZXJfdW5kZWZpbmVkX3ZvaWRfbm9yX2FueV9tdXN0X3JldHVybl9hX3ZhbHVlXzIzNTVcIixcIkEgZnVuY3Rpb24gd2hvc2UgZGVjbGFyZWQgdHlwZSBpcyBuZWl0aGVyICd1bmRlZmluZWQnLCAndm9pZCcsIG5vciAnYW55JyBtdXN0IHJldHVybiBhIHZhbHVlLlwiKSxBbl9hcml0aG1ldGljX29wZXJhbmRfbXVzdF9iZV9vZl90eXBlX2FueV9udW1iZXJfYmlnaW50X29yX2FuX2VudW1fdHlwZTppKDIzNTYsMSxcIkFuX2FyaXRobWV0aWNfb3BlcmFuZF9tdXN0X2JlX29mX3R5cGVfYW55X251bWJlcl9iaWdpbnRfb3JfYW5fZW51bV90eXBlXzIzNTZcIixcIkFuIGFyaXRobWV0aWMgb3BlcmFuZCBtdXN0IGJlIG9mIHR5cGUgJ2FueScsICdudW1iZXInLCAnYmlnaW50JyBvciBhbiBlbnVtIHR5cGUuXCIpLFRoZV9vcGVyYW5kX29mX2FuX2luY3JlbWVudF9vcl9kZWNyZW1lbnRfb3BlcmF0b3JfbXVzdF9iZV9hX3ZhcmlhYmxlX29yX2FfcHJvcGVydHlfYWNjZXNzOmkoMjM1NywxLFwiVGhlX29wZXJhbmRfb2ZfYW5faW5jcmVtZW50X29yX2RlY3JlbWVudF9vcGVyYXRvcl9tdXN0X2JlX2FfdmFyaWFibGVfb3JfYV9wcm9wZXJ0eV9hY2Nlc3NfMjM1N1wiLFwiVGhlIG9wZXJhbmQgb2YgYW4gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBvcGVyYXRvciBtdXN0IGJlIGEgdmFyaWFibGUgb3IgYSBwcm9wZXJ0eSBhY2Nlc3MuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hbl9pbnN0YW5jZW9mX2V4cHJlc3Npb25fbXVzdF9iZV9vZl90eXBlX2FueV9hbl9vYmplY3RfdHlwZV9vcl9hX3R5cGVfcGFyYW1ldGVyOmkoMjM1OCwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2luc3RhbmNlb2ZfZXhwcmVzc2lvbl9tdXN0X2JlX29mX3R5cGVfYW55X2FuX29iamVjdF90eXBlX29yX2FfdHlwZV9wYXJhbWV0ZV8yMzU4XCIsXCJUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gJ2luc3RhbmNlb2YnIGV4cHJlc3Npb24gbXVzdCBiZSBvZiB0eXBlICdhbnknLCBhbiBvYmplY3QgdHlwZSBvciBhIHR5cGUgcGFyYW1ldGVyLlwiKSxUaGVfcmlnaHRfaGFuZF9zaWRlX29mX2FuX2luc3RhbmNlb2ZfZXhwcmVzc2lvbl9tdXN0X2JlX29mX3R5cGVfYW55X29yX29mX2FfdHlwZV9hc3NpZ25hYmxlX3RvX3RoZV9GdW5jdGlvbl9pbnRlcmZhY2VfdHlwZTppKDIzNTksMSxcIlRoZV9yaWdodF9oYW5kX3NpZGVfb2ZfYW5faW5zdGFuY2VvZl9leHByZXNzaW9uX211c3RfYmVfb2ZfdHlwZV9hbnlfb3Jfb2ZfYV90eXBlX2Fzc2lnbmFibGVfdG9fdGhlX0ZfMjM1OVwiLFwiVGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhbiAnaW5zdGFuY2VvZicgZXhwcmVzc2lvbiBtdXN0IGJlIG9mIHR5cGUgJ2FueScgb3Igb2YgYSB0eXBlIGFzc2lnbmFibGUgdG8gdGhlICdGdW5jdGlvbicgaW50ZXJmYWNlIHR5cGUuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hbl9hcml0aG1ldGljX29wZXJhdGlvbl9tdXN0X2JlX29mX3R5cGVfYW55X251bWJlcl9iaWdpbnRfb3JfYW5fZW51bV90eXBlOmkoMjM2MiwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2FyaXRobWV0aWNfb3BlcmF0aW9uX211c3RfYmVfb2ZfdHlwZV9hbnlfbnVtYmVyX2JpZ2ludF9vcl9hbl9lbnVtX3R5cGVfMjM2MlwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFyaXRobWV0aWMgb3BlcmF0aW9uIG11c3QgYmUgb2YgdHlwZSAnYW55JywgJ251bWJlcicsICdiaWdpbnQnIG9yIGFuIGVudW0gdHlwZS5cIiksVGhlX3JpZ2h0X2hhbmRfc2lkZV9vZl9hbl9hcml0aG1ldGljX29wZXJhdGlvbl9tdXN0X2JlX29mX3R5cGVfYW55X251bWJlcl9iaWdpbnRfb3JfYW5fZW51bV90eXBlOmkoMjM2MywxLFwiVGhlX3JpZ2h0X2hhbmRfc2lkZV9vZl9hbl9hcml0aG1ldGljX29wZXJhdGlvbl9tdXN0X2JlX29mX3R5cGVfYW55X251bWJlcl9iaWdpbnRfb3JfYW5fZW51bV90eXBlXzIzNjNcIixcIlRoZSByaWdodC1oYW5kIHNpZGUgb2YgYW4gYXJpdGhtZXRpYyBvcGVyYXRpb24gbXVzdCBiZSBvZiB0eXBlICdhbnknLCAnbnVtYmVyJywgJ2JpZ2ludCcgb3IgYW4gZW51bSB0eXBlLlwiKSxUaGVfbGVmdF9oYW5kX3NpZGVfb2ZfYW5fYXNzaWdubWVudF9leHByZXNzaW9uX211c3RfYmVfYV92YXJpYWJsZV9vcl9hX3Byb3BlcnR5X2FjY2VzczppKDIzNjQsMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hbl9hc3NpZ25tZW50X2V4cHJlc3Npb25fbXVzdF9iZV9hX3ZhcmlhYmxlX29yX2FfcHJvcGVydHlfYWNjZXNzXzIzNjRcIixcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24gbXVzdCBiZSBhIHZhcmlhYmxlIG9yIGEgcHJvcGVydHkgYWNjZXNzLlwiKSxPcGVyYXRvcl8wX2Nhbm5vdF9iZV9hcHBsaWVkX3RvX3R5cGVzXzFfYW5kXzI6aSgyMzY1LDEsXCJPcGVyYXRvcl8wX2Nhbm5vdF9iZV9hcHBsaWVkX3RvX3R5cGVzXzFfYW5kXzJfMjM2NVwiLFwiT3BlcmF0b3IgJ3swfScgY2Fubm90IGJlIGFwcGxpZWQgdG8gdHlwZXMgJ3sxfScgYW5kICd7Mn0nLlwiKSxGdW5jdGlvbl9sYWNrc19lbmRpbmdfcmV0dXJuX3N0YXRlbWVudF9hbmRfcmV0dXJuX3R5cGVfZG9lc19ub3RfaW5jbHVkZV91bmRlZmluZWQ6aSgyMzY2LDEsXCJGdW5jdGlvbl9sYWNrc19lbmRpbmdfcmV0dXJuX3N0YXRlbWVudF9hbmRfcmV0dXJuX3R5cGVfZG9lc19ub3RfaW5jbHVkZV91bmRlZmluZWRfMjM2NlwiLFwiRnVuY3Rpb24gbGFja3MgZW5kaW5nIHJldHVybiBzdGF0ZW1lbnQgYW5kIHJldHVybiB0eXBlIGRvZXMgbm90IGluY2x1ZGUgJ3VuZGVmaW5lZCcuXCIpLFRoaXNfY29tcGFyaXNvbl9hcHBlYXJzX3RvX2JlX3VuaW50ZW50aW9uYWxfYmVjYXVzZV90aGVfdHlwZXNfMF9hbmRfMV9oYXZlX25vX292ZXJsYXA6aSgyMzY3LDEsXCJUaGlzX2NvbXBhcmlzb25fYXBwZWFyc190b19iZV91bmludGVudGlvbmFsX2JlY2F1c2VfdGhlX3R5cGVzXzBfYW5kXzFfaGF2ZV9ub19vdmVybGFwXzIzNjdcIixcIlRoaXMgY29tcGFyaXNvbiBhcHBlYXJzIHRvIGJlIHVuaW50ZW50aW9uYWwgYmVjYXVzZSB0aGUgdHlwZXMgJ3swfScgYW5kICd7MX0nIGhhdmUgbm8gb3ZlcmxhcC5cIiksVHlwZV9wYXJhbWV0ZXJfbmFtZV9jYW5ub3RfYmVfMDppKDIzNjgsMSxcIlR5cGVfcGFyYW1ldGVyX25hbWVfY2Fubm90X2JlXzBfMjM2OFwiLFwiVHlwZSBwYXJhbWV0ZXIgbmFtZSBjYW5ub3QgYmUgJ3swfScuXCIpLEFfcGFyYW1ldGVyX3Byb3BlcnR5X2lzX29ubHlfYWxsb3dlZF9pbl9hX2NvbnN0cnVjdG9yX2ltcGxlbWVudGF0aW9uOmkoMjM2OSwxLFwiQV9wYXJhbWV0ZXJfcHJvcGVydHlfaXNfb25seV9hbGxvd2VkX2luX2FfY29uc3RydWN0b3JfaW1wbGVtZW50YXRpb25fMjM2OVwiLFwiQSBwYXJhbWV0ZXIgcHJvcGVydHkgaXMgb25seSBhbGxvd2VkIGluIGEgY29uc3RydWN0b3IgaW1wbGVtZW50YXRpb24uXCIpLEFfcmVzdF9wYXJhbWV0ZXJfbXVzdF9iZV9vZl9hbl9hcnJheV90eXBlOmkoMjM3MCwxLFwiQV9yZXN0X3BhcmFtZXRlcl9tdXN0X2JlX29mX2FuX2FycmF5X3R5cGVfMjM3MFwiLFwiQSByZXN0IHBhcmFtZXRlciBtdXN0IGJlIG9mIGFuIGFycmF5IHR5cGUuXCIpLEFfcGFyYW1ldGVyX2luaXRpYWxpemVyX2lzX29ubHlfYWxsb3dlZF9pbl9hX2Z1bmN0aW9uX29yX2NvbnN0cnVjdG9yX2ltcGxlbWVudGF0aW9uOmkoMjM3MSwxLFwiQV9wYXJhbWV0ZXJfaW5pdGlhbGl6ZXJfaXNfb25seV9hbGxvd2VkX2luX2FfZnVuY3Rpb25fb3JfY29uc3RydWN0b3JfaW1wbGVtZW50YXRpb25fMjM3MVwiLFwiQSBwYXJhbWV0ZXIgaW5pdGlhbGl6ZXIgaXMgb25seSBhbGxvd2VkIGluIGEgZnVuY3Rpb24gb3IgY29uc3RydWN0b3IgaW1wbGVtZW50YXRpb24uXCIpLFBhcmFtZXRlcl8wX2Nhbm5vdF9yZWZlcmVuY2VfaXRzZWxmOmkoMjM3MiwxLFwiUGFyYW1ldGVyXzBfY2Fubm90X3JlZmVyZW5jZV9pdHNlbGZfMjM3MlwiLFwiUGFyYW1ldGVyICd7MH0nIGNhbm5vdCByZWZlcmVuY2UgaXRzZWxmLlwiKSxQYXJhbWV0ZXJfMF9jYW5ub3RfcmVmZXJlbmNlX2lkZW50aWZpZXJfMV9kZWNsYXJlZF9hZnRlcl9pdDppKDIzNzMsMSxcIlBhcmFtZXRlcl8wX2Nhbm5vdF9yZWZlcmVuY2VfaWRlbnRpZmllcl8xX2RlY2xhcmVkX2FmdGVyX2l0XzIzNzNcIixcIlBhcmFtZXRlciAnezB9JyBjYW5ub3QgcmVmZXJlbmNlIGlkZW50aWZpZXIgJ3sxfScgZGVjbGFyZWQgYWZ0ZXIgaXQuXCIpLER1cGxpY2F0ZV9pbmRleF9zaWduYXR1cmVfZm9yX3R5cGVfMDppKDIzNzQsMSxcIkR1cGxpY2F0ZV9pbmRleF9zaWduYXR1cmVfZm9yX3R5cGVfMF8yMzc0XCIsXCJEdXBsaWNhdGUgaW5kZXggc2lnbmF0dXJlIGZvciB0eXBlICd7MH0nLlwiKSxUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX3dpdGhfZXhhY3RPcHRpb25hbFByb3BlcnR5VHlwZXNfQ29sb25fdHJ1ZV9Db25zaWRlcl9hZGRpbmdfdW5kZWZpbmVkX3RvX3RoZV90eXBlc19vZl90aGVfdGFyZ2V0X3NfcHJvcGVydGllczppKDIzNzUsMSxcIlR5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfd2l0aF9leGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlc19Db2xvbl90cnVlX0NvbnNpZGVyX2FkZGluZ191bmRlZmlfMjM3NVwiLFwiVHlwZSAnezB9JyBpcyBub3QgYXNzaWduYWJsZSB0byB0eXBlICd7MX0nIHdpdGggJ2V4YWN0T3B0aW9uYWxQcm9wZXJ0eVR5cGVzOiB0cnVlJy4gQ29uc2lkZXIgYWRkaW5nICd1bmRlZmluZWQnIHRvIHRoZSB0eXBlcyBvZiB0aGUgdGFyZ2V0J3MgcHJvcGVydGllcy5cIiksQV9zdXBlcl9jYWxsX211c3RfYmVfdGhlX2ZpcnN0X3N0YXRlbWVudF9pbl90aGVfY29uc3RydWN0b3JfdG9fcmVmZXJfdG9fc3VwZXJfb3JfdGhpc193aGVuX2FfZGVyaXZlZF9jbGFzc19jb250YWluc19pbml0aWFsaXplZF9wcm9wZXJ0aWVzX3BhcmFtZXRlcl9wcm9wZXJ0aWVzX29yX3ByaXZhdGVfaWRlbnRpZmllcnM6aSgyMzc2LDEsXCJBX3N1cGVyX2NhbGxfbXVzdF9iZV90aGVfZmlyc3Rfc3RhdGVtZW50X2luX3RoZV9jb25zdHJ1Y3Rvcl90b19yZWZlcl90b19zdXBlcl9vcl90aGlzX3doZW5fYV9kZXJpdmVkXzIzNzZcIixcIkEgJ3N1cGVyJyBjYWxsIG11c3QgYmUgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiB0aGUgY29uc3RydWN0b3IgdG8gcmVmZXIgdG8gJ3N1cGVyJyBvciAndGhpcycgd2hlbiBhIGRlcml2ZWQgY2xhc3MgY29udGFpbnMgaW5pdGlhbGl6ZWQgcHJvcGVydGllcywgcGFyYW1ldGVyIHByb3BlcnRpZXMsIG9yIHByaXZhdGUgaWRlbnRpZmllcnMuXCIpLENvbnN0cnVjdG9yc19mb3JfZGVyaXZlZF9jbGFzc2VzX211c3RfY29udGFpbl9hX3N1cGVyX2NhbGw6aSgyMzc3LDEsXCJDb25zdHJ1Y3RvcnNfZm9yX2Rlcml2ZWRfY2xhc3Nlc19tdXN0X2NvbnRhaW5fYV9zdXBlcl9jYWxsXzIzNzdcIixcIkNvbnN0cnVjdG9ycyBmb3IgZGVyaXZlZCBjbGFzc2VzIG11c3QgY29udGFpbiBhICdzdXBlcicgY2FsbC5cIiksQV9nZXRfYWNjZXNzb3JfbXVzdF9yZXR1cm5fYV92YWx1ZTppKDIzNzgsMSxcIkFfZ2V0X2FjY2Vzc29yX211c3RfcmV0dXJuX2FfdmFsdWVfMjM3OFwiLFwiQSAnZ2V0JyBhY2Nlc3NvciBtdXN0IHJldHVybiBhIHZhbHVlLlwiKSxBcmd1bWVudF9vZl90eXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fcGFyYW1ldGVyX29mX3R5cGVfMV93aXRoX2V4YWN0T3B0aW9uYWxQcm9wZXJ0eVR5cGVzX0NvbG9uX3RydWVfQ29uc2lkZXJfYWRkaW5nX3VuZGVmaW5lZF90b190aGVfdHlwZXNfb2ZfdGhlX3RhcmdldF9zX3Byb3BlcnRpZXM6aSgyMzc5LDEsXCJBcmd1bWVudF9vZl90eXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fcGFyYW1ldGVyX29mX3R5cGVfMV93aXRoX2V4YWN0T3B0aW9uYWxQcm9wZXJ0eVR5cGVzX0NvbG9uX3RyXzIzNzlcIixcIkFyZ3VtZW50IG9mIHR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gcGFyYW1ldGVyIG9mIHR5cGUgJ3sxfScgd2l0aCAnZXhhY3RPcHRpb25hbFByb3BlcnR5VHlwZXM6IHRydWUnLiBDb25zaWRlciBhZGRpbmcgJ3VuZGVmaW5lZCcgdG8gdGhlIHR5cGVzIG9mIHRoZSB0YXJnZXQncyBwcm9wZXJ0aWVzLlwiKSxPdmVybG9hZF9zaWduYXR1cmVzX211c3RfYWxsX2JlX2V4cG9ydGVkX29yX25vbl9leHBvcnRlZDppKDIzODMsMSxcIk92ZXJsb2FkX3NpZ25hdHVyZXNfbXVzdF9hbGxfYmVfZXhwb3J0ZWRfb3Jfbm9uX2V4cG9ydGVkXzIzODNcIixcIk92ZXJsb2FkIHNpZ25hdHVyZXMgbXVzdCBhbGwgYmUgZXhwb3J0ZWQgb3Igbm9uLWV4cG9ydGVkLlwiKSxPdmVybG9hZF9zaWduYXR1cmVzX211c3RfYWxsX2JlX2FtYmllbnRfb3Jfbm9uX2FtYmllbnQ6aSgyMzg0LDEsXCJPdmVybG9hZF9zaWduYXR1cmVzX211c3RfYWxsX2JlX2FtYmllbnRfb3Jfbm9uX2FtYmllbnRfMjM4NFwiLFwiT3ZlcmxvYWQgc2lnbmF0dXJlcyBtdXN0IGFsbCBiZSBhbWJpZW50IG9yIG5vbi1hbWJpZW50LlwiKSxPdmVybG9hZF9zaWduYXR1cmVzX211c3RfYWxsX2JlX3B1YmxpY19wcml2YXRlX29yX3Byb3RlY3RlZDppKDIzODUsMSxcIk92ZXJsb2FkX3NpZ25hdHVyZXNfbXVzdF9hbGxfYmVfcHVibGljX3ByaXZhdGVfb3JfcHJvdGVjdGVkXzIzODVcIixcIk92ZXJsb2FkIHNpZ25hdHVyZXMgbXVzdCBhbGwgYmUgcHVibGljLCBwcml2YXRlIG9yIHByb3RlY3RlZC5cIiksT3ZlcmxvYWRfc2lnbmF0dXJlc19tdXN0X2FsbF9iZV9vcHRpb25hbF9vcl9yZXF1aXJlZDppKDIzODYsMSxcIk92ZXJsb2FkX3NpZ25hdHVyZXNfbXVzdF9hbGxfYmVfb3B0aW9uYWxfb3JfcmVxdWlyZWRfMjM4NlwiLFwiT3ZlcmxvYWQgc2lnbmF0dXJlcyBtdXN0IGFsbCBiZSBvcHRpb25hbCBvciByZXF1aXJlZC5cIiksRnVuY3Rpb25fb3ZlcmxvYWRfbXVzdF9iZV9zdGF0aWM6aSgyMzg3LDEsXCJGdW5jdGlvbl9vdmVybG9hZF9tdXN0X2JlX3N0YXRpY18yMzg3XCIsXCJGdW5jdGlvbiBvdmVybG9hZCBtdXN0IGJlIHN0YXRpYy5cIiksRnVuY3Rpb25fb3ZlcmxvYWRfbXVzdF9ub3RfYmVfc3RhdGljOmkoMjM4OCwxLFwiRnVuY3Rpb25fb3ZlcmxvYWRfbXVzdF9ub3RfYmVfc3RhdGljXzIzODhcIixcIkZ1bmN0aW9uIG92ZXJsb2FkIG11c3Qgbm90IGJlIHN0YXRpYy5cIiksRnVuY3Rpb25faW1wbGVtZW50YXRpb25fbmFtZV9tdXN0X2JlXzA6aSgyMzg5LDEsXCJGdW5jdGlvbl9pbXBsZW1lbnRhdGlvbl9uYW1lX211c3RfYmVfMF8yMzg5XCIsXCJGdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBuYW1lIG11c3QgYmUgJ3swfScuXCIpLENvbnN0cnVjdG9yX2ltcGxlbWVudGF0aW9uX2lzX21pc3Npbmc6aSgyMzkwLDEsXCJDb25zdHJ1Y3Rvcl9pbXBsZW1lbnRhdGlvbl9pc19taXNzaW5nXzIzOTBcIixcIkNvbnN0cnVjdG9yIGltcGxlbWVudGF0aW9uIGlzIG1pc3NpbmcuXCIpLEZ1bmN0aW9uX2ltcGxlbWVudGF0aW9uX2lzX21pc3Npbmdfb3Jfbm90X2ltbWVkaWF0ZWx5X2ZvbGxvd2luZ190aGVfZGVjbGFyYXRpb246aSgyMzkxLDEsXCJGdW5jdGlvbl9pbXBsZW1lbnRhdGlvbl9pc19taXNzaW5nX29yX25vdF9pbW1lZGlhdGVseV9mb2xsb3dpbmdfdGhlX2RlY2xhcmF0aW9uXzIzOTFcIixcIkZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIGlzIG1pc3Npbmcgb3Igbm90IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgZGVjbGFyYXRpb24uXCIpLE11bHRpcGxlX2NvbnN0cnVjdG9yX2ltcGxlbWVudGF0aW9uc19hcmVfbm90X2FsbG93ZWQ6aSgyMzkyLDEsXCJNdWx0aXBsZV9jb25zdHJ1Y3Rvcl9pbXBsZW1lbnRhdGlvbnNfYXJlX25vdF9hbGxvd2VkXzIzOTJcIixcIk11bHRpcGxlIGNvbnN0cnVjdG9yIGltcGxlbWVudGF0aW9ucyBhcmUgbm90IGFsbG93ZWQuXCIpLER1cGxpY2F0ZV9mdW5jdGlvbl9pbXBsZW1lbnRhdGlvbjppKDIzOTMsMSxcIkR1cGxpY2F0ZV9mdW5jdGlvbl9pbXBsZW1lbnRhdGlvbl8yMzkzXCIsXCJEdXBsaWNhdGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24uXCIpLFRoaXNfb3ZlcmxvYWRfc2lnbmF0dXJlX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfaXRzX2ltcGxlbWVudGF0aW9uX3NpZ25hdHVyZTppKDIzOTQsMSxcIlRoaXNfb3ZlcmxvYWRfc2lnbmF0dXJlX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfaXRzX2ltcGxlbWVudGF0aW9uX3NpZ25hdHVyZV8yMzk0XCIsXCJUaGlzIG92ZXJsb2FkIHNpZ25hdHVyZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGl0cyBpbXBsZW1lbnRhdGlvbiBzaWduYXR1cmUuXCIpLEluZGl2aWR1YWxfZGVjbGFyYXRpb25zX2luX21lcmdlZF9kZWNsYXJhdGlvbl8wX211c3RfYmVfYWxsX2V4cG9ydGVkX29yX2FsbF9sb2NhbDppKDIzOTUsMSxcIkluZGl2aWR1YWxfZGVjbGFyYXRpb25zX2luX21lcmdlZF9kZWNsYXJhdGlvbl8wX211c3RfYmVfYWxsX2V4cG9ydGVkX29yX2FsbF9sb2NhbF8yMzk1XCIsXCJJbmRpdmlkdWFsIGRlY2xhcmF0aW9ucyBpbiBtZXJnZWQgZGVjbGFyYXRpb24gJ3swfScgbXVzdCBiZSBhbGwgZXhwb3J0ZWQgb3IgYWxsIGxvY2FsLlwiKSxEdXBsaWNhdGVfaWRlbnRpZmllcl9hcmd1bWVudHNfQ29tcGlsZXJfdXNlc19hcmd1bWVudHNfdG9faW5pdGlhbGl6ZV9yZXN0X3BhcmFtZXRlcnM6aSgyMzk2LDEsXCJEdXBsaWNhdGVfaWRlbnRpZmllcl9hcmd1bWVudHNfQ29tcGlsZXJfdXNlc19hcmd1bWVudHNfdG9faW5pdGlhbGl6ZV9yZXN0X3BhcmFtZXRlcnNfMjM5NlwiLFwiRHVwbGljYXRlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycuIENvbXBpbGVyIHVzZXMgJ2FyZ3VtZW50cycgdG8gaW5pdGlhbGl6ZSByZXN0IHBhcmFtZXRlcnMuXCIpLERlY2xhcmF0aW9uX25hbWVfY29uZmxpY3RzX3dpdGhfYnVpbHRfaW5fZ2xvYmFsX2lkZW50aWZpZXJfMDppKDIzOTcsMSxcIkRlY2xhcmF0aW9uX25hbWVfY29uZmxpY3RzX3dpdGhfYnVpbHRfaW5fZ2xvYmFsX2lkZW50aWZpZXJfMF8yMzk3XCIsXCJEZWNsYXJhdGlvbiBuYW1lIGNvbmZsaWN0cyB3aXRoIGJ1aWx0LWluIGdsb2JhbCBpZGVudGlmaWVyICd7MH0nLlwiKSxjb25zdHJ1Y3Rvcl9jYW5ub3RfYmVfdXNlZF9hc19hX3BhcmFtZXRlcl9wcm9wZXJ0eV9uYW1lOmkoMjM5OCwxLFwiY29uc3RydWN0b3JfY2Fubm90X2JlX3VzZWRfYXNfYV9wYXJhbWV0ZXJfcHJvcGVydHlfbmFtZV8yMzk4XCIsXCInY29uc3RydWN0b3InIGNhbm5vdCBiZSB1c2VkIGFzIGEgcGFyYW1ldGVyIHByb3BlcnR5IG5hbWUuXCIpLER1cGxpY2F0ZV9pZGVudGlmaWVyX3RoaXNfQ29tcGlsZXJfdXNlc192YXJpYWJsZV9kZWNsYXJhdGlvbl90aGlzX3RvX2NhcHR1cmVfdGhpc19yZWZlcmVuY2U6aSgyMzk5LDEsXCJEdXBsaWNhdGVfaWRlbnRpZmllcl90aGlzX0NvbXBpbGVyX3VzZXNfdmFyaWFibGVfZGVjbGFyYXRpb25fdGhpc190b19jYXB0dXJlX3RoaXNfcmVmZXJlbmNlXzIzOTlcIixcIkR1cGxpY2F0ZSBpZGVudGlmaWVyICdfdGhpcycuIENvbXBpbGVyIHVzZXMgdmFyaWFibGUgZGVjbGFyYXRpb24gJ190aGlzJyB0byBjYXB0dXJlICd0aGlzJyByZWZlcmVuY2UuXCIpLEV4cHJlc3Npb25fcmVzb2x2ZXNfdG9fdmFyaWFibGVfZGVjbGFyYXRpb25fdGhpc190aGF0X2NvbXBpbGVyX3VzZXNfdG9fY2FwdHVyZV90aGlzX3JlZmVyZW5jZTppKDI0MDAsMSxcIkV4cHJlc3Npb25fcmVzb2x2ZXNfdG9fdmFyaWFibGVfZGVjbGFyYXRpb25fdGhpc190aGF0X2NvbXBpbGVyX3VzZXNfdG9fY2FwdHVyZV90aGlzX3JlZmVyZW5jZV8yNDAwXCIsXCJFeHByZXNzaW9uIHJlc29sdmVzIHRvIHZhcmlhYmxlIGRlY2xhcmF0aW9uICdfdGhpcycgdGhhdCBjb21waWxlciB1c2VzIHRvIGNhcHR1cmUgJ3RoaXMnIHJlZmVyZW5jZS5cIiksQV9zdXBlcl9jYWxsX211c3RfYmVfYV9yb290X2xldmVsX3N0YXRlbWVudF93aXRoaW5fYV9jb25zdHJ1Y3Rvcl9vZl9hX2Rlcml2ZWRfY2xhc3NfdGhhdF9jb250YWluc19pbml0aWFsaXplZF9wcm9wZXJ0aWVzX3BhcmFtZXRlcl9wcm9wZXJ0aWVzX29yX3ByaXZhdGVfaWRlbnRpZmllcnM6aSgyNDAxLDEsXCJBX3N1cGVyX2NhbGxfbXVzdF9iZV9hX3Jvb3RfbGV2ZWxfc3RhdGVtZW50X3dpdGhpbl9hX2NvbnN0cnVjdG9yX29mX2FfZGVyaXZlZF9jbGFzc190aGF0X2NvbnRhaW5zX2luXzI0MDFcIixcIkEgJ3N1cGVyJyBjYWxsIG11c3QgYmUgYSByb290LWxldmVsIHN0YXRlbWVudCB3aXRoaW4gYSBjb25zdHJ1Y3RvciBvZiBhIGRlcml2ZWQgY2xhc3MgdGhhdCBjb250YWlucyBpbml0aWFsaXplZCBwcm9wZXJ0aWVzLCBwYXJhbWV0ZXIgcHJvcGVydGllcywgb3IgcHJpdmF0ZSBpZGVudGlmaWVycy5cIiksRXhwcmVzc2lvbl9yZXNvbHZlc190b19zdXBlcl90aGF0X2NvbXBpbGVyX3VzZXNfdG9fY2FwdHVyZV9iYXNlX2NsYXNzX3JlZmVyZW5jZTppKDI0MDIsMSxcIkV4cHJlc3Npb25fcmVzb2x2ZXNfdG9fc3VwZXJfdGhhdF9jb21waWxlcl91c2VzX3RvX2NhcHR1cmVfYmFzZV9jbGFzc19yZWZlcmVuY2VfMjQwMlwiLFwiRXhwcmVzc2lvbiByZXNvbHZlcyB0byAnX3N1cGVyJyB0aGF0IGNvbXBpbGVyIHVzZXMgdG8gY2FwdHVyZSBiYXNlIGNsYXNzIHJlZmVyZW5jZS5cIiksU3Vic2VxdWVudF92YXJpYWJsZV9kZWNsYXJhdGlvbnNfbXVzdF9oYXZlX3RoZV9zYW1lX3R5cGVfVmFyaWFibGVfMF9tdXN0X2JlX29mX3R5cGVfMV9idXRfaGVyZV9oYXNfdHlwZV8yOmkoMjQwMywxLFwiU3Vic2VxdWVudF92YXJpYWJsZV9kZWNsYXJhdGlvbnNfbXVzdF9oYXZlX3RoZV9zYW1lX3R5cGVfVmFyaWFibGVfMF9tdXN0X2JlX29mX3R5cGVfMV9idXRfaGVyZV9oYXNfdF8yNDAzXCIsXCJTdWJzZXF1ZW50IHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZS4gIFZhcmlhYmxlICd7MH0nIG11c3QgYmUgb2YgdHlwZSAnezF9JywgYnV0IGhlcmUgaGFzIHR5cGUgJ3syfScuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X3VzZV9hX3R5cGVfYW5ub3RhdGlvbjppKDI0MDQsMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X3VzZV9hX3R5cGVfYW5ub3RhdGlvbl8yNDA0XCIsXCJUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSAnZm9yLi4uaW4nIHN0YXRlbWVudCBjYW5ub3QgdXNlIGEgdHlwZSBhbm5vdGF0aW9uLlwiKSxUaGVfbGVmdF9oYW5kX3NpZGVfb2ZfYV9mb3JfaW5fc3RhdGVtZW50X211c3RfYmVfb2ZfdHlwZV9zdHJpbmdfb3JfYW55OmkoMjQwNSwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9tdXN0X2JlX29mX3R5cGVfc3RyaW5nX29yX2FueV8yNDA1XCIsXCJUaGUgbGVmdC1oYW5kIHNpZGUgb2YgYSAnZm9yLi4uaW4nIHN0YXRlbWVudCBtdXN0IGJlIG9mIHR5cGUgJ3N0cmluZycgb3IgJ2FueScuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfbXVzdF9iZV9hX3ZhcmlhYmxlX29yX2FfcHJvcGVydHlfYWNjZXNzOmkoMjQwNiwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9tdXN0X2JlX2FfdmFyaWFibGVfb3JfYV9wcm9wZXJ0eV9hY2Nlc3NfMjQwNlwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgbXVzdCBiZSBhIHZhcmlhYmxlIG9yIGEgcHJvcGVydHkgYWNjZXNzLlwiKSxUaGVfcmlnaHRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9tdXN0X2JlX29mX3R5cGVfYW55X2FuX29iamVjdF90eXBlX29yX2FfdHlwZV9wYXJhbWV0ZXJfYnV0X2hlcmVfaGFzX3R5cGVfMDppKDI0MDcsMSxcIlRoZV9yaWdodF9oYW5kX3NpZGVfb2ZfYV9mb3JfaW5fc3RhdGVtZW50X211c3RfYmVfb2ZfdHlwZV9hbnlfYW5fb2JqZWN0X3R5cGVfb3JfYV90eXBlX3BhcmFtZXRlcl9idXRfMjQwN1wiLFwiVGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5pbicgc3RhdGVtZW50IG11c3QgYmUgb2YgdHlwZSAnYW55JywgYW4gb2JqZWN0IHR5cGUgb3IgYSB0eXBlIHBhcmFtZXRlciwgYnV0IGhlcmUgaGFzIHR5cGUgJ3swfScuXCIpLFNldHRlcnNfY2Fubm90X3JldHVybl9hX3ZhbHVlOmkoMjQwOCwxLFwiU2V0dGVyc19jYW5ub3RfcmV0dXJuX2FfdmFsdWVfMjQwOFwiLFwiU2V0dGVycyBjYW5ub3QgcmV0dXJuIGEgdmFsdWUuXCIpLFJldHVybl90eXBlX29mX2NvbnN0cnVjdG9yX3NpZ25hdHVyZV9tdXN0X2JlX2Fzc2lnbmFibGVfdG9fdGhlX2luc3RhbmNlX3R5cGVfb2ZfdGhlX2NsYXNzOmkoMjQwOSwxLFwiUmV0dXJuX3R5cGVfb2ZfY29uc3RydWN0b3Jfc2lnbmF0dXJlX211c3RfYmVfYXNzaWduYWJsZV90b190aGVfaW5zdGFuY2VfdHlwZV9vZl90aGVfY2xhc3NfMjQwOVwiLFwiUmV0dXJuIHR5cGUgb2YgY29uc3RydWN0b3Igc2lnbmF0dXJlIG11c3QgYmUgYXNzaWduYWJsZSB0byB0aGUgaW5zdGFuY2UgdHlwZSBvZiB0aGUgY2xhc3MuXCIpLFRoZV93aXRoX3N0YXRlbWVudF9pc19ub3Rfc3VwcG9ydGVkX0FsbF9zeW1ib2xzX2luX2Ffd2l0aF9ibG9ja193aWxsX2hhdmVfdHlwZV9hbnk6aSgyNDEwLDEsXCJUaGVfd2l0aF9zdGF0ZW1lbnRfaXNfbm90X3N1cHBvcnRlZF9BbGxfc3ltYm9sc19pbl9hX3dpdGhfYmxvY2tfd2lsbF9oYXZlX3R5cGVfYW55XzI0MTBcIixcIlRoZSAnd2l0aCcgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQuIEFsbCBzeW1ib2xzIGluIGEgJ3dpdGgnIGJsb2NrIHdpbGwgaGF2ZSB0eXBlICdhbnknLlwiKSxUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX3dpdGhfZXhhY3RPcHRpb25hbFByb3BlcnR5VHlwZXNfQ29sb25fdHJ1ZV9Db25zaWRlcl9hZGRpbmdfdW5kZWZpbmVkX3RvX3RoZV90eXBlX29mX3RoZV90YXJnZXQ6aSgyNDEyLDEsXCJUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX3dpdGhfZXhhY3RPcHRpb25hbFByb3BlcnR5VHlwZXNfQ29sb25fdHJ1ZV9Db25zaWRlcl9hZGRpbmdfdW5kZWZpXzI0MTJcIixcIlR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnezF9JyB3aXRoICdleGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlczogdHJ1ZScuIENvbnNpZGVyIGFkZGluZyAndW5kZWZpbmVkJyB0byB0aGUgdHlwZSBvZiB0aGUgdGFyZ2V0LlwiKSxQcm9wZXJ0eV8wX29mX3R5cGVfMV9pc19ub3RfYXNzaWduYWJsZV90b18yX2luZGV4X3R5cGVfMzppKDI0MTEsMSxcIlByb3BlcnR5XzBfb2ZfdHlwZV8xX2lzX25vdF9hc3NpZ25hYmxlX3RvXzJfaW5kZXhfdHlwZV8zXzI0MTFcIixcIlByb3BlcnR5ICd7MH0nIG9mIHR5cGUgJ3sxfScgaXMgbm90IGFzc2lnbmFibGUgdG8gJ3syfScgaW5kZXggdHlwZSAnezN9Jy5cIiksXzBfaW5kZXhfdHlwZV8xX2lzX25vdF9hc3NpZ25hYmxlX3RvXzJfaW5kZXhfdHlwZV8zOmkoMjQxMywxLFwiXzBfaW5kZXhfdHlwZV8xX2lzX25vdF9hc3NpZ25hYmxlX3RvXzJfaW5kZXhfdHlwZV8zXzI0MTNcIixcIid7MH0nIGluZGV4IHR5cGUgJ3sxfScgaXMgbm90IGFzc2lnbmFibGUgdG8gJ3syfScgaW5kZXggdHlwZSAnezN9Jy5cIiksQ2xhc3NfbmFtZV9jYW5ub3RfYmVfMDppKDI0MTQsMSxcIkNsYXNzX25hbWVfY2Fubm90X2JlXzBfMjQxNFwiLFwiQ2xhc3MgbmFtZSBjYW5ub3QgYmUgJ3swfScuXCIpLENsYXNzXzBfaW5jb3JyZWN0bHlfZXh0ZW5kc19iYXNlX2NsYXNzXzE6aSgyNDE1LDEsXCJDbGFzc18wX2luY29ycmVjdGx5X2V4dGVuZHNfYmFzZV9jbGFzc18xXzI0MTVcIixcIkNsYXNzICd7MH0nIGluY29ycmVjdGx5IGV4dGVuZHMgYmFzZSBjbGFzcyAnezF9Jy5cIiksUHJvcGVydHlfMF9pbl90eXBlXzFfaXNfbm90X2Fzc2lnbmFibGVfdG9fdGhlX3NhbWVfcHJvcGVydHlfaW5fYmFzZV90eXBlXzI6aSgyNDE2LDEsXCJQcm9wZXJ0eV8wX2luX3R5cGVfMV9pc19ub3RfYXNzaWduYWJsZV90b190aGVfc2FtZV9wcm9wZXJ0eV9pbl9iYXNlX3R5cGVfMl8yNDE2XCIsXCJQcm9wZXJ0eSAnezB9JyBpbiB0eXBlICd7MX0nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHRoZSBzYW1lIHByb3BlcnR5IGluIGJhc2UgdHlwZSAnezJ9Jy5cIiksQ2xhc3Nfc3RhdGljX3NpZGVfMF9pbmNvcnJlY3RseV9leHRlbmRzX2Jhc2VfY2xhc3Nfc3RhdGljX3NpZGVfMTppKDI0MTcsMSxcIkNsYXNzX3N0YXRpY19zaWRlXzBfaW5jb3JyZWN0bHlfZXh0ZW5kc19iYXNlX2NsYXNzX3N0YXRpY19zaWRlXzFfMjQxN1wiLFwiQ2xhc3Mgc3RhdGljIHNpZGUgJ3swfScgaW5jb3JyZWN0bHkgZXh0ZW5kcyBiYXNlIGNsYXNzIHN0YXRpYyBzaWRlICd7MX0nLlwiKSxUeXBlX29mX2NvbXB1dGVkX3Byb3BlcnR5X3NfdmFsdWVfaXNfMF93aGljaF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzE6aSgyNDE4LDEsXCJUeXBlX29mX2NvbXB1dGVkX3Byb3BlcnR5X3NfdmFsdWVfaXNfMF93aGljaF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfMjQxOFwiLFwiVHlwZSBvZiBjb21wdXRlZCBwcm9wZXJ0eSdzIHZhbHVlIGlzICd7MH0nLCB3aGljaCBpcyBub3QgYXNzaWduYWJsZSB0byB0eXBlICd7MX0nLlwiKSxUeXBlc19vZl9jb25zdHJ1Y3Rfc2lnbmF0dXJlc19hcmVfaW5jb21wYXRpYmxlOmkoMjQxOSwxLFwiVHlwZXNfb2ZfY29uc3RydWN0X3NpZ25hdHVyZXNfYXJlX2luY29tcGF0aWJsZV8yNDE5XCIsXCJUeXBlcyBvZiBjb25zdHJ1Y3Qgc2lnbmF0dXJlcyBhcmUgaW5jb21wYXRpYmxlLlwiKSxDbGFzc18wX2luY29ycmVjdGx5X2ltcGxlbWVudHNfaW50ZXJmYWNlXzE6aSgyNDIwLDEsXCJDbGFzc18wX2luY29ycmVjdGx5X2ltcGxlbWVudHNfaW50ZXJmYWNlXzFfMjQyMFwiLFwiQ2xhc3MgJ3swfScgaW5jb3JyZWN0bHkgaW1wbGVtZW50cyBpbnRlcmZhY2UgJ3sxfScuXCIpLEFfY2xhc3NfY2FuX29ubHlfaW1wbGVtZW50X2FuX29iamVjdF90eXBlX29yX2ludGVyc2VjdGlvbl9vZl9vYmplY3RfdHlwZXNfd2l0aF9zdGF0aWNhbGx5X2tub3duX21lbWJlcnM6aSgyNDIyLDEsXCJBX2NsYXNzX2Nhbl9vbmx5X2ltcGxlbWVudF9hbl9vYmplY3RfdHlwZV9vcl9pbnRlcnNlY3Rpb25fb2Zfb2JqZWN0X3R5cGVzX3dpdGhfc3RhdGljYWxseV9rbm93bl9tZW1iXzI0MjJcIixcIkEgY2xhc3MgY2FuIG9ubHkgaW1wbGVtZW50IGFuIG9iamVjdCB0eXBlIG9yIGludGVyc2VjdGlvbiBvZiBvYmplY3QgdHlwZXMgd2l0aCBzdGF0aWNhbGx5IGtub3duIG1lbWJlcnMuXCIpLENsYXNzXzBfZGVmaW5lc19pbnN0YW5jZV9tZW1iZXJfZnVuY3Rpb25fMV9idXRfZXh0ZW5kZWRfY2xhc3NfMl9kZWZpbmVzX2l0X2FzX2luc3RhbmNlX21lbWJlcl9hY2Nlc3NvcjppKDI0MjMsMSxcIkNsYXNzXzBfZGVmaW5lc19pbnN0YW5jZV9tZW1iZXJfZnVuY3Rpb25fMV9idXRfZXh0ZW5kZWRfY2xhc3NfMl9kZWZpbmVzX2l0X2FzX2luc3RhbmNlX21lbWJlcl9hY2Nlc3NfMjQyM1wiLFwiQ2xhc3MgJ3swfScgZGVmaW5lcyBpbnN0YW5jZSBtZW1iZXIgZnVuY3Rpb24gJ3sxfScsIGJ1dCBleHRlbmRlZCBjbGFzcyAnezJ9JyBkZWZpbmVzIGl0IGFzIGluc3RhbmNlIG1lbWJlciBhY2Nlc3Nvci5cIiksQ2xhc3NfMF9kZWZpbmVzX2luc3RhbmNlX21lbWJlcl9wcm9wZXJ0eV8xX2J1dF9leHRlbmRlZF9jbGFzc18yX2RlZmluZXNfaXRfYXNfaW5zdGFuY2VfbWVtYmVyX2Z1bmN0aW9uOmkoMjQyNSwxLFwiQ2xhc3NfMF9kZWZpbmVzX2luc3RhbmNlX21lbWJlcl9wcm9wZXJ0eV8xX2J1dF9leHRlbmRlZF9jbGFzc18yX2RlZmluZXNfaXRfYXNfaW5zdGFuY2VfbWVtYmVyX2Z1bmN0aV8yNDI1XCIsXCJDbGFzcyAnezB9JyBkZWZpbmVzIGluc3RhbmNlIG1lbWJlciBwcm9wZXJ0eSAnezF9JywgYnV0IGV4dGVuZGVkIGNsYXNzICd7Mn0nIGRlZmluZXMgaXQgYXMgaW5zdGFuY2UgbWVtYmVyIGZ1bmN0aW9uLlwiKSxDbGFzc18wX2RlZmluZXNfaW5zdGFuY2VfbWVtYmVyX2FjY2Vzc29yXzFfYnV0X2V4dGVuZGVkX2NsYXNzXzJfZGVmaW5lc19pdF9hc19pbnN0YW5jZV9tZW1iZXJfZnVuY3Rpb246aSgyNDI2LDEsXCJDbGFzc18wX2RlZmluZXNfaW5zdGFuY2VfbWVtYmVyX2FjY2Vzc29yXzFfYnV0X2V4dGVuZGVkX2NsYXNzXzJfZGVmaW5lc19pdF9hc19pbnN0YW5jZV9tZW1iZXJfZnVuY3RpXzI0MjZcIixcIkNsYXNzICd7MH0nIGRlZmluZXMgaW5zdGFuY2UgbWVtYmVyIGFjY2Vzc29yICd7MX0nLCBidXQgZXh0ZW5kZWQgY2xhc3MgJ3syfScgZGVmaW5lcyBpdCBhcyBpbnN0YW5jZSBtZW1iZXIgZnVuY3Rpb24uXCIpLEludGVyZmFjZV9uYW1lX2Nhbm5vdF9iZV8wOmkoMjQyNywxLFwiSW50ZXJmYWNlX25hbWVfY2Fubm90X2JlXzBfMjQyN1wiLFwiSW50ZXJmYWNlIG5hbWUgY2Fubm90IGJlICd7MH0nLlwiKSxBbGxfZGVjbGFyYXRpb25zX29mXzBfbXVzdF9oYXZlX2lkZW50aWNhbF90eXBlX3BhcmFtZXRlcnM6aSgyNDI4LDEsXCJBbGxfZGVjbGFyYXRpb25zX29mXzBfbXVzdF9oYXZlX2lkZW50aWNhbF90eXBlX3BhcmFtZXRlcnNfMjQyOFwiLFwiQWxsIGRlY2xhcmF0aW9ucyBvZiAnezB9JyBtdXN0IGhhdmUgaWRlbnRpY2FsIHR5cGUgcGFyYW1ldGVycy5cIiksSW50ZXJmYWNlXzBfaW5jb3JyZWN0bHlfZXh0ZW5kc19pbnRlcmZhY2VfMTppKDI0MzAsMSxcIkludGVyZmFjZV8wX2luY29ycmVjdGx5X2V4dGVuZHNfaW50ZXJmYWNlXzFfMjQzMFwiLFwiSW50ZXJmYWNlICd7MH0nIGluY29ycmVjdGx5IGV4dGVuZHMgaW50ZXJmYWNlICd7MX0nLlwiKSxFbnVtX25hbWVfY2Fubm90X2JlXzA6aSgyNDMxLDEsXCJFbnVtX25hbWVfY2Fubm90X2JlXzBfMjQzMVwiLFwiRW51bSBuYW1lIGNhbm5vdCBiZSAnezB9Jy5cIiksSW5fYW5fZW51bV93aXRoX211bHRpcGxlX2RlY2xhcmF0aW9uc19vbmx5X29uZV9kZWNsYXJhdGlvbl9jYW5fb21pdF9hbl9pbml0aWFsaXplcl9mb3JfaXRzX2ZpcnN0X2VudW1fZWxlbWVudDppKDI0MzIsMSxcIkluX2FuX2VudW1fd2l0aF9tdWx0aXBsZV9kZWNsYXJhdGlvbnNfb25seV9vbmVfZGVjbGFyYXRpb25fY2FuX29taXRfYW5faW5pdGlhbGl6ZXJfZm9yX2l0c19maXJzdF9lbnVfMjQzMlwiLFwiSW4gYW4gZW51bSB3aXRoIG11bHRpcGxlIGRlY2xhcmF0aW9ucywgb25seSBvbmUgZGVjbGFyYXRpb24gY2FuIG9taXQgYW4gaW5pdGlhbGl6ZXIgZm9yIGl0cyBmaXJzdCBlbnVtIGVsZW1lbnQuXCIpLEFfbmFtZXNwYWNlX2RlY2xhcmF0aW9uX2Nhbm5vdF9iZV9pbl9hX2RpZmZlcmVudF9maWxlX2Zyb21fYV9jbGFzc19vcl9mdW5jdGlvbl93aXRoX3doaWNoX2l0X2lzX21lcmdlZDppKDI0MzMsMSxcIkFfbmFtZXNwYWNlX2RlY2xhcmF0aW9uX2Nhbm5vdF9iZV9pbl9hX2RpZmZlcmVudF9maWxlX2Zyb21fYV9jbGFzc19vcl9mdW5jdGlvbl93aXRoX3doaWNoX2l0X2lzX21lcmdfMjQzM1wiLFwiQSBuYW1lc3BhY2UgZGVjbGFyYXRpb24gY2Fubm90IGJlIGluIGEgZGlmZmVyZW50IGZpbGUgZnJvbSBhIGNsYXNzIG9yIGZ1bmN0aW9uIHdpdGggd2hpY2ggaXQgaXMgbWVyZ2VkLlwiKSxBX25hbWVzcGFjZV9kZWNsYXJhdGlvbl9jYW5ub3RfYmVfbG9jYXRlZF9wcmlvcl90b19hX2NsYXNzX29yX2Z1bmN0aW9uX3dpdGhfd2hpY2hfaXRfaXNfbWVyZ2VkOmkoMjQzNCwxLFwiQV9uYW1lc3BhY2VfZGVjbGFyYXRpb25fY2Fubm90X2JlX2xvY2F0ZWRfcHJpb3JfdG9fYV9jbGFzc19vcl9mdW5jdGlvbl93aXRoX3doaWNoX2l0X2lzX21lcmdlZF8yNDM0XCIsXCJBIG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBjYW5ub3QgYmUgbG9jYXRlZCBwcmlvciB0byBhIGNsYXNzIG9yIGZ1bmN0aW9uIHdpdGggd2hpY2ggaXQgaXMgbWVyZ2VkLlwiKSxBbWJpZW50X21vZHVsZXNfY2Fubm90X2JlX25lc3RlZF9pbl9vdGhlcl9tb2R1bGVzX29yX25hbWVzcGFjZXM6aSgyNDM1LDEsXCJBbWJpZW50X21vZHVsZXNfY2Fubm90X2JlX25lc3RlZF9pbl9vdGhlcl9tb2R1bGVzX29yX25hbWVzcGFjZXNfMjQzNVwiLFwiQW1iaWVudCBtb2R1bGVzIGNhbm5vdCBiZSBuZXN0ZWQgaW4gb3RoZXIgbW9kdWxlcyBvciBuYW1lc3BhY2VzLlwiKSxBbWJpZW50X21vZHVsZV9kZWNsYXJhdGlvbl9jYW5ub3Rfc3BlY2lmeV9yZWxhdGl2ZV9tb2R1bGVfbmFtZTppKDI0MzYsMSxcIkFtYmllbnRfbW9kdWxlX2RlY2xhcmF0aW9uX2Nhbm5vdF9zcGVjaWZ5X3JlbGF0aXZlX21vZHVsZV9uYW1lXzI0MzZcIixcIkFtYmllbnQgbW9kdWxlIGRlY2xhcmF0aW9uIGNhbm5vdCBzcGVjaWZ5IHJlbGF0aXZlIG1vZHVsZSBuYW1lLlwiKSxNb2R1bGVfMF9pc19oaWRkZW5fYnlfYV9sb2NhbF9kZWNsYXJhdGlvbl93aXRoX3RoZV9zYW1lX25hbWU6aSgyNDM3LDEsXCJNb2R1bGVfMF9pc19oaWRkZW5fYnlfYV9sb2NhbF9kZWNsYXJhdGlvbl93aXRoX3RoZV9zYW1lX25hbWVfMjQzN1wiLFwiTW9kdWxlICd7MH0nIGlzIGhpZGRlbiBieSBhIGxvY2FsIGRlY2xhcmF0aW9uIHdpdGggdGhlIHNhbWUgbmFtZS5cIiksSW1wb3J0X25hbWVfY2Fubm90X2JlXzA6aSgyNDM4LDEsXCJJbXBvcnRfbmFtZV9jYW5ub3RfYmVfMF8yNDM4XCIsXCJJbXBvcnQgbmFtZSBjYW5ub3QgYmUgJ3swfScuXCIpLEltcG9ydF9vcl9leHBvcnRfZGVjbGFyYXRpb25faW5fYW5fYW1iaWVudF9tb2R1bGVfZGVjbGFyYXRpb25fY2Fubm90X3JlZmVyZW5jZV9tb2R1bGVfdGhyb3VnaF9yZWxhdGl2ZV9tb2R1bGVfbmFtZTppKDI0MzksMSxcIkltcG9ydF9vcl9leHBvcnRfZGVjbGFyYXRpb25faW5fYW5fYW1iaWVudF9tb2R1bGVfZGVjbGFyYXRpb25fY2Fubm90X3JlZmVyZW5jZV9tb2R1bGVfdGhyb3VnaF9yZWxhdGlfMjQzOVwiLFwiSW1wb3J0IG9yIGV4cG9ydCBkZWNsYXJhdGlvbiBpbiBhbiBhbWJpZW50IG1vZHVsZSBkZWNsYXJhdGlvbiBjYW5ub3QgcmVmZXJlbmNlIG1vZHVsZSB0aHJvdWdoIHJlbGF0aXZlIG1vZHVsZSBuYW1lLlwiKSxJbXBvcnRfZGVjbGFyYXRpb25fY29uZmxpY3RzX3dpdGhfbG9jYWxfZGVjbGFyYXRpb25fb2ZfMDppKDI0NDAsMSxcIkltcG9ydF9kZWNsYXJhdGlvbl9jb25mbGljdHNfd2l0aF9sb2NhbF9kZWNsYXJhdGlvbl9vZl8wXzI0NDBcIixcIkltcG9ydCBkZWNsYXJhdGlvbiBjb25mbGljdHMgd2l0aCBsb2NhbCBkZWNsYXJhdGlvbiBvZiAnezB9Jy5cIiksRHVwbGljYXRlX2lkZW50aWZpZXJfMF9Db21waWxlcl9yZXNlcnZlc19uYW1lXzFfaW5fdG9wX2xldmVsX3Njb3BlX29mX2FfbW9kdWxlOmkoMjQ0MSwxLFwiRHVwbGljYXRlX2lkZW50aWZpZXJfMF9Db21waWxlcl9yZXNlcnZlc19uYW1lXzFfaW5fdG9wX2xldmVsX3Njb3BlX29mX2FfbW9kdWxlXzI0NDFcIixcIkR1cGxpY2F0ZSBpZGVudGlmaWVyICd7MH0nLiBDb21waWxlciByZXNlcnZlcyBuYW1lICd7MX0nIGluIHRvcCBsZXZlbCBzY29wZSBvZiBhIG1vZHVsZS5cIiksVHlwZXNfaGF2ZV9zZXBhcmF0ZV9kZWNsYXJhdGlvbnNfb2ZfYV9wcml2YXRlX3Byb3BlcnR5XzA6aSgyNDQyLDEsXCJUeXBlc19oYXZlX3NlcGFyYXRlX2RlY2xhcmF0aW9uc19vZl9hX3ByaXZhdGVfcHJvcGVydHlfMF8yNDQyXCIsXCJUeXBlcyBoYXZlIHNlcGFyYXRlIGRlY2xhcmF0aW9ucyBvZiBhIHByaXZhdGUgcHJvcGVydHkgJ3swfScuXCIpLFByb3BlcnR5XzBfaXNfcHJvdGVjdGVkX2J1dF90eXBlXzFfaXNfbm90X2FfY2xhc3NfZGVyaXZlZF9mcm9tXzI6aSgyNDQzLDEsXCJQcm9wZXJ0eV8wX2lzX3Byb3RlY3RlZF9idXRfdHlwZV8xX2lzX25vdF9hX2NsYXNzX2Rlcml2ZWRfZnJvbV8yXzI0NDNcIixcIlByb3BlcnR5ICd7MH0nIGlzIHByb3RlY3RlZCBidXQgdHlwZSAnezF9JyBpcyBub3QgYSBjbGFzcyBkZXJpdmVkIGZyb20gJ3syfScuXCIpLFByb3BlcnR5XzBfaXNfcHJvdGVjdGVkX2luX3R5cGVfMV9idXRfcHVibGljX2luX3R5cGVfMjppKDI0NDQsMSxcIlByb3BlcnR5XzBfaXNfcHJvdGVjdGVkX2luX3R5cGVfMV9idXRfcHVibGljX2luX3R5cGVfMl8yNDQ0XCIsXCJQcm9wZXJ0eSAnezB9JyBpcyBwcm90ZWN0ZWQgaW4gdHlwZSAnezF9JyBidXQgcHVibGljIGluIHR5cGUgJ3syfScuXCIpLFByb3BlcnR5XzBfaXNfcHJvdGVjdGVkX2FuZF9vbmx5X2FjY2Vzc2libGVfd2l0aGluX2NsYXNzXzFfYW5kX2l0c19zdWJjbGFzc2VzOmkoMjQ0NSwxLFwiUHJvcGVydHlfMF9pc19wcm90ZWN0ZWRfYW5kX29ubHlfYWNjZXNzaWJsZV93aXRoaW5fY2xhc3NfMV9hbmRfaXRzX3N1YmNsYXNzZXNfMjQ0NVwiLFwiUHJvcGVydHkgJ3swfScgaXMgcHJvdGVjdGVkIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICd7MX0nIGFuZCBpdHMgc3ViY2xhc3Nlcy5cIiksUHJvcGVydHlfMF9pc19wcm90ZWN0ZWRfYW5kX29ubHlfYWNjZXNzaWJsZV90aHJvdWdoX2FuX2luc3RhbmNlX29mX2NsYXNzXzFfVGhpc19pc19hbl9pbnN0YW5jZV9vZl9jbGFzc18yOmkoMjQ0NiwxLFwiUHJvcGVydHlfMF9pc19wcm90ZWN0ZWRfYW5kX29ubHlfYWNjZXNzaWJsZV90aHJvdWdoX2FuX2luc3RhbmNlX29mX2NsYXNzXzFfVGhpc19pc19hbl9pbnN0YW5jZV9vZl9jbF8yNDQ2XCIsXCJQcm9wZXJ0eSAnezB9JyBpcyBwcm90ZWN0ZWQgYW5kIG9ubHkgYWNjZXNzaWJsZSB0aHJvdWdoIGFuIGluc3RhbmNlIG9mIGNsYXNzICd7MX0nLiBUaGlzIGlzIGFuIGluc3RhbmNlIG9mIGNsYXNzICd7Mn0nLlwiKSxUaGVfMF9vcGVyYXRvcl9pc19ub3RfYWxsb3dlZF9mb3JfYm9vbGVhbl90eXBlc19Db25zaWRlcl91c2luZ18xX2luc3RlYWQ6aSgyNDQ3LDEsXCJUaGVfMF9vcGVyYXRvcl9pc19ub3RfYWxsb3dlZF9mb3JfYm9vbGVhbl90eXBlc19Db25zaWRlcl91c2luZ18xX2luc3RlYWRfMjQ0N1wiLFwiVGhlICd7MH0nIG9wZXJhdG9yIGlzIG5vdCBhbGxvd2VkIGZvciBib29sZWFuIHR5cGVzLiBDb25zaWRlciB1c2luZyAnezF9JyBpbnN0ZWFkLlwiKSxCbG9ja19zY29wZWRfdmFyaWFibGVfMF91c2VkX2JlZm9yZV9pdHNfZGVjbGFyYXRpb246aSgyNDQ4LDEsXCJCbG9ja19zY29wZWRfdmFyaWFibGVfMF91c2VkX2JlZm9yZV9pdHNfZGVjbGFyYXRpb25fMjQ0OFwiLFwiQmxvY2stc2NvcGVkIHZhcmlhYmxlICd7MH0nIHVzZWQgYmVmb3JlIGl0cyBkZWNsYXJhdGlvbi5cIiksQ2xhc3NfMF91c2VkX2JlZm9yZV9pdHNfZGVjbGFyYXRpb246aSgyNDQ5LDEsXCJDbGFzc18wX3VzZWRfYmVmb3JlX2l0c19kZWNsYXJhdGlvbl8yNDQ5XCIsXCJDbGFzcyAnezB9JyB1c2VkIGJlZm9yZSBpdHMgZGVjbGFyYXRpb24uXCIpLEVudW1fMF91c2VkX2JlZm9yZV9pdHNfZGVjbGFyYXRpb246aSgyNDUwLDEsXCJFbnVtXzBfdXNlZF9iZWZvcmVfaXRzX2RlY2xhcmF0aW9uXzI0NTBcIixcIkVudW0gJ3swfScgdXNlZCBiZWZvcmUgaXRzIGRlY2xhcmF0aW9uLlwiKSxDYW5ub3RfcmVkZWNsYXJlX2Jsb2NrX3Njb3BlZF92YXJpYWJsZV8wOmkoMjQ1MSwxLFwiQ2Fubm90X3JlZGVjbGFyZV9ibG9ja19zY29wZWRfdmFyaWFibGVfMF8yNDUxXCIsXCJDYW5ub3QgcmVkZWNsYXJlIGJsb2NrLXNjb3BlZCB2YXJpYWJsZSAnezB9Jy5cIiksQW5fZW51bV9tZW1iZXJfY2Fubm90X2hhdmVfYV9udW1lcmljX25hbWU6aSgyNDUyLDEsXCJBbl9lbnVtX21lbWJlcl9jYW5ub3RfaGF2ZV9hX251bWVyaWNfbmFtZV8yNDUyXCIsXCJBbiBlbnVtIG1lbWJlciBjYW5ub3QgaGF2ZSBhIG51bWVyaWMgbmFtZS5cIiksVmFyaWFibGVfMF9pc191c2VkX2JlZm9yZV9iZWluZ19hc3NpZ25lZDppKDI0NTQsMSxcIlZhcmlhYmxlXzBfaXNfdXNlZF9iZWZvcmVfYmVpbmdfYXNzaWduZWRfMjQ1NFwiLFwiVmFyaWFibGUgJ3swfScgaXMgdXNlZCBiZWZvcmUgYmVpbmcgYXNzaWduZWQuXCIpLFR5cGVfYWxpYXNfMF9jaXJjdWxhcmx5X3JlZmVyZW5jZXNfaXRzZWxmOmkoMjQ1NiwxLFwiVHlwZV9hbGlhc18wX2NpcmN1bGFybHlfcmVmZXJlbmNlc19pdHNlbGZfMjQ1NlwiLFwiVHlwZSBhbGlhcyAnezB9JyBjaXJjdWxhcmx5IHJlZmVyZW5jZXMgaXRzZWxmLlwiKSxUeXBlX2FsaWFzX25hbWVfY2Fubm90X2JlXzA6aSgyNDU3LDEsXCJUeXBlX2FsaWFzX25hbWVfY2Fubm90X2JlXzBfMjQ1N1wiLFwiVHlwZSBhbGlhcyBuYW1lIGNhbm5vdCBiZSAnezB9Jy5cIiksQW5fQU1EX21vZHVsZV9jYW5ub3RfaGF2ZV9tdWx0aXBsZV9uYW1lX2Fzc2lnbm1lbnRzOmkoMjQ1OCwxLFwiQW5fQU1EX21vZHVsZV9jYW5ub3RfaGF2ZV9tdWx0aXBsZV9uYW1lX2Fzc2lnbm1lbnRzXzI0NThcIixcIkFuIEFNRCBtb2R1bGUgY2Fubm90IGhhdmUgbXVsdGlwbGUgbmFtZSBhc3NpZ25tZW50cy5cIiksTW9kdWxlXzBfZGVjbGFyZXNfMV9sb2NhbGx5X2J1dF9pdF9pc19ub3RfZXhwb3J0ZWQ6aSgyNDU5LDEsXCJNb2R1bGVfMF9kZWNsYXJlc18xX2xvY2FsbHlfYnV0X2l0X2lzX25vdF9leHBvcnRlZF8yNDU5XCIsXCJNb2R1bGUgJ3swfScgZGVjbGFyZXMgJ3sxfScgbG9jYWxseSwgYnV0IGl0IGlzIG5vdCBleHBvcnRlZC5cIiksTW9kdWxlXzBfZGVjbGFyZXNfMV9sb2NhbGx5X2J1dF9pdF9pc19leHBvcnRlZF9hc18yOmkoMjQ2MCwxLFwiTW9kdWxlXzBfZGVjbGFyZXNfMV9sb2NhbGx5X2J1dF9pdF9pc19leHBvcnRlZF9hc18yXzI0NjBcIixcIk1vZHVsZSAnezB9JyBkZWNsYXJlcyAnezF9JyBsb2NhbGx5LCBidXQgaXQgaXMgZXhwb3J0ZWQgYXMgJ3syfScuXCIpLFR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZTppKDI0NjEsMSxcIlR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZV8yNDYxXCIsXCJUeXBlICd7MH0nIGlzIG5vdCBhbiBhcnJheSB0eXBlLlwiKSxBX3Jlc3RfZWxlbWVudF9tdXN0X2JlX2xhc3RfaW5fYV9kZXN0cnVjdHVyaW5nX3BhdHRlcm46aSgyNDYyLDEsXCJBX3Jlc3RfZWxlbWVudF9tdXN0X2JlX2xhc3RfaW5fYV9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fMjQ2MlwiLFwiQSByZXN0IGVsZW1lbnQgbXVzdCBiZSBsYXN0IGluIGEgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuLlwiKSxBX2JpbmRpbmdfcGF0dGVybl9wYXJhbWV0ZXJfY2Fubm90X2JlX29wdGlvbmFsX2luX2FuX2ltcGxlbWVudGF0aW9uX3NpZ25hdHVyZTppKDI0NjMsMSxcIkFfYmluZGluZ19wYXR0ZXJuX3BhcmFtZXRlcl9jYW5ub3RfYmVfb3B0aW9uYWxfaW5fYW5faW1wbGVtZW50YXRpb25fc2lnbmF0dXJlXzI0NjNcIixcIkEgYmluZGluZyBwYXR0ZXJuIHBhcmFtZXRlciBjYW5ub3QgYmUgb3B0aW9uYWwgaW4gYW4gaW1wbGVtZW50YXRpb24gc2lnbmF0dXJlLlwiKSxBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfbXVzdF9iZV9vZl90eXBlX3N0cmluZ19udW1iZXJfc3ltYm9sX29yX2FueTppKDI0NjQsMSxcIkFfY29tcHV0ZWRfcHJvcGVydHlfbmFtZV9tdXN0X2JlX29mX3R5cGVfc3RyaW5nX251bWJlcl9zeW1ib2xfb3JfYW55XzI0NjRcIixcIkEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBtdXN0IGJlIG9mIHR5cGUgJ3N0cmluZycsICdudW1iZXInLCAnc3ltYm9sJywgb3IgJ2FueScuXCIpLHRoaXNfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lOmkoMjQ2NSwxLFwidGhpc19jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9hX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfMjQ2NVwiLFwiJ3RoaXMnIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZS5cIiksc3VwZXJfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lOmkoMjQ2NiwxLFwic3VwZXJfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYV9jb21wdXRlZF9wcm9wZXJ0eV9uYW1lXzI0NjZcIixcIidzdXBlcicgY2Fubm90IGJlIHJlZmVyZW5jZWQgaW4gYSBjb21wdXRlZCBwcm9wZXJ0eSBuYW1lLlwiKSxBX2NvbXB1dGVkX3Byb3BlcnR5X25hbWVfY2Fubm90X3JlZmVyZW5jZV9hX3R5cGVfcGFyYW1ldGVyX2Zyb21faXRzX2NvbnRhaW5pbmdfdHlwZTppKDI0NjcsMSxcIkFfY29tcHV0ZWRfcHJvcGVydHlfbmFtZV9jYW5ub3RfcmVmZXJlbmNlX2FfdHlwZV9wYXJhbWV0ZXJfZnJvbV9pdHNfY29udGFpbmluZ190eXBlXzI0NjdcIixcIkEgY29tcHV0ZWQgcHJvcGVydHkgbmFtZSBjYW5ub3QgcmVmZXJlbmNlIGEgdHlwZSBwYXJhbWV0ZXIgZnJvbSBpdHMgY29udGFpbmluZyB0eXBlLlwiKSxDYW5ub3RfZmluZF9nbG9iYWxfdmFsdWVfMDppKDI0NjgsMSxcIkNhbm5vdF9maW5kX2dsb2JhbF92YWx1ZV8wXzI0NjhcIixcIkNhbm5vdCBmaW5kIGdsb2JhbCB2YWx1ZSAnezB9Jy5cIiksVGhlXzBfb3BlcmF0b3JfY2Fubm90X2JlX2FwcGxpZWRfdG9fdHlwZV9zeW1ib2w6aSgyNDY5LDEsXCJUaGVfMF9vcGVyYXRvcl9jYW5ub3RfYmVfYXBwbGllZF90b190eXBlX3N5bWJvbF8yNDY5XCIsXCJUaGUgJ3swfScgb3BlcmF0b3IgY2Fubm90IGJlIGFwcGxpZWQgdG8gdHlwZSAnc3ltYm9sJy5cIiksU3ByZWFkX29wZXJhdG9yX2luX25ld19leHByZXNzaW9uc19pc19vbmx5X2F2YWlsYWJsZV93aGVuX3RhcmdldGluZ19FQ01BU2NyaXB0XzVfYW5kX2hpZ2hlcjppKDI0NzIsMSxcIlNwcmVhZF9vcGVyYXRvcl9pbl9uZXdfZXhwcmVzc2lvbnNfaXNfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF81X2FuZF9oaWdoZXJfMjQ3MlwiLFwiU3ByZWFkIG9wZXJhdG9yIGluICduZXcnIGV4cHJlc3Npb25zIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgNSBhbmQgaGlnaGVyLlwiKSxFbnVtX2RlY2xhcmF0aW9uc19tdXN0X2FsbF9iZV9jb25zdF9vcl9ub25fY29uc3Q6aSgyNDczLDEsXCJFbnVtX2RlY2xhcmF0aW9uc19tdXN0X2FsbF9iZV9jb25zdF9vcl9ub25fY29uc3RfMjQ3M1wiLFwiRW51bSBkZWNsYXJhdGlvbnMgbXVzdCBhbGwgYmUgY29uc3Qgb3Igbm9uLWNvbnN0LlwiKSxjb25zdF9lbnVtX21lbWJlcl9pbml0aWFsaXplcnNfbXVzdF9iZV9jb25zdGFudF9leHByZXNzaW9uczppKDI0NzQsMSxcImNvbnN0X2VudW1fbWVtYmVyX2luaXRpYWxpemVyc19tdXN0X2JlX2NvbnN0YW50X2V4cHJlc3Npb25zXzI0NzRcIixcImNvbnN0IGVudW0gbWVtYmVyIGluaXRpYWxpemVycyBtdXN0IGJlIGNvbnN0YW50IGV4cHJlc3Npb25zLlwiKSxjb25zdF9lbnVtc19jYW5fb25seV9iZV91c2VkX2luX3Byb3BlcnR5X29yX2luZGV4X2FjY2Vzc19leHByZXNzaW9uc19vcl90aGVfcmlnaHRfaGFuZF9zaWRlX29mX2FuX2ltcG9ydF9kZWNsYXJhdGlvbl9vcl9leHBvcnRfYXNzaWdubWVudF9vcl90eXBlX3F1ZXJ5OmkoMjQ3NSwxLFwiY29uc3RfZW51bXNfY2FuX29ubHlfYmVfdXNlZF9pbl9wcm9wZXJ0eV9vcl9pbmRleF9hY2Nlc3NfZXhwcmVzc2lvbnNfb3JfdGhlX3JpZ2h0X2hhbmRfc2lkZV9vZl9hbl9pbV8yNDc1XCIsXCInY29uc3QnIGVudW1zIGNhbiBvbmx5IGJlIHVzZWQgaW4gcHJvcGVydHkgb3IgaW5kZXggYWNjZXNzIGV4cHJlc3Npb25zIG9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYW4gaW1wb3J0IGRlY2xhcmF0aW9uIG9yIGV4cG9ydCBhc3NpZ25tZW50IG9yIHR5cGUgcXVlcnkuXCIpLEFfY29uc3RfZW51bV9tZW1iZXJfY2FuX29ubHlfYmVfYWNjZXNzZWRfdXNpbmdfYV9zdHJpbmdfbGl0ZXJhbDppKDI0NzYsMSxcIkFfY29uc3RfZW51bV9tZW1iZXJfY2FuX29ubHlfYmVfYWNjZXNzZWRfdXNpbmdfYV9zdHJpbmdfbGl0ZXJhbF8yNDc2XCIsXCJBIGNvbnN0IGVudW0gbWVtYmVyIGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5nIGEgc3RyaW5nIGxpdGVyYWwuXCIpLGNvbnN0X2VudW1fbWVtYmVyX2luaXRpYWxpemVyX3dhc19ldmFsdWF0ZWRfdG9fYV9ub25fZmluaXRlX3ZhbHVlOmkoMjQ3NywxLFwiY29uc3RfZW51bV9tZW1iZXJfaW5pdGlhbGl6ZXJfd2FzX2V2YWx1YXRlZF90b19hX25vbl9maW5pdGVfdmFsdWVfMjQ3N1wiLFwiJ2NvbnN0JyBlbnVtIG1lbWJlciBpbml0aWFsaXplciB3YXMgZXZhbHVhdGVkIHRvIGEgbm9uLWZpbml0ZSB2YWx1ZS5cIiksY29uc3RfZW51bV9tZW1iZXJfaW5pdGlhbGl6ZXJfd2FzX2V2YWx1YXRlZF90b19kaXNhbGxvd2VkX3ZhbHVlX05hTjppKDI0NzgsMSxcImNvbnN0X2VudW1fbWVtYmVyX2luaXRpYWxpemVyX3dhc19ldmFsdWF0ZWRfdG9fZGlzYWxsb3dlZF92YWx1ZV9OYU5fMjQ3OFwiLFwiJ2NvbnN0JyBlbnVtIG1lbWJlciBpbml0aWFsaXplciB3YXMgZXZhbHVhdGVkIHRvIGRpc2FsbG93ZWQgdmFsdWUgJ05hTicuXCIpLGxldF9pc19ub3RfYWxsb3dlZF90b19iZV91c2VkX2FzX2FfbmFtZV9pbl9sZXRfb3JfY29uc3RfZGVjbGFyYXRpb25zOmkoMjQ4MCwxLFwibGV0X2lzX25vdF9hbGxvd2VkX3RvX2JlX3VzZWRfYXNfYV9uYW1lX2luX2xldF9vcl9jb25zdF9kZWNsYXJhdGlvbnNfMjQ4MFwiLFwiJ2xldCcgaXMgbm90IGFsbG93ZWQgdG8gYmUgdXNlZCBhcyBhIG5hbWUgaW4gJ2xldCcgb3IgJ2NvbnN0JyBkZWNsYXJhdGlvbnMuXCIpLENhbm5vdF9pbml0aWFsaXplX291dGVyX3Njb3BlZF92YXJpYWJsZV8wX2luX3RoZV9zYW1lX3Njb3BlX2FzX2Jsb2NrX3Njb3BlZF9kZWNsYXJhdGlvbl8xOmkoMjQ4MSwxLFwiQ2Fubm90X2luaXRpYWxpemVfb3V0ZXJfc2NvcGVkX3ZhcmlhYmxlXzBfaW5fdGhlX3NhbWVfc2NvcGVfYXNfYmxvY2tfc2NvcGVkX2RlY2xhcmF0aW9uXzFfMjQ4MVwiLFwiQ2Fubm90IGluaXRpYWxpemUgb3V0ZXIgc2NvcGVkIHZhcmlhYmxlICd7MH0nIGluIHRoZSBzYW1lIHNjb3BlIGFzIGJsb2NrIHNjb3BlZCBkZWNsYXJhdGlvbiAnezF9Jy5cIiksVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX29mX3N0YXRlbWVudF9jYW5ub3RfdXNlX2FfdHlwZV9hbm5vdGF0aW9uOmkoMjQ4MywxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX29mX3N0YXRlbWVudF9jYW5ub3RfdXNlX2FfdHlwZV9hbm5vdGF0aW9uXzI0ODNcIixcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5vZicgc3RhdGVtZW50IGNhbm5vdCB1c2UgYSB0eXBlIGFubm90YXRpb24uXCIpLEV4cG9ydF9kZWNsYXJhdGlvbl9jb25mbGljdHNfd2l0aF9leHBvcnRlZF9kZWNsYXJhdGlvbl9vZl8wOmkoMjQ4NCwxLFwiRXhwb3J0X2RlY2xhcmF0aW9uX2NvbmZsaWN0c193aXRoX2V4cG9ydGVkX2RlY2xhcmF0aW9uX29mXzBfMjQ4NFwiLFwiRXhwb3J0IGRlY2xhcmF0aW9uIGNvbmZsaWN0cyB3aXRoIGV4cG9ydGVkIGRlY2xhcmF0aW9uIG9mICd7MH0nLlwiKSxUaGVfbGVmdF9oYW5kX3NpZGVfb2ZfYV9mb3Jfb2Zfc3RhdGVtZW50X211c3RfYmVfYV92YXJpYWJsZV9vcl9hX3Byb3BlcnR5X2FjY2VzczppKDI0ODcsMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9vZl9zdGF0ZW1lbnRfbXVzdF9iZV9hX3ZhcmlhYmxlX29yX2FfcHJvcGVydHlfYWNjZXNzXzI0ODdcIixcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5vZicgc3RhdGVtZW50IG11c3QgYmUgYSB2YXJpYWJsZSBvciBhIHByb3BlcnR5IGFjY2Vzcy5cIiksVHlwZV8wX211c3RfaGF2ZV9hX1N5bWJvbF9pdGVyYXRvcl9tZXRob2RfdGhhdF9yZXR1cm5zX2FuX2l0ZXJhdG9yOmkoMjQ4OCwxLFwiVHlwZV8wX211c3RfaGF2ZV9hX1N5bWJvbF9pdGVyYXRvcl9tZXRob2RfdGhhdF9yZXR1cm5zX2FuX2l0ZXJhdG9yXzI0ODhcIixcIlR5cGUgJ3swfScgbXVzdCBoYXZlIGEgJ1tTeW1ib2wuaXRlcmF0b3JdKCknIG1ldGhvZCB0aGF0IHJldHVybnMgYW4gaXRlcmF0b3IuXCIpLEFuX2l0ZXJhdG9yX211c3RfaGF2ZV9hX25leHRfbWV0aG9kOmkoMjQ4OSwxLFwiQW5faXRlcmF0b3JfbXVzdF9oYXZlX2FfbmV4dF9tZXRob2RfMjQ4OVwiLFwiQW4gaXRlcmF0b3IgbXVzdCBoYXZlIGEgJ25leHQoKScgbWV0aG9kLlwiKSxUaGVfdHlwZV9yZXR1cm5lZF9ieV90aGVfMF9tZXRob2Rfb2ZfYW5faXRlcmF0b3JfbXVzdF9oYXZlX2FfdmFsdWVfcHJvcGVydHk6aSgyNDkwLDEsXCJUaGVfdHlwZV9yZXR1cm5lZF9ieV90aGVfMF9tZXRob2Rfb2ZfYW5faXRlcmF0b3JfbXVzdF9oYXZlX2FfdmFsdWVfcHJvcGVydHlfMjQ5MFwiLFwiVGhlIHR5cGUgcmV0dXJuZWQgYnkgdGhlICd7MH0oKScgbWV0aG9kIG9mIGFuIGl0ZXJhdG9yIG11c3QgaGF2ZSBhICd2YWx1ZScgcHJvcGVydHkuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfY2Fubm90X2JlX2FfZGVzdHJ1Y3R1cmluZ19wYXR0ZXJuOmkoMjQ5MSwxLFwiVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9jYW5ub3RfYmVfYV9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fMjQ5MVwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgY2Fubm90IGJlIGEgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuLlwiKSxDYW5ub3RfcmVkZWNsYXJlX2lkZW50aWZpZXJfMF9pbl9jYXRjaF9jbGF1c2U6aSgyNDkyLDEsXCJDYW5ub3RfcmVkZWNsYXJlX2lkZW50aWZpZXJfMF9pbl9jYXRjaF9jbGF1c2VfMjQ5MlwiLFwiQ2Fubm90IHJlZGVjbGFyZSBpZGVudGlmaWVyICd7MH0nIGluIGNhdGNoIGNsYXVzZS5cIiksVHVwbGVfdHlwZV8wX29mX2xlbmd0aF8xX2hhc19ub19lbGVtZW50X2F0X2luZGV4XzI6aSgyNDkzLDEsXCJUdXBsZV90eXBlXzBfb2ZfbGVuZ3RoXzFfaGFzX25vX2VsZW1lbnRfYXRfaW5kZXhfMl8yNDkzXCIsXCJUdXBsZSB0eXBlICd7MH0nIG9mIGxlbmd0aCAnezF9JyBoYXMgbm8gZWxlbWVudCBhdCBpbmRleCAnezJ9Jy5cIiksVXNpbmdfYV9zdHJpbmdfaW5fYV9mb3Jfb2Zfc3RhdGVtZW50X2lzX29ubHlfc3VwcG9ydGVkX2luX0VDTUFTY3JpcHRfNV9hbmRfaGlnaGVyOmkoMjQ5NCwxLFwiVXNpbmdfYV9zdHJpbmdfaW5fYV9mb3Jfb2Zfc3RhdGVtZW50X2lzX29ubHlfc3VwcG9ydGVkX2luX0VDTUFTY3JpcHRfNV9hbmRfaGlnaGVyXzI0OTRcIixcIlVzaW5nIGEgc3RyaW5nIGluIGEgJ2Zvci4uLm9mJyBzdGF0ZW1lbnQgaXMgb25seSBzdXBwb3J0ZWQgaW4gRUNNQVNjcmlwdCA1IGFuZCBoaWdoZXIuXCIpLFR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZV9vcl9hX3N0cmluZ190eXBlOmkoMjQ5NSwxLFwiVHlwZV8wX2lzX25vdF9hbl9hcnJheV90eXBlX29yX2Ffc3RyaW5nX3R5cGVfMjQ5NVwiLFwiVHlwZSAnezB9JyBpcyBub3QgYW4gYXJyYXkgdHlwZSBvciBhIHN0cmluZyB0eXBlLlwiKSxUaGVfYXJndW1lbnRzX29iamVjdF9jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9hbl9hcnJvd19mdW5jdGlvbl9pbl9FUzNfYW5kX0VTNV9Db25zaWRlcl91c2luZ19hX3N0YW5kYXJkX2Z1bmN0aW9uX2V4cHJlc3Npb246aSgyNDk2LDEsXCJUaGVfYXJndW1lbnRzX29iamVjdF9jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9hbl9hcnJvd19mdW5jdGlvbl9pbl9FUzNfYW5kX0VTNV9Db25zaWRlcl91c2luZ19hX3N0YW5kXzI0OTZcIixcIlRoZSAnYXJndW1lbnRzJyBvYmplY3QgY2Fubm90IGJlIHJlZmVyZW5jZWQgaW4gYW4gYXJyb3cgZnVuY3Rpb24gaW4gRVMzIGFuZCBFUzUuIENvbnNpZGVyIHVzaW5nIGEgc3RhbmRhcmQgZnVuY3Rpb24gZXhwcmVzc2lvbi5cIiksVGhpc19tb2R1bGVfY2FuX29ubHlfYmVfcmVmZXJlbmNlZF93aXRoX0VDTUFTY3JpcHRfaW1wb3J0c19TbGFzaGV4cG9ydHNfYnlfdHVybmluZ19vbl90aGVfMF9mbGFnX2FuZF9yZWZlcmVuY2luZ19pdHNfZGVmYXVsdF9leHBvcnQ6aSgyNDk3LDEsXCJUaGlzX21vZHVsZV9jYW5fb25seV9iZV9yZWZlcmVuY2VkX3dpdGhfRUNNQVNjcmlwdF9pbXBvcnRzX1NsYXNoZXhwb3J0c19ieV90dXJuaW5nX29uX3RoZV8wX2ZsYWdfYW5kXzI0OTdcIixcIlRoaXMgbW9kdWxlIGNhbiBvbmx5IGJlIHJlZmVyZW5jZWQgd2l0aCBFQ01BU2NyaXB0IGltcG9ydHMvZXhwb3J0cyBieSB0dXJuaW5nIG9uIHRoZSAnezB9JyBmbGFnIGFuZCByZWZlcmVuY2luZyBpdHMgZGVmYXVsdCBleHBvcnQuXCIpLE1vZHVsZV8wX3VzZXNfZXhwb3J0X2FuZF9jYW5ub3RfYmVfdXNlZF93aXRoX2V4cG9ydF9Bc3RlcmlzazppKDI0OTgsMSxcIk1vZHVsZV8wX3VzZXNfZXhwb3J0X2FuZF9jYW5ub3RfYmVfdXNlZF93aXRoX2V4cG9ydF9Bc3Rlcmlza18yNDk4XCIsXCJNb2R1bGUgJ3swfScgdXNlcyAnZXhwb3J0ID0nIGFuZCBjYW5ub3QgYmUgdXNlZCB3aXRoICdleHBvcnQgKicuXCIpLEFuX2ludGVyZmFjZV9jYW5fb25seV9leHRlbmRfYW5faWRlbnRpZmllcl9TbGFzaHF1YWxpZmllZF9uYW1lX3dpdGhfb3B0aW9uYWxfdHlwZV9hcmd1bWVudHM6aSgyNDk5LDEsXCJBbl9pbnRlcmZhY2VfY2FuX29ubHlfZXh0ZW5kX2FuX2lkZW50aWZpZXJfU2xhc2hxdWFsaWZpZWRfbmFtZV93aXRoX29wdGlvbmFsX3R5cGVfYXJndW1lbnRzXzI0OTlcIixcIkFuIGludGVyZmFjZSBjYW4gb25seSBleHRlbmQgYW4gaWRlbnRpZmllci9xdWFsaWZpZWQtbmFtZSB3aXRoIG9wdGlvbmFsIHR5cGUgYXJndW1lbnRzLlwiKSxBX2NsYXNzX2Nhbl9vbmx5X2ltcGxlbWVudF9hbl9pZGVudGlmaWVyX1NsYXNocXVhbGlmaWVkX25hbWVfd2l0aF9vcHRpb25hbF90eXBlX2FyZ3VtZW50czppKDI1MDAsMSxcIkFfY2xhc3NfY2FuX29ubHlfaW1wbGVtZW50X2FuX2lkZW50aWZpZXJfU2xhc2hxdWFsaWZpZWRfbmFtZV93aXRoX29wdGlvbmFsX3R5cGVfYXJndW1lbnRzXzI1MDBcIixcIkEgY2xhc3MgY2FuIG9ubHkgaW1wbGVtZW50IGFuIGlkZW50aWZpZXIvcXVhbGlmaWVkLW5hbWUgd2l0aCBvcHRpb25hbCB0eXBlIGFyZ3VtZW50cy5cIiksQV9yZXN0X2VsZW1lbnRfY2Fubm90X2NvbnRhaW5fYV9iaW5kaW5nX3BhdHRlcm46aSgyNTAxLDEsXCJBX3Jlc3RfZWxlbWVudF9jYW5ub3RfY29udGFpbl9hX2JpbmRpbmdfcGF0dGVybl8yNTAxXCIsXCJBIHJlc3QgZWxlbWVudCBjYW5ub3QgY29udGFpbiBhIGJpbmRpbmcgcGF0dGVybi5cIiksXzBfaXNfcmVmZXJlbmNlZF9kaXJlY3RseV9vcl9pbmRpcmVjdGx5X2luX2l0c19vd25fdHlwZV9hbm5vdGF0aW9uOmkoMjUwMiwxLFwiXzBfaXNfcmVmZXJlbmNlZF9kaXJlY3RseV9vcl9pbmRpcmVjdGx5X2luX2l0c19vd25fdHlwZV9hbm5vdGF0aW9uXzI1MDJcIixcIid7MH0nIGlzIHJlZmVyZW5jZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbiBpdHMgb3duIHR5cGUgYW5ub3RhdGlvbi5cIiksQ2Fubm90X2ZpbmRfbmFtZXNwYWNlXzA6aSgyNTAzLDEsXCJDYW5ub3RfZmluZF9uYW1lc3BhY2VfMF8yNTAzXCIsXCJDYW5ub3QgZmluZCBuYW1lc3BhY2UgJ3swfScuXCIpLFR5cGVfMF9tdXN0X2hhdmVfYV9TeW1ib2xfYXN5bmNJdGVyYXRvcl9tZXRob2RfdGhhdF9yZXR1cm5zX2FuX2FzeW5jX2l0ZXJhdG9yOmkoMjUwNCwxLFwiVHlwZV8wX211c3RfaGF2ZV9hX1N5bWJvbF9hc3luY0l0ZXJhdG9yX21ldGhvZF90aGF0X3JldHVybnNfYW5fYXN5bmNfaXRlcmF0b3JfMjUwNFwiLFwiVHlwZSAnezB9JyBtdXN0IGhhdmUgYSAnW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpJyBtZXRob2QgdGhhdCByZXR1cm5zIGFuIGFzeW5jIGl0ZXJhdG9yLlwiKSxBX2dlbmVyYXRvcl9jYW5ub3RfaGF2ZV9hX3ZvaWRfdHlwZV9hbm5vdGF0aW9uOmkoMjUwNSwxLFwiQV9nZW5lcmF0b3JfY2Fubm90X2hhdmVfYV92b2lkX3R5cGVfYW5ub3RhdGlvbl8yNTA1XCIsXCJBIGdlbmVyYXRvciBjYW5ub3QgaGF2ZSBhICd2b2lkJyB0eXBlIGFubm90YXRpb24uXCIpLF8wX2lzX3JlZmVyZW5jZWRfZGlyZWN0bHlfb3JfaW5kaXJlY3RseV9pbl9pdHNfb3duX2Jhc2VfZXhwcmVzc2lvbjppKDI1MDYsMSxcIl8wX2lzX3JlZmVyZW5jZWRfZGlyZWN0bHlfb3JfaW5kaXJlY3RseV9pbl9pdHNfb3duX2Jhc2VfZXhwcmVzc2lvbl8yNTA2XCIsXCInezB9JyBpcyByZWZlcmVuY2VkIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgaW4gaXRzIG93biBiYXNlIGV4cHJlc3Npb24uXCIpLFR5cGVfMF9pc19ub3RfYV9jb25zdHJ1Y3Rvcl9mdW5jdGlvbl90eXBlOmkoMjUwNywxLFwiVHlwZV8wX2lzX25vdF9hX2NvbnN0cnVjdG9yX2Z1bmN0aW9uX3R5cGVfMjUwN1wiLFwiVHlwZSAnezB9JyBpcyBub3QgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiB0eXBlLlwiKSxOb19iYXNlX2NvbnN0cnVjdG9yX2hhc190aGVfc3BlY2lmaWVkX251bWJlcl9vZl90eXBlX2FyZ3VtZW50czppKDI1MDgsMSxcIk5vX2Jhc2VfY29uc3RydWN0b3JfaGFzX3RoZV9zcGVjaWZpZWRfbnVtYmVyX29mX3R5cGVfYXJndW1lbnRzXzI1MDhcIixcIk5vIGJhc2UgY29uc3RydWN0b3IgaGFzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzLlwiKSxCYXNlX2NvbnN0cnVjdG9yX3JldHVybl90eXBlXzBfaXNfbm90X2FuX29iamVjdF90eXBlX29yX2ludGVyc2VjdGlvbl9vZl9vYmplY3RfdHlwZXNfd2l0aF9zdGF0aWNhbGx5X2tub3duX21lbWJlcnM6aSgyNTA5LDEsXCJCYXNlX2NvbnN0cnVjdG9yX3JldHVybl90eXBlXzBfaXNfbm90X2FuX29iamVjdF90eXBlX29yX2ludGVyc2VjdGlvbl9vZl9vYmplY3RfdHlwZXNfd2l0aF9zdGF0aWNhbGx5XzI1MDlcIixcIkJhc2UgY29uc3RydWN0b3IgcmV0dXJuIHR5cGUgJ3swfScgaXMgbm90IGFuIG9iamVjdCB0eXBlIG9yIGludGVyc2VjdGlvbiBvZiBvYmplY3QgdHlwZXMgd2l0aCBzdGF0aWNhbGx5IGtub3duIG1lbWJlcnMuXCIpLEJhc2VfY29uc3RydWN0b3JzX211c3RfYWxsX2hhdmVfdGhlX3NhbWVfcmV0dXJuX3R5cGU6aSgyNTEwLDEsXCJCYXNlX2NvbnN0cnVjdG9yc19tdXN0X2FsbF9oYXZlX3RoZV9zYW1lX3JldHVybl90eXBlXzI1MTBcIixcIkJhc2UgY29uc3RydWN0b3JzIG11c3QgYWxsIGhhdmUgdGhlIHNhbWUgcmV0dXJuIHR5cGUuXCIpLENhbm5vdF9jcmVhdGVfYW5faW5zdGFuY2Vfb2ZfYW5fYWJzdHJhY3RfY2xhc3M6aSgyNTExLDEsXCJDYW5ub3RfY3JlYXRlX2FuX2luc3RhbmNlX29mX2FuX2Fic3RyYWN0X2NsYXNzXzI1MTFcIixcIkNhbm5vdCBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYW4gYWJzdHJhY3QgY2xhc3MuXCIpLE92ZXJsb2FkX3NpZ25hdHVyZXNfbXVzdF9hbGxfYmVfYWJzdHJhY3Rfb3Jfbm9uX2Fic3RyYWN0OmkoMjUxMiwxLFwiT3ZlcmxvYWRfc2lnbmF0dXJlc19tdXN0X2FsbF9iZV9hYnN0cmFjdF9vcl9ub25fYWJzdHJhY3RfMjUxMlwiLFwiT3ZlcmxvYWQgc2lnbmF0dXJlcyBtdXN0IGFsbCBiZSBhYnN0cmFjdCBvciBub24tYWJzdHJhY3QuXCIpLEFic3RyYWN0X21ldGhvZF8wX2luX2NsYXNzXzFfY2Fubm90X2JlX2FjY2Vzc2VkX3ZpYV9zdXBlcl9leHByZXNzaW9uOmkoMjUxMywxLFwiQWJzdHJhY3RfbWV0aG9kXzBfaW5fY2xhc3NfMV9jYW5ub3RfYmVfYWNjZXNzZWRfdmlhX3N1cGVyX2V4cHJlc3Npb25fMjUxM1wiLFwiQWJzdHJhY3QgbWV0aG9kICd7MH0nIGluIGNsYXNzICd7MX0nIGNhbm5vdCBiZSBhY2Nlc3NlZCB2aWEgc3VwZXIgZXhwcmVzc2lvbi5cIiksQV90dXBsZV90eXBlX2Nhbm5vdF9iZV9pbmRleGVkX3dpdGhfYV9uZWdhdGl2ZV92YWx1ZTppKDI1MTQsMSxcIkFfdHVwbGVfdHlwZV9jYW5ub3RfYmVfaW5kZXhlZF93aXRoX2FfbmVnYXRpdmVfdmFsdWVfMjUxNFwiLFwiQSB0dXBsZSB0eXBlIGNhbm5vdCBiZSBpbmRleGVkIHdpdGggYSBuZWdhdGl2ZSB2YWx1ZS5cIiksTm9uX2Fic3RyYWN0X2NsYXNzXzBfZG9lc19ub3RfaW1wbGVtZW50X2luaGVyaXRlZF9hYnN0cmFjdF9tZW1iZXJfMV9mcm9tX2NsYXNzXzI6aSgyNTE1LDEsXCJOb25fYWJzdHJhY3RfY2xhc3NfMF9kb2VzX25vdF9pbXBsZW1lbnRfaW5oZXJpdGVkX2Fic3RyYWN0X21lbWJlcl8xX2Zyb21fY2xhc3NfMl8yNTE1XCIsXCJOb24tYWJzdHJhY3QgY2xhc3MgJ3swfScgZG9lcyBub3QgaW1wbGVtZW50IGluaGVyaXRlZCBhYnN0cmFjdCBtZW1iZXIgJ3sxfScgZnJvbSBjbGFzcyAnezJ9Jy5cIiksQWxsX2RlY2xhcmF0aW9uc19vZl9hbl9hYnN0cmFjdF9tZXRob2RfbXVzdF9iZV9jb25zZWN1dGl2ZTppKDI1MTYsMSxcIkFsbF9kZWNsYXJhdGlvbnNfb2ZfYW5fYWJzdHJhY3RfbWV0aG9kX211c3RfYmVfY29uc2VjdXRpdmVfMjUxNlwiLFwiQWxsIGRlY2xhcmF0aW9ucyBvZiBhbiBhYnN0cmFjdCBtZXRob2QgbXVzdCBiZSBjb25zZWN1dGl2ZS5cIiksQ2Fubm90X2Fzc2lnbl9hbl9hYnN0cmFjdF9jb25zdHJ1Y3Rvcl90eXBlX3RvX2Ffbm9uX2Fic3RyYWN0X2NvbnN0cnVjdG9yX3R5cGU6aSgyNTE3LDEsXCJDYW5ub3RfYXNzaWduX2FuX2Fic3RyYWN0X2NvbnN0cnVjdG9yX3R5cGVfdG9fYV9ub25fYWJzdHJhY3RfY29uc3RydWN0b3JfdHlwZV8yNTE3XCIsXCJDYW5ub3QgYXNzaWduIGFuIGFic3RyYWN0IGNvbnN0cnVjdG9yIHR5cGUgdG8gYSBub24tYWJzdHJhY3QgY29uc3RydWN0b3IgdHlwZS5cIiksQV90aGlzX2Jhc2VkX3R5cGVfZ3VhcmRfaXNfbm90X2NvbXBhdGlibGVfd2l0aF9hX3BhcmFtZXRlcl9iYXNlZF90eXBlX2d1YXJkOmkoMjUxOCwxLFwiQV90aGlzX2Jhc2VkX3R5cGVfZ3VhcmRfaXNfbm90X2NvbXBhdGlibGVfd2l0aF9hX3BhcmFtZXRlcl9iYXNlZF90eXBlX2d1YXJkXzI1MThcIixcIkEgJ3RoaXMnLWJhc2VkIHR5cGUgZ3VhcmQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBhIHBhcmFtZXRlci1iYXNlZCB0eXBlIGd1YXJkLlwiKSxBbl9hc3luY19pdGVyYXRvcl9tdXN0X2hhdmVfYV9uZXh0X21ldGhvZDppKDI1MTksMSxcIkFuX2FzeW5jX2l0ZXJhdG9yX211c3RfaGF2ZV9hX25leHRfbWV0aG9kXzI1MTlcIixcIkFuIGFzeW5jIGl0ZXJhdG9yIG11c3QgaGF2ZSBhICduZXh0KCknIG1ldGhvZC5cIiksRHVwbGljYXRlX2lkZW50aWZpZXJfMF9Db21waWxlcl91c2VzX2RlY2xhcmF0aW9uXzFfdG9fc3VwcG9ydF9hc3luY19mdW5jdGlvbnM6aSgyNTIwLDEsXCJEdXBsaWNhdGVfaWRlbnRpZmllcl8wX0NvbXBpbGVyX3VzZXNfZGVjbGFyYXRpb25fMV90b19zdXBwb3J0X2FzeW5jX2Z1bmN0aW9uc18yNTIwXCIsXCJEdXBsaWNhdGUgaWRlbnRpZmllciAnezB9Jy4gQ29tcGlsZXIgdXNlcyBkZWNsYXJhdGlvbiAnezF9JyB0byBzdXBwb3J0IGFzeW5jIGZ1bmN0aW9ucy5cIiksVGhlX2FyZ3VtZW50c19vYmplY3RfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX2luX0VTM19hbmRfRVM1X0NvbnNpZGVyX3VzaW5nX2Ffc3RhbmRhcmRfZnVuY3Rpb25fb3JfbWV0aG9kOmkoMjUyMiwxLFwiVGhlX2FyZ3VtZW50c19vYmplY3RfY2Fubm90X2JlX3JlZmVyZW5jZWRfaW5fYW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX2luX0VTM19hbmRfRVM1X0NvbnNpZGVyX3VzaV8yNTIyXCIsXCJUaGUgJ2FyZ3VtZW50cycgb2JqZWN0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGFuIGFzeW5jIGZ1bmN0aW9uIG9yIG1ldGhvZCBpbiBFUzMgYW5kIEVTNS4gQ29uc2lkZXIgdXNpbmcgYSBzdGFuZGFyZCBmdW5jdGlvbiBvciBtZXRob2QuXCIpLHlpZWxkX2V4cHJlc3Npb25zX2Nhbm5vdF9iZV91c2VkX2luX2FfcGFyYW1ldGVyX2luaXRpYWxpemVyOmkoMjUyMywxLFwieWllbGRfZXhwcmVzc2lvbnNfY2Fubm90X2JlX3VzZWRfaW5fYV9wYXJhbWV0ZXJfaW5pdGlhbGl6ZXJfMjUyM1wiLFwiJ3lpZWxkJyBleHByZXNzaW9ucyBjYW5ub3QgYmUgdXNlZCBpbiBhIHBhcmFtZXRlciBpbml0aWFsaXplci5cIiksYXdhaXRfZXhwcmVzc2lvbnNfY2Fubm90X2JlX3VzZWRfaW5fYV9wYXJhbWV0ZXJfaW5pdGlhbGl6ZXI6aSgyNTI0LDEsXCJhd2FpdF9leHByZXNzaW9uc19jYW5ub3RfYmVfdXNlZF9pbl9hX3BhcmFtZXRlcl9pbml0aWFsaXplcl8yNTI0XCIsXCInYXdhaXQnIGV4cHJlc3Npb25zIGNhbm5vdCBiZSB1c2VkIGluIGEgcGFyYW1ldGVyIGluaXRpYWxpemVyLlwiKSxJbml0aWFsaXplcl9wcm92aWRlc19ub192YWx1ZV9mb3JfdGhpc19iaW5kaW5nX2VsZW1lbnRfYW5kX3RoZV9iaW5kaW5nX2VsZW1lbnRfaGFzX25vX2RlZmF1bHRfdmFsdWU6aSgyNTI1LDEsXCJJbml0aWFsaXplcl9wcm92aWRlc19ub192YWx1ZV9mb3JfdGhpc19iaW5kaW5nX2VsZW1lbnRfYW5kX3RoZV9iaW5kaW5nX2VsZW1lbnRfaGFzX25vX2RlZmF1bHRfdmFsdWVfMjUyNVwiLFwiSW5pdGlhbGl6ZXIgcHJvdmlkZXMgbm8gdmFsdWUgZm9yIHRoaXMgYmluZGluZyBlbGVtZW50IGFuZCB0aGUgYmluZGluZyBlbGVtZW50IGhhcyBubyBkZWZhdWx0IHZhbHVlLlwiKSxBX3RoaXNfdHlwZV9pc19hdmFpbGFibGVfb25seV9pbl9hX25vbl9zdGF0aWNfbWVtYmVyX29mX2FfY2xhc3Nfb3JfaW50ZXJmYWNlOmkoMjUyNiwxLFwiQV90aGlzX3R5cGVfaXNfYXZhaWxhYmxlX29ubHlfaW5fYV9ub25fc3RhdGljX21lbWJlcl9vZl9hX2NsYXNzX29yX2ludGVyZmFjZV8yNTI2XCIsXCJBICd0aGlzJyB0eXBlIGlzIGF2YWlsYWJsZSBvbmx5IGluIGEgbm9uLXN0YXRpYyBtZW1iZXIgb2YgYSBjbGFzcyBvciBpbnRlcmZhY2UuXCIpLFRoZV9pbmZlcnJlZF90eXBlX29mXzBfcmVmZXJlbmNlc19hbl9pbmFjY2Vzc2libGVfMV90eXBlX0FfdHlwZV9hbm5vdGF0aW9uX2lzX25lY2Vzc2FyeTppKDI1MjcsMSxcIlRoZV9pbmZlcnJlZF90eXBlX29mXzBfcmVmZXJlbmNlc19hbl9pbmFjY2Vzc2libGVfMV90eXBlX0FfdHlwZV9hbm5vdGF0aW9uX2lzX25lY2Vzc2FyeV8yNTI3XCIsXCJUaGUgaW5mZXJyZWQgdHlwZSBvZiAnezB9JyByZWZlcmVuY2VzIGFuIGluYWNjZXNzaWJsZSAnezF9JyB0eXBlLiBBIHR5cGUgYW5ub3RhdGlvbiBpcyBuZWNlc3NhcnkuXCIpLEFfbW9kdWxlX2Nhbm5vdF9oYXZlX211bHRpcGxlX2RlZmF1bHRfZXhwb3J0czppKDI1MjgsMSxcIkFfbW9kdWxlX2Nhbm5vdF9oYXZlX211bHRpcGxlX2RlZmF1bHRfZXhwb3J0c18yNTI4XCIsXCJBIG1vZHVsZSBjYW5ub3QgaGF2ZSBtdWx0aXBsZSBkZWZhdWx0IGV4cG9ydHMuXCIpLER1cGxpY2F0ZV9pZGVudGlmaWVyXzBfQ29tcGlsZXJfcmVzZXJ2ZXNfbmFtZV8xX2luX3RvcF9sZXZlbF9zY29wZV9vZl9hX21vZHVsZV9jb250YWluaW5nX2FzeW5jX2Z1bmN0aW9uczppKDI1MjksMSxcIkR1cGxpY2F0ZV9pZGVudGlmaWVyXzBfQ29tcGlsZXJfcmVzZXJ2ZXNfbmFtZV8xX2luX3RvcF9sZXZlbF9zY29wZV9vZl9hX21vZHVsZV9jb250YWluaW5nX2FzeW5jX2Z1bmNfMjUyOVwiLFwiRHVwbGljYXRlIGlkZW50aWZpZXIgJ3swfScuIENvbXBpbGVyIHJlc2VydmVzIG5hbWUgJ3sxfScgaW4gdG9wIGxldmVsIHNjb3BlIG9mIGEgbW9kdWxlIGNvbnRhaW5pbmcgYXN5bmMgZnVuY3Rpb25zLlwiKSxQcm9wZXJ0eV8wX2lzX2luY29tcGF0aWJsZV93aXRoX2luZGV4X3NpZ25hdHVyZTppKDI1MzAsMSxcIlByb3BlcnR5XzBfaXNfaW5jb21wYXRpYmxlX3dpdGhfaW5kZXhfc2lnbmF0dXJlXzI1MzBcIixcIlByb3BlcnR5ICd7MH0nIGlzIGluY29tcGF0aWJsZSB3aXRoIGluZGV4IHNpZ25hdHVyZS5cIiksT2JqZWN0X2lzX3Bvc3NpYmx5X251bGw6aSgyNTMxLDEsXCJPYmplY3RfaXNfcG9zc2libHlfbnVsbF8yNTMxXCIsXCJPYmplY3QgaXMgcG9zc2libHkgJ251bGwnLlwiKSxPYmplY3RfaXNfcG9zc2libHlfdW5kZWZpbmVkOmkoMjUzMiwxLFwiT2JqZWN0X2lzX3Bvc3NpYmx5X3VuZGVmaW5lZF8yNTMyXCIsXCJPYmplY3QgaXMgcG9zc2libHkgJ3VuZGVmaW5lZCcuXCIpLE9iamVjdF9pc19wb3NzaWJseV9udWxsX29yX3VuZGVmaW5lZDppKDI1MzMsMSxcIk9iamVjdF9pc19wb3NzaWJseV9udWxsX29yX3VuZGVmaW5lZF8yNTMzXCIsXCJPYmplY3QgaXMgcG9zc2libHkgJ251bGwnIG9yICd1bmRlZmluZWQnLlwiKSxBX2Z1bmN0aW9uX3JldHVybmluZ19uZXZlcl9jYW5ub3RfaGF2ZV9hX3JlYWNoYWJsZV9lbmRfcG9pbnQ6aSgyNTM0LDEsXCJBX2Z1bmN0aW9uX3JldHVybmluZ19uZXZlcl9jYW5ub3RfaGF2ZV9hX3JlYWNoYWJsZV9lbmRfcG9pbnRfMjUzNFwiLFwiQSBmdW5jdGlvbiByZXR1cm5pbmcgJ25ldmVyJyBjYW5ub3QgaGF2ZSBhIHJlYWNoYWJsZSBlbmQgcG9pbnQuXCIpLFR5cGVfMF9jYW5ub3RfYmVfdXNlZF90b19pbmRleF90eXBlXzE6aSgyNTM2LDEsXCJUeXBlXzBfY2Fubm90X2JlX3VzZWRfdG9faW5kZXhfdHlwZV8xXzI1MzZcIixcIlR5cGUgJ3swfScgY2Fubm90IGJlIHVzZWQgdG8gaW5kZXggdHlwZSAnezF9Jy5cIiksVHlwZV8wX2hhc19ub19tYXRjaGluZ19pbmRleF9zaWduYXR1cmVfZm9yX3R5cGVfMTppKDI1MzcsMSxcIlR5cGVfMF9oYXNfbm9fbWF0Y2hpbmdfaW5kZXhfc2lnbmF0dXJlX2Zvcl90eXBlXzFfMjUzN1wiLFwiVHlwZSAnezB9JyBoYXMgbm8gbWF0Y2hpbmcgaW5kZXggc2lnbmF0dXJlIGZvciB0eXBlICd7MX0nLlwiKSxUeXBlXzBfY2Fubm90X2JlX3VzZWRfYXNfYW5faW5kZXhfdHlwZTppKDI1MzgsMSxcIlR5cGVfMF9jYW5ub3RfYmVfdXNlZF9hc19hbl9pbmRleF90eXBlXzI1MzhcIixcIlR5cGUgJ3swfScgY2Fubm90IGJlIHVzZWQgYXMgYW4gaW5kZXggdHlwZS5cIiksQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfbm90X2FfdmFyaWFibGU6aSgyNTM5LDEsXCJDYW5ub3RfYXNzaWduX3RvXzBfYmVjYXVzZV9pdF9pc19ub3RfYV92YXJpYWJsZV8yNTM5XCIsXCJDYW5ub3QgYXNzaWduIHRvICd7MH0nIGJlY2F1c2UgaXQgaXMgbm90IGEgdmFyaWFibGUuXCIpLENhbm5vdF9hc3NpZ25fdG9fMF9iZWNhdXNlX2l0X2lzX2FfcmVhZF9vbmx5X3Byb3BlcnR5OmkoMjU0MCwxLFwiQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfYV9yZWFkX29ubHlfcHJvcGVydHlfMjU0MFwiLFwiQ2Fubm90IGFzc2lnbiB0byAnezB9JyBiZWNhdXNlIGl0IGlzIGEgcmVhZC1vbmx5IHByb3BlcnR5LlwiKSxJbmRleF9zaWduYXR1cmVfaW5fdHlwZV8wX29ubHlfcGVybWl0c19yZWFkaW5nOmkoMjU0MiwxLFwiSW5kZXhfc2lnbmF0dXJlX2luX3R5cGVfMF9vbmx5X3Blcm1pdHNfcmVhZGluZ18yNTQyXCIsXCJJbmRleCBzaWduYXR1cmUgaW4gdHlwZSAnezB9JyBvbmx5IHBlcm1pdHMgcmVhZGluZy5cIiksRHVwbGljYXRlX2lkZW50aWZpZXJfbmV3VGFyZ2V0X0NvbXBpbGVyX3VzZXNfdmFyaWFibGVfZGVjbGFyYXRpb25fbmV3VGFyZ2V0X3RvX2NhcHR1cmVfbmV3X3RhcmdldF9tZXRhX3Byb3BlcnR5X3JlZmVyZW5jZTppKDI1NDMsMSxcIkR1cGxpY2F0ZV9pZGVudGlmaWVyX25ld1RhcmdldF9Db21waWxlcl91c2VzX3ZhcmlhYmxlX2RlY2xhcmF0aW9uX25ld1RhcmdldF90b19jYXB0dXJlX25ld190YXJnZXRfbWVfMjU0M1wiLFwiRHVwbGljYXRlIGlkZW50aWZpZXIgJ19uZXdUYXJnZXQnLiBDb21waWxlciB1c2VzIHZhcmlhYmxlIGRlY2xhcmF0aW9uICdfbmV3VGFyZ2V0JyB0byBjYXB0dXJlICduZXcudGFyZ2V0JyBtZXRhLXByb3BlcnR5IHJlZmVyZW5jZS5cIiksRXhwcmVzc2lvbl9yZXNvbHZlc190b192YXJpYWJsZV9kZWNsYXJhdGlvbl9uZXdUYXJnZXRfdGhhdF9jb21waWxlcl91c2VzX3RvX2NhcHR1cmVfbmV3X3RhcmdldF9tZXRhX3Byb3BlcnR5X3JlZmVyZW5jZTppKDI1NDQsMSxcIkV4cHJlc3Npb25fcmVzb2x2ZXNfdG9fdmFyaWFibGVfZGVjbGFyYXRpb25fbmV3VGFyZ2V0X3RoYXRfY29tcGlsZXJfdXNlc190b19jYXB0dXJlX25ld190YXJnZXRfbWV0YV9fMjU0NFwiLFwiRXhwcmVzc2lvbiByZXNvbHZlcyB0byB2YXJpYWJsZSBkZWNsYXJhdGlvbiAnX25ld1RhcmdldCcgdGhhdCBjb21waWxlciB1c2VzIHRvIGNhcHR1cmUgJ25ldy50YXJnZXQnIG1ldGEtcHJvcGVydHkgcmVmZXJlbmNlLlwiKSxBX21peGluX2NsYXNzX211c3RfaGF2ZV9hX2NvbnN0cnVjdG9yX3dpdGhfYV9zaW5nbGVfcmVzdF9wYXJhbWV0ZXJfb2ZfdHlwZV9hbnk6aSgyNTQ1LDEsXCJBX21peGluX2NsYXNzX211c3RfaGF2ZV9hX2NvbnN0cnVjdG9yX3dpdGhfYV9zaW5nbGVfcmVzdF9wYXJhbWV0ZXJfb2ZfdHlwZV9hbnlfMjU0NVwiLFwiQSBtaXhpbiBjbGFzcyBtdXN0IGhhdmUgYSBjb25zdHJ1Y3RvciB3aXRoIGEgc2luZ2xlIHJlc3QgcGFyYW1ldGVyIG9mIHR5cGUgJ2FueVtdJy5cIiksVGhlX3R5cGVfcmV0dXJuZWRfYnlfdGhlXzBfbWV0aG9kX29mX2FuX2FzeW5jX2l0ZXJhdG9yX211c3RfYmVfYV9wcm9taXNlX2Zvcl9hX3R5cGVfd2l0aF9hX3ZhbHVlX3Byb3BlcnR5OmkoMjU0NywxLFwiVGhlX3R5cGVfcmV0dXJuZWRfYnlfdGhlXzBfbWV0aG9kX29mX2FuX2FzeW5jX2l0ZXJhdG9yX211c3RfYmVfYV9wcm9taXNlX2Zvcl9hX3R5cGVfd2l0aF9hX3ZhbHVlX3Byb18yNTQ3XCIsXCJUaGUgdHlwZSByZXR1cm5lZCBieSB0aGUgJ3swfSgpJyBtZXRob2Qgb2YgYW4gYXN5bmMgaXRlcmF0b3IgbXVzdCBiZSBhIHByb21pc2UgZm9yIGEgdHlwZSB3aXRoIGEgJ3ZhbHVlJyBwcm9wZXJ0eS5cIiksVHlwZV8wX2lzX25vdF9hbl9hcnJheV90eXBlX29yX2RvZXNfbm90X2hhdmVfYV9TeW1ib2xfaXRlcmF0b3JfbWV0aG9kX3RoYXRfcmV0dXJuc19hbl9pdGVyYXRvcjppKDI1NDgsMSxcIlR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZV9vcl9kb2VzX25vdF9oYXZlX2FfU3ltYm9sX2l0ZXJhdG9yX21ldGhvZF90aGF0X3JldHVybnNfYW5faXRlcmF0b3JfMjU0OFwiLFwiVHlwZSAnezB9JyBpcyBub3QgYW4gYXJyYXkgdHlwZSBvciBkb2VzIG5vdCBoYXZlIGEgJ1tTeW1ib2wuaXRlcmF0b3JdKCknIG1ldGhvZCB0aGF0IHJldHVybnMgYW4gaXRlcmF0b3IuXCIpLFR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZV9vcl9hX3N0cmluZ190eXBlX29yX2RvZXNfbm90X2hhdmVfYV9TeW1ib2xfaXRlcmF0b3JfbWV0aG9kX3RoYXRfcmV0dXJuc19hbl9pdGVyYXRvcjppKDI1NDksMSxcIlR5cGVfMF9pc19ub3RfYW5fYXJyYXlfdHlwZV9vcl9hX3N0cmluZ190eXBlX29yX2RvZXNfbm90X2hhdmVfYV9TeW1ib2xfaXRlcmF0b3JfbWV0aG9kX3RoYXRfcmV0dXJuc19fMjU0OVwiLFwiVHlwZSAnezB9JyBpcyBub3QgYW4gYXJyYXkgdHlwZSBvciBhIHN0cmluZyB0eXBlIG9yIGRvZXMgbm90IGhhdmUgYSAnW1N5bWJvbC5pdGVyYXRvcl0oKScgbWV0aG9kIHRoYXQgcmV0dXJucyBhbiBpdGVyYXRvci5cIiksUHJvcGVydHlfMF9kb2VzX25vdF9leGlzdF9vbl90eXBlXzFfRG9feW91X25lZWRfdG9fY2hhbmdlX3lvdXJfdGFyZ2V0X2xpYnJhcnlfVHJ5X2NoYW5naW5nX3RoZV9saWJfY29tcGlsZXJfb3B0aW9uX3RvXzJfb3JfbGF0ZXI6aSgyNTUwLDEsXCJQcm9wZXJ0eV8wX2RvZXNfbm90X2V4aXN0X29uX3R5cGVfMV9Eb195b3VfbmVlZF90b19jaGFuZ2VfeW91cl90YXJnZXRfbGlicmFyeV9UcnlfY2hhbmdpbmdfdGhlX2xpYl9jXzI1NTBcIixcIlByb3BlcnR5ICd7MH0nIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgJ3sxfScuIERvIHlvdSBuZWVkIHRvIGNoYW5nZSB5b3VyIHRhcmdldCBsaWJyYXJ5PyBUcnkgY2hhbmdpbmcgdGhlICdsaWInIGNvbXBpbGVyIG9wdGlvbiB0byAnezJ9JyBvciBsYXRlci5cIiksUHJvcGVydHlfMF9kb2VzX25vdF9leGlzdF9vbl90eXBlXzFfRGlkX3lvdV9tZWFuXzI6aSgyNTUxLDEsXCJQcm9wZXJ0eV8wX2RvZXNfbm90X2V4aXN0X29uX3R5cGVfMV9EaWRfeW91X21lYW5fMl8yNTUxXCIsXCJQcm9wZXJ0eSAnezB9JyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlICd7MX0nLiBEaWQgeW91IG1lYW4gJ3syfSc/XCIpLENhbm5vdF9maW5kX25hbWVfMF9EaWRfeW91X21lYW5fMTppKDI1NTIsMSxcIkNhbm5vdF9maW5kX25hbWVfMF9EaWRfeW91X21lYW5fMV8yNTUyXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEaWQgeW91IG1lYW4gJ3sxfSc/XCIpLENvbXB1dGVkX3ZhbHVlc19hcmVfbm90X3Blcm1pdHRlZF9pbl9hbl9lbnVtX3dpdGhfc3RyaW5nX3ZhbHVlZF9tZW1iZXJzOmkoMjU1MywxLFwiQ29tcHV0ZWRfdmFsdWVzX2FyZV9ub3RfcGVybWl0dGVkX2luX2FuX2VudW1fd2l0aF9zdHJpbmdfdmFsdWVkX21lbWJlcnNfMjU1M1wiLFwiQ29tcHV0ZWQgdmFsdWVzIGFyZSBub3QgcGVybWl0dGVkIGluIGFuIGVudW0gd2l0aCBzdHJpbmcgdmFsdWVkIG1lbWJlcnMuXCIpLEV4cGVjdGVkXzBfYXJndW1lbnRzX2J1dF9nb3RfMTppKDI1NTQsMSxcIkV4cGVjdGVkXzBfYXJndW1lbnRzX2J1dF9nb3RfMV8yNTU0XCIsXCJFeHBlY3RlZCB7MH0gYXJndW1lbnRzLCBidXQgZ290IHsxfS5cIiksRXhwZWN0ZWRfYXRfbGVhc3RfMF9hcmd1bWVudHNfYnV0X2dvdF8xOmkoMjU1NSwxLFwiRXhwZWN0ZWRfYXRfbGVhc3RfMF9hcmd1bWVudHNfYnV0X2dvdF8xXzI1NTVcIixcIkV4cGVjdGVkIGF0IGxlYXN0IHswfSBhcmd1bWVudHMsIGJ1dCBnb3QgezF9LlwiKSxBX3NwcmVhZF9hcmd1bWVudF9tdXN0X2VpdGhlcl9oYXZlX2FfdHVwbGVfdHlwZV9vcl9iZV9wYXNzZWRfdG9fYV9yZXN0X3BhcmFtZXRlcjppKDI1NTYsMSxcIkFfc3ByZWFkX2FyZ3VtZW50X211c3RfZWl0aGVyX2hhdmVfYV90dXBsZV90eXBlX29yX2JlX3Bhc3NlZF90b19hX3Jlc3RfcGFyYW1ldGVyXzI1NTZcIixcIkEgc3ByZWFkIGFyZ3VtZW50IG11c3QgZWl0aGVyIGhhdmUgYSB0dXBsZSB0eXBlIG9yIGJlIHBhc3NlZCB0byBhIHJlc3QgcGFyYW1ldGVyLlwiKSxFeHBlY3RlZF8wX3R5cGVfYXJndW1lbnRzX2J1dF9nb3RfMTppKDI1NTgsMSxcIkV4cGVjdGVkXzBfdHlwZV9hcmd1bWVudHNfYnV0X2dvdF8xXzI1NThcIixcIkV4cGVjdGVkIHswfSB0eXBlIGFyZ3VtZW50cywgYnV0IGdvdCB7MX0uXCIpLFR5cGVfMF9oYXNfbm9fcHJvcGVydGllc19pbl9jb21tb25fd2l0aF90eXBlXzE6aSgyNTU5LDEsXCJUeXBlXzBfaGFzX25vX3Byb3BlcnRpZXNfaW5fY29tbW9uX3dpdGhfdHlwZV8xXzI1NTlcIixcIlR5cGUgJ3swfScgaGFzIG5vIHByb3BlcnRpZXMgaW4gY29tbW9uIHdpdGggdHlwZSAnezF9Jy5cIiksVmFsdWVfb2ZfdHlwZV8wX2hhc19ub19wcm9wZXJ0aWVzX2luX2NvbW1vbl93aXRoX3R5cGVfMV9EaWRfeW91X21lYW5fdG9fY2FsbF9pdDppKDI1NjAsMSxcIlZhbHVlX29mX3R5cGVfMF9oYXNfbm9fcHJvcGVydGllc19pbl9jb21tb25fd2l0aF90eXBlXzFfRGlkX3lvdV9tZWFuX3RvX2NhbGxfaXRfMjU2MFwiLFwiVmFsdWUgb2YgdHlwZSAnezB9JyBoYXMgbm8gcHJvcGVydGllcyBpbiBjb21tb24gd2l0aCB0eXBlICd7MX0nLiBEaWQgeW91IG1lYW4gdG8gY2FsbCBpdD9cIiksT2JqZWN0X2xpdGVyYWxfbWF5X29ubHlfc3BlY2lmeV9rbm93bl9wcm9wZXJ0aWVzX2J1dF8wX2RvZXNfbm90X2V4aXN0X2luX3R5cGVfMV9EaWRfeW91X21lYW5fdG9fd3JpdGVfMjppKDI1NjEsMSxcIk9iamVjdF9saXRlcmFsX21heV9vbmx5X3NwZWNpZnlfa25vd25fcHJvcGVydGllc19idXRfMF9kb2VzX25vdF9leGlzdF9pbl90eXBlXzFfRGlkX3lvdV9tZWFuX3RvX3dyaXRfMjU2MVwiLFwiT2JqZWN0IGxpdGVyYWwgbWF5IG9ubHkgc3BlY2lmeSBrbm93biBwcm9wZXJ0aWVzLCBidXQgJ3swfScgZG9lcyBub3QgZXhpc3QgaW4gdHlwZSAnezF9Jy4gRGlkIHlvdSBtZWFuIHRvIHdyaXRlICd7Mn0nP1wiKSxCYXNlX2NsYXNzX2V4cHJlc3Npb25zX2Nhbm5vdF9yZWZlcmVuY2VfY2xhc3NfdHlwZV9wYXJhbWV0ZXJzOmkoMjU2MiwxLFwiQmFzZV9jbGFzc19leHByZXNzaW9uc19jYW5ub3RfcmVmZXJlbmNlX2NsYXNzX3R5cGVfcGFyYW1ldGVyc18yNTYyXCIsXCJCYXNlIGNsYXNzIGV4cHJlc3Npb25zIGNhbm5vdCByZWZlcmVuY2UgY2xhc3MgdHlwZSBwYXJhbWV0ZXJzLlwiKSxUaGVfY29udGFpbmluZ19mdW5jdGlvbl9vcl9tb2R1bGVfYm9keV9pc190b29fbGFyZ2VfZm9yX2NvbnRyb2xfZmxvd19hbmFseXNpczppKDI1NjMsMSxcIlRoZV9jb250YWluaW5nX2Z1bmN0aW9uX29yX21vZHVsZV9ib2R5X2lzX3Rvb19sYXJnZV9mb3JfY29udHJvbF9mbG93X2FuYWx5c2lzXzI1NjNcIixcIlRoZSBjb250YWluaW5nIGZ1bmN0aW9uIG9yIG1vZHVsZSBib2R5IGlzIHRvbyBsYXJnZSBmb3IgY29udHJvbCBmbG93IGFuYWx5c2lzLlwiKSxQcm9wZXJ0eV8wX2hhc19ub19pbml0aWFsaXplcl9hbmRfaXNfbm90X2RlZmluaXRlbHlfYXNzaWduZWRfaW5fdGhlX2NvbnN0cnVjdG9yOmkoMjU2NCwxLFwiUHJvcGVydHlfMF9oYXNfbm9faW5pdGlhbGl6ZXJfYW5kX2lzX25vdF9kZWZpbml0ZWx5X2Fzc2lnbmVkX2luX3RoZV9jb25zdHJ1Y3Rvcl8yNTY0XCIsXCJQcm9wZXJ0eSAnezB9JyBoYXMgbm8gaW5pdGlhbGl6ZXIgYW5kIGlzIG5vdCBkZWZpbml0ZWx5IGFzc2lnbmVkIGluIHRoZSBjb25zdHJ1Y3Rvci5cIiksUHJvcGVydHlfMF9pc191c2VkX2JlZm9yZV9iZWluZ19hc3NpZ25lZDppKDI1NjUsMSxcIlByb3BlcnR5XzBfaXNfdXNlZF9iZWZvcmVfYmVpbmdfYXNzaWduZWRfMjU2NVwiLFwiUHJvcGVydHkgJ3swfScgaXMgdXNlZCBiZWZvcmUgYmVpbmcgYXNzaWduZWQuXCIpLEFfcmVzdF9lbGVtZW50X2Nhbm5vdF9oYXZlX2FfcHJvcGVydHlfbmFtZTppKDI1NjYsMSxcIkFfcmVzdF9lbGVtZW50X2Nhbm5vdF9oYXZlX2FfcHJvcGVydHlfbmFtZV8yNTY2XCIsXCJBIHJlc3QgZWxlbWVudCBjYW5ub3QgaGF2ZSBhIHByb3BlcnR5IG5hbWUuXCIpLEVudW1fZGVjbGFyYXRpb25zX2Nhbl9vbmx5X21lcmdlX3dpdGhfbmFtZXNwYWNlX29yX290aGVyX2VudW1fZGVjbGFyYXRpb25zOmkoMjU2NywxLFwiRW51bV9kZWNsYXJhdGlvbnNfY2FuX29ubHlfbWVyZ2Vfd2l0aF9uYW1lc3BhY2Vfb3Jfb3RoZXJfZW51bV9kZWNsYXJhdGlvbnNfMjU2N1wiLFwiRW51bSBkZWNsYXJhdGlvbnMgY2FuIG9ubHkgbWVyZ2Ugd2l0aCBuYW1lc3BhY2Ugb3Igb3RoZXIgZW51bSBkZWNsYXJhdGlvbnMuXCIpLFByb3BlcnR5XzBfbWF5X25vdF9leGlzdF9vbl90eXBlXzFfRGlkX3lvdV9tZWFuXzI6aSgyNTY4LDEsXCJQcm9wZXJ0eV8wX21heV9ub3RfZXhpc3Rfb25fdHlwZV8xX0RpZF95b3VfbWVhbl8yXzI1NjhcIixcIlByb3BlcnR5ICd7MH0nIG1heSBub3QgZXhpc3Qgb24gdHlwZSAnezF9Jy4gRGlkIHlvdSBtZWFuICd7Mn0nP1wiKSxDb3VsZF9ub3RfZmluZF9uYW1lXzBfRGlkX3lvdV9tZWFuXzE6aSgyNTcwLDEsXCJDb3VsZF9ub3RfZmluZF9uYW1lXzBfRGlkX3lvdV9tZWFuXzFfMjU3MFwiLFwiQ291bGQgbm90IGZpbmQgbmFtZSAnezB9Jy4gRGlkIHlvdSBtZWFuICd7MX0nP1wiKSxPYmplY3RfaXNfb2ZfdHlwZV91bmtub3duOmkoMjU3MSwxLFwiT2JqZWN0X2lzX29mX3R5cGVfdW5rbm93bl8yNTcxXCIsXCJPYmplY3QgaXMgb2YgdHlwZSAndW5rbm93bicuXCIpLEFfcmVzdF9lbGVtZW50X3R5cGVfbXVzdF9iZV9hbl9hcnJheV90eXBlOmkoMjU3NCwxLFwiQV9yZXN0X2VsZW1lbnRfdHlwZV9tdXN0X2JlX2FuX2FycmF5X3R5cGVfMjU3NFwiLFwiQSByZXN0IGVsZW1lbnQgdHlwZSBtdXN0IGJlIGFuIGFycmF5IHR5cGUuXCIpLE5vX292ZXJsb2FkX2V4cGVjdHNfMF9hcmd1bWVudHNfYnV0X292ZXJsb2Fkc19kb19leGlzdF90aGF0X2V4cGVjdF9laXRoZXJfMV9vcl8yX2FyZ3VtZW50czppKDI1NzUsMSxcIk5vX292ZXJsb2FkX2V4cGVjdHNfMF9hcmd1bWVudHNfYnV0X292ZXJsb2Fkc19kb19leGlzdF90aGF0X2V4cGVjdF9laXRoZXJfMV9vcl8yX2FyZ3VtZW50c18yNTc1XCIsXCJObyBvdmVybG9hZCBleHBlY3RzIHswfSBhcmd1bWVudHMsIGJ1dCBvdmVybG9hZHMgZG8gZXhpc3QgdGhhdCBleHBlY3QgZWl0aGVyIHsxfSBvciB7Mn0gYXJndW1lbnRzLlwiKSxQcm9wZXJ0eV8wX2RvZXNfbm90X2V4aXN0X29uX3R5cGVfMV9EaWRfeW91X21lYW5fdG9fYWNjZXNzX3RoZV9zdGF0aWNfbWVtYmVyXzJfaW5zdGVhZDppKDI1NzYsMSxcIlByb3BlcnR5XzBfZG9lc19ub3RfZXhpc3Rfb25fdHlwZV8xX0RpZF95b3VfbWVhbl90b19hY2Nlc3NfdGhlX3N0YXRpY19tZW1iZXJfMl9pbnN0ZWFkXzI1NzZcIixcIlByb3BlcnR5ICd7MH0nIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgJ3sxfScuIERpZCB5b3UgbWVhbiB0byBhY2Nlc3MgdGhlIHN0YXRpYyBtZW1iZXIgJ3syfScgaW5zdGVhZD9cIiksUmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9jaXJjdWxhcmx5X3JlZmVyZW5jZXNfaXRzZWxmOmkoMjU3NywxLFwiUmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9jaXJjdWxhcmx5X3JlZmVyZW5jZXNfaXRzZWxmXzI1NzdcIixcIlJldHVybiB0eXBlIGFubm90YXRpb24gY2lyY3VsYXJseSByZWZlcmVuY2VzIGl0c2VsZi5cIiksVW51c2VkX3RzX2V4cGVjdF9lcnJvcl9kaXJlY3RpdmU6aSgyNTc4LDEsXCJVbnVzZWRfdHNfZXhwZWN0X2Vycm9yX2RpcmVjdGl2ZV8yNTc4XCIsXCJVbnVzZWQgJ0B0cy1leHBlY3QtZXJyb3InIGRpcmVjdGl2ZS5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3Jfbm9kZV9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hub2RlOmkoMjU4MCwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3Jfbm9kZV9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hub18yNTgwXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEbyB5b3UgbmVlZCB0byBpbnN0YWxsIHR5cGUgZGVmaW5pdGlvbnMgZm9yIG5vZGU/IFRyeSBgbnBtIGkgLS1zYXZlLWRldiBAdHlwZXMvbm9kZWAuXCIpLENhbm5vdF9maW5kX25hbWVfMF9Eb195b3VfbmVlZF90b19pbnN0YWxsX3R5cGVfZGVmaW5pdGlvbnNfZm9yX2pRdWVyeV9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hqcXVlcnk6aSgyNTgxLDEsXCJDYW5ub3RfZmluZF9uYW1lXzBfRG9feW91X25lZWRfdG9faW5zdGFsbF90eXBlX2RlZmluaXRpb25zX2Zvcl9qUXVlcnlfVHJ5X25wbV9pX3NhdmVfZGV2X3R5cGVzX1NsYXNoXzI1ODFcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERvIHlvdSBuZWVkIHRvIGluc3RhbGwgdHlwZSBkZWZpbml0aW9ucyBmb3IgalF1ZXJ5PyBUcnkgYG5wbSBpIC0tc2F2ZS1kZXYgQHR5cGVzL2pxdWVyeWAuXCIpLENhbm5vdF9maW5kX25hbWVfMF9Eb195b3VfbmVlZF90b19pbnN0YWxsX3R5cGVfZGVmaW5pdGlvbnNfZm9yX2FfdGVzdF9ydW5uZXJfVHJ5X25wbV9pX3NhdmVfZGV2X3R5cGVzX1NsYXNoamVzdF9vcl9ucG1faV9zYXZlX2Rldl90eXBlc19TbGFzaG1vY2hhOmkoMjU4MiwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3JfYV90ZXN0X3J1bm5lcl9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZV8yNTgyXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEbyB5b3UgbmVlZCB0byBpbnN0YWxsIHR5cGUgZGVmaW5pdGlvbnMgZm9yIGEgdGVzdCBydW5uZXI/IFRyeSBgbnBtIGkgLS1zYXZlLWRldiBAdHlwZXMvamVzdGAgb3IgYG5wbSBpIC0tc2F2ZS1kZXYgQHR5cGVzL21vY2hhYC5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2NoYW5nZV95b3VyX3RhcmdldF9saWJyYXJ5X1RyeV9jaGFuZ2luZ190aGVfbGliX2NvbXBpbGVyX29wdGlvbl90b18xX29yX2xhdGVyOmkoMjU4MywxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2NoYW5nZV95b3VyX3RhcmdldF9saWJyYXJ5X1RyeV9jaGFuZ2luZ190aGVfbGliX2NvbXBpbGVyX29wdGlvbl90b18yNTgzXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEbyB5b3UgbmVlZCB0byBjaGFuZ2UgeW91ciB0YXJnZXQgbGlicmFyeT8gVHJ5IGNoYW5naW5nIHRoZSAnbGliJyBjb21waWxlciBvcHRpb24gdG8gJ3sxfScgb3IgbGF0ZXIuXCIpLENhbm5vdF9maW5kX25hbWVfMF9Eb195b3VfbmVlZF90b19jaGFuZ2VfeW91cl90YXJnZXRfbGlicmFyeV9UcnlfY2hhbmdpbmdfdGhlX2xpYl9jb21waWxlcl9vcHRpb25fdG9faW5jbHVkZV9kb206aSgyNTg0LDEsXCJDYW5ub3RfZmluZF9uYW1lXzBfRG9feW91X25lZWRfdG9fY2hhbmdlX3lvdXJfdGFyZ2V0X2xpYnJhcnlfVHJ5X2NoYW5naW5nX3RoZV9saWJfY29tcGlsZXJfb3B0aW9uX3RvXzI1ODRcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERvIHlvdSBuZWVkIHRvIGNoYW5nZSB5b3VyIHRhcmdldCBsaWJyYXJ5PyBUcnkgY2hhbmdpbmcgdGhlICdsaWInIGNvbXBpbGVyIG9wdGlvbiB0byBpbmNsdWRlICdkb20nLlwiKSxfMF9vbmx5X3JlZmVyc190b19hX3R5cGVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV92YWx1ZV9oZXJlX0RvX3lvdV9uZWVkX3RvX2NoYW5nZV95b3VyX3RhcmdldF9saWJyYXJ5X1RyeV9jaGFuZ2luZ190aGVfbGliX2NvbXBpbGVyX29wdGlvbl90b19lczIwMTVfb3JfbGF0ZXI6aSgyNTg1LDEsXCJfMF9vbmx5X3JlZmVyc190b19hX3R5cGVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV92YWx1ZV9oZXJlX0RvX3lvdV9uZWVkX3RvX2NoYW5nZV95b3VyX3RhcmdldF9saWJyYXJ5XzI1ODVcIixcIid7MH0nIG9ubHkgcmVmZXJzIHRvIGEgdHlwZSwgYnV0IGlzIGJlaW5nIHVzZWQgYXMgYSB2YWx1ZSBoZXJlLiBEbyB5b3UgbmVlZCB0byBjaGFuZ2UgeW91ciB0YXJnZXQgbGlicmFyeT8gVHJ5IGNoYW5naW5nIHRoZSAnbGliJyBjb21waWxlciBvcHRpb24gdG8gZXMyMDE1IG9yIGxhdGVyLlwiKSxDYW5ub3RfYXNzaWduX3RvXzBfYmVjYXVzZV9pdF9pc19hX2NvbnN0YW50OmkoMjU4OCwxLFwiQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfYV9jb25zdGFudF8yNTg4XCIsXCJDYW5ub3QgYXNzaWduIHRvICd7MH0nIGJlY2F1c2UgaXQgaXMgYSBjb25zdGFudC5cIiksVHlwZV9pbnN0YW50aWF0aW9uX2lzX2V4Y2Vzc2l2ZWx5X2RlZXBfYW5kX3Bvc3NpYmx5X2luZmluaXRlOmkoMjU4OSwxLFwiVHlwZV9pbnN0YW50aWF0aW9uX2lzX2V4Y2Vzc2l2ZWx5X2RlZXBfYW5kX3Bvc3NpYmx5X2luZmluaXRlXzI1ODlcIixcIlR5cGUgaW5zdGFudGlhdGlvbiBpcyBleGNlc3NpdmVseSBkZWVwIGFuZCBwb3NzaWJseSBpbmZpbml0ZS5cIiksRXhwcmVzc2lvbl9wcm9kdWNlc19hX3VuaW9uX3R5cGVfdGhhdF9pc190b29fY29tcGxleF90b19yZXByZXNlbnQ6aSgyNTkwLDEsXCJFeHByZXNzaW9uX3Byb2R1Y2VzX2FfdW5pb25fdHlwZV90aGF0X2lzX3Rvb19jb21wbGV4X3RvX3JlcHJlc2VudF8yNTkwXCIsXCJFeHByZXNzaW9uIHByb2R1Y2VzIGEgdW5pb24gdHlwZSB0aGF0IGlzIHRvbyBjb21wbGV4IHRvIHJlcHJlc2VudC5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3Jfbm9kZV9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hub2RlX2FuZF90aGVuX2FkZF9ub2RlX3RvX3RoZV90eXBlc19maWVsZF9pbl95b3VyX3RzY29uZmlnOmkoMjU5MSwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3Jfbm9kZV9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hub18yNTkxXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEbyB5b3UgbmVlZCB0byBpbnN0YWxsIHR5cGUgZGVmaW5pdGlvbnMgZm9yIG5vZGU/IFRyeSBgbnBtIGkgLS1zYXZlLWRldiBAdHlwZXMvbm9kZWAgYW5kIHRoZW4gYWRkICdub2RlJyB0byB0aGUgdHlwZXMgZmllbGQgaW4geW91ciB0c2NvbmZpZy5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3JfalF1ZXJ5X1RyeV9ucG1faV9zYXZlX2Rldl90eXBlc19TbGFzaGpxdWVyeV9hbmRfdGhlbl9hZGRfanF1ZXJ5X3RvX3RoZV90eXBlc19maWVsZF9pbl95b3VyX3RzY29uZmlnOmkoMjU5MiwxLFwiQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3JfalF1ZXJ5X1RyeV9ucG1faV9zYXZlX2Rldl90eXBlc19TbGFzaF8yNTkyXCIsXCJDYW5ub3QgZmluZCBuYW1lICd7MH0nLiBEbyB5b3UgbmVlZCB0byBpbnN0YWxsIHR5cGUgZGVmaW5pdGlvbnMgZm9yIGpRdWVyeT8gVHJ5IGBucG0gaSAtLXNhdmUtZGV2IEB0eXBlcy9qcXVlcnlgIGFuZCB0aGVuIGFkZCAnanF1ZXJ5JyB0byB0aGUgdHlwZXMgZmllbGQgaW4geW91ciB0c2NvbmZpZy5cIiksQ2Fubm90X2ZpbmRfbmFtZV8wX0RvX3lvdV9uZWVkX3RvX2luc3RhbGxfdHlwZV9kZWZpbml0aW9uc19mb3JfYV90ZXN0X3J1bm5lcl9UcnlfbnBtX2lfc2F2ZV9kZXZfdHlwZXNfU2xhc2hqZXN0X29yX25wbV9pX3NhdmVfZGV2X3R5cGVzX1NsYXNobW9jaGFfYW5kX3RoZW5fYWRkX2plc3Rfb3JfbW9jaGFfdG9fdGhlX3R5cGVzX2ZpZWxkX2luX3lvdXJfdHNjb25maWc6aSgyNTkzLDEsXCJDYW5ub3RfZmluZF9uYW1lXzBfRG9feW91X25lZWRfdG9faW5zdGFsbF90eXBlX2RlZmluaXRpb25zX2Zvcl9hX3Rlc3RfcnVubmVyX1RyeV9ucG1faV9zYXZlX2Rldl90eXBlXzI1OTNcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERvIHlvdSBuZWVkIHRvIGluc3RhbGwgdHlwZSBkZWZpbml0aW9ucyBmb3IgYSB0ZXN0IHJ1bm5lcj8gVHJ5IGBucG0gaSAtLXNhdmUtZGV2IEB0eXBlcy9qZXN0YCBvciBgbnBtIGkgLS1zYXZlLWRldiBAdHlwZXMvbW9jaGFgIGFuZCB0aGVuIGFkZCAnamVzdCcgb3IgJ21vY2hhJyB0byB0aGUgdHlwZXMgZmllbGQgaW4geW91ciB0c2NvbmZpZy5cIiksVGhpc19tb2R1bGVfaXNfZGVjbGFyZWRfd2l0aF9leHBvcnRfYW5kX2Nhbl9vbmx5X2JlX3VzZWRfd2l0aF9hX2RlZmF1bHRfaW1wb3J0X3doZW5fdXNpbmdfdGhlXzBfZmxhZzppKDI1OTQsMSxcIlRoaXNfbW9kdWxlX2lzX2RlY2xhcmVkX3dpdGhfZXhwb3J0X2FuZF9jYW5fb25seV9iZV91c2VkX3dpdGhfYV9kZWZhdWx0X2ltcG9ydF93aGVuX3VzaW5nX3RoZV8wX2ZsYWdfMjU5NFwiLFwiVGhpcyBtb2R1bGUgaXMgZGVjbGFyZWQgd2l0aCAnZXhwb3J0ID0nLCBhbmQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGEgZGVmYXVsdCBpbXBvcnQgd2hlbiB1c2luZyB0aGUgJ3swfScgZmxhZy5cIiksXzBfY2FuX29ubHlfYmVfaW1wb3J0ZWRfYnlfdXNpbmdfYV9kZWZhdWx0X2ltcG9ydDppKDI1OTUsMSxcIl8wX2Nhbl9vbmx5X2JlX2ltcG9ydGVkX2J5X3VzaW5nX2FfZGVmYXVsdF9pbXBvcnRfMjU5NVwiLFwiJ3swfScgY2FuIG9ubHkgYmUgaW1wb3J0ZWQgYnkgdXNpbmcgYSBkZWZhdWx0IGltcG9ydC5cIiksXzBfY2FuX29ubHlfYmVfaW1wb3J0ZWRfYnlfdHVybmluZ19vbl90aGVfZXNNb2R1bGVJbnRlcm9wX2ZsYWdfYW5kX3VzaW5nX2FfZGVmYXVsdF9pbXBvcnQ6aSgyNTk2LDEsXCJfMF9jYW5fb25seV9iZV9pbXBvcnRlZF9ieV90dXJuaW5nX29uX3RoZV9lc01vZHVsZUludGVyb3BfZmxhZ19hbmRfdXNpbmdfYV9kZWZhdWx0X2ltcG9ydF8yNTk2XCIsXCInezB9JyBjYW4gb25seSBiZSBpbXBvcnRlZCBieSB0dXJuaW5nIG9uIHRoZSAnZXNNb2R1bGVJbnRlcm9wJyBmbGFnIGFuZCB1c2luZyBhIGRlZmF1bHQgaW1wb3J0LlwiKSxfMF9jYW5fb25seV9iZV9pbXBvcnRlZF9ieV91c2luZ19hX3JlcXVpcmVfY2FsbF9vcl9ieV91c2luZ19hX2RlZmF1bHRfaW1wb3J0OmkoMjU5NywxLFwiXzBfY2FuX29ubHlfYmVfaW1wb3J0ZWRfYnlfdXNpbmdfYV9yZXF1aXJlX2NhbGxfb3JfYnlfdXNpbmdfYV9kZWZhdWx0X2ltcG9ydF8yNTk3XCIsXCInezB9JyBjYW4gb25seSBiZSBpbXBvcnRlZCBieSB1c2luZyBhICdyZXF1aXJlJyBjYWxsIG9yIGJ5IHVzaW5nIGEgZGVmYXVsdCBpbXBvcnQuXCIpLF8wX2Nhbl9vbmx5X2JlX2ltcG9ydGVkX2J5X3VzaW5nX2FfcmVxdWlyZV9jYWxsX29yX2J5X3R1cm5pbmdfb25fdGhlX2VzTW9kdWxlSW50ZXJvcF9mbGFnX2FuZF91c2luZ19hX2RlZmF1bHRfaW1wb3J0OmkoMjU5OCwxLFwiXzBfY2FuX29ubHlfYmVfaW1wb3J0ZWRfYnlfdXNpbmdfYV9yZXF1aXJlX2NhbGxfb3JfYnlfdHVybmluZ19vbl90aGVfZXNNb2R1bGVJbnRlcm9wX2ZsYWdfYW5kX3VzaW5nX18yNTk4XCIsXCInezB9JyBjYW4gb25seSBiZSBpbXBvcnRlZCBieSB1c2luZyBhICdyZXF1aXJlJyBjYWxsIG9yIGJ5IHR1cm5pbmcgb24gdGhlICdlc01vZHVsZUludGVyb3AnIGZsYWcgYW5kIHVzaW5nIGEgZGVmYXVsdCBpbXBvcnQuXCIpLEpTWF9lbGVtZW50X2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2JlY2F1c2VfdGhlX2dsb2JhbF90eXBlX0pTWF9FbGVtZW50X2RvZXNfbm90X2V4aXN0OmkoMjYwMiwxLFwiSlNYX2VsZW1lbnRfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYmVjYXVzZV90aGVfZ2xvYmFsX3R5cGVfSlNYX0VsZW1lbnRfZG9lc19ub3RfZXhpc3RfMjYwMlwiLFwiSlNYIGVsZW1lbnQgaW1wbGljaXRseSBoYXMgdHlwZSAnYW55JyBiZWNhdXNlIHRoZSBnbG9iYWwgdHlwZSAnSlNYLkVsZW1lbnQnIGRvZXMgbm90IGV4aXN0LlwiKSxQcm9wZXJ0eV8wX2luX3R5cGVfMV9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzI6aSgyNjAzLDEsXCJQcm9wZXJ0eV8wX2luX3R5cGVfMV9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzJfMjYwM1wiLFwiUHJvcGVydHkgJ3swfScgaW4gdHlwZSAnezF9JyBpcyBub3QgYXNzaWduYWJsZSB0byB0eXBlICd7Mn0nLlwiKSxKU1hfZWxlbWVudF90eXBlXzBfZG9lc19ub3RfaGF2ZV9hbnlfY29uc3RydWN0X29yX2NhbGxfc2lnbmF0dXJlczppKDI2MDQsMSxcIkpTWF9lbGVtZW50X3R5cGVfMF9kb2VzX25vdF9oYXZlX2FueV9jb25zdHJ1Y3Rfb3JfY2FsbF9zaWduYXR1cmVzXzI2MDRcIixcIkpTWCBlbGVtZW50IHR5cGUgJ3swfScgZG9lcyBub3QgaGF2ZSBhbnkgY29uc3RydWN0IG9yIGNhbGwgc2lnbmF0dXJlcy5cIiksUHJvcGVydHlfMF9vZl9KU1hfc3ByZWFkX2F0dHJpYnV0ZV9pc19ub3RfYXNzaWduYWJsZV90b190YXJnZXRfcHJvcGVydHk6aSgyNjA2LDEsXCJQcm9wZXJ0eV8wX29mX0pTWF9zcHJlYWRfYXR0cmlidXRlX2lzX25vdF9hc3NpZ25hYmxlX3RvX3RhcmdldF9wcm9wZXJ0eV8yNjA2XCIsXCJQcm9wZXJ0eSAnezB9JyBvZiBKU1ggc3ByZWFkIGF0dHJpYnV0ZSBpcyBub3QgYXNzaWduYWJsZSB0byB0YXJnZXQgcHJvcGVydHkuXCIpLEpTWF9lbGVtZW50X2NsYXNzX2RvZXNfbm90X3N1cHBvcnRfYXR0cmlidXRlc19iZWNhdXNlX2l0X2RvZXNfbm90X2hhdmVfYV8wX3Byb3BlcnR5OmkoMjYwNywxLFwiSlNYX2VsZW1lbnRfY2xhc3NfZG9lc19ub3Rfc3VwcG9ydF9hdHRyaWJ1dGVzX2JlY2F1c2VfaXRfZG9lc19ub3RfaGF2ZV9hXzBfcHJvcGVydHlfMjYwN1wiLFwiSlNYIGVsZW1lbnQgY2xhc3MgZG9lcyBub3Qgc3VwcG9ydCBhdHRyaWJ1dGVzIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhICd7MH0nIHByb3BlcnR5LlwiKSxUaGVfZ2xvYmFsX3R5cGVfSlNYXzBfbWF5X25vdF9oYXZlX21vcmVfdGhhbl9vbmVfcHJvcGVydHk6aSgyNjA4LDEsXCJUaGVfZ2xvYmFsX3R5cGVfSlNYXzBfbWF5X25vdF9oYXZlX21vcmVfdGhhbl9vbmVfcHJvcGVydHlfMjYwOFwiLFwiVGhlIGdsb2JhbCB0eXBlICdKU1guezB9JyBtYXkgbm90IGhhdmUgbW9yZSB0aGFuIG9uZSBwcm9wZXJ0eS5cIiksSlNYX3NwcmVhZF9jaGlsZF9tdXN0X2JlX2FuX2FycmF5X3R5cGU6aSgyNjA5LDEsXCJKU1hfc3ByZWFkX2NoaWxkX211c3RfYmVfYW5fYXJyYXlfdHlwZV8yNjA5XCIsXCJKU1ggc3ByZWFkIGNoaWxkIG11c3QgYmUgYW4gYXJyYXkgdHlwZS5cIiksXzBfaXNfZGVmaW5lZF9hc19hbl9hY2Nlc3Nvcl9pbl9jbGFzc18xX2J1dF9pc19vdmVycmlkZGVuX2hlcmVfaW5fMl9hc19hbl9pbnN0YW5jZV9wcm9wZXJ0eTppKDI2MTAsMSxcIl8wX2lzX2RlZmluZWRfYXNfYW5fYWNjZXNzb3JfaW5fY2xhc3NfMV9idXRfaXNfb3ZlcnJpZGRlbl9oZXJlX2luXzJfYXNfYW5faW5zdGFuY2VfcHJvcGVydHlfMjYxMFwiLFwiJ3swfScgaXMgZGVmaW5lZCBhcyBhbiBhY2Nlc3NvciBpbiBjbGFzcyAnezF9JywgYnV0IGlzIG92ZXJyaWRkZW4gaGVyZSBpbiAnezJ9JyBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eS5cIiksXzBfaXNfZGVmaW5lZF9hc19hX3Byb3BlcnR5X2luX2NsYXNzXzFfYnV0X2lzX292ZXJyaWRkZW5faGVyZV9pbl8yX2FzX2FuX2FjY2Vzc29yOmkoMjYxMSwxLFwiXzBfaXNfZGVmaW5lZF9hc19hX3Byb3BlcnR5X2luX2NsYXNzXzFfYnV0X2lzX292ZXJyaWRkZW5faGVyZV9pbl8yX2FzX2FuX2FjY2Vzc29yXzI2MTFcIixcIid7MH0nIGlzIGRlZmluZWQgYXMgYSBwcm9wZXJ0eSBpbiBjbGFzcyAnezF9JywgYnV0IGlzIG92ZXJyaWRkZW4gaGVyZSBpbiAnezJ9JyBhcyBhbiBhY2Nlc3Nvci5cIiksUHJvcGVydHlfMF93aWxsX292ZXJ3cml0ZV90aGVfYmFzZV9wcm9wZXJ0eV9pbl8xX0lmX3RoaXNfaXNfaW50ZW50aW9uYWxfYWRkX2FuX2luaXRpYWxpemVyX090aGVyd2lzZV9hZGRfYV9kZWNsYXJlX21vZGlmaWVyX29yX3JlbW92ZV90aGVfcmVkdW5kYW50X2RlY2xhcmF0aW9uOmkoMjYxMiwxLFwiUHJvcGVydHlfMF93aWxsX292ZXJ3cml0ZV90aGVfYmFzZV9wcm9wZXJ0eV9pbl8xX0lmX3RoaXNfaXNfaW50ZW50aW9uYWxfYWRkX2FuX2luaXRpYWxpemVyX090aGVyd2lzZV8yNjEyXCIsXCJQcm9wZXJ0eSAnezB9JyB3aWxsIG92ZXJ3cml0ZSB0aGUgYmFzZSBwcm9wZXJ0eSBpbiAnezF9Jy4gSWYgdGhpcyBpcyBpbnRlbnRpb25hbCwgYWRkIGFuIGluaXRpYWxpemVyLiBPdGhlcndpc2UsIGFkZCBhICdkZWNsYXJlJyBtb2RpZmllciBvciByZW1vdmUgdGhlIHJlZHVuZGFudCBkZWNsYXJhdGlvbi5cIiksTW9kdWxlXzBfaGFzX25vX2RlZmF1bHRfZXhwb3J0X0RpZF95b3VfbWVhbl90b191c2VfaW1wb3J0XzFfZnJvbV8wX2luc3RlYWQ6aSgyNjEzLDEsXCJNb2R1bGVfMF9oYXNfbm9fZGVmYXVsdF9leHBvcnRfRGlkX3lvdV9tZWFuX3RvX3VzZV9pbXBvcnRfMV9mcm9tXzBfaW5zdGVhZF8yNjEzXCIsXCJNb2R1bGUgJ3swfScgaGFzIG5vIGRlZmF1bHQgZXhwb3J0LiBEaWQgeW91IG1lYW4gdG8gdXNlICdpbXBvcnQgeyB7MX0gfSBmcm9tIHswfScgaW5zdGVhZD9cIiksTW9kdWxlXzBfaGFzX25vX2V4cG9ydGVkX21lbWJlcl8xX0RpZF95b3VfbWVhbl90b191c2VfaW1wb3J0XzFfZnJvbV8wX2luc3RlYWQ6aSgyNjE0LDEsXCJNb2R1bGVfMF9oYXNfbm9fZXhwb3J0ZWRfbWVtYmVyXzFfRGlkX3lvdV9tZWFuX3RvX3VzZV9pbXBvcnRfMV9mcm9tXzBfaW5zdGVhZF8yNjE0XCIsXCJNb2R1bGUgJ3swfScgaGFzIG5vIGV4cG9ydGVkIG1lbWJlciAnezF9Jy4gRGlkIHlvdSBtZWFuIHRvIHVzZSAnaW1wb3J0IHsxfSBmcm9tIHswfScgaW5zdGVhZD9cIiksVHlwZV9vZl9wcm9wZXJ0eV8wX2NpcmN1bGFybHlfcmVmZXJlbmNlc19pdHNlbGZfaW5fbWFwcGVkX3R5cGVfMTppKDI2MTUsMSxcIlR5cGVfb2ZfcHJvcGVydHlfMF9jaXJjdWxhcmx5X3JlZmVyZW5jZXNfaXRzZWxmX2luX21hcHBlZF90eXBlXzFfMjYxNVwiLFwiVHlwZSBvZiBwcm9wZXJ0eSAnezB9JyBjaXJjdWxhcmx5IHJlZmVyZW5jZXMgaXRzZWxmIGluIG1hcHBlZCB0eXBlICd7MX0nLlwiKSxfMF9jYW5fb25seV9iZV9pbXBvcnRlZF9ieV91c2luZ19pbXBvcnRfMV9yZXF1aXJlXzJfb3JfYV9kZWZhdWx0X2ltcG9ydDppKDI2MTYsMSxcIl8wX2Nhbl9vbmx5X2JlX2ltcG9ydGVkX2J5X3VzaW5nX2ltcG9ydF8xX3JlcXVpcmVfMl9vcl9hX2RlZmF1bHRfaW1wb3J0XzI2MTZcIixcIid7MH0nIGNhbiBvbmx5IGJlIGltcG9ydGVkIGJ5IHVzaW5nICdpbXBvcnQgezF9ID0gcmVxdWlyZSh7Mn0pJyBvciBhIGRlZmF1bHQgaW1wb3J0LlwiKSxfMF9jYW5fb25seV9iZV9pbXBvcnRlZF9ieV91c2luZ19pbXBvcnRfMV9yZXF1aXJlXzJfb3JfYnlfdHVybmluZ19vbl90aGVfZXNNb2R1bGVJbnRlcm9wX2ZsYWdfYW5kX3VzaW5nX2FfZGVmYXVsdF9pbXBvcnQ6aSgyNjE3LDEsXCJfMF9jYW5fb25seV9iZV9pbXBvcnRlZF9ieV91c2luZ19pbXBvcnRfMV9yZXF1aXJlXzJfb3JfYnlfdHVybmluZ19vbl90aGVfZXNNb2R1bGVJbnRlcm9wX2ZsYWdfYW5kX3VzXzI2MTdcIixcIid7MH0nIGNhbiBvbmx5IGJlIGltcG9ydGVkIGJ5IHVzaW5nICdpbXBvcnQgezF9ID0gcmVxdWlyZSh7Mn0pJyBvciBieSB0dXJuaW5nIG9uIHRoZSAnZXNNb2R1bGVJbnRlcm9wJyBmbGFnIGFuZCB1c2luZyBhIGRlZmF1bHQgaW1wb3J0LlwiKSxTb3VyY2VfaGFzXzBfZWxlbWVudF9zX2J1dF90YXJnZXRfcmVxdWlyZXNfMTppKDI2MTgsMSxcIlNvdXJjZV9oYXNfMF9lbGVtZW50X3NfYnV0X3RhcmdldF9yZXF1aXJlc18xXzI2MThcIixcIlNvdXJjZSBoYXMgezB9IGVsZW1lbnQocykgYnV0IHRhcmdldCByZXF1aXJlcyB7MX0uXCIpLFNvdXJjZV9oYXNfMF9lbGVtZW50X3NfYnV0X3RhcmdldF9hbGxvd3Nfb25seV8xOmkoMjYxOSwxLFwiU291cmNlX2hhc18wX2VsZW1lbnRfc19idXRfdGFyZ2V0X2FsbG93c19vbmx5XzFfMjYxOVwiLFwiU291cmNlIGhhcyB7MH0gZWxlbWVudChzKSBidXQgdGFyZ2V0IGFsbG93cyBvbmx5IHsxfS5cIiksVGFyZ2V0X3JlcXVpcmVzXzBfZWxlbWVudF9zX2J1dF9zb3VyY2VfbWF5X2hhdmVfZmV3ZXI6aSgyNjIwLDEsXCJUYXJnZXRfcmVxdWlyZXNfMF9lbGVtZW50X3NfYnV0X3NvdXJjZV9tYXlfaGF2ZV9mZXdlcl8yNjIwXCIsXCJUYXJnZXQgcmVxdWlyZXMgezB9IGVsZW1lbnQocykgYnV0IHNvdXJjZSBtYXkgaGF2ZSBmZXdlci5cIiksVGFyZ2V0X2FsbG93c19vbmx5XzBfZWxlbWVudF9zX2J1dF9zb3VyY2VfbWF5X2hhdmVfbW9yZTppKDI2MjEsMSxcIlRhcmdldF9hbGxvd3Nfb25seV8wX2VsZW1lbnRfc19idXRfc291cmNlX21heV9oYXZlX21vcmVfMjYyMVwiLFwiVGFyZ2V0IGFsbG93cyBvbmx5IHswfSBlbGVtZW50KHMpIGJ1dCBzb3VyY2UgbWF5IGhhdmUgbW9yZS5cIiksU291cmNlX3Byb3ZpZGVzX25vX21hdGNoX2Zvcl9yZXF1aXJlZF9lbGVtZW50X2F0X3Bvc2l0aW9uXzBfaW5fdGFyZ2V0OmkoMjYyMywxLFwiU291cmNlX3Byb3ZpZGVzX25vX21hdGNoX2Zvcl9yZXF1aXJlZF9lbGVtZW50X2F0X3Bvc2l0aW9uXzBfaW5fdGFyZ2V0XzI2MjNcIixcIlNvdXJjZSBwcm92aWRlcyBubyBtYXRjaCBmb3IgcmVxdWlyZWQgZWxlbWVudCBhdCBwb3NpdGlvbiB7MH0gaW4gdGFyZ2V0LlwiKSxTb3VyY2VfcHJvdmlkZXNfbm9fbWF0Y2hfZm9yX3ZhcmlhZGljX2VsZW1lbnRfYXRfcG9zaXRpb25fMF9pbl90YXJnZXQ6aSgyNjI0LDEsXCJTb3VyY2VfcHJvdmlkZXNfbm9fbWF0Y2hfZm9yX3ZhcmlhZGljX2VsZW1lbnRfYXRfcG9zaXRpb25fMF9pbl90YXJnZXRfMjYyNFwiLFwiU291cmNlIHByb3ZpZGVzIG5vIG1hdGNoIGZvciB2YXJpYWRpYyBlbGVtZW50IGF0IHBvc2l0aW9uIHswfSBpbiB0YXJnZXQuXCIpLFZhcmlhZGljX2VsZW1lbnRfYXRfcG9zaXRpb25fMF9pbl9zb3VyY2VfZG9lc19ub3RfbWF0Y2hfZWxlbWVudF9hdF9wb3NpdGlvbl8xX2luX3RhcmdldDppKDI2MjUsMSxcIlZhcmlhZGljX2VsZW1lbnRfYXRfcG9zaXRpb25fMF9pbl9zb3VyY2VfZG9lc19ub3RfbWF0Y2hfZWxlbWVudF9hdF9wb3NpdGlvbl8xX2luX3RhcmdldF8yNjI1XCIsXCJWYXJpYWRpYyBlbGVtZW50IGF0IHBvc2l0aW9uIHswfSBpbiBzb3VyY2UgZG9lcyBub3QgbWF0Y2ggZWxlbWVudCBhdCBwb3NpdGlvbiB7MX0gaW4gdGFyZ2V0LlwiKSxUeXBlX2F0X3Bvc2l0aW9uXzBfaW5fc291cmNlX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfdHlwZV9hdF9wb3NpdGlvbl8xX2luX3RhcmdldDppKDI2MjYsMSxcIlR5cGVfYXRfcG9zaXRpb25fMF9pbl9zb3VyY2VfaXNfbm90X2NvbXBhdGlibGVfd2l0aF90eXBlX2F0X3Bvc2l0aW9uXzFfaW5fdGFyZ2V0XzI2MjZcIixcIlR5cGUgYXQgcG9zaXRpb24gezB9IGluIHNvdXJjZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHR5cGUgYXQgcG9zaXRpb24gezF9IGluIHRhcmdldC5cIiksVHlwZV9hdF9wb3NpdGlvbnNfMF90aHJvdWdoXzFfaW5fc291cmNlX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfdHlwZV9hdF9wb3NpdGlvbl8yX2luX3RhcmdldDppKDI2MjcsMSxcIlR5cGVfYXRfcG9zaXRpb25zXzBfdGhyb3VnaF8xX2luX3NvdXJjZV9pc19ub3RfY29tcGF0aWJsZV93aXRoX3R5cGVfYXRfcG9zaXRpb25fMl9pbl90YXJnZXRfMjYyN1wiLFwiVHlwZSBhdCBwb3NpdGlvbnMgezB9IHRocm91Z2ggezF9IGluIHNvdXJjZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHR5cGUgYXQgcG9zaXRpb24gezJ9IGluIHRhcmdldC5cIiksQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfYW5fZW51bTppKDI2MjgsMSxcIkNhbm5vdF9hc3NpZ25fdG9fMF9iZWNhdXNlX2l0X2lzX2FuX2VudW1fMjYyOFwiLFwiQ2Fubm90IGFzc2lnbiB0byAnezB9JyBiZWNhdXNlIGl0IGlzIGFuIGVudW0uXCIpLENhbm5vdF9hc3NpZ25fdG9fMF9iZWNhdXNlX2l0X2lzX2FfY2xhc3M6aSgyNjI5LDEsXCJDYW5ub3RfYXNzaWduX3RvXzBfYmVjYXVzZV9pdF9pc19hX2NsYXNzXzI2MjlcIixcIkNhbm5vdCBhc3NpZ24gdG8gJ3swfScgYmVjYXVzZSBpdCBpcyBhIGNsYXNzLlwiKSxDYW5ub3RfYXNzaWduX3RvXzBfYmVjYXVzZV9pdF9pc19hX2Z1bmN0aW9uOmkoMjYzMCwxLFwiQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfYV9mdW5jdGlvbl8yNjMwXCIsXCJDYW5ub3QgYXNzaWduIHRvICd7MH0nIGJlY2F1c2UgaXQgaXMgYSBmdW5jdGlvbi5cIiksQ2Fubm90X2Fzc2lnbl90b18wX2JlY2F1c2VfaXRfaXNfYV9uYW1lc3BhY2U6aSgyNjMxLDEsXCJDYW5ub3RfYXNzaWduX3RvXzBfYmVjYXVzZV9pdF9pc19hX25hbWVzcGFjZV8yNjMxXCIsXCJDYW5ub3QgYXNzaWduIHRvICd7MH0nIGJlY2F1c2UgaXQgaXMgYSBuYW1lc3BhY2UuXCIpLENhbm5vdF9hc3NpZ25fdG9fMF9iZWNhdXNlX2l0X2lzX2FuX2ltcG9ydDppKDI2MzIsMSxcIkNhbm5vdF9hc3NpZ25fdG9fMF9iZWNhdXNlX2l0X2lzX2FuX2ltcG9ydF8yNjMyXCIsXCJDYW5ub3QgYXNzaWduIHRvICd7MH0nIGJlY2F1c2UgaXQgaXMgYW4gaW1wb3J0LlwiKSxKU1hfcHJvcGVydHlfYWNjZXNzX2V4cHJlc3Npb25zX2Nhbm5vdF9pbmNsdWRlX0pTWF9uYW1lc3BhY2VfbmFtZXM6aSgyNjMzLDEsXCJKU1hfcHJvcGVydHlfYWNjZXNzX2V4cHJlc3Npb25zX2Nhbm5vdF9pbmNsdWRlX0pTWF9uYW1lc3BhY2VfbmFtZXNfMjYzM1wiLFwiSlNYIHByb3BlcnR5IGFjY2VzcyBleHByZXNzaW9ucyBjYW5ub3QgaW5jbHVkZSBKU1ggbmFtZXNwYWNlIG5hbWVzXCIpLF8wX2luZGV4X3NpZ25hdHVyZXNfYXJlX2luY29tcGF0aWJsZTppKDI2MzQsMSxcIl8wX2luZGV4X3NpZ25hdHVyZXNfYXJlX2luY29tcGF0aWJsZV8yNjM0XCIsXCInezB9JyBpbmRleCBzaWduYXR1cmVzIGFyZSBpbmNvbXBhdGlibGUuXCIpLFR5cGVfMF9oYXNfbm9fc2lnbmF0dXJlc19mb3Jfd2hpY2hfdGhlX3R5cGVfYXJndW1lbnRfbGlzdF9pc19hcHBsaWNhYmxlOmkoMjYzNSwxLFwiVHlwZV8wX2hhc19ub19zaWduYXR1cmVzX2Zvcl93aGljaF90aGVfdHlwZV9hcmd1bWVudF9saXN0X2lzX2FwcGxpY2FibGVfMjYzNVwiLFwiVHlwZSAnezB9JyBoYXMgbm8gc2lnbmF0dXJlcyBmb3Igd2hpY2ggdGhlIHR5cGUgYXJndW1lbnQgbGlzdCBpcyBhcHBsaWNhYmxlLlwiKSxUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX2FzX2ltcGxpZWRfYnlfdmFyaWFuY2VfYW5ub3RhdGlvbjppKDI2MzYsMSxcIlR5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfYXNfaW1wbGllZF9ieV92YXJpYW5jZV9hbm5vdGF0aW9uXzI2MzZcIixcIlR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnezF9JyBhcyBpbXBsaWVkIGJ5IHZhcmlhbmNlIGFubm90YXRpb24uXCIpLFZhcmlhbmNlX2Fubm90YXRpb25zX2FyZV9vbmx5X3N1cHBvcnRlZF9pbl90eXBlX2FsaWFzZXNfZm9yX29iamVjdF9mdW5jdGlvbl9jb25zdHJ1Y3Rvcl9hbmRfbWFwcGVkX3R5cGVzOmkoMjYzNywxLFwiVmFyaWFuY2VfYW5ub3RhdGlvbnNfYXJlX29ubHlfc3VwcG9ydGVkX2luX3R5cGVfYWxpYXNlc19mb3Jfb2JqZWN0X2Z1bmN0aW9uX2NvbnN0cnVjdG9yX2FuZF9tYXBwZWRfdF8yNjM3XCIsXCJWYXJpYW5jZSBhbm5vdGF0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdHlwZSBhbGlhc2VzIGZvciBvYmplY3QsIGZ1bmN0aW9uLCBjb25zdHJ1Y3RvciwgYW5kIG1hcHBlZCB0eXBlcy5cIiksVHlwZV8wX21heV9yZXByZXNlbnRfYV9wcmltaXRpdmVfdmFsdWVfd2hpY2hfaXNfbm90X3Blcm1pdHRlZF9hc190aGVfcmlnaHRfb3BlcmFuZF9vZl90aGVfaW5fb3BlcmF0b3I6aSgyNjM4LDEsXCJUeXBlXzBfbWF5X3JlcHJlc2VudF9hX3ByaW1pdGl2ZV92YWx1ZV93aGljaF9pc19ub3RfcGVybWl0dGVkX2FzX3RoZV9yaWdodF9vcGVyYW5kX29mX3RoZV9pbl9vcGVyYXRvXzI2MzhcIixcIlR5cGUgJ3swfScgbWF5IHJlcHJlc2VudCBhIHByaW1pdGl2ZSB2YWx1ZSwgd2hpY2ggaXMgbm90IHBlcm1pdHRlZCBhcyB0aGUgcmlnaHQgb3BlcmFuZCBvZiB0aGUgJ2luJyBvcGVyYXRvci5cIiksUmVhY3RfY29tcG9uZW50c19jYW5ub3RfaW5jbHVkZV9KU1hfbmFtZXNwYWNlX25hbWVzOmkoMjYzOSwxLFwiUmVhY3RfY29tcG9uZW50c19jYW5ub3RfaW5jbHVkZV9KU1hfbmFtZXNwYWNlX25hbWVzXzI2MzlcIixcIlJlYWN0IGNvbXBvbmVudHMgY2Fubm90IGluY2x1ZGUgSlNYIG5hbWVzcGFjZSBuYW1lc1wiKSxDYW5ub3RfYXVnbWVudF9tb2R1bGVfMF93aXRoX3ZhbHVlX2V4cG9ydHNfYmVjYXVzZV9pdF9yZXNvbHZlc190b19hX25vbl9tb2R1bGVfZW50aXR5OmkoMjY0OSwxLFwiQ2Fubm90X2F1Z21lbnRfbW9kdWxlXzBfd2l0aF92YWx1ZV9leHBvcnRzX2JlY2F1c2VfaXRfcmVzb2x2ZXNfdG9fYV9ub25fbW9kdWxlX2VudGl0eV8yNjQ5XCIsXCJDYW5ub3QgYXVnbWVudCBtb2R1bGUgJ3swfScgd2l0aCB2YWx1ZSBleHBvcnRzIGJlY2F1c2UgaXQgcmVzb2x2ZXMgdG8gYSBub24tbW9kdWxlIGVudGl0eS5cIiksQV9tZW1iZXJfaW5pdGlhbGl6ZXJfaW5fYV9lbnVtX2RlY2xhcmF0aW9uX2Nhbm5vdF9yZWZlcmVuY2VfbWVtYmVyc19kZWNsYXJlZF9hZnRlcl9pdF9pbmNsdWRpbmdfbWVtYmVyc19kZWZpbmVkX2luX290aGVyX2VudW1zOmkoMjY1MSwxLFwiQV9tZW1iZXJfaW5pdGlhbGl6ZXJfaW5fYV9lbnVtX2RlY2xhcmF0aW9uX2Nhbm5vdF9yZWZlcmVuY2VfbWVtYmVyc19kZWNsYXJlZF9hZnRlcl9pdF9pbmNsdWRpbmdfbWVtYl8yNjUxXCIsXCJBIG1lbWJlciBpbml0aWFsaXplciBpbiBhIGVudW0gZGVjbGFyYXRpb24gY2Fubm90IHJlZmVyZW5jZSBtZW1iZXJzIGRlY2xhcmVkIGFmdGVyIGl0LCBpbmNsdWRpbmcgbWVtYmVycyBkZWZpbmVkIGluIG90aGVyIGVudW1zLlwiKSxNZXJnZWRfZGVjbGFyYXRpb25fMF9jYW5ub3RfaW5jbHVkZV9hX2RlZmF1bHRfZXhwb3J0X2RlY2xhcmF0aW9uX0NvbnNpZGVyX2FkZGluZ19hX3NlcGFyYXRlX2V4cG9ydF9kZWZhdWx0XzBfZGVjbGFyYXRpb25faW5zdGVhZDppKDI2NTIsMSxcIk1lcmdlZF9kZWNsYXJhdGlvbl8wX2Nhbm5vdF9pbmNsdWRlX2FfZGVmYXVsdF9leHBvcnRfZGVjbGFyYXRpb25fQ29uc2lkZXJfYWRkaW5nX2Ffc2VwYXJhdGVfZXhwb3J0X2RfMjY1MlwiLFwiTWVyZ2VkIGRlY2xhcmF0aW9uICd7MH0nIGNhbm5vdCBpbmNsdWRlIGEgZGVmYXVsdCBleHBvcnQgZGVjbGFyYXRpb24uIENvbnNpZGVyIGFkZGluZyBhIHNlcGFyYXRlICdleHBvcnQgZGVmYXVsdCB7MH0nIGRlY2xhcmF0aW9uIGluc3RlYWQuXCIpLE5vbl9hYnN0cmFjdF9jbGFzc19leHByZXNzaW9uX2RvZXNfbm90X2ltcGxlbWVudF9pbmhlcml0ZWRfYWJzdHJhY3RfbWVtYmVyXzBfZnJvbV9jbGFzc18xOmkoMjY1MywxLFwiTm9uX2Fic3RyYWN0X2NsYXNzX2V4cHJlc3Npb25fZG9lc19ub3RfaW1wbGVtZW50X2luaGVyaXRlZF9hYnN0cmFjdF9tZW1iZXJfMF9mcm9tX2NsYXNzXzFfMjY1M1wiLFwiTm9uLWFic3RyYWN0IGNsYXNzIGV4cHJlc3Npb24gZG9lcyBub3QgaW1wbGVtZW50IGluaGVyaXRlZCBhYnN0cmFjdCBtZW1iZXIgJ3swfScgZnJvbSBjbGFzcyAnezF9Jy5cIiksSlNYX2V4cHJlc3Npb25zX211c3RfaGF2ZV9vbmVfcGFyZW50X2VsZW1lbnQ6aSgyNjU3LDEsXCJKU1hfZXhwcmVzc2lvbnNfbXVzdF9oYXZlX29uZV9wYXJlbnRfZWxlbWVudF8yNjU3XCIsXCJKU1ggZXhwcmVzc2lvbnMgbXVzdCBoYXZlIG9uZSBwYXJlbnQgZWxlbWVudC5cIiksVHlwZV8wX3Byb3ZpZGVzX25vX21hdGNoX2Zvcl90aGVfc2lnbmF0dXJlXzE6aSgyNjU4LDEsXCJUeXBlXzBfcHJvdmlkZXNfbm9fbWF0Y2hfZm9yX3RoZV9zaWduYXR1cmVfMV8yNjU4XCIsXCJUeXBlICd7MH0nIHByb3ZpZGVzIG5vIG1hdGNoIGZvciB0aGUgc2lnbmF0dXJlICd7MX0nLlwiKSxzdXBlcl9pc19vbmx5X2FsbG93ZWRfaW5fbWVtYmVyc19vZl9vYmplY3RfbGl0ZXJhbF9leHByZXNzaW9uc193aGVuX29wdGlvbl90YXJnZXRfaXNfRVMyMDE1X29yX2hpZ2hlcjppKDI2NTksMSxcInN1cGVyX2lzX29ubHlfYWxsb3dlZF9pbl9tZW1iZXJzX29mX29iamVjdF9saXRlcmFsX2V4cHJlc3Npb25zX3doZW5fb3B0aW9uX3RhcmdldF9pc19FUzIwMTVfb3JfaGlnaGVfMjY1OVwiLFwiJ3N1cGVyJyBpcyBvbmx5IGFsbG93ZWQgaW4gbWVtYmVycyBvZiBvYmplY3QgbGl0ZXJhbCBleHByZXNzaW9ucyB3aGVuIG9wdGlvbiAndGFyZ2V0JyBpcyAnRVMyMDE1JyBvciBoaWdoZXIuXCIpLHN1cGVyX2Nhbl9vbmx5X2JlX3JlZmVyZW5jZWRfaW5fbWVtYmVyc19vZl9kZXJpdmVkX2NsYXNzZXNfb3Jfb2JqZWN0X2xpdGVyYWxfZXhwcmVzc2lvbnM6aSgyNjYwLDEsXCJzdXBlcl9jYW5fb25seV9iZV9yZWZlcmVuY2VkX2luX21lbWJlcnNfb2ZfZGVyaXZlZF9jbGFzc2VzX29yX29iamVjdF9saXRlcmFsX2V4cHJlc3Npb25zXzI2NjBcIixcIidzdXBlcicgY2FuIG9ubHkgYmUgcmVmZXJlbmNlZCBpbiBtZW1iZXJzIG9mIGRlcml2ZWQgY2xhc3NlcyBvciBvYmplY3QgbGl0ZXJhbCBleHByZXNzaW9ucy5cIiksQ2Fubm90X2V4cG9ydF8wX09ubHlfbG9jYWxfZGVjbGFyYXRpb25zX2Nhbl9iZV9leHBvcnRlZF9mcm9tX2FfbW9kdWxlOmkoMjY2MSwxLFwiQ2Fubm90X2V4cG9ydF8wX09ubHlfbG9jYWxfZGVjbGFyYXRpb25zX2Nhbl9iZV9leHBvcnRlZF9mcm9tX2FfbW9kdWxlXzI2NjFcIixcIkNhbm5vdCBleHBvcnQgJ3swfScuIE9ubHkgbG9jYWwgZGVjbGFyYXRpb25zIGNhbiBiZSBleHBvcnRlZCBmcm9tIGEgbW9kdWxlLlwiKSxDYW5ub3RfZmluZF9uYW1lXzBfRGlkX3lvdV9tZWFuX3RoZV9zdGF0aWNfbWVtYmVyXzFfMDppKDI2NjIsMSxcIkNhbm5vdF9maW5kX25hbWVfMF9EaWRfeW91X21lYW5fdGhlX3N0YXRpY19tZW1iZXJfMV8wXzI2NjJcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERpZCB5b3UgbWVhbiB0aGUgc3RhdGljIG1lbWJlciAnezF9LnswfSc/XCIpLENhbm5vdF9maW5kX25hbWVfMF9EaWRfeW91X21lYW5fdGhlX2luc3RhbmNlX21lbWJlcl90aGlzXzA6aSgyNjYzLDEsXCJDYW5ub3RfZmluZF9uYW1lXzBfRGlkX3lvdV9tZWFuX3RoZV9pbnN0YW5jZV9tZW1iZXJfdGhpc18wXzI2NjNcIixcIkNhbm5vdCBmaW5kIG5hbWUgJ3swfScuIERpZCB5b3UgbWVhbiB0aGUgaW5zdGFuY2UgbWVtYmVyICd0aGlzLnswfSc/XCIpLEludmFsaWRfbW9kdWxlX25hbWVfaW5fYXVnbWVudGF0aW9uX21vZHVsZV8wX2Nhbm5vdF9iZV9mb3VuZDppKDI2NjQsMSxcIkludmFsaWRfbW9kdWxlX25hbWVfaW5fYXVnbWVudGF0aW9uX21vZHVsZV8wX2Nhbm5vdF9iZV9mb3VuZF8yNjY0XCIsXCJJbnZhbGlkIG1vZHVsZSBuYW1lIGluIGF1Z21lbnRhdGlvbiwgbW9kdWxlICd7MH0nIGNhbm5vdCBiZSBmb3VuZC5cIiksSW52YWxpZF9tb2R1bGVfbmFtZV9pbl9hdWdtZW50YXRpb25fTW9kdWxlXzBfcmVzb2x2ZXNfdG9fYW5fdW50eXBlZF9tb2R1bGVfYXRfMV93aGljaF9jYW5ub3RfYmVfYXVnbWVudGVkOmkoMjY2NSwxLFwiSW52YWxpZF9tb2R1bGVfbmFtZV9pbl9hdWdtZW50YXRpb25fTW9kdWxlXzBfcmVzb2x2ZXNfdG9fYW5fdW50eXBlZF9tb2R1bGVfYXRfMV93aGljaF9jYW5ub3RfYmVfYXVnbV8yNjY1XCIsXCJJbnZhbGlkIG1vZHVsZSBuYW1lIGluIGF1Z21lbnRhdGlvbi4gTW9kdWxlICd7MH0nIHJlc29sdmVzIHRvIGFuIHVudHlwZWQgbW9kdWxlIGF0ICd7MX0nLCB3aGljaCBjYW5ub3QgYmUgYXVnbWVudGVkLlwiKSxFeHBvcnRzX2FuZF9leHBvcnRfYXNzaWdubWVudHNfYXJlX25vdF9wZXJtaXR0ZWRfaW5fbW9kdWxlX2F1Z21lbnRhdGlvbnM6aSgyNjY2LDEsXCJFeHBvcnRzX2FuZF9leHBvcnRfYXNzaWdubWVudHNfYXJlX25vdF9wZXJtaXR0ZWRfaW5fbW9kdWxlX2F1Z21lbnRhdGlvbnNfMjY2NlwiLFwiRXhwb3J0cyBhbmQgZXhwb3J0IGFzc2lnbm1lbnRzIGFyZSBub3QgcGVybWl0dGVkIGluIG1vZHVsZSBhdWdtZW50YXRpb25zLlwiKSxJbXBvcnRzX2FyZV9ub3RfcGVybWl0dGVkX2luX21vZHVsZV9hdWdtZW50YXRpb25zX0NvbnNpZGVyX21vdmluZ190aGVtX3RvX3RoZV9lbmNsb3NpbmdfZXh0ZXJuYWxfbW9kdWxlOmkoMjY2NywxLFwiSW1wb3J0c19hcmVfbm90X3Blcm1pdHRlZF9pbl9tb2R1bGVfYXVnbWVudGF0aW9uc19Db25zaWRlcl9tb3ZpbmdfdGhlbV90b190aGVfZW5jbG9zaW5nX2V4dGVybmFsX21vZF8yNjY3XCIsXCJJbXBvcnRzIGFyZSBub3QgcGVybWl0dGVkIGluIG1vZHVsZSBhdWdtZW50YXRpb25zLiBDb25zaWRlciBtb3ZpbmcgdGhlbSB0byB0aGUgZW5jbG9zaW5nIGV4dGVybmFsIG1vZHVsZS5cIiksZXhwb3J0X21vZGlmaWVyX2Nhbm5vdF9iZV9hcHBsaWVkX3RvX2FtYmllbnRfbW9kdWxlc19hbmRfbW9kdWxlX2F1Z21lbnRhdGlvbnNfc2luY2VfdGhleV9hcmVfYWx3YXlzX3Zpc2libGU6aSgyNjY4LDEsXCJleHBvcnRfbW9kaWZpZXJfY2Fubm90X2JlX2FwcGxpZWRfdG9fYW1iaWVudF9tb2R1bGVzX2FuZF9tb2R1bGVfYXVnbWVudGF0aW9uc19zaW5jZV90aGV5X2FyZV9hbHdheXNfXzI2NjhcIixcIidleHBvcnQnIG1vZGlmaWVyIGNhbm5vdCBiZSBhcHBsaWVkIHRvIGFtYmllbnQgbW9kdWxlcyBhbmQgbW9kdWxlIGF1Z21lbnRhdGlvbnMgc2luY2UgdGhleSBhcmUgYWx3YXlzIHZpc2libGUuXCIpLEF1Z21lbnRhdGlvbnNfZm9yX3RoZV9nbG9iYWxfc2NvcGVfY2FuX29ubHlfYmVfZGlyZWN0bHlfbmVzdGVkX2luX2V4dGVybmFsX21vZHVsZXNfb3JfYW1iaWVudF9tb2R1bGVfZGVjbGFyYXRpb25zOmkoMjY2OSwxLFwiQXVnbWVudGF0aW9uc19mb3JfdGhlX2dsb2JhbF9zY29wZV9jYW5fb25seV9iZV9kaXJlY3RseV9uZXN0ZWRfaW5fZXh0ZXJuYWxfbW9kdWxlc19vcl9hbWJpZW50X21vZHVsZV8yNjY5XCIsXCJBdWdtZW50YXRpb25zIGZvciB0aGUgZ2xvYmFsIHNjb3BlIGNhbiBvbmx5IGJlIGRpcmVjdGx5IG5lc3RlZCBpbiBleHRlcm5hbCBtb2R1bGVzIG9yIGFtYmllbnQgbW9kdWxlIGRlY2xhcmF0aW9ucy5cIiksQXVnbWVudGF0aW9uc19mb3JfdGhlX2dsb2JhbF9zY29wZV9zaG91bGRfaGF2ZV9kZWNsYXJlX21vZGlmaWVyX3VubGVzc190aGV5X2FwcGVhcl9pbl9hbHJlYWR5X2FtYmllbnRfY29udGV4dDppKDI2NzAsMSxcIkF1Z21lbnRhdGlvbnNfZm9yX3RoZV9nbG9iYWxfc2NvcGVfc2hvdWxkX2hhdmVfZGVjbGFyZV9tb2RpZmllcl91bmxlc3NfdGhleV9hcHBlYXJfaW5fYWxyZWFkeV9hbWJpZW5fMjY3MFwiLFwiQXVnbWVudGF0aW9ucyBmb3IgdGhlIGdsb2JhbCBzY29wZSBzaG91bGQgaGF2ZSAnZGVjbGFyZScgbW9kaWZpZXIgdW5sZXNzIHRoZXkgYXBwZWFyIGluIGFscmVhZHkgYW1iaWVudCBjb250ZXh0LlwiKSxDYW5ub3RfYXVnbWVudF9tb2R1bGVfMF9iZWNhdXNlX2l0X3Jlc29sdmVzX3RvX2Ffbm9uX21vZHVsZV9lbnRpdHk6aSgyNjcxLDEsXCJDYW5ub3RfYXVnbWVudF9tb2R1bGVfMF9iZWNhdXNlX2l0X3Jlc29sdmVzX3RvX2Ffbm9uX21vZHVsZV9lbnRpdHlfMjY3MVwiLFwiQ2Fubm90IGF1Z21lbnQgbW9kdWxlICd7MH0nIGJlY2F1c2UgaXQgcmVzb2x2ZXMgdG8gYSBub24tbW9kdWxlIGVudGl0eS5cIiksQ2Fubm90X2Fzc2lnbl9hXzBfY29uc3RydWN0b3JfdHlwZV90b19hXzFfY29uc3RydWN0b3JfdHlwZTppKDI2NzIsMSxcIkNhbm5vdF9hc3NpZ25fYV8wX2NvbnN0cnVjdG9yX3R5cGVfdG9fYV8xX2NvbnN0cnVjdG9yX3R5cGVfMjY3MlwiLFwiQ2Fubm90IGFzc2lnbiBhICd7MH0nIGNvbnN0cnVjdG9yIHR5cGUgdG8gYSAnezF9JyBjb25zdHJ1Y3RvciB0eXBlLlwiKSxDb25zdHJ1Y3Rvcl9vZl9jbGFzc18wX2lzX3ByaXZhdGVfYW5kX29ubHlfYWNjZXNzaWJsZV93aXRoaW5fdGhlX2NsYXNzX2RlY2xhcmF0aW9uOmkoMjY3MywxLFwiQ29uc3RydWN0b3Jfb2ZfY2xhc3NfMF9pc19wcml2YXRlX2FuZF9vbmx5X2FjY2Vzc2libGVfd2l0aGluX3RoZV9jbGFzc19kZWNsYXJhdGlvbl8yNjczXCIsXCJDb25zdHJ1Y3RvciBvZiBjbGFzcyAnezB9JyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIHRoZSBjbGFzcyBkZWNsYXJhdGlvbi5cIiksQ29uc3RydWN0b3Jfb2ZfY2xhc3NfMF9pc19wcm90ZWN0ZWRfYW5kX29ubHlfYWNjZXNzaWJsZV93aXRoaW5fdGhlX2NsYXNzX2RlY2xhcmF0aW9uOmkoMjY3NCwxLFwiQ29uc3RydWN0b3Jfb2ZfY2xhc3NfMF9pc19wcm90ZWN0ZWRfYW5kX29ubHlfYWNjZXNzaWJsZV93aXRoaW5fdGhlX2NsYXNzX2RlY2xhcmF0aW9uXzI2NzRcIixcIkNvbnN0cnVjdG9yIG9mIGNsYXNzICd7MH0nIGlzIHByb3RlY3RlZCBhbmQgb25seSBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgY2xhc3MgZGVjbGFyYXRpb24uXCIpLENhbm5vdF9leHRlbmRfYV9jbGFzc18wX0NsYXNzX2NvbnN0cnVjdG9yX2lzX21hcmtlZF9hc19wcml2YXRlOmkoMjY3NSwxLFwiQ2Fubm90X2V4dGVuZF9hX2NsYXNzXzBfQ2xhc3NfY29uc3RydWN0b3JfaXNfbWFya2VkX2FzX3ByaXZhdGVfMjY3NVwiLFwiQ2Fubm90IGV4dGVuZCBhIGNsYXNzICd7MH0nLiBDbGFzcyBjb25zdHJ1Y3RvciBpcyBtYXJrZWQgYXMgcHJpdmF0ZS5cIiksQWNjZXNzb3JzX211c3RfYm90aF9iZV9hYnN0cmFjdF9vcl9ub25fYWJzdHJhY3Q6aSgyNjc2LDEsXCJBY2Nlc3NvcnNfbXVzdF9ib3RoX2JlX2Fic3RyYWN0X29yX25vbl9hYnN0cmFjdF8yNjc2XCIsXCJBY2Nlc3NvcnMgbXVzdCBib3RoIGJlIGFic3RyYWN0IG9yIG5vbi1hYnN0cmFjdC5cIiksQV90eXBlX3ByZWRpY2F0ZV9zX3R5cGVfbXVzdF9iZV9hc3NpZ25hYmxlX3RvX2l0c19wYXJhbWV0ZXJfc190eXBlOmkoMjY3NywxLFwiQV90eXBlX3ByZWRpY2F0ZV9zX3R5cGVfbXVzdF9iZV9hc3NpZ25hYmxlX3RvX2l0c19wYXJhbWV0ZXJfc190eXBlXzI2NzdcIixcIkEgdHlwZSBwcmVkaWNhdGUncyB0eXBlIG11c3QgYmUgYXNzaWduYWJsZSB0byBpdHMgcGFyYW1ldGVyJ3MgdHlwZS5cIiksVHlwZV8wX2lzX25vdF9jb21wYXJhYmxlX3RvX3R5cGVfMTppKDI2NzgsMSxcIlR5cGVfMF9pc19ub3RfY29tcGFyYWJsZV90b190eXBlXzFfMjY3OFwiLFwiVHlwZSAnezB9JyBpcyBub3QgY29tcGFyYWJsZSB0byB0eXBlICd7MX0nLlwiKSxBX2Z1bmN0aW9uX3RoYXRfaXNfY2FsbGVkX3dpdGhfdGhlX25ld19rZXl3b3JkX2Nhbm5vdF9oYXZlX2FfdGhpc190eXBlX3RoYXRfaXNfdm9pZDppKDI2NzksMSxcIkFfZnVuY3Rpb25fdGhhdF9pc19jYWxsZWRfd2l0aF90aGVfbmV3X2tleXdvcmRfY2Fubm90X2hhdmVfYV90aGlzX3R5cGVfdGhhdF9pc192b2lkXzI2NzlcIixcIkEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2l0aCB0aGUgJ25ldycga2V5d29yZCBjYW5ub3QgaGF2ZSBhICd0aGlzJyB0eXBlIHRoYXQgaXMgJ3ZvaWQnLlwiKSxBXzBfcGFyYW1ldGVyX211c3RfYmVfdGhlX2ZpcnN0X3BhcmFtZXRlcjppKDI2ODAsMSxcIkFfMF9wYXJhbWV0ZXJfbXVzdF9iZV90aGVfZmlyc3RfcGFyYW1ldGVyXzI2ODBcIixcIkEgJ3swfScgcGFyYW1ldGVyIG11c3QgYmUgdGhlIGZpcnN0IHBhcmFtZXRlci5cIiksQV9jb25zdHJ1Y3Rvcl9jYW5ub3RfaGF2ZV9hX3RoaXNfcGFyYW1ldGVyOmkoMjY4MSwxLFwiQV9jb25zdHJ1Y3Rvcl9jYW5ub3RfaGF2ZV9hX3RoaXNfcGFyYW1ldGVyXzI2ODFcIixcIkEgY29uc3RydWN0b3IgY2Fubm90IGhhdmUgYSAndGhpcycgcGFyYW1ldGVyLlwiKSx0aGlzX2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2JlY2F1c2VfaXRfZG9lc19ub3RfaGF2ZV9hX3R5cGVfYW5ub3RhdGlvbjppKDI2ODMsMSxcInRoaXNfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYmVjYXVzZV9pdF9kb2VzX25vdF9oYXZlX2FfdHlwZV9hbm5vdGF0aW9uXzI2ODNcIixcIid0aGlzJyBpbXBsaWNpdGx5IGhhcyB0eXBlICdhbnknIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHR5cGUgYW5ub3RhdGlvbi5cIiksVGhlX3RoaXNfY29udGV4dF9vZl90eXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fbWV0aG9kX3NfdGhpc19vZl90eXBlXzE6aSgyNjg0LDEsXCJUaGVfdGhpc19jb250ZXh0X29mX3R5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b19tZXRob2Rfc190aGlzX29mX3R5cGVfMV8yNjg0XCIsXCJUaGUgJ3RoaXMnIGNvbnRleHQgb2YgdHlwZSAnezB9JyBpcyBub3QgYXNzaWduYWJsZSB0byBtZXRob2QncyAndGhpcycgb2YgdHlwZSAnezF9Jy5cIiksVGhlX3RoaXNfdHlwZXNfb2ZfZWFjaF9zaWduYXR1cmVfYXJlX2luY29tcGF0aWJsZTppKDI2ODUsMSxcIlRoZV90aGlzX3R5cGVzX29mX2VhY2hfc2lnbmF0dXJlX2FyZV9pbmNvbXBhdGlibGVfMjY4NVwiLFwiVGhlICd0aGlzJyB0eXBlcyBvZiBlYWNoIHNpZ25hdHVyZSBhcmUgaW5jb21wYXRpYmxlLlwiKSxfMF9yZWZlcnNfdG9fYV9VTURfZ2xvYmFsX2J1dF90aGVfY3VycmVudF9maWxlX2lzX2FfbW9kdWxlX0NvbnNpZGVyX2FkZGluZ19hbl9pbXBvcnRfaW5zdGVhZDppKDI2ODYsMSxcIl8wX3JlZmVyc190b19hX1VNRF9nbG9iYWxfYnV0X3RoZV9jdXJyZW50X2ZpbGVfaXNfYV9tb2R1bGVfQ29uc2lkZXJfYWRkaW5nX2FuX2ltcG9ydF9pbnN0ZWFkXzI2ODZcIixcIid7MH0nIHJlZmVycyB0byBhIFVNRCBnbG9iYWwsIGJ1dCB0aGUgY3VycmVudCBmaWxlIGlzIGEgbW9kdWxlLiBDb25zaWRlciBhZGRpbmcgYW4gaW1wb3J0IGluc3RlYWQuXCIpLEFsbF9kZWNsYXJhdGlvbnNfb2ZfMF9tdXN0X2hhdmVfaWRlbnRpY2FsX21vZGlmaWVyczppKDI2ODcsMSxcIkFsbF9kZWNsYXJhdGlvbnNfb2ZfMF9tdXN0X2hhdmVfaWRlbnRpY2FsX21vZGlmaWVyc18yNjg3XCIsXCJBbGwgZGVjbGFyYXRpb25zIG9mICd7MH0nIG11c3QgaGF2ZSBpZGVudGljYWwgbW9kaWZpZXJzLlwiKSxDYW5ub3RfZmluZF90eXBlX2RlZmluaXRpb25fZmlsZV9mb3JfMDppKDI2ODgsMSxcIkNhbm5vdF9maW5kX3R5cGVfZGVmaW5pdGlvbl9maWxlX2Zvcl8wXzI2ODhcIixcIkNhbm5vdCBmaW5kIHR5cGUgZGVmaW5pdGlvbiBmaWxlIGZvciAnezB9Jy5cIiksQ2Fubm90X2V4dGVuZF9hbl9pbnRlcmZhY2VfMF9EaWRfeW91X21lYW5faW1wbGVtZW50czppKDI2ODksMSxcIkNhbm5vdF9leHRlbmRfYW5faW50ZXJmYWNlXzBfRGlkX3lvdV9tZWFuX2ltcGxlbWVudHNfMjY4OVwiLFwiQ2Fubm90IGV4dGVuZCBhbiBpbnRlcmZhY2UgJ3swfScuIERpZCB5b3UgbWVhbiAnaW1wbGVtZW50cyc/XCIpLF8wX29ubHlfcmVmZXJzX3RvX2FfdHlwZV9idXRfaXNfYmVpbmdfdXNlZF9hc19hX3ZhbHVlX2hlcmVfRGlkX3lvdV9tZWFuX3RvX3VzZV8xX2luXzA6aSgyNjkwLDEsXCJfMF9vbmx5X3JlZmVyc190b19hX3R5cGVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV92YWx1ZV9oZXJlX0RpZF95b3VfbWVhbl90b191c2VfMV9pbl8wXzI2OTBcIixcIid7MH0nIG9ubHkgcmVmZXJzIHRvIGEgdHlwZSwgYnV0IGlzIGJlaW5nIHVzZWQgYXMgYSB2YWx1ZSBoZXJlLiBEaWQgeW91IG1lYW4gdG8gdXNlICd7MX0gaW4gezB9Jz9cIiksXzBfaXNfYV9wcmltaXRpdmVfYnV0XzFfaXNfYV93cmFwcGVyX29iamVjdF9QcmVmZXJfdXNpbmdfMF93aGVuX3Bvc3NpYmxlOmkoMjY5MiwxLFwiXzBfaXNfYV9wcmltaXRpdmVfYnV0XzFfaXNfYV93cmFwcGVyX29iamVjdF9QcmVmZXJfdXNpbmdfMF93aGVuX3Bvc3NpYmxlXzI2OTJcIixcIid7MH0nIGlzIGEgcHJpbWl0aXZlLCBidXQgJ3sxfScgaXMgYSB3cmFwcGVyIG9iamVjdC4gUHJlZmVyIHVzaW5nICd7MH0nIHdoZW4gcG9zc2libGUuXCIpLF8wX29ubHlfcmVmZXJzX3RvX2FfdHlwZV9idXRfaXNfYmVpbmdfdXNlZF9hc19hX3ZhbHVlX2hlcmU6aSgyNjkzLDEsXCJfMF9vbmx5X3JlZmVyc190b19hX3R5cGVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV92YWx1ZV9oZXJlXzI2OTNcIixcIid7MH0nIG9ubHkgcmVmZXJzIHRvIGEgdHlwZSwgYnV0IGlzIGJlaW5nIHVzZWQgYXMgYSB2YWx1ZSBoZXJlLlwiKSxOYW1lc3BhY2VfMF9oYXNfbm9fZXhwb3J0ZWRfbWVtYmVyXzE6aSgyNjk0LDEsXCJOYW1lc3BhY2VfMF9oYXNfbm9fZXhwb3J0ZWRfbWVtYmVyXzFfMjY5NFwiLFwiTmFtZXNwYWNlICd7MH0nIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ3sxfScuXCIpLExlZnRfc2lkZV9vZl9jb21tYV9vcGVyYXRvcl9pc191bnVzZWRfYW5kX2hhc19ub19zaWRlX2VmZmVjdHM6aSgyNjk1LDEsXCJMZWZ0X3NpZGVfb2ZfY29tbWFfb3BlcmF0b3JfaXNfdW51c2VkX2FuZF9oYXNfbm9fc2lkZV9lZmZlY3RzXzI2OTVcIixcIkxlZnQgc2lkZSBvZiBjb21tYSBvcGVyYXRvciBpcyB1bnVzZWQgYW5kIGhhcyBubyBzaWRlIGVmZmVjdHMuXCIsITApLFRoZV9PYmplY3RfdHlwZV9pc19hc3NpZ25hYmxlX3RvX3ZlcnlfZmV3X290aGVyX3R5cGVzX0RpZF95b3VfbWVhbl90b191c2VfdGhlX2FueV90eXBlX2luc3RlYWQ6aSgyNjk2LDEsXCJUaGVfT2JqZWN0X3R5cGVfaXNfYXNzaWduYWJsZV90b192ZXJ5X2Zld19vdGhlcl90eXBlc19EaWRfeW91X21lYW5fdG9fdXNlX3RoZV9hbnlfdHlwZV9pbnN0ZWFkXzI2OTZcIixcIlRoZSAnT2JqZWN0JyB0eXBlIGlzIGFzc2lnbmFibGUgdG8gdmVyeSBmZXcgb3RoZXIgdHlwZXMuIERpZCB5b3UgbWVhbiB0byB1c2UgdGhlICdhbnknIHR5cGUgaW5zdGVhZD9cIiksQW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX211c3RfcmV0dXJuX2FfUHJvbWlzZV9NYWtlX3N1cmVfeW91X2hhdmVfYV9kZWNsYXJhdGlvbl9mb3JfUHJvbWlzZV9vcl9pbmNsdWRlX0VTMjAxNV9pbl95b3VyX2xpYl9vcHRpb246aSgyNjk3LDEsXCJBbl9hc3luY19mdW5jdGlvbl9vcl9tZXRob2RfbXVzdF9yZXR1cm5fYV9Qcm9taXNlX01ha2Vfc3VyZV95b3VfaGF2ZV9hX2RlY2xhcmF0aW9uX2Zvcl9Qcm9taXNlX29yX2luXzI2OTdcIixcIkFuIGFzeW5jIGZ1bmN0aW9uIG9yIG1ldGhvZCBtdXN0IHJldHVybiBhICdQcm9taXNlJy4gTWFrZSBzdXJlIHlvdSBoYXZlIGEgZGVjbGFyYXRpb24gZm9yICdQcm9taXNlJyBvciBpbmNsdWRlICdFUzIwMTUnIGluIHlvdXIgJy0tbGliJyBvcHRpb24uXCIpLFNwcmVhZF90eXBlc19tYXlfb25seV9iZV9jcmVhdGVkX2Zyb21fb2JqZWN0X3R5cGVzOmkoMjY5OCwxLFwiU3ByZWFkX3R5cGVzX21heV9vbmx5X2JlX2NyZWF0ZWRfZnJvbV9vYmplY3RfdHlwZXNfMjY5OFwiLFwiU3ByZWFkIHR5cGVzIG1heSBvbmx5IGJlIGNyZWF0ZWQgZnJvbSBvYmplY3QgdHlwZXMuXCIpLFN0YXRpY19wcm9wZXJ0eV8wX2NvbmZsaWN0c193aXRoX2J1aWx0X2luX3Byb3BlcnR5X0Z1bmN0aW9uXzBfb2ZfY29uc3RydWN0b3JfZnVuY3Rpb25fMTppKDI2OTksMSxcIlN0YXRpY19wcm9wZXJ0eV8wX2NvbmZsaWN0c193aXRoX2J1aWx0X2luX3Byb3BlcnR5X0Z1bmN0aW9uXzBfb2ZfY29uc3RydWN0b3JfZnVuY3Rpb25fMV8yNjk5XCIsXCJTdGF0aWMgcHJvcGVydHkgJ3swfScgY29uZmxpY3RzIHdpdGggYnVpbHQtaW4gcHJvcGVydHkgJ0Z1bmN0aW9uLnswfScgb2YgY29uc3RydWN0b3IgZnVuY3Rpb24gJ3sxfScuXCIpLFJlc3RfdHlwZXNfbWF5X29ubHlfYmVfY3JlYXRlZF9mcm9tX29iamVjdF90eXBlczppKDI3MDAsMSxcIlJlc3RfdHlwZXNfbWF5X29ubHlfYmVfY3JlYXRlZF9mcm9tX29iamVjdF90eXBlc18yNzAwXCIsXCJSZXN0IHR5cGVzIG1heSBvbmx5IGJlIGNyZWF0ZWQgZnJvbSBvYmplY3QgdHlwZXMuXCIpLFRoZV90YXJnZXRfb2ZfYW5fb2JqZWN0X3Jlc3RfYXNzaWdubWVudF9tdXN0X2JlX2FfdmFyaWFibGVfb3JfYV9wcm9wZXJ0eV9hY2Nlc3M6aSgyNzAxLDEsXCJUaGVfdGFyZ2V0X29mX2FuX29iamVjdF9yZXN0X2Fzc2lnbm1lbnRfbXVzdF9iZV9hX3ZhcmlhYmxlX29yX2FfcHJvcGVydHlfYWNjZXNzXzI3MDFcIixcIlRoZSB0YXJnZXQgb2YgYW4gb2JqZWN0IHJlc3QgYXNzaWdubWVudCBtdXN0IGJlIGEgdmFyaWFibGUgb3IgYSBwcm9wZXJ0eSBhY2Nlc3MuXCIpLF8wX29ubHlfcmVmZXJzX3RvX2FfdHlwZV9idXRfaXNfYmVpbmdfdXNlZF9hc19hX25hbWVzcGFjZV9oZXJlOmkoMjcwMiwxLFwiXzBfb25seV9yZWZlcnNfdG9fYV90eXBlX2J1dF9pc19iZWluZ191c2VkX2FzX2FfbmFtZXNwYWNlX2hlcmVfMjcwMlwiLFwiJ3swfScgb25seSByZWZlcnMgdG8gYSB0eXBlLCBidXQgaXMgYmVpbmcgdXNlZCBhcyBhIG5hbWVzcGFjZSBoZXJlLlwiKSxUaGVfb3BlcmFuZF9vZl9hX2RlbGV0ZV9vcGVyYXRvcl9tdXN0X2JlX2FfcHJvcGVydHlfcmVmZXJlbmNlOmkoMjcwMywxLFwiVGhlX29wZXJhbmRfb2ZfYV9kZWxldGVfb3BlcmF0b3JfbXVzdF9iZV9hX3Byb3BlcnR5X3JlZmVyZW5jZV8yNzAzXCIsXCJUaGUgb3BlcmFuZCBvZiBhICdkZWxldGUnIG9wZXJhdG9yIG11c3QgYmUgYSBwcm9wZXJ0eSByZWZlcmVuY2UuXCIpLFRoZV9vcGVyYW5kX29mX2FfZGVsZXRlX29wZXJhdG9yX2Nhbm5vdF9iZV9hX3JlYWRfb25seV9wcm9wZXJ0eTppKDI3MDQsMSxcIlRoZV9vcGVyYW5kX29mX2FfZGVsZXRlX29wZXJhdG9yX2Nhbm5vdF9iZV9hX3JlYWRfb25seV9wcm9wZXJ0eV8yNzA0XCIsXCJUaGUgb3BlcmFuZCBvZiBhICdkZWxldGUnIG9wZXJhdG9yIGNhbm5vdCBiZSBhIHJlYWQtb25seSBwcm9wZXJ0eS5cIiksQW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX2luX0VTNV9TbGFzaEVTM19yZXF1aXJlc190aGVfUHJvbWlzZV9jb25zdHJ1Y3Rvcl9NYWtlX3N1cmVfeW91X2hhdmVfYV9kZWNsYXJhdGlvbl9mb3JfdGhlX1Byb21pc2VfY29uc3RydWN0b3Jfb3JfaW5jbHVkZV9FUzIwMTVfaW5feW91cl9saWJfb3B0aW9uOmkoMjcwNSwxLFwiQW5fYXN5bmNfZnVuY3Rpb25fb3JfbWV0aG9kX2luX0VTNV9TbGFzaEVTM19yZXF1aXJlc190aGVfUHJvbWlzZV9jb25zdHJ1Y3Rvcl9NYWtlX3N1cmVfeW91X2hhdmVfYV9kZV8yNzA1XCIsXCJBbiBhc3luYyBmdW5jdGlvbiBvciBtZXRob2QgaW4gRVM1L0VTMyByZXF1aXJlcyB0aGUgJ1Byb21pc2UnIGNvbnN0cnVjdG9yLiAgTWFrZSBzdXJlIHlvdSBoYXZlIGEgZGVjbGFyYXRpb24gZm9yIHRoZSAnUHJvbWlzZScgY29uc3RydWN0b3Igb3IgaW5jbHVkZSAnRVMyMDE1JyBpbiB5b3VyICctLWxpYicgb3B0aW9uLlwiKSxSZXF1aXJlZF90eXBlX3BhcmFtZXRlcnNfbWF5X25vdF9mb2xsb3dfb3B0aW9uYWxfdHlwZV9wYXJhbWV0ZXJzOmkoMjcwNiwxLFwiUmVxdWlyZWRfdHlwZV9wYXJhbWV0ZXJzX21heV9ub3RfZm9sbG93X29wdGlvbmFsX3R5cGVfcGFyYW1ldGVyc18yNzA2XCIsXCJSZXF1aXJlZCB0eXBlIHBhcmFtZXRlcnMgbWF5IG5vdCBmb2xsb3cgb3B0aW9uYWwgdHlwZSBwYXJhbWV0ZXJzLlwiKSxHZW5lcmljX3R5cGVfMF9yZXF1aXJlc19iZXR3ZWVuXzFfYW5kXzJfdHlwZV9hcmd1bWVudHM6aSgyNzA3LDEsXCJHZW5lcmljX3R5cGVfMF9yZXF1aXJlc19iZXR3ZWVuXzFfYW5kXzJfdHlwZV9hcmd1bWVudHNfMjcwN1wiLFwiR2VuZXJpYyB0eXBlICd7MH0nIHJlcXVpcmVzIGJldHdlZW4gezF9IGFuZCB7Mn0gdHlwZSBhcmd1bWVudHMuXCIpLENhbm5vdF91c2VfbmFtZXNwYWNlXzBfYXNfYV92YWx1ZTppKDI3MDgsMSxcIkNhbm5vdF91c2VfbmFtZXNwYWNlXzBfYXNfYV92YWx1ZV8yNzA4XCIsXCJDYW5ub3QgdXNlIG5hbWVzcGFjZSAnezB9JyBhcyBhIHZhbHVlLlwiKSxDYW5ub3RfdXNlX25hbWVzcGFjZV8wX2FzX2FfdHlwZTppKDI3MDksMSxcIkNhbm5vdF91c2VfbmFtZXNwYWNlXzBfYXNfYV90eXBlXzI3MDlcIixcIkNhbm5vdCB1c2UgbmFtZXNwYWNlICd7MH0nIGFzIGEgdHlwZS5cIiksXzBfYXJlX3NwZWNpZmllZF90d2ljZV9UaGVfYXR0cmlidXRlX25hbWVkXzBfd2lsbF9iZV9vdmVyd3JpdHRlbjppKDI3MTAsMSxcIl8wX2FyZV9zcGVjaWZpZWRfdHdpY2VfVGhlX2F0dHJpYnV0ZV9uYW1lZF8wX3dpbGxfYmVfb3ZlcndyaXR0ZW5fMjcxMFwiLFwiJ3swfScgYXJlIHNwZWNpZmllZCB0d2ljZS4gVGhlIGF0dHJpYnV0ZSBuYW1lZCAnezB9JyB3aWxsIGJlIG92ZXJ3cml0dGVuLlwiKSxBX2R5bmFtaWNfaW1wb3J0X2NhbGxfcmV0dXJuc19hX1Byb21pc2VfTWFrZV9zdXJlX3lvdV9oYXZlX2FfZGVjbGFyYXRpb25fZm9yX1Byb21pc2Vfb3JfaW5jbHVkZV9FUzIwMTVfaW5feW91cl9saWJfb3B0aW9uOmkoMjcxMSwxLFwiQV9keW5hbWljX2ltcG9ydF9jYWxsX3JldHVybnNfYV9Qcm9taXNlX01ha2Vfc3VyZV95b3VfaGF2ZV9hX2RlY2xhcmF0aW9uX2Zvcl9Qcm9taXNlX29yX2luY2x1ZGVfRVMyMF8yNzExXCIsXCJBIGR5bmFtaWMgaW1wb3J0IGNhbGwgcmV0dXJucyBhICdQcm9taXNlJy4gTWFrZSBzdXJlIHlvdSBoYXZlIGEgZGVjbGFyYXRpb24gZm9yICdQcm9taXNlJyBvciBpbmNsdWRlICdFUzIwMTUnIGluIHlvdXIgJy0tbGliJyBvcHRpb24uXCIpLEFfZHluYW1pY19pbXBvcnRfY2FsbF9pbl9FUzVfU2xhc2hFUzNfcmVxdWlyZXNfdGhlX1Byb21pc2VfY29uc3RydWN0b3JfTWFrZV9zdXJlX3lvdV9oYXZlX2FfZGVjbGFyYXRpb25fZm9yX3RoZV9Qcm9taXNlX2NvbnN0cnVjdG9yX29yX2luY2x1ZGVfRVMyMDE1X2luX3lvdXJfbGliX29wdGlvbjppKDI3MTIsMSxcIkFfZHluYW1pY19pbXBvcnRfY2FsbF9pbl9FUzVfU2xhc2hFUzNfcmVxdWlyZXNfdGhlX1Byb21pc2VfY29uc3RydWN0b3JfTWFrZV9zdXJlX3lvdV9oYXZlX2FfZGVjbGFyYXRfMjcxMlwiLFwiQSBkeW5hbWljIGltcG9ydCBjYWxsIGluIEVTNS9FUzMgcmVxdWlyZXMgdGhlICdQcm9taXNlJyBjb25zdHJ1Y3Rvci4gIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhIGRlY2xhcmF0aW9uIGZvciB0aGUgJ1Byb21pc2UnIGNvbnN0cnVjdG9yIG9yIGluY2x1ZGUgJ0VTMjAxNScgaW4geW91ciAnLS1saWInIG9wdGlvbi5cIiksQ2Fubm90X2FjY2Vzc18wXzFfYmVjYXVzZV8wX2lzX2FfdHlwZV9idXRfbm90X2FfbmFtZXNwYWNlX0RpZF95b3VfbWVhbl90b19yZXRyaWV2ZV90aGVfdHlwZV9vZl90aGVfcHJvcGVydHlfMV9pbl8wX3dpdGhfMF8xOmkoMjcxMywxLFwiQ2Fubm90X2FjY2Vzc18wXzFfYmVjYXVzZV8wX2lzX2FfdHlwZV9idXRfbm90X2FfbmFtZXNwYWNlX0RpZF95b3VfbWVhbl90b19yZXRyaWV2ZV90aGVfdHlwZV9vZl90aGVfcF8yNzEzXCIsYENhbm5vdCBhY2Nlc3MgJ3swfS57MX0nIGJlY2F1c2UgJ3swfScgaXMgYSB0eXBlLCBidXQgbm90IGEgbmFtZXNwYWNlLiBEaWQgeW91IG1lYW4gdG8gcmV0cmlldmUgdGhlIHR5cGUgb2YgdGhlIHByb3BlcnR5ICd7MX0nIGluICd7MH0nIHdpdGggJ3swfVtcInsxfVwiXSc/YCksVGhlX2V4cHJlc3Npb25fb2ZfYW5fZXhwb3J0X2Fzc2lnbm1lbnRfbXVzdF9iZV9hbl9pZGVudGlmaWVyX29yX3F1YWxpZmllZF9uYW1lX2luX2FuX2FtYmllbnRfY29udGV4dDppKDI3MTQsMSxcIlRoZV9leHByZXNzaW9uX29mX2FuX2V4cG9ydF9hc3NpZ25tZW50X211c3RfYmVfYW5faWRlbnRpZmllcl9vcl9xdWFsaWZpZWRfbmFtZV9pbl9hbl9hbWJpZW50X2NvbnRleHRfMjcxNFwiLFwiVGhlIGV4cHJlc3Npb24gb2YgYW4gZXhwb3J0IGFzc2lnbm1lbnQgbXVzdCBiZSBhbiBpZGVudGlmaWVyIG9yIHF1YWxpZmllZCBuYW1lIGluIGFuIGFtYmllbnQgY29udGV4dC5cIiksQWJzdHJhY3RfcHJvcGVydHlfMF9pbl9jbGFzc18xX2Nhbm5vdF9iZV9hY2Nlc3NlZF9pbl90aGVfY29uc3RydWN0b3I6aSgyNzE1LDEsXCJBYnN0cmFjdF9wcm9wZXJ0eV8wX2luX2NsYXNzXzFfY2Fubm90X2JlX2FjY2Vzc2VkX2luX3RoZV9jb25zdHJ1Y3Rvcl8yNzE1XCIsXCJBYnN0cmFjdCBwcm9wZXJ0eSAnezB9JyBpbiBjbGFzcyAnezF9JyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlwiKSxUeXBlX3BhcmFtZXRlcl8wX2hhc19hX2NpcmN1bGFyX2RlZmF1bHQ6aSgyNzE2LDEsXCJUeXBlX3BhcmFtZXRlcl8wX2hhc19hX2NpcmN1bGFyX2RlZmF1bHRfMjcxNlwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgaGFzIGEgY2lyY3VsYXIgZGVmYXVsdC5cIiksU3Vic2VxdWVudF9wcm9wZXJ0eV9kZWNsYXJhdGlvbnNfbXVzdF9oYXZlX3RoZV9zYW1lX3R5cGVfUHJvcGVydHlfMF9tdXN0X2JlX29mX3R5cGVfMV9idXRfaGVyZV9oYXNfdHlwZV8yOmkoMjcxNywxLFwiU3Vic2VxdWVudF9wcm9wZXJ0eV9kZWNsYXJhdGlvbnNfbXVzdF9oYXZlX3RoZV9zYW1lX3R5cGVfUHJvcGVydHlfMF9tdXN0X2JlX29mX3R5cGVfMV9idXRfaGVyZV9oYXNfdF8yNzE3XCIsXCJTdWJzZXF1ZW50IHByb3BlcnR5IGRlY2xhcmF0aW9ucyBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZS4gIFByb3BlcnR5ICd7MH0nIG11c3QgYmUgb2YgdHlwZSAnezF9JywgYnV0IGhlcmUgaGFzIHR5cGUgJ3syfScuXCIpLER1cGxpY2F0ZV9wcm9wZXJ0eV8wOmkoMjcxOCwxLFwiRHVwbGljYXRlX3Byb3BlcnR5XzBfMjcxOFwiLFwiRHVwbGljYXRlIHByb3BlcnR5ICd7MH0nLlwiKSxUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX1R3b19kaWZmZXJlbnRfdHlwZXNfd2l0aF90aGlzX25hbWVfZXhpc3RfYnV0X3RoZXlfYXJlX3VucmVsYXRlZDppKDI3MTksMSxcIlR5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfVHdvX2RpZmZlcmVudF90eXBlc193aXRoX3RoaXNfbmFtZV9leGlzdF9idXRfdGhleV9hcmVfdW5yZWxhdGVkXzI3MTlcIixcIlR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnezF9Jy4gVHdvIGRpZmZlcmVudCB0eXBlcyB3aXRoIHRoaXMgbmFtZSBleGlzdCwgYnV0IHRoZXkgYXJlIHVucmVsYXRlZC5cIiksQ2xhc3NfMF9pbmNvcnJlY3RseV9pbXBsZW1lbnRzX2NsYXNzXzFfRGlkX3lvdV9tZWFuX3RvX2V4dGVuZF8xX2FuZF9pbmhlcml0X2l0c19tZW1iZXJzX2FzX2Ffc3ViY2xhc3M6aSgyNzIwLDEsXCJDbGFzc18wX2luY29ycmVjdGx5X2ltcGxlbWVudHNfY2xhc3NfMV9EaWRfeW91X21lYW5fdG9fZXh0ZW5kXzFfYW5kX2luaGVyaXRfaXRzX21lbWJlcnNfYXNfYV9zdWJjbGFzXzI3MjBcIixcIkNsYXNzICd7MH0nIGluY29ycmVjdGx5IGltcGxlbWVudHMgY2xhc3MgJ3sxfScuIERpZCB5b3UgbWVhbiB0byBleHRlbmQgJ3sxfScgYW5kIGluaGVyaXQgaXRzIG1lbWJlcnMgYXMgYSBzdWJjbGFzcz9cIiksQ2Fubm90X2ludm9rZV9hbl9vYmplY3Rfd2hpY2hfaXNfcG9zc2libHlfbnVsbDppKDI3MjEsMSxcIkNhbm5vdF9pbnZva2VfYW5fb2JqZWN0X3doaWNoX2lzX3Bvc3NpYmx5X251bGxfMjcyMVwiLFwiQ2Fubm90IGludm9rZSBhbiBvYmplY3Qgd2hpY2ggaXMgcG9zc2libHkgJ251bGwnLlwiKSxDYW5ub3RfaW52b2tlX2FuX29iamVjdF93aGljaF9pc19wb3NzaWJseV91bmRlZmluZWQ6aSgyNzIyLDEsXCJDYW5ub3RfaW52b2tlX2FuX29iamVjdF93aGljaF9pc19wb3NzaWJseV91bmRlZmluZWRfMjcyMlwiLFwiQ2Fubm90IGludm9rZSBhbiBvYmplY3Qgd2hpY2ggaXMgcG9zc2libHkgJ3VuZGVmaW5lZCcuXCIpLENhbm5vdF9pbnZva2VfYW5fb2JqZWN0X3doaWNoX2lzX3Bvc3NpYmx5X251bGxfb3JfdW5kZWZpbmVkOmkoMjcyMywxLFwiQ2Fubm90X2ludm9rZV9hbl9vYmplY3Rfd2hpY2hfaXNfcG9zc2libHlfbnVsbF9vcl91bmRlZmluZWRfMjcyM1wiLFwiQ2Fubm90IGludm9rZSBhbiBvYmplY3Qgd2hpY2ggaXMgcG9zc2libHkgJ251bGwnIG9yICd1bmRlZmluZWQnLlwiKSxfMF9oYXNfbm9fZXhwb3J0ZWRfbWVtYmVyX25hbWVkXzFfRGlkX3lvdV9tZWFuXzI6aSgyNzI0LDEsXCJfMF9oYXNfbm9fZXhwb3J0ZWRfbWVtYmVyX25hbWVkXzFfRGlkX3lvdV9tZWFuXzJfMjcyNFwiLFwiJ3swfScgaGFzIG5vIGV4cG9ydGVkIG1lbWJlciBuYW1lZCAnezF9Jy4gRGlkIHlvdSBtZWFuICd7Mn0nP1wiKSxDbGFzc19uYW1lX2Nhbm5vdF9iZV9PYmplY3Rfd2hlbl90YXJnZXRpbmdfRVM1X3dpdGhfbW9kdWxlXzA6aSgyNzI1LDEsXCJDbGFzc19uYW1lX2Nhbm5vdF9iZV9PYmplY3Rfd2hlbl90YXJnZXRpbmdfRVM1X3dpdGhfbW9kdWxlXzBfMjcyNVwiLFwiQ2xhc3MgbmFtZSBjYW5ub3QgYmUgJ09iamVjdCcgd2hlbiB0YXJnZXRpbmcgRVM1IHdpdGggbW9kdWxlIHswfS5cIiksQ2Fubm90X2ZpbmRfbGliX2RlZmluaXRpb25fZm9yXzA6aSgyNzI2LDEsXCJDYW5ub3RfZmluZF9saWJfZGVmaW5pdGlvbl9mb3JfMF8yNzI2XCIsXCJDYW5ub3QgZmluZCBsaWIgZGVmaW5pdGlvbiBmb3IgJ3swfScuXCIpLENhbm5vdF9maW5kX2xpYl9kZWZpbml0aW9uX2Zvcl8wX0RpZF95b3VfbWVhbl8xOmkoMjcyNywxLFwiQ2Fubm90X2ZpbmRfbGliX2RlZmluaXRpb25fZm9yXzBfRGlkX3lvdV9tZWFuXzFfMjcyN1wiLFwiQ2Fubm90IGZpbmQgbGliIGRlZmluaXRpb24gZm9yICd7MH0nLiBEaWQgeW91IG1lYW4gJ3sxfSc/XCIpLF8wX2lzX2RlY2xhcmVkX2hlcmU6aSgyNzI4LDMsXCJfMF9pc19kZWNsYXJlZF9oZXJlXzI3MjhcIixcIid7MH0nIGlzIGRlY2xhcmVkIGhlcmUuXCIpLFByb3BlcnR5XzBfaXNfdXNlZF9iZWZvcmVfaXRzX2luaXRpYWxpemF0aW9uOmkoMjcyOSwxLFwiUHJvcGVydHlfMF9pc191c2VkX2JlZm9yZV9pdHNfaW5pdGlhbGl6YXRpb25fMjcyOVwiLFwiUHJvcGVydHkgJ3swfScgaXMgdXNlZCBiZWZvcmUgaXRzIGluaXRpYWxpemF0aW9uLlwiKSxBbl9hcnJvd19mdW5jdGlvbl9jYW5ub3RfaGF2ZV9hX3RoaXNfcGFyYW1ldGVyOmkoMjczMCwxLFwiQW5fYXJyb3dfZnVuY3Rpb25fY2Fubm90X2hhdmVfYV90aGlzX3BhcmFtZXRlcl8yNzMwXCIsXCJBbiBhcnJvdyBmdW5jdGlvbiBjYW5ub3QgaGF2ZSBhICd0aGlzJyBwYXJhbWV0ZXIuXCIpLEltcGxpY2l0X2NvbnZlcnNpb25fb2ZfYV9zeW1ib2xfdG9fYV9zdHJpbmdfd2lsbF9mYWlsX2F0X3J1bnRpbWVfQ29uc2lkZXJfd3JhcHBpbmdfdGhpc19leHByZXNzaW9uX2luX1N0cmluZzppKDI3MzEsMSxcIkltcGxpY2l0X2NvbnZlcnNpb25fb2ZfYV9zeW1ib2xfdG9fYV9zdHJpbmdfd2lsbF9mYWlsX2F0X3J1bnRpbWVfQ29uc2lkZXJfd3JhcHBpbmdfdGhpc19leHByZXNzaW9uX2lfMjczMVwiLFwiSW1wbGljaXQgY29udmVyc2lvbiBvZiBhICdzeW1ib2wnIHRvIGEgJ3N0cmluZycgd2lsbCBmYWlsIGF0IHJ1bnRpbWUuIENvbnNpZGVyIHdyYXBwaW5nIHRoaXMgZXhwcmVzc2lvbiBpbiAnU3RyaW5nKC4uLiknLlwiKSxDYW5ub3RfZmluZF9tb2R1bGVfMF9Db25zaWRlcl91c2luZ19yZXNvbHZlSnNvbk1vZHVsZV90b19pbXBvcnRfbW9kdWxlX3dpdGhfanNvbl9leHRlbnNpb246aSgyNzMyLDEsXCJDYW5ub3RfZmluZF9tb2R1bGVfMF9Db25zaWRlcl91c2luZ19yZXNvbHZlSnNvbk1vZHVsZV90b19pbXBvcnRfbW9kdWxlX3dpdGhfanNvbl9leHRlbnNpb25fMjczMlwiLFwiQ2Fubm90IGZpbmQgbW9kdWxlICd7MH0nLiBDb25zaWRlciB1c2luZyAnLS1yZXNvbHZlSnNvbk1vZHVsZScgdG8gaW1wb3J0IG1vZHVsZSB3aXRoICcuanNvbicgZXh0ZW5zaW9uLlwiKSxQcm9wZXJ0eV8wX3dhc19hbHNvX2RlY2xhcmVkX2hlcmU6aSgyNzMzLDEsXCJQcm9wZXJ0eV8wX3dhc19hbHNvX2RlY2xhcmVkX2hlcmVfMjczM1wiLFwiUHJvcGVydHkgJ3swfScgd2FzIGFsc28gZGVjbGFyZWQgaGVyZS5cIiksQXJlX3lvdV9taXNzaW5nX2Ffc2VtaWNvbG9uOmkoMjczNCwxLFwiQXJlX3lvdV9taXNzaW5nX2Ffc2VtaWNvbG9uXzI3MzRcIixcIkFyZSB5b3UgbWlzc2luZyBhIHNlbWljb2xvbj9cIiksRGlkX3lvdV9tZWFuX2Zvcl8wX3RvX2JlX2NvbnN0cmFpbmVkX3RvX3R5cGVfbmV3X2FyZ3NfQ29sb25fYW55XzE6aSgyNzM1LDEsXCJEaWRfeW91X21lYW5fZm9yXzBfdG9fYmVfY29uc3RyYWluZWRfdG9fdHlwZV9uZXdfYXJnc19Db2xvbl9hbnlfMV8yNzM1XCIsXCJEaWQgeW91IG1lYW4gZm9yICd7MH0nIHRvIGJlIGNvbnN0cmFpbmVkIHRvIHR5cGUgJ25ldyAoLi4uYXJnczogYW55W10pID0+IHsxfSc/XCIpLE9wZXJhdG9yXzBfY2Fubm90X2JlX2FwcGxpZWRfdG9fdHlwZV8xOmkoMjczNiwxLFwiT3BlcmF0b3JfMF9jYW5ub3RfYmVfYXBwbGllZF90b190eXBlXzFfMjczNlwiLFwiT3BlcmF0b3IgJ3swfScgY2Fubm90IGJlIGFwcGxpZWQgdG8gdHlwZSAnezF9Jy5cIiksQmlnSW50X2xpdGVyYWxzX2FyZV9ub3RfYXZhaWxhYmxlX3doZW5fdGFyZ2V0aW5nX2xvd2VyX3RoYW5fRVMyMDIwOmkoMjczNywxLFwiQmlnSW50X2xpdGVyYWxzX2FyZV9ub3RfYXZhaWxhYmxlX3doZW5fdGFyZ2V0aW5nX2xvd2VyX3RoYW5fRVMyMDIwXzI3MzdcIixcIkJpZ0ludCBsaXRlcmFscyBhcmUgbm90IGF2YWlsYWJsZSB3aGVuIHRhcmdldGluZyBsb3dlciB0aGFuIEVTMjAyMC5cIiksQW5fb3V0ZXJfdmFsdWVfb2ZfdGhpc19pc19zaGFkb3dlZF9ieV90aGlzX2NvbnRhaW5lcjppKDI3MzgsMyxcIkFuX291dGVyX3ZhbHVlX29mX3RoaXNfaXNfc2hhZG93ZWRfYnlfdGhpc19jb250YWluZXJfMjczOFwiLFwiQW4gb3V0ZXIgdmFsdWUgb2YgJ3RoaXMnIGlzIHNoYWRvd2VkIGJ5IHRoaXMgY29udGFpbmVyLlwiKSxUeXBlXzBfaXNfbWlzc2luZ190aGVfZm9sbG93aW5nX3Byb3BlcnRpZXNfZnJvbV90eXBlXzFfQ29sb25fMjppKDI3MzksMSxcIlR5cGVfMF9pc19taXNzaW5nX3RoZV9mb2xsb3dpbmdfcHJvcGVydGllc19mcm9tX3R5cGVfMV9Db2xvbl8yXzI3MzlcIixcIlR5cGUgJ3swfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7MX0nOiB7Mn1cIiksVHlwZV8wX2lzX21pc3NpbmdfdGhlX2ZvbGxvd2luZ19wcm9wZXJ0aWVzX2Zyb21fdHlwZV8xX0NvbG9uXzJfYW5kXzNfbW9yZTppKDI3NDAsMSxcIlR5cGVfMF9pc19taXNzaW5nX3RoZV9mb2xsb3dpbmdfcHJvcGVydGllc19mcm9tX3R5cGVfMV9Db2xvbl8yX2FuZF8zX21vcmVfMjc0MFwiLFwiVHlwZSAnezB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sxfSc6IHsyfSwgYW5kIHszfSBtb3JlLlwiKSxQcm9wZXJ0eV8wX2lzX21pc3NpbmdfaW5fdHlwZV8xX2J1dF9yZXF1aXJlZF9pbl90eXBlXzI6aSgyNzQxLDEsXCJQcm9wZXJ0eV8wX2lzX21pc3NpbmdfaW5fdHlwZV8xX2J1dF9yZXF1aXJlZF9pbl90eXBlXzJfMjc0MVwiLFwiUHJvcGVydHkgJ3swfScgaXMgbWlzc2luZyBpbiB0eXBlICd7MX0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7Mn0nLlwiKSxUaGVfaW5mZXJyZWRfdHlwZV9vZl8wX2Nhbm5vdF9iZV9uYW1lZF93aXRob3V0X2FfcmVmZXJlbmNlX3RvXzFfVGhpc19pc19saWtlbHlfbm90X3BvcnRhYmxlX0FfdHlwZV9hbm5vdGF0aW9uX2lzX25lY2Vzc2FyeTppKDI3NDIsMSxcIlRoZV9pbmZlcnJlZF90eXBlX29mXzBfY2Fubm90X2JlX25hbWVkX3dpdGhvdXRfYV9yZWZlcmVuY2VfdG9fMV9UaGlzX2lzX2xpa2VseV9ub3RfcG9ydGFibGVfQV90eXBlX2FfMjc0MlwiLFwiVGhlIGluZmVycmVkIHR5cGUgb2YgJ3swfScgY2Fubm90IGJlIG5hbWVkIHdpdGhvdXQgYSByZWZlcmVuY2UgdG8gJ3sxfScuIFRoaXMgaXMgbGlrZWx5IG5vdCBwb3J0YWJsZS4gQSB0eXBlIGFubm90YXRpb24gaXMgbmVjZXNzYXJ5LlwiKSxOb19vdmVybG9hZF9leHBlY3RzXzBfdHlwZV9hcmd1bWVudHNfYnV0X292ZXJsb2Fkc19kb19leGlzdF90aGF0X2V4cGVjdF9laXRoZXJfMV9vcl8yX3R5cGVfYXJndW1lbnRzOmkoMjc0MywxLFwiTm9fb3ZlcmxvYWRfZXhwZWN0c18wX3R5cGVfYXJndW1lbnRzX2J1dF9vdmVybG9hZHNfZG9fZXhpc3RfdGhhdF9leHBlY3RfZWl0aGVyXzFfb3JfMl90eXBlX2FyZ3VtZW50c18yNzQzXCIsXCJObyBvdmVybG9hZCBleHBlY3RzIHswfSB0eXBlIGFyZ3VtZW50cywgYnV0IG92ZXJsb2FkcyBkbyBleGlzdCB0aGF0IGV4cGVjdCBlaXRoZXIgezF9IG9yIHsyfSB0eXBlIGFyZ3VtZW50cy5cIiksVHlwZV9wYXJhbWV0ZXJfZGVmYXVsdHNfY2FuX29ubHlfcmVmZXJlbmNlX3ByZXZpb3VzbHlfZGVjbGFyZWRfdHlwZV9wYXJhbWV0ZXJzOmkoMjc0NCwxLFwiVHlwZV9wYXJhbWV0ZXJfZGVmYXVsdHNfY2FuX29ubHlfcmVmZXJlbmNlX3ByZXZpb3VzbHlfZGVjbGFyZWRfdHlwZV9wYXJhbWV0ZXJzXzI3NDRcIixcIlR5cGUgcGFyYW1ldGVyIGRlZmF1bHRzIGNhbiBvbmx5IHJlZmVyZW5jZSBwcmV2aW91c2x5IGRlY2xhcmVkIHR5cGUgcGFyYW1ldGVycy5cIiksVGhpc19KU1hfdGFnX3NfMF9wcm9wX2V4cGVjdHNfdHlwZV8xX3doaWNoX3JlcXVpcmVzX211bHRpcGxlX2NoaWxkcmVuX2J1dF9vbmx5X2Ffc2luZ2xlX2NoaWxkX3dhc19wcm92aWRlZDppKDI3NDUsMSxcIlRoaXNfSlNYX3RhZ19zXzBfcHJvcF9leHBlY3RzX3R5cGVfMV93aGljaF9yZXF1aXJlc19tdWx0aXBsZV9jaGlsZHJlbl9idXRfb25seV9hX3NpbmdsZV9jaGlsZF93YXNfcHJfMjc0NVwiLFwiVGhpcyBKU1ggdGFnJ3MgJ3swfScgcHJvcCBleHBlY3RzIHR5cGUgJ3sxfScgd2hpY2ggcmVxdWlyZXMgbXVsdGlwbGUgY2hpbGRyZW4sIGJ1dCBvbmx5IGEgc2luZ2xlIGNoaWxkIHdhcyBwcm92aWRlZC5cIiksVGhpc19KU1hfdGFnX3NfMF9wcm9wX2V4cGVjdHNfYV9zaW5nbGVfY2hpbGRfb2ZfdHlwZV8xX2J1dF9tdWx0aXBsZV9jaGlsZHJlbl93ZXJlX3Byb3ZpZGVkOmkoMjc0NiwxLFwiVGhpc19KU1hfdGFnX3NfMF9wcm9wX2V4cGVjdHNfYV9zaW5nbGVfY2hpbGRfb2ZfdHlwZV8xX2J1dF9tdWx0aXBsZV9jaGlsZHJlbl93ZXJlX3Byb3ZpZGVkXzI3NDZcIixcIlRoaXMgSlNYIHRhZydzICd7MH0nIHByb3AgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCBvZiB0eXBlICd7MX0nLCBidXQgbXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwcm92aWRlZC5cIiksXzBfY29tcG9uZW50c19kb25fdF9hY2NlcHRfdGV4dF9hc19jaGlsZF9lbGVtZW50c19UZXh0X2luX0pTWF9oYXNfdGhlX3R5cGVfc3RyaW5nX2J1dF90aGVfZXhwZWN0ZWRfdHlwZV9vZl8xX2lzXzI6aSgyNzQ3LDEsXCJfMF9jb21wb25lbnRzX2Rvbl90X2FjY2VwdF90ZXh0X2FzX2NoaWxkX2VsZW1lbnRzX1RleHRfaW5fSlNYX2hhc190aGVfdHlwZV9zdHJpbmdfYnV0X3RoZV9leHBlY3RlZF90XzI3NDdcIixcIid7MH0nIGNvbXBvbmVudHMgZG9uJ3QgYWNjZXB0IHRleHQgYXMgY2hpbGQgZWxlbWVudHMuIFRleHQgaW4gSlNYIGhhcyB0aGUgdHlwZSAnc3RyaW5nJywgYnV0IHRoZSBleHBlY3RlZCB0eXBlIG9mICd7MX0nIGlzICd7Mn0nLlwiKSxDYW5ub3RfYWNjZXNzX2FtYmllbnRfY29uc3RfZW51bXNfd2hlbl8wX2lzX2VuYWJsZWQ6aSgyNzQ4LDEsXCJDYW5ub3RfYWNjZXNzX2FtYmllbnRfY29uc3RfZW51bXNfd2hlbl8wX2lzX2VuYWJsZWRfMjc0OFwiLFwiQ2Fubm90IGFjY2VzcyBhbWJpZW50IGNvbnN0IGVudW1zIHdoZW4gJ3swfScgaXMgZW5hYmxlZC5cIiksXzBfcmVmZXJzX3RvX2FfdmFsdWVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV90eXBlX2hlcmVfRGlkX3lvdV9tZWFuX3R5cGVvZl8wOmkoMjc0OSwxLFwiXzBfcmVmZXJzX3RvX2FfdmFsdWVfYnV0X2lzX2JlaW5nX3VzZWRfYXNfYV90eXBlX2hlcmVfRGlkX3lvdV9tZWFuX3R5cGVvZl8wXzI3NDlcIixcIid7MH0nIHJlZmVycyB0byBhIHZhbHVlLCBidXQgaXMgYmVpbmcgdXNlZCBhcyBhIHR5cGUgaGVyZS4gRGlkIHlvdSBtZWFuICd0eXBlb2YgezB9Jz9cIiksVGhlX2ltcGxlbWVudGF0aW9uX3NpZ25hdHVyZV9pc19kZWNsYXJlZF9oZXJlOmkoMjc1MCwxLFwiVGhlX2ltcGxlbWVudGF0aW9uX3NpZ25hdHVyZV9pc19kZWNsYXJlZF9oZXJlXzI3NTBcIixcIlRoZSBpbXBsZW1lbnRhdGlvbiBzaWduYXR1cmUgaXMgZGVjbGFyZWQgaGVyZS5cIiksQ2lyY3VsYXJpdHlfb3JpZ2luYXRlc19pbl90eXBlX2F0X3RoaXNfbG9jYXRpb246aSgyNzUxLDEsXCJDaXJjdWxhcml0eV9vcmlnaW5hdGVzX2luX3R5cGVfYXRfdGhpc19sb2NhdGlvbl8yNzUxXCIsXCJDaXJjdWxhcml0eSBvcmlnaW5hdGVzIGluIHR5cGUgYXQgdGhpcyBsb2NhdGlvbi5cIiksVGhlX2ZpcnN0X2V4cG9ydF9kZWZhdWx0X2lzX2hlcmU6aSgyNzUyLDEsXCJUaGVfZmlyc3RfZXhwb3J0X2RlZmF1bHRfaXNfaGVyZV8yNzUyXCIsXCJUaGUgZmlyc3QgZXhwb3J0IGRlZmF1bHQgaXMgaGVyZS5cIiksQW5vdGhlcl9leHBvcnRfZGVmYXVsdF9pc19oZXJlOmkoMjc1MywxLFwiQW5vdGhlcl9leHBvcnRfZGVmYXVsdF9pc19oZXJlXzI3NTNcIixcIkFub3RoZXIgZXhwb3J0IGRlZmF1bHQgaXMgaGVyZS5cIiksc3VwZXJfbWF5X25vdF91c2VfdHlwZV9hcmd1bWVudHM6aSgyNzU0LDEsXCJzdXBlcl9tYXlfbm90X3VzZV90eXBlX2FyZ3VtZW50c18yNzU0XCIsXCInc3VwZXInIG1heSBub3QgdXNlIHR5cGUgYXJndW1lbnRzLlwiKSxOb19jb25zdGl0dWVudF9vZl90eXBlXzBfaXNfY2FsbGFibGU6aSgyNzU1LDEsXCJOb19jb25zdGl0dWVudF9vZl90eXBlXzBfaXNfY2FsbGFibGVfMjc1NVwiLFwiTm8gY29uc3RpdHVlbnQgb2YgdHlwZSAnezB9JyBpcyBjYWxsYWJsZS5cIiksTm90X2FsbF9jb25zdGl0dWVudHNfb2ZfdHlwZV8wX2FyZV9jYWxsYWJsZTppKDI3NTYsMSxcIk5vdF9hbGxfY29uc3RpdHVlbnRzX29mX3R5cGVfMF9hcmVfY2FsbGFibGVfMjc1NlwiLFwiTm90IGFsbCBjb25zdGl0dWVudHMgb2YgdHlwZSAnezB9JyBhcmUgY2FsbGFibGUuXCIpLFR5cGVfMF9oYXNfbm9fY2FsbF9zaWduYXR1cmVzOmkoMjc1NywxLFwiVHlwZV8wX2hhc19ub19jYWxsX3NpZ25hdHVyZXNfMjc1N1wiLFwiVHlwZSAnezB9JyBoYXMgbm8gY2FsbCBzaWduYXR1cmVzLlwiKSxFYWNoX21lbWJlcl9vZl90aGVfdW5pb25fdHlwZV8wX2hhc19zaWduYXR1cmVzX2J1dF9ub25lX29mX3Rob3NlX3NpZ25hdHVyZXNfYXJlX2NvbXBhdGlibGVfd2l0aF9lYWNoX290aGVyOmkoMjc1OCwxLFwiRWFjaF9tZW1iZXJfb2ZfdGhlX3VuaW9uX3R5cGVfMF9oYXNfc2lnbmF0dXJlc19idXRfbm9uZV9vZl90aG9zZV9zaWduYXR1cmVzX2FyZV9jb21wYXRpYmxlX3dpdGhfZWFjaF8yNzU4XCIsXCJFYWNoIG1lbWJlciBvZiB0aGUgdW5pb24gdHlwZSAnezB9JyBoYXMgc2lnbmF0dXJlcywgYnV0IG5vbmUgb2YgdGhvc2Ugc2lnbmF0dXJlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGVhY2ggb3RoZXIuXCIpLE5vX2NvbnN0aXR1ZW50X29mX3R5cGVfMF9pc19jb25zdHJ1Y3RhYmxlOmkoMjc1OSwxLFwiTm9fY29uc3RpdHVlbnRfb2ZfdHlwZV8wX2lzX2NvbnN0cnVjdGFibGVfMjc1OVwiLFwiTm8gY29uc3RpdHVlbnQgb2YgdHlwZSAnezB9JyBpcyBjb25zdHJ1Y3RhYmxlLlwiKSxOb3RfYWxsX2NvbnN0aXR1ZW50c19vZl90eXBlXzBfYXJlX2NvbnN0cnVjdGFibGU6aSgyNzYwLDEsXCJOb3RfYWxsX2NvbnN0aXR1ZW50c19vZl90eXBlXzBfYXJlX2NvbnN0cnVjdGFibGVfMjc2MFwiLFwiTm90IGFsbCBjb25zdGl0dWVudHMgb2YgdHlwZSAnezB9JyBhcmUgY29uc3RydWN0YWJsZS5cIiksVHlwZV8wX2hhc19ub19jb25zdHJ1Y3Rfc2lnbmF0dXJlczppKDI3NjEsMSxcIlR5cGVfMF9oYXNfbm9fY29uc3RydWN0X3NpZ25hdHVyZXNfMjc2MVwiLFwiVHlwZSAnezB9JyBoYXMgbm8gY29uc3RydWN0IHNpZ25hdHVyZXMuXCIpLEVhY2hfbWVtYmVyX29mX3RoZV91bmlvbl90eXBlXzBfaGFzX2NvbnN0cnVjdF9zaWduYXR1cmVzX2J1dF9ub25lX29mX3Rob3NlX3NpZ25hdHVyZXNfYXJlX2NvbXBhdGlibGVfd2l0aF9lYWNoX290aGVyOmkoMjc2MiwxLFwiRWFjaF9tZW1iZXJfb2ZfdGhlX3VuaW9uX3R5cGVfMF9oYXNfY29uc3RydWN0X3NpZ25hdHVyZXNfYnV0X25vbmVfb2ZfdGhvc2Vfc2lnbmF0dXJlc19hcmVfY29tcGF0aWJsZV8yNzYyXCIsXCJFYWNoIG1lbWJlciBvZiB0aGUgdW5pb24gdHlwZSAnezB9JyBoYXMgY29uc3RydWN0IHNpZ25hdHVyZXMsIGJ1dCBub25lIG9mIHRob3NlIHNpZ25hdHVyZXMgYXJlIGNvbXBhdGlibGUgd2l0aCBlYWNoIG90aGVyLlwiKSxDYW5ub3RfaXRlcmF0ZV92YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X2Zvcl9vZl93aWxsX2Fsd2F5c19zZW5kXzA6aSgyNzYzLDEsXCJDYW5ub3RfaXRlcmF0ZV92YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X2Zvcl9vZl93aWxsX2Fsd2F5c19zXzI3NjNcIixcIkNhbm5vdCBpdGVyYXRlIHZhbHVlIGJlY2F1c2UgdGhlICduZXh0JyBtZXRob2Qgb2YgaXRzIGl0ZXJhdG9yIGV4cGVjdHMgdHlwZSAnezF9JywgYnV0IGZvci1vZiB3aWxsIGFsd2F5cyBzZW5kICd7MH0nLlwiKSxDYW5ub3RfaXRlcmF0ZV92YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X2FycmF5X3NwcmVhZF93aWxsX2Fsd2F5c19zZW5kXzA6aSgyNzY0LDEsXCJDYW5ub3RfaXRlcmF0ZV92YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X2FycmF5X3NwcmVhZF93aWxsX2FsXzI3NjRcIixcIkNhbm5vdCBpdGVyYXRlIHZhbHVlIGJlY2F1c2UgdGhlICduZXh0JyBtZXRob2Qgb2YgaXRzIGl0ZXJhdG9yIGV4cGVjdHMgdHlwZSAnezF9JywgYnV0IGFycmF5IHNwcmVhZCB3aWxsIGFsd2F5cyBzZW5kICd7MH0nLlwiKSxDYW5ub3RfaXRlcmF0ZV92YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X2FycmF5X2Rlc3RydWN0dXJpbmdfd2lsbF9hbHdheXNfc2VuZF8wOmkoMjc2NSwxLFwiQ2Fubm90X2l0ZXJhdGVfdmFsdWVfYmVjYXVzZV90aGVfbmV4dF9tZXRob2Rfb2ZfaXRzX2l0ZXJhdG9yX2V4cGVjdHNfdHlwZV8xX2J1dF9hcnJheV9kZXN0cnVjdHVyaW5nX18yNzY1XCIsXCJDYW5ub3QgaXRlcmF0ZSB2YWx1ZSBiZWNhdXNlIHRoZSAnbmV4dCcgbWV0aG9kIG9mIGl0cyBpdGVyYXRvciBleHBlY3RzIHR5cGUgJ3sxfScsIGJ1dCBhcnJheSBkZXN0cnVjdHVyaW5nIHdpbGwgYWx3YXlzIHNlbmQgJ3swfScuXCIpLENhbm5vdF9kZWxlZ2F0ZV9pdGVyYXRpb25fdG9fdmFsdWVfYmVjYXVzZV90aGVfbmV4dF9tZXRob2Rfb2ZfaXRzX2l0ZXJhdG9yX2V4cGVjdHNfdHlwZV8xX2J1dF90aGVfY29udGFpbmluZ19nZW5lcmF0b3Jfd2lsbF9hbHdheXNfc2VuZF8wOmkoMjc2NiwxLFwiQ2Fubm90X2RlbGVnYXRlX2l0ZXJhdGlvbl90b192YWx1ZV9iZWNhdXNlX3RoZV9uZXh0X21ldGhvZF9vZl9pdHNfaXRlcmF0b3JfZXhwZWN0c190eXBlXzFfYnV0X3RoZV9jb18yNzY2XCIsXCJDYW5ub3QgZGVsZWdhdGUgaXRlcmF0aW9uIHRvIHZhbHVlIGJlY2F1c2UgdGhlICduZXh0JyBtZXRob2Qgb2YgaXRzIGl0ZXJhdG9yIGV4cGVjdHMgdHlwZSAnezF9JywgYnV0IHRoZSBjb250YWluaW5nIGdlbmVyYXRvciB3aWxsIGFsd2F5cyBzZW5kICd7MH0nLlwiKSxUaGVfMF9wcm9wZXJ0eV9vZl9hbl9pdGVyYXRvcl9tdXN0X2JlX2FfbWV0aG9kOmkoMjc2NywxLFwiVGhlXzBfcHJvcGVydHlfb2ZfYW5faXRlcmF0b3JfbXVzdF9iZV9hX21ldGhvZF8yNzY3XCIsXCJUaGUgJ3swfScgcHJvcGVydHkgb2YgYW4gaXRlcmF0b3IgbXVzdCBiZSBhIG1ldGhvZC5cIiksVGhlXzBfcHJvcGVydHlfb2ZfYW5fYXN5bmNfaXRlcmF0b3JfbXVzdF9iZV9hX21ldGhvZDppKDI3NjgsMSxcIlRoZV8wX3Byb3BlcnR5X29mX2FuX2FzeW5jX2l0ZXJhdG9yX211c3RfYmVfYV9tZXRob2RfMjc2OFwiLFwiVGhlICd7MH0nIHByb3BlcnR5IG9mIGFuIGFzeW5jIGl0ZXJhdG9yIG11c3QgYmUgYSBtZXRob2QuXCIpLE5vX292ZXJsb2FkX21hdGNoZXNfdGhpc19jYWxsOmkoMjc2OSwxLFwiTm9fb3ZlcmxvYWRfbWF0Y2hlc190aGlzX2NhbGxfMjc2OVwiLFwiTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXCIpLFRoZV9sYXN0X292ZXJsb2FkX2dhdmVfdGhlX2ZvbGxvd2luZ19lcnJvcjppKDI3NzAsMSxcIlRoZV9sYXN0X292ZXJsb2FkX2dhdmVfdGhlX2ZvbGxvd2luZ19lcnJvcl8yNzcwXCIsXCJUaGUgbGFzdCBvdmVybG9hZCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXCIpLFRoZV9sYXN0X292ZXJsb2FkX2lzX2RlY2xhcmVkX2hlcmU6aSgyNzcxLDEsXCJUaGVfbGFzdF9vdmVybG9hZF9pc19kZWNsYXJlZF9oZXJlXzI3NzFcIixcIlRoZSBsYXN0IG92ZXJsb2FkIGlzIGRlY2xhcmVkIGhlcmUuXCIpLE92ZXJsb2FkXzBfb2ZfMV8yX2dhdmVfdGhlX2ZvbGxvd2luZ19lcnJvcjppKDI3NzIsMSxcIk92ZXJsb2FkXzBfb2ZfMV8yX2dhdmVfdGhlX2ZvbGxvd2luZ19lcnJvcl8yNzcyXCIsXCJPdmVybG9hZCB7MH0gb2YgezF9LCAnezJ9JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlwiKSxEaWRfeW91X2ZvcmdldF90b191c2VfYXdhaXQ6aSgyNzczLDEsXCJEaWRfeW91X2ZvcmdldF90b191c2VfYXdhaXRfMjc3M1wiLFwiRGlkIHlvdSBmb3JnZXQgdG8gdXNlICdhd2FpdCc/XCIpLFRoaXNfY29uZGl0aW9uX3dpbGxfYWx3YXlzX3JldHVybl90cnVlX3NpbmNlX3RoaXNfZnVuY3Rpb25faXNfYWx3YXlzX2RlZmluZWRfRGlkX3lvdV9tZWFuX3RvX2NhbGxfaXRfaW5zdGVhZDppKDI3NzQsMSxcIlRoaXNfY29uZGl0aW9uX3dpbGxfYWx3YXlzX3JldHVybl90cnVlX3NpbmNlX3RoaXNfZnVuY3Rpb25faXNfYWx3YXlzX2RlZmluZWRfRGlkX3lvdV9tZWFuX3RvX2NhbGxfaXRfMjc3NFwiLFwiVGhpcyBjb25kaXRpb24gd2lsbCBhbHdheXMgcmV0dXJuIHRydWUgc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBhbHdheXMgZGVmaW5lZC4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgaXQgaW5zdGVhZD9cIiksQXNzZXJ0aW9uc19yZXF1aXJlX2V2ZXJ5X25hbWVfaW5fdGhlX2NhbGxfdGFyZ2V0X3RvX2JlX2RlY2xhcmVkX3dpdGhfYW5fZXhwbGljaXRfdHlwZV9hbm5vdGF0aW9uOmkoMjc3NSwxLFwiQXNzZXJ0aW9uc19yZXF1aXJlX2V2ZXJ5X25hbWVfaW5fdGhlX2NhbGxfdGFyZ2V0X3RvX2JlX2RlY2xhcmVkX3dpdGhfYW5fZXhwbGljaXRfdHlwZV9hbm5vdGF0aW9uXzI3NzVcIixcIkFzc2VydGlvbnMgcmVxdWlyZSBldmVyeSBuYW1lIGluIHRoZSBjYWxsIHRhcmdldCB0byBiZSBkZWNsYXJlZCB3aXRoIGFuIGV4cGxpY2l0IHR5cGUgYW5ub3RhdGlvbi5cIiksQXNzZXJ0aW9uc19yZXF1aXJlX3RoZV9jYWxsX3RhcmdldF90b19iZV9hbl9pZGVudGlmaWVyX29yX3F1YWxpZmllZF9uYW1lOmkoMjc3NiwxLFwiQXNzZXJ0aW9uc19yZXF1aXJlX3RoZV9jYWxsX3RhcmdldF90b19iZV9hbl9pZGVudGlmaWVyX29yX3F1YWxpZmllZF9uYW1lXzI3NzZcIixcIkFzc2VydGlvbnMgcmVxdWlyZSB0aGUgY2FsbCB0YXJnZXQgdG8gYmUgYW4gaWRlbnRpZmllciBvciBxdWFsaWZpZWQgbmFtZS5cIiksVGhlX29wZXJhbmRfb2ZfYW5faW5jcmVtZW50X29yX2RlY3JlbWVudF9vcGVyYXRvcl9tYXlfbm90X2JlX2FuX29wdGlvbmFsX3Byb3BlcnR5X2FjY2VzczppKDI3NzcsMSxcIlRoZV9vcGVyYW5kX29mX2FuX2luY3JlbWVudF9vcl9kZWNyZW1lbnRfb3BlcmF0b3JfbWF5X25vdF9iZV9hbl9vcHRpb25hbF9wcm9wZXJ0eV9hY2Nlc3NfMjc3N1wiLFwiVGhlIG9wZXJhbmQgb2YgYW4gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBvcGVyYXRvciBtYXkgbm90IGJlIGFuIG9wdGlvbmFsIHByb3BlcnR5IGFjY2Vzcy5cIiksVGhlX3RhcmdldF9vZl9hbl9vYmplY3RfcmVzdF9hc3NpZ25tZW50X21heV9ub3RfYmVfYW5fb3B0aW9uYWxfcHJvcGVydHlfYWNjZXNzOmkoMjc3OCwxLFwiVGhlX3RhcmdldF9vZl9hbl9vYmplY3RfcmVzdF9hc3NpZ25tZW50X21heV9ub3RfYmVfYW5fb3B0aW9uYWxfcHJvcGVydHlfYWNjZXNzXzI3NzhcIixcIlRoZSB0YXJnZXQgb2YgYW4gb2JqZWN0IHJlc3QgYXNzaWdubWVudCBtYXkgbm90IGJlIGFuIG9wdGlvbmFsIHByb3BlcnR5IGFjY2Vzcy5cIiksVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2Fzc2lnbm1lbnRfZXhwcmVzc2lvbl9tYXlfbm90X2JlX2FuX29wdGlvbmFsX3Byb3BlcnR5X2FjY2VzczppKDI3NzksMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hbl9hc3NpZ25tZW50X2V4cHJlc3Npb25fbWF5X25vdF9iZV9hbl9vcHRpb25hbF9wcm9wZXJ0eV9hY2Nlc3NfMjc3OVwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBtYXkgbm90IGJlIGFuIG9wdGlvbmFsIHByb3BlcnR5IGFjY2Vzcy5cIiksVGhlX2xlZnRfaGFuZF9zaWRlX29mX2FfZm9yX2luX3N0YXRlbWVudF9tYXlfbm90X2JlX2FuX29wdGlvbmFsX3Byb3BlcnR5X2FjY2VzczppKDI3ODAsMSxcIlRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9pbl9zdGF0ZW1lbnRfbWF5X25vdF9iZV9hbl9vcHRpb25hbF9wcm9wZXJ0eV9hY2Nlc3NfMjc4MFwiLFwiVGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEgJ2Zvci4uLmluJyBzdGF0ZW1lbnQgbWF5IG5vdCBiZSBhbiBvcHRpb25hbCBwcm9wZXJ0eSBhY2Nlc3MuXCIpLFRoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hX2Zvcl9vZl9zdGF0ZW1lbnRfbWF5X25vdF9iZV9hbl9vcHRpb25hbF9wcm9wZXJ0eV9hY2Nlc3M6aSgyNzgxLDEsXCJUaGVfbGVmdF9oYW5kX3NpZGVfb2ZfYV9mb3Jfb2Zfc3RhdGVtZW50X21heV9ub3RfYmVfYW5fb3B0aW9uYWxfcHJvcGVydHlfYWNjZXNzXzI3ODFcIixcIlRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhICdmb3IuLi5vZicgc3RhdGVtZW50IG1heSBub3QgYmUgYW4gb3B0aW9uYWwgcHJvcGVydHkgYWNjZXNzLlwiKSxfMF9uZWVkc19hbl9leHBsaWNpdF90eXBlX2Fubm90YXRpb246aSgyNzgyLDMsXCJfMF9uZWVkc19hbl9leHBsaWNpdF90eXBlX2Fubm90YXRpb25fMjc4MlwiLFwiJ3swfScgbmVlZHMgYW4gZXhwbGljaXQgdHlwZSBhbm5vdGF0aW9uLlwiKSxfMF9pc19zcGVjaWZpZWRfbW9yZV90aGFuX29uY2Vfc29fdGhpc191c2FnZV93aWxsX2JlX292ZXJ3cml0dGVuOmkoMjc4MywxLFwiXzBfaXNfc3BlY2lmaWVkX21vcmVfdGhhbl9vbmNlX3NvX3RoaXNfdXNhZ2Vfd2lsbF9iZV9vdmVyd3JpdHRlbl8yNzgzXCIsXCInezB9JyBpcyBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHRoaXMgdXNhZ2Ugd2lsbCBiZSBvdmVyd3JpdHRlbi5cIiksZ2V0X2FuZF9zZXRfYWNjZXNzb3JzX2Nhbm5vdF9kZWNsYXJlX3RoaXNfcGFyYW1ldGVyczppKDI3ODQsMSxcImdldF9hbmRfc2V0X2FjY2Vzc29yc19jYW5ub3RfZGVjbGFyZV90aGlzX3BhcmFtZXRlcnNfMjc4NFwiLFwiJ2dldCcgYW5kICdzZXQnIGFjY2Vzc29ycyBjYW5ub3QgZGVjbGFyZSAndGhpcycgcGFyYW1ldGVycy5cIiksVGhpc19zcHJlYWRfYWx3YXlzX292ZXJ3cml0ZXNfdGhpc19wcm9wZXJ0eTppKDI3ODUsMSxcIlRoaXNfc3ByZWFkX2Fsd2F5c19vdmVyd3JpdGVzX3RoaXNfcHJvcGVydHlfMjc4NVwiLFwiVGhpcyBzcHJlYWQgYWx3YXlzIG92ZXJ3cml0ZXMgdGhpcyBwcm9wZXJ0eS5cIiksXzBfY2Fubm90X2JlX3VzZWRfYXNfYV9KU1hfY29tcG9uZW50OmkoMjc4NiwxLFwiXzBfY2Fubm90X2JlX3VzZWRfYXNfYV9KU1hfY29tcG9uZW50XzI3ODZcIixcIid7MH0nIGNhbm5vdCBiZSB1c2VkIGFzIGEgSlNYIGNvbXBvbmVudC5cIiksSXRzX3JldHVybl90eXBlXzBfaXNfbm90X2FfdmFsaWRfSlNYX2VsZW1lbnQ6aSgyNzg3LDEsXCJJdHNfcmV0dXJuX3R5cGVfMF9pc19ub3RfYV92YWxpZF9KU1hfZWxlbWVudF8yNzg3XCIsXCJJdHMgcmV0dXJuIHR5cGUgJ3swfScgaXMgbm90IGEgdmFsaWQgSlNYIGVsZW1lbnQuXCIpLEl0c19pbnN0YW5jZV90eXBlXzBfaXNfbm90X2FfdmFsaWRfSlNYX2VsZW1lbnQ6aSgyNzg4LDEsXCJJdHNfaW5zdGFuY2VfdHlwZV8wX2lzX25vdF9hX3ZhbGlkX0pTWF9lbGVtZW50XzI3ODhcIixcIkl0cyBpbnN0YW5jZSB0eXBlICd7MH0nIGlzIG5vdCBhIHZhbGlkIEpTWCBlbGVtZW50LlwiKSxJdHNfZWxlbWVudF90eXBlXzBfaXNfbm90X2FfdmFsaWRfSlNYX2VsZW1lbnQ6aSgyNzg5LDEsXCJJdHNfZWxlbWVudF90eXBlXzBfaXNfbm90X2FfdmFsaWRfSlNYX2VsZW1lbnRfMjc4OVwiLFwiSXRzIGVsZW1lbnQgdHlwZSAnezB9JyBpcyBub3QgYSB2YWxpZCBKU1ggZWxlbWVudC5cIiksVGhlX29wZXJhbmRfb2ZfYV9kZWxldGVfb3BlcmF0b3JfbXVzdF9iZV9vcHRpb25hbDppKDI3OTAsMSxcIlRoZV9vcGVyYW5kX29mX2FfZGVsZXRlX29wZXJhdG9yX211c3RfYmVfb3B0aW9uYWxfMjc5MFwiLFwiVGhlIG9wZXJhbmQgb2YgYSAnZGVsZXRlJyBvcGVyYXRvciBtdXN0IGJlIG9wdGlvbmFsLlwiKSxFeHBvbmVudGlhdGlvbl9jYW5ub3RfYmVfcGVyZm9ybWVkX29uX2JpZ2ludF92YWx1ZXNfdW5sZXNzX3RoZV90YXJnZXRfb3B0aW9uX2lzX3NldF90b19lczIwMTZfb3JfbGF0ZXI6aSgyNzkxLDEsXCJFeHBvbmVudGlhdGlvbl9jYW5ub3RfYmVfcGVyZm9ybWVkX29uX2JpZ2ludF92YWx1ZXNfdW5sZXNzX3RoZV90YXJnZXRfb3B0aW9uX2lzX3NldF90b19lczIwMTZfb3JfbGF0XzI3OTFcIixcIkV4cG9uZW50aWF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gJ2JpZ2ludCcgdmFsdWVzIHVubGVzcyB0aGUgJ3RhcmdldCcgb3B0aW9uIGlzIHNldCB0byAnZXMyMDE2JyBvciBsYXRlci5cIiksQ2Fubm90X2ZpbmRfbW9kdWxlXzBfRGlkX3lvdV9tZWFuX3RvX3NldF90aGVfbW9kdWxlUmVzb2x1dGlvbl9vcHRpb25fdG9fbm9kZW5leHRfb3JfdG9fYWRkX2FsaWFzZXNfdG9fdGhlX3BhdGhzX29wdGlvbjppKDI3OTIsMSxcIkNhbm5vdF9maW5kX21vZHVsZV8wX0RpZF95b3VfbWVhbl90b19zZXRfdGhlX21vZHVsZVJlc29sdXRpb25fb3B0aW9uX3RvX25vZGVuZXh0X29yX3RvX2FkZF9hbGlhc2VzX3RfMjc5MlwiLFwiQ2Fubm90IGZpbmQgbW9kdWxlICd7MH0nLiBEaWQgeW91IG1lYW4gdG8gc2V0IHRoZSAnbW9kdWxlUmVzb2x1dGlvbicgb3B0aW9uIHRvICdub2RlbmV4dCcsIG9yIHRvIGFkZCBhbGlhc2VzIHRvIHRoZSAncGF0aHMnIG9wdGlvbj9cIiksVGhlX2NhbGxfd291bGRfaGF2ZV9zdWNjZWVkZWRfYWdhaW5zdF90aGlzX2ltcGxlbWVudGF0aW9uX2J1dF9pbXBsZW1lbnRhdGlvbl9zaWduYXR1cmVzX29mX292ZXJsb2Fkc19hcmVfbm90X2V4dGVybmFsbHlfdmlzaWJsZTppKDI3OTMsMSxcIlRoZV9jYWxsX3dvdWxkX2hhdmVfc3VjY2VlZGVkX2FnYWluc3RfdGhpc19pbXBsZW1lbnRhdGlvbl9idXRfaW1wbGVtZW50YXRpb25fc2lnbmF0dXJlc19vZl9vdmVybG9hZHNfMjc5M1wiLFwiVGhlIGNhbGwgd291bGQgaGF2ZSBzdWNjZWVkZWQgYWdhaW5zdCB0aGlzIGltcGxlbWVudGF0aW9uLCBidXQgaW1wbGVtZW50YXRpb24gc2lnbmF0dXJlcyBvZiBvdmVybG9hZHMgYXJlIG5vdCBleHRlcm5hbGx5IHZpc2libGUuXCIpLEV4cGVjdGVkXzBfYXJndW1lbnRzX2J1dF9nb3RfMV9EaWRfeW91X2ZvcmdldF90b19pbmNsdWRlX3ZvaWRfaW5feW91cl90eXBlX2FyZ3VtZW50X3RvX1Byb21pc2U6aSgyNzk0LDEsXCJFeHBlY3RlZF8wX2FyZ3VtZW50c19idXRfZ290XzFfRGlkX3lvdV9mb3JnZXRfdG9faW5jbHVkZV92b2lkX2luX3lvdXJfdHlwZV9hcmd1bWVudF90b19Qcm9taXNlXzI3OTRcIixcIkV4cGVjdGVkIHswfSBhcmd1bWVudHMsIGJ1dCBnb3QgezF9LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlICd2b2lkJyBpbiB5b3VyIHR5cGUgYXJndW1lbnQgdG8gJ1Byb21pc2UnP1wiKSxUaGVfaW50cmluc2ljX2tleXdvcmRfY2FuX29ubHlfYmVfdXNlZF90b19kZWNsYXJlX2NvbXBpbGVyX3Byb3ZpZGVkX2ludHJpbnNpY190eXBlczppKDI3OTUsMSxcIlRoZV9pbnRyaW5zaWNfa2V5d29yZF9jYW5fb25seV9iZV91c2VkX3RvX2RlY2xhcmVfY29tcGlsZXJfcHJvdmlkZWRfaW50cmluc2ljX3R5cGVzXzI3OTVcIixcIlRoZSAnaW50cmluc2ljJyBrZXl3b3JkIGNhbiBvbmx5IGJlIHVzZWQgdG8gZGVjbGFyZSBjb21waWxlciBwcm92aWRlZCBpbnRyaW5zaWMgdHlwZXMuXCIpLEl0X2lzX2xpa2VseV90aGF0X3lvdV9hcmVfbWlzc2luZ19hX2NvbW1hX3RvX3NlcGFyYXRlX3RoZXNlX3R3b190ZW1wbGF0ZV9leHByZXNzaW9uc19UaGV5X2Zvcm1fYV90YWdnZWRfdGVtcGxhdGVfZXhwcmVzc2lvbl93aGljaF9jYW5ub3RfYmVfaW52b2tlZDppKDI3OTYsMSxcIkl0X2lzX2xpa2VseV90aGF0X3lvdV9hcmVfbWlzc2luZ19hX2NvbW1hX3RvX3NlcGFyYXRlX3RoZXNlX3R3b190ZW1wbGF0ZV9leHByZXNzaW9uc19UaGV5X2Zvcm1fYV90YWdfMjc5NlwiLFwiSXQgaXMgbGlrZWx5IHRoYXQgeW91IGFyZSBtaXNzaW5nIGEgY29tbWEgdG8gc2VwYXJhdGUgdGhlc2UgdHdvIHRlbXBsYXRlIGV4cHJlc3Npb25zLiBUaGV5IGZvcm0gYSB0YWdnZWQgdGVtcGxhdGUgZXhwcmVzc2lvbiB3aGljaCBjYW5ub3QgYmUgaW52b2tlZC5cIiksQV9taXhpbl9jbGFzc190aGF0X2V4dGVuZHNfZnJvbV9hX3R5cGVfdmFyaWFibGVfY29udGFpbmluZ19hbl9hYnN0cmFjdF9jb25zdHJ1Y3Rfc2lnbmF0dXJlX211c3RfYWxzb19iZV9kZWNsYXJlZF9hYnN0cmFjdDppKDI3OTcsMSxcIkFfbWl4aW5fY2xhc3NfdGhhdF9leHRlbmRzX2Zyb21fYV90eXBlX3ZhcmlhYmxlX2NvbnRhaW5pbmdfYW5fYWJzdHJhY3RfY29uc3RydWN0X3NpZ25hdHVyZV9tdXN0X2Fsc29fMjc5N1wiLFwiQSBtaXhpbiBjbGFzcyB0aGF0IGV4dGVuZHMgZnJvbSBhIHR5cGUgdmFyaWFibGUgY29udGFpbmluZyBhbiBhYnN0cmFjdCBjb25zdHJ1Y3Qgc2lnbmF0dXJlIG11c3QgYWxzbyBiZSBkZWNsYXJlZCAnYWJzdHJhY3QnLlwiKSxUaGVfZGVjbGFyYXRpb25fd2FzX21hcmtlZF9hc19kZXByZWNhdGVkX2hlcmU6aSgyNzk4LDEsXCJUaGVfZGVjbGFyYXRpb25fd2FzX21hcmtlZF9hc19kZXByZWNhdGVkX2hlcmVfMjc5OFwiLFwiVGhlIGRlY2xhcmF0aW9uIHdhcyBtYXJrZWQgYXMgZGVwcmVjYXRlZCBoZXJlLlwiKSxUeXBlX3Byb2R1Y2VzX2FfdHVwbGVfdHlwZV90aGF0X2lzX3Rvb19sYXJnZV90b19yZXByZXNlbnQ6aSgyNzk5LDEsXCJUeXBlX3Byb2R1Y2VzX2FfdHVwbGVfdHlwZV90aGF0X2lzX3Rvb19sYXJnZV90b19yZXByZXNlbnRfMjc5OVwiLFwiVHlwZSBwcm9kdWNlcyBhIHR1cGxlIHR5cGUgdGhhdCBpcyB0b28gbGFyZ2UgdG8gcmVwcmVzZW50LlwiKSxFeHByZXNzaW9uX3Byb2R1Y2VzX2FfdHVwbGVfdHlwZV90aGF0X2lzX3Rvb19sYXJnZV90b19yZXByZXNlbnQ6aSgyODAwLDEsXCJFeHByZXNzaW9uX3Byb2R1Y2VzX2FfdHVwbGVfdHlwZV90aGF0X2lzX3Rvb19sYXJnZV90b19yZXByZXNlbnRfMjgwMFwiLFwiRXhwcmVzc2lvbiBwcm9kdWNlcyBhIHR1cGxlIHR5cGUgdGhhdCBpcyB0b28gbGFyZ2UgdG8gcmVwcmVzZW50LlwiKSxUaGlzX2NvbmRpdGlvbl93aWxsX2Fsd2F5c19yZXR1cm5fdHJ1ZV9zaW5jZV90aGlzXzBfaXNfYWx3YXlzX2RlZmluZWQ6aSgyODAxLDEsXCJUaGlzX2NvbmRpdGlvbl93aWxsX2Fsd2F5c19yZXR1cm5fdHJ1ZV9zaW5jZV90aGlzXzBfaXNfYWx3YXlzX2RlZmluZWRfMjgwMVwiLFwiVGhpcyBjb25kaXRpb24gd2lsbCBhbHdheXMgcmV0dXJuIHRydWUgc2luY2UgdGhpcyAnezB9JyBpcyBhbHdheXMgZGVmaW5lZC5cIiksVHlwZV8wX2Nhbl9vbmx5X2JlX2l0ZXJhdGVkX3Rocm91Z2hfd2hlbl91c2luZ190aGVfZG93bmxldmVsSXRlcmF0aW9uX2ZsYWdfb3Jfd2l0aF9hX3RhcmdldF9vZl9lczIwMTVfb3JfaGlnaGVyOmkoMjgwMiwxLFwiVHlwZV8wX2Nhbl9vbmx5X2JlX2l0ZXJhdGVkX3Rocm91Z2hfd2hlbl91c2luZ190aGVfZG93bmxldmVsSXRlcmF0aW9uX2ZsYWdfb3Jfd2l0aF9hX3RhcmdldF9vZl9lczIwMV8yODAyXCIsXCJUeXBlICd7MH0nIGNhbiBvbmx5IGJlIGl0ZXJhdGVkIHRocm91Z2ggd2hlbiB1c2luZyB0aGUgJy0tZG93bmxldmVsSXRlcmF0aW9uJyBmbGFnIG9yIHdpdGggYSAnLS10YXJnZXQnIG9mICdlczIwMTUnIG9yIGhpZ2hlci5cIiksQ2Fubm90X2Fzc2lnbl90b19wcml2YXRlX21ldGhvZF8wX1ByaXZhdGVfbWV0aG9kc19hcmVfbm90X3dyaXRhYmxlOmkoMjgwMywxLFwiQ2Fubm90X2Fzc2lnbl90b19wcml2YXRlX21ldGhvZF8wX1ByaXZhdGVfbWV0aG9kc19hcmVfbm90X3dyaXRhYmxlXzI4MDNcIixcIkNhbm5vdCBhc3NpZ24gdG8gcHJpdmF0ZSBtZXRob2QgJ3swfScuIFByaXZhdGUgbWV0aG9kcyBhcmUgbm90IHdyaXRhYmxlLlwiKSxEdXBsaWNhdGVfaWRlbnRpZmllcl8wX1N0YXRpY19hbmRfaW5zdGFuY2VfZWxlbWVudHNfY2Fubm90X3NoYXJlX3RoZV9zYW1lX3ByaXZhdGVfbmFtZTppKDI4MDQsMSxcIkR1cGxpY2F0ZV9pZGVudGlmaWVyXzBfU3RhdGljX2FuZF9pbnN0YW5jZV9lbGVtZW50c19jYW5ub3Rfc2hhcmVfdGhlX3NhbWVfcHJpdmF0ZV9uYW1lXzI4MDRcIixcIkR1cGxpY2F0ZSBpZGVudGlmaWVyICd7MH0nLiBTdGF0aWMgYW5kIGluc3RhbmNlIGVsZW1lbnRzIGNhbm5vdCBzaGFyZSB0aGUgc2FtZSBwcml2YXRlIG5hbWUuXCIpLFByaXZhdGVfYWNjZXNzb3Jfd2FzX2RlZmluZWRfd2l0aG91dF9hX2dldHRlcjppKDI4MDYsMSxcIlByaXZhdGVfYWNjZXNzb3Jfd2FzX2RlZmluZWRfd2l0aG91dF9hX2dldHRlcl8yODA2XCIsXCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIuXCIpLFRoaXNfc3ludGF4X3JlcXVpcmVzX2FuX2ltcG9ydGVkX2hlbHBlcl9uYW1lZF8xX3dpdGhfMl9wYXJhbWV0ZXJzX3doaWNoX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfdGhlX29uZV9pbl8wX0NvbnNpZGVyX3VwZ3JhZGluZ195b3VyX3ZlcnNpb25fb2ZfMDppKDI4MDcsMSxcIlRoaXNfc3ludGF4X3JlcXVpcmVzX2FuX2ltcG9ydGVkX2hlbHBlcl9uYW1lZF8xX3dpdGhfMl9wYXJhbWV0ZXJzX3doaWNoX2lzX25vdF9jb21wYXRpYmxlX3dpdGhfdGhlX29fMjgwN1wiLFwiVGhpcyBzeW50YXggcmVxdWlyZXMgYW4gaW1wb3J0ZWQgaGVscGVyIG5hbWVkICd7MX0nIHdpdGggezJ9IHBhcmFtZXRlcnMsIHdoaWNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIG9uZSBpbiAnezB9Jy4gQ29uc2lkZXIgdXBncmFkaW5nIHlvdXIgdmVyc2lvbiBvZiAnezB9Jy5cIiksQV9nZXRfYWNjZXNzb3JfbXVzdF9iZV9hdF9sZWFzdF9hc19hY2Nlc3NpYmxlX2FzX3RoZV9zZXR0ZXI6aSgyODA4LDEsXCJBX2dldF9hY2Nlc3Nvcl9tdXN0X2JlX2F0X2xlYXN0X2FzX2FjY2Vzc2libGVfYXNfdGhlX3NldHRlcl8yODA4XCIsXCJBIGdldCBhY2Nlc3NvciBtdXN0IGJlIGF0IGxlYXN0IGFzIGFjY2Vzc2libGUgYXMgdGhlIHNldHRlclwiKSxEZWNsYXJhdGlvbl9vcl9zdGF0ZW1lbnRfZXhwZWN0ZWRfVGhpc19mb2xsb3dzX2FfYmxvY2tfb2Zfc3RhdGVtZW50c19zb19pZl95b3VfaW50ZW5kZWRfdG9fd3JpdGVfYV9kZXN0cnVjdHVyaW5nX2Fzc2lnbm1lbnRfeW91X21pZ2h0X25lZWRfdG9fd3JhcF90aGVfd2hvbGVfYXNzaWdubWVudF9pbl9wYXJlbnRoZXNlczppKDI4MDksMSxcIkRlY2xhcmF0aW9uX29yX3N0YXRlbWVudF9leHBlY3RlZF9UaGlzX2ZvbGxvd3NfYV9ibG9ja19vZl9zdGF0ZW1lbnRzX3NvX2lmX3lvdV9pbnRlbmRlZF90b193cml0ZV9hX2RfMjgwOVwiLFwiRGVjbGFyYXRpb24gb3Igc3RhdGVtZW50IGV4cGVjdGVkLiBUaGlzICc9JyBmb2xsb3dzIGEgYmxvY2sgb2Ygc3RhdGVtZW50cywgc28gaWYgeW91IGludGVuZGVkIHRvIHdyaXRlIGEgZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50LCB5b3UgbWlnaHQgbmVlZCB0byB3cmFwIHRoZSB3aG9sZSBhc3NpZ25tZW50IGluIHBhcmVudGhlc2VzLlwiKSxFeHBlY3RlZF8xX2FyZ3VtZW50X2J1dF9nb3RfMF9uZXdfUHJvbWlzZV9uZWVkc19hX0pTRG9jX2hpbnRfdG9fcHJvZHVjZV9hX3Jlc29sdmVfdGhhdF9jYW5fYmVfY2FsbGVkX3dpdGhvdXRfYXJndW1lbnRzOmkoMjgxMCwxLFwiRXhwZWN0ZWRfMV9hcmd1bWVudF9idXRfZ290XzBfbmV3X1Byb21pc2VfbmVlZHNfYV9KU0RvY19oaW50X3RvX3Byb2R1Y2VfYV9yZXNvbHZlX3RoYXRfY2FuX2JlX2NhbGxlZF8yODEwXCIsXCJFeHBlY3RlZCAxIGFyZ3VtZW50LCBidXQgZ290IDAuICduZXcgUHJvbWlzZSgpJyBuZWVkcyBhIEpTRG9jIGhpbnQgdG8gcHJvZHVjZSBhICdyZXNvbHZlJyB0aGF0IGNhbiBiZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXCIpLEluaXRpYWxpemVyX2Zvcl9wcm9wZXJ0eV8wOmkoMjgxMSwxLFwiSW5pdGlhbGl6ZXJfZm9yX3Byb3BlcnR5XzBfMjgxMVwiLFwiSW5pdGlhbGl6ZXIgZm9yIHByb3BlcnR5ICd7MH0nXCIpLFByb3BlcnR5XzBfZG9lc19ub3RfZXhpc3Rfb25fdHlwZV8xX1RyeV9jaGFuZ2luZ190aGVfbGliX2NvbXBpbGVyX29wdGlvbl90b19pbmNsdWRlX2RvbTppKDI4MTIsMSxcIlByb3BlcnR5XzBfZG9lc19ub3RfZXhpc3Rfb25fdHlwZV8xX1RyeV9jaGFuZ2luZ190aGVfbGliX2NvbXBpbGVyX29wdGlvbl90b19pbmNsdWRlX2RvbV8yODEyXCIsXCJQcm9wZXJ0eSAnezB9JyBkb2VzIG5vdCBleGlzdCBvbiB0eXBlICd7MX0nLiBUcnkgY2hhbmdpbmcgdGhlICdsaWInIGNvbXBpbGVyIG9wdGlvbiB0byBpbmNsdWRlICdkb20nLlwiKSxDbGFzc19kZWNsYXJhdGlvbl9jYW5ub3RfaW1wbGVtZW50X292ZXJsb2FkX2xpc3RfZm9yXzA6aSgyODEzLDEsXCJDbGFzc19kZWNsYXJhdGlvbl9jYW5ub3RfaW1wbGVtZW50X292ZXJsb2FkX2xpc3RfZm9yXzBfMjgxM1wiLFwiQ2xhc3MgZGVjbGFyYXRpb24gY2Fubm90IGltcGxlbWVudCBvdmVybG9hZCBsaXN0IGZvciAnezB9Jy5cIiksRnVuY3Rpb25fd2l0aF9ib2RpZXNfY2FuX29ubHlfbWVyZ2Vfd2l0aF9jbGFzc2VzX3RoYXRfYXJlX2FtYmllbnQ6aSgyODE0LDEsXCJGdW5jdGlvbl93aXRoX2JvZGllc19jYW5fb25seV9tZXJnZV93aXRoX2NsYXNzZXNfdGhhdF9hcmVfYW1iaWVudF8yODE0XCIsXCJGdW5jdGlvbiB3aXRoIGJvZGllcyBjYW4gb25seSBtZXJnZSB3aXRoIGNsYXNzZXMgdGhhdCBhcmUgYW1iaWVudC5cIiksYXJndW1lbnRzX2Nhbm5vdF9iZV9yZWZlcmVuY2VkX2luX3Byb3BlcnR5X2luaXRpYWxpemVyczppKDI4MTUsMSxcImFyZ3VtZW50c19jYW5ub3RfYmVfcmVmZXJlbmNlZF9pbl9wcm9wZXJ0eV9pbml0aWFsaXplcnNfMjgxNVwiLFwiJ2FyZ3VtZW50cycgY2Fubm90IGJlIHJlZmVyZW5jZWQgaW4gcHJvcGVydHkgaW5pdGlhbGl6ZXJzLlwiKSxDYW5ub3RfdXNlX3RoaXNfaW5fYV9zdGF0aWNfcHJvcGVydHlfaW5pdGlhbGl6ZXJfb2ZfYV9kZWNvcmF0ZWRfY2xhc3M6aSgyODE2LDEsXCJDYW5ub3RfdXNlX3RoaXNfaW5fYV9zdGF0aWNfcHJvcGVydHlfaW5pdGlhbGl6ZXJfb2ZfYV9kZWNvcmF0ZWRfY2xhc3NfMjgxNlwiLFwiQ2Fubm90IHVzZSAndGhpcycgaW4gYSBzdGF0aWMgcHJvcGVydHkgaW5pdGlhbGl6ZXIgb2YgYSBkZWNvcmF0ZWQgY2xhc3MuXCIpLFByb3BlcnR5XzBfaGFzX25vX2luaXRpYWxpemVyX2FuZF9pc19ub3RfZGVmaW5pdGVseV9hc3NpZ25lZF9pbl9hX2NsYXNzX3N0YXRpY19ibG9jazppKDI4MTcsMSxcIlByb3BlcnR5XzBfaGFzX25vX2luaXRpYWxpemVyX2FuZF9pc19ub3RfZGVmaW5pdGVseV9hc3NpZ25lZF9pbl9hX2NsYXNzX3N0YXRpY19ibG9ja18yODE3XCIsXCJQcm9wZXJ0eSAnezB9JyBoYXMgbm8gaW5pdGlhbGl6ZXIgYW5kIGlzIG5vdCBkZWZpbml0ZWx5IGFzc2lnbmVkIGluIGEgY2xhc3Mgc3RhdGljIGJsb2NrLlwiKSxEdXBsaWNhdGVfaWRlbnRpZmllcl8wX0NvbXBpbGVyX3Jlc2VydmVzX25hbWVfMV93aGVuX2VtaXR0aW5nX3N1cGVyX3JlZmVyZW5jZXNfaW5fc3RhdGljX2luaXRpYWxpemVyczppKDI4MTgsMSxcIkR1cGxpY2F0ZV9pZGVudGlmaWVyXzBfQ29tcGlsZXJfcmVzZXJ2ZXNfbmFtZV8xX3doZW5fZW1pdHRpbmdfc3VwZXJfcmVmZXJlbmNlc19pbl9zdGF0aWNfaW5pdGlhbGl6ZXJfMjgxOFwiLFwiRHVwbGljYXRlIGlkZW50aWZpZXIgJ3swfScuIENvbXBpbGVyIHJlc2VydmVzIG5hbWUgJ3sxfScgd2hlbiBlbWl0dGluZyAnc3VwZXInIHJlZmVyZW5jZXMgaW4gc3RhdGljIGluaXRpYWxpemVycy5cIiksTmFtZXNwYWNlX25hbWVfY2Fubm90X2JlXzA6aSgyODE5LDEsXCJOYW1lc3BhY2VfbmFtZV9jYW5ub3RfYmVfMF8yODE5XCIsXCJOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgJ3swfScuXCIpLFR5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfRGlkX3lvdV9tZWFuXzI6aSgyODIwLDEsXCJUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX0RpZF95b3VfbWVhbl8yXzI4MjBcIixcIlR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnezF9Jy4gRGlkIHlvdSBtZWFuICd7Mn0nP1wiKSxJbXBvcnRfYXNzZXJ0aW9uc19hcmVfb25seV9zdXBwb3J0ZWRfd2hlbl90aGVfbW9kdWxlX29wdGlvbl9pc19zZXRfdG9fZXNuZXh0X29yX25vZGVuZXh0OmkoMjgyMSwxLFwiSW1wb3J0X2Fzc2VydGlvbnNfYXJlX29ubHlfc3VwcG9ydGVkX3doZW5fdGhlX21vZHVsZV9vcHRpb25faXNfc2V0X3RvX2VzbmV4dF9vcl9ub2RlbmV4dF8yODIxXCIsXCJJbXBvcnQgYXNzZXJ0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgd2hlbiB0aGUgJy0tbW9kdWxlJyBvcHRpb24gaXMgc2V0IHRvICdlc25leHQnIG9yICdub2RlbmV4dCcuXCIpLEltcG9ydF9hc3NlcnRpb25zX2Nhbm5vdF9iZV91c2VkX3dpdGhfdHlwZV9vbmx5X2ltcG9ydHNfb3JfZXhwb3J0czppKDI4MjIsMSxcIkltcG9ydF9hc3NlcnRpb25zX2Nhbm5vdF9iZV91c2VkX3dpdGhfdHlwZV9vbmx5X2ltcG9ydHNfb3JfZXhwb3J0c18yODIyXCIsXCJJbXBvcnQgYXNzZXJ0aW9ucyBjYW5ub3QgYmUgdXNlZCB3aXRoIHR5cGUtb25seSBpbXBvcnRzIG9yIGV4cG9ydHMuXCIpLENhbm5vdF9maW5kX25hbWVzcGFjZV8wX0RpZF95b3VfbWVhbl8xOmkoMjgzMywxLFwiQ2Fubm90X2ZpbmRfbmFtZXNwYWNlXzBfRGlkX3lvdV9tZWFuXzFfMjgzM1wiLFwiQ2Fubm90IGZpbmQgbmFtZXNwYWNlICd7MH0nLiBEaWQgeW91IG1lYW4gJ3sxfSc/XCIpLFJlbGF0aXZlX2ltcG9ydF9wYXRoc19uZWVkX2V4cGxpY2l0X2ZpbGVfZXh0ZW5zaW9uc19pbl9FY21hU2NyaXB0X2ltcG9ydHNfd2hlbl9tb2R1bGVSZXNvbHV0aW9uX2lzX25vZGUxNl9vcl9ub2RlbmV4dF9Db25zaWRlcl9hZGRpbmdfYW5fZXh0ZW5zaW9uX3RvX3RoZV9pbXBvcnRfcGF0aDppKDI4MzQsMSxcIlJlbGF0aXZlX2ltcG9ydF9wYXRoc19uZWVkX2V4cGxpY2l0X2ZpbGVfZXh0ZW5zaW9uc19pbl9FY21hU2NyaXB0X2ltcG9ydHNfd2hlbl9tb2R1bGVSZXNvbHV0aW9uX2lzX25fMjgzNFwiLFwiUmVsYXRpdmUgaW1wb3J0IHBhdGhzIG5lZWQgZXhwbGljaXQgZmlsZSBleHRlbnNpb25zIGluIEVjbWFTY3JpcHQgaW1wb3J0cyB3aGVuICctLW1vZHVsZVJlc29sdXRpb24nIGlzICdub2RlMTYnIG9yICdub2RlbmV4dCcuIENvbnNpZGVyIGFkZGluZyBhbiBleHRlbnNpb24gdG8gdGhlIGltcG9ydCBwYXRoLlwiKSxSZWxhdGl2ZV9pbXBvcnRfcGF0aHNfbmVlZF9leHBsaWNpdF9maWxlX2V4dGVuc2lvbnNfaW5fRWNtYVNjcmlwdF9pbXBvcnRzX3doZW5fbW9kdWxlUmVzb2x1dGlvbl9pc19ub2RlMTZfb3Jfbm9kZW5leHRfRGlkX3lvdV9tZWFuXzA6aSgyODM1LDEsXCJSZWxhdGl2ZV9pbXBvcnRfcGF0aHNfbmVlZF9leHBsaWNpdF9maWxlX2V4dGVuc2lvbnNfaW5fRWNtYVNjcmlwdF9pbXBvcnRzX3doZW5fbW9kdWxlUmVzb2x1dGlvbl9pc19uXzI4MzVcIixcIlJlbGF0aXZlIGltcG9ydCBwYXRocyBuZWVkIGV4cGxpY2l0IGZpbGUgZXh0ZW5zaW9ucyBpbiBFY21hU2NyaXB0IGltcG9ydHMgd2hlbiAnLS1tb2R1bGVSZXNvbHV0aW9uJyBpcyAnbm9kZTE2JyBvciAnbm9kZW5leHQnLiBEaWQgeW91IG1lYW4gJ3swfSc/XCIpLEltcG9ydF9hc3NlcnRpb25zX2FyZV9ub3RfYWxsb3dlZF9vbl9zdGF0ZW1lbnRzX3RoYXRfdHJhbnNwaWxlX3RvX2NvbW1vbmpzX3JlcXVpcmVfY2FsbHM6aSgyODM2LDEsXCJJbXBvcnRfYXNzZXJ0aW9uc19hcmVfbm90X2FsbG93ZWRfb25fc3RhdGVtZW50c190aGF0X3RyYW5zcGlsZV90b19jb21tb25qc19yZXF1aXJlX2NhbGxzXzI4MzZcIixcIkltcG9ydCBhc3NlcnRpb25zIGFyZSBub3QgYWxsb3dlZCBvbiBzdGF0ZW1lbnRzIHRoYXQgdHJhbnNwaWxlIHRvIGNvbW1vbmpzICdyZXF1aXJlJyBjYWxscy5cIiksSW1wb3J0X2Fzc2VydGlvbl92YWx1ZXNfbXVzdF9iZV9zdHJpbmdfbGl0ZXJhbF9leHByZXNzaW9uczppKDI4MzcsMSxcIkltcG9ydF9hc3NlcnRpb25fdmFsdWVzX211c3RfYmVfc3RyaW5nX2xpdGVyYWxfZXhwcmVzc2lvbnNfMjgzN1wiLFwiSW1wb3J0IGFzc2VydGlvbiB2YWx1ZXMgbXVzdCBiZSBzdHJpbmcgbGl0ZXJhbCBleHByZXNzaW9ucy5cIiksQWxsX2RlY2xhcmF0aW9uc19vZl8wX211c3RfaGF2ZV9pZGVudGljYWxfY29uc3RyYWludHM6aSgyODM4LDEsXCJBbGxfZGVjbGFyYXRpb25zX29mXzBfbXVzdF9oYXZlX2lkZW50aWNhbF9jb25zdHJhaW50c18yODM4XCIsXCJBbGwgZGVjbGFyYXRpb25zIG9mICd7MH0nIG11c3QgaGF2ZSBpZGVudGljYWwgY29uc3RyYWludHMuXCIpLFRoaXNfY29uZGl0aW9uX3dpbGxfYWx3YXlzX3JldHVybl8wX3NpbmNlX0phdmFTY3JpcHRfY29tcGFyZXNfb2JqZWN0c19ieV9yZWZlcmVuY2Vfbm90X3ZhbHVlOmkoMjgzOSwxLFwiVGhpc19jb25kaXRpb25fd2lsbF9hbHdheXNfcmV0dXJuXzBfc2luY2VfSmF2YVNjcmlwdF9jb21wYXJlc19vYmplY3RzX2J5X3JlZmVyZW5jZV9ub3RfdmFsdWVfMjgzOVwiLFwiVGhpcyBjb25kaXRpb24gd2lsbCBhbHdheXMgcmV0dXJuICd7MH0nIHNpbmNlIEphdmFTY3JpcHQgY29tcGFyZXMgb2JqZWN0cyBieSByZWZlcmVuY2UsIG5vdCB2YWx1ZS5cIiksQW5faW50ZXJmYWNlX2Nhbm5vdF9leHRlbmRfYV9wcmltaXRpdmVfdHlwZV9saWtlXzBfYW5faW50ZXJmYWNlX2Nhbl9vbmx5X2V4dGVuZF9uYW1lZF90eXBlc19hbmRfY2xhc3NlczppKDI4NDAsMSxcIkFuX2ludGVyZmFjZV9jYW5ub3RfZXh0ZW5kX2FfcHJpbWl0aXZlX3R5cGVfbGlrZV8wX2FuX2ludGVyZmFjZV9jYW5fb25seV9leHRlbmRfbmFtZWRfdHlwZXNfYW5kX2NsYXNfMjg0MFwiLFwiQW4gaW50ZXJmYWNlIGNhbm5vdCBleHRlbmQgYSBwcmltaXRpdmUgdHlwZSBsaWtlICd7MH0nOyBhbiBpbnRlcmZhY2UgY2FuIG9ubHkgZXh0ZW5kIG5hbWVkIHR5cGVzIGFuZCBjbGFzc2VzXCIpLFRoZV90eXBlX29mX3RoaXNfZXhwcmVzc2lvbl9jYW5ub3RfYmVfbmFtZWRfd2l0aG91dF9hX3Jlc29sdXRpb25fbW9kZV9hc3NlcnRpb25fd2hpY2hfaXNfYW5fdW5zdGFibGVfZmVhdHVyZV9Vc2VfbmlnaHRseV9UeXBlU2NyaXB0X3RvX3NpbGVuY2VfdGhpc19lcnJvcl9UcnlfdXBkYXRpbmdfd2l0aF9ucG1faW5zdGFsbF9EX3R5cGVzY3JpcHRfbmV4dDppKDI4NDEsMSxcIlRoZV90eXBlX29mX3RoaXNfZXhwcmVzc2lvbl9jYW5ub3RfYmVfbmFtZWRfd2l0aG91dF9hX3Jlc29sdXRpb25fbW9kZV9hc3NlcnRpb25fd2hpY2hfaXNfYW5fdW5zdGFibGVfMjg0MVwiLFwiVGhlIHR5cGUgb2YgdGhpcyBleHByZXNzaW9uIGNhbm5vdCBiZSBuYW1lZCB3aXRob3V0IGEgJ3Jlc29sdXRpb24tbW9kZScgYXNzZXJ0aW9uLCB3aGljaCBpcyBhbiB1bnN0YWJsZSBmZWF0dXJlLiBVc2UgbmlnaHRseSBUeXBlU2NyaXB0IHRvIHNpbGVuY2UgdGhpcyBlcnJvci4gVHJ5IHVwZGF0aW5nIHdpdGggJ25wbSBpbnN0YWxsIC1EIHR5cGVzY3JpcHRAbmV4dCcuXCIpLF8wX2lzX2FuX3VudXNlZF9yZW5hbWluZ19vZl8xX0RpZF95b3VfaW50ZW5kX3RvX3VzZV9pdF9hc19hX3R5cGVfYW5ub3RhdGlvbjppKDI4NDIsMSxcIl8wX2lzX2FuX3VudXNlZF9yZW5hbWluZ19vZl8xX0RpZF95b3VfaW50ZW5kX3RvX3VzZV9pdF9hc19hX3R5cGVfYW5ub3RhdGlvbl8yODQyXCIsXCInezB9JyBpcyBhbiB1bnVzZWQgcmVuYW1pbmcgb2YgJ3sxfScuIERpZCB5b3UgaW50ZW5kIHRvIHVzZSBpdCBhcyBhIHR5cGUgYW5ub3RhdGlvbj9cIiksV2VfY2FuX29ubHlfd3JpdGVfYV90eXBlX2Zvcl8wX2J5X2FkZGluZ19hX3R5cGVfZm9yX3RoZV9lbnRpcmVfcGFyYW1ldGVyX2hlcmU6aSgyODQzLDEsXCJXZV9jYW5fb25seV93cml0ZV9hX3R5cGVfZm9yXzBfYnlfYWRkaW5nX2FfdHlwZV9mb3JfdGhlX2VudGlyZV9wYXJhbWV0ZXJfaGVyZV8yODQzXCIsXCJXZSBjYW4gb25seSB3cml0ZSBhIHR5cGUgZm9yICd7MH0nIGJ5IGFkZGluZyBhIHR5cGUgZm9yIHRoZSBlbnRpcmUgcGFyYW1ldGVyIGhlcmUuXCIpLFR5cGVfb2ZfaW5zdGFuY2VfbWVtYmVyX3ZhcmlhYmxlXzBfY2Fubm90X3JlZmVyZW5jZV9pZGVudGlmaWVyXzFfZGVjbGFyZWRfaW5fdGhlX2NvbnN0cnVjdG9yOmkoMjg0NCwxLFwiVHlwZV9vZl9pbnN0YW5jZV9tZW1iZXJfdmFyaWFibGVfMF9jYW5ub3RfcmVmZXJlbmNlX2lkZW50aWZpZXJfMV9kZWNsYXJlZF9pbl90aGVfY29uc3RydWN0b3JfMjg0NFwiLFwiVHlwZSBvZiBpbnN0YW5jZSBtZW1iZXIgdmFyaWFibGUgJ3swfScgY2Fubm90IHJlZmVyZW5jZSBpZGVudGlmaWVyICd7MX0nIGRlY2xhcmVkIGluIHRoZSBjb25zdHJ1Y3Rvci5cIiksVGhpc19jb25kaXRpb25fd2lsbF9hbHdheXNfcmV0dXJuXzA6aSgyODQ1LDEsXCJUaGlzX2NvbmRpdGlvbl93aWxsX2Fsd2F5c19yZXR1cm5fMF8yODQ1XCIsXCJUaGlzIGNvbmRpdGlvbiB3aWxsIGFsd2F5cyByZXR1cm4gJ3swfScuXCIpLEFfZGVjbGFyYXRpb25fZmlsZV9jYW5ub3RfYmVfaW1wb3J0ZWRfd2l0aG91dF9pbXBvcnRfdHlwZV9EaWRfeW91X21lYW5fdG9faW1wb3J0X2FuX2ltcGxlbWVudGF0aW9uX2ZpbGVfMF9pbnN0ZWFkOmkoMjg0NiwxLFwiQV9kZWNsYXJhdGlvbl9maWxlX2Nhbm5vdF9iZV9pbXBvcnRlZF93aXRob3V0X2ltcG9ydF90eXBlX0RpZF95b3VfbWVhbl90b19pbXBvcnRfYW5faW1wbGVtZW50YXRpb25fZl8yODQ2XCIsXCJBIGRlY2xhcmF0aW9uIGZpbGUgY2Fubm90IGJlIGltcG9ydGVkIHdpdGhvdXQgJ2ltcG9ydCB0eXBlJy4gRGlkIHlvdSBtZWFuIHRvIGltcG9ydCBhbiBpbXBsZW1lbnRhdGlvbiBmaWxlICd7MH0nIGluc3RlYWQ/XCIpLFRoZV9yaWdodF9oYW5kX3NpZGVfb2ZfYW5faW5zdGFuY2VvZl9leHByZXNzaW9uX211c3Rfbm90X2JlX2FuX2luc3RhbnRpYXRpb25fZXhwcmVzc2lvbjppKDI4NDgsMSxcIlRoZV9yaWdodF9oYW5kX3NpZGVfb2ZfYW5faW5zdGFuY2VvZl9leHByZXNzaW9uX211c3Rfbm90X2JlX2FuX2luc3RhbnRpYXRpb25fZXhwcmVzc2lvbl8yODQ4XCIsXCJUaGUgcmlnaHQtaGFuZCBzaWRlIG9mIGFuICdpbnN0YW5jZW9mJyBleHByZXNzaW9uIG11c3Qgbm90IGJlIGFuIGluc3RhbnRpYXRpb24gZXhwcmVzc2lvbi5cIiksVGFyZ2V0X3NpZ25hdHVyZV9wcm92aWRlc190b29fZmV3X2FyZ3VtZW50c19FeHBlY3RlZF8wX29yX21vcmVfYnV0X2dvdF8xOmkoMjg0OSwxLFwiVGFyZ2V0X3NpZ25hdHVyZV9wcm92aWRlc190b29fZmV3X2FyZ3VtZW50c19FeHBlY3RlZF8wX29yX21vcmVfYnV0X2dvdF8xXzI4NDlcIixcIlRhcmdldCBzaWduYXR1cmUgcHJvdmlkZXMgdG9vIGZldyBhcmd1bWVudHMuIEV4cGVjdGVkIHswfSBvciBtb3JlLCBidXQgZ290IHsxfS5cIiksVGhlX2luaXRpYWxpemVyX29mX2FfdXNpbmdfZGVjbGFyYXRpb25fbXVzdF9iZV9laXRoZXJfYW5fb2JqZWN0X3dpdGhfYV9TeW1ib2xfZGlzcG9zZV9tZXRob2Rfb3JfYmVfbnVsbF9vcl91bmRlZmluZWQ6aSgyODUwLDEsXCJUaGVfaW5pdGlhbGl6ZXJfb2ZfYV91c2luZ19kZWNsYXJhdGlvbl9tdXN0X2JlX2VpdGhlcl9hbl9vYmplY3Rfd2l0aF9hX1N5bWJvbF9kaXNwb3NlX21ldGhvZF9vcl9iZV9uXzI4NTBcIixcIlRoZSBpbml0aWFsaXplciBvZiBhICd1c2luZycgZGVjbGFyYXRpb24gbXVzdCBiZSBlaXRoZXIgYW4gb2JqZWN0IHdpdGggYSAnW1N5bWJvbC5kaXNwb3NlXSgpJyBtZXRob2QsIG9yIGJlICdudWxsJyBvciAndW5kZWZpbmVkJy5cIiksVGhlX2luaXRpYWxpemVyX29mX2FuX2F3YWl0X3VzaW5nX2RlY2xhcmF0aW9uX211c3RfYmVfZWl0aGVyX2FuX29iamVjdF93aXRoX2FfU3ltYm9sX2FzeW5jRGlzcG9zZV9vcl9TeW1ib2xfZGlzcG9zZV9tZXRob2Rfb3JfYmVfbnVsbF9vcl91bmRlZmluZWQ6aSgyODUxLDEsXCJUaGVfaW5pdGlhbGl6ZXJfb2ZfYW5fYXdhaXRfdXNpbmdfZGVjbGFyYXRpb25fbXVzdF9iZV9laXRoZXJfYW5fb2JqZWN0X3dpdGhfYV9TeW1ib2xfYXN5bmNEaXNwb3NlX29yXzI4NTFcIixcIlRoZSBpbml0aWFsaXplciBvZiBhbiAnYXdhaXQgdXNpbmcnIGRlY2xhcmF0aW9uIG11c3QgYmUgZWl0aGVyIGFuIG9iamVjdCB3aXRoIGEgJ1tTeW1ib2wuYXN5bmNEaXNwb3NlXSgpJyBvciAnW1N5bWJvbC5kaXNwb3NlXSgpJyBtZXRob2QsIG9yIGJlICdudWxsJyBvciAndW5kZWZpbmVkJy5cIiksYXdhaXRfdXNpbmdfc3RhdGVtZW50c19hcmVfb25seV9hbGxvd2VkX3dpdGhpbl9hc3luY19mdW5jdGlvbnNfYW5kX2F0X3RoZV90b3BfbGV2ZWxzX29mX21vZHVsZXM6aSgyODUyLDEsXCJhd2FpdF91c2luZ19zdGF0ZW1lbnRzX2FyZV9vbmx5X2FsbG93ZWRfd2l0aGluX2FzeW5jX2Z1bmN0aW9uc19hbmRfYXRfdGhlX3RvcF9sZXZlbHNfb2ZfbW9kdWxlc18yODUyXCIsXCInYXdhaXQgdXNpbmcnIHN0YXRlbWVudHMgYXJlIG9ubHkgYWxsb3dlZCB3aXRoaW4gYXN5bmMgZnVuY3Rpb25zIGFuZCBhdCB0aGUgdG9wIGxldmVscyBvZiBtb2R1bGVzLlwiKSxhd2FpdF91c2luZ19zdGF0ZW1lbnRzX2FyZV9vbmx5X2FsbG93ZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX2ZpbGVfd2hlbl90aGF0X2ZpbGVfaXNfYV9tb2R1bGVfYnV0X3RoaXNfZmlsZV9oYXNfbm9faW1wb3J0c19vcl9leHBvcnRzX0NvbnNpZGVyX2FkZGluZ19hbl9lbXB0eV9leHBvcnRfdG9fbWFrZV90aGlzX2ZpbGVfYV9tb2R1bGU6aSgyODUzLDEsXCJhd2FpdF91c2luZ19zdGF0ZW1lbnRzX2FyZV9vbmx5X2FsbG93ZWRfYXRfdGhlX3RvcF9sZXZlbF9vZl9hX2ZpbGVfd2hlbl90aGF0X2ZpbGVfaXNfYV9tb2R1bGVfYnV0X3RoXzI4NTNcIixcIidhd2FpdCB1c2luZycgc3RhdGVtZW50cyBhcmUgb25seSBhbGxvd2VkIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBmaWxlIHdoZW4gdGhhdCBmaWxlIGlzIGEgbW9kdWxlLCBidXQgdGhpcyBmaWxlIGhhcyBubyBpbXBvcnRzIG9yIGV4cG9ydHMuIENvbnNpZGVyIGFkZGluZyBhbiBlbXB0eSAnZXhwb3J0IHt9JyB0byBtYWtlIHRoaXMgZmlsZSBhIG1vZHVsZS5cIiksVG9wX2xldmVsX2F3YWl0X3VzaW5nX3N0YXRlbWVudHNfYXJlX29ubHlfYWxsb3dlZF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX3NldF90b19lczIwMjJfZXNuZXh0X3N5c3RlbV9ub2RlMTZfb3Jfbm9kZW5leHRfYW5kX3RoZV90YXJnZXRfb3B0aW9uX2lzX3NldF90b19lczIwMTdfb3JfaGlnaGVyOmkoMjg1NCwxLFwiVG9wX2xldmVsX2F3YWl0X3VzaW5nX3N0YXRlbWVudHNfYXJlX29ubHlfYWxsb3dlZF93aGVuX3RoZV9tb2R1bGVfb3B0aW9uX2lzX3NldF90b19lczIwMjJfZXNuZXh0X3N5c18yODU0XCIsXCJUb3AtbGV2ZWwgJ2F3YWl0IHVzaW5nJyBzdGF0ZW1lbnRzIGFyZSBvbmx5IGFsbG93ZWQgd2hlbiB0aGUgJ21vZHVsZScgb3B0aW9uIGlzIHNldCB0byAnZXMyMDIyJywgJ2VzbmV4dCcsICdzeXN0ZW0nLCAnbm9kZTE2Jywgb3IgJ25vZGVuZXh0JywgYW5kIHRoZSAndGFyZ2V0JyBvcHRpb24gaXMgc2V0IHRvICdlczIwMTcnIG9yIGhpZ2hlci5cIiksSW1wb3J0X2RlY2xhcmF0aW9uXzBfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0ZTMsMSxcIkltcG9ydF9kZWNsYXJhdGlvbl8wX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwMDBcIixcIkltcG9ydCBkZWNsYXJhdGlvbiAnezB9JyBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFR5cGVfcGFyYW1ldGVyXzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAwMiwxLFwiVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAwMlwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAwNCwxLFwiVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwMDRcIixcIlR5cGUgcGFyYW1ldGVyICd7MH0nIG9mIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxUeXBlX3BhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDA2LDEsXCJUeXBlX3BhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAwNlwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgY29uc3RydWN0b3Igc2lnbmF0dXJlIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFR5cGVfcGFyYW1ldGVyXzBfb2ZfY2FsbF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAwOCwxLFwiVHlwZV9wYXJhbWV0ZXJfMF9vZl9jYWxsX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAwOFwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgY2FsbCBzaWduYXR1cmUgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksVHlwZV9wYXJhbWV0ZXJfMF9vZl9wdWJsaWNfc3RhdGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwMTAsMSxcIlR5cGVfcGFyYW1ldGVyXzBfb2ZfcHVibGljX3N0YXRpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAxMFwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgcHVibGljIHN0YXRpYyBtZXRob2QgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxUeXBlX3BhcmFtZXRlcl8wX29mX3B1YmxpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDEyLDEsXCJUeXBlX3BhcmFtZXRlcl8wX29mX3B1YmxpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAxMlwiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgcHVibGljIG1ldGhvZCBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFR5cGVfcGFyYW1ldGVyXzBfb2ZfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwMTQsMSxcIlR5cGVfcGFyYW1ldGVyXzBfb2ZfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDE0XCIsXCJUeXBlIHBhcmFtZXRlciAnezB9JyBvZiBtZXRob2QgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9mdW5jdGlvbl9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDE2LDEsXCJUeXBlX3BhcmFtZXRlcl8wX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDE2XCIsXCJUeXBlIHBhcmFtZXRlciAnezB9JyBvZiBleHBvcnRlZCBmdW5jdGlvbiBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxJbXBsZW1lbnRzX2NsYXVzZV9vZl9leHBvcnRlZF9jbGFzc18wX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwMTksMSxcIkltcGxlbWVudHNfY2xhdXNlX29mX2V4cG9ydGVkX2NsYXNzXzBfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwMTlcIixcIkltcGxlbWVudHMgY2xhdXNlIG9mIGV4cG9ydGVkIGNsYXNzICd7MH0nIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLGV4dGVuZHNfY2xhdXNlX29mX2V4cG9ydGVkX2NsYXNzXzBfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAyMCwxLFwiZXh0ZW5kc19jbGF1c2Vfb2ZfZXhwb3J0ZWRfY2xhc3NfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAyMFwiLFwiJ2V4dGVuZHMnIGNsYXVzZSBvZiBleHBvcnRlZCBjbGFzcyAnezB9JyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxleHRlbmRzX2NsYXVzZV9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzA6aSg0MDIxLDEsXCJleHRlbmRzX2NsYXVzZV9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzBfNDAyMVwiLFwiJ2V4dGVuZHMnIGNsYXVzZSBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MH0nLlwiKSxleHRlbmRzX2NsYXVzZV9vZl9leHBvcnRlZF9pbnRlcmZhY2VfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDIyLDEsXCJleHRlbmRzX2NsYXVzZV9vZl9leHBvcnRlZF9pbnRlcmZhY2VfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAyMlwiLFwiJ2V4dGVuZHMnIGNsYXVzZSBvZiBleHBvcnRlZCBpbnRlcmZhY2UgJ3swfScgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksRXhwb3J0ZWRfdmFyaWFibGVfMF9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0X2Nhbm5vdF9iZV9uYW1lZDppKDQwMjMsMSxcIkV4cG9ydGVkX3ZhcmlhYmxlXzBfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWRfNDAyM1wiLFwiRXhwb3J0ZWQgdmFyaWFibGUgJ3swfScgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezJ9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLEV4cG9ydGVkX3ZhcmlhYmxlXzBfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDI0LDEsXCJFeHBvcnRlZF92YXJpYWJsZV8wX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yXzQwMjRcIixcIkV4cG9ydGVkIHZhcmlhYmxlICd7MH0nIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLEV4cG9ydGVkX3ZhcmlhYmxlXzBfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAyNSwxLFwiRXhwb3J0ZWRfdmFyaWFibGVfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAyNVwiLFwiRXhwb3J0ZWQgdmFyaWFibGUgJ3swfScgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUHVibGljX3N0YXRpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X2JlX25hbWVkOmkoNDAyNiwxLFwiUHVibGljX3N0YXRpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X180MDI2XCIsXCJQdWJsaWMgc3RhdGljIHByb3BlcnR5ICd7MH0nIG9mIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gZXh0ZXJuYWwgbW9kdWxlIHsyfSBidXQgY2Fubm90IGJlIG5hbWVkLlwiKSxQdWJsaWNfc3RhdGljX3Byb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDI3LDEsXCJQdWJsaWNfc3RhdGljX3Byb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDAyN1wiLFwiUHVibGljIHN0YXRpYyBwcm9wZXJ0eSAnezB9JyBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQdWJsaWNfc3RhdGljX3Byb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAyOCwxLFwiUHVibGljX3N0YXRpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDI4XCIsXCJQdWJsaWMgc3RhdGljIHByb3BlcnR5ICd7MH0nIG9mIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFB1YmxpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X2JlX25hbWVkOmkoNDAyOSwxLFwiUHVibGljX3Byb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZV80MDI5XCIsXCJQdWJsaWMgcHJvcGVydHkgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezJ9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFB1YmxpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDAzMCwxLFwiUHVibGljX3Byb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDAzMFwiLFwiUHVibGljIHByb3BlcnR5ICd7MH0nIG9mIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFB1YmxpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwMzEsMSxcIlB1YmxpY19wcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDMxXCIsXCJQdWJsaWMgcHJvcGVydHkgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUHJvcGVydHlfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDMyLDEsXCJQcm9wZXJ0eV8wX29mX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMl80MDMyXCIsXCJQcm9wZXJ0eSAnezB9JyBvZiBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezJ9Jy5cIiksUHJvcGVydHlfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDAzMywxLFwiUHJvcGVydHlfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwMzNcIixcIlByb3BlcnR5ICd7MH0nIG9mIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxQYXJhbWV0ZXJfdHlwZV9vZl9wdWJsaWNfc3RhdGljX3NldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDM0LDEsXCJQYXJhbWV0ZXJfdHlwZV9vZl9wdWJsaWNfc3RhdGljX3NldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kXzQwMzRcIixcIlBhcmFtZXRlciB0eXBlIG9mIHB1YmxpYyBzdGF0aWMgc2V0dGVyICd7MH0nIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezJ9Jy5cIiksUGFyYW1ldGVyX3R5cGVfb2ZfcHVibGljX3N0YXRpY19zZXR0ZXJfMF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwMzUsMSxcIlBhcmFtZXRlcl90eXBlX29mX3B1YmxpY19zdGF0aWNfc2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAzNVwiLFwiUGFyYW1ldGVyIHR5cGUgb2YgcHVibGljIHN0YXRpYyBzZXR0ZXIgJ3swfScgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxQYXJhbWV0ZXJfdHlwZV9vZl9wdWJsaWNfc2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMjppKDQwMzYsMSxcIlBhcmFtZXRlcl90eXBlX29mX3B1YmxpY19zZXR0ZXJfMF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yXzQwMzZcIixcIlBhcmFtZXRlciB0eXBlIG9mIHB1YmxpYyBzZXR0ZXIgJ3swfScgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQYXJhbWV0ZXJfdHlwZV9vZl9wdWJsaWNfc2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDM3LDEsXCJQYXJhbWV0ZXJfdHlwZV9vZl9wdWJsaWNfc2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDAzN1wiLFwiUGFyYW1ldGVyIHR5cGUgb2YgcHVibGljIHNldHRlciAnezB9JyBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfZ2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0X2Nhbm5vdF9iZV9uYW1lZDppKDQwMzgsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfZ2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxfNDAzOFwiLFwiUmV0dXJuIHR5cGUgb2YgcHVibGljIHN0YXRpYyBnZXR0ZXIgJ3swfScgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIGV4dGVybmFsIG1vZHVsZSB7Mn0gYnV0IGNhbm5vdCBiZSBuYW1lZC5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX3N0YXRpY19nZXR0ZXJfMF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDAzOSwxLFwiUmV0dXJuX3R5cGVfb2ZfcHVibGljX3N0YXRpY19nZXR0ZXJfMF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV80MDM5XCIsXCJSZXR1cm4gdHlwZSBvZiBwdWJsaWMgc3RhdGljIGdldHRlciAnezB9JyBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfZ2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDQwLDEsXCJSZXR1cm5fdHlwZV9vZl9wdWJsaWNfc3RhdGljX2dldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwNDBcIixcIlJldHVybiB0eXBlIG9mIHB1YmxpYyBzdGF0aWMgZ2V0dGVyICd7MH0nIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX2dldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWQ6aSg0MDQxLDEsXCJSZXR1cm5fdHlwZV9vZl9wdWJsaWNfZ2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0XzQwNDFcIixcIlJldHVybiB0eXBlIG9mIHB1YmxpYyBnZXR0ZXIgJ3swfScgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIGV4dGVybmFsIG1vZHVsZSB7Mn0gYnV0IGNhbm5vdCBiZSBuYW1lZC5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX2dldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDQyLDEsXCJSZXR1cm5fdHlwZV9vZl9wdWJsaWNfZ2V0dGVyXzBfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMl80MDQyXCIsXCJSZXR1cm4gdHlwZSBvZiBwdWJsaWMgZ2V0dGVyICd7MH0nIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezJ9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX2dldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDA0MywxLFwiUmV0dXJuX3R5cGVfb2ZfcHVibGljX2dldHRlcl8wX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwNDNcIixcIlJldHVybiB0eXBlIG9mIHB1YmxpYyBnZXR0ZXIgJ3swfScgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxSZXR1cm5fdHlwZV9vZl9jb25zdHJ1Y3Rvcl9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX3ByaXZhdGVfbW9kdWxlXzE6aSg0MDQ0LDEsXCJSZXR1cm5fdHlwZV9vZl9jb25zdHJ1Y3Rvcl9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX3ByaXZhdGVfbW9kXzQwNDRcIixcIlJldHVybiB0eXBlIG9mIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBmcm9tIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezB9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7MX0nLlwiKSxSZXR1cm5fdHlwZV9vZl9jb25zdHJ1Y3Rvcl9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wOmkoNDA0NSwxLFwiUmV0dXJuX3R5cGVfb2ZfY29uc3RydWN0b3Jfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMF80MDQ1XCIsXCJSZXR1cm4gdHlwZSBvZiBjb25zdHJ1Y3RvciBzaWduYXR1cmUgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezB9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfY2FsbF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX3ByaXZhdGVfbW9kdWxlXzE6aSg0MDQ2LDEsXCJSZXR1cm5fdHlwZV9vZl9jYWxsX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMV80MDQ2XCIsXCJSZXR1cm4gdHlwZSBvZiBjYWxsIHNpZ25hdHVyZSBmcm9tIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezB9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7MX0nLlwiKSxSZXR1cm5fdHlwZV9vZl9jYWxsX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzA6aSg0MDQ3LDEsXCJSZXR1cm5fdHlwZV9vZl9jYWxsX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzBfNDA0N1wiLFwiUmV0dXJuIHR5cGUgb2YgY2FsbCBzaWduYXR1cmUgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezB9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfaW5kZXhfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9wcml2YXRlX21vZHVsZV8xOmkoNDA0OCwxLFwiUmV0dXJuX3R5cGVfb2ZfaW5kZXhfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9wcml2YXRlX21vZHVsZV8xXzQwNDhcIixcIlJldHVybiB0eXBlIG9mIGluZGV4IHNpZ25hdHVyZSBmcm9tIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezB9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7MX0nLlwiKSxSZXR1cm5fdHlwZV9vZl9pbmRleF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wOmkoNDA0OSwxLFwiUmV0dXJuX3R5cGVfb2ZfaW5kZXhfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMF80MDQ5XCIsXCJSZXR1cm4gdHlwZSBvZiBpbmRleCBzaWduYXR1cmUgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezB9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX3N0YXRpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzFfYnV0X2Nhbm5vdF9iZV9uYW1lZDppKDQwNTAsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX2V4dGVybmFsX21vZHVsZV9fNDA1MFwiLFwiUmV0dXJuIHR5cGUgb2YgcHVibGljIHN0YXRpYyBtZXRob2QgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezB9JyBmcm9tIGV4dGVybmFsIG1vZHVsZSB7MX0gYnV0IGNhbm5vdCBiZSBuYW1lZC5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX3N0YXRpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMTppKDQwNTEsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX3ByaXZhdGVfbW9kdWxlXzFfNDA1MVwiLFwiUmV0dXJuIHR5cGUgb2YgcHVibGljIHN0YXRpYyBtZXRob2QgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezB9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7MX0nLlwiKSxSZXR1cm5fdHlwZV9vZl9wdWJsaWNfc3RhdGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMDppKDQwNTIsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wXzQwNTJcIixcIlJldHVybiB0eXBlIG9mIHB1YmxpYyBzdGF0aWMgbWV0aG9kIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezB9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9leHRlcm5hbF9tb2R1bGVfMV9idXRfY2Fubm90X2JlX25hbWVkOmkoNDA1MywxLFwiUmV0dXJuX3R5cGVfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9leHRlcm5hbF9tb2R1bGVfMV9idXRfY180MDUzXCIsXCJSZXR1cm4gdHlwZSBvZiBwdWJsaWMgbWV0aG9kIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3swfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezF9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFJldHVybl90eXBlX29mX3B1YmxpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMTppKDQwNTQsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMV80MDU0XCIsXCJSZXR1cm4gdHlwZSBvZiBwdWJsaWMgbWV0aG9kIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3swfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezF9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMDppKDQwNTUsMSxcIlJldHVybl90eXBlX29mX3B1YmxpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzBfNDA1NVwiLFwiUmV0dXJuIHR5cGUgb2YgcHVibGljIG1ldGhvZCBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3swfScuXCIpLFJldHVybl90eXBlX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMTppKDQwNTYsMSxcIlJldHVybl90eXBlX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8wX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMV80MDU2XCIsXCJSZXR1cm4gdHlwZSBvZiBtZXRob2QgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3swfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezF9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMDppKDQwNTcsMSxcIlJldHVybl90eXBlX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzBfNDA1N1wiLFwiUmV0dXJuIHR5cGUgb2YgbWV0aG9kIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3swfScuXCIpLFJldHVybl90eXBlX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9leHRlcm5hbF9tb2R1bGVfMV9idXRfY2Fubm90X2JlX25hbWVkOmkoNDA1OCwxLFwiUmV0dXJuX3R5cGVfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX2V4dGVybmFsX21vZHVsZV8xX2J1dF9jYW5ub3RfYmVfbmFtZWRfNDA1OFwiLFwiUmV0dXJuIHR5cGUgb2YgZXhwb3J0ZWQgZnVuY3Rpb24gaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3swfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezF9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFJldHVybl90eXBlX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19uYW1lXzBfZnJvbV9wcml2YXRlX21vZHVsZV8xOmkoNDA1OSwxLFwiUmV0dXJuX3R5cGVfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX25hbWVfMF9mcm9tX3ByaXZhdGVfbW9kdWxlXzFfNDA1OVwiLFwiUmV0dXJuIHR5cGUgb2YgZXhwb3J0ZWQgZnVuY3Rpb24gaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3swfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezF9Jy5cIiksUmV0dXJuX3R5cGVfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wOmkoNDA2MCwxLFwiUmV0dXJuX3R5cGVfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wXzQwNjBcIixcIlJldHVybiB0eXBlIG9mIGV4cG9ydGVkIGZ1bmN0aW9uIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3swfScuXCIpLFBhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWQ6aSg0MDYxLDEsXCJQYXJhbWV0ZXJfMF9vZl9jb25zdHJ1Y3Rvcl9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2FuXzQwNjFcIixcIlBhcmFtZXRlciAnezB9JyBvZiBjb25zdHJ1Y3RvciBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gZXh0ZXJuYWwgbW9kdWxlIHsyfSBidXQgY2Fubm90IGJlIG5hbWVkLlwiKSxQYXJhbWV0ZXJfMF9vZl9jb25zdHJ1Y3Rvcl9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDA2MiwxLFwiUGFyYW1ldGVyXzBfb2ZfY29uc3RydWN0b3JfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMl80MDYyXCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgY29uc3RydWN0b3IgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQYXJhbWV0ZXJfMF9vZl9jb25zdHJ1Y3Rvcl9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwNjMsMSxcIlBhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwNjNcIixcIlBhcmFtZXRlciAnezB9JyBvZiBjb25zdHJ1Y3RvciBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFBhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMjppKDQwNjQsMSxcIlBhcmFtZXRlcl8wX29mX2NvbnN0cnVjdG9yX3NpZ25hdHVyZV9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2RfNDA2NFwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBmcm9tIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQYXJhbWV0ZXJfMF9vZl9jb25zdHJ1Y3Rvcl9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDA2NSwxLFwiUGFyYW1ldGVyXzBfb2ZfY29uc3RydWN0b3Jfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDY1XCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgY29uc3RydWN0b3Igc2lnbmF0dXJlIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFBhcmFtZXRlcl8wX29mX2NhbGxfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDA2NiwxLFwiUGFyYW1ldGVyXzBfb2ZfY2FsbF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDA2NlwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGNhbGwgc2lnbmF0dXJlIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFBhcmFtZXRlcl8wX29mX2NhbGxfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwNjcsMSxcIlBhcmFtZXRlcl8wX29mX2NhbGxfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDY3XCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgY2FsbCBzaWduYXR1cmUgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUGFyYW1ldGVyXzBfb2ZfcHVibGljX3N0YXRpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0X2Nhbm5vdF9iZV9uYW1lZDppKDQwNjgsMSxcIlBhcmFtZXRlcl8wX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV9fNDA2OFwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIHB1YmxpYyBzdGF0aWMgbWV0aG9kIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezJ9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFBhcmFtZXRlcl8wX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDY5LDEsXCJQYXJhbWV0ZXJfMF9vZl9wdWJsaWNfc3RhdGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yXzQwNjlcIixcIlBhcmFtZXRlciAnezB9JyBvZiBwdWJsaWMgc3RhdGljIG1ldGhvZCBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFBhcmFtZXRlcl8wX29mX3B1YmxpY19zdGF0aWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDA3MCwxLFwiUGFyYW1ldGVyXzBfb2ZfcHVibGljX3N0YXRpY19tZXRob2RfZnJvbV9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDA3MFwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIHB1YmxpYyBzdGF0aWMgbWV0aG9kIGZyb20gZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUGFyYW1ldGVyXzBfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X2JlX25hbWVkOmkoNDA3MSwxLFwiUGFyYW1ldGVyXzBfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY180MDcxXCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgcHVibGljIG1ldGhvZCBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gZXh0ZXJuYWwgbW9kdWxlIHsyfSBidXQgY2Fubm90IGJlIG5hbWVkLlwiKSxQYXJhbWV0ZXJfMF9vZl9wdWJsaWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDcyLDEsXCJQYXJhbWV0ZXJfMF9vZl9wdWJsaWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDA3MlwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIHB1YmxpYyBtZXRob2QgZnJvbSBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQYXJhbWV0ZXJfMF9vZl9wdWJsaWNfbWV0aG9kX2Zyb21fZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDA3MywxLFwiUGFyYW1ldGVyXzBfb2ZfcHVibGljX21ldGhvZF9mcm9tX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDczXCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgcHVibGljIG1ldGhvZCBmcm9tIGV4cG9ydGVkIGNsYXNzIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFBhcmFtZXRlcl8wX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMjppKDQwNzQsMSxcIlBhcmFtZXRlcl8wX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMl80MDc0XCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgbWV0aG9kIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFBhcmFtZXRlcl8wX29mX21ldGhvZF9mcm9tX2V4cG9ydGVkX2ludGVyZmFjZV9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDc1LDEsXCJQYXJhbWV0ZXJfMF9vZl9tZXRob2RfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xXzQwNzVcIixcIlBhcmFtZXRlciAnezB9JyBvZiBtZXRob2QgZnJvbSBleHBvcnRlZCBpbnRlcmZhY2UgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksUGFyYW1ldGVyXzBfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWQ6aSg0MDc2LDEsXCJQYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9mdW5jdGlvbl9oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0X2Nhbm5vdF9iZV9uYW1lZF80MDc2XCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgZXhwb3J0ZWQgZnVuY3Rpb24gaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBleHRlcm5hbCBtb2R1bGUgezJ9IGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFBhcmFtZXRlcl8wX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDA3NywxLFwiUGFyYW1ldGVyXzBfb2ZfZXhwb3J0ZWRfZnVuY3Rpb25faGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDA3N1wiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGV4cG9ydGVkIGZ1bmN0aW9uIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFBhcmFtZXRlcl8wX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwNzgsMSxcIlBhcmFtZXRlcl8wX29mX2V4cG9ydGVkX2Z1bmN0aW9uX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDc4XCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgZXhwb3J0ZWQgZnVuY3Rpb24gaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksRXhwb3J0ZWRfdHlwZV9hbGlhc18wX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwODEsMSxcIkV4cG9ydGVkX3R5cGVfYWxpYXNfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDA4MVwiLFwiRXhwb3J0ZWQgdHlwZSBhbGlhcyAnezB9JyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxEZWZhdWx0X2V4cG9ydF9vZl90aGVfbW9kdWxlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMDppKDQwODIsMSxcIkRlZmF1bHRfZXhwb3J0X29mX3RoZV9tb2R1bGVfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8wXzQwODJcIixcIkRlZmF1bHQgZXhwb3J0IG9mIHRoZSBtb2R1bGUgaGFzIG9yIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezB9Jy5cIiksVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF90eXBlX2FsaWFzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQwODMsMSxcIlR5cGVfcGFyYW1ldGVyXzBfb2ZfZXhwb3J0ZWRfdHlwZV9hbGlhc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDA4M1wiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgZXhwb3J0ZWQgdHlwZSBhbGlhcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxFeHBvcnRlZF90eXBlX2FsaWFzXzBfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xX2Zyb21fbW9kdWxlXzI6aSg0MDg0LDEsXCJFeHBvcnRlZF90eXBlX2FsaWFzXzBfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xX2Zyb21fbW9kdWxlXzJfNDA4NFwiLFwiRXhwb3J0ZWQgdHlwZSBhbGlhcyAnezB9JyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nIGZyb20gbW9kdWxlIHsyfS5cIiksRXh0ZW5kc19jbGF1c2VfZm9yX2luZmVycmVkX3R5cGVfMF9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDg1LDEsXCJFeHRlbmRzX2NsYXVzZV9mb3JfaW5mZXJyZWRfdHlwZV8wX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDg1XCIsXCJFeHRlbmRzIGNsYXVzZSBmb3IgaW5mZXJyZWQgdHlwZSAnezB9JyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxDb25mbGljdGluZ19kZWZpbml0aW9uc19mb3JfMF9mb3VuZF9hdF8xX2FuZF8yX0NvbnNpZGVyX2luc3RhbGxpbmdfYV9zcGVjaWZpY192ZXJzaW9uX29mX3RoaXNfbGlicmFyeV90b19yZXNvbHZlX3RoZV9jb25mbGljdDppKDQwOTAsMSxcIkNvbmZsaWN0aW5nX2RlZmluaXRpb25zX2Zvcl8wX2ZvdW5kX2F0XzFfYW5kXzJfQ29uc2lkZXJfaW5zdGFsbGluZ19hX3NwZWNpZmljX3ZlcnNpb25fb2ZfdGhpc19saWJyYXJfNDA5MFwiLFwiQ29uZmxpY3RpbmcgZGVmaW5pdGlvbnMgZm9yICd7MH0nIGZvdW5kIGF0ICd7MX0nIGFuZCAnezJ9Jy4gQ29uc2lkZXIgaW5zdGFsbGluZyBhIHNwZWNpZmljIHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5IHRvIHJlc29sdmUgdGhlIGNvbmZsaWN0LlwiKSxQYXJhbWV0ZXJfMF9vZl9pbmRleF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MDkxLDEsXCJQYXJhbWV0ZXJfMF9vZl9pbmRleF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDA5MVwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGluZGV4IHNpZ25hdHVyZSBmcm9tIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxQYXJhbWV0ZXJfMF9vZl9pbmRleF9zaWduYXR1cmVfZnJvbV9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDA5MiwxLFwiUGFyYW1ldGVyXzBfb2ZfaW5kZXhfc2lnbmF0dXJlX2Zyb21fZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDkyXCIsXCJQYXJhbWV0ZXIgJ3swfScgb2YgaW5kZXggc2lnbmF0dXJlIGZyb20gZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFByb3BlcnR5XzBfb2ZfZXhwb3J0ZWRfY2xhc3NfZXhwcmVzc2lvbl9tYXlfbm90X2JlX3ByaXZhdGVfb3JfcHJvdGVjdGVkOmkoNDA5NCwxLFwiUHJvcGVydHlfMF9vZl9leHBvcnRlZF9jbGFzc19leHByZXNzaW9uX21heV9ub3RfYmVfcHJpdmF0ZV9vcl9wcm90ZWN0ZWRfNDA5NFwiLFwiUHJvcGVydHkgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgZXhwcmVzc2lvbiBtYXkgbm90IGJlIHByaXZhdGUgb3IgcHJvdGVjdGVkLlwiKSxQdWJsaWNfc3RhdGljX21ldGhvZF8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X2JlX25hbWVkOmkoNDA5NSwxLFwiUHVibGljX3N0YXRpY19tZXRob2RfMF9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fZXh0ZXJuYWxfbW9kdWxlXzJfYnV0X2Nhbm5vdF9iZV80MDk1XCIsXCJQdWJsaWMgc3RhdGljIG1ldGhvZCAnezB9JyBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIGV4dGVybmFsIG1vZHVsZSB7Mn0gYnV0IGNhbm5vdCBiZSBuYW1lZC5cIiksUHVibGljX3N0YXRpY19tZXRob2RfMF9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfbmFtZV8xX2Zyb21fcHJpdmF0ZV9tb2R1bGVfMjppKDQwOTYsMSxcIlB1YmxpY19zdGF0aWNfbWV0aG9kXzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDA5NlwiLFwiUHVibGljIHN0YXRpYyBtZXRob2QgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezJ9Jy5cIiksUHVibGljX3N0YXRpY19tZXRob2RfMF9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MDk3LDEsXCJQdWJsaWNfc3RhdGljX21ldGhvZF8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MDk3XCIsXCJQdWJsaWMgc3RhdGljIG1ldGhvZCAnezB9JyBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxQdWJsaWNfbWV0aG9kXzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWQ6aSg0MDk4LDEsXCJQdWJsaWNfbWV0aG9kXzBfb2ZfZXhwb3J0ZWRfY2xhc3NfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWRfNDA5OFwiLFwiUHVibGljIG1ldGhvZCAnezB9JyBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIGV4dGVybmFsIG1vZHVsZSB7Mn0gYnV0IGNhbm5vdCBiZSBuYW1lZC5cIiksUHVibGljX21ldGhvZF8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDA5OSwxLFwiUHVibGljX21ldGhvZF8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yXzQwOTlcIixcIlB1YmxpYyBtZXRob2QgJ3swfScgb2YgZXhwb3J0ZWQgY2xhc3MgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ3sxfScgZnJvbSBwcml2YXRlIG1vZHVsZSAnezJ9Jy5cIiksUHVibGljX21ldGhvZF8wX29mX2V4cG9ydGVkX2NsYXNzX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMTppKDQxMDAsMSxcIlB1YmxpY19tZXRob2RfMF9vZl9leHBvcnRlZF9jbGFzc19oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDEwMFwiLFwiUHVibGljIG1ldGhvZCAnezB9JyBvZiBleHBvcnRlZCBjbGFzcyBoYXMgb3IgaXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MX0nLlwiKSxNZXRob2RfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzI6aSg0MTAxLDEsXCJNZXRob2RfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDEwMVwiLFwiTWV0aG9kICd7MH0nIG9mIGV4cG9ydGVkIGludGVyZmFjZSBoYXMgb3IgaXMgdXNpbmcgbmFtZSAnezF9JyBmcm9tIHByaXZhdGUgbW9kdWxlICd7Mn0nLlwiKSxNZXRob2RfMF9vZl9leHBvcnRlZF9pbnRlcmZhY2VfaGFzX29yX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDEwMiwxLFwiTWV0aG9kXzBfb2ZfZXhwb3J0ZWRfaW50ZXJmYWNlX2hhc19vcl9pc191c2luZ19wcml2YXRlX25hbWVfMV80MTAyXCIsXCJNZXRob2QgJ3swfScgb2YgZXhwb3J0ZWQgaW50ZXJmYWNlIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFR5cGVfcGFyYW1ldGVyXzBfb2ZfZXhwb3J0ZWRfbWFwcGVkX29iamVjdF90eXBlX2lzX3VzaW5nX3ByaXZhdGVfbmFtZV8xOmkoNDEwMywxLFwiVHlwZV9wYXJhbWV0ZXJfMF9vZl9leHBvcnRlZF9tYXBwZWRfb2JqZWN0X3R5cGVfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDEwM1wiLFwiVHlwZSBwYXJhbWV0ZXIgJ3swfScgb2YgZXhwb3J0ZWQgbWFwcGVkIG9iamVjdCB0eXBlIGlzIHVzaW5nIHByaXZhdGUgbmFtZSAnezF9Jy5cIiksVGhlX3R5cGVfMF9pc19yZWFkb25seV9hbmRfY2Fubm90X2JlX2Fzc2lnbmVkX3RvX3RoZV9tdXRhYmxlX3R5cGVfMTppKDQxMDQsMSxcIlRoZV90eXBlXzBfaXNfcmVhZG9ubHlfYW5kX2Nhbm5vdF9iZV9hc3NpZ25lZF90b190aGVfbXV0YWJsZV90eXBlXzFfNDEwNFwiLFwiVGhlIHR5cGUgJ3swfScgaXMgJ3JlYWRvbmx5JyBhbmQgY2Fubm90IGJlIGFzc2lnbmVkIHRvIHRoZSBtdXRhYmxlIHR5cGUgJ3sxfScuXCIpLFByaXZhdGVfb3JfcHJvdGVjdGVkX21lbWJlcl8wX2Nhbm5vdF9iZV9hY2Nlc3NlZF9vbl9hX3R5cGVfcGFyYW1ldGVyOmkoNDEwNSwxLFwiUHJpdmF0ZV9vcl9wcm90ZWN0ZWRfbWVtYmVyXzBfY2Fubm90X2JlX2FjY2Vzc2VkX29uX2FfdHlwZV9wYXJhbWV0ZXJfNDEwNVwiLFwiUHJpdmF0ZSBvciBwcm90ZWN0ZWQgbWVtYmVyICd7MH0nIGNhbm5vdCBiZSBhY2Nlc3NlZCBvbiBhIHR5cGUgcGFyYW1ldGVyLlwiKSxQYXJhbWV0ZXJfMF9vZl9hY2Nlc3Nvcl9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzE6aSg0MTA2LDEsXCJQYXJhbWV0ZXJfMF9vZl9hY2Nlc3Nvcl9oYXNfb3JfaXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzFfNDEwNlwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGFjY2Vzc29yIGhhcyBvciBpcyB1c2luZyBwcml2YXRlIG5hbWUgJ3sxfScuXCIpLFBhcmFtZXRlcl8wX29mX2FjY2Vzc29yX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9wcml2YXRlX21vZHVsZV8yOmkoNDEwNywxLFwiUGFyYW1ldGVyXzBfb2ZfYWNjZXNzb3JfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX3ByaXZhdGVfbW9kdWxlXzJfNDEwN1wiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGFjY2Vzc29yIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gcHJpdmF0ZSBtb2R1bGUgJ3syfScuXCIpLFBhcmFtZXRlcl8wX29mX2FjY2Vzc29yX2hhc19vcl9pc191c2luZ19uYW1lXzFfZnJvbV9leHRlcm5hbF9tb2R1bGVfMl9idXRfY2Fubm90X2JlX25hbWVkOmkoNDEwOCwxLFwiUGFyYW1ldGVyXzBfb2ZfYWNjZXNzb3JfaGFzX29yX2lzX3VzaW5nX25hbWVfMV9mcm9tX2V4dGVybmFsX21vZHVsZV8yX2J1dF9jYW5ub3RfYmVfbmFtZWRfNDEwOFwiLFwiUGFyYW1ldGVyICd7MH0nIG9mIGFjY2Vzc29yIGhhcyBvciBpcyB1c2luZyBuYW1lICd7MX0nIGZyb20gZXh0ZXJuYWwgbW9kdWxlICd7Mn0nIGJ1dCBjYW5ub3QgYmUgbmFtZWQuXCIpLFR5cGVfYXJndW1lbnRzX2Zvcl8wX2NpcmN1bGFybHlfcmVmZXJlbmNlX3RoZW1zZWx2ZXM6aSg0MTA5LDEsXCJUeXBlX2FyZ3VtZW50c19mb3JfMF9jaXJjdWxhcmx5X3JlZmVyZW5jZV90aGVtc2VsdmVzXzQxMDlcIixcIlR5cGUgYXJndW1lbnRzIGZvciAnezB9JyBjaXJjdWxhcmx5IHJlZmVyZW5jZSB0aGVtc2VsdmVzLlwiKSxUdXBsZV90eXBlX2FyZ3VtZW50c19jaXJjdWxhcmx5X3JlZmVyZW5jZV90aGVtc2VsdmVzOmkoNDExMCwxLFwiVHVwbGVfdHlwZV9hcmd1bWVudHNfY2lyY3VsYXJseV9yZWZlcmVuY2VfdGhlbXNlbHZlc180MTEwXCIsXCJUdXBsZSB0eXBlIGFyZ3VtZW50cyBjaXJjdWxhcmx5IHJlZmVyZW5jZSB0aGVtc2VsdmVzLlwiKSxQcm9wZXJ0eV8wX2NvbWVzX2Zyb21fYW5faW5kZXhfc2lnbmF0dXJlX3NvX2l0X211c3RfYmVfYWNjZXNzZWRfd2l0aF8wOmkoNDExMSwxLFwiUHJvcGVydHlfMF9jb21lc19mcm9tX2FuX2luZGV4X3NpZ25hdHVyZV9zb19pdF9tdXN0X2JlX2FjY2Vzc2VkX3dpdGhfMF80MTExXCIsXCJQcm9wZXJ0eSAnezB9JyBjb21lcyBmcm9tIGFuIGluZGV4IHNpZ25hdHVyZSwgc28gaXQgbXVzdCBiZSBhY2Nlc3NlZCB3aXRoIFsnezB9J10uXCIpLFRoaXNfbWVtYmVyX2Nhbm5vdF9oYXZlX2FuX292ZXJyaWRlX21vZGlmaWVyX2JlY2F1c2VfaXRzX2NvbnRhaW5pbmdfY2xhc3NfMF9kb2VzX25vdF9leHRlbmRfYW5vdGhlcl9jbGFzczppKDQxMTIsMSxcIlRoaXNfbWVtYmVyX2Nhbm5vdF9oYXZlX2FuX292ZXJyaWRlX21vZGlmaWVyX2JlY2F1c2VfaXRzX2NvbnRhaW5pbmdfY2xhc3NfMF9kb2VzX25vdF9leHRlbmRfYW5vdGhlcl9fNDExMlwiLFwiVGhpcyBtZW1iZXIgY2Fubm90IGhhdmUgYW4gJ292ZXJyaWRlJyBtb2RpZmllciBiZWNhdXNlIGl0cyBjb250YWluaW5nIGNsYXNzICd7MH0nIGRvZXMgbm90IGV4dGVuZCBhbm90aGVyIGNsYXNzLlwiKSxUaGlzX21lbWJlcl9jYW5ub3RfaGF2ZV9hbl9vdmVycmlkZV9tb2RpZmllcl9iZWNhdXNlX2l0X2lzX25vdF9kZWNsYXJlZF9pbl90aGVfYmFzZV9jbGFzc18wOmkoNDExMywxLFwiVGhpc19tZW1iZXJfY2Fubm90X2hhdmVfYW5fb3ZlcnJpZGVfbW9kaWZpZXJfYmVjYXVzZV9pdF9pc19ub3RfZGVjbGFyZWRfaW5fdGhlX2Jhc2VfY2xhc3NfMF80MTEzXCIsXCJUaGlzIG1lbWJlciBjYW5ub3QgaGF2ZSBhbiAnb3ZlcnJpZGUnIG1vZGlmaWVyIGJlY2F1c2UgaXQgaXMgbm90IGRlY2xhcmVkIGluIHRoZSBiYXNlIGNsYXNzICd7MH0nLlwiKSxUaGlzX21lbWJlcl9tdXN0X2hhdmVfYW5fb3ZlcnJpZGVfbW9kaWZpZXJfYmVjYXVzZV9pdF9vdmVycmlkZXNfYV9tZW1iZXJfaW5fdGhlX2Jhc2VfY2xhc3NfMDppKDQxMTQsMSxcIlRoaXNfbWVtYmVyX211c3RfaGF2ZV9hbl9vdmVycmlkZV9tb2RpZmllcl9iZWNhdXNlX2l0X292ZXJyaWRlc19hX21lbWJlcl9pbl90aGVfYmFzZV9jbGFzc18wXzQxMTRcIixcIlRoaXMgbWVtYmVyIG11c3QgaGF2ZSBhbiAnb3ZlcnJpZGUnIG1vZGlmaWVyIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIGEgbWVtYmVyIGluIHRoZSBiYXNlIGNsYXNzICd7MH0nLlwiKSxUaGlzX3BhcmFtZXRlcl9wcm9wZXJ0eV9tdXN0X2hhdmVfYW5fb3ZlcnJpZGVfbW9kaWZpZXJfYmVjYXVzZV9pdF9vdmVycmlkZXNfYV9tZW1iZXJfaW5fYmFzZV9jbGFzc18wOmkoNDExNSwxLFwiVGhpc19wYXJhbWV0ZXJfcHJvcGVydHlfbXVzdF9oYXZlX2FuX292ZXJyaWRlX21vZGlmaWVyX2JlY2F1c2VfaXRfb3ZlcnJpZGVzX2FfbWVtYmVyX2luX2Jhc2VfY2xhc3NfMF80MTE1XCIsXCJUaGlzIHBhcmFtZXRlciBwcm9wZXJ0eSBtdXN0IGhhdmUgYW4gJ292ZXJyaWRlJyBtb2RpZmllciBiZWNhdXNlIGl0IG92ZXJyaWRlcyBhIG1lbWJlciBpbiBiYXNlIGNsYXNzICd7MH0nLlwiKSxUaGlzX21lbWJlcl9tdXN0X2hhdmVfYW5fb3ZlcnJpZGVfbW9kaWZpZXJfYmVjYXVzZV9pdF9vdmVycmlkZXNfYW5fYWJzdHJhY3RfbWV0aG9kX3RoYXRfaXNfZGVjbGFyZWRfaW5fdGhlX2Jhc2VfY2xhc3NfMDppKDQxMTYsMSxcIlRoaXNfbWVtYmVyX211c3RfaGF2ZV9hbl9vdmVycmlkZV9tb2RpZmllcl9iZWNhdXNlX2l0X292ZXJyaWRlc19hbl9hYnN0cmFjdF9tZXRob2RfdGhhdF9pc19kZWNsYXJlZF9fNDExNlwiLFwiVGhpcyBtZW1iZXIgbXVzdCBoYXZlIGFuICdvdmVycmlkZScgbW9kaWZpZXIgYmVjYXVzZSBpdCBvdmVycmlkZXMgYW4gYWJzdHJhY3QgbWV0aG9kIHRoYXQgaXMgZGVjbGFyZWQgaW4gdGhlIGJhc2UgY2xhc3MgJ3swfScuXCIpLFRoaXNfbWVtYmVyX2Nhbm5vdF9oYXZlX2FuX292ZXJyaWRlX21vZGlmaWVyX2JlY2F1c2VfaXRfaXNfbm90X2RlY2xhcmVkX2luX3RoZV9iYXNlX2NsYXNzXzBfRGlkX3lvdV9tZWFuXzE6aSg0MTE3LDEsXCJUaGlzX21lbWJlcl9jYW5ub3RfaGF2ZV9hbl9vdmVycmlkZV9tb2RpZmllcl9iZWNhdXNlX2l0X2lzX25vdF9kZWNsYXJlZF9pbl90aGVfYmFzZV9jbGFzc18wX0RpZF95b3VfXzQxMTdcIixcIlRoaXMgbWVtYmVyIGNhbm5vdCBoYXZlIGFuICdvdmVycmlkZScgbW9kaWZpZXIgYmVjYXVzZSBpdCBpcyBub3QgZGVjbGFyZWQgaW4gdGhlIGJhc2UgY2xhc3MgJ3swfScuIERpZCB5b3UgbWVhbiAnezF9Jz9cIiksVGhlX3R5cGVfb2ZfdGhpc19ub2RlX2Nhbm5vdF9iZV9zZXJpYWxpemVkX2JlY2F1c2VfaXRzX3Byb3BlcnR5XzBfY2Fubm90X2JlX3NlcmlhbGl6ZWQ6aSg0MTE4LDEsXCJUaGVfdHlwZV9vZl90aGlzX25vZGVfY2Fubm90X2JlX3NlcmlhbGl6ZWRfYmVjYXVzZV9pdHNfcHJvcGVydHlfMF9jYW5ub3RfYmVfc2VyaWFsaXplZF80MTE4XCIsXCJUaGUgdHlwZSBvZiB0aGlzIG5vZGUgY2Fubm90IGJlIHNlcmlhbGl6ZWQgYmVjYXVzZSBpdHMgcHJvcGVydHkgJ3swfScgY2Fubm90IGJlIHNlcmlhbGl6ZWQuXCIpLFRoaXNfbWVtYmVyX211c3RfaGF2ZV9hX0pTRG9jX2NvbW1lbnRfd2l0aF9hbl9vdmVycmlkZV90YWdfYmVjYXVzZV9pdF9vdmVycmlkZXNfYV9tZW1iZXJfaW5fdGhlX2Jhc2VfY2xhc3NfMDppKDQxMTksMSxcIlRoaXNfbWVtYmVyX211c3RfaGF2ZV9hX0pTRG9jX2NvbW1lbnRfd2l0aF9hbl9vdmVycmlkZV90YWdfYmVjYXVzZV9pdF9vdmVycmlkZXNfYV9tZW1iZXJfaW5fdGhlX2Jhc2VfNDExOVwiLFwiVGhpcyBtZW1iZXIgbXVzdCBoYXZlIGEgSlNEb2MgY29tbWVudCB3aXRoIGFuICdAb3ZlcnJpZGUnIHRhZyBiZWNhdXNlIGl0IG92ZXJyaWRlcyBhIG1lbWJlciBpbiB0aGUgYmFzZSBjbGFzcyAnezB9Jy5cIiksVGhpc19wYXJhbWV0ZXJfcHJvcGVydHlfbXVzdF9oYXZlX2FfSlNEb2NfY29tbWVudF93aXRoX2FuX292ZXJyaWRlX3RhZ19iZWNhdXNlX2l0X292ZXJyaWRlc19hX21lbWJlcl9pbl90aGVfYmFzZV9jbGFzc18wOmkoNDEyMCwxLFwiVGhpc19wYXJhbWV0ZXJfcHJvcGVydHlfbXVzdF9oYXZlX2FfSlNEb2NfY29tbWVudF93aXRoX2FuX292ZXJyaWRlX3RhZ19iZWNhdXNlX2l0X292ZXJyaWRlc19hX21lbWJlcl80MTIwXCIsXCJUaGlzIHBhcmFtZXRlciBwcm9wZXJ0eSBtdXN0IGhhdmUgYSBKU0RvYyBjb21tZW50IHdpdGggYW4gJ0BvdmVycmlkZScgdGFnIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIGEgbWVtYmVyIGluIHRoZSBiYXNlIGNsYXNzICd7MH0nLlwiKSxUaGlzX21lbWJlcl9jYW5ub3RfaGF2ZV9hX0pTRG9jX2NvbW1lbnRfd2l0aF9hbl9vdmVycmlkZV90YWdfYmVjYXVzZV9pdHNfY29udGFpbmluZ19jbGFzc18wX2RvZXNfbm90X2V4dGVuZF9hbm90aGVyX2NsYXNzOmkoNDEyMSwxLFwiVGhpc19tZW1iZXJfY2Fubm90X2hhdmVfYV9KU0RvY19jb21tZW50X3dpdGhfYW5fb3ZlcnJpZGVfdGFnX2JlY2F1c2VfaXRzX2NvbnRhaW5pbmdfY2xhc3NfMF9kb2VzX25vdF80MTIxXCIsXCJUaGlzIG1lbWJlciBjYW5ub3QgaGF2ZSBhIEpTRG9jIGNvbW1lbnQgd2l0aCBhbiAnQG92ZXJyaWRlJyB0YWcgYmVjYXVzZSBpdHMgY29udGFpbmluZyBjbGFzcyAnezB9JyBkb2VzIG5vdCBleHRlbmQgYW5vdGhlciBjbGFzcy5cIiksVGhpc19tZW1iZXJfY2Fubm90X2hhdmVfYV9KU0RvY19jb21tZW50X3dpdGhfYW5fb3ZlcnJpZGVfdGFnX2JlY2F1c2VfaXRfaXNfbm90X2RlY2xhcmVkX2luX3RoZV9iYXNlX2NsYXNzXzA6aSg0MTIyLDEsXCJUaGlzX21lbWJlcl9jYW5ub3RfaGF2ZV9hX0pTRG9jX2NvbW1lbnRfd2l0aF9hbl9vdmVycmlkZV90YWdfYmVjYXVzZV9pdF9pc19ub3RfZGVjbGFyZWRfaW5fdGhlX2Jhc2VfXzQxMjJcIixcIlRoaXMgbWVtYmVyIGNhbm5vdCBoYXZlIGEgSlNEb2MgY29tbWVudCB3aXRoIGFuICdAb3ZlcnJpZGUnIHRhZyBiZWNhdXNlIGl0IGlzIG5vdCBkZWNsYXJlZCBpbiB0aGUgYmFzZSBjbGFzcyAnezB9Jy5cIiksVGhpc19tZW1iZXJfY2Fubm90X2hhdmVfYV9KU0RvY19jb21tZW50X3dpdGhfYW5fb3ZlcnJpZGVfdGFnX2JlY2F1c2VfaXRfaXNfbm90X2RlY2xhcmVkX2luX3RoZV9iYXNlX2NsYXNzXzBfRGlkX3lvdV9tZWFuXzE6aSg0MTIzLDEsXCJUaGlzX21lbWJlcl9jYW5ub3RfaGF2ZV9hX0pTRG9jX2NvbW1lbnRfd2l0aF9hbl9vdmVycmlkZV90YWdfYmVjYXVzZV9pdF9pc19ub3RfZGVjbGFyZWRfaW5fdGhlX2Jhc2VfXzQxMjNcIixcIlRoaXMgbWVtYmVyIGNhbm5vdCBoYXZlIGEgSlNEb2MgY29tbWVudCB3aXRoIGFuICdvdmVycmlkZScgdGFnIGJlY2F1c2UgaXQgaXMgbm90IGRlY2xhcmVkIGluIHRoZSBiYXNlIGNsYXNzICd7MH0nLiBEaWQgeW91IG1lYW4gJ3sxfSc/XCIpLENvbXBpbGVyX29wdGlvbl8wX29mX3ZhbHVlXzFfaXNfdW5zdGFibGVfVXNlX25pZ2h0bHlfVHlwZVNjcmlwdF90b19zaWxlbmNlX3RoaXNfZXJyb3JfVHJ5X3VwZGF0aW5nX3dpdGhfbnBtX2luc3RhbGxfRF90eXBlc2NyaXB0X25leHQ6aSg0MTI0LDEsXCJDb21waWxlcl9vcHRpb25fMF9vZl92YWx1ZV8xX2lzX3Vuc3RhYmxlX1VzZV9uaWdodGx5X1R5cGVTY3JpcHRfdG9fc2lsZW5jZV90aGlzX2Vycm9yX1RyeV91cGRhdGluZ193XzQxMjRcIixcIkNvbXBpbGVyIG9wdGlvbiAnezB9JyBvZiB2YWx1ZSAnezF9JyBpcyB1bnN0YWJsZS4gVXNlIG5pZ2h0bHkgVHlwZVNjcmlwdCB0byBzaWxlbmNlIHRoaXMgZXJyb3IuIFRyeSB1cGRhdGluZyB3aXRoICducG0gaW5zdGFsbCAtRCB0eXBlc2NyaXB0QG5leHQnLlwiKSxyZXNvbHV0aW9uX21vZGVfYXNzZXJ0aW9uc19hcmVfdW5zdGFibGVfVXNlX25pZ2h0bHlfVHlwZVNjcmlwdF90b19zaWxlbmNlX3RoaXNfZXJyb3JfVHJ5X3VwZGF0aW5nX3dpdGhfbnBtX2luc3RhbGxfRF90eXBlc2NyaXB0X25leHQ6aSg0MTI1LDEsXCJyZXNvbHV0aW9uX21vZGVfYXNzZXJ0aW9uc19hcmVfdW5zdGFibGVfVXNlX25pZ2h0bHlfVHlwZVNjcmlwdF90b19zaWxlbmNlX3RoaXNfZXJyb3JfVHJ5X3VwZGF0aW5nX3dpXzQxMjVcIixcIidyZXNvbHV0aW9uLW1vZGUnIGFzc2VydGlvbnMgYXJlIHVuc3RhYmxlLiBVc2UgbmlnaHRseSBUeXBlU2NyaXB0IHRvIHNpbGVuY2UgdGhpcyBlcnJvci4gVHJ5IHVwZGF0aW5nIHdpdGggJ25wbSBpbnN0YWxsIC1EIHR5cGVzY3JpcHRAbmV4dCcuXCIpLFRoZV9jdXJyZW50X2hvc3RfZG9lc19ub3Rfc3VwcG9ydF90aGVfMF9vcHRpb246aSg1MDAxLDEsXCJUaGVfY3VycmVudF9ob3N0X2RvZXNfbm90X3N1cHBvcnRfdGhlXzBfb3B0aW9uXzUwMDFcIixcIlRoZSBjdXJyZW50IGhvc3QgZG9lcyBub3Qgc3VwcG9ydCB0aGUgJ3swfScgb3B0aW9uLlwiKSxDYW5ub3RfZmluZF90aGVfY29tbW9uX3N1YmRpcmVjdG9yeV9wYXRoX2Zvcl90aGVfaW5wdXRfZmlsZXM6aSg1MDA5LDEsXCJDYW5ub3RfZmluZF90aGVfY29tbW9uX3N1YmRpcmVjdG9yeV9wYXRoX2Zvcl90aGVfaW5wdXRfZmlsZXNfNTAwOVwiLFwiQ2Fubm90IGZpbmQgdGhlIGNvbW1vbiBzdWJkaXJlY3RvcnkgcGF0aCBmb3IgdGhlIGlucHV0IGZpbGVzLlwiKSxGaWxlX3NwZWNpZmljYXRpb25fY2Fubm90X2VuZF9pbl9hX3JlY3Vyc2l2ZV9kaXJlY3Rvcnlfd2lsZGNhcmRfQXN0ZXJpc2tfQXN0ZXJpc2tfQ29sb25fMDppKDUwMTAsMSxcIkZpbGVfc3BlY2lmaWNhdGlvbl9jYW5ub3RfZW5kX2luX2FfcmVjdXJzaXZlX2RpcmVjdG9yeV93aWxkY2FyZF9Bc3Rlcmlza19Bc3Rlcmlza19Db2xvbl8wXzUwMTBcIixcIkZpbGUgc3BlY2lmaWNhdGlvbiBjYW5ub3QgZW5kIGluIGEgcmVjdXJzaXZlIGRpcmVjdG9yeSB3aWxkY2FyZCAoJyoqJyk6ICd7MH0nLlwiKSxDYW5ub3RfcmVhZF9maWxlXzBfQ29sb25fMTppKDUwMTIsMSxcIkNhbm5vdF9yZWFkX2ZpbGVfMF9Db2xvbl8xXzUwMTJcIixcIkNhbm5vdCByZWFkIGZpbGUgJ3swfSc6IHsxfS5cIiksRmFpbGVkX3RvX3BhcnNlX2ZpbGVfMF9Db2xvbl8xOmkoNTAxNCwxLFwiRmFpbGVkX3RvX3BhcnNlX2ZpbGVfMF9Db2xvbl8xXzUwMTRcIixcIkZhaWxlZCB0byBwYXJzZSBmaWxlICd7MH0nOiB7MX0uXCIpLFVua25vd25fY29tcGlsZXJfb3B0aW9uXzA6aSg1MDIzLDEsXCJVbmtub3duX2NvbXBpbGVyX29wdGlvbl8wXzUwMjNcIixcIlVua25vd24gY29tcGlsZXIgb3B0aW9uICd7MH0nLlwiKSxDb21waWxlcl9vcHRpb25fMF9yZXF1aXJlc19hX3ZhbHVlX29mX3R5cGVfMTppKDUwMjQsMSxcIkNvbXBpbGVyX29wdGlvbl8wX3JlcXVpcmVzX2FfdmFsdWVfb2ZfdHlwZV8xXzUwMjRcIixcIkNvbXBpbGVyIG9wdGlvbiAnezB9JyByZXF1aXJlcyBhIHZhbHVlIG9mIHR5cGUgezF9LlwiKSxVbmtub3duX2NvbXBpbGVyX29wdGlvbl8wX0RpZF95b3VfbWVhbl8xOmkoNTAyNSwxLFwiVW5rbm93bl9jb21waWxlcl9vcHRpb25fMF9EaWRfeW91X21lYW5fMV81MDI1XCIsXCJVbmtub3duIGNvbXBpbGVyIG9wdGlvbiAnezB9Jy4gRGlkIHlvdSBtZWFuICd7MX0nP1wiKSxDb3VsZF9ub3Rfd3JpdGVfZmlsZV8wX0NvbG9uXzE6aSg1MDMzLDEsXCJDb3VsZF9ub3Rfd3JpdGVfZmlsZV8wX0NvbG9uXzFfNTAzM1wiLFwiQ291bGQgbm90IHdyaXRlIGZpbGUgJ3swfSc6IHsxfS5cIiksT3B0aW9uX3Byb2plY3RfY2Fubm90X2JlX21peGVkX3dpdGhfc291cmNlX2ZpbGVzX29uX2FfY29tbWFuZF9saW5lOmkoNTA0MiwxLFwiT3B0aW9uX3Byb2plY3RfY2Fubm90X2JlX21peGVkX3dpdGhfc291cmNlX2ZpbGVzX29uX2FfY29tbWFuZF9saW5lXzUwNDJcIixcIk9wdGlvbiAncHJvamVjdCcgY2Fubm90IGJlIG1peGVkIHdpdGggc291cmNlIGZpbGVzIG9uIGEgY29tbWFuZCBsaW5lLlwiKSxPcHRpb25faXNvbGF0ZWRNb2R1bGVzX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9laXRoZXJfb3B0aW9uX21vZHVsZV9pc19wcm92aWRlZF9vcl9vcHRpb25fdGFyZ2V0X2lzX0VTMjAxNV9vcl9oaWdoZXI6aSg1MDQ3LDEsXCJPcHRpb25faXNvbGF0ZWRNb2R1bGVzX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9laXRoZXJfb3B0aW9uX21vZHVsZV9pc19wcm92aWRlZF9vcl9vcHRpb25fdGFyZ2V0X2lzX0VTXzUwNDdcIixcIk9wdGlvbiAnaXNvbGF0ZWRNb2R1bGVzJyBjYW4gb25seSBiZSB1c2VkIHdoZW4gZWl0aGVyIG9wdGlvbiAnLS1tb2R1bGUnIGlzIHByb3ZpZGVkIG9yIG9wdGlvbiAndGFyZ2V0JyBpcyAnRVMyMDE1JyBvciBoaWdoZXIuXCIpLE9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2hlbl9vcHRpb25fdGFyZ2V0X2lzX0VTMzppKDUwNDgsMSxcIk9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2hlbl9vcHRpb25fdGFyZ2V0X2lzX0VTM181MDQ4XCIsXCJPcHRpb24gJ3swfScgY2Fubm90IGJlIHNwZWNpZmllZCB3aGVuIG9wdGlvbiAndGFyZ2V0JyBpcyAnRVMzJy5cIiksT3B0aW9uXzBfY2FuX29ubHlfYmVfdXNlZF93aGVuX2VpdGhlcl9vcHRpb25faW5saW5lU291cmNlTWFwX29yX29wdGlvbl9zb3VyY2VNYXBfaXNfcHJvdmlkZWQ6aSg1MDUxLDEsXCJPcHRpb25fMF9jYW5fb25seV9iZV91c2VkX3doZW5fZWl0aGVyX29wdGlvbl9pbmxpbmVTb3VyY2VNYXBfb3Jfb3B0aW9uX3NvdXJjZU1hcF9pc19wcm92aWRlZF81MDUxXCIsXCJPcHRpb24gJ3swfSBjYW4gb25seSBiZSB1c2VkIHdoZW4gZWl0aGVyIG9wdGlvbiAnLS1pbmxpbmVTb3VyY2VNYXAnIG9yIG9wdGlvbiAnLS1zb3VyY2VNYXAnIGlzIHByb3ZpZGVkLlwiKSxPcHRpb25fMF9jYW5ub3RfYmVfc3BlY2lmaWVkX3dpdGhvdXRfc3BlY2lmeWluZ19vcHRpb25fMTppKDUwNTIsMSxcIk9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2l0aG91dF9zcGVjaWZ5aW5nX29wdGlvbl8xXzUwNTJcIixcIk9wdGlvbiAnezB9JyBjYW5ub3QgYmUgc3BlY2lmaWVkIHdpdGhvdXQgc3BlY2lmeWluZyBvcHRpb24gJ3sxfScuXCIpLE9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2l0aF9vcHRpb25fMTppKDUwNTMsMSxcIk9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2l0aF9vcHRpb25fMV81MDUzXCIsXCJPcHRpb24gJ3swfScgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG9wdGlvbiAnezF9Jy5cIiksQV90c2NvbmZpZ19qc29uX2ZpbGVfaXNfYWxyZWFkeV9kZWZpbmVkX2F0X0NvbG9uXzA6aSg1MDU0LDEsXCJBX3RzY29uZmlnX2pzb25fZmlsZV9pc19hbHJlYWR5X2RlZmluZWRfYXRfQ29sb25fMF81MDU0XCIsXCJBICd0c2NvbmZpZy5qc29uJyBmaWxlIGlzIGFscmVhZHkgZGVmaW5lZCBhdDogJ3swfScuXCIpLENhbm5vdF93cml0ZV9maWxlXzBfYmVjYXVzZV9pdF93b3VsZF9vdmVyd3JpdGVfaW5wdXRfZmlsZTppKDUwNTUsMSxcIkNhbm5vdF93cml0ZV9maWxlXzBfYmVjYXVzZV9pdF93b3VsZF9vdmVyd3JpdGVfaW5wdXRfZmlsZV81MDU1XCIsXCJDYW5ub3Qgd3JpdGUgZmlsZSAnezB9JyBiZWNhdXNlIGl0IHdvdWxkIG92ZXJ3cml0ZSBpbnB1dCBmaWxlLlwiKSxDYW5ub3Rfd3JpdGVfZmlsZV8wX2JlY2F1c2VfaXRfd291bGRfYmVfb3ZlcndyaXR0ZW5fYnlfbXVsdGlwbGVfaW5wdXRfZmlsZXM6aSg1MDU2LDEsXCJDYW5ub3Rfd3JpdGVfZmlsZV8wX2JlY2F1c2VfaXRfd291bGRfYmVfb3ZlcndyaXR0ZW5fYnlfbXVsdGlwbGVfaW5wdXRfZmlsZXNfNTA1NlwiLFwiQ2Fubm90IHdyaXRlIGZpbGUgJ3swfScgYmVjYXVzZSBpdCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBtdWx0aXBsZSBpbnB1dCBmaWxlcy5cIiksQ2Fubm90X2ZpbmRfYV90c2NvbmZpZ19qc29uX2ZpbGVfYXRfdGhlX3NwZWNpZmllZF9kaXJlY3RvcnlfQ29sb25fMDppKDUwNTcsMSxcIkNhbm5vdF9maW5kX2FfdHNjb25maWdfanNvbl9maWxlX2F0X3RoZV9zcGVjaWZpZWRfZGlyZWN0b3J5X0NvbG9uXzBfNTA1N1wiLFwiQ2Fubm90IGZpbmQgYSB0c2NvbmZpZy5qc29uIGZpbGUgYXQgdGhlIHNwZWNpZmllZCBkaXJlY3Rvcnk6ICd7MH0nLlwiKSxUaGVfc3BlY2lmaWVkX3BhdGhfZG9lc19ub3RfZXhpc3RfQ29sb25fMDppKDUwNTgsMSxcIlRoZV9zcGVjaWZpZWRfcGF0aF9kb2VzX25vdF9leGlzdF9Db2xvbl8wXzUwNThcIixcIlRoZSBzcGVjaWZpZWQgcGF0aCBkb2VzIG5vdCBleGlzdDogJ3swfScuXCIpLEludmFsaWRfdmFsdWVfZm9yX3JlYWN0TmFtZXNwYWNlXzBfaXNfbm90X2FfdmFsaWRfaWRlbnRpZmllcjppKDUwNTksMSxcIkludmFsaWRfdmFsdWVfZm9yX3JlYWN0TmFtZXNwYWNlXzBfaXNfbm90X2FfdmFsaWRfaWRlbnRpZmllcl81MDU5XCIsXCJJbnZhbGlkIHZhbHVlIGZvciAnLS1yZWFjdE5hbWVzcGFjZScuICd7MH0nIGlzIG5vdCBhIHZhbGlkIGlkZW50aWZpZXIuXCIpLFBhdHRlcm5fMF9jYW5faGF2ZV9hdF9tb3N0X29uZV9Bc3Rlcmlza19jaGFyYWN0ZXI6aSg1MDYxLDEsXCJQYXR0ZXJuXzBfY2FuX2hhdmVfYXRfbW9zdF9vbmVfQXN0ZXJpc2tfY2hhcmFjdGVyXzUwNjFcIixcIlBhdHRlcm4gJ3swfScgY2FuIGhhdmUgYXQgbW9zdCBvbmUgJyonIGNoYXJhY3Rlci5cIiksU3Vic3RpdHV0aW9uXzBfaW5fcGF0dGVybl8xX2Nhbl9oYXZlX2F0X21vc3Rfb25lX0FzdGVyaXNrX2NoYXJhY3RlcjppKDUwNjIsMSxcIlN1YnN0aXR1dGlvbl8wX2luX3BhdHRlcm5fMV9jYW5faGF2ZV9hdF9tb3N0X29uZV9Bc3Rlcmlza19jaGFyYWN0ZXJfNTA2MlwiLFwiU3Vic3RpdHV0aW9uICd7MH0nIGluIHBhdHRlcm4gJ3sxfScgY2FuIGhhdmUgYXQgbW9zdCBvbmUgJyonIGNoYXJhY3Rlci5cIiksU3Vic3RpdHV0aW9uc19mb3JfcGF0dGVybl8wX3Nob3VsZF9iZV9hbl9hcnJheTppKDUwNjMsMSxcIlN1YnN0aXR1dGlvbnNfZm9yX3BhdHRlcm5fMF9zaG91bGRfYmVfYW5fYXJyYXlfNTA2M1wiLFwiU3Vic3RpdHV0aW9ucyBmb3IgcGF0dGVybiAnezB9JyBzaG91bGQgYmUgYW4gYXJyYXkuXCIpLFN1YnN0aXR1dGlvbl8wX2Zvcl9wYXR0ZXJuXzFfaGFzX2luY29ycmVjdF90eXBlX2V4cGVjdGVkX3N0cmluZ19nb3RfMjppKDUwNjQsMSxcIlN1YnN0aXR1dGlvbl8wX2Zvcl9wYXR0ZXJuXzFfaGFzX2luY29ycmVjdF90eXBlX2V4cGVjdGVkX3N0cmluZ19nb3RfMl81MDY0XCIsXCJTdWJzdGl0dXRpb24gJ3swfScgZm9yIHBhdHRlcm4gJ3sxfScgaGFzIGluY29ycmVjdCB0eXBlLCBleHBlY3RlZCAnc3RyaW5nJywgZ290ICd7Mn0nLlwiKSxGaWxlX3NwZWNpZmljYXRpb25fY2Fubm90X2NvbnRhaW5fYV9wYXJlbnRfZGlyZWN0b3J5X3RoYXRfYXBwZWFyc19hZnRlcl9hX3JlY3Vyc2l2ZV9kaXJlY3Rvcnlfd2lsZGNhcmRfQXN0ZXJpc2tfQXN0ZXJpc2tfQ29sb25fMDppKDUwNjUsMSxcIkZpbGVfc3BlY2lmaWNhdGlvbl9jYW5ub3RfY29udGFpbl9hX3BhcmVudF9kaXJlY3RvcnlfdGhhdF9hcHBlYXJzX2FmdGVyX2FfcmVjdXJzaXZlX2RpcmVjdG9yeV93aWxkY2FfNTA2NVwiLFwiRmlsZSBzcGVjaWZpY2F0aW9uIGNhbm5vdCBjb250YWluIGEgcGFyZW50IGRpcmVjdG9yeSAoJy4uJykgdGhhdCBhcHBlYXJzIGFmdGVyIGEgcmVjdXJzaXZlIGRpcmVjdG9yeSB3aWxkY2FyZCAoJyoqJyk6ICd7MH0nLlwiKSxTdWJzdGl0dXRpb25zX2Zvcl9wYXR0ZXJuXzBfc2hvdWxkbl90X2JlX2FuX2VtcHR5X2FycmF5OmkoNTA2NiwxLFwiU3Vic3RpdHV0aW9uc19mb3JfcGF0dGVybl8wX3Nob3VsZG5fdF9iZV9hbl9lbXB0eV9hcnJheV81MDY2XCIsXCJTdWJzdGl0dXRpb25zIGZvciBwYXR0ZXJuICd7MH0nIHNob3VsZG4ndCBiZSBhbiBlbXB0eSBhcnJheS5cIiksSW52YWxpZF92YWx1ZV9mb3JfanN4RmFjdG9yeV8wX2lzX25vdF9hX3ZhbGlkX2lkZW50aWZpZXJfb3JfcXVhbGlmaWVkX25hbWU6aSg1MDY3LDEsXCJJbnZhbGlkX3ZhbHVlX2Zvcl9qc3hGYWN0b3J5XzBfaXNfbm90X2FfdmFsaWRfaWRlbnRpZmllcl9vcl9xdWFsaWZpZWRfbmFtZV81MDY3XCIsXCJJbnZhbGlkIHZhbHVlIGZvciAnanN4RmFjdG9yeScuICd7MH0nIGlzIG5vdCBhIHZhbGlkIGlkZW50aWZpZXIgb3IgcXVhbGlmaWVkLW5hbWUuXCIpLEFkZGluZ19hX3RzY29uZmlnX2pzb25fZmlsZV93aWxsX2hlbHBfb3JnYW5pemVfcHJvamVjdHNfdGhhdF9jb250YWluX2JvdGhfVHlwZVNjcmlwdF9hbmRfSmF2YVNjcmlwdF9maWxlc19MZWFybl9tb3JlX2F0X2h0dHBzX0NvbG9uX1NsYXNoX1NsYXNoYWthX21zX1NsYXNodHNjb25maWc6aSg1MDY4LDEsXCJBZGRpbmdfYV90c2NvbmZpZ19qc29uX2ZpbGVfd2lsbF9oZWxwX29yZ2FuaXplX3Byb2plY3RzX3RoYXRfY29udGFpbl9ib3RoX1R5cGVTY3JpcHRfYW5kX0phdmFTY3JpcHRfXzUwNjhcIixcIkFkZGluZyBhIHRzY29uZmlnLmpzb24gZmlsZSB3aWxsIGhlbHAgb3JnYW5pemUgcHJvamVjdHMgdGhhdCBjb250YWluIGJvdGggVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlcy4gTGVhcm4gbW9yZSBhdCBodHRwczovL2FrYS5tcy90c2NvbmZpZy5cIiksT3B0aW9uXzBfY2Fubm90X2JlX3NwZWNpZmllZF93aXRob3V0X3NwZWNpZnlpbmdfb3B0aW9uXzFfb3Jfb3B0aW9uXzI6aSg1MDY5LDEsXCJPcHRpb25fMF9jYW5ub3RfYmVfc3BlY2lmaWVkX3dpdGhvdXRfc3BlY2lmeWluZ19vcHRpb25fMV9vcl9vcHRpb25fMl81MDY5XCIsXCJPcHRpb24gJ3swfScgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRob3V0IHNwZWNpZnlpbmcgb3B0aW9uICd7MX0nIG9yIG9wdGlvbiAnezJ9Jy5cIiksT3B0aW9uX3Jlc29sdmVKc29uTW9kdWxlX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2hlbl9tb2R1bGVSZXNvbHV0aW9uX2lzX3NldF90b19jbGFzc2ljOmkoNTA3MCwxLFwiT3B0aW9uX3Jlc29sdmVKc29uTW9kdWxlX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2hlbl9tb2R1bGVSZXNvbHV0aW9uX2lzX3NldF90b19jbGFzc2ljXzUwNzBcIixcIk9wdGlvbiAnLS1yZXNvbHZlSnNvbk1vZHVsZScgY2Fubm90IGJlIHNwZWNpZmllZCB3aGVuICdtb2R1bGVSZXNvbHV0aW9uJyBpcyBzZXQgdG8gJ2NsYXNzaWMnLlwiKSxPcHRpb25fcmVzb2x2ZUpzb25Nb2R1bGVfY2FuX29ubHlfYmVfc3BlY2lmaWVkX3doZW5fbW9kdWxlX2NvZGVfZ2VuZXJhdGlvbl9pc19jb21tb25qc19hbWRfZXMyMDE1X29yX2VzTmV4dDppKDUwNzEsMSxcIk9wdGlvbl9yZXNvbHZlSnNvbk1vZHVsZV9jYW5fb25seV9iZV9zcGVjaWZpZWRfd2hlbl9tb2R1bGVfY29kZV9nZW5lcmF0aW9uX2lzX2NvbW1vbmpzX2FtZF9lczIwMTVfb3JfNTA3MVwiLFwiT3B0aW9uICctLXJlc29sdmVKc29uTW9kdWxlJyBjYW4gb25seSBiZSBzcGVjaWZpZWQgd2hlbiBtb2R1bGUgY29kZSBnZW5lcmF0aW9uIGlzICdjb21tb25qcycsICdhbWQnLCAnZXMyMDE1JyBvciAnZXNOZXh0Jy5cIiksVW5rbm93bl9idWlsZF9vcHRpb25fMDppKDUwNzIsMSxcIlVua25vd25fYnVpbGRfb3B0aW9uXzBfNTA3MlwiLFwiVW5rbm93biBidWlsZCBvcHRpb24gJ3swfScuXCIpLEJ1aWxkX29wdGlvbl8wX3JlcXVpcmVzX2FfdmFsdWVfb2ZfdHlwZV8xOmkoNTA3MywxLFwiQnVpbGRfb3B0aW9uXzBfcmVxdWlyZXNfYV92YWx1ZV9vZl90eXBlXzFfNTA3M1wiLFwiQnVpbGQgb3B0aW9uICd7MH0nIHJlcXVpcmVzIGEgdmFsdWUgb2YgdHlwZSB7MX0uXCIpLE9wdGlvbl9pbmNyZW1lbnRhbF9jYW5fb25seV9iZV9zcGVjaWZpZWRfdXNpbmdfdHNjb25maWdfZW1pdHRpbmdfdG9fc2luZ2xlX2ZpbGVfb3Jfd2hlbl9vcHRpb25fdHNCdWlsZEluZm9GaWxlX2lzX3NwZWNpZmllZDppKDUwNzQsMSxcIk9wdGlvbl9pbmNyZW1lbnRhbF9jYW5fb25seV9iZV9zcGVjaWZpZWRfdXNpbmdfdHNjb25maWdfZW1pdHRpbmdfdG9fc2luZ2xlX2ZpbGVfb3Jfd2hlbl9vcHRpb25fdHNCdWlfNTA3NFwiLFwiT3B0aW9uICctLWluY3JlbWVudGFsJyBjYW4gb25seSBiZSBzcGVjaWZpZWQgdXNpbmcgdHNjb25maWcsIGVtaXR0aW5nIHRvIHNpbmdsZSBmaWxlIG9yIHdoZW4gb3B0aW9uICctLXRzQnVpbGRJbmZvRmlsZScgaXMgc3BlY2lmaWVkLlwiKSxfMF9pc19hc3NpZ25hYmxlX3RvX3RoZV9jb25zdHJhaW50X29mX3R5cGVfMV9idXRfMV9jb3VsZF9iZV9pbnN0YW50aWF0ZWRfd2l0aF9hX2RpZmZlcmVudF9zdWJ0eXBlX29mX2NvbnN0cmFpbnRfMjppKDUwNzUsMSxcIl8wX2lzX2Fzc2lnbmFibGVfdG9fdGhlX2NvbnN0cmFpbnRfb2ZfdHlwZV8xX2J1dF8xX2NvdWxkX2JlX2luc3RhbnRpYXRlZF93aXRoX2FfZGlmZmVyZW50X3N1YnR5cGVfb2ZfNTA3NVwiLFwiJ3swfScgaXMgYXNzaWduYWJsZSB0byB0aGUgY29uc3RyYWludCBvZiB0eXBlICd7MX0nLCBidXQgJ3sxfScgY291bGQgYmUgaW5zdGFudGlhdGVkIHdpdGggYSBkaWZmZXJlbnQgc3VidHlwZSBvZiBjb25zdHJhaW50ICd7Mn0nLlwiKSxfMF9hbmRfMV9vcGVyYXRpb25zX2Nhbm5vdF9iZV9taXhlZF93aXRob3V0X3BhcmVudGhlc2VzOmkoNTA3NiwxLFwiXzBfYW5kXzFfb3BlcmF0aW9uc19jYW5ub3RfYmVfbWl4ZWRfd2l0aG91dF9wYXJlbnRoZXNlc181MDc2XCIsXCInezB9JyBhbmQgJ3sxfScgb3BlcmF0aW9ucyBjYW5ub3QgYmUgbWl4ZWQgd2l0aG91dCBwYXJlbnRoZXNlcy5cIiksVW5rbm93bl9idWlsZF9vcHRpb25fMF9EaWRfeW91X21lYW5fMTppKDUwNzcsMSxcIlVua25vd25fYnVpbGRfb3B0aW9uXzBfRGlkX3lvdV9tZWFuXzFfNTA3N1wiLFwiVW5rbm93biBidWlsZCBvcHRpb24gJ3swfScuIERpZCB5b3UgbWVhbiAnezF9Jz9cIiksVW5rbm93bl93YXRjaF9vcHRpb25fMDppKDUwNzgsMSxcIlVua25vd25fd2F0Y2hfb3B0aW9uXzBfNTA3OFwiLFwiVW5rbm93biB3YXRjaCBvcHRpb24gJ3swfScuXCIpLFVua25vd25fd2F0Y2hfb3B0aW9uXzBfRGlkX3lvdV9tZWFuXzE6aSg1MDc5LDEsXCJVbmtub3duX3dhdGNoX29wdGlvbl8wX0RpZF95b3VfbWVhbl8xXzUwNzlcIixcIlVua25vd24gd2F0Y2ggb3B0aW9uICd7MH0nLiBEaWQgeW91IG1lYW4gJ3sxfSc/XCIpLFdhdGNoX29wdGlvbl8wX3JlcXVpcmVzX2FfdmFsdWVfb2ZfdHlwZV8xOmkoNTA4MCwxLFwiV2F0Y2hfb3B0aW9uXzBfcmVxdWlyZXNfYV92YWx1ZV9vZl90eXBlXzFfNTA4MFwiLFwiV2F0Y2ggb3B0aW9uICd7MH0nIHJlcXVpcmVzIGEgdmFsdWUgb2YgdHlwZSB7MX0uXCIpLENhbm5vdF9maW5kX2FfdHNjb25maWdfanNvbl9maWxlX2F0X3RoZV9jdXJyZW50X2RpcmVjdG9yeV9Db2xvbl8wOmkoNTA4MSwxLFwiQ2Fubm90X2ZpbmRfYV90c2NvbmZpZ19qc29uX2ZpbGVfYXRfdGhlX2N1cnJlbnRfZGlyZWN0b3J5X0NvbG9uXzBfNTA4MVwiLFwiQ2Fubm90IGZpbmQgYSB0c2NvbmZpZy5qc29uIGZpbGUgYXQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5OiB7MH0uXCIpLF8wX2NvdWxkX2JlX2luc3RhbnRpYXRlZF93aXRoX2FuX2FyYml0cmFyeV90eXBlX3doaWNoX2NvdWxkX2JlX3VucmVsYXRlZF90b18xOmkoNTA4MiwxLFwiXzBfY291bGRfYmVfaW5zdGFudGlhdGVkX3dpdGhfYW5fYXJiaXRyYXJ5X3R5cGVfd2hpY2hfY291bGRfYmVfdW5yZWxhdGVkX3RvXzFfNTA4MlwiLFwiJ3swfScgY291bGQgYmUgaW5zdGFudGlhdGVkIHdpdGggYW4gYXJiaXRyYXJ5IHR5cGUgd2hpY2ggY291bGQgYmUgdW5yZWxhdGVkIHRvICd7MX0nLlwiKSxDYW5ub3RfcmVhZF9maWxlXzA6aSg1MDgzLDEsXCJDYW5ub3RfcmVhZF9maWxlXzBfNTA4M1wiLFwiQ2Fubm90IHJlYWQgZmlsZSAnezB9Jy5cIiksQV90dXBsZV9tZW1iZXJfY2Fubm90X2JlX2JvdGhfb3B0aW9uYWxfYW5kX3Jlc3Q6aSg1MDg1LDEsXCJBX3R1cGxlX21lbWJlcl9jYW5ub3RfYmVfYm90aF9vcHRpb25hbF9hbmRfcmVzdF81MDg1XCIsXCJBIHR1cGxlIG1lbWJlciBjYW5ub3QgYmUgYm90aCBvcHRpb25hbCBhbmQgcmVzdC5cIiksQV9sYWJlbGVkX3R1cGxlX2VsZW1lbnRfaXNfZGVjbGFyZWRfYXNfb3B0aW9uYWxfd2l0aF9hX3F1ZXN0aW9uX21hcmtfYWZ0ZXJfdGhlX25hbWVfYW5kX2JlZm9yZV90aGVfY29sb25fcmF0aGVyX3RoYW5fYWZ0ZXJfdGhlX3R5cGU6aSg1MDg2LDEsXCJBX2xhYmVsZWRfdHVwbGVfZWxlbWVudF9pc19kZWNsYXJlZF9hc19vcHRpb25hbF93aXRoX2FfcXVlc3Rpb25fbWFya19hZnRlcl90aGVfbmFtZV9hbmRfYmVmb3JlX3RoZV9jXzUwODZcIixcIkEgbGFiZWxlZCB0dXBsZSBlbGVtZW50IGlzIGRlY2xhcmVkIGFzIG9wdGlvbmFsIHdpdGggYSBxdWVzdGlvbiBtYXJrIGFmdGVyIHRoZSBuYW1lIGFuZCBiZWZvcmUgdGhlIGNvbG9uLCByYXRoZXIgdGhhbiBhZnRlciB0aGUgdHlwZS5cIiksQV9sYWJlbGVkX3R1cGxlX2VsZW1lbnRfaXNfZGVjbGFyZWRfYXNfcmVzdF93aXRoX2FfYmVmb3JlX3RoZV9uYW1lX3JhdGhlcl90aGFuX2JlZm9yZV90aGVfdHlwZTppKDUwODcsMSxcIkFfbGFiZWxlZF90dXBsZV9lbGVtZW50X2lzX2RlY2xhcmVkX2FzX3Jlc3Rfd2l0aF9hX2JlZm9yZV90aGVfbmFtZV9yYXRoZXJfdGhhbl9iZWZvcmVfdGhlX3R5cGVfNTA4N1wiLFwiQSBsYWJlbGVkIHR1cGxlIGVsZW1lbnQgaXMgZGVjbGFyZWQgYXMgcmVzdCB3aXRoIGEgJy4uLicgYmVmb3JlIHRoZSBuYW1lLCByYXRoZXIgdGhhbiBiZWZvcmUgdGhlIHR5cGUuXCIpLFRoZV9pbmZlcnJlZF90eXBlX29mXzBfcmVmZXJlbmNlc19hX3R5cGVfd2l0aF9hX2N5Y2xpY19zdHJ1Y3R1cmVfd2hpY2hfY2Fubm90X2JlX3RyaXZpYWxseV9zZXJpYWxpemVkX0FfdHlwZV9hbm5vdGF0aW9uX2lzX25lY2Vzc2FyeTppKDUwODgsMSxcIlRoZV9pbmZlcnJlZF90eXBlX29mXzBfcmVmZXJlbmNlc19hX3R5cGVfd2l0aF9hX2N5Y2xpY19zdHJ1Y3R1cmVfd2hpY2hfY2Fubm90X2JlX3RyaXZpYWxseV9zZXJpYWxpemVfNTA4OFwiLFwiVGhlIGluZmVycmVkIHR5cGUgb2YgJ3swfScgcmVmZXJlbmNlcyBhIHR5cGUgd2l0aCBhIGN5Y2xpYyBzdHJ1Y3R1cmUgd2hpY2ggY2Fubm90IGJlIHRyaXZpYWxseSBzZXJpYWxpemVkLiBBIHR5cGUgYW5ub3RhdGlvbiBpcyBuZWNlc3NhcnkuXCIpLE9wdGlvbl8wX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2hlbl9vcHRpb25fanN4X2lzXzE6aSg1MDg5LDEsXCJPcHRpb25fMF9jYW5ub3RfYmVfc3BlY2lmaWVkX3doZW5fb3B0aW9uX2pzeF9pc18xXzUwODlcIixcIk9wdGlvbiAnezB9JyBjYW5ub3QgYmUgc3BlY2lmaWVkIHdoZW4gb3B0aW9uICdqc3gnIGlzICd7MX0nLlwiKSxOb25fcmVsYXRpdmVfcGF0aHNfYXJlX25vdF9hbGxvd2VkX3doZW5fYmFzZVVybF9pc19ub3Rfc2V0X0RpZF95b3VfZm9yZ2V0X2FfbGVhZGluZ19TbGFzaDppKDUwOTAsMSxcIk5vbl9yZWxhdGl2ZV9wYXRoc19hcmVfbm90X2FsbG93ZWRfd2hlbl9iYXNlVXJsX2lzX25vdF9zZXRfRGlkX3lvdV9mb3JnZXRfYV9sZWFkaW5nX1NsYXNoXzUwOTBcIixcIk5vbi1yZWxhdGl2ZSBwYXRocyBhcmUgbm90IGFsbG93ZWQgd2hlbiAnYmFzZVVybCcgaXMgbm90IHNldC4gRGlkIHlvdSBmb3JnZXQgYSBsZWFkaW5nICcuLyc/XCIpLE9wdGlvbl9wcmVzZXJ2ZUNvbnN0RW51bXNfY2Fubm90X2JlX2Rpc2FibGVkX3doZW5fMF9pc19lbmFibGVkOmkoNTA5MSwxLFwiT3B0aW9uX3ByZXNlcnZlQ29uc3RFbnVtc19jYW5ub3RfYmVfZGlzYWJsZWRfd2hlbl8wX2lzX2VuYWJsZWRfNTA5MVwiLFwiT3B0aW9uICdwcmVzZXJ2ZUNvbnN0RW51bXMnIGNhbm5vdCBiZSBkaXNhYmxlZCB3aGVuICd7MH0nIGlzIGVuYWJsZWQuXCIpLFRoZV9yb290X3ZhbHVlX29mX2FfMF9maWxlX211c3RfYmVfYW5fb2JqZWN0OmkoNTA5MiwxLFwiVGhlX3Jvb3RfdmFsdWVfb2ZfYV8wX2ZpbGVfbXVzdF9iZV9hbl9vYmplY3RfNTA5MlwiLFwiVGhlIHJvb3QgdmFsdWUgb2YgYSAnezB9JyBmaWxlIG11c3QgYmUgYW4gb2JqZWN0LlwiKSxDb21waWxlcl9vcHRpb25fMF9tYXlfb25seV9iZV91c2VkX3dpdGhfYnVpbGQ6aSg1MDkzLDEsXCJDb21waWxlcl9vcHRpb25fMF9tYXlfb25seV9iZV91c2VkX3dpdGhfYnVpbGRfNTA5M1wiLFwiQ29tcGlsZXIgb3B0aW9uICctLXswfScgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICctLWJ1aWxkJy5cIiksQ29tcGlsZXJfb3B0aW9uXzBfbWF5X25vdF9iZV91c2VkX3dpdGhfYnVpbGQ6aSg1MDk0LDEsXCJDb21waWxlcl9vcHRpb25fMF9tYXlfbm90X2JlX3VzZWRfd2l0aF9idWlsZF81MDk0XCIsXCJDb21waWxlciBvcHRpb24gJy0tezB9JyBtYXkgbm90IGJlIHVzZWQgd2l0aCAnLS1idWlsZCcuXCIpLE9wdGlvbl8wX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9tb2R1bGVfaXNfc2V0X3RvX2VzMjAxNV9vcl9sYXRlcjppKDUwOTUsMSxcIk9wdGlvbl8wX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9tb2R1bGVfaXNfc2V0X3RvX2VzMjAxNV9vcl9sYXRlcl81MDk1XCIsXCJPcHRpb24gJ3swfScgY2FuIG9ubHkgYmUgdXNlZCB3aGVuICdtb2R1bGUnIGlzIHNldCB0byAnZXMyMDE1JyBvciBsYXRlci5cIiksT3B0aW9uX2FsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9laXRoZXJfbm9FbWl0X29yX2VtaXREZWNsYXJhdGlvbk9ubHlfaXNfc2V0OmkoNTA5NiwxLFwiT3B0aW9uX2FsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zX2Nhbl9vbmx5X2JlX3VzZWRfd2hlbl9laXRoZXJfbm9FbWl0X29yX2VtaXREZWNsYXJhdGlvbk9ubHlfaXNfc2V0XzUwOTZcIixcIk9wdGlvbiAnYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnMnIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBlaXRoZXIgJ25vRW1pdCcgb3IgJ2VtaXREZWNsYXJhdGlvbk9ubHknIGlzIHNldC5cIiksQW5faW1wb3J0X3BhdGhfY2FuX29ubHlfZW5kX3dpdGhfYV8wX2V4dGVuc2lvbl93aGVuX2FsbG93SW1wb3J0aW5nVHNFeHRlbnNpb25zX2lzX2VuYWJsZWQ6aSg1MDk3LDEsXCJBbl9pbXBvcnRfcGF0aF9jYW5fb25seV9lbmRfd2l0aF9hXzBfZXh0ZW5zaW9uX3doZW5fYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnNfaXNfZW5hYmxlZF81MDk3XCIsXCJBbiBpbXBvcnQgcGF0aCBjYW4gb25seSBlbmQgd2l0aCBhICd7MH0nIGV4dGVuc2lvbiB3aGVuICdhbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9ucycgaXMgZW5hYmxlZC5cIiksT3B0aW9uXzBfY2FuX29ubHlfYmVfdXNlZF93aGVuX21vZHVsZVJlc29sdXRpb25faXNfc2V0X3RvX25vZGUxNl9ub2RlbmV4dF9vcl9idW5kbGVyOmkoNTA5OCwxLFwiT3B0aW9uXzBfY2FuX29ubHlfYmVfdXNlZF93aGVuX21vZHVsZVJlc29sdXRpb25faXNfc2V0X3RvX25vZGUxNl9ub2RlbmV4dF9vcl9idW5kbGVyXzUwOThcIixcIk9wdGlvbiAnezB9JyBjYW4gb25seSBiZSB1c2VkIHdoZW4gJ21vZHVsZVJlc29sdXRpb24nIGlzIHNldCB0byAnbm9kZTE2JywgJ25vZGVuZXh0Jywgb3IgJ2J1bmRsZXInLlwiKSxPcHRpb25fMF9pc19kZXByZWNhdGVkX2FuZF93aWxsX3N0b3BfZnVuY3Rpb25pbmdfaW5fVHlwZVNjcmlwdF8xX1NwZWNpZnlfY29tcGlsZXJPcHRpb25faWdub3JlRGVwcmVjYXRpb25zX0NvbG9uXzJfdG9fc2lsZW5jZV90aGlzX2Vycm9yOmkoNTEwMSwxLFwiT3B0aW9uXzBfaXNfZGVwcmVjYXRlZF9hbmRfd2lsbF9zdG9wX2Z1bmN0aW9uaW5nX2luX1R5cGVTY3JpcHRfMV9TcGVjaWZ5X2NvbXBpbGVyT3B0aW9uX2lnbm9yZURlcHJlY181MTAxXCIsYE9wdGlvbiAnezB9JyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIHN0b3AgZnVuY3Rpb25pbmcgaW4gVHlwZVNjcmlwdCB7MX0uIFNwZWNpZnkgY29tcGlsZXJPcHRpb24gJ1wiaWdub3JlRGVwcmVjYXRpb25zXCI6IFwiezJ9XCInIHRvIHNpbGVuY2UgdGhpcyBlcnJvci5gKSxPcHRpb25fMF9oYXNfYmVlbl9yZW1vdmVkX1BsZWFzZV9yZW1vdmVfaXRfZnJvbV95b3VyX2NvbmZpZ3VyYXRpb246aSg1MTAyLDEsXCJPcHRpb25fMF9oYXNfYmVlbl9yZW1vdmVkX1BsZWFzZV9yZW1vdmVfaXRfZnJvbV95b3VyX2NvbmZpZ3VyYXRpb25fNTEwMlwiLFwiT3B0aW9uICd7MH0nIGhhcyBiZWVuIHJlbW92ZWQuIFBsZWFzZSByZW1vdmUgaXQgZnJvbSB5b3VyIGNvbmZpZ3VyYXRpb24uXCIpLEludmFsaWRfdmFsdWVfZm9yX2lnbm9yZURlcHJlY2F0aW9uczppKDUxMDMsMSxcIkludmFsaWRfdmFsdWVfZm9yX2lnbm9yZURlcHJlY2F0aW9uc181MTAzXCIsXCJJbnZhbGlkIHZhbHVlIGZvciAnLS1pZ25vcmVEZXByZWNhdGlvbnMnLlwiKSxPcHRpb25fMF9pc19yZWR1bmRhbnRfYW5kX2Nhbm5vdF9iZV9zcGVjaWZpZWRfd2l0aF9vcHRpb25fMTppKDUxMDQsMSxcIk9wdGlvbl8wX2lzX3JlZHVuZGFudF9hbmRfY2Fubm90X2JlX3NwZWNpZmllZF93aXRoX29wdGlvbl8xXzUxMDRcIixcIk9wdGlvbiAnezB9JyBpcyByZWR1bmRhbnQgYW5kIGNhbm5vdCBiZSBzcGVjaWZpZWQgd2l0aCBvcHRpb24gJ3sxfScuXCIpLE9wdGlvbl92ZXJiYXRpbU1vZHVsZVN5bnRheF9jYW5ub3RfYmVfdXNlZF93aGVuX21vZHVsZV9pc19zZXRfdG9fVU1EX0FNRF9vcl9TeXN0ZW06aSg1MTA1LDEsXCJPcHRpb25fdmVyYmF0aW1Nb2R1bGVTeW50YXhfY2Fubm90X2JlX3VzZWRfd2hlbl9tb2R1bGVfaXNfc2V0X3RvX1VNRF9BTURfb3JfU3lzdGVtXzUxMDVcIixcIk9wdGlvbiAndmVyYmF0aW1Nb2R1bGVTeW50YXgnIGNhbm5vdCBiZSB1c2VkIHdoZW4gJ21vZHVsZScgaXMgc2V0IHRvICdVTUQnLCAnQU1EJywgb3IgJ1N5c3RlbScuXCIpLFVzZV8wX2luc3RlYWQ6aSg1MTA2LDMsXCJVc2VfMF9pbnN0ZWFkXzUxMDZcIixcIlVzZSAnezB9JyBpbnN0ZWFkLlwiKSxPcHRpb25fMF8xX2lzX2RlcHJlY2F0ZWRfYW5kX3dpbGxfc3RvcF9mdW5jdGlvbmluZ19pbl9UeXBlU2NyaXB0XzJfU3BlY2lmeV9jb21waWxlck9wdGlvbl9pZ25vcmVEZXByZWNhdGlvbnNfQ29sb25fM190b19zaWxlbmNlX3RoaXNfZXJyb3I6aSg1MTA3LDEsXCJPcHRpb25fMF8xX2lzX2RlcHJlY2F0ZWRfYW5kX3dpbGxfc3RvcF9mdW5jdGlvbmluZ19pbl9UeXBlU2NyaXB0XzJfU3BlY2lmeV9jb21waWxlck9wdGlvbl9pZ25vcmVEZXByXzUxMDdcIixgT3B0aW9uICd7MH09ezF9JyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIHN0b3AgZnVuY3Rpb25pbmcgaW4gVHlwZVNjcmlwdCB7Mn0uIFNwZWNpZnkgY29tcGlsZXJPcHRpb24gJ1wiaWdub3JlRGVwcmVjYXRpb25zXCI6IFwiezN9XCInIHRvIHNpbGVuY2UgdGhpcyBlcnJvci5gKSxPcHRpb25fMF8xX2hhc19iZWVuX3JlbW92ZWRfUGxlYXNlX3JlbW92ZV9pdF9mcm9tX3lvdXJfY29uZmlndXJhdGlvbjppKDUxMDgsMSxcIk9wdGlvbl8wXzFfaGFzX2JlZW5fcmVtb3ZlZF9QbGVhc2VfcmVtb3ZlX2l0X2Zyb21feW91cl9jb25maWd1cmF0aW9uXzUxMDhcIixcIk9wdGlvbiAnezB9PXsxfScgaGFzIGJlZW4gcmVtb3ZlZC4gUGxlYXNlIHJlbW92ZSBpdCBmcm9tIHlvdXIgY29uZmlndXJhdGlvbi5cIiksT3B0aW9uX21vZHVsZVJlc29sdXRpb25fbXVzdF9iZV9zZXRfdG9fMF9vcl9sZWZ0X3Vuc3BlY2lmaWVkX3doZW5fb3B0aW9uX21vZHVsZV9pc19zZXRfdG9fMTppKDUxMDksMSxcIk9wdGlvbl9tb2R1bGVSZXNvbHV0aW9uX211c3RfYmVfc2V0X3RvXzBfb3JfbGVmdF91bnNwZWNpZmllZF93aGVuX29wdGlvbl9tb2R1bGVfaXNfc2V0X3RvXzFfNTEwOVwiLFwiT3B0aW9uICdtb2R1bGVSZXNvbHV0aW9uJyBtdXN0IGJlIHNldCB0byAnezB9JyAob3IgbGVmdCB1bnNwZWNpZmllZCkgd2hlbiBvcHRpb24gJ21vZHVsZScgaXMgc2V0IHRvICd7MX0nLlwiKSxPcHRpb25fbW9kdWxlX211c3RfYmVfc2V0X3RvXzBfd2hlbl9vcHRpb25fbW9kdWxlUmVzb2x1dGlvbl9pc19zZXRfdG9fMTppKDUxMTAsMSxcIk9wdGlvbl9tb2R1bGVfbXVzdF9iZV9zZXRfdG9fMF93aGVuX29wdGlvbl9tb2R1bGVSZXNvbHV0aW9uX2lzX3NldF90b18xXzUxMTBcIixcIk9wdGlvbiAnbW9kdWxlJyBtdXN0IGJlIHNldCB0byAnezB9JyB3aGVuIG9wdGlvbiAnbW9kdWxlUmVzb2x1dGlvbicgaXMgc2V0IHRvICd7MX0nLlwiKSxHZW5lcmF0ZXNfYV9zb3VyY2VtYXBfZm9yX2VhY2hfY29ycmVzcG9uZGluZ19kX3RzX2ZpbGU6aSg2ZTMsMyxcIkdlbmVyYXRlc19hX3NvdXJjZW1hcF9mb3JfZWFjaF9jb3JyZXNwb25kaW5nX2RfdHNfZmlsZV82MDAwXCIsXCJHZW5lcmF0ZXMgYSBzb3VyY2VtYXAgZm9yIGVhY2ggY29ycmVzcG9uZGluZyAnLmQudHMnIGZpbGUuXCIpLENvbmNhdGVuYXRlX2FuZF9lbWl0X291dHB1dF90b19zaW5nbGVfZmlsZTppKDYwMDEsMyxcIkNvbmNhdGVuYXRlX2FuZF9lbWl0X291dHB1dF90b19zaW5nbGVfZmlsZV82MDAxXCIsXCJDb25jYXRlbmF0ZSBhbmQgZW1pdCBvdXRwdXQgdG8gc2luZ2xlIGZpbGUuXCIpLEdlbmVyYXRlc19jb3JyZXNwb25kaW5nX2RfdHNfZmlsZTppKDYwMDIsMyxcIkdlbmVyYXRlc19jb3JyZXNwb25kaW5nX2RfdHNfZmlsZV82MDAyXCIsXCJHZW5lcmF0ZXMgY29ycmVzcG9uZGluZyAnLmQudHMnIGZpbGUuXCIpLFNwZWNpZnlfdGhlX2xvY2F0aW9uX3doZXJlX2RlYnVnZ2VyX3Nob3VsZF9sb2NhdGVfVHlwZVNjcmlwdF9maWxlc19pbnN0ZWFkX29mX3NvdXJjZV9sb2NhdGlvbnM6aSg2MDA0LDMsXCJTcGVjaWZ5X3RoZV9sb2NhdGlvbl93aGVyZV9kZWJ1Z2dlcl9zaG91bGRfbG9jYXRlX1R5cGVTY3JpcHRfZmlsZXNfaW5zdGVhZF9vZl9zb3VyY2VfbG9jYXRpb25zXzYwMDRcIixcIlNwZWNpZnkgdGhlIGxvY2F0aW9uIHdoZXJlIGRlYnVnZ2VyIHNob3VsZCBsb2NhdGUgVHlwZVNjcmlwdCBmaWxlcyBpbnN0ZWFkIG9mIHNvdXJjZSBsb2NhdGlvbnMuXCIpLFdhdGNoX2lucHV0X2ZpbGVzOmkoNjAwNSwzLFwiV2F0Y2hfaW5wdXRfZmlsZXNfNjAwNVwiLFwiV2F0Y2ggaW5wdXQgZmlsZXMuXCIpLFJlZGlyZWN0X291dHB1dF9zdHJ1Y3R1cmVfdG9fdGhlX2RpcmVjdG9yeTppKDYwMDYsMyxcIlJlZGlyZWN0X291dHB1dF9zdHJ1Y3R1cmVfdG9fdGhlX2RpcmVjdG9yeV82MDA2XCIsXCJSZWRpcmVjdCBvdXRwdXQgc3RydWN0dXJlIHRvIHRoZSBkaXJlY3RvcnkuXCIpLERvX25vdF9lcmFzZV9jb25zdF9lbnVtX2RlY2xhcmF0aW9uc19pbl9nZW5lcmF0ZWRfY29kZTppKDYwMDcsMyxcIkRvX25vdF9lcmFzZV9jb25zdF9lbnVtX2RlY2xhcmF0aW9uc19pbl9nZW5lcmF0ZWRfY29kZV82MDA3XCIsXCJEbyBub3QgZXJhc2UgY29uc3QgZW51bSBkZWNsYXJhdGlvbnMgaW4gZ2VuZXJhdGVkIGNvZGUuXCIpLERvX25vdF9lbWl0X291dHB1dHNfaWZfYW55X2Vycm9yc193ZXJlX3JlcG9ydGVkOmkoNjAwOCwzLFwiRG9fbm90X2VtaXRfb3V0cHV0c19pZl9hbnlfZXJyb3JzX3dlcmVfcmVwb3J0ZWRfNjAwOFwiLFwiRG8gbm90IGVtaXQgb3V0cHV0cyBpZiBhbnkgZXJyb3JzIHdlcmUgcmVwb3J0ZWQuXCIpLERvX25vdF9lbWl0X2NvbW1lbnRzX3RvX291dHB1dDppKDYwMDksMyxcIkRvX25vdF9lbWl0X2NvbW1lbnRzX3RvX291dHB1dF82MDA5XCIsXCJEbyBub3QgZW1pdCBjb21tZW50cyB0byBvdXRwdXQuXCIpLERvX25vdF9lbWl0X291dHB1dHM6aSg2MDEwLDMsXCJEb19ub3RfZW1pdF9vdXRwdXRzXzYwMTBcIixcIkRvIG5vdCBlbWl0IG91dHB1dHMuXCIpLEFsbG93X2RlZmF1bHRfaW1wb3J0c19mcm9tX21vZHVsZXNfd2l0aF9ub19kZWZhdWx0X2V4cG9ydF9UaGlzX2RvZXNfbm90X2FmZmVjdF9jb2RlX2VtaXRfanVzdF90eXBlY2hlY2tpbmc6aSg2MDExLDMsXCJBbGxvd19kZWZhdWx0X2ltcG9ydHNfZnJvbV9tb2R1bGVzX3dpdGhfbm9fZGVmYXVsdF9leHBvcnRfVGhpc19kb2VzX25vdF9hZmZlY3RfY29kZV9lbWl0X2p1c3RfdHlwZWNoXzYwMTFcIixcIkFsbG93IGRlZmF1bHQgaW1wb3J0cyBmcm9tIG1vZHVsZXMgd2l0aCBubyBkZWZhdWx0IGV4cG9ydC4gVGhpcyBkb2VzIG5vdCBhZmZlY3QgY29kZSBlbWl0LCBqdXN0IHR5cGVjaGVja2luZy5cIiksU2tpcF90eXBlX2NoZWNraW5nX29mX2RlY2xhcmF0aW9uX2ZpbGVzOmkoNjAxMiwzLFwiU2tpcF90eXBlX2NoZWNraW5nX29mX2RlY2xhcmF0aW9uX2ZpbGVzXzYwMTJcIixcIlNraXAgdHlwZSBjaGVja2luZyBvZiBkZWNsYXJhdGlvbiBmaWxlcy5cIiksRG9fbm90X3Jlc29sdmVfdGhlX3JlYWxfcGF0aF9vZl9zeW1saW5rczppKDYwMTMsMyxcIkRvX25vdF9yZXNvbHZlX3RoZV9yZWFsX3BhdGhfb2Zfc3ltbGlua3NfNjAxM1wiLFwiRG8gbm90IHJlc29sdmUgdGhlIHJlYWwgcGF0aCBvZiBzeW1saW5rcy5cIiksT25seV9lbWl0X2RfdHNfZGVjbGFyYXRpb25fZmlsZXM6aSg2MDE0LDMsXCJPbmx5X2VtaXRfZF90c19kZWNsYXJhdGlvbl9maWxlc182MDE0XCIsXCJPbmx5IGVtaXQgJy5kLnRzJyBkZWNsYXJhdGlvbiBmaWxlcy5cIiksU3BlY2lmeV9FQ01BU2NyaXB0X3RhcmdldF92ZXJzaW9uOmkoNjAxNSwzLFwiU3BlY2lmeV9FQ01BU2NyaXB0X3RhcmdldF92ZXJzaW9uXzYwMTVcIixcIlNwZWNpZnkgRUNNQVNjcmlwdCB0YXJnZXQgdmVyc2lvbi5cIiksU3BlY2lmeV9tb2R1bGVfY29kZV9nZW5lcmF0aW9uOmkoNjAxNiwzLFwiU3BlY2lmeV9tb2R1bGVfY29kZV9nZW5lcmF0aW9uXzYwMTZcIixcIlNwZWNpZnkgbW9kdWxlIGNvZGUgZ2VuZXJhdGlvbi5cIiksUHJpbnRfdGhpc19tZXNzYWdlOmkoNjAxNywzLFwiUHJpbnRfdGhpc19tZXNzYWdlXzYwMTdcIixcIlByaW50IHRoaXMgbWVzc2FnZS5cIiksUHJpbnRfdGhlX2NvbXBpbGVyX3NfdmVyc2lvbjppKDYwMTksMyxcIlByaW50X3RoZV9jb21waWxlcl9zX3ZlcnNpb25fNjAxOVwiLFwiUHJpbnQgdGhlIGNvbXBpbGVyJ3MgdmVyc2lvbi5cIiksQ29tcGlsZV90aGVfcHJvamVjdF9naXZlbl90aGVfcGF0aF90b19pdHNfY29uZmlndXJhdGlvbl9maWxlX29yX3RvX2FfZm9sZGVyX3dpdGhfYV90c2NvbmZpZ19qc29uOmkoNjAyMCwzLFwiQ29tcGlsZV90aGVfcHJvamVjdF9naXZlbl90aGVfcGF0aF90b19pdHNfY29uZmlndXJhdGlvbl9maWxlX29yX3RvX2FfZm9sZGVyX3dpdGhfYV90c2NvbmZpZ19qc29uXzYwMjBcIixcIkNvbXBpbGUgdGhlIHByb2plY3QgZ2l2ZW4gdGhlIHBhdGggdG8gaXRzIGNvbmZpZ3VyYXRpb24gZmlsZSwgb3IgdG8gYSBmb2xkZXIgd2l0aCBhICd0c2NvbmZpZy5qc29uJy5cIiksU3ludGF4X0NvbG9uXzA6aSg2MDIzLDMsXCJTeW50YXhfQ29sb25fMF82MDIzXCIsXCJTeW50YXg6IHswfVwiKSxvcHRpb25zOmkoNjAyNCwzLFwib3B0aW9uc182MDI0XCIsXCJvcHRpb25zXCIpLGZpbGU6aSg2MDI1LDMsXCJmaWxlXzYwMjVcIixcImZpbGVcIiksRXhhbXBsZXNfQ29sb25fMDppKDYwMjYsMyxcIkV4YW1wbGVzX0NvbG9uXzBfNjAyNlwiLFwiRXhhbXBsZXM6IHswfVwiKSxPcHRpb25zX0NvbG9uOmkoNjAyNywzLFwiT3B0aW9uc19Db2xvbl82MDI3XCIsXCJPcHRpb25zOlwiKSxWZXJzaW9uXzA6aSg2MDI5LDMsXCJWZXJzaW9uXzBfNjAyOVwiLFwiVmVyc2lvbiB7MH1cIiksSW5zZXJ0X2NvbW1hbmRfbGluZV9vcHRpb25zX2FuZF9maWxlc19mcm9tX2FfZmlsZTppKDYwMzAsMyxcIkluc2VydF9jb21tYW5kX2xpbmVfb3B0aW9uc19hbmRfZmlsZXNfZnJvbV9hX2ZpbGVfNjAzMFwiLFwiSW5zZXJ0IGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBmaWxlcyBmcm9tIGEgZmlsZS5cIiksU3RhcnRpbmdfY29tcGlsYXRpb25faW5fd2F0Y2hfbW9kZTppKDYwMzEsMyxcIlN0YXJ0aW5nX2NvbXBpbGF0aW9uX2luX3dhdGNoX21vZGVfNjAzMVwiLFwiU3RhcnRpbmcgY29tcGlsYXRpb24gaW4gd2F0Y2ggbW9kZS4uLlwiKSxGaWxlX2NoYW5nZV9kZXRlY3RlZF9TdGFydGluZ19pbmNyZW1lbnRhbF9jb21waWxhdGlvbjppKDYwMzIsMyxcIkZpbGVfY2hhbmdlX2RldGVjdGVkX1N0YXJ0aW5nX2luY3JlbWVudGFsX2NvbXBpbGF0aW9uXzYwMzJcIixcIkZpbGUgY2hhbmdlIGRldGVjdGVkLiBTdGFydGluZyBpbmNyZW1lbnRhbCBjb21waWxhdGlvbi4uLlwiKSxLSU5EOmkoNjAzNCwzLFwiS0lORF82MDM0XCIsXCJLSU5EXCIpLEZJTEU6aSg2MDM1LDMsXCJGSUxFXzYwMzVcIixcIkZJTEVcIiksVkVSU0lPTjppKDYwMzYsMyxcIlZFUlNJT05fNjAzNlwiLFwiVkVSU0lPTlwiKSxMT0NBVElPTjppKDYwMzcsMyxcIkxPQ0FUSU9OXzYwMzdcIixcIkxPQ0FUSU9OXCIpLERJUkVDVE9SWTppKDYwMzgsMyxcIkRJUkVDVE9SWV82MDM4XCIsXCJESVJFQ1RPUllcIiksU1RSQVRFR1k6aSg2MDM5LDMsXCJTVFJBVEVHWV82MDM5XCIsXCJTVFJBVEVHWVwiKSxGSUxFX09SX0RJUkVDVE9SWTppKDYwNDAsMyxcIkZJTEVfT1JfRElSRUNUT1JZXzYwNDBcIixcIkZJTEUgT1IgRElSRUNUT1JZXCIpLEVycm9yc19GaWxlczppKDYwNDEsMyxcIkVycm9yc19GaWxlc182MDQxXCIsXCJFcnJvcnMgIEZpbGVzXCIpLEdlbmVyYXRlc19jb3JyZXNwb25kaW5nX21hcF9maWxlOmkoNjA0MywzLFwiR2VuZXJhdGVzX2NvcnJlc3BvbmRpbmdfbWFwX2ZpbGVfNjA0M1wiLFwiR2VuZXJhdGVzIGNvcnJlc3BvbmRpbmcgJy5tYXAnIGZpbGUuXCIpLENvbXBpbGVyX29wdGlvbl8wX2V4cGVjdHNfYW5fYXJndW1lbnQ6aSg2MDQ0LDEsXCJDb21waWxlcl9vcHRpb25fMF9leHBlY3RzX2FuX2FyZ3VtZW50XzYwNDRcIixcIkNvbXBpbGVyIG9wdGlvbiAnezB9JyBleHBlY3RzIGFuIGFyZ3VtZW50LlwiKSxVbnRlcm1pbmF0ZWRfcXVvdGVkX3N0cmluZ19pbl9yZXNwb25zZV9maWxlXzA6aSg2MDQ1LDEsXCJVbnRlcm1pbmF0ZWRfcXVvdGVkX3N0cmluZ19pbl9yZXNwb25zZV9maWxlXzBfNjA0NVwiLFwiVW50ZXJtaW5hdGVkIHF1b3RlZCBzdHJpbmcgaW4gcmVzcG9uc2UgZmlsZSAnezB9Jy5cIiksQXJndW1lbnRfZm9yXzBfb3B0aW9uX211c3RfYmVfQ29sb25fMTppKDYwNDYsMSxcIkFyZ3VtZW50X2Zvcl8wX29wdGlvbl9tdXN0X2JlX0NvbG9uXzFfNjA0NlwiLFwiQXJndW1lbnQgZm9yICd7MH0nIG9wdGlvbiBtdXN0IGJlOiB7MX0uXCIpLExvY2FsZV9tdXN0X2JlX29mX3RoZV9mb3JtX2xhbmd1YWdlX29yX2xhbmd1YWdlX3RlcnJpdG9yeV9Gb3JfZXhhbXBsZV8wX29yXzE6aSg2MDQ4LDEsXCJMb2NhbGVfbXVzdF9iZV9vZl90aGVfZm9ybV9sYW5ndWFnZV9vcl9sYW5ndWFnZV90ZXJyaXRvcnlfRm9yX2V4YW1wbGVfMF9vcl8xXzYwNDhcIixcIkxvY2FsZSBtdXN0IGJlIG9mIHRoZSBmb3JtIDxsYW5ndWFnZT4gb3IgPGxhbmd1YWdlPi08dGVycml0b3J5Pi4gRm9yIGV4YW1wbGUgJ3swfScgb3IgJ3sxfScuXCIpLFVuYWJsZV90b19vcGVuX2ZpbGVfMDppKDYwNTAsMSxcIlVuYWJsZV90b19vcGVuX2ZpbGVfMF82MDUwXCIsXCJVbmFibGUgdG8gb3BlbiBmaWxlICd7MH0nLlwiKSxDb3JydXB0ZWRfbG9jYWxlX2ZpbGVfMDppKDYwNTEsMSxcIkNvcnJ1cHRlZF9sb2NhbGVfZmlsZV8wXzYwNTFcIixcIkNvcnJ1cHRlZCBsb2NhbGUgZmlsZSB7MH0uXCIpLFJhaXNlX2Vycm9yX29uX2V4cHJlc3Npb25zX2FuZF9kZWNsYXJhdGlvbnNfd2l0aF9hbl9pbXBsaWVkX2FueV90eXBlOmkoNjA1MiwzLFwiUmFpc2VfZXJyb3Jfb25fZXhwcmVzc2lvbnNfYW5kX2RlY2xhcmF0aW9uc193aXRoX2FuX2ltcGxpZWRfYW55X3R5cGVfNjA1MlwiLFwiUmFpc2UgZXJyb3Igb24gZXhwcmVzc2lvbnMgYW5kIGRlY2xhcmF0aW9ucyB3aXRoIGFuIGltcGxpZWQgJ2FueScgdHlwZS5cIiksRmlsZV8wX25vdF9mb3VuZDppKDYwNTMsMSxcIkZpbGVfMF9ub3RfZm91bmRfNjA1M1wiLFwiRmlsZSAnezB9JyBub3QgZm91bmQuXCIpLEZpbGVfMF9oYXNfYW5fdW5zdXBwb3J0ZWRfZXh0ZW5zaW9uX1RoZV9vbmx5X3N1cHBvcnRlZF9leHRlbnNpb25zX2FyZV8xOmkoNjA1NCwxLFwiRmlsZV8wX2hhc19hbl91bnN1cHBvcnRlZF9leHRlbnNpb25fVGhlX29ubHlfc3VwcG9ydGVkX2V4dGVuc2lvbnNfYXJlXzFfNjA1NFwiLFwiRmlsZSAnezB9JyBoYXMgYW4gdW5zdXBwb3J0ZWQgZXh0ZW5zaW9uLiBUaGUgb25seSBzdXBwb3J0ZWQgZXh0ZW5zaW9ucyBhcmUgezF9LlwiKSxTdXBwcmVzc19ub0ltcGxpY2l0QW55X2Vycm9yc19mb3JfaW5kZXhpbmdfb2JqZWN0c19sYWNraW5nX2luZGV4X3NpZ25hdHVyZXM6aSg2MDU1LDMsXCJTdXBwcmVzc19ub0ltcGxpY2l0QW55X2Vycm9yc19mb3JfaW5kZXhpbmdfb2JqZWN0c19sYWNraW5nX2luZGV4X3NpZ25hdHVyZXNfNjA1NVwiLFwiU3VwcHJlc3Mgbm9JbXBsaWNpdEFueSBlcnJvcnMgZm9yIGluZGV4aW5nIG9iamVjdHMgbGFja2luZyBpbmRleCBzaWduYXR1cmVzLlwiKSxEb19ub3RfZW1pdF9kZWNsYXJhdGlvbnNfZm9yX2NvZGVfdGhhdF9oYXNfYW5faW50ZXJuYWxfYW5ub3RhdGlvbjppKDYwNTYsMyxcIkRvX25vdF9lbWl0X2RlY2xhcmF0aW9uc19mb3JfY29kZV90aGF0X2hhc19hbl9pbnRlcm5hbF9hbm5vdGF0aW9uXzYwNTZcIixcIkRvIG5vdCBlbWl0IGRlY2xhcmF0aW9ucyBmb3IgY29kZSB0aGF0IGhhcyBhbiAnQGludGVybmFsJyBhbm5vdGF0aW9uLlwiKSxTcGVjaWZ5X3RoZV9yb290X2RpcmVjdG9yeV9vZl9pbnB1dF9maWxlc19Vc2VfdG9fY29udHJvbF90aGVfb3V0cHV0X2RpcmVjdG9yeV9zdHJ1Y3R1cmVfd2l0aF9vdXREaXI6aSg2MDU4LDMsXCJTcGVjaWZ5X3RoZV9yb290X2RpcmVjdG9yeV9vZl9pbnB1dF9maWxlc19Vc2VfdG9fY29udHJvbF90aGVfb3V0cHV0X2RpcmVjdG9yeV9zdHJ1Y3R1cmVfd2l0aF9vdXREaXJfNjA1OFwiLFwiU3BlY2lmeSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgaW5wdXQgZmlsZXMuIFVzZSB0byBjb250cm9sIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHN0cnVjdHVyZSB3aXRoIC0tb3V0RGlyLlwiKSxGaWxlXzBfaXNfbm90X3VuZGVyX3Jvb3REaXJfMV9yb290RGlyX2lzX2V4cGVjdGVkX3RvX2NvbnRhaW5fYWxsX3NvdXJjZV9maWxlczppKDYwNTksMSxcIkZpbGVfMF9pc19ub3RfdW5kZXJfcm9vdERpcl8xX3Jvb3REaXJfaXNfZXhwZWN0ZWRfdG9fY29udGFpbl9hbGxfc291cmNlX2ZpbGVzXzYwNTlcIixcIkZpbGUgJ3swfScgaXMgbm90IHVuZGVyICdyb290RGlyJyAnezF9Jy4gJ3Jvb3REaXInIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gYWxsIHNvdXJjZSBmaWxlcy5cIiksU3BlY2lmeV90aGVfZW5kX29mX2xpbmVfc2VxdWVuY2VfdG9fYmVfdXNlZF93aGVuX2VtaXR0aW5nX2ZpbGVzX0NvbG9uX0NSTEZfZG9zX29yX0xGX3VuaXg6aSg2MDYwLDMsXCJTcGVjaWZ5X3RoZV9lbmRfb2ZfbGluZV9zZXF1ZW5jZV90b19iZV91c2VkX3doZW5fZW1pdHRpbmdfZmlsZXNfQ29sb25fQ1JMRl9kb3Nfb3JfTEZfdW5peF82MDYwXCIsXCJTcGVjaWZ5IHRoZSBlbmQgb2YgbGluZSBzZXF1ZW5jZSB0byBiZSB1c2VkIHdoZW4gZW1pdHRpbmcgZmlsZXM6ICdDUkxGJyAoZG9zKSBvciAnTEYnICh1bml4KS5cIiksTkVXTElORTppKDYwNjEsMyxcIk5FV0xJTkVfNjA2MVwiLFwiTkVXTElORVwiKSxPcHRpb25fMF9jYW5fb25seV9iZV9zcGVjaWZpZWRfaW5fdHNjb25maWdfanNvbl9maWxlX29yX3NldF90b19udWxsX29uX2NvbW1hbmRfbGluZTppKDYwNjQsMSxcIk9wdGlvbl8wX2Nhbl9vbmx5X2JlX3NwZWNpZmllZF9pbl90c2NvbmZpZ19qc29uX2ZpbGVfb3Jfc2V0X3RvX251bGxfb25fY29tbWFuZF9saW5lXzYwNjRcIixcIk9wdGlvbiAnezB9JyBjYW4gb25seSBiZSBzcGVjaWZpZWQgaW4gJ3RzY29uZmlnLmpzb24nIGZpbGUgb3Igc2V0IHRvICdudWxsJyBvbiBjb21tYW5kIGxpbmUuXCIpLEVuYWJsZXNfZXhwZXJpbWVudGFsX3N1cHBvcnRfZm9yX0VTN19kZWNvcmF0b3JzOmkoNjA2NSwzLFwiRW5hYmxlc19leHBlcmltZW50YWxfc3VwcG9ydF9mb3JfRVM3X2RlY29yYXRvcnNfNjA2NVwiLFwiRW5hYmxlcyBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgRVM3IGRlY29yYXRvcnMuXCIpLEVuYWJsZXNfZXhwZXJpbWVudGFsX3N1cHBvcnRfZm9yX2VtaXR0aW5nX3R5cGVfbWV0YWRhdGFfZm9yX2RlY29yYXRvcnM6aSg2MDY2LDMsXCJFbmFibGVzX2V4cGVyaW1lbnRhbF9zdXBwb3J0X2Zvcl9lbWl0dGluZ190eXBlX21ldGFkYXRhX2Zvcl9kZWNvcmF0b3JzXzYwNjZcIixcIkVuYWJsZXMgZXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIGVtaXR0aW5nIHR5cGUgbWV0YWRhdGEgZm9yIGRlY29yYXRvcnMuXCIpLEluaXRpYWxpemVzX2FfVHlwZVNjcmlwdF9wcm9qZWN0X2FuZF9jcmVhdGVzX2FfdHNjb25maWdfanNvbl9maWxlOmkoNjA3MCwzLFwiSW5pdGlhbGl6ZXNfYV9UeXBlU2NyaXB0X3Byb2plY3RfYW5kX2NyZWF0ZXNfYV90c2NvbmZpZ19qc29uX2ZpbGVfNjA3MFwiLFwiSW5pdGlhbGl6ZXMgYSBUeXBlU2NyaXB0IHByb2plY3QgYW5kIGNyZWF0ZXMgYSB0c2NvbmZpZy5qc29uIGZpbGUuXCIpLFN1Y2Nlc3NmdWxseV9jcmVhdGVkX2FfdHNjb25maWdfanNvbl9maWxlOmkoNjA3MSwzLFwiU3VjY2Vzc2Z1bGx5X2NyZWF0ZWRfYV90c2NvbmZpZ19qc29uX2ZpbGVfNjA3MVwiLFwiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYSB0c2NvbmZpZy5qc29uIGZpbGUuXCIpLFN1cHByZXNzX2V4Y2Vzc19wcm9wZXJ0eV9jaGVja3NfZm9yX29iamVjdF9saXRlcmFsczppKDYwNzIsMyxcIlN1cHByZXNzX2V4Y2Vzc19wcm9wZXJ0eV9jaGVja3NfZm9yX29iamVjdF9saXRlcmFsc182MDcyXCIsXCJTdXBwcmVzcyBleGNlc3MgcHJvcGVydHkgY2hlY2tzIGZvciBvYmplY3QgbGl0ZXJhbHMuXCIpLFN0eWxpemVfZXJyb3JzX2FuZF9tZXNzYWdlc191c2luZ19jb2xvcl9hbmRfY29udGV4dF9leHBlcmltZW50YWw6aSg2MDczLDMsXCJTdHlsaXplX2Vycm9yc19hbmRfbWVzc2FnZXNfdXNpbmdfY29sb3JfYW5kX2NvbnRleHRfZXhwZXJpbWVudGFsXzYwNzNcIixcIlN0eWxpemUgZXJyb3JzIGFuZCBtZXNzYWdlcyB1c2luZyBjb2xvciBhbmQgY29udGV4dCAoZXhwZXJpbWVudGFsKS5cIiksRG9fbm90X3JlcG9ydF9lcnJvcnNfb25fdW51c2VkX2xhYmVsczppKDYwNzQsMyxcIkRvX25vdF9yZXBvcnRfZXJyb3JzX29uX3VudXNlZF9sYWJlbHNfNjA3NFwiLFwiRG8gbm90IHJlcG9ydCBlcnJvcnMgb24gdW51c2VkIGxhYmVscy5cIiksUmVwb3J0X2Vycm9yX3doZW5fbm90X2FsbF9jb2RlX3BhdGhzX2luX2Z1bmN0aW9uX3JldHVybl9hX3ZhbHVlOmkoNjA3NSwzLFwiUmVwb3J0X2Vycm9yX3doZW5fbm90X2FsbF9jb2RlX3BhdGhzX2luX2Z1bmN0aW9uX3JldHVybl9hX3ZhbHVlXzYwNzVcIixcIlJlcG9ydCBlcnJvciB3aGVuIG5vdCBhbGwgY29kZSBwYXRocyBpbiBmdW5jdGlvbiByZXR1cm4gYSB2YWx1ZS5cIiksUmVwb3J0X2Vycm9yc19mb3JfZmFsbHRocm91Z2hfY2FzZXNfaW5fc3dpdGNoX3N0YXRlbWVudDppKDYwNzYsMyxcIlJlcG9ydF9lcnJvcnNfZm9yX2ZhbGx0aHJvdWdoX2Nhc2VzX2luX3N3aXRjaF9zdGF0ZW1lbnRfNjA3NlwiLFwiUmVwb3J0IGVycm9ycyBmb3IgZmFsbHRocm91Z2ggY2FzZXMgaW4gc3dpdGNoIHN0YXRlbWVudC5cIiksRG9fbm90X3JlcG9ydF9lcnJvcnNfb25fdW5yZWFjaGFibGVfY29kZTppKDYwNzcsMyxcIkRvX25vdF9yZXBvcnRfZXJyb3JzX29uX3VucmVhY2hhYmxlX2NvZGVfNjA3N1wiLFwiRG8gbm90IHJlcG9ydCBlcnJvcnMgb24gdW5yZWFjaGFibGUgY29kZS5cIiksRGlzYWxsb3dfaW5jb25zaXN0ZW50bHlfY2FzZWRfcmVmZXJlbmNlc190b190aGVfc2FtZV9maWxlOmkoNjA3OCwzLFwiRGlzYWxsb3dfaW5jb25zaXN0ZW50bHlfY2FzZWRfcmVmZXJlbmNlc190b190aGVfc2FtZV9maWxlXzYwNzhcIixcIkRpc2FsbG93IGluY29uc2lzdGVudGx5LWNhc2VkIHJlZmVyZW5jZXMgdG8gdGhlIHNhbWUgZmlsZS5cIiksU3BlY2lmeV9saWJyYXJ5X2ZpbGVzX3RvX2JlX2luY2x1ZGVkX2luX3RoZV9jb21waWxhdGlvbjppKDYwNzksMyxcIlNwZWNpZnlfbGlicmFyeV9maWxlc190b19iZV9pbmNsdWRlZF9pbl90aGVfY29tcGlsYXRpb25fNjA3OVwiLFwiU3BlY2lmeSBsaWJyYXJ5IGZpbGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBjb21waWxhdGlvbi5cIiksU3BlY2lmeV9KU1hfY29kZV9nZW5lcmF0aW9uOmkoNjA4MCwzLFwiU3BlY2lmeV9KU1hfY29kZV9nZW5lcmF0aW9uXzYwODBcIixcIlNwZWNpZnkgSlNYIGNvZGUgZ2VuZXJhdGlvbi5cIiksRmlsZV8wX2hhc19hbl91bnN1cHBvcnRlZF9leHRlbnNpb25fc29fc2tpcHBpbmdfaXQ6aSg2MDgxLDMsXCJGaWxlXzBfaGFzX2FuX3Vuc3VwcG9ydGVkX2V4dGVuc2lvbl9zb19za2lwcGluZ19pdF82MDgxXCIsXCJGaWxlICd7MH0nIGhhcyBhbiB1bnN1cHBvcnRlZCBleHRlbnNpb24sIHNvIHNraXBwaW5nIGl0LlwiKSxPbmx5X2FtZF9hbmRfc3lzdGVtX21vZHVsZXNfYXJlX3N1cHBvcnRlZF9hbG9uZ3NpZGVfMDppKDYwODIsMSxcIk9ubHlfYW1kX2FuZF9zeXN0ZW1fbW9kdWxlc19hcmVfc3VwcG9ydGVkX2Fsb25nc2lkZV8wXzYwODJcIixcIk9ubHkgJ2FtZCcgYW5kICdzeXN0ZW0nIG1vZHVsZXMgYXJlIHN1cHBvcnRlZCBhbG9uZ3NpZGUgLS17MH0uXCIpLEJhc2VfZGlyZWN0b3J5X3RvX3Jlc29sdmVfbm9uX2Fic29sdXRlX21vZHVsZV9uYW1lczppKDYwODMsMyxcIkJhc2VfZGlyZWN0b3J5X3RvX3Jlc29sdmVfbm9uX2Fic29sdXRlX21vZHVsZV9uYW1lc182MDgzXCIsXCJCYXNlIGRpcmVjdG9yeSB0byByZXNvbHZlIG5vbi1hYnNvbHV0ZSBtb2R1bGUgbmFtZXMuXCIpLERlcHJlY2F0ZWRfVXNlX2pzeEZhY3RvcnlfaW5zdGVhZF9TcGVjaWZ5X3RoZV9vYmplY3RfaW52b2tlZF9mb3JfY3JlYXRlRWxlbWVudF93aGVuX3RhcmdldGluZ19yZWFjdF9KU1hfZW1pdDppKDYwODQsMyxcIkRlcHJlY2F0ZWRfVXNlX2pzeEZhY3RvcnlfaW5zdGVhZF9TcGVjaWZ5X3RoZV9vYmplY3RfaW52b2tlZF9mb3JfY3JlYXRlRWxlbWVudF93aGVuX3RhcmdldGluZ19yZWFjdF9fNjA4NFwiLFwiW0RlcHJlY2F0ZWRdIFVzZSAnLS1qc3hGYWN0b3J5JyBpbnN0ZWFkLiBTcGVjaWZ5IHRoZSBvYmplY3QgaW52b2tlZCBmb3IgY3JlYXRlRWxlbWVudCB3aGVuIHRhcmdldGluZyAncmVhY3QnIEpTWCBlbWl0XCIpLEVuYWJsZV90cmFjaW5nX29mX3RoZV9uYW1lX3Jlc29sdXRpb25fcHJvY2VzczppKDYwODUsMyxcIkVuYWJsZV90cmFjaW5nX29mX3RoZV9uYW1lX3Jlc29sdXRpb25fcHJvY2Vzc182MDg1XCIsXCJFbmFibGUgdHJhY2luZyBvZiB0aGUgbmFtZSByZXNvbHV0aW9uIHByb2Nlc3MuXCIpLFJlc29sdmluZ19tb2R1bGVfMF9mcm9tXzE6aSg2MDg2LDMsXCJSZXNvbHZpbmdfbW9kdWxlXzBfZnJvbV8xXzYwODZcIixcIj09PT09PT09IFJlc29sdmluZyBtb2R1bGUgJ3swfScgZnJvbSAnezF9Jy4gPT09PT09PT1cIiksRXhwbGljaXRseV9zcGVjaWZpZWRfbW9kdWxlX3Jlc29sdXRpb25fa2luZF9Db2xvbl8wOmkoNjA4NywzLFwiRXhwbGljaXRseV9zcGVjaWZpZWRfbW9kdWxlX3Jlc29sdXRpb25fa2luZF9Db2xvbl8wXzYwODdcIixcIkV4cGxpY2l0bHkgc3BlY2lmaWVkIG1vZHVsZSByZXNvbHV0aW9uIGtpbmQ6ICd7MH0nLlwiKSxNb2R1bGVfcmVzb2x1dGlvbl9raW5kX2lzX25vdF9zcGVjaWZpZWRfdXNpbmdfMDppKDYwODgsMyxcIk1vZHVsZV9yZXNvbHV0aW9uX2tpbmRfaXNfbm90X3NwZWNpZmllZF91c2luZ18wXzYwODhcIixcIk1vZHVsZSByZXNvbHV0aW9uIGtpbmQgaXMgbm90IHNwZWNpZmllZCwgdXNpbmcgJ3swfScuXCIpLE1vZHVsZV9uYW1lXzBfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18xOmkoNjA4OSwzLFwiTW9kdWxlX25hbWVfMF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzFfNjA4OVwiLFwiPT09PT09PT0gTW9kdWxlIG5hbWUgJ3swfScgd2FzIHN1Y2Nlc3NmdWxseSByZXNvbHZlZCB0byAnezF9Jy4gPT09PT09PT1cIiksTW9kdWxlX25hbWVfMF93YXNfbm90X3Jlc29sdmVkOmkoNjA5MCwzLFwiTW9kdWxlX25hbWVfMF93YXNfbm90X3Jlc29sdmVkXzYwOTBcIixcIj09PT09PT09IE1vZHVsZSBuYW1lICd7MH0nIHdhcyBub3QgcmVzb2x2ZWQuID09PT09PT09XCIpLHBhdGhzX29wdGlvbl9pc19zcGVjaWZpZWRfbG9va2luZ19mb3JfYV9wYXR0ZXJuX3RvX21hdGNoX21vZHVsZV9uYW1lXzA6aSg2MDkxLDMsXCJwYXRoc19vcHRpb25faXNfc3BlY2lmaWVkX2xvb2tpbmdfZm9yX2FfcGF0dGVybl90b19tYXRjaF9tb2R1bGVfbmFtZV8wXzYwOTFcIixcIidwYXRocycgb3B0aW9uIGlzIHNwZWNpZmllZCwgbG9va2luZyBmb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIG1vZHVsZSBuYW1lICd7MH0nLlwiKSxNb2R1bGVfbmFtZV8wX21hdGNoZWRfcGF0dGVybl8xOmkoNjA5MiwzLFwiTW9kdWxlX25hbWVfMF9tYXRjaGVkX3BhdHRlcm5fMV82MDkyXCIsXCJNb2R1bGUgbmFtZSAnezB9JywgbWF0Y2hlZCBwYXR0ZXJuICd7MX0nLlwiKSxUcnlpbmdfc3Vic3RpdHV0aW9uXzBfY2FuZGlkYXRlX21vZHVsZV9sb2NhdGlvbl9Db2xvbl8xOmkoNjA5MywzLFwiVHJ5aW5nX3N1YnN0aXR1dGlvbl8wX2NhbmRpZGF0ZV9tb2R1bGVfbG9jYXRpb25fQ29sb25fMV82MDkzXCIsXCJUcnlpbmcgc3Vic3RpdHV0aW9uICd7MH0nLCBjYW5kaWRhdGUgbW9kdWxlIGxvY2F0aW9uOiAnezF9Jy5cIiksUmVzb2x2aW5nX21vZHVsZV9uYW1lXzBfcmVsYXRpdmVfdG9fYmFzZV91cmxfMV8yOmkoNjA5NCwzLFwiUmVzb2x2aW5nX21vZHVsZV9uYW1lXzBfcmVsYXRpdmVfdG9fYmFzZV91cmxfMV8yXzYwOTRcIixcIlJlc29sdmluZyBtb2R1bGUgbmFtZSAnezB9JyByZWxhdGl2ZSB0byBiYXNlIHVybCAnezF9JyAtICd7Mn0nLlwiKSxMb2FkaW5nX21vZHVsZV9hc19maWxlX1NsYXNoX2ZvbGRlcl9jYW5kaWRhdGVfbW9kdWxlX2xvY2F0aW9uXzBfdGFyZ2V0X2ZpbGVfdHlwZXNfQ29sb25fMTppKDYwOTUsMyxcIkxvYWRpbmdfbW9kdWxlX2FzX2ZpbGVfU2xhc2hfZm9sZGVyX2NhbmRpZGF0ZV9tb2R1bGVfbG9jYXRpb25fMF90YXJnZXRfZmlsZV90eXBlc19Db2xvbl8xXzYwOTVcIixcIkxvYWRpbmcgbW9kdWxlIGFzIGZpbGUgLyBmb2xkZXIsIGNhbmRpZGF0ZSBtb2R1bGUgbG9jYXRpb24gJ3swfScsIHRhcmdldCBmaWxlIHR5cGVzOiB7MX0uXCIpLEZpbGVfMF9kb2VzX25vdF9leGlzdDppKDYwOTYsMyxcIkZpbGVfMF9kb2VzX25vdF9leGlzdF82MDk2XCIsXCJGaWxlICd7MH0nIGRvZXMgbm90IGV4aXN0LlwiKSxGaWxlXzBfZXhpc3RzX3VzZV9pdF9hc19hX25hbWVfcmVzb2x1dGlvbl9yZXN1bHQ6aSg2MDk3LDMsXCJGaWxlXzBfZXhpc3RzX3VzZV9pdF9hc19hX25hbWVfcmVzb2x1dGlvbl9yZXN1bHRfNjA5N1wiLFwiRmlsZSAnezB9JyBleGlzdHMgLSB1c2UgaXQgYXMgYSBuYW1lIHJlc29sdXRpb24gcmVzdWx0LlwiKSxMb2FkaW5nX21vZHVsZV8wX2Zyb21fbm9kZV9tb2R1bGVzX2ZvbGRlcl90YXJnZXRfZmlsZV90eXBlc19Db2xvbl8xOmkoNjA5OCwzLFwiTG9hZGluZ19tb2R1bGVfMF9mcm9tX25vZGVfbW9kdWxlc19mb2xkZXJfdGFyZ2V0X2ZpbGVfdHlwZXNfQ29sb25fMV82MDk4XCIsXCJMb2FkaW5nIG1vZHVsZSAnezB9JyBmcm9tICdub2RlX21vZHVsZXMnIGZvbGRlciwgdGFyZ2V0IGZpbGUgdHlwZXM6IHsxfS5cIiksRm91bmRfcGFja2FnZV9qc29uX2F0XzA6aSg2MDk5LDMsXCJGb3VuZF9wYWNrYWdlX2pzb25fYXRfMF82MDk5XCIsXCJGb3VuZCAncGFja2FnZS5qc29uJyBhdCAnezB9Jy5cIikscGFja2FnZV9qc29uX2RvZXNfbm90X2hhdmVfYV8wX2ZpZWxkOmkoNjEwMCwzLFwicGFja2FnZV9qc29uX2RvZXNfbm90X2hhdmVfYV8wX2ZpZWxkXzYxMDBcIixcIidwYWNrYWdlLmpzb24nIGRvZXMgbm90IGhhdmUgYSAnezB9JyBmaWVsZC5cIikscGFja2FnZV9qc29uX2hhc18wX2ZpZWxkXzFfdGhhdF9yZWZlcmVuY2VzXzI6aSg2MTAxLDMsXCJwYWNrYWdlX2pzb25faGFzXzBfZmllbGRfMV90aGF0X3JlZmVyZW5jZXNfMl82MTAxXCIsXCIncGFja2FnZS5qc29uJyBoYXMgJ3swfScgZmllbGQgJ3sxfScgdGhhdCByZWZlcmVuY2VzICd7Mn0nLlwiKSxBbGxvd19qYXZhc2NyaXB0X2ZpbGVzX3RvX2JlX2NvbXBpbGVkOmkoNjEwMiwzLFwiQWxsb3dfamF2YXNjcmlwdF9maWxlc190b19iZV9jb21waWxlZF82MTAyXCIsXCJBbGxvdyBqYXZhc2NyaXB0IGZpbGVzIHRvIGJlIGNvbXBpbGVkLlwiKSxDaGVja2luZ19pZl8wX2lzX3RoZV9sb25nZXN0X21hdGNoaW5nX3ByZWZpeF9mb3JfMV8yOmkoNjEwNCwzLFwiQ2hlY2tpbmdfaWZfMF9pc190aGVfbG9uZ2VzdF9tYXRjaGluZ19wcmVmaXhfZm9yXzFfMl82MTA0XCIsXCJDaGVja2luZyBpZiAnezB9JyBpcyB0aGUgbG9uZ2VzdCBtYXRjaGluZyBwcmVmaXggZm9yICd7MX0nIC0gJ3syfScuXCIpLEV4cGVjdGVkX3R5cGVfb2ZfMF9maWVsZF9pbl9wYWNrYWdlX2pzb25fdG9fYmVfMV9nb3RfMjppKDYxMDUsMyxcIkV4cGVjdGVkX3R5cGVfb2ZfMF9maWVsZF9pbl9wYWNrYWdlX2pzb25fdG9fYmVfMV9nb3RfMl82MTA1XCIsXCJFeHBlY3RlZCB0eXBlIG9mICd7MH0nIGZpZWxkIGluICdwYWNrYWdlLmpzb24nIHRvIGJlICd7MX0nLCBnb3QgJ3syfScuXCIpLGJhc2VVcmxfb3B0aW9uX2lzX3NldF90b18wX3VzaW5nX3RoaXNfdmFsdWVfdG9fcmVzb2x2ZV9ub25fcmVsYXRpdmVfbW9kdWxlX25hbWVfMTppKDYxMDYsMyxcImJhc2VVcmxfb3B0aW9uX2lzX3NldF90b18wX3VzaW5nX3RoaXNfdmFsdWVfdG9fcmVzb2x2ZV9ub25fcmVsYXRpdmVfbW9kdWxlX25hbWVfMV82MTA2XCIsXCInYmFzZVVybCcgb3B0aW9uIGlzIHNldCB0byAnezB9JywgdXNpbmcgdGhpcyB2YWx1ZSB0byByZXNvbHZlIG5vbi1yZWxhdGl2ZSBtb2R1bGUgbmFtZSAnezF9Jy5cIikscm9vdERpcnNfb3B0aW9uX2lzX3NldF91c2luZ19pdF90b19yZXNvbHZlX3JlbGF0aXZlX21vZHVsZV9uYW1lXzA6aSg2MTA3LDMsXCJyb290RGlyc19vcHRpb25faXNfc2V0X3VzaW5nX2l0X3RvX3Jlc29sdmVfcmVsYXRpdmVfbW9kdWxlX25hbWVfMF82MTA3XCIsXCIncm9vdERpcnMnIG9wdGlvbiBpcyBzZXQsIHVzaW5nIGl0IHRvIHJlc29sdmUgcmVsYXRpdmUgbW9kdWxlIG5hbWUgJ3swfScuXCIpLExvbmdlc3RfbWF0Y2hpbmdfcHJlZml4X2Zvcl8wX2lzXzE6aSg2MTA4LDMsXCJMb25nZXN0X21hdGNoaW5nX3ByZWZpeF9mb3JfMF9pc18xXzYxMDhcIixcIkxvbmdlc3QgbWF0Y2hpbmcgcHJlZml4IGZvciAnezB9JyBpcyAnezF9Jy5cIiksTG9hZGluZ18wX2Zyb21fdGhlX3Jvb3RfZGlyXzFfY2FuZGlkYXRlX2xvY2F0aW9uXzI6aSg2MTA5LDMsXCJMb2FkaW5nXzBfZnJvbV90aGVfcm9vdF9kaXJfMV9jYW5kaWRhdGVfbG9jYXRpb25fMl82MTA5XCIsXCJMb2FkaW5nICd7MH0nIGZyb20gdGhlIHJvb3QgZGlyICd7MX0nLCBjYW5kaWRhdGUgbG9jYXRpb24gJ3syfScuXCIpLFRyeWluZ19vdGhlcl9lbnRyaWVzX2luX3Jvb3REaXJzOmkoNjExMCwzLFwiVHJ5aW5nX290aGVyX2VudHJpZXNfaW5fcm9vdERpcnNfNjExMFwiLFwiVHJ5aW5nIG90aGVyIGVudHJpZXMgaW4gJ3Jvb3REaXJzJy5cIiksTW9kdWxlX3Jlc29sdXRpb25fdXNpbmdfcm9vdERpcnNfaGFzX2ZhaWxlZDppKDYxMTEsMyxcIk1vZHVsZV9yZXNvbHV0aW9uX3VzaW5nX3Jvb3REaXJzX2hhc19mYWlsZWRfNjExMVwiLFwiTW9kdWxlIHJlc29sdXRpb24gdXNpbmcgJ3Jvb3REaXJzJyBoYXMgZmFpbGVkLlwiKSxEb19ub3RfZW1pdF91c2Vfc3RyaWN0X2RpcmVjdGl2ZXNfaW5fbW9kdWxlX291dHB1dDppKDYxMTIsMyxcIkRvX25vdF9lbWl0X3VzZV9zdHJpY3RfZGlyZWN0aXZlc19pbl9tb2R1bGVfb3V0cHV0XzYxMTJcIixcIkRvIG5vdCBlbWl0ICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmVzIGluIG1vZHVsZSBvdXRwdXQuXCIpLEVuYWJsZV9zdHJpY3RfbnVsbF9jaGVja3M6aSg2MTEzLDMsXCJFbmFibGVfc3RyaWN0X251bGxfY2hlY2tzXzYxMTNcIixcIkVuYWJsZSBzdHJpY3QgbnVsbCBjaGVja3MuXCIpLFVua25vd25fb3B0aW9uX2V4Y2x1ZGVzX0RpZF95b3VfbWVhbl9leGNsdWRlOmkoNjExNCwxLFwiVW5rbm93bl9vcHRpb25fZXhjbHVkZXNfRGlkX3lvdV9tZWFuX2V4Y2x1ZGVfNjExNFwiLFwiVW5rbm93biBvcHRpb24gJ2V4Y2x1ZGVzJy4gRGlkIHlvdSBtZWFuICdleGNsdWRlJz9cIiksUmFpc2VfZXJyb3Jfb25fdGhpc19leHByZXNzaW9uc193aXRoX2FuX2ltcGxpZWRfYW55X3R5cGU6aSg2MTE1LDMsXCJSYWlzZV9lcnJvcl9vbl90aGlzX2V4cHJlc3Npb25zX3dpdGhfYW5faW1wbGllZF9hbnlfdHlwZV82MTE1XCIsXCJSYWlzZSBlcnJvciBvbiAndGhpcycgZXhwcmVzc2lvbnMgd2l0aCBhbiBpbXBsaWVkICdhbnknIHR5cGUuXCIpLFJlc29sdmluZ190eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF9jb250YWluaW5nX2ZpbGVfMV9yb290X2RpcmVjdG9yeV8yOmkoNjExNiwzLFwiUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV8xX3Jvb3RfZGlyZWN0b3J5XzJfNjExNlwiLFwiPT09PT09PT0gUmVzb2x2aW5nIHR5cGUgcmVmZXJlbmNlIGRpcmVjdGl2ZSAnezB9JywgY29udGFpbmluZyBmaWxlICd7MX0nLCByb290IGRpcmVjdG9yeSAnezJ9Jy4gPT09PT09PT1cIiksVHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18xX3ByaW1hcnlfQ29sb25fMjppKDYxMTksMyxcIlR5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fMV9wcmltYXJ5X0NvbG9uXzJfNjExOVwiLFwiPT09PT09PT0gVHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3sxfScsIHByaW1hcnk6IHsyfS4gPT09PT09PT1cIiksVHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfd2FzX25vdF9yZXNvbHZlZDppKDYxMjAsMyxcIlR5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX3dhc19ub3RfcmVzb2x2ZWRfNjEyMFwiLFwiPT09PT09PT0gVHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIHdhcyBub3QgcmVzb2x2ZWQuID09PT09PT09XCIpLFJlc29sdmluZ193aXRoX3ByaW1hcnlfc2VhcmNoX3BhdGhfMDppKDYxMjEsMyxcIlJlc29sdmluZ193aXRoX3ByaW1hcnlfc2VhcmNoX3BhdGhfMF82MTIxXCIsXCJSZXNvbHZpbmcgd2l0aCBwcmltYXJ5IHNlYXJjaCBwYXRoICd7MH0nLlwiKSxSb290X2RpcmVjdG9yeV9jYW5ub3RfYmVfZGV0ZXJtaW5lZF9za2lwcGluZ19wcmltYXJ5X3NlYXJjaF9wYXRoczppKDYxMjIsMyxcIlJvb3RfZGlyZWN0b3J5X2Nhbm5vdF9iZV9kZXRlcm1pbmVkX3NraXBwaW5nX3ByaW1hcnlfc2VhcmNoX3BhdGhzXzYxMjJcIixcIlJvb3QgZGlyZWN0b3J5IGNhbm5vdCBiZSBkZXRlcm1pbmVkLCBza2lwcGluZyBwcmltYXJ5IHNlYXJjaCBwYXRocy5cIiksUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV8xX3Jvb3RfZGlyZWN0b3J5X25vdF9zZXQ6aSg2MTIzLDMsXCJSZXNvbHZpbmdfdHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfY29udGFpbmluZ19maWxlXzFfcm9vdF9kaXJlY3Rvcnlfbm90X3NldF82MTIzXCIsXCI9PT09PT09PSBSZXNvbHZpbmcgdHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nLCBjb250YWluaW5nIGZpbGUgJ3sxfScsIHJvb3QgZGlyZWN0b3J5IG5vdCBzZXQuID09PT09PT09XCIpLFR5cGVfZGVjbGFyYXRpb25fZmlsZXNfdG9fYmVfaW5jbHVkZWRfaW5fY29tcGlsYXRpb246aSg2MTI0LDMsXCJUeXBlX2RlY2xhcmF0aW9uX2ZpbGVzX3RvX2JlX2luY2x1ZGVkX2luX2NvbXBpbGF0aW9uXzYxMjRcIixcIlR5cGUgZGVjbGFyYXRpb24gZmlsZXMgdG8gYmUgaW5jbHVkZWQgaW4gY29tcGlsYXRpb24uXCIpLExvb2tpbmdfdXBfaW5fbm9kZV9tb2R1bGVzX2ZvbGRlcl9pbml0aWFsX2xvY2F0aW9uXzA6aSg2MTI1LDMsXCJMb29raW5nX3VwX2luX25vZGVfbW9kdWxlc19mb2xkZXJfaW5pdGlhbF9sb2NhdGlvbl8wXzYxMjVcIixcIkxvb2tpbmcgdXAgaW4gJ25vZGVfbW9kdWxlcycgZm9sZGVyLCBpbml0aWFsIGxvY2F0aW9uICd7MH0nLlwiKSxDb250YWluaW5nX2ZpbGVfaXNfbm90X3NwZWNpZmllZF9hbmRfcm9vdF9kaXJlY3RvcnlfY2Fubm90X2JlX2RldGVybWluZWRfc2tpcHBpbmdfbG9va3VwX2luX25vZGVfbW9kdWxlc19mb2xkZXI6aSg2MTI2LDMsXCJDb250YWluaW5nX2ZpbGVfaXNfbm90X3NwZWNpZmllZF9hbmRfcm9vdF9kaXJlY3RvcnlfY2Fubm90X2JlX2RldGVybWluZWRfc2tpcHBpbmdfbG9va3VwX2luX25vZGVfbW9kXzYxMjZcIixcIkNvbnRhaW5pbmcgZmlsZSBpcyBub3Qgc3BlY2lmaWVkIGFuZCByb290IGRpcmVjdG9yeSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCwgc2tpcHBpbmcgbG9va3VwIGluICdub2RlX21vZHVsZXMnIGZvbGRlci5cIiksUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV9ub3Rfc2V0X3Jvb3RfZGlyZWN0b3J5XzE6aSg2MTI3LDMsXCJSZXNvbHZpbmdfdHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfY29udGFpbmluZ19maWxlX25vdF9zZXRfcm9vdF9kaXJlY3RvcnlfMV82MTI3XCIsXCI9PT09PT09PSBSZXNvbHZpbmcgdHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nLCBjb250YWluaW5nIGZpbGUgbm90IHNldCwgcm9vdCBkaXJlY3RvcnkgJ3sxfScuID09PT09PT09XCIpLFJlc29sdmluZ190eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF9jb250YWluaW5nX2ZpbGVfbm90X3NldF9yb290X2RpcmVjdG9yeV9ub3Rfc2V0OmkoNjEyOCwzLFwiUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV9ub3Rfc2V0X3Jvb3RfZGlyZWN0b3J5X25vdF9zZXRfNjEyOFwiLFwiPT09PT09PT0gUmVzb2x2aW5nIHR5cGUgcmVmZXJlbmNlIGRpcmVjdGl2ZSAnezB9JywgY29udGFpbmluZyBmaWxlIG5vdCBzZXQsIHJvb3QgZGlyZWN0b3J5IG5vdCBzZXQuID09PT09PT09XCIpLFJlc29sdmluZ19yZWFsX3BhdGhfZm9yXzBfcmVzdWx0XzE6aSg2MTMwLDMsXCJSZXNvbHZpbmdfcmVhbF9wYXRoX2Zvcl8wX3Jlc3VsdF8xXzYxMzBcIixcIlJlc29sdmluZyByZWFsIHBhdGggZm9yICd7MH0nLCByZXN1bHQgJ3sxfScuXCIpLENhbm5vdF9jb21waWxlX21vZHVsZXNfdXNpbmdfb3B0aW9uXzBfdW5sZXNzX3RoZV9tb2R1bGVfZmxhZ19pc19hbWRfb3Jfc3lzdGVtOmkoNjEzMSwxLFwiQ2Fubm90X2NvbXBpbGVfbW9kdWxlc191c2luZ19vcHRpb25fMF91bmxlc3NfdGhlX21vZHVsZV9mbGFnX2lzX2FtZF9vcl9zeXN0ZW1fNjEzMVwiLFwiQ2Fubm90IGNvbXBpbGUgbW9kdWxlcyB1c2luZyBvcHRpb24gJ3swfScgdW5sZXNzIHRoZSAnLS1tb2R1bGUnIGZsYWcgaXMgJ2FtZCcgb3IgJ3N5c3RlbScuXCIpLEZpbGVfbmFtZV8wX2hhc19hXzFfZXh0ZW5zaW9uX3N0cmlwcGluZ19pdDppKDYxMzIsMyxcIkZpbGVfbmFtZV8wX2hhc19hXzFfZXh0ZW5zaW9uX3N0cmlwcGluZ19pdF82MTMyXCIsXCJGaWxlIG5hbWUgJ3swfScgaGFzIGEgJ3sxfScgZXh0ZW5zaW9uIC0gc3RyaXBwaW5nIGl0LlwiKSxfMF9pc19kZWNsYXJlZF9idXRfaXRzX3ZhbHVlX2lzX25ldmVyX3JlYWQ6aSg2MTMzLDEsXCJfMF9pc19kZWNsYXJlZF9idXRfaXRzX3ZhbHVlX2lzX25ldmVyX3JlYWRfNjEzM1wiLFwiJ3swfScgaXMgZGVjbGFyZWQgYnV0IGl0cyB2YWx1ZSBpcyBuZXZlciByZWFkLlwiLCEwKSxSZXBvcnRfZXJyb3JzX29uX3VudXNlZF9sb2NhbHM6aSg2MTM0LDMsXCJSZXBvcnRfZXJyb3JzX29uX3VudXNlZF9sb2NhbHNfNjEzNFwiLFwiUmVwb3J0IGVycm9ycyBvbiB1bnVzZWQgbG9jYWxzLlwiKSxSZXBvcnRfZXJyb3JzX29uX3VudXNlZF9wYXJhbWV0ZXJzOmkoNjEzNSwzLFwiUmVwb3J0X2Vycm9yc19vbl91bnVzZWRfcGFyYW1ldGVyc182MTM1XCIsXCJSZXBvcnQgZXJyb3JzIG9uIHVudXNlZCBwYXJhbWV0ZXJzLlwiKSxUaGVfbWF4aW11bV9kZXBlbmRlbmN5X2RlcHRoX3RvX3NlYXJjaF91bmRlcl9ub2RlX21vZHVsZXNfYW5kX2xvYWRfSmF2YVNjcmlwdF9maWxlczppKDYxMzYsMyxcIlRoZV9tYXhpbXVtX2RlcGVuZGVuY3lfZGVwdGhfdG9fc2VhcmNoX3VuZGVyX25vZGVfbW9kdWxlc19hbmRfbG9hZF9KYXZhU2NyaXB0X2ZpbGVzXzYxMzZcIixcIlRoZSBtYXhpbXVtIGRlcGVuZGVuY3kgZGVwdGggdG8gc2VhcmNoIHVuZGVyIG5vZGVfbW9kdWxlcyBhbmQgbG9hZCBKYXZhU2NyaXB0IGZpbGVzLlwiKSxDYW5ub3RfaW1wb3J0X3R5cGVfZGVjbGFyYXRpb25fZmlsZXNfQ29uc2lkZXJfaW1wb3J0aW5nXzBfaW5zdGVhZF9vZl8xOmkoNjEzNywxLFwiQ2Fubm90X2ltcG9ydF90eXBlX2RlY2xhcmF0aW9uX2ZpbGVzX0NvbnNpZGVyX2ltcG9ydGluZ18wX2luc3RlYWRfb2ZfMV82MTM3XCIsXCJDYW5ub3QgaW1wb3J0IHR5cGUgZGVjbGFyYXRpb24gZmlsZXMuIENvbnNpZGVyIGltcG9ydGluZyAnezB9JyBpbnN0ZWFkIG9mICd7MX0nLlwiKSxQcm9wZXJ0eV8wX2lzX2RlY2xhcmVkX2J1dF9pdHNfdmFsdWVfaXNfbmV2ZXJfcmVhZDppKDYxMzgsMSxcIlByb3BlcnR5XzBfaXNfZGVjbGFyZWRfYnV0X2l0c192YWx1ZV9pc19uZXZlcl9yZWFkXzYxMzhcIixcIlByb3BlcnR5ICd7MH0nIGlzIGRlY2xhcmVkIGJ1dCBpdHMgdmFsdWUgaXMgbmV2ZXIgcmVhZC5cIiwhMCksSW1wb3J0X2VtaXRfaGVscGVyc19mcm9tX3RzbGliOmkoNjEzOSwzLFwiSW1wb3J0X2VtaXRfaGVscGVyc19mcm9tX3RzbGliXzYxMzlcIixcIkltcG9ydCBlbWl0IGhlbHBlcnMgZnJvbSAndHNsaWInLlwiKSxBdXRvX2Rpc2NvdmVyeV9mb3JfdHlwaW5nc19pc19lbmFibGVkX2luX3Byb2plY3RfMF9SdW5uaW5nX2V4dHJhX3Jlc29sdXRpb25fcGFzc19mb3JfbW9kdWxlXzFfdXNpbmdfY2FjaGVfbG9jYXRpb25fMjppKDYxNDAsMSxcIkF1dG9fZGlzY292ZXJ5X2Zvcl90eXBpbmdzX2lzX2VuYWJsZWRfaW5fcHJvamVjdF8wX1J1bm5pbmdfZXh0cmFfcmVzb2x1dGlvbl9wYXNzX2Zvcl9tb2R1bGVfMV91c2luZ19fNjE0MFwiLFwiQXV0byBkaXNjb3ZlcnkgZm9yIHR5cGluZ3MgaXMgZW5hYmxlZCBpbiBwcm9qZWN0ICd7MH0nLiBSdW5uaW5nIGV4dHJhIHJlc29sdXRpb24gcGFzcyBmb3IgbW9kdWxlICd7MX0nIHVzaW5nIGNhY2hlIGxvY2F0aW9uICd7Mn0nLlwiKSxQYXJzZV9pbl9zdHJpY3RfbW9kZV9hbmRfZW1pdF91c2Vfc3RyaWN0X2Zvcl9lYWNoX3NvdXJjZV9maWxlOmkoNjE0MSwzLFwiUGFyc2VfaW5fc3RyaWN0X21vZGVfYW5kX2VtaXRfdXNlX3N0cmljdF9mb3JfZWFjaF9zb3VyY2VfZmlsZV82MTQxXCIsJ1BhcnNlIGluIHN0cmljdCBtb2RlIGFuZCBlbWl0IFwidXNlIHN0cmljdFwiIGZvciBlYWNoIHNvdXJjZSBmaWxlLicpLE1vZHVsZV8wX3dhc19yZXNvbHZlZF90b18xX2J1dF9qc3hfaXNfbm90X3NldDppKDYxNDIsMSxcIk1vZHVsZV8wX3dhc19yZXNvbHZlZF90b18xX2J1dF9qc3hfaXNfbm90X3NldF82MTQyXCIsXCJNb2R1bGUgJ3swfScgd2FzIHJlc29sdmVkIHRvICd7MX0nLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0LlwiKSxNb2R1bGVfMF93YXNfcmVzb2x2ZWRfYXNfbG9jYWxseV9kZWNsYXJlZF9hbWJpZW50X21vZHVsZV9pbl9maWxlXzE6aSg2MTQ0LDMsXCJNb2R1bGVfMF93YXNfcmVzb2x2ZWRfYXNfbG9jYWxseV9kZWNsYXJlZF9hbWJpZW50X21vZHVsZV9pbl9maWxlXzFfNjE0NFwiLFwiTW9kdWxlICd7MH0nIHdhcyByZXNvbHZlZCBhcyBsb2NhbGx5IGRlY2xhcmVkIGFtYmllbnQgbW9kdWxlIGluIGZpbGUgJ3sxfScuXCIpLE1vZHVsZV8wX3dhc19yZXNvbHZlZF9hc19hbWJpZW50X21vZHVsZV9kZWNsYXJlZF9pbl8xX3NpbmNlX3RoaXNfZmlsZV93YXNfbm90X21vZGlmaWVkOmkoNjE0NSwzLFwiTW9kdWxlXzBfd2FzX3Jlc29sdmVkX2FzX2FtYmllbnRfbW9kdWxlX2RlY2xhcmVkX2luXzFfc2luY2VfdGhpc19maWxlX3dhc19ub3RfbW9kaWZpZWRfNjE0NVwiLFwiTW9kdWxlICd7MH0nIHdhcyByZXNvbHZlZCBhcyBhbWJpZW50IG1vZHVsZSBkZWNsYXJlZCBpbiAnezF9JyBzaW5jZSB0aGlzIGZpbGUgd2FzIG5vdCBtb2RpZmllZC5cIiksU3BlY2lmeV90aGVfSlNYX2ZhY3RvcnlfZnVuY3Rpb25fdG9fdXNlX3doZW5fdGFyZ2V0aW5nX3JlYWN0X0pTWF9lbWl0X2VfZ19SZWFjdF9jcmVhdGVFbGVtZW50X29yX2g6aSg2MTQ2LDMsXCJTcGVjaWZ5X3RoZV9KU1hfZmFjdG9yeV9mdW5jdGlvbl90b191c2Vfd2hlbl90YXJnZXRpbmdfcmVhY3RfSlNYX2VtaXRfZV9nX1JlYWN0X2NyZWF0ZUVsZW1lbnRfb3JfaF82MTQ2XCIsXCJTcGVjaWZ5IHRoZSBKU1ggZmFjdG9yeSBmdW5jdGlvbiB0byB1c2Ugd2hlbiB0YXJnZXRpbmcgJ3JlYWN0JyBKU1ggZW1pdCwgZS5nLiAnUmVhY3QuY3JlYXRlRWxlbWVudCcgb3IgJ2gnLlwiKSxSZXNvbHV0aW9uX2Zvcl9tb2R1bGVfMF93YXNfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8xOmkoNjE0NywzLFwiUmVzb2x1dGlvbl9mb3JfbW9kdWxlXzBfd2FzX2ZvdW5kX2luX2NhY2hlX2Zyb21fbG9jYXRpb25fMV82MTQ3XCIsXCJSZXNvbHV0aW9uIGZvciBtb2R1bGUgJ3swfScgd2FzIGZvdW5kIGluIGNhY2hlIGZyb20gbG9jYXRpb24gJ3sxfScuXCIpLERpcmVjdG9yeV8wX2RvZXNfbm90X2V4aXN0X3NraXBwaW5nX2FsbF9sb29rdXBzX2luX2l0OmkoNjE0OCwzLFwiRGlyZWN0b3J5XzBfZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmdfYWxsX2xvb2t1cHNfaW5faXRfNjE0OFwiLFwiRGlyZWN0b3J5ICd7MH0nIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyBhbGwgbG9va3VwcyBpbiBpdC5cIiksU2hvd19kaWFnbm9zdGljX2luZm9ybWF0aW9uOmkoNjE0OSwzLFwiU2hvd19kaWFnbm9zdGljX2luZm9ybWF0aW9uXzYxNDlcIixcIlNob3cgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbi5cIiksU2hvd192ZXJib3NlX2RpYWdub3N0aWNfaW5mb3JtYXRpb246aSg2MTUwLDMsXCJTaG93X3ZlcmJvc2VfZGlhZ25vc3RpY19pbmZvcm1hdGlvbl82MTUwXCIsXCJTaG93IHZlcmJvc2UgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbi5cIiksRW1pdF9hX3NpbmdsZV9maWxlX3dpdGhfc291cmNlX21hcHNfaW5zdGVhZF9vZl9oYXZpbmdfYV9zZXBhcmF0ZV9maWxlOmkoNjE1MSwzLFwiRW1pdF9hX3NpbmdsZV9maWxlX3dpdGhfc291cmNlX21hcHNfaW5zdGVhZF9vZl9oYXZpbmdfYV9zZXBhcmF0ZV9maWxlXzYxNTFcIixcIkVtaXQgYSBzaW5nbGUgZmlsZSB3aXRoIHNvdXJjZSBtYXBzIGluc3RlYWQgb2YgaGF2aW5nIGEgc2VwYXJhdGUgZmlsZS5cIiksRW1pdF90aGVfc291cmNlX2Fsb25nc2lkZV90aGVfc291cmNlbWFwc193aXRoaW5fYV9zaW5nbGVfZmlsZV9yZXF1aXJlc19pbmxpbmVTb3VyY2VNYXBfb3Jfc291cmNlTWFwX3RvX2JlX3NldDppKDYxNTIsMyxcIkVtaXRfdGhlX3NvdXJjZV9hbG9uZ3NpZGVfdGhlX3NvdXJjZW1hcHNfd2l0aGluX2Ffc2luZ2xlX2ZpbGVfcmVxdWlyZXNfaW5saW5lU291cmNlTWFwX29yX3NvdXJjZU1hcF9fNjE1MlwiLFwiRW1pdCB0aGUgc291cmNlIGFsb25nc2lkZSB0aGUgc291cmNlbWFwcyB3aXRoaW4gYSBzaW5nbGUgZmlsZTsgcmVxdWlyZXMgJy0taW5saW5lU291cmNlTWFwJyBvciAnLS1zb3VyY2VNYXAnIHRvIGJlIHNldC5cIiksVHJhbnNwaWxlX2VhY2hfZmlsZV9hc19hX3NlcGFyYXRlX21vZHVsZV9zaW1pbGFyX3RvX3RzX3RyYW5zcGlsZU1vZHVsZTppKDYxNTMsMyxcIlRyYW5zcGlsZV9lYWNoX2ZpbGVfYXNfYV9zZXBhcmF0ZV9tb2R1bGVfc2ltaWxhcl90b190c190cmFuc3BpbGVNb2R1bGVfNjE1M1wiLFwiVHJhbnNwaWxlIGVhY2ggZmlsZSBhcyBhIHNlcGFyYXRlIG1vZHVsZSAoc2ltaWxhciB0byAndHMudHJhbnNwaWxlTW9kdWxlJykuXCIpLFByaW50X25hbWVzX29mX2dlbmVyYXRlZF9maWxlc19wYXJ0X29mX3RoZV9jb21waWxhdGlvbjppKDYxNTQsMyxcIlByaW50X25hbWVzX29mX2dlbmVyYXRlZF9maWxlc19wYXJ0X29mX3RoZV9jb21waWxhdGlvbl82MTU0XCIsXCJQcmludCBuYW1lcyBvZiBnZW5lcmF0ZWQgZmlsZXMgcGFydCBvZiB0aGUgY29tcGlsYXRpb24uXCIpLFByaW50X25hbWVzX29mX2ZpbGVzX3BhcnRfb2ZfdGhlX2NvbXBpbGF0aW9uOmkoNjE1NSwzLFwiUHJpbnRfbmFtZXNfb2ZfZmlsZXNfcGFydF9vZl90aGVfY29tcGlsYXRpb25fNjE1NVwiLFwiUHJpbnQgbmFtZXMgb2YgZmlsZXMgcGFydCBvZiB0aGUgY29tcGlsYXRpb24uXCIpLFRoZV9sb2NhbGVfdXNlZF93aGVuX2Rpc3BsYXlpbmdfbWVzc2FnZXNfdG9fdGhlX3VzZXJfZV9nX2VuX3VzOmkoNjE1NiwzLFwiVGhlX2xvY2FsZV91c2VkX3doZW5fZGlzcGxheWluZ19tZXNzYWdlc190b190aGVfdXNlcl9lX2dfZW5fdXNfNjE1NlwiLFwiVGhlIGxvY2FsZSB1c2VkIHdoZW4gZGlzcGxheWluZyBtZXNzYWdlcyB0byB0aGUgdXNlciAoZS5nLiAnZW4tdXMnKVwiKSxEb19ub3RfZ2VuZXJhdGVfY3VzdG9tX2hlbHBlcl9mdW5jdGlvbnNfbGlrZV9leHRlbmRzX2luX2NvbXBpbGVkX291dHB1dDppKDYxNTcsMyxcIkRvX25vdF9nZW5lcmF0ZV9jdXN0b21faGVscGVyX2Z1bmN0aW9uc19saWtlX2V4dGVuZHNfaW5fY29tcGlsZWRfb3V0cHV0XzYxNTdcIixcIkRvIG5vdCBnZW5lcmF0ZSBjdXN0b20gaGVscGVyIGZ1bmN0aW9ucyBsaWtlICdfX2V4dGVuZHMnIGluIGNvbXBpbGVkIG91dHB1dC5cIiksRG9fbm90X2luY2x1ZGVfdGhlX2RlZmF1bHRfbGlicmFyeV9maWxlX2xpYl9kX3RzOmkoNjE1OCwzLFwiRG9fbm90X2luY2x1ZGVfdGhlX2RlZmF1bHRfbGlicmFyeV9maWxlX2xpYl9kX3RzXzYxNThcIixcIkRvIG5vdCBpbmNsdWRlIHRoZSBkZWZhdWx0IGxpYnJhcnkgZmlsZSAobGliLmQudHMpLlwiKSxEb19ub3RfYWRkX3RyaXBsZV9zbGFzaF9yZWZlcmVuY2VzX29yX2ltcG9ydGVkX21vZHVsZXNfdG9fdGhlX2xpc3Rfb2ZfY29tcGlsZWRfZmlsZXM6aSg2MTU5LDMsXCJEb19ub3RfYWRkX3RyaXBsZV9zbGFzaF9yZWZlcmVuY2VzX29yX2ltcG9ydGVkX21vZHVsZXNfdG9fdGhlX2xpc3Rfb2ZfY29tcGlsZWRfZmlsZXNfNjE1OVwiLFwiRG8gbm90IGFkZCB0cmlwbGUtc2xhc2ggcmVmZXJlbmNlcyBvciBpbXBvcnRlZCBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIGNvbXBpbGVkIGZpbGVzLlwiKSxEZXByZWNhdGVkX1VzZV9za2lwTGliQ2hlY2tfaW5zdGVhZF9Ta2lwX3R5cGVfY2hlY2tpbmdfb2ZfZGVmYXVsdF9saWJyYXJ5X2RlY2xhcmF0aW9uX2ZpbGVzOmkoNjE2MCwzLFwiRGVwcmVjYXRlZF9Vc2Vfc2tpcExpYkNoZWNrX2luc3RlYWRfU2tpcF90eXBlX2NoZWNraW5nX29mX2RlZmF1bHRfbGlicmFyeV9kZWNsYXJhdGlvbl9maWxlc182MTYwXCIsXCJbRGVwcmVjYXRlZF0gVXNlICctLXNraXBMaWJDaGVjaycgaW5zdGVhZC4gU2tpcCB0eXBlIGNoZWNraW5nIG9mIGRlZmF1bHQgbGlicmFyeSBkZWNsYXJhdGlvbiBmaWxlcy5cIiksTGlzdF9vZl9mb2xkZXJzX3RvX2luY2x1ZGVfdHlwZV9kZWZpbml0aW9uc19mcm9tOmkoNjE2MSwzLFwiTGlzdF9vZl9mb2xkZXJzX3RvX2luY2x1ZGVfdHlwZV9kZWZpbml0aW9uc19mcm9tXzYxNjFcIixcIkxpc3Qgb2YgZm9sZGVycyB0byBpbmNsdWRlIHR5cGUgZGVmaW5pdGlvbnMgZnJvbS5cIiksRGlzYWJsZV9zaXplX2xpbWl0YXRpb25zX29uX0phdmFTY3JpcHRfcHJvamVjdHM6aSg2MTYyLDMsXCJEaXNhYmxlX3NpemVfbGltaXRhdGlvbnNfb25fSmF2YVNjcmlwdF9wcm9qZWN0c182MTYyXCIsXCJEaXNhYmxlIHNpemUgbGltaXRhdGlvbnMgb24gSmF2YVNjcmlwdCBwcm9qZWN0cy5cIiksVGhlX2NoYXJhY3Rlcl9zZXRfb2ZfdGhlX2lucHV0X2ZpbGVzOmkoNjE2MywzLFwiVGhlX2NoYXJhY3Rlcl9zZXRfb2ZfdGhlX2lucHV0X2ZpbGVzXzYxNjNcIixcIlRoZSBjaGFyYWN0ZXIgc2V0IG9mIHRoZSBpbnB1dCBmaWxlcy5cIiksU2tpcHBpbmdfbW9kdWxlXzBfdGhhdF9sb29rc19saWtlX2FuX2Fic29sdXRlX1VSSV90YXJnZXRfZmlsZV90eXBlc19Db2xvbl8xOmkoNjE2NCwzLFwiU2tpcHBpbmdfbW9kdWxlXzBfdGhhdF9sb29rc19saWtlX2FuX2Fic29sdXRlX1VSSV90YXJnZXRfZmlsZV90eXBlc19Db2xvbl8xXzYxNjRcIixcIlNraXBwaW5nIG1vZHVsZSAnezB9JyB0aGF0IGxvb2tzIGxpa2UgYW4gYWJzb2x1dGUgVVJJLCB0YXJnZXQgZmlsZSB0eXBlczogezF9LlwiKSxEb19ub3RfdHJ1bmNhdGVfZXJyb3JfbWVzc2FnZXM6aSg2MTY1LDMsXCJEb19ub3RfdHJ1bmNhdGVfZXJyb3JfbWVzc2FnZXNfNjE2NVwiLFwiRG8gbm90IHRydW5jYXRlIGVycm9yIG1lc3NhZ2VzLlwiKSxPdXRwdXRfZGlyZWN0b3J5X2Zvcl9nZW5lcmF0ZWRfZGVjbGFyYXRpb25fZmlsZXM6aSg2MTY2LDMsXCJPdXRwdXRfZGlyZWN0b3J5X2Zvcl9nZW5lcmF0ZWRfZGVjbGFyYXRpb25fZmlsZXNfNjE2NlwiLFwiT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIGRlY2xhcmF0aW9uIGZpbGVzLlwiKSxBX3Nlcmllc19vZl9lbnRyaWVzX3doaWNoX3JlX21hcF9pbXBvcnRzX3RvX2xvb2t1cF9sb2NhdGlvbnNfcmVsYXRpdmVfdG9fdGhlX2Jhc2VVcmw6aSg2MTY3LDMsXCJBX3Nlcmllc19vZl9lbnRyaWVzX3doaWNoX3JlX21hcF9pbXBvcnRzX3RvX2xvb2t1cF9sb2NhdGlvbnNfcmVsYXRpdmVfdG9fdGhlX2Jhc2VVcmxfNjE2N1wiLFwiQSBzZXJpZXMgb2YgZW50cmllcyB3aGljaCByZS1tYXAgaW1wb3J0cyB0byBsb29rdXAgbG9jYXRpb25zIHJlbGF0aXZlIHRvIHRoZSAnYmFzZVVybCcuXCIpLExpc3Rfb2Zfcm9vdF9mb2xkZXJzX3dob3NlX2NvbWJpbmVkX2NvbnRlbnRfcmVwcmVzZW50c190aGVfc3RydWN0dXJlX29mX3RoZV9wcm9qZWN0X2F0X3J1bnRpbWU6aSg2MTY4LDMsXCJMaXN0X29mX3Jvb3RfZm9sZGVyc193aG9zZV9jb21iaW5lZF9jb250ZW50X3JlcHJlc2VudHNfdGhlX3N0cnVjdHVyZV9vZl90aGVfcHJvamVjdF9hdF9ydW50aW1lXzYxNjhcIixcIkxpc3Qgb2Ygcm9vdCBmb2xkZXJzIHdob3NlIGNvbWJpbmVkIGNvbnRlbnQgcmVwcmVzZW50cyB0aGUgc3RydWN0dXJlIG9mIHRoZSBwcm9qZWN0IGF0IHJ1bnRpbWUuXCIpLFNob3dfYWxsX2NvbXBpbGVyX29wdGlvbnM6aSg2MTY5LDMsXCJTaG93X2FsbF9jb21waWxlcl9vcHRpb25zXzYxNjlcIixcIlNob3cgYWxsIGNvbXBpbGVyIG9wdGlvbnMuXCIpLERlcHJlY2F0ZWRfVXNlX291dEZpbGVfaW5zdGVhZF9Db25jYXRlbmF0ZV9hbmRfZW1pdF9vdXRwdXRfdG9fc2luZ2xlX2ZpbGU6aSg2MTcwLDMsXCJEZXByZWNhdGVkX1VzZV9vdXRGaWxlX2luc3RlYWRfQ29uY2F0ZW5hdGVfYW5kX2VtaXRfb3V0cHV0X3RvX3NpbmdsZV9maWxlXzYxNzBcIixcIltEZXByZWNhdGVkXSBVc2UgJy0tb3V0RmlsZScgaW5zdGVhZC4gQ29uY2F0ZW5hdGUgYW5kIGVtaXQgb3V0cHV0IHRvIHNpbmdsZSBmaWxlXCIpLENvbW1hbmRfbGluZV9PcHRpb25zOmkoNjE3MSwzLFwiQ29tbWFuZF9saW5lX09wdGlvbnNfNjE3MVwiLFwiQ29tbWFuZC1saW5lIE9wdGlvbnNcIiksUHJvdmlkZV9mdWxsX3N1cHBvcnRfZm9yX2l0ZXJhYmxlc19pbl9mb3Jfb2Zfc3ByZWFkX2FuZF9kZXN0cnVjdHVyaW5nX3doZW5fdGFyZ2V0aW5nX0VTNV9vcl9FUzM6aSg2MTc5LDMsXCJQcm92aWRlX2Z1bGxfc3VwcG9ydF9mb3JfaXRlcmFibGVzX2luX2Zvcl9vZl9zcHJlYWRfYW5kX2Rlc3RydWN0dXJpbmdfd2hlbl90YXJnZXRpbmdfRVM1X29yX0VTM182MTc5XCIsXCJQcm92aWRlIGZ1bGwgc3VwcG9ydCBmb3IgaXRlcmFibGVzIGluICdmb3Itb2YnLCBzcHJlYWQsIGFuZCBkZXN0cnVjdHVyaW5nIHdoZW4gdGFyZ2V0aW5nICdFUzUnIG9yICdFUzMnLlwiKSxFbmFibGVfYWxsX3N0cmljdF90eXBlX2NoZWNraW5nX29wdGlvbnM6aSg2MTgwLDMsXCJFbmFibGVfYWxsX3N0cmljdF90eXBlX2NoZWNraW5nX29wdGlvbnNfNjE4MFwiLFwiRW5hYmxlIGFsbCBzdHJpY3QgdHlwZS1jaGVja2luZyBvcHRpb25zLlwiKSxTY29wZWRfcGFja2FnZV9kZXRlY3RlZF9sb29raW5nX2luXzA6aSg2MTgyLDMsXCJTY29wZWRfcGFja2FnZV9kZXRlY3RlZF9sb29raW5nX2luXzBfNjE4MlwiLFwiU2NvcGVkIHBhY2thZ2UgZGV0ZWN0ZWQsIGxvb2tpbmcgaW4gJ3swfSdcIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX21vZHVsZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzI6aSg2MTgzLDMsXCJSZXVzaW5nX3Jlc29sdXRpb25fb2ZfbW9kdWxlXzBfZnJvbV8xX29mX29sZF9wcm9ncmFtX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fMl82MTgzXCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgbW9kdWxlICd7MH0nIGZyb20gJ3sxfScgb2Ygb2xkIHByb2dyYW0sIGl0IHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3syfScuXCIpLFJldXNpbmdfcmVzb2x1dGlvbl9vZl9tb2R1bGVfMF9mcm9tXzFfb2Zfb2xkX3Byb2dyYW1faXRfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18yX3dpdGhfUGFja2FnZV9JRF8zOmkoNjE4NCwzLFwiUmV1c2luZ19yZXNvbHV0aW9uX29mX21vZHVsZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzJfd2l0aF9QYWNrYWdlX182MTg0XCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgbW9kdWxlICd7MH0nIGZyb20gJ3sxfScgb2Ygb2xkIHByb2dyYW0sIGl0IHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3syfScgd2l0aCBQYWNrYWdlIElEICd7M30nLlwiKSxFbmFibGVfc3RyaWN0X2NoZWNraW5nX29mX2Z1bmN0aW9uX3R5cGVzOmkoNjE4NiwzLFwiRW5hYmxlX3N0cmljdF9jaGVja2luZ19vZl9mdW5jdGlvbl90eXBlc182MTg2XCIsXCJFbmFibGUgc3RyaWN0IGNoZWNraW5nIG9mIGZ1bmN0aW9uIHR5cGVzLlwiKSxFbmFibGVfc3RyaWN0X2NoZWNraW5nX29mX3Byb3BlcnR5X2luaXRpYWxpemF0aW9uX2luX2NsYXNzZXM6aSg2MTg3LDMsXCJFbmFibGVfc3RyaWN0X2NoZWNraW5nX29mX3Byb3BlcnR5X2luaXRpYWxpemF0aW9uX2luX2NsYXNzZXNfNjE4N1wiLFwiRW5hYmxlIHN0cmljdCBjaGVja2luZyBvZiBwcm9wZXJ0eSBpbml0aWFsaXphdGlvbiBpbiBjbGFzc2VzLlwiKSxOdW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9hbGxvd2VkX2hlcmU6aSg2MTg4LDEsXCJOdW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9hbGxvd2VkX2hlcmVfNjE4OFwiLFwiTnVtZXJpYyBzZXBhcmF0b3JzIGFyZSBub3QgYWxsb3dlZCBoZXJlLlwiKSxNdWx0aXBsZV9jb25zZWN1dGl2ZV9udW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9wZXJtaXR0ZWQ6aSg2MTg5LDEsXCJNdWx0aXBsZV9jb25zZWN1dGl2ZV9udW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9wZXJtaXR0ZWRfNjE4OVwiLFwiTXVsdGlwbGUgY29uc2VjdXRpdmUgbnVtZXJpYyBzZXBhcmF0b3JzIGFyZSBub3QgcGVybWl0dGVkLlwiKSxXaGV0aGVyX3RvX2tlZXBfb3V0ZGF0ZWRfY29uc29sZV9vdXRwdXRfaW5fd2F0Y2hfbW9kZV9pbnN0ZWFkX29mX2NsZWFyaW5nX3RoZV9zY3JlZW46aSg2MTkxLDMsXCJXaGV0aGVyX3RvX2tlZXBfb3V0ZGF0ZWRfY29uc29sZV9vdXRwdXRfaW5fd2F0Y2hfbW9kZV9pbnN0ZWFkX29mX2NsZWFyaW5nX3RoZV9zY3JlZW5fNjE5MVwiLFwiV2hldGhlciB0byBrZWVwIG91dGRhdGVkIGNvbnNvbGUgb3V0cHV0IGluIHdhdGNoIG1vZGUgaW5zdGVhZCBvZiBjbGVhcmluZyB0aGUgc2NyZWVuLlwiKSxBbGxfaW1wb3J0c19pbl9pbXBvcnRfZGVjbGFyYXRpb25fYXJlX3VudXNlZDppKDYxOTIsMSxcIkFsbF9pbXBvcnRzX2luX2ltcG9ydF9kZWNsYXJhdGlvbl9hcmVfdW51c2VkXzYxOTJcIixcIkFsbCBpbXBvcnRzIGluIGltcG9ydCBkZWNsYXJhdGlvbiBhcmUgdW51c2VkLlwiLCEwKSxGb3VuZF8xX2Vycm9yX1dhdGNoaW5nX2Zvcl9maWxlX2NoYW5nZXM6aSg2MTkzLDMsXCJGb3VuZF8xX2Vycm9yX1dhdGNoaW5nX2Zvcl9maWxlX2NoYW5nZXNfNjE5M1wiLFwiRm91bmQgMSBlcnJvci4gV2F0Y2hpbmcgZm9yIGZpbGUgY2hhbmdlcy5cIiksRm91bmRfMF9lcnJvcnNfV2F0Y2hpbmdfZm9yX2ZpbGVfY2hhbmdlczppKDYxOTQsMyxcIkZvdW5kXzBfZXJyb3JzX1dhdGNoaW5nX2Zvcl9maWxlX2NoYW5nZXNfNjE5NFwiLFwiRm91bmQgezB9IGVycm9ycy4gV2F0Y2hpbmcgZm9yIGZpbGUgY2hhbmdlcy5cIiksUmVzb2x2ZV9rZXlvZl90b19zdHJpbmdfdmFsdWVkX3Byb3BlcnR5X25hbWVzX29ubHlfbm9fbnVtYmVyc19vcl9zeW1ib2xzOmkoNjE5NSwzLFwiUmVzb2x2ZV9rZXlvZl90b19zdHJpbmdfdmFsdWVkX3Byb3BlcnR5X25hbWVzX29ubHlfbm9fbnVtYmVyc19vcl9zeW1ib2xzXzYxOTVcIixcIlJlc29sdmUgJ2tleW9mJyB0byBzdHJpbmcgdmFsdWVkIHByb3BlcnR5IG5hbWVzIG9ubHkgKG5vIG51bWJlcnMgb3Igc3ltYm9scykuXCIpLF8wX2lzX2RlY2xhcmVkX2J1dF9uZXZlcl91c2VkOmkoNjE5NiwxLFwiXzBfaXNfZGVjbGFyZWRfYnV0X25ldmVyX3VzZWRfNjE5NlwiLFwiJ3swfScgaXMgZGVjbGFyZWQgYnV0IG5ldmVyIHVzZWQuXCIsITApLEluY2x1ZGVfbW9kdWxlc19pbXBvcnRlZF93aXRoX2pzb25fZXh0ZW5zaW9uOmkoNjE5NywzLFwiSW5jbHVkZV9tb2R1bGVzX2ltcG9ydGVkX3dpdGhfanNvbl9leHRlbnNpb25fNjE5N1wiLFwiSW5jbHVkZSBtb2R1bGVzIGltcG9ydGVkIHdpdGggJy5qc29uJyBleHRlbnNpb25cIiksQWxsX2Rlc3RydWN0dXJlZF9lbGVtZW50c19hcmVfdW51c2VkOmkoNjE5OCwxLFwiQWxsX2Rlc3RydWN0dXJlZF9lbGVtZW50c19hcmVfdW51c2VkXzYxOThcIixcIkFsbCBkZXN0cnVjdHVyZWQgZWxlbWVudHMgYXJlIHVudXNlZC5cIiwhMCksQWxsX3ZhcmlhYmxlc19hcmVfdW51c2VkOmkoNjE5OSwxLFwiQWxsX3ZhcmlhYmxlc19hcmVfdW51c2VkXzYxOTlcIixcIkFsbCB2YXJpYWJsZXMgYXJlIHVudXNlZC5cIiwhMCksRGVmaW5pdGlvbnNfb2ZfdGhlX2ZvbGxvd2luZ19pZGVudGlmaWVyc19jb25mbGljdF93aXRoX3Rob3NlX2luX2Fub3RoZXJfZmlsZV9Db2xvbl8wOmkoNjIwMCwxLFwiRGVmaW5pdGlvbnNfb2ZfdGhlX2ZvbGxvd2luZ19pZGVudGlmaWVyc19jb25mbGljdF93aXRoX3Rob3NlX2luX2Fub3RoZXJfZmlsZV9Db2xvbl8wXzYyMDBcIixcIkRlZmluaXRpb25zIG9mIHRoZSBmb2xsb3dpbmcgaWRlbnRpZmllcnMgY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiBhbm90aGVyIGZpbGU6IHswfVwiKSxDb25mbGljdHNfYXJlX2luX3RoaXNfZmlsZTppKDYyMDEsMyxcIkNvbmZsaWN0c19hcmVfaW5fdGhpc19maWxlXzYyMDFcIixcIkNvbmZsaWN0cyBhcmUgaW4gdGhpcyBmaWxlLlwiKSxQcm9qZWN0X3JlZmVyZW5jZXNfbWF5X25vdF9mb3JtX2FfY2lyY3VsYXJfZ3JhcGhfQ3ljbGVfZGV0ZWN0ZWRfQ29sb25fMDppKDYyMDIsMSxcIlByb2plY3RfcmVmZXJlbmNlc19tYXlfbm90X2Zvcm1fYV9jaXJjdWxhcl9ncmFwaF9DeWNsZV9kZXRlY3RlZF9Db2xvbl8wXzYyMDJcIixcIlByb2plY3QgcmVmZXJlbmNlcyBtYXkgbm90IGZvcm0gYSBjaXJjdWxhciBncmFwaC4gQ3ljbGUgZGV0ZWN0ZWQ6IHswfVwiKSxfMF93YXNfYWxzb19kZWNsYXJlZF9oZXJlOmkoNjIwMywzLFwiXzBfd2FzX2Fsc29fZGVjbGFyZWRfaGVyZV82MjAzXCIsXCInezB9JyB3YXMgYWxzbyBkZWNsYXJlZCBoZXJlLlwiKSxhbmRfaGVyZTppKDYyMDQsMyxcImFuZF9oZXJlXzYyMDRcIixcImFuZCBoZXJlLlwiKSxBbGxfdHlwZV9wYXJhbWV0ZXJzX2FyZV91bnVzZWQ6aSg2MjA1LDEsXCJBbGxfdHlwZV9wYXJhbWV0ZXJzX2FyZV91bnVzZWRfNjIwNVwiLFwiQWxsIHR5cGUgcGFyYW1ldGVycyBhcmUgdW51c2VkLlwiKSxwYWNrYWdlX2pzb25faGFzX2FfdHlwZXNWZXJzaW9uc19maWVsZF93aXRoX3ZlcnNpb25fc3BlY2lmaWNfcGF0aF9tYXBwaW5nczppKDYyMDYsMyxcInBhY2thZ2VfanNvbl9oYXNfYV90eXBlc1ZlcnNpb25zX2ZpZWxkX3dpdGhfdmVyc2lvbl9zcGVjaWZpY19wYXRoX21hcHBpbmdzXzYyMDZcIixcIidwYWNrYWdlLmpzb24nIGhhcyBhICd0eXBlc1ZlcnNpb25zJyBmaWVsZCB3aXRoIHZlcnNpb24tc3BlY2lmaWMgcGF0aCBtYXBwaW5ncy5cIikscGFja2FnZV9qc29uX2RvZXNfbm90X2hhdmVfYV90eXBlc1ZlcnNpb25zX2VudHJ5X3RoYXRfbWF0Y2hlc192ZXJzaW9uXzA6aSg2MjA3LDMsXCJwYWNrYWdlX2pzb25fZG9lc19ub3RfaGF2ZV9hX3R5cGVzVmVyc2lvbnNfZW50cnlfdGhhdF9tYXRjaGVzX3ZlcnNpb25fMF82MjA3XCIsXCIncGFja2FnZS5qc29uJyBkb2VzIG5vdCBoYXZlIGEgJ3R5cGVzVmVyc2lvbnMnIGVudHJ5IHRoYXQgbWF0Y2hlcyB2ZXJzaW9uICd7MH0nLlwiKSxwYWNrYWdlX2pzb25faGFzX2FfdHlwZXNWZXJzaW9uc19lbnRyeV8wX3RoYXRfbWF0Y2hlc19jb21waWxlcl92ZXJzaW9uXzFfbG9va2luZ19mb3JfYV9wYXR0ZXJuX3RvX21hdGNoX21vZHVsZV9uYW1lXzI6aSg2MjA4LDMsXCJwYWNrYWdlX2pzb25faGFzX2FfdHlwZXNWZXJzaW9uc19lbnRyeV8wX3RoYXRfbWF0Y2hlc19jb21waWxlcl92ZXJzaW9uXzFfbG9va2luZ19mb3JfYV9wYXR0ZXJuX3RvX21hXzYyMDhcIixcIidwYWNrYWdlLmpzb24nIGhhcyBhICd0eXBlc1ZlcnNpb25zJyBlbnRyeSAnezB9JyB0aGF0IG1hdGNoZXMgY29tcGlsZXIgdmVyc2lvbiAnezF9JywgbG9va2luZyBmb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIG1vZHVsZSBuYW1lICd7Mn0nLlwiKSxwYWNrYWdlX2pzb25faGFzX2FfdHlwZXNWZXJzaW9uc19lbnRyeV8wX3RoYXRfaXNfbm90X2FfdmFsaWRfc2VtdmVyX3JhbmdlOmkoNjIwOSwzLFwicGFja2FnZV9qc29uX2hhc19hX3R5cGVzVmVyc2lvbnNfZW50cnlfMF90aGF0X2lzX25vdF9hX3ZhbGlkX3NlbXZlcl9yYW5nZV82MjA5XCIsXCIncGFja2FnZS5qc29uJyBoYXMgYSAndHlwZXNWZXJzaW9ucycgZW50cnkgJ3swfScgdGhhdCBpcyBub3QgYSB2YWxpZCBzZW12ZXIgcmFuZ2UuXCIpLEFuX2FyZ3VtZW50X2Zvcl8wX3dhc19ub3RfcHJvdmlkZWQ6aSg2MjEwLDMsXCJBbl9hcmd1bWVudF9mb3JfMF93YXNfbm90X3Byb3ZpZGVkXzYyMTBcIixcIkFuIGFyZ3VtZW50IGZvciAnezB9JyB3YXMgbm90IHByb3ZpZGVkLlwiKSxBbl9hcmd1bWVudF9tYXRjaGluZ190aGlzX2JpbmRpbmdfcGF0dGVybl93YXNfbm90X3Byb3ZpZGVkOmkoNjIxMSwzLFwiQW5fYXJndW1lbnRfbWF0Y2hpbmdfdGhpc19iaW5kaW5nX3BhdHRlcm5fd2FzX25vdF9wcm92aWRlZF82MjExXCIsXCJBbiBhcmd1bWVudCBtYXRjaGluZyB0aGlzIGJpbmRpbmcgcGF0dGVybiB3YXMgbm90IHByb3ZpZGVkLlwiKSxEaWRfeW91X21lYW5fdG9fY2FsbF90aGlzX2V4cHJlc3Npb246aSg2MjEyLDMsXCJEaWRfeW91X21lYW5fdG9fY2FsbF90aGlzX2V4cHJlc3Npb25fNjIxMlwiLFwiRGlkIHlvdSBtZWFuIHRvIGNhbGwgdGhpcyBleHByZXNzaW9uP1wiKSxEaWRfeW91X21lYW5fdG9fdXNlX25ld193aXRoX3RoaXNfZXhwcmVzc2lvbjppKDYyMTMsMyxcIkRpZF95b3VfbWVhbl90b191c2VfbmV3X3dpdGhfdGhpc19leHByZXNzaW9uXzYyMTNcIixcIkRpZCB5b3UgbWVhbiB0byB1c2UgJ25ldycgd2l0aCB0aGlzIGV4cHJlc3Npb24/XCIpLEVuYWJsZV9zdHJpY3RfYmluZF9jYWxsX2FuZF9hcHBseV9tZXRob2RzX29uX2Z1bmN0aW9uczppKDYyMTQsMyxcIkVuYWJsZV9zdHJpY3RfYmluZF9jYWxsX2FuZF9hcHBseV9tZXRob2RzX29uX2Z1bmN0aW9uc182MjE0XCIsXCJFbmFibGUgc3RyaWN0ICdiaW5kJywgJ2NhbGwnLCBhbmQgJ2FwcGx5JyBtZXRob2RzIG9uIGZ1bmN0aW9ucy5cIiksVXNpbmdfY29tcGlsZXJfb3B0aW9uc19vZl9wcm9qZWN0X3JlZmVyZW5jZV9yZWRpcmVjdF8wOmkoNjIxNSwzLFwiVXNpbmdfY29tcGlsZXJfb3B0aW9uc19vZl9wcm9qZWN0X3JlZmVyZW5jZV9yZWRpcmVjdF8wXzYyMTVcIixcIlVzaW5nIGNvbXBpbGVyIG9wdGlvbnMgb2YgcHJvamVjdCByZWZlcmVuY2UgcmVkaXJlY3QgJ3swfScuXCIpLEZvdW5kXzFfZXJyb3I6aSg2MjE2LDMsXCJGb3VuZF8xX2Vycm9yXzYyMTZcIixcIkZvdW5kIDEgZXJyb3IuXCIpLEZvdW5kXzBfZXJyb3JzOmkoNjIxNywzLFwiRm91bmRfMF9lcnJvcnNfNjIxN1wiLFwiRm91bmQgezB9IGVycm9ycy5cIiksTW9kdWxlX25hbWVfMF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzFfd2l0aF9QYWNrYWdlX0lEXzI6aSg2MjE4LDMsXCJNb2R1bGVfbmFtZV8wX3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fMV93aXRoX1BhY2thZ2VfSURfMl82MjE4XCIsXCI9PT09PT09PSBNb2R1bGUgbmFtZSAnezB9JyB3YXMgc3VjY2Vzc2Z1bGx5IHJlc29sdmVkIHRvICd7MX0nIHdpdGggUGFja2FnZSBJRCAnezJ9Jy4gPT09PT09PT1cIiksVHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18xX3dpdGhfUGFja2FnZV9JRF8yX3ByaW1hcnlfQ29sb25fMzppKDYyMTksMyxcIlR5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fMV93aXRoX1BhY2thZ2VfSURfMl9wcmltYXJ5X0NvbG9uXzNfNjIxOVwiLFwiPT09PT09PT0gVHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3sxfScgd2l0aCBQYWNrYWdlIElEICd7Mn0nLCBwcmltYXJ5OiB7M30uID09PT09PT09XCIpLHBhY2thZ2VfanNvbl9oYWRfYV9mYWxzeV8wX2ZpZWxkOmkoNjIyMCwzLFwicGFja2FnZV9qc29uX2hhZF9hX2ZhbHN5XzBfZmllbGRfNjIyMFwiLFwiJ3BhY2thZ2UuanNvbicgaGFkIGEgZmFsc3kgJ3swfScgZmllbGQuXCIpLERpc2FibGVfdXNlX29mX3NvdXJjZV9maWxlc19pbnN0ZWFkX29mX2RlY2xhcmF0aW9uX2ZpbGVzX2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0czppKDYyMjEsMyxcIkRpc2FibGVfdXNlX29mX3NvdXJjZV9maWxlc19pbnN0ZWFkX29mX2RlY2xhcmF0aW9uX2ZpbGVzX2Zyb21fcmVmZXJlbmNlZF9wcm9qZWN0c182MjIxXCIsXCJEaXNhYmxlIHVzZSBvZiBzb3VyY2UgZmlsZXMgaW5zdGVhZCBvZiBkZWNsYXJhdGlvbiBmaWxlcyBmcm9tIHJlZmVyZW5jZWQgcHJvamVjdHMuXCIpLEVtaXRfY2xhc3NfZmllbGRzX3dpdGhfRGVmaW5lX2luc3RlYWRfb2ZfU2V0OmkoNjIyMiwzLFwiRW1pdF9jbGFzc19maWVsZHNfd2l0aF9EZWZpbmVfaW5zdGVhZF9vZl9TZXRfNjIyMlwiLFwiRW1pdCBjbGFzcyBmaWVsZHMgd2l0aCBEZWZpbmUgaW5zdGVhZCBvZiBTZXQuXCIpLEdlbmVyYXRlc19hX0NQVV9wcm9maWxlOmkoNjIyMywzLFwiR2VuZXJhdGVzX2FfQ1BVX3Byb2ZpbGVfNjIyM1wiLFwiR2VuZXJhdGVzIGEgQ1BVIHByb2ZpbGUuXCIpLERpc2FibGVfc29sdXRpb25fc2VhcmNoaW5nX2Zvcl90aGlzX3Byb2plY3Q6aSg2MjI0LDMsXCJEaXNhYmxlX3NvbHV0aW9uX3NlYXJjaGluZ19mb3JfdGhpc19wcm9qZWN0XzYyMjRcIixcIkRpc2FibGUgc29sdXRpb24gc2VhcmNoaW5nIGZvciB0aGlzIHByb2plY3QuXCIpLFNwZWNpZnlfc3RyYXRlZ3lfZm9yX3dhdGNoaW5nX2ZpbGVfQ29sb25fRml4ZWRQb2xsaW5nSW50ZXJ2YWxfZGVmYXVsdF9Qcmlvcml0eVBvbGxpbmdJbnRlcnZhbF9EeW5hbWljUHJpb3JpdHlQb2xsaW5nX0ZpeGVkQ2h1bmtTaXplUG9sbGluZ19Vc2VGc0V2ZW50c19Vc2VGc0V2ZW50c09uUGFyZW50RGlyZWN0b3J5OmkoNjIyNSwzLFwiU3BlY2lmeV9zdHJhdGVneV9mb3Jfd2F0Y2hpbmdfZmlsZV9Db2xvbl9GaXhlZFBvbGxpbmdJbnRlcnZhbF9kZWZhdWx0X1ByaW9yaXR5UG9sbGluZ0ludGVydmFsX0R5bmFtaV82MjI1XCIsXCJTcGVjaWZ5IHN0cmF0ZWd5IGZvciB3YXRjaGluZyBmaWxlOiAnRml4ZWRQb2xsaW5nSW50ZXJ2YWwnIChkZWZhdWx0KSwgJ1ByaW9yaXR5UG9sbGluZ0ludGVydmFsJywgJ0R5bmFtaWNQcmlvcml0eVBvbGxpbmcnLCAnRml4ZWRDaHVua1NpemVQb2xsaW5nJywgJ1VzZUZzRXZlbnRzJywgJ1VzZUZzRXZlbnRzT25QYXJlbnREaXJlY3RvcnknLlwiKSxTcGVjaWZ5X3N0cmF0ZWd5X2Zvcl93YXRjaGluZ19kaXJlY3Rvcnlfb25fcGxhdGZvcm1zX3RoYXRfZG9uX3Rfc3VwcG9ydF9yZWN1cnNpdmVfd2F0Y2hpbmdfbmF0aXZlbHlfQ29sb25fVXNlRnNFdmVudHNfZGVmYXVsdF9GaXhlZFBvbGxpbmdJbnRlcnZhbF9EeW5hbWljUHJpb3JpdHlQb2xsaW5nX0ZpeGVkQ2h1bmtTaXplUG9sbGluZzppKDYyMjYsMyxcIlNwZWNpZnlfc3RyYXRlZ3lfZm9yX3dhdGNoaW5nX2RpcmVjdG9yeV9vbl9wbGF0Zm9ybXNfdGhhdF9kb25fdF9zdXBwb3J0X3JlY3Vyc2l2ZV93YXRjaGluZ19uYXRpdmVseV9fNjIyNlwiLFwiU3BlY2lmeSBzdHJhdGVneSBmb3Igd2F0Y2hpbmcgZGlyZWN0b3J5IG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQgcmVjdXJzaXZlIHdhdGNoaW5nIG5hdGl2ZWx5OiAnVXNlRnNFdmVudHMnIChkZWZhdWx0KSwgJ0ZpeGVkUG9sbGluZ0ludGVydmFsJywgJ0R5bmFtaWNQcmlvcml0eVBvbGxpbmcnLCAnRml4ZWRDaHVua1NpemVQb2xsaW5nJy5cIiksU3BlY2lmeV9zdHJhdGVneV9mb3JfY3JlYXRpbmdfYV9wb2xsaW5nX3dhdGNoX3doZW5faXRfZmFpbHNfdG9fY3JlYXRlX3VzaW5nX2ZpbGVfc3lzdGVtX2V2ZW50c19Db2xvbl9GaXhlZEludGVydmFsX2RlZmF1bHRfUHJpb3JpdHlJbnRlcnZhbF9EeW5hbWljUHJpb3JpdHlfRml4ZWRDaHVua1NpemU6aSg2MjI3LDMsXCJTcGVjaWZ5X3N0cmF0ZWd5X2Zvcl9jcmVhdGluZ19hX3BvbGxpbmdfd2F0Y2hfd2hlbl9pdF9mYWlsc190b19jcmVhdGVfdXNpbmdfZmlsZV9zeXN0ZW1fZXZlbnRzX0NvbG9uXzYyMjdcIixcIlNwZWNpZnkgc3RyYXRlZ3kgZm9yIGNyZWF0aW5nIGEgcG9sbGluZyB3YXRjaCB3aGVuIGl0IGZhaWxzIHRvIGNyZWF0ZSB1c2luZyBmaWxlIHN5c3RlbSBldmVudHM6ICdGaXhlZEludGVydmFsJyAoZGVmYXVsdCksICdQcmlvcml0eUludGVydmFsJywgJ0R5bmFtaWNQcmlvcml0eScsICdGaXhlZENodW5rU2l6ZScuXCIpLFRhZ18wX2V4cGVjdHNfYXRfbGVhc3RfMV9hcmd1bWVudHNfYnV0X3RoZV9KU1hfZmFjdG9yeV8yX3Byb3ZpZGVzX2F0X21vc3RfMzppKDYyMjksMSxcIlRhZ18wX2V4cGVjdHNfYXRfbGVhc3RfMV9hcmd1bWVudHNfYnV0X3RoZV9KU1hfZmFjdG9yeV8yX3Byb3ZpZGVzX2F0X21vc3RfM182MjI5XCIsXCJUYWcgJ3swfScgZXhwZWN0cyBhdCBsZWFzdCAnezF9JyBhcmd1bWVudHMsIGJ1dCB0aGUgSlNYIGZhY3RvcnkgJ3syfScgcHJvdmlkZXMgYXQgbW9zdCAnezN9Jy5cIiksT3B0aW9uXzBfY2FuX29ubHlfYmVfc3BlY2lmaWVkX2luX3RzY29uZmlnX2pzb25fZmlsZV9vcl9zZXRfdG9fZmFsc2Vfb3JfbnVsbF9vbl9jb21tYW5kX2xpbmU6aSg2MjMwLDEsXCJPcHRpb25fMF9jYW5fb25seV9iZV9zcGVjaWZpZWRfaW5fdHNjb25maWdfanNvbl9maWxlX29yX3NldF90b19mYWxzZV9vcl9udWxsX29uX2NvbW1hbmRfbGluZV82MjMwXCIsXCJPcHRpb24gJ3swfScgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIGluICd0c2NvbmZpZy5qc29uJyBmaWxlIG9yIHNldCB0byAnZmFsc2UnIG9yICdudWxsJyBvbiBjb21tYW5kIGxpbmUuXCIpLENvdWxkX25vdF9yZXNvbHZlX3RoZV9wYXRoXzBfd2l0aF90aGVfZXh0ZW5zaW9uc19Db2xvbl8xOmkoNjIzMSwxLFwiQ291bGRfbm90X3Jlc29sdmVfdGhlX3BhdGhfMF93aXRoX3RoZV9leHRlbnNpb25zX0NvbG9uXzFfNjIzMVwiLFwiQ291bGQgbm90IHJlc29sdmUgdGhlIHBhdGggJ3swfScgd2l0aCB0aGUgZXh0ZW5zaW9uczogezF9LlwiKSxEZWNsYXJhdGlvbl9hdWdtZW50c19kZWNsYXJhdGlvbl9pbl9hbm90aGVyX2ZpbGVfVGhpc19jYW5ub3RfYmVfc2VyaWFsaXplZDppKDYyMzIsMSxcIkRlY2xhcmF0aW9uX2F1Z21lbnRzX2RlY2xhcmF0aW9uX2luX2Fub3RoZXJfZmlsZV9UaGlzX2Nhbm5vdF9iZV9zZXJpYWxpemVkXzYyMzJcIixcIkRlY2xhcmF0aW9uIGF1Z21lbnRzIGRlY2xhcmF0aW9uIGluIGFub3RoZXIgZmlsZS4gVGhpcyBjYW5ub3QgYmUgc2VyaWFsaXplZC5cIiksVGhpc19pc190aGVfZGVjbGFyYXRpb25fYmVpbmdfYXVnbWVudGVkX0NvbnNpZGVyX21vdmluZ190aGVfYXVnbWVudGluZ19kZWNsYXJhdGlvbl9pbnRvX3RoZV9zYW1lX2ZpbGU6aSg2MjMzLDEsXCJUaGlzX2lzX3RoZV9kZWNsYXJhdGlvbl9iZWluZ19hdWdtZW50ZWRfQ29uc2lkZXJfbW92aW5nX3RoZV9hdWdtZW50aW5nX2RlY2xhcmF0aW9uX2ludG9fdGhlX3NhbWVfZmlsXzYyMzNcIixcIlRoaXMgaXMgdGhlIGRlY2xhcmF0aW9uIGJlaW5nIGF1Z21lbnRlZC4gQ29uc2lkZXIgbW92aW5nIHRoZSBhdWdtZW50aW5nIGRlY2xhcmF0aW9uIGludG8gdGhlIHNhbWUgZmlsZS5cIiksVGhpc19leHByZXNzaW9uX2lzX25vdF9jYWxsYWJsZV9iZWNhdXNlX2l0X2lzX2FfZ2V0X2FjY2Vzc29yX0RpZF95b3VfbWVhbl90b191c2VfaXRfd2l0aG91dDppKDYyMzQsMSxcIlRoaXNfZXhwcmVzc2lvbl9pc19ub3RfY2FsbGFibGVfYmVjYXVzZV9pdF9pc19hX2dldF9hY2Nlc3Nvcl9EaWRfeW91X21lYW5fdG9fdXNlX2l0X3dpdGhvdXRfNjIzNFwiLFwiVGhpcyBleHByZXNzaW9uIGlzIG5vdCBjYWxsYWJsZSBiZWNhdXNlIGl0IGlzIGEgJ2dldCcgYWNjZXNzb3IuIERpZCB5b3UgbWVhbiB0byB1c2UgaXQgd2l0aG91dCAnKCknP1wiKSxEaXNhYmxlX2xvYWRpbmdfcmVmZXJlbmNlZF9wcm9qZWN0czppKDYyMzUsMyxcIkRpc2FibGVfbG9hZGluZ19yZWZlcmVuY2VkX3Byb2plY3RzXzYyMzVcIixcIkRpc2FibGUgbG9hZGluZyByZWZlcmVuY2VkIHByb2plY3RzLlwiKSxBcmd1bWVudHNfZm9yX3RoZV9yZXN0X3BhcmFtZXRlcl8wX3dlcmVfbm90X3Byb3ZpZGVkOmkoNjIzNiwxLFwiQXJndW1lbnRzX2Zvcl90aGVfcmVzdF9wYXJhbWV0ZXJfMF93ZXJlX25vdF9wcm92aWRlZF82MjM2XCIsXCJBcmd1bWVudHMgZm9yIHRoZSByZXN0IHBhcmFtZXRlciAnezB9JyB3ZXJlIG5vdCBwcm92aWRlZC5cIiksR2VuZXJhdGVzX2FuX2V2ZW50X3RyYWNlX2FuZF9hX2xpc3Rfb2ZfdHlwZXM6aSg2MjM3LDMsXCJHZW5lcmF0ZXNfYW5fZXZlbnRfdHJhY2VfYW5kX2FfbGlzdF9vZl90eXBlc182MjM3XCIsXCJHZW5lcmF0ZXMgYW4gZXZlbnQgdHJhY2UgYW5kIGEgbGlzdCBvZiB0eXBlcy5cIiksU3BlY2lmeV90aGVfbW9kdWxlX3NwZWNpZmllcl90b19iZV91c2VkX3RvX2ltcG9ydF90aGVfanN4X2FuZF9qc3hzX2ZhY3RvcnlfZnVuY3Rpb25zX2Zyb21fZWdfcmVhY3Q6aSg2MjM4LDEsXCJTcGVjaWZ5X3RoZV9tb2R1bGVfc3BlY2lmaWVyX3RvX2JlX3VzZWRfdG9faW1wb3J0X3RoZV9qc3hfYW5kX2pzeHNfZmFjdG9yeV9mdW5jdGlvbnNfZnJvbV9lZ19yZWFjdF82MjM4XCIsXCJTcGVjaWZ5IHRoZSBtb2R1bGUgc3BlY2lmaWVyIHRvIGJlIHVzZWQgdG8gaW1wb3J0IHRoZSAnanN4JyBhbmQgJ2pzeHMnIGZhY3RvcnkgZnVuY3Rpb25zIGZyb20uIGVnLCByZWFjdFwiKSxGaWxlXzBfZXhpc3RzX2FjY29yZGluZ190b19lYXJsaWVyX2NhY2hlZF9sb29rdXBzOmkoNjIzOSwzLFwiRmlsZV8wX2V4aXN0c19hY2NvcmRpbmdfdG9fZWFybGllcl9jYWNoZWRfbG9va3Vwc182MjM5XCIsXCJGaWxlICd7MH0nIGV4aXN0cyBhY2NvcmRpbmcgdG8gZWFybGllciBjYWNoZWQgbG9va3Vwcy5cIiksRmlsZV8wX2RvZXNfbm90X2V4aXN0X2FjY29yZGluZ190b19lYXJsaWVyX2NhY2hlZF9sb29rdXBzOmkoNjI0MCwzLFwiRmlsZV8wX2RvZXNfbm90X2V4aXN0X2FjY29yZGluZ190b19lYXJsaWVyX2NhY2hlZF9sb29rdXBzXzYyNDBcIixcIkZpbGUgJ3swfScgZG9lcyBub3QgZXhpc3QgYWNjb3JkaW5nIHRvIGVhcmxpZXIgY2FjaGVkIGxvb2t1cHMuXCIpLFJlc29sdXRpb25fZm9yX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX3dhc19mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzE6aSg2MjQxLDMsXCJSZXNvbHV0aW9uX2Zvcl90eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF93YXNfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8xXzYyNDFcIixcIlJlc29sdXRpb24gZm9yIHR5cGUgcmVmZXJlbmNlIGRpcmVjdGl2ZSAnezB9JyB3YXMgZm91bmQgaW4gY2FjaGUgZnJvbSBsb2NhdGlvbiAnezF9Jy5cIiksUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV8xOmkoNjI0MiwzLFwiUmVzb2x2aW5nX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2NvbnRhaW5pbmdfZmlsZV8xXzYyNDJcIixcIj09PT09PT09IFJlc29sdmluZyB0eXBlIHJlZmVyZW5jZSBkaXJlY3RpdmUgJ3swfScsIGNvbnRhaW5pbmcgZmlsZSAnezF9Jy4gPT09PT09PT1cIiksSW50ZXJwcmV0X29wdGlvbmFsX3Byb3BlcnR5X3R5cGVzX2FzX3dyaXR0ZW5fcmF0aGVyX3RoYW5fYWRkaW5nX3VuZGVmaW5lZDppKDYyNDMsMyxcIkludGVycHJldF9vcHRpb25hbF9wcm9wZXJ0eV90eXBlc19hc193cml0dGVuX3JhdGhlcl90aGFuX2FkZGluZ191bmRlZmluZWRfNjI0M1wiLFwiSW50ZXJwcmV0IG9wdGlvbmFsIHByb3BlcnR5IHR5cGVzIGFzIHdyaXR0ZW4sIHJhdGhlciB0aGFuIGFkZGluZyAndW5kZWZpbmVkJy5cIiksTW9kdWxlczppKDYyNDQsMyxcIk1vZHVsZXNfNjI0NFwiLFwiTW9kdWxlc1wiKSxGaWxlX01hbmFnZW1lbnQ6aSg2MjQ1LDMsXCJGaWxlX01hbmFnZW1lbnRfNjI0NVwiLFwiRmlsZSBNYW5hZ2VtZW50XCIpLEVtaXQ6aSg2MjQ2LDMsXCJFbWl0XzYyNDZcIixcIkVtaXRcIiksSmF2YVNjcmlwdF9TdXBwb3J0OmkoNjI0NywzLFwiSmF2YVNjcmlwdF9TdXBwb3J0XzYyNDdcIixcIkphdmFTY3JpcHQgU3VwcG9ydFwiKSxUeXBlX0NoZWNraW5nOmkoNjI0OCwzLFwiVHlwZV9DaGVja2luZ182MjQ4XCIsXCJUeXBlIENoZWNraW5nXCIpLEVkaXRvcl9TdXBwb3J0OmkoNjI0OSwzLFwiRWRpdG9yX1N1cHBvcnRfNjI0OVwiLFwiRWRpdG9yIFN1cHBvcnRcIiksV2F0Y2hfYW5kX0J1aWxkX01vZGVzOmkoNjI1MCwzLFwiV2F0Y2hfYW5kX0J1aWxkX01vZGVzXzYyNTBcIixcIldhdGNoIGFuZCBCdWlsZCBNb2Rlc1wiKSxDb21waWxlcl9EaWFnbm9zdGljczppKDYyNTEsMyxcIkNvbXBpbGVyX0RpYWdub3N0aWNzXzYyNTFcIixcIkNvbXBpbGVyIERpYWdub3N0aWNzXCIpLEludGVyb3BfQ29uc3RyYWludHM6aSg2MjUyLDMsXCJJbnRlcm9wX0NvbnN0cmFpbnRzXzYyNTJcIixcIkludGVyb3AgQ29uc3RyYWludHNcIiksQmFja3dhcmRzX0NvbXBhdGliaWxpdHk6aSg2MjUzLDMsXCJCYWNrd2FyZHNfQ29tcGF0aWJpbGl0eV82MjUzXCIsXCJCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eVwiKSxMYW5ndWFnZV9hbmRfRW52aXJvbm1lbnQ6aSg2MjU0LDMsXCJMYW5ndWFnZV9hbmRfRW52aXJvbm1lbnRfNjI1NFwiLFwiTGFuZ3VhZ2UgYW5kIEVudmlyb25tZW50XCIpLFByb2plY3RzOmkoNjI1NSwzLFwiUHJvamVjdHNfNjI1NVwiLFwiUHJvamVjdHNcIiksT3V0cHV0X0Zvcm1hdHRpbmc6aSg2MjU2LDMsXCJPdXRwdXRfRm9ybWF0dGluZ182MjU2XCIsXCJPdXRwdXQgRm9ybWF0dGluZ1wiKSxDb21wbGV0ZW5lc3M6aSg2MjU3LDMsXCJDb21wbGV0ZW5lc3NfNjI1N1wiLFwiQ29tcGxldGVuZXNzXCIpLF8wX3Nob3VsZF9iZV9zZXRfaW5zaWRlX3RoZV9jb21waWxlck9wdGlvbnNfb2JqZWN0X29mX3RoZV9jb25maWdfanNvbl9maWxlOmkoNjI1OCwxLFwiXzBfc2hvdWxkX2JlX3NldF9pbnNpZGVfdGhlX2NvbXBpbGVyT3B0aW9uc19vYmplY3Rfb2ZfdGhlX2NvbmZpZ19qc29uX2ZpbGVfNjI1OFwiLFwiJ3swfScgc2hvdWxkIGJlIHNldCBpbnNpZGUgdGhlICdjb21waWxlck9wdGlvbnMnIG9iamVjdCBvZiB0aGUgY29uZmlnIGpzb24gZmlsZVwiKSxGb3VuZF8xX2Vycm9yX2luXzA6aSg2MjU5LDMsXCJGb3VuZF8xX2Vycm9yX2luXzBfNjI1OVwiLFwiRm91bmQgMSBlcnJvciBpbiB7MH1cIiksRm91bmRfMF9lcnJvcnNfaW5fdGhlX3NhbWVfZmlsZV9zdGFydGluZ19hdF9Db2xvbl8xOmkoNjI2MCwzLFwiRm91bmRfMF9lcnJvcnNfaW5fdGhlX3NhbWVfZmlsZV9zdGFydGluZ19hdF9Db2xvbl8xXzYyNjBcIixcIkZvdW5kIHswfSBlcnJvcnMgaW4gdGhlIHNhbWUgZmlsZSwgc3RhcnRpbmcgYXQ6IHsxfVwiKSxGb3VuZF8wX2Vycm9yc19pbl8xX2ZpbGVzOmkoNjI2MSwzLFwiRm91bmRfMF9lcnJvcnNfaW5fMV9maWxlc182MjYxXCIsXCJGb3VuZCB7MH0gZXJyb3JzIGluIHsxfSBmaWxlcy5cIiksRmlsZV9uYW1lXzBfaGFzX2FfMV9leHRlbnNpb25fbG9va2luZ191cF8yX2luc3RlYWQ6aSg2MjYyLDMsXCJGaWxlX25hbWVfMF9oYXNfYV8xX2V4dGVuc2lvbl9sb29raW5nX3VwXzJfaW5zdGVhZF82MjYyXCIsXCJGaWxlIG5hbWUgJ3swfScgaGFzIGEgJ3sxfScgZXh0ZW5zaW9uIC0gbG9va2luZyB1cCAnezJ9JyBpbnN0ZWFkLlwiKSxNb2R1bGVfMF93YXNfcmVzb2x2ZWRfdG9fMV9idXRfYWxsb3dBcmJpdHJhcnlFeHRlbnNpb25zX2lzX25vdF9zZXQ6aSg2MjYzLDEsXCJNb2R1bGVfMF93YXNfcmVzb2x2ZWRfdG9fMV9idXRfYWxsb3dBcmJpdHJhcnlFeHRlbnNpb25zX2lzX25vdF9zZXRfNjI2M1wiLFwiTW9kdWxlICd7MH0nIHdhcyByZXNvbHZlZCB0byAnezF9JywgYnV0ICctLWFsbG93QXJiaXRyYXJ5RXh0ZW5zaW9ucycgaXMgbm90IHNldC5cIiksRW5hYmxlX2ltcG9ydGluZ19maWxlc193aXRoX2FueV9leHRlbnNpb25fcHJvdmlkZWRfYV9kZWNsYXJhdGlvbl9maWxlX2lzX3ByZXNlbnQ6aSg2MjY0LDMsXCJFbmFibGVfaW1wb3J0aW5nX2ZpbGVzX3dpdGhfYW55X2V4dGVuc2lvbl9wcm92aWRlZF9hX2RlY2xhcmF0aW9uX2ZpbGVfaXNfcHJlc2VudF82MjY0XCIsXCJFbmFibGUgaW1wb3J0aW5nIGZpbGVzIHdpdGggYW55IGV4dGVuc2lvbiwgcHJvdmlkZWQgYSBkZWNsYXJhdGlvbiBmaWxlIGlzIHByZXNlbnQuXCIpLFJlc29sdmluZ190eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfZm9yX3Byb2dyYW1fdGhhdF9zcGVjaWZpZXNfY3VzdG9tX3R5cGVSb290c19za2lwcGluZ19sb29rdXBfaW5fbm9kZV9tb2R1bGVzX2ZvbGRlcjppKDYyNjUsMyxcIlJlc29sdmluZ190eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfZm9yX3Byb2dyYW1fdGhhdF9zcGVjaWZpZXNfY3VzdG9tX3R5cGVSb290c19za2lwcGluZ19sb29rdXBfaW5fbm9fNjI2NVwiLFwiUmVzb2x2aW5nIHR5cGUgcmVmZXJlbmNlIGRpcmVjdGl2ZSBmb3IgcHJvZ3JhbSB0aGF0IHNwZWNpZmllcyBjdXN0b20gdHlwZVJvb3RzLCBza2lwcGluZyBsb29rdXAgaW4gJ25vZGVfbW9kdWxlcycgZm9sZGVyLlwiKSxPcHRpb25fMF9jYW5fb25seV9iZV9zcGVjaWZpZWRfb25fY29tbWFuZF9saW5lOmkoNjI2NiwxLFwiT3B0aW9uXzBfY2FuX29ubHlfYmVfc3BlY2lmaWVkX29uX2NvbW1hbmRfbGluZV82MjY2XCIsXCJPcHRpb24gJ3swfScgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIG9uIGNvbW1hbmQgbGluZS5cIiksRGlyZWN0b3J5XzBfaGFzX25vX2NvbnRhaW5pbmdfcGFja2FnZV9qc29uX3Njb3BlX0ltcG9ydHNfd2lsbF9ub3RfcmVzb2x2ZTppKDYyNzAsMyxcIkRpcmVjdG9yeV8wX2hhc19ub19jb250YWluaW5nX3BhY2thZ2VfanNvbl9zY29wZV9JbXBvcnRzX3dpbGxfbm90X3Jlc29sdmVfNjI3MFwiLFwiRGlyZWN0b3J5ICd7MH0nIGhhcyBubyBjb250YWluaW5nIHBhY2thZ2UuanNvbiBzY29wZS4gSW1wb3J0cyB3aWxsIG5vdCByZXNvbHZlLlwiKSxJbXBvcnRfc3BlY2lmaWVyXzBfZG9lc19ub3RfZXhpc3RfaW5fcGFja2FnZV9qc29uX3Njb3BlX2F0X3BhdGhfMTppKDYyNzEsMyxcIkltcG9ydF9zcGVjaWZpZXJfMF9kb2VzX25vdF9leGlzdF9pbl9wYWNrYWdlX2pzb25fc2NvcGVfYXRfcGF0aF8xXzYyNzFcIixcIkltcG9ydCBzcGVjaWZpZXIgJ3swfScgZG9lcyBub3QgZXhpc3QgaW4gcGFja2FnZS5qc29uIHNjb3BlIGF0IHBhdGggJ3sxfScuXCIpLEludmFsaWRfaW1wb3J0X3NwZWNpZmllcl8wX2hhc19ub19wb3NzaWJsZV9yZXNvbHV0aW9uczppKDYyNzIsMyxcIkludmFsaWRfaW1wb3J0X3NwZWNpZmllcl8wX2hhc19ub19wb3NzaWJsZV9yZXNvbHV0aW9uc182MjcyXCIsXCJJbnZhbGlkIGltcG9ydCBzcGVjaWZpZXIgJ3swfScgaGFzIG5vIHBvc3NpYmxlIHJlc29sdXRpb25zLlwiKSxwYWNrYWdlX2pzb25fc2NvcGVfMF9oYXNfbm9faW1wb3J0c19kZWZpbmVkOmkoNjI3MywzLFwicGFja2FnZV9qc29uX3Njb3BlXzBfaGFzX25vX2ltcG9ydHNfZGVmaW5lZF82MjczXCIsXCJwYWNrYWdlLmpzb24gc2NvcGUgJ3swfScgaGFzIG5vIGltcG9ydHMgZGVmaW5lZC5cIikscGFja2FnZV9qc29uX3Njb3BlXzBfZXhwbGljaXRseV9tYXBzX3NwZWNpZmllcl8xX3RvX251bGw6aSg2Mjc0LDMsXCJwYWNrYWdlX2pzb25fc2NvcGVfMF9leHBsaWNpdGx5X21hcHNfc3BlY2lmaWVyXzFfdG9fbnVsbF82Mjc0XCIsXCJwYWNrYWdlLmpzb24gc2NvcGUgJ3swfScgZXhwbGljaXRseSBtYXBzIHNwZWNpZmllciAnezF9JyB0byBudWxsLlwiKSxwYWNrYWdlX2pzb25fc2NvcGVfMF9oYXNfaW52YWxpZF90eXBlX2Zvcl90YXJnZXRfb2Zfc3BlY2lmaWVyXzE6aSg2Mjc1LDMsXCJwYWNrYWdlX2pzb25fc2NvcGVfMF9oYXNfaW52YWxpZF90eXBlX2Zvcl90YXJnZXRfb2Zfc3BlY2lmaWVyXzFfNjI3NVwiLFwicGFja2FnZS5qc29uIHNjb3BlICd7MH0nIGhhcyBpbnZhbGlkIHR5cGUgZm9yIHRhcmdldCBvZiBzcGVjaWZpZXIgJ3sxfSdcIiksRXhwb3J0X3NwZWNpZmllcl8wX2RvZXNfbm90X2V4aXN0X2luX3BhY2thZ2VfanNvbl9zY29wZV9hdF9wYXRoXzE6aSg2Mjc2LDMsXCJFeHBvcnRfc3BlY2lmaWVyXzBfZG9lc19ub3RfZXhpc3RfaW5fcGFja2FnZV9qc29uX3Njb3BlX2F0X3BhdGhfMV82Mjc2XCIsXCJFeHBvcnQgc3BlY2lmaWVyICd7MH0nIGRvZXMgbm90IGV4aXN0IGluIHBhY2thZ2UuanNvbiBzY29wZSBhdCBwYXRoICd7MX0nLlwiKSxSZXNvbHV0aW9uX29mX25vbl9yZWxhdGl2ZV9uYW1lX2ZhaWxlZF90cnlpbmdfd2l0aF9tb2Rlcm5fTm9kZV9yZXNvbHV0aW9uX2ZlYXR1cmVzX2Rpc2FibGVkX3RvX3NlZV9pZl9ucG1fbGlicmFyeV9uZWVkc19jb25maWd1cmF0aW9uX3VwZGF0ZTppKDYyNzcsMyxcIlJlc29sdXRpb25fb2Zfbm9uX3JlbGF0aXZlX25hbWVfZmFpbGVkX3RyeWluZ193aXRoX21vZGVybl9Ob2RlX3Jlc29sdXRpb25fZmVhdHVyZXNfZGlzYWJsZWRfdG9fc2VlX2lfNjI3N1wiLFwiUmVzb2x1dGlvbiBvZiBub24tcmVsYXRpdmUgbmFtZSBmYWlsZWQ7IHRyeWluZyB3aXRoIG1vZGVybiBOb2RlIHJlc29sdXRpb24gZmVhdHVyZXMgZGlzYWJsZWQgdG8gc2VlIGlmIG5wbSBsaWJyYXJ5IG5lZWRzIGNvbmZpZ3VyYXRpb24gdXBkYXRlLlwiKSxUaGVyZV9hcmVfdHlwZXNfYXRfMF9idXRfdGhpc19yZXN1bHRfY291bGRfbm90X2JlX3Jlc29sdmVkX3doZW5fcmVzcGVjdGluZ19wYWNrYWdlX2pzb25fZXhwb3J0c19UaGVfMV9saWJyYXJ5X21heV9uZWVkX3RvX3VwZGF0ZV9pdHNfcGFja2FnZV9qc29uX29yX3R5cGluZ3M6aSg2Mjc4LDMsXCJUaGVyZV9hcmVfdHlwZXNfYXRfMF9idXRfdGhpc19yZXN1bHRfY291bGRfbm90X2JlX3Jlc29sdmVkX3doZW5fcmVzcGVjdGluZ19wYWNrYWdlX2pzb25fZXhwb3J0c19UaGVfXzYyNzhcIixgVGhlcmUgYXJlIHR5cGVzIGF0ICd7MH0nLCBidXQgdGhpcyByZXN1bHQgY291bGQgbm90IGJlIHJlc29sdmVkIHdoZW4gcmVzcGVjdGluZyBwYWNrYWdlLmpzb24gXCJleHBvcnRzXCIuIFRoZSAnezF9JyBsaWJyYXJ5IG1heSBuZWVkIHRvIHVwZGF0ZSBpdHMgcGFja2FnZS5qc29uIG9yIHR5cGluZ3MuYCksRW5hYmxlX3Byb2plY3RfY29tcGlsYXRpb246aSg2MzAyLDMsXCJFbmFibGVfcHJvamVjdF9jb21waWxhdGlvbl82MzAyXCIsXCJFbmFibGUgcHJvamVjdCBjb21waWxhdGlvblwiKSxDb21wb3NpdGVfcHJvamVjdHNfbWF5X25vdF9kaXNhYmxlX2RlY2xhcmF0aW9uX2VtaXQ6aSg2MzA0LDEsXCJDb21wb3NpdGVfcHJvamVjdHNfbWF5X25vdF9kaXNhYmxlX2RlY2xhcmF0aW9uX2VtaXRfNjMwNFwiLFwiQ29tcG9zaXRlIHByb2plY3RzIG1heSBub3QgZGlzYWJsZSBkZWNsYXJhdGlvbiBlbWl0LlwiKSxPdXRwdXRfZmlsZV8wX2hhc19ub3RfYmVlbl9idWlsdF9mcm9tX3NvdXJjZV9maWxlXzE6aSg2MzA1LDEsXCJPdXRwdXRfZmlsZV8wX2hhc19ub3RfYmVlbl9idWlsdF9mcm9tX3NvdXJjZV9maWxlXzFfNjMwNVwiLFwiT3V0cHV0IGZpbGUgJ3swfScgaGFzIG5vdCBiZWVuIGJ1aWx0IGZyb20gc291cmNlIGZpbGUgJ3sxfScuXCIpLFJlZmVyZW5jZWRfcHJvamVjdF8wX211c3RfaGF2ZV9zZXR0aW5nX2NvbXBvc2l0ZV9Db2xvbl90cnVlOmkoNjMwNiwxLFwiUmVmZXJlbmNlZF9wcm9qZWN0XzBfbXVzdF9oYXZlX3NldHRpbmdfY29tcG9zaXRlX0NvbG9uX3RydWVfNjMwNlwiLGBSZWZlcmVuY2VkIHByb2plY3QgJ3swfScgbXVzdCBoYXZlIHNldHRpbmcgXCJjb21wb3NpdGVcIjogdHJ1ZS5gKSxGaWxlXzBfaXNfbm90X2xpc3RlZF93aXRoaW5fdGhlX2ZpbGVfbGlzdF9vZl9wcm9qZWN0XzFfUHJvamVjdHNfbXVzdF9saXN0X2FsbF9maWxlc19vcl91c2VfYW5faW5jbHVkZV9wYXR0ZXJuOmkoNjMwNywxLFwiRmlsZV8wX2lzX25vdF9saXN0ZWRfd2l0aGluX3RoZV9maWxlX2xpc3Rfb2ZfcHJvamVjdF8xX1Byb2plY3RzX211c3RfbGlzdF9hbGxfZmlsZXNfb3JfdXNlX2FuX2luY2x1ZF82MzA3XCIsXCJGaWxlICd7MH0nIGlzIG5vdCBsaXN0ZWQgd2l0aGluIHRoZSBmaWxlIGxpc3Qgb2YgcHJvamVjdCAnezF9Jy4gUHJvamVjdHMgbXVzdCBsaXN0IGFsbCBmaWxlcyBvciB1c2UgYW4gJ2luY2x1ZGUnIHBhdHRlcm4uXCIpLENhbm5vdF9wcmVwZW5kX3Byb2plY3RfMF9iZWNhdXNlX2l0X2RvZXNfbm90X2hhdmVfb3V0RmlsZV9zZXQ6aSg2MzA4LDEsXCJDYW5ub3RfcHJlcGVuZF9wcm9qZWN0XzBfYmVjYXVzZV9pdF9kb2VzX25vdF9oYXZlX291dEZpbGVfc2V0XzYzMDhcIixcIkNhbm5vdCBwcmVwZW5kIHByb2plY3QgJ3swfScgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlICdvdXRGaWxlJyBzZXRcIiksT3V0cHV0X2ZpbGVfMF9mcm9tX3Byb2plY3RfMV9kb2VzX25vdF9leGlzdDppKDYzMDksMSxcIk91dHB1dF9maWxlXzBfZnJvbV9wcm9qZWN0XzFfZG9lc19ub3RfZXhpc3RfNjMwOVwiLFwiT3V0cHV0IGZpbGUgJ3swfScgZnJvbSBwcm9qZWN0ICd7MX0nIGRvZXMgbm90IGV4aXN0XCIpLFJlZmVyZW5jZWRfcHJvamVjdF8wX21heV9ub3RfZGlzYWJsZV9lbWl0OmkoNjMxMCwxLFwiUmVmZXJlbmNlZF9wcm9qZWN0XzBfbWF5X25vdF9kaXNhYmxlX2VtaXRfNjMxMFwiLFwiUmVmZXJlbmNlZCBwcm9qZWN0ICd7MH0nIG1heSBub3QgZGlzYWJsZSBlbWl0LlwiKSxQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9vdXRwdXRfMV9pc19vbGRlcl90aGFuX2lucHV0XzI6aSg2MzUwLDMsXCJQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9vdXRwdXRfMV9pc19vbGRlcl90aGFuX2lucHV0XzJfNjM1MFwiLFwiUHJvamVjdCAnezB9JyBpcyBvdXQgb2YgZGF0ZSBiZWNhdXNlIG91dHB1dCAnezF9JyBpcyBvbGRlciB0aGFuIGlucHV0ICd7Mn0nXCIpLFByb2plY3RfMF9pc191cF90b19kYXRlX2JlY2F1c2VfbmV3ZXN0X2lucHV0XzFfaXNfb2xkZXJfdGhhbl9vdXRwdXRfMjppKDYzNTEsMyxcIlByb2plY3RfMF9pc191cF90b19kYXRlX2JlY2F1c2VfbmV3ZXN0X2lucHV0XzFfaXNfb2xkZXJfdGhhbl9vdXRwdXRfMl82MzUxXCIsXCJQcm9qZWN0ICd7MH0nIGlzIHVwIHRvIGRhdGUgYmVjYXVzZSBuZXdlc3QgaW5wdXQgJ3sxfScgaXMgb2xkZXIgdGhhbiBvdXRwdXQgJ3syfSdcIiksUHJvamVjdF8wX2lzX291dF9vZl9kYXRlX2JlY2F1c2Vfb3V0cHV0X2ZpbGVfMV9kb2VzX25vdF9leGlzdDppKDYzNTIsMyxcIlByb2plY3RfMF9pc19vdXRfb2ZfZGF0ZV9iZWNhdXNlX291dHB1dF9maWxlXzFfZG9lc19ub3RfZXhpc3RfNjM1MlwiLFwiUHJvamVjdCAnezB9JyBpcyBvdXQgb2YgZGF0ZSBiZWNhdXNlIG91dHB1dCBmaWxlICd7MX0nIGRvZXMgbm90IGV4aXN0XCIpLFByb2plY3RfMF9pc19vdXRfb2ZfZGF0ZV9iZWNhdXNlX2l0c19kZXBlbmRlbmN5XzFfaXNfb3V0X29mX2RhdGU6aSg2MzUzLDMsXCJQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9pdHNfZGVwZW5kZW5jeV8xX2lzX291dF9vZl9kYXRlXzYzNTNcIixcIlByb2plY3QgJ3swfScgaXMgb3V0IG9mIGRhdGUgYmVjYXVzZSBpdHMgZGVwZW5kZW5jeSAnezF9JyBpcyBvdXQgb2YgZGF0ZVwiKSxQcm9qZWN0XzBfaXNfdXBfdG9fZGF0ZV93aXRoX2RfdHNfZmlsZXNfZnJvbV9pdHNfZGVwZW5kZW5jaWVzOmkoNjM1NCwzLFwiUHJvamVjdF8wX2lzX3VwX3RvX2RhdGVfd2l0aF9kX3RzX2ZpbGVzX2Zyb21faXRzX2RlcGVuZGVuY2llc182MzU0XCIsXCJQcm9qZWN0ICd7MH0nIGlzIHVwIHRvIGRhdGUgd2l0aCAuZC50cyBmaWxlcyBmcm9tIGl0cyBkZXBlbmRlbmNpZXNcIiksUHJvamVjdHNfaW5fdGhpc19idWlsZF9Db2xvbl8wOmkoNjM1NSwzLFwiUHJvamVjdHNfaW5fdGhpc19idWlsZF9Db2xvbl8wXzYzNTVcIixcIlByb2plY3RzIGluIHRoaXMgYnVpbGQ6IHswfVwiKSxBX25vbl9kcnlfYnVpbGRfd291bGRfZGVsZXRlX3RoZV9mb2xsb3dpbmdfZmlsZXNfQ29sb25fMDppKDYzNTYsMyxcIkFfbm9uX2RyeV9idWlsZF93b3VsZF9kZWxldGVfdGhlX2ZvbGxvd2luZ19maWxlc19Db2xvbl8wXzYzNTZcIixcIkEgbm9uLWRyeSBidWlsZCB3b3VsZCBkZWxldGUgdGhlIGZvbGxvd2luZyBmaWxlczogezB9XCIpLEFfbm9uX2RyeV9idWlsZF93b3VsZF9idWlsZF9wcm9qZWN0XzA6aSg2MzU3LDMsXCJBX25vbl9kcnlfYnVpbGRfd291bGRfYnVpbGRfcHJvamVjdF8wXzYzNTdcIixcIkEgbm9uLWRyeSBidWlsZCB3b3VsZCBidWlsZCBwcm9qZWN0ICd7MH0nXCIpLEJ1aWxkaW5nX3Byb2plY3RfMDppKDYzNTgsMyxcIkJ1aWxkaW5nX3Byb2plY3RfMF82MzU4XCIsXCJCdWlsZGluZyBwcm9qZWN0ICd7MH0nLi4uXCIpLFVwZGF0aW5nX291dHB1dF90aW1lc3RhbXBzX29mX3Byb2plY3RfMDppKDYzNTksMyxcIlVwZGF0aW5nX291dHB1dF90aW1lc3RhbXBzX29mX3Byb2plY3RfMF82MzU5XCIsXCJVcGRhdGluZyBvdXRwdXQgdGltZXN0YW1wcyBvZiBwcm9qZWN0ICd7MH0nLi4uXCIpLFByb2plY3RfMF9pc191cF90b19kYXRlOmkoNjM2MSwzLFwiUHJvamVjdF8wX2lzX3VwX3RvX2RhdGVfNjM2MVwiLFwiUHJvamVjdCAnezB9JyBpcyB1cCB0byBkYXRlXCIpLFNraXBwaW5nX2J1aWxkX29mX3Byb2plY3RfMF9iZWNhdXNlX2l0c19kZXBlbmRlbmN5XzFfaGFzX2Vycm9yczppKDYzNjIsMyxcIlNraXBwaW5nX2J1aWxkX29mX3Byb2plY3RfMF9iZWNhdXNlX2l0c19kZXBlbmRlbmN5XzFfaGFzX2Vycm9yc182MzYyXCIsXCJTa2lwcGluZyBidWlsZCBvZiBwcm9qZWN0ICd7MH0nIGJlY2F1c2UgaXRzIGRlcGVuZGVuY3kgJ3sxfScgaGFzIGVycm9yc1wiKSxQcm9qZWN0XzBfY2FuX3RfYmVfYnVpbHRfYmVjYXVzZV9pdHNfZGVwZW5kZW5jeV8xX2hhc19lcnJvcnM6aSg2MzYzLDMsXCJQcm9qZWN0XzBfY2FuX3RfYmVfYnVpbHRfYmVjYXVzZV9pdHNfZGVwZW5kZW5jeV8xX2hhc19lcnJvcnNfNjM2M1wiLFwiUHJvamVjdCAnezB9JyBjYW4ndCBiZSBidWlsdCBiZWNhdXNlIGl0cyBkZXBlbmRlbmN5ICd7MX0nIGhhcyBlcnJvcnNcIiksQnVpbGRfb25lX29yX21vcmVfcHJvamVjdHNfYW5kX3RoZWlyX2RlcGVuZGVuY2llc19pZl9vdXRfb2ZfZGF0ZTppKDYzNjQsMyxcIkJ1aWxkX29uZV9vcl9tb3JlX3Byb2plY3RzX2FuZF90aGVpcl9kZXBlbmRlbmNpZXNfaWZfb3V0X29mX2RhdGVfNjM2NFwiLFwiQnVpbGQgb25lIG9yIG1vcmUgcHJvamVjdHMgYW5kIHRoZWlyIGRlcGVuZGVuY2llcywgaWYgb3V0IG9mIGRhdGVcIiksRGVsZXRlX3RoZV9vdXRwdXRzX29mX2FsbF9wcm9qZWN0czppKDYzNjUsMyxcIkRlbGV0ZV90aGVfb3V0cHV0c19vZl9hbGxfcHJvamVjdHNfNjM2NVwiLFwiRGVsZXRlIHRoZSBvdXRwdXRzIG9mIGFsbCBwcm9qZWN0cy5cIiksU2hvd193aGF0X3dvdWxkX2JlX2J1aWx0X29yX2RlbGV0ZWRfaWZfc3BlY2lmaWVkX3dpdGhfY2xlYW46aSg2MzY3LDMsXCJTaG93X3doYXRfd291bGRfYmVfYnVpbHRfb3JfZGVsZXRlZF9pZl9zcGVjaWZpZWRfd2l0aF9jbGVhbl82MzY3XCIsXCJTaG93IHdoYXQgd291bGQgYmUgYnVpbHQgKG9yIGRlbGV0ZWQsIGlmIHNwZWNpZmllZCB3aXRoICctLWNsZWFuJylcIiksT3B0aW9uX2J1aWxkX211c3RfYmVfdGhlX2ZpcnN0X2NvbW1hbmRfbGluZV9hcmd1bWVudDppKDYzNjksMSxcIk9wdGlvbl9idWlsZF9tdXN0X2JlX3RoZV9maXJzdF9jb21tYW5kX2xpbmVfYXJndW1lbnRfNjM2OVwiLFwiT3B0aW9uICctLWJ1aWxkJyBtdXN0IGJlIHRoZSBmaXJzdCBjb21tYW5kIGxpbmUgYXJndW1lbnQuXCIpLE9wdGlvbnNfMF9hbmRfMV9jYW5ub3RfYmVfY29tYmluZWQ6aSg2MzcwLDEsXCJPcHRpb25zXzBfYW5kXzFfY2Fubm90X2JlX2NvbWJpbmVkXzYzNzBcIixcIk9wdGlvbnMgJ3swfScgYW5kICd7MX0nIGNhbm5vdCBiZSBjb21iaW5lZC5cIiksVXBkYXRpbmdfdW5jaGFuZ2VkX291dHB1dF90aW1lc3RhbXBzX29mX3Byb2plY3RfMDppKDYzNzEsMyxcIlVwZGF0aW5nX3VuY2hhbmdlZF9vdXRwdXRfdGltZXN0YW1wc19vZl9wcm9qZWN0XzBfNjM3MVwiLFwiVXBkYXRpbmcgdW5jaGFuZ2VkIG91dHB1dCB0aW1lc3RhbXBzIG9mIHByb2plY3QgJ3swfScuLi5cIiksUHJvamVjdF8wX2lzX291dF9vZl9kYXRlX2JlY2F1c2Vfb3V0cHV0X29mX2l0c19kZXBlbmRlbmN5XzFfaGFzX2NoYW5nZWQ6aSg2MzcyLDMsXCJQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9vdXRwdXRfb2ZfaXRzX2RlcGVuZGVuY3lfMV9oYXNfY2hhbmdlZF82MzcyXCIsXCJQcm9qZWN0ICd7MH0nIGlzIG91dCBvZiBkYXRlIGJlY2F1c2Ugb3V0cHV0IG9mIGl0cyBkZXBlbmRlbmN5ICd7MX0nIGhhcyBjaGFuZ2VkXCIpLFVwZGF0aW5nX291dHB1dF9vZl9wcm9qZWN0XzA6aSg2MzczLDMsXCJVcGRhdGluZ19vdXRwdXRfb2ZfcHJvamVjdF8wXzYzNzNcIixcIlVwZGF0aW5nIG91dHB1dCBvZiBwcm9qZWN0ICd7MH0nLi4uXCIpLEFfbm9uX2RyeV9idWlsZF93b3VsZF91cGRhdGVfdGltZXN0YW1wc19mb3Jfb3V0cHV0X29mX3Byb2plY3RfMDppKDYzNzQsMyxcIkFfbm9uX2RyeV9idWlsZF93b3VsZF91cGRhdGVfdGltZXN0YW1wc19mb3Jfb3V0cHV0X29mX3Byb2plY3RfMF82Mzc0XCIsXCJBIG5vbi1kcnkgYnVpbGQgd291bGQgdXBkYXRlIHRpbWVzdGFtcHMgZm9yIG91dHB1dCBvZiBwcm9qZWN0ICd7MH0nXCIpLEFfbm9uX2RyeV9idWlsZF93b3VsZF91cGRhdGVfb3V0cHV0X29mX3Byb2plY3RfMDppKDYzNzUsMyxcIkFfbm9uX2RyeV9idWlsZF93b3VsZF91cGRhdGVfb3V0cHV0X29mX3Byb2plY3RfMF82Mzc1XCIsXCJBIG5vbi1kcnkgYnVpbGQgd291bGQgdXBkYXRlIG91dHB1dCBvZiBwcm9qZWN0ICd7MH0nXCIpLENhbm5vdF91cGRhdGVfb3V0cHV0X29mX3Byb2plY3RfMF9iZWNhdXNlX3RoZXJlX3dhc19lcnJvcl9yZWFkaW5nX2ZpbGVfMTppKDYzNzYsMyxcIkNhbm5vdF91cGRhdGVfb3V0cHV0X29mX3Byb2plY3RfMF9iZWNhdXNlX3RoZXJlX3dhc19lcnJvcl9yZWFkaW5nX2ZpbGVfMV82Mzc2XCIsXCJDYW5ub3QgdXBkYXRlIG91dHB1dCBvZiBwcm9qZWN0ICd7MH0nIGJlY2F1c2UgdGhlcmUgd2FzIGVycm9yIHJlYWRpbmcgZmlsZSAnezF9J1wiKSxDYW5ub3Rfd3JpdGVfZmlsZV8wX2JlY2F1c2VfaXRfd2lsbF9vdmVyd3JpdGVfdHNidWlsZGluZm9fZmlsZV9nZW5lcmF0ZWRfYnlfcmVmZXJlbmNlZF9wcm9qZWN0XzE6aSg2Mzc3LDEsXCJDYW5ub3Rfd3JpdGVfZmlsZV8wX2JlY2F1c2VfaXRfd2lsbF9vdmVyd3JpdGVfdHNidWlsZGluZm9fZmlsZV9nZW5lcmF0ZWRfYnlfcmVmZXJlbmNlZF9wcm9qZWN0XzFfNjM3N1wiLFwiQ2Fubm90IHdyaXRlIGZpbGUgJ3swfScgYmVjYXVzZSBpdCB3aWxsIG92ZXJ3cml0ZSAnLnRzYnVpbGRpbmZvJyBmaWxlIGdlbmVyYXRlZCBieSByZWZlcmVuY2VkIHByb2plY3QgJ3sxfSdcIiksQ29tcG9zaXRlX3Byb2plY3RzX21heV9ub3RfZGlzYWJsZV9pbmNyZW1lbnRhbF9jb21waWxhdGlvbjppKDYzNzksMSxcIkNvbXBvc2l0ZV9wcm9qZWN0c19tYXlfbm90X2Rpc2FibGVfaW5jcmVtZW50YWxfY29tcGlsYXRpb25fNjM3OVwiLFwiQ29tcG9zaXRlIHByb2plY3RzIG1heSBub3QgZGlzYWJsZSBpbmNyZW1lbnRhbCBjb21waWxhdGlvbi5cIiksU3BlY2lmeV9maWxlX3RvX3N0b3JlX2luY3JlbWVudGFsX2NvbXBpbGF0aW9uX2luZm9ybWF0aW9uOmkoNjM4MCwzLFwiU3BlY2lmeV9maWxlX3RvX3N0b3JlX2luY3JlbWVudGFsX2NvbXBpbGF0aW9uX2luZm9ybWF0aW9uXzYzODBcIixcIlNwZWNpZnkgZmlsZSB0byBzdG9yZSBpbmNyZW1lbnRhbCBjb21waWxhdGlvbiBpbmZvcm1hdGlvblwiKSxQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9vdXRwdXRfZm9yX2l0X3dhc19nZW5lcmF0ZWRfd2l0aF92ZXJzaW9uXzFfdGhhdF9kaWZmZXJzX3dpdGhfY3VycmVudF92ZXJzaW9uXzI6aSg2MzgxLDMsXCJQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9vdXRwdXRfZm9yX2l0X3dhc19nZW5lcmF0ZWRfd2l0aF92ZXJzaW9uXzFfdGhhdF9kaWZmZXJzX3dpdGhfY3VycmVuXzYzODFcIixcIlByb2plY3QgJ3swfScgaXMgb3V0IG9mIGRhdGUgYmVjYXVzZSBvdXRwdXQgZm9yIGl0IHdhcyBnZW5lcmF0ZWQgd2l0aCB2ZXJzaW9uICd7MX0nIHRoYXQgZGlmZmVycyB3aXRoIGN1cnJlbnQgdmVyc2lvbiAnezJ9J1wiKSxTa2lwcGluZ19idWlsZF9vZl9wcm9qZWN0XzBfYmVjYXVzZV9pdHNfZGVwZW5kZW5jeV8xX3dhc19ub3RfYnVpbHQ6aSg2MzgyLDMsXCJTa2lwcGluZ19idWlsZF9vZl9wcm9qZWN0XzBfYmVjYXVzZV9pdHNfZGVwZW5kZW5jeV8xX3dhc19ub3RfYnVpbHRfNjM4MlwiLFwiU2tpcHBpbmcgYnVpbGQgb2YgcHJvamVjdCAnezB9JyBiZWNhdXNlIGl0cyBkZXBlbmRlbmN5ICd7MX0nIHdhcyBub3QgYnVpbHRcIiksUHJvamVjdF8wX2Nhbl90X2JlX2J1aWx0X2JlY2F1c2VfaXRzX2RlcGVuZGVuY3lfMV93YXNfbm90X2J1aWx0OmkoNjM4MywzLFwiUHJvamVjdF8wX2Nhbl90X2JlX2J1aWx0X2JlY2F1c2VfaXRzX2RlcGVuZGVuY3lfMV93YXNfbm90X2J1aWx0XzYzODNcIixcIlByb2plY3QgJ3swfScgY2FuJ3QgYmUgYnVpbHQgYmVjYXVzZSBpdHMgZGVwZW5kZW5jeSAnezF9JyB3YXMgbm90IGJ1aWx0XCIpLEhhdmVfcmVjb21waWxlc19pbl9pbmNyZW1lbnRhbF9hbmRfd2F0Y2hfYXNzdW1lX3RoYXRfY2hhbmdlc193aXRoaW5fYV9maWxlX3dpbGxfb25seV9hZmZlY3RfZmlsZXNfZGlyZWN0bHlfZGVwZW5kaW5nX29uX2l0OmkoNjM4NCwzLFwiSGF2ZV9yZWNvbXBpbGVzX2luX2luY3JlbWVudGFsX2FuZF93YXRjaF9hc3N1bWVfdGhhdF9jaGFuZ2VzX3dpdGhpbl9hX2ZpbGVfd2lsbF9vbmx5X2FmZmVjdF9maWxlc19kaV82Mzg0XCIsXCJIYXZlIHJlY29tcGlsZXMgaW4gJy0taW5jcmVtZW50YWwnIGFuZCAnLS13YXRjaCcgYXNzdW1lIHRoYXQgY2hhbmdlcyB3aXRoaW4gYSBmaWxlIHdpbGwgb25seSBhZmZlY3QgZmlsZXMgZGlyZWN0bHkgZGVwZW5kaW5nIG9uIGl0LlwiKSxfMF9pc19kZXByZWNhdGVkOmkoNjM4NSwyLFwiXzBfaXNfZGVwcmVjYXRlZF82Mzg1XCIsXCInezB9JyBpcyBkZXByZWNhdGVkLlwiLHZvaWQgMCx2b2lkIDAsITApLFBlcmZvcm1hbmNlX3RpbWluZ3NfZm9yX2RpYWdub3N0aWNzX29yX2V4dGVuZGVkRGlhZ25vc3RpY3NfYXJlX25vdF9hdmFpbGFibGVfaW5fdGhpc19zZXNzaW9uX0FfbmF0aXZlX2ltcGxlbWVudGF0aW9uX29mX3RoZV9XZWJfUGVyZm9ybWFuY2VfQVBJX2NvdWxkX25vdF9iZV9mb3VuZDppKDYzODYsMyxcIlBlcmZvcm1hbmNlX3RpbWluZ3NfZm9yX2RpYWdub3N0aWNzX29yX2V4dGVuZGVkRGlhZ25vc3RpY3NfYXJlX25vdF9hdmFpbGFibGVfaW5fdGhpc19zZXNzaW9uX0FfbmF0aXZfNjM4NlwiLFwiUGVyZm9ybWFuY2UgdGltaW5ncyBmb3IgJy0tZGlhZ25vc3RpY3MnIG9yICctLWV4dGVuZGVkRGlhZ25vc3RpY3MnIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgc2Vzc2lvbi4gQSBuYXRpdmUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYiBQZXJmb3JtYW5jZSBBUEkgY291bGQgbm90IGJlIGZvdW5kLlwiKSxUaGVfc2lnbmF0dXJlXzBfb2ZfMV9pc19kZXByZWNhdGVkOmkoNjM4NywyLFwiVGhlX3NpZ25hdHVyZV8wX29mXzFfaXNfZGVwcmVjYXRlZF82Mzg3XCIsXCJUaGUgc2lnbmF0dXJlICd7MH0nIG9mICd7MX0nIGlzIGRlcHJlY2F0ZWQuXCIsdm9pZCAwLHZvaWQgMCwhMCksUHJvamVjdF8wX2lzX2JlaW5nX2ZvcmNpYmx5X3JlYnVpbHQ6aSg2Mzg4LDMsXCJQcm9qZWN0XzBfaXNfYmVpbmdfZm9yY2libHlfcmVidWlsdF82Mzg4XCIsXCJQcm9qZWN0ICd7MH0nIGlzIGJlaW5nIGZvcmNpYmx5IHJlYnVpbHRcIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX21vZHVsZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfbm90X3Jlc29sdmVkOmkoNjM4OSwzLFwiUmV1c2luZ19yZXNvbHV0aW9uX29mX21vZHVsZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfbm90X3Jlc29sdmVkXzYzODlcIixcIlJldXNpbmcgcmVzb2x1dGlvbiBvZiBtb2R1bGUgJ3swfScgZnJvbSAnezF9JyBvZiBvbGQgcHJvZ3JhbSwgaXQgd2FzIG5vdCByZXNvbHZlZC5cIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzI6aSg2MzkwLDMsXCJSZXVzaW5nX3Jlc29sdXRpb25fb2ZfdHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfZnJvbV8xX29mX29sZF9wcm9ncmFtX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfXzYzOTBcIixcIlJldXNpbmcgcmVzb2x1dGlvbiBvZiB0eXBlIHJlZmVyZW5jZSBkaXJlY3RpdmUgJ3swfScgZnJvbSAnezF9JyBvZiBvbGQgcHJvZ3JhbSwgaXQgd2FzIHN1Y2Nlc3NmdWxseSByZXNvbHZlZCB0byAnezJ9Jy5cIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9vZl9vbGRfcHJvZ3JhbV9pdF93YXNfc3VjY2Vzc2Z1bGx5X3Jlc29sdmVkX3RvXzJfd2l0aF9QYWNrYWdlX0lEXzM6aSg2MzkxLDMsXCJSZXVzaW5nX3Jlc29sdXRpb25fb2ZfdHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfZnJvbV8xX29mX29sZF9wcm9ncmFtX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfXzYzOTFcIixcIlJldXNpbmcgcmVzb2x1dGlvbiBvZiB0eXBlIHJlZmVyZW5jZSBkaXJlY3RpdmUgJ3swfScgZnJvbSAnezF9JyBvZiBvbGQgcHJvZ3JhbSwgaXQgd2FzIHN1Y2Nlc3NmdWxseSByZXNvbHZlZCB0byAnezJ9JyB3aXRoIFBhY2thZ2UgSUQgJ3szfScuXCIpLFJldXNpbmdfcmVzb2x1dGlvbl9vZl90eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF9mcm9tXzFfb2Zfb2xkX3Byb2dyYW1faXRfd2FzX25vdF9yZXNvbHZlZDppKDYzOTIsMyxcIlJldXNpbmdfcmVzb2x1dGlvbl9vZl90eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF9mcm9tXzFfb2Zfb2xkX3Byb2dyYW1faXRfd2FzX25vdF9yZXNvbHZlZF82MzkyXCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgdHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIGZyb20gJ3sxfScgb2Ygb2xkIHByb2dyYW0sIGl0IHdhcyBub3QgcmVzb2x2ZWQuXCIpLFJldXNpbmdfcmVzb2x1dGlvbl9vZl9tb2R1bGVfMF9mcm9tXzFfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8yX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fMzppKDYzOTMsMyxcIlJldXNpbmdfcmVzb2x1dGlvbl9vZl9tb2R1bGVfMF9mcm9tXzFfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8yX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fNjM5M1wiLFwiUmV1c2luZyByZXNvbHV0aW9uIG9mIG1vZHVsZSAnezB9JyBmcm9tICd7MX0nIGZvdW5kIGluIGNhY2hlIGZyb20gbG9jYXRpb24gJ3syfScsIGl0IHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3szfScuXCIpLFJldXNpbmdfcmVzb2x1dGlvbl9vZl9tb2R1bGVfMF9mcm9tXzFfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8yX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fM193aXRoX1BhY2thZ2VfSURfNDppKDYzOTQsMyxcIlJldXNpbmdfcmVzb2x1dGlvbl9vZl9tb2R1bGVfMF9mcm9tXzFfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8yX2l0X3dhc19zdWNjZXNzZnVsbHlfcmVzb2x2ZWRfdG9fNjM5NFwiLFwiUmV1c2luZyByZXNvbHV0aW9uIG9mIG1vZHVsZSAnezB9JyBmcm9tICd7MX0nIGZvdW5kIGluIGNhY2hlIGZyb20gbG9jYXRpb24gJ3syfScsIGl0IHdhcyBzdWNjZXNzZnVsbHkgcmVzb2x2ZWQgdG8gJ3szfScgd2l0aCBQYWNrYWdlIElEICd7NH0nLlwiKSxSZXVzaW5nX3Jlc29sdXRpb25fb2ZfbW9kdWxlXzBfZnJvbV8xX2ZvdW5kX2luX2NhY2hlX2Zyb21fbG9jYXRpb25fMl9pdF93YXNfbm90X3Jlc29sdmVkOmkoNjM5NSwzLFwiUmV1c2luZ19yZXNvbHV0aW9uX29mX21vZHVsZV8wX2Zyb21fMV9mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzJfaXRfd2FzX25vdF9yZXNvbHZlZF82Mzk1XCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgbW9kdWxlICd7MH0nIGZyb20gJ3sxfScgZm91bmQgaW4gY2FjaGUgZnJvbSBsb2NhdGlvbiAnezJ9JywgaXQgd2FzIG5vdCByZXNvbHZlZC5cIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzJfaXRfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18zOmkoNjM5NiwzLFwiUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzJfaXRfd2FzX3N1Y2Nlc182Mzk2XCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgdHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIGZyb20gJ3sxfScgZm91bmQgaW4gY2FjaGUgZnJvbSBsb2NhdGlvbiAnezJ9JywgaXQgd2FzIHN1Y2Nlc3NmdWxseSByZXNvbHZlZCB0byAnezN9Jy5cIiksUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzJfaXRfd2FzX3N1Y2Nlc3NmdWxseV9yZXNvbHZlZF90b18zX3dpdGhfUGFja2FnZV9JRF80OmkoNjM5NywzLFwiUmV1c2luZ19yZXNvbHV0aW9uX29mX3R5cGVfcmVmZXJlbmNlX2RpcmVjdGl2ZV8wX2Zyb21fMV9mb3VuZF9pbl9jYWNoZV9mcm9tX2xvY2F0aW9uXzJfaXRfd2FzX3N1Y2Nlc182Mzk3XCIsXCJSZXVzaW5nIHJlc29sdXRpb24gb2YgdHlwZSByZWZlcmVuY2UgZGlyZWN0aXZlICd7MH0nIGZyb20gJ3sxfScgZm91bmQgaW4gY2FjaGUgZnJvbSBsb2NhdGlvbiAnezJ9JywgaXQgd2FzIHN1Y2Nlc3NmdWxseSByZXNvbHZlZCB0byAnezN9JyB3aXRoIFBhY2thZ2UgSUQgJ3s0fScuXCIpLFJldXNpbmdfcmVzb2x1dGlvbl9vZl90eXBlX3JlZmVyZW5jZV9kaXJlY3RpdmVfMF9mcm9tXzFfZm91bmRfaW5fY2FjaGVfZnJvbV9sb2NhdGlvbl8yX2l0X3dhc19ub3RfcmVzb2x2ZWQ6aSg2Mzk4LDMsXCJSZXVzaW5nX3Jlc29sdXRpb25fb2ZfdHlwZV9yZWZlcmVuY2VfZGlyZWN0aXZlXzBfZnJvbV8xX2ZvdW5kX2luX2NhY2hlX2Zyb21fbG9jYXRpb25fMl9pdF93YXNfbm90X3JlXzYzOThcIixcIlJldXNpbmcgcmVzb2x1dGlvbiBvZiB0eXBlIHJlZmVyZW5jZSBkaXJlY3RpdmUgJ3swfScgZnJvbSAnezF9JyBmb3VuZCBpbiBjYWNoZSBmcm9tIGxvY2F0aW9uICd7Mn0nLCBpdCB3YXMgbm90IHJlc29sdmVkLlwiKSxQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9idWlsZGluZm9fZmlsZV8xX2luZGljYXRlc190aGF0X3NvbWVfb2ZfdGhlX2NoYW5nZXNfd2VyZV9ub3RfZW1pdHRlZDppKDYzOTksMyxcIlByb2plY3RfMF9pc19vdXRfb2ZfZGF0ZV9iZWNhdXNlX2J1aWxkaW5mb19maWxlXzFfaW5kaWNhdGVzX3RoYXRfc29tZV9vZl90aGVfY2hhbmdlc193ZXJlX25vdF9lbWl0dGVfNjM5OVwiLFwiUHJvamVjdCAnezB9JyBpcyBvdXQgb2YgZGF0ZSBiZWNhdXNlIGJ1aWxkaW5mbyBmaWxlICd7MX0nIGluZGljYXRlcyB0aGF0IHNvbWUgb2YgdGhlIGNoYW5nZXMgd2VyZSBub3QgZW1pdHRlZFwiKSxQcm9qZWN0XzBfaXNfdXBfdG9fZGF0ZV9idXRfbmVlZHNfdG9fdXBkYXRlX3RpbWVzdGFtcHNfb2Zfb3V0cHV0X2ZpbGVzX3RoYXRfYXJlX29sZGVyX3RoYW5faW5wdXRfZmlsZXM6aSg2NDAwLDMsXCJQcm9qZWN0XzBfaXNfdXBfdG9fZGF0ZV9idXRfbmVlZHNfdG9fdXBkYXRlX3RpbWVzdGFtcHNfb2Zfb3V0cHV0X2ZpbGVzX3RoYXRfYXJlX29sZGVyX3RoYW5faW5wdXRfZmlsXzY0MDBcIixcIlByb2plY3QgJ3swfScgaXMgdXAgdG8gZGF0ZSBidXQgbmVlZHMgdG8gdXBkYXRlIHRpbWVzdGFtcHMgb2Ygb3V0cHV0IGZpbGVzIHRoYXQgYXJlIG9sZGVyIHRoYW4gaW5wdXQgZmlsZXNcIiksUHJvamVjdF8wX2lzX291dF9vZl9kYXRlX2JlY2F1c2VfdGhlcmVfd2FzX2Vycm9yX3JlYWRpbmdfZmlsZV8xOmkoNjQwMSwzLFwiUHJvamVjdF8wX2lzX291dF9vZl9kYXRlX2JlY2F1c2VfdGhlcmVfd2FzX2Vycm9yX3JlYWRpbmdfZmlsZV8xXzY0MDFcIixcIlByb2plY3QgJ3swfScgaXMgb3V0IG9mIGRhdGUgYmVjYXVzZSB0aGVyZSB3YXMgZXJyb3IgcmVhZGluZyBmaWxlICd7MX0nXCIpLFJlc29sdmluZ19pbl8wX21vZGVfd2l0aF9jb25kaXRpb25zXzE6aSg2NDAyLDMsXCJSZXNvbHZpbmdfaW5fMF9tb2RlX3dpdGhfY29uZGl0aW9uc18xXzY0MDJcIixcIlJlc29sdmluZyBpbiB7MH0gbW9kZSB3aXRoIGNvbmRpdGlvbnMgezF9LlwiKSxNYXRjaGVkXzBfY29uZGl0aW9uXzE6aSg2NDAzLDMsXCJNYXRjaGVkXzBfY29uZGl0aW9uXzFfNjQwM1wiLFwiTWF0Y2hlZCAnezB9JyBjb25kaXRpb24gJ3sxfScuXCIpLFVzaW5nXzBfc3VicGF0aF8xX3dpdGhfdGFyZ2V0XzI6aSg2NDA0LDMsXCJVc2luZ18wX3N1YnBhdGhfMV93aXRoX3RhcmdldF8yXzY0MDRcIixcIlVzaW5nICd7MH0nIHN1YnBhdGggJ3sxfScgd2l0aCB0YXJnZXQgJ3syfScuXCIpLFNhd19ub25fbWF0Y2hpbmdfY29uZGl0aW9uXzA6aSg2NDA1LDMsXCJTYXdfbm9uX21hdGNoaW5nX2NvbmRpdGlvbl8wXzY0MDVcIixcIlNhdyBub24tbWF0Y2hpbmcgY29uZGl0aW9uICd7MH0nLlwiKSxQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9idWlsZGluZm9fZmlsZV8xX2luZGljYXRlc190aGVyZV9pc19jaGFuZ2VfaW5fY29tcGlsZXJPcHRpb25zOmkoNjQwNiwzLFwiUHJvamVjdF8wX2lzX291dF9vZl9kYXRlX2JlY2F1c2VfYnVpbGRpbmZvX2ZpbGVfMV9pbmRpY2F0ZXNfdGhlcmVfaXNfY2hhbmdlX2luX2NvbXBpbGVyT3B0aW9uc182NDA2XCIsXCJQcm9qZWN0ICd7MH0nIGlzIG91dCBvZiBkYXRlIGJlY2F1c2UgYnVpbGRpbmZvIGZpbGUgJ3sxfScgaW5kaWNhdGVzIHRoZXJlIGlzIGNoYW5nZSBpbiBjb21waWxlck9wdGlvbnNcIiksQWxsb3dfaW1wb3J0c190b19pbmNsdWRlX1R5cGVTY3JpcHRfZmlsZV9leHRlbnNpb25zX1JlcXVpcmVzX21vZHVsZVJlc29sdXRpb25fYnVuZGxlcl9hbmRfZWl0aGVyX25vRW1pdF9vcl9lbWl0RGVjbGFyYXRpb25Pbmx5X3RvX2JlX3NldDppKDY0MDcsMyxcIkFsbG93X2ltcG9ydHNfdG9faW5jbHVkZV9UeXBlU2NyaXB0X2ZpbGVfZXh0ZW5zaW9uc19SZXF1aXJlc19tb2R1bGVSZXNvbHV0aW9uX2J1bmRsZXJfYW5kX2VpdGhlcl9ub0VfNjQwN1wiLFwiQWxsb3cgaW1wb3J0cyB0byBpbmNsdWRlIFR5cGVTY3JpcHQgZmlsZSBleHRlbnNpb25zLiBSZXF1aXJlcyAnLS1tb2R1bGVSZXNvbHV0aW9uIGJ1bmRsZXInIGFuZCBlaXRoZXIgJy0tbm9FbWl0JyBvciAnLS1lbWl0RGVjbGFyYXRpb25Pbmx5JyB0byBiZSBzZXQuXCIpLFVzZV90aGVfcGFja2FnZV9qc29uX2V4cG9ydHNfZmllbGRfd2hlbl9yZXNvbHZpbmdfcGFja2FnZV9pbXBvcnRzOmkoNjQwOCwzLFwiVXNlX3RoZV9wYWNrYWdlX2pzb25fZXhwb3J0c19maWVsZF93aGVuX3Jlc29sdmluZ19wYWNrYWdlX2ltcG9ydHNfNjQwOFwiLFwiVXNlIHRoZSBwYWNrYWdlLmpzb24gJ2V4cG9ydHMnIGZpZWxkIHdoZW4gcmVzb2x2aW5nIHBhY2thZ2UgaW1wb3J0cy5cIiksVXNlX3RoZV9wYWNrYWdlX2pzb25faW1wb3J0c19maWVsZF93aGVuX3Jlc29sdmluZ19pbXBvcnRzOmkoNjQwOSwzLFwiVXNlX3RoZV9wYWNrYWdlX2pzb25faW1wb3J0c19maWVsZF93aGVuX3Jlc29sdmluZ19pbXBvcnRzXzY0MDlcIixcIlVzZSB0aGUgcGFja2FnZS5qc29uICdpbXBvcnRzJyBmaWVsZCB3aGVuIHJlc29sdmluZyBpbXBvcnRzLlwiKSxDb25kaXRpb25zX3RvX3NldF9pbl9hZGRpdGlvbl90b190aGVfcmVzb2x2ZXJfc3BlY2lmaWNfZGVmYXVsdHNfd2hlbl9yZXNvbHZpbmdfaW1wb3J0czppKDY0MTAsMyxcIkNvbmRpdGlvbnNfdG9fc2V0X2luX2FkZGl0aW9uX3RvX3RoZV9yZXNvbHZlcl9zcGVjaWZpY19kZWZhdWx0c193aGVuX3Jlc29sdmluZ19pbXBvcnRzXzY0MTBcIixcIkNvbmRpdGlvbnMgdG8gc2V0IGluIGFkZGl0aW9uIHRvIHRoZSByZXNvbHZlci1zcGVjaWZpYyBkZWZhdWx0cyB3aGVuIHJlc29sdmluZyBpbXBvcnRzLlwiKSx0cnVlX3doZW5fbW9kdWxlUmVzb2x1dGlvbl9pc19ub2RlMTZfbm9kZW5leHRfb3JfYnVuZGxlcl9vdGhlcndpc2VfZmFsc2U6aSg2NDExLDMsXCJ0cnVlX3doZW5fbW9kdWxlUmVzb2x1dGlvbl9pc19ub2RlMTZfbm9kZW5leHRfb3JfYnVuZGxlcl9vdGhlcndpc2VfZmFsc2VfNjQxMVwiLFwiYHRydWVgIHdoZW4gJ21vZHVsZVJlc29sdXRpb24nIGlzICdub2RlMTYnLCAnbm9kZW5leHQnLCBvciAnYnVuZGxlcic7IG90aGVyd2lzZSBgZmFsc2VgLlwiKSxQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9idWlsZGluZm9fZmlsZV8xX2luZGljYXRlc190aGF0X2ZpbGVfMl93YXNfcm9vdF9maWxlX29mX2NvbXBpbGF0aW9uX2J1dF9ub3RfYW55X21vcmU6aSg2NDEyLDMsXCJQcm9qZWN0XzBfaXNfb3V0X29mX2RhdGVfYmVjYXVzZV9idWlsZGluZm9fZmlsZV8xX2luZGljYXRlc190aGF0X2ZpbGVfMl93YXNfcm9vdF9maWxlX29mX2NvbXBpbGF0aW9uXzY0MTJcIixcIlByb2plY3QgJ3swfScgaXMgb3V0IG9mIGRhdGUgYmVjYXVzZSBidWlsZGluZm8gZmlsZSAnezF9JyBpbmRpY2F0ZXMgdGhhdCBmaWxlICd7Mn0nIHdhcyByb290IGZpbGUgb2YgY29tcGlsYXRpb24gYnV0IG5vdCBhbnkgbW9yZS5cIiksRW50ZXJpbmdfY29uZGl0aW9uYWxfZXhwb3J0czppKDY0MTMsMyxcIkVudGVyaW5nX2NvbmRpdGlvbmFsX2V4cG9ydHNfNjQxM1wiLFwiRW50ZXJpbmcgY29uZGl0aW9uYWwgZXhwb3J0cy5cIiksUmVzb2x2ZWRfdW5kZXJfY29uZGl0aW9uXzA6aSg2NDE0LDMsXCJSZXNvbHZlZF91bmRlcl9jb25kaXRpb25fMF82NDE0XCIsXCJSZXNvbHZlZCB1bmRlciBjb25kaXRpb24gJ3swfScuXCIpLEZhaWxlZF90b19yZXNvbHZlX3VuZGVyX2NvbmRpdGlvbl8wOmkoNjQxNSwzLFwiRmFpbGVkX3RvX3Jlc29sdmVfdW5kZXJfY29uZGl0aW9uXzBfNjQxNVwiLFwiRmFpbGVkIHRvIHJlc29sdmUgdW5kZXIgY29uZGl0aW9uICd7MH0nLlwiKSxFeGl0aW5nX2NvbmRpdGlvbmFsX2V4cG9ydHM6aSg2NDE2LDMsXCJFeGl0aW5nX2NvbmRpdGlvbmFsX2V4cG9ydHNfNjQxNlwiLFwiRXhpdGluZyBjb25kaXRpb25hbCBleHBvcnRzLlwiKSxTZWFyY2hpbmdfYWxsX2FuY2VzdG9yX25vZGVfbW9kdWxlc19kaXJlY3Rvcmllc19mb3JfcHJlZmVycmVkX2V4dGVuc2lvbnNfQ29sb25fMDppKDY0MTcsMyxcIlNlYXJjaGluZ19hbGxfYW5jZXN0b3Jfbm9kZV9tb2R1bGVzX2RpcmVjdG9yaWVzX2Zvcl9wcmVmZXJyZWRfZXh0ZW5zaW9uc19Db2xvbl8wXzY0MTdcIixcIlNlYXJjaGluZyBhbGwgYW5jZXN0b3Igbm9kZV9tb2R1bGVzIGRpcmVjdG9yaWVzIGZvciBwcmVmZXJyZWQgZXh0ZW5zaW9uczogezB9LlwiKSxTZWFyY2hpbmdfYWxsX2FuY2VzdG9yX25vZGVfbW9kdWxlc19kaXJlY3Rvcmllc19mb3JfZmFsbGJhY2tfZXh0ZW5zaW9uc19Db2xvbl8wOmkoNjQxOCwzLFwiU2VhcmNoaW5nX2FsbF9hbmNlc3Rvcl9ub2RlX21vZHVsZXNfZGlyZWN0b3JpZXNfZm9yX2ZhbGxiYWNrX2V4dGVuc2lvbnNfQ29sb25fMF82NDE4XCIsXCJTZWFyY2hpbmcgYWxsIGFuY2VzdG9yIG5vZGVfbW9kdWxlcyBkaXJlY3RvcmllcyBmb3IgZmFsbGJhY2sgZXh0ZW5zaW9uczogezB9LlwiKSxUaGVfZXhwZWN0ZWRfdHlwZV9jb21lc19mcm9tX3Byb3BlcnR5XzBfd2hpY2hfaXNfZGVjbGFyZWRfaGVyZV9vbl90eXBlXzE6aSg2NTAwLDMsXCJUaGVfZXhwZWN0ZWRfdHlwZV9jb21lc19mcm9tX3Byb3BlcnR5XzBfd2hpY2hfaXNfZGVjbGFyZWRfaGVyZV9vbl90eXBlXzFfNjUwMFwiLFwiVGhlIGV4cGVjdGVkIHR5cGUgY29tZXMgZnJvbSBwcm9wZXJ0eSAnezB9JyB3aGljaCBpcyBkZWNsYXJlZCBoZXJlIG9uIHR5cGUgJ3sxfSdcIiksVGhlX2V4cGVjdGVkX3R5cGVfY29tZXNfZnJvbV90aGlzX2luZGV4X3NpZ25hdHVyZTppKDY1MDEsMyxcIlRoZV9leHBlY3RlZF90eXBlX2NvbWVzX2Zyb21fdGhpc19pbmRleF9zaWduYXR1cmVfNjUwMVwiLFwiVGhlIGV4cGVjdGVkIHR5cGUgY29tZXMgZnJvbSB0aGlzIGluZGV4IHNpZ25hdHVyZS5cIiksVGhlX2V4cGVjdGVkX3R5cGVfY29tZXNfZnJvbV90aGVfcmV0dXJuX3R5cGVfb2ZfdGhpc19zaWduYXR1cmU6aSg2NTAyLDMsXCJUaGVfZXhwZWN0ZWRfdHlwZV9jb21lc19mcm9tX3RoZV9yZXR1cm5fdHlwZV9vZl90aGlzX3NpZ25hdHVyZV82NTAyXCIsXCJUaGUgZXhwZWN0ZWQgdHlwZSBjb21lcyBmcm9tIHRoZSByZXR1cm4gdHlwZSBvZiB0aGlzIHNpZ25hdHVyZS5cIiksUHJpbnRfbmFtZXNfb2ZfZmlsZXNfdGhhdF9hcmVfcGFydF9vZl90aGVfY29tcGlsYXRpb25fYW5kX3RoZW5fc3RvcF9wcm9jZXNzaW5nOmkoNjUwMywzLFwiUHJpbnRfbmFtZXNfb2ZfZmlsZXNfdGhhdF9hcmVfcGFydF9vZl90aGVfY29tcGlsYXRpb25fYW5kX3RoZW5fc3RvcF9wcm9jZXNzaW5nXzY1MDNcIixcIlByaW50IG5hbWVzIG9mIGZpbGVzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGNvbXBpbGF0aW9uIGFuZCB0aGVuIHN0b3AgcHJvY2Vzc2luZy5cIiksRmlsZV8wX2lzX2FfSmF2YVNjcmlwdF9maWxlX0RpZF95b3VfbWVhbl90b19lbmFibGVfdGhlX2FsbG93SnNfb3B0aW9uOmkoNjUwNCwxLFwiRmlsZV8wX2lzX2FfSmF2YVNjcmlwdF9maWxlX0RpZF95b3VfbWVhbl90b19lbmFibGVfdGhlX2FsbG93SnNfb3B0aW9uXzY1MDRcIixcIkZpbGUgJ3swfScgaXMgYSBKYXZhU2NyaXB0IGZpbGUuIERpZCB5b3UgbWVhbiB0byBlbmFibGUgdGhlICdhbGxvd0pzJyBvcHRpb24/XCIpLFByaW50X25hbWVzX29mX2ZpbGVzX2FuZF90aGVfcmVhc29uX3RoZXlfYXJlX3BhcnRfb2ZfdGhlX2NvbXBpbGF0aW9uOmkoNjUwNSwzLFwiUHJpbnRfbmFtZXNfb2ZfZmlsZXNfYW5kX3RoZV9yZWFzb25fdGhleV9hcmVfcGFydF9vZl90aGVfY29tcGlsYXRpb25fNjUwNVwiLFwiUHJpbnQgbmFtZXMgb2YgZmlsZXMgYW5kIHRoZSByZWFzb24gdGhleSBhcmUgcGFydCBvZiB0aGUgY29tcGlsYXRpb24uXCIpLENvbnNpZGVyX2FkZGluZ19hX2RlY2xhcmVfbW9kaWZpZXJfdG9fdGhpc19jbGFzczppKDY1MDYsMyxcIkNvbnNpZGVyX2FkZGluZ19hX2RlY2xhcmVfbW9kaWZpZXJfdG9fdGhpc19jbGFzc182NTA2XCIsXCJDb25zaWRlciBhZGRpbmcgYSAnZGVjbGFyZScgbW9kaWZpZXIgdG8gdGhpcyBjbGFzcy5cIiksQWxsb3dfSmF2YVNjcmlwdF9maWxlc190b19iZV9hX3BhcnRfb2ZfeW91cl9wcm9ncmFtX1VzZV90aGVfY2hlY2tKU19vcHRpb25fdG9fZ2V0X2Vycm9yc19mcm9tX3RoZXNlX2ZpbGVzOmkoNjYwMCwzLFwiQWxsb3dfSmF2YVNjcmlwdF9maWxlc190b19iZV9hX3BhcnRfb2ZfeW91cl9wcm9ncmFtX1VzZV90aGVfY2hlY2tKU19vcHRpb25fdG9fZ2V0X2Vycm9yc19mcm9tX3RoZXNlX182NjAwXCIsXCJBbGxvdyBKYXZhU2NyaXB0IGZpbGVzIHRvIGJlIGEgcGFydCBvZiB5b3VyIHByb2dyYW0uIFVzZSB0aGUgJ2NoZWNrSlMnIG9wdGlvbiB0byBnZXQgZXJyb3JzIGZyb20gdGhlc2UgZmlsZXMuXCIpLEFsbG93X2ltcG9ydF94X2Zyb21feV93aGVuX2FfbW9kdWxlX2RvZXNuX3RfaGF2ZV9hX2RlZmF1bHRfZXhwb3J0OmkoNjYwMSwzLFwiQWxsb3dfaW1wb3J0X3hfZnJvbV95X3doZW5fYV9tb2R1bGVfZG9lc25fdF9oYXZlX2FfZGVmYXVsdF9leHBvcnRfNjYwMVwiLFwiQWxsb3cgJ2ltcG9ydCB4IGZyb20geScgd2hlbiBhIG1vZHVsZSBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IGV4cG9ydC5cIiksQWxsb3dfYWNjZXNzaW5nX1VNRF9nbG9iYWxzX2Zyb21fbW9kdWxlczppKDY2MDIsMyxcIkFsbG93X2FjY2Vzc2luZ19VTURfZ2xvYmFsc19mcm9tX21vZHVsZXNfNjYwMlwiLFwiQWxsb3cgYWNjZXNzaW5nIFVNRCBnbG9iYWxzIGZyb20gbW9kdWxlcy5cIiksRGlzYWJsZV9lcnJvcl9yZXBvcnRpbmdfZm9yX3VucmVhY2hhYmxlX2NvZGU6aSg2NjAzLDMsXCJEaXNhYmxlX2Vycm9yX3JlcG9ydGluZ19mb3JfdW5yZWFjaGFibGVfY29kZV82NjAzXCIsXCJEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBmb3IgdW5yZWFjaGFibGUgY29kZS5cIiksRGlzYWJsZV9lcnJvcl9yZXBvcnRpbmdfZm9yX3VudXNlZF9sYWJlbHM6aSg2NjA0LDMsXCJEaXNhYmxlX2Vycm9yX3JlcG9ydGluZ19mb3JfdW51c2VkX2xhYmVsc182NjA0XCIsXCJEaXNhYmxlIGVycm9yIHJlcG9ydGluZyBmb3IgdW51c2VkIGxhYmVscy5cIiksRW5zdXJlX3VzZV9zdHJpY3RfaXNfYWx3YXlzX2VtaXR0ZWQ6aSg2NjA1LDMsXCJFbnN1cmVfdXNlX3N0cmljdF9pc19hbHdheXNfZW1pdHRlZF82NjA1XCIsXCJFbnN1cmUgJ3VzZSBzdHJpY3QnIGlzIGFsd2F5cyBlbWl0dGVkLlwiKSxIYXZlX3JlY29tcGlsZXNfaW5fcHJvamVjdHNfdGhhdF91c2VfaW5jcmVtZW50YWxfYW5kX3dhdGNoX21vZGVfYXNzdW1lX3RoYXRfY2hhbmdlc193aXRoaW5fYV9maWxlX3dpbGxfb25seV9hZmZlY3RfZmlsZXNfZGlyZWN0bHlfZGVwZW5kaW5nX29uX2l0OmkoNjYwNiwzLFwiSGF2ZV9yZWNvbXBpbGVzX2luX3Byb2plY3RzX3RoYXRfdXNlX2luY3JlbWVudGFsX2FuZF93YXRjaF9tb2RlX2Fzc3VtZV90aGF0X2NoYW5nZXNfd2l0aGluX2FfZmlsZV93aV82NjA2XCIsXCJIYXZlIHJlY29tcGlsZXMgaW4gcHJvamVjdHMgdGhhdCB1c2UgJ2luY3JlbWVudGFsJyBhbmQgJ3dhdGNoJyBtb2RlIGFzc3VtZSB0aGF0IGNoYW5nZXMgd2l0aGluIGEgZmlsZSB3aWxsIG9ubHkgYWZmZWN0IGZpbGVzIGRpcmVjdGx5IGRlcGVuZGluZyBvbiBpdC5cIiksU3BlY2lmeV90aGVfYmFzZV9kaXJlY3RvcnlfdG9fcmVzb2x2ZV9ub25fcmVsYXRpdmVfbW9kdWxlX25hbWVzOmkoNjYwNywzLFwiU3BlY2lmeV90aGVfYmFzZV9kaXJlY3RvcnlfdG9fcmVzb2x2ZV9ub25fcmVsYXRpdmVfbW9kdWxlX25hbWVzXzY2MDdcIixcIlNwZWNpZnkgdGhlIGJhc2UgZGlyZWN0b3J5IHRvIHJlc29sdmUgbm9uLXJlbGF0aXZlIG1vZHVsZSBuYW1lcy5cIiksTm9fbG9uZ2VyX3N1cHBvcnRlZF9Jbl9lYXJseV92ZXJzaW9uc19tYW51YWxseV9zZXRfdGhlX3RleHRfZW5jb2RpbmdfZm9yX3JlYWRpbmdfZmlsZXM6aSg2NjA4LDMsXCJOb19sb25nZXJfc3VwcG9ydGVkX0luX2Vhcmx5X3ZlcnNpb25zX21hbnVhbGx5X3NldF90aGVfdGV4dF9lbmNvZGluZ19mb3JfcmVhZGluZ19maWxlc182NjA4XCIsXCJObyBsb25nZXIgc3VwcG9ydGVkLiBJbiBlYXJseSB2ZXJzaW9ucywgbWFudWFsbHkgc2V0IHRoZSB0ZXh0IGVuY29kaW5nIGZvciByZWFkaW5nIGZpbGVzLlwiKSxFbmFibGVfZXJyb3JfcmVwb3J0aW5nX2luX3R5cGVfY2hlY2tlZF9KYXZhU2NyaXB0X2ZpbGVzOmkoNjYwOSwzLFwiRW5hYmxlX2Vycm9yX3JlcG9ydGluZ19pbl90eXBlX2NoZWNrZWRfSmF2YVNjcmlwdF9maWxlc182NjA5XCIsXCJFbmFibGUgZXJyb3IgcmVwb3J0aW5nIGluIHR5cGUtY2hlY2tlZCBKYXZhU2NyaXB0IGZpbGVzLlwiKSxFbmFibGVfY29uc3RyYWludHNfdGhhdF9hbGxvd19hX1R5cGVTY3JpcHRfcHJvamVjdF90b19iZV91c2VkX3dpdGhfcHJvamVjdF9yZWZlcmVuY2VzOmkoNjYxMSwzLFwiRW5hYmxlX2NvbnN0cmFpbnRzX3RoYXRfYWxsb3dfYV9UeXBlU2NyaXB0X3Byb2plY3RfdG9fYmVfdXNlZF93aXRoX3Byb2plY3RfcmVmZXJlbmNlc182NjExXCIsXCJFbmFibGUgY29uc3RyYWludHMgdGhhdCBhbGxvdyBhIFR5cGVTY3JpcHQgcHJvamVjdCB0byBiZSB1c2VkIHdpdGggcHJvamVjdCByZWZlcmVuY2VzLlwiKSxHZW5lcmF0ZV9kX3RzX2ZpbGVzX2Zyb21fVHlwZVNjcmlwdF9hbmRfSmF2YVNjcmlwdF9maWxlc19pbl95b3VyX3Byb2plY3Q6aSg2NjEyLDMsXCJHZW5lcmF0ZV9kX3RzX2ZpbGVzX2Zyb21fVHlwZVNjcmlwdF9hbmRfSmF2YVNjcmlwdF9maWxlc19pbl95b3VyX3Byb2plY3RfNjYxMlwiLFwiR2VuZXJhdGUgLmQudHMgZmlsZXMgZnJvbSBUeXBlU2NyaXB0IGFuZCBKYXZhU2NyaXB0IGZpbGVzIGluIHlvdXIgcHJvamVjdC5cIiksU3BlY2lmeV90aGVfb3V0cHV0X2RpcmVjdG9yeV9mb3JfZ2VuZXJhdGVkX2RlY2xhcmF0aW9uX2ZpbGVzOmkoNjYxMywzLFwiU3BlY2lmeV90aGVfb3V0cHV0X2RpcmVjdG9yeV9mb3JfZ2VuZXJhdGVkX2RlY2xhcmF0aW9uX2ZpbGVzXzY2MTNcIixcIlNwZWNpZnkgdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIGdlbmVyYXRlZCBkZWNsYXJhdGlvbiBmaWxlcy5cIiksQ3JlYXRlX3NvdXJjZW1hcHNfZm9yX2RfdHNfZmlsZXM6aSg2NjE0LDMsXCJDcmVhdGVfc291cmNlbWFwc19mb3JfZF90c19maWxlc182NjE0XCIsXCJDcmVhdGUgc291cmNlbWFwcyBmb3IgZC50cyBmaWxlcy5cIiksT3V0cHV0X2NvbXBpbGVyX3BlcmZvcm1hbmNlX2luZm9ybWF0aW9uX2FmdGVyX2J1aWxkaW5nOmkoNjYxNSwzLFwiT3V0cHV0X2NvbXBpbGVyX3BlcmZvcm1hbmNlX2luZm9ybWF0aW9uX2FmdGVyX2J1aWxkaW5nXzY2MTVcIixcIk91dHB1dCBjb21waWxlciBwZXJmb3JtYW5jZSBpbmZvcm1hdGlvbiBhZnRlciBidWlsZGluZy5cIiksRGlzYWJsZXNfaW5mZXJlbmNlX2Zvcl90eXBlX2FjcXVpc2l0aW9uX2J5X2xvb2tpbmdfYXRfZmlsZW5hbWVzX2luX2FfcHJvamVjdDppKDY2MTYsMyxcIkRpc2FibGVzX2luZmVyZW5jZV9mb3JfdHlwZV9hY3F1aXNpdGlvbl9ieV9sb29raW5nX2F0X2ZpbGVuYW1lc19pbl9hX3Byb2plY3RfNjYxNlwiLFwiRGlzYWJsZXMgaW5mZXJlbmNlIGZvciB0eXBlIGFjcXVpc2l0aW9uIGJ5IGxvb2tpbmcgYXQgZmlsZW5hbWVzIGluIGEgcHJvamVjdC5cIiksUmVkdWNlX3RoZV9udW1iZXJfb2ZfcHJvamVjdHNfbG9hZGVkX2F1dG9tYXRpY2FsbHlfYnlfVHlwZVNjcmlwdDppKDY2MTcsMyxcIlJlZHVjZV90aGVfbnVtYmVyX29mX3Byb2plY3RzX2xvYWRlZF9hdXRvbWF0aWNhbGx5X2J5X1R5cGVTY3JpcHRfNjYxN1wiLFwiUmVkdWNlIHRoZSBudW1iZXIgb2YgcHJvamVjdHMgbG9hZGVkIGF1dG9tYXRpY2FsbHkgYnkgVHlwZVNjcmlwdC5cIiksUmVtb3ZlX3RoZV8yMG1iX2NhcF9vbl90b3RhbF9zb3VyY2VfY29kZV9zaXplX2Zvcl9KYXZhU2NyaXB0X2ZpbGVzX2luX3RoZV9UeXBlU2NyaXB0X2xhbmd1YWdlX3NlcnZlcjppKDY2MTgsMyxcIlJlbW92ZV90aGVfMjBtYl9jYXBfb25fdG90YWxfc291cmNlX2NvZGVfc2l6ZV9mb3JfSmF2YVNjcmlwdF9maWxlc19pbl90aGVfVHlwZVNjcmlwdF9sYW5ndWFnZV9zZXJ2ZXJfNjYxOFwiLFwiUmVtb3ZlIHRoZSAyMG1iIGNhcCBvbiB0b3RhbCBzb3VyY2UgY29kZSBzaXplIGZvciBKYXZhU2NyaXB0IGZpbGVzIGluIHRoZSBUeXBlU2NyaXB0IGxhbmd1YWdlIHNlcnZlci5cIiksT3B0X2FfcHJvamVjdF9vdXRfb2ZfbXVsdGlfcHJvamVjdF9yZWZlcmVuY2VfY2hlY2tpbmdfd2hlbl9lZGl0aW5nOmkoNjYxOSwzLFwiT3B0X2FfcHJvamVjdF9vdXRfb2ZfbXVsdGlfcHJvamVjdF9yZWZlcmVuY2VfY2hlY2tpbmdfd2hlbl9lZGl0aW5nXzY2MTlcIixcIk9wdCBhIHByb2plY3Qgb3V0IG9mIG11bHRpLXByb2plY3QgcmVmZXJlbmNlIGNoZWNraW5nIHdoZW4gZWRpdGluZy5cIiksRGlzYWJsZV9wcmVmZXJyaW5nX3NvdXJjZV9maWxlc19pbnN0ZWFkX29mX2RlY2xhcmF0aW9uX2ZpbGVzX3doZW5fcmVmZXJlbmNpbmdfY29tcG9zaXRlX3Byb2plY3RzOmkoNjYyMCwzLFwiRGlzYWJsZV9wcmVmZXJyaW5nX3NvdXJjZV9maWxlc19pbnN0ZWFkX29mX2RlY2xhcmF0aW9uX2ZpbGVzX3doZW5fcmVmZXJlbmNpbmdfY29tcG9zaXRlX3Byb2plY3RzXzY2MjBcIixcIkRpc2FibGUgcHJlZmVycmluZyBzb3VyY2UgZmlsZXMgaW5zdGVhZCBvZiBkZWNsYXJhdGlvbiBmaWxlcyB3aGVuIHJlZmVyZW5jaW5nIGNvbXBvc2l0ZSBwcm9qZWN0cy5cIiksRW1pdF9tb3JlX2NvbXBsaWFudF9idXRfdmVyYm9zZV9hbmRfbGVzc19wZXJmb3JtYW50X0phdmFTY3JpcHRfZm9yX2l0ZXJhdGlvbjppKDY2MjEsMyxcIkVtaXRfbW9yZV9jb21wbGlhbnRfYnV0X3ZlcmJvc2VfYW5kX2xlc3NfcGVyZm9ybWFudF9KYXZhU2NyaXB0X2Zvcl9pdGVyYXRpb25fNjYyMVwiLFwiRW1pdCBtb3JlIGNvbXBsaWFudCwgYnV0IHZlcmJvc2UgYW5kIGxlc3MgcGVyZm9ybWFudCBKYXZhU2NyaXB0IGZvciBpdGVyYXRpb24uXCIpLEVtaXRfYV9VVEZfOF9CeXRlX09yZGVyX01hcmtfQk9NX2luX3RoZV9iZWdpbm5pbmdfb2Zfb3V0cHV0X2ZpbGVzOmkoNjYyMiwzLFwiRW1pdF9hX1VURl84X0J5dGVfT3JkZXJfTWFya19CT01faW5fdGhlX2JlZ2lubmluZ19vZl9vdXRwdXRfZmlsZXNfNjYyMlwiLFwiRW1pdCBhIFVURi04IEJ5dGUgT3JkZXIgTWFyayAoQk9NKSBpbiB0aGUgYmVnaW5uaW5nIG9mIG91dHB1dCBmaWxlcy5cIiksT25seV9vdXRwdXRfZF90c19maWxlc19hbmRfbm90X0phdmFTY3JpcHRfZmlsZXM6aSg2NjIzLDMsXCJPbmx5X291dHB1dF9kX3RzX2ZpbGVzX2FuZF9ub3RfSmF2YVNjcmlwdF9maWxlc182NjIzXCIsXCJPbmx5IG91dHB1dCBkLnRzIGZpbGVzIGFuZCBub3QgSmF2YVNjcmlwdCBmaWxlcy5cIiksRW1pdF9kZXNpZ25fdHlwZV9tZXRhZGF0YV9mb3JfZGVjb3JhdGVkX2RlY2xhcmF0aW9uc19pbl9zb3VyY2VfZmlsZXM6aSg2NjI0LDMsXCJFbWl0X2Rlc2lnbl90eXBlX21ldGFkYXRhX2Zvcl9kZWNvcmF0ZWRfZGVjbGFyYXRpb25zX2luX3NvdXJjZV9maWxlc182NjI0XCIsXCJFbWl0IGRlc2lnbi10eXBlIG1ldGFkYXRhIGZvciBkZWNvcmF0ZWQgZGVjbGFyYXRpb25zIGluIHNvdXJjZSBmaWxlcy5cIiksRGlzYWJsZV90aGVfdHlwZV9hY3F1aXNpdGlvbl9mb3JfSmF2YVNjcmlwdF9wcm9qZWN0czppKDY2MjUsMyxcIkRpc2FibGVfdGhlX3R5cGVfYWNxdWlzaXRpb25fZm9yX0phdmFTY3JpcHRfcHJvamVjdHNfNjYyNVwiLFwiRGlzYWJsZSB0aGUgdHlwZSBhY3F1aXNpdGlvbiBmb3IgSmF2YVNjcmlwdCBwcm9qZWN0c1wiKSxFbWl0X2FkZGl0aW9uYWxfSmF2YVNjcmlwdF90b19lYXNlX3N1cHBvcnRfZm9yX2ltcG9ydGluZ19Db21tb25KU19tb2R1bGVzX1RoaXNfZW5hYmxlc19hbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzX2Zvcl90eXBlX2NvbXBhdGliaWxpdHk6aSg2NjI2LDMsXCJFbWl0X2FkZGl0aW9uYWxfSmF2YVNjcmlwdF90b19lYXNlX3N1cHBvcnRfZm9yX2ltcG9ydGluZ19Db21tb25KU19tb2R1bGVzX1RoaXNfZW5hYmxlc19hbGxvd1N5bnRoZXRpXzY2MjZcIixcIkVtaXQgYWRkaXRpb25hbCBKYXZhU2NyaXB0IHRvIGVhc2Ugc3VwcG9ydCBmb3IgaW1wb3J0aW5nIENvbW1vbkpTIG1vZHVsZXMuIFRoaXMgZW5hYmxlcyAnYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cycgZm9yIHR5cGUgY29tcGF0aWJpbGl0eS5cIiksRmlsdGVyc19yZXN1bHRzX2Zyb21fdGhlX2luY2x1ZGVfb3B0aW9uOmkoNjYyNywzLFwiRmlsdGVyc19yZXN1bHRzX2Zyb21fdGhlX2luY2x1ZGVfb3B0aW9uXzY2MjdcIixcIkZpbHRlcnMgcmVzdWx0cyBmcm9tIHRoZSBgaW5jbHVkZWAgb3B0aW9uLlwiKSxSZW1vdmVfYV9saXN0X29mX2RpcmVjdG9yaWVzX2Zyb21fdGhlX3dhdGNoX3Byb2Nlc3M6aSg2NjI4LDMsXCJSZW1vdmVfYV9saXN0X29mX2RpcmVjdG9yaWVzX2Zyb21fdGhlX3dhdGNoX3Byb2Nlc3NfNjYyOFwiLFwiUmVtb3ZlIGEgbGlzdCBvZiBkaXJlY3RvcmllcyBmcm9tIHRoZSB3YXRjaCBwcm9jZXNzLlwiKSxSZW1vdmVfYV9saXN0X29mX2ZpbGVzX2Zyb21fdGhlX3dhdGNoX21vZGVfc19wcm9jZXNzaW5nOmkoNjYyOSwzLFwiUmVtb3ZlX2FfbGlzdF9vZl9maWxlc19mcm9tX3RoZV93YXRjaF9tb2RlX3NfcHJvY2Vzc2luZ182NjI5XCIsXCJSZW1vdmUgYSBsaXN0IG9mIGZpbGVzIGZyb20gdGhlIHdhdGNoIG1vZGUncyBwcm9jZXNzaW5nLlwiKSxFbmFibGVfZXhwZXJpbWVudGFsX3N1cHBvcnRfZm9yX2xlZ2FjeV9leHBlcmltZW50YWxfZGVjb3JhdG9yczppKDY2MzAsMyxcIkVuYWJsZV9leHBlcmltZW50YWxfc3VwcG9ydF9mb3JfbGVnYWN5X2V4cGVyaW1lbnRhbF9kZWNvcmF0b3JzXzY2MzBcIixcIkVuYWJsZSBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgbGVnYWN5IGV4cGVyaW1lbnRhbCBkZWNvcmF0b3JzLlwiKSxQcmludF9maWxlc19yZWFkX2R1cmluZ190aGVfY29tcGlsYXRpb25faW5jbHVkaW5nX3doeV9pdF93YXNfaW5jbHVkZWQ6aSg2NjMxLDMsXCJQcmludF9maWxlc19yZWFkX2R1cmluZ190aGVfY29tcGlsYXRpb25faW5jbHVkaW5nX3doeV9pdF93YXNfaW5jbHVkZWRfNjYzMVwiLFwiUHJpbnQgZmlsZXMgcmVhZCBkdXJpbmcgdGhlIGNvbXBpbGF0aW9uIGluY2x1ZGluZyB3aHkgaXQgd2FzIGluY2x1ZGVkLlwiKSxPdXRwdXRfbW9yZV9kZXRhaWxlZF9jb21waWxlcl9wZXJmb3JtYW5jZV9pbmZvcm1hdGlvbl9hZnRlcl9idWlsZGluZzppKDY2MzIsMyxcIk91dHB1dF9tb3JlX2RldGFpbGVkX2NvbXBpbGVyX3BlcmZvcm1hbmNlX2luZm9ybWF0aW9uX2FmdGVyX2J1aWxkaW5nXzY2MzJcIixcIk91dHB1dCBtb3JlIGRldGFpbGVkIGNvbXBpbGVyIHBlcmZvcm1hbmNlIGluZm9ybWF0aW9uIGFmdGVyIGJ1aWxkaW5nLlwiKSxTcGVjaWZ5X29uZV9vcl9tb3JlX3BhdGhfb3Jfbm9kZV9tb2R1bGVfcmVmZXJlbmNlc190b19iYXNlX2NvbmZpZ3VyYXRpb25fZmlsZXNfZnJvbV93aGljaF9zZXR0aW5nc19hcmVfaW5oZXJpdGVkOmkoNjYzMywzLFwiU3BlY2lmeV9vbmVfb3JfbW9yZV9wYXRoX29yX25vZGVfbW9kdWxlX3JlZmVyZW5jZXNfdG9fYmFzZV9jb25maWd1cmF0aW9uX2ZpbGVzX2Zyb21fd2hpY2hfc2V0dGluZ3NfYV82NjMzXCIsXCJTcGVjaWZ5IG9uZSBvciBtb3JlIHBhdGggb3Igbm9kZSBtb2R1bGUgcmVmZXJlbmNlcyB0byBiYXNlIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSB3aGljaCBzZXR0aW5ncyBhcmUgaW5oZXJpdGVkLlwiKSxTcGVjaWZ5X3doYXRfYXBwcm9hY2hfdGhlX3dhdGNoZXJfc2hvdWxkX3VzZV9pZl90aGVfc3lzdGVtX3J1bnNfb3V0X29mX25hdGl2ZV9maWxlX3dhdGNoZXJzOmkoNjYzNCwzLFwiU3BlY2lmeV93aGF0X2FwcHJvYWNoX3RoZV93YXRjaGVyX3Nob3VsZF91c2VfaWZfdGhlX3N5c3RlbV9ydW5zX291dF9vZl9uYXRpdmVfZmlsZV93YXRjaGVyc182NjM0XCIsXCJTcGVjaWZ5IHdoYXQgYXBwcm9hY2ggdGhlIHdhdGNoZXIgc2hvdWxkIHVzZSBpZiB0aGUgc3lzdGVtIHJ1bnMgb3V0IG9mIG5hdGl2ZSBmaWxlIHdhdGNoZXJzLlwiKSxJbmNsdWRlX2FfbGlzdF9vZl9maWxlc19UaGlzX2RvZXNfbm90X3N1cHBvcnRfZ2xvYl9wYXR0ZXJuc19hc19vcHBvc2VkX3RvX2luY2x1ZGU6aSg2NjM1LDMsXCJJbmNsdWRlX2FfbGlzdF9vZl9maWxlc19UaGlzX2RvZXNfbm90X3N1cHBvcnRfZ2xvYl9wYXR0ZXJuc19hc19vcHBvc2VkX3RvX2luY2x1ZGVfNjYzNVwiLFwiSW5jbHVkZSBhIGxpc3Qgb2YgZmlsZXMuIFRoaXMgZG9lcyBub3Qgc3VwcG9ydCBnbG9iIHBhdHRlcm5zLCBhcyBvcHBvc2VkIHRvIGBpbmNsdWRlYC5cIiksQnVpbGRfYWxsX3Byb2plY3RzX2luY2x1ZGluZ190aG9zZV90aGF0X2FwcGVhcl90b19iZV91cF90b19kYXRlOmkoNjYzNiwzLFwiQnVpbGRfYWxsX3Byb2plY3RzX2luY2x1ZGluZ190aG9zZV90aGF0X2FwcGVhcl90b19iZV91cF90b19kYXRlXzY2MzZcIixcIkJ1aWxkIGFsbCBwcm9qZWN0cywgaW5jbHVkaW5nIHRob3NlIHRoYXQgYXBwZWFyIHRvIGJlIHVwIHRvIGRhdGUuXCIpLEVuc3VyZV90aGF0X2Nhc2luZ19pc19jb3JyZWN0X2luX2ltcG9ydHM6aSg2NjM3LDMsXCJFbnN1cmVfdGhhdF9jYXNpbmdfaXNfY29ycmVjdF9pbl9pbXBvcnRzXzY2MzdcIixcIkVuc3VyZSB0aGF0IGNhc2luZyBpcyBjb3JyZWN0IGluIGltcG9ydHMuXCIpLEVtaXRfYV92OF9DUFVfcHJvZmlsZV9vZl90aGVfY29tcGlsZXJfcnVuX2Zvcl9kZWJ1Z2dpbmc6aSg2NjM4LDMsXCJFbWl0X2FfdjhfQ1BVX3Byb2ZpbGVfb2ZfdGhlX2NvbXBpbGVyX3J1bl9mb3JfZGVidWdnaW5nXzY2MzhcIixcIkVtaXQgYSB2OCBDUFUgcHJvZmlsZSBvZiB0aGUgY29tcGlsZXIgcnVuIGZvciBkZWJ1Z2dpbmcuXCIpLEFsbG93X2ltcG9ydGluZ19oZWxwZXJfZnVuY3Rpb25zX2Zyb21fdHNsaWJfb25jZV9wZXJfcHJvamVjdF9pbnN0ZWFkX29mX2luY2x1ZGluZ190aGVtX3Blcl9maWxlOmkoNjYzOSwzLFwiQWxsb3dfaW1wb3J0aW5nX2hlbHBlcl9mdW5jdGlvbnNfZnJvbV90c2xpYl9vbmNlX3Blcl9wcm9qZWN0X2luc3RlYWRfb2ZfaW5jbHVkaW5nX3RoZW1fcGVyX2ZpbGVfNjYzOVwiLFwiQWxsb3cgaW1wb3J0aW5nIGhlbHBlciBmdW5jdGlvbnMgZnJvbSB0c2xpYiBvbmNlIHBlciBwcm9qZWN0LCBpbnN0ZWFkIG9mIGluY2x1ZGluZyB0aGVtIHBlci1maWxlLlwiKSxTcGVjaWZ5X2FfbGlzdF9vZl9nbG9iX3BhdHRlcm5zX3RoYXRfbWF0Y2hfZmlsZXNfdG9fYmVfaW5jbHVkZWRfaW5fY29tcGlsYXRpb246aSg2NjQxLDMsXCJTcGVjaWZ5X2FfbGlzdF9vZl9nbG9iX3BhdHRlcm5zX3RoYXRfbWF0Y2hfZmlsZXNfdG9fYmVfaW5jbHVkZWRfaW5fY29tcGlsYXRpb25fNjY0MVwiLFwiU3BlY2lmeSBhIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0aGF0IG1hdGNoIGZpbGVzIHRvIGJlIGluY2x1ZGVkIGluIGNvbXBpbGF0aW9uLlwiKSxTYXZlX3RzYnVpbGRpbmZvX2ZpbGVzX3RvX2FsbG93X2Zvcl9pbmNyZW1lbnRhbF9jb21waWxhdGlvbl9vZl9wcm9qZWN0czppKDY2NDIsMyxcIlNhdmVfdHNidWlsZGluZm9fZmlsZXNfdG9fYWxsb3dfZm9yX2luY3JlbWVudGFsX2NvbXBpbGF0aW9uX29mX3Byb2plY3RzXzY2NDJcIixcIlNhdmUgLnRzYnVpbGRpbmZvIGZpbGVzIHRvIGFsbG93IGZvciBpbmNyZW1lbnRhbCBjb21waWxhdGlvbiBvZiBwcm9qZWN0cy5cIiksSW5jbHVkZV9zb3VyY2VtYXBfZmlsZXNfaW5zaWRlX3RoZV9lbWl0dGVkX0phdmFTY3JpcHQ6aSg2NjQzLDMsXCJJbmNsdWRlX3NvdXJjZW1hcF9maWxlc19pbnNpZGVfdGhlX2VtaXR0ZWRfSmF2YVNjcmlwdF82NjQzXCIsXCJJbmNsdWRlIHNvdXJjZW1hcCBmaWxlcyBpbnNpZGUgdGhlIGVtaXR0ZWQgSmF2YVNjcmlwdC5cIiksSW5jbHVkZV9zb3VyY2VfY29kZV9pbl90aGVfc291cmNlbWFwc19pbnNpZGVfdGhlX2VtaXR0ZWRfSmF2YVNjcmlwdDppKDY2NDQsMyxcIkluY2x1ZGVfc291cmNlX2NvZGVfaW5fdGhlX3NvdXJjZW1hcHNfaW5zaWRlX3RoZV9lbWl0dGVkX0phdmFTY3JpcHRfNjY0NFwiLFwiSW5jbHVkZSBzb3VyY2UgY29kZSBpbiB0aGUgc291cmNlbWFwcyBpbnNpZGUgdGhlIGVtaXR0ZWQgSmF2YVNjcmlwdC5cIiksRW5zdXJlX3RoYXRfZWFjaF9maWxlX2Nhbl9iZV9zYWZlbHlfdHJhbnNwaWxlZF93aXRob3V0X3JlbHlpbmdfb25fb3RoZXJfaW1wb3J0czppKDY2NDUsMyxcIkVuc3VyZV90aGF0X2VhY2hfZmlsZV9jYW5fYmVfc2FmZWx5X3RyYW5zcGlsZWRfd2l0aG91dF9yZWx5aW5nX29uX290aGVyX2ltcG9ydHNfNjY0NVwiLFwiRW5zdXJlIHRoYXQgZWFjaCBmaWxlIGNhbiBiZSBzYWZlbHkgdHJhbnNwaWxlZCB3aXRob3V0IHJlbHlpbmcgb24gb3RoZXIgaW1wb3J0cy5cIiksU3BlY2lmeV93aGF0X0pTWF9jb2RlX2lzX2dlbmVyYXRlZDppKDY2NDYsMyxcIlNwZWNpZnlfd2hhdF9KU1hfY29kZV9pc19nZW5lcmF0ZWRfNjY0NlwiLFwiU3BlY2lmeSB3aGF0IEpTWCBjb2RlIGlzIGdlbmVyYXRlZC5cIiksU3BlY2lmeV90aGVfSlNYX2ZhY3RvcnlfZnVuY3Rpb25fdXNlZF93aGVuX3RhcmdldGluZ19SZWFjdF9KU1hfZW1pdF9lX2dfUmVhY3RfY3JlYXRlRWxlbWVudF9vcl9oOmkoNjY0NywzLFwiU3BlY2lmeV90aGVfSlNYX2ZhY3RvcnlfZnVuY3Rpb25fdXNlZF93aGVuX3RhcmdldGluZ19SZWFjdF9KU1hfZW1pdF9lX2dfUmVhY3RfY3JlYXRlRWxlbWVudF9vcl9oXzY2NDdcIixcIlNwZWNpZnkgdGhlIEpTWCBmYWN0b3J5IGZ1bmN0aW9uIHVzZWQgd2hlbiB0YXJnZXRpbmcgUmVhY3QgSlNYIGVtaXQsIGUuZy4gJ1JlYWN0LmNyZWF0ZUVsZW1lbnQnIG9yICdoJy5cIiksU3BlY2lmeV90aGVfSlNYX0ZyYWdtZW50X3JlZmVyZW5jZV91c2VkX2Zvcl9mcmFnbWVudHNfd2hlbl90YXJnZXRpbmdfUmVhY3RfSlNYX2VtaXRfZV9nX1JlYWN0X0ZyYWdtZW50X29yX0ZyYWdtZW50OmkoNjY0OCwzLFwiU3BlY2lmeV90aGVfSlNYX0ZyYWdtZW50X3JlZmVyZW5jZV91c2VkX2Zvcl9mcmFnbWVudHNfd2hlbl90YXJnZXRpbmdfUmVhY3RfSlNYX2VtaXRfZV9nX1JlYWN0X0ZyYWdtZV82NjQ4XCIsXCJTcGVjaWZ5IHRoZSBKU1ggRnJhZ21lbnQgcmVmZXJlbmNlIHVzZWQgZm9yIGZyYWdtZW50cyB3aGVuIHRhcmdldGluZyBSZWFjdCBKU1ggZW1pdCBlLmcuICdSZWFjdC5GcmFnbWVudCcgb3IgJ0ZyYWdtZW50Jy5cIiksU3BlY2lmeV9tb2R1bGVfc3BlY2lmaWVyX3VzZWRfdG9faW1wb3J0X3RoZV9KU1hfZmFjdG9yeV9mdW5jdGlvbnNfd2hlbl91c2luZ19qc3hfQ29sb25fcmVhY3RfanN4X0FzdGVyaXNrOmkoNjY0OSwzLFwiU3BlY2lmeV9tb2R1bGVfc3BlY2lmaWVyX3VzZWRfdG9faW1wb3J0X3RoZV9KU1hfZmFjdG9yeV9mdW5jdGlvbnNfd2hlbl91c2luZ19qc3hfQ29sb25fcmVhY3RfanN4X0FzdF82NjQ5XCIsXCJTcGVjaWZ5IG1vZHVsZSBzcGVjaWZpZXIgdXNlZCB0byBpbXBvcnQgdGhlIEpTWCBmYWN0b3J5IGZ1bmN0aW9ucyB3aGVuIHVzaW5nICdqc3g6IHJlYWN0LWpzeConLlwiKSxNYWtlX2tleW9mX29ubHlfcmV0dXJuX3N0cmluZ3NfaW5zdGVhZF9vZl9zdHJpbmdfbnVtYmVyc19vcl9zeW1ib2xzX0xlZ2FjeV9vcHRpb246aSg2NjUwLDMsXCJNYWtlX2tleW9mX29ubHlfcmV0dXJuX3N0cmluZ3NfaW5zdGVhZF9vZl9zdHJpbmdfbnVtYmVyc19vcl9zeW1ib2xzX0xlZ2FjeV9vcHRpb25fNjY1MFwiLFwiTWFrZSBrZXlvZiBvbmx5IHJldHVybiBzdHJpbmdzIGluc3RlYWQgb2Ygc3RyaW5nLCBudW1iZXJzIG9yIHN5bWJvbHMuIExlZ2FjeSBvcHRpb24uXCIpLFNwZWNpZnlfYV9zZXRfb2ZfYnVuZGxlZF9saWJyYXJ5X2RlY2xhcmF0aW9uX2ZpbGVzX3RoYXRfZGVzY3JpYmVfdGhlX3RhcmdldF9ydW50aW1lX2Vudmlyb25tZW50OmkoNjY1MSwzLFwiU3BlY2lmeV9hX3NldF9vZl9idW5kbGVkX2xpYnJhcnlfZGVjbGFyYXRpb25fZmlsZXNfdGhhdF9kZXNjcmliZV90aGVfdGFyZ2V0X3J1bnRpbWVfZW52aXJvbm1lbnRfNjY1MVwiLFwiU3BlY2lmeSBhIHNldCBvZiBidW5kbGVkIGxpYnJhcnkgZGVjbGFyYXRpb24gZmlsZXMgdGhhdCBkZXNjcmliZSB0aGUgdGFyZ2V0IHJ1bnRpbWUgZW52aXJvbm1lbnQuXCIpLFByaW50X3RoZV9uYW1lc19vZl9lbWl0dGVkX2ZpbGVzX2FmdGVyX2FfY29tcGlsYXRpb246aSg2NjUyLDMsXCJQcmludF90aGVfbmFtZXNfb2ZfZW1pdHRlZF9maWxlc19hZnRlcl9hX2NvbXBpbGF0aW9uXzY2NTJcIixcIlByaW50IHRoZSBuYW1lcyBvZiBlbWl0dGVkIGZpbGVzIGFmdGVyIGEgY29tcGlsYXRpb24uXCIpLFByaW50X2FsbF9vZl90aGVfZmlsZXNfcmVhZF9kdXJpbmdfdGhlX2NvbXBpbGF0aW9uOmkoNjY1MywzLFwiUHJpbnRfYWxsX29mX3RoZV9maWxlc19yZWFkX2R1cmluZ190aGVfY29tcGlsYXRpb25fNjY1M1wiLFwiUHJpbnQgYWxsIG9mIHRoZSBmaWxlcyByZWFkIGR1cmluZyB0aGUgY29tcGlsYXRpb24uXCIpLFNldF90aGVfbGFuZ3VhZ2Vfb2ZfdGhlX21lc3NhZ2luZ19mcm9tX1R5cGVTY3JpcHRfVGhpc19kb2VzX25vdF9hZmZlY3RfZW1pdDppKDY2NTQsMyxcIlNldF90aGVfbGFuZ3VhZ2Vfb2ZfdGhlX21lc3NhZ2luZ19mcm9tX1R5cGVTY3JpcHRfVGhpc19kb2VzX25vdF9hZmZlY3RfZW1pdF82NjU0XCIsXCJTZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBtZXNzYWdpbmcgZnJvbSBUeXBlU2NyaXB0LiBUaGlzIGRvZXMgbm90IGFmZmVjdCBlbWl0LlwiKSxTcGVjaWZ5X3RoZV9sb2NhdGlvbl93aGVyZV9kZWJ1Z2dlcl9zaG91bGRfbG9jYXRlX21hcF9maWxlc19pbnN0ZWFkX29mX2dlbmVyYXRlZF9sb2NhdGlvbnM6aSg2NjU1LDMsXCJTcGVjaWZ5X3RoZV9sb2NhdGlvbl93aGVyZV9kZWJ1Z2dlcl9zaG91bGRfbG9jYXRlX21hcF9maWxlc19pbnN0ZWFkX29mX2dlbmVyYXRlZF9sb2NhdGlvbnNfNjY1NVwiLFwiU3BlY2lmeSB0aGUgbG9jYXRpb24gd2hlcmUgZGVidWdnZXIgc2hvdWxkIGxvY2F0ZSBtYXAgZmlsZXMgaW5zdGVhZCBvZiBnZW5lcmF0ZWQgbG9jYXRpb25zLlwiKSxTcGVjaWZ5X3RoZV9tYXhpbXVtX2ZvbGRlcl9kZXB0aF91c2VkX2Zvcl9jaGVja2luZ19KYXZhU2NyaXB0X2ZpbGVzX2Zyb21fbm9kZV9tb2R1bGVzX09ubHlfYXBwbGljYWJsZV93aXRoX2FsbG93SnM6aSg2NjU2LDMsXCJTcGVjaWZ5X3RoZV9tYXhpbXVtX2ZvbGRlcl9kZXB0aF91c2VkX2Zvcl9jaGVja2luZ19KYXZhU2NyaXB0X2ZpbGVzX2Zyb21fbm9kZV9tb2R1bGVzX09ubHlfYXBwbGljYWJsXzY2NTZcIixcIlNwZWNpZnkgdGhlIG1heGltdW0gZm9sZGVyIGRlcHRoIHVzZWQgZm9yIGNoZWNraW5nIEphdmFTY3JpcHQgZmlsZXMgZnJvbSAnbm9kZV9tb2R1bGVzJy4gT25seSBhcHBsaWNhYmxlIHdpdGggJ2FsbG93SnMnLlwiKSxTcGVjaWZ5X3doYXRfbW9kdWxlX2NvZGVfaXNfZ2VuZXJhdGVkOmkoNjY1NywzLFwiU3BlY2lmeV93aGF0X21vZHVsZV9jb2RlX2lzX2dlbmVyYXRlZF82NjU3XCIsXCJTcGVjaWZ5IHdoYXQgbW9kdWxlIGNvZGUgaXMgZ2VuZXJhdGVkLlwiKSxTcGVjaWZ5X2hvd19UeXBlU2NyaXB0X2xvb2tzX3VwX2FfZmlsZV9mcm9tX2FfZ2l2ZW5fbW9kdWxlX3NwZWNpZmllcjppKDY2NTgsMyxcIlNwZWNpZnlfaG93X1R5cGVTY3JpcHRfbG9va3NfdXBfYV9maWxlX2Zyb21fYV9naXZlbl9tb2R1bGVfc3BlY2lmaWVyXzY2NThcIixcIlNwZWNpZnkgaG93IFR5cGVTY3JpcHQgbG9va3MgdXAgYSBmaWxlIGZyb20gYSBnaXZlbiBtb2R1bGUgc3BlY2lmaWVyLlwiKSxTZXRfdGhlX25ld2xpbmVfY2hhcmFjdGVyX2Zvcl9lbWl0dGluZ19maWxlczppKDY2NTksMyxcIlNldF90aGVfbmV3bGluZV9jaGFyYWN0ZXJfZm9yX2VtaXR0aW5nX2ZpbGVzXzY2NTlcIixcIlNldCB0aGUgbmV3bGluZSBjaGFyYWN0ZXIgZm9yIGVtaXR0aW5nIGZpbGVzLlwiKSxEaXNhYmxlX2VtaXR0aW5nX2ZpbGVzX2Zyb21fYV9jb21waWxhdGlvbjppKDY2NjAsMyxcIkRpc2FibGVfZW1pdHRpbmdfZmlsZXNfZnJvbV9hX2NvbXBpbGF0aW9uXzY2NjBcIixcIkRpc2FibGUgZW1pdHRpbmcgZmlsZXMgZnJvbSBhIGNvbXBpbGF0aW9uLlwiKSxEaXNhYmxlX2dlbmVyYXRpbmdfY3VzdG9tX2hlbHBlcl9mdW5jdGlvbnNfbGlrZV9leHRlbmRzX2luX2NvbXBpbGVkX291dHB1dDppKDY2NjEsMyxcIkRpc2FibGVfZ2VuZXJhdGluZ19jdXN0b21faGVscGVyX2Z1bmN0aW9uc19saWtlX2V4dGVuZHNfaW5fY29tcGlsZWRfb3V0cHV0XzY2NjFcIixcIkRpc2FibGUgZ2VuZXJhdGluZyBjdXN0b20gaGVscGVyIGZ1bmN0aW9ucyBsaWtlICdfX2V4dGVuZHMnIGluIGNvbXBpbGVkIG91dHB1dC5cIiksRGlzYWJsZV9lbWl0dGluZ19maWxlc19pZl9hbnlfdHlwZV9jaGVja2luZ19lcnJvcnNfYXJlX3JlcG9ydGVkOmkoNjY2MiwzLFwiRGlzYWJsZV9lbWl0dGluZ19maWxlc19pZl9hbnlfdHlwZV9jaGVja2luZ19lcnJvcnNfYXJlX3JlcG9ydGVkXzY2NjJcIixcIkRpc2FibGUgZW1pdHRpbmcgZmlsZXMgaWYgYW55IHR5cGUgY2hlY2tpbmcgZXJyb3JzIGFyZSByZXBvcnRlZC5cIiksRGlzYWJsZV90cnVuY2F0aW5nX3R5cGVzX2luX2Vycm9yX21lc3NhZ2VzOmkoNjY2MywzLFwiRGlzYWJsZV90cnVuY2F0aW5nX3R5cGVzX2luX2Vycm9yX21lc3NhZ2VzXzY2NjNcIixcIkRpc2FibGUgdHJ1bmNhdGluZyB0eXBlcyBpbiBlcnJvciBtZXNzYWdlcy5cIiksRW5hYmxlX2Vycm9yX3JlcG9ydGluZ19mb3JfZmFsbHRocm91Z2hfY2FzZXNfaW5fc3dpdGNoX3N0YXRlbWVudHM6aSg2NjY0LDMsXCJFbmFibGVfZXJyb3JfcmVwb3J0aW5nX2Zvcl9mYWxsdGhyb3VnaF9jYXNlc19pbl9zd2l0Y2hfc3RhdGVtZW50c182NjY0XCIsXCJFbmFibGUgZXJyb3IgcmVwb3J0aW5nIGZvciBmYWxsdGhyb3VnaCBjYXNlcyBpbiBzd2l0Y2ggc3RhdGVtZW50cy5cIiksRW5hYmxlX2Vycm9yX3JlcG9ydGluZ19mb3JfZXhwcmVzc2lvbnNfYW5kX2RlY2xhcmF0aW9uc193aXRoX2FuX2ltcGxpZWRfYW55X3R5cGU6aSg2NjY1LDMsXCJFbmFibGVfZXJyb3JfcmVwb3J0aW5nX2Zvcl9leHByZXNzaW9uc19hbmRfZGVjbGFyYXRpb25zX3dpdGhfYW5faW1wbGllZF9hbnlfdHlwZV82NjY1XCIsXCJFbmFibGUgZXJyb3IgcmVwb3J0aW5nIGZvciBleHByZXNzaW9ucyBhbmQgZGVjbGFyYXRpb25zIHdpdGggYW4gaW1wbGllZCAnYW55JyB0eXBlLlwiKSxFbnN1cmVfb3ZlcnJpZGluZ19tZW1iZXJzX2luX2Rlcml2ZWRfY2xhc3Nlc19hcmVfbWFya2VkX3dpdGhfYW5fb3ZlcnJpZGVfbW9kaWZpZXI6aSg2NjY2LDMsXCJFbnN1cmVfb3ZlcnJpZGluZ19tZW1iZXJzX2luX2Rlcml2ZWRfY2xhc3Nlc19hcmVfbWFya2VkX3dpdGhfYW5fb3ZlcnJpZGVfbW9kaWZpZXJfNjY2NlwiLFwiRW5zdXJlIG92ZXJyaWRpbmcgbWVtYmVycyBpbiBkZXJpdmVkIGNsYXNzZXMgYXJlIG1hcmtlZCB3aXRoIGFuIG92ZXJyaWRlIG1vZGlmaWVyLlwiKSxFbmFibGVfZXJyb3JfcmVwb3J0aW5nX2Zvcl9jb2RlcGF0aHNfdGhhdF9kb19ub3RfZXhwbGljaXRseV9yZXR1cm5faW5fYV9mdW5jdGlvbjppKDY2NjcsMyxcIkVuYWJsZV9lcnJvcl9yZXBvcnRpbmdfZm9yX2NvZGVwYXRoc190aGF0X2RvX25vdF9leHBsaWNpdGx5X3JldHVybl9pbl9hX2Z1bmN0aW9uXzY2NjdcIixcIkVuYWJsZSBlcnJvciByZXBvcnRpbmcgZm9yIGNvZGVwYXRocyB0aGF0IGRvIG5vdCBleHBsaWNpdGx5IHJldHVybiBpbiBhIGZ1bmN0aW9uLlwiKSxFbmFibGVfZXJyb3JfcmVwb3J0aW5nX3doZW5fdGhpc19pc19naXZlbl90aGVfdHlwZV9hbnk6aSg2NjY4LDMsXCJFbmFibGVfZXJyb3JfcmVwb3J0aW5nX3doZW5fdGhpc19pc19naXZlbl90aGVfdHlwZV9hbnlfNjY2OFwiLFwiRW5hYmxlIGVycm9yIHJlcG9ydGluZyB3aGVuICd0aGlzJyBpcyBnaXZlbiB0aGUgdHlwZSAnYW55Jy5cIiksRGlzYWJsZV9hZGRpbmdfdXNlX3N0cmljdF9kaXJlY3RpdmVzX2luX2VtaXR0ZWRfSmF2YVNjcmlwdF9maWxlczppKDY2NjksMyxcIkRpc2FibGVfYWRkaW5nX3VzZV9zdHJpY3RfZGlyZWN0aXZlc19pbl9lbWl0dGVkX0phdmFTY3JpcHRfZmlsZXNfNjY2OVwiLFwiRGlzYWJsZSBhZGRpbmcgJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZXMgaW4gZW1pdHRlZCBKYXZhU2NyaXB0IGZpbGVzLlwiKSxEaXNhYmxlX2luY2x1ZGluZ19hbnlfbGlicmFyeV9maWxlc19pbmNsdWRpbmdfdGhlX2RlZmF1bHRfbGliX2RfdHM6aSg2NjcwLDMsXCJEaXNhYmxlX2luY2x1ZGluZ19hbnlfbGlicmFyeV9maWxlc19pbmNsdWRpbmdfdGhlX2RlZmF1bHRfbGliX2RfdHNfNjY3MFwiLFwiRGlzYWJsZSBpbmNsdWRpbmcgYW55IGxpYnJhcnkgZmlsZXMsIGluY2x1ZGluZyB0aGUgZGVmYXVsdCBsaWIuZC50cy5cIiksRW5mb3JjZXNfdXNpbmdfaW5kZXhlZF9hY2Nlc3NvcnNfZm9yX2tleXNfZGVjbGFyZWRfdXNpbmdfYW5faW5kZXhlZF90eXBlOmkoNjY3MSwzLFwiRW5mb3JjZXNfdXNpbmdfaW5kZXhlZF9hY2Nlc3NvcnNfZm9yX2tleXNfZGVjbGFyZWRfdXNpbmdfYW5faW5kZXhlZF90eXBlXzY2NzFcIixcIkVuZm9yY2VzIHVzaW5nIGluZGV4ZWQgYWNjZXNzb3JzIGZvciBrZXlzIGRlY2xhcmVkIHVzaW5nIGFuIGluZGV4ZWQgdHlwZS5cIiksRGlzYWxsb3dfaW1wb3J0X3NfcmVxdWlyZV9zX29yX3JlZmVyZW5jZV9zX2Zyb21fZXhwYW5kaW5nX3RoZV9udW1iZXJfb2ZfZmlsZXNfVHlwZVNjcmlwdF9zaG91bGRfYWRkX3RvX2FfcHJvamVjdDppKDY2NzIsMyxcIkRpc2FsbG93X2ltcG9ydF9zX3JlcXVpcmVfc19vcl9yZWZlcmVuY2Vfc19mcm9tX2V4cGFuZGluZ190aGVfbnVtYmVyX29mX2ZpbGVzX1R5cGVTY3JpcHRfc2hvdWxkX2FkZF9fNjY3MlwiLFwiRGlzYWxsb3cgJ2ltcG9ydCdzLCAncmVxdWlyZSdzIG9yICc8cmVmZXJlbmNlPidzIGZyb20gZXhwYW5kaW5nIHRoZSBudW1iZXIgb2YgZmlsZXMgVHlwZVNjcmlwdCBzaG91bGQgYWRkIHRvIGEgcHJvamVjdC5cIiksRGlzYWJsZV9zdHJpY3RfY2hlY2tpbmdfb2ZfZ2VuZXJpY19zaWduYXR1cmVzX2luX2Z1bmN0aW9uX3R5cGVzOmkoNjY3MywzLFwiRGlzYWJsZV9zdHJpY3RfY2hlY2tpbmdfb2ZfZ2VuZXJpY19zaWduYXR1cmVzX2luX2Z1bmN0aW9uX3R5cGVzXzY2NzNcIixcIkRpc2FibGUgc3RyaWN0IGNoZWNraW5nIG9mIGdlbmVyaWMgc2lnbmF0dXJlcyBpbiBmdW5jdGlvbiB0eXBlcy5cIiksQWRkX3VuZGVmaW5lZF90b19hX3R5cGVfd2hlbl9hY2Nlc3NlZF91c2luZ19hbl9pbmRleDppKDY2NzQsMyxcIkFkZF91bmRlZmluZWRfdG9fYV90eXBlX3doZW5fYWNjZXNzZWRfdXNpbmdfYW5faW5kZXhfNjY3NFwiLFwiQWRkICd1bmRlZmluZWQnIHRvIGEgdHlwZSB3aGVuIGFjY2Vzc2VkIHVzaW5nIGFuIGluZGV4LlwiKSxFbmFibGVfZXJyb3JfcmVwb3J0aW5nX3doZW5fbG9jYWxfdmFyaWFibGVzX2FyZW5fdF9yZWFkOmkoNjY3NSwzLFwiRW5hYmxlX2Vycm9yX3JlcG9ydGluZ193aGVuX2xvY2FsX3ZhcmlhYmxlc19hcmVuX3RfcmVhZF82Njc1XCIsXCJFbmFibGUgZXJyb3IgcmVwb3J0aW5nIHdoZW4gbG9jYWwgdmFyaWFibGVzIGFyZW4ndCByZWFkLlwiKSxSYWlzZV9hbl9lcnJvcl93aGVuX2FfZnVuY3Rpb25fcGFyYW1ldGVyX2lzbl90X3JlYWQ6aSg2Njc2LDMsXCJSYWlzZV9hbl9lcnJvcl93aGVuX2FfZnVuY3Rpb25fcGFyYW1ldGVyX2lzbl90X3JlYWRfNjY3NlwiLFwiUmFpc2UgYW4gZXJyb3Igd2hlbiBhIGZ1bmN0aW9uIHBhcmFtZXRlciBpc24ndCByZWFkLlwiKSxEZXByZWNhdGVkX3NldHRpbmdfVXNlX291dEZpbGVfaW5zdGVhZDppKDY2NzcsMyxcIkRlcHJlY2F0ZWRfc2V0dGluZ19Vc2Vfb3V0RmlsZV9pbnN0ZWFkXzY2NzdcIixcIkRlcHJlY2F0ZWQgc2V0dGluZy4gVXNlICdvdXRGaWxlJyBpbnN0ZWFkLlwiKSxTcGVjaWZ5X2FuX291dHB1dF9mb2xkZXJfZm9yX2FsbF9lbWl0dGVkX2ZpbGVzOmkoNjY3OCwzLFwiU3BlY2lmeV9hbl9vdXRwdXRfZm9sZGVyX2Zvcl9hbGxfZW1pdHRlZF9maWxlc182Njc4XCIsXCJTcGVjaWZ5IGFuIG91dHB1dCBmb2xkZXIgZm9yIGFsbCBlbWl0dGVkIGZpbGVzLlwiKSxTcGVjaWZ5X2FfZmlsZV90aGF0X2J1bmRsZXNfYWxsX291dHB1dHNfaW50b19vbmVfSmF2YVNjcmlwdF9maWxlX0lmX2RlY2xhcmF0aW9uX2lzX3RydWVfYWxzb19kZXNpZ25hdGVzX2FfZmlsZV90aGF0X2J1bmRsZXNfYWxsX2RfdHNfb3V0cHV0OmkoNjY3OSwzLFwiU3BlY2lmeV9hX2ZpbGVfdGhhdF9idW5kbGVzX2FsbF9vdXRwdXRzX2ludG9fb25lX0phdmFTY3JpcHRfZmlsZV9JZl9kZWNsYXJhdGlvbl9pc190cnVlX2Fsc29fZGVzaWduYV82Njc5XCIsXCJTcGVjaWZ5IGEgZmlsZSB0aGF0IGJ1bmRsZXMgYWxsIG91dHB1dHMgaW50byBvbmUgSmF2YVNjcmlwdCBmaWxlLiBJZiAnZGVjbGFyYXRpb24nIGlzIHRydWUsIGFsc28gZGVzaWduYXRlcyBhIGZpbGUgdGhhdCBidW5kbGVzIGFsbCAuZC50cyBvdXRwdXQuXCIpLFNwZWNpZnlfYV9zZXRfb2ZfZW50cmllc190aGF0X3JlX21hcF9pbXBvcnRzX3RvX2FkZGl0aW9uYWxfbG9va3VwX2xvY2F0aW9uczppKDY2ODAsMyxcIlNwZWNpZnlfYV9zZXRfb2ZfZW50cmllc190aGF0X3JlX21hcF9pbXBvcnRzX3RvX2FkZGl0aW9uYWxfbG9va3VwX2xvY2F0aW9uc182NjgwXCIsXCJTcGVjaWZ5IGEgc2V0IG9mIGVudHJpZXMgdGhhdCByZS1tYXAgaW1wb3J0cyB0byBhZGRpdGlvbmFsIGxvb2t1cCBsb2NhdGlvbnMuXCIpLFNwZWNpZnlfYV9saXN0X29mX2xhbmd1YWdlX3NlcnZpY2VfcGx1Z2luc190b19pbmNsdWRlOmkoNjY4MSwzLFwiU3BlY2lmeV9hX2xpc3Rfb2ZfbGFuZ3VhZ2Vfc2VydmljZV9wbHVnaW5zX3RvX2luY2x1ZGVfNjY4MVwiLFwiU3BlY2lmeSBhIGxpc3Qgb2YgbGFuZ3VhZ2Ugc2VydmljZSBwbHVnaW5zIHRvIGluY2x1ZGUuXCIpLERpc2FibGVfZXJhc2luZ19jb25zdF9lbnVtX2RlY2xhcmF0aW9uc19pbl9nZW5lcmF0ZWRfY29kZTppKDY2ODIsMyxcIkRpc2FibGVfZXJhc2luZ19jb25zdF9lbnVtX2RlY2xhcmF0aW9uc19pbl9nZW5lcmF0ZWRfY29kZV82NjgyXCIsXCJEaXNhYmxlIGVyYXNpbmcgJ2NvbnN0IGVudW0nIGRlY2xhcmF0aW9ucyBpbiBnZW5lcmF0ZWQgY29kZS5cIiksRGlzYWJsZV9yZXNvbHZpbmdfc3ltbGlua3NfdG9fdGhlaXJfcmVhbHBhdGhfVGhpc19jb3JyZWxhdGVzX3RvX3RoZV9zYW1lX2ZsYWdfaW5fbm9kZTppKDY2ODMsMyxcIkRpc2FibGVfcmVzb2x2aW5nX3N5bWxpbmtzX3RvX3RoZWlyX3JlYWxwYXRoX1RoaXNfY29ycmVsYXRlc190b190aGVfc2FtZV9mbGFnX2luX25vZGVfNjY4M1wiLFwiRGlzYWJsZSByZXNvbHZpbmcgc3ltbGlua3MgdG8gdGhlaXIgcmVhbHBhdGguIFRoaXMgY29ycmVsYXRlcyB0byB0aGUgc2FtZSBmbGFnIGluIG5vZGUuXCIpLERpc2FibGVfd2lwaW5nX3RoZV9jb25zb2xlX2luX3dhdGNoX21vZGU6aSg2Njg0LDMsXCJEaXNhYmxlX3dpcGluZ190aGVfY29uc29sZV9pbl93YXRjaF9tb2RlXzY2ODRcIixcIkRpc2FibGUgd2lwaW5nIHRoZSBjb25zb2xlIGluIHdhdGNoIG1vZGUuXCIpLEVuYWJsZV9jb2xvcl9hbmRfZm9ybWF0dGluZ19pbl9UeXBlU2NyaXB0X3Nfb3V0cHV0X3RvX21ha2VfY29tcGlsZXJfZXJyb3JzX2Vhc2llcl90b19yZWFkOmkoNjY4NSwzLFwiRW5hYmxlX2NvbG9yX2FuZF9mb3JtYXR0aW5nX2luX1R5cGVTY3JpcHRfc19vdXRwdXRfdG9fbWFrZV9jb21waWxlcl9lcnJvcnNfZWFzaWVyX3RvX3JlYWRfNjY4NVwiLFwiRW5hYmxlIGNvbG9yIGFuZCBmb3JtYXR0aW5nIGluIFR5cGVTY3JpcHQncyBvdXRwdXQgdG8gbWFrZSBjb21waWxlciBlcnJvcnMgZWFzaWVyIHRvIHJlYWQuXCIpLFNwZWNpZnlfdGhlX29iamVjdF9pbnZva2VkX2Zvcl9jcmVhdGVFbGVtZW50X1RoaXNfb25seV9hcHBsaWVzX3doZW5fdGFyZ2V0aW5nX3JlYWN0X0pTWF9lbWl0OmkoNjY4NiwzLFwiU3BlY2lmeV90aGVfb2JqZWN0X2ludm9rZWRfZm9yX2NyZWF0ZUVsZW1lbnRfVGhpc19vbmx5X2FwcGxpZXNfd2hlbl90YXJnZXRpbmdfcmVhY3RfSlNYX2VtaXRfNjY4NlwiLFwiU3BlY2lmeSB0aGUgb2JqZWN0IGludm9rZWQgZm9yICdjcmVhdGVFbGVtZW50Jy4gVGhpcyBvbmx5IGFwcGxpZXMgd2hlbiB0YXJnZXRpbmcgJ3JlYWN0JyBKU1ggZW1pdC5cIiksU3BlY2lmeV9hbl9hcnJheV9vZl9vYmplY3RzX3RoYXRfc3BlY2lmeV9wYXRoc19mb3JfcHJvamVjdHNfVXNlZF9pbl9wcm9qZWN0X3JlZmVyZW5jZXM6aSg2Njg3LDMsXCJTcGVjaWZ5X2FuX2FycmF5X29mX29iamVjdHNfdGhhdF9zcGVjaWZ5X3BhdGhzX2Zvcl9wcm9qZWN0c19Vc2VkX2luX3Byb2plY3RfcmVmZXJlbmNlc182Njg3XCIsXCJTcGVjaWZ5IGFuIGFycmF5IG9mIG9iamVjdHMgdGhhdCBzcGVjaWZ5IHBhdGhzIGZvciBwcm9qZWN0cy4gVXNlZCBpbiBwcm9qZWN0IHJlZmVyZW5jZXMuXCIpLERpc2FibGVfZW1pdHRpbmdfY29tbWVudHM6aSg2Njg4LDMsXCJEaXNhYmxlX2VtaXR0aW5nX2NvbW1lbnRzXzY2ODhcIixcIkRpc2FibGUgZW1pdHRpbmcgY29tbWVudHMuXCIpLEVuYWJsZV9pbXBvcnRpbmdfanNvbl9maWxlczppKDY2ODksMyxcIkVuYWJsZV9pbXBvcnRpbmdfanNvbl9maWxlc182Njg5XCIsXCJFbmFibGUgaW1wb3J0aW5nIC5qc29uIGZpbGVzLlwiKSxTcGVjaWZ5X3RoZV9yb290X2ZvbGRlcl93aXRoaW5feW91cl9zb3VyY2VfZmlsZXM6aSg2NjkwLDMsXCJTcGVjaWZ5X3RoZV9yb290X2ZvbGRlcl93aXRoaW5feW91cl9zb3VyY2VfZmlsZXNfNjY5MFwiLFwiU3BlY2lmeSB0aGUgcm9vdCBmb2xkZXIgd2l0aGluIHlvdXIgc291cmNlIGZpbGVzLlwiKSxBbGxvd19tdWx0aXBsZV9mb2xkZXJzX3RvX2JlX3RyZWF0ZWRfYXNfb25lX3doZW5fcmVzb2x2aW5nX21vZHVsZXM6aSg2NjkxLDMsXCJBbGxvd19tdWx0aXBsZV9mb2xkZXJzX3RvX2JlX3RyZWF0ZWRfYXNfb25lX3doZW5fcmVzb2x2aW5nX21vZHVsZXNfNjY5MVwiLFwiQWxsb3cgbXVsdGlwbGUgZm9sZGVycyB0byBiZSB0cmVhdGVkIGFzIG9uZSB3aGVuIHJlc29sdmluZyBtb2R1bGVzLlwiKSxTa2lwX3R5cGVfY2hlY2tpbmdfZF90c19maWxlc190aGF0X2FyZV9pbmNsdWRlZF93aXRoX1R5cGVTY3JpcHQ6aSg2NjkyLDMsXCJTa2lwX3R5cGVfY2hlY2tpbmdfZF90c19maWxlc190aGF0X2FyZV9pbmNsdWRlZF93aXRoX1R5cGVTY3JpcHRfNjY5MlwiLFwiU2tpcCB0eXBlIGNoZWNraW5nIC5kLnRzIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggVHlwZVNjcmlwdC5cIiksU2tpcF90eXBlX2NoZWNraW5nX2FsbF9kX3RzX2ZpbGVzOmkoNjY5MywzLFwiU2tpcF90eXBlX2NoZWNraW5nX2FsbF9kX3RzX2ZpbGVzXzY2OTNcIixcIlNraXAgdHlwZSBjaGVja2luZyBhbGwgLmQudHMgZmlsZXMuXCIpLENyZWF0ZV9zb3VyY2VfbWFwX2ZpbGVzX2Zvcl9lbWl0dGVkX0phdmFTY3JpcHRfZmlsZXM6aSg2Njk0LDMsXCJDcmVhdGVfc291cmNlX21hcF9maWxlc19mb3JfZW1pdHRlZF9KYXZhU2NyaXB0X2ZpbGVzXzY2OTRcIixcIkNyZWF0ZSBzb3VyY2UgbWFwIGZpbGVzIGZvciBlbWl0dGVkIEphdmFTY3JpcHQgZmlsZXMuXCIpLFNwZWNpZnlfdGhlX3Jvb3RfcGF0aF9mb3JfZGVidWdnZXJzX3RvX2ZpbmRfdGhlX3JlZmVyZW5jZV9zb3VyY2VfY29kZTppKDY2OTUsMyxcIlNwZWNpZnlfdGhlX3Jvb3RfcGF0aF9mb3JfZGVidWdnZXJzX3RvX2ZpbmRfdGhlX3JlZmVyZW5jZV9zb3VyY2VfY29kZV82Njk1XCIsXCJTcGVjaWZ5IHRoZSByb290IHBhdGggZm9yIGRlYnVnZ2VycyB0byBmaW5kIHRoZSByZWZlcmVuY2Ugc291cmNlIGNvZGUuXCIpLENoZWNrX3RoYXRfdGhlX2FyZ3VtZW50c19mb3JfYmluZF9jYWxsX2FuZF9hcHBseV9tZXRob2RzX21hdGNoX3RoZV9vcmlnaW5hbF9mdW5jdGlvbjppKDY2OTcsMyxcIkNoZWNrX3RoYXRfdGhlX2FyZ3VtZW50c19mb3JfYmluZF9jYWxsX2FuZF9hcHBseV9tZXRob2RzX21hdGNoX3RoZV9vcmlnaW5hbF9mdW5jdGlvbl82Njk3XCIsXCJDaGVjayB0aGF0IHRoZSBhcmd1bWVudHMgZm9yICdiaW5kJywgJ2NhbGwnLCBhbmQgJ2FwcGx5JyBtZXRob2RzIG1hdGNoIHRoZSBvcmlnaW5hbCBmdW5jdGlvbi5cIiksV2hlbl9hc3NpZ25pbmdfZnVuY3Rpb25zX2NoZWNrX3RvX2Vuc3VyZV9wYXJhbWV0ZXJzX2FuZF90aGVfcmV0dXJuX3ZhbHVlc19hcmVfc3VidHlwZV9jb21wYXRpYmxlOmkoNjY5OCwzLFwiV2hlbl9hc3NpZ25pbmdfZnVuY3Rpb25zX2NoZWNrX3RvX2Vuc3VyZV9wYXJhbWV0ZXJzX2FuZF90aGVfcmV0dXJuX3ZhbHVlc19hcmVfc3VidHlwZV9jb21wYXRpYmxlXzY2OThcIixcIldoZW4gYXNzaWduaW5nIGZ1bmN0aW9ucywgY2hlY2sgdG8gZW5zdXJlIHBhcmFtZXRlcnMgYW5kIHRoZSByZXR1cm4gdmFsdWVzIGFyZSBzdWJ0eXBlLWNvbXBhdGlibGUuXCIpLFdoZW5fdHlwZV9jaGVja2luZ190YWtlX2ludG9fYWNjb3VudF9udWxsX2FuZF91bmRlZmluZWQ6aSg2Njk5LDMsXCJXaGVuX3R5cGVfY2hlY2tpbmdfdGFrZV9pbnRvX2FjY291bnRfbnVsbF9hbmRfdW5kZWZpbmVkXzY2OTlcIixcIldoZW4gdHlwZSBjaGVja2luZywgdGFrZSBpbnRvIGFjY291bnQgJ251bGwnIGFuZCAndW5kZWZpbmVkJy5cIiksQ2hlY2tfZm9yX2NsYXNzX3Byb3BlcnRpZXNfdGhhdF9hcmVfZGVjbGFyZWRfYnV0X25vdF9zZXRfaW5fdGhlX2NvbnN0cnVjdG9yOmkoNjcwMCwzLFwiQ2hlY2tfZm9yX2NsYXNzX3Byb3BlcnRpZXNfdGhhdF9hcmVfZGVjbGFyZWRfYnV0X25vdF9zZXRfaW5fdGhlX2NvbnN0cnVjdG9yXzY3MDBcIixcIkNoZWNrIGZvciBjbGFzcyBwcm9wZXJ0aWVzIHRoYXQgYXJlIGRlY2xhcmVkIGJ1dCBub3Qgc2V0IGluIHRoZSBjb25zdHJ1Y3Rvci5cIiksRGlzYWJsZV9lbWl0dGluZ19kZWNsYXJhdGlvbnNfdGhhdF9oYXZlX2ludGVybmFsX2luX3RoZWlyX0pTRG9jX2NvbW1lbnRzOmkoNjcwMSwzLFwiRGlzYWJsZV9lbWl0dGluZ19kZWNsYXJhdGlvbnNfdGhhdF9oYXZlX2ludGVybmFsX2luX3RoZWlyX0pTRG9jX2NvbW1lbnRzXzY3MDFcIixcIkRpc2FibGUgZW1pdHRpbmcgZGVjbGFyYXRpb25zIHRoYXQgaGF2ZSAnQGludGVybmFsJyBpbiB0aGVpciBKU0RvYyBjb21tZW50cy5cIiksRGlzYWJsZV9yZXBvcnRpbmdfb2ZfZXhjZXNzX3Byb3BlcnR5X2Vycm9yc19kdXJpbmdfdGhlX2NyZWF0aW9uX29mX29iamVjdF9saXRlcmFsczppKDY3MDIsMyxcIkRpc2FibGVfcmVwb3J0aW5nX29mX2V4Y2Vzc19wcm9wZXJ0eV9lcnJvcnNfZHVyaW5nX3RoZV9jcmVhdGlvbl9vZl9vYmplY3RfbGl0ZXJhbHNfNjcwMlwiLFwiRGlzYWJsZSByZXBvcnRpbmcgb2YgZXhjZXNzIHByb3BlcnR5IGVycm9ycyBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIG9iamVjdCBsaXRlcmFscy5cIiksU3VwcHJlc3Nfbm9JbXBsaWNpdEFueV9lcnJvcnNfd2hlbl9pbmRleGluZ19vYmplY3RzX3RoYXRfbGFja19pbmRleF9zaWduYXR1cmVzOmkoNjcwMywzLFwiU3VwcHJlc3Nfbm9JbXBsaWNpdEFueV9lcnJvcnNfd2hlbl9pbmRleGluZ19vYmplY3RzX3RoYXRfbGFja19pbmRleF9zaWduYXR1cmVzXzY3MDNcIixcIlN1cHByZXNzICdub0ltcGxpY2l0QW55JyBlcnJvcnMgd2hlbiBpbmRleGluZyBvYmplY3RzIHRoYXQgbGFjayBpbmRleCBzaWduYXR1cmVzLlwiKSxTeW5jaHJvbm91c2x5X2NhbGxfY2FsbGJhY2tzX2FuZF91cGRhdGVfdGhlX3N0YXRlX29mX2RpcmVjdG9yeV93YXRjaGVyc19vbl9wbGF0Zm9ybXNfdGhhdF9kb25fdF9zdXBwb3J0X3JlY3Vyc2l2ZV93YXRjaGluZ19uYXRpdmVseTppKDY3MDQsMyxcIlN5bmNocm9ub3VzbHlfY2FsbF9jYWxsYmFja3NfYW5kX3VwZGF0ZV90aGVfc3RhdGVfb2ZfZGlyZWN0b3J5X3dhdGNoZXJzX29uX3BsYXRmb3Jtc190aGF0X2Rvbl90X3N1cHBfNjcwNFwiLFwiU3luY2hyb25vdXNseSBjYWxsIGNhbGxiYWNrcyBhbmQgdXBkYXRlIHRoZSBzdGF0ZSBvZiBkaXJlY3Rvcnkgd2F0Y2hlcnMgb24gcGxhdGZvcm1zIHRoYXQgZG9uYHQgc3VwcG9ydCByZWN1cnNpdmUgd2F0Y2hpbmcgbmF0aXZlbHkuXCIpLFNldF90aGVfSmF2YVNjcmlwdF9sYW5ndWFnZV92ZXJzaW9uX2Zvcl9lbWl0dGVkX0phdmFTY3JpcHRfYW5kX2luY2x1ZGVfY29tcGF0aWJsZV9saWJyYXJ5X2RlY2xhcmF0aW9uczppKDY3MDUsMyxcIlNldF90aGVfSmF2YVNjcmlwdF9sYW5ndWFnZV92ZXJzaW9uX2Zvcl9lbWl0dGVkX0phdmFTY3JpcHRfYW5kX2luY2x1ZGVfY29tcGF0aWJsZV9saWJyYXJ5X2RlY2xhcmF0aW9fNjcwNVwiLFwiU2V0IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHZlcnNpb24gZm9yIGVtaXR0ZWQgSmF2YVNjcmlwdCBhbmQgaW5jbHVkZSBjb21wYXRpYmxlIGxpYnJhcnkgZGVjbGFyYXRpb25zLlwiKSxMb2dfcGF0aHNfdXNlZF9kdXJpbmdfdGhlX21vZHVsZVJlc29sdXRpb25fcHJvY2VzczppKDY3MDYsMyxcIkxvZ19wYXRoc191c2VkX2R1cmluZ190aGVfbW9kdWxlUmVzb2x1dGlvbl9wcm9jZXNzXzY3MDZcIixcIkxvZyBwYXRocyB1c2VkIGR1cmluZyB0aGUgJ21vZHVsZVJlc29sdXRpb24nIHByb2Nlc3MuXCIpLFNwZWNpZnlfdGhlX3BhdGhfdG9fdHNidWlsZGluZm9faW5jcmVtZW50YWxfY29tcGlsYXRpb25fZmlsZTppKDY3MDcsMyxcIlNwZWNpZnlfdGhlX3BhdGhfdG9fdHNidWlsZGluZm9faW5jcmVtZW50YWxfY29tcGlsYXRpb25fZmlsZV82NzA3XCIsXCJTcGVjaWZ5IHRoZSBwYXRoIHRvIC50c2J1aWxkaW5mbyBpbmNyZW1lbnRhbCBjb21waWxhdGlvbiBmaWxlLlwiKSxTcGVjaWZ5X29wdGlvbnNfZm9yX2F1dG9tYXRpY19hY3F1aXNpdGlvbl9vZl9kZWNsYXJhdGlvbl9maWxlczppKDY3MDksMyxcIlNwZWNpZnlfb3B0aW9uc19mb3JfYXV0b21hdGljX2FjcXVpc2l0aW9uX29mX2RlY2xhcmF0aW9uX2ZpbGVzXzY3MDlcIixcIlNwZWNpZnkgb3B0aW9ucyBmb3IgYXV0b21hdGljIGFjcXVpc2l0aW9uIG9mIGRlY2xhcmF0aW9uIGZpbGVzLlwiKSxTcGVjaWZ5X211bHRpcGxlX2ZvbGRlcnNfdGhhdF9hY3RfbGlrZV9TbGFzaG5vZGVfbW9kdWxlc19TbGFzaF90eXBlczppKDY3MTAsMyxcIlNwZWNpZnlfbXVsdGlwbGVfZm9sZGVyc190aGF0X2FjdF9saWtlX1NsYXNobm9kZV9tb2R1bGVzX1NsYXNoX3R5cGVzXzY3MTBcIixcIlNwZWNpZnkgbXVsdGlwbGUgZm9sZGVycyB0aGF0IGFjdCBsaWtlICcuL25vZGVfbW9kdWxlcy9AdHlwZXMnLlwiKSxTcGVjaWZ5X3R5cGVfcGFja2FnZV9uYW1lc190b19iZV9pbmNsdWRlZF93aXRob3V0X2JlaW5nX3JlZmVyZW5jZWRfaW5fYV9zb3VyY2VfZmlsZTppKDY3MTEsMyxcIlNwZWNpZnlfdHlwZV9wYWNrYWdlX25hbWVzX3RvX2JlX2luY2x1ZGVkX3dpdGhvdXRfYmVpbmdfcmVmZXJlbmNlZF9pbl9hX3NvdXJjZV9maWxlXzY3MTFcIixcIlNwZWNpZnkgdHlwZSBwYWNrYWdlIG5hbWVzIHRvIGJlIGluY2x1ZGVkIHdpdGhvdXQgYmVpbmcgcmVmZXJlbmNlZCBpbiBhIHNvdXJjZSBmaWxlLlwiKSxFbWl0X0VDTUFTY3JpcHRfc3RhbmRhcmRfY29tcGxpYW50X2NsYXNzX2ZpZWxkczppKDY3MTIsMyxcIkVtaXRfRUNNQVNjcmlwdF9zdGFuZGFyZF9jb21wbGlhbnRfY2xhc3NfZmllbGRzXzY3MTJcIixcIkVtaXQgRUNNQVNjcmlwdC1zdGFuZGFyZC1jb21wbGlhbnQgY2xhc3MgZmllbGRzLlwiKSxFbmFibGVfdmVyYm9zZV9sb2dnaW5nOmkoNjcxMywzLFwiRW5hYmxlX3ZlcmJvc2VfbG9nZ2luZ182NzEzXCIsXCJFbmFibGUgdmVyYm9zZSBsb2dnaW5nLlwiKSxTcGVjaWZ5X2hvd19kaXJlY3Rvcmllc19hcmVfd2F0Y2hlZF9vbl9zeXN0ZW1zX3RoYXRfbGFja19yZWN1cnNpdmVfZmlsZV93YXRjaGluZ19mdW5jdGlvbmFsaXR5OmkoNjcxNCwzLFwiU3BlY2lmeV9ob3dfZGlyZWN0b3JpZXNfYXJlX3dhdGNoZWRfb25fc3lzdGVtc190aGF0X2xhY2tfcmVjdXJzaXZlX2ZpbGVfd2F0Y2hpbmdfZnVuY3Rpb25hbGl0eV82NzE0XCIsXCJTcGVjaWZ5IGhvdyBkaXJlY3RvcmllcyBhcmUgd2F0Y2hlZCBvbiBzeXN0ZW1zIHRoYXQgbGFjayByZWN1cnNpdmUgZmlsZS13YXRjaGluZyBmdW5jdGlvbmFsaXR5LlwiKSxTcGVjaWZ5X2hvd190aGVfVHlwZVNjcmlwdF93YXRjaF9tb2RlX3dvcmtzOmkoNjcxNSwzLFwiU3BlY2lmeV9ob3dfdGhlX1R5cGVTY3JpcHRfd2F0Y2hfbW9kZV93b3Jrc182NzE1XCIsXCJTcGVjaWZ5IGhvdyB0aGUgVHlwZVNjcmlwdCB3YXRjaCBtb2RlIHdvcmtzLlwiKSxSZXF1aXJlX3VuZGVjbGFyZWRfcHJvcGVydGllc19mcm9tX2luZGV4X3NpZ25hdHVyZXNfdG9fdXNlX2VsZW1lbnRfYWNjZXNzZXM6aSg2NzE3LDMsXCJSZXF1aXJlX3VuZGVjbGFyZWRfcHJvcGVydGllc19mcm9tX2luZGV4X3NpZ25hdHVyZXNfdG9fdXNlX2VsZW1lbnRfYWNjZXNzZXNfNjcxN1wiLFwiUmVxdWlyZSB1bmRlY2xhcmVkIHByb3BlcnRpZXMgZnJvbSBpbmRleCBzaWduYXR1cmVzIHRvIHVzZSBlbGVtZW50IGFjY2Vzc2VzLlwiKSxTcGVjaWZ5X2VtaXRfU2xhc2hjaGVja2luZ19iZWhhdmlvcl9mb3JfaW1wb3J0c190aGF0X2FyZV9vbmx5X3VzZWRfZm9yX3R5cGVzOmkoNjcxOCwzLFwiU3BlY2lmeV9lbWl0X1NsYXNoY2hlY2tpbmdfYmVoYXZpb3JfZm9yX2ltcG9ydHNfdGhhdF9hcmVfb25seV91c2VkX2Zvcl90eXBlc182NzE4XCIsXCJTcGVjaWZ5IGVtaXQvY2hlY2tpbmcgYmVoYXZpb3IgZm9yIGltcG9ydHMgdGhhdCBhcmUgb25seSB1c2VkIGZvciB0eXBlcy5cIiksRGVmYXVsdF9jYXRjaF9jbGF1c2VfdmFyaWFibGVzX2FzX3Vua25vd25faW5zdGVhZF9vZl9hbnk6aSg2ODAzLDMsXCJEZWZhdWx0X2NhdGNoX2NsYXVzZV92YXJpYWJsZXNfYXNfdW5rbm93bl9pbnN0ZWFkX29mX2FueV82ODAzXCIsXCJEZWZhdWx0IGNhdGNoIGNsYXVzZSB2YXJpYWJsZXMgYXMgJ3Vua25vd24nIGluc3RlYWQgb2YgJ2FueScuXCIpLERvX25vdF90cmFuc2Zvcm1fb3JfZWxpZGVfYW55X2ltcG9ydHNfb3JfZXhwb3J0c19ub3RfbWFya2VkX2FzX3R5cGVfb25seV9lbnN1cmluZ190aGV5X2FyZV93cml0dGVuX2luX3RoZV9vdXRwdXRfZmlsZV9zX2Zvcm1hdF9iYXNlZF9vbl90aGVfbW9kdWxlX3NldHRpbmc6aSg2ODA0LDMsXCJEb19ub3RfdHJhbnNmb3JtX29yX2VsaWRlX2FueV9pbXBvcnRzX29yX2V4cG9ydHNfbm90X21hcmtlZF9hc190eXBlX29ubHlfZW5zdXJpbmdfdGhleV9hcmVfd3JpdHRlbl9pXzY4MDRcIixcIkRvIG5vdCB0cmFuc2Zvcm0gb3IgZWxpZGUgYW55IGltcG9ydHMgb3IgZXhwb3J0cyBub3QgbWFya2VkIGFzIHR5cGUtb25seSwgZW5zdXJpbmcgdGhleSBhcmUgd3JpdHRlbiBpbiB0aGUgb3V0cHV0IGZpbGUncyBmb3JtYXQgYmFzZWQgb24gdGhlICdtb2R1bGUnIHNldHRpbmcuXCIpLG9uZV9vZl9Db2xvbjppKDY5MDAsMyxcIm9uZV9vZl9Db2xvbl82OTAwXCIsXCJvbmUgb2Y6XCIpLG9uZV9vcl9tb3JlX0NvbG9uOmkoNjkwMSwzLFwib25lX29yX21vcmVfQ29sb25fNjkwMVwiLFwib25lIG9yIG1vcmU6XCIpLHR5cGVfQ29sb246aSg2OTAyLDMsXCJ0eXBlX0NvbG9uXzY5MDJcIixcInR5cGU6XCIpLGRlZmF1bHRfQ29sb246aSg2OTAzLDMsXCJkZWZhdWx0X0NvbG9uXzY5MDNcIixcImRlZmF1bHQ6XCIpLG1vZHVsZV9zeXN0ZW1fb3JfZXNNb2R1bGVJbnRlcm9wOmkoNjkwNCwzLFwibW9kdWxlX3N5c3RlbV9vcl9lc01vZHVsZUludGVyb3BfNjkwNFwiLCdtb2R1bGUgPT09IFwic3lzdGVtXCIgb3IgZXNNb2R1bGVJbnRlcm9wJyksZmFsc2VfdW5sZXNzX3N0cmljdF9pc19zZXQ6aSg2OTA1LDMsXCJmYWxzZV91bmxlc3Nfc3RyaWN0X2lzX3NldF82OTA1XCIsXCJgZmFsc2VgLCB1bmxlc3MgYHN0cmljdGAgaXMgc2V0XCIpLGZhbHNlX3VubGVzc19jb21wb3NpdGVfaXNfc2V0OmkoNjkwNiwzLFwiZmFsc2VfdW5sZXNzX2NvbXBvc2l0ZV9pc19zZXRfNjkwNlwiLFwiYGZhbHNlYCwgdW5sZXNzIGBjb21wb3NpdGVgIGlzIHNldFwiKSxub2RlX21vZHVsZXNfYm93ZXJfY29tcG9uZW50c19qc3BtX3BhY2thZ2VzX3BsdXNfdGhlX3ZhbHVlX29mX291dERpcl9pZl9vbmVfaXNfc3BlY2lmaWVkOmkoNjkwNywzLFwibm9kZV9tb2R1bGVzX2Jvd2VyX2NvbXBvbmVudHNfanNwbV9wYWNrYWdlc19wbHVzX3RoZV92YWx1ZV9vZl9vdXREaXJfaWZfb25lX2lzX3NwZWNpZmllZF82OTA3XCIsJ2BbXCJub2RlX21vZHVsZXNcIiwgXCJib3dlcl9jb21wb25lbnRzXCIsIFwianNwbV9wYWNrYWdlc1wiXWAsIHBsdXMgdGhlIHZhbHVlIG9mIGBvdXREaXJgIGlmIG9uZSBpcyBzcGVjaWZpZWQuJyksaWZfZmlsZXNfaXNfc3BlY2lmaWVkX290aGVyd2lzZV9Bc3Rlcmlza19Bc3Rlcmlza19TbGFzaF9Bc3RlcmlzazppKDY5MDgsMyxcImlmX2ZpbGVzX2lzX3NwZWNpZmllZF9vdGhlcndpc2VfQXN0ZXJpc2tfQXN0ZXJpc2tfU2xhc2hfQXN0ZXJpc2tfNjkwOFwiLCdgW11gIGlmIGBmaWxlc2AgaXMgc3BlY2lmaWVkLCBvdGhlcndpc2UgYFtcIioqLypcIl1gJyksdHJ1ZV9pZl9jb21wb3NpdGVfZmFsc2Vfb3RoZXJ3aXNlOmkoNjkwOSwzLFwidHJ1ZV9pZl9jb21wb3NpdGVfZmFsc2Vfb3RoZXJ3aXNlXzY5MDlcIixcImB0cnVlYCBpZiBgY29tcG9zaXRlYCwgYGZhbHNlYCBvdGhlcndpc2VcIiksbW9kdWxlX0FNRF9vcl9VTURfb3JfU3lzdGVtX29yX0VTNl90aGVuX0NsYXNzaWNfT3RoZXJ3aXNlX05vZGU6aSg2OTAxMCwzLFwibW9kdWxlX0FNRF9vcl9VTURfb3JfU3lzdGVtX29yX0VTNl90aGVuX0NsYXNzaWNfT3RoZXJ3aXNlX05vZGVfNjkwMTBcIixcIm1vZHVsZSA9PT0gYEFNRGAgb3IgYFVNRGAgb3IgYFN5c3RlbWAgb3IgYEVTNmAsIHRoZW4gYENsYXNzaWNgLCBPdGhlcndpc2UgYE5vZGVgXCIpLENvbXB1dGVkX2Zyb21fdGhlX2xpc3Rfb2ZfaW5wdXRfZmlsZXM6aSg2OTExLDMsXCJDb21wdXRlZF9mcm9tX3RoZV9saXN0X29mX2lucHV0X2ZpbGVzXzY5MTFcIixcIkNvbXB1dGVkIGZyb20gdGhlIGxpc3Qgb2YgaW5wdXQgZmlsZXNcIiksUGxhdGZvcm1fc3BlY2lmaWM6aSg2OTEyLDMsXCJQbGF0Zm9ybV9zcGVjaWZpY182OTEyXCIsXCJQbGF0Zm9ybSBzcGVjaWZpY1wiKSxZb3VfY2FuX2xlYXJuX2Fib3V0X2FsbF9vZl90aGVfY29tcGlsZXJfb3B0aW9uc19hdF8wOmkoNjkxMywzLFwiWW91X2Nhbl9sZWFybl9hYm91dF9hbGxfb2ZfdGhlX2NvbXBpbGVyX29wdGlvbnNfYXRfMF82OTEzXCIsXCJZb3UgY2FuIGxlYXJuIGFib3V0IGFsbCBvZiB0aGUgY29tcGlsZXIgb3B0aW9ucyBhdCB7MH1cIiksSW5jbHVkaW5nX3dhdGNoX3dfd2lsbF9zdGFydF93YXRjaGluZ190aGVfY3VycmVudF9wcm9qZWN0X2Zvcl90aGVfZmlsZV9jaGFuZ2VzX09uY2Vfc2V0X3lvdV9jYW5fY29uZmlnX3dhdGNoX21vZGVfd2l0aF9Db2xvbjppKDY5MTQsMyxcIkluY2x1ZGluZ193YXRjaF93X3dpbGxfc3RhcnRfd2F0Y2hpbmdfdGhlX2N1cnJlbnRfcHJvamVjdF9mb3JfdGhlX2ZpbGVfY2hhbmdlc19PbmNlX3NldF95b3VfY2FuX2NvbmZfNjkxNFwiLFwiSW5jbHVkaW5nIC0td2F0Y2gsIC13IHdpbGwgc3RhcnQgd2F0Y2hpbmcgdGhlIGN1cnJlbnQgcHJvamVjdCBmb3IgdGhlIGZpbGUgY2hhbmdlcy4gT25jZSBzZXQsIHlvdSBjYW4gY29uZmlnIHdhdGNoIG1vZGUgd2l0aDpcIiksVXNpbmdfYnVpbGRfYl93aWxsX21ha2VfdHNjX2JlaGF2ZV9tb3JlX2xpa2VfYV9idWlsZF9vcmNoZXN0cmF0b3JfdGhhbl9hX2NvbXBpbGVyX1RoaXNfaXNfdXNlZF90b190cmlnZ2VyX2J1aWxkaW5nX2NvbXBvc2l0ZV9wcm9qZWN0c193aGljaF95b3VfY2FuX2xlYXJuX21vcmVfYWJvdXRfYXRfMDppKDY5MTUsMyxcIlVzaW5nX2J1aWxkX2Jfd2lsbF9tYWtlX3RzY19iZWhhdmVfbW9yZV9saWtlX2FfYnVpbGRfb3JjaGVzdHJhdG9yX3RoYW5fYV9jb21waWxlcl9UaGlzX2lzX3VzZWRfdG9fdHJfNjkxNVwiLFwiVXNpbmcgLS1idWlsZCwgLWIgd2lsbCBtYWtlIHRzYyBiZWhhdmUgbW9yZSBsaWtlIGEgYnVpbGQgb3JjaGVzdHJhdG9yIHRoYW4gYSBjb21waWxlci4gVGhpcyBpcyB1c2VkIHRvIHRyaWdnZXIgYnVpbGRpbmcgY29tcG9zaXRlIHByb2plY3RzIHdoaWNoIHlvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCBhdCB7MH1cIiksQ09NTU9OX0NPTU1BTkRTOmkoNjkxNiwzLFwiQ09NTU9OX0NPTU1BTkRTXzY5MTZcIixcIkNPTU1PTiBDT01NQU5EU1wiKSxBTExfQ09NUElMRVJfT1BUSU9OUzppKDY5MTcsMyxcIkFMTF9DT01QSUxFUl9PUFRJT05TXzY5MTdcIixcIkFMTCBDT01QSUxFUiBPUFRJT05TXCIpLFdBVENIX09QVElPTlM6aSg2OTE4LDMsXCJXQVRDSF9PUFRJT05TXzY5MThcIixcIldBVENIIE9QVElPTlNcIiksQlVJTERfT1BUSU9OUzppKDY5MTksMyxcIkJVSUxEX09QVElPTlNfNjkxOVwiLFwiQlVJTEQgT1BUSU9OU1wiKSxDT01NT05fQ09NUElMRVJfT1BUSU9OUzppKDY5MjAsMyxcIkNPTU1PTl9DT01QSUxFUl9PUFRJT05TXzY5MjBcIixcIkNPTU1PTiBDT01QSUxFUiBPUFRJT05TXCIpLENPTU1BTkRfTElORV9GTEFHUzppKDY5MjEsMyxcIkNPTU1BTkRfTElORV9GTEFHU182OTIxXCIsXCJDT01NQU5EIExJTkUgRkxBR1NcIiksdHNjX0NvbG9uX1RoZV9UeXBlU2NyaXB0X0NvbXBpbGVyOmkoNjkyMiwzLFwidHNjX0NvbG9uX1RoZV9UeXBlU2NyaXB0X0NvbXBpbGVyXzY5MjJcIixcInRzYzogVGhlIFR5cGVTY3JpcHQgQ29tcGlsZXJcIiksQ29tcGlsZXNfdGhlX2N1cnJlbnRfcHJvamVjdF90c2NvbmZpZ19qc29uX2luX3RoZV93b3JraW5nX2RpcmVjdG9yeTppKDY5MjMsMyxcIkNvbXBpbGVzX3RoZV9jdXJyZW50X3Byb2plY3RfdHNjb25maWdfanNvbl9pbl90aGVfd29ya2luZ19kaXJlY3RvcnlfNjkyM1wiLFwiQ29tcGlsZXMgdGhlIGN1cnJlbnQgcHJvamVjdCAodHNjb25maWcuanNvbiBpbiB0aGUgd29ya2luZyBkaXJlY3RvcnkuKVwiKSxJZ25vcmluZ190c2NvbmZpZ19qc29uX2NvbXBpbGVzX3RoZV9zcGVjaWZpZWRfZmlsZXNfd2l0aF9kZWZhdWx0X2NvbXBpbGVyX29wdGlvbnM6aSg2OTI0LDMsXCJJZ25vcmluZ190c2NvbmZpZ19qc29uX2NvbXBpbGVzX3RoZV9zcGVjaWZpZWRfZmlsZXNfd2l0aF9kZWZhdWx0X2NvbXBpbGVyX29wdGlvbnNfNjkyNFwiLFwiSWdub3JpbmcgdHNjb25maWcuanNvbiwgY29tcGlsZXMgdGhlIHNwZWNpZmllZCBmaWxlcyB3aXRoIGRlZmF1bHQgY29tcGlsZXIgb3B0aW9ucy5cIiksQnVpbGRfYV9jb21wb3NpdGVfcHJvamVjdF9pbl90aGVfd29ya2luZ19kaXJlY3Rvcnk6aSg2OTI1LDMsXCJCdWlsZF9hX2NvbXBvc2l0ZV9wcm9qZWN0X2luX3RoZV93b3JraW5nX2RpcmVjdG9yeV82OTI1XCIsXCJCdWlsZCBhIGNvbXBvc2l0ZSBwcm9qZWN0IGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cIiksQ3JlYXRlc19hX3RzY29uZmlnX2pzb25fd2l0aF90aGVfcmVjb21tZW5kZWRfc2V0dGluZ3NfaW5fdGhlX3dvcmtpbmdfZGlyZWN0b3J5OmkoNjkyNiwzLFwiQ3JlYXRlc19hX3RzY29uZmlnX2pzb25fd2l0aF90aGVfcmVjb21tZW5kZWRfc2V0dGluZ3NfaW5fdGhlX3dvcmtpbmdfZGlyZWN0b3J5XzY5MjZcIixcIkNyZWF0ZXMgYSB0c2NvbmZpZy5qc29uIHdpdGggdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeS5cIiksQ29tcGlsZXNfdGhlX1R5cGVTY3JpcHRfcHJvamVjdF9sb2NhdGVkX2F0X3RoZV9zcGVjaWZpZWRfcGF0aDppKDY5MjcsMyxcIkNvbXBpbGVzX3RoZV9UeXBlU2NyaXB0X3Byb2plY3RfbG9jYXRlZF9hdF90aGVfc3BlY2lmaWVkX3BhdGhfNjkyN1wiLFwiQ29tcGlsZXMgdGhlIFR5cGVTY3JpcHQgcHJvamVjdCBsb2NhdGVkIGF0IHRoZSBzcGVjaWZpZWQgcGF0aC5cIiksQW5fZXhwYW5kZWRfdmVyc2lvbl9vZl90aGlzX2luZm9ybWF0aW9uX3Nob3dpbmdfYWxsX3Bvc3NpYmxlX2NvbXBpbGVyX29wdGlvbnM6aSg2OTI4LDMsXCJBbl9leHBhbmRlZF92ZXJzaW9uX29mX3RoaXNfaW5mb3JtYXRpb25fc2hvd2luZ19hbGxfcG9zc2libGVfY29tcGlsZXJfb3B0aW9uc182OTI4XCIsXCJBbiBleHBhbmRlZCB2ZXJzaW9uIG9mIHRoaXMgaW5mb3JtYXRpb24sIHNob3dpbmcgYWxsIHBvc3NpYmxlIGNvbXBpbGVyIG9wdGlvbnNcIiksQ29tcGlsZXNfdGhlX2N1cnJlbnRfcHJvamVjdF93aXRoX2FkZGl0aW9uYWxfc2V0dGluZ3M6aSg2OTI5LDMsXCJDb21waWxlc190aGVfY3VycmVudF9wcm9qZWN0X3dpdGhfYWRkaXRpb25hbF9zZXR0aW5nc182OTI5XCIsXCJDb21waWxlcyB0aGUgY3VycmVudCBwcm9qZWN0LCB3aXRoIGFkZGl0aW9uYWwgc2V0dGluZ3MuXCIpLHRydWVfZm9yX0VTMjAyMl9hbmRfYWJvdmVfaW5jbHVkaW5nX0VTTmV4dDppKDY5MzAsMyxcInRydWVfZm9yX0VTMjAyMl9hbmRfYWJvdmVfaW5jbHVkaW5nX0VTTmV4dF82OTMwXCIsXCJgdHJ1ZWAgZm9yIEVTMjAyMiBhbmQgYWJvdmUsIGluY2x1ZGluZyBFU05leHQuXCIpLExpc3Rfb2ZfZmlsZV9uYW1lX3N1ZmZpeGVzX3RvX3NlYXJjaF93aGVuX3Jlc29sdmluZ19hX21vZHVsZTppKDY5MzEsMSxcIkxpc3Rfb2ZfZmlsZV9uYW1lX3N1ZmZpeGVzX3RvX3NlYXJjaF93aGVuX3Jlc29sdmluZ19hX21vZHVsZV82OTMxXCIsXCJMaXN0IG9mIGZpbGUgbmFtZSBzdWZmaXhlcyB0byBzZWFyY2ggd2hlbiByZXNvbHZpbmcgYSBtb2R1bGUuXCIpLFZhcmlhYmxlXzBfaW1wbGljaXRseV9oYXNfYW5fMV90eXBlOmkoNzAwNSwxLFwiVmFyaWFibGVfMF9pbXBsaWNpdGx5X2hhc19hbl8xX3R5cGVfNzAwNVwiLFwiVmFyaWFibGUgJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgdHlwZS5cIiksUGFyYW1ldGVyXzBfaW1wbGljaXRseV9oYXNfYW5fMV90eXBlOmkoNzAwNiwxLFwiUGFyYW1ldGVyXzBfaW1wbGljaXRseV9oYXNfYW5fMV90eXBlXzcwMDZcIixcIlBhcmFtZXRlciAnezB9JyBpbXBsaWNpdGx5IGhhcyBhbiAnezF9JyB0eXBlLlwiKSxNZW1iZXJfMF9pbXBsaWNpdGx5X2hhc19hbl8xX3R5cGU6aSg3MDA4LDEsXCJNZW1iZXJfMF9pbXBsaWNpdGx5X2hhc19hbl8xX3R5cGVfNzAwOFwiLFwiTWVtYmVyICd7MH0nIGltcGxpY2l0bHkgaGFzIGFuICd7MX0nIHR5cGUuXCIpLG5ld19leHByZXNzaW9uX3dob3NlX3RhcmdldF9sYWNrc19hX2NvbnN0cnVjdF9zaWduYXR1cmVfaW1wbGljaXRseV9oYXNfYW5fYW55X3R5cGU6aSg3MDA5LDEsXCJuZXdfZXhwcmVzc2lvbl93aG9zZV90YXJnZXRfbGFja3NfYV9jb25zdHJ1Y3Rfc2lnbmF0dXJlX2ltcGxpY2l0bHlfaGFzX2FuX2FueV90eXBlXzcwMDlcIixcIiduZXcnIGV4cHJlc3Npb24sIHdob3NlIHRhcmdldCBsYWNrcyBhIGNvbnN0cnVjdCBzaWduYXR1cmUsIGltcGxpY2l0bHkgaGFzIGFuICdhbnknIHR5cGUuXCIpLF8wX3doaWNoX2xhY2tzX3JldHVybl90eXBlX2Fubm90YXRpb25faW1wbGljaXRseV9oYXNfYW5fMV9yZXR1cm5fdHlwZTppKDcwMTAsMSxcIl8wX3doaWNoX2xhY2tzX3JldHVybl90eXBlX2Fubm90YXRpb25faW1wbGljaXRseV9oYXNfYW5fMV9yZXR1cm5fdHlwZV83MDEwXCIsXCInezB9Jywgd2hpY2ggbGFja3MgcmV0dXJuLXR5cGUgYW5ub3RhdGlvbiwgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgcmV0dXJuIHR5cGUuXCIpLEZ1bmN0aW9uX2V4cHJlc3Npb25fd2hpY2hfbGFja3NfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9pbXBsaWNpdGx5X2hhc19hbl8wX3JldHVybl90eXBlOmkoNzAxMSwxLFwiRnVuY3Rpb25fZXhwcmVzc2lvbl93aGljaF9sYWNrc19yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2ltcGxpY2l0bHlfaGFzX2FuXzBfcmV0dXJuX3R5cGVfNzAxMVwiLFwiRnVuY3Rpb24gZXhwcmVzc2lvbiwgd2hpY2ggbGFja3MgcmV0dXJuLXR5cGUgYW5ub3RhdGlvbiwgaW1wbGljaXRseSBoYXMgYW4gJ3swfScgcmV0dXJuIHR5cGUuXCIpLFRoaXNfb3ZlcmxvYWRfaW1wbGljaXRseV9yZXR1cm5zX3RoZV90eXBlXzBfYmVjYXVzZV9pdF9sYWNrc19hX3JldHVybl90eXBlX2Fubm90YXRpb246aSg3MDEyLDEsXCJUaGlzX292ZXJsb2FkX2ltcGxpY2l0bHlfcmV0dXJuc190aGVfdHlwZV8wX2JlY2F1c2VfaXRfbGFja3NfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uXzcwMTJcIixcIlRoaXMgb3ZlcmxvYWQgaW1wbGljaXRseSByZXR1cm5zIHRoZSB0eXBlICd7MH0nIGJlY2F1c2UgaXQgbGFja3MgYSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLlwiKSxDb25zdHJ1Y3Rfc2lnbmF0dXJlX3doaWNoX2xhY2tzX3JldHVybl90eXBlX2Fubm90YXRpb25faW1wbGljaXRseV9oYXNfYW5fYW55X3JldHVybl90eXBlOmkoNzAxMywxLFwiQ29uc3RydWN0X3NpZ25hdHVyZV93aGljaF9sYWNrc19yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2ltcGxpY2l0bHlfaGFzX2FuX2FueV9yZXR1cm5fdHlwZV83MDEzXCIsXCJDb25zdHJ1Y3Qgc2lnbmF0dXJlLCB3aGljaCBsYWNrcyByZXR1cm4tdHlwZSBhbm5vdGF0aW9uLCBpbXBsaWNpdGx5IGhhcyBhbiAnYW55JyByZXR1cm4gdHlwZS5cIiksRnVuY3Rpb25fdHlwZV93aGljaF9sYWNrc19yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2ltcGxpY2l0bHlfaGFzX2FuXzBfcmV0dXJuX3R5cGU6aSg3MDE0LDEsXCJGdW5jdGlvbl90eXBlX3doaWNoX2xhY2tzX3JldHVybl90eXBlX2Fubm90YXRpb25faW1wbGljaXRseV9oYXNfYW5fMF9yZXR1cm5fdHlwZV83MDE0XCIsXCJGdW5jdGlvbiB0eXBlLCB3aGljaCBsYWNrcyByZXR1cm4tdHlwZSBhbm5vdGF0aW9uLCBpbXBsaWNpdGx5IGhhcyBhbiAnezB9JyByZXR1cm4gdHlwZS5cIiksRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX2luZGV4X2V4cHJlc3Npb25faXNfbm90X29mX3R5cGVfbnVtYmVyOmkoNzAxNSwxLFwiRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX2luZGV4X2V4cHJlc3Npb25faXNfbm90X29mX3R5cGVfbnVtYmVyXzcwMTVcIixcIkVsZW1lbnQgaW1wbGljaXRseSBoYXMgYW4gJ2FueScgdHlwZSBiZWNhdXNlIGluZGV4IGV4cHJlc3Npb24gaXMgbm90IG9mIHR5cGUgJ251bWJlcicuXCIpLENvdWxkX25vdF9maW5kX2FfZGVjbGFyYXRpb25fZmlsZV9mb3JfbW9kdWxlXzBfMV9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZTppKDcwMTYsMSxcIkNvdWxkX25vdF9maW5kX2FfZGVjbGFyYXRpb25fZmlsZV9mb3JfbW9kdWxlXzBfMV9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV83MDE2XCIsXCJDb3VsZCBub3QgZmluZCBhIGRlY2xhcmF0aW9uIGZpbGUgZm9yIG1vZHVsZSAnezB9Jy4gJ3sxfScgaW1wbGljaXRseSBoYXMgYW4gJ2FueScgdHlwZS5cIiksRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX3R5cGVfMF9oYXNfbm9faW5kZXhfc2lnbmF0dXJlOmkoNzAxNywxLFwiRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX3R5cGVfMF9oYXNfbm9faW5kZXhfc2lnbmF0dXJlXzcwMTdcIixcIkVsZW1lbnQgaW1wbGljaXRseSBoYXMgYW4gJ2FueScgdHlwZSBiZWNhdXNlIHR5cGUgJ3swfScgaGFzIG5vIGluZGV4IHNpZ25hdHVyZS5cIiksT2JqZWN0X2xpdGVyYWxfc19wcm9wZXJ0eV8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZTppKDcwMTgsMSxcIk9iamVjdF9saXRlcmFsX3NfcHJvcGVydHlfMF9pbXBsaWNpdGx5X2hhc19hbl8xX3R5cGVfNzAxOFwiLFwiT2JqZWN0IGxpdGVyYWwncyBwcm9wZXJ0eSAnezB9JyBpbXBsaWNpdGx5IGhhcyBhbiAnezF9JyB0eXBlLlwiKSxSZXN0X3BhcmFtZXRlcl8wX2ltcGxpY2l0bHlfaGFzX2FuX2FueV90eXBlOmkoNzAxOSwxLFwiUmVzdF9wYXJhbWV0ZXJfMF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV83MDE5XCIsXCJSZXN0IHBhcmFtZXRlciAnezB9JyBpbXBsaWNpdGx5IGhhcyBhbiAnYW55W10nIHR5cGUuXCIpLENhbGxfc2lnbmF0dXJlX3doaWNoX2xhY2tzX3JldHVybl90eXBlX2Fubm90YXRpb25faW1wbGljaXRseV9oYXNfYW5fYW55X3JldHVybl90eXBlOmkoNzAyMCwxLFwiQ2FsbF9zaWduYXR1cmVfd2hpY2hfbGFja3NfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9pbXBsaWNpdGx5X2hhc19hbl9hbnlfcmV0dXJuX3R5cGVfNzAyMFwiLFwiQ2FsbCBzaWduYXR1cmUsIHdoaWNoIGxhY2tzIHJldHVybi10eXBlIGFubm90YXRpb24sIGltcGxpY2l0bHkgaGFzIGFuICdhbnknIHJldHVybiB0eXBlLlwiKSxfMF9pbXBsaWNpdGx5X2hhc190eXBlX2FueV9iZWNhdXNlX2l0X2RvZXNfbm90X2hhdmVfYV90eXBlX2Fubm90YXRpb25fYW5kX2lzX3JlZmVyZW5jZWRfZGlyZWN0bHlfb3JfaW5kaXJlY3RseV9pbl9pdHNfb3duX2luaXRpYWxpemVyOmkoNzAyMiwxLFwiXzBfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYmVjYXVzZV9pdF9kb2VzX25vdF9oYXZlX2FfdHlwZV9hbm5vdGF0aW9uX2FuZF9pc19yZWZlcmVuY2VkX2RpcmVjdGx5X29yX183MDIyXCIsXCInezB9JyBpbXBsaWNpdGx5IGhhcyB0eXBlICdhbnknIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHR5cGUgYW5ub3RhdGlvbiBhbmQgaXMgcmVmZXJlbmNlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluIGl0cyBvd24gaW5pdGlhbGl6ZXIuXCIpLF8wX2ltcGxpY2l0bHlfaGFzX3JldHVybl90eXBlX2FueV9iZWNhdXNlX2l0X2RvZXNfbm90X2hhdmVfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2FuZF9pc19yZWZlcmVuY2VkX2RpcmVjdGx5X29yX2luZGlyZWN0bHlfaW5fb25lX29mX2l0c19yZXR1cm5fZXhwcmVzc2lvbnM6aSg3MDIzLDEsXCJfMF9pbXBsaWNpdGx5X2hhc19yZXR1cm5fdHlwZV9hbnlfYmVjYXVzZV9pdF9kb2VzX25vdF9oYXZlX2FfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9hbmRfaXNfcmVmZXJlbmNlXzcwMjNcIixcIid7MH0nIGltcGxpY2l0bHkgaGFzIHJldHVybiB0eXBlICdhbnknIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJldHVybiB0eXBlIGFubm90YXRpb24gYW5kIGlzIHJlZmVyZW5jZWQgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbiBvbmUgb2YgaXRzIHJldHVybiBleHByZXNzaW9ucy5cIiksRnVuY3Rpb25faW1wbGljaXRseV9oYXNfcmV0dXJuX3R5cGVfYW55X2JlY2F1c2VfaXRfZG9lc19ub3RfaGF2ZV9hX3JldHVybl90eXBlX2Fubm90YXRpb25fYW5kX2lzX3JlZmVyZW5jZWRfZGlyZWN0bHlfb3JfaW5kaXJlY3RseV9pbl9vbmVfb2ZfaXRzX3JldHVybl9leHByZXNzaW9uczppKDcwMjQsMSxcIkZ1bmN0aW9uX2ltcGxpY2l0bHlfaGFzX3JldHVybl90eXBlX2FueV9iZWNhdXNlX2l0X2RvZXNfbm90X2hhdmVfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2FuZF9pc19yZWZfNzAyNFwiLFwiRnVuY3Rpb24gaW1wbGljaXRseSBoYXMgcmV0dXJuIHR5cGUgJ2FueScgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbiBhbmQgaXMgcmVmZXJlbmNlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGluIG9uZSBvZiBpdHMgcmV0dXJuIGV4cHJlc3Npb25zLlwiKSxHZW5lcmF0b3JfaW1wbGljaXRseV9oYXNfeWllbGRfdHlwZV8wX2JlY2F1c2VfaXRfZG9lc19ub3RfeWllbGRfYW55X3ZhbHVlc19Db25zaWRlcl9zdXBwbHlpbmdfYV9yZXR1cm5fdHlwZV9hbm5vdGF0aW9uOmkoNzAyNSwxLFwiR2VuZXJhdG9yX2ltcGxpY2l0bHlfaGFzX3lpZWxkX3R5cGVfMF9iZWNhdXNlX2l0X2RvZXNfbm90X3lpZWxkX2FueV92YWx1ZXNfQ29uc2lkZXJfc3VwcGx5aW5nX2FfcmV0dV83MDI1XCIsXCJHZW5lcmF0b3IgaW1wbGljaXRseSBoYXMgeWllbGQgdHlwZSAnezB9JyBiZWNhdXNlIGl0IGRvZXMgbm90IHlpZWxkIGFueSB2YWx1ZXMuIENvbnNpZGVyIHN1cHBseWluZyBhIHJldHVybiB0eXBlIGFubm90YXRpb24uXCIpLEpTWF9lbGVtZW50X2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2JlY2F1c2Vfbm9faW50ZXJmYWNlX0pTWF8wX2V4aXN0czppKDcwMjYsMSxcIkpTWF9lbGVtZW50X2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2JlY2F1c2Vfbm9faW50ZXJmYWNlX0pTWF8wX2V4aXN0c183MDI2XCIsXCJKU1ggZWxlbWVudCBpbXBsaWNpdGx5IGhhcyB0eXBlICdhbnknIGJlY2F1c2Ugbm8gaW50ZXJmYWNlICdKU1guezB9JyBleGlzdHMuXCIpLFVucmVhY2hhYmxlX2NvZGVfZGV0ZWN0ZWQ6aSg3MDI3LDEsXCJVbnJlYWNoYWJsZV9jb2RlX2RldGVjdGVkXzcwMjdcIixcIlVucmVhY2hhYmxlIGNvZGUgZGV0ZWN0ZWQuXCIsITApLFVudXNlZF9sYWJlbDppKDcwMjgsMSxcIlVudXNlZF9sYWJlbF83MDI4XCIsXCJVbnVzZWQgbGFiZWwuXCIsITApLEZhbGx0aHJvdWdoX2Nhc2VfaW5fc3dpdGNoOmkoNzAyOSwxLFwiRmFsbHRocm91Z2hfY2FzZV9pbl9zd2l0Y2hfNzAyOVwiLFwiRmFsbHRocm91Z2ggY2FzZSBpbiBzd2l0Y2guXCIpLE5vdF9hbGxfY29kZV9wYXRoc19yZXR1cm5fYV92YWx1ZTppKDcwMzAsMSxcIk5vdF9hbGxfY29kZV9wYXRoc19yZXR1cm5fYV92YWx1ZV83MDMwXCIsXCJOb3QgYWxsIGNvZGUgcGF0aHMgcmV0dXJuIGEgdmFsdWUuXCIpLEJpbmRpbmdfZWxlbWVudF8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZTppKDcwMzEsMSxcIkJpbmRpbmdfZWxlbWVudF8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZV83MDMxXCIsXCJCaW5kaW5nIGVsZW1lbnQgJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgdHlwZS5cIiksUHJvcGVydHlfMF9pbXBsaWNpdGx5X2hhc190eXBlX2FueV9iZWNhdXNlX2l0c19zZXRfYWNjZXNzb3JfbGFja3NfYV9wYXJhbWV0ZXJfdHlwZV9hbm5vdGF0aW9uOmkoNzAzMiwxLFwiUHJvcGVydHlfMF9pbXBsaWNpdGx5X2hhc190eXBlX2FueV9iZWNhdXNlX2l0c19zZXRfYWNjZXNzb3JfbGFja3NfYV9wYXJhbWV0ZXJfdHlwZV9hbm5vdGF0aW9uXzcwMzJcIixcIlByb3BlcnR5ICd7MH0nIGltcGxpY2l0bHkgaGFzIHR5cGUgJ2FueScsIGJlY2F1c2UgaXRzIHNldCBhY2Nlc3NvciBsYWNrcyBhIHBhcmFtZXRlciB0eXBlIGFubm90YXRpb24uXCIpLFByb3BlcnR5XzBfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYmVjYXVzZV9pdHNfZ2V0X2FjY2Vzc29yX2xhY2tzX2FfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbjppKDcwMzMsMSxcIlByb3BlcnR5XzBfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYmVjYXVzZV9pdHNfZ2V0X2FjY2Vzc29yX2xhY2tzX2FfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbl83MDMzXCIsXCJQcm9wZXJ0eSAnezB9JyBpbXBsaWNpdGx5IGhhcyB0eXBlICdhbnknLCBiZWNhdXNlIGl0cyBnZXQgYWNjZXNzb3IgbGFja3MgYSByZXR1cm4gdHlwZSBhbm5vdGF0aW9uLlwiKSxWYXJpYWJsZV8wX2ltcGxpY2l0bHlfaGFzX3R5cGVfMV9pbl9zb21lX2xvY2F0aW9uc193aGVyZV9pdHNfdHlwZV9jYW5ub3RfYmVfZGV0ZXJtaW5lZDppKDcwMzQsMSxcIlZhcmlhYmxlXzBfaW1wbGljaXRseV9oYXNfdHlwZV8xX2luX3NvbWVfbG9jYXRpb25zX3doZXJlX2l0c190eXBlX2Nhbm5vdF9iZV9kZXRlcm1pbmVkXzcwMzRcIixcIlZhcmlhYmxlICd7MH0nIGltcGxpY2l0bHkgaGFzIHR5cGUgJ3sxfScgaW4gc29tZSBsb2NhdGlvbnMgd2hlcmUgaXRzIHR5cGUgY2Fubm90IGJlIGRldGVybWluZWQuXCIpLFRyeV9ucG1faV9zYXZlX2Rldl90eXBlc19TbGFzaF8xX2lmX2l0X2V4aXN0c19vcl9hZGRfYV9uZXdfZGVjbGFyYXRpb25fZF90c19maWxlX2NvbnRhaW5pbmdfZGVjbGFyZV9tb2R1bGVfMDppKDcwMzUsMSxcIlRyeV9ucG1faV9zYXZlX2Rldl90eXBlc19TbGFzaF8xX2lmX2l0X2V4aXN0c19vcl9hZGRfYV9uZXdfZGVjbGFyYXRpb25fZF90c19maWxlX2NvbnRhaW5pbmdfZGVjbGFyZV9fNzAzNVwiLFwiVHJ5IGBucG0gaSAtLXNhdmUtZGV2IEB0eXBlcy97MX1gIGlmIGl0IGV4aXN0cyBvciBhZGQgYSBuZXcgZGVjbGFyYXRpb24gKC5kLnRzKSBmaWxlIGNvbnRhaW5pbmcgYGRlY2xhcmUgbW9kdWxlICd7MH0nO2BcIiksRHluYW1pY19pbXBvcnRfc19zcGVjaWZpZXJfbXVzdF9iZV9vZl90eXBlX3N0cmluZ19idXRfaGVyZV9oYXNfdHlwZV8wOmkoNzAzNiwxLFwiRHluYW1pY19pbXBvcnRfc19zcGVjaWZpZXJfbXVzdF9iZV9vZl90eXBlX3N0cmluZ19idXRfaGVyZV9oYXNfdHlwZV8wXzcwMzZcIixcIkR5bmFtaWMgaW1wb3J0J3Mgc3BlY2lmaWVyIG11c3QgYmUgb2YgdHlwZSAnc3RyaW5nJywgYnV0IGhlcmUgaGFzIHR5cGUgJ3swfScuXCIpLEVuYWJsZXNfZW1pdF9pbnRlcm9wZXJhYmlsaXR5X2JldHdlZW5fQ29tbW9uSlNfYW5kX0VTX01vZHVsZXNfdmlhX2NyZWF0aW9uX29mX25hbWVzcGFjZV9vYmplY3RzX2Zvcl9hbGxfaW1wb3J0c19JbXBsaWVzX2FsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6aSg3MDM3LDMsXCJFbmFibGVzX2VtaXRfaW50ZXJvcGVyYWJpbGl0eV9iZXR3ZWVuX0NvbW1vbkpTX2FuZF9FU19Nb2R1bGVzX3ZpYV9jcmVhdGlvbl9vZl9uYW1lc3BhY2Vfb2JqZWN0c19mb3JfXzcwMzdcIixcIkVuYWJsZXMgZW1pdCBpbnRlcm9wZXJhYmlsaXR5IGJldHdlZW4gQ29tbW9uSlMgYW5kIEVTIE1vZHVsZXMgdmlhIGNyZWF0aW9uIG9mIG5hbWVzcGFjZSBvYmplY3RzIGZvciBhbGwgaW1wb3J0cy4gSW1wbGllcyAnYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cycuXCIpLFR5cGVfb3JpZ2luYXRlc19hdF90aGlzX2ltcG9ydF9BX25hbWVzcGFjZV9zdHlsZV9pbXBvcnRfY2Fubm90X2JlX2NhbGxlZF9vcl9jb25zdHJ1Y3RlZF9hbmRfd2lsbF9jYXVzZV9hX2ZhaWx1cmVfYXRfcnVudGltZV9Db25zaWRlcl91c2luZ19hX2RlZmF1bHRfaW1wb3J0X29yX2ltcG9ydF9yZXF1aXJlX2hlcmVfaW5zdGVhZDppKDcwMzgsMyxcIlR5cGVfb3JpZ2luYXRlc19hdF90aGlzX2ltcG9ydF9BX25hbWVzcGFjZV9zdHlsZV9pbXBvcnRfY2Fubm90X2JlX2NhbGxlZF9vcl9jb25zdHJ1Y3RlZF9hbmRfd2lsbF9jYXVfNzAzOFwiLFwiVHlwZSBvcmlnaW5hdGVzIGF0IHRoaXMgaW1wb3J0LiBBIG5hbWVzcGFjZS1zdHlsZSBpbXBvcnQgY2Fubm90IGJlIGNhbGxlZCBvciBjb25zdHJ1Y3RlZCwgYW5kIHdpbGwgY2F1c2UgYSBmYWlsdXJlIGF0IHJ1bnRpbWUuIENvbnNpZGVyIHVzaW5nIGEgZGVmYXVsdCBpbXBvcnQgb3IgaW1wb3J0IHJlcXVpcmUgaGVyZSBpbnN0ZWFkLlwiKSxNYXBwZWRfb2JqZWN0X3R5cGVfaW1wbGljaXRseV9oYXNfYW5fYW55X3RlbXBsYXRlX3R5cGU6aSg3MDM5LDEsXCJNYXBwZWRfb2JqZWN0X3R5cGVfaW1wbGljaXRseV9oYXNfYW5fYW55X3RlbXBsYXRlX3R5cGVfNzAzOVwiLFwiTWFwcGVkIG9iamVjdCB0eXBlIGltcGxpY2l0bHkgaGFzIGFuICdhbnknIHRlbXBsYXRlIHR5cGUuXCIpLElmX3RoZV8wX3BhY2thZ2VfYWN0dWFsbHlfZXhwb3Nlc190aGlzX21vZHVsZV9jb25zaWRlcl9zZW5kaW5nX2FfcHVsbF9yZXF1ZXN0X3RvX2FtZW5kX2h0dHBzX0NvbG9uX1NsYXNoX1NsYXNoZ2l0aHViX2NvbV9TbGFzaERlZmluaXRlbHlUeXBlZF9TbGFzaERlZmluaXRlbHlUeXBlZF9TbGFzaHRyZWVfU2xhc2htYXN0ZXJfU2xhc2h0eXBlc19TbGFzaF8xOmkoNzA0MCwxLFwiSWZfdGhlXzBfcGFja2FnZV9hY3R1YWxseV9leHBvc2VzX3RoaXNfbW9kdWxlX2NvbnNpZGVyX3NlbmRpbmdfYV9wdWxsX3JlcXVlc3RfdG9fYW1lbmRfaHR0cHNfQ29sb25fU183MDQwXCIsXCJJZiB0aGUgJ3swfScgcGFja2FnZSBhY3R1YWxseSBleHBvc2VzIHRoaXMgbW9kdWxlLCBjb25zaWRlciBzZW5kaW5nIGEgcHVsbCByZXF1ZXN0IHRvIGFtZW5kICdodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZC90cmVlL21hc3Rlci90eXBlcy97MX0nXCIpLFRoZV9jb250YWluaW5nX2Fycm93X2Z1bmN0aW9uX2NhcHR1cmVzX3RoZV9nbG9iYWxfdmFsdWVfb2ZfdGhpczppKDcwNDEsMSxcIlRoZV9jb250YWluaW5nX2Fycm93X2Z1bmN0aW9uX2NhcHR1cmVzX3RoZV9nbG9iYWxfdmFsdWVfb2ZfdGhpc183MDQxXCIsXCJUaGUgY29udGFpbmluZyBhcnJvdyBmdW5jdGlvbiBjYXB0dXJlcyB0aGUgZ2xvYmFsIHZhbHVlIG9mICd0aGlzJy5cIiksTW9kdWxlXzBfd2FzX3Jlc29sdmVkX3RvXzFfYnV0X3Jlc29sdmVKc29uTW9kdWxlX2lzX25vdF91c2VkOmkoNzA0MiwxLFwiTW9kdWxlXzBfd2FzX3Jlc29sdmVkX3RvXzFfYnV0X3Jlc29sdmVKc29uTW9kdWxlX2lzX25vdF91c2VkXzcwNDJcIixcIk1vZHVsZSAnezB9JyB3YXMgcmVzb2x2ZWQgdG8gJ3sxfScsIGJ1dCAnLS1yZXNvbHZlSnNvbk1vZHVsZScgaXMgbm90IHVzZWQuXCIpLFZhcmlhYmxlXzBfaW1wbGljaXRseV9oYXNfYW5fMV90eXBlX2J1dF9hX2JldHRlcl90eXBlX21heV9iZV9pbmZlcnJlZF9mcm9tX3VzYWdlOmkoNzA0MywyLFwiVmFyaWFibGVfMF9pbXBsaWNpdGx5X2hhc19hbl8xX3R5cGVfYnV0X2FfYmV0dGVyX3R5cGVfbWF5X2JlX2luZmVycmVkX2Zyb21fdXNhZ2VfNzA0M1wiLFwiVmFyaWFibGUgJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgdHlwZSwgYnV0IGEgYmV0dGVyIHR5cGUgbWF5IGJlIGluZmVycmVkIGZyb20gdXNhZ2UuXCIpLFBhcmFtZXRlcl8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZV9idXRfYV9iZXR0ZXJfdHlwZV9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZTppKDcwNDQsMixcIlBhcmFtZXRlcl8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZV9idXRfYV9iZXR0ZXJfdHlwZV9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZV83MDQ0XCIsXCJQYXJhbWV0ZXIgJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgdHlwZSwgYnV0IGEgYmV0dGVyIHR5cGUgbWF5IGJlIGluZmVycmVkIGZyb20gdXNhZ2UuXCIpLE1lbWJlcl8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZV9idXRfYV9iZXR0ZXJfdHlwZV9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZTppKDcwNDUsMixcIk1lbWJlcl8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfdHlwZV9idXRfYV9iZXR0ZXJfdHlwZV9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZV83MDQ1XCIsXCJNZW1iZXIgJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgdHlwZSwgYnV0IGEgYmV0dGVyIHR5cGUgbWF5IGJlIGluZmVycmVkIGZyb20gdXNhZ2UuXCIpLFZhcmlhYmxlXzBfaW1wbGljaXRseV9oYXNfdHlwZV8xX2luX3NvbWVfbG9jYXRpb25zX2J1dF9hX2JldHRlcl90eXBlX21heV9iZV9pbmZlcnJlZF9mcm9tX3VzYWdlOmkoNzA0NiwyLFwiVmFyaWFibGVfMF9pbXBsaWNpdGx5X2hhc190eXBlXzFfaW5fc29tZV9sb2NhdGlvbnNfYnV0X2FfYmV0dGVyX3R5cGVfbWF5X2JlX2luZmVycmVkX2Zyb21fdXNhZ2VfNzA0NlwiLFwiVmFyaWFibGUgJ3swfScgaW1wbGljaXRseSBoYXMgdHlwZSAnezF9JyBpbiBzb21lIGxvY2F0aW9ucywgYnV0IGEgYmV0dGVyIHR5cGUgbWF5IGJlIGluZmVycmVkIGZyb20gdXNhZ2UuXCIpLFJlc3RfcGFyYW1ldGVyXzBfaW1wbGljaXRseV9oYXNfYW5fYW55X3R5cGVfYnV0X2FfYmV0dGVyX3R5cGVfbWF5X2JlX2luZmVycmVkX2Zyb21fdXNhZ2U6aSg3MDQ3LDIsXCJSZXN0X3BhcmFtZXRlcl8wX2ltcGxpY2l0bHlfaGFzX2FuX2FueV90eXBlX2J1dF9hX2JldHRlcl90eXBlX21heV9iZV9pbmZlcnJlZF9mcm9tX3VzYWdlXzcwNDdcIixcIlJlc3QgcGFyYW1ldGVyICd7MH0nIGltcGxpY2l0bHkgaGFzIGFuICdhbnlbXScgdHlwZSwgYnV0IGEgYmV0dGVyIHR5cGUgbWF5IGJlIGluZmVycmVkIGZyb20gdXNhZ2UuXCIpLFByb3BlcnR5XzBfaW1wbGljaXRseV9oYXNfdHlwZV9hbnlfYnV0X2FfYmV0dGVyX3R5cGVfZm9yX2l0c19nZXRfYWNjZXNzb3JfbWF5X2JlX2luZmVycmVkX2Zyb21fdXNhZ2U6aSg3MDQ4LDIsXCJQcm9wZXJ0eV8wX2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2J1dF9hX2JldHRlcl90eXBlX2Zvcl9pdHNfZ2V0X2FjY2Vzc29yX21heV9iZV9pbmZlcnJlZF9mcm9tX3VzYWdlXzcwNDhcIixcIlByb3BlcnR5ICd7MH0nIGltcGxpY2l0bHkgaGFzIHR5cGUgJ2FueScsIGJ1dCBhIGJldHRlciB0eXBlIGZvciBpdHMgZ2V0IGFjY2Vzc29yIG1heSBiZSBpbmZlcnJlZCBmcm9tIHVzYWdlLlwiKSxQcm9wZXJ0eV8wX2ltcGxpY2l0bHlfaGFzX3R5cGVfYW55X2J1dF9hX2JldHRlcl90eXBlX2Zvcl9pdHNfc2V0X2FjY2Vzc29yX21heV9iZV9pbmZlcnJlZF9mcm9tX3VzYWdlOmkoNzA0OSwyLFwiUHJvcGVydHlfMF9pbXBsaWNpdGx5X2hhc190eXBlX2FueV9idXRfYV9iZXR0ZXJfdHlwZV9mb3JfaXRzX3NldF9hY2Nlc3Nvcl9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZV83MDQ5XCIsXCJQcm9wZXJ0eSAnezB9JyBpbXBsaWNpdGx5IGhhcyB0eXBlICdhbnknLCBidXQgYSBiZXR0ZXIgdHlwZSBmb3IgaXRzIHNldCBhY2Nlc3NvciBtYXkgYmUgaW5mZXJyZWQgZnJvbSB1c2FnZS5cIiksXzBfaW1wbGljaXRseV9oYXNfYW5fMV9yZXR1cm5fdHlwZV9idXRfYV9iZXR0ZXJfdHlwZV9tYXlfYmVfaW5mZXJyZWRfZnJvbV91c2FnZTppKDcwNTAsMixcIl8wX2ltcGxpY2l0bHlfaGFzX2FuXzFfcmV0dXJuX3R5cGVfYnV0X2FfYmV0dGVyX3R5cGVfbWF5X2JlX2luZmVycmVkX2Zyb21fdXNhZ2VfNzA1MFwiLFwiJ3swfScgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgcmV0dXJuIHR5cGUsIGJ1dCBhIGJldHRlciB0eXBlIG1heSBiZSBpbmZlcnJlZCBmcm9tIHVzYWdlLlwiKSxQYXJhbWV0ZXJfaGFzX2FfbmFtZV9idXRfbm9fdHlwZV9EaWRfeW91X21lYW5fMF9Db2xvbl8xOmkoNzA1MSwxLFwiUGFyYW1ldGVyX2hhc19hX25hbWVfYnV0X25vX3R5cGVfRGlkX3lvdV9tZWFuXzBfQ29sb25fMV83MDUxXCIsXCJQYXJhbWV0ZXIgaGFzIGEgbmFtZSBidXQgbm8gdHlwZS4gRGlkIHlvdSBtZWFuICd7MH06IHsxfSc/XCIpLEVsZW1lbnRfaW1wbGljaXRseV9oYXNfYW5fYW55X3R5cGVfYmVjYXVzZV90eXBlXzBfaGFzX25vX2luZGV4X3NpZ25hdHVyZV9EaWRfeW91X21lYW5fdG9fY2FsbF8xOmkoNzA1MiwxLFwiRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX3R5cGVfMF9oYXNfbm9faW5kZXhfc2lnbmF0dXJlX0RpZF95b3VfbWVhbl90b19jYWxsXzFfNzA1MlwiLFwiRWxlbWVudCBpbXBsaWNpdGx5IGhhcyBhbiAnYW55JyB0eXBlIGJlY2F1c2UgdHlwZSAnezB9JyBoYXMgbm8gaW5kZXggc2lnbmF0dXJlLiBEaWQgeW91IG1lYW4gdG8gY2FsbCAnezF9Jz9cIiksRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX2V4cHJlc3Npb25fb2ZfdHlwZV8wX2Nhbl90X2JlX3VzZWRfdG9faW5kZXhfdHlwZV8xOmkoNzA1MywxLFwiRWxlbWVudF9pbXBsaWNpdGx5X2hhc19hbl9hbnlfdHlwZV9iZWNhdXNlX2V4cHJlc3Npb25fb2ZfdHlwZV8wX2Nhbl90X2JlX3VzZWRfdG9faW5kZXhfdHlwZV8xXzcwNTNcIixcIkVsZW1lbnQgaW1wbGljaXRseSBoYXMgYW4gJ2FueScgdHlwZSBiZWNhdXNlIGV4cHJlc3Npb24gb2YgdHlwZSAnezB9JyBjYW4ndCBiZSB1c2VkIHRvIGluZGV4IHR5cGUgJ3sxfScuXCIpLE5vX2luZGV4X3NpZ25hdHVyZV93aXRoX2FfcGFyYW1ldGVyX29mX3R5cGVfMF93YXNfZm91bmRfb25fdHlwZV8xOmkoNzA1NCwxLFwiTm9faW5kZXhfc2lnbmF0dXJlX3dpdGhfYV9wYXJhbWV0ZXJfb2ZfdHlwZV8wX3dhc19mb3VuZF9vbl90eXBlXzFfNzA1NFwiLFwiTm8gaW5kZXggc2lnbmF0dXJlIHdpdGggYSBwYXJhbWV0ZXIgb2YgdHlwZSAnezB9JyB3YXMgZm91bmQgb24gdHlwZSAnezF9Jy5cIiksXzBfd2hpY2hfbGFja3NfcmV0dXJuX3R5cGVfYW5ub3RhdGlvbl9pbXBsaWNpdGx5X2hhc19hbl8xX3lpZWxkX3R5cGU6aSg3MDU1LDEsXCJfMF93aGljaF9sYWNrc19yZXR1cm5fdHlwZV9hbm5vdGF0aW9uX2ltcGxpY2l0bHlfaGFzX2FuXzFfeWllbGRfdHlwZV83MDU1XCIsXCInezB9Jywgd2hpY2ggbGFja3MgcmV0dXJuLXR5cGUgYW5ub3RhdGlvbiwgaW1wbGljaXRseSBoYXMgYW4gJ3sxfScgeWllbGQgdHlwZS5cIiksVGhlX2luZmVycmVkX3R5cGVfb2ZfdGhpc19ub2RlX2V4Y2VlZHNfdGhlX21heGltdW1fbGVuZ3RoX3RoZV9jb21waWxlcl93aWxsX3NlcmlhbGl6ZV9Bbl9leHBsaWNpdF90eXBlX2Fubm90YXRpb25faXNfbmVlZGVkOmkoNzA1NiwxLFwiVGhlX2luZmVycmVkX3R5cGVfb2ZfdGhpc19ub2RlX2V4Y2VlZHNfdGhlX21heGltdW1fbGVuZ3RoX3RoZV9jb21waWxlcl93aWxsX3NlcmlhbGl6ZV9Bbl9leHBsaWNpdF90eV83MDU2XCIsXCJUaGUgaW5mZXJyZWQgdHlwZSBvZiB0aGlzIG5vZGUgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGggdGhlIGNvbXBpbGVyIHdpbGwgc2VyaWFsaXplLiBBbiBleHBsaWNpdCB0eXBlIGFubm90YXRpb24gaXMgbmVlZGVkLlwiKSx5aWVsZF9leHByZXNzaW9uX2ltcGxpY2l0bHlfcmVzdWx0c19pbl9hbl9hbnlfdHlwZV9iZWNhdXNlX2l0c19jb250YWluaW5nX2dlbmVyYXRvcl9sYWNrc19hX3JldHVybl90eXBlX2Fubm90YXRpb246aSg3MDU3LDEsXCJ5aWVsZF9leHByZXNzaW9uX2ltcGxpY2l0bHlfcmVzdWx0c19pbl9hbl9hbnlfdHlwZV9iZWNhdXNlX2l0c19jb250YWluaW5nX2dlbmVyYXRvcl9sYWNrc19hX3JldHVybl90XzcwNTdcIixcIid5aWVsZCcgZXhwcmVzc2lvbiBpbXBsaWNpdGx5IHJlc3VsdHMgaW4gYW4gJ2FueScgdHlwZSBiZWNhdXNlIGl0cyBjb250YWluaW5nIGdlbmVyYXRvciBsYWNrcyBhIHJldHVybi10eXBlIGFubm90YXRpb24uXCIpLElmX3RoZV8wX3BhY2thZ2VfYWN0dWFsbHlfZXhwb3Nlc190aGlzX21vZHVsZV90cnlfYWRkaW5nX2FfbmV3X2RlY2xhcmF0aW9uX2RfdHNfZmlsZV9jb250YWluaW5nX2RlY2xhcmVfbW9kdWxlXzE6aSg3MDU4LDEsXCJJZl90aGVfMF9wYWNrYWdlX2FjdHVhbGx5X2V4cG9zZXNfdGhpc19tb2R1bGVfdHJ5X2FkZGluZ19hX25ld19kZWNsYXJhdGlvbl9kX3RzX2ZpbGVfY29udGFpbmluZ19kZWNsXzcwNThcIixcIklmIHRoZSAnezB9JyBwYWNrYWdlIGFjdHVhbGx5IGV4cG9zZXMgdGhpcyBtb2R1bGUsIHRyeSBhZGRpbmcgYSBuZXcgZGVjbGFyYXRpb24gKC5kLnRzKSBmaWxlIGNvbnRhaW5pbmcgYGRlY2xhcmUgbW9kdWxlICd7MX0nO2BcIiksVGhpc19zeW50YXhfaXNfcmVzZXJ2ZWRfaW5fZmlsZXNfd2l0aF90aGVfbXRzX29yX2N0c19leHRlbnNpb25fVXNlX2FuX2FzX2V4cHJlc3Npb25faW5zdGVhZDppKDcwNTksMSxcIlRoaXNfc3ludGF4X2lzX3Jlc2VydmVkX2luX2ZpbGVzX3dpdGhfdGhlX210c19vcl9jdHNfZXh0ZW5zaW9uX1VzZV9hbl9hc19leHByZXNzaW9uX2luc3RlYWRfNzA1OVwiLFwiVGhpcyBzeW50YXggaXMgcmVzZXJ2ZWQgaW4gZmlsZXMgd2l0aCB0aGUgLm10cyBvciAuY3RzIGV4dGVuc2lvbi4gVXNlIGFuIGBhc2AgZXhwcmVzc2lvbiBpbnN0ZWFkLlwiKSxUaGlzX3N5bnRheF9pc19yZXNlcnZlZF9pbl9maWxlc193aXRoX3RoZV9tdHNfb3JfY3RzX2V4dGVuc2lvbl9BZGRfYV90cmFpbGluZ19jb21tYV9vcl9leHBsaWNpdF9jb25zdHJhaW50OmkoNzA2MCwxLFwiVGhpc19zeW50YXhfaXNfcmVzZXJ2ZWRfaW5fZmlsZXNfd2l0aF90aGVfbXRzX29yX2N0c19leHRlbnNpb25fQWRkX2FfdHJhaWxpbmdfY29tbWFfb3JfZXhwbGljaXRfY29uc183MDYwXCIsXCJUaGlzIHN5bnRheCBpcyByZXNlcnZlZCBpbiBmaWxlcyB3aXRoIHRoZSAubXRzIG9yIC5jdHMgZXh0ZW5zaW9uLiBBZGQgYSB0cmFpbGluZyBjb21tYSBvciBleHBsaWNpdCBjb25zdHJhaW50LlwiKSxBX21hcHBlZF90eXBlX21heV9ub3RfZGVjbGFyZV9wcm9wZXJ0aWVzX29yX21ldGhvZHM6aSg3MDYxLDEsXCJBX21hcHBlZF90eXBlX21heV9ub3RfZGVjbGFyZV9wcm9wZXJ0aWVzX29yX21ldGhvZHNfNzA2MVwiLFwiQSBtYXBwZWQgdHlwZSBtYXkgbm90IGRlY2xhcmUgcHJvcGVydGllcyBvciBtZXRob2RzLlwiKSxZb3VfY2Fubm90X3JlbmFtZV90aGlzX2VsZW1lbnQ6aSg4ZTMsMSxcIllvdV9jYW5ub3RfcmVuYW1lX3RoaXNfZWxlbWVudF84MDAwXCIsXCJZb3UgY2Fubm90IHJlbmFtZSB0aGlzIGVsZW1lbnQuXCIpLFlvdV9jYW5ub3RfcmVuYW1lX2VsZW1lbnRzX3RoYXRfYXJlX2RlZmluZWRfaW5fdGhlX3N0YW5kYXJkX1R5cGVTY3JpcHRfbGlicmFyeTppKDgwMDEsMSxcIllvdV9jYW5ub3RfcmVuYW1lX2VsZW1lbnRzX3RoYXRfYXJlX2RlZmluZWRfaW5fdGhlX3N0YW5kYXJkX1R5cGVTY3JpcHRfbGlicmFyeV84MDAxXCIsXCJZb3UgY2Fubm90IHJlbmFtZSBlbGVtZW50cyB0aGF0IGFyZSBkZWZpbmVkIGluIHRoZSBzdGFuZGFyZCBUeXBlU2NyaXB0IGxpYnJhcnkuXCIpLGltcG9ydF9jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXM6aSg4MDAyLDEsXCJpbXBvcnRfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzXzgwMDJcIixcIidpbXBvcnQgLi4uID0nIGNhbiBvbmx5IGJlIHVzZWQgaW4gVHlwZVNjcmlwdCBmaWxlcy5cIiksZXhwb3J0X2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlczppKDgwMDMsMSxcImV4cG9ydF9jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAwM1wiLFwiJ2V4cG9ydCA9JyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFR5cGVfcGFyYW1ldGVyX2RlY2xhcmF0aW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXM6aSg4MDA0LDEsXCJUeXBlX3BhcmFtZXRlcl9kZWNsYXJhdGlvbnNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzXzgwMDRcIixcIlR5cGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLGltcGxlbWVudHNfY2xhdXNlc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXM6aSg4MDA1LDEsXCJpbXBsZW1lbnRzX2NsYXVzZXNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzXzgwMDVcIixcIidpbXBsZW1lbnRzJyBjbGF1c2VzIGNhbiBvbmx5IGJlIHVzZWQgaW4gVHlwZVNjcmlwdCBmaWxlcy5cIiksXzBfZGVjbGFyYXRpb25zX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlczppKDgwMDYsMSxcIl8wX2RlY2xhcmF0aW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAwNlwiLFwiJ3swfScgZGVjbGFyYXRpb25zIGNhbiBvbmx5IGJlIHVzZWQgaW4gVHlwZVNjcmlwdCBmaWxlcy5cIiksVHlwZV9hbGlhc2VzX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlczppKDgwMDgsMSxcIlR5cGVfYWxpYXNlc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAwOFwiLFwiVHlwZSBhbGlhc2VzIGNhbiBvbmx5IGJlIHVzZWQgaW4gVHlwZVNjcmlwdCBmaWxlcy5cIiksVGhlXzBfbW9kaWZpZXJfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzOmkoODAwOSwxLFwiVGhlXzBfbW9kaWZpZXJfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzXzgwMDlcIixcIlRoZSAnezB9JyBtb2RpZmllciBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFR5cGVfYW5ub3RhdGlvbnNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzOmkoODAxMCwxLFwiVHlwZV9hbm5vdGF0aW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAxMFwiLFwiVHlwZSBhbm5vdGF0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFR5cGVfYXJndW1lbnRzX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlczppKDgwMTEsMSxcIlR5cGVfYXJndW1lbnRzX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlc184MDExXCIsXCJUeXBlIGFyZ3VtZW50cyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFBhcmFtZXRlcl9tb2RpZmllcnNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzOmkoODAxMiwxLFwiUGFyYW1ldGVyX21vZGlmaWVyc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAxMlwiLFwiUGFyYW1ldGVyIG1vZGlmaWVycyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLE5vbl9udWxsX2Fzc2VydGlvbnNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzOmkoODAxMywxLFwiTm9uX251bGxfYXNzZXJ0aW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAxM1wiLFwiTm9uLW51bGwgYXNzZXJ0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFR5cGVfYXNzZXJ0aW9uX2V4cHJlc3Npb25zX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlczppKDgwMTYsMSxcIlR5cGVfYXNzZXJ0aW9uX2V4cHJlc3Npb25zX2Nhbl9vbmx5X2JlX3VzZWRfaW5fVHlwZVNjcmlwdF9maWxlc184MDE2XCIsXCJUeXBlIGFzc2VydGlvbiBleHByZXNzaW9ucyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFNpZ25hdHVyZV9kZWNsYXJhdGlvbnNfY2FuX29ubHlfYmVfdXNlZF9pbl9UeXBlU2NyaXB0X2ZpbGVzOmkoODAxNywxLFwiU2lnbmF0dXJlX2RlY2xhcmF0aW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAxN1wiLFwiU2lnbmF0dXJlIGRlY2xhcmF0aW9ucyBjYW4gb25seSBiZSB1c2VkIGluIFR5cGVTY3JpcHQgZmlsZXMuXCIpLFJlcG9ydF9lcnJvcnNfaW5fanNfZmlsZXM6aSg4MDE5LDMsXCJSZXBvcnRfZXJyb3JzX2luX2pzX2ZpbGVzXzgwMTlcIixcIlJlcG9ydCBlcnJvcnMgaW4gLmpzIGZpbGVzLlwiKSxKU0RvY190eXBlc19jYW5fb25seV9iZV91c2VkX2luc2lkZV9kb2N1bWVudGF0aW9uX2NvbW1lbnRzOmkoODAyMCwxLFwiSlNEb2NfdHlwZXNfY2FuX29ubHlfYmVfdXNlZF9pbnNpZGVfZG9jdW1lbnRhdGlvbl9jb21tZW50c184MDIwXCIsXCJKU0RvYyB0eXBlcyBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBkb2N1bWVudGF0aW9uIGNvbW1lbnRzLlwiKSxKU0RvY190eXBlZGVmX3RhZ19zaG91bGRfZWl0aGVyX2hhdmVfYV90eXBlX2Fubm90YXRpb25fb3JfYmVfZm9sbG93ZWRfYnlfcHJvcGVydHlfb3JfbWVtYmVyX3RhZ3M6aSg4MDIxLDEsXCJKU0RvY190eXBlZGVmX3RhZ19zaG91bGRfZWl0aGVyX2hhdmVfYV90eXBlX2Fubm90YXRpb25fb3JfYmVfZm9sbG93ZWRfYnlfcHJvcGVydHlfb3JfbWVtYmVyX3RhZ3NfODAyMVwiLFwiSlNEb2MgJ0B0eXBlZGVmJyB0YWcgc2hvdWxkIGVpdGhlciBoYXZlIGEgdHlwZSBhbm5vdGF0aW9uIG9yIGJlIGZvbGxvd2VkIGJ5ICdAcHJvcGVydHknIG9yICdAbWVtYmVyJyB0YWdzLlwiKSxKU0RvY18wX2lzX25vdF9hdHRhY2hlZF90b19hX2NsYXNzOmkoODAyMiwxLFwiSlNEb2NfMF9pc19ub3RfYXR0YWNoZWRfdG9fYV9jbGFzc184MDIyXCIsXCJKU0RvYyAnQHswfScgaXMgbm90IGF0dGFjaGVkIHRvIGEgY2xhc3MuXCIpLEpTRG9jXzBfMV9kb2VzX25vdF9tYXRjaF90aGVfZXh0ZW5kc18yX2NsYXVzZTppKDgwMjMsMSxcIkpTRG9jXzBfMV9kb2VzX25vdF9tYXRjaF90aGVfZXh0ZW5kc18yX2NsYXVzZV84MDIzXCIsXCJKU0RvYyAnQHswfSB7MX0nIGRvZXMgbm90IG1hdGNoIHRoZSAnZXh0ZW5kcyB7Mn0nIGNsYXVzZS5cIiksSlNEb2NfcGFyYW1fdGFnX2hhc19uYW1lXzBfYnV0X3RoZXJlX2lzX25vX3BhcmFtZXRlcl93aXRoX3RoYXRfbmFtZTppKDgwMjQsMSxcIkpTRG9jX3BhcmFtX3RhZ19oYXNfbmFtZV8wX2J1dF90aGVyZV9pc19ub19wYXJhbWV0ZXJfd2l0aF90aGF0X25hbWVfODAyNFwiLFwiSlNEb2MgJ0BwYXJhbScgdGFnIGhhcyBuYW1lICd7MH0nLCBidXQgdGhlcmUgaXMgbm8gcGFyYW1ldGVyIHdpdGggdGhhdCBuYW1lLlwiKSxDbGFzc19kZWNsYXJhdGlvbnNfY2Fubm90X2hhdmVfbW9yZV90aGFuX29uZV9hdWdtZW50c19vcl9leHRlbmRzX3RhZzppKDgwMjUsMSxcIkNsYXNzX2RlY2xhcmF0aW9uc19jYW5ub3RfaGF2ZV9tb3JlX3RoYW5fb25lX2F1Z21lbnRzX29yX2V4dGVuZHNfdGFnXzgwMjVcIixcIkNsYXNzIGRlY2xhcmF0aW9ucyBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gb25lICdAYXVnbWVudHMnIG9yICdAZXh0ZW5kcycgdGFnLlwiKSxFeHBlY3RlZF8wX3R5cGVfYXJndW1lbnRzX3Byb3ZpZGVfdGhlc2Vfd2l0aF9hbl9leHRlbmRzX3RhZzppKDgwMjYsMSxcIkV4cGVjdGVkXzBfdHlwZV9hcmd1bWVudHNfcHJvdmlkZV90aGVzZV93aXRoX2FuX2V4dGVuZHNfdGFnXzgwMjZcIixcIkV4cGVjdGVkIHswfSB0eXBlIGFyZ3VtZW50czsgcHJvdmlkZSB0aGVzZSB3aXRoIGFuICdAZXh0ZW5kcycgdGFnLlwiKSxFeHBlY3RlZF8wXzFfdHlwZV9hcmd1bWVudHNfcHJvdmlkZV90aGVzZV93aXRoX2FuX2V4dGVuZHNfdGFnOmkoODAyNywxLFwiRXhwZWN0ZWRfMF8xX3R5cGVfYXJndW1lbnRzX3Byb3ZpZGVfdGhlc2Vfd2l0aF9hbl9leHRlbmRzX3RhZ184MDI3XCIsXCJFeHBlY3RlZCB7MH0tezF9IHR5cGUgYXJndW1lbnRzOyBwcm92aWRlIHRoZXNlIHdpdGggYW4gJ0BleHRlbmRzJyB0YWcuXCIpLEpTRG9jX21heV9vbmx5X2FwcGVhcl9pbl90aGVfbGFzdF9wYXJhbWV0ZXJfb2ZfYV9zaWduYXR1cmU6aSg4MDI4LDEsXCJKU0RvY19tYXlfb25seV9hcHBlYXJfaW5fdGhlX2xhc3RfcGFyYW1ldGVyX29mX2Ffc2lnbmF0dXJlXzgwMjhcIixcIkpTRG9jICcuLi4nIG1heSBvbmx5IGFwcGVhciBpbiB0aGUgbGFzdCBwYXJhbWV0ZXIgb2YgYSBzaWduYXR1cmUuXCIpLEpTRG9jX3BhcmFtX3RhZ19oYXNfbmFtZV8wX2J1dF90aGVyZV9pc19ub19wYXJhbWV0ZXJfd2l0aF90aGF0X25hbWVfSXRfd291bGRfbWF0Y2hfYXJndW1lbnRzX2lmX2l0X2hhZF9hbl9hcnJheV90eXBlOmkoODAyOSwxLFwiSlNEb2NfcGFyYW1fdGFnX2hhc19uYW1lXzBfYnV0X3RoZXJlX2lzX25vX3BhcmFtZXRlcl93aXRoX3RoYXRfbmFtZV9JdF93b3VsZF9tYXRjaF9hcmd1bWVudHNfaWZfaXRfaF84MDI5XCIsXCJKU0RvYyAnQHBhcmFtJyB0YWcgaGFzIG5hbWUgJ3swfScsIGJ1dCB0aGVyZSBpcyBubyBwYXJhbWV0ZXIgd2l0aCB0aGF0IG5hbWUuIEl0IHdvdWxkIG1hdGNoICdhcmd1bWVudHMnIGlmIGl0IGhhZCBhbiBhcnJheSB0eXBlLlwiKSxUaGVfdHlwZV9vZl9hX2Z1bmN0aW9uX2RlY2xhcmF0aW9uX211c3RfbWF0Y2hfdGhlX2Z1bmN0aW9uX3Nfc2lnbmF0dXJlOmkoODAzMCwxLFwiVGhlX3R5cGVfb2ZfYV9mdW5jdGlvbl9kZWNsYXJhdGlvbl9tdXN0X21hdGNoX3RoZV9mdW5jdGlvbl9zX3NpZ25hdHVyZV84MDMwXCIsXCJUaGUgdHlwZSBvZiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG11c3QgbWF0Y2ggdGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJlLlwiKSxZb3VfY2Fubm90X3JlbmFtZV9hX21vZHVsZV92aWFfYV9nbG9iYWxfaW1wb3J0OmkoODAzMSwxLFwiWW91X2Nhbm5vdF9yZW5hbWVfYV9tb2R1bGVfdmlhX2FfZ2xvYmFsX2ltcG9ydF84MDMxXCIsXCJZb3UgY2Fubm90IHJlbmFtZSBhIG1vZHVsZSB2aWEgYSBnbG9iYWwgaW1wb3J0LlwiKSxRdWFsaWZpZWRfbmFtZV8wX2lzX25vdF9hbGxvd2VkX3dpdGhvdXRfYV9sZWFkaW5nX3BhcmFtX29iamVjdF8xOmkoODAzMiwxLFwiUXVhbGlmaWVkX25hbWVfMF9pc19ub3RfYWxsb3dlZF93aXRob3V0X2FfbGVhZGluZ19wYXJhbV9vYmplY3RfMV84MDMyXCIsXCJRdWFsaWZpZWQgbmFtZSAnezB9JyBpcyBub3QgYWxsb3dlZCB3aXRob3V0IGEgbGVhZGluZyAnQHBhcmFtIHtvYmplY3R9IHsxfScuXCIpLEFfSlNEb2NfdHlwZWRlZl9jb21tZW50X21heV9ub3RfY29udGFpbl9tdWx0aXBsZV90eXBlX3RhZ3M6aSg4MDMzLDEsXCJBX0pTRG9jX3R5cGVkZWZfY29tbWVudF9tYXlfbm90X2NvbnRhaW5fbXVsdGlwbGVfdHlwZV90YWdzXzgwMzNcIixcIkEgSlNEb2MgJ0B0eXBlZGVmJyBjb21tZW50IG1heSBub3QgY29udGFpbiBtdWx0aXBsZSAnQHR5cGUnIHRhZ3MuXCIpLFRoZV90YWdfd2FzX2ZpcnN0X3NwZWNpZmllZF9oZXJlOmkoODAzNCwxLFwiVGhlX3RhZ193YXNfZmlyc3Rfc3BlY2lmaWVkX2hlcmVfODAzNFwiLFwiVGhlIHRhZyB3YXMgZmlyc3Qgc3BlY2lmaWVkIGhlcmUuXCIpLFlvdV9jYW5ub3RfcmVuYW1lX2VsZW1lbnRzX3RoYXRfYXJlX2RlZmluZWRfaW5fYV9ub2RlX21vZHVsZXNfZm9sZGVyOmkoODAzNSwxLFwiWW91X2Nhbm5vdF9yZW5hbWVfZWxlbWVudHNfdGhhdF9hcmVfZGVmaW5lZF9pbl9hX25vZGVfbW9kdWxlc19mb2xkZXJfODAzNVwiLFwiWW91IGNhbm5vdCByZW5hbWUgZWxlbWVudHMgdGhhdCBhcmUgZGVmaW5lZCBpbiBhICdub2RlX21vZHVsZXMnIGZvbGRlci5cIiksWW91X2Nhbm5vdF9yZW5hbWVfZWxlbWVudHNfdGhhdF9hcmVfZGVmaW5lZF9pbl9hbm90aGVyX25vZGVfbW9kdWxlc19mb2xkZXI6aSg4MDM2LDEsXCJZb3VfY2Fubm90X3JlbmFtZV9lbGVtZW50c190aGF0X2FyZV9kZWZpbmVkX2luX2Fub3RoZXJfbm9kZV9tb2R1bGVzX2ZvbGRlcl84MDM2XCIsXCJZb3UgY2Fubm90IHJlbmFtZSBlbGVtZW50cyB0aGF0IGFyZSBkZWZpbmVkIGluIGFub3RoZXIgJ25vZGVfbW9kdWxlcycgZm9sZGVyLlwiKSxUeXBlX3NhdGlzZmFjdGlvbl9leHByZXNzaW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXM6aSg4MDM3LDEsXCJUeXBlX3NhdGlzZmFjdGlvbl9leHByZXNzaW9uc19jYW5fb25seV9iZV91c2VkX2luX1R5cGVTY3JpcHRfZmlsZXNfODAzN1wiLFwiVHlwZSBzYXRpc2ZhY3Rpb24gZXhwcmVzc2lvbnMgY2FuIG9ubHkgYmUgdXNlZCBpbiBUeXBlU2NyaXB0IGZpbGVzLlwiKSxEZWNvcmF0b3JzX21heV9ub3RfYXBwZWFyX2FmdGVyX2V4cG9ydF9vcl9leHBvcnRfZGVmYXVsdF9pZl90aGV5X2Fsc29fYXBwZWFyX2JlZm9yZV9leHBvcnQ6aSg4MDM4LDEsXCJEZWNvcmF0b3JzX21heV9ub3RfYXBwZWFyX2FmdGVyX2V4cG9ydF9vcl9leHBvcnRfZGVmYXVsdF9pZl90aGV5X2Fsc29fYXBwZWFyX2JlZm9yZV9leHBvcnRfODAzOFwiLFwiRGVjb3JhdG9ycyBtYXkgbm90IGFwcGVhciBhZnRlciAnZXhwb3J0JyBvciAnZXhwb3J0IGRlZmF1bHQnIGlmIHRoZXkgYWxzbyBhcHBlYXIgYmVmb3JlICdleHBvcnQnLlwiKSxBX0pTRG9jX3RlbXBsYXRlX3RhZ19tYXlfbm90X2ZvbGxvd19hX3R5cGVkZWZfY2FsbGJhY2tfb3Jfb3ZlcmxvYWRfdGFnOmkoODAzOSwxLFwiQV9KU0RvY190ZW1wbGF0ZV90YWdfbWF5X25vdF9mb2xsb3dfYV90eXBlZGVmX2NhbGxiYWNrX29yX292ZXJsb2FkX3RhZ184MDM5XCIsXCJBIEpTRG9jICdAdGVtcGxhdGUnIHRhZyBtYXkgbm90IGZvbGxvdyBhICdAdHlwZWRlZicsICdAY2FsbGJhY2snLCBvciAnQG92ZXJsb2FkJyB0YWdcIiksRGVjbGFyYXRpb25fZW1pdF9mb3JfdGhpc19maWxlX3JlcXVpcmVzX3VzaW5nX3ByaXZhdGVfbmFtZV8wX0FuX2V4cGxpY2l0X3R5cGVfYW5ub3RhdGlvbl9tYXlfdW5ibG9ja19kZWNsYXJhdGlvbl9lbWl0OmkoOTAwNSwxLFwiRGVjbGFyYXRpb25fZW1pdF9mb3JfdGhpc19maWxlX3JlcXVpcmVzX3VzaW5nX3ByaXZhdGVfbmFtZV8wX0FuX2V4cGxpY2l0X3R5cGVfYW5ub3RhdGlvbl9tYXlfdW5ibG9ja185MDA1XCIsXCJEZWNsYXJhdGlvbiBlbWl0IGZvciB0aGlzIGZpbGUgcmVxdWlyZXMgdXNpbmcgcHJpdmF0ZSBuYW1lICd7MH0nLiBBbiBleHBsaWNpdCB0eXBlIGFubm90YXRpb24gbWF5IHVuYmxvY2sgZGVjbGFyYXRpb24gZW1pdC5cIiksRGVjbGFyYXRpb25fZW1pdF9mb3JfdGhpc19maWxlX3JlcXVpcmVzX3VzaW5nX3ByaXZhdGVfbmFtZV8wX2Zyb21fbW9kdWxlXzFfQW5fZXhwbGljaXRfdHlwZV9hbm5vdGF0aW9uX21heV91bmJsb2NrX2RlY2xhcmF0aW9uX2VtaXQ6aSg5MDA2LDEsXCJEZWNsYXJhdGlvbl9lbWl0X2Zvcl90aGlzX2ZpbGVfcmVxdWlyZXNfdXNpbmdfcHJpdmF0ZV9uYW1lXzBfZnJvbV9tb2R1bGVfMV9Bbl9leHBsaWNpdF90eXBlX2Fubm90YXRpXzkwMDZcIixcIkRlY2xhcmF0aW9uIGVtaXQgZm9yIHRoaXMgZmlsZSByZXF1aXJlcyB1c2luZyBwcml2YXRlIG5hbWUgJ3swfScgZnJvbSBtb2R1bGUgJ3sxfScuIEFuIGV4cGxpY2l0IHR5cGUgYW5ub3RhdGlvbiBtYXkgdW5ibG9jayBkZWNsYXJhdGlvbiBlbWl0LlwiKSxKU1hfYXR0cmlidXRlc19tdXN0X29ubHlfYmVfYXNzaWduZWRfYV9ub25fZW1wdHlfZXhwcmVzc2lvbjppKDE3ZTMsMSxcIkpTWF9hdHRyaWJ1dGVzX211c3Rfb25seV9iZV9hc3NpZ25lZF9hX25vbl9lbXB0eV9leHByZXNzaW9uXzE3MDAwXCIsXCJKU1ggYXR0cmlidXRlcyBtdXN0IG9ubHkgYmUgYXNzaWduZWQgYSBub24tZW1wdHkgJ2V4cHJlc3Npb24nLlwiKSxKU1hfZWxlbWVudHNfY2Fubm90X2hhdmVfbXVsdGlwbGVfYXR0cmlidXRlc193aXRoX3RoZV9zYW1lX25hbWU6aSgxNzAwMSwxLFwiSlNYX2VsZW1lbnRzX2Nhbm5vdF9oYXZlX211bHRpcGxlX2F0dHJpYnV0ZXNfd2l0aF90aGVfc2FtZV9uYW1lXzE3MDAxXCIsXCJKU1ggZWxlbWVudHMgY2Fubm90IGhhdmUgbXVsdGlwbGUgYXR0cmlidXRlcyB3aXRoIHRoZSBzYW1lIG5hbWUuXCIpLEV4cGVjdGVkX2NvcnJlc3BvbmRpbmdfSlNYX2Nsb3NpbmdfdGFnX2Zvcl8wOmkoMTcwMDIsMSxcIkV4cGVjdGVkX2NvcnJlc3BvbmRpbmdfSlNYX2Nsb3NpbmdfdGFnX2Zvcl8wXzE3MDAyXCIsXCJFeHBlY3RlZCBjb3JyZXNwb25kaW5nIEpTWCBjbG9zaW5nIHRhZyBmb3IgJ3swfScuXCIpLENhbm5vdF91c2VfSlNYX3VubGVzc190aGVfanN4X2ZsYWdfaXNfcHJvdmlkZWQ6aSgxNzAwNCwxLFwiQ2Fubm90X3VzZV9KU1hfdW5sZXNzX3RoZV9qc3hfZmxhZ19pc19wcm92aWRlZF8xNzAwNFwiLFwiQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXCIpLEFfY29uc3RydWN0b3JfY2Fubm90X2NvbnRhaW5fYV9zdXBlcl9jYWxsX3doZW5faXRzX2NsYXNzX2V4dGVuZHNfbnVsbDppKDE3MDA1LDEsXCJBX2NvbnN0cnVjdG9yX2Nhbm5vdF9jb250YWluX2Ffc3VwZXJfY2FsbF93aGVuX2l0c19jbGFzc19leHRlbmRzX251bGxfMTcwMDVcIixcIkEgY29uc3RydWN0b3IgY2Fubm90IGNvbnRhaW4gYSAnc3VwZXInIGNhbGwgd2hlbiBpdHMgY2xhc3MgZXh0ZW5kcyAnbnVsbCcuXCIpLEFuX3VuYXJ5X2V4cHJlc3Npb25fd2l0aF90aGVfMF9vcGVyYXRvcl9pc19ub3RfYWxsb3dlZF9pbl90aGVfbGVmdF9oYW5kX3NpZGVfb2ZfYW5fZXhwb25lbnRpYXRpb25fZXhwcmVzc2lvbl9Db25zaWRlcl9lbmNsb3NpbmdfdGhlX2V4cHJlc3Npb25faW5fcGFyZW50aGVzZXM6aSgxNzAwNiwxLFwiQW5fdW5hcnlfZXhwcmVzc2lvbl93aXRoX3RoZV8wX29wZXJhdG9yX2lzX25vdF9hbGxvd2VkX2luX3RoZV9sZWZ0X2hhbmRfc2lkZV9vZl9hbl9leHBvbmVudGlhdGlvbl9leF8xNzAwNlwiLFwiQW4gdW5hcnkgZXhwcmVzc2lvbiB3aXRoIHRoZSAnezB9JyBvcGVyYXRvciBpcyBub3QgYWxsb3dlZCBpbiB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbi4gQ29uc2lkZXIgZW5jbG9zaW5nIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2VzLlwiKSxBX3R5cGVfYXNzZXJ0aW9uX2V4cHJlc3Npb25faXNfbm90X2FsbG93ZWRfaW5fdGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2V4cG9uZW50aWF0aW9uX2V4cHJlc3Npb25fQ29uc2lkZXJfZW5jbG9zaW5nX3RoZV9leHByZXNzaW9uX2luX3BhcmVudGhlc2VzOmkoMTcwMDcsMSxcIkFfdHlwZV9hc3NlcnRpb25fZXhwcmVzc2lvbl9pc19ub3RfYWxsb3dlZF9pbl90aGVfbGVmdF9oYW5kX3NpZGVfb2ZfYW5fZXhwb25lbnRpYXRpb25fZXhwcmVzc2lvbl9Db25fMTcwMDdcIixcIkEgdHlwZSBhc3NlcnRpb24gZXhwcmVzc2lvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbi4gQ29uc2lkZXIgZW5jbG9zaW5nIHRoZSBleHByZXNzaW9uIGluIHBhcmVudGhlc2VzLlwiKSxKU1hfZWxlbWVudF8wX2hhc19ub19jb3JyZXNwb25kaW5nX2Nsb3NpbmdfdGFnOmkoMTcwMDgsMSxcIkpTWF9lbGVtZW50XzBfaGFzX25vX2NvcnJlc3BvbmRpbmdfY2xvc2luZ190YWdfMTcwMDhcIixcIkpTWCBlbGVtZW50ICd7MH0nIGhhcyBubyBjb3JyZXNwb25kaW5nIGNsb3NpbmcgdGFnLlwiKSxzdXBlcl9tdXN0X2JlX2NhbGxlZF9iZWZvcmVfYWNjZXNzaW5nX3RoaXNfaW5fdGhlX2NvbnN0cnVjdG9yX29mX2FfZGVyaXZlZF9jbGFzczppKDE3MDA5LDEsXCJzdXBlcl9tdXN0X2JlX2NhbGxlZF9iZWZvcmVfYWNjZXNzaW5nX3RoaXNfaW5fdGhlX2NvbnN0cnVjdG9yX29mX2FfZGVyaXZlZF9jbGFzc18xNzAwOVwiLFwiJ3N1cGVyJyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYWNjZXNzaW5nICd0aGlzJyBpbiB0aGUgY29uc3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNzLlwiKSxVbmtub3duX3R5cGVfYWNxdWlzaXRpb25fb3B0aW9uXzA6aSgxNzAxMCwxLFwiVW5rbm93bl90eXBlX2FjcXVpc2l0aW9uX29wdGlvbl8wXzE3MDEwXCIsXCJVbmtub3duIHR5cGUgYWNxdWlzaXRpb24gb3B0aW9uICd7MH0nLlwiKSxzdXBlcl9tdXN0X2JlX2NhbGxlZF9iZWZvcmVfYWNjZXNzaW5nX2FfcHJvcGVydHlfb2Zfc3VwZXJfaW5fdGhlX2NvbnN0cnVjdG9yX29mX2FfZGVyaXZlZF9jbGFzczppKDE3MDExLDEsXCJzdXBlcl9tdXN0X2JlX2NhbGxlZF9iZWZvcmVfYWNjZXNzaW5nX2FfcHJvcGVydHlfb2Zfc3VwZXJfaW5fdGhlX2NvbnN0cnVjdG9yX29mX2FfZGVyaXZlZF9jbGFzc18xNzAxMVwiLFwiJ3N1cGVyJyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgb2YgJ3N1cGVyJyBpbiB0aGUgY29uc3RydWN0b3Igb2YgYSBkZXJpdmVkIGNsYXNzLlwiKSxfMF9pc19ub3RfYV92YWxpZF9tZXRhX3Byb3BlcnR5X2Zvcl9rZXl3b3JkXzFfRGlkX3lvdV9tZWFuXzI6aSgxNzAxMiwxLFwiXzBfaXNfbm90X2FfdmFsaWRfbWV0YV9wcm9wZXJ0eV9mb3Jfa2V5d29yZF8xX0RpZF95b3VfbWVhbl8yXzE3MDEyXCIsXCInezB9JyBpcyBub3QgYSB2YWxpZCBtZXRhLXByb3BlcnR5IGZvciBrZXl3b3JkICd7MX0nLiBEaWQgeW91IG1lYW4gJ3syfSc/XCIpLE1ldGFfcHJvcGVydHlfMF9pc19vbmx5X2FsbG93ZWRfaW5fdGhlX2JvZHlfb2ZfYV9mdW5jdGlvbl9kZWNsYXJhdGlvbl9mdW5jdGlvbl9leHByZXNzaW9uX29yX2NvbnN0cnVjdG9yOmkoMTcwMTMsMSxcIk1ldGFfcHJvcGVydHlfMF9pc19vbmx5X2FsbG93ZWRfaW5fdGhlX2JvZHlfb2ZfYV9mdW5jdGlvbl9kZWNsYXJhdGlvbl9mdW5jdGlvbl9leHByZXNzaW9uX29yX2NvbnN0cnVfMTcwMTNcIixcIk1ldGEtcHJvcGVydHkgJ3swfScgaXMgb25seSBhbGxvd2VkIGluIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24sIGZ1bmN0aW9uIGV4cHJlc3Npb24sIG9yIGNvbnN0cnVjdG9yLlwiKSxKU1hfZnJhZ21lbnRfaGFzX25vX2NvcnJlc3BvbmRpbmdfY2xvc2luZ190YWc6aSgxNzAxNCwxLFwiSlNYX2ZyYWdtZW50X2hhc19ub19jb3JyZXNwb25kaW5nX2Nsb3NpbmdfdGFnXzE3MDE0XCIsXCJKU1ggZnJhZ21lbnQgaGFzIG5vIGNvcnJlc3BvbmRpbmcgY2xvc2luZyB0YWcuXCIpLEV4cGVjdGVkX2NvcnJlc3BvbmRpbmdfY2xvc2luZ190YWdfZm9yX0pTWF9mcmFnbWVudDppKDE3MDE1LDEsXCJFeHBlY3RlZF9jb3JyZXNwb25kaW5nX2Nsb3NpbmdfdGFnX2Zvcl9KU1hfZnJhZ21lbnRfMTcwMTVcIixcIkV4cGVjdGVkIGNvcnJlc3BvbmRpbmcgY2xvc2luZyB0YWcgZm9yIEpTWCBmcmFnbWVudC5cIiksVGhlX2pzeEZyYWdtZW50RmFjdG9yeV9jb21waWxlcl9vcHRpb25fbXVzdF9iZV9wcm92aWRlZF90b191c2VfSlNYX2ZyYWdtZW50c193aXRoX3RoZV9qc3hGYWN0b3J5X2NvbXBpbGVyX29wdGlvbjppKDE3MDE2LDEsXCJUaGVfanN4RnJhZ21lbnRGYWN0b3J5X2NvbXBpbGVyX29wdGlvbl9tdXN0X2JlX3Byb3ZpZGVkX3RvX3VzZV9KU1hfZnJhZ21lbnRzX3dpdGhfdGhlX2pzeEZhY3RvcnlfY29tXzE3MDE2XCIsXCJUaGUgJ2pzeEZyYWdtZW50RmFjdG9yeScgY29tcGlsZXIgb3B0aW9uIG11c3QgYmUgcHJvdmlkZWQgdG8gdXNlIEpTWCBmcmFnbWVudHMgd2l0aCB0aGUgJ2pzeEZhY3RvcnknIGNvbXBpbGVyIG9wdGlvbi5cIiksQW5fanN4RnJhZ19wcmFnbWFfaXNfcmVxdWlyZWRfd2hlbl91c2luZ19hbl9qc3hfcHJhZ21hX3dpdGhfSlNYX2ZyYWdtZW50czppKDE3MDE3LDEsXCJBbl9qc3hGcmFnX3ByYWdtYV9pc19yZXF1aXJlZF93aGVuX3VzaW5nX2FuX2pzeF9wcmFnbWFfd2l0aF9KU1hfZnJhZ21lbnRzXzE3MDE3XCIsXCJBbiBAanN4RnJhZyBwcmFnbWEgaXMgcmVxdWlyZWQgd2hlbiB1c2luZyBhbiBAanN4IHByYWdtYSB3aXRoIEpTWCBmcmFnbWVudHMuXCIpLFVua25vd25fdHlwZV9hY3F1aXNpdGlvbl9vcHRpb25fMF9EaWRfeW91X21lYW5fMTppKDE3MDE4LDEsXCJVbmtub3duX3R5cGVfYWNxdWlzaXRpb25fb3B0aW9uXzBfRGlkX3lvdV9tZWFuXzFfMTcwMThcIixcIlVua25vd24gdHlwZSBhY3F1aXNpdGlvbiBvcHRpb24gJ3swfScuIERpZCB5b3UgbWVhbiAnezF9Jz9cIiksXzBfYXRfdGhlX2VuZF9vZl9hX3R5cGVfaXNfbm90X3ZhbGlkX1R5cGVTY3JpcHRfc3ludGF4X0RpZF95b3VfbWVhbl90b193cml0ZV8xOmkoMTcwMTksMSxcIl8wX2F0X3RoZV9lbmRfb2ZfYV90eXBlX2lzX25vdF92YWxpZF9UeXBlU2NyaXB0X3N5bnRheF9EaWRfeW91X21lYW5fdG9fd3JpdGVfMV8xNzAxOVwiLFwiJ3swfScgYXQgdGhlIGVuZCBvZiBhIHR5cGUgaXMgbm90IHZhbGlkIFR5cGVTY3JpcHQgc3ludGF4LiBEaWQgeW91IG1lYW4gdG8gd3JpdGUgJ3sxfSc/XCIpLF8wX2F0X3RoZV9zdGFydF9vZl9hX3R5cGVfaXNfbm90X3ZhbGlkX1R5cGVTY3JpcHRfc3ludGF4X0RpZF95b3VfbWVhbl90b193cml0ZV8xOmkoMTcwMjAsMSxcIl8wX2F0X3RoZV9zdGFydF9vZl9hX3R5cGVfaXNfbm90X3ZhbGlkX1R5cGVTY3JpcHRfc3ludGF4X0RpZF95b3VfbWVhbl90b193cml0ZV8xXzE3MDIwXCIsXCInezB9JyBhdCB0aGUgc3RhcnQgb2YgYSB0eXBlIGlzIG5vdCB2YWxpZCBUeXBlU2NyaXB0IHN5bnRheC4gRGlkIHlvdSBtZWFuIHRvIHdyaXRlICd7MX0nP1wiKSxDaXJjdWxhcml0eV9kZXRlY3RlZF93aGlsZV9yZXNvbHZpbmdfY29uZmlndXJhdGlvbl9Db2xvbl8wOmkoMThlMywxLFwiQ2lyY3VsYXJpdHlfZGV0ZWN0ZWRfd2hpbGVfcmVzb2x2aW5nX2NvbmZpZ3VyYXRpb25fQ29sb25fMF8xODAwMFwiLFwiQ2lyY3VsYXJpdHkgZGV0ZWN0ZWQgd2hpbGUgcmVzb2x2aW5nIGNvbmZpZ3VyYXRpb246IHswfVwiKSxUaGVfZmlsZXNfbGlzdF9pbl9jb25maWdfZmlsZV8wX2lzX2VtcHR5OmkoMTgwMDIsMSxcIlRoZV9maWxlc19saXN0X2luX2NvbmZpZ19maWxlXzBfaXNfZW1wdHlfMTgwMDJcIixcIlRoZSAnZmlsZXMnIGxpc3QgaW4gY29uZmlnIGZpbGUgJ3swfScgaXMgZW1wdHkuXCIpLE5vX2lucHV0c193ZXJlX2ZvdW5kX2luX2NvbmZpZ19maWxlXzBfU3BlY2lmaWVkX2luY2x1ZGVfcGF0aHNfd2VyZV8xX2FuZF9leGNsdWRlX3BhdGhzX3dlcmVfMjppKDE4MDAzLDEsXCJOb19pbnB1dHNfd2VyZV9mb3VuZF9pbl9jb25maWdfZmlsZV8wX1NwZWNpZmllZF9pbmNsdWRlX3BhdGhzX3dlcmVfMV9hbmRfZXhjbHVkZV9wYXRoc193ZXJlXzJfMTgwMDNcIixcIk5vIGlucHV0cyB3ZXJlIGZvdW5kIGluIGNvbmZpZyBmaWxlICd7MH0nLiBTcGVjaWZpZWQgJ2luY2x1ZGUnIHBhdGhzIHdlcmUgJ3sxfScgYW5kICdleGNsdWRlJyBwYXRocyB3ZXJlICd7Mn0nLlwiKSxGaWxlX2lzX2FfQ29tbW9uSlNfbW9kdWxlX2l0X21heV9iZV9jb252ZXJ0ZWRfdG9fYW5fRVNfbW9kdWxlOmkoODAwMDEsMixcIkZpbGVfaXNfYV9Db21tb25KU19tb2R1bGVfaXRfbWF5X2JlX2NvbnZlcnRlZF90b19hbl9FU19tb2R1bGVfODAwMDFcIixcIkZpbGUgaXMgYSBDb21tb25KUyBtb2R1bGU7IGl0IG1heSBiZSBjb252ZXJ0ZWQgdG8gYW4gRVMgbW9kdWxlLlwiKSxUaGlzX2NvbnN0cnVjdG9yX2Z1bmN0aW9uX21heV9iZV9jb252ZXJ0ZWRfdG9fYV9jbGFzc19kZWNsYXJhdGlvbjppKDgwMDAyLDIsXCJUaGlzX2NvbnN0cnVjdG9yX2Z1bmN0aW9uX21heV9iZV9jb252ZXJ0ZWRfdG9fYV9jbGFzc19kZWNsYXJhdGlvbl84MDAwMlwiLFwiVGhpcyBjb25zdHJ1Y3RvciBmdW5jdGlvbiBtYXkgYmUgY29udmVydGVkIHRvIGEgY2xhc3MgZGVjbGFyYXRpb24uXCIpLEltcG9ydF9tYXlfYmVfY29udmVydGVkX3RvX2FfZGVmYXVsdF9pbXBvcnQ6aSg4MDAwMywyLFwiSW1wb3J0X21heV9iZV9jb252ZXJ0ZWRfdG9fYV9kZWZhdWx0X2ltcG9ydF84MDAwM1wiLFwiSW1wb3J0IG1heSBiZSBjb252ZXJ0ZWQgdG8gYSBkZWZhdWx0IGltcG9ydC5cIiksSlNEb2NfdHlwZXNfbWF5X2JlX21vdmVkX3RvX1R5cGVTY3JpcHRfdHlwZXM6aSg4MDAwNCwyLFwiSlNEb2NfdHlwZXNfbWF5X2JlX21vdmVkX3RvX1R5cGVTY3JpcHRfdHlwZXNfODAwMDRcIixcIkpTRG9jIHR5cGVzIG1heSBiZSBtb3ZlZCB0byBUeXBlU2NyaXB0IHR5cGVzLlwiKSxyZXF1aXJlX2NhbGxfbWF5X2JlX2NvbnZlcnRlZF90b19hbl9pbXBvcnQ6aSg4MDAwNSwyLFwicmVxdWlyZV9jYWxsX21heV9iZV9jb252ZXJ0ZWRfdG9fYW5faW1wb3J0XzgwMDA1XCIsXCIncmVxdWlyZScgY2FsbCBtYXkgYmUgY29udmVydGVkIHRvIGFuIGltcG9ydC5cIiksVGhpc19tYXlfYmVfY29udmVydGVkX3RvX2FuX2FzeW5jX2Z1bmN0aW9uOmkoODAwMDYsMixcIlRoaXNfbWF5X2JlX2NvbnZlcnRlZF90b19hbl9hc3luY19mdW5jdGlvbl84MDAwNlwiLFwiVGhpcyBtYXkgYmUgY29udmVydGVkIHRvIGFuIGFzeW5jIGZ1bmN0aW9uLlwiKSxhd2FpdF9oYXNfbm9fZWZmZWN0X29uX3RoZV90eXBlX29mX3RoaXNfZXhwcmVzc2lvbjppKDgwMDA3LDIsXCJhd2FpdF9oYXNfbm9fZWZmZWN0X29uX3RoZV90eXBlX29mX3RoaXNfZXhwcmVzc2lvbl84MDAwN1wiLFwiJ2F3YWl0JyBoYXMgbm8gZWZmZWN0IG9uIHRoZSB0eXBlIG9mIHRoaXMgZXhwcmVzc2lvbi5cIiksTnVtZXJpY19saXRlcmFsc193aXRoX2Fic29sdXRlX3ZhbHVlc19lcXVhbF90b18yXzUzX29yX2dyZWF0ZXJfYXJlX3Rvb19sYXJnZV90b19iZV9yZXByZXNlbnRlZF9hY2N1cmF0ZWx5X2FzX2ludGVnZXJzOmkoODAwMDgsMixcIk51bWVyaWNfbGl0ZXJhbHNfd2l0aF9hYnNvbHV0ZV92YWx1ZXNfZXF1YWxfdG9fMl81M19vcl9ncmVhdGVyX2FyZV90b29fbGFyZ2VfdG9fYmVfcmVwcmVzZW50ZWRfYWNjdXJfODAwMDhcIixcIk51bWVyaWMgbGl0ZXJhbHMgd2l0aCBhYnNvbHV0ZSB2YWx1ZXMgZXF1YWwgdG8gMl41MyBvciBncmVhdGVyIGFyZSB0b28gbGFyZ2UgdG8gYmUgcmVwcmVzZW50ZWQgYWNjdXJhdGVseSBhcyBpbnRlZ2Vycy5cIiksSlNEb2NfdHlwZWRlZl9tYXlfYmVfY29udmVydGVkX3RvX1R5cGVTY3JpcHRfdHlwZTppKDgwMDA5LDIsXCJKU0RvY190eXBlZGVmX21heV9iZV9jb252ZXJ0ZWRfdG9fVHlwZVNjcmlwdF90eXBlXzgwMDA5XCIsXCJKU0RvYyB0eXBlZGVmIG1heSBiZSBjb252ZXJ0ZWQgdG8gVHlwZVNjcmlwdCB0eXBlLlwiKSxKU0RvY190eXBlZGVmc19tYXlfYmVfY29udmVydGVkX3RvX1R5cGVTY3JpcHRfdHlwZXM6aSg4MDAxMCwyLFwiSlNEb2NfdHlwZWRlZnNfbWF5X2JlX2NvbnZlcnRlZF90b19UeXBlU2NyaXB0X3R5cGVzXzgwMDEwXCIsXCJKU0RvYyB0eXBlZGVmcyBtYXkgYmUgY29udmVydGVkIHRvIFR5cGVTY3JpcHQgdHlwZXMuXCIpLEFkZF9taXNzaW5nX3N1cGVyX2NhbGw6aSg5MDAwMSwzLFwiQWRkX21pc3Npbmdfc3VwZXJfY2FsbF85MDAwMVwiLFwiQWRkIG1pc3NpbmcgJ3N1cGVyKCknIGNhbGxcIiksTWFrZV9zdXBlcl9jYWxsX3RoZV9maXJzdF9zdGF0ZW1lbnRfaW5fdGhlX2NvbnN0cnVjdG9yOmkoOTAwMDIsMyxcIk1ha2Vfc3VwZXJfY2FsbF90aGVfZmlyc3Rfc3RhdGVtZW50X2luX3RoZV9jb25zdHJ1Y3Rvcl85MDAwMlwiLFwiTWFrZSAnc3VwZXIoKScgY2FsbCB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIHRoZSBjb25zdHJ1Y3RvclwiKSxDaGFuZ2VfZXh0ZW5kc190b19pbXBsZW1lbnRzOmkoOTAwMDMsMyxcIkNoYW5nZV9leHRlbmRzX3RvX2ltcGxlbWVudHNfOTAwMDNcIixcIkNoYW5nZSAnZXh0ZW5kcycgdG8gJ2ltcGxlbWVudHMnXCIpLFJlbW92ZV91bnVzZWRfZGVjbGFyYXRpb25fZm9yX0NvbG9uXzA6aSg5MDAwNCwzLFwiUmVtb3ZlX3VudXNlZF9kZWNsYXJhdGlvbl9mb3JfQ29sb25fMF85MDAwNFwiLFwiUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbiBmb3I6ICd7MH0nXCIpLFJlbW92ZV9pbXBvcnRfZnJvbV8wOmkoOTAwMDUsMyxcIlJlbW92ZV9pbXBvcnRfZnJvbV8wXzkwMDA1XCIsXCJSZW1vdmUgaW1wb3J0IGZyb20gJ3swfSdcIiksSW1wbGVtZW50X2ludGVyZmFjZV8wOmkoOTAwMDYsMyxcIkltcGxlbWVudF9pbnRlcmZhY2VfMF85MDAwNlwiLFwiSW1wbGVtZW50IGludGVyZmFjZSAnezB9J1wiKSxJbXBsZW1lbnRfaW5oZXJpdGVkX2Fic3RyYWN0X2NsYXNzOmkoOTAwMDcsMyxcIkltcGxlbWVudF9pbmhlcml0ZWRfYWJzdHJhY3RfY2xhc3NfOTAwMDdcIixcIkltcGxlbWVudCBpbmhlcml0ZWQgYWJzdHJhY3QgY2xhc3NcIiksQWRkXzBfdG9fdW5yZXNvbHZlZF92YXJpYWJsZTppKDkwMDA4LDMsXCJBZGRfMF90b191bnJlc29sdmVkX3ZhcmlhYmxlXzkwMDA4XCIsXCJBZGQgJ3swfS4nIHRvIHVucmVzb2x2ZWQgdmFyaWFibGVcIiksUmVtb3ZlX3ZhcmlhYmxlX3N0YXRlbWVudDppKDkwMDEwLDMsXCJSZW1vdmVfdmFyaWFibGVfc3RhdGVtZW50XzkwMDEwXCIsXCJSZW1vdmUgdmFyaWFibGUgc3RhdGVtZW50XCIpLFJlbW92ZV90ZW1wbGF0ZV90YWc6aSg5MDAxMSwzLFwiUmVtb3ZlX3RlbXBsYXRlX3RhZ185MDAxMVwiLFwiUmVtb3ZlIHRlbXBsYXRlIHRhZ1wiKSxSZW1vdmVfdHlwZV9wYXJhbWV0ZXJzOmkoOTAwMTIsMyxcIlJlbW92ZV90eXBlX3BhcmFtZXRlcnNfOTAwMTJcIixcIlJlbW92ZSB0eXBlIHBhcmFtZXRlcnNcIiksSW1wb3J0XzBfZnJvbV8xOmkoOTAwMTMsMyxcIkltcG9ydF8wX2Zyb21fMV85MDAxM1wiLGBJbXBvcnQgJ3swfScgZnJvbSBcInsxfVwiYCksQ2hhbmdlXzBfdG9fMTppKDkwMDE0LDMsXCJDaGFuZ2VfMF90b18xXzkwMDE0XCIsXCJDaGFuZ2UgJ3swfScgdG8gJ3sxfSdcIiksRGVjbGFyZV9wcm9wZXJ0eV8wOmkoOTAwMTYsMyxcIkRlY2xhcmVfcHJvcGVydHlfMF85MDAxNlwiLFwiRGVjbGFyZSBwcm9wZXJ0eSAnezB9J1wiKSxBZGRfaW5kZXhfc2lnbmF0dXJlX2Zvcl9wcm9wZXJ0eV8wOmkoOTAwMTcsMyxcIkFkZF9pbmRleF9zaWduYXR1cmVfZm9yX3Byb3BlcnR5XzBfOTAwMTdcIixcIkFkZCBpbmRleCBzaWduYXR1cmUgZm9yIHByb3BlcnR5ICd7MH0nXCIpLERpc2FibGVfY2hlY2tpbmdfZm9yX3RoaXNfZmlsZTppKDkwMDE4LDMsXCJEaXNhYmxlX2NoZWNraW5nX2Zvcl90aGlzX2ZpbGVfOTAwMThcIixcIkRpc2FibGUgY2hlY2tpbmcgZm9yIHRoaXMgZmlsZVwiKSxJZ25vcmVfdGhpc19lcnJvcl9tZXNzYWdlOmkoOTAwMTksMyxcIklnbm9yZV90aGlzX2Vycm9yX21lc3NhZ2VfOTAwMTlcIixcIklnbm9yZSB0aGlzIGVycm9yIG1lc3NhZ2VcIiksSW5pdGlhbGl6ZV9wcm9wZXJ0eV8wX2luX3RoZV9jb25zdHJ1Y3RvcjppKDkwMDIwLDMsXCJJbml0aWFsaXplX3Byb3BlcnR5XzBfaW5fdGhlX2NvbnN0cnVjdG9yXzkwMDIwXCIsXCJJbml0aWFsaXplIHByb3BlcnR5ICd7MH0nIGluIHRoZSBjb25zdHJ1Y3RvclwiKSxJbml0aWFsaXplX3N0YXRpY19wcm9wZXJ0eV8wOmkoOTAwMjEsMyxcIkluaXRpYWxpemVfc3RhdGljX3Byb3BlcnR5XzBfOTAwMjFcIixcIkluaXRpYWxpemUgc3RhdGljIHByb3BlcnR5ICd7MH0nXCIpLENoYW5nZV9zcGVsbGluZ190b18wOmkoOTAwMjIsMyxcIkNoYW5nZV9zcGVsbGluZ190b18wXzkwMDIyXCIsXCJDaGFuZ2Ugc3BlbGxpbmcgdG8gJ3swfSdcIiksRGVjbGFyZV9tZXRob2RfMDppKDkwMDIzLDMsXCJEZWNsYXJlX21ldGhvZF8wXzkwMDIzXCIsXCJEZWNsYXJlIG1ldGhvZCAnezB9J1wiKSxEZWNsYXJlX3N0YXRpY19tZXRob2RfMDppKDkwMDI0LDMsXCJEZWNsYXJlX3N0YXRpY19tZXRob2RfMF85MDAyNFwiLFwiRGVjbGFyZSBzdGF0aWMgbWV0aG9kICd7MH0nXCIpLFByZWZpeF8wX3dpdGhfYW5fdW5kZXJzY29yZTppKDkwMDI1LDMsXCJQcmVmaXhfMF93aXRoX2FuX3VuZGVyc2NvcmVfOTAwMjVcIixcIlByZWZpeCAnezB9JyB3aXRoIGFuIHVuZGVyc2NvcmVcIiksUmV3cml0ZV9hc190aGVfaW5kZXhlZF9hY2Nlc3NfdHlwZV8wOmkoOTAwMjYsMyxcIlJld3JpdGVfYXNfdGhlX2luZGV4ZWRfYWNjZXNzX3R5cGVfMF85MDAyNlwiLFwiUmV3cml0ZSBhcyB0aGUgaW5kZXhlZCBhY2Nlc3MgdHlwZSAnezB9J1wiKSxEZWNsYXJlX3N0YXRpY19wcm9wZXJ0eV8wOmkoOTAwMjcsMyxcIkRlY2xhcmVfc3RhdGljX3Byb3BlcnR5XzBfOTAwMjdcIixcIkRlY2xhcmUgc3RhdGljIHByb3BlcnR5ICd7MH0nXCIpLENhbGxfZGVjb3JhdG9yX2V4cHJlc3Npb246aSg5MDAyOCwzLFwiQ2FsbF9kZWNvcmF0b3JfZXhwcmVzc2lvbl85MDAyOFwiLFwiQ2FsbCBkZWNvcmF0b3IgZXhwcmVzc2lvblwiKSxBZGRfYXN5bmNfbW9kaWZpZXJfdG9fY29udGFpbmluZ19mdW5jdGlvbjppKDkwMDI5LDMsXCJBZGRfYXN5bmNfbW9kaWZpZXJfdG9fY29udGFpbmluZ19mdW5jdGlvbl85MDAyOVwiLFwiQWRkIGFzeW5jIG1vZGlmaWVyIHRvIGNvbnRhaW5pbmcgZnVuY3Rpb25cIiksUmVwbGFjZV9pbmZlcl8wX3dpdGhfdW5rbm93bjppKDkwMDMwLDMsXCJSZXBsYWNlX2luZmVyXzBfd2l0aF91bmtub3duXzkwMDMwXCIsXCJSZXBsYWNlICdpbmZlciB7MH0nIHdpdGggJ3Vua25vd24nXCIpLFJlcGxhY2VfYWxsX3VudXNlZF9pbmZlcl93aXRoX3Vua25vd246aSg5MDAzMSwzLFwiUmVwbGFjZV9hbGxfdW51c2VkX2luZmVyX3dpdGhfdW5rbm93bl85MDAzMVwiLFwiUmVwbGFjZSBhbGwgdW51c2VkICdpbmZlcicgd2l0aCAndW5rbm93bidcIiksQWRkX3BhcmFtZXRlcl9uYW1lOmkoOTAwMzQsMyxcIkFkZF9wYXJhbWV0ZXJfbmFtZV85MDAzNFwiLFwiQWRkIHBhcmFtZXRlciBuYW1lXCIpLERlY2xhcmVfcHJpdmF0ZV9wcm9wZXJ0eV8wOmkoOTAwMzUsMyxcIkRlY2xhcmVfcHJpdmF0ZV9wcm9wZXJ0eV8wXzkwMDM1XCIsXCJEZWNsYXJlIHByaXZhdGUgcHJvcGVydHkgJ3swfSdcIiksUmVwbGFjZV8wX3dpdGhfUHJvbWlzZV8xOmkoOTAwMzYsMyxcIlJlcGxhY2VfMF93aXRoX1Byb21pc2VfMV85MDAzNlwiLFwiUmVwbGFjZSAnezB9JyB3aXRoICdQcm9taXNlPHsxfT4nXCIpLEZpeF9hbGxfaW5jb3JyZWN0X3JldHVybl90eXBlX29mX2FuX2FzeW5jX2Z1bmN0aW9uczppKDkwMDM3LDMsXCJGaXhfYWxsX2luY29ycmVjdF9yZXR1cm5fdHlwZV9vZl9hbl9hc3luY19mdW5jdGlvbnNfOTAwMzdcIixcIkZpeCBhbGwgaW5jb3JyZWN0IHJldHVybiB0eXBlIG9mIGFuIGFzeW5jIGZ1bmN0aW9uc1wiKSxEZWNsYXJlX3ByaXZhdGVfbWV0aG9kXzA6aSg5MDAzOCwzLFwiRGVjbGFyZV9wcml2YXRlX21ldGhvZF8wXzkwMDM4XCIsXCJEZWNsYXJlIHByaXZhdGUgbWV0aG9kICd7MH0nXCIpLFJlbW92ZV91bnVzZWRfZGVzdHJ1Y3R1cmluZ19kZWNsYXJhdGlvbjppKDkwMDM5LDMsXCJSZW1vdmVfdW51c2VkX2Rlc3RydWN0dXJpbmdfZGVjbGFyYXRpb25fOTAwMzlcIixcIlJlbW92ZSB1bnVzZWQgZGVzdHJ1Y3R1cmluZyBkZWNsYXJhdGlvblwiKSxSZW1vdmVfdW51c2VkX2RlY2xhcmF0aW9uc19mb3JfQ29sb25fMDppKDkwMDQxLDMsXCJSZW1vdmVfdW51c2VkX2RlY2xhcmF0aW9uc19mb3JfQ29sb25fMF85MDA0MVwiLFwiUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbnMgZm9yOiAnezB9J1wiKSxEZWNsYXJlX2FfcHJpdmF0ZV9maWVsZF9uYW1lZF8wOmkoOTAwNTMsMyxcIkRlY2xhcmVfYV9wcml2YXRlX2ZpZWxkX25hbWVkXzBfOTAwNTNcIixcIkRlY2xhcmUgYSBwcml2YXRlIGZpZWxkIG5hbWVkICd7MH0nLlwiKSxJbmNsdWRlc19pbXBvcnRzX29mX3R5cGVzX3JlZmVyZW5jZWRfYnlfMDppKDkwMDU0LDMsXCJJbmNsdWRlc19pbXBvcnRzX29mX3R5cGVzX3JlZmVyZW5jZWRfYnlfMF85MDA1NFwiLFwiSW5jbHVkZXMgaW1wb3J0cyBvZiB0eXBlcyByZWZlcmVuY2VkIGJ5ICd7MH0nXCIpLFJlbW92ZV90eXBlX2Zyb21faW1wb3J0X2RlY2xhcmF0aW9uX2Zyb21fMDppKDkwMDU1LDMsXCJSZW1vdmVfdHlwZV9mcm9tX2ltcG9ydF9kZWNsYXJhdGlvbl9mcm9tXzBfOTAwNTVcIixgUmVtb3ZlICd0eXBlJyBmcm9tIGltcG9ydCBkZWNsYXJhdGlvbiBmcm9tIFwiezB9XCJgKSxSZW1vdmVfdHlwZV9mcm9tX2ltcG9ydF9vZl8wX2Zyb21fMTppKDkwMDU2LDMsXCJSZW1vdmVfdHlwZV9mcm9tX2ltcG9ydF9vZl8wX2Zyb21fMV85MDA1NlwiLGBSZW1vdmUgJ3R5cGUnIGZyb20gaW1wb3J0IG9mICd7MH0nIGZyb20gXCJ7MX1cImApLEFkZF9pbXBvcnRfZnJvbV8wOmkoOTAwNTcsMyxcIkFkZF9pbXBvcnRfZnJvbV8wXzkwMDU3XCIsJ0FkZCBpbXBvcnQgZnJvbSBcInswfVwiJyksVXBkYXRlX2ltcG9ydF9mcm9tXzA6aSg5MDA1OCwzLFwiVXBkYXRlX2ltcG9ydF9mcm9tXzBfOTAwNThcIiwnVXBkYXRlIGltcG9ydCBmcm9tIFwiezB9XCInKSxFeHBvcnRfMF9mcm9tX21vZHVsZV8xOmkoOTAwNTksMyxcIkV4cG9ydF8wX2Zyb21fbW9kdWxlXzFfOTAwNTlcIixcIkV4cG9ydCAnezB9JyBmcm9tIG1vZHVsZSAnezF9J1wiKSxFeHBvcnRfYWxsX3JlZmVyZW5jZWRfbG9jYWxzOmkoOTAwNjAsMyxcIkV4cG9ydF9hbGxfcmVmZXJlbmNlZF9sb2NhbHNfOTAwNjBcIixcIkV4cG9ydCBhbGwgcmVmZXJlbmNlZCBsb2NhbHNcIiksQ29udmVydF9mdW5jdGlvbl90b19hbl9FUzIwMTVfY2xhc3M6aSg5NTAwMSwzLFwiQ29udmVydF9mdW5jdGlvbl90b19hbl9FUzIwMTVfY2xhc3NfOTUwMDFcIixcIkNvbnZlcnQgZnVuY3Rpb24gdG8gYW4gRVMyMDE1IGNsYXNzXCIpLENvbnZlcnRfMF90b18xX2luXzA6aSg5NTAwMywzLFwiQ29udmVydF8wX3RvXzFfaW5fMF85NTAwM1wiLFwiQ29udmVydCAnezB9JyB0byAnezF9IGluIHswfSdcIiksRXh0cmFjdF90b18wX2luXzE6aSg5NTAwNCwzLFwiRXh0cmFjdF90b18wX2luXzFfOTUwMDRcIixcIkV4dHJhY3QgdG8gezB9IGluIHsxfVwiKSxFeHRyYWN0X2Z1bmN0aW9uOmkoOTUwMDUsMyxcIkV4dHJhY3RfZnVuY3Rpb25fOTUwMDVcIixcIkV4dHJhY3QgZnVuY3Rpb25cIiksRXh0cmFjdF9jb25zdGFudDppKDk1MDA2LDMsXCJFeHRyYWN0X2NvbnN0YW50Xzk1MDA2XCIsXCJFeHRyYWN0IGNvbnN0YW50XCIpLEV4dHJhY3RfdG9fMF9pbl9lbmNsb3Npbmdfc2NvcGU6aSg5NTAwNywzLFwiRXh0cmFjdF90b18wX2luX2VuY2xvc2luZ19zY29wZV85NTAwN1wiLFwiRXh0cmFjdCB0byB7MH0gaW4gZW5jbG9zaW5nIHNjb3BlXCIpLEV4dHJhY3RfdG9fMF9pbl8xX3Njb3BlOmkoOTUwMDgsMyxcIkV4dHJhY3RfdG9fMF9pbl8xX3Njb3BlXzk1MDA4XCIsXCJFeHRyYWN0IHRvIHswfSBpbiB7MX0gc2NvcGVcIiksQW5ub3RhdGVfd2l0aF90eXBlX2Zyb21fSlNEb2M6aSg5NTAwOSwzLFwiQW5ub3RhdGVfd2l0aF90eXBlX2Zyb21fSlNEb2NfOTUwMDlcIixcIkFubm90YXRlIHdpdGggdHlwZSBmcm9tIEpTRG9jXCIpLEluZmVyX3R5cGVfb2ZfMF9mcm9tX3VzYWdlOmkoOTUwMTEsMyxcIkluZmVyX3R5cGVfb2ZfMF9mcm9tX3VzYWdlXzk1MDExXCIsXCJJbmZlciB0eXBlIG9mICd7MH0nIGZyb20gdXNhZ2VcIiksSW5mZXJfcGFyYW1ldGVyX3R5cGVzX2Zyb21fdXNhZ2U6aSg5NTAxMiwzLFwiSW5mZXJfcGFyYW1ldGVyX3R5cGVzX2Zyb21fdXNhZ2VfOTUwMTJcIixcIkluZmVyIHBhcmFtZXRlciB0eXBlcyBmcm9tIHVzYWdlXCIpLENvbnZlcnRfdG9fZGVmYXVsdF9pbXBvcnQ6aSg5NTAxMywzLFwiQ29udmVydF90b19kZWZhdWx0X2ltcG9ydF85NTAxM1wiLFwiQ29udmVydCB0byBkZWZhdWx0IGltcG9ydFwiKSxJbnN0YWxsXzA6aSg5NTAxNCwzLFwiSW5zdGFsbF8wXzk1MDE0XCIsXCJJbnN0YWxsICd7MH0nXCIpLFJlcGxhY2VfaW1wb3J0X3dpdGhfMDppKDk1MDE1LDMsXCJSZXBsYWNlX2ltcG9ydF93aXRoXzBfOTUwMTVcIixcIlJlcGxhY2UgaW1wb3J0IHdpdGggJ3swfScuXCIpLFVzZV9zeW50aGV0aWNfZGVmYXVsdF9tZW1iZXI6aSg5NTAxNiwzLFwiVXNlX3N5bnRoZXRpY19kZWZhdWx0X21lbWJlcl85NTAxNlwiLFwiVXNlIHN5bnRoZXRpYyAnZGVmYXVsdCcgbWVtYmVyLlwiKSxDb252ZXJ0X3RvX0VTX21vZHVsZTppKDk1MDE3LDMsXCJDb252ZXJ0X3RvX0VTX21vZHVsZV85NTAxN1wiLFwiQ29udmVydCB0byBFUyBtb2R1bGVcIiksQWRkX3VuZGVmaW5lZF90eXBlX3RvX3Byb3BlcnR5XzA6aSg5NTAxOCwzLFwiQWRkX3VuZGVmaW5lZF90eXBlX3RvX3Byb3BlcnR5XzBfOTUwMThcIixcIkFkZCAndW5kZWZpbmVkJyB0eXBlIHRvIHByb3BlcnR5ICd7MH0nXCIpLEFkZF9pbml0aWFsaXplcl90b19wcm9wZXJ0eV8wOmkoOTUwMTksMyxcIkFkZF9pbml0aWFsaXplcl90b19wcm9wZXJ0eV8wXzk1MDE5XCIsXCJBZGQgaW5pdGlhbGl6ZXIgdG8gcHJvcGVydHkgJ3swfSdcIiksQWRkX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uX3RvX3Byb3BlcnR5XzA6aSg5NTAyMCwzLFwiQWRkX2RlZmluaXRlX2Fzc2lnbm1lbnRfYXNzZXJ0aW9uX3RvX3Byb3BlcnR5XzBfOTUwMjBcIixcIkFkZCBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbiB0byBwcm9wZXJ0eSAnezB9J1wiKSxDb252ZXJ0X2FsbF90eXBlX2xpdGVyYWxzX3RvX21hcHBlZF90eXBlOmkoOTUwMjEsMyxcIkNvbnZlcnRfYWxsX3R5cGVfbGl0ZXJhbHNfdG9fbWFwcGVkX3R5cGVfOTUwMjFcIixcIkNvbnZlcnQgYWxsIHR5cGUgbGl0ZXJhbHMgdG8gbWFwcGVkIHR5cGVcIiksQWRkX2FsbF9taXNzaW5nX21lbWJlcnM6aSg5NTAyMiwzLFwiQWRkX2FsbF9taXNzaW5nX21lbWJlcnNfOTUwMjJcIixcIkFkZCBhbGwgbWlzc2luZyBtZW1iZXJzXCIpLEluZmVyX2FsbF90eXBlc19mcm9tX3VzYWdlOmkoOTUwMjMsMyxcIkluZmVyX2FsbF90eXBlc19mcm9tX3VzYWdlXzk1MDIzXCIsXCJJbmZlciBhbGwgdHlwZXMgZnJvbSB1c2FnZVwiKSxEZWxldGVfYWxsX3VudXNlZF9kZWNsYXJhdGlvbnM6aSg5NTAyNCwzLFwiRGVsZXRlX2FsbF91bnVzZWRfZGVjbGFyYXRpb25zXzk1MDI0XCIsXCJEZWxldGUgYWxsIHVudXNlZCBkZWNsYXJhdGlvbnNcIiksUHJlZml4X2FsbF91bnVzZWRfZGVjbGFyYXRpb25zX3dpdGhfd2hlcmVfcG9zc2libGU6aSg5NTAyNSwzLFwiUHJlZml4X2FsbF91bnVzZWRfZGVjbGFyYXRpb25zX3dpdGhfd2hlcmVfcG9zc2libGVfOTUwMjVcIixcIlByZWZpeCBhbGwgdW51c2VkIGRlY2xhcmF0aW9ucyB3aXRoICdfJyB3aGVyZSBwb3NzaWJsZVwiKSxGaXhfYWxsX2RldGVjdGVkX3NwZWxsaW5nX2Vycm9yczppKDk1MDI2LDMsXCJGaXhfYWxsX2RldGVjdGVkX3NwZWxsaW5nX2Vycm9yc185NTAyNlwiLFwiRml4IGFsbCBkZXRlY3RlZCBzcGVsbGluZyBlcnJvcnNcIiksQWRkX2luaXRpYWxpemVyc190b19hbGxfdW5pbml0aWFsaXplZF9wcm9wZXJ0aWVzOmkoOTUwMjcsMyxcIkFkZF9pbml0aWFsaXplcnNfdG9fYWxsX3VuaW5pdGlhbGl6ZWRfcHJvcGVydGllc185NTAyN1wiLFwiQWRkIGluaXRpYWxpemVycyB0byBhbGwgdW5pbml0aWFsaXplZCBwcm9wZXJ0aWVzXCIpLEFkZF9kZWZpbml0ZV9hc3NpZ25tZW50X2Fzc2VydGlvbnNfdG9fYWxsX3VuaW5pdGlhbGl6ZWRfcHJvcGVydGllczppKDk1MDI4LDMsXCJBZGRfZGVmaW5pdGVfYXNzaWdubWVudF9hc3NlcnRpb25zX3RvX2FsbF91bmluaXRpYWxpemVkX3Byb3BlcnRpZXNfOTUwMjhcIixcIkFkZCBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgdG8gYWxsIHVuaW5pdGlhbGl6ZWQgcHJvcGVydGllc1wiKSxBZGRfdW5kZWZpbmVkX3R5cGVfdG9fYWxsX3VuaW5pdGlhbGl6ZWRfcHJvcGVydGllczppKDk1MDI5LDMsXCJBZGRfdW5kZWZpbmVkX3R5cGVfdG9fYWxsX3VuaW5pdGlhbGl6ZWRfcHJvcGVydGllc185NTAyOVwiLFwiQWRkIHVuZGVmaW5lZCB0eXBlIHRvIGFsbCB1bmluaXRpYWxpemVkIHByb3BlcnRpZXNcIiksQ2hhbmdlX2FsbF9qc2RvY19zdHlsZV90eXBlc190b19UeXBlU2NyaXB0OmkoOTUwMzAsMyxcIkNoYW5nZV9hbGxfanNkb2Nfc3R5bGVfdHlwZXNfdG9fVHlwZVNjcmlwdF85NTAzMFwiLFwiQ2hhbmdlIGFsbCBqc2RvYy1zdHlsZSB0eXBlcyB0byBUeXBlU2NyaXB0XCIpLENoYW5nZV9hbGxfanNkb2Nfc3R5bGVfdHlwZXNfdG9fVHlwZVNjcmlwdF9hbmRfYWRkX3VuZGVmaW5lZF90b19udWxsYWJsZV90eXBlczppKDk1MDMxLDMsXCJDaGFuZ2VfYWxsX2pzZG9jX3N0eWxlX3R5cGVzX3RvX1R5cGVTY3JpcHRfYW5kX2FkZF91bmRlZmluZWRfdG9fbnVsbGFibGVfdHlwZXNfOTUwMzFcIixcIkNoYW5nZSBhbGwganNkb2Mtc3R5bGUgdHlwZXMgdG8gVHlwZVNjcmlwdCAoYW5kIGFkZCAnfCB1bmRlZmluZWQnIHRvIG51bGxhYmxlIHR5cGVzKVwiKSxJbXBsZW1lbnRfYWxsX3VuaW1wbGVtZW50ZWRfaW50ZXJmYWNlczppKDk1MDMyLDMsXCJJbXBsZW1lbnRfYWxsX3VuaW1wbGVtZW50ZWRfaW50ZXJmYWNlc185NTAzMlwiLFwiSW1wbGVtZW50IGFsbCB1bmltcGxlbWVudGVkIGludGVyZmFjZXNcIiksSW5zdGFsbF9hbGxfbWlzc2luZ190eXBlc19wYWNrYWdlczppKDk1MDMzLDMsXCJJbnN0YWxsX2FsbF9taXNzaW5nX3R5cGVzX3BhY2thZ2VzXzk1MDMzXCIsXCJJbnN0YWxsIGFsbCBtaXNzaW5nIHR5cGVzIHBhY2thZ2VzXCIpLFJld3JpdGVfYWxsX2FzX2luZGV4ZWRfYWNjZXNzX3R5cGVzOmkoOTUwMzQsMyxcIlJld3JpdGVfYWxsX2FzX2luZGV4ZWRfYWNjZXNzX3R5cGVzXzk1MDM0XCIsXCJSZXdyaXRlIGFsbCBhcyBpbmRleGVkIGFjY2VzcyB0eXBlc1wiKSxDb252ZXJ0X2FsbF90b19kZWZhdWx0X2ltcG9ydHM6aSg5NTAzNSwzLFwiQ29udmVydF9hbGxfdG9fZGVmYXVsdF9pbXBvcnRzXzk1MDM1XCIsXCJDb252ZXJ0IGFsbCB0byBkZWZhdWx0IGltcG9ydHNcIiksTWFrZV9hbGxfc3VwZXJfY2FsbHNfdGhlX2ZpcnN0X3N0YXRlbWVudF9pbl90aGVpcl9jb25zdHJ1Y3RvcjppKDk1MDM2LDMsXCJNYWtlX2FsbF9zdXBlcl9jYWxsc190aGVfZmlyc3Rfc3RhdGVtZW50X2luX3RoZWlyX2NvbnN0cnVjdG9yXzk1MDM2XCIsXCJNYWtlIGFsbCAnc3VwZXIoKScgY2FsbHMgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiB0aGVpciBjb25zdHJ1Y3RvclwiKSxBZGRfcXVhbGlmaWVyX3RvX2FsbF91bnJlc29sdmVkX3ZhcmlhYmxlc19tYXRjaGluZ19hX21lbWJlcl9uYW1lOmkoOTUwMzcsMyxcIkFkZF9xdWFsaWZpZXJfdG9fYWxsX3VucmVzb2x2ZWRfdmFyaWFibGVzX21hdGNoaW5nX2FfbWVtYmVyX25hbWVfOTUwMzdcIixcIkFkZCBxdWFsaWZpZXIgdG8gYWxsIHVucmVzb2x2ZWQgdmFyaWFibGVzIG1hdGNoaW5nIGEgbWVtYmVyIG5hbWVcIiksQ2hhbmdlX2FsbF9leHRlbmRlZF9pbnRlcmZhY2VzX3RvX2ltcGxlbWVudHM6aSg5NTAzOCwzLFwiQ2hhbmdlX2FsbF9leHRlbmRlZF9pbnRlcmZhY2VzX3RvX2ltcGxlbWVudHNfOTUwMzhcIixcIkNoYW5nZSBhbGwgZXh0ZW5kZWQgaW50ZXJmYWNlcyB0byAnaW1wbGVtZW50cydcIiksQWRkX2FsbF9taXNzaW5nX3N1cGVyX2NhbGxzOmkoOTUwMzksMyxcIkFkZF9hbGxfbWlzc2luZ19zdXBlcl9jYWxsc185NTAzOVwiLFwiQWRkIGFsbCBtaXNzaW5nIHN1cGVyIGNhbGxzXCIpLEltcGxlbWVudF9hbGxfaW5oZXJpdGVkX2Fic3RyYWN0X2NsYXNzZXM6aSg5NTA0MCwzLFwiSW1wbGVtZW50X2FsbF9pbmhlcml0ZWRfYWJzdHJhY3RfY2xhc3Nlc185NTA0MFwiLFwiSW1wbGVtZW50IGFsbCBpbmhlcml0ZWQgYWJzdHJhY3QgY2xhc3Nlc1wiKSxBZGRfYWxsX21pc3NpbmdfYXN5bmNfbW9kaWZpZXJzOmkoOTUwNDEsMyxcIkFkZF9hbGxfbWlzc2luZ19hc3luY19tb2RpZmllcnNfOTUwNDFcIixcIkFkZCBhbGwgbWlzc2luZyAnYXN5bmMnIG1vZGlmaWVyc1wiKSxBZGRfdHNfaWdub3JlX3RvX2FsbF9lcnJvcl9tZXNzYWdlczppKDk1MDQyLDMsXCJBZGRfdHNfaWdub3JlX3RvX2FsbF9lcnJvcl9tZXNzYWdlc185NTA0MlwiLFwiQWRkICdAdHMtaWdub3JlJyB0byBhbGwgZXJyb3IgbWVzc2FnZXNcIiksQW5ub3RhdGVfZXZlcnl0aGluZ193aXRoX3R5cGVzX2Zyb21fSlNEb2M6aSg5NTA0MywzLFwiQW5ub3RhdGVfZXZlcnl0aGluZ193aXRoX3R5cGVzX2Zyb21fSlNEb2NfOTUwNDNcIixcIkFubm90YXRlIGV2ZXJ5dGhpbmcgd2l0aCB0eXBlcyBmcm9tIEpTRG9jXCIpLEFkZF90b19hbGxfdW5jYWxsZWRfZGVjb3JhdG9yczppKDk1MDQ0LDMsXCJBZGRfdG9fYWxsX3VuY2FsbGVkX2RlY29yYXRvcnNfOTUwNDRcIixcIkFkZCAnKCknIHRvIGFsbCB1bmNhbGxlZCBkZWNvcmF0b3JzXCIpLENvbnZlcnRfYWxsX2NvbnN0cnVjdG9yX2Z1bmN0aW9uc190b19jbGFzc2VzOmkoOTUwNDUsMyxcIkNvbnZlcnRfYWxsX2NvbnN0cnVjdG9yX2Z1bmN0aW9uc190b19jbGFzc2VzXzk1MDQ1XCIsXCJDb252ZXJ0IGFsbCBjb25zdHJ1Y3RvciBmdW5jdGlvbnMgdG8gY2xhc3Nlc1wiKSxHZW5lcmF0ZV9nZXRfYW5kX3NldF9hY2Nlc3NvcnM6aSg5NTA0NiwzLFwiR2VuZXJhdGVfZ2V0X2FuZF9zZXRfYWNjZXNzb3JzXzk1MDQ2XCIsXCJHZW5lcmF0ZSAnZ2V0JyBhbmQgJ3NldCcgYWNjZXNzb3JzXCIpLENvbnZlcnRfcmVxdWlyZV90b19pbXBvcnQ6aSg5NTA0NywzLFwiQ29udmVydF9yZXF1aXJlX3RvX2ltcG9ydF85NTA0N1wiLFwiQ29udmVydCAncmVxdWlyZScgdG8gJ2ltcG9ydCdcIiksQ29udmVydF9hbGxfcmVxdWlyZV90b19pbXBvcnQ6aSg5NTA0OCwzLFwiQ29udmVydF9hbGxfcmVxdWlyZV90b19pbXBvcnRfOTUwNDhcIixcIkNvbnZlcnQgYWxsICdyZXF1aXJlJyB0byAnaW1wb3J0J1wiKSxNb3ZlX3RvX2FfbmV3X2ZpbGU6aSg5NTA0OSwzLFwiTW92ZV90b19hX25ld19maWxlXzk1MDQ5XCIsXCJNb3ZlIHRvIGEgbmV3IGZpbGVcIiksUmVtb3ZlX3VucmVhY2hhYmxlX2NvZGU6aSg5NTA1MCwzLFwiUmVtb3ZlX3VucmVhY2hhYmxlX2NvZGVfOTUwNTBcIixcIlJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlXCIpLFJlbW92ZV9hbGxfdW5yZWFjaGFibGVfY29kZTppKDk1MDUxLDMsXCJSZW1vdmVfYWxsX3VucmVhY2hhYmxlX2NvZGVfOTUwNTFcIixcIlJlbW92ZSBhbGwgdW5yZWFjaGFibGUgY29kZVwiKSxBZGRfbWlzc2luZ190eXBlb2Y6aSg5NTA1MiwzLFwiQWRkX21pc3NpbmdfdHlwZW9mXzk1MDUyXCIsXCJBZGQgbWlzc2luZyAndHlwZW9mJ1wiKSxSZW1vdmVfdW51c2VkX2xhYmVsOmkoOTUwNTMsMyxcIlJlbW92ZV91bnVzZWRfbGFiZWxfOTUwNTNcIixcIlJlbW92ZSB1bnVzZWQgbGFiZWxcIiksUmVtb3ZlX2FsbF91bnVzZWRfbGFiZWxzOmkoOTUwNTQsMyxcIlJlbW92ZV9hbGxfdW51c2VkX2xhYmVsc185NTA1NFwiLFwiUmVtb3ZlIGFsbCB1bnVzZWQgbGFiZWxzXCIpLENvbnZlcnRfMF90b19tYXBwZWRfb2JqZWN0X3R5cGU6aSg5NTA1NSwzLFwiQ29udmVydF8wX3RvX21hcHBlZF9vYmplY3RfdHlwZV85NTA1NVwiLFwiQ29udmVydCAnezB9JyB0byBtYXBwZWQgb2JqZWN0IHR5cGVcIiksQ29udmVydF9uYW1lc3BhY2VfaW1wb3J0X3RvX25hbWVkX2ltcG9ydHM6aSg5NTA1NiwzLFwiQ29udmVydF9uYW1lc3BhY2VfaW1wb3J0X3RvX25hbWVkX2ltcG9ydHNfOTUwNTZcIixcIkNvbnZlcnQgbmFtZXNwYWNlIGltcG9ydCB0byBuYW1lZCBpbXBvcnRzXCIpLENvbnZlcnRfbmFtZWRfaW1wb3J0c190b19uYW1lc3BhY2VfaW1wb3J0OmkoOTUwNTcsMyxcIkNvbnZlcnRfbmFtZWRfaW1wb3J0c190b19uYW1lc3BhY2VfaW1wb3J0Xzk1MDU3XCIsXCJDb252ZXJ0IG5hbWVkIGltcG9ydHMgdG8gbmFtZXNwYWNlIGltcG9ydFwiKSxBZGRfb3JfcmVtb3ZlX2JyYWNlc19pbl9hbl9hcnJvd19mdW5jdGlvbjppKDk1MDU4LDMsXCJBZGRfb3JfcmVtb3ZlX2JyYWNlc19pbl9hbl9hcnJvd19mdW5jdGlvbl85NTA1OFwiLFwiQWRkIG9yIHJlbW92ZSBicmFjZXMgaW4gYW4gYXJyb3cgZnVuY3Rpb25cIiksQWRkX2JyYWNlc190b19hcnJvd19mdW5jdGlvbjppKDk1MDU5LDMsXCJBZGRfYnJhY2VzX3RvX2Fycm93X2Z1bmN0aW9uXzk1MDU5XCIsXCJBZGQgYnJhY2VzIHRvIGFycm93IGZ1bmN0aW9uXCIpLFJlbW92ZV9icmFjZXNfZnJvbV9hcnJvd19mdW5jdGlvbjppKDk1MDYwLDMsXCJSZW1vdmVfYnJhY2VzX2Zyb21fYXJyb3dfZnVuY3Rpb25fOTUwNjBcIixcIlJlbW92ZSBicmFjZXMgZnJvbSBhcnJvdyBmdW5jdGlvblwiKSxDb252ZXJ0X2RlZmF1bHRfZXhwb3J0X3RvX25hbWVkX2V4cG9ydDppKDk1MDYxLDMsXCJDb252ZXJ0X2RlZmF1bHRfZXhwb3J0X3RvX25hbWVkX2V4cG9ydF85NTA2MVwiLFwiQ29udmVydCBkZWZhdWx0IGV4cG9ydCB0byBuYW1lZCBleHBvcnRcIiksQ29udmVydF9uYW1lZF9leHBvcnRfdG9fZGVmYXVsdF9leHBvcnQ6aSg5NTA2MiwzLFwiQ29udmVydF9uYW1lZF9leHBvcnRfdG9fZGVmYXVsdF9leHBvcnRfOTUwNjJcIixcIkNvbnZlcnQgbmFtZWQgZXhwb3J0IHRvIGRlZmF1bHQgZXhwb3J0XCIpLEFkZF9taXNzaW5nX2VudW1fbWVtYmVyXzA6aSg5NTA2MywzLFwiQWRkX21pc3NpbmdfZW51bV9tZW1iZXJfMF85NTA2M1wiLFwiQWRkIG1pc3NpbmcgZW51bSBtZW1iZXIgJ3swfSdcIiksQWRkX2FsbF9taXNzaW5nX2ltcG9ydHM6aSg5NTA2NCwzLFwiQWRkX2FsbF9taXNzaW5nX2ltcG9ydHNfOTUwNjRcIixcIkFkZCBhbGwgbWlzc2luZyBpbXBvcnRzXCIpLENvbnZlcnRfdG9fYXN5bmNfZnVuY3Rpb246aSg5NTA2NSwzLFwiQ29udmVydF90b19hc3luY19mdW5jdGlvbl85NTA2NVwiLFwiQ29udmVydCB0byBhc3luYyBmdW5jdGlvblwiKSxDb252ZXJ0X2FsbF90b19hc3luY19mdW5jdGlvbnM6aSg5NTA2NiwzLFwiQ29udmVydF9hbGxfdG9fYXN5bmNfZnVuY3Rpb25zXzk1MDY2XCIsXCJDb252ZXJ0IGFsbCB0byBhc3luYyBmdW5jdGlvbnNcIiksQWRkX21pc3NpbmdfY2FsbF9wYXJlbnRoZXNlczppKDk1MDY3LDMsXCJBZGRfbWlzc2luZ19jYWxsX3BhcmVudGhlc2VzXzk1MDY3XCIsXCJBZGQgbWlzc2luZyBjYWxsIHBhcmVudGhlc2VzXCIpLEFkZF9hbGxfbWlzc2luZ19jYWxsX3BhcmVudGhlc2VzOmkoOTUwNjgsMyxcIkFkZF9hbGxfbWlzc2luZ19jYWxsX3BhcmVudGhlc2VzXzk1MDY4XCIsXCJBZGQgYWxsIG1pc3NpbmcgY2FsbCBwYXJlbnRoZXNlc1wiKSxBZGRfdW5rbm93bl9jb252ZXJzaW9uX2Zvcl9ub25fb3ZlcmxhcHBpbmdfdHlwZXM6aSg5NTA2OSwzLFwiQWRkX3Vua25vd25fY29udmVyc2lvbl9mb3Jfbm9uX292ZXJsYXBwaW5nX3R5cGVzXzk1MDY5XCIsXCJBZGQgJ3Vua25vd24nIGNvbnZlcnNpb24gZm9yIG5vbi1vdmVybGFwcGluZyB0eXBlc1wiKSxBZGRfdW5rbm93bl90b19hbGxfY29udmVyc2lvbnNfb2Zfbm9uX292ZXJsYXBwaW5nX3R5cGVzOmkoOTUwNzAsMyxcIkFkZF91bmtub3duX3RvX2FsbF9jb252ZXJzaW9uc19vZl9ub25fb3ZlcmxhcHBpbmdfdHlwZXNfOTUwNzBcIixcIkFkZCAndW5rbm93bicgdG8gYWxsIGNvbnZlcnNpb25zIG9mIG5vbi1vdmVybGFwcGluZyB0eXBlc1wiKSxBZGRfbWlzc2luZ19uZXdfb3BlcmF0b3JfdG9fY2FsbDppKDk1MDcxLDMsXCJBZGRfbWlzc2luZ19uZXdfb3BlcmF0b3JfdG9fY2FsbF85NTA3MVwiLFwiQWRkIG1pc3NpbmcgJ25ldycgb3BlcmF0b3IgdG8gY2FsbFwiKSxBZGRfbWlzc2luZ19uZXdfb3BlcmF0b3JfdG9fYWxsX2NhbGxzOmkoOTUwNzIsMyxcIkFkZF9taXNzaW5nX25ld19vcGVyYXRvcl90b19hbGxfY2FsbHNfOTUwNzJcIixcIkFkZCBtaXNzaW5nICduZXcnIG9wZXJhdG9yIHRvIGFsbCBjYWxsc1wiKSxBZGRfbmFtZXNfdG9fYWxsX3BhcmFtZXRlcnNfd2l0aG91dF9uYW1lczppKDk1MDczLDMsXCJBZGRfbmFtZXNfdG9fYWxsX3BhcmFtZXRlcnNfd2l0aG91dF9uYW1lc185NTA3M1wiLFwiQWRkIG5hbWVzIHRvIGFsbCBwYXJhbWV0ZXJzIHdpdGhvdXQgbmFtZXNcIiksRW5hYmxlX3RoZV9leHBlcmltZW50YWxEZWNvcmF0b3JzX29wdGlvbl9pbl95b3VyX2NvbmZpZ3VyYXRpb25fZmlsZTppKDk1MDc0LDMsXCJFbmFibGVfdGhlX2V4cGVyaW1lbnRhbERlY29yYXRvcnNfb3B0aW9uX2luX3lvdXJfY29uZmlndXJhdGlvbl9maWxlXzk1MDc0XCIsXCJFbmFibGUgdGhlICdleHBlcmltZW50YWxEZWNvcmF0b3JzJyBvcHRpb24gaW4geW91ciBjb25maWd1cmF0aW9uIGZpbGVcIiksQ29udmVydF9wYXJhbWV0ZXJzX3RvX2Rlc3RydWN0dXJlZF9vYmplY3Q6aSg5NTA3NSwzLFwiQ29udmVydF9wYXJhbWV0ZXJzX3RvX2Rlc3RydWN0dXJlZF9vYmplY3RfOTUwNzVcIixcIkNvbnZlcnQgcGFyYW1ldGVycyB0byBkZXN0cnVjdHVyZWQgb2JqZWN0XCIpLEV4dHJhY3RfdHlwZTppKDk1MDc3LDMsXCJFeHRyYWN0X3R5cGVfOTUwNzdcIixcIkV4dHJhY3QgdHlwZVwiKSxFeHRyYWN0X3RvX3R5cGVfYWxpYXM6aSg5NTA3OCwzLFwiRXh0cmFjdF90b190eXBlX2FsaWFzXzk1MDc4XCIsXCJFeHRyYWN0IHRvIHR5cGUgYWxpYXNcIiksRXh0cmFjdF90b190eXBlZGVmOmkoOTUwNzksMyxcIkV4dHJhY3RfdG9fdHlwZWRlZl85NTA3OVwiLFwiRXh0cmFjdCB0byB0eXBlZGVmXCIpLEluZmVyX3RoaXNfdHlwZV9vZl8wX2Zyb21fdXNhZ2U6aSg5NTA4MCwzLFwiSW5mZXJfdGhpc190eXBlX29mXzBfZnJvbV91c2FnZV85NTA4MFwiLFwiSW5mZXIgJ3RoaXMnIHR5cGUgb2YgJ3swfScgZnJvbSB1c2FnZVwiKSxBZGRfY29uc3RfdG9fdW5yZXNvbHZlZF92YXJpYWJsZTppKDk1MDgxLDMsXCJBZGRfY29uc3RfdG9fdW5yZXNvbHZlZF92YXJpYWJsZV85NTA4MVwiLFwiQWRkICdjb25zdCcgdG8gdW5yZXNvbHZlZCB2YXJpYWJsZVwiKSxBZGRfY29uc3RfdG9fYWxsX3VucmVzb2x2ZWRfdmFyaWFibGVzOmkoOTUwODIsMyxcIkFkZF9jb25zdF90b19hbGxfdW5yZXNvbHZlZF92YXJpYWJsZXNfOTUwODJcIixcIkFkZCAnY29uc3QnIHRvIGFsbCB1bnJlc29sdmVkIHZhcmlhYmxlc1wiKSxBZGRfYXdhaXQ6aSg5NTA4MywzLFwiQWRkX2F3YWl0Xzk1MDgzXCIsXCJBZGQgJ2F3YWl0J1wiKSxBZGRfYXdhaXRfdG9faW5pdGlhbGl6ZXJfZm9yXzA6aSg5NTA4NCwzLFwiQWRkX2F3YWl0X3RvX2luaXRpYWxpemVyX2Zvcl8wXzk1MDg0XCIsXCJBZGQgJ2F3YWl0JyB0byBpbml0aWFsaXplciBmb3IgJ3swfSdcIiksRml4X2FsbF9leHByZXNzaW9uc19wb3NzaWJseV9taXNzaW5nX2F3YWl0OmkoOTUwODUsMyxcIkZpeF9hbGxfZXhwcmVzc2lvbnNfcG9zc2libHlfbWlzc2luZ19hd2FpdF85NTA4NVwiLFwiRml4IGFsbCBleHByZXNzaW9ucyBwb3NzaWJseSBtaXNzaW5nICdhd2FpdCdcIiksUmVtb3ZlX3VubmVjZXNzYXJ5X2F3YWl0OmkoOTUwODYsMyxcIlJlbW92ZV91bm5lY2Vzc2FyeV9hd2FpdF85NTA4NlwiLFwiUmVtb3ZlIHVubmVjZXNzYXJ5ICdhd2FpdCdcIiksUmVtb3ZlX2FsbF91bm5lY2Vzc2FyeV91c2VzX29mX2F3YWl0OmkoOTUwODcsMyxcIlJlbW92ZV9hbGxfdW5uZWNlc3NhcnlfdXNlc19vZl9hd2FpdF85NTA4N1wiLFwiUmVtb3ZlIGFsbCB1bm5lY2Vzc2FyeSB1c2VzIG9mICdhd2FpdCdcIiksRW5hYmxlX3RoZV9qc3hfZmxhZ19pbl95b3VyX2NvbmZpZ3VyYXRpb25fZmlsZTppKDk1MDg4LDMsXCJFbmFibGVfdGhlX2pzeF9mbGFnX2luX3lvdXJfY29uZmlndXJhdGlvbl9maWxlXzk1MDg4XCIsXCJFbmFibGUgdGhlICctLWpzeCcgZmxhZyBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZVwiKSxBZGRfYXdhaXRfdG9faW5pdGlhbGl6ZXJzOmkoOTUwODksMyxcIkFkZF9hd2FpdF90b19pbml0aWFsaXplcnNfOTUwODlcIixcIkFkZCAnYXdhaXQnIHRvIGluaXRpYWxpemVyc1wiKSxFeHRyYWN0X3RvX2ludGVyZmFjZTppKDk1MDkwLDMsXCJFeHRyYWN0X3RvX2ludGVyZmFjZV85NTA5MFwiLFwiRXh0cmFjdCB0byBpbnRlcmZhY2VcIiksQ29udmVydF90b19hX2JpZ2ludF9udW1lcmljX2xpdGVyYWw6aSg5NTA5MSwzLFwiQ29udmVydF90b19hX2JpZ2ludF9udW1lcmljX2xpdGVyYWxfOTUwOTFcIixcIkNvbnZlcnQgdG8gYSBiaWdpbnQgbnVtZXJpYyBsaXRlcmFsXCIpLENvbnZlcnRfYWxsX3RvX2JpZ2ludF9udW1lcmljX2xpdGVyYWxzOmkoOTUwOTIsMyxcIkNvbnZlcnRfYWxsX3RvX2JpZ2ludF9udW1lcmljX2xpdGVyYWxzXzk1MDkyXCIsXCJDb252ZXJ0IGFsbCB0byBiaWdpbnQgbnVtZXJpYyBsaXRlcmFsc1wiKSxDb252ZXJ0X2NvbnN0X3RvX2xldDppKDk1MDkzLDMsXCJDb252ZXJ0X2NvbnN0X3RvX2xldF85NTA5M1wiLFwiQ29udmVydCAnY29uc3QnIHRvICdsZXQnXCIpLFByZWZpeF93aXRoX2RlY2xhcmU6aSg5NTA5NCwzLFwiUHJlZml4X3dpdGhfZGVjbGFyZV85NTA5NFwiLFwiUHJlZml4IHdpdGggJ2RlY2xhcmUnXCIpLFByZWZpeF9hbGxfaW5jb3JyZWN0X3Byb3BlcnR5X2RlY2xhcmF0aW9uc193aXRoX2RlY2xhcmU6aSg5NTA5NSwzLFwiUHJlZml4X2FsbF9pbmNvcnJlY3RfcHJvcGVydHlfZGVjbGFyYXRpb25zX3dpdGhfZGVjbGFyZV85NTA5NVwiLFwiUHJlZml4IGFsbCBpbmNvcnJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb25zIHdpdGggJ2RlY2xhcmUnXCIpLENvbnZlcnRfdG9fdGVtcGxhdGVfc3RyaW5nOmkoOTUwOTYsMyxcIkNvbnZlcnRfdG9fdGVtcGxhdGVfc3RyaW5nXzk1MDk2XCIsXCJDb252ZXJ0IHRvIHRlbXBsYXRlIHN0cmluZ1wiKSxBZGRfZXhwb3J0X3RvX21ha2VfdGhpc19maWxlX2ludG9fYV9tb2R1bGU6aSg5NTA5NywzLFwiQWRkX2V4cG9ydF90b19tYWtlX3RoaXNfZmlsZV9pbnRvX2FfbW9kdWxlXzk1MDk3XCIsXCJBZGQgJ2V4cG9ydCB7fScgdG8gbWFrZSB0aGlzIGZpbGUgaW50byBhIG1vZHVsZVwiKSxTZXRfdGhlX3RhcmdldF9vcHRpb25faW5feW91cl9jb25maWd1cmF0aW9uX2ZpbGVfdG9fMDppKDk1MDk4LDMsXCJTZXRfdGhlX3RhcmdldF9vcHRpb25faW5feW91cl9jb25maWd1cmF0aW9uX2ZpbGVfdG9fMF85NTA5OFwiLFwiU2V0IHRoZSAndGFyZ2V0JyBvcHRpb24gaW4geW91ciBjb25maWd1cmF0aW9uIGZpbGUgdG8gJ3swfSdcIiksU2V0X3RoZV9tb2R1bGVfb3B0aW9uX2luX3lvdXJfY29uZmlndXJhdGlvbl9maWxlX3RvXzA6aSg5NTA5OSwzLFwiU2V0X3RoZV9tb2R1bGVfb3B0aW9uX2luX3lvdXJfY29uZmlndXJhdGlvbl9maWxlX3RvXzBfOTUwOTlcIixcIlNldCB0aGUgJ21vZHVsZScgb3B0aW9uIGluIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIHRvICd7MH0nXCIpLENvbnZlcnRfaW52YWxpZF9jaGFyYWN0ZXJfdG9faXRzX2h0bWxfZW50aXR5X2NvZGU6aSg5NTEwMCwzLFwiQ29udmVydF9pbnZhbGlkX2NoYXJhY3Rlcl90b19pdHNfaHRtbF9lbnRpdHlfY29kZV85NTEwMFwiLFwiQ29udmVydCBpbnZhbGlkIGNoYXJhY3RlciB0byBpdHMgaHRtbCBlbnRpdHkgY29kZVwiKSxDb252ZXJ0X2FsbF9pbnZhbGlkX2NoYXJhY3RlcnNfdG9fSFRNTF9lbnRpdHlfY29kZTppKDk1MTAxLDMsXCJDb252ZXJ0X2FsbF9pbnZhbGlkX2NoYXJhY3RlcnNfdG9fSFRNTF9lbnRpdHlfY29kZV85NTEwMVwiLFwiQ29udmVydCBhbGwgaW52YWxpZCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXR5IGNvZGVcIiksQ29udmVydF9hbGxfY29uc3RfdG9fbGV0OmkoOTUxMDIsMyxcIkNvbnZlcnRfYWxsX2NvbnN0X3RvX2xldF85NTEwMlwiLFwiQ29udmVydCBhbGwgJ2NvbnN0JyB0byAnbGV0J1wiKSxDb252ZXJ0X2Z1bmN0aW9uX2V4cHJlc3Npb25fMF90b19hcnJvd19mdW5jdGlvbjppKDk1MTA1LDMsXCJDb252ZXJ0X2Z1bmN0aW9uX2V4cHJlc3Npb25fMF90b19hcnJvd19mdW5jdGlvbl85NTEwNVwiLFwiQ29udmVydCBmdW5jdGlvbiBleHByZXNzaW9uICd7MH0nIHRvIGFycm93IGZ1bmN0aW9uXCIpLENvbnZlcnRfZnVuY3Rpb25fZGVjbGFyYXRpb25fMF90b19hcnJvd19mdW5jdGlvbjppKDk1MTA2LDMsXCJDb252ZXJ0X2Z1bmN0aW9uX2RlY2xhcmF0aW9uXzBfdG9fYXJyb3dfZnVuY3Rpb25fOTUxMDZcIixcIkNvbnZlcnQgZnVuY3Rpb24gZGVjbGFyYXRpb24gJ3swfScgdG8gYXJyb3cgZnVuY3Rpb25cIiksRml4X2FsbF9pbXBsaWNpdF90aGlzX2Vycm9yczppKDk1MTA3LDMsXCJGaXhfYWxsX2ltcGxpY2l0X3RoaXNfZXJyb3JzXzk1MTA3XCIsXCJGaXggYWxsIGltcGxpY2l0LSd0aGlzJyBlcnJvcnNcIiksV3JhcF9pbnZhbGlkX2NoYXJhY3Rlcl9pbl9hbl9leHByZXNzaW9uX2NvbnRhaW5lcjppKDk1MTA4LDMsXCJXcmFwX2ludmFsaWRfY2hhcmFjdGVyX2luX2FuX2V4cHJlc3Npb25fY29udGFpbmVyXzk1MTA4XCIsXCJXcmFwIGludmFsaWQgY2hhcmFjdGVyIGluIGFuIGV4cHJlc3Npb24gY29udGFpbmVyXCIpLFdyYXBfYWxsX2ludmFsaWRfY2hhcmFjdGVyc19pbl9hbl9leHByZXNzaW9uX2NvbnRhaW5lcjppKDk1MTA5LDMsXCJXcmFwX2FsbF9pbnZhbGlkX2NoYXJhY3RlcnNfaW5fYW5fZXhwcmVzc2lvbl9jb250YWluZXJfOTUxMDlcIixcIldyYXAgYWxsIGludmFsaWQgY2hhcmFjdGVycyBpbiBhbiBleHByZXNzaW9uIGNvbnRhaW5lclwiKSxWaXNpdF9odHRwc19Db2xvbl9TbGFzaF9TbGFzaGFrYV9tc19TbGFzaHRzY29uZmlnX3RvX3JlYWRfbW9yZV9hYm91dF90aGlzX2ZpbGU6aSg5NTExMCwzLFwiVmlzaXRfaHR0cHNfQ29sb25fU2xhc2hfU2xhc2hha2FfbXNfU2xhc2h0c2NvbmZpZ190b19yZWFkX21vcmVfYWJvdXRfdGhpc19maWxlXzk1MTEwXCIsXCJWaXNpdCBodHRwczovL2FrYS5tcy90c2NvbmZpZyB0byByZWFkIG1vcmUgYWJvdXQgdGhpcyBmaWxlXCIpLEFkZF9hX3JldHVybl9zdGF0ZW1lbnQ6aSg5NTExMSwzLFwiQWRkX2FfcmV0dXJuX3N0YXRlbWVudF85NTExMVwiLFwiQWRkIGEgcmV0dXJuIHN0YXRlbWVudFwiKSxSZW1vdmVfYnJhY2VzX2Zyb21fYXJyb3dfZnVuY3Rpb25fYm9keTppKDk1MTEyLDMsXCJSZW1vdmVfYnJhY2VzX2Zyb21fYXJyb3dfZnVuY3Rpb25fYm9keV85NTExMlwiLFwiUmVtb3ZlIGJyYWNlcyBmcm9tIGFycm93IGZ1bmN0aW9uIGJvZHlcIiksV3JhcF90aGVfZm9sbG93aW5nX2JvZHlfd2l0aF9wYXJlbnRoZXNlc193aGljaF9zaG91bGRfYmVfYW5fb2JqZWN0X2xpdGVyYWw6aSg5NTExMywzLFwiV3JhcF90aGVfZm9sbG93aW5nX2JvZHlfd2l0aF9wYXJlbnRoZXNlc193aGljaF9zaG91bGRfYmVfYW5fb2JqZWN0X2xpdGVyYWxfOTUxMTNcIixcIldyYXAgdGhlIGZvbGxvd2luZyBib2R5IHdpdGggcGFyZW50aGVzZXMgd2hpY2ggc2hvdWxkIGJlIGFuIG9iamVjdCBsaXRlcmFsXCIpLEFkZF9hbGxfbWlzc2luZ19yZXR1cm5fc3RhdGVtZW50OmkoOTUxMTQsMyxcIkFkZF9hbGxfbWlzc2luZ19yZXR1cm5fc3RhdGVtZW50Xzk1MTE0XCIsXCJBZGQgYWxsIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudFwiKSxSZW1vdmVfYnJhY2VzX2Zyb21fYWxsX2Fycm93X2Z1bmN0aW9uX2JvZGllc193aXRoX3JlbGV2YW50X2lzc3VlczppKDk1MTE1LDMsXCJSZW1vdmVfYnJhY2VzX2Zyb21fYWxsX2Fycm93X2Z1bmN0aW9uX2JvZGllc193aXRoX3JlbGV2YW50X2lzc3Vlc185NTExNVwiLFwiUmVtb3ZlIGJyYWNlcyBmcm9tIGFsbCBhcnJvdyBmdW5jdGlvbiBib2RpZXMgd2l0aCByZWxldmFudCBpc3N1ZXNcIiksV3JhcF9hbGxfb2JqZWN0X2xpdGVyYWxfd2l0aF9wYXJlbnRoZXNlczppKDk1MTE2LDMsXCJXcmFwX2FsbF9vYmplY3RfbGl0ZXJhbF93aXRoX3BhcmVudGhlc2VzXzk1MTE2XCIsXCJXcmFwIGFsbCBvYmplY3QgbGl0ZXJhbCB3aXRoIHBhcmVudGhlc2VzXCIpLE1vdmVfbGFiZWxlZF90dXBsZV9lbGVtZW50X21vZGlmaWVyc190b19sYWJlbHM6aSg5NTExNywzLFwiTW92ZV9sYWJlbGVkX3R1cGxlX2VsZW1lbnRfbW9kaWZpZXJzX3RvX2xhYmVsc185NTExN1wiLFwiTW92ZSBsYWJlbGVkIHR1cGxlIGVsZW1lbnQgbW9kaWZpZXJzIHRvIGxhYmVsc1wiKSxDb252ZXJ0X292ZXJsb2FkX2xpc3RfdG9fc2luZ2xlX3NpZ25hdHVyZTppKDk1MTE4LDMsXCJDb252ZXJ0X292ZXJsb2FkX2xpc3RfdG9fc2luZ2xlX3NpZ25hdHVyZV85NTExOFwiLFwiQ29udmVydCBvdmVybG9hZCBsaXN0IHRvIHNpbmdsZSBzaWduYXR1cmVcIiksR2VuZXJhdGVfZ2V0X2FuZF9zZXRfYWNjZXNzb3JzX2Zvcl9hbGxfb3ZlcnJpZGluZ19wcm9wZXJ0aWVzOmkoOTUxMTksMyxcIkdlbmVyYXRlX2dldF9hbmRfc2V0X2FjY2Vzc29yc19mb3JfYWxsX292ZXJyaWRpbmdfcHJvcGVydGllc185NTExOVwiLFwiR2VuZXJhdGUgJ2dldCcgYW5kICdzZXQnIGFjY2Vzc29ycyBmb3IgYWxsIG92ZXJyaWRpbmcgcHJvcGVydGllc1wiKSxXcmFwX2luX0pTWF9mcmFnbWVudDppKDk1MTIwLDMsXCJXcmFwX2luX0pTWF9mcmFnbWVudF85NTEyMFwiLFwiV3JhcCBpbiBKU1ggZnJhZ21lbnRcIiksV3JhcF9hbGxfdW5wYXJlbnRlZF9KU1hfaW5fSlNYX2ZyYWdtZW50OmkoOTUxMjEsMyxcIldyYXBfYWxsX3VucGFyZW50ZWRfSlNYX2luX0pTWF9mcmFnbWVudF85NTEyMVwiLFwiV3JhcCBhbGwgdW5wYXJlbnRlZCBKU1ggaW4gSlNYIGZyYWdtZW50XCIpLENvbnZlcnRfYXJyb3dfZnVuY3Rpb25fb3JfZnVuY3Rpb25fZXhwcmVzc2lvbjppKDk1MTIyLDMsXCJDb252ZXJ0X2Fycm93X2Z1bmN0aW9uX29yX2Z1bmN0aW9uX2V4cHJlc3Npb25fOTUxMjJcIixcIkNvbnZlcnQgYXJyb3cgZnVuY3Rpb24gb3IgZnVuY3Rpb24gZXhwcmVzc2lvblwiKSxDb252ZXJ0X3RvX2Fub255bW91c19mdW5jdGlvbjppKDk1MTIzLDMsXCJDb252ZXJ0X3RvX2Fub255bW91c19mdW5jdGlvbl85NTEyM1wiLFwiQ29udmVydCB0byBhbm9ueW1vdXMgZnVuY3Rpb25cIiksQ29udmVydF90b19uYW1lZF9mdW5jdGlvbjppKDk1MTI0LDMsXCJDb252ZXJ0X3RvX25hbWVkX2Z1bmN0aW9uXzk1MTI0XCIsXCJDb252ZXJ0IHRvIG5hbWVkIGZ1bmN0aW9uXCIpLENvbnZlcnRfdG9fYXJyb3dfZnVuY3Rpb246aSg5NTEyNSwzLFwiQ29udmVydF90b19hcnJvd19mdW5jdGlvbl85NTEyNVwiLFwiQ29udmVydCB0byBhcnJvdyBmdW5jdGlvblwiKSxSZW1vdmVfcGFyZW50aGVzZXM6aSg5NTEyNiwzLFwiUmVtb3ZlX3BhcmVudGhlc2VzXzk1MTI2XCIsXCJSZW1vdmUgcGFyZW50aGVzZXNcIiksQ291bGRfbm90X2ZpbmRfYV9jb250YWluaW5nX2Fycm93X2Z1bmN0aW9uOmkoOTUxMjcsMyxcIkNvdWxkX25vdF9maW5kX2FfY29udGFpbmluZ19hcnJvd19mdW5jdGlvbl85NTEyN1wiLFwiQ291bGQgbm90IGZpbmQgYSBjb250YWluaW5nIGFycm93IGZ1bmN0aW9uXCIpLENvbnRhaW5pbmdfZnVuY3Rpb25faXNfbm90X2FuX2Fycm93X2Z1bmN0aW9uOmkoOTUxMjgsMyxcIkNvbnRhaW5pbmdfZnVuY3Rpb25faXNfbm90X2FuX2Fycm93X2Z1bmN0aW9uXzk1MTI4XCIsXCJDb250YWluaW5nIGZ1bmN0aW9uIGlzIG5vdCBhbiBhcnJvdyBmdW5jdGlvblwiKSxDb3VsZF9ub3RfZmluZF9leHBvcnRfc3RhdGVtZW50OmkoOTUxMjksMyxcIkNvdWxkX25vdF9maW5kX2V4cG9ydF9zdGF0ZW1lbnRfOTUxMjlcIixcIkNvdWxkIG5vdCBmaW5kIGV4cG9ydCBzdGF0ZW1lbnRcIiksVGhpc19maWxlX2FscmVhZHlfaGFzX2FfZGVmYXVsdF9leHBvcnQ6aSg5NTEzMCwzLFwiVGhpc19maWxlX2FscmVhZHlfaGFzX2FfZGVmYXVsdF9leHBvcnRfOTUxMzBcIixcIlRoaXMgZmlsZSBhbHJlYWR5IGhhcyBhIGRlZmF1bHQgZXhwb3J0XCIpLENvdWxkX25vdF9maW5kX2ltcG9ydF9jbGF1c2U6aSg5NTEzMSwzLFwiQ291bGRfbm90X2ZpbmRfaW1wb3J0X2NsYXVzZV85NTEzMVwiLFwiQ291bGQgbm90IGZpbmQgaW1wb3J0IGNsYXVzZVwiKSxDb3VsZF9ub3RfZmluZF9uYW1lc3BhY2VfaW1wb3J0X29yX25hbWVkX2ltcG9ydHM6aSg5NTEzMiwzLFwiQ291bGRfbm90X2ZpbmRfbmFtZXNwYWNlX2ltcG9ydF9vcl9uYW1lZF9pbXBvcnRzXzk1MTMyXCIsXCJDb3VsZCBub3QgZmluZCBuYW1lc3BhY2UgaW1wb3J0IG9yIG5hbWVkIGltcG9ydHNcIiksU2VsZWN0aW9uX2lzX25vdF9hX3ZhbGlkX3R5cGVfbm9kZTppKDk1MTMzLDMsXCJTZWxlY3Rpb25faXNfbm90X2FfdmFsaWRfdHlwZV9ub2RlXzk1MTMzXCIsXCJTZWxlY3Rpb24gaXMgbm90IGEgdmFsaWQgdHlwZSBub2RlXCIpLE5vX3R5cGVfY291bGRfYmVfZXh0cmFjdGVkX2Zyb21fdGhpc190eXBlX25vZGU6aSg5NTEzNCwzLFwiTm9fdHlwZV9jb3VsZF9iZV9leHRyYWN0ZWRfZnJvbV90aGlzX3R5cGVfbm9kZV85NTEzNFwiLFwiTm8gdHlwZSBjb3VsZCBiZSBleHRyYWN0ZWQgZnJvbSB0aGlzIHR5cGUgbm9kZVwiKSxDb3VsZF9ub3RfZmluZF9wcm9wZXJ0eV9mb3Jfd2hpY2hfdG9fZ2VuZXJhdGVfYWNjZXNzb3I6aSg5NTEzNSwzLFwiQ291bGRfbm90X2ZpbmRfcHJvcGVydHlfZm9yX3doaWNoX3RvX2dlbmVyYXRlX2FjY2Vzc29yXzk1MTM1XCIsXCJDb3VsZCBub3QgZmluZCBwcm9wZXJ0eSBmb3Igd2hpY2ggdG8gZ2VuZXJhdGUgYWNjZXNzb3JcIiksTmFtZV9pc19ub3RfdmFsaWQ6aSg5NTEzNiwzLFwiTmFtZV9pc19ub3RfdmFsaWRfOTUxMzZcIixcIk5hbWUgaXMgbm90IHZhbGlkXCIpLENhbl9vbmx5X2NvbnZlcnRfcHJvcGVydHlfd2l0aF9tb2RpZmllcjppKDk1MTM3LDMsXCJDYW5fb25seV9jb252ZXJ0X3Byb3BlcnR5X3dpdGhfbW9kaWZpZXJfOTUxMzdcIixcIkNhbiBvbmx5IGNvbnZlcnQgcHJvcGVydHkgd2l0aCBtb2RpZmllclwiKSxTd2l0Y2hfZWFjaF9taXN1c2VkXzBfdG9fMTppKDk1MTM4LDMsXCJTd2l0Y2hfZWFjaF9taXN1c2VkXzBfdG9fMV85NTEzOFwiLFwiU3dpdGNoIGVhY2ggbWlzdXNlZCAnezB9JyB0byAnezF9J1wiKSxDb252ZXJ0X3RvX29wdGlvbmFsX2NoYWluX2V4cHJlc3Npb246aSg5NTEzOSwzLFwiQ29udmVydF90b19vcHRpb25hbF9jaGFpbl9leHByZXNzaW9uXzk1MTM5XCIsXCJDb252ZXJ0IHRvIG9wdGlvbmFsIGNoYWluIGV4cHJlc3Npb25cIiksQ291bGRfbm90X2ZpbmRfY29udmVydGlibGVfYWNjZXNzX2V4cHJlc3Npb246aSg5NTE0MCwzLFwiQ291bGRfbm90X2ZpbmRfY29udmVydGlibGVfYWNjZXNzX2V4cHJlc3Npb25fOTUxNDBcIixcIkNvdWxkIG5vdCBmaW5kIGNvbnZlcnRpYmxlIGFjY2VzcyBleHByZXNzaW9uXCIpLENvdWxkX25vdF9maW5kX21hdGNoaW5nX2FjY2Vzc19leHByZXNzaW9uczppKDk1MTQxLDMsXCJDb3VsZF9ub3RfZmluZF9tYXRjaGluZ19hY2Nlc3NfZXhwcmVzc2lvbnNfOTUxNDFcIixcIkNvdWxkIG5vdCBmaW5kIG1hdGNoaW5nIGFjY2VzcyBleHByZXNzaW9uc1wiKSxDYW5fb25seV9jb252ZXJ0X2xvZ2ljYWxfQU5EX2FjY2Vzc19jaGFpbnM6aSg5NTE0MiwzLFwiQ2FuX29ubHlfY29udmVydF9sb2dpY2FsX0FORF9hY2Nlc3NfY2hhaW5zXzk1MTQyXCIsXCJDYW4gb25seSBjb252ZXJ0IGxvZ2ljYWwgQU5EIGFjY2VzcyBjaGFpbnNcIiksQWRkX3ZvaWRfdG9fUHJvbWlzZV9yZXNvbHZlZF93aXRob3V0X2FfdmFsdWU6aSg5NTE0MywzLFwiQWRkX3ZvaWRfdG9fUHJvbWlzZV9yZXNvbHZlZF93aXRob3V0X2FfdmFsdWVfOTUxNDNcIixcIkFkZCAndm9pZCcgdG8gUHJvbWlzZSByZXNvbHZlZCB3aXRob3V0IGEgdmFsdWVcIiksQWRkX3ZvaWRfdG9fYWxsX1Byb21pc2VzX3Jlc29sdmVkX3dpdGhvdXRfYV92YWx1ZTppKDk1MTQ0LDMsXCJBZGRfdm9pZF90b19hbGxfUHJvbWlzZXNfcmVzb2x2ZWRfd2l0aG91dF9hX3ZhbHVlXzk1MTQ0XCIsXCJBZGQgJ3ZvaWQnIHRvIGFsbCBQcm9taXNlcyByZXNvbHZlZCB3aXRob3V0IGEgdmFsdWVcIiksVXNlX2VsZW1lbnRfYWNjZXNzX2Zvcl8wOmkoOTUxNDUsMyxcIlVzZV9lbGVtZW50X2FjY2Vzc19mb3JfMF85NTE0NVwiLFwiVXNlIGVsZW1lbnQgYWNjZXNzIGZvciAnezB9J1wiKSxVc2VfZWxlbWVudF9hY2Nlc3NfZm9yX2FsbF91bmRlY2xhcmVkX3Byb3BlcnRpZXM6aSg5NTE0NiwzLFwiVXNlX2VsZW1lbnRfYWNjZXNzX2Zvcl9hbGxfdW5kZWNsYXJlZF9wcm9wZXJ0aWVzXzk1MTQ2XCIsXCJVc2UgZWxlbWVudCBhY2Nlc3MgZm9yIGFsbCB1bmRlY2xhcmVkIHByb3BlcnRpZXMuXCIpLERlbGV0ZV9hbGxfdW51c2VkX2ltcG9ydHM6aSg5NTE0NywzLFwiRGVsZXRlX2FsbF91bnVzZWRfaW1wb3J0c185NTE0N1wiLFwiRGVsZXRlIGFsbCB1bnVzZWQgaW1wb3J0c1wiKSxJbmZlcl9mdW5jdGlvbl9yZXR1cm5fdHlwZTppKDk1MTQ4LDMsXCJJbmZlcl9mdW5jdGlvbl9yZXR1cm5fdHlwZV85NTE0OFwiLFwiSW5mZXIgZnVuY3Rpb24gcmV0dXJuIHR5cGVcIiksUmV0dXJuX3R5cGVfbXVzdF9iZV9pbmZlcnJlZF9mcm9tX2FfZnVuY3Rpb246aSg5NTE0OSwzLFwiUmV0dXJuX3R5cGVfbXVzdF9iZV9pbmZlcnJlZF9mcm9tX2FfZnVuY3Rpb25fOTUxNDlcIixcIlJldHVybiB0eXBlIG11c3QgYmUgaW5mZXJyZWQgZnJvbSBhIGZ1bmN0aW9uXCIpLENvdWxkX25vdF9kZXRlcm1pbmVfZnVuY3Rpb25fcmV0dXJuX3R5cGU6aSg5NTE1MCwzLFwiQ291bGRfbm90X2RldGVybWluZV9mdW5jdGlvbl9yZXR1cm5fdHlwZV85NTE1MFwiLFwiQ291bGQgbm90IGRldGVybWluZSBmdW5jdGlvbiByZXR1cm4gdHlwZVwiKSxDb3VsZF9ub3RfY29udmVydF90b19hcnJvd19mdW5jdGlvbjppKDk1MTUxLDMsXCJDb3VsZF9ub3RfY29udmVydF90b19hcnJvd19mdW5jdGlvbl85NTE1MVwiLFwiQ291bGQgbm90IGNvbnZlcnQgdG8gYXJyb3cgZnVuY3Rpb25cIiksQ291bGRfbm90X2NvbnZlcnRfdG9fbmFtZWRfZnVuY3Rpb246aSg5NTE1MiwzLFwiQ291bGRfbm90X2NvbnZlcnRfdG9fbmFtZWRfZnVuY3Rpb25fOTUxNTJcIixcIkNvdWxkIG5vdCBjb252ZXJ0IHRvIG5hbWVkIGZ1bmN0aW9uXCIpLENvdWxkX25vdF9jb252ZXJ0X3RvX2Fub255bW91c19mdW5jdGlvbjppKDk1MTUzLDMsXCJDb3VsZF9ub3RfY29udmVydF90b19hbm9ueW1vdXNfZnVuY3Rpb25fOTUxNTNcIixcIkNvdWxkIG5vdCBjb252ZXJ0IHRvIGFub255bW91cyBmdW5jdGlvblwiKSxDYW5fb25seV9jb252ZXJ0X3N0cmluZ19jb25jYXRlbmF0aW9uOmkoOTUxNTQsMyxcIkNhbl9vbmx5X2NvbnZlcnRfc3RyaW5nX2NvbmNhdGVuYXRpb25fOTUxNTRcIixcIkNhbiBvbmx5IGNvbnZlcnQgc3RyaW5nIGNvbmNhdGVuYXRpb25cIiksU2VsZWN0aW9uX2lzX25vdF9hX3ZhbGlkX3N0YXRlbWVudF9vcl9zdGF0ZW1lbnRzOmkoOTUxNTUsMyxcIlNlbGVjdGlvbl9pc19ub3RfYV92YWxpZF9zdGF0ZW1lbnRfb3Jfc3RhdGVtZW50c185NTE1NVwiLFwiU2VsZWN0aW9uIGlzIG5vdCBhIHZhbGlkIHN0YXRlbWVudCBvciBzdGF0ZW1lbnRzXCIpLEFkZF9taXNzaW5nX2Z1bmN0aW9uX2RlY2xhcmF0aW9uXzA6aSg5NTE1NiwzLFwiQWRkX21pc3NpbmdfZnVuY3Rpb25fZGVjbGFyYXRpb25fMF85NTE1NlwiLFwiQWRkIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24gJ3swfSdcIiksQWRkX2FsbF9taXNzaW5nX2Z1bmN0aW9uX2RlY2xhcmF0aW9uczppKDk1MTU3LDMsXCJBZGRfYWxsX21pc3NpbmdfZnVuY3Rpb25fZGVjbGFyYXRpb25zXzk1MTU3XCIsXCJBZGQgYWxsIG1pc3NpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb25zXCIpLE1ldGhvZF9ub3RfaW1wbGVtZW50ZWQ6aSg5NTE1OCwzLFwiTWV0aG9kX25vdF9pbXBsZW1lbnRlZF85NTE1OFwiLFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIiksRnVuY3Rpb25fbm90X2ltcGxlbWVudGVkOmkoOTUxNTksMyxcIkZ1bmN0aW9uX25vdF9pbXBsZW1lbnRlZF85NTE1OVwiLFwiRnVuY3Rpb24gbm90IGltcGxlbWVudGVkLlwiKSxBZGRfb3ZlcnJpZGVfbW9kaWZpZXI6aSg5NTE2MCwzLFwiQWRkX292ZXJyaWRlX21vZGlmaWVyXzk1MTYwXCIsXCJBZGQgJ292ZXJyaWRlJyBtb2RpZmllclwiKSxSZW1vdmVfb3ZlcnJpZGVfbW9kaWZpZXI6aSg5NTE2MSwzLFwiUmVtb3ZlX292ZXJyaWRlX21vZGlmaWVyXzk1MTYxXCIsXCJSZW1vdmUgJ292ZXJyaWRlJyBtb2RpZmllclwiKSxBZGRfYWxsX21pc3Npbmdfb3ZlcnJpZGVfbW9kaWZpZXJzOmkoOTUxNjIsMyxcIkFkZF9hbGxfbWlzc2luZ19vdmVycmlkZV9tb2RpZmllcnNfOTUxNjJcIixcIkFkZCBhbGwgbWlzc2luZyAnb3ZlcnJpZGUnIG1vZGlmaWVyc1wiKSxSZW1vdmVfYWxsX3VubmVjZXNzYXJ5X292ZXJyaWRlX21vZGlmaWVyczppKDk1MTYzLDMsXCJSZW1vdmVfYWxsX3VubmVjZXNzYXJ5X292ZXJyaWRlX21vZGlmaWVyc185NTE2M1wiLFwiUmVtb3ZlIGFsbCB1bm5lY2Vzc2FyeSAnb3ZlcnJpZGUnIG1vZGlmaWVyc1wiKSxDYW5fb25seV9jb252ZXJ0X25hbWVkX2V4cG9ydDppKDk1MTY0LDMsXCJDYW5fb25seV9jb252ZXJ0X25hbWVkX2V4cG9ydF85NTE2NFwiLFwiQ2FuIG9ubHkgY29udmVydCBuYW1lZCBleHBvcnRcIiksQWRkX21pc3NpbmdfcHJvcGVydGllczppKDk1MTY1LDMsXCJBZGRfbWlzc2luZ19wcm9wZXJ0aWVzXzk1MTY1XCIsXCJBZGQgbWlzc2luZyBwcm9wZXJ0aWVzXCIpLEFkZF9hbGxfbWlzc2luZ19wcm9wZXJ0aWVzOmkoOTUxNjYsMyxcIkFkZF9hbGxfbWlzc2luZ19wcm9wZXJ0aWVzXzk1MTY2XCIsXCJBZGQgYWxsIG1pc3NpbmcgcHJvcGVydGllc1wiKSxBZGRfbWlzc2luZ19hdHRyaWJ1dGVzOmkoOTUxNjcsMyxcIkFkZF9taXNzaW5nX2F0dHJpYnV0ZXNfOTUxNjdcIixcIkFkZCBtaXNzaW5nIGF0dHJpYnV0ZXNcIiksQWRkX2FsbF9taXNzaW5nX2F0dHJpYnV0ZXM6aSg5NTE2OCwzLFwiQWRkX2FsbF9taXNzaW5nX2F0dHJpYnV0ZXNfOTUxNjhcIixcIkFkZCBhbGwgbWlzc2luZyBhdHRyaWJ1dGVzXCIpLEFkZF91bmRlZmluZWRfdG9fb3B0aW9uYWxfcHJvcGVydHlfdHlwZTppKDk1MTY5LDMsXCJBZGRfdW5kZWZpbmVkX3RvX29wdGlvbmFsX3Byb3BlcnR5X3R5cGVfOTUxNjlcIixcIkFkZCAndW5kZWZpbmVkJyB0byBvcHRpb25hbCBwcm9wZXJ0eSB0eXBlXCIpLENvbnZlcnRfbmFtZWRfaW1wb3J0c190b19kZWZhdWx0X2ltcG9ydDppKDk1MTcwLDMsXCJDb252ZXJ0X25hbWVkX2ltcG9ydHNfdG9fZGVmYXVsdF9pbXBvcnRfOTUxNzBcIixcIkNvbnZlcnQgbmFtZWQgaW1wb3J0cyB0byBkZWZhdWx0IGltcG9ydFwiKSxEZWxldGVfdW51c2VkX3BhcmFtX3RhZ18wOmkoOTUxNzEsMyxcIkRlbGV0ZV91bnVzZWRfcGFyYW1fdGFnXzBfOTUxNzFcIixcIkRlbGV0ZSB1bnVzZWQgJ0BwYXJhbScgdGFnICd7MH0nXCIpLERlbGV0ZV9hbGxfdW51c2VkX3BhcmFtX3RhZ3M6aSg5NTE3MiwzLFwiRGVsZXRlX2FsbF91bnVzZWRfcGFyYW1fdGFnc185NTE3MlwiLFwiRGVsZXRlIGFsbCB1bnVzZWQgJ0BwYXJhbScgdGFnc1wiKSxSZW5hbWVfcGFyYW1fdGFnX25hbWVfMF90b18xOmkoOTUxNzMsMyxcIlJlbmFtZV9wYXJhbV90YWdfbmFtZV8wX3RvXzFfOTUxNzNcIixcIlJlbmFtZSAnQHBhcmFtJyB0YWcgbmFtZSAnezB9JyB0byAnezF9J1wiKSxVc2VfMDppKDk1MTc0LDMsXCJVc2VfMF85NTE3NFwiLFwiVXNlIGB7MH1gLlwiKSxVc2VfTnVtYmVyX2lzTmFOX2luX2FsbF9jb25kaXRpb25zOmkoOTUxNzUsMyxcIlVzZV9OdW1iZXJfaXNOYU5faW5fYWxsX2NvbmRpdGlvbnNfOTUxNzVcIixcIlVzZSBgTnVtYmVyLmlzTmFOYCBpbiBhbGwgY29uZGl0aW9ucy5cIiksQ29udmVydF90eXBlZGVmX3RvX1R5cGVTY3JpcHRfdHlwZTppKDk1MTc2LDMsXCJDb252ZXJ0X3R5cGVkZWZfdG9fVHlwZVNjcmlwdF90eXBlXzk1MTc2XCIsXCJDb252ZXJ0IHR5cGVkZWYgdG8gVHlwZVNjcmlwdCB0eXBlLlwiKSxDb252ZXJ0X2FsbF90eXBlZGVmX3RvX1R5cGVTY3JpcHRfdHlwZXM6aSg5NTE3NywzLFwiQ29udmVydF9hbGxfdHlwZWRlZl90b19UeXBlU2NyaXB0X3R5cGVzXzk1MTc3XCIsXCJDb252ZXJ0IGFsbCB0eXBlZGVmIHRvIFR5cGVTY3JpcHQgdHlwZXMuXCIpLE1vdmVfdG9fZmlsZTppKDk1MTc4LDMsXCJNb3ZlX3RvX2ZpbGVfOTUxNzhcIixcIk1vdmUgdG8gZmlsZVwiKSxDYW5ub3RfbW92ZV90b19maWxlX3NlbGVjdGVkX2ZpbGVfaXNfaW52YWxpZDppKDk1MTc5LDMsXCJDYW5ub3RfbW92ZV90b19maWxlX3NlbGVjdGVkX2ZpbGVfaXNfaW52YWxpZF85NTE3OVwiLFwiQ2Fubm90IG1vdmUgdG8gZmlsZSwgc2VsZWN0ZWQgZmlsZSBpcyBpbnZhbGlkXCIpLFVzZV9pbXBvcnRfdHlwZTppKDk1MTgwLDMsXCJVc2VfaW1wb3J0X3R5cGVfOTUxODBcIixcIlVzZSAnaW1wb3J0IHR5cGUnXCIpLFVzZV90eXBlXzA6aSg5NTE4MSwzLFwiVXNlX3R5cGVfMF85NTE4MVwiLFwiVXNlICd0eXBlIHswfSdcIiksRml4X2FsbF93aXRoX3R5cGVfb25seV9pbXBvcnRzOmkoOTUxODIsMyxcIkZpeF9hbGxfd2l0aF90eXBlX29ubHlfaW1wb3J0c185NTE4MlwiLFwiRml4IGFsbCB3aXRoIHR5cGUtb25seSBpbXBvcnRzXCIpLENhbm5vdF9tb3ZlX3N0YXRlbWVudHNfdG9fdGhlX3NlbGVjdGVkX2ZpbGU6aSg5NTE4MywzLFwiQ2Fubm90X21vdmVfc3RhdGVtZW50c190b190aGVfc2VsZWN0ZWRfZmlsZV85NTE4M1wiLFwiQ2Fubm90IG1vdmUgc3RhdGVtZW50cyB0byB0aGUgc2VsZWN0ZWQgZmlsZVwiKSxJbmxpbmVfdmFyaWFibGU6aSg5NTE4NCwzLFwiSW5saW5lX3ZhcmlhYmxlXzk1MTg0XCIsXCJJbmxpbmUgdmFyaWFibGVcIiksQ291bGRfbm90X2ZpbmRfdmFyaWFibGVfdG9faW5saW5lOmkoOTUxODUsMyxcIkNvdWxkX25vdF9maW5kX3ZhcmlhYmxlX3RvX2lubGluZV85NTE4NVwiLFwiQ291bGQgbm90IGZpbmQgdmFyaWFibGUgdG8gaW5saW5lLlwiKSxWYXJpYWJsZXNfd2l0aF9tdWx0aXBsZV9kZWNsYXJhdGlvbnNfY2Fubm90X2JlX2lubGluZWQ6aSg5NTE4NiwzLFwiVmFyaWFibGVzX3dpdGhfbXVsdGlwbGVfZGVjbGFyYXRpb25zX2Nhbm5vdF9iZV9pbmxpbmVkXzk1MTg2XCIsXCJWYXJpYWJsZXMgd2l0aCBtdWx0aXBsZSBkZWNsYXJhdGlvbnMgY2Fubm90IGJlIGlubGluZWQuXCIpLEFkZF9taXNzaW5nX2NvbW1hX2Zvcl9vYmplY3RfbWVtYmVyX2NvbXBsZXRpb25fMDppKDk1MTg3LDMsXCJBZGRfbWlzc2luZ19jb21tYV9mb3Jfb2JqZWN0X21lbWJlcl9jb21wbGV0aW9uXzBfOTUxODdcIixcIkFkZCBtaXNzaW5nIGNvbW1hIGZvciBvYmplY3QgbWVtYmVyIGNvbXBsZXRpb24gJ3swfScuXCIpLE5vX3ZhbHVlX2V4aXN0c19pbl9zY29wZV9mb3JfdGhlX3Nob3J0aGFuZF9wcm9wZXJ0eV8wX0VpdGhlcl9kZWNsYXJlX29uZV9vcl9wcm92aWRlX2FuX2luaXRpYWxpemVyOmkoMTgwMDQsMSxcIk5vX3ZhbHVlX2V4aXN0c19pbl9zY29wZV9mb3JfdGhlX3Nob3J0aGFuZF9wcm9wZXJ0eV8wX0VpdGhlcl9kZWNsYXJlX29uZV9vcl9wcm92aWRlX2FuX2luaXRpYWxpemVyXzE4MDA0XCIsXCJObyB2YWx1ZSBleGlzdHMgaW4gc2NvcGUgZm9yIHRoZSBzaG9ydGhhbmQgcHJvcGVydHkgJ3swfScuIEVpdGhlciBkZWNsYXJlIG9uZSBvciBwcm92aWRlIGFuIGluaXRpYWxpemVyLlwiKSxDbGFzc2VzX21heV9ub3RfaGF2ZV9hX2ZpZWxkX25hbWVkX2NvbnN0cnVjdG9yOmkoMTgwMDYsMSxcIkNsYXNzZXNfbWF5X25vdF9oYXZlX2FfZmllbGRfbmFtZWRfY29uc3RydWN0b3JfMTgwMDZcIixcIkNsYXNzZXMgbWF5IG5vdCBoYXZlIGEgZmllbGQgbmFtZWQgJ2NvbnN0cnVjdG9yJy5cIiksSlNYX2V4cHJlc3Npb25zX21heV9ub3RfdXNlX3RoZV9jb21tYV9vcGVyYXRvcl9EaWRfeW91X21lYW5fdG9fd3JpdGVfYW5fYXJyYXk6aSgxODAwNywxLFwiSlNYX2V4cHJlc3Npb25zX21heV9ub3RfdXNlX3RoZV9jb21tYV9vcGVyYXRvcl9EaWRfeW91X21lYW5fdG9fd3JpdGVfYW5fYXJyYXlfMTgwMDdcIixcIkpTWCBleHByZXNzaW9ucyBtYXkgbm90IHVzZSB0aGUgY29tbWEgb3BlcmF0b3IuIERpZCB5b3UgbWVhbiB0byB3cml0ZSBhbiBhcnJheT9cIiksUHJpdmF0ZV9pZGVudGlmaWVyc19jYW5ub3RfYmVfdXNlZF9hc19wYXJhbWV0ZXJzOmkoMTgwMDksMSxcIlByaXZhdGVfaWRlbnRpZmllcnNfY2Fubm90X2JlX3VzZWRfYXNfcGFyYW1ldGVyc18xODAwOVwiLFwiUHJpdmF0ZSBpZGVudGlmaWVycyBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXJzLlwiKSxBbl9hY2Nlc3NpYmlsaXR5X21vZGlmaWVyX2Nhbm5vdF9iZV91c2VkX3dpdGhfYV9wcml2YXRlX2lkZW50aWZpZXI6aSgxODAxMCwxLFwiQW5fYWNjZXNzaWJpbGl0eV9tb2RpZmllcl9jYW5ub3RfYmVfdXNlZF93aXRoX2FfcHJpdmF0ZV9pZGVudGlmaWVyXzE4MDEwXCIsXCJBbiBhY2Nlc3NpYmlsaXR5IG1vZGlmaWVyIGNhbm5vdCBiZSB1c2VkIHdpdGggYSBwcml2YXRlIGlkZW50aWZpZXIuXCIpLFRoZV9vcGVyYW5kX29mX2FfZGVsZXRlX29wZXJhdG9yX2Nhbm5vdF9iZV9hX3ByaXZhdGVfaWRlbnRpZmllcjppKDE4MDExLDEsXCJUaGVfb3BlcmFuZF9vZl9hX2RlbGV0ZV9vcGVyYXRvcl9jYW5ub3RfYmVfYV9wcml2YXRlX2lkZW50aWZpZXJfMTgwMTFcIixcIlRoZSBvcGVyYW5kIG9mIGEgJ2RlbGV0ZScgb3BlcmF0b3IgY2Fubm90IGJlIGEgcHJpdmF0ZSBpZGVudGlmaWVyLlwiKSxjb25zdHJ1Y3Rvcl9pc19hX3Jlc2VydmVkX3dvcmQ6aSgxODAxMiwxLFwiY29uc3RydWN0b3JfaXNfYV9yZXNlcnZlZF93b3JkXzE4MDEyXCIsXCInI2NvbnN0cnVjdG9yJyBpcyBhIHJlc2VydmVkIHdvcmQuXCIpLFByb3BlcnR5XzBfaXNfbm90X2FjY2Vzc2libGVfb3V0c2lkZV9jbGFzc18xX2JlY2F1c2VfaXRfaGFzX2FfcHJpdmF0ZV9pZGVudGlmaWVyOmkoMTgwMTMsMSxcIlByb3BlcnR5XzBfaXNfbm90X2FjY2Vzc2libGVfb3V0c2lkZV9jbGFzc18xX2JlY2F1c2VfaXRfaGFzX2FfcHJpdmF0ZV9pZGVudGlmaWVyXzE4MDEzXCIsXCJQcm9wZXJ0eSAnezB9JyBpcyBub3QgYWNjZXNzaWJsZSBvdXRzaWRlIGNsYXNzICd7MX0nIGJlY2F1c2UgaXQgaGFzIGEgcHJpdmF0ZSBpZGVudGlmaWVyLlwiKSxUaGVfcHJvcGVydHlfMF9jYW5ub3RfYmVfYWNjZXNzZWRfb25fdHlwZV8xX3dpdGhpbl90aGlzX2NsYXNzX2JlY2F1c2VfaXRfaXNfc2hhZG93ZWRfYnlfYW5vdGhlcl9wcml2YXRlX2lkZW50aWZpZXJfd2l0aF90aGVfc2FtZV9zcGVsbGluZzppKDE4MDE0LDEsXCJUaGVfcHJvcGVydHlfMF9jYW5ub3RfYmVfYWNjZXNzZWRfb25fdHlwZV8xX3dpdGhpbl90aGlzX2NsYXNzX2JlY2F1c2VfaXRfaXNfc2hhZG93ZWRfYnlfYW5vdGhlcl9wcml2XzE4MDE0XCIsXCJUaGUgcHJvcGVydHkgJ3swfScgY2Fubm90IGJlIGFjY2Vzc2VkIG9uIHR5cGUgJ3sxfScgd2l0aGluIHRoaXMgY2xhc3MgYmVjYXVzZSBpdCBpcyBzaGFkb3dlZCBieSBhbm90aGVyIHByaXZhdGUgaWRlbnRpZmllciB3aXRoIHRoZSBzYW1lIHNwZWxsaW5nLlwiKSxQcm9wZXJ0eV8wX2luX3R5cGVfMV9yZWZlcnNfdG9fYV9kaWZmZXJlbnRfbWVtYmVyX3RoYXRfY2Fubm90X2JlX2FjY2Vzc2VkX2Zyb21fd2l0aGluX3R5cGVfMjppKDE4MDE1LDEsXCJQcm9wZXJ0eV8wX2luX3R5cGVfMV9yZWZlcnNfdG9fYV9kaWZmZXJlbnRfbWVtYmVyX3RoYXRfY2Fubm90X2JlX2FjY2Vzc2VkX2Zyb21fd2l0aGluX3R5cGVfMl8xODAxNVwiLFwiUHJvcGVydHkgJ3swfScgaW4gdHlwZSAnezF9JyByZWZlcnMgdG8gYSBkaWZmZXJlbnQgbWVtYmVyIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIGZyb20gd2l0aGluIHR5cGUgJ3syfScuXCIpLFByaXZhdGVfaWRlbnRpZmllcnNfYXJlX25vdF9hbGxvd2VkX291dHNpZGVfY2xhc3NfYm9kaWVzOmkoMTgwMTYsMSxcIlByaXZhdGVfaWRlbnRpZmllcnNfYXJlX25vdF9hbGxvd2VkX291dHNpZGVfY2xhc3NfYm9kaWVzXzE4MDE2XCIsXCJQcml2YXRlIGlkZW50aWZpZXJzIGFyZSBub3QgYWxsb3dlZCBvdXRzaWRlIGNsYXNzIGJvZGllcy5cIiksVGhlX3NoYWRvd2luZ19kZWNsYXJhdGlvbl9vZl8wX2lzX2RlZmluZWRfaGVyZTppKDE4MDE3LDEsXCJUaGVfc2hhZG93aW5nX2RlY2xhcmF0aW9uX29mXzBfaXNfZGVmaW5lZF9oZXJlXzE4MDE3XCIsXCJUaGUgc2hhZG93aW5nIGRlY2xhcmF0aW9uIG9mICd7MH0nIGlzIGRlZmluZWQgaGVyZVwiKSxUaGVfZGVjbGFyYXRpb25fb2ZfMF90aGF0X3lvdV9wcm9iYWJseV9pbnRlbmRlZF90b191c2VfaXNfZGVmaW5lZF9oZXJlOmkoMTgwMTgsMSxcIlRoZV9kZWNsYXJhdGlvbl9vZl8wX3RoYXRfeW91X3Byb2JhYmx5X2ludGVuZGVkX3RvX3VzZV9pc19kZWZpbmVkX2hlcmVfMTgwMThcIixcIlRoZSBkZWNsYXJhdGlvbiBvZiAnezB9JyB0aGF0IHlvdSBwcm9iYWJseSBpbnRlbmRlZCB0byB1c2UgaXMgZGVmaW5lZCBoZXJlXCIpLF8wX21vZGlmaWVyX2Nhbm5vdF9iZV91c2VkX3dpdGhfYV9wcml2YXRlX2lkZW50aWZpZXI6aSgxODAxOSwxLFwiXzBfbW9kaWZpZXJfY2Fubm90X2JlX3VzZWRfd2l0aF9hX3ByaXZhdGVfaWRlbnRpZmllcl8xODAxOVwiLFwiJ3swfScgbW9kaWZpZXIgY2Fubm90IGJlIHVzZWQgd2l0aCBhIHByaXZhdGUgaWRlbnRpZmllci5cIiksQW5fZW51bV9tZW1iZXJfY2Fubm90X2JlX25hbWVkX3dpdGhfYV9wcml2YXRlX2lkZW50aWZpZXI6aSgxODAyNCwxLFwiQW5fZW51bV9tZW1iZXJfY2Fubm90X2JlX25hbWVkX3dpdGhfYV9wcml2YXRlX2lkZW50aWZpZXJfMTgwMjRcIixcIkFuIGVudW0gbWVtYmVyIGNhbm5vdCBiZSBuYW1lZCB3aXRoIGEgcHJpdmF0ZSBpZGVudGlmaWVyLlwiKSxjYW5fb25seV9iZV91c2VkX2F0X3RoZV9zdGFydF9vZl9hX2ZpbGU6aSgxODAyNiwxLFwiY2FuX29ubHlfYmVfdXNlZF9hdF90aGVfc3RhcnRfb2ZfYV9maWxlXzE4MDI2XCIsXCInIyEnIGNhbiBvbmx5IGJlIHVzZWQgYXQgdGhlIHN0YXJ0IG9mIGEgZmlsZS5cIiksQ29tcGlsZXJfcmVzZXJ2ZXNfbmFtZV8wX3doZW5fZW1pdHRpbmdfcHJpdmF0ZV9pZGVudGlmaWVyX2Rvd25sZXZlbDppKDE4MDI3LDEsXCJDb21waWxlcl9yZXNlcnZlc19uYW1lXzBfd2hlbl9lbWl0dGluZ19wcml2YXRlX2lkZW50aWZpZXJfZG93bmxldmVsXzE4MDI3XCIsXCJDb21waWxlciByZXNlcnZlcyBuYW1lICd7MH0nIHdoZW4gZW1pdHRpbmcgcHJpdmF0ZSBpZGVudGlmaWVyIGRvd25sZXZlbC5cIiksUHJpdmF0ZV9pZGVudGlmaWVyc19hcmVfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF8yMDE1X2FuZF9oaWdoZXI6aSgxODAyOCwxLFwiUHJpdmF0ZV9pZGVudGlmaWVyc19hcmVfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF8yMDE1X2FuZF9oaWdoZXJfMTgwMjhcIixcIlByaXZhdGUgaWRlbnRpZmllcnMgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGFyZ2V0aW5nIEVDTUFTY3JpcHQgMjAxNSBhbmQgaGlnaGVyLlwiKSxQcml2YXRlX2lkZW50aWZpZXJzX2FyZV9ub3RfYWxsb3dlZF9pbl92YXJpYWJsZV9kZWNsYXJhdGlvbnM6aSgxODAyOSwxLFwiUHJpdmF0ZV9pZGVudGlmaWVyc19hcmVfbm90X2FsbG93ZWRfaW5fdmFyaWFibGVfZGVjbGFyYXRpb25zXzE4MDI5XCIsXCJQcml2YXRlIGlkZW50aWZpZXJzIGFyZSBub3QgYWxsb3dlZCBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuXCIpLEFuX29wdGlvbmFsX2NoYWluX2Nhbm5vdF9jb250YWluX3ByaXZhdGVfaWRlbnRpZmllcnM6aSgxODAzMCwxLFwiQW5fb3B0aW9uYWxfY2hhaW5fY2Fubm90X2NvbnRhaW5fcHJpdmF0ZV9pZGVudGlmaWVyc18xODAzMFwiLFwiQW4gb3B0aW9uYWwgY2hhaW4gY2Fubm90IGNvbnRhaW4gcHJpdmF0ZSBpZGVudGlmaWVycy5cIiksVGhlX2ludGVyc2VjdGlvbl8wX3dhc19yZWR1Y2VkX3RvX25ldmVyX2JlY2F1c2VfcHJvcGVydHlfMV9oYXNfY29uZmxpY3RpbmdfdHlwZXNfaW5fc29tZV9jb25zdGl0dWVudHM6aSgxODAzMSwxLFwiVGhlX2ludGVyc2VjdGlvbl8wX3dhc19yZWR1Y2VkX3RvX25ldmVyX2JlY2F1c2VfcHJvcGVydHlfMV9oYXNfY29uZmxpY3RpbmdfdHlwZXNfaW5fc29tZV9jb25zdGl0dWVudF8xODAzMVwiLFwiVGhlIGludGVyc2VjdGlvbiAnezB9JyB3YXMgcmVkdWNlZCB0byAnbmV2ZXInIGJlY2F1c2UgcHJvcGVydHkgJ3sxfScgaGFzIGNvbmZsaWN0aW5nIHR5cGVzIGluIHNvbWUgY29uc3RpdHVlbnRzLlwiKSxUaGVfaW50ZXJzZWN0aW9uXzBfd2FzX3JlZHVjZWRfdG9fbmV2ZXJfYmVjYXVzZV9wcm9wZXJ0eV8xX2V4aXN0c19pbl9tdWx0aXBsZV9jb25zdGl0dWVudHNfYW5kX2lzX3ByaXZhdGVfaW5fc29tZTppKDE4MDMyLDEsXCJUaGVfaW50ZXJzZWN0aW9uXzBfd2FzX3JlZHVjZWRfdG9fbmV2ZXJfYmVjYXVzZV9wcm9wZXJ0eV8xX2V4aXN0c19pbl9tdWx0aXBsZV9jb25zdGl0dWVudHNfYW5kX2lzX3ByXzE4MDMyXCIsXCJUaGUgaW50ZXJzZWN0aW9uICd7MH0nIHdhcyByZWR1Y2VkIHRvICduZXZlcicgYmVjYXVzZSBwcm9wZXJ0eSAnezF9JyBleGlzdHMgaW4gbXVsdGlwbGUgY29uc3RpdHVlbnRzIGFuZCBpcyBwcml2YXRlIGluIHNvbWUuXCIpLFR5cGVfMF9pc19ub3RfYXNzaWduYWJsZV90b190eXBlXzFfYXNfcmVxdWlyZWRfZm9yX2NvbXB1dGVkX2VudW1fbWVtYmVyX3ZhbHVlczppKDE4MDMzLDEsXCJUeXBlXzBfaXNfbm90X2Fzc2lnbmFibGVfdG9fdHlwZV8xX2FzX3JlcXVpcmVkX2Zvcl9jb21wdXRlZF9lbnVtX21lbWJlcl92YWx1ZXNfMTgwMzNcIixcIlR5cGUgJ3swfScgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnezF9JyBhcyByZXF1aXJlZCBmb3IgY29tcHV0ZWQgZW51bSBtZW1iZXIgdmFsdWVzLlwiKSxTcGVjaWZ5X3RoZV9KU1hfZnJhZ21lbnRfZmFjdG9yeV9mdW5jdGlvbl90b191c2Vfd2hlbl90YXJnZXRpbmdfcmVhY3RfSlNYX2VtaXRfd2l0aF9qc3hGYWN0b3J5X2NvbXBpbGVyX29wdGlvbl9pc19zcGVjaWZpZWRfZV9nX0ZyYWdtZW50OmkoMTgwMzQsMyxcIlNwZWNpZnlfdGhlX0pTWF9mcmFnbWVudF9mYWN0b3J5X2Z1bmN0aW9uX3RvX3VzZV93aGVuX3RhcmdldGluZ19yZWFjdF9KU1hfZW1pdF93aXRoX2pzeEZhY3RvcnlfY29tcGlfMTgwMzRcIixcIlNwZWNpZnkgdGhlIEpTWCBmcmFnbWVudCBmYWN0b3J5IGZ1bmN0aW9uIHRvIHVzZSB3aGVuIHRhcmdldGluZyAncmVhY3QnIEpTWCBlbWl0IHdpdGggJ2pzeEZhY3RvcnknIGNvbXBpbGVyIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGUuZy4gJ0ZyYWdtZW50Jy5cIiksSW52YWxpZF92YWx1ZV9mb3JfanN4RnJhZ21lbnRGYWN0b3J5XzBfaXNfbm90X2FfdmFsaWRfaWRlbnRpZmllcl9vcl9xdWFsaWZpZWRfbmFtZTppKDE4MDM1LDEsXCJJbnZhbGlkX3ZhbHVlX2Zvcl9qc3hGcmFnbWVudEZhY3RvcnlfMF9pc19ub3RfYV92YWxpZF9pZGVudGlmaWVyX29yX3F1YWxpZmllZF9uYW1lXzE4MDM1XCIsXCJJbnZhbGlkIHZhbHVlIGZvciAnanN4RnJhZ21lbnRGYWN0b3J5Jy4gJ3swfScgaXMgbm90IGEgdmFsaWQgaWRlbnRpZmllciBvciBxdWFsaWZpZWQtbmFtZS5cIiksQ2xhc3NfZGVjb3JhdG9yc19jYW5fdF9iZV91c2VkX3dpdGhfc3RhdGljX3ByaXZhdGVfaWRlbnRpZmllcl9Db25zaWRlcl9yZW1vdmluZ190aGVfZXhwZXJpbWVudGFsX2RlY29yYXRvcjppKDE4MDM2LDEsXCJDbGFzc19kZWNvcmF0b3JzX2Nhbl90X2JlX3VzZWRfd2l0aF9zdGF0aWNfcHJpdmF0ZV9pZGVudGlmaWVyX0NvbnNpZGVyX3JlbW92aW5nX3RoZV9leHBlcmltZW50YWxfZGVjXzE4MDM2XCIsXCJDbGFzcyBkZWNvcmF0b3JzIGNhbid0IGJlIHVzZWQgd2l0aCBzdGF0aWMgcHJpdmF0ZSBpZGVudGlmaWVyLiBDb25zaWRlciByZW1vdmluZyB0aGUgZXhwZXJpbWVudGFsIGRlY29yYXRvci5cIiksYXdhaXRfZXhwcmVzc2lvbl9jYW5ub3RfYmVfdXNlZF9pbnNpZGVfYV9jbGFzc19zdGF0aWNfYmxvY2s6aSgxODAzNywxLFwiYXdhaXRfZXhwcmVzc2lvbl9jYW5ub3RfYmVfdXNlZF9pbnNpZGVfYV9jbGFzc19zdGF0aWNfYmxvY2tfMTgwMzdcIixcIidhd2FpdCcgZXhwcmVzc2lvbiBjYW5ub3QgYmUgdXNlZCBpbnNpZGUgYSBjbGFzcyBzdGF0aWMgYmxvY2suXCIpLGZvcl9hd2FpdF9sb29wc19jYW5ub3RfYmVfdXNlZF9pbnNpZGVfYV9jbGFzc19zdGF0aWNfYmxvY2s6aSgxODAzOCwxLFwiZm9yX2F3YWl0X2xvb3BzX2Nhbm5vdF9iZV91c2VkX2luc2lkZV9hX2NsYXNzX3N0YXRpY19ibG9ja18xODAzOFwiLFwiJ2ZvciBhd2FpdCcgbG9vcHMgY2Fubm90IGJlIHVzZWQgaW5zaWRlIGEgY2xhc3Mgc3RhdGljIGJsb2NrLlwiKSxJbnZhbGlkX3VzZV9vZl8wX0l0X2Nhbm5vdF9iZV91c2VkX2luc2lkZV9hX2NsYXNzX3N0YXRpY19ibG9jazppKDE4MDM5LDEsXCJJbnZhbGlkX3VzZV9vZl8wX0l0X2Nhbm5vdF9iZV91c2VkX2luc2lkZV9hX2NsYXNzX3N0YXRpY19ibG9ja18xODAzOVwiLFwiSW52YWxpZCB1c2Ugb2YgJ3swfScuIEl0IGNhbm5vdCBiZSB1c2VkIGluc2lkZSBhIGNsYXNzIHN0YXRpYyBibG9jay5cIiksQV9yZXR1cm5fc3RhdGVtZW50X2Nhbm5vdF9iZV91c2VkX2luc2lkZV9hX2NsYXNzX3N0YXRpY19ibG9jazppKDE4MDQxLDEsXCJBX3JldHVybl9zdGF0ZW1lbnRfY2Fubm90X2JlX3VzZWRfaW5zaWRlX2FfY2xhc3Nfc3RhdGljX2Jsb2NrXzE4MDQxXCIsXCJBICdyZXR1cm4nIHN0YXRlbWVudCBjYW5ub3QgYmUgdXNlZCBpbnNpZGUgYSBjbGFzcyBzdGF0aWMgYmxvY2suXCIpLF8wX2lzX2FfdHlwZV9hbmRfY2Fubm90X2JlX2ltcG9ydGVkX2luX0phdmFTY3JpcHRfZmlsZXNfVXNlXzFfaW5fYV9KU0RvY190eXBlX2Fubm90YXRpb246aSgxODA0MiwxLFwiXzBfaXNfYV90eXBlX2FuZF9jYW5ub3RfYmVfaW1wb3J0ZWRfaW5fSmF2YVNjcmlwdF9maWxlc19Vc2VfMV9pbl9hX0pTRG9jX3R5cGVfYW5ub3RhdGlvbl8xODA0MlwiLFwiJ3swfScgaXMgYSB0eXBlIGFuZCBjYW5ub3QgYmUgaW1wb3J0ZWQgaW4gSmF2YVNjcmlwdCBmaWxlcy4gVXNlICd7MX0nIGluIGEgSlNEb2MgdHlwZSBhbm5vdGF0aW9uLlwiKSxUeXBlc19jYW5ub3RfYXBwZWFyX2luX2V4cG9ydF9kZWNsYXJhdGlvbnNfaW5fSmF2YVNjcmlwdF9maWxlczppKDE4MDQzLDEsXCJUeXBlc19jYW5ub3RfYXBwZWFyX2luX2V4cG9ydF9kZWNsYXJhdGlvbnNfaW5fSmF2YVNjcmlwdF9maWxlc18xODA0M1wiLFwiVHlwZXMgY2Fubm90IGFwcGVhciBpbiBleHBvcnQgZGVjbGFyYXRpb25zIGluIEphdmFTY3JpcHQgZmlsZXMuXCIpLF8wX2lzX2F1dG9tYXRpY2FsbHlfZXhwb3J0ZWRfaGVyZTppKDE4MDQ0LDMsXCJfMF9pc19hdXRvbWF0aWNhbGx5X2V4cG9ydGVkX2hlcmVfMTgwNDRcIixcIid7MH0nIGlzIGF1dG9tYXRpY2FsbHkgZXhwb3J0ZWQgaGVyZS5cIiksUHJvcGVydGllc193aXRoX3RoZV9hY2Nlc3Nvcl9tb2RpZmllcl9hcmVfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF8yMDE1X2FuZF9oaWdoZXI6aSgxODA0NSwxLFwiUHJvcGVydGllc193aXRoX3RoZV9hY2Nlc3Nvcl9tb2RpZmllcl9hcmVfb25seV9hdmFpbGFibGVfd2hlbl90YXJnZXRpbmdfRUNNQVNjcmlwdF8yMDE1X2FuZF9oaWdoZXJfMTgwNDVcIixcIlByb3BlcnRpZXMgd2l0aCB0aGUgJ2FjY2Vzc29yJyBtb2RpZmllciBhcmUgb25seSBhdmFpbGFibGUgd2hlbiB0YXJnZXRpbmcgRUNNQVNjcmlwdCAyMDE1IGFuZCBoaWdoZXIuXCIpLF8wX2lzX29mX3R5cGVfdW5rbm93bjppKDE4MDQ2LDEsXCJfMF9pc19vZl90eXBlX3Vua25vd25fMTgwNDZcIixcIid7MH0nIGlzIG9mIHR5cGUgJ3Vua25vd24nLlwiKSxfMF9pc19wb3NzaWJseV9udWxsOmkoMTgwNDcsMSxcIl8wX2lzX3Bvc3NpYmx5X251bGxfMTgwNDdcIixcIid7MH0nIGlzIHBvc3NpYmx5ICdudWxsJy5cIiksXzBfaXNfcG9zc2libHlfdW5kZWZpbmVkOmkoMTgwNDgsMSxcIl8wX2lzX3Bvc3NpYmx5X3VuZGVmaW5lZF8xODA0OFwiLFwiJ3swfScgaXMgcG9zc2libHkgJ3VuZGVmaW5lZCcuXCIpLF8wX2lzX3Bvc3NpYmx5X251bGxfb3JfdW5kZWZpbmVkOmkoMTgwNDksMSxcIl8wX2lzX3Bvc3NpYmx5X251bGxfb3JfdW5kZWZpbmVkXzE4MDQ5XCIsXCInezB9JyBpcyBwb3NzaWJseSAnbnVsbCcgb3IgJ3VuZGVmaW5lZCcuXCIpLFRoZV92YWx1ZV8wX2Nhbm5vdF9iZV91c2VkX2hlcmU6aSgxODA1MCwxLFwiVGhlX3ZhbHVlXzBfY2Fubm90X2JlX3VzZWRfaGVyZV8xODA1MFwiLFwiVGhlIHZhbHVlICd7MH0nIGNhbm5vdCBiZSB1c2VkIGhlcmUuXCIpLENvbXBpbGVyX29wdGlvbl8wX2Nhbm5vdF9iZV9naXZlbl9hbl9lbXB0eV9zdHJpbmc6aSgxODA1MSwxLFwiQ29tcGlsZXJfb3B0aW9uXzBfY2Fubm90X2JlX2dpdmVuX2FuX2VtcHR5X3N0cmluZ18xODA1MVwiLFwiQ29tcGlsZXIgb3B0aW9uICd7MH0nIGNhbm5vdCBiZSBnaXZlbiBhbiBlbXB0eSBzdHJpbmcuXCIpLE5vbl9hYnN0cmFjdF9jbGFzc18wX2RvZXNfbm90X2ltcGxlbWVudF9hbGxfYWJzdHJhY3RfbWVtYmVyc19vZl8xOmkoMTgwNTIsMSxcIk5vbl9hYnN0cmFjdF9jbGFzc18wX2RvZXNfbm90X2ltcGxlbWVudF9hbGxfYWJzdHJhY3RfbWVtYmVyc19vZl8xXzE4MDUyXCIsXCJOb24tYWJzdHJhY3QgY2xhc3MgJ3swfScgZG9lcyBub3QgaW1wbGVtZW50IGFsbCBhYnN0cmFjdCBtZW1iZXJzIG9mICd7MX0nXCIpLEl0c190eXBlXzBfaXNfbm90X2FfdmFsaWRfSlNYX2VsZW1lbnRfdHlwZTppKDE4MDUzLDEsXCJJdHNfdHlwZV8wX2lzX25vdF9hX3ZhbGlkX0pTWF9lbGVtZW50X3R5cGVfMTgwNTNcIixcIkl0cyB0eXBlICd7MH0nIGlzIG5vdCBhIHZhbGlkIEpTWCBlbGVtZW50IHR5cGUuXCIpLGF3YWl0X3VzaW5nX3N0YXRlbWVudHNfY2Fubm90X2JlX3VzZWRfaW5zaWRlX2FfY2xhc3Nfc3RhdGljX2Jsb2NrOmkoMTgwNTQsMSxcImF3YWl0X3VzaW5nX3N0YXRlbWVudHNfY2Fubm90X2JlX3VzZWRfaW5zaWRlX2FfY2xhc3Nfc3RhdGljX2Jsb2NrXzE4MDU0XCIsXCInYXdhaXQgdXNpbmcnIHN0YXRlbWVudHMgY2Fubm90IGJlIHVzZWQgaW5zaWRlIGEgY2xhc3Mgc3RhdGljIGJsb2NrLlwiKX19fSk7ZnVuY3Rpb24ga3QoZSl7cmV0dXJuIGU+PTgwfWZ1bmN0aW9uIG40KGUpe3JldHVybiBlPT09MzJ8fGt0KGUpfWZ1bmN0aW9uIGlfKGUsdCl7aWYoZTx0WzBdKXJldHVybiExO2xldCByPTAsYT10Lmxlbmd0aCxfO2Zvcig7cisxPGE7KXtpZihfPXIrKGEtcikvMixfLT1fJTIsdFtfXTw9ZSYmZTw9dFtfKzFdKXJldHVybiEwO2U8dFtfXT9hPV86cj1fKzJ9cmV0dXJuITF9ZnVuY3Rpb24gaTQoZSx0KXtyZXR1cm4gdD49Mj9pXyhlLG00KTp0PT09MT9pXyhlLGY0KTppXyhlLHU0KX1mdW5jdGlvbiBGRShlLHQpe3JldHVybiB0Pj0yP2lfKGUsaDQpOnQ9PT0xP2lfKGUsZDQpOmlfKGUscDQpfWZ1bmN0aW9uIEJFKGUpe2xldCB0PVtdO3JldHVybiBlLmZvckVhY2goKHIsYSk9Pnt0W3JdPWF9KSx0fWZ1bmN0aW9uIG5yKGUpe3JldHVybiBiNFtlXX1mdW5jdGlvbiBSbChlKXtyZXR1cm4gaDAuZ2V0KGUpfWZ1bmN0aW9uIFZkKGUpe2xldCB0PVtdLHI9MCxhPTA7Zm9yKDtyPGUubGVuZ3RoOyl7bGV0IF89ZS5jaGFyQ29kZUF0KHIpO3N3aXRjaChyKyssXyl7Y2FzZSAxMzplLmNoYXJDb2RlQXQocik9PT0xMCYmcisrO2Nhc2UgMTA6dC5wdXNoKGEpLGE9cjticmVhaztkZWZhdWx0Ol8+MTI3JiZtcihfKSYmKHQucHVzaChhKSxhPXIpO2JyZWFrfX1yZXR1cm4gdC5wdXNoKGEpLHR9ZnVuY3Rpb24gVUUoZSx0LHIsYSl7cmV0dXJuIGUuZ2V0UG9zaXRpb25PZkxpbmVBbmRDaGFyYWN0ZXI/ZS5nZXRQb3NpdGlvbk9mTGluZUFuZENoYXJhY3Rlcih0LHIsYSk6VGcoSWEoZSksdCxyLGUudGV4dCxhKX1mdW5jdGlvbiBUZyhlLHQscixhLF8peyh0PDB8fHQ+PWUubGVuZ3RoKSYmKF8/dD10PDA/MDp0Pj1lLmxlbmd0aD9lLmxlbmd0aC0xOnQ6Ti5mYWlsKGBCYWQgbGluZSBudW1iZXIuIExpbmU6ICR7dH0sIGxpbmVTdGFydHMubGVuZ3RoOiAke2UubGVuZ3RofSAsIGxpbmUgbWFwIGlzIGNvcnJlY3Q/ICR7YSE9PXZvaWQgMD9idihlLFZkKGEpKTpcInVua25vd25cIn1gKSk7bGV0IHA9ZVt0XStyO3JldHVybiBfP3A+ZVt0KzFdP2VbdCsxXTp0eXBlb2YgYT09XCJzdHJpbmdcIiYmcD5hLmxlbmd0aD9hLmxlbmd0aDpwOih0PGUubGVuZ3RoLTE/Ti5hc3NlcnQocDxlW3QrMV0pOmEhPT12b2lkIDAmJk4uYXNzZXJ0KHA8PWEubGVuZ3RoKSxwKX1mdW5jdGlvbiBJYShlKXtyZXR1cm4gZS5saW5lTWFwfHwoZS5saW5lTWFwPVZkKGUudGV4dCkpfWZ1bmN0aW9uIFNnKGUsdCl7bGV0IHI9X18oZSx0KTtyZXR1cm57bGluZTpyLGNoYXJhY3Rlcjp0LWVbcl19fWZ1bmN0aW9uIF9fKGUsdCxyKXtsZXQgYT1NbChlLHQsYnQsa3Iscik7cmV0dXJuIGE8MCYmKGE9fmEtMSxOLmFzc2VydChhIT09LTEsXCJwb3NpdGlvbiBjYW5ub3QgcHJlY2VkZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlXCIpKSxhfWZ1bmN0aW9uIHhfKGUsdCxyKXtpZih0PT09cilyZXR1cm4gMDtsZXQgYT1JYShlKSxfPU1hdGgubWluKHQscikscD1fPT09cixkPXA/dDpyLGg9X18oYSxfKSxsPV9fKGEsZCxoKTtyZXR1cm4gcD9oLWw6bC1ofWZ1bmN0aW9uIHRvKGUsdCl7cmV0dXJuIFNnKElhKGUpLHQpfWZ1bmN0aW9uIFZpKGUpe3JldHVybiBJbyhlKXx8bXIoZSl9ZnVuY3Rpb24gSW8oZSl7cmV0dXJuIGU9PT0zMnx8ZT09PTl8fGU9PT0xMXx8ZT09PTEyfHxlPT09MTYwfHxlPT09MTMzfHxlPT09NTc2MHx8ZT49ODE5MiYmZTw9ODIwM3x8ZT09PTgyMzl8fGU9PT04Mjg3fHxlPT09MTIyODh8fGU9PT02NTI3OX1mdW5jdGlvbiBtcihlKXtyZXR1cm4gZT09PTEwfHxlPT09MTN8fGU9PT04MjMyfHxlPT09ODIzM31mdW5jdGlvbiBFbyhlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIGpiKGUpe3JldHVybiBFbyhlKXx8ZT49NjUmJmU8PTcwfHxlPj05NyYmZTw9MTAyfWZ1bmN0aW9uIHFFKGUpe3JldHVybiBlPD0xMTE0MTExfWZ1bmN0aW9uIElmKGUpe3JldHVybiBlPj00OCYmZTw9NTV9ZnVuY3Rpb24gekUoZSx0KXtsZXQgcj1lLmNoYXJDb2RlQXQodCk7c3dpdGNoKHIpe2Nhc2UgMTM6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMzI6Y2FzZSA0NzpjYXNlIDYwOmNhc2UgMTI0OmNhc2UgNjE6Y2FzZSA2MjpyZXR1cm4hMDtjYXNlIDM1OnJldHVybiB0PT09MDtkZWZhdWx0OnJldHVybiByPjEyN319ZnVuY3Rpb24gTnQoZSx0LHIsYSxfKXtpZihPYSh0KSlyZXR1cm4gdDtsZXQgcD0hMTtmb3IoOzspe2xldCBkPWUuY2hhckNvZGVBdCh0KTtzd2l0Y2goZCl7Y2FzZSAxMzplLmNoYXJDb2RlQXQodCsxKT09PTEwJiZ0Kys7Y2FzZSAxMDppZih0KysscilyZXR1cm4gdDtwPSEhXztjb250aW51ZTtjYXNlIDk6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMzI6dCsrO2NvbnRpbnVlO2Nhc2UgNDc6aWYoYSlicmVhaztpZihlLmNoYXJDb2RlQXQodCsxKT09PTQ3KXtmb3IodCs9Mjt0PGUubGVuZ3RoJiYhbXIoZS5jaGFyQ29kZUF0KHQpKTspdCsrO3A9ITE7Y29udGludWV9aWYoZS5jaGFyQ29kZUF0KHQrMSk9PT00Mil7Zm9yKHQrPTI7dDxlLmxlbmd0aDspe2lmKGUuY2hhckNvZGVBdCh0KT09PTQyJiZlLmNoYXJDb2RlQXQodCsxKT09PTQ3KXt0Kz0yO2JyZWFrfXQrK31wPSExO2NvbnRpbnVlfWJyZWFrO2Nhc2UgNjA6Y2FzZSAxMjQ6Y2FzZSA2MTpjYXNlIDYyOmlmKGtvKGUsdCkpe3Q9JHMoZSx0KSxwPSExO2NvbnRpbnVlfWJyZWFrO2Nhc2UgMzU6aWYodD09PTAmJnhnKGUsdCkpe3Q9d2coZSx0KSxwPSExO2NvbnRpbnVlfWJyZWFrO2Nhc2UgNDI6aWYocCl7dCsrLHA9ITE7Y29udGludWV9YnJlYWs7ZGVmYXVsdDppZihkPjEyNyYmVmkoZCkpe3QrKztjb250aW51ZX1icmVha31yZXR1cm4gdH19ZnVuY3Rpb24ga28oZSx0KXtpZihOLmFzc2VydCh0Pj0wKSx0PT09MHx8bXIoZS5jaGFyQ29kZUF0KHQtMSkpKXtsZXQgcj1lLmNoYXJDb2RlQXQodCk7aWYodCtsbDxlLmxlbmd0aCl7Zm9yKGxldCBhPTA7YTxsbDthKyspaWYoZS5jaGFyQ29kZUF0KHQrYSkhPT1yKXJldHVybiExO3JldHVybiByPT09NjF8fGUuY2hhckNvZGVBdCh0K2xsKT09PTMyfX1yZXR1cm4hMX1mdW5jdGlvbiAkcyhlLHQscil7ciYmcihVLk1lcmdlX2NvbmZsaWN0X21hcmtlcl9lbmNvdW50ZXJlZCx0LGxsKTtsZXQgYT1lLmNoYXJDb2RlQXQodCksXz1lLmxlbmd0aDtpZihhPT09NjB8fGE9PT02Milmb3IoO3Q8XyYmIW1yKGUuY2hhckNvZGVBdCh0KSk7KXQrKztlbHNlIGZvcihOLmFzc2VydChhPT09MTI0fHxhPT09NjEpO3Q8Xzspe2xldCBwPWUuY2hhckNvZGVBdCh0KTtpZigocD09PTYxfHxwPT09NjIpJiZwIT09YSYma28oZSx0KSlicmVhazt0Kyt9cmV0dXJuIHR9ZnVuY3Rpb24geGcoZSx0KXtyZXR1cm4gTi5hc3NlcnQodD09PTApLEdkLnRlc3QoZSl9ZnVuY3Rpb24gd2coZSx0KXtsZXQgcj1HZC5leGVjKGUpWzBdO3JldHVybiB0PXQrci5sZW5ndGgsdH1mdW5jdGlvbiBIZChlLHQscixhLF8scCxkKXtsZXQgaCxsLHYseSxDPSExLFM9YSxrPWQ7aWYocj09PTApe1M9ITA7bGV0IEw9YzQodCk7TCYmKHI9TC5sZW5ndGgpfWU6Zm9yKDtyPj0wJiZyPHQubGVuZ3RoOyl7bGV0IEw9dC5jaGFyQ29kZUF0KHIpO3N3aXRjaChMKXtjYXNlIDEzOnQuY2hhckNvZGVBdChyKzEpPT09MTAmJnIrKztjYXNlIDEwOmlmKHIrKyxhKWJyZWFrIGU7Uz0hMCxDJiYoeT0hMCk7Y29udGludWU7Y2FzZSA5OmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDMyOnIrKztjb250aW51ZTtjYXNlIDQ3OmxldCBHPXQuY2hhckNvZGVBdChyKzEpLEs9ITE7aWYoRz09PTQ3fHxHPT09NDIpe2xldCB1ZT1HPT09NDc/MjozLFk9cjtpZihyKz0yLEc9PT00Nylmb3IoO3I8dC5sZW5ndGg7KXtpZihtcih0LmNoYXJDb2RlQXQocikpKXtLPSEwO2JyZWFrfXIrK31lbHNlIGZvcig7cjx0Lmxlbmd0aDspe2lmKHQuY2hhckNvZGVBdChyKT09PTQyJiZ0LmNoYXJDb2RlQXQocisxKT09PTQ3KXtyKz0yO2JyZWFrfXIrK31pZihTKXtpZihDJiYoaz1fKGgsbCx2LHkscCxrKSwhZSYmaykpcmV0dXJuIGs7aD1ZLGw9cix2PXVlLHk9SyxDPSEwfWNvbnRpbnVlfWJyZWFrIGU7ZGVmYXVsdDppZihMPjEyNyYmVmkoTCkpe0MmJm1yKEwpJiYoeT0hMCkscisrO2NvbnRpbnVlfWJyZWFrIGV9fXJldHVybiBDJiYoaz1fKGgsbCx2LHkscCxrKSksa31mdW5jdGlvbiBXRShlLHQscixhKXtyZXR1cm4gSGQoITEsZSx0LCExLHIsYSl9ZnVuY3Rpb24gVkUoZSx0LHIsYSl7cmV0dXJuIEhkKCExLGUsdCwhMCxyLGEpfWZ1bmN0aW9uIGE0KGUsdCxyLGEsXyl7cmV0dXJuIEhkKCEwLGUsdCwhMSxyLGEsXyl9ZnVuY3Rpb24gbzQoZSx0LHIsYSxfKXtyZXR1cm4gSGQoITAsZSx0LCEwLHIsYSxfKX1mdW5jdGlvbiBzNChlLHQscixhLF8scD1bXSl7cmV0dXJuIHAucHVzaCh7a2luZDpyLHBvczplLGVuZDp0LGhhc1RyYWlsaW5nTmV3TGluZTphfSkscH1mdW5jdGlvbiBXbyhlLHQpe3JldHVybiBhNChlLHQsczQsdm9pZCAwLHZvaWQgMCl9ZnVuY3Rpb24gXzQoZSx0KXtyZXR1cm4gbzQoZSx0LHM0LHZvaWQgMCx2b2lkIDApfWZ1bmN0aW9uIGM0KGUpe2xldCB0PUdkLmV4ZWMoZSk7aWYodClyZXR1cm4gdFswXX1mdW5jdGlvbiB1bihlLHQpe3JldHVybiBlPj02NSYmZTw9OTB8fGU+PTk3JiZlPD0xMjJ8fGU9PT0zNnx8ZT09PTk1fHxlPjEyNyYmaTQoZSx0KX1mdW5jdGlvbiBRYShlLHQscil7cmV0dXJuIGU+PTY1JiZlPD05MHx8ZT49OTcmJmU8PTEyMnx8ZT49NDgmJmU8PTU3fHxlPT09MzZ8fGU9PT05NXx8KHI9PT0xP2U9PT00NXx8ZT09PTU4OiExKXx8ZT4xMjcmJkZFKGUsdCl9ZnVuY3Rpb24gQ2coZSx0LHIpe2xldCBhPWNuKGUsMCk7aWYoIXVuKGEsdCkpcmV0dXJuITE7Zm9yKGxldCBfPVluKGEpO188ZS5sZW5ndGg7Xys9WW4oYSkpaWYoIVFhKGE9Y24oZSxfKSx0LHIpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIG5zKGUsdCxyPTAsYSxfLHAsZCl7dmFyIGg9YSxsLHYseSxDLFMsayxMLEcsSz0wO0FlKGgscCxkKTt2YXIgdWU9e2dldFRva2VuRnVsbFN0YXJ0OigpPT55LGdldFN0YXJ0UG9zOigpPT55LGdldFRva2VuRW5kOigpPT5sLGdldFRleHRQb3M6KCk9PmwsZ2V0VG9rZW46KCk9PlMsZ2V0VG9rZW5TdGFydDooKT0+QyxnZXRUb2tlblBvczooKT0+QyxnZXRUb2tlblRleHQ6KCk9Pmguc3Vic3RyaW5nKEMsbCksZ2V0VG9rZW5WYWx1ZTooKT0+ayxoYXNVbmljb2RlRXNjYXBlOigpPT4oTCYxMDI0KSE9PTAsaGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlOigpPT4oTCY4KSE9PTAsaGFzUHJlY2VkaW5nTGluZUJyZWFrOigpPT4oTCYxKSE9PTAsaGFzUHJlY2VkaW5nSlNEb2NDb21tZW50OigpPT4oTCYyKSE9PTAsaXNJZGVudGlmaWVyOigpPT5TPT09ODB8fFM+MTE4LGlzUmVzZXJ2ZWRXb3JkOigpPT5TPj04MyYmUzw9MTE4LGlzVW50ZXJtaW5hdGVkOigpPT4oTCY0KSE9PTAsZ2V0Q29tbWVudERpcmVjdGl2ZXM6KCk9PkcsZ2V0TnVtZXJpY0xpdGVyYWxGbGFnczooKT0+TCYyNTU4NCxnZXRUb2tlbkZsYWdzOigpPT5MLHJlU2NhbkdyZWF0ZXJUb2tlbjpTdCxyZVNjYW5Bc3Rlcmlza0VxdWFsc1Rva2VuOnhuLHJlU2NhblNsYXNoVG9rZW46VHIscmVTY2FuVGVtcGxhdGVUb2tlbjpVdCxyZVNjYW5UZW1wbGF0ZUhlYWRPck5vU3Vic3RpdHV0aW9uVGVtcGxhdGU6ZnIsc2NhbkpzeElkZW50aWZpZXI6TXIsc2NhbkpzeEF0dHJpYnV0ZVZhbHVlOmF0LHJlU2NhbkpzeEF0dHJpYnV0ZVZhbHVlOmVyLHJlU2NhbkpzeFRva2VuOmh0LHJlU2Nhbkxlc3NUaGFuVG9rZW46d24scmVTY2FuSGFzaFRva2VuOlR0LHJlU2NhblF1ZXN0aW9uVG9rZW46T3IscmVTY2FuSW52YWxpZElkZW50aWZpZXI6c3Isc2NhbkpzeFRva2VuOnB0LHNjYW5Kc0RvY1Rva2VuOnRuLHNjYW5KU0RvY0NvbW1lbnRUZXh0VG9rZW46UXQsc2NhbjpTbixnZXRUZXh0OkRpLGNsZWFyQ29tbWVudERpcmVjdGl2ZXM6cW4sc2V0VGV4dDpBZSxzZXRTY3JpcHRUYXJnZXQ6b2Usc2V0TGFuZ3VhZ2VWYXJpYW50OmdlLHNldE9uRXJyb3I6cSxyZXNldFRva2VuU3RhdGU6U2Usc2V0VGV4dFBvczpTZSxzZXRJbkpTRG9jVHlwZTpudCx0cnlTY2FuOm5uLGxvb2tBaGVhZDpybixzY2FuUmFuZ2U6VW59O3JldHVybiBOLmlzRGVidWdnaW5nJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodWUsXCJfX2RlYnVnU2hvd0N1cnJlbnRQb3NpdGlvbkluVGV4dFwiLHtnZXQ6KCk9PntsZXQgej11ZS5nZXRUZXh0KCk7cmV0dXJuIHouc2xpY2UoMCx1ZS5nZXRUb2tlbkZ1bGxTdGFydCgpKStcIlxcdTI1NTFcIit6LnNsaWNlKHVlLmdldFRva2VuRnVsbFN0YXJ0KCkpfX0pLHVlO2Z1bmN0aW9uIFkoeixYPWwsZWUseGUpe2lmKF8pe2xldCBrZT1sO2w9WCxfKHosZWV8fDAseGUpLGw9a2V9fWZ1bmN0aW9uIEIoKXtsZXQgej1sLFg9ITEsZWU9ITEseGU9XCJcIjtmb3IoOzspe2xldCBrZT1oLmNoYXJDb2RlQXQobCk7aWYoa2U9PT05NSl7THw9NTEyLFg/KFg9ITEsZWU9ITAseGUrPWguc3Vic3RyaW5nKHosbCkpOihMfD0xNjM4NCxZKGVlP1UuTXVsdGlwbGVfY29uc2VjdXRpdmVfbnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfcGVybWl0dGVkOlUuTnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9oZXJlLGwsMSkpLGwrKyx6PWw7Y29udGludWV9aWYoRW8oa2UpKXtYPSEwLGVlPSExLGwrKztjb250aW51ZX1icmVha31yZXR1cm4gaC5jaGFyQ29kZUF0KGwtMSk9PT05NSYmKEx8PTE2Mzg0LFkoVS5OdW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9hbGxvd2VkX2hlcmUsbC0xLDEpKSx4ZStoLnN1YnN0cmluZyh6LGwpfWZ1bmN0aW9uIGFlKCl7bGV0IHo9bCxYO2lmKGguY2hhckNvZGVBdChsKT09PTQ4KWlmKGwrKyxoLmNoYXJDb2RlQXQobCk9PT05NSlMfD0xNjg5NixZKFUuTnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9oZXJlLGwsMSksbC0tLFg9QigpO2Vsc2UgaWYoIVplKCkpTHw9ODE5MixYPVwiXCIrICtrO2Vsc2UgaWYoIWspWD1cIjBcIjtlbHNle2s9XCJcIitwYXJzZUludChrLDgpLEx8PTMyO2xldCBsdD1TPT09NDEseXQ9KGx0P1wiLVwiOlwiXCIpK1wiMG9cIisoK2spLnRvU3RyaW5nKDgpO3JldHVybiBsdCYmei0tLFkoVS5PY3RhbF9saXRlcmFsc19hcmVfbm90X2FsbG93ZWRfVXNlX3RoZV9zeW50YXhfMCx6LGwteix5dCksOX1lbHNlIFg9QigpO2xldCBlZSx4ZTtoLmNoYXJDb2RlQXQobCk9PT00NiYmKGwrKyxlZT1CKCkpO2xldCBrZT1sO2lmKGguY2hhckNvZGVBdChsKT09PTY5fHxoLmNoYXJDb2RlQXQobCk9PT0xMDEpe2wrKyxMfD0xNiwoaC5jaGFyQ29kZUF0KGwpPT09NDN8fGguY2hhckNvZGVBdChsKT09PTQ1KSYmbCsrO2xldCBsdD1sLHl0PUIoKTt5dD8oeGU9aC5zdWJzdHJpbmcoa2UsbHQpK3l0LGtlPWwpOlkoVS5EaWdpdF9leHBlY3RlZCl9bGV0IExlO2lmKEwmNTEyPyhMZT1YLGVlJiYoTGUrPVwiLlwiK2VlKSx4ZSYmKExlKz14ZSkpOkxlPWguc3Vic3RyaW5nKHosa2UpLEwmODE5MilyZXR1cm4gWShVLkRlY2ltYWxzX3dpdGhfbGVhZGluZ196ZXJvc19hcmVfbm90X2FsbG93ZWQseixrZS16KSxrPVwiXCIrICtMZSw5O2lmKGVlIT09dm9pZCAwfHxMJjE2KXJldHVybiBDZSh6LGVlPT09dm9pZCAwJiYhIShMJjE2KSksaz1cIlwiKyArTGUsOTt7az1MZTtsZXQgbHQ9VG4oKTtyZXR1cm4gQ2UoeiksbHR9fWZ1bmN0aW9uIENlKHosWCl7aWYoIXVuKGNuKGgsbCksZSkpcmV0dXJuO2xldCBlZT1sLHtsZW5ndGg6eGV9PUd0KCk7eGU9PT0xJiZoW2VlXT09PVwiblwiP1koWD9VLkFfYmlnaW50X2xpdGVyYWxfY2Fubm90X3VzZV9leHBvbmVudGlhbF9ub3RhdGlvbjpVLkFfYmlnaW50X2xpdGVyYWxfbXVzdF9iZV9hbl9pbnRlZ2VyLHosZWUteisxKTooWShVLkFuX2lkZW50aWZpZXJfb3Jfa2V5d29yZF9jYW5ub3RfaW1tZWRpYXRlbHlfZm9sbG93X2FfbnVtZXJpY19saXRlcmFsLGVlLHhlKSxsPWVlKX1mdW5jdGlvbiBaZSgpe2xldCB6PWwsWD0hMDtmb3IoO0VvKGguY2hhckNvZGVBdChsKSk7KUlmKGguY2hhckNvZGVBdChsKSl8fChYPSExKSxsKys7cmV0dXJuIGs9aC5zdWJzdHJpbmcoeixsKSxYfWZ1bmN0aW9uIHFlKHosWCl7bGV0IGVlPWl0KHosITEsWCk7cmV0dXJuIGVlP3BhcnNlSW50KGVlLDE2KTotMX1mdW5jdGlvbiBydCh6LFgpe3JldHVybiBpdCh6LCEwLFgpfWZ1bmN0aW9uIGl0KHosWCxlZSl7bGV0IHhlPVtdLGtlPSExLExlPSExO2Zvcig7eGUubGVuZ3RoPHp8fFg7KXtsZXQgbHQ9aC5jaGFyQ29kZUF0KGwpO2lmKGVlJiZsdD09PTk1KXtMfD01MTIsa2U/KGtlPSExLExlPSEwKTpZKExlP1UuTXVsdGlwbGVfY29uc2VjdXRpdmVfbnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfcGVybWl0dGVkOlUuTnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9oZXJlLGwsMSksbCsrO2NvbnRpbnVlfWlmKGtlPWVlLGx0Pj02NSYmbHQ8PTcwKWx0Kz05Ny02NTtlbHNlIGlmKCEobHQ+PTQ4JiZsdDw9NTd8fGx0Pj05NyYmbHQ8PTEwMikpYnJlYWs7eGUucHVzaChsdCksbCsrLExlPSExfXJldHVybiB4ZS5sZW5ndGg8eiYmKHhlPVtdKSxoLmNoYXJDb2RlQXQobC0xKT09PTk1JiZZKFUuTnVtZXJpY19zZXBhcmF0b3JzX2FyZV9ub3RfYWxsb3dlZF9oZXJlLGwtMSwxKSxTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLnhlKX1mdW5jdGlvbiBJcih6PSExKXtsZXQgWD1oLmNoYXJDb2RlQXQobCk7bCsrO2xldCBlZT1cIlwiLHhlPWw7Zm9yKDs7KXtpZihsPj12KXtlZSs9aC5zdWJzdHJpbmcoeGUsbCksTHw9NCxZKFUuVW50ZXJtaW5hdGVkX3N0cmluZ19saXRlcmFsKTticmVha31sZXQga2U9aC5jaGFyQ29kZUF0KGwpO2lmKGtlPT09WCl7ZWUrPWguc3Vic3RyaW5nKHhlLGwpLGwrKzticmVha31pZihrZT09PTkyJiYheil7ZWUrPWguc3Vic3RyaW5nKHhlLGwpLGVlKz1jaSghMCkseGU9bDtjb250aW51ZX1pZihtcihrZSkmJiF6KXtlZSs9aC5zdWJzdHJpbmcoeGUsbCksTHw9NCxZKFUuVW50ZXJtaW5hdGVkX3N0cmluZ19saXRlcmFsKTticmVha31sKyt9cmV0dXJuIGVlfWZ1bmN0aW9uIGFyKHope2xldCBYPWguY2hhckNvZGVBdChsKT09PTk2O2wrKztsZXQgZWU9bCx4ZT1cIlwiLGtlO2Zvcig7Oyl7aWYobD49dil7eGUrPWguc3Vic3RyaW5nKGVlLGwpLEx8PTQsWShVLlVudGVybWluYXRlZF90ZW1wbGF0ZV9saXRlcmFsKSxrZT1YPzE1OjE4O2JyZWFrfWxldCBMZT1oLmNoYXJDb2RlQXQobCk7aWYoTGU9PT05Nil7eGUrPWguc3Vic3RyaW5nKGVlLGwpLGwrKyxrZT1YPzE1OjE4O2JyZWFrfWlmKExlPT09MzYmJmwrMTx2JiZoLmNoYXJDb2RlQXQobCsxKT09PTEyMyl7eGUrPWguc3Vic3RyaW5nKGVlLGwpLGwrPTIsa2U9WD8xNjoxNzticmVha31pZihMZT09PTkyKXt4ZSs9aC5zdWJzdHJpbmcoZWUsbCkseGUrPWNpKHopLGVlPWw7Y29udGludWV9aWYoTGU9PT0xMyl7eGUrPWguc3Vic3RyaW5nKGVlLGwpLGwrKyxsPHYmJmguY2hhckNvZGVBdChsKT09PTEwJiZsKysseGUrPWBcbmAsZWU9bDtjb250aW51ZX1sKyt9cmV0dXJuIE4uYXNzZXJ0KGtlIT09dm9pZCAwKSxrPXhlLGtlfWZ1bmN0aW9uIGNpKHope2xldCBYPWw7aWYobCsrLGw+PXYpcmV0dXJuIFkoVS5VbmV4cGVjdGVkX2VuZF9vZl90ZXh0KSxcIlwiO2xldCBlZT1oLmNoYXJDb2RlQXQobCk7c3dpdGNoKGwrKyxlZSl7Y2FzZSA0ODppZihsPj12fHwhRW8oaC5jaGFyQ29kZUF0KGwpKSlyZXR1cm5cIlxcMFwiO2Nhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmw8diYmSWYoaC5jaGFyQ29kZUF0KGwpKSYmbCsrO2Nhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6aWYobDx2JiZJZihoLmNoYXJDb2RlQXQobCkpJiZsKyssTHw9MjA0OCx6KXtsZXQgeGU9cGFyc2VJbnQoaC5zdWJzdHJpbmcoWCsxLGwpLDgpO3JldHVybiBZKFUuT2N0YWxfZXNjYXBlX3NlcXVlbmNlc19hcmVfbm90X2FsbG93ZWRfVXNlX3RoZV9zeW50YXhfMCxYLGwtWCxcIlxcXFx4XCIrcXYoeGUudG9TdHJpbmcoMTYpLDIsXCIwXCIpKSxTdHJpbmcuZnJvbUNoYXJDb2RlKHhlKX1yZXR1cm4gaC5zdWJzdHJpbmcoWCxsKTtjYXNlIDU2OmNhc2UgNTc6cmV0dXJuIEx8PTIwNDgsej8oWShVLkVzY2FwZV9zZXF1ZW5jZV8wX2lzX25vdF9hbGxvd2VkLFgsbC1YLGguc3Vic3RyaW5nKFgsbCkpLFN0cmluZy5mcm9tQ2hhckNvZGUoZWUpKTpoLnN1YnN0cmluZyhYLGwpO2Nhc2UgOTg6cmV0dXJuXCJcXGJcIjtjYXNlIDExNjpyZXR1cm5cIlx0XCI7Y2FzZSAxMTA6cmV0dXJuYFxuYDtjYXNlIDExODpyZXR1cm5cIlxcdlwiO2Nhc2UgMTAyOnJldHVyblwiXFxmXCI7Y2FzZSAxMTQ6cmV0dXJuXCJcXHJcIjtjYXNlIDM5OnJldHVyblwiJ1wiO2Nhc2UgMzQ6cmV0dXJuJ1wiJztjYXNlIDExNzppZihsPHYmJmguY2hhckNvZGVBdChsKT09PTEyMyl7bCsrO2xldCB4ZT1ydCgxLCExKSxrZT14ZT9wYXJzZUludCh4ZSwxNik6LTE7cmV0dXJuIGtlPDA/KEx8PTIwNDgseiYmWShVLkhleGFkZWNpbWFsX2RpZ2l0X2V4cGVjdGVkKSxoLnN1YnN0cmluZyhYLGwpKTpxRShrZSk/bD49dj8oTHw9MjA0OCx6JiZZKFUuVW5leHBlY3RlZF9lbmRfb2ZfdGV4dCksaC5zdWJzdHJpbmcoWCxsKSk6aC5jaGFyQ29kZUF0KGwpIT09MTI1PyhMfD0yMDQ4LHomJlkoVS5VbnRlcm1pbmF0ZWRfVW5pY29kZV9lc2NhcGVfc2VxdWVuY2UpLGguc3Vic3RyaW5nKFgsbCkpOihsKyssTHw9OCxOZihrZSkpOihMfD0yMDQ4LHomJlkoVS5Bbl9leHRlbmRlZF9Vbmljb2RlX2VzY2FwZV92YWx1ZV9tdXN0X2JlX2JldHdlZW5fMHgwX2FuZF8weDEwRkZGRl9pbmNsdXNpdmUpLGguc3Vic3RyaW5nKFgsbCkpfWZvcig7bDxYKzY7bCsrKWlmKCEobDx2JiZqYihoLmNoYXJDb2RlQXQobCkpKSlyZXR1cm4gTHw9MjA0OCx6JiZZKFUuSGV4YWRlY2ltYWxfZGlnaXRfZXhwZWN0ZWQpLGguc3Vic3RyaW5nKFgsbCk7cmV0dXJuIEx8PTEwMjQsU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoLnN1YnN0cmluZyhYKzIsbCksMTYpKTtjYXNlIDEyMDpmb3IoO2w8WCs0O2wrKylpZighKGw8diYmamIoaC5jaGFyQ29kZUF0KGwpKSkpcmV0dXJuIEx8PTIwNDgseiYmWShVLkhleGFkZWNpbWFsX2RpZ2l0X2V4cGVjdGVkKSxoLnN1YnN0cmluZyhYLGwpO3JldHVybiBMfD00MDk2LFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoaC5zdWJzdHJpbmcoWCsyLGwpLDE2KSk7Y2FzZSAxMzpsPHYmJmguY2hhckNvZGVBdChsKT09PTEwJiZsKys7Y2FzZSAxMDpjYXNlIDgyMzI6Y2FzZSA4MjMzOnJldHVyblwiXCI7ZGVmYXVsdDpyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlZSl9fWZ1bmN0aW9uIG9yKCl7bGV0IHo9cnQoMSwhMSksWD16P3BhcnNlSW50KHosMTYpOi0xLGVlPSExO3JldHVybiBYPDA/KFkoVS5IZXhhZGVjaW1hbF9kaWdpdF9leHBlY3RlZCksZWU9ITApOlg+MTExNDExMSYmKFkoVS5Bbl9leHRlbmRlZF9Vbmljb2RlX2VzY2FwZV92YWx1ZV9tdXN0X2JlX2JldHdlZW5fMHgwX2FuZF8weDEwRkZGRl9pbmNsdXNpdmUpLGVlPSEwKSxsPj12PyhZKFUuVW5leHBlY3RlZF9lbmRfb2ZfdGV4dCksZWU9ITApOmguY2hhckNvZGVBdChsKT09PTEyNT9sKys6KFkoVS5VbnRlcm1pbmF0ZWRfVW5pY29kZV9lc2NhcGVfc2VxdWVuY2UpLGVlPSEwKSxlZT9cIlwiOk5mKFgpfWZ1bmN0aW9uIE5yKCl7aWYobCs1PHYmJmguY2hhckNvZGVBdChsKzEpPT09MTE3KXtsZXQgej1sO2wrPTI7bGV0IFg9cWUoNCwhMSk7cmV0dXJuIGw9eixYfXJldHVybi0xfWZ1bmN0aW9uIEdlKCl7aWYoY24oaCxsKzEpPT09MTE3JiZjbihoLGwrMik9PT0xMjMpe2xldCB6PWw7bCs9MztsZXQgWD1ydCgxLCExKSxlZT1YP3BhcnNlSW50KFgsMTYpOi0xO3JldHVybiBsPXosZWV9cmV0dXJuLTF9ZnVuY3Rpb24gR3QoKXtsZXQgej1cIlwiLFg9bDtmb3IoO2w8djspe2xldCBlZT1jbihoLGwpO2lmKFFhKGVlLGUpKWwrPVluKGVlKTtlbHNlIGlmKGVlPT09OTIpe2lmKGVlPUdlKCksZWU+PTAmJlFhKGVlLGUpKXtsKz0zLEx8PTgseis9b3IoKSxYPWw7Y29udGludWV9aWYoZWU9TnIoKSwhKGVlPj0wJiZRYShlZSxlKSkpYnJlYWs7THw9MTAyNCx6Kz1oLnN1YnN0cmluZyhYLGwpLHorPU5mKGVlKSxsKz02LFg9bH1lbHNlIGJyZWFrfXJldHVybiB6Kz1oLnN1YnN0cmluZyhYLGwpLHp9ZnVuY3Rpb24gVXIoKXtsZXQgej1rLmxlbmd0aDtpZih6Pj0yJiZ6PD0xMil7bGV0IFg9ay5jaGFyQ29kZUF0KDApO2lmKFg+PTk3JiZYPD0xMjIpe2xldCBlZT1sNC5nZXQoayk7aWYoZWUhPT12b2lkIDApcmV0dXJuIFM9ZWV9fXJldHVybiBTPTgwfWZ1bmN0aW9uIFh0KHope2xldCBYPVwiXCIsZWU9ITEseGU9ITE7Zm9yKDs7KXtsZXQga2U9aC5jaGFyQ29kZUF0KGwpO2lmKGtlPT09OTUpe0x8PTUxMixlZT8oZWU9ITEseGU9ITApOlkoeGU/VS5NdWx0aXBsZV9jb25zZWN1dGl2ZV9udW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9wZXJtaXR0ZWQ6VS5OdW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9hbGxvd2VkX2hlcmUsbCwxKSxsKys7Y29udGludWV9aWYoZWU9ITAsIUVvKGtlKXx8a2UtNDg+PXopYnJlYWs7WCs9aFtsXSxsKysseGU9ITF9cmV0dXJuIGguY2hhckNvZGVBdChsLTEpPT09OTUmJlkoVS5OdW1lcmljX3NlcGFyYXRvcnNfYXJlX25vdF9hbGxvd2VkX2hlcmUsbC0xLDEpLFh9ZnVuY3Rpb24gVG4oKXtyZXR1cm4gaC5jaGFyQ29kZUF0KGwpPT09MTEwPyhrKz1cIm5cIixMJjM4NCYmKGs9U20oaykrXCJuXCIpLGwrKywxMCk6KGs9XCJcIisoTCYxMjg/cGFyc2VJbnQoay5zbGljZSgyKSwyKTpMJjI1Nj9wYXJzZUludChrLnNsaWNlKDIpLDgpOitrKSw5KX1mdW5jdGlvbiBTbigpe3k9bCxMPTA7bGV0IHo9ITE7Zm9yKDs7KXtpZihDPWwsbD49dilyZXR1cm4gUz0xO2xldCBYPWNuKGgsbCk7aWYobD09PTApe2lmKFg9PT02NTUzMylyZXR1cm4gWShVLkZpbGVfYXBwZWFyc190b19iZV9iaW5hcnkpLGw9dixTPTg7aWYoWD09PTM1JiZ4ZyhoLGwpKXtpZihsPXdnKGgsbCksdCljb250aW51ZTtyZXR1cm4gUz02fX1zd2l0Y2goWCl7Y2FzZSAxMDpjYXNlIDEzOmlmKEx8PTEsdCl7bCsrO2NvbnRpbnVlfWVsc2UgcmV0dXJuIFg9PT0xMyYmbCsxPHYmJmguY2hhckNvZGVBdChsKzEpPT09MTA/bCs9MjpsKyssUz00O2Nhc2UgOTpjYXNlIDExOmNhc2UgMTI6Y2FzZSAzMjpjYXNlIDE2MDpjYXNlIDU3NjA6Y2FzZSA4MTkyOmNhc2UgODE5MzpjYXNlIDgxOTQ6Y2FzZSA4MTk1OmNhc2UgODE5NjpjYXNlIDgxOTc6Y2FzZSA4MTk4OmNhc2UgODE5OTpjYXNlIDgyMDA6Y2FzZSA4MjAxOmNhc2UgODIwMjpjYXNlIDgyMDM6Y2FzZSA4MjM5OmNhc2UgODI4NzpjYXNlIDEyMjg4OmNhc2UgNjUyNzk6aWYodCl7bCsrO2NvbnRpbnVlfWVsc2V7Zm9yKDtsPHYmJklvKGguY2hhckNvZGVBdChsKSk7KWwrKztyZXR1cm4gUz01fWNhc2UgMzM6cmV0dXJuIGguY2hhckNvZGVBdChsKzEpPT09NjE/aC5jaGFyQ29kZUF0KGwrMik9PT02MT8obCs9MyxTPTM4KToobCs9MixTPTM2KToobCsrLFM9NTQpO2Nhc2UgMzQ6Y2FzZSAzOTpyZXR1cm4gaz1JcigpLFM9MTE7Y2FzZSA5NjpyZXR1cm4gUz1hcighMSk7Y2FzZSAzNzpyZXR1cm4gaC5jaGFyQ29kZUF0KGwrMSk9PT02MT8obCs9MixTPTcwKToobCsrLFM9NDUpO2Nhc2UgMzg6cmV0dXJuIGguY2hhckNvZGVBdChsKzEpPT09Mzg/aC5jaGFyQ29kZUF0KGwrMik9PT02MT8obCs9MyxTPTc3KToobCs9MixTPTU2KTpoLmNoYXJDb2RlQXQobCsxKT09PTYxPyhsKz0yLFM9NzQpOihsKyssUz01MSk7Y2FzZSA0MDpyZXR1cm4gbCsrLFM9MjE7Y2FzZSA0MTpyZXR1cm4gbCsrLFM9MjI7Y2FzZSA0MjppZihoLmNoYXJDb2RlQXQobCsxKT09PTYxKXJldHVybiBsKz0yLFM9Njc7aWYoaC5jaGFyQ29kZUF0KGwrMSk9PT00MilyZXR1cm4gaC5jaGFyQ29kZUF0KGwrMik9PT02MT8obCs9MyxTPTY4KToobCs9MixTPTQzKTtpZihsKyssSyYmIXomJkwmMSl7ej0hMDtjb250aW51ZX1yZXR1cm4gUz00MjtjYXNlIDQzOnJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTQzPyhsKz0yLFM9NDYpOmguY2hhckNvZGVBdChsKzEpPT09NjE/KGwrPTIsUz02NSk6KGwrKyxTPTQwKTtjYXNlIDQ0OnJldHVybiBsKyssUz0yODtjYXNlIDQ1OnJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTQ1PyhsKz0yLFM9NDcpOmguY2hhckNvZGVBdChsKzEpPT09NjE/KGwrPTIsUz02Nik6KGwrKyxTPTQxKTtjYXNlIDQ2OnJldHVybiBFbyhoLmNoYXJDb2RlQXQobCsxKSk/KGFlKCksUz05KTpoLmNoYXJDb2RlQXQobCsxKT09PTQ2JiZoLmNoYXJDb2RlQXQobCsyKT09PTQ2PyhsKz0zLFM9MjYpOihsKyssUz0yNSk7Y2FzZSA0NzppZihoLmNoYXJDb2RlQXQobCsxKT09PTQ3KXtmb3IobCs9MjtsPHYmJiFtcihoLmNoYXJDb2RlQXQobCkpOylsKys7aWYoRz12dChHLGguc2xpY2UoQyxsKSx5NCxDKSx0KWNvbnRpbnVlO3JldHVybiBTPTJ9aWYoaC5jaGFyQ29kZUF0KGwrMSk9PT00Mil7bCs9MixoLmNoYXJDb2RlQXQobCk9PT00MiYmaC5jaGFyQ29kZUF0KGwrMSkhPT00NyYmKEx8PTIpO2xldCB5dD0hMSxqdD1DO2Zvcig7bDx2Oyl7bGV0IHFyPWguY2hhckNvZGVBdChsKTtpZihxcj09PTQyJiZoLmNoYXJDb2RlQXQobCsxKT09PTQ3KXtsKz0yLHl0PSEwO2JyZWFrfWwrKyxtcihxcikmJihqdD1sLEx8PTEpfWlmKEc9dnQoRyxoLnNsaWNlKGp0LGwpLGc0LGp0KSx5dHx8WShVLkFzdGVyaXNrX1NsYXNoX2V4cGVjdGVkKSx0KWNvbnRpbnVlO3JldHVybiB5dHx8KEx8PTQpLFM9M31yZXR1cm4gaC5jaGFyQ29kZUF0KGwrMSk9PT02MT8obCs9MixTPTY5KToobCsrLFM9NDQpO2Nhc2UgNDg6aWYobCsyPHYmJihoLmNoYXJDb2RlQXQobCsxKT09PTg4fHxoLmNoYXJDb2RlQXQobCsxKT09PTEyMCkpcmV0dXJuIGwrPTIsaz1ydCgxLCEwKSxrfHwoWShVLkhleGFkZWNpbWFsX2RpZ2l0X2V4cGVjdGVkKSxrPVwiMFwiKSxrPVwiMHhcIitrLEx8PTY0LFM9VG4oKTtpZihsKzI8diYmKGguY2hhckNvZGVBdChsKzEpPT09NjZ8fGguY2hhckNvZGVBdChsKzEpPT09OTgpKXJldHVybiBsKz0yLGs9WHQoMiksa3x8KFkoVS5CaW5hcnlfZGlnaXRfZXhwZWN0ZWQpLGs9XCIwXCIpLGs9XCIwYlwiK2ssTHw9MTI4LFM9VG4oKTtpZihsKzI8diYmKGguY2hhckNvZGVBdChsKzEpPT09Nzl8fGguY2hhckNvZGVBdChsKzEpPT09MTExKSlyZXR1cm4gbCs9MixrPVh0KDgpLGt8fChZKFUuT2N0YWxfZGlnaXRfZXhwZWN0ZWQpLGs9XCIwXCIpLGs9XCIwb1wiK2ssTHw9MjU2LFM9VG4oKTtjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDUyOmNhc2UgNTM6Y2FzZSA1NDpjYXNlIDU1OmNhc2UgNTY6Y2FzZSA1NzpyZXR1cm4gUz1hZSgpO2Nhc2UgNTg6cmV0dXJuIGwrKyxTPTU5O2Nhc2UgNTk6cmV0dXJuIGwrKyxTPTI3O2Nhc2UgNjA6aWYoa28oaCxsKSl7aWYobD0kcyhoLGwsWSksdCljb250aW51ZTtyZXR1cm4gUz03fXJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTYwP2guY2hhckNvZGVBdChsKzIpPT09NjE/KGwrPTMsUz03MSk6KGwrPTIsUz00OCk6aC5jaGFyQ29kZUF0KGwrMSk9PT02MT8obCs9MixTPTMzKTpyPT09MSYmaC5jaGFyQ29kZUF0KGwrMSk9PT00NyYmaC5jaGFyQ29kZUF0KGwrMikhPT00Mj8obCs9MixTPTMxKToobCsrLFM9MzApO2Nhc2UgNjE6aWYoa28oaCxsKSl7aWYobD0kcyhoLGwsWSksdCljb250aW51ZTtyZXR1cm4gUz03fXJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTYxP2guY2hhckNvZGVBdChsKzIpPT09NjE/KGwrPTMsUz0zNyk6KGwrPTIsUz0zNSk6aC5jaGFyQ29kZUF0KGwrMSk9PT02Mj8obCs9MixTPTM5KToobCsrLFM9NjQpO2Nhc2UgNjI6aWYoa28oaCxsKSl7aWYobD0kcyhoLGwsWSksdCljb250aW51ZTtyZXR1cm4gUz03fXJldHVybiBsKyssUz0zMjtjYXNlIDYzOnJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTQ2JiYhRW8oaC5jaGFyQ29kZUF0KGwrMikpPyhsKz0yLFM9MjkpOmguY2hhckNvZGVBdChsKzEpPT09NjM/aC5jaGFyQ29kZUF0KGwrMik9PT02MT8obCs9MyxTPTc4KToobCs9MixTPTYxKToobCsrLFM9NTgpO2Nhc2UgOTE6cmV0dXJuIGwrKyxTPTIzO2Nhc2UgOTM6cmV0dXJuIGwrKyxTPTI0O2Nhc2UgOTQ6cmV0dXJuIGguY2hhckNvZGVBdChsKzEpPT09NjE/KGwrPTIsUz03OSk6KGwrKyxTPTUzKTtjYXNlIDEyMzpyZXR1cm4gbCsrLFM9MTk7Y2FzZSAxMjQ6aWYoa28oaCxsKSl7aWYobD0kcyhoLGwsWSksdCljb250aW51ZTtyZXR1cm4gUz03fXJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTEyND9oLmNoYXJDb2RlQXQobCsyKT09PTYxPyhsKz0zLFM9NzYpOihsKz0yLFM9NTcpOmguY2hhckNvZGVBdChsKzEpPT09NjE/KGwrPTIsUz03NSk6KGwrKyxTPTUyKTtjYXNlIDEyNTpyZXR1cm4gbCsrLFM9MjA7Y2FzZSAxMjY6cmV0dXJuIGwrKyxTPTU1O2Nhc2UgNjQ6cmV0dXJuIGwrKyxTPTYwO2Nhc2UgOTI6bGV0IGVlPUdlKCk7aWYoZWU+PTAmJnVuKGVlLGUpKXJldHVybiBsKz0zLEx8PTgsaz1vcigpK0d0KCksUz1VcigpO2xldCB4ZT1OcigpO3JldHVybiB4ZT49MCYmdW4oeGUsZSk/KGwrPTYsTHw9MTAyNCxrPVN0cmluZy5mcm9tQ2hhckNvZGUoeGUpK0d0KCksUz1VcigpKTooWShVLkludmFsaWRfY2hhcmFjdGVyKSxsKyssUz0wKTtjYXNlIDM1OmlmKGwhPT0wJiZoW2wrMV09PT1cIiFcIilyZXR1cm4gWShVLmNhbl9vbmx5X2JlX3VzZWRfYXRfdGhlX3N0YXJ0X29mX2FfZmlsZSksbCsrLFM9MDtsZXQga2U9Y24oaCxsKzEpO2lmKGtlPT09OTIpe2wrKztsZXQgeXQ9R2UoKTtpZih5dD49MCYmdW4oeXQsZSkpcmV0dXJuIGwrPTMsTHw9OCxrPVwiI1wiK29yKCkrR3QoKSxTPTgxO2xldCBqdD1OcigpO2lmKGp0Pj0wJiZ1bihqdCxlKSlyZXR1cm4gbCs9NixMfD0xMDI0LGs9XCIjXCIrU3RyaW5nLmZyb21DaGFyQ29kZShqdCkrR3QoKSxTPTgxO2wtLX1yZXR1cm4gdW4oa2UsZSk/KGwrKywkdChrZSxlKSk6KGs9XCIjXCIsWShVLkludmFsaWRfY2hhcmFjdGVyLGwrKyxZbihYKSkpLFM9ODE7ZGVmYXVsdDpsZXQgTGU9JHQoWCxlKTtpZihMZSlyZXR1cm4gUz1MZTtpZihJbyhYKSl7bCs9WW4oWCk7Y29udGludWV9ZWxzZSBpZihtcihYKSl7THw9MSxsKz1ZbihYKTtjb250aW51ZX1sZXQgbHQ9WW4oWCk7cmV0dXJuIFkoVS5JbnZhbGlkX2NoYXJhY3RlcixsLGx0KSxsKz1sdCxTPTB9fX1mdW5jdGlvbiBzcigpe04uYXNzZXJ0KFM9PT0wLFwiJ3JlU2NhbkludmFsaWRJZGVudGlmaWVyJyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgY3VycmVudCB0b2tlbiBpcyAnU3ludGF4S2luZC5Vbmtub3duJy5cIiksbD1DPXksTD0wO2xldCB6PWNuKGgsbCksWD0kdCh6LDk5KTtyZXR1cm4gWD9TPVg6KGwrPVluKHopLFMpfWZ1bmN0aW9uICR0KHosWCl7bGV0IGVlPXo7aWYodW4oZWUsWCkpe2ZvcihsKz1ZbihlZSk7bDx2JiZRYShlZT1jbihoLGwpLFgpOylsKz1ZbihlZSk7cmV0dXJuIGs9aC5zdWJzdHJpbmcoQyxsKSxlZT09PTkyJiYoays9R3QoKSksVXIoKX19ZnVuY3Rpb24gU3QoKXtpZihTPT09MzIpe2lmKGguY2hhckNvZGVBdChsKT09PTYyKXJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTYyP2guY2hhckNvZGVBdChsKzIpPT09NjE/KGwrPTMsUz03Myk6KGwrPTIsUz01MCk6aC5jaGFyQ29kZUF0KGwrMSk9PT02MT8obCs9MixTPTcyKToobCsrLFM9NDkpO2lmKGguY2hhckNvZGVBdChsKT09PTYxKXJldHVybiBsKyssUz0zNH1yZXR1cm4gU31mdW5jdGlvbiB4bigpe3JldHVybiBOLmFzc2VydChTPT09NjcsXCIncmVTY2FuQXN0ZXJpc2tFcXVhbHNUb2tlbicgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGEgJyo9J1wiKSxsPUMrMSxTPTY0fWZ1bmN0aW9uIFRyKCl7aWYoUz09PTQ0fHxTPT09Njkpe2xldCB6PUMrMSxYPSExLGVlPSExO2Zvcig7Oyl7aWYoej49dil7THw9NCxZKFUuVW50ZXJtaW5hdGVkX3JlZ3VsYXJfZXhwcmVzc2lvbl9saXRlcmFsKTticmVha31sZXQgeGU9aC5jaGFyQ29kZUF0KHopO2lmKG1yKHhlKSl7THw9NCxZKFUuVW50ZXJtaW5hdGVkX3JlZ3VsYXJfZXhwcmVzc2lvbl9saXRlcmFsKTticmVha31pZihYKVg9ITE7ZWxzZSBpZih4ZT09PTQ3JiYhZWUpe3orKzticmVha31lbHNlIHhlPT09OTE/ZWU9ITA6eGU9PT05Mj9YPSEwOnhlPT09OTMmJihlZT0hMSk7eisrfWZvcig7ejx2JiZRYShoLmNoYXJDb2RlQXQoeiksZSk7KXorKztsPXosaz1oLnN1YnN0cmluZyhDLGwpLFM9MTR9cmV0dXJuIFN9ZnVuY3Rpb24gdnQoeixYLGVlLHhlKXtsZXQga2U9Y3QoZ2woWCksZWUpO3JldHVybiBrZT09PXZvaWQgMD96Onh0KHose3JhbmdlOntwb3M6eGUsZW5kOmx9LHR5cGU6a2V9KX1mdW5jdGlvbiBjdCh6LFgpe2xldCBlZT1YLmV4ZWMoeik7aWYoZWUpc3dpdGNoKGVlWzFdKXtjYXNlXCJ0cy1leHBlY3QtZXJyb3JcIjpyZXR1cm4gMDtjYXNlXCJ0cy1pZ25vcmVcIjpyZXR1cm4gMX19ZnVuY3Rpb24gVXQoeil7cmV0dXJuIGw9QyxTPWFyKCF6KX1mdW5jdGlvbiBmcigpe3JldHVybiBsPUMsUz1hcighMCl9ZnVuY3Rpb24gaHQoej0hMCl7cmV0dXJuIGw9Qz15LFM9cHQoeil9ZnVuY3Rpb24gd24oKXtyZXR1cm4gUz09PTQ4PyhsPUMrMSxTPTMwKTpTfWZ1bmN0aW9uIFR0KCl7cmV0dXJuIFM9PT04MT8obD1DKzEsUz02Myk6U31mdW5jdGlvbiBPcigpe3JldHVybiBOLmFzc2VydChTPT09NjEsXCIncmVTY2FuUXVlc3Rpb25Ub2tlbicgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGEgJz8/J1wiKSxsPUMrMSxTPTU4fWZ1bmN0aW9uIHB0KHo9ITApe2lmKHk9Qz1sLGw+PXYpcmV0dXJuIFM9MTtsZXQgWD1oLmNoYXJDb2RlQXQobCk7aWYoWD09PTYwKXJldHVybiBoLmNoYXJDb2RlQXQobCsxKT09PTQ3PyhsKz0yLFM9MzEpOihsKyssUz0zMCk7aWYoWD09PTEyMylyZXR1cm4gbCsrLFM9MTk7bGV0IGVlPTA7Zm9yKDtsPHYmJihYPWguY2hhckNvZGVBdChsKSxYIT09MTIzKTspe2lmKFg9PT02MCl7aWYoa28oaCxsKSlyZXR1cm4gbD0kcyhoLGwsWSksUz03O2JyZWFrfWlmKFg9PT02MiYmWShVLlVuZXhwZWN0ZWRfdG9rZW5fRGlkX3lvdV9tZWFuX29yX2d0LGwsMSksWD09PTEyNSYmWShVLlVuZXhwZWN0ZWRfdG9rZW5fRGlkX3lvdV9tZWFuX29yX3JicmFjZSxsLDEpLG1yKFgpJiZlZT09PTApZWU9LTE7ZWxzZXtpZigheiYmbXIoWCkmJmVlPjApYnJlYWs7VmkoWCl8fChlZT1sKX1sKyt9cmV0dXJuIGs9aC5zdWJzdHJpbmcoeSxsKSxlZT09PS0xPzEzOjEyfWZ1bmN0aW9uIE1yKCl7aWYoa3QoUykpe2Zvcig7bDx2Oyl7aWYoaC5jaGFyQ29kZUF0KGwpPT09NDUpe2srPVwiLVwiLGwrKztjb250aW51ZX1sZXQgWD1sO2lmKGsrPUd0KCksbD09PVgpYnJlYWt9cmV0dXJuIFVyKCl9cmV0dXJuIFN9ZnVuY3Rpb24gYXQoKXtzd2l0Y2goeT1sLGguY2hhckNvZGVBdChsKSl7Y2FzZSAzNDpjYXNlIDM5OnJldHVybiBrPUlyKCEwKSxTPTExO2RlZmF1bHQ6cmV0dXJuIFNuKCl9fWZ1bmN0aW9uIGVyKCl7cmV0dXJuIGw9Qz15LGF0KCl9ZnVuY3Rpb24gUXQoeil7aWYoeT1DPWwsTD0wLGw+PXYpcmV0dXJuIFM9MTtmb3IobGV0IFg9aC5jaGFyQ29kZUF0KGwpO2w8diYmIW1yKFgpJiZYIT09OTY7WD1jbihoLCsrbCkpaWYoIXope2lmKFg9PT0xMjMpYnJlYWs7aWYoWD09PTY0JiZsLTE+PTAmJklvKGguY2hhckNvZGVBdChsLTEpKSYmIShsKzE8diYmVmkoaC5jaGFyQ29kZUF0KGwrMSkpKSlicmVha31yZXR1cm4gbD09PUM/dG4oKTooaz1oLnN1YnN0cmluZyhDLGwpLFM9ODIpfWZ1bmN0aW9uIHRuKCl7aWYoeT1DPWwsTD0wLGw+PXYpcmV0dXJuIFM9MTtsZXQgej1jbihoLGwpO3N3aXRjaChsKz1Zbih6KSx6KXtjYXNlIDk6Y2FzZSAxMTpjYXNlIDEyOmNhc2UgMzI6Zm9yKDtsPHYmJklvKGguY2hhckNvZGVBdChsKSk7KWwrKztyZXR1cm4gUz01O2Nhc2UgNjQ6cmV0dXJuIFM9NjA7Y2FzZSAxMzpoLmNoYXJDb2RlQXQobCk9PT0xMCYmbCsrO2Nhc2UgMTA6cmV0dXJuIEx8PTEsUz00O2Nhc2UgNDI6cmV0dXJuIFM9NDI7Y2FzZSAxMjM6cmV0dXJuIFM9MTk7Y2FzZSAxMjU6cmV0dXJuIFM9MjA7Y2FzZSA5MTpyZXR1cm4gUz0yMztjYXNlIDkzOnJldHVybiBTPTI0O2Nhc2UgNjA6cmV0dXJuIFM9MzA7Y2FzZSA2MjpyZXR1cm4gUz0zMjtjYXNlIDYxOnJldHVybiBTPTY0O2Nhc2UgNDQ6cmV0dXJuIFM9Mjg7Y2FzZSA0NjpyZXR1cm4gUz0yNTtjYXNlIDk2OnJldHVybiBTPTYyO2Nhc2UgMzU6cmV0dXJuIFM9NjM7Y2FzZSA5MjpsLS07bGV0IFg9R2UoKTtpZihYPj0wJiZ1bihYLGUpKXJldHVybiBsKz0zLEx8PTgsaz1vcigpK0d0KCksUz1VcigpO2xldCBlZT1OcigpO3JldHVybiBlZT49MCYmdW4oZWUsZSk/KGwrPTYsTHw9MTAyNCxrPVN0cmluZy5mcm9tQ2hhckNvZGUoZWUpK0d0KCksUz1VcigpKToobCsrLFM9MCl9aWYodW4oeixlKSl7bGV0IFg9ejtmb3IoO2w8diYmUWEoWD1jbihoLGwpLGUpfHxoLmNoYXJDb2RlQXQobCk9PT00NTspbCs9WW4oWCk7cmV0dXJuIGs9aC5zdWJzdHJpbmcoQyxsKSxYPT09OTImJihrKz1HdCgpKSxTPVVyKCl9ZWxzZSByZXR1cm4gUz0wfWZ1bmN0aW9uIEJuKHosWCl7bGV0IGVlPWwseGU9eSxrZT1DLExlPVMsbHQ9ayx5dD1MLGp0PXooKTtyZXR1cm4oIWp0fHxYKSYmKGw9ZWUseT14ZSxDPWtlLFM9TGUsaz1sdCxMPXl0KSxqdH1mdW5jdGlvbiBVbih6LFgsZWUpe2xldCB4ZT12LGtlPWwsTGU9eSxsdD1DLHl0PVMsanQ9ayxxcj1MLG5hPUc7QWUoaCx6LFgpO2xldCBDbj1lZSgpO3JldHVybiB2PXhlLGw9a2UseT1MZSxDPWx0LFM9eXQsaz1qdCxMPXFyLEc9bmEsQ259ZnVuY3Rpb24gcm4oeil7cmV0dXJuIEJuKHosITApfWZ1bmN0aW9uIG5uKHope3JldHVybiBCbih6LCExKX1mdW5jdGlvbiBEaSgpe3JldHVybiBofWZ1bmN0aW9uIHFuKCl7Rz12b2lkIDB9ZnVuY3Rpb24gQWUoeixYLGVlKXtoPXp8fFwiXCIsdj1lZT09PXZvaWQgMD9oLmxlbmd0aDpYK2VlLFNlKFh8fDApfWZ1bmN0aW9uIHEoeil7Xz16fWZ1bmN0aW9uIG9lKHope2U9en1mdW5jdGlvbiBnZSh6KXtyPXp9ZnVuY3Rpb24gU2Uoeil7Ti5hc3NlcnQoej49MCksbD16LHk9eixDPXosUz0wLGs9dm9pZCAwLEw9MH1mdW5jdGlvbiBudCh6KXtLKz16PzE6LTF9fWZ1bmN0aW9uIFluKGUpe3JldHVybiBlPj02NTUzNj8yOjF9ZnVuY3Rpb24gSEUoZSl7aWYoTi5hc3NlcnQoMDw9ZSYmZTw9MTExNDExMSksZTw9NjU1MzUpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZSk7bGV0IHQ9TWF0aC5mbG9vcigoZS02NTUzNikvMTAyNCkrNTUyOTYscj0oZS02NTUzNiklMTAyNCs1NjMyMDtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0LHIpfWZ1bmN0aW9uIE5mKGUpe3JldHVybiB2NChlKX12YXIgY2wsbDQsaDAsdTQscDQsZjQsZDQsbTQsaDQseTQsZzQsYjQsbGwsR2QsY24sdjQsR0U9VnQoe1wic3JjL2NvbXBpbGVyL3NjYW5uZXIudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksY2w9e2Fic3RyYWN0OjEyOCxhY2Nlc3NvcjoxMjksYW55OjEzMyxhczoxMzAsYXNzZXJ0czoxMzEsYXNzZXJ0OjEzMixiaWdpbnQ6MTYzLGJvb2xlYW46MTM2LGJyZWFrOjgzLGNhc2U6ODQsY2F0Y2g6ODUsY2xhc3M6ODYsY29udGludWU6ODgsY29uc3Q6ODcsY29uc3RydWN0b3I6MTM3LGRlYnVnZ2VyOjg5LGRlY2xhcmU6MTM4LGRlZmF1bHQ6OTAsZGVsZXRlOjkxLGRvOjkyLGVsc2U6OTMsZW51bTo5NCxleHBvcnQ6OTUsZXh0ZW5kczo5NixmYWxzZTo5NyxmaW5hbGx5Ojk4LGZvcjo5OSxmcm9tOjE2MSxmdW5jdGlvbjoxMDAsZ2V0OjEzOSxpZjoxMDEsaW1wbGVtZW50czoxMTksaW1wb3J0OjEwMixpbjoxMDMsaW5mZXI6MTQwLGluc3RhbmNlb2Y6MTA0LGludGVyZmFjZToxMjAsaW50cmluc2ljOjE0MSxpczoxNDIsa2V5b2Y6MTQzLGxldDoxMjEsbW9kdWxlOjE0NCxuYW1lc3BhY2U6MTQ1LG5ldmVyOjE0NixuZXc6MTA1LG51bGw6MTA2LG51bWJlcjoxNTAsb2JqZWN0OjE1MSxwYWNrYWdlOjEyMixwcml2YXRlOjEyMyxwcm90ZWN0ZWQ6MTI0LHB1YmxpYzoxMjUsb3ZlcnJpZGU6MTY0LG91dDoxNDcscmVhZG9ubHk6MTQ4LHJlcXVpcmU6MTQ5LGdsb2JhbDoxNjIscmV0dXJuOjEwNyxzYXRpc2ZpZXM6MTUyLHNldDoxNTMsc3RhdGljOjEyNixzdHJpbmc6MTU0LHN1cGVyOjEwOCxzd2l0Y2g6MTA5LHN5bWJvbDoxNTUsdGhpczoxMTAsdGhyb3c6MTExLHRydWU6MTEyLHRyeToxMTMsdHlwZToxNTYsdHlwZW9mOjExNCx1bmRlZmluZWQ6MTU3LHVuaXF1ZToxNTgsdW5rbm93bjoxNTksdXNpbmc6MTYwLHZhcjoxMTUsdm9pZDoxMTYsd2hpbGU6MTE3LHdpdGg6MTE4LHlpZWxkOjEyNyxhc3luYzoxMzQsYXdhaXQ6MTM1LG9mOjE2NX0sbDQ9bmV3IE1hcChPYmplY3QuZW50cmllcyhjbCkpLGgwPW5ldyBNYXAoT2JqZWN0LmVudHJpZXMoey4uLmNsLFwie1wiOjE5LFwifVwiOjIwLFwiKFwiOjIxLFwiKVwiOjIyLFwiW1wiOjIzLFwiXVwiOjI0LFwiLlwiOjI1LFwiLi4uXCI6MjYsXCI7XCI6MjcsXCIsXCI6MjgsXCI8XCI6MzAsXCI+XCI6MzIsXCI8PVwiOjMzLFwiPj1cIjozNCxcIj09XCI6MzUsXCIhPVwiOjM2LFwiPT09XCI6MzcsXCIhPT1cIjozOCxcIj0+XCI6MzksXCIrXCI6NDAsXCItXCI6NDEsXCIqKlwiOjQzLFwiKlwiOjQyLFwiL1wiOjQ0LFwiJVwiOjQ1LFwiKytcIjo0NixcIi0tXCI6NDcsXCI8PFwiOjQ4LFwiPC9cIjozMSxcIj4+XCI6NDksXCI+Pj5cIjo1MCxcIiZcIjo1MSxcInxcIjo1MixcIl5cIjo1MyxcIiFcIjo1NCxcIn5cIjo1NSxcIiYmXCI6NTYsXCJ8fFwiOjU3LFwiP1wiOjU4LFwiPz9cIjo2MSxcIj8uXCI6MjksXCI6XCI6NTksXCI9XCI6NjQsXCIrPVwiOjY1LFwiLT1cIjo2NixcIio9XCI6NjcsXCIqKj1cIjo2OCxcIi89XCI6NjksXCIlPVwiOjcwLFwiPDw9XCI6NzEsXCI+Pj1cIjo3MixcIj4+Pj1cIjo3MyxcIiY9XCI6NzQsXCJ8PVwiOjc1LFwiXj1cIjo3OSxcInx8PVwiOjc2LFwiJiY9XCI6NzcsXCI/Pz1cIjo3OCxcIkBcIjo2MCxcIiNcIjo2MyxcImBcIjo2Mn0pKSx1ND1bMTcwLDE3MCwxODEsMTgxLDE4NiwxODYsMTkyLDIxNCwyMTYsMjQ2LDI0OCw1NDMsNTQ2LDU2Myw1OTIsNjg1LDY4OCw2OTYsNjk5LDcwNSw3MjAsNzIxLDczNiw3NDAsNzUwLDc1MCw4OTAsODkwLDkwMiw5MDIsOTA0LDkwNiw5MDgsOTA4LDkxMCw5MjksOTMxLDk3NCw5NzYsOTgzLDk4NiwxMDExLDEwMjQsMTE1MywxMTY0LDEyMjAsMTIyMywxMjI0LDEyMjcsMTIyOCwxMjMyLDEyNjksMTI3MiwxMjczLDEzMjksMTM2NiwxMzY5LDEzNjksMTM3NywxNDE1LDE0ODgsMTUxNCwxNTIwLDE1MjIsMTU2OSwxNTk0LDE2MDAsMTYxMCwxNjQ5LDE3NDcsMTc0OSwxNzQ5LDE3NjUsMTc2NiwxNzg2LDE3ODgsMTgwOCwxODA4LDE4MTAsMTgzNiwxOTIwLDE5NTcsMjMwOSwyMzYxLDIzNjUsMjM2NSwyMzg0LDIzODQsMjM5MiwyNDAxLDI0MzcsMjQ0NCwyNDQ3LDI0NDgsMjQ1MSwyNDcyLDI0NzQsMjQ4MCwyNDgyLDI0ODIsMjQ4NiwyNDg5LDI1MjQsMjUyNSwyNTI3LDI1MjksMjU0NCwyNTQ1LDI1NjUsMjU3MCwyNTc1LDI1NzYsMjU3OSwyNjAwLDI2MDIsMjYwOCwyNjEwLDI2MTEsMjYxMywyNjE0LDI2MTYsMjYxNywyNjQ5LDI2NTIsMjY1NCwyNjU0LDI2NzQsMjY3NiwyNjkzLDI2OTksMjcwMSwyNzAxLDI3MDMsMjcwNSwyNzA3LDI3MjgsMjczMCwyNzM2LDI3MzgsMjczOSwyNzQxLDI3NDUsMjc0OSwyNzQ5LDI3NjgsMjc2OCwyNzg0LDI3ODQsMjgyMSwyODI4LDI4MzEsMjgzMiwyODM1LDI4NTYsMjg1OCwyODY0LDI4NjYsMjg2NywyODcwLDI4NzMsMjg3NywyODc3LDI5MDgsMjkwOSwyOTExLDI5MTMsMjk0OSwyOTU0LDI5NTgsMjk2MCwyOTYyLDI5NjUsMjk2OSwyOTcwLDI5NzIsMjk3MiwyOTc0LDI5NzUsMjk3OSwyOTgwLDI5ODQsMjk4NiwyOTkwLDI5OTcsMjk5OSwzMDAxLDMwNzcsMzA4NCwzMDg2LDMwODgsMzA5MCwzMTEyLDMxMTQsMzEyMywzMTI1LDMxMjksMzE2OCwzMTY5LDMyMDUsMzIxMiwzMjE0LDMyMTYsMzIxOCwzMjQwLDMyNDIsMzI1MSwzMjUzLDMyNTcsMzI5NCwzMjk0LDMyOTYsMzI5NywzMzMzLDMzNDAsMzM0MiwzMzQ0LDMzNDYsMzM2OCwzMzcwLDMzODUsMzQyNCwzNDI1LDM0NjEsMzQ3OCwzNDgyLDM1MDUsMzUwNywzNTE1LDM1MTcsMzUxNywzNTIwLDM1MjYsMzU4NSwzNjMyLDM2MzQsMzYzNSwzNjQ4LDM2NTQsMzcxMywzNzE0LDM3MTYsMzcxNiwzNzE5LDM3MjAsMzcyMiwzNzIyLDM3MjUsMzcyNSwzNzMyLDM3MzUsMzczNywzNzQzLDM3NDUsMzc0NywzNzQ5LDM3NDksMzc1MSwzNzUxLDM3NTQsMzc1NSwzNzU3LDM3NjAsMzc2MiwzNzYzLDM3NzMsMzc3MywzNzc2LDM3ODAsMzc4MiwzNzgyLDM4MDQsMzgwNSwzODQwLDM4NDAsMzkwNCwzOTExLDM5MTMsMzk0NiwzOTc2LDM5NzksNDA5Niw0MTI5LDQxMzEsNDEzNSw0MTM3LDQxMzgsNDE3Niw0MTgxLDQyNTYsNDI5Myw0MzA0LDQzNDIsNDM1Miw0NDQxLDQ0NDcsNDUxNCw0NTIwLDQ2MDEsNDYwOCw0NjE0LDQ2MTYsNDY3OCw0NjgwLDQ2ODAsNDY4Miw0Njg1LDQ2ODgsNDY5NCw0Njk2LDQ2OTYsNDY5OCw0NzAxLDQ3MDQsNDc0Miw0NzQ0LDQ3NDQsNDc0Niw0NzQ5LDQ3NTIsNDc4Miw0Nzg0LDQ3ODQsNDc4Niw0Nzg5LDQ3OTIsNDc5OCw0ODAwLDQ4MDAsNDgwMiw0ODA1LDQ4MDgsNDgxNCw0ODE2LDQ4MjIsNDgyNCw0ODQ2LDQ4NDgsNDg3OCw0ODgwLDQ4ODAsNDg4Miw0ODg1LDQ4ODgsNDg5NCw0ODk2LDQ5MzQsNDkzNiw0OTU0LDUwMjQsNTEwOCw1MTIxLDU3NDAsNTc0Myw1NzUwLDU3NjEsNTc4Niw1NzkyLDU4NjYsNjAxNiw2MDY3LDYxNzYsNjI2Myw2MjcyLDYzMTIsNzY4MCw3ODM1LDc4NDAsNzkyOSw3OTM2LDc5NTcsNzk2MCw3OTY1LDc5NjgsODAwNSw4MDA4LDgwMTMsODAxNiw4MDIzLDgwMjUsODAyNSw4MDI3LDgwMjcsODAyOSw4MDI5LDgwMzEsODA2MSw4MDY0LDgxMTYsODExOCw4MTI0LDgxMjYsODEyNiw4MTMwLDgxMzIsODEzNCw4MTQwLDgxNDQsODE0Nyw4MTUwLDgxNTUsODE2MCw4MTcyLDgxNzgsODE4MCw4MTgyLDgxODgsODMxOSw4MzE5LDg0NTAsODQ1MCw4NDU1LDg0NTUsODQ1OCw4NDY3LDg0NjksODQ2OSw4NDczLDg0NzcsODQ4NCw4NDg0LDg0ODYsODQ4Niw4NDg4LDg0ODgsODQ5MCw4NDkzLDg0OTUsODQ5Nyw4NDk5LDg1MDUsODU0NCw4NTc5LDEyMjkzLDEyMjk1LDEyMzIxLDEyMzI5LDEyMzM3LDEyMzQxLDEyMzQ0LDEyMzQ2LDEyMzUzLDEyNDM2LDEyNDQ1LDEyNDQ2LDEyNDQ5LDEyNTM4LDEyNTQwLDEyNTQyLDEyNTQ5LDEyNTg4LDEyNTkzLDEyNjg2LDEyNzA0LDEyNzI3LDEzMzEyLDE5ODkzLDE5OTY4LDQwODY5LDQwOTYwLDQyMTI0LDQ0MDMyLDU1MjAzLDYzNzQ0LDY0MDQ1LDY0MjU2LDY0MjYyLDY0Mjc1LDY0Mjc5LDY0Mjg1LDY0Mjg1LDY0Mjg3LDY0Mjk2LDY0Mjk4LDY0MzEwLDY0MzEyLDY0MzE2LDY0MzE4LDY0MzE4LDY0MzIwLDY0MzIxLDY0MzIzLDY0MzI0LDY0MzI2LDY0NDMzLDY0NDY3LDY0ODI5LDY0ODQ4LDY0OTExLDY0OTE0LDY0OTY3LDY1MDA4LDY1MDE5LDY1MTM2LDY1MTM4LDY1MTQwLDY1MTQwLDY1MTQyLDY1Mjc2LDY1MzEzLDY1MzM4LDY1MzQ1LDY1MzcwLDY1MzgyLDY1NDcwLDY1NDc0LDY1NDc5LDY1NDgyLDY1NDg3LDY1NDkwLDY1NDk1LDY1NDk4LDY1NTAwXSxwND1bMTcwLDE3MCwxODEsMTgxLDE4NiwxODYsMTkyLDIxNCwyMTYsMjQ2LDI0OCw1NDMsNTQ2LDU2Myw1OTIsNjg1LDY4OCw2OTYsNjk5LDcwNSw3MjAsNzIxLDczNiw3NDAsNzUwLDc1MCw3NjgsODQ2LDg2NCw4NjYsODkwLDg5MCw5MDIsOTAyLDkwNCw5MDYsOTA4LDkwOCw5MTAsOTI5LDkzMSw5NzQsOTc2LDk4Myw5ODYsMTAxMSwxMDI0LDExNTMsMTE1NSwxMTU4LDExNjQsMTIyMCwxMjIzLDEyMjQsMTIyNywxMjI4LDEyMzIsMTI2OSwxMjcyLDEyNzMsMTMyOSwxMzY2LDEzNjksMTM2OSwxMzc3LDE0MTUsMTQyNSwxNDQxLDE0NDMsMTQ2NSwxNDY3LDE0NjksMTQ3MSwxNDcxLDE0NzMsMTQ3NCwxNDc2LDE0NzYsMTQ4OCwxNTE0LDE1MjAsMTUyMiwxNTY5LDE1OTQsMTYwMCwxNjIxLDE2MzIsMTY0MSwxNjQ4LDE3NDcsMTc0OSwxNzU2LDE3NTksMTc2OCwxNzcwLDE3NzMsMTc3NiwxNzg4LDE4MDgsMTgzNiwxODQwLDE4NjYsMTkyMCwxOTY4LDIzMDUsMjMwNywyMzA5LDIzNjEsMjM2NCwyMzgxLDIzODQsMjM4OCwyMzkyLDI0MDMsMjQwNiwyNDE1LDI0MzMsMjQzNSwyNDM3LDI0NDQsMjQ0NywyNDQ4LDI0NTEsMjQ3MiwyNDc0LDI0ODAsMjQ4MiwyNDgyLDI0ODYsMjQ4OSwyNDkyLDI0OTIsMjQ5NCwyNTAwLDI1MDMsMjUwNCwyNTA3LDI1MDksMjUxOSwyNTE5LDI1MjQsMjUyNSwyNTI3LDI1MzEsMjUzNCwyNTQ1LDI1NjIsMjU2MiwyNTY1LDI1NzAsMjU3NSwyNTc2LDI1NzksMjYwMCwyNjAyLDI2MDgsMjYxMCwyNjExLDI2MTMsMjYxNCwyNjE2LDI2MTcsMjYyMCwyNjIwLDI2MjIsMjYyNiwyNjMxLDI2MzIsMjYzNSwyNjM3LDI2NDksMjY1MiwyNjU0LDI2NTQsMjY2MiwyNjc2LDI2ODksMjY5MSwyNjkzLDI2OTksMjcwMSwyNzAxLDI3MDMsMjcwNSwyNzA3LDI3MjgsMjczMCwyNzM2LDI3MzgsMjczOSwyNzQxLDI3NDUsMjc0OCwyNzU3LDI3NTksMjc2MSwyNzYzLDI3NjUsMjc2OCwyNzY4LDI3ODQsMjc4NCwyNzkwLDI3OTksMjgxNywyODE5LDI4MjEsMjgyOCwyODMxLDI4MzIsMjgzNSwyODU2LDI4NTgsMjg2NCwyODY2LDI4NjcsMjg3MCwyODczLDI4NzYsMjg4MywyODg3LDI4ODgsMjg5MSwyODkzLDI5MDIsMjkwMywyOTA4LDI5MDksMjkxMSwyOTEzLDI5MTgsMjkyNywyOTQ2LDI5NDcsMjk0OSwyOTU0LDI5NTgsMjk2MCwyOTYyLDI5NjUsMjk2OSwyOTcwLDI5NzIsMjk3MiwyOTc0LDI5NzUsMjk3OSwyOTgwLDI5ODQsMjk4NiwyOTkwLDI5OTcsMjk5OSwzMDAxLDMwMDYsMzAxMCwzMDE0LDMwMTYsMzAxOCwzMDIxLDMwMzEsMzAzMSwzMDQ3LDMwNTUsMzA3MywzMDc1LDMwNzcsMzA4NCwzMDg2LDMwODgsMzA5MCwzMTEyLDMxMTQsMzEyMywzMTI1LDMxMjksMzEzNCwzMTQwLDMxNDIsMzE0NCwzMTQ2LDMxNDksMzE1NywzMTU4LDMxNjgsMzE2OSwzMTc0LDMxODMsMzIwMiwzMjAzLDMyMDUsMzIxMiwzMjE0LDMyMTYsMzIxOCwzMjQwLDMyNDIsMzI1MSwzMjUzLDMyNTcsMzI2MiwzMjY4LDMyNzAsMzI3MiwzMjc0LDMyNzcsMzI4NSwzMjg2LDMyOTQsMzI5NCwzMjk2LDMyOTcsMzMwMiwzMzExLDMzMzAsMzMzMSwzMzMzLDMzNDAsMzM0MiwzMzQ0LDMzNDYsMzM2OCwzMzcwLDMzODUsMzM5MCwzMzk1LDMzOTgsMzQwMCwzNDAyLDM0MDUsMzQxNSwzNDE1LDM0MjQsMzQyNSwzNDMwLDM0MzksMzQ1OCwzNDU5LDM0NjEsMzQ3OCwzNDgyLDM1MDUsMzUwNywzNTE1LDM1MTcsMzUxNywzNTIwLDM1MjYsMzUzMCwzNTMwLDM1MzUsMzU0MCwzNTQyLDM1NDIsMzU0NCwzNTUxLDM1NzAsMzU3MSwzNTg1LDM2NDIsMzY0OCwzNjYyLDM2NjQsMzY3MywzNzEzLDM3MTQsMzcxNiwzNzE2LDM3MTksMzcyMCwzNzIyLDM3MjIsMzcyNSwzNzI1LDM3MzIsMzczNSwzNzM3LDM3NDMsMzc0NSwzNzQ3LDM3NDksMzc0OSwzNzUxLDM3NTEsMzc1NCwzNzU1LDM3NTcsMzc2OSwzNzcxLDM3NzMsMzc3NiwzNzgwLDM3ODIsMzc4MiwzNzg0LDM3ODksMzc5MiwzODAxLDM4MDQsMzgwNSwzODQwLDM4NDAsMzg2NCwzODY1LDM4NzIsMzg4MSwzODkzLDM4OTMsMzg5NSwzODk1LDM4OTcsMzg5NywzOTAyLDM5MTEsMzkxMywzOTQ2LDM5NTMsMzk3MiwzOTc0LDM5NzksMzk4NCwzOTkxLDM5OTMsNDAyOCw0MDM4LDQwMzgsNDA5Niw0MTI5LDQxMzEsNDEzNSw0MTM3LDQxMzgsNDE0MCw0MTQ2LDQxNTAsNDE1Myw0MTYwLDQxNjksNDE3Niw0MTg1LDQyNTYsNDI5Myw0MzA0LDQzNDIsNDM1Miw0NDQxLDQ0NDcsNDUxNCw0NTIwLDQ2MDEsNDYwOCw0NjE0LDQ2MTYsNDY3OCw0NjgwLDQ2ODAsNDY4Miw0Njg1LDQ2ODgsNDY5NCw0Njk2LDQ2OTYsNDY5OCw0NzAxLDQ3MDQsNDc0Miw0NzQ0LDQ3NDQsNDc0Niw0NzQ5LDQ3NTIsNDc4Miw0Nzg0LDQ3ODQsNDc4Niw0Nzg5LDQ3OTIsNDc5OCw0ODAwLDQ4MDAsNDgwMiw0ODA1LDQ4MDgsNDgxNCw0ODE2LDQ4MjIsNDgyNCw0ODQ2LDQ4NDgsNDg3OCw0ODgwLDQ4ODAsNDg4Miw0ODg1LDQ4ODgsNDg5NCw0ODk2LDQ5MzQsNDkzNiw0OTU0LDQ5NjksNDk3Nyw1MDI0LDUxMDgsNTEyMSw1NzQwLDU3NDMsNTc1MCw1NzYxLDU3ODYsNTc5Miw1ODY2LDYwMTYsNjA5OSw2MTEyLDYxMjEsNjE2MCw2MTY5LDYxNzYsNjI2Myw2MjcyLDYzMTMsNzY4MCw3ODM1LDc4NDAsNzkyOSw3OTM2LDc5NTcsNzk2MCw3OTY1LDc5NjgsODAwNSw4MDA4LDgwMTMsODAxNiw4MDIzLDgwMjUsODAyNSw4MDI3LDgwMjcsODAyOSw4MDI5LDgwMzEsODA2MSw4MDY0LDgxMTYsODExOCw4MTI0LDgxMjYsODEyNiw4MTMwLDgxMzIsODEzNCw4MTQwLDgxNDQsODE0Nyw4MTUwLDgxNTUsODE2MCw4MTcyLDgxNzgsODE4MCw4MTgyLDgxODgsODI1NSw4MjU2LDgzMTksODMxOSw4NDAwLDg0MTIsODQxNyw4NDE3LDg0NTAsODQ1MCw4NDU1LDg0NTUsODQ1OCw4NDY3LDg0NjksODQ2OSw4NDczLDg0NzcsODQ4NCw4NDg0LDg0ODYsODQ4Niw4NDg4LDg0ODgsODQ5MCw4NDkzLDg0OTUsODQ5Nyw4NDk5LDg1MDUsODU0NCw4NTc5LDEyMjkzLDEyMjk1LDEyMzIxLDEyMzM1LDEyMzM3LDEyMzQxLDEyMzQ0LDEyMzQ2LDEyMzUzLDEyNDM2LDEyNDQxLDEyNDQyLDEyNDQ1LDEyNDQ2LDEyNDQ5LDEyNTQyLDEyNTQ5LDEyNTg4LDEyNTkzLDEyNjg2LDEyNzA0LDEyNzI3LDEzMzEyLDE5ODkzLDE5OTY4LDQwODY5LDQwOTYwLDQyMTI0LDQ0MDMyLDU1MjAzLDYzNzQ0LDY0MDQ1LDY0MjU2LDY0MjYyLDY0Mjc1LDY0Mjc5LDY0Mjg1LDY0Mjk2LDY0Mjk4LDY0MzEwLDY0MzEyLDY0MzE2LDY0MzE4LDY0MzE4LDY0MzIwLDY0MzIxLDY0MzIzLDY0MzI0LDY0MzI2LDY0NDMzLDY0NDY3LDY0ODI5LDY0ODQ4LDY0OTExLDY0OTE0LDY0OTY3LDY1MDA4LDY1MDE5LDY1MDU2LDY1MDU5LDY1MDc1LDY1MDc2LDY1MTAxLDY1MTAzLDY1MTM2LDY1MTM4LDY1MTQwLDY1MTQwLDY1MTQyLDY1Mjc2LDY1Mjk2LDY1MzA1LDY1MzEzLDY1MzM4LDY1MzQzLDY1MzQzLDY1MzQ1LDY1MzcwLDY1MzgxLDY1NDcwLDY1NDc0LDY1NDc5LDY1NDgyLDY1NDg3LDY1NDkwLDY1NDk1LDY1NDk4LDY1NTAwXSxmND1bMTcwLDE3MCwxODEsMTgxLDE4NiwxODYsMTkyLDIxNCwyMTYsMjQ2LDI0OCw3MDUsNzEwLDcyMSw3MzYsNzQwLDc0OCw3NDgsNzUwLDc1MCw4ODAsODg0LDg4Niw4ODcsODkwLDg5Myw5MDIsOTAyLDkwNCw5MDYsOTA4LDkwOCw5MTAsOTI5LDkzMSwxMDEzLDEwMTUsMTE1MywxMTYyLDEzMTksMTMyOSwxMzY2LDEzNjksMTM2OSwxMzc3LDE0MTUsMTQ4OCwxNTE0LDE1MjAsMTUyMiwxNTY4LDE2MTAsMTY0NiwxNjQ3LDE2NDksMTc0NywxNzQ5LDE3NDksMTc2NSwxNzY2LDE3NzQsMTc3NSwxNzg2LDE3ODgsMTc5MSwxNzkxLDE4MDgsMTgwOCwxODEwLDE4MzksMTg2OSwxOTU3LDE5NjksMTk2OSwxOTk0LDIwMjYsMjAzNiwyMDM3LDIwNDIsMjA0MiwyMDQ4LDIwNjksMjA3NCwyMDc0LDIwODQsMjA4NCwyMDg4LDIwODgsMjExMiwyMTM2LDIyMDgsMjIwOCwyMjEwLDIyMjAsMjMwOCwyMzYxLDIzNjUsMjM2NSwyMzg0LDIzODQsMjM5MiwyNDAxLDI0MTcsMjQyMywyNDI1LDI0MzEsMjQzNywyNDQ0LDI0NDcsMjQ0OCwyNDUxLDI0NzIsMjQ3NCwyNDgwLDI0ODIsMjQ4MiwyNDg2LDI0ODksMjQ5MywyNDkzLDI1MTAsMjUxMCwyNTI0LDI1MjUsMjUyNywyNTI5LDI1NDQsMjU0NSwyNTY1LDI1NzAsMjU3NSwyNTc2LDI1NzksMjYwMCwyNjAyLDI2MDgsMjYxMCwyNjExLDI2MTMsMjYxNCwyNjE2LDI2MTcsMjY0OSwyNjUyLDI2NTQsMjY1NCwyNjc0LDI2NzYsMjY5MywyNzAxLDI3MDMsMjcwNSwyNzA3LDI3MjgsMjczMCwyNzM2LDI3MzgsMjczOSwyNzQxLDI3NDUsMjc0OSwyNzQ5LDI3NjgsMjc2OCwyNzg0LDI3ODUsMjgyMSwyODI4LDI4MzEsMjgzMiwyODM1LDI4NTYsMjg1OCwyODY0LDI4NjYsMjg2NywyODY5LDI4NzMsMjg3NywyODc3LDI5MDgsMjkwOSwyOTExLDI5MTMsMjkyOSwyOTI5LDI5NDcsMjk0NywyOTQ5LDI5NTQsMjk1OCwyOTYwLDI5NjIsMjk2NSwyOTY5LDI5NzAsMjk3MiwyOTcyLDI5NzQsMjk3NSwyOTc5LDI5ODAsMjk4NCwyOTg2LDI5OTAsMzAwMSwzMDI0LDMwMjQsMzA3NywzMDg0LDMwODYsMzA4OCwzMDkwLDMxMTIsMzExNCwzMTIzLDMxMjUsMzEyOSwzMTMzLDMxMzMsMzE2MCwzMTYxLDMxNjgsMzE2OSwzMjA1LDMyMTIsMzIxNCwzMjE2LDMyMTgsMzI0MCwzMjQyLDMyNTEsMzI1MywzMjU3LDMyNjEsMzI2MSwzMjk0LDMyOTQsMzI5NiwzMjk3LDMzMTMsMzMxNCwzMzMzLDMzNDAsMzM0MiwzMzQ0LDMzNDYsMzM4NiwzMzg5LDMzODksMzQwNiwzNDA2LDM0MjQsMzQyNSwzNDUwLDM0NTUsMzQ2MSwzNDc4LDM0ODIsMzUwNSwzNTA3LDM1MTUsMzUxNywzNTE3LDM1MjAsMzUyNiwzNTg1LDM2MzIsMzYzNCwzNjM1LDM2NDgsMzY1NCwzNzEzLDM3MTQsMzcxNiwzNzE2LDM3MTksMzcyMCwzNzIyLDM3MjIsMzcyNSwzNzI1LDM3MzIsMzczNSwzNzM3LDM3NDMsMzc0NSwzNzQ3LDM3NDksMzc0OSwzNzUxLDM3NTEsMzc1NCwzNzU1LDM3NTcsMzc2MCwzNzYyLDM3NjMsMzc3MywzNzczLDM3NzYsMzc4MCwzNzgyLDM3ODIsMzgwNCwzODA3LDM4NDAsMzg0MCwzOTA0LDM5MTEsMzkxMywzOTQ4LDM5NzYsMzk4MCw0MDk2LDQxMzgsNDE1OSw0MTU5LDQxNzYsNDE4MSw0MTg2LDQxODksNDE5Myw0MTkzLDQxOTcsNDE5OCw0MjA2LDQyMDgsNDIxMyw0MjI1LDQyMzgsNDIzOCw0MjU2LDQyOTMsNDI5NSw0Mjk1LDQzMDEsNDMwMSw0MzA0LDQzNDYsNDM0OCw0NjgwLDQ2ODIsNDY4NSw0Njg4LDQ2OTQsNDY5Niw0Njk2LDQ2OTgsNDcwMSw0NzA0LDQ3NDQsNDc0Niw0NzQ5LDQ3NTIsNDc4NCw0Nzg2LDQ3ODksNDc5Miw0Nzk4LDQ4MDAsNDgwMCw0ODAyLDQ4MDUsNDgwOCw0ODIyLDQ4MjQsNDg4MCw0ODgyLDQ4ODUsNDg4OCw0OTU0LDQ5OTIsNTAwNyw1MDI0LDUxMDgsNTEyMSw1NzQwLDU3NDMsNTc1OSw1NzYxLDU3ODYsNTc5Miw1ODY2LDU4NzAsNTg3Miw1ODg4LDU5MDAsNTkwMiw1OTA1LDU5MjAsNTkzNyw1OTUyLDU5NjksNTk4NCw1OTk2LDU5OTgsNmUzLDYwMTYsNjA2Nyw2MTAzLDYxMDMsNjEwOCw2MTA4LDYxNzYsNjI2Myw2MjcyLDYzMTIsNjMxNCw2MzE0LDYzMjAsNjM4OSw2NDAwLDY0MjgsNjQ4MCw2NTA5LDY1MTIsNjUxNiw2NTI4LDY1NzEsNjU5Myw2NTk5LDY2NTYsNjY3OCw2Njg4LDY3NDAsNjgyMyw2ODIzLDY5MTcsNjk2Myw2OTgxLDY5ODcsNzA0Myw3MDcyLDcwODYsNzA4Nyw3MDk4LDcxNDEsNzE2OCw3MjAzLDcyNDUsNzI0Nyw3MjU4LDcyOTMsNzQwMSw3NDA0LDc0MDYsNzQwOSw3NDEzLDc0MTQsNzQyNCw3NjE1LDc2ODAsNzk1Nyw3OTYwLDc5NjUsNzk2OCw4MDA1LDgwMDgsODAxMyw4MDE2LDgwMjMsODAyNSw4MDI1LDgwMjcsODAyNyw4MDI5LDgwMjksODAzMSw4MDYxLDgwNjQsODExNiw4MTE4LDgxMjQsODEyNiw4MTI2LDgxMzAsODEzMiw4MTM0LDgxNDAsODE0NCw4MTQ3LDgxNTAsODE1NSw4MTYwLDgxNzIsODE3OCw4MTgwLDgxODIsODE4OCw4MzA1LDgzMDUsODMxOSw4MzE5LDgzMzYsODM0OCw4NDUwLDg0NTAsODQ1NSw4NDU1LDg0NTgsODQ2Nyw4NDY5LDg0NjksODQ3Myw4NDc3LDg0ODQsODQ4NCw4NDg2LDg0ODYsODQ4OCw4NDg4LDg0OTAsODQ5Myw4NDk1LDg1MDUsODUwOCw4NTExLDg1MTcsODUyMSw4NTI2LDg1MjYsODU0NCw4NTg0LDExMjY0LDExMzEwLDExMzEyLDExMzU4LDExMzYwLDExNDkyLDExNDk5LDExNTAyLDExNTA2LDExNTA3LDExNTIwLDExNTU3LDExNTU5LDExNTU5LDExNTY1LDExNTY1LDExNTY4LDExNjIzLDExNjMxLDExNjMxLDExNjQ4LDExNjcwLDExNjgwLDExNjg2LDExNjg4LDExNjk0LDExNjk2LDExNzAyLDExNzA0LDExNzEwLDExNzEyLDExNzE4LDExNzIwLDExNzI2LDExNzI4LDExNzM0LDExNzM2LDExNzQyLDExODIzLDExODIzLDEyMjkzLDEyMjk1LDEyMzIxLDEyMzI5LDEyMzM3LDEyMzQxLDEyMzQ0LDEyMzQ4LDEyMzUzLDEyNDM4LDEyNDQ1LDEyNDQ3LDEyNDQ5LDEyNTM4LDEyNTQwLDEyNTQzLDEyNTQ5LDEyNTg5LDEyNTkzLDEyNjg2LDEyNzA0LDEyNzMwLDEyNzg0LDEyNzk5LDEzMzEyLDE5ODkzLDE5OTY4LDQwOTA4LDQwOTYwLDQyMTI0LDQyMTkyLDQyMjM3LDQyMjQwLDQyNTA4LDQyNTEyLDQyNTI3LDQyNTM4LDQyNTM5LDQyNTYwLDQyNjA2LDQyNjIzLDQyNjQ3LDQyNjU2LDQyNzM1LDQyNzc1LDQyNzgzLDQyNzg2LDQyODg4LDQyODkxLDQyODk0LDQyODk2LDQyODk5LDQyOTEyLDQyOTIyLDQzZTMsNDMwMDksNDMwMTEsNDMwMTMsNDMwMTUsNDMwMTgsNDMwMjAsNDMwNDIsNDMwNzIsNDMxMjMsNDMxMzgsNDMxODcsNDMyNTAsNDMyNTUsNDMyNTksNDMyNTksNDMyNzQsNDMzMDEsNDMzMTIsNDMzMzQsNDMzNjAsNDMzODgsNDMzOTYsNDM0NDIsNDM0NzEsNDM0NzEsNDM1MjAsNDM1NjAsNDM1ODQsNDM1ODYsNDM1ODgsNDM1OTUsNDM2MTYsNDM2MzgsNDM2NDIsNDM2NDIsNDM2NDgsNDM2OTUsNDM2OTcsNDM2OTcsNDM3MDEsNDM3MDIsNDM3MDUsNDM3MDksNDM3MTIsNDM3MTIsNDM3MTQsNDM3MTQsNDM3MzksNDM3NDEsNDM3NDQsNDM3NTQsNDM3NjIsNDM3NjQsNDM3NzcsNDM3ODIsNDM3ODUsNDM3OTAsNDM3OTMsNDM3OTgsNDM4MDgsNDM4MTQsNDM4MTYsNDM4MjIsNDM5NjgsNDQwMDIsNDQwMzIsNTUyMDMsNTUyMTYsNTUyMzgsNTUyNDMsNTUyOTEsNjM3NDQsNjQxMDksNjQxMTIsNjQyMTcsNjQyNTYsNjQyNjIsNjQyNzUsNjQyNzksNjQyODUsNjQyODUsNjQyODcsNjQyOTYsNjQyOTgsNjQzMTAsNjQzMTIsNjQzMTYsNjQzMTgsNjQzMTgsNjQzMjAsNjQzMjEsNjQzMjMsNjQzMjQsNjQzMjYsNjQ0MzMsNjQ0NjcsNjQ4MjksNjQ4NDgsNjQ5MTEsNjQ5MTQsNjQ5NjcsNjUwMDgsNjUwMTksNjUxMzYsNjUxNDAsNjUxNDIsNjUyNzYsNjUzMTMsNjUzMzgsNjUzNDUsNjUzNzAsNjUzODIsNjU0NzAsNjU0NzQsNjU0NzksNjU0ODIsNjU0ODcsNjU0OTAsNjU0OTUsNjU0OTgsNjU1MDBdLGQ0PVsxNzAsMTcwLDE4MSwxODEsMTg2LDE4NiwxOTIsMjE0LDIxNiwyNDYsMjQ4LDcwNSw3MTAsNzIxLDczNiw3NDAsNzQ4LDc0OCw3NTAsNzUwLDc2OCw4ODQsODg2LDg4Nyw4OTAsODkzLDkwMiw5MDIsOTA0LDkwNiw5MDgsOTA4LDkxMCw5MjksOTMxLDEwMTMsMTAxNSwxMTUzLDExNTUsMTE1OSwxMTYyLDEzMTksMTMyOSwxMzY2LDEzNjksMTM2OSwxMzc3LDE0MTUsMTQyNSwxNDY5LDE0NzEsMTQ3MSwxNDczLDE0NzQsMTQ3NiwxNDc3LDE0NzksMTQ3OSwxNDg4LDE1MTQsMTUyMCwxNTIyLDE1NTIsMTU2MiwxNTY4LDE2NDEsMTY0NiwxNzQ3LDE3NDksMTc1NiwxNzU5LDE3NjgsMTc3MCwxNzg4LDE3OTEsMTc5MSwxODA4LDE4NjYsMTg2OSwxOTY5LDE5ODQsMjAzNywyMDQyLDIwNDIsMjA0OCwyMDkzLDIxMTIsMjEzOSwyMjA4LDIyMDgsMjIxMCwyMjIwLDIyNzYsMjMwMiwyMzA0LDI0MDMsMjQwNiwyNDE1LDI0MTcsMjQyMywyNDI1LDI0MzEsMjQzMywyNDM1LDI0MzcsMjQ0NCwyNDQ3LDI0NDgsMjQ1MSwyNDcyLDI0NzQsMjQ4MCwyNDgyLDI0ODIsMjQ4NiwyNDg5LDI0OTIsMjUwMCwyNTAzLDI1MDQsMjUwNywyNTEwLDI1MTksMjUxOSwyNTI0LDI1MjUsMjUyNywyNTMxLDI1MzQsMjU0NSwyNTYxLDI1NjMsMjU2NSwyNTcwLDI1NzUsMjU3NiwyNTc5LDI2MDAsMjYwMiwyNjA4LDI2MTAsMjYxMSwyNjEzLDI2MTQsMjYxNiwyNjE3LDI2MjAsMjYyMCwyNjIyLDI2MjYsMjYzMSwyNjMyLDI2MzUsMjYzNywyNjQxLDI2NDEsMjY0OSwyNjUyLDI2NTQsMjY1NCwyNjYyLDI2NzcsMjY4OSwyNjkxLDI2OTMsMjcwMSwyNzAzLDI3MDUsMjcwNywyNzI4LDI3MzAsMjczNiwyNzM4LDI3MzksMjc0MSwyNzQ1LDI3NDgsMjc1NywyNzU5LDI3NjEsMjc2MywyNzY1LDI3NjgsMjc2OCwyNzg0LDI3ODcsMjc5MCwyNzk5LDI4MTcsMjgxOSwyODIxLDI4MjgsMjgzMSwyODMyLDI4MzUsMjg1NiwyODU4LDI4NjQsMjg2NiwyODY3LDI4NjksMjg3MywyODc2LDI4ODQsMjg4NywyODg4LDI4OTEsMjg5MywyOTAyLDI5MDMsMjkwOCwyOTA5LDI5MTEsMjkxNSwyOTE4LDI5MjcsMjkyOSwyOTI5LDI5NDYsMjk0NywyOTQ5LDI5NTQsMjk1OCwyOTYwLDI5NjIsMjk2NSwyOTY5LDI5NzAsMjk3MiwyOTcyLDI5NzQsMjk3NSwyOTc5LDI5ODAsMjk4NCwyOTg2LDI5OTAsMzAwMSwzMDA2LDMwMTAsMzAxNCwzMDE2LDMwMTgsMzAyMSwzMDI0LDMwMjQsMzAzMSwzMDMxLDMwNDYsMzA1NSwzMDczLDMwNzUsMzA3NywzMDg0LDMwODYsMzA4OCwzMDkwLDMxMTIsMzExNCwzMTIzLDMxMjUsMzEyOSwzMTMzLDMxNDAsMzE0MiwzMTQ0LDMxNDYsMzE0OSwzMTU3LDMxNTgsMzE2MCwzMTYxLDMxNjgsMzE3MSwzMTc0LDMxODMsMzIwMiwzMjAzLDMyMDUsMzIxMiwzMjE0LDMyMTYsMzIxOCwzMjQwLDMyNDIsMzI1MSwzMjUzLDMyNTcsMzI2MCwzMjY4LDMyNzAsMzI3MiwzMjc0LDMyNzcsMzI4NSwzMjg2LDMyOTQsMzI5NCwzMjk2LDMyOTksMzMwMiwzMzExLDMzMTMsMzMxNCwzMzMwLDMzMzEsMzMzMywzMzQwLDMzNDIsMzM0NCwzMzQ2LDMzODYsMzM4OSwzMzk2LDMzOTgsMzQwMCwzNDAyLDM0MDYsMzQxNSwzNDE1LDM0MjQsMzQyNywzNDMwLDM0MzksMzQ1MCwzNDU1LDM0NTgsMzQ1OSwzNDYxLDM0NzgsMzQ4MiwzNTA1LDM1MDcsMzUxNSwzNTE3LDM1MTcsMzUyMCwzNTI2LDM1MzAsMzUzMCwzNTM1LDM1NDAsMzU0MiwzNTQyLDM1NDQsMzU1MSwzNTcwLDM1NzEsMzU4NSwzNjQyLDM2NDgsMzY2MiwzNjY0LDM2NzMsMzcxMywzNzE0LDM3MTYsMzcxNiwzNzE5LDM3MjAsMzcyMiwzNzIyLDM3MjUsMzcyNSwzNzMyLDM3MzUsMzczNywzNzQzLDM3NDUsMzc0NywzNzQ5LDM3NDksMzc1MSwzNzUxLDM3NTQsMzc1NSwzNzU3LDM3NjksMzc3MSwzNzczLDM3NzYsMzc4MCwzNzgyLDM3ODIsMzc4NCwzNzg5LDM3OTIsMzgwMSwzODA0LDM4MDcsMzg0MCwzODQwLDM4NjQsMzg2NSwzODcyLDM4ODEsMzg5MywzODkzLDM4OTUsMzg5NSwzODk3LDM4OTcsMzkwMiwzOTExLDM5MTMsMzk0OCwzOTUzLDM5NzIsMzk3NCwzOTkxLDM5OTMsNDAyOCw0MDM4LDQwMzgsNDA5Niw0MTY5LDQxNzYsNDI1Myw0MjU2LDQyOTMsNDI5NSw0Mjk1LDQzMDEsNDMwMSw0MzA0LDQzNDYsNDM0OCw0NjgwLDQ2ODIsNDY4NSw0Njg4LDQ2OTQsNDY5Niw0Njk2LDQ2OTgsNDcwMSw0NzA0LDQ3NDQsNDc0Niw0NzQ5LDQ3NTIsNDc4NCw0Nzg2LDQ3ODksNDc5Miw0Nzk4LDQ4MDAsNDgwMCw0ODAyLDQ4MDUsNDgwOCw0ODIyLDQ4MjQsNDg4MCw0ODgyLDQ4ODUsNDg4OCw0OTU0LDQ5NTcsNDk1OSw0OTkyLDUwMDcsNTAyNCw1MTA4LDUxMjEsNTc0MCw1NzQzLDU3NTksNTc2MSw1Nzg2LDU3OTIsNTg2Niw1ODcwLDU4NzIsNTg4OCw1OTAwLDU5MDIsNTkwOCw1OTIwLDU5NDAsNTk1Miw1OTcxLDU5ODQsNTk5Niw1OTk4LDZlMyw2MDAyLDYwMDMsNjAxNiw2MDk5LDYxMDMsNjEwMyw2MTA4LDYxMDksNjExMiw2MTIxLDYxNTUsNjE1Nyw2MTYwLDYxNjksNjE3Niw2MjYzLDYyNzIsNjMxNCw2MzIwLDYzODksNjQwMCw2NDI4LDY0MzIsNjQ0Myw2NDQ4LDY0NTksNjQ3MCw2NTA5LDY1MTIsNjUxNiw2NTI4LDY1NzEsNjU3Niw2NjAxLDY2MDgsNjYxNyw2NjU2LDY2ODMsNjY4OCw2NzUwLDY3NTIsNjc4MCw2NzgzLDY3OTMsNjgwMCw2ODA5LDY4MjMsNjgyMyw2OTEyLDY5ODcsNjk5Miw3MDAxLDcwMTksNzAyNyw3MDQwLDcxNTUsNzE2OCw3MjIzLDcyMzIsNzI0MSw3MjQ1LDcyOTMsNzM3Niw3Mzc4LDczODAsNzQxNCw3NDI0LDc2NTQsNzY3Niw3OTU3LDc5NjAsNzk2NSw3OTY4LDgwMDUsODAwOCw4MDEzLDgwMTYsODAyMyw4MDI1LDgwMjUsODAyNyw4MDI3LDgwMjksODAyOSw4MDMxLDgwNjEsODA2NCw4MTE2LDgxMTgsODEyNCw4MTI2LDgxMjYsODEzMCw4MTMyLDgxMzQsODE0MCw4MTQ0LDgxNDcsODE1MCw4MTU1LDgxNjAsODE3Miw4MTc4LDgxODAsODE4Miw4MTg4LDgyMDQsODIwNSw4MjU1LDgyNTYsODI3Niw4Mjc2LDgzMDUsODMwNSw4MzE5LDgzMTksODMzNiw4MzQ4LDg0MDAsODQxMiw4NDE3LDg0MTcsODQyMSw4NDMyLDg0NTAsODQ1MCw4NDU1LDg0NTUsODQ1OCw4NDY3LDg0NjksODQ2OSw4NDczLDg0NzcsODQ4NCw4NDg0LDg0ODYsODQ4Niw4NDg4LDg0ODgsODQ5MCw4NDkzLDg0OTUsODUwNSw4NTA4LDg1MTEsODUxNyw4NTIxLDg1MjYsODUyNiw4NTQ0LDg1ODQsMTEyNjQsMTEzMTAsMTEzMTIsMTEzNTgsMTEzNjAsMTE0OTIsMTE0OTksMTE1MDcsMTE1MjAsMTE1NTcsMTE1NTksMTE1NTksMTE1NjUsMTE1NjUsMTE1NjgsMTE2MjMsMTE2MzEsMTE2MzEsMTE2NDcsMTE2NzAsMTE2ODAsMTE2ODYsMTE2ODgsMTE2OTQsMTE2OTYsMTE3MDIsMTE3MDQsMTE3MTAsMTE3MTIsMTE3MTgsMTE3MjAsMTE3MjYsMTE3MjgsMTE3MzQsMTE3MzYsMTE3NDIsMTE3NDQsMTE3NzUsMTE4MjMsMTE4MjMsMTIyOTMsMTIyOTUsMTIzMjEsMTIzMzUsMTIzMzcsMTIzNDEsMTIzNDQsMTIzNDgsMTIzNTMsMTI0MzgsMTI0NDEsMTI0NDIsMTI0NDUsMTI0NDcsMTI0NDksMTI1MzgsMTI1NDAsMTI1NDMsMTI1NDksMTI1ODksMTI1OTMsMTI2ODYsMTI3MDQsMTI3MzAsMTI3ODQsMTI3OTksMTMzMTIsMTk4OTMsMTk5NjgsNDA5MDgsNDA5NjAsNDIxMjQsNDIxOTIsNDIyMzcsNDIyNDAsNDI1MDgsNDI1MTIsNDI1MzksNDI1NjAsNDI2MDcsNDI2MTIsNDI2MjEsNDI2MjMsNDI2NDcsNDI2NTUsNDI3MzcsNDI3NzUsNDI3ODMsNDI3ODYsNDI4ODgsNDI4OTEsNDI4OTQsNDI4OTYsNDI4OTksNDI5MTIsNDI5MjIsNDNlMyw0MzA0Nyw0MzA3Miw0MzEyMyw0MzEzNiw0MzIwNCw0MzIxNiw0MzIyNSw0MzIzMiw0MzI1NSw0MzI1OSw0MzI1OSw0MzI2NCw0MzMwOSw0MzMxMiw0MzM0Nyw0MzM2MCw0MzM4OCw0MzM5Miw0MzQ1Niw0MzQ3MSw0MzQ4MSw0MzUyMCw0MzU3NCw0MzU4NCw0MzU5Nyw0MzYwMCw0MzYwOSw0MzYxNiw0MzYzOCw0MzY0Miw0MzY0Myw0MzY0OCw0MzcxNCw0MzczOSw0Mzc0MSw0Mzc0NCw0Mzc1OSw0Mzc2Miw0Mzc2Niw0Mzc3Nyw0Mzc4Miw0Mzc4NSw0Mzc5MCw0Mzc5Myw0Mzc5OCw0MzgwOCw0MzgxNCw0MzgxNiw0MzgyMiw0Mzk2OCw0NDAxMCw0NDAxMiw0NDAxMyw0NDAxNiw0NDAyNSw0NDAzMiw1NTIwMyw1NTIxNiw1NTIzOCw1NTI0Myw1NTI5MSw2Mzc0NCw2NDEwOSw2NDExMiw2NDIxNyw2NDI1Niw2NDI2Miw2NDI3NSw2NDI3OSw2NDI4NSw2NDI5Niw2NDI5OCw2NDMxMCw2NDMxMiw2NDMxNiw2NDMxOCw2NDMxOCw2NDMyMCw2NDMyMSw2NDMyMyw2NDMyNCw2NDMyNiw2NDQzMyw2NDQ2Nyw2NDgyOSw2NDg0OCw2NDkxMSw2NDkxNCw2NDk2Nyw2NTAwOCw2NTAxOSw2NTAyNCw2NTAzOSw2NTA1Niw2NTA2Miw2NTA3NSw2NTA3Niw2NTEwMSw2NTEwMyw2NTEzNiw2NTE0MCw2NTE0Miw2NTI3Niw2NTI5Niw2NTMwNSw2NTMxMyw2NTMzOCw2NTM0Myw2NTM0Myw2NTM0NSw2NTM3MCw2NTM4Miw2NTQ3MCw2NTQ3NCw2NTQ3OSw2NTQ4Miw2NTQ4Nyw2NTQ5MCw2NTQ5NSw2NTQ5OCw2NTUwMF0sbTQ9WzY1LDkwLDk3LDEyMiwxNzAsMTcwLDE4MSwxODEsMTg2LDE4NiwxOTIsMjE0LDIxNiwyNDYsMjQ4LDcwNSw3MTAsNzIxLDczNiw3NDAsNzQ4LDc0OCw3NTAsNzUwLDg4MCw4ODQsODg2LDg4Nyw4OTAsODkzLDg5NSw4OTUsOTAyLDkwMiw5MDQsOTA2LDkwOCw5MDgsOTEwLDkyOSw5MzEsMTAxMywxMDE1LDExNTMsMTE2MiwxMzI3LDEzMjksMTM2NiwxMzY5LDEzNjksMTM3NiwxNDE2LDE0ODgsMTUxNCwxNTE5LDE1MjIsMTU2OCwxNjEwLDE2NDYsMTY0NywxNjQ5LDE3NDcsMTc0OSwxNzQ5LDE3NjUsMTc2NiwxNzc0LDE3NzUsMTc4NiwxNzg4LDE3OTEsMTc5MSwxODA4LDE4MDgsMTgxMCwxODM5LDE4NjksMTk1NywxOTY5LDE5NjksMTk5NCwyMDI2LDIwMzYsMjAzNywyMDQyLDIwNDIsMjA0OCwyMDY5LDIwNzQsMjA3NCwyMDg0LDIwODQsMjA4OCwyMDg4LDIxMTIsMjEzNiwyMTQ0LDIxNTQsMjIwOCwyMjI4LDIyMzAsMjIzNywyMzA4LDIzNjEsMjM2NSwyMzY1LDIzODQsMjM4NCwyMzkyLDI0MDEsMjQxNywyNDMyLDI0MzcsMjQ0NCwyNDQ3LDI0NDgsMjQ1MSwyNDcyLDI0NzQsMjQ4MCwyNDgyLDI0ODIsMjQ4NiwyNDg5LDI0OTMsMjQ5MywyNTEwLDI1MTAsMjUyNCwyNTI1LDI1MjcsMjUyOSwyNTQ0LDI1NDUsMjU1NiwyNTU2LDI1NjUsMjU3MCwyNTc1LDI1NzYsMjU3OSwyNjAwLDI2MDIsMjYwOCwyNjEwLDI2MTEsMjYxMywyNjE0LDI2MTYsMjYxNywyNjQ5LDI2NTIsMjY1NCwyNjU0LDI2NzQsMjY3NiwyNjkzLDI3MDEsMjcwMywyNzA1LDI3MDcsMjcyOCwyNzMwLDI3MzYsMjczOCwyNzM5LDI3NDEsMjc0NSwyNzQ5LDI3NDksMjc2OCwyNzY4LDI3ODQsMjc4NSwyODA5LDI4MDksMjgyMSwyODI4LDI4MzEsMjgzMiwyODM1LDI4NTYsMjg1OCwyODY0LDI4NjYsMjg2NywyODY5LDI4NzMsMjg3NywyODc3LDI5MDgsMjkwOSwyOTExLDI5MTMsMjkyOSwyOTI5LDI5NDcsMjk0NywyOTQ5LDI5NTQsMjk1OCwyOTYwLDI5NjIsMjk2NSwyOTY5LDI5NzAsMjk3MiwyOTcyLDI5NzQsMjk3NSwyOTc5LDI5ODAsMjk4NCwyOTg2LDI5OTAsMzAwMSwzMDI0LDMwMjQsMzA3NywzMDg0LDMwODYsMzA4OCwzMDkwLDMxMTIsMzExNCwzMTI5LDMxMzMsMzEzMywzMTYwLDMxNjIsMzE2OCwzMTY5LDMyMDAsMzIwMCwzMjA1LDMyMTIsMzIxNCwzMjE2LDMyMTgsMzI0MCwzMjQyLDMyNTEsMzI1MywzMjU3LDMyNjEsMzI2MSwzMjk0LDMyOTQsMzI5NiwzMjk3LDMzMTMsMzMxNCwzMzMzLDMzNDAsMzM0MiwzMzQ0LDMzNDYsMzM4NiwzMzg5LDMzODksMzQwNiwzNDA2LDM0MTIsMzQxNCwzNDIzLDM0MjUsMzQ1MCwzNDU1LDM0NjEsMzQ3OCwzNDgyLDM1MDUsMzUwNywzNTE1LDM1MTcsMzUxNywzNTIwLDM1MjYsMzU4NSwzNjMyLDM2MzQsMzYzNSwzNjQ4LDM2NTQsMzcxMywzNzE0LDM3MTYsMzcxNiwzNzE4LDM3MjIsMzcyNCwzNzQ3LDM3NDksMzc0OSwzNzUxLDM3NjAsMzc2MiwzNzYzLDM3NzMsMzc3MywzNzc2LDM3ODAsMzc4MiwzNzgyLDM4MDQsMzgwNywzODQwLDM4NDAsMzkwNCwzOTExLDM5MTMsMzk0OCwzOTc2LDM5ODAsNDA5Niw0MTM4LDQxNTksNDE1OSw0MTc2LDQxODEsNDE4Niw0MTg5LDQxOTMsNDE5Myw0MTk3LDQxOTgsNDIwNiw0MjA4LDQyMTMsNDIyNSw0MjM4LDQyMzgsNDI1Niw0MjkzLDQyOTUsNDI5NSw0MzAxLDQzMDEsNDMwNCw0MzQ2LDQzNDgsNDY4MCw0NjgyLDQ2ODUsNDY4OCw0Njk0LDQ2OTYsNDY5Niw0Njk4LDQ3MDEsNDcwNCw0NzQ0LDQ3NDYsNDc0OSw0NzUyLDQ3ODQsNDc4Niw0Nzg5LDQ3OTIsNDc5OCw0ODAwLDQ4MDAsNDgwMiw0ODA1LDQ4MDgsNDgyMiw0ODI0LDQ4ODAsNDg4Miw0ODg1LDQ4ODgsNDk1NCw0OTkyLDUwMDcsNTAyNCw1MTA5LDUxMTIsNTExNyw1MTIxLDU3NDAsNTc0Myw1NzU5LDU3NjEsNTc4Niw1NzkyLDU4NjYsNTg3MCw1ODgwLDU4ODgsNTkwMCw1OTAyLDU5MDUsNTkyMCw1OTM3LDU5NTIsNTk2OSw1OTg0LDU5OTYsNTk5OCw2ZTMsNjAxNiw2MDY3LDYxMDMsNjEwMyw2MTA4LDYxMDgsNjE3Niw2MjY0LDYyNzIsNjMxMiw2MzE0LDYzMTQsNjMyMCw2Mzg5LDY0MDAsNjQzMCw2NDgwLDY1MDksNjUxMiw2NTE2LDY1MjgsNjU3MSw2NTc2LDY2MDEsNjY1Niw2Njc4LDY2ODgsNjc0MCw2ODIzLDY4MjMsNjkxNyw2OTYzLDY5ODEsNjk4Nyw3MDQzLDcwNzIsNzA4Niw3MDg3LDcwOTgsNzE0MSw3MTY4LDcyMDMsNzI0NSw3MjQ3LDcyNTgsNzI5Myw3Mjk2LDczMDQsNzMxMiw3MzU0LDczNTcsNzM1OSw3NDAxLDc0MDQsNzQwNiw3NDExLDc0MTMsNzQxNCw3NDE4LDc0MTgsNzQyNCw3NjE1LDc2ODAsNzk1Nyw3OTYwLDc5NjUsNzk2OCw4MDA1LDgwMDgsODAxMyw4MDE2LDgwMjMsODAyNSw4MDI1LDgwMjcsODAyNyw4MDI5LDgwMjksODAzMSw4MDYxLDgwNjQsODExNiw4MTE4LDgxMjQsODEyNiw4MTI2LDgxMzAsODEzMiw4MTM0LDgxNDAsODE0NCw4MTQ3LDgxNTAsODE1NSw4MTYwLDgxNzIsODE3OCw4MTgwLDgxODIsODE4OCw4MzA1LDgzMDUsODMxOSw4MzE5LDgzMzYsODM0OCw4NDUwLDg0NTAsODQ1NSw4NDU1LDg0NTgsODQ2Nyw4NDY5LDg0NjksODQ3Miw4NDc3LDg0ODQsODQ4NCw4NDg2LDg0ODYsODQ4OCw4NDg4LDg0OTAsODUwNSw4NTA4LDg1MTEsODUxNyw4NTIxLDg1MjYsODUyNiw4NTQ0LDg1ODQsMTEyNjQsMTEzMTAsMTEzMTIsMTEzNTgsMTEzNjAsMTE0OTIsMTE0OTksMTE1MDIsMTE1MDYsMTE1MDcsMTE1MjAsMTE1NTcsMTE1NTksMTE1NTksMTE1NjUsMTE1NjUsMTE1NjgsMTE2MjMsMTE2MzEsMTE2MzEsMTE2NDgsMTE2NzAsMTE2ODAsMTE2ODYsMTE2ODgsMTE2OTQsMTE2OTYsMTE3MDIsMTE3MDQsMTE3MTAsMTE3MTIsMTE3MTgsMTE3MjAsMTE3MjYsMTE3MjgsMTE3MzQsMTE3MzYsMTE3NDIsMTIyOTMsMTIyOTUsMTIzMjEsMTIzMjksMTIzMzcsMTIzNDEsMTIzNDQsMTIzNDgsMTIzNTMsMTI0MzgsMTI0NDMsMTI0NDcsMTI0NDksMTI1MzgsMTI1NDAsMTI1NDMsMTI1NDksMTI1OTEsMTI1OTMsMTI2ODYsMTI3MDQsMTI3MzAsMTI3ODQsMTI3OTksMTMzMTIsMTk4OTMsMTk5NjgsNDA5NDMsNDA5NjAsNDIxMjQsNDIxOTIsNDIyMzcsNDIyNDAsNDI1MDgsNDI1MTIsNDI1MjcsNDI1MzgsNDI1MzksNDI1NjAsNDI2MDYsNDI2MjMsNDI2NTMsNDI2NTYsNDI3MzUsNDI3NzUsNDI3ODMsNDI3ODYsNDI4ODgsNDI4OTEsNDI5NDMsNDI5NDYsNDI5NTAsNDI5OTksNDMwMDksNDMwMTEsNDMwMTMsNDMwMTUsNDMwMTgsNDMwMjAsNDMwNDIsNDMwNzIsNDMxMjMsNDMxMzgsNDMxODcsNDMyNTAsNDMyNTUsNDMyNTksNDMyNTksNDMyNjEsNDMyNjIsNDMyNzQsNDMzMDEsNDMzMTIsNDMzMzQsNDMzNjAsNDMzODgsNDMzOTYsNDM0NDIsNDM0NzEsNDM0NzEsNDM0ODgsNDM0OTIsNDM0OTQsNDM1MDMsNDM1MTQsNDM1MTgsNDM1MjAsNDM1NjAsNDM1ODQsNDM1ODYsNDM1ODgsNDM1OTUsNDM2MTYsNDM2MzgsNDM2NDIsNDM2NDIsNDM2NDYsNDM2OTUsNDM2OTcsNDM2OTcsNDM3MDEsNDM3MDIsNDM3MDUsNDM3MDksNDM3MTIsNDM3MTIsNDM3MTQsNDM3MTQsNDM3MzksNDM3NDEsNDM3NDQsNDM3NTQsNDM3NjIsNDM3NjQsNDM3NzcsNDM3ODIsNDM3ODUsNDM3OTAsNDM3OTMsNDM3OTgsNDM4MDgsNDM4MTQsNDM4MTYsNDM4MjIsNDM4MjQsNDM4NjYsNDM4NjgsNDM4NzksNDM4ODgsNDQwMDIsNDQwMzIsNTUyMDMsNTUyMTYsNTUyMzgsNTUyNDMsNTUyOTEsNjM3NDQsNjQxMDksNjQxMTIsNjQyMTcsNjQyNTYsNjQyNjIsNjQyNzUsNjQyNzksNjQyODUsNjQyODUsNjQyODcsNjQyOTYsNjQyOTgsNjQzMTAsNjQzMTIsNjQzMTYsNjQzMTgsNjQzMTgsNjQzMjAsNjQzMjEsNjQzMjMsNjQzMjQsNjQzMjYsNjQ0MzMsNjQ0NjcsNjQ4MjksNjQ4NDgsNjQ5MTEsNjQ5MTQsNjQ5NjcsNjUwMDgsNjUwMTksNjUxMzYsNjUxNDAsNjUxNDIsNjUyNzYsNjUzMTMsNjUzMzgsNjUzNDUsNjUzNzAsNjUzODIsNjU0NzAsNjU0NzQsNjU0NzksNjU0ODIsNjU0ODcsNjU0OTAsNjU0OTUsNjU0OTgsNjU1MDAsNjU1MzYsNjU1NDcsNjU1NDksNjU1NzQsNjU1NzYsNjU1OTQsNjU1OTYsNjU1OTcsNjU1OTksNjU2MTMsNjU2MTYsNjU2MjksNjU2NjQsNjU3ODYsNjU4NTYsNjU5MDgsNjYxNzYsNjYyMDQsNjYyMDgsNjYyNTYsNjYzMDQsNjYzMzUsNjYzNDksNjYzNzgsNjYzODQsNjY0MjEsNjY0MzIsNjY0NjEsNjY0NjQsNjY0OTksNjY1MDQsNjY1MTEsNjY1MTMsNjY1MTcsNjY1NjAsNjY3MTcsNjY3MzYsNjY3NzEsNjY3NzYsNjY4MTEsNjY4MTYsNjY4NTUsNjY4NjQsNjY5MTUsNjcwNzIsNjczODIsNjczOTIsNjc0MTMsNjc0MjQsNjc0MzEsNjc1ODQsNjc1ODksNjc1OTIsNjc1OTIsNjc1OTQsNjc2MzcsNjc2MzksNjc2NDAsNjc2NDQsNjc2NDQsNjc2NDcsNjc2NjksNjc2ODAsNjc3MDIsNjc3MTIsNjc3NDIsNjc4MDgsNjc4MjYsNjc4MjgsNjc4MjksNjc4NDAsNjc4NjEsNjc4NzIsNjc4OTcsNjc5NjgsNjgwMjMsNjgwMzAsNjgwMzEsNjgwOTYsNjgwOTYsNjgxMTIsNjgxMTUsNjgxMTcsNjgxMTksNjgxMjEsNjgxNDksNjgxOTIsNjgyMjAsNjgyMjQsNjgyNTIsNjgyODgsNjgyOTUsNjgyOTcsNjgzMjQsNjgzNTIsNjg0MDUsNjg0MTYsNjg0MzcsNjg0NDgsNjg0NjYsNjg0ODAsNjg0OTcsNjg2MDgsNjg2ODAsNjg3MzYsNjg3ODYsNjg4MDAsNjg4NTAsNjg4NjQsNjg4OTksNjkzNzYsNjk0MDQsNjk0MTUsNjk0MTUsNjk0MjQsNjk0NDUsNjk2MDAsNjk2MjIsNjk2MzUsNjk2ODcsNjk3NjMsNjk4MDcsNjk4NDAsNjk4NjQsNjk4OTEsNjk5MjYsNjk5NTYsNjk5NTYsNjk5NjgsNzAwMDIsNzAwMDYsNzAwMDYsNzAwMTksNzAwNjYsNzAwODEsNzAwODQsNzAxMDYsNzAxMDYsNzAxMDgsNzAxMDgsNzAxNDQsNzAxNjEsNzAxNjMsNzAxODcsNzAyNzIsNzAyNzgsNzAyODAsNzAyODAsNzAyODIsNzAyODUsNzAyODcsNzAzMDEsNzAzMDMsNzAzMTIsNzAzMjAsNzAzNjYsNzA0MDUsNzA0MTIsNzA0MTUsNzA0MTYsNzA0MTksNzA0NDAsNzA0NDIsNzA0NDgsNzA0NTAsNzA0NTEsNzA0NTMsNzA0NTcsNzA0NjEsNzA0NjEsNzA0ODAsNzA0ODAsNzA0OTMsNzA0OTcsNzA2NTYsNzA3MDgsNzA3MjcsNzA3MzAsNzA3NTEsNzA3NTEsNzA3ODQsNzA4MzEsNzA4NTIsNzA4NTMsNzA4NTUsNzA4NTUsNzEwNDAsNzEwODYsNzExMjgsNzExMzEsNzExNjgsNzEyMTUsNzEyMzYsNzEyMzYsNzEyOTYsNzEzMzgsNzEzNTIsNzEzNTIsNzE0MjQsNzE0NTAsNzE2ODAsNzE3MjMsNzE4NDAsNzE5MDMsNzE5MzUsNzE5MzUsNzIwOTYsNzIxMDMsNzIxMDYsNzIxNDQsNzIxNjEsNzIxNjEsNzIxNjMsNzIxNjMsNzIxOTIsNzIxOTIsNzIyMDMsNzIyNDIsNzIyNTAsNzIyNTAsNzIyNzIsNzIyNzIsNzIyODQsNzIzMjksNzIzNDksNzIzNDksNzIzODQsNzI0NDAsNzI3MDQsNzI3MTIsNzI3MTQsNzI3NTAsNzI3NjgsNzI3NjgsNzI4MTgsNzI4NDcsNzI5NjAsNzI5NjYsNzI5NjgsNzI5NjksNzI5NzEsNzMwMDgsNzMwMzAsNzMwMzAsNzMwNTYsNzMwNjEsNzMwNjMsNzMwNjQsNzMwNjYsNzMwOTcsNzMxMTIsNzMxMTIsNzM0NDAsNzM0NTgsNzM3MjgsNzQ2NDksNzQ3NTIsNzQ4NjIsNzQ4ODAsNzUwNzUsNzc4MjQsNzg4OTQsODI5NDQsODM1MjYsOTIxNjAsOTI3MjgsOTI3MzYsOTI3NjYsOTI4ODAsOTI5MDksOTI5MjgsOTI5NzUsOTI5OTIsOTI5OTUsOTMwMjcsOTMwNDcsOTMwNTMsOTMwNzEsOTM3NjAsOTM4MjMsOTM5NTIsOTQwMjYsOTQwMzIsOTQwMzIsOTQwOTksOTQxMTEsOTQxNzYsOTQxNzcsOTQxNzksOTQxNzksOTQyMDgsMTAwMzQzLDEwMDM1MiwxMDExMDYsMTEwNTkyLDExMDg3OCwxMTA5MjgsMTEwOTMwLDExMDk0OCwxMTA5NTEsMTEwOTYwLDExMTM1NSwxMTM2NjQsMTEzNzcwLDExMzc3NiwxMTM3ODgsMTEzNzkyLDExMzgwMCwxMTM4MDgsMTEzODE3LDExOTgwOCwxMTk4OTIsMTE5ODk0LDExOTk2NCwxMTk5NjYsMTE5OTY3LDExOTk3MCwxMTk5NzAsMTE5OTczLDExOTk3NCwxMTk5NzcsMTE5OTgwLDExOTk4MiwxMTk5OTMsMTE5OTk1LDExOTk5NSwxMTk5OTcsMTIwMDAzLDEyMDAwNSwxMjAwNjksMTIwMDcxLDEyMDA3NCwxMjAwNzcsMTIwMDg0LDEyMDA4NiwxMjAwOTIsMTIwMDk0LDEyMDEyMSwxMjAxMjMsMTIwMTI2LDEyMDEyOCwxMjAxMzIsMTIwMTM0LDEyMDEzNCwxMjAxMzgsMTIwMTQ0LDEyMDE0NiwxMjA0ODUsMTIwNDg4LDEyMDUxMiwxMjA1MTQsMTIwNTM4LDEyMDU0MCwxMjA1NzAsMTIwNTcyLDEyMDU5NiwxMjA1OTgsMTIwNjI4LDEyMDYzMCwxMjA2NTQsMTIwNjU2LDEyMDY4NiwxMjA2ODgsMTIwNzEyLDEyMDcxNCwxMjA3NDQsMTIwNzQ2LDEyMDc3MCwxMjA3NzIsMTIwNzc5LDEyMzEzNiwxMjMxODAsMTIzMTkxLDEyMzE5NywxMjMyMTQsMTIzMjE0LDEyMzU4NCwxMjM2MjcsMTI0OTI4LDEyNTEyNCwxMjUxODQsMTI1MjUxLDEyNTI1OSwxMjUyNTksMTI2NDY0LDEyNjQ2NywxMjY0NjksMTI2NDk1LDEyNjQ5NywxMjY0OTgsMTI2NTAwLDEyNjUwMCwxMjY1MDMsMTI2NTAzLDEyNjUwNSwxMjY1MTQsMTI2NTE2LDEyNjUxOSwxMjY1MjEsMTI2NTIxLDEyNjUyMywxMjY1MjMsMTI2NTMwLDEyNjUzMCwxMjY1MzUsMTI2NTM1LDEyNjUzNywxMjY1MzcsMTI2NTM5LDEyNjUzOSwxMjY1NDEsMTI2NTQzLDEyNjU0NSwxMjY1NDYsMTI2NTQ4LDEyNjU0OCwxMjY1NTEsMTI2NTUxLDEyNjU1MywxMjY1NTMsMTI2NTU1LDEyNjU1NSwxMjY1NTcsMTI2NTU3LDEyNjU1OSwxMjY1NTksMTI2NTYxLDEyNjU2MiwxMjY1NjQsMTI2NTY0LDEyNjU2NywxMjY1NzAsMTI2NTcyLDEyNjU3OCwxMjY1ODAsMTI2NTgzLDEyNjU4NSwxMjY1ODgsMTI2NTkwLDEyNjU5MCwxMjY1OTIsMTI2NjAxLDEyNjYwMywxMjY2MTksMTI2NjI1LDEyNjYyNywxMjY2MjksMTI2NjMzLDEyNjYzNSwxMjY2NTEsMTMxMDcyLDE3Mzc4MiwxNzM4MjQsMTc3OTcyLDE3Nzk4NCwxNzgyMDUsMTc4MjA4LDE4Mzk2OSwxODM5ODQsMTkxNDU2LDE5NDU2MCwxOTUxMDFdLGg0PVs0OCw1Nyw2NSw5MCw5NSw5NSw5NywxMjIsMTcwLDE3MCwxODEsMTgxLDE4MywxODMsMTg2LDE4NiwxOTIsMjE0LDIxNiwyNDYsMjQ4LDcwNSw3MTAsNzIxLDczNiw3NDAsNzQ4LDc0OCw3NTAsNzUwLDc2OCw4ODQsODg2LDg4Nyw4OTAsODkzLDg5NSw4OTUsOTAyLDkwNiw5MDgsOTA4LDkxMCw5MjksOTMxLDEwMTMsMTAxNSwxMTUzLDExNTUsMTE1OSwxMTYyLDEzMjcsMTMyOSwxMzY2LDEzNjksMTM2OSwxMzc2LDE0MTYsMTQyNSwxNDY5LDE0NzEsMTQ3MSwxNDczLDE0NzQsMTQ3NiwxNDc3LDE0NzksMTQ3OSwxNDg4LDE1MTQsMTUxOSwxNTIyLDE1NTIsMTU2MiwxNTY4LDE2NDEsMTY0NiwxNzQ3LDE3NDksMTc1NiwxNzU5LDE3NjgsMTc3MCwxNzg4LDE3OTEsMTc5MSwxODA4LDE4NjYsMTg2OSwxOTY5LDE5ODQsMjAzNywyMDQyLDIwNDIsMjA0NSwyMDQ1LDIwNDgsMjA5MywyMTEyLDIxMzksMjE0NCwyMTU0LDIyMDgsMjIyOCwyMjMwLDIyMzcsMjI1OSwyMjczLDIyNzUsMjQwMywyNDA2LDI0MTUsMjQxNywyNDM1LDI0MzcsMjQ0NCwyNDQ3LDI0NDgsMjQ1MSwyNDcyLDI0NzQsMjQ4MCwyNDgyLDI0ODIsMjQ4NiwyNDg5LDI0OTIsMjUwMCwyNTAzLDI1MDQsMjUwNywyNTEwLDI1MTksMjUxOSwyNTI0LDI1MjUsMjUyNywyNTMxLDI1MzQsMjU0NSwyNTU2LDI1NTYsMjU1OCwyNTU4LDI1NjEsMjU2MywyNTY1LDI1NzAsMjU3NSwyNTc2LDI1NzksMjYwMCwyNjAyLDI2MDgsMjYxMCwyNjExLDI2MTMsMjYxNCwyNjE2LDI2MTcsMjYyMCwyNjIwLDI2MjIsMjYyNiwyNjMxLDI2MzIsMjYzNSwyNjM3LDI2NDEsMjY0MSwyNjQ5LDI2NTIsMjY1NCwyNjU0LDI2NjIsMjY3NywyNjg5LDI2OTEsMjY5MywyNzAxLDI3MDMsMjcwNSwyNzA3LDI3MjgsMjczMCwyNzM2LDI3MzgsMjczOSwyNzQxLDI3NDUsMjc0OCwyNzU3LDI3NTksMjc2MSwyNzYzLDI3NjUsMjc2OCwyNzY4LDI3ODQsMjc4NywyNzkwLDI3OTksMjgwOSwyODE1LDI4MTcsMjgxOSwyODIxLDI4MjgsMjgzMSwyODMyLDI4MzUsMjg1NiwyODU4LDI4NjQsMjg2NiwyODY3LDI4NjksMjg3MywyODc2LDI4ODQsMjg4NywyODg4LDI4OTEsMjg5MywyOTAyLDI5MDMsMjkwOCwyOTA5LDI5MTEsMjkxNSwyOTE4LDI5MjcsMjkyOSwyOTI5LDI5NDYsMjk0NywyOTQ5LDI5NTQsMjk1OCwyOTYwLDI5NjIsMjk2NSwyOTY5LDI5NzAsMjk3MiwyOTcyLDI5NzQsMjk3NSwyOTc5LDI5ODAsMjk4NCwyOTg2LDI5OTAsMzAwMSwzMDA2LDMwMTAsMzAxNCwzMDE2LDMwMTgsMzAyMSwzMDI0LDMwMjQsMzAzMSwzMDMxLDMwNDYsMzA1NSwzMDcyLDMwODQsMzA4NiwzMDg4LDMwOTAsMzExMiwzMTE0LDMxMjksMzEzMywzMTQwLDMxNDIsMzE0NCwzMTQ2LDMxNDksMzE1NywzMTU4LDMxNjAsMzE2MiwzMTY4LDMxNzEsMzE3NCwzMTgzLDMyMDAsMzIwMywzMjA1LDMyMTIsMzIxNCwzMjE2LDMyMTgsMzI0MCwzMjQyLDMyNTEsMzI1MywzMjU3LDMyNjAsMzI2OCwzMjcwLDMyNzIsMzI3NCwzMjc3LDMyODUsMzI4NiwzMjk0LDMyOTQsMzI5NiwzMjk5LDMzMDIsMzMxMSwzMzEzLDMzMTQsMzMyOCwzMzMxLDMzMzMsMzM0MCwzMzQyLDMzNDQsMzM0NiwzMzk2LDMzOTgsMzQwMCwzNDAyLDM0MDYsMzQxMiwzNDE1LDM0MjMsMzQyNywzNDMwLDM0MzksMzQ1MCwzNDU1LDM0NTgsMzQ1OSwzNDYxLDM0NzgsMzQ4MiwzNTA1LDM1MDcsMzUxNSwzNTE3LDM1MTcsMzUyMCwzNTI2LDM1MzAsMzUzMCwzNTM1LDM1NDAsMzU0MiwzNTQyLDM1NDQsMzU1MSwzNTU4LDM1NjcsMzU3MCwzNTcxLDM1ODUsMzY0MiwzNjQ4LDM2NjIsMzY2NCwzNjczLDM3MTMsMzcxNCwzNzE2LDM3MTYsMzcxOCwzNzIyLDM3MjQsMzc0NywzNzQ5LDM3NDksMzc1MSwzNzczLDM3NzYsMzc4MCwzNzgyLDM3ODIsMzc4NCwzNzg5LDM3OTIsMzgwMSwzODA0LDM4MDcsMzg0MCwzODQwLDM4NjQsMzg2NSwzODcyLDM4ODEsMzg5MywzODkzLDM4OTUsMzg5NSwzODk3LDM4OTcsMzkwMiwzOTExLDM5MTMsMzk0OCwzOTUzLDM5NzIsMzk3NCwzOTkxLDM5OTMsNDAyOCw0MDM4LDQwMzgsNDA5Niw0MTY5LDQxNzYsNDI1Myw0MjU2LDQyOTMsNDI5NSw0Mjk1LDQzMDEsNDMwMSw0MzA0LDQzNDYsNDM0OCw0NjgwLDQ2ODIsNDY4NSw0Njg4LDQ2OTQsNDY5Niw0Njk2LDQ2OTgsNDcwMSw0NzA0LDQ3NDQsNDc0Niw0NzQ5LDQ3NTIsNDc4NCw0Nzg2LDQ3ODksNDc5Miw0Nzk4LDQ4MDAsNDgwMCw0ODAyLDQ4MDUsNDgwOCw0ODIyLDQ4MjQsNDg4MCw0ODgyLDQ4ODUsNDg4OCw0OTU0LDQ5NTcsNDk1OSw0OTY5LDQ5NzcsNDk5Miw1MDA3LDUwMjQsNTEwOSw1MTEyLDUxMTcsNTEyMSw1NzQwLDU3NDMsNTc1OSw1NzYxLDU3ODYsNTc5Miw1ODY2LDU4NzAsNTg4MCw1ODg4LDU5MDAsNTkwMiw1OTA4LDU5MjAsNTk0MCw1OTUyLDU5NzEsNTk4NCw1OTk2LDU5OTgsNmUzLDYwMDIsNjAwMyw2MDE2LDYwOTksNjEwMyw2MTAzLDYxMDgsNjEwOSw2MTEyLDYxMjEsNjE1NSw2MTU3LDYxNjAsNjE2OSw2MTc2LDYyNjQsNjI3Miw2MzE0LDYzMjAsNjM4OSw2NDAwLDY0MzAsNjQzMiw2NDQzLDY0NDgsNjQ1OSw2NDcwLDY1MDksNjUxMiw2NTE2LDY1MjgsNjU3MSw2NTc2LDY2MDEsNjYwOCw2NjE4LDY2NTYsNjY4Myw2Njg4LDY3NTAsNjc1Miw2NzgwLDY3ODMsNjc5Myw2ODAwLDY4MDksNjgyMyw2ODIzLDY4MzIsNjg0NSw2OTEyLDY5ODcsNjk5Miw3MDAxLDcwMTksNzAyNyw3MDQwLDcxNTUsNzE2OCw3MjIzLDcyMzIsNzI0MSw3MjQ1LDcyOTMsNzI5Niw3MzA0LDczMTIsNzM1NCw3MzU3LDczNTksNzM3Niw3Mzc4LDczODAsNzQxOCw3NDI0LDc2NzMsNzY3NSw3OTU3LDc5NjAsNzk2NSw3OTY4LDgwMDUsODAwOCw4MDEzLDgwMTYsODAyMyw4MDI1LDgwMjUsODAyNyw4MDI3LDgwMjksODAyOSw4MDMxLDgwNjEsODA2NCw4MTE2LDgxMTgsODEyNCw4MTI2LDgxMjYsODEzMCw4MTMyLDgxMzQsODE0MCw4MTQ0LDgxNDcsODE1MCw4MTU1LDgxNjAsODE3Miw4MTc4LDgxODAsODE4Miw4MTg4LDgyNTUsODI1Niw4Mjc2LDgyNzYsODMwNSw4MzA1LDgzMTksODMxOSw4MzM2LDgzNDgsODQwMCw4NDEyLDg0MTcsODQxNyw4NDIxLDg0MzIsODQ1MCw4NDUwLDg0NTUsODQ1NSw4NDU4LDg0NjcsODQ2OSw4NDY5LDg0NzIsODQ3Nyw4NDg0LDg0ODQsODQ4Niw4NDg2LDg0ODgsODQ4OCw4NDkwLDg1MDUsODUwOCw4NTExLDg1MTcsODUyMSw4NTI2LDg1MjYsODU0NCw4NTg0LDExMjY0LDExMzEwLDExMzEyLDExMzU4LDExMzYwLDExNDkyLDExNDk5LDExNTA3LDExNTIwLDExNTU3LDExNTU5LDExNTU5LDExNTY1LDExNTY1LDExNTY4LDExNjIzLDExNjMxLDExNjMxLDExNjQ3LDExNjcwLDExNjgwLDExNjg2LDExNjg4LDExNjk0LDExNjk2LDExNzAyLDExNzA0LDExNzEwLDExNzEyLDExNzE4LDExNzIwLDExNzI2LDExNzI4LDExNzM0LDExNzM2LDExNzQyLDExNzQ0LDExNzc1LDEyMjkzLDEyMjk1LDEyMzIxLDEyMzM1LDEyMzM3LDEyMzQxLDEyMzQ0LDEyMzQ4LDEyMzUzLDEyNDM4LDEyNDQxLDEyNDQ3LDEyNDQ5LDEyNTM4LDEyNTQwLDEyNTQzLDEyNTQ5LDEyNTkxLDEyNTkzLDEyNjg2LDEyNzA0LDEyNzMwLDEyNzg0LDEyNzk5LDEzMzEyLDE5ODkzLDE5OTY4LDQwOTQzLDQwOTYwLDQyMTI0LDQyMTkyLDQyMjM3LDQyMjQwLDQyNTA4LDQyNTEyLDQyNTM5LDQyNTYwLDQyNjA3LDQyNjEyLDQyNjIxLDQyNjIzLDQyNzM3LDQyNzc1LDQyNzgzLDQyNzg2LDQyODg4LDQyODkxLDQyOTQzLDQyOTQ2LDQyOTUwLDQyOTk5LDQzMDQ3LDQzMDcyLDQzMTIzLDQzMTM2LDQzMjA1LDQzMjE2LDQzMjI1LDQzMjMyLDQzMjU1LDQzMjU5LDQzMjU5LDQzMjYxLDQzMzA5LDQzMzEyLDQzMzQ3LDQzMzYwLDQzMzg4LDQzMzkyLDQzNDU2LDQzNDcxLDQzNDgxLDQzNDg4LDQzNTE4LDQzNTIwLDQzNTc0LDQzNTg0LDQzNTk3LDQzNjAwLDQzNjA5LDQzNjE2LDQzNjM4LDQzNjQyLDQzNzE0LDQzNzM5LDQzNzQxLDQzNzQ0LDQzNzU5LDQzNzYyLDQzNzY2LDQzNzc3LDQzNzgyLDQzNzg1LDQzNzkwLDQzNzkzLDQzNzk4LDQzODA4LDQzODE0LDQzODE2LDQzODIyLDQzODI0LDQzODY2LDQzODY4LDQzODc5LDQzODg4LDQ0MDEwLDQ0MDEyLDQ0MDEzLDQ0MDE2LDQ0MDI1LDQ0MDMyLDU1MjAzLDU1MjE2LDU1MjM4LDU1MjQzLDU1MjkxLDYzNzQ0LDY0MTA5LDY0MTEyLDY0MjE3LDY0MjU2LDY0MjYyLDY0Mjc1LDY0Mjc5LDY0Mjg1LDY0Mjk2LDY0Mjk4LDY0MzEwLDY0MzEyLDY0MzE2LDY0MzE4LDY0MzE4LDY0MzIwLDY0MzIxLDY0MzIzLDY0MzI0LDY0MzI2LDY0NDMzLDY0NDY3LDY0ODI5LDY0ODQ4LDY0OTExLDY0OTE0LDY0OTY3LDY1MDA4LDY1MDE5LDY1MDI0LDY1MDM5LDY1MDU2LDY1MDcxLDY1MDc1LDY1MDc2LDY1MTAxLDY1MTAzLDY1MTM2LDY1MTQwLDY1MTQyLDY1Mjc2LDY1Mjk2LDY1MzA1LDY1MzEzLDY1MzM4LDY1MzQzLDY1MzQzLDY1MzQ1LDY1MzcwLDY1MzgyLDY1NDcwLDY1NDc0LDY1NDc5LDY1NDgyLDY1NDg3LDY1NDkwLDY1NDk1LDY1NDk4LDY1NTAwLDY1NTM2LDY1NTQ3LDY1NTQ5LDY1NTc0LDY1NTc2LDY1NTk0LDY1NTk2LDY1NTk3LDY1NTk5LDY1NjEzLDY1NjE2LDY1NjI5LDY1NjY0LDY1Nzg2LDY1ODU2LDY1OTA4LDY2MDQ1LDY2MDQ1LDY2MTc2LDY2MjA0LDY2MjA4LDY2MjU2LDY2MjcyLDY2MjcyLDY2MzA0LDY2MzM1LDY2MzQ5LDY2Mzc4LDY2Mzg0LDY2NDI2LDY2NDMyLDY2NDYxLDY2NDY0LDY2NDk5LDY2NTA0LDY2NTExLDY2NTEzLDY2NTE3LDY2NTYwLDY2NzE3LDY2NzIwLDY2NzI5LDY2NzM2LDY2NzcxLDY2Nzc2LDY2ODExLDY2ODE2LDY2ODU1LDY2ODY0LDY2OTE1LDY3MDcyLDY3MzgyLDY3MzkyLDY3NDEzLDY3NDI0LDY3NDMxLDY3NTg0LDY3NTg5LDY3NTkyLDY3NTkyLDY3NTk0LDY3NjM3LDY3NjM5LDY3NjQwLDY3NjQ0LDY3NjQ0LDY3NjQ3LDY3NjY5LDY3NjgwLDY3NzAyLDY3NzEyLDY3NzQyLDY3ODA4LDY3ODI2LDY3ODI4LDY3ODI5LDY3ODQwLDY3ODYxLDY3ODcyLDY3ODk3LDY3OTY4LDY4MDIzLDY4MDMwLDY4MDMxLDY4MDk2LDY4MDk5LDY4MTAxLDY4MTAyLDY4MTA4LDY4MTE1LDY4MTE3LDY4MTE5LDY4MTIxLDY4MTQ5LDY4MTUyLDY4MTU0LDY4MTU5LDY4MTU5LDY4MTkyLDY4MjIwLDY4MjI0LDY4MjUyLDY4Mjg4LDY4Mjk1LDY4Mjk3LDY4MzI2LDY4MzUyLDY4NDA1LDY4NDE2LDY4NDM3LDY4NDQ4LDY4NDY2LDY4NDgwLDY4NDk3LDY4NjA4LDY4NjgwLDY4NzM2LDY4Nzg2LDY4ODAwLDY4ODUwLDY4ODY0LDY4OTAzLDY4OTEyLDY4OTIxLDY5Mzc2LDY5NDA0LDY5NDE1LDY5NDE1LDY5NDI0LDY5NDU2LDY5NjAwLDY5NjIyLDY5NjMyLDY5NzAyLDY5NzM0LDY5NzQzLDY5NzU5LDY5ODE4LDY5ODQwLDY5ODY0LDY5ODcyLDY5ODgxLDY5ODg4LDY5OTQwLDY5OTQyLDY5OTUxLDY5OTU2LDY5OTU4LDY5OTY4LDcwMDAzLDcwMDA2LDcwMDA2LDcwMDE2LDcwMDg0LDcwMDg5LDcwMDkyLDcwMDk2LDcwMTA2LDcwMTA4LDcwMTA4LDcwMTQ0LDcwMTYxLDcwMTYzLDcwMTk5LDcwMjA2LDcwMjA2LDcwMjcyLDcwMjc4LDcwMjgwLDcwMjgwLDcwMjgyLDcwMjg1LDcwMjg3LDcwMzAxLDcwMzAzLDcwMzEyLDcwMzIwLDcwMzc4LDcwMzg0LDcwMzkzLDcwNDAwLDcwNDAzLDcwNDA1LDcwNDEyLDcwNDE1LDcwNDE2LDcwNDE5LDcwNDQwLDcwNDQyLDcwNDQ4LDcwNDUwLDcwNDUxLDcwNDUzLDcwNDU3LDcwNDU5LDcwNDY4LDcwNDcxLDcwNDcyLDcwNDc1LDcwNDc3LDcwNDgwLDcwNDgwLDcwNDg3LDcwNDg3LDcwNDkzLDcwNDk5LDcwNTAyLDcwNTA4LDcwNTEyLDcwNTE2LDcwNjU2LDcwNzMwLDcwNzM2LDcwNzQ1LDcwNzUwLDcwNzUxLDcwNzg0LDcwODUzLDcwODU1LDcwODU1LDcwODY0LDcwODczLDcxMDQwLDcxMDkzLDcxMDk2LDcxMTA0LDcxMTI4LDcxMTMzLDcxMTY4LDcxMjMyLDcxMjM2LDcxMjM2LDcxMjQ4LDcxMjU3LDcxMjk2LDcxMzUyLDcxMzYwLDcxMzY5LDcxNDI0LDcxNDUwLDcxNDUzLDcxNDY3LDcxNDcyLDcxNDgxLDcxNjgwLDcxNzM4LDcxODQwLDcxOTEzLDcxOTM1LDcxOTM1LDcyMDk2LDcyMTAzLDcyMTA2LDcyMTUxLDcyMTU0LDcyMTYxLDcyMTYzLDcyMTY0LDcyMTkyLDcyMjU0LDcyMjYzLDcyMjYzLDcyMjcyLDcyMzQ1LDcyMzQ5LDcyMzQ5LDcyMzg0LDcyNDQwLDcyNzA0LDcyNzEyLDcyNzE0LDcyNzU4LDcyNzYwLDcyNzY4LDcyNzg0LDcyNzkzLDcyODE4LDcyODQ3LDcyODUwLDcyODcxLDcyODczLDcyODg2LDcyOTYwLDcyOTY2LDcyOTY4LDcyOTY5LDcyOTcxLDczMDE0LDczMDE4LDczMDE4LDczMDIwLDczMDIxLDczMDIzLDczMDMxLDczMDQwLDczMDQ5LDczMDU2LDczMDYxLDczMDYzLDczMDY0LDczMDY2LDczMTAyLDczMTA0LDczMTA1LDczMTA3LDczMTEyLDczMTIwLDczMTI5LDczNDQwLDczNDYyLDczNzI4LDc0NjQ5LDc0NzUyLDc0ODYyLDc0ODgwLDc1MDc1LDc3ODI0LDc4ODk0LDgyOTQ0LDgzNTI2LDkyMTYwLDkyNzI4LDkyNzM2LDkyNzY2LDkyNzY4LDkyNzc3LDkyODgwLDkyOTA5LDkyOTEyLDkyOTE2LDkyOTI4LDkyOTgyLDkyOTkyLDkyOTk1LDkzMDA4LDkzMDE3LDkzMDI3LDkzMDQ3LDkzMDUzLDkzMDcxLDkzNzYwLDkzODIzLDkzOTUyLDk0MDI2LDk0MDMxLDk0MDg3LDk0MDk1LDk0MTExLDk0MTc2LDk0MTc3LDk0MTc5LDk0MTc5LDk0MjA4LDEwMDM0MywxMDAzNTIsMTAxMTA2LDExMDU5MiwxMTA4NzgsMTEwOTI4LDExMDkzMCwxMTA5NDgsMTEwOTUxLDExMDk2MCwxMTEzNTUsMTEzNjY0LDExMzc3MCwxMTM3NzYsMTEzNzg4LDExMzc5MiwxMTM4MDAsMTEzODA4LDExMzgxNywxMTM4MjEsMTEzODIyLDExOTE0MSwxMTkxNDUsMTE5MTQ5LDExOTE1NCwxMTkxNjMsMTE5MTcwLDExOTE3MywxMTkxNzksMTE5MjEwLDExOTIxMywxMTkzNjIsMTE5MzY0LDExOTgwOCwxMTk4OTIsMTE5ODk0LDExOTk2NCwxMTk5NjYsMTE5OTY3LDExOTk3MCwxMTk5NzAsMTE5OTczLDExOTk3NCwxMTk5NzcsMTE5OTgwLDExOTk4MiwxMTk5OTMsMTE5OTk1LDExOTk5NSwxMTk5OTcsMTIwMDAzLDEyMDAwNSwxMjAwNjksMTIwMDcxLDEyMDA3NCwxMjAwNzcsMTIwMDg0LDEyMDA4NiwxMjAwOTIsMTIwMDk0LDEyMDEyMSwxMjAxMjMsMTIwMTI2LDEyMDEyOCwxMjAxMzIsMTIwMTM0LDEyMDEzNCwxMjAxMzgsMTIwMTQ0LDEyMDE0NiwxMjA0ODUsMTIwNDg4LDEyMDUxMiwxMjA1MTQsMTIwNTM4LDEyMDU0MCwxMjA1NzAsMTIwNTcyLDEyMDU5NiwxMjA1OTgsMTIwNjI4LDEyMDYzMCwxMjA2NTQsMTIwNjU2LDEyMDY4NiwxMjA2ODgsMTIwNzEyLDEyMDcxNCwxMjA3NDQsMTIwNzQ2LDEyMDc3MCwxMjA3NzIsMTIwNzc5LDEyMDc4MiwxMjA4MzEsMTIxMzQ0LDEyMTM5OCwxMjE0MDMsMTIxNDUyLDEyMTQ2MSwxMjE0NjEsMTIxNDc2LDEyMTQ3NiwxMjE0OTksMTIxNTAzLDEyMTUwNSwxMjE1MTksMTIyODgwLDEyMjg4NiwxMjI4ODgsMTIyOTA0LDEyMjkwNywxMjI5MTMsMTIyOTE1LDEyMjkxNiwxMjI5MTgsMTIyOTIyLDEyMzEzNiwxMjMxODAsMTIzMTg0LDEyMzE5NywxMjMyMDAsMTIzMjA5LDEyMzIxNCwxMjMyMTQsMTIzNTg0LDEyMzY0MSwxMjQ5MjgsMTI1MTI0LDEyNTEzNiwxMjUxNDIsMTI1MTg0LDEyNTI1OSwxMjUyNjQsMTI1MjczLDEyNjQ2NCwxMjY0NjcsMTI2NDY5LDEyNjQ5NSwxMjY0OTcsMTI2NDk4LDEyNjUwMCwxMjY1MDAsMTI2NTAzLDEyNjUwMywxMjY1MDUsMTI2NTE0LDEyNjUxNiwxMjY1MTksMTI2NTIxLDEyNjUyMSwxMjY1MjMsMTI2NTIzLDEyNjUzMCwxMjY1MzAsMTI2NTM1LDEyNjUzNSwxMjY1MzcsMTI2NTM3LDEyNjUzOSwxMjY1MzksMTI2NTQxLDEyNjU0MywxMjY1NDUsMTI2NTQ2LDEyNjU0OCwxMjY1NDgsMTI2NTUxLDEyNjU1MSwxMjY1NTMsMTI2NTUzLDEyNjU1NSwxMjY1NTUsMTI2NTU3LDEyNjU1NywxMjY1NTksMTI2NTU5LDEyNjU2MSwxMjY1NjIsMTI2NTY0LDEyNjU2NCwxMjY1NjcsMTI2NTcwLDEyNjU3MiwxMjY1NzgsMTI2NTgwLDEyNjU4MywxMjY1ODUsMTI2NTg4LDEyNjU5MCwxMjY1OTAsMTI2NTkyLDEyNjYwMSwxMjY2MDMsMTI2NjE5LDEyNjYyNSwxMjY2MjcsMTI2NjI5LDEyNjYzMywxMjY2MzUsMTI2NjUxLDEzMTA3MiwxNzM3ODIsMTczODI0LDE3Nzk3MiwxNzc5ODQsMTc4MjA1LDE3ODIwOCwxODM5NjksMTgzOTg0LDE5MTQ1NiwxOTQ1NjAsMTk1MTAxLDkxNzc2MCw5MTc5OTldLHk0PS9eXFwvXFwvXFwvP1xccypAKHRzLWV4cGVjdC1lcnJvcnx0cy1pZ25vcmUpLyxnND0vXig/OlxcL3xcXCopKlxccypAKHRzLWV4cGVjdC1lcnJvcnx0cy1pZ25vcmUpLyxiND1CRShoMCksbGw9NyxHZD0vXiMhLiovLGNuPVN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXQ/KGUsdCk9PmUuY29kZVBvaW50QXQodCk6ZnVuY3Rpb24odCxyKXtsZXQgYT10Lmxlbmd0aDtpZihyPDB8fHI+PWEpcmV0dXJuO2xldCBfPXQuY2hhckNvZGVBdChyKTtpZihfPj01NTI5NiYmXzw9NTYzMTkmJmE+cisxKXtsZXQgcD10LmNoYXJDb2RlQXQocisxKTtpZihwPj01NjMyMCYmcDw9NTczNDMpcmV0dXJuKF8tNTUyOTYpKjEwMjQrcC01NjMyMCs2NTUzNn1yZXR1cm4gX30sdjQ9U3RyaW5nLmZyb21Db2RlUG9pbnQ/ZT0+U3RyaW5nLmZyb21Db2RlUG9pbnQoZSk6SEV9fSk7ZnVuY3Rpb24gWEUoZSl7cmV0dXJuIHJzKGUpfHx2XyhlKX1mdW5jdGlvbiAkRShlKXtyZXR1cm4gd3YoZSxGMil9ZnVuY3Rpb24gVDQoZSl7c3dpdGNoKFFsKGUpKXtjYXNlIDk5OnJldHVyblwibGliLmVzbmV4dC5mdWxsLmQudHNcIjtjYXNlIDk6cmV0dXJuXCJsaWIuZXMyMDIyLmZ1bGwuZC50c1wiO2Nhc2UgODpyZXR1cm5cImxpYi5lczIwMjEuZnVsbC5kLnRzXCI7Y2FzZSA3OnJldHVyblwibGliLmVzMjAyMC5mdWxsLmQudHNcIjtjYXNlIDY6cmV0dXJuXCJsaWIuZXMyMDE5LmZ1bGwuZC50c1wiO2Nhc2UgNTpyZXR1cm5cImxpYi5lczIwMTguZnVsbC5kLnRzXCI7Y2FzZSA0OnJldHVyblwibGliLmVzMjAxNy5mdWxsLmQudHNcIjtjYXNlIDM6cmV0dXJuXCJsaWIuZXMyMDE2LmZ1bGwuZC50c1wiO2Nhc2UgMjpyZXR1cm5cImxpYi5lczYuZC50c1wiO2RlZmF1bHQ6cmV0dXJuXCJsaWIuZC50c1wifX1mdW5jdGlvbiBLdChlKXtyZXR1cm4gZS5zdGFydCtlLmxlbmd0aH1mdW5jdGlvbiBTNChlKXtyZXR1cm4gZS5sZW5ndGg9PT0wfWZ1bmN0aW9uIFFFKGUsdCl7cmV0dXJuIHQ+PWUuc3RhcnQmJnQ8S3QoZSl9ZnVuY3Rpb24gWUUoZSx0KXtyZXR1cm4gdD49ZS5wb3MmJnQ8PWUuZW5kfWZ1bmN0aW9uIEtFKGUsdCl7cmV0dXJuIHQuc3RhcnQ+PWUuc3RhcnQmJkt0KHQpPD1LdChlKX1mdW5jdGlvbiBaRShlLHQpe3JldHVybiB4NChlLHQpIT09dm9pZCAwfWZ1bmN0aW9uIHg0KGUsdCl7bGV0IHI9dzQoZSx0KTtyZXR1cm4gciYmci5sZW5ndGg9PT0wP3ZvaWQgMDpyfWZ1bmN0aW9uIGVBKGUsdCl7cmV0dXJuIEVnKGUuc3RhcnQsZS5sZW5ndGgsdC5zdGFydCx0Lmxlbmd0aCl9ZnVuY3Rpb24gdEEoZSx0LHIpe3JldHVybiBFZyhlLnN0YXJ0LGUubGVuZ3RoLHQscil9ZnVuY3Rpb24gRWcoZSx0LHIsYSl7bGV0IF89ZSt0LHA9cithO3JldHVybiByPD1fJiZwPj1lfWZ1bmN0aW9uIHJBKGUsdCl7cmV0dXJuIHQ8PUt0KGUpJiZ0Pj1lLnN0YXJ0fWZ1bmN0aW9uIHc0KGUsdCl7bGV0IHI9TWF0aC5tYXgoZS5zdGFydCx0LnN0YXJ0KSxhPU1hdGgubWluKEt0KGUpLEt0KHQpKTtyZXR1cm4gcjw9YT9IaShyLGEpOnZvaWQgMH1mdW5jdGlvbiB3XyhlLHQpe2lmKGU8MCl0aHJvdyBuZXcgRXJyb3IoXCJzdGFydCA8IDBcIik7aWYodDwwKXRocm93IG5ldyBFcnJvcihcImxlbmd0aCA8IDBcIik7cmV0dXJue3N0YXJ0OmUsbGVuZ3RoOnR9fWZ1bmN0aW9uIEhpKGUsdCl7cmV0dXJuIHdfKGUsdC1lKX1mdW5jdGlvbiBRcyhlKXtyZXR1cm4gd18oZS5zcGFuLnN0YXJ0LGUubmV3TGVuZ3RoKX1mdW5jdGlvbiBDNChlKXtyZXR1cm4gUzQoZS5zcGFuKSYmZS5uZXdMZW5ndGg9PT0wfWZ1bmN0aW9uIFhkKGUsdCl7aWYodDwwKXRocm93IG5ldyBFcnJvcihcIm5ld0xlbmd0aCA8IDBcIik7cmV0dXJue3NwYW46ZSxuZXdMZW5ndGg6dH19ZnVuY3Rpb24gbkEoZSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBWZztpZihlLmxlbmd0aD09PTEpcmV0dXJuIGVbMF07bGV0IHQ9ZVswXSxyPXQuc3Bhbi5zdGFydCxhPUt0KHQuc3BhbiksXz1yK3QubmV3TGVuZ3RoO2ZvcihsZXQgcD0xO3A8ZS5sZW5ndGg7cCsrKXtsZXQgZD1lW3BdLGg9cixsPWEsdj1fLHk9ZC5zcGFuLnN0YXJ0LEM9S3QoZC5zcGFuKSxTPXkrZC5uZXdMZW5ndGg7cj1NYXRoLm1pbihoLHkpLGE9TWF0aC5tYXgobCxsKyhDLXYpKSxfPU1hdGgubWF4KFMsUysodi1DKSl9cmV0dXJuIFhkKEhpKHIsYSksXy1yKX1mdW5jdGlvbiBpQShlKXtpZihlJiZlLmtpbmQ9PT0xNjgpe2ZvcihsZXQgdD1lO3Q7dD10LnBhcmVudClpZihHaSh0KXx8ZG4odCl8fHQua2luZD09PTI2NClyZXR1cm4gdH19ZnVuY3Rpb24gRTQoZSx0KXtyZXR1cm4gTWEoZSkmJmdyKGUsMTY0NzYpJiZ0LmtpbmQ9PT0xNzZ9ZnVuY3Rpb24gQTQoZSl7cmV0dXJuIGltKGUpP3NvKGUuZWxlbWVudHMsazQpOiExfWZ1bmN0aW9uIGs0KGUpe3JldHVybiBQbShlKT8hMDpBNChlLm5hbWUpfWZ1bmN0aW9uIEQ0KGUpe2xldCB0PWUucGFyZW50O2Zvcig7bnUodC5wYXJlbnQpOyl0PXQucGFyZW50LnBhcmVudDtyZXR1cm4gdC5wYXJlbnR9ZnVuY3Rpb24gQWcoZSx0KXtudShlKSYmKGU9RDQoZSkpO2xldCByPXQoZSk7cmV0dXJuIGUua2luZD09PTI2MCYmKGU9ZS5wYXJlbnQpLGUmJmUua2luZD09PTI2MSYmKHJ8PXQoZSksZT1lLnBhcmVudCksZSYmZS5raW5kPT09MjQzJiYocnw9dChlKSkscn1mdW5jdGlvbiAkZChlKXtyZXR1cm4gQWcoZSxibSl9ZnVuY3Rpb24gYUEoZSl7cmV0dXJuIEFnKGUsY1MpfWZ1bmN0aW9uIENfKGUpe3JldHVybiBBZyhlLG9BKX1mdW5jdGlvbiBvQShlKXtyZXR1cm4gZS5mbGFnc31mdW5jdGlvbiBzQShlLHQscil7bGV0IGE9ZS50b0xvd2VyQ2FzZSgpLF89L14oW2Etel0rKShbXy1dKFthLXpdKykpPyQvLmV4ZWMoYSk7aWYoIV8pe3ImJnIucHVzaChmbChVLkxvY2FsZV9tdXN0X2JlX29mX3RoZV9mb3JtX2xhbmd1YWdlX29yX2xhbmd1YWdlX3RlcnJpdG9yeV9Gb3JfZXhhbXBsZV8wX29yXzEsXCJlblwiLFwiamEtanBcIikpO3JldHVybn1sZXQgcD1fWzFdLGQ9X1szXTtlcyhIZyxhKSYmIWgocCxkLHIpJiZoKHAsdm9pZCAwLHIpLEx2KGUpO2Z1bmN0aW9uIGgobCx2LHkpe2xldCBDPXBuKHQuZ2V0RXhlY3V0aW5nRmlsZVBhdGgoKSksUz0kaShDKSxrPWhyKFMsbCk7aWYodiYmKGs9aytcIi1cIit2KSxrPXQucmVzb2x2ZVBhdGgoaHIoayxcImRpYWdub3N0aWNNZXNzYWdlcy5nZW5lcmF0ZWQuanNvblwiKSksIXQuZmlsZUV4aXN0cyhrKSlyZXR1cm4hMTtsZXQgTD1cIlwiO3RyeXtMPXQucmVhZEZpbGUoayl9Y2F0Y2h7cmV0dXJuIHkmJnkucHVzaChmbChVLlVuYWJsZV90b19vcGVuX2ZpbGVfMCxrKSksITF9dHJ5e05TKEpTT04ucGFyc2UoTCkpfWNhdGNoe3JldHVybiB5JiZ5LnB1c2goZmwoVS5Db3JydXB0ZWRfbG9jYWxlX2ZpbGVfMCxrKSksITF9cmV0dXJuITB9fWZ1bmN0aW9uIGpsKGUsdCl7aWYoZSlmb3IoO2Uub3JpZ2luYWwhPT12b2lkIDA7KWU9ZS5vcmlnaW5hbDtyZXR1cm4hZXx8IXR8fHQoZSk/ZTp2b2lkIDB9ZnVuY3Rpb24gS3IoZSx0KXtmb3IoO2U7KXtsZXQgcj10KGUpO2lmKHI9PT1cInF1aXRcIilyZXR1cm47aWYocilyZXR1cm4gZTtlPWUucGFyZW50fX1mdW5jdGlvbiBUbChlKXtyZXR1cm4oZS5mbGFncyYxNik9PT0wfWZ1bmN0aW9uIEZsKGUsdCl7aWYoZT09PXZvaWQgMHx8VGwoZSkpcmV0dXJuIGU7Zm9yKGU9ZS5vcmlnaW5hbDtlOyl7aWYoVGwoZSkpcmV0dXJuIXR8fHQoZSk/ZTp2b2lkIDA7ZT1lLm9yaWdpbmFsfX1mdW5jdGlvbiBNbihlKXtyZXR1cm4gZS5sZW5ndGg+PTImJmUuY2hhckNvZGVBdCgwKT09PTk1JiZlLmNoYXJDb2RlQXQoMSk9PT05NT9cIl9cIitlOmV9ZnVuY3Rpb24gVm8oZSl7bGV0IHQ9ZTtyZXR1cm4gdC5sZW5ndGg+PTMmJnQuY2hhckNvZGVBdCgwKT09PTk1JiZ0LmNoYXJDb2RlQXQoMSk9PT05NSYmdC5jaGFyQ29kZUF0KDIpPT09OTU/dC5zdWJzdHIoMSk6dH1mdW5jdGlvbiBPdChlKXtyZXR1cm4gVm8oZS5lc2NhcGVkVGV4dCl9ZnVuY3Rpb24gUDQoZSl7bGV0IHQ9UmwoZS5lc2NhcGVkVGV4dCk7cmV0dXJuIHQ/T24odCxTaSk6dm9pZCAwfWZ1bmN0aW9uIG1kKGUpe3JldHVybiBlLnZhbHVlRGVjbGFyYXRpb24mJmEzKGUudmFsdWVEZWNsYXJhdGlvbik/T3QoZS52YWx1ZURlY2xhcmF0aW9uLm5hbWUpOlZvKGUuZXNjYXBlZE5hbWUpfWZ1bmN0aW9uIEk0KGUpe2xldCB0PWUucGFyZW50LnBhcmVudDtpZih0KXtpZihIbyh0KSlyZXR1cm4gRWYodCk7c3dpdGNoKHQua2luZCl7Y2FzZSAyNDM6aWYodC5kZWNsYXJhdGlvbkxpc3QmJnQuZGVjbGFyYXRpb25MaXN0LmRlY2xhcmF0aW9uc1swXSlyZXR1cm4gRWYodC5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zWzBdKTticmVhaztjYXNlIDI0NDpsZXQgcj10LmV4cHJlc3Npb247c3dpdGNoKHIua2luZD09PTIyNiYmci5vcGVyYXRvclRva2VuLmtpbmQ9PT02NCYmKHI9ci5sZWZ0KSxyLmtpbmQpe2Nhc2UgMjExOnJldHVybiByLm5hbWU7Y2FzZSAyMTI6bGV0IGE9ci5hcmd1bWVudEV4cHJlc3Npb247aWYoRWUoYSkpcmV0dXJuIGF9YnJlYWs7Y2FzZSAyMTc6cmV0dXJuIEVmKHQuZXhwcmVzc2lvbik7Y2FzZSAyNTY6e2lmKEhvKHQuc3RhdGVtZW50KXx8YW0odC5zdGF0ZW1lbnQpKXJldHVybiBFZih0LnN0YXRlbWVudCk7YnJlYWt9fX19ZnVuY3Rpb24gRWYoZSl7bGV0IHQ9QmwoZSk7cmV0dXJuIHQmJkVlKHQpP3Q6dm9pZCAwfWZ1bmN0aW9uIE40KGUsdCl7cmV0dXJuISEoUWQoZSkmJkVlKGUubmFtZSkmJk90KGUubmFtZSk9PT1PdCh0KXx8YXMoZSkmJm10KGUuZGVjbGFyYXRpb25MaXN0LmRlY2xhcmF0aW9ucyxyPT5ONChyLHQpKSl9ZnVuY3Rpb24gTzQoZSl7cmV0dXJuIGUubmFtZXx8STQoZSl9ZnVuY3Rpb24gUWQoZSl7cmV0dXJuISFlLm5hbWV9ZnVuY3Rpb24gWWQoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSA4MDpyZXR1cm4gZTtjYXNlIDM1NTpjYXNlIDM0ODp7bGV0e25hbWU6cn09ZTtpZihyLmtpbmQ9PT0xNjYpcmV0dXJuIHIucmlnaHQ7YnJlYWt9Y2FzZSAyMTM6Y2FzZSAyMjY6e2xldCByPWU7c3dpdGNoKEphKHIpKXtjYXNlIDE6Y2FzZSA0OmNhc2UgNTpjYXNlIDM6cmV0dXJuIGZtKHIubGVmdCk7Y2FzZSA3OmNhc2UgODpjYXNlIDk6cmV0dXJuIHIuYXJndW1lbnRzWzFdO2RlZmF1bHQ6cmV0dXJufX1jYXNlIDM1MzpyZXR1cm4gTzQoZSk7Y2FzZSAzNDc6cmV0dXJuIEk0KGUpO2Nhc2UgMjc3OntsZXR7ZXhwcmVzc2lvbjpyfT1lO3JldHVybiBFZShyKT9yOnZvaWQgMH1jYXNlIDIxMjpsZXQgdD1lO2lmKGYyKHQpKXJldHVybiB0LmFyZ3VtZW50RXhwcmVzc2lvbn1yZXR1cm4gZS5uYW1lfWZ1bmN0aW9uIEJsKGUpe2lmKGUhPT12b2lkIDApcmV0dXJuIFlkKGUpfHwoQW0oZSl8fGttKGUpfHxJbChlKT9NNChlKTp2b2lkIDApfWZ1bmN0aW9uIE00KGUpe2lmKGUucGFyZW50KXtpZihfcyhlLnBhcmVudCl8fG51KGUucGFyZW50KSlyZXR1cm4gZS5wYXJlbnQubmFtZTtpZihDdChlLnBhcmVudCkmJmU9PT1lLnBhcmVudC5yaWdodCl7aWYoRWUoZS5wYXJlbnQubGVmdCkpcmV0dXJuIGUucGFyZW50LmxlZnQ7aWYoJG8oZS5wYXJlbnQubGVmdCkpcmV0dXJuIGZtKGUucGFyZW50LmxlZnQpfWVsc2UgaWYoa2koZS5wYXJlbnQpJiZFZShlLnBhcmVudC5uYW1lKSlyZXR1cm4gZS5wYXJlbnQubmFtZX1lbHNlIHJldHVybn1mdW5jdGlvbiBfQShlKXtpZihFbChlKSlyZXR1cm4gJHIoZS5tb2RpZmllcnMsTF8pfWZ1bmN0aW9uIGhkKGUpe2lmKGdyKGUsMTI2OTc1KSlyZXR1cm4gJHIoZS5tb2RpZmllcnMsTGcpfWZ1bmN0aW9uIEw0KGUsdCl7aWYoZS5uYW1lKWlmKEVlKGUubmFtZSkpe2xldCByPWUubmFtZS5lc2NhcGVkVGV4dDtyZXR1cm4gY18oZS5wYXJlbnQsdCkuZmlsdGVyKGE9PmhfKGEpJiZFZShhLm5hbWUpJiZhLm5hbWUuZXNjYXBlZFRleHQ9PT1yKX1lbHNle2xldCByPWUucGFyZW50LnBhcmFtZXRlcnMuaW5kZXhPZihlKTtOLmFzc2VydChyPi0xLFwiUGFyYW1ldGVycyBzaG91bGQgYWx3YXlzIGJlIGluIHRoZWlyIHBhcmVudHMnIHBhcmFtZXRlciBsaXN0XCIpO2xldCBhPWNfKGUucGFyZW50LHQpLmZpbHRlcihoXyk7aWYocjxhLmxlbmd0aClyZXR1cm5bYVtyXV19cmV0dXJuICRlfWZ1bmN0aW9uIEtkKGUpe3JldHVybiBMNChlLCExKX1mdW5jdGlvbiBKNChlKXtyZXR1cm4gTDQoZSwhMCl9ZnVuY3Rpb24gUjQoZSx0KXtsZXQgcj1lLm5hbWUuZXNjYXBlZFRleHQ7cmV0dXJuIGNfKGUucGFyZW50LHQpLmZpbHRlcihhPT5LbyhhKSYmYS50eXBlUGFyYW1ldGVycy5zb21lKF89Pl8ubmFtZS5lc2NhcGVkVGV4dD09PXIpKX1mdW5jdGlvbiBqNChlKXtyZXR1cm4gUjQoZSwhMSl9ZnVuY3Rpb24gRjQoZSl7cmV0dXJuIFI0KGUsITApfWZ1bmN0aW9uIGNBKGUpe3JldHVybiEhWnQoZSxoXyl9ZnVuY3Rpb24gQjQoZSl7cmV0dXJuIFp0KGUsTW0pfWZ1bmN0aW9uIFU0KGUpe3JldHVybiBRNChlLEM4KX1mdW5jdGlvbiBsQShlKXtyZXR1cm4gWnQoZSxUOCl9ZnVuY3Rpb24gdUEoZSl7cmV0dXJuIFp0KGUsSTYpfWZ1bmN0aW9uIHE0KGUpe3JldHVybiBadChlLEk2LCEwKX1mdW5jdGlvbiBwQShlKXtyZXR1cm4gWnQoZSxONil9ZnVuY3Rpb24gejQoZSl7cmV0dXJuIFp0KGUsTjYsITApfWZ1bmN0aW9uIGZBKGUpe3JldHVybiBadChlLE82KX1mdW5jdGlvbiBXNChlKXtyZXR1cm4gWnQoZSxPNiwhMCl9ZnVuY3Rpb24gZEEoZSl7cmV0dXJuIFp0KGUsTTYpfWZ1bmN0aW9uIFY0KGUpe3JldHVybiBadChlLE02LCEwKX1mdW5jdGlvbiBINChlKXtyZXR1cm4gWnQoZSxTOCwhMCl9ZnVuY3Rpb24gbUEoZSl7cmV0dXJuIFp0KGUsSjYpfWZ1bmN0aW9uIEc0KGUpe3JldHVybiBadChlLEo2LCEwKX1mdW5jdGlvbiBoQShlKXtyZXR1cm4gWnQoZSx4OCl9ZnVuY3Rpb24geUEoZSl7cmV0dXJuIFp0KGUsdzgpfWZ1bmN0aW9uIFg0KGUpe3JldHVybiBadChlLFI2KX1mdW5jdGlvbiBnQShlKXtyZXR1cm4gWnQoZSxLbyl9ZnVuY3Rpb24ga2coZSl7cmV0dXJuIFp0KGUsajYpfWZ1bmN0aW9uIFpkKGUpe2xldCB0PVp0KGUsbHUpO2lmKHQmJnQudHlwZUV4cHJlc3Npb24mJnQudHlwZUV4cHJlc3Npb24udHlwZSlyZXR1cm4gdH1mdW5jdGlvbiBlbShlKXtsZXQgdD1adChlLGx1KTtyZXR1cm4hdCYmTWEoZSkmJih0PVlyKEtkKGUpLHI9PiEhci50eXBlRXhwcmVzc2lvbikpLHQmJnQudHlwZUV4cHJlc3Npb24mJnQudHlwZUV4cHJlc3Npb24udHlwZX1mdW5jdGlvbiAkNChlKXtsZXQgdD1YNChlKTtpZih0JiZ0LnR5cGVFeHByZXNzaW9uKXJldHVybiB0LnR5cGVFeHByZXNzaW9uLnR5cGU7bGV0IHI9WmQoZSk7aWYociYmci50eXBlRXhwcmVzc2lvbil7bGV0IGE9ci50eXBlRXhwcmVzc2lvbi50eXBlO2lmKEVtKGEpKXtsZXQgXz1ZcihhLm1lbWJlcnMsYzYpO3JldHVybiBfJiZfLnR5cGV9aWYodHUoYSl8fE9tKGEpKXJldHVybiBhLnR5cGV9fWZ1bmN0aW9uIGNfKGUsdCl7dmFyIHI7aWYoIWRtKGUpKXJldHVybiAkZTtsZXQgYT0ocj1lLmpzRG9jKT09bnVsbD92b2lkIDA6ci5qc0RvY0NhY2hlO2lmKGE9PT12b2lkIDB8fHQpe2xldCBfPWdUKGUsdCk7Ti5hc3NlcnQoXy5sZW5ndGg8Mnx8X1swXSE9PV9bMV0pLGE9Qm8oXyxwPT5jcyhwKT9wLnRhZ3M6cCksdHx8KGUuanNEb2M/PyhlLmpzRG9jPVtdKSxlLmpzRG9jLmpzRG9jQ2FjaGU9YSl9cmV0dXJuIGF9ZnVuY3Rpb24gVWwoZSl7cmV0dXJuIGNfKGUsITEpfWZ1bmN0aW9uIGJBKGUpe3JldHVybiBjXyhlLCEwKX1mdW5jdGlvbiBadChlLHQscil7cmV0dXJuIFlyKGNfKGUsciksdCl9ZnVuY3Rpb24gUTQoZSx0KXtyZXR1cm4gVWwoZSkuZmlsdGVyKHQpfWZ1bmN0aW9uIHZBKGUsdCl7cmV0dXJuIFVsKGUpLmZpbHRlcihyPT5yLmtpbmQ9PT10KX1mdW5jdGlvbiBUQShlKXtyZXR1cm4gdHlwZW9mIGU9PVwic3RyaW5nXCI/ZTplPT1udWxsP3ZvaWQgMDplLm1hcCh0PT50LmtpbmQ9PT0zMjg/dC50ZXh0OlNBKHQpKS5qb2luKFwiXCIpfWZ1bmN0aW9uIFNBKGUpe2xldCB0PWUua2luZD09PTMzMT9cImxpbmtcIjplLmtpbmQ9PT0zMzI/XCJsaW5rY29kZVwiOlwibGlua3BsYWluXCIscj1lLm5hbWU/dmkoZS5uYW1lKTpcIlwiLGE9ZS5uYW1lJiZlLnRleHQuc3RhcnRzV2l0aChcIjovL1wiKT9cIlwiOlwiIFwiO3JldHVybmB7QCR7dH0gJHtyfSR7YX0ke2UudGV4dH19YH1mdW5jdGlvbiB4QShlKXtpZihjdShlKSl7aWYoTDYoZS5wYXJlbnQpKXtsZXQgdD1nMihlLnBhcmVudCk7aWYodCYmS2EodC50YWdzKSlyZXR1cm4gQm8odC50YWdzLHI9PktvKHIpP3IudHlwZVBhcmFtZXRlcnM6dm9pZCAwKX1yZXR1cm4gJGV9aWYoSGwoZSkpcmV0dXJuIE4uYXNzZXJ0KGUucGFyZW50LmtpbmQ9PT0zMjcpLEJvKGUucGFyZW50LnRhZ3MsdD0+S28odCk/dC50eXBlUGFyYW1ldGVyczp2b2lkIDApO2lmKGUudHlwZVBhcmFtZXRlcnN8fEY4KGUpJiZlLnR5cGVQYXJhbWV0ZXJzKXJldHVybiBlLnR5cGVQYXJhbWV0ZXJzO2lmKFd0KGUpKXtsZXQgdD1lUyhlKTtpZih0Lmxlbmd0aClyZXR1cm4gdDtsZXQgcj1lbShlKTtpZihyJiZ0dShyKSYmci50eXBlUGFyYW1ldGVycylyZXR1cm4gci50eXBlUGFyYW1ldGVyc31yZXR1cm4gJGV9ZnVuY3Rpb24gd0EoZSl7cmV0dXJuIGUuY29uc3RyYWludD9lLmNvbnN0cmFpbnQ6S28oZS5wYXJlbnQpJiZlPT09ZS5wYXJlbnQudHlwZVBhcmFtZXRlcnNbMF0/ZS5wYXJlbnQuY29uc3RyYWludDp2b2lkIDB9ZnVuY3Rpb24gcm8oZSl7cmV0dXJuIGUua2luZD09PTgwfHxlLmtpbmQ9PT04MX1mdW5jdGlvbiBDQShlKXtyZXR1cm4gZS5raW5kPT09MTc4fHxlLmtpbmQ9PT0xNzd9ZnVuY3Rpb24gWTQoZSl7cmV0dXJuIEJyKGUpJiYhIShlLmZsYWdzJjY0KX1mdW5jdGlvbiBLNChlKXtyZXR1cm4gUmEoZSkmJiEhKGUuZmxhZ3MmNjQpfWZ1bmN0aW9uIHkwKGUpe3JldHVybiBqXyhlKSYmISEoZS5mbGFncyY2NCl9ZnVuY3Rpb24gRGcoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiEhKGUuZmxhZ3MmNjQpJiYodD09PTIxMXx8dD09PTIxMnx8dD09PTIxM3x8dD09PTIzNSl9ZnVuY3Rpb24gUGcoZSl7cmV0dXJuIERnKGUpJiYham8oZSkmJiEhZS5xdWVzdGlvbkRvdFRva2VufWZ1bmN0aW9uIEVBKGUpe3JldHVybiBQZyhlLnBhcmVudCkmJmUucGFyZW50LmV4cHJlc3Npb249PT1lfWZ1bmN0aW9uIEFBKGUpe3JldHVybiFEZyhlLnBhcmVudCl8fFBnKGUucGFyZW50KXx8ZSE9PWUucGFyZW50LmV4cHJlc3Npb259ZnVuY3Rpb24ga0EoZSl7cmV0dXJuIGUua2luZD09PTIyNiYmZS5vcGVyYXRvclRva2VuLmtpbmQ9PT02MX1mdW5jdGlvbiBaNChlKXtyZXR1cm4gUl8oZSkmJkVlKGUudHlwZU5hbWUpJiZlLnR5cGVOYW1lLmVzY2FwZWRUZXh0PT09XCJjb25zdFwiJiYhZS50eXBlQXJndW1lbnRzfWZ1bmN0aW9uIHRtKGUpe3JldHVybiBscyhlLDgpfWZ1bmN0aW9uIGUzKGUpe3JldHVybiBqbyhlKSYmISEoZS5mbGFncyY2NCl9ZnVuY3Rpb24gREEoZSl7cmV0dXJuIGUua2luZD09PTI1Mnx8ZS5raW5kPT09MjUxfWZ1bmN0aW9uIFBBKGUpe3JldHVybiBlLmtpbmQ9PT0yODB8fGUua2luZD09PTI3OX1mdW5jdGlvbiB0MyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDMwOTpjYXNlIDMxMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBJQShlKXtyZXR1cm4gdDMoZSl8fGUua2luZD09PTMwN3x8ZS5raW5kPT09MzExfWZ1bmN0aW9uIElnKGUpe3JldHVybiBlLmtpbmQ9PT0zNTV8fGUua2luZD09PTM0OH1mdW5jdGlvbiBOQShlKXtyZXR1cm4gcWwoZS5raW5kKX1mdW5jdGlvbiBxbChlKXtyZXR1cm4gZT49MTY2fWZ1bmN0aW9uIHIzKGUpe3JldHVybiBlPj0wJiZlPD0xNjV9ZnVuY3Rpb24gT0EoZSl7cmV0dXJuIHIzKGUua2luZCl9ZnVuY3Rpb24gdmEoZSl7cmV0dXJuIFFyKGUsXCJwb3NcIikmJlFyKGUsXCJlbmRcIil9ZnVuY3Rpb24gTmcoZSl7cmV0dXJuIDk8PWUmJmU8PTE1fWZ1bmN0aW9uIE9nKGUpe3JldHVybiBOZyhlLmtpbmQpfWZ1bmN0aW9uIE1BKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjEwOmNhc2UgMjA5OmNhc2UgMTQ6Y2FzZSAyMTg6Y2FzZSAyMzE6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gU2woZSl7cmV0dXJuIDE1PD1lJiZlPD0xOH1mdW5jdGlvbiBMQShlKXtyZXR1cm4gU2woZS5raW5kKX1mdW5jdGlvbiBKQShlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xN3x8dD09PTE4fWZ1bmN0aW9uIFJBKGUpe3JldHVybiBmOChlKXx8bTgoZSl9ZnVuY3Rpb24gbjMoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNzY6cmV0dXJuIGUuaXNUeXBlT25seXx8ZS5wYXJlbnQucGFyZW50LmlzVHlwZU9ubHk7Y2FzZSAyNzQ6cmV0dXJuIGUucGFyZW50LmlzVHlwZU9ubHk7Y2FzZSAyNzM6Y2FzZSAyNzE6cmV0dXJuIGUuaXNUeXBlT25seX1yZXR1cm4hMX1mdW5jdGlvbiBpMyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDI4MTpyZXR1cm4gZS5pc1R5cGVPbmx5fHxlLnBhcmVudC5wYXJlbnQuaXNUeXBlT25seTtjYXNlIDI3ODpyZXR1cm4gZS5pc1R5cGVPbmx5JiYhIWUubW9kdWxlU3BlY2lmaWVyJiYhZS5leHBvcnRDbGF1c2U7Y2FzZSAyODA6cmV0dXJuIGUucGFyZW50LmlzVHlwZU9ubHl9cmV0dXJuITF9ZnVuY3Rpb24gakEoZSl7cmV0dXJuIG4zKGUpfHxpMyhlKX1mdW5jdGlvbiBGQShlKXtyZXR1cm4gbW4oZSl8fEVlKGUpfWZ1bmN0aW9uIEJBKGUpe3JldHVybiBlLmtpbmQ9PT0xMXx8U2woZS5raW5kKX1mdW5jdGlvbiB3YShlKXt2YXIgdDtyZXR1cm4gRWUoZSkmJigodD1lLmVtaXROb2RlKT09bnVsbD92b2lkIDA6dC5hdXRvR2VuZXJhdGUpIT09dm9pZCAwfWZ1bmN0aW9uIE1nKGUpe3ZhciB0O3JldHVybiBqcihlKSYmKCh0PWUuZW1pdE5vZGUpPT1udWxsP3ZvaWQgMDp0LmF1dG9HZW5lcmF0ZSkhPT12b2lkIDB9ZnVuY3Rpb24gVUEoZSl7bGV0IHQ9ZS5lbWl0Tm9kZS5hdXRvR2VuZXJhdGUuZmxhZ3M7cmV0dXJuISEodCYzMikmJiEhKHQmMTYpJiYhISh0JjgpfWZ1bmN0aW9uIGEzKGUpe3JldHVybihvbyhlKXx8UmcoZSkpJiZqcihlLm5hbWUpfWZ1bmN0aW9uIHFBKGUpe3JldHVybiBCcihlKSYmanIoZS5uYW1lKX1mdW5jdGlvbiBiaShlKXtzd2l0Y2goZSl7Y2FzZSAxMjg6Y2FzZSAxMjk6Y2FzZSAxMzQ6Y2FzZSA4NzpjYXNlIDEzODpjYXNlIDkwOmNhc2UgOTU6Y2FzZSAxMDM6Y2FzZSAxMjU6Y2FzZSAxMjM6Y2FzZSAxMjQ6Y2FzZSAxNDg6Y2FzZSAxMjY6Y2FzZSAxNDc6Y2FzZSAxNjQ6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbzMoZSl7cmV0dXJuISEoSjIoZSkmMTY0NzYpfWZ1bmN0aW9uIHMzKGUpe3JldHVybiBvMyhlKXx8ZT09PTEyNnx8ZT09PTE2NHx8ZT09PTEyOX1mdW5jdGlvbiBMZyhlKXtyZXR1cm4gYmkoZS5raW5kKX1mdW5jdGlvbiB6QShlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xNjZ8fHQ9PT04MH1mdW5jdGlvbiB6bChlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT04MHx8dD09PTgxfHx0PT09MTF8fHQ9PT05fHx0PT09MTY3fWZ1bmN0aW9uIFdBKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTgwfHx0PT09MjA2fHx0PT09MjA3fWZ1bmN0aW9uIEdpKGUpe3JldHVybiEhZSYmSmcoZS5raW5kKX1mdW5jdGlvbiBybShlKXtyZXR1cm4hIWUmJihKZyhlLmtpbmQpfHxldShlKSl9ZnVuY3Rpb24gXzMoZSl7cmV0dXJuIGUmJmMzKGUua2luZCl9ZnVuY3Rpb24gVkEoZSl7cmV0dXJuIGUua2luZD09PTExMnx8ZS5raW5kPT09OTd9ZnVuY3Rpb24gYzMoZSl7c3dpdGNoKGUpe2Nhc2UgMjYyOmNhc2UgMTc0OmNhc2UgMTc2OmNhc2UgMTc3OmNhc2UgMTc4OmNhc2UgMjE4OmNhc2UgMjE5OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIEpnKGUpe3N3aXRjaChlKXtjYXNlIDE3MzpjYXNlIDE3OTpjYXNlIDMzMDpjYXNlIDE4MDpjYXNlIDE4MTpjYXNlIDE4NDpjYXNlIDMyNDpjYXNlIDE4NTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiBjMyhlKX19ZnVuY3Rpb24gSEEoZSl7cmV0dXJuIGlpKGUpfHxwOChlKXx8YXUoZSkmJkdpKGUucGFyZW50KX1mdW5jdGlvbiBubyhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xNzZ8fHQ9PT0xNzJ8fHQ9PT0xNzR8fHQ9PT0xNzd8fHQ9PT0xNzh8fHQ9PT0xODF8fHQ9PT0xNzV8fHQ9PT0yNDB9ZnVuY3Rpb24gZG4oZSl7cmV0dXJuIGUmJihlLmtpbmQ9PT0yNjN8fGUua2luZD09PTIzMSl9ZnVuY3Rpb24gbm0oZSl7cmV0dXJuIGUmJihlLmtpbmQ9PT0xNzd8fGUua2luZD09PTE3OCl9ZnVuY3Rpb24gbDMoZSl7cmV0dXJuIG9vKGUpJiZvUyhlKX1mdW5jdGlvbiBSZyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDE3NDpjYXNlIDE3NzpjYXNlIDE3ODpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBHQShlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDE3NDpjYXNlIDE3NzpjYXNlIDE3ODpjYXNlIDE3MjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBPZihlKXtyZXR1cm4gTGcoZSl8fExfKGUpfWZ1bmN0aW9uIGpnKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTE4MHx8dD09PTE3OXx8dD09PTE3MXx8dD09PTE3M3x8dD09PTE4MXx8dD09PTE3N3x8dD09PTE3OH1mdW5jdGlvbiBYQShlKXtyZXR1cm4gamcoZSl8fG5vKGUpfWZ1bmN0aW9uIEZnKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTMwM3x8dD09PTMwNHx8dD09PTMwNXx8dD09PTE3NHx8dD09PTE3N3x8dD09PTE3OH1mdW5jdGlvbiBnMChlKXtyZXR1cm4gUFMoZS5raW5kKX1mdW5jdGlvbiAkQShlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDE4NDpjYXNlIDE4NTpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBpbShlKXtpZihlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yMDd8fHQ9PT0yMDZ9cmV0dXJuITF9ZnVuY3Rpb24gdTMoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MjA5fHx0PT09MjEwfWZ1bmN0aW9uIFFBKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTIwOHx8dD09PTIzMn1mdW5jdGlvbiBCZyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDI2MDpjYXNlIDE2OTpjYXNlIDIwODpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBZQShlKXtyZXR1cm4ga2koZSl8fE1hKGUpfHxmMyhlKXx8bTMoZSl9ZnVuY3Rpb24gS0EoZSl7cmV0dXJuIHAzKGUpfHxkMyhlKX1mdW5jdGlvbiBwMyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIwNjpjYXNlIDIxMDpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBmMyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIwODpjYXNlIDMwMzpjYXNlIDMwNDpjYXNlIDMwNTpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBkMyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIwNzpjYXNlIDIwOTpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtMyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIwODpjYXNlIDIzMjpjYXNlIDIzMDpjYXNlIDIwOTpjYXNlIDIxMDpjYXNlIDgwOmNhc2UgMjExOmNhc2UgMjEyOnJldHVybiEwfXJldHVybiBOYShlLCEwKX1mdW5jdGlvbiBaQShlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yMTF8fHQ9PT0xNjZ8fHQ9PT0yMDV9ZnVuY3Rpb24gZWsoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MjExfHx0PT09MTY2fWZ1bmN0aW9uIHRrKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjg2OmNhc2UgMjg1OmNhc2UgMjEzOmNhc2UgMjE0OmNhc2UgMjE1OmNhc2UgMTcwOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHJrKGUpe3JldHVybiBlLmtpbmQ9PT0yMTN8fGUua2luZD09PTIxNH1mdW5jdGlvbiBuayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yMjh8fHQ9PT0xNX1mdW5jdGlvbiBMbyhlKXtyZXR1cm4gaDModG0oZSkua2luZCl9ZnVuY3Rpb24gaDMoZSl7c3dpdGNoKGUpe2Nhc2UgMjExOmNhc2UgMjEyOmNhc2UgMjE0OmNhc2UgMjEzOmNhc2UgMjg0OmNhc2UgMjg1OmNhc2UgMjg4OmNhc2UgMjE1OmNhc2UgMjA5OmNhc2UgMjE3OmNhc2UgMjEwOmNhc2UgMjMxOmNhc2UgMjE4OmNhc2UgODA6Y2FzZSA4MTpjYXNlIDE0OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDIyODpjYXNlIDk3OmNhc2UgMTA2OmNhc2UgMTEwOmNhc2UgMTEyOmNhc2UgMTA4OmNhc2UgMjM1OmNhc2UgMjMzOmNhc2UgMjM2OmNhc2UgMTAyOmNhc2UgMjgyOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHkzKGUpe3JldHVybiBnMyh0bShlKS5raW5kKX1mdW5jdGlvbiBnMyhlKXtzd2l0Y2goZSl7Y2FzZSAyMjQ6Y2FzZSAyMjU6Y2FzZSAyMjA6Y2FzZSAyMjE6Y2FzZSAyMjI6Y2FzZSAyMjM6Y2FzZSAyMTY6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gaDMoZSl9fWZ1bmN0aW9uIGlrKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjI1OnJldHVybiEwO2Nhc2UgMjI0OnJldHVybiBlLm9wZXJhdG9yPT09NDZ8fGUub3BlcmF0b3I9PT00NztkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBhayhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDEwNjpjYXNlIDExMjpjYXNlIDk3OmNhc2UgMjI0OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIE9nKGUpfX1mdW5jdGlvbiBhbShlKXtyZXR1cm4gb2sodG0oZSkua2luZCl9ZnVuY3Rpb24gb2soZSl7c3dpdGNoKGUpe2Nhc2UgMjI3OmNhc2UgMjI5OmNhc2UgMjE5OmNhc2UgMjI2OmNhc2UgMjMwOmNhc2UgMjM0OmNhc2UgMjMyOmNhc2UgMzYxOmNhc2UgMzYwOmNhc2UgMjM4OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIGczKGUpfX1mdW5jdGlvbiBzayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yMTZ8fHQ9PT0yMzR9ZnVuY3Rpb24gX2soZSl7cmV0dXJuIEE2KGUpfHxjOChlKX1mdW5jdGlvbiBiMyhlLHQpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjQ4OmNhc2UgMjQ5OmNhc2UgMjUwOmNhc2UgMjQ2OmNhc2UgMjQ3OnJldHVybiEwO2Nhc2UgMjU2OnJldHVybiB0JiZiMyhlLnN0YXRlbWVudCx0KX1yZXR1cm4hMX1mdW5jdGlvbiB2MyhlKXtyZXR1cm4gc3MoZSl8fEJfKGUpfWZ1bmN0aW9uIGNrKGUpe3JldHVybiBtdChlLHYzKX1mdW5jdGlvbiBsayhlKXtyZXR1cm4hbG0oZSkmJiFzcyhlKSYmIWdyKGUsMSkmJiFfbShlKX1mdW5jdGlvbiB1ayhlKXtyZXR1cm4gbG0oZSl8fHNzKGUpfHxncihlLDEpfWZ1bmN0aW9uIHBrKGUpe3JldHVybiBlLmtpbmQ9PT0yNDl8fGUua2luZD09PTI1MH1mdW5jdGlvbiBmayhlKXtyZXR1cm4gYXUoZSl8fGFtKGUpfWZ1bmN0aW9uIGRrKGUpe3JldHVybiBhdShlKX1mdW5jdGlvbiBtayhlKXtyZXR1cm4gdjYoZSl8fGFtKGUpfWZ1bmN0aW9uIGhrKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTI2OHx8dD09PTI2N3x8dD09PTgwfWZ1bmN0aW9uIHlrKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTI2OHx8dD09PTI2N31mdW5jdGlvbiBnayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT04MHx8dD09PTI2N31mdW5jdGlvbiBiayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yNzV8fHQ9PT0yNzR9ZnVuY3Rpb24gdmsoZSl7cmV0dXJuIGUua2luZD09PTI2N3x8ZS5raW5kPT09MjY2fWZ1bmN0aW9uIFRrKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjE5OmNhc2UgMjI2OmNhc2UgMjA4OmNhc2UgMjEzOmNhc2UgMTc5OmNhc2UgMjYzOmNhc2UgMjMxOmNhc2UgMTc1OmNhc2UgMTc2OmNhc2UgMTg1OmNhc2UgMTgwOmNhc2UgMjEyOmNhc2UgMjY2OmNhc2UgMzA2OmNhc2UgMjc3OmNhc2UgMjc4OmNhc2UgMjgxOmNhc2UgMjYyOmNhc2UgMjE4OmNhc2UgMTg0OmNhc2UgMTc3OmNhc2UgODA6Y2FzZSAyNzM6Y2FzZSAyNzE6Y2FzZSAyNzY6Y2FzZSAxODE6Y2FzZSAyNjQ6Y2FzZSAzNDU6Y2FzZSAzNDc6Y2FzZSAzMjQ6Y2FzZSAzNDg6Y2FzZSAzNTU6Y2FzZSAzMzA6Y2FzZSAzNTM6Y2FzZSAzMjk6Y2FzZSAyOTE6Y2FzZSAyOTI6Y2FzZSAyOTM6Y2FzZSAyMDA6Y2FzZSAxNzQ6Y2FzZSAxNzM6Y2FzZSAyNjc6Y2FzZSAyMDI6Y2FzZSAyODA6Y2FzZSAyNzA6Y2FzZSAyNzQ6Y2FzZSAyMTQ6Y2FzZSAxNTpjYXNlIDk6Y2FzZSAyMTA6Y2FzZSAxNjk6Y2FzZSAyMTE6Y2FzZSAzMDM6Y2FzZSAxNzI6Y2FzZSAxNzE6Y2FzZSAxNzg6Y2FzZSAzMDQ6Y2FzZSAzMTI6Y2FzZSAzMDU6Y2FzZSAxMTpjYXNlIDI2NTpjYXNlIDE4NzpjYXNlIDE2ODpjYXNlIDI2MDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBTayhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIxOTpjYXNlIDI0MTpjYXNlIDE3OTpjYXNlIDI2OTpjYXNlIDI5OTpjYXNlIDE3NTpjYXNlIDE5NDpjYXNlIDE3NjpjYXNlIDE4NTpjYXNlIDE4MDpjYXNlIDI0ODpjYXNlIDI0OTpjYXNlIDI1MDpjYXNlIDI2MjpjYXNlIDIxODpjYXNlIDE4NDpjYXNlIDE3NzpjYXNlIDE4MTpjYXNlIDM0NTpjYXNlIDM0NzpjYXNlIDMyNDpjYXNlIDMzMDpjYXNlIDM1MzpjYXNlIDIwMDpjYXNlIDE3NDpjYXNlIDE3MzpjYXNlIDI2NzpjYXNlIDE3ODpjYXNlIDMxMjpjYXNlIDI2NTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiB4ayhlKXtyZXR1cm4gZT09PTIxOXx8ZT09PTIwOHx8ZT09PTI2M3x8ZT09PTIzMXx8ZT09PTE3NXx8ZT09PTE3Nnx8ZT09PTI2Nnx8ZT09PTMwNnx8ZT09PTI4MXx8ZT09PTI2Mnx8ZT09PTIxOHx8ZT09PTE3N3x8ZT09PTI3M3x8ZT09PTI3MXx8ZT09PTI3Nnx8ZT09PTI2NHx8ZT09PTI5MXx8ZT09PTE3NHx8ZT09PTE3M3x8ZT09PTI2N3x8ZT09PTI3MHx8ZT09PTI3NHx8ZT09PTI4MHx8ZT09PTE2OXx8ZT09PTMwM3x8ZT09PTE3Mnx8ZT09PTE3MXx8ZT09PTE3OHx8ZT09PTMwNHx8ZT09PTI2NXx8ZT09PTE2OHx8ZT09PTI2MHx8ZT09PTM1M3x8ZT09PTM0NXx8ZT09PTM1NX1mdW5jdGlvbiBVZyhlKXtyZXR1cm4gZT09PTI2Mnx8ZT09PTI4Mnx8ZT09PTI2M3x8ZT09PTI2NHx8ZT09PTI2NXx8ZT09PTI2Nnx8ZT09PTI2N3x8ZT09PTI3Mnx8ZT09PTI3MXx8ZT09PTI3OHx8ZT09PTI3N3x8ZT09PTI3MH1mdW5jdGlvbiBxZyhlKXtyZXR1cm4gZT09PTI1Mnx8ZT09PTI1MXx8ZT09PTI1OXx8ZT09PTI0Nnx8ZT09PTI0NHx8ZT09PTI0Mnx8ZT09PTI0OXx8ZT09PTI1MHx8ZT09PTI0OHx8ZT09PTI0NXx8ZT09PTI1Nnx8ZT09PTI1M3x8ZT09PTI1NXx8ZT09PTI1N3x8ZT09PTI1OHx8ZT09PTI0M3x8ZT09PTI0N3x8ZT09PTI1NHx8ZT09PTM1OX1mdW5jdGlvbiBIbyhlKXtyZXR1cm4gZS5raW5kPT09MTY4P2UucGFyZW50JiZlLnBhcmVudC5raW5kIT09MzUyfHxXdChlKTp4ayhlLmtpbmQpfWZ1bmN0aW9uIHdrKGUpe3JldHVybiBVZyhlLmtpbmQpfWZ1bmN0aW9uIENrKGUpe3JldHVybiBxZyhlLmtpbmQpfWZ1bmN0aW9uIFQzKGUpe2xldCB0PWUua2luZDtyZXR1cm4gcWcodCl8fFVnKHQpfHxFayhlKX1mdW5jdGlvbiBFayhlKXtyZXR1cm4gZS5raW5kIT09MjQxfHxlLnBhcmVudCE9PXZvaWQgMCYmKGUucGFyZW50LmtpbmQ9PT0yNTh8fGUucGFyZW50LmtpbmQ9PT0yOTkpPyExOiEkMyhlKX1mdW5jdGlvbiBTMyhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHFnKHQpfHxVZyh0KXx8dD09PTI0MX1mdW5jdGlvbiBBayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yODN8fHQ9PT0xNjZ8fHQ9PT04MH1mdW5jdGlvbiBrayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xMTB8fHQ9PT04MHx8dD09PTIxMXx8dD09PTI5NX1mdW5jdGlvbiB4MyhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yODR8fHQ9PT0yOTR8fHQ9PT0yODV8fHQ9PT0xMnx8dD09PTI4OH1mdW5jdGlvbiBEayhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0yOTF8fHQ9PT0yOTN9ZnVuY3Rpb24gUGsoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTF8fHQ9PT0yOTR9ZnVuY3Rpb24gdzMoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09Mjg2fHx0PT09Mjg1fWZ1bmN0aW9uIElrKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTI5Nnx8dD09PTI5N31mdW5jdGlvbiB6ZyhlKXtyZXR1cm4gZS5raW5kPj0zMTYmJmUua2luZDw9MzU3fWZ1bmN0aW9uIEMzKGUpe3JldHVybiBlLmtpbmQ9PT0zMjd8fGUua2luZD09PTMyNnx8ZS5raW5kPT09MzI4fHx1bChlKXx8V2coZSl8fFA2KGUpfHxjdShlKX1mdW5jdGlvbiBXZyhlKXtyZXR1cm4gZS5raW5kPj0zMzQmJmUua2luZDw9MzU3fWZ1bmN0aW9uIFpjKGUpe3JldHVybiBlLmtpbmQ9PT0xNzh9ZnVuY3Rpb24gZWwoZSl7cmV0dXJuIGUua2luZD09PTE3N31mdW5jdGlvbiBXaShlKXtpZighZG0oZSkpcmV0dXJuITE7bGV0e2pzRG9jOnR9PWU7cmV0dXJuISF0JiZ0Lmxlbmd0aD4wfWZ1bmN0aW9uIE5rKGUpe3JldHVybiEhZS50eXBlfWZ1bmN0aW9uIEUzKGUpe3JldHVybiEhZS5pbml0aWFsaXplcn1mdW5jdGlvbiBPayhlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDI2MDpjYXNlIDE2OTpjYXNlIDIwODpjYXNlIDE3MjpjYXNlIDMwMzpjYXNlIDMwNjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBiMChlKXtyZXR1cm4gZS5raW5kPT09MjkxfHxlLmtpbmQ9PT0yOTN8fEZnKGUpfWZ1bmN0aW9uIE1rKGUpe3JldHVybiBlLmtpbmQ9PT0xODN8fGUua2luZD09PTIzM31mdW5jdGlvbiBMayhlKXtsZXQgdD12MDtmb3IobGV0IHIgb2YgZSl7aWYoIXIubGVuZ3RoKWNvbnRpbnVlO2xldCBhPTA7Zm9yKDthPHIubGVuZ3RoJiZhPHQmJlZpKHIuY2hhckNvZGVBdChhKSk7YSsrKTtpZihhPHQmJih0PWEpLHQ9PT0wKXJldHVybiAwfXJldHVybiB0PT09djA/dm9pZCAwOnR9ZnVuY3Rpb24gS24oZSl7cmV0dXJuIGUua2luZD09PTExfHxlLmtpbmQ9PT0xNX1mdW5jdGlvbiB1bChlKXtyZXR1cm4gZS5raW5kPT09MzMxfHxlLmtpbmQ9PT0zMzJ8fGUua2luZD09PTMzM31mdW5jdGlvbiBKayhlKXtsZXQgdD13aShlLnBhcmFtZXRlcnMpO3JldHVybiEhdCYmQTModCl9ZnVuY3Rpb24gQTMoZSl7bGV0IHQ9aF8oZSk/ZS50eXBlRXhwcmVzc2lvbiYmZS50eXBlRXhwcmVzc2lvbi50eXBlOmUudHlwZTtyZXR1cm4gZS5kb3REb3REb3RUb2tlbiE9PXZvaWQgMHx8ISF0JiZ0LmtpbmQ9PT0zMjV9dmFyIFZnLEhnLHYwLFJrPVZ0KHtcInNyYy9jb21waWxlci91dGlsaXRpZXNQdWJsaWMudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksVmc9WGQod18oMCwwKSwwKSxIZz1bXCJjc1wiLFwiZGVcIixcImVzXCIsXCJmclwiLFwiaXRcIixcImphXCIsXCJrb1wiLFwicGxcIixcInB0LWJyXCIsXCJydVwiLFwidHJcIixcInpoLWNuXCIsXCJ6aC10d1wiXSx2MD0xMDczNzQxODIzfX0pO2Z1bmN0aW9uIGprKGUsdCl7bGV0IHI9ZS5kZWNsYXJhdGlvbnM7aWYocil7Zm9yKGxldCBhIG9mIHIpaWYoYS5raW5kPT09dClyZXR1cm4gYX19ZnVuY3Rpb24gRmsoZSx0KXtyZXR1cm4gJHIoZS5kZWNsYXJhdGlvbnN8fCRlLHI9PnIua2luZD09PXQpfWZ1bmN0aW9uIEJrKGUpe2xldCB0PW5ldyBNYXA7aWYoZSlmb3IobGV0IHIgb2YgZSl0LnNldChyLmVzY2FwZWROYW1lLHIpO3JldHVybiB0fWZ1bmN0aW9uIFQwKGUpe3JldHVybihlLmZsYWdzJjMzNTU0NDMyKSE9PTB9ZnVuY3Rpb24gVWsoKXt2YXIgZT1cIlwiO2xldCB0PXI9PmUrPXI7cmV0dXJue2dldFRleHQ6KCk9PmUsd3JpdGU6dCxyYXdXcml0ZTp0LHdyaXRlS2V5d29yZDp0LHdyaXRlT3BlcmF0b3I6dCx3cml0ZVB1bmN0dWF0aW9uOnQsd3JpdGVTcGFjZTp0LHdyaXRlU3RyaW5nTGl0ZXJhbDp0LHdyaXRlTGl0ZXJhbDp0LHdyaXRlUGFyYW1ldGVyOnQsd3JpdGVQcm9wZXJ0eTp0LHdyaXRlU3ltYm9sOihyLGEpPT50KHIpLHdyaXRlVHJhaWxpbmdTZW1pY29sb246dCx3cml0ZUNvbW1lbnQ6dCxnZXRUZXh0UG9zOigpPT5lLmxlbmd0aCxnZXRMaW5lOigpPT4wLGdldENvbHVtbjooKT0+MCxnZXRJbmRlbnQ6KCk9PjAsaXNBdFN0YXJ0T2ZMaW5lOigpPT4hMSxoYXNUcmFpbGluZ0NvbW1lbnQ6KCk9PiExLGhhc1RyYWlsaW5nV2hpdGVzcGFjZTooKT0+ISFlLmxlbmd0aCYmVmkoZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpKSx3cml0ZUxpbmU6KCk9PmUrPVwiIFwiLGluY3JlYXNlSW5kZW50OlJuLGRlY3JlYXNlSW5kZW50OlJuLGNsZWFyOigpPT5lPVwiXCJ9fWZ1bmN0aW9uIHFrKGUsdCl7cmV0dXJuIGUuY29uZmlnRmlsZVBhdGghPT10LmNvbmZpZ0ZpbGVQYXRofHxrMyhlLHQpfWZ1bmN0aW9uIGszKGUsdCl7cmV0dXJuIEVfKGUsdCxtb2R1bGVSZXNvbHV0aW9uT3B0aW9uRGVjbGFyYXRpb25zKX1mdW5jdGlvbiB6ayhlLHQpe3JldHVybiBFXyhlLHQsb3B0aW9uc0FmZmVjdGluZ1Byb2dyYW1TdHJ1Y3R1cmUpfWZ1bmN0aW9uIEVfKGUsdCxyKXtyZXR1cm4gZSE9PXQmJnIuc29tZShhPT4hJDIoajAoZSxhKSxqMCh0LGEpKSl9ZnVuY3Rpb24gV2soZSx0KXtmb3IoOzspe2xldCByPXQoZSk7aWYocj09PVwicXVpdFwiKXJldHVybjtpZihyIT09dm9pZCAwKXJldHVybiByO2lmKGlpKGUpKXJldHVybjtlPWUucGFyZW50fX1mdW5jdGlvbiBWayhlLHQpe2xldCByPWUuZW50cmllcygpO2ZvcihsZXRbYSxfXW9mIHIpe2xldCBwPXQoXyxhKTtpZihwKXJldHVybiBwfX1mdW5jdGlvbiBIayhlLHQpe2xldCByPWUua2V5cygpO2ZvcihsZXQgYSBvZiByKXtsZXQgXz10KGEpO2lmKF8pcmV0dXJuIF99fWZ1bmN0aW9uIEdrKGUsdCl7ZS5mb3JFYWNoKChyLGEpPT57dC5zZXQoYSxyKX0pfWZ1bmN0aW9uIFhrKGUpe2xldCB0PVpzLmdldFRleHQoKTt0cnl7cmV0dXJuIGUoWnMpLFpzLmdldFRleHQoKX1maW5hbGx5e1pzLmNsZWFyKCksWnMud3JpdGVLZXl3b3JkKHQpfX1mdW5jdGlvbiBvbShlKXtyZXR1cm4gZS5lbmQtZS5wb3N9ZnVuY3Rpb24gJGsoZSx0LHIpe3ZhciBhLF87cmV0dXJuKF89KGE9ZT09bnVsbD92b2lkIDA6ZS5yZXNvbHZlZE1vZHVsZXMpPT1udWxsP3ZvaWQgMDphLmdldCh0LHIpKT09bnVsbD92b2lkIDA6Xy5yZXNvbHZlZE1vZHVsZX1mdW5jdGlvbiBRayhlLHQscixhKXtlLnJlc29sdmVkTW9kdWxlc3x8KGUucmVzb2x2ZWRNb2R1bGVzPWNyZWF0ZU1vZGVBd2FyZUNhY2hlKCkpLGUucmVzb2x2ZWRNb2R1bGVzLnNldCh0LGEscil9ZnVuY3Rpb24gWWsoZSx0LHIsYSl7ZS5yZXNvbHZlZFR5cGVSZWZlcmVuY2VEaXJlY3RpdmVOYW1lc3x8KGUucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlTmFtZXM9Y3JlYXRlTW9kZUF3YXJlQ2FjaGUoKSksZS5yZXNvbHZlZFR5cGVSZWZlcmVuY2VEaXJlY3RpdmVOYW1lcy5zZXQodCxhLHIpfWZ1bmN0aW9uIEtrKGUsdCxyKXt2YXIgYSxfO3JldHVybihfPShhPWU9PW51bGw/dm9pZCAwOmUucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlTmFtZXMpPT1udWxsP3ZvaWQgMDphLmdldCh0LHIpKT09bnVsbD92b2lkIDA6Xy5yZXNvbHZlZFR5cGVSZWZlcmVuY2VEaXJlY3RpdmV9ZnVuY3Rpb24gWmsoZSx0KXtyZXR1cm4gZS5wYXRoPT09dC5wYXRoJiYhZS5wcmVwZW5kPT0hdC5wcmVwZW5kJiYhZS5jaXJjdWxhcj09IXQuY2lyY3VsYXJ9ZnVuY3Rpb24gZUQoZSx0KXtyZXR1cm4gZT09PXR8fGUucmVzb2x2ZWRNb2R1bGU9PT10LnJlc29sdmVkTW9kdWxlfHwhIWUucmVzb2x2ZWRNb2R1bGUmJiEhdC5yZXNvbHZlZE1vZHVsZSYmZS5yZXNvbHZlZE1vZHVsZS5pc0V4dGVybmFsTGlicmFyeUltcG9ydD09PXQucmVzb2x2ZWRNb2R1bGUuaXNFeHRlcm5hbExpYnJhcnlJbXBvcnQmJmUucmVzb2x2ZWRNb2R1bGUuZXh0ZW5zaW9uPT09dC5yZXNvbHZlZE1vZHVsZS5leHRlbnNpb24mJmUucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZT09PXQucmVzb2x2ZWRNb2R1bGUucmVzb2x2ZWRGaWxlTmFtZSYmZS5yZXNvbHZlZE1vZHVsZS5vcmlnaW5hbFBhdGg9PT10LnJlc29sdmVkTW9kdWxlLm9yaWdpbmFsUGF0aCYmckQoZS5yZXNvbHZlZE1vZHVsZS5wYWNrYWdlSWQsdC5yZXNvbHZlZE1vZHVsZS5wYWNrYWdlSWQpJiZlLm5vZGUxMFJlc3VsdD09PXQubm9kZTEwUmVzdWx0fWZ1bmN0aW9uIHREKGUsdCxyLGEsXyl7dmFyIHAsZDtsZXQgaD0oZD0ocD1lLnJlc29sdmVkTW9kdWxlcyk9PW51bGw/dm9pZCAwOnAuZ2V0KHIsYSkpPT1udWxsP3ZvaWQgMDpkLm5vZGUxMFJlc3VsdCxsPWg/dGwodm9pZCAwLFUuVGhlcmVfYXJlX3R5cGVzX2F0XzBfYnV0X3RoaXNfcmVzdWx0X2NvdWxkX25vdF9iZV9yZXNvbHZlZF93aGVuX3Jlc3BlY3RpbmdfcGFja2FnZV9qc29uX2V4cG9ydHNfVGhlXzFfbGlicmFyeV9tYXlfbmVlZF90b191cGRhdGVfaXRzX3BhY2thZ2VfanNvbl9vcl90eXBpbmdzLGgsaC5pbmRleE9mKG5vZGVNb2R1bGVzUGF0aFBhcnQrXCJAdHlwZXMvXCIpPi0xP2BAdHlwZXMvJHttYW5nbGVTY29wZWRQYWNrYWdlTmFtZShfKX1gOl8pOnQudHlwZXNQYWNrYWdlRXhpc3RzKF8pP3RsKHZvaWQgMCxVLklmX3RoZV8wX3BhY2thZ2VfYWN0dWFsbHlfZXhwb3Nlc190aGlzX21vZHVsZV9jb25zaWRlcl9zZW5kaW5nX2FfcHVsbF9yZXF1ZXN0X3RvX2FtZW5kX2h0dHBzX0NvbG9uX1NsYXNoX1NsYXNoZ2l0aHViX2NvbV9TbGFzaERlZmluaXRlbHlUeXBlZF9TbGFzaERlZmluaXRlbHlUeXBlZF9TbGFzaHRyZWVfU2xhc2htYXN0ZXJfU2xhc2h0eXBlc19TbGFzaF8xLF8sbWFuZ2xlU2NvcGVkUGFja2FnZU5hbWUoXykpOnQucGFja2FnZUJ1bmRsZXNUeXBlcyhfKT90bCh2b2lkIDAsVS5JZl90aGVfMF9wYWNrYWdlX2FjdHVhbGx5X2V4cG9zZXNfdGhpc19tb2R1bGVfdHJ5X2FkZGluZ19hX25ld19kZWNsYXJhdGlvbl9kX3RzX2ZpbGVfY29udGFpbmluZ19kZWNsYXJlX21vZHVsZV8xLF8scik6dGwodm9pZCAwLFUuVHJ5X25wbV9pX3NhdmVfZGV2X3R5cGVzX1NsYXNoXzFfaWZfaXRfZXhpc3RzX29yX2FkZF9hX25ld19kZWNsYXJhdGlvbl9kX3RzX2ZpbGVfY29udGFpbmluZ19kZWNsYXJlX21vZHVsZV8wLHIsbWFuZ2xlU2NvcGVkUGFja2FnZU5hbWUoXykpO3JldHVybiBsJiYobC5yZXBvcHVsYXRlSW5mbz0oKT0+KHttb2R1bGVSZWZlcmVuY2U6cixtb2RlOmEscGFja2FnZU5hbWU6Xz09PXI/dm9pZCAwOl99KSksbH1mdW5jdGlvbiByRChlLHQpe3JldHVybiBlPT09dHx8ISFlJiYhIXQmJmUubmFtZT09PXQubmFtZSYmZS5zdWJNb2R1bGVOYW1lPT09dC5zdWJNb2R1bGVOYW1lJiZlLnZlcnNpb249PT10LnZlcnNpb259ZnVuY3Rpb24gRDMoe25hbWU6ZSxzdWJNb2R1bGVOYW1lOnR9KXtyZXR1cm4gdD9gJHtlfS8ke3R9YDplfWZ1bmN0aW9uIG5EKGUpe3JldHVybmAke0QzKGUpfUAke2UudmVyc2lvbn1gfWZ1bmN0aW9uIGlEKGUsdCl7cmV0dXJuIGU9PT10fHxlLnJlc29sdmVkVHlwZVJlZmVyZW5jZURpcmVjdGl2ZT09PXQucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlfHwhIWUucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlJiYhIXQucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlJiZlLnJlc29sdmVkVHlwZVJlZmVyZW5jZURpcmVjdGl2ZS5yZXNvbHZlZEZpbGVOYW1lPT09dC5yZXNvbHZlZFR5cGVSZWZlcmVuY2VEaXJlY3RpdmUucmVzb2x2ZWRGaWxlTmFtZSYmISFlLnJlc29sdmVkVHlwZVJlZmVyZW5jZURpcmVjdGl2ZS5wcmltYXJ5PT0hIXQucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlLnByaW1hcnkmJmUucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlLm9yaWdpbmFsUGF0aD09PXQucmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlLm9yaWdpbmFsUGF0aH1mdW5jdGlvbiBhRChlLHQscixhLF8scCl7Ti5hc3NlcnQoZS5sZW5ndGg9PT1yLmxlbmd0aCk7Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspe2xldCBoPXJbZF0sbD1lW2RdLHY9cC5nZXROYW1lKGwpLHk9cC5nZXRNb2RlKGwsdCksQz1hJiZhLmdldCh2LHkpO2lmKEM/IWh8fCFfKEMsaCk6aClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiB4bChlKXtyZXR1cm4gb0QoZSksKGUuZmxhZ3MmMTA0ODU3NikhPT0wfWZ1bmN0aW9uIG9EKGUpe2UuZmxhZ3MmMjA5NzE1Mnx8KChlLmZsYWdzJjI2MjE0NHx8QnQoZSx4bCkpJiYoZS5mbGFnc3w9MTA0ODU3NiksZS5mbGFnc3w9MjA5NzE1Mil9ZnVuY3Rpb24gcmkoZSl7Zm9yKDtlJiZlLmtpbmQhPT0zMTI7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9ZnVuY3Rpb24gc0QoZSl7cmV0dXJuIHJpKGUudmFsdWVEZWNsYXJhdGlvbnx8QjMoZSkpfWZ1bmN0aW9uIF9EKGUsdCl7cmV0dXJuISFlJiYoZS5zY3JpcHRLaW5kPT09MXx8ZS5zY3JpcHRLaW5kPT09MikmJiFlLmNoZWNrSnNEaXJlY3RpdmUmJnQ9PT12b2lkIDB9ZnVuY3Rpb24gY0QoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNDE6Y2FzZSAyNjk6Y2FzZSAyNDg6Y2FzZSAyNDk6Y2FzZSAyNTA6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbEQoZSx0KXtyZXR1cm4gTi5hc3NlcnQoZT49MCksSWEodClbZV19ZnVuY3Rpb24gdUQoZSl7bGV0IHQ9cmkoZSkscj10byh0LGUucG9zKTtyZXR1cm5gJHt0LmZpbGVOYW1lfSgke3IubGluZSsxfSwke3IuY2hhcmFjdGVyKzF9KWB9ZnVuY3Rpb24gUDMoZSx0KXtOLmFzc2VydChlPj0wKTtsZXQgcj1JYSh0KSxhPWUsXz10LnRleHQ7aWYoYSsxPT09ci5sZW5ndGgpcmV0dXJuIF8ubGVuZ3RoLTE7e2xldCBwPXJbYV0sZD1yW2ErMV0tMTtmb3IoTi5hc3NlcnQobXIoXy5jaGFyQ29kZUF0KGQpKSk7cDw9ZCYmbXIoXy5jaGFyQ29kZUF0KGQpKTspZC0tO3JldHVybiBkfX1mdW5jdGlvbiBJMyhlLHQscil7cmV0dXJuIShyJiZyKHQpKSYmIWUuaWRlbnRpZmllcnMuaGFzKHQpfWZ1bmN0aW9uIHppKGUpe3JldHVybiBlPT09dm9pZCAwPyEwOmUucG9zPT09ZS5lbmQmJmUucG9zPj0wJiZlLmtpbmQhPT0xfWZ1bmN0aW9uIHdsKGUpe3JldHVybiF6aShlKX1mdW5jdGlvbiBwRChlLHQpe3JldHVybiBObyhlKT90PT09ZS5leHByZXNzaW9uOmV1KGUpP3Q9PT1lLm1vZGlmaWVyczpabChlKT90PT09ZS5pbml0aWFsaXplcjpvbyhlKT90PT09ZS5xdWVzdGlvblRva2VuJiZsMyhlKTpfcyhlKT90PT09ZS5tb2RpZmllcnN8fHQ9PT1lLnF1ZXN0aW9uVG9rZW58fHQ9PT1lLmV4Y2xhbWF0aW9uVG9rZW58fEdzKGUubW9kaWZpZXJzLHQsT2YpOl91KGUpP3Q9PT1lLmVxdWFsc1Rva2VufHx0PT09ZS5tb2RpZmllcnN8fHQ9PT1lLnF1ZXN0aW9uVG9rZW58fHQ9PT1lLmV4Y2xhbWF0aW9uVG9rZW58fEdzKGUubW9kaWZpZXJzLHQsT2YpOmRfKGUpP3Q9PT1lLmV4Y2xhbWF0aW9uVG9rZW46Sl8oZSk/dD09PWUudHlwZVBhcmFtZXRlcnN8fHQ9PT1lLnR5cGV8fEdzKGUudHlwZVBhcmFtZXRlcnMsdCxObyk6bV8oZSk/dD09PWUudHlwZVBhcmFtZXRlcnN8fEdzKGUudHlwZVBhcmFtZXRlcnMsdCxObyk6UW8oZSk/dD09PWUudHlwZVBhcmFtZXRlcnN8fHQ9PT1lLnR5cGV8fEdzKGUudHlwZVBhcmFtZXRlcnMsdCxObyk6eDYoZSk/dD09PWUubW9kaWZpZXJzfHxHcyhlLm1vZGlmaWVycyx0LE9mKTohMX1mdW5jdGlvbiBHcyhlLHQscil7cmV0dXJuIWV8fHp0KHQpfHwhcih0KT8hMTplcyhlLHQpfWZ1bmN0aW9uIE4zKGUsdCxyKXtpZih0PT09dm9pZCAwfHx0Lmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IGE9MDtmb3IoO2E8ZS5sZW5ndGgmJnIoZVthXSk7KythKTtyZXR1cm4gZS5zcGxpY2UoYSwwLC4uLnQpLGV9ZnVuY3Rpb24gTzMoZSx0LHIpe2lmKHQ9PT12b2lkIDApcmV0dXJuIGU7bGV0IGE9MDtmb3IoO2E8ZS5sZW5ndGgmJnIoZVthXSk7KythKTtyZXR1cm4gZS5zcGxpY2UoYSwwLHQpLGV9ZnVuY3Rpb24gTTMoZSl7cmV0dXJuIEVhKGUpfHwhISh0aShlKSYyMDk3MTUyKX1mdW5jdGlvbiBmRChlLHQpe3JldHVybiBOMyhlLHQsRWEpfWZ1bmN0aW9uIGREKGUsdCl7cmV0dXJuIE4zKGUsdCxNMyl9ZnVuY3Rpb24gbUQoZSx0KXtyZXR1cm4gTzMoZSx0LEVhKX1mdW5jdGlvbiBoRChlLHQpe3JldHVybiBPMyhlLHQsTTMpfWZ1bmN0aW9uIHlEKGUsdCxyKXtpZihlLmNoYXJDb2RlQXQodCsxKT09PTQ3JiZ0KzI8ciYmZS5jaGFyQ29kZUF0KHQrMik9PT00Nyl7bGV0IGE9ZS5zdWJzdHJpbmcodCxyKTtyZXR1cm4hIShZMi50ZXN0KGEpfHxLMi50ZXN0KGEpfHx5eC50ZXN0KGEpfHxteC50ZXN0KGEpfHxoeC50ZXN0KGEpfHxneC50ZXN0KGEpKX1yZXR1cm4hMX1mdW5jdGlvbiBMMyhlLHQpe3JldHVybiBlLmNoYXJDb2RlQXQodCsxKT09PTQyJiZlLmNoYXJDb2RlQXQodCsyKT09PTMzfWZ1bmN0aW9uIGdEKGUsdCl7bGV0IHI9bmV3IE1hcCh0Lm1hcChkPT5bYCR7dG8oZSxkLnJhbmdlLmVuZCkubGluZX1gLGRdKSksYT1uZXcgTWFwO3JldHVybntnZXRVbnVzZWRFeHBlY3RhdGlvbnM6XyxtYXJrVXNlZDpwfTtmdW5jdGlvbiBfKCl7cmV0dXJuIFJkKHIuZW50cmllcygpKS5maWx0ZXIoKFtkLGhdKT0+aC50eXBlPT09MCYmIWEuZ2V0KGQpKS5tYXAoKFtkLGhdKT0+aCl9ZnVuY3Rpb24gcChkKXtyZXR1cm4gci5oYXMoYCR7ZH1gKT8oYS5zZXQoYCR7ZH1gLCEwKSwhMCk6ITF9fWZ1bmN0aW9uIEdvKGUsdCxyKXtyZXR1cm4gemkoZSk/ZS5wb3M6emcoZSl8fGUua2luZD09PTEyP050KCh0fHxyaShlKSkudGV4dCxlLnBvcywhMSwhMCk6ciYmV2koZSk/R28oZS5qc0RvY1swXSx0KTplLmtpbmQ9PT0zNTgmJmUuX2NoaWxkcmVuLmxlbmd0aD4wP0dvKGUuX2NoaWxkcmVuWzBdLHQscik6TnQoKHR8fHJpKGUpKS50ZXh0LGUucG9zLCExLCExLG5UKGUpKX1mdW5jdGlvbiBiRChlLHQpe2xldCByPSF6aShlKSYmcV8oZSk/aWcoZS5tb2RpZmllcnMsTF8pOnZvaWQgMDtyZXR1cm4gcj9OdCgodHx8cmkoZSkpLnRleHQsci5lbmQpOkdvKGUsdCl9ZnVuY3Rpb24gWG8oZSx0LHI9ITEpe3JldHVybiB0XyhlLnRleHQsdCxyKX1mdW5jdGlvbiB2RChlKXtyZXR1cm4hIUtyKGUsYjgpfWZ1bmN0aW9uIEozKGUpe3JldHVybiEhKEJfKGUpJiZlLmV4cG9ydENsYXVzZSYmSW0oZS5leHBvcnRDbGF1c2UpJiZlLmV4cG9ydENsYXVzZS5uYW1lLmVzY2FwZWRUZXh0PT09XCJkZWZhdWx0XCIpfWZ1bmN0aW9uIHRfKGUsdCxyPSExKXtpZih6aSh0KSlyZXR1cm5cIlwiO2xldCBhPWUuc3Vic3RyaW5nKHI/dC5wb3M6TnQoZSx0LnBvcyksdC5lbmQpO3JldHVybiB2RCh0KSYmKGE9YS5zcGxpdCgvXFxyXFxufFxcbnxcXHIvKS5tYXAoXz0+Z2woXy5yZXBsYWNlKC9eXFxzKlxcKi8sXCJcIikpKS5qb2luKGBcbmApKSxhfWZ1bmN0aW9uIHNtKGUsdD0hMSl7cmV0dXJuIFhvKHJpKGUpLGUsdCl9ZnVuY3Rpb24gVEQoZSl7cmV0dXJuIGUucG9zfWZ1bmN0aW9uIFNEKGUsdCl7cmV0dXJuIE1sKGUsdCxURCxrcil9ZnVuY3Rpb24gdGkoZSl7bGV0IHQ9ZS5lbWl0Tm9kZTtyZXR1cm4gdCYmdC5mbGFnc3x8MH1mdW5jdGlvbiB4RChlKXtsZXQgdD1lLmVtaXROb2RlO3JldHVybiB0JiZ0LmludGVybmFsRmxhZ3N8fDB9ZnVuY3Rpb24gd0QoZSx0LHIpe2lmKHQmJkNEKGUscikpcmV0dXJuIFhvKHQsZSk7c3dpdGNoKGUua2luZCl7Y2FzZSAxMTp7bGV0IGE9ciYyP3pUOnImMXx8dGkoZSkmMTY3NzcyMTY/dmQ6VGQ7cmV0dXJuIGUuc2luZ2xlUXVvdGU/XCInXCIrYShlLnRleHQsMzkpK1wiJ1wiOidcIicrYShlLnRleHQsMzQpKydcIid9Y2FzZSAxNTpjYXNlIDE2OmNhc2UgMTc6Y2FzZSAxODp7bGV0IGE9ciYxfHx0aShlKSYxNjc3NzIxNj92ZDpUZCxfPWUucmF3VGV4dD8/YU4oYShlLnRleHQsOTYpKTtzd2l0Y2goZS5raW5kKXtjYXNlIDE1OnJldHVyblwiYFwiK18rXCJgXCI7Y2FzZSAxNjpyZXR1cm5cImBcIitfK1wiJHtcIjtjYXNlIDE3OnJldHVyblwifVwiK18rXCIke1wiO2Nhc2UgMTg6cmV0dXJuXCJ9XCIrXytcImBcIn1icmVha31jYXNlIDk6Y2FzZSAxMDpyZXR1cm4gZS50ZXh0O2Nhc2UgMTQ6cmV0dXJuIHImNCYmZS5pc1VudGVybWluYXRlZD9lLnRleHQrKGUudGV4dC5jaGFyQ29kZUF0KGUudGV4dC5sZW5ndGgtMSk9PT05Mj9cIiAvXCI6XCIvXCIpOmUudGV4dH1yZXR1cm4gTi5mYWlsKGBMaXRlcmFsIGtpbmQgJyR7ZS5raW5kfScgbm90IGFjY291bnRlZCBmb3IuYCl9ZnVuY3Rpb24gQ0QoZSx0KXtpZihUYShlKXx8IWUucGFyZW50fHx0JjQmJmUuaXNVbnRlcm1pbmF0ZWQpcmV0dXJuITE7aWYobG8oZSkpe2lmKGUubnVtZXJpY0xpdGVyYWxGbGFncyYyNjY1NilyZXR1cm4hMTtpZihlLm51bWVyaWNMaXRlcmFsRmxhZ3MmNTEyKXJldHVybiEhKHQmOCl9cmV0dXJuIW82KGUpfWZ1bmN0aW9uIEVEKGUpe3JldHVybiBiXyhlKT8nXCInK1RkKGUpKydcIic6XCJcIitlfWZ1bmN0aW9uIEFEKGUpe3JldHVybiBUXyhlKS5yZXBsYWNlKC9eKFxcZCkvLFwiXyQxXCIpLnJlcGxhY2UoL1xcVy9nLFwiX1wiKX1mdW5jdGlvbiBrRChlKXtyZXR1cm4oQ18oZSkmNykhPT0wfHxSMyhlKX1mdW5jdGlvbiBSMyhlKXtsZXQgdD1obShlKTtyZXR1cm4gdC5raW5kPT09MjYwJiZ0LnBhcmVudC5raW5kPT09Mjk5fWZ1bmN0aW9uIF9tKGUpe3JldHVybiBZaShlKSYmKGUubmFtZS5raW5kPT09MTF8fGNtKGUpKX1mdW5jdGlvbiBERChlKXtyZXR1cm4gWWkoZSkmJmUubmFtZS5raW5kPT09MTF9ZnVuY3Rpb24gUEQoZSl7cmV0dXJuIFlpKGUpJiZtbihlLm5hbWUpfWZ1bmN0aW9uIGozKGUpe3JldHVybiBZaShlKXx8RWUoZSl9ZnVuY3Rpb24gSUQoZSl7cmV0dXJuIE5EKGUudmFsdWVEZWNsYXJhdGlvbil9ZnVuY3Rpb24gTkQoZSl7cmV0dXJuISFlJiZlLmtpbmQ9PT0yNjcmJiFlLmJvZHl9ZnVuY3Rpb24gT0QoZSl7cmV0dXJuIGUua2luZD09PTMxMnx8ZS5raW5kPT09MjY3fHxybShlKX1mdW5jdGlvbiBjbShlKXtyZXR1cm4hIShlLmZsYWdzJjIwNDgpfWZ1bmN0aW9uIEdnKGUpe3JldHVybiBfbShlKSYmRjMoZSl9ZnVuY3Rpb24gRjMoZSl7c3dpdGNoKGUucGFyZW50LmtpbmQpe2Nhc2UgMzEyOnJldHVybiBabyhlLnBhcmVudCk7Y2FzZSAyNjg6cmV0dXJuIF9tKGUucGFyZW50LnBhcmVudCkmJmlpKGUucGFyZW50LnBhcmVudC5wYXJlbnQpJiYhWm8oZS5wYXJlbnQucGFyZW50LnBhcmVudCl9cmV0dXJuITF9ZnVuY3Rpb24gQjMoZSl7dmFyIHQ7cmV0dXJuKHQ9ZS5kZWNsYXJhdGlvbnMpPT1udWxsP3ZvaWQgMDp0LmZpbmQocj0+IUdnKHIpJiYhKFlpKHIpJiZjbShyKSkpfWZ1bmN0aW9uIE1EKGUpe3JldHVybiBlPT09MXx8ZT09PTEwMHx8ZT09PTE5OX1mdW5jdGlvbiBYZyhlLHQpe3JldHVybiBabyhlKXx8TUQobmkodCkpJiYhIWUuY29tbW9uSnNNb2R1bGVJbmRpY2F0b3J9ZnVuY3Rpb24gTEQoZSx0KXtzd2l0Y2goZS5zY3JpcHRLaW5kKXtjYXNlIDE6Y2FzZSAzOmNhc2UgMjpjYXNlIDQ6YnJlYWs7ZGVmYXVsdDpyZXR1cm4hMX1yZXR1cm4gZS5pc0RlY2xhcmF0aW9uRmlsZT8hMTpXMih0LFwiYWx3YXlzU3RyaWN0XCIpfHxJOChlLnN0YXRlbWVudHMpPyEwOlpvKGUpfHxCMih0KT9uaSh0KT49NT8hMDohdC5ub0ltcGxpY2l0VXNlU3RyaWN0OiExfWZ1bmN0aW9uIEpEKGUpe3JldHVybiEhKGUuZmxhZ3MmMzM1NTQ0MzIpfHxncihlLDIpfWZ1bmN0aW9uIFUzKGUsdCl7c3dpdGNoKGUua2luZCl7Y2FzZSAzMTI6Y2FzZSAyNjk6Y2FzZSAyOTk6Y2FzZSAyNjc6Y2FzZSAyNDg6Y2FzZSAyNDk6Y2FzZSAyNTA6Y2FzZSAxNzY6Y2FzZSAxNzQ6Y2FzZSAxNzc6Y2FzZSAxNzg6Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAyMTk6Y2FzZSAxNzI6Y2FzZSAxNzU6cmV0dXJuITA7Y2FzZSAyNDE6cmV0dXJuIXJtKHQpfXJldHVybiExfWZ1bmN0aW9uIFJEKGUpe3N3aXRjaChOLnR5cGUoZSksZS5raW5kKXtjYXNlIDM0NTpjYXNlIDM1MzpjYXNlIDMzMDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiBxMyhlKX19ZnVuY3Rpb24gcTMoZSl7c3dpdGNoKE4udHlwZShlKSxlLmtpbmQpe2Nhc2UgMTc5OmNhc2UgMTgwOmNhc2UgMTczOmNhc2UgMTgxOmNhc2UgMTg0OmNhc2UgMTg1OmNhc2UgMzI0OmNhc2UgMjYzOmNhc2UgMjMxOmNhc2UgMjY0OmNhc2UgMjY1OmNhc2UgMzUyOmNhc2UgMjYyOmNhc2UgMTc0OmNhc2UgMTc2OmNhc2UgMTc3OmNhc2UgMTc4OmNhc2UgMjE4OmNhc2UgMjE5OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uICRnKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjcyOmNhc2UgMjcxOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGpEKGUpe3JldHVybiAkZyhlKXx8cG0oZSl9ZnVuY3Rpb24gRkQoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNzI6Y2FzZSAyNzE6Y2FzZSAyNDM6Y2FzZSAyNjM6Y2FzZSAyNjI6Y2FzZSAyNjc6Y2FzZSAyNjU6Y2FzZSAyNjQ6Y2FzZSAyNjY6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gQkQoZSl7cmV0dXJuIGxtKGUpfHxZaShlKXx8cnUoZSl8fHQyKGUpfWZ1bmN0aW9uIGxtKGUpe3JldHVybiAkZyhlKXx8Ql8oZSl9ZnVuY3Rpb24gVUQoZSl7cmV0dXJuIEtyKGUucGFyZW50LHQ9PiEhKGdldENvbnRhaW5lckZsYWdzKHQpJjEpKX1mdW5jdGlvbiBTMChlKXtyZXR1cm4gS3IoZS5wYXJlbnQsdD0+VTModCx0LnBhcmVudCkpfWZ1bmN0aW9uIHFEKGUsdCl7bGV0IHI9UzAoZSk7Zm9yKDtyOyl0KHIpLHI9UzAocil9ZnVuY3Rpb24gejMoZSl7cmV0dXJuIWV8fG9tKGUpPT09MD9cIihNaXNzaW5nKVwiOnNtKGUpfWZ1bmN0aW9uIHpEKGUpe3JldHVybiBlLmRlY2xhcmF0aW9uP3ozKGUuZGVjbGFyYXRpb24ucGFyYW1ldGVyc1swXS5uYW1lKTp2b2lkIDB9ZnVuY3Rpb24gV0QoZSl7cmV0dXJuIGUua2luZD09PTE2NyYmIVFpKGUuZXhwcmVzc2lvbil9ZnVuY3Rpb24gUWcoZSl7dmFyIHQ7c3dpdGNoKGUua2luZCl7Y2FzZSA4MDpjYXNlIDgxOnJldHVybih0PWUuZW1pdE5vZGUpIT1udWxsJiZ0LmF1dG9HZW5lcmF0ZT92b2lkIDA6ZS5lc2NhcGVkVGV4dDtjYXNlIDExOmNhc2UgOTpjYXNlIDE1OnJldHVybiBNbihlLnRleHQpO2Nhc2UgMTY3OnJldHVybiBRaShlLmV4cHJlc3Npb24pP01uKGUuZXhwcmVzc2lvbi50ZXh0KTp2b2lkIDA7Y2FzZSAyOTU6cmV0dXJuIFlsKGUpO2RlZmF1bHQ6cmV0dXJuIE4uYXNzZXJ0TmV2ZXIoZSl9fWZ1bmN0aW9uIFZEKGUpe3JldHVybiBOLmNoZWNrRGVmaW5lZChRZyhlKSl9ZnVuY3Rpb24gdmkoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAxMTA6cmV0dXJuXCJ0aGlzXCI7Y2FzZSA4MTpjYXNlIDgwOnJldHVybiBvbShlKT09PTA/T3QoZSk6c20oZSk7Y2FzZSAxNjY6cmV0dXJuIHZpKGUubGVmdCkrXCIuXCIrdmkoZS5yaWdodCk7Y2FzZSAyMTE6cmV0dXJuIEVlKGUubmFtZSl8fGpyKGUubmFtZSk/dmkoZS5leHByZXNzaW9uKStcIi5cIit2aShlLm5hbWUpOk4uYXNzZXJ0TmV2ZXIoZS5uYW1lKTtjYXNlIDMxODpyZXR1cm4gdmkoZS5sZWZ0KSt2aShlLnJpZ2h0KTtjYXNlIDI5NTpyZXR1cm4gdmkoZS5uYW1lc3BhY2UpK1wiOlwiK3ZpKGUubmFtZSk7ZGVmYXVsdDpyZXR1cm4gTi5hc3NlcnROZXZlcihlKX19ZnVuY3Rpb24gSEQoZSx0LC4uLnIpe2xldCBhPXJpKGUpO3JldHVybiBXMyhhLGUsdCwuLi5yKX1mdW5jdGlvbiBHRChlLHQsciwuLi5hKXtsZXQgXz1OdChlLnRleHQsdC5wb3MpO3JldHVybiBqMihlLF8sdC5lbmQtXyxyLC4uLmEpfWZ1bmN0aW9uIFczKGUsdCxyLC4uLmEpe2xldCBfPVpnKGUsdCk7cmV0dXJuIGoyKGUsXy5zdGFydCxfLmxlbmd0aCxyLC4uLmEpfWZ1bmN0aW9uIFhEKGUsdCxyLGEpe2xldCBfPVpnKGUsdCk7cmV0dXJuIEtnKGUsXy5zdGFydCxfLmxlbmd0aCxyLGEpfWZ1bmN0aW9uICREKGUsdCxyLGEpe2xldCBfPU50KGUudGV4dCx0LnBvcyk7cmV0dXJuIEtnKGUsXyx0LmVuZC1fLHIsYSl9ZnVuY3Rpb24gWWcoZSx0LHIpe04uYXNzZXJ0R3JlYXRlclRoYW5PckVxdWFsKHQsMCksTi5hc3NlcnRHcmVhdGVyVGhhbk9yRXF1YWwociwwKSxlJiYoTi5hc3NlcnRMZXNzVGhhbk9yRXF1YWwodCxlLnRleHQubGVuZ3RoKSxOLmFzc2VydExlc3NUaGFuT3JFcXVhbCh0K3IsZS50ZXh0Lmxlbmd0aCkpfWZ1bmN0aW9uIEtnKGUsdCxyLGEsXyl7cmV0dXJuIFlnKGUsdCxyKSx7ZmlsZTplLHN0YXJ0OnQsbGVuZ3RoOnIsY29kZTphLmNvZGUsY2F0ZWdvcnk6YS5jYXRlZ29yeSxtZXNzYWdlVGV4dDphLm5leHQ/YTphLm1lc3NhZ2VUZXh0LHJlbGF0ZWRJbmZvcm1hdGlvbjpffX1mdW5jdGlvbiBRRChlLHQscil7cmV0dXJue2ZpbGU6ZSxzdGFydDowLGxlbmd0aDowLGNvZGU6dC5jb2RlLGNhdGVnb3J5OnQuY2F0ZWdvcnksbWVzc2FnZVRleHQ6dC5uZXh0P3Q6dC5tZXNzYWdlVGV4dCxyZWxhdGVkSW5mb3JtYXRpb246cn19ZnVuY3Rpb24gWUQoZSl7cmV0dXJuIHR5cGVvZiBlLm1lc3NhZ2VUZXh0PT1cInN0cmluZ1wiP3tjb2RlOmUuY29kZSxjYXRlZ29yeTplLmNhdGVnb3J5LG1lc3NhZ2VUZXh0OmUubWVzc2FnZVRleHQsbmV4dDplLm5leHR9OmUubWVzc2FnZVRleHR9ZnVuY3Rpb24gS0QoZSx0LHIpe3JldHVybntmaWxlOmUsc3RhcnQ6dC5wb3MsbGVuZ3RoOnQuZW5kLXQucG9zLGNvZGU6ci5jb2RlLGNhdGVnb3J5OnIuY2F0ZWdvcnksbWVzc2FnZVRleHQ6ci5tZXNzYWdlfX1mdW5jdGlvbiBZcyhlLHQpe2xldCByPW5zKGUubGFuZ3VhZ2VWZXJzaW9uLCEwLGUubGFuZ3VhZ2VWYXJpYW50LGUudGV4dCx2b2lkIDAsdCk7ci5zY2FuKCk7bGV0IGE9ci5nZXRUb2tlblN0YXJ0KCk7cmV0dXJuIEhpKGEsci5nZXRUb2tlbkVuZCgpKX1mdW5jdGlvbiBaRChlLHQpe2xldCByPW5zKGUubGFuZ3VhZ2VWZXJzaW9uLCEwLGUubGFuZ3VhZ2VWYXJpYW50LGUudGV4dCx2b2lkIDAsdCk7cmV0dXJuIHIuc2NhbigpLHIuZ2V0VG9rZW4oKX1mdW5jdGlvbiBlUChlLHQpe2xldCByPU50KGUudGV4dCx0LnBvcyk7aWYodC5ib2R5JiZ0LmJvZHkua2luZD09PTI0MSl7bGV0e2xpbmU6YX09dG8oZSx0LmJvZHkucG9zKSx7bGluZTpffT10byhlLHQuYm9keS5lbmQpO2lmKGE8XylyZXR1cm4gd18ocixQMyhhLGUpLXIrMSl9cmV0dXJuIEhpKHIsdC5lbmQpfWZ1bmN0aW9uIFpnKGUsdCl7bGV0IHI9dDtzd2l0Y2godC5raW5kKXtjYXNlIDMxMjp7bGV0IHA9TnQoZS50ZXh0LDAsITEpO3JldHVybiBwPT09ZS50ZXh0Lmxlbmd0aD93XygwLDApOllzKGUscCl9Y2FzZSAyNjA6Y2FzZSAyMDg6Y2FzZSAyNjM6Y2FzZSAyMzE6Y2FzZSAyNjQ6Y2FzZSAyNjc6Y2FzZSAyNjY6Y2FzZSAzMDY6Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAxNzQ6Y2FzZSAxNzc6Y2FzZSAxNzg6Y2FzZSAyNjU6Y2FzZSAxNzI6Y2FzZSAxNzE6Y2FzZSAyNzQ6cj10Lm5hbWU7YnJlYWs7Y2FzZSAyMTk6cmV0dXJuIGVQKGUsdCk7Y2FzZSAyOTY6Y2FzZSAyOTc6e2xldCBwPU50KGUudGV4dCx0LnBvcyksZD10LnN0YXRlbWVudHMubGVuZ3RoPjA/dC5zdGF0ZW1lbnRzWzBdLnBvczp0LmVuZDtyZXR1cm4gSGkocCxkKX1jYXNlIDI1MzpjYXNlIDIyOTp7bGV0IHA9TnQoZS50ZXh0LHQucG9zKTtyZXR1cm4gWXMoZSxwKX1jYXNlIDIzODp7bGV0IHA9TnQoZS50ZXh0LHQuZXhwcmVzc2lvbi5lbmQpO3JldHVybiBZcyhlLHApfWNhc2UgMzU3OntsZXQgcD1OdChlLnRleHQsdC50YWdOYW1lLnBvcyk7cmV0dXJuIFlzKGUscCl9fWlmKHI9PT12b2lkIDApcmV0dXJuIFlzKGUsdC5wb3MpO04uYXNzZXJ0KCFjcyhyKSk7bGV0IGE9emkociksXz1hfHxrZCh0KT9yLnBvczpOdChlLnRleHQsci5wb3MpO3JldHVybiBhPyhOLmFzc2VydChfPT09ci5wb3MsXCJUaGlzIGZhaWx1cmUgY291bGQgdHJpZ2dlciBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzIwODA5XCIpLE4uYXNzZXJ0KF89PT1yLmVuZCxcIlRoaXMgZmFpbHVyZSBjb3VsZCB0cmlnZ2VyIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMjA4MDlcIikpOihOLmFzc2VydChfPj1yLnBvcyxcIlRoaXMgZmFpbHVyZSBjb3VsZCB0cmlnZ2VyIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMjA4MDlcIiksTi5hc3NlcnQoXzw9ci5lbmQsXCJUaGlzIGZhaWx1cmUgY291bGQgdHJpZ2dlciBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzIwODA5XCIpKSxIaShfLHIuZW5kKX1mdW5jdGlvbiB0UChlKXtyZXR1cm4oZS5leHRlcm5hbE1vZHVsZUluZGljYXRvcnx8ZS5jb21tb25Kc01vZHVsZUluZGljYXRvcikhPT12b2lkIDB9ZnVuY3Rpb24gZTIoZSl7cmV0dXJuIGUuc2NyaXB0S2luZD09PTZ9ZnVuY3Rpb24gclAoZSl7cmV0dXJuISEoJGQoZSkmMjA0OCl9ZnVuY3Rpb24gblAoZSl7cmV0dXJuISEoJGQoZSkmNjQmJiFFNChlLGUucGFyZW50KSl9ZnVuY3Rpb24gaVAoZSl7cmV0dXJuKENfKGUpJjcpPT09Nn1mdW5jdGlvbiBhUChlKXtyZXR1cm4oQ18oZSkmNyk9PT00fWZ1bmN0aW9uIFYzKGUpe3JldHVybihDXyhlKSY3KT09PTJ9ZnVuY3Rpb24gb1AoZSl7cmV0dXJuKENfKGUpJjcpPT09MX1mdW5jdGlvbiBzUChlKXtyZXR1cm4gZS5raW5kPT09MjEzJiZlLmV4cHJlc3Npb24ua2luZD09PTEwOH1mdW5jdGlvbiB0MihlKXtyZXR1cm4gZS5raW5kPT09MjEzJiZlLmV4cHJlc3Npb24ua2luZD09PTEwMn1mdW5jdGlvbiB4MChlKXtyZXR1cm4gYjYoZSkmJmUua2V5d29yZFRva2VuPT09MTAyJiZlLm5hbWUuZXNjYXBlZFRleHQ9PT1cIm1ldGFcIn1mdW5jdGlvbiBIMyhlKXtyZXR1cm4gcnUoZSkmJm02KGUuYXJndW1lbnQpJiZtbihlLmFyZ3VtZW50LmxpdGVyYWwpfWZ1bmN0aW9uIEVhKGUpe3JldHVybiBlLmtpbmQ9PT0yNDQmJmUuZXhwcmVzc2lvbi5raW5kPT09MTF9ZnVuY3Rpb24gdW0oZSl7cmV0dXJuISEodGkoZSkmMjA5NzE1Mil9ZnVuY3Rpb24gdzAoZSl7cmV0dXJuIHVtKGUpJiZvcyhlKX1mdW5jdGlvbiBfUChlKXtyZXR1cm4gRWUoZS5uYW1lKSYmIWUuaW5pdGlhbGl6ZXJ9ZnVuY3Rpb24gQzAoZSl7cmV0dXJuIHVtKGUpJiZhcyhlKSYmc28oZS5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zLF9QKX1mdW5jdGlvbiBjUChlLHQpe3JldHVybiBlLmtpbmQhPT0xMj9Xbyh0LnRleHQsZS5wb3MpOnZvaWQgMH1mdW5jdGlvbiBHMyhlLHQpe2xldCByPWUua2luZD09PTE2OXx8ZS5raW5kPT09MTY4fHxlLmtpbmQ9PT0yMTh8fGUua2luZD09PTIxOXx8ZS5raW5kPT09MjE3fHxlLmtpbmQ9PT0yNjB8fGUua2luZD09PTI4MT95XyhfNCh0LGUucG9zKSxXbyh0LGUucG9zKSk6V28odCxlLnBvcyk7cmV0dXJuICRyKHIsYT0+dC5jaGFyQ29kZUF0KGEucG9zKzEpPT09NDImJnQuY2hhckNvZGVBdChhLnBvcysyKT09PTQyJiZ0LmNoYXJDb2RlQXQoYS5wb3MrMykhPT00Nyl9ZnVuY3Rpb24gcjIoZSl7aWYoMTgyPD1lLmtpbmQmJmUua2luZDw9MjA1KXJldHVybiEwO3N3aXRjaChlLmtpbmQpe2Nhc2UgMTMzOmNhc2UgMTU5OmNhc2UgMTUwOmNhc2UgMTYzOmNhc2UgMTU0OmNhc2UgMTM2OmNhc2UgMTU1OmNhc2UgMTUxOmNhc2UgMTU3OmNhc2UgMTA2OmNhc2UgMTQ2OnJldHVybiEwO2Nhc2UgMTE2OnJldHVybiBlLnBhcmVudC5raW5kIT09MjIyO2Nhc2UgMjMzOnJldHVybiBObChlLnBhcmVudCkmJiFNMChlKTtjYXNlIDE2ODpyZXR1cm4gZS5wYXJlbnQua2luZD09PTIwMHx8ZS5wYXJlbnQua2luZD09PTE5NTtjYXNlIDgwOihlLnBhcmVudC5raW5kPT09MTY2JiZlLnBhcmVudC5yaWdodD09PWV8fGUucGFyZW50LmtpbmQ9PT0yMTEmJmUucGFyZW50Lm5hbWU9PT1lKSYmKGU9ZS5wYXJlbnQpLE4uYXNzZXJ0KGUua2luZD09PTgwfHxlLmtpbmQ9PT0xNjZ8fGUua2luZD09PTIxMSxcIidub2RlJyB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBxdWFsaWZpZWQgbmFtZSwgaWRlbnRpZmllciBvciBwcm9wZXJ0eSBhY2Nlc3MgaW4gJ2lzUGFydE9mVHlwZU5vZGUnLlwiKTtjYXNlIDE2NjpjYXNlIDIxMTpjYXNlIDExMDp7bGV0e3BhcmVudDp0fT1lO2lmKHQua2luZD09PTE4NilyZXR1cm4hMTtpZih0LmtpbmQ9PT0yMDUpcmV0dXJuIXQuaXNUeXBlT2Y7aWYoMTgyPD10LmtpbmQmJnQua2luZDw9MjA1KXJldHVybiEwO3N3aXRjaCh0LmtpbmQpe2Nhc2UgMjMzOnJldHVybiBObCh0LnBhcmVudCkmJiFNMCh0KTtjYXNlIDE2ODpyZXR1cm4gZT09PXQuY29uc3RyYWludDtjYXNlIDM1MjpyZXR1cm4gZT09PXQuY29uc3RyYWludDtjYXNlIDE3MjpjYXNlIDE3MTpjYXNlIDE2OTpjYXNlIDI2MDpyZXR1cm4gZT09PXQudHlwZTtjYXNlIDI2MjpjYXNlIDIxODpjYXNlIDIxOTpjYXNlIDE3NjpjYXNlIDE3NDpjYXNlIDE3MzpjYXNlIDE3NzpjYXNlIDE3ODpyZXR1cm4gZT09PXQudHlwZTtjYXNlIDE3OTpjYXNlIDE4MDpjYXNlIDE4MTpyZXR1cm4gZT09PXQudHlwZTtjYXNlIDIxNjpyZXR1cm4gZT09PXQudHlwZTtjYXNlIDIxMzpjYXNlIDIxNDpjYXNlIDIxNTpyZXR1cm4gZXModC50eXBlQXJndW1lbnRzLGUpfX19cmV0dXJuITF9ZnVuY3Rpb24gbFAoZSx0KXtmb3IoO2U7KXtpZihlLmtpbmQ9PT10KXJldHVybiEwO2U9ZS5wYXJlbnR9cmV0dXJuITF9ZnVuY3Rpb24gdVAoZSx0KXtyZXR1cm4gcihlKTtmdW5jdGlvbiByKGEpe3N3aXRjaChhLmtpbmQpe2Nhc2UgMjUzOnJldHVybiB0KGEpO2Nhc2UgMjY5OmNhc2UgMjQxOmNhc2UgMjQ1OmNhc2UgMjQ2OmNhc2UgMjQ3OmNhc2UgMjQ4OmNhc2UgMjQ5OmNhc2UgMjUwOmNhc2UgMjU0OmNhc2UgMjU1OmNhc2UgMjk2OmNhc2UgMjk3OmNhc2UgMjU2OmNhc2UgMjU4OmNhc2UgMjk5OnJldHVybiBCdChhLHIpfX19ZnVuY3Rpb24gcFAoZSx0KXtyZXR1cm4gcihlKTtmdW5jdGlvbiByKGEpe3N3aXRjaChhLmtpbmQpe2Nhc2UgMjI5OnQoYSk7bGV0IF89YS5leHByZXNzaW9uO18mJnIoXyk7cmV0dXJuO2Nhc2UgMjY2OmNhc2UgMjY0OmNhc2UgMjY3OmNhc2UgMjY1OnJldHVybjtkZWZhdWx0OmlmKEdpKGEpKXtpZihhLm5hbWUmJmEubmFtZS5raW5kPT09MTY3KXtyKGEubmFtZS5leHByZXNzaW9uKTtyZXR1cm59fWVsc2UgcjIoYSl8fEJ0KGEscil9fX1mdW5jdGlvbiBmUChlKXtyZXR1cm4gZSYmZS5raW5kPT09MTg4P2UuZWxlbWVudFR5cGU6ZSYmZS5raW5kPT09MTgzP0xkKGUudHlwZUFyZ3VtZW50cyk6dm9pZCAwfWZ1bmN0aW9uIGRQKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjY0OmNhc2UgMjYzOmNhc2UgMjMxOmNhc2UgMTg3OnJldHVybiBlLm1lbWJlcnM7Y2FzZSAyMTA6cmV0dXJuIGUucHJvcGVydGllc319ZnVuY3Rpb24gbjIoZSl7aWYoZSlzd2l0Y2goZS5raW5kKXtjYXNlIDIwODpjYXNlIDMwNjpjYXNlIDE2OTpjYXNlIDMwMzpjYXNlIDE3MjpjYXNlIDE3MTpjYXNlIDMwNDpjYXNlIDI2MDpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtUChlKXtyZXR1cm4gbjIoZSl8fG5tKGUpfWZ1bmN0aW9uIFgzKGUpe3JldHVybiBlLnBhcmVudC5raW5kPT09MjYxJiZlLnBhcmVudC5wYXJlbnQua2luZD09PTI0M31mdW5jdGlvbiBoUChlKXtyZXR1cm4gV3QoZSk/dW8oZS5wYXJlbnQpJiZDdChlLnBhcmVudC5wYXJlbnQpJiZKYShlLnBhcmVudC5wYXJlbnQpPT09Mnx8aTIoZS5wYXJlbnQpOiExfWZ1bmN0aW9uIGkyKGUpe3JldHVybiBXdChlKT9DdChlKSYmSmEoZSk9PT0xOiExfWZ1bmN0aW9uIHlQKGUpe3JldHVybihraShlKT9WMyhlKSYmRWUoZS5uYW1lKSYmWDMoZSk6b28oZSk/TzAoZSkmJmdtKGUpOlpsKGUpJiZPMChlKSl8fGkyKGUpfWZ1bmN0aW9uIGdQKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMTc0OmNhc2UgMTczOmNhc2UgMTc2OmNhc2UgMTc3OmNhc2UgMTc4OmNhc2UgMjYyOmNhc2UgMjE4OnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGJQKGUsdCl7Zm9yKDs7KXtpZih0JiZ0KGUpLGUuc3RhdGVtZW50LmtpbmQhPT0yNTYpcmV0dXJuIGUuc3RhdGVtZW50O2U9ZS5zdGF0ZW1lbnR9fWZ1bmN0aW9uICQzKGUpe3JldHVybiBlJiZlLmtpbmQ9PT0yNDEmJkdpKGUucGFyZW50KX1mdW5jdGlvbiB2UChlKXtyZXR1cm4gZSYmZS5raW5kPT09MTc0JiZlLnBhcmVudC5raW5kPT09MjEwfWZ1bmN0aW9uIFRQKGUpe3JldHVybihlLmtpbmQ9PT0xNzR8fGUua2luZD09PTE3N3x8ZS5raW5kPT09MTc4KSYmKGUucGFyZW50LmtpbmQ9PT0yMTB8fGUucGFyZW50LmtpbmQ9PT0yMzEpfWZ1bmN0aW9uIFNQKGUpe3JldHVybiBlJiZlLmtpbmQ9PT0xfWZ1bmN0aW9uIHhQKGUpe3JldHVybiBlJiZlLmtpbmQ9PT0wfWZ1bmN0aW9uIGEyKGUsdCxyLGEpe3JldHVybiB5cihlPT1udWxsP3ZvaWQgMDplLnByb3BlcnRpZXMsXz0+e2lmKCFfcyhfKSlyZXR1cm47bGV0IHA9UWcoXy5uYW1lKTtyZXR1cm4gdD09PXB8fGEmJmE9PT1wP3IoXyk6dm9pZCAwfSl9ZnVuY3Rpb24gd1AoZSx0LHIpe3JldHVybiBhMihlLHQsYT0+aXUoYS5pbml0aWFsaXplcik/WXIoYS5pbml0aWFsaXplci5lbGVtZW50cyxfPT5tbihfKSYmXy50ZXh0PT09cik6dm9pZCAwKX1mdW5jdGlvbiBRMyhlKXtpZihlJiZlLnN0YXRlbWVudHMubGVuZ3RoKXtsZXQgdD1lLnN0YXRlbWVudHNbMF0uZXhwcmVzc2lvbjtyZXR1cm4gT24odCx1byl9fWZ1bmN0aW9uIENQKGUsdCxyKXtyZXR1cm4gWTMoZSx0LGE9Pml1KGEuaW5pdGlhbGl6ZXIpP1lyKGEuaW5pdGlhbGl6ZXIuZWxlbWVudHMsXz0+bW4oXykmJl8udGV4dD09PXIpOnZvaWQgMCl9ZnVuY3Rpb24gWTMoZSx0LHIpe3JldHVybiBhMihRMyhlKSx0LHIpfWZ1bmN0aW9uIEVQKGUpe3JldHVybiBLcihlLnBhcmVudCxHaSl9ZnVuY3Rpb24gQVAoZSl7cmV0dXJuIEtyKGUucGFyZW50LF8zKX1mdW5jdGlvbiBFMChlKXtyZXR1cm4gS3IoZS5wYXJlbnQsZG4pfWZ1bmN0aW9uIGtQKGUpe3JldHVybiBLcihlLnBhcmVudCx0PT5kbih0KXx8R2kodCk/XCJxdWl0XCI6ZXUodCkpfWZ1bmN0aW9uIERQKGUpe3JldHVybiBLcihlLnBhcmVudCxybSl9ZnVuY3Rpb24gUFAoZSl7bGV0IHQ9S3IoZS5wYXJlbnQscj0+ZG4ocik/XCJxdWl0XCI6TF8ocikpO3JldHVybiB0JiZkbih0LnBhcmVudCk/RTAodC5wYXJlbnQpOkUwKHQ/P2UpfWZ1bmN0aW9uIG8yKGUsdCxyKXtmb3IoTi5hc3NlcnQoZS5raW5kIT09MzEyKTs7KXtpZihlPWUucGFyZW50LCFlKXJldHVybiBOLmZhaWwoKTtzd2l0Y2goZS5raW5kKXtjYXNlIDE2NzppZihyJiZkbihlLnBhcmVudC5wYXJlbnQpKXJldHVybiBlO2U9ZS5wYXJlbnQucGFyZW50O2JyZWFrO2Nhc2UgMTcwOmUucGFyZW50LmtpbmQ9PT0xNjkmJm5vKGUucGFyZW50LnBhcmVudCk/ZT1lLnBhcmVudC5wYXJlbnQ6bm8oZS5wYXJlbnQpJiYoZT1lLnBhcmVudCk7YnJlYWs7Y2FzZSAyMTk6aWYoIXQpY29udGludWU7Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAyNjc6Y2FzZSAxNzU6Y2FzZSAxNzI6Y2FzZSAxNzE6Y2FzZSAxNzQ6Y2FzZSAxNzM6Y2FzZSAxNzY6Y2FzZSAxNzc6Y2FzZSAxNzg6Y2FzZSAxNzk6Y2FzZSAxODA6Y2FzZSAxODE6Y2FzZSAyNjY6Y2FzZSAzMTI6cmV0dXJuIGV9fX1mdW5jdGlvbiBJUChlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIxOTpjYXNlIDI2MjpjYXNlIDIxODpjYXNlIDE3MjpyZXR1cm4hMDtjYXNlIDI0MTpzd2l0Y2goZS5wYXJlbnQua2luZCl7Y2FzZSAxNzY6Y2FzZSAxNzQ6Y2FzZSAxNzc6Y2FzZSAxNzg6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX1kZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBOUChlKXtFZShlKSYmKFlvKGUucGFyZW50KXx8b3MoZS5wYXJlbnQpKSYmZS5wYXJlbnQubmFtZT09PWUmJihlPWUucGFyZW50KTtsZXQgdD1vMihlLCEwLCExKTtyZXR1cm4gaWkodCl9ZnVuY3Rpb24gT1AoZSl7bGV0IHQ9bzIoZSwhMSwhMSk7aWYodClzd2l0Y2godC5raW5kKXtjYXNlIDE3NjpjYXNlIDI2MjpjYXNlIDIxODpyZXR1cm4gdH19ZnVuY3Rpb24gTVAoZSx0KXtmb3IoOzspe2lmKGU9ZS5wYXJlbnQsIWUpcmV0dXJuO3N3aXRjaChlLmtpbmQpe2Nhc2UgMTY3OmU9ZS5wYXJlbnQ7YnJlYWs7Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAyMTk6aWYoIXQpY29udGludWU7Y2FzZSAxNzI6Y2FzZSAxNzE6Y2FzZSAxNzQ6Y2FzZSAxNzM6Y2FzZSAxNzY6Y2FzZSAxNzc6Y2FzZSAxNzg6Y2FzZSAxNzU6cmV0dXJuIGU7Y2FzZSAxNzA6ZS5wYXJlbnQua2luZD09PTE2OSYmbm8oZS5wYXJlbnQucGFyZW50KT9lPWUucGFyZW50LnBhcmVudDpubyhlLnBhcmVudCkmJihlPWUucGFyZW50KTticmVha319fWZ1bmN0aW9uIExQKGUpe2lmKGUua2luZD09PTIxOHx8ZS5raW5kPT09MjE5KXtsZXQgdD1lLHI9ZS5wYXJlbnQ7Zm9yKDtyLmtpbmQ9PT0yMTc7KXQ9cixyPXIucGFyZW50O2lmKHIua2luZD09PTIxMyYmci5leHByZXNzaW9uPT09dClyZXR1cm4gcn19ZnVuY3Rpb24gSlAoZSl7cmV0dXJuIGUua2luZD09PTEwOHx8eWQoZSl9ZnVuY3Rpb24geWQoZSl7bGV0IHQ9ZS5raW5kO3JldHVybih0PT09MjExfHx0PT09MjEyKSYmZS5leHByZXNzaW9uLmtpbmQ9PT0xMDh9ZnVuY3Rpb24gUlAoZSl7bGV0IHQ9ZS5raW5kO3JldHVybih0PT09MjExfHx0PT09MjEyKSYmZS5leHByZXNzaW9uLmtpbmQ9PT0xMTB9ZnVuY3Rpb24galAoZSl7dmFyIHQ7cmV0dXJuISFlJiZraShlKSYmKCh0PWUuaW5pdGlhbGl6ZXIpPT1udWxsP3ZvaWQgMDp0LmtpbmQpPT09MTEwfWZ1bmN0aW9uIEZQKGUpe3JldHVybiEhZSYmKF91KGUpfHxfcyhlKSkmJkN0KGUucGFyZW50LnBhcmVudCkmJmUucGFyZW50LnBhcmVudC5vcGVyYXRvclRva2VuLmtpbmQ9PT02NCYmZS5wYXJlbnQucGFyZW50LnJpZ2h0LmtpbmQ9PT0xMTB9ZnVuY3Rpb24gQlAoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAxODM6cmV0dXJuIGUudHlwZU5hbWU7Y2FzZSAyMzM6cmV0dXJuIGNvKGUuZXhwcmVzc2lvbik/ZS5leHByZXNzaW9uOnZvaWQgMDtjYXNlIDgwOmNhc2UgMTY2OnJldHVybiBlfX1mdW5jdGlvbiBVUChlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDIxNTpyZXR1cm4gZS50YWc7Y2FzZSAyODY6Y2FzZSAyODU6cmV0dXJuIGUudGFnTmFtZTtkZWZhdWx0OnJldHVybiBlLmV4cHJlc3Npb259fWZ1bmN0aW9uIEszKGUsdCxyLGEpe2lmKGUmJlFkKHQpJiZqcih0Lm5hbWUpKXJldHVybiExO3N3aXRjaCh0LmtpbmQpe2Nhc2UgMjYzOnJldHVybiEwO2Nhc2UgMjMxOnJldHVybiFlO2Nhc2UgMTcyOnJldHVybiByIT09dm9pZCAwJiYoZT9ZbyhyKTpkbihyKSYmIWlTKHQpJiYhYVModCkpO2Nhc2UgMTc3OmNhc2UgMTc4OmNhc2UgMTc0OnJldHVybiB0LmJvZHkhPT12b2lkIDAmJnIhPT12b2lkIDAmJihlP1lvKHIpOmRuKHIpKTtjYXNlIDE2OTpyZXR1cm4gZT9yIT09dm9pZCAwJiZyLmJvZHkhPT12b2lkIDAmJihyLmtpbmQ9PT0xNzZ8fHIua2luZD09PTE3NHx8ci5raW5kPT09MTc4KSYmS1QocikhPT10JiZhIT09dm9pZCAwJiZhLmtpbmQ9PT0yNjM6ITF9cmV0dXJuITF9ZnVuY3Rpb24gbF8oZSx0LHIsYSl7cmV0dXJuIEVsKHQpJiZLMyhlLHQscixhKX1mdW5jdGlvbiBBMChlLHQscixhKXtyZXR1cm4gbF8oZSx0LHIsYSl8fHMyKGUsdCxyKX1mdW5jdGlvbiBzMihlLHQscil7c3dpdGNoKHQua2luZCl7Y2FzZSAyNjM6cmV0dXJuIG10KHQubWVtYmVycyxhPT5BMChlLGEsdCxyKSk7Y2FzZSAyMzE6cmV0dXJuIWUmJm10KHQubWVtYmVycyxhPT5BMChlLGEsdCxyKSk7Y2FzZSAxNzQ6Y2FzZSAxNzg6Y2FzZSAxNzY6cmV0dXJuIG10KHQucGFyYW1ldGVycyxhPT5sXyhlLGEsdCxyKSk7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gcVAoZSx0KXtpZihsXyhlLHQpKXJldHVybiEwO2xldCByPVlUKHQpO3JldHVybiEhciYmczIoZSxyLHQpfWZ1bmN0aW9uIHpQKGUsdCxyKXtsZXQgYTtpZihubSh0KSl7bGV0e2ZpcnN0QWNjZXNzb3I6XyxzZWNvbmRBY2Nlc3NvcjpwLHNldEFjY2Vzc29yOmR9PVAyKHIubWVtYmVycyx0KSxoPUVsKF8pP186cCYmRWwocCk/cDp2b2lkIDA7aWYoIWh8fHQhPT1oKXJldHVybiExO2E9ZD09bnVsbD92b2lkIDA6ZC5wYXJhbWV0ZXJzfWVsc2UgZF8odCkmJihhPXQucGFyYW1ldGVycyk7aWYobF8oZSx0LHIpKXJldHVybiEwO2lmKGEpe2ZvcihsZXQgXyBvZiBhKWlmKCFYbChfKSYmbF8oZSxfLHQscikpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gWjMoZSl7aWYoZS50ZXh0U291cmNlTm9kZSl7c3dpdGNoKGUudGV4dFNvdXJjZU5vZGUua2luZCl7Y2FzZSAxMTpyZXR1cm4gWjMoZS50ZXh0U291cmNlTm9kZSk7Y2FzZSAxNTpyZXR1cm4gZS50ZXh0PT09XCJcIn1yZXR1cm4hMX1yZXR1cm4gZS50ZXh0PT09XCJcIn1mdW5jdGlvbiBNZihlKXtsZXR7cGFyZW50OnR9PWU7cmV0dXJuIHQua2luZD09PTI4Nnx8dC5raW5kPT09Mjg1fHx0LmtpbmQ9PT0yODc/dC50YWdOYW1lPT09ZTohMX1mdW5jdGlvbiBfMihlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDEwODpjYXNlIDEwNjpjYXNlIDExMjpjYXNlIDk3OmNhc2UgMTQ6Y2FzZSAyMDk6Y2FzZSAyMTA6Y2FzZSAyMTE6Y2FzZSAyMTI6Y2FzZSAyMTM6Y2FzZSAyMTQ6Y2FzZSAyMTU6Y2FzZSAyMzQ6Y2FzZSAyMTY6Y2FzZSAyMzg6Y2FzZSAyMzU6Y2FzZSAyMTc6Y2FzZSAyMTg6Y2FzZSAyMzE6Y2FzZSAyMTk6Y2FzZSAyMjI6Y2FzZSAyMjA6Y2FzZSAyMjE6Y2FzZSAyMjQ6Y2FzZSAyMjU6Y2FzZSAyMjY6Y2FzZSAyMjc6Y2FzZSAyMzA6Y2FzZSAyMjg6Y2FzZSAyMzI6Y2FzZSAyODQ6Y2FzZSAyODU6Y2FzZSAyODg6Y2FzZSAyMjk6Y2FzZSAyMjM6Y2FzZSAyMzY6cmV0dXJuITA7Y2FzZSAyMzM6cmV0dXJuIU5sKGUucGFyZW50KSYmIU1tKGUucGFyZW50KTtjYXNlIDE2Njpmb3IoO2UucGFyZW50LmtpbmQ9PT0xNjY7KWU9ZS5wYXJlbnQ7cmV0dXJuIGUucGFyZW50LmtpbmQ9PT0xODZ8fHVsKGUucGFyZW50KXx8emYoZS5wYXJlbnQpfHxyXyhlLnBhcmVudCl8fE1mKGUpO2Nhc2UgMzE4OmZvcig7cl8oZS5wYXJlbnQpOyllPWUucGFyZW50O3JldHVybiBlLnBhcmVudC5raW5kPT09MTg2fHx1bChlLnBhcmVudCl8fHpmKGUucGFyZW50KXx8cl8oZS5wYXJlbnQpfHxNZihlKTtjYXNlIDgxOnJldHVybiBDdChlLnBhcmVudCkmJmUucGFyZW50LmxlZnQ9PT1lJiZlLnBhcmVudC5vcGVyYXRvclRva2VuLmtpbmQ9PT0xMDM7Y2FzZSA4MDppZihlLnBhcmVudC5raW5kPT09MTg2fHx1bChlLnBhcmVudCl8fHpmKGUucGFyZW50KXx8cl8oZS5wYXJlbnQpfHxNZihlKSlyZXR1cm4hMDtjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAxMTA6cmV0dXJuIGVUKGUpO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGVUKGUpe2xldHtwYXJlbnQ6dH09ZTtzd2l0Y2godC5raW5kKXtjYXNlIDI2MDpjYXNlIDE2OTpjYXNlIDE3MjpjYXNlIDE3MTpjYXNlIDMwNjpjYXNlIDMwMzpjYXNlIDIwODpyZXR1cm4gdC5pbml0aWFsaXplcj09PWU7Y2FzZSAyNDQ6Y2FzZSAyNDU6Y2FzZSAyNDY6Y2FzZSAyNDc6Y2FzZSAyNTM6Y2FzZSAyNTQ6Y2FzZSAyNTU6Y2FzZSAyOTY6Y2FzZSAyNTc6cmV0dXJuIHQuZXhwcmVzc2lvbj09PWU7Y2FzZSAyNDg6bGV0IHI9dDtyZXR1cm4gci5pbml0aWFsaXplcj09PWUmJnIuaW5pdGlhbGl6ZXIua2luZCE9PTI2MXx8ci5jb25kaXRpb249PT1lfHxyLmluY3JlbWVudG9yPT09ZTtjYXNlIDI0OTpjYXNlIDI1MDpsZXQgYT10O3JldHVybiBhLmluaXRpYWxpemVyPT09ZSYmYS5pbml0aWFsaXplci5raW5kIT09MjYxfHxhLmV4cHJlc3Npb249PT1lO2Nhc2UgMjE2OmNhc2UgMjM0OnJldHVybiBlPT09dC5leHByZXNzaW9uO2Nhc2UgMjM5OnJldHVybiBlPT09dC5leHByZXNzaW9uO2Nhc2UgMTY3OnJldHVybiBlPT09dC5leHByZXNzaW9uO2Nhc2UgMTcwOmNhc2UgMjk0OmNhc2UgMjkzOmNhc2UgMzA1OnJldHVybiEwO2Nhc2UgMjMzOnJldHVybiB0LmV4cHJlc3Npb249PT1lJiYhcjIodCk7Y2FzZSAzMDQ6cmV0dXJuIHQub2JqZWN0QXNzaWdubWVudEluaXRpYWxpemVyPT09ZTtjYXNlIDIzODpyZXR1cm4gZT09PXQuZXhwcmVzc2lvbjtkZWZhdWx0OnJldHVybiBfMih0KX19ZnVuY3Rpb24gdFQoZSl7Zm9yKDtlLmtpbmQ9PT0xNjZ8fGUua2luZD09PTgwOyllPWUucGFyZW50O3JldHVybiBlLmtpbmQ9PT0xODZ9ZnVuY3Rpb24gV1AoZSl7cmV0dXJuIEltKGUpJiYhIWUucGFyZW50Lm1vZHVsZVNwZWNpZmllcn1mdW5jdGlvbiByVChlKXtyZXR1cm4gZS5raW5kPT09MjcxJiZlLm1vZHVsZVJlZmVyZW5jZS5raW5kPT09MjgzfWZ1bmN0aW9uIFZQKGUpe3JldHVybiBOLmFzc2VydChyVChlKSksZS5tb2R1bGVSZWZlcmVuY2UuZXhwcmVzc2lvbn1mdW5jdGlvbiBIUChlKXtyZXR1cm4gcG0oZSkmJlIyKGUuaW5pdGlhbGl6ZXIpLmFyZ3VtZW50c1swXX1mdW5jdGlvbiBHUChlKXtyZXR1cm4gZS5raW5kPT09MjcxJiZlLm1vZHVsZVJlZmVyZW5jZS5raW5kIT09MjgzfWZ1bmN0aW9uIGMyKGUpe3JldHVybiBXdChlKX1mdW5jdGlvbiBYUChlKXtyZXR1cm4hV3QoZSl9ZnVuY3Rpb24gV3QoZSl7cmV0dXJuISFlJiYhIShlLmZsYWdzJjUyNDI4OCl9ZnVuY3Rpb24gJFAoZSl7cmV0dXJuISFlJiYhIShlLmZsYWdzJjEzNDIxNzcyOCl9ZnVuY3Rpb24gUVAoZSl7cmV0dXJuIWUyKGUpfWZ1bmN0aW9uIG5UKGUpe3JldHVybiEhZSYmISEoZS5mbGFncyYxNjc3NzIxNil9ZnVuY3Rpb24gWVAoZSl7cmV0dXJuIFJfKGUpJiZFZShlLnR5cGVOYW1lKSYmZS50eXBlTmFtZS5lc2NhcGVkVGV4dD09PVwiT2JqZWN0XCImJmUudHlwZUFyZ3VtZW50cyYmZS50eXBlQXJndW1lbnRzLmxlbmd0aD09PTImJihlLnR5cGVBcmd1bWVudHNbMF0ua2luZD09PTE1NHx8ZS50eXBlQXJndW1lbnRzWzBdLmtpbmQ9PT0xNTApfWZ1bmN0aW9uIFdsKGUsdCl7aWYoZS5raW5kIT09MjEzKXJldHVybiExO2xldHtleHByZXNzaW9uOnIsYXJndW1lbnRzOmF9PWU7aWYoci5raW5kIT09ODB8fHIuZXNjYXBlZFRleHQhPT1cInJlcXVpcmVcInx8YS5sZW5ndGghPT0xKXJldHVybiExO2xldCBfPWFbMF07cmV0dXJuIXR8fEtuKF8pfWZ1bmN0aW9uIGlUKGUpe3JldHVybiBhVChlLCExKX1mdW5jdGlvbiBwbShlKXtyZXR1cm4gYVQoZSwhMCl9ZnVuY3Rpb24gS1AoZSl7cmV0dXJuIG51KGUpJiZwbShlLnBhcmVudC5wYXJlbnQpfWZ1bmN0aW9uIGFUKGUsdCl7cmV0dXJuIGtpKGUpJiYhIWUuaW5pdGlhbGl6ZXImJldsKHQ/UjIoZS5pbml0aWFsaXplcik6ZS5pbml0aWFsaXplciwhMCl9ZnVuY3Rpb24gb1QoZSl7cmV0dXJuIGFzKGUpJiZlLmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnMubGVuZ3RoPjAmJnNvKGUuZGVjbGFyYXRpb25MaXN0LmRlY2xhcmF0aW9ucyx0PT5pVCh0KSl9ZnVuY3Rpb24gWlAoZSl7cmV0dXJuIGU9PT0zOXx8ZT09PTM0fWZ1bmN0aW9uIGVJKGUsdCl7cmV0dXJuIFhvKHQsZSkuY2hhckNvZGVBdCgwKT09PTM0fWZ1bmN0aW9uIGswKGUpe3JldHVybiBDdChlKXx8JG8oZSl8fEVlKGUpfHxqXyhlKX1mdW5jdGlvbiBzVChlKXtyZXR1cm4gV3QoZSkmJmUuaW5pdGlhbGl6ZXImJkN0KGUuaW5pdGlhbGl6ZXIpJiYoZS5pbml0aWFsaXplci5vcGVyYXRvclRva2VuLmtpbmQ9PT01N3x8ZS5pbml0aWFsaXplci5vcGVyYXRvclRva2VuLmtpbmQ9PT02MSkmJmUubmFtZSYmY28oZS5uYW1lKSYmdV8oZS5uYW1lLGUuaW5pdGlhbGl6ZXIubGVmdCk/ZS5pbml0aWFsaXplci5yaWdodDplLmluaXRpYWxpemVyfWZ1bmN0aW9uIHRJKGUpe2xldCB0PXNUKGUpO3JldHVybiB0JiZBXyh0LCRsKGUubmFtZSkpfWZ1bmN0aW9uIHJJKGUsdCl7cmV0dXJuIHlyKGUucHJvcGVydGllcyxyPT5fcyhyKSYmRWUoci5uYW1lKSYmci5uYW1lLmVzY2FwZWRUZXh0PT09XCJ2YWx1ZVwiJiZyLmluaXRpYWxpemVyJiZBXyhyLmluaXRpYWxpemVyLHQpKX1mdW5jdGlvbiBuSShlKXtpZihlJiZlLnBhcmVudCYmQ3QoZS5wYXJlbnQpJiZlLnBhcmVudC5vcGVyYXRvclRva2VuLmtpbmQ9PT02NCl7bGV0IHQ9JGwoZS5wYXJlbnQubGVmdCk7cmV0dXJuIEFfKGUucGFyZW50LnJpZ2h0LHQpfHxpSShlLnBhcmVudC5sZWZ0LGUucGFyZW50LnJpZ2h0LHQpfWlmKGUmJmpfKGUpJiZwMihlKSl7bGV0IHQ9ckkoZS5hcmd1bWVudHNbMl0sZS5hcmd1bWVudHNbMV0udGV4dD09PVwicHJvdG90eXBlXCIpO2lmKHQpcmV0dXJuIHR9fWZ1bmN0aW9uIEFfKGUsdCl7aWYoal8oZSkpe2xldCByPUdsKGUuZXhwcmVzc2lvbik7cmV0dXJuIHIua2luZD09PTIxOHx8ci5raW5kPT09MjE5P2U6dm9pZCAwfWlmKGUua2luZD09PTIxOHx8ZS5raW5kPT09MjMxfHxlLmtpbmQ9PT0yMTl8fHVvKGUpJiYoZS5wcm9wZXJ0aWVzLmxlbmd0aD09PTB8fHQpKXJldHVybiBlfWZ1bmN0aW9uIGlJKGUsdCxyKXtsZXQgYT1DdCh0KSYmKHQub3BlcmF0b3JUb2tlbi5raW5kPT09NTd8fHQub3BlcmF0b3JUb2tlbi5raW5kPT09NjEpJiZBXyh0LnJpZ2h0LHIpO2lmKGEmJnVfKGUsdC5sZWZ0KSlyZXR1cm4gYX1mdW5jdGlvbiBhSShlKXtsZXQgdD1raShlLnBhcmVudCk/ZS5wYXJlbnQubmFtZTpDdChlLnBhcmVudCkmJmUucGFyZW50Lm9wZXJhdG9yVG9rZW4ua2luZD09PTY0P2UucGFyZW50LmxlZnQ6dm9pZCAwO3JldHVybiB0JiZBXyhlLnJpZ2h0LCRsKHQpKSYmY28odCkmJnVfKHQsZS5sZWZ0KX1mdW5jdGlvbiBvSShlKXtpZihDdChlLnBhcmVudCkpe2xldCB0PShlLnBhcmVudC5vcGVyYXRvclRva2VuLmtpbmQ9PT01N3x8ZS5wYXJlbnQub3BlcmF0b3JUb2tlbi5raW5kPT09NjEpJiZDdChlLnBhcmVudC5wYXJlbnQpP2UucGFyZW50LnBhcmVudDplLnBhcmVudDtpZih0Lm9wZXJhdG9yVG9rZW4ua2luZD09PTY0JiZFZSh0LmxlZnQpKXJldHVybiB0LmxlZnR9ZWxzZSBpZihraShlLnBhcmVudCkpcmV0dXJuIGUucGFyZW50Lm5hbWV9ZnVuY3Rpb24gdV8oZSx0KXtyZXR1cm4gUDAoZSkmJlAwKHQpP2JkKGUpPT09YmQodCk6cm8oZSkmJkxmKHQpJiYodC5leHByZXNzaW9uLmtpbmQ9PT0xMTB8fEVlKHQuZXhwcmVzc2lvbikmJih0LmV4cHJlc3Npb24uZXNjYXBlZFRleHQ9PT1cIndpbmRvd1wifHx0LmV4cHJlc3Npb24uZXNjYXBlZFRleHQ9PT1cInNlbGZcInx8dC5leHByZXNzaW9uLmVzY2FwZWRUZXh0PT09XCJnbG9iYWxcIikpP3VfKGUsbFQodCkpOkxmKGUpJiZMZih0KT9pbyhlKT09PWlvKHQpJiZ1XyhlLmV4cHJlc3Npb24sdC5leHByZXNzaW9uKTohMX1mdW5jdGlvbiBsMihlKXtmb3IoO05hKGUsITApOyllPWUucmlnaHQ7cmV0dXJuIGV9ZnVuY3Rpb24gX1QoZSl7cmV0dXJuIEVlKGUpJiZlLmVzY2FwZWRUZXh0PT09XCJleHBvcnRzXCJ9ZnVuY3Rpb24gY1QoZSl7cmV0dXJuIEVlKGUpJiZlLmVzY2FwZWRUZXh0PT09XCJtb2R1bGVcIn1mdW5jdGlvbiB1MihlKXtyZXR1cm4oQnIoZSl8fFZsKGUpKSYmY1QoZS5leHByZXNzaW9uKSYmaW8oZSk9PT1cImV4cG9ydHNcIn1mdW5jdGlvbiBKYShlKXtsZXQgdD1zSShlKTtyZXR1cm4gdD09PTV8fFd0KGUpP3Q6MH1mdW5jdGlvbiBwMihlKXtyZXR1cm4gS2EoZS5hcmd1bWVudHMpPT09MyYmQnIoZS5leHByZXNzaW9uKSYmRWUoZS5leHByZXNzaW9uLmV4cHJlc3Npb24pJiZPdChlLmV4cHJlc3Npb24uZXhwcmVzc2lvbik9PT1cIk9iamVjdFwiJiZPdChlLmV4cHJlc3Npb24ubmFtZSk9PT1cImRlZmluZVByb3BlcnR5XCImJlFpKGUuYXJndW1lbnRzWzFdKSYmcF8oZS5hcmd1bWVudHNbMF0sITApfWZ1bmN0aW9uIExmKGUpe3JldHVybiBCcihlKXx8VmwoZSl9ZnVuY3Rpb24gVmwoZSl7cmV0dXJuIFJhKGUpJiZRaShlLmFyZ3VtZW50RXhwcmVzc2lvbil9ZnVuY3Rpb24ga18oZSx0KXtyZXR1cm4gQnIoZSkmJighdCYmZS5leHByZXNzaW9uLmtpbmQ9PT0xMTB8fEVlKGUubmFtZSkmJnBfKGUuZXhwcmVzc2lvbiwhMCkpfHxmMihlLHQpfWZ1bmN0aW9uIGYyKGUsdCl7cmV0dXJuIFZsKGUpJiYoIXQmJmUuZXhwcmVzc2lvbi5raW5kPT09MTEwfHxjbyhlLmV4cHJlc3Npb24pfHxrXyhlLmV4cHJlc3Npb24sITApKX1mdW5jdGlvbiBwXyhlLHQpe3JldHVybiBjbyhlKXx8a18oZSx0KX1mdW5jdGlvbiBsVChlKXtyZXR1cm4gQnIoZSk/ZS5uYW1lOmUuYXJndW1lbnRFeHByZXNzaW9ufWZ1bmN0aW9uIHNJKGUpe2lmKGpfKGUpKXtpZighcDIoZSkpcmV0dXJuIDA7bGV0IHQ9ZS5hcmd1bWVudHNbMF07cmV0dXJuIF9UKHQpfHx1Mih0KT84OmtfKHQpJiZpbyh0KT09PVwicHJvdG90eXBlXCI/OTo3fXJldHVybiBlLm9wZXJhdG9yVG9rZW4ua2luZCE9PTY0fHwhJG8oZS5sZWZ0KXx8X0kobDIoZSkpPzA6cF8oZS5sZWZ0LmV4cHJlc3Npb24sITApJiZpbyhlLmxlZnQpPT09XCJwcm90b3R5cGVcIiYmdW8ocFQoZSkpPzY6dVQoZS5sZWZ0KX1mdW5jdGlvbiBfSShlKXtyZXR1cm4gaDYoZSkmJmxvKGUuZXhwcmVzc2lvbikmJmUuZXhwcmVzc2lvbi50ZXh0PT09XCIwXCJ9ZnVuY3Rpb24gZm0oZSl7aWYoQnIoZSkpcmV0dXJuIGUubmFtZTtsZXQgdD1HbChlLmFyZ3VtZW50RXhwcmVzc2lvbik7cmV0dXJuIGxvKHQpfHxLbih0KT90OmV9ZnVuY3Rpb24gaW8oZSl7bGV0IHQ9Zm0oZSk7aWYodCl7aWYoRWUodCkpcmV0dXJuIHQuZXNjYXBlZFRleHQ7aWYoS24odCl8fGxvKHQpKXJldHVybiBNbih0LnRleHQpfX1mdW5jdGlvbiB1VChlKXtpZihlLmV4cHJlc3Npb24ua2luZD09PTExMClyZXR1cm4gNDtpZih1MihlKSlyZXR1cm4gMjtpZihwXyhlLmV4cHJlc3Npb24sITApKXtpZigkbChlLmV4cHJlc3Npb24pKXJldHVybiAzO2xldCB0PWU7Zm9yKDshRWUodC5leHByZXNzaW9uKTspdD10LmV4cHJlc3Npb247bGV0IHI9dC5leHByZXNzaW9uO2lmKChyLmVzY2FwZWRUZXh0PT09XCJleHBvcnRzXCJ8fHIuZXNjYXBlZFRleHQ9PT1cIm1vZHVsZVwiJiZpbyh0KT09PVwiZXhwb3J0c1wiKSYma18oZSkpcmV0dXJuIDE7aWYocF8oZSwhMCl8fFJhKGUpJiZTMihlKSlyZXR1cm4gNX1yZXR1cm4gMH1mdW5jdGlvbiBwVChlKXtmb3IoO0N0KGUucmlnaHQpOyllPWUucmlnaHQ7cmV0dXJuIGUucmlnaHR9ZnVuY3Rpb24gY0koZSl7cmV0dXJuIEN0KGUpJiZKYShlKT09PTN9ZnVuY3Rpb24gbEkoZSl7cmV0dXJuIFd0KGUpJiZlLnBhcmVudCYmZS5wYXJlbnQua2luZD09PTI0NCYmKCFSYShlKXx8VmwoZSkpJiYhIVpkKGUucGFyZW50KX1mdW5jdGlvbiB1SShlLHQpe2xldHt2YWx1ZURlY2xhcmF0aW9uOnJ9PWU7KCFyfHwhKHQuZmxhZ3MmMzM1NTQ0MzImJiFXdCh0KSYmIShyLmZsYWdzJjMzNTU0NDMyKSkmJmswKHIpJiYhazAodCl8fHIua2luZCE9PXQua2luZCYmajMocikpJiYoZS52YWx1ZURlY2xhcmF0aW9uPXQpfWZ1bmN0aW9uIHBJKGUpe2lmKCFlfHwhZS52YWx1ZURlY2xhcmF0aW9uKXJldHVybiExO2xldCB0PWUudmFsdWVEZWNsYXJhdGlvbjtyZXR1cm4gdC5raW5kPT09MjYyfHxraSh0KSYmdC5pbml0aWFsaXplciYmR2kodC5pbml0aWFsaXplcil9ZnVuY3Rpb24gZkkoZSl7dmFyIHQscjtzd2l0Y2goZS5raW5kKXtjYXNlIDI2MDpjYXNlIDIwODpyZXR1cm4odD1LcihlLmluaXRpYWxpemVyLGE9PldsKGEsITApKSk9PW51bGw/dm9pZCAwOnQuYXJndW1lbnRzWzBdO2Nhc2UgMjcyOnJldHVybiBPbihlLm1vZHVsZVNwZWNpZmllcixLbik7Y2FzZSAyNzE6cmV0dXJuIE9uKChyPU9uKGUubW9kdWxlUmVmZXJlbmNlLE5tKSk9PW51bGw/dm9pZCAwOnIuZXhwcmVzc2lvbixLbik7Y2FzZSAyNzM6Y2FzZSAyODA6cmV0dXJuIE9uKGUucGFyZW50Lm1vZHVsZVNwZWNpZmllcixLbik7Y2FzZSAyNzQ6Y2FzZSAyODE6cmV0dXJuIE9uKGUucGFyZW50LnBhcmVudC5tb2R1bGVTcGVjaWZpZXIsS24pO2Nhc2UgMjc2OnJldHVybiBPbihlLnBhcmVudC5wYXJlbnQucGFyZW50Lm1vZHVsZVNwZWNpZmllcixLbik7ZGVmYXVsdDpOLmFzc2VydE5ldmVyKGUpfX1mdW5jdGlvbiBkSShlKXtyZXR1cm4gZlQoZSl8fE4uZmFpbEJhZFN5bnRheEtpbmQoZS5wYXJlbnQpfWZ1bmN0aW9uIGZUKGUpe3N3aXRjaChlLnBhcmVudC5raW5kKXtjYXNlIDI3MjpjYXNlIDI3ODpyZXR1cm4gZS5wYXJlbnQ7Y2FzZSAyODM6cmV0dXJuIGUucGFyZW50LnBhcmVudDtjYXNlIDIxMzpyZXR1cm4gdDIoZS5wYXJlbnQpfHxXbChlLnBhcmVudCwhMSk/ZS5wYXJlbnQ6dm9pZCAwO2Nhc2UgMjAxOnJldHVybiBOLmFzc2VydChtbihlKSksT24oZS5wYXJlbnQucGFyZW50LHJ1KTtkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24gZDIoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNzI6Y2FzZSAyNzg6cmV0dXJuIGUubW9kdWxlU3BlY2lmaWVyO2Nhc2UgMjcxOnJldHVybiBlLm1vZHVsZVJlZmVyZW5jZS5raW5kPT09MjgzP2UubW9kdWxlUmVmZXJlbmNlLmV4cHJlc3Npb246dm9pZCAwO2Nhc2UgMjA1OnJldHVybiBIMyhlKT9lLmFyZ3VtZW50LmxpdGVyYWw6dm9pZCAwO2Nhc2UgMjEzOnJldHVybiBlLmFyZ3VtZW50c1swXTtjYXNlIDI2NzpyZXR1cm4gZS5uYW1lLmtpbmQ9PT0xMT9lLm5hbWU6dm9pZCAwO2RlZmF1bHQ6cmV0dXJuIE4uYXNzZXJ0TmV2ZXIoZSl9fWZ1bmN0aW9uIGRUKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjcyOnJldHVybiBlLmltcG9ydENsYXVzZSYmT24oZS5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncyxFNik7Y2FzZSAyNzE6cmV0dXJuIGU7Y2FzZSAyNzg6cmV0dXJuIGUuZXhwb3J0Q2xhdXNlJiZPbihlLmV4cG9ydENsYXVzZSxJbSk7ZGVmYXVsdDpyZXR1cm4gTi5hc3NlcnROZXZlcihlKX19ZnVuY3Rpb24gbVQoZSl7cmV0dXJuIGUua2luZD09PTI3MiYmISFlLmltcG9ydENsYXVzZSYmISFlLmltcG9ydENsYXVzZS5uYW1lfWZ1bmN0aW9uIG1JKGUsdCl7aWYoZS5uYW1lKXtsZXQgcj10KGUpO2lmKHIpcmV0dXJuIHJ9aWYoZS5uYW1lZEJpbmRpbmdzKXtsZXQgcj1FNihlLm5hbWVkQmluZGluZ3MpP3QoZS5uYW1lZEJpbmRpbmdzKTp5cihlLm5hbWVkQmluZGluZ3MuZWxlbWVudHMsdCk7aWYocilyZXR1cm4gcn19ZnVuY3Rpb24gaEkoZSl7aWYoZSlzd2l0Y2goZS5raW5kKXtjYXNlIDE2OTpjYXNlIDE3NDpjYXNlIDE3MzpjYXNlIDMwNDpjYXNlIDMwMzpjYXNlIDE3MjpjYXNlIDE3MTpyZXR1cm4gZS5xdWVzdGlvblRva2VuIT09dm9pZCAwfXJldHVybiExfWZ1bmN0aW9uIHlJKGUpe2xldCB0PU9tKGUpP2dfKGUucGFyYW1ldGVycyk6dm9pZCAwLHI9T24odCYmdC5uYW1lLEVlKTtyZXR1cm4hIXImJnIuZXNjYXBlZFRleHQ9PT1cIm5ld1wifWZ1bmN0aW9uIEhsKGUpe3JldHVybiBlLmtpbmQ9PT0zNTN8fGUua2luZD09PTM0NXx8ZS5raW5kPT09MzQ3fWZ1bmN0aW9uIGdJKGUpe3JldHVybiBIbChlKXx8VDYoZSl9ZnVuY3Rpb24gYkkoZSl7cmV0dXJuIG91KGUpJiZDdChlLmV4cHJlc3Npb24pJiZlLmV4cHJlc3Npb24ub3BlcmF0b3JUb2tlbi5raW5kPT09NjQ/bDIoZS5leHByZXNzaW9uKTp2b2lkIDB9ZnVuY3Rpb24gaFQoZSl7cmV0dXJuIG91KGUpJiZDdChlLmV4cHJlc3Npb24pJiZKYShlLmV4cHJlc3Npb24pIT09MCYmQ3QoZS5leHByZXNzaW9uLnJpZ2h0KSYmKGUuZXhwcmVzc2lvbi5yaWdodC5vcGVyYXRvclRva2VuLmtpbmQ9PT01N3x8ZS5leHByZXNzaW9uLnJpZ2h0Lm9wZXJhdG9yVG9rZW4ua2luZD09PTYxKT9lLmV4cHJlc3Npb24ucmlnaHQucmlnaHQ6dm9pZCAwfWZ1bmN0aW9uIG0yKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjQzOmxldCB0PUNsKGUpO3JldHVybiB0JiZ0LmluaXRpYWxpemVyO2Nhc2UgMTcyOnJldHVybiBlLmluaXRpYWxpemVyO2Nhc2UgMzAzOnJldHVybiBlLmluaXRpYWxpemVyfX1mdW5jdGlvbiBDbChlKXtyZXR1cm4gYXMoZSk/Z18oZS5kZWNsYXJhdGlvbkxpc3QuZGVjbGFyYXRpb25zKTp2b2lkIDB9ZnVuY3Rpb24geVQoZSl7cmV0dXJuIFlpKGUpJiZlLmJvZHkmJmUuYm9keS5raW5kPT09MjY3P2UuYm9keTp2b2lkIDB9ZnVuY3Rpb24gdkkoZSl7aWYoZS5raW5kPj0yNDMmJmUua2luZDw9MjU5KXJldHVybiEwO3N3aXRjaChlLmtpbmQpe2Nhc2UgODA6Y2FzZSAxMTA6Y2FzZSAxMDg6Y2FzZSAxNjY6Y2FzZSAyMzY6Y2FzZSAyMTI6Y2FzZSAyMTE6Y2FzZSAyMDg6Y2FzZSAyMTg6Y2FzZSAyMTk6Y2FzZSAxNzQ6Y2FzZSAxNzc6Y2FzZSAxNzg6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gZG0oZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyMTk6Y2FzZSAyMjY6Y2FzZSAyNDE6Y2FzZSAyNTI6Y2FzZSAxNzk6Y2FzZSAyOTY6Y2FzZSAyNjM6Y2FzZSAyMzE6Y2FzZSAxNzU6Y2FzZSAxNzY6Y2FzZSAxODU6Y2FzZSAxODA6Y2FzZSAyNTE6Y2FzZSAyNTk6Y2FzZSAyNDY6Y2FzZSAyMTI6Y2FzZSAyNDI6Y2FzZSAxOmNhc2UgMjY2OmNhc2UgMzA2OmNhc2UgMjc3OmNhc2UgMjc4OmNhc2UgMjgxOmNhc2UgMjQ0OmNhc2UgMjQ5OmNhc2UgMjUwOmNhc2UgMjQ4OmNhc2UgMjYyOmNhc2UgMjE4OmNhc2UgMTg0OmNhc2UgMTc3OmNhc2UgODA6Y2FzZSAyNDU6Y2FzZSAyNzI6Y2FzZSAyNzE6Y2FzZSAxODE6Y2FzZSAyNjQ6Y2FzZSAzMjQ6Y2FzZSAzMzA6Y2FzZSAyNTY6Y2FzZSAxNzQ6Y2FzZSAxNzM6Y2FzZSAyNjc6Y2FzZSAyMDI6Y2FzZSAyNzA6Y2FzZSAyMTA6Y2FzZSAxNjk6Y2FzZSAyMTc6Y2FzZSAyMTE6Y2FzZSAzMDM6Y2FzZSAxNzI6Y2FzZSAxNzE6Y2FzZSAyNTM6Y2FzZSAyNDA6Y2FzZSAxNzg6Y2FzZSAzMDQ6Y2FzZSAzMDU6Y2FzZSAyNTU6Y2FzZSAyNTc6Y2FzZSAyNTg6Y2FzZSAyNjU6Y2FzZSAxNjg6Y2FzZSAyNjA6Y2FzZSAyNDM6Y2FzZSAyNDc6Y2FzZSAyNTQ6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gZ1QoZSx0KXtsZXQgcjtuMihlKSYmRTMoZSkmJldpKGUuaW5pdGlhbGl6ZXIpJiYocj1ScihyLEZiKGUsa2EoZS5pbml0aWFsaXplci5qc0RvYykpKSk7bGV0IGE9ZTtmb3IoO2EmJmEucGFyZW50Oyl7aWYoV2koYSkmJihyPVJyKHIsRmIoZSxrYShhLmpzRG9jKSkpKSxhLmtpbmQ9PT0xNjkpe3I9UnIociwodD9KNDpLZCkoYSkpO2JyZWFrfWlmKGEua2luZD09PTE2OCl7cj1ScihyLCh0P0Y0Omo0KShhKSk7YnJlYWt9YT1iVChhKX1yZXR1cm4gcnx8JGV9ZnVuY3Rpb24gRmIoZSx0KXtpZihjcyh0KSl7bGV0IHI9JHIodC50YWdzLGE9PkJiKGUsYSkpO3JldHVybiB0LnRhZ3M9PT1yP1t0XTpyfXJldHVybiBCYihlLHQpP1t0XTp2b2lkIDB9ZnVuY3Rpb24gQmIoZSx0KXtyZXR1cm4hKGx1KHQpfHxqNih0KSl8fCF0LnBhcmVudHx8IWNzKHQucGFyZW50KXx8IWlzKHQucGFyZW50LnBhcmVudCl8fHQucGFyZW50LnBhcmVudD09PWV9ZnVuY3Rpb24gYlQoZSl7bGV0IHQ9ZS5wYXJlbnQ7aWYodC5raW5kPT09MzAzfHx0LmtpbmQ9PT0yNzd8fHQua2luZD09PTE3Mnx8dC5raW5kPT09MjQ0JiZlLmtpbmQ9PT0yMTF8fHQua2luZD09PTI1M3x8eVQodCl8fEN0KGUpJiZlLm9wZXJhdG9yVG9rZW4ua2luZD09PTY0KXJldHVybiB0O2lmKHQucGFyZW50JiYoQ2wodC5wYXJlbnQpPT09ZXx8Q3QodCkmJnQub3BlcmF0b3JUb2tlbi5raW5kPT09NjQpKXJldHVybiB0LnBhcmVudDtpZih0LnBhcmVudCYmdC5wYXJlbnQucGFyZW50JiYoQ2wodC5wYXJlbnQucGFyZW50KXx8bTIodC5wYXJlbnQucGFyZW50KT09PWV8fGhUKHQucGFyZW50LnBhcmVudCkpKXJldHVybiB0LnBhcmVudC5wYXJlbnR9ZnVuY3Rpb24gVEkoZSl7aWYoZS5zeW1ib2wpcmV0dXJuIGUuc3ltYm9sO2lmKCFFZShlLm5hbWUpKXJldHVybjtsZXQgdD1lLm5hbWUuZXNjYXBlZFRleHQscj1oMihlKTtpZighcilyZXR1cm47bGV0IGE9WXIoci5wYXJhbWV0ZXJzLF89Pl8ubmFtZS5raW5kPT09ODAmJl8ubmFtZS5lc2NhcGVkVGV4dD09PXQpO3JldHVybiBhJiZhLnN5bWJvbH1mdW5jdGlvbiBTSShlKXtpZihjcyhlLnBhcmVudCkmJmUucGFyZW50LnRhZ3Mpe2xldCB0PVlyKGUucGFyZW50LnRhZ3MsSGwpO2lmKHQpcmV0dXJuIHR9cmV0dXJuIGgyKGUpfWZ1bmN0aW9uIGgyKGUpe2xldCB0PXkyKGUpO2lmKHQpcmV0dXJuIFpsKHQpJiZ0LnR5cGUmJkdpKHQudHlwZSk/dC50eXBlOkdpKHQpP3Q6dm9pZCAwfWZ1bmN0aW9uIHkyKGUpe2xldCB0PXZUKGUpO2lmKHQpcmV0dXJuIGhUKHQpfHxiSSh0KXx8bTIodCl8fENsKHQpfHx5VCh0KXx8dH1mdW5jdGlvbiB2VChlKXtsZXQgdD1nMihlKTtpZighdClyZXR1cm47bGV0IHI9dC5wYXJlbnQ7aWYociYmci5qc0RvYyYmdD09PXdpKHIuanNEb2MpKXJldHVybiByfWZ1bmN0aW9uIGcyKGUpe3JldHVybiBLcihlLnBhcmVudCxjcyl9ZnVuY3Rpb24geEkoZSl7bGV0IHQ9ZS5uYW1lLmVzY2FwZWRUZXh0LHt0eXBlUGFyYW1ldGVyczpyfT1lLnBhcmVudC5wYXJlbnQucGFyZW50O3JldHVybiByJiZZcihyLGE9PmEubmFtZS5lc2NhcGVkVGV4dD09PXQpfWZ1bmN0aW9uIHdJKGUpe3JldHVybiEhZS50eXBlQXJndW1lbnRzfWZ1bmN0aW9uIFRUKGUpe2xldCB0PWUucGFyZW50O2Zvcig7Oyl7c3dpdGNoKHQua2luZCl7Y2FzZSAyMjY6bGV0IHI9dC5vcGVyYXRvclRva2VuLmtpbmQ7cmV0dXJuIERfKHIpJiZ0LmxlZnQ9PT1lP3I9PT02NHx8dm0ocik/MToyOjA7Y2FzZSAyMjQ6Y2FzZSAyMjU6bGV0IGE9dC5vcGVyYXRvcjtyZXR1cm4gYT09PTQ2fHxhPT09NDc/MjowO2Nhc2UgMjQ5OmNhc2UgMjUwOnJldHVybiB0LmluaXRpYWxpemVyPT09ZT8xOjA7Y2FzZSAyMTc6Y2FzZSAyMDk6Y2FzZSAyMzA6Y2FzZSAyMzU6ZT10O2JyZWFrO2Nhc2UgMzA1OmU9dC5wYXJlbnQ7YnJlYWs7Y2FzZSAzMDQ6aWYodC5uYW1lIT09ZSlyZXR1cm4gMDtlPXQucGFyZW50O2JyZWFrO2Nhc2UgMzAzOmlmKHQubmFtZT09PWUpcmV0dXJuIDA7ZT10LnBhcmVudDticmVhaztkZWZhdWx0OnJldHVybiAwfXQ9ZS5wYXJlbnR9fWZ1bmN0aW9uIENJKGUpe3JldHVybiBUVChlKSE9PTB9ZnVuY3Rpb24gRUkoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNDE6Y2FzZSAyNDM6Y2FzZSAyNTQ6Y2FzZSAyNDU6Y2FzZSAyNTU6Y2FzZSAyNjk6Y2FzZSAyOTY6Y2FzZSAyOTc6Y2FzZSAyNTY6Y2FzZSAyNDg6Y2FzZSAyNDk6Y2FzZSAyNTA6Y2FzZSAyNDY6Y2FzZSAyNDc6Y2FzZSAyNTg6Y2FzZSAyOTk6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gQUkoZSl7cmV0dXJuIEFtKGUpfHxrbShlKXx8UmcoZSl8fG9zKGUpfHxKXyhlKX1mdW5jdGlvbiBTVChlLHQpe2Zvcig7ZSYmZS5raW5kPT09dDspZT1lLnBhcmVudDtyZXR1cm4gZX1mdW5jdGlvbiBrSShlKXtyZXR1cm4gU1QoZSwxOTYpfWZ1bmN0aW9uIHhUKGUpe3JldHVybiBTVChlLDIxNyl9ZnVuY3Rpb24gREkoZSl7bGV0IHQ7Zm9yKDtlJiZlLmtpbmQ9PT0xOTY7KXQ9ZSxlPWUucGFyZW50O3JldHVyblt0LGVdfWZ1bmN0aW9uIFBJKGUpe2Zvcig7ZjYoZSk7KWU9ZS50eXBlO3JldHVybiBlfWZ1bmN0aW9uIEdsKGUsdCl7cmV0dXJuIGxzKGUsdD8xNzoxKX1mdW5jdGlvbiBJSShlKXtyZXR1cm4gZS5raW5kIT09MjExJiZlLmtpbmQhPT0yMTI/ITE6KGU9eFQoZS5wYXJlbnQpLGUmJmUua2luZD09PTIyMCl9ZnVuY3Rpb24gTkkoZSx0KXtmb3IoO2U7KXtpZihlPT09dClyZXR1cm4hMDtlPWUucGFyZW50fXJldHVybiExfWZ1bmN0aW9uIHdUKGUpe3JldHVybiFpaShlKSYmIWltKGUpJiZIbyhlLnBhcmVudCkmJmUucGFyZW50Lm5hbWU9PT1lfWZ1bmN0aW9uIE9JKGUpe2xldCB0PWUucGFyZW50O3N3aXRjaChlLmtpbmQpe2Nhc2UgMTE6Y2FzZSAxNTpjYXNlIDk6aWYoYW8odCkpcmV0dXJuIHQucGFyZW50O2Nhc2UgODA6aWYoSG8odCkpcmV0dXJuIHQubmFtZT09PWU/dDp2b2lkIDA7aWYoTV8odCkpe2xldCByPXQucGFyZW50O3JldHVybiBoXyhyKSYmci5uYW1lPT09dD9yOnZvaWQgMH1lbHNle2xldCByPXQucGFyZW50O3JldHVybiBDdChyKSYmSmEocikhPT0wJiYoci5sZWZ0LnN5bWJvbHx8ci5zeW1ib2wpJiZCbChyKT09PWU/cjp2b2lkIDB9Y2FzZSA4MTpyZXR1cm4gSG8odCkmJnQubmFtZT09PWU/dDp2b2lkIDA7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIENUKGUpe3JldHVybiBRaShlKSYmZS5wYXJlbnQua2luZD09PTE2NyYmSG8oZS5wYXJlbnQucGFyZW50KX1mdW5jdGlvbiBNSShlKXtsZXQgdD1lLnBhcmVudDtzd2l0Y2godC5raW5kKXtjYXNlIDE3MjpjYXNlIDE3MTpjYXNlIDE3NDpjYXNlIDE3MzpjYXNlIDE3NzpjYXNlIDE3ODpjYXNlIDMwNjpjYXNlIDMwMzpjYXNlIDIxMTpyZXR1cm4gdC5uYW1lPT09ZTtjYXNlIDE2NjpyZXR1cm4gdC5yaWdodD09PWU7Y2FzZSAyMDg6Y2FzZSAyNzY6cmV0dXJuIHQucHJvcGVydHlOYW1lPT09ZTtjYXNlIDI4MTpjYXNlIDI5MTpjYXNlIDI4NTpjYXNlIDI4NjpjYXNlIDI4NzpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBMSShlKXtyZXR1cm4gZS5raW5kPT09MjcxfHxlLmtpbmQ9PT0yNzB8fGUua2luZD09PTI3MyYmZS5uYW1lfHxlLmtpbmQ9PT0yNzR8fGUua2luZD09PTI4MHx8ZS5raW5kPT09Mjc2fHxlLmtpbmQ9PT0yODF8fGUua2luZD09PTI3NyYmRDAoZSk/ITA6V3QoZSkmJihDdChlKSYmSmEoZSk9PT0yJiZEMChlKXx8QnIoZSkmJkN0KGUucGFyZW50KSYmZS5wYXJlbnQubGVmdD09PWUmJmUucGFyZW50Lm9wZXJhdG9yVG9rZW4ua2luZD09PTY0JiZiMihlLnBhcmVudC5yaWdodCkpfWZ1bmN0aW9uIEVUKGUpe3N3aXRjaChlLnBhcmVudC5raW5kKXtjYXNlIDI3MzpjYXNlIDI3NjpjYXNlIDI3NDpjYXNlIDI4MTpjYXNlIDI3NzpjYXNlIDI3MTpjYXNlIDI4MDpyZXR1cm4gZS5wYXJlbnQ7Y2FzZSAxNjY6ZG8gZT1lLnBhcmVudDt3aGlsZShlLnBhcmVudC5raW5kPT09MTY2KTtyZXR1cm4gRVQoZSl9fWZ1bmN0aW9uIGIyKGUpe3JldHVybiBjbyhlKXx8SWwoZSl9ZnVuY3Rpb24gRDAoZSl7bGV0IHQ9QVQoZSk7cmV0dXJuIGIyKHQpfWZ1bmN0aW9uIEFUKGUpe3JldHVybiBzcyhlKT9lLmV4cHJlc3Npb246ZS5yaWdodH1mdW5jdGlvbiBKSShlKXtyZXR1cm4gZS5raW5kPT09MzA0P2UubmFtZTplLmtpbmQ9PT0zMDM/ZS5pbml0aWFsaXplcjplLnBhcmVudC5yaWdodH1mdW5jdGlvbiBrVChlKXtsZXQgdD1EVChlKTtpZih0JiZXdChlKSl7bGV0IHI9QjQoZSk7aWYocilyZXR1cm4gci5jbGFzc31yZXR1cm4gdH1mdW5jdGlvbiBEVChlKXtsZXQgdD1tbShlLmhlcml0YWdlQ2xhdXNlcyw5Nik7cmV0dXJuIHQmJnQudHlwZXMubGVuZ3RoPjA/dC50eXBlc1swXTp2b2lkIDB9ZnVuY3Rpb24gUFQoZSl7aWYoV3QoZSkpcmV0dXJuIFU0KGUpLm1hcCh0PT50LmNsYXNzKTt7bGV0IHQ9bW0oZS5oZXJpdGFnZUNsYXVzZXMsMTE5KTtyZXR1cm4gdD09bnVsbD92b2lkIDA6dC50eXBlc319ZnVuY3Rpb24gSVQoZSl7cmV0dXJuIHN1KGUpP05UKGUpfHwkZTpkbihlKSYmeV8oJGYoa1QoZSkpLFBUKGUpKXx8JGV9ZnVuY3Rpb24gTlQoZSl7bGV0IHQ9bW0oZS5oZXJpdGFnZUNsYXVzZXMsOTYpO3JldHVybiB0P3QudHlwZXM6dm9pZCAwfWZ1bmN0aW9uIG1tKGUsdCl7aWYoZSl7Zm9yKGxldCByIG9mIGUpaWYoci50b2tlbj09PXQpcmV0dXJuIHJ9fWZ1bmN0aW9uIFJJKGUsdCl7Zm9yKDtlOyl7aWYoZS5raW5kPT09dClyZXR1cm4gZTtlPWUucGFyZW50fX1mdW5jdGlvbiBTaShlKXtyZXR1cm4gODM8PWUmJmU8PTE2NX1mdW5jdGlvbiBPVChlKXtyZXR1cm4gMTk8PWUmJmU8PTc5fWZ1bmN0aW9uIEpmKGUpe3JldHVybiBTaShlKXx8T1QoZSl9ZnVuY3Rpb24gdjIoZSl7cmV0dXJuIDEyODw9ZSYmZTw9MTY1fWZ1bmN0aW9uIE1UKGUpe3JldHVybiBTaShlKSYmIXYyKGUpfWZ1bmN0aW9uIGpJKGUpe3JldHVybiAxMTk8PWUmJmU8PTEyN31mdW5jdGlvbiBGSShlKXtsZXQgdD1SbChlKTtyZXR1cm4gdCE9PXZvaWQgMCYmTVQodCl9ZnVuY3Rpb24gQkkoZSl7bGV0IHQ9UmwoZSk7cmV0dXJuIHQhPT12b2lkIDAmJlNpKHQpfWZ1bmN0aW9uIFVJKGUpe2xldCB0PVA0KGUpO3JldHVybiEhdCYmIXYyKHQpfWZ1bmN0aW9uIHFJKGUpe3JldHVybiAyPD1lJiZlPD03fWZ1bmN0aW9uIHpJKGUpe2lmKCFlKXJldHVybiA0O2xldCB0PTA7c3dpdGNoKGUua2luZCl7Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAxNzQ6ZS5hc3Rlcmlza1Rva2VuJiYodHw9MSk7Y2FzZSAyMTk6Z3IoZSw1MTIpJiYodHw9Mik7YnJlYWt9cmV0dXJuIGUuYm9keXx8KHR8PTQpLHR9ZnVuY3Rpb24gV0koZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAyNjI6Y2FzZSAyMTg6Y2FzZSAyMTk6Y2FzZSAxNzQ6cmV0dXJuIGUuYm9keSE9PXZvaWQgMCYmZS5hc3Rlcmlza1Rva2VuPT09dm9pZCAwJiZncihlLDUxMil9cmV0dXJuITF9ZnVuY3Rpb24gUWkoZSl7cmV0dXJuIEtuKGUpfHxsbyhlKX1mdW5jdGlvbiBUMihlKXtyZXR1cm4gRG0oZSkmJihlLm9wZXJhdG9yPT09NDB8fGUub3BlcmF0b3I9PT00MSkmJmxvKGUub3BlcmFuZCl9ZnVuY3Rpb24gTFQoZSl7bGV0IHQ9QmwoZSk7cmV0dXJuISF0JiZTMih0KX1mdW5jdGlvbiBTMihlKXtpZighKGUua2luZD09PTE2N3x8ZS5raW5kPT09MjEyKSlyZXR1cm4hMTtsZXQgdD1SYShlKT9HbChlLmFyZ3VtZW50RXhwcmVzc2lvbik6ZS5leHByZXNzaW9uO3JldHVybiFRaSh0KSYmIVQyKHQpfWZ1bmN0aW9uIGdkKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgODA6Y2FzZSA4MTpyZXR1cm4gZS5lc2NhcGVkVGV4dDtjYXNlIDExOmNhc2UgOTpyZXR1cm4gTW4oZS50ZXh0KTtjYXNlIDE2NzpsZXQgdD1lLmV4cHJlc3Npb247cmV0dXJuIFFpKHQpP01uKHQudGV4dCk6VDIodCk/dC5vcGVyYXRvcj09PTQxP25yKHQub3BlcmF0b3IpK3Qub3BlcmFuZC50ZXh0OnQub3BlcmFuZC50ZXh0OnZvaWQgMDtjYXNlIDI5NTpyZXR1cm4gWWwoZSk7ZGVmYXVsdDpyZXR1cm4gTi5hc3NlcnROZXZlcihlKX19ZnVuY3Rpb24gUDAoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSA4MDpjYXNlIDExOmNhc2UgMTU6Y2FzZSA5OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGJkKGUpe3JldHVybiBybyhlKT9PdChlKTpVXyhlKT9LbChlKTplLnRleHR9ZnVuY3Rpb24gSlQoZSl7cmV0dXJuIHJvKGUpP2UuZXNjYXBlZFRleHQ6VV8oZSk/WWwoZSk6TW4oZS50ZXh0KX1mdW5jdGlvbiBWSShlKXtyZXR1cm5gX19AJHtnZXRTeW1ib2xJZChlKX1AJHtlLmVzY2FwZWROYW1lfWB9ZnVuY3Rpb24gSEkoZSx0KXtyZXR1cm5gX18jJHtnZXRTeW1ib2xJZChlKX1AJHt0fWB9ZnVuY3Rpb24gR0koZSl7cmV0dXJuIEZyKGUuZXNjYXBlZE5hbWUsXCJfX0BcIil9ZnVuY3Rpb24gWEkoZSl7cmV0dXJuIEZyKGUuZXNjYXBlZE5hbWUsXCJfXyNcIil9ZnVuY3Rpb24gJEkoZSl7cmV0dXJuIGUua2luZD09PTgwJiZlLmVzY2FwZWRUZXh0PT09XCJTeW1ib2xcIn1mdW5jdGlvbiBSVChlKXtyZXR1cm4gRWUoZSk/T3QoZSk9PT1cIl9fcHJvdG9fX1wiOm1uKGUpJiZlLnRleHQ9PT1cIl9fcHJvdG9fX1wifWZ1bmN0aW9uIEtzKGUsdCl7c3dpdGNoKGU9bHMoZSksZS5raW5kKXtjYXNlIDIzMTppZihjbGFzc0hhc0RlY2xhcmVkT3JFeHBsaWNpdGx5QXNzaWduZWROYW1lKGUpKXJldHVybiExO2JyZWFrO2Nhc2UgMjE4OmlmKGUubmFtZSlyZXR1cm4hMTticmVhaztjYXNlIDIxOTpicmVhaztkZWZhdWx0OnJldHVybiExfXJldHVybiB0eXBlb2YgdD09XCJmdW5jdGlvblwiP3QoZSk6ITB9ZnVuY3Rpb24galQoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAzMDM6cmV0dXJuIVJUKGUubmFtZSk7Y2FzZSAzMDQ6cmV0dXJuISFlLm9iamVjdEFzc2lnbm1lbnRJbml0aWFsaXplcjtjYXNlIDI2MDpyZXR1cm4gRWUoZS5uYW1lKSYmISFlLmluaXRpYWxpemVyO2Nhc2UgMTY5OnJldHVybiBFZShlLm5hbWUpJiYhIWUuaW5pdGlhbGl6ZXImJiFlLmRvdERvdERvdFRva2VuO2Nhc2UgMjA4OnJldHVybiBFZShlLm5hbWUpJiYhIWUuaW5pdGlhbGl6ZXImJiFlLmRvdERvdERvdFRva2VuO2Nhc2UgMTcyOnJldHVybiEhZS5pbml0aWFsaXplcjtjYXNlIDIyNjpzd2l0Y2goZS5vcGVyYXRvclRva2VuLmtpbmQpe2Nhc2UgNjQ6Y2FzZSA3NzpjYXNlIDc2OmNhc2UgNzg6cmV0dXJuIEVlKGUubGVmdCl9YnJlYWs7Y2FzZSAyNzc6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gUUkoZSx0KXtpZighalQoZSkpcmV0dXJuITE7c3dpdGNoKGUua2luZCl7Y2FzZSAzMDM6cmV0dXJuIEtzKGUuaW5pdGlhbGl6ZXIsdCk7Y2FzZSAzMDQ6cmV0dXJuIEtzKGUub2JqZWN0QXNzaWdubWVudEluaXRpYWxpemVyLHQpO2Nhc2UgMjYwOmNhc2UgMTY5OmNhc2UgMjA4OmNhc2UgMTcyOnJldHVybiBLcyhlLmluaXRpYWxpemVyLHQpO2Nhc2UgMjI2OnJldHVybiBLcyhlLnJpZ2h0LHQpO2Nhc2UgMjc3OnJldHVybiBLcyhlLmV4cHJlc3Npb24sdCl9fWZ1bmN0aW9uIFlJKGUpe3JldHVybiBlLmVzY2FwZWRUZXh0PT09XCJwdXNoXCJ8fGUuZXNjYXBlZFRleHQ9PT1cInVuc2hpZnRcIn1mdW5jdGlvbiBLSShlKXtyZXR1cm4gaG0oZSkua2luZD09PTE2OX1mdW5jdGlvbiBobShlKXtmb3IoO2Uua2luZD09PTIwODspZT1lLnBhcmVudC5wYXJlbnQ7cmV0dXJuIGV9ZnVuY3Rpb24gWkkoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTc2fHx0PT09MjE4fHx0PT09MjYyfHx0PT09MjE5fHx0PT09MTc0fHx0PT09MTc3fHx0PT09MTc4fHx0PT09MjY3fHx0PT09MzEyfWZ1bmN0aW9uIFRhKGUpe3JldHVybiBPYShlLnBvcyl8fE9hKGUuZW5kKX1mdW5jdGlvbiBlTihlKXtyZXR1cm4gRmwoZSxpaSl8fGV9ZnVuY3Rpb24gdE4oZSl7bGV0IHQ9eDIoZSkscj1lLmtpbmQ9PT0yMTQmJmUuYXJndW1lbnRzIT09dm9pZCAwO3JldHVybiBGVChlLmtpbmQsdCxyKX1mdW5jdGlvbiBGVChlLHQscil7c3dpdGNoKGUpe2Nhc2UgMjE0OnJldHVybiByPzA6MTtjYXNlIDIyNDpjYXNlIDIyMTpjYXNlIDIyMjpjYXNlIDIyMDpjYXNlIDIyMzpjYXNlIDIyNzpjYXNlIDIyOTpyZXR1cm4gMTtjYXNlIDIyNjpzd2l0Y2godCl7Y2FzZSA0MzpjYXNlIDY0OmNhc2UgNjU6Y2FzZSA2NjpjYXNlIDY4OmNhc2UgNjc6Y2FzZSA2OTpjYXNlIDcwOmNhc2UgNzE6Y2FzZSA3MjpjYXNlIDczOmNhc2UgNzQ6Y2FzZSA3OTpjYXNlIDc1OmNhc2UgNzY6Y2FzZSA3NzpjYXNlIDc4OnJldHVybiAxfX1yZXR1cm4gMH1mdW5jdGlvbiByTihlKXtsZXQgdD14MihlKSxyPWUua2luZD09PTIxNCYmZS5hcmd1bWVudHMhPT12b2lkIDA7cmV0dXJuIEJUKGUua2luZCx0LHIpfWZ1bmN0aW9uIHgyKGUpe3JldHVybiBlLmtpbmQ9PT0yMjY/ZS5vcGVyYXRvclRva2VuLmtpbmQ6ZS5raW5kPT09MjI0fHxlLmtpbmQ9PT0yMjU/ZS5vcGVyYXRvcjplLmtpbmR9ZnVuY3Rpb24gQlQoZSx0LHIpe3N3aXRjaChlKXtjYXNlIDM2MTpyZXR1cm4gMDtjYXNlIDIzMDpyZXR1cm4gMTtjYXNlIDIyOTpyZXR1cm4gMjtjYXNlIDIyNzpyZXR1cm4gNDtjYXNlIDIyNjpzd2l0Y2godCl7Y2FzZSAyODpyZXR1cm4gMDtjYXNlIDY0OmNhc2UgNjU6Y2FzZSA2NjpjYXNlIDY4OmNhc2UgNjc6Y2FzZSA2OTpjYXNlIDcwOmNhc2UgNzE6Y2FzZSA3MjpjYXNlIDczOmNhc2UgNzQ6Y2FzZSA3OTpjYXNlIDc1OmNhc2UgNzY6Y2FzZSA3NzpjYXNlIDc4OnJldHVybiAzO2RlZmF1bHQ6cmV0dXJuIHBsKHQpfWNhc2UgMjE2OmNhc2UgMjM1OmNhc2UgMjI0OmNhc2UgMjIxOmNhc2UgMjIyOmNhc2UgMjIwOmNhc2UgMjIzOnJldHVybiAxNjtjYXNlIDIyNTpyZXR1cm4gMTc7Y2FzZSAyMTM6cmV0dXJuIDE4O2Nhc2UgMjE0OnJldHVybiByPzE5OjE4O2Nhc2UgMjE1OmNhc2UgMjExOmNhc2UgMjEyOmNhc2UgMjM2OnJldHVybiAxOTtjYXNlIDIzNDpjYXNlIDIzODpyZXR1cm4gMTE7Y2FzZSAxMTA6Y2FzZSAxMDg6Y2FzZSA4MDpjYXNlIDgxOmNhc2UgMTA2OmNhc2UgMTEyOmNhc2UgOTc6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpjYXNlIDIwOTpjYXNlIDIxMDpjYXNlIDIxODpjYXNlIDIxOTpjYXNlIDIzMTpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAyMjg6Y2FzZSAyMTc6Y2FzZSAyMzI6Y2FzZSAyODQ6Y2FzZSAyODU6Y2FzZSAyODg6cmV0dXJuIDIwO2RlZmF1bHQ6cmV0dXJuLTF9fWZ1bmN0aW9uIHBsKGUpe3N3aXRjaChlKXtjYXNlIDYxOnJldHVybiA0O2Nhc2UgNTc6cmV0dXJuIDU7Y2FzZSA1NjpyZXR1cm4gNjtjYXNlIDUyOnJldHVybiA3O2Nhc2UgNTM6cmV0dXJuIDg7Y2FzZSA1MTpyZXR1cm4gOTtjYXNlIDM1OmNhc2UgMzY6Y2FzZSAzNzpjYXNlIDM4OnJldHVybiAxMDtjYXNlIDMwOmNhc2UgMzI6Y2FzZSAzMzpjYXNlIDM0OmNhc2UgMTA0OmNhc2UgMTAzOmNhc2UgMTMwOmNhc2UgMTUyOnJldHVybiAxMTtjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpyZXR1cm4gMTI7Y2FzZSA0MDpjYXNlIDQxOnJldHVybiAxMztjYXNlIDQyOmNhc2UgNDQ6Y2FzZSA0NTpyZXR1cm4gMTQ7Y2FzZSA0MzpyZXR1cm4gMTV9cmV0dXJuLTF9ZnVuY3Rpb24gbk4oZSl7cmV0dXJuICRyKGUsdD0+e3N3aXRjaCh0LmtpbmQpe2Nhc2UgMjk0OnJldHVybiEhdC5leHByZXNzaW9uO2Nhc2UgMTI6cmV0dXJuIXQuY29udGFpbnNPbmx5VHJpdmlhV2hpdGVTcGFjZXM7ZGVmYXVsdDpyZXR1cm4hMH19KX1mdW5jdGlvbiBpTigpe2xldCBlPVtdLHQ9W10scj1uZXcgTWFwLGE9ITE7cmV0dXJue2FkZDpwLGxvb2t1cDpfLGdldEdsb2JhbERpYWdub3N0aWNzOmQsZ2V0RGlhZ25vc3RpY3M6aH07ZnVuY3Rpb24gXyhsKXtsZXQgdjtpZihsLmZpbGU/dj1yLmdldChsLmZpbGUuZmlsZU5hbWUpOnY9ZSwhdilyZXR1cm47bGV0IHk9TWwodixsLGJ0LHhkKTtpZih5Pj0wKXJldHVybiB2W3ldfWZ1bmN0aW9uIHAobCl7bGV0IHY7bC5maWxlPyh2PXIuZ2V0KGwuZmlsZS5maWxlTmFtZSksdnx8KHY9W10sci5zZXQobC5maWxlLmZpbGVOYW1lLHYpLHlsKHQsbC5maWxlLmZpbGVOYW1lLENpKSkpOihhJiYoYT0hMSxlPWUuc2xpY2UoKSksdj1lKSx5bCh2LGwseGQpfWZ1bmN0aW9uIGQoKXtyZXR1cm4gYT0hMCxlfWZ1bmN0aW9uIGgobCl7aWYobClyZXR1cm4gci5nZXQobCl8fFtdO2xldCB2PVR2KHQseT0+ci5nZXQoeSkpO3JldHVybiBlLmxlbmd0aCYmdi51bnNoaWZ0KC4uLmUpLHZ9fWZ1bmN0aW9uIGFOKGUpe3JldHVybiBlLnJlcGxhY2UoYngsXCJcXFxcJHtcIil9ZnVuY3Rpb24gVVQoZSl7cmV0dXJuIGUmJiEhKEJ4KGUpP2UudGVtcGxhdGVGbGFnczplLmhlYWQudGVtcGxhdGVGbGFnc3x8bXQoZS50ZW1wbGF0ZVNwYW5zLHQ9PiEhdC5saXRlcmFsLnRlbXBsYXRlRmxhZ3MpKX1mdW5jdGlvbiBxVChlKXtyZXR1cm5cIlxcXFx1XCIrKFwiMDAwMFwiK2UudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpLnNsaWNlKC00KX1mdW5jdGlvbiBvTihlLHQscil7aWYoZS5jaGFyQ29kZUF0KDApPT09MCl7bGV0IGE9ci5jaGFyQ29kZUF0KHQrZS5sZW5ndGgpO3JldHVybiBhPj00OCYmYTw9NTc/XCJcXFxceDAwXCI6XCJcXFxcMFwifXJldHVybiB4eC5nZXQoZSl8fHFUKGUuY2hhckNvZGVBdCgwKSl9ZnVuY3Rpb24gdmQoZSx0KXtsZXQgcj10PT09OTY/U3g6dD09PTM5P1R4OnZ4O3JldHVybiBlLnJlcGxhY2UocixvTil9ZnVuY3Rpb24gVGQoZSx0KXtyZXR1cm4gZT12ZChlLHQpLFcwLnRlc3QoZSk/ZS5yZXBsYWNlKFcwLHI9PnFUKHIuY2hhckNvZGVBdCgwKSkpOmV9ZnVuY3Rpb24gc04oZSl7cmV0dXJuXCImI3hcIitlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK1wiO1wifWZ1bmN0aW9uIF9OKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCk9PT0wP1wiJiMwO1wiOkV4LmdldChlKXx8c04oZS5jaGFyQ29kZUF0KDApKX1mdW5jdGlvbiB6VChlLHQpe2xldCByPXQ9PT0zOT9DeDp3eDtyZXR1cm4gZS5yZXBsYWNlKHIsX04pfWZ1bmN0aW9uIGNOKGUpe2xldCB0PWUubGVuZ3RoO3JldHVybiB0Pj0yJiZlLmNoYXJDb2RlQXQoMCk9PT1lLmNoYXJDb2RlQXQodC0xKSYmbE4oZS5jaGFyQ29kZUF0KDApKT9lLnN1YnN0cmluZygxLHQtMSk6ZX1mdW5jdGlvbiBsTihlKXtyZXR1cm4gZT09PTM5fHxlPT09MzR8fGU9PT05Nn1mdW5jdGlvbiBXVChlKXtsZXQgdD1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIHQ+PTk3JiZ0PD0xMjJ8fGVvKGUsXCItXCIpfWZ1bmN0aW9uIHcyKGUpe2xldCB0PVBvWzFdO2ZvcihsZXQgcj1Qby5sZW5ndGg7cjw9ZTtyKyspUG8ucHVzaChQb1tyLTFdK3QpO3JldHVybiBQb1tlXX1mdW5jdGlvbiBKbygpe3JldHVybiBQb1sxXS5sZW5ndGh9ZnVuY3Rpb24gdU4oKXtyZXR1cm4gZW8oSGYsXCItZGV2XCIpfHxlbyhIZixcIi1pbnNpZGVyc1wiKX1mdW5jdGlvbiBwTihlKXt2YXIgdCxyLGEsXyxwLGQ9ITE7ZnVuY3Rpb24gaChLKXtsZXQgdWU9VmQoSyk7dWUubGVuZ3RoPjE/KF89Xyt1ZS5sZW5ndGgtMSxwPXQubGVuZ3RoLUsubGVuZ3RoK2thKHVlKSxhPXAtdC5sZW5ndGg9PT0wKTphPSExfWZ1bmN0aW9uIGwoSyl7SyYmSy5sZW5ndGgmJihhJiYoSz13MihyKStLLGE9ITEpLHQrPUssaChLKSl9ZnVuY3Rpb24gdihLKXtLJiYoZD0hMSksbChLKX1mdW5jdGlvbiB5KEspe0smJihkPSEwKSxsKEspfWZ1bmN0aW9uIEMoKXt0PVwiXCIscj0wLGE9ITAsXz0wLHA9MCxkPSExfWZ1bmN0aW9uIFMoSyl7SyE9PXZvaWQgMCYmKHQrPUssaChLKSxkPSExKX1mdW5jdGlvbiBrKEspe0smJksubGVuZ3RoJiZ2KEspfWZ1bmN0aW9uIEwoSyl7KCFhfHxLKSYmKHQrPWUsXysrLHA9dC5sZW5ndGgsYT0hMCxkPSExKX1mdW5jdGlvbiBHKCl7cmV0dXJuIGE/dC5sZW5ndGg6dC5sZW5ndGgrZS5sZW5ndGh9cmV0dXJuIEMoKSx7d3JpdGU6dixyYXdXcml0ZTpTLHdyaXRlTGl0ZXJhbDprLHdyaXRlTGluZTpMLGluY3JlYXNlSW5kZW50OigpPT57cisrfSxkZWNyZWFzZUluZGVudDooKT0+e3ItLX0sZ2V0SW5kZW50OigpPT5yLGdldFRleHRQb3M6KCk9PnQubGVuZ3RoLGdldExpbmU6KCk9Pl8sZ2V0Q29sdW1uOigpPT5hP3IqSm8oKTp0Lmxlbmd0aC1wLGdldFRleHQ6KCk9PnQsaXNBdFN0YXJ0T2ZMaW5lOigpPT5hLGhhc1RyYWlsaW5nQ29tbWVudDooKT0+ZCxoYXNUcmFpbGluZ1doaXRlc3BhY2U6KCk9PiEhdC5sZW5ndGgmJlZpKHQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKSksY2xlYXI6Qyx3cml0ZUtleXdvcmQ6dix3cml0ZU9wZXJhdG9yOnYsd3JpdGVQYXJhbWV0ZXI6dix3cml0ZVByb3BlcnR5OnYsd3JpdGVQdW5jdHVhdGlvbjp2LHdyaXRlU3BhY2U6dix3cml0ZVN0cmluZ0xpdGVyYWw6dix3cml0ZVN5bWJvbDooSyx1ZSk9PnYoSyksd3JpdGVUcmFpbGluZ1NlbWljb2xvbjp2LHdyaXRlQ29tbWVudDp5LGdldFRleHRQb3NXaXRoV3JpdGVMaW5lOkd9fWZ1bmN0aW9uIGZOKGUpe2xldCB0PSExO2Z1bmN0aW9uIHIoKXt0JiYoZS53cml0ZVRyYWlsaW5nU2VtaWNvbG9uKFwiO1wiKSx0PSExKX1yZXR1cm57Li4uZSx3cml0ZVRyYWlsaW5nU2VtaWNvbG9uKCl7dD0hMH0sd3JpdGVMaXRlcmFsKGEpe3IoKSxlLndyaXRlTGl0ZXJhbChhKX0sd3JpdGVTdHJpbmdMaXRlcmFsKGEpe3IoKSxlLndyaXRlU3RyaW5nTGl0ZXJhbChhKX0sd3JpdGVTeW1ib2woYSxfKXtyKCksZS53cml0ZVN5bWJvbChhLF8pfSx3cml0ZVB1bmN0dWF0aW9uKGEpe3IoKSxlLndyaXRlUHVuY3R1YXRpb24oYSl9LHdyaXRlS2V5d29yZChhKXtyKCksZS53cml0ZUtleXdvcmQoYSl9LHdyaXRlT3BlcmF0b3IoYSl7cigpLGUud3JpdGVPcGVyYXRvcihhKX0sd3JpdGVQYXJhbWV0ZXIoYSl7cigpLGUud3JpdGVQYXJhbWV0ZXIoYSl9LHdyaXRlU3BhY2UoYSl7cigpLGUud3JpdGVTcGFjZShhKX0sd3JpdGVQcm9wZXJ0eShhKXtyKCksZS53cml0ZVByb3BlcnR5KGEpfSx3cml0ZUNvbW1lbnQoYSl7cigpLGUud3JpdGVDb21tZW50KGEpfSx3cml0ZUxpbmUoKXtyKCksZS53cml0ZUxpbmUoKX0saW5jcmVhc2VJbmRlbnQoKXtyKCksZS5pbmNyZWFzZUluZGVudCgpfSxkZWNyZWFzZUluZGVudCgpe3IoKSxlLmRlY3JlYXNlSW5kZW50KCl9fX1mdW5jdGlvbiBDMihlKXtyZXR1cm4gZS51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzP2UudXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcygpOiExfWZ1bmN0aW9uIFZUKGUpe3JldHVybiBCZChDMihlKSl9ZnVuY3Rpb24gSFQoZSx0LHIpe3JldHVybiB0Lm1vZHVsZU5hbWV8fEUyKGUsdC5maWxlTmFtZSxyJiZyLmZpbGVOYW1lKX1mdW5jdGlvbiBVYihlLHQpe3JldHVybiBlLmdldENhbm9uaWNhbEZpbGVOYW1lKFBhKHQsZS5nZXRDdXJyZW50RGlyZWN0b3J5KCkpKX1mdW5jdGlvbiBkTihlLHQscil7bGV0IGE9dC5nZXRFeHRlcm5hbE1vZHVsZUZpbGVGcm9tRGVjbGFyYXRpb24ocik7aWYoIWF8fGEuaXNEZWNsYXJhdGlvbkZpbGUpcmV0dXJuO2xldCBfPWQyKHIpO2lmKCEoXyYmS24oXykmJiFycyhfLnRleHQpJiZVYihlLGEucGF0aCkuaW5kZXhPZihVYihlLHpvKGUuZ2V0Q29tbW9uU291cmNlRGlyZWN0b3J5KCkpKSk9PT0tMSkpcmV0dXJuIEhUKGUsYSl9ZnVuY3Rpb24gRTIoZSx0LHIpe2xldCBhPWw9PmUuZ2V0Q2Fub25pY2FsRmlsZU5hbWUobCksXz14aShyPyRpKHIpOmUuZ2V0Q29tbW9uU291cmNlRGlyZWN0b3J5KCksZS5nZXRDdXJyZW50RGlyZWN0b3J5KCksYSkscD1QYSh0LGUuZ2V0Q3VycmVudERpcmVjdG9yeSgpKSxkPWJnKF8scCxfLGEsITEpLGg9QWwoZCk7cmV0dXJuIHI/aGcoaCk6aH1mdW5jdGlvbiBtTihlLHQscil7bGV0IGE9dC5nZXRDb21waWxlck9wdGlvbnMoKSxfO3JldHVybiBhLm91dERpcj9fPUFsKCRUKGUsdCxhLm91dERpcikpOl89QWwoZSksXytyfWZ1bmN0aW9uIGhOKGUsdCl7cmV0dXJuIEdUKGUsdC5nZXRDb21waWxlck9wdGlvbnMoKSx0LmdldEN1cnJlbnREaXJlY3RvcnkoKSx0LmdldENvbW1vblNvdXJjZURpcmVjdG9yeSgpLHI9PnQuZ2V0Q2Fub25pY2FsRmlsZU5hbWUocikpfWZ1bmN0aW9uIEdUKGUsdCxyLGEsXyl7bGV0IHA9dC5kZWNsYXJhdGlvbkRpcnx8dC5vdXREaXIsZD1wP2syKGUscCxyLGEsXyk6ZSxoPVhUKGQpO3JldHVybiBBbChkKStofWZ1bmN0aW9uIFhUKGUpe3JldHVybiBlaShlLFtcIi5tanNcIixcIi5tdHNcIl0pP1wiLmQubXRzXCI6ZWkoZSxbXCIuY2pzXCIsXCIuY3RzXCJdKT9cIi5kLmN0c1wiOmVpKGUsW1wiLmpzb25cIl0pP1wiLmQuanNvbi50c1wiOlwiLmQudHNcIn1mdW5jdGlvbiB5TihlKXtyZXR1cm4gZWkoZSxbXCIuZC5tdHNcIixcIi5tanNcIixcIi5tdHNcIl0pP1tcIi5tdHNcIixcIi5tanNcIl06ZWkoZSxbXCIuZC5jdHNcIixcIi5janNcIixcIi5jdHNcIl0pP1tcIi5jdHNcIixcIi5janNcIl06ZWkoZSxbXCIuZC5qc29uLnRzXCJdKT9bXCIuanNvblwiXTpbXCIudHN4XCIsXCIudHNcIixcIi5qc3hcIixcIi5qc1wiXX1mdW5jdGlvbiBBMihlKXtyZXR1cm4gZS5vdXRGaWxlfHxlLm91dH1mdW5jdGlvbiBnTihlLHQpe3ZhciByO2lmKGUucGF0aHMpcmV0dXJuIGUuYmFzZVVybD8/Ti5jaGVja0RlZmluZWQoZS5wYXRoc0Jhc2VQYXRofHwoKHI9dC5nZXRDdXJyZW50RGlyZWN0b3J5KT09bnVsbD92b2lkIDA6ci5jYWxsKHQpKSxcIkVuY291bnRlcmVkICdwYXRocycgd2l0aG91dCBhICdiYXNlVXJsJywgY29uZmlnIGZpbGUsIG9yIGhvc3QgJ2dldEN1cnJlbnREaXJlY3RvcnknLlwiKX1mdW5jdGlvbiBiTihlLHQscil7bGV0IGE9ZS5nZXRDb21waWxlck9wdGlvbnMoKTtpZihBMihhKSl7bGV0IF89bmkoYSkscD1hLmVtaXREZWNsYXJhdGlvbk9ubHl8fF89PT0yfHxfPT09NDtyZXR1cm4gJHIoZS5nZXRTb3VyY2VGaWxlcygpLGQ9PihwfHwhWm8oZCkpJiZJMChkLGUscikpfWVsc2V7bGV0IF89dD09PXZvaWQgMD9lLmdldFNvdXJjZUZpbGVzKCk6W3RdO3JldHVybiAkcihfLHA9PkkwKHAsZSxyKSl9fWZ1bmN0aW9uIEkwKGUsdCxyKXtyZXR1cm4hKHQuZ2V0Q29tcGlsZXJPcHRpb25zKCkubm9FbWl0Rm9ySnNGaWxlcyYmYzIoZSkpJiYhZS5pc0RlY2xhcmF0aW9uRmlsZSYmIXQuaXNTb3VyY2VGaWxlRnJvbUV4dGVybmFsTGlicmFyeShlKSYmKHJ8fCEoZTIoZSkmJnQuZ2V0UmVzb2x2ZWRQcm9qZWN0UmVmZXJlbmNlVG9SZWRpcmVjdChlLmZpbGVOYW1lKSkmJiF0LmlzU291cmNlT2ZQcm9qZWN0UmVmZXJlbmNlUmVkaXJlY3QoZS5maWxlTmFtZSkpfWZ1bmN0aW9uICRUKGUsdCxyKXtyZXR1cm4gazIoZSxyLHQuZ2V0Q3VycmVudERpcmVjdG9yeSgpLHQuZ2V0Q29tbW9uU291cmNlRGlyZWN0b3J5KCksYT0+dC5nZXRDYW5vbmljYWxGaWxlTmFtZShhKSl9ZnVuY3Rpb24gazIoZSx0LHIsYSxfKXtsZXQgcD1QYShlLHIpO3JldHVybiBwPV8ocCkuaW5kZXhPZihfKGEpKT09PTA/cC5zdWJzdHJpbmcoYS5sZW5ndGgpOnAsaHIodCxwKX1mdW5jdGlvbiB2TihlLHQscixhLF8scCxkKXtlLndyaXRlRmlsZShyLGEsXyxoPT57dC5hZGQoZmwoVS5Db3VsZF9ub3Rfd3JpdGVfZmlsZV8wX0NvbG9uXzEscixoKSl9LHAsZCl9ZnVuY3Rpb24gUVQoZSx0LHIpe2lmKGUubGVuZ3RoPkVpKGUpJiYhcihlKSl7bGV0IGE9JGkoZSk7UVQoYSx0LHIpLHQoZSl9fWZ1bmN0aW9uIFROKGUsdCxyLGEsXyxwKXt0cnl7YShlLHQscil9Y2F0Y2h7UVQoJGkocG4oZSkpLF8scCksYShlLHQscil9fWZ1bmN0aW9uIFNOKGUsdCl7bGV0IHI9SWEoZSk7cmV0dXJuIF9fKHIsdCl9ZnVuY3Rpb24gQ2EoZSx0KXtyZXR1cm4gX18oZSx0KX1mdW5jdGlvbiBZVChlKXtyZXR1cm4gWXIoZS5tZW1iZXJzLHQ9PkpfKHQpJiZ3bCh0LmJvZHkpKX1mdW5jdGlvbiBEMihlKXtpZihlJiZlLnBhcmFtZXRlcnMubGVuZ3RoPjApe2xldCB0PWUucGFyYW1ldGVycy5sZW5ndGg9PT0yJiZYbChlLnBhcmFtZXRlcnNbMF0pO3JldHVybiBlLnBhcmFtZXRlcnNbdD8xOjBdfX1mdW5jdGlvbiB4TihlKXtsZXQgdD1EMihlKTtyZXR1cm4gdCYmdC50eXBlfWZ1bmN0aW9uIEtUKGUpe2lmKGUucGFyYW1ldGVycy5sZW5ndGgmJiFjdShlKSl7bGV0IHQ9ZS5wYXJhbWV0ZXJzWzBdO2lmKFhsKHQpKXJldHVybiB0fX1mdW5jdGlvbiBYbChlKXtyZXR1cm4geW0oZS5uYW1lKX1mdW5jdGlvbiB5bShlKXtyZXR1cm4hIWUmJmUua2luZD09PTgwJiZaVChlKX1mdW5jdGlvbiB3TihlKXtyZXR1cm4hIUtyKGUsdD0+dC5raW5kPT09MTg2PyEwOnQua2luZD09PTgwfHx0LmtpbmQ9PT0xNjY/ITE6XCJxdWl0XCIpfWZ1bmN0aW9uIENOKGUpe2lmKCF5bShlKSlyZXR1cm4hMTtmb3IoO01fKGUucGFyZW50KSYmZS5wYXJlbnQubGVmdD09PWU7KWU9ZS5wYXJlbnQ7cmV0dXJuIGUucGFyZW50LmtpbmQ9PT0xODZ9ZnVuY3Rpb24gWlQoZSl7cmV0dXJuIGUuZXNjYXBlZFRleHQ9PT1cInRoaXNcIn1mdW5jdGlvbiBQMihlLHQpe2xldCByLGEsXyxwO3JldHVybiBMVCh0KT8ocj10LHQua2luZD09PTE3Nz9fPXQ6dC5raW5kPT09MTc4P3A9dDpOLmZhaWwoXCJBY2Nlc3NvciBoYXMgd3Jvbmcga2luZFwiKSk6eXIoZSxkPT57aWYobm0oZCkmJk4wKGQpPT09TjAodCkpe2xldCBoPWdkKGQubmFtZSksbD1nZCh0Lm5hbWUpO2g9PT1sJiYocj9hfHwoYT1kKTpyPWQsZC5raW5kPT09MTc3JiYhXyYmKF89ZCksZC5raW5kPT09MTc4JiYhcCYmKHA9ZCkpfX0pLHtmaXJzdEFjY2Vzc29yOnIsc2Vjb25kQWNjZXNzb3I6YSxnZXRBY2Nlc3NvcjpfLHNldEFjY2Vzc29yOnB9fWZ1bmN0aW9uIEkyKGUpe2lmKCFXdChlKSYmb3MoZSkpcmV0dXJuO2xldCB0PWUudHlwZTtyZXR1cm4gdHx8IVd0KGUpP3Q6SWcoZSk/ZS50eXBlRXhwcmVzc2lvbiYmZS50eXBlRXhwcmVzc2lvbi50eXBlOmVtKGUpfWZ1bmN0aW9uIEVOKGUpe3JldHVybiBlLnR5cGV9ZnVuY3Rpb24gQU4oZSl7cmV0dXJuIGN1KGUpP2UudHlwZSYmZS50eXBlLnR5cGVFeHByZXNzaW9uJiZlLnR5cGUudHlwZUV4cHJlc3Npb24udHlwZTplLnR5cGV8fChXdChlKT8kNChlKTp2b2lkIDApfWZ1bmN0aW9uIGVTKGUpe3JldHVybiBCbyhVbChlKSx0PT5rTih0KT90LnR5cGVQYXJhbWV0ZXJzOnZvaWQgMCl9ZnVuY3Rpb24ga04oZSl7cmV0dXJuIEtvKGUpJiYhKGUucGFyZW50LmtpbmQ9PT0zMjcmJihlLnBhcmVudC50YWdzLnNvbWUoSGwpfHxlLnBhcmVudC50YWdzLnNvbWUoTDYpKSl9ZnVuY3Rpb24gRE4oZSl7bGV0IHQ9RDIoZSk7cmV0dXJuIHQmJkkyKHQpfWZ1bmN0aW9uIHRTKGUsdCxyLGEpe3JTKGUsdCxyLnBvcyxhKX1mdW5jdGlvbiByUyhlLHQscixhKXthJiZhLmxlbmd0aCYmciE9PWFbMF0ucG9zJiZDYShlLHIpIT09Q2EoZSxhWzBdLnBvcykmJnQud3JpdGVMaW5lKCl9ZnVuY3Rpb24gUE4oZSx0LHIsYSl7ciE9PWEmJkNhKGUscikhPT1DYShlLGEpJiZ0LndyaXRlTGluZSgpfWZ1bmN0aW9uIG5TKGUsdCxyLGEsXyxwLGQsaCl7aWYoYSYmYS5sZW5ndGg+MCl7XyYmci53cml0ZVNwYWNlKFwiIFwiKTtsZXQgbD0hMTtmb3IobGV0IHYgb2YgYSlsJiYoci53cml0ZVNwYWNlKFwiIFwiKSxsPSExKSxoKGUsdCxyLHYucG9zLHYuZW5kLGQpLHYuaGFzVHJhaWxpbmdOZXdMaW5lP3Iud3JpdGVMaW5lKCk6bD0hMDtsJiZwJiZyLndyaXRlU3BhY2UoXCIgXCIpfX1mdW5jdGlvbiBJTihlLHQscixhLF8scCxkKXtsZXQgaCxsO2lmKGQ/Xy5wb3M9PT0wJiYoaD0kcihXbyhlLF8ucG9zKSx2KSk6aD1XbyhlLF8ucG9zKSxoKXtsZXQgeT1bXSxDO2ZvcihsZXQgUyBvZiBoKXtpZihDKXtsZXQgaz1DYSh0LEMuZW5kKTtpZihDYSh0LFMucG9zKT49aysyKWJyZWFrfXkucHVzaChTKSxDPVN9aWYoeS5sZW5ndGgpe2xldCBTPUNhKHQsa2EoeSkuZW5kKTtDYSh0LE50KGUsXy5wb3MpKT49UysyJiYodFModCxyLF8saCksblMoZSx0LHIseSwhMSwhMCxwLGEpLGw9e25vZGVQb3M6Xy5wb3MsZGV0YWNoZWRDb21tZW50RW5kUG9zOmthKHkpLmVuZH0pfX1yZXR1cm4gbDtmdW5jdGlvbiB2KHkpe3JldHVybiBMMyhlLHkucG9zKX19ZnVuY3Rpb24gTk4oZSx0LHIsYSxfLHApe2lmKGUuY2hhckNvZGVBdChhKzEpPT09NDIpe2xldCBkPVNnKHQsYSksaD10Lmxlbmd0aCxsO2ZvcihsZXQgdj1hLHk9ZC5saW5lO3Y8Xzt5Kyspe2xldCBDPXkrMT09PWg/ZS5sZW5ndGgrMTp0W3krMV07aWYodiE9PWEpe2w9PT12b2lkIDAmJihsPXFiKGUsdFtkLmxpbmVdLGEpKTtsZXQgaz1yLmdldEluZGVudCgpKkpvKCktbCtxYihlLHYsQyk7aWYoaz4wKXtsZXQgTD1rJUpvKCksRz13Migoay1MKS9KbygpKTtmb3Ioci5yYXdXcml0ZShHKTtMOylyLnJhd1dyaXRlKFwiIFwiKSxMLS19ZWxzZSByLnJhd1dyaXRlKFwiXCIpfU9OKGUsXyxyLHAsdixDKSx2PUN9fWVsc2Ugci53cml0ZUNvbW1lbnQoZS5zdWJzdHJpbmcoYSxfKSl9ZnVuY3Rpb24gT04oZSx0LHIsYSxfLHApe2xldCBkPU1hdGgubWluKHQscC0xKSxoPVVkKGUuc3Vic3RyaW5nKF8sZCkpO2g/KHIud3JpdGVDb21tZW50KGgpLGQhPT10JiZyLndyaXRlTGluZSgpKTpyLnJhd1dyaXRlKGEpfWZ1bmN0aW9uIHFiKGUsdCxyKXtsZXQgYT0wO2Zvcig7dDxyJiZJbyhlLmNoYXJDb2RlQXQodCkpO3QrKyllLmNoYXJDb2RlQXQodCk9PT05P2ErPUpvKCktYSVKbygpOmErKztyZXR1cm4gYX1mdW5jdGlvbiBNTihlKXtyZXR1cm4gYm0oZSkhPT0wfWZ1bmN0aW9uIExOKGUpe3JldHVybiBNMihlKSE9PTB9ZnVuY3Rpb24gTjIoZSx0KXtyZXR1cm4hIXNTKGUsdCl9ZnVuY3Rpb24gZ3IoZSx0KXtyZXR1cm4hIV9TKGUsdCl9ZnVuY3Rpb24gTjAoZSl7cmV0dXJuIG5vKGUpJiZnbShlKXx8ZXUoZSl9ZnVuY3Rpb24gZ20oZSl7cmV0dXJuIGdyKGUsMzIpfWZ1bmN0aW9uIEpOKGUpe3JldHVybiBOMihlLDE2Mzg0KX1mdW5jdGlvbiBpUyhlKXtyZXR1cm4gZ3IoZSwyNTYpfWZ1bmN0aW9uIGFTKGUpe3JldHVybiBncihlLDIpfWZ1bmN0aW9uIG9TKGUpe3JldHVybiBncihlLDEyOCl9ZnVuY3Rpb24gTzAoZSl7cmV0dXJuIE4yKGUsNjQpfWZ1bmN0aW9uIEVsKGUpe3JldHVybiBncihlLDEzMTA3Mil9ZnVuY3Rpb24gc1MoZSx0KXtyZXR1cm4gYm0oZSkmdH1mdW5jdGlvbiBfUyhlLHQpe3JldHVybiBNMihlKSZ0fWZ1bmN0aW9uIE8yKGUsdCxyKXtyZXR1cm4gZS5raW5kPj0wJiZlLmtpbmQ8PTE2NT8wOihlLm1vZGlmaWVyRmxhZ3NDYWNoZSY1MzY4NzA5MTJ8fChlLm1vZGlmaWVyRmxhZ3NDYWNoZT1MMihlKXw1MzY4NzA5MTIpLHQmJiEoZS5tb2RpZmllckZsYWdzQ2FjaGUmNDA5NikmJihyfHxXdChlKSkmJmUucGFyZW50JiYoZS5tb2RpZmllckZsYWdzQ2FjaGV8PWxTKGUpfDQwOTYpLGUubW9kaWZpZXJGbGFnc0NhY2hlJi01MzY4NzUwMDkpfWZ1bmN0aW9uIGJtKGUpe3JldHVybiBPMihlLCEwKX1mdW5jdGlvbiBjUyhlKXtyZXR1cm4gTzIoZSwhMCwhMCl9ZnVuY3Rpb24gTTIoZSl7cmV0dXJuIE8yKGUsITEpfWZ1bmN0aW9uIGxTKGUpe2xldCB0PTA7cmV0dXJuIGUucGFyZW50JiYhTWEoZSkmJihXdChlKSYmKHE0KGUpJiYodHw9NCksejQoZSkmJih0fD04KSxXNChlKSYmKHR8PTE2KSxWNChlKSYmKHR8PTY0KSxINChlKSYmKHR8PTE2Mzg0KSksRzQoZSkmJih0fD04MTkyKSksdH1mdW5jdGlvbiB1UyhlKXtyZXR1cm4gTDIoZSl8bFMoZSl9ZnVuY3Rpb24gTDIoZSl7bGV0IHQ9cV8oZSk/bG4oZS5tb2RpZmllcnMpOjA7cmV0dXJuKGUuZmxhZ3MmOHx8ZS5raW5kPT09ODAmJmUuZmxhZ3MmNDA5NikmJih0fD0xKSx0fWZ1bmN0aW9uIGxuKGUpe2xldCB0PTA7aWYoZSlmb3IobGV0IHIgb2YgZSl0fD1KMihyLmtpbmQpO3JldHVybiB0fWZ1bmN0aW9uIEoyKGUpe3N3aXRjaChlKXtjYXNlIDEyNjpyZXR1cm4gMzI7Y2FzZSAxMjU6cmV0dXJuIDQ7Y2FzZSAxMjQ6cmV0dXJuIDE2O2Nhc2UgMTIzOnJldHVybiA4O2Nhc2UgMTI4OnJldHVybiAyNTY7Y2FzZSAxMjk6cmV0dXJuIDEyODtjYXNlIDk1OnJldHVybiAxO2Nhc2UgMTM4OnJldHVybiAyO2Nhc2UgODc6cmV0dXJuIDIwNDg7Y2FzZSA5MDpyZXR1cm4gMTAyNDtjYXNlIDEzNDpyZXR1cm4gNTEyO2Nhc2UgMTQ4OnJldHVybiA2NDtjYXNlIDE2NDpyZXR1cm4gMTYzODQ7Y2FzZSAxMDM6cmV0dXJuIDMyNzY4O2Nhc2UgMTQ3OnJldHVybiA2NTUzNjtjYXNlIDE3MDpyZXR1cm4gMTMxMDcyfXJldHVybiAwfWZ1bmN0aW9uIHBTKGUpe3JldHVybiBlPT09NTd8fGU9PT01Nn1mdW5jdGlvbiBSTihlKXtyZXR1cm4gcFMoZSl8fGU9PT01NH1mdW5jdGlvbiB2bShlKXtyZXR1cm4gZT09PTc2fHxlPT09Nzd8fGU9PT03OH1mdW5jdGlvbiBqTihlKXtyZXR1cm4gQ3QoZSkmJnZtKGUub3BlcmF0b3JUb2tlbi5raW5kKX1mdW5jdGlvbiBmUyhlKXtyZXR1cm4gcFMoZSl8fGU9PT02MX1mdW5jdGlvbiBGTihlKXtyZXR1cm4gQ3QoZSkmJmZTKGUub3BlcmF0b3JUb2tlbi5raW5kKX1mdW5jdGlvbiBEXyhlKXtyZXR1cm4gZT49NjQmJmU8PTc5fWZ1bmN0aW9uIGRTKGUpe2xldCB0PW1TKGUpO3JldHVybiB0JiYhdC5pc0ltcGxlbWVudHM/dC5jbGFzczp2b2lkIDB9ZnVuY3Rpb24gbVMoZSl7aWYoZzYoZSkpe2lmKE5sKGUucGFyZW50KSYmZG4oZS5wYXJlbnQucGFyZW50KSlyZXR1cm57Y2xhc3M6ZS5wYXJlbnQucGFyZW50LGlzSW1wbGVtZW50czplLnBhcmVudC50b2tlbj09PTExOX07aWYoTW0oZS5wYXJlbnQpKXtsZXQgdD15MihlLnBhcmVudCk7aWYodCYmZG4odCkpcmV0dXJue2NsYXNzOnQsaXNJbXBsZW1lbnRzOiExfX19fWZ1bmN0aW9uIE5hKGUsdCl7cmV0dXJuIEN0KGUpJiYodD9lLm9wZXJhdG9yVG9rZW4ua2luZD09PTY0OkRfKGUub3BlcmF0b3JUb2tlbi5raW5kKSkmJkxvKGUubGVmdCl9ZnVuY3Rpb24gQk4oZSl7cmV0dXJuIE5hKGUucGFyZW50KSYmZS5wYXJlbnQubGVmdD09PWV9ZnVuY3Rpb24gVU4oZSl7aWYoTmEoZSwhMCkpe2xldCB0PWUubGVmdC5raW5kO3JldHVybiB0PT09MjEwfHx0PT09MjA5fXJldHVybiExfWZ1bmN0aW9uIE0wKGUpe3JldHVybiBkUyhlKSE9PXZvaWQgMH1mdW5jdGlvbiBjbyhlKXtyZXR1cm4gZS5raW5kPT09ODB8fGhTKGUpfWZ1bmN0aW9uIHFOKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgODA6cmV0dXJuIGU7Y2FzZSAxNjY6ZG8gZT1lLmxlZnQ7d2hpbGUoZS5raW5kIT09ODApO3JldHVybiBlO2Nhc2UgMjExOmRvIGU9ZS5leHByZXNzaW9uO3doaWxlKGUua2luZCE9PTgwKTtyZXR1cm4gZX19ZnVuY3Rpb24gTDAoZSl7cmV0dXJuIGUua2luZD09PTgwfHxlLmtpbmQ9PT0xMTB8fGUua2luZD09PTEwOHx8ZS5raW5kPT09MjM2fHxlLmtpbmQ9PT0yMTEmJkwwKGUuZXhwcmVzc2lvbil8fGUua2luZD09PTIxNyYmTDAoZS5leHByZXNzaW9uKX1mdW5jdGlvbiBoUyhlKXtyZXR1cm4gQnIoZSkmJkVlKGUubmFtZSkmJmNvKGUuZXhwcmVzc2lvbil9ZnVuY3Rpb24gSjAoZSl7aWYoQnIoZSkpe2xldCB0PUowKGUuZXhwcmVzc2lvbik7aWYodCE9PXZvaWQgMClyZXR1cm4gdCtcIi5cIit2aShlLm5hbWUpfWVsc2UgaWYoUmEoZSkpe2xldCB0PUowKGUuZXhwcmVzc2lvbik7aWYodCE9PXZvaWQgMCYmemwoZS5hcmd1bWVudEV4cHJlc3Npb24pKXJldHVybiB0K1wiLlwiK2dkKGUuYXJndW1lbnRFeHByZXNzaW9uKX1lbHNle2lmKEVlKGUpKXJldHVybiBWbyhlLmVzY2FwZWRUZXh0KTtpZihVXyhlKSlyZXR1cm4gS2woZSl9fWZ1bmN0aW9uICRsKGUpe3JldHVybiBrXyhlKSYmaW8oZSk9PT1cInByb3RvdHlwZVwifWZ1bmN0aW9uIHpOKGUpe3JldHVybiBlLnBhcmVudC5raW5kPT09MTY2JiZlLnBhcmVudC5yaWdodD09PWV8fGUucGFyZW50LmtpbmQ9PT0yMTEmJmUucGFyZW50Lm5hbWU9PT1lfHxlLnBhcmVudC5raW5kPT09MjM2JiZlLnBhcmVudC5uYW1lPT09ZX1mdW5jdGlvbiB5UyhlKXtyZXR1cm4gQnIoZS5wYXJlbnQpJiZlLnBhcmVudC5uYW1lPT09ZXx8UmEoZS5wYXJlbnQpJiZlLnBhcmVudC5hcmd1bWVudEV4cHJlc3Npb249PT1lfWZ1bmN0aW9uIFdOKGUpe3JldHVybiBNXyhlLnBhcmVudCkmJmUucGFyZW50LnJpZ2h0PT09ZXx8QnIoZS5wYXJlbnQpJiZlLnBhcmVudC5uYW1lPT09ZXx8cl8oZS5wYXJlbnQpJiZlLnBhcmVudC5yaWdodD09PWV9ZnVuY3Rpb24gVk4oZSl7cmV0dXJuIGUua2luZD09PTIxMCYmZS5wcm9wZXJ0aWVzLmxlbmd0aD09PTB9ZnVuY3Rpb24gSE4oZSl7cmV0dXJuIGUua2luZD09PTIwOSYmZS5lbGVtZW50cy5sZW5ndGg9PT0wfWZ1bmN0aW9uIEdOKGUpe2lmKCEoIVhOKGUpfHwhZS5kZWNsYXJhdGlvbnMpKXtmb3IobGV0IHQgb2YgZS5kZWNsYXJhdGlvbnMpaWYodC5sb2NhbFN5bWJvbClyZXR1cm4gdC5sb2NhbFN5bWJvbH19ZnVuY3Rpb24gWE4oZSl7cmV0dXJuIGUmJkthKGUuZGVjbGFyYXRpb25zKT4wJiZncihlLmRlY2xhcmF0aW9uc1swXSwxMDI0KX1mdW5jdGlvbiAkTihlKXtyZXR1cm4gWXIoSXgsdD0+TGEoZSx0KSl9ZnVuY3Rpb24gUU4oZSl7bGV0IHQ9W10scj1lLmxlbmd0aDtmb3IobGV0IGE9MDthPHI7YSsrKXtsZXQgXz1lLmNoYXJDb2RlQXQoYSk7XzwxMjg/dC5wdXNoKF8pOl88MjA0OD8odC5wdXNoKF8+PjZ8MTkyKSx0LnB1c2goXyY2M3wxMjgpKTpfPDY1NTM2Pyh0LnB1c2goXz4+MTJ8MjI0KSx0LnB1c2goXz4+NiY2M3wxMjgpLHQucHVzaChfJjYzfDEyOCkpOl88MTMxMDcyPyh0LnB1c2goXz4+MTh8MjQwKSx0LnB1c2goXz4+MTImNjN8MTI4KSx0LnB1c2goXz4+NiY2M3wxMjgpLHQucHVzaChfJjYzfDEyOCkpOk4uYXNzZXJ0KCExLFwiVW5leHBlY3RlZCBjb2RlIHBvaW50XCIpfXJldHVybiB0fWZ1bmN0aW9uIGdTKGUpe2xldCB0PVwiXCIscj1RTihlKSxhPTAsXz1yLmxlbmd0aCxwLGQsaCxsO2Zvcig7YTxfOylwPXJbYV0+PjIsZD0oclthXSYzKTw8NHxyW2ErMV0+PjQsaD0oclthKzFdJjE1KTw8MnxyW2ErMl0+PjYsbD1yW2ErMl0mNjMsYSsxPj1fP2g9bD02NDphKzI+PV8mJihsPTY0KSx0Kz1xaS5jaGFyQXQocCkrcWkuY2hhckF0KGQpK3FpLmNoYXJBdChoKStxaS5jaGFyQXQobCksYSs9MztyZXR1cm4gdH1mdW5jdGlvbiBZTihlKXtsZXQgdD1cIlwiLHI9MCxhPWUubGVuZ3RoO2Zvcig7cjxhOyl7bGV0IF89ZVtyXTtpZihfPDEyOCl0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKF8pLHIrKztlbHNlIGlmKChfJjE5Mik9PT0xOTIpe2xldCBwPV8mNjM7cisrO2xldCBkPWVbcl07Zm9yKDsoZCYxOTIpPT09MTI4OylwPXA8PDZ8ZCY2MyxyKyssZD1lW3JdO3QrPVN0cmluZy5mcm9tQ2hhckNvZGUocCl9ZWxzZSB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKF8pLHIrK31yZXR1cm4gdH1mdW5jdGlvbiBLTihlLHQpe3JldHVybiBlJiZlLmJhc2U2NGVuY29kZT9lLmJhc2U2NGVuY29kZSh0KTpnUyh0KX1mdW5jdGlvbiBaTihlLHQpe2lmKGUmJmUuYmFzZTY0ZGVjb2RlKXJldHVybiBlLmJhc2U2NGRlY29kZSh0KTtsZXQgcj10Lmxlbmd0aCxhPVtdLF89MDtmb3IoO188ciYmdC5jaGFyQ29kZUF0KF8pIT09cWkuY2hhckNvZGVBdCg2NCk7KXtsZXQgcD1xaS5pbmRleE9mKHRbX10pLGQ9cWkuaW5kZXhPZih0W18rMV0pLGg9cWkuaW5kZXhPZih0W18rMl0pLGw9cWkuaW5kZXhPZih0W18rM10pLHY9KHAmNjMpPDwyfGQ+PjQmMyx5PShkJjE1KTw8NHxoPj4yJjE1LEM9KGgmMyk8PDZ8bCY2Mzt5PT09MCYmaCE9PTA/YS5wdXNoKHYpOkM9PT0wJiZsIT09MD9hLnB1c2godix5KTphLnB1c2godix5LEMpLF8rPTR9cmV0dXJuIFlOKGEpfWZ1bmN0aW9uIGJTKGUsdCl7bGV0IHI9Yl8odCk/dDp0LnJlYWRGaWxlKGUpO2lmKCFyKXJldHVybjtsZXQgYT1wYXJzZUNvbmZpZ0ZpbGVUZXh0VG9Kc29uKGUscik7cmV0dXJuIGEuZXJyb3I/dm9pZCAwOmEuY29uZmlnfWZ1bmN0aW9uIGVPKGUsdCl7cmV0dXJuIGJTKGUsdCl8fHt9fWZ1bmN0aW9uIHZTKGUsdCl7cmV0dXJuIXQuZGlyZWN0b3J5RXhpc3RzfHx0LmRpcmVjdG9yeUV4aXN0cyhlKX1mdW5jdGlvbiBUUyhlKXtzd2l0Y2goZS5uZXdMaW5lKXtjYXNlIDA6cmV0dXJuIEF4O2Nhc2UgMTpjYXNlIHZvaWQgMDpyZXR1cm4ga3h9fWZ1bmN0aW9uIFRtKGUsdD1lKXtyZXR1cm4gTi5hc3NlcnQodD49ZXx8dD09PS0xKSx7cG9zOmUsZW5kOnR9fWZ1bmN0aW9uIHRPKGUsdCl7cmV0dXJuIFRtKGUucG9zLHQpfWZ1bmN0aW9uIFNkKGUsdCl7cmV0dXJuIFRtKHQsZS5lbmQpfWZ1bmN0aW9uIFNTKGUpe2xldCB0PXFfKGUpP2lnKGUubW9kaWZpZXJzLExfKTp2b2lkIDA7cmV0dXJuIHQmJiFPYSh0LmVuZCk/U2QoZSx0LmVuZCk6ZX1mdW5jdGlvbiByTyhlKXtpZihvbyhlKXx8ZF8oZSkpcmV0dXJuIFNkKGUsZS5uYW1lLnBvcyk7bGV0IHQ9cV8oZSk/d2koZS5tb2RpZmllcnMpOnZvaWQgMDtyZXR1cm4gdCYmIU9hKHQuZW5kKT9TZChlLHQuZW5kKTpTUyhlKX1mdW5jdGlvbiBuTyhlKXtyZXR1cm4gZS5wb3M9PT1lLmVuZH1mdW5jdGlvbiBpTyhlLHQpe3JldHVybiBUbShlLGUrbnIodCkubGVuZ3RoKX1mdW5jdGlvbiBhTyhlLHQpe3JldHVybiB4UyhlLGUsdCl9ZnVuY3Rpb24gb08oZSx0LHIpe3JldHVybiBQXyhmXyhlLHIsITEpLGZfKHQsciwhMSkscil9ZnVuY3Rpb24gc08oZSx0LHIpe3JldHVybiBQXyhlLmVuZCx0LmVuZCxyKX1mdW5jdGlvbiB4UyhlLHQscil7cmV0dXJuIFBfKGZfKGUsciwhMSksdC5lbmQscil9ZnVuY3Rpb24gX08oZSx0LHIpe3JldHVybiBQXyhlLmVuZCxmXyh0LHIsITEpLHIpfWZ1bmN0aW9uIGNPKGUsdCxyLGEpe2xldCBfPWZfKHQscixhKTtyZXR1cm4geF8ocixlLmVuZCxfKX1mdW5jdGlvbiBsTyhlLHQscil7cmV0dXJuIHhfKHIsZS5lbmQsdC5lbmQpfWZ1bmN0aW9uIHVPKGUsdCl7cmV0dXJuIVBfKGUucG9zLGUuZW5kLHQpfWZ1bmN0aW9uIFBfKGUsdCxyKXtyZXR1cm4geF8ocixlLHQpPT09MH1mdW5jdGlvbiBmXyhlLHQscil7cmV0dXJuIE9hKGUucG9zKT8tMTpOdCh0LnRleHQsZS5wb3MsITEscil9ZnVuY3Rpb24gcE8oZSx0LHIsYSl7bGV0IF89TnQoci50ZXh0LGUsITEsYSkscD1kTyhfLHQscik7cmV0dXJuIHhfKHIscD8/dCxfKX1mdW5jdGlvbiBmTyhlLHQscixhKXtsZXQgXz1OdChyLnRleHQsZSwhMSxhKTtyZXR1cm4geF8ocixlLE1hdGgubWluKHQsXykpfWZ1bmN0aW9uIGRPKGUsdD0wLHIpe2Zvcig7ZS0tID50OylpZighVmkoci50ZXh0LmNoYXJDb2RlQXQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIG1PKGUpe2xldCB0PUZsKGUpO2lmKHQpc3dpdGNoKHQucGFyZW50LmtpbmQpe2Nhc2UgMjY2OmNhc2UgMjY3OnJldHVybiB0PT09dC5wYXJlbnQubmFtZX1yZXR1cm4hMX1mdW5jdGlvbiBoTyhlKXtyZXR1cm4gJHIoZS5kZWNsYXJhdGlvbnMsd1MpfWZ1bmN0aW9uIHdTKGUpe3JldHVybiBraShlKSYmZS5pbml0aWFsaXplciE9PXZvaWQgMH1mdW5jdGlvbiB5TyhlKXtyZXR1cm4gZS53YXRjaCYmUXIoZSxcIndhdGNoXCIpfWZ1bmN0aW9uIGdPKGUpe2UuY2xvc2UoKX1mdW5jdGlvbiBDUyhlKXtyZXR1cm4gZS5mbGFncyYzMzU1NDQzMj9lLmxpbmtzLmNoZWNrRmxhZ3M6MH1mdW5jdGlvbiBiTyhlLHQ9ITEpe2lmKGUudmFsdWVEZWNsYXJhdGlvbil7bGV0IHI9dCYmZS5kZWNsYXJhdGlvbnMmJllyKGUuZGVjbGFyYXRpb25zLFFvKXx8ZS5mbGFncyYzMjc2OCYmWXIoZS5kZWNsYXJhdGlvbnMsbV8pfHxlLnZhbHVlRGVjbGFyYXRpb24sYT0kZChyKTtyZXR1cm4gZS5wYXJlbnQmJmUucGFyZW50LmZsYWdzJjMyP2E6YSYtMjl9aWYoQ1MoZSkmNil7bGV0IHI9ZS5saW5rcy5jaGVja0ZsYWdzLGE9ciYxMDI0Pzg6ciYyNTY/NDoxNixfPXImMjA0OD8zMjowO3JldHVybiBhfF99cmV0dXJuIGUuZmxhZ3MmNDE5NDMwND8zNjowfWZ1bmN0aW9uIHZPKGUsdCl7cmV0dXJuIGUuZmxhZ3MmMjA5NzE1Mj90LmdldEFsaWFzZWRTeW1ib2woZSk6ZX1mdW5jdGlvbiBUTyhlKXtyZXR1cm4gZS5leHBvcnRTeW1ib2w/ZS5leHBvcnRTeW1ib2wuZmxhZ3N8ZS5mbGFnczplLmZsYWdzfWZ1bmN0aW9uIFNPKGUpe3JldHVybiBEbyhlKT09PTF9ZnVuY3Rpb24geE8oZSl7cmV0dXJuIERvKGUpIT09MH1mdW5jdGlvbiBEbyhlKXtsZXR7cGFyZW50OnR9PWU7c3dpdGNoKHQ9PW51bGw/dm9pZCAwOnQua2luZCl7Y2FzZSAyMTc6cmV0dXJuIERvKHQpO2Nhc2UgMjI1OmNhc2UgMjI0OmxldHtvcGVyYXRvcjpyfT10O3JldHVybiByPT09NDZ8fHI9PT00Nz8yOjA7Y2FzZSAyMjY6bGV0e2xlZnQ6YSxvcGVyYXRvclRva2VuOl99PXQ7cmV0dXJuIGE9PT1lJiZEXyhfLmtpbmQpP18ua2luZD09PTY0PzE6MjowO2Nhc2UgMjExOnJldHVybiB0Lm5hbWUhPT1lPzA6RG8odCk7Y2FzZSAzMDM6e2xldCBwPURvKHQucGFyZW50KTtyZXR1cm4gZT09PXQubmFtZT93TyhwKTpwfWNhc2UgMzA0OnJldHVybiBlPT09dC5vYmplY3RBc3NpZ25tZW50SW5pdGlhbGl6ZXI/MDpEbyh0LnBhcmVudCk7Y2FzZSAyMDk6cmV0dXJuIERvKHQpO2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIHdPKGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIDE7Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiBOLmFzc2VydE5ldmVyKGUpfX1mdW5jdGlvbiBFUyhlLHQpe2lmKCFlfHwhdHx8T2JqZWN0LmtleXMoZSkubGVuZ3RoIT09T2JqZWN0LmtleXModCkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgciBpbiBlKWlmKHR5cGVvZiBlW3JdPT1cIm9iamVjdFwiKXtpZighRVMoZVtyXSx0W3JdKSlyZXR1cm4hMX1lbHNlIGlmKHR5cGVvZiBlW3JdIT1cImZ1bmN0aW9uXCImJmVbcl0hPT10W3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIENPKGUsdCl7ZS5mb3JFYWNoKHQpLGUuY2xlYXIoKX1mdW5jdGlvbiBBUyhlLHQscil7bGV0e29uRGVsZXRlVmFsdWU6YSxvbkV4aXN0aW5nVmFsdWU6X309cjtlLmZvckVhY2goKHAsZCk9PntsZXQgaD10LmdldChkKTtoPT09dm9pZCAwPyhlLmRlbGV0ZShkKSxhKHAsZCkpOl8mJl8ocCxoLGQpfSl9ZnVuY3Rpb24gRU8oZSx0LHIpe0FTKGUsdCxyKTtsZXR7Y3JlYXRlTmV3VmFsdWU6YX09cjt0LmZvckVhY2goKF8scCk9PntlLmhhcyhwKXx8ZS5zZXQocCxhKHAsXykpfSl9ZnVuY3Rpb24gQU8oZSl7aWYoZS5mbGFncyYzMil7bGV0IHQ9a1MoZSk7cmV0dXJuISF0JiZncih0LDI1Nil9cmV0dXJuITF9ZnVuY3Rpb24ga1MoZSl7dmFyIHQ7cmV0dXJuKHQ9ZS5kZWNsYXJhdGlvbnMpPT1udWxsP3ZvaWQgMDp0LmZpbmQoZG4pfWZ1bmN0aW9uIFJmKGUpe3JldHVybiBlLmZsYWdzJjEzODExNzEyMT9lLm9iamVjdEZsYWdzOjB9ZnVuY3Rpb24ga08oZSx0KXtyZXR1cm4hIWU0KGUscj0+dChyKT8hMDp2b2lkIDApfWZ1bmN0aW9uIERPKGUpe3JldHVybiEhZSYmISFlLmRlY2xhcmF0aW9ucyYmISFlLmRlY2xhcmF0aW9uc1swXSYmeDYoZS5kZWNsYXJhdGlvbnNbMF0pfWZ1bmN0aW9uIFBPKHttb2R1bGVTcGVjaWZpZXI6ZX0pe3JldHVybiBtbihlKT9lLnRleHQ6c20oZSl9ZnVuY3Rpb24gRFMoZSl7bGV0IHQ7cmV0dXJuIEJ0KGUscj0+e3dsKHIpJiYodD1yKX0scj0+e2ZvcihsZXQgYT1yLmxlbmd0aC0xO2E+PTA7YS0tKWlmKHdsKHJbYV0pKXt0PXJbYV07YnJlYWt9fSksdH1mdW5jdGlvbiBJTyhlLHQscj0hMCl7cmV0dXJuIGUuaGFzKHQpPyExOihlLnNldCh0LHIpLCEwKX1mdW5jdGlvbiBOTyhlKXtyZXR1cm4gZG4oZSl8fHN1KGUpfHxFbShlKX1mdW5jdGlvbiBQUyhlKXtyZXR1cm4gZT49MTgyJiZlPD0yMDV8fGU9PT0xMzN8fGU9PT0xNTl8fGU9PT0xNTB8fGU9PT0xNjN8fGU9PT0xNTF8fGU9PT0xMzZ8fGU9PT0xNTR8fGU9PT0xNTV8fGU9PT0xMTZ8fGU9PT0xNTd8fGU9PT0xNDZ8fGU9PT0xNDF8fGU9PT0yMzN8fGU9PT0zMTl8fGU9PT0zMjB8fGU9PT0zMjF8fGU9PT0zMjJ8fGU9PT0zMjN8fGU9PT0zMjR8fGU9PT0zMjV9ZnVuY3Rpb24gJG8oZSl7cmV0dXJuIGUua2luZD09PTIxMXx8ZS5raW5kPT09MjEyfWZ1bmN0aW9uIE9PKGUpe3JldHVybiBlLmtpbmQ9PT0yMTE/ZS5uYW1lOihOLmFzc2VydChlLmtpbmQ9PT0yMTIpLGUuYXJndW1lbnRFeHByZXNzaW9uKX1mdW5jdGlvbiBNTyhlKXtzd2l0Y2goZS5raW5kKXtjYXNlXCJ0ZXh0XCI6Y2FzZVwiaW50ZXJuYWxcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBMTyhlKXtyZXR1cm4gZS5raW5kPT09Mjc1fHxlLmtpbmQ9PT0yNzl9ZnVuY3Rpb24gUjIoZSl7Zm9yKDskbyhlKTspZT1lLmV4cHJlc3Npb247cmV0dXJuIGV9ZnVuY3Rpb24gSk8oZSx0KXtpZigkbyhlLnBhcmVudCkmJnlTKGUpKXJldHVybiByKGUucGFyZW50KTtmdW5jdGlvbiByKGEpe2lmKGEua2luZD09PTIxMSl7bGV0IF89dChhLm5hbWUpO2lmKF8hPT12b2lkIDApcmV0dXJuIF99ZWxzZSBpZihhLmtpbmQ9PT0yMTIpaWYoRWUoYS5hcmd1bWVudEV4cHJlc3Npb24pfHxLbihhLmFyZ3VtZW50RXhwcmVzc2lvbikpe2xldCBfPXQoYS5hcmd1bWVudEV4cHJlc3Npb24pO2lmKF8hPT12b2lkIDApcmV0dXJuIF99ZWxzZSByZXR1cm47aWYoJG8oYS5leHByZXNzaW9uKSlyZXR1cm4gcihhLmV4cHJlc3Npb24pO2lmKEVlKGEuZXhwcmVzc2lvbikpcmV0dXJuIHQoYS5leHByZXNzaW9uKX19ZnVuY3Rpb24gUk8oZSx0KXtmb3IoOzspe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjI1OmU9ZS5vcGVyYW5kO2NvbnRpbnVlO2Nhc2UgMjI2OmU9ZS5sZWZ0O2NvbnRpbnVlO2Nhc2UgMjI3OmU9ZS5jb25kaXRpb247Y29udGludWU7Y2FzZSAyMTU6ZT1lLnRhZztjb250aW51ZTtjYXNlIDIxMzppZih0KXJldHVybiBlO2Nhc2UgMjM0OmNhc2UgMjEyOmNhc2UgMjExOmNhc2UgMjM1OmNhc2UgMzYwOmNhc2UgMjM4OmU9ZS5leHByZXNzaW9uO2NvbnRpbnVlfXJldHVybiBlfX1mdW5jdGlvbiBqTyhlLHQpe3RoaXMuZmxhZ3M9ZSx0aGlzLmVzY2FwZWROYW1lPXQsdGhpcy5kZWNsYXJhdGlvbnM9dm9pZCAwLHRoaXMudmFsdWVEZWNsYXJhdGlvbj12b2lkIDAsdGhpcy5pZD0wLHRoaXMubWVyZ2VJZD0wLHRoaXMucGFyZW50PXZvaWQgMCx0aGlzLm1lbWJlcnM9dm9pZCAwLHRoaXMuZXhwb3J0cz12b2lkIDAsdGhpcy5leHBvcnRTeW1ib2w9dm9pZCAwLHRoaXMuY29uc3RFbnVtT25seU1vZHVsZT12b2lkIDAsdGhpcy5pc1JlZmVyZW5jZWQ9dm9pZCAwLHRoaXMuaXNBc3NpZ25lZD12b2lkIDAsdGhpcy5saW5rcz12b2lkIDB9ZnVuY3Rpb24gRk8oZSx0KXt0aGlzLmZsYWdzPXQsKE4uaXNEZWJ1Z2dpbmd8fHhhKSYmKHRoaXMuY2hlY2tlcj1lKX1mdW5jdGlvbiBCTyhlLHQpe3RoaXMuZmxhZ3M9dCxOLmlzRGVidWdnaW5nJiYodGhpcy5jaGVja2VyPWUpfWZ1bmN0aW9uIEdoKGUsdCxyKXt0aGlzLnBvcz10LHRoaXMuZW5kPXIsdGhpcy5raW5kPWUsdGhpcy5pZD0wLHRoaXMuZmxhZ3M9MCx0aGlzLm1vZGlmaWVyRmxhZ3NDYWNoZT0wLHRoaXMudHJhbnNmb3JtRmxhZ3M9MCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5vcmlnaW5hbD12b2lkIDAsdGhpcy5lbWl0Tm9kZT12b2lkIDB9ZnVuY3Rpb24gVU8oZSx0LHIpe3RoaXMucG9zPXQsdGhpcy5lbmQ9cix0aGlzLmtpbmQ9ZSx0aGlzLmlkPTAsdGhpcy5mbGFncz0wLHRoaXMudHJhbnNmb3JtRmxhZ3M9MCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5lbWl0Tm9kZT12b2lkIDB9ZnVuY3Rpb24gcU8oZSx0LHIpe3RoaXMucG9zPXQsdGhpcy5lbmQ9cix0aGlzLmtpbmQ9ZSx0aGlzLmlkPTAsdGhpcy5mbGFncz0wLHRoaXMudHJhbnNmb3JtRmxhZ3M9MCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5vcmlnaW5hbD12b2lkIDAsdGhpcy5lbWl0Tm9kZT12b2lkIDB9ZnVuY3Rpb24gek8oZSx0LHIpe3RoaXMuZmlsZU5hbWU9ZSx0aGlzLnRleHQ9dCx0aGlzLnNraXBUcml2aWE9cnx8KGE9PmEpfWZ1bmN0aW9uIFdPKGUpe1oyLnB1c2goZSksZSh3dCl9ZnVuY3Rpb24gSVMoZSl7T2JqZWN0LmFzc2lnbih3dCxlKSx5cihaMix0PT50KHd0KSl9ZnVuY3Rpb24gSV8oZSx0LHI9MCl7cmV0dXJuIGUucmVwbGFjZSgveyhcXGQrKX0vZywoYSxfKT0+XCJcIitOLmNoZWNrRGVmaW5lZCh0WytfK3JdKSl9ZnVuY3Rpb24gTlMoZSl7a2w9ZX1mdW5jdGlvbiBPUyhlKXsha2wmJmUmJihrbD1lKCkpfWZ1bmN0aW9uIE5fKGUpe3JldHVybiBrbCYma2xbZS5rZXldfHxlLm1lc3NhZ2V9ZnVuY3Rpb24gQW8oZSx0LHIsYSl7WWcodm9pZCAwLHQscik7bGV0IF89Tl8oYSk7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+NCYmKF89SV8oXyxhcmd1bWVudHMsNCkpLHtmaWxlOnZvaWQgMCxzdGFydDp0LGxlbmd0aDpyLG1lc3NhZ2VUZXh0Ol8sY2F0ZWdvcnk6YS5jYXRlZ29yeSxjb2RlOmEuY29kZSxyZXBvcnRzVW5uZWNlc3Nhcnk6YS5yZXBvcnRzVW5uZWNlc3NhcnksZmlsZU5hbWU6ZX19ZnVuY3Rpb24gVk8oZSl7cmV0dXJuIGUuZmlsZT09PXZvaWQgMCYmZS5zdGFydCE9PXZvaWQgMCYmZS5sZW5ndGghPT12b2lkIDAmJnR5cGVvZiBlLmZpbGVOYW1lPT1cInN0cmluZ1wifWZ1bmN0aW9uIE1TKGUsdCl7bGV0IHI9dC5maWxlTmFtZXx8XCJcIixhPXQudGV4dC5sZW5ndGg7Ti5hc3NlcnRFcXVhbChlLmZpbGVOYW1lLHIpLE4uYXNzZXJ0TGVzc1RoYW5PckVxdWFsKGUuc3RhcnQsYSksTi5hc3NlcnRMZXNzVGhhbk9yRXF1YWwoZS5zdGFydCtlLmxlbmd0aCxhKTtsZXQgXz17ZmlsZTp0LHN0YXJ0OmUuc3RhcnQsbGVuZ3RoOmUubGVuZ3RoLG1lc3NhZ2VUZXh0OmUubWVzc2FnZVRleHQsY2F0ZWdvcnk6ZS5jYXRlZ29yeSxjb2RlOmUuY29kZSxyZXBvcnRzVW5uZWNlc3Nhcnk6ZS5yZXBvcnRzVW5uZWNlc3Nhcnl9O2lmKGUucmVsYXRlZEluZm9ybWF0aW9uKXtfLnJlbGF0ZWRJbmZvcm1hdGlvbj1bXTtmb3IobGV0IHAgb2YgZS5yZWxhdGVkSW5mb3JtYXRpb24pVk8ocCkmJnAuZmlsZU5hbWU9PT1yPyhOLmFzc2VydExlc3NUaGFuT3JFcXVhbChwLnN0YXJ0LGEpLE4uYXNzZXJ0TGVzc1RoYW5PckVxdWFsKHAuc3RhcnQrcC5sZW5ndGgsYSksXy5yZWxhdGVkSW5mb3JtYXRpb24ucHVzaChNUyhwLHQpKSk6Xy5yZWxhdGVkSW5mb3JtYXRpb24ucHVzaChwKX1yZXR1cm4gX31mdW5jdGlvbiAkYShlLHQpe2xldCByPVtdO2ZvcihsZXQgYSBvZiBlKXIucHVzaChNUyhhLHQpKTtyZXR1cm4gcn1mdW5jdGlvbiBqMihlLHQscixhKXtZZyhlLHQscik7bGV0IF89Tl8oYSk7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+NCYmKF89SV8oXyxhcmd1bWVudHMsNCkpLHtmaWxlOmUsc3RhcnQ6dCxsZW5ndGg6cixtZXNzYWdlVGV4dDpfLGNhdGVnb3J5OmEuY2F0ZWdvcnksY29kZTphLmNvZGUscmVwb3J0c1VubmVjZXNzYXJ5OmEucmVwb3J0c1VubmVjZXNzYXJ5LHJlcG9ydHNEZXByZWNhdGVkOmEucmVwb3J0c0RlcHJlY2F0ZWR9fWZ1bmN0aW9uIEhPKGUsdCl7bGV0IHI9Tl8odCk7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MiYmKHI9SV8ocixhcmd1bWVudHMsMikpLHJ9ZnVuY3Rpb24gZmwoZSl7bGV0IHQ9Tl8oZSk7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MSYmKHQ9SV8odCxhcmd1bWVudHMsMSkpLHtmaWxlOnZvaWQgMCxzdGFydDp2b2lkIDAsbGVuZ3RoOnZvaWQgMCxtZXNzYWdlVGV4dDp0LGNhdGVnb3J5OmUuY2F0ZWdvcnksY29kZTplLmNvZGUscmVwb3J0c1VubmVjZXNzYXJ5OmUucmVwb3J0c1VubmVjZXNzYXJ5LHJlcG9ydHNEZXByZWNhdGVkOmUucmVwb3J0c0RlcHJlY2F0ZWR9fWZ1bmN0aW9uIEdPKGUsdCl7cmV0dXJue2ZpbGU6dm9pZCAwLHN0YXJ0OnZvaWQgMCxsZW5ndGg6dm9pZCAwLGNvZGU6ZS5jb2RlLGNhdGVnb3J5OmUuY2F0ZWdvcnksbWVzc2FnZVRleHQ6ZS5uZXh0P2U6ZS5tZXNzYWdlVGV4dCxyZWxhdGVkSW5mb3JtYXRpb246dH19ZnVuY3Rpb24gdGwoZSx0KXtsZXQgcj1OXyh0KTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4yJiYocj1JXyhyLGFyZ3VtZW50cywyKSkse21lc3NhZ2VUZXh0OnIsY2F0ZWdvcnk6dC5jYXRlZ29yeSxjb2RlOnQuY29kZSxuZXh0OmU9PT12b2lkIDB8fEFycmF5LmlzQXJyYXkoZSk/ZTpbZV19fWZ1bmN0aW9uIFhPKGUsdCl7bGV0IHI9ZTtmb3IoO3IubmV4dDspcj1yLm5leHRbMF07ci5uZXh0PVt0XX1mdW5jdGlvbiB6YihlKXtyZXR1cm4gZS5maWxlP2UuZmlsZS5wYXRoOnZvaWQgMH1mdW5jdGlvbiBGMihlLHQpe3JldHVybiB4ZChlLHQpfHwkTyhlLHQpfHwwfWZ1bmN0aW9uIHhkKGUsdCl7cmV0dXJuIENpKHpiKGUpLHpiKHQpKXx8a3IoZS5zdGFydCx0LnN0YXJ0KXx8a3IoZS5sZW5ndGgsdC5sZW5ndGgpfHxrcihlLmNvZGUsdC5jb2RlKXx8TFMoZS5tZXNzYWdlVGV4dCx0Lm1lc3NhZ2VUZXh0KXx8MH1mdW5jdGlvbiAkTyhlLHQpe3JldHVybiFlLnJlbGF0ZWRJbmZvcm1hdGlvbiYmIXQucmVsYXRlZEluZm9ybWF0aW9uPzA6ZS5yZWxhdGVkSW5mb3JtYXRpb24mJnQucmVsYXRlZEluZm9ybWF0aW9uP2tyKGUucmVsYXRlZEluZm9ybWF0aW9uLmxlbmd0aCx0LnJlbGF0ZWRJbmZvcm1hdGlvbi5sZW5ndGgpfHx5cihlLnJlbGF0ZWRJbmZvcm1hdGlvbiwocixhKT0+e2xldCBfPXQucmVsYXRlZEluZm9ybWF0aW9uW2FdO3JldHVybiBGMihyLF8pfSl8fDA6ZS5yZWxhdGVkSW5mb3JtYXRpb24/LTE6MX1mdW5jdGlvbiBMUyhlLHQpe2lmKHR5cGVvZiBlPT1cInN0cmluZ1wiJiZ0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gQ2koZSx0KTtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4tMTtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gMTtsZXQgcj1DaShlLm1lc3NhZ2VUZXh0LHQubWVzc2FnZVRleHQpO2lmKHIpcmV0dXJuIHI7aWYoIWUubmV4dCYmIXQubmV4dClyZXR1cm4gMDtpZighZS5uZXh0KXJldHVybi0xO2lmKCF0Lm5leHQpcmV0dXJuIDE7bGV0IGE9TWF0aC5taW4oZS5uZXh0Lmxlbmd0aCx0Lm5leHQubGVuZ3RoKTtmb3IobGV0IF89MDtfPGE7XysrKWlmKHI9TFMoZS5uZXh0W19dLHQubmV4dFtfXSkscilyZXR1cm4gcjtyZXR1cm4gZS5uZXh0Lmxlbmd0aDx0Lm5leHQubGVuZ3RoPy0xOmUubmV4dC5sZW5ndGg+dC5uZXh0Lmxlbmd0aD8xOjB9ZnVuY3Rpb24gUjAoZSl7cmV0dXJuIGU9PT00fHxlPT09Mnx8ZT09PTF8fGU9PT02PzE6MH1mdW5jdGlvbiBKUyhlKXtpZihlLnRyYW5zZm9ybUZsYWdzJjIpcmV0dXJuIHczKGUpfHxkbChlKT9lOkJ0KGUsSlMpfWZ1bmN0aW9uIFFPKGUpe3JldHVybiBlLmlzRGVjbGFyYXRpb25GaWxlP3ZvaWQgMDpKUyhlKX1mdW5jdGlvbiBZTyhlKXtyZXR1cm4oZS5pbXBsaWVkTm9kZUZvcm1hdD09PTk5fHxlaShlLmZpbGVOYW1lLFtcIi5janNcIixcIi5jdHNcIixcIi5tanNcIixcIi5tdHNcIl0pKSYmIWUuaXNEZWNsYXJhdGlvbkZpbGU/ITA6dm9pZCAwfWZ1bmN0aW9uIFJTKGUpe3N3aXRjaChqUyhlKSl7Y2FzZSAzOnJldHVybiBfPT57Xy5leHRlcm5hbE1vZHVsZUluZGljYXRvcj1tbChfKXx8IV8uaXNEZWNsYXJhdGlvbkZpbGV8fHZvaWQgMH07Y2FzZSAxOnJldHVybiBfPT57Xy5leHRlcm5hbE1vZHVsZUluZGljYXRvcj1tbChfKX07Y2FzZSAyOmxldCB0PVttbF07KGUuanN4PT09NHx8ZS5qc3g9PT01KSYmdC5wdXNoKFFPKSx0LnB1c2goWU8pO2xldCByPXVnKC4uLnQpO3JldHVybiBfPT52b2lkKF8uZXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3I9cihfKSl9fWZ1bmN0aW9uIFFsKGUpe3JldHVybiBlLnRhcmdldD8/KGUubW9kdWxlPT09MTAwJiY5fHxlLm1vZHVsZT09PTE5OSYmOTl8fDEpfWZ1bmN0aW9uIG5pKGUpe3JldHVybiB0eXBlb2YgZS5tb2R1bGU9PVwibnVtYmVyXCI/ZS5tb2R1bGU6UWwoZSk+PTI/NToxfWZ1bmN0aW9uIEtPKGUpe3JldHVybiBlPj01JiZlPD05OX1mdW5jdGlvbiBPXyhlKXtsZXQgdD1lLm1vZHVsZVJlc29sdXRpb247aWYodD09PXZvaWQgMClzd2l0Y2gobmkoZSkpe2Nhc2UgMTp0PTI7YnJlYWs7Y2FzZSAxMDA6dD0zO2JyZWFrO2Nhc2UgMTk5OnQ9OTk7YnJlYWs7ZGVmYXVsdDp0PTE7YnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24galMoZSl7cmV0dXJuIGUubW9kdWxlRGV0ZWN0aW9ufHwobmkoZSk9PT0xMDB8fG5pKGUpPT09MTk5PzM6Mil9ZnVuY3Rpb24gWk8oZSl7c3dpdGNoKG5pKGUpKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNhc2UgOTk6Y2FzZSAxMDA6Y2FzZSAxOTk6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gQjIoZSl7cmV0dXJuISEoZS5pc29sYXRlZE1vZHVsZXN8fGUudmVyYmF0aW1Nb2R1bGVTeW50YXgpfWZ1bmN0aW9uIGVNKGUpe3JldHVybiBlLnZlcmJhdGltTW9kdWxlU3ludGF4fHxlLmlzb2xhdGVkTW9kdWxlcyYmZS5wcmVzZXJ2ZVZhbHVlSW1wb3J0c31mdW5jdGlvbiB0TShlKXtyZXR1cm4gZS5hbGxvd1VucmVhY2hhYmxlQ29kZT09PSExfWZ1bmN0aW9uIHJNKGUpe3JldHVybiBlLmFsbG93VW51c2VkTGFiZWxzPT09ITF9ZnVuY3Rpb24gbk0oZSl7cmV0dXJuISEoejIoZSkmJmUuZGVjbGFyYXRpb25NYXApfWZ1bmN0aW9uIFUyKGUpe2lmKGUuZXNNb2R1bGVJbnRlcm9wIT09dm9pZCAwKXJldHVybiBlLmVzTW9kdWxlSW50ZXJvcDtzd2l0Y2gobmkoZSkpe2Nhc2UgMTAwOmNhc2UgMTk5OnJldHVybiEwfX1mdW5jdGlvbiBpTShlKXtyZXR1cm4gZS5hbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzIT09dm9pZCAwP2UuYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0czpVMihlKXx8bmkoZSk9PT00fHxPXyhlKT09PTEwMH1mdW5jdGlvbiBxMihlKXtyZXR1cm4gZT49MyYmZTw9OTl8fGU9PT0xMDB9ZnVuY3Rpb24gYU0oZSl7cmV0dXJuISFlLm5vRHRzUmVzb2x1dGlvbnx8T18oZSkhPT0xMDB9ZnVuY3Rpb24gb00oZSl7bGV0IHQ9T18oZSk7aWYoIXEyKHQpKXJldHVybiExO2lmKGUucmVzb2x2ZVBhY2thZ2VKc29uRXhwb3J0cyE9PXZvaWQgMClyZXR1cm4gZS5yZXNvbHZlUGFja2FnZUpzb25FeHBvcnRzO3N3aXRjaCh0KXtjYXNlIDM6Y2FzZSA5OTpjYXNlIDEwMDpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBzTShlKXtsZXQgdD1PXyhlKTtpZighcTIodCkpcmV0dXJuITE7aWYoZS5yZXNvbHZlUGFja2FnZUpzb25FeHBvcnRzIT09dm9pZCAwKXJldHVybiBlLnJlc29sdmVQYWNrYWdlSnNvbkV4cG9ydHM7c3dpdGNoKHQpe2Nhc2UgMzpjYXNlIDk5OmNhc2UgMTAwOnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEZTKGUpe3JldHVybiBlLnJlc29sdmVKc29uTW9kdWxlIT09dm9pZCAwP2UucmVzb2x2ZUpzb25Nb2R1bGU6T18oZSk9PT0xMDB9ZnVuY3Rpb24gejIoZSl7cmV0dXJuISEoZS5kZWNsYXJhdGlvbnx8ZS5jb21wb3NpdGUpfWZ1bmN0aW9uIF9NKGUpe3JldHVybiEhKGUucHJlc2VydmVDb25zdEVudW1zfHxCMihlKSl9ZnVuY3Rpb24gY00oZSl7cmV0dXJuISEoZS5pbmNyZW1lbnRhbHx8ZS5jb21wb3NpdGUpfWZ1bmN0aW9uIFcyKGUsdCl7cmV0dXJuIGVbdF09PT12b2lkIDA/ISFlLnN0cmljdDohIWVbdF19ZnVuY3Rpb24gQlMoZSl7cmV0dXJuIGUuYWxsb3dKcz09PXZvaWQgMD8hIWUuY2hlY2tKczplLmFsbG93SnN9ZnVuY3Rpb24gbE0oZSl7cmV0dXJuIGUudXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHM9PT12b2lkIDA/UWwoZSk+PTk6ZS51c2VEZWZpbmVGb3JDbGFzc0ZpZWxkc31mdW5jdGlvbiB1TShlKXtyZXR1cm4gZS51c2VEZWZpbmVGb3JDbGFzc0ZpZWxkcyE9PSExJiZRbChlKT49OX1mdW5jdGlvbiBwTShlLHQpe3JldHVybiBFXyh0LGUsc2VtYW50aWNEaWFnbm9zdGljc09wdGlvbkRlY2xhcmF0aW9ucyl9ZnVuY3Rpb24gZk0oZSx0KXtyZXR1cm4gRV8odCxlLGFmZmVjdHNFbWl0T3B0aW9uRGVjbGFyYXRpb25zKX1mdW5jdGlvbiBkTShlLHQpe3JldHVybiBFXyh0LGUsYWZmZWN0c0RlY2xhcmF0aW9uUGF0aE9wdGlvbkRlY2xhcmF0aW9ucyl9ZnVuY3Rpb24gajAoZSx0KXtyZXR1cm4gdC5zdHJpY3RGbGFnP1cyKGUsdC5uYW1lKTplW3QubmFtZV19ZnVuY3Rpb24gbU0oZSl7bGV0IHQ9ZS5qc3g7cmV0dXJuIHQ9PT0yfHx0PT09NHx8dD09PTV9ZnVuY3Rpb24gaE0oZSx0KXtsZXQgcj10PT1udWxsP3ZvaWQgMDp0LnByYWdtYXMuZ2V0KFwianN4aW1wb3J0c291cmNlXCIpLGE9enQocik/cltyLmxlbmd0aC0xXTpyO3JldHVybiBlLmpzeD09PTR8fGUuanN4PT09NXx8ZS5qc3hJbXBvcnRTb3VyY2V8fGE/KGE9PW51bGw/dm9pZCAwOmEuYXJndW1lbnRzLmZhY3RvcnkpfHxlLmpzeEltcG9ydFNvdXJjZXx8XCJyZWFjdFwiOnZvaWQgMH1mdW5jdGlvbiB5TShlLHQpe3JldHVybiBlP2Ake2V9LyR7dC5qc3g9PT01P1wianN4LWRldi1ydW50aW1lXCI6XCJqc3gtcnVudGltZVwifWA6dm9pZCAwfWZ1bmN0aW9uIGdNKGUpe2xldCB0PSExO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGUuY2hhckNvZGVBdChyKT09PTQyKWlmKCF0KXQ9ITA7ZWxzZSByZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBiTShlLHQpe2xldCByLGEsXyxwPSExO3JldHVybntnZXRTeW1saW5rZWRGaWxlczooKT0+XyxnZXRTeW1saW5rZWREaXJlY3RvcmllczooKT0+cixnZXRTeW1saW5rZWREaXJlY3Rvcmllc0J5UmVhbHBhdGg6KCk9PmEsc2V0U3ltbGlua2VkRmlsZTooaCxsKT0+KF98fChfPW5ldyBNYXApKS5zZXQoaCxsKSxzZXRTeW1saW5rZWREaXJlY3Rvcnk6KGgsbCk9PntsZXQgdj14aShoLGUsdCk7bngodil8fCh2PXpvKHYpLGwhPT0hMSYmIShyIT1udWxsJiZyLmhhcyh2KSkmJihhfHwoYT1qZCgpKSkuYWRkKHpvKGwucmVhbFBhdGgpLGgpLChyfHwocj1uZXcgTWFwKSkuc2V0KHYsbCkpfSxzZXRTeW1saW5rc0Zyb21SZXNvbHV0aW9ucyhoLGwpe3ZhciB2LHk7Ti5hc3NlcnQoIXApLHA9ITA7Zm9yKGxldCBDIG9mIGgpKHY9Qy5yZXNvbHZlZE1vZHVsZXMpPT1udWxsfHx2LmZvckVhY2goUz0+ZCh0aGlzLFMucmVzb2x2ZWRNb2R1bGUpKSwoeT1DLnJlc29sdmVkVHlwZVJlZmVyZW5jZURpcmVjdGl2ZU5hbWVzKT09bnVsbHx8eS5mb3JFYWNoKFM9PmQodGhpcyxTLnJlc29sdmVkVHlwZVJlZmVyZW5jZURpcmVjdGl2ZSkpO2wuZm9yRWFjaChDPT5kKHRoaXMsQy5yZXNvbHZlZFR5cGVSZWZlcmVuY2VEaXJlY3RpdmUpKX0saGFzUHJvY2Vzc2VkUmVzb2x1dGlvbnM6KCk9PnB9O2Z1bmN0aW9uIGQoaCxsKXtpZighbHx8IWwub3JpZ2luYWxQYXRofHwhbC5yZXNvbHZlZEZpbGVOYW1lKXJldHVybjtsZXR7cmVzb2x2ZWRGaWxlTmFtZTp2LG9yaWdpbmFsUGF0aDp5fT1sO2guc2V0U3ltbGlua2VkRmlsZSh4aSh5LGUsdCksdik7bGV0W0MsU109dk0odix5LGUsdCl8fCRlO0MmJlMmJmguc2V0U3ltbGlua2VkRGlyZWN0b3J5KFMse3JlYWw6QyxyZWFsUGF0aDp4aShDLGUsdCl9KX19ZnVuY3Rpb24gdk0oZSx0LHIsYSl7bGV0IF89QWkoUGEoZSxyKSkscD1BaShQYSh0LHIpKSxkPSExO2Zvcig7Xy5sZW5ndGg+PTImJnAubGVuZ3RoPj0yJiYhV2IoX1tfLmxlbmd0aC0yXSxhKSYmIVdiKHBbcC5sZW5ndGgtMl0sYSkmJmEoX1tfLmxlbmd0aC0xXSk9PT1hKHBbcC5sZW5ndGgtMV0pOylfLnBvcCgpLHAucG9wKCksZD0hMDtyZXR1cm4gZD9bVW8oXyksVW8ocCldOnZvaWQgMH1mdW5jdGlvbiBXYihlLHQpe3JldHVybiBlIT09dm9pZCAwJiYodChlKT09PVwibm9kZV9tb2R1bGVzXCJ8fEZyKGUsXCJAXCIpKX1mdW5jdGlvbiBUTShlKXtyZXR1cm4gZGcoZS5jaGFyQ29kZUF0KDApKT9lLnNsaWNlKDEpOnZvaWQgMH1mdW5jdGlvbiBTTShlLHQscil7bGV0IGE9QnYoZSx0LHIpO3JldHVybiBhPT09dm9pZCAwP3ZvaWQgMDpUTShhKX1mdW5jdGlvbiB4TShlKXtyZXR1cm4gZS5yZXBsYWNlKEVkLHdNKX1mdW5jdGlvbiB3TShlKXtyZXR1cm5cIlxcXFxcIitlfWZ1bmN0aW9uIGpmKGUsdCxyKXtsZXQgYT1WMihlLHQscik7cmV0dXJuIWF8fCFhLmxlbmd0aD92b2lkIDA6YF4oJHthLm1hcChkPT5gKCR7ZH0pYCkuam9pbihcInxcIil9KSR7cj09PVwiZXhjbHVkZVwiP1wiKCR8LylcIjpcIiRcIn1gfWZ1bmN0aW9uIFYyKGUsdCxyKXtpZighKGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MCkpcmV0dXJuIEJvKGUsYT0+YSYmcVMoYSx0LHIsZTZbcl0pKX1mdW5jdGlvbiBVUyhlKXtyZXR1cm4hL1suKj9dLy50ZXN0KGUpfWZ1bmN0aW9uIENNKGUsdCxyKXtsZXQgYT1lJiZxUyhlLHQscixlNltyXSk7cmV0dXJuIGEmJmBeKCR7YX0pJHtyPT09XCJleGNsdWRlXCI/XCIoJHwvKVwiOlwiJFwifWB9ZnVuY3Rpb24gcVMoZSx0LHIse3NpbmdsZUFzdGVyaXNrUmVnZXhGcmFnbWVudDphLGRvdWJsZUFzdGVyaXNrUmVnZXhGcmFnbWVudDpfLHJlcGxhY2VXaWxkY2FyZENoYXJhY3RlcjpwfSl7bGV0IGQ9XCJcIixoPSExLGw9V2QoZSx0KSx2PWthKGwpO2lmKHIhPT1cImV4Y2x1ZGVcIiYmdj09PVwiKipcIilyZXR1cm47bFswXT1TXyhsWzBdKSxVUyh2KSYmbC5wdXNoKFwiKipcIixcIipcIik7bGV0IHk9MDtmb3IobGV0IEMgb2YgbCl7aWYoQz09PVwiKipcIilkKz1fO2Vsc2UgaWYocj09PVwiZGlyZWN0b3JpZXNcIiYmKGQrPVwiKFwiLHkrKyksaCYmKGQrPWZuKSxyIT09XCJleGNsdWRlXCIpe2xldCBTPVwiXCI7Qy5jaGFyQ29kZUF0KDApPT09NDI/KFMrPVwiKFteLi9dXCIrYStcIik/XCIsQz1DLnN1YnN0cigxKSk6Qy5jaGFyQ29kZUF0KDApPT09NjMmJihTKz1cIlteLi9dXCIsQz1DLnN1YnN0cigxKSksUys9Qy5yZXBsYWNlKEVkLHApLFMhPT1DJiYoZCs9QmYpLGQrPVN9ZWxzZSBkKz1DLnJlcGxhY2UoRWQscCk7aD0hMH1mb3IoO3k+MDspZCs9XCIpP1wiLHktLTtyZXR1cm4gZH1mdW5jdGlvbiBYaChlLHQpe3JldHVybiBlPT09XCIqXCI/dDplPT09XCI/XCI/XCJbXi9dXCI6XCJcXFxcXCIrZX1mdW5jdGlvbiB6UyhlLHQscixhLF8pe2U9cG4oZSksXz1wbihfKTtsZXQgcD1ocihfLGUpO3JldHVybntpbmNsdWRlRmlsZVBhdHRlcm5zOkFhKFYyKHIscCxcImZpbGVzXCIpLGQ9PmBeJHtkfSRgKSxpbmNsdWRlRmlsZVBhdHRlcm46amYocixwLFwiZmlsZXNcIiksaW5jbHVkZURpcmVjdG9yeVBhdHRlcm46amYocixwLFwiZGlyZWN0b3JpZXNcIiksZXhjbHVkZVBhdHRlcm46amYodCxwLFwiZXhjbHVkZVwiKSxiYXNlUGF0aHM6QU0oZSxyLGEpfX1mdW5jdGlvbiBGZihlLHQpe3JldHVybiBuZXcgUmVnRXhwKGUsdD9cIlwiOlwiaVwiKX1mdW5jdGlvbiBFTShlLHQscixhLF8scCxkLGgsbCl7ZT1wbihlKSxwPXBuKHApO2xldCB2PXpTKGUscixhLF8scCkseT12LmluY2x1ZGVGaWxlUGF0dGVybnMmJnYuaW5jbHVkZUZpbGVQYXR0ZXJucy5tYXAodWU9PkZmKHVlLF8pKSxDPXYuaW5jbHVkZURpcmVjdG9yeVBhdHRlcm4mJkZmKHYuaW5jbHVkZURpcmVjdG9yeVBhdHRlcm4sXyksUz12LmV4Y2x1ZGVQYXR0ZXJuJiZGZih2LmV4Y2x1ZGVQYXR0ZXJuLF8pLGs9eT95Lm1hcCgoKT0+W10pOltbXV0sTD1uZXcgTWFwLEc9QmQoXyk7Zm9yKGxldCB1ZSBvZiB2LmJhc2VQYXRocylLKHVlLGhyKHAsdWUpLGQpO3JldHVybiBvXyhrKTtmdW5jdGlvbiBLKHVlLFksQil7bGV0IGFlPUcobChZKSk7aWYoTC5oYXMoYWUpKXJldHVybjtMLnNldChhZSwhMCk7bGV0e2ZpbGVzOkNlLGRpcmVjdG9yaWVzOlplfT1oKHVlKTtmb3IobGV0IHFlIG9mIEdmKENlLENpKSl7bGV0IHJ0PWhyKHVlLHFlKSxpdD1ocihZLHFlKTtpZighKHQmJiFlaShydCx0KSkmJiEoUyYmUy50ZXN0KGl0KSkpaWYoIXkpa1swXS5wdXNoKHJ0KTtlbHNle2xldCBJcj1fbCh5LGFyPT5hci50ZXN0KGl0KSk7SXIhPT0tMSYma1tJcl0ucHVzaChydCl9fWlmKCEoQiE9PXZvaWQgMCYmKEItLSxCPT09MCkpKWZvcihsZXQgcWUgb2YgR2YoWmUsQ2kpKXtsZXQgcnQ9aHIodWUscWUpLGl0PWhyKFkscWUpOyghQ3x8Qy50ZXN0KGl0KSkmJighU3x8IVMudGVzdChpdCkpJiZLKHJ0LGl0LEIpfX19ZnVuY3Rpb24gQU0oZSx0LHIpe2xldCBhPVtlXTtpZih0KXtsZXQgXz1bXTtmb3IobGV0IHAgb2YgdCl7bGV0IGQ9dl8ocCk/cDpwbihocihlLHApKTtfLnB1c2goa00oZCkpfV8uc29ydChfZyghcikpO2ZvcihsZXQgcCBvZiBfKXNvKGEsZD0+IUt2KGQscCxlLCFyKSkmJmEucHVzaChwKX1yZXR1cm4gYX1mdW5jdGlvbiBrTShlKXtsZXQgdD12dihlLER4KTtyZXR1cm4gdDwwP1F2KGUpP1NfKCRpKGUpKTplOmUuc3Vic3RyaW5nKDAsZS5sYXN0SW5kZXhPZihmbix0KSl9ZnVuY3Rpb24gV1MoZSx0KXtyZXR1cm4gdHx8VlMoZSl8fDN9ZnVuY3Rpb24gVlMoZSl7c3dpdGNoKGUuc3Vic3RyKGUubGFzdEluZGV4T2YoXCIuXCIpKS50b0xvd2VyQ2FzZSgpKXtjYXNlXCIuanNcIjpjYXNlXCIuY2pzXCI6Y2FzZVwiLm1qc1wiOnJldHVybiAxO2Nhc2VcIi5qc3hcIjpyZXR1cm4gMjtjYXNlXCIudHNcIjpjYXNlXCIuY3RzXCI6Y2FzZVwiLm10c1wiOnJldHVybiAzO2Nhc2VcIi50c3hcIjpyZXR1cm4gNDtjYXNlXCIuanNvblwiOnJldHVybiA2O2RlZmF1bHQ6cmV0dXJuIDB9fWZ1bmN0aW9uIEhTKGUsdCl7bGV0IHI9ZSYmQlMoZSk7aWYoIXR8fHQubGVuZ3RoPT09MClyZXR1cm4gcj9EbDpSbztsZXQgYT1yP0RsOlJvLF89b18oYSk7cmV0dXJuWy4uLmEsLi4uWmEodCxkPT5kLnNjcmlwdEtpbmQ9PT03fHxyJiZETShkLnNjcmlwdEtpbmQpJiZfLmluZGV4T2YoZC5leHRlbnNpb24pPT09LTE/W2QuZXh0ZW5zaW9uXTp2b2lkIDApXX1mdW5jdGlvbiBHUyhlLHQpe3JldHVybiFlfHwhRlMoZSk/dDp0PT09RGw/Tng6dD09PVJvP1B4OlsuLi50LFtcIi5qc29uXCJdXX1mdW5jdGlvbiBETShlKXtyZXR1cm4gZT09PTF8fGU9PT0yfWZ1bmN0aW9uIEgyKGUpe3JldHVybiBtdChyNix0PT5MYShlLHQpKX1mdW5jdGlvbiBHMihlKXtyZXR1cm4gbXQodDYsdD0+TGEoZSx0KSl9ZnVuY3Rpb24gWFMoe2ltcG9ydHM6ZX0sdD11ZyhIMixHMikpe3JldHVybiBuZyhlLCh7dGV4dDpyfSk9PnJzKHIpJiYhZWkocix3bSk/dChyKTp2b2lkIDApfHwhMX1mdW5jdGlvbiBQTShlLHQscixhKXtpZihlPT09XCJqc1wifHx0PT09OTkpcmV0dXJuIHNob3VsZEFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb24ocikmJl8oKSE9PTI/MzoyO2lmKGU9PT1cIm1pbmltYWxcIilyZXR1cm4gMDtpZihlPT09XCJpbmRleFwiKXJldHVybiAxO2lmKCFzaG91bGRBbGxvd0ltcG9ydGluZ1RzRXh0ZW5zaW9uKHIpKXJldHVybiBYUyhhKT8yOjA7cmV0dXJuIF8oKTtmdW5jdGlvbiBfKCl7bGV0IHA9ITEsZD1hLmltcG9ydHMubGVuZ3RoP2EuaW1wb3J0cy5tYXAoaD0+aC50ZXh0KTpjMihhKT9JTShhKS5tYXAoaD0+aC5hcmd1bWVudHNbMF0udGV4dCk6JGU7Zm9yKGxldCBoIG9mIGQpaWYocnMoaCkpe2lmKGVpKGgsd20pKWNvbnRpbnVlO2lmKEcyKGgpKXJldHVybiAzO0gyKGgpJiYocD0hMCl9cmV0dXJuIHA/MjowfX1mdW5jdGlvbiBJTShlKXtsZXQgdD0wLHI7Zm9yKGxldCBhIG9mIGUuc3RhdGVtZW50cyl7aWYodD4zKWJyZWFrO29UKGEpP3I9eV8ocixhLmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnMubWFwKF89Pl8uaW5pdGlhbGl6ZXIpKTpvdShhKSYmV2woYS5leHByZXNzaW9uLCEwKT9yPXh0KHIsYS5leHByZXNzaW9uKTp0Kyt9cmV0dXJuIHJ8fCRlfWZ1bmN0aW9uIE5NKGUsdCxyKXtpZighZSlyZXR1cm4hMTtsZXQgYT1IUyh0LHIpO2ZvcihsZXQgXyBvZiBvXyhHUyh0LGEpKSlpZihMYShlLF8pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFZiKGUpe2xldCB0PWUubWF0Y2goL1xcLy9nKTtyZXR1cm4gdD90Lmxlbmd0aDowfWZ1bmN0aW9uIE9NKGUsdCl7cmV0dXJuIGtyKFZiKGUpLFZiKHQpKX1mdW5jdGlvbiBBbChlKXtmb3IobGV0IHQgb2YgQ20pe2xldCByPSRTKGUsdCk7aWYociE9PXZvaWQgMClyZXR1cm4gcn1yZXR1cm4gZX1mdW5jdGlvbiAkUyhlLHQpe3JldHVybiBMYShlLHQpP1FTKGUsdCk6dm9pZCAwfWZ1bmN0aW9uIFFTKGUsdCl7cmV0dXJuIGUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtdC5sZW5ndGgpfWZ1bmN0aW9uIE1NKGUsdCl7cmV0dXJuIFl2KGUsdCxDbSwhMSl9ZnVuY3Rpb24gWVMoZSl7bGV0IHQ9ZS5pbmRleE9mKFwiKlwiKTtyZXR1cm4gdD09PS0xP2U6ZS5pbmRleE9mKFwiKlwiLHQrMSkhPT0tMT92b2lkIDA6e3ByZWZpeDplLnN1YnN0cigwLHQpLHN1ZmZpeDplLnN1YnN0cih0KzEpfX1mdW5jdGlvbiBMTShlKXtyZXR1cm4gWmEoc2coZSksdD0+WVModCkpfWZ1bmN0aW9uIE9hKGUpe3JldHVybiEoZT49MCl9ZnVuY3Rpb24gS1MoZSl7cmV0dXJuIGU9PT1cIi50c1wifHxlPT09XCIudHN4XCJ8fGU9PT1cIi5kLnRzXCJ8fGU9PT1cIi5jdHNcInx8ZT09PVwiLm10c1wifHxlPT09XCIuZC5tdHNcInx8ZT09PVwiLmQuY3RzXCJ8fEZyKGUsXCIuZC5cIikmJnRzKGUsXCIudHNcIil9ZnVuY3Rpb24gSk0oZSl7cmV0dXJuIEtTKGUpfHxlPT09XCIuanNvblwifWZ1bmN0aW9uIHJsKGUpe2xldCB0PVgyKGUpO3JldHVybiB0IT09dm9pZCAwP3Q6Ti5mYWlsKGBGaWxlICR7ZX0gaGFzIHVua25vd24gZXh0ZW5zaW9uLmApfWZ1bmN0aW9uIFJNKGUpe3JldHVybiBYMihlKSE9PXZvaWQgMH1mdW5jdGlvbiBYMihlKXtyZXR1cm4gWXIoQ20sdD0+TGEoZSx0KSl9ZnVuY3Rpb24gak0oZSx0KXtyZXR1cm4gZS5jaGVja0pzRGlyZWN0aXZlP2UuY2hlY2tKc0RpcmVjdGl2ZS5lbmFibGVkOnQuY2hlY2tKc31mdW5jdGlvbiBGTShlLHQpe2xldCByPVtdO2ZvcihsZXQgYSBvZiBlKXtpZihhPT09dClyZXR1cm4gdDtiXyhhKXx8ci5wdXNoKGEpfXJldHVybiBGdihyLGE9PmEsdCl9ZnVuY3Rpb24gQk0oZSx0KXtsZXQgcj1lLmluZGV4T2YodCk7cmV0dXJuIE4uYXNzZXJ0KHIhPT0tMSksZS5zbGljZShyKX1mdW5jdGlvbiBubChlLC4uLnQpe3JldHVybiB0Lmxlbmd0aCYmKGUucmVsYXRlZEluZm9ybWF0aW9ufHwoZS5yZWxhdGVkSW5mb3JtYXRpb249W10pLE4uYXNzZXJ0KGUucmVsYXRlZEluZm9ybWF0aW9uIT09JGUsXCJEaWFnbm9zdGljIGhhZCBlbXB0eSBhcnJheSBzaW5nbGV0b24gZm9yIHJlbGF0ZWQgaW5mbywgYnV0IGlzIHN0aWxsIGJlaW5nIGNvbnN0cnVjdGVkIVwiKSxlLnJlbGF0ZWRJbmZvcm1hdGlvbi5wdXNoKC4uLnQpKSxlfWZ1bmN0aW9uIFVNKGUsdCl7Ti5hc3NlcnQoZS5sZW5ndGghPT0wKTtsZXQgcj10KGVbMF0pLGE9cjtmb3IobGV0IF89MTtfPGUubGVuZ3RoO18rKyl7bGV0IHA9dChlW19dKTtwPHI/cj1wOnA+YSYmKGE9cCl9cmV0dXJue21pbjpyLG1heDphfX1mdW5jdGlvbiBxTShlKXtyZXR1cm57cG9zOkdvKGUpLGVuZDplLmVuZH19ZnVuY3Rpb24gek0oZSx0KXtsZXQgcj10LnBvcy0xLGE9TWF0aC5taW4oZS50ZXh0Lmxlbmd0aCxOdChlLnRleHQsdC5lbmQpKzEpO3JldHVybntwb3M6cixlbmQ6YX19ZnVuY3Rpb24gV00oZSx0LHIpe3JldHVybiB0LnNraXBMaWJDaGVjayYmZS5pc0RlY2xhcmF0aW9uRmlsZXx8dC5za2lwRGVmYXVsdExpYkNoZWNrJiZlLmhhc05vRGVmYXVsdExpYnx8ci5pc1NvdXJjZU9mUHJvamVjdFJlZmVyZW5jZVJlZGlyZWN0KGUuZmlsZU5hbWUpfWZ1bmN0aW9uICQyKGUsdCl7cmV0dXJuIGU9PT10fHx0eXBlb2YgZT09XCJvYmplY3RcIiYmZSE9PW51bGwmJnR5cGVvZiB0PT1cIm9iamVjdFwiJiZ0IT09bnVsbCYmRHYoZSx0LCQyKX1mdW5jdGlvbiBTbShlKXtsZXQgdDtzd2l0Y2goZS5jaGFyQ29kZUF0KDEpKXtjYXNlIDk4OmNhc2UgNjY6dD0xO2JyZWFrO2Nhc2UgMTExOmNhc2UgNzk6dD0zO2JyZWFrO2Nhc2UgMTIwOmNhc2UgODg6dD00O2JyZWFrO2RlZmF1bHQ6bGV0IHY9ZS5sZW5ndGgtMSx5PTA7Zm9yKDtlLmNoYXJDb2RlQXQoeSk9PT00ODspeSsrO3JldHVybiBlLnNsaWNlKHksdil8fFwiMFwifWxldCByPTIsYT1lLmxlbmd0aC0xLF89KGEtcikqdCxwPW5ldyBVaW50MTZBcnJheSgoXz4+PjQpKyhfJjE1PzE6MCkpO2ZvcihsZXQgdj1hLTEseT0wO3Y+PXI7di0tLHkrPXQpe2xldCBDPXk+Pj40LFM9ZS5jaGFyQ29kZUF0KHYpLEw9KFM8PTU3P1MtNDg6MTArUy0oUzw9NzA/NjU6OTcpKTw8KHkmMTUpO3BbQ118PUw7bGV0IEc9TD4+PjE2O0cmJihwW0MrMV18PUcpfWxldCBkPVwiXCIsaD1wLmxlbmd0aC0xLGw9ITA7Zm9yKDtsOyl7bGV0IHY9MDtsPSExO2ZvcihsZXQgeT1oO3k+PTA7eS0tKXtsZXQgQz12PDwxNnxwW3ldLFM9Qy8xMHwwO3BbeV09Uyx2PUMtUyoxMCxTJiYhbCYmKGg9eSxsPSEwKX1kPXYrZH1yZXR1cm4gZH1mdW5jdGlvbiBRMih7bmVnYXRpdmU6ZSxiYXNlMTBWYWx1ZTp0fSl7cmV0dXJuKGUmJnQhPT1cIjBcIj9cIi1cIjpcIlwiKSt0fWZ1bmN0aW9uIFZNKGUpe2lmKGV4KGUsITEpKXJldHVybiBaUyhlKX1mdW5jdGlvbiBaUyhlKXtsZXQgdD1lLnN0YXJ0c1dpdGgoXCItXCIpLHI9U20oYCR7dD9lLnNsaWNlKDEpOmV9bmApO3JldHVybntuZWdhdGl2ZTp0LGJhc2UxMFZhbHVlOnJ9fWZ1bmN0aW9uIGV4KGUsdCl7aWYoZT09PVwiXCIpcmV0dXJuITE7bGV0IHI9bnMoOTksITEpLGE9ITA7ci5zZXRPbkVycm9yKCgpPT5hPSExKSxyLnNldFRleHQoZStcIm5cIik7bGV0IF89ci5zY2FuKCkscD1fPT09NDE7cCYmKF89ci5zY2FuKCkpO2xldCBkPXIuZ2V0VG9rZW5GbGFncygpO3JldHVybiBhJiZfPT09MTAmJnIuZ2V0VG9rZW5FbmQoKT09PWUubGVuZ3RoKzEmJiEoZCY1MTIpJiYoIXR8fGU9PT1RMih7bmVnYXRpdmU6cCxiYXNlMTBWYWx1ZTpTbShyLmdldFRva2VuVmFsdWUoKSl9KSl9ZnVuY3Rpb24gSE0oZSl7cmV0dXJuISEoZS5mbGFncyYzMzU1NDQzMil8fHRUKGUpfHwkTShlKXx8WE0oZSl8fCEoXzIoZSl8fEdNKGUpKX1mdW5jdGlvbiBHTShlKXtyZXR1cm4gRWUoZSkmJl91KGUucGFyZW50KSYmZS5wYXJlbnQubmFtZT09PWV9ZnVuY3Rpb24gWE0oZSl7Zm9yKDtlLmtpbmQ9PT04MHx8ZS5raW5kPT09MjExOyllPWUucGFyZW50O2lmKGUua2luZCE9PTE2NylyZXR1cm4hMTtpZihncihlLnBhcmVudCwyNTYpKXJldHVybiEwO2xldCB0PWUucGFyZW50LnBhcmVudC5raW5kO3JldHVybiB0PT09MjY0fHx0PT09MTg3fWZ1bmN0aW9uICRNKGUpe2lmKGUua2luZCE9PTgwKXJldHVybiExO2xldCB0PUtyKGUucGFyZW50LHI9Pntzd2l0Y2goci5raW5kKXtjYXNlIDI5ODpyZXR1cm4hMDtjYXNlIDIxMTpjYXNlIDIzMzpyZXR1cm4hMTtkZWZhdWx0OnJldHVyblwicXVpdFwifX0pO3JldHVybih0PT1udWxsP3ZvaWQgMDp0LnRva2VuKT09PTExOXx8KHQ9PW51bGw/dm9pZCAwOnQucGFyZW50LmtpbmQpPT09MjY0fWZ1bmN0aW9uIFFNKGUpe3JldHVybiBSXyhlKSYmRWUoZS50eXBlTmFtZSl9ZnVuY3Rpb24gWU0oZSx0PV9vKXtpZihlLmxlbmd0aDwyKXJldHVybiEwO2xldCByPWVbMF07Zm9yKGxldCBhPTEsXz1lLmxlbmd0aDthPF87YSsrKXtsZXQgcD1lW2FdO2lmKCF0KHIscCkpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gd2QoZSx0KXtyZXR1cm4gZS5wb3M9dCxlfWZ1bmN0aW9uIHR4KGUsdCl7cmV0dXJuIGUuZW5kPXQsZX1mdW5jdGlvbiBZYShlLHQscil7cmV0dXJuIHR4KHdkKGUsdCkscil9ZnVuY3Rpb24gQ2QoZSx0LHIpe3JldHVybiBZYShlLHQsdCtyKX1mdW5jdGlvbiBLTShlLHQpe3JldHVybiBlJiYoZS5mbGFncz10KSxlfWZ1bmN0aW9uIFhpKGUsdCl7cmV0dXJuIGUmJnQmJihlLnBhcmVudD10KSxlfWZ1bmN0aW9uIGFfKGUsdCl7aWYoZSlmb3IobGV0IHIgb2YgZSlYaShyLHQpO3JldHVybiBlfWZ1bmN0aW9uIHJ4KGUsdCl7aWYoIWUpcmV0dXJuIGU7cmV0dXJuIGVnKGUsemcoZSk/cjpfKSxlO2Z1bmN0aW9uIHIocCxkKXtpZih0JiZwLnBhcmVudD09PWQpcmV0dXJuXCJza2lwXCI7WGkocCxkKX1mdW5jdGlvbiBhKHApe2lmKFdpKHApKWZvcihsZXQgZCBvZiBwLmpzRG9jKXIoZCxwKSxlZyhkLHIpfWZ1bmN0aW9uIF8ocCxkKXtyZXR1cm4gcihwLGQpfHxhKHApfX1mdW5jdGlvbiBaTShlKXtyZXR1cm4hUG0oZSl9ZnVuY3Rpb24gZUwoZSl7cmV0dXJuIGl1KGUpJiZzbyhlLmVsZW1lbnRzLFpNKX1mdW5jdGlvbiB0TChlKXtmb3IoTi5hc3NlcnRJc0RlZmluZWQoZS5wYXJlbnQpOzspe2xldCB0PWUucGFyZW50O2lmKGlzKHQpKXtlPXQ7Y29udGludWV9aWYob3UodCl8fGg2KHQpfHxsOCh0KSYmKHQuaW5pdGlhbGl6ZXI9PT1lfHx0LmluY3JlbWVudG9yPT09ZSkpcmV0dXJuITA7aWYoRl8odCkpe2lmKGUhPT1rYSh0LmVsZW1lbnRzKSlyZXR1cm4hMDtlPXQ7Y29udGludWV9aWYoQ3QodCkmJnQub3BlcmF0b3JUb2tlbi5raW5kPT09Mjgpe2lmKGU9PT10LmxlZnQpcmV0dXJuITA7ZT10O2NvbnRpbnVlfXJldHVybiExfX1mdW5jdGlvbiBueChlKXtyZXR1cm4gbXQoaWdub3JlZFBhdGhzLHQ9PmVvKGUsdCkpfWZ1bmN0aW9uIHJMKGUpe2lmKCFlLnBhcmVudClyZXR1cm47c3dpdGNoKGUua2luZCl7Y2FzZSAxNjg6bGV0e3BhcmVudDpyfT1lO3JldHVybiByLmtpbmQ9PT0xOTU/dm9pZCAwOnIudHlwZVBhcmFtZXRlcnM7Y2FzZSAxNjk6cmV0dXJuIGUucGFyZW50LnBhcmFtZXRlcnM7Y2FzZSAyMDQ6cmV0dXJuIGUucGFyZW50LnRlbXBsYXRlU3BhbnM7Y2FzZSAyMzk6cmV0dXJuIGUucGFyZW50LnRlbXBsYXRlU3BhbnM7Y2FzZSAxNzA6e2xldHtwYXJlbnQ6YX09ZTtyZXR1cm4gcTgoYSk/YS5tb2RpZmllcnM6dm9pZCAwfWNhc2UgMjk4OnJldHVybiBlLnBhcmVudC5oZXJpdGFnZUNsYXVzZXN9bGV0e3BhcmVudDp0fT1lO2lmKFdnKGUpKXJldHVybiBQNihlLnBhcmVudCk/dm9pZCAwOmUucGFyZW50LnRhZ3M7c3dpdGNoKHQua2luZCl7Y2FzZSAxODc6Y2FzZSAyNjQ6cmV0dXJuIGpnKGUpP3QubWVtYmVyczp2b2lkIDA7Y2FzZSAxOTI6Y2FzZSAxOTM6cmV0dXJuIHQudHlwZXM7Y2FzZSAxODk6Y2FzZSAyMDk6Y2FzZSAzNjE6Y2FzZSAyNzU6Y2FzZSAyNzk6cmV0dXJuIHQuZWxlbWVudHM7Y2FzZSAyMTA6Y2FzZSAyOTI6cmV0dXJuIHQucHJvcGVydGllcztjYXNlIDIxMzpjYXNlIDIxNDpyZXR1cm4gZzAoZSk/dC50eXBlQXJndW1lbnRzOnQuZXhwcmVzc2lvbj09PWU/dm9pZCAwOnQuYXJndW1lbnRzO2Nhc2UgMjg0OmNhc2UgMjg4OnJldHVybiB4MyhlKT90LmNoaWxkcmVuOnZvaWQgMDtjYXNlIDI4NjpjYXNlIDI4NTpyZXR1cm4gZzAoZSk/dC50eXBlQXJndW1lbnRzOnZvaWQgMDtjYXNlIDI0MTpjYXNlIDI5NjpjYXNlIDI5NzpjYXNlIDI2ODpyZXR1cm4gdC5zdGF0ZW1lbnRzO2Nhc2UgMjY5OnJldHVybiB0LmNsYXVzZXM7Y2FzZSAyNjM6Y2FzZSAyMzE6cmV0dXJuIG5vKGUpP3QubWVtYmVyczp2b2lkIDA7Y2FzZSAyNjY6cmV0dXJuIGc4KGUpP3QubWVtYmVyczp2b2lkIDA7Y2FzZSAzMTI6cmV0dXJuIHQuc3RhdGVtZW50c319ZnVuY3Rpb24gbkwoZSl7aWYoIWUudHlwZVBhcmFtZXRlcnMpe2lmKG10KGUucGFyYW1ldGVycyx0PT4hSTIodCkpKXJldHVybiEwO2lmKGUua2luZCE9PTIxOSl7bGV0IHQ9Z18oZS5wYXJhbWV0ZXJzKTtpZighKHQmJlhsKHQpKSlyZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gaUwoZSl7cmV0dXJuIGU9PT1cIkluZmluaXR5XCJ8fGU9PT1cIi1JbmZpbml0eVwifHxlPT09XCJOYU5cIn1mdW5jdGlvbiBpeChlKXtyZXR1cm4gZS5raW5kPT09MjYwJiZlLnBhcmVudC5raW5kPT09Mjk5fWZ1bmN0aW9uIGFMKGUpe2xldCB0PWUudmFsdWVEZWNsYXJhdGlvbiYmaG0oZS52YWx1ZURlY2xhcmF0aW9uKTtyZXR1cm4hIXQmJihNYSh0KXx8aXgodCkpfWZ1bmN0aW9uIG9MKGUpe3JldHVybiBlLmtpbmQ9PT0yMTh8fGUua2luZD09PTIxOX1mdW5jdGlvbiBzTChlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXCQvZ20sKCk9PlwiXFxcXCRcIil9ZnVuY3Rpb24gYXgoZSl7cmV0dXJuKCtlKS50b1N0cmluZygpPT09ZX1mdW5jdGlvbiBfTChlLHQscixhKXtyZXR1cm4gQ2coZSx0KT9Mbi5jcmVhdGVJZGVudGlmaWVyKGUpOiFhJiZheChlKSYmK2U+PTA/TG4uY3JlYXRlTnVtZXJpY0xpdGVyYWwoK2UpOkxuLmNyZWF0ZVN0cmluZ0xpdGVyYWwoZSwhIXIpfWZ1bmN0aW9uIG94KGUpe3JldHVybiEhKGUuZmxhZ3MmMjYyMTQ0JiZlLmlzVGhpc1R5cGUpfWZ1bmN0aW9uIGNMKGUpe2xldCB0PTAscj0wLGE9MCxfPTAscDsodj0+e3Zbdi5CZWZvcmVOb2RlTW9kdWxlcz0wXT1cIkJlZm9yZU5vZGVNb2R1bGVzXCIsdlt2Lk5vZGVNb2R1bGVzPTFdPVwiTm9kZU1vZHVsZXNcIix2W3YuU2NvcGU9Ml09XCJTY29wZVwiLHZbdi5QYWNrYWdlQ29udGVudD0zXT1cIlBhY2thZ2VDb250ZW50XCJ9KShwfHwocD17fSkpO2xldCBkPTAsaD0wLGw9MDtmb3IoO2g+PTA7KXN3aXRjaChkPWgsaD1lLmluZGV4T2YoXCIvXCIsZCsxKSxsKXtjYXNlIDA6ZS5pbmRleE9mKG5vZGVNb2R1bGVzUGF0aFBhcnQsZCk9PT1kJiYodD1kLHI9aCxsPTEpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6bD09PTEmJmUuY2hhckF0KGQrMSk9PT1cIkBcIj9sPTI6KGE9aCxsPTMpO2JyZWFrO2Nhc2UgMzplLmluZGV4T2Yobm9kZU1vZHVsZXNQYXRoUGFydCxkKT09PWQ/bD0xOmw9MzticmVha31yZXR1cm4gXz1kLGw+MT97dG9wTGV2ZWxOb2RlTW9kdWxlc0luZGV4OnQsdG9wTGV2ZWxQYWNrYWdlTmFtZUluZGV4OnIscGFja2FnZVJvb3RJbmRleDphLGZpbGVOYW1lSW5kZXg6X306dm9pZCAwfWZ1bmN0aW9uIGxMKGUpe3ZhciB0O3JldHVybiBlLmtpbmQ9PT0zNDg/KHQ9ZS50eXBlRXhwcmVzc2lvbik9PW51bGw/dm9pZCAwOnQudHlwZTplLnR5cGV9ZnVuY3Rpb24gc3goZSl7c3dpdGNoKGUua2luZCl7Y2FzZSAxNjg6Y2FzZSAyNjM6Y2FzZSAyNjQ6Y2FzZSAyNjU6Y2FzZSAyNjY6Y2FzZSAzNTM6Y2FzZSAzNDU6Y2FzZSAzNDc6cmV0dXJuITA7Y2FzZSAyNzM6cmV0dXJuIGUuaXNUeXBlT25seTtjYXNlIDI3NjpjYXNlIDI4MTpyZXR1cm4gZS5wYXJlbnQucGFyZW50LmlzVHlwZU9ubHk7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gdUwoZSl7cmV0dXJuIFM2KGUpfHxhcyhlKXx8b3MoZSl8fFlvKGUpfHxzdShlKXx8c3goZSl8fFlpKGUpJiYhR2coZSkmJiFjbShlKX1mdW5jdGlvbiBfeChlKXtpZighSWcoZSkpcmV0dXJuITE7bGV0e2lzQnJhY2tldGVkOnQsdHlwZUV4cHJlc3Npb246cn09ZTtyZXR1cm4gdHx8ISFyJiZyLnR5cGUua2luZD09PTMyM31mdW5jdGlvbiBwTChlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4hMTtsZXQgcj1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIHI9PT0zNT9lLmxlbmd0aD4xJiZ1bihlLmNoYXJDb2RlQXQoMSksdCk6dW4ocix0KX1mdW5jdGlvbiBjeChlKXt2YXIgdDtyZXR1cm4oKHQ9Z2V0U25pcHBldEVsZW1lbnQoZSkpPT1udWxsP3ZvaWQgMDp0LmtpbmQpPT09MH1mdW5jdGlvbiBseChlKXtyZXR1cm4gV3QoZSkmJihlLnR5cGUmJmUudHlwZS5raW5kPT09MzIzfHxLZChlKS5zb21lKCh7aXNCcmFja2V0ZWQ6dCx0eXBlRXhwcmVzc2lvbjpyfSk9PnR8fCEhciYmci50eXBlLmtpbmQ9PT0zMjMpKX1mdW5jdGlvbiBmTChlKXtzd2l0Y2goZS5raW5kKXtjYXNlIDE3MjpjYXNlIDE3MTpyZXR1cm4hIWUucXVlc3Rpb25Ub2tlbjtjYXNlIDE2OTpyZXR1cm4hIWUucXVlc3Rpb25Ub2tlbnx8bHgoZSk7Y2FzZSAzNTU6Y2FzZSAzNDg6cmV0dXJuIF94KGUpO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGRMKGUpe2xldCB0PWUua2luZDtyZXR1cm4odD09PTIxMXx8dD09PTIxMikmJmpvKGUuZXhwcmVzc2lvbil9ZnVuY3Rpb24gbUwoZSl7cmV0dXJuIFd0KGUpJiZpcyhlKSYmV2koZSkmJiEha2coZSl9ZnVuY3Rpb24gaEwoZSl7cmV0dXJuIE4uY2hlY2tEZWZpbmVkKHV4KGUpKX1mdW5jdGlvbiB1eChlKXtsZXQgdD1rZyhlKTtyZXR1cm4gdCYmdC50eXBlRXhwcmVzc2lvbiYmdC50eXBlRXhwcmVzc2lvbi50eXBlfWZ1bmN0aW9uIHlMKGUpe3JldHVybiBFZShlKT9lLmVzY2FwZWRUZXh0OllsKGUpfWZ1bmN0aW9uIGdMKGUpe3JldHVybiBFZShlKT9PdChlKTpLbChlKX1mdW5jdGlvbiBiTChlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT04MHx8dD09PTI5NX1mdW5jdGlvbiBZbChlKXtyZXR1cm5gJHtlLm5hbWVzcGFjZS5lc2NhcGVkVGV4dH06JHtPdChlLm5hbWUpfWB9ZnVuY3Rpb24gS2woZSl7cmV0dXJuYCR7T3QoZS5uYW1lc3BhY2UpfToke090KGUubmFtZSl9YH1mdW5jdGlvbiB2TChlKXtyZXR1cm4gRWUoZSk/T3QoZSk6S2woZSl9ZnVuY3Rpb24gVEwoZSl7cmV0dXJuISEoZS5mbGFncyY4NTc2KX1mdW5jdGlvbiBTTChlKXtyZXR1cm4gZS5mbGFncyY4MTkyP2UuZXNjYXBlZE5hbWU6ZS5mbGFncyYzODQ/TW4oXCJcIitlLnZhbHVlKTpOLmZhaWwoKX12YXIgcHgseG0sZngsZHgsWnMsRjAsWTIsbXgsaHgsSzIseXgsZ3gsQjAsVTAscTAsejAsYngsdngsVHgsU3gseHgsVzAsd3gsQ3gsRXgsUG8scWksQXgsa3gsd3QsWjIsa2wsRWQsRHgsVjAsQmYsJGgsUWgsWWgsZTYsUm8sdDYsUHgsSXgsSDAscjYsRGwsTngsbjYsT3gsd20sRzAsQ20sTXgseEw9VnQoe1wic3JjL2NvbXBpbGVyL3V0aWxpdGllcy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7RHIoKSxweD1bXSx4bT1cInRzbGliXCIsZng9MTYwLGR4PTFlNixacz1VaygpLEYwPShlPT4oZVtlLk5vbmU9MF09XCJOb25lXCIsZVtlLk5ldmVyQXNjaWlFc2NhcGU9MV09XCJOZXZlckFzY2lpRXNjYXBlXCIsZVtlLkpzeEF0dHJpYnV0ZUVzY2FwZT0yXT1cIkpzeEF0dHJpYnV0ZUVzY2FwZVwiLGVbZS5UZXJtaW5hdGVVbnRlcm1pbmF0ZWRMaXRlcmFscz00XT1cIlRlcm1pbmF0ZVVudGVybWluYXRlZExpdGVyYWxzXCIsZVtlLkFsbG93TnVtZXJpY1NlcGFyYXRvcj04XT1cIkFsbG93TnVtZXJpY1NlcGFyYXRvclwiLGUpKShGMHx8e30pLFkyPS9eKFxcL1xcL1xcL1xccyo8cmVmZXJlbmNlXFxzK3BhdGhcXHMqPVxccyopKCgnW14nXSonKXwoXCJbXlwiXSpcIikpLio/XFwvPi8sbXg9L14oXFwvXFwvXFwvXFxzKjxyZWZlcmVuY2VcXHMrdHlwZXNcXHMqPVxccyopKCgnW14nXSonKXwoXCJbXlwiXSpcIikpLio/XFwvPi8saHg9L14oXFwvXFwvXFwvXFxzKjxyZWZlcmVuY2VcXHMrbGliXFxzKj1cXHMqKSgoJ1teJ10qJyl8KFwiW15cIl0qXCIpKS4qP1xcLz4vLEsyPS9eKFxcL1xcL1xcL1xccyo8YW1kLWRlcGVuZGVuY3lcXHMrcGF0aFxccyo9XFxzKikoKCdbXiddKicpfChcIlteXCJdKlwiKSkuKj9cXC8+Lyx5eD0vXlxcL1xcL1xcL1xccyo8YW1kLW1vZHVsZVxccysuKj9cXC8+LyxneD0vXihcXC9cXC9cXC9cXHMqPHJlZmVyZW5jZVxccytuby1kZWZhdWx0LWxpYlxccyo9XFxzKikoKCdbXiddKicpfChcIlteXCJdKlwiKSlcXHMqXFwvPi8sQjA9KGU9PihlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuRGVmaW5pdGU9MV09XCJEZWZpbml0ZVwiLGVbZS5Db21wb3VuZD0yXT1cIkNvbXBvdW5kXCIsZSkpKEIwfHx7fSksVTA9KGU9PihlW2UuTm9ybWFsPTBdPVwiTm9ybWFsXCIsZVtlLkdlbmVyYXRvcj0xXT1cIkdlbmVyYXRvclwiLGVbZS5Bc3luYz0yXT1cIkFzeW5jXCIsZVtlLkludmFsaWQ9NF09XCJJbnZhbGlkXCIsZVtlLkFzeW5jR2VuZXJhdG9yPTNdPVwiQXN5bmNHZW5lcmF0b3JcIixlKSkoVTB8fHt9KSxxMD0oZT0+KGVbZS5MZWZ0PTBdPVwiTGVmdFwiLGVbZS5SaWdodD0xXT1cIlJpZ2h0XCIsZSkpKHEwfHx7fSksejA9KGU9PihlW2UuQ29tbWE9MF09XCJDb21tYVwiLGVbZS5TcHJlYWQ9MV09XCJTcHJlYWRcIixlW2UuWWllbGQ9Ml09XCJZaWVsZFwiLGVbZS5Bc3NpZ25tZW50PTNdPVwiQXNzaWdubWVudFwiLGVbZS5Db25kaXRpb25hbD00XT1cIkNvbmRpdGlvbmFsXCIsZVtlLkNvYWxlc2NlPTRdPVwiQ29hbGVzY2VcIixlW2UuTG9naWNhbE9SPTVdPVwiTG9naWNhbE9SXCIsZVtlLkxvZ2ljYWxBTkQ9Nl09XCJMb2dpY2FsQU5EXCIsZVtlLkJpdHdpc2VPUj03XT1cIkJpdHdpc2VPUlwiLGVbZS5CaXR3aXNlWE9SPThdPVwiQml0d2lzZVhPUlwiLGVbZS5CaXR3aXNlQU5EPTldPVwiQml0d2lzZUFORFwiLGVbZS5FcXVhbGl0eT0xMF09XCJFcXVhbGl0eVwiLGVbZS5SZWxhdGlvbmFsPTExXT1cIlJlbGF0aW9uYWxcIixlW2UuU2hpZnQ9MTJdPVwiU2hpZnRcIixlW2UuQWRkaXRpdmU9MTNdPVwiQWRkaXRpdmVcIixlW2UuTXVsdGlwbGljYXRpdmU9MTRdPVwiTXVsdGlwbGljYXRpdmVcIixlW2UuRXhwb25lbnRpYXRpb249MTVdPVwiRXhwb25lbnRpYXRpb25cIixlW2UuVW5hcnk9MTZdPVwiVW5hcnlcIixlW2UuVXBkYXRlPTE3XT1cIlVwZGF0ZVwiLGVbZS5MZWZ0SGFuZFNpZGU9MThdPVwiTGVmdEhhbmRTaWRlXCIsZVtlLk1lbWJlcj0xOV09XCJNZW1iZXJcIixlW2UuUHJpbWFyeT0yMF09XCJQcmltYXJ5XCIsZVtlLkhpZ2hlc3Q9MjBdPVwiSGlnaGVzdFwiLGVbZS5Mb3dlc3Q9MF09XCJMb3dlc3RcIixlW2UuSW52YWxpZD0tMV09XCJJbnZhbGlkXCIsZSkpKHowfHx7fSksYng9L1xcJFxcey9nLHZ4PS9bXFxcXFwiXFx1MDAwMC1cXHUwMDFmXFx0XFx2XFxmXFxiXFxyXFxuXFx1MjAyOFxcdTIwMjlcXHUwMDg1XS9nLFR4PS9bXFxcXCdcXHUwMDAwLVxcdTAwMWZcXHRcXHZcXGZcXGJcXHJcXG5cXHUyMDI4XFx1MjAyOVxcdTAwODVdL2csU3g9L1xcclxcbnxbXFxcXGBcXHUwMDAwLVxcdTAwMWZcXHRcXHZcXGZcXGJcXHJcXHUyMDI4XFx1MjAyOVxcdTAwODVdL2cseHg9bmV3IE1hcChPYmplY3QuZW50cmllcyh7XCJcdFwiOlwiXFxcXHRcIixcIlxcdlwiOlwiXFxcXHZcIixcIlxcZlwiOlwiXFxcXGZcIixcIlxcYlwiOlwiXFxcXGJcIixcIlxcclwiOlwiXFxcXHJcIixcIlxcblwiOlwiXFxcXG5cIixcIlxcXFxcIjpcIlxcXFxcXFxcXCIsJ1wiJzonXFxcXFwiJyxcIidcIjpcIlxcXFwnXCIsXCJgXCI6XCJcXFxcYFwiLFwiXFx1MjAyOFwiOlwiXFxcXHUyMDI4XCIsXCJcXHUyMDI5XCI6XCJcXFxcdTIwMjlcIixcIlxceDg1XCI6XCJcXFxcdTAwODVcIixcIlxcclxcblwiOlwiXFxcXHJcXFxcblwifSkpLFcwPS9bXlxcdTAwMDAtXFx1MDA3Rl0vZyx3eD0vW1wiXFx1MDAwMC1cXHUwMDFmXFx1MjAyOFxcdTIwMjlcXHUwMDg1XS9nLEN4PS9bJ1xcdTAwMDAtXFx1MDAxZlxcdTIwMjhcXHUyMDI5XFx1MDA4NV0vZyxFeD1uZXcgTWFwKE9iamVjdC5lbnRyaWVzKHsnXCInOlwiJnF1b3Q7XCIsXCInXCI6XCImYXBvcztcIn0pKSxQbz1bXCJcIixcIiAgICBcIl0scWk9XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwiLEF4PWBcXHJcbmAsa3g9YFxuYCx3dD17Z2V0Tm9kZUNvbnN0cnVjdG9yOigpPT5HaCxnZXRUb2tlbkNvbnN0cnVjdG9yOigpPT5VTyxnZXRJZGVudGlmaWVyQ29uc3RydWN0b3I6KCk9PnFPLGdldFByaXZhdGVJZGVudGlmaWVyQ29uc3RydWN0b3I6KCk9PkdoLGdldFNvdXJjZUZpbGVDb25zdHJ1Y3RvcjooKT0+R2gsZ2V0U3ltYm9sQ29uc3RydWN0b3I6KCk9PmpPLGdldFR5cGVDb25zdHJ1Y3RvcjooKT0+Rk8sZ2V0U2lnbmF0dXJlQ29uc3RydWN0b3I6KCk9PkJPLGdldFNvdXJjZU1hcFNvdXJjZUNvbnN0cnVjdG9yOigpPT56T30sWjI9W10sRWQ9L1teXFx3XFxzL10vZyxEeD1bNDIsNjNdLFYwPVtcIm5vZGVfbW9kdWxlc1wiLFwiYm93ZXJfY29tcG9uZW50c1wiLFwianNwbV9wYWNrYWdlc1wiXSxCZj1gKD8hKCR7VjAuam9pbihcInxcIil9KSgvfCQpKWAsJGg9e3NpbmdsZUFzdGVyaXNrUmVnZXhGcmFnbWVudDpcIihbXi4vXXwoXFxcXC4oPyFtaW5cXFxcLmpzJCkpPykqXCIsZG91YmxlQXN0ZXJpc2tSZWdleEZyYWdtZW50OmAoLyR7QmZ9W14vLl1bXi9dKikqP2AscmVwbGFjZVdpbGRjYXJkQ2hhcmFjdGVyOmU9PlhoKGUsJGguc2luZ2xlQXN0ZXJpc2tSZWdleEZyYWdtZW50KX0sUWg9e3NpbmdsZUFzdGVyaXNrUmVnZXhGcmFnbWVudDpcIlteL10qXCIsZG91YmxlQXN0ZXJpc2tSZWdleEZyYWdtZW50OmAoLyR7QmZ9W14vLl1bXi9dKikqP2AscmVwbGFjZVdpbGRjYXJkQ2hhcmFjdGVyOmU9PlhoKGUsUWguc2luZ2xlQXN0ZXJpc2tSZWdleEZyYWdtZW50KX0sWWg9e3NpbmdsZUFzdGVyaXNrUmVnZXhGcmFnbWVudDpcIlteL10qXCIsZG91YmxlQXN0ZXJpc2tSZWdleEZyYWdtZW50OlwiKC8uKz8pP1wiLHJlcGxhY2VXaWxkY2FyZENoYXJhY3RlcjplPT5YaChlLFloLnNpbmdsZUFzdGVyaXNrUmVnZXhGcmFnbWVudCl9LGU2PXtmaWxlczokaCxkaXJlY3RvcmllczpRaCxleGNsdWRlOllofSxSbz1bW1wiLnRzXCIsXCIudHN4XCIsXCIuZC50c1wiXSxbXCIuY3RzXCIsXCIuZC5jdHNcIl0sW1wiLm10c1wiLFwiLmQubXRzXCJdXSx0Nj1vXyhSbyksUHg9Wy4uLlJvLFtcIi5qc29uXCJdXSxJeD1bXCIuZC50c1wiLFwiLmQuY3RzXCIsXCIuZC5tdHNcIixcIi5jdHNcIixcIi5tdHNcIixcIi50c1wiLFwiLnRzeFwiXSxIMD1bW1wiLmpzXCIsXCIuanN4XCJdLFtcIi5tanNcIl0sW1wiLmNqc1wiXV0scjY9b18oSDApLERsPVtbXCIudHNcIixcIi50c3hcIixcIi5kLnRzXCIsXCIuanNcIixcIi5qc3hcIl0sW1wiLmN0c1wiLFwiLmQuY3RzXCIsXCIuY2pzXCJdLFtcIi5tdHNcIixcIi5kLm10c1wiLFwiLm1qc1wiXV0sTng9Wy4uLkRsLFtcIi5qc29uXCJdXSxuNj1bXCIuZC50c1wiLFwiLmQuY3RzXCIsXCIuZC5tdHNcIl0sT3g9W1wiLnRzXCIsXCIuY3RzXCIsXCIubXRzXCIsXCIudHN4XCJdLHdtPVtcIi5tdHNcIixcIi5kLm10c1wiLFwiLm1qc1wiLFwiLmN0c1wiLFwiLmQuY3RzXCIsXCIuY2pzXCJdLEcwPShlPT4oZVtlLk1pbmltYWw9MF09XCJNaW5pbWFsXCIsZVtlLkluZGV4PTFdPVwiSW5kZXhcIixlW2UuSnNFeHRlbnNpb249Ml09XCJKc0V4dGVuc2lvblwiLGVbZS5Uc0V4dGVuc2lvbj0zXT1cIlRzRXh0ZW5zaW9uXCIsZSkpKEcwfHx7fSksQ209W1wiLmQudHNcIixcIi5kLm10c1wiLFwiLmQuY3RzXCIsXCIubWpzXCIsXCIubXRzXCIsXCIuY2pzXCIsXCIuY3RzXCIsXCIudHNcIixcIi5qc1wiLFwiLnRzeFwiLFwiLmpzeFwiLFwiLmpzb25cIl0sTXg9e2ZpbGVzOiRlLGRpcmVjdG9yaWVzOiRlfX19KTtmdW5jdGlvbiBMeCgpe2xldCBlLHQscixhLF87cmV0dXJue2NyZWF0ZUJhc2VTb3VyY2VGaWxlTm9kZTpwLGNyZWF0ZUJhc2VJZGVudGlmaWVyTm9kZTpkLGNyZWF0ZUJhc2VQcml2YXRlSWRlbnRpZmllck5vZGU6aCxjcmVhdGVCYXNlVG9rZW5Ob2RlOmwsY3JlYXRlQmFzZU5vZGU6dn07ZnVuY3Rpb24gcCh5KXtyZXR1cm4gbmV3KF98fChfPXd0LmdldFNvdXJjZUZpbGVDb25zdHJ1Y3RvcigpKSkoeSwtMSwtMSl9ZnVuY3Rpb24gZCh5KXtyZXR1cm4gbmV3KHJ8fChyPXd0LmdldElkZW50aWZpZXJDb25zdHJ1Y3RvcigpKSkoeSwtMSwtMSl9ZnVuY3Rpb24gaCh5KXtyZXR1cm4gbmV3KGF8fChhPXd0LmdldFByaXZhdGVJZGVudGlmaWVyQ29uc3RydWN0b3IoKSkpKHksLTEsLTEpfWZ1bmN0aW9uIGwoeSl7cmV0dXJuIG5ldyh0fHwodD13dC5nZXRUb2tlbkNvbnN0cnVjdG9yKCkpKSh5LC0xLC0xKX1mdW5jdGlvbiB2KHkpe3JldHVybiBuZXcoZXx8KGU9d3QuZ2V0Tm9kZUNvbnN0cnVjdG9yKCkpKSh5LC0xLC0xKX19dmFyIHdMPVZ0KHtcInNyYy9jb21waWxlci9mYWN0b3J5L2Jhc2VOb2RlRmFjdG9yeS50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7RHIoKX19KSxpNixDTD1WdCh7XCJzcmMvY29tcGlsZXIvZmFjdG9yeS9wYXJlbnRoZXNpemVyUnVsZXMudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksaTY9e2dldFBhcmVudGhlc2l6ZUxlZnRTaWRlT2ZCaW5hcnlGb3JPcGVyYXRvcjplPT5idCxnZXRQYXJlbnRoZXNpemVSaWdodFNpZGVPZkJpbmFyeUZvck9wZXJhdG9yOmU9PmJ0LHBhcmVudGhlc2l6ZUxlZnRTaWRlT2ZCaW5hcnk6KGUsdCk9PnQscGFyZW50aGVzaXplUmlnaHRTaWRlT2ZCaW5hcnk6KGUsdCxyKT0+cixwYXJlbnRoZXNpemVFeHByZXNzaW9uT2ZDb21wdXRlZFByb3BlcnR5TmFtZTpidCxwYXJlbnRoZXNpemVDb25kaXRpb25PZkNvbmRpdGlvbmFsRXhwcmVzc2lvbjpidCxwYXJlbnRoZXNpemVCcmFuY2hPZkNvbmRpdGlvbmFsRXhwcmVzc2lvbjpidCxwYXJlbnRoZXNpemVFeHByZXNzaW9uT2ZFeHBvcnREZWZhdWx0OmJ0LHBhcmVudGhlc2l6ZUV4cHJlc3Npb25PZk5ldzplPT5naShlLExvKSxwYXJlbnRoZXNpemVMZWZ0U2lkZU9mQWNjZXNzOmU9PmdpKGUsTG8pLHBhcmVudGhlc2l6ZU9wZXJhbmRPZlBvc3RmaXhVbmFyeTplPT5naShlLExvKSxwYXJlbnRoZXNpemVPcGVyYW5kT2ZQcmVmaXhVbmFyeTplPT5naShlLHkzKSxwYXJlbnRoZXNpemVFeHByZXNzaW9uc09mQ29tbWFEZWxpbWl0ZWRMaXN0OmU9PmdpKGUsdmEpLHBhcmVudGhlc2l6ZUV4cHJlc3Npb25Gb3JEaXNhbGxvd2VkQ29tbWE6YnQscGFyZW50aGVzaXplRXhwcmVzc2lvbk9mRXhwcmVzc2lvblN0YXRlbWVudDpidCxwYXJlbnRoZXNpemVDb25jaXNlQm9keU9mQXJyb3dGdW5jdGlvbjpidCxwYXJlbnRoZXNpemVDaGVja1R5cGVPZkNvbmRpdGlvbmFsVHlwZTpidCxwYXJlbnRoZXNpemVFeHRlbmRzVHlwZU9mQ29uZGl0aW9uYWxUeXBlOmJ0LHBhcmVudGhlc2l6ZUNvbnN0aXR1ZW50VHlwZXNPZlVuaW9uVHlwZTplPT5naShlLHZhKSxwYXJlbnRoZXNpemVDb25zdGl0dWVudFR5cGVPZlVuaW9uVHlwZTpidCxwYXJlbnRoZXNpemVDb25zdGl0dWVudFR5cGVzT2ZJbnRlcnNlY3Rpb25UeXBlOmU9PmdpKGUsdmEpLHBhcmVudGhlc2l6ZUNvbnN0aXR1ZW50VHlwZU9mSW50ZXJzZWN0aW9uVHlwZTpidCxwYXJlbnRoZXNpemVPcGVyYW5kT2ZUeXBlT3BlcmF0b3I6YnQscGFyZW50aGVzaXplT3BlcmFuZE9mUmVhZG9ubHlUeXBlT3BlcmF0b3I6YnQscGFyZW50aGVzaXplTm9uQXJyYXlUeXBlT2ZQb3N0Zml4VHlwZTpidCxwYXJlbnRoZXNpemVFbGVtZW50VHlwZXNPZlR1cGxlVHlwZTplPT5naShlLHZhKSxwYXJlbnRoZXNpemVFbGVtZW50VHlwZU9mVHVwbGVUeXBlOmJ0LHBhcmVudGhlc2l6ZVR5cGVPZk9wdGlvbmFsVHlwZTpidCxwYXJlbnRoZXNpemVUeXBlQXJndW1lbnRzOmU9PmUmJmdpKGUsdmEpLHBhcmVudGhlc2l6ZUxlYWRpbmdUeXBlQXJndW1lbnQ6YnR9fX0pLEVMPSgpPT57fSxKeD0oKT0+bmV3IFByb3h5KHt9LHtnZXQ6KCk9PigpPT57fX0pO2Z1bmN0aW9uIEFMKGUpe2E2LnB1c2goZSl9ZnVuY3Rpb24gQWQoZSx0KXtsZXQgcj1lJjg/a0w6REwsYT1yeSgoKT0+ZSYxP2k2OmNyZWF0ZVBhcmVudGhlc2l6ZXJSdWxlcyh1ZSkpLF89cnkoKCk9PmUmMj9udWxsTm9kZUNvbnZlcnRlcnM6SngodWUpKSxwPU5uKG49PihvLHMpPT5uYyhvLG4scykpLGQ9Tm4obj0+bz0+cWEobixvKSksaD1ObihuPT5vPT5UcyhvLG4pKSxsPU5uKG49PigpPT5CMShuKSksdj1ObihuPT5vPT5OYyhuLG8pKSx5PU5uKG49PihvLHMpPT5VMShuLG8scykpLEM9Tm4obj0+KG8scyk9PkljKG4sbyxzKSksUz1ObihuPT4obyxzKT0+RXAobixvLHMpKSxrPU5uKG49PihvLHMpPT5qcChuLG8scykpLEw9Tm4obj0+KG8scyx1KT0+ZWgobixvLHMsdSkpLEc9Tm4obj0+KG8scyx1KT0+RnAobixvLHMsdSkpLEs9Tm4obj0+KG8scyx1LGcpPT50aChuLG8scyx1LGcpKSx1ZT17Z2V0IHBhcmVudGhlc2l6ZXIoKXtyZXR1cm4gYSgpfSxnZXQgY29udmVydGVycygpe3JldHVybiBfKCl9LGJhc2VGYWN0b3J5OnQsZmxhZ3M6ZSxjcmVhdGVOb2RlQXJyYXk6WSxjcmVhdGVOdW1lcmljTGl0ZXJhbDpaZSxjcmVhdGVCaWdJbnRMaXRlcmFsOnFlLGNyZWF0ZVN0cmluZ0xpdGVyYWw6aXQsY3JlYXRlU3RyaW5nTGl0ZXJhbEZyb21Ob2RlOklyLGNyZWF0ZVJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbDphcixjcmVhdGVMaXRlcmFsTGlrZU5vZGU6Y2ksY3JlYXRlSWRlbnRpZmllcjpHZSxjcmVhdGVUZW1wVmFyaWFibGU6R3QsY3JlYXRlTG9vcFZhcmlhYmxlOlVyLGNyZWF0ZVVuaXF1ZU5hbWU6WHQsZ2V0R2VuZXJhdGVkTmFtZUZvck5vZGU6VG4sY3JlYXRlUHJpdmF0ZUlkZW50aWZpZXI6c3IsY3JlYXRlVW5pcXVlUHJpdmF0ZU5hbWU6U3QsZ2V0R2VuZXJhdGVkUHJpdmF0ZU5hbWVGb3JOb2RlOnhuLGNyZWF0ZVRva2VuOnZ0LGNyZWF0ZVN1cGVyOmN0LGNyZWF0ZVRoaXM6VXQsY3JlYXRlTnVsbDpmcixjcmVhdGVUcnVlOmh0LGNyZWF0ZUZhbHNlOnduLGNyZWF0ZU1vZGlmaWVyOlR0LGNyZWF0ZU1vZGlmaWVyc0Zyb21Nb2RpZmllckZsYWdzOk9yLGNyZWF0ZVF1YWxpZmllZE5hbWU6cHQsdXBkYXRlUXVhbGlmaWVkTmFtZTpNcixjcmVhdGVDb21wdXRlZFByb3BlcnR5TmFtZTphdCx1cGRhdGVDb21wdXRlZFByb3BlcnR5TmFtZTplcixjcmVhdGVUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246UXQsdXBkYXRlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uOnRuLGNyZWF0ZVBhcmFtZXRlckRlY2xhcmF0aW9uOkJuLHVwZGF0ZVBhcmFtZXRlckRlY2xhcmF0aW9uOlVuLGNyZWF0ZURlY29yYXRvcjpybix1cGRhdGVEZWNvcmF0b3I6bm4sY3JlYXRlUHJvcGVydHlTaWduYXR1cmU6RGksdXBkYXRlUHJvcGVydHlTaWduYXR1cmU6cW4sY3JlYXRlUHJvcGVydHlEZWNsYXJhdGlvbjpxLHVwZGF0ZVByb3BlcnR5RGVjbGFyYXRpb246b2UsY3JlYXRlTWV0aG9kU2lnbmF0dXJlOmdlLHVwZGF0ZU1ldGhvZFNpZ25hdHVyZTpTZSxjcmVhdGVNZXRob2REZWNsYXJhdGlvbjpudCx1cGRhdGVNZXRob2REZWNsYXJhdGlvbjp6LGNyZWF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb246TGUsdXBkYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbjpsdCxjcmVhdGVHZXRBY2Nlc3NvckRlY2xhcmF0aW9uOmp0LHVwZGF0ZUdldEFjY2Vzc29yRGVjbGFyYXRpb246cXIsY3JlYXRlU2V0QWNjZXNzb3JEZWNsYXJhdGlvbjpDbix1cGRhdGVTZXRBY2Nlc3NvckRlY2xhcmF0aW9uOnpuLGNyZWF0ZUNhbGxTaWduYXR1cmU6aWEsdXBkYXRlQ2FsbFNpZ25hdHVyZTpXbixjcmVhdGVDb25zdHJ1Y3RTaWduYXR1cmU6RW4sdXBkYXRlQ29uc3RydWN0U2lnbmF0dXJlOklpLGNyZWF0ZUluZGV4U2lnbmF0dXJlOmFhLHVwZGF0ZUluZGV4U2lnbmF0dXJlOlZuLGNyZWF0ZUNsYXNzU3RhdGljQmxvY2tEZWNsYXJhdGlvbjplZSx1cGRhdGVDbGFzc1N0YXRpY0Jsb2NrRGVjbGFyYXRpb246eGUsY3JlYXRlVGVtcGxhdGVMaXRlcmFsVHlwZVNwYW46U3IsdXBkYXRlVGVtcGxhdGVMaXRlcmFsVHlwZVNwYW46SmUsY3JlYXRlS2V5d29yZFR5cGVOb2RlOm9hLGNyZWF0ZVR5cGVQcmVkaWNhdGVOb2RlOk10LHVwZGF0ZVR5cGVQcmVkaWNhdGVOb2RlOkxyLGNyZWF0ZVR5cGVSZWZlcmVuY2VOb2RlOmosdXBkYXRlVHlwZVJlZmVyZW5jZU5vZGU6VCxjcmVhdGVGdW5jdGlvblR5cGVOb2RlOngsdXBkYXRlRnVuY3Rpb25UeXBlTm9kZTpmLGNyZWF0ZUNvbnN0cnVjdG9yVHlwZU5vZGU6USx1cGRhdGVDb25zdHJ1Y3RvclR5cGVOb2RlOmJlLGNyZWF0ZVR5cGVRdWVyeU5vZGU6d2UsdXBkYXRlVHlwZVF1ZXJ5Tm9kZTpldCxjcmVhdGVUeXBlTGl0ZXJhbE5vZGU6WWUsdXBkYXRlVHlwZUxpdGVyYWxOb2RlOktlLGNyZWF0ZUFycmF5VHlwZU5vZGU6SXQsdXBkYXRlQXJyYXlUeXBlTm9kZTpxdCxjcmVhdGVUdXBsZVR5cGVOb2RlOl9yLHVwZGF0ZVR1cGxlVHlwZU5vZGU6VGUsY3JlYXRlTmFtZWRUdXBsZU1lbWJlcjpmdCx1cGRhdGVOYW1lZFR1cGxlTWVtYmVyOkFuLGNyZWF0ZU9wdGlvbmFsVHlwZU5vZGU6RXQsdXBkYXRlT3B0aW9uYWxUeXBlTm9kZTpILGNyZWF0ZVJlc3RUeXBlTm9kZTpGYSx1cGRhdGVSZXN0VHlwZU5vZGU6SWUsY3JlYXRlVW5pb25UeXBlTm9kZTphbix1cGRhdGVVbmlvblR5cGVOb2RlOkJhLGNyZWF0ZUludGVyc2VjdGlvblR5cGVOb2RlOmtuLHVwZGF0ZUludGVyc2VjdGlvblR5cGVOb2RlOmplLGNyZWF0ZUNvbmRpdGlvbmFsVHlwZU5vZGU6ZHQsdXBkYXRlQ29uZGl0aW9uYWxUeXBlTm9kZTpsaSxjcmVhdGVJbmZlclR5cGVOb2RlOkhuLHVwZGF0ZUluZmVyVHlwZU5vZGU6ZTEsY3JlYXRlSW1wb3J0VHlwZU5vZGU6dWksdXBkYXRlSW1wb3J0VHlwZU5vZGU6ZnMsY3JlYXRlUGFyZW50aGVzaXplZFR5cGU6eHIsdXBkYXRlUGFyZW50aGVzaXplZFR5cGU6RnQsY3JlYXRlVGhpc1R5cGVOb2RlOk0sY3JlYXRlVHlwZU9wZXJhdG9yTm9kZTpKcix1cGRhdGVUeXBlT3BlcmF0b3JOb2RlOnNhLGNyZWF0ZUluZGV4ZWRBY2Nlc3NUeXBlTm9kZTpOaSx1cGRhdGVJbmRleGVkQWNjZXNzVHlwZU5vZGU6R18sY3JlYXRlTWFwcGVkVHlwZU5vZGU6THQsdXBkYXRlTWFwcGVkVHlwZU5vZGU6WXQsY3JlYXRlTGl0ZXJhbFR5cGVOb2RlOk9pLHVwZGF0ZUxpdGVyYWxUeXBlTm9kZTpyMSxjcmVhdGVUZW1wbGF0ZUxpdGVyYWxUeXBlOmRyLHVwZGF0ZVRlbXBsYXRlTGl0ZXJhbFR5cGU6dDEsY3JlYXRlT2JqZWN0QmluZGluZ1BhdHRlcm46VHUsdXBkYXRlT2JqZWN0QmluZGluZ1BhdHRlcm46VWEsY3JlYXRlQXJyYXlCaW5kaW5nUGF0dGVybjpTdSx1cGRhdGVBcnJheUJpbmRpbmdQYXR0ZXJuOlhfLGNyZWF0ZUJpbmRpbmdFbGVtZW50Ol9hLHVwZGF0ZUJpbmRpbmdFbGVtZW50Onh1LGNyZWF0ZUFycmF5TGl0ZXJhbEV4cHJlc3Npb246JF8sdXBkYXRlQXJyYXlMaXRlcmFsRXhwcmVzc2lvbjp3dSxjcmVhdGVPYmplY3RMaXRlcmFsRXhwcmVzc2lvbjpkcyx1cGRhdGVPYmplY3RMaXRlcmFsRXhwcmVzc2lvbjpuMSxjcmVhdGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb246ZSY0PyhuLG8pPT5zZXRFbWl0RmxhZ3MoTWkobixvKSwyNjIxNDQpOk1pLHVwZGF0ZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjpRXyxjcmVhdGVQcm9wZXJ0eUFjY2Vzc0NoYWluOmUmND8obixvLHMpPT5zZXRFbWl0RmxhZ3MoaHMobixvLHMpLDI2MjE0NCk6aHMsdXBkYXRlUHJvcGVydHlBY2Nlc3NDaGFpbjp5cyxjcmVhdGVFbGVtZW50QWNjZXNzRXhwcmVzc2lvbjpZXyx1cGRhdGVFbGVtZW50QWNjZXNzRXhwcmVzc2lvbjpFdSxjcmVhdGVFbGVtZW50QWNjZXNzQ2hhaW46QXUsdXBkYXRlRWxlbWVudEFjY2Vzc0NoYWluOmt1LGNyZWF0ZUNhbGxFeHByZXNzaW9uOmZvLHVwZGF0ZUNhbGxFeHByZXNzaW9uOmkxLGNyZWF0ZUNhbGxDaGFpbjp6cix1cGRhdGVDYWxsQ2hhaW46Z3MsY3JlYXRlTmV3RXhwcmVzc2lvbjpicyx1cGRhdGVOZXdFeHByZXNzaW9uOkR1LGNyZWF0ZVRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbjpQdSx1cGRhdGVUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246YTEsY3JlYXRlVHlwZUFzc2VydGlvbjpJdSx1cGRhdGVUeXBlQXNzZXJ0aW9uOk51LGNyZWF0ZVBhcmVudGhlc2l6ZWRFeHByZXNzaW9uOktfLHVwZGF0ZVBhcmVudGhlc2l6ZWRFeHByZXNzaW9uOk91LGNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbjpaXyx1cGRhdGVGdW5jdGlvbkV4cHJlc3Npb246TXUsY3JlYXRlQXJyb3dGdW5jdGlvbjplYyx1cGRhdGVBcnJvd0Z1bmN0aW9uOnRjLGNyZWF0ZURlbGV0ZUV4cHJlc3Npb246THUsdXBkYXRlRGVsZXRlRXhwcmVzc2lvbjpXcixjcmVhdGVUeXBlT2ZFeHByZXNzaW9uOnZzLHVwZGF0ZVR5cGVPZkV4cHJlc3Npb246cGksY3JlYXRlVm9pZEV4cHJlc3Npb246cmMsdXBkYXRlVm9pZEV4cHJlc3Npb246Y2EsY3JlYXRlQXdhaXRFeHByZXNzaW9uOmxhLHVwZGF0ZUF3YWl0RXhwcmVzc2lvbjpvMSxjcmVhdGVQcmVmaXhVbmFyeUV4cHJlc3Npb246cWEsdXBkYXRlUHJlZml4VW5hcnlFeHByZXNzaW9uOnMxLGNyZWF0ZVBvc3RmaXhVbmFyeUV4cHJlc3Npb246VHMsdXBkYXRlUG9zdGZpeFVuYXJ5RXhwcmVzc2lvbjpfMSxjcmVhdGVCaW5hcnlFeHByZXNzaW9uOm5jLHVwZGF0ZUJpbmFyeUV4cHJlc3Npb246UnUsY3JlYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uOmp1LHVwZGF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbjpmaSxjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb246aWMsdXBkYXRlVGVtcGxhdGVFeHByZXNzaW9uOmMxLGNyZWF0ZVRlbXBsYXRlSGVhZDpvYyxjcmVhdGVUZW1wbGF0ZU1pZGRsZTpsMSxjcmVhdGVUZW1wbGF0ZVRhaWw6QnUsY3JlYXRlTm9TdWJzdGl0dXRpb25UZW1wbGF0ZUxpdGVyYWw6dTEsY3JlYXRlVGVtcGxhdGVMaXRlcmFsTGlrZU5vZGU6TGksY3JlYXRlWWllbGRFeHByZXNzaW9uOlV1LHVwZGF0ZVlpZWxkRXhwcmVzc2lvbjpwMSxjcmVhdGVTcHJlYWRFbGVtZW50OnF1LHVwZGF0ZVNwcmVhZEVsZW1lbnQ6ZjEsY3JlYXRlQ2xhc3NFeHByZXNzaW9uOnhzLHVwZGF0ZUNsYXNzRXhwcmVzc2lvbjpzYyxjcmVhdGVPbWl0dGVkRXhwcmVzc2lvbjpkMSxjcmVhdGVFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6VnIsdXBkYXRlRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzOl9jLGNyZWF0ZUFzRXhwcmVzc2lvbjp6dSx1cGRhdGVBc0V4cHJlc3Npb246V3UsY3JlYXRlTm9uTnVsbEV4cHJlc3Npb246Y2MsdXBkYXRlTm9uTnVsbEV4cHJlc3Npb246VnUsY3JlYXRlU2F0aXNmaWVzRXhwcmVzc2lvbjpsYyx1cGRhdGVTYXRpc2ZpZXNFeHByZXNzaW9uOkRuLGNyZWF0ZU5vbk51bGxDaGFpbjpIdSx1cGRhdGVOb25OdWxsQ2hhaW46d3MsY3JlYXRlTWV0YVByb3BlcnR5OkduLHVwZGF0ZU1ldGFQcm9wZXJ0eTpDcyxjcmVhdGVUZW1wbGF0ZVNwYW46dWMsdXBkYXRlVGVtcGxhdGVTcGFuOkd1LGNyZWF0ZVNlbWljb2xvbkNsYXNzRWxlbWVudDptMSxjcmVhdGVCbG9jazp1YSx1cGRhdGVCbG9jazpoMSxjcmVhdGVWYXJpYWJsZVN0YXRlbWVudDpYdSx1cGRhdGVWYXJpYWJsZVN0YXRlbWVudDpwYyxjcmVhdGVFbXB0eVN0YXRlbWVudDpmYyxjcmVhdGVFeHByZXNzaW9uU3RhdGVtZW50OkVzLHVwZGF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQ6JHUsY3JlYXRlSWZTdGF0ZW1lbnQ6UXUsdXBkYXRlSWZTdGF0ZW1lbnQ6WXUsY3JlYXRlRG9TdGF0ZW1lbnQ6S3UsdXBkYXRlRG9TdGF0ZW1lbnQ6eTEsY3JlYXRlV2hpbGVTdGF0ZW1lbnQ6WnUsdXBkYXRlV2hpbGVTdGF0ZW1lbnQ6ZXAsY3JlYXRlRm9yU3RhdGVtZW50OmRjLHVwZGF0ZUZvclN0YXRlbWVudDpnMSxjcmVhdGVGb3JJblN0YXRlbWVudDp0cCx1cGRhdGVGb3JJblN0YXRlbWVudDpiMSxjcmVhdGVGb3JPZlN0YXRlbWVudDpycCx1cGRhdGVGb3JPZlN0YXRlbWVudDp2MSxjcmVhdGVDb250aW51ZVN0YXRlbWVudDptYyx1cGRhdGVDb250aW51ZVN0YXRlbWVudDpucCxjcmVhdGVCcmVha1N0YXRlbWVudDpoYyx1cGRhdGVCcmVha1N0YXRlbWVudDpUMSxjcmVhdGVSZXR1cm5TdGF0ZW1lbnQ6aXAsdXBkYXRlUmV0dXJuU3RhdGVtZW50OmFwLGNyZWF0ZVdpdGhTdGF0ZW1lbnQ6eWMsdXBkYXRlV2l0aFN0YXRlbWVudDpvcCxjcmVhdGVTd2l0Y2hTdGF0ZW1lbnQ6cGEsdXBkYXRlU3dpdGNoU3RhdGVtZW50OlMxLGNyZWF0ZUxhYmVsZWRTdGF0ZW1lbnQ6c3AsdXBkYXRlTGFiZWxlZFN0YXRlbWVudDpfcCxjcmVhdGVUaHJvd1N0YXRlbWVudDpjcCx1cGRhdGVUaHJvd1N0YXRlbWVudDp4MSxjcmVhdGVUcnlTdGF0ZW1lbnQ6bHAsdXBkYXRlVHJ5U3RhdGVtZW50OnVwLGNyZWF0ZURlYnVnZ2VyU3RhdGVtZW50OnBwLGNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb246QXMsdXBkYXRlVmFyaWFibGVEZWNsYXJhdGlvbjp3MSxjcmVhdGVWYXJpYWJsZURlY2xhcmF0aW9uTGlzdDpnYyx1cGRhdGVWYXJpYWJsZURlY2xhcmF0aW9uTGlzdDpDMSxjcmVhdGVGdW5jdGlvbkRlY2xhcmF0aW9uOmJjLHVwZGF0ZUZ1bmN0aW9uRGVjbGFyYXRpb246ZnAsY3JlYXRlQ2xhc3NEZWNsYXJhdGlvbjp2Yyx1cGRhdGVDbGFzc0RlY2xhcmF0aW9uOlRjLGNyZWF0ZUludGVyZmFjZURlY2xhcmF0aW9uOmRwLHVwZGF0ZUludGVyZmFjZURlY2xhcmF0aW9uOmd0LGNyZWF0ZVR5cGVBbGlhc0RlY2xhcmF0aW9uOkppLHVwZGF0ZVR5cGVBbGlhc0RlY2xhcmF0aW9uOlNjLGNyZWF0ZUVudW1EZWNsYXJhdGlvbjpSaSx1cGRhdGVFbnVtRGVjbGFyYXRpb246bXAsY3JlYXRlTW9kdWxlRGVjbGFyYXRpb246SnQsdXBkYXRlTW9kdWxlRGVjbGFyYXRpb246amksY3JlYXRlTW9kdWxlQmxvY2s6dHIsdXBkYXRlTW9kdWxlQmxvY2s6QTEsY3JlYXRlQ2FzZUJsb2NrOmhwLHVwZGF0ZUNhc2VCbG9jazprMSxjcmVhdGVOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbjp4Yyx1cGRhdGVOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbjpEMSxjcmVhdGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbjp5cCx1cGRhdGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbjpncCxjcmVhdGVJbXBvcnREZWNsYXJhdGlvbjpicCx1cGRhdGVJbXBvcnREZWNsYXJhdGlvbjp2cCxjcmVhdGVJbXBvcnRDbGF1c2U6d2MsdXBkYXRlSW1wb3J0Q2xhdXNlOlRwLGNyZWF0ZUFzc2VydENsYXVzZTpTcCx1cGRhdGVBc3NlcnRDbGF1c2U6a3MsY3JlYXRlQXNzZXJ0RW50cnk6Q2MsdXBkYXRlQXNzZXJ0RW50cnk6eHAsY3JlYXRlSW1wb3J0VHlwZUFzc2VydGlvbkNvbnRhaW5lcjpFYyx1cGRhdGVJbXBvcnRUeXBlQXNzZXJ0aW9uQ29udGFpbmVyOkkxLGNyZWF0ZU5hbWVzcGFjZUltcG9ydDpEcyx1cGRhdGVOYW1lc3BhY2VJbXBvcnQ6TjEsY3JlYXRlTmFtZXNwYWNlRXhwb3J0OkFjLHVwZGF0ZU5hbWVzcGFjZUV4cG9ydDpPMSxjcmVhdGVOYW1lZEltcG9ydHM6d3AsdXBkYXRlTmFtZWRJbXBvcnRzOk0xLGNyZWF0ZUltcG9ydFNwZWNpZmllcjpDcCx1cGRhdGVJbXBvcnRTcGVjaWZpZXI6TDEsY3JlYXRlRXhwb3J0QXNzaWdubWVudDpQcyx1cGRhdGVFeHBvcnRBc3NpZ25tZW50OkZpLGNyZWF0ZUV4cG9ydERlY2xhcmF0aW9uOmtjLHVwZGF0ZUV4cG9ydERlY2xhcmF0aW9uOkRjLGNyZWF0ZU5hbWVkRXhwb3J0czpOcyx1cGRhdGVOYW1lZEV4cG9ydHM6SjEsY3JlYXRlRXhwb3J0U3BlY2lmaWVyOmZhLHVwZGF0ZUV4cG9ydFNwZWNpZmllcjpSMSxjcmVhdGVNaXNzaW5nRGVjbGFyYXRpb246ajEsY3JlYXRlRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2U6UGMsdXBkYXRlRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2U6RjEsZ2V0IGNyZWF0ZUpTRG9jQWxsVHlwZSgpe3JldHVybiBsKDMxOSl9LGdldCBjcmVhdGVKU0RvY1Vua25vd25UeXBlKCl7cmV0dXJuIGwoMzIwKX0sZ2V0IGNyZWF0ZUpTRG9jTm9uTnVsbGFibGVUeXBlKCl7cmV0dXJuIEMoMzIyKX0sZ2V0IHVwZGF0ZUpTRG9jTm9uTnVsbGFibGVUeXBlKCl7cmV0dXJuIFMoMzIyKX0sZ2V0IGNyZWF0ZUpTRG9jTnVsbGFibGVUeXBlKCl7cmV0dXJuIEMoMzIxKX0sZ2V0IHVwZGF0ZUpTRG9jTnVsbGFibGVUeXBlKCl7cmV0dXJuIFMoMzIxKX0sZ2V0IGNyZWF0ZUpTRG9jT3B0aW9uYWxUeXBlKCl7cmV0dXJuIHYoMzIzKX0sZ2V0IHVwZGF0ZUpTRG9jT3B0aW9uYWxUeXBlKCl7cmV0dXJuIHkoMzIzKX0sZ2V0IGNyZWF0ZUpTRG9jVmFyaWFkaWNUeXBlKCl7cmV0dXJuIHYoMzI1KX0sZ2V0IHVwZGF0ZUpTRG9jVmFyaWFkaWNUeXBlKCl7cmV0dXJuIHkoMzI1KX0sZ2V0IGNyZWF0ZUpTRG9jTmFtZXBhdGhUeXBlKCl7cmV0dXJuIHYoMzI2KX0sZ2V0IHVwZGF0ZUpTRG9jTmFtZXBhdGhUeXBlKCl7cmV0dXJuIHkoMzI2KX0sY3JlYXRlSlNEb2NGdW5jdGlvblR5cGU6QXAsdXBkYXRlSlNEb2NGdW5jdGlvblR5cGU6cTEsY3JlYXRlSlNEb2NUeXBlTGl0ZXJhbDprcCx1cGRhdGVKU0RvY1R5cGVMaXRlcmFsOnoxLGNyZWF0ZUpTRG9jVHlwZUV4cHJlc3Npb246RHAsdXBkYXRlSlNEb2NUeXBlRXhwcmVzc2lvbjpXMSxjcmVhdGVKU0RvY1NpZ25hdHVyZTpQcCx1cGRhdGVKU0RvY1NpZ25hdHVyZTpWMSxjcmVhdGVKU0RvY1RlbXBsYXRlVGFnOmhvLHVwZGF0ZUpTRG9jVGVtcGxhdGVUYWc6T3MsY3JlYXRlSlNEb2NUeXBlZGVmVGFnOk1zLHVwZGF0ZUpTRG9jVHlwZWRlZlRhZzpJcCxjcmVhdGVKU0RvY1BhcmFtZXRlclRhZzpPYyx1cGRhdGVKU0RvY1BhcmFtZXRlclRhZzpNYyxjcmVhdGVKU0RvY1Byb3BlcnR5VGFnOk5wLHVwZGF0ZUpTRG9jUHJvcGVydHlUYWc6T3AsY3JlYXRlSlNEb2NDYWxsYmFja1RhZzpNcCx1cGRhdGVKU0RvY0NhbGxiYWNrVGFnOkgxLGNyZWF0ZUpTRG9jT3ZlcmxvYWRUYWc6TGMsdXBkYXRlSlNEb2NPdmVybG9hZFRhZzpHMSxjcmVhdGVKU0RvY0F1Z21lbnRzVGFnOkpjLHVwZGF0ZUpTRG9jQXVnbWVudHNUYWc6WDEsY3JlYXRlSlNEb2NJbXBsZW1lbnRzVGFnOkxzLHVwZGF0ZUpTRG9jSW1wbGVtZW50c1RhZzpaMSxjcmVhdGVKU0RvY1NlZVRhZzpSYyx1cGRhdGVKU0RvY1NlZVRhZzp5byxjcmVhdGVKU0RvY05hbWVSZWZlcmVuY2U6THAsdXBkYXRlSlNEb2NOYW1lUmVmZXJlbmNlOldhLGNyZWF0ZUpTRG9jTWVtYmVyTmFtZTpnbyx1cGRhdGVKU0RvY01lbWJlck5hbWU6JDEsY3JlYXRlSlNEb2NMaW5rOkpwLHVwZGF0ZUpTRG9jTGluazpRMSxjcmVhdGVKU0RvY0xpbmtDb2RlOlJwLHVwZGF0ZUpTRG9jTGlua0NvZGU6WTEsY3JlYXRlSlNEb2NMaW5rUGxhaW46amMsdXBkYXRlSlNEb2NMaW5rUGxhaW46SzEsZ2V0IGNyZWF0ZUpTRG9jVHlwZVRhZygpe3JldHVybiBHKDM1MSl9LGdldCB1cGRhdGVKU0RvY1R5cGVUYWcoKXtyZXR1cm4gSygzNTEpfSxnZXQgY3JlYXRlSlNEb2NSZXR1cm5UYWcoKXtyZXR1cm4gRygzNDkpfSxnZXQgdXBkYXRlSlNEb2NSZXR1cm5UYWcoKXtyZXR1cm4gSygzNDkpfSxnZXQgY3JlYXRlSlNEb2NUaGlzVGFnKCl7cmV0dXJuIEcoMzUwKX0sZ2V0IHVwZGF0ZUpTRG9jVGhpc1RhZygpe3JldHVybiBLKDM1MCl9LGdldCBjcmVhdGVKU0RvY0F1dGhvclRhZygpe3JldHVybiBrKDMzNyl9LGdldCB1cGRhdGVKU0RvY0F1dGhvclRhZygpe3JldHVybiBMKDMzNyl9LGdldCBjcmVhdGVKU0RvY0NsYXNzVGFnKCl7cmV0dXJuIGsoMzM5KX0sZ2V0IHVwZGF0ZUpTRG9jQ2xhc3NUYWcoKXtyZXR1cm4gTCgzMzkpfSxnZXQgY3JlYXRlSlNEb2NQdWJsaWNUYWcoKXtyZXR1cm4gaygzNDApfSxnZXQgdXBkYXRlSlNEb2NQdWJsaWNUYWcoKXtyZXR1cm4gTCgzNDApfSxnZXQgY3JlYXRlSlNEb2NQcml2YXRlVGFnKCl7cmV0dXJuIGsoMzQxKX0sZ2V0IHVwZGF0ZUpTRG9jUHJpdmF0ZVRhZygpe3JldHVybiBMKDM0MSl9LGdldCBjcmVhdGVKU0RvY1Byb3RlY3RlZFRhZygpe3JldHVybiBrKDM0Mil9LGdldCB1cGRhdGVKU0RvY1Byb3RlY3RlZFRhZygpe3JldHVybiBMKDM0Mil9LGdldCBjcmVhdGVKU0RvY1JlYWRvbmx5VGFnKCl7cmV0dXJuIGsoMzQzKX0sZ2V0IHVwZGF0ZUpTRG9jUmVhZG9ubHlUYWcoKXtyZXR1cm4gTCgzNDMpfSxnZXQgY3JlYXRlSlNEb2NPdmVycmlkZVRhZygpe3JldHVybiBrKDM0NCl9LGdldCB1cGRhdGVKU0RvY092ZXJyaWRlVGFnKCl7cmV0dXJuIEwoMzQ0KX0sZ2V0IGNyZWF0ZUpTRG9jRGVwcmVjYXRlZFRhZygpe3JldHVybiBrKDMzOCl9LGdldCB1cGRhdGVKU0RvY0RlcHJlY2F0ZWRUYWcoKXtyZXR1cm4gTCgzMzgpfSxnZXQgY3JlYXRlSlNEb2NUaHJvd3NUYWcoKXtyZXR1cm4gRygzNTYpfSxnZXQgdXBkYXRlSlNEb2NUaHJvd3NUYWcoKXtyZXR1cm4gSygzNTYpfSxnZXQgY3JlYXRlSlNEb2NTYXRpc2ZpZXNUYWcoKXtyZXR1cm4gRygzNTcpfSxnZXQgdXBkYXRlSlNEb2NTYXRpc2ZpZXNUYWcoKXtyZXR1cm4gSygzNTcpfSxjcmVhdGVKU0RvY0VudW1UYWc6VXAsdXBkYXRlSlNEb2NFbnVtVGFnOm5oLGNyZWF0ZUpTRG9jVW5rbm93blRhZzpCcCx1cGRhdGVKU0RvY1Vua25vd25UYWc6cmgsY3JlYXRlSlNEb2NUZXh0OnFwLHVwZGF0ZUpTRG9jVGV4dDppaCxjcmVhdGVKU0RvY0NvbW1lbnQ6SnMsdXBkYXRlSlNEb2NDb21tZW50OmFoLGNyZWF0ZUpzeEVsZW1lbnQ6RmMsdXBkYXRlSnN4RWxlbWVudDp6cCxjcmVhdGVKc3hTZWxmQ2xvc2luZ0VsZW1lbnQ6V3AsdXBkYXRlSnN4U2VsZkNsb3NpbmdFbGVtZW50OlJzLGNyZWF0ZUpzeE9wZW5pbmdFbGVtZW50OkJjLHVwZGF0ZUpzeE9wZW5pbmdFbGVtZW50Om9oLGNyZWF0ZUpzeENsb3NpbmdFbGVtZW50OlZwLHVwZGF0ZUpzeENsb3NpbmdFbGVtZW50OnNoLGNyZWF0ZUpzeEZyYWdtZW50OmpzLGNyZWF0ZUpzeFRleHQ6RnMsdXBkYXRlSnN4VGV4dDpHcCxjcmVhdGVKc3hPcGVuaW5nRnJhZ21lbnQ6VWMsY3JlYXRlSnN4SnN4Q2xvc2luZ0ZyYWdtZW50OndyLHVwZGF0ZUpzeEZyYWdtZW50OkhwLGNyZWF0ZUpzeEF0dHJpYnV0ZTpxYyx1cGRhdGVKc3hBdHRyaWJ1dGU6WHAsY3JlYXRlSnN4QXR0cmlidXRlczokcCx1cGRhdGVKc3hBdHRyaWJ1dGVzOlFwLGNyZWF0ZUpzeFNwcmVhZEF0dHJpYnV0ZTpZcCx1cGRhdGVKc3hTcHJlYWRBdHRyaWJ1dGU6X2gsY3JlYXRlSnN4RXhwcmVzc2lvbjpibyx1cGRhdGVKc3hFeHByZXNzaW9uOmNoLGNyZWF0ZUpzeE5hbWVzcGFjZWROYW1lOktwLHVwZGF0ZUpzeE5hbWVzcGFjZWROYW1lOmxoLGNyZWF0ZUNhc2VDbGF1c2U6WnAsdXBkYXRlQ2FzZUNsYXVzZTp6YyxjcmVhdGVEZWZhdWx0Q2xhdXNlOlZhLHVwZGF0ZURlZmF1bHRDbGF1c2U6dWgsY3JlYXRlSGVyaXRhZ2VDbGF1c2U6QnMsdXBkYXRlSGVyaXRhZ2VDbGF1c2U6ZWYsY3JlYXRlQ2F0Y2hDbGF1c2U6dGYsdXBkYXRlQ2F0Y2hDbGF1c2U6dm8sY3JlYXRlUHJvcGVydHlBc3NpZ25tZW50OlVzLHVwZGF0ZVByb3BlcnR5QXNzaWdubWVudDpwaCxjcmVhdGVTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQ6V2MsdXBkYXRlU2hvcnRoYW5kUHJvcGVydHlBc3NpZ25tZW50OnJmLGNyZWF0ZVNwcmVhZEFzc2lnbm1lbnQ6ZGEsdXBkYXRlU3ByZWFkQXNzaWdubWVudDpkaCxjcmVhdGVFbnVtTWVtYmVyOmFmLHVwZGF0ZUVudW1NZW1iZXI6bWgsY3JlYXRlU291cmNlRmlsZTpoaCx1cGRhdGVTb3VyY2VGaWxlOmdoLGNyZWF0ZVJlZGlyZWN0ZWRTb3VyY2VGaWxlOlZjLGNyZWF0ZUJ1bmRsZTpzZix1cGRhdGVCdW5kbGU6X2YsY3JlYXRlVW5wYXJzZWRTb3VyY2U6R2MsY3JlYXRlVW5wYXJzZWRQcm9sb2d1ZTpiaCxjcmVhdGVVbnBhcnNlZFByZXBlbmQ6Y2YsY3JlYXRlVW5wYXJzZWRUZXh0TGlrZTp2aCxjcmVhdGVVbnBhcnNlZFN5bnRoZXRpY1JlZmVyZW5jZTpUaCxjcmVhdGVJbnB1dEZpbGVzOnFzLGNyZWF0ZVN5bnRoZXRpY0V4cHJlc3Npb246bGYsY3JlYXRlU3ludGF4TGlzdDpTaCxjcmVhdGVOb3RFbWl0dGVkU3RhdGVtZW50OnhoLGNyZWF0ZVBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9uOnVmLHVwZGF0ZVBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9uOnBmLGNyZWF0ZUNvbW1hTGlzdEV4cHJlc3Npb246enMsdXBkYXRlQ29tbWFMaXN0RXhwcmVzc2lvbjpmZixjcmVhdGVTeW50aGV0aWNSZWZlcmVuY2VFeHByZXNzaW9uOiRjLHVwZGF0ZVN5bnRoZXRpY1JlZmVyZW5jZUV4cHJlc3Npb246Q2gsY2xvbmVOb2RlOlFjLGdldCBjcmVhdGVDb21tYSgpe3JldHVybiBwKDI4KX0sZ2V0IGNyZWF0ZUFzc2lnbm1lbnQoKXtyZXR1cm4gcCg2NCl9LGdldCBjcmVhdGVMb2dpY2FsT3IoKXtyZXR1cm4gcCg1Nyl9LGdldCBjcmVhdGVMb2dpY2FsQW5kKCl7cmV0dXJuIHAoNTYpfSxnZXQgY3JlYXRlQml0d2lzZU9yKCl7cmV0dXJuIHAoNTIpfSxnZXQgY3JlYXRlQml0d2lzZVhvcigpe3JldHVybiBwKDUzKX0sZ2V0IGNyZWF0ZUJpdHdpc2VBbmQoKXtyZXR1cm4gcCg1MSl9LGdldCBjcmVhdGVTdHJpY3RFcXVhbGl0eSgpe3JldHVybiBwKDM3KX0sZ2V0IGNyZWF0ZVN0cmljdEluZXF1YWxpdHkoKXtyZXR1cm4gcCgzOCl9LGdldCBjcmVhdGVFcXVhbGl0eSgpe3JldHVybiBwKDM1KX0sZ2V0IGNyZWF0ZUluZXF1YWxpdHkoKXtyZXR1cm4gcCgzNil9LGdldCBjcmVhdGVMZXNzVGhhbigpe3JldHVybiBwKDMwKX0sZ2V0IGNyZWF0ZUxlc3NUaGFuRXF1YWxzKCl7cmV0dXJuIHAoMzMpfSxnZXQgY3JlYXRlR3JlYXRlclRoYW4oKXtyZXR1cm4gcCgzMil9LGdldCBjcmVhdGVHcmVhdGVyVGhhbkVxdWFscygpe3JldHVybiBwKDM0KX0sZ2V0IGNyZWF0ZUxlZnRTaGlmdCgpe3JldHVybiBwKDQ4KX0sZ2V0IGNyZWF0ZVJpZ2h0U2hpZnQoKXtyZXR1cm4gcCg0OSl9LGdldCBjcmVhdGVVbnNpZ25lZFJpZ2h0U2hpZnQoKXtyZXR1cm4gcCg1MCl9LGdldCBjcmVhdGVBZGQoKXtyZXR1cm4gcCg0MCl9LGdldCBjcmVhdGVTdWJ0cmFjdCgpe3JldHVybiBwKDQxKX0sZ2V0IGNyZWF0ZU11bHRpcGx5KCl7cmV0dXJuIHAoNDIpfSxnZXQgY3JlYXRlRGl2aWRlKCl7cmV0dXJuIHAoNDQpfSxnZXQgY3JlYXRlTW9kdWxvKCl7cmV0dXJuIHAoNDUpfSxnZXQgY3JlYXRlRXhwb25lbnQoKXtyZXR1cm4gcCg0Myl9LGdldCBjcmVhdGVQcmVmaXhQbHVzKCl7cmV0dXJuIGQoNDApfSxnZXQgY3JlYXRlUHJlZml4TWludXMoKXtyZXR1cm4gZCg0MSl9LGdldCBjcmVhdGVQcmVmaXhJbmNyZW1lbnQoKXtyZXR1cm4gZCg0Nil9LGdldCBjcmVhdGVQcmVmaXhEZWNyZW1lbnQoKXtyZXR1cm4gZCg0Nyl9LGdldCBjcmVhdGVCaXR3aXNlTm90KCl7cmV0dXJuIGQoNTUpfSxnZXQgY3JlYXRlTG9naWNhbE5vdCgpe3JldHVybiBkKDU0KX0sZ2V0IGNyZWF0ZVBvc3RmaXhJbmNyZW1lbnQoKXtyZXR1cm4gaCg0Nil9LGdldCBjcmVhdGVQb3N0Zml4RGVjcmVtZW50KCl7cmV0dXJuIGgoNDcpfSxjcmVhdGVJbW1lZGlhdGVseUludm9rZWRGdW5jdGlvbkV4cHJlc3Npb246a2gsY3JlYXRlSW1tZWRpYXRlbHlJbnZva2VkQXJyb3dGdW5jdGlvbjpEaCxjcmVhdGVWb2lkWmVybzptYSxjcmVhdGVFeHBvcnREZWZhdWx0OlBoLGNyZWF0ZUV4dGVybmFsTW9kdWxlRXhwb3J0OkloLGNyZWF0ZVR5cGVDaGVjazpOaCxjcmVhdGVJc05vdFR5cGVDaGVjazpPaCxjcmVhdGVNZXRob2RDYWxsOmhhLGNyZWF0ZUdsb2JhbE1ldGhvZENhbGw6SGEsY3JlYXRlRnVuY3Rpb25CaW5kQ2FsbDpNaCxjcmVhdGVGdW5jdGlvbkNhbGxDYWxsOldzLGNyZWF0ZUZ1bmN0aW9uQXBwbHlDYWxsOkxoLGNyZWF0ZUFycmF5U2xpY2VDYWxsOkpoLGNyZWF0ZUFycmF5Q29uY2F0Q2FsbDpSaCxjcmVhdGVPYmplY3REZWZpbmVQcm9wZXJ0eUNhbGw6aGYsY3JlYXRlT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQ2FsbDpqaCxjcmVhdGVSZWZsZWN0R2V0Q2FsbDpGaCxjcmVhdGVSZWZsZWN0U2V0Q2FsbDpCaCxjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3I6eWYsY3JlYXRlQ2FsbEJpbmRpbmc6QSxjcmVhdGVBc3NpZ25tZW50VGFyZ2V0V3JhcHBlcjpSLGlubGluZUV4cHJlc3Npb25zOnRlLGdldEludGVybmFsTmFtZTpuZSxnZXRMb2NhbE5hbWU6aWUsZ2V0RXhwb3J0TmFtZTp2ZSxnZXREZWNsYXJhdGlvbk5hbWU6SGUsZ2V0TmFtZXNwYWNlTWVtYmVyTmFtZTpCZSxnZXRFeHRlcm5hbE1vZHVsZU9yTmFtZXNwYWNlRXhwb3J0TmFtZTpVZSxyZXN0b3JlT3V0ZXJFeHByZXNzaW9uczptLHJlc3RvcmVFbmNsb3NpbmdMYWJlbDpiLGNyZWF0ZVVzZVN0cmljdFByb2xvZ3VlOmRpLGNvcHlQcm9sb2d1ZTpSdCxjb3B5U3RhbmRhcmRQcm9sb2d1ZTptaSxjb3B5Q3VzdG9tUHJvbG9ndWU6aGksZW5zdXJlVXNlU3RyaWN0OlVpLGxpZnRUb0Jsb2NrOmdhLG1lcmdlTGV4aWNhbEVudmlyb25tZW50OlVoLHVwZGF0ZU1vZGlmaWVyczpiZix1cGRhdGVNb2RpZmllckxpa2U6cWh9O3JldHVybiB5cihhNixuPT5uKHVlKSksdWU7ZnVuY3Rpb24gWShuLG8pe2lmKG49PT12b2lkIDB8fG49PT0kZSluPVtdO2Vsc2UgaWYodmEobikpe2lmKG89PT12b2lkIDB8fG4uaGFzVHJhaWxpbmdDb21tYT09PW8pcmV0dXJuIG4udHJhbnNmb3JtRmxhZ3M9PT12b2lkIDAmJkhiKG4pLE4uYXR0YWNoTm9kZUFycmF5RGVidWdJbmZvKG4pLG47bGV0IGc9bi5zbGljZSgpO3JldHVybiBnLnBvcz1uLnBvcyxnLmVuZD1uLmVuZCxnLmhhc1RyYWlsaW5nQ29tbWE9byxnLnRyYW5zZm9ybUZsYWdzPW4udHJhbnNmb3JtRmxhZ3MsTi5hdHRhY2hOb2RlQXJyYXlEZWJ1Z0luZm8oZyksZ31sZXQgcz1uLmxlbmd0aCx1PXM+PTEmJnM8PTQ/bi5zbGljZSgpOm47cmV0dXJuIHUucG9zPS0xLHUuZW5kPS0xLHUuaGFzVHJhaWxpbmdDb21tYT0hIW8sdS50cmFuc2Zvcm1GbGFncz0wLEhiKHUpLE4uYXR0YWNoTm9kZUFycmF5RGVidWdJbmZvKHUpLHV9ZnVuY3Rpb24gQihuKXtyZXR1cm4gdC5jcmVhdGVCYXNlTm9kZShuKX1mdW5jdGlvbiBhZShuKXtsZXQgbz1CKG4pO3JldHVybiBvLnN5bWJvbD12b2lkIDAsby5sb2NhbFN5bWJvbD12b2lkIDAsb31mdW5jdGlvbiBDZShuLG8pe3JldHVybiBuIT09byYmKG4udHlwZUFyZ3VtZW50cz1vLnR5cGVBcmd1bWVudHMpLHIobixvKX1mdW5jdGlvbiBaZShuLG89MCl7bGV0IHM9YWUoOSk7cmV0dXJuIHMudGV4dD10eXBlb2Ygbj09XCJudW1iZXJcIj9uK1wiXCI6bixzLm51bWVyaWNMaXRlcmFsRmxhZ3M9byxvJjM4NCYmKHMudHJhbnNmb3JtRmxhZ3N8PTEwMjQpLHN9ZnVuY3Rpb24gcWUobil7bGV0IG89VHIoMTApO3JldHVybiBvLnRleHQ9dHlwZW9mIG49PVwic3RyaW5nXCI/bjpRMihuKStcIm5cIixvLnRyYW5zZm9ybUZsYWdzfD0zMixvfWZ1bmN0aW9uIHJ0KG4sbyl7bGV0IHM9YWUoMTEpO3JldHVybiBzLnRleHQ9bixzLnNpbmdsZVF1b3RlPW8sc31mdW5jdGlvbiBpdChuLG8scyl7bGV0IHU9cnQobixvKTtyZXR1cm4gdS5oYXNFeHRlbmRlZFVuaWNvZGVFc2NhcGU9cyxzJiYodS50cmFuc2Zvcm1GbGFnc3w9MTAyNCksdX1mdW5jdGlvbiBJcihuKXtsZXQgbz1ydChiZChuKSx2b2lkIDApO3JldHVybiBvLnRleHRTb3VyY2VOb2RlPW4sb31mdW5jdGlvbiBhcihuKXtsZXQgbz1UcigxNCk7cmV0dXJuIG8udGV4dD1uLG99ZnVuY3Rpb24gY2kobixvKXtzd2l0Y2gobil7Y2FzZSA5OnJldHVybiBaZShvLDApO2Nhc2UgMTA6cmV0dXJuIHFlKG8pO2Nhc2UgMTE6cmV0dXJuIGl0KG8sdm9pZCAwKTtjYXNlIDEyOnJldHVybiBGcyhvLCExKTtjYXNlIDEzOnJldHVybiBGcyhvLCEwKTtjYXNlIDE0OnJldHVybiBhcihvKTtjYXNlIDE1OnJldHVybiBMaShuLG8sdm9pZCAwLDApfX1mdW5jdGlvbiBvcihuKXtsZXQgbz10LmNyZWF0ZUJhc2VJZGVudGlmaWVyTm9kZSg4MCk7cmV0dXJuIG8uZXNjYXBlZFRleHQ9bixvLmpzRG9jPXZvaWQgMCxvLmZsb3dOb2RlPXZvaWQgMCxvLnN5bWJvbD12b2lkIDAsb31mdW5jdGlvbiBOcihuLG8scyx1KXtsZXQgZz1vcihNbihuKSk7cmV0dXJuIHNldElkZW50aWZpZXJBdXRvR2VuZXJhdGUoZyx7ZmxhZ3M6byxpZDppbCxwcmVmaXg6cyxzdWZmaXg6dX0pLGlsKyssZ31mdW5jdGlvbiBHZShuLG8scyl7bz09PXZvaWQgMCYmbiYmKG89UmwobikpLG89PT04MCYmKG89dm9pZCAwKTtsZXQgdT1vcihNbihuKSk7cmV0dXJuIHMmJih1LmZsYWdzfD0yNTYpLHUuZXNjYXBlZFRleHQ9PT1cImF3YWl0XCImJih1LnRyYW5zZm9ybUZsYWdzfD02NzEwODg2NCksdS5mbGFncyYyNTYmJih1LnRyYW5zZm9ybUZsYWdzfD0xMDI0KSx1fWZ1bmN0aW9uIEd0KG4sbyxzLHUpe2xldCBnPTE7byYmKGd8PTgpO2xldCBJPU5yKFwiXCIsZyxzLHUpO3JldHVybiBuJiZuKEkpLEl9ZnVuY3Rpb24gVXIobil7bGV0IG89MjtyZXR1cm4gbiYmKG98PTgpLE5yKFwiXCIsbyx2b2lkIDAsdm9pZCAwKX1mdW5jdGlvbiBYdChuLG89MCxzLHUpe3JldHVybiBOLmFzc2VydCghKG8mNyksXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2U6IGZsYWdzXCIpLE4uYXNzZXJ0KChvJjQ4KSE9PTMyLFwiR2VuZXJhdGVkSWRlbnRpZmllckZsYWdzLkZpbGVMZXZlbCBjYW5ub3QgYmUgc2V0IHdpdGhvdXQgYWxzbyBzZXR0aW5nIEdlbmVyYXRlZElkZW50aWZpZXJGbGFncy5PcHRpbWlzdGljXCIpLE5yKG4sM3xvLHMsdSl9ZnVuY3Rpb24gVG4obixvPTAscyx1KXtOLmFzc2VydCghKG8mNyksXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2U6IGZsYWdzXCIpO2xldCBnPW4/cm8obik/UGQoITEscyxuLHUsT3QpOmBnZW5lcmF0ZWRAJHtnZXROb2RlSWQobil9YDpcIlwiOyhzfHx1KSYmKG98PTE2KTtsZXQgST1OcihnLDR8byxzLHUpO3JldHVybiBJLm9yaWdpbmFsPW4sSX1mdW5jdGlvbiBTbihuKXtsZXQgbz10LmNyZWF0ZUJhc2VQcml2YXRlSWRlbnRpZmllck5vZGUoODEpO3JldHVybiBvLmVzY2FwZWRUZXh0PW4sby50cmFuc2Zvcm1GbGFnc3w9MTY3NzcyMTYsb31mdW5jdGlvbiBzcihuKXtyZXR1cm4gRnIobixcIiNcIil8fE4uZmFpbChcIkZpcnN0IGNoYXJhY3RlciBvZiBwcml2YXRlIGlkZW50aWZpZXIgbXVzdCBiZSAjOiBcIituKSxTbihNbihuKSl9ZnVuY3Rpb24gJHQobixvLHMsdSl7bGV0IGc9U24oTW4obikpO3JldHVybiBzZXRJZGVudGlmaWVyQXV0b0dlbmVyYXRlKGcse2ZsYWdzOm8saWQ6aWwscHJlZml4OnMsc3VmZml4OnV9KSxpbCsrLGd9ZnVuY3Rpb24gU3QobixvLHMpe24mJiFGcihuLFwiI1wiKSYmTi5mYWlsKFwiRmlyc3QgY2hhcmFjdGVyIG9mIHByaXZhdGUgaWRlbnRpZmllciBtdXN0IGJlICM6IFwiK24pO2xldCB1PTh8KG4/MzoxKTtyZXR1cm4gJHQobj8/XCJcIix1LG8scyl9ZnVuY3Rpb24geG4obixvLHMpe2xldCB1PXJvKG4pP1BkKCEwLG8sbixzLE90KTpgI2dlbmVyYXRlZEAke2dldE5vZGVJZChuKX1gLEk9JHQodSw0fChvfHxzPzE2OjApLG8scyk7cmV0dXJuIEkub3JpZ2luYWw9bixJfWZ1bmN0aW9uIFRyKG4pe3JldHVybiB0LmNyZWF0ZUJhc2VUb2tlbk5vZGUobil9ZnVuY3Rpb24gdnQobil7Ti5hc3NlcnQobj49MCYmbjw9MTY1LFwiSW52YWxpZCB0b2tlblwiKSxOLmFzc2VydChuPD0xNXx8bj49MTgsXCJJbnZhbGlkIHRva2VuLiBVc2UgJ2NyZWF0ZVRlbXBsYXRlTGl0ZXJhbExpa2VOb2RlJyB0byBjcmVhdGUgdGVtcGxhdGUgbGl0ZXJhbHMuXCIpLE4uYXNzZXJ0KG48PTl8fG4+PTE1LFwiSW52YWxpZCB0b2tlbi4gVXNlICdjcmVhdGVMaXRlcmFsTGlrZU5vZGUnIHRvIGNyZWF0ZSBsaXRlcmFscy5cIiksTi5hc3NlcnQobiE9PTgwLFwiSW52YWxpZCB0b2tlbi4gVXNlICdjcmVhdGVJZGVudGlmaWVyJyB0byBjcmVhdGUgaWRlbnRpZmllcnNcIik7bGV0IG89VHIobikscz0wO3N3aXRjaChuKXtjYXNlIDEzNDpzPTM4NDticmVhaztjYXNlIDE2MDpzPTQ7YnJlYWs7Y2FzZSAxMjU6Y2FzZSAxMjM6Y2FzZSAxMjQ6Y2FzZSAxNDg6Y2FzZSAxMjg6Y2FzZSAxMzg6Y2FzZSA4NzpjYXNlIDEzMzpjYXNlIDE1MDpjYXNlIDE2MzpjYXNlIDE0NjpjYXNlIDE1MTpjYXNlIDEwMzpjYXNlIDE0NzpjYXNlIDE2NDpjYXNlIDE1NDpjYXNlIDEzNjpjYXNlIDE1NTpjYXNlIDExNjpjYXNlIDE1OTpjYXNlIDE1NzpzPTE7YnJlYWs7Y2FzZSAxMDg6cz0xMzQyMTg3NTIsby5mbG93Tm9kZT12b2lkIDA7YnJlYWs7Y2FzZSAxMjY6cz0xMDI0O2JyZWFrO2Nhc2UgMTI5OnM9MTY3NzcyMTY7YnJlYWs7Y2FzZSAxMTA6cz0xNjM4NCxvLmZsb3dOb2RlPXZvaWQgMDticmVha31yZXR1cm4gcyYmKG8udHJhbnNmb3JtRmxhZ3N8PXMpLG99ZnVuY3Rpb24gY3QoKXtyZXR1cm4gdnQoMTA4KX1mdW5jdGlvbiBVdCgpe3JldHVybiB2dCgxMTApfWZ1bmN0aW9uIGZyKCl7cmV0dXJuIHZ0KDEwNil9ZnVuY3Rpb24gaHQoKXtyZXR1cm4gdnQoMTEyKX1mdW5jdGlvbiB3bigpe3JldHVybiB2dCg5Nyl9ZnVuY3Rpb24gVHQobil7cmV0dXJuIHZ0KG4pfWZ1bmN0aW9uIE9yKG4pe2xldCBvPVtdO3JldHVybiBuJjEmJm8ucHVzaChUdCg5NSkpLG4mMiYmby5wdXNoKFR0KDEzOCkpLG4mMTAyNCYmby5wdXNoKFR0KDkwKSksbiYyMDQ4JiZvLnB1c2goVHQoODcpKSxuJjQmJm8ucHVzaChUdCgxMjUpKSxuJjgmJm8ucHVzaChUdCgxMjMpKSxuJjE2JiZvLnB1c2goVHQoMTI0KSksbiYyNTYmJm8ucHVzaChUdCgxMjgpKSxuJjMyJiZvLnB1c2goVHQoMTI2KSksbiYxNjM4NCYmby5wdXNoKFR0KDE2NCkpLG4mNjQmJm8ucHVzaChUdCgxNDgpKSxuJjEyOCYmby5wdXNoKFR0KDEyOSkpLG4mNTEyJiZvLnB1c2goVHQoMTM0KSksbiYzMjc2OCYmby5wdXNoKFR0KDEwMykpLG4mNjU1MzYmJm8ucHVzaChUdCgxNDcpKSxvLmxlbmd0aD9vOnZvaWQgMH1mdW5jdGlvbiBwdChuLG8pe2xldCBzPUIoMTY2KTtyZXR1cm4gcy5sZWZ0PW4scy5yaWdodD1YZShvKSxzLnRyYW5zZm9ybUZsYWdzfD1WKHMubGVmdCl8ZV8ocy5yaWdodCkscy5mbG93Tm9kZT12b2lkIDAsc31mdW5jdGlvbiBNcihuLG8scyl7cmV0dXJuIG4ubGVmdCE9PW98fG4ucmlnaHQhPT1zP3IocHQobyxzKSxuKTpufWZ1bmN0aW9uIGF0KG4pe2xldCBvPUIoMTY3KTtyZXR1cm4gby5leHByZXNzaW9uPWEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uT2ZDb21wdXRlZFByb3BlcnR5TmFtZShuKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbil8MTAyNHwxMzEwNzIsb31mdW5jdGlvbiBlcihuLG8pe3JldHVybiBuLmV4cHJlc3Npb24hPT1vP3IoYXQobyksbik6bn1mdW5jdGlvbiBRdChuLG8scyx1KXtsZXQgZz1hZSgxNjgpO3JldHVybiBnLm1vZGlmaWVycz1PZShuKSxnLm5hbWU9WGUobyksZy5jb25zdHJhaW50PXMsZy5kZWZhdWx0PXUsZy50cmFuc2Zvcm1GbGFncz0xLGcuZXhwcmVzc2lvbj12b2lkIDAsZy5qc0RvYz12b2lkIDAsZ31mdW5jdGlvbiB0bihuLG8scyx1LGcpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4uY29uc3RyYWludCE9PXV8fG4uZGVmYXVsdCE9PWc/cihRdChvLHMsdSxnKSxuKTpufWZ1bmN0aW9uIEJuKG4sbyxzLHUsZyxJKXtsZXQgVz1hZSgxNjkpO3JldHVybiBXLm1vZGlmaWVycz1PZShuKSxXLmRvdERvdERvdFRva2VuPW8sVy5uYW1lPVhlKHMpLFcucXVlc3Rpb25Ub2tlbj11LFcudHlwZT1nLFcuaW5pdGlhbGl6ZXI9VG8oSSkseW0oVy5uYW1lKT9XLnRyYW5zZm9ybUZsYWdzPTE6Vy50cmFuc2Zvcm1GbGFncz1EZShXLm1vZGlmaWVycyl8VihXLmRvdERvdERvdFRva2VuKXxJbihXLm5hbWUpfFYoVy5xdWVzdGlvblRva2VuKXxWKFcuaW5pdGlhbGl6ZXIpfChXLnF1ZXN0aW9uVG9rZW4/P1cudHlwZT8xOjApfChXLmRvdERvdERvdFRva2VuPz9XLmluaXRpYWxpemVyPzEwMjQ6MCl8KGxuKFcubW9kaWZpZXJzKSYxNjQ3Nj84MTkyOjApLFcuanNEb2M9dm9pZCAwLFd9ZnVuY3Rpb24gVW4obixvLHMsdSxnLEksVyl7cmV0dXJuIG4ubW9kaWZpZXJzIT09b3x8bi5kb3REb3REb3RUb2tlbiE9PXN8fG4ubmFtZSE9PXV8fG4ucXVlc3Rpb25Ub2tlbiE9PWd8fG4udHlwZSE9PUl8fG4uaW5pdGlhbGl6ZXIhPT1XP3IoQm4obyxzLHUsZyxJLFcpLG4pOm59ZnVuY3Rpb24gcm4obil7bGV0IG89QigxNzApO3JldHVybiBvLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZUxlZnRTaWRlT2ZBY2Nlc3MobiwhMSksby50cmFuc2Zvcm1GbGFnc3w9VihvLmV4cHJlc3Npb24pfDF8ODE5MnwzMzU1NDQzMixvfWZ1bmN0aW9uIG5uKG4sbyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW8/cihybihvKSxuKTpufWZ1bmN0aW9uIERpKG4sbyxzLHUpe2xldCBnPWFlKDE3MSk7cmV0dXJuIGcubW9kaWZpZXJzPU9lKG4pLGcubmFtZT1YZShvKSxnLnR5cGU9dSxnLnF1ZXN0aW9uVG9rZW49cyxnLnRyYW5zZm9ybUZsYWdzPTEsZy5pbml0aWFsaXplcj12b2lkIDAsZy5qc0RvYz12b2lkIDAsZ31mdW5jdGlvbiBxbihuLG8scyx1LGcpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4ucXVlc3Rpb25Ub2tlbiE9PXV8fG4udHlwZSE9PWc/QWUoRGkobyxzLHUsZyksbik6bn1mdW5jdGlvbiBBZShuLG8pe3JldHVybiBuIT09byYmKG4uaW5pdGlhbGl6ZXI9by5pbml0aWFsaXplcikscihuLG8pfWZ1bmN0aW9uIHEobixvLHMsdSxnKXtsZXQgST1hZSgxNzIpO0kubW9kaWZpZXJzPU9lKG4pLEkubmFtZT1YZShvKSxJLnF1ZXN0aW9uVG9rZW49cyYmUGwocyk/czp2b2lkIDAsSS5leGNsYW1hdGlvblRva2VuPXMmJkRkKHMpP3M6dm9pZCAwLEkudHlwZT11LEkuaW5pdGlhbGl6ZXI9VG8oZyk7bGV0IFc9SS5mbGFncyYzMzU1NDQzMnx8bG4oSS5tb2RpZmllcnMpJjI7cmV0dXJuIEkudHJhbnNmb3JtRmxhZ3M9RGUoSS5tb2RpZmllcnMpfEluKEkubmFtZSl8VihJLmluaXRpYWxpemVyKXwoV3x8SS5xdWVzdGlvblRva2VufHxJLmV4Y2xhbWF0aW9uVG9rZW58fEkudHlwZT8xOjApfChhbyhJLm5hbWUpfHxsbihJLm1vZGlmaWVycykmMzImJkkuaW5pdGlhbGl6ZXI/ODE5MjowKXwxNjc3NzIxNixJLmpzRG9jPXZvaWQgMCxJfWZ1bmN0aW9uIG9lKG4sbyxzLHUsZyxJKXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLm5hbWUhPT1zfHxuLnF1ZXN0aW9uVG9rZW4hPT0odSE9PXZvaWQgMCYmUGwodSk/dTp2b2lkIDApfHxuLmV4Y2xhbWF0aW9uVG9rZW4hPT0odSE9PXZvaWQgMCYmRGQodSk/dTp2b2lkIDApfHxuLnR5cGUhPT1nfHxuLmluaXRpYWxpemVyIT09ST9yKHEobyxzLHUsZyxJKSxuKTpufWZ1bmN0aW9uIGdlKG4sbyxzLHUsZyxJKXtsZXQgVz1hZSgxNzMpO3JldHVybiBXLm1vZGlmaWVycz1PZShuKSxXLm5hbWU9WGUobyksVy5xdWVzdGlvblRva2VuPXMsVy50eXBlUGFyYW1ldGVycz1PZSh1KSxXLnBhcmFtZXRlcnM9T2UoZyksVy50eXBlPUksVy50cmFuc2Zvcm1GbGFncz0xLFcuanNEb2M9dm9pZCAwLFcubG9jYWxzPXZvaWQgMCxXLm5leHRDb250YWluZXI9dm9pZCAwLFcudHlwZUFyZ3VtZW50cz12b2lkIDAsV31mdW5jdGlvbiBTZShuLG8scyx1LGcsSSxXKXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLm5hbWUhPT1zfHxuLnF1ZXN0aW9uVG9rZW4hPT11fHxuLnR5cGVQYXJhbWV0ZXJzIT09Z3x8bi5wYXJhbWV0ZXJzIT09SXx8bi50eXBlIT09Vz9DZShnZShvLHMsdSxnLEksVyksbik6bn1mdW5jdGlvbiBudChuLG8scyx1LGcsSSxXLGRlKXtsZXQgV2U9YWUoMTc0KTtpZihXZS5tb2RpZmllcnM9T2UobiksV2UuYXN0ZXJpc2tUb2tlbj1vLFdlLm5hbWU9WGUocyksV2UucXVlc3Rpb25Ub2tlbj11LFdlLmV4Y2xhbWF0aW9uVG9rZW49dm9pZCAwLFdlLnR5cGVQYXJhbWV0ZXJzPU9lKGcpLFdlLnBhcmFtZXRlcnM9WShJKSxXZS50eXBlPVcsV2UuYm9keT1kZSwhV2UuYm9keSlXZS50cmFuc2Zvcm1GbGFncz0xO2Vsc2V7bGV0IEVyPWxuKFdlLm1vZGlmaWVycykmNTEyLCRuPSEhV2UuYXN0ZXJpc2tUb2tlbix5aT1FciYmJG47V2UudHJhbnNmb3JtRmxhZ3M9RGUoV2UubW9kaWZpZXJzKXxWKFdlLmFzdGVyaXNrVG9rZW4pfEluKFdlLm5hbWUpfFYoV2UucXVlc3Rpb25Ub2tlbil8RGUoV2UudHlwZVBhcmFtZXRlcnMpfERlKFdlLnBhcmFtZXRlcnMpfFYoV2UudHlwZSl8VihXZS5ib2R5KSYtNjcxMDg4NjV8KHlpPzEyODpFcj8yNTY6JG4/MjA0ODowKXwoV2UucXVlc3Rpb25Ub2tlbnx8V2UudHlwZVBhcmFtZXRlcnN8fFdlLnR5cGU/MTowKXwxMDI0fXJldHVybiBXZS50eXBlQXJndW1lbnRzPXZvaWQgMCxXZS5qc0RvYz12b2lkIDAsV2UubG9jYWxzPXZvaWQgMCxXZS5uZXh0Q29udGFpbmVyPXZvaWQgMCxXZS5mbG93Tm9kZT12b2lkIDAsV2UuZW5kRmxvd05vZGU9dm9pZCAwLFdlLnJldHVybkZsb3dOb2RlPXZvaWQgMCxXZX1mdW5jdGlvbiB6KG4sbyxzLHUsZyxJLFcsZGUsV2Upe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4uYXN0ZXJpc2tUb2tlbiE9PXN8fG4ubmFtZSE9PXV8fG4ucXVlc3Rpb25Ub2tlbiE9PWd8fG4udHlwZVBhcmFtZXRlcnMhPT1JfHxuLnBhcmFtZXRlcnMhPT1XfHxuLnR5cGUhPT1kZXx8bi5ib2R5IT09V2U/WChudChvLHMsdSxnLEksVyxkZSxXZSksbik6bn1mdW5jdGlvbiBYKG4sbyl7cmV0dXJuIG4hPT1vJiYobi5leGNsYW1hdGlvblRva2VuPW8uZXhjbGFtYXRpb25Ub2tlbikscihuLG8pfWZ1bmN0aW9uIGVlKG4pe2xldCBvPWFlKDE3NSk7cmV0dXJuIG8uYm9keT1uLG8udHJhbnNmb3JtRmxhZ3M9VihuKXwxNjc3NzIxNixvLm1vZGlmaWVycz12b2lkIDAsby5qc0RvYz12b2lkIDAsby5sb2NhbHM9dm9pZCAwLG8ubmV4dENvbnRhaW5lcj12b2lkIDAsby5lbmRGbG93Tm9kZT12b2lkIDAsby5yZXR1cm5GbG93Tm9kZT12b2lkIDAsb31mdW5jdGlvbiB4ZShuLG8pe3JldHVybiBuLmJvZHkhPT1vP2tlKGVlKG8pLG4pOm59ZnVuY3Rpb24ga2UobixvKXtyZXR1cm4gbiE9PW8mJihuLm1vZGlmaWVycz1vLm1vZGlmaWVycykscihuLG8pfWZ1bmN0aW9uIExlKG4sbyxzKXtsZXQgdT1hZSgxNzYpO3JldHVybiB1Lm1vZGlmaWVycz1PZShuKSx1LnBhcmFtZXRlcnM9WShvKSx1LmJvZHk9cyx1LnRyYW5zZm9ybUZsYWdzPURlKHUubW9kaWZpZXJzKXxEZSh1LnBhcmFtZXRlcnMpfFYodS5ib2R5KSYtNjcxMDg4NjV8MTAyNCx1LnR5cGVQYXJhbWV0ZXJzPXZvaWQgMCx1LnR5cGU9dm9pZCAwLHUudHlwZUFyZ3VtZW50cz12b2lkIDAsdS5qc0RvYz12b2lkIDAsdS5sb2NhbHM9dm9pZCAwLHUubmV4dENvbnRhaW5lcj12b2lkIDAsdS5lbmRGbG93Tm9kZT12b2lkIDAsdS5yZXR1cm5GbG93Tm9kZT12b2lkIDAsdX1mdW5jdGlvbiBsdChuLG8scyx1KXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLnBhcmFtZXRlcnMhPT1zfHxuLmJvZHkhPT11P3l0KExlKG8scyx1KSxuKTpufWZ1bmN0aW9uIHl0KG4sbyl7cmV0dXJuIG4hPT1vJiYobi50eXBlUGFyYW1ldGVycz1vLnR5cGVQYXJhbWV0ZXJzLG4udHlwZT1vLnR5cGUpLENlKG4sbyl9ZnVuY3Rpb24ganQobixvLHMsdSxnKXtsZXQgST1hZSgxNzcpO3JldHVybiBJLm1vZGlmaWVycz1PZShuKSxJLm5hbWU9WGUobyksSS5wYXJhbWV0ZXJzPVkocyksSS50eXBlPXUsSS5ib2R5PWcsSS5ib2R5P0kudHJhbnNmb3JtRmxhZ3M9RGUoSS5tb2RpZmllcnMpfEluKEkubmFtZSl8RGUoSS5wYXJhbWV0ZXJzKXxWKEkudHlwZSl8VihJLmJvZHkpJi02NzEwODg2NXwoSS50eXBlPzE6MCk6SS50cmFuc2Zvcm1GbGFncz0xLEkudHlwZUFyZ3VtZW50cz12b2lkIDAsSS50eXBlUGFyYW1ldGVycz12b2lkIDAsSS5qc0RvYz12b2lkIDAsSS5sb2NhbHM9dm9pZCAwLEkubmV4dENvbnRhaW5lcj12b2lkIDAsSS5mbG93Tm9kZT12b2lkIDAsSS5lbmRGbG93Tm9kZT12b2lkIDAsSS5yZXR1cm5GbG93Tm9kZT12b2lkIDAsSX1mdW5jdGlvbiBxcihuLG8scyx1LGcsSSl7cmV0dXJuIG4ubW9kaWZpZXJzIT09b3x8bi5uYW1lIT09c3x8bi5wYXJhbWV0ZXJzIT09dXx8bi50eXBlIT09Z3x8bi5ib2R5IT09ST9uYShqdChvLHMsdSxnLEkpLG4pOm59ZnVuY3Rpb24gbmEobixvKXtyZXR1cm4gbiE9PW8mJihuLnR5cGVQYXJhbWV0ZXJzPW8udHlwZVBhcmFtZXRlcnMpLENlKG4sbyl9ZnVuY3Rpb24gQ24obixvLHMsdSl7bGV0IGc9YWUoMTc4KTtyZXR1cm4gZy5tb2RpZmllcnM9T2UobiksZy5uYW1lPVhlKG8pLGcucGFyYW1ldGVycz1ZKHMpLGcuYm9keT11LGcuYm9keT9nLnRyYW5zZm9ybUZsYWdzPURlKGcubW9kaWZpZXJzKXxJbihnLm5hbWUpfERlKGcucGFyYW1ldGVycyl8VihnLmJvZHkpJi02NzEwODg2NXwoZy50eXBlPzE6MCk6Zy50cmFuc2Zvcm1GbGFncz0xLGcudHlwZUFyZ3VtZW50cz12b2lkIDAsZy50eXBlUGFyYW1ldGVycz12b2lkIDAsZy50eXBlPXZvaWQgMCxnLmpzRG9jPXZvaWQgMCxnLmxvY2Fscz12b2lkIDAsZy5uZXh0Q29udGFpbmVyPXZvaWQgMCxnLmZsb3dOb2RlPXZvaWQgMCxnLmVuZEZsb3dOb2RlPXZvaWQgMCxnLnJldHVybkZsb3dOb2RlPXZvaWQgMCxnfWZ1bmN0aW9uIHpuKG4sbyxzLHUsZyl7cmV0dXJuIG4ubW9kaWZpZXJzIT09b3x8bi5uYW1lIT09c3x8bi5wYXJhbWV0ZXJzIT09dXx8bi5ib2R5IT09Zz9QaShDbihvLHMsdSxnKSxuKTpufWZ1bmN0aW9uIFBpKG4sbyl7cmV0dXJuIG4hPT1vJiYobi50eXBlUGFyYW1ldGVycz1vLnR5cGVQYXJhbWV0ZXJzLG4udHlwZT1vLnR5cGUpLENlKG4sbyl9ZnVuY3Rpb24gaWEobixvLHMpe2xldCB1PWFlKDE3OSk7cmV0dXJuIHUudHlwZVBhcmFtZXRlcnM9T2UobiksdS5wYXJhbWV0ZXJzPU9lKG8pLHUudHlwZT1zLHUudHJhbnNmb3JtRmxhZ3M9MSx1LmpzRG9jPXZvaWQgMCx1LmxvY2Fscz12b2lkIDAsdS5uZXh0Q29udGFpbmVyPXZvaWQgMCx1LnR5cGVBcmd1bWVudHM9dm9pZCAwLHV9ZnVuY3Rpb24gV24obixvLHMsdSl7cmV0dXJuIG4udHlwZVBhcmFtZXRlcnMhPT1vfHxuLnBhcmFtZXRlcnMhPT1zfHxuLnR5cGUhPT11P0NlKGlhKG8scyx1KSxuKTpufWZ1bmN0aW9uIEVuKG4sbyxzKXtsZXQgdT1hZSgxODApO3JldHVybiB1LnR5cGVQYXJhbWV0ZXJzPU9lKG4pLHUucGFyYW1ldGVycz1PZShvKSx1LnR5cGU9cyx1LnRyYW5zZm9ybUZsYWdzPTEsdS5qc0RvYz12b2lkIDAsdS5sb2NhbHM9dm9pZCAwLHUubmV4dENvbnRhaW5lcj12b2lkIDAsdS50eXBlQXJndW1lbnRzPXZvaWQgMCx1fWZ1bmN0aW9uIElpKG4sbyxzLHUpe3JldHVybiBuLnR5cGVQYXJhbWV0ZXJzIT09b3x8bi5wYXJhbWV0ZXJzIT09c3x8bi50eXBlIT09dT9DZShFbihvLHMsdSksbik6bn1mdW5jdGlvbiBhYShuLG8scyl7bGV0IHU9YWUoMTgxKTtyZXR1cm4gdS5tb2RpZmllcnM9T2UobiksdS5wYXJhbWV0ZXJzPU9lKG8pLHUudHlwZT1zLHUudHJhbnNmb3JtRmxhZ3M9MSx1LmpzRG9jPXZvaWQgMCx1LmxvY2Fscz12b2lkIDAsdS5uZXh0Q29udGFpbmVyPXZvaWQgMCx1LnR5cGVBcmd1bWVudHM9dm9pZCAwLHV9ZnVuY3Rpb24gVm4obixvLHMsdSl7cmV0dXJuIG4ucGFyYW1ldGVycyE9PXN8fG4udHlwZSE9PXV8fG4ubW9kaWZpZXJzIT09bz9DZShhYShvLHMsdSksbik6bn1mdW5jdGlvbiBTcihuLG8pe2xldCBzPUIoMjA0KTtyZXR1cm4gcy50eXBlPW4scy5saXRlcmFsPW8scy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gSmUobixvLHMpe3JldHVybiBuLnR5cGUhPT1vfHxuLmxpdGVyYWwhPT1zP3IoU3IobyxzKSxuKTpufWZ1bmN0aW9uIG9hKG4pe3JldHVybiB2dChuKX1mdW5jdGlvbiBNdChuLG8scyl7bGV0IHU9QigxODIpO3JldHVybiB1LmFzc2VydHNNb2RpZmllcj1uLHUucGFyYW1ldGVyTmFtZT1YZShvKSx1LnR5cGU9cyx1LnRyYW5zZm9ybUZsYWdzPTEsdX1mdW5jdGlvbiBMcihuLG8scyx1KXtyZXR1cm4gbi5hc3NlcnRzTW9kaWZpZXIhPT1vfHxuLnBhcmFtZXRlck5hbWUhPT1zfHxuLnR5cGUhPT11P3IoTXQobyxzLHUpLG4pOm59ZnVuY3Rpb24gaihuLG8pe2xldCBzPUIoMTgzKTtyZXR1cm4gcy50eXBlTmFtZT1YZShuKSxzLnR5cGVBcmd1bWVudHM9byYmYSgpLnBhcmVudGhlc2l6ZVR5cGVBcmd1bWVudHMoWShvKSkscy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gVChuLG8scyl7cmV0dXJuIG4udHlwZU5hbWUhPT1vfHxuLnR5cGVBcmd1bWVudHMhPT1zP3IoaihvLHMpLG4pOm59ZnVuY3Rpb24geChuLG8scyl7bGV0IHU9YWUoMTg0KTtyZXR1cm4gdS50eXBlUGFyYW1ldGVycz1PZShuKSx1LnBhcmFtZXRlcnM9T2UobyksdS50eXBlPXMsdS50cmFuc2Zvcm1GbGFncz0xLHUubW9kaWZpZXJzPXZvaWQgMCx1LmpzRG9jPXZvaWQgMCx1LmxvY2Fscz12b2lkIDAsdS5uZXh0Q29udGFpbmVyPXZvaWQgMCx1LnR5cGVBcmd1bWVudHM9dm9pZCAwLHV9ZnVuY3Rpb24gZihuLG8scyx1KXtyZXR1cm4gbi50eXBlUGFyYW1ldGVycyE9PW98fG4ucGFyYW1ldGVycyE9PXN8fG4udHlwZSE9PXU/JCh4KG8scyx1KSxuKTpufWZ1bmN0aW9uICQobixvKXtyZXR1cm4gbiE9PW8mJihuLm1vZGlmaWVycz1vLm1vZGlmaWVycyksQ2UobixvKX1mdW5jdGlvbiBRKC4uLm4pe3JldHVybiBuLmxlbmd0aD09PTQ/TyguLi5uKTpuLmxlbmd0aD09PTM/ZmUoLi4ubik6Ti5mYWlsKFwiSW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHMgc3BlY2lmaWVkLlwiKX1mdW5jdGlvbiBPKG4sbyxzLHUpe2xldCBnPWFlKDE4NSk7cmV0dXJuIGcubW9kaWZpZXJzPU9lKG4pLGcudHlwZVBhcmFtZXRlcnM9T2UobyksZy5wYXJhbWV0ZXJzPU9lKHMpLGcudHlwZT11LGcudHJhbnNmb3JtRmxhZ3M9MSxnLmpzRG9jPXZvaWQgMCxnLmxvY2Fscz12b2lkIDAsZy5uZXh0Q29udGFpbmVyPXZvaWQgMCxnLnR5cGVBcmd1bWVudHM9dm9pZCAwLGd9ZnVuY3Rpb24gZmUobixvLHMpe3JldHVybiBPKHZvaWQgMCxuLG8scyl9ZnVuY3Rpb24gYmUoLi4ubil7cmV0dXJuIG4ubGVuZ3RoPT09NT9oZSguLi5uKTpuLmxlbmd0aD09PTQ/UmUoLi4ubik6Ti5mYWlsKFwiSW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHMgc3BlY2lmaWVkLlwiKX1mdW5jdGlvbiBoZShuLG8scyx1LGcpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4udHlwZVBhcmFtZXRlcnMhPT1zfHxuLnBhcmFtZXRlcnMhPT11fHxuLnR5cGUhPT1nP0NlKFEobyxzLHUsZyksbik6bn1mdW5jdGlvbiBSZShuLG8scyx1KXtyZXR1cm4gaGUobixuLm1vZGlmaWVycyxvLHMsdSl9ZnVuY3Rpb24gd2UobixvKXtsZXQgcz1CKDE4Nik7cmV0dXJuIHMuZXhwck5hbWU9bixzLnR5cGVBcmd1bWVudHM9byYmYSgpLnBhcmVudGhlc2l6ZVR5cGVBcmd1bWVudHMobykscy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gZXQobixvLHMpe3JldHVybiBuLmV4cHJOYW1lIT09b3x8bi50eXBlQXJndW1lbnRzIT09cz9yKHdlKG8scyksbik6bn1mdW5jdGlvbiBZZShuKXtsZXQgbz1hZSgxODcpO3JldHVybiBvLm1lbWJlcnM9WShuKSxvLnRyYW5zZm9ybUZsYWdzPTEsb31mdW5jdGlvbiBLZShuLG8pe3JldHVybiBuLm1lbWJlcnMhPT1vP3IoWWUobyksbik6bn1mdW5jdGlvbiBJdChuKXtsZXQgbz1CKDE4OCk7cmV0dXJuIG8uZWxlbWVudFR5cGU9YSgpLnBhcmVudGhlc2l6ZU5vbkFycmF5VHlwZU9mUG9zdGZpeFR5cGUobiksby50cmFuc2Zvcm1GbGFncz0xLG99ZnVuY3Rpb24gcXQobixvKXtyZXR1cm4gbi5lbGVtZW50VHlwZSE9PW8/cihJdChvKSxuKTpufWZ1bmN0aW9uIF9yKG4pe2xldCBvPUIoMTg5KTtyZXR1cm4gby5lbGVtZW50cz1ZKGEoKS5wYXJlbnRoZXNpemVFbGVtZW50VHlwZXNPZlR1cGxlVHlwZShuKSksby50cmFuc2Zvcm1GbGFncz0xLG99ZnVuY3Rpb24gVGUobixvKXtyZXR1cm4gbi5lbGVtZW50cyE9PW8/cihfcihvKSxuKTpufWZ1bmN0aW9uIGZ0KG4sbyxzLHUpe2xldCBnPWFlKDIwMik7cmV0dXJuIGcuZG90RG90RG90VG9rZW49bixnLm5hbWU9byxnLnF1ZXN0aW9uVG9rZW49cyxnLnR5cGU9dSxnLnRyYW5zZm9ybUZsYWdzPTEsZy5qc0RvYz12b2lkIDAsZ31mdW5jdGlvbiBBbihuLG8scyx1LGcpe3JldHVybiBuLmRvdERvdERvdFRva2VuIT09b3x8bi5uYW1lIT09c3x8bi5xdWVzdGlvblRva2VuIT09dXx8bi50eXBlIT09Zz9yKGZ0KG8scyx1LGcpLG4pOm59ZnVuY3Rpb24gRXQobil7bGV0IG89QigxOTApO3JldHVybiBvLnR5cGU9YSgpLnBhcmVudGhlc2l6ZVR5cGVPZk9wdGlvbmFsVHlwZShuKSxvLnRyYW5zZm9ybUZsYWdzPTEsb31mdW5jdGlvbiBIKG4sbyl7cmV0dXJuIG4udHlwZSE9PW8/cihFdChvKSxuKTpufWZ1bmN0aW9uIEZhKG4pe2xldCBvPUIoMTkxKTtyZXR1cm4gby50eXBlPW4sby50cmFuc2Zvcm1GbGFncz0xLG99ZnVuY3Rpb24gSWUobixvKXtyZXR1cm4gbi50eXBlIT09bz9yKEZhKG8pLG4pOm59ZnVuY3Rpb24gb3QobixvLHMpe2xldCB1PUIobik7cmV0dXJuIHUudHlwZXM9dWUuY3JlYXRlTm9kZUFycmF5KHMobykpLHUudHJhbnNmb3JtRmxhZ3M9MSx1fWZ1bmN0aW9uIGNyKG4sbyxzKXtyZXR1cm4gbi50eXBlcyE9PW8/cihvdChuLmtpbmQsbyxzKSxuKTpufWZ1bmN0aW9uIGFuKG4pe3JldHVybiBvdCgxOTIsbixhKCkucGFyZW50aGVzaXplQ29uc3RpdHVlbnRUeXBlc09mVW5pb25UeXBlKX1mdW5jdGlvbiBCYShuLG8pe3JldHVybiBjcihuLG8sYSgpLnBhcmVudGhlc2l6ZUNvbnN0aXR1ZW50VHlwZXNPZlVuaW9uVHlwZSl9ZnVuY3Rpb24ga24obil7cmV0dXJuIG90KDE5MyxuLGEoKS5wYXJlbnRoZXNpemVDb25zdGl0dWVudFR5cGVzT2ZJbnRlcnNlY3Rpb25UeXBlKX1mdW5jdGlvbiBqZShuLG8pe3JldHVybiBjcihuLG8sYSgpLnBhcmVudGhlc2l6ZUNvbnN0aXR1ZW50VHlwZXNPZkludGVyc2VjdGlvblR5cGUpfWZ1bmN0aW9uIGR0KG4sbyxzLHUpe2xldCBnPUIoMTk0KTtyZXR1cm4gZy5jaGVja1R5cGU9YSgpLnBhcmVudGhlc2l6ZUNoZWNrVHlwZU9mQ29uZGl0aW9uYWxUeXBlKG4pLGcuZXh0ZW5kc1R5cGU9YSgpLnBhcmVudGhlc2l6ZUV4dGVuZHNUeXBlT2ZDb25kaXRpb25hbFR5cGUobyksZy50cnVlVHlwZT1zLGcuZmFsc2VUeXBlPXUsZy50cmFuc2Zvcm1GbGFncz0xLGcubG9jYWxzPXZvaWQgMCxnLm5leHRDb250YWluZXI9dm9pZCAwLGd9ZnVuY3Rpb24gbGkobixvLHMsdSxnKXtyZXR1cm4gbi5jaGVja1R5cGUhPT1vfHxuLmV4dGVuZHNUeXBlIT09c3x8bi50cnVlVHlwZSE9PXV8fG4uZmFsc2VUeXBlIT09Zz9yKGR0KG8scyx1LGcpLG4pOm59ZnVuY3Rpb24gSG4obil7bGV0IG89QigxOTUpO3JldHVybiBvLnR5cGVQYXJhbWV0ZXI9bixvLnRyYW5zZm9ybUZsYWdzPTEsb31mdW5jdGlvbiBlMShuLG8pe3JldHVybiBuLnR5cGVQYXJhbWV0ZXIhPT1vP3IoSG4obyksbik6bn1mdW5jdGlvbiBkcihuLG8pe2xldCBzPUIoMjAzKTtyZXR1cm4gcy5oZWFkPW4scy50ZW1wbGF0ZVNwYW5zPVkobykscy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gdDEobixvLHMpe3JldHVybiBuLmhlYWQhPT1vfHxuLnRlbXBsYXRlU3BhbnMhPT1zP3IoZHIobyxzKSxuKTpufWZ1bmN0aW9uIHVpKG4sbyxzLHUsZz0hMSl7bGV0IEk9QigyMDUpO3JldHVybiBJLmFyZ3VtZW50PW4sSS5hc3NlcnRpb25zPW8sSS5xdWFsaWZpZXI9cyxJLnR5cGVBcmd1bWVudHM9dSYmYSgpLnBhcmVudGhlc2l6ZVR5cGVBcmd1bWVudHModSksSS5pc1R5cGVPZj1nLEkudHJhbnNmb3JtRmxhZ3M9MSxJfWZ1bmN0aW9uIGZzKG4sbyxzLHUsZyxJPW4uaXNUeXBlT2Ype3JldHVybiBuLmFyZ3VtZW50IT09b3x8bi5hc3NlcnRpb25zIT09c3x8bi5xdWFsaWZpZXIhPT11fHxuLnR5cGVBcmd1bWVudHMhPT1nfHxuLmlzVHlwZU9mIT09ST9yKHVpKG8scyx1LGcsSSksbik6bn1mdW5jdGlvbiB4cihuKXtsZXQgbz1CKDE5Nik7cmV0dXJuIG8udHlwZT1uLG8udHJhbnNmb3JtRmxhZ3M9MSxvfWZ1bmN0aW9uIEZ0KG4sbyl7cmV0dXJuIG4udHlwZSE9PW8/cih4cihvKSxuKTpufWZ1bmN0aW9uIE0oKXtsZXQgbj1CKDE5Nyk7cmV0dXJuIG4udHJhbnNmb3JtRmxhZ3M9MSxufWZ1bmN0aW9uIEpyKG4sbyl7bGV0IHM9QigxOTgpO3JldHVybiBzLm9wZXJhdG9yPW4scy50eXBlPW49PT0xNDg/YSgpLnBhcmVudGhlc2l6ZU9wZXJhbmRPZlJlYWRvbmx5VHlwZU9wZXJhdG9yKG8pOmEoKS5wYXJlbnRoZXNpemVPcGVyYW5kT2ZUeXBlT3BlcmF0b3Iobykscy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gc2EobixvKXtyZXR1cm4gbi50eXBlIT09bz9yKEpyKG4ub3BlcmF0b3Isbyksbik6bn1mdW5jdGlvbiBOaShuLG8pe2xldCBzPUIoMTk5KTtyZXR1cm4gcy5vYmplY3RUeXBlPWEoKS5wYXJlbnRoZXNpemVOb25BcnJheVR5cGVPZlBvc3RmaXhUeXBlKG4pLHMuaW5kZXhUeXBlPW8scy50cmFuc2Zvcm1GbGFncz0xLHN9ZnVuY3Rpb24gR18obixvLHMpe3JldHVybiBuLm9iamVjdFR5cGUhPT1vfHxuLmluZGV4VHlwZSE9PXM/cihOaShvLHMpLG4pOm59ZnVuY3Rpb24gTHQobixvLHMsdSxnLEkpe2xldCBXPWFlKDIwMCk7cmV0dXJuIFcucmVhZG9ubHlUb2tlbj1uLFcudHlwZVBhcmFtZXRlcj1vLFcubmFtZVR5cGU9cyxXLnF1ZXN0aW9uVG9rZW49dSxXLnR5cGU9ZyxXLm1lbWJlcnM9SSYmWShJKSxXLnRyYW5zZm9ybUZsYWdzPTEsVy5sb2NhbHM9dm9pZCAwLFcubmV4dENvbnRhaW5lcj12b2lkIDAsV31mdW5jdGlvbiBZdChuLG8scyx1LGcsSSxXKXtyZXR1cm4gbi5yZWFkb25seVRva2VuIT09b3x8bi50eXBlUGFyYW1ldGVyIT09c3x8bi5uYW1lVHlwZSE9PXV8fG4ucXVlc3Rpb25Ub2tlbiE9PWd8fG4udHlwZSE9PUl8fG4ubWVtYmVycyE9PVc/cihMdChvLHMsdSxnLEksVyksbik6bn1mdW5jdGlvbiBPaShuKXtsZXQgbz1CKDIwMSk7cmV0dXJuIG8ubGl0ZXJhbD1uLG8udHJhbnNmb3JtRmxhZ3M9MSxvfWZ1bmN0aW9uIHIxKG4sbyl7cmV0dXJuIG4ubGl0ZXJhbCE9PW8/cihPaShvKSxuKTpufWZ1bmN0aW9uIFR1KG4pe2xldCBvPUIoMjA2KTtyZXR1cm4gby5lbGVtZW50cz1ZKG4pLG8udHJhbnNmb3JtRmxhZ3N8PURlKG8uZWxlbWVudHMpfDEwMjR8NTI0Mjg4LG8udHJhbnNmb3JtRmxhZ3MmMzI3NjgmJihvLnRyYW5zZm9ybUZsYWdzfD02NTY2NCksb31mdW5jdGlvbiBVYShuLG8pe3JldHVybiBuLmVsZW1lbnRzIT09bz9yKFR1KG8pLG4pOm59ZnVuY3Rpb24gU3Uobil7bGV0IG89QigyMDcpO3JldHVybiBvLmVsZW1lbnRzPVkobiksby50cmFuc2Zvcm1GbGFnc3w9RGUoby5lbGVtZW50cyl8MTAyNHw1MjQyODgsb31mdW5jdGlvbiBYXyhuLG8pe3JldHVybiBuLmVsZW1lbnRzIT09bz9yKFN1KG8pLG4pOm59ZnVuY3Rpb24gX2EobixvLHMsdSl7bGV0IGc9YWUoMjA4KTtyZXR1cm4gZy5kb3REb3REb3RUb2tlbj1uLGcucHJvcGVydHlOYW1lPVhlKG8pLGcubmFtZT1YZShzKSxnLmluaXRpYWxpemVyPVRvKHUpLGcudHJhbnNmb3JtRmxhZ3N8PVYoZy5kb3REb3REb3RUb2tlbil8SW4oZy5wcm9wZXJ0eU5hbWUpfEluKGcubmFtZSl8VihnLmluaXRpYWxpemVyKXwoZy5kb3REb3REb3RUb2tlbj8zMjc2ODowKXwxMDI0LGcuZmxvd05vZGU9dm9pZCAwLGd9ZnVuY3Rpb24geHUobixvLHMsdSxnKXtyZXR1cm4gbi5wcm9wZXJ0eU5hbWUhPT1zfHxuLmRvdERvdERvdFRva2VuIT09b3x8bi5uYW1lIT09dXx8bi5pbml0aWFsaXplciE9PWc/cihfYShvLHMsdSxnKSxuKTpufWZ1bmN0aW9uICRfKG4sbyl7bGV0IHM9QigyMDkpLHU9biYmd2kobiksZz1ZKG4sdSYmUG0odSk/ITA6dm9pZCAwKTtyZXR1cm4gcy5lbGVtZW50cz1hKCkucGFyZW50aGVzaXplRXhwcmVzc2lvbnNPZkNvbW1hRGVsaW1pdGVkTGlzdChnKSxzLm11bHRpTGluZT1vLHMudHJhbnNmb3JtRmxhZ3N8PURlKHMuZWxlbWVudHMpLHN9ZnVuY3Rpb24gd3UobixvKXtyZXR1cm4gbi5lbGVtZW50cyE9PW8/cigkXyhvLG4ubXVsdGlMaW5lKSxuKTpufWZ1bmN0aW9uIGRzKG4sbyl7bGV0IHM9YWUoMjEwKTtyZXR1cm4gcy5wcm9wZXJ0aWVzPVkobikscy5tdWx0aUxpbmU9byxzLnRyYW5zZm9ybUZsYWdzfD1EZShzLnByb3BlcnRpZXMpLHMuanNEb2M9dm9pZCAwLHN9ZnVuY3Rpb24gbjEobixvKXtyZXR1cm4gbi5wcm9wZXJ0aWVzIT09bz9yKGRzKG8sbi5tdWx0aUxpbmUpLG4pOm59ZnVuY3Rpb24gbXMobixvLHMpe2xldCB1PWFlKDIxMSk7cmV0dXJuIHUuZXhwcmVzc2lvbj1uLHUucXVlc3Rpb25Eb3RUb2tlbj1vLHUubmFtZT1zLHUudHJhbnNmb3JtRmxhZ3M9Vih1LmV4cHJlc3Npb24pfFYodS5xdWVzdGlvbkRvdFRva2VuKXwoRWUodS5uYW1lKT9lXyh1Lm5hbWUpOlYodS5uYW1lKXw1MzY4NzA5MTIpLHUuanNEb2M9dm9pZCAwLHUuZmxvd05vZGU9dm9pZCAwLHV9ZnVuY3Rpb24gTWkobixvKXtsZXQgcz1tcyhhKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSx2b2lkIDAsWGUobykpO3JldHVybiBVZihuKSYmKHMudHJhbnNmb3JtRmxhZ3N8PTM4NCksc31mdW5jdGlvbiBRXyhuLG8scyl7cmV0dXJuIFk0KG4pP3lzKG4sbyxuLnF1ZXN0aW9uRG90VG9rZW4sZ2kocyxFZSkpOm4uZXhwcmVzc2lvbiE9PW98fG4ubmFtZSE9PXM/cihNaShvLHMpLG4pOm59ZnVuY3Rpb24gaHMobixvLHMpe2xldCB1PW1zKGEoKS5wYXJlbnRoZXNpemVMZWZ0U2lkZU9mQWNjZXNzKG4sITApLG8sWGUocykpO3JldHVybiB1LmZsYWdzfD02NCx1LnRyYW5zZm9ybUZsYWdzfD0zMix1fWZ1bmN0aW9uIHlzKG4sbyxzLHUpe3JldHVybiBOLmFzc2VydCghIShuLmZsYWdzJjY0KSxcIkNhbm5vdCB1cGRhdGUgYSBQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24gdXNpbmcgdXBkYXRlUHJvcGVydHlBY2Nlc3NDaGFpbi4gVXNlIHVwZGF0ZVByb3BlcnR5QWNjZXNzIGluc3RlYWQuXCIpLG4uZXhwcmVzc2lvbiE9PW98fG4ucXVlc3Rpb25Eb3RUb2tlbiE9PXN8fG4ubmFtZSE9PXU/cihocyhvLHMsdSksbik6bn1mdW5jdGlvbiBDdShuLG8scyl7bGV0IHU9YWUoMjEyKTtyZXR1cm4gdS5leHByZXNzaW9uPW4sdS5xdWVzdGlvbkRvdFRva2VuPW8sdS5hcmd1bWVudEV4cHJlc3Npb249cyx1LnRyYW5zZm9ybUZsYWdzfD1WKHUuZXhwcmVzc2lvbil8Vih1LnF1ZXN0aW9uRG90VG9rZW4pfFYodS5hcmd1bWVudEV4cHJlc3Npb24pLHUuanNEb2M9dm9pZCAwLHUuZmxvd05vZGU9dm9pZCAwLHV9ZnVuY3Rpb24gWV8obixvKXtsZXQgcz1DdShhKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSx2b2lkIDAsQ3IobykpO3JldHVybiBVZihuKSYmKHMudHJhbnNmb3JtRmxhZ3N8PTM4NCksc31mdW5jdGlvbiBFdShuLG8scyl7cmV0dXJuIEs0KG4pP2t1KG4sbyxuLnF1ZXN0aW9uRG90VG9rZW4scyk6bi5leHByZXNzaW9uIT09b3x8bi5hcmd1bWVudEV4cHJlc3Npb24hPT1zP3IoWV8obyxzKSxuKTpufWZ1bmN0aW9uIEF1KG4sbyxzKXtsZXQgdT1DdShhKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCEwKSxvLENyKHMpKTtyZXR1cm4gdS5mbGFnc3w9NjQsdS50cmFuc2Zvcm1GbGFnc3w9MzIsdX1mdW5jdGlvbiBrdShuLG8scyx1KXtyZXR1cm4gTi5hc3NlcnQoISEobi5mbGFncyY2NCksXCJDYW5ub3QgdXBkYXRlIGEgRWxlbWVudEFjY2Vzc0V4cHJlc3Npb24gdXNpbmcgdXBkYXRlRWxlbWVudEFjY2Vzc0NoYWluLiBVc2UgdXBkYXRlRWxlbWVudEFjY2VzcyBpbnN0ZWFkLlwiKSxuLmV4cHJlc3Npb24hPT1vfHxuLnF1ZXN0aW9uRG90VG9rZW4hPT1zfHxuLmFyZ3VtZW50RXhwcmVzc2lvbiE9PXU/cihBdShvLHMsdSksbik6bn1mdW5jdGlvbiBwbyhuLG8scyx1KXtsZXQgZz1hZSgyMTMpO3JldHVybiBnLmV4cHJlc3Npb249bixnLnF1ZXN0aW9uRG90VG9rZW49byxnLnR5cGVBcmd1bWVudHM9cyxnLmFyZ3VtZW50cz11LGcudHJhbnNmb3JtRmxhZ3N8PVYoZy5leHByZXNzaW9uKXxWKGcucXVlc3Rpb25Eb3RUb2tlbil8RGUoZy50eXBlQXJndW1lbnRzKXxEZShnLmFyZ3VtZW50cyksZy50eXBlQXJndW1lbnRzJiYoZy50cmFuc2Zvcm1GbGFnc3w9MSkseWQoZy5leHByZXNzaW9uKSYmKGcudHJhbnNmb3JtRmxhZ3N8PTE2Mzg0KSxnfWZ1bmN0aW9uIGZvKG4sbyxzKXtsZXQgdT1wbyhhKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSx2b2lkIDAsT2UobyksYSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25zT2ZDb21tYURlbGltaXRlZExpc3QoWShzKSkpO3JldHVybiBXeCh1LmV4cHJlc3Npb24pJiYodS50cmFuc2Zvcm1GbGFnc3w9ODM4ODYwOCksdX1mdW5jdGlvbiBpMShuLG8scyx1KXtyZXR1cm4geTAobik/Z3MobixvLG4ucXVlc3Rpb25Eb3RUb2tlbixzLHUpOm4uZXhwcmVzc2lvbiE9PW98fG4udHlwZUFyZ3VtZW50cyE9PXN8fG4uYXJndW1lbnRzIT09dT9yKGZvKG8scyx1KSxuKTpufWZ1bmN0aW9uIHpyKG4sbyxzLHUpe2xldCBnPXBvKGEoKS5wYXJlbnRoZXNpemVMZWZ0U2lkZU9mQWNjZXNzKG4sITApLG8sT2UocyksYSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25zT2ZDb21tYURlbGltaXRlZExpc3QoWSh1KSkpO3JldHVybiBnLmZsYWdzfD02NCxnLnRyYW5zZm9ybUZsYWdzfD0zMixnfWZ1bmN0aW9uIGdzKG4sbyxzLHUsZyl7cmV0dXJuIE4uYXNzZXJ0KCEhKG4uZmxhZ3MmNjQpLFwiQ2Fubm90IHVwZGF0ZSBhIENhbGxFeHByZXNzaW9uIHVzaW5nIHVwZGF0ZUNhbGxDaGFpbi4gVXNlIHVwZGF0ZUNhbGwgaW5zdGVhZC5cIiksbi5leHByZXNzaW9uIT09b3x8bi5xdWVzdGlvbkRvdFRva2VuIT09c3x8bi50eXBlQXJndW1lbnRzIT09dXx8bi5hcmd1bWVudHMhPT1nP3IoenIobyxzLHUsZyksbik6bn1mdW5jdGlvbiBicyhuLG8scyl7bGV0IHU9YWUoMjE0KTtyZXR1cm4gdS5leHByZXNzaW9uPWEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uT2ZOZXcobiksdS50eXBlQXJndW1lbnRzPU9lKG8pLHUuYXJndW1lbnRzPXM/YSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25zT2ZDb21tYURlbGltaXRlZExpc3Qocyk6dm9pZCAwLHUudHJhbnNmb3JtRmxhZ3N8PVYodS5leHByZXNzaW9uKXxEZSh1LnR5cGVBcmd1bWVudHMpfERlKHUuYXJndW1lbnRzKXwzMix1LnR5cGVBcmd1bWVudHMmJih1LnRyYW5zZm9ybUZsYWdzfD0xKSx1fWZ1bmN0aW9uIER1KG4sbyxzLHUpe3JldHVybiBuLmV4cHJlc3Npb24hPT1vfHxuLnR5cGVBcmd1bWVudHMhPT1zfHxuLmFyZ3VtZW50cyE9PXU/cihicyhvLHMsdSksbik6bn1mdW5jdGlvbiBQdShuLG8scyl7bGV0IHU9QigyMTUpO3JldHVybiB1LnRhZz1hKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSx1LnR5cGVBcmd1bWVudHM9T2UobyksdS50ZW1wbGF0ZT1zLHUudHJhbnNmb3JtRmxhZ3N8PVYodS50YWcpfERlKHUudHlwZUFyZ3VtZW50cyl8Vih1LnRlbXBsYXRlKXwxMDI0LHUudHlwZUFyZ3VtZW50cyYmKHUudHJhbnNmb3JtRmxhZ3N8PTEpLFVUKHUudGVtcGxhdGUpJiYodS50cmFuc2Zvcm1GbGFnc3w9MTI4KSx1fWZ1bmN0aW9uIGExKG4sbyxzLHUpe3JldHVybiBuLnRhZyE9PW98fG4udHlwZUFyZ3VtZW50cyE9PXN8fG4udGVtcGxhdGUhPT11P3IoUHUobyxzLHUpLG4pOm59ZnVuY3Rpb24gSXUobixvKXtsZXQgcz1CKDIxNik7cmV0dXJuIHMuZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplT3BlcmFuZE9mUHJlZml4VW5hcnkobykscy50eXBlPW4scy50cmFuc2Zvcm1GbGFnc3w9VihzLmV4cHJlc3Npb24pfFYocy50eXBlKXwxLHN9ZnVuY3Rpb24gTnUobixvLHMpe3JldHVybiBuLnR5cGUhPT1vfHxuLmV4cHJlc3Npb24hPT1zP3IoSXUobyxzKSxuKTpufWZ1bmN0aW9uIEtfKG4pe2xldCBvPUIoMjE3KTtyZXR1cm4gby5leHByZXNzaW9uPW4sby50cmFuc2Zvcm1GbGFncz1WKG8uZXhwcmVzc2lvbiksby5qc0RvYz12b2lkIDAsb31mdW5jdGlvbiBPdShuLG8pe3JldHVybiBuLmV4cHJlc3Npb24hPT1vP3IoS18obyksbik6bn1mdW5jdGlvbiBaXyhuLG8scyx1LGcsSSxXKXtsZXQgZGU9YWUoMjE4KTtkZS5tb2RpZmllcnM9T2UobiksZGUuYXN0ZXJpc2tUb2tlbj1vLGRlLm5hbWU9WGUocyksZGUudHlwZVBhcmFtZXRlcnM9T2UodSksZGUucGFyYW1ldGVycz1ZKGcpLGRlLnR5cGU9SSxkZS5ib2R5PVc7bGV0IFdlPWxuKGRlLm1vZGlmaWVycykmNTEyLEVyPSEhZGUuYXN0ZXJpc2tUb2tlbiwkbj1XZSYmRXI7cmV0dXJuIGRlLnRyYW5zZm9ybUZsYWdzPURlKGRlLm1vZGlmaWVycyl8VihkZS5hc3Rlcmlza1Rva2VuKXxJbihkZS5uYW1lKXxEZShkZS50eXBlUGFyYW1ldGVycyl8RGUoZGUucGFyYW1ldGVycyl8VihkZS50eXBlKXxWKGRlLmJvZHkpJi02NzEwODg2NXwoJG4/MTI4OldlPzI1NjpFcj8yMDQ4OjApfChkZS50eXBlUGFyYW1ldGVyc3x8ZGUudHlwZT8xOjApfDQxOTQzMDQsZGUudHlwZUFyZ3VtZW50cz12b2lkIDAsZGUuanNEb2M9dm9pZCAwLGRlLmxvY2Fscz12b2lkIDAsZGUubmV4dENvbnRhaW5lcj12b2lkIDAsZGUuZmxvd05vZGU9dm9pZCAwLGRlLmVuZEZsb3dOb2RlPXZvaWQgMCxkZS5yZXR1cm5GbG93Tm9kZT12b2lkIDAsZGV9ZnVuY3Rpb24gTXUobixvLHMsdSxnLEksVyxkZSl7cmV0dXJuIG4ubmFtZSE9PXV8fG4ubW9kaWZpZXJzIT09b3x8bi5hc3Rlcmlza1Rva2VuIT09c3x8bi50eXBlUGFyYW1ldGVycyE9PWd8fG4ucGFyYW1ldGVycyE9PUl8fG4udHlwZSE9PVd8fG4uYm9keSE9PWRlP0NlKFpfKG8scyx1LGcsSSxXLGRlKSxuKTpufWZ1bmN0aW9uIGVjKG4sbyxzLHUsZyxJKXtsZXQgVz1hZSgyMTkpO1cubW9kaWZpZXJzPU9lKG4pLFcudHlwZVBhcmFtZXRlcnM9T2UobyksVy5wYXJhbWV0ZXJzPVkocyksVy50eXBlPXUsVy5lcXVhbHNHcmVhdGVyVGhhblRva2VuPWc/P3Z0KDM5KSxXLmJvZHk9YSgpLnBhcmVudGhlc2l6ZUNvbmNpc2VCb2R5T2ZBcnJvd0Z1bmN0aW9uKEkpO2xldCBkZT1sbihXLm1vZGlmaWVycykmNTEyO3JldHVybiBXLnRyYW5zZm9ybUZsYWdzPURlKFcubW9kaWZpZXJzKXxEZShXLnR5cGVQYXJhbWV0ZXJzKXxEZShXLnBhcmFtZXRlcnMpfFYoVy50eXBlKXxWKFcuZXF1YWxzR3JlYXRlclRoYW5Ub2tlbil8VihXLmJvZHkpJi02NzEwODg2NXwoVy50eXBlUGFyYW1ldGVyc3x8Vy50eXBlPzE6MCl8KGRlPzE2NjQwOjApfDEwMjQsVy50eXBlQXJndW1lbnRzPXZvaWQgMCxXLmpzRG9jPXZvaWQgMCxXLmxvY2Fscz12b2lkIDAsVy5uZXh0Q29udGFpbmVyPXZvaWQgMCxXLmZsb3dOb2RlPXZvaWQgMCxXLmVuZEZsb3dOb2RlPXZvaWQgMCxXLnJldHVybkZsb3dOb2RlPXZvaWQgMCxXfWZ1bmN0aW9uIHRjKG4sbyxzLHUsZyxJLFcpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4udHlwZVBhcmFtZXRlcnMhPT1zfHxuLnBhcmFtZXRlcnMhPT11fHxuLnR5cGUhPT1nfHxuLmVxdWFsc0dyZWF0ZXJUaGFuVG9rZW4hPT1JfHxuLmJvZHkhPT1XP0NlKGVjKG8scyx1LGcsSSxXKSxuKTpufWZ1bmN0aW9uIEx1KG4pe2xldCBvPUIoMjIwKTtyZXR1cm4gby5leHByZXNzaW9uPWEoKS5wYXJlbnRoZXNpemVPcGVyYW5kT2ZQcmVmaXhVbmFyeShuKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbiksb31mdW5jdGlvbiBXcihuLG8pe3JldHVybiBuLmV4cHJlc3Npb24hPT1vP3IoTHUobyksbik6bn1mdW5jdGlvbiB2cyhuKXtsZXQgbz1CKDIyMSk7cmV0dXJuIG8uZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplT3BlcmFuZE9mUHJlZml4VW5hcnkobiksby50cmFuc2Zvcm1GbGFnc3w9VihvLmV4cHJlc3Npb24pLG99ZnVuY3Rpb24gcGkobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKHZzKG8pLG4pOm59ZnVuY3Rpb24gcmMobil7bGV0IG89QigyMjIpO3JldHVybiBvLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZU9wZXJhbmRPZlByZWZpeFVuYXJ5KG4pLG8udHJhbnNmb3JtRmxhZ3N8PVYoby5leHByZXNzaW9uKSxvfWZ1bmN0aW9uIGNhKG4sbyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW8/cihyYyhvKSxuKTpufWZ1bmN0aW9uIGxhKG4pe2xldCBvPUIoMjIzKTtyZXR1cm4gby5leHByZXNzaW9uPWEoKS5wYXJlbnRoZXNpemVPcGVyYW5kT2ZQcmVmaXhVbmFyeShuKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbil8MjU2fDEyOHwyMDk3MTUyLG99ZnVuY3Rpb24gbzEobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKGxhKG8pLG4pOm59ZnVuY3Rpb24gcWEobixvKXtsZXQgcz1CKDIyNCk7cmV0dXJuIHMub3BlcmF0b3I9bixzLm9wZXJhbmQ9YSgpLnBhcmVudGhlc2l6ZU9wZXJhbmRPZlByZWZpeFVuYXJ5KG8pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5vcGVyYW5kKSwobj09PTQ2fHxuPT09NDcpJiZFZShzLm9wZXJhbmQpJiYhd2Eocy5vcGVyYW5kKSYmIVkwKHMub3BlcmFuZCkmJihzLnRyYW5zZm9ybUZsYWdzfD0yNjg0MzU0NTYpLHN9ZnVuY3Rpb24gczEobixvKXtyZXR1cm4gbi5vcGVyYW5kIT09bz9yKHFhKG4ub3BlcmF0b3Isbyksbik6bn1mdW5jdGlvbiBUcyhuLG8pe2xldCBzPUIoMjI1KTtyZXR1cm4gcy5vcGVyYXRvcj1vLHMub3BlcmFuZD1hKCkucGFyZW50aGVzaXplT3BlcmFuZE9mUG9zdGZpeFVuYXJ5KG4pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5vcGVyYW5kKSxFZShzLm9wZXJhbmQpJiYhd2Eocy5vcGVyYW5kKSYmIVkwKHMub3BlcmFuZCkmJihzLnRyYW5zZm9ybUZsYWdzfD0yNjg0MzU0NTYpLHN9ZnVuY3Rpb24gXzEobixvKXtyZXR1cm4gbi5vcGVyYW5kIT09bz9yKFRzKG8sbi5vcGVyYXRvciksbik6bn1mdW5jdGlvbiBuYyhuLG8scyl7bGV0IHU9YWUoMjI2KSxnPWxyKG8pLEk9Zy5raW5kO3JldHVybiB1LmxlZnQ9YSgpLnBhcmVudGhlc2l6ZUxlZnRTaWRlT2ZCaW5hcnkoSSxuKSx1Lm9wZXJhdG9yVG9rZW49Zyx1LnJpZ2h0PWEoKS5wYXJlbnRoZXNpemVSaWdodFNpZGVPZkJpbmFyeShJLHUubGVmdCxzKSx1LnRyYW5zZm9ybUZsYWdzfD1WKHUubGVmdCl8Vih1Lm9wZXJhdG9yVG9rZW4pfFYodS5yaWdodCksST09PTYxP3UudHJhbnNmb3JtRmxhZ3N8PTMyOkk9PT02ND91byh1LmxlZnQpP3UudHJhbnNmb3JtRmxhZ3N8PTUyNDh8SnUodS5sZWZ0KTppdSh1LmxlZnQpJiYodS50cmFuc2Zvcm1GbGFnc3w9NTEyMHxKdSh1LmxlZnQpKTpJPT09NDN8fEk9PT02OD91LnRyYW5zZm9ybUZsYWdzfD01MTI6dm0oSSkmJih1LnRyYW5zZm9ybUZsYWdzfD0xNiksST09PTEwMyYmanIodS5sZWZ0KSYmKHUudHJhbnNmb3JtRmxhZ3N8PTUzNjg3MDkxMiksdS5qc0RvYz12b2lkIDAsdX1mdW5jdGlvbiBKdShuKXtyZXR1cm4gVTYobik/NjU1MzY6MH1mdW5jdGlvbiBSdShuLG8scyx1KXtyZXR1cm4gbi5sZWZ0IT09b3x8bi5vcGVyYXRvclRva2VuIT09c3x8bi5yaWdodCE9PXU/cihuYyhvLHMsdSksbik6bn1mdW5jdGlvbiBqdShuLG8scyx1LGcpe2xldCBJPUIoMjI3KTtyZXR1cm4gSS5jb25kaXRpb249YSgpLnBhcmVudGhlc2l6ZUNvbmRpdGlvbk9mQ29uZGl0aW9uYWxFeHByZXNzaW9uKG4pLEkucXVlc3Rpb25Ub2tlbj1vPz92dCg1OCksSS53aGVuVHJ1ZT1hKCkucGFyZW50aGVzaXplQnJhbmNoT2ZDb25kaXRpb25hbEV4cHJlc3Npb24ocyksSS5jb2xvblRva2VuPXU/P3Z0KDU5KSxJLndoZW5GYWxzZT1hKCkucGFyZW50aGVzaXplQnJhbmNoT2ZDb25kaXRpb25hbEV4cHJlc3Npb24oZyksSS50cmFuc2Zvcm1GbGFnc3w9VihJLmNvbmRpdGlvbil8VihJLnF1ZXN0aW9uVG9rZW4pfFYoSS53aGVuVHJ1ZSl8VihJLmNvbG9uVG9rZW4pfFYoSS53aGVuRmFsc2UpLEl9ZnVuY3Rpb24gZmkobixvLHMsdSxnLEkpe3JldHVybiBuLmNvbmRpdGlvbiE9PW98fG4ucXVlc3Rpb25Ub2tlbiE9PXN8fG4ud2hlblRydWUhPT11fHxuLmNvbG9uVG9rZW4hPT1nfHxuLndoZW5GYWxzZSE9PUk/cihqdShvLHMsdSxnLEkpLG4pOm59ZnVuY3Rpb24gaWMobixvKXtsZXQgcz1CKDIyOCk7cmV0dXJuIHMuaGVhZD1uLHMudGVtcGxhdGVTcGFucz1ZKG8pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5oZWFkKXxEZShzLnRlbXBsYXRlU3BhbnMpfDEwMjQsc31mdW5jdGlvbiBjMShuLG8scyl7cmV0dXJuIG4uaGVhZCE9PW98fG4udGVtcGxhdGVTcGFucyE9PXM/cihpYyhvLHMpLG4pOm59ZnVuY3Rpb24gU3MobixvLHMsdT0wKXtOLmFzc2VydCghKHUmLTcxNzcpLFwiVW5zdXBwb3J0ZWQgdGVtcGxhdGUgZmxhZ3MuXCIpO2xldCBnO2lmKHMhPT12b2lkIDAmJnMhPT1vJiYoZz1QTChuLHMpLHR5cGVvZiBnPT1cIm9iamVjdFwiKSlyZXR1cm4gTi5mYWlsKFwiSW52YWxpZCByYXcgdGV4dFwiKTtpZihvPT09dm9pZCAwKXtpZihnPT09dm9pZCAwKXJldHVybiBOLmZhaWwoXCJBcmd1bWVudHMgJ3RleHQnIGFuZCAncmF3VGV4dCcgbWF5IG5vdCBib3RoIGJlIHVuZGVmaW5lZC5cIik7bz1nfWVsc2UgZyE9PXZvaWQgMCYmTi5hc3NlcnQobz09PWcsXCJFeHBlY3RlZCBhcmd1bWVudCAndGV4dCcgdG8gYmUgdGhlIG5vcm1hbGl6ZWQgKGkuZS4gJ2Nvb2tlZCcpIHZlcnNpb24gb2YgYXJndW1lbnQgJ3Jhd1RleHQnLlwiKTtyZXR1cm4gb31mdW5jdGlvbiB6YShuKXtsZXQgbz0xMDI0O3JldHVybiBuJiYob3w9MTI4KSxvfWZ1bmN0aW9uIEZ1KG4sbyxzLHUpe2xldCBnPVRyKG4pO3JldHVybiBnLnRleHQ9byxnLnJhd1RleHQ9cyxnLnRlbXBsYXRlRmxhZ3M9dSY3MTc2LGcudHJhbnNmb3JtRmxhZ3M9emEoZy50ZW1wbGF0ZUZsYWdzKSxnfWZ1bmN0aW9uIGFjKG4sbyxzLHUpe2xldCBnPWFlKG4pO3JldHVybiBnLnRleHQ9byxnLnJhd1RleHQ9cyxnLnRlbXBsYXRlRmxhZ3M9dSY3MTc2LGcudHJhbnNmb3JtRmxhZ3M9emEoZy50ZW1wbGF0ZUZsYWdzKSxnfWZ1bmN0aW9uIExpKG4sbyxzLHUpe3JldHVybiBuPT09MTU/YWMobixvLHMsdSk6RnUobixvLHMsdSl9ZnVuY3Rpb24gb2MobixvLHMpe3JldHVybiBuPVNzKDE2LG4sbyxzKSxMaSgxNixuLG8scyl9ZnVuY3Rpb24gbDEobixvLHMpe3JldHVybiBuPVNzKDE2LG4sbyxzKSxMaSgxNyxuLG8scyl9ZnVuY3Rpb24gQnUobixvLHMpe3JldHVybiBuPVNzKDE2LG4sbyxzKSxMaSgxOCxuLG8scyl9ZnVuY3Rpb24gdTEobixvLHMpe3JldHVybiBuPVNzKDE2LG4sbyxzKSxhYygxNSxuLG8scyl9ZnVuY3Rpb24gVXUobixvKXtOLmFzc2VydCghbnx8ISFvLFwiQSBgWWllbGRFeHByZXNzaW9uYCB3aXRoIGFuIGFzdGVyaXNrVG9rZW4gbXVzdCBoYXZlIGFuIGV4cHJlc3Npb24uXCIpO2xldCBzPUIoMjI5KTtyZXR1cm4gcy5leHByZXNzaW9uPW8mJmEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uRm9yRGlzYWxsb3dlZENvbW1hKG8pLHMuYXN0ZXJpc2tUb2tlbj1uLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMuYXN0ZXJpc2tUb2tlbil8MTAyNHwxMjh8MTA0ODU3NixzfWZ1bmN0aW9uIHAxKG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09c3x8bi5hc3Rlcmlza1Rva2VuIT09bz9yKFV1KG8scyksbik6bn1mdW5jdGlvbiBxdShuKXtsZXQgbz1CKDIzMCk7cmV0dXJuIG8uZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplRXhwcmVzc2lvbkZvckRpc2FsbG93ZWRDb21tYShuKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbil8MTAyNHwzMjc2OCxvfWZ1bmN0aW9uIGYxKG4sbyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW8/cihxdShvKSxuKTpufWZ1bmN0aW9uIHhzKG4sbyxzLHUsZyl7bGV0IEk9YWUoMjMxKTtyZXR1cm4gSS5tb2RpZmllcnM9T2UobiksSS5uYW1lPVhlKG8pLEkudHlwZVBhcmFtZXRlcnM9T2UocyksSS5oZXJpdGFnZUNsYXVzZXM9T2UodSksSS5tZW1iZXJzPVkoZyksSS50cmFuc2Zvcm1GbGFnc3w9RGUoSS5tb2RpZmllcnMpfEluKEkubmFtZSl8RGUoSS50eXBlUGFyYW1ldGVycyl8RGUoSS5oZXJpdGFnZUNsYXVzZXMpfERlKEkubWVtYmVycyl8KEkudHlwZVBhcmFtZXRlcnM/MTowKXwxMDI0LEkuanNEb2M9dm9pZCAwLEl9ZnVuY3Rpb24gc2MobixvLHMsdSxnLEkpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4udHlwZVBhcmFtZXRlcnMhPT11fHxuLmhlcml0YWdlQ2xhdXNlcyE9PWd8fG4ubWVtYmVycyE9PUk/cih4cyhvLHMsdSxnLEkpLG4pOm59ZnVuY3Rpb24gZDEoKXtyZXR1cm4gQigyMzIpfWZ1bmN0aW9uIFZyKG4sbyl7bGV0IHM9QigyMzMpO3JldHVybiBzLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZUxlZnRTaWRlT2ZBY2Nlc3MobiwhMSkscy50eXBlQXJndW1lbnRzPW8mJmEoKS5wYXJlbnRoZXNpemVUeXBlQXJndW1lbnRzKG8pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxEZShzLnR5cGVBcmd1bWVudHMpfDEwMjQsc31mdW5jdGlvbiBfYyhuLG8scyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW98fG4udHlwZUFyZ3VtZW50cyE9PXM/cihWcihvLHMpLG4pOm59ZnVuY3Rpb24genUobixvKXtsZXQgcz1CKDIzNCk7cmV0dXJuIHMuZXhwcmVzc2lvbj1uLHMudHlwZT1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMudHlwZSl8MSxzfWZ1bmN0aW9uIFd1KG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09b3x8bi50eXBlIT09cz9yKHp1KG8scyksbik6bn1mdW5jdGlvbiBjYyhuKXtsZXQgbz1CKDIzNSk7cmV0dXJuIG8uZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbil8MSxvfWZ1bmN0aW9uIFZ1KG4sbyl7cmV0dXJuIGUzKG4pP3dzKG4sbyk6bi5leHByZXNzaW9uIT09bz9yKGNjKG8pLG4pOm59ZnVuY3Rpb24gbGMobixvKXtsZXQgcz1CKDIzOCk7cmV0dXJuIHMuZXhwcmVzc2lvbj1uLHMudHlwZT1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMudHlwZSl8MSxzfWZ1bmN0aW9uIERuKG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09b3x8bi50eXBlIT09cz9yKGxjKG8scyksbik6bn1mdW5jdGlvbiBIdShuKXtsZXQgbz1CKDIzNSk7cmV0dXJuIG8uZmxhZ3N8PTY0LG8uZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCEwKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbil8MSxvfWZ1bmN0aW9uIHdzKG4sbyl7cmV0dXJuIE4uYXNzZXJ0KCEhKG4uZmxhZ3MmNjQpLFwiQ2Fubm90IHVwZGF0ZSBhIE5vbk51bGxFeHByZXNzaW9uIHVzaW5nIHVwZGF0ZU5vbk51bGxDaGFpbi4gVXNlIHVwZGF0ZU5vbk51bGxFeHByZXNzaW9uIGluc3RlYWQuXCIpLG4uZXhwcmVzc2lvbiE9PW8/cihIdShvKSxuKTpufWZ1bmN0aW9uIEduKG4sbyl7bGV0IHM9QigyMzYpO3N3aXRjaChzLmtleXdvcmRUb2tlbj1uLHMubmFtZT1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5uYW1lKSxuKXtjYXNlIDEwNTpzLnRyYW5zZm9ybUZsYWdzfD0xMDI0O2JyZWFrO2Nhc2UgMTAyOnMudHJhbnNmb3JtRmxhZ3N8PTMyO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIE4uYXNzZXJ0TmV2ZXIobil9cmV0dXJuIHMuZmxvd05vZGU9dm9pZCAwLHN9ZnVuY3Rpb24gQ3MobixvKXtyZXR1cm4gbi5uYW1lIT09bz9yKEduKG4ua2V5d29yZFRva2VuLG8pLG4pOm59ZnVuY3Rpb24gdWMobixvKXtsZXQgcz1CKDIzOSk7cmV0dXJuIHMuZXhwcmVzc2lvbj1uLHMubGl0ZXJhbD1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMubGl0ZXJhbCl8MTAyNCxzfWZ1bmN0aW9uIEd1KG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09b3x8bi5saXRlcmFsIT09cz9yKHVjKG8scyksbik6bn1mdW5jdGlvbiBtMSgpe2xldCBuPUIoMjQwKTtyZXR1cm4gbi50cmFuc2Zvcm1GbGFnc3w9MTAyNCxufWZ1bmN0aW9uIHVhKG4sbyl7bGV0IHM9QigyNDEpO3JldHVybiBzLnN0YXRlbWVudHM9WShuKSxzLm11bHRpTGluZT1vLHMudHJhbnNmb3JtRmxhZ3N8PURlKHMuc3RhdGVtZW50cykscy5qc0RvYz12b2lkIDAscy5sb2NhbHM9dm9pZCAwLHMubmV4dENvbnRhaW5lcj12b2lkIDAsc31mdW5jdGlvbiBoMShuLG8pe3JldHVybiBuLnN0YXRlbWVudHMhPT1vP3IodWEobyxuLm11bHRpTGluZSksbik6bn1mdW5jdGlvbiBYdShuLG8pe2xldCBzPUIoMjQzKTtyZXR1cm4gcy5tb2RpZmllcnM9T2Uobikscy5kZWNsYXJhdGlvbkxpc3Q9enQobyk/Z2Mobyk6byxzLnRyYW5zZm9ybUZsYWdzfD1EZShzLm1vZGlmaWVycyl8VihzLmRlY2xhcmF0aW9uTGlzdCksbG4ocy5tb2RpZmllcnMpJjImJihzLnRyYW5zZm9ybUZsYWdzPTEpLHMuanNEb2M9dm9pZCAwLHMuZmxvd05vZGU9dm9pZCAwLHN9ZnVuY3Rpb24gcGMobixvLHMpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4uZGVjbGFyYXRpb25MaXN0IT09cz9yKFh1KG8scyksbik6bn1mdW5jdGlvbiBmYygpe2xldCBuPUIoMjQyKTtyZXR1cm4gbi5qc0RvYz12b2lkIDAsbn1mdW5jdGlvbiBFcyhuKXtsZXQgbz1CKDI0NCk7cmV0dXJuIG8uZXhwcmVzc2lvbj1hKCkucGFyZW50aGVzaXplRXhwcmVzc2lvbk9mRXhwcmVzc2lvblN0YXRlbWVudChuKSxvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbiksby5qc0RvYz12b2lkIDAsby5mbG93Tm9kZT12b2lkIDAsb31mdW5jdGlvbiAkdShuLG8pe3JldHVybiBuLmV4cHJlc3Npb24hPT1vP3IoRXMobyksbik6bn1mdW5jdGlvbiBRdShuLG8scyl7bGV0IHU9QigyNDUpO3JldHVybiB1LmV4cHJlc3Npb249bix1LnRoZW5TdGF0ZW1lbnQ9b24obyksdS5lbHNlU3RhdGVtZW50PW9uKHMpLHUudHJhbnNmb3JtRmxhZ3N8PVYodS5leHByZXNzaW9uKXxWKHUudGhlblN0YXRlbWVudCl8Vih1LmVsc2VTdGF0ZW1lbnQpLHUuanNEb2M9dm9pZCAwLHUuZmxvd05vZGU9dm9pZCAwLHV9ZnVuY3Rpb24gWXUobixvLHMsdSl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW98fG4udGhlblN0YXRlbWVudCE9PXN8fG4uZWxzZVN0YXRlbWVudCE9PXU/cihRdShvLHMsdSksbik6bn1mdW5jdGlvbiBLdShuLG8pe2xldCBzPUIoMjQ2KTtyZXR1cm4gcy5zdGF0ZW1lbnQ9b24obikscy5leHByZXNzaW9uPW8scy50cmFuc2Zvcm1GbGFnc3w9VihzLnN0YXRlbWVudCl8VihzLmV4cHJlc3Npb24pLHMuanNEb2M9dm9pZCAwLHMuZmxvd05vZGU9dm9pZCAwLHN9ZnVuY3Rpb24geTEobixvLHMpe3JldHVybiBuLnN0YXRlbWVudCE9PW98fG4uZXhwcmVzc2lvbiE9PXM/cihLdShvLHMpLG4pOm59ZnVuY3Rpb24gWnUobixvKXtsZXQgcz1CKDI0Nyk7cmV0dXJuIHMuZXhwcmVzc2lvbj1uLHMuc3RhdGVtZW50PW9uKG8pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMuc3RhdGVtZW50KSxzLmpzRG9jPXZvaWQgMCxzLmZsb3dOb2RlPXZvaWQgMCxzfWZ1bmN0aW9uIGVwKG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09b3x8bi5zdGF0ZW1lbnQhPT1zP3IoWnUobyxzKSxuKTpufWZ1bmN0aW9uIGRjKG4sbyxzLHUpe2xldCBnPUIoMjQ4KTtyZXR1cm4gZy5pbml0aWFsaXplcj1uLGcuY29uZGl0aW9uPW8sZy5pbmNyZW1lbnRvcj1zLGcuc3RhdGVtZW50PW9uKHUpLGcudHJhbnNmb3JtRmxhZ3N8PVYoZy5pbml0aWFsaXplcil8VihnLmNvbmRpdGlvbil8VihnLmluY3JlbWVudG9yKXxWKGcuc3RhdGVtZW50KSxnLmpzRG9jPXZvaWQgMCxnLmxvY2Fscz12b2lkIDAsZy5uZXh0Q29udGFpbmVyPXZvaWQgMCxnLmZsb3dOb2RlPXZvaWQgMCxnfWZ1bmN0aW9uIGcxKG4sbyxzLHUsZyl7cmV0dXJuIG4uaW5pdGlhbGl6ZXIhPT1vfHxuLmNvbmRpdGlvbiE9PXN8fG4uaW5jcmVtZW50b3IhPT11fHxuLnN0YXRlbWVudCE9PWc/cihkYyhvLHMsdSxnKSxuKTpufWZ1bmN0aW9uIHRwKG4sbyxzKXtsZXQgdT1CKDI0OSk7cmV0dXJuIHUuaW5pdGlhbGl6ZXI9bix1LmV4cHJlc3Npb249byx1LnN0YXRlbWVudD1vbihzKSx1LnRyYW5zZm9ybUZsYWdzfD1WKHUuaW5pdGlhbGl6ZXIpfFYodS5leHByZXNzaW9uKXxWKHUuc3RhdGVtZW50KSx1LmpzRG9jPXZvaWQgMCx1LmxvY2Fscz12b2lkIDAsdS5uZXh0Q29udGFpbmVyPXZvaWQgMCx1LmZsb3dOb2RlPXZvaWQgMCx1fWZ1bmN0aW9uIGIxKG4sbyxzLHUpe3JldHVybiBuLmluaXRpYWxpemVyIT09b3x8bi5leHByZXNzaW9uIT09c3x8bi5zdGF0ZW1lbnQhPT11P3IodHAobyxzLHUpLG4pOm59ZnVuY3Rpb24gcnAobixvLHMsdSl7bGV0IGc9QigyNTApO3JldHVybiBnLmF3YWl0TW9kaWZpZXI9bixnLmluaXRpYWxpemVyPW8sZy5leHByZXNzaW9uPWEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uRm9yRGlzYWxsb3dlZENvbW1hKHMpLGcuc3RhdGVtZW50PW9uKHUpLGcudHJhbnNmb3JtRmxhZ3N8PVYoZy5hd2FpdE1vZGlmaWVyKXxWKGcuaW5pdGlhbGl6ZXIpfFYoZy5leHByZXNzaW9uKXxWKGcuc3RhdGVtZW50KXwxMDI0LG4mJihnLnRyYW5zZm9ybUZsYWdzfD0xMjgpLGcuanNEb2M9dm9pZCAwLGcubG9jYWxzPXZvaWQgMCxnLm5leHRDb250YWluZXI9dm9pZCAwLGcuZmxvd05vZGU9dm9pZCAwLGd9ZnVuY3Rpb24gdjEobixvLHMsdSxnKXtyZXR1cm4gbi5hd2FpdE1vZGlmaWVyIT09b3x8bi5pbml0aWFsaXplciE9PXN8fG4uZXhwcmVzc2lvbiE9PXV8fG4uc3RhdGVtZW50IT09Zz9yKHJwKG8scyx1LGcpLG4pOm59ZnVuY3Rpb24gbWMobil7bGV0IG89QigyNTEpO3JldHVybiBvLmxhYmVsPVhlKG4pLG8udHJhbnNmb3JtRmxhZ3N8PVYoby5sYWJlbCl8NDE5NDMwNCxvLmpzRG9jPXZvaWQgMCxvLmZsb3dOb2RlPXZvaWQgMCxvfWZ1bmN0aW9uIG5wKG4sbyl7cmV0dXJuIG4ubGFiZWwhPT1vP3IobWMobyksbik6bn1mdW5jdGlvbiBoYyhuKXtsZXQgbz1CKDI1Mik7cmV0dXJuIG8ubGFiZWw9WGUobiksby50cmFuc2Zvcm1GbGFnc3w9VihvLmxhYmVsKXw0MTk0MzA0LG8uanNEb2M9dm9pZCAwLG8uZmxvd05vZGU9dm9pZCAwLG99ZnVuY3Rpb24gVDEobixvKXtyZXR1cm4gbi5sYWJlbCE9PW8/cihoYyhvKSxuKTpufWZ1bmN0aW9uIGlwKG4pe2xldCBvPUIoMjUzKTtyZXR1cm4gby5leHByZXNzaW9uPW4sby50cmFuc2Zvcm1GbGFnc3w9VihvLmV4cHJlc3Npb24pfDEyOHw0MTk0MzA0LG8uanNEb2M9dm9pZCAwLG8uZmxvd05vZGU9dm9pZCAwLG99ZnVuY3Rpb24gYXAobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKGlwKG8pLG4pOm59ZnVuY3Rpb24geWMobixvKXtsZXQgcz1CKDI1NCk7cmV0dXJuIHMuZXhwcmVzc2lvbj1uLHMuc3RhdGVtZW50PW9uKG8pLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXxWKHMuc3RhdGVtZW50KSxzLmpzRG9jPXZvaWQgMCxzLmZsb3dOb2RlPXZvaWQgMCxzfWZ1bmN0aW9uIG9wKG4sbyxzKXtyZXR1cm4gbi5leHByZXNzaW9uIT09b3x8bi5zdGF0ZW1lbnQhPT1zP3IoeWMobyxzKSxuKTpufWZ1bmN0aW9uIHBhKG4sbyl7bGV0IHM9QigyNTUpO3JldHVybiBzLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25Gb3JEaXNhbGxvd2VkQ29tbWEobikscy5jYXNlQmxvY2s9byxzLnRyYW5zZm9ybUZsYWdzfD1WKHMuZXhwcmVzc2lvbil8VihzLmNhc2VCbG9jaykscy5qc0RvYz12b2lkIDAscy5mbG93Tm9kZT12b2lkIDAscy5wb3NzaWJseUV4aGF1c3RpdmU9ITEsc31mdW5jdGlvbiBTMShuLG8scyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW98fG4uY2FzZUJsb2NrIT09cz9yKHBhKG8scyksbik6bn1mdW5jdGlvbiBzcChuLG8pe2xldCBzPUIoMjU2KTtyZXR1cm4gcy5sYWJlbD1YZShuKSxzLnN0YXRlbWVudD1vbihvKSxzLnRyYW5zZm9ybUZsYWdzfD1WKHMubGFiZWwpfFYocy5zdGF0ZW1lbnQpLHMuanNEb2M9dm9pZCAwLHMuZmxvd05vZGU9dm9pZCAwLHN9ZnVuY3Rpb24gX3AobixvLHMpe3JldHVybiBuLmxhYmVsIT09b3x8bi5zdGF0ZW1lbnQhPT1zP3Ioc3AobyxzKSxuKTpufWZ1bmN0aW9uIGNwKG4pe2xldCBvPUIoMjU3KTtyZXR1cm4gby5leHByZXNzaW9uPW4sby50cmFuc2Zvcm1GbGFnc3w9VihvLmV4cHJlc3Npb24pLG8uanNEb2M9dm9pZCAwLG8uZmxvd05vZGU9dm9pZCAwLG99ZnVuY3Rpb24geDEobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKGNwKG8pLG4pOm59ZnVuY3Rpb24gbHAobixvLHMpe2xldCB1PUIoMjU4KTtyZXR1cm4gdS50cnlCbG9jaz1uLHUuY2F0Y2hDbGF1c2U9byx1LmZpbmFsbHlCbG9jaz1zLHUudHJhbnNmb3JtRmxhZ3N8PVYodS50cnlCbG9jayl8Vih1LmNhdGNoQ2xhdXNlKXxWKHUuZmluYWxseUJsb2NrKSx1LmpzRG9jPXZvaWQgMCx1LmZsb3dOb2RlPXZvaWQgMCx1fWZ1bmN0aW9uIHVwKG4sbyxzLHUpe3JldHVybiBuLnRyeUJsb2NrIT09b3x8bi5jYXRjaENsYXVzZSE9PXN8fG4uZmluYWxseUJsb2NrIT09dT9yKGxwKG8scyx1KSxuKTpufWZ1bmN0aW9uIHBwKCl7bGV0IG49QigyNTkpO3JldHVybiBuLmpzRG9jPXZvaWQgMCxuLmZsb3dOb2RlPXZvaWQgMCxufWZ1bmN0aW9uIEFzKG4sbyxzLHUpe2xldCBnPWFlKDI2MCk7cmV0dXJuIGcubmFtZT1YZShuKSxnLmV4Y2xhbWF0aW9uVG9rZW49byxnLnR5cGU9cyxnLmluaXRpYWxpemVyPVRvKHUpLGcudHJhbnNmb3JtRmxhZ3N8PUluKGcubmFtZSl8VihnLmluaXRpYWxpemVyKXwoZy5leGNsYW1hdGlvblRva2VuPz9nLnR5cGU/MTowKSxnLmpzRG9jPXZvaWQgMCxnfWZ1bmN0aW9uIHcxKG4sbyxzLHUsZyl7cmV0dXJuIG4ubmFtZSE9PW98fG4udHlwZSE9PXV8fG4uZXhjbGFtYXRpb25Ub2tlbiE9PXN8fG4uaW5pdGlhbGl6ZXIhPT1nP3IoQXMobyxzLHUsZyksbik6bn1mdW5jdGlvbiBnYyhuLG89MCl7bGV0IHM9QigyNjEpO3JldHVybiBzLmZsYWdzfD1vJjcscy5kZWNsYXJhdGlvbnM9WShuKSxzLnRyYW5zZm9ybUZsYWdzfD1EZShzLmRlY2xhcmF0aW9ucyl8NDE5NDMwNCxvJjcmJihzLnRyYW5zZm9ybUZsYWdzfD0yNjMxNjgpLG8mNCYmKHMudHJhbnNmb3JtRmxhZ3N8PTQpLHN9ZnVuY3Rpb24gQzEobixvKXtyZXR1cm4gbi5kZWNsYXJhdGlvbnMhPT1vP3IoZ2MobyxuLmZsYWdzKSxuKTpufWZ1bmN0aW9uIGJjKG4sbyxzLHUsZyxJLFcpe2xldCBkZT1hZSgyNjIpO2lmKGRlLm1vZGlmaWVycz1PZShuKSxkZS5hc3Rlcmlza1Rva2VuPW8sZGUubmFtZT1YZShzKSxkZS50eXBlUGFyYW1ldGVycz1PZSh1KSxkZS5wYXJhbWV0ZXJzPVkoZyksZGUudHlwZT1JLGRlLmJvZHk9VywhZGUuYm9keXx8bG4oZGUubW9kaWZpZXJzKSYyKWRlLnRyYW5zZm9ybUZsYWdzPTE7ZWxzZXtsZXQgV2U9bG4oZGUubW9kaWZpZXJzKSY1MTIsRXI9ISFkZS5hc3Rlcmlza1Rva2VuLCRuPVdlJiZFcjtkZS50cmFuc2Zvcm1GbGFncz1EZShkZS5tb2RpZmllcnMpfFYoZGUuYXN0ZXJpc2tUb2tlbil8SW4oZGUubmFtZSl8RGUoZGUudHlwZVBhcmFtZXRlcnMpfERlKGRlLnBhcmFtZXRlcnMpfFYoZGUudHlwZSl8VihkZS5ib2R5KSYtNjcxMDg4NjV8KCRuPzEyODpXZT8yNTY6RXI/MjA0ODowKXwoZGUudHlwZVBhcmFtZXRlcnN8fGRlLnR5cGU/MTowKXw0MTk0MzA0fXJldHVybiBkZS50eXBlQXJndW1lbnRzPXZvaWQgMCxkZS5qc0RvYz12b2lkIDAsZGUubG9jYWxzPXZvaWQgMCxkZS5uZXh0Q29udGFpbmVyPXZvaWQgMCxkZS5lbmRGbG93Tm9kZT12b2lkIDAsZGUucmV0dXJuRmxvd05vZGU9dm9pZCAwLGRlfWZ1bmN0aW9uIGZwKG4sbyxzLHUsZyxJLFcsZGUpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4uYXN0ZXJpc2tUb2tlbiE9PXN8fG4ubmFtZSE9PXV8fG4udHlwZVBhcmFtZXRlcnMhPT1nfHxuLnBhcmFtZXRlcnMhPT1JfHxuLnR5cGUhPT1XfHxuLmJvZHkhPT1kZT9FMShiYyhvLHMsdSxnLEksVyxkZSksbik6bn1mdW5jdGlvbiBFMShuLG8pe3JldHVybiBuIT09byYmbi5tb2RpZmllcnM9PT1vLm1vZGlmaWVycyYmKG4ubW9kaWZpZXJzPW8ubW9kaWZpZXJzKSxDZShuLG8pfWZ1bmN0aW9uIHZjKG4sbyxzLHUsZyl7bGV0IEk9YWUoMjYzKTtyZXR1cm4gSS5tb2RpZmllcnM9T2UobiksSS5uYW1lPVhlKG8pLEkudHlwZVBhcmFtZXRlcnM9T2UocyksSS5oZXJpdGFnZUNsYXVzZXM9T2UodSksSS5tZW1iZXJzPVkoZyksbG4oSS5tb2RpZmllcnMpJjI/SS50cmFuc2Zvcm1GbGFncz0xOihJLnRyYW5zZm9ybUZsYWdzfD1EZShJLm1vZGlmaWVycyl8SW4oSS5uYW1lKXxEZShJLnR5cGVQYXJhbWV0ZXJzKXxEZShJLmhlcml0YWdlQ2xhdXNlcyl8RGUoSS5tZW1iZXJzKXwoSS50eXBlUGFyYW1ldGVycz8xOjApfDEwMjQsSS50cmFuc2Zvcm1GbGFncyY4MTkyJiYoSS50cmFuc2Zvcm1GbGFnc3w9MSkpLEkuanNEb2M9dm9pZCAwLEl9ZnVuY3Rpb24gVGMobixvLHMsdSxnLEkpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4udHlwZVBhcmFtZXRlcnMhPT11fHxuLmhlcml0YWdlQ2xhdXNlcyE9PWd8fG4ubWVtYmVycyE9PUk/cih2YyhvLHMsdSxnLEkpLG4pOm59ZnVuY3Rpb24gZHAobixvLHMsdSxnKXtsZXQgST1hZSgyNjQpO3JldHVybiBJLm1vZGlmaWVycz1PZShuKSxJLm5hbWU9WGUobyksSS50eXBlUGFyYW1ldGVycz1PZShzKSxJLmhlcml0YWdlQ2xhdXNlcz1PZSh1KSxJLm1lbWJlcnM9WShnKSxJLnRyYW5zZm9ybUZsYWdzPTEsSS5qc0RvYz12b2lkIDAsSX1mdW5jdGlvbiBndChuLG8scyx1LGcsSSl7cmV0dXJuIG4ubW9kaWZpZXJzIT09b3x8bi5uYW1lIT09c3x8bi50eXBlUGFyYW1ldGVycyE9PXV8fG4uaGVyaXRhZ2VDbGF1c2VzIT09Z3x8bi5tZW1iZXJzIT09ST9yKGRwKG8scyx1LGcsSSksbik6bn1mdW5jdGlvbiBKaShuLG8scyx1KXtsZXQgZz1hZSgyNjUpO3JldHVybiBnLm1vZGlmaWVycz1PZShuKSxnLm5hbWU9WGUobyksZy50eXBlUGFyYW1ldGVycz1PZShzKSxnLnR5cGU9dSxnLnRyYW5zZm9ybUZsYWdzPTEsZy5qc0RvYz12b2lkIDAsZy5sb2NhbHM9dm9pZCAwLGcubmV4dENvbnRhaW5lcj12b2lkIDAsZ31mdW5jdGlvbiBTYyhuLG8scyx1LGcpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4udHlwZVBhcmFtZXRlcnMhPT11fHxuLnR5cGUhPT1nP3IoSmkobyxzLHUsZyksbik6bn1mdW5jdGlvbiBSaShuLG8scyl7bGV0IHU9YWUoMjY2KTtyZXR1cm4gdS5tb2RpZmllcnM9T2UobiksdS5uYW1lPVhlKG8pLHUubWVtYmVycz1ZKHMpLHUudHJhbnNmb3JtRmxhZ3N8PURlKHUubW9kaWZpZXJzKXxWKHUubmFtZSl8RGUodS5tZW1iZXJzKXwxLHUudHJhbnNmb3JtRmxhZ3MmPS02NzEwODg2NSx1LmpzRG9jPXZvaWQgMCx1fWZ1bmN0aW9uIG1wKG4sbyxzLHUpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4ubmFtZSE9PXN8fG4ubWVtYmVycyE9PXU/cihSaShvLHMsdSksbik6bn1mdW5jdGlvbiBKdChuLG8scyx1PTApe2xldCBnPWFlKDI2Nyk7cmV0dXJuIGcubW9kaWZpZXJzPU9lKG4pLGcuZmxhZ3N8PXUmMjA4OCxnLm5hbWU9byxnLmJvZHk9cyxsbihnLm1vZGlmaWVycykmMj9nLnRyYW5zZm9ybUZsYWdzPTE6Zy50cmFuc2Zvcm1GbGFnc3w9RGUoZy5tb2RpZmllcnMpfFYoZy5uYW1lKXxWKGcuYm9keSl8MSxnLnRyYW5zZm9ybUZsYWdzJj0tNjcxMDg4NjUsZy5qc0RvYz12b2lkIDAsZy5sb2NhbHM9dm9pZCAwLGcubmV4dENvbnRhaW5lcj12b2lkIDAsZ31mdW5jdGlvbiBqaShuLG8scyx1KXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLm5hbWUhPT1zfHxuLmJvZHkhPT11P3IoSnQobyxzLHUsbi5mbGFncyksbik6bn1mdW5jdGlvbiB0cihuKXtsZXQgbz1CKDI2OCk7cmV0dXJuIG8uc3RhdGVtZW50cz1ZKG4pLG8udHJhbnNmb3JtRmxhZ3N8PURlKG8uc3RhdGVtZW50cyksby5qc0RvYz12b2lkIDAsb31mdW5jdGlvbiBBMShuLG8pe3JldHVybiBuLnN0YXRlbWVudHMhPT1vP3IodHIobyksbik6bn1mdW5jdGlvbiBocChuKXtsZXQgbz1CKDI2OSk7cmV0dXJuIG8uY2xhdXNlcz1ZKG4pLG8udHJhbnNmb3JtRmxhZ3N8PURlKG8uY2xhdXNlcyksby5sb2NhbHM9dm9pZCAwLG8ubmV4dENvbnRhaW5lcj12b2lkIDAsb31mdW5jdGlvbiBrMShuLG8pe3JldHVybiBuLmNsYXVzZXMhPT1vP3IoaHAobyksbik6bn1mdW5jdGlvbiB4YyhuKXtsZXQgbz1hZSgyNzApO3JldHVybiBvLm5hbWU9WGUobiksby50cmFuc2Zvcm1GbGFnc3w9ZV8oby5uYW1lKXwxLG8ubW9kaWZpZXJzPXZvaWQgMCxvLmpzRG9jPXZvaWQgMCxvfWZ1bmN0aW9uIEQxKG4sbyl7cmV0dXJuIG4ubmFtZSE9PW8/UDEoeGMobyksbik6bn1mdW5jdGlvbiBQMShuLG8pe3JldHVybiBuIT09byYmKG4ubW9kaWZpZXJzPW8ubW9kaWZpZXJzKSxyKG4sbyl9ZnVuY3Rpb24geXAobixvLHMsdSl7bGV0IGc9YWUoMjcxKTtyZXR1cm4gZy5tb2RpZmllcnM9T2UobiksZy5uYW1lPVhlKHMpLGcuaXNUeXBlT25seT1vLGcubW9kdWxlUmVmZXJlbmNlPXUsZy50cmFuc2Zvcm1GbGFnc3w9RGUoZy5tb2RpZmllcnMpfGVfKGcubmFtZSl8VihnLm1vZHVsZVJlZmVyZW5jZSksTm0oZy5tb2R1bGVSZWZlcmVuY2UpfHwoZy50cmFuc2Zvcm1GbGFnc3w9MSksZy50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LGcuanNEb2M9dm9pZCAwLGd9ZnVuY3Rpb24gZ3AobixvLHMsdSxnKXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLmlzVHlwZU9ubHkhPT1zfHxuLm5hbWUhPT11fHxuLm1vZHVsZVJlZmVyZW5jZSE9PWc/cih5cChvLHMsdSxnKSxuKTpufWZ1bmN0aW9uIGJwKG4sbyxzLHUpe2xldCBnPUIoMjcyKTtyZXR1cm4gZy5tb2RpZmllcnM9T2UobiksZy5pbXBvcnRDbGF1c2U9byxnLm1vZHVsZVNwZWNpZmllcj1zLGcuYXNzZXJ0Q2xhdXNlPXUsZy50cmFuc2Zvcm1GbGFnc3w9VihnLmltcG9ydENsYXVzZSl8VihnLm1vZHVsZVNwZWNpZmllciksZy50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LGcuanNEb2M9dm9pZCAwLGd9ZnVuY3Rpb24gdnAobixvLHMsdSxnKXtyZXR1cm4gbi5tb2RpZmllcnMhPT1vfHxuLmltcG9ydENsYXVzZSE9PXN8fG4ubW9kdWxlU3BlY2lmaWVyIT09dXx8bi5hc3NlcnRDbGF1c2UhPT1nP3IoYnAobyxzLHUsZyksbik6bn1mdW5jdGlvbiB3YyhuLG8scyl7bGV0IHU9YWUoMjczKTtyZXR1cm4gdS5pc1R5cGVPbmx5PW4sdS5uYW1lPW8sdS5uYW1lZEJpbmRpbmdzPXMsdS50cmFuc2Zvcm1GbGFnc3w9Vih1Lm5hbWUpfFYodS5uYW1lZEJpbmRpbmdzKSxuJiYodS50cmFuc2Zvcm1GbGFnc3w9MSksdS50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LHV9ZnVuY3Rpb24gVHAobixvLHMsdSl7cmV0dXJuIG4uaXNUeXBlT25seSE9PW98fG4ubmFtZSE9PXN8fG4ubmFtZWRCaW5kaW5ncyE9PXU/cih3YyhvLHMsdSksbik6bn1mdW5jdGlvbiBTcChuLG8pe2xldCBzPUIoMzAwKTtyZXR1cm4gcy5lbGVtZW50cz1ZKG4pLHMubXVsdGlMaW5lPW8scy50cmFuc2Zvcm1GbGFnc3w9NCxzfWZ1bmN0aW9uIGtzKG4sbyxzKXtyZXR1cm4gbi5lbGVtZW50cyE9PW98fG4ubXVsdGlMaW5lIT09cz9yKFNwKG8scyksbik6bn1mdW5jdGlvbiBDYyhuLG8pe2xldCBzPUIoMzAxKTtyZXR1cm4gcy5uYW1lPW4scy52YWx1ZT1vLHMudHJhbnNmb3JtRmxhZ3N8PTQsc31mdW5jdGlvbiB4cChuLG8scyl7cmV0dXJuIG4ubmFtZSE9PW98fG4udmFsdWUhPT1zP3IoQ2MobyxzKSxuKTpufWZ1bmN0aW9uIEVjKG4sbyl7bGV0IHM9QigzMDIpO3JldHVybiBzLmFzc2VydENsYXVzZT1uLHMubXVsdGlMaW5lPW8sc31mdW5jdGlvbiBJMShuLG8scyl7cmV0dXJuIG4uYXNzZXJ0Q2xhdXNlIT09b3x8bi5tdWx0aUxpbmUhPT1zP3IoRWMobyxzKSxuKTpufWZ1bmN0aW9uIERzKG4pe2xldCBvPWFlKDI3NCk7cmV0dXJuIG8ubmFtZT1uLG8udHJhbnNmb3JtRmxhZ3N8PVYoby5uYW1lKSxvLnRyYW5zZm9ybUZsYWdzJj0tNjcxMDg4NjUsb31mdW5jdGlvbiBOMShuLG8pe3JldHVybiBuLm5hbWUhPT1vP3IoRHMobyksbik6bn1mdW5jdGlvbiBBYyhuKXtsZXQgbz1hZSgyODApO3JldHVybiBvLm5hbWU9bixvLnRyYW5zZm9ybUZsYWdzfD1WKG8ubmFtZSl8MzIsby50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LG99ZnVuY3Rpb24gTzEobixvKXtyZXR1cm4gbi5uYW1lIT09bz9yKEFjKG8pLG4pOm59ZnVuY3Rpb24gd3Aobil7bGV0IG89QigyNzUpO3JldHVybiBvLmVsZW1lbnRzPVkobiksby50cmFuc2Zvcm1GbGFnc3w9RGUoby5lbGVtZW50cyksby50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LG99ZnVuY3Rpb24gTTEobixvKXtyZXR1cm4gbi5lbGVtZW50cyE9PW8/cih3cChvKSxuKTpufWZ1bmN0aW9uIENwKG4sbyxzKXtsZXQgdT1hZSgyNzYpO3JldHVybiB1LmlzVHlwZU9ubHk9bix1LnByb3BlcnR5TmFtZT1vLHUubmFtZT1zLHUudHJhbnNmb3JtRmxhZ3N8PVYodS5wcm9wZXJ0eU5hbWUpfFYodS5uYW1lKSx1LnRyYW5zZm9ybUZsYWdzJj0tNjcxMDg4NjUsdX1mdW5jdGlvbiBMMShuLG8scyx1KXtyZXR1cm4gbi5pc1R5cGVPbmx5IT09b3x8bi5wcm9wZXJ0eU5hbWUhPT1zfHxuLm5hbWUhPT11P3IoQ3AobyxzLHUpLG4pOm59ZnVuY3Rpb24gUHMobixvLHMpe2xldCB1PWFlKDI3Nyk7cmV0dXJuIHUubW9kaWZpZXJzPU9lKG4pLHUuaXNFeHBvcnRFcXVhbHM9byx1LmV4cHJlc3Npb249bz9hKCkucGFyZW50aGVzaXplUmlnaHRTaWRlT2ZCaW5hcnkoNjQsdm9pZCAwLHMpOmEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uT2ZFeHBvcnREZWZhdWx0KHMpLHUudHJhbnNmb3JtRmxhZ3N8PURlKHUubW9kaWZpZXJzKXxWKHUuZXhwcmVzc2lvbiksdS50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LHUuanNEb2M9dm9pZCAwLHV9ZnVuY3Rpb24gRmkobixvLHMpe3JldHVybiBuLm1vZGlmaWVycyE9PW98fG4uZXhwcmVzc2lvbiE9PXM/cihQcyhvLG4uaXNFeHBvcnRFcXVhbHMscyksbik6bn1mdW5jdGlvbiBrYyhuLG8scyx1LGcpe2xldCBJPWFlKDI3OCk7cmV0dXJuIEkubW9kaWZpZXJzPU9lKG4pLEkuaXNUeXBlT25seT1vLEkuZXhwb3J0Q2xhdXNlPXMsSS5tb2R1bGVTcGVjaWZpZXI9dSxJLmFzc2VydENsYXVzZT1nLEkudHJhbnNmb3JtRmxhZ3N8PURlKEkubW9kaWZpZXJzKXxWKEkuZXhwb3J0Q2xhdXNlKXxWKEkubW9kdWxlU3BlY2lmaWVyKSxJLnRyYW5zZm9ybUZsYWdzJj0tNjcxMDg4NjUsSS5qc0RvYz12b2lkIDAsSX1mdW5jdGlvbiBEYyhuLG8scyx1LGcsSSl7cmV0dXJuIG4ubW9kaWZpZXJzIT09b3x8bi5pc1R5cGVPbmx5IT09c3x8bi5leHBvcnRDbGF1c2UhPT11fHxuLm1vZHVsZVNwZWNpZmllciE9PWd8fG4uYXNzZXJ0Q2xhdXNlIT09ST9JcyhrYyhvLHMsdSxnLEkpLG4pOm59ZnVuY3Rpb24gSXMobixvKXtyZXR1cm4gbiE9PW8mJm4ubW9kaWZpZXJzPT09by5tb2RpZmllcnMmJihuLm1vZGlmaWVycz1vLm1vZGlmaWVycykscihuLG8pfWZ1bmN0aW9uIE5zKG4pe2xldCBvPUIoMjc5KTtyZXR1cm4gby5lbGVtZW50cz1ZKG4pLG8udHJhbnNmb3JtRmxhZ3N8PURlKG8uZWxlbWVudHMpLG8udHJhbnNmb3JtRmxhZ3MmPS02NzEwODg2NSxvfWZ1bmN0aW9uIEoxKG4sbyl7cmV0dXJuIG4uZWxlbWVudHMhPT1vP3IoTnMobyksbik6bn1mdW5jdGlvbiBmYShuLG8scyl7bGV0IHU9QigyODEpO3JldHVybiB1LmlzVHlwZU9ubHk9bix1LnByb3BlcnR5TmFtZT1YZShvKSx1Lm5hbWU9WGUocyksdS50cmFuc2Zvcm1GbGFnc3w9Vih1LnByb3BlcnR5TmFtZSl8Vih1Lm5hbWUpLHUudHJhbnNmb3JtRmxhZ3MmPS02NzEwODg2NSx1LmpzRG9jPXZvaWQgMCx1fWZ1bmN0aW9uIFIxKG4sbyxzLHUpe3JldHVybiBuLmlzVHlwZU9ubHkhPT1vfHxuLnByb3BlcnR5TmFtZSE9PXN8fG4ubmFtZSE9PXU/cihmYShvLHMsdSksbik6bn1mdW5jdGlvbiBqMSgpe2xldCBuPWFlKDI4Mik7cmV0dXJuIG4uanNEb2M9dm9pZCAwLG59ZnVuY3Rpb24gUGMobil7bGV0IG89QigyODMpO3JldHVybiBvLmV4cHJlc3Npb249bixvLnRyYW5zZm9ybUZsYWdzfD1WKG8uZXhwcmVzc2lvbiksby50cmFuc2Zvcm1GbGFncyY9LTY3MTA4ODY1LG99ZnVuY3Rpb24gRjEobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKFBjKG8pLG4pOm59ZnVuY3Rpb24gQjEobil7cmV0dXJuIEIobil9ZnVuY3Rpb24gSWMobixvLHM9ITEpe2xldCB1PU5jKG4scz9vJiZhKCkucGFyZW50aGVzaXplTm9uQXJyYXlUeXBlT2ZQb3N0Zml4VHlwZShvKTpvKTtyZXR1cm4gdS5wb3N0Zml4PXMsdX1mdW5jdGlvbiBOYyhuLG8pe2xldCBzPUIobik7cmV0dXJuIHMudHlwZT1vLHN9ZnVuY3Rpb24gRXAobixvLHMpe3JldHVybiBvLnR5cGUhPT1zP3IoSWMobixzLG8ucG9zdGZpeCksbyk6b31mdW5jdGlvbiBVMShuLG8scyl7cmV0dXJuIG8udHlwZSE9PXM/cihOYyhuLHMpLG8pOm99ZnVuY3Rpb24gQXAobixvKXtsZXQgcz1hZSgzMjQpO3JldHVybiBzLnBhcmFtZXRlcnM9T2Uobikscy50eXBlPW8scy50cmFuc2Zvcm1GbGFncz1EZShzLnBhcmFtZXRlcnMpfChzLnR5cGU/MTowKSxzLmpzRG9jPXZvaWQgMCxzLmxvY2Fscz12b2lkIDAscy5uZXh0Q29udGFpbmVyPXZvaWQgMCxzLnR5cGVBcmd1bWVudHM9dm9pZCAwLHN9ZnVuY3Rpb24gcTEobixvLHMpe3JldHVybiBuLnBhcmFtZXRlcnMhPT1vfHxuLnR5cGUhPT1zP3IoQXAobyxzKSxuKTpufWZ1bmN0aW9uIGtwKG4sbz0hMSl7bGV0IHM9YWUoMzI5KTtyZXR1cm4gcy5qc0RvY1Byb3BlcnR5VGFncz1PZShuKSxzLmlzQXJyYXlUeXBlPW8sc31mdW5jdGlvbiB6MShuLG8scyl7cmV0dXJuIG4uanNEb2NQcm9wZXJ0eVRhZ3MhPT1vfHxuLmlzQXJyYXlUeXBlIT09cz9yKGtwKG8scyksbik6bn1mdW5jdGlvbiBEcChuKXtsZXQgbz1CKDMxNik7cmV0dXJuIG8udHlwZT1uLG99ZnVuY3Rpb24gVzEobixvKXtyZXR1cm4gbi50eXBlIT09bz9yKERwKG8pLG4pOm59ZnVuY3Rpb24gUHAobixvLHMpe2xldCB1PWFlKDMzMCk7cmV0dXJuIHUudHlwZVBhcmFtZXRlcnM9T2UobiksdS5wYXJhbWV0ZXJzPVkobyksdS50eXBlPXMsdS5qc0RvYz12b2lkIDAsdS5sb2NhbHM9dm9pZCAwLHUubmV4dENvbnRhaW5lcj12b2lkIDAsdX1mdW5jdGlvbiBWMShuLG8scyx1KXtyZXR1cm4gbi50eXBlUGFyYW1ldGVycyE9PW98fG4ucGFyYW1ldGVycyE9PXN8fG4udHlwZSE9PXU/cihQcChvLHMsdSksbik6bn1mdW5jdGlvbiBIcihuKXtsZXQgbz1BZihuLmtpbmQpO3JldHVybiBuLnRhZ05hbWUuZXNjYXBlZFRleHQ9PT1NbihvKT9uLnRhZ05hbWU6R2Uobyl9ZnVuY3Rpb24gQmkobixvLHMpe2xldCB1PUIobik7cmV0dXJuIHUudGFnTmFtZT1vLHUuY29tbWVudD1zLHV9ZnVuY3Rpb24gbW8obixvLHMpe2xldCB1PWFlKG4pO3JldHVybiB1LnRhZ05hbWU9byx1LmNvbW1lbnQ9cyx1fWZ1bmN0aW9uIGhvKG4sbyxzLHUpe2xldCBnPUJpKDM1MixuPz9HZShcInRlbXBsYXRlXCIpLHUpO3JldHVybiBnLmNvbnN0cmFpbnQ9byxnLnR5cGVQYXJhbWV0ZXJzPVkocyksZ31mdW5jdGlvbiBPcyhuLG89SHIobikscyx1LGcpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLmNvbnN0cmFpbnQhPT1zfHxuLnR5cGVQYXJhbWV0ZXJzIT09dXx8bi5jb21tZW50IT09Zz9yKGhvKG8scyx1LGcpLG4pOm59ZnVuY3Rpb24gTXMobixvLHMsdSl7bGV0IGc9bW8oMzUzLG4/P0dlKFwidHlwZWRlZlwiKSx1KTtyZXR1cm4gZy50eXBlRXhwcmVzc2lvbj1vLGcuZnVsbE5hbWU9cyxnLm5hbWU9SzAocyksZy5sb2NhbHM9dm9pZCAwLGcubmV4dENvbnRhaW5lcj12b2lkIDAsZ31mdW5jdGlvbiBJcChuLG89SHIobikscyx1LGcpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLnR5cGVFeHByZXNzaW9uIT09c3x8bi5mdWxsTmFtZSE9PXV8fG4uY29tbWVudCE9PWc/cihNcyhvLHMsdSxnKSxuKTpufWZ1bmN0aW9uIE9jKG4sbyxzLHUsZyxJKXtsZXQgVz1tbygzNDgsbj8/R2UoXCJwYXJhbVwiKSxJKTtyZXR1cm4gVy50eXBlRXhwcmVzc2lvbj11LFcubmFtZT1vLFcuaXNOYW1lRmlyc3Q9ISFnLFcuaXNCcmFja2V0ZWQ9cyxXfWZ1bmN0aW9uIE1jKG4sbz1IcihuKSxzLHUsZyxJLFcpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLm5hbWUhPT1zfHxuLmlzQnJhY2tldGVkIT09dXx8bi50eXBlRXhwcmVzc2lvbiE9PWd8fG4uaXNOYW1lRmlyc3QhPT1JfHxuLmNvbW1lbnQhPT1XP3IoT2MobyxzLHUsZyxJLFcpLG4pOm59ZnVuY3Rpb24gTnAobixvLHMsdSxnLEkpe2xldCBXPW1vKDM1NSxuPz9HZShcInByb3BcIiksSSk7cmV0dXJuIFcudHlwZUV4cHJlc3Npb249dSxXLm5hbWU9byxXLmlzTmFtZUZpcnN0PSEhZyxXLmlzQnJhY2tldGVkPXMsV31mdW5jdGlvbiBPcChuLG89SHIobikscyx1LGcsSSxXKXtyZXR1cm4gbi50YWdOYW1lIT09b3x8bi5uYW1lIT09c3x8bi5pc0JyYWNrZXRlZCE9PXV8fG4udHlwZUV4cHJlc3Npb24hPT1nfHxuLmlzTmFtZUZpcnN0IT09SXx8bi5jb21tZW50IT09Vz9yKE5wKG8scyx1LGcsSSxXKSxuKTpufWZ1bmN0aW9uIE1wKG4sbyxzLHUpe2xldCBnPW1vKDM0NSxuPz9HZShcImNhbGxiYWNrXCIpLHUpO3JldHVybiBnLnR5cGVFeHByZXNzaW9uPW8sZy5mdWxsTmFtZT1zLGcubmFtZT1LMChzKSxnLmxvY2Fscz12b2lkIDAsZy5uZXh0Q29udGFpbmVyPXZvaWQgMCxnfWZ1bmN0aW9uIEgxKG4sbz1IcihuKSxzLHUsZyl7cmV0dXJuIG4udGFnTmFtZSE9PW98fG4udHlwZUV4cHJlc3Npb24hPT1zfHxuLmZ1bGxOYW1lIT09dXx8bi5jb21tZW50IT09Zz9yKE1wKG8scyx1LGcpLG4pOm59ZnVuY3Rpb24gTGMobixvLHMpe2xldCB1PUJpKDM0NixuPz9HZShcIm92ZXJsb2FkXCIpLHMpO3JldHVybiB1LnR5cGVFeHByZXNzaW9uPW8sdX1mdW5jdGlvbiBHMShuLG89SHIobikscyx1KXtyZXR1cm4gbi50YWdOYW1lIT09b3x8bi50eXBlRXhwcmVzc2lvbiE9PXN8fG4uY29tbWVudCE9PXU/cihMYyhvLHMsdSksbik6bn1mdW5jdGlvbiBKYyhuLG8scyl7bGV0IHU9QmkoMzM1LG4/P0dlKFwiYXVnbWVudHNcIikscyk7cmV0dXJuIHUuY2xhc3M9byx1fWZ1bmN0aW9uIFgxKG4sbz1IcihuKSxzLHUpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLmNsYXNzIT09c3x8bi5jb21tZW50IT09dT9yKEpjKG8scyx1KSxuKTpufWZ1bmN0aW9uIExzKG4sbyxzKXtsZXQgdT1CaSgzMzYsbj8/R2UoXCJpbXBsZW1lbnRzXCIpLHMpO3JldHVybiB1LmNsYXNzPW8sdX1mdW5jdGlvbiBSYyhuLG8scyl7bGV0IHU9QmkoMzU0LG4/P0dlKFwic2VlXCIpLHMpO3JldHVybiB1Lm5hbWU9byx1fWZ1bmN0aW9uIHlvKG4sbyxzLHUpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLm5hbWUhPT1zfHxuLmNvbW1lbnQhPT11P3IoUmMobyxzLHUpLG4pOm59ZnVuY3Rpb24gTHAobil7bGV0IG89QigzMTcpO3JldHVybiBvLm5hbWU9bixvfWZ1bmN0aW9uIFdhKG4sbyl7cmV0dXJuIG4ubmFtZSE9PW8/cihMcChvKSxuKTpufWZ1bmN0aW9uIGdvKG4sbyl7bGV0IHM9QigzMTgpO3JldHVybiBzLmxlZnQ9bixzLnJpZ2h0PW8scy50cmFuc2Zvcm1GbGFnc3w9VihzLmxlZnQpfFYocy5yaWdodCksc31mdW5jdGlvbiAkMShuLG8scyl7cmV0dXJuIG4ubGVmdCE9PW98fG4ucmlnaHQhPT1zP3IoZ28obyxzKSxuKTpufWZ1bmN0aW9uIEpwKG4sbyl7bGV0IHM9QigzMzEpO3JldHVybiBzLm5hbWU9bixzLnRleHQ9byxzfWZ1bmN0aW9uIFExKG4sbyxzKXtyZXR1cm4gbi5uYW1lIT09bz9yKEpwKG8scyksbik6bn1mdW5jdGlvbiBScChuLG8pe2xldCBzPUIoMzMyKTtyZXR1cm4gcy5uYW1lPW4scy50ZXh0PW8sc31mdW5jdGlvbiBZMShuLG8scyl7cmV0dXJuIG4ubmFtZSE9PW8/cihScChvLHMpLG4pOm59ZnVuY3Rpb24gamMobixvKXtsZXQgcz1CKDMzMyk7cmV0dXJuIHMubmFtZT1uLHMudGV4dD1vLHN9ZnVuY3Rpb24gSzEobixvLHMpe3JldHVybiBuLm5hbWUhPT1vP3IoamMobyxzKSxuKTpufWZ1bmN0aW9uIFoxKG4sbz1IcihuKSxzLHUpe3JldHVybiBuLnRhZ05hbWUhPT1vfHxuLmNsYXNzIT09c3x8bi5jb21tZW50IT09dT9yKExzKG8scyx1KSxuKTpufWZ1bmN0aW9uIGpwKG4sbyxzKXtyZXR1cm4gQmkobixvPz9HZShBZihuKSkscyl9ZnVuY3Rpb24gZWgobixvLHM9SHIobyksdSl7cmV0dXJuIG8udGFnTmFtZSE9PXN8fG8uY29tbWVudCE9PXU/cihqcChuLHMsdSksbyk6b31mdW5jdGlvbiBGcChuLG8scyx1KXtsZXQgZz1CaShuLG8/P0dlKEFmKG4pKSx1KTtyZXR1cm4gZy50eXBlRXhwcmVzc2lvbj1zLGd9ZnVuY3Rpb24gdGgobixvLHM9SHIobyksdSxnKXtyZXR1cm4gby50YWdOYW1lIT09c3x8by50eXBlRXhwcmVzc2lvbiE9PXV8fG8uY29tbWVudCE9PWc/cihGcChuLHMsdSxnKSxvKTpvfWZ1bmN0aW9uIEJwKG4sbyl7cmV0dXJuIEJpKDMzNCxuLG8pfWZ1bmN0aW9uIHJoKG4sbyxzKXtyZXR1cm4gbi50YWdOYW1lIT09b3x8bi5jb21tZW50IT09cz9yKEJwKG8scyksbik6bn1mdW5jdGlvbiBVcChuLG8scyl7bGV0IHU9bW8oMzQ3LG4/P0dlKEFmKDM0NykpLHMpO3JldHVybiB1LnR5cGVFeHByZXNzaW9uPW8sdS5sb2NhbHM9dm9pZCAwLHUubmV4dENvbnRhaW5lcj12b2lkIDAsdX1mdW5jdGlvbiBuaChuLG89SHIobikscyx1KXtyZXR1cm4gbi50YWdOYW1lIT09b3x8bi50eXBlRXhwcmVzc2lvbiE9PXN8fG4uY29tbWVudCE9PXU/cihVcChvLHMsdSksbik6bn1mdW5jdGlvbiBxcChuKXtsZXQgbz1CKDMyOCk7cmV0dXJuIG8udGV4dD1uLG99ZnVuY3Rpb24gaWgobixvKXtyZXR1cm4gbi50ZXh0IT09bz9yKHFwKG8pLG4pOm59ZnVuY3Rpb24gSnMobixvKXtsZXQgcz1CKDMyNyk7cmV0dXJuIHMuY29tbWVudD1uLHMudGFncz1PZShvKSxzfWZ1bmN0aW9uIGFoKG4sbyxzKXtyZXR1cm4gbi5jb21tZW50IT09b3x8bi50YWdzIT09cz9yKEpzKG8scyksbik6bn1mdW5jdGlvbiBGYyhuLG8scyl7bGV0IHU9QigyODQpO3JldHVybiB1Lm9wZW5pbmdFbGVtZW50PW4sdS5jaGlsZHJlbj1ZKG8pLHUuY2xvc2luZ0VsZW1lbnQ9cyx1LnRyYW5zZm9ybUZsYWdzfD1WKHUub3BlbmluZ0VsZW1lbnQpfERlKHUuY2hpbGRyZW4pfFYodS5jbG9zaW5nRWxlbWVudCl8Mix1fWZ1bmN0aW9uIHpwKG4sbyxzLHUpe3JldHVybiBuLm9wZW5pbmdFbGVtZW50IT09b3x8bi5jaGlsZHJlbiE9PXN8fG4uY2xvc2luZ0VsZW1lbnQhPT11P3IoRmMobyxzLHUpLG4pOm59ZnVuY3Rpb24gV3AobixvLHMpe2xldCB1PUIoMjg1KTtyZXR1cm4gdS50YWdOYW1lPW4sdS50eXBlQXJndW1lbnRzPU9lKG8pLHUuYXR0cmlidXRlcz1zLHUudHJhbnNmb3JtRmxhZ3N8PVYodS50YWdOYW1lKXxEZSh1LnR5cGVBcmd1bWVudHMpfFYodS5hdHRyaWJ1dGVzKXwyLHUudHlwZUFyZ3VtZW50cyYmKHUudHJhbnNmb3JtRmxhZ3N8PTEpLHV9ZnVuY3Rpb24gUnMobixvLHMsdSl7cmV0dXJuIG4udGFnTmFtZSE9PW98fG4udHlwZUFyZ3VtZW50cyE9PXN8fG4uYXR0cmlidXRlcyE9PXU/cihXcChvLHMsdSksbik6bn1mdW5jdGlvbiBCYyhuLG8scyl7bGV0IHU9QigyODYpO3JldHVybiB1LnRhZ05hbWU9bix1LnR5cGVBcmd1bWVudHM9T2UobyksdS5hdHRyaWJ1dGVzPXMsdS50cmFuc2Zvcm1GbGFnc3w9Vih1LnRhZ05hbWUpfERlKHUudHlwZUFyZ3VtZW50cyl8Vih1LmF0dHJpYnV0ZXMpfDIsbyYmKHUudHJhbnNmb3JtRmxhZ3N8PTEpLHV9ZnVuY3Rpb24gb2gobixvLHMsdSl7cmV0dXJuIG4udGFnTmFtZSE9PW98fG4udHlwZUFyZ3VtZW50cyE9PXN8fG4uYXR0cmlidXRlcyE9PXU/cihCYyhvLHMsdSksbik6bn1mdW5jdGlvbiBWcChuKXtsZXQgbz1CKDI4Nyk7cmV0dXJuIG8udGFnTmFtZT1uLG8udHJhbnNmb3JtRmxhZ3N8PVYoby50YWdOYW1lKXwyLG99ZnVuY3Rpb24gc2gobixvKXtyZXR1cm4gbi50YWdOYW1lIT09bz9yKFZwKG8pLG4pOm59ZnVuY3Rpb24ganMobixvLHMpe2xldCB1PUIoMjg4KTtyZXR1cm4gdS5vcGVuaW5nRnJhZ21lbnQ9bix1LmNoaWxkcmVuPVkobyksdS5jbG9zaW5nRnJhZ21lbnQ9cyx1LnRyYW5zZm9ybUZsYWdzfD1WKHUub3BlbmluZ0ZyYWdtZW50KXxEZSh1LmNoaWxkcmVuKXxWKHUuY2xvc2luZ0ZyYWdtZW50KXwyLHV9ZnVuY3Rpb24gSHAobixvLHMsdSl7cmV0dXJuIG4ub3BlbmluZ0ZyYWdtZW50IT09b3x8bi5jaGlsZHJlbiE9PXN8fG4uY2xvc2luZ0ZyYWdtZW50IT09dT9yKGpzKG8scyx1KSxuKTpufWZ1bmN0aW9uIEZzKG4sbyl7bGV0IHM9QigxMik7cmV0dXJuIHMudGV4dD1uLHMuY29udGFpbnNPbmx5VHJpdmlhV2hpdGVTcGFjZXM9ISFvLHMudHJhbnNmb3JtRmxhZ3N8PTIsc31mdW5jdGlvbiBHcChuLG8scyl7cmV0dXJuIG4udGV4dCE9PW98fG4uY29udGFpbnNPbmx5VHJpdmlhV2hpdGVTcGFjZXMhPT1zP3IoRnMobyxzKSxuKTpufWZ1bmN0aW9uIFVjKCl7bGV0IG49QigyODkpO3JldHVybiBuLnRyYW5zZm9ybUZsYWdzfD0yLG59ZnVuY3Rpb24gd3IoKXtsZXQgbj1CKDI5MCk7cmV0dXJuIG4udHJhbnNmb3JtRmxhZ3N8PTIsbn1mdW5jdGlvbiBxYyhuLG8pe2xldCBzPWFlKDI5MSk7cmV0dXJuIHMubmFtZT1uLHMuaW5pdGlhbGl6ZXI9byxzLnRyYW5zZm9ybUZsYWdzfD1WKHMubmFtZSl8VihzLmluaXRpYWxpemVyKXwyLHN9ZnVuY3Rpb24gWHAobixvLHMpe3JldHVybiBuLm5hbWUhPT1vfHxuLmluaXRpYWxpemVyIT09cz9yKHFjKG8scyksbik6bn1mdW5jdGlvbiAkcChuKXtsZXQgbz1hZSgyOTIpO3JldHVybiBvLnByb3BlcnRpZXM9WShuKSxvLnRyYW5zZm9ybUZsYWdzfD1EZShvLnByb3BlcnRpZXMpfDIsb31mdW5jdGlvbiBRcChuLG8pe3JldHVybiBuLnByb3BlcnRpZXMhPT1vP3IoJHAobyksbik6bn1mdW5jdGlvbiBZcChuKXtsZXQgbz1CKDI5Myk7cmV0dXJuIG8uZXhwcmVzc2lvbj1uLG8udHJhbnNmb3JtRmxhZ3N8PVYoby5leHByZXNzaW9uKXwyLG99ZnVuY3Rpb24gX2gobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKFlwKG8pLG4pOm59ZnVuY3Rpb24gYm8obixvKXtsZXQgcz1CKDI5NCk7cmV0dXJuIHMuZG90RG90RG90VG9rZW49bixzLmV4cHJlc3Npb249byxzLnRyYW5zZm9ybUZsYWdzfD1WKHMuZG90RG90RG90VG9rZW4pfFYocy5leHByZXNzaW9uKXwyLHN9ZnVuY3Rpb24gY2gobixvKXtyZXR1cm4gbi5leHByZXNzaW9uIT09bz9yKGJvKG4uZG90RG90RG90VG9rZW4sbyksbik6bn1mdW5jdGlvbiBLcChuLG8pe2xldCBzPUIoMjk1KTtyZXR1cm4gcy5uYW1lc3BhY2U9bixzLm5hbWU9byxzLnRyYW5zZm9ybUZsYWdzfD1WKHMubmFtZXNwYWNlKXxWKHMubmFtZSl8MixzfWZ1bmN0aW9uIGxoKG4sbyxzKXtyZXR1cm4gbi5uYW1lc3BhY2UhPT1vfHxuLm5hbWUhPT1zP3IoS3AobyxzKSxuKTpufWZ1bmN0aW9uIFpwKG4sbyl7bGV0IHM9QigyOTYpO3JldHVybiBzLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25Gb3JEaXNhbGxvd2VkQ29tbWEobikscy5zdGF0ZW1lbnRzPVkobykscy50cmFuc2Zvcm1GbGFnc3w9VihzLmV4cHJlc3Npb24pfERlKHMuc3RhdGVtZW50cykscy5qc0RvYz12b2lkIDAsc31mdW5jdGlvbiB6YyhuLG8scyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW98fG4uc3RhdGVtZW50cyE9PXM/cihacChvLHMpLG4pOm59ZnVuY3Rpb24gVmEobil7bGV0IG89QigyOTcpO3JldHVybiBvLnN0YXRlbWVudHM9WShuKSxvLnRyYW5zZm9ybUZsYWdzPURlKG8uc3RhdGVtZW50cyksb31mdW5jdGlvbiB1aChuLG8pe3JldHVybiBuLnN0YXRlbWVudHMhPT1vP3IoVmEobyksbik6bn1mdW5jdGlvbiBCcyhuLG8pe2xldCBzPUIoMjk4KTtzd2l0Y2gocy50b2tlbj1uLHMudHlwZXM9WShvKSxzLnRyYW5zZm9ybUZsYWdzfD1EZShzLnR5cGVzKSxuKXtjYXNlIDk2OnMudHJhbnNmb3JtRmxhZ3N8PTEwMjQ7YnJlYWs7Y2FzZSAxMTk6cy50cmFuc2Zvcm1GbGFnc3w9MTticmVhaztkZWZhdWx0OnJldHVybiBOLmFzc2VydE5ldmVyKG4pfXJldHVybiBzfWZ1bmN0aW9uIGVmKG4sbyl7cmV0dXJuIG4udHlwZXMhPT1vP3IoQnMobi50b2tlbixvKSxuKTpufWZ1bmN0aW9uIHRmKG4sbyl7bGV0IHM9QigyOTkpO3JldHVybiBzLnZhcmlhYmxlRGVjbGFyYXRpb249dmYobikscy5ibG9jaz1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy52YXJpYWJsZURlY2xhcmF0aW9uKXxWKHMuYmxvY2spfChuPzA6NjQpLHMubG9jYWxzPXZvaWQgMCxzLm5leHRDb250YWluZXI9dm9pZCAwLHN9ZnVuY3Rpb24gdm8obixvLHMpe3JldHVybiBuLnZhcmlhYmxlRGVjbGFyYXRpb24hPT1vfHxuLmJsb2NrIT09cz9yKHRmKG8scyksbik6bn1mdW5jdGlvbiBVcyhuLG8pe2xldCBzPWFlKDMwMyk7cmV0dXJuIHMubmFtZT1YZShuKSxzLmluaXRpYWxpemVyPWEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uRm9yRGlzYWxsb3dlZENvbW1hKG8pLHMudHJhbnNmb3JtRmxhZ3N8PUluKHMubmFtZSl8VihzLmluaXRpYWxpemVyKSxzLm1vZGlmaWVycz12b2lkIDAscy5xdWVzdGlvblRva2VuPXZvaWQgMCxzLmV4Y2xhbWF0aW9uVG9rZW49dm9pZCAwLHMuanNEb2M9dm9pZCAwLHN9ZnVuY3Rpb24gcGgobixvLHMpe3JldHVybiBuLm5hbWUhPT1vfHxuLmluaXRpYWxpemVyIT09cz9maChVcyhvLHMpLG4pOm59ZnVuY3Rpb24gZmgobixvKXtyZXR1cm4gbiE9PW8mJihuLm1vZGlmaWVycz1vLm1vZGlmaWVycyxuLnF1ZXN0aW9uVG9rZW49by5xdWVzdGlvblRva2VuLG4uZXhjbGFtYXRpb25Ub2tlbj1vLmV4Y2xhbWF0aW9uVG9rZW4pLHIobixvKX1mdW5jdGlvbiBXYyhuLG8pe2xldCBzPWFlKDMwNCk7cmV0dXJuIHMubmFtZT1YZShuKSxzLm9iamVjdEFzc2lnbm1lbnRJbml0aWFsaXplcj1vJiZhKCkucGFyZW50aGVzaXplRXhwcmVzc2lvbkZvckRpc2FsbG93ZWRDb21tYShvKSxzLnRyYW5zZm9ybUZsYWdzfD1lXyhzLm5hbWUpfFYocy5vYmplY3RBc3NpZ25tZW50SW5pdGlhbGl6ZXIpfDEwMjQscy5lcXVhbHNUb2tlbj12b2lkIDAscy5tb2RpZmllcnM9dm9pZCAwLHMucXVlc3Rpb25Ub2tlbj12b2lkIDAscy5leGNsYW1hdGlvblRva2VuPXZvaWQgMCxzLmpzRG9jPXZvaWQgMCxzfWZ1bmN0aW9uIHJmKG4sbyxzKXtyZXR1cm4gbi5uYW1lIT09b3x8bi5vYmplY3RBc3NpZ25tZW50SW5pdGlhbGl6ZXIhPT1zP25mKFdjKG8scyksbik6bn1mdW5jdGlvbiBuZihuLG8pe3JldHVybiBuIT09byYmKG4ubW9kaWZpZXJzPW8ubW9kaWZpZXJzLG4ucXVlc3Rpb25Ub2tlbj1vLnF1ZXN0aW9uVG9rZW4sbi5leGNsYW1hdGlvblRva2VuPW8uZXhjbGFtYXRpb25Ub2tlbixuLmVxdWFsc1Rva2VuPW8uZXF1YWxzVG9rZW4pLHIobixvKX1mdW5jdGlvbiBkYShuKXtsZXQgbz1hZSgzMDUpO3JldHVybiBvLmV4cHJlc3Npb249YSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25Gb3JEaXNhbGxvd2VkQ29tbWEobiksby50cmFuc2Zvcm1GbGFnc3w9VihvLmV4cHJlc3Npb24pfDEyOHw2NTUzNixvLmpzRG9jPXZvaWQgMCxvfWZ1bmN0aW9uIGRoKG4sbyl7cmV0dXJuIG4uZXhwcmVzc2lvbiE9PW8/cihkYShvKSxuKTpufWZ1bmN0aW9uIGFmKG4sbyl7bGV0IHM9YWUoMzA2KTtyZXR1cm4gcy5uYW1lPVhlKG4pLHMuaW5pdGlhbGl6ZXI9byYmYSgpLnBhcmVudGhlc2l6ZUV4cHJlc3Npb25Gb3JEaXNhbGxvd2VkQ29tbWEobykscy50cmFuc2Zvcm1GbGFnc3w9VihzLm5hbWUpfFYocy5pbml0aWFsaXplcil8MSxzLmpzRG9jPXZvaWQgMCxzfWZ1bmN0aW9uIG1oKG4sbyxzKXtyZXR1cm4gbi5uYW1lIT09b3x8bi5pbml0aWFsaXplciE9PXM/cihhZihvLHMpLG4pOm59ZnVuY3Rpb24gaGgobixvLHMpe2xldCB1PXQuY3JlYXRlQmFzZVNvdXJjZUZpbGVOb2RlKDMxMik7cmV0dXJuIHUuc3RhdGVtZW50cz1ZKG4pLHUuZW5kT2ZGaWxlVG9rZW49byx1LmZsYWdzfD1zLHUudGV4dD1cIlwiLHUuZmlsZU5hbWU9XCJcIix1LnBhdGg9XCJcIix1LnJlc29sdmVkUGF0aD1cIlwiLHUub3JpZ2luYWxGaWxlTmFtZT1cIlwiLHUubGFuZ3VhZ2VWZXJzaW9uPTAsdS5sYW5ndWFnZVZhcmlhbnQ9MCx1LnNjcmlwdEtpbmQ9MCx1LmlzRGVjbGFyYXRpb25GaWxlPSExLHUuaGFzTm9EZWZhdWx0TGliPSExLHUudHJhbnNmb3JtRmxhZ3N8PURlKHUuc3RhdGVtZW50cyl8Vih1LmVuZE9mRmlsZVRva2VuKSx1LmxvY2Fscz12b2lkIDAsdS5uZXh0Q29udGFpbmVyPXZvaWQgMCx1LmVuZEZsb3dOb2RlPXZvaWQgMCx1Lm5vZGVDb3VudD0wLHUuaWRlbnRpZmllckNvdW50PTAsdS5zeW1ib2xDb3VudD0wLHUucGFyc2VEaWFnbm9zdGljcz12b2lkIDAsdS5iaW5kRGlhZ25vc3RpY3M9dm9pZCAwLHUuYmluZFN1Z2dlc3Rpb25EaWFnbm9zdGljcz12b2lkIDAsdS5saW5lTWFwPXZvaWQgMCx1LmV4dGVybmFsTW9kdWxlSW5kaWNhdG9yPXZvaWQgMCx1LnNldEV4dGVybmFsTW9kdWxlSW5kaWNhdG9yPXZvaWQgMCx1LnByYWdtYXM9dm9pZCAwLHUuY2hlY2tKc0RpcmVjdGl2ZT12b2lkIDAsdS5yZWZlcmVuY2VkRmlsZXM9dm9pZCAwLHUudHlwZVJlZmVyZW5jZURpcmVjdGl2ZXM9dm9pZCAwLHUubGliUmVmZXJlbmNlRGlyZWN0aXZlcz12b2lkIDAsdS5hbWREZXBlbmRlbmNpZXM9dm9pZCAwLHUuY29tbWVudERpcmVjdGl2ZXM9dm9pZCAwLHUuaWRlbnRpZmllcnM9dm9pZCAwLHUucGFja2FnZUpzb25Mb2NhdGlvbnM9dm9pZCAwLHUucGFja2FnZUpzb25TY29wZT12b2lkIDAsdS5pbXBvcnRzPXZvaWQgMCx1Lm1vZHVsZUF1Z21lbnRhdGlvbnM9dm9pZCAwLHUuYW1iaWVudE1vZHVsZU5hbWVzPXZvaWQgMCx1LnJlc29sdmVkTW9kdWxlcz12b2lkIDAsdS5jbGFzc2lmaWFibGVOYW1lcz12b2lkIDAsdS5pbXBsaWVkTm9kZUZvcm1hdD12b2lkIDAsdX1mdW5jdGlvbiBWYyhuKXtsZXQgbz1PYmplY3QuY3JlYXRlKG4ucmVkaXJlY3RUYXJnZXQpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhvLHtpZDp7Z2V0KCl7cmV0dXJuIHRoaXMucmVkaXJlY3RJbmZvLnJlZGlyZWN0VGFyZ2V0LmlkfSxzZXQocyl7dGhpcy5yZWRpcmVjdEluZm8ucmVkaXJlY3RUYXJnZXQuaWQ9c319LHN5bWJvbDp7Z2V0KCl7cmV0dXJuIHRoaXMucmVkaXJlY3RJbmZvLnJlZGlyZWN0VGFyZ2V0LnN5bWJvbH0sc2V0KHMpe3RoaXMucmVkaXJlY3RJbmZvLnJlZGlyZWN0VGFyZ2V0LnN5bWJvbD1zfX19KSxvLnJlZGlyZWN0SW5mbz1uLG99ZnVuY3Rpb24gb2Yobil7bGV0IG89VmMobi5yZWRpcmVjdEluZm8pO3JldHVybiBvLmZsYWdzfD1uLmZsYWdzJi0xNyxvLmZpbGVOYW1lPW4uZmlsZU5hbWUsby5wYXRoPW4ucGF0aCxvLnJlc29sdmVkUGF0aD1uLnJlc29sdmVkUGF0aCxvLm9yaWdpbmFsRmlsZU5hbWU9bi5vcmlnaW5hbEZpbGVOYW1lLG8ucGFja2FnZUpzb25Mb2NhdGlvbnM9bi5wYWNrYWdlSnNvbkxvY2F0aW9ucyxvLnBhY2thZ2VKc29uU2NvcGU9bi5wYWNrYWdlSnNvblNjb3BlLG8uZW1pdE5vZGU9dm9pZCAwLG99ZnVuY3Rpb24gWG4obil7bGV0IG89dC5jcmVhdGVCYXNlU291cmNlRmlsZU5vZGUoMzEyKTtvLmZsYWdzfD1uLmZsYWdzJi0xNztmb3IobGV0IHMgaW4gbilpZighKFFyKG8scyl8fCFRcihuLHMpKSl7aWYocz09PVwiZW1pdE5vZGVcIil7by5lbWl0Tm9kZT12b2lkIDA7Y29udGludWV9b1tzXT1uW3NdfXJldHVybiBvfWZ1bmN0aW9uIEhjKG4pe2xldCBvPW4ucmVkaXJlY3RJbmZvP29mKG4pOlhuKG4pO3JldHVybiBYcihvLG4pLG99ZnVuY3Rpb24geWgobixvLHMsdSxnLEksVyl7bGV0IGRlPUhjKG4pO3JldHVybiBkZS5zdGF0ZW1lbnRzPVkobyksZGUuaXNEZWNsYXJhdGlvbkZpbGU9cyxkZS5yZWZlcmVuY2VkRmlsZXM9dSxkZS50eXBlUmVmZXJlbmNlRGlyZWN0aXZlcz1nLGRlLmhhc05vRGVmYXVsdExpYj1JLGRlLmxpYlJlZmVyZW5jZURpcmVjdGl2ZXM9VyxkZS50cmFuc2Zvcm1GbGFncz1EZShkZS5zdGF0ZW1lbnRzKXxWKGRlLmVuZE9mRmlsZVRva2VuKSxkZX1mdW5jdGlvbiBnaChuLG8scz1uLmlzRGVjbGFyYXRpb25GaWxlLHU9bi5yZWZlcmVuY2VkRmlsZXMsZz1uLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzLEk9bi5oYXNOb0RlZmF1bHRMaWIsVz1uLmxpYlJlZmVyZW5jZURpcmVjdGl2ZXMpe3JldHVybiBuLnN0YXRlbWVudHMhPT1vfHxuLmlzRGVjbGFyYXRpb25GaWxlIT09c3x8bi5yZWZlcmVuY2VkRmlsZXMhPT11fHxuLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzIT09Z3x8bi5oYXNOb0RlZmF1bHRMaWIhPT1JfHxuLmxpYlJlZmVyZW5jZURpcmVjdGl2ZXMhPT1XP3IoeWgobixvLHMsdSxnLEksVyksbik6bn1mdW5jdGlvbiBzZihuLG89JGUpe2xldCBzPUIoMzEzKTtyZXR1cm4gcy5wcmVwZW5kcz1vLHMuc291cmNlRmlsZXM9bixzLnN5bnRoZXRpY0ZpbGVSZWZlcmVuY2VzPXZvaWQgMCxzLnN5bnRoZXRpY1R5cGVSZWZlcmVuY2VzPXZvaWQgMCxzLnN5bnRoZXRpY0xpYlJlZmVyZW5jZXM9dm9pZCAwLHMuaGFzTm9EZWZhdWx0TGliPXZvaWQgMCxzfWZ1bmN0aW9uIF9mKG4sbyxzPSRlKXtyZXR1cm4gbi5zb3VyY2VGaWxlcyE9PW98fG4ucHJlcGVuZHMhPT1zP3Ioc2YobyxzKSxuKTpufWZ1bmN0aW9uIEdjKG4sbyxzKXtsZXQgdT1CKDMxNCk7cmV0dXJuIHUucHJvbG9ndWVzPW4sdS5zeW50aGV0aWNSZWZlcmVuY2VzPW8sdS50ZXh0cz1zLHUuZmlsZU5hbWU9XCJcIix1LnRleHQ9XCJcIix1LnJlZmVyZW5jZWRGaWxlcz0kZSx1LmxpYlJlZmVyZW5jZURpcmVjdGl2ZXM9JGUsdS5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbj1nPT50byh1LGcpLHV9ZnVuY3Rpb24gWGMobixvKXtsZXQgcz1CKG4pO3JldHVybiBzLmRhdGE9byxzfWZ1bmN0aW9uIGJoKG4pe3JldHVybiBYYygzMDcsbil9ZnVuY3Rpb24gY2YobixvKXtsZXQgcz1YYygzMDgsbik7cmV0dXJuIHMudGV4dHM9byxzfWZ1bmN0aW9uIHZoKG4sbyl7cmV0dXJuIFhjKG8/MzEwOjMwOSxuKX1mdW5jdGlvbiBUaChuKXtsZXQgbz1CKDMxMSk7cmV0dXJuIG8uZGF0YT1uLmRhdGEsby5zZWN0aW9uPW4sb31mdW5jdGlvbiBxcygpe2xldCBuPUIoMzE1KTtyZXR1cm4gbi5qYXZhc2NyaXB0VGV4dD1cIlwiLG4uZGVjbGFyYXRpb25UZXh0PVwiXCIsbn1mdW5jdGlvbiBsZihuLG89ITEscyl7bGV0IHU9QigyMzcpO3JldHVybiB1LnR5cGU9bix1LmlzU3ByZWFkPW8sdS50dXBsZU5hbWVTb3VyY2U9cyx1fWZ1bmN0aW9uIFNoKG4pe2xldCBvPUIoMzU4KTtyZXR1cm4gby5fY2hpbGRyZW49bixvfWZ1bmN0aW9uIHhoKG4pe2xldCBvPUIoMzU5KTtyZXR1cm4gby5vcmlnaW5hbD1uLFZlKG8sbiksb31mdW5jdGlvbiB1ZihuLG8pe2xldCBzPUIoMzYwKTtyZXR1cm4gcy5leHByZXNzaW9uPW4scy5vcmlnaW5hbD1vLHMudHJhbnNmb3JtRmxhZ3N8PVYocy5leHByZXNzaW9uKXwxLFZlKHMsbyksc31mdW5jdGlvbiBwZihuLG8pe3JldHVybiBuLmV4cHJlc3Npb24hPT1vP3IodWYobyxuLm9yaWdpbmFsKSxuKTpufWZ1bmN0aW9uIHdoKG4pe2lmKFRhKG4pJiYhVGwobikmJiFuLm9yaWdpbmFsJiYhbi5lbWl0Tm9kZSYmIW4uaWQpe2lmKEZfKG4pKXJldHVybiBuLmVsZW1lbnRzO2lmKEN0KG4pJiZVeChuLm9wZXJhdG9yVG9rZW4pKXJldHVybltuLmxlZnQsbi5yaWdodF19cmV0dXJuIG59ZnVuY3Rpb24genMobil7bGV0IG89QigzNjEpO3JldHVybiBvLmVsZW1lbnRzPVkoU3Yobix3aCkpLG8udHJhbnNmb3JtRmxhZ3N8PURlKG8uZWxlbWVudHMpLG99ZnVuY3Rpb24gZmYobixvKXtyZXR1cm4gbi5lbGVtZW50cyE9PW8/cih6cyhvKSxuKTpufWZ1bmN0aW9uICRjKG4sbyl7bGV0IHM9QigzNjIpO3JldHVybiBzLmV4cHJlc3Npb249bixzLnRoaXNBcmc9byxzLnRyYW5zZm9ybUZsYWdzfD1WKHMuZXhwcmVzc2lvbil8VihzLnRoaXNBcmcpLHN9ZnVuY3Rpb24gQ2gobixvLHMpe3JldHVybiBuLmV4cHJlc3Npb24hPT1vfHxuLnRoaXNBcmchPT1zP3IoJGMobyxzKSxuKTpufWZ1bmN0aW9uIEVoKG4pe2xldCBvPW9yKG4uZXNjYXBlZFRleHQpO3JldHVybiBvLmZsYWdzfD1uLmZsYWdzJi0xNyxvLnRyYW5zZm9ybUZsYWdzPW4udHJhbnNmb3JtRmxhZ3MsWHIobyxuKSxzZXRJZGVudGlmaWVyQXV0b0dlbmVyYXRlKG8sey4uLm4uZW1pdE5vZGUuYXV0b0dlbmVyYXRlfSksb31mdW5jdGlvbiBkZihuKXtsZXQgbz1vcihuLmVzY2FwZWRUZXh0KTtvLmZsYWdzfD1uLmZsYWdzJi0xNyxvLmpzRG9jPW4uanNEb2Msby5mbG93Tm9kZT1uLmZsb3dOb2RlLG8uc3ltYm9sPW4uc3ltYm9sLG8udHJhbnNmb3JtRmxhZ3M9bi50cmFuc2Zvcm1GbGFncyxYcihvLG4pO2xldCBzPWdldElkZW50aWZpZXJUeXBlQXJndW1lbnRzKG4pO3JldHVybiBzJiZzZXRJZGVudGlmaWVyVHlwZUFyZ3VtZW50cyhvLHMpLG99ZnVuY3Rpb24gbWYobil7bGV0IG89U24obi5lc2NhcGVkVGV4dCk7cmV0dXJuIG8uZmxhZ3N8PW4uZmxhZ3MmLTE3LG8udHJhbnNmb3JtRmxhZ3M9bi50cmFuc2Zvcm1GbGFncyxYcihvLG4pLHNldElkZW50aWZpZXJBdXRvR2VuZXJhdGUobyx7Li4ubi5lbWl0Tm9kZS5hdXRvR2VuZXJhdGV9KSxvfWZ1bmN0aW9uIEFoKG4pe2xldCBvPVNuKG4uZXNjYXBlZFRleHQpO3JldHVybiBvLmZsYWdzfD1uLmZsYWdzJi0xNyxvLnRyYW5zZm9ybUZsYWdzPW4udHJhbnNmb3JtRmxhZ3MsWHIobyxuKSxvfWZ1bmN0aW9uIFFjKG4pe2lmKG49PT12b2lkIDApcmV0dXJuIG47aWYoaWkobikpcmV0dXJuIEhjKG4pO2lmKHdhKG4pKXJldHVybiBFaChuKTtpZihFZShuKSlyZXR1cm4gZGYobik7aWYoTWcobikpcmV0dXJuIG1mKG4pO2lmKGpyKG4pKXJldHVybiBBaChuKTtsZXQgbz1xbChuLmtpbmQpP3QuY3JlYXRlQmFzZU5vZGUobi5raW5kKTp0LmNyZWF0ZUJhc2VUb2tlbk5vZGUobi5raW5kKTtvLmZsYWdzfD1uLmZsYWdzJi0xNyxvLnRyYW5zZm9ybUZsYWdzPW4udHJhbnNmb3JtRmxhZ3MsWHIobyxuKTtmb3IobGV0IHMgaW4gbilRcihvLHMpfHwhUXIobixzKXx8KG9bc109bltzXSk7cmV0dXJuIG99ZnVuY3Rpb24ga2gobixvLHMpe3JldHVybiBmbyhaXyh2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbz9bb106W10sdm9pZCAwLHVhKG4sITApKSx2b2lkIDAscz9bc106W10pfWZ1bmN0aW9uIERoKG4sbyxzKXtyZXR1cm4gZm8oZWModm9pZCAwLHZvaWQgMCxvP1tvXTpbXSx2b2lkIDAsdm9pZCAwLHVhKG4sITApKSx2b2lkIDAscz9bc106W10pfWZ1bmN0aW9uIG1hKCl7cmV0dXJuIHJjKFplKFwiMFwiKSl9ZnVuY3Rpb24gUGgobil7cmV0dXJuIFBzKHZvaWQgMCwhMSxuKX1mdW5jdGlvbiBJaChuKXtyZXR1cm4ga2Modm9pZCAwLCExLE5zKFtmYSghMSx2b2lkIDAsbildKSl9ZnVuY3Rpb24gTmgobixvKXtyZXR1cm4gbz09PVwibnVsbFwiP3VlLmNyZWF0ZVN0cmljdEVxdWFsaXR5KG4sZnIoKSk6bz09PVwidW5kZWZpbmVkXCI/dWUuY3JlYXRlU3RyaWN0RXF1YWxpdHkobixtYSgpKTp1ZS5jcmVhdGVTdHJpY3RFcXVhbGl0eSh2cyhuKSxpdChvKSl9ZnVuY3Rpb24gT2gobixvKXtyZXR1cm4gbz09PVwibnVsbFwiP3VlLmNyZWF0ZVN0cmljdEluZXF1YWxpdHkobixmcigpKTpvPT09XCJ1bmRlZmluZWRcIj91ZS5jcmVhdGVTdHJpY3RJbmVxdWFsaXR5KG4sbWEoKSk6dWUuY3JlYXRlU3RyaWN0SW5lcXVhbGl0eSh2cyhuKSxpdChvKSl9ZnVuY3Rpb24gaGEobixvLHMpe3JldHVybiB5MChuKT96cihocyhuLHZvaWQgMCxvKSx2b2lkIDAsdm9pZCAwLHMpOmZvKE1pKG4sbyksdm9pZCAwLHMpfWZ1bmN0aW9uIE1oKG4sbyxzKXtyZXR1cm4gaGEobixcImJpbmRcIixbbywuLi5zXSl9ZnVuY3Rpb24gV3MobixvLHMpe3JldHVybiBoYShuLFwiY2FsbFwiLFtvLC4uLnNdKX1mdW5jdGlvbiBMaChuLG8scyl7cmV0dXJuIGhhKG4sXCJhcHBseVwiLFtvLHNdKX1mdW5jdGlvbiBIYShuLG8scyl7cmV0dXJuIGhhKEdlKG4pLG8scyl9ZnVuY3Rpb24gSmgobixvKXtyZXR1cm4gaGEobixcInNsaWNlXCIsbz09PXZvaWQgMD9bXTpbQ3IobyldKX1mdW5jdGlvbiBSaChuLG8pe3JldHVybiBoYShuLFwiY29uY2F0XCIsbyl9ZnVuY3Rpb24gaGYobixvLHMpe3JldHVybiBIYShcIk9iamVjdFwiLFwiZGVmaW5lUHJvcGVydHlcIixbbixDcihvKSxzXSl9ZnVuY3Rpb24gamgobixvKXtyZXR1cm4gSGEoXCJPYmplY3RcIixcImdldE93blByb3BlcnR5RGVzY3JpcHRvclwiLFtuLENyKG8pXSl9ZnVuY3Rpb24gRmgobixvLHMpe3JldHVybiBIYShcIlJlZmxlY3RcIixcImdldFwiLHM/W24sbyxzXTpbbixvXSl9ZnVuY3Rpb24gQmgobixvLHMsdSl7cmV0dXJuIEhhKFwiUmVmbGVjdFwiLFwic2V0XCIsdT9bbixvLHMsdV06W24sbyxzXSl9ZnVuY3Rpb24geWEobixvLHMpe3JldHVybiBzPyhuLnB1c2goVXMobyxzKSksITApOiExfWZ1bmN0aW9uIHlmKG4sbyl7bGV0IHM9W107eWEocyxcImVudW1lcmFibGVcIixDcihuLmVudW1lcmFibGUpKSx5YShzLFwiY29uZmlndXJhYmxlXCIsQ3Iobi5jb25maWd1cmFibGUpKTtsZXQgdT15YShzLFwid3JpdGFibGVcIixDcihuLndyaXRhYmxlKSk7dT15YShzLFwidmFsdWVcIixuLnZhbHVlKXx8dTtsZXQgZz15YShzLFwiZ2V0XCIsbi5nZXQpO3JldHVybiBnPXlhKHMsXCJzZXRcIixuLnNldCl8fGcsTi5hc3NlcnQoISh1JiZnKSxcIkEgUHJvcGVydHlEZXNjcmlwdG9yIG1heSBub3QgYmUgYm90aCBhbiBhY2Nlc3NvciBkZXNjcmlwdG9yIGFuZCBhIGRhdGEgZGVzY3JpcHRvci5cIiksZHMocywhbyl9ZnVuY3Rpb24gZ2YobixvKXtzd2l0Y2gobi5raW5kKXtjYXNlIDIxNzpyZXR1cm4gT3UobixvKTtjYXNlIDIxNjpyZXR1cm4gTnUobixuLnR5cGUsbyk7Y2FzZSAyMzQ6cmV0dXJuIFd1KG4sbyxuLnR5cGUpO2Nhc2UgMjM4OnJldHVybiBEbihuLG8sbi50eXBlKTtjYXNlIDIzNTpyZXR1cm4gVnUobixvKTtjYXNlIDM2MDpyZXR1cm4gcGYobixvKX19ZnVuY3Rpb24gYyhuKXtyZXR1cm4gaXMobikmJlRhKG4pJiZUYShnZXRTb3VyY2VNYXBSYW5nZShuKSkmJlRhKGdldENvbW1lbnRSYW5nZShuKSkmJiFtdChnZXRTeW50aGV0aWNMZWFkaW5nQ29tbWVudHMobikpJiYhbXQoZ2V0U3ludGhldGljVHJhaWxpbmdDb21tZW50cyhuKSl9ZnVuY3Rpb24gbShuLG8scz0xNSl7cmV0dXJuIG4mJlJtKG4scykmJiFjKG4pP2dmKG4sbShuLmV4cHJlc3Npb24sbykpOm99ZnVuY3Rpb24gYihuLG8scyl7aWYoIW8pcmV0dXJuIG47bGV0IHU9X3AobyxvLmxhYmVsLHU4KG8uc3RhdGVtZW50KT9iKG4sby5zdGF0ZW1lbnQpOm4pO3JldHVybiBzJiZzKG8pLHV9ZnVuY3Rpb24gdyhuLG8pe2xldCBzPUdsKG4pO3N3aXRjaChzLmtpbmQpe2Nhc2UgODA6cmV0dXJuIG87Y2FzZSAxMTA6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpyZXR1cm4hMTtjYXNlIDIwOTpyZXR1cm4gcy5lbGVtZW50cy5sZW5ndGghPT0wO2Nhc2UgMjEwOnJldHVybiBzLnByb3BlcnRpZXMubGVuZ3RoPjA7ZGVmYXVsdDpyZXR1cm4hMH19ZnVuY3Rpb24gQShuLG8scyx1PSExKXtsZXQgZz1scyhuLDE1KSxJLFc7cmV0dXJuIHlkKGcpPyhJPVV0KCksVz1nKTpVZihnKT8oST1VdCgpLFc9cyE9PXZvaWQgMCYmczwyP1ZlKEdlKFwiX3N1cGVyXCIpLGcpOmcpOnRpKGcpJjgxOTI/KEk9bWEoKSxXPWEoKS5wYXJlbnRoZXNpemVMZWZ0U2lkZU9mQWNjZXNzKGcsITEpKTpCcihnKT93KGcuZXhwcmVzc2lvbix1KT8oST1HdChvKSxXPU1pKFZlKHVlLmNyZWF0ZUFzc2lnbm1lbnQoSSxnLmV4cHJlc3Npb24pLGcuZXhwcmVzc2lvbiksZy5uYW1lKSxWZShXLGcpKTooST1nLmV4cHJlc3Npb24sVz1nKTpSYShnKT93KGcuZXhwcmVzc2lvbix1KT8oST1HdChvKSxXPVlfKFZlKHVlLmNyZWF0ZUFzc2lnbm1lbnQoSSxnLmV4cHJlc3Npb24pLGcuZXhwcmVzc2lvbiksZy5hcmd1bWVudEV4cHJlc3Npb24pLFZlKFcsZykpOihJPWcuZXhwcmVzc2lvbixXPWcpOihJPW1hKCksVz1hKCkucGFyZW50aGVzaXplTGVmdFNpZGVPZkFjY2VzcyhuLCExKSkse3RhcmdldDpXLHRoaXNBcmc6SX19ZnVuY3Rpb24gUihuLG8pe3JldHVybiBNaShLXyhkcyhbQ24odm9pZCAwLFwidmFsdWVcIixbQm4odm9pZCAwLHZvaWQgMCxuLHZvaWQgMCx2b2lkIDAsdm9pZCAwKV0sdWEoW0VzKG8pXSkpXSkpLFwidmFsdWVcIil9ZnVuY3Rpb24gdGUobil7cmV0dXJuIG4ubGVuZ3RoPjEwP3pzKG4pOkpkKG4sdWUuY3JlYXRlQ29tbWEpfWZ1bmN0aW9uIGxlKG4sbyxzLHU9MCxnKXtsZXQgST1nP24mJllkKG4pOkJsKG4pO2lmKEkmJkVlKEkpJiYhd2EoSSkpe2xldCBXPVhpKFZlKFFjKEkpLEkpLEkucGFyZW50KTtyZXR1cm4gdXw9dGkoSSksc3x8KHV8PTk2KSxvfHwodXw9MzA3MiksdSYmc2V0RW1pdEZsYWdzKFcsdSksV31yZXR1cm4gVG4obil9ZnVuY3Rpb24gbmUobixvLHMpe3JldHVybiBsZShuLG8scyw5ODMwNCl9ZnVuY3Rpb24gaWUobixvLHMsdSl7cmV0dXJuIGxlKG4sbyxzLDMyNzY4LHUpfWZ1bmN0aW9uIHZlKG4sbyxzKXtyZXR1cm4gbGUobixvLHMsMTYzODQpfWZ1bmN0aW9uIEhlKG4sbyxzKXtyZXR1cm4gbGUobixvLHMpfWZ1bmN0aW9uIEJlKG4sbyxzLHUpe2xldCBnPU1pKG4sVGEobyk/bzpRYyhvKSk7VmUoZyxvKTtsZXQgST0wO3JldHVybiB1fHwoSXw9OTYpLHN8fChJfD0zMDcyKSxJJiZzZXRFbWl0RmxhZ3MoZyxJKSxnfWZ1bmN0aW9uIFVlKG4sbyxzLHUpe3JldHVybiBuJiZncihvLDEpP0JlKG4sbGUobykscyx1KTp2ZShvLHMsdSl9ZnVuY3Rpb24gUnQobixvLHMsdSl7bGV0IGc9bWkobixvLDAscyk7cmV0dXJuIGhpKG4sbyxnLHUpfWZ1bmN0aW9uIEdyKG4pe3JldHVybiBtbihuLmV4cHJlc3Npb24pJiZuLmV4cHJlc3Npb24udGV4dD09PVwidXNlIHN0cmljdFwifWZ1bmN0aW9uIGRpKCl7cmV0dXJuIGptKEVzKGl0KFwidXNlIHN0cmljdFwiKSkpfWZ1bmN0aW9uIG1pKG4sbyxzPTAsdSl7Ti5hc3NlcnQoby5sZW5ndGg9PT0wLFwiUHJvbG9ndWUgZGlyZWN0aXZlcyBzaG91bGQgYmUgYXQgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiB0aGUgdGFyZ2V0IHN0YXRlbWVudHMgYXJyYXlcIik7bGV0IGc9ITEsST1uLmxlbmd0aDtmb3IoO3M8STspe2xldCBXPW5bc107aWYoRWEoVykpR3IoVykmJihnPSEwKSxvLnB1c2goVyk7ZWxzZSBicmVhaztzKyt9cmV0dXJuIHUmJiFnJiZvLnB1c2goZGkoKSksc31mdW5jdGlvbiBoaShuLG8scyx1LGc9SXYpe2xldCBJPW4ubGVuZ3RoO2Zvcig7cyE9PXZvaWQgMCYmczxJOyl7bGV0IFc9bltzXTtpZih0aShXKSYyMDk3MTUyJiZnKFcpKXh0KG8sdT92aXNpdE5vZGUoVyx1LFQzKTpXKTtlbHNlIGJyZWFrO3MrK31yZXR1cm4gc31mdW5jdGlvbiBVaShuKXtyZXR1cm4gUDgobik/bjpWZShZKFtkaSgpLC4uLm5dKSxuKX1mdW5jdGlvbiBnYShuKXtyZXR1cm4gTi5hc3NlcnQoc28obixTMyksXCJDYW5ub3QgbGlmdCBub2RlcyB0byBhIEJsb2NrLlwiKSxMZChuKXx8dWEobil9ZnVuY3Rpb24gYmEobixvLHMpe2xldCB1PXM7Zm9yKDt1PG4ubGVuZ3RoJiZvKG5bdV0pOyl1Kys7cmV0dXJuIHV9ZnVuY3Rpb24gVWgobixvKXtpZighbXQobykpcmV0dXJuIG47bGV0IHM9YmEobixFYSwwKSx1PWJhKG4sdzAscyksZz1iYShuLEMwLHUpLEk9YmEobyxFYSwwKSxXPWJhKG8sdzAsSSksZGU9YmEobyxDMCxXKSxXZT1iYShvLHVtLGRlKTtOLmFzc2VydChXZT09PW8ubGVuZ3RoLFwiRXhwZWN0ZWQgZGVjbGFyYXRpb25zIHRvIGJlIHZhbGlkIHN0YW5kYXJkIG9yIGN1c3RvbSBwcm9sb2d1ZXNcIik7bGV0IEVyPXZhKG4pP24uc2xpY2UoKTpuO2lmKFdlPmRlJiZFci5zcGxpY2UoZywwLC4uLm8uc2xpY2UoZGUsV2UpKSxkZT5XJiZFci5zcGxpY2UodSwwLC4uLm8uc2xpY2UoVyxkZSkpLFc+SSYmRXIuc3BsaWNlKHMsMCwuLi5vLnNsaWNlKEksVykpLEk+MClpZihzPT09MClFci5zcGxpY2UoMCwwLC4uLm8uc2xpY2UoMCxJKSk7ZWxzZXtsZXQgJG49bmV3IE1hcDtmb3IobGV0IHlpPTA7eWk8czt5aSsrKXtsZXQgVnM9blt5aV07JG4uc2V0KFZzLmV4cHJlc3Npb24udGV4dCwhMCl9Zm9yKGxldCB5aT1JLTE7eWk+PTA7eWktLSl7bGV0IFZzPW9beWldOyRuLmhhcyhWcy5leHByZXNzaW9uLnRleHQpfHxFci51bnNoaWZ0KFZzKX19cmV0dXJuIHZhKG4pP1ZlKFkoRXIsbi5oYXNUcmFpbGluZ0NvbW1hKSxuKTpufWZ1bmN0aW9uIGJmKG4sbyl7bGV0IHM7cmV0dXJuIHR5cGVvZiBvPT1cIm51bWJlclwiP3M9T3Iobyk6cz1vLE5vKG4pP3RuKG4scyxuLm5hbWUsbi5jb25zdHJhaW50LG4uZGVmYXVsdCk6TWEobik/VW4obixzLG4uZG90RG90RG90VG9rZW4sbi5uYW1lLG4ucXVlc3Rpb25Ub2tlbixuLnR5cGUsbi5pbml0aWFsaXplcik6dTYobik/aGUobixzLG4udHlwZVBhcmFtZXRlcnMsbi5wYXJhbWV0ZXJzLG4udHlwZSk6Wmwobik/cW4obixzLG4ubmFtZSxuLnF1ZXN0aW9uVG9rZW4sbi50eXBlKTpvbyhuKT9vZShuLHMsbi5uYW1lLG4ucXVlc3Rpb25Ub2tlbj8/bi5leGNsYW1hdGlvblRva2VuLG4udHlwZSxuLmluaXRpYWxpemVyKTpWeChuKT9TZShuLHMsbi5uYW1lLG4ucXVlc3Rpb25Ub2tlbixuLnR5cGVQYXJhbWV0ZXJzLG4ucGFyYW1ldGVycyxuLnR5cGUpOmRfKG4pP3oobixzLG4uYXN0ZXJpc2tUb2tlbixuLm5hbWUsbi5xdWVzdGlvblRva2VuLG4udHlwZVBhcmFtZXRlcnMsbi5wYXJhbWV0ZXJzLG4udHlwZSxuLmJvZHkpOkpfKG4pP2x0KG4scyxuLnBhcmFtZXRlcnMsbi5ib2R5KTptXyhuKT9xcihuLHMsbi5uYW1lLG4ucGFyYW1ldGVycyxuLnR5cGUsbi5ib2R5KTpRbyhuKT96bihuLHMsbi5uYW1lLG4ucGFyYW1ldGVycyxuLmJvZHkpOmw2KG4pP1ZuKG4scyxuLnBhcmFtZXRlcnMsbi50eXBlKTpBbShuKT9NdShuLHMsbi5hc3Rlcmlza1Rva2VuLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4ucGFyYW1ldGVycyxuLnR5cGUsbi5ib2R5KTprbShuKT90YyhuLHMsbi50eXBlUGFyYW1ldGVycyxuLnBhcmFtZXRlcnMsbi50eXBlLG4uZXF1YWxzR3JlYXRlclRoYW5Ub2tlbixuLmJvZHkpOklsKG4pP3NjKG4scyxuLm5hbWUsbi50eXBlUGFyYW1ldGVycyxuLmhlcml0YWdlQ2xhdXNlcyxuLm1lbWJlcnMpOmFzKG4pP3BjKG4scyxuLmRlY2xhcmF0aW9uTGlzdCk6b3Mobik/ZnAobixzLG4uYXN0ZXJpc2tUb2tlbixuLm5hbWUsbi50eXBlUGFyYW1ldGVycyxuLnBhcmFtZXRlcnMsbi50eXBlLG4uYm9keSk6WW8obik/VGMobixzLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4uaGVyaXRhZ2VDbGF1c2VzLG4ubWVtYmVycyk6c3Uobik/Z3QobixzLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4uaGVyaXRhZ2VDbGF1c2VzLG4ubWVtYmVycyk6VDYobik/U2MobixzLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4udHlwZSk6UzYobik/bXAobixzLG4ubmFtZSxuLm1lbWJlcnMpOllpKG4pP2ppKG4scyxuLm5hbWUsbi5ib2R5KTp3NihuKT9ncChuLHMsbi5pc1R5cGVPbmx5LG4ubmFtZSxuLm1vZHVsZVJlZmVyZW5jZSk6QzYobik/dnAobixzLG4uaW1wb3J0Q2xhdXNlLG4ubW9kdWxlU3BlY2lmaWVyLG4uYXNzZXJ0Q2xhdXNlKTpzcyhuKT9GaShuLHMsbi5leHByZXNzaW9uKTpCXyhuKT9EYyhuLHMsbi5pc1R5cGVPbmx5LG4uZXhwb3J0Q2xhdXNlLG4ubW9kdWxlU3BlY2lmaWVyLG4uYXNzZXJ0Q2xhdXNlKTpOLmFzc2VydE5ldmVyKG4pfWZ1bmN0aW9uIHFoKG4sbyl7cmV0dXJuIE1hKG4pP1VuKG4sbyxuLmRvdERvdERvdFRva2VuLG4ubmFtZSxuLnF1ZXN0aW9uVG9rZW4sbi50eXBlLG4uaW5pdGlhbGl6ZXIpOm9vKG4pP29lKG4sbyxuLm5hbWUsbi5xdWVzdGlvblRva2VuPz9uLmV4Y2xhbWF0aW9uVG9rZW4sbi50eXBlLG4uaW5pdGlhbGl6ZXIpOmRfKG4pP3oobixvLG4uYXN0ZXJpc2tUb2tlbixuLm5hbWUsbi5xdWVzdGlvblRva2VuLG4udHlwZVBhcmFtZXRlcnMsbi5wYXJhbWV0ZXJzLG4udHlwZSxuLmJvZHkpOm1fKG4pP3FyKG4sbyxuLm5hbWUsbi5wYXJhbWV0ZXJzLG4udHlwZSxuLmJvZHkpOlFvKG4pP3puKG4sbyxuLm5hbWUsbi5wYXJhbWV0ZXJzLG4uYm9keSk6SWwobik/c2MobixvLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4uaGVyaXRhZ2VDbGF1c2VzLG4ubWVtYmVycyk6WW8obik/VGMobixvLG4ubmFtZSxuLnR5cGVQYXJhbWV0ZXJzLG4uaGVyaXRhZ2VDbGF1c2VzLG4ubWVtYmVycyk6Ti5hc3NlcnROZXZlcihuKX1mdW5jdGlvbiBPZShuKXtyZXR1cm4gbj9ZKG4pOnZvaWQgMH1mdW5jdGlvbiBYZShuKXtyZXR1cm4gdHlwZW9mIG49PVwic3RyaW5nXCI/R2Uobik6bn1mdW5jdGlvbiBDcihuKXtyZXR1cm4gdHlwZW9mIG49PVwic3RyaW5nXCI/aXQobik6dHlwZW9mIG49PVwibnVtYmVyXCI/WmUobik6dHlwZW9mIG49PVwiYm9vbGVhblwiP24/aHQoKTp3bigpOm59ZnVuY3Rpb24gVG8obil7cmV0dXJuIG4mJmEoKS5wYXJlbnRoZXNpemVFeHByZXNzaW9uRm9yRGlzYWxsb3dlZENvbW1hKG4pfWZ1bmN0aW9uIGxyKG4pe3JldHVybiB0eXBlb2Ygbj09XCJudW1iZXJcIj92dChuKTpufWZ1bmN0aW9uIG9uKG4pe3JldHVybiBuJiZBNihuKT9WZShYcihmYygpLG4pLG4pOm59ZnVuY3Rpb24gdmYobil7cmV0dXJuIHR5cGVvZiBuPT1cInN0cmluZ1wifHxuJiYha2kobik/QXMobix2b2lkIDAsdm9pZCAwLHZvaWQgMCk6bn19ZnVuY3Rpb24ga0woZSx0KXtyZXR1cm4gZSE9PXQmJlZlKGUsdCksZX1mdW5jdGlvbiBETChlLHQpe3JldHVybiBlIT09dCYmKFhyKGUsdCksVmUoZSx0KSksZX1mdW5jdGlvbiBBZihlKXtzd2l0Y2goZSl7Y2FzZSAzNTE6cmV0dXJuXCJ0eXBlXCI7Y2FzZSAzNDk6cmV0dXJuXCJyZXR1cm5zXCI7Y2FzZSAzNTA6cmV0dXJuXCJ0aGlzXCI7Y2FzZSAzNDc6cmV0dXJuXCJlbnVtXCI7Y2FzZSAzMzc6cmV0dXJuXCJhdXRob3JcIjtjYXNlIDMzOTpyZXR1cm5cImNsYXNzXCI7Y2FzZSAzNDA6cmV0dXJuXCJwdWJsaWNcIjtjYXNlIDM0MTpyZXR1cm5cInByaXZhdGVcIjtjYXNlIDM0MjpyZXR1cm5cInByb3RlY3RlZFwiO2Nhc2UgMzQzOnJldHVyblwicmVhZG9ubHlcIjtjYXNlIDM0NDpyZXR1cm5cIm92ZXJyaWRlXCI7Y2FzZSAzNTI6cmV0dXJuXCJ0ZW1wbGF0ZVwiO2Nhc2UgMzUzOnJldHVyblwidHlwZWRlZlwiO2Nhc2UgMzQ4OnJldHVyblwicGFyYW1cIjtjYXNlIDM1NTpyZXR1cm5cInByb3BcIjtjYXNlIDM0NTpyZXR1cm5cImNhbGxiYWNrXCI7Y2FzZSAzNDY6cmV0dXJuXCJvdmVybG9hZFwiO2Nhc2UgMzM1OnJldHVyblwiYXVnbWVudHNcIjtjYXNlIDMzNjpyZXR1cm5cImltcGxlbWVudHNcIjtkZWZhdWx0OnJldHVybiBOLmZhaWwoYFVuc3VwcG9ydGVkIGtpbmQ6ICR7Ti5mb3JtYXRTeW50YXhLaW5kKGUpfWApfX1mdW5jdGlvbiBQTChlLHQpe3N3aXRjaChfbnx8KF9uPW5zKDk5LCExLDApKSxlKXtjYXNlIDE1Ol9uLnNldFRleHQoXCJgXCIrdCtcImBcIik7YnJlYWs7Y2FzZSAxNjpfbi5zZXRUZXh0KFwiYFwiK3QrXCIke1wiKTticmVhaztjYXNlIDE3Ol9uLnNldFRleHQoXCJ9XCIrdCtcIiR7XCIpO2JyZWFrO2Nhc2UgMTg6X24uc2V0VGV4dChcIn1cIit0K1wiYFwiKTticmVha31sZXQgcj1fbi5zY2FuKCk7aWYocj09PTIwJiYocj1fbi5yZVNjYW5UZW1wbGF0ZVRva2VuKCExKSksX24uaXNVbnRlcm1pbmF0ZWQoKSlyZXR1cm4gX24uc2V0VGV4dCh2b2lkIDApLCQwO2xldCBhO3N3aXRjaChyKXtjYXNlIDE1OmNhc2UgMTY6Y2FzZSAxNzpjYXNlIDE4OmE9X24uZ2V0VG9rZW5WYWx1ZSgpO2JyZWFrfXJldHVybiBhPT09dm9pZCAwfHxfbi5zY2FuKCkhPT0xPyhfbi5zZXRUZXh0KHZvaWQgMCksJDApOihfbi5zZXRUZXh0KHZvaWQgMCksYSl9ZnVuY3Rpb24gSW4oZSl7cmV0dXJuIGUmJkVlKGUpP2VfKGUpOlYoZSl9ZnVuY3Rpb24gZV8oZSl7cmV0dXJuIFYoZSkmLTY3MTA4ODY1fWZ1bmN0aW9uIElMKGUsdCl7cmV0dXJuIHR8ZS50cmFuc2Zvcm1GbGFncyYxMzQyMzQxMTJ9ZnVuY3Rpb24gVihlKXtpZighZSlyZXR1cm4gMDtsZXQgdD1lLnRyYW5zZm9ybUZsYWdzJn5SeChlLmtpbmQpO3JldHVybiBRZChlKSYmemwoZS5uYW1lKT9JTChlLm5hbWUsdCk6dH1mdW5jdGlvbiBEZShlKXtyZXR1cm4gZT9lLnRyYW5zZm9ybUZsYWdzOjB9ZnVuY3Rpb24gSGIoZSl7bGV0IHQ9MDtmb3IobGV0IHIgb2YgZSl0fD1WKHIpO2UudHJhbnNmb3JtRmxhZ3M9dH1mdW5jdGlvbiBSeChlKXtpZihlPj0xODImJmU8PTIwNSlyZXR1cm4tMjtzd2l0Y2goZSl7Y2FzZSAyMTM6Y2FzZSAyMTQ6Y2FzZSAyMDk6cmV0dXJuLTIxNDc0NTA4ODA7Y2FzZSAyNjc6cmV0dXJuLTE5NDE2NzYwMzI7Y2FzZSAxNjk6cmV0dXJuLTIxNDc0ODM2NDg7Y2FzZSAyMTk6cmV0dXJuLTIwNzIxNzQ1OTI7Y2FzZSAyMTg6Y2FzZSAyNjI6cmV0dXJuLTE5Mzc5NDA0ODA7Y2FzZSAyNjE6cmV0dXJuLTIxNDY4OTM4MjQ7Y2FzZSAyNjM6Y2FzZSAyMzE6cmV0dXJuLTIxNDczNDQzODQ7Y2FzZSAxNzY6cmV0dXJuLTE5Mzc5NDg2NzI7Y2FzZSAxNzI6cmV0dXJuLTIwMTMyNDk1MzY7Y2FzZSAxNzQ6Y2FzZSAxNzc6Y2FzZSAxNzg6cmV0dXJuLTIwMDUwNTc1MzY7Y2FzZSAxMzM6Y2FzZSAxNTA6Y2FzZSAxNjM6Y2FzZSAxNDY6Y2FzZSAxNTQ6Y2FzZSAxNTE6Y2FzZSAxMzY6Y2FzZSAxNTU6Y2FzZSAxMTY6Y2FzZSAxNjg6Y2FzZSAxNzE6Y2FzZSAxNzM6Y2FzZSAxNzk6Y2FzZSAxODA6Y2FzZSAxODE6Y2FzZSAyNjQ6Y2FzZSAyNjU6cmV0dXJuLTI7Y2FzZSAyMTA6cmV0dXJuLTIxNDcyNzg4NDg7Y2FzZSAyOTk6cmV0dXJuLTIxNDc0MTgxMTI7Y2FzZSAyMDY6Y2FzZSAyMDc6cmV0dXJuLTIxNDc0NTA4ODA7Y2FzZSAyMTY6Y2FzZSAyMzg6Y2FzZSAyMzQ6Y2FzZSAzNjA6Y2FzZSAyMTc6Y2FzZSAxMDg6cmV0dXJuLTIxNDc0ODM2NDg7Y2FzZSAyMTE6Y2FzZSAyMTI6cmV0dXJuLTIxNDc0ODM2NDg7ZGVmYXVsdDpyZXR1cm4tMjE0NzQ4MzY0OH19ZnVuY3Rpb24gWWMoZSl7cmV0dXJuIGUuZmxhZ3N8PTE2LGV9ZnVuY3Rpb24gTkwoZSx0LHIpe2xldCBhLF8scCxkLGgsbCx2LHksQyxTO2JfKGUpPyhwPVwiXCIsZD1lLGg9ZS5sZW5ndGgsbD10LHY9cik6KE4uYXNzZXJ0KHQ9PT1cImpzXCJ8fHQ9PT1cImR0c1wiKSxwPSh0PT09XCJqc1wiP2UuamF2YXNjcmlwdFBhdGg6ZS5kZWNsYXJhdGlvblBhdGgpfHxcIlwiLGw9dD09PVwianNcIj9lLmphdmFzY3JpcHRNYXBQYXRoOmUuZGVjbGFyYXRpb25NYXBQYXRoLHk9KCk9PnQ9PT1cImpzXCI/ZS5qYXZhc2NyaXB0VGV4dDplLmRlY2xhcmF0aW9uVGV4dCxDPSgpPT50PT09XCJqc1wiP2UuamF2YXNjcmlwdE1hcFRleHQ6ZS5kZWNsYXJhdGlvbk1hcFRleHQsaD0oKT0+eSgpLmxlbmd0aCxlLmJ1aWxkSW5mbyYmZS5idWlsZEluZm8uYnVuZGxlJiYoTi5hc3NlcnQocj09PXZvaWQgMHx8dHlwZW9mIHI9PVwiYm9vbGVhblwiKSxhPXIsXz10PT09XCJqc1wiP2UuYnVpbGRJbmZvLmJ1bmRsZS5qczplLmJ1aWxkSW5mby5idW5kbGUuZHRzLFM9ZS5vbGRGaWxlT2ZDdXJyZW50RW1pdCkpO2xldCBrPVM/TUwoTi5jaGVja0RlZmluZWQoXykpOk9MKF8sYSxoKTtyZXR1cm4gay5maWxlTmFtZT1wLGsuc291cmNlTWFwUGF0aD1sLGsub2xkRmlsZU9mQ3VycmVudEVtaXQ9Uyx5JiZDPyhPYmplY3QuZGVmaW5lUHJvcGVydHkoayxcInRleHRcIix7Z2V0Onl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoayxcInNvdXJjZU1hcFRleHRcIix7Z2V0OkN9KSk6KE4uYXNzZXJ0KCFTKSxrLnRleHQ9ZD8/XCJcIixrLnNvdXJjZU1hcFRleHQ9diksa31mdW5jdGlvbiBPTChlLHQscil7bGV0IGEsXyxwLGQsaCxsLHYseTtmb3IobGV0IFMgb2YgZT9lLnNlY3Rpb25zOiRlKXN3aXRjaChTLmtpbmQpe2Nhc2VcInByb2xvZ3VlXCI6YT14dChhLFZlKExuLmNyZWF0ZVVucGFyc2VkUHJvbG9ndWUoUy5kYXRhKSxTKSk7YnJlYWs7Y2FzZVwiZW1pdEhlbHBlcnNcIjpfPXh0KF8sZ2V0QWxsVW5zY29wZWRFbWl0SGVscGVycygpLmdldChTLmRhdGEpKTticmVhaztjYXNlXCJuby1kZWZhdWx0LWxpYlwiOnk9ITA7YnJlYWs7Y2FzZVwicmVmZXJlbmNlXCI6cD14dChwLHtwb3M6LTEsZW5kOi0xLGZpbGVOYW1lOlMuZGF0YX0pO2JyZWFrO2Nhc2VcInR5cGVcIjpkPXh0KGQse3BvczotMSxlbmQ6LTEsZmlsZU5hbWU6Uy5kYXRhfSk7YnJlYWs7Y2FzZVwidHlwZS1pbXBvcnRcIjpkPXh0KGQse3BvczotMSxlbmQ6LTEsZmlsZU5hbWU6Uy5kYXRhLHJlc29sdXRpb25Nb2RlOjk5fSk7YnJlYWs7Y2FzZVwidHlwZS1yZXF1aXJlXCI6ZD14dChkLHtwb3M6LTEsZW5kOi0xLGZpbGVOYW1lOlMuZGF0YSxyZXNvbHV0aW9uTW9kZToxfSk7YnJlYWs7Y2FzZVwibGliXCI6aD14dChoLHtwb3M6LTEsZW5kOi0xLGZpbGVOYW1lOlMuZGF0YX0pO2JyZWFrO2Nhc2VcInByZXBlbmRcIjpsZXQgaztmb3IobGV0IEwgb2YgUy50ZXh0cykoIXR8fEwua2luZCE9PVwiaW50ZXJuYWxcIikmJihrPXh0KGssVmUoTG4uY3JlYXRlVW5wYXJzZWRUZXh0TGlrZShMLmRhdGEsTC5raW5kPT09XCJpbnRlcm5hbFwiKSxMKSkpO2w9UnIobCxrKSx2PXh0KHYsTG4uY3JlYXRlVW5wYXJzZWRQcmVwZW5kKFMuZGF0YSxrPz8kZSkpO2JyZWFrO2Nhc2VcImludGVybmFsXCI6aWYodCl7dnx8KHY9W10pO2JyZWFrfWNhc2VcInRleHRcIjp2PXh0KHYsVmUoTG4uY3JlYXRlVW5wYXJzZWRUZXh0TGlrZShTLmRhdGEsUy5raW5kPT09XCJpbnRlcm5hbFwiKSxTKSk7YnJlYWs7ZGVmYXVsdDpOLmFzc2VydE5ldmVyKFMpfWlmKCF2KXtsZXQgUz1Mbi5jcmVhdGVVbnBhcnNlZFRleHRMaWtlKHZvaWQgMCwhMSk7Q2QoUywwLHR5cGVvZiByPT1cImZ1bmN0aW9uXCI/cigpOnIpLHY9W1NdfWxldCBDPXpfLmNyZWF0ZVVucGFyc2VkU291cmNlKGE/PyRlLHZvaWQgMCx2KTtyZXR1cm4gYV8oYSxDKSxhXyh2LEMpLGFfKGwsQyksQy5oYXNOb0RlZmF1bHRMaWI9eSxDLmhlbHBlcnM9XyxDLnJlZmVyZW5jZWRGaWxlcz1wfHwkZSxDLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzPWQsQy5saWJSZWZlcmVuY2VEaXJlY3RpdmVzPWh8fCRlLEN9ZnVuY3Rpb24gTUwoZSl7bGV0IHQscjtmb3IobGV0IF8gb2YgZS5zZWN0aW9ucylzd2l0Y2goXy5raW5kKXtjYXNlXCJpbnRlcm5hbFwiOmNhc2VcInRleHRcIjp0PXh0KHQsVmUoTG4uY3JlYXRlVW5wYXJzZWRUZXh0TGlrZShfLmRhdGEsXy5raW5kPT09XCJpbnRlcm5hbFwiKSxfKSk7YnJlYWs7Y2FzZVwibm8tZGVmYXVsdC1saWJcIjpjYXNlXCJyZWZlcmVuY2VcIjpjYXNlXCJ0eXBlXCI6Y2FzZVwidHlwZS1pbXBvcnRcIjpjYXNlXCJ0eXBlLXJlcXVpcmVcIjpjYXNlXCJsaWJcIjpyPXh0KHIsVmUoTG4uY3JlYXRlVW5wYXJzZWRTeW50aGV0aWNSZWZlcmVuY2UoXyksXykpO2JyZWFrO2Nhc2VcInByb2xvZ3VlXCI6Y2FzZVwiZW1pdEhlbHBlcnNcIjpjYXNlXCJwcmVwZW5kXCI6YnJlYWs7ZGVmYXVsdDpOLmFzc2VydE5ldmVyKF8pfWxldCBhPUxuLmNyZWF0ZVVucGFyc2VkU291cmNlKCRlLHIsdD8/JGUpO3JldHVybiBhXyhyLGEpLGFfKHQsYSksYS5oZWxwZXJzPUFhKGUuc291cmNlcyYmZS5zb3VyY2VzLmhlbHBlcnMsXz0+Z2V0QWxsVW5zY29wZWRFbWl0SGVscGVycygpLmdldChfKSksYX1mdW5jdGlvbiBMTChlLHQscixhLF8scCl7cmV0dXJuIGJfKGUpP0Z4KHZvaWQgMCxlLHIsYSx2b2lkIDAsdCxfLHApOmp4KGUsdCxyLGEsXyxwKX1mdW5jdGlvbiBqeChlLHQscixhLF8scCxkLGgpe2xldCBsPXpfLmNyZWF0ZUlucHV0RmlsZXMoKTtsLmphdmFzY3JpcHRQYXRoPXQsbC5qYXZhc2NyaXB0TWFwUGF0aD1yLGwuZGVjbGFyYXRpb25QYXRoPWEsbC5kZWNsYXJhdGlvbk1hcFBhdGg9XyxsLmJ1aWxkSW5mb1BhdGg9cDtsZXQgdj1uZXcgTWFwLHk9TD0+e2lmKEw9PT12b2lkIDApcmV0dXJuO2xldCBHPXYuZ2V0KEwpO3JldHVybiBHPT09dm9pZCAwJiYoRz1lKEwpLHYuc2V0KEwsRyE9PXZvaWQgMD9HOiExKSksRyE9PSExP0c6dm9pZCAwfSxDPUw9PntsZXQgRz15KEwpO3JldHVybiBHIT09dm9pZCAwP0c6YC8qIElucHV0IGZpbGUgJHtMfSB3YXMgbWlzc2luZyAqL1xcclxuYH0sUztyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobCx7amF2YXNjcmlwdFRleHQ6e2dldDooKT0+Qyh0KX0samF2YXNjcmlwdE1hcFRleHQ6e2dldDooKT0+eShyKX0sZGVjbGFyYXRpb25UZXh0OntnZXQ6KCk9PkMoTi5jaGVja0RlZmluZWQoYSkpfSxkZWNsYXJhdGlvbk1hcFRleHQ6e2dldDooKT0+eShfKX0sYnVpbGRJbmZvOntnZXQ6KCk9PntpZihTPT09dm9pZCAwJiZwKWlmKGQhPW51bGwmJmQuZ2V0QnVpbGRJbmZvKVM9ZC5nZXRCdWlsZEluZm8ocCxoLmNvbmZpZ0ZpbGVQYXRoKT8/ITE7ZWxzZXtsZXQgTD15KHApO1M9TCE9PXZvaWQgMD9nZXRCdWlsZEluZm8ocCxMKT8/ITE6ITF9cmV0dXJuIFN8fHZvaWQgMH19fSksbH1mdW5jdGlvbiBGeChlLHQscixhLF8scCxkLGgsbCx2LHkpe2xldCBDPXpfLmNyZWF0ZUlucHV0RmlsZXMoKTtyZXR1cm4gQy5qYXZhc2NyaXB0UGF0aD1lLEMuamF2YXNjcmlwdFRleHQ9dCxDLmphdmFzY3JpcHRNYXBQYXRoPXIsQy5qYXZhc2NyaXB0TWFwVGV4dD1hLEMuZGVjbGFyYXRpb25QYXRoPV8sQy5kZWNsYXJhdGlvblRleHQ9cCxDLmRlY2xhcmF0aW9uTWFwUGF0aD1kLEMuZGVjbGFyYXRpb25NYXBUZXh0PWgsQy5idWlsZEluZm9QYXRoPWwsQy5idWlsZEluZm89dixDLm9sZEZpbGVPZkN1cnJlbnRFbWl0PXksQ31mdW5jdGlvbiBKTChlLHQscil7cmV0dXJuIG5ldyhYYnx8KFhiPXd0LmdldFNvdXJjZU1hcFNvdXJjZUNvbnN0cnVjdG9yKCkpKShlLHQscil9ZnVuY3Rpb24gWHIoZSx0KXtpZihlLm9yaWdpbmFsIT09dCYmKGUub3JpZ2luYWw9dCx0KSl7bGV0IHI9dC5lbWl0Tm9kZTtyJiYoZS5lbWl0Tm9kZT1STChyLGUuZW1pdE5vZGUpKX1yZXR1cm4gZX1mdW5jdGlvbiBSTChlLHQpe2xldHtmbGFnczpyLGludGVybmFsRmxhZ3M6YSxsZWFkaW5nQ29tbWVudHM6Xyx0cmFpbGluZ0NvbW1lbnRzOnAsY29tbWVudFJhbmdlOmQsc291cmNlTWFwUmFuZ2U6aCx0b2tlblNvdXJjZU1hcFJhbmdlczpsLGNvbnN0YW50VmFsdWU6dixoZWxwZXJzOnksc3RhcnRzT25OZXdMaW5lOkMsc25pcHBldEVsZW1lbnQ6UyxjbGFzc1RoaXM6ayxhc3NpZ25lZE5hbWU6TH09ZTtpZih0fHwodD17fSksciYmKHQuZmxhZ3M9ciksYSYmKHQuaW50ZXJuYWxGbGFncz1hJi05KSxfJiYodC5sZWFkaW5nQ29tbWVudHM9UnIoXy5zbGljZSgpLHQubGVhZGluZ0NvbW1lbnRzKSkscCYmKHQudHJhaWxpbmdDb21tZW50cz1ScihwLnNsaWNlKCksdC50cmFpbGluZ0NvbW1lbnRzKSksZCYmKHQuY29tbWVudFJhbmdlPWQpLGgmJih0LnNvdXJjZU1hcFJhbmdlPWgpLGwmJih0LnRva2VuU291cmNlTWFwUmFuZ2VzPWpMKGwsdC50b2tlblNvdXJjZU1hcFJhbmdlcykpLHYhPT12b2lkIDAmJih0LmNvbnN0YW50VmFsdWU9dikseSlmb3IobGV0IEcgb2YgeSl0LmhlbHBlcnM9Q3YodC5oZWxwZXJzLEcpO3JldHVybiBDIT09dm9pZCAwJiYodC5zdGFydHNPbk5ld0xpbmU9QyksUyE9PXZvaWQgMCYmKHQuc25pcHBldEVsZW1lbnQ9UyksayYmKHQuY2xhc3NUaGlzPWspLEwmJih0LmFzc2lnbmVkTmFtZT1MKSx0fWZ1bmN0aW9uIGpMKGUsdCl7dHx8KHQ9W10pO2ZvcihsZXQgciBpbiBlKXRbcl09ZVtyXTtyZXR1cm4gdH12YXIgaWwsWDAsYTYsX24sJDAsWHMsR2IsTG4sWGIsRkw9VnQoe1wic3JjL2NvbXBpbGVyL2ZhY3Rvcnkvbm9kZUZhY3RvcnkudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksaWw9MCxYMD0oZT0+KGVbZS5Ob25lPTBdPVwiTm9uZVwiLGVbZS5Ob1BhcmVudGhlc2l6ZXJSdWxlcz0xXT1cIk5vUGFyZW50aGVzaXplclJ1bGVzXCIsZVtlLk5vTm9kZUNvbnZlcnRlcnM9Ml09XCJOb05vZGVDb252ZXJ0ZXJzXCIsZVtlLk5vSW5kZW50YXRpb25PbkZyZXNoUHJvcGVydHlBY2Nlc3M9NF09XCJOb0luZGVudGF0aW9uT25GcmVzaFByb3BlcnR5QWNjZXNzXCIsZVtlLk5vT3JpZ2luYWxOb2RlPThdPVwiTm9PcmlnaW5hbE5vZGVcIixlKSkoWDB8fHt9KSxhNj1bXSwkMD17fSxYcz1MeCgpLEdiPXtjcmVhdGVCYXNlU291cmNlRmlsZU5vZGU6ZT0+WWMoWHMuY3JlYXRlQmFzZVNvdXJjZUZpbGVOb2RlKGUpKSxjcmVhdGVCYXNlSWRlbnRpZmllck5vZGU6ZT0+WWMoWHMuY3JlYXRlQmFzZUlkZW50aWZpZXJOb2RlKGUpKSxjcmVhdGVCYXNlUHJpdmF0ZUlkZW50aWZpZXJOb2RlOmU9PlljKFhzLmNyZWF0ZUJhc2VQcml2YXRlSWRlbnRpZmllck5vZGUoZSkpLGNyZWF0ZUJhc2VUb2tlbk5vZGU6ZT0+WWMoWHMuY3JlYXRlQmFzZVRva2VuTm9kZShlKSksY3JlYXRlQmFzZU5vZGU6ZT0+WWMoWHMuY3JlYXRlQmFzZU5vZGUoZSkpfSxMbj1BZCg0LEdiKX19KSxCTD0oKT0+e30sVUw9KCk9Pnt9O2Z1bmN0aW9uIGxvKGUpe3JldHVybiBlLmtpbmQ9PT05fWZ1bmN0aW9uIG82KGUpe3JldHVybiBlLmtpbmQ9PT0xMH1mdW5jdGlvbiBtbihlKXtyZXR1cm4gZS5raW5kPT09MTF9ZnVuY3Rpb24ga2QoZSl7cmV0dXJuIGUua2luZD09PTEyfWZ1bmN0aW9uIHFMKGUpe3JldHVybiBlLmtpbmQ9PT0xNH1mdW5jdGlvbiBCeChlKXtyZXR1cm4gZS5raW5kPT09MTV9ZnVuY3Rpb24gekwoZSl7cmV0dXJuIGUua2luZD09PTE2fWZ1bmN0aW9uIFdMKGUpe3JldHVybiBlLmtpbmQ9PT0xN31mdW5jdGlvbiBWTChlKXtyZXR1cm4gZS5raW5kPT09MTh9ZnVuY3Rpb24gSEwoZSl7cmV0dXJuIGUua2luZD09PTI2fWZ1bmN0aW9uIFV4KGUpe3JldHVybiBlLmtpbmQ9PT0yOH1mdW5jdGlvbiBzNihlKXtyZXR1cm4gZS5raW5kPT09NDB9ZnVuY3Rpb24gXzYoZSl7cmV0dXJuIGUua2luZD09PTQxfWZ1bmN0aW9uIEdMKGUpe3JldHVybiBlLmtpbmQ9PT00Mn1mdW5jdGlvbiBEZChlKXtyZXR1cm4gZS5raW5kPT09NTR9ZnVuY3Rpb24gUGwoZSl7cmV0dXJuIGUua2luZD09PTU4fWZ1bmN0aW9uIFhMKGUpe3JldHVybiBlLmtpbmQ9PT01OX1mdW5jdGlvbiAkTChlKXtyZXR1cm4gZS5raW5kPT09Mjl9ZnVuY3Rpb24gUUwoZSl7cmV0dXJuIGUua2luZD09PTM5fWZ1bmN0aW9uIEVlKGUpe3JldHVybiBlLmtpbmQ9PT04MH1mdW5jdGlvbiBqcihlKXtyZXR1cm4gZS5raW5kPT09ODF9ZnVuY3Rpb24gcXgoZSl7cmV0dXJuIGUua2luZD09PTk1fWZ1bmN0aW9uIFlMKGUpe3JldHVybiBlLmtpbmQ9PT05MH1mdW5jdGlvbiBhbChlKXtyZXR1cm4gZS5raW5kPT09MTM0fWZ1bmN0aW9uIEtMKGUpe3JldHVybiBlLmtpbmQ9PT0xMzF9ZnVuY3Rpb24gWkwoZSl7cmV0dXJuIGUua2luZD09PTEzNX1mdW5jdGlvbiB6eChlKXtyZXR1cm4gZS5raW5kPT09MTQ4fWZ1bmN0aW9uIGVKKGUpe3JldHVybiBlLmtpbmQ9PT0xMjZ9ZnVuY3Rpb24gdEooZSl7cmV0dXJuIGUua2luZD09PTEyOH1mdW5jdGlvbiBySihlKXtyZXR1cm4gZS5raW5kPT09MTY0fWZ1bmN0aW9uIG5KKGUpe3JldHVybiBlLmtpbmQ9PT0xMjl9ZnVuY3Rpb24gVWYoZSl7cmV0dXJuIGUua2luZD09PTEwOH1mdW5jdGlvbiBXeChlKXtyZXR1cm4gZS5raW5kPT09MTAyfWZ1bmN0aW9uIGlKKGUpe3JldHVybiBlLmtpbmQ9PT04NH1mdW5jdGlvbiBNXyhlKXtyZXR1cm4gZS5raW5kPT09MTY2fWZ1bmN0aW9uIGFvKGUpe3JldHVybiBlLmtpbmQ9PT0xNjd9ZnVuY3Rpb24gTm8oZSl7cmV0dXJuIGUua2luZD09PTE2OH1mdW5jdGlvbiBNYShlKXtyZXR1cm4gZS5raW5kPT09MTY5fWZ1bmN0aW9uIExfKGUpe3JldHVybiBlLmtpbmQ9PT0xNzB9ZnVuY3Rpb24gWmwoZSl7cmV0dXJuIGUua2luZD09PTE3MX1mdW5jdGlvbiBvbyhlKXtyZXR1cm4gZS5raW5kPT09MTcyfWZ1bmN0aW9uIFZ4KGUpe3JldHVybiBlLmtpbmQ9PT0xNzN9ZnVuY3Rpb24gZF8oZSl7cmV0dXJuIGUua2luZD09PTE3NH1mdW5jdGlvbiBldShlKXtyZXR1cm4gZS5raW5kPT09MTc1fWZ1bmN0aW9uIEpfKGUpe3JldHVybiBlLmtpbmQ9PT0xNzZ9ZnVuY3Rpb24gbV8oZSl7cmV0dXJuIGUua2luZD09PTE3N31mdW5jdGlvbiBRbyhlKXtyZXR1cm4gZS5raW5kPT09MTc4fWZ1bmN0aW9uIGM2KGUpe3JldHVybiBlLmtpbmQ9PT0xNzl9ZnVuY3Rpb24gSHgoZSl7cmV0dXJuIGUua2luZD09PTE4MH1mdW5jdGlvbiBsNihlKXtyZXR1cm4gZS5raW5kPT09MTgxfWZ1bmN0aW9uIEd4KGUpe3JldHVybiBlLmtpbmQ9PT0xODJ9ZnVuY3Rpb24gUl8oZSl7cmV0dXJuIGUua2luZD09PTE4M31mdW5jdGlvbiB0dShlKXtyZXR1cm4gZS5raW5kPT09MTg0fWZ1bmN0aW9uIHU2KGUpe3JldHVybiBlLmtpbmQ9PT0xODV9ZnVuY3Rpb24gWHgoZSl7cmV0dXJuIGUua2luZD09PTE4Nn1mdW5jdGlvbiBFbShlKXtyZXR1cm4gZS5raW5kPT09MTg3fWZ1bmN0aW9uICR4KGUpe3JldHVybiBlLmtpbmQ9PT0xODh9ZnVuY3Rpb24gUXgoZSl7cmV0dXJuIGUua2luZD09PTE4OX1mdW5jdGlvbiBwNihlKXtyZXR1cm4gZS5raW5kPT09MjAyfWZ1bmN0aW9uIFl4KGUpe3JldHVybiBlLmtpbmQ9PT0xOTB9ZnVuY3Rpb24gS3goZSl7cmV0dXJuIGUua2luZD09PTE5MX1mdW5jdGlvbiBaeChlKXtyZXR1cm4gZS5raW5kPT09MTkyfWZ1bmN0aW9uIGU4KGUpe3JldHVybiBlLmtpbmQ9PT0xOTN9ZnVuY3Rpb24gdDgoZSl7cmV0dXJuIGUua2luZD09PTE5NH1mdW5jdGlvbiByOChlKXtyZXR1cm4gZS5raW5kPT09MTk1fWZ1bmN0aW9uIGY2KGUpe3JldHVybiBlLmtpbmQ9PT0xOTZ9ZnVuY3Rpb24gZDYoZSl7cmV0dXJuIGUua2luZD09PTE5N31mdW5jdGlvbiBuOChlKXtyZXR1cm4gZS5raW5kPT09MTk4fWZ1bmN0aW9uIGk4KGUpe3JldHVybiBlLmtpbmQ9PT0xOTl9ZnVuY3Rpb24gYTgoZSl7cmV0dXJuIGUua2luZD09PTIwMH1mdW5jdGlvbiBtNihlKXtyZXR1cm4gZS5raW5kPT09MjAxfWZ1bmN0aW9uIHJ1KGUpe3JldHVybiBlLmtpbmQ9PT0yMDV9ZnVuY3Rpb24gYUooZSl7cmV0dXJuIGUua2luZD09PTIwNH1mdW5jdGlvbiBvSihlKXtyZXR1cm4gZS5raW5kPT09MjAzfWZ1bmN0aW9uIHNKKGUpe3JldHVybiBlLmtpbmQ9PT0yMDZ9ZnVuY3Rpb24gX0ooZSl7cmV0dXJuIGUua2luZD09PTIwN31mdW5jdGlvbiBudShlKXtyZXR1cm4gZS5raW5kPT09MjA4fWZ1bmN0aW9uIGl1KGUpe3JldHVybiBlLmtpbmQ9PT0yMDl9ZnVuY3Rpb24gdW8oZSl7cmV0dXJuIGUua2luZD09PTIxMH1mdW5jdGlvbiBCcihlKXtyZXR1cm4gZS5raW5kPT09MjExfWZ1bmN0aW9uIFJhKGUpe3JldHVybiBlLmtpbmQ9PT0yMTJ9ZnVuY3Rpb24gal8oZSl7cmV0dXJuIGUua2luZD09PTIxM31mdW5jdGlvbiBvOChlKXtyZXR1cm4gZS5raW5kPT09MjE0fWZ1bmN0aW9uIHM4KGUpe3JldHVybiBlLmtpbmQ9PT0yMTV9ZnVuY3Rpb24gY0ooZSl7cmV0dXJuIGUua2luZD09PTIxNn1mdW5jdGlvbiBpcyhlKXtyZXR1cm4gZS5raW5kPT09MjE3fWZ1bmN0aW9uIEFtKGUpe3JldHVybiBlLmtpbmQ9PT0yMTh9ZnVuY3Rpb24ga20oZSl7cmV0dXJuIGUua2luZD09PTIxOX1mdW5jdGlvbiBsSihlKXtyZXR1cm4gZS5raW5kPT09MjIwfWZ1bmN0aW9uIHVKKGUpe3JldHVybiBlLmtpbmQ9PT0yMjF9ZnVuY3Rpb24gaDYoZSl7cmV0dXJuIGUua2luZD09PTIyMn1mdW5jdGlvbiBwSihlKXtyZXR1cm4gZS5raW5kPT09MjIzfWZ1bmN0aW9uIERtKGUpe3JldHVybiBlLmtpbmQ9PT0yMjR9ZnVuY3Rpb24gXzgoZSl7cmV0dXJuIGUua2luZD09PTIyNX1mdW5jdGlvbiBDdChlKXtyZXR1cm4gZS5raW5kPT09MjI2fWZ1bmN0aW9uIGZKKGUpe3JldHVybiBlLmtpbmQ9PT0yMjd9ZnVuY3Rpb24gZEooZSl7cmV0dXJuIGUua2luZD09PTIyOH1mdW5jdGlvbiBtSihlKXtyZXR1cm4gZS5raW5kPT09MjI5fWZ1bmN0aW9uIHk2KGUpe3JldHVybiBlLmtpbmQ9PT0yMzB9ZnVuY3Rpb24gSWwoZSl7cmV0dXJuIGUua2luZD09PTIzMX1mdW5jdGlvbiBQbShlKXtyZXR1cm4gZS5raW5kPT09MjMyfWZ1bmN0aW9uIGc2KGUpe3JldHVybiBlLmtpbmQ9PT0yMzN9ZnVuY3Rpb24gaEooZSl7cmV0dXJuIGUua2luZD09PTIzNH1mdW5jdGlvbiB5SihlKXtyZXR1cm4gZS5raW5kPT09MjM4fWZ1bmN0aW9uIGpvKGUpe3JldHVybiBlLmtpbmQ9PT0yMzV9ZnVuY3Rpb24gYjYoZSl7cmV0dXJuIGUua2luZD09PTIzNn1mdW5jdGlvbiBnSihlKXtyZXR1cm4gZS5raW5kPT09MjM3fWZ1bmN0aW9uIGM4KGUpe3JldHVybiBlLmtpbmQ9PT0zNjB9ZnVuY3Rpb24gRl8oZSl7cmV0dXJuIGUua2luZD09PTM2MX1mdW5jdGlvbiBiSihlKXtyZXR1cm4gZS5raW5kPT09MjM5fWZ1bmN0aW9uIHZKKGUpe3JldHVybiBlLmtpbmQ9PT0yNDB9ZnVuY3Rpb24gYXUoZSl7cmV0dXJuIGUua2luZD09PTI0MX1mdW5jdGlvbiBhcyhlKXtyZXR1cm4gZS5raW5kPT09MjQzfWZ1bmN0aW9uIFRKKGUpe3JldHVybiBlLmtpbmQ9PT0yNDJ9ZnVuY3Rpb24gb3UoZSl7cmV0dXJuIGUua2luZD09PTI0NH1mdW5jdGlvbiBTSihlKXtyZXR1cm4gZS5raW5kPT09MjQ1fWZ1bmN0aW9uIHhKKGUpe3JldHVybiBlLmtpbmQ9PT0yNDZ9ZnVuY3Rpb24gd0ooZSl7cmV0dXJuIGUua2luZD09PTI0N31mdW5jdGlvbiBsOChlKXtyZXR1cm4gZS5raW5kPT09MjQ4fWZ1bmN0aW9uIENKKGUpe3JldHVybiBlLmtpbmQ9PT0yNDl9ZnVuY3Rpb24gRUooZSl7cmV0dXJuIGUua2luZD09PTI1MH1mdW5jdGlvbiBBSihlKXtyZXR1cm4gZS5raW5kPT09MjUxfWZ1bmN0aW9uIGtKKGUpe3JldHVybiBlLmtpbmQ9PT0yNTJ9ZnVuY3Rpb24gREooZSl7cmV0dXJuIGUua2luZD09PTI1M31mdW5jdGlvbiBQSihlKXtyZXR1cm4gZS5raW5kPT09MjU0fWZ1bmN0aW9uIElKKGUpe3JldHVybiBlLmtpbmQ9PT0yNTV9ZnVuY3Rpb24gdTgoZSl7cmV0dXJuIGUua2luZD09PTI1Nn1mdW5jdGlvbiBOSihlKXtyZXR1cm4gZS5raW5kPT09MjU3fWZ1bmN0aW9uIE9KKGUpe3JldHVybiBlLmtpbmQ9PT0yNTh9ZnVuY3Rpb24gTUooZSl7cmV0dXJuIGUua2luZD09PTI1OX1mdW5jdGlvbiBraShlKXtyZXR1cm4gZS5raW5kPT09MjYwfWZ1bmN0aW9uIHY2KGUpe3JldHVybiBlLmtpbmQ9PT0yNjF9ZnVuY3Rpb24gb3MoZSl7cmV0dXJuIGUua2luZD09PTI2Mn1mdW5jdGlvbiBZbyhlKXtyZXR1cm4gZS5raW5kPT09MjYzfWZ1bmN0aW9uIHN1KGUpe3JldHVybiBlLmtpbmQ9PT0yNjR9ZnVuY3Rpb24gVDYoZSl7cmV0dXJuIGUua2luZD09PTI2NX1mdW5jdGlvbiBTNihlKXtyZXR1cm4gZS5raW5kPT09MjY2fWZ1bmN0aW9uIFlpKGUpe3JldHVybiBlLmtpbmQ9PT0yNjd9ZnVuY3Rpb24gcDgoZSl7cmV0dXJuIGUua2luZD09PTI2OH1mdW5jdGlvbiBMSihlKXtyZXR1cm4gZS5raW5kPT09MjY5fWZ1bmN0aW9uIHg2KGUpe3JldHVybiBlLmtpbmQ9PT0yNzB9ZnVuY3Rpb24gdzYoZSl7cmV0dXJuIGUua2luZD09PTI3MX1mdW5jdGlvbiBDNihlKXtyZXR1cm4gZS5raW5kPT09MjcyfWZ1bmN0aW9uIEpKKGUpe3JldHVybiBlLmtpbmQ9PT0yNzN9ZnVuY3Rpb24gUkooZSl7cmV0dXJuIGUua2luZD09PTMwMn1mdW5jdGlvbiBqSihlKXtyZXR1cm4gZS5raW5kPT09MzAwfWZ1bmN0aW9uIEZKKGUpe3JldHVybiBlLmtpbmQ9PT0zMDF9ZnVuY3Rpb24gRTYoZSl7cmV0dXJuIGUua2luZD09PTI3NH1mdW5jdGlvbiBJbShlKXtyZXR1cm4gZS5raW5kPT09MjgwfWZ1bmN0aW9uIEJKKGUpe3JldHVybiBlLmtpbmQ9PT0yNzV9ZnVuY3Rpb24gZjgoZSl7cmV0dXJuIGUua2luZD09PTI3Nn1mdW5jdGlvbiBzcyhlKXtyZXR1cm4gZS5raW5kPT09Mjc3fWZ1bmN0aW9uIEJfKGUpe3JldHVybiBlLmtpbmQ9PT0yNzh9ZnVuY3Rpb24gZDgoZSl7cmV0dXJuIGUua2luZD09PTI3OX1mdW5jdGlvbiBtOChlKXtyZXR1cm4gZS5raW5kPT09MjgxfWZ1bmN0aW9uIFVKKGUpe3JldHVybiBlLmtpbmQ9PT0yODJ9ZnVuY3Rpb24gQTYoZSl7cmV0dXJuIGUua2luZD09PTM1OX1mdW5jdGlvbiBxSihlKXtyZXR1cm4gZS5raW5kPT09MzYyfWZ1bmN0aW9uIE5tKGUpe3JldHVybiBlLmtpbmQ9PT0yODN9ZnVuY3Rpb24gUTAoZSl7cmV0dXJuIGUua2luZD09PTI4NH1mdW5jdGlvbiB6SihlKXtyZXR1cm4gZS5raW5kPT09Mjg1fWZ1bmN0aW9uIE9vKGUpe3JldHVybiBlLmtpbmQ9PT0yODZ9ZnVuY3Rpb24gcWYoZSl7cmV0dXJuIGUua2luZD09PTI4N31mdW5jdGlvbiBkbChlKXtyZXR1cm4gZS5raW5kPT09Mjg4fWZ1bmN0aW9uIGs2KGUpe3JldHVybiBlLmtpbmQ9PT0yODl9ZnVuY3Rpb24gV0ooZSl7cmV0dXJuIGUua2luZD09PTI5MH1mdW5jdGlvbiBWSihlKXtyZXR1cm4gZS5raW5kPT09MjkxfWZ1bmN0aW9uIEQ2KGUpe3JldHVybiBlLmtpbmQ9PT0yOTJ9ZnVuY3Rpb24gSEooZSl7cmV0dXJuIGUua2luZD09PTI5M31mdW5jdGlvbiBHSihlKXtyZXR1cm4gZS5raW5kPT09Mjk0fWZ1bmN0aW9uIFVfKGUpe3JldHVybiBlLmtpbmQ9PT0yOTV9ZnVuY3Rpb24gWEooZSl7cmV0dXJuIGUua2luZD09PTI5Nn1mdW5jdGlvbiBoOChlKXtyZXR1cm4gZS5raW5kPT09Mjk3fWZ1bmN0aW9uIE5sKGUpe3JldHVybiBlLmtpbmQ9PT0yOTh9ZnVuY3Rpb24gJEooZSl7cmV0dXJuIGUua2luZD09PTI5OX1mdW5jdGlvbiBfcyhlKXtyZXR1cm4gZS5raW5kPT09MzAzfWZ1bmN0aW9uIF91KGUpe3JldHVybiBlLmtpbmQ9PT0zMDR9ZnVuY3Rpb24geTgoZSl7cmV0dXJuIGUua2luZD09PTMwNX1mdW5jdGlvbiBnOChlKXtyZXR1cm4gZS5raW5kPT09MzA2fWZ1bmN0aW9uIFFKKGUpe3JldHVybiBlLmtpbmQ9PT0zMDh9ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIGUua2luZD09PTMxMn1mdW5jdGlvbiBZSihlKXtyZXR1cm4gZS5raW5kPT09MzEzfWZ1bmN0aW9uIEtKKGUpe3JldHVybiBlLmtpbmQ9PT0zMTR9ZnVuY3Rpb24gYjgoZSl7cmV0dXJuIGUua2luZD09PTMxNn1mdW5jdGlvbiB6ZihlKXtyZXR1cm4gZS5raW5kPT09MzE3fWZ1bmN0aW9uIHJfKGUpe3JldHVybiBlLmtpbmQ9PT0zMTh9ZnVuY3Rpb24gWkooZSl7cmV0dXJuIGUua2luZD09PTMzMX1mdW5jdGlvbiBlUihlKXtyZXR1cm4gZS5raW5kPT09MzMyfWZ1bmN0aW9uIHRSKGUpe3JldHVybiBlLmtpbmQ9PT0zMzN9ZnVuY3Rpb24gclIoZSl7cmV0dXJuIGUua2luZD09PTMxOX1mdW5jdGlvbiBuUihlKXtyZXR1cm4gZS5raW5kPT09MzIwfWZ1bmN0aW9uIHY4KGUpe3JldHVybiBlLmtpbmQ9PT0zMjF9ZnVuY3Rpb24gaVIoZSl7cmV0dXJuIGUua2luZD09PTMyMn1mdW5jdGlvbiBhUihlKXtyZXR1cm4gZS5raW5kPT09MzIzfWZ1bmN0aW9uIE9tKGUpe3JldHVybiBlLmtpbmQ9PT0zMjR9ZnVuY3Rpb24gb1IoZSl7cmV0dXJuIGUua2luZD09PTMyNX1mdW5jdGlvbiBzUihlKXtyZXR1cm4gZS5raW5kPT09MzI2fWZ1bmN0aW9uIGNzKGUpe3JldHVybiBlLmtpbmQ9PT0zMjd9ZnVuY3Rpb24gUDYoZSl7cmV0dXJuIGUua2luZD09PTMyOX1mdW5jdGlvbiBjdShlKXtyZXR1cm4gZS5raW5kPT09MzMwfWZ1bmN0aW9uIE1tKGUpe3JldHVybiBlLmtpbmQ9PT0zMzV9ZnVuY3Rpb24gX1IoZSl7cmV0dXJuIGUua2luZD09PTMzN31mdW5jdGlvbiBUOChlKXtyZXR1cm4gZS5raW5kPT09MzM5fWZ1bmN0aW9uIGNSKGUpe3JldHVybiBlLmtpbmQ9PT0zNDV9ZnVuY3Rpb24gSTYoZSl7cmV0dXJuIGUua2luZD09PTM0MH1mdW5jdGlvbiBONihlKXtyZXR1cm4gZS5raW5kPT09MzQxfWZ1bmN0aW9uIE82KGUpe3JldHVybiBlLmtpbmQ9PT0zNDJ9ZnVuY3Rpb24gTTYoZSl7cmV0dXJuIGUua2luZD09PTM0M31mdW5jdGlvbiBTOChlKXtyZXR1cm4gZS5raW5kPT09MzQ0fWZ1bmN0aW9uIEw2KGUpe3JldHVybiBlLmtpbmQ9PT0zNDZ9ZnVuY3Rpb24gSjYoZSl7cmV0dXJuIGUua2luZD09PTMzOH1mdW5jdGlvbiBsUihlKXtyZXR1cm4gZS5raW5kPT09MzU0fWZ1bmN0aW9uIHg4KGUpe3JldHVybiBlLmtpbmQ9PT0zNDd9ZnVuY3Rpb24gaF8oZSl7cmV0dXJuIGUua2luZD09PTM0OH1mdW5jdGlvbiBSNihlKXtyZXR1cm4gZS5raW5kPT09MzQ5fWZ1bmN0aW9uIHc4KGUpe3JldHVybiBlLmtpbmQ9PT0zNTB9ZnVuY3Rpb24gbHUoZSl7cmV0dXJuIGUua2luZD09PTM1MX1mdW5jdGlvbiBLbyhlKXtyZXR1cm4gZS5raW5kPT09MzUyfWZ1bmN0aW9uIHVSKGUpe3JldHVybiBlLmtpbmQ9PT0zNTN9ZnVuY3Rpb24gcFIoZSl7cmV0dXJuIGUua2luZD09PTMzNH1mdW5jdGlvbiBmUihlKXtyZXR1cm4gZS5raW5kPT09MzU1fWZ1bmN0aW9uIEM4KGUpe3JldHVybiBlLmtpbmQ9PT0zMzZ9ZnVuY3Rpb24gajYoZSl7cmV0dXJuIGUua2luZD09PTM1N31mdW5jdGlvbiBkUihlKXtyZXR1cm4gZS5raW5kPT09MzU2fWZ1bmN0aW9uIG1SKGUpe3JldHVybiBlLmtpbmQ9PT0zNTh9dmFyIGhSPVZ0KHtcInNyYy9jb21waWxlci9mYWN0b3J5L25vZGVUZXN0cy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7RHIoKX19KTtmdW5jdGlvbiB5UihlKXtyZXR1cm4gZS5jcmVhdGVFeHBvcnREZWNsYXJhdGlvbih2b2lkIDAsITEsZS5jcmVhdGVOYW1lZEV4cG9ydHMoW10pLHZvaWQgMCl9ZnVuY3Rpb24gTG0oZSx0LHIsYSl7aWYoYW8ocikpcmV0dXJuIFZlKGUuY3JlYXRlRWxlbWVudEFjY2Vzc0V4cHJlc3Npb24odCxyLmV4cHJlc3Npb24pLGEpO3tsZXQgXz1WZShybyhyKT9lLmNyZWF0ZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbih0LHIpOmUuY3JlYXRlRWxlbWVudEFjY2Vzc0V4cHJlc3Npb24odCxyKSxyKTtyZXR1cm4gYWRkRW1pdEZsYWdzKF8sMTI4KSxffX1mdW5jdGlvbiBGNihlLHQpe2xldCByPXpfLmNyZWF0ZUlkZW50aWZpZXIoZXx8XCJSZWFjdFwiKTtyZXR1cm4gWGkocixGbCh0KSkscn1mdW5jdGlvbiBCNihlLHQscil7aWYoTV8odCkpe2xldCBhPUI2KGUsdC5sZWZ0LHIpLF89ZS5jcmVhdGVJZGVudGlmaWVyKE90KHQucmlnaHQpKTtyZXR1cm4gXy5lc2NhcGVkVGV4dD10LnJpZ2h0LmVzY2FwZWRUZXh0LGUuY3JlYXRlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGEsXyl9ZWxzZSByZXR1cm4gRjYoT3QodCkscil9ZnVuY3Rpb24gRTgoZSx0LHIsYSl7cmV0dXJuIHQ/QjYoZSx0LGEpOmUuY3JlYXRlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKEY2KHIsYSksXCJjcmVhdGVFbGVtZW50XCIpfWZ1bmN0aW9uIGdSKGUsdCxyLGEpe3JldHVybiB0P0I2KGUsdCxhKTplLmNyZWF0ZVByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihGNihyLGEpLFwiRnJhZ21lbnRcIil9ZnVuY3Rpb24gYlIoZSx0LHIsYSxfLHApe2xldCBkPVtyXTtpZihhJiZkLnB1c2goYSksXyYmXy5sZW5ndGg+MClpZihhfHxkLnB1c2goZS5jcmVhdGVOdWxsKCkpLF8ubGVuZ3RoPjEpZm9yKGxldCBoIG9mIF8pam0oaCksZC5wdXNoKGgpO2Vsc2UgZC5wdXNoKF9bMF0pO3JldHVybiBWZShlLmNyZWF0ZUNhbGxFeHByZXNzaW9uKHQsdm9pZCAwLGQpLHApfWZ1bmN0aW9uIHZSKGUsdCxyLGEsXyxwLGQpe2xldCBsPVtnUihlLHIsYSxwKSxlLmNyZWF0ZU51bGwoKV07aWYoXyYmXy5sZW5ndGg+MClpZihfLmxlbmd0aD4xKWZvcihsZXQgdiBvZiBfKWptKHYpLGwucHVzaCh2KTtlbHNlIGwucHVzaChfWzBdKTtyZXR1cm4gVmUoZS5jcmVhdGVDYWxsRXhwcmVzc2lvbihFOChlLHQsYSxwKSx2b2lkIDAsbCksZCl9ZnVuY3Rpb24gVFIoZSx0LHIpe2lmKHY2KHQpKXtsZXQgYT1vZyh0LmRlY2xhcmF0aW9ucyksXz1lLnVwZGF0ZVZhcmlhYmxlRGVjbGFyYXRpb24oYSxhLm5hbWUsdm9pZCAwLHZvaWQgMCxyKTtyZXR1cm4gVmUoZS5jcmVhdGVWYXJpYWJsZVN0YXRlbWVudCh2b2lkIDAsZS51cGRhdGVWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCh0LFtfXSkpLHQpfWVsc2V7bGV0IGE9VmUoZS5jcmVhdGVBc3NpZ25tZW50KHQsciksdCk7cmV0dXJuIFZlKGUuY3JlYXRlRXhwcmVzc2lvblN0YXRlbWVudChhKSx0KX19ZnVuY3Rpb24gU1IoZSx0LHIpe3JldHVybiBhdSh0KT9lLnVwZGF0ZUJsb2NrKHQsVmUoZS5jcmVhdGVOb2RlQXJyYXkoW3IsLi4udC5zdGF0ZW1lbnRzXSksdC5zdGF0ZW1lbnRzKSk6ZS5jcmVhdGVCbG9jayhlLmNyZWF0ZU5vZGVBcnJheShbdCxyXSksITApfWZ1bmN0aW9uIEE4KGUsdCl7aWYoTV8odCkpe2xldCByPUE4KGUsdC5sZWZ0KSxhPVhpKFZlKGUuY2xvbmVOb2RlKHQucmlnaHQpLHQucmlnaHQpLHQucmlnaHQucGFyZW50KTtyZXR1cm4gVmUoZS5jcmVhdGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24ocixhKSx0KX1lbHNlIHJldHVybiBYaShWZShlLmNsb25lTm9kZSh0KSx0KSx0LnBhcmVudCl9ZnVuY3Rpb24gazgoZSx0KXtyZXR1cm4gRWUodCk/ZS5jcmVhdGVTdHJpbmdMaXRlcmFsRnJvbU5vZGUodCk6YW8odCk/WGkoVmUoZS5jbG9uZU5vZGUodC5leHByZXNzaW9uKSx0LmV4cHJlc3Npb24pLHQuZXhwcmVzc2lvbi5wYXJlbnQpOlhpKFZlKGUuY2xvbmVOb2RlKHQpLHQpLHQucGFyZW50KX1mdW5jdGlvbiB4UihlLHQscixhLF8pe2xldHtmaXJzdEFjY2Vzc29yOnAsZ2V0QWNjZXNzb3I6ZCxzZXRBY2Nlc3NvcjpofT1QMih0LHIpO2lmKHI9PT1wKXJldHVybiBWZShlLmNyZWF0ZU9iamVjdERlZmluZVByb3BlcnR5Q2FsbChhLGs4KGUsci5uYW1lKSxlLmNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcih7ZW51bWVyYWJsZTplLmNyZWF0ZUZhbHNlKCksY29uZmlndXJhYmxlOiEwLGdldDpkJiZWZShYcihlLmNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihoZChkKSx2b2lkIDAsdm9pZCAwLHZvaWQgMCxkLnBhcmFtZXRlcnMsdm9pZCAwLGQuYm9keSksZCksZCksc2V0OmgmJlZlKFhyKGUuY3JlYXRlRnVuY3Rpb25FeHByZXNzaW9uKGhkKGgpLHZvaWQgMCx2b2lkIDAsdm9pZCAwLGgucGFyYW1ldGVycyx2b2lkIDAsaC5ib2R5KSxoKSxoKX0sIV8pKSxwKX1mdW5jdGlvbiB3UihlLHQscil7cmV0dXJuIFhyKFZlKGUuY3JlYXRlQXNzaWdubWVudChMbShlLHIsdC5uYW1lLHQubmFtZSksdC5pbml0aWFsaXplciksdCksdCl9ZnVuY3Rpb24gQ1IoZSx0LHIpe3JldHVybiBYcihWZShlLmNyZWF0ZUFzc2lnbm1lbnQoTG0oZSxyLHQubmFtZSx0Lm5hbWUpLGUuY2xvbmVOb2RlKHQubmFtZSkpLHQpLHQpfWZ1bmN0aW9uIEVSKGUsdCxyKXtyZXR1cm4gWHIoVmUoZS5jcmVhdGVBc3NpZ25tZW50KExtKGUscix0Lm5hbWUsdC5uYW1lKSxYcihWZShlLmNyZWF0ZUZ1bmN0aW9uRXhwcmVzc2lvbihoZCh0KSx0LmFzdGVyaXNrVG9rZW4sdm9pZCAwLHZvaWQgMCx0LnBhcmFtZXRlcnMsdm9pZCAwLHQuYm9keSksdCksdCkpLHQpLHQpfWZ1bmN0aW9uIEFSKGUsdCxyLGEpe3N3aXRjaChyLm5hbWUmJmpyKHIubmFtZSkmJk4uZmFpbEJhZFN5bnRheEtpbmQoci5uYW1lLFwiUHJpdmF0ZSBpZGVudGlmaWVycyBhcmUgbm90IGFsbG93ZWQgaW4gb2JqZWN0IGxpdGVyYWxzLlwiKSxyLmtpbmQpe2Nhc2UgMTc3OmNhc2UgMTc4OnJldHVybiB4UihlLHQucHJvcGVydGllcyxyLGEsISF0Lm11bHRpTGluZSk7Y2FzZSAzMDM6cmV0dXJuIHdSKGUscixhKTtjYXNlIDMwNDpyZXR1cm4gQ1IoZSxyLGEpO2Nhc2UgMTc0OnJldHVybiBFUihlLHIsYSl9fWZ1bmN0aW9uIGtSKGUsdCxyLGEsXyl7bGV0IHA9dC5vcGVyYXRvcjtOLmFzc2VydChwPT09NDZ8fHA9PT00NyxcIkV4cGVjdGVkICdub2RlJyB0byBiZSBhIHByZS0gb3IgcG9zdC1pbmNyZW1lbnQgb3IgcHJlLSBvciBwb3N0LWRlY3JlbWVudCBleHByZXNzaW9uXCIpO2xldCBkPWUuY3JlYXRlVGVtcFZhcmlhYmxlKGEpO3I9ZS5jcmVhdGVBc3NpZ25tZW50KGQsciksVmUocix0Lm9wZXJhbmQpO2xldCBoPURtKHQpP2UuY3JlYXRlUHJlZml4VW5hcnlFeHByZXNzaW9uKHAsZCk6ZS5jcmVhdGVQb3N0Zml4VW5hcnlFeHByZXNzaW9uKGQscCk7cmV0dXJuIFZlKGgsdCksXyYmKGg9ZS5jcmVhdGVBc3NpZ25tZW50KF8saCksVmUoaCx0KSkscj1lLmNyZWF0ZUNvbW1hKHIsaCksVmUocix0KSxfOCh0KSYmKHI9ZS5jcmVhdGVDb21tYShyLGQpLFZlKHIsdCkpLHJ9ZnVuY3Rpb24gRFIoZSl7cmV0dXJuKHRpKGUpJjY1NTM2KSE9PTB9ZnVuY3Rpb24gWTAoZSl7cmV0dXJuKHRpKGUpJjMyNzY4KSE9PTB9ZnVuY3Rpb24gUFIoZSl7cmV0dXJuKHRpKGUpJjE2Mzg0KSE9PTB9ZnVuY3Rpb24gRDgoZSl7cmV0dXJuIG1uKGUuZXhwcmVzc2lvbikmJmUuZXhwcmVzc2lvbi50ZXh0PT09XCJ1c2Ugc3RyaWN0XCJ9ZnVuY3Rpb24gUDgoZSl7Zm9yKGxldCB0IG9mIGUpaWYoRWEodCkpe2lmKEQ4KHQpKXJldHVybiB0fWVsc2UgYnJlYWt9ZnVuY3Rpb24gSTgoZSl7bGV0IHQ9Z18oZSk7cmV0dXJuIHQhPT12b2lkIDAmJkVhKHQpJiZEOCh0KX1mdW5jdGlvbiBKbShlKXtyZXR1cm4gZS5raW5kPT09MjI2JiZlLm9wZXJhdG9yVG9rZW4ua2luZD09PTI4fWZ1bmN0aW9uIElSKGUpe3JldHVybiBKbShlKXx8Rl8oZSl9ZnVuY3Rpb24gTjgoZSl7cmV0dXJuIGlzKGUpJiZXdChlKSYmISFaZChlKX1mdW5jdGlvbiBOUihlKXtsZXQgdD1lbShlKTtyZXR1cm4gTi5hc3NlcnRJc0RlZmluZWQodCksdH1mdW5jdGlvbiBSbShlLHQ9MTUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjE3OnJldHVybiB0JjE2JiZOOChlKT8hMToodCYxKSE9PTA7Y2FzZSAyMTY6Y2FzZSAyMzQ6Y2FzZSAyMzM6Y2FzZSAyMzg6cmV0dXJuKHQmMikhPT0wO2Nhc2UgMjM1OnJldHVybih0JjQpIT09MDtjYXNlIDM2MDpyZXR1cm4odCY4KSE9PTB9cmV0dXJuITF9ZnVuY3Rpb24gbHMoZSx0PTE1KXtmb3IoO1JtKGUsdCk7KWU9ZS5leHByZXNzaW9uO3JldHVybiBlfWZ1bmN0aW9uIE9SKGUsdD0xNSl7bGV0IHI9ZS5wYXJlbnQ7Zm9yKDtSbShyLHQpOylyPXIucGFyZW50LE4uYXNzZXJ0KHIpO3JldHVybiByfWZ1bmN0aW9uIE1SKGUpe3JldHVybiBscyhlLDYpfWZ1bmN0aW9uIGptKGUpe3JldHVybiBzZXRTdGFydHNPbk5ld0xpbmUoZSwhMCl9ZnVuY3Rpb24gTzgoZSl7bGV0IHQ9amwoZSxpaSkscj10JiZ0LmVtaXROb2RlO3JldHVybiByJiZyLmV4dGVybmFsSGVscGVyc01vZHVsZU5hbWV9ZnVuY3Rpb24gTFIoZSl7bGV0IHQ9amwoZSxpaSkscj10JiZ0LmVtaXROb2RlO3JldHVybiEhciYmKCEhci5leHRlcm5hbEhlbHBlcnNNb2R1bGVOYW1lfHwhIXIuZXh0ZXJuYWxIZWxwZXJzKX1mdW5jdGlvbiBKUihlLHQscixhLF8scCxkKXtpZihhLmltcG9ydEhlbHBlcnMmJlhnKHIsYSkpe2xldCBoLGw9bmkoYSk7aWYobD49NSYmbDw9OTl8fHIuaW1wbGllZE5vZGVGb3JtYXQ9PT05OSl7bGV0IHY9Z2V0RW1pdEhlbHBlcnMocik7aWYodil7bGV0IHk9W107Zm9yKGxldCBDIG9mIHYpaWYoIUMuc2NvcGVkKXtsZXQgUz1DLmltcG9ydE5hbWU7UyYmT2woeSxTKX1pZihtdCh5KSl7eS5zb3J0KENpKSxoPWUuY3JlYXRlTmFtZWRJbXBvcnRzKEFhKHksaz0+STMocixrKT9lLmNyZWF0ZUltcG9ydFNwZWNpZmllcighMSx2b2lkIDAsZS5jcmVhdGVJZGVudGlmaWVyKGspKTplLmNyZWF0ZUltcG9ydFNwZWNpZmllcighMSxlLmNyZWF0ZUlkZW50aWZpZXIoayksdC5nZXRVbnNjb3BlZEhlbHBlck5hbWUoaykpKSk7bGV0IEM9amwocixpaSksUz1nZXRPckNyZWF0ZUVtaXROb2RlKEMpO1MuZXh0ZXJuYWxIZWxwZXJzPSEwfX19ZWxzZXtsZXQgdj1NOChlLHIsYSxfLHB8fGQpO3YmJihoPWUuY3JlYXRlTmFtZXNwYWNlSW1wb3J0KHYpKX1pZihoKXtsZXQgdj1lLmNyZWF0ZUltcG9ydERlY2xhcmF0aW9uKHZvaWQgMCxlLmNyZWF0ZUltcG9ydENsYXVzZSghMSx2b2lkIDAsaCksZS5jcmVhdGVTdHJpbmdMaXRlcmFsKHhtKSx2b2lkIDApO3JldHVybiBhZGRJbnRlcm5hbEVtaXRGbGFncyh2LDIpLHZ9fX1mdW5jdGlvbiBNOChlLHQscixhLF8pe2lmKHIuaW1wb3J0SGVscGVycyYmWGcodCxyKSl7bGV0IHA9TzgodCk7aWYocClyZXR1cm4gcDtsZXQgZD1uaShyKSxoPShhfHxVMihyKSYmXykmJmQhPT00JiYoZDw1fHx0LmltcGxpZWROb2RlRm9ybWF0PT09MSk7aWYoIWgpe2xldCBsPWdldEVtaXRIZWxwZXJzKHQpO2lmKGwpe2ZvcihsZXQgdiBvZiBsKWlmKCF2LnNjb3BlZCl7aD0hMDticmVha319fWlmKGgpe2xldCBsPWpsKHQsaWkpLHY9Z2V0T3JDcmVhdGVFbWl0Tm9kZShsKTtyZXR1cm4gdi5leHRlcm5hbEhlbHBlcnNNb2R1bGVOYW1lfHwodi5leHRlcm5hbEhlbHBlcnNNb2R1bGVOYW1lPWUuY3JlYXRlVW5pcXVlTmFtZSh4bSkpfX19ZnVuY3Rpb24gUlIoZSx0LHIpe2xldCBhPWRUKHQpO2lmKGEmJiFtVCh0KSYmIUozKHQpKXtsZXQgXz1hLm5hbWU7cmV0dXJuIHdhKF8pP186ZS5jcmVhdGVJZGVudGlmaWVyKFhvKHIsXyl8fE90KF8pKX1pZih0LmtpbmQ9PT0yNzImJnQuaW1wb3J0Q2xhdXNlfHx0LmtpbmQ9PT0yNzgmJnQubW9kdWxlU3BlY2lmaWVyKXJldHVybiBlLmdldEdlbmVyYXRlZE5hbWVGb3JOb2RlKHQpfWZ1bmN0aW9uIGpSKGUsdCxyLGEsXyxwKXtsZXQgZD1kMih0KTtpZihkJiZtbihkKSlyZXR1cm4gQlIodCxhLGUsXyxwKXx8RlIoZSxkLHIpfHxlLmNsb25lTm9kZShkKX1mdW5jdGlvbiBGUihlLHQscil7bGV0IGE9ci5yZW5hbWVkRGVwZW5kZW5jaWVzJiZyLnJlbmFtZWREZXBlbmRlbmNpZXMuZ2V0KHQudGV4dCk7cmV0dXJuIGE/ZS5jcmVhdGVTdHJpbmdMaXRlcmFsKGEpOnZvaWQgMH1mdW5jdGlvbiBMOChlLHQscixhKXtpZih0KXtpZih0Lm1vZHVsZU5hbWUpcmV0dXJuIGUuY3JlYXRlU3RyaW5nTGl0ZXJhbCh0Lm1vZHVsZU5hbWUpO2lmKCF0LmlzRGVjbGFyYXRpb25GaWxlJiZBMihhKSlyZXR1cm4gZS5jcmVhdGVTdHJpbmdMaXRlcmFsKEUyKHIsdC5maWxlTmFtZSkpfX1mdW5jdGlvbiBCUihlLHQscixhLF8pe3JldHVybiBMOChyLGEuZ2V0RXh0ZXJuYWxNb2R1bGVGaWxlRnJvbURlY2xhcmF0aW9uKGUpLHQsXyl9ZnVuY3Rpb24gSjgoZSl7aWYoQmcoZSkpcmV0dXJuIGUuaW5pdGlhbGl6ZXI7aWYoX3MoZSkpe2xldCB0PWUuaW5pdGlhbGl6ZXI7cmV0dXJuIE5hKHQsITApP3QucmlnaHQ6dm9pZCAwfWlmKF91KGUpKXJldHVybiBlLm9iamVjdEFzc2lnbm1lbnRJbml0aWFsaXplcjtpZihOYShlLCEwKSlyZXR1cm4gZS5yaWdodDtpZih5NihlKSlyZXR1cm4gSjgoZS5leHByZXNzaW9uKX1mdW5jdGlvbiBNbyhlKXtpZihCZyhlKSlyZXR1cm4gZS5uYW1lO2lmKEZnKGUpKXtzd2l0Y2goZS5raW5kKXtjYXNlIDMwMzpyZXR1cm4gTW8oZS5pbml0aWFsaXplcik7Y2FzZSAzMDQ6cmV0dXJuIGUubmFtZTtjYXNlIDMwNTpyZXR1cm4gTW8oZS5leHByZXNzaW9uKX1yZXR1cm59cmV0dXJuIE5hKGUsITApP01vKGUubGVmdCk6eTYoZSk/TW8oZS5leHByZXNzaW9uKTplfWZ1bmN0aW9uIFVSKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMTY5OmNhc2UgMjA4OnJldHVybiBlLmRvdERvdERvdFRva2VuO2Nhc2UgMjMwOmNhc2UgMzA1OnJldHVybiBlfX1mdW5jdGlvbiBxUihlKXtsZXQgdD1SOChlKTtyZXR1cm4gTi5hc3NlcnQoISF0fHx5OChlKSxcIkludmFsaWQgcHJvcGVydHkgbmFtZSBmb3IgYmluZGluZyBlbGVtZW50LlwiKSx0fWZ1bmN0aW9uIFI4KGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjA4OmlmKGUucHJvcGVydHlOYW1lKXtsZXQgcj1lLnByb3BlcnR5TmFtZTtyZXR1cm4ganIocik/Ti5mYWlsQmFkU3ludGF4S2luZChyKTphbyhyKSYmJGIoci5leHByZXNzaW9uKT9yLmV4cHJlc3Npb246cn1icmVhaztjYXNlIDMwMzppZihlLm5hbWUpe2xldCByPWUubmFtZTtyZXR1cm4ganIocik/Ti5mYWlsQmFkU3ludGF4S2luZChyKTphbyhyKSYmJGIoci5leHByZXNzaW9uKT9yLmV4cHJlc3Npb246cn1icmVhaztjYXNlIDMwNTpyZXR1cm4gZS5uYW1lJiZqcihlLm5hbWUpP04uZmFpbEJhZFN5bnRheEtpbmQoZS5uYW1lKTplLm5hbWV9bGV0IHQ9TW8oZSk7aWYodCYmemwodCkpcmV0dXJuIHR9ZnVuY3Rpb24gJGIoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTF8fHQ9PT05fWZ1bmN0aW9uIGo4KGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMjA2OmNhc2UgMjA3OmNhc2UgMjA5OnJldHVybiBlLmVsZW1lbnRzO2Nhc2UgMjEwOnJldHVybiBlLnByb3BlcnRpZXN9fWZ1bmN0aW9uIEswKGUpe2lmKGUpe2xldCB0PWU7Zm9yKDs7KXtpZihFZSh0KXx8IXQuYm9keSlyZXR1cm4gRWUodCk/dDp0Lm5hbWU7dD10LmJvZHl9fX1mdW5jdGlvbiB6UihlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xNzZ8fHQ9PT0xNzh9ZnVuY3Rpb24gRjgoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTc2fHx0PT09MTc3fHx0PT09MTc4fWZ1bmN0aW9uIFdSKGUpe2xldCB0PWUua2luZDtyZXR1cm4gdD09PTMwM3x8dD09PTMwNHx8dD09PTI2Mnx8dD09PTE3Nnx8dD09PTE4MXx8dD09PTE3NXx8dD09PTI4Mnx8dD09PTI0M3x8dD09PTI2NHx8dD09PTI2NXx8dD09PTI2Nnx8dD09PTI2N3x8dD09PTI3MXx8dD09PTI3Mnx8dD09PTI3MHx8dD09PTI3OHx8dD09PTI3N31mdW5jdGlvbiBWUihlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xNzV8fHQ9PT0zMDN8fHQ9PT0zMDR8fHQ9PT0yODJ8fHQ9PT0yNzB9ZnVuY3Rpb24gSFIoZSl7cmV0dXJuIFBsKGUpfHxEZChlKX1mdW5jdGlvbiBHUihlKXtyZXR1cm4gRWUoZSl8fGQ2KGUpfWZ1bmN0aW9uIFhSKGUpe3JldHVybiB6eChlKXx8czYoZSl8fF82KGUpfWZ1bmN0aW9uICRSKGUpe3JldHVybiBQbChlKXx8czYoZSl8fF82KGUpfWZ1bmN0aW9uIFFSKGUpe3JldHVybiBFZShlKXx8bW4oZSl9ZnVuY3Rpb24gWVIoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTA2fHx0PT09MTEyfHx0PT09OTd8fE9nKGUpfHxEbShlKX1mdW5jdGlvbiBLUihlKXtyZXR1cm4gZT09PTQzfWZ1bmN0aW9uIFpSKGUpe3JldHVybiBlPT09NDJ8fGU9PT00NHx8ZT09PTQ1fWZ1bmN0aW9uIGVqKGUpe3JldHVybiBLUihlKXx8WlIoZSl9ZnVuY3Rpb24gdGooZSl7cmV0dXJuIGU9PT00MHx8ZT09PTQxfWZ1bmN0aW9uIHJqKGUpe3JldHVybiB0aihlKXx8ZWooZSl9ZnVuY3Rpb24gbmooZSl7cmV0dXJuIGU9PT00OHx8ZT09PTQ5fHxlPT09NTB9ZnVuY3Rpb24gaWooZSl7cmV0dXJuIG5qKGUpfHxyaihlKX1mdW5jdGlvbiBhaihlKXtyZXR1cm4gZT09PTMwfHxlPT09MzN8fGU9PT0zMnx8ZT09PTM0fHxlPT09MTA0fHxlPT09MTAzfWZ1bmN0aW9uIG9qKGUpe3JldHVybiBhaihlKXx8aWooZSl9ZnVuY3Rpb24gc2ooZSl7cmV0dXJuIGU9PT0zNXx8ZT09PTM3fHxlPT09MzZ8fGU9PT0zOH1mdW5jdGlvbiBfaihlKXtyZXR1cm4gc2ooZSl8fG9qKGUpfWZ1bmN0aW9uIGNqKGUpe3JldHVybiBlPT09NTF8fGU9PT01Mnx8ZT09PTUzfWZ1bmN0aW9uIGxqKGUpe3JldHVybiBjaihlKXx8X2ooZSl9ZnVuY3Rpb24gdWooZSl7cmV0dXJuIGU9PT01Nnx8ZT09PTU3fWZ1bmN0aW9uIHBqKGUpe3JldHVybiB1aihlKXx8bGooZSl9ZnVuY3Rpb24gZmooZSl7cmV0dXJuIGU9PT02MXx8cGooZSl8fERfKGUpfWZ1bmN0aW9uIGRqKGUpe3JldHVybiBmaihlKXx8ZT09PTI4fWZ1bmN0aW9uIG1qKGUpe3JldHVybiBkaihlLmtpbmQpfWZ1bmN0aW9uIGhqKGUsdCxyLGEsXyxwKXtsZXQgZD1uZXcgVTgoZSx0LHIsYSxfLHApO3JldHVybiBoO2Z1bmN0aW9uIGgobCx2KXtsZXQgeT17dmFsdWU6dm9pZCAwfSxDPVtJZC5lbnRlcl0sUz1bbF0saz1bdm9pZCAwXSxMPTA7Zm9yKDtDW0xdIT09SWQuZG9uZTspTD1DW0xdKGQsTCxDLFMsayx5LHYpO3JldHVybiBOLmFzc2VydEVxdWFsKEwsMCkseS52YWx1ZX19ZnVuY3Rpb24gQjgoZSl7cmV0dXJuIGU9PT05NXx8ZT09PTkwfWZ1bmN0aW9uIHlqKGUpe2xldCB0PWUua2luZDtyZXR1cm4gQjgodCl9ZnVuY3Rpb24gZ2ooZSl7bGV0IHQ9ZS5raW5kO3JldHVybiBiaSh0KSYmIUI4KHQpfWZ1bmN0aW9uIGJqKGUsdCl7aWYodCE9PXZvaWQgMClyZXR1cm4gdC5sZW5ndGg9PT0wP3Q6VmUoZS5jcmVhdGVOb2RlQXJyYXkoW10sdC5oYXNUcmFpbGluZ0NvbW1hKSx0KX1mdW5jdGlvbiB2aihlKXt2YXIgdDtsZXQgcj1lLmVtaXROb2RlLmF1dG9HZW5lcmF0ZTtpZihyLmZsYWdzJjQpe2xldCBhPXIuaWQsXz1lLHA9Xy5vcmlnaW5hbDtmb3IoO3A7KXtfPXA7bGV0IGQ9KHQ9Xy5lbWl0Tm9kZSk9PW51bGw/dm9pZCAwOnQuYXV0b0dlbmVyYXRlO2lmKHJvKF8pJiYoZD09PXZvaWQgMHx8ZC5mbGFncyY0JiZkLmlkIT09YSkpYnJlYWs7cD1fLm9yaWdpbmFsfXJldHVybiBffXJldHVybiBlfWZ1bmN0aW9uIFowKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT1cIm9iamVjdFwiP1BkKCExLGUucHJlZml4LGUubm9kZSxlLnN1ZmZpeCx0KTp0eXBlb2YgZT09XCJzdHJpbmdcIj9lLmxlbmd0aD4wJiZlLmNoYXJDb2RlQXQoMCk9PT0zNT9lLnNsaWNlKDEpOmU6XCJcIn1mdW5jdGlvbiBUaihlLHQpe3JldHVybiB0eXBlb2YgZT09XCJzdHJpbmdcIj9lOlNqKGUsTi5jaGVja0RlZmluZWQodCkpfWZ1bmN0aW9uIFNqKGUsdCl7cmV0dXJuIE1nKGUpP3QoZSkuc2xpY2UoMSk6d2EoZSk/dChlKTpqcihlKT9lLmVzY2FwZWRUZXh0LnNsaWNlKDEpOk90KGUpfWZ1bmN0aW9uIFBkKGUsdCxyLGEsXyl7cmV0dXJuIHQ9WjAodCxfKSxhPVowKGEsXykscj1UaihyLF8pLGAke2U/XCIjXCI6XCJcIn0ke3R9JHtyfSR7YX1gfWZ1bmN0aW9uIHhqKGUsdCxyLGEpe3JldHVybiBlLnVwZGF0ZVByb3BlcnR5RGVjbGFyYXRpb24odCxyLGUuZ2V0R2VuZXJhdGVkUHJpdmF0ZU5hbWVGb3JOb2RlKHQubmFtZSx2b2lkIDAsXCJfYWNjZXNzb3Jfc3RvcmFnZVwiKSx2b2lkIDAsdm9pZCAwLGEpfWZ1bmN0aW9uIHdqKGUsdCxyLGEsXz1lLmNyZWF0ZVRoaXMoKSl7cmV0dXJuIGUuY3JlYXRlR2V0QWNjZXNzb3JEZWNsYXJhdGlvbihyLGEsW10sdm9pZCAwLGUuY3JlYXRlQmxvY2soW2UuY3JlYXRlUmV0dXJuU3RhdGVtZW50KGUuY3JlYXRlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKF8sZS5nZXRHZW5lcmF0ZWRQcml2YXRlTmFtZUZvck5vZGUodC5uYW1lLHZvaWQgMCxcIl9hY2Nlc3Nvcl9zdG9yYWdlXCIpKSldKSl9ZnVuY3Rpb24gQ2ooZSx0LHIsYSxfPWUuY3JlYXRlVGhpcygpKXtyZXR1cm4gZS5jcmVhdGVTZXRBY2Nlc3NvckRlY2xhcmF0aW9uKHIsYSxbZS5jcmVhdGVQYXJhbWV0ZXJEZWNsYXJhdGlvbih2b2lkIDAsdm9pZCAwLFwidmFsdWVcIildLGUuY3JlYXRlQmxvY2soW2UuY3JlYXRlRXhwcmVzc2lvblN0YXRlbWVudChlLmNyZWF0ZUFzc2lnbm1lbnQoZS5jcmVhdGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oXyxlLmdldEdlbmVyYXRlZFByaXZhdGVOYW1lRm9yTm9kZSh0Lm5hbWUsdm9pZCAwLFwiX2FjY2Vzc29yX3N0b3JhZ2VcIikpLGUuY3JlYXRlSWRlbnRpZmllcihcInZhbHVlXCIpKSldKSl9ZnVuY3Rpb24gRWooZSl7bGV0IHQ9ZS5leHByZXNzaW9uO2Zvcig7Oyl7aWYodD1scyh0KSxGXyh0KSl7dD1rYSh0LmVsZW1lbnRzKTtjb250aW51ZX1pZihKbSh0KSl7dD10LnJpZ2h0O2NvbnRpbnVlfWlmKE5hKHQsITApJiZ3YSh0LmxlZnQpKXJldHVybiB0O2JyZWFrfX1mdW5jdGlvbiBBaihlKXtyZXR1cm4gaXMoZSkmJlRhKGUpJiYhZS5lbWl0Tm9kZX1mdW5jdGlvbiBvbChlLHQpe2lmKEFqKGUpKW9sKGUuZXhwcmVzc2lvbix0KTtlbHNlIGlmKEptKGUpKW9sKGUubGVmdCx0KSxvbChlLnJpZ2h0LHQpO2Vsc2UgaWYoRl8oZSkpZm9yKGxldCByIG9mIGUuZWxlbWVudHMpb2wocix0KTtlbHNlIHQucHVzaChlKX1mdW5jdGlvbiBraihlKXtsZXQgdD1bXTtyZXR1cm4gb2woZSx0KSx0fWZ1bmN0aW9uIFU2KGUpe2lmKGUudHJhbnNmb3JtRmxhZ3MmNjU1MzYpcmV0dXJuITA7aWYoZS50cmFuc2Zvcm1GbGFncyYxMjgpZm9yKGxldCB0IG9mIGo4KGUpKXtsZXQgcj1Nbyh0KTtpZihyJiZ1MyhyKSYmKHIudHJhbnNmb3JtRmxhZ3MmNjU1MzZ8fHIudHJhbnNmb3JtRmxhZ3MmMTI4JiZVNihyKSkpcmV0dXJuITB9cmV0dXJuITF9dmFyIElkLFU4LERqPVZ0KHtcInNyYy9jb21waWxlci9mYWN0b3J5L3V0aWxpdGllcy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7RHIoKSwoZT0+e2Z1bmN0aW9uIHQoeSxDLFMsayxMLEcsSyl7bGV0IHVlPUM+MD9MW0MtMV06dm9pZCAwO3JldHVybiBOLmFzc2VydEVxdWFsKFNbQ10sdCksTFtDXT15Lm9uRW50ZXIoa1tDXSx1ZSxLKSxTW0NdPWgoeSx0KSxDfWUuZW50ZXI9dDtmdW5jdGlvbiByKHksQyxTLGssTCxHLEspe04uYXNzZXJ0RXF1YWwoU1tDXSxyKSxOLmFzc2VydElzRGVmaW5lZCh5Lm9uTGVmdCksU1tDXT1oKHkscik7bGV0IHVlPXkub25MZWZ0KGtbQ10ubGVmdCxMW0NdLGtbQ10pO3JldHVybiB1ZT8odihDLGssdWUpLGwoQyxTLGssTCx1ZSkpOkN9ZS5sZWZ0PXI7ZnVuY3Rpb24gYSh5LEMsUyxrLEwsRyxLKXtyZXR1cm4gTi5hc3NlcnRFcXVhbChTW0NdLGEpLE4uYXNzZXJ0SXNEZWZpbmVkKHkub25PcGVyYXRvciksU1tDXT1oKHksYSkseS5vbk9wZXJhdG9yKGtbQ10ub3BlcmF0b3JUb2tlbixMW0NdLGtbQ10pLEN9ZS5vcGVyYXRvcj1hO2Z1bmN0aW9uIF8oeSxDLFMsayxMLEcsSyl7Ti5hc3NlcnRFcXVhbChTW0NdLF8pLE4uYXNzZXJ0SXNEZWZpbmVkKHkub25SaWdodCksU1tDXT1oKHksXyk7bGV0IHVlPXkub25SaWdodChrW0NdLnJpZ2h0LExbQ10sa1tDXSk7cmV0dXJuIHVlPyh2KEMsayx1ZSksbChDLFMsayxMLHVlKSk6Q31lLnJpZ2h0PV87ZnVuY3Rpb24gcCh5LEMsUyxrLEwsRyxLKXtOLmFzc2VydEVxdWFsKFNbQ10scCksU1tDXT1oKHkscCk7bGV0IHVlPXkub25FeGl0KGtbQ10sTFtDXSk7aWYoQz4wKXtpZihDLS0seS5mb2xkU3RhdGUpe2xldCBZPVNbQ109PT1wP1wicmlnaHRcIjpcImxlZnRcIjtMW0NdPXkuZm9sZFN0YXRlKExbQ10sdWUsWSl9fWVsc2UgRy52YWx1ZT11ZTtyZXR1cm4gQ31lLmV4aXQ9cDtmdW5jdGlvbiBkKHksQyxTLGssTCxHLEspe3JldHVybiBOLmFzc2VydEVxdWFsKFNbQ10sZCksQ31lLmRvbmU9ZDtmdW5jdGlvbiBoKHksQyl7c3dpdGNoKEMpe2Nhc2UgdDppZih5Lm9uTGVmdClyZXR1cm4gcjtjYXNlIHI6aWYoeS5vbk9wZXJhdG9yKXJldHVybiBhO2Nhc2UgYTppZih5Lm9uUmlnaHQpcmV0dXJuIF87Y2FzZSBfOnJldHVybiBwO2Nhc2UgcDpyZXR1cm4gZDtjYXNlIGQ6cmV0dXJuIGQ7ZGVmYXVsdDpOLmZhaWwoXCJJbnZhbGlkIHN0YXRlXCIpfX1lLm5leHRTdGF0ZT1oO2Z1bmN0aW9uIGwoeSxDLFMsayxMKXtyZXR1cm4geSsrLENbeV09dCxTW3ldPUwsa1t5XT12b2lkIDAseX1mdW5jdGlvbiB2KHksQyxTKXtpZihOLnNob3VsZEFzc2VydCgyKSlmb3IoO3k+PTA7KU4uYXNzZXJ0KENbeV0hPT1TLFwiQ2lyY3VsYXIgdHJhdmVyc2FsIGRldGVjdGVkLlwiKSx5LS19fSkoSWR8fChJZD17fSkpLFU4PWNsYXNze2NvbnN0cnVjdG9yKGUsdCxyLGEsXyxwKXt0aGlzLm9uRW50ZXI9ZSx0aGlzLm9uTGVmdD10LHRoaXMub25PcGVyYXRvcj1yLHRoaXMub25SaWdodD1hLHRoaXMub25FeGl0PV8sdGhpcy5mb2xkU3RhdGU9cH19fX0pO2Z1bmN0aW9uIFZlKGUsdCl7cmV0dXJuIHQ/WWEoZSx0LnBvcyx0LmVuZCk6ZX1mdW5jdGlvbiBxXyhlKXtsZXQgdD1lLmtpbmQ7cmV0dXJuIHQ9PT0xNjh8fHQ9PT0xNjl8fHQ9PT0xNzF8fHQ9PT0xNzJ8fHQ9PT0xNzN8fHQ9PT0xNzR8fHQ9PT0xNzZ8fHQ9PT0xNzd8fHQ9PT0xNzh8fHQ9PT0xODF8fHQ9PT0xODV8fHQ9PT0yMTh8fHQ9PT0yMTl8fHQ9PT0yMzF8fHQ9PT0yNDN8fHQ9PT0yNjJ8fHQ9PT0yNjN8fHQ9PT0yNjR8fHQ9PT0yNjV8fHQ9PT0yNjZ8fHQ9PT0yNjd8fHQ9PT0yNzF8fHQ9PT0yNzJ8fHQ9PT0yNzd8fHQ9PT0yNzh9ZnVuY3Rpb24gcTgoZSl7bGV0IHQ9ZS5raW5kO3JldHVybiB0PT09MTY5fHx0PT09MTcyfHx0PT09MTc0fHx0PT09MTc3fHx0PT09MTc4fHx0PT09MjMxfHx0PT09MjYzfXZhciBQaj1WdCh7XCJzcmMvY29tcGlsZXIvZmFjdG9yeS91dGlsaXRpZXNQdWJsaWMudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCl9fSk7ZnVuY3Rpb24gUChlLHQpe3JldHVybiB0JiZlKHQpfWZ1bmN0aW9uIF9lKGUsdCxyKXtpZihyKXtpZih0KXJldHVybiB0KHIpO2ZvcihsZXQgYSBvZiByKXtsZXQgXz1lKGEpO2lmKF8pcmV0dXJuIF99fX1mdW5jdGlvbiB6OChlLHQpe3JldHVybiBlLmNoYXJDb2RlQXQodCsxKT09PTQyJiZlLmNoYXJDb2RlQXQodCsyKT09PTQyJiZlLmNoYXJDb2RlQXQodCszKSE9PTQ3fWZ1bmN0aW9uIG1sKGUpe3JldHVybiB5cihlLnN0YXRlbWVudHMsSWopfHxOaihlKX1mdW5jdGlvbiBJaihlKXtyZXR1cm4gcV8oZSkmJk9qKGUsOTUpfHx3NihlKSYmTm0oZS5tb2R1bGVSZWZlcmVuY2UpfHxDNihlKXx8c3MoZSl8fEJfKGUpP2U6dm9pZCAwfWZ1bmN0aW9uIE5qKGUpe3JldHVybiBlLmZsYWdzJjgzODg2MDg/VzgoZSk6dm9pZCAwfWZ1bmN0aW9uIFc4KGUpe3JldHVybiBNaihlKT9lOkJ0KGUsVzgpfWZ1bmN0aW9uIE9qKGUsdCl7cmV0dXJuIG10KGUubW9kaWZpZXJzLHI9PnIua2luZD09PXQpfWZ1bmN0aW9uIE1qKGUpe3JldHVybiBiNihlKSYmZS5rZXl3b3JkVG9rZW49PT0xMDImJmUubmFtZS5lc2NhcGVkVGV4dD09PVwibWV0YVwifWZ1bmN0aW9uIFFiKGUsdCxyKXtyZXR1cm4gX2UodCxyLGUudHlwZVBhcmFtZXRlcnMpfHxfZSh0LHIsZS5wYXJhbWV0ZXJzKXx8UCh0LGUudHlwZSl9ZnVuY3Rpb24gWWIoZSx0LHIpe3JldHVybiBfZSh0LHIsZS50eXBlcyl9ZnVuY3Rpb24gS2IoZSx0LHIpe3JldHVybiBQKHQsZS50eXBlKX1mdW5jdGlvbiBaYihlLHQscil7cmV0dXJuIF9lKHQscixlLmVsZW1lbnRzKX1mdW5jdGlvbiBldihlLHQscil7cmV0dXJuIFAodCxlLmV4cHJlc3Npb24pfHxQKHQsZS5xdWVzdGlvbkRvdFRva2VuKXx8X2UodCxyLGUudHlwZUFyZ3VtZW50cyl8fF9lKHQscixlLmFyZ3VtZW50cyl9ZnVuY3Rpb24gdHYoZSx0LHIpe3JldHVybiBfZSh0LHIsZS5zdGF0ZW1lbnRzKX1mdW5jdGlvbiBydihlLHQscil7cmV0dXJuIFAodCxlLmxhYmVsKX1mdW5jdGlvbiBudihlLHQscil7cmV0dXJuIF9lKHQscixlLm1vZGlmaWVycyl8fFAodCxlLm5hbWUpfHxfZSh0LHIsZS50eXBlUGFyYW1ldGVycyl8fF9lKHQscixlLmhlcml0YWdlQ2xhdXNlcyl8fF9lKHQscixlLm1lbWJlcnMpfWZ1bmN0aW9uIGl2KGUsdCxyKXtyZXR1cm4gX2UodCxyLGUuZWxlbWVudHMpfWZ1bmN0aW9uIGF2KGUsdCxyKXtyZXR1cm4gUCh0LGUucHJvcGVydHlOYW1lKXx8UCh0LGUubmFtZSl9ZnVuY3Rpb24gb3YoZSx0LHIpe3JldHVybiBQKHQsZS50YWdOYW1lKXx8X2UodCxyLGUudHlwZUFyZ3VtZW50cyl8fFAodCxlLmF0dHJpYnV0ZXMpfWZ1bmN0aW9uIHdvKGUsdCxyKXtyZXR1cm4gUCh0LGUudHlwZSl9ZnVuY3Rpb24gc3YoZSx0LHIpe3JldHVybiBQKHQsZS50YWdOYW1lKXx8KGUuaXNOYW1lRmlyc3Q/UCh0LGUubmFtZSl8fFAodCxlLnR5cGVFeHByZXNzaW9uKTpQKHQsZS50eXBlRXhwcmVzc2lvbil8fFAodCxlLm5hbWUpKXx8KHR5cGVvZiBlLmNvbW1lbnQ9PVwic3RyaW5nXCI/dm9pZCAwOl9lKHQscixlLmNvbW1lbnQpKX1mdW5jdGlvbiBDbyhlLHQscil7cmV0dXJuIFAodCxlLnRhZ05hbWUpfHxQKHQsZS50eXBlRXhwcmVzc2lvbil8fCh0eXBlb2YgZS5jb21tZW50PT1cInN0cmluZ1wiP3ZvaWQgMDpfZSh0LHIsZS5jb21tZW50KSl9ZnVuY3Rpb24gS2goZSx0LHIpe3JldHVybiBQKHQsZS5uYW1lKX1mdW5jdGlvbiBYYShlLHQscil7cmV0dXJuIFAodCxlLnRhZ05hbWUpfHwodHlwZW9mIGUuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UodCxyLGUuY29tbWVudCkpfWZ1bmN0aW9uIExqKGUsdCxyKXtyZXR1cm4gUCh0LGUuZXhwcmVzc2lvbil9ZnVuY3Rpb24gQnQoZSx0LHIpe2lmKGU9PT12b2lkIDB8fGUua2luZDw9MTY1KXJldHVybjtsZXQgYT1ROFtlLmtpbmRdO3JldHVybiBhPT09dm9pZCAwP3ZvaWQgMDphKGUsdCxyKX1mdW5jdGlvbiBlZyhlLHQscil7bGV0IGE9X3YoZSksXz1bXTtmb3IoO18ubGVuZ3RoPGEubGVuZ3RoOylfLnB1c2goZSk7Zm9yKDthLmxlbmd0aCE9PTA7KXtsZXQgcD1hLnBvcCgpLGQ9Xy5wb3AoKTtpZih6dChwKSl7aWYocil7bGV0IGg9cihwLGQpO2lmKGgpe2lmKGg9PT1cInNraXBcIiljb250aW51ZTtyZXR1cm4gaH19Zm9yKGxldCBoPXAubGVuZ3RoLTE7aD49MDstLWgpYS5wdXNoKHBbaF0pLF8ucHVzaChkKX1lbHNle2xldCBoPXQocCxkKTtpZihoKXtpZihoPT09XCJza2lwXCIpY29udGludWU7cmV0dXJuIGh9aWYocC5raW5kPj0xNjYpZm9yKGxldCBsIG9mIF92KHApKWEucHVzaChsKSxfLnB1c2gocCl9fX1mdW5jdGlvbiBfdihlKXtsZXQgdD1bXTtyZXR1cm4gQnQoZSxyLHIpLHQ7ZnVuY3Rpb24gcihhKXt0LnVuc2hpZnQoYSl9fWZ1bmN0aW9uIFY4KGUpe2UuZXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3I9bWwoZSl9ZnVuY3Rpb24gSDgoZSx0LHIsYT0hMSxfKXt2YXIgcCxkLGgsbDsocD14YSk9PW51bGx8fHAucHVzaCh4YS5QaGFzZS5QYXJzZSxcImNyZWF0ZVNvdXJjZUZpbGVcIix7cGF0aDplfSwhMCksTGIoXCJiZWZvcmVQYXJzZVwiKTtsZXQgdjsoZD1ZZik9PW51bGx8fGQubG9nU3RhcnRQYXJzZVNvdXJjZUZpbGUoZSk7bGV0e2xhbmd1YWdlVmVyc2lvbjp5LHNldEV4dGVybmFsTW9kdWxlSW5kaWNhdG9yOkMsaW1wbGllZE5vZGVGb3JtYXQ6U309dHlwZW9mIHI9PVwib2JqZWN0XCI/cjp7bGFuZ3VhZ2VWZXJzaW9uOnJ9O2lmKHk9PT0xMDApdj1abi5wYXJzZVNvdXJjZUZpbGUoZSx0LHksdm9pZCAwLGEsNixSbik7ZWxzZXtsZXQgaz1TPT09dm9pZCAwP0M6TD0+KEwuaW1wbGllZE5vZGVGb3JtYXQ9UywoQ3x8VjgpKEwpKTt2PVpuLnBhcnNlU291cmNlRmlsZShlLHQseSx2b2lkIDAsYSxfLGspfXJldHVybihoPVlmKT09bnVsbHx8aC5sb2dTdG9wUGFyc2VTb3VyY2VGaWxlKCksTGIoXCJhZnRlclBhcnNlXCIpLGdFKFwiUGFyc2VcIixcImJlZm9yZVBhcnNlXCIsXCJhZnRlclBhcnNlXCIpLChsPXhhKT09bnVsbHx8bC5wb3AoKSx2fWZ1bmN0aW9uIEpqKGUsdCl7cmV0dXJuIFpuLnBhcnNlSXNvbGF0ZWRFbnRpdHlOYW1lKGUsdCl9ZnVuY3Rpb24gUmooZSx0KXtyZXR1cm4gWm4ucGFyc2VKc29uVGV4dChlLHQpfWZ1bmN0aW9uIFpvKGUpe3JldHVybiBlLmV4dGVybmFsTW9kdWxlSW5kaWNhdG9yIT09dm9pZCAwfWZ1bmN0aW9uIHE2KGUsdCxyLGE9ITEpe2xldCBfPVdmLnVwZGF0ZVNvdXJjZUZpbGUoZSx0LHIsYSk7cmV0dXJuIF8uZmxhZ3N8PWUuZmxhZ3MmMTI1ODI5MTIsX31mdW5jdGlvbiBqaihlLHQscil7bGV0IGE9Wm4uSlNEb2NQYXJzZXIucGFyc2VJc29sYXRlZEpTRG9jQ29tbWVudChlLHQscik7cmV0dXJuIGEmJmEuanNEb2MmJlpuLmZpeHVwUGFyZW50UmVmZXJlbmNlcyhhLmpzRG9jKSxhfWZ1bmN0aW9uIEZqKGUsdCxyKXtyZXR1cm4gWm4uSlNEb2NQYXJzZXIucGFyc2VKU0RvY1R5cGVFeHByZXNzaW9uRm9yVGVzdHMoZSx0LHIpfWZ1bmN0aW9uIEc4KGUpe3JldHVybiBlaShlLG42KXx8TGEoZSxcIi50c1wiKSYmZW8oVF8oZSksXCIuZC5cIil9ZnVuY3Rpb24gQmooZSx0LHIsYSl7aWYoZSl7aWYoZT09PVwiaW1wb3J0XCIpcmV0dXJuIDk5O2lmKGU9PT1cInJlcXVpcmVcIilyZXR1cm4gMTthKHQsci10LFUucmVzb2x1dGlvbl9tb2RlX3Nob3VsZF9iZV9laXRoZXJfcmVxdWlyZV9vcl9pbXBvcnQpfX1mdW5jdGlvbiBYOChlLHQpe2xldCByPVtdO2ZvcihsZXQgYSBvZiBXbyh0LDApfHwkZSl7bGV0IF89dC5zdWJzdHJpbmcoYS5wb3MsYS5lbmQpO3FqKHIsYSxfKX1lLnByYWdtYXM9bmV3IE1hcDtmb3IobGV0IGEgb2Ygcil7aWYoZS5wcmFnbWFzLmhhcyhhLm5hbWUpKXtsZXQgXz1lLnByYWdtYXMuZ2V0KGEubmFtZSk7XyBpbnN0YW5jZW9mIEFycmF5P18ucHVzaChhLmFyZ3MpOmUucHJhZ21hcy5zZXQoYS5uYW1lLFtfLGEuYXJnc10pO2NvbnRpbnVlfWUucHJhZ21hcy5zZXQoYS5uYW1lLGEuYXJncyl9fWZ1bmN0aW9uICQ4KGUsdCl7ZS5jaGVja0pzRGlyZWN0aXZlPXZvaWQgMCxlLnJlZmVyZW5jZWRGaWxlcz1bXSxlLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzPVtdLGUubGliUmVmZXJlbmNlRGlyZWN0aXZlcz1bXSxlLmFtZERlcGVuZGVuY2llcz1bXSxlLmhhc05vRGVmYXVsdExpYj0hMSxlLnByYWdtYXMuZm9yRWFjaCgocixhKT0+e3N3aXRjaChhKXtjYXNlXCJyZWZlcmVuY2VcIjp7bGV0IF89ZS5yZWZlcmVuY2VkRmlsZXMscD1lLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzLGQ9ZS5saWJSZWZlcmVuY2VEaXJlY3RpdmVzO3lyKFBmKHIpLGg9PntsZXR7dHlwZXM6bCxsaWI6dixwYXRoOnksW1wicmVzb2x1dGlvbi1tb2RlXCJdOkN9PWguYXJndW1lbnRzO2lmKGguYXJndW1lbnRzW1wibm8tZGVmYXVsdC1saWJcIl0pZS5oYXNOb0RlZmF1bHRMaWI9ITA7ZWxzZSBpZihsKXtsZXQgUz1CaihDLGwucG9zLGwuZW5kLHQpO3AucHVzaCh7cG9zOmwucG9zLGVuZDpsLmVuZCxmaWxlTmFtZTpsLnZhbHVlLC4uLlM/e3Jlc29sdXRpb25Nb2RlOlN9Ont9fSl9ZWxzZSB2P2QucHVzaCh7cG9zOnYucG9zLGVuZDp2LmVuZCxmaWxlTmFtZTp2LnZhbHVlfSk6eT9fLnB1c2goe3Bvczp5LnBvcyxlbmQ6eS5lbmQsZmlsZU5hbWU6eS52YWx1ZX0pOnQoaC5yYW5nZS5wb3MsaC5yYW5nZS5lbmQtaC5yYW5nZS5wb3MsVS5JbnZhbGlkX3JlZmVyZW5jZV9kaXJlY3RpdmVfc3ludGF4KX0pO2JyZWFrfWNhc2VcImFtZC1kZXBlbmRlbmN5XCI6e2UuYW1kRGVwZW5kZW5jaWVzPUFhKFBmKHIpLF89Pih7bmFtZTpfLmFyZ3VtZW50cy5uYW1lLHBhdGg6Xy5hcmd1bWVudHMucGF0aH0pKTticmVha31jYXNlXCJhbWQtbW9kdWxlXCI6e2lmKHIgaW5zdGFuY2VvZiBBcnJheSlmb3IobGV0IF8gb2YgcillLm1vZHVsZU5hbWUmJnQoXy5yYW5nZS5wb3MsXy5yYW5nZS5lbmQtXy5yYW5nZS5wb3MsVS5Bbl9BTURfbW9kdWxlX2Nhbm5vdF9oYXZlX211bHRpcGxlX25hbWVfYXNzaWdubWVudHMpLGUubW9kdWxlTmFtZT1fLmFyZ3VtZW50cy5uYW1lO2Vsc2UgZS5tb2R1bGVOYW1lPXIuYXJndW1lbnRzLm5hbWU7YnJlYWt9Y2FzZVwidHMtbm9jaGVja1wiOmNhc2VcInRzLWNoZWNrXCI6e3lyKFBmKHIpLF89PnsoIWUuY2hlY2tKc0RpcmVjdGl2ZXx8Xy5yYW5nZS5wb3M+ZS5jaGVja0pzRGlyZWN0aXZlLnBvcykmJihlLmNoZWNrSnNEaXJlY3RpdmU9e2VuYWJsZWQ6YT09PVwidHMtY2hlY2tcIixlbmQ6Xy5yYW5nZS5lbmQscG9zOl8ucmFuZ2UucG9zfSl9KTticmVha31jYXNlXCJqc3hcIjpjYXNlXCJqc3hmcmFnXCI6Y2FzZVwianN4aW1wb3J0c291cmNlXCI6Y2FzZVwianN4cnVudGltZVwiOnJldHVybjtkZWZhdWx0Ok4uZmFpbChcIlVuaGFuZGxlZCBwcmFnbWEga2luZFwiKX19KX1mdW5jdGlvbiBVaihlKXtpZihWZi5oYXMoZSkpcmV0dXJuIFZmLmdldChlKTtsZXQgdD1uZXcgUmVnRXhwKGAoXFxcXHMke2V9XFxcXHMqPVxcXFxzKikoPzooPzonKFteJ10qKScpfCg/OlwiKFteXCJdKilcIikpYCxcImltXCIpO3JldHVybiBWZi5zZXQoZSx0KSx0fWZ1bmN0aW9uIHFqKGUsdCxyKXtsZXQgYT10LmtpbmQ9PT0yJiZZOC5leGVjKHIpO2lmKGEpe2xldCBwPWFbMV0udG9Mb3dlckNhc2UoKSxkPXFkW3BdO2lmKCFkfHwhKGQua2luZCYxKSlyZXR1cm47aWYoZC5hcmdzKXtsZXQgaD17fTtmb3IobGV0IGwgb2YgZC5hcmdzKXtsZXQgeT1VaihsLm5hbWUpLmV4ZWMocik7aWYoIXkmJiFsLm9wdGlvbmFsKXJldHVybjtpZih5KXtsZXQgQz15WzJdfHx5WzNdO2lmKGwuY2FwdHVyZVNwYW4pe2xldCBTPXQucG9zK3kuaW5kZXgreVsxXS5sZW5ndGgrMTtoW2wubmFtZV09e3ZhbHVlOkMscG9zOlMsZW5kOlMrQy5sZW5ndGh9fWVsc2UgaFtsLm5hbWVdPUN9fWUucHVzaCh7bmFtZTpwLGFyZ3M6e2FyZ3VtZW50czpoLHJhbmdlOnR9fSl9ZWxzZSBlLnB1c2goe25hbWU6cCxhcmdzOnthcmd1bWVudHM6e30scmFuZ2U6dH19KTtyZXR1cm59bGV0IF89dC5raW5kPT09MiYmSzguZXhlYyhyKTtpZihfKXJldHVybiBjdihlLHQsMixfKTtpZih0LmtpbmQ9PT0zKXtsZXQgcD0vQChcXFMrKShcXHMrLiopPyQvZ2ltLGQ7Zm9yKDtkPXAuZXhlYyhyKTspY3YoZSx0LDQsZCl9fWZ1bmN0aW9uIGN2KGUsdCxyLGEpe2lmKCFhKXJldHVybjtsZXQgXz1hWzFdLnRvTG93ZXJDYXNlKCkscD1xZFtfXTtpZighcHx8IShwLmtpbmQmcikpcmV0dXJuO2xldCBkPWFbMl0saD16aihwLGQpO2ghPT1cImZhaWxcIiYmZS5wdXNoKHtuYW1lOl8sYXJnczp7YXJndW1lbnRzOmgscmFuZ2U6dH19KX1mdW5jdGlvbiB6aihlLHQpe2lmKCF0KXJldHVybnt9O2lmKCFlLmFyZ3MpcmV0dXJue307bGV0IHI9VWQodCkuc3BsaXQoL1xccysvKSxhPXt9O2ZvcihsZXQgXz0wO188ZS5hcmdzLmxlbmd0aDtfKyspe2xldCBwPWUuYXJnc1tfXTtpZighcltfXSYmIXAub3B0aW9uYWwpcmV0dXJuXCJmYWlsXCI7aWYocC5jYXB0dXJlU3BhbilyZXR1cm4gTi5mYWlsKFwiQ2FwdHVyZSBzcGFucyBub3QgeWV0IGltcGxlbWVudGVkIGZvciBub24teG1sIHByYWdtYXNcIik7YVtwLm5hbWVdPXJbX119cmV0dXJuIGF9ZnVuY3Rpb24gVGkoZSx0KXtyZXR1cm4gZS5raW5kIT09dC5raW5kPyExOmUua2luZD09PTgwP2UuZXNjYXBlZFRleHQ9PT10LmVzY2FwZWRUZXh0OmUua2luZD09PTExMD8hMDplLmtpbmQ9PT0yOTU/ZS5uYW1lc3BhY2UuZXNjYXBlZFRleHQ9PT10Lm5hbWVzcGFjZS5lc2NhcGVkVGV4dCYmZS5uYW1lLmVzY2FwZWRUZXh0PT09dC5uYW1lLmVzY2FwZWRUZXh0OmUubmFtZS5lc2NhcGVkVGV4dD09PXQubmFtZS5lc2NhcGVkVGV4dCYmVGkoZS5leHByZXNzaW9uLHQuZXhwcmVzc2lvbil9dmFyIGx2LHV2LHB2LGZ2LGR2LHRnLHpfLFE4LFpuLFdmLFZmLFk4LEs4LFdqPVZ0KHtcInNyYy9jb21waWxlci9wYXJzZXIudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksWHYoKSx0Zz17Y3JlYXRlQmFzZVNvdXJjZUZpbGVOb2RlOmU9Pm5ldyhkdnx8KGR2PXd0LmdldFNvdXJjZUZpbGVDb25zdHJ1Y3RvcigpKSkoZSwtMSwtMSksY3JlYXRlQmFzZUlkZW50aWZpZXJOb2RlOmU9Pm5ldyhwdnx8KHB2PXd0LmdldElkZW50aWZpZXJDb25zdHJ1Y3RvcigpKSkoZSwtMSwtMSksY3JlYXRlQmFzZVByaXZhdGVJZGVudGlmaWVyTm9kZTplPT5uZXcoZnZ8fChmdj13dC5nZXRQcml2YXRlSWRlbnRpZmllckNvbnN0cnVjdG9yKCkpKShlLC0xLC0xKSxjcmVhdGVCYXNlVG9rZW5Ob2RlOmU9Pm5ldyh1dnx8KHV2PXd0LmdldFRva2VuQ29uc3RydWN0b3IoKSkpKGUsLTEsLTEpLGNyZWF0ZUJhc2VOb2RlOmU9Pm5ldyhsdnx8KGx2PXd0LmdldE5vZGVDb25zdHJ1Y3RvcigpKSkoZSwtMSwtMSl9LHpfPUFkKDEsdGcpLFE4PXsxNjY6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5sZWZ0KXx8UChyLHQucmlnaHQpfSwxNjg6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8UChyLHQuY29uc3RyYWludCl8fFAocix0LmRlZmF1bHQpfHxQKHIsdC5leHByZXNzaW9uKX0sMzA0OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQubmFtZSl8fFAocix0LnF1ZXN0aW9uVG9rZW4pfHxQKHIsdC5leGNsYW1hdGlvblRva2VuKXx8UChyLHQuZXF1YWxzVG9rZW4pfHxQKHIsdC5vYmplY3RBc3NpZ25tZW50SW5pdGlhbGl6ZXIpfSwzMDU6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMTY5OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQuZG90RG90RG90VG9rZW4pfHxQKHIsdC5uYW1lKXx8UChyLHQucXVlc3Rpb25Ub2tlbil8fFAocix0LnR5cGUpfHxQKHIsdC5pbml0aWFsaXplcil9LDE3MjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fFAocix0Lm5hbWUpfHxQKHIsdC5xdWVzdGlvblRva2VuKXx8UChyLHQuZXhjbGFtYXRpb25Ub2tlbil8fFAocix0LnR5cGUpfHxQKHIsdC5pbml0aWFsaXplcil9LDE3MTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fFAocix0Lm5hbWUpfHxQKHIsdC5xdWVzdGlvblRva2VuKXx8UChyLHQudHlwZSl8fFAocix0LmluaXRpYWxpemVyKX0sMzAzOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQubmFtZSl8fFAocix0LnF1ZXN0aW9uVG9rZW4pfHxQKHIsdC5leGNsYW1hdGlvblRva2VuKXx8UChyLHQuaW5pdGlhbGl6ZXIpfSwyNjA6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5uYW1lKXx8UChyLHQuZXhjbGFtYXRpb25Ub2tlbil8fFAocix0LnR5cGUpfHxQKHIsdC5pbml0aWFsaXplcil9LDIwODpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmRvdERvdERvdFRva2VuKXx8UChyLHQucHJvcGVydHlOYW1lKXx8UChyLHQubmFtZSl8fFAocix0LmluaXRpYWxpemVyKX0sMTgxOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5wYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl9LDE4NTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fF9lKHIsYSx0LnR5cGVQYXJhbWV0ZXJzKXx8X2UocixhLHQucGFyYW1ldGVycyl8fFAocix0LnR5cGUpfSwxODQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxfZShyLGEsdC50eXBlUGFyYW1ldGVycyl8fF9lKHIsYSx0LnBhcmFtZXRlcnMpfHxQKHIsdC50eXBlKX0sMTc5OlFiLDE4MDpRYiwxNzQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5hc3Rlcmlza1Rva2VuKXx8UChyLHQubmFtZSl8fFAocix0LnF1ZXN0aW9uVG9rZW4pfHxQKHIsdC5leGNsYW1hdGlvblRva2VuKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5wYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl8fFAocix0LmJvZHkpfSwxNzM6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8UChyLHQucXVlc3Rpb25Ub2tlbil8fF9lKHIsYSx0LnR5cGVQYXJhbWV0ZXJzKXx8X2UocixhLHQucGFyYW1ldGVycyl8fFAocix0LnR5cGUpfSwxNzY6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5wYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl8fFAocix0LmJvZHkpfSwxNzc6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5wYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl8fFAocix0LmJvZHkpfSwxNzg6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5wYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl8fFAocix0LmJvZHkpfSwyNjI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5hc3Rlcmlza1Rva2VuKXx8UChyLHQubmFtZSl8fF9lKHIsYSx0LnR5cGVQYXJhbWV0ZXJzKXx8X2UocixhLHQucGFyYW1ldGVycyl8fFAocix0LnR5cGUpfHxQKHIsdC5ib2R5KX0sMjE4OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQuYXN0ZXJpc2tUb2tlbil8fFAocix0Lm5hbWUpfHxfZShyLGEsdC50eXBlUGFyYW1ldGVycyl8fF9lKHIsYSx0LnBhcmFtZXRlcnMpfHxQKHIsdC50eXBlKXx8UChyLHQuYm9keSl9LDIxOTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fF9lKHIsYSx0LnR5cGVQYXJhbWV0ZXJzKXx8X2UocixhLHQucGFyYW1ldGVycyl8fFAocix0LnR5cGUpfHxQKHIsdC5lcXVhbHNHcmVhdGVyVGhhblRva2VuKXx8UChyLHQuYm9keSl9LDE3NTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fFAocix0LmJvZHkpfSwxODM6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC50eXBlTmFtZSl8fF9lKHIsYSx0LnR5cGVBcmd1bWVudHMpfSwxODI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5hc3NlcnRzTW9kaWZpZXIpfHxQKHIsdC5wYXJhbWV0ZXJOYW1lKXx8UChyLHQudHlwZSl9LDE4NjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJOYW1lKXx8X2UocixhLHQudHlwZUFyZ3VtZW50cyl9LDE4NzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1lbWJlcnMpfSwxODg6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5lbGVtZW50VHlwZSl9LDE4OTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0LmVsZW1lbnRzKX0sMTkyOlliLDE5MzpZYiwxOTQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5jaGVja1R5cGUpfHxQKHIsdC5leHRlbmRzVHlwZSl8fFAocix0LnRydWVUeXBlKXx8UChyLHQuZmFsc2VUeXBlKX0sMTk1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudHlwZVBhcmFtZXRlcil9LDIwNTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmFyZ3VtZW50KXx8UChyLHQuYXNzZXJ0aW9ucyl8fFAocix0LnF1YWxpZmllcil8fF9lKHIsYSx0LnR5cGVBcmd1bWVudHMpfSwzMDI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5hc3NlcnRDbGF1c2UpfSwxOTY6S2IsMTk4OktiLDE5OTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0Lm9iamVjdFR5cGUpfHxQKHIsdC5pbmRleFR5cGUpfSwyMDA6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5yZWFkb25seVRva2VuKXx8UChyLHQudHlwZVBhcmFtZXRlcil8fFAocix0Lm5hbWVUeXBlKXx8UChyLHQucXVlc3Rpb25Ub2tlbil8fFAocix0LnR5cGUpfHxfZShyLGEsdC5tZW1iZXJzKX0sMjAxOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubGl0ZXJhbCl9LDIwMjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmRvdERvdERvdFRva2VuKXx8UChyLHQubmFtZSl8fFAocix0LnF1ZXN0aW9uVG9rZW4pfHxQKHIsdC50eXBlKX0sMjA2OlpiLDIwNzpaYiwyMDk6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5lbGVtZW50cyl9LDIxMDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0LnByb3BlcnRpZXMpfSwyMTE6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKXx8UChyLHQucXVlc3Rpb25Eb3RUb2tlbil8fFAocix0Lm5hbWUpfSwyMTI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKXx8UChyLHQucXVlc3Rpb25Eb3RUb2tlbil8fFAocix0LmFyZ3VtZW50RXhwcmVzc2lvbil9LDIxMzpldiwyMTQ6ZXYsMjE1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnKXx8UChyLHQucXVlc3Rpb25Eb3RUb2tlbil8fF9lKHIsYSx0LnR5cGVBcmd1bWVudHMpfHxQKHIsdC50ZW1wbGF0ZSl9LDIxNjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LnR5cGUpfHxQKHIsdC5leHByZXNzaW9uKX0sMjE3OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDIyMDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfSwyMjE6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMjIyOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDIyNDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0Lm9wZXJhbmQpfSwyMjk6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5hc3Rlcmlza1Rva2VuKXx8UChyLHQuZXhwcmVzc2lvbil9LDIyMzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfSwyMjU6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5vcGVyYW5kKX0sMjI2OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubGVmdCl8fFAocix0Lm9wZXJhdG9yVG9rZW4pfHxQKHIsdC5yaWdodCl9LDIzNDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfHxQKHIsdC50eXBlKX0sMjM1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDIzODpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfHxQKHIsdC50eXBlKX0sMjM2OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubmFtZSl9LDIyNzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmNvbmRpdGlvbil8fFAocix0LnF1ZXN0aW9uVG9rZW4pfHxQKHIsdC53aGVuVHJ1ZSl8fFAocix0LmNvbG9uVG9rZW4pfHxQKHIsdC53aGVuRmFsc2UpfSwyMzA6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMjQxOnR2LDI2ODp0diwzMTI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5zdGF0ZW1lbnRzKXx8UChyLHQuZW5kT2ZGaWxlVG9rZW4pfSwyNDM6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5kZWNsYXJhdGlvbkxpc3QpfSwyNjE6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5kZWNsYXJhdGlvbnMpfSwyNDQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMjQ1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil8fFAocix0LnRoZW5TdGF0ZW1lbnQpfHxQKHIsdC5lbHNlU3RhdGVtZW50KX0sMjQ2OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuc3RhdGVtZW50KXx8UChyLHQuZXhwcmVzc2lvbil9LDI0NzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfHxQKHIsdC5zdGF0ZW1lbnQpfSwyNDg6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5pbml0aWFsaXplcil8fFAocix0LmNvbmRpdGlvbil8fFAocix0LmluY3JlbWVudG9yKXx8UChyLHQuc3RhdGVtZW50KX0sMjQ5OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuaW5pdGlhbGl6ZXIpfHxQKHIsdC5leHByZXNzaW9uKXx8UChyLHQuc3RhdGVtZW50KX0sMjUwOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuYXdhaXRNb2RpZmllcil8fFAocix0LmluaXRpYWxpemVyKXx8UChyLHQuZXhwcmVzc2lvbil8fFAocix0LnN0YXRlbWVudCl9LDI1MTpydiwyNTI6cnYsMjUzOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDI1NDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfHxQKHIsdC5zdGF0ZW1lbnQpfSwyNTU6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKXx8UChyLHQuY2FzZUJsb2NrKX0sMjY5OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQuY2xhdXNlcyl9LDI5NjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfHxfZShyLGEsdC5zdGF0ZW1lbnRzKX0sMjk3OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQuc3RhdGVtZW50cyl9LDI1NjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmxhYmVsKXx8UChyLHQuc3RhdGVtZW50KX0sMjU3OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDI1ODpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LnRyeUJsb2NrKXx8UChyLHQuY2F0Y2hDbGF1c2UpfHxQKHIsdC5maW5hbGx5QmxvY2spfSwyOTk6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC52YXJpYWJsZURlY2xhcmF0aW9uKXx8UChyLHQuYmxvY2spfSwxNzA6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMjYzOm52LDIzMTpudiwyNjQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8X2UocixhLHQudHlwZVBhcmFtZXRlcnMpfHxfZShyLGEsdC5oZXJpdGFnZUNsYXVzZXMpfHxfZShyLGEsdC5tZW1iZXJzKX0sMjY1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQubmFtZSl8fF9lKHIsYSx0LnR5cGVQYXJhbWV0ZXJzKXx8UChyLHQudHlwZSl9LDI2NjpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fFAocix0Lm5hbWUpfHxfZShyLGEsdC5tZW1iZXJzKX0sMzA2OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubmFtZSl8fFAocix0LmluaXRpYWxpemVyKX0sMjY3OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQubmFtZSl8fFAocix0LmJvZHkpfSwyNzE6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5uYW1lKXx8UChyLHQubW9kdWxlUmVmZXJlbmNlKX0sMjcyOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQuaW1wb3J0Q2xhdXNlKXx8UChyLHQubW9kdWxlU3BlY2lmaWVyKXx8UChyLHQuYXNzZXJ0Q2xhdXNlKX0sMjczOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubmFtZSl8fFAocix0Lm5hbWVkQmluZGluZ3MpfSwzMDA6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5lbGVtZW50cyl9LDMwMTpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0Lm5hbWUpfHxQKHIsdC52YWx1ZSl9LDI3MDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0Lm1vZGlmaWVycyl8fFAocix0Lm5hbWUpfSwyNzQ6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5uYW1lKX0sMjgwOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubmFtZSl9LDI3NTppdiwyNzk6aXYsMjc4OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQubW9kaWZpZXJzKXx8UChyLHQuZXhwb3J0Q2xhdXNlKXx8UChyLHQubW9kdWxlU3BlY2lmaWVyKXx8UChyLHQuYXNzZXJ0Q2xhdXNlKX0sMjc2OmF2LDI4MTphdiwyNzc6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfHxQKHIsdC5leHByZXNzaW9uKX0sMjI4OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuaGVhZCl8fF9lKHIsYSx0LnRlbXBsYXRlU3BhbnMpfSwyMzk6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKXx8UChyLHQubGl0ZXJhbCl9LDIwMzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmhlYWQpfHxfZShyLGEsdC50ZW1wbGF0ZVNwYW5zKX0sMjA0OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudHlwZSl8fFAocix0LmxpdGVyYWwpfSwxNjc6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKX0sMjk4OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gX2UocixhLHQudHlwZXMpfSwyMzM6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5leHByZXNzaW9uKXx8X2UocixhLHQudHlwZUFyZ3VtZW50cyl9LDI4MzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmV4cHJlc3Npb24pfSwyODI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5tb2RpZmllcnMpfSwzNjE6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5lbGVtZW50cyl9LDI4NDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0Lm9wZW5pbmdFbGVtZW50KXx8X2UocixhLHQuY2hpbGRyZW4pfHxQKHIsdC5jbG9zaW5nRWxlbWVudCl9LDI4ODpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0Lm9wZW5pbmdGcmFnbWVudCl8fF9lKHIsYSx0LmNoaWxkcmVuKXx8UChyLHQuY2xvc2luZ0ZyYWdtZW50KX0sMjg1Om92LDI4NjpvdiwyOTI6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBfZShyLGEsdC5wcm9wZXJ0aWVzKX0sMjkxOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubmFtZSl8fFAocix0LmluaXRpYWxpemVyKX0sMjkzOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQuZXhwcmVzc2lvbil9LDI5NDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LmRvdERvdERvdFRva2VuKXx8UChyLHQuZXhwcmVzc2lvbil9LDI4NzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LnRhZ05hbWUpfSwyOTU6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5uYW1lc3BhY2UpfHxQKHIsdC5uYW1lKX0sMTkwOndvLDE5MTp3bywzMTY6d28sMzIyOndvLDMyMTp3bywzMjM6d28sMzI1OndvLDMyNDpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIF9lKHIsYSx0LnBhcmFtZXRlcnMpfHxQKHIsdC50eXBlKX0sMzI3OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4odHlwZW9mIHQuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UocixhLHQuY29tbWVudCkpfHxfZShyLGEsdC50YWdzKX0sMzU0OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnTmFtZSl8fFAocix0Lm5hbWUpfHwodHlwZW9mIHQuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UocixhLHQuY29tbWVudCkpfSwzMTc6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC5uYW1lKX0sMzE4OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQubGVmdCl8fFAocix0LnJpZ2h0KX0sMzQ4OnN2LDM1NTpzdiwzMzc6ZnVuY3Rpb24odCxyLGEpe3JldHVybiBQKHIsdC50YWdOYW1lKXx8KHR5cGVvZiB0LmNvbW1lbnQ9PVwic3RyaW5nXCI/dm9pZCAwOl9lKHIsYSx0LmNvbW1lbnQpKX0sMzM2OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnTmFtZSl8fFAocix0LmNsYXNzKXx8KHR5cGVvZiB0LmNvbW1lbnQ9PVwic3RyaW5nXCI/dm9pZCAwOl9lKHIsYSx0LmNvbW1lbnQpKX0sMzM1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnTmFtZSl8fFAocix0LmNsYXNzKXx8KHR5cGVvZiB0LmNvbW1lbnQ9PVwic3RyaW5nXCI/dm9pZCAwOl9lKHIsYSx0LmNvbW1lbnQpKX0sMzUyOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnTmFtZSl8fFAocix0LmNvbnN0cmFpbnQpfHxfZShyLGEsdC50eXBlUGFyYW1ldGVycyl8fCh0eXBlb2YgdC5jb21tZW50PT1cInN0cmluZ1wiP3ZvaWQgMDpfZShyLGEsdC5jb21tZW50KSl9LDM1MzpmdW5jdGlvbih0LHIsYSl7cmV0dXJuIFAocix0LnRhZ05hbWUpfHwodC50eXBlRXhwcmVzc2lvbiYmdC50eXBlRXhwcmVzc2lvbi5raW5kPT09MzE2P1Aocix0LnR5cGVFeHByZXNzaW9uKXx8UChyLHQuZnVsbE5hbWUpfHwodHlwZW9mIHQuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UocixhLHQuY29tbWVudCkpOlAocix0LmZ1bGxOYW1lKXx8UChyLHQudHlwZUV4cHJlc3Npb24pfHwodHlwZW9mIHQuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UocixhLHQuY29tbWVudCkpKX0sMzQ1OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4gUChyLHQudGFnTmFtZSl8fFAocix0LmZ1bGxOYW1lKXx8UChyLHQudHlwZUV4cHJlc3Npb24pfHwodHlwZW9mIHQuY29tbWVudD09XCJzdHJpbmdcIj92b2lkIDA6X2UocixhLHQuY29tbWVudCkpfSwzNDk6Q28sMzUxOkNvLDM1MDpDbywzNDc6Q28sMzU3OkNvLDM1NjpDbywzNDY6Q28sMzMwOmZ1bmN0aW9uKHQscixhKXtyZXR1cm4geXIodC50eXBlUGFyYW1ldGVycyxyKXx8eXIodC5wYXJhbWV0ZXJzLHIpfHxQKHIsdC50eXBlKX0sMzMxOktoLDMzMjpLaCwzMzM6S2gsMzI5OmZ1bmN0aW9uKHQscixhKXtyZXR1cm4geXIodC5qc0RvY1Byb3BlcnR5VGFncyxyKX0sMzM0OlhhLDMzOTpYYSwzNDA6WGEsMzQxOlhhLDM0MjpYYSwzNDM6WGEsMzM4OlhhLDM0NDpYYSwzNjA6TGp9LChlPT57dmFyIHQ9bnMoOTksITApLHI9NDA5NjAsYSxfLHAsZCxoO2Z1bmN0aW9uIGwoYyl7cmV0dXJuIHduKyssY312YXIgdj17Y3JlYXRlQmFzZVNvdXJjZUZpbGVOb2RlOmM9PmwobmV3IGgoYywwLDApKSxjcmVhdGVCYXNlSWRlbnRpZmllck5vZGU6Yz0+bChuZXcgcChjLDAsMCkpLGNyZWF0ZUJhc2VQcml2YXRlSWRlbnRpZmllck5vZGU6Yz0+bChuZXcgZChjLDAsMCkpLGNyZWF0ZUJhc2VUb2tlbk5vZGU6Yz0+bChuZXcgXyhjLDAsMCkpLGNyZWF0ZUJhc2VOb2RlOmM9PmwobmV3IGEoYywwLDApKX0seT1BZCgxMSx2KSx7Y3JlYXRlTm9kZUFycmF5OkMsY3JlYXRlTnVtZXJpY0xpdGVyYWw6UyxjcmVhdGVTdHJpbmdMaXRlcmFsOmssY3JlYXRlTGl0ZXJhbExpa2VOb2RlOkwsY3JlYXRlSWRlbnRpZmllcjpHLGNyZWF0ZVByaXZhdGVJZGVudGlmaWVyOkssY3JlYXRlVG9rZW46dWUsY3JlYXRlQXJyYXlMaXRlcmFsRXhwcmVzc2lvbjpZLGNyZWF0ZU9iamVjdExpdGVyYWxFeHByZXNzaW9uOkIsY3JlYXRlUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uOmFlLGNyZWF0ZVByb3BlcnR5QWNjZXNzQ2hhaW46Q2UsY3JlYXRlRWxlbWVudEFjY2Vzc0V4cHJlc3Npb246WmUsY3JlYXRlRWxlbWVudEFjY2Vzc0NoYWluOnFlLGNyZWF0ZUNhbGxFeHByZXNzaW9uOnJ0LGNyZWF0ZUNhbGxDaGFpbjppdCxjcmVhdGVOZXdFeHByZXNzaW9uOklyLGNyZWF0ZVBhcmVudGhlc2l6ZWRFeHByZXNzaW9uOmFyLGNyZWF0ZUJsb2NrOmNpLGNyZWF0ZVZhcmlhYmxlU3RhdGVtZW50Om9yLGNyZWF0ZUV4cHJlc3Npb25TdGF0ZW1lbnQ6TnIsY3JlYXRlSWZTdGF0ZW1lbnQ6R2UsY3JlYXRlV2hpbGVTdGF0ZW1lbnQ6R3QsY3JlYXRlRm9yU3RhdGVtZW50OlVyLGNyZWF0ZUZvck9mU3RhdGVtZW50Olh0LGNyZWF0ZVZhcmlhYmxlRGVjbGFyYXRpb246VG4sY3JlYXRlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3Q6U259PXksc3IsJHQsU3QseG4sVHIsdnQsY3QsVXQsZnIsaHQsd24sVHQsT3IscHQsTXIsYXQsZXI9ITAsUXQ9ITE7ZnVuY3Rpb24gdG4oYyxtLGIsdyxBPSExLFIsdGUpe3ZhciBsZTtpZihSPVdTKGMsUiksUj09PTYpe2xldCBpZT1VbihjLG0sYix3LEEpO3JldHVybiBjb252ZXJ0VG9Kc29uKGllLChsZT1pZS5zdGF0ZW1lbnRzWzBdKT09bnVsbD92b2lkIDA6bGUuZXhwcmVzc2lvbixpZS5wYXJzZURpYWdub3N0aWNzLCExLHZvaWQgMCksaWUucmVmZXJlbmNlZEZpbGVzPSRlLGllLnR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzPSRlLGllLmxpYlJlZmVyZW5jZURpcmVjdGl2ZXM9JGUsaWUuYW1kRGVwZW5kZW5jaWVzPSRlLGllLmhhc05vRGVmYXVsdExpYj0hMSxpZS5wcmFnbWFzPXBnLGllfXJuKGMsbSxiLHcsUik7bGV0IG5lPURpKGIsQSxSLHRlfHxWOCk7cmV0dXJuIG5uKCksbmV9ZS5wYXJzZVNvdXJjZUZpbGU9dG47ZnVuY3Rpb24gQm4oYyxtKXtybihcIlwiLGMsbSx2b2lkIDAsMSksTygpO2xldCBiPWxhKCEwKSx3PWYoKT09PTEmJiFjdC5sZW5ndGg7cmV0dXJuIG5uKCksdz9iOnZvaWQgMH1lLnBhcnNlSXNvbGF0ZWRFbnRpdHlOYW1lPUJuO2Z1bmN0aW9uIFVuKGMsbSxiPTIsdyxBPSExKXtybihjLG0sYix3LDYpLCR0PWF0LE8oKTtsZXQgUj1UKCksdGUsbGU7aWYoZigpPT09MSl0ZT1GdChbXSxSLFIpLGxlPWRyKCk7ZWxzZXtsZXQgdmU7Zm9yKDtmKCkhPT0xOyl7bGV0IFVlO3N3aXRjaChmKCkpe2Nhc2UgMjM6VWU9SmMoKTticmVhaztjYXNlIDExMjpjYXNlIDk3OmNhc2UgMTA2OlVlPWRyKCk7YnJlYWs7Y2FzZSA0MTpUZSgoKT0+TygpPT09OSYmTygpIT09NTkpP1VlPUFjKCk6VWU9THMoKTticmVhaztjYXNlIDk6Y2FzZSAxMTppZihUZSgoKT0+TygpIT09NTkpKXtVZT1maSgpO2JyZWFrfWRlZmF1bHQ6VWU9THMoKTticmVha312ZSYmenQodmUpP3ZlLnB1c2goVWUpOnZlP3ZlPVt2ZSxVZV06KHZlPVVlLGYoKSE9PTEmJkplKFUuVW5leHBlY3RlZF90b2tlbikpfWxldCBIZT16dCh2ZSk/TShZKHZlKSxSKTpOLmNoZWNrRGVmaW5lZCh2ZSksQmU9TnIoSGUpO00oQmUsUiksdGU9RnQoW0JlXSxSKSxsZT1IbigxLFUuVW5leHBlY3RlZF90b2tlbil9bGV0IG5lPWdlKGMsMiw2LCExLHRlLGxlLCR0LFJuKTtBJiZvZShuZSksbmUubm9kZUNvdW50PXduLG5lLmlkZW50aWZpZXJDb3VudD1PcixuZS5pZGVudGlmaWVycz1UdCxuZS5wYXJzZURpYWdub3N0aWNzPSRhKGN0LG5lKSxVdCYmKG5lLmpzRG9jRGlhZ25vc3RpY3M9JGEoVXQsbmUpKTtsZXQgaWU9bmU7cmV0dXJuIG5uKCksaWV9ZS5wYXJzZUpzb25UZXh0PVVuO2Z1bmN0aW9uIHJuKGMsbSxiLHcsQSl7c3dpdGNoKGE9d3QuZ2V0Tm9kZUNvbnN0cnVjdG9yKCksXz13dC5nZXRUb2tlbkNvbnN0cnVjdG9yKCkscD13dC5nZXRJZGVudGlmaWVyQ29uc3RydWN0b3IoKSxkPXd0LmdldFByaXZhdGVJZGVudGlmaWVyQ29uc3RydWN0b3IoKSxoPXd0LmdldFNvdXJjZUZpbGVDb25zdHJ1Y3RvcigpLHNyPXBuKGMpLFN0PW0seG49Yixmcj13LFRyPUEsdnQ9UjAoQSksY3Q9W10scHQ9MCxUdD1uZXcgTWFwLE9yPTAsd249MCwkdD0wLGVyPSEwLFRyKXtjYXNlIDE6Y2FzZSAyOmF0PTUyNDI4ODticmVhaztjYXNlIDY6YXQ9MTM0NzQyMDE2O2JyZWFrO2RlZmF1bHQ6YXQ9MDticmVha31RdD0hMSx0LnNldFRleHQoU3QpLHQuc2V0T25FcnJvcihqKSx0LnNldFNjcmlwdFRhcmdldCh4biksdC5zZXRMYW5ndWFnZVZhcmlhbnQodnQpfWZ1bmN0aW9uIG5uKCl7dC5jbGVhckNvbW1lbnREaXJlY3RpdmVzKCksdC5zZXRUZXh0KFwiXCIpLHQuc2V0T25FcnJvcih2b2lkIDApLFN0PXZvaWQgMCx4bj12b2lkIDAsZnI9dm9pZCAwLFRyPXZvaWQgMCx2dD12b2lkIDAsJHQ9MCxjdD12b2lkIDAsVXQ9dm9pZCAwLHB0PTAsVHQ9dm9pZCAwLE1yPXZvaWQgMCxlcj0hMH1mdW5jdGlvbiBEaShjLG0sYix3KXtsZXQgQT1HOChzcik7QSYmKGF0fD0zMzU1NDQzMiksJHQ9YXQsTygpO2xldCBSPXpyKDAsd3IpO04uYXNzZXJ0KGYoKT09PTEpO2xldCB0ZT14KCksbGU9QWUoZHIoKSx0ZSksbmU9Z2Uoc3IsYyxiLEEsUixsZSwkdCx3KTtyZXR1cm4gWDgobmUsU3QpLCQ4KG5lLGllKSxuZS5jb21tZW50RGlyZWN0aXZlcz10LmdldENvbW1lbnREaXJlY3RpdmVzKCksbmUubm9kZUNvdW50PXduLG5lLmlkZW50aWZpZXJDb3VudD1PcixuZS5pZGVudGlmaWVycz1UdCxuZS5wYXJzZURpYWdub3N0aWNzPSRhKGN0LG5lKSxVdCYmKG5lLmpzRG9jRGlhZ25vc3RpY3M9JGEoVXQsbmUpKSxtJiZvZShuZSksbmU7ZnVuY3Rpb24gaWUodmUsSGUsQmUpe2N0LnB1c2goQW8oc3IsdmUsSGUsQmUpKX19bGV0IHFuPSExO2Z1bmN0aW9uIEFlKGMsbSl7aWYoIW0pcmV0dXJuIGM7Ti5hc3NlcnQoIWMuanNEb2MpO2xldCBiPVphKEczKGMsU3QpLHc9PmdmLnBhcnNlSlNEb2NDb21tZW50KGMsdy5wb3Msdy5lbmQtdy5wb3MpKTtyZXR1cm4gYi5sZW5ndGgmJihjLmpzRG9jPWIpLHFuJiYocW49ITEsYy5mbGFnc3w9NTM2ODcwOTEyKSxjfWZ1bmN0aW9uIHEoYyl7bGV0IG09ZnIsYj1XZi5jcmVhdGVTeW50YXhDdXJzb3IoYyk7ZnI9e2N1cnJlbnROb2RlOnZlfTtsZXQgdz1bXSxBPWN0O2N0PVtdO2xldCBSPTAsdGU9bmUoYy5zdGF0ZW1lbnRzLDApO2Zvcig7dGUhPT0tMTspe2xldCBIZT1jLnN0YXRlbWVudHNbUl0sQmU9Yy5zdGF0ZW1lbnRzW3RlXTtScih3LGMuc3RhdGVtZW50cyxSLHRlKSxSPWllKGMuc3RhdGVtZW50cyx0ZSk7bGV0IFVlPV9sKEEsR3I9PkdyLnN0YXJ0Pj1IZS5wb3MpLFJ0PVVlPj0wP19sKEEsR3I9PkdyLnN0YXJ0Pj1CZS5wb3MsVWUpOi0xO1VlPj0wJiZScihjdCxBLFVlLFJ0Pj0wP1J0OnZvaWQgMCksX3IoKCk9PntsZXQgR3I9YXQ7Zm9yKGF0fD02NTUzNix0LnJlc2V0VG9rZW5TdGF0ZShCZS5wb3MpLE8oKTtmKCkhPT0xOyl7bGV0IGRpPXQuZ2V0VG9rZW5GdWxsU3RhcnQoKSxtaT1ncygwLHdyKTtpZih3LnB1c2gobWkpLGRpPT09dC5nZXRUb2tlbkZ1bGxTdGFydCgpJiZPKCksUj49MCl7bGV0IGhpPWMuc3RhdGVtZW50c1tSXTtpZihtaS5lbmQ9PT1oaS5wb3MpYnJlYWs7bWkuZW5kPmhpLnBvcyYmKFI9aWUoYy5zdGF0ZW1lbnRzLFIrMSkpfX1hdD1Hcn0sMiksdGU9Uj49MD9uZShjLnN0YXRlbWVudHMsUik6LTF9aWYoUj49MCl7bGV0IEhlPWMuc3RhdGVtZW50c1tSXTtScih3LGMuc3RhdGVtZW50cyxSKTtsZXQgQmU9X2woQSxVZT0+VWUuc3RhcnQ+PUhlLnBvcyk7QmU+PTAmJlJyKGN0LEEsQmUpfXJldHVybiBmcj1tLHkudXBkYXRlU291cmNlRmlsZShjLFZlKEModyksYy5zdGF0ZW1lbnRzKSk7ZnVuY3Rpb24gbGUoSGUpe3JldHVybiEoSGUuZmxhZ3MmNjU1MzYpJiYhIShIZS50cmFuc2Zvcm1GbGFncyY2NzEwODg2NCl9ZnVuY3Rpb24gbmUoSGUsQmUpe2ZvcihsZXQgVWU9QmU7VWU8SGUubGVuZ3RoO1VlKyspaWYobGUoSGVbVWVdKSlyZXR1cm4gVWU7cmV0dXJuLTF9ZnVuY3Rpb24gaWUoSGUsQmUpe2ZvcihsZXQgVWU9QmU7VWU8SGUubGVuZ3RoO1VlKyspaWYoIWxlKEhlW1VlXSkpcmV0dXJuIFVlO3JldHVybi0xfWZ1bmN0aW9uIHZlKEhlKXtsZXQgQmU9Yi5jdXJyZW50Tm9kZShIZSk7cmV0dXJuIGVyJiZCZSYmbGUoQmUpJiYoQmUuaW50ZXJzZWN0c0NoYW5nZT0hMCksQmV9fWZ1bmN0aW9uIG9lKGMpe3J4KGMsITApfWUuZml4dXBQYXJlbnRSZWZlcmVuY2VzPW9lO2Z1bmN0aW9uIGdlKGMsbSxiLHcsQSxSLHRlLGxlKXtsZXQgbmU9eS5jcmVhdGVTb3VyY2VGaWxlKEEsUix0ZSk7cmV0dXJuIENkKG5lLDAsU3QubGVuZ3RoKSxpZShuZSksIXcmJlpvKG5lKSYmbmUudHJhbnNmb3JtRmxhZ3MmNjcxMDg4NjQmJihuZT1xKG5lKSxpZShuZSkpLG5lO2Z1bmN0aW9uIGllKHZlKXt2ZS50ZXh0PVN0LHZlLmJpbmREaWFnbm9zdGljcz1bXSx2ZS5iaW5kU3VnZ2VzdGlvbkRpYWdub3N0aWNzPXZvaWQgMCx2ZS5sYW5ndWFnZVZlcnNpb249bSx2ZS5maWxlTmFtZT1jLHZlLmxhbmd1YWdlVmFyaWFudD1SMChiKSx2ZS5pc0RlY2xhcmF0aW9uRmlsZT13LHZlLnNjcmlwdEtpbmQ9YixsZSh2ZSksdmUuc2V0RXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3I9bGV9fWZ1bmN0aW9uIFNlKGMsbSl7Yz9hdHw9bTphdCY9fm19ZnVuY3Rpb24gbnQoYyl7U2UoYyw4MTkyKX1mdW5jdGlvbiB6KGMpe1NlKGMsMTYzODQpfWZ1bmN0aW9uIFgoYyl7U2UoYywzMjc2OCl9ZnVuY3Rpb24gZWUoYyl7U2UoYyw2NTUzNil9ZnVuY3Rpb24geGUoYyxtKXtsZXQgYj1jJmF0O2lmKGIpe1NlKCExLGIpO2xldCB3PW0oKTtyZXR1cm4gU2UoITAsYiksd31yZXR1cm4gbSgpfWZ1bmN0aW9uIGtlKGMsbSl7bGV0IGI9YyZ+YXQ7aWYoYil7U2UoITAsYik7bGV0IHc9bSgpO3JldHVybiBTZSghMSxiKSx3fXJldHVybiBtKCl9ZnVuY3Rpb24gTGUoYyl7cmV0dXJuIHhlKDgxOTIsYyl9ZnVuY3Rpb24gbHQoYyl7cmV0dXJuIGtlKDgxOTIsYyl9ZnVuY3Rpb24geXQoYyl7cmV0dXJuIHhlKDEzMTA3MixjKX1mdW5jdGlvbiBqdChjKXtyZXR1cm4ga2UoMTMxMDcyLGMpfWZ1bmN0aW9uIHFyKGMpe3JldHVybiBrZSgxNjM4NCxjKX1mdW5jdGlvbiBuYShjKXtyZXR1cm4ga2UoMzI3NjgsYyl9ZnVuY3Rpb24gQ24oYyl7cmV0dXJuIGtlKDY1NTM2LGMpfWZ1bmN0aW9uIHpuKGMpe3JldHVybiB4ZSg2NTUzNixjKX1mdW5jdGlvbiBQaShjKXtyZXR1cm4ga2UoODE5MjAsYyl9ZnVuY3Rpb24gaWEoYyl7cmV0dXJuIHhlKDgxOTIwLGMpfWZ1bmN0aW9uIFduKGMpe3JldHVybihhdCZjKSE9PTB9ZnVuY3Rpb24gRW4oKXtyZXR1cm4gV24oMTYzODQpfWZ1bmN0aW9uIElpKCl7cmV0dXJuIFduKDgxOTIpfWZ1bmN0aW9uIGFhKCl7cmV0dXJuIFduKDEzMTA3Mil9ZnVuY3Rpb24gVm4oKXtyZXR1cm4gV24oMzI3NjgpfWZ1bmN0aW9uIFNyKCl7cmV0dXJuIFduKDY1NTM2KX1mdW5jdGlvbiBKZShjLC4uLm0pe3JldHVybiBNdCh0LmdldFRva2VuU3RhcnQoKSx0LmdldFRva2VuRW5kKCksYywuLi5tKX1mdW5jdGlvbiBvYShjLG0sYiwuLi53KXtsZXQgQT13aShjdCksUjtyZXR1cm4oIUF8fGMhPT1BLnN0YXJ0KSYmKFI9QW8oc3IsYyxtLGIsLi4udyksY3QucHVzaChSKSksUXQ9ITAsUn1mdW5jdGlvbiBNdChjLG0sYiwuLi53KXtyZXR1cm4gb2EoYyxtLWMsYiwuLi53KX1mdW5jdGlvbiBMcihjLG0sLi4uYil7TXQoYy5wb3MsYy5lbmQsbSwuLi5iKX1mdW5jdGlvbiBqKGMsbSxiKXtvYSh0LmdldFRva2VuRW5kKCksbSxjLGIpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gdC5nZXRUb2tlbkZ1bGxTdGFydCgpfWZ1bmN0aW9uIHgoKXtyZXR1cm4gdC5oYXNQcmVjZWRpbmdKU0RvY0NvbW1lbnQoKX1mdW5jdGlvbiBmKCl7cmV0dXJuIGh0fWZ1bmN0aW9uICQoKXtyZXR1cm4gaHQ9dC5zY2FuKCl9ZnVuY3Rpb24gUShjKXtyZXR1cm4gTygpLGMoKX1mdW5jdGlvbiBPKCl7cmV0dXJuIFNpKGh0KSYmKHQuaGFzVW5pY29kZUVzY2FwZSgpfHx0Lmhhc0V4dGVuZGVkVW5pY29kZUVzY2FwZSgpKSYmTXQodC5nZXRUb2tlblN0YXJ0KCksdC5nZXRUb2tlbkVuZCgpLFUuS2V5d29yZHNfY2Fubm90X2NvbnRhaW5fZXNjYXBlX2NoYXJhY3RlcnMpLCQoKX1mdW5jdGlvbiBmZSgpe3JldHVybiBodD10LnNjYW5Kc0RvY1Rva2VuKCl9ZnVuY3Rpb24gYmUoYyl7cmV0dXJuIGh0PXQuc2NhbkpTRG9jQ29tbWVudFRleHRUb2tlbihjKX1mdW5jdGlvbiBoZSgpe3JldHVybiBodD10LnJlU2NhbkdyZWF0ZXJUb2tlbigpfWZ1bmN0aW9uIFJlKCl7cmV0dXJuIGh0PXQucmVTY2FuU2xhc2hUb2tlbigpfWZ1bmN0aW9uIHdlKGMpe3JldHVybiBodD10LnJlU2NhblRlbXBsYXRlVG9rZW4oYyl9ZnVuY3Rpb24gZXQoKXtyZXR1cm4gaHQ9dC5yZVNjYW5MZXNzVGhhblRva2VuKCl9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gaHQ9dC5yZVNjYW5IYXNoVG9rZW4oKX1mdW5jdGlvbiBLZSgpe3JldHVybiBodD10LnNjYW5Kc3hJZGVudGlmaWVyKCl9ZnVuY3Rpb24gSXQoKXtyZXR1cm4gaHQ9dC5zY2FuSnN4VG9rZW4oKX1mdW5jdGlvbiBxdCgpe3JldHVybiBodD10LnNjYW5Kc3hBdHRyaWJ1dGVWYWx1ZSgpfWZ1bmN0aW9uIF9yKGMsbSl7bGV0IGI9aHQsdz1jdC5sZW5ndGgsQT1RdCxSPWF0LHRlPW0hPT0wP3QubG9va0FoZWFkKGMpOnQudHJ5U2NhbihjKTtyZXR1cm4gTi5hc3NlcnQoUj09PWF0KSwoIXRlfHxtIT09MCkmJihodD1iLG0hPT0yJiYoY3QubGVuZ3RoPXcpLFF0PUEpLHRlfWZ1bmN0aW9uIFRlKGMpe3JldHVybiBfcihjLDEpfWZ1bmN0aW9uIGZ0KGMpe3JldHVybiBfcihjLDApfWZ1bmN0aW9uIEFuKCl7cmV0dXJuIGYoKT09PTgwPyEwOmYoKT4xMTh9ZnVuY3Rpb24gRXQoKXtyZXR1cm4gZigpPT09ODA/ITA6ZigpPT09MTI3JiZFbigpfHxmKCk9PT0xMzUmJlNyKCk/ITE6ZigpPjExOH1mdW5jdGlvbiBIKGMsbSxiPSEwKXtyZXR1cm4gZigpPT09Yz8oYiYmTygpLCEwKToobT9KZShtKTpKZShVLl8wX2V4cGVjdGVkLG5yKGMpKSwhMSl9bGV0IEZhPU9iamVjdC5rZXlzKGNsKS5maWx0ZXIoYz0+Yy5sZW5ndGg+Mik7ZnVuY3Rpb24gSWUoYyl7aWYoczgoYykpe010KE50KFN0LGMudGVtcGxhdGUucG9zKSxjLnRlbXBsYXRlLmVuZCxVLk1vZHVsZV9kZWNsYXJhdGlvbl9uYW1lc19tYXlfb25seV91c2Vfb3JfcXVvdGVkX3N0cmluZ3MpO3JldHVybn1sZXQgbT1FZShjKT9PdChjKTp2b2lkIDA7aWYoIW18fCFDZyhtLHhuKSl7SmUoVS5fMF9leHBlY3RlZCxucigyNykpO3JldHVybn1sZXQgYj1OdChTdCxjLnBvcyk7c3dpdGNoKG0pe2Nhc2VcImNvbnN0XCI6Y2FzZVwibGV0XCI6Y2FzZVwidmFyXCI6TXQoYixjLmVuZCxVLlZhcmlhYmxlX2RlY2xhcmF0aW9uX25vdF9hbGxvd2VkX2F0X3RoaXNfbG9jYXRpb24pO3JldHVybjtjYXNlXCJkZWNsYXJlXCI6cmV0dXJuO2Nhc2VcImludGVyZmFjZVwiOm90KFUuSW50ZXJmYWNlX25hbWVfY2Fubm90X2JlXzAsVS5JbnRlcmZhY2VfbXVzdF9iZV9naXZlbl9hX25hbWUsMTkpO3JldHVybjtjYXNlXCJpc1wiOk10KGIsdC5nZXRUb2tlblN0YXJ0KCksVS5BX3R5cGVfcHJlZGljYXRlX2lzX29ubHlfYWxsb3dlZF9pbl9yZXR1cm5fdHlwZV9wb3NpdGlvbl9mb3JfZnVuY3Rpb25zX2FuZF9tZXRob2RzKTtyZXR1cm47Y2FzZVwibW9kdWxlXCI6Y2FzZVwibmFtZXNwYWNlXCI6b3QoVS5OYW1lc3BhY2VfbmFtZV9jYW5ub3RfYmVfMCxVLk5hbWVzcGFjZV9tdXN0X2JlX2dpdmVuX2FfbmFtZSwxOSk7cmV0dXJuO2Nhc2VcInR5cGVcIjpvdChVLlR5cGVfYWxpYXNfbmFtZV9jYW5ub3RfYmVfMCxVLlR5cGVfYWxpYXNfbXVzdF9iZV9naXZlbl9hX25hbWUsNjQpO3JldHVybn1sZXQgdz1KdihtLEZhLEE9PkEpPz9jcihtKTtpZih3KXtNdChiLGMuZW5kLFUuVW5rbm93bl9rZXl3b3JkX29yX2lkZW50aWZpZXJfRGlkX3lvdV9tZWFuXzAsdyk7cmV0dXJufWYoKSE9PTAmJk10KGIsYy5lbmQsVS5VbmV4cGVjdGVkX2tleXdvcmRfb3JfaWRlbnRpZmllcil9ZnVuY3Rpb24gb3QoYyxtLGIpe2YoKT09PWI/SmUobSk6SmUoYyx0LmdldFRva2VuVmFsdWUoKSl9ZnVuY3Rpb24gY3IoYyl7Zm9yKGxldCBtIG9mIEZhKWlmKGMubGVuZ3RoPm0ubGVuZ3RoKzImJkZyKGMsbSkpcmV0dXJuYCR7bX0gJHtjLnNsaWNlKG0ubGVuZ3RoKX1gfWZ1bmN0aW9uIGFuKGMsbSxiKXtpZihmKCk9PT02MCYmIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpe0plKFUuRGVjb3JhdG9yc19tdXN0X3ByZWNlZGVfdGhlX25hbWVfYW5kX2FsbF9rZXl3b3Jkc19vZl9wcm9wZXJ0eV9kZWNsYXJhdGlvbnMpO3JldHVybn1pZihmKCk9PT0yMSl7SmUoVS5DYW5ub3Rfc3RhcnRfYV9mdW5jdGlvbl9jYWxsX2luX2FfdHlwZV9hbm5vdGF0aW9uKSxPKCk7cmV0dXJufWlmKG0mJiF1aSgpKXtiP0plKFUuXzBfZXhwZWN0ZWQsbnIoMjcpKTpKZShVLkV4cGVjdGVkX2Zvcl9wcm9wZXJ0eV9pbml0aWFsaXplcik7cmV0dXJufWlmKCFmcygpKXtpZihiKXtKZShVLl8wX2V4cGVjdGVkLG5yKDI3KSk7cmV0dXJufUllKGMpfX1mdW5jdGlvbiBCYShjKXtyZXR1cm4gZigpPT09Yz8oZmUoKSwhMCk6KE4uYXNzZXJ0KEpmKGMpKSxKZShVLl8wX2V4cGVjdGVkLG5yKGMpKSwhMSl9ZnVuY3Rpb24ga24oYyxtLGIsdyl7aWYoZigpPT09bSl7TygpO3JldHVybn1sZXQgQT1KZShVLl8wX2V4cGVjdGVkLG5yKG0pKTtiJiZBJiZubChBLEFvKHNyLHcsMSxVLlRoZV9wYXJzZXJfZXhwZWN0ZWRfdG9fZmluZF9hXzFfdG9fbWF0Y2hfdGhlXzBfdG9rZW5faGVyZSxucihjKSxucihtKSkpfWZ1bmN0aW9uIGplKGMpe3JldHVybiBmKCk9PT1jPyhPKCksITApOiExfWZ1bmN0aW9uIGR0KGMpe2lmKGYoKT09PWMpcmV0dXJuIGRyKCl9ZnVuY3Rpb24gbGkoYyl7aWYoZigpPT09YylyZXR1cm4gdDEoKX1mdW5jdGlvbiBIbihjLG0sYil7cmV0dXJuIGR0KGMpfHxKcihjLCExLG18fFUuXzBfZXhwZWN0ZWQsYnx8bnIoYykpfWZ1bmN0aW9uIGUxKGMpe2xldCBtPWxpKGMpO3JldHVybiBtfHwoTi5hc3NlcnQoSmYoYykpLEpyKGMsITEsVS5fMF9leHBlY3RlZCxucihjKSkpfWZ1bmN0aW9uIGRyKCl7bGV0IGM9VCgpLG09ZigpO3JldHVybiBPKCksTSh1ZShtKSxjKX1mdW5jdGlvbiB0MSgpe2xldCBjPVQoKSxtPWYoKTtyZXR1cm4gZmUoKSxNKHVlKG0pLGMpfWZ1bmN0aW9uIHVpKCl7cmV0dXJuIGYoKT09PTI3PyEwOmYoKT09PTIwfHxmKCk9PT0xfHx0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpfWZ1bmN0aW9uIGZzKCl7cmV0dXJuIHVpKCk/KGYoKT09PTI3JiZPKCksITApOiExfWZ1bmN0aW9uIHhyKCl7cmV0dXJuIGZzKCl8fEgoMjcpfWZ1bmN0aW9uIEZ0KGMsbSxiLHcpe2xldCBBPUMoYyx3KTtyZXR1cm4gWWEoQSxtLGI/P3QuZ2V0VG9rZW5GdWxsU3RhcnQoKSksQX1mdW5jdGlvbiBNKGMsbSxiKXtyZXR1cm4gWWEoYyxtLGI/P3QuZ2V0VG9rZW5GdWxsU3RhcnQoKSksYXQmJihjLmZsYWdzfD1hdCksUXQmJihRdD0hMSxjLmZsYWdzfD0yNjIxNDQpLGN9ZnVuY3Rpb24gSnIoYyxtLGIsLi4udyl7bT9vYSh0LmdldFRva2VuRnVsbFN0YXJ0KCksMCxiLC4uLncpOmImJkplKGIsLi4udyk7bGV0IEE9VCgpLFI9Yz09PTgwP0coXCJcIix2b2lkIDApOlNsKGMpP3kuY3JlYXRlVGVtcGxhdGVMaXRlcmFsTGlrZU5vZGUoYyxcIlwiLFwiXCIsdm9pZCAwKTpjPT09OT9TKFwiXCIsdm9pZCAwKTpjPT09MTE/ayhcIlwiLHZvaWQgMCk6Yz09PTI4Mj95LmNyZWF0ZU1pc3NpbmdEZWNsYXJhdGlvbigpOnVlKGMpO3JldHVybiBNKFIsQSl9ZnVuY3Rpb24gc2EoYyl7bGV0IG09VHQuZ2V0KGMpO3JldHVybiBtPT09dm9pZCAwJiZUdC5zZXQoYyxtPWMpLG19ZnVuY3Rpb24gTmkoYyxtLGIpe2lmKGMpe09yKys7bGV0IGxlPVQoKSxuZT1mKCksaWU9c2EodC5nZXRUb2tlblZhbHVlKCkpLHZlPXQuaGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlKCk7cmV0dXJuICQoKSxNKEcoaWUsbmUsdmUpLGxlKX1pZihmKCk9PT04MSlyZXR1cm4gSmUoYnx8VS5Qcml2YXRlX2lkZW50aWZpZXJzX2FyZV9ub3RfYWxsb3dlZF9vdXRzaWRlX2NsYXNzX2JvZGllcyksTmkoITApO2lmKGYoKT09PTAmJnQudHJ5U2NhbigoKT0+dC5yZVNjYW5JbnZhbGlkSWRlbnRpZmllcigpPT09ODApKXJldHVybiBOaSghMCk7T3IrKztsZXQgdz1mKCk9PT0xLEE9dC5pc1Jlc2VydmVkV29yZCgpLFI9dC5nZXRUb2tlblRleHQoKSx0ZT1BP1UuSWRlbnRpZmllcl9leHBlY3RlZF8wX2lzX2FfcmVzZXJ2ZWRfd29yZF90aGF0X2Nhbm5vdF9iZV91c2VkX2hlcmU6VS5JZGVudGlmaWVyX2V4cGVjdGVkO3JldHVybiBKcig4MCx3LG18fHRlLFIpfWZ1bmN0aW9uIEdfKGMpe3JldHVybiBOaShBbigpLHZvaWQgMCxjKX1mdW5jdGlvbiBMdChjLG0pe3JldHVybiBOaShFdCgpLGMsbSl9ZnVuY3Rpb24gWXQoYyl7cmV0dXJuIE5pKGt0KGYoKSksYyl9ZnVuY3Rpb24gT2koKXtyZXR1cm4ga3QoZigpKXx8ZigpPT09MTF8fGYoKT09PTl9ZnVuY3Rpb24gcjEoKXtyZXR1cm4ga3QoZigpKXx8ZigpPT09MTF9ZnVuY3Rpb24gVHUoYyl7aWYoZigpPT09MTF8fGYoKT09PTkpe2xldCBtPWZpKCk7cmV0dXJuIG0udGV4dD1zYShtLnRleHQpLG19cmV0dXJuIGMmJmYoKT09PTIzP1N1KCk6ZigpPT09ODE/WF8oKTpZdCgpfWZ1bmN0aW9uIFVhKCl7cmV0dXJuIFR1KCEwKX1mdW5jdGlvbiBTdSgpe2xldCBjPVQoKTtIKDIzKTtsZXQgbT1MZShKdCk7cmV0dXJuIEgoMjQpLE0oeS5jcmVhdGVDb21wdXRlZFByb3BlcnR5TmFtZShtKSxjKX1mdW5jdGlvbiBYXygpe2xldCBjPVQoKSxtPUsoc2EodC5nZXRUb2tlblZhbHVlKCkpKTtyZXR1cm4gTygpLE0obSxjKX1mdW5jdGlvbiBfYShjKXtyZXR1cm4gZigpPT09YyYmZnQoJF8pfWZ1bmN0aW9uIHh1KCl7cmV0dXJuIE8oKSx0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpPyExOm1zKCl9ZnVuY3Rpb24gJF8oKXtzd2l0Y2goZigpKXtjYXNlIDg3OnJldHVybiBPKCk9PT05NDtjYXNlIDk1OnJldHVybiBPKCksZigpPT09OTA/VGUoTWkpOmYoKT09PTE1Nj9UZShkcyk6d3UoKTtjYXNlIDkwOnJldHVybiBNaSgpO2Nhc2UgMTI2OmNhc2UgMTM5OmNhc2UgMTUzOnJldHVybiBPKCksbXMoKTtkZWZhdWx0OnJldHVybiB4dSgpfX1mdW5jdGlvbiB3dSgpe3JldHVybiBmKCk9PT02MHx8ZigpIT09NDImJmYoKSE9PTEzMCYmZigpIT09MTkmJm1zKCl9ZnVuY3Rpb24gZHMoKXtyZXR1cm4gTygpLHd1KCl9ZnVuY3Rpb24gbjEoKXtyZXR1cm4gYmkoZigpKSYmZnQoJF8pfWZ1bmN0aW9uIG1zKCl7cmV0dXJuIGYoKT09PTIzfHxmKCk9PT0xOXx8ZigpPT09NDJ8fGYoKT09PTI2fHxPaSgpfWZ1bmN0aW9uIE1pKCl7cmV0dXJuIE8oKSxmKCk9PT04Nnx8ZigpPT09MTAwfHxmKCk9PT0xMjB8fGYoKT09PTYwfHxmKCk9PT0xMjgmJlRlKGFoKXx8ZigpPT09MTM0JiZUZShGYyl9ZnVuY3Rpb24gUV8oYyxtKXtpZihicyhjKSlyZXR1cm4hMDtzd2l0Y2goYyl7Y2FzZSAwOmNhc2UgMTpjYXNlIDM6cmV0dXJuIShmKCk9PT0yNyYmbSkmJkJjKCk7Y2FzZSAyOnJldHVybiBmKCk9PT04NHx8ZigpPT09OTA7Y2FzZSA0OnJldHVybiBUZShYdSk7Y2FzZSA1OnJldHVybiBUZShkaCl8fGYoKT09PTI3JiYhbTtjYXNlIDY6cmV0dXJuIGYoKT09PTIzfHxPaSgpO2Nhc2UgMTI6c3dpdGNoKGYoKSl7Y2FzZSAyMzpjYXNlIDQyOmNhc2UgMjY6Y2FzZSAyNTpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiBPaSgpfWNhc2UgMTg6cmV0dXJuIE9pKCk7Y2FzZSA5OnJldHVybiBmKCk9PT0yM3x8ZigpPT09MjZ8fE9pKCk7Y2FzZSAyNDpyZXR1cm4gcjEoKTtjYXNlIDc6cmV0dXJuIGYoKT09PTE5P1RlKGhzKTptP0V0KCkmJiFFdSgpOlNjKCkmJiFFdSgpO2Nhc2UgODpyZXR1cm4gemMoKTtjYXNlIDEwOnJldHVybiBmKCk9PT0yOHx8ZigpPT09MjZ8fHpjKCk7Y2FzZSAxOTpyZXR1cm4gZigpPT09MTAzfHxmKCk9PT04N3x8RXQoKTtjYXNlIDE1OnN3aXRjaChmKCkpe2Nhc2UgMjg6Y2FzZSAyNTpyZXR1cm4hMH1jYXNlIDExOnJldHVybiBmKCk9PT0yNnx8UmkoKTtjYXNlIDE2OnJldHVybiBfYyghMSk7Y2FzZSAxNzpyZXR1cm4gX2MoITApO2Nhc2UgMjA6Y2FzZSAyMTpyZXR1cm4gZigpPT09Mjh8fHBhKCk7Y2FzZSAyMjpyZXR1cm4gbGYoKTtjYXNlIDIzOnJldHVybiBmKCk9PT0xNjEmJlRlKFlwKT8hMTprdChmKCkpO2Nhc2UgMTM6cmV0dXJuIGt0KGYoKSl8fGYoKT09PTE5O2Nhc2UgMTQ6cmV0dXJuITA7Y2FzZSAyNTpyZXR1cm4hMDtjYXNlIDI2OnJldHVybiBOLmZhaWwoXCJQYXJzaW5nQ29udGV4dC5Db3VudCB1c2VkIGFzIGEgY29udGV4dFwiKTtkZWZhdWx0Ok4uYXNzZXJ0TmV2ZXIoYyxcIk5vbi1leGhhdXN0aXZlIGNhc2UgaW4gJ2lzTGlzdEVsZW1lbnQnLlwiKX19ZnVuY3Rpb24gaHMoKXtpZihOLmFzc2VydChmKCk9PT0xOSksTygpPT09MjApe2xldCBjPU8oKTtyZXR1cm4gYz09PTI4fHxjPT09MTl8fGM9PT05Nnx8Yz09PTExOX1yZXR1cm4hMH1mdW5jdGlvbiB5cygpe3JldHVybiBPKCksRXQoKX1mdW5jdGlvbiBDdSgpe3JldHVybiBPKCksa3QoZigpKX1mdW5jdGlvbiBZXygpe3JldHVybiBPKCksbjQoZigpKX1mdW5jdGlvbiBFdSgpe3JldHVybiBmKCk9PT0xMTl8fGYoKT09PTk2P1RlKEF1KTohMX1mdW5jdGlvbiBBdSgpe3JldHVybiBPKCksUmkoKX1mdW5jdGlvbiBrdSgpe3JldHVybiBPKCkscGEoKX1mdW5jdGlvbiBwbyhjKXtpZihmKCk9PT0xKXJldHVybiEwO3N3aXRjaChjKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6Y2FzZSA2OmNhc2UgMTI6Y2FzZSA5OmNhc2UgMjM6Y2FzZSAyNDpyZXR1cm4gZigpPT09MjA7Y2FzZSAzOnJldHVybiBmKCk9PT0yMHx8ZigpPT09ODR8fGYoKT09PTkwO2Nhc2UgNzpyZXR1cm4gZigpPT09MTl8fGYoKT09PTk2fHxmKCk9PT0xMTk7Y2FzZSA4OnJldHVybiBmbygpO2Nhc2UgMTk6cmV0dXJuIGYoKT09PTMyfHxmKCk9PT0yMXx8ZigpPT09MTl8fGYoKT09PTk2fHxmKCk9PT0xMTk7Y2FzZSAxMTpyZXR1cm4gZigpPT09MjJ8fGYoKT09PTI3O2Nhc2UgMTU6Y2FzZSAyMTpjYXNlIDEwOnJldHVybiBmKCk9PT0yNDtjYXNlIDE3OmNhc2UgMTY6Y2FzZSAxODpyZXR1cm4gZigpPT09MjJ8fGYoKT09PTI0O2Nhc2UgMjA6cmV0dXJuIGYoKSE9PTI4O2Nhc2UgMjI6cmV0dXJuIGYoKT09PTE5fHxmKCk9PT0yMDtjYXNlIDEzOnJldHVybiBmKCk9PT0zMnx8ZigpPT09NDQ7Y2FzZSAxNDpyZXR1cm4gZigpPT09MzAmJlRlKEFoKTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBmbygpe3JldHVybiEhKHVpKCl8fENjKGYoKSl8fGYoKT09PTM5KX1mdW5jdGlvbiBpMSgpe04uYXNzZXJ0KHB0LFwiTWlzc2luZyBwYXJzaW5nIGNvbnRleHRcIik7Zm9yKGxldCBjPTA7YzwyNjtjKyspaWYocHQmMTw8YyYmKFFfKGMsITApfHxwbyhjKSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24genIoYyxtKXtsZXQgYj1wdDtwdHw9MTw8YztsZXQgdz1bXSxBPVQoKTtmb3IoOyFwbyhjKTspe2lmKFFfKGMsITEpKXt3LnB1c2goZ3MoYyxtKSk7Y29udGludWV9aWYodGMoYykpYnJlYWt9cmV0dXJuIHB0PWIsRnQodyxBKX1mdW5jdGlvbiBncyhjLG0pe2xldCBiPWJzKGMpO3JldHVybiBiP0R1KGIpOm0oKX1mdW5jdGlvbiBicyhjLG0pe3ZhciBiO2lmKCFmcnx8IVB1KGMpfHxRdClyZXR1cm47bGV0IHc9ZnIuY3VycmVudE5vZGUobT8/dC5nZXRUb2tlbkZ1bGxTdGFydCgpKTtpZighKHppKHcpfHx3LmludGVyc2VjdHNDaGFuZ2V8fHhsKHcpfHwody5mbGFncyYxMDE0NDE1MzYpIT09YXQpJiZhMSh3LGMpKXJldHVybiBkbSh3KSYmKChiPXcuanNEb2MpIT1udWxsJiZiLmpzRG9jQ2FjaGUpJiYody5qc0RvYy5qc0RvY0NhY2hlPXZvaWQgMCksd31mdW5jdGlvbiBEdShjKXtyZXR1cm4gdC5yZXNldFRva2VuU3RhdGUoYy5lbmQpLE8oKSxjfWZ1bmN0aW9uIFB1KGMpe3N3aXRjaChjKXtjYXNlIDU6Y2FzZSAyOmNhc2UgMDpjYXNlIDE6Y2FzZSAzOmNhc2UgNjpjYXNlIDQ6Y2FzZSA4OmNhc2UgMTc6Y2FzZSAxNjpyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBhMShjLG0pe3N3aXRjaChtKXtjYXNlIDU6cmV0dXJuIEl1KGMpO2Nhc2UgMjpyZXR1cm4gTnUoYyk7Y2FzZSAwOmNhc2UgMTpjYXNlIDM6cmV0dXJuIEtfKGMpO2Nhc2UgNjpyZXR1cm4gT3UoYyk7Y2FzZSA0OnJldHVybiBaXyhjKTtjYXNlIDg6cmV0dXJuIE11KGMpO2Nhc2UgMTc6Y2FzZSAxNjpyZXR1cm4gZWMoYyl9cmV0dXJuITF9ZnVuY3Rpb24gSXUoYyl7aWYoYylzd2l0Y2goYy5raW5kKXtjYXNlIDE3NjpjYXNlIDE4MTpjYXNlIDE3NzpjYXNlIDE3ODpjYXNlIDE3MjpjYXNlIDI0MDpyZXR1cm4hMDtjYXNlIDE3NDpsZXQgbT1jO3JldHVybiEobS5uYW1lLmtpbmQ9PT04MCYmbS5uYW1lLmVzY2FwZWRUZXh0PT09XCJjb25zdHJ1Y3RvclwiKX1yZXR1cm4hMX1mdW5jdGlvbiBOdShjKXtpZihjKXN3aXRjaChjLmtpbmQpe2Nhc2UgMjk2OmNhc2UgMjk3OnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIEtfKGMpe2lmKGMpc3dpdGNoKGMua2luZCl7Y2FzZSAyNjI6Y2FzZSAyNDM6Y2FzZSAyNDE6Y2FzZSAyNDU6Y2FzZSAyNDQ6Y2FzZSAyNTc6Y2FzZSAyNTM6Y2FzZSAyNTU6Y2FzZSAyNTI6Y2FzZSAyNTE6Y2FzZSAyNDk6Y2FzZSAyNTA6Y2FzZSAyNDg6Y2FzZSAyNDc6Y2FzZSAyNTQ6Y2FzZSAyNDI6Y2FzZSAyNTg6Y2FzZSAyNTY6Y2FzZSAyNDY6Y2FzZSAyNTk6Y2FzZSAyNzI6Y2FzZSAyNzE6Y2FzZSAyNzg6Y2FzZSAyNzc6Y2FzZSAyNjc6Y2FzZSAyNjM6Y2FzZSAyNjQ6Y2FzZSAyNjY6Y2FzZSAyNjU6cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gT3UoYyl7cmV0dXJuIGMua2luZD09PTMwNn1mdW5jdGlvbiBaXyhjKXtpZihjKXN3aXRjaChjLmtpbmQpe2Nhc2UgMTgwOmNhc2UgMTczOmNhc2UgMTgxOmNhc2UgMTcxOmNhc2UgMTc5OnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIE11KGMpe3JldHVybiBjLmtpbmQhPT0yNjA/ITE6Yy5pbml0aWFsaXplcj09PXZvaWQgMH1mdW5jdGlvbiBlYyhjKXtyZXR1cm4gYy5raW5kIT09MTY5PyExOmMuaW5pdGlhbGl6ZXI9PT12b2lkIDB9ZnVuY3Rpb24gdGMoYyl7cmV0dXJuIEx1KGMpLGkxKCk/ITA6KE8oKSwhMSl9ZnVuY3Rpb24gTHUoYyl7c3dpdGNoKGMpe2Nhc2UgMDpyZXR1cm4gZigpPT09OTA/SmUoVS5fMF9leHBlY3RlZCxucig5NSkpOkplKFUuRGVjbGFyYXRpb25fb3Jfc3RhdGVtZW50X2V4cGVjdGVkKTtjYXNlIDE6cmV0dXJuIEplKFUuRGVjbGFyYXRpb25fb3Jfc3RhdGVtZW50X2V4cGVjdGVkKTtjYXNlIDI6cmV0dXJuIEplKFUuY2FzZV9vcl9kZWZhdWx0X2V4cGVjdGVkKTtjYXNlIDM6cmV0dXJuIEplKFUuU3RhdGVtZW50X2V4cGVjdGVkKTtjYXNlIDE4OmNhc2UgNDpyZXR1cm4gSmUoVS5Qcm9wZXJ0eV9vcl9zaWduYXR1cmVfZXhwZWN0ZWQpO2Nhc2UgNTpyZXR1cm4gSmUoVS5VbmV4cGVjdGVkX3Rva2VuX0FfY29uc3RydWN0b3JfbWV0aG9kX2FjY2Vzc29yX29yX3Byb3BlcnR5X3dhc19leHBlY3RlZCk7Y2FzZSA2OnJldHVybiBKZShVLkVudW1fbWVtYmVyX2V4cGVjdGVkKTtjYXNlIDc6cmV0dXJuIEplKFUuRXhwcmVzc2lvbl9leHBlY3RlZCk7Y2FzZSA4OnJldHVybiBTaShmKCkpP0plKFUuXzBfaXNfbm90X2FsbG93ZWRfYXNfYV92YXJpYWJsZV9kZWNsYXJhdGlvbl9uYW1lLG5yKGYoKSkpOkplKFUuVmFyaWFibGVfZGVjbGFyYXRpb25fZXhwZWN0ZWQpO2Nhc2UgOTpyZXR1cm4gSmUoVS5Qcm9wZXJ0eV9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fZXhwZWN0ZWQpO2Nhc2UgMTA6cmV0dXJuIEplKFUuQXJyYXlfZWxlbWVudF9kZXN0cnVjdHVyaW5nX3BhdHRlcm5fZXhwZWN0ZWQpO2Nhc2UgMTE6cmV0dXJuIEplKFUuQXJndW1lbnRfZXhwcmVzc2lvbl9leHBlY3RlZCk7Y2FzZSAxMjpyZXR1cm4gSmUoVS5Qcm9wZXJ0eV9hc3NpZ25tZW50X2V4cGVjdGVkKTtjYXNlIDE1OnJldHVybiBKZShVLkV4cHJlc3Npb25fb3JfY29tbWFfZXhwZWN0ZWQpO2Nhc2UgMTc6cmV0dXJuIEplKFUuUGFyYW1ldGVyX2RlY2xhcmF0aW9uX2V4cGVjdGVkKTtjYXNlIDE2OnJldHVybiBTaShmKCkpP0plKFUuXzBfaXNfbm90X2FsbG93ZWRfYXNfYV9wYXJhbWV0ZXJfbmFtZSxucihmKCkpKTpKZShVLlBhcmFtZXRlcl9kZWNsYXJhdGlvbl9leHBlY3RlZCk7Y2FzZSAxOTpyZXR1cm4gSmUoVS5UeXBlX3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9leHBlY3RlZCk7Y2FzZSAyMDpyZXR1cm4gSmUoVS5UeXBlX2FyZ3VtZW50X2V4cGVjdGVkKTtjYXNlIDIxOnJldHVybiBKZShVLlR5cGVfZXhwZWN0ZWQpO2Nhc2UgMjI6cmV0dXJuIEplKFUuVW5leHBlY3RlZF90b2tlbl9leHBlY3RlZCk7Y2FzZSAyMzpyZXR1cm4gZigpPT09MTYxP0plKFUuXzBfZXhwZWN0ZWQsXCJ9XCIpOkplKFUuSWRlbnRpZmllcl9leHBlY3RlZCk7Y2FzZSAxMzpyZXR1cm4gSmUoVS5JZGVudGlmaWVyX2V4cGVjdGVkKTtjYXNlIDE0OnJldHVybiBKZShVLklkZW50aWZpZXJfZXhwZWN0ZWQpO2Nhc2UgMjQ6cmV0dXJuIEplKFUuSWRlbnRpZmllcl9vcl9zdHJpbmdfbGl0ZXJhbF9leHBlY3RlZCk7Y2FzZSAyNTpyZXR1cm4gSmUoVS5JZGVudGlmaWVyX2V4cGVjdGVkKTtjYXNlIDI2OnJldHVybiBOLmZhaWwoXCJQYXJzaW5nQ29udGV4dC5Db3VudCB1c2VkIGFzIGEgY29udGV4dFwiKTtkZWZhdWx0Ok4uYXNzZXJ0TmV2ZXIoYyl9fWZ1bmN0aW9uIFdyKGMsbSxiKXtsZXQgdz1wdDtwdHw9MTw8YztsZXQgQT1bXSxSPVQoKSx0ZT0tMTtmb3IoOzspe2lmKFFfKGMsITEpKXtsZXQgbGU9dC5nZXRUb2tlbkZ1bGxTdGFydCgpLG5lPWdzKGMsbSk7aWYoIW5lKXtwdD13O3JldHVybn1pZihBLnB1c2gobmUpLHRlPXQuZ2V0VG9rZW5TdGFydCgpLGplKDI4KSljb250aW51ZTtpZih0ZT0tMSxwbyhjKSlicmVhaztIKDI4LHZzKGMpKSxiJiZmKCk9PT0yNyYmIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJk8oKSxsZT09PXQuZ2V0VG9rZW5GdWxsU3RhcnQoKSYmTygpO2NvbnRpbnVlfWlmKHBvKGMpfHx0YyhjKSlicmVha31yZXR1cm4gcHQ9dyxGdChBLFIsdm9pZCAwLHRlPj0wKX1mdW5jdGlvbiB2cyhjKXtyZXR1cm4gYz09PTY/VS5Bbl9lbnVtX21lbWJlcl9uYW1lX211c3RfYmVfZm9sbG93ZWRfYnlfYV9vcjp2b2lkIDB9ZnVuY3Rpb24gcGkoKXtsZXQgYz1GdChbXSxUKCkpO3JldHVybiBjLmlzTWlzc2luZ0xpc3Q9ITAsY31mdW5jdGlvbiByYyhjKXtyZXR1cm4hIWMuaXNNaXNzaW5nTGlzdH1mdW5jdGlvbiBjYShjLG0sYix3KXtpZihIKGIpKXtsZXQgQT1XcihjLG0pO3JldHVybiBIKHcpLEF9cmV0dXJuIHBpKCl9ZnVuY3Rpb24gbGEoYyxtKXtsZXQgYj1UKCksdz1jP1l0KG0pOkx0KG0pO2Zvcig7amUoMjUpJiZmKCkhPT0zMDspdz1NKHkuY3JlYXRlUXVhbGlmaWVkTmFtZSh3LHFhKGMsITEpKSxiKTtyZXR1cm4gd31mdW5jdGlvbiBvMShjLG0pe3JldHVybiBNKHkuY3JlYXRlUXVhbGlmaWVkTmFtZShjLG0pLGMucG9zKX1mdW5jdGlvbiBxYShjLG0pe2lmKHQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJmt0KGYoKSkmJlRlKEpzKSlyZXR1cm4gSnIoODAsITAsVS5JZGVudGlmaWVyX2V4cGVjdGVkKTtpZihmKCk9PT04MSl7bGV0IGI9WF8oKTtyZXR1cm4gbT9iOkpyKDgwLCEwLFUuSWRlbnRpZmllcl9leHBlY3RlZCl9cmV0dXJuIGM/WXQoKTpMdCgpfWZ1bmN0aW9uIHMxKGMpe2xldCBtPVQoKSxiPVtdLHc7ZG8gdz1qdShjKSxiLnB1c2godyk7d2hpbGUody5saXRlcmFsLmtpbmQ9PT0xNyk7cmV0dXJuIEZ0KGIsbSl9ZnVuY3Rpb24gVHMoYyl7bGV0IG09VCgpO3JldHVybiBNKHkuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uKGljKGMpLHMxKGMpKSxtKX1mdW5jdGlvbiBfMSgpe2xldCBjPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbFR5cGUoaWMoITEpLG5jKCkpLGMpfWZ1bmN0aW9uIG5jKCl7bGV0IGM9VCgpLG09W10sYjtkbyBiPUp1KCksbS5wdXNoKGIpO3doaWxlKGIubGl0ZXJhbC5raW5kPT09MTcpO3JldHVybiBGdChtLGMpfWZ1bmN0aW9uIEp1KCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlVGVtcGxhdGVMaXRlcmFsVHlwZVNwYW4oZ3QoKSxSdSghMSkpLGMpfWZ1bmN0aW9uIFJ1KGMpe3JldHVybiBmKCk9PT0yMD8od2UoYyksYzEoKSk6SG4oMTgsVS5fMF9leHBlY3RlZCxucigyMCkpfWZ1bmN0aW9uIGp1KGMpe2xldCBtPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZVRlbXBsYXRlU3BhbihMZShKdCksUnUoYykpLG0pfWZ1bmN0aW9uIGZpKCl7cmV0dXJuIHphKGYoKSl9ZnVuY3Rpb24gaWMoYyl7IWMmJnQuZ2V0VG9rZW5GbGFncygpJjI2NjU2JiZ3ZSghMSk7bGV0IG09emEoZigpKTtyZXR1cm4gTi5hc3NlcnQobS5raW5kPT09MTYsXCJUZW1wbGF0ZSBoZWFkIGhhcyB3cm9uZyB0b2tlbiBraW5kXCIpLG19ZnVuY3Rpb24gYzEoKXtsZXQgYz16YShmKCkpO3JldHVybiBOLmFzc2VydChjLmtpbmQ9PT0xN3x8Yy5raW5kPT09MTgsXCJUZW1wbGF0ZSBmcmFnbWVudCBoYXMgd3JvbmcgdG9rZW4ga2luZFwiKSxjfWZ1bmN0aW9uIFNzKGMpe2xldCBtPWM9PT0xNXx8Yz09PTE4LGI9dC5nZXRUb2tlblRleHQoKTtyZXR1cm4gYi5zdWJzdHJpbmcoMSxiLmxlbmd0aC0odC5pc1VudGVybWluYXRlZCgpPzA6bT8xOjIpKX1mdW5jdGlvbiB6YShjKXtsZXQgbT1UKCksYj1TbChjKT95LmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbExpa2VOb2RlKGMsdC5nZXRUb2tlblZhbHVlKCksU3MoYyksdC5nZXRUb2tlbkZsYWdzKCkmNzE3Nik6Yz09PTk/Uyh0LmdldFRva2VuVmFsdWUoKSx0LmdldE51bWVyaWNMaXRlcmFsRmxhZ3MoKSk6Yz09PTExP2sodC5nZXRUb2tlblZhbHVlKCksdm9pZCAwLHQuaGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlKCkpOk5nKGMpP0woYyx0LmdldFRva2VuVmFsdWUoKSk6Ti5mYWlsKCk7cmV0dXJuIHQuaGFzRXh0ZW5kZWRVbmljb2RlRXNjYXBlKCkmJihiLmhhc0V4dGVuZGVkVW5pY29kZUVzY2FwZT0hMCksdC5pc1VudGVybWluYXRlZCgpJiYoYi5pc1VudGVybWluYXRlZD0hMCksTygpLE0oYixtKX1mdW5jdGlvbiBGdSgpe3JldHVybiBsYSghMCxVLlR5cGVfZXhwZWN0ZWQpfWZ1bmN0aW9uIGFjKCl7aWYoIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJmV0KCk9PT0zMClyZXR1cm4gY2EoMjAsZ3QsMzAsMzIpfWZ1bmN0aW9uIExpKCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlVHlwZVJlZmVyZW5jZU5vZGUoRnUoKSxhYygpKSxjKX1mdW5jdGlvbiBvYyhjKXtzd2l0Y2goYy5raW5kKXtjYXNlIDE4MzpyZXR1cm4gemkoYy50eXBlTmFtZSk7Y2FzZSAxODQ6Y2FzZSAxODU6e2xldHtwYXJhbWV0ZXJzOm0sdHlwZTpifT1jO3JldHVybiByYyhtKXx8b2MoYil9Y2FzZSAxOTY6cmV0dXJuIG9jKGMudHlwZSk7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gbDEoYyl7cmV0dXJuIE8oKSxNKHkuY3JlYXRlVHlwZVByZWRpY2F0ZU5vZGUodm9pZCAwLGMsZ3QoKSksYy5wb3MpfWZ1bmN0aW9uIEJ1KCl7bGV0IGM9VCgpO3JldHVybiBPKCksTSh5LmNyZWF0ZVRoaXNUeXBlTm9kZSgpLGMpfWZ1bmN0aW9uIHUxKCl7bGV0IGM9VCgpO3JldHVybiBPKCksTSh5LmNyZWF0ZUpTRG9jQWxsVHlwZSgpLGMpfWZ1bmN0aW9uIFV1KCl7bGV0IGM9VCgpO3JldHVybiBPKCksTSh5LmNyZWF0ZUpTRG9jTm9uTnVsbGFibGVUeXBlKG9wKCksITEpLGMpfWZ1bmN0aW9uIHAxKCl7bGV0IGM9VCgpO3JldHVybiBPKCksZigpPT09Mjh8fGYoKT09PTIwfHxmKCk9PT0yMnx8ZigpPT09MzJ8fGYoKT09PTY0fHxmKCk9PT01Mj9NKHkuY3JlYXRlSlNEb2NVbmtub3duVHlwZSgpLGMpOk0oeS5jcmVhdGVKU0RvY051bGxhYmxlVHlwZShndCgpLCExKSxjKX1mdW5jdGlvbiBxdSgpe2xldCBjPVQoKSxtPXgoKTtpZihUZShkZikpe08oKTtsZXQgYj1HbigzNiksdz1Ebig1OSwhMSk7cmV0dXJuIEFlKE0oeS5jcmVhdGVKU0RvY0Z1bmN0aW9uVHlwZShiLHcpLGMpLG0pfXJldHVybiBNKHkuY3JlYXRlVHlwZVJlZmVyZW5jZU5vZGUoWXQoKSx2b2lkIDApLGMpfWZ1bmN0aW9uIGYxKCl7bGV0IGM9VCgpLG07cmV0dXJuKGYoKT09PTExMHx8ZigpPT09MTA1KSYmKG09WXQoKSxIKDU5KSksTSh5LmNyZWF0ZVBhcmFtZXRlckRlY2xhcmF0aW9uKHZvaWQgMCx2b2lkIDAsbSx2b2lkIDAseHMoKSx2b2lkIDApLGMpfWZ1bmN0aW9uIHhzKCl7dC5zZXRJbkpTRG9jVHlwZSghMCk7bGV0IGM9VCgpO2lmKGplKDE0NCkpe2xldCB3PXkuY3JlYXRlSlNEb2NOYW1lcGF0aFR5cGUodm9pZCAwKTtlOmZvcig7Oylzd2l0Y2goZigpKXtjYXNlIDIwOmNhc2UgMTpjYXNlIDI4OmNhc2UgNTpicmVhayBlO2RlZmF1bHQ6ZmUoKX1yZXR1cm4gdC5zZXRJbkpTRG9jVHlwZSghMSksTSh3LGMpfWxldCBtPWplKDI2KSxiPXZjKCk7cmV0dXJuIHQuc2V0SW5KU0RvY1R5cGUoITEpLG0mJihiPU0oeS5jcmVhdGVKU0RvY1ZhcmlhZGljVHlwZShiKSxjKSksZigpPT09NjQ/KE8oKSxNKHkuY3JlYXRlSlNEb2NPcHRpb25hbFR5cGUoYiksYykpOmJ9ZnVuY3Rpb24gc2MoKXtsZXQgYz1UKCk7SCgxMTQpO2xldCBtPWxhKCEwKSxiPXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCk/dm9pZCAwOnFzKCk7cmV0dXJuIE0oeS5jcmVhdGVUeXBlUXVlcnlOb2RlKG0sYiksYyl9ZnVuY3Rpb24gZDEoKXtsZXQgYz1UKCksbT1YbighMSwhMCksYj1MdCgpLHcsQTtqZSg5NikmJihwYSgpfHwhUmkoKT93PWd0KCk6QT1QcygpKTtsZXQgUj1qZSg2NCk/Z3QoKTp2b2lkIDAsdGU9eS5jcmVhdGVUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24obSxiLHcsUik7cmV0dXJuIHRlLmV4cHJlc3Npb249QSxNKHRlLGMpfWZ1bmN0aW9uIFZyKCl7aWYoZigpPT09MzApcmV0dXJuIGNhKDE5LGQxLDMwLDMyKX1mdW5jdGlvbiBfYyhjKXtyZXR1cm4gZigpPT09MjZ8fHpjKCl8fGJpKGYoKSl8fGYoKT09PTYwfHxwYSghYyl9ZnVuY3Rpb24genUoYyl7bGV0IG09VmEoVS5Qcml2YXRlX2lkZW50aWZpZXJzX2Nhbm5vdF9iZV91c2VkX2FzX3BhcmFtZXRlcnMpO3JldHVybiBvbShtKT09PTAmJiFtdChjKSYmYmkoZigpKSYmTygpLG19ZnVuY3Rpb24gV3UoKXtyZXR1cm4gQW4oKXx8ZigpPT09MjN8fGYoKT09PTE5fWZ1bmN0aW9uIGNjKGMpe3JldHVybiBsYyhjKX1mdW5jdGlvbiBWdShjKXtyZXR1cm4gbGMoYywhMSl9ZnVuY3Rpb24gbGMoYyxtPSEwKXtsZXQgYj1UKCksdz14KCksQT1jP0NuKCgpPT5YbighMCkpOnpuKCgpPT5YbighMCkpO2lmKGYoKT09PTExMCl7bGV0IG5lPXkuY3JlYXRlUGFyYW1ldGVyRGVjbGFyYXRpb24oQSx2b2lkIDAsTmkoITApLHZvaWQgMCxKaSgpLHZvaWQgMCksaWU9Z18oQSk7cmV0dXJuIGllJiZMcihpZSxVLk5laXRoZXJfZGVjb3JhdG9yc19ub3JfbW9kaWZpZXJzX21heV9iZV9hcHBsaWVkX3RvX3RoaXNfcGFyYW1ldGVycyksQWUoTShuZSxiKSx3KX1sZXQgUj1lcjtlcj0hMTtsZXQgdGU9ZHQoMjYpO2lmKCFtJiYhV3UoKSlyZXR1cm47bGV0IGxlPUFlKE0oeS5jcmVhdGVQYXJhbWV0ZXJEZWNsYXJhdGlvbihBLHRlLHp1KEEpLGR0KDU4KSxKaSgpLGppKCkpLGIpLHcpO3JldHVybiBlcj1SLGxlfWZ1bmN0aW9uIERuKGMsbSl7aWYoSHUoYyxtKSlyZXR1cm4geXQodmMpfWZ1bmN0aW9uIEh1KGMsbSl7cmV0dXJuIGM9PT0zOT8oSChjKSwhMCk6amUoNTkpPyEwOm0mJmYoKT09PTM5PyhKZShVLl8wX2V4cGVjdGVkLG5yKDU5KSksTygpLCEwKTohMX1mdW5jdGlvbiB3cyhjLG0pe2xldCBiPUVuKCksdz1TcigpO3ooISEoYyYxKSksZWUoISEoYyYyKSk7bGV0IEE9YyYzMj9XcigxNyxmMSk6V3IoMTYsKCk9Pm0/Y2Modyk6VnUodykpO3JldHVybiB6KGIpLGVlKHcpLEF9ZnVuY3Rpb24gR24oYyl7aWYoIUgoMjEpKXJldHVybiBwaSgpO2xldCBtPXdzKGMsITApO3JldHVybiBIKDIyKSxtfWZ1bmN0aW9uIENzKCl7amUoMjgpfHx4cigpfWZ1bmN0aW9uIHVjKGMpe2xldCBtPVQoKSxiPXgoKTtjPT09MTgwJiZIKDEwNSk7bGV0IHc9VnIoKSxBPUduKDQpLFI9RG4oNTksITApO0NzKCk7bGV0IHRlPWM9PT0xNzk/eS5jcmVhdGVDYWxsU2lnbmF0dXJlKHcsQSxSKTp5LmNyZWF0ZUNvbnN0cnVjdFNpZ25hdHVyZSh3LEEsUik7cmV0dXJuIEFlKE0odGUsbSksYil9ZnVuY3Rpb24gR3UoKXtyZXR1cm4gZigpPT09MjMmJlRlKG0xKX1mdW5jdGlvbiBtMSgpe2lmKE8oKSxmKCk9PT0yNnx8ZigpPT09MjQpcmV0dXJuITA7aWYoYmkoZigpKSl7aWYoTygpLEV0KCkpcmV0dXJuITB9ZWxzZSBpZihFdCgpKU8oKTtlbHNlIHJldHVybiExO3JldHVybiBmKCk9PT01OXx8ZigpPT09Mjg/ITA6ZigpIT09NTg/ITE6KE8oKSxmKCk9PT01OXx8ZigpPT09Mjh8fGYoKT09PTI0KX1mdW5jdGlvbiB1YShjLG0sYil7bGV0IHc9Y2EoMTYsKCk9PmNjKCExKSwyMywyNCksQT1KaSgpO0NzKCk7bGV0IFI9eS5jcmVhdGVJbmRleFNpZ25hdHVyZShiLHcsQSk7cmV0dXJuIEFlKE0oUixjKSxtKX1mdW5jdGlvbiBoMShjLG0sYil7bGV0IHc9VWEoKSxBPWR0KDU4KSxSO2lmKGYoKT09PTIxfHxmKCk9PT0zMCl7bGV0IHRlPVZyKCksbGU9R24oNCksbmU9RG4oNTksITApO1I9eS5jcmVhdGVNZXRob2RTaWduYXR1cmUoYix3LEEsdGUsbGUsbmUpfWVsc2V7bGV0IHRlPUppKCk7Uj15LmNyZWF0ZVByb3BlcnR5U2lnbmF0dXJlKGIsdyxBLHRlKSxmKCk9PT02NCYmKFIuaW5pdGlhbGl6ZXI9amkoKSl9cmV0dXJuIENzKCksQWUoTShSLGMpLG0pfWZ1bmN0aW9uIFh1KCl7aWYoZigpPT09MjF8fGYoKT09PTMwfHxmKCk9PT0xMzl8fGYoKT09PTE1MylyZXR1cm4hMDtsZXQgYz0hMTtmb3IoO2JpKGYoKSk7KWM9ITAsTygpO3JldHVybiBmKCk9PT0yMz8hMDooT2koKSYmKGM9ITAsTygpKSxjP2YoKT09PTIxfHxmKCk9PT0zMHx8ZigpPT09NTh8fGYoKT09PTU5fHxmKCk9PT0yOHx8dWkoKTohMSl9ZnVuY3Rpb24gcGMoKXtpZihmKCk9PT0yMXx8ZigpPT09MzApcmV0dXJuIHVjKDE3OSk7aWYoZigpPT09MTA1JiZUZShmYykpcmV0dXJuIHVjKDE4MCk7bGV0IGM9VCgpLG09eCgpLGI9WG4oITEpO3JldHVybiBfYSgxMzkpP2RhKGMsbSxiLDE3Nyw0KTpfYSgxNTMpP2RhKGMsbSxiLDE3OCw0KTpHdSgpP3VhKGMsbSxiKTpoMShjLG0sYil9ZnVuY3Rpb24gZmMoKXtyZXR1cm4gTygpLGYoKT09PTIxfHxmKCk9PT0zMH1mdW5jdGlvbiBFcygpe3JldHVybiBPKCk9PT0yNX1mdW5jdGlvbiAkdSgpe3N3aXRjaChPKCkpe2Nhc2UgMjE6Y2FzZSAzMDpjYXNlIDI1OnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIFF1KCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlVHlwZUxpdGVyYWxOb2RlKFl1KCkpLGMpfWZ1bmN0aW9uIFl1KCl7bGV0IGM7cmV0dXJuIEgoMTkpPyhjPXpyKDQscGMpLEgoMjApKTpjPXBpKCksY31mdW5jdGlvbiBLdSgpe3JldHVybiBPKCksZigpPT09NDB8fGYoKT09PTQxP08oKT09PTE0ODooZigpPT09MTQ4JiZPKCksZigpPT09MjMmJnlzKCkmJk8oKT09PTEwMyl9ZnVuY3Rpb24geTEoKXtsZXQgYz1UKCksbT1ZdCgpO0goMTAzKTtsZXQgYj1ndCgpO3JldHVybiBNKHkuY3JlYXRlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKHZvaWQgMCxtLGIsdm9pZCAwKSxjKX1mdW5jdGlvbiBadSgpe2xldCBjPVQoKTtIKDE5KTtsZXQgbTsoZigpPT09MTQ4fHxmKCk9PT00MHx8ZigpPT09NDEpJiYobT1kcigpLG0ua2luZCE9PTE0OCYmSCgxNDgpKSxIKDIzKTtsZXQgYj15MSgpLHc9amUoMTMwKT9ndCgpOnZvaWQgMDtIKDI0KTtsZXQgQTsoZigpPT09NTh8fGYoKT09PTQwfHxmKCk9PT00MSkmJihBPWRyKCksQS5raW5kIT09NTgmJkgoNTgpKTtsZXQgUj1KaSgpO3hyKCk7bGV0IHRlPXpyKDQscGMpO3JldHVybiBIKDIwKSxNKHkuY3JlYXRlTWFwcGVkVHlwZU5vZGUobSxiLHcsQSxSLHRlKSxjKX1mdW5jdGlvbiBlcCgpe2xldCBjPVQoKTtpZihqZSgyNikpcmV0dXJuIE0oeS5jcmVhdGVSZXN0VHlwZU5vZGUoZ3QoKSksYyk7bGV0IG09Z3QoKTtpZih2OChtKSYmbS5wb3M9PT1tLnR5cGUucG9zKXtsZXQgYj15LmNyZWF0ZU9wdGlvbmFsVHlwZU5vZGUobS50eXBlKTtyZXR1cm4gVmUoYixtKSxiLmZsYWdzPW0uZmxhZ3MsYn1yZXR1cm4gbX1mdW5jdGlvbiBkYygpe3JldHVybiBPKCk9PT01OXx8ZigpPT09NTgmJk8oKT09PTU5fWZ1bmN0aW9uIGcxKCl7cmV0dXJuIGYoKT09PTI2P2t0KE8oKSkmJmRjKCk6a3QoZigpKSYmZGMoKX1mdW5jdGlvbiB0cCgpe2lmKFRlKGcxKSl7bGV0IGM9VCgpLG09eCgpLGI9ZHQoMjYpLHc9WXQoKSxBPWR0KDU4KTtIKDU5KTtsZXQgUj1lcCgpLHRlPXkuY3JlYXRlTmFtZWRUdXBsZU1lbWJlcihiLHcsQSxSKTtyZXR1cm4gQWUoTSh0ZSxjKSxtKX1yZXR1cm4gZXAoKX1mdW5jdGlvbiBiMSgpe2xldCBjPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZVR1cGxlVHlwZU5vZGUoY2EoMjEsdHAsMjMsMjQpKSxjKX1mdW5jdGlvbiBycCgpe2xldCBjPVQoKTtIKDIxKTtsZXQgbT1ndCgpO3JldHVybiBIKDIyKSxNKHkuY3JlYXRlUGFyZW50aGVzaXplZFR5cGUobSksYyl9ZnVuY3Rpb24gdjEoKXtsZXQgYztpZihmKCk9PT0xMjgpe2xldCBtPVQoKTtPKCk7bGV0IGI9TSh1ZSgxMjgpLG0pO2M9RnQoW2JdLG0pfXJldHVybiBjfWZ1bmN0aW9uIG1jKCl7bGV0IGM9VCgpLG09eCgpLGI9djEoKSx3PWplKDEwNSk7Ti5hc3NlcnQoIWJ8fHcsXCJQZXIgaXNTdGFydE9mRnVuY3Rpb25PckNvbnN0cnVjdG9yVHlwZSwgYSBmdW5jdGlvbiB0eXBlIGNhbm5vdCBoYXZlIG1vZGlmaWVycy5cIik7bGV0IEE9VnIoKSxSPUduKDQpLHRlPURuKDM5LCExKSxsZT13P3kuY3JlYXRlQ29uc3RydWN0b3JUeXBlTm9kZShiLEEsUix0ZSk6eS5jcmVhdGVGdW5jdGlvblR5cGVOb2RlKEEsUix0ZSk7cmV0dXJuIEFlKE0obGUsYyksbSl9ZnVuY3Rpb24gbnAoKXtsZXQgYz1kcigpO3JldHVybiBmKCk9PT0yNT92b2lkIDA6Y31mdW5jdGlvbiBoYyhjKXtsZXQgbT1UKCk7YyYmTygpO2xldCBiPWYoKT09PTExMnx8ZigpPT09OTd8fGYoKT09PTEwNj9kcigpOnphKGYoKSk7cmV0dXJuIGMmJihiPU0oeS5jcmVhdGVQcmVmaXhVbmFyeUV4cHJlc3Npb24oNDEsYiksbSkpLE0oeS5jcmVhdGVMaXRlcmFsVHlwZU5vZGUoYiksbSl9ZnVuY3Rpb24gVDEoKXtyZXR1cm4gTygpLGYoKT09PTEwMn1mdW5jdGlvbiBpcCgpe2xldCBjPVQoKSxtPXQuZ2V0VG9rZW5TdGFydCgpO0goMTkpO2xldCBiPXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCk7SCgxMzIpLEgoNTkpO2xldCB3PW1hKCEwKTtpZighSCgyMCkpe2xldCBBPXdpKGN0KTtBJiZBLmNvZGU9PT1VLl8wX2V4cGVjdGVkLmNvZGUmJm5sKEEsQW8oc3IsbSwxLFUuVGhlX3BhcnNlcl9leHBlY3RlZF90b19maW5kX2FfMV90b19tYXRjaF90aGVfMF90b2tlbl9oZXJlLFwie1wiLFwifVwiKSl9cmV0dXJuIE0oeS5jcmVhdGVJbXBvcnRUeXBlQXNzZXJ0aW9uQ29udGFpbmVyKHcsYiksYyl9ZnVuY3Rpb24gYXAoKXskdHw9NDE5NDMwNDtsZXQgYz1UKCksbT1qZSgxMTQpO0goMTAyKSxIKDIxKTtsZXQgYj1ndCgpLHc7amUoMjgpJiYodz1pcCgpKSxIKDIyKTtsZXQgQT1qZSgyNSk/RnUoKTp2b2lkIDAsUj1hYygpO3JldHVybiBNKHkuY3JlYXRlSW1wb3J0VHlwZU5vZGUoYix3LEEsUixtKSxjKX1mdW5jdGlvbiB5Yygpe3JldHVybiBPKCksZigpPT09OXx8ZigpPT09MTB9ZnVuY3Rpb24gb3AoKXtzd2l0Y2goZigpKXtjYXNlIDEzMzpjYXNlIDE1OTpjYXNlIDE1NDpjYXNlIDE1MDpjYXNlIDE2MzpjYXNlIDE1NTpjYXNlIDEzNjpjYXNlIDE1NzpjYXNlIDE0NjpjYXNlIDE1MTpyZXR1cm4gZnQobnApfHxMaSgpO2Nhc2UgNjc6dC5yZVNjYW5Bc3Rlcmlza0VxdWFsc1Rva2VuKCk7Y2FzZSA0MjpyZXR1cm4gdTEoKTtjYXNlIDYxOnQucmVTY2FuUXVlc3Rpb25Ub2tlbigpO2Nhc2UgNTg6cmV0dXJuIHAxKCk7Y2FzZSAxMDA6cmV0dXJuIHF1KCk7Y2FzZSA1NDpyZXR1cm4gVXUoKTtjYXNlIDE1OmNhc2UgMTE6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTI6Y2FzZSA5NzpjYXNlIDEwNjpyZXR1cm4gaGMoKTtjYXNlIDQxOnJldHVybiBUZSh5Yyk/aGMoITApOkxpKCk7Y2FzZSAxMTY6cmV0dXJuIGRyKCk7Y2FzZSAxMTA6e2xldCBjPUJ1KCk7cmV0dXJuIGYoKT09PTE0MiYmIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCk/bDEoYyk6Y31jYXNlIDExNDpyZXR1cm4gVGUoVDEpP2FwKCk6c2MoKTtjYXNlIDE5OnJldHVybiBUZShLdSk/WnUoKTpRdSgpO2Nhc2UgMjM6cmV0dXJuIGIxKCk7Y2FzZSAyMTpyZXR1cm4gcnAoKTtjYXNlIDEwMjpyZXR1cm4gYXAoKTtjYXNlIDEzMTpyZXR1cm4gVGUoSnMpP2RwKCk6TGkoKTtjYXNlIDE2OnJldHVybiBfMSgpO2RlZmF1bHQ6cmV0dXJuIExpKCl9fWZ1bmN0aW9uIHBhKGMpe3N3aXRjaChmKCkpe2Nhc2UgMTMzOmNhc2UgMTU5OmNhc2UgMTU0OmNhc2UgMTUwOmNhc2UgMTYzOmNhc2UgMTM2OmNhc2UgMTQ4OmNhc2UgMTU1OmNhc2UgMTU4OmNhc2UgMTE2OmNhc2UgMTU3OmNhc2UgMTA2OmNhc2UgMTEwOmNhc2UgMTE0OmNhc2UgMTQ2OmNhc2UgMTk6Y2FzZSAyMzpjYXNlIDMwOmNhc2UgNTI6Y2FzZSA1MTpjYXNlIDEwNTpjYXNlIDExOmNhc2UgOTpjYXNlIDEwOmNhc2UgMTEyOmNhc2UgOTc6Y2FzZSAxNTE6Y2FzZSA0MjpjYXNlIDU4OmNhc2UgNTQ6Y2FzZSAyNjpjYXNlIDE0MDpjYXNlIDEwMjpjYXNlIDEzMTpjYXNlIDE1OmNhc2UgMTY6cmV0dXJuITA7Y2FzZSAxMDA6cmV0dXJuIWM7Y2FzZSA0MTpyZXR1cm4hYyYmVGUoeWMpO2Nhc2UgMjE6cmV0dXJuIWMmJlRlKFMxKTtkZWZhdWx0OnJldHVybiBFdCgpfX1mdW5jdGlvbiBTMSgpe3JldHVybiBPKCksZigpPT09MjJ8fF9jKCExKXx8cGEoKX1mdW5jdGlvbiBzcCgpe2xldCBjPVQoKSxtPW9wKCk7Zm9yKDshdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKTspc3dpdGNoKGYoKSl7Y2FzZSA1NDpPKCksbT1NKHkuY3JlYXRlSlNEb2NOb25OdWxsYWJsZVR5cGUobSwhMCksYyk7YnJlYWs7Y2FzZSA1ODppZihUZShrdSkpcmV0dXJuIG07TygpLG09TSh5LmNyZWF0ZUpTRG9jTnVsbGFibGVUeXBlKG0sITApLGMpO2JyZWFrO2Nhc2UgMjM6aWYoSCgyMykscGEoKSl7bGV0IGI9Z3QoKTtIKDI0KSxtPU0oeS5jcmVhdGVJbmRleGVkQWNjZXNzVHlwZU5vZGUobSxiKSxjKX1lbHNlIEgoMjQpLG09TSh5LmNyZWF0ZUFycmF5VHlwZU5vZGUobSksYyk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbX1yZXR1cm4gbX1mdW5jdGlvbiBfcChjKXtsZXQgbT1UKCk7cmV0dXJuIEgoYyksTSh5LmNyZWF0ZVR5cGVPcGVyYXRvck5vZGUoYyx1cCgpKSxtKX1mdW5jdGlvbiBjcCgpe2lmKGplKDk2KSl7bGV0IGM9anQoZ3QpO2lmKGFhKCl8fGYoKSE9PTU4KXJldHVybiBjfX1mdW5jdGlvbiB4MSgpe2xldCBjPVQoKSxtPUx0KCksYj1mdChjcCksdz15LmNyZWF0ZVR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbih2b2lkIDAsbSxiKTtyZXR1cm4gTSh3LGMpfWZ1bmN0aW9uIGxwKCl7bGV0IGM9VCgpO3JldHVybiBIKDE0MCksTSh5LmNyZWF0ZUluZmVyVHlwZU5vZGUoeDEoKSksYyl9ZnVuY3Rpb24gdXAoKXtsZXQgYz1mKCk7c3dpdGNoKGMpe2Nhc2UgMTQzOmNhc2UgMTU4OmNhc2UgMTQ4OnJldHVybiBfcChjKTtjYXNlIDE0MDpyZXR1cm4gbHAoKX1yZXR1cm4geXQoc3ApfWZ1bmN0aW9uIHBwKGMpe2lmKGJjKCkpe2xldCBtPW1jKCksYjtyZXR1cm4gdHUobSk/Yj1jP1UuRnVuY3Rpb25fdHlwZV9ub3RhdGlvbl9tdXN0X2JlX3BhcmVudGhlc2l6ZWRfd2hlbl91c2VkX2luX2FfdW5pb25fdHlwZTpVLkZ1bmN0aW9uX3R5cGVfbm90YXRpb25fbXVzdF9iZV9wYXJlbnRoZXNpemVkX3doZW5fdXNlZF9pbl9hbl9pbnRlcnNlY3Rpb25fdHlwZTpiPWM/VS5Db25zdHJ1Y3Rvcl90eXBlX25vdGF0aW9uX211c3RfYmVfcGFyZW50aGVzaXplZF93aGVuX3VzZWRfaW5fYV91bmlvbl90eXBlOlUuQ29uc3RydWN0b3JfdHlwZV9ub3RhdGlvbl9tdXN0X2JlX3BhcmVudGhlc2l6ZWRfd2hlbl91c2VkX2luX2FuX2ludGVyc2VjdGlvbl90eXBlLExyKG0sYiksbX19ZnVuY3Rpb24gQXMoYyxtLGIpe2xldCB3PVQoKSxBPWM9PT01MixSPWplKGMpLHRlPVImJnBwKEEpfHxtKCk7aWYoZigpPT09Y3x8Uil7bGV0IGxlPVt0ZV07Zm9yKDtqZShjKTspbGUucHVzaChwcChBKXx8bSgpKTt0ZT1NKGIoRnQobGUsdykpLHcpfXJldHVybiB0ZX1mdW5jdGlvbiB3MSgpe3JldHVybiBBcyg1MSx1cCx5LmNyZWF0ZUludGVyc2VjdGlvblR5cGVOb2RlKX1mdW5jdGlvbiBnYygpe3JldHVybiBBcyg1Mix3MSx5LmNyZWF0ZVVuaW9uVHlwZU5vZGUpfWZ1bmN0aW9uIEMxKCl7cmV0dXJuIE8oKSxmKCk9PT0xMDV9ZnVuY3Rpb24gYmMoKXtyZXR1cm4gZigpPT09MzB8fGYoKT09PTIxJiZUZShFMSk/ITA6ZigpPT09MTA1fHxmKCk9PT0xMjgmJlRlKEMxKX1mdW5jdGlvbiBmcCgpe2lmKGJpKGYoKSkmJlhuKCExKSxFdCgpfHxmKCk9PT0xMTApcmV0dXJuIE8oKSwhMDtpZihmKCk9PT0yM3x8ZigpPT09MTkpe2xldCBjPWN0Lmxlbmd0aDtyZXR1cm4gVmEoKSxjPT09Y3QubGVuZ3RofXJldHVybiExfWZ1bmN0aW9uIEUxKCl7cmV0dXJuIE8oKSwhIShmKCk9PT0yMnx8ZigpPT09MjZ8fGZwKCkmJihmKCk9PT01OXx8ZigpPT09Mjh8fGYoKT09PTU4fHxmKCk9PT02NHx8ZigpPT09MjImJihPKCksZigpPT09MzkpKSl9ZnVuY3Rpb24gdmMoKXtsZXQgYz1UKCksbT1FdCgpJiZmdChUYyksYj1ndCgpO3JldHVybiBtP00oeS5jcmVhdGVUeXBlUHJlZGljYXRlTm9kZSh2b2lkIDAsbSxiKSxjKTpifWZ1bmN0aW9uIFRjKCl7bGV0IGM9THQoKTtpZihmKCk9PT0xNDImJiF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKXJldHVybiBPKCksY31mdW5jdGlvbiBkcCgpe2xldCBjPVQoKSxtPUhuKDEzMSksYj1mKCk9PT0xMTA/QnUoKTpMdCgpLHc9amUoMTQyKT9ndCgpOnZvaWQgMDtyZXR1cm4gTSh5LmNyZWF0ZVR5cGVQcmVkaWNhdGVOb2RlKG0sYix3KSxjKX1mdW5jdGlvbiBndCgpe2lmKGF0JjgxOTIwKXJldHVybiB4ZSg4MTkyMCxndCk7aWYoYmMoKSlyZXR1cm4gbWMoKTtsZXQgYz1UKCksbT1nYygpO2lmKCFhYSgpJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmamUoOTYpKXtsZXQgYj1qdChndCk7SCg1OCk7bGV0IHc9eXQoZ3QpO0goNTkpO2xldCBBPXl0KGd0KTtyZXR1cm4gTSh5LmNyZWF0ZUNvbmRpdGlvbmFsVHlwZU5vZGUobSxiLHcsQSksYyl9cmV0dXJuIG19ZnVuY3Rpb24gSmkoKXtyZXR1cm4gamUoNTkpP2d0KCk6dm9pZCAwfWZ1bmN0aW9uIFNjKCl7c3dpdGNoKGYoKSl7Y2FzZSAxMTA6Y2FzZSAxMDg6Y2FzZSAxMDY6Y2FzZSAxMTI6Y2FzZSA5NzpjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDIxOmNhc2UgMjM6Y2FzZSAxOTpjYXNlIDEwMDpjYXNlIDg2OmNhc2UgMTA1OmNhc2UgNDQ6Y2FzZSA2OTpjYXNlIDgwOnJldHVybiEwO2Nhc2UgMTAyOnJldHVybiBUZSgkdSk7ZGVmYXVsdDpyZXR1cm4gRXQoKX19ZnVuY3Rpb24gUmkoKXtpZihTYygpKXJldHVybiEwO3N3aXRjaChmKCkpe2Nhc2UgNDA6Y2FzZSA0MTpjYXNlIDU1OmNhc2UgNTQ6Y2FzZSA5MTpjYXNlIDExNDpjYXNlIDExNjpjYXNlIDQ2OmNhc2UgNDc6Y2FzZSAzMDpjYXNlIDEzNTpjYXNlIDEyNzpjYXNlIDgxOmNhc2UgNjA6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gRWMoKT8hMDpFdCgpfX1mdW5jdGlvbiBtcCgpe3JldHVybiBmKCkhPT0xOSYmZigpIT09MTAwJiZmKCkhPT04NiYmZigpIT09NjAmJlJpKCl9ZnVuY3Rpb24gSnQoKXtsZXQgYz1WbigpO2MmJlgoITEpO2xldCBtPVQoKSxiPXRyKCEwKSx3O2Zvcig7dz1kdCgyOCk7KWI9RHMoYix3LHRyKCEwKSxtKTtyZXR1cm4gYyYmWCghMCksYn1mdW5jdGlvbiBqaSgpe3JldHVybiBqZSg2NCk/dHIoITApOnZvaWQgMH1mdW5jdGlvbiB0cihjKXtpZihBMSgpKXJldHVybiBrMSgpO2xldCBtPUQxKGMpfHxicChjKTtpZihtKXJldHVybiBtO2xldCBiPVQoKSx3PXgoKSxBPWtzKDApO3JldHVybiBBLmtpbmQ9PT04MCYmZigpPT09Mzk/eGMoYixBLGMsdyx2b2lkIDApOkxvKEEpJiZEXyhoZSgpKT9EcyhBLGRyKCksdHIoYyksYik6U3AoQSxiLGMpfWZ1bmN0aW9uIEExKCl7cmV0dXJuIGYoKT09PTEyNz9FbigpPyEwOlRlKHpwKTohMX1mdW5jdGlvbiBocCgpe3JldHVybiBPKCksIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkmJkV0KCl9ZnVuY3Rpb24gazEoKXtsZXQgYz1UKCk7cmV0dXJuIE8oKSwhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmKGYoKT09PTQyfHxSaSgpKT9NKHkuY3JlYXRlWWllbGRFeHByZXNzaW9uKGR0KDQyKSx0cighMCkpLGMpOk0oeS5jcmVhdGVZaWVsZEV4cHJlc3Npb24odm9pZCAwLHZvaWQgMCksYyl9ZnVuY3Rpb24geGMoYyxtLGIsdyxBKXtOLmFzc2VydChmKCk9PT0zOSxcInBhcnNlU2ltcGxlQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gc2hvdWxkIG9ubHkgaGF2ZSBiZWVuIGNhbGxlZCBpZiB3ZSBoYWQgYSA9PlwiKTtsZXQgUj15LmNyZWF0ZVBhcmFtZXRlckRlY2xhcmF0aW9uKHZvaWQgMCx2b2lkIDAsbSx2b2lkIDAsdm9pZCAwLHZvaWQgMCk7TShSLG0ucG9zKTtsZXQgdGU9RnQoW1JdLFIucG9zLFIuZW5kKSxsZT1IbigzOSksbmU9VHAoISFBLGIpLGllPXkuY3JlYXRlQXJyb3dGdW5jdGlvbihBLHZvaWQgMCx0ZSx2b2lkIDAsbGUsbmUpO3JldHVybiBBZShNKGllLGMpLHcpfWZ1bmN0aW9uIEQxKGMpe2xldCBtPVAxKCk7aWYobSE9PTApcmV0dXJuIG09PT0xP3djKCEwLCEwKTpmdCgoKT0+Z3AoYykpfWZ1bmN0aW9uIFAxKCl7cmV0dXJuIGYoKT09PTIxfHxmKCk9PT0zMHx8ZigpPT09MTM0P1RlKHlwKTpmKCk9PT0zOT8xOjB9ZnVuY3Rpb24geXAoKXtpZihmKCk9PT0xMzQmJihPKCksdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKXx8ZigpIT09MjEmJmYoKSE9PTMwKSlyZXR1cm4gMDtsZXQgYz1mKCksbT1PKCk7aWYoYz09PTIxKXtpZihtPT09MjIpc3dpdGNoKE8oKSl7Y2FzZSAzOTpjYXNlIDU5OmNhc2UgMTk6cmV0dXJuIDE7ZGVmYXVsdDpyZXR1cm4gMH1pZihtPT09MjN8fG09PT0xOSlyZXR1cm4gMjtpZihtPT09MjYpcmV0dXJuIDE7aWYoYmkobSkmJm0hPT0xMzQmJlRlKHlzKSlyZXR1cm4gTygpPT09MTMwPzA6MTtpZighRXQoKSYmbSE9PTExMClyZXR1cm4gMDtzd2l0Y2goTygpKXtjYXNlIDU5OnJldHVybiAxO2Nhc2UgNTg6cmV0dXJuIE8oKSxmKCk9PT01OXx8ZigpPT09Mjh8fGYoKT09PTY0fHxmKCk9PT0yMj8xOjA7Y2FzZSAyODpjYXNlIDY0OmNhc2UgMjI6cmV0dXJuIDJ9cmV0dXJuIDB9ZWxzZSByZXR1cm4gTi5hc3NlcnQoYz09PTMwKSwhRXQoKSYmZigpIT09ODc/MDp2dD09PTE/VGUoKCk9PntqZSg4Nyk7bGV0IHc9TygpO2lmKHc9PT05Nilzd2l0Y2goTygpKXtjYXNlIDY0OmNhc2UgMzI6Y2FzZSA0NDpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfWVsc2UgaWYodz09PTI4fHx3PT09NjQpcmV0dXJuITA7cmV0dXJuITF9KT8xOjA6Mn1mdW5jdGlvbiBncChjKXtsZXQgbT10LmdldFRva2VuU3RhcnQoKTtpZihNciE9bnVsbCYmTXIuaGFzKG0pKXJldHVybjtsZXQgYj13YyghMSxjKTtyZXR1cm4gYnx8KE1yfHwoTXI9bmV3IFNldCkpLmFkZChtKSxifWZ1bmN0aW9uIGJwKGMpe2lmKGYoKT09PTEzNCYmVGUodnApPT09MSl7bGV0IG09VCgpLGI9eCgpLHc9SGMoKSxBPWtzKDApO3JldHVybiB4YyhtLEEsYyxiLHcpfX1mdW5jdGlvbiB2cCgpe2lmKGYoKT09PTEzNCl7aWYoTygpLHQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl8fGYoKT09PTM5KXJldHVybiAwO2xldCBjPWtzKDApO2lmKCF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpJiZjLmtpbmQ9PT04MCYmZigpPT09MzkpcmV0dXJuIDF9cmV0dXJuIDB9ZnVuY3Rpb24gd2MoYyxtKXtsZXQgYj1UKCksdz14KCksQT1IYygpLFI9bXQoQSxhbCk/MjowLHRlPVZyKCksbGU7aWYoSCgyMSkpe2lmKGMpbGU9d3MoUixjKTtlbHNle2xldCBkaT13cyhSLGMpO2lmKCFkaSlyZXR1cm47bGU9ZGl9aWYoIUgoMjIpJiYhYylyZXR1cm59ZWxzZXtpZighYylyZXR1cm47bGU9cGkoKX1sZXQgbmU9ZigpPT09NTksaWU9RG4oNTksITEpO2lmKGllJiYhYyYmb2MoaWUpKXJldHVybjtsZXQgdmU9aWU7Zm9yKDsodmU9PW51bGw/dm9pZCAwOnZlLmtpbmQpPT09MTk2Oyl2ZT12ZS50eXBlO2xldCBIZT12ZSYmT20odmUpO2lmKCFjJiZmKCkhPT0zOSYmKEhlfHxmKCkhPT0xOSkpcmV0dXJuO2xldCBCZT1mKCksVWU9SG4oMzkpLFJ0PUJlPT09Mzl8fEJlPT09MTk/VHAobXQoQSxhbCksbSk6THQoKTtpZighbSYmbmUmJmYoKSE9PTU5KXJldHVybjtsZXQgR3I9eS5jcmVhdGVBcnJvd0Z1bmN0aW9uKEEsdGUsbGUsaWUsVWUsUnQpO3JldHVybiBBZShNKEdyLGIpLHcpfWZ1bmN0aW9uIFRwKGMsbSl7aWYoZigpPT09MTkpcmV0dXJuIGdvKGM/MjowKTtpZihmKCkhPT0yNyYmZigpIT09MTAwJiZmKCkhPT04NiYmQmMoKSYmIW1wKCkpcmV0dXJuIGdvKDE2fChjPzI6MCkpO2xldCBiPWVyO2VyPSExO2xldCB3PWM/Q24oKCk9PnRyKG0pKTp6bigoKT0+dHIobSkpO3JldHVybiBlcj1iLHd9ZnVuY3Rpb24gU3AoYyxtLGIpe2xldCB3PWR0KDU4KTtpZighdylyZXR1cm4gYztsZXQgQTtyZXR1cm4gTSh5LmNyZWF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbihjLHcseGUociwoKT0+dHIoITEpKSxBPUhuKDU5KSx3bChBKT90cihiKTpKcig4MCwhMSxVLl8wX2V4cGVjdGVkLG5yKDU5KSkpLG0pfWZ1bmN0aW9uIGtzKGMpe2xldCBtPVQoKSxiPVBzKCk7cmV0dXJuIHhwKGMsYixtKX1mdW5jdGlvbiBDYyhjKXtyZXR1cm4gYz09PTEwM3x8Yz09PTE2NX1mdW5jdGlvbiB4cChjLG0sYil7Zm9yKDs7KXtoZSgpO2xldCB3PXBsKGYoKSk7aWYoIShmKCk9PT00Mz93Pj1jOnc+Yyl8fGYoKT09PTEwMyYmSWkoKSlicmVhaztpZihmKCk9PT0xMzB8fGYoKT09PTE1Mil7aWYodC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSlicmVhazt7bGV0IFI9ZigpO08oKSxtPVI9PT0xNTI/STEobSxndCgpKTpOMShtLGd0KCkpfX1lbHNlIG09RHMobSxkcigpLGtzKHcpLGIpfXJldHVybiBtfWZ1bmN0aW9uIEVjKCl7cmV0dXJuIElpKCkmJmYoKT09PTEwMz8hMTpwbChmKCkpPjB9ZnVuY3Rpb24gSTEoYyxtKXtyZXR1cm4gTSh5LmNyZWF0ZVNhdGlzZmllc0V4cHJlc3Npb24oYyxtKSxjLnBvcyl9ZnVuY3Rpb24gRHMoYyxtLGIsdyl7cmV0dXJuIE0oeS5jcmVhdGVCaW5hcnlFeHByZXNzaW9uKGMsbSxiKSx3KX1mdW5jdGlvbiBOMShjLG0pe3JldHVybiBNKHkuY3JlYXRlQXNFeHByZXNzaW9uKGMsbSksYy5wb3MpfWZ1bmN0aW9uIEFjKCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlUHJlZml4VW5hcnlFeHByZXNzaW9uKGYoKSxRKEZpKSksYyl9ZnVuY3Rpb24gTzEoKXtsZXQgYz1UKCk7cmV0dXJuIE0oeS5jcmVhdGVEZWxldGVFeHByZXNzaW9uKFEoRmkpKSxjKX1mdW5jdGlvbiB3cCgpe2xldCBjPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZVR5cGVPZkV4cHJlc3Npb24oUShGaSkpLGMpfWZ1bmN0aW9uIE0xKCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlVm9pZEV4cHJlc3Npb24oUShGaSkpLGMpfWZ1bmN0aW9uIENwKCl7cmV0dXJuIGYoKT09PTEzNT9TcigpPyEwOlRlKHpwKTohMX1mdW5jdGlvbiBMMSgpe2xldCBjPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZUF3YWl0RXhwcmVzc2lvbihRKEZpKSksYyl9ZnVuY3Rpb24gUHMoKXtpZihrYygpKXtsZXQgYj1UKCksdz1EYygpO3JldHVybiBmKCk9PT00Mz94cChwbChmKCkpLHcsYik6d31sZXQgYz1mKCksbT1GaSgpO2lmKGYoKT09PTQzKXtsZXQgYj1OdChTdCxtLnBvcykse2VuZDp3fT1tO20ua2luZD09PTIxNj9NdChiLHcsVS5BX3R5cGVfYXNzZXJ0aW9uX2V4cHJlc3Npb25faXNfbm90X2FsbG93ZWRfaW5fdGhlX2xlZnRfaGFuZF9zaWRlX29mX2FuX2V4cG9uZW50aWF0aW9uX2V4cHJlc3Npb25fQ29uc2lkZXJfZW5jbG9zaW5nX3RoZV9leHByZXNzaW9uX2luX3BhcmVudGhlc2VzKTooTi5hc3NlcnQoSmYoYykpLE10KGIsdyxVLkFuX3VuYXJ5X2V4cHJlc3Npb25fd2l0aF90aGVfMF9vcGVyYXRvcl9pc19ub3RfYWxsb3dlZF9pbl90aGVfbGVmdF9oYW5kX3NpZGVfb2ZfYW5fZXhwb25lbnRpYXRpb25fZXhwcmVzc2lvbl9Db25zaWRlcl9lbmNsb3NpbmdfdGhlX2V4cHJlc3Npb25faW5fcGFyZW50aGVzZXMsbnIoYykpKX1yZXR1cm4gbX1mdW5jdGlvbiBGaSgpe3N3aXRjaChmKCkpe2Nhc2UgNDA6Y2FzZSA0MTpjYXNlIDU1OmNhc2UgNTQ6cmV0dXJuIEFjKCk7Y2FzZSA5MTpyZXR1cm4gTzEoKTtjYXNlIDExNDpyZXR1cm4gd3AoKTtjYXNlIDExNjpyZXR1cm4gTTEoKTtjYXNlIDMwOnJldHVybiB2dD09PTE/ZmEoITAsdm9pZCAwLHZvaWQgMCwhMCk6VzEoKTtjYXNlIDEzNTppZihDcCgpKXJldHVybiBMMSgpO2RlZmF1bHQ6cmV0dXJuIERjKCl9fWZ1bmN0aW9uIGtjKCl7c3dpdGNoKGYoKSl7Y2FzZSA0MDpjYXNlIDQxOmNhc2UgNTU6Y2FzZSA1NDpjYXNlIDkxOmNhc2UgMTE0OmNhc2UgMTE2OmNhc2UgMTM1OnJldHVybiExO2Nhc2UgMzA6aWYodnQhPT0xKXJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIERjKCl7aWYoZigpPT09NDZ8fGYoKT09PTQ3KXtsZXQgbT1UKCk7cmV0dXJuIE0oeS5jcmVhdGVQcmVmaXhVbmFyeUV4cHJlc3Npb24oZigpLFEoSXMpKSxtKX1lbHNlIGlmKHZ0PT09MSYmZigpPT09MzAmJlRlKFlfKSlyZXR1cm4gZmEoITApO2xldCBjPUlzKCk7aWYoTi5hc3NlcnQoTG8oYykpLChmKCk9PT00Nnx8ZigpPT09NDcpJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSl7bGV0IG09ZigpO3JldHVybiBPKCksTSh5LmNyZWF0ZVBvc3RmaXhVbmFyeUV4cHJlc3Npb24oYyxtKSxjLnBvcyl9cmV0dXJuIGN9ZnVuY3Rpb24gSXMoKXtsZXQgYz1UKCksbTtyZXR1cm4gZigpPT09MTAyP1RlKGZjKT8oJHR8PTQxOTQzMDQsbT1kcigpKTpUZShFcyk/KE8oKSxPKCksbT1NKHkuY3JlYXRlTWV0YVByb3BlcnR5KDEwMixZdCgpKSxjKSwkdHw9ODM4ODYwOCk6bT1OcygpOm09ZigpPT09MTA4P0oxKCk6TnMoKSxJcChjLG0pfWZ1bmN0aW9uIE5zKCl7bGV0IGM9VCgpLG09T3AoKTtyZXR1cm4gaG8oYyxtLCEwKX1mdW5jdGlvbiBKMSgpe2xldCBjPVQoKSxtPWRyKCk7aWYoZigpPT09MzApe2xldCBiPVQoKSx3PWZ0KE1jKTt3IT09dm9pZCAwJiYoTXQoYixUKCksVS5zdXBlcl9tYXlfbm90X3VzZV90eXBlX2FyZ3VtZW50cyksT3MoKXx8KG09eS5jcmVhdGVFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHMobSx3KSkpfXJldHVybiBmKCk9PT0yMXx8ZigpPT09MjV8fGYoKT09PTIzP206KEhuKDI1LFUuc3VwZXJfbXVzdF9iZV9mb2xsb3dlZF9ieV9hbl9hcmd1bWVudF9saXN0X29yX21lbWJlcl9hY2Nlc3MpLE0oYWUobSxxYSghMCwhMCkpLGMpKX1mdW5jdGlvbiBmYShjLG0sYix3PSExKXtsZXQgQT1UKCksUj1CMShjKSx0ZTtpZihSLmtpbmQ9PT0yODYpe2xldCBsZT1QYyhSKSxuZSxpZT1sZVtsZS5sZW5ndGgtMV07aWYoKGllPT1udWxsP3ZvaWQgMDppZS5raW5kKT09PTI4NCYmIVRpKGllLm9wZW5pbmdFbGVtZW50LnRhZ05hbWUsaWUuY2xvc2luZ0VsZW1lbnQudGFnTmFtZSkmJlRpKFIudGFnTmFtZSxpZS5jbG9zaW5nRWxlbWVudC50YWdOYW1lKSl7bGV0IHZlPWllLmNoaWxkcmVuLmVuZCxIZT1NKHkuY3JlYXRlSnN4RWxlbWVudChpZS5vcGVuaW5nRWxlbWVudCxpZS5jaGlsZHJlbixNKHkuY3JlYXRlSnN4Q2xvc2luZ0VsZW1lbnQoTShHKFwiXCIpLHZlLHZlKSksdmUsdmUpKSxpZS5vcGVuaW5nRWxlbWVudC5wb3MsdmUpO2xlPUZ0KFsuLi5sZS5zbGljZSgwLGxlLmxlbmd0aC0xKSxIZV0sbGUucG9zLHZlKSxuZT1pZS5jbG9zaW5nRWxlbWVudH1lbHNlIG5lPXoxKFIsYyksVGkoUi50YWdOYW1lLG5lLnRhZ05hbWUpfHwoYiYmT28oYikmJlRpKG5lLnRhZ05hbWUsYi50YWdOYW1lKT9McihSLnRhZ05hbWUsVS5KU1hfZWxlbWVudF8wX2hhc19ub19jb3JyZXNwb25kaW5nX2Nsb3NpbmdfdGFnLHRfKFN0LFIudGFnTmFtZSkpOkxyKG5lLnRhZ05hbWUsVS5FeHBlY3RlZF9jb3JyZXNwb25kaW5nX0pTWF9jbG9zaW5nX3RhZ19mb3JfMCx0XyhTdCxSLnRhZ05hbWUpKSk7dGU9TSh5LmNyZWF0ZUpzeEVsZW1lbnQoUixsZSxuZSksQSl9ZWxzZSBSLmtpbmQ9PT0yODk/dGU9TSh5LmNyZWF0ZUpzeEZyYWdtZW50KFIsUGMoUiksRHAoYykpLEEpOihOLmFzc2VydChSLmtpbmQ9PT0yODUpLHRlPVIpO2lmKCF3JiZjJiZmKCk9PT0zMCl7bGV0IGxlPXR5cGVvZiBtPlwidVwiP3RlLnBvczptLG5lPWZ0KCgpPT5mYSghMCxsZSkpO2lmKG5lKXtsZXQgaWU9SnIoMjgsITEpO3JldHVybiBDZChpZSxuZS5wb3MsMCksTXQoTnQoU3QsbGUpLG5lLmVuZCxVLkpTWF9leHByZXNzaW9uc19tdXN0X2hhdmVfb25lX3BhcmVudF9lbGVtZW50KSxNKHkuY3JlYXRlQmluYXJ5RXhwcmVzc2lvbih0ZSxpZSxuZSksQSl9fXJldHVybiB0ZX1mdW5jdGlvbiBSMSgpe2xldCBjPVQoKSxtPXkuY3JlYXRlSnN4VGV4dCh0LmdldFRva2VuVmFsdWUoKSxodD09PTEzKTtyZXR1cm4gaHQ9dC5zY2FuSnN4VG9rZW4oKSxNKG0sYyl9ZnVuY3Rpb24gajEoYyxtKXtzd2l0Y2gobSl7Y2FzZSAxOmlmKGs2KGMpKUxyKGMsVS5KU1hfZnJhZ21lbnRfaGFzX25vX2NvcnJlc3BvbmRpbmdfY2xvc2luZ190YWcpO2Vsc2V7bGV0IGI9Yy50YWdOYW1lLHc9TWF0aC5taW4oTnQoU3QsYi5wb3MpLGIuZW5kKTtNdCh3LGIuZW5kLFUuSlNYX2VsZW1lbnRfMF9oYXNfbm9fY29ycmVzcG9uZGluZ19jbG9zaW5nX3RhZyx0XyhTdCxjLnRhZ05hbWUpKX1yZXR1cm47Y2FzZSAzMTpjYXNlIDc6cmV0dXJuO2Nhc2UgMTI6Y2FzZSAxMzpyZXR1cm4gUjEoKTtjYXNlIDE5OnJldHVybiBFcCghMSk7Y2FzZSAzMDpyZXR1cm4gZmEoITEsdm9pZCAwLGMpO2RlZmF1bHQ6cmV0dXJuIE4uYXNzZXJ0TmV2ZXIobSl9fWZ1bmN0aW9uIFBjKGMpe2xldCBtPVtdLGI9VCgpLHc9cHQ7Zm9yKHB0fD0xNjM4NDs7KXtsZXQgQT1qMShjLGh0PXQucmVTY2FuSnN4VG9rZW4oKSk7aWYoIUF8fChtLnB1c2goQSksT28oYykmJihBPT1udWxsP3ZvaWQgMDpBLmtpbmQpPT09Mjg0JiYhVGkoQS5vcGVuaW5nRWxlbWVudC50YWdOYW1lLEEuY2xvc2luZ0VsZW1lbnQudGFnTmFtZSkmJlRpKGMudGFnTmFtZSxBLmNsb3NpbmdFbGVtZW50LnRhZ05hbWUpKSlicmVha31yZXR1cm4gcHQ9dyxGdChtLGIpfWZ1bmN0aW9uIEYxKCl7bGV0IGM9VCgpO3JldHVybiBNKHkuY3JlYXRlSnN4QXR0cmlidXRlcyh6cigxMyxVMSkpLGMpfWZ1bmN0aW9uIEIxKGMpe2xldCBtPVQoKTtpZihIKDMwKSxmKCk9PT0zMilyZXR1cm4gSXQoKSxNKHkuY3JlYXRlSnN4T3BlbmluZ0ZyYWdtZW50KCksbSk7bGV0IGI9SWMoKSx3PWF0JjUyNDI4OD92b2lkIDA6cXMoKSxBPUYxKCksUjtyZXR1cm4gZigpPT09MzI/KEl0KCksUj15LmNyZWF0ZUpzeE9wZW5pbmdFbGVtZW50KGIsdyxBKSk6KEgoNDQpLEgoMzIsdm9pZCAwLCExKSYmKGM/TygpOkl0KCkpLFI9eS5jcmVhdGVKc3hTZWxmQ2xvc2luZ0VsZW1lbnQoYix3LEEpKSxNKFIsbSl9ZnVuY3Rpb24gSWMoKXtsZXQgYz1UKCksbT1OYygpO2lmKFVfKG0pKXJldHVybiBtO2xldCBiPW07Zm9yKDtqZSgyNSk7KWI9TShhZShiLHFhKCEwLCExKSksYyk7cmV0dXJuIGJ9ZnVuY3Rpb24gTmMoKXtsZXQgYz1UKCk7S2UoKTtsZXQgbT1mKCk9PT0xMTAsYj1ZdCgpO3JldHVybiBqZSg1OSk/KEtlKCksTSh5LmNyZWF0ZUpzeE5hbWVzcGFjZWROYW1lKGIsWXQoKSksYykpOm0/TSh5LmNyZWF0ZVRva2VuKDExMCksYyk6Yn1mdW5jdGlvbiBFcChjKXtsZXQgbT1UKCk7aWYoIUgoMTkpKXJldHVybjtsZXQgYix3O3JldHVybiBmKCkhPT0yMCYmKGI9ZHQoMjYpLHc9SnQoKSksYz9IKDIwKTpIKDIwLHZvaWQgMCwhMSkmJkl0KCksTSh5LmNyZWF0ZUpzeEV4cHJlc3Npb24oYix3KSxtKX1mdW5jdGlvbiBVMSgpe2lmKGYoKT09PTE5KXJldHVybiBrcCgpO2xldCBjPVQoKTtyZXR1cm4gTSh5LmNyZWF0ZUpzeEF0dHJpYnV0ZShxMSgpLEFwKCkpLGMpfWZ1bmN0aW9uIEFwKCl7aWYoZigpPT09NjQpe2lmKHF0KCk9PT0xMSlyZXR1cm4gZmkoKTtpZihmKCk9PT0xOSlyZXR1cm4gRXAoITApO2lmKGYoKT09PTMwKXJldHVybiBmYSghMCk7SmUoVS5vcl9KU1hfZWxlbWVudF9leHBlY3RlZCl9fWZ1bmN0aW9uIHExKCl7bGV0IGM9VCgpO0tlKCk7bGV0IG09WXQoKTtyZXR1cm4gamUoNTkpPyhLZSgpLE0oeS5jcmVhdGVKc3hOYW1lc3BhY2VkTmFtZShtLFl0KCkpLGMpKTptfWZ1bmN0aW9uIGtwKCl7bGV0IGM9VCgpO0goMTkpLEgoMjYpO2xldCBtPUp0KCk7cmV0dXJuIEgoMjApLE0oeS5jcmVhdGVKc3hTcHJlYWRBdHRyaWJ1dGUobSksYyl9ZnVuY3Rpb24gejEoYyxtKXtsZXQgYj1UKCk7SCgzMSk7bGV0IHc9SWMoKTtyZXR1cm4gSCgzMix2b2lkIDAsITEpJiYobXx8IVRpKGMudGFnTmFtZSx3KT9PKCk6SXQoKSksTSh5LmNyZWF0ZUpzeENsb3NpbmdFbGVtZW50KHcpLGIpfWZ1bmN0aW9uIERwKGMpe2xldCBtPVQoKTtyZXR1cm4gSCgzMSksSCgzMixVLkV4cGVjdGVkX2NvcnJlc3BvbmRpbmdfY2xvc2luZ190YWdfZm9yX0pTWF9mcmFnbWVudCwhMSkmJihjP08oKTpJdCgpKSxNKHkuY3JlYXRlSnN4SnN4Q2xvc2luZ0ZyYWdtZW50KCksbSl9ZnVuY3Rpb24gVzEoKXtOLmFzc2VydCh2dCE9PTEsXCJUeXBlIGFzc2VydGlvbnMgc2hvdWxkIG5ldmVyIGJlIHBhcnNlZCBpbiBKU1g7IHRoZXkgc2hvdWxkIGJlIHBhcnNlZCBhcyBjb21wYXJpc29ucyBvciBKU1ggZWxlbWVudHMvZnJhZ21lbnRzLlwiKTtsZXQgYz1UKCk7SCgzMCk7bGV0IG09Z3QoKTtIKDMyKTtsZXQgYj1GaSgpO3JldHVybiBNKHkuY3JlYXRlVHlwZUFzc2VydGlvbihtLGIpLGMpfWZ1bmN0aW9uIFBwKCl7cmV0dXJuIE8oKSxrdChmKCkpfHxmKCk9PT0yM3x8T3MoKX1mdW5jdGlvbiBWMSgpe3JldHVybiBmKCk9PT0yOSYmVGUoUHApfWZ1bmN0aW9uIEhyKGMpe2lmKGMuZmxhZ3MmNjQpcmV0dXJuITA7aWYoam8oYykpe2xldCBtPWMuZXhwcmVzc2lvbjtmb3IoO2pvKG0pJiYhKG0uZmxhZ3MmNjQpOyltPW0uZXhwcmVzc2lvbjtpZihtLmZsYWdzJjY0KXtmb3IoO2pvKGMpOyljLmZsYWdzfD02NCxjPWMuZXhwcmVzc2lvbjtyZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gQmkoYyxtLGIpe2xldCB3PXFhKCEwLCEwKSxBPWJ8fEhyKG0pLFI9QT9DZShtLGIsdyk6YWUobSx3KTtpZihBJiZqcihSLm5hbWUpJiZMcihSLm5hbWUsVS5Bbl9vcHRpb25hbF9jaGFpbl9jYW5ub3RfY29udGFpbl9wcml2YXRlX2lkZW50aWZpZXJzKSxnNihtKSYmbS50eXBlQXJndW1lbnRzKXtsZXQgdGU9bS50eXBlQXJndW1lbnRzLnBvcy0xLGxlPU50KFN0LG0udHlwZUFyZ3VtZW50cy5lbmQpKzE7TXQodGUsbGUsVS5Bbl9pbnN0YW50aWF0aW9uX2V4cHJlc3Npb25fY2Fubm90X2JlX2ZvbGxvd2VkX2J5X2FfcHJvcGVydHlfYWNjZXNzKX1yZXR1cm4gTShSLGMpfWZ1bmN0aW9uIG1vKGMsbSxiKXtsZXQgdztpZihmKCk9PT0yNCl3PUpyKDgwLCEwLFUuQW5fZWxlbWVudF9hY2Nlc3NfZXhwcmVzc2lvbl9zaG91bGRfdGFrZV9hbl9hcmd1bWVudCk7ZWxzZXtsZXQgUj1MZShKdCk7UWkoUikmJihSLnRleHQ9c2EoUi50ZXh0KSksdz1SfUgoMjQpO2xldCBBPWJ8fEhyKG0pP3FlKG0sYix3KTpaZShtLHcpO3JldHVybiBNKEEsYyl9ZnVuY3Rpb24gaG8oYyxtLGIpe2Zvcig7Oyl7bGV0IHcsQT0hMTtpZihiJiZWMSgpPyh3PUhuKDI5KSxBPWt0KGYoKSkpOkE9amUoMjUpLEEpe209QmkoYyxtLHcpO2NvbnRpbnVlfWlmKCh3fHwhVm4oKSkmJmplKDIzKSl7bT1tbyhjLG0sdyk7Y29udGludWV9aWYoT3MoKSl7bT0hdyYmbS5raW5kPT09MjMzP01zKGMsbS5leHByZXNzaW9uLHcsbS50eXBlQXJndW1lbnRzKTpNcyhjLG0sdyx2b2lkIDApO2NvbnRpbnVlfWlmKCF3KXtpZihmKCk9PT01NCYmIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCkpe08oKSxtPU0oeS5jcmVhdGVOb25OdWxsRXhwcmVzc2lvbihtKSxjKTtjb250aW51ZX1sZXQgUj1mdChNYyk7aWYoUil7bT1NKHkuY3JlYXRlRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzKG0sUiksYyk7Y29udGludWV9fXJldHVybiBtfX1mdW5jdGlvbiBPcygpe3JldHVybiBmKCk9PT0xNXx8ZigpPT09MTZ9ZnVuY3Rpb24gTXMoYyxtLGIsdyl7bGV0IEE9eS5jcmVhdGVUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24obSx3LGYoKT09PTE1Pyh3ZSghMCksZmkoKSk6VHMoITApKTtyZXR1cm4oYnx8bS5mbGFncyY2NCkmJihBLmZsYWdzfD02NCksQS5xdWVzdGlvbkRvdFRva2VuPWIsTShBLGMpfWZ1bmN0aW9uIElwKGMsbSl7Zm9yKDs7KXttPWhvKGMsbSwhMCk7bGV0IGIsdz1kdCgyOSk7aWYodyYmKGI9ZnQoTWMpLE9zKCkpKXttPU1zKGMsbSx3LGIpO2NvbnRpbnVlfWlmKGJ8fGYoKT09PTIxKXshdyYmbS5raW5kPT09MjMzJiYoYj1tLnR5cGVBcmd1bWVudHMsbT1tLmV4cHJlc3Npb24pO2xldCBBPU9jKCksUj13fHxIcihtKT9pdChtLHcsYixBKTpydChtLGIsQSk7bT1NKFIsYyk7Y29udGludWV9aWYodyl7bGV0IEE9SnIoODAsITEsVS5JZGVudGlmaWVyX2V4cGVjdGVkKTttPU0oQ2UobSx3LEEpLGMpfWJyZWFrfXJldHVybiBtfWZ1bmN0aW9uIE9jKCl7SCgyMSk7bGV0IGM9V3IoMTEsRzEpO3JldHVybiBIKDIyKSxjfWZ1bmN0aW9uIE1jKCl7aWYoYXQmNTI0Mjg4fHxldCgpIT09MzApcmV0dXJuO08oKTtsZXQgYz1XcigyMCxndCk7aWYoaGUoKT09PTMyKXJldHVybiBPKCksYyYmTnAoKT9jOnZvaWQgMH1mdW5jdGlvbiBOcCgpe3N3aXRjaChmKCkpe2Nhc2UgMjE6Y2FzZSAxNTpjYXNlIDE2OnJldHVybiEwO2Nhc2UgMzA6Y2FzZSAzMjpjYXNlIDQwOmNhc2UgNDE6cmV0dXJuITF9cmV0dXJuIHQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl8fEVjKCl8fCFSaSgpfWZ1bmN0aW9uIE9wKCl7c3dpdGNoKGYoKSl7Y2FzZSAxNTp0LmdldFRva2VuRmxhZ3MoKSYyNjY1NiYmd2UoITEpO2Nhc2UgOTpjYXNlIDEwOmNhc2UgMTE6cmV0dXJuIGZpKCk7Y2FzZSAxMTA6Y2FzZSAxMDg6Y2FzZSAxMDY6Y2FzZSAxMTI6Y2FzZSA5NzpyZXR1cm4gZHIoKTtjYXNlIDIxOnJldHVybiBNcCgpO2Nhc2UgMjM6cmV0dXJuIEpjKCk7Y2FzZSAxOTpyZXR1cm4gTHMoKTtjYXNlIDEzNDppZighVGUoRmMpKWJyZWFrO3JldHVybiBSYygpO2Nhc2UgNjA6cmV0dXJuIGdoKCk7Y2FzZSA4NjpyZXR1cm4gc2YoKTtjYXNlIDEwMDpyZXR1cm4gUmMoKTtjYXNlIDEwNTpyZXR1cm4gTHAoKTtjYXNlIDQ0OmNhc2UgNjk6aWYoUmUoKT09PTE0KXJldHVybiBmaSgpO2JyZWFrO2Nhc2UgMTY6cmV0dXJuIFRzKCExKTtjYXNlIDgxOnJldHVybiBYXygpfXJldHVybiBMdChVLkV4cHJlc3Npb25fZXhwZWN0ZWQpfWZ1bmN0aW9uIE1wKCl7bGV0IGM9VCgpLG09eCgpO0goMjEpO2xldCBiPUxlKEp0KTtyZXR1cm4gSCgyMiksQWUoTShhcihiKSxjKSxtKX1mdW5jdGlvbiBIMSgpe2xldCBjPVQoKTtIKDI2KTtsZXQgbT10cighMCk7cmV0dXJuIE0oeS5jcmVhdGVTcHJlYWRFbGVtZW50KG0pLGMpfWZ1bmN0aW9uIExjKCl7cmV0dXJuIGYoKT09PTI2P0gxKCk6ZigpPT09Mjg/TSh5LmNyZWF0ZU9taXR0ZWRFeHByZXNzaW9uKCksVCgpKTp0cighMCl9ZnVuY3Rpb24gRzEoKXtyZXR1cm4geGUocixMYyl9ZnVuY3Rpb24gSmMoKXtsZXQgYz1UKCksbT10LmdldFRva2VuU3RhcnQoKSxiPUgoMjMpLHc9dC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSxBPVdyKDE1LExjKTtyZXR1cm4ga24oMjMsMjQsYixtKSxNKFkoQSx3KSxjKX1mdW5jdGlvbiBYMSgpe2xldCBjPVQoKSxtPXgoKTtpZihkdCgyNikpe2xldCB2ZT10cighMCk7cmV0dXJuIEFlKE0oeS5jcmVhdGVTcHJlYWRBc3NpZ25tZW50KHZlKSxjKSxtKX1sZXQgYj1YbighMCk7aWYoX2EoMTM5KSlyZXR1cm4gZGEoYyxtLGIsMTc3LDApO2lmKF9hKDE1MykpcmV0dXJuIGRhKGMsbSxiLDE3OCwwKTtsZXQgdz1kdCg0MiksQT1FdCgpLFI9VWEoKSx0ZT1kdCg1OCksbGU9ZHQoNTQpO2lmKHd8fGYoKT09PTIxfHxmKCk9PT0zMClyZXR1cm4gV2MoYyxtLGIsdyxSLHRlLGxlKTtsZXQgbmU7aWYoQSYmZigpIT09NTkpe2xldCB2ZT1kdCg2NCksSGU9dmU/TGUoKCk9PnRyKCEwKSk6dm9pZCAwO25lPXkuY3JlYXRlU2hvcnRoYW5kUHJvcGVydHlBc3NpZ25tZW50KFIsSGUpLG5lLmVxdWFsc1Rva2VuPXZlfWVsc2V7SCg1OSk7bGV0IHZlPUxlKCgpPT50cighMCkpO25lPXkuY3JlYXRlUHJvcGVydHlBc3NpZ25tZW50KFIsdmUpfXJldHVybiBuZS5tb2RpZmllcnM9YixuZS5xdWVzdGlvblRva2VuPXRlLG5lLmV4Y2xhbWF0aW9uVG9rZW49bGUsQWUoTShuZSxjKSxtKX1mdW5jdGlvbiBMcygpe2xldCBjPVQoKSxtPXQuZ2V0VG9rZW5TdGFydCgpLGI9SCgxOSksdz10Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpLEE9V3IoMTIsWDEsITApO3JldHVybiBrbigxOSwyMCxiLG0pLE0oQihBLHcpLGMpfWZ1bmN0aW9uIFJjKCl7bGV0IGM9Vm4oKTtYKCExKTtsZXQgbT1UKCksYj14KCksdz1YbighMSk7SCgxMDApO2xldCBBPWR0KDQyKSxSPUE/MTowLHRlPW10KHcsYWwpPzI6MCxsZT1SJiZ0ZT9QaSh5byk6Uj9xcih5byk6dGU/Q24oeW8pOnlvKCksbmU9VnIoKSxpZT1HbihSfHRlKSx2ZT1Ebig1OSwhMSksSGU9Z28oUnx0ZSk7WChjKTtsZXQgQmU9eS5jcmVhdGVGdW5jdGlvbkV4cHJlc3Npb24odyxBLGxlLG5lLGllLHZlLEhlKTtyZXR1cm4gQWUoTShCZSxtKSxiKX1mdW5jdGlvbiB5bygpe3JldHVybiBBbigpP0dfKCk6dm9pZCAwfWZ1bmN0aW9uIExwKCl7bGV0IGM9VCgpO2lmKEgoMTA1KSxqZSgyNSkpe2xldCBSPVl0KCk7cmV0dXJuIE0oeS5jcmVhdGVNZXRhUHJvcGVydHkoMTA1LFIpLGMpfWxldCBtPVQoKSxiPWhvKG0sT3AoKSwhMSksdztiLmtpbmQ9PT0yMzMmJih3PWIudHlwZUFyZ3VtZW50cyxiPWIuZXhwcmVzc2lvbiksZigpPT09MjkmJkplKFUuSW52YWxpZF9vcHRpb25hbF9jaGFpbl9mcm9tX25ld19leHByZXNzaW9uX0RpZF95b3VfbWVhbl90b19jYWxsXzAsdF8oU3QsYikpO2xldCBBPWYoKT09PTIxP09jKCk6dm9pZCAwO3JldHVybiBNKElyKGIsdyxBKSxjKX1mdW5jdGlvbiBXYShjLG0pe2xldCBiPVQoKSx3PXgoKSxBPXQuZ2V0VG9rZW5TdGFydCgpLFI9SCgxOSxtKTtpZihSfHxjKXtsZXQgdGU9dC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSxsZT16cigxLHdyKTtrbigxOSwyMCxSLEEpO2xldCBuZT1BZShNKGNpKGxlLHRlKSxiKSx3KTtyZXR1cm4gZigpPT09NjQmJihKZShVLkRlY2xhcmF0aW9uX29yX3N0YXRlbWVudF9leHBlY3RlZF9UaGlzX2ZvbGxvd3NfYV9ibG9ja19vZl9zdGF0ZW1lbnRzX3NvX2lmX3lvdV9pbnRlbmRlZF90b193cml0ZV9hX2Rlc3RydWN0dXJpbmdfYXNzaWdubWVudF95b3VfbWlnaHRfbmVlZF90b193cmFwX3RoZV93aG9sZV9hc3NpZ25tZW50X2luX3BhcmVudGhlc2VzKSxPKCkpLG5lfWVsc2V7bGV0IHRlPXBpKCk7cmV0dXJuIEFlKE0oY2kodGUsdm9pZCAwKSxiKSx3KX19ZnVuY3Rpb24gZ28oYyxtKXtsZXQgYj1FbigpO3ooISEoYyYxKSk7bGV0IHc9U3IoKTtlZSghIShjJjIpKTtsZXQgQT1lcjtlcj0hMTtsZXQgUj1WbigpO1ImJlgoITEpO2xldCB0ZT1XYSghIShjJjE2KSxtKTtyZXR1cm4gUiYmWCghMCksZXI9QSx6KGIpLGVlKHcpLHRlfWZ1bmN0aW9uICQxKCl7bGV0IGM9VCgpLG09eCgpO3JldHVybiBIKDI3KSxBZShNKHkuY3JlYXRlRW1wdHlTdGF0ZW1lbnQoKSxjKSxtKX1mdW5jdGlvbiBKcCgpe2xldCBjPVQoKSxtPXgoKTtIKDEwMSk7bGV0IGI9dC5nZXRUb2tlblN0YXJ0KCksdz1IKDIxKSxBPUxlKEp0KTtrbigyMSwyMix3LGIpO2xldCBSPXdyKCksdGU9amUoOTMpP3dyKCk6dm9pZCAwO3JldHVybiBBZShNKEdlKEEsUix0ZSksYyksbSl9ZnVuY3Rpb24gUTEoKXtsZXQgYz1UKCksbT14KCk7SCg5Mik7bGV0IGI9d3IoKTtIKDExNyk7bGV0IHc9dC5nZXRUb2tlblN0YXJ0KCksQT1IKDIxKSxSPUxlKEp0KTtyZXR1cm4ga24oMjEsMjIsQSx3KSxqZSgyNyksQWUoTSh5LmNyZWF0ZURvU3RhdGVtZW50KGIsUiksYyksbSl9ZnVuY3Rpb24gUnAoKXtsZXQgYz1UKCksbT14KCk7SCgxMTcpO2xldCBiPXQuZ2V0VG9rZW5TdGFydCgpLHc9SCgyMSksQT1MZShKdCk7a24oMjEsMjIsdyxiKTtsZXQgUj13cigpO3JldHVybiBBZShNKEd0KEEsUiksYyksbSl9ZnVuY3Rpb24gWTEoKXtsZXQgYz1UKCksbT14KCk7SCg5OSk7bGV0IGI9ZHQoMTM1KTtIKDIxKTtsZXQgdztmKCkhPT0yNyYmKGYoKT09PTExNXx8ZigpPT09MTIxfHxmKCk9PT04N3x8ZigpPT09MTYwJiZUZShzaCl8fGYoKT09PTEzNSYmVGUoRnMpP3c9ZWYoITApOnc9bHQoSnQpKTtsZXQgQTtpZihiP0goMTY1KTpqZSgxNjUpKXtsZXQgUj1MZSgoKT0+dHIoITApKTtIKDIyKSxBPVh0KGIsdyxSLHdyKCkpfWVsc2UgaWYoamUoMTAzKSl7bGV0IFI9TGUoSnQpO0goMjIpLEE9eS5jcmVhdGVGb3JJblN0YXRlbWVudCh3LFIsd3IoKSl9ZWxzZXtIKDI3KTtsZXQgUj1mKCkhPT0yNyYmZigpIT09MjI/TGUoSnQpOnZvaWQgMDtIKDI3KTtsZXQgdGU9ZigpIT09MjI/TGUoSnQpOnZvaWQgMDtIKDIyKSxBPVVyKHcsUix0ZSx3cigpKX1yZXR1cm4gQWUoTShBLGMpLG0pfWZ1bmN0aW9uIGpjKGMpe2xldCBtPVQoKSxiPXgoKTtIKGM9PT0yNTI/ODM6ODgpO2xldCB3PXVpKCk/dm9pZCAwOkx0KCk7eHIoKTtsZXQgQT1jPT09MjUyP3kuY3JlYXRlQnJlYWtTdGF0ZW1lbnQodyk6eS5jcmVhdGVDb250aW51ZVN0YXRlbWVudCh3KTtyZXR1cm4gQWUoTShBLG0pLGIpfWZ1bmN0aW9uIEsxKCl7bGV0IGM9VCgpLG09eCgpO0goMTA3KTtsZXQgYj11aSgpP3ZvaWQgMDpMZShKdCk7cmV0dXJuIHhyKCksQWUoTSh5LmNyZWF0ZVJldHVyblN0YXRlbWVudChiKSxjKSxtKX1mdW5jdGlvbiBaMSgpe2xldCBjPVQoKSxtPXgoKTtIKDExOCk7bGV0IGI9dC5nZXRUb2tlblN0YXJ0KCksdz1IKDIxKSxBPUxlKEp0KTtrbigyMSwyMix3LGIpO2xldCBSPWtlKDY3MTA4ODY0LHdyKTtyZXR1cm4gQWUoTSh5LmNyZWF0ZVdpdGhTdGF0ZW1lbnQoQSxSKSxjKSxtKX1mdW5jdGlvbiBqcCgpe2xldCBjPVQoKSxtPXgoKTtIKDg0KTtsZXQgYj1MZShKdCk7SCg1OSk7bGV0IHc9enIoMyx3cik7cmV0dXJuIEFlKE0oeS5jcmVhdGVDYXNlQ2xhdXNlKGIsdyksYyksbSl9ZnVuY3Rpb24gZWgoKXtsZXQgYz1UKCk7SCg5MCksSCg1OSk7bGV0IG09enIoMyx3cik7cmV0dXJuIE0oeS5jcmVhdGVEZWZhdWx0Q2xhdXNlKG0pLGMpfWZ1bmN0aW9uIEZwKCl7cmV0dXJuIGYoKT09PTg0P2pwKCk6ZWgoKX1mdW5jdGlvbiB0aCgpe2xldCBjPVQoKTtIKDE5KTtsZXQgbT16cigyLEZwKTtyZXR1cm4gSCgyMCksTSh5LmNyZWF0ZUNhc2VCbG9jayhtKSxjKX1mdW5jdGlvbiBCcCgpe2xldCBjPVQoKSxtPXgoKTtIKDEwOSksSCgyMSk7bGV0IGI9TGUoSnQpO0goMjIpO2xldCB3PXRoKCk7cmV0dXJuIEFlKE0oeS5jcmVhdGVTd2l0Y2hTdGF0ZW1lbnQoYix3KSxjKSxtKX1mdW5jdGlvbiByaCgpe2xldCBjPVQoKSxtPXgoKTtIKDExMSk7bGV0IGI9dC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKT92b2lkIDA6TGUoSnQpO3JldHVybiBiPT09dm9pZCAwJiYoT3IrKyxiPU0oRyhcIlwiKSxUKCkpKSxmcygpfHxJZShiKSxBZShNKHkuY3JlYXRlVGhyb3dTdGF0ZW1lbnQoYiksYyksbSl9ZnVuY3Rpb24gVXAoKXtsZXQgYz1UKCksbT14KCk7SCgxMTMpO2xldCBiPVdhKCExKSx3PWYoKT09PTg1P25oKCk6dm9pZCAwLEE7cmV0dXJuKCF3fHxmKCk9PT05OCkmJihIKDk4LFUuY2F0Y2hfb3JfZmluYWxseV9leHBlY3RlZCksQT1XYSghMSkpLEFlKE0oeS5jcmVhdGVUcnlTdGF0ZW1lbnQoYix3LEEpLGMpLG0pfWZ1bmN0aW9uIG5oKCl7bGV0IGM9VCgpO0goODUpO2xldCBtO2plKDIxKT8obT1CcygpLEgoMjIpKTptPXZvaWQgMDtsZXQgYj1XYSghMSk7cmV0dXJuIE0oeS5jcmVhdGVDYXRjaENsYXVzZShtLGIpLGMpfWZ1bmN0aW9uIHFwKCl7bGV0IGM9VCgpLG09eCgpO3JldHVybiBIKDg5KSx4cigpLEFlKE0oeS5jcmVhdGVEZWJ1Z2dlclN0YXRlbWVudCgpLGMpLG0pfWZ1bmN0aW9uIGloKCl7bGV0IGM9VCgpLG09eCgpLGIsdz1mKCk9PT0yMSxBPUxlKEp0KTtyZXR1cm4gRWUoQSkmJmplKDU5KT9iPXkuY3JlYXRlTGFiZWxlZFN0YXRlbWVudChBLHdyKCkpOihmcygpfHxJZShBKSxiPU5yKEEpLHcmJihtPSExKSksQWUoTShiLGMpLG0pfWZ1bmN0aW9uIEpzKCl7cmV0dXJuIE8oKSxrdChmKCkpJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKX1mdW5jdGlvbiBhaCgpe3JldHVybiBPKCksZigpPT09ODYmJiF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpfWZ1bmN0aW9uIEZjKCl7cmV0dXJuIE8oKSxmKCk9PT0xMDAmJiF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpfWZ1bmN0aW9uIHpwKCl7cmV0dXJuIE8oKSwoa3QoZigpKXx8ZigpPT09OXx8ZigpPT09MTB8fGYoKT09PTExKSYmIXQuaGFzUHJlY2VkaW5nTGluZUJyZWFrKCl9ZnVuY3Rpb24gV3AoKXtmb3IoOzspc3dpdGNoKGYoKSl7Y2FzZSAxMTU6Y2FzZSAxMjE6Y2FzZSA4NzpjYXNlIDEwMDpjYXNlIDg2OmNhc2UgOTQ6cmV0dXJuITA7Y2FzZSAxNjA6cmV0dXJuIEhwKCk7Y2FzZSAxMzU6cmV0dXJuIFVjKCk7Y2FzZSAxMjA6Y2FzZSAxNTY6cmV0dXJuIGhwKCk7Y2FzZSAxNDQ6Y2FzZSAxNDU6cmV0dXJuIF9oKCk7Y2FzZSAxMjg6Y2FzZSAxMjk6Y2FzZSAxMzQ6Y2FzZSAxMzg6Y2FzZSAxMjM6Y2FzZSAxMjQ6Y2FzZSAxMjU6Y2FzZSAxNDg6bGV0IGM9ZigpO2lmKE8oKSx0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpKXJldHVybiExO2lmKGM9PT0xMzgmJmYoKT09PTE1NilyZXR1cm4hMDtjb250aW51ZTtjYXNlIDE2MjpyZXR1cm4gTygpLGYoKT09PTE5fHxmKCk9PT04MHx8ZigpPT09OTU7Y2FzZSAxMDI6cmV0dXJuIE8oKSxmKCk9PT0xMXx8ZigpPT09NDJ8fGYoKT09PTE5fHxrdChmKCkpO2Nhc2UgOTU6bGV0IG09TygpO2lmKG09PT0xNTYmJihtPVRlKE8pKSxtPT09NjR8fG09PT00Mnx8bT09PTE5fHxtPT09OTB8fG09PT0xMzB8fG09PT02MClyZXR1cm4hMDtjb250aW51ZTtjYXNlIDEyNjpPKCk7Y29udGludWU7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gUnMoKXtyZXR1cm4gVGUoV3ApfWZ1bmN0aW9uIEJjKCl7c3dpdGNoKGYoKSl7Y2FzZSA2MDpjYXNlIDI3OmNhc2UgMTk6Y2FzZSAxMTU6Y2FzZSAxMjE6Y2FzZSAxNjA6Y2FzZSAxMDA6Y2FzZSA4NjpjYXNlIDk0OmNhc2UgMTAxOmNhc2UgOTI6Y2FzZSAxMTc6Y2FzZSA5OTpjYXNlIDg4OmNhc2UgODM6Y2FzZSAxMDc6Y2FzZSAxMTg6Y2FzZSAxMDk6Y2FzZSAxMTE6Y2FzZSAxMTM6Y2FzZSA4OTpjYXNlIDg1OmNhc2UgOTg6cmV0dXJuITA7Y2FzZSAxMDI6cmV0dXJuIFJzKCl8fFRlKCR1KTtjYXNlIDg3OmNhc2UgOTU6cmV0dXJuIFJzKCk7Y2FzZSAxMzQ6Y2FzZSAxMzg6Y2FzZSAxMjA6Y2FzZSAxNDQ6Y2FzZSAxNDU6Y2FzZSAxNTY6Y2FzZSAxNjI6cmV0dXJuITA7Y2FzZSAxMjk6Y2FzZSAxMjU6Y2FzZSAxMjM6Y2FzZSAxMjQ6Y2FzZSAxMjY6Y2FzZSAxNDg6cmV0dXJuIFJzKCl8fCFUZShKcyk7ZGVmYXVsdDpyZXR1cm4gUmkoKX19ZnVuY3Rpb24gb2goKXtyZXR1cm4gTygpLEFuKCl8fGYoKT09PTE5fHxmKCk9PT0yM31mdW5jdGlvbiBWcCgpe3JldHVybiBUZShvaCl9ZnVuY3Rpb24gc2goKXtyZXR1cm4ganMoITApfWZ1bmN0aW9uIGpzKGMpe3JldHVybiBPKCksYyYmZigpPT09MTY1PyExOihBbigpfHxmKCk9PT0xOSkmJiF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpfWZ1bmN0aW9uIEhwKCl7cmV0dXJuIFRlKGpzKX1mdW5jdGlvbiBGcygpe3JldHVybiBHcCghMCl9ZnVuY3Rpb24gR3AoYyl7cmV0dXJuIE8oKT09PTE2MD9qcyhjKTohMX1mdW5jdGlvbiBVYygpe3JldHVybiBUZShHcCl9ZnVuY3Rpb24gd3IoKXtzd2l0Y2goZigpKXtjYXNlIDI3OnJldHVybiAkMSgpO2Nhc2UgMTk6cmV0dXJuIFdhKCExKTtjYXNlIDExNTpyZXR1cm4gdm8oVCgpLHgoKSx2b2lkIDApO2Nhc2UgMTIxOmlmKFZwKCkpcmV0dXJuIHZvKFQoKSx4KCksdm9pZCAwKTticmVhaztjYXNlIDEzNTppZihVYygpKXJldHVybiB2byhUKCkseCgpLHZvaWQgMCk7YnJlYWs7Y2FzZSAxNjA6aWYoSHAoKSlyZXR1cm4gdm8oVCgpLHgoKSx2b2lkIDApO2JyZWFrO2Nhc2UgMTAwOnJldHVybiBVcyhUKCkseCgpLHZvaWQgMCk7Y2FzZSA4NjpyZXR1cm4gX2YoVCgpLHgoKSx2b2lkIDApO2Nhc2UgMTAxOnJldHVybiBKcCgpO2Nhc2UgOTI6cmV0dXJuIFExKCk7Y2FzZSAxMTc6cmV0dXJuIFJwKCk7Y2FzZSA5OTpyZXR1cm4gWTEoKTtjYXNlIDg4OnJldHVybiBqYygyNTEpO2Nhc2UgODM6cmV0dXJuIGpjKDI1Mik7Y2FzZSAxMDc6cmV0dXJuIEsxKCk7Y2FzZSAxMTg6cmV0dXJuIFoxKCk7Y2FzZSAxMDk6cmV0dXJuIEJwKCk7Y2FzZSAxMTE6cmV0dXJuIHJoKCk7Y2FzZSAxMTM6Y2FzZSA4NTpjYXNlIDk4OnJldHVybiBVcCgpO2Nhc2UgODk6cmV0dXJuIHFwKCk7Y2FzZSA2MDpyZXR1cm4gWHAoKTtjYXNlIDEzNDpjYXNlIDEyMDpjYXNlIDE1NjpjYXNlIDE0NDpjYXNlIDE0NTpjYXNlIDEzODpjYXNlIDg3OmNhc2UgOTQ6Y2FzZSA5NTpjYXNlIDEwMjpjYXNlIDEyMzpjYXNlIDEyNDpjYXNlIDEyNTpjYXNlIDEyODpjYXNlIDEyOTpjYXNlIDEyNjpjYXNlIDE0ODpjYXNlIDE2MjppZihScygpKXJldHVybiBYcCgpO2JyZWFrfXJldHVybiBpaCgpfWZ1bmN0aW9uIHFjKGMpe3JldHVybiBjLmtpbmQ9PT0xMzh9ZnVuY3Rpb24gWHAoKXtsZXQgYz1UKCksbT14KCksYj1YbighMCk7aWYobXQoYixxYykpe2xldCBBPSRwKGMpO2lmKEEpcmV0dXJuIEE7Zm9yKGxldCBSIG9mIGIpUi5mbGFnc3w9MzM1NTQ0MzI7cmV0dXJuIGtlKDMzNTU0NDMyLCgpPT5RcChjLG0sYikpfWVsc2UgcmV0dXJuIFFwKGMsbSxiKX1mdW5jdGlvbiAkcChjKXtyZXR1cm4ga2UoMzM1NTQ0MzIsKCk9PntsZXQgbT1icyhwdCxjKTtpZihtKXJldHVybiBEdShtKX0pfWZ1bmN0aW9uIFFwKGMsbSxiKXtzd2l0Y2goZigpKXtjYXNlIDExNTpjYXNlIDEyMTpjYXNlIDg3OmNhc2UgMTYwOmNhc2UgMTM1OnJldHVybiB2byhjLG0sYik7Y2FzZSAxMDA6cmV0dXJuIFVzKGMsbSxiKTtjYXNlIDg2OnJldHVybiBfZihjLG0sYik7Y2FzZSAxMjA6cmV0dXJuIHhoKGMsbSxiKTtjYXNlIDE1NjpyZXR1cm4gdWYoYyxtLGIpO2Nhc2UgOTQ6cmV0dXJuIHdoKGMsbSxiKTtjYXNlIDE2MjpjYXNlIDE0NDpjYXNlIDE0NTpyZXR1cm4gQ2goYyxtLGIpO2Nhc2UgMTAyOnJldHVybiBraChjLG0sYik7Y2FzZSA5NTpzd2l0Y2goTygpLGYoKSl7Y2FzZSA5MDpjYXNlIDY0OnJldHVybiBCaChjLG0sYik7Y2FzZSAxMzA6cmV0dXJuIFFjKGMsbSxiKTtkZWZhdWx0OnJldHVybiBGaChjLG0sYil9ZGVmYXVsdDppZihiKXtsZXQgdz1KcigyODIsITAsVS5EZWNsYXJhdGlvbl9leHBlY3RlZCk7cmV0dXJuIHdkKHcsYyksdy5tb2RpZmllcnM9Yix3fXJldHVybn19ZnVuY3Rpb24gWXAoKXtyZXR1cm4gTygpPT09MTF9ZnVuY3Rpb24gX2goKXtyZXR1cm4gTygpLCF0Lmhhc1ByZWNlZGluZ0xpbmVCcmVhaygpJiYoRXQoKXx8ZigpPT09MTEpfWZ1bmN0aW9uIGJvKGMsbSl7aWYoZigpIT09MTkpe2lmKGMmNCl7Q3MoKTtyZXR1cm59aWYodWkoKSl7eHIoKTtyZXR1cm59fXJldHVybiBnbyhjLG0pfWZ1bmN0aW9uIGNoKCl7bGV0IGM9VCgpO2lmKGYoKT09PTI4KXJldHVybiBNKHkuY3JlYXRlT21pdHRlZEV4cHJlc3Npb24oKSxjKTtsZXQgbT1kdCgyNiksYj1WYSgpLHc9amkoKTtyZXR1cm4gTSh5LmNyZWF0ZUJpbmRpbmdFbGVtZW50KG0sdm9pZCAwLGIsdyksYyl9ZnVuY3Rpb24gS3AoKXtsZXQgYz1UKCksbT1kdCgyNiksYj1BbigpLHc9VWEoKSxBO2ImJmYoKSE9PTU5PyhBPXcsdz12b2lkIDApOihIKDU5KSxBPVZhKCkpO2xldCBSPWppKCk7cmV0dXJuIE0oeS5jcmVhdGVCaW5kaW5nRWxlbWVudChtLHcsQSxSKSxjKX1mdW5jdGlvbiBsaCgpe2xldCBjPVQoKTtIKDE5KTtsZXQgbT1MZSgoKT0+V3IoOSxLcCkpO3JldHVybiBIKDIwKSxNKHkuY3JlYXRlT2JqZWN0QmluZGluZ1BhdHRlcm4obSksYyl9ZnVuY3Rpb24gWnAoKXtsZXQgYz1UKCk7SCgyMyk7bGV0IG09TGUoKCk9PldyKDEwLGNoKSk7cmV0dXJuIEgoMjQpLE0oeS5jcmVhdGVBcnJheUJpbmRpbmdQYXR0ZXJuKG0pLGMpfWZ1bmN0aW9uIHpjKCl7cmV0dXJuIGYoKT09PTE5fHxmKCk9PT0yM3x8ZigpPT09ODF8fEFuKCl9ZnVuY3Rpb24gVmEoYyl7cmV0dXJuIGYoKT09PTIzP1pwKCk6ZigpPT09MTk/bGgoKTpHXyhjKX1mdW5jdGlvbiB1aCgpe3JldHVybiBCcyghMCl9ZnVuY3Rpb24gQnMoYyl7bGV0IG09VCgpLGI9eCgpLHc9VmEoVS5Qcml2YXRlX2lkZW50aWZpZXJzX2FyZV9ub3RfYWxsb3dlZF9pbl92YXJpYWJsZV9kZWNsYXJhdGlvbnMpLEE7YyYmdy5raW5kPT09ODAmJmYoKT09PTU0JiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmKEE9ZHIoKSk7bGV0IFI9SmkoKSx0ZT1DYyhmKCkpP3ZvaWQgMDpqaSgpLGxlPVRuKHcsQSxSLHRlKTtyZXR1cm4gQWUoTShsZSxtKSxiKX1mdW5jdGlvbiBlZihjKXtsZXQgbT1UKCksYj0wO3N3aXRjaChmKCkpe2Nhc2UgMTE1OmJyZWFrO2Nhc2UgMTIxOmJ8PTE7YnJlYWs7Y2FzZSA4NzpifD0yO2JyZWFrO2Nhc2UgMTYwOmJ8PTQ7YnJlYWs7Y2FzZSAxMzU6Ti5hc3NlcnQoVWMoKSksYnw9NixPKCk7YnJlYWs7ZGVmYXVsdDpOLmZhaWwoKX1PKCk7bGV0IHc7aWYoZigpPT09MTY1JiZUZSh0Zikpdz1waSgpO2Vsc2V7bGV0IEE9SWkoKTtudChjKSx3PVdyKDgsYz9Cczp1aCksbnQoQSl9cmV0dXJuIE0oU24odyxiKSxtKX1mdW5jdGlvbiB0Zigpe3JldHVybiB5cygpJiZPKCk9PT0yMn1mdW5jdGlvbiB2byhjLG0sYil7bGV0IHc9ZWYoITEpO3hyKCk7bGV0IEE9b3IoYix3KTtyZXR1cm4gQWUoTShBLGMpLG0pfWZ1bmN0aW9uIFVzKGMsbSxiKXtsZXQgdz1TcigpLEE9bG4oYik7SCgxMDApO2xldCBSPWR0KDQyKSx0ZT1BJjEwMjQ/eW8oKTpHXygpLGxlPVI/MTowLG5lPUEmNTEyPzI6MCxpZT1WcigpO0EmMSYmZWUoITApO2xldCB2ZT1HbihsZXxuZSksSGU9RG4oNTksITEpLEJlPWJvKGxlfG5lLFUub3JfZXhwZWN0ZWQpO2VlKHcpO2xldCBVZT15LmNyZWF0ZUZ1bmN0aW9uRGVjbGFyYXRpb24oYixSLHRlLGllLHZlLEhlLEJlKTtyZXR1cm4gQWUoTShVZSxjKSxtKX1mdW5jdGlvbiBwaCgpe2lmKGYoKT09PTEzNylyZXR1cm4gSCgxMzcpO2lmKGYoKT09PTExJiZUZShPKT09PTIxKXJldHVybiBmdCgoKT0+e2xldCBjPWZpKCk7cmV0dXJuIGMudGV4dD09PVwiY29uc3RydWN0b3JcIj9jOnZvaWQgMH0pfWZ1bmN0aW9uIGZoKGMsbSxiKXtyZXR1cm4gZnQoKCk9PntpZihwaCgpKXtsZXQgdz1WcigpLEE9R24oMCksUj1Ebig1OSwhMSksdGU9Ym8oMCxVLm9yX2V4cGVjdGVkKSxsZT15LmNyZWF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oYixBLHRlKTtyZXR1cm4gbGUudHlwZVBhcmFtZXRlcnM9dyxsZS50eXBlPVIsQWUoTShsZSxjKSxtKX19KX1mdW5jdGlvbiBXYyhjLG0sYix3LEEsUix0ZSxsZSl7bGV0IG5lPXc/MTowLGllPW10KGIsYWwpPzI6MCx2ZT1WcigpLEhlPUduKG5lfGllKSxCZT1Ebig1OSwhMSksVWU9Ym8obmV8aWUsbGUpLFJ0PXkuY3JlYXRlTWV0aG9kRGVjbGFyYXRpb24oYix3LEEsUix2ZSxIZSxCZSxVZSk7cmV0dXJuIFJ0LmV4Y2xhbWF0aW9uVG9rZW49dGUsQWUoTShSdCxjKSxtKX1mdW5jdGlvbiByZihjLG0sYix3LEEpe2xldCBSPSFBJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKT9kdCg1NCk6dm9pZCAwLHRlPUppKCksbGU9eGUoOTAxMTIsamkpO2FuKHcsdGUsbGUpO2xldCBuZT15LmNyZWF0ZVByb3BlcnR5RGVjbGFyYXRpb24oYix3LEF8fFIsdGUsbGUpO3JldHVybiBBZShNKG5lLGMpLG0pfWZ1bmN0aW9uIG5mKGMsbSxiKXtsZXQgdz1kdCg0MiksQT1VYSgpLFI9ZHQoNTgpO3JldHVybiB3fHxmKCk9PT0yMXx8ZigpPT09MzA/V2MoYyxtLGIsdyxBLFIsdm9pZCAwLFUub3JfZXhwZWN0ZWQpOnJmKGMsbSxiLEEsUil9ZnVuY3Rpb24gZGEoYyxtLGIsdyxBKXtsZXQgUj1VYSgpLHRlPVZyKCksbGU9R24oMCksbmU9RG4oNTksITEpLGllPWJvKEEpLHZlPXc9PT0xNzc/eS5jcmVhdGVHZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGIsUixsZSxuZSxpZSk6eS5jcmVhdGVTZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGIsUixsZSxpZSk7cmV0dXJuIHZlLnR5cGVQYXJhbWV0ZXJzPXRlLFFvKHZlKSYmKHZlLnR5cGU9bmUpLEFlKE0odmUsYyksbSl9ZnVuY3Rpb24gZGgoKXtsZXQgYztpZihmKCk9PT02MClyZXR1cm4hMDtmb3IoO2JpKGYoKSk7KXtpZihjPWYoKSxzMyhjKSlyZXR1cm4hMDtPKCl9aWYoZigpPT09NDJ8fChPaSgpJiYoYz1mKCksTygpKSxmKCk9PT0yMykpcmV0dXJuITA7aWYoYyE9PXZvaWQgMCl7aWYoIVNpKGMpfHxjPT09MTUzfHxjPT09MTM5KXJldHVybiEwO3N3aXRjaChmKCkpe2Nhc2UgMjE6Y2FzZSAzMDpjYXNlIDU0OmNhc2UgNTk6Y2FzZSA2NDpjYXNlIDU4OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuIHVpKCl9fXJldHVybiExfWZ1bmN0aW9uIGFmKGMsbSxiKXtIbigxMjYpO2xldCB3PW1oKCksQT1BZShNKHkuY3JlYXRlQ2xhc3NTdGF0aWNCbG9ja0RlY2xhcmF0aW9uKHcpLGMpLG0pO3JldHVybiBBLm1vZGlmaWVycz1iLEF9ZnVuY3Rpb24gbWgoKXtsZXQgYz1FbigpLG09U3IoKTt6KCExKSxlZSghMCk7bGV0IGI9V2EoITEpO3JldHVybiB6KGMpLGVlKG0pLGJ9ZnVuY3Rpb24gaGgoKXtpZihTcigpJiZmKCk9PT0xMzUpe2xldCBjPVQoKSxtPUx0KFUuRXhwcmVzc2lvbl9leHBlY3RlZCk7TygpO2xldCBiPWhvKGMsbSwhMCk7cmV0dXJuIElwKGMsYil9cmV0dXJuIElzKCl9ZnVuY3Rpb24gVmMoKXtsZXQgYz1UKCk7aWYoIWplKDYwKSlyZXR1cm47bGV0IG09bmEoaGgpO3JldHVybiBNKHkuY3JlYXRlRGVjb3JhdG9yKG0pLGMpfWZ1bmN0aW9uIG9mKGMsbSxiKXtsZXQgdz1UKCksQT1mKCk7aWYoZigpPT09ODcmJm0pe2lmKCFmdCh4dSkpcmV0dXJufWVsc2V7aWYoYiYmZigpPT09MTI2JiZUZShtZikpcmV0dXJuO2lmKGMmJmYoKT09PTEyNilyZXR1cm47aWYoIW4xKCkpcmV0dXJufXJldHVybiBNKHVlKEEpLHcpfWZ1bmN0aW9uIFhuKGMsbSxiKXtsZXQgdz1UKCksQSxSLHRlLGxlPSExLG5lPSExLGllPSExO2lmKGMmJmYoKT09PTYwKWZvcig7Uj1WYygpOylBPXh0KEEsUik7Zm9yKDt0ZT1vZihsZSxtLGIpOyl0ZS5raW5kPT09MTI2JiYobGU9ITApLEE9eHQoQSx0ZSksbmU9ITA7aWYobmUmJmMmJmYoKT09PTYwKWZvcig7Uj1WYygpOylBPXh0KEEsUiksaWU9ITA7aWYoaWUpZm9yKDt0ZT1vZihsZSxtLGIpOyl0ZS5raW5kPT09MTI2JiYobGU9ITApLEE9eHQoQSx0ZSk7cmV0dXJuIEEmJkZ0KEEsdyl9ZnVuY3Rpb24gSGMoKXtsZXQgYztpZihmKCk9PT0xMzQpe2xldCBtPVQoKTtPKCk7bGV0IGI9TSh1ZSgxMzQpLG0pO2M9RnQoW2JdLG0pfXJldHVybiBjfWZ1bmN0aW9uIHloKCl7bGV0IGM9VCgpLG09eCgpO2lmKGYoKT09PTI3KXJldHVybiBPKCksQWUoTSh5LmNyZWF0ZVNlbWljb2xvbkNsYXNzRWxlbWVudCgpLGMpLG0pO2xldCBiPVhuKCEwLCEwLCEwKTtpZihmKCk9PT0xMjYmJlRlKG1mKSlyZXR1cm4gYWYoYyxtLGIpO2lmKF9hKDEzOSkpcmV0dXJuIGRhKGMsbSxiLDE3NywwKTtpZihfYSgxNTMpKXJldHVybiBkYShjLG0sYiwxNzgsMCk7aWYoZigpPT09MTM3fHxmKCk9PT0xMSl7bGV0IHc9ZmgoYyxtLGIpO2lmKHcpcmV0dXJuIHd9aWYoR3UoKSlyZXR1cm4gdWEoYyxtLGIpO2lmKGt0KGYoKSl8fGYoKT09PTExfHxmKCk9PT05fHxmKCk9PT00Mnx8ZigpPT09MjMpaWYobXQoYixxYykpe2ZvcihsZXQgQSBvZiBiKUEuZmxhZ3N8PTMzNTU0NDMyO3JldHVybiBrZSgzMzU1NDQzMiwoKT0+bmYoYyxtLGIpKX1lbHNlIHJldHVybiBuZihjLG0sYik7aWYoYil7bGV0IHc9SnIoODAsITAsVS5EZWNsYXJhdGlvbl9leHBlY3RlZCk7cmV0dXJuIHJmKGMsbSxiLHcsdm9pZCAwKX1yZXR1cm4gTi5mYWlsKFwiU2hvdWxkIG5vdCBoYXZlIGF0dGVtcHRlZCB0byBwYXJzZSBjbGFzcyBtZW1iZXIgZGVjbGFyYXRpb24uXCIpfWZ1bmN0aW9uIGdoKCl7bGV0IGM9VCgpLG09eCgpLGI9WG4oITApO2lmKGYoKT09PTg2KXJldHVybiBHYyhjLG0sYiwyMzEpO2xldCB3PUpyKDI4MiwhMCxVLkV4cHJlc3Npb25fZXhwZWN0ZWQpO3JldHVybiB3ZCh3LGMpLHcubW9kaWZpZXJzPWIsd31mdW5jdGlvbiBzZigpe3JldHVybiBHYyhUKCkseCgpLHZvaWQgMCwyMzEpfWZ1bmN0aW9uIF9mKGMsbSxiKXtyZXR1cm4gR2MoYyxtLGIsMjYzKX1mdW5jdGlvbiBHYyhjLG0sYix3KXtsZXQgQT1TcigpO0goODYpO2xldCBSPVhjKCksdGU9VnIoKTttdChiLHF4KSYmZWUoITApO2xldCBsZT1jZigpLG5lO0goMTkpPyhuZT1TaCgpLEgoMjApKTpuZT1waSgpLGVlKEEpO2xldCBpZT13PT09MjYzP3kuY3JlYXRlQ2xhc3NEZWNsYXJhdGlvbihiLFIsdGUsbGUsbmUpOnkuY3JlYXRlQ2xhc3NFeHByZXNzaW9uKGIsUix0ZSxsZSxuZSk7cmV0dXJuIEFlKE0oaWUsYyksbSl9ZnVuY3Rpb24gWGMoKXtyZXR1cm4gQW4oKSYmIWJoKCk/TmkoQW4oKSk6dm9pZCAwfWZ1bmN0aW9uIGJoKCl7cmV0dXJuIGYoKT09PTExOSYmVGUoQ3UpfWZ1bmN0aW9uIGNmKCl7aWYobGYoKSlyZXR1cm4genIoMjIsdmgpfWZ1bmN0aW9uIHZoKCl7bGV0IGM9VCgpLG09ZigpO04uYXNzZXJ0KG09PT05Nnx8bT09PTExOSksTygpO2xldCBiPVdyKDcsVGgpO3JldHVybiBNKHkuY3JlYXRlSGVyaXRhZ2VDbGF1c2UobSxiKSxjKX1mdW5jdGlvbiBUaCgpe2xldCBjPVQoKSxtPUlzKCk7aWYobS5raW5kPT09MjMzKXJldHVybiBtO2xldCBiPXFzKCk7cmV0dXJuIE0oeS5jcmVhdGVFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHMobSxiKSxjKX1mdW5jdGlvbiBxcygpe3JldHVybiBmKCk9PT0zMD9jYSgyMCxndCwzMCwzMik6dm9pZCAwfWZ1bmN0aW9uIGxmKCl7cmV0dXJuIGYoKT09PTk2fHxmKCk9PT0xMTl9ZnVuY3Rpb24gU2goKXtyZXR1cm4genIoNSx5aCl9ZnVuY3Rpb24geGgoYyxtLGIpe0goMTIwKTtsZXQgdz1MdCgpLEE9VnIoKSxSPWNmKCksdGU9WXUoKSxsZT15LmNyZWF0ZUludGVyZmFjZURlY2xhcmF0aW9uKGIsdyxBLFIsdGUpO3JldHVybiBBZShNKGxlLGMpLG0pfWZ1bmN0aW9uIHVmKGMsbSxiKXtIKDE1NiksdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmSmUoVS5MaW5lX2JyZWFrX25vdF9wZXJtaXR0ZWRfaGVyZSk7bGV0IHc9THQoKSxBPVZyKCk7SCg2NCk7bGV0IFI9ZigpPT09MTQxJiZmdChucCl8fGd0KCk7eHIoKTtsZXQgdGU9eS5jcmVhdGVUeXBlQWxpYXNEZWNsYXJhdGlvbihiLHcsQSxSKTtyZXR1cm4gQWUoTSh0ZSxjKSxtKX1mdW5jdGlvbiBwZigpe2xldCBjPVQoKSxtPXgoKSxiPVVhKCksdz1MZShqaSk7cmV0dXJuIEFlKE0oeS5jcmVhdGVFbnVtTWVtYmVyKGIsdyksYyksbSl9ZnVuY3Rpb24gd2goYyxtLGIpe0goOTQpO2xldCB3PUx0KCksQTtIKDE5KT8oQT1pYSgoKT0+V3IoNixwZikpLEgoMjApKTpBPXBpKCk7bGV0IFI9eS5jcmVhdGVFbnVtRGVjbGFyYXRpb24oYix3LEEpO3JldHVybiBBZShNKFIsYyksbSl9ZnVuY3Rpb24genMoKXtsZXQgYz1UKCksbTtyZXR1cm4gSCgxOSk/KG09enIoMSx3ciksSCgyMCkpOm09cGkoKSxNKHkuY3JlYXRlTW9kdWxlQmxvY2sobSksYyl9ZnVuY3Rpb24gZmYoYyxtLGIsdyl7bGV0IEE9dyYzMixSPUx0KCksdGU9amUoMjUpP2ZmKFQoKSwhMSx2b2lkIDAsOHxBKTp6cygpLGxlPXkuY3JlYXRlTW9kdWxlRGVjbGFyYXRpb24oYixSLHRlLHcpO3JldHVybiBBZShNKGxlLGMpLG0pfWZ1bmN0aW9uICRjKGMsbSxiKXtsZXQgdz0wLEE7ZigpPT09MTYyPyhBPUx0KCksd3w9MjA0OCk6KEE9ZmkoKSxBLnRleHQ9c2EoQS50ZXh0KSk7bGV0IFI7ZigpPT09MTk/Uj16cygpOnhyKCk7bGV0IHRlPXkuY3JlYXRlTW9kdWxlRGVjbGFyYXRpb24oYixBLFIsdyk7cmV0dXJuIEFlKE0odGUsYyksbSl9ZnVuY3Rpb24gQ2goYyxtLGIpe2xldCB3PTA7aWYoZigpPT09MTYyKXJldHVybiAkYyhjLG0sYik7aWYoamUoMTQ1KSl3fD0zMjtlbHNlIGlmKEgoMTQ0KSxmKCk9PT0xMSlyZXR1cm4gJGMoYyxtLGIpO3JldHVybiBmZihjLG0sYix3KX1mdW5jdGlvbiBFaCgpe3JldHVybiBmKCk9PT0xNDkmJlRlKGRmKX1mdW5jdGlvbiBkZigpe3JldHVybiBPKCk9PT0yMX1mdW5jdGlvbiBtZigpe3JldHVybiBPKCk9PT0xOX1mdW5jdGlvbiBBaCgpe3JldHVybiBPKCk9PT00NH1mdW5jdGlvbiBRYyhjLG0sYil7SCgxMzApLEgoMTQ1KTtsZXQgdz1MdCgpO3hyKCk7bGV0IEE9eS5jcmVhdGVOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbih3KTtyZXR1cm4gQS5tb2RpZmllcnM9YixBZShNKEEsYyksbSl9ZnVuY3Rpb24ga2goYyxtLGIpe0goMTAyKTtsZXQgdz10LmdldFRva2VuRnVsbFN0YXJ0KCksQTtFdCgpJiYoQT1MdCgpKTtsZXQgUj0hMTtpZihmKCkhPT0xNjEmJihBPT1udWxsP3ZvaWQgMDpBLmVzY2FwZWRUZXh0KT09PVwidHlwZVwiJiYoRXQoKXx8UGgoKSkmJihSPSEwLEE9RXQoKT9MdCgpOnZvaWQgMCksQSYmIUloKCkpcmV0dXJuIE5oKGMsbSxiLEEsUik7bGV0IHRlOyhBfHxmKCk9PT00Mnx8ZigpPT09MTkpJiYodGU9T2goQSx3LFIpLEgoMTYxKSk7bGV0IGxlPVdzKCksbmU7ZigpPT09MTMyJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmKG5lPW1hKCkpLHhyKCk7bGV0IGllPXkuY3JlYXRlSW1wb3J0RGVjbGFyYXRpb24oYix0ZSxsZSxuZSk7cmV0dXJuIEFlKE0oaWUsYyksbSl9ZnVuY3Rpb24gRGgoKXtsZXQgYz1UKCksbT1rdChmKCkpP1l0KCk6emEoMTEpO0goNTkpO2xldCBiPXRyKCEwKTtyZXR1cm4gTSh5LmNyZWF0ZUFzc2VydEVudHJ5KG0sYiksYyl9ZnVuY3Rpb24gbWEoYyl7bGV0IG09VCgpO2N8fEgoMTMyKTtsZXQgYj10LmdldFRva2VuU3RhcnQoKTtpZihIKDE5KSl7bGV0IHc9dC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSxBPVdyKDI0LERoLCEwKTtpZighSCgyMCkpe2xldCBSPXdpKGN0KTtSJiZSLmNvZGU9PT1VLl8wX2V4cGVjdGVkLmNvZGUmJm5sKFIsQW8oc3IsYiwxLFUuVGhlX3BhcnNlcl9leHBlY3RlZF90b19maW5kX2FfMV90b19tYXRjaF90aGVfMF90b2tlbl9oZXJlLFwie1wiLFwifVwiKSl9cmV0dXJuIE0oeS5jcmVhdGVBc3NlcnRDbGF1c2UoQSx3KSxtKX1lbHNle2xldCB3PUZ0KFtdLFQoKSx2b2lkIDAsITEpO3JldHVybiBNKHkuY3JlYXRlQXNzZXJ0Q2xhdXNlKHcsITEpLG0pfX1mdW5jdGlvbiBQaCgpe3JldHVybiBmKCk9PT00Mnx8ZigpPT09MTl9ZnVuY3Rpb24gSWgoKXtyZXR1cm4gZigpPT09Mjh8fGYoKT09PTE2MX1mdW5jdGlvbiBOaChjLG0sYix3LEEpe0goNjQpO2xldCBSPWhhKCk7eHIoKTtsZXQgdGU9eS5jcmVhdGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihiLEEsdyxSKTtyZXR1cm4gQWUoTSh0ZSxjKSxtKX1mdW5jdGlvbiBPaChjLG0sYil7bGV0IHc7cmV0dXJuKCFjfHxqZSgyOCkpJiYodz1mKCk9PT00Mj9MaCgpOkhhKDI3NSkpLE0oeS5jcmVhdGVJbXBvcnRDbGF1c2UoYixjLHcpLG0pfWZ1bmN0aW9uIGhhKCl7cmV0dXJuIEVoKCk/TWgoKTpsYSghMSl9ZnVuY3Rpb24gTWgoKXtsZXQgYz1UKCk7SCgxNDkpLEgoMjEpO2xldCBtPVdzKCk7cmV0dXJuIEgoMjIpLE0oeS5jcmVhdGVFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZShtKSxjKX1mdW5jdGlvbiBXcygpe2lmKGYoKT09PTExKXtsZXQgYz1maSgpO3JldHVybiBjLnRleHQ9c2EoYy50ZXh0KSxjfWVsc2UgcmV0dXJuIEp0KCl9ZnVuY3Rpb24gTGgoKXtsZXQgYz1UKCk7SCg0MiksSCgxMzApO2xldCBtPUx0KCk7cmV0dXJuIE0oeS5jcmVhdGVOYW1lc3BhY2VJbXBvcnQobSksYyl9ZnVuY3Rpb24gSGEoYyl7bGV0IG09VCgpLGI9Yz09PTI3NT95LmNyZWF0ZU5hbWVkSW1wb3J0cyhjYSgyMyxSaCwxOSwyMCkpOnkuY3JlYXRlTmFtZWRFeHBvcnRzKGNhKDIzLEpoLDE5LDIwKSk7cmV0dXJuIE0oYixtKX1mdW5jdGlvbiBKaCgpe2xldCBjPXgoKTtyZXR1cm4gQWUoaGYoMjgxKSxjKX1mdW5jdGlvbiBSaCgpe3JldHVybiBoZigyNzYpfWZ1bmN0aW9uIGhmKGMpe2xldCBtPVQoKSxiPVNpKGYoKSkmJiFFdCgpLHc9dC5nZXRUb2tlblN0YXJ0KCksQT10LmdldFRva2VuRW5kKCksUj0hMSx0ZSxsZT0hMCxuZT1ZdCgpO2lmKG5lLmVzY2FwZWRUZXh0PT09XCJ0eXBlXCIpaWYoZigpPT09MTMwKXtsZXQgSGU9WXQoKTtpZihmKCk9PT0xMzApe2xldCBCZT1ZdCgpO2t0KGYoKSk/KFI9ITAsdGU9SGUsbmU9dmUoKSxsZT0hMSk6KHRlPW5lLG5lPUJlLGxlPSExKX1lbHNlIGt0KGYoKSk/KHRlPW5lLGxlPSExLG5lPXZlKCkpOihSPSEwLG5lPUhlKX1lbHNlIGt0KGYoKSkmJihSPSEwLG5lPXZlKCkpO2xlJiZmKCk9PT0xMzAmJih0ZT1uZSxIKDEzMCksbmU9dmUoKSksYz09PTI3NiYmYiYmTXQodyxBLFUuSWRlbnRpZmllcl9leHBlY3RlZCk7bGV0IGllPWM9PT0yNzY/eS5jcmVhdGVJbXBvcnRTcGVjaWZpZXIoUix0ZSxuZSk6eS5jcmVhdGVFeHBvcnRTcGVjaWZpZXIoUix0ZSxuZSk7cmV0dXJuIE0oaWUsbSk7ZnVuY3Rpb24gdmUoKXtyZXR1cm4gYj1TaShmKCkpJiYhRXQoKSx3PXQuZ2V0VG9rZW5TdGFydCgpLEE9dC5nZXRUb2tlbkVuZCgpLFl0KCl9fWZ1bmN0aW9uIGpoKGMpe3JldHVybiBNKHkuY3JlYXRlTmFtZXNwYWNlRXhwb3J0KFl0KCkpLGMpfWZ1bmN0aW9uIEZoKGMsbSxiKXtsZXQgdz1TcigpO2VlKCEwKTtsZXQgQSxSLHRlLGxlPWplKDE1NiksbmU9VCgpO2plKDQyKT8oamUoMTMwKSYmKEE9amgobmUpKSxIKDE2MSksUj1XcygpKTooQT1IYSgyNzkpLChmKCk9PT0xNjF8fGYoKT09PTExJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSkmJihIKDE2MSksUj1XcygpKSksUiYmZigpPT09MTMyJiYhdC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSYmKHRlPW1hKCkpLHhyKCksZWUodyk7bGV0IGllPXkuY3JlYXRlRXhwb3J0RGVjbGFyYXRpb24oYixsZSxBLFIsdGUpO3JldHVybiBBZShNKGllLGMpLG0pfWZ1bmN0aW9uIEJoKGMsbSxiKXtsZXQgdz1TcigpO2VlKCEwKTtsZXQgQTtqZSg2NCk/QT0hMDpIKDkwKTtsZXQgUj10cighMCk7eHIoKSxlZSh3KTtsZXQgdGU9eS5jcmVhdGVFeHBvcnRBc3NpZ25tZW50KGIsQSxSKTtyZXR1cm4gQWUoTSh0ZSxjKSxtKX1sZXQgeWE7KGM9PntjW2MuU291cmNlRWxlbWVudHM9MF09XCJTb3VyY2VFbGVtZW50c1wiLGNbYy5CbG9ja1N0YXRlbWVudHM9MV09XCJCbG9ja1N0YXRlbWVudHNcIixjW2MuU3dpdGNoQ2xhdXNlcz0yXT1cIlN3aXRjaENsYXVzZXNcIixjW2MuU3dpdGNoQ2xhdXNlU3RhdGVtZW50cz0zXT1cIlN3aXRjaENsYXVzZVN0YXRlbWVudHNcIixjW2MuVHlwZU1lbWJlcnM9NF09XCJUeXBlTWVtYmVyc1wiLGNbYy5DbGFzc01lbWJlcnM9NV09XCJDbGFzc01lbWJlcnNcIixjW2MuRW51bU1lbWJlcnM9Nl09XCJFbnVtTWVtYmVyc1wiLGNbYy5IZXJpdGFnZUNsYXVzZUVsZW1lbnQ9N109XCJIZXJpdGFnZUNsYXVzZUVsZW1lbnRcIixjW2MuVmFyaWFibGVEZWNsYXJhdGlvbnM9OF09XCJWYXJpYWJsZURlY2xhcmF0aW9uc1wiLGNbYy5PYmplY3RCaW5kaW5nRWxlbWVudHM9OV09XCJPYmplY3RCaW5kaW5nRWxlbWVudHNcIixjW2MuQXJyYXlCaW5kaW5nRWxlbWVudHM9MTBdPVwiQXJyYXlCaW5kaW5nRWxlbWVudHNcIixjW2MuQXJndW1lbnRFeHByZXNzaW9ucz0xMV09XCJBcmd1bWVudEV4cHJlc3Npb25zXCIsY1tjLk9iamVjdExpdGVyYWxNZW1iZXJzPTEyXT1cIk9iamVjdExpdGVyYWxNZW1iZXJzXCIsY1tjLkpzeEF0dHJpYnV0ZXM9MTNdPVwiSnN4QXR0cmlidXRlc1wiLGNbYy5Kc3hDaGlsZHJlbj0xNF09XCJKc3hDaGlsZHJlblwiLGNbYy5BcnJheUxpdGVyYWxNZW1iZXJzPTE1XT1cIkFycmF5TGl0ZXJhbE1lbWJlcnNcIixjW2MuUGFyYW1ldGVycz0xNl09XCJQYXJhbWV0ZXJzXCIsY1tjLkpTRG9jUGFyYW1ldGVycz0xN109XCJKU0RvY1BhcmFtZXRlcnNcIixjW2MuUmVzdFByb3BlcnRpZXM9MThdPVwiUmVzdFByb3BlcnRpZXNcIixjW2MuVHlwZVBhcmFtZXRlcnM9MTldPVwiVHlwZVBhcmFtZXRlcnNcIixjW2MuVHlwZUFyZ3VtZW50cz0yMF09XCJUeXBlQXJndW1lbnRzXCIsY1tjLlR1cGxlRWxlbWVudFR5cGVzPTIxXT1cIlR1cGxlRWxlbWVudFR5cGVzXCIsY1tjLkhlcml0YWdlQ2xhdXNlcz0yMl09XCJIZXJpdGFnZUNsYXVzZXNcIixjW2MuSW1wb3J0T3JFeHBvcnRTcGVjaWZpZXJzPTIzXT1cIkltcG9ydE9yRXhwb3J0U3BlY2lmaWVyc1wiLGNbYy5Bc3NlcnRFbnRyaWVzPTI0XT1cIkFzc2VydEVudHJpZXNcIixjW2MuSlNEb2NDb21tZW50PTI1XT1cIkpTRG9jQ29tbWVudFwiLGNbYy5Db3VudD0yNl09XCJDb3VudFwifSkoeWF8fCh5YT17fSkpO2xldCB5ZjsoYz0+e2NbYy5GYWxzZT0wXT1cIkZhbHNlXCIsY1tjLlRydWU9MV09XCJUcnVlXCIsY1tjLlVua25vd249Ml09XCJVbmtub3duXCJ9KSh5Znx8KHlmPXt9KSk7bGV0IGdmOyhjPT57ZnVuY3Rpb24gbShpZSx2ZSxIZSl7cm4oXCJmaWxlLmpzXCIsaWUsOTksdm9pZCAwLDEpLHQuc2V0VGV4dChpZSx2ZSxIZSksaHQ9dC5zY2FuKCk7bGV0IEJlPWIoKSxVZT1nZShcImZpbGUuanNcIiw5OSwxLCExLFtdLHVlKDEpLDAsUm4pLFJ0PSRhKGN0LFVlKTtyZXR1cm4gVXQmJihVZS5qc0RvY0RpYWdub3N0aWNzPSRhKFV0LFVlKSksbm4oKSxCZT97anNEb2NUeXBlRXhwcmVzc2lvbjpCZSxkaWFnbm9zdGljczpSdH06dm9pZCAwfWMucGFyc2VKU0RvY1R5cGVFeHByZXNzaW9uRm9yVGVzdHM9bTtmdW5jdGlvbiBiKGllKXtsZXQgdmU9VCgpLEhlPShpZT9qZTpIKSgxOSksQmU9a2UoMTY3NzcyMTYseHMpOyghaWV8fEhlKSYmQmEoMjApO2xldCBVZT15LmNyZWF0ZUpTRG9jVHlwZUV4cHJlc3Npb24oQmUpO3JldHVybiBvZShVZSksTShVZSx2ZSl9Yy5wYXJzZUpTRG9jVHlwZUV4cHJlc3Npb249YjtmdW5jdGlvbiB3KCl7bGV0IGllPVQoKSx2ZT1qZSgxOSksSGU9VCgpLEJlPWxhKCExKTtmb3IoO2YoKT09PTgxOylZZSgpLGZlKCksQmU9TSh5LmNyZWF0ZUpTRG9jTWVtYmVyTmFtZShCZSxMdCgpKSxIZSk7dmUmJkJhKDIwKTtsZXQgVWU9eS5jcmVhdGVKU0RvY05hbWVSZWZlcmVuY2UoQmUpO3JldHVybiBvZShVZSksTShVZSxpZSl9Yy5wYXJzZUpTRG9jTmFtZVJlZmVyZW5jZT13O2Z1bmN0aW9uIEEoaWUsdmUsSGUpe3JuKFwiXCIsaWUsOTksdm9pZCAwLDEpO2xldCBCZT1rZSgxNjc3NzIxNiwoKT0+bmUodmUsSGUpKSxSdD0kYShjdCx7bGFuZ3VhZ2VWYXJpYW50OjAsdGV4dDppZX0pO3JldHVybiBubigpLEJlP3tqc0RvYzpCZSxkaWFnbm9zdGljczpSdH06dm9pZCAwfWMucGFyc2VJc29sYXRlZEpTRG9jQ29tbWVudD1BO2Z1bmN0aW9uIFIoaWUsdmUsSGUpe2xldCBCZT1odCxVZT1jdC5sZW5ndGgsUnQ9UXQsR3I9a2UoMTY3NzcyMTYsKCk9Pm5lKHZlLEhlKSk7cmV0dXJuIFhpKEdyLGllKSxhdCY1MjQyODgmJihVdHx8KFV0PVtdKSxVdC5wdXNoKC4uLmN0KSksaHQ9QmUsY3QubGVuZ3RoPVVlLFF0PVJ0LEdyfWMucGFyc2VKU0RvY0NvbW1lbnQ9UjtsZXQgdGU7KGllPT57aWVbaWUuQmVnaW5uaW5nT2ZMaW5lPTBdPVwiQmVnaW5uaW5nT2ZMaW5lXCIsaWVbaWUuU2F3QXN0ZXJpc2s9MV09XCJTYXdBc3Rlcmlza1wiLGllW2llLlNhdmluZ0NvbW1lbnRzPTJdPVwiU2F2aW5nQ29tbWVudHNcIixpZVtpZS5TYXZpbmdCYWNrdGlja3M9M109XCJTYXZpbmdCYWNrdGlja3NcIn0pKHRlfHwodGU9e30pKTtsZXQgbGU7KGllPT57aWVbaWUuUHJvcGVydHk9MV09XCJQcm9wZXJ0eVwiLGllW2llLlBhcmFtZXRlcj0yXT1cIlBhcmFtZXRlclwiLGllW2llLkNhbGxiYWNrUGFyYW1ldGVyPTRdPVwiQ2FsbGJhY2tQYXJhbWV0ZXJcIn0pKGxlfHwobGU9e30pKTtmdW5jdGlvbiBuZShpZT0wLHZlKXtsZXQgSGU9cHQ7cHR8PTE8PDI1O2xldCBCZT1TdCxVZT12ZT09PXZvaWQgMD9CZS5sZW5ndGg6aWUrdmU7aWYodmU9VWUtaWUsTi5hc3NlcnQoaWU+PTApLE4uYXNzZXJ0KGllPD1VZSksTi5hc3NlcnQoVWU8PUJlLmxlbmd0aCksIXo4KEJlLGllKSlyZXR1cm47bGV0IFJ0LEdyLGRpLG1pLGhpLFVpPVtdLGdhPVtdLGJhPXQuc2NhblJhbmdlKGllKzMsdmUtNSxVaCk7cmV0dXJuIHB0PUhlLGJhO2Z1bmN0aW9uIFVoKCl7bGV0IEY9MSxyZSxaPWllLShCZS5sYXN0SW5kZXhPZihgXG5gLGllKSsxKSs0O2Z1bmN0aW9uIHNlKHplKXtyZXx8KHJlPVopLFVpLnB1c2goemUpLForPXplLmxlbmd0aH1mb3IoZmUoKTt4byg1KTspO3hvKDQpJiYoRj0wLFo9MCk7ZTpmb3IoOzspe3N3aXRjaChmKCkpe2Nhc2UgNjA6cWgoVWkpLGhpfHwoaGk9VCgpKSx1KFRvKFopKSxGPTAscmU9dm9pZCAwO2JyZWFrO2Nhc2UgNDpVaS5wdXNoKHQuZ2V0VG9rZW5UZXh0KCkpLEY9MCxaPTA7YnJlYWs7Y2FzZSA0MjpsZXQgemU9dC5nZXRUb2tlblRleHQoKTtGPT09MT8oRj0yLHNlKHplKSk6KE4uYXNzZXJ0KEY9PT0wKSxGPTEsWis9emUubGVuZ3RoKTticmVhaztjYXNlIDU6Ti5hc3NlcnQoRiE9PTIsXCJ3aGl0ZXNwYWNlIHNob3VsZG4ndCBjb21lIGZyb20gdGhlIHNjYW5uZXIgd2hpbGUgc2F2aW5nIHRvcC1sZXZlbCBjb21tZW50IHRleHRcIik7bGV0IEF0PXQuZ2V0VG9rZW5UZXh0KCk7cmUhPT12b2lkIDAmJlorQXQubGVuZ3RoPnJlJiZVaS5wdXNoKEF0LnNsaWNlKHJlLVopKSxaKz1BdC5sZW5ndGg7YnJlYWs7Y2FzZSAxOmJyZWFrIGU7Y2FzZSA4MjpGPTIsc2UodC5nZXRUb2tlblZhbHVlKCkpO2JyZWFrO2Nhc2UgMTk6Rj0yO2xldCBQbj10LmdldFRva2VuRnVsbFN0YXJ0KCksc249dC5nZXRUb2tlbkVuZCgpLTEsQXI9dmYoc24pO2lmKEFyKXttaXx8YmYoVWkpLGdhLnB1c2goTSh5LmNyZWF0ZUpTRG9jVGV4dChVaS5qb2luKFwiXCIpKSxtaT8/aWUsUG4pKSxnYS5wdXNoKEFyKSxVaT1bXSxtaT10LmdldFRva2VuRW5kKCk7YnJlYWt9ZGVmYXVsdDpGPTIsc2UodC5nZXRUb2tlblRleHQoKSk7YnJlYWt9Rj09PTI/YmUoITEpOmZlKCl9bGV0IGNlPW5fKFVpLmpvaW4oXCJcIikpO2dhLmxlbmd0aCYmY2UubGVuZ3RoJiZnYS5wdXNoKE0oeS5jcmVhdGVKU0RvY1RleHQoY2UpLG1pPz9pZSxoaSkpLGdhLmxlbmd0aCYmUnQmJk4uYXNzZXJ0SXNEZWZpbmVkKGhpLFwiaGF2aW5nIHBhcnNlZCB0YWdzIGltcGxpZXMgdGhhdCB0aGUgZW5kIG9mIHRoZSBjb21tZW50IHNwYW4gc2hvdWxkIGJlIHNldFwiKTtsZXQgTWU9UnQmJkZ0KFJ0LEdyLGRpKTtyZXR1cm4gTSh5LmNyZWF0ZUpTRG9jQ29tbWVudChnYS5sZW5ndGg/RnQoZ2EsaWUsaGkpOmNlLmxlbmd0aD9jZTp2b2lkIDAsTWUpLGllLFVlKX1mdW5jdGlvbiBiZihGKXtmb3IoO0YubGVuZ3RoJiYoRlswXT09PWBcbmB8fEZbMF09PT1cIlxcclwiKTspRi5zaGlmdCgpfWZ1bmN0aW9uIHFoKEYpe2Zvcig7Ri5sZW5ndGg7KXtsZXQgcmU9bl8oRltGLmxlbmd0aC0xXSk7aWYocmU9PT1cIlwiKUYucG9wKCk7ZWxzZSBpZihyZS5sZW5ndGg8RltGLmxlbmd0aC0xXS5sZW5ndGgpe0ZbRi5sZW5ndGgtMV09cmU7YnJlYWt9ZWxzZSBicmVha319ZnVuY3Rpb24gT2UoKXtmb3IoOzspe2lmKGZlKCksZigpPT09MSlyZXR1cm4hMDtpZighKGYoKT09PTV8fGYoKT09PTQpKXJldHVybiExfX1mdW5jdGlvbiBYZSgpe2lmKCEoKGYoKT09PTV8fGYoKT09PTQpJiZUZShPZSkpKWZvcig7ZigpPT09NXx8ZigpPT09NDspZmUoKX1mdW5jdGlvbiBDcigpe2lmKChmKCk9PT01fHxmKCk9PT00KSYmVGUoT2UpKXJldHVyblwiXCI7bGV0IEY9dC5oYXNQcmVjZWRpbmdMaW5lQnJlYWsoKSxyZT0hMSxaPVwiXCI7Zm9yKDtGJiZmKCk9PT00Mnx8ZigpPT09NXx8ZigpPT09NDspWis9dC5nZXRUb2tlblRleHQoKSxmKCk9PT00PyhGPSEwLHJlPSEwLFo9XCJcIik6ZigpPT09NDImJihGPSExKSxmZSgpO3JldHVybiByZT9aOlwiXCJ9ZnVuY3Rpb24gVG8oRil7Ti5hc3NlcnQoZigpPT09NjApO2xldCByZT10LmdldFRva2VuU3RhcnQoKTtmZSgpO2xldCBaPUdhKHZvaWQgMCksc2U9Q3IoKSxjZTtzd2l0Y2goWi5lc2NhcGVkVGV4dCl7Y2FzZVwiYXV0aG9yXCI6Y2U9aTUocmUsWixGLHNlKTticmVhaztjYXNlXCJpbXBsZW1lbnRzXCI6Y2U9bzUocmUsWixGLHNlKTticmVhaztjYXNlXCJhdWdtZW50c1wiOmNhc2VcImV4dGVuZHNcIjpjZT1zNShyZSxaLEYsc2UpO2JyZWFrO2Nhc2VcImNsYXNzXCI6Y2FzZVwiY29uc3RydWN0b3JcIjpjZT1TbyhyZSx5LmNyZWF0ZUpTRG9jQ2xhc3NUYWcsWixGLHNlKTticmVhaztjYXNlXCJwdWJsaWNcIjpjZT1TbyhyZSx5LmNyZWF0ZUpTRG9jUHVibGljVGFnLFosRixzZSk7YnJlYWs7Y2FzZVwicHJpdmF0ZVwiOmNlPVNvKHJlLHkuY3JlYXRlSlNEb2NQcml2YXRlVGFnLFosRixzZSk7YnJlYWs7Y2FzZVwicHJvdGVjdGVkXCI6Y2U9U28ocmUseS5jcmVhdGVKU0RvY1Byb3RlY3RlZFRhZyxaLEYsc2UpO2JyZWFrO2Nhc2VcInJlYWRvbmx5XCI6Y2U9U28ocmUseS5jcmVhdGVKU0RvY1JlYWRvbmx5VGFnLFosRixzZSk7YnJlYWs7Y2FzZVwib3ZlcnJpZGVcIjpjZT1TbyhyZSx5LmNyZWF0ZUpTRG9jT3ZlcnJpZGVUYWcsWixGLHNlKTticmVhaztjYXNlXCJkZXByZWNhdGVkXCI6cW49ITAsY2U9U28ocmUseS5jcmVhdGVKU0RvY0RlcHJlY2F0ZWRUYWcsWixGLHNlKTticmVhaztjYXNlXCJ0aGlzXCI6Y2U9bDUocmUsWixGLHNlKTticmVhaztjYXNlXCJlbnVtXCI6Y2U9dTUocmUsWixGLHNlKTticmVhaztjYXNlXCJhcmdcIjpjYXNlXCJhcmd1bWVudFwiOmNhc2VcInBhcmFtXCI6cmV0dXJuIGRlKHJlLFosMixGKTtjYXNlXCJyZXR1cm5cIjpjYXNlXCJyZXR1cm5zXCI6Y2U9RXIocmUsWixGLHNlKTticmVhaztjYXNlXCJ0ZW1wbGF0ZVwiOmNlPU5iKHJlLFosRixzZSk7YnJlYWs7Y2FzZVwidHlwZVwiOmNlPSRuKHJlLFosRixzZSk7YnJlYWs7Y2FzZVwidHlwZWRlZlwiOmNlPXA1KHJlLFosRixzZSk7YnJlYWs7Y2FzZVwiY2FsbGJhY2tcIjpjZT1kNShyZSxaLEYsc2UpO2JyZWFrO2Nhc2VcIm92ZXJsb2FkXCI6Y2U9bTUocmUsWixGLHNlKTticmVhaztjYXNlXCJzYXRpc2ZpZXNcIjpjZT1fNShyZSxaLEYsc2UpO2JyZWFrO2Nhc2VcInNlZVwiOmNlPXlpKHJlLFosRixzZSk7YnJlYWs7Y2FzZVwiZXhjZXB0aW9uXCI6Y2FzZVwidGhyb3dzXCI6Y2U9VnMocmUsWixGLHNlKTticmVhaztkZWZhdWx0OmNlPXMocmUsWixGLHNlKTticmVha31yZXR1cm4gY2V9ZnVuY3Rpb24gbHIoRixyZSxaLHNlKXtyZXR1cm4gc2V8fChaKz1yZS1GKSxvbihaLHNlLnNsaWNlKFopKX1mdW5jdGlvbiBvbihGLHJlKXtsZXQgWj1UKCksc2U9W10sY2U9W10sTWUsemU9MCxBdDtmdW5jdGlvbiBQbihRbil7QXR8fChBdD1GKSxzZS5wdXNoKFFuKSxGKz1Rbi5sZW5ndGh9cmUhPT12b2lkIDAmJihyZSE9PVwiXCImJlBuKHJlKSx6ZT0xKTtsZXQgc249ZigpO2U6Zm9yKDs7KXtzd2l0Y2goc24pe2Nhc2UgNDp6ZT0wLHNlLnB1c2godC5nZXRUb2tlblRleHQoKSksRj0wO2JyZWFrO2Nhc2UgNjA6dC5yZXNldFRva2VuU3RhdGUodC5nZXRUb2tlbkVuZCgpLTEpO2JyZWFrIGU7Y2FzZSAxOmJyZWFrIGU7Y2FzZSA1Ok4uYXNzZXJ0KHplIT09MiYmemUhPT0zLFwid2hpdGVzcGFjZSBzaG91bGRuJ3QgY29tZSBmcm9tIHRoZSBzY2FubmVyIHdoaWxlIHNhdmluZyBjb21tZW50IHRleHRcIik7bGV0IFFuPXQuZ2V0VG9rZW5UZXh0KCk7QXQhPT12b2lkIDAmJkYrUW4ubGVuZ3RoPkF0JiYoc2UucHVzaChRbi5zbGljZShBdC1GKSksemU9MiksRis9UW4ubGVuZ3RoO2JyZWFrO2Nhc2UgMTk6emU9MjtsZXQgVGY9dC5nZXRUb2tlbkZ1bGxTdGFydCgpLEhzPXQuZ2V0VG9rZW5FbmQoKS0xLFNmPXZmKEhzKTtTZj8oY2UucHVzaChNKHkuY3JlYXRlSlNEb2NUZXh0KHNlLmpvaW4oXCJcIikpLE1lPz9aLFRmKSksY2UucHVzaChTZiksc2U9W10sTWU9dC5nZXRUb2tlbkVuZCgpKTpQbih0LmdldFRva2VuVGV4dCgpKTticmVhaztjYXNlIDYyOnplPT09Mz96ZT0yOnplPTMsUG4odC5nZXRUb2tlblRleHQoKSk7YnJlYWs7Y2FzZSA4Mjp6ZSE9PTMmJih6ZT0yKSxQbih0LmdldFRva2VuVmFsdWUoKSk7YnJlYWs7Y2FzZSA0MjppZih6ZT09PTApe3plPTEsRis9MTticmVha31kZWZhdWx0OnplIT09MyYmKHplPTIpLFBuKHQuZ2V0VG9rZW5UZXh0KCkpO2JyZWFrfXplPT09Mnx8emU9PT0zP3NuPWJlKHplPT09Myk6c249ZmUoKX1iZihzZSk7bGV0IEFyPW5fKHNlLmpvaW4oXCJcIikpO2lmKGNlLmxlbmd0aClyZXR1cm4gQXIubGVuZ3RoJiZjZS5wdXNoKE0oeS5jcmVhdGVKU0RvY1RleHQoQXIpLE1lPz9aKSksRnQoY2UsWix0LmdldFRva2VuRW5kKCkpO2lmKEFyLmxlbmd0aClyZXR1cm4gQXJ9ZnVuY3Rpb24gdmYoRil7bGV0IHJlPWZ0KG4pO2lmKCFyZSlyZXR1cm47ZmUoKSxYZSgpO2xldCBaPVQoKSxzZT1rdChmKCkpP2xhKCEwKTp2b2lkIDA7aWYoc2UpZm9yKDtmKCk9PT04MTspWWUoKSxmZSgpLHNlPU0oeS5jcmVhdGVKU0RvY01lbWJlck5hbWUoc2UsTHQoKSksWik7bGV0IGNlPVtdO2Zvcig7ZigpIT09MjAmJmYoKSE9PTQmJmYoKSE9PTE7KWNlLnB1c2godC5nZXRUb2tlblRleHQoKSksZmUoKTtsZXQgTWU9cmU9PT1cImxpbmtcIj95LmNyZWF0ZUpTRG9jTGluazpyZT09PVwibGlua2NvZGVcIj95LmNyZWF0ZUpTRG9jTGlua0NvZGU6eS5jcmVhdGVKU0RvY0xpbmtQbGFpbjtyZXR1cm4gTShNZShzZSxjZS5qb2luKFwiXCIpKSxGLHQuZ2V0VG9rZW5FbmQoKSl9ZnVuY3Rpb24gbigpe2lmKENyKCksZigpPT09MTkmJmZlKCk9PT02MCYma3QoZmUoKSkpe2xldCBGPXQuZ2V0VG9rZW5WYWx1ZSgpO2lmKG8oRikpcmV0dXJuIEZ9fWZ1bmN0aW9uIG8oRil7cmV0dXJuIEY9PT1cImxpbmtcInx8Rj09PVwibGlua2NvZGVcInx8Rj09PVwibGlua3BsYWluXCJ9ZnVuY3Rpb24gcyhGLHJlLFosc2Upe3JldHVybiBNKHkuY3JlYXRlSlNEb2NVbmtub3duVGFnKHJlLGxyKEYsVCgpLFosc2UpKSxGKX1mdW5jdGlvbiB1KEYpe0YmJihSdD9SdC5wdXNoKEYpOihSdD1bRl0sR3I9Ri5wb3MpLGRpPUYuZW5kKX1mdW5jdGlvbiBnKCl7cmV0dXJuIENyKCksZigpPT09MTk/YigpOnZvaWQgMH1mdW5jdGlvbiBJKCl7bGV0IEY9eG8oMjMpO0YmJlhlKCk7bGV0IHJlPXhvKDYyKSxaPVQ1KCk7cmV0dXJuIHJlJiZlMSg2MiksRiYmKFhlKCksZHQoNjQpJiZKdCgpLEgoMjQpKSx7bmFtZTpaLGlzQnJhY2tldGVkOkZ9fWZ1bmN0aW9uIFcoRil7c3dpdGNoKEYua2luZCl7Y2FzZSAxNTE6cmV0dXJuITA7Y2FzZSAxODg6cmV0dXJuIFcoRi5lbGVtZW50VHlwZSk7ZGVmYXVsdDpyZXR1cm4gUl8oRikmJkVlKEYudHlwZU5hbWUpJiZGLnR5cGVOYW1lLmVzY2FwZWRUZXh0PT09XCJPYmplY3RcIiYmIUYudHlwZUFyZ3VtZW50c319ZnVuY3Rpb24gZGUoRixyZSxaLHNlKXtsZXQgY2U9ZygpLE1lPSFjZTtDcigpO2xldHtuYW1lOnplLGlzQnJhY2tldGVkOkF0fT1JKCksUG49Q3IoKTtNZSYmIVRlKG4pJiYoY2U9ZygpKTtsZXQgc249bHIoRixUKCksc2UsUG4pLEFyPVdlKGNlLHplLFosc2UpO0FyJiYoY2U9QXIsTWU9ITApO2xldCBRbj1aPT09MT95LmNyZWF0ZUpTRG9jUHJvcGVydHlUYWcocmUsemUsQXQsY2UsTWUsc24pOnkuY3JlYXRlSlNEb2NQYXJhbWV0ZXJUYWcocmUsemUsQXQsY2UsTWUsc24pO3JldHVybiBNKFFuLEYpfWZ1bmN0aW9uIFdlKEYscmUsWixzZSl7aWYoRiYmVyhGLnR5cGUpKXtsZXQgY2U9VCgpLE1lLHplO2Zvcig7TWU9ZnQoKCk9PldoKFosc2UscmUpKTspTWUua2luZD09PTM0OHx8TWUua2luZD09PTM1NT96ZT14dCh6ZSxNZSk6TWUua2luZD09PTM1MiYmTHIoTWUudGFnTmFtZSxVLkFfSlNEb2NfdGVtcGxhdGVfdGFnX21heV9ub3RfZm9sbG93X2FfdHlwZWRlZl9jYWxsYmFja19vcl9vdmVybG9hZF90YWcpO2lmKHplKXtsZXQgQXQ9TSh5LmNyZWF0ZUpTRG9jVHlwZUxpdGVyYWwoemUsRi50eXBlLmtpbmQ9PT0xODgpLGNlKTtyZXR1cm4gTSh5LmNyZWF0ZUpTRG9jVHlwZUV4cHJlc3Npb24oQXQpLGNlKX19fWZ1bmN0aW9uIEVyKEYscmUsWixzZSl7bXQoUnQsUjYpJiZNdChyZS5wb3MsdC5nZXRUb2tlblN0YXJ0KCksVS5fMF90YWdfYWxyZWFkeV9zcGVjaWZpZWQsVm8ocmUuZXNjYXBlZFRleHQpKTtsZXQgY2U9ZygpO3JldHVybiBNKHkuY3JlYXRlSlNEb2NSZXR1cm5UYWcocmUsY2UsbHIoRixUKCksWixzZSkpLEYpfWZ1bmN0aW9uICRuKEYscmUsWixzZSl7bXQoUnQsbHUpJiZNdChyZS5wb3MsdC5nZXRUb2tlblN0YXJ0KCksVS5fMF90YWdfYWxyZWFkeV9zcGVjaWZpZWQsVm8ocmUuZXNjYXBlZFRleHQpKTtsZXQgY2U9YighMCksTWU9WiE9PXZvaWQgMCYmc2UhPT12b2lkIDA/bHIoRixUKCksWixzZSk6dm9pZCAwO3JldHVybiBNKHkuY3JlYXRlSlNEb2NUeXBlVGFnKHJlLGNlLE1lKSxGKX1mdW5jdGlvbiB5aShGLHJlLFosc2Upe2xldCBNZT1mKCk9PT0yM3x8VGUoKCk9PmZlKCk9PT02MCYma3QoZmUoKSkmJm8odC5nZXRUb2tlblZhbHVlKCkpKT92b2lkIDA6dygpLHplPVohPT12b2lkIDAmJnNlIT09dm9pZCAwP2xyKEYsVCgpLFosc2UpOnZvaWQgMDtyZXR1cm4gTSh5LmNyZWF0ZUpTRG9jU2VlVGFnKHJlLE1lLHplKSxGKX1mdW5jdGlvbiBWcyhGLHJlLFosc2Upe2xldCBjZT1nKCksTWU9bHIoRixUKCksWixzZSk7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY1Rocm93c1RhZyhyZSxjZSxNZSksRil9ZnVuY3Rpb24gaTUoRixyZSxaLHNlKXtsZXQgY2U9VCgpLE1lPWE1KCksemU9dC5nZXRUb2tlbkZ1bGxTdGFydCgpLEF0PWxyKEYsemUsWixzZSk7QXR8fCh6ZT10LmdldFRva2VuRnVsbFN0YXJ0KCkpO2xldCBQbj10eXBlb2YgQXQhPVwic3RyaW5nXCI/RnQoeV8oW00oTWUsY2UsemUpXSxBdCksY2UpOk1lLnRleHQrQXQ7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY0F1dGhvclRhZyhyZSxQbiksRil9ZnVuY3Rpb24gYTUoKXtsZXQgRj1bXSxyZT0hMSxaPXQuZ2V0VG9rZW4oKTtmb3IoO1ohPT0xJiZaIT09NDspe2lmKFo9PT0zMClyZT0hMDtlbHNle2lmKFo9PT02MCYmIXJlKWJyZWFrO2lmKFo9PT0zMiYmcmUpe0YucHVzaCh0LmdldFRva2VuVGV4dCgpKSx0LnJlc2V0VG9rZW5TdGF0ZSh0LmdldFRva2VuRW5kKCkpO2JyZWFrfX1GLnB1c2godC5nZXRUb2tlblRleHQoKSksWj1mZSgpfXJldHVybiB5LmNyZWF0ZUpTRG9jVGV4dChGLmpvaW4oXCJcIikpfWZ1bmN0aW9uIG81KEYscmUsWixzZSl7bGV0IGNlPVBiKCk7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY0ltcGxlbWVudHNUYWcocmUsY2UsbHIoRixUKCksWixzZSkpLEYpfWZ1bmN0aW9uIHM1KEYscmUsWixzZSl7bGV0IGNlPVBiKCk7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY0F1Z21lbnRzVGFnKHJlLGNlLGxyKEYsVCgpLFosc2UpKSxGKX1mdW5jdGlvbiBfNShGLHJlLFosc2Upe2xldCBjZT1iKCExKSxNZT1aIT09dm9pZCAwJiZzZSE9PXZvaWQgMD9scihGLFQoKSxaLHNlKTp2b2lkIDA7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY1NhdGlzZmllc1RhZyhyZSxjZSxNZSksRil9ZnVuY3Rpb24gUGIoKXtsZXQgRj1qZSgxOSkscmU9VCgpLFo9YzUoKTt0LnNldEluSlNEb2NUeXBlKCEwKTtsZXQgc2U9cXMoKTt0LnNldEluSlNEb2NUeXBlKCExKTtsZXQgY2U9eS5jcmVhdGVFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHMoWixzZSksTWU9TShjZSxyZSk7cmV0dXJuIEYmJkgoMjApLE1lfWZ1bmN0aW9uIGM1KCl7bGV0IEY9VCgpLHJlPUdhKCk7Zm9yKDtqZSgyNSk7KXtsZXQgWj1HYSgpO3JlPU0oYWUocmUsWiksRil9cmV0dXJuIHJlfWZ1bmN0aW9uIFNvKEYscmUsWixzZSxjZSl7cmV0dXJuIE0ocmUoWixscihGLFQoKSxzZSxjZSkpLEYpfWZ1bmN0aW9uIGw1KEYscmUsWixzZSl7bGV0IGNlPWIoITApO3JldHVybiBYZSgpLE0oeS5jcmVhdGVKU0RvY1RoaXNUYWcocmUsY2UsbHIoRixUKCksWixzZSkpLEYpfWZ1bmN0aW9uIHU1KEYscmUsWixzZSl7bGV0IGNlPWIoITApO3JldHVybiBYZSgpLE0oeS5jcmVhdGVKU0RvY0VudW1UYWcocmUsY2UsbHIoRixUKCksWixzZSkpLEYpfWZ1bmN0aW9uIHA1KEYscmUsWixzZSl7bGV0IGNlPWcoKTtDcigpO2xldCBNZT16aCgpO1hlKCk7bGV0IHplPW9uKFopLEF0O2lmKCFjZXx8VyhjZS50eXBlKSl7bGV0IHNuLEFyLFFuLFRmPSExO2Zvcig7KHNuPWZ0KCgpPT55NShaKSkpJiZzbi5raW5kIT09MzUyOylpZihUZj0hMCxzbi5raW5kPT09MzUxKWlmKEFyKXtsZXQgSHM9SmUoVS5BX0pTRG9jX3R5cGVkZWZfY29tbWVudF9tYXlfbm90X2NvbnRhaW5fbXVsdGlwbGVfdHlwZV90YWdzKTtIcyYmbmwoSHMsQW8oc3IsMCwwLFUuVGhlX3RhZ193YXNfZmlyc3Rfc3BlY2lmaWVkX2hlcmUpKTticmVha31lbHNlIEFyPXNuO2Vsc2UgUW49eHQoUW4sc24pO2lmKFRmKXtsZXQgSHM9Y2UmJmNlLnR5cGUua2luZD09PTE4OCxTZj15LmNyZWF0ZUpTRG9jVHlwZUxpdGVyYWwoUW4sSHMpO2NlPUFyJiZBci50eXBlRXhwcmVzc2lvbiYmIVcoQXIudHlwZUV4cHJlc3Npb24udHlwZSk/QXIudHlwZUV4cHJlc3Npb246TShTZixGKSxBdD1jZS5lbmR9fUF0PUF0fHx6ZSE9PXZvaWQgMD9UKCk6KE1lPz9jZT8/cmUpLmVuZCx6ZXx8KHplPWxyKEYsQXQsWixzZSkpO2xldCBQbj15LmNyZWF0ZUpTRG9jVHlwZWRlZlRhZyhyZSxjZSxNZSx6ZSk7cmV0dXJuIE0oUG4sRixBdCl9ZnVuY3Rpb24gemgoRil7bGV0IHJlPXQuZ2V0VG9rZW5TdGFydCgpO2lmKCFrdChmKCkpKXJldHVybjtsZXQgWj1HYSgpO2lmKGplKDI1KSl7bGV0IHNlPXpoKCEwKSxjZT15LmNyZWF0ZU1vZHVsZURlY2xhcmF0aW9uKHZvaWQgMCxaLHNlLEY/ODp2b2lkIDApO3JldHVybiBNKGNlLHJlKX1yZXR1cm4gRiYmKFouZmxhZ3N8PTQwOTYpLFp9ZnVuY3Rpb24gZjUoRil7bGV0IHJlPVQoKSxaLHNlO2Zvcig7Wj1mdCgoKT0+V2goNCxGKSk7KXtpZihaLmtpbmQ9PT0zNTIpe0xyKFoudGFnTmFtZSxVLkFfSlNEb2NfdGVtcGxhdGVfdGFnX21heV9ub3RfZm9sbG93X2FfdHlwZWRlZl9jYWxsYmFja19vcl9vdmVybG9hZF90YWcpO2JyZWFrfXNlPXh0KHNlLFopfXJldHVybiBGdChzZXx8W10scmUpfWZ1bmN0aW9uIEliKEYscmUpe2xldCBaPWY1KHJlKSxzZT1mdCgoKT0+e2lmKHhvKDYwKSl7bGV0IGNlPVRvKHJlKTtpZihjZSYmY2Uua2luZD09PTM0OSlyZXR1cm4gY2V9fSk7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY1NpZ25hdHVyZSh2b2lkIDAsWixzZSksRil9ZnVuY3Rpb24gZDUoRixyZSxaLHNlKXtsZXQgY2U9emgoKTtYZSgpO2xldCBNZT1vbihaKSx6ZT1JYihGLFopO01lfHwoTWU9bHIoRixUKCksWixzZSkpO2xldCBBdD1NZSE9PXZvaWQgMD9UKCk6emUuZW5kO3JldHVybiBNKHkuY3JlYXRlSlNEb2NDYWxsYmFja1RhZyhyZSx6ZSxjZSxNZSksRixBdCl9ZnVuY3Rpb24gbTUoRixyZSxaLHNlKXtYZSgpO2xldCBjZT1vbihaKSxNZT1JYihGLFopO2NlfHwoY2U9bHIoRixUKCksWixzZSkpO2xldCB6ZT1jZSE9PXZvaWQgMD9UKCk6TWUuZW5kO3JldHVybiBNKHkuY3JlYXRlSlNEb2NPdmVybG9hZFRhZyhyZSxNZSxjZSksRix6ZSl9ZnVuY3Rpb24gaDUoRixyZSl7Zm9yKDshRWUoRil8fCFFZShyZSk7KWlmKCFFZShGKSYmIUVlKHJlKSYmRi5yaWdodC5lc2NhcGVkVGV4dD09PXJlLnJpZ2h0LmVzY2FwZWRUZXh0KUY9Ri5sZWZ0LHJlPXJlLmxlZnQ7ZWxzZSByZXR1cm4hMTtyZXR1cm4gRi5lc2NhcGVkVGV4dD09PXJlLmVzY2FwZWRUZXh0fWZ1bmN0aW9uIHk1KEYpe3JldHVybiBXaCgxLEYpfWZ1bmN0aW9uIFdoKEYscmUsWil7bGV0IHNlPSEwLGNlPSExO2Zvcig7Oylzd2l0Y2goZmUoKSl7Y2FzZSA2MDppZihzZSl7bGV0IE1lPWc1KEYscmUpO3JldHVybiBNZSYmKE1lLmtpbmQ9PT0zNDh8fE1lLmtpbmQ9PT0zNTUpJiZaJiYoRWUoTWUubmFtZSl8fCFoNShaLE1lLm5hbWUubGVmdCkpPyExOk1lfWNlPSExO2JyZWFrO2Nhc2UgNDpzZT0hMCxjZT0hMTticmVhaztjYXNlIDQyOmNlJiYoc2U9ITEpLGNlPSEwO2JyZWFrO2Nhc2UgODA6c2U9ITE7YnJlYWs7Y2FzZSAxOnJldHVybiExfX1mdW5jdGlvbiBnNShGLHJlKXtOLmFzc2VydChmKCk9PT02MCk7bGV0IFo9dC5nZXRUb2tlbkZ1bGxTdGFydCgpO2ZlKCk7bGV0IHNlPUdhKCksY2U9Q3IoKSxNZTtzd2l0Y2goc2UuZXNjYXBlZFRleHQpe2Nhc2VcInR5cGVcIjpyZXR1cm4gRj09PTEmJiRuKFosc2UpO2Nhc2VcInByb3BcIjpjYXNlXCJwcm9wZXJ0eVwiOk1lPTE7YnJlYWs7Y2FzZVwiYXJnXCI6Y2FzZVwiYXJndW1lbnRcIjpjYXNlXCJwYXJhbVwiOk1lPTY7YnJlYWs7Y2FzZVwidGVtcGxhdGVcIjpyZXR1cm4gTmIoWixzZSxyZSxjZSk7ZGVmYXVsdDpyZXR1cm4hMX1yZXR1cm4gRiZNZT9kZShaLHNlLEYscmUpOiExfWZ1bmN0aW9uIGI1KCl7bGV0IEY9VCgpLHJlPXhvKDIzKTtyZSYmWGUoKTtsZXQgWj1HYShVLlVuZXhwZWN0ZWRfdG9rZW5fQV90eXBlX3BhcmFtZXRlcl9uYW1lX3dhc19leHBlY3RlZF93aXRob3V0X2N1cmx5X2JyYWNlcyksc2U7aWYocmUmJihYZSgpLEgoNjQpLHNlPWtlKDE2Nzc3MjE2LHhzKSxIKDI0KSksIXppKFopKXJldHVybiBNKHkuY3JlYXRlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uKHZvaWQgMCxaLHZvaWQgMCxzZSksRil9ZnVuY3Rpb24gdjUoKXtsZXQgRj1UKCkscmU9W107ZG97WGUoKTtsZXQgWj1iNSgpO1ohPT12b2lkIDAmJnJlLnB1c2goWiksQ3IoKX13aGlsZSh4bygyOCkpO3JldHVybiBGdChyZSxGKX1mdW5jdGlvbiBOYihGLHJlLFosc2Upe2xldCBjZT1mKCk9PT0xOT9iKCk6dm9pZCAwLE1lPXY1KCk7cmV0dXJuIE0oeS5jcmVhdGVKU0RvY1RlbXBsYXRlVGFnKHJlLGNlLE1lLGxyKEYsVCgpLFosc2UpKSxGKX1mdW5jdGlvbiB4byhGKXtyZXR1cm4gZigpPT09Rj8oZmUoKSwhMCk6ITF9ZnVuY3Rpb24gVDUoKXtsZXQgRj1HYSgpO2ZvcihqZSgyMykmJkgoMjQpO2plKDI1KTspe2xldCByZT1HYSgpO2plKDIzKSYmSCgyNCksRj1vMShGLHJlKX1yZXR1cm4gRn1mdW5jdGlvbiBHYShGKXtpZigha3QoZigpKSlyZXR1cm4gSnIoODAsIUYsRnx8VS5JZGVudGlmaWVyX2V4cGVjdGVkKTtPcisrO2xldCByZT10LmdldFRva2VuU3RhcnQoKSxaPXQuZ2V0VG9rZW5FbmQoKSxzZT1mKCksY2U9c2EodC5nZXRUb2tlblZhbHVlKCkpLE1lPU0oRyhjZSxzZSkscmUsWik7cmV0dXJuIGZlKCksTWV9fX0pKGdmPWUuSlNEb2NQYXJzZXJ8fChlLkpTRG9jUGFyc2VyPXt9KSl9KShabnx8KFpuPXt9KSksKGU9PntmdW5jdGlvbiB0KGssTCxHLEspe2lmKEs9S3x8Ti5zaG91bGRBc3NlcnQoMikseShrLEwsRyxLKSxDNChHKSlyZXR1cm4gaztpZihrLnN0YXRlbWVudHMubGVuZ3RoPT09MClyZXR1cm4gWm4ucGFyc2VTb3VyY2VGaWxlKGsuZmlsZU5hbWUsTCxrLmxhbmd1YWdlVmVyc2lvbix2b2lkIDAsITAsay5zY3JpcHRLaW5kLGsuc2V0RXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3IpO2xldCB1ZT1rO04uYXNzZXJ0KCF1ZS5oYXNCZWVuSW5jcmVtZW50YWxseVBhcnNlZCksdWUuaGFzQmVlbkluY3JlbWVudGFsbHlQYXJzZWQ9ITAsWm4uZml4dXBQYXJlbnRSZWZlcmVuY2VzKHVlKTtsZXQgWT1rLnRleHQsQj1DKGspLGFlPWwoayxHKTt5KGssTCxhZSxLKSxOLmFzc2VydChhZS5zcGFuLnN0YXJ0PD1HLnNwYW4uc3RhcnQpLE4uYXNzZXJ0KEt0KGFlLnNwYW4pPT09S3QoRy5zcGFuKSksTi5hc3NlcnQoS3QoUXMoYWUpKT09PUt0KFFzKEcpKSk7bGV0IENlPVFzKGFlKS5sZW5ndGgtYWUuc3Bhbi5sZW5ndGg7aCh1ZSxhZS5zcGFuLnN0YXJ0LEt0KGFlLnNwYW4pLEt0KFFzKGFlKSksQ2UsWSxMLEspO2xldCBaZT1abi5wYXJzZVNvdXJjZUZpbGUoay5maWxlTmFtZSxMLGsubGFuZ3VhZ2VWZXJzaW9uLEIsITAsay5zY3JpcHRLaW5kLGsuc2V0RXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3IpO3JldHVybiBaZS5jb21tZW50RGlyZWN0aXZlcz1yKGsuY29tbWVudERpcmVjdGl2ZXMsWmUuY29tbWVudERpcmVjdGl2ZXMsYWUuc3Bhbi5zdGFydCxLdChhZS5zcGFuKSxDZSxZLEwsSyksWmUuaW1wbGllZE5vZGVGb3JtYXQ9ay5pbXBsaWVkTm9kZUZvcm1hdCxaZX1lLnVwZGF0ZVNvdXJjZUZpbGU9dDtmdW5jdGlvbiByKGssTCxHLEssdWUsWSxCLGFlKXtpZighaylyZXR1cm4gTDtsZXQgQ2UsWmU9ITE7Zm9yKGxldCBydCBvZiBrKXtsZXR7cmFuZ2U6aXQsdHlwZTpJcn09cnQ7aWYoaXQuZW5kPEcpQ2U9eHQoQ2UscnQpO2Vsc2UgaWYoaXQucG9zPkspe3FlKCk7bGV0IGFyPXtyYW5nZTp7cG9zOml0LnBvcyt1ZSxlbmQ6aXQuZW5kK3VlfSx0eXBlOklyfTtDZT14dChDZSxhciksYWUmJk4uYXNzZXJ0KFkuc3Vic3RyaW5nKGl0LnBvcyxpdC5lbmQpPT09Qi5zdWJzdHJpbmcoYXIucmFuZ2UucG9zLGFyLnJhbmdlLmVuZCkpfX1yZXR1cm4gcWUoKSxDZTtmdW5jdGlvbiBxZSgpe1plfHwoWmU9ITAsQ2U/TCYmQ2UucHVzaCguLi5MKTpDZT1MKX19ZnVuY3Rpb24gYShrLEwsRyxLLHVlLFkpe0w/YWUoayk6QihrKTtyZXR1cm47ZnVuY3Rpb24gQihDZSl7bGV0IFplPVwiXCI7aWYoWSYmXyhDZSkmJihaZT1LLnN1YnN0cmluZyhDZS5wb3MsQ2UuZW5kKSksQ2UuX2NoaWxkcmVuJiYoQ2UuX2NoaWxkcmVuPXZvaWQgMCksWWEoQ2UsQ2UucG9zK0csQ2UuZW5kK0cpLFkmJl8oQ2UpJiZOLmFzc2VydChaZT09PXVlLnN1YnN0cmluZyhDZS5wb3MsQ2UuZW5kKSksQnQoQ2UsQixhZSksV2koQ2UpKWZvcihsZXQgcWUgb2YgQ2UuanNEb2MpQihxZSk7ZChDZSxZKX1mdW5jdGlvbiBhZShDZSl7Q2UuX2NoaWxkcmVuPXZvaWQgMCxZYShDZSxDZS5wb3MrRyxDZS5lbmQrRyk7Zm9yKGxldCBaZSBvZiBDZSlCKFplKX19ZnVuY3Rpb24gXyhrKXtzd2l0Y2goay5raW5kKXtjYXNlIDExOmNhc2UgOTpjYXNlIDgwOnJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHAoayxMLEcsSyx1ZSl7Ti5hc3NlcnQoay5lbmQ+PUwsXCJBZGp1c3RpbmcgYW4gZWxlbWVudCB0aGF0IHdhcyBlbnRpcmVseSBiZWZvcmUgdGhlIGNoYW5nZSByYW5nZVwiKSxOLmFzc2VydChrLnBvczw9RyxcIkFkanVzdGluZyBhbiBlbGVtZW50IHRoYXQgd2FzIGVudGlyZWx5IGFmdGVyIHRoZSBjaGFuZ2UgcmFuZ2VcIiksTi5hc3NlcnQoay5wb3M8PWsuZW5kKTtsZXQgWT1NYXRoLm1pbihrLnBvcyxLKSxCPWsuZW5kPj1HP2suZW5kK3VlOk1hdGgubWluKGsuZW5kLEspO04uYXNzZXJ0KFk8PUIpLGsucGFyZW50JiYoTi5hc3NlcnRHcmVhdGVyVGhhbk9yRXF1YWwoWSxrLnBhcmVudC5wb3MpLE4uYXNzZXJ0TGVzc1RoYW5PckVxdWFsKEIsay5wYXJlbnQuZW5kKSksWWEoayxZLEIpfWZ1bmN0aW9uIGQoayxMKXtpZihMKXtsZXQgRz1rLnBvcyxLPXVlPT57Ti5hc3NlcnQodWUucG9zPj1HKSxHPXVlLmVuZH07aWYoV2koaykpZm9yKGxldCB1ZSBvZiBrLmpzRG9jKUsodWUpO0J0KGssSyksTi5hc3NlcnQoRzw9ay5lbmQpfX1mdW5jdGlvbiBoKGssTCxHLEssdWUsWSxCLGFlKXtDZShrKTtyZXR1cm47ZnVuY3Rpb24gQ2UocWUpe2lmKE4uYXNzZXJ0KHFlLnBvczw9cWUuZW5kKSxxZS5wb3M+Ryl7YShxZSwhMSx1ZSxZLEIsYWUpO3JldHVybn1sZXQgcnQ9cWUuZW5kO2lmKHJ0Pj1MKXtpZihxZS5pbnRlcnNlY3RzQ2hhbmdlPSEwLHFlLl9jaGlsZHJlbj12b2lkIDAscChxZSxMLEcsSyx1ZSksQnQocWUsQ2UsWmUpLFdpKHFlKSlmb3IobGV0IGl0IG9mIHFlLmpzRG9jKUNlKGl0KTtkKHFlLGFlKTtyZXR1cm59Ti5hc3NlcnQocnQ8TCl9ZnVuY3Rpb24gWmUocWUpe2lmKE4uYXNzZXJ0KHFlLnBvczw9cWUuZW5kKSxxZS5wb3M+Ryl7YShxZSwhMCx1ZSxZLEIsYWUpO3JldHVybn1sZXQgcnQ9cWUuZW5kO2lmKHJ0Pj1MKXtxZS5pbnRlcnNlY3RzQ2hhbmdlPSEwLHFlLl9jaGlsZHJlbj12b2lkIDAscChxZSxMLEcsSyx1ZSk7Zm9yKGxldCBpdCBvZiBxZSlDZShpdCk7cmV0dXJufU4uYXNzZXJ0KHJ0PEwpfX1mdW5jdGlvbiBsKGssTCl7bGV0IEs9TC5zcGFuLnN0YXJ0O2ZvcihsZXQgQj0wO0s+MCYmQjw9MTtCKyspe2xldCBhZT12KGssSyk7Ti5hc3NlcnQoYWUucG9zPD1LKTtsZXQgQ2U9YWUucG9zO0s9TWF0aC5tYXgoMCxDZS0xKX1sZXQgdWU9SGkoSyxLdChMLnNwYW4pKSxZPUwubmV3TGVuZ3RoKyhMLnNwYW4uc3RhcnQtSyk7cmV0dXJuIFhkKHVlLFkpfWZ1bmN0aW9uIHYoayxMKXtsZXQgRz1rLEs7aWYoQnQoayxZKSxLKXtsZXQgQj11ZShLKTtCLnBvcz5HLnBvcyYmKEc9Qil9cmV0dXJuIEc7ZnVuY3Rpb24gdWUoQil7Zm9yKDs7KXtsZXQgYWU9RFMoQik7aWYoYWUpQj1hZTtlbHNlIHJldHVybiBCfX1mdW5jdGlvbiBZKEIpe2lmKCF6aShCKSlpZihCLnBvczw9TCl7aWYoQi5wb3M+PUcucG9zJiYoRz1CKSxMPEIuZW5kKXJldHVybiBCdChCLFkpLCEwO04uYXNzZXJ0KEIuZW5kPD1MKSxLPUJ9ZWxzZSByZXR1cm4gTi5hc3NlcnQoQi5wb3M+TCksITB9fWZ1bmN0aW9uIHkoayxMLEcsSyl7bGV0IHVlPWsudGV4dDtpZihHJiYoTi5hc3NlcnQodWUubGVuZ3RoLUcuc3Bhbi5sZW5ndGgrRy5uZXdMZW5ndGg9PT1MLmxlbmd0aCksS3x8Ti5zaG91bGRBc3NlcnQoMykpKXtsZXQgWT11ZS5zdWJzdHIoMCxHLnNwYW4uc3RhcnQpLEI9TC5zdWJzdHIoMCxHLnNwYW4uc3RhcnQpO04uYXNzZXJ0KFk9PT1CKTtsZXQgYWU9dWUuc3Vic3RyaW5nKEt0KEcuc3BhbiksdWUubGVuZ3RoKSxDZT1MLnN1YnN0cmluZyhLdChRcyhHKSksTC5sZW5ndGgpO04uYXNzZXJ0KGFlPT09Q2UpfX1mdW5jdGlvbiBDKGspe2xldCBMPWsuc3RhdGVtZW50cyxHPTA7Ti5hc3NlcnQoRzxMLmxlbmd0aCk7bGV0IEs9TFtHXSx1ZT0tMTtyZXR1cm57Y3VycmVudE5vZGUoQil7cmV0dXJuIEIhPT11ZSYmKEsmJksuZW5kPT09QiYmRzxMLmxlbmd0aC0xJiYoRysrLEs9TFtHXSksKCFLfHxLLnBvcyE9PUIpJiZZKEIpKSx1ZT1CLE4uYXNzZXJ0KCFLfHxLLnBvcz09PUIpLEt9fTtmdW5jdGlvbiBZKEIpe0w9dm9pZCAwLEc9LTEsSz12b2lkIDAsQnQoayxhZSxDZSk7cmV0dXJuO2Z1bmN0aW9uIGFlKFplKXtyZXR1cm4gQj49WmUucG9zJiZCPFplLmVuZD8oQnQoWmUsYWUsQ2UpLCEwKTohMX1mdW5jdGlvbiBDZShaZSl7aWYoQj49WmUucG9zJiZCPFplLmVuZClmb3IobGV0IHFlPTA7cWU8WmUubGVuZ3RoO3FlKyspe2xldCBydD1aZVtxZV07aWYocnQpe2lmKHJ0LnBvcz09PUIpcmV0dXJuIEw9WmUsRz1xZSxLPXJ0LCEwO2lmKHJ0LnBvczxCJiZCPHJ0LmVuZClyZXR1cm4gQnQocnQsYWUsQ2UpLCEwfX1yZXR1cm4hMX19fWUuY3JlYXRlU3ludGF4Q3Vyc29yPUM7bGV0IFM7KGs9PntrW2suVmFsdWU9LTFdPVwiVmFsdWVcIn0pKFN8fChTPXt9KSl9KShXZnx8KFdmPXt9KSksVmY9bmV3IE1hcCxZOD0vXlxcL1xcL1xcL1xccyo8KFxcUyspXFxzLio/XFwvPi9pbSxLOD0vXlxcL1xcL1xcLz9cXHMqQChbXlxcczpdKykoLiopXFxzKiQvaW19fSksVmo9KCk9Pnt9LCRWPVZ0KHtcInNyYy9jb21waWxlci9wbnAudHNcIigpe1widXNlIHN0cmljdFwiO3I0KCl9fSksSGo9KCk9Pnt9LEdqPSgpPT57fSxYaj0oKT0+e30sJGo9KCk9Pnt9LFFqPSgpPT57fSxZaj0oKT0+e30sS2o9KCk9Pnt9LFpqPSgpPT57fSxlRj0oKT0+e30sdEY9KCk9Pnt9LHJGPSgpPT57fSxuRj0oKT0+e30saUY9KCk9Pnt9LGFGPSgpPT57fSxvRj0oKT0+e30sc0Y9KCk9Pnt9LF9GPSgpPT57fSxjRj0oKT0+e30sbEY9KCk9Pnt9LHVGPSgpPT57fSxwRj0oKT0+e30sZkY9KCk9Pnt9LGRGPSgpPT57fSxtRj0oKT0+e30saEY9KCk9Pnt9LHlGPSgpPT57fSxnRj0oKT0+e30sYkY9KCk9Pnt9LHZGPSgpPT57fSxURj0oKT0+e30sU0Y9KCk9Pnt9LHhGPSgpPT57fSx3Rj0oKT0+e30sQ0Y9KCk9Pnt9LEVGPSgpPT57fSxBRj0oKT0+e30sa0Y9KCk9Pnt9LERGPSgpPT57fSxQRj0oKT0+e30sSUY9KCk9Pnt9LE5GPSgpPT57fSxPRj0oKT0+e30sTUY9KCk9Pnt9LExGPSgpPT57fSxKRj0oKT0+e30sUkY9KCk9Pnt9LGpGPSgpPT57fSxEcj1WdCh7XCJzcmMvY29tcGlsZXIvX25hbWVzcGFjZXMvdHMudHNcIigpe1widXNlIHN0cmljdFwiO081KCksZkUoKSxIdigpLGRFKCksbUUoKSx5RSgpLHZFKCksJHYoKSxTRSgpLHI0KCksakUoKSxHRSgpLFJrKCkseEwoKSx3TCgpLENMKCksRUwoKSxGTCgpLEJMKCksVUwoKSxoUigpLERqKCksUGooKSxXaigpLFZqKCksSGooKSxHaigpLFhqKCksUWooKSxZaigpLEtqKCksWmooKSxlRigpLHRGKCksckYoKSxuRigpLGlGKCksYUYoKSxvRigpLHNGKCksX0YoKSxjRigpLGxGKCksdUYoKSxwRigpLGZGKCksZEYoKSxtRigpLGhGKCkseUYoKSxnRigpLGJGKCksdkYoKSxURigpLFNGKCkseEYoKSx3RigpLENGKCksRUYoKSxBRigpLGtGKCksREYoKSxQRigpLElGKCksTkYoKSxPRigpLE1GKCksTEYoKSxKRigpLFJGKCksakYoKSwkaigpLFh2KCl9fSksWjg9KCk9Pnt9LEZGPSgpPT57fSxlNz0oKT0+e30sRm8sZTc9KCk9PntIdigpLEZvPW5zKDk5LCEwKX0sQkY9KCk9Pnt9LHQ3PSgpPT57fSxVRj0oKT0+e30scUY9KCk9Pnt9LHpGPSgpPT57fSxXRj0oKT0+e30sVkY9KCk9Pnt9LEhGPSgpPT57fSxHRj0oKT0+e30sWEY9KCk9Pnt9LHI3PSgpPT57fSxuNz0oKT0+e30saTc9KCk9Pnt9LCRGPSgpPT57fTtmdW5jdGlvbiBhNyhlLHQscixhKXtsZXQgXz1xbChlKT9uZXcgTmQoZSx0LHIpOmU9PT04MD9uZXcgT2QoODAsdCxyKTplPT09ODE/bmV3IE1kKDgxLHQscik6bmV3IFc2KGUsdCxyKTtyZXR1cm4gXy5wYXJlbnQ9YSxfLmZsYWdzPWEuZmxhZ3MmMTAxNDQxNTM2LF99ZnVuY3Rpb24gUUYoZSx0KXtpZighcWwoZS5raW5kKSlyZXR1cm4gJGU7bGV0IHI9W107aWYoQzMoZSkpcmV0dXJuIGUuZm9yRWFjaENoaWxkKGQ9PntyLnB1c2goZCl9KSxyO0ZvLnNldFRleHQoKHR8fGUuZ2V0U291cmNlRmlsZSgpKS50ZXh0KTtsZXQgYT1lLnBvcyxfPWQ9PntobChyLGEsZC5wb3MsZSksci5wdXNoKGQpLGE9ZC5lbmR9LHA9ZD0+e2hsKHIsYSxkLnBvcyxlKSxyLnB1c2goWUYoZCxlKSksYT1kLmVuZH07cmV0dXJuIHlyKGUuanNEb2MsXyksYT1lLnBvcyxlLmZvckVhY2hDaGlsZChfLHApLGhsKHIsYSxlLmVuZCxlKSxGby5zZXRUZXh0KHZvaWQgMCkscn1mdW5jdGlvbiBobChlLHQscixhKXtmb3IoRm8ucmVzZXRUb2tlblN0YXRlKHQpO3Q8cjspe2xldCBfPUZvLnNjYW4oKSxwPUZvLmdldFRva2VuRW5kKCk7aWYocDw9cil7aWYoXz09PTgwKXtpZihjeChhKSljb250aW51ZTtOLmZhaWwoYERpZCBub3QgZXhwZWN0ICR7Ti5mb3JtYXRTeW50YXhLaW5kKGEua2luZCl9IHRvIGhhdmUgYW4gSWRlbnRpZmllciBpbiBpdHMgdHJpdmlhYCl9ZS5wdXNoKGE3KF8sdCxwLGEpKX1pZih0PXAsXz09PTEpYnJlYWt9fWZ1bmN0aW9uIFlGKGUsdCl7bGV0IHI9YTcoMzU4LGUucG9zLGUuZW5kLHQpO3IuX2NoaWxkcmVuPVtdO2xldCBhPWUucG9zO2ZvcihsZXQgXyBvZiBlKWhsKHIuX2NoaWxkcmVuLGEsXy5wb3MsdCksci5fY2hpbGRyZW4ucHVzaChfKSxhPV8uZW5kO3JldHVybiBobChyLl9jaGlsZHJlbixhLGUuZW5kLHQpLHJ9ZnVuY3Rpb24gbzcoZSl7cmV0dXJuIFVsKGUpLnNvbWUodD0+dC50YWdOYW1lLnRleHQ9PT1cImluaGVyaXREb2NcInx8dC50YWdOYW1lLnRleHQ9PT1cImluaGVyaXRkb2NcIil9ZnVuY3Rpb24ga2YoZSx0KXtpZighZSlyZXR1cm4gJGU7bGV0IHI9dHNfSnNEb2NfZXhwb3J0cy5nZXRKc0RvY1RhZ3NGcm9tRGVjbGFyYXRpb25zKGUsdCk7aWYodCYmKHIubGVuZ3RoPT09MHx8ZS5zb21lKG83KSkpe2xldCBhPW5ldyBTZXQ7Zm9yKGxldCBfIG9mIGUpe2xldCBwPXM3KHQsXyxkPT57dmFyIGg7aWYoIWEuaGFzKGQpKXJldHVybiBhLmFkZChkKSxfLmtpbmQ9PT0xNzd8fF8ua2luZD09PTE3OD9kLmdldENvbnRleHR1YWxKc0RvY1RhZ3MoXyx0KTooKGg9ZC5kZWNsYXJhdGlvbnMpPT1udWxsP3ZvaWQgMDpoLmxlbmd0aCk9PT0xP2QuZ2V0SnNEb2NUYWdzKCk6dm9pZCAwfSk7cCYmKHI9Wy4uLnAsLi4ucl0pfX1yZXR1cm4gcn1mdW5jdGlvbiBLYyhlLHQpe2lmKCFlKXJldHVybiAkZTtsZXQgcj10c19Kc0RvY19leHBvcnRzLmdldEpzRG9jQ29tbWVudHNGcm9tRGVjbGFyYXRpb25zKGUsdCk7aWYodCYmKHIubGVuZ3RoPT09MHx8ZS5zb21lKG83KSkpe2xldCBhPW5ldyBTZXQ7Zm9yKGxldCBfIG9mIGUpe2xldCBwPXM3KHQsXyxkPT57aWYoIWEuaGFzKGQpKXJldHVybiBhLmFkZChkKSxfLmtpbmQ9PT0xNzd8fF8ua2luZD09PTE3OD9kLmdldENvbnRleHR1YWxEb2N1bWVudGF0aW9uQ29tbWVudChfLHQpOmQuZ2V0RG9jdW1lbnRhdGlvbkNvbW1lbnQodCl9KTtwJiYocj1yLmxlbmd0aD09PTA/cC5zbGljZSgpOnAuY29uY2F0KGxpbmVCcmVha1BhcnQoKSxyKSl9fXJldHVybiByfWZ1bmN0aW9uIHM3KGUsdCxyKXt2YXIgYTtsZXQgXz0oKGE9dC5wYXJlbnQpPT1udWxsP3ZvaWQgMDphLmtpbmQpPT09MTc2P3QucGFyZW50LnBhcmVudDp0LnBhcmVudDtpZighXylyZXR1cm47bGV0IHA9Z20odCk7cmV0dXJuIG5nKElUKF8pLGQ9PntsZXQgaD1lLmdldFR5cGVBdExvY2F0aW9uKGQpLGw9cCYmaC5zeW1ib2w/ZS5nZXRUeXBlT2ZTeW1ib2woaC5zeW1ib2wpOmgsdj1lLmdldFByb3BlcnR5T2ZUeXBlKGwsdC5zeW1ib2wubmFtZSk7cmV0dXJuIHY/cih2KTp2b2lkIDB9KX1mdW5jdGlvbiBLRigpe3JldHVybntnZXROb2RlQ29uc3RydWN0b3I6KCk9Pk5kLGdldFRva2VuQ29uc3RydWN0b3I6KCk9Plc2LGdldElkZW50aWZpZXJDb25zdHJ1Y3RvcjooKT0+T2QsZ2V0UHJpdmF0ZUlkZW50aWZpZXJDb25zdHJ1Y3RvcjooKT0+TWQsZ2V0U291cmNlRmlsZUNvbnN0cnVjdG9yOigpPT5nNyxnZXRTeW1ib2xDb25zdHJ1Y3RvcjooKT0+bTcsZ2V0VHlwZUNvbnN0cnVjdG9yOigpPT5oNyxnZXRTaWduYXR1cmVDb25zdHJ1Y3RvcjooKT0+eTcsZ2V0U291cmNlTWFwU291cmNlQ29uc3RydWN0b3I6KCk9PmI3fX1mdW5jdGlvbiBzbChlKXtsZXQgdD0hMDtmb3IobGV0IGEgaW4gZSlpZihRcihlLGEpJiYhbXYoYSkpe3Q9ITE7YnJlYWt9aWYodClyZXR1cm4gZTtsZXQgcj17fTtmb3IobGV0IGEgaW4gZSlpZihRcihlLGEpKXtsZXQgXz1tdihhKT9hOmEuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkrYS5zdWJzdHIoMSk7cltfXT1lW2FdfXJldHVybiByfWZ1bmN0aW9uIG12KGUpe3JldHVybiFlLmxlbmd0aHx8ZS5jaGFyQXQoMCk9PT1lLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFpGKGUpe3JldHVybiBlP0FhKGUsdD0+dC50ZXh0KS5qb2luKFwiXCIpOlwiXCJ9ZnVuY3Rpb24gXzcoKXtyZXR1cm57dGFyZ2V0OjEsanN4OjF9fWZ1bmN0aW9uIGM3KCl7cmV0dXJuIHRzX2NvZGVmaXhfZXhwb3J0cy5nZXRTdXBwb3J0ZWRFcnJvckNvZGVzKCl9ZnVuY3Rpb24gbDcoZSx0LHIpe2UudmVyc2lvbj1yLGUuc2NyaXB0U25hcHNob3Q9dH1mdW5jdGlvbiB6NihlLHQscixhLF8scCl7bGV0IGQ9SDgoZSxnZXRTbmFwc2hvdFRleHQodCkscixfLHApO3JldHVybiBsNyhkLHQsYSksZH1mdW5jdGlvbiB1NyhlLHQscixhLF8pe2lmKGEmJnIhPT1lLnZlcnNpb24pe2xldCBkLGg9YS5zcGFuLnN0YXJ0IT09MD9lLnRleHQuc3Vic3RyKDAsYS5zcGFuLnN0YXJ0KTpcIlwiLGw9S3QoYS5zcGFuKSE9PWUudGV4dC5sZW5ndGg/ZS50ZXh0LnN1YnN0cihLdChhLnNwYW4pKTpcIlwiO2lmKGEubmV3TGVuZ3RoPT09MClkPWgmJmw/aCtsOmh8fGw7ZWxzZXtsZXQgeT10LmdldFRleHQoYS5zcGFuLnN0YXJ0LGEuc3Bhbi5zdGFydCthLm5ld0xlbmd0aCk7ZD1oJiZsP2greStsOmg/aCt5OnkrbH1sZXQgdj1xNihlLGQsYSxfKTtyZXR1cm4gbDcodix0LHIpLHYubmFtZVRhYmxlPXZvaWQgMCxlIT09diYmZS5zY3JpcHRTbmFwc2hvdCYmKGUuc2NyaXB0U25hcHNob3QuZGlzcG9zZSYmZS5zY3JpcHRTbmFwc2hvdC5kaXNwb3NlKCksZS5zY3JpcHRTbmFwc2hvdD12b2lkIDApLHZ9bGV0IHA9e2xhbmd1YWdlVmVyc2lvbjplLmxhbmd1YWdlVmVyc2lvbixpbXBsaWVkTm9kZUZvcm1hdDplLmltcGxpZWROb2RlRm9ybWF0LHNldEV4dGVybmFsTW9kdWxlSW5kaWNhdG9yOmUuc2V0RXh0ZXJuYWxNb2R1bGVJbmRpY2F0b3J9O3JldHVybiB6NihlLmZpbGVOYW1lLHQscCxyLCEwLGUuc2NyaXB0S2luZCl9ZnVuY3Rpb24gZUIoZSx0PWNyZWF0ZURvY3VtZW50UmVnaXN0cnkoZS51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzJiZlLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMoKSxlLmdldEN1cnJlbnREaXJlY3RvcnkoKSkscil7dmFyIGE7bGV0IF87cj09PXZvaWQgMD9fPTA6dHlwZW9mIHI9PVwiYm9vbGVhblwiP189cj8yOjA6Xz1yO2xldCBwPW5ldyB2NyhlKSxkLGgsbD0wLHY9ZS5nZXRDYW5jZWxsYXRpb25Ub2tlbj9uZXcgUzcoZS5nZXRDYW5jZWxsYXRpb25Ub2tlbigpKTpUNyx5PWUuZ2V0Q3VycmVudERpcmVjdG9yeSgpO09TKChhPWUuZ2V0TG9jYWxpemVkRGlhZ25vc3RpY01lc3NhZ2VzKT09bnVsbD92b2lkIDA6YS5iaW5kKGUpKTtmdW5jdGlvbiBDKGope2UubG9nJiZlLmxvZyhqKX1sZXQgUz1DMihlKSxrPUJkKFMpLEw9Z2V0U291cmNlTWFwcGVyKHt1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzOigpPT5TLGdldEN1cnJlbnREaXJlY3Rvcnk6KCk9PnksZ2V0UHJvZ3JhbTp1ZSxmaWxlRXhpc3RzOnJyKGUsZS5maWxlRXhpc3RzKSxyZWFkRmlsZTpycihlLGUucmVhZEZpbGUpLGdldERvY3VtZW50UG9zaXRpb25NYXBwZXI6cnIoZSxlLmdldERvY3VtZW50UG9zaXRpb25NYXBwZXIpLGdldFNvdXJjZUZpbGVMaWtlOnJyKGUsZS5nZXRTb3VyY2VGaWxlTGlrZSksbG9nOkN9KTtmdW5jdGlvbiBHKGope2xldCBUPWQuZ2V0U291cmNlRmlsZShqKTtpZighVCl7bGV0IHg9bmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBzb3VyY2UgZmlsZTogJyR7an0nLmApO3Rocm93IHguUHJvZ3JhbUZpbGVzPWQuZ2V0U291cmNlRmlsZXMoKS5tYXAoZj0+Zi5maWxlTmFtZSkseH1yZXR1cm4gVH1mdW5jdGlvbiBLKCl7dmFyIGosVCx4O2lmKE4uYXNzZXJ0KF8hPT0yKSxlLmdldFByb2plY3RWZXJzaW9uKXtsZXQgSWU9ZS5nZXRQcm9qZWN0VmVyc2lvbigpO2lmKEllKXtpZihoPT09SWUmJiEoKGo9ZS5oYXNDaGFuZ2VkQXV0b21hdGljVHlwZURpcmVjdGl2ZU5hbWVzKSE9bnVsbCYmai5jYWxsKGUpKSlyZXR1cm47aD1JZX19bGV0IGY9ZS5nZXRUeXBlUm9vdHNWZXJzaW9uP2UuZ2V0VHlwZVJvb3RzVmVyc2lvbigpOjA7bCE9PWYmJihDKFwiVHlwZVJvb3RzIHZlcnNpb24gaGFzIGNoYW5nZWQ7IHByb3ZpZGUgbmV3IHByb2dyYW1cIiksZD12b2lkIDAsbD1mKTtsZXQgJD1lLmdldFNjcmlwdEZpbGVOYW1lcygpLnNsaWNlKCksUT1lLmdldENvbXBpbGF0aW9uU2V0dGluZ3MoKXx8XzcoKSxPPWUuaGFzSW52YWxpZGF0ZWRSZXNvbHV0aW9uc3x8WGYsZmU9cnIoZSxlLmhhc0ludmFsaWRhdGVkTGliUmVzb2x1dGlvbnMpfHxYZixiZT1ycihlLGUuaGFzQ2hhbmdlZEF1dG9tYXRpY1R5cGVEaXJlY3RpdmVOYW1lcyksaGU9KFQ9ZS5nZXRQcm9qZWN0UmVmZXJlbmNlcyk9PW51bGw/dm9pZCAwOlQuY2FsbChlKSxSZSx3ZT17Z2V0U291cmNlRmlsZTpILGdldFNvdXJjZUZpbGVCeVBhdGg6RmEsZ2V0Q2FuY2VsbGF0aW9uVG9rZW46KCk9PnYsZ2V0Q2Fub25pY2FsRmlsZU5hbWU6ayx1c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzOigpPT5TLGdldE5ld0xpbmU6KCk9PlRTKFEpLGdldERlZmF1bHRMaWJGaWxlTmFtZTpJZT0+ZS5nZXREZWZhdWx0TGliRmlsZU5hbWUoSWUpLHdyaXRlRmlsZTpSbixnZXRDdXJyZW50RGlyZWN0b3J5OigpPT55LGZpbGVFeGlzdHM6SWU9PmUuZmlsZUV4aXN0cyhJZSkscmVhZEZpbGU6SWU9PmUucmVhZEZpbGUmJmUucmVhZEZpbGUoSWUpLGdldFN5bWxpbmtDYWNoZTpycihlLGUuZ2V0U3ltbGlua0NhY2hlKSxyZWFscGF0aDpycihlLGUucmVhbHBhdGgpLGRpcmVjdG9yeUV4aXN0czpJZT0+dlMoSWUsZSksZ2V0RGlyZWN0b3JpZXM6SWU9PmUuZ2V0RGlyZWN0b3JpZXM/ZS5nZXREaXJlY3RvcmllcyhJZSk6W10scmVhZERpcmVjdG9yeTooSWUsb3QsY3IsYW4sQmEpPT4oTi5jaGVja0RlZmluZWQoZS5yZWFkRGlyZWN0b3J5LFwiJ0xhbmd1YWdlU2VydmljZUhvc3QucmVhZERpcmVjdG9yeScgbXVzdCBiZSBpbXBsZW1lbnRlZCB0byBjb3JyZWN0bHkgcHJvY2VzcyAncHJvamVjdFJlZmVyZW5jZXMnXCIpLGUucmVhZERpcmVjdG9yeShJZSxvdCxjcixhbixCYSkpLG9uUmVsZWFzZU9sZFNvdXJjZUZpbGU6RXQsb25SZWxlYXNlUGFyc2VkQ29tbWFuZExpbmU6QW4saGFzSW52YWxpZGF0ZWRSZXNvbHV0aW9uczpPLGhhc0ludmFsaWRhdGVkTGliUmVzb2x1dGlvbnM6ZmUsaGFzQ2hhbmdlZEF1dG9tYXRpY1R5cGVEaXJlY3RpdmVOYW1lczpiZSx0cmFjZTpycihlLGUudHJhY2UpLHJlc29sdmVNb2R1bGVOYW1lczpycihlLGUucmVzb2x2ZU1vZHVsZU5hbWVzKSxnZXRNb2R1bGVSZXNvbHV0aW9uQ2FjaGU6cnIoZSxlLmdldE1vZHVsZVJlc29sdXRpb25DYWNoZSksY3JlYXRlSGFzaDpycihlLGUuY3JlYXRlSGFzaCkscmVzb2x2ZVR5cGVSZWZlcmVuY2VEaXJlY3RpdmVzOnJyKGUsZS5yZXNvbHZlVHlwZVJlZmVyZW5jZURpcmVjdGl2ZXMpLHJlc29sdmVNb2R1bGVOYW1lTGl0ZXJhbHM6cnIoZSxlLnJlc29sdmVNb2R1bGVOYW1lTGl0ZXJhbHMpLHJlc29sdmVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlUmVmZXJlbmNlczpycihlLGUucmVzb2x2ZVR5cGVSZWZlcmVuY2VEaXJlY3RpdmVSZWZlcmVuY2VzKSxyZXNvbHZlTGlicmFyeTpycihlLGUucmVzb2x2ZUxpYnJhcnkpLHVzZVNvdXJjZU9mUHJvamVjdFJlZmVyZW5jZVJlZGlyZWN0OnJyKGUsZS51c2VTb3VyY2VPZlByb2plY3RSZWZlcmVuY2VSZWRpcmVjdCksZ2V0UGFyc2VkQ29tbWFuZExpbmU6VGV9LGV0PXdlLmdldFNvdXJjZUZpbGUse2dldFNvdXJjZUZpbGVXaXRoQ2FjaGU6WWV9PWNoYW5nZUNvbXBpbGVySG9zdExpa2VUb1VzZUNhY2hlKHdlLEllPT54aShJZSx5LGspLCguLi5JZSk9PmV0LmNhbGwod2UsLi4uSWUpKTt3ZS5nZXRTb3VyY2VGaWxlPVllLCh4PWUuc2V0Q29tcGlsZXJIb3N0KT09bnVsbHx8eC5jYWxsKGUsd2UpO2xldCBLZT17dXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczpTLGZpbGVFeGlzdHM6SWU9PndlLmZpbGVFeGlzdHMoSWUpLHJlYWRGaWxlOkllPT53ZS5yZWFkRmlsZShJZSksZGlyZWN0b3J5RXhpc3RzOkllPT53ZS5kaXJlY3RvcnlFeGlzdHMoSWUpLGdldERpcmVjdG9yaWVzOkllPT53ZS5nZXREaXJlY3RvcmllcyhJZSkscmVhbHBhdGg6d2UucmVhbHBhdGgscmVhZERpcmVjdG9yeTooLi4uSWUpPT53ZS5yZWFkRGlyZWN0b3J5KC4uLkllKSx0cmFjZTp3ZS50cmFjZSxnZXRDdXJyZW50RGlyZWN0b3J5OndlLmdldEN1cnJlbnREaXJlY3Rvcnksb25VblJlY292ZXJhYmxlQ29uZmlnRmlsZURpYWdub3N0aWM6Um59LEl0PXQuZ2V0S2V5Rm9yQ29tcGlsYXRpb25TZXR0aW5ncyhRKSxxdD1uZXcgU2V0O2lmKGlzUHJvZ3JhbVVwdG9EYXRlKGQsJCxRLChJZSxvdCk9PmUuZ2V0U2NyaXB0VmVyc2lvbihvdCksSWU9PndlLmZpbGVFeGlzdHMoSWUpLE8sZmUsYmUsVGUsaGUpKXt3ZT12b2lkIDAsUmU9dm9pZCAwLHF0PXZvaWQgMDtyZXR1cm59bGV0IF9yPXtyb290TmFtZXM6JCxvcHRpb25zOlEsaG9zdDp3ZSxvbGRQcm9ncmFtOmQscHJvamVjdFJlZmVyZW5jZXM6aGV9O2Q9Y3JlYXRlUHJvZ3JhbShfciksd2U9dm9pZCAwLFJlPXZvaWQgMCxxdD12b2lkIDAsTC5jbGVhckNhY2hlKCksZC5nZXRUeXBlQ2hlY2tlcigpO3JldHVybjtmdW5jdGlvbiBUZShJZSl7bGV0IG90PXhpKEllLHksayksY3I9UmU9PW51bGw/dm9pZCAwOlJlLmdldChvdCk7aWYoY3IhPT12b2lkIDApcmV0dXJuIGNyfHx2b2lkIDA7bGV0IGFuPWUuZ2V0UGFyc2VkQ29tbWFuZExpbmU/ZS5nZXRQYXJzZWRDb21tYW5kTGluZShJZSk6ZnQoSWUpO3JldHVybihSZXx8KFJlPW5ldyBNYXApKS5zZXQob3QsYW58fCExKSxhbn1mdW5jdGlvbiBmdChJZSl7bGV0IG90PUgoSWUsMTAwKTtpZihvdClyZXR1cm4gb3QucGF0aD14aShJZSx5LGspLG90LnJlc29sdmVkUGF0aD1vdC5wYXRoLG90Lm9yaWdpbmFsRmlsZU5hbWU9b3QuZmlsZU5hbWUscGFyc2VKc29uU291cmNlRmlsZUNvbmZpZ0ZpbGVDb250ZW50KG90LEtlLFBhKCRpKEllKSx5KSx2b2lkIDAsUGEoSWUseSkpfWZ1bmN0aW9uIEFuKEllLG90LGNyKXt2YXIgYW47ZS5nZXRQYXJzZWRDb21tYW5kTGluZT8oYW49ZS5vblJlbGVhc2VQYXJzZWRDb21tYW5kTGluZSk9PW51bGx8fGFuLmNhbGwoZSxJZSxvdCxjcik6b3QmJkV0KG90LnNvdXJjZUZpbGUsY3IpfWZ1bmN0aW9uIEV0KEllLG90KXtsZXQgY3I9dC5nZXRLZXlGb3JDb21waWxhdGlvblNldHRpbmdzKG90KTt0LnJlbGVhc2VEb2N1bWVudFdpdGhLZXkoSWUucmVzb2x2ZWRQYXRoLGNyLEllLnNjcmlwdEtpbmQsSWUuaW1wbGllZE5vZGVGb3JtYXQpfWZ1bmN0aW9uIEgoSWUsb3QsY3IsYW4pe3JldHVybiBGYShJZSx4aShJZSx5LGspLG90LGNyLGFuKX1mdW5jdGlvbiBGYShJZSxvdCxjcixhbixCYSl7Ti5hc3NlcnQod2UsXCJnZXRPckNyZWF0ZVNvdXJjZUZpbGVCeVBhdGggY2FsbGVkIGFmdGVyIHR5cGljYWwgQ29tcGlsZXJIb3N0IGxpZmV0aW1lLCBjaGVjayB0aGUgY2FsbHN0YWNrIHNvbWV0aGluZyB3aXRoIGEgcmVmZXJlbmNlIHRvIGFuIG9sZCBob3N0LlwiKTtsZXQga249ZS5nZXRTY3JpcHRTbmFwc2hvdChJZSk7aWYoIWtuKXJldHVybjtsZXQgamU9Z2V0U2NyaXB0S2luZChJZSxlKSxkdD1lLmdldFNjcmlwdFZlcnNpb24oSWUpO2lmKCFCYSl7bGV0IGxpPWQmJmQuZ2V0U291cmNlRmlsZUJ5UGF0aChvdCk7aWYobGkpe2lmKGplPT09bGkuc2NyaXB0S2luZHx8cXQuaGFzKGxpLnJlc29sdmVkUGF0aCkpcmV0dXJuIHQudXBkYXRlRG9jdW1lbnRXaXRoS2V5KEllLG90LGUsSXQsa24sZHQsamUsY3IpO3QucmVsZWFzZURvY3VtZW50V2l0aEtleShsaS5yZXNvbHZlZFBhdGgsdC5nZXRLZXlGb3JDb21waWxhdGlvblNldHRpbmdzKGQuZ2V0Q29tcGlsZXJPcHRpb25zKCkpLGxpLnNjcmlwdEtpbmQsbGkuaW1wbGllZE5vZGVGb3JtYXQpLHF0LmFkZChsaS5yZXNvbHZlZFBhdGgpfX1yZXR1cm4gdC5hY3F1aXJlRG9jdW1lbnRXaXRoS2V5KEllLG90LGUsSXQsa24sZHQsamUsY3IpfX1mdW5jdGlvbiB1ZSgpe2lmKF89PT0yKXtOLmFzc2VydChkPT09dm9pZCAwKTtyZXR1cm59cmV0dXJuIEsoKSxkfWZ1bmN0aW9uIFkoKXt2YXIgajtyZXR1cm4oaj1lLmdldFBhY2thZ2VKc29uQXV0b0ltcG9ydFByb3ZpZGVyKT09bnVsbD92b2lkIDA6ai5jYWxsKGUpfWZ1bmN0aW9uIEIoaixUKXtsZXQgeD1kLmdldFR5cGVDaGVja2VyKCksZj0kKCk7aWYoIWYpcmV0dXJuITE7Zm9yKGxldCBPIG9mIGopZm9yKGxldCBmZSBvZiBPLnJlZmVyZW5jZXMpe2xldCBiZT1RKGZlKTtpZihOLmFzc2VydElzRGVmaW5lZChiZSksVC5oYXMoZmUpfHx0c19GaW5kQWxsUmVmZXJlbmNlc19leHBvcnRzLmlzRGVjbGFyYXRpb25PZlN5bWJvbChiZSxmKSl7VC5hZGQoZmUpLGZlLmlzRGVmaW5pdGlvbj0hMDtsZXQgaGU9Z2V0TWFwcGVkRG9jdW1lbnRTcGFuKGZlLEwscnIoZSxlLmZpbGVFeGlzdHMpKTtoZSYmVC5hZGQoaGUpfWVsc2UgZmUuaXNEZWZpbml0aW9uPSExfXJldHVybiEwO2Z1bmN0aW9uICQoKXtmb3IobGV0IE8gb2Ygailmb3IobGV0IGZlIG9mIE8ucmVmZXJlbmNlcyl7aWYoVC5oYXMoZmUpKXtsZXQgaGU9UShmZSk7cmV0dXJuIE4uYXNzZXJ0SXNEZWZpbmVkKGhlKSx4LmdldFN5bWJvbEF0TG9jYXRpb24oaGUpfWxldCBiZT1nZXRNYXBwZWREb2N1bWVudFNwYW4oZmUsTCxycihlLGUuZmlsZUV4aXN0cykpO2lmKGJlJiZULmhhcyhiZSkpe2xldCBoZT1RKGJlKTtpZihoZSlyZXR1cm4geC5nZXRTeW1ib2xBdExvY2F0aW9uKGhlKX19fWZ1bmN0aW9uIFEoTyl7bGV0IGZlPWQuZ2V0U291cmNlRmlsZShPLmZpbGVOYW1lKTtpZighZmUpcmV0dXJuO2xldCBiZT1nZXRUb3VjaGluZ1Byb3BlcnR5TmFtZShmZSxPLnRleHRTcGFuLnN0YXJ0KTtyZXR1cm4gdHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy5Db3JlLmdldEFkanVzdGVkTm9kZShiZSx7dXNlOnRzX0ZpbmRBbGxSZWZlcmVuY2VzX2V4cG9ydHMuRmluZFJlZmVyZW5jZXNVc2UuUmVmZXJlbmNlc30pfX1mdW5jdGlvbiBhZSgpe2lmKGQpe2xldCBqPXQuZ2V0S2V5Rm9yQ29tcGlsYXRpb25TZXR0aW5ncyhkLmdldENvbXBpbGVyT3B0aW9ucygpKTt5cihkLmdldFNvdXJjZUZpbGVzKCksVD0+dC5yZWxlYXNlRG9jdW1lbnRXaXRoS2V5KFQucmVzb2x2ZWRQYXRoLGosVC5zY3JpcHRLaW5kLFQuaW1wbGllZE5vZGVGb3JtYXQpKSxkPXZvaWQgMH19ZnVuY3Rpb24gQ2UoKXthZSgpLGU9dm9pZCAwfWZ1bmN0aW9uIFplKGope3JldHVybiBLKCksZC5nZXRTeW50YWN0aWNEaWFnbm9zdGljcyhHKGopLHYpLnNsaWNlKCl9ZnVuY3Rpb24gcWUoail7SygpO2xldCBUPUcoaikseD1kLmdldFNlbWFudGljRGlhZ25vc3RpY3MoVCx2KTtpZighejIoZC5nZXRDb21waWxlck9wdGlvbnMoKSkpcmV0dXJuIHguc2xpY2UoKTtsZXQgZj1kLmdldERlY2xhcmF0aW9uRGlhZ25vc3RpY3MoVCx2KTtyZXR1cm5bLi4ueCwuLi5mXX1mdW5jdGlvbiBydChqKXtyZXR1cm4gSygpLGNvbXB1dGVTdWdnZXN0aW9uRGlhZ25vc3RpY3MoRyhqKSxkLHYpfWZ1bmN0aW9uIGl0KCl7cmV0dXJuIEsoKSxbLi4uZC5nZXRPcHRpb25zRGlhZ25vc3RpY3ModiksLi4uZC5nZXRHbG9iYWxEaWFnbm9zdGljcyh2KV19ZnVuY3Rpb24gSXIoaixULHg9ZW1wdHlPcHRpb25zLGYpe2xldCAkPXsuLi54LGluY2x1ZGVDb21wbGV0aW9uc0Zvck1vZHVsZUV4cG9ydHM6eC5pbmNsdWRlQ29tcGxldGlvbnNGb3JNb2R1bGVFeHBvcnRzfHx4LmluY2x1ZGVFeHRlcm5hbE1vZHVsZUV4cG9ydHMsaW5jbHVkZUNvbXBsZXRpb25zV2l0aEluc2VydFRleHQ6eC5pbmNsdWRlQ29tcGxldGlvbnNXaXRoSW5zZXJ0VGV4dHx8eC5pbmNsdWRlSW5zZXJ0VGV4dENvbXBsZXRpb25zfTtyZXR1cm4gSygpLHRzX0NvbXBsZXRpb25zX2V4cG9ydHMuZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uKGUsZCxDLEcoaiksVCwkLHgudHJpZ2dlckNoYXJhY3Rlcix4LnRyaWdnZXJLaW5kLHYsZiYmdHNfZm9ybWF0dGluZ19leHBvcnRzLmdldEZvcm1hdENvbnRleHQoZixlKSx4LmluY2x1ZGVTeW1ib2wpfWZ1bmN0aW9uIGFyKGosVCx4LGYsJCxRPWVtcHR5T3B0aW9ucyxPKXtyZXR1cm4gSygpLHRzX0NvbXBsZXRpb25zX2V4cG9ydHMuZ2V0Q29tcGxldGlvbkVudHJ5RGV0YWlscyhkLEMsRyhqKSxULHtuYW1lOngsc291cmNlOiQsZGF0YTpPfSxlLGYmJnRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KGYsZSksUSx2KX1mdW5jdGlvbiBjaShqLFQseCxmLCQ9ZW1wdHlPcHRpb25zKXtyZXR1cm4gSygpLHRzX0NvbXBsZXRpb25zX2V4cG9ydHMuZ2V0Q29tcGxldGlvbkVudHJ5U3ltYm9sKGQsQyxHKGopLFQse25hbWU6eCxzb3VyY2U6Zn0sZSwkKX1mdW5jdGlvbiBvcihqLFQpe0soKTtsZXQgeD1HKGopLGY9Z2V0VG91Y2hpbmdQcm9wZXJ0eU5hbWUoeCxUKTtpZihmPT09eClyZXR1cm47bGV0ICQ9ZC5nZXRUeXBlQ2hlY2tlcigpLFE9TnIoZiksTz1hQihRLCQpO2lmKCFPfHwkLmlzVW5rbm93blN5bWJvbChPKSl7bGV0IHdlPUdlKHgsUSxUKT8kLmdldFR5cGVBdExvY2F0aW9uKFEpOnZvaWQgMDtyZXR1cm4gd2UmJntraW5kOlwiXCIsa2luZE1vZGlmaWVyczpcIlwiLHRleHRTcGFuOmNyZWF0ZVRleHRTcGFuRnJvbU5vZGUoUSx4KSxkaXNwbGF5UGFydHM6JC5ydW5XaXRoQ2FuY2VsbGF0aW9uVG9rZW4odixldD0+dHlwZVRvRGlzcGxheVBhcnRzKGV0LHdlLGdldENvbnRhaW5lck5vZGUoUSkpKSxkb2N1bWVudGF0aW9uOndlLnN5bWJvbD93ZS5zeW1ib2wuZ2V0RG9jdW1lbnRhdGlvbkNvbW1lbnQoJCk6dm9pZCAwLHRhZ3M6d2Uuc3ltYm9sP3dlLnN5bWJvbC5nZXRKc0RvY1RhZ3MoJCk6dm9pZCAwfX1sZXR7c3ltYm9sS2luZDpmZSxkaXNwbGF5UGFydHM6YmUsZG9jdW1lbnRhdGlvbjpoZSx0YWdzOlJlfT0kLnJ1bldpdGhDYW5jZWxsYXRpb25Ub2tlbih2LHdlPT50c19TeW1ib2xEaXNwbGF5X2V4cG9ydHMuZ2V0U3ltYm9sRGlzcGxheVBhcnRzRG9jdW1lbnRhdGlvbkFuZFN5bWJvbEtpbmQod2UsTyx4LGdldENvbnRhaW5lck5vZGUoUSksUSkpO3JldHVybntraW5kOmZlLGtpbmRNb2RpZmllcnM6dHNfU3ltYm9sRGlzcGxheV9leHBvcnRzLmdldFN5bWJvbE1vZGlmaWVycygkLE8pLHRleHRTcGFuOmNyZWF0ZVRleHRTcGFuRnJvbU5vZGUoUSx4KSxkaXNwbGF5UGFydHM6YmUsZG9jdW1lbnRhdGlvbjpoZSx0YWdzOlJlfX1mdW5jdGlvbiBOcihqKXtyZXR1cm4gbzgoai5wYXJlbnQpJiZqLnBvcz09PWoucGFyZW50LnBvcz9qLnBhcmVudC5leHByZXNzaW9uOnA2KGoucGFyZW50KSYmai5wb3M9PT1qLnBhcmVudC5wb3N8fHgwKGoucGFyZW50KSYmai5wYXJlbnQubmFtZT09PWp8fFVfKGoucGFyZW50KT9qLnBhcmVudDpqfWZ1bmN0aW9uIEdlKGosVCx4KXtzd2l0Y2goVC5raW5kKXtjYXNlIDgwOnJldHVybiFpc0xhYmVsTmFtZShUKSYmIWlzVGFnTmFtZShUKSYmIVo0KFQucGFyZW50KTtjYXNlIDIxMTpjYXNlIDE2NjpyZXR1cm4haXNJbkNvbW1lbnQoaix4KTtjYXNlIDExMDpjYXNlIDE5NzpjYXNlIDEwODpjYXNlIDIwMjpyZXR1cm4hMDtjYXNlIDIzNjpyZXR1cm4geDAoVCk7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gR3QoaixULHgsZil7cmV0dXJuIEsoKSx0c19Hb1RvRGVmaW5pdGlvbl9leHBvcnRzLmdldERlZmluaXRpb25BdFBvc2l0aW9uKGQsRyhqKSxULHgsZil9ZnVuY3Rpb24gVXIoaixUKXtyZXR1cm4gSygpLHRzX0dvVG9EZWZpbml0aW9uX2V4cG9ydHMuZ2V0RGVmaW5pdGlvbkFuZEJvdW5kU3BhbihkLEcoaiksVCl9ZnVuY3Rpb24gWHQoaixUKXtyZXR1cm4gSygpLHRzX0dvVG9EZWZpbml0aW9uX2V4cG9ydHMuZ2V0VHlwZURlZmluaXRpb25BdFBvc2l0aW9uKGQuZ2V0VHlwZUNoZWNrZXIoKSxHKGopLFQpfWZ1bmN0aW9uIFRuKGosVCl7cmV0dXJuIEsoKSx0c19GaW5kQWxsUmVmZXJlbmNlc19leHBvcnRzLmdldEltcGxlbWVudGF0aW9uc0F0UG9zaXRpb24oZCx2LGQuZ2V0U291cmNlRmlsZXMoKSxHKGopLFQpfWZ1bmN0aW9uIFNuKGosVCx4KXtsZXQgZj1wbihqKTtOLmFzc2VydCh4LnNvbWUoTz0+cG4oTyk9PT1mKSksSygpO2xldCAkPVphKHgsTz0+ZC5nZXRTb3VyY2VGaWxlKE8pKSxRPUcoaik7cmV0dXJuIERvY3VtZW50SGlnaGxpZ2h0cy5nZXREb2N1bWVudEhpZ2hsaWdodHMoZCx2LFEsVCwkKX1mdW5jdGlvbiBzcihqLFQseCxmLCQpe0soKTtsZXQgUT1HKGopLE89Z2V0QWRqdXN0ZWRSZW5hbWVMb2NhdGlvbihnZXRUb3VjaGluZ1Byb3BlcnR5TmFtZShRLFQpKTtpZih0c19SZW5hbWVfZXhwb3J0cy5ub2RlSXNFbGlnaWJsZUZvclJlbmFtZShPKSlpZihFZShPKSYmKE9vKE8ucGFyZW50KXx8cWYoTy5wYXJlbnQpKSYmV1QoTy5lc2NhcGVkVGV4dCkpe2xldHtvcGVuaW5nRWxlbWVudDpmZSxjbG9zaW5nRWxlbWVudDpiZX09Ty5wYXJlbnQucGFyZW50O3JldHVybltmZSxiZV0ubWFwKGhlPT57bGV0IFJlPWNyZWF0ZVRleHRTcGFuRnJvbU5vZGUoaGUudGFnTmFtZSxRKTtyZXR1cm57ZmlsZU5hbWU6US5maWxlTmFtZSx0ZXh0U3BhbjpSZSwuLi50c19GaW5kQWxsUmVmZXJlbmNlc19leHBvcnRzLnRvQ29udGV4dFNwYW4oUmUsUSxoZS5wYXJlbnQpfX0pfWVsc2V7bGV0IGZlPWdldFF1b3RlUHJlZmVyZW5jZShRLCQ/P2VtcHR5T3B0aW9ucyksYmU9dHlwZW9mICQ9PVwiYm9vbGVhblwiPyQ6JD09bnVsbD92b2lkIDA6JC5wcm92aWRlUHJlZml4QW5kU3VmZml4VGV4dEZvclJlbmFtZTtyZXR1cm4gU3QoTyxULHtmaW5kSW5TdHJpbmdzOngsZmluZEluQ29tbWVudHM6Zixwcm92aWRlUHJlZml4QW5kU3VmZml4VGV4dEZvclJlbmFtZTpiZSx1c2U6dHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy5GaW5kUmVmZXJlbmNlc1VzZS5SZW5hbWV9LChoZSxSZSx3ZSk9PnRzX0ZpbmRBbGxSZWZlcmVuY2VzX2V4cG9ydHMudG9SZW5hbWVMb2NhdGlvbihoZSxSZSx3ZSxiZXx8ITEsZmUpKX19ZnVuY3Rpb24gJHQoaixUKXtyZXR1cm4gSygpLFN0KGdldFRvdWNoaW5nUHJvcGVydHlOYW1lKEcoaiksVCksVCx7dXNlOnRzX0ZpbmRBbGxSZWZlcmVuY2VzX2V4cG9ydHMuRmluZFJlZmVyZW5jZXNVc2UuUmVmZXJlbmNlc30sdHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy50b1JlZmVyZW5jZUVudHJ5KX1mdW5jdGlvbiBTdChqLFQseCxmKXtLKCk7bGV0ICQ9eCYmeC51c2U9PT10c19GaW5kQWxsUmVmZXJlbmNlc19leHBvcnRzLkZpbmRSZWZlcmVuY2VzVXNlLlJlbmFtZT9kLmdldFNvdXJjZUZpbGVzKCkuZmlsdGVyKFE9PiFkLmlzU291cmNlRmlsZURlZmF1bHRMaWJyYXJ5KFEpKTpkLmdldFNvdXJjZUZpbGVzKCk7cmV0dXJuIHRzX0ZpbmRBbGxSZWZlcmVuY2VzX2V4cG9ydHMuZmluZFJlZmVyZW5jZU9yUmVuYW1lRW50cmllcyhkLHYsJCxqLFQseCxmKX1mdW5jdGlvbiB4bihqLFQpe3JldHVybiBLKCksdHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy5maW5kUmVmZXJlbmNlZFN5bWJvbHMoZCx2LGQuZ2V0U291cmNlRmlsZXMoKSxHKGopLFQpfWZ1bmN0aW9uIFRyKGope3JldHVybiBLKCksdHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy5Db3JlLmdldFJlZmVyZW5jZXNGb3JGaWxlTmFtZShqLGQsZC5nZXRTb3VyY2VGaWxlcygpKS5tYXAodHNfRmluZEFsbFJlZmVyZW5jZXNfZXhwb3J0cy50b1JlZmVyZW5jZUVudHJ5KX1mdW5jdGlvbiB2dChqLFQseCxmPSExKXtLKCk7bGV0ICQ9eD9bRyh4KV06ZC5nZXRTb3VyY2VGaWxlcygpO3JldHVybiBnZXROYXZpZ2F0ZVRvSXRlbXMoJCxkLmdldFR5cGVDaGVja2VyKCksdixqLFQsZil9ZnVuY3Rpb24gY3QoaixULHgpe0soKTtsZXQgZj1HKGopLCQ9ZS5nZXRDdXN0b21UcmFuc2Zvcm1lcnMmJmUuZ2V0Q3VzdG9tVHJhbnNmb3JtZXJzKCk7cmV0dXJuIGdldEZpbGVFbWl0T3V0cHV0KGQsZiwhIVQsdiwkLHgpfWZ1bmN0aW9uIFV0KGosVCx7dHJpZ2dlclJlYXNvbjp4fT1lbXB0eU9wdGlvbnMpe0soKTtsZXQgZj1HKGopO3JldHVybiB0c19TaWduYXR1cmVIZWxwX2V4cG9ydHMuZ2V0U2lnbmF0dXJlSGVscEl0ZW1zKGQsZixULHgsdil9ZnVuY3Rpb24gZnIoail7cmV0dXJuIHAuZ2V0Q3VycmVudFNvdXJjZUZpbGUoail9ZnVuY3Rpb24gaHQoaixULHgpe2xldCBmPXAuZ2V0Q3VycmVudFNvdXJjZUZpbGUoaiksJD1nZXRUb3VjaGluZ1Byb3BlcnR5TmFtZShmLFQpO2lmKCQ9PT1mKXJldHVybjtzd2l0Y2goJC5raW5kKXtjYXNlIDIxMTpjYXNlIDE2NjpjYXNlIDExOmNhc2UgOTc6Y2FzZSAxMTI6Y2FzZSAxMDY6Y2FzZSAxMDg6Y2FzZSAxMTA6Y2FzZSAxOTc6Y2FzZSA4MDpicmVhaztkZWZhdWx0OnJldHVybn1sZXQgUT0kO2Zvcig7OylpZihpc1JpZ2h0U2lkZU9mUHJvcGVydHlBY2Nlc3MoUSl8fGlzUmlnaHRTaWRlT2ZRdWFsaWZpZWROYW1lKFEpKVE9US5wYXJlbnQ7ZWxzZSBpZihpc05hbWVPZk1vZHVsZURlY2xhcmF0aW9uKFEpKWlmKFEucGFyZW50LnBhcmVudC5raW5kPT09MjY3JiZRLnBhcmVudC5wYXJlbnQuYm9keT09PVEucGFyZW50KVE9US5wYXJlbnQucGFyZW50Lm5hbWU7ZWxzZSBicmVhaztlbHNlIGJyZWFrO3JldHVybiBIaShRLmdldFN0YXJ0KCksJC5nZXRFbmQoKSl9ZnVuY3Rpb24gd24oaixUKXtsZXQgeD1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopO3JldHVybiB0c19CcmVha3BvaW50UmVzb2x2ZXJfZXhwb3J0cy5zcGFuSW5Tb3VyY2VGaWxlQXRMb2NhdGlvbih4LFQpfWZ1bmN0aW9uIFR0KGope3JldHVybiBnZXROYXZpZ2F0aW9uQmFySXRlbXMocC5nZXRDdXJyZW50U291cmNlRmlsZShqKSx2KX1mdW5jdGlvbiBPcihqKXtyZXR1cm4gZ2V0TmF2aWdhdGlvblRyZWUocC5nZXRDdXJyZW50U291cmNlRmlsZShqKSx2KX1mdW5jdGlvbiBwdChqLFQseCl7cmV0dXJuIEsoKSwoeHx8XCJvcmlnaW5hbFwiKT09PVwiMjAyMFwiP2dldFNlbWFudGljQ2xhc3NpZmljYXRpb25zMihkLHYsRyhqKSxUKTpnZXRTZW1hbnRpY0NsYXNzaWZpY2F0aW9ucyhkLmdldFR5cGVDaGVja2VyKCksdixHKGopLGQuZ2V0Q2xhc3NpZmlhYmxlTmFtZXMoKSxUKX1mdW5jdGlvbiBNcihqLFQseCl7cmV0dXJuIEsoKSwoeHx8XCJvcmlnaW5hbFwiKT09PVwib3JpZ2luYWxcIj9nZXRFbmNvZGVkU2VtYW50aWNDbGFzc2lmaWNhdGlvbnMoZC5nZXRUeXBlQ2hlY2tlcigpLHYsRyhqKSxkLmdldENsYXNzaWZpYWJsZU5hbWVzKCksVCk6Z2V0RW5jb2RlZFNlbWFudGljQ2xhc3NpZmljYXRpb25zMihkLHYsRyhqKSxUKX1mdW5jdGlvbiBhdChqLFQpe3JldHVybiBnZXRTeW50YWN0aWNDbGFzc2lmaWNhdGlvbnModixwLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLFQpfWZ1bmN0aW9uIGVyKGosVCl7cmV0dXJuIGdldEVuY29kZWRTeW50YWN0aWNDbGFzc2lmaWNhdGlvbnModixwLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLFQpfWZ1bmN0aW9uIFF0KGope2xldCBUPXAuZ2V0Q3VycmVudFNvdXJjZUZpbGUoaik7cmV0dXJuIHRzX091dGxpbmluZ0VsZW1lbnRzQ29sbGVjdG9yX2V4cG9ydHMuY29sbGVjdEVsZW1lbnRzKFQsdil9bGV0IHRuPW5ldyBNYXAoT2JqZWN0LmVudHJpZXMoezE5OjIwLDIxOjIyLDIzOjI0LDMyOjMwfSkpO3RuLmZvckVhY2goKGosVCk9PnRuLnNldChqLnRvU3RyaW5nKCksTnVtYmVyKFQpKSk7ZnVuY3Rpb24gQm4oaixUKXtsZXQgeD1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLGY9Z2V0VG91Y2hpbmdUb2tlbih4LFQpLCQ9Zi5nZXRTdGFydCh4KT09PVQ/dG4uZ2V0KGYua2luZC50b1N0cmluZygpKTp2b2lkIDAsUT0kJiZmaW5kQ2hpbGRPZktpbmQoZi5wYXJlbnQsJCx4KTtyZXR1cm4gUT9bY3JlYXRlVGV4dFNwYW5Gcm9tTm9kZShmLHgpLGNyZWF0ZVRleHRTcGFuRnJvbU5vZGUoUSx4KV0uc29ydCgoTyxmZSk9Pk8uc3RhcnQtZmUuc3RhcnQpOiRlfWZ1bmN0aW9uIFVuKGosVCx4KXtsZXQgZj1TYSgpLCQ9c2woeCksUT1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopO0MoXCJnZXRJbmRlbnRhdGlvbkF0UG9zaXRpb246IGdldEN1cnJlbnRTb3VyY2VGaWxlOiBcIisoU2EoKS1mKSksZj1TYSgpO2xldCBPPXRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5TbWFydEluZGVudGVyLmdldEluZGVudGF0aW9uKFQsUSwkKTtyZXR1cm4gQyhcImdldEluZGVudGF0aW9uQXRQb3NpdGlvbjogY29tcHV0ZUluZGVudGF0aW9uICA6IFwiKyhTYSgpLWYpKSxPfWZ1bmN0aW9uIHJuKGosVCx4LGYpe2xldCAkPXAuZ2V0Q3VycmVudFNvdXJjZUZpbGUoaik7cmV0dXJuIHRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5mb3JtYXRTZWxlY3Rpb24oVCx4LCQsdHNfZm9ybWF0dGluZ19leHBvcnRzLmdldEZvcm1hdENvbnRleHQoc2woZiksZSkpfWZ1bmN0aW9uIG5uKGosVCl7cmV0dXJuIHRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5mb3JtYXREb2N1bWVudChwLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLHRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KHNsKFQpLGUpKX1mdW5jdGlvbiBEaShqLFQseCxmKXtsZXQgJD1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLFE9dHNfZm9ybWF0dGluZ19leHBvcnRzLmdldEZvcm1hdENvbnRleHQoc2woZiksZSk7aWYoIWlzSW5Db21tZW50KCQsVCkpc3dpdGNoKHgpe2Nhc2VcIntcIjpyZXR1cm4gdHNfZm9ybWF0dGluZ19leHBvcnRzLmZvcm1hdE9uT3BlbmluZ0N1cmx5KFQsJCxRKTtjYXNlXCJ9XCI6cmV0dXJuIHRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5mb3JtYXRPbkNsb3NpbmdDdXJseShULCQsUSk7Y2FzZVwiO1wiOnJldHVybiB0c19mb3JtYXR0aW5nX2V4cG9ydHMuZm9ybWF0T25TZW1pY29sb24oVCwkLFEpO2Nhc2VgXG5gOnJldHVybiB0c19mb3JtYXR0aW5nX2V4cG9ydHMuZm9ybWF0T25FbnRlcihULCQsUSl9cmV0dXJuW119ZnVuY3Rpb24gcW4oaixULHgsZiwkLFE9ZW1wdHlPcHRpb25zKXtLKCk7bGV0IE89RyhqKSxmZT1IaShULHgpLGJlPXRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KCQsZSk7cmV0dXJuIEJvKHh2KGYsX28sa3IpLGhlPT4odi50aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCksdHNfY29kZWZpeF9leHBvcnRzLmdldEZpeGVzKHtlcnJvckNvZGU6aGUsc291cmNlRmlsZTpPLHNwYW46ZmUscHJvZ3JhbTpkLGhvc3Q6ZSxjYW5jZWxsYXRpb25Ub2tlbjp2LGZvcm1hdENvbnRleHQ6YmUscHJlZmVyZW5jZXM6UX0pKSl9ZnVuY3Rpb24gQWUoaixULHgsZj1lbXB0eU9wdGlvbnMpe0soKSxOLmFzc2VydChqLnR5cGU9PT1cImZpbGVcIik7bGV0ICQ9RyhqLmZpbGVOYW1lKSxRPXRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KHgsZSk7cmV0dXJuIHRzX2NvZGVmaXhfZXhwb3J0cy5nZXRBbGxGaXhlcyh7Zml4SWQ6VCxzb3VyY2VGaWxlOiQscHJvZ3JhbTpkLGhvc3Q6ZSxjYW5jZWxsYXRpb25Ub2tlbjp2LGZvcm1hdENvbnRleHQ6USxwcmVmZXJlbmNlczpmfSl9ZnVuY3Rpb24gcShqLFQseD1lbXB0eU9wdGlvbnMpe0soKSxOLmFzc2VydChqLnR5cGU9PT1cImZpbGVcIik7bGV0IGY9RyhqLmZpbGVOYW1lKSwkPXRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KFQsZSksUT1qLm1vZGU/PyhqLnNraXBEZXN0cnVjdGl2ZUNvZGVBY3Rpb25zP1wiU29ydEFuZENvbWJpbmVcIjpcIkFsbFwiKTtyZXR1cm4gdHNfT3JnYW5pemVJbXBvcnRzX2V4cG9ydHMub3JnYW5pemVJbXBvcnRzKGYsJCxlLGQseCxRKX1mdW5jdGlvbiBvZShqLFQseCxmPWVtcHR5T3B0aW9ucyl7cmV0dXJuIGdldEVkaXRzRm9yRmlsZVJlbmFtZSh1ZSgpLGosVCxlLHRzX2Zvcm1hdHRpbmdfZXhwb3J0cy5nZXRGb3JtYXRDb250ZXh0KHgsZSksZixMKX1mdW5jdGlvbiBnZShqLFQpe2xldCB4PXR5cGVvZiBqPT1cInN0cmluZ1wiP1Q6ajtyZXR1cm4genQoeCk/UHJvbWlzZS5hbGwoeC5tYXAoZj0+U2UoZikpKTpTZSh4KX1mdW5jdGlvbiBTZShqKXtsZXQgVD14PT54aSh4LHksayk7cmV0dXJuIE4uYXNzZXJ0RXF1YWwoai50eXBlLFwiaW5zdGFsbCBwYWNrYWdlXCIpLGUuaW5zdGFsbFBhY2thZ2U/ZS5pbnN0YWxsUGFja2FnZSh7ZmlsZU5hbWU6VChqLmZpbGUpLHBhY2thZ2VOYW1lOmoucGFja2FnZU5hbWV9KTpQcm9taXNlLnJlamVjdChcIkhvc3QgZG9lcyBub3QgaW1wbGVtZW50IGBpbnN0YWxsUGFja2FnZWBcIil9ZnVuY3Rpb24gbnQoaixULHgsZil7bGV0ICQ9Zj90c19mb3JtYXR0aW5nX2V4cG9ydHMuZ2V0Rm9ybWF0Q29udGV4dChmLGUpLm9wdGlvbnM6dm9pZCAwO3JldHVybiB0c19Kc0RvY19leHBvcnRzLmdldERvY0NvbW1lbnRUZW1wbGF0ZUF0UG9zaXRpb24oZ2V0TmV3TGluZU9yRGVmYXVsdEZyb21Ib3N0KGUsJCkscC5nZXRDdXJyZW50U291cmNlRmlsZShqKSxULHgpfWZ1bmN0aW9uIHooaixULHgpe2lmKHg9PT02MClyZXR1cm4hMTtsZXQgZj1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopO2lmKGlzSW5TdHJpbmcoZixUKSlyZXR1cm4hMTtpZihpc0luc2lkZUpzeEVsZW1lbnRPckF0dHJpYnV0ZShmLFQpKXJldHVybiB4PT09MTIzO2lmKGlzSW5UZW1wbGF0ZVN0cmluZyhmLFQpKXJldHVybiExO3N3aXRjaCh4KXtjYXNlIDM5OmNhc2UgMzQ6Y2FzZSA5NjpyZXR1cm4haXNJbkNvbW1lbnQoZixUKX1yZXR1cm4hMH1mdW5jdGlvbiBYKGosVCl7bGV0IHg9cC5nZXRDdXJyZW50U291cmNlRmlsZShqKSxmPWZpbmRQcmVjZWRpbmdUb2tlbihULHgpO2lmKCFmKXJldHVybjtsZXQgJD1mLmtpbmQ9PT0zMiYmT28oZi5wYXJlbnQpP2YucGFyZW50LnBhcmVudDprZChmKSYmUTAoZi5wYXJlbnQpP2YucGFyZW50OnZvaWQgMDtpZigkJiZqdCgkKSlyZXR1cm57bmV3VGV4dDpgPC8keyQub3BlbmluZ0VsZW1lbnQudGFnTmFtZS5nZXRUZXh0KHgpfT5gfTtsZXQgUT1mLmtpbmQ9PT0zMiYmazYoZi5wYXJlbnQpP2YucGFyZW50LnBhcmVudDprZChmKSYmZGwoZi5wYXJlbnQpP2YucGFyZW50OnZvaWQgMDtpZihRJiZxcihRKSlyZXR1cm57bmV3VGV4dDpcIjwvPlwifX1mdW5jdGlvbiBlZShqLFQpe2xldCB4PXAuZ2V0Q3VycmVudFNvdXJjZUZpbGUoaiksZj1maW5kUHJlY2VkaW5nVG9rZW4oVCx4KTtpZighZnx8Zi5wYXJlbnQua2luZD09PTMxMilyZXR1cm47bGV0ICQ9XCJbYS16QS1aMC05OlxcXFwtXFxcXC5fJF0qXCI7aWYoZGwoZi5wYXJlbnQucGFyZW50KSl7bGV0IFE9Zi5wYXJlbnQucGFyZW50Lm9wZW5pbmdGcmFnbWVudCxPPWYucGFyZW50LnBhcmVudC5jbG9zaW5nRnJhZ21lbnQ7aWYoeGwoUSl8fHhsKE8pKXJldHVybjtsZXQgZmU9US5nZXRTdGFydCh4KSsxLGJlPU8uZ2V0U3RhcnQoeCkrMjtyZXR1cm4gVCE9PWZlJiZUIT09YmU/dm9pZCAwOntyYW5nZXM6W3tzdGFydDpmZSxsZW5ndGg6MH0se3N0YXJ0OmJlLGxlbmd0aDowfV0sd29yZFBhdHRlcm46JH19ZWxzZXtsZXQgUT1LcihmLnBhcmVudCxZZT0+ISEoT28oWWUpfHxxZihZZSkpKTtpZighUSlyZXR1cm47Ti5hc3NlcnQoT28oUSl8fHFmKFEpLFwidGFnIHNob3VsZCBiZSBvcGVuaW5nIG9yIGNsb3NpbmcgZWxlbWVudFwiKTtsZXQgTz1RLnBhcmVudC5vcGVuaW5nRWxlbWVudCxmZT1RLnBhcmVudC5jbG9zaW5nRWxlbWVudCxiZT1PLnRhZ05hbWUuZ2V0U3RhcnQoeCksaGU9Ty50YWdOYW1lLmVuZCxSZT1mZS50YWdOYW1lLmdldFN0YXJ0KHgpLHdlPWZlLnRhZ05hbWUuZW5kO3JldHVybiEoYmU8PVQmJlQ8PWhlfHxSZTw9VCYmVDw9d2UpfHxPLnRhZ05hbWUuZ2V0VGV4dCh4KSE9PWZlLnRhZ05hbWUuZ2V0VGV4dCh4KT92b2lkIDA6e3Jhbmdlczpbe3N0YXJ0OmJlLGxlbmd0aDpoZS1iZX0se3N0YXJ0OlJlLGxlbmd0aDp3ZS1SZX1dLHdvcmRQYXR0ZXJuOiR9fX1mdW5jdGlvbiB4ZShqLFQpe3JldHVybntsaW5lU3RhcnRzOmouZ2V0TGluZVN0YXJ0cygpLGZpcnN0TGluZTpqLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKFQucG9zKS5saW5lLGxhc3RMaW5lOmouZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oVC5lbmQpLmxpbmV9fWZ1bmN0aW9uIGtlKGosVCx4KXtsZXQgZj1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLCQ9W10se2xpbmVTdGFydHM6USxmaXJzdExpbmU6TyxsYXN0TGluZTpmZX09eGUoZixUKSxiZT14fHwhMSxoZT1OdW1iZXIuTUFYX1ZBTFVFLFJlPW5ldyBNYXAsd2U9bmV3IFJlZ0V4cCgvXFxTLyksZXQ9aXNJbnNpZGVKc3hFbGVtZW50KGYsUVtPXSksWWU9ZXQ/XCJ7LypcIjpcIi8vXCI7Zm9yKGxldCBLZT1PO0tlPD1mZTtLZSsrKXtsZXQgSXQ9Zi50ZXh0LnN1YnN0cmluZyhRW0tlXSxmLmdldExpbmVFbmRPZlBvc2l0aW9uKFFbS2VdKSkscXQ9d2UuZXhlYyhJdCk7cXQmJihoZT1NYXRoLm1pbihoZSxxdC5pbmRleCksUmUuc2V0KEtlLnRvU3RyaW5nKCkscXQuaW5kZXgpLEl0LnN1YnN0cihxdC5pbmRleCxZZS5sZW5ndGgpIT09WWUmJihiZT14PT09dm9pZCAwfHx4KSl9Zm9yKGxldCBLZT1PO0tlPD1mZTtLZSsrKXtpZihPIT09ZmUmJlFbS2VdPT09VC5lbmQpY29udGludWU7bGV0IEl0PVJlLmdldChLZS50b1N0cmluZygpKTtJdCE9PXZvaWQgMCYmKGV0PyQucHVzaC5hcHBseSgkLExlKGose3BvczpRW0tlXStoZSxlbmQ6Zi5nZXRMaW5lRW5kT2ZQb3NpdGlvbihRW0tlXSl9LGJlLGV0KSk6YmU/JC5wdXNoKHtuZXdUZXh0OlllLHNwYW46e2xlbmd0aDowLHN0YXJ0OlFbS2VdK2hlfX0pOmYudGV4dC5zdWJzdHIoUVtLZV0rSXQsWWUubGVuZ3RoKT09PVllJiYkLnB1c2goe25ld1RleHQ6XCJcIixzcGFuOntsZW5ndGg6WWUubGVuZ3RoLHN0YXJ0OlFbS2VdK0l0fX0pKX1yZXR1cm4gJH1mdW5jdGlvbiBMZShqLFQseCxmKXt2YXIgJDtsZXQgUT1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLE89W10se3RleHQ6ZmV9PVEsYmU9ITEsaGU9eHx8ITEsUmU9W10se3Bvczp3ZX09VCxldD1mIT09dm9pZCAwP2Y6aXNJbnNpZGVKc3hFbGVtZW50KFEsd2UpLFllPWV0P1wiey8qXCI6XCIvKlwiLEtlPWV0P1wiKi99XCI6XCIqL1wiLEl0PWV0P1wiXFxcXHtcXFxcL1xcXFwqXCI6XCJcXFxcL1xcXFwqXCIscXQ9ZXQ/XCJcXFxcKlxcXFwvXFxcXH1cIjpcIlxcXFwqXFxcXC9cIjtmb3IoO3dlPD1ULmVuZDspe2xldCBfcj1mZS5zdWJzdHIod2UsWWUubGVuZ3RoKT09PVllP1llLmxlbmd0aDowLFRlPWlzSW5Db21tZW50KFEsd2UrX3IpO2lmKFRlKWV0JiYoVGUucG9zLS0sVGUuZW5kKyspLFJlLnB1c2goVGUucG9zKSxUZS5raW5kPT09MyYmUmUucHVzaChUZS5lbmQpLGJlPSEwLHdlPVRlLmVuZCsxO2Vsc2V7bGV0IGZ0PWZlLnN1YnN0cmluZyh3ZSxULmVuZCkuc2VhcmNoKGAoJHtJdH0pfCgke3F0fSlgKTtoZT14IT09dm9pZCAwP3g6aGV8fCFpc1RleHRXaGl0ZVNwYWNlTGlrZShmZSx3ZSxmdD09PS0xP1QuZW5kOndlK2Z0KSx3ZT1mdD09PS0xP1QuZW5kKzE6d2UrZnQrS2UubGVuZ3RofX1pZihoZXx8IWJlKXsoKCQ9aXNJbkNvbW1lbnQoUSxULnBvcykpPT1udWxsP3ZvaWQgMDokLmtpbmQpIT09MiYmeWwoUmUsVC5wb3Msa3IpLHlsKFJlLFQuZW5kLGtyKTtsZXQgX3I9UmVbMF07ZmUuc3Vic3RyKF9yLFllLmxlbmd0aCkhPT1ZZSYmTy5wdXNoKHtuZXdUZXh0OlllLHNwYW46e2xlbmd0aDowLHN0YXJ0Ol9yfX0pO2ZvcihsZXQgVGU9MTtUZTxSZS5sZW5ndGgtMTtUZSsrKWZlLnN1YnN0cihSZVtUZV0tS2UubGVuZ3RoLEtlLmxlbmd0aCkhPT1LZSYmTy5wdXNoKHtuZXdUZXh0OktlLHNwYW46e2xlbmd0aDowLHN0YXJ0OlJlW1RlXX19KSxmZS5zdWJzdHIoUmVbVGVdLFllLmxlbmd0aCkhPT1ZZSYmTy5wdXNoKHtuZXdUZXh0OlllLHNwYW46e2xlbmd0aDowLHN0YXJ0OlJlW1RlXX19KTtPLmxlbmd0aCUyIT09MCYmTy5wdXNoKHtuZXdUZXh0OktlLHNwYW46e2xlbmd0aDowLHN0YXJ0OlJlW1JlLmxlbmd0aC0xXX19KX1lbHNlIGZvcihsZXQgX3Igb2YgUmUpe2xldCBUZT1fci1LZS5sZW5ndGg+MD9fci1LZS5sZW5ndGg6MCxmdD1mZS5zdWJzdHIoVGUsS2UubGVuZ3RoKT09PUtlP0tlLmxlbmd0aDowO08ucHVzaCh7bmV3VGV4dDpcIlwiLHNwYW46e2xlbmd0aDpZZS5sZW5ndGgsc3RhcnQ6X3ItZnR9fSl9cmV0dXJuIE99ZnVuY3Rpb24gbHQoaixUKXtsZXQgeD1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLHtmaXJzdExpbmU6ZixsYXN0TGluZTokfT14ZSh4LFQpO3JldHVybiBmPT09JCYmVC5wb3MhPT1ULmVuZD9MZShqLFQsITApOmtlKGosVCwhMCl9ZnVuY3Rpb24geXQoaixUKXtsZXQgeD1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLGY9W10se3BvczokfT1ULHtlbmQ6UX09VDskPT09USYmKFErPWlzSW5zaWRlSnN4RWxlbWVudCh4LCQpPzI6MSk7Zm9yKGxldCBPPSQ7Tzw9UTtPKyspe2xldCBmZT1pc0luQ29tbWVudCh4LE8pO2lmKGZlKXtzd2l0Y2goZmUua2luZCl7Y2FzZSAyOmYucHVzaC5hcHBseShmLGtlKGose2VuZDpmZS5lbmQscG9zOmZlLnBvcysxfSwhMSkpO2JyZWFrO2Nhc2UgMzpmLnB1c2guYXBwbHkoZixMZShqLHtlbmQ6ZmUuZW5kLHBvczpmZS5wb3MrMX0sITEpKX1PPWZlLmVuZCsxfX1yZXR1cm4gZn1mdW5jdGlvbiBqdCh7b3BlbmluZ0VsZW1lbnQ6aixjbG9zaW5nRWxlbWVudDpULHBhcmVudDp4fSl7cmV0dXJuIVRpKGoudGFnTmFtZSxULnRhZ05hbWUpfHxRMCh4KSYmVGkoai50YWdOYW1lLHgub3BlbmluZ0VsZW1lbnQudGFnTmFtZSkmJmp0KHgpfWZ1bmN0aW9uIHFyKHtjbG9zaW5nRnJhZ21lbnQ6aixwYXJlbnQ6VH0pe3JldHVybiEhKGouZmxhZ3MmMjYyMTQ0KXx8ZGwoVCkmJnFyKFQpfWZ1bmN0aW9uIG5hKGosVCx4KXtsZXQgZj1wLmdldEN1cnJlbnRTb3VyY2VGaWxlKGopLCQ9dHNfZm9ybWF0dGluZ19leHBvcnRzLmdldFJhbmdlT2ZFbmNsb3NpbmdDb21tZW50KGYsVCk7cmV0dXJuICQmJigheHx8JC5raW5kPT09Myk/Y3JlYXRlVGV4dFNwYW5Gcm9tUmFuZ2UoJCk6dm9pZCAwfWZ1bmN0aW9uIENuKGosVCl7SygpO2xldCB4PUcoaik7di50aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCk7bGV0IGY9eC50ZXh0LCQ9W107aWYoVC5sZW5ndGg+MCYmIWJlKHguZmlsZU5hbWUpKXtsZXQgaGU9TygpLFJlO2Zvcig7UmU9aGUuZXhlYyhmKTspe3YudGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZCgpO2xldCB3ZT0zO04uYXNzZXJ0KFJlLmxlbmd0aD09PVQubGVuZ3RoK3dlKTtsZXQgZXQ9UmVbMV0sWWU9UmUuaW5kZXgrZXQubGVuZ3RoO2lmKCFpc0luQ29tbWVudCh4LFllKSljb250aW51ZTtsZXQgS2U7Zm9yKGxldCBxdD0wO3F0PFQubGVuZ3RoO3F0KyspUmVbcXQrd2VdJiYoS2U9VFtxdF0pO2lmKEtlPT09dm9pZCAwKXJldHVybiBOLmZhaWwoKTtpZihmZShmLmNoYXJDb2RlQXQoWWUrS2UudGV4dC5sZW5ndGgpKSljb250aW51ZTtsZXQgSXQ9UmVbMl07JC5wdXNoKHtkZXNjcmlwdG9yOktlLG1lc3NhZ2U6SXQscG9zaXRpb246WWV9KX19cmV0dXJuICQ7ZnVuY3Rpb24gUShoZSl7cmV0dXJuIGhlLnJlcGxhY2UoL1stW1xcXS97fSgpKis/LlxcXFxeJHxdL2csXCJcXFxcJCZcIil9ZnVuY3Rpb24gTygpe2xldCBoZT0vKD86XFwvXFwvK1xccyopLy5zb3VyY2UsUmU9Lyg/OlxcL1xcKitcXHMqKS8uc291cmNlLGV0PVwiKFwiKy8oPzpeKD86XFxzfFxcKikqKS8uc291cmNlK1wifFwiK2hlK1wifFwiK1JlK1wiKVwiLFllPVwiKD86XCIrQWEoVCxUZT0+XCIoXCIrUShUZS50ZXh0KStcIilcIikuam9pbihcInxcIikrXCIpXCIsS2U9Lyg/OiR8XFwqXFwvKS8uc291cmNlLEl0PS8oPzouKj8pLy5zb3VyY2UscXQ9XCIoXCIrWWUrSXQrXCIpXCIsX3I9ZXQrcXQrS2U7cmV0dXJuIG5ldyBSZWdFeHAoX3IsXCJnaW1cIil9ZnVuY3Rpb24gZmUoaGUpe3JldHVybiBoZT49OTcmJmhlPD0xMjJ8fGhlPj02NSYmaGU8PTkwfHxoZT49NDgmJmhlPD01N31mdW5jdGlvbiBiZShoZSl7cmV0dXJuIGVvKGhlLFwiL25vZGVfbW9kdWxlcy9cIil9fWZ1bmN0aW9uIHpuKGosVCx4KXtyZXR1cm4gSygpLHRzX1JlbmFtZV9leHBvcnRzLmdldFJlbmFtZUluZm8oZCxHKGopLFQseHx8e30pfWZ1bmN0aW9uIFBpKGosVCx4LGYsJCxRKXtsZXRbTyxmZV09dHlwZW9mIFQ9PVwibnVtYmVyXCI/W1Qsdm9pZCAwXTpbVC5wb3MsVC5lbmRdO3JldHVybntmaWxlOmosc3RhcnRQb3NpdGlvbjpPLGVuZFBvc2l0aW9uOmZlLHByb2dyYW06dWUoKSxob3N0OmUsZm9ybWF0Q29udGV4dDp0c19mb3JtYXR0aW5nX2V4cG9ydHMuZ2V0Rm9ybWF0Q29udGV4dChmLGUpLGNhbmNlbGxhdGlvblRva2VuOnYscHJlZmVyZW5jZXM6eCx0cmlnZ2VyUmVhc29uOiQsa2luZDpRfX1mdW5jdGlvbiBpYShqLFQseCl7cmV0dXJue2ZpbGU6aixwcm9ncmFtOnVlKCksaG9zdDplLHNwYW46VCxwcmVmZXJlbmNlczp4LGNhbmNlbGxhdGlvblRva2VuOnZ9fWZ1bmN0aW9uIFduKGosVCl7cmV0dXJuIHRzX1NtYXJ0U2VsZWN0aW9uUmFuZ2VfZXhwb3J0cy5nZXRTbWFydFNlbGVjdGlvblJhbmdlKFQscC5nZXRDdXJyZW50U291cmNlRmlsZShqKSl9ZnVuY3Rpb24gRW4oaixULHg9ZW1wdHlPcHRpb25zLGYsJCxRKXtLKCk7bGV0IE89RyhqKTtyZXR1cm4gdHNfcmVmYWN0b3JfZXhwb3J0cy5nZXRBcHBsaWNhYmxlUmVmYWN0b3JzKFBpKE8sVCx4LGVtcHR5T3B0aW9ucyxmLCQpLFEpfWZ1bmN0aW9uIElpKGosVCx4PWVtcHR5T3B0aW9ucyl7SygpO2xldCBmPUcoaiksJD1OLmNoZWNrRGVmaW5lZChkLmdldFNvdXJjZUZpbGVzKCkpLFE9cmwoaiksTz1aYSgkLGJlPT4hKGQhPW51bGwmJmQuaXNTb3VyY2VGaWxlRnJvbUV4dGVybmFsTGlicmFyeShmKSkmJiEoZj09PUcoYmUuZmlsZU5hbWUpfHxRPT09XCIudHNcIiYmcmwoYmUuZmlsZU5hbWUpPT09XCIuZC50c1wifHxRPT09XCIuZC50c1wiJiZGcihUXyhiZS5maWxlTmFtZSksXCJsaWIuXCIpJiZybChiZS5maWxlTmFtZSk9PT1cIi5kLnRzXCIpJiZRPT09cmwoYmUuZmlsZU5hbWUpP2JlLmZpbGVOYW1lOnZvaWQgMCk7cmV0dXJue25ld0ZpbGVOYW1lOmNyZWF0ZU5ld0ZpbGVOYW1lKGYsZCxQaShmLFQseCxlbXB0eU9wdGlvbnMpLGUpLGZpbGVzOk99fWZ1bmN0aW9uIGFhKGosVCx4LGYsJCxRPWVtcHR5T3B0aW9ucyxPKXtLKCk7bGV0IGZlPUcoaik7cmV0dXJuIHRzX3JlZmFjdG9yX2V4cG9ydHMuZ2V0RWRpdHNGb3JSZWZhY3RvcihQaShmZSx4LFEsVCksZiwkLE8pfWZ1bmN0aW9uIFZuKGosVCl7cmV0dXJuIFQ9PT0wP3tsaW5lOjAsY2hhcmFjdGVyOjB9OkwudG9MaW5lQ29sdW1uT2Zmc2V0KGosVCl9ZnVuY3Rpb24gU3IoaixUKXtLKCk7bGV0IHg9dHNfQ2FsbEhpZXJhcmNoeV9leHBvcnRzLnJlc29sdmVDYWxsSGllcmFyY2h5RGVjbGFyYXRpb24oZCxnZXRUb3VjaGluZ1Byb3BlcnR5TmFtZShHKGopLFQpKTtyZXR1cm4geCYmbWFwT25lT3JNYW55KHgsZj0+dHNfQ2FsbEhpZXJhcmNoeV9leHBvcnRzLmNyZWF0ZUNhbGxIaWVyYXJjaHlJdGVtKGQsZikpfWZ1bmN0aW9uIEplKGosVCl7SygpO2xldCB4PUcoaiksZj1maXJzdE9yT25seSh0c19DYWxsSGllcmFyY2h5X2V4cG9ydHMucmVzb2x2ZUNhbGxIaWVyYXJjaHlEZWNsYXJhdGlvbihkLFQ9PT0wP3g6Z2V0VG91Y2hpbmdQcm9wZXJ0eU5hbWUoeCxUKSkpO3JldHVybiBmP3RzX0NhbGxIaWVyYXJjaHlfZXhwb3J0cy5nZXRJbmNvbWluZ0NhbGxzKGQsZix2KTpbXX1mdW5jdGlvbiBvYShqLFQpe0soKTtsZXQgeD1HKGopLGY9Zmlyc3RPck9ubHkodHNfQ2FsbEhpZXJhcmNoeV9leHBvcnRzLnJlc29sdmVDYWxsSGllcmFyY2h5RGVjbGFyYXRpb24oZCxUPT09MD94OmdldFRvdWNoaW5nUHJvcGVydHlOYW1lKHgsVCkpKTtyZXR1cm4gZj90c19DYWxsSGllcmFyY2h5X2V4cG9ydHMuZ2V0T3V0Z29pbmdDYWxscyhkLGYpOltdfWZ1bmN0aW9uIE10KGosVCx4PWVtcHR5T3B0aW9ucyl7SygpO2xldCBmPUcoaik7cmV0dXJuIHRzX0lubGF5SGludHNfZXhwb3J0cy5wcm92aWRlSW5sYXlIaW50cyhpYShmLFQseCkpfWxldCBMcj17ZGlzcG9zZTpDZSxjbGVhbnVwU2VtYW50aWNDYWNoZTphZSxnZXRTeW50YWN0aWNEaWFnbm9zdGljczpaZSxnZXRTZW1hbnRpY0RpYWdub3N0aWNzOnFlLGdldFN1Z2dlc3Rpb25EaWFnbm9zdGljczpydCxnZXRDb21waWxlck9wdGlvbnNEaWFnbm9zdGljczppdCxnZXRTeW50YWN0aWNDbGFzc2lmaWNhdGlvbnM6YXQsZ2V0U2VtYW50aWNDbGFzc2lmaWNhdGlvbnM6cHQsZ2V0RW5jb2RlZFN5bnRhY3RpY0NsYXNzaWZpY2F0aW9uczplcixnZXRFbmNvZGVkU2VtYW50aWNDbGFzc2lmaWNhdGlvbnM6TXIsZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uOklyLGdldENvbXBsZXRpb25FbnRyeURldGFpbHM6YXIsZ2V0Q29tcGxldGlvbkVudHJ5U3ltYm9sOmNpLGdldFNpZ25hdHVyZUhlbHBJdGVtczpVdCxnZXRRdWlja0luZm9BdFBvc2l0aW9uOm9yLGdldERlZmluaXRpb25BdFBvc2l0aW9uOkd0LGdldERlZmluaXRpb25BbmRCb3VuZFNwYW46VXIsZ2V0SW1wbGVtZW50YXRpb25BdFBvc2l0aW9uOlRuLGdldFR5cGVEZWZpbml0aW9uQXRQb3NpdGlvbjpYdCxnZXRSZWZlcmVuY2VzQXRQb3NpdGlvbjokdCxmaW5kUmVmZXJlbmNlczp4bixnZXRGaWxlUmVmZXJlbmNlczpUcixnZXREb2N1bWVudEhpZ2hsaWdodHM6U24sZ2V0TmFtZU9yRG90dGVkTmFtZVNwYW46aHQsZ2V0QnJlYWtwb2ludFN0YXRlbWVudEF0UG9zaXRpb246d24sZ2V0TmF2aWdhdGVUb0l0ZW1zOnZ0LGdldFJlbmFtZUluZm86em4sZ2V0U21hcnRTZWxlY3Rpb25SYW5nZTpXbixmaW5kUmVuYW1lTG9jYXRpb25zOnNyLGdldE5hdmlnYXRpb25CYXJJdGVtczpUdCxnZXROYXZpZ2F0aW9uVHJlZTpPcixnZXRPdXRsaW5pbmdTcGFuczpRdCxnZXRUb2RvQ29tbWVudHM6Q24sZ2V0QnJhY2VNYXRjaGluZ0F0UG9zaXRpb246Qm4sZ2V0SW5kZW50YXRpb25BdFBvc2l0aW9uOlVuLGdldEZvcm1hdHRpbmdFZGl0c0ZvclJhbmdlOnJuLGdldEZvcm1hdHRpbmdFZGl0c0ZvckRvY3VtZW50Om5uLGdldEZvcm1hdHRpbmdFZGl0c0FmdGVyS2V5c3Ryb2tlOkRpLGdldERvY0NvbW1lbnRUZW1wbGF0ZUF0UG9zaXRpb246bnQsaXNWYWxpZEJyYWNlQ29tcGxldGlvbkF0UG9zaXRpb246eixnZXRKc3hDbG9zaW5nVGFnQXRQb3NpdGlvbjpYLGdldExpbmtlZEVkaXRpbmdSYW5nZUF0UG9zaXRpb246ZWUsZ2V0U3Bhbk9mRW5jbG9zaW5nQ29tbWVudDpuYSxnZXRDb2RlRml4ZXNBdFBvc2l0aW9uOnFuLGdldENvbWJpbmVkQ29kZUZpeDpBZSxhcHBseUNvZGVBY3Rpb25Db21tYW5kOmdlLG9yZ2FuaXplSW1wb3J0czpxLGdldEVkaXRzRm9yRmlsZVJlbmFtZTpvZSxnZXRFbWl0T3V0cHV0OmN0LGdldE5vbkJvdW5kU291cmNlRmlsZTpmcixnZXRQcm9ncmFtOnVlLGdldEN1cnJlbnRQcm9ncmFtOigpPT5kLGdldEF1dG9JbXBvcnRQcm92aWRlcjpZLHVwZGF0ZUlzRGVmaW5pdGlvbk9mUmVmZXJlbmNlZFN5bWJvbHM6QixnZXRBcHBsaWNhYmxlUmVmYWN0b3JzOkVuLGdldEVkaXRzRm9yUmVmYWN0b3I6YWEsZ2V0TW92ZVRvUmVmYWN0b3JpbmdGaWxlU3VnZ2VzdGlvbnM6SWksdG9MaW5lQ29sdW1uT2Zmc2V0OlZuLGdldFNvdXJjZU1hcHBlcjooKT0+TCxjbGVhclNvdXJjZU1hcHBlckNhY2hlOigpPT5MLmNsZWFyQ2FjaGUoKSxwcmVwYXJlQ2FsbEhpZXJhcmNoeTpTcixwcm92aWRlQ2FsbEhpZXJhcmNoeUluY29taW5nQ2FsbHM6SmUscHJvdmlkZUNhbGxIaWVyYXJjaHlPdXRnb2luZ0NhbGxzOm9hLHRvZ2dsZUxpbmVDb21tZW50OmtlLHRvZ2dsZU11bHRpbGluZUNvbW1lbnQ6TGUsY29tbWVudFNlbGVjdGlvbjpsdCx1bmNvbW1lbnRTZWxlY3Rpb246eXQscHJvdmlkZUlubGF5SGludHM6TXQsZ2V0U3VwcG9ydGVkQ29kZUZpeGVzOmM3fTtzd2l0Y2goXyl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpyZy5mb3JFYWNoKGo9PkxyW2pdPSgpPT57dGhyb3cgbmV3IEVycm9yKGBMYW5ndWFnZVNlcnZpY2UgT3BlcmF0aW9uOiAke2p9IG5vdCBhbGxvd2VkIGluIExhbmd1YWdlU2VydmljZU1vZGUuUGFydGlhbFNlbWFudGljYCl9KTticmVhaztjYXNlIDI6dzcuZm9yRWFjaChqPT5McltqXT0oKT0+e3Rocm93IG5ldyBFcnJvcihgTGFuZ3VhZ2VTZXJ2aWNlIE9wZXJhdGlvbjogJHtqfSBub3QgYWxsb3dlZCBpbiBMYW5ndWFnZVNlcnZpY2VNb2RlLlN5bnRhY3RpY2ApfSk7YnJlYWs7ZGVmYXVsdDpOLmFzc2VydE5ldmVyKF8pfXJldHVybiBMcn1mdW5jdGlvbiB0QihlKXtyZXR1cm4gZS5uYW1lVGFibGV8fHJCKGUpLGUubmFtZVRhYmxlfWZ1bmN0aW9uIHJCKGUpe2xldCB0PWUubmFtZVRhYmxlPW5ldyBNYXA7ZS5mb3JFYWNoQ2hpbGQoZnVuY3Rpb24gcihhKXtpZihFZShhKSYmIWlzVGFnTmFtZShhKSYmYS5lc2NhcGVkVGV4dHx8UWkoYSkmJm5CKGEpKXtsZXQgXz1KVChhKTt0LnNldChfLHQuZ2V0KF8pPT09dm9pZCAwP2EucG9zOi0xKX1lbHNlIGlmKGpyKGEpKXtsZXQgXz1hLmVzY2FwZWRUZXh0O3Quc2V0KF8sdC5nZXQoXyk9PT12b2lkIDA/YS5wb3M6LTEpfWlmKEJ0KGEsciksV2koYSkpZm9yKGxldCBfIG9mIGEuanNEb2MpQnQoXyxyKX0pfWZ1bmN0aW9uIG5CKGUpe3JldHVybiB3VChlKXx8ZS5wYXJlbnQua2luZD09PTI4M3x8b0IoZSl8fENUKGUpfWZ1bmN0aW9uIHA3KGUpe2xldCB0PWlCKGUpO3JldHVybiB0JiYodW8odC5wYXJlbnQpfHxENih0LnBhcmVudCkpP3Q6dm9pZCAwfWZ1bmN0aW9uIGlCKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgMTE6Y2FzZSAxNTpjYXNlIDk6aWYoZS5wYXJlbnQua2luZD09PTE2NylyZXR1cm4gYjAoZS5wYXJlbnQucGFyZW50KT9lLnBhcmVudC5wYXJlbnQ6dm9pZCAwO2Nhc2UgODA6cmV0dXJuIGIwKGUucGFyZW50KSYmKGUucGFyZW50LnBhcmVudC5raW5kPT09MjEwfHxlLnBhcmVudC5wYXJlbnQua2luZD09PTI5MikmJmUucGFyZW50Lm5hbWU9PT1lP2UucGFyZW50OnZvaWQgMH19ZnVuY3Rpb24gYUIoZSx0KXtsZXQgcj1wNyhlKTtpZihyKXtsZXQgYT10LmdldENvbnRleHR1YWxUeXBlKHIucGFyZW50KSxfPWEmJmY3KHIsdCxhLCExKTtpZihfJiZfLmxlbmd0aD09PTEpcmV0dXJuIG9nKF8pfXJldHVybiB0LmdldFN5bWJvbEF0TG9jYXRpb24oZSl9ZnVuY3Rpb24gZjcoZSx0LHIsYSl7bGV0IF89Z2V0TmFtZUZyb21Qcm9wZXJ0eU5hbWUoZS5uYW1lKTtpZighXylyZXR1cm4gJGU7aWYoIXIuaXNVbmlvbigpKXtsZXQgZD1yLmdldFByb3BlcnR5KF8pO3JldHVybiBkP1tkXTokZX1sZXQgcD1aYShyLnR5cGVzLGQ9Pih1byhlLnBhcmVudCl8fEQ2KGUucGFyZW50KSkmJnQuaXNUeXBlSW52YWxpZER1ZVRvVW5pb25EaXNjcmltaW5hbnQoZCxlLnBhcmVudCk/dm9pZCAwOmQuZ2V0UHJvcGVydHkoXykpO2lmKGEmJihwLmxlbmd0aD09PTB8fHAubGVuZ3RoPT09ci50eXBlcy5sZW5ndGgpKXtsZXQgZD1yLmdldFByb3BlcnR5KF8pO2lmKGQpcmV0dXJuW2RdfXJldHVybiBwLmxlbmd0aD09PTA/WmEoci50eXBlcyxkPT5kLmdldFByb3BlcnR5KF8pKTpwfWZ1bmN0aW9uIG9CKGUpe3JldHVybiBlJiZlLnBhcmVudCYmZS5wYXJlbnQua2luZD09PTIxMiYmZS5wYXJlbnQuYXJndW1lbnRFeHByZXNzaW9uPT09ZX1mdW5jdGlvbiBzQihlKXtpZihmMClyZXR1cm4gaHIoJGkocG4oZjAuZ2V0RXhlY3V0aW5nRmlsZVBhdGgoKSkpLFQ0KGUpKTt0aHJvdyBuZXcgRXJyb3IoXCJnZXREZWZhdWx0TGliRmlsZVBhdGggaXMgb25seSBzdXBwb3J0ZWQgd2hlbiBjb25zdW1lZCBhcyBhIG5vZGUgbW9kdWxlLiBcIil9dmFyIGQ3LE5kLERmLG03LFc2LE9kLE1kLGg3LHk3LGc3LGI3LHY3LFQ3LFM3LHg3LHJnLHc3LF9CPVZ0KHtcInNyYy9zZXJ2aWNlcy9zZXJ2aWNlcy50c1wiKCl7XCJ1c2Ugc3RyaWN0XCI7QzcoKSxyNygpLG43KCksaTcoKSx0NygpLCRGKCksZDc9XCIwLjhcIixOZD1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5wb3M9dCx0aGlzLmVuZD1yLHRoaXMuZmxhZ3M9MCx0aGlzLm1vZGlmaWVyRmxhZ3NDYWNoZT0wLHRoaXMudHJhbnNmb3JtRmxhZ3M9MCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5raW5kPWV9YXNzZXJ0SGFzUmVhbFBvc2l0aW9uKGUpe04uYXNzZXJ0KCFPYSh0aGlzLnBvcykmJiFPYSh0aGlzLmVuZCksZXx8XCJOb2RlIG11c3QgaGF2ZSBhIHJlYWwgcG9zaXRpb24gZm9yIHRoaXMgb3BlcmF0aW9uXCIpfWdldFNvdXJjZUZpbGUoKXtyZXR1cm4gcmkodGhpcyl9Z2V0U3RhcnQoZSx0KXtyZXR1cm4gdGhpcy5hc3NlcnRIYXNSZWFsUG9zaXRpb24oKSxHbyh0aGlzLGUsdCl9Z2V0RnVsbFN0YXJ0KCl7cmV0dXJuIHRoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCksdGhpcy5wb3N9Z2V0RW5kKCl7cmV0dXJuIHRoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCksdGhpcy5lbmR9Z2V0V2lkdGgoZSl7cmV0dXJuIHRoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCksdGhpcy5nZXRFbmQoKS10aGlzLmdldFN0YXJ0KGUpfWdldEZ1bGxXaWR0aCgpe3JldHVybiB0aGlzLmFzc2VydEhhc1JlYWxQb3NpdGlvbigpLHRoaXMuZW5kLXRoaXMucG9zfWdldExlYWRpbmdUcml2aWFXaWR0aChlKXtyZXR1cm4gdGhpcy5hc3NlcnRIYXNSZWFsUG9zaXRpb24oKSx0aGlzLmdldFN0YXJ0KGUpLXRoaXMucG9zfWdldEZ1bGxUZXh0KGUpe3JldHVybiB0aGlzLmFzc2VydEhhc1JlYWxQb3NpdGlvbigpLChlfHx0aGlzLmdldFNvdXJjZUZpbGUoKSkudGV4dC5zdWJzdHJpbmcodGhpcy5wb3MsdGhpcy5lbmQpfWdldFRleHQoZSl7cmV0dXJuIHRoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCksZXx8KGU9dGhpcy5nZXRTb3VyY2VGaWxlKCkpLGUudGV4dC5zdWJzdHJpbmcodGhpcy5nZXRTdGFydChlKSx0aGlzLmdldEVuZCgpKX1nZXRDaGlsZENvdW50KGUpe3JldHVybiB0aGlzLmdldENoaWxkcmVuKGUpLmxlbmd0aH1nZXRDaGlsZEF0KGUsdCl7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRyZW4odClbZV19Z2V0Q2hpbGRyZW4oZSl7cmV0dXJuIHRoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKFwiTm9kZSB3aXRob3V0IGEgcmVhbCBwb3NpdGlvbiBjYW5ub3QgYmUgc2Nhbm5lZCBhbmQgdGh1cyBoYXMgbm8gdG9rZW4gbm9kZXMgLSB1c2UgZm9yRWFjaENoaWxkIGFuZCBjb2xsZWN0IHRoZSByZXN1bHQgaWYgdGhhdCdzIGZpbmVcIiksdGhpcy5fY2hpbGRyZW58fCh0aGlzLl9jaGlsZHJlbj1RRih0aGlzLGUpKX1nZXRGaXJzdFRva2VuKGUpe3RoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCk7bGV0IHQ9dGhpcy5nZXRDaGlsZHJlbihlKTtpZighdC5sZW5ndGgpcmV0dXJuO2xldCByPVlyKHQsYT0+YS5raW5kPDMxNnx8YS5raW5kPjM1Nyk7cmV0dXJuIHIua2luZDwxNjY/cjpyLmdldEZpcnN0VG9rZW4oZSl9Z2V0TGFzdFRva2VuKGUpe3RoaXMuYXNzZXJ0SGFzUmVhbFBvc2l0aW9uKCk7bGV0IHQ9dGhpcy5nZXRDaGlsZHJlbihlKSxyPXdpKHQpO2lmKHIpcmV0dXJuIHIua2luZDwxNjY/cjpyLmdldExhc3RUb2tlbihlKX1mb3JFYWNoQ2hpbGQoZSx0KXtyZXR1cm4gQnQodGhpcyxlLHQpfX0sRGY9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnBvcz1lLHRoaXMuZW5kPXQsdGhpcy5mbGFncz0wLHRoaXMubW9kaWZpZXJGbGFnc0NhY2hlPTAsdGhpcy50cmFuc2Zvcm1GbGFncz0wLHRoaXMucGFyZW50PXZvaWQgMH1nZXRTb3VyY2VGaWxlKCl7cmV0dXJuIHJpKHRoaXMpfWdldFN0YXJ0KGUsdCl7cmV0dXJuIEdvKHRoaXMsZSx0KX1nZXRGdWxsU3RhcnQoKXtyZXR1cm4gdGhpcy5wb3N9Z2V0RW5kKCl7cmV0dXJuIHRoaXMuZW5kfWdldFdpZHRoKGUpe3JldHVybiB0aGlzLmdldEVuZCgpLXRoaXMuZ2V0U3RhcnQoZSl9Z2V0RnVsbFdpZHRoKCl7cmV0dXJuIHRoaXMuZW5kLXRoaXMucG9zfWdldExlYWRpbmdUcml2aWFXaWR0aChlKXtyZXR1cm4gdGhpcy5nZXRTdGFydChlKS10aGlzLnBvc31nZXRGdWxsVGV4dChlKXtyZXR1cm4oZXx8dGhpcy5nZXRTb3VyY2VGaWxlKCkpLnRleHQuc3Vic3RyaW5nKHRoaXMucG9zLHRoaXMuZW5kKX1nZXRUZXh0KGUpe3JldHVybiBlfHwoZT10aGlzLmdldFNvdXJjZUZpbGUoKSksZS50ZXh0LnN1YnN0cmluZyh0aGlzLmdldFN0YXJ0KGUpLHRoaXMuZ2V0RW5kKCkpfWdldENoaWxkQ291bnQoKXtyZXR1cm4gdGhpcy5nZXRDaGlsZHJlbigpLmxlbmd0aH1nZXRDaGlsZEF0KGUpe3JldHVybiB0aGlzLmdldENoaWxkcmVuKClbZV19Z2V0Q2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5raW5kPT09MSYmdGhpcy5qc0RvY3x8JGV9Z2V0Rmlyc3RUb2tlbigpe31nZXRMYXN0VG9rZW4oKXt9Zm9yRWFjaENoaWxkKCl7fX0sbTc9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmlkPTAsdGhpcy5tZXJnZUlkPTAsdGhpcy5mbGFncz1lLHRoaXMuZXNjYXBlZE5hbWU9dH1nZXRGbGFncygpe3JldHVybiB0aGlzLmZsYWdzfWdldCBuYW1lKCl7cmV0dXJuIG1kKHRoaXMpfWdldEVzY2FwZWROYW1lKCl7cmV0dXJuIHRoaXMuZXNjYXBlZE5hbWV9Z2V0TmFtZSgpe3JldHVybiB0aGlzLm5hbWV9Z2V0RGVjbGFyYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVjbGFyYXRpb25zfWdldERvY3VtZW50YXRpb25Db21tZW50KGUpe2lmKCF0aGlzLmRvY3VtZW50YXRpb25Db21tZW50KWlmKHRoaXMuZG9jdW1lbnRhdGlvbkNvbW1lbnQ9JGUsIXRoaXMuZGVjbGFyYXRpb25zJiZUMCh0aGlzKSYmdGhpcy5saW5rcy50YXJnZXQmJlQwKHRoaXMubGlua3MudGFyZ2V0KSYmdGhpcy5saW5rcy50YXJnZXQubGlua3MudHVwbGVMYWJlbERlY2xhcmF0aW9uKXtsZXQgdD10aGlzLmxpbmtzLnRhcmdldC5saW5rcy50dXBsZUxhYmVsRGVjbGFyYXRpb247dGhpcy5kb2N1bWVudGF0aW9uQ29tbWVudD1LYyhbdF0sZSl9ZWxzZSB0aGlzLmRvY3VtZW50YXRpb25Db21tZW50PUtjKHRoaXMuZGVjbGFyYXRpb25zLGUpO3JldHVybiB0aGlzLmRvY3VtZW50YXRpb25Db21tZW50fWdldENvbnRleHR1YWxEb2N1bWVudGF0aW9uQ29tbWVudChlLHQpe2lmKGUpe2lmKGVsKGUpJiYodGhpcy5jb250ZXh0dWFsR2V0QWNjZXNzb3JEb2N1bWVudGF0aW9uQ29tbWVudHx8KHRoaXMuY29udGV4dHVhbEdldEFjY2Vzc29yRG9jdW1lbnRhdGlvbkNvbW1lbnQ9S2MoJHIodGhpcy5kZWNsYXJhdGlvbnMsZWwpLHQpKSxLYSh0aGlzLmNvbnRleHR1YWxHZXRBY2Nlc3NvckRvY3VtZW50YXRpb25Db21tZW50KSkpcmV0dXJuIHRoaXMuY29udGV4dHVhbEdldEFjY2Vzc29yRG9jdW1lbnRhdGlvbkNvbW1lbnQ7aWYoWmMoZSkmJih0aGlzLmNvbnRleHR1YWxTZXRBY2Nlc3NvckRvY3VtZW50YXRpb25Db21tZW50fHwodGhpcy5jb250ZXh0dWFsU2V0QWNjZXNzb3JEb2N1bWVudGF0aW9uQ29tbWVudD1LYygkcih0aGlzLmRlY2xhcmF0aW9ucyxaYyksdCkpLEthKHRoaXMuY29udGV4dHVhbFNldEFjY2Vzc29yRG9jdW1lbnRhdGlvbkNvbW1lbnQpKSlyZXR1cm4gdGhpcy5jb250ZXh0dWFsU2V0QWNjZXNzb3JEb2N1bWVudGF0aW9uQ29tbWVudH1yZXR1cm4gdGhpcy5nZXREb2N1bWVudGF0aW9uQ29tbWVudCh0KX1nZXRKc0RvY1RhZ3MoZSl7cmV0dXJuIHRoaXMudGFncz09PXZvaWQgMCYmKHRoaXMudGFncz1rZih0aGlzLmRlY2xhcmF0aW9ucyxlKSksdGhpcy50YWdzfWdldENvbnRleHR1YWxKc0RvY1RhZ3MoZSx0KXtpZihlKXtpZihlbChlKSYmKHRoaXMuY29udGV4dHVhbEdldEFjY2Vzc29yVGFnc3x8KHRoaXMuY29udGV4dHVhbEdldEFjY2Vzc29yVGFncz1rZigkcih0aGlzLmRlY2xhcmF0aW9ucyxlbCksdCkpLEthKHRoaXMuY29udGV4dHVhbEdldEFjY2Vzc29yVGFncykpKXJldHVybiB0aGlzLmNvbnRleHR1YWxHZXRBY2Nlc3NvclRhZ3M7aWYoWmMoZSkmJih0aGlzLmNvbnRleHR1YWxTZXRBY2Nlc3NvclRhZ3N8fCh0aGlzLmNvbnRleHR1YWxTZXRBY2Nlc3NvclRhZ3M9a2YoJHIodGhpcy5kZWNsYXJhdGlvbnMsWmMpLHQpKSxLYSh0aGlzLmNvbnRleHR1YWxTZXRBY2Nlc3NvclRhZ3MpKSlyZXR1cm4gdGhpcy5jb250ZXh0dWFsU2V0QWNjZXNzb3JUYWdzfXJldHVybiB0aGlzLmdldEpzRG9jVGFncyh0KX19LFc2PWNsYXNzIGV4dGVuZHMgRGZ7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKHQsciksdGhpcy5raW5kPWV9fSxPZD1jbGFzcyBleHRlbmRzIERme2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcih0LHIpLHRoaXMua2luZD04MH1nZXQgdGV4dCgpe3JldHVybiBPdCh0aGlzKX19LE9kLnByb3RvdHlwZS5raW5kPTgwLE1kPWNsYXNzIGV4dGVuZHMgRGZ7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKHQsciksdGhpcy5raW5kPTgxfWdldCB0ZXh0KCl7cmV0dXJuIE90KHRoaXMpfX0sTWQucHJvdG90eXBlLmtpbmQ9ODEsaDc9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNoZWNrZXI9ZSx0aGlzLmZsYWdzPXR9Z2V0RmxhZ3MoKXtyZXR1cm4gdGhpcy5mbGFnc31nZXRTeW1ib2woKXtyZXR1cm4gdGhpcy5zeW1ib2x9Z2V0UHJvcGVydGllcygpe3JldHVybiB0aGlzLmNoZWNrZXIuZ2V0UHJvcGVydGllc09mVHlwZSh0aGlzKX1nZXRQcm9wZXJ0eShlKXtyZXR1cm4gdGhpcy5jaGVja2VyLmdldFByb3BlcnR5T2ZUeXBlKHRoaXMsZSl9Z2V0QXBwYXJlbnRQcm9wZXJ0aWVzKCl7cmV0dXJuIHRoaXMuY2hlY2tlci5nZXRBdWdtZW50ZWRQcm9wZXJ0aWVzT2ZUeXBlKHRoaXMpfWdldENhbGxTaWduYXR1cmVzKCl7cmV0dXJuIHRoaXMuY2hlY2tlci5nZXRTaWduYXR1cmVzT2ZUeXBlKHRoaXMsMCl9Z2V0Q29uc3RydWN0U2lnbmF0dXJlcygpe3JldHVybiB0aGlzLmNoZWNrZXIuZ2V0U2lnbmF0dXJlc09mVHlwZSh0aGlzLDEpfWdldFN0cmluZ0luZGV4VHlwZSgpe3JldHVybiB0aGlzLmNoZWNrZXIuZ2V0SW5kZXhUeXBlT2ZUeXBlKHRoaXMsMCl9Z2V0TnVtYmVySW5kZXhUeXBlKCl7cmV0dXJuIHRoaXMuY2hlY2tlci5nZXRJbmRleFR5cGVPZlR5cGUodGhpcywxKX1nZXRCYXNlVHlwZXMoKXtyZXR1cm4gdGhpcy5pc0NsYXNzT3JJbnRlcmZhY2UoKT90aGlzLmNoZWNrZXIuZ2V0QmFzZVR5cGVzKHRoaXMpOnZvaWQgMH1pc051bGxhYmxlVHlwZSgpe3JldHVybiB0aGlzLmNoZWNrZXIuaXNOdWxsYWJsZVR5cGUodGhpcyl9Z2V0Tm9uTnVsbGFibGVUeXBlKCl7cmV0dXJuIHRoaXMuY2hlY2tlci5nZXROb25OdWxsYWJsZVR5cGUodGhpcyl9Z2V0Tm9uT3B0aW9uYWxUeXBlKCl7cmV0dXJuIHRoaXMuY2hlY2tlci5nZXROb25PcHRpb25hbFR5cGUodGhpcyl9Z2V0Q29uc3RyYWludCgpe3JldHVybiB0aGlzLmNoZWNrZXIuZ2V0QmFzZUNvbnN0cmFpbnRPZlR5cGUodGhpcyl9Z2V0RGVmYXVsdCgpe3JldHVybiB0aGlzLmNoZWNrZXIuZ2V0RGVmYXVsdEZyb21UeXBlUGFyYW1ldGVyKHRoaXMpfWlzVW5pb24oKXtyZXR1cm4hISh0aGlzLmZsYWdzJjEwNDg1NzYpfWlzSW50ZXJzZWN0aW9uKCl7cmV0dXJuISEodGhpcy5mbGFncyYyMDk3MTUyKX1pc1VuaW9uT3JJbnRlcnNlY3Rpb24oKXtyZXR1cm4hISh0aGlzLmZsYWdzJjMxNDU3MjgpfWlzTGl0ZXJhbCgpe3JldHVybiEhKHRoaXMuZmxhZ3MmMjQzMil9aXNTdHJpbmdMaXRlcmFsKCl7cmV0dXJuISEodGhpcy5mbGFncyYxMjgpfWlzTnVtYmVyTGl0ZXJhbCgpe3JldHVybiEhKHRoaXMuZmxhZ3MmMjU2KX1pc1R5cGVQYXJhbWV0ZXIoKXtyZXR1cm4hISh0aGlzLmZsYWdzJjI2MjE0NCl9aXNDbGFzc09ySW50ZXJmYWNlKCl7cmV0dXJuISEoUmYodGhpcykmMyl9aXNDbGFzcygpe3JldHVybiEhKFJmKHRoaXMpJjEpfWlzSW5kZXhUeXBlKCl7cmV0dXJuISEodGhpcy5mbGFncyY0MTk0MzA0KX1nZXQgdHlwZUFyZ3VtZW50cygpe2lmKFJmKHRoaXMpJjQpcmV0dXJuIHRoaXMuY2hlY2tlci5nZXRUeXBlQXJndW1lbnRzKHRoaXMpfX0seTc9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNoZWNrZXI9ZSx0aGlzLmZsYWdzPXR9Z2V0RGVjbGFyYXRpb24oKXtyZXR1cm4gdGhpcy5kZWNsYXJhdGlvbn1nZXRUeXBlUGFyYW1ldGVycygpe3JldHVybiB0aGlzLnR5cGVQYXJhbWV0ZXJzfWdldFBhcmFtZXRlcnMoKXtyZXR1cm4gdGhpcy5wYXJhbWV0ZXJzfWdldFJldHVyblR5cGUoKXtyZXR1cm4gdGhpcy5jaGVja2VyLmdldFJldHVyblR5cGVPZlNpZ25hdHVyZSh0aGlzKX1nZXRUeXBlUGFyYW1ldGVyQXRQb3NpdGlvbihlKXtsZXQgdD10aGlzLmNoZWNrZXIuZ2V0UGFyYW1ldGVyVHlwZSh0aGlzLGUpO2lmKHQuaXNJbmRleFR5cGUoKSYmb3godC50eXBlKSl7bGV0IHI9dC50eXBlLmdldENvbnN0cmFpbnQoKTtpZihyKXJldHVybiB0aGlzLmNoZWNrZXIuZ2V0SW5kZXhUeXBlKHIpfXJldHVybiB0fWdldERvY3VtZW50YXRpb25Db21tZW50KCl7cmV0dXJuIHRoaXMuZG9jdW1lbnRhdGlvbkNvbW1lbnR8fCh0aGlzLmRvY3VtZW50YXRpb25Db21tZW50PUtjKCRmKHRoaXMuZGVjbGFyYXRpb24pLHRoaXMuY2hlY2tlcikpfWdldEpzRG9jVGFncygpe3JldHVybiB0aGlzLmpzRG9jVGFnc3x8KHRoaXMuanNEb2NUYWdzPWtmKCRmKHRoaXMuZGVjbGFyYXRpb24pLHRoaXMuY2hlY2tlcikpfX0sZzc9Y2xhc3MgZXh0ZW5kcyBOZHtjb25zdHJ1Y3RvcihlLHQscil7c3VwZXIoZSx0LHIpLHRoaXMua2luZD0zMTJ9dXBkYXRlKGUsdCl7cmV0dXJuIHE2KHRoaXMsZSx0KX1nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihlKXtyZXR1cm4gdG8odGhpcyxlKX1nZXRMaW5lU3RhcnRzKCl7cmV0dXJuIElhKHRoaXMpfWdldFBvc2l0aW9uT2ZMaW5lQW5kQ2hhcmFjdGVyKGUsdCxyKXtyZXR1cm4gVGcoSWEodGhpcyksZSx0LHRoaXMudGV4dCxyKX1nZXRMaW5lRW5kT2ZQb3NpdGlvbihlKXtsZXR7bGluZTp0fT10aGlzLmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKGUpLHI9dGhpcy5nZXRMaW5lU3RhcnRzKCksYTt0KzE+PXIubGVuZ3RoJiYoYT10aGlzLmdldEVuZCgpKSxhfHwoYT1yW3QrMV0tMSk7bGV0IF89dGhpcy5nZXRGdWxsVGV4dCgpO3JldHVybiBfW2FdPT09YFxuYCYmX1thLTFdPT09XCJcXHJcIj9hLTE6YX1nZXROYW1lZERlY2xhcmF0aW9ucygpe3JldHVybiB0aGlzLm5hbWVkRGVjbGFyYXRpb25zfHwodGhpcy5uYW1lZERlY2xhcmF0aW9ucz10aGlzLmNvbXB1dGVOYW1lZERlY2xhcmF0aW9ucygpKSx0aGlzLm5hbWVkRGVjbGFyYXRpb25zfWNvbXB1dGVOYW1lZERlY2xhcmF0aW9ucygpe2xldCBlPWpkKCk7cmV0dXJuIHRoaXMuZm9yRWFjaENoaWxkKF8pLGU7ZnVuY3Rpb24gdChwKXtsZXQgZD1hKHApO2QmJmUuYWRkKGQscCl9ZnVuY3Rpb24gcihwKXtsZXQgZD1lLmdldChwKTtyZXR1cm4gZHx8ZS5zZXQocCxkPVtdKSxkfWZ1bmN0aW9uIGEocCl7bGV0IGQ9WWQocCk7cmV0dXJuIGQmJihhbyhkKSYmQnIoZC5leHByZXNzaW9uKT9kLmV4cHJlc3Npb24ubmFtZS50ZXh0OnpsKGQpP2dldE5hbWVGcm9tUHJvcGVydHlOYW1lKGQpOnZvaWQgMCl9ZnVuY3Rpb24gXyhwKXtzd2l0Y2gocC5raW5kKXtjYXNlIDI2MjpjYXNlIDIxODpjYXNlIDE3NDpjYXNlIDE3MzpsZXQgZD1wLGg9YShkKTtpZihoKXtsZXQgeT1yKGgpLEM9d2koeSk7QyYmZC5wYXJlbnQ9PT1DLnBhcmVudCYmZC5zeW1ib2w9PT1DLnN5bWJvbD9kLmJvZHkmJiFDLmJvZHkmJih5W3kubGVuZ3RoLTFdPWQpOnkucHVzaChkKX1CdChwLF8pO2JyZWFrO2Nhc2UgMjYzOmNhc2UgMjMxOmNhc2UgMjY0OmNhc2UgMjY1OmNhc2UgMjY2OmNhc2UgMjY3OmNhc2UgMjcxOmNhc2UgMjgxOmNhc2UgMjc2OmNhc2UgMjczOmNhc2UgMjc0OmNhc2UgMTc3OmNhc2UgMTc4OmNhc2UgMTg3OnQocCksQnQocCxfKTticmVhaztjYXNlIDE2OTppZighZ3IocCwxNjQ3NikpYnJlYWs7Y2FzZSAyNjA6Y2FzZSAyMDg6e2xldCB5PXA7aWYoaW0oeS5uYW1lKSl7QnQoeS5uYW1lLF8pO2JyZWFrfXkuaW5pdGlhbGl6ZXImJl8oeS5pbml0aWFsaXplcil9Y2FzZSAzMDY6Y2FzZSAxNzI6Y2FzZSAxNzE6dChwKTticmVhaztjYXNlIDI3ODpsZXQgbD1wO2wuZXhwb3J0Q2xhdXNlJiYoZDgobC5leHBvcnRDbGF1c2UpP3lyKGwuZXhwb3J0Q2xhdXNlLmVsZW1lbnRzLF8pOl8obC5leHBvcnRDbGF1c2UubmFtZSkpO2JyZWFrO2Nhc2UgMjcyOmxldCB2PXAuaW1wb3J0Q2xhdXNlO3YmJih2Lm5hbWUmJnQodi5uYW1lKSx2Lm5hbWVkQmluZGluZ3MmJih2Lm5hbWVkQmluZGluZ3Mua2luZD09PTI3ND90KHYubmFtZWRCaW5kaW5ncyk6eXIodi5uYW1lZEJpbmRpbmdzLmVsZW1lbnRzLF8pKSk7YnJlYWs7Y2FzZSAyMjY6SmEocCkhPT0wJiZ0KHApO2RlZmF1bHQ6QnQocCxfKX19fX0sYjc9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHIpe3RoaXMuZmlsZU5hbWU9ZSx0aGlzLnRleHQ9dCx0aGlzLnNraXBUcml2aWE9cn1nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihlKXtyZXR1cm4gdG8odGhpcyxlKX19LHY3PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuaG9zdD1lfWdldEN1cnJlbnRTb3VyY2VGaWxlKGUpe3ZhciB0LHIsYSxfLHAsZCxoLGw7bGV0IHY9dGhpcy5ob3N0LmdldFNjcmlwdFNuYXBzaG90KGUpO2lmKCF2KXRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGZpbGU6ICdcIitlK1wiJy5cIik7bGV0IHk9Z2V0U2NyaXB0S2luZChlLHRoaXMuaG9zdCksQz10aGlzLmhvc3QuZ2V0U2NyaXB0VmVyc2lvbihlKSxTO2lmKHRoaXMuY3VycmVudEZpbGVOYW1lIT09ZSl7bGV0IGs9e2xhbmd1YWdlVmVyc2lvbjo5OSxpbXBsaWVkTm9kZUZvcm1hdDpnZXRJbXBsaWVkTm9kZUZvcm1hdEZvckZpbGUoeGkoZSx0aGlzLmhvc3QuZ2V0Q3VycmVudERpcmVjdG9yeSgpLCgoYT0ocj0odD10aGlzLmhvc3QpLmdldENvbXBpbGVySG9zdCk9PW51bGw/dm9pZCAwOnIuY2FsbCh0KSk9PW51bGw/dm9pZCAwOmEuZ2V0Q2Fub25pY2FsRmlsZU5hbWUpfHxWVCh0aGlzLmhvc3QpKSwobD0oaD0oZD0ocD0oXz10aGlzLmhvc3QpLmdldENvbXBpbGVySG9zdCk9PW51bGw/dm9pZCAwOnAuY2FsbChfKSk9PW51bGw/dm9pZCAwOmQuZ2V0TW9kdWxlUmVzb2x1dGlvbkNhY2hlKT09bnVsbD92b2lkIDA6aC5jYWxsKGQpKT09bnVsbD92b2lkIDA6bC5nZXRQYWNrYWdlSnNvbkluZm9DYWNoZSgpLHRoaXMuaG9zdCx0aGlzLmhvc3QuZ2V0Q29tcGlsYXRpb25TZXR0aW5ncygpKSxzZXRFeHRlcm5hbE1vZHVsZUluZGljYXRvcjpSUyh0aGlzLmhvc3QuZ2V0Q29tcGlsYXRpb25TZXR0aW5ncygpKX07Uz16NihlLHYsayxDLCEwLHkpfWVsc2UgaWYodGhpcy5jdXJyZW50RmlsZVZlcnNpb24hPT1DKXtsZXQgaz12LmdldENoYW5nZVJhbmdlKHRoaXMuY3VycmVudEZpbGVTY3JpcHRTbmFwc2hvdCk7Uz11Nyh0aGlzLmN1cnJlbnRTb3VyY2VGaWxlLHYsQyxrKX1yZXR1cm4gUyYmKHRoaXMuY3VycmVudEZpbGVWZXJzaW9uPUMsdGhpcy5jdXJyZW50RmlsZU5hbWU9ZSx0aGlzLmN1cnJlbnRGaWxlU2NyaXB0U25hcHNob3Q9dix0aGlzLmN1cnJlbnRTb3VyY2VGaWxlPVMpLHRoaXMuY3VycmVudFNvdXJjZUZpbGV9fSxUNz17aXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6WGYsdGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZDpSbn0sUzc9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5jYW5jZWxsYXRpb25Ub2tlbj1lfWlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCl7cmV0dXJuIHRoaXMuY2FuY2VsbGF0aW9uVG9rZW4uaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKX10aHJvd0lmQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCl7dmFyIGU7aWYodGhpcy5pc0NhbmNlbGxhdGlvblJlcXVlc3RlZCgpKXRocm93KGU9eGEpPT1udWxsfHxlLmluc3RhbnQoeGEuUGhhc2UuU2Vzc2lvbixcImNhbmNlbGxhdGlvblRocm93blwiLHtraW5kOlwiQ2FuY2VsbGF0aW9uVG9rZW5PYmplY3RcIn0pLG5ldyBpZH19LHg3PWNsYXNze2NvbnN0cnVjdG9yKGUsdD0yMCl7dGhpcy5ob3N0Q2FuY2VsbGF0aW9uVG9rZW49ZSx0aGlzLnRocm90dGxlV2FpdE1pbGxpc2Vjb25kcz10LHRoaXMubGFzdENhbmNlbGxhdGlvbkNoZWNrVGltZT0wfWlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCl7bGV0IGU9U2EoKTtyZXR1cm4gTWF0aC5hYnMoZS10aGlzLmxhc3RDYW5jZWxsYXRpb25DaGVja1RpbWUpPj10aGlzLnRocm90dGxlV2FpdE1pbGxpc2Vjb25kcz8odGhpcy5sYXN0Q2FuY2VsbGF0aW9uQ2hlY2tUaW1lPWUsdGhpcy5ob3N0Q2FuY2VsbGF0aW9uVG9rZW4uaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKSk6ITF9dGhyb3dJZkNhbmNlbGxhdGlvblJlcXVlc3RlZCgpe3ZhciBlO2lmKHRoaXMuaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKSl0aHJvdyhlPXhhKT09bnVsbHx8ZS5pbnN0YW50KHhhLlBoYXNlLlNlc3Npb24sXCJjYW5jZWxsYXRpb25UaHJvd25cIix7a2luZDpcIlRocm90dGxlZENhbmNlbGxhdGlvblRva2VuXCJ9KSxuZXcgaWR9fSxyZz1bXCJnZXRTZW1hbnRpY0RpYWdub3N0aWNzXCIsXCJnZXRTdWdnZXN0aW9uRGlhZ25vc3RpY3NcIixcImdldENvbXBpbGVyT3B0aW9uc0RpYWdub3N0aWNzXCIsXCJnZXRTZW1hbnRpY0NsYXNzaWZpY2F0aW9uc1wiLFwiZ2V0RW5jb2RlZFNlbWFudGljQ2xhc3NpZmljYXRpb25zXCIsXCJnZXRDb2RlRml4ZXNBdFBvc2l0aW9uXCIsXCJnZXRDb21iaW5lZENvZGVGaXhcIixcImFwcGx5Q29kZUFjdGlvbkNvbW1hbmRcIixcIm9yZ2FuaXplSW1wb3J0c1wiLFwiZ2V0RWRpdHNGb3JGaWxlUmVuYW1lXCIsXCJnZXRFbWl0T3V0cHV0XCIsXCJnZXRBcHBsaWNhYmxlUmVmYWN0b3JzXCIsXCJnZXRFZGl0c0ZvclJlZmFjdG9yXCIsXCJwcmVwYXJlQ2FsbEhpZXJhcmNoeVwiLFwicHJvdmlkZUNhbGxIaWVyYXJjaHlJbmNvbWluZ0NhbGxzXCIsXCJwcm92aWRlQ2FsbEhpZXJhcmNoeU91dGdvaW5nQ2FsbHNcIixcInByb3ZpZGVJbmxheUhpbnRzXCIsXCJnZXRTdXBwb3J0ZWRDb2RlRml4ZXNcIl0sdzc9Wy4uLnJnLFwiZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uXCIsXCJnZXRDb21wbGV0aW9uRW50cnlEZXRhaWxzXCIsXCJnZXRDb21wbGV0aW9uRW50cnlTeW1ib2xcIixcImdldFNpZ25hdHVyZUhlbHBJdGVtc1wiLFwiZ2V0UXVpY2tJbmZvQXRQb3NpdGlvblwiLFwiZ2V0RGVmaW5pdGlvbkF0UG9zaXRpb25cIixcImdldERlZmluaXRpb25BbmRCb3VuZFNwYW5cIixcImdldEltcGxlbWVudGF0aW9uQXRQb3NpdGlvblwiLFwiZ2V0VHlwZURlZmluaXRpb25BdFBvc2l0aW9uXCIsXCJnZXRSZWZlcmVuY2VzQXRQb3NpdGlvblwiLFwiZmluZFJlZmVyZW5jZXNcIixcImdldERvY3VtZW50SGlnaGxpZ2h0c1wiLFwiZ2V0TmF2aWdhdGVUb0l0ZW1zXCIsXCJnZXRSZW5hbWVJbmZvXCIsXCJmaW5kUmVuYW1lTG9jYXRpb25zXCIsXCJnZXRBcHBsaWNhYmxlUmVmYWN0b3JzXCJdLElTKEtGKCkpfX0pLGNCPSgpPT57fSxsQj0oKT0+e30sdUI9KCk9Pnt9LHBCPSgpPT57fSxmQj0oKT0+e30sZEI9KCk9Pnt9LG1CPSgpPT57fSxoQj0oKT0+e30seUI9KCk9Pnt9LGdCPSgpPT57fSxiQj0oKT0+e30sdkI9KCk9Pnt9LFRCPSgpPT57fSxTQj0oKT0+e30seEI9KCk9Pnt9LHdCPSgpPT57fSxDQj0oKT0+e30sRUI9KCk9Pnt9LEFCPSgpPT57fSxDNz1WdCh7XCJzcmMvc2VydmljZXMvX25hbWVzcGFjZXMvdHMudHNcIigpe1widXNlIHN0cmljdFwiO0RyKCksWjgoKSxGRigpLGU3KCksQkYoKSx0NygpLFVGKCkscUYoKSx6RigpLFdGKCksVkYoKSxIRigpLEdGKCksWEYoKSxfQigpLGNCKCksbEIoKSx1QigpLHBCKCksZkIoKSxkQigpLG1CKCksaEIoKSx5QigpLGdCKCksYkIoKSxyNygpLG43KCksdkIoKSxUQigpLGk3KCksU0IoKSx4QigpLHdCKCksQ0IoKSxFQigpLEFCKCl9fSksa0I9KCk9Pnt9LEU3PXt9O041KEU3LHtBTk9OWU1PVVM6KCk9PkFOT05ZTU9VUyxBY2Nlc3NGbGFnczooKT0+THksQXNzZXJ0aW9uTGV2ZWw6KCk9PmF5LEFzc2lnbm1lbnREZWNsYXJhdGlvbktpbmQ6KCk9Pld5LEFzc2lnbm1lbnRLaW5kOigpPT5CMCxBc3NvY2lhdGl2aXR5OigpPT5xMCxCcmVha3BvaW50UmVzb2x2ZXI6KCk9PnRzX0JyZWFrcG9pbnRSZXNvbHZlcl9leHBvcnRzLEJ1aWxkZXJGaWxlRW1pdDooKT0+QnVpbGRlckZpbGVFbWl0LEJ1aWxkZXJQcm9ncmFtS2luZDooKT0+QnVpbGRlclByb2dyYW1LaW5kLEJ1aWxkZXJTdGF0ZTooKT0+QnVpbGRlclN0YXRlLEJ1bmRsZUZpbGVTZWN0aW9uS2luZDooKT0+bDAsQ2FsbEhpZXJhcmNoeTooKT0+dHNfQ2FsbEhpZXJhcmNoeV9leHBvcnRzLENoYXJhY3RlckNvZGVzOigpPT5uMCxDaGVja0ZsYWdzOigpPT5QeSxDaGVja01vZGU6KCk9PkNoZWNrTW9kZSxDbGFzc2lmaWNhdGlvblR5cGU6KCk9PkNsYXNzaWZpY2F0aW9uVHlwZSxDbGFzc2lmaWNhdGlvblR5cGVOYW1lczooKT0+Q2xhc3NpZmljYXRpb25UeXBlTmFtZXMsQ29tbWVudERpcmVjdGl2ZVR5cGU6KCk9PmZ5LENvbXBhcmlzb246KCk9PlpoLENvbXBsZXRpb25JbmZvRmxhZ3M6KCk9PkNvbXBsZXRpb25JbmZvRmxhZ3MsQ29tcGxldGlvblRyaWdnZXJLaW5kOigpPT5Db21wbGV0aW9uVHJpZ2dlcktpbmQsQ29tcGxldGlvbnM6KCk9PnRzX0NvbXBsZXRpb25zX2V4cG9ydHMsQ29uZmlnRmlsZVByb2dyYW1SZWxvYWRMZXZlbDooKT0+Q29uZmlnRmlsZVByb2dyYW1SZWxvYWRMZXZlbCxDb250YWluZXJGbGFnczooKT0+Q29udGFpbmVyRmxhZ3MsQ29udGV4dEZsYWdzOigpPT5UeSxDb3JlU2VydmljZXNTaGltSG9zdEFkYXB0ZXI6KCk9PkNvcmVTZXJ2aWNlc1NoaW1Ib3N0QWRhcHRlcixEZWJ1ZzooKT0+TixEaWFnbm9zdGljQ2F0ZWdvcnk6KCk9PmNkLERpYWdub3N0aWNzOigpPT5VLERvY3VtZW50SGlnaGxpZ2h0czooKT0+RG9jdW1lbnRIaWdobGlnaHRzLEVsZW1lbnRGbGFnczooKT0+TXksRW1pdEZsYWdzOigpPT5mZCxFbWl0SGludDooKT0+czAsRW1pdE9ubHk6KCk9Pmh5LEVuZE9mTGluZVN0YXRlOigpPT5FbmRPZkxpbmVTdGF0ZSxFbnVtS2luZDooKT0+RHksRXhpdFN0YXR1czooKT0+Z3ksRXhwb3J0S2luZDooKT0+RXhwb3J0S2luZCxFeHRlbnNpb246KCk9PmkwLEV4dGVybmFsRW1pdEhlbHBlcnM6KCk9Pm8wLEZpbGVJbmNsdWRlS2luZDooKT0+ZHksRmlsZVByZXByb2Nlc3NpbmdEaWFnbm9zdGljc0tpbmQ6KCk9Pm15LEZpbGVTeXN0ZW1FbnRyeUtpbmQ6KCk9PkZpbGVTeXN0ZW1FbnRyeUtpbmQsRmlsZVdhdGNoZXJFdmVudEtpbmQ6KCk9PkZpbGVXYXRjaGVyRXZlbnRLaW5kLEZpbmRBbGxSZWZlcmVuY2VzOigpPT50c19GaW5kQWxsUmVmZXJlbmNlc19leHBvcnRzLEZsYXR0ZW5MZXZlbDooKT0+RmxhdHRlbkxldmVsLEZsb3dGbGFnczooKT0+YmwsRm9yZWdyb3VuZENvbG9yRXNjYXBlU2VxdWVuY2VzOigpPT5Gb3JlZ3JvdW5kQ29sb3JFc2NhcGVTZXF1ZW5jZXMsRnVuY3Rpb25GbGFnczooKT0+VTAsR2VuZXJhdGVkSWRlbnRpZmllckZsYWdzOigpPT51eSxHZXRMaXRlcmFsVGV4dEZsYWdzOigpPT5GMCxHb1RvRGVmaW5pdGlvbjooKT0+dHNfR29Ub0RlZmluaXRpb25fZXhwb3J0cyxIaWdobGlnaHRTcGFuS2luZDooKT0+SGlnaGxpZ2h0U3BhbktpbmQsSWRlbnRpZmllck5hbWVNYXA6KCk9PklkZW50aWZpZXJOYW1lTWFwLElkZW50aWZpZXJOYW1lTXVsdGlNYXA6KCk9PklkZW50aWZpZXJOYW1lTXVsdGlNYXAsSW1wb3J0S2luZDooKT0+SW1wb3J0S2luZCxJbXBvcnRzTm90VXNlZEFzVmFsdWVzOigpPT5LeSxJbmRlbnRTdHlsZTooKT0+SW5kZW50U3R5bGUsSW5kZXhGbGFnczooKT0+SnksSW5kZXhLaW5kOigpPT5GeSxJbmZlcmVuY2VGbGFnczooKT0+cXksSW5mZXJlbmNlUHJpb3JpdHk6KCk9PlV5LElubGF5SGludEtpbmQ6KCk9PklubGF5SGludEtpbmQsSW5sYXlIaW50czooKT0+dHNfSW5sYXlIaW50c19leHBvcnRzLEludGVybmFsRW1pdEZsYWdzOigpPT5hMCxJbnRlcm5hbFN5bWJvbE5hbWU6KCk9Pkl5LEludmFsaWRhdGVkUHJvamVjdEtpbmQ6KCk9PkludmFsaWRhdGVkUHJvamVjdEtpbmQsSnNEb2M6KCk9PnRzX0pzRG9jX2V4cG9ydHMsSnNUeXBpbmc6KCk9PnRzX0pzVHlwaW5nX2V4cG9ydHMsSnN4RW1pdDooKT0+WXksSnN4RmxhZ3M6KCk9Pmx5LEpzeFJlZmVyZW5jZUtpbmQ6KCk9PlJ5LExhbmd1YWdlU2VydmljZU1vZGU6KCk9Pkxhbmd1YWdlU2VydmljZU1vZGUsTGFuZ3VhZ2VTZXJ2aWNlU2hpbUhvc3RBZGFwdGVyOigpPT5MYW5ndWFnZVNlcnZpY2VTaGltSG9zdEFkYXB0ZXIsTGFuZ3VhZ2VWYXJpYW50OigpPT50MCxMZXhpY2FsRW52aXJvbm1lbnRGbGFnczooKT0+YzAsTGlzdEZvcm1hdDooKT0+dTAsTG9nTGV2ZWw6KCk9PnN5LE1lbWJlck92ZXJyaWRlU3RhdHVzOigpPT5ieSxNb2RpZmllckZsYWdzOigpPT5yZCxNb2R1bGVEZXRlY3Rpb25LaW5kOigpPT5IeSxNb2R1bGVJbnN0YW5jZVN0YXRlOigpPT5Nb2R1bGVJbnN0YW5jZVN0YXRlLE1vZHVsZUtpbmQ6KCk9PlF5LE1vZHVsZVJlc29sdXRpb25LaW5kOigpPT5WeSxNb2R1bGVTcGVjaWZpZXJFbmRpbmc6KCk9PkcwLE5hdmlnYXRlVG86KCk9PnRzX05hdmlnYXRlVG9fZXhwb3J0cyxOYXZpZ2F0aW9uQmFyOigpPT50c19OYXZpZ2F0aW9uQmFyX2V4cG9ydHMsTmV3TGluZUtpbmQ6KCk9Plp5LE5vZGVCdWlsZGVyRmxhZ3M6KCk9PlN5LE5vZGVDaGVja0ZsYWdzOigpPT5OeSxOb2RlRmFjdG9yeUZsYWdzOigpPT5YMCxOb2RlRmxhZ3M6KCk9PnRkLE5vZGVSZXNvbHV0aW9uRmVhdHVyZXM6KCk9Pk5vZGVSZXNvbHV0aW9uRmVhdHVyZXMsT2JqZWN0RmxhZ3M6KCk9PnNkLE9wZXJhdGlvbkNhbmNlbGVkRXhjZXB0aW9uOigpPT5pZCxPcGVyYXRvclByZWNlZGVuY2U6KCk9PnowLE9yZ2FuaXplSW1wb3J0czooKT0+dHNfT3JnYW5pemVJbXBvcnRzX2V4cG9ydHMsT3JnYW5pemVJbXBvcnRzTW9kZTooKT0+T3JnYW5pemVJbXBvcnRzTW9kZSxPdXRlckV4cHJlc3Npb25LaW5kczooKT0+XzAsT3V0bGluaW5nRWxlbWVudHNDb2xsZWN0b3I6KCk9PnRzX091dGxpbmluZ0VsZW1lbnRzQ29sbGVjdG9yX2V4cG9ydHMsT3V0bGluaW5nU3BhbktpbmQ6KCk9Pk91dGxpbmluZ1NwYW5LaW5kLE91dHB1dEZpbGVUeXBlOigpPT5PdXRwdXRGaWxlVHlwZSxQYWNrYWdlSnNvbkF1dG9JbXBvcnRQcmVmZXJlbmNlOigpPT5QYWNrYWdlSnNvbkF1dG9JbXBvcnRQcmVmZXJlbmNlLFBhY2thZ2VKc29uRGVwZW5kZW5jeUdyb3VwOigpPT5QYWNrYWdlSnNvbkRlcGVuZGVuY3lHcm91cCxQYXR0ZXJuTWF0Y2hLaW5kOigpPT5QYXR0ZXJuTWF0Y2hLaW5kLFBvbGxpbmdJbnRlcnZhbDooKT0+UG9sbGluZ0ludGVydmFsLFBvbGxpbmdXYXRjaEtpbmQ6KCk9PiR5LFByYWdtYUtpbmRGbGFnczooKT0+cDAsUHJpdmF0ZUlkZW50aWZpZXJLaW5kOigpPT5Qcml2YXRlSWRlbnRpZmllcktpbmQsUHJvY2Vzc0xldmVsOigpPT5Qcm9jZXNzTGV2ZWwsUXVvdGVQcmVmZXJlbmNlOigpPT5RdW90ZVByZWZlcmVuY2UsUmVsYXRpb25Db21wYXJpc29uUmVzdWx0OigpPT5uZCxSZW5hbWU6KCk9PnRzX1JlbmFtZV9leHBvcnRzLFNjcmlwdEVsZW1lbnRLaW5kOigpPT5TY3JpcHRFbGVtZW50S2luZCxTY3JpcHRFbGVtZW50S2luZE1vZGlmaWVyOigpPT5TY3JpcHRFbGVtZW50S2luZE1vZGlmaWVyLFNjcmlwdEtpbmQ6KCk9PmxkLFNjcmlwdFNuYXBzaG90OigpPT5TY3JpcHRTbmFwc2hvdCxTY3JpcHRUYXJnZXQ6KCk9PmUwLFNlbWFudGljQ2xhc3NpZmljYXRpb25Gb3JtYXQ6KCk9PlNlbWFudGljQ2xhc3NpZmljYXRpb25Gb3JtYXQsU2VtYW50aWNNZWFuaW5nOigpPT5TZW1hbnRpY01lYW5pbmcsU2VtaWNvbG9uUHJlZmVyZW5jZTooKT0+U2VtaWNvbG9uUHJlZmVyZW5jZSxTaWduYXR1cmVDaGVja01vZGU6KCk9PlNpZ25hdHVyZUNoZWNrTW9kZSxTaWduYXR1cmVGbGFnczooKT0+X2QsU2lnbmF0dXJlSGVscDooKT0+dHNfU2lnbmF0dXJlSGVscF9leHBvcnRzLFNpZ25hdHVyZUtpbmQ6KCk9Pmp5LFNtYXJ0U2VsZWN0aW9uUmFuZ2U6KCk9PnRzX1NtYXJ0U2VsZWN0aW9uUmFuZ2VfZXhwb3J0cyxTbmlwcGV0S2luZDooKT0+cGQsU29ydEtpbmQ6KCk9Pm55LFN0cnVjdHVyZUlzUmV1c2VkOigpPT55eSxTeW1ib2xBY2Nlc3NpYmlsaXR5OigpPT5DeSxTeW1ib2xEaXNwbGF5OigpPT50c19TeW1ib2xEaXNwbGF5X2V4cG9ydHMsU3ltYm9sRGlzcGxheVBhcnRLaW5kOigpPT5TeW1ib2xEaXNwbGF5UGFydEtpbmQsU3ltYm9sRmxhZ3M6KCk9PmFkLFN5bWJvbEZvcm1hdEZsYWdzOigpPT53eSxTeW50YXhLaW5kOigpPT5lZCxTeW50aGV0aWNTeW1ib2xLaW5kOigpPT5FeSxUZXJuYXJ5OigpPT56eSxUaHJvdHRsZWRDYW5jZWxsYXRpb25Ub2tlbjooKT0+eDcsVG9rZW5DbGFzczooKT0+VG9rZW5DbGFzcyxUb2tlbkZsYWdzOigpPT5weSxUcmFuc2Zvcm1GbGFnczooKT0+dWQsVHlwZUZhY3RzOigpPT5UeXBlRmFjdHMsVHlwZUZsYWdzOigpPT5vZCxUeXBlRm9ybWF0RmxhZ3M6KCk9Pnh5LFR5cGVNYXBLaW5kOigpPT5CeSxUeXBlUHJlZGljYXRlS2luZDooKT0+QXksVHlwZVJlZmVyZW5jZVNlcmlhbGl6YXRpb25LaW5kOigpPT5reSxUeXBlU2NyaXB0U2VydmljZXNGYWN0b3J5OigpPT5UeXBlU2NyaXB0U2VydmljZXNGYWN0b3J5LFVuaW9uUmVkdWN0aW9uOigpPT52eSxVcFRvRGF0ZVN0YXR1c1R5cGU6KCk9PlVwVG9EYXRlU3RhdHVzVHlwZSxWYXJpYW5jZUZsYWdzOigpPT5PeSxWZXJzaW9uOigpPT5WZXJzaW9uLFZlcnNpb25SYW5nZTooKT0+VmVyc2lvblJhbmdlLFdhdGNoRGlyZWN0b3J5RmxhZ3M6KCk9PnIwLFdhdGNoRGlyZWN0b3J5S2luZDooKT0+WHksV2F0Y2hGaWxlS2luZDooKT0+R3ksV2F0Y2hMb2dMZXZlbDooKT0+V2F0Y2hMb2dMZXZlbCxXYXRjaFR5cGU6KCk9PldhdGNoVHlwZSxhY2Nlc3NQcml2YXRlSWRlbnRpZmllcjooKT0+YWNjZXNzUHJpdmF0ZUlkZW50aWZpZXIsYWRkRGlzcG9zYWJsZVJlc291cmNlSGVscGVyOigpPT5hZGREaXNwb3NhYmxlUmVzb3VyY2VIZWxwZXIsYWRkRW1pdEZsYWdzOigpPT5hZGRFbWl0RmxhZ3MsYWRkRW1pdEhlbHBlcjooKT0+YWRkRW1pdEhlbHBlcixhZGRFbWl0SGVscGVyczooKT0+YWRkRW1pdEhlbHBlcnMsYWRkSW50ZXJuYWxFbWl0RmxhZ3M6KCk9PmFkZEludGVybmFsRW1pdEZsYWdzLGFkZE5vZGVGYWN0b3J5UGF0Y2hlcjooKT0+QUwsYWRkT2JqZWN0QWxsb2NhdG9yUGF0Y2hlcjooKT0+V08sYWRkUmFuZ2U6KCk9PlJyLGFkZFJlbGF0ZWRJbmZvOigpPT5ubCxhZGRTeW50aGV0aWNMZWFkaW5nQ29tbWVudDooKT0+YWRkU3ludGhldGljTGVhZGluZ0NvbW1lbnQsYWRkU3ludGhldGljVHJhaWxpbmdDb21tZW50OigpPT5hZGRTeW50aGV0aWNUcmFpbGluZ0NvbW1lbnQsYWRkVG9TZWVuOigpPT5JTyxhZHZhbmNlZEFzeW5jU3VwZXJIZWxwZXI6KCk9PmFkdmFuY2VkQXN5bmNTdXBlckhlbHBlcixhZmZlY3RzRGVjbGFyYXRpb25QYXRoT3B0aW9uRGVjbGFyYXRpb25zOigpPT5hZmZlY3RzRGVjbGFyYXRpb25QYXRoT3B0aW9uRGVjbGFyYXRpb25zLGFmZmVjdHNFbWl0T3B0aW9uRGVjbGFyYXRpb25zOigpPT5hZmZlY3RzRW1pdE9wdGlvbkRlY2xhcmF0aW9ucyxhbGxLZXlzU3RhcnRXaXRoRG90OigpPT5hbGxLZXlzU3RhcnRXaXRoRG90LGFsdERpcmVjdG9yeVNlcGFyYXRvcjooKT0+dmcsYW5kOigpPT5uRSxhcHBlbmQ6KCk9Pnh0LGFwcGVuZElmVW5pcXVlOigpPT5DdixhcnJheUZyb206KCk9PlJkLGFycmF5SXNFcXVhbFRvOigpPT5fQyxhcnJheUlzSG9tb2dlbmVvdXM6KCk9PllNLGFycmF5SXNTb3J0ZWQ6KCk9Pm9DLGFycmF5T2Y6KCk9PlNDLGFycmF5UmV2ZXJzZUl0ZXJhdG9yOigpPT5wQyxhcnJheVRvTWFwOigpPT53QyxhcnJheVRvTXVsdGlNYXA6KCk9PlB2LGFycmF5VG9OdW1lcmljTWFwOigpPT5DQyxhcnJheXNFcXVhbDooKT0+YnYsYXNzZXJ0VHlwZTooKT0+YUUsYXNzaWduOigpPT54Qyxhc3NpZ25IZWxwZXI6KCk9PmFzc2lnbkhlbHBlcixhc3luY0RlbGVnYXRvcjooKT0+YXN5bmNEZWxlZ2F0b3IsYXN5bmNHZW5lcmF0b3JIZWxwZXI6KCk9PmFzeW5jR2VuZXJhdG9ySGVscGVyLGFzeW5jU3VwZXJIZWxwZXI6KCk9PmFzeW5jU3VwZXJIZWxwZXIsYXN5bmNWYWx1ZXM6KCk9PmFzeW5jVmFsdWVzLGF0dGFjaEZpbGVUb0RpYWdub3N0aWNzOigpPT4kYSxhd2FpdEhlbHBlcjooKT0+YXdhaXRIZWxwZXIsYXdhaXRlckhlbHBlcjooKT0+YXdhaXRlckhlbHBlcixiYXNlNjRkZWNvZGU6KCk9PlpOLGJhc2U2NGVuY29kZTooKT0+S04sYmluYXJ5U2VhcmNoOigpPT5NbCxiaW5hcnlTZWFyY2hLZXk6KCk9Pmt2LGJpbmRTb3VyY2VGaWxlOigpPT5iaW5kU291cmNlRmlsZSxicmVha0ludG9DaGFyYWN0ZXJTcGFuczooKT0+YnJlYWtJbnRvQ2hhcmFjdGVyU3BhbnMsYnJlYWtJbnRvV29yZFNwYW5zOigpPT5icmVha0ludG9Xb3JkU3BhbnMsYnVpbGRMaW5rUGFydHM6KCk9PmJ1aWxkTGlua1BhcnRzLGJ1aWxkT3B0czooKT0+YnVpbGRPcHRzLGJ1aWxkT3ZlcmxvYWQ6KCk9PmJ1aWxkT3ZlcmxvYWQsYnVuZGxlck1vZHVsZU5hbWVSZXNvbHZlcjooKT0+YnVuZGxlck1vZHVsZU5hbWVSZXNvbHZlcixjYW5CZUNvbnZlcnRlZFRvQXN5bmM6KCk9PmNhbkJlQ29udmVydGVkVG9Bc3luYyxjYW5IYXZlRGVjb3JhdG9yczooKT0+cTgsY2FuSGF2ZUV4cG9ydE1vZGlmaWVyOigpPT51TCxjYW5IYXZlRmxvd05vZGU6KCk9PnZJLGNhbkhhdmVJbGxlZ2FsRGVjb3JhdG9yczooKT0+V1IsY2FuSGF2ZUlsbGVnYWxNb2RpZmllcnM6KCk9PlZSLGNhbkhhdmVJbGxlZ2FsVHlwZTooKT0+elIsY2FuSGF2ZUlsbGVnYWxUeXBlUGFyYW1ldGVyczooKT0+RjgsY2FuSGF2ZUpTRG9jOigpPT5kbSxjYW5IYXZlTG9jYWxzOigpPT5TayxjYW5IYXZlTW9kaWZpZXJzOigpPT5xXyxjYW5IYXZlU3ltYm9sOigpPT5UayxjYW5Kc29uUmVwb3J0Tm9JbnB1dEZpbGVzOigpPT5jYW5Kc29uUmVwb3J0Tm9JbnB1dEZpbGVzLGNhblByb2R1Y2VEaWFnbm9zdGljczooKT0+Y2FuUHJvZHVjZURpYWdub3N0aWNzLGNhblVzZVByb3BlcnR5QWNjZXNzOigpPT5wTCxjYW5XYXRjaEFmZmVjdGluZ0xvY2F0aW9uOigpPT5jYW5XYXRjaEFmZmVjdGluZ0xvY2F0aW9uLGNhbldhdGNoQXRUeXBlczooKT0+Y2FuV2F0Y2hBdFR5cGVzLGNhbldhdGNoRGlyZWN0b3J5T3JGaWxlOigpPT5jYW5XYXRjaERpcmVjdG9yeU9yRmlsZSxjYXJ0ZXNpYW5Qcm9kdWN0OigpPT5zRSxjYXN0OigpPT5naSxjaGFpbkJ1bmRsZTooKT0+Y2hhaW5CdW5kbGUsY2hhaW5EaWFnbm9zdGljTWVzc2FnZXM6KCk9PnRsLGNoYW5nZUFueUV4dGVuc2lvbjooKT0+WXYsY2hhbmdlQ29tcGlsZXJIb3N0TGlrZVRvVXNlQ2FjaGU6KCk9PmNoYW5nZUNvbXBpbGVySG9zdExpa2VUb1VzZUNhY2hlLGNoYW5nZUV4dGVuc2lvbjooKT0+TU0sY2hhbmdlc0FmZmVjdE1vZHVsZVJlc29sdXRpb246KCk9PnFrLGNoYW5nZXNBZmZlY3RpbmdQcm9ncmFtU3RydWN0dXJlOigpPT56ayxjaGlsZElzRGVjb3JhdGVkOigpPT5zMixjbGFzc0VsZW1lbnRPckNsYXNzRWxlbWVudFBhcmFtZXRlcklzRGVjb3JhdGVkOigpPT56UCxjbGFzc0hhc0NsYXNzVGhpc0Fzc2lnbm1lbnQ6KCk9PmNsYXNzSGFzQ2xhc3NUaGlzQXNzaWdubWVudCxjbGFzc0hhc0RlY2xhcmVkT3JFeHBsaWNpdGx5QXNzaWduZWROYW1lOigpPT5jbGFzc0hhc0RlY2xhcmVkT3JFeHBsaWNpdGx5QXNzaWduZWROYW1lLGNsYXNzSGFzRXhwbGljaXRseUFzc2lnbmVkTmFtZTooKT0+Y2xhc3NIYXNFeHBsaWNpdGx5QXNzaWduZWROYW1lLGNsYXNzT3JDb25zdHJ1Y3RvclBhcmFtZXRlcklzRGVjb3JhdGVkOigpPT5xUCxjbGFzc1ByaXZhdGVGaWVsZEdldEhlbHBlcjooKT0+Y2xhc3NQcml2YXRlRmllbGRHZXRIZWxwZXIsY2xhc3NQcml2YXRlRmllbGRJbkhlbHBlcjooKT0+Y2xhc3NQcml2YXRlRmllbGRJbkhlbHBlcixjbGFzc1ByaXZhdGVGaWVsZFNldEhlbHBlcjooKT0+Y2xhc3NQcml2YXRlRmllbGRTZXRIZWxwZXIsY2xhc3NpY05hbWVSZXNvbHZlcjooKT0+Y2xhc3NpY05hbWVSZXNvbHZlcixjbGFzc2lmaWVyOigpPT50c19jbGFzc2lmaWVyX2V4cG9ydHMsY2xlYW5FeHRlbmRlZENvbmZpZ0NhY2hlOigpPT5jbGVhbkV4dGVuZGVkQ29uZmlnQ2FjaGUsY2xlYXI6KCk9PnE1LGNsZWFyTWFwOigpPT5DTyxjbGVhclNoYXJlZEV4dGVuZGVkQ29uZmlnRmlsZVdhdGNoZXI6KCk9PmNsZWFyU2hhcmVkRXh0ZW5kZWRDb25maWdGaWxlV2F0Y2hlcixjbGltYlBhc3RQcm9wZXJ0eUFjY2VzczooKT0+Y2xpbWJQYXN0UHJvcGVydHlBY2Nlc3MsY2xpbWJQYXN0UHJvcGVydHlPckVsZW1lbnRBY2Nlc3M6KCk9PmNsaW1iUGFzdFByb3BlcnR5T3JFbGVtZW50QWNjZXNzLGNsb25lOigpPT5rQyxjbG9uZUNvbXBpbGVyT3B0aW9uczooKT0+Y2xvbmVDb21waWxlck9wdGlvbnMsY2xvc2VGaWxlV2F0Y2hlcjooKT0+Z08sY2xvc2VGaWxlV2F0Y2hlck9mOigpPT5jbG9zZUZpbGVXYXRjaGVyT2YsY29kZWZpeDooKT0+dHNfY29kZWZpeF9leHBvcnRzLGNvbGxhcHNlVGV4dENoYW5nZVJhbmdlc0Fjcm9zc011bHRpcGxlVmVyc2lvbnM6KCk9Pm5BLGNvbGxlY3RFeHRlcm5hbE1vZHVsZUluZm86KCk9PmNvbGxlY3RFeHRlcm5hbE1vZHVsZUluZm8sY29tYmluZTooKT0+dUMsY29tYmluZVBhdGhzOigpPT5ocixjb21tZW50UHJhZ21hczooKT0+cWQsY29tbW9uT3B0aW9uc1dpdGhCdWlsZDooKT0+Y29tbW9uT3B0aW9uc1dpdGhCdWlsZCxjb21tb25QYWNrYWdlRm9sZGVyczooKT0+VjAsY29tcGFjdDooKT0+Y0MsY29tcGFyZUJvb2xlYW5zOigpPT5HQyxjb21wYXJlRGF0YU9iamVjdHM6KCk9PkVTLGNvbXBhcmVEaWFnbm9zdGljczooKT0+RjIsY29tcGFyZURpYWdub3N0aWNzU2tpcFJlbGF0ZWRJbmZvcm1hdGlvbjooKT0+eGQsY29tcGFyZUVtaXRIZWxwZXJzOigpPT5jb21wYXJlRW1pdEhlbHBlcnMsY29tcGFyZU51bWJlck9mRGlyZWN0b3J5U2VwYXJhdG9yczooKT0+T00sY29tcGFyZVBhdGhzOigpPT5PRSxjb21wYXJlUGF0aHNDYXNlSW5zZW5zaXRpdmU6KCk9Pk5FLGNvbXBhcmVQYXRoc0Nhc2VTZW5zaXRpdmU6KCk9PklFLGNvbXBhcmVQYXR0ZXJuS2V5czooKT0+Y29tcGFyZVBhdHRlcm5LZXlzLGNvbXBhcmVQcm9wZXJ0aWVzOigpPT5IQyxjb21wYXJlU3RyaW5nc0Nhc2VJbnNlbnNpdGl2ZTooKT0+RmQsY29tcGFyZVN0cmluZ3NDYXNlSW5zZW5zaXRpdmVFc2xpbnRDb21wYXRpYmxlOigpPT56Qyxjb21wYXJlU3RyaW5nc0Nhc2VTZW5zaXRpdmU6KCk9PkNpLGNvbXBhcmVTdHJpbmdzQ2FzZVNlbnNpdGl2ZVVJOigpPT5WQyxjb21wYXJlVGV4dFNwYW5zOigpPT5VQyxjb21wYXJlVmFsdWVzOigpPT5rcixjb21waWxlT25TYXZlQ29tbWFuZExpbmVPcHRpb246KCk9PmNvbXBpbGVPblNhdmVDb21tYW5kTGluZU9wdGlvbixjb21waWxlck9wdGlvbnNBZmZlY3REZWNsYXJhdGlvblBhdGg6KCk9PmRNLGNvbXBpbGVyT3B0aW9uc0FmZmVjdEVtaXQ6KCk9PmZNLGNvbXBpbGVyT3B0aW9uc0FmZmVjdFNlbWFudGljRGlhZ25vc3RpY3M6KCk9PnBNLGNvbXBpbGVyT3B0aW9uc0RpZFlvdU1lYW5EaWFnbm9zdGljczooKT0+Y29tcGlsZXJPcHRpb25zRGlkWW91TWVhbkRpYWdub3N0aWNzLGNvbXBpbGVyT3B0aW9uc0luZGljYXRlRXNNb2R1bGVzOigpPT5jb21waWxlck9wdGlvbnNJbmRpY2F0ZUVzTW9kdWxlcyxjb21wb3NlOigpPT5CQyxjb21wdXRlQ29tbW9uU291cmNlRGlyZWN0b3J5T2ZGaWxlbmFtZXM6KCk9PmNvbXB1dGVDb21tb25Tb3VyY2VEaXJlY3RvcnlPZkZpbGVuYW1lcyxjb21wdXRlTGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb246KCk9PlNnLGNvbXB1dGVMaW5lT2ZQb3NpdGlvbjooKT0+X18sY29tcHV0ZUxpbmVTdGFydHM6KCk9PlZkLGNvbXB1dGVQb3NpdGlvbk9mTGluZUFuZENoYXJhY3RlcjooKT0+VGcsY29tcHV0ZVNpZ25hdHVyZTooKT0+Y29tcHV0ZVNpZ25hdHVyZSxjb21wdXRlU2lnbmF0dXJlV2l0aERpYWdub3N0aWNzOigpPT5jb21wdXRlU2lnbmF0dXJlV2l0aERpYWdub3N0aWNzLGNvbXB1dGVTdWdnZXN0aW9uRGlhZ25vc3RpY3M6KCk9PmNvbXB1dGVTdWdnZXN0aW9uRGlhZ25vc3RpY3MsY29uY2F0ZW5hdGU6KCk9PnlfLGNvbmNhdGVuYXRlRGlhZ25vc3RpY01lc3NhZ2VDaGFpbnM6KCk9PlhPLGNvbnN1bWVzTm9kZUNvcmVNb2R1bGVzOigpPT5jb25zdW1lc05vZGVDb3JlTW9kdWxlcyxjb250YWluczooKT0+ZXMsY29udGFpbnNJZ25vcmVkUGF0aDooKT0+bngsY29udGFpbnNPYmplY3RSZXN0T3JTcHJlYWQ6KCk9PlU2LGNvbnRhaW5zUGFyc2VFcnJvcjooKT0+eGwsY29udGFpbnNQYXRoOigpPT5Ldixjb252ZXJ0Q29tcGlsZXJPcHRpb25zRm9yVGVsZW1ldHJ5OigpPT5jb252ZXJ0Q29tcGlsZXJPcHRpb25zRm9yVGVsZW1ldHJ5LGNvbnZlcnRDb21waWxlck9wdGlvbnNGcm9tSnNvbjooKT0+Y29udmVydENvbXBpbGVyT3B0aW9uc0Zyb21Kc29uLGNvbnZlcnRKc29uT3B0aW9uOigpPT5jb252ZXJ0SnNvbk9wdGlvbixjb252ZXJ0VG9CYXNlNjQ6KCk9PmdTLGNvbnZlcnRUb0pzb246KCk9PmNvbnZlcnRUb0pzb24sY29udmVydFRvT2JqZWN0OigpPT5jb252ZXJ0VG9PYmplY3QsY29udmVydFRvT3B0aW9uc1dpdGhBYnNvbHV0ZVBhdGhzOigpPT5jb252ZXJ0VG9PcHRpb25zV2l0aEFic29sdXRlUGF0aHMsY29udmVydFRvUmVsYXRpdmVQYXRoOigpPT5MRSxjb252ZXJ0VG9UU0NvbmZpZzooKT0+Y29udmVydFRvVFNDb25maWcsY29udmVydFR5cGVBY3F1aXNpdGlvbkZyb21Kc29uOigpPT5jb252ZXJ0VHlwZUFjcXVpc2l0aW9uRnJvbUpzb24sY29weUNvbW1lbnRzOigpPT5jb3B5Q29tbWVudHMsY29weUVudHJpZXM6KCk9PkdrLGNvcHlMZWFkaW5nQ29tbWVudHM6KCk9PmNvcHlMZWFkaW5nQ29tbWVudHMsY29weVByb3BlcnRpZXM6KCk9PlBDLGNvcHlUcmFpbGluZ0FzTGVhZGluZ0NvbW1lbnRzOigpPT5jb3B5VHJhaWxpbmdBc0xlYWRpbmdDb21tZW50cyxjb3B5VHJhaWxpbmdDb21tZW50czooKT0+Y29weVRyYWlsaW5nQ29tbWVudHMsY291bGRTdGFydFRyaXZpYTooKT0+ekUsY291bnRXaGVyZTooKT0+QjUsY3JlYXRlQWJzdHJhY3RCdWlsZGVyOigpPT5jcmVhdGVBYnN0cmFjdEJ1aWxkZXIsY3JlYXRlQWNjZXNzb3JQcm9wZXJ0eUJhY2tpbmdGaWVsZDooKT0+eGosY3JlYXRlQWNjZXNzb3JQcm9wZXJ0eUdldFJlZGlyZWN0b3I6KCk9PndqLGNyZWF0ZUFjY2Vzc29yUHJvcGVydHlTZXRSZWRpcmVjdG9yOigpPT5DaixjcmVhdGVCYXNlTm9kZUZhY3Rvcnk6KCk9Pkx4LGNyZWF0ZUJpbmFyeUV4cHJlc3Npb25UcmFtcG9saW5lOigpPT5oaixjcmVhdGVCaW5kaW5nSGVscGVyOigpPT5jcmVhdGVCaW5kaW5nSGVscGVyLGNyZWF0ZUJ1aWxkSW5mbzooKT0+Y3JlYXRlQnVpbGRJbmZvLGNyZWF0ZUJ1aWxkZXJQcm9ncmFtOigpPT5jcmVhdGVCdWlsZGVyUHJvZ3JhbSxjcmVhdGVCdWlsZGVyUHJvZ3JhbVVzaW5nUHJvZ3JhbUJ1aWxkSW5mbzooKT0+Y3JlYXRlQnVpbGRlclByb2dyYW1Vc2luZ1Byb2dyYW1CdWlsZEluZm8sY3JlYXRlQnVpbGRlclN0YXR1c1JlcG9ydGVyOigpPT5jcmVhdGVCdWlsZGVyU3RhdHVzUmVwb3J0ZXIsY3JlYXRlQ2FjaGVXaXRoUmVkaXJlY3RzOigpPT5jcmVhdGVDYWNoZVdpdGhSZWRpcmVjdHMsY3JlYXRlQ2FjaGVhYmxlRXhwb3J0SW5mb01hcDooKT0+Y3JlYXRlQ2FjaGVhYmxlRXhwb3J0SW5mb01hcCxjcmVhdGVDYWNoZWREaXJlY3RvcnlTdHJ1Y3R1cmVIb3N0OigpPT5jcmVhdGVDYWNoZWREaXJlY3RvcnlTdHJ1Y3R1cmVIb3N0LGNyZWF0ZUNsYXNzTmFtZWRFdmFsdWF0aW9uSGVscGVyQmxvY2s6KCk9PmNyZWF0ZUNsYXNzTmFtZWRFdmFsdWF0aW9uSGVscGVyQmxvY2ssY3JlYXRlQ2xhc3NUaGlzQXNzaWdubWVudEJsb2NrOigpPT5jcmVhdGVDbGFzc1RoaXNBc3NpZ25tZW50QmxvY2ssY3JlYXRlQ2xhc3NpZmllcjooKT0+Y3JlYXRlQ2xhc3NpZmllcixjcmVhdGVDb21tZW50RGlyZWN0aXZlc01hcDooKT0+Z0QsY3JlYXRlQ29tcGlsZXJEaWFnbm9zdGljOigpPT5mbCxjcmVhdGVDb21waWxlckRpYWdub3N0aWNGb3JJbnZhbGlkQ3VzdG9tVHlwZTooKT0+Y3JlYXRlQ29tcGlsZXJEaWFnbm9zdGljRm9ySW52YWxpZEN1c3RvbVR5cGUsY3JlYXRlQ29tcGlsZXJEaWFnbm9zdGljRnJvbU1lc3NhZ2VDaGFpbjooKT0+R08sY3JlYXRlQ29tcGlsZXJIb3N0OigpPT5jcmVhdGVDb21waWxlckhvc3QsY3JlYXRlQ29tcGlsZXJIb3N0RnJvbVByb2dyYW1Ib3N0OigpPT5jcmVhdGVDb21waWxlckhvc3RGcm9tUHJvZ3JhbUhvc3QsY3JlYXRlQ29tcGlsZXJIb3N0V29ya2VyOigpPT5jcmVhdGVDb21waWxlckhvc3RXb3JrZXIsY3JlYXRlRGV0YWNoZWREaWFnbm9zdGljOigpPT5BbyxjcmVhdGVEaWFnbm9zdGljQ29sbGVjdGlvbjooKT0+aU4sY3JlYXRlRGlhZ25vc3RpY0ZvckZpbGVGcm9tTWVzc2FnZUNoYWluOigpPT5RRCxjcmVhdGVEaWFnbm9zdGljRm9yTm9kZTooKT0+SEQsY3JlYXRlRGlhZ25vc3RpY0Zvck5vZGVBcnJheTooKT0+R0QsY3JlYXRlRGlhZ25vc3RpY0Zvck5vZGVBcnJheUZyb21NZXNzYWdlQ2hhaW46KCk9PiRELGNyZWF0ZURpYWdub3N0aWNGb3JOb2RlRnJvbU1lc3NhZ2VDaGFpbjooKT0+WEQsY3JlYXRlRGlhZ25vc3RpY0Zvck5vZGVJblNvdXJjZUZpbGU6KCk9PlczLGNyZWF0ZURpYWdub3N0aWNGb3JSYW5nZTooKT0+S0QsY3JlYXRlRGlhZ25vc3RpY01lc3NhZ2VDaGFpbkZyb21EaWFnbm9zdGljOigpPT5ZRCxjcmVhdGVEaWFnbm9zdGljUmVwb3J0ZXI6KCk9PmNyZWF0ZURpYWdub3N0aWNSZXBvcnRlcixjcmVhdGVEb2N1bWVudFBvc2l0aW9uTWFwcGVyOigpPT5jcmVhdGVEb2N1bWVudFBvc2l0aW9uTWFwcGVyLGNyZWF0ZURvY3VtZW50UmVnaXN0cnk6KCk9PmNyZWF0ZURvY3VtZW50UmVnaXN0cnksY3JlYXRlRG9jdW1lbnRSZWdpc3RyeUludGVybmFsOigpPT5jcmVhdGVEb2N1bWVudFJlZ2lzdHJ5SW50ZXJuYWwsY3JlYXRlRW1pdEFuZFNlbWFudGljRGlhZ25vc3RpY3NCdWlsZGVyUHJvZ3JhbTooKT0+Y3JlYXRlRW1pdEFuZFNlbWFudGljRGlhZ25vc3RpY3NCdWlsZGVyUHJvZ3JhbSxjcmVhdGVFbWl0SGVscGVyRmFjdG9yeTooKT0+Y3JlYXRlRW1pdEhlbHBlckZhY3RvcnksY3JlYXRlRW1wdHlFeHBvcnRzOigpPT55UixjcmVhdGVFeHByZXNzaW9uRm9ySnN4RWxlbWVudDooKT0+YlIsY3JlYXRlRXhwcmVzc2lvbkZvckpzeEZyYWdtZW50OigpPT52UixjcmVhdGVFeHByZXNzaW9uRm9yT2JqZWN0TGl0ZXJhbEVsZW1lbnRMaWtlOigpPT5BUixjcmVhdGVFeHByZXNzaW9uRm9yUHJvcGVydHlOYW1lOigpPT5rOCxjcmVhdGVFeHByZXNzaW9uRnJvbUVudGl0eU5hbWU6KCk9PkE4LGNyZWF0ZUV4dGVybmFsSGVscGVyc0ltcG9ydERlY2xhcmF0aW9uSWZOZWVkZWQ6KCk9PkpSLGNyZWF0ZUZpbGVEaWFnbm9zdGljOigpPT5qMixjcmVhdGVGaWxlRGlhZ25vc3RpY0Zyb21NZXNzYWdlQ2hhaW46KCk9PktnLGNyZWF0ZUZvck9mQmluZGluZ1N0YXRlbWVudDooKT0+VFIsY3JlYXRlR2V0Q2Fub25pY2FsRmlsZU5hbWU6KCk9PkJkLGNyZWF0ZUdldFNvdXJjZUZpbGU6KCk9PmNyZWF0ZUdldFNvdXJjZUZpbGUsY3JlYXRlR2V0U3ltYm9sQWNjZXNzaWJpbGl0eURpYWdub3N0aWNGb3JOb2RlOigpPT5jcmVhdGVHZXRTeW1ib2xBY2Nlc3NpYmlsaXR5RGlhZ25vc3RpY0Zvck5vZGUsY3JlYXRlR2V0U3ltYm9sQWNjZXNzaWJpbGl0eURpYWdub3N0aWNGb3JOb2RlTmFtZTooKT0+Y3JlYXRlR2V0U3ltYm9sQWNjZXNzaWJpbGl0eURpYWdub3N0aWNGb3JOb2RlTmFtZSxjcmVhdGVHZXRTeW1ib2xXYWxrZXI6KCk9PmNyZWF0ZUdldFN5bWJvbFdhbGtlcixjcmVhdGVJbmNyZW1lbnRhbENvbXBpbGVySG9zdDooKT0+Y3JlYXRlSW5jcmVtZW50YWxDb21waWxlckhvc3QsY3JlYXRlSW5jcmVtZW50YWxQcm9ncmFtOigpPT5jcmVhdGVJbmNyZW1lbnRhbFByb2dyYW0sY3JlYXRlSW5wdXRGaWxlczooKT0+TEwsY3JlYXRlSW5wdXRGaWxlc1dpdGhGaWxlUGF0aHM6KCk9Pmp4LGNyZWF0ZUlucHV0RmlsZXNXaXRoRmlsZVRleHRzOigpPT5GeCxjcmVhdGVKc3hGYWN0b3J5RXhwcmVzc2lvbjooKT0+RTgsY3JlYXRlTGFuZ3VhZ2VTZXJ2aWNlOigpPT5lQixjcmVhdGVMYW5ndWFnZVNlcnZpY2VTb3VyY2VGaWxlOigpPT56NixjcmVhdGVNZW1iZXJBY2Nlc3NGb3JQcm9wZXJ0eU5hbWU6KCk9PkxtLGNyZWF0ZU1vZGVBd2FyZUNhY2hlOigpPT5jcmVhdGVNb2RlQXdhcmVDYWNoZSxjcmVhdGVNb2RlQXdhcmVDYWNoZUtleTooKT0+Y3JlYXRlTW9kZUF3YXJlQ2FjaGVLZXksY3JlYXRlTW9kdWxlTm90Rm91bmRDaGFpbjooKT0+dEQsY3JlYXRlTW9kdWxlUmVzb2x1dGlvbkNhY2hlOigpPT5jcmVhdGVNb2R1bGVSZXNvbHV0aW9uQ2FjaGUsY3JlYXRlTW9kdWxlUmVzb2x1dGlvbkxvYWRlcjooKT0+Y3JlYXRlTW9kdWxlUmVzb2x1dGlvbkxvYWRlcixjcmVhdGVNb2R1bGVTcGVjaWZpZXJSZXNvbHV0aW9uSG9zdDooKT0+Y3JlYXRlTW9kdWxlU3BlY2lmaWVyUmVzb2x1dGlvbkhvc3QsY3JlYXRlTXVsdGlNYXA6KCk9PmpkLGNyZWF0ZU5vZGVDb252ZXJ0ZXJzOigpPT5KeCxjcmVhdGVOb2RlRmFjdG9yeTooKT0+QWQsY3JlYXRlT3B0aW9uTmFtZU1hcDooKT0+Y3JlYXRlT3B0aW9uTmFtZU1hcCxjcmVhdGVPdmVybG9hZDooKT0+Y3JlYXRlT3ZlcmxvYWQsY3JlYXRlUGFja2FnZUpzb25JbXBvcnRGaWx0ZXI6KCk9PmNyZWF0ZVBhY2thZ2VKc29uSW1wb3J0RmlsdGVyLGNyZWF0ZVBhY2thZ2VKc29uSW5mbzooKT0+Y3JlYXRlUGFja2FnZUpzb25JbmZvLGNyZWF0ZVBhcmVudGhlc2l6ZXJSdWxlczooKT0+Y3JlYXRlUGFyZW50aGVzaXplclJ1bGVzLGNyZWF0ZVBhdHRlcm5NYXRjaGVyOigpPT5jcmVhdGVQYXR0ZXJuTWF0Y2hlcixjcmVhdGVQcmVwZW5kTm9kZXM6KCk9PmNyZWF0ZVByZXBlbmROb2RlcyxjcmVhdGVQcmludGVyOigpPT5jcmVhdGVQcmludGVyLGNyZWF0ZVByaW50ZXJXaXRoRGVmYXVsdHM6KCk9PmNyZWF0ZVByaW50ZXJXaXRoRGVmYXVsdHMsY3JlYXRlUHJpbnRlcldpdGhSZW1vdmVDb21tZW50czooKT0+Y3JlYXRlUHJpbnRlcldpdGhSZW1vdmVDb21tZW50cyxjcmVhdGVQcmludGVyV2l0aFJlbW92ZUNvbW1lbnRzTmV2ZXJBc2NpaUVzY2FwZTooKT0+Y3JlYXRlUHJpbnRlcldpdGhSZW1vdmVDb21tZW50c05ldmVyQXNjaWlFc2NhcGUsY3JlYXRlUHJpbnRlcldpdGhSZW1vdmVDb21tZW50c09taXRUcmFpbGluZ1NlbWljb2xvbjooKT0+Y3JlYXRlUHJpbnRlcldpdGhSZW1vdmVDb21tZW50c09taXRUcmFpbGluZ1NlbWljb2xvbixjcmVhdGVQcm9ncmFtOigpPT5jcmVhdGVQcm9ncmFtLGNyZWF0ZVByb2dyYW1Ib3N0OigpPT5jcmVhdGVQcm9ncmFtSG9zdCxjcmVhdGVQcm9wZXJ0eU5hbWVOb2RlRm9ySWRlbnRpZmllck9yTGl0ZXJhbDooKT0+X0wsY3JlYXRlUXVldWU6KCk9Pk9DLGNyZWF0ZVJhbmdlOigpPT5UbSxjcmVhdGVSZWRpcmVjdGVkQnVpbGRlclByb2dyYW06KCk9PmNyZWF0ZVJlZGlyZWN0ZWRCdWlsZGVyUHJvZ3JhbSxjcmVhdGVSZXNvbHV0aW9uQ2FjaGU6KCk9PmNyZWF0ZVJlc29sdXRpb25DYWNoZSxjcmVhdGVSdW50aW1lVHlwZVNlcmlhbGl6ZXI6KCk9PmNyZWF0ZVJ1bnRpbWVUeXBlU2VyaWFsaXplcixjcmVhdGVTY2FubmVyOigpPT5ucyxjcmVhdGVTZW1hbnRpY0RpYWdub3N0aWNzQnVpbGRlclByb2dyYW06KCk9PmNyZWF0ZVNlbWFudGljRGlhZ25vc3RpY3NCdWlsZGVyUHJvZ3JhbSxjcmVhdGVTZXQ6KCk9Pk1DLGNyZWF0ZVNvbHV0aW9uQnVpbGRlcjooKT0+Y3JlYXRlU29sdXRpb25CdWlsZGVyLGNyZWF0ZVNvbHV0aW9uQnVpbGRlckhvc3Q6KCk9PmNyZWF0ZVNvbHV0aW9uQnVpbGRlckhvc3QsY3JlYXRlU29sdXRpb25CdWlsZGVyV2l0aFdhdGNoOigpPT5jcmVhdGVTb2x1dGlvbkJ1aWxkZXJXaXRoV2F0Y2gsY3JlYXRlU29sdXRpb25CdWlsZGVyV2l0aFdhdGNoSG9zdDooKT0+Y3JlYXRlU29sdXRpb25CdWlsZGVyV2l0aFdhdGNoSG9zdCxjcmVhdGVTb3J0ZWRBcnJheTooKT0+YUMsY3JlYXRlU291cmNlRmlsZTooKT0+SDgsY3JlYXRlU291cmNlTWFwR2VuZXJhdG9yOigpPT5jcmVhdGVTb3VyY2VNYXBHZW5lcmF0b3IsY3JlYXRlU291cmNlTWFwU291cmNlOigpPT5KTCxjcmVhdGVTdXBlckFjY2Vzc1ZhcmlhYmxlU3RhdGVtZW50OigpPT5jcmVhdGVTdXBlckFjY2Vzc1ZhcmlhYmxlU3RhdGVtZW50LGNyZWF0ZVN5bWJvbFRhYmxlOigpPT5CayxjcmVhdGVTeW1saW5rQ2FjaGU6KCk9PmJNLGNyZWF0ZVN5c3RlbVdhdGNoRnVuY3Rpb25zOigpPT5jcmVhdGVTeXN0ZW1XYXRjaEZ1bmN0aW9ucyxjcmVhdGVUZXh0Q2hhbmdlOigpPT5jcmVhdGVUZXh0Q2hhbmdlLGNyZWF0ZVRleHRDaGFuZ2VGcm9tU3RhcnRMZW5ndGg6KCk9PmNyZWF0ZVRleHRDaGFuZ2VGcm9tU3RhcnRMZW5ndGgsY3JlYXRlVGV4dENoYW5nZVJhbmdlOigpPT5YZCxjcmVhdGVUZXh0UmFuZ2VGcm9tTm9kZTooKT0+Y3JlYXRlVGV4dFJhbmdlRnJvbU5vZGUsY3JlYXRlVGV4dFJhbmdlRnJvbVNwYW46KCk9PmNyZWF0ZVRleHRSYW5nZUZyb21TcGFuLGNyZWF0ZVRleHRTcGFuOigpPT53XyxjcmVhdGVUZXh0U3BhbkZyb21Cb3VuZHM6KCk9PkhpLGNyZWF0ZVRleHRTcGFuRnJvbU5vZGU6KCk9PmNyZWF0ZVRleHRTcGFuRnJvbU5vZGUsY3JlYXRlVGV4dFNwYW5Gcm9tUmFuZ2U6KCk9PmNyZWF0ZVRleHRTcGFuRnJvbVJhbmdlLGNyZWF0ZVRleHRTcGFuRnJvbVN0cmluZ0xpdGVyYWxMaWtlQ29udGVudDooKT0+Y3JlYXRlVGV4dFNwYW5Gcm9tU3RyaW5nTGl0ZXJhbExpa2VDb250ZW50LGNyZWF0ZVRleHRXcml0ZXI6KCk9PnBOLGNyZWF0ZVRva2VuUmFuZ2U6KCk9PmlPLGNyZWF0ZVR5cGVDaGVja2VyOigpPT5jcmVhdGVUeXBlQ2hlY2tlcixjcmVhdGVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlUmVzb2x1dGlvbkNhY2hlOigpPT5jcmVhdGVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlUmVzb2x1dGlvbkNhY2hlLGNyZWF0ZVR5cGVSZWZlcmVuY2VSZXNvbHV0aW9uTG9hZGVyOigpPT5jcmVhdGVUeXBlUmVmZXJlbmNlUmVzb2x1dGlvbkxvYWRlcixjcmVhdGVVbnBhcnNlZFNvdXJjZUZpbGU6KCk9Pk5MLGNyZWF0ZVdhdGNoQ29tcGlsZXJIb3N0OigpPT5jcmVhdGVXYXRjaENvbXBpbGVySG9zdDIsY3JlYXRlV2F0Y2hDb21waWxlckhvc3RPZkNvbmZpZ0ZpbGU6KCk9PmNyZWF0ZVdhdGNoQ29tcGlsZXJIb3N0T2ZDb25maWdGaWxlLGNyZWF0ZVdhdGNoQ29tcGlsZXJIb3N0T2ZGaWxlc0FuZENvbXBpbGVyT3B0aW9uczooKT0+Y3JlYXRlV2F0Y2hDb21waWxlckhvc3RPZkZpbGVzQW5kQ29tcGlsZXJPcHRpb25zLGNyZWF0ZVdhdGNoRmFjdG9yeTooKT0+Y3JlYXRlV2F0Y2hGYWN0b3J5LGNyZWF0ZVdhdGNoSG9zdDooKT0+Y3JlYXRlV2F0Y2hIb3N0LGNyZWF0ZVdhdGNoUHJvZ3JhbTooKT0+Y3JlYXRlV2F0Y2hQcm9ncmFtLGNyZWF0ZVdhdGNoU3RhdHVzUmVwb3J0ZXI6KCk9PmNyZWF0ZVdhdGNoU3RhdHVzUmVwb3J0ZXIsY3JlYXRlV3JpdGVGaWxlTWVhc3VyaW5nSU86KCk9PmNyZWF0ZVdyaXRlRmlsZU1lYXN1cmluZ0lPLGRlY2xhcmF0aW9uTmFtZVRvU3RyaW5nOigpPT56MyxkZWNvZGVNYXBwaW5nczooKT0+ZGVjb2RlTWFwcGluZ3MsZGVjb2RlZFRleHRTcGFuSW50ZXJzZWN0c1dpdGg6KCk9PkVnLGRlY29yYXRlSGVscGVyOigpPT5kZWNvcmF0ZUhlbHBlcixkZWR1cGxpY2F0ZTooKT0+eHYsZGVmYXVsdEluY2x1ZGVTcGVjOigpPT5kZWZhdWx0SW5jbHVkZVNwZWMsZGVmYXVsdEluaXRDb21waWxlck9wdGlvbnM6KCk9PmRlZmF1bHRJbml0Q29tcGlsZXJPcHRpb25zLGRlZmF1bHRNYXhpbXVtVHJ1bmNhdGlvbkxlbmd0aDooKT0+ZngsZGV0ZWN0U29ydENhc2VTZW5zaXRpdml0eTooKT0+c0MsZGlhZ25vc3RpY0NhdGVnb3J5TmFtZTooKT0+VEUsZGlhZ25vc3RpY1RvU3RyaW5nOigpPT5kaWFnbm9zdGljVG9TdHJpbmcsZGlyZWN0b3J5UHJvYmFibHlFeGlzdHM6KCk9PnZTLGRpcmVjdG9yeVNlcGFyYXRvcjooKT0+Zm4sZGlzcGxheVBhcnQ6KCk9PmRpc3BsYXlQYXJ0LGRpc3BsYXlQYXJ0c1RvU3RyaW5nOigpPT5aRixkaXNwb3NlRW1pdE5vZGVzOigpPT5kaXNwb3NlRW1pdE5vZGVzLGRpc3Bvc2VSZXNvdXJjZXNIZWxwZXI6KCk9PmRpc3Bvc2VSZXNvdXJjZXNIZWxwZXIsZG9jdW1lbnRTcGFuc0VxdWFsOigpPT5kb2N1bWVudFNwYW5zRXF1YWwsZHVtcFRyYWNpbmdMZWdlbmQ6KCk9PmR1bXBUcmFjaW5nTGVnZW5kLGVsZW1lbnRBdDooKT0+V3YsZWxpZGVOb2RlczooKT0+YmosZW1pdENvbW1lbnRzOigpPT5uUyxlbWl0RGV0YWNoZWRDb21tZW50czooKT0+SU4sZW1pdEZpbGVzOigpPT5lbWl0RmlsZXMsZW1pdEZpbGVzQW5kUmVwb3J0RXJyb3JzOigpPT5lbWl0RmlsZXNBbmRSZXBvcnRFcnJvcnMsZW1pdEZpbGVzQW5kUmVwb3J0RXJyb3JzQW5kR2V0RXhpdFN0YXR1czooKT0+ZW1pdEZpbGVzQW5kUmVwb3J0RXJyb3JzQW5kR2V0RXhpdFN0YXR1cyxlbWl0TW9kdWxlS2luZElzTm9uTm9kZUVTTTooKT0+S08sZW1pdE5ld0xpbmVCZWZvcmVMZWFkaW5nQ29tbWVudE9mUG9zaXRpb246KCk9PlBOLGVtaXROZXdMaW5lQmVmb3JlTGVhZGluZ0NvbW1lbnRzOigpPT50UyxlbWl0TmV3TGluZUJlZm9yZUxlYWRpbmdDb21tZW50c09mUG9zaXRpb246KCk9PnJTLGVtaXRTa2lwcGVkV2l0aE5vRGlhZ25vc3RpY3M6KCk9PmVtaXRTa2lwcGVkV2l0aE5vRGlhZ25vc3RpY3MsZW1pdFVzaW5nQnVpbGRJbmZvOigpPT5lbWl0VXNpbmdCdWlsZEluZm8sZW1wdHlBcnJheTooKT0+JGUsZW1wdHlGaWxlU3lzdGVtRW50cmllczooKT0+TXgsZW1wdHlNYXA6KCk9PnBnLGVtcHR5T3B0aW9uczooKT0+ZW1wdHlPcHRpb25zLGVtcHR5U2V0OigpPT56dixlbmRzV2l0aDooKT0+dHMsZW5zdXJlUGF0aElzTm9uTW9kdWxlTmFtZTooKT0+aGcsZW5zdXJlU2NyaXB0S2luZDooKT0+V1MsZW5zdXJlVHJhaWxpbmdEaXJlY3RvcnlTZXBhcmF0b3I6KCk9PnpvLGVudGl0eU5hbWVUb1N0cmluZzooKT0+dmksZW51bWVyYXRlSW5zZXJ0c0FuZERlbGV0ZXM6KCk9Pm9FLGVxdWFsT3duUHJvcGVydGllczooKT0+RHYsZXF1YXRlU3RyaW5nc0Nhc2VJbnNlbnNpdGl2ZTooKT0+c18sZXF1YXRlU3RyaW5nc0Nhc2VTZW5zaXRpdmU6KCk9PkxsLGVxdWF0ZVZhbHVlczooKT0+X28sZXNEZWNvcmF0ZUhlbHBlcjooKT0+ZXNEZWNvcmF0ZUhlbHBlcixlc2NhcGVKc3hBdHRyaWJ1dGVTdHJpbmc6KCk9PnpULGVzY2FwZUxlYWRpbmdVbmRlcnNjb3JlczooKT0+TW4sZXNjYXBlTm9uQXNjaWlTdHJpbmc6KCk9PlRkLGVzY2FwZVNuaXBwZXRUZXh0OigpPT5zTCxlc2NhcGVTdHJpbmc6KCk9PnZkLGV2ZXJ5OigpPT5zbyxleHBhbmRQcmVPclBvc3RmaXhJbmNyZW1lbnRPckRlY3JlbWVudEV4cHJlc3Npb246KCk9PmtSLGV4cGxhaW5GaWxlczooKT0+ZXhwbGFpbkZpbGVzLGV4cGxhaW5JZkZpbGVJc1JlZGlyZWN0QW5kSW1wbGllZEZvcm1hdDooKT0+ZXhwbGFpbklmRmlsZUlzUmVkaXJlY3RBbmRJbXBsaWVkRm9ybWF0LGV4cG9ydEFzc2lnbm1lbnRJc0FsaWFzOigpPT5EMCxleHBvcnRTdGFySGVscGVyOigpPT5leHBvcnRTdGFySGVscGVyLGV4cHJlc3Npb25SZXN1bHRJc1VudXNlZDooKT0+dEwsZXh0ZW5kOigpPT5EQyxleHRlbmRzSGVscGVyOigpPT5leHRlbmRzSGVscGVyLGV4dGVuc2lvbkZyb21QYXRoOigpPT5ybCxleHRlbnNpb25Jc1RTOigpPT5LUyxleHRlbnNpb25zTm90U3VwcG9ydGluZ0V4dGVuc2lvbmxlc3NSZXNvbHV0aW9uOigpPT53bSxleHRlcm5hbEhlbHBlcnNNb2R1bGVOYW1lVGV4dDooKT0+eG0sZmFjdG9yeTooKT0+TG4sZmlsZUV4dGVuc2lvbklzOigpPT5MYSxmaWxlRXh0ZW5zaW9uSXNPbmVPZjooKT0+ZWksZmlsZUluY2x1ZGVSZWFzb25Ub0RpYWdub3N0aWNzOigpPT5maWxlSW5jbHVkZVJlYXNvblRvRGlhZ25vc3RpY3MsZmlsZVNob3VsZFVzZUphdmFTY3JpcHRSZXF1aXJlOigpPT5maWxlU2hvdWxkVXNlSmF2YVNjcmlwdFJlcXVpcmUsZmlsdGVyOigpPT4kcixmaWx0ZXJNdXRhdGU6KCk9PlU1LGZpbHRlclNlbWFudGljRGlhZ25vc3RpY3M6KCk9PmZpbHRlclNlbWFudGljRGlhZ25vc3RpY3MsZmluZDooKT0+WXIsZmluZEFuY2VzdG9yOigpPT5LcixmaW5kQmVzdFBhdHRlcm5NYXRjaDooKT0+RnYsZmluZENoaWxkT2ZLaW5kOigpPT5maW5kQ2hpbGRPZktpbmQsZmluZENvbXB1dGVkUHJvcGVydHlOYW1lQ2FjaGVBc3NpZ25tZW50OigpPT5FaixmaW5kQ29uZmlnRmlsZTooKT0+ZmluZENvbmZpZ0ZpbGUsZmluZENvbnRhaW5pbmdMaXN0OigpPT5maW5kQ29udGFpbmluZ0xpc3QsZmluZERpYWdub3N0aWNGb3JOb2RlOigpPT5maW5kRGlhZ25vc3RpY0Zvck5vZGUsZmluZEZpcnN0Tm9uSnN4V2hpdGVzcGFjZVRva2VuOigpPT5maW5kRmlyc3ROb25Kc3hXaGl0ZXNwYWNlVG9rZW4sZmluZEluZGV4OigpPT5fbCxmaW5kTGFzdDooKT0+aWcsZmluZExhc3RJbmRleDooKT0+ajUsZmluZExpc3RJdGVtSW5mbzooKT0+ZmluZExpc3RJdGVtSW5mbyxmaW5kTWFwOigpPT5GNSxmaW5kTW9kaWZpZXI6KCk9PmZpbmRNb2RpZmllcixmaW5kTmV4dFRva2VuOigpPT5maW5kTmV4dFRva2VuLGZpbmRQYWNrYWdlSnNvbjooKT0+ZmluZFBhY2thZ2VKc29uLGZpbmRQYWNrYWdlSnNvbnM6KCk9PmZpbmRQYWNrYWdlSnNvbnMsZmluZFByZWNlZGluZ01hdGNoaW5nVG9rZW46KCk9PmZpbmRQcmVjZWRpbmdNYXRjaGluZ1Rva2VuLGZpbmRQcmVjZWRpbmdUb2tlbjooKT0+ZmluZFByZWNlZGluZ1Rva2VuLGZpbmRTdXBlclN0YXRlbWVudEluZGV4UGF0aDooKT0+ZmluZFN1cGVyU3RhdGVtZW50SW5kZXhQYXRoLGZpbmRUb2tlbk9uTGVmdE9mUG9zaXRpb246KCk9PmZpbmRUb2tlbk9uTGVmdE9mUG9zaXRpb24sZmluZFVzZVN0cmljdFByb2xvZ3VlOigpPT5QOCxmaXJzdDooKT0+b2csZmlyc3REZWZpbmVkOigpPT5uZyxmaXJzdERlZmluZWRJdGVyYXRvcjooKT0+TDUsZmlyc3RJdGVyYXRvcjooKT0+bUMsZmlyc3RPck9ubHk6KCk9PmZpcnN0T3JPbmx5LGZpcnN0T3JVbmRlZmluZWQ6KCk9PmdfLGZpcnN0T3JVbmRlZmluZWRJdGVyYXRvcjooKT0+ZEMsZml4dXBDb21waWxlck9wdGlvbnM6KCk9PmZpeHVwQ29tcGlsZXJPcHRpb25zLGZsYXRNYXA6KCk9PkJvLGZsYXRNYXBJdGVyYXRvcjooKT0+VjUsZmxhdE1hcFRvTXV0YWJsZTooKT0+VHYsZmxhdHRlbjooKT0+b18sZmxhdHRlbkNvbW1hTGlzdDooKT0+a2osZmxhdHRlbkRlc3RydWN0dXJpbmdBc3NpZ25tZW50OigpPT5mbGF0dGVuRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnQsZmxhdHRlbkRlc3RydWN0dXJpbmdCaW5kaW5nOigpPT5mbGF0dGVuRGVzdHJ1Y3R1cmluZ0JpbmRpbmcsZmxhdHRlbkRpYWdub3N0aWNNZXNzYWdlVGV4dDooKT0+ZmxhdHRlbkRpYWdub3N0aWNNZXNzYWdlVGV4dCxmb3JFYWNoOigpPT55cixmb3JFYWNoQW5jZXN0b3I6KCk9PldrLGZvckVhY2hBbmNlc3RvckRpcmVjdG9yeTooKT0+ZTQsZm9yRWFjaENoaWxkOigpPT5CdCxmb3JFYWNoQ2hpbGRSZWN1cnNpdmVseTooKT0+ZWcsZm9yRWFjaEVtaXR0ZWRGaWxlOigpPT5mb3JFYWNoRW1pdHRlZEZpbGUsZm9yRWFjaEVuY2xvc2luZ0Jsb2NrU2NvcGVDb250YWluZXI6KCk9PnFELGZvckVhY2hFbnRyeTooKT0+VmssZm9yRWFjaEV4dGVybmFsTW9kdWxlVG9JbXBvcnRGcm9tOigpPT5mb3JFYWNoRXh0ZXJuYWxNb2R1bGVUb0ltcG9ydEZyb20sZm9yRWFjaEltcG9ydENsYXVzZURlY2xhcmF0aW9uOigpPT5tSSxmb3JFYWNoS2V5OigpPT5Iayxmb3JFYWNoTGVhZGluZ0NvbW1lbnRSYW5nZTooKT0+V0UsZm9yRWFjaE5hbWVJbkFjY2Vzc0NoYWluV2Fsa2luZ0xlZnQ6KCk9PkpPLGZvckVhY2hQcm9wZXJ0eUFzc2lnbm1lbnQ6KCk9PmEyLGZvckVhY2hSZXNvbHZlZFByb2plY3RSZWZlcmVuY2U6KCk9PmZvckVhY2hSZXNvbHZlZFByb2plY3RSZWZlcmVuY2UsZm9yRWFjaFJldHVyblN0YXRlbWVudDooKT0+dVAsZm9yRWFjaFJpZ2h0OigpPT5NNSxmb3JFYWNoVHJhaWxpbmdDb21tZW50UmFuZ2U6KCk9PlZFLGZvckVhY2hUc0NvbmZpZ1Byb3BBcnJheTooKT0+WTMsZm9yRWFjaFVuaXF1ZTooKT0+Zm9yRWFjaFVuaXF1ZSxmb3JFYWNoWWllbGRFeHByZXNzaW9uOigpPT5wUCxmb3JTb21lQW5jZXN0b3JEaXJlY3Rvcnk6KCk9PmtPLGZvcm1hdENvbG9yQW5kUmVzZXQ6KCk9PmZvcm1hdENvbG9yQW5kUmVzZXQsZm9ybWF0RGlhZ25vc3RpYzooKT0+Zm9ybWF0RGlhZ25vc3RpYyxmb3JtYXREaWFnbm9zdGljczooKT0+Zm9ybWF0RGlhZ25vc3RpY3MsZm9ybWF0RGlhZ25vc3RpY3NXaXRoQ29sb3JBbmRDb250ZXh0OigpPT5mb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQsZm9ybWF0R2VuZXJhdGVkTmFtZTooKT0+UGQsZm9ybWF0R2VuZXJhdGVkTmFtZVBhcnQ6KCk9PlowLGZvcm1hdExvY2F0aW9uOigpPT5mb3JtYXRMb2NhdGlvbixmb3JtYXRNZXNzYWdlOigpPT5ITyxmb3JtYXRTdHJpbmdGcm9tQXJnczooKT0+SV8sZm9ybWF0dGluZzooKT0+dHNfZm9ybWF0dGluZ19leHBvcnRzLGZ1bGxUcmlwbGVTbGFzaEFNRFJlZmVyZW5jZVBhdGhSZWdFeDooKT0+SzIsZnVsbFRyaXBsZVNsYXNoUmVmZXJlbmNlUGF0aFJlZ0V4OigpPT5ZMixnZW5lcmF0ZURqYjJIYXNoOigpPT5nZW5lcmF0ZURqYjJIYXNoLGdlbmVyYXRlVFNDb25maWc6KCk9PmdlbmVyYXRlVFNDb25maWcsZ2VuZXJhdG9ySGVscGVyOigpPT5nZW5lcmF0b3JIZWxwZXIsZ2V0QWRqdXN0ZWRSZWZlcmVuY2VMb2NhdGlvbjooKT0+Z2V0QWRqdXN0ZWRSZWZlcmVuY2VMb2NhdGlvbixnZXRBZGp1c3RlZFJlbmFtZUxvY2F0aW9uOigpPT5nZXRBZGp1c3RlZFJlbmFtZUxvY2F0aW9uLGdldEFsaWFzRGVjbGFyYXRpb25Gcm9tTmFtZTooKT0+RVQsZ2V0QWxsQWNjZXNzb3JEZWNsYXJhdGlvbnM6KCk9PlAyLGdldEFsbERlY29yYXRvcnNPZkNsYXNzOigpPT5nZXRBbGxEZWNvcmF0b3JzT2ZDbGFzcyxnZXRBbGxEZWNvcmF0b3JzT2ZDbGFzc0VsZW1lbnQ6KCk9PmdldEFsbERlY29yYXRvcnNPZkNsYXNzRWxlbWVudCxnZXRBbGxKU0RvY1RhZ3M6KCk9PlE0LGdldEFsbEpTRG9jVGFnc09mS2luZDooKT0+dkEsZ2V0QWxsS2V5czooKT0+dkMsZ2V0QWxsUHJvamVjdE91dHB1dHM6KCk9PmdldEFsbFByb2plY3RPdXRwdXRzLGdldEFsbFN1cGVyVHlwZU5vZGVzOigpPT5JVCxnZXRBbGxVbnNjb3BlZEVtaXRIZWxwZXJzOigpPT5nZXRBbGxVbnNjb3BlZEVtaXRIZWxwZXJzLGdldEFsbG93SlNDb21waWxlck9wdGlvbjooKT0+QlMsZ2V0QWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0czooKT0+aU0sZ2V0QW5jZXN0b3I6KCk9PlJJLGdldEFueUV4dGVuc2lvbkZyb21QYXRoOigpPT5kZCxnZXRBcmVEZWNsYXJhdGlvbk1hcHNFbmFibGVkOigpPT5uTSxnZXRBc3NpZ25lZEV4cGFuZG9Jbml0aWFsaXplcjooKT0+bkksZ2V0QXNzaWduZWROYW1lOigpPT5NNCxnZXRBc3NpZ25lZE5hbWVPZklkZW50aWZpZXI6KCk9PmdldEFzc2lnbmVkTmFtZU9mSWRlbnRpZmllcixnZXRBc3NpZ25tZW50RGVjbGFyYXRpb25LaW5kOigpPT5KYSxnZXRBc3NpZ25tZW50RGVjbGFyYXRpb25Qcm9wZXJ0eUFjY2Vzc0tpbmQ6KCk9PnVULGdldEFzc2lnbm1lbnRUYXJnZXRLaW5kOigpPT5UVCxnZXRBdXRvbWF0aWNUeXBlRGlyZWN0aXZlTmFtZXM6KCk9PmdldEF1dG9tYXRpY1R5cGVEaXJlY3RpdmVOYW1lcyxnZXRCYXNlRmlsZU5hbWU6KCk9PlRfLGdldEJpbmFyeU9wZXJhdG9yUHJlY2VkZW5jZTooKT0+cGwsZ2V0QnVpbGRJbmZvOigpPT5nZXRCdWlsZEluZm8sZ2V0QnVpbGRJbmZvRmlsZVZlcnNpb25NYXA6KCk9PmdldEJ1aWxkSW5mb0ZpbGVWZXJzaW9uTWFwLGdldEJ1aWxkSW5mb1RleHQ6KCk9PmdldEJ1aWxkSW5mb1RleHQsZ2V0QnVpbGRPcmRlckZyb21BbnlCdWlsZE9yZGVyOigpPT5nZXRCdWlsZE9yZGVyRnJvbUFueUJ1aWxkT3JkZXIsZ2V0QnVpbGRlckNyZWF0aW9uUGFyYW1ldGVyczooKT0+Z2V0QnVpbGRlckNyZWF0aW9uUGFyYW1ldGVycyxnZXRCdWlsZGVyRmlsZUVtaXQ6KCk9PmdldEJ1aWxkZXJGaWxlRW1pdCxnZXRDaGVja0ZsYWdzOigpPT5DUyxnZXRDbGFzc0V4dGVuZHNIZXJpdGFnZUVsZW1lbnQ6KCk9PkRULGdldENsYXNzTGlrZURlY2xhcmF0aW9uT2ZTeW1ib2w6KCk9PmtTLGdldENvbWJpbmVkTG9jYWxBbmRFeHBvcnRTeW1ib2xGbGFnczooKT0+VE8sZ2V0Q29tYmluZWRNb2RpZmllckZsYWdzOigpPT4kZCxnZXRDb21iaW5lZE5vZGVGbGFnczooKT0+Q18sZ2V0Q29tYmluZWROb2RlRmxhZ3NBbHdheXNJbmNsdWRlSlNEb2M6KCk9PmFBLGdldENvbW1lbnRSYW5nZTooKT0+Z2V0Q29tbWVudFJhbmdlLGdldENvbW1vblNvdXJjZURpcmVjdG9yeTooKT0+Z2V0Q29tbW9uU291cmNlRGlyZWN0b3J5LGdldENvbW1vblNvdXJjZURpcmVjdG9yeU9mQ29uZmlnOigpPT5nZXRDb21tb25Tb3VyY2VEaXJlY3RvcnlPZkNvbmZpZyxnZXRDb21waWxlck9wdGlvblZhbHVlOigpPT5qMCxnZXRDb21waWxlck9wdGlvbnNEaWZmVmFsdWU6KCk9PmdldENvbXBpbGVyT3B0aW9uc0RpZmZWYWx1ZSxnZXRDb25kaXRpb25zOigpPT5nZXRDb25kaXRpb25zLGdldENvbmZpZ0ZpbGVQYXJzaW5nRGlhZ25vc3RpY3M6KCk9PmdldENvbmZpZ0ZpbGVQYXJzaW5nRGlhZ25vc3RpY3MsZ2V0Q29uc3RhbnRWYWx1ZTooKT0+Z2V0Q29uc3RhbnRWYWx1ZSxnZXRDb250YWluZXJGbGFnczooKT0+Z2V0Q29udGFpbmVyRmxhZ3MsZ2V0Q29udGFpbmVyTm9kZTooKT0+Z2V0Q29udGFpbmVyTm9kZSxnZXRDb250YWluaW5nQ2xhc3M6KCk9PkUwLGdldENvbnRhaW5pbmdDbGFzc0V4Y2x1ZGluZ0NsYXNzRGVjb3JhdG9yczooKT0+UFAsZ2V0Q29udGFpbmluZ0NsYXNzU3RhdGljQmxvY2s6KCk9PmtQLGdldENvbnRhaW5pbmdGdW5jdGlvbjooKT0+RVAsZ2V0Q29udGFpbmluZ0Z1bmN0aW9uRGVjbGFyYXRpb246KCk9PkFQLGdldENvbnRhaW5pbmdGdW5jdGlvbk9yQ2xhc3NTdGF0aWNCbG9jazooKT0+RFAsZ2V0Q29udGFpbmluZ05vZGVBcnJheTooKT0+ckwsZ2V0Q29udGFpbmluZ09iamVjdExpdGVyYWxFbGVtZW50OigpPT5wNyxnZXRDb250ZXh0dWFsVHlwZUZyb21QYXJlbnQ6KCk9PmdldENvbnRleHR1YWxUeXBlRnJvbVBhcmVudCxnZXRDb250ZXh0dWFsVHlwZUZyb21QYXJlbnRPckFuY2VzdG9yVHlwZU5vZGU6KCk9PmdldENvbnRleHR1YWxUeXBlRnJvbVBhcmVudE9yQW5jZXN0b3JUeXBlTm9kZSxnZXRDdXJyZW50VGltZTooKT0+Z2V0Q3VycmVudFRpbWUsZ2V0RGVjbGFyYXRpb25EaWFnbm9zdGljczooKT0+Z2V0RGVjbGFyYXRpb25EaWFnbm9zdGljcyxnZXREZWNsYXJhdGlvbkVtaXRFeHRlbnNpb25Gb3JQYXRoOigpPT5YVCxnZXREZWNsYXJhdGlvbkVtaXRPdXRwdXRGaWxlUGF0aDooKT0+aE4sZ2V0RGVjbGFyYXRpb25FbWl0T3V0cHV0RmlsZVBhdGhXb3JrZXI6KCk9PkdULGdldERlY2xhcmF0aW9uRnJvbU5hbWU6KCk9Pk9JLGdldERlY2xhcmF0aW9uTW9kaWZpZXJGbGFnc0Zyb21TeW1ib2w6KCk9PmJPLGdldERlY2xhcmF0aW9uT2ZLaW5kOigpPT5qayxnZXREZWNsYXJhdGlvbnNPZktpbmQ6KCk9PkZrLGdldERlY2xhcmVkRXhwYW5kb0luaXRpYWxpemVyOigpPT50SSxnZXREZWNvcmF0b3JzOigpPT5fQSxnZXREZWZhdWx0Q29tcGlsZXJPcHRpb25zOigpPT5fNyxnZXREZWZhdWx0RXhwb3J0SW5mb1dvcmtlcjooKT0+Z2V0RGVmYXVsdEV4cG9ydEluZm9Xb3JrZXIsZ2V0RGVmYXVsdEZvcm1hdENvZGVTZXR0aW5nczooKT0+Z2V0RGVmYXVsdEZvcm1hdENvZGVTZXR0aW5ncyxnZXREZWZhdWx0TGliRmlsZU5hbWU6KCk9PlQ0LGdldERlZmF1bHRMaWJGaWxlUGF0aDooKT0+c0IsZ2V0RGVmYXVsdExpa2VFeHBvcnRJbmZvOigpPT5nZXREZWZhdWx0TGlrZUV4cG9ydEluZm8sZ2V0RGlhZ25vc3RpY1RleHQ6KCk9PmdldERpYWdub3N0aWNUZXh0LGdldERpYWdub3N0aWNzV2l0aGluU3BhbjooKT0+Z2V0RGlhZ25vc3RpY3NXaXRoaW5TcGFuLGdldERpcmVjdG9yeVBhdGg6KCk9PiRpLGdldERpcmVjdG9yeVRvV2F0Y2hGYWlsZWRMb29rdXBMb2NhdGlvbjooKT0+Z2V0RGlyZWN0b3J5VG9XYXRjaEZhaWxlZExvb2t1cExvY2F0aW9uLGdldERpcmVjdG9yeVRvV2F0Y2hGYWlsZWRMb29rdXBMb2NhdGlvbkZyb21UeXBlUm9vdDooKT0+Z2V0RGlyZWN0b3J5VG9XYXRjaEZhaWxlZExvb2t1cExvY2F0aW9uRnJvbVR5cGVSb290LGdldERvY3VtZW50UG9zaXRpb25NYXBwZXI6KCk9PmdldERvY3VtZW50UG9zaXRpb25NYXBwZXIsZ2V0RVNNb2R1bGVJbnRlcm9wOigpPT5VMixnZXRFZGl0c0ZvckZpbGVSZW5hbWU6KCk9PmdldEVkaXRzRm9yRmlsZVJlbmFtZSxnZXRFZmZlY3RpdmVCYXNlVHlwZU5vZGU6KCk9PmtULGdldEVmZmVjdGl2ZUNvbnN0cmFpbnRPZlR5cGVQYXJhbWV0ZXI6KCk9PndBLGdldEVmZmVjdGl2ZUNvbnRhaW5lckZvckpTRG9jVGVtcGxhdGVUYWc6KCk9PlNJLGdldEVmZmVjdGl2ZUltcGxlbWVudHNUeXBlTm9kZXM6KCk9PlBULGdldEVmZmVjdGl2ZUluaXRpYWxpemVyOigpPT5zVCxnZXRFZmZlY3RpdmVKU0RvY0hvc3Q6KCk9PnkyLGdldEVmZmVjdGl2ZU1vZGlmaWVyRmxhZ3M6KCk9PmJtLGdldEVmZmVjdGl2ZU1vZGlmaWVyRmxhZ3NBbHdheXNJbmNsdWRlSlNEb2M6KCk9PmNTLGdldEVmZmVjdGl2ZU1vZGlmaWVyRmxhZ3NOb0NhY2hlOigpPT51UyxnZXRFZmZlY3RpdmVSZXR1cm5UeXBlTm9kZTooKT0+QU4sZ2V0RWZmZWN0aXZlU2V0QWNjZXNzb3JUeXBlQW5ub3RhdGlvbk5vZGU6KCk9PkROLGdldEVmZmVjdGl2ZVR5cGVBbm5vdGF0aW9uTm9kZTooKT0+STIsZ2V0RWZmZWN0aXZlVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uczooKT0+eEEsZ2V0RWZmZWN0aXZlVHlwZVJvb3RzOigpPT5nZXRFZmZlY3RpdmVUeXBlUm9vdHMsZ2V0RWxlbWVudE9yUHJvcGVydHlBY2Nlc3NBcmd1bWVudEV4cHJlc3Npb25Pck5hbWU6KCk9PmZtLGdldEVsZW1lbnRPclByb3BlcnR5QWNjZXNzTmFtZTooKT0+aW8sZ2V0RWxlbWVudHNPZkJpbmRpbmdPckFzc2lnbm1lbnRQYXR0ZXJuOigpPT5qOCxnZXRFbWl0RGVjbGFyYXRpb25zOigpPT56MixnZXRFbWl0RmxhZ3M6KCk9PnRpLGdldEVtaXRIZWxwZXJzOigpPT5nZXRFbWl0SGVscGVycyxnZXRFbWl0TW9kdWxlRGV0ZWN0aW9uS2luZDooKT0+alMsZ2V0RW1pdE1vZHVsZUtpbmQ6KCk9Pm5pLGdldEVtaXRNb2R1bGVSZXNvbHV0aW9uS2luZDooKT0+T18sZ2V0RW1pdFNjcmlwdFRhcmdldDooKT0+UWwsZ2V0RW1pdFN0YW5kYXJkQ2xhc3NGaWVsZHM6KCk9PnVNLGdldEVuY2xvc2luZ0Jsb2NrU2NvcGVDb250YWluZXI6KCk9PlMwLGdldEVuY2xvc2luZ0NvbnRhaW5lcjooKT0+VUQsZ2V0RW5jb2RlZFNlbWFudGljQ2xhc3NpZmljYXRpb25zOigpPT5nZXRFbmNvZGVkU2VtYW50aWNDbGFzc2lmaWNhdGlvbnMsZ2V0RW5jb2RlZFN5bnRhY3RpY0NsYXNzaWZpY2F0aW9uczooKT0+Z2V0RW5jb2RlZFN5bnRhY3RpY0NsYXNzaWZpY2F0aW9ucyxnZXRFbmRMaW5lUG9zaXRpb246KCk9PlAzLGdldEVudGl0eU5hbWVGcm9tVHlwZU5vZGU6KCk9PkJQLGdldEVudHJ5cG9pbnRzRnJvbVBhY2thZ2VKc29uSW5mbzooKT0+Z2V0RW50cnlwb2ludHNGcm9tUGFja2FnZUpzb25JbmZvLGdldEVycm9yQ291bnRGb3JTdW1tYXJ5OigpPT5nZXRFcnJvckNvdW50Rm9yU3VtbWFyeSxnZXRFcnJvclNwYW5Gb3JOb2RlOigpPT5aZyxnZXRFcnJvclN1bW1hcnlUZXh0OigpPT5nZXRFcnJvclN1bW1hcnlUZXh0LGdldEVzY2FwZWRUZXh0T2ZJZGVudGlmaWVyT3JMaXRlcmFsOigpPT5KVCxnZXRFc2NhcGVkVGV4dE9mSnN4QXR0cmlidXRlTmFtZTooKT0+eUwsZ2V0RXNjYXBlZFRleHRPZkpzeE5hbWVzcGFjZWROYW1lOigpPT5ZbCxnZXRFeHBhbmRvSW5pdGlhbGl6ZXI6KCk9PkFfLGdldEV4cG9ydEFzc2lnbm1lbnRFeHByZXNzaW9uOigpPT5BVCxnZXRFeHBvcnRJbmZvTWFwOigpPT5nZXRFeHBvcnRJbmZvTWFwLGdldEV4cG9ydE5lZWRzSW1wb3J0U3RhckhlbHBlcjooKT0+Z2V0RXhwb3J0TmVlZHNJbXBvcnRTdGFySGVscGVyLGdldEV4cHJlc3Npb25Bc3NvY2lhdGl2aXR5OigpPT50TixnZXRFeHByZXNzaW9uUHJlY2VkZW5jZTooKT0+ck4sZ2V0RXh0ZXJuYWxIZWxwZXJzTW9kdWxlTmFtZTooKT0+TzgsZ2V0RXh0ZXJuYWxNb2R1bGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbkV4cHJlc3Npb246KCk9PlZQLGdldEV4dGVybmFsTW9kdWxlTmFtZTooKT0+ZDIsZ2V0RXh0ZXJuYWxNb2R1bGVOYW1lRnJvbURlY2xhcmF0aW9uOigpPT5kTixnZXRFeHRlcm5hbE1vZHVsZU5hbWVGcm9tUGF0aDooKT0+RTIsZ2V0RXh0ZXJuYWxNb2R1bGVOYW1lTGl0ZXJhbDooKT0+alIsZ2V0RXh0ZXJuYWxNb2R1bGVSZXF1aXJlQXJndW1lbnQ6KCk9PkhQLGdldEZhbGxiYWNrT3B0aW9uczooKT0+Z2V0RmFsbGJhY2tPcHRpb25zLGdldEZpbGVFbWl0T3V0cHV0OigpPT5nZXRGaWxlRW1pdE91dHB1dCxnZXRGaWxlTWF0Y2hlclBhdHRlcm5zOigpPT56UyxnZXRGaWxlTmFtZXNGcm9tQ29uZmlnU3BlY3M6KCk9PmdldEZpbGVOYW1lc0Zyb21Db25maWdTcGVjcyxnZXRGaWxlV2F0Y2hlckV2ZW50S2luZDooKT0+Z2V0RmlsZVdhdGNoZXJFdmVudEtpbmQsZ2V0RmlsZXNJbkVycm9yRm9yU3VtbWFyeTooKT0+Z2V0RmlsZXNJbkVycm9yRm9yU3VtbWFyeSxnZXRGaXJzdENvbnN0cnVjdG9yV2l0aEJvZHk6KCk9PllULGdldEZpcnN0SWRlbnRpZmllcjooKT0+cU4sZ2V0Rmlyc3ROb25TcGFjZUNoYXJhY3RlclBvc2l0aW9uOigpPT5nZXRGaXJzdE5vblNwYWNlQ2hhcmFjdGVyUG9zaXRpb24sZ2V0Rmlyc3RQcm9qZWN0T3V0cHV0OigpPT5nZXRGaXJzdFByb2plY3RPdXRwdXQsZ2V0Rml4YWJsZUVycm9yU3BhbkV4cHJlc3Npb246KCk9PmdldEZpeGFibGVFcnJvclNwYW5FeHByZXNzaW9uLGdldEZvcm1hdENvZGVTZXR0aW5nc0ZvcldyaXRpbmc6KCk9PmdldEZvcm1hdENvZGVTZXR0aW5nc0ZvcldyaXRpbmcsZ2V0RnVsbFdpZHRoOigpPT5vbSxnZXRGdW5jdGlvbkZsYWdzOigpPT56SSxnZXRIZXJpdGFnZUNsYXVzZTooKT0+bW0sZ2V0SG9zdFNpZ25hdHVyZUZyb21KU0RvYzooKT0+aDIsZ2V0SWRlbnRpZmllckF1dG9HZW5lcmF0ZTooKT0+Z2V0SWRlbnRpZmllckF1dG9HZW5lcmF0ZSxnZXRJZGVudGlmaWVyR2VuZXJhdGVkSW1wb3J0UmVmZXJlbmNlOigpPT5nZXRJZGVudGlmaWVyR2VuZXJhdGVkSW1wb3J0UmVmZXJlbmNlLGdldElkZW50aWZpZXJUeXBlQXJndW1lbnRzOigpPT5nZXRJZGVudGlmaWVyVHlwZUFyZ3VtZW50cyxnZXRJbW1lZGlhdGVseUludm9rZWRGdW5jdGlvbkV4cHJlc3Npb246KCk9PkxQLGdldEltcGxpZWROb2RlRm9ybWF0Rm9yRmlsZTooKT0+Z2V0SW1wbGllZE5vZGVGb3JtYXRGb3JGaWxlLGdldEltcGxpZWROb2RlRm9ybWF0Rm9yRmlsZVdvcmtlcjooKT0+Z2V0SW1wbGllZE5vZGVGb3JtYXRGb3JGaWxlV29ya2VyLGdldEltcG9ydE5lZWRzSW1wb3J0RGVmYXVsdEhlbHBlcjooKT0+Z2V0SW1wb3J0TmVlZHNJbXBvcnREZWZhdWx0SGVscGVyLGdldEltcG9ydE5lZWRzSW1wb3J0U3RhckhlbHBlcjooKT0+Z2V0SW1wb3J0TmVlZHNJbXBvcnRTdGFySGVscGVyLGdldEluZGVudFNpemU6KCk9PkpvLGdldEluZGVudFN0cmluZzooKT0+dzIsZ2V0SW5mZXJyZWRMaWJyYXJ5TmFtZVJlc29sdmVGcm9tOigpPT5nZXRJbmZlcnJlZExpYnJhcnlOYW1lUmVzb2x2ZUZyb20sZ2V0SW5pdGlhbGl6ZWRWYXJpYWJsZXM6KCk9PmhPLGdldEluaXRpYWxpemVyT2ZCaW5hcnlFeHByZXNzaW9uOigpPT5wVCxnZXRJbml0aWFsaXplck9mQmluZGluZ09yQXNzaWdubWVudEVsZW1lbnQ6KCk9Pko4LGdldEludGVyZmFjZUJhc2VUeXBlTm9kZXM6KCk9Pk5ULGdldEludGVybmFsRW1pdEZsYWdzOigpPT54RCxnZXRJbnZva2VkRXhwcmVzc2lvbjooKT0+VVAsZ2V0SXNvbGF0ZWRNb2R1bGVzOigpPT5CMixnZXRKU0RvY0F1Z21lbnRzVGFnOigpPT5CNCxnZXRKU0RvY0NsYXNzVGFnOigpPT5sQSxnZXRKU0RvY0NvbW1lbnRSYW5nZXM6KCk9PkczLGdldEpTRG9jQ29tbWVudHNBbmRUYWdzOigpPT5nVCxnZXRKU0RvY0RlcHJlY2F0ZWRUYWc6KCk9Pm1BLGdldEpTRG9jRGVwcmVjYXRlZFRhZ05vQ2FjaGU6KCk9Pkc0LGdldEpTRG9jRW51bVRhZzooKT0+aEEsZ2V0SlNEb2NIb3N0OigpPT52VCxnZXRKU0RvY0ltcGxlbWVudHNUYWdzOigpPT5VNCxnZXRKU0RvY092ZXJyaWRlVGFnTm9DYWNoZTooKT0+SDQsZ2V0SlNEb2NQYXJhbWV0ZXJUYWdzOigpPT5LZCxnZXRKU0RvY1BhcmFtZXRlclRhZ3NOb0NhY2hlOigpPT5KNCxnZXRKU0RvY1ByaXZhdGVUYWc6KCk9PnBBLGdldEpTRG9jUHJpdmF0ZVRhZ05vQ2FjaGU6KCk9Pno0LGdldEpTRG9jUHJvdGVjdGVkVGFnOigpPT5mQSxnZXRKU0RvY1Byb3RlY3RlZFRhZ05vQ2FjaGU6KCk9Plc0LGdldEpTRG9jUHVibGljVGFnOigpPT51QSxnZXRKU0RvY1B1YmxpY1RhZ05vQ2FjaGU6KCk9PnE0LGdldEpTRG9jUmVhZG9ubHlUYWc6KCk9PmRBLGdldEpTRG9jUmVhZG9ubHlUYWdOb0NhY2hlOigpPT5WNCxnZXRKU0RvY1JldHVyblRhZzooKT0+WDQsZ2V0SlNEb2NSZXR1cm5UeXBlOigpPT4kNCxnZXRKU0RvY1Jvb3Q6KCk9PmcyLGdldEpTRG9jU2F0aXNmaWVzRXhwcmVzc2lvblR5cGU6KCk9PmhMLGdldEpTRG9jU2F0aXNmaWVzVGFnOigpPT5rZyxnZXRKU0RvY1RhZ3M6KCk9PlVsLGdldEpTRG9jVGFnc05vQ2FjaGU6KCk9PmJBLGdldEpTRG9jVGVtcGxhdGVUYWc6KCk9PmdBLGdldEpTRG9jVGhpc1RhZzooKT0+eUEsZ2V0SlNEb2NUeXBlOigpPT5lbSxnZXRKU0RvY1R5cGVBbGlhc05hbWU6KCk9PkswLGdldEpTRG9jVHlwZUFzc2VydGlvblR5cGU6KCk9Pk5SLGdldEpTRG9jVHlwZVBhcmFtZXRlckRlY2xhcmF0aW9uczooKT0+ZVMsZ2V0SlNEb2NUeXBlUGFyYW1ldGVyVGFnczooKT0+ajQsZ2V0SlNEb2NUeXBlUGFyYW1ldGVyVGFnc05vQ2FjaGU6KCk9PkY0LGdldEpTRG9jVHlwZVRhZzooKT0+WmQsZ2V0SlNYSW1wbGljaXRJbXBvcnRCYXNlOigpPT5oTSxnZXRKU1hSdW50aW1lSW1wb3J0OigpPT55TSxnZXRKU1hUcmFuc2Zvcm1FbmFibGVkOigpPT5tTSxnZXRLZXlGb3JDb21waWxlck9wdGlvbnM6KCk9PmdldEtleUZvckNvbXBpbGVyT3B0aW9ucyxnZXRMYW5ndWFnZVZhcmlhbnQ6KCk9PlIwLGdldExhc3RDaGlsZDooKT0+RFMsZ2V0TGVhZGluZ0NvbW1lbnRSYW5nZXM6KCk9PldvLGdldExlYWRpbmdDb21tZW50UmFuZ2VzT2ZOb2RlOigpPT5jUCxnZXRMZWZ0bW9zdEFjY2Vzc0V4cHJlc3Npb246KCk9PlIyLGdldExlZnRtb3N0RXhwcmVzc2lvbjooKT0+Uk8sZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb246KCk9PnRvLGdldExpbmVJbmZvOigpPT5nZXRMaW5lSW5mbyxnZXRMaW5lT2ZMb2NhbFBvc2l0aW9uOigpPT5TTixnZXRMaW5lT2ZMb2NhbFBvc2l0aW9uRnJvbUxpbmVNYXA6KCk9PkNhLGdldExpbmVTdGFydFBvc2l0aW9uRm9yUG9zaXRpb246KCk9PmdldExpbmVTdGFydFBvc2l0aW9uRm9yUG9zaXRpb24sZ2V0TGluZVN0YXJ0czooKT0+SWEsZ2V0TGluZXNCZXR3ZWVuUG9zaXRpb25BbmROZXh0Tm9uV2hpdGVzcGFjZUNoYXJhY3RlcjooKT0+Zk8sZ2V0TGluZXNCZXR3ZWVuUG9zaXRpb25BbmRQcmVjZWRpbmdOb25XaGl0ZXNwYWNlQ2hhcmFjdGVyOigpPT5wTyxnZXRMaW5lc0JldHdlZW5Qb3NpdGlvbnM6KCk9PnhfLGdldExpbmVzQmV0d2VlblJhbmdlRW5kQW5kUmFuZ2VTdGFydDooKT0+Y08sZ2V0TGluZXNCZXR3ZWVuUmFuZ2VFbmRQb3NpdGlvbnM6KCk9PmxPLGdldExpdGVyYWxUZXh0OigpPT53RCxnZXRMb2NhbE5hbWVGb3JFeHRlcm5hbEltcG9ydDooKT0+UlIsZ2V0TG9jYWxTeW1ib2xGb3JFeHBvcnREZWZhdWx0OigpPT5HTixnZXRMb2NhbGVTcGVjaWZpY01lc3NhZ2U6KCk9Pk5fLGdldExvY2FsZVRpbWVTdHJpbmc6KCk9PmdldExvY2FsZVRpbWVTdHJpbmcsZ2V0TWFwcGVkQ29udGV4dFNwYW46KCk9PmdldE1hcHBlZENvbnRleHRTcGFuLGdldE1hcHBlZERvY3VtZW50U3BhbjooKT0+Z2V0TWFwcGVkRG9jdW1lbnRTcGFuLGdldE1hcHBlZExvY2F0aW9uOigpPT5nZXRNYXBwZWRMb2NhdGlvbixnZXRNYXRjaGVkRmlsZVNwZWM6KCk9PmdldE1hdGNoZWRGaWxlU3BlYyxnZXRNYXRjaGVkSW5jbHVkZVNwZWM6KCk9PmdldE1hdGNoZWRJbmNsdWRlU3BlYyxnZXRNZWFuaW5nRnJvbURlY2xhcmF0aW9uOigpPT5nZXRNZWFuaW5nRnJvbURlY2xhcmF0aW9uLGdldE1lYW5pbmdGcm9tTG9jYXRpb246KCk9PmdldE1lYW5pbmdGcm9tTG9jYXRpb24sZ2V0TWVtYmVyc09mRGVjbGFyYXRpb246KCk9PmRQLGdldE1vZGVGb3JGaWxlUmVmZXJlbmNlOigpPT5nZXRNb2RlRm9yRmlsZVJlZmVyZW5jZSxnZXRNb2RlRm9yUmVzb2x1dGlvbkF0SW5kZXg6KCk9PmdldE1vZGVGb3JSZXNvbHV0aW9uQXRJbmRleCxnZXRNb2RlRm9yVXNhZ2VMb2NhdGlvbjooKT0+Z2V0TW9kZUZvclVzYWdlTG9jYXRpb24sZ2V0TW9kaWZpZWRUaW1lOigpPT5nZXRNb2RpZmllZFRpbWUsZ2V0TW9kaWZpZXJzOigpPT5oZCxnZXRNb2R1bGVJbnN0YW5jZVN0YXRlOigpPT5nZXRNb2R1bGVJbnN0YW5jZVN0YXRlLGdldE1vZHVsZU5hbWVTdHJpbmdMaXRlcmFsQXQ6KCk9PmdldE1vZHVsZU5hbWVTdHJpbmdMaXRlcmFsQXQsZ2V0TW9kdWxlU3BlY2lmaWVyRW5kaW5nUHJlZmVyZW5jZTooKT0+UE0sZ2V0TW9kdWxlU3BlY2lmaWVyUmVzb2x2ZXJIb3N0OigpPT5nZXRNb2R1bGVTcGVjaWZpZXJSZXNvbHZlckhvc3QsZ2V0TmFtZUZvckV4cG9ydGVkU3ltYm9sOigpPT5nZXROYW1lRm9yRXhwb3J0ZWRTeW1ib2wsZ2V0TmFtZUZyb21JbmRleEluZm86KCk9PnpELGdldE5hbWVGcm9tUHJvcGVydHlOYW1lOigpPT5nZXROYW1lRnJvbVByb3BlcnR5TmFtZSxnZXROYW1lT2ZBY2Nlc3NFeHByZXNzaW9uOigpPT5PTyxnZXROYW1lT2ZDb21waWxlck9wdGlvblZhbHVlOigpPT5nZXROYW1lT2ZDb21waWxlck9wdGlvblZhbHVlLGdldE5hbWVPZkRlY2xhcmF0aW9uOigpPT5CbCxnZXROYW1lT2ZFeHBhbmRvOigpPT5vSSxnZXROYW1lT2ZKU0RvY1R5cGVkZWY6KCk9Pk80LGdldE5hbWVPckFyZ3VtZW50OigpPT5sVCxnZXROYW1lVGFibGU6KCk9PnRCLGdldE5hbWVzRm9yRXhwb3J0ZWRTeW1ib2w6KCk9PmdldE5hbWVzRm9yRXhwb3J0ZWRTeW1ib2wsZ2V0TmFtZXNwYWNlRGVjbGFyYXRpb25Ob2RlOigpPT5kVCxnZXROZXdMaW5lQ2hhcmFjdGVyOigpPT5UUyxnZXROZXdMaW5lS2luZDooKT0+Z2V0TmV3TGluZUtpbmQsZ2V0TmV3TGluZU9yRGVmYXVsdEZyb21Ib3N0OigpPT5nZXROZXdMaW5lT3JEZWZhdWx0RnJvbUhvc3QsZ2V0TmV3VGFyZ2V0Q29udGFpbmVyOigpPT5PUCxnZXROZXh0SlNEb2NDb21tZW50TG9jYXRpb246KCk9PmJULGdldE5vZGVGb3JHZW5lcmF0ZWROYW1lOigpPT52aixnZXROb2RlSWQ6KCk9PmdldE5vZGVJZCxnZXROb2RlS2luZDooKT0+Z2V0Tm9kZUtpbmQsZ2V0Tm9kZU1vZGlmaWVyczooKT0+Z2V0Tm9kZU1vZGlmaWVycyxnZXROb2RlTW9kdWxlUGF0aFBhcnRzOigpPT5jTCxnZXROb25Bc3NpZ25lZE5hbWVPZkRlY2xhcmF0aW9uOigpPT5ZZCxnZXROb25Bc3NpZ25tZW50T3BlcmF0b3JGb3JDb21wb3VuZEFzc2lnbm1lbnQ6KCk9PmdldE5vbkFzc2lnbm1lbnRPcGVyYXRvckZvckNvbXBvdW5kQXNzaWdubWVudCxnZXROb25BdWdtZW50YXRpb25EZWNsYXJhdGlvbjooKT0+QjMsZ2V0Tm9uRGVjb3JhdG9yVG9rZW5Qb3NPZk5vZGU6KCk9PmJELGdldE5vcm1hbGl6ZWRBYnNvbHV0ZVBhdGg6KCk9PlBhLGdldE5vcm1hbGl6ZWRBYnNvbHV0ZVBhdGhXaXRob3V0Um9vdDooKT0+UEUsZ2V0Tm9ybWFsaXplZFBhdGhDb21wb25lbnRzOigpPT5XZCxnZXRPYmplY3RGbGFnczooKT0+UmYsZ2V0T3BlcmF0b3I6KCk9PngyLGdldE9wZXJhdG9yQXNzb2NpYXRpdml0eTooKT0+RlQsZ2V0T3BlcmF0b3JQcmVjZWRlbmNlOigpPT5CVCxnZXRPcHRpb25Gcm9tTmFtZTooKT0+Z2V0T3B0aW9uRnJvbU5hbWUsZ2V0T3B0aW9uc0ZvckxpYnJhcnlSZXNvbHV0aW9uOigpPT5nZXRPcHRpb25zRm9yTGlicmFyeVJlc29sdXRpb24sZ2V0T3B0aW9uc05hbWVNYXA6KCk9PmdldE9wdGlvbnNOYW1lTWFwLGdldE9yQ3JlYXRlRW1pdE5vZGU6KCk9PmdldE9yQ3JlYXRlRW1pdE5vZGUsZ2V0T3JDcmVhdGVFeHRlcm5hbEhlbHBlcnNNb2R1bGVOYW1lSWZOZWVkZWQ6KCk9Pk04LGdldE9yVXBkYXRlOigpPT4kNSxnZXRPcmlnaW5hbE5vZGU6KCk9PmpsLGdldE9yaWdpbmFsTm9kZUlkOigpPT5nZXRPcmlnaW5hbE5vZGVJZCxnZXRPcmlnaW5hbFNvdXJjZUZpbGU6KCk9PmVOLGdldE91dHB1dERlY2xhcmF0aW9uRmlsZU5hbWU6KCk9PmdldE91dHB1dERlY2xhcmF0aW9uRmlsZU5hbWUsZ2V0T3V0cHV0RXh0ZW5zaW9uOigpPT5nZXRPdXRwdXRFeHRlbnNpb24sZ2V0T3V0cHV0RmlsZU5hbWVzOigpPT5nZXRPdXRwdXRGaWxlTmFtZXMsZ2V0T3V0cHV0UGF0aHNGb3I6KCk9PmdldE91dHB1dFBhdGhzRm9yLGdldE91dHB1dFBhdGhzRm9yQnVuZGxlOigpPT5nZXRPdXRwdXRQYXRoc0ZvckJ1bmRsZSxnZXRPd25FbWl0T3V0cHV0RmlsZVBhdGg6KCk9Pm1OLGdldE93bktleXM6KCk9PnNnLGdldE93blZhbHVlczooKT0+VEMsZ2V0UGFja2FnZUpzb25JbmZvOigpPT5nZXRQYWNrYWdlSnNvbkluZm8sZ2V0UGFja2FnZUpzb25UeXBlc1ZlcnNpb25zUGF0aHM6KCk9PmdldFBhY2thZ2VKc29uVHlwZXNWZXJzaW9uc1BhdGhzLGdldFBhY2thZ2VKc29uc1Zpc2libGVUb0ZpbGU6KCk9PmdldFBhY2thZ2VKc29uc1Zpc2libGVUb0ZpbGUsZ2V0UGFja2FnZU5hbWVGcm9tVHlwZXNQYWNrYWdlTmFtZTooKT0+Z2V0UGFja2FnZU5hbWVGcm9tVHlwZXNQYWNrYWdlTmFtZSxnZXRQYWNrYWdlU2NvcGVGb3JQYXRoOigpPT5nZXRQYWNrYWdlU2NvcGVGb3JQYXRoLGdldFBhcmFtZXRlclN5bWJvbEZyb21KU0RvYzooKT0+VEksZ2V0UGFyYW1ldGVyVHlwZU5vZGU6KCk9PmxMLGdldFBhcmVudE5vZGVJblNwYW46KCk9PmdldFBhcmVudE5vZGVJblNwYW4sZ2V0UGFyc2VUcmVlTm9kZTooKT0+RmwsZ2V0UGFyc2VkQ29tbWFuZExpbmVPZkNvbmZpZ0ZpbGU6KCk9PmdldFBhcnNlZENvbW1hbmRMaW5lT2ZDb25maWdGaWxlLGdldFBhdGhDb21wb25lbnRzOigpPT5BaSxnZXRQYXRoQ29tcG9uZW50c1JlbGF0aXZlVG86KCk9PmdnLGdldFBhdGhGcm9tUGF0aENvbXBvbmVudHM6KCk9PlVvLGdldFBhdGhVcGRhdGVyOigpPT5nZXRQYXRoVXBkYXRlcixnZXRQYXRoc0Jhc2VQYXRoOigpPT5nTixnZXRQYXR0ZXJuRnJvbVNwZWM6KCk9PkNNLGdldFBlbmRpbmdFbWl0S2luZDooKT0+Z2V0UGVuZGluZ0VtaXRLaW5kLGdldFBvc2l0aW9uT2ZMaW5lQW5kQ2hhcmFjdGVyOigpPT5VRSxnZXRQb3NzaWJsZUdlbmVyaWNTaWduYXR1cmVzOigpPT5nZXRQb3NzaWJsZUdlbmVyaWNTaWduYXR1cmVzLGdldFBvc3NpYmxlT3JpZ2luYWxJbnB1dEV4dGVuc2lvbkZvckV4dGVuc2lvbjooKT0+eU4sZ2V0UG9zc2libGVUeXBlQXJndW1lbnRzSW5mbzooKT0+Z2V0UG9zc2libGVUeXBlQXJndW1lbnRzSW5mbyxnZXRQcmVFbWl0RGlhZ25vc3RpY3M6KCk9PmdldFByZUVtaXREaWFnbm9zdGljcyxnZXRQcmVjZWRpbmdOb25TcGFjZUNoYXJhY3RlclBvc2l0aW9uOigpPT5nZXRQcmVjZWRpbmdOb25TcGFjZUNoYXJhY3RlclBvc2l0aW9uLGdldFByaXZhdGVJZGVudGlmaWVyOigpPT5nZXRQcml2YXRlSWRlbnRpZmllcixnZXRQcm9wZXJ0aWVzOigpPT5nZXRQcm9wZXJ0aWVzLGdldFByb3BlcnR5OigpPT5iQyxnZXRQcm9wZXJ0eUFycmF5RWxlbWVudFZhbHVlOigpPT53UCxnZXRQcm9wZXJ0eUFzc2lnbm1lbnRBbGlhc0xpa2VFeHByZXNzaW9uOigpPT5KSSxnZXRQcm9wZXJ0eU5hbWVGb3JQcm9wZXJ0eU5hbWVOb2RlOigpPT5nZCxnZXRQcm9wZXJ0eU5hbWVGb3JVbmlxdWVFU1N5bWJvbDooKT0+VkksZ2V0UHJvcGVydHlOYW1lRnJvbVR5cGU6KCk9PlNMLGdldFByb3BlcnR5TmFtZU9mQmluZGluZ09yQXNzaWdubWVudEVsZW1lbnQ6KCk9PnFSLGdldFByb3BlcnR5U3ltYm9sRnJvbUJpbmRpbmdFbGVtZW50OigpPT5nZXRQcm9wZXJ0eVN5bWJvbEZyb21CaW5kaW5nRWxlbWVudCxnZXRQcm9wZXJ0eVN5bWJvbHNGcm9tQ29udGV4dHVhbFR5cGU6KCk9PmY3LGdldFF1b3RlRnJvbVByZWZlcmVuY2U6KCk9PmdldFF1b3RlRnJvbVByZWZlcmVuY2UsZ2V0UXVvdGVQcmVmZXJlbmNlOigpPT5nZXRRdW90ZVByZWZlcmVuY2UsZ2V0UmFuZ2VzV2hlcmU6KCk9PmVDLGdldFJlZmFjdG9yQ29udGV4dFNwYW46KCk9PmdldFJlZmFjdG9yQ29udGV4dFNwYW4sZ2V0UmVmZXJlbmNlZEZpbGVMb2NhdGlvbjooKT0+Z2V0UmVmZXJlbmNlZEZpbGVMb2NhdGlvbixnZXRSZWdleEZyb21QYXR0ZXJuOigpPT5GZixnZXRSZWd1bGFyRXhwcmVzc2lvbkZvcldpbGRjYXJkOigpPT5qZixnZXRSZWd1bGFyRXhwcmVzc2lvbnNGb3JXaWxkY2FyZHM6KCk9PlYyLGdldFJlbGF0aXZlUGF0aEZyb21EaXJlY3Rvcnk6KCk9Plp2LGdldFJlbGF0aXZlUGF0aEZyb21GaWxlOigpPT5KRSxnZXRSZWxhdGl2ZVBhdGhUb0RpcmVjdG9yeU9yVXJsOigpPT5iZyxnZXRSZW5hbWVMb2NhdGlvbjooKT0+Z2V0UmVuYW1lTG9jYXRpb24sZ2V0UmVwbGFjZW1lbnRTcGFuRm9yQ29udGV4dFRva2VuOigpPT5nZXRSZXBsYWNlbWVudFNwYW5Gb3JDb250ZXh0VG9rZW4sZ2V0UmVzb2x1dGlvbkRpYWdub3N0aWM6KCk9PmdldFJlc29sdXRpb25EaWFnbm9zdGljLGdldFJlc29sdXRpb25Nb2RlT3ZlcnJpZGVGb3JDbGF1c2U6KCk9PmdldFJlc29sdXRpb25Nb2RlT3ZlcnJpZGVGb3JDbGF1c2UsZ2V0UmVzb2x2ZUpzb25Nb2R1bGU6KCk9PkZTLGdldFJlc29sdmVQYWNrYWdlSnNvbkV4cG9ydHM6KCk9Pm9NLGdldFJlc29sdmVQYWNrYWdlSnNvbkltcG9ydHM6KCk9PnNNLGdldFJlc29sdmVkRXh0ZXJuYWxNb2R1bGVOYW1lOigpPT5IVCxnZXRSZXNvbHZlZE1vZHVsZTooKT0+JGssZ2V0UmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlOigpPT5LayxnZXRSZXN0SW5kaWNhdG9yT2ZCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudDooKT0+VVIsZ2V0UmVzdFBhcmFtZXRlckVsZW1lbnRUeXBlOigpPT5mUCxnZXRSaWdodE1vc3RBc3NpZ25lZEV4cHJlc3Npb246KCk9PmwyLGdldFJvb3REZWNsYXJhdGlvbjooKT0+aG0sZ2V0Um9vdERpcmVjdG9yeU9mUmVzb2x1dGlvbkNhY2hlOigpPT5nZXRSb290RGlyZWN0b3J5T2ZSZXNvbHV0aW9uQ2FjaGUsZ2V0Um9vdExlbmd0aDooKT0+RWksZ2V0Um9vdFBhdGhTcGxpdExlbmd0aDooKT0+Z2V0Um9vdFBhdGhTcGxpdExlbmd0aCxnZXRTY3JpcHRLaW5kOigpPT5nZXRTY3JpcHRLaW5kLGdldFNjcmlwdEtpbmRGcm9tRmlsZU5hbWU6KCk9PlZTLGdldFNjcmlwdFRhcmdldEZlYXR1cmVzOigpPT5nZXRTY3JpcHRUYXJnZXRGZWF0dXJlcyxnZXRTZWxlY3RlZEVmZmVjdGl2ZU1vZGlmaWVyRmxhZ3M6KCk9PnNTLGdldFNlbGVjdGVkU3ludGFjdGljTW9kaWZpZXJGbGFnczooKT0+X1MsZ2V0U2VtYW50aWNDbGFzc2lmaWNhdGlvbnM6KCk9PmdldFNlbWFudGljQ2xhc3NpZmljYXRpb25zLGdldFNlbWFudGljSnN4Q2hpbGRyZW46KCk9Pm5OLGdldFNldEFjY2Vzc29yVHlwZUFubm90YXRpb25Ob2RlOigpPT54TixnZXRTZXRBY2Nlc3NvclZhbHVlUGFyYW1ldGVyOigpPT5EMixnZXRTZXRFeHRlcm5hbE1vZHVsZUluZGljYXRvcjooKT0+UlMsZ2V0U2hlYmFuZzooKT0+YzQsZ2V0U2luZ2xlSW5pdGlhbGl6ZXJPZlZhcmlhYmxlU3RhdGVtZW50T3JQcm9wZXJ0eURlY2xhcmF0aW9uOigpPT5tMixnZXRTaW5nbGVWYXJpYWJsZU9mVmFyaWFibGVTdGF0ZW1lbnQ6KCk9PkNsLGdldFNuYXBzaG90VGV4dDooKT0+Z2V0U25hcHNob3RUZXh0LGdldFNuaXBwZXRFbGVtZW50OigpPT5nZXRTbmlwcGV0RWxlbWVudCxnZXRTb3VyY2VGaWxlT2ZNb2R1bGU6KCk9PnNELGdldFNvdXJjZUZpbGVPZk5vZGU6KCk9PnJpLGdldFNvdXJjZUZpbGVQYXRoSW5OZXdEaXI6KCk9PiRULGdldFNvdXJjZUZpbGVQYXRoSW5OZXdEaXJXb3JrZXI6KCk9PmsyLGdldFNvdXJjZUZpbGVWZXJzaW9uQXNIYXNoRnJvbVRleHQ6KCk9PmdldFNvdXJjZUZpbGVWZXJzaW9uQXNIYXNoRnJvbVRleHQsZ2V0U291cmNlRmlsZXNUb0VtaXQ6KCk9PmJOLGdldFNvdXJjZU1hcFJhbmdlOigpPT5nZXRTb3VyY2VNYXBSYW5nZSxnZXRTb3VyY2VNYXBwZXI6KCk9PmdldFNvdXJjZU1hcHBlcixnZXRTb3VyY2VUZXh0T2ZOb2RlRnJvbVNvdXJjZUZpbGU6KCk9PlhvLGdldFNwYW5PZlRva2VuQXRQb3NpdGlvbjooKT0+WXMsZ2V0U3BlbGxpbmdTdWdnZXN0aW9uOigpPT5KdixnZXRTdGFydFBvc2l0aW9uT2ZMaW5lOigpPT5sRCxnZXRTdGFydFBvc2l0aW9uT2ZSYW5nZTooKT0+Zl8sZ2V0U3RhcnRzT25OZXdMaW5lOigpPT5nZXRTdGFydHNPbk5ld0xpbmUsZ2V0U3RhdGljUHJvcGVydGllc0FuZENsYXNzU3RhdGljQmxvY2s6KCk9PmdldFN0YXRpY1Byb3BlcnRpZXNBbmRDbGFzc1N0YXRpY0Jsb2NrLGdldFN0cmljdE9wdGlvblZhbHVlOigpPT5XMixnZXRTdHJpbmdDb21wYXJlcjooKT0+X2csZ2V0U3VwZXJDYWxsRnJvbVN0YXRlbWVudDooKT0+Z2V0U3VwZXJDYWxsRnJvbVN0YXRlbWVudCxnZXRTdXBlckNvbnRhaW5lcjooKT0+TVAsZ2V0U3VwcG9ydGVkQ29kZUZpeGVzOigpPT5jNyxnZXRTdXBwb3J0ZWRFeHRlbnNpb25zOigpPT5IUyxnZXRTdXBwb3J0ZWRFeHRlbnNpb25zV2l0aEpzb25JZlJlc29sdmVKc29uTW9kdWxlOigpPT5HUyxnZXRTd2l0Y2hlZFR5cGU6KCk9PmdldFN3aXRjaGVkVHlwZSxnZXRTeW1ib2xJZDooKT0+Z2V0U3ltYm9sSWQsZ2V0U3ltYm9sTmFtZUZvclByaXZhdGVJZGVudGlmaWVyOigpPT5ISSxnZXRTeW1ib2xUYXJnZXQ6KCk9PmdldFN5bWJvbFRhcmdldCxnZXRTeW50YWN0aWNDbGFzc2lmaWNhdGlvbnM6KCk9PmdldFN5bnRhY3RpY0NsYXNzaWZpY2F0aW9ucyxnZXRTeW50YWN0aWNNb2RpZmllckZsYWdzOigpPT5NMixnZXRTeW50YWN0aWNNb2RpZmllckZsYWdzTm9DYWNoZTooKT0+TDIsZ2V0U3ludGhlc2l6ZWREZWVwQ2xvbmU6KCk9PmdldFN5bnRoZXNpemVkRGVlcENsb25lLGdldFN5bnRoZXNpemVkRGVlcENsb25lV2l0aFJlcGxhY2VtZW50czooKT0+Z2V0U3ludGhlc2l6ZWREZWVwQ2xvbmVXaXRoUmVwbGFjZW1lbnRzLGdldFN5bnRoZXNpemVkRGVlcENsb25lczooKT0+Z2V0U3ludGhlc2l6ZWREZWVwQ2xvbmVzLGdldFN5bnRoZXNpemVkRGVlcENsb25lc1dpdGhSZXBsYWNlbWVudHM6KCk9PmdldFN5bnRoZXNpemVkRGVlcENsb25lc1dpdGhSZXBsYWNlbWVudHMsZ2V0U3ludGhldGljTGVhZGluZ0NvbW1lbnRzOigpPT5nZXRTeW50aGV0aWNMZWFkaW5nQ29tbWVudHMsZ2V0U3ludGhldGljVHJhaWxpbmdDb21tZW50czooKT0+Z2V0U3ludGhldGljVHJhaWxpbmdDb21tZW50cyxnZXRUYXJnZXRMYWJlbDooKT0+Z2V0VGFyZ2V0TGFiZWwsZ2V0VGFyZ2V0T2ZCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudDooKT0+TW8sZ2V0VGVtcG9yYXJ5TW9kdWxlUmVzb2x1dGlvblN0YXRlOigpPT5nZXRUZW1wb3JhcnlNb2R1bGVSZXNvbHV0aW9uU3RhdGUsZ2V0VGV4dE9mQ29uc3RhbnRWYWx1ZTooKT0+RUQsZ2V0VGV4dE9mSWRlbnRpZmllck9yTGl0ZXJhbDooKT0+YmQsZ2V0VGV4dE9mSlNEb2NDb21tZW50OigpPT5UQSxnZXRUZXh0T2ZKc3hBdHRyaWJ1dGVOYW1lOigpPT5nTCxnZXRUZXh0T2ZKc3hOYW1lc3BhY2VkTmFtZTooKT0+S2wsZ2V0VGV4dE9mTm9kZTooKT0+c20sZ2V0VGV4dE9mTm9kZUZyb21Tb3VyY2VUZXh0OigpPT50XyxnZXRUZXh0T2ZQcm9wZXJ0eU5hbWU6KCk9PlZELGdldFRoaXNDb250YWluZXI6KCk9Pm8yLGdldFRoaXNQYXJhbWV0ZXI6KCk9PktULGdldFRva2VuQXRQb3NpdGlvbjooKT0+Z2V0VG9rZW5BdFBvc2l0aW9uLGdldFRva2VuUG9zT2ZOb2RlOigpPT5HbyxnZXRUb2tlblNvdXJjZU1hcFJhbmdlOigpPT5nZXRUb2tlblNvdXJjZU1hcFJhbmdlLGdldFRvdWNoaW5nUHJvcGVydHlOYW1lOigpPT5nZXRUb3VjaGluZ1Byb3BlcnR5TmFtZSxnZXRUb3VjaGluZ1Rva2VuOigpPT5nZXRUb3VjaGluZ1Rva2VuLGdldFRyYWlsaW5nQ29tbWVudFJhbmdlczooKT0+XzQsZ2V0VHJhaWxpbmdTZW1pY29sb25EZWZlcnJpbmdXcml0ZXI6KCk9PmZOLGdldFRyYW5zZm9ybUZsYWdzU3VidHJlZUV4Y2x1c2lvbnM6KCk9PlJ4LGdldFRyYW5zZm9ybWVyczooKT0+Z2V0VHJhbnNmb3JtZXJzLGdldFRzQnVpbGRJbmZvRW1pdE91dHB1dEZpbGVQYXRoOigpPT5nZXRUc0J1aWxkSW5mb0VtaXRPdXRwdXRGaWxlUGF0aCxnZXRUc0NvbmZpZ09iamVjdExpdGVyYWxFeHByZXNzaW9uOigpPT5RMyxnZXRUc0NvbmZpZ1Byb3BBcnJheUVsZW1lbnRWYWx1ZTooKT0+Q1AsZ2V0VHlwZUFubm90YXRpb25Ob2RlOigpPT5FTixnZXRUeXBlQXJndW1lbnRPclR5cGVQYXJhbWV0ZXJMaXN0OigpPT5nZXRUeXBlQXJndW1lbnRPclR5cGVQYXJhbWV0ZXJMaXN0LGdldFR5cGVLZXl3b3JkT2ZUeXBlT25seUltcG9ydDooKT0+Z2V0VHlwZUtleXdvcmRPZlR5cGVPbmx5SW1wb3J0LGdldFR5cGVOb2RlOigpPT5nZXRUeXBlTm9kZSxnZXRUeXBlTm9kZUlmQWNjZXNzaWJsZTooKT0+Z2V0VHlwZU5vZGVJZkFjY2Vzc2libGUsZ2V0VHlwZVBhcmFtZXRlckZyb21Kc0RvYzooKT0+eEksZ2V0VHlwZVBhcmFtZXRlck93bmVyOigpPT5pQSxnZXRUeXBlc1BhY2thZ2VOYW1lOigpPT5nZXRUeXBlc1BhY2thZ2VOYW1lLGdldFVJTG9jYWxlOigpPT5XQyxnZXRVbmlxdWVOYW1lOigpPT5nZXRVbmlxdWVOYW1lLGdldFVuaXF1ZVN5bWJvbElkOigpPT5nZXRVbmlxdWVTeW1ib2xJZCxnZXRVc2VEZWZpbmVGb3JDbGFzc0ZpZWxkczooKT0+bE0sZ2V0V2F0Y2hFcnJvclN1bW1hcnlEaWFnbm9zdGljTWVzc2FnZTooKT0+Z2V0V2F0Y2hFcnJvclN1bW1hcnlEaWFnbm9zdGljTWVzc2FnZSxnZXRXYXRjaEZhY3Rvcnk6KCk9PmdldFdhdGNoRmFjdG9yeSxncm91cDooKT0+RUMsZ3JvdXBCeTooKT0+QUMsZ3Vlc3NJbmRlbnRhdGlvbjooKT0+TGssaGFuZGxlTm9FbWl0T3B0aW9uczooKT0+aGFuZGxlTm9FbWl0T3B0aW9ucyxoYXNBYnN0cmFjdE1vZGlmaWVyOigpPT5pUyxoYXNBY2Nlc3Nvck1vZGlmaWVyOigpPT5vUyxoYXNBbWJpZW50TW9kaWZpZXI6KCk9PmFTLGhhc0NoYW5nZXNJblJlc29sdXRpb25zOigpPT5hRCxoYXNDaGlsZE9mS2luZDooKT0+aGFzQ2hpbGRPZktpbmQsaGFzQ29udGV4dFNlbnNpdGl2ZVBhcmFtZXRlcnM6KCk9Pm5MLGhhc0RlY29yYXRvcnM6KCk9PkVsLGhhc0RvY0NvbW1lbnQ6KCk9Pmhhc0RvY0NvbW1lbnQsaGFzRHluYW1pY05hbWU6KCk9PkxULGhhc0VmZmVjdGl2ZU1vZGlmaWVyOigpPT5OMixoYXNFZmZlY3RpdmVNb2RpZmllcnM6KCk9Pk1OLGhhc0VmZmVjdGl2ZVJlYWRvbmx5TW9kaWZpZXI6KCk9Pk8wLGhhc0V4dGVuc2lvbjooKT0+UXYsaGFzSW5kZXhTaWduYXR1cmU6KCk9Pmhhc0luZGV4U2lnbmF0dXJlLGhhc0luaXRpYWxpemVyOigpPT5FMyxoYXNJbnZhbGlkRXNjYXBlOigpPT5VVCxoYXNKU0RvY05vZGVzOigpPT5XaSxoYXNKU0RvY1BhcmFtZXRlclRhZ3M6KCk9PmNBLGhhc0pTRmlsZUV4dGVuc2lvbjooKT0+SDIsaGFzSnNvbk1vZHVsZUVtaXRFbmFibGVkOigpPT5aTyxoYXNPbmx5RXhwcmVzc2lvbkluaXRpYWxpemVyOigpPT5PayxoYXNPdmVycmlkZU1vZGlmaWVyOigpPT5KTixoYXNQb3NzaWJsZUV4dGVybmFsTW9kdWxlUmVmZXJlbmNlOigpPT5CRCxoYXNQcm9wZXJ0eTooKT0+UXIsaGFzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uV2l0aE5hbWU6KCk9Pmhhc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbldpdGhOYW1lLGhhc1F1ZXN0aW9uVG9rZW46KCk9PmhJLGhhc1JlY29yZGVkRXh0ZXJuYWxIZWxwZXJzOigpPT5MUixoYXNSZXN0UGFyYW1ldGVyOigpPT5KayxoYXNTY29wZU1hcmtlcjooKT0+Y2ssaGFzU3RhdGljTW9kaWZpZXI6KCk9PmdtLGhhc1N5bnRhY3RpY01vZGlmaWVyOigpPT5ncixoYXNTeW50YWN0aWNNb2RpZmllcnM6KCk9PkxOLGhhc1RTRmlsZUV4dGVuc2lvbjooKT0+RzIsaGFzVGFic3RvcDooKT0+Y3gsaGFzVHJhaWxpbmdEaXJlY3RvcnlTZXBhcmF0b3I6KCk9PnpkLGhhc1R5cGU6KCk9Pk5rLGhhc1R5cGVBcmd1bWVudHM6KCk9PndJLGhhc1plcm9Pck9uZUFzdGVyaXNrQ2hhcmFjdGVyOigpPT5nTSxoZWxwZXJTdHJpbmc6KCk9PmhlbHBlclN0cmluZyxob3N0R2V0Q2Fub25pY2FsRmlsZU5hbWU6KCk9PlZULGhvc3RVc2VzQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczooKT0+QzIsaWRUZXh0OigpPT5PdCxpZGVudGlmaWVySXNUaGlzS2V5d29yZDooKT0+WlQsaWRlbnRpZmllclRvS2V5d29yZEtpbmQ6KCk9PlA0LGlkZW50aXR5OigpPT5idCxpZGVudGl0eVNvdXJjZU1hcENvbnN1bWVyOigpPT5pZGVudGl0eVNvdXJjZU1hcENvbnN1bWVyLGlnbm9yZVNvdXJjZU5ld2xpbmVzOigpPT5pZ25vcmVTb3VyY2VOZXdsaW5lcyxpZ25vcmVkUGF0aHM6KCk9Pmlnbm9yZWRQYXRocyxpbXBvcnREZWZhdWx0SGVscGVyOigpPT5pbXBvcnREZWZhdWx0SGVscGVyLGltcG9ydEZyb21Nb2R1bGVTcGVjaWZpZXI6KCk9PmRJLGltcG9ydE5hbWVFbGlzaW9uRGlzYWJsZWQ6KCk9PmVNLGltcG9ydFN0YXJIZWxwZXI6KCk9PmltcG9ydFN0YXJIZWxwZXIsaW5kZXhPZkFueUNoYXJDb2RlOigpPT52dixpbmRleE9mTm9kZTooKT0+U0QsaW5kaWNlc09mOigpPT5hZyxpbmZlcnJlZFR5cGVzQ29udGFpbmluZ0ZpbGU6KCk9PmluZmVycmVkVHlwZXNDb250YWluaW5nRmlsZSxpbmplY3RDbGFzc05hbWVkRXZhbHVhdGlvbkhlbHBlckJsb2NrSWZNaXNzaW5nOigpPT5pbmplY3RDbGFzc05hbWVkRXZhbHVhdGlvbkhlbHBlckJsb2NrSWZNaXNzaW5nLGluamVjdENsYXNzVGhpc0Fzc2lnbm1lbnRJZk1pc3Npbmc6KCk9PmluamVjdENsYXNzVGhpc0Fzc2lnbm1lbnRJZk1pc3NpbmcsaW5zZXJ0SW1wb3J0czooKT0+aW5zZXJ0SW1wb3J0cyxpbnNlcnRMZWFkaW5nU3RhdGVtZW50OigpPT5TUixpbnNlcnRTb3J0ZWQ6KCk9PnlsLGluc2VydFN0YXRlbWVudEFmdGVyQ3VzdG9tUHJvbG9ndWU6KCk9PmhELGluc2VydFN0YXRlbWVudEFmdGVyU3RhbmRhcmRQcm9sb2d1ZTooKT0+bUQsaW5zZXJ0U3RhdGVtZW50c0FmdGVyQ3VzdG9tUHJvbG9ndWU6KCk9PmRELGluc2VydFN0YXRlbWVudHNBZnRlclN0YW5kYXJkUHJvbG9ndWU6KCk9PmZELGludGVyc3BlcnNlOigpPT5SNSxpbnRyaW5zaWNUYWdOYW1lVG9TdHJpbmc6KCk9PnZMLGludHJvZHVjZXNBcmd1bWVudHNFeG90aWNPYmplY3Q6KCk9PmdQLGludmVyc2VKc3hPcHRpb25NYXA6KCk9PmludmVyc2VKc3hPcHRpb25NYXAsaXNBYnN0cmFjdENvbnN0cnVjdG9yU3ltYm9sOigpPT5BTyxpc0Fic3RyYWN0TW9kaWZpZXI6KCk9PnRKLGlzQWNjZXNzRXhwcmVzc2lvbjooKT0+JG8saXNBY2Nlc3NpYmlsaXR5TW9kaWZpZXI6KCk9PmlzQWNjZXNzaWJpbGl0eU1vZGlmaWVyLGlzQWNjZXNzb3I6KCk9Pm5tLGlzQWNjZXNzb3JNb2RpZmllcjooKT0+bkosaXNBbGlhc1N5bWJvbERlY2xhcmF0aW9uOigpPT5MSSxpc0FsaWFzYWJsZUV4cHJlc3Npb246KCk9PmIyLGlzQW1iaWVudE1vZHVsZTooKT0+X20saXNBbWJpZW50UHJvcGVydHlEZWNsYXJhdGlvbjooKT0+SkQsaXNBbm9ueW1vdXNGdW5jdGlvbkRlZmluaXRpb246KCk9PktzLGlzQW55RGlyZWN0b3J5U2VwYXJhdG9yOigpPT5kZyxpc0FueUltcG9ydE9yQmFyZU9yQWNjZXNzZWRSZXF1aXJlOigpPT5qRCxpc0FueUltcG9ydE9yUmVFeHBvcnQ6KCk9PmxtLGlzQW55SW1wb3J0U3ludGF4OigpPT4kZyxpc0FueVN1cHBvcnRlZEZpbGVFeHRlbnNpb246KCk9PlJNLGlzQXBwbGljYWJsZVZlcnNpb25lZFR5cGVzS2V5OigpPT5pc0FwcGxpY2FibGVWZXJzaW9uZWRUeXBlc0tleSxpc0FyZ3VtZW50RXhwcmVzc2lvbk9mRWxlbWVudEFjY2VzczooKT0+aXNBcmd1bWVudEV4cHJlc3Npb25PZkVsZW1lbnRBY2Nlc3MsaXNBcnJheTooKT0+enQsaXNBcnJheUJpbmRpbmdFbGVtZW50OigpPT5RQSxpc0FycmF5QmluZGluZ09yQXNzaWdubWVudEVsZW1lbnQ6KCk9Pm0zLGlzQXJyYXlCaW5kaW5nT3JBc3NpZ25tZW50UGF0dGVybjooKT0+ZDMsaXNBcnJheUJpbmRpbmdQYXR0ZXJuOigpPT5fSixpc0FycmF5TGl0ZXJhbEV4cHJlc3Npb246KCk9Pml1LGlzQXJyYXlMaXRlcmFsT3JPYmplY3RMaXRlcmFsRGVzdHJ1Y3R1cmluZ1BhdHRlcm46KCk9PmlzQXJyYXlMaXRlcmFsT3JPYmplY3RMaXRlcmFsRGVzdHJ1Y3R1cmluZ1BhdHRlcm4saXNBcnJheVR5cGVOb2RlOigpPT4keCxpc0Fycm93RnVuY3Rpb246KCk9PmttLGlzQXNFeHByZXNzaW9uOigpPT5oSixpc0Fzc2VydENsYXVzZTooKT0+akosaXNBc3NlcnRFbnRyeTooKT0+RkosaXNBc3NlcnRpb25FeHByZXNzaW9uOigpPT5zayxpc0Fzc2VydGlvbktleTooKT0+RkEsaXNBc3NlcnRzS2V5d29yZDooKT0+S0wsaXNBc3NpZ25tZW50RGVjbGFyYXRpb246KCk9PmswLGlzQXNzaWdubWVudEV4cHJlc3Npb246KCk9Pk5hLGlzQXNzaWdubWVudE9wZXJhdG9yOigpPT5EXyxpc0Fzc2lnbm1lbnRQYXR0ZXJuOigpPT51Myxpc0Fzc2lnbm1lbnRUYXJnZXQ6KCk9PkNJLGlzQXN0ZXJpc2tUb2tlbjooKT0+R0wsaXNBc3luY0Z1bmN0aW9uOigpPT5XSSxpc0FzeW5jTW9kaWZpZXI6KCk9PmFsLGlzQXV0b0FjY2Vzc29yUHJvcGVydHlEZWNsYXJhdGlvbjooKT0+bDMsaXNBd2FpdEV4cHJlc3Npb246KCk9PnBKLGlzQXdhaXRLZXl3b3JkOigpPT5aTCxpc0JpZ0ludExpdGVyYWw6KCk9Pm82LGlzQmluYXJ5RXhwcmVzc2lvbjooKT0+Q3QsaXNCaW5hcnlPcGVyYXRvclRva2VuOigpPT5taixpc0JpbmRhYmxlT2JqZWN0RGVmaW5lUHJvcGVydHlDYWxsOigpPT5wMixpc0JpbmRhYmxlU3RhdGljQWNjZXNzRXhwcmVzc2lvbjooKT0+a18saXNCaW5kYWJsZVN0YXRpY0VsZW1lbnRBY2Nlc3NFeHByZXNzaW9uOigpPT5mMixpc0JpbmRhYmxlU3RhdGljTmFtZUV4cHJlc3Npb246KCk9PnBfLGlzQmluZGluZ0VsZW1lbnQ6KCk9Pm51LGlzQmluZGluZ0VsZW1lbnRPZkJhcmVPckFjY2Vzc2VkUmVxdWlyZTooKT0+S1AsaXNCaW5kaW5nTmFtZTooKT0+V0EsaXNCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudDooKT0+WUEsaXNCaW5kaW5nT3JBc3NpZ25tZW50UGF0dGVybjooKT0+S0EsaXNCaW5kaW5nUGF0dGVybjooKT0+aW0saXNCbG9jazooKT0+YXUsaXNCbG9ja09yQ2F0Y2hTY29wZWQ6KCk9PmtELGlzQmxvY2tTY29wZTooKT0+VTMsaXNCbG9ja1Njb3BlZENvbnRhaW5lclRvcExldmVsOigpPT5PRCxpc0Jvb2xlYW5MaXRlcmFsOigpPT5WQSxpc0JyZWFrT3JDb250aW51ZVN0YXRlbWVudDooKT0+REEsaXNCcmVha1N0YXRlbWVudDooKT0+a0osaXNCdWlsZEluZm9GaWxlOigpPT5pc0J1aWxkSW5mb0ZpbGUsaXNCdWlsZGVyUHJvZ3JhbTooKT0+aXNCdWlsZGVyUHJvZ3JhbTIsaXNCdW5kbGU6KCk9PllKLGlzQnVuZGxlRmlsZVRleHRMaWtlOigpPT5NTyxpc0NhbGxDaGFpbjooKT0+eTAsaXNDYWxsRXhwcmVzc2lvbjooKT0+al8saXNDYWxsRXhwcmVzc2lvblRhcmdldDooKT0+aXNDYWxsRXhwcmVzc2lvblRhcmdldCxpc0NhbGxMaWtlRXhwcmVzc2lvbjooKT0+dGssaXNDYWxsT3JOZXdFeHByZXNzaW9uOigpPT5yayxpc0NhbGxPck5ld0V4cHJlc3Npb25UYXJnZXQ6KCk9PmlzQ2FsbE9yTmV3RXhwcmVzc2lvblRhcmdldCxpc0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjooKT0+YzYsaXNDYWxsVG9IZWxwZXI6KCk9PmlzQ2FsbFRvSGVscGVyLGlzQ2FzZUJsb2NrOigpPT5MSixpc0Nhc2VDbGF1c2U6KCk9PlhKLGlzQ2FzZUtleXdvcmQ6KCk9PmlKLGlzQ2FzZU9yRGVmYXVsdENsYXVzZTooKT0+SWssaXNDYXRjaENsYXVzZTooKT0+JEosaXNDYXRjaENsYXVzZVZhcmlhYmxlRGVjbGFyYXRpb246KCk9Pml4LGlzQ2F0Y2hDbGF1c2VWYXJpYWJsZURlY2xhcmF0aW9uT3JCaW5kaW5nRWxlbWVudDooKT0+UjMsaXNDaGVja0pzRW5hYmxlZEZvckZpbGU6KCk9PmpNLGlzQ2hpbGRPZk5vZGVXaXRoS2luZDooKT0+bFAsaXNDaXJjdWxhckJ1aWxkT3JkZXI6KCk9PmlzQ2lyY3VsYXJCdWlsZE9yZGVyLGlzQ2xhc3NEZWNsYXJhdGlvbjooKT0+WW8saXNDbGFzc0VsZW1lbnQ6KCk9Pm5vLGlzQ2xhc3NFeHByZXNzaW9uOigpPT5JbCxpc0NsYXNzTGlrZTooKT0+ZG4saXNDbGFzc01lbWJlck1vZGlmaWVyOigpPT5zMyxpc0NsYXNzTmFtZWRFdmFsdWF0aW9uSGVscGVyQmxvY2s6KCk9PmlzQ2xhc3NOYW1lZEV2YWx1YXRpb25IZWxwZXJCbG9jayxpc0NsYXNzT3JUeXBlRWxlbWVudDooKT0+WEEsaXNDbGFzc1N0YXRpY0Jsb2NrRGVjbGFyYXRpb246KCk9PmV1LGlzQ2xhc3NUaGlzQXNzaWdubWVudEJsb2NrOigpPT5pc0NsYXNzVGhpc0Fzc2lnbm1lbnRCbG9jayxpc0NvbGxhcHNlZFJhbmdlOigpPT5uTyxpc0NvbG9uVG9rZW46KCk9PlhMLGlzQ29tbWFFeHByZXNzaW9uOigpPT5KbSxpc0NvbW1hTGlzdEV4cHJlc3Npb246KCk9PkZfLGlzQ29tbWFTZXF1ZW5jZTooKT0+SVIsaXNDb21tYVRva2VuOigpPT5VeCxpc0NvbW1lbnQ6KCk9PmlzQ29tbWVudCxpc0NvbW1vbkpzRXhwb3J0UHJvcGVydHlBc3NpZ25tZW50OigpPT5pMixpc0NvbW1vbkpzRXhwb3J0ZWRFeHByZXNzaW9uOigpPT5oUCxpc0NvbXBvdW5kQXNzaWdubWVudDooKT0+aXNDb21wb3VuZEFzc2lnbm1lbnQsaXNDb21wdXRlZE5vbkxpdGVyYWxOYW1lOigpPT5XRCxpc0NvbXB1dGVkUHJvcGVydHlOYW1lOigpPT5hbyxpc0NvbmNpc2VCb2R5OigpPT5mayxpc0NvbmRpdGlvbmFsRXhwcmVzc2lvbjooKT0+ZkosaXNDb25kaXRpb25hbFR5cGVOb2RlOigpPT50OCxpc0NvbnN0VHlwZVJlZmVyZW5jZTooKT0+WjQsaXNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjooKT0+SHgsaXNDb25zdHJ1Y3RvckRlY2xhcmF0aW9uOigpPT5KXyxpc0NvbnN0cnVjdG9yVHlwZU5vZGU6KCk9PnU2LGlzQ29udGV4dHVhbEtleXdvcmQ6KCk9PnYyLGlzQ29udGludWVTdGF0ZW1lbnQ6KCk9PkFKLGlzQ3VzdG9tUHJvbG9ndWU6KCk9PnVtLGlzRGVidWdnZXJTdGF0ZW1lbnQ6KCk9Pk1KLGlzRGVjbGFyYXRpb246KCk9PkhvLGlzRGVjbGFyYXRpb25CaW5kaW5nRWxlbWVudDooKT0+QmcsaXNEZWNsYXJhdGlvbkZpbGVOYW1lOigpPT5HOCxpc0RlY2xhcmF0aW9uTmFtZTooKT0+d1QsaXNEZWNsYXJhdGlvbk5hbWVPZkVudW1Pck5hbWVzcGFjZTooKT0+bU8saXNEZWNsYXJhdGlvblJlYWRvbmx5OigpPT5uUCxpc0RlY2xhcmF0aW9uU3RhdGVtZW50OigpPT53ayxpc0RlY2xhcmF0aW9uV2l0aFR5cGVQYXJhbWV0ZXJDaGlsZHJlbjooKT0+cTMsaXNEZWNsYXJhdGlvbldpdGhUeXBlUGFyYW1ldGVyczooKT0+UkQsaXNEZWNvcmF0b3I6KCk9PkxfLGlzRGVjb3JhdG9yVGFyZ2V0OigpPT5pc0RlY29yYXRvclRhcmdldCxpc0RlZmF1bHRDbGF1c2U6KCk9Pmg4LGlzRGVmYXVsdEltcG9ydDooKT0+bVQsaXNEZWZhdWx0TW9kaWZpZXI6KCk9PllMLGlzRGVmYXVsdGVkRXhwYW5kb0luaXRpYWxpemVyOigpPT5hSSxpc0RlbGV0ZUV4cHJlc3Npb246KCk9PmxKLGlzRGVsZXRlVGFyZ2V0OigpPT5JSSxpc0RlcHJlY2F0ZWREZWNsYXJhdGlvbjooKT0+aXNEZXByZWNhdGVkRGVjbGFyYXRpb24saXNEZXN0cnVjdHVyaW5nQXNzaWdubWVudDooKT0+VU4saXNEaWFnbm9zdGljV2l0aExvY2F0aW9uOigpPT5pc0RpYWdub3N0aWNXaXRoTG9jYXRpb24saXNEaXNrUGF0aFJvb3Q6KCk9PndFLGlzRG9TdGF0ZW1lbnQ6KCk9PnhKLGlzRG9jdW1lbnRSZWdpc3RyeUVudHJ5OigpPT5pc0RvY3VtZW50UmVnaXN0cnlFbnRyeSxpc0RvdERvdERvdFRva2VuOigpPT5ITCxpc0RvdHRlZE5hbWU6KCk9PkwwLGlzRHluYW1pY05hbWU6KCk9PlMyLGlzRVNTeW1ib2xJZGVudGlmaWVyOigpPT4kSSxpc0VmZmVjdGl2ZUV4dGVybmFsTW9kdWxlOigpPT5YZyxpc0VmZmVjdGl2ZU1vZHVsZURlY2xhcmF0aW9uOigpPT5qMyxpc0VmZmVjdGl2ZVN0cmljdE1vZGVTb3VyY2VGaWxlOigpPT5MRCxpc0VsZW1lbnRBY2Nlc3NDaGFpbjooKT0+SzQsaXNFbGVtZW50QWNjZXNzRXhwcmVzc2lvbjooKT0+UmEsaXNFbWl0dGVkRmlsZU9mUHJvZ3JhbTooKT0+aXNFbWl0dGVkRmlsZU9mUHJvZ3JhbSxpc0VtcHR5QXJyYXlMaXRlcmFsOigpPT5ITixpc0VtcHR5QmluZGluZ0VsZW1lbnQ6KCk9Pms0LGlzRW1wdHlCaW5kaW5nUGF0dGVybjooKT0+QTQsaXNFbXB0eU9iamVjdExpdGVyYWw6KCk9PlZOLGlzRW1wdHlTdGF0ZW1lbnQ6KCk9PlRKLGlzRW1wdHlTdHJpbmdMaXRlcmFsOigpPT5aMyxpc0VudGl0eU5hbWU6KCk9PnpBLGlzRW50aXR5TmFtZUV4cHJlc3Npb246KCk9PmNvLGlzRW51bUNvbnN0OigpPT5yUCxpc0VudW1EZWNsYXJhdGlvbjooKT0+UzYsaXNFbnVtTWVtYmVyOigpPT5nOCxpc0VxdWFsaXR5T3BlcmF0b3JLaW5kOigpPT5pc0VxdWFsaXR5T3BlcmF0b3JLaW5kLGlzRXF1YWxzR3JlYXRlclRoYW5Ub2tlbjooKT0+UUwsaXNFeGNsYW1hdGlvblRva2VuOigpPT5EZCxpc0V4Y2x1ZGVkRmlsZTooKT0+aXNFeGNsdWRlZEZpbGUsaXNFeGNsdXNpdmVseVR5cGVPbmx5SW1wb3J0T3JFeHBvcnQ6KCk9PmlzRXhjbHVzaXZlbHlUeXBlT25seUltcG9ydE9yRXhwb3J0LGlzRXhwb3J0QXNzaWdubWVudDooKT0+c3MsaXNFeHBvcnREZWNsYXJhdGlvbjooKT0+Ql8saXNFeHBvcnRNb2RpZmllcjooKT0+cXgsaXNFeHBvcnROYW1lOigpPT5QUixpc0V4cG9ydE5hbWVzcGFjZUFzRGVmYXVsdERlY2xhcmF0aW9uOigpPT5KMyxpc0V4cG9ydE9yRGVmYXVsdE1vZGlmaWVyOigpPT55aixpc0V4cG9ydFNwZWNpZmllcjooKT0+bTgsaXNFeHBvcnRzSWRlbnRpZmllcjooKT0+X1QsaXNFeHBvcnRzT3JNb2R1bGVFeHBvcnRzT3JBbGlhczooKT0+aXNFeHBvcnRzT3JNb2R1bGVFeHBvcnRzT3JBbGlhcyxpc0V4cHJlc3Npb246KCk9PmFtLGlzRXhwcmVzc2lvbk5vZGU6KCk9Pl8yLGlzRXhwcmVzc2lvbk9mRXh0ZXJuYWxNb2R1bGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbjooKT0+aXNFeHByZXNzaW9uT2ZFeHRlcm5hbE1vZHVsZUltcG9ydEVxdWFsc0RlY2xhcmF0aW9uLGlzRXhwcmVzc2lvbk9mT3B0aW9uYWxDaGFpblJvb3Q6KCk9PkVBLGlzRXhwcmVzc2lvblN0YXRlbWVudDooKT0+b3UsaXNFeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6KCk9Pmc2LGlzRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzSW5DbGFzc0V4dGVuZHNDbGF1c2U6KCk9Pk0wLGlzRXh0ZXJuYWxNb2R1bGU6KCk9PlpvLGlzRXh0ZXJuYWxNb2R1bGVBdWdtZW50YXRpb246KCk9PkdnLGlzRXh0ZXJuYWxNb2R1bGVJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbjooKT0+clQsaXNFeHRlcm5hbE1vZHVsZUluZGljYXRvcjooKT0+dWssaXNFeHRlcm5hbE1vZHVsZU5hbWVSZWxhdGl2ZTooKT0+WEUsaXNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZTooKT0+Tm0saXNFeHRlcm5hbE1vZHVsZVN5bWJvbDooKT0+aXNFeHRlcm5hbE1vZHVsZVN5bWJvbCxpc0V4dGVybmFsT3JDb21tb25Kc01vZHVsZTooKT0+dFAsaXNGaWxlTGV2ZWxSZXNlcnZlZEdlbmVyYXRlZElkZW50aWZpZXI6KCk9PlVBLGlzRmlsZUxldmVsVW5pcXVlTmFtZTooKT0+STMsaXNGaWxlUHJvYmFibHlFeHRlcm5hbE1vZHVsZTooKT0+bWwsaXNGaXJzdERlY2xhcmF0aW9uT2ZTeW1ib2xQYXJhbWV0ZXI6KCk9PmlzRmlyc3REZWNsYXJhdGlvbk9mU3ltYm9sUGFyYW1ldGVyLGlzRml4YWJsZVByb21pc2VIYW5kbGVyOigpPT5pc0ZpeGFibGVQcm9taXNlSGFuZGxlcixpc0ZvckluT3JPZlN0YXRlbWVudDooKT0+cGssaXNGb3JJblN0YXRlbWVudDooKT0+Q0osaXNGb3JJbml0aWFsaXplcjooKT0+bWssaXNGb3JPZlN0YXRlbWVudDooKT0+RUosaXNGb3JTdGF0ZW1lbnQ6KCk9Pmw4LGlzRnVuY3Rpb25CbG9jazooKT0+JDMsaXNGdW5jdGlvbkJvZHk6KCk9PmRrLGlzRnVuY3Rpb25EZWNsYXJhdGlvbjooKT0+b3MsaXNGdW5jdGlvbkV4cHJlc3Npb246KCk9PkFtLGlzRnVuY3Rpb25FeHByZXNzaW9uT3JBcnJvd0Z1bmN0aW9uOigpPT5vTCxpc0Z1bmN0aW9uTGlrZTooKT0+R2ksaXNGdW5jdGlvbkxpa2VEZWNsYXJhdGlvbjooKT0+XzMsaXNGdW5jdGlvbkxpa2VLaW5kOigpPT5KZyxpc0Z1bmN0aW9uTGlrZU9yQ2xhc3NTdGF0aWNCbG9ja0RlY2xhcmF0aW9uOigpPT5ybSxpc0Z1bmN0aW9uT3JDb25zdHJ1Y3RvclR5cGVOb2RlOigpPT4kQSxpc0Z1bmN0aW9uT3JNb2R1bGVCbG9jazooKT0+SEEsaXNGdW5jdGlvblN5bWJvbDooKT0+cEksaXNGdW5jdGlvblR5cGVOb2RlOigpPT50dSxpc0Z1dHVyZVJlc2VydmVkS2V5d29yZDooKT0+akksaXNHZW5lcmF0ZWRJZGVudGlmaWVyOigpPT53YSxpc0dlbmVyYXRlZFByaXZhdGVJZGVudGlmaWVyOigpPT5NZyxpc0dldEFjY2Vzc29yOigpPT5lbCxpc0dldEFjY2Vzc29yRGVjbGFyYXRpb246KCk9Pm1fLGlzR2V0T3JTZXRBY2Nlc3NvckRlY2xhcmF0aW9uOigpPT5DQSxpc0dsb2JhbERlY2xhcmF0aW9uOigpPT5pc0dsb2JhbERlY2xhcmF0aW9uLGlzR2xvYmFsU2NvcGVBdWdtZW50YXRpb246KCk9PmNtLGlzR3JhbW1hckVycm9yOigpPT5wRCxpc0hlcml0YWdlQ2xhdXNlOigpPT5ObCxpc0hvaXN0ZWRGdW5jdGlvbjooKT0+dzAsaXNIb2lzdGVkVmFyaWFibGVTdGF0ZW1lbnQ6KCk9PkMwLGlzSWRlbnRpZmllcjooKT0+RWUsaXNJZGVudGlmaWVyQU5vbkNvbnRleHR1YWxLZXl3b3JkOigpPT5VSSxpc0lkZW50aWZpZXJOYW1lOigpPT5NSSxpc0lkZW50aWZpZXJPclRoaXNUeXBlTm9kZTooKT0+R1IsaXNJZGVudGlmaWVyUGFydDooKT0+UWEsaXNJZGVudGlmaWVyU3RhcnQ6KCk9PnVuLGlzSWRlbnRpZmllclRleHQ6KCk9PkNnLGlzSWRlbnRpZmllclR5cGVQcmVkaWNhdGU6KCk9PlNQLGlzSWRlbnRpZmllclR5cGVSZWZlcmVuY2U6KCk9PlFNLGlzSWZTdGF0ZW1lbnQ6KCk9PlNKLGlzSWdub3JlZEZpbGVGcm9tV2lsZENhcmRXYXRjaGluZzooKT0+aXNJZ25vcmVkRmlsZUZyb21XaWxkQ2FyZFdhdGNoaW5nLGlzSW1wbGljaXRHbG9iOigpPT5VUyxpc0ltcG9ydENhbGw6KCk9PnQyLGlzSW1wb3J0Q2xhdXNlOigpPT5KSixpc0ltcG9ydERlY2xhcmF0aW9uOigpPT5DNixpc0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOigpPT53Nixpc0ltcG9ydEtleXdvcmQ6KCk9Pld4LGlzSW1wb3J0TWV0YTooKT0+eDAsaXNJbXBvcnRPckV4cG9ydFNwZWNpZmllcjooKT0+UkEsaXNJbXBvcnRPckV4cG9ydFNwZWNpZmllck5hbWU6KCk9PmlzSW1wb3J0T3JFeHBvcnRTcGVjaWZpZXJOYW1lLGlzSW1wb3J0U3BlY2lmaWVyOigpPT5mOCxpc0ltcG9ydFR5cGVBc3NlcnRpb25Db250YWluZXI6KCk9PlJKLGlzSW1wb3J0VHlwZU5vZGU6KCk9PnJ1LGlzSW1wb3J0YWJsZUZpbGU6KCk9PmlzSW1wb3J0YWJsZUZpbGUsaXNJbkNvbW1lbnQ6KCk9PmlzSW5Db21tZW50LGlzSW5FeHByZXNzaW9uQ29udGV4dDooKT0+ZVQsaXNJbkpTRG9jOigpPT5uVCxpc0luSlNGaWxlOigpPT5XdCxpc0luSlNYVGV4dDooKT0+aXNJbkpTWFRleHQsaXNJbkpzb25GaWxlOigpPT4kUCxpc0luTm9uUmVmZXJlbmNlQ29tbWVudDooKT0+aXNJbk5vblJlZmVyZW5jZUNvbW1lbnQsaXNJblJlZmVyZW5jZUNvbW1lbnQ6KCk9PmlzSW5SZWZlcmVuY2VDb21tZW50LGlzSW5SaWdodFNpZGVPZkludGVybmFsSW1wb3J0RXF1YWxzRGVjbGFyYXRpb246KCk9PmlzSW5SaWdodFNpZGVPZkludGVybmFsSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24saXNJblN0cmluZzooKT0+aXNJblN0cmluZyxpc0luVGVtcGxhdGVTdHJpbmc6KCk9PmlzSW5UZW1wbGF0ZVN0cmluZyxpc0luVG9wTGV2ZWxDb250ZXh0OigpPT5OUCxpc0luVHlwZVF1ZXJ5OigpPT53Tixpc0luY3JlbWVudGFsQ29tcGlsYXRpb246KCk9PmNNLGlzSW5kZXhTaWduYXR1cmVEZWNsYXJhdGlvbjooKT0+bDYsaXNJbmRleGVkQWNjZXNzVHlwZU5vZGU6KCk9Pmk4LGlzSW5mZXJUeXBlTm9kZTooKT0+cjgsaXNJbmZpbml0eU9yTmFOU3RyaW5nOigpPT5pTCxpc0luaXRpYWxpemVkUHJvcGVydHk6KCk9PmlzSW5pdGlhbGl6ZWRQcm9wZXJ0eSxpc0luaXRpYWxpemVkVmFyaWFibGU6KCk9PndTLGlzSW5zaWRlSnN4RWxlbWVudDooKT0+aXNJbnNpZGVKc3hFbGVtZW50LGlzSW5zaWRlSnN4RWxlbWVudE9yQXR0cmlidXRlOigpPT5pc0luc2lkZUpzeEVsZW1lbnRPckF0dHJpYnV0ZSxpc0luc2lkZU5vZGVNb2R1bGVzOigpPT5pc0luc2lkZU5vZGVNb2R1bGVzLGlzSW5zaWRlVGVtcGxhdGVMaXRlcmFsOigpPT5pc0luc2lkZVRlbXBsYXRlTGl0ZXJhbCxpc0luc3RhbnRpYXRlZE1vZHVsZTooKT0+aXNJbnN0YW50aWF0ZWRNb2R1bGUsaXNJbnRlcmZhY2VEZWNsYXJhdGlvbjooKT0+c3UsaXNJbnRlcm5hbERlY2xhcmF0aW9uOigpPT5pc0ludGVybmFsRGVjbGFyYXRpb24saXNJbnRlcm5hbE1vZHVsZUltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOigpPT5HUCxpc0ludGVybmFsTmFtZTooKT0+RFIsaXNJbnRlcnNlY3Rpb25UeXBlTm9kZTooKT0+ZTgsaXNJbnRyaW5zaWNKc3hOYW1lOigpPT5XVCxpc0l0ZXJhdGlvblN0YXRlbWVudDooKT0+YjMsaXNKU0RvYzooKT0+Y3MsaXNKU0RvY0FsbFR5cGU6KCk9PnJSLGlzSlNEb2NBdWdtZW50c1RhZzooKT0+TW0saXNKU0RvY0F1dGhvclRhZzooKT0+X1IsaXNKU0RvY0NhbGxiYWNrVGFnOigpPT5jUixpc0pTRG9jQ2xhc3NUYWc6KCk9PlQ4LGlzSlNEb2NDb21tZW50Q29udGFpbmluZ05vZGU6KCk9PkMzLGlzSlNEb2NDb25zdHJ1Y3RTaWduYXR1cmU6KCk9PnlJLGlzSlNEb2NEZXByZWNhdGVkVGFnOigpPT5KNixpc0pTRG9jRW51bVRhZzooKT0+eDgsaXNKU0RvY0Z1bmN0aW9uVHlwZTooKT0+T20saXNKU0RvY0ltcGxlbWVudHNUYWc6KCk9PkM4LGlzSlNEb2NJbmRleFNpZ25hdHVyZTooKT0+WVAsaXNKU0RvY0xpa2VUZXh0OigpPT56OCxpc0pTRG9jTGluazooKT0+WkosaXNKU0RvY0xpbmtDb2RlOigpPT5lUixpc0pTRG9jTGlua0xpa2U6KCk9PnVsLGlzSlNEb2NMaW5rUGxhaW46KCk9PnRSLGlzSlNEb2NNZW1iZXJOYW1lOigpPT5yXyxpc0pTRG9jTmFtZVJlZmVyZW5jZTooKT0+emYsaXNKU0RvY05hbWVwYXRoVHlwZTooKT0+c1IsaXNKU0RvY05hbWVzcGFjZUJvZHk6KCk9PmdrLGlzSlNEb2NOb2RlOigpPT56Zyxpc0pTRG9jTm9uTnVsbGFibGVUeXBlOigpPT5pUixpc0pTRG9jTnVsbGFibGVUeXBlOigpPT52OCxpc0pTRG9jT3B0aW9uYWxQYXJhbWV0ZXI6KCk9Pmx4LGlzSlNEb2NPcHRpb25hbFR5cGU6KCk9PmFSLGlzSlNEb2NPdmVybG9hZFRhZzooKT0+TDYsaXNKU0RvY092ZXJyaWRlVGFnOigpPT5TOCxpc0pTRG9jUGFyYW1ldGVyVGFnOigpPT5oXyxpc0pTRG9jUHJpdmF0ZVRhZzooKT0+TjYsaXNKU0RvY1Byb3BlcnR5TGlrZVRhZzooKT0+SWcsaXNKU0RvY1Byb3BlcnR5VGFnOigpPT5mUixpc0pTRG9jUHJvdGVjdGVkVGFnOigpPT5PNixpc0pTRG9jUHVibGljVGFnOigpPT5JNixpc0pTRG9jUmVhZG9ubHlUYWc6KCk9Pk02LGlzSlNEb2NSZXR1cm5UYWc6KCk9PlI2LGlzSlNEb2NTYXRpc2ZpZXNFeHByZXNzaW9uOigpPT5tTCxpc0pTRG9jU2F0aXNmaWVzVGFnOigpPT5qNixpc0pTRG9jU2VlVGFnOigpPT5sUixpc0pTRG9jU2lnbmF0dXJlOigpPT5jdSxpc0pTRG9jVGFnOigpPT5XZyxpc0pTRG9jVGVtcGxhdGVUYWc6KCk9PktvLGlzSlNEb2NUaGlzVGFnOigpPT53OCxpc0pTRG9jVGhyb3dzVGFnOigpPT5kUixpc0pTRG9jVHlwZUFsaWFzOigpPT5IbCxpc0pTRG9jVHlwZUFzc2VydGlvbjooKT0+TjgsaXNKU0RvY1R5cGVFeHByZXNzaW9uOigpPT5iOCxpc0pTRG9jVHlwZUxpdGVyYWw6KCk9PlA2LGlzSlNEb2NUeXBlVGFnOigpPT5sdSxpc0pTRG9jVHlwZWRlZlRhZzooKT0+dVIsaXNKU0RvY1Vua25vd25UYWc6KCk9PnBSLGlzSlNEb2NVbmtub3duVHlwZTooKT0+blIsaXNKU0RvY1ZhcmlhZGljVHlwZTooKT0+b1IsaXNKU1hUYWdOYW1lOigpPT5NZixpc0pzb25FcXVhbDooKT0+JDIsaXNKc29uU291cmNlRmlsZTooKT0+ZTIsaXNKc3hBdHRyaWJ1dGU6KCk9PlZKLGlzSnN4QXR0cmlidXRlTGlrZTooKT0+RGssaXNKc3hBdHRyaWJ1dGVOYW1lOigpPT5iTCxpc0pzeEF0dHJpYnV0ZXM6KCk9PkQ2LGlzSnN4Q2hpbGQ6KCk9PngzLGlzSnN4Q2xvc2luZ0VsZW1lbnQ6KCk9PnFmLGlzSnN4Q2xvc2luZ0ZyYWdtZW50OigpPT5XSixpc0pzeEVsZW1lbnQ6KCk9PlEwLGlzSnN4RXhwcmVzc2lvbjooKT0+R0osaXNKc3hGcmFnbWVudDooKT0+ZGwsaXNKc3hOYW1lc3BhY2VkTmFtZTooKT0+VV8saXNKc3hPcGVuaW5nRWxlbWVudDooKT0+T28saXNKc3hPcGVuaW5nRnJhZ21lbnQ6KCk9Pms2LGlzSnN4T3BlbmluZ0xpa2VFbGVtZW50OigpPT53Myxpc0pzeE9wZW5pbmdMaWtlRWxlbWVudFRhZ05hbWU6KCk9PmlzSnN4T3BlbmluZ0xpa2VFbGVtZW50VGFnTmFtZSxpc0pzeFNlbGZDbG9zaW5nRWxlbWVudDooKT0+ekosaXNKc3hTcHJlYWRBdHRyaWJ1dGU6KCk9PkhKLGlzSnN4VGFnTmFtZUV4cHJlc3Npb246KCk9PmtrLGlzSnN4VGV4dDooKT0+a2QsaXNKdW1wU3RhdGVtZW50VGFyZ2V0OigpPT5pc0p1bXBTdGF0ZW1lbnRUYXJnZXQsaXNLZXl3b3JkOigpPT5TaSxpc0tleXdvcmRPclB1bmN0dWF0aW9uOigpPT5KZixpc0tub3duU3ltYm9sOigpPT5HSSxpc0xhYmVsTmFtZTooKT0+aXNMYWJlbE5hbWUsaXNMYWJlbE9mTGFiZWxlZFN0YXRlbWVudDooKT0+aXNMYWJlbE9mTGFiZWxlZFN0YXRlbWVudCxpc0xhYmVsZWRTdGF0ZW1lbnQ6KCk9PnU4LGlzTGF0ZVZpc2liaWxpdHlQYWludGVkU3RhdGVtZW50OigpPT5GRCxpc0xlZnRIYW5kU2lkZUV4cHJlc3Npb246KCk9PkxvLGlzTGVmdEhhbmRTaWRlT2ZBc3NpZ25tZW50OigpPT5CTixpc0xldDooKT0+b1AsaXNMaW5lQnJlYWs6KCk9Pm1yLGlzTGl0ZXJhbENvbXB1dGVkUHJvcGVydHlEZWNsYXJhdGlvbk5hbWU6KCk9PkNULGlzTGl0ZXJhbEV4cHJlc3Npb246KCk9Pk9nLGlzTGl0ZXJhbEV4cHJlc3Npb25PZk9iamVjdDooKT0+TUEsaXNMaXRlcmFsSW1wb3J0VHlwZU5vZGU6KCk9PkgzLGlzTGl0ZXJhbEtpbmQ6KCk9Pk5nLGlzTGl0ZXJhbExpa2VBY2Nlc3M6KCk9PkxmLGlzTGl0ZXJhbExpa2VFbGVtZW50QWNjZXNzOigpPT5WbCxpc0xpdGVyYWxOYW1lT2ZQcm9wZXJ0eURlY2xhcmF0aW9uT3JJbmRleEFjY2VzczooKT0+aXNMaXRlcmFsTmFtZU9mUHJvcGVydHlEZWNsYXJhdGlvbk9ySW5kZXhBY2Nlc3MsaXNMaXRlcmFsVHlwZUxpa2VFeHByZXNzaW9uOigpPT5ZUixpc0xpdGVyYWxUeXBlTGl0ZXJhbDooKT0+YWssaXNMaXRlcmFsVHlwZU5vZGU6KCk9Pm02LGlzTG9jYWxOYW1lOigpPT5ZMCxpc0xvZ2ljYWxPcGVyYXRvcjooKT0+Uk4saXNMb2dpY2FsT3JDb2FsZXNjaW5nQXNzaWdubWVudEV4cHJlc3Npb246KCk9PmpOLGlzTG9naWNhbE9yQ29hbGVzY2luZ0Fzc2lnbm1lbnRPcGVyYXRvcjooKT0+dm0saXNMb2dpY2FsT3JDb2FsZXNjaW5nQmluYXJ5RXhwcmVzc2lvbjooKT0+Rk4saXNMb2dpY2FsT3JDb2FsZXNjaW5nQmluYXJ5T3BlcmF0b3I6KCk9PmZTLGlzTWFwcGVkVHlwZU5vZGU6KCk9PmE4LGlzTWVtYmVyTmFtZTooKT0+cm8saXNNZXRhUHJvcGVydHk6KCk9PmI2LGlzTWV0aG9kRGVjbGFyYXRpb246KCk9PmRfLGlzTWV0aG9kT3JBY2Nlc3NvcjooKT0+UmcsaXNNZXRob2RTaWduYXR1cmU6KCk9PlZ4LGlzTWludXNUb2tlbjooKT0+XzYsaXNNaXNzaW5nRGVjbGFyYXRpb246KCk9PlVKLGlzTW9kaWZpZXI6KCk9PkxnLGlzTW9kaWZpZXJLaW5kOigpPT5iaSxpc01vZGlmaWVyTGlrZTooKT0+T2YsaXNNb2R1bGVBdWdtZW50YXRpb25FeHRlcm5hbDooKT0+RjMsaXNNb2R1bGVCbG9jazooKT0+cDgsaXNNb2R1bGVCb2R5OigpPT5oayxpc01vZHVsZURlY2xhcmF0aW9uOigpPT5ZaSxpc01vZHVsZUV4cG9ydHNBY2Nlc3NFeHByZXNzaW9uOigpPT51Mixpc01vZHVsZUlkZW50aWZpZXI6KCk9PmNULGlzTW9kdWxlTmFtZTooKT0+UVIsaXNNb2R1bGVPckVudW1EZWNsYXJhdGlvbjooKT0+dmssaXNNb2R1bGVSZWZlcmVuY2U6KCk9PkFrLGlzTW9kdWxlU3BlY2lmaWVyTGlrZTooKT0+aXNNb2R1bGVTcGVjaWZpZXJMaWtlLGlzTW9kdWxlV2l0aFN0cmluZ0xpdGVyYWxOYW1lOigpPT5ERCxpc05hbWVPZkZ1bmN0aW9uRGVjbGFyYXRpb246KCk9PmlzTmFtZU9mRnVuY3Rpb25EZWNsYXJhdGlvbixpc05hbWVPZk1vZHVsZURlY2xhcmF0aW9uOigpPT5pc05hbWVPZk1vZHVsZURlY2xhcmF0aW9uLGlzTmFtZWRDbGFzc0VsZW1lbnQ6KCk9PkdBLGlzTmFtZWREZWNsYXJhdGlvbjooKT0+UWQsaXNOYW1lZEV2YWx1YXRpb246KCk9PlFJLGlzTmFtZWRFdmFsdWF0aW9uU291cmNlOigpPT5qVCxpc05hbWVkRXhwb3J0QmluZGluZ3M6KCk9PlBBLGlzTmFtZWRFeHBvcnRzOigpPT5kOCxpc05hbWVkSW1wb3J0QmluZGluZ3M6KCk9PmJrLGlzTmFtZWRJbXBvcnRzOigpPT5CSixpc05hbWVkSW1wb3J0c09yRXhwb3J0czooKT0+TE8saXNOYW1lZFR1cGxlTWVtYmVyOigpPT5wNixpc05hbWVzcGFjZUJvZHk6KCk9PnlrLGlzTmFtZXNwYWNlRXhwb3J0OigpPT5JbSxpc05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uOigpPT54Nixpc05hbWVzcGFjZUltcG9ydDooKT0+RTYsaXNOYW1lc3BhY2VSZWV4cG9ydERlY2xhcmF0aW9uOigpPT5XUCxpc05ld0V4cHJlc3Npb246KCk9Pm84LGlzTmV3RXhwcmVzc2lvblRhcmdldDooKT0+aXNOZXdFeHByZXNzaW9uVGFyZ2V0LGlzTmlnaHRseTooKT0+dU4saXNOb1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbDooKT0+QngsaXNOb2RlOigpPT5OQSxpc05vZGVBcnJheTooKT0+dmEsaXNOb2RlQXJyYXlNdWx0aUxpbmU6KCk9PnVPLGlzTm9kZURlc2NlbmRhbnRPZjooKT0+TkksaXNOb2RlS2luZDooKT0+cWwsaXNOb2RlTGlrZVN5c3RlbTooKT0+cEUsaXNOb2RlTW9kdWxlc0RpcmVjdG9yeTooKT0+UkUsaXNOb2RlV2l0aFBvc3NpYmxlSG9pc3RlZERlY2xhcmF0aW9uOigpPT5FSSxpc05vbkNvbnRleHR1YWxLZXl3b3JkOigpPT5NVCxpc05vbkV4cG9ydERlZmF1bHRNb2RpZmllcjooKT0+Z2osaXNOb25HbG9iYWxBbWJpZW50TW9kdWxlOigpPT5QRCxpc05vbkdsb2JhbERlY2xhcmF0aW9uOigpPT5pc05vbkdsb2JhbERlY2xhcmF0aW9uLGlzTm9uTnVsbEFjY2VzczooKT0+ZEwsaXNOb25OdWxsQ2hhaW46KCk9PmUzLGlzTm9uTnVsbEV4cHJlc3Npb246KCk9PmpvLGlzTm9uU3RhdGljTWV0aG9kT3JBY2Nlc3NvcldpdGhQcml2YXRlTmFtZTooKT0+aXNOb25TdGF0aWNNZXRob2RPckFjY2Vzc29yV2l0aFByaXZhdGVOYW1lLGlzTm90RW1pdHRlZE9yUGFydGlhbGx5RW1pdHRlZE5vZGU6KCk9Pl9rLGlzTm90RW1pdHRlZFN0YXRlbWVudDooKT0+QTYsaXNOdWxsaXNoQ29hbGVzY2U6KCk9PmtBLGlzTnVtYmVyOigpPT5MQyxpc051bWVyaWNMaXRlcmFsOigpPT5sbyxpc051bWVyaWNMaXRlcmFsTmFtZTooKT0+YXgsaXNPYmplY3RCaW5kaW5nRWxlbWVudFdpdGhvdXRQcm9wZXJ0eU5hbWU6KCk9PmlzT2JqZWN0QmluZGluZ0VsZW1lbnRXaXRob3V0UHJvcGVydHlOYW1lLGlzT2JqZWN0QmluZGluZ09yQXNzaWdubWVudEVsZW1lbnQ6KCk9PmYzLGlzT2JqZWN0QmluZGluZ09yQXNzaWdubWVudFBhdHRlcm46KCk9PnAzLGlzT2JqZWN0QmluZGluZ1BhdHRlcm46KCk9PnNKLGlzT2JqZWN0TGl0ZXJhbEVsZW1lbnQ6KCk9PmIwLGlzT2JqZWN0TGl0ZXJhbEVsZW1lbnRMaWtlOigpPT5GZyxpc09iamVjdExpdGVyYWxFeHByZXNzaW9uOigpPT51byxpc09iamVjdExpdGVyYWxNZXRob2Q6KCk9PnZQLGlzT2JqZWN0TGl0ZXJhbE9yQ2xhc3NFeHByZXNzaW9uTWV0aG9kT3JBY2Nlc3NvcjooKT0+VFAsaXNPYmplY3RUeXBlRGVjbGFyYXRpb246KCk9Pk5PLGlzT2N0YWxEaWdpdDooKT0+SWYsaXNPbWl0dGVkRXhwcmVzc2lvbjooKT0+UG0saXNPcHRpb25hbENoYWluOigpPT5EZyxpc09wdGlvbmFsQ2hhaW5Sb290OigpPT5QZyxpc09wdGlvbmFsRGVjbGFyYXRpb246KCk9PmZMLGlzT3B0aW9uYWxKU0RvY1Byb3BlcnR5TGlrZVRhZzooKT0+X3gsaXNPcHRpb25hbFR5cGVOb2RlOigpPT5ZeCxpc091dGVyRXhwcmVzc2lvbjooKT0+Um0saXNPdXRlcm1vc3RPcHRpb25hbENoYWluOigpPT5BQSxpc092ZXJyaWRlTW9kaWZpZXI6KCk9PnJKLGlzUGFja2VkQXJyYXlMaXRlcmFsOigpPT5lTCxpc1BhcmFtZXRlcjooKT0+TWEsaXNQYXJhbWV0ZXJEZWNsYXJhdGlvbjooKT0+S0ksaXNQYXJhbWV0ZXJPckNhdGNoQ2xhdXNlVmFyaWFibGU6KCk9PmFMLGlzUGFyYW1ldGVyUHJvcGVydHlEZWNsYXJhdGlvbjooKT0+RTQsaXNQYXJhbWV0ZXJQcm9wZXJ0eU1vZGlmaWVyOigpPT5vMyxpc1BhcmVudGhlc2l6ZWRFeHByZXNzaW9uOigpPT5pcyxpc1BhcmVudGhlc2l6ZWRUeXBlTm9kZTooKT0+ZjYsaXNQYXJzZVRyZWVOb2RlOigpPT5UbCxpc1BhcnRPZlR5cGVOb2RlOigpPT5yMixpc1BhcnRPZlR5cGVRdWVyeTooKT0+dFQsaXNQYXJ0aWFsbHlFbWl0dGVkRXhwcmVzc2lvbjooKT0+YzgsaXNQYXR0ZXJuTWF0Y2g6KCk9PmxnLGlzUGlubmVkQ29tbWVudDooKT0+TDMsaXNQbGFpbkpzRmlsZTooKT0+X0QsaXNQbHVzVG9rZW46KCk9PnM2LGlzUG9zc2libHlUeXBlQXJndW1lbnRQb3NpdGlvbjooKT0+aXNQb3NzaWJseVR5cGVBcmd1bWVudFBvc2l0aW9uLGlzUG9zdGZpeFVuYXJ5RXhwcmVzc2lvbjooKT0+XzgsaXNQcmVmaXhVbmFyeUV4cHJlc3Npb246KCk9PkRtLGlzUHJpdmF0ZUlkZW50aWZpZXI6KCk9PmpyLGlzUHJpdmF0ZUlkZW50aWZpZXJDbGFzc0VsZW1lbnREZWNsYXJhdGlvbjooKT0+YTMsaXNQcml2YXRlSWRlbnRpZmllclByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjooKT0+cUEsaXNQcml2YXRlSWRlbnRpZmllclN5bWJvbDooKT0+WEksaXNQcm9ncmFtQnVuZGxlRW1pdEJ1aWxkSW5mbzooKT0+aXNQcm9ncmFtQnVuZGxlRW1pdEJ1aWxkSW5mbyxpc1Byb2dyYW1VcHRvRGF0ZTooKT0+aXNQcm9ncmFtVXB0b0RhdGUsaXNQcm9sb2d1ZURpcmVjdGl2ZTooKT0+RWEsaXNQcm9wZXJ0eUFjY2Vzc0NoYWluOigpPT5ZNCxpc1Byb3BlcnR5QWNjZXNzRW50aXR5TmFtZUV4cHJlc3Npb246KCk9PmhTLGlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uOigpPT5Ccixpc1Byb3BlcnR5QWNjZXNzT3JRdWFsaWZpZWROYW1lOigpPT5layxpc1Byb3BlcnR5QWNjZXNzT3JRdWFsaWZpZWROYW1lT3JJbXBvcnRUeXBlTm9kZTooKT0+WkEsaXNQcm9wZXJ0eUFzc2lnbm1lbnQ6KCk9Pl9zLGlzUHJvcGVydHlEZWNsYXJhdGlvbjooKT0+b28saXNQcm9wZXJ0eU5hbWU6KCk9PnpsLGlzUHJvcGVydHlOYW1lTGl0ZXJhbDooKT0+UDAsaXNQcm9wZXJ0eVNpZ25hdHVyZTooKT0+WmwsaXNQcm90b1NldHRlcjooKT0+UlQsaXNQcm90b3R5cGVBY2Nlc3M6KCk9PiRsLGlzUHJvdG90eXBlUHJvcGVydHlBc3NpZ25tZW50OigpPT5jSSxpc1B1bmN0dWF0aW9uOigpPT5PVCxpc1B1c2hPclVuc2hpZnRJZGVudGlmaWVyOigpPT5ZSSxpc1F1YWxpZmllZE5hbWU6KCk9Pk1fLGlzUXVlc3Rpb25Eb3RUb2tlbjooKT0+JEwsaXNRdWVzdGlvbk9yRXhjbGFtYXRpb25Ub2tlbjooKT0+SFIsaXNRdWVzdGlvbk9yUGx1c09yTWludXNUb2tlbjooKT0+JFIsaXNRdWVzdGlvblRva2VuOigpPT5QbCxpc1Jhd1NvdXJjZU1hcDooKT0+aXNSYXdTb3VyY2VNYXAsaXNSZWFkb25seUtleXdvcmQ6KCk9Pnp4LGlzUmVhZG9ubHlLZXl3b3JkT3JQbHVzT3JNaW51c1Rva2VuOigpPT5YUixpc1JlY29nbml6ZWRUcmlwbGVTbGFzaENvbW1lbnQ6KCk9PnlELGlzUmVmZXJlbmNlRmlsZUxvY2F0aW9uOigpPT5pc1JlZmVyZW5jZUZpbGVMb2NhdGlvbixpc1JlZmVyZW5jZWRGaWxlOigpPT5pc1JlZmVyZW5jZWRGaWxlLGlzUmVndWxhckV4cHJlc3Npb25MaXRlcmFsOigpPT5xTCxpc1JlcXVpcmVDYWxsOigpPT5XbCxpc1JlcXVpcmVWYXJpYWJsZVN0YXRlbWVudDooKT0+b1QsaXNSZXN0UGFyYW1ldGVyOigpPT5BMyxpc1Jlc3RUeXBlTm9kZTooKT0+S3gsaXNSZXR1cm5TdGF0ZW1lbnQ6KCk9PkRKLGlzUmV0dXJuU3RhdGVtZW50V2l0aEZpeGFibGVQcm9taXNlSGFuZGxlcjooKT0+aXNSZXR1cm5TdGF0ZW1lbnRXaXRoRml4YWJsZVByb21pc2VIYW5kbGVyLGlzUmlnaHRTaWRlT2ZBY2Nlc3NFeHByZXNzaW9uOigpPT55Uyxpc1JpZ2h0U2lkZU9mUHJvcGVydHlBY2Nlc3M6KCk9PmlzUmlnaHRTaWRlT2ZQcm9wZXJ0eUFjY2Vzcyxpc1JpZ2h0U2lkZU9mUXVhbGlmaWVkTmFtZTooKT0+aXNSaWdodFNpZGVPZlF1YWxpZmllZE5hbWUsaXNSaWdodFNpZGVPZlF1YWxpZmllZE5hbWVPclByb3BlcnR5QWNjZXNzOigpPT56Tixpc1JpZ2h0U2lkZU9mUXVhbGlmaWVkTmFtZU9yUHJvcGVydHlBY2Nlc3NPckpTRG9jTWVtYmVyTmFtZTooKT0+V04saXNSb290ZWREaXNrUGF0aDooKT0+dl8saXNTYW1lRW50aXR5TmFtZTooKT0+dV8saXNTYXRpc2ZpZXNFeHByZXNzaW9uOigpPT55Sixpc1Njb3BlTWFya2VyOigpPT52Myxpc1NlbWljb2xvbkNsYXNzRWxlbWVudDooKT0+dkosaXNTZXRBY2Nlc3NvcjooKT0+WmMsaXNTZXRBY2Nlc3NvckRlY2xhcmF0aW9uOigpPT5Rbyxpc1NoZWJhbmdUcml2aWE6KCk9PnhnLGlzU2hvcnRoYW5kQW1iaWVudE1vZHVsZVN5bWJvbDooKT0+SUQsaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQ6KCk9Pl91LGlzU2lnbmVkTnVtZXJpY0xpdGVyYWw6KCk9PlQyLGlzU2ltcGxlQ29waWFibGVFeHByZXNzaW9uOigpPT5pc1NpbXBsZUNvcGlhYmxlRXhwcmVzc2lvbixpc1NpbXBsZUlubGluZWFibGVFeHByZXNzaW9uOigpPT5pc1NpbXBsZUlubGluZWFibGVFeHByZXNzaW9uLGlzU2luZ2xlT3JEb3VibGVRdW90ZTooKT0+WlAsaXNTb3VyY2VGaWxlOigpPT5paSxpc1NvdXJjZUZpbGVGcm9tTGlicmFyeTooKT0+aXNTb3VyY2VGaWxlRnJvbUxpYnJhcnksaXNTb3VyY2VGaWxlSlM6KCk9PmMyLGlzU291cmNlRmlsZU5vdEpTOigpPT5YUCxpc1NvdXJjZUZpbGVOb3RKc29uOigpPT5RUCxpc1NvdXJjZU1hcHBpbmc6KCk9PmlzU291cmNlTWFwcGluZyxpc1NwZWNpYWxQcm9wZXJ0eURlY2xhcmF0aW9uOigpPT5sSSxpc1NwcmVhZEFzc2lnbm1lbnQ6KCk9Pnk4LGlzU3ByZWFkRWxlbWVudDooKT0+eTYsaXNTdGF0ZW1lbnQ6KCk9PlQzLGlzU3RhdGVtZW50QnV0Tm90RGVjbGFyYXRpb246KCk9PkNrLGlzU3RhdGVtZW50T3JCbG9jazooKT0+UzMsaXNTdGF0ZW1lbnRXaXRoTG9jYWxzOigpPT5jRCxpc1N0YXRpYzooKT0+TjAsaXNTdGF0aWNNb2RpZmllcjooKT0+ZUosaXNTdHJpbmc6KCk9PmJfLGlzU3RyaW5nQUtleXdvcmQ6KCk9PkJJLGlzU3RyaW5nQU5vbkNvbnRleHR1YWxLZXl3b3JkOigpPT5GSSxpc1N0cmluZ0FuZEVtcHR5QW5vbnltb3VzT2JqZWN0SW50ZXJzZWN0aW9uOigpPT5pc1N0cmluZ0FuZEVtcHR5QW5vbnltb3VzT2JqZWN0SW50ZXJzZWN0aW9uLGlzU3RyaW5nRG91YmxlUXVvdGVkOigpPT5lSSxpc1N0cmluZ0xpdGVyYWw6KCk9Pm1uLGlzU3RyaW5nTGl0ZXJhbExpa2U6KCk9PktuLGlzU3RyaW5nTGl0ZXJhbE9ySnN4RXhwcmVzc2lvbjooKT0+UGssaXNTdHJpbmdMaXRlcmFsT3JUZW1wbGF0ZTooKT0+aXNTdHJpbmdMaXRlcmFsT3JUZW1wbGF0ZSxpc1N0cmluZ09yTnVtZXJpY0xpdGVyYWxMaWtlOigpPT5RaSxpc1N0cmluZ09yUmVndWxhckV4cHJlc3Npb25PclRlbXBsYXRlTGl0ZXJhbDooKT0+aXNTdHJpbmdPclJlZ3VsYXJFeHByZXNzaW9uT3JUZW1wbGF0ZUxpdGVyYWwsaXNTdHJpbmdUZXh0Q29udGFpbmluZ05vZGU6KCk9PkJBLGlzU3VwZXJDYWxsOigpPT5zUCxpc1N1cGVyS2V5d29yZDooKT0+VWYsaXNTdXBlck9yU3VwZXJQcm9wZXJ0eTooKT0+SlAsaXNTdXBlclByb3BlcnR5OigpPT55ZCxpc1N1cHBvcnRlZFNvdXJjZUZpbGVOYW1lOigpPT5OTSxpc1N3aXRjaFN0YXRlbWVudDooKT0+SUosaXNTeW50YXhMaXN0OigpPT5tUixpc1N5bnRoZXRpY0V4cHJlc3Npb246KCk9PmdKLGlzU3ludGhldGljUmVmZXJlbmNlOigpPT5xSixpc1RhZ05hbWU6KCk9PmlzVGFnTmFtZSxpc1RhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbjooKT0+czgsaXNUYWdnZWRUZW1wbGF0ZVRhZzooKT0+aXNUYWdnZWRUZW1wbGF0ZVRhZyxpc1RlbXBsYXRlRXhwcmVzc2lvbjooKT0+ZEosaXNUZW1wbGF0ZUhlYWQ6KCk9PnpMLGlzVGVtcGxhdGVMaXRlcmFsOigpPT5uayxpc1RlbXBsYXRlTGl0ZXJhbEtpbmQ6KCk9PlNsLGlzVGVtcGxhdGVMaXRlcmFsVG9rZW46KCk9PkxBLGlzVGVtcGxhdGVMaXRlcmFsVHlwZU5vZGU6KCk9Pm9KLGlzVGVtcGxhdGVMaXRlcmFsVHlwZVNwYW46KCk9PmFKLGlzVGVtcGxhdGVNaWRkbGU6KCk9PldMLGlzVGVtcGxhdGVNaWRkbGVPclRlbXBsYXRlVGFpbDooKT0+SkEsaXNUZW1wbGF0ZVNwYW46KCk9PmJKLGlzVGVtcGxhdGVUYWlsOigpPT5WTCxpc1RleHRXaGl0ZVNwYWNlTGlrZTooKT0+aXNUZXh0V2hpdGVTcGFjZUxpa2UsaXNUaGlzOigpPT5pc1RoaXMsaXNUaGlzQ29udGFpbmVyT3JGdW5jdGlvbkJsb2NrOigpPT5JUCxpc1RoaXNJZGVudGlmaWVyOigpPT55bSxpc1RoaXNJblR5cGVRdWVyeTooKT0+Q04saXNUaGlzSW5pdGlhbGl6ZWREZWNsYXJhdGlvbjooKT0+alAsaXNUaGlzSW5pdGlhbGl6ZWRPYmplY3RCaW5kaW5nRXhwcmVzc2lvbjooKT0+RlAsaXNUaGlzUHJvcGVydHk6KCk9PlJQLGlzVGhpc1R5cGVOb2RlOigpPT5kNixpc1RoaXNUeXBlUGFyYW1ldGVyOigpPT5veCxpc1RoaXNUeXBlUHJlZGljYXRlOigpPT54UCxpc1Rocm93U3RhdGVtZW50OigpPT5OSixpc1Rva2VuOigpPT5PQSxpc1Rva2VuS2luZDooKT0+cjMsaXNUcmFjZUVuYWJsZWQ6KCk9PmlzVHJhY2VFbmFibGVkLGlzVHJhbnNpZW50U3ltYm9sOigpPT5UMCxpc1RyaXZpYTooKT0+cUksaXNUcnlTdGF0ZW1lbnQ6KCk9Pk9KLGlzVHVwbGVUeXBlTm9kZTooKT0+UXgsaXNUeXBlQWxpYXM6KCk9PmdJLGlzVHlwZUFsaWFzRGVjbGFyYXRpb246KCk9PlQ2LGlzVHlwZUFzc2VydGlvbkV4cHJlc3Npb246KCk9PmNKLGlzVHlwZURlY2xhcmF0aW9uOigpPT5zeCxpc1R5cGVFbGVtZW50OigpPT5qZyxpc1R5cGVLZXl3b3JkOigpPT5pc1R5cGVLZXl3b3JkLGlzVHlwZUtleXdvcmRUb2tlbjooKT0+aXNUeXBlS2V5d29yZFRva2VuLGlzVHlwZUtleXdvcmRUb2tlbk9ySWRlbnRpZmllcjooKT0+aXNUeXBlS2V5d29yZFRva2VuT3JJZGVudGlmaWVyLGlzVHlwZUxpdGVyYWxOb2RlOigpPT5FbSxpc1R5cGVOb2RlOigpPT5nMCxpc1R5cGVOb2RlS2luZDooKT0+UFMsaXNUeXBlT2ZFeHByZXNzaW9uOigpPT51Sixpc1R5cGVPbmx5RXhwb3J0RGVjbGFyYXRpb246KCk9PmkzLGlzVHlwZU9ubHlJbXBvcnREZWNsYXJhdGlvbjooKT0+bjMsaXNUeXBlT25seUltcG9ydE9yRXhwb3J0RGVjbGFyYXRpb246KCk9PmpBLGlzVHlwZU9wZXJhdG9yTm9kZTooKT0+bjgsaXNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246KCk9Pk5vLGlzVHlwZVByZWRpY2F0ZU5vZGU6KCk9Pkd4LGlzVHlwZVF1ZXJ5Tm9kZTooKT0+WHgsaXNUeXBlUmVmZXJlbmNlTm9kZTooKT0+Ul8saXNUeXBlUmVmZXJlbmNlVHlwZTooKT0+TWssaXNUeXBlVXNhYmxlQXNQcm9wZXJ0eU5hbWU6KCk9PlRMLGlzVU1ERXhwb3J0U3ltYm9sOigpPT5ETyxpc1VuYXJ5RXhwcmVzc2lvbjooKT0+eTMsaXNVbmFyeUV4cHJlc3Npb25XaXRoV3JpdGU6KCk9PmlrLGlzVW5pY29kZUlkZW50aWZpZXJTdGFydDooKT0+aTQsaXNVbmlvblR5cGVOb2RlOigpPT5aeCxpc1VucGFyc2VkTm9kZTooKT0+SUEsaXNVbnBhcnNlZFByZXBlbmQ6KCk9PlFKLGlzVW5wYXJzZWRTb3VyY2U6KCk9PktKLGlzVW5wYXJzZWRUZXh0TGlrZTooKT0+dDMsaXNVcmw6KCk9PnhFLGlzVmFsaWRCaWdJbnRTdHJpbmc6KCk9PmV4LGlzVmFsaWRFU1N5bWJvbERlY2xhcmF0aW9uOigpPT55UCxpc1ZhbGlkVHlwZU9ubHlBbGlhc1VzZVNpdGU6KCk9PkhNLGlzVmFsdWVTaWduYXR1cmVEZWNsYXJhdGlvbjooKT0+QUksaXNWYXJBd2FpdFVzaW5nOigpPT5pUCxpc1ZhckNvbnN0OigpPT5WMyxpc1ZhclVzaW5nOigpPT5hUCxpc1ZhcmlhYmxlRGVjbGFyYXRpb246KCk9PmtpLGlzVmFyaWFibGVEZWNsYXJhdGlvbkluVmFyaWFibGVTdGF0ZW1lbnQ6KCk9PlgzLGlzVmFyaWFibGVEZWNsYXJhdGlvbkluaXRpYWxpemVkVG9CYXJlT3JBY2Nlc3NlZFJlcXVpcmU6KCk9PnBtLGlzVmFyaWFibGVEZWNsYXJhdGlvbkluaXRpYWxpemVkVG9SZXF1aXJlOigpPT5pVCxpc1ZhcmlhYmxlRGVjbGFyYXRpb25MaXN0OigpPT52Nixpc1ZhcmlhYmxlTGlrZTooKT0+bjIsaXNWYXJpYWJsZUxpa2VPckFjY2Vzc29yOigpPT5tUCxpc1ZhcmlhYmxlU3RhdGVtZW50OigpPT5hcyxpc1ZvaWRFeHByZXNzaW9uOigpPT5oNixpc1dhdGNoU2V0OigpPT55Tyxpc1doaWxlU3RhdGVtZW50OigpPT53Sixpc1doaXRlU3BhY2VMaWtlOigpPT5WaSxpc1doaXRlU3BhY2VTaW5nbGVMaW5lOigpPT5Jbyxpc1dpdGhTdGF0ZW1lbnQ6KCk9PlBKLGlzV3JpdGVBY2Nlc3M6KCk9PnhPLGlzV3JpdGVPbmx5QWNjZXNzOigpPT5TTyxpc1lpZWxkRXhwcmVzc2lvbjooKT0+bUosanN4TW9kZU5lZWRzRXhwbGljaXRJbXBvcnQ6KCk9PmpzeE1vZGVOZWVkc0V4cGxpY2l0SW1wb3J0LGtleXdvcmRQYXJ0OigpPT5rZXl3b3JkUGFydCxsYXN0OigpPT5rYSxsYXN0T3JVbmRlZmluZWQ6KCk9PndpLGxlbmd0aDooKT0+S2EsbGliTWFwOigpPT5saWJNYXAsbGliczooKT0+bGlicyxsaW5lQnJlYWtQYXJ0OigpPT5saW5lQnJlYWtQYXJ0LGxpbmtOYW1lUGFydDooKT0+bGlua05hbWVQYXJ0LGxpbmtQYXJ0OigpPT5saW5rUGFydCxsaW5rVGV4dFBhcnQ6KCk9PmxpbmtUZXh0UGFydCxsaXN0RmlsZXM6KCk9Pmxpc3RGaWxlcyxsb2FkTW9kdWxlRnJvbUdsb2JhbENhY2hlOigpPT5sb2FkTW9kdWxlRnJvbUdsb2JhbENhY2hlLGxvYWRXaXRoTW9kZUF3YXJlQ2FjaGU6KCk9PmxvYWRXaXRoTW9kZUF3YXJlQ2FjaGUsbWFrZUlkZW50aWZpZXJGcm9tTW9kdWxlTmFtZTooKT0+QUQsbWFrZUltcG9ydDooKT0+bWFrZUltcG9ydCxtYWtlSW1wb3J0SWZOZWNlc3Nhcnk6KCk9Pm1ha2VJbXBvcnRJZk5lY2Vzc2FyeSxtYWtlU3RyaW5nTGl0ZXJhbDooKT0+bWFrZVN0cmluZ0xpdGVyYWwsbWFuZ2xlU2NvcGVkUGFja2FnZU5hbWU6KCk9Pm1hbmdsZVNjb3BlZFBhY2thZ2VOYW1lLG1hcDooKT0+QWEsbWFwQWxsT3JGYWlsOigpPT5INSxtYXBEZWZpbmVkOigpPT5aYSxtYXBEZWZpbmVkRW50cmllczooKT0+WDUsbWFwRGVmaW5lZEl0ZXJhdG9yOigpPT5HNSxtYXBFbnRyaWVzOigpPT5aNSxtYXBJdGVyYXRvcjooKT0+ejUsbWFwT25lT3JNYW55OigpPT5tYXBPbmVPck1hbnksbWFwVG9EaXNwbGF5UGFydHM6KCk9Pm1hcFRvRGlzcGxheVBhcnRzLG1hdGNoRmlsZXM6KCk9PkVNLG1hdGNoUGF0dGVybk9yRXhhY3Q6KCk9PkZNLG1hdGNoZWRUZXh0OigpPT50RSxtYXRjaGVzRXhjbHVkZTooKT0+bWF0Y2hlc0V4Y2x1ZGUsbWF5YmVCaW5kOigpPT5ycixtYXliZVNldExvY2FsaXplZERpYWdub3N0aWNNZXNzYWdlczooKT0+T1MsbWVtb2l6ZTooKT0+cnksbWVtb2l6ZUNhY2hlZDooKT0+RkMsbWVtb2l6ZU9uZTooKT0+Tm4sbWVtb2l6ZVdlYWs6KCk9PmpDLG1ldGFkYXRhSGVscGVyOigpPT5tZXRhZGF0YUhlbHBlcixtaW46KCk9PnFDLG1pbkFuZE1heDooKT0+VU0sbWlzc2luZ0ZpbGVNb2RpZmllZFRpbWU6KCk9Pm1pc3NpbmdGaWxlTW9kaWZpZWRUaW1lLG1vZGlmaWVyVG9GbGFnOigpPT5KMixtb2RpZmllcnNUb0ZsYWdzOigpPT5sbixtb2R1bGVPcHRpb25EZWNsYXJhdGlvbjooKT0+bW9kdWxlT3B0aW9uRGVjbGFyYXRpb24sbW9kdWxlUmVzb2x1dGlvbklzRXF1YWxUbzooKT0+ZUQsbW9kdWxlUmVzb2x1dGlvbk5hbWVBbmRNb2RlR2V0dGVyOigpPT5tb2R1bGVSZXNvbHV0aW9uTmFtZUFuZE1vZGVHZXR0ZXIsbW9kdWxlUmVzb2x1dGlvbk9wdGlvbkRlY2xhcmF0aW9uczooKT0+bW9kdWxlUmVzb2x1dGlvbk9wdGlvbkRlY2xhcmF0aW9ucyxtb2R1bGVSZXNvbHV0aW9uU3VwcG9ydHNQYWNrYWdlSnNvbkV4cG9ydHNBbmRJbXBvcnRzOigpPT5xMixtb2R1bGVSZXNvbHV0aW9uVXNlc05vZGVNb2R1bGVzOigpPT5tb2R1bGVSZXNvbHV0aW9uVXNlc05vZGVNb2R1bGVzLG1vZHVsZVNwZWNpZmllcnM6KCk9PnRzX21vZHVsZVNwZWNpZmllcnNfZXhwb3J0cyxtb3ZlRW1pdEhlbHBlcnM6KCk9Pm1vdmVFbWl0SGVscGVycyxtb3ZlUmFuZ2VFbmQ6KCk9PnRPLG1vdmVSYW5nZVBhc3REZWNvcmF0b3JzOigpPT5TUyxtb3ZlUmFuZ2VQYXN0TW9kaWZpZXJzOigpPT5yTyxtb3ZlUmFuZ2VQb3M6KCk9PlNkLG1vdmVTeW50aGV0aWNDb21tZW50czooKT0+bW92ZVN5bnRoZXRpY0NvbW1lbnRzLG11dGF0ZU1hcDooKT0+RU8sbXV0YXRlTWFwU2tpcHBpbmdOZXdWYWx1ZXM6KCk9PkFTLG5lZWRzUGFyZW50aGVzZXM6KCk9Pm5lZWRzUGFyZW50aGVzZXMsbmVlZHNTY29wZU1hcmtlcjooKT0+bGssbmV3Q2FzZUNsYXVzZVRyYWNrZXI6KCk9Pm5ld0Nhc2VDbGF1c2VUcmFja2VyLG5ld1ByaXZhdGVFbnZpcm9ubWVudDooKT0+bmV3UHJpdmF0ZUVudmlyb25tZW50LG5vRW1pdE5vdGlmaWNhdGlvbjooKT0+bm9FbWl0Tm90aWZpY2F0aW9uLG5vRW1pdFN1YnN0aXR1dGlvbjooKT0+bm9FbWl0U3Vic3RpdHV0aW9uLG5vVHJhbnNmb3JtZXJzOigpPT5ub1RyYW5zZm9ybWVycyxub1RydW5jYXRpb25NYXhpbXVtVHJ1bmNhdGlvbkxlbmd0aDooKT0+ZHgsbm9kZUNhbkJlRGVjb3JhdGVkOigpPT5LMyxub2RlSGFzTmFtZTooKT0+TjQsbm9kZUlzRGVjb3JhdGVkOigpPT5sXyxub2RlSXNNaXNzaW5nOigpPT56aSxub2RlSXNQcmVzZW50OigpPT53bCxub2RlSXNTeW50aGVzaXplZDooKT0+VGEsbm9kZU1vZHVsZU5hbWVSZXNvbHZlcjooKT0+bm9kZU1vZHVsZU5hbWVSZXNvbHZlcixub2RlTW9kdWxlc1BhdGhQYXJ0OigpPT5ub2RlTW9kdWxlc1BhdGhQYXJ0LG5vZGVOZXh0SnNvbkNvbmZpZ1Jlc29sdmVyOigpPT5ub2RlTmV4dEpzb25Db25maWdSZXNvbHZlcixub2RlT3JDaGlsZElzRGVjb3JhdGVkOigpPT5BMCxub2RlT3ZlcmxhcHNXaXRoU3RhcnRFbmQ6KCk9Pm5vZGVPdmVybGFwc1dpdGhTdGFydEVuZCxub2RlUG9zVG9TdHJpbmc6KCk9PnVELG5vZGVTZWVuVHJhY2tlcjooKT0+bm9kZVNlZW5UcmFja2VyLG5vZGVTdGFydHNOZXdMZXhpY2FsRW52aXJvbm1lbnQ6KCk9PlpJLG5vZGVUb0Rpc3BsYXlQYXJ0czooKT0+bm9kZVRvRGlzcGxheVBhcnRzLG5vb3A6KCk9PlJuLG5vb3BGaWxlV2F0Y2hlcjooKT0+bm9vcEZpbGVXYXRjaGVyLG5vcm1hbGl6ZVBhdGg6KCk9PnBuLG5vcm1hbGl6ZVNsYXNoZXM6KCk9PnFvLG5vdDooKT0+aUUsbm90SW1wbGVtZW50ZWQ6KCk9PlJDLG5vdEltcGxlbWVudGVkUmVzb2x2ZXI6KCk9Pm5vdEltcGxlbWVudGVkUmVzb2x2ZXIsbnVsbE5vZGVDb252ZXJ0ZXJzOigpPT5udWxsTm9kZUNvbnZlcnRlcnMsbnVsbFBhcmVudGhlc2l6ZXJSdWxlczooKT0+aTYsbnVsbFRyYW5zZm9ybWF0aW9uQ29udGV4dDooKT0+bnVsbFRyYW5zZm9ybWF0aW9uQ29udGV4dCxvYmplY3RBbGxvY2F0b3I6KCk9Pnd0LG9wZXJhdG9yUGFydDooKT0+b3BlcmF0b3JQYXJ0LG9wdGlvbkRlY2xhcmF0aW9uczooKT0+b3B0aW9uRGVjbGFyYXRpb25zLG9wdGlvbk1hcFRvT2JqZWN0OigpPT5vcHRpb25NYXBUb09iamVjdCxvcHRpb25zQWZmZWN0aW5nUHJvZ3JhbVN0cnVjdHVyZTooKT0+b3B0aW9uc0FmZmVjdGluZ1Byb2dyYW1TdHJ1Y3R1cmUsb3B0aW9uc0ZvckJ1aWxkOigpPT5vcHRpb25zRm9yQnVpbGQsb3B0aW9uc0ZvcldhdGNoOigpPT5vcHRpb25zRm9yV2F0Y2gsb3B0aW9uc0hhdmVDaGFuZ2VzOigpPT5FXyxvcHRpb25zSGF2ZU1vZHVsZVJlc29sdXRpb25DaGFuZ2VzOigpPT5rMyxvcjooKT0+dWcsb3JkZXJlZFJlbW92ZUl0ZW06KCk9PktDLG9yZGVyZWRSZW1vdmVJdGVtQXQ6KCk9PlJ2LG91dEZpbGU6KCk9PkEyLHBhY2thZ2VJZFRvUGFja2FnZU5hbWU6KCk9PkQzLHBhY2thZ2VJZFRvU3RyaW5nOigpPT5uRCxwYWRMZWZ0OigpPT5xdixwYWRSaWdodDooKT0+X0UscGFyYW1IZWxwZXI6KCk9PnBhcmFtSGVscGVyLHBhcmFtZXRlcklzVGhpc0tleXdvcmQ6KCk9PlhsLHBhcmFtZXRlck5hbWVQYXJ0OigpPT5wYXJhbWV0ZXJOYW1lUGFydCxwYXJzZUJhc2VOb2RlRmFjdG9yeTooKT0+dGcscGFyc2VCaWdJbnQ6KCk9PlZNLHBhcnNlQnVpbGRDb21tYW5kOigpPT5wYXJzZUJ1aWxkQ29tbWFuZCxwYXJzZUNvbW1hbmRMaW5lOigpPT5wYXJzZUNvbW1hbmRMaW5lLHBhcnNlQ29tbWFuZExpbmVXb3JrZXI6KCk9PnBhcnNlQ29tbWFuZExpbmVXb3JrZXIscGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbjooKT0+cGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbixwYXJzZUNvbmZpZ0ZpbGVXaXRoU3lzdGVtOigpPT5wYXJzZUNvbmZpZ0ZpbGVXaXRoU3lzdGVtLHBhcnNlQ29uZmlnSG9zdEZyb21Db21waWxlckhvc3RMaWtlOigpPT5wYXJzZUNvbmZpZ0hvc3RGcm9tQ29tcGlsZXJIb3N0TGlrZSxwYXJzZUN1c3RvbVR5cGVPcHRpb246KCk9PnBhcnNlQ3VzdG9tVHlwZU9wdGlvbixwYXJzZUlzb2xhdGVkRW50aXR5TmFtZTooKT0+SmoscGFyc2VJc29sYXRlZEpTRG9jQ29tbWVudDooKT0+amoscGFyc2VKU0RvY1R5cGVFeHByZXNzaW9uRm9yVGVzdHM6KCk9PkZqLHBhcnNlSnNvbkNvbmZpZ0ZpbGVDb250ZW50OigpPT5wYXJzZUpzb25Db25maWdGaWxlQ29udGVudCxwYXJzZUpzb25Tb3VyY2VGaWxlQ29uZmlnRmlsZUNvbnRlbnQ6KCk9PnBhcnNlSnNvblNvdXJjZUZpbGVDb25maWdGaWxlQ29udGVudCxwYXJzZUpzb25UZXh0OigpPT5SaixwYXJzZUxpc3RUeXBlT3B0aW9uOigpPT5wYXJzZUxpc3RUeXBlT3B0aW9uLHBhcnNlTm9kZUZhY3Rvcnk6KCk9PnpfLHBhcnNlTm9kZU1vZHVsZUZyb21QYXRoOigpPT5wYXJzZU5vZGVNb2R1bGVGcm9tUGF0aCxwYXJzZVBhY2thZ2VOYW1lOigpPT5wYXJzZVBhY2thZ2VOYW1lLHBhcnNlUHNldWRvQmlnSW50OigpPT5TbSxwYXJzZVZhbGlkQmlnSW50OigpPT5aUyxwYXRjaFdyaXRlRmlsZUVuc3VyaW5nRGlyZWN0b3J5OigpPT5wYXRjaFdyaXRlRmlsZUVuc3VyaW5nRGlyZWN0b3J5LHBhdGhDb250YWluc05vZGVNb2R1bGVzOigpPT5wYXRoQ29udGFpbnNOb2RlTW9kdWxlcyxwYXRoSXNBYnNvbHV0ZTooKT0+bWcscGF0aElzQmFyZVNwZWNpZmllcjooKT0+Q0UscGF0aElzUmVsYXRpdmU6KCk9PnJzLHBhdHRlcm5UZXh0OigpPT5lRSxwZXJmTG9nZ2VyOigpPT5ZZixwZXJmb3JtSW5jcmVtZW50YWxDb21waWxhdGlvbjooKT0+cGVyZm9ybUluY3JlbWVudGFsQ29tcGlsYXRpb24scGVyZm9ybWFuY2U6KCk9PnRzX3BlcmZvcm1hbmNlX2V4cG9ydHMscGxhaW5KU0Vycm9yczooKT0+cGxhaW5KU0Vycm9ycyxwb3NpdGlvbkJlbG9uZ3NUb05vZGU6KCk9PnBvc2l0aW9uQmVsb25nc1RvTm9kZSxwb3NpdGlvbklzQVNJQ2FuZGlkYXRlOigpPT5wb3NpdGlvbklzQVNJQ2FuZGlkYXRlLHBvc2l0aW9uSXNTeW50aGVzaXplZDooKT0+T2EscG9zaXRpb25zQXJlT25TYW1lTGluZTooKT0+UF8scHJlUHJvY2Vzc0ZpbGU6KCk9PnByZVByb2Nlc3NGaWxlLHByb2JhYmx5VXNlc1NlbWljb2xvbnM6KCk9PnByb2JhYmx5VXNlc1NlbWljb2xvbnMscHJvY2Vzc0NvbW1lbnRQcmFnbWFzOigpPT5YOCxwcm9jZXNzUHJhZ21hc0ludG9GaWVsZHM6KCk9PiQ4LHByb2Nlc3NUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246KCk9PnByb2Nlc3NUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24scHJvZ3JhbUNvbnRhaW5zRXNNb2R1bGVzOigpPT5wcm9ncmFtQ29udGFpbnNFc01vZHVsZXMscHJvZ3JhbUNvbnRhaW5zTW9kdWxlczooKT0+cHJvZ3JhbUNvbnRhaW5zTW9kdWxlcyxwcm9qZWN0UmVmZXJlbmNlSXNFcXVhbFRvOigpPT5aayxwcm9wS2V5SGVscGVyOigpPT5wcm9wS2V5SGVscGVyLHByb3BlcnR5TmFtZVBhcnQ6KCk9PnByb3BlcnR5TmFtZVBhcnQscHNldWRvQmlnSW50VG9TdHJpbmc6KCk9PlEyLHB1bmN0dWF0aW9uUGFydDooKT0+cHVuY3R1YXRpb25QYXJ0LHB1c2hJZlVuaXF1ZTooKT0+T2wscXVvdGU6KCk9PnF1b3RlLHF1b3RlUHJlZmVyZW5jZUZyb21TdHJpbmc6KCk9PnF1b3RlUHJlZmVyZW5jZUZyb21TdHJpbmcscmFuZ2VDb250YWluc1Bvc2l0aW9uOigpPT5yYW5nZUNvbnRhaW5zUG9zaXRpb24scmFuZ2VDb250YWluc1Bvc2l0aW9uRXhjbHVzaXZlOigpPT5yYW5nZUNvbnRhaW5zUG9zaXRpb25FeGNsdXNpdmUscmFuZ2VDb250YWluc1JhbmdlOigpPT5yYW5nZUNvbnRhaW5zUmFuZ2UscmFuZ2VDb250YWluc1JhbmdlRXhjbHVzaXZlOigpPT5yYW5nZUNvbnRhaW5zUmFuZ2VFeGNsdXNpdmUscmFuZ2VDb250YWluc1N0YXJ0RW5kOigpPT5yYW5nZUNvbnRhaW5zU3RhcnRFbmQscmFuZ2VFbmRJc09uU2FtZUxpbmVBc1JhbmdlU3RhcnQ6KCk9Pl9PLHJhbmdlRW5kUG9zaXRpb25zQXJlT25TYW1lTGluZTooKT0+c08scmFuZ2VFcXVhbHM6KCk9PmZDLHJhbmdlSXNPblNpbmdsZUxpbmU6KCk9PmFPLHJhbmdlT2ZOb2RlOigpPT5xTSxyYW5nZU9mVHlwZVBhcmFtZXRlcnM6KCk9PnpNLHJhbmdlT3ZlcmxhcHNXaXRoU3RhcnRFbmQ6KCk9PnJhbmdlT3ZlcmxhcHNXaXRoU3RhcnRFbmQscmFuZ2VTdGFydElzT25TYW1lTGluZUFzUmFuZ2VFbmQ6KCk9PnhTLHJhbmdlU3RhcnRQb3NpdGlvbnNBcmVPblNhbWVMaW5lOigpPT5vTyxyZWFkQnVpbGRlclByb2dyYW06KCk9PnJlYWRCdWlsZGVyUHJvZ3JhbSxyZWFkQ29uZmlnRmlsZTooKT0+cmVhZENvbmZpZ0ZpbGUscmVhZEhlbHBlcjooKT0+cmVhZEhlbHBlcixyZWFkSnNvbjooKT0+ZU8scmVhZEpzb25Db25maWdGaWxlOigpPT5yZWFkSnNvbkNvbmZpZ0ZpbGUscmVhZEpzb25PclVuZGVmaW5lZDooKT0+YlMscmVhbGl6ZURpYWdub3N0aWNzOigpPT5yZWFsaXplRGlhZ25vc3RpY3MscmVkdWNlRWFjaExlYWRpbmdDb21tZW50UmFuZ2U6KCk9PmE0LHJlZHVjZUVhY2hUcmFpbGluZ0NvbW1lbnRSYW5nZTooKT0+bzQscmVkdWNlTGVmdDooKT0+SmQscmVkdWNlTGVmdEl0ZXJhdG9yOigpPT5KNSxyZWR1Y2VQYXRoQ29tcG9uZW50czooKT0+RGEscmVmYWN0b3I6KCk9PnRzX3JlZmFjdG9yX2V4cG9ydHMscmVnRXhwRXNjYXBlOigpPT54TSxyZWxhdGl2ZUNvbXBsZW1lbnQ6KCk9PmxDLHJlbW92ZUFsbENvbW1lbnRzOigpPT5yZW1vdmVBbGxDb21tZW50cyxyZW1vdmVFbWl0SGVscGVyOigpPT5yZW1vdmVFbWl0SGVscGVyLHJlbW92ZUV4dGVuc2lvbjooKT0+UVMscmVtb3ZlRmlsZUV4dGVuc2lvbjooKT0+QWwscmVtb3ZlSWdub3JlZFBhdGg6KCk9PnJlbW92ZUlnbm9yZWRQYXRoLHJlbW92ZU1pbkFuZFZlcnNpb25OdW1iZXJzOigpPT5ZQyxyZW1vdmVPcHRpb25hbGl0eTooKT0+cmVtb3ZlT3B0aW9uYWxpdHkscmVtb3ZlUHJlZml4OigpPT5yRSxyZW1vdmVTdWZmaXg6KCk9PiRDLHJlbW92ZVRyYWlsaW5nRGlyZWN0b3J5U2VwYXJhdG9yOigpPT5TXyxyZXBlYXRTdHJpbmc6KCk9PnJlcGVhdFN0cmluZyxyZXBsYWNlRWxlbWVudDooKT0+Z0MscmVzb2x1dGlvbkV4dGVuc2lvbklzVFNPckpzb246KCk9PkpNLHJlc29sdmVDb25maWdGaWxlUHJvamVjdE5hbWU6KCk9PnJlc29sdmVDb25maWdGaWxlUHJvamVjdE5hbWUscmVzb2x2ZUpTTW9kdWxlOigpPT5yZXNvbHZlSlNNb2R1bGUscmVzb2x2ZUxpYnJhcnk6KCk9PnJlc29sdmVMaWJyYXJ5LHJlc29sdmVNb2R1bGVOYW1lOigpPT5yZXNvbHZlTW9kdWxlTmFtZSxyZXNvbHZlTW9kdWxlTmFtZUZyb21DYWNoZTooKT0+cmVzb2x2ZU1vZHVsZU5hbWVGcm9tQ2FjaGUscmVzb2x2ZVBhY2thZ2VOYW1lVG9QYWNrYWdlSnNvbjooKT0+cmVzb2x2ZVBhY2thZ2VOYW1lVG9QYWNrYWdlSnNvbixyZXNvbHZlUGF0aDooKT0+ZDAscmVzb2x2ZVByb2plY3RSZWZlcmVuY2VQYXRoOigpPT5yZXNvbHZlUHJvamVjdFJlZmVyZW5jZVBhdGgscmVzb2x2ZVRyaXBsZXNsYXNoUmVmZXJlbmNlOigpPT5yZXNvbHZlVHJpcGxlc2xhc2hSZWZlcmVuY2UscmVzb2x2ZVR5cGVSZWZlcmVuY2VEaXJlY3RpdmU6KCk9PnJlc29sdmVUeXBlUmVmZXJlbmNlRGlyZWN0aXZlLHJlc29sdmluZ0VtcHR5QXJyYXk6KCk9PnB4LHJlc3RIZWxwZXI6KCk9PnJlc3RIZWxwZXIscmV0dXJuRmFsc2U6KCk9PlhmLHJldHVybk5vb3BGaWxlV2F0Y2hlcjooKT0+cmV0dXJuTm9vcEZpbGVXYXRjaGVyLHJldHVyblRydWU6KCk9Pkl2LHJldHVyblVuZGVmaW5lZDooKT0+SkMscmV0dXJuc1Byb21pc2U6KCk9PnJldHVybnNQcm9taXNlLHJ1bkluaXRpYWxpemVyc0hlbHBlcjooKT0+cnVuSW5pdGlhbGl6ZXJzSGVscGVyLHNhbWVGbGF0TWFwOigpPT5TdixzYW1lTWFwOigpPT5XNSxzYW1lTWFwcGluZzooKT0+c2FtZU1hcHBpbmcsc2NhblNoZWJhbmdUcml2aWE6KCk9PndnLHNjYW5Ub2tlbkF0UG9zaXRpb246KCk9PlpELHNjYW5uZXI6KCk9PkZvLHNjcmVlblN0YXJ0aW5nTWVzc2FnZUNvZGVzOigpPT5zY3JlZW5TdGFydGluZ01lc3NhZ2VDb2RlcyxzZW1hbnRpY0RpYWdub3N0aWNzT3B0aW9uRGVjbGFyYXRpb25zOigpPT5zZW1hbnRpY0RpYWdub3N0aWNzT3B0aW9uRGVjbGFyYXRpb25zLHNlcmlhbGl6ZUNvbXBpbGVyT3B0aW9uczooKT0+c2VyaWFsaXplQ29tcGlsZXJPcHRpb25zLHNlcnZlcjooKT0+dHNfc2VydmVyX2V4cG9ydHMsc2VydmljZXNWZXJzaW9uOigpPT5kNyxzZXRDb21tZW50UmFuZ2U6KCk9PnNldENvbW1lbnRSYW5nZSxzZXRDb25maWdGaWxlSW5PcHRpb25zOigpPT5zZXRDb25maWdGaWxlSW5PcHRpb25zLHNldENvbnN0YW50VmFsdWU6KCk9PnNldENvbnN0YW50VmFsdWUsc2V0RWFjaFBhcmVudDooKT0+YV8sc2V0RW1pdEZsYWdzOigpPT5zZXRFbWl0RmxhZ3Msc2V0RnVuY3Rpb25OYW1lSGVscGVyOigpPT5zZXRGdW5jdGlvbk5hbWVIZWxwZXIsc2V0R2V0U291cmNlRmlsZUFzSGFzaFZlcnNpb25lZDooKT0+c2V0R2V0U291cmNlRmlsZUFzSGFzaFZlcnNpb25lZCxzZXRJZGVudGlmaWVyQXV0b0dlbmVyYXRlOigpPT5zZXRJZGVudGlmaWVyQXV0b0dlbmVyYXRlLHNldElkZW50aWZpZXJHZW5lcmF0ZWRJbXBvcnRSZWZlcmVuY2U6KCk9PnNldElkZW50aWZpZXJHZW5lcmF0ZWRJbXBvcnRSZWZlcmVuY2Usc2V0SWRlbnRpZmllclR5cGVBcmd1bWVudHM6KCk9PnNldElkZW50aWZpZXJUeXBlQXJndW1lbnRzLHNldEludGVybmFsRW1pdEZsYWdzOigpPT5zZXRJbnRlcm5hbEVtaXRGbGFncyxzZXRMb2NhbGl6ZWREaWFnbm9zdGljTWVzc2FnZXM6KCk9Pk5TLHNldE1vZHVsZURlZmF1bHRIZWxwZXI6KCk9PnNldE1vZHVsZURlZmF1bHRIZWxwZXIsc2V0Tm9kZUZsYWdzOigpPT5LTSxzZXRPYmplY3RBbGxvY2F0b3I6KCk9PklTLHNldE9yaWdpbmFsTm9kZTooKT0+WHIsc2V0UGFyZW50OigpPT5YaSxzZXRQYXJlbnRSZWN1cnNpdmU6KCk9PnJ4LHNldFByaXZhdGVJZGVudGlmaWVyOigpPT5zZXRQcml2YXRlSWRlbnRpZmllcixzZXRSZXNvbHZlZE1vZHVsZTooKT0+UWssc2V0UmVzb2x2ZWRUeXBlUmVmZXJlbmNlRGlyZWN0aXZlOigpPT5ZayxzZXRTbmlwcGV0RWxlbWVudDooKT0+c2V0U25pcHBldEVsZW1lbnQsc2V0U291cmNlTWFwUmFuZ2U6KCk9PnNldFNvdXJjZU1hcFJhbmdlLHNldFN0YWNrVHJhY2VMaW1pdDooKT0+c2V0U3RhY2tUcmFjZUxpbWl0LHNldFN0YXJ0c09uTmV3TGluZTooKT0+c2V0U3RhcnRzT25OZXdMaW5lLHNldFN5bnRoZXRpY0xlYWRpbmdDb21tZW50czooKT0+c2V0U3ludGhldGljTGVhZGluZ0NvbW1lbnRzLHNldFN5bnRoZXRpY1RyYWlsaW5nQ29tbWVudHM6KCk9PnNldFN5bnRoZXRpY1RyYWlsaW5nQ29tbWVudHMsc2V0U3lzOigpPT5zZXRTeXMsc2V0U3lzTG9nOigpPT5zZXRTeXNMb2csc2V0VGV4dFJhbmdlOigpPT5WZSxzZXRUZXh0UmFuZ2VFbmQ6KCk9PnR4LHNldFRleHRSYW5nZVBvczooKT0+d2Qsc2V0VGV4dFJhbmdlUG9zRW5kOigpPT5ZYSxzZXRUZXh0UmFuZ2VQb3NXaWR0aDooKT0+Q2Qsc2V0VG9rZW5Tb3VyY2VNYXBSYW5nZTooKT0+c2V0VG9rZW5Tb3VyY2VNYXBSYW5nZSxzZXRUeXBlTm9kZTooKT0+c2V0VHlwZU5vZGUsc2V0VUlMb2NhbGU6KCk9Pkx2LHNldFZhbHVlRGVjbGFyYXRpb246KCk9PnVJLHNob3VsZEFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb246KCk9PnNob3VsZEFsbG93SW1wb3J0aW5nVHNFeHRlbnNpb24sc2hvdWxkUHJlc2VydmVDb25zdEVudW1zOigpPT5fTSxzaG91bGRSZXNvbHZlSnNSZXF1aXJlOigpPT5hTSxzaG91bGRVc2VVcmlTdHlsZU5vZGVDb3JlTW9kdWxlczooKT0+c2hvdWxkVXNlVXJpU3R5bGVOb2RlQ29yZU1vZHVsZXMsc2hvd01vZHVsZVNwZWNpZmllcjooKT0+UE8sc2lnbmF0dXJlSGFzTGl0ZXJhbFR5cGVzOigpPT5zaWduYXR1cmVIYXNMaXRlcmFsVHlwZXMsc2lnbmF0dXJlSGFzUmVzdFBhcmFtZXRlcjooKT0+c2lnbmF0dXJlSGFzUmVzdFBhcmFtZXRlcixzaWduYXR1cmVUb0Rpc3BsYXlQYXJ0czooKT0+c2lnbmF0dXJlVG9EaXNwbGF5UGFydHMsc2luZ2xlOigpPT5oQyxzaW5nbGVFbGVtZW50QXJyYXk6KCk9PiRmLHNpbmdsZUl0ZXJhdG9yOigpPT5ZNSxzaW5nbGVPck1hbnk6KCk9PnlDLHNpbmdsZU9yVW5kZWZpbmVkOigpPT5MZCxza2lwQWxpYXM6KCk9PnZPLHNraXBBc3NlcnRpb25zOigpPT5NUixza2lwQ29uc3RyYWludDooKT0+c2tpcENvbnN0cmFpbnQsc2tpcE91dGVyRXhwcmVzc2lvbnM6KCk9PmxzLHNraXBQYXJlbnRoZXNlczooKT0+R2wsc2tpcFBhcnRpYWxseUVtaXR0ZWRFeHByZXNzaW9uczooKT0+dG0sc2tpcFRyaXZpYTooKT0+TnQsc2tpcFR5cGVDaGVja2luZzooKT0+V00sc2tpcFR5cGVQYXJlbnRoZXNlczooKT0+UEksc2tpcFdoaWxlOigpPT5sRSxzbGljZUFmdGVyOigpPT5CTSxzb21lOigpPT5tdCxzb3J0OigpPT5HZixzb3J0QW5kRGVkdXBsaWNhdGU6KCk9Pnd2LHNvcnRBbmREZWR1cGxpY2F0ZURpYWdub3N0aWNzOigpPT4kRSxzb3VyY2VGaWxlQWZmZWN0aW5nQ29tcGlsZXJPcHRpb25zOigpPT5zb3VyY2VGaWxlQWZmZWN0aW5nQ29tcGlsZXJPcHRpb25zLHNvdXJjZUZpbGVNYXlCZUVtaXR0ZWQ6KCk9PkkwLHNvdXJjZU1hcENvbW1lbnRSZWdFeHA6KCk9PnNvdXJjZU1hcENvbW1lbnRSZWdFeHAsc291cmNlTWFwQ29tbWVudFJlZ0V4cERvbnRDYXJlTGluZVN0YXJ0OigpPT5zb3VyY2VNYXBDb21tZW50UmVnRXhwRG9udENhcmVMaW5lU3RhcnQsc3BhY2VQYXJ0OigpPT5zcGFjZVBhcnQsc3Bhbk1hcDooKT0+SzUsc3ByZWFkQXJyYXlIZWxwZXI6KCk9PnNwcmVhZEFycmF5SGVscGVyLHN0YWJsZVNvcnQ6KCk9PkF2LHN0YXJ0RW5kQ29udGFpbnNSYW5nZTooKT0+c3RhcnRFbmRDb250YWluc1JhbmdlLHN0YXJ0RW5kT3ZlcmxhcHNXaXRoU3RhcnRFbmQ6KCk9PnN0YXJ0RW5kT3ZlcmxhcHNXaXRoU3RhcnRFbmQsc3RhcnRPbk5ld0xpbmU6KCk9PmptLHN0YXJ0VHJhY2luZzooKT0+c3RhcnRUcmFjaW5nLHN0YXJ0c1dpdGg6KCk9PkZyLHN0YXJ0c1dpdGhEaXJlY3Rvcnk6KCk9Pk1FLHN0YXJ0c1dpdGhVbmRlcnNjb3JlOigpPT5zdGFydHNXaXRoVW5kZXJzY29yZSxzdGFydHNXaXRoVXNlU3RyaWN0OigpPT5JOCxzdHJpbmdDb250YWluczooKT0+ZW8sc3RyaW5nQ29udGFpbnNBdDooKT0+c3RyaW5nQ29udGFpbnNBdCxzdHJpbmdUb1Rva2VuOigpPT5SbCxzdHJpcFF1b3RlczooKT0+Y04sc3VwcG9ydGVkRGVjbGFyYXRpb25FeHRlbnNpb25zOigpPT5uNixzdXBwb3J0ZWRKU0V4dGVuc2lvbnM6KCk9PkgwLHN1cHBvcnRlZEpTRXh0ZW5zaW9uc0ZsYXQ6KCk9PnI2LHN1cHBvcnRlZExvY2FsZURpcmVjdG9yaWVzOigpPT5IZyxzdXBwb3J0ZWRUU0V4dGVuc2lvbnM6KCk9PlJvLHN1cHBvcnRlZFRTRXh0ZW5zaW9uc0ZsYXQ6KCk9PnQ2LHN1cHBvcnRlZFRTSW1wbGVtZW50YXRpb25FeHRlbnNpb25zOigpPT5PeCxzdXBwcmVzc0xlYWRpbmdBbmRUcmFpbGluZ1RyaXZpYTooKT0+c3VwcHJlc3NMZWFkaW5nQW5kVHJhaWxpbmdUcml2aWEsc3VwcHJlc3NMZWFkaW5nVHJpdmlhOigpPT5zdXBwcmVzc0xlYWRpbmdUcml2aWEsc3VwcHJlc3NUcmFpbGluZ1RyaXZpYTooKT0+c3VwcHJlc3NUcmFpbGluZ1RyaXZpYSxzeW1ib2xFc2NhcGVkTmFtZU5vRGVmYXVsdDooKT0+c3ltYm9sRXNjYXBlZE5hbWVOb0RlZmF1bHQsc3ltYm9sTmFtZTooKT0+bWQsc3ltYm9sTmFtZU5vRGVmYXVsdDooKT0+c3ltYm9sTmFtZU5vRGVmYXVsdCxzeW1ib2xQYXJ0OigpPT5zeW1ib2xQYXJ0LHN5bWJvbFRvRGlzcGxheVBhcnRzOigpPT5zeW1ib2xUb0Rpc3BsYXlQYXJ0cyxzeW50YXhNYXlCZUFTSUNhbmRpZGF0ZTooKT0+c3ludGF4TWF5QmVBU0lDYW5kaWRhdGUsc3ludGF4UmVxdWlyZXNUcmFpbGluZ1NlbWljb2xvbk9yQVNJOigpPT5zeW50YXhSZXF1aXJlc1RyYWlsaW5nU2VtaWNvbG9uT3JBU0ksc3lzOigpPT5mMCxzeXNMb2c6KCk9PnN5c0xvZyx0YWdOYW1lc0FyZUVxdWl2YWxlbnQ6KCk9PlRpLHRha2VXaGlsZTooKT0+Y0UsdGFyZ2V0T3B0aW9uRGVjbGFyYXRpb246KCk9PnRhcmdldE9wdGlvbkRlY2xhcmF0aW9uLHRlbXBsYXRlT2JqZWN0SGVscGVyOigpPT50ZW1wbGF0ZU9iamVjdEhlbHBlcix0ZXN0Rm9ybWF0U2V0dGluZ3M6KCk9PnRlc3RGb3JtYXRTZXR0aW5ncyx0ZXh0Q2hhbmdlUmFuZ2VJc1VuY2hhbmdlZDooKT0+QzQsdGV4dENoYW5nZVJhbmdlTmV3U3BhbjooKT0+UXMsdGV4dENoYW5nZXM6KCk9PnRzX3RleHRDaGFuZ2VzX2V4cG9ydHMsdGV4dE9yS2V5d29yZFBhcnQ6KCk9PnRleHRPcktleXdvcmRQYXJ0LHRleHRQYXJ0OigpPT50ZXh0UGFydCx0ZXh0UmFuZ2VDb250YWluc1Bvc2l0aW9uSW5jbHVzaXZlOigpPT5ZRSx0ZXh0U3BhbkNvbnRhaW5zUG9zaXRpb246KCk9PlFFLHRleHRTcGFuQ29udGFpbnNUZXh0U3BhbjooKT0+S0UsdGV4dFNwYW5FbmQ6KCk9Pkt0LHRleHRTcGFuSW50ZXJzZWN0aW9uOigpPT53NCx0ZXh0U3BhbkludGVyc2VjdHNXaXRoOigpPT50QSx0ZXh0U3BhbkludGVyc2VjdHNXaXRoUG9zaXRpb246KCk9PnJBLHRleHRTcGFuSW50ZXJzZWN0c1dpdGhUZXh0U3BhbjooKT0+ZUEsdGV4dFNwYW5Jc0VtcHR5OigpPT5TNCx0ZXh0U3Bhbk92ZXJsYXA6KCk9Png0LHRleHRTcGFuT3ZlcmxhcHNXaXRoOigpPT5aRSx0ZXh0U3BhbnNFcXVhbDooKT0+dGV4dFNwYW5zRXF1YWwsdGV4dFRvS2V5d29yZE9iajooKT0+Y2wsdGltZXN0YW1wOigpPT5TYSx0b0FycmF5OigpPT5QZix0b0J1aWxkZXJGaWxlRW1pdDooKT0+dG9CdWlsZGVyRmlsZUVtaXQsdG9CdWlsZGVyU3RhdGVGaWxlSW5mb0Zvck11bHRpRW1pdDooKT0+dG9CdWlsZGVyU3RhdGVGaWxlSW5mb0Zvck11bHRpRW1pdCx0b0VkaXRvclNldHRpbmdzOigpPT5zbCx0b0ZpbGVOYW1lTG93ZXJDYXNlOigpPT5Pdix0b0xvd2VyQ2FzZTooKT0+TnYsdG9QYXRoOigpPT54aSx0b1Byb2dyYW1FbWl0UGVuZGluZzooKT0+dG9Qcm9ncmFtRW1pdFBlbmRpbmcsdG9rZW5Jc0lkZW50aWZpZXJPcktleXdvcmQ6KCk9Pmt0LHRva2VuSXNJZGVudGlmaWVyT3JLZXl3b3JkT3JHcmVhdGVyVGhhbjooKT0+bjQsdG9rZW5Ub1N0cmluZzooKT0+bnIsdHJhY2U6KCk9PnRyYWNlLHRyYWNpbmc6KCk9PnhhLHRyYWNpbmdFbmFibGVkOigpPT50cmFjaW5nRW5hYmxlZCx0cmFuc2Zvcm06KCk9PnRyYW5zZm9ybSx0cmFuc2Zvcm1DbGFzc0ZpZWxkczooKT0+dHJhbnNmb3JtQ2xhc3NGaWVsZHMsdHJhbnNmb3JtRGVjbGFyYXRpb25zOigpPT50cmFuc2Zvcm1EZWNsYXJhdGlvbnMsdHJhbnNmb3JtRUNNQVNjcmlwdE1vZHVsZTooKT0+dHJhbnNmb3JtRUNNQVNjcmlwdE1vZHVsZSx0cmFuc2Zvcm1FUzIwMTU6KCk9PnRyYW5zZm9ybUVTMjAxNSx0cmFuc2Zvcm1FUzIwMTY6KCk9PnRyYW5zZm9ybUVTMjAxNix0cmFuc2Zvcm1FUzIwMTc6KCk9PnRyYW5zZm9ybUVTMjAxNyx0cmFuc2Zvcm1FUzIwMTg6KCk9PnRyYW5zZm9ybUVTMjAxOCx0cmFuc2Zvcm1FUzIwMTk6KCk9PnRyYW5zZm9ybUVTMjAxOSx0cmFuc2Zvcm1FUzIwMjA6KCk9PnRyYW5zZm9ybUVTMjAyMCx0cmFuc2Zvcm1FUzIwMjE6KCk9PnRyYW5zZm9ybUVTMjAyMSx0cmFuc2Zvcm1FUzU6KCk9PnRyYW5zZm9ybUVTNSx0cmFuc2Zvcm1FU0RlY29yYXRvcnM6KCk9PnRyYW5zZm9ybUVTRGVjb3JhdG9ycyx0cmFuc2Zvcm1FU05leHQ6KCk9PnRyYW5zZm9ybUVTTmV4dCx0cmFuc2Zvcm1HZW5lcmF0b3JzOigpPT50cmFuc2Zvcm1HZW5lcmF0b3JzLHRyYW5zZm9ybUpzeDooKT0+dHJhbnNmb3JtSnN4LHRyYW5zZm9ybUxlZ2FjeURlY29yYXRvcnM6KCk9PnRyYW5zZm9ybUxlZ2FjeURlY29yYXRvcnMsdHJhbnNmb3JtTW9kdWxlOigpPT50cmFuc2Zvcm1Nb2R1bGUsdHJhbnNmb3JtTmFtZWRFdmFsdWF0aW9uOigpPT50cmFuc2Zvcm1OYW1lZEV2YWx1YXRpb24sdHJhbnNmb3JtTm9kZU1vZHVsZTooKT0+dHJhbnNmb3JtTm9kZU1vZHVsZSx0cmFuc2Zvcm1Ob2RlczooKT0+dHJhbnNmb3JtTm9kZXMsdHJhbnNmb3JtU3lzdGVtTW9kdWxlOigpPT50cmFuc2Zvcm1TeXN0ZW1Nb2R1bGUsdHJhbnNmb3JtVHlwZVNjcmlwdDooKT0+dHJhbnNmb3JtVHlwZVNjcmlwdCx0cmFuc3BpbGU6KCk9PnRyYW5zcGlsZSx0cmFuc3BpbGVNb2R1bGU6KCk9PnRyYW5zcGlsZU1vZHVsZSx0cmFuc3BpbGVPcHRpb25WYWx1ZUNvbXBpbGVyT3B0aW9uczooKT0+dHJhbnNwaWxlT3B0aW9uVmFsdWVDb21waWxlck9wdGlvbnMsdHJpbVN0cmluZzooKT0+VWQsdHJpbVN0cmluZ0VuZDooKT0+bl8sdHJpbVN0cmluZ1N0YXJ0OigpPT5nbCx0cnlBZGRUb1NldDooKT0+UTUsdHJ5QW5kSWdub3JlRXJyb3JzOigpPT50cnlBbmRJZ25vcmVFcnJvcnMsdHJ5Q2FzdDooKT0+T24sdHJ5RGlyZWN0b3J5RXhpc3RzOigpPT50cnlEaXJlY3RvcnlFeGlzdHMsdHJ5RXh0cmFjdFRTRXh0ZW5zaW9uOigpPT4kTix0cnlGaWxlRXhpc3RzOigpPT50cnlGaWxlRXhpc3RzLHRyeUdldENsYXNzRXh0ZW5kaW5nRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzOigpPT5kUyx0cnlHZXRDbGFzc0ltcGxlbWVudGluZ09yRXh0ZW5kaW5nRXhwcmVzc2lvbldpdGhUeXBlQXJndW1lbnRzOigpPT5tUyx0cnlHZXREaXJlY3RvcmllczooKT0+dHJ5R2V0RGlyZWN0b3JpZXMsdHJ5R2V0RXh0ZW5zaW9uRnJvbVBhdGg6KCk9PlgyLHRyeUdldEltcG9ydEZyb21Nb2R1bGVTcGVjaWZpZXI6KCk9PmZULHRyeUdldEpTRG9jU2F0aXNmaWVzVHlwZU5vZGU6KCk9PnV4LHRyeUdldE1vZHVsZU5hbWVGcm9tRmlsZTooKT0+TDgsdHJ5R2V0TW9kdWxlU3BlY2lmaWVyRnJvbURlY2xhcmF0aW9uOigpPT5mSSx0cnlHZXROYXRpdmVQZXJmb3JtYW5jZUhvb2tzOigpPT5oRSx0cnlHZXRQcm9wZXJ0eUFjY2Vzc09ySWRlbnRpZmllclRvU3RyaW5nOigpPT5KMCx0cnlHZXRQcm9wZXJ0eU5hbWVPZkJpbmRpbmdPckFzc2lnbm1lbnRFbGVtZW50OigpPT5SOCx0cnlHZXRTb3VyY2VNYXBwaW5nVVJMOigpPT50cnlHZXRTb3VyY2VNYXBwaW5nVVJMLHRyeUdldFRleHRPZlByb3BlcnR5TmFtZTooKT0+UWcsdHJ5SU9BbmRDb25zdW1lRXJyb3JzOigpPT50cnlJT0FuZENvbnN1bWVFcnJvcnMsdHJ5UGFyc2VQYXR0ZXJuOigpPT5ZUyx0cnlQYXJzZVBhdHRlcm5zOigpPT5MTSx0cnlQYXJzZVJhd1NvdXJjZU1hcDooKT0+dHJ5UGFyc2VSYXdTb3VyY2VNYXAsdHJ5UmVhZERpcmVjdG9yeTooKT0+dHJ5UmVhZERpcmVjdG9yeSx0cnlSZWFkRmlsZTooKT0+dHJ5UmVhZEZpbGUsdHJ5UmVtb3ZlRGlyZWN0b3J5UHJlZml4OigpPT5TTSx0cnlSZW1vdmVFeHRlbnNpb246KCk9PiRTLHRyeVJlbW92ZVByZWZpeDooKT0+QnYsdHJ5UmVtb3ZlU3VmZml4OigpPT5RQyx0eXBlQWNxdWlzaXRpb25EZWNsYXJhdGlvbnM6KCk9PnR5cGVBY3F1aXNpdGlvbkRlY2xhcmF0aW9ucyx0eXBlQWxpYXNOYW1lUGFydDooKT0+dHlwZUFsaWFzTmFtZVBhcnQsdHlwZURpcmVjdGl2ZUlzRXF1YWxUbzooKT0+aUQsdHlwZUtleXdvcmRzOigpPT50eXBlS2V5d29yZHMsdHlwZVBhcmFtZXRlck5hbWVQYXJ0OigpPT50eXBlUGFyYW1ldGVyTmFtZVBhcnQsdHlwZVJlZmVyZW5jZVJlc29sdXRpb25OYW1lQW5kTW9kZUdldHRlcjooKT0+dHlwZVJlZmVyZW5jZVJlc29sdXRpb25OYW1lQW5kTW9kZUdldHRlcix0eXBlVG9EaXNwbGF5UGFydHM6KCk9PnR5cGVUb0Rpc3BsYXlQYXJ0cyx1bmNoYW5nZWRQb2xsVGhyZXNob2xkczooKT0+dW5jaGFuZ2VkUG9sbFRocmVzaG9sZHMsdW5jaGFuZ2VkVGV4dENoYW5nZVJhbmdlOigpPT5WZyx1bmVzY2FwZUxlYWRpbmdVbmRlcnNjb3JlczooKT0+Vm8sdW5tYW5nbGVTY29wZWRQYWNrYWdlTmFtZTooKT0+dW5tYW5nbGVTY29wZWRQYWNrYWdlTmFtZSx1bm9yZGVyZWRSZW1vdmVJdGVtOigpPT5qdix1bm9yZGVyZWRSZW1vdmVJdGVtQXQ6KCk9PmNnLHVucmVhY2hhYmxlQ29kZUlzRXJyb3I6KCk9PnRNLHVudXNlZExhYmVsSXNFcnJvcjooKT0+ck0sdW53cmFwSW5uZXJtb3N0U3RhdGVtZW50T2ZMYWJlbDooKT0+YlAsdXBkYXRlRXJyb3JGb3JOb0lucHV0RmlsZXM6KCk9PnVwZGF0ZUVycm9yRm9yTm9JbnB1dEZpbGVzLHVwZGF0ZUxhbmd1YWdlU2VydmljZVNvdXJjZUZpbGU6KCk9PnU3LHVwZGF0ZU1pc3NpbmdGaWxlUGF0aHNXYXRjaDooKT0+dXBkYXRlTWlzc2luZ0ZpbGVQYXRoc1dhdGNoLHVwZGF0ZVBhY2thZ2VKc29uV2F0Y2g6KCk9PnVwZGF0ZVBhY2thZ2VKc29uV2F0Y2gsdXBkYXRlUmVzb2x1dGlvbkZpZWxkOigpPT51cGRhdGVSZXNvbHV0aW9uRmllbGQsdXBkYXRlU2hhcmVkRXh0ZW5kZWRDb25maWdGaWxlV2F0Y2hlcjooKT0+dXBkYXRlU2hhcmVkRXh0ZW5kZWRDb25maWdGaWxlV2F0Y2hlcix1cGRhdGVTb3VyY2VGaWxlOigpPT5xNix1cGRhdGVXYXRjaGluZ1dpbGRjYXJkRGlyZWN0b3JpZXM6KCk9PnVwZGF0ZVdhdGNoaW5nV2lsZGNhcmREaXJlY3Rvcmllcyx1c2VzRXh0ZW5zaW9uc09uSW1wb3J0czooKT0+WFMsdXNpbmdTaW5nbGVMaW5lU3RyaW5nV3JpdGVyOigpPT5Yayx1dGYxNkVuY29kZUFzU3RyaW5nOigpPT5OZix2YWxpZGF0ZUxvY2FsZUFuZFNldExhbmd1YWdlOigpPT5zQSx2YWx1ZXNIZWxwZXI6KCk9PnZhbHVlc0hlbHBlcix2ZXJzaW9uOigpPT5IZix2ZXJzaW9uTWFqb3JNaW5vcjooKT0+Z3YsdmlzaXRBcnJheTooKT0+dmlzaXRBcnJheSx2aXNpdENvbW1hTGlzdEVsZW1lbnRzOigpPT52aXNpdENvbW1hTGlzdEVsZW1lbnRzLHZpc2l0RWFjaENoaWxkOigpPT52aXNpdEVhY2hDaGlsZCx2aXNpdEZ1bmN0aW9uQm9keTooKT0+dmlzaXRGdW5jdGlvbkJvZHksdmlzaXRJdGVyYXRpb25Cb2R5OigpPT52aXNpdEl0ZXJhdGlvbkJvZHksdmlzaXRMZXhpY2FsRW52aXJvbm1lbnQ6KCk9PnZpc2l0TGV4aWNhbEVudmlyb25tZW50LHZpc2l0Tm9kZTooKT0+dmlzaXROb2RlLHZpc2l0Tm9kZXM6KCk9PnZpc2l0Tm9kZXMyLHZpc2l0UGFyYW1ldGVyTGlzdDooKT0+dmlzaXRQYXJhbWV0ZXJMaXN0LHdhbGtVcEJpbmRpbmdFbGVtZW50c0FuZFBhdHRlcm5zOigpPT5ENCx3YWxrVXBMZXhpY2FsRW52aXJvbm1lbnRzOigpPT53YWxrVXBMZXhpY2FsRW52aXJvbm1lbnRzLHdhbGtVcE91dGVyRXhwcmVzc2lvbnM6KCk9Pk9SLHdhbGtVcFBhcmVudGhlc2l6ZWRFeHByZXNzaW9uczooKT0+eFQsd2Fsa1VwUGFyZW50aGVzaXplZFR5cGVzOigpPT5rSSx3YWxrVXBQYXJlbnRoZXNpemVkVHlwZXNBbmRHZXRQYXJlbnRBbmRDaGlsZDooKT0+REksd2hpdGVzcGFjZU9yTWFwQ29tbWVudFJlZ0V4cDooKT0+d2hpdGVzcGFjZU9yTWFwQ29tbWVudFJlZ0V4cCx3cml0ZUNvbW1lbnRSYW5nZTooKT0+Tk4sd3JpdGVGaWxlOigpPT52Tix3cml0ZUZpbGVFbnN1cmluZ0RpcmVjdG9yaWVzOigpPT5UTix6aXBUb01vZGVBd2FyZUNhY2hlOigpPT56aXBUb01vZGVBd2FyZUNhY2hlLHppcFdpdGg6KCk9PmV5fSk7dmFyIGh2PVZ0KHtcInNyYy90eXBlc2NyaXB0L19uYW1lc3BhY2VzL3RzLnRzXCIoKXtcInVzZSBzdHJpY3RcIjtEcigpLFo4KCksQzcoKSxrQigpfX0pLERCPUk1KHtcInNyYy90eXBlc2NyaXB0L3R5cGVzY3JpcHQudHNcIihlLHQpe2h2KCksaHYoKSx0eXBlb2YgY29uc29sZTxcInVcIiYmKE4ubG9nZ2luZ0hvc3Q9e2xvZyhyLGEpe3N3aXRjaChyKXtjYXNlIDE6cmV0dXJuIGNvbnNvbGUuZXJyb3IoYSk7Y2FzZSAyOnJldHVybiBjb25zb2xlLndhcm4oYSk7Y2FzZSAzOnJldHVybiBjb25zb2xlLmxvZyhhKTtjYXNlIDQ6cmV0dXJuIGNvbnNvbGUubG9nKGEpfX19KSx0LmV4cG9ydHM9RTd9fSk7QTcuZXhwb3J0cz1EQigpfSk7dmFyIFY2PXV0KGs3PT57azcudHlwZXNjcmlwdFZlcnNpb25Jc0F0TGVhc3Q9bmV3IFByb3h5KHt9LHtnZXQ6KCk9PiEwfSl9KTt2YXIgSDY9dXQoYWk9PntcInVzZSBzdHJpY3RcIjt2YXIgUEI9YWkmJmFpLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksSUI9YWkmJmFpLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxOQj1haSYmYWkuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZQQih0LGUscik7cmV0dXJuIElCKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGFpLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2FpLmdldERlY29yYXRvcnM9YWkuZ2V0TW9kaWZpZXJzPXZvaWQgMDt2YXIgV189TkIoRHQoKSksT0I9VjYoKSxENz1PQi50eXBlc2NyaXB0VmVyc2lvbklzQXRMZWFzdFtcIjQuOFwiXTtmdW5jdGlvbiBNQihlLHQ9ITEpe3ZhciByO2lmKGUhPW51bGwpe2lmKEQ3KXtpZih0fHxXXy5jYW5IYXZlTW9kaWZpZXJzKGUpKXtsZXQgYT1XXy5nZXRNb2RpZmllcnMoZSk7cmV0dXJuIGE/QXJyYXkuZnJvbShhKTp2b2lkIDB9cmV0dXJufXJldHVybihyPWUubW9kaWZpZXJzKT09bnVsbD92b2lkIDA6ci5maWx0ZXIoYT0+IVdfLmlzRGVjb3JhdG9yKGEpKX19YWkuZ2V0TW9kaWZpZXJzPU1CO2Z1bmN0aW9uIExCKGUsdD0hMSl7dmFyIHI7aWYoZSE9bnVsbCl7aWYoRDcpe2lmKHR8fFdfLmNhbkhhdmVEZWNvcmF0b3JzKGUpKXtsZXQgYT1XXy5nZXREZWNvcmF0b3JzKGUpO3JldHVybiBhP0FycmF5LmZyb20oYSk6dm9pZCAwfXJldHVybn1yZXR1cm4ocj1lLmRlY29yYXRvcnMpPT1udWxsP3ZvaWQgMDpyLmZpbHRlcihXXy5pc0RlY29yYXRvcil9fWFpLmdldERlY29yYXRvcnM9TEJ9KTt2YXIgUDc9dXQoRm09PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoRm0sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Rm0ueGh0bWxFbnRpdGllcz12b2lkIDA7Rm0ueGh0bWxFbnRpdGllcz17cXVvdDonXCInLGFtcDpcIiZcIixhcG9zOlwiJ1wiLGx0OlwiPFwiLGd0OlwiPlwiLG5ic3A6XCJcXHhBMFwiLGlleGNsOlwiXFx4QTFcIixjZW50OlwiXFx4QTJcIixwb3VuZDpcIlxceEEzXCIsY3VycmVuOlwiXFx4QTRcIix5ZW46XCJcXHhBNVwiLGJydmJhcjpcIlxceEE2XCIsc2VjdDpcIlxceEE3XCIsdW1sOlwiXFx4QThcIixjb3B5OlwiXFx4QTlcIixvcmRmOlwiXFx4QUFcIixsYXF1bzpcIlxceEFCXCIsbm90OlwiXFx4QUNcIixzaHk6XCJcXHhBRFwiLHJlZzpcIlxceEFFXCIsbWFjcjpcIlxceEFGXCIsZGVnOlwiXFx4QjBcIixwbHVzbW46XCJcXHhCMVwiLHN1cDI6XCJcXHhCMlwiLHN1cDM6XCJcXHhCM1wiLGFjdXRlOlwiXFx4QjRcIixtaWNybzpcIlxceEI1XCIscGFyYTpcIlxceEI2XCIsbWlkZG90OlwiXFx4QjdcIixjZWRpbDpcIlxceEI4XCIsc3VwMTpcIlxceEI5XCIsb3JkbTpcIlxceEJBXCIscmFxdW86XCJcXHhCQlwiLGZyYWMxNDpcIlxceEJDXCIsZnJhYzEyOlwiXFx4QkRcIixmcmFjMzQ6XCJcXHhCRVwiLGlxdWVzdDpcIlxceEJGXCIsQWdyYXZlOlwiXFx4QzBcIixBYWN1dGU6XCJcXHhDMVwiLEFjaXJjOlwiXFx4QzJcIixBdGlsZGU6XCJcXHhDM1wiLEF1bWw6XCJcXHhDNFwiLEFyaW5nOlwiXFx4QzVcIixBRWxpZzpcIlxceEM2XCIsQ2NlZGlsOlwiXFx4QzdcIixFZ3JhdmU6XCJcXHhDOFwiLEVhY3V0ZTpcIlxceEM5XCIsRWNpcmM6XCJcXHhDQVwiLEV1bWw6XCJcXHhDQlwiLElncmF2ZTpcIlxceENDXCIsSWFjdXRlOlwiXFx4Q0RcIixJY2lyYzpcIlxceENFXCIsSXVtbDpcIlxceENGXCIsRVRIOlwiXFx4RDBcIixOdGlsZGU6XCJcXHhEMVwiLE9ncmF2ZTpcIlxceEQyXCIsT2FjdXRlOlwiXFx4RDNcIixPY2lyYzpcIlxceEQ0XCIsT3RpbGRlOlwiXFx4RDVcIixPdW1sOlwiXFx4RDZcIix0aW1lczpcIlxceEQ3XCIsT3NsYXNoOlwiXFx4RDhcIixVZ3JhdmU6XCJcXHhEOVwiLFVhY3V0ZTpcIlxceERBXCIsVWNpcmM6XCJcXHhEQlwiLFV1bWw6XCJcXHhEQ1wiLFlhY3V0ZTpcIlxceEREXCIsVEhPUk46XCJcXHhERVwiLHN6bGlnOlwiXFx4REZcIixhZ3JhdmU6XCJcXHhFMFwiLGFhY3V0ZTpcIlxceEUxXCIsYWNpcmM6XCJcXHhFMlwiLGF0aWxkZTpcIlxceEUzXCIsYXVtbDpcIlxceEU0XCIsYXJpbmc6XCJcXHhFNVwiLGFlbGlnOlwiXFx4RTZcIixjY2VkaWw6XCJcXHhFN1wiLGVncmF2ZTpcIlxceEU4XCIsZWFjdXRlOlwiXFx4RTlcIixlY2lyYzpcIlxceEVBXCIsZXVtbDpcIlxceEVCXCIsaWdyYXZlOlwiXFx4RUNcIixpYWN1dGU6XCJcXHhFRFwiLGljaXJjOlwiXFx4RUVcIixpdW1sOlwiXFx4RUZcIixldGg6XCJcXHhGMFwiLG50aWxkZTpcIlxceEYxXCIsb2dyYXZlOlwiXFx4RjJcIixvYWN1dGU6XCJcXHhGM1wiLG9jaXJjOlwiXFx4RjRcIixvdGlsZGU6XCJcXHhGNVwiLG91bWw6XCJcXHhGNlwiLGRpdmlkZTpcIlxceEY3XCIsb3NsYXNoOlwiXFx4RjhcIix1Z3JhdmU6XCJcXHhGOVwiLHVhY3V0ZTpcIlxceEZBXCIsdWNpcmM6XCJcXHhGQlwiLHV1bWw6XCJcXHhGQ1wiLHlhY3V0ZTpcIlxceEZEXCIsdGhvcm46XCJcXHhGRVwiLHl1bWw6XCJcXHhGRlwiLE9FbGlnOlwiXFx1MDE1MlwiLG9lbGlnOlwiXFx1MDE1M1wiLFNjYXJvbjpcIlxcdTAxNjBcIixzY2Fyb246XCJcXHUwMTYxXCIsWXVtbDpcIlxcdTAxNzhcIixmbm9mOlwiXFx1MDE5MlwiLGNpcmM6XCJcXHUwMkM2XCIsdGlsZGU6XCJcXHUwMkRDXCIsQWxwaGE6XCJcXHUwMzkxXCIsQmV0YTpcIlxcdTAzOTJcIixHYW1tYTpcIlxcdTAzOTNcIixEZWx0YTpcIlxcdTAzOTRcIixFcHNpbG9uOlwiXFx1MDM5NVwiLFpldGE6XCJcXHUwMzk2XCIsRXRhOlwiXFx1MDM5N1wiLFRoZXRhOlwiXFx1MDM5OFwiLElvdGE6XCJcXHUwMzk5XCIsS2FwcGE6XCJcXHUwMzlBXCIsTGFtYmRhOlwiXFx1MDM5QlwiLE11OlwiXFx1MDM5Q1wiLE51OlwiXFx1MDM5RFwiLFhpOlwiXFx1MDM5RVwiLE9taWNyb246XCJcXHUwMzlGXCIsUGk6XCJcXHUwM0EwXCIsUmhvOlwiXFx1MDNBMVwiLFNpZ21hOlwiXFx1MDNBM1wiLFRhdTpcIlxcdTAzQTRcIixVcHNpbG9uOlwiXFx1MDNBNVwiLFBoaTpcIlxcdTAzQTZcIixDaGk6XCJcXHUwM0E3XCIsUHNpOlwiXFx1MDNBOFwiLE9tZWdhOlwiXFx1MDNBOVwiLGFscGhhOlwiXFx1MDNCMVwiLGJldGE6XCJcXHUwM0IyXCIsZ2FtbWE6XCJcXHUwM0IzXCIsZGVsdGE6XCJcXHUwM0I0XCIsZXBzaWxvbjpcIlxcdTAzQjVcIix6ZXRhOlwiXFx1MDNCNlwiLGV0YTpcIlxcdTAzQjdcIix0aGV0YTpcIlxcdTAzQjhcIixpb3RhOlwiXFx1MDNCOVwiLGthcHBhOlwiXFx1MDNCQVwiLGxhbWJkYTpcIlxcdTAzQkJcIixtdTpcIlxcdTAzQkNcIixudTpcIlxcdTAzQkRcIix4aTpcIlxcdTAzQkVcIixvbWljcm9uOlwiXFx1MDNCRlwiLHBpOlwiXFx1MDNDMFwiLHJobzpcIlxcdTAzQzFcIixzaWdtYWY6XCJcXHUwM0MyXCIsc2lnbWE6XCJcXHUwM0MzXCIsdGF1OlwiXFx1MDNDNFwiLHVwc2lsb246XCJcXHUwM0M1XCIscGhpOlwiXFx1MDNDNlwiLGNoaTpcIlxcdTAzQzdcIixwc2k6XCJcXHUwM0M4XCIsb21lZ2E6XCJcXHUwM0M5XCIsdGhldGFzeW06XCJcXHUwM0QxXCIsdXBzaWg6XCJcXHUwM0QyXCIscGl2OlwiXFx1MDNENlwiLGVuc3A6XCJcXHUyMDAyXCIsZW1zcDpcIlxcdTIwMDNcIix0aGluc3A6XCJcXHUyMDA5XCIsenduajpcIlxcdTIwMENcIix6d2o6XCJcXHUyMDBEXCIsbHJtOlwiXFx1MjAwRVwiLHJsbTpcIlxcdTIwMEZcIixuZGFzaDpcIlxcdTIwMTNcIixtZGFzaDpcIlxcdTIwMTRcIixsc3F1bzpcIlxcdTIwMThcIixyc3F1bzpcIlxcdTIwMTlcIixzYnF1bzpcIlxcdTIwMUFcIixsZHF1bzpcIlxcdTIwMUNcIixyZHF1bzpcIlxcdTIwMURcIixiZHF1bzpcIlxcdTIwMUVcIixkYWdnZXI6XCJcXHUyMDIwXCIsRGFnZ2VyOlwiXFx1MjAyMVwiLGJ1bGw6XCJcXHUyMDIyXCIsaGVsbGlwOlwiXFx1MjAyNlwiLHBlcm1pbDpcIlxcdTIwMzBcIixwcmltZTpcIlxcdTIwMzJcIixQcmltZTpcIlxcdTIwMzNcIixsc2FxdW86XCJcXHUyMDM5XCIscnNhcXVvOlwiXFx1MjAzQVwiLG9saW5lOlwiXFx1MjAzRVwiLGZyYXNsOlwiXFx1MjA0NFwiLGV1cm86XCJcXHUyMEFDXCIsaW1hZ2U6XCJcXHUyMTExXCIsd2VpZXJwOlwiXFx1MjExOFwiLHJlYWw6XCJcXHUyMTFDXCIsdHJhZGU6XCJcXHUyMTIyXCIsYWxlZnN5bTpcIlxcdTIxMzVcIixsYXJyOlwiXFx1MjE5MFwiLHVhcnI6XCJcXHUyMTkxXCIscmFycjpcIlxcdTIxOTJcIixkYXJyOlwiXFx1MjE5M1wiLGhhcnI6XCJcXHUyMTk0XCIsY3JhcnI6XCJcXHUyMUI1XCIsbEFycjpcIlxcdTIxRDBcIix1QXJyOlwiXFx1MjFEMVwiLHJBcnI6XCJcXHUyMUQyXCIsZEFycjpcIlxcdTIxRDNcIixoQXJyOlwiXFx1MjFENFwiLGZvcmFsbDpcIlxcdTIyMDBcIixwYXJ0OlwiXFx1MjIwMlwiLGV4aXN0OlwiXFx1MjIwM1wiLGVtcHR5OlwiXFx1MjIwNVwiLG5hYmxhOlwiXFx1MjIwN1wiLGlzaW46XCJcXHUyMjA4XCIsbm90aW46XCJcXHUyMjA5XCIsbmk6XCJcXHUyMjBCXCIscHJvZDpcIlxcdTIyMEZcIixzdW06XCJcXHUyMjExXCIsbWludXM6XCJcXHUyMjEyXCIsbG93YXN0OlwiXFx1MjIxN1wiLHJhZGljOlwiXFx1MjIxQVwiLHByb3A6XCJcXHUyMjFEXCIsaW5maW46XCJcXHUyMjFFXCIsYW5nOlwiXFx1MjIyMFwiLGFuZDpcIlxcdTIyMjdcIixvcjpcIlxcdTIyMjhcIixjYXA6XCJcXHUyMjI5XCIsY3VwOlwiXFx1MjIyQVwiLGludDpcIlxcdTIyMkJcIix0aGVyZTQ6XCJcXHUyMjM0XCIsc2ltOlwiXFx1MjIzQ1wiLGNvbmc6XCJcXHUyMjQ1XCIsYXN5bXA6XCJcXHUyMjQ4XCIsbmU6XCJcXHUyMjYwXCIsZXF1aXY6XCJcXHUyMjYxXCIsbGU6XCJcXHUyMjY0XCIsZ2U6XCJcXHUyMjY1XCIsc3ViOlwiXFx1MjI4MlwiLHN1cDpcIlxcdTIyODNcIixuc3ViOlwiXFx1MjI4NFwiLHN1YmU6XCJcXHUyMjg2XCIsc3VwZTpcIlxcdTIyODdcIixvcGx1czpcIlxcdTIyOTVcIixvdGltZXM6XCJcXHUyMjk3XCIscGVycDpcIlxcdTIyQTVcIixzZG90OlwiXFx1MjJDNVwiLGxjZWlsOlwiXFx1MjMwOFwiLHJjZWlsOlwiXFx1MjMwOVwiLGxmbG9vcjpcIlxcdTIzMEFcIixyZmxvb3I6XCJcXHUyMzBCXCIsbGFuZzpcIlxcdTIzMjlcIixyYW5nOlwiXFx1MjMyQVwiLGxvejpcIlxcdTI1Q0FcIixzcGFkZXM6XCJcXHUyNjYwXCIsY2x1YnM6XCJcXHUyNjYzXCIsaGVhcnRzOlwiXFx1MjY2NVwiLGRpYW1zOlwiXFx1MjY2NlwifX0pO3ZhciBHNj11dChWXz0+e1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShWXyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtWXy5BU1RfVE9LRU5fVFlQRVM9Vl8uQVNUX05PREVfVFlQRVM9dm9pZCAwO3ZhciBJNzsoZnVuY3Rpb24oZSl7ZS5BY2Nlc3NvclByb3BlcnR5PVwiQWNjZXNzb3JQcm9wZXJ0eVwiLGUuQXJyYXlFeHByZXNzaW9uPVwiQXJyYXlFeHByZXNzaW9uXCIsZS5BcnJheVBhdHRlcm49XCJBcnJheVBhdHRlcm5cIixlLkFycm93RnVuY3Rpb25FeHByZXNzaW9uPVwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb25cIixlLkFzc2lnbm1lbnRFeHByZXNzaW9uPVwiQXNzaWdubWVudEV4cHJlc3Npb25cIixlLkFzc2lnbm1lbnRQYXR0ZXJuPVwiQXNzaWdubWVudFBhdHRlcm5cIixlLkF3YWl0RXhwcmVzc2lvbj1cIkF3YWl0RXhwcmVzc2lvblwiLGUuQmluYXJ5RXhwcmVzc2lvbj1cIkJpbmFyeUV4cHJlc3Npb25cIixlLkJsb2NrU3RhdGVtZW50PVwiQmxvY2tTdGF0ZW1lbnRcIixlLkJyZWFrU3RhdGVtZW50PVwiQnJlYWtTdGF0ZW1lbnRcIixlLkNhbGxFeHByZXNzaW9uPVwiQ2FsbEV4cHJlc3Npb25cIixlLkNhdGNoQ2xhdXNlPVwiQ2F0Y2hDbGF1c2VcIixlLkNoYWluRXhwcmVzc2lvbj1cIkNoYWluRXhwcmVzc2lvblwiLGUuQ2xhc3NCb2R5PVwiQ2xhc3NCb2R5XCIsZS5DbGFzc0RlY2xhcmF0aW9uPVwiQ2xhc3NEZWNsYXJhdGlvblwiLGUuQ2xhc3NFeHByZXNzaW9uPVwiQ2xhc3NFeHByZXNzaW9uXCIsZS5Db25kaXRpb25hbEV4cHJlc3Npb249XCJDb25kaXRpb25hbEV4cHJlc3Npb25cIixlLkNvbnRpbnVlU3RhdGVtZW50PVwiQ29udGludWVTdGF0ZW1lbnRcIixlLkRlYnVnZ2VyU3RhdGVtZW50PVwiRGVidWdnZXJTdGF0ZW1lbnRcIixlLkRlY29yYXRvcj1cIkRlY29yYXRvclwiLGUuRG9XaGlsZVN0YXRlbWVudD1cIkRvV2hpbGVTdGF0ZW1lbnRcIixlLkVtcHR5U3RhdGVtZW50PVwiRW1wdHlTdGF0ZW1lbnRcIixlLkV4cG9ydEFsbERlY2xhcmF0aW9uPVwiRXhwb3J0QWxsRGVjbGFyYXRpb25cIixlLkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbj1cIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiLGUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbj1cIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIixlLkV4cG9ydFNwZWNpZmllcj1cIkV4cG9ydFNwZWNpZmllclwiLGUuRXhwcmVzc2lvblN0YXRlbWVudD1cIkV4cHJlc3Npb25TdGF0ZW1lbnRcIixlLkZvckluU3RhdGVtZW50PVwiRm9ySW5TdGF0ZW1lbnRcIixlLkZvck9mU3RhdGVtZW50PVwiRm9yT2ZTdGF0ZW1lbnRcIixlLkZvclN0YXRlbWVudD1cIkZvclN0YXRlbWVudFwiLGUuRnVuY3Rpb25EZWNsYXJhdGlvbj1cIkZ1bmN0aW9uRGVjbGFyYXRpb25cIixlLkZ1bmN0aW9uRXhwcmVzc2lvbj1cIkZ1bmN0aW9uRXhwcmVzc2lvblwiLGUuSWRlbnRpZmllcj1cIklkZW50aWZpZXJcIixlLklmU3RhdGVtZW50PVwiSWZTdGF0ZW1lbnRcIixlLkltcG9ydEF0dHJpYnV0ZT1cIkltcG9ydEF0dHJpYnV0ZVwiLGUuSW1wb3J0RGVjbGFyYXRpb249XCJJbXBvcnREZWNsYXJhdGlvblwiLGUuSW1wb3J0RGVmYXVsdFNwZWNpZmllcj1cIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIixlLkltcG9ydEV4cHJlc3Npb249XCJJbXBvcnRFeHByZXNzaW9uXCIsZS5JbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI9XCJJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXJcIixlLkltcG9ydFNwZWNpZmllcj1cIkltcG9ydFNwZWNpZmllclwiLGUuSlNYQXR0cmlidXRlPVwiSlNYQXR0cmlidXRlXCIsZS5KU1hDbG9zaW5nRWxlbWVudD1cIkpTWENsb3NpbmdFbGVtZW50XCIsZS5KU1hDbG9zaW5nRnJhZ21lbnQ9XCJKU1hDbG9zaW5nRnJhZ21lbnRcIixlLkpTWEVsZW1lbnQ9XCJKU1hFbGVtZW50XCIsZS5KU1hFbXB0eUV4cHJlc3Npb249XCJKU1hFbXB0eUV4cHJlc3Npb25cIixlLkpTWEV4cHJlc3Npb25Db250YWluZXI9XCJKU1hFeHByZXNzaW9uQ29udGFpbmVyXCIsZS5KU1hGcmFnbWVudD1cIkpTWEZyYWdtZW50XCIsZS5KU1hJZGVudGlmaWVyPVwiSlNYSWRlbnRpZmllclwiLGUuSlNYTWVtYmVyRXhwcmVzc2lvbj1cIkpTWE1lbWJlckV4cHJlc3Npb25cIixlLkpTWE5hbWVzcGFjZWROYW1lPVwiSlNYTmFtZXNwYWNlZE5hbWVcIixlLkpTWE9wZW5pbmdFbGVtZW50PVwiSlNYT3BlbmluZ0VsZW1lbnRcIixlLkpTWE9wZW5pbmdGcmFnbWVudD1cIkpTWE9wZW5pbmdGcmFnbWVudFwiLGUuSlNYU3ByZWFkQXR0cmlidXRlPVwiSlNYU3ByZWFkQXR0cmlidXRlXCIsZS5KU1hTcHJlYWRDaGlsZD1cIkpTWFNwcmVhZENoaWxkXCIsZS5KU1hUZXh0PVwiSlNYVGV4dFwiLGUuTGFiZWxlZFN0YXRlbWVudD1cIkxhYmVsZWRTdGF0ZW1lbnRcIixlLkxpdGVyYWw9XCJMaXRlcmFsXCIsZS5Mb2dpY2FsRXhwcmVzc2lvbj1cIkxvZ2ljYWxFeHByZXNzaW9uXCIsZS5NZW1iZXJFeHByZXNzaW9uPVwiTWVtYmVyRXhwcmVzc2lvblwiLGUuTWV0YVByb3BlcnR5PVwiTWV0YVByb3BlcnR5XCIsZS5NZXRob2REZWZpbml0aW9uPVwiTWV0aG9kRGVmaW5pdGlvblwiLGUuTmV3RXhwcmVzc2lvbj1cIk5ld0V4cHJlc3Npb25cIixlLk9iamVjdEV4cHJlc3Npb249XCJPYmplY3RFeHByZXNzaW9uXCIsZS5PYmplY3RQYXR0ZXJuPVwiT2JqZWN0UGF0dGVyblwiLGUuUHJpdmF0ZUlkZW50aWZpZXI9XCJQcml2YXRlSWRlbnRpZmllclwiLGUuUHJvZ3JhbT1cIlByb2dyYW1cIixlLlByb3BlcnR5PVwiUHJvcGVydHlcIixlLlByb3BlcnR5RGVmaW5pdGlvbj1cIlByb3BlcnR5RGVmaW5pdGlvblwiLGUuUmVzdEVsZW1lbnQ9XCJSZXN0RWxlbWVudFwiLGUuUmV0dXJuU3RhdGVtZW50PVwiUmV0dXJuU3RhdGVtZW50XCIsZS5TZXF1ZW5jZUV4cHJlc3Npb249XCJTZXF1ZW5jZUV4cHJlc3Npb25cIixlLlNwcmVhZEVsZW1lbnQ9XCJTcHJlYWRFbGVtZW50XCIsZS5TdGF0aWNCbG9jaz1cIlN0YXRpY0Jsb2NrXCIsZS5TdXBlcj1cIlN1cGVyXCIsZS5Td2l0Y2hDYXNlPVwiU3dpdGNoQ2FzZVwiLGUuU3dpdGNoU3RhdGVtZW50PVwiU3dpdGNoU3RhdGVtZW50XCIsZS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb249XCJUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb25cIixlLlRlbXBsYXRlRWxlbWVudD1cIlRlbXBsYXRlRWxlbWVudFwiLGUuVGVtcGxhdGVMaXRlcmFsPVwiVGVtcGxhdGVMaXRlcmFsXCIsZS5UaGlzRXhwcmVzc2lvbj1cIlRoaXNFeHByZXNzaW9uXCIsZS5UaHJvd1N0YXRlbWVudD1cIlRocm93U3RhdGVtZW50XCIsZS5UcnlTdGF0ZW1lbnQ9XCJUcnlTdGF0ZW1lbnRcIixlLlVuYXJ5RXhwcmVzc2lvbj1cIlVuYXJ5RXhwcmVzc2lvblwiLGUuVXBkYXRlRXhwcmVzc2lvbj1cIlVwZGF0ZUV4cHJlc3Npb25cIixlLlZhcmlhYmxlRGVjbGFyYXRpb249XCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsZS5WYXJpYWJsZURlY2xhcmF0b3I9XCJWYXJpYWJsZURlY2xhcmF0b3JcIixlLldoaWxlU3RhdGVtZW50PVwiV2hpbGVTdGF0ZW1lbnRcIixlLldpdGhTdGF0ZW1lbnQ9XCJXaXRoU3RhdGVtZW50XCIsZS5ZaWVsZEV4cHJlc3Npb249XCJZaWVsZEV4cHJlc3Npb25cIixlLlRTQWJzdHJhY3RBY2Nlc3NvclByb3BlcnR5PVwiVFNBYnN0cmFjdEFjY2Vzc29yUHJvcGVydHlcIixlLlRTQWJzdHJhY3RLZXl3b3JkPVwiVFNBYnN0cmFjdEtleXdvcmRcIixlLlRTQWJzdHJhY3RNZXRob2REZWZpbml0aW9uPVwiVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb25cIixlLlRTQWJzdHJhY3RQcm9wZXJ0eURlZmluaXRpb249XCJUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uXCIsZS5UU0FueUtleXdvcmQ9XCJUU0FueUtleXdvcmRcIixlLlRTQXJyYXlUeXBlPVwiVFNBcnJheVR5cGVcIixlLlRTQXNFeHByZXNzaW9uPVwiVFNBc0V4cHJlc3Npb25cIixlLlRTQXN5bmNLZXl3b3JkPVwiVFNBc3luY0tleXdvcmRcIixlLlRTQmlnSW50S2V5d29yZD1cIlRTQmlnSW50S2V5d29yZFwiLGUuVFNCb29sZWFuS2V5d29yZD1cIlRTQm9vbGVhbktleXdvcmRcIixlLlRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uPVwiVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb25cIixlLlRTQ2xhc3NJbXBsZW1lbnRzPVwiVFNDbGFzc0ltcGxlbWVudHNcIixlLlRTQ29uZGl0aW9uYWxUeXBlPVwiVFNDb25kaXRpb25hbFR5cGVcIixlLlRTQ29uc3RydWN0b3JUeXBlPVwiVFNDb25zdHJ1Y3RvclR5cGVcIixlLlRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb249XCJUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsZS5UU0RlY2xhcmVGdW5jdGlvbj1cIlRTRGVjbGFyZUZ1bmN0aW9uXCIsZS5UU0RlY2xhcmVLZXl3b3JkPVwiVFNEZWNsYXJlS2V5d29yZFwiLGUuVFNFbXB0eUJvZHlGdW5jdGlvbkV4cHJlc3Npb249XCJUU0VtcHR5Qm9keUZ1bmN0aW9uRXhwcmVzc2lvblwiLGUuVFNFbnVtRGVjbGFyYXRpb249XCJUU0VudW1EZWNsYXJhdGlvblwiLGUuVFNFbnVtTWVtYmVyPVwiVFNFbnVtTWVtYmVyXCIsZS5UU0V4cG9ydEFzc2lnbm1lbnQ9XCJUU0V4cG9ydEFzc2lnbm1lbnRcIixlLlRTRXhwb3J0S2V5d29yZD1cIlRTRXhwb3J0S2V5d29yZFwiLGUuVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZT1cIlRTRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2VcIixlLlRTRnVuY3Rpb25UeXBlPVwiVFNGdW5jdGlvblR5cGVcIixlLlRTSW5zdGFudGlhdGlvbkV4cHJlc3Npb249XCJUU0luc3RhbnRpYXRpb25FeHByZXNzaW9uXCIsZS5UU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uPVwiVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvblwiLGUuVFNJbXBvcnRUeXBlPVwiVFNJbXBvcnRUeXBlXCIsZS5UU0luZGV4ZWRBY2Nlc3NUeXBlPVwiVFNJbmRleGVkQWNjZXNzVHlwZVwiLGUuVFNJbmRleFNpZ25hdHVyZT1cIlRTSW5kZXhTaWduYXR1cmVcIixlLlRTSW5mZXJUeXBlPVwiVFNJbmZlclR5cGVcIixlLlRTSW50ZXJmYWNlQm9keT1cIlRTSW50ZXJmYWNlQm9keVwiLGUuVFNJbnRlcmZhY2VEZWNsYXJhdGlvbj1cIlRTSW50ZXJmYWNlRGVjbGFyYXRpb25cIixlLlRTSW50ZXJmYWNlSGVyaXRhZ2U9XCJUU0ludGVyZmFjZUhlcml0YWdlXCIsZS5UU0ludGVyc2VjdGlvblR5cGU9XCJUU0ludGVyc2VjdGlvblR5cGVcIixlLlRTSW50cmluc2ljS2V5d29yZD1cIlRTSW50cmluc2ljS2V5d29yZFwiLGUuVFNMaXRlcmFsVHlwZT1cIlRTTGl0ZXJhbFR5cGVcIixlLlRTTWFwcGVkVHlwZT1cIlRTTWFwcGVkVHlwZVwiLGUuVFNNZXRob2RTaWduYXR1cmU9XCJUU01ldGhvZFNpZ25hdHVyZVwiLGUuVFNNb2R1bGVCbG9jaz1cIlRTTW9kdWxlQmxvY2tcIixlLlRTTW9kdWxlRGVjbGFyYXRpb249XCJUU01vZHVsZURlY2xhcmF0aW9uXCIsZS5UU05hbWVkVHVwbGVNZW1iZXI9XCJUU05hbWVkVHVwbGVNZW1iZXJcIixlLlRTTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb249XCJUU05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uXCIsZS5UU05ldmVyS2V5d29yZD1cIlRTTmV2ZXJLZXl3b3JkXCIsZS5UU05vbk51bGxFeHByZXNzaW9uPVwiVFNOb25OdWxsRXhwcmVzc2lvblwiLGUuVFNOdWxsS2V5d29yZD1cIlRTTnVsbEtleXdvcmRcIixlLlRTTnVtYmVyS2V5d29yZD1cIlRTTnVtYmVyS2V5d29yZFwiLGUuVFNPYmplY3RLZXl3b3JkPVwiVFNPYmplY3RLZXl3b3JkXCIsZS5UU09wdGlvbmFsVHlwZT1cIlRTT3B0aW9uYWxUeXBlXCIsZS5UU1BhcmFtZXRlclByb3BlcnR5PVwiVFNQYXJhbWV0ZXJQcm9wZXJ0eVwiLGUuVFNQcml2YXRlS2V5d29yZD1cIlRTUHJpdmF0ZUtleXdvcmRcIixlLlRTUHJvcGVydHlTaWduYXR1cmU9XCJUU1Byb3BlcnR5U2lnbmF0dXJlXCIsZS5UU1Byb3RlY3RlZEtleXdvcmQ9XCJUU1Byb3RlY3RlZEtleXdvcmRcIixlLlRTUHVibGljS2V5d29yZD1cIlRTUHVibGljS2V5d29yZFwiLGUuVFNRdWFsaWZpZWROYW1lPVwiVFNRdWFsaWZpZWROYW1lXCIsZS5UU1JlYWRvbmx5S2V5d29yZD1cIlRTUmVhZG9ubHlLZXl3b3JkXCIsZS5UU1Jlc3RUeXBlPVwiVFNSZXN0VHlwZVwiLGUuVFNTYXRpc2ZpZXNFeHByZXNzaW9uPVwiVFNTYXRpc2ZpZXNFeHByZXNzaW9uXCIsZS5UU1N0YXRpY0tleXdvcmQ9XCJUU1N0YXRpY0tleXdvcmRcIixlLlRTU3RyaW5nS2V5d29yZD1cIlRTU3RyaW5nS2V5d29yZFwiLGUuVFNTeW1ib2xLZXl3b3JkPVwiVFNTeW1ib2xLZXl3b3JkXCIsZS5UU1RlbXBsYXRlTGl0ZXJhbFR5cGU9XCJUU1RlbXBsYXRlTGl0ZXJhbFR5cGVcIixlLlRTVGhpc1R5cGU9XCJUU1RoaXNUeXBlXCIsZS5UU1R1cGxlVHlwZT1cIlRTVHVwbGVUeXBlXCIsZS5UU1R5cGVBbGlhc0RlY2xhcmF0aW9uPVwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLGUuVFNUeXBlQW5ub3RhdGlvbj1cIlRTVHlwZUFubm90YXRpb25cIixlLlRTVHlwZUFzc2VydGlvbj1cIlRTVHlwZUFzc2VydGlvblwiLGUuVFNUeXBlTGl0ZXJhbD1cIlRTVHlwZUxpdGVyYWxcIixlLlRTVHlwZU9wZXJhdG9yPVwiVFNUeXBlT3BlcmF0b3JcIixlLlRTVHlwZVBhcmFtZXRlcj1cIlRTVHlwZVBhcmFtZXRlclwiLGUuVFNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb249XCJUU1R5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiLGUuVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbj1cIlRTVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb25cIixlLlRTVHlwZVByZWRpY2F0ZT1cIlRTVHlwZVByZWRpY2F0ZVwiLGUuVFNUeXBlUXVlcnk9XCJUU1R5cGVRdWVyeVwiLGUuVFNUeXBlUmVmZXJlbmNlPVwiVFNUeXBlUmVmZXJlbmNlXCIsZS5UU1VuZGVmaW5lZEtleXdvcmQ9XCJUU1VuZGVmaW5lZEtleXdvcmRcIixlLlRTVW5pb25UeXBlPVwiVFNVbmlvblR5cGVcIixlLlRTVW5rbm93bktleXdvcmQ9XCJUU1Vua25vd25LZXl3b3JkXCIsZS5UU1ZvaWRLZXl3b3JkPVwiVFNWb2lkS2V5d29yZFwifSkoSTd8fChWXy5BU1RfTk9ERV9UWVBFUz1JNz17fSkpO3ZhciBONzsoZnVuY3Rpb24oZSl7ZS5Cb29sZWFuPVwiQm9vbGVhblwiLGUuSWRlbnRpZmllcj1cIklkZW50aWZpZXJcIixlLkpTWElkZW50aWZpZXI9XCJKU1hJZGVudGlmaWVyXCIsZS5KU1hUZXh0PVwiSlNYVGV4dFwiLGUuS2V5d29yZD1cIktleXdvcmRcIixlLk51bGw9XCJOdWxsXCIsZS5OdW1lcmljPVwiTnVtZXJpY1wiLGUuUHVuY3R1YXRvcj1cIlB1bmN0dWF0b3JcIixlLlJlZ3VsYXJFeHByZXNzaW9uPVwiUmVndWxhckV4cHJlc3Npb25cIixlLlN0cmluZz1cIlN0cmluZ1wiLGUuVGVtcGxhdGU9XCJUZW1wbGF0ZVwiLGUuQmxvY2s9XCJCbG9ja1wiLGUuTGluZT1cIkxpbmVcIn0pKE43fHwoVl8uQVNUX1RPS0VOX1RZUEVTPU43PXt9KSl9KTt2YXIgTTc9dXQoTzc9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTzcsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTt2YXIgSjc9dXQoTDc9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTDcsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTt2YXIgUjc9dXQoS2k9PntcInVzZSBzdHJpY3RcIjt2YXIgSkI9S2kmJktpLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksUkI9S2kmJktpLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxqQj1LaSYmS2kuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZKQih0LGUscik7cmV0dXJuIFJCKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KEtpLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO0tpLlRTRVNUcmVlPXZvaWQgMDtLaS5UU0VTVHJlZT1qQihHNigpKX0pO3ZhciBGNz11dChqbj0+e1widXNlIHN0cmljdFwiO3ZhciBGQj1qbiYmam4uX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgXz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscik7KCFffHwoXCJnZXRcImluIF8/IXQuX19lc01vZHVsZTpfLndyaXRhYmxlfHxfLmNvbmZpZ3VyYWJsZSkpJiYoXz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxhLF8pfTpmdW5jdGlvbihlLHQscixhKXthPT09dm9pZCAwJiYoYT1yKSxlW2FdPXRbcl19KSxYNj1qbiYmam4uX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiZGQih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShqbixcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtqbi5BU1RfVE9LRU5fVFlQRVM9am4uQVNUX05PREVfVFlQRVM9dm9pZCAwO3ZhciBqNz1HNigpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShqbixcIkFTVF9OT0RFX1RZUEVTXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGo3LkFTVF9OT0RFX1RZUEVTfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShqbixcIkFTVF9UT0tFTl9UWVBFU1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBqNy5BU1RfVE9LRU5fVFlQRVN9fSk7WDYoTTcoKSxqbik7WDYoSjcoKSxqbik7WDYoUjcoKSxqbil9KTt2YXIgVTc9dXQoQjc9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoQjcsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTt2YXIgejc9dXQocTc9PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkocTcsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTt2YXIgQm09dXQoaG49PntcInVzZSBzdHJpY3RcIjt2YXIgQkI9aG4mJmhuLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksVzc9aG4mJmhuLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmQkIodCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaG4sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7aG4uVFNFU1RyZWU9aG4uQVNUX1RPS0VOX1RZUEVTPWhuLkFTVF9OT0RFX1RZUEVTPXZvaWQgMDt2YXIgJDY9RjcoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaG4sXCJBU1RfTk9ERV9UWVBFU1wiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiAkNi5BU1RfTk9ERV9UWVBFU319KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaG4sXCJBU1RfVE9LRU5fVFlQRVNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJDYuQVNUX1RPS0VOX1RZUEVTfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShobixcIlRTRVNUcmVlXCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuICQ2LlRTRVNUcmVlfX0pO1c3KFU3KCksaG4pO1c3KHo3KCksaG4pfSk7dmFyIHptPXV0KG1lPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFVCPW1lJiZtZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLGEpe2E9PT12b2lkIDAmJihhPXIpO3ZhciBfPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTsoIV98fChcImdldFwiaW4gXz8hdC5fX2VzTW9kdWxlOl8ud3JpdGFibGV8fF8uY29uZmlndXJhYmxlKSkmJihfPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEsXyl9OmZ1bmN0aW9uKGUsdCxyLGEpe2E9PT12b2lkIDAmJihhPXIpLGVbYV09dFtyXX0pLHFCPW1lJiZtZS5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksekI9bWUmJm1lLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PVwiZGVmYXVsdFwiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmVUIodCxlLHIpO3JldHVybiBxQih0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTttZS5nZXROYW1lc3BhY2VNb2RpZmllcnM9bWUubm9kZUNhbkJlRGVjb3JhdGVkPW1lLmdldENvbnRhaW5pbmdGdW5jdGlvbj1tZS5ub2RlSXNQcmVzZW50PW1lLmlzVGhpc0luVHlwZVF1ZXJ5PW1lLmlzVGhpc0lkZW50aWZpZXI9bWUuaWRlbnRpZmllcklzVGhpc0tleXdvcmQ9bWUuZmlyc3REZWZpbmVkPW1lLm5vZGVIYXNUb2tlbnM9bWUubm9kZUhhc0lsbGVnYWxEZWNvcmF0b3JzPW1lLmNyZWF0ZUVycm9yPW1lLlRTRXJyb3I9bWUuY29udmVydFRva2Vucz1tZS5jb252ZXJ0VG9rZW49bWUuZ2V0VG9rZW5UeXBlPW1lLmlzQ2hpbGRVbndyYXBwYWJsZU9wdGlvbmFsQ2hhaW49bWUuaXNDaGFpbkV4cHJlc3Npb249bWUuaXNPcHRpb25hbD1tZS5pc0NvbXB1dGVkUHJvcGVydHk9bWUudW5lc2NhcGVTdHJpbmdMaXRlcmFsVGV4dD1tZS5oYXNKU1hBbmNlc3Rvcj1tZS5maW5kRmlyc3RNYXRjaGluZ0FuY2VzdG9yPW1lLmZpbmROZXh0VG9rZW49bWUuZ2V0VFNOb2RlQWNjZXNzaWJpbGl0eT1tZS5nZXREZWNsYXJhdGlvbktpbmQ9bWUuaXNKU1hUb2tlbj1tZS5nZXRSYW5nZT1tZS5jYW5Db250YWluRGlyZWN0aXZlPW1lLmdldExvY0Zvcj1tZS5nZXRMaW5lQW5kQ2hhcmFjdGVyRm9yPW1lLmdldEJpbmFyeUV4cHJlc3Npb25UeXBlPW1lLmlzQ29tbWVudD1tZS5pc0NvbW1hPW1lLmdldExhc3RNb2RpZmllcj1tZS5oYXNNb2RpZmllcj1tZS5pc0VTVHJlZUNsYXNzTWVtYmVyPW1lLmdldFRleHRGb3JUb2tlbktpbmQ9bWUuaXNFU1RyZWVCaW5hcnlPcGVyYXRvcj1tZS5pc0xvZ2ljYWxPcGVyYXRvcj12b2lkIDA7dmFyIFFlPXpCKER0KCkpLHV1PUg2KCksV0I9UDcoKSxpcj1CbSgpLFZCPVY2KCksVjc9VkIudHlwZXNjcmlwdFZlcnNpb25Jc0F0TGVhc3RbXCI1LjBcIl0seWU9UWUuU3ludGF4S2luZCxIQj1uZXcgU2V0KFt5ZS5CYXJCYXJUb2tlbix5ZS5BbXBlcnNhbmRBbXBlcnNhbmRUb2tlbix5ZS5RdWVzdGlvblF1ZXN0aW9uVG9rZW5dKSxHQj1uZXcgU2V0KFtRZS5TeW50YXhLaW5kLkVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuUGx1c0VxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuTWludXNFcXVhbHNUb2tlbixRZS5TeW50YXhLaW5kLkFzdGVyaXNrRXF1YWxzVG9rZW4sUWUuU3ludGF4S2luZC5Bc3Rlcmlza0FzdGVyaXNrRXF1YWxzVG9rZW4sUWUuU3ludGF4S2luZC5TbGFzaEVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuUGVyY2VudEVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuTGVzc1RoYW5MZXNzVGhhbkVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuR3JlYXRlclRoYW5HcmVhdGVyVGhhbkVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuR3JlYXRlclRoYW5HcmVhdGVyVGhhbkdyZWF0ZXJUaGFuRXF1YWxzVG9rZW4sUWUuU3ludGF4S2luZC5BbXBlcnNhbmRFcXVhbHNUb2tlbixRZS5TeW50YXhLaW5kLkJhckVxdWFsc1Rva2VuLFFlLlN5bnRheEtpbmQuQmFyQmFyRXF1YWxzVG9rZW4sUWUuU3ludGF4S2luZC5BbXBlcnNhbmRBbXBlcnNhbmRFcXVhbHNUb2tlbixRZS5TeW50YXhLaW5kLlF1ZXN0aW9uUXVlc3Rpb25FcXVhbHNUb2tlbixRZS5TeW50YXhLaW5kLkNhcmV0RXF1YWxzVG9rZW5dKSxYQj1uZXcgU2V0KFt5ZS5JbnN0YW5jZU9mS2V5d29yZCx5ZS5JbktleXdvcmQseWUuQXN0ZXJpc2tBc3Rlcmlza1Rva2VuLHllLkFzdGVyaXNrVG9rZW4seWUuU2xhc2hUb2tlbix5ZS5QZXJjZW50VG9rZW4seWUuUGx1c1Rva2VuLHllLk1pbnVzVG9rZW4seWUuQW1wZXJzYW5kVG9rZW4seWUuQmFyVG9rZW4seWUuQ2FyZXRUb2tlbix5ZS5MZXNzVGhhbkxlc3NUaGFuVG9rZW4seWUuR3JlYXRlclRoYW5HcmVhdGVyVGhhblRva2VuLHllLkdyZWF0ZXJUaGFuR3JlYXRlclRoYW5HcmVhdGVyVGhhblRva2VuLHllLkFtcGVyc2FuZEFtcGVyc2FuZFRva2VuLHllLkJhckJhclRva2VuLHllLkxlc3NUaGFuVG9rZW4seWUuTGVzc1RoYW5FcXVhbHNUb2tlbix5ZS5HcmVhdGVyVGhhblRva2VuLHllLkdyZWF0ZXJUaGFuRXF1YWxzVG9rZW4seWUuRXF1YWxzRXF1YWxzVG9rZW4seWUuRXF1YWxzRXF1YWxzRXF1YWxzVG9rZW4seWUuRXhjbGFtYXRpb25FcXVhbHNFcXVhbHNUb2tlbix5ZS5FeGNsYW1hdGlvbkVxdWFsc1Rva2VuXSk7ZnVuY3Rpb24gJEIoZSl7cmV0dXJuIEdCLmhhcyhlLmtpbmQpfWZ1bmN0aW9uIEg3KGUpe3JldHVybiBIQi5oYXMoZS5raW5kKX1tZS5pc0xvZ2ljYWxPcGVyYXRvcj1INztmdW5jdGlvbiBHNyhlKXtyZXR1cm4gWEIuaGFzKGUua2luZCl9bWUuaXNFU1RyZWVCaW5hcnlPcGVyYXRvcj1HNztmdW5jdGlvbiBVbShlKXtyZXR1cm4gUWUudG9rZW5Ub1N0cmluZyhlKX1tZS5nZXRUZXh0Rm9yVG9rZW5LaW5kPVVtO2Z1bmN0aW9uIFFCKGUpe3JldHVybiBlLmtpbmQhPT15ZS5TZW1pY29sb25DbGFzc0VsZW1lbnR9bWUuaXNFU1RyZWVDbGFzc01lbWJlcj1RQjtmdW5jdGlvbiBYNyhlLHQpe2xldCByPSgwLHV1LmdldE1vZGlmaWVycykodCk7cmV0dXJuKHI9PW51bGw/dm9pZCAwOnIuc29tZShhPT5hLmtpbmQ9PT1lKSk9PT0hMH1tZS5oYXNNb2RpZmllcj1YNztmdW5jdGlvbiBZQihlKXtsZXQgdD0oMCx1dS5nZXRNb2RpZmllcnMpKGUpO3JldHVybiB0PT1udWxsP251bGw6dFt0Lmxlbmd0aC0xXT8/bnVsbH1tZS5nZXRMYXN0TW9kaWZpZXI9WUI7ZnVuY3Rpb24gS0IoZSl7cmV0dXJuIGUua2luZD09PXllLkNvbW1hVG9rZW59bWUuaXNDb21tYT1LQjtmdW5jdGlvbiAkNyhlKXtyZXR1cm4gZS5raW5kPT09eWUuU2luZ2xlTGluZUNvbW1lbnRUcml2aWF8fGUua2luZD09PXllLk11bHRpTGluZUNvbW1lbnRUcml2aWF9bWUuaXNDb21tZW50PSQ3O2Z1bmN0aW9uIFpCKGUpe3JldHVybiBlLmtpbmQ9PT15ZS5KU0RvY0NvbW1lbnR9ZnVuY3Rpb24gZVUoZSl7aWYoJEIoZSkpcmV0dXJue3R5cGU6aXIuQVNUX05PREVfVFlQRVMuQXNzaWdubWVudEV4cHJlc3Npb24sb3BlcmF0b3I6VW0oZS5raW5kKX07aWYoSDcoZSkpcmV0dXJue3R5cGU6aXIuQVNUX05PREVfVFlQRVMuTG9naWNhbEV4cHJlc3Npb24sb3BlcmF0b3I6VW0oZS5raW5kKX07aWYoRzcoZSkpcmV0dXJue3R5cGU6aXIuQVNUX05PREVfVFlQRVMuQmluYXJ5RXhwcmVzc2lvbixvcGVyYXRvcjpVbShlLmtpbmQpfTt0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYmluYXJ5IG9wZXJhdG9yICR7UWUudG9rZW5Ub1N0cmluZyhlLmtpbmQpfWApfW1lLmdldEJpbmFyeUV4cHJlc3Npb25UeXBlPWVVO2Z1bmN0aW9uIFE3KGUsdCl7bGV0IHI9dC5nZXRMaW5lQW5kQ2hhcmFjdGVyT2ZQb3NpdGlvbihlKTtyZXR1cm57bGluZTpyLmxpbmUrMSxjb2x1bW46ci5jaGFyYWN0ZXJ9fW1lLmdldExpbmVBbmRDaGFyYWN0ZXJGb3I9UTc7ZnVuY3Rpb24gWTcoZSx0KXtsZXRbcixhXT1lLm1hcChfPT5RNyhfLHQpKTtyZXR1cm57c3RhcnQ6cixlbmQ6YX19bWUuZ2V0TG9jRm9yPVk3O2Z1bmN0aW9uIHRVKGUpe2lmKGUua2luZD09PVFlLlN5bnRheEtpbmQuQmxvY2spc3dpdGNoKGUucGFyZW50LmtpbmQpe2Nhc2UgUWUuU3ludGF4S2luZC5Db25zdHJ1Y3RvcjpjYXNlIFFlLlN5bnRheEtpbmQuR2V0QWNjZXNzb3I6Y2FzZSBRZS5TeW50YXhLaW5kLlNldEFjY2Vzc29yOmNhc2UgUWUuU3ludGF4S2luZC5BcnJvd0Z1bmN0aW9uOmNhc2UgUWUuU3ludGF4S2luZC5GdW5jdGlvbkV4cHJlc3Npb246Y2FzZSBRZS5TeW50YXhLaW5kLkZ1bmN0aW9uRGVjbGFyYXRpb246Y2FzZSBRZS5TeW50YXhLaW5kLk1ldGhvZERlY2xhcmF0aW9uOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9cmV0dXJuITB9bWUuY2FuQ29udGFpbkRpcmVjdGl2ZT10VTtmdW5jdGlvbiByVShlLHQpe3JldHVybltlLmdldFN0YXJ0KHQpLGUuZ2V0RW5kKCldfW1lLmdldFJhbmdlPXJVO2Z1bmN0aW9uIG5VKGUpe3JldHVybiBlLmtpbmQ+PXllLkZpcnN0VG9rZW4mJmUua2luZDw9eWUuTGFzdFRva2VufWZ1bmN0aW9uIFE2KGUpe3JldHVybiBlLmtpbmQ+PXllLkpzeEVsZW1lbnQmJmUua2luZDw9eWUuSnN4QXR0cmlidXRlfW1lLmlzSlNYVG9rZW49UTY7ZnVuY3Rpb24gaVUoZSl7cmV0dXJuIGUuZmxhZ3MmUWUuTm9kZUZsYWdzLkxldD9cImxldFwiOihlLmZsYWdzJlFlLk5vZGVGbGFncy5Bd2FpdFVzaW5nKT09PVFlLk5vZGVGbGFncy5Bd2FpdFVzaW5nP1wiYXdhaXQgdXNpbmdcIjplLmZsYWdzJlFlLk5vZGVGbGFncy5Db25zdD9cImNvbnN0XCI6ZS5mbGFncyZRZS5Ob2RlRmxhZ3MuVXNpbmc/XCJ1c2luZ1wiOlwidmFyXCJ9bWUuZ2V0RGVjbGFyYXRpb25LaW5kPWlVO2Z1bmN0aW9uIGFVKGUpe2xldCB0PSgwLHV1LmdldE1vZGlmaWVycykoZSk7aWYodCE9bnVsbClmb3IobGV0IHIgb2YgdClzd2l0Y2goci5raW5kKXtjYXNlIHllLlB1YmxpY0tleXdvcmQ6cmV0dXJuXCJwdWJsaWNcIjtjYXNlIHllLlByb3RlY3RlZEtleXdvcmQ6cmV0dXJuXCJwcm90ZWN0ZWRcIjtjYXNlIHllLlByaXZhdGVLZXl3b3JkOnJldHVyblwicHJpdmF0ZVwiO2RlZmF1bHQ6YnJlYWt9fW1lLmdldFRTTm9kZUFjY2Vzc2liaWxpdHk9YVU7ZnVuY3Rpb24gb1UoZSx0LHIpe3JldHVybiBhKHQpO2Z1bmN0aW9uIGEoXyl7cmV0dXJuIFFlLmlzVG9rZW4oXykmJl8ucG9zPT09ZS5lbmQ/XzppdyhfLmdldENoaWxkcmVuKHIpLHA9PihwLnBvczw9ZS5wb3MmJnAuZW5kPmUuZW5kfHxwLnBvcz09PWUuZW5kKSYmbncocCxyKT9hKHApOnZvaWQgMCl9fW1lLmZpbmROZXh0VG9rZW49b1U7ZnVuY3Rpb24gSzcoZSx0KXtmb3IoO2U7KXtpZih0KGUpKXJldHVybiBlO2U9ZS5wYXJlbnR9fW1lLmZpbmRGaXJzdE1hdGNoaW5nQW5jZXN0b3I9Szc7ZnVuY3Rpb24gWjcoZSl7cmV0dXJuISFLNyhlLFE2KX1tZS5oYXNKU1hBbmNlc3Rvcj1aNztmdW5jdGlvbiBzVShlKXtyZXR1cm4gZS5yZXBsYWNlKC8mKD86I1xcZCt8I3hbXFxkYS1mQS1GXSt8WzAtOWEtekEtWl0rKTsvZyx0PT57bGV0IHI9dC5zbGljZSgxLC0xKTtpZihyWzBdPT09XCIjXCIpe2xldCBhPXJbMV09PT1cInhcIj9wYXJzZUludChyLnNsaWNlKDIpLDE2KTpwYXJzZUludChyLnNsaWNlKDEpLDEwKTtyZXR1cm4gYT4xMTE0MTExP3Q6U3RyaW5nLmZyb21Db2RlUG9pbnQoYSl9cmV0dXJuIFdCLnhodG1sRW50aXRpZXNbcl18fHR9KX1tZS51bmVzY2FwZVN0cmluZ0xpdGVyYWxUZXh0PXNVO2Z1bmN0aW9uIF9VKGUpe3JldHVybiBlLmtpbmQ9PT15ZS5Db21wdXRlZFByb3BlcnR5TmFtZX1tZS5pc0NvbXB1dGVkUHJvcGVydHk9X1U7ZnVuY3Rpb24gY1UoZSl7cmV0dXJuIGUucXVlc3Rpb25Ub2tlbj9lLnF1ZXN0aW9uVG9rZW4ua2luZD09PXllLlF1ZXN0aW9uVG9rZW46ITF9bWUuaXNPcHRpb25hbD1jVTtmdW5jdGlvbiBldyhlKXtyZXR1cm4gZS50eXBlPT09aXIuQVNUX05PREVfVFlQRVMuQ2hhaW5FeHByZXNzaW9ufW1lLmlzQ2hhaW5FeHByZXNzaW9uPWV3O2Z1bmN0aW9uIGxVKGUsdCl7cmV0dXJuIGV3KHQpJiZlLmV4cHJlc3Npb24ua2luZCE9PVFlLlN5bnRheEtpbmQuUGFyZW50aGVzaXplZEV4cHJlc3Npb259bWUuaXNDaGlsZFVud3JhcHBhYmxlT3B0aW9uYWxDaGFpbj1sVTtmdW5jdGlvbiB0dyhlKXtsZXQgdDtpZihWNyYmZS5raW5kPT09eWUuSWRlbnRpZmllcj90PVFlLmlkZW50aWZpZXJUb0tleXdvcmRLaW5kKGUpOlwib3JpZ2luYWxLZXl3b3JkS2luZFwiaW4gZSYmKHQ9ZS5vcmlnaW5hbEtleXdvcmRLaW5kKSx0KXJldHVybiB0PT09eWUuTnVsbEtleXdvcmQ/aXIuQVNUX1RPS0VOX1RZUEVTLk51bGw6dD49eWUuRmlyc3RGdXR1cmVSZXNlcnZlZFdvcmQmJnQ8PXllLkxhc3RLZXl3b3JkP2lyLkFTVF9UT0tFTl9UWVBFUy5JZGVudGlmaWVyOmlyLkFTVF9UT0tFTl9UWVBFUy5LZXl3b3JkO2lmKGUua2luZD49eWUuRmlyc3RLZXl3b3JkJiZlLmtpbmQ8PXllLkxhc3RGdXR1cmVSZXNlcnZlZFdvcmQpcmV0dXJuIGUua2luZD09PXllLkZhbHNlS2V5d29yZHx8ZS5raW5kPT09eWUuVHJ1ZUtleXdvcmQ/aXIuQVNUX1RPS0VOX1RZUEVTLkJvb2xlYW46aXIuQVNUX1RPS0VOX1RZUEVTLktleXdvcmQ7aWYoZS5raW5kPj15ZS5GaXJzdFB1bmN0dWF0aW9uJiZlLmtpbmQ8PXllLkxhc3RQdW5jdHVhdGlvbilyZXR1cm4gaXIuQVNUX1RPS0VOX1RZUEVTLlB1bmN0dWF0b3I7aWYoZS5raW5kPj15ZS5Ob1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbCYmZS5raW5kPD15ZS5UZW1wbGF0ZVRhaWwpcmV0dXJuIGlyLkFTVF9UT0tFTl9UWVBFUy5UZW1wbGF0ZTtzd2l0Y2goZS5raW5kKXtjYXNlIHllLk51bWVyaWNMaXRlcmFsOnJldHVybiBpci5BU1RfVE9LRU5fVFlQRVMuTnVtZXJpYztjYXNlIHllLkpzeFRleHQ6cmV0dXJuIGlyLkFTVF9UT0tFTl9UWVBFUy5KU1hUZXh0O2Nhc2UgeWUuU3RyaW5nTGl0ZXJhbDpyZXR1cm4gZS5wYXJlbnQua2luZD09PXllLkpzeEF0dHJpYnV0ZXx8ZS5wYXJlbnQua2luZD09PXllLkpzeEVsZW1lbnQ/aXIuQVNUX1RPS0VOX1RZUEVTLkpTWFRleHQ6aXIuQVNUX1RPS0VOX1RZUEVTLlN0cmluZztjYXNlIHllLlJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbDpyZXR1cm4gaXIuQVNUX1RPS0VOX1RZUEVTLlJlZ3VsYXJFeHByZXNzaW9uO2Nhc2UgeWUuSWRlbnRpZmllcjpjYXNlIHllLkNvbnN0cnVjdG9yS2V5d29yZDpjYXNlIHllLkdldEtleXdvcmQ6Y2FzZSB5ZS5TZXRLZXl3b3JkOmRlZmF1bHQ6fXJldHVybiBlLmtpbmQ9PT15ZS5JZGVudGlmaWVyJiYoUTYoZS5wYXJlbnQpfHxlLnBhcmVudC5raW5kPT09eWUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uJiZaNyhlKSk/aXIuQVNUX1RPS0VOX1RZUEVTLkpTWElkZW50aWZpZXI6aXIuQVNUX1RPS0VOX1RZUEVTLklkZW50aWZpZXJ9bWUuZ2V0VG9rZW5UeXBlPXR3O2Z1bmN0aW9uIHJ3KGUsdCl7bGV0IHI9ZS5raW5kPT09eWUuSnN4VGV4dD9lLmdldEZ1bGxTdGFydCgpOmUuZ2V0U3RhcnQodCksYT1lLmdldEVuZCgpLF89dC50ZXh0LnNsaWNlKHIsYSkscD10dyhlKSxkPVtyLGFdLGg9WTcoZCx0KTtyZXR1cm4gcD09PWlyLkFTVF9UT0tFTl9UWVBFUy5SZWd1bGFyRXhwcmVzc2lvbj97dHlwZTpwLHZhbHVlOl8scmFuZ2U6ZCxsb2M6aCxyZWdleDp7cGF0dGVybjpfLnNsaWNlKDEsXy5sYXN0SW5kZXhPZihcIi9cIikpLGZsYWdzOl8uc2xpY2UoXy5sYXN0SW5kZXhPZihcIi9cIikrMSl9fTp7dHlwZTpwLHZhbHVlOl8scmFuZ2U6ZCxsb2M6aH19bWUuY29udmVydFRva2VuPXJ3O2Z1bmN0aW9uIHVVKGUpe2xldCB0PVtdO2Z1bmN0aW9uIHIoYSl7aWYoISgkNyhhKXx8WkIoYSkpKWlmKG5VKGEpJiZhLmtpbmQhPT15ZS5FbmRPZkZpbGVUb2tlbil7bGV0IF89cncoYSxlKTtfJiZ0LnB1c2goXyl9ZWxzZSBhLmdldENoaWxkcmVuKGUpLmZvckVhY2gocil9cmV0dXJuIHIoZSksdH1tZS5jb252ZXJ0VG9rZW5zPXVVO3ZhciBxbT1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscixhKXtzdXBlcih0KSx0aGlzLmZpbGVOYW1lPXIsdGhpcy5sb2NhdGlvbj1hLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibmFtZVwiLHt2YWx1ZTpuZXcudGFyZ2V0Lm5hbWUsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1nZXQgaW5kZXgoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5zdGFydC5vZmZzZXR9Z2V0IGxpbmVOdW1iZXIoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5zdGFydC5saW5lfWdldCBjb2x1bW4oKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5zdGFydC5jb2x1bW59fTttZS5UU0Vycm9yPXFtO2Z1bmN0aW9uIHBVKGUsdCxyLGE9cil7bGV0W18scF09W3IsYV0ubWFwKGQ9PntsZXR7bGluZTpoLGNoYXJhY3RlcjpsfT10LmdldExpbmVBbmRDaGFyYWN0ZXJPZlBvc2l0aW9uKGQpO3JldHVybntsaW5lOmgrMSxjb2x1bW46bCxvZmZzZXQ6ZH19KTtyZXR1cm4gbmV3IHFtKGUsdC5maWxlTmFtZSx7c3RhcnQ6XyxlbmQ6cH0pfW1lLmNyZWF0ZUVycm9yPXBVO2Z1bmN0aW9uIGZVKGUpe3ZhciB0O3JldHVybiEhKFwiaWxsZWdhbERlY29yYXRvcnNcImluIGUmJigodD1lLmlsbGVnYWxEZWNvcmF0b3JzKSE9bnVsbCYmdC5sZW5ndGgpKX1tZS5ub2RlSGFzSWxsZWdhbERlY29yYXRvcnM9ZlU7ZnVuY3Rpb24gbncoZSx0KXtyZXR1cm4gZS5raW5kPT09eWUuRW5kT2ZGaWxlVG9rZW4/ISFlLmpzRG9jOmUuZ2V0V2lkdGgodCkhPT0wfW1lLm5vZGVIYXNUb2tlbnM9bnc7ZnVuY3Rpb24gaXcoZSx0KXtpZihlIT09dm9pZCAwKWZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXtsZXQgYT10KGVbcl0scik7aWYoYSE9PXZvaWQgMClyZXR1cm4gYX19bWUuZmlyc3REZWZpbmVkPWl3O2Z1bmN0aW9uIGF3KGUpe3JldHVybihWNz9RZS5pZGVudGlmaWVyVG9LZXl3b3JkS2luZChlKTplLm9yaWdpbmFsS2V5d29yZEtpbmQpPT09eWUuVGhpc0tleXdvcmR9bWUuaWRlbnRpZmllcklzVGhpc0tleXdvcmQ9YXc7ZnVuY3Rpb24gWTYoZSl7cmV0dXJuISFlJiZlLmtpbmQ9PT15ZS5JZGVudGlmaWVyJiZhdyhlKX1tZS5pc1RoaXNJZGVudGlmaWVyPVk2O2Z1bmN0aW9uIGRVKGUpe2lmKCFZNihlKSlyZXR1cm4hMTtmb3IoO1FlLmlzUXVhbGlmaWVkTmFtZShlLnBhcmVudCkmJmUucGFyZW50LmxlZnQ9PT1lOyllPWUucGFyZW50O3JldHVybiBlLnBhcmVudC5raW5kPT09eWUuVHlwZVF1ZXJ5fW1lLmlzVGhpc0luVHlwZVF1ZXJ5PWRVO2Z1bmN0aW9uIG1VKGUpe3JldHVybiBlPT09dm9pZCAwPyEwOmUucG9zPT09ZS5lbmQmJmUucG9zPj0wJiZlLmtpbmQhPT15ZS5FbmRPZkZpbGVUb2tlbn1mdW5jdGlvbiBoVShlKXtyZXR1cm4hbVUoZSl9bWUubm9kZUlzUHJlc2VudD1oVTtmdW5jdGlvbiB5VShlKXtyZXR1cm4gUWUuZmluZEFuY2VzdG9yKGUucGFyZW50LFFlLmlzRnVuY3Rpb25MaWtlKX1tZS5nZXRDb250YWluaW5nRnVuY3Rpb249eVU7ZnVuY3Rpb24gZ1UoZSl7cmV0dXJuIFg3KHllLkFic3RyYWN0S2V5d29yZCxlKX1mdW5jdGlvbiBiVShlKXtpZihlLnBhcmFtZXRlcnMubGVuZ3RoJiYhUWUuaXNKU0RvY1NpZ25hdHVyZShlKSl7bGV0IHQ9ZS5wYXJhbWV0ZXJzWzBdO2lmKHZVKHQpKXJldHVybiB0fXJldHVybiBudWxsfWZ1bmN0aW9uIHZVKGUpe3JldHVybiBZNihlLm5hbWUpfWZ1bmN0aW9uIFRVKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgeWUuQ2xhc3NEZWNsYXJhdGlvbjpyZXR1cm4hMDtjYXNlIHllLkNsYXNzRXhwcmVzc2lvbjpyZXR1cm4hMDtjYXNlIHllLlByb3BlcnR5RGVjbGFyYXRpb246e2xldHtwYXJlbnQ6dH09ZTtyZXR1cm4hIShRZS5pc0NsYXNzRGVjbGFyYXRpb24odCl8fFFlLmlzQ2xhc3NMaWtlKHQpJiYhZ1UoZSkpfWNhc2UgeWUuR2V0QWNjZXNzb3I6Y2FzZSB5ZS5TZXRBY2Nlc3NvcjpjYXNlIHllLk1ldGhvZERlY2xhcmF0aW9uOntsZXR7cGFyZW50OnR9PWU7cmV0dXJuISFlLmJvZHkmJihRZS5pc0NsYXNzRGVjbGFyYXRpb24odCl8fFFlLmlzQ2xhc3NMaWtlKHQpKX1jYXNlIHllLlBhcmFtZXRlcjp7bGV0e3BhcmVudDp0fT1lLHI9dC5wYXJlbnQ7cmV0dXJuISF0JiZcImJvZHlcImluIHQmJiEhdC5ib2R5JiYodC5raW5kPT09eWUuQ29uc3RydWN0b3J8fHQua2luZD09PXllLk1ldGhvZERlY2xhcmF0aW9ufHx0LmtpbmQ9PT15ZS5TZXRBY2Nlc3NvcikmJmJVKHQpIT09ZSYmISFyJiZyLmtpbmQ9PT15ZS5DbGFzc0RlY2xhcmF0aW9ufX1yZXR1cm4hMX1tZS5ub2RlQ2FuQmVEZWNvcmF0ZWQ9VFU7ZnVuY3Rpb24gU1UoZSl7bGV0IHQ9KDAsdXUuZ2V0TW9kaWZpZXJzKShlKSxyPWU7Zm9yKDsoIXR8fHQubGVuZ3RoPT09MCkmJlFlLmlzTW9kdWxlRGVjbGFyYXRpb24oci5wYXJlbnQpJiZyLnBhcmVudC5uYW1lOyl7bGV0IGE9KDAsdXUuZ2V0TW9kaWZpZXJzKShyLnBhcmVudCk7YSYmKGE9PW51bGw/dm9pZCAwOmEubGVuZ3RoKT4wJiYodD1hKSxyPXIucGFyZW50fXJldHVybiB0fW1lLmdldE5hbWVzcGFjZU1vZGlmaWVycz1TVX0pO3ZhciBaNj11dCh5bj0+e1widXNlIHN0cmljdFwiO3ZhciB4VT15biYmeW4uX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixhKXthPT09dm9pZCAwJiYoYT1yKTt2YXIgXz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscik7KCFffHwoXCJnZXRcImluIF8/IXQuX19lc01vZHVsZTpfLndyaXRhYmxlfHxfLmNvbmZpZ3VyYWJsZSkpJiYoXz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxhLF8pfTpmdW5jdGlvbihlLHQscixhKXthPT09dm9pZCAwJiYoYT1yKSxlW2FdPXRbcl19KSx3VT15biYmeW4uX19zZXRNb2R1bGVEZWZhdWx0fHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOnR9KX06ZnVuY3Rpb24oZSx0KXtlLmRlZmF1bHQ9dH0pLENVPXluJiZ5bi5fX2ltcG9ydFN0YXJ8fGZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihlIT1udWxsKWZvcih2YXIgciBpbiBlKXIhPT1cImRlZmF1bHRcIiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUscikmJnhVKHQsZSxyKTtyZXR1cm4gd1UodCxlKSx0fSxOZT15biYmeW4uX19jbGFzc1ByaXZhdGVGaWVsZEdldHx8ZnVuY3Rpb24oZSx0LHIsYSl7aWYocj09PVwiYVwiJiYhYSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyXCIpO2lmKHR5cGVvZiB0PT1cImZ1bmN0aW9uXCI/ZSE9PXR8fCFhOiF0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0XCIpO3JldHVybiByPT09XCJtXCI/YTpyPT09XCJhXCI/YS5jYWxsKGUpOmE/YS52YWx1ZTp0LmdldChlKX0sUGUsb3csYnIsb2ksc3Q7T2JqZWN0LmRlZmluZVByb3BlcnR5KHluLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3luLkNvbnZlcnRlcj15bi5jb252ZXJ0RXJyb3I9dm9pZCAwO3ZhciBfdD1DVShEdCgpKSxaaT1INigpLHBlPXptKCksSj1CbSgpLEU9X3QuU3ludGF4S2luZDtmdW5jdGlvbiBFVShlKXtyZXR1cm4oMCxwZS5jcmVhdGVFcnJvcikoXCJtZXNzYWdlXCJpbiBlJiZlLm1lc3NhZ2V8fGUubWVzc2FnZVRleHQsZS5maWxlLGUuc3RhcnQpfXluLmNvbnZlcnRFcnJvcj1FVTt2YXIgSzY9Y2xhc3N7Y29uc3RydWN0b3IodCxyKXtQZS5hZGQodGhpcyksdGhpcy5lc1RyZWVOb2RlVG9UU05vZGVNYXA9bmV3IFdlYWtNYXAsdGhpcy50c05vZGVUb0VTVHJlZU5vZGVNYXA9bmV3IFdlYWtNYXAsdGhpcy5hbGxvd1BhdHRlcm49ITEsdGhpcy5hc3Q9dCx0aGlzLm9wdGlvbnM9ey4uLnJ9fWdldEFTVE1hcHMoKXtyZXR1cm57ZXNUcmVlTm9kZVRvVFNOb2RlTWFwOnRoaXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLHRzTm9kZVRvRVNUcmVlTm9kZU1hcDp0aGlzLnRzTm9kZVRvRVNUcmVlTm9kZU1hcH19Y29udmVydFByb2dyYW0oKXtyZXR1cm4gdGhpcy5jb252ZXJ0ZXIodGhpcy5hc3QpfWNvbnZlcnRlcih0LHIsYSl7aWYoIXQpcmV0dXJuIG51bGw7TmUodGhpcyxQZSxcIm1cIixvdykuY2FsbCh0aGlzLHQpO2xldCBfPXRoaXMuYWxsb3dQYXR0ZXJuO2EhPT12b2lkIDAmJih0aGlzLmFsbG93UGF0dGVybj1hKTtsZXQgcD10aGlzLmNvbnZlcnROb2RlKHQscj8/dC5wYXJlbnQpO3JldHVybiB0aGlzLnJlZ2lzdGVyVFNOb2RlSW5Ob2RlTWFwKHQscCksdGhpcy5hbGxvd1BhdHRlcm49XyxwfWZpeEV4cG9ydHModCxyKXtsZXQgXz1fdC5pc01vZHVsZURlY2xhcmF0aW9uKHQpJiYhISh0LmZsYWdzJl90Lk5vZGVGbGFncy5OYW1lc3BhY2UpPygwLHBlLmdldE5hbWVzcGFjZU1vZGlmaWVycykodCk6KDAsWmkuZ2V0TW9kaWZpZXJzKSh0KTtpZigoXz09bnVsbD92b2lkIDA6X1swXS5raW5kKT09PUUuRXhwb3J0S2V5d29yZCl7dGhpcy5yZWdpc3RlclRTTm9kZUluTm9kZU1hcCh0LHIpO2xldCBwPV9bMF0sZD1fWzFdLGg9KGQ9PW51bGw/dm9pZCAwOmQua2luZCk9PT1FLkRlZmF1bHRLZXl3b3JkLGw9aD8oMCxwZS5maW5kTmV4dFRva2VuKShkLHRoaXMuYXN0LHRoaXMuYXN0KTooMCxwZS5maW5kTmV4dFRva2VuKShwLHRoaXMuYXN0LHRoaXMuYXN0KTtpZihyLnJhbmdlWzBdPWwuZ2V0U3RhcnQodGhpcy5hc3QpLHIubG9jPSgwLHBlLmdldExvY0Zvcikoci5yYW5nZSx0aGlzLmFzdCksaClyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5FeHBvcnREZWZhdWx0RGVjbGFyYXRpb24sZGVjbGFyYXRpb246cixyYW5nZTpbcC5nZXRTdGFydCh0aGlzLmFzdCksci5yYW5nZVsxXV0sZXhwb3J0S2luZDpcInZhbHVlXCJ9KTtsZXQgdj1yLnR5cGU9PT1KLkFTVF9OT0RFX1RZUEVTLlRTSW50ZXJmYWNlRGVjbGFyYXRpb258fHIudHlwZT09PUouQVNUX05PREVfVFlQRVMuVFNUeXBlQWxpYXNEZWNsYXJhdGlvbix5PVwiZGVjbGFyZVwiaW4gciYmci5kZWNsYXJlPT09ITA7cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRXhwb3J0TmFtZWREZWNsYXJhdGlvbixkZWNsYXJhdGlvbjpyLHNwZWNpZmllcnM6W10sc291cmNlOm51bGwsZXhwb3J0S2luZDp2fHx5P1widHlwZVwiOlwidmFsdWVcIixyYW5nZTpbcC5nZXRTdGFydCh0aGlzLmFzdCksci5yYW5nZVsxXV0sYXNzZXJ0aW9uczpbXX0pfXJldHVybiByfXJlZ2lzdGVyVFNOb2RlSW5Ob2RlTWFwKHQscil7ciYmdGhpcy5vcHRpb25zLnNob3VsZFByZXNlcnZlTm9kZU1hcHMmJih0aGlzLnRzTm9kZVRvRVNUcmVlTm9kZU1hcC5oYXModCl8fHRoaXMudHNOb2RlVG9FU1RyZWVOb2RlTWFwLnNldCh0LHIpKX1jb252ZXJ0UGF0dGVybih0LHIpe3JldHVybiB0aGlzLmNvbnZlcnRlcih0LHIsITApfWNvbnZlcnRDaGlsZCh0LHIpe3JldHVybiB0aGlzLmNvbnZlcnRlcih0LHIsITEpfWNyZWF0ZU5vZGUodCxyKXtsZXQgYT1yO3JldHVybiBhLnJhbmdlPz8oYS5yYW5nZT0oMCxwZS5nZXRSYW5nZSkodCx0aGlzLmFzdCkpLGEubG9jPz8oYS5sb2M9KDAscGUuZ2V0TG9jRm9yKShhLnJhbmdlLHRoaXMuYXN0KSksYSYmdGhpcy5vcHRpb25zLnNob3VsZFByZXNlcnZlTm9kZU1hcHMmJnRoaXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLnNldChhLHQpLGF9Y29udmVydEJpbmRpbmdOYW1lV2l0aFR5cGVBbm5vdGF0aW9uKHQscixhKXtsZXQgXz10aGlzLmNvbnZlcnRQYXR0ZXJuKHQpO3JldHVybiByJiYoXy50eXBlQW5ub3RhdGlvbj10aGlzLmNvbnZlcnRUeXBlQW5ub3RhdGlvbihyLGEpLHRoaXMuZml4UGFyZW50TG9jYXRpb24oXyxfLnR5cGVBbm5vdGF0aW9uLnJhbmdlKSksX31jb252ZXJ0VHlwZUFubm90YXRpb24odCxyKXtsZXQgYT0ocj09bnVsbD92b2lkIDA6ci5raW5kKT09PUUuRnVuY3Rpb25UeXBlfHwocj09bnVsbD92b2lkIDA6ci5raW5kKT09PUUuQ29uc3RydWN0b3JUeXBlPzI6MSxwPVt0LmdldEZ1bGxTdGFydCgpLWEsdC5lbmRdLGQ9KDAscGUuZ2V0TG9jRm9yKShwLHRoaXMuYXN0KTtyZXR1cm57dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTVHlwZUFubm90YXRpb24sbG9jOmQscmFuZ2U6cCx0eXBlQW5ub3RhdGlvbjp0aGlzLmNvbnZlcnRDaGlsZCh0KX19Y29udmVydEJvZHlFeHByZXNzaW9ucyh0LHIpe2xldCBhPSgwLHBlLmNhbkNvbnRhaW5EaXJlY3RpdmUpKHIpO3JldHVybiB0Lm1hcChfPT57bGV0IHA9dGhpcy5jb252ZXJ0Q2hpbGQoXyk7aWYoYSl7aWYocCE9bnVsbCYmcC5leHByZXNzaW9uJiZfdC5pc0V4cHJlc3Npb25TdGF0ZW1lbnQoXykmJl90LmlzU3RyaW5nTGl0ZXJhbChfLmV4cHJlc3Npb24pKXtsZXQgZD1wLmV4cHJlc3Npb24ucmF3O3JldHVybiBwLmRpcmVjdGl2ZT1kLnNsaWNlKDEsLTEpLHB9YT0hMX1yZXR1cm4gcH0pLmZpbHRlcihfPT5fKX1jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24odCxyKXtsZXQgYT0oMCxwZS5maW5kTmV4dFRva2VuKSh0LHRoaXMuYXN0LHRoaXMuYXN0KTtyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHIse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1R5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uLHJhbmdlOlt0LnBvcy0xLGEuZW5kXSxwYXJhbXM6dC5tYXAoXz0+dGhpcy5jb252ZXJ0Q2hpbGQoXykpfSl9Y29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odCl7bGV0IHI9KDAscGUuZmluZE5leHRUb2tlbikodCx0aGlzLmFzdCx0aGlzLmFzdCksYT1bdC5wb3MtMSxyLmVuZF07cmV0dXJue3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1R5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbixyYW5nZTphLGxvYzooMCxwZS5nZXRMb2NGb3IpKGEsdGhpcy5hc3QpLHBhcmFtczp0Lm1hcChfPT50aGlzLmNvbnZlcnRDaGlsZChfKSl9fWNvbnZlcnRQYXJhbWV0ZXJzKHQpe3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD90Lm1hcChyPT57dmFyIF87bGV0IGE9dGhpcy5jb252ZXJ0Q2hpbGQocik7cmV0dXJuIGEuZGVjb3JhdG9ycz0oKF89KDAsWmkuZ2V0RGVjb3JhdG9ycykocikpPT1udWxsP3ZvaWQgMDpfLm1hcChwPT50aGlzLmNvbnZlcnRDaGlsZChwKSkpPz9bXSxhfSk6W119Y29udmVydENoYWluRXhwcmVzc2lvbih0LHIpe2xldHtjaGlsZDphLGlzT3B0aW9uYWw6X309KCgpPT50LnR5cGU9PT1KLkFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24/e2NoaWxkOnQub2JqZWN0LGlzT3B0aW9uYWw6dC5vcHRpb25hbH06dC50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5DYWxsRXhwcmVzc2lvbj97Y2hpbGQ6dC5jYWxsZWUsaXNPcHRpb25hbDp0Lm9wdGlvbmFsfTp7Y2hpbGQ6dC5leHByZXNzaW9uLGlzT3B0aW9uYWw6ITF9KSgpLHA9KDAscGUuaXNDaGlsZFVud3JhcHBhYmxlT3B0aW9uYWxDaGFpbikocixhKTtpZighcCYmIV8pcmV0dXJuIHQ7aWYocCYmKDAscGUuaXNDaGFpbkV4cHJlc3Npb24pKGEpKXtsZXQgZD1hLmV4cHJlc3Npb247dC50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uP3Qub2JqZWN0PWQ6dC50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5DYWxsRXhwcmVzc2lvbj90LmNhbGxlZT1kOnQuZXhwcmVzc2lvbj1kfXJldHVybiB0aGlzLmNyZWF0ZU5vZGUocix7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkNoYWluRXhwcmVzc2lvbixleHByZXNzaW9uOnR9KX1kZWVwbHlDb3B5KHQpe3Qua2luZD09PV90LlN5bnRheEtpbmQuSlNEb2NGdW5jdGlvblR5cGUmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyx0LFwiSlNEb2MgdHlwZXMgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgZG9jdW1lbnRhdGlvbiBjb21tZW50cy5cIik7bGV0IHI9YFRTJHtFW3Qua2luZF19YDtpZih0aGlzLm9wdGlvbnMuZXJyb3JPblVua25vd25BU1RUeXBlJiYhSi5BU1RfTk9ERV9UWVBFU1tyXSl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gQVNUX05PREVfVFlQRTogXCIke3J9XCJgKTtsZXQgYT10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpyfSk7XCJ0eXBlXCJpbiB0JiYoYS50eXBlQW5ub3RhdGlvbj10LnR5cGUmJlwia2luZFwiaW4gdC50eXBlJiZfdC5pc1R5cGVOb2RlKHQudHlwZSk/dGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpOm51bGwpLFwidHlwZUFyZ3VtZW50c1wiaW4gdCYmKGEudHlwZUFyZ3VtZW50cz10LnR5cGVBcmd1bWVudHMmJlwicG9zXCJpbiB0LnR5cGVBcmd1bWVudHM/dGhpcy5jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24odC50eXBlQXJndW1lbnRzLHQpOm51bGwsTmUodGhpcyxQZSxcIm1cIixvaSkuY2FsbCh0aGlzLGEsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiKSksXCJ0eXBlUGFyYW1ldGVyc1wiaW4gdCYmKGEudHlwZVBhcmFtZXRlcnM9dC50eXBlUGFyYW1ldGVycyYmXCJwb3NcImluIHQudHlwZVBhcmFtZXRlcnM/dGhpcy5jb252ZXJ0VFNUeXBlUGFyYW1ldGVyc1RvVHlwZVBhcmFtZXRlcnNEZWNsYXJhdGlvbih0LnR5cGVQYXJhbWV0ZXJzKTpudWxsKTtsZXQgXz0oMCxaaS5nZXREZWNvcmF0b3JzKSh0KTtfIT1udWxsJiZfLmxlbmd0aCYmKGEuZGVjb3JhdG9ycz1fLm1hcChkPT50aGlzLmNvbnZlcnRDaGlsZChkKSkpO2xldCBwPW5ldyBTZXQoW1wiX2NoaWxkcmVuXCIsXCJkZWNvcmF0b3JzXCIsXCJlbmRcIixcImZsYWdzXCIsXCJpbGxlZ2FsRGVjb3JhdG9yc1wiLFwiaGVyaXRhZ2VDbGF1c2VzXCIsXCJsb2NhbHNcIixcImxvY2FsU3ltYm9sXCIsXCJqc0RvY1wiLFwia2luZFwiLFwibW9kaWZpZXJGbGFnc0NhY2hlXCIsXCJtb2RpZmllcnNcIixcIm5leHRDb250YWluZXJcIixcInBhcmVudFwiLFwicG9zXCIsXCJzeW1ib2xcIixcInRyYW5zZm9ybUZsYWdzXCIsXCJ0eXBlXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHQpLmZpbHRlcigoW2RdKT0+IXAuaGFzKGQpKS5mb3JFYWNoKChbZCxoXSk9PntBcnJheS5pc0FycmF5KGgpP2FbZF09aC5tYXAobD0+dGhpcy5jb252ZXJ0Q2hpbGQobCkpOmgmJnR5cGVvZiBoPT1cIm9iamVjdFwiJiZoLmtpbmQ/YVtkXT10aGlzLmNvbnZlcnRDaGlsZChoKTphW2RdPWh9KSxhfWNvbnZlcnRKU1hJZGVudGlmaWVyKHQpe2xldCByPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuSlNYSWRlbnRpZmllcixuYW1lOnQuZ2V0VGV4dCgpfSk7cmV0dXJuIHRoaXMucmVnaXN0ZXJUU05vZGVJbk5vZGVNYXAodCxyKSxyfWNvbnZlcnRKU1hOYW1lc3BhY2VPcklkZW50aWZpZXIodCl7aWYodC5raW5kPT09X3QuU3ludGF4S2luZC5Kc3hOYW1lc3BhY2VkTmFtZSl7bGV0IF89dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hOYW1lc3BhY2VkTmFtZSxuYW1lc3BhY2U6dGhpcy5jcmVhdGVOb2RlKHQubmFtZXNwYWNlLHt0eXBlOkouQVNUX05PREVfVFlQRVMuSlNYSWRlbnRpZmllcixuYW1lOnQubmFtZXNwYWNlLnRleHR9KSxuYW1lOnRoaXMuY3JlYXRlTm9kZSh0Lm5hbWUse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hJZGVudGlmaWVyLG5hbWU6dC5uYW1lLnRleHR9KX0pO3JldHVybiB0aGlzLnJlZ2lzdGVyVFNOb2RlSW5Ob2RlTWFwKHQsXyksX31sZXQgcj10LmdldFRleHQoKSxhPXIuaW5kZXhPZihcIjpcIik7aWYoYT4wKXtsZXQgXz0oMCxwZS5nZXRSYW5nZSkodCx0aGlzLmFzdCkscD10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWE5hbWVzcGFjZWROYW1lLG5hbWVzcGFjZTp0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWElkZW50aWZpZXIsbmFtZTpyLnNsaWNlKDAsYSkscmFuZ2U6W19bMF0sX1swXSthXX0pLG5hbWU6dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hJZGVudGlmaWVyLG5hbWU6ci5zbGljZShhKzEpLHJhbmdlOltfWzBdK2ErMSxfWzFdXX0pLHJhbmdlOl99KTtyZXR1cm4gdGhpcy5yZWdpc3RlclRTTm9kZUluTm9kZU1hcCh0LHApLHB9cmV0dXJuIHRoaXMuY29udmVydEpTWElkZW50aWZpZXIodCl9Y29udmVydEpTWFRhZ05hbWUodCxyKXtsZXQgYTtzd2l0Y2godC5raW5kKXtjYXNlIEUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uOnQubmFtZS5raW5kPT09RS5Qcml2YXRlSWRlbnRpZmllciYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHQubmFtZSxcIk5vbi1wcml2YXRlIGlkZW50aWZpZXIgZXhwZWN0ZWQuXCIpLGE9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hNZW1iZXJFeHByZXNzaW9uLG9iamVjdDp0aGlzLmNvbnZlcnRKU1hUYWdOYW1lKHQuZXhwcmVzc2lvbixyKSxwcm9wZXJ0eTp0aGlzLmNvbnZlcnRKU1hJZGVudGlmaWVyKHQubmFtZSl9KTticmVhaztjYXNlIEUuVGhpc0tleXdvcmQ6Y2FzZSBFLklkZW50aWZpZXI6ZGVmYXVsdDpyZXR1cm4gdGhpcy5jb252ZXJ0SlNYTmFtZXNwYWNlT3JJZGVudGlmaWVyKHQpfXJldHVybiB0aGlzLnJlZ2lzdGVyVFNOb2RlSW5Ob2RlTWFwKHQsYSksYX1jb252ZXJ0TWV0aG9kU2lnbmF0dXJlKHQpe3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTTWV0aG9kU2lnbmF0dXJlLGFjY2Vzc2liaWxpdHk6KDAscGUuZ2V0VFNOb2RlQWNjZXNzaWJpbGl0eSkodCksY29tcHV0ZWQ6KDAscGUuaXNDb21wdXRlZFByb3BlcnR5KSh0Lm5hbWUpLGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLGtpbmQ6KCgpPT57c3dpdGNoKHQua2luZCl7Y2FzZSBFLkdldEFjY2Vzc29yOnJldHVyblwiZ2V0XCI7Y2FzZSBFLlNldEFjY2Vzc29yOnJldHVyblwic2V0XCI7Y2FzZSBFLk1ldGhvZFNpZ25hdHVyZTpyZXR1cm5cIm1ldGhvZFwifX0pKCksb3B0aW9uYWw6KDAscGUuaXNPcHRpb25hbCkodCkscGFyYW1zOnRoaXMuY29udmVydFBhcmFtZXRlcnModC5wYXJhbWV0ZXJzKSxyZXR1cm5UeXBlOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHJlYWRvbmx5OigwLHBlLmhhc01vZGlmaWVyKShFLlJlYWRvbmx5S2V5d29yZCx0KSxzdGF0aWM6KDAscGUuaGFzTW9kaWZpZXIpKEUuU3RhdGljS2V5d29yZCx0KSx0eXBlUGFyYW1ldGVyczp0LnR5cGVQYXJhbWV0ZXJzJiZ0aGlzLmNvbnZlcnRUU1R5cGVQYXJhbWV0ZXJzVG9UeXBlUGFyYW1ldGVyc0RlY2xhcmF0aW9uKHQudHlwZVBhcmFtZXRlcnMpfSl9Y29udmVydEFzc2VydENsYXN1ZSh0KXtyZXR1cm4gdD09PXZvaWQgMD9bXTp0LmVsZW1lbnRzLm1hcChyPT50aGlzLmNvbnZlcnRDaGlsZChyKSl9Zml4UGFyZW50TG9jYXRpb24odCxyKXtyWzBdPHQucmFuZ2VbMF0mJih0LnJhbmdlWzBdPXJbMF0sdC5sb2Muc3RhcnQ9KDAscGUuZ2V0TGluZUFuZENoYXJhY3RlckZvcikodC5yYW5nZVswXSx0aGlzLmFzdCkpLHJbMV0+dC5yYW5nZVsxXSYmKHQucmFuZ2VbMV09clsxXSx0LmxvYy5lbmQ9KDAscGUuZ2V0TGluZUFuZENoYXJhY3RlckZvcikodC5yYW5nZVsxXSx0aGlzLmFzdCkpfWFzc2VydE1vZHVsZVNwZWNpZmllcih0LHIpe3ZhciBhOyFyJiZ0Lm1vZHVsZVNwZWNpZmllcj09bnVsbCYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLHQsXCJNb2R1bGUgc3BlY2lmaWVyIG11c3QgYmUgYSBzdHJpbmcgbGl0ZXJhbC5cIiksdC5tb2R1bGVTcGVjaWZpZXImJigoYT10Lm1vZHVsZVNwZWNpZmllcik9PW51bGw/dm9pZCAwOmEua2luZCkhPT1FLlN0cmluZ0xpdGVyYWwmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyx0Lm1vZHVsZVNwZWNpZmllcixcIk1vZHVsZSBzcGVjaWZpZXIgbXVzdCBiZSBhIHN0cmluZyBsaXRlcmFsLlwiKX1jb252ZXJ0Tm9kZSh0LHIpe3ZhciBhLF8scCxkLGg7c3dpdGNoKHQua2luZCl7Y2FzZSBFLlNvdXJjZUZpbGU6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuUHJvZ3JhbSxib2R5OnRoaXMuY29udmVydEJvZHlFeHByZXNzaW9ucyh0LnN0YXRlbWVudHMsdCksY29tbWVudHM6dm9pZCAwLHJhbmdlOlt0LmdldFN0YXJ0KHRoaXMuYXN0KSx0LmVuZE9mRmlsZVRva2VuLmVuZF0sc291cmNlVHlwZTp0LmV4dGVybmFsTW9kdWxlSW5kaWNhdG9yP1wibW9kdWxlXCI6XCJzY3JpcHRcIix0b2tlbnM6dm9pZCAwfSk7Y2FzZSBFLkJsb2NrOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkJsb2NrU3RhdGVtZW50LGJvZHk6dGhpcy5jb252ZXJ0Qm9keUV4cHJlc3Npb25zKHQuc3RhdGVtZW50cyx0KX0pO2Nhc2UgRS5JZGVudGlmaWVyOnJldHVybigwLHBlLmlzVGhpc0luVHlwZVF1ZXJ5KSh0KT90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRoaXNFeHByZXNzaW9ufSk6dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyLGRlY29yYXRvcnM6W10sbmFtZTp0LnRleHQsb3B0aW9uYWw6ITEsdHlwZUFubm90YXRpb246dm9pZCAwfSk7Y2FzZSBFLlByaXZhdGVJZGVudGlmaWVyOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlByaXZhdGVJZGVudGlmaWVyLG5hbWU6dC50ZXh0LnNsaWNlKDEpfSk7Y2FzZSBFLldpdGhTdGF0ZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuV2l0aFN0YXRlbWVudCxvYmplY3Q6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuc3RhdGVtZW50KX0pO2Nhc2UgRS5SZXR1cm5TdGF0ZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuUmV0dXJuU3RhdGVtZW50LGFyZ3VtZW50OnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbil9KTtjYXNlIEUuTGFiZWxlZFN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5MYWJlbGVkU3RhdGVtZW50LGxhYmVsOnRoaXMuY29udmVydENoaWxkKHQubGFiZWwpLGJvZHk6dGhpcy5jb252ZXJ0Q2hpbGQodC5zdGF0ZW1lbnQpfSk7Y2FzZSBFLkNvbnRpbnVlU3RhdGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkNvbnRpbnVlU3RhdGVtZW50LGxhYmVsOnRoaXMuY29udmVydENoaWxkKHQubGFiZWwpfSk7Y2FzZSBFLkJyZWFrU3RhdGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkJyZWFrU3RhdGVtZW50LGxhYmVsOnRoaXMuY29udmVydENoaWxkKHQubGFiZWwpfSk7Y2FzZSBFLklmU3RhdGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLklmU3RhdGVtZW50LHRlc3Q6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSxjb25zZXF1ZW50OnRoaXMuY29udmVydENoaWxkKHQudGhlblN0YXRlbWVudCksYWx0ZXJuYXRlOnRoaXMuY29udmVydENoaWxkKHQuZWxzZVN0YXRlbWVudCl9KTtjYXNlIEUuU3dpdGNoU3RhdGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlN3aXRjaFN0YXRlbWVudCxkaXNjcmltaW5hbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSxjYXNlczp0LmNhc2VCbG9jay5jbGF1c2VzLm1hcChsPT50aGlzLmNvbnZlcnRDaGlsZChsKSl9KTtjYXNlIEUuQ2FzZUNsYXVzZTpjYXNlIEUuRGVmYXVsdENsYXVzZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Td2l0Y2hDYXNlLHRlc3Q6dC5raW5kPT09RS5DYXNlQ2xhdXNlP3RoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbik6bnVsbCxjb25zZXF1ZW50OnQuc3RhdGVtZW50cy5tYXAobD0+dGhpcy5jb252ZXJ0Q2hpbGQobCkpfSk7Y2FzZSBFLlRocm93U3RhdGVtZW50OnJldHVybiB0LmV4cHJlc3Npb24uZW5kPT09dC5leHByZXNzaW9uLnBvcyYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLHQsXCJBIHRocm93IHN0YXRlbWVudCBtdXN0IHRocm93IGFuIGV4cHJlc3Npb24uXCIpLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVGhyb3dTdGF0ZW1lbnQsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5UcnlTdGF0ZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVHJ5U3RhdGVtZW50LGJsb2NrOnRoaXMuY29udmVydENoaWxkKHQudHJ5QmxvY2spLGhhbmRsZXI6dGhpcy5jb252ZXJ0Q2hpbGQodC5jYXRjaENsYXVzZSksZmluYWxpemVyOnRoaXMuY29udmVydENoaWxkKHQuZmluYWxseUJsb2NrKX0pO2Nhc2UgRS5DYXRjaENsYXVzZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5DYXRjaENsYXVzZSxwYXJhbTp0LnZhcmlhYmxlRGVjbGFyYXRpb24/dGhpcy5jb252ZXJ0QmluZGluZ05hbWVXaXRoVHlwZUFubm90YXRpb24odC52YXJpYWJsZURlY2xhcmF0aW9uLm5hbWUsdC52YXJpYWJsZURlY2xhcmF0aW9uLnR5cGUpOm51bGwsYm9keTp0aGlzLmNvbnZlcnRDaGlsZCh0LmJsb2NrKX0pO2Nhc2UgRS5XaGlsZVN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5XaGlsZVN0YXRlbWVudCx0ZXN0OnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbiksYm9keTp0aGlzLmNvbnZlcnRDaGlsZCh0LnN0YXRlbWVudCl9KTtjYXNlIEUuRG9TdGF0ZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRG9XaGlsZVN0YXRlbWVudCx0ZXN0OnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbiksYm9keTp0aGlzLmNvbnZlcnRDaGlsZCh0LnN0YXRlbWVudCl9KTtjYXNlIEUuRm9yU3RhdGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkZvclN0YXRlbWVudCxpbml0OnRoaXMuY29udmVydENoaWxkKHQuaW5pdGlhbGl6ZXIpLHRlc3Q6dGhpcy5jb252ZXJ0Q2hpbGQodC5jb25kaXRpb24pLHVwZGF0ZTp0aGlzLmNvbnZlcnRDaGlsZCh0LmluY3JlbWVudG9yKSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuc3RhdGVtZW50KX0pO2Nhc2UgRS5Gb3JJblN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Gb3JJblN0YXRlbWVudCxsZWZ0OnRoaXMuY29udmVydFBhdHRlcm4odC5pbml0aWFsaXplcikscmlnaHQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuc3RhdGVtZW50KX0pO2Nhc2UgRS5Gb3JPZlN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Gb3JPZlN0YXRlbWVudCxsZWZ0OnRoaXMuY29udmVydFBhdHRlcm4odC5pbml0aWFsaXplcikscmlnaHQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuc3RhdGVtZW50KSxhd2FpdDohISh0LmF3YWl0TW9kaWZpZXImJnQuYXdhaXRNb2RpZmllci5raW5kPT09RS5Bd2FpdEtleXdvcmQpfSk7Y2FzZSBFLkZ1bmN0aW9uRGVjbGFyYXRpb246e2xldCBsPSgwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLHY9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6bHx8IXQuYm9keT9KLkFTVF9OT0RFX1RZUEVTLlRTRGVjbGFyZUZ1bmN0aW9uOkouQVNUX05PREVfVFlQRVMuRnVuY3Rpb25EZWNsYXJhdGlvbixhc3luYzooMCxwZS5oYXNNb2RpZmllcikoRS5Bc3luY0tleXdvcmQsdCksYm9keTp0aGlzLmNvbnZlcnRDaGlsZCh0LmJvZHkpfHx2b2lkIDAsZGVjbGFyZTpsLGV4cHJlc3Npb246ITEsZ2VuZXJhdG9yOiEhdC5hc3Rlcmlza1Rva2VuLGlkOnRoaXMuY29udmVydENoaWxkKHQubmFtZSkscGFyYW1zOnRoaXMuY29udmVydFBhcmFtZXRlcnModC5wYXJhbWV0ZXJzKSxyZXR1cm5UeXBlOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtyZXR1cm4gdGhpcy5maXhFeHBvcnRzKHQsdil9Y2FzZSBFLlZhcmlhYmxlRGVjbGFyYXRpb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVmFyaWFibGVEZWNsYXJhdG9yLGRlZmluaXRlOiEhdC5leGNsYW1hdGlvblRva2VuLGlkOnRoaXMuY29udmVydEJpbmRpbmdOYW1lV2l0aFR5cGVBbm5vdGF0aW9uKHQubmFtZSx0LnR5cGUsdCksaW5pdDp0aGlzLmNvbnZlcnRDaGlsZCh0LmluaXRpYWxpemVyKX0pO2Nhc2UgRS5WYXJpYWJsZVN0YXRlbWVudDp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5WYXJpYWJsZURlY2xhcmF0aW9uLGRlY2xhcmF0aW9uczp0LmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnMubWFwKHY9PnRoaXMuY29udmVydENoaWxkKHYpKSxkZWNsYXJlOigwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLGtpbmQ6KDAscGUuZ2V0RGVjbGFyYXRpb25LaW5kKSh0LmRlY2xhcmF0aW9uTGlzdCl9KTtyZXR1cm4gbC5kZWNsYXJhdGlvbnMubGVuZ3RofHxOZSh0aGlzLFBlLFwibVwiLGJyKS5jYWxsKHRoaXMsdCxcIkEgdmFyaWFibGUgZGVjbGFyYXRpb24gbGlzdCBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHZhcmlhYmxlIGRlY2xhcmF0b3IuXCIpLChsLmtpbmQ9PT1cInVzaW5nXCJ8fGwua2luZD09PVwiYXdhaXQgdXNpbmdcIikmJnQuZGVjbGFyYXRpb25MaXN0LmRlY2xhcmF0aW9ucy5mb3JFYWNoKCh2LHkpPT57bC5kZWNsYXJhdGlvbnNbeV0uaW5pdD09bnVsbCYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHYsYCcke2wua2luZH0nIGRlY2xhcmF0aW9ucyBtdXN0IGJlIGluaXRpYWxpemVkLmApLGwuZGVjbGFyYXRpb25zW3ldLmlkLnR5cGUhPT1KLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXImJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyx2Lm5hbWUsYCcke2wua2luZH0nIGRlY2xhcmF0aW9ucyBtYXkgbm90IGhhdmUgYmluZGluZyBwYXR0ZXJucy5gKX0pLHRoaXMuZml4RXhwb3J0cyh0LGwpfWNhc2UgRS5WYXJpYWJsZURlY2xhcmF0aW9uTGlzdDp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5WYXJpYWJsZURlY2xhcmF0aW9uLGRlY2xhcmF0aW9uczp0LmRlY2xhcmF0aW9ucy5tYXAodj0+dGhpcy5jb252ZXJ0Q2hpbGQodikpLGRlY2xhcmU6ITEsa2luZDooMCxwZS5nZXREZWNsYXJhdGlvbktpbmQpKHQpfSk7cmV0dXJuKGwua2luZD09PVwidXNpbmdcInx8bC5raW5kPT09XCJhd2FpdCB1c2luZ1wiKSYmdC5kZWNsYXJhdGlvbnMuZm9yRWFjaCgodix5KT0+e2wuZGVjbGFyYXRpb25zW3ldLmluaXQhPW51bGwmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyx2LGAnJHtsLmtpbmR9JyBkZWNsYXJhdGlvbnMgbWF5IG5vdCBiZSBpbml0aWFsaXplZCBpbiBmb3Igc3RhdGVtZW50LmApLGwuZGVjbGFyYXRpb25zW3ldLmlkLnR5cGUhPT1KLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXImJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyx2Lm5hbWUsYCcke2wua2luZH0nIGRlY2xhcmF0aW9ucyBtYXkgbm90IGhhdmUgYmluZGluZyBwYXR0ZXJucy5gKX0pLGx9Y2FzZSBFLkV4cHJlc3Npb25TdGF0ZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRXhwcmVzc2lvblN0YXRlbWVudCxkaXJlY3RpdmU6dm9pZCAwLGV4cHJlc3Npb246dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5UaGlzS2V5d29yZDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UaGlzRXhwcmVzc2lvbn0pO2Nhc2UgRS5BcnJheUxpdGVyYWxFeHByZXNzaW9uOnJldHVybiB0aGlzLmFsbG93UGF0dGVybj90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkFycmF5UGF0dGVybixkZWNvcmF0b3JzOltdLGVsZW1lbnRzOnQuZWxlbWVudHMubWFwKGw9PnRoaXMuY29udmVydFBhdHRlcm4obCkpLG9wdGlvbmFsOiExLHR5cGVBbm5vdGF0aW9uOnZvaWQgMH0pOnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQXJyYXlFeHByZXNzaW9uLGVsZW1lbnRzOnQuZWxlbWVudHMubWFwKGw9PnRoaXMuY29udmVydENoaWxkKGwpKX0pO2Nhc2UgRS5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjp7aWYodGhpcy5hbGxvd1BhdHRlcm4pcmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuT2JqZWN0UGF0dGVybixkZWNvcmF0b3JzOltdLG9wdGlvbmFsOiExLHByb3BlcnRpZXM6dC5wcm9wZXJ0aWVzLm1hcCh2PT50aGlzLmNvbnZlcnRQYXR0ZXJuKHYpKSx0eXBlQW5ub3RhdGlvbjp2b2lkIDB9KTtsZXQgbD1bXTtmb3IobGV0IHYgb2YgdC5wcm9wZXJ0aWVzKSh2LmtpbmQ9PT1FLkdldEFjY2Vzc29yfHx2LmtpbmQ9PT1FLlNldEFjY2Vzc29yfHx2LmtpbmQ9PT1FLk1ldGhvZERlY2xhcmF0aW9uKSYmIXYuYm9keSYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLHYuZW5kLTEsXCIneycgZXhwZWN0ZWQuXCIpLGwucHVzaCh0aGlzLmNvbnZlcnRDaGlsZCh2KSk7cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuT2JqZWN0RXhwcmVzc2lvbixwcm9wZXJ0aWVzOmx9KX1jYXNlIEUuUHJvcGVydHlBc3NpZ25tZW50OntsZXR7cXVlc3Rpb25Ub2tlbjpsLGV4Y2xhbWF0aW9uVG9rZW46dn09dDtyZXR1cm4gbCYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLGwsXCJBIHByb3BlcnR5IGFzc2lnbm1lbnQgY2Fubm90IGhhdmUgYSBxdWVzdGlvbiB0b2tlbi5cIiksdiYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHYsXCJBIHByb3BlcnR5IGFzc2lnbm1lbnQgY2Fubm90IGhhdmUgYW4gZXhjbGFtYXRpb24gdG9rZW4uXCIpLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuUHJvcGVydHksa2V5OnRoaXMuY29udmVydENoaWxkKHQubmFtZSksdmFsdWU6dGhpcy5jb252ZXJ0ZXIodC5pbml0aWFsaXplcix0LHRoaXMuYWxsb3dQYXR0ZXJuKSxjb21wdXRlZDooMCxwZS5pc0NvbXB1dGVkUHJvcGVydHkpKHQubmFtZSksbWV0aG9kOiExLG9wdGlvbmFsOiExLHNob3J0aGFuZDohMSxraW5kOlwiaW5pdFwifSl9Y2FzZSBFLlNob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudDp7bGV0e21vZGlmaWVyczpsLHF1ZXN0aW9uVG9rZW46dixleGNsYW1hdGlvblRva2VuOnl9PXQ7cmV0dXJuIGwmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxsWzBdLFwiQSBzaG9ydGhhbmQgcHJvcGVydHkgYXNzaWdubWVudCBjYW5ub3QgaGF2ZSBtb2RpZmllcnMuXCIpLHYmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyx2LFwiQSBzaG9ydGhhbmQgcHJvcGVydHkgYXNzaWdubWVudCBjYW5ub3QgaGF2ZSBhIHF1ZXN0aW9uIHRva2VuLlwiKSx5JiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMseSxcIkEgc2hvcnRoYW5kIHByb3BlcnR5IGFzc2lnbm1lbnQgY2Fubm90IGhhdmUgYW4gZXhjbGFtYXRpb24gdG9rZW4uXCIpLHQub2JqZWN0QXNzaWdubWVudEluaXRpYWxpemVyP3RoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuUHJvcGVydHksa2V5OnRoaXMuY29udmVydENoaWxkKHQubmFtZSksdmFsdWU6dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Bc3NpZ25tZW50UGF0dGVybixkZWNvcmF0b3JzOltdLGxlZnQ6dGhpcy5jb252ZXJ0UGF0dGVybih0Lm5hbWUpLG9wdGlvbmFsOiExLHJpZ2h0OnRoaXMuY29udmVydENoaWxkKHQub2JqZWN0QXNzaWdubWVudEluaXRpYWxpemVyKSx0eXBlQW5ub3RhdGlvbjp2b2lkIDB9KSxjb21wdXRlZDohMSxtZXRob2Q6ITEsb3B0aW9uYWw6ITEsc2hvcnRoYW5kOiEwLGtpbmQ6XCJpbml0XCJ9KTp0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlByb3BlcnR5LGNvbXB1dGVkOiExLGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLGtpbmQ6XCJpbml0XCIsbWV0aG9kOiExLG9wdGlvbmFsOiExLHNob3J0aGFuZDohMCx2YWx1ZTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpfSl9Y2FzZSBFLkNvbXB1dGVkUHJvcGVydHlOYW1lOnJldHVybiB0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pO2Nhc2UgRS5Qcm9wZXJ0eURlY2xhcmF0aW9uOntsZXQgbD0oMCxwZS5oYXNNb2RpZmllcikoRS5BYnN0cmFjdEtleXdvcmQsdCk7bCYmdC5pbml0aWFsaXplciYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHQuaW5pdGlhbGl6ZXIsXCJBYnN0cmFjdCBwcm9wZXJ0eSBjYW5ub3QgaGF2ZSBhbiBpbml0aWFsaXplci5cIik7bGV0IHY9KDAscGUuaGFzTW9kaWZpZXIpKEUuQWNjZXNzb3JLZXl3b3JkLHQpLHk9KCgpPT52P2w/Si5BU1RfTk9ERV9UWVBFUy5UU0Fic3RyYWN0QWNjZXNzb3JQcm9wZXJ0eTpKLkFTVF9OT0RFX1RZUEVTLkFjY2Vzc29yUHJvcGVydHk6bD9KLkFTVF9OT0RFX1RZUEVTLlRTQWJzdHJhY3RQcm9wZXJ0eURlZmluaXRpb246Si5BU1RfTk9ERV9UWVBFUy5Qcm9wZXJ0eURlZmluaXRpb24pKCksQz10aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpO3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTp5LGtleTpDLGFjY2Vzc2liaWxpdHk6KDAscGUuZ2V0VFNOb2RlQWNjZXNzaWJpbGl0eSkodCksdmFsdWU6bD9udWxsOnRoaXMuY29udmVydENoaWxkKHQuaW5pdGlhbGl6ZXIpLGNvbXB1dGVkOigwLHBlLmlzQ29tcHV0ZWRQcm9wZXJ0eSkodC5uYW1lKSxzdGF0aWM6KDAscGUuaGFzTW9kaWZpZXIpKEUuU3RhdGljS2V5d29yZCx0KSxyZWFkb25seTooMCxwZS5oYXNNb2RpZmllcikoRS5SZWFkb25seUtleXdvcmQsdCksZGVjb3JhdG9yczooKGE9KDAsWmkuZ2V0RGVjb3JhdG9ycykodCkpPT1udWxsP3ZvaWQgMDphLm1hcChTPT50aGlzLmNvbnZlcnRDaGlsZChTKSkpPz9bXSxkZWNsYXJlOigwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLG92ZXJyaWRlOigwLHBlLmhhc01vZGlmaWVyKShFLk92ZXJyaWRlS2V5d29yZCx0KSx0eXBlQW5ub3RhdGlvbjp0LnR5cGUmJnRoaXMuY29udmVydFR5cGVBbm5vdGF0aW9uKHQudHlwZSx0KSxvcHRpb25hbDooQy50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5MaXRlcmFsfHx0Lm5hbWUua2luZD09PUUuSWRlbnRpZmllcnx8dC5uYW1lLmtpbmQ9PT1FLkNvbXB1dGVkUHJvcGVydHlOYW1lfHx0Lm5hbWUua2luZD09PUUuUHJpdmF0ZUlkZW50aWZpZXIpJiYhIXQucXVlc3Rpb25Ub2tlbixkZWZpbml0ZTohIXQuZXhjbGFtYXRpb25Ub2tlbn0pfWNhc2UgRS5HZXRBY2Nlc3NvcjpjYXNlIEUuU2V0QWNjZXNzb3I6aWYodC5wYXJlbnQua2luZD09PUUuSW50ZXJmYWNlRGVjbGFyYXRpb258fHQucGFyZW50LmtpbmQ9PT1FLlR5cGVMaXRlcmFsKXJldHVybiB0aGlzLmNvbnZlcnRNZXRob2RTaWduYXR1cmUodCk7Y2FzZSBFLk1ldGhvZERlY2xhcmF0aW9uOntsZXQgbD10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTp0LmJvZHk/Si5BU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkV4cHJlc3Npb246Si5BU1RfTk9ERV9UWVBFUy5UU0VtcHR5Qm9keUZ1bmN0aW9uRXhwcmVzc2lvbixpZDpudWxsLGdlbmVyYXRvcjohIXQuYXN0ZXJpc2tUb2tlbixleHByZXNzaW9uOiExLGFzeW5jOigwLHBlLmhhc01vZGlmaWVyKShFLkFzeW5jS2V5d29yZCx0KSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuYm9keSksZGVjbGFyZTohMSxyYW5nZTpbdC5wYXJhbWV0ZXJzLnBvcy0xLHQuZW5kXSxwYXJhbXM6W10scmV0dXJuVHlwZTp0LnR5cGUmJnRoaXMuY29udmVydFR5cGVBbm5vdGF0aW9uKHQudHlwZSx0KSx0eXBlUGFyYW1ldGVyczp0LnR5cGVQYXJhbWV0ZXJzJiZ0aGlzLmNvbnZlcnRUU1R5cGVQYXJhbWV0ZXJzVG9UeXBlUGFyYW1ldGVyc0RlY2xhcmF0aW9uKHQudHlwZVBhcmFtZXRlcnMpfSk7bC50eXBlUGFyYW1ldGVycyYmdGhpcy5maXhQYXJlbnRMb2NhdGlvbihsLGwudHlwZVBhcmFtZXRlcnMucmFuZ2UpO2xldCB2O2lmKHIua2luZD09PUUuT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24pbC5wYXJhbXM9dC5wYXJhbWV0ZXJzLm1hcCh5PT50aGlzLmNvbnZlcnRDaGlsZCh5KSksdj10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlByb3BlcnR5LGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLHZhbHVlOmwsY29tcHV0ZWQ6KDAscGUuaXNDb21wdXRlZFByb3BlcnR5KSh0Lm5hbWUpLG9wdGlvbmFsOiEhdC5xdWVzdGlvblRva2VuLG1ldGhvZDp0LmtpbmQ9PT1FLk1ldGhvZERlY2xhcmF0aW9uLHNob3J0aGFuZDohMSxraW5kOlwiaW5pdFwifSk7ZWxzZXtsLnBhcmFtcz10aGlzLmNvbnZlcnRQYXJhbWV0ZXJzKHQucGFyYW1ldGVycyk7bGV0IHk9KDAscGUuaGFzTW9kaWZpZXIpKEUuQWJzdHJhY3RLZXl3b3JkLHQpP0ouQVNUX05PREVfVFlQRVMuVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb246Si5BU1RfTk9ERV9UWVBFUy5NZXRob2REZWZpbml0aW9uO3Y9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6eSxhY2Nlc3NpYmlsaXR5OigwLHBlLmdldFRTTm9kZUFjY2Vzc2liaWxpdHkpKHQpLGNvbXB1dGVkOigwLHBlLmlzQ29tcHV0ZWRQcm9wZXJ0eSkodC5uYW1lKSxkZWNvcmF0b3JzOigoXz0oMCxaaS5nZXREZWNvcmF0b3JzKSh0KSk9PW51bGw/dm9pZCAwOl8ubWFwKEM9PnRoaXMuY29udmVydENoaWxkKEMpKSk/P1tdLGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLGtpbmQ6XCJtZXRob2RcIixvcHRpb25hbDohIXQucXVlc3Rpb25Ub2tlbixvdmVycmlkZTooMCxwZS5oYXNNb2RpZmllcikoRS5PdmVycmlkZUtleXdvcmQsdCksc3RhdGljOigwLHBlLmhhc01vZGlmaWVyKShFLlN0YXRpY0tleXdvcmQsdCksdmFsdWU6bH0pfXJldHVybiB0LmtpbmQ9PT1FLkdldEFjY2Vzc29yP3Yua2luZD1cImdldFwiOnQua2luZD09PUUuU2V0QWNjZXNzb3I/di5raW5kPVwic2V0XCI6IXYuc3RhdGljJiZ0Lm5hbWUua2luZD09PUUuU3RyaW5nTGl0ZXJhbCYmdC5uYW1lLnRleHQ9PT1cImNvbnN0cnVjdG9yXCImJnYudHlwZSE9PUouQVNUX05PREVfVFlQRVMuUHJvcGVydHkmJih2LmtpbmQ9XCJjb25zdHJ1Y3RvclwiKSx2fWNhc2UgRS5Db25zdHJ1Y3Rvcjp7bGV0IGw9KDAscGUuZ2V0TGFzdE1vZGlmaWVyKSh0KSx2PShsJiYoMCxwZS5maW5kTmV4dFRva2VuKShsLHQsdGhpcy5hc3QpKT8/dC5nZXRGaXJzdFRva2VuKCkseT10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTp0LmJvZHk/Si5BU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkV4cHJlc3Npb246Si5BU1RfTk9ERV9UWVBFUy5UU0VtcHR5Qm9keUZ1bmN0aW9uRXhwcmVzc2lvbixhc3luYzohMSxib2R5OnRoaXMuY29udmVydENoaWxkKHQuYm9keSksZGVjbGFyZTohMSxleHByZXNzaW9uOiExLGdlbmVyYXRvcjohMSxpZDpudWxsLHBhcmFtczp0aGlzLmNvbnZlcnRQYXJhbWV0ZXJzKHQucGFyYW1ldGVycykscmFuZ2U6W3QucGFyYW1ldGVycy5wb3MtMSx0LmVuZF0scmV0dXJuVHlwZTp0LnR5cGUmJnRoaXMuY29udmVydFR5cGVBbm5vdGF0aW9uKHQudHlwZSx0KSx0eXBlUGFyYW1ldGVyczp0LnR5cGVQYXJhbWV0ZXJzJiZ0aGlzLmNvbnZlcnRUU1R5cGVQYXJhbWV0ZXJzVG9UeXBlUGFyYW1ldGVyc0RlY2xhcmF0aW9uKHQudHlwZVBhcmFtZXRlcnMpfSk7eS50eXBlUGFyYW1ldGVycyYmdGhpcy5maXhQYXJlbnRMb2NhdGlvbih5LHkudHlwZVBhcmFtZXRlcnMucmFuZ2UpO2xldCBDPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcixkZWNvcmF0b3JzOltdLG5hbWU6XCJjb25zdHJ1Y3RvclwiLG9wdGlvbmFsOiExLHJhbmdlOlt2LmdldFN0YXJ0KHRoaXMuYXN0KSx2LmVuZF0sdHlwZUFubm90YXRpb246dm9pZCAwfSksUz0oMCxwZS5oYXNNb2RpZmllcikoRS5TdGF0aWNLZXl3b3JkLHQpO3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTooMCxwZS5oYXNNb2RpZmllcikoRS5BYnN0cmFjdEtleXdvcmQsdCk/Si5BU1RfTk9ERV9UWVBFUy5UU0Fic3RyYWN0TWV0aG9kRGVmaW5pdGlvbjpKLkFTVF9OT0RFX1RZUEVTLk1ldGhvZERlZmluaXRpb24sYWNjZXNzaWJpbGl0eTooMCxwZS5nZXRUU05vZGVBY2Nlc3NpYmlsaXR5KSh0KSxjb21wdXRlZDohMSxkZWNvcmF0b3JzOltdLG9wdGlvbmFsOiExLGtleTpDLGtpbmQ6Uz9cIm1ldGhvZFwiOlwiY29uc3RydWN0b3JcIixvdmVycmlkZTohMSxzdGF0aWM6Uyx2YWx1ZTp5fSl9Y2FzZSBFLkZ1bmN0aW9uRXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5GdW5jdGlvbkV4cHJlc3Npb24sYXN5bmM6KDAscGUuaGFzTW9kaWZpZXIpKEUuQXN5bmNLZXl3b3JkLHQpLGJvZHk6dGhpcy5jb252ZXJ0Q2hpbGQodC5ib2R5KSxkZWNsYXJlOiExLGV4cHJlc3Npb246ITEsZ2VuZXJhdG9yOiEhdC5hc3Rlcmlza1Rva2VuLGlkOnRoaXMuY29udmVydENoaWxkKHQubmFtZSkscGFyYW1zOnRoaXMuY29udmVydFBhcmFtZXRlcnModC5wYXJhbWV0ZXJzKSxyZXR1cm5UeXBlOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtjYXNlIEUuU3VwZXJLZXl3b3JkOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlN1cGVyfSk7Y2FzZSBFLkFycmF5QmluZGluZ1BhdHRlcm46cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQXJyYXlQYXR0ZXJuLGRlY29yYXRvcnM6W10sZWxlbWVudHM6dC5lbGVtZW50cy5tYXAobD0+dGhpcy5jb252ZXJ0UGF0dGVybihsKSksb3B0aW9uYWw6ITEsdHlwZUFubm90YXRpb246dm9pZCAwfSk7Y2FzZSBFLk9taXR0ZWRFeHByZXNzaW9uOnJldHVybiBudWxsO2Nhc2UgRS5PYmplY3RCaW5kaW5nUGF0dGVybjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5PYmplY3RQYXR0ZXJuLGRlY29yYXRvcnM6W10sb3B0aW9uYWw6ITEscHJvcGVydGllczp0LmVsZW1lbnRzLm1hcChsPT50aGlzLmNvbnZlcnRQYXR0ZXJuKGwpKSx0eXBlQW5ub3RhdGlvbjp2b2lkIDB9KTtjYXNlIEUuQmluZGluZ0VsZW1lbnQ6e2lmKHIua2luZD09PUUuQXJyYXlCaW5kaW5nUGF0dGVybil7bGV0IHY9dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lLHIpO3JldHVybiB0LmluaXRpYWxpemVyP3RoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQXNzaWdubWVudFBhdHRlcm4sZGVjb3JhdG9yczpbXSxsZWZ0OnYsb3B0aW9uYWw6ITEscmlnaHQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5pbml0aWFsaXplciksdHlwZUFubm90YXRpb246dm9pZCAwfSk6dC5kb3REb3REb3RUb2tlbj90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlJlc3RFbGVtZW50LGFyZ3VtZW50OnYsZGVjb3JhdG9yczpbXSxvcHRpb25hbDohMSx0eXBlQW5ub3RhdGlvbjp2b2lkIDAsdmFsdWU6dm9pZCAwfSk6dn1sZXQgbDtyZXR1cm4gdC5kb3REb3REb3RUb2tlbj9sPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuUmVzdEVsZW1lbnQsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5wcm9wZXJ0eU5hbWU/P3QubmFtZSksZGVjb3JhdG9yczpbXSxvcHRpb25hbDohMSx0eXBlQW5ub3RhdGlvbjp2b2lkIDAsdmFsdWU6dm9pZCAwfSk6bD10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlByb3BlcnR5LGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0LnByb3BlcnR5TmFtZT8/dC5uYW1lKSx2YWx1ZTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLGNvbXB1dGVkOiEhKHQucHJvcGVydHlOYW1lJiZ0LnByb3BlcnR5TmFtZS5raW5kPT09RS5Db21wdXRlZFByb3BlcnR5TmFtZSksbWV0aG9kOiExLG9wdGlvbmFsOiExLHNob3J0aGFuZDohdC5wcm9wZXJ0eU5hbWUsa2luZDpcImluaXRcIn0pLHQuaW5pdGlhbGl6ZXImJihsLnZhbHVlPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQXNzaWdubWVudFBhdHRlcm4sZGVjb3JhdG9yczpbXSxsZWZ0OnRoaXMuY29udmVydENoaWxkKHQubmFtZSksb3B0aW9uYWw6ITEscmFuZ2U6W3QubmFtZS5nZXRTdGFydCh0aGlzLmFzdCksdC5pbml0aWFsaXplci5lbmRdLHJpZ2h0OnRoaXMuY29udmVydENoaWxkKHQuaW5pdGlhbGl6ZXIpLHR5cGVBbm5vdGF0aW9uOnZvaWQgMH0pKSxsfWNhc2UgRS5BcnJvd0Z1bmN0aW9uOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkFycm93RnVuY3Rpb25FeHByZXNzaW9uLGdlbmVyYXRvcjohMSxpZDpudWxsLHBhcmFtczp0aGlzLmNvbnZlcnRQYXJhbWV0ZXJzKHQucGFyYW1ldGVycyksYm9keTp0aGlzLmNvbnZlcnRDaGlsZCh0LmJvZHkpLGFzeW5jOigwLHBlLmhhc01vZGlmaWVyKShFLkFzeW5jS2V5d29yZCx0KSxleHByZXNzaW9uOnQuYm9keS5raW5kIT09RS5CbG9jayxyZXR1cm5UeXBlOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtjYXNlIEUuWWllbGRFeHByZXNzaW9uOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLllpZWxkRXhwcmVzc2lvbixkZWxlZ2F0ZTohIXQuYXN0ZXJpc2tUb2tlbixhcmd1bWVudDp0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pfSk7Y2FzZSBFLkF3YWl0RXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Bd2FpdEV4cHJlc3Npb24sYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5Ob1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UZW1wbGF0ZUxpdGVyYWwscXVhc2lzOlt0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRlbXBsYXRlRWxlbWVudCx2YWx1ZTp7cmF3OnRoaXMuYXN0LnRleHQuc2xpY2UodC5nZXRTdGFydCh0aGlzLmFzdCkrMSx0LmVuZC0xKSxjb29rZWQ6dC50ZXh0fSx0YWlsOiEwfSldLGV4cHJlc3Npb25zOltdfSk7Y2FzZSBFLlRlbXBsYXRlRXhwcmVzc2lvbjp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UZW1wbGF0ZUxpdGVyYWwscXVhc2lzOlt0aGlzLmNvbnZlcnRDaGlsZCh0LmhlYWQpXSxleHByZXNzaW9uczpbXX0pO3JldHVybiB0LnRlbXBsYXRlU3BhbnMuZm9yRWFjaCh2PT57bC5leHByZXNzaW9ucy5wdXNoKHRoaXMuY29udmVydENoaWxkKHYuZXhwcmVzc2lvbikpLGwucXVhc2lzLnB1c2godGhpcy5jb252ZXJ0Q2hpbGQodi5saXRlcmFsKSl9KSxsfWNhc2UgRS5UYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LE5lKHRoaXMsUGUsXCJtXCIsb2kpLmNhbGwodGhpcyx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbix0eXBlQXJndW1lbnRzOnQudHlwZUFyZ3VtZW50cyYmdGhpcy5jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24odC50eXBlQXJndW1lbnRzLHQpLHRhZzp0aGlzLmNvbnZlcnRDaGlsZCh0LnRhZykscXVhc2k6dGhpcy5jb252ZXJ0Q2hpbGQodC50ZW1wbGF0ZSl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpO2Nhc2UgRS5UZW1wbGF0ZUhlYWQ6Y2FzZSBFLlRlbXBsYXRlTWlkZGxlOmNhc2UgRS5UZW1wbGF0ZVRhaWw6e2xldCBsPXQua2luZD09PUUuVGVtcGxhdGVUYWlsO3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRlbXBsYXRlRWxlbWVudCx2YWx1ZTp7cmF3OnRoaXMuYXN0LnRleHQuc2xpY2UodC5nZXRTdGFydCh0aGlzLmFzdCkrMSx0LmVuZC0obD8xOjIpKSxjb29rZWQ6dC50ZXh0fSx0YWlsOmx9KX1jYXNlIEUuU3ByZWFkQXNzaWdubWVudDpjYXNlIEUuU3ByZWFkRWxlbWVudDpyZXR1cm4gdGhpcy5hbGxvd1BhdHRlcm4/dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5SZXN0RWxlbWVudCxhcmd1bWVudDp0aGlzLmNvbnZlcnRQYXR0ZXJuKHQuZXhwcmVzc2lvbiksZGVjb3JhdG9yczpbXSxvcHRpb25hbDohMSx0eXBlQW5ub3RhdGlvbjp2b2lkIDAsdmFsdWU6dm9pZCAwfSk6dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5TcHJlYWRFbGVtZW50LGFyZ3VtZW50OnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbil9KTtjYXNlIEUuUGFyYW1ldGVyOntsZXQgbCx2O3JldHVybiB0LmRvdERvdERvdFRva2VuP2w9dj10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlJlc3RFbGVtZW50LGFyZ3VtZW50OnRoaXMuY29udmVydENoaWxkKHQubmFtZSksZGVjb3JhdG9yczpbXSxvcHRpb25hbDohMSx0eXBlQW5ub3RhdGlvbjp2b2lkIDAsdmFsdWU6dm9pZCAwfSk6dC5pbml0aWFsaXplcj8obD10aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLHY9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5Bc3NpZ25tZW50UGF0dGVybixkZWNvcmF0b3JzOltdLGxlZnQ6bCxvcHRpb25hbDohMSxyaWdodDp0aGlzLmNvbnZlcnRDaGlsZCh0LmluaXRpYWxpemVyKSx0eXBlQW5ub3RhdGlvbjp2b2lkIDB9KSwoMCxaaS5nZXRNb2RpZmllcnMpKHQpJiYodi5yYW5nZVswXT1sLnJhbmdlWzBdLHYubG9jPSgwLHBlLmdldExvY0Zvcikodi5yYW5nZSx0aGlzLmFzdCkpKTpsPXY9dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lLHIpLHQudHlwZSYmKGwudHlwZUFubm90YXRpb249dGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHRoaXMuZml4UGFyZW50TG9jYXRpb24obCxsLnR5cGVBbm5vdGF0aW9uLnJhbmdlKSksdC5xdWVzdGlvblRva2VuJiYodC5xdWVzdGlvblRva2VuLmVuZD5sLnJhbmdlWzFdJiYobC5yYW5nZVsxXT10LnF1ZXN0aW9uVG9rZW4uZW5kLGwubG9jLmVuZD0oMCxwZS5nZXRMaW5lQW5kQ2hhcmFjdGVyRm9yKShsLnJhbmdlWzFdLHRoaXMuYXN0KSksbC5vcHRpb25hbD0hMCksKDAsWmkuZ2V0TW9kaWZpZXJzKSh0KT90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTUGFyYW1ldGVyUHJvcGVydHksYWNjZXNzaWJpbGl0eTooMCxwZS5nZXRUU05vZGVBY2Nlc3NpYmlsaXR5KSh0KSxkZWNvcmF0b3JzOltdLG92ZXJyaWRlOigwLHBlLmhhc01vZGlmaWVyKShFLk92ZXJyaWRlS2V5d29yZCx0KSxwYXJhbWV0ZXI6dixyZWFkb25seTooMCxwZS5oYXNNb2RpZmllcikoRS5SZWFkb25seUtleXdvcmQsdCksc3RhdGljOigwLHBlLmhhc01vZGlmaWVyKShFLlN0YXRpY0tleXdvcmQsdCl9KTp2fWNhc2UgRS5DbGFzc0RlY2xhcmF0aW9uOiF0Lm5hbWUmJighKDAscGUuaGFzTW9kaWZpZXIpKF90LlN5bnRheEtpbmQuRXhwb3J0S2V5d29yZCx0KXx8ISgwLHBlLmhhc01vZGlmaWVyKShfdC5TeW50YXhLaW5kLkRlZmF1bHRLZXl3b3JkLHQpKSYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLHQsXCJBIGNsYXNzIGRlY2xhcmF0aW9uIHdpdGhvdXQgdGhlICdkZWZhdWx0JyBtb2RpZmllciBtdXN0IGhhdmUgYSBuYW1lLlwiKTtjYXNlIEUuQ2xhc3NFeHByZXNzaW9uOntsZXQgbD10Lmhlcml0YWdlQ2xhdXNlcz8/W10sdj10LmtpbmQ9PT1FLkNsYXNzRGVjbGFyYXRpb24/Si5BU1RfTk9ERV9UWVBFUy5DbGFzc0RlY2xhcmF0aW9uOkouQVNUX05PREVfVFlQRVMuQ2xhc3NFeHByZXNzaW9uLHksQztmb3IobGV0IGsgb2YgbCl7bGV0e3Rva2VuOkwsdHlwZXM6R309aztHLmxlbmd0aD09PTAmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyxrLGAnJHtfdC50b2tlblRvU3RyaW5nKEwpfScgbGlzdCBjYW5ub3QgYmUgZW1wdHkuYCksTD09PUUuRXh0ZW5kc0tleXdvcmQ/KHkmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyxrLFwiJ2V4dGVuZHMnIGNsYXVzZSBhbHJlYWR5IHNlZW4uXCIpLEMmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyxrLFwiJ2V4dGVuZHMnIGNsYXVzZSBtdXN0IHByZWNlZGUgJ2ltcGxlbWVudHMnIGNsYXVzZS5cIiksRy5sZW5ndGg+MSYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLEdbMV0sXCJDbGFzc2VzIGNhbiBvbmx5IGV4dGVuZCBhIHNpbmdsZSBjbGFzcy5cIikseT8/KHk9aykpOkw9PT1FLkltcGxlbWVudHNLZXl3b3JkJiYoQyYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLGssXCInaW1wbGVtZW50cycgY2xhdXNlIGFscmVhZHkgc2Vlbi5cIiksQz8/KEM9aykpfWxldCBTPXRoaXMuY3JlYXRlTm9kZSh0LE5lKHRoaXMsUGUsXCJtXCIsb2kpLmNhbGwodGhpcyx7dHlwZTp2LGFic3RyYWN0OigwLHBlLmhhc01vZGlmaWVyKShFLkFic3RyYWN0S2V5d29yZCx0KSxib2R5OnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQ2xhc3NCb2R5LGJvZHk6dC5tZW1iZXJzLmZpbHRlcihwZS5pc0VTVHJlZUNsYXNzTWVtYmVyKS5tYXAoaz0+dGhpcy5jb252ZXJ0Q2hpbGQoaykpLHJhbmdlOlt0Lm1lbWJlcnMucG9zLTEsdC5lbmRdfSksZGVjbGFyZTooMCxwZS5oYXNNb2RpZmllcikoRS5EZWNsYXJlS2V5d29yZCx0KSxkZWNvcmF0b3JzOigocD0oMCxaaS5nZXREZWNvcmF0b3JzKSh0KSk9PW51bGw/dm9pZCAwOnAubWFwKGs9PnRoaXMuY29udmVydENoaWxkKGspKSk/P1tdLGlkOnRoaXMuY29udmVydENoaWxkKHQubmFtZSksaW1wbGVtZW50czooQz09bnVsbD92b2lkIDA6Qy50eXBlcy5tYXAoaz0+dGhpcy5jb252ZXJ0Q2hpbGQoaykpKT8/W10sc3VwZXJDbGFzczp5IT1udWxsJiZ5LnR5cGVzWzBdP3RoaXMuY29udmVydENoaWxkKHkudHlwZXNbMF0uZXhwcmVzc2lvbik6bnVsbCxzdXBlclR5cGVBcmd1bWVudHM6dm9pZCAwLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9LFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCIpKTtyZXR1cm4oZD15PT1udWxsP3ZvaWQgMDp5LnR5cGVzWzBdKSE9bnVsbCYmZC50eXBlQXJndW1lbnRzJiYoUy5zdXBlclR5cGVBcmd1bWVudHM9dGhpcy5jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24oeS50eXBlc1swXS50eXBlQXJndW1lbnRzLHkudHlwZXNbMF0pKSx0aGlzLmZpeEV4cG9ydHModCxTKX1jYXNlIEUuTW9kdWxlQmxvY2s6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNNb2R1bGVCbG9jayxib2R5OnRoaXMuY29udmVydEJvZHlFeHByZXNzaW9ucyh0LnN0YXRlbWVudHMsdCl9KTtjYXNlIEUuSW1wb3J0RGVjbGFyYXRpb246e3RoaXMuYXNzZXJ0TW9kdWxlU3BlY2lmaWVyKHQsITEpO2xldCBsPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuSW1wb3J0RGVjbGFyYXRpb24sc291cmNlOnRoaXMuY29udmVydENoaWxkKHQubW9kdWxlU3BlY2lmaWVyKSxzcGVjaWZpZXJzOltdLGltcG9ydEtpbmQ6XCJ2YWx1ZVwiLGFzc2VydGlvbnM6dGhpcy5jb252ZXJ0QXNzZXJ0Q2xhc3VlKHQuYXNzZXJ0Q2xhdXNlKX0pO2lmKHQuaW1wb3J0Q2xhdXNlJiYodC5pbXBvcnRDbGF1c2UuaXNUeXBlT25seSYmKGwuaW1wb3J0S2luZD1cInR5cGVcIiksdC5pbXBvcnRDbGF1c2UubmFtZSYmbC5zcGVjaWZpZXJzLnB1c2godGhpcy5jb252ZXJ0Q2hpbGQodC5pbXBvcnRDbGF1c2UpKSx0LmltcG9ydENsYXVzZS5uYW1lZEJpbmRpbmdzKSlzd2l0Y2godC5pbXBvcnRDbGF1c2UubmFtZWRCaW5kaW5ncy5raW5kKXtjYXNlIEUuTmFtZXNwYWNlSW1wb3J0Omwuc3BlY2lmaWVycy5wdXNoKHRoaXMuY29udmVydENoaWxkKHQuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3MpKTticmVhaztjYXNlIEUuTmFtZWRJbXBvcnRzOmwuc3BlY2lmaWVycz1sLnNwZWNpZmllcnMuY29uY2F0KHQuaW1wb3J0Q2xhdXNlLm5hbWVkQmluZGluZ3MuZWxlbWVudHMubWFwKHY9PnRoaXMuY29udmVydENoaWxkKHYpKSk7YnJlYWt9cmV0dXJuIGx9Y2FzZSBFLk5hbWVzcGFjZUltcG9ydDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5JbXBvcnROYW1lc3BhY2VTcGVjaWZpZXIsbG9jYWw6dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKX0pO2Nhc2UgRS5JbXBvcnRTcGVjaWZpZXI6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuSW1wb3J0U3BlY2lmaWVyLGxvY2FsOnRoaXMuY29udmVydENoaWxkKHQubmFtZSksaW1wb3J0ZWQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5wcm9wZXJ0eU5hbWU/P3QubmFtZSksaW1wb3J0S2luZDp0LmlzVHlwZU9ubHk/XCJ0eXBlXCI6XCJ2YWx1ZVwifSk7Y2FzZSBFLkltcG9ydENsYXVzZTp7bGV0IGw9dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKTtyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5JbXBvcnREZWZhdWx0U3BlY2lmaWVyLGxvY2FsOmwscmFuZ2U6bC5yYW5nZX0pfWNhc2UgRS5FeHBvcnREZWNsYXJhdGlvbjpyZXR1cm4oKGg9dC5leHBvcnRDbGF1c2UpPT1udWxsP3ZvaWQgMDpoLmtpbmQpPT09RS5OYW1lZEV4cG9ydHM/KHRoaXMuYXNzZXJ0TW9kdWxlU3BlY2lmaWVyKHQsITApLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRXhwb3J0TmFtZWREZWNsYXJhdGlvbixzb3VyY2U6dGhpcy5jb252ZXJ0Q2hpbGQodC5tb2R1bGVTcGVjaWZpZXIpLHNwZWNpZmllcnM6dC5leHBvcnRDbGF1c2UuZWxlbWVudHMubWFwKGw9PnRoaXMuY29udmVydENoaWxkKGwpKSxleHBvcnRLaW5kOnQuaXNUeXBlT25seT9cInR5cGVcIjpcInZhbHVlXCIsZGVjbGFyYXRpb246bnVsbCxhc3NlcnRpb25zOnRoaXMuY29udmVydEFzc2VydENsYXN1ZSh0LmFzc2VydENsYXVzZSl9KSk6KHRoaXMuYXNzZXJ0TW9kdWxlU3BlY2lmaWVyKHQsITEpLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRXhwb3J0QWxsRGVjbGFyYXRpb24sc291cmNlOnRoaXMuY29udmVydENoaWxkKHQubW9kdWxlU3BlY2lmaWVyKSxleHBvcnRLaW5kOnQuaXNUeXBlT25seT9cInR5cGVcIjpcInZhbHVlXCIsZXhwb3J0ZWQ6dC5leHBvcnRDbGF1c2UmJnQuZXhwb3J0Q2xhdXNlLmtpbmQ9PT1FLk5hbWVzcGFjZUV4cG9ydD90aGlzLmNvbnZlcnRDaGlsZCh0LmV4cG9ydENsYXVzZS5uYW1lKTpudWxsLGFzc2VydGlvbnM6dGhpcy5jb252ZXJ0QXNzZXJ0Q2xhc3VlKHQuYXNzZXJ0Q2xhdXNlKX0pKTtjYXNlIEUuRXhwb3J0U3BlY2lmaWVyOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkV4cG9ydFNwZWNpZmllcixsb2NhbDp0aGlzLmNvbnZlcnRDaGlsZCh0LnByb3BlcnR5TmFtZT8/dC5uYW1lKSxleHBvcnRlZDp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLGV4cG9ydEtpbmQ6dC5pc1R5cGVPbmx5P1widHlwZVwiOlwidmFsdWVcIn0pO2Nhc2UgRS5FeHBvcnRBc3NpZ25tZW50OnJldHVybiB0LmlzRXhwb3J0RXF1YWxzP3RoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNFeHBvcnRBc3NpZ25tZW50LGV4cHJlc3Npb246dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pOnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uLGRlY2xhcmF0aW9uOnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbiksZXhwb3J0S2luZDpcInZhbHVlXCJ9KTtjYXNlIEUuUHJlZml4VW5hcnlFeHByZXNzaW9uOmNhc2UgRS5Qb3N0Zml4VW5hcnlFeHByZXNzaW9uOntsZXQgbD0oMCxwZS5nZXRUZXh0Rm9yVG9rZW5LaW5kKSh0Lm9wZXJhdG9yKTtyZXR1cm4gbD09PVwiKytcInx8bD09PVwiLS1cIj90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlVwZGF0ZUV4cHJlc3Npb24sb3BlcmF0b3I6bCxwcmVmaXg6dC5raW5kPT09RS5QcmVmaXhVbmFyeUV4cHJlc3Npb24sYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5vcGVyYW5kKX0pOnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVW5hcnlFeHByZXNzaW9uLG9wZXJhdG9yOmwscHJlZml4OnQua2luZD09PUUuUHJlZml4VW5hcnlFeHByZXNzaW9uLGFyZ3VtZW50OnRoaXMuY29udmVydENoaWxkKHQub3BlcmFuZCl9KX1jYXNlIEUuRGVsZXRlRXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5VbmFyeUV4cHJlc3Npb24sb3BlcmF0b3I6XCJkZWxldGVcIixwcmVmaXg6ITAsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5Wb2lkRXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5VbmFyeUV4cHJlc3Npb24sb3BlcmF0b3I6XCJ2b2lkXCIscHJlZml4OiEwLGFyZ3VtZW50OnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbil9KTtjYXNlIEUuVHlwZU9mRXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5VbmFyeUV4cHJlc3Npb24sb3BlcmF0b3I6XCJ0eXBlb2ZcIixwcmVmaXg6ITAsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5UeXBlT3BlcmF0b3I6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNUeXBlT3BlcmF0b3Isb3BlcmF0b3I6KDAscGUuZ2V0VGV4dEZvclRva2VuS2luZCkodC5vcGVyYXRvciksdHlwZUFubm90YXRpb246dGhpcy5jb252ZXJ0Q2hpbGQodC50eXBlKX0pO2Nhc2UgRS5CaW5hcnlFeHByZXNzaW9uOntpZigoMCxwZS5pc0NvbW1hKSh0Lm9wZXJhdG9yVG9rZW4pKXtsZXQgdj10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlNlcXVlbmNlRXhwcmVzc2lvbixleHByZXNzaW9uczpbXX0pLHk9dGhpcy5jb252ZXJ0Q2hpbGQodC5sZWZ0KTtyZXR1cm4geS50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5TZXF1ZW5jZUV4cHJlc3Npb24mJnQubGVmdC5raW5kIT09RS5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbj92LmV4cHJlc3Npb25zPXYuZXhwcmVzc2lvbnMuY29uY2F0KHkuZXhwcmVzc2lvbnMpOnYuZXhwcmVzc2lvbnMucHVzaCh5KSx2LmV4cHJlc3Npb25zLnB1c2godGhpcy5jb252ZXJ0Q2hpbGQodC5yaWdodCkpLHZ9bGV0IGw9KDAscGUuZ2V0QmluYXJ5RXhwcmVzc2lvblR5cGUpKHQub3BlcmF0b3JUb2tlbik7cmV0dXJuIHRoaXMuYWxsb3dQYXR0ZXJuJiZsLnR5cGU9PT1KLkFTVF9OT0RFX1RZUEVTLkFzc2lnbm1lbnRFeHByZXNzaW9uP3RoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuQXNzaWdubWVudFBhdHRlcm4sZGVjb3JhdG9yczpbXSxsZWZ0OnRoaXMuY29udmVydFBhdHRlcm4odC5sZWZ0LHQpLG9wdGlvbmFsOiExLHJpZ2h0OnRoaXMuY29udmVydENoaWxkKHQucmlnaHQpLHR5cGVBbm5vdGF0aW9uOnZvaWQgMH0pOnRoaXMuY3JlYXRlTm9kZSh0LHsuLi5sLGxlZnQ6dGhpcy5jb252ZXJ0ZXIodC5sZWZ0LHQsbC50eXBlPT09Si5BU1RfTk9ERV9UWVBFUy5Bc3NpZ25tZW50RXhwcmVzc2lvbikscmlnaHQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5yaWdodCl9KX1jYXNlIEUuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uOntsZXQgbD10aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pLHY9dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKSx5PSExLEM9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uLG9iamVjdDpsLHByb3BlcnR5OnYsY29tcHV0ZWQ6eSxvcHRpb25hbDp0LnF1ZXN0aW9uRG90VG9rZW4hPT12b2lkIDB9KTtyZXR1cm4gdGhpcy5jb252ZXJ0Q2hhaW5FeHByZXNzaW9uKEMsdCl9Y2FzZSBFLkVsZW1lbnRBY2Nlc3NFeHByZXNzaW9uOntsZXQgbD10aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pLHY9dGhpcy5jb252ZXJ0Q2hpbGQodC5hcmd1bWVudEV4cHJlc3Npb24pLHk9ITAsQz10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24sb2JqZWN0OmwscHJvcGVydHk6dixjb21wdXRlZDp5LG9wdGlvbmFsOnQucXVlc3Rpb25Eb3RUb2tlbiE9PXZvaWQgMH0pO3JldHVybiB0aGlzLmNvbnZlcnRDaGFpbkV4cHJlc3Npb24oQyx0KX1jYXNlIEUuQ2FsbEV4cHJlc3Npb246e2lmKHQuZXhwcmVzc2lvbi5raW5kPT09RS5JbXBvcnRLZXl3b3JkKXJldHVybiB0LmFyZ3VtZW50cy5sZW5ndGghPT0xJiZ0LmFyZ3VtZW50cy5sZW5ndGghPT0yJiZOZSh0aGlzLFBlLFwibVwiLGJyKS5jYWxsKHRoaXMsdC5hcmd1bWVudHNbMl0/P3QsXCJEeW5hbWljIGltcG9ydCByZXF1aXJlcyBleGFjdGx5IG9uZSBvciB0d28gYXJndW1lbnRzLlwiKSx0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkltcG9ydEV4cHJlc3Npb24sc291cmNlOnRoaXMuY29udmVydENoaWxkKHQuYXJndW1lbnRzWzBdKSxhdHRyaWJ1dGVzOnQuYXJndW1lbnRzWzFdP3RoaXMuY29udmVydENoaWxkKHQuYXJndW1lbnRzWzFdKTpudWxsfSk7bGV0IGw9dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSx2PXQuYXJndW1lbnRzLm1hcChTPT50aGlzLmNvbnZlcnRDaGlsZChTKSkseT10LnR5cGVBcmd1bWVudHMmJnRoaXMuY29udmVydFR5cGVBcmd1bWVudHNUb1R5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uKHQudHlwZUFyZ3VtZW50cyx0KSxDPXRoaXMuY3JlYXRlTm9kZSh0LE5lKHRoaXMsUGUsXCJtXCIsb2kpLmNhbGwodGhpcyx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkNhbGxFeHByZXNzaW9uLGNhbGxlZTpsLGFyZ3VtZW50czp2LG9wdGlvbmFsOnQucXVlc3Rpb25Eb3RUb2tlbiE9PXZvaWQgMCx0eXBlQXJndW1lbnRzOnl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpO3JldHVybiB0aGlzLmNvbnZlcnRDaGFpbkV4cHJlc3Npb24oQyx0KX1jYXNlIEUuTmV3RXhwcmVzc2lvbjp7bGV0IGw9dC50eXBlQXJndW1lbnRzJiZ0aGlzLmNvbnZlcnRUeXBlQXJndW1lbnRzVG9UeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbih0LnR5cGVBcmd1bWVudHMsdCk7cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LE5lKHRoaXMsUGUsXCJtXCIsb2kpLmNhbGwodGhpcyx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLk5ld0V4cHJlc3Npb24sYXJndW1lbnRzOnQuYXJndW1lbnRzP3QuYXJndW1lbnRzLm1hcCh2PT50aGlzLmNvbnZlcnRDaGlsZCh2KSk6W10sY2FsbGVlOnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbiksdHlwZUFyZ3VtZW50czpsfSxcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCIpKX1jYXNlIEUuQ29uZGl0aW9uYWxFeHByZXNzaW9uOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkNvbmRpdGlvbmFsRXhwcmVzc2lvbix0ZXN0OnRoaXMuY29udmVydENoaWxkKHQuY29uZGl0aW9uKSxjb25zZXF1ZW50OnRoaXMuY29udmVydENoaWxkKHQud2hlblRydWUpLGFsdGVybmF0ZTp0aGlzLmNvbnZlcnRDaGlsZCh0LndoZW5GYWxzZSl9KTtjYXNlIEUuTWV0YVByb3BlcnR5OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLk1ldGFQcm9wZXJ0eSxtZXRhOnRoaXMuY3JlYXRlTm9kZSh0LmdldEZpcnN0VG9rZW4oKSx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIsZGVjb3JhdG9yczpbXSxuYW1lOigwLHBlLmdldFRleHRGb3JUb2tlbktpbmQpKHQua2V5d29yZFRva2VuKSxvcHRpb25hbDohMSx0eXBlQW5ub3RhdGlvbjp2b2lkIDB9KSxwcm9wZXJ0eTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpfSk7Y2FzZSBFLkRlY29yYXRvcjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5EZWNvcmF0b3IsZXhwcmVzc2lvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pfSk7Y2FzZSBFLlN0cmluZ0xpdGVyYWw6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuTGl0ZXJhbCx2YWx1ZTpyLmtpbmQ9PT1FLkpzeEF0dHJpYnV0ZT8oMCxwZS51bmVzY2FwZVN0cmluZ0xpdGVyYWxUZXh0KSh0LnRleHQpOnQudGV4dCxyYXc6dC5nZXRUZXh0KCl9KTtjYXNlIEUuTnVtZXJpY0xpdGVyYWw6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuTGl0ZXJhbCx2YWx1ZTpOdW1iZXIodC50ZXh0KSxyYXc6dC5nZXRUZXh0KCl9KTtjYXNlIEUuQmlnSW50TGl0ZXJhbDp7bGV0IGw9KDAscGUuZ2V0UmFuZ2UpKHQsdGhpcy5hc3QpLHY9dGhpcy5hc3QudGV4dC5zbGljZShsWzBdLGxbMV0pLHk9di5zbGljZSgwLC0xKS5yZXBsYWNlKC9fL2csXCJcIiksQz10eXBlb2YgQmlnSW50PFwidVwiP0JpZ0ludCh5KTpudWxsO3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkxpdGVyYWwscmF3OnYsdmFsdWU6QyxiaWdpbnQ6Qz09bnVsbD95OlN0cmluZyhDKSxyYW5nZTpsfSl9Y2FzZSBFLlJlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbDp7bGV0IGw9dC50ZXh0LnNsaWNlKDEsdC50ZXh0Lmxhc3RJbmRleE9mKFwiL1wiKSksdj10LnRleHQuc2xpY2UodC50ZXh0Lmxhc3RJbmRleE9mKFwiL1wiKSsxKSx5PW51bGw7dHJ5e3k9bmV3IFJlZ0V4cChsLHYpfWNhdGNoe31yZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5MaXRlcmFsLHZhbHVlOnkscmF3OnQudGV4dCxyZWdleDp7cGF0dGVybjpsLGZsYWdzOnZ9fSl9Y2FzZSBFLlRydWVLZXl3b3JkOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkxpdGVyYWwsdmFsdWU6ITAscmF3OlwidHJ1ZVwifSk7Y2FzZSBFLkZhbHNlS2V5d29yZDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5MaXRlcmFsLHZhbHVlOiExLHJhdzpcImZhbHNlXCJ9KTtjYXNlIEUuTnVsbEtleXdvcmQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuTGl0ZXJhbCx2YWx1ZTpudWxsLHJhdzpcIm51bGxcIn0pO2Nhc2UgRS5FbXB0eVN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5FbXB0eVN0YXRlbWVudH0pO2Nhc2UgRS5EZWJ1Z2dlclN0YXRlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5EZWJ1Z2dlclN0YXRlbWVudH0pO2Nhc2UgRS5Kc3hFbGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWEVsZW1lbnQsb3BlbmluZ0VsZW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5vcGVuaW5nRWxlbWVudCksY2xvc2luZ0VsZW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5jbG9zaW5nRWxlbWVudCksY2hpbGRyZW46dC5jaGlsZHJlbi5tYXAobD0+dGhpcy5jb252ZXJ0Q2hpbGQobCkpfSk7Y2FzZSBFLkpzeEZyYWdtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWEZyYWdtZW50LG9wZW5pbmdGcmFnbWVudDp0aGlzLmNvbnZlcnRDaGlsZCh0Lm9wZW5pbmdGcmFnbWVudCksY2xvc2luZ0ZyYWdtZW50OnRoaXMuY29udmVydENoaWxkKHQuY2xvc2luZ0ZyYWdtZW50KSxjaGlsZHJlbjp0LmNoaWxkcmVuLm1hcChsPT50aGlzLmNvbnZlcnRDaGlsZChsKSl9KTtjYXNlIEUuSnN4U2VsZkNsb3NpbmdFbGVtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWEVsZW1lbnQsb3BlbmluZ0VsZW1lbnQ6dGhpcy5jcmVhdGVOb2RlKHQsTmUodGhpcyxQZSxcIm1cIixvaSkuY2FsbCh0aGlzLHt0eXBlOkouQVNUX05PREVfVFlQRVMuSlNYT3BlbmluZ0VsZW1lbnQsdHlwZUFyZ3VtZW50czp0LnR5cGVBcmd1bWVudHM/dGhpcy5jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24odC50eXBlQXJndW1lbnRzLHQpOnZvaWQgMCxzZWxmQ2xvc2luZzohMCxuYW1lOnRoaXMuY29udmVydEpTWFRhZ05hbWUodC50YWdOYW1lLHQpLGF0dHJpYnV0ZXM6dC5hdHRyaWJ1dGVzLnByb3BlcnRpZXMubWFwKGw9PnRoaXMuY29udmVydENoaWxkKGwpKSxyYW5nZTooMCxwZS5nZXRSYW5nZSkodCx0aGlzLmFzdCl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpLGNsb3NpbmdFbGVtZW50Om51bGwsY2hpbGRyZW46W119KTtjYXNlIEUuSnN4T3BlbmluZ0VsZW1lbnQ6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LE5lKHRoaXMsUGUsXCJtXCIsb2kpLmNhbGwodGhpcyx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWE9wZW5pbmdFbGVtZW50LHR5cGVBcmd1bWVudHM6dC50eXBlQXJndW1lbnRzJiZ0aGlzLmNvbnZlcnRUeXBlQXJndW1lbnRzVG9UeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbih0LnR5cGVBcmd1bWVudHMsdCksc2VsZkNsb3Npbmc6ITEsbmFtZTp0aGlzLmNvbnZlcnRKU1hUYWdOYW1lKHQudGFnTmFtZSx0KSxhdHRyaWJ1dGVzOnQuYXR0cmlidXRlcy5wcm9wZXJ0aWVzLm1hcChsPT50aGlzLmNvbnZlcnRDaGlsZChsKSl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpO2Nhc2UgRS5Kc3hDbG9zaW5nRWxlbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hDbG9zaW5nRWxlbWVudCxuYW1lOnRoaXMuY29udmVydEpTWFRhZ05hbWUodC50YWdOYW1lLHQpfSk7Y2FzZSBFLkpzeE9wZW5pbmdGcmFnbWVudDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hPcGVuaW5nRnJhZ21lbnR9KTtjYXNlIEUuSnN4Q2xvc2luZ0ZyYWdtZW50OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWENsb3NpbmdGcmFnbWVudH0pO2Nhc2UgRS5Kc3hFeHByZXNzaW9uOntsZXQgbD10LmV4cHJlc3Npb24/dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKTp0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWEVtcHR5RXhwcmVzc2lvbixyYW5nZTpbdC5nZXRTdGFydCh0aGlzLmFzdCkrMSx0LmdldEVuZCgpLTFdfSk7cmV0dXJuIHQuZG90RG90RG90VG9rZW4/dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hTcHJlYWRDaGlsZCxleHByZXNzaW9uOmx9KTp0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLkpTWEV4cHJlc3Npb25Db250YWluZXIsZXhwcmVzc2lvbjpsfSl9Y2FzZSBFLkpzeEF0dHJpYnV0ZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hBdHRyaWJ1dGUsbmFtZTp0aGlzLmNvbnZlcnRKU1hOYW1lc3BhY2VPcklkZW50aWZpZXIodC5uYW1lKSx2YWx1ZTp0aGlzLmNvbnZlcnRDaGlsZCh0LmluaXRpYWxpemVyKX0pO2Nhc2UgRS5Kc3hUZXh0OntsZXQgbD10LmdldEZ1bGxTdGFydCgpLHY9dC5nZXRFbmQoKSx5PXRoaXMuYXN0LnRleHQuc2xpY2UobCx2KTtyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hUZXh0LHZhbHVlOigwLHBlLnVuZXNjYXBlU3RyaW5nTGl0ZXJhbFRleHQpKHkpLHJhdzp5LHJhbmdlOltsLHZdfSl9Y2FzZSBFLkpzeFNwcmVhZEF0dHJpYnV0ZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5KU1hTcHJlYWRBdHRyaWJ1dGUsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO2Nhc2UgRS5RdWFsaWZpZWROYW1lOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTUXVhbGlmaWVkTmFtZSxsZWZ0OnRoaXMuY29udmVydENoaWxkKHQubGVmdCkscmlnaHQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5yaWdodCl9KTtjYXNlIEUuVHlwZVJlZmVyZW5jZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQsTmUodGhpcyxQZSxcIm1cIixvaSkuY2FsbCh0aGlzLHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNUeXBlUmVmZXJlbmNlLHR5cGVOYW1lOnRoaXMuY29udmVydENoaWxkKHQudHlwZU5hbWUpLHR5cGVBcmd1bWVudHM6dC50eXBlQXJndW1lbnRzJiZ0aGlzLmNvbnZlcnRUeXBlQXJndW1lbnRzVG9UeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbih0LnR5cGVBcmd1bWVudHMsdCl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpO2Nhc2UgRS5UeXBlUGFyYW1ldGVyOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTVHlwZVBhcmFtZXRlcixuYW1lOnRoaXMuY29udmVydENoaWxkKHQubmFtZSksY29uc3RyYWludDp0LmNvbnN0cmFpbnQmJnRoaXMuY29udmVydENoaWxkKHQuY29uc3RyYWludCksZGVmYXVsdDp0LmRlZmF1bHQ/dGhpcy5jb252ZXJ0Q2hpbGQodC5kZWZhdWx0KTp2b2lkIDAsaW46KDAscGUuaGFzTW9kaWZpZXIpKEUuSW5LZXl3b3JkLHQpLG91dDooMCxwZS5oYXNNb2RpZmllcikoRS5PdXRLZXl3b3JkLHQpLGNvbnN0OigwLHBlLmhhc01vZGlmaWVyKShFLkNvbnN0S2V5d29yZCx0KX0pO2Nhc2UgRS5UaGlzVHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1RoaXNUeXBlfSk7Y2FzZSBFLkFueUtleXdvcmQ6Y2FzZSBFLkJpZ0ludEtleXdvcmQ6Y2FzZSBFLkJvb2xlYW5LZXl3b3JkOmNhc2UgRS5OZXZlcktleXdvcmQ6Y2FzZSBFLk51bWJlcktleXdvcmQ6Y2FzZSBFLk9iamVjdEtleXdvcmQ6Y2FzZSBFLlN0cmluZ0tleXdvcmQ6Y2FzZSBFLlN5bWJvbEtleXdvcmQ6Y2FzZSBFLlVua25vd25LZXl3b3JkOmNhc2UgRS5Wb2lkS2V5d29yZDpjYXNlIEUuVW5kZWZpbmVkS2V5d29yZDpjYXNlIEUuSW50cmluc2ljS2V5d29yZDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFU1tgVFMke0VbdC5raW5kXX1gXX0pO2Nhc2UgRS5Ob25OdWxsRXhwcmVzc2lvbjp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU05vbk51bGxFeHByZXNzaW9uLGV4cHJlc3Npb246dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKX0pO3JldHVybiB0aGlzLmNvbnZlcnRDaGFpbkV4cHJlc3Npb24obCx0KX1jYXNlIEUuVHlwZUxpdGVyYWw6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNUeXBlTGl0ZXJhbCxtZW1iZXJzOnQubWVtYmVycy5tYXAobD0+dGhpcy5jb252ZXJ0Q2hpbGQobCkpfSk7Y2FzZSBFLkFycmF5VHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0FycmF5VHlwZSxlbGVtZW50VHlwZTp0aGlzLmNvbnZlcnRDaGlsZCh0LmVsZW1lbnRUeXBlKX0pO2Nhc2UgRS5JbmRleGVkQWNjZXNzVHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0luZGV4ZWRBY2Nlc3NUeXBlLG9iamVjdFR5cGU6dGhpcy5jb252ZXJ0Q2hpbGQodC5vYmplY3RUeXBlKSxpbmRleFR5cGU6dGhpcy5jb252ZXJ0Q2hpbGQodC5pbmRleFR5cGUpfSk7Y2FzZSBFLkNvbmRpdGlvbmFsVHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0NvbmRpdGlvbmFsVHlwZSxjaGVja1R5cGU6dGhpcy5jb252ZXJ0Q2hpbGQodC5jaGVja1R5cGUpLGV4dGVuZHNUeXBlOnRoaXMuY29udmVydENoaWxkKHQuZXh0ZW5kc1R5cGUpLHRydWVUeXBlOnRoaXMuY29udmVydENoaWxkKHQudHJ1ZVR5cGUpLGZhbHNlVHlwZTp0aGlzLmNvbnZlcnRDaGlsZCh0LmZhbHNlVHlwZSl9KTtjYXNlIEUuVHlwZVF1ZXJ5OnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCxOZSh0aGlzLFBlLFwibVwiLG9pKS5jYWxsKHRoaXMse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1R5cGVRdWVyeSxleHByTmFtZTp0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJOYW1lKSx0eXBlQXJndW1lbnRzOnQudHlwZUFyZ3VtZW50cyYmdGhpcy5jb252ZXJ0VHlwZUFyZ3VtZW50c1RvVHlwZVBhcmFtZXRlckluc3RhbnRpYXRpb24odC50eXBlQXJndW1lbnRzLHQpfSxcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCIpKTtjYXNlIEUuTWFwcGVkVHlwZTpyZXR1cm4gdC5tZW1iZXJzJiZ0Lm1lbWJlcnMubGVuZ3RoPjAmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyx0Lm1lbWJlcnNbMF0sXCJBIG1hcHBlZCB0eXBlIG1heSBub3QgZGVjbGFyZSBwcm9wZXJ0aWVzIG9yIG1ldGhvZHMuXCIpLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNNYXBwZWRUeXBlLG5hbWVUeXBlOnRoaXMuY29udmVydENoaWxkKHQubmFtZVR5cGUpPz9udWxsLG9wdGlvbmFsOnQucXVlc3Rpb25Ub2tlbiYmKHQucXVlc3Rpb25Ub2tlbi5raW5kPT09RS5RdWVzdGlvblRva2VufHwoMCxwZS5nZXRUZXh0Rm9yVG9rZW5LaW5kKSh0LnF1ZXN0aW9uVG9rZW4ua2luZCkpLHJlYWRvbmx5OnQucmVhZG9ubHlUb2tlbiYmKHQucmVhZG9ubHlUb2tlbi5raW5kPT09RS5SZWFkb25seUtleXdvcmR8fCgwLHBlLmdldFRleHRGb3JUb2tlbktpbmQpKHQucmVhZG9ubHlUb2tlbi5raW5kKSksdHlwZUFubm90YXRpb246dC50eXBlJiZ0aGlzLmNvbnZlcnRDaGlsZCh0LnR5cGUpLHR5cGVQYXJhbWV0ZXI6dGhpcy5jb252ZXJ0Q2hpbGQodC50eXBlUGFyYW1ldGVyKX0pO2Nhc2UgRS5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbjpyZXR1cm4gdGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uLHIpO2Nhc2UgRS5UeXBlQWxpYXNEZWNsYXJhdGlvbjp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1R5cGVBbGlhc0RlY2xhcmF0aW9uLGRlY2xhcmU6KDAscGUuaGFzTW9kaWZpZXIpKEUuRGVjbGFyZUtleXdvcmQsdCksaWQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKSx0eXBlQW5ub3RhdGlvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LnR5cGUpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtyZXR1cm4gdGhpcy5maXhFeHBvcnRzKHQsbCl9Y2FzZSBFLk1ldGhvZFNpZ25hdHVyZTpyZXR1cm4gdGhpcy5jb252ZXJ0TWV0aG9kU2lnbmF0dXJlKHQpO2Nhc2UgRS5Qcm9wZXJ0eVNpZ25hdHVyZTp7bGV0e2luaXRpYWxpemVyOmx9PXQ7cmV0dXJuIGwmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxsLFwiQSBwcm9wZXJ0eSBzaWduYXR1cmUgY2Fubm90IGhhdmUgYW4gaW5pdGlhbGl6ZXIuXCIpLHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNQcm9wZXJ0eVNpZ25hdHVyZSxhY2Nlc3NpYmlsaXR5OigwLHBlLmdldFRTTm9kZUFjY2Vzc2liaWxpdHkpKHQpLGNvbXB1dGVkOigwLHBlLmlzQ29tcHV0ZWRQcm9wZXJ0eSkodC5uYW1lKSxrZXk6dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKSxvcHRpb25hbDooMCxwZS5pc09wdGlvbmFsKSh0KSxyZWFkb25seTooMCxwZS5oYXNNb2RpZmllcikoRS5SZWFkb25seUtleXdvcmQsdCksc3RhdGljOigwLHBlLmhhc01vZGlmaWVyKShFLlN0YXRpY0tleXdvcmQsdCksdHlwZUFubm90YXRpb246dC50eXBlJiZ0aGlzLmNvbnZlcnRUeXBlQW5ub3RhdGlvbih0LnR5cGUsdCl9KX1jYXNlIEUuSW5kZXhTaWduYXR1cmU6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNJbmRleFNpZ25hdHVyZSxhY2Nlc3NpYmlsaXR5OigwLHBlLmdldFRTTm9kZUFjY2Vzc2liaWxpdHkpKHQpLHBhcmFtZXRlcnM6dC5wYXJhbWV0ZXJzLm1hcChsPT50aGlzLmNvbnZlcnRDaGlsZChsKSkscmVhZG9ubHk6KDAscGUuaGFzTW9kaWZpZXIpKEUuUmVhZG9ubHlLZXl3b3JkLHQpLHN0YXRpYzooMCxwZS5oYXNNb2RpZmllcikoRS5TdGF0aWNLZXl3b3JkLHQpLHR5cGVBbm5vdGF0aW9uOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpfSk7Y2FzZSBFLkNvbnN0cnVjdG9yVHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0NvbnN0cnVjdG9yVHlwZSxhYnN0cmFjdDooMCxwZS5oYXNNb2RpZmllcikoRS5BYnN0cmFjdEtleXdvcmQsdCkscGFyYW1zOnRoaXMuY29udmVydFBhcmFtZXRlcnModC5wYXJhbWV0ZXJzKSxyZXR1cm5UeXBlOnQudHlwZSYmdGhpcy5jb252ZXJ0VHlwZUFubm90YXRpb24odC50eXBlLHQpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtjYXNlIEUuRnVuY3Rpb25UeXBlOntsZXR7bW9kaWZpZXJzOmx9PXQ7bCYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLGxbMF0sXCJBIGZ1bmN0aW9uIHR5cGUgY2Fubm90IGhhdmUgbW9kaWZpZXJzLlwiKX1jYXNlIEUuQ29uc3RydWN0U2lnbmF0dXJlOmNhc2UgRS5DYWxsU2lnbmF0dXJlOntsZXQgbD10LmtpbmQ9PT1FLkNvbnN0cnVjdFNpZ25hdHVyZT9KLkFTVF9OT0RFX1RZUEVTLlRTQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb246dC5raW5kPT09RS5DYWxsU2lnbmF0dXJlP0ouQVNUX05PREVfVFlQRVMuVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246Si5BU1RfTk9ERV9UWVBFUy5UU0Z1bmN0aW9uVHlwZTtyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6bCxwYXJhbXM6dGhpcy5jb252ZXJ0UGFyYW1ldGVycyh0LnBhcmFtZXRlcnMpLHJldHVyblR5cGU6dC50eXBlJiZ0aGlzLmNvbnZlcnRUeXBlQW5ub3RhdGlvbih0LnR5cGUsdCksdHlwZVBhcmFtZXRlcnM6dC50eXBlUGFyYW1ldGVycyYmdGhpcy5jb252ZXJ0VFNUeXBlUGFyYW1ldGVyc1RvVHlwZVBhcmFtZXRlcnNEZWNsYXJhdGlvbih0LnR5cGVQYXJhbWV0ZXJzKX0pfWNhc2UgRS5FeHByZXNzaW9uV2l0aFR5cGVBcmd1bWVudHM6e2xldCBsPXIua2luZCx2PWw9PT1FLkludGVyZmFjZURlY2xhcmF0aW9uP0ouQVNUX05PREVfVFlQRVMuVFNJbnRlcmZhY2VIZXJpdGFnZTpsPT09RS5IZXJpdGFnZUNsYXVzZT9KLkFTVF9OT0RFX1RZUEVTLlRTQ2xhc3NJbXBsZW1lbnRzOkouQVNUX05PREVfVFlQRVMuVFNJbnN0YW50aWF0aW9uRXhwcmVzc2lvbjtyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQsTmUodGhpcyxQZSxcIm1cIixvaSkuY2FsbCh0aGlzLHt0eXBlOnYsZXhwcmVzc2lvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pLHR5cGVBcmd1bWVudHM6dC50eXBlQXJndW1lbnRzJiZ0aGlzLmNvbnZlcnRUeXBlQXJndW1lbnRzVG9UeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbih0LnR5cGVBcmd1bWVudHMsdCl9LFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIikpfWNhc2UgRS5JbnRlcmZhY2VEZWNsYXJhdGlvbjp7bGV0IGw9dC5oZXJpdGFnZUNsYXVzZXM/P1tdLHY9W107Zm9yKGxldCBDIG9mIGwpe0MudG9rZW4hPT1FLkV4dGVuZHNLZXl3b3JkJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMsQyxDLnRva2VuPT09RS5JbXBsZW1lbnRzS2V5d29yZD9cIkludGVyZmFjZSBkZWNsYXJhdGlvbiBjYW5ub3QgaGF2ZSAnaW1wbGVtZW50cycgY2xhdXNlLlwiOlwiVW5leHBlY3RlZCB0b2tlbi5cIik7Zm9yKGxldCBTIG9mIEMudHlwZXMpdi5wdXNoKHRoaXMuY29udmVydENoaWxkKFMsdCkpfWxldCB5PXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNJbnRlcmZhY2VEZWNsYXJhdGlvbixib2R5OnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNJbnRlcmZhY2VCb2R5LGJvZHk6dC5tZW1iZXJzLm1hcChDPT50aGlzLmNvbnZlcnRDaGlsZChDKSkscmFuZ2U6W3QubWVtYmVycy5wb3MtMSx0LmVuZF19KSxkZWNsYXJlOigwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLGV4dGVuZHM6dixpZDp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLHR5cGVQYXJhbWV0ZXJzOnQudHlwZVBhcmFtZXRlcnMmJnRoaXMuY29udmVydFRTVHlwZVBhcmFtZXRlcnNUb1R5cGVQYXJhbWV0ZXJzRGVjbGFyYXRpb24odC50eXBlUGFyYW1ldGVycyl9KTtyZXR1cm4gdGhpcy5maXhFeHBvcnRzKHQseSl9Y2FzZSBFLlR5cGVQcmVkaWNhdGU6e2xldCBsPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNUeXBlUHJlZGljYXRlLGFzc2VydHM6dC5hc3NlcnRzTW9kaWZpZXIhPT12b2lkIDAscGFyYW1ldGVyTmFtZTp0aGlzLmNvbnZlcnRDaGlsZCh0LnBhcmFtZXRlck5hbWUpLHR5cGVBbm5vdGF0aW9uOm51bGx9KTtyZXR1cm4gdC50eXBlJiYobC50eXBlQW5ub3RhdGlvbj10aGlzLmNvbnZlcnRUeXBlQW5ub3RhdGlvbih0LnR5cGUsdCksbC50eXBlQW5ub3RhdGlvbi5sb2M9bC50eXBlQW5ub3RhdGlvbi50eXBlQW5ub3RhdGlvbi5sb2MsbC50eXBlQW5ub3RhdGlvbi5yYW5nZT1sLnR5cGVBbm5vdGF0aW9uLnR5cGVBbm5vdGF0aW9uLnJhbmdlKSxsfWNhc2UgRS5JbXBvcnRUeXBlOntsZXQgbD0oMCxwZS5nZXRSYW5nZSkodCx0aGlzLmFzdCk7aWYodC5pc1R5cGVPZil7bGV0IHk9KDAscGUuZmluZE5leHRUb2tlbikodC5nZXRGaXJzdFRva2VuKCksdCx0aGlzLmFzdCk7bFswXT15LmdldFN0YXJ0KHRoaXMuYXN0KX1sZXQgdj10aGlzLmNyZWF0ZU5vZGUodCxOZSh0aGlzLFBlLFwibVwiLG9pKS5jYWxsKHRoaXMse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0ltcG9ydFR5cGUsYXJndW1lbnQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5hcmd1bWVudCkscXVhbGlmaWVyOnRoaXMuY29udmVydENoaWxkKHQucXVhbGlmaWVyKSx0eXBlQXJndW1lbnRzOnQudHlwZUFyZ3VtZW50cz90aGlzLmNvbnZlcnRUeXBlQXJndW1lbnRzVG9UeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbih0LnR5cGVBcmd1bWVudHMsdCk6bnVsbCxyYW5nZTpsfSxcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCIpKTtyZXR1cm4gdC5pc1R5cGVPZj90aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTVHlwZVF1ZXJ5LGV4cHJOYW1lOnYsdHlwZUFyZ3VtZW50czp2b2lkIDAsdHlwZVBhcmFtZXRlcnM6dm9pZCAwfSk6dn1jYXNlIEUuRW51bURlY2xhcmF0aW9uOntsZXQgbD10aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTRW51bURlY2xhcmF0aW9uLGNvbnN0OigwLHBlLmhhc01vZGlmaWVyKShFLkNvbnN0S2V5d29yZCx0KSxkZWNsYXJlOigwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLGlkOnRoaXMuY29udmVydENoaWxkKHQubmFtZSksbWVtYmVyczp0Lm1lbWJlcnMubWFwKHY9PnRoaXMuY29udmVydENoaWxkKHYpKX0pO3JldHVybiB0aGlzLmZpeEV4cG9ydHModCxsKX1jYXNlIEUuRW51bU1lbWJlcjpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0VudW1NZW1iZXIsY29tcHV0ZWQ6dC5uYW1lLmtpbmQ9PT1fdC5TeW50YXhLaW5kLkNvbXB1dGVkUHJvcGVydHlOYW1lLGlkOnRoaXMuY29udmVydENoaWxkKHQubmFtZSksaW5pdGlhbGl6ZXI6dC5pbml0aWFsaXplciYmdGhpcy5jb252ZXJ0Q2hpbGQodC5pbml0aWFsaXplcil9KTtjYXNlIEUuTW9kdWxlRGVjbGFyYXRpb246e2xldCBsPSgwLHBlLmhhc01vZGlmaWVyKShFLkRlY2xhcmVLZXl3b3JkLHQpLHY9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU01vZHVsZURlY2xhcmF0aW9uLC4uLigoKT0+e2lmKHQuZmxhZ3MmX3QuTm9kZUZsYWdzLkdsb2JhbEF1Z21lbnRhdGlvbil7bGV0IEM9dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKSxTPXRoaXMuY29udmVydENoaWxkKHQuYm9keSk7cmV0dXJuKFM9PW51bGx8fFMudHlwZT09PUouQVNUX05PREVfVFlQRVMuVFNNb2R1bGVEZWNsYXJhdGlvbikmJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyx0LmJvZHk/P3QsXCJFeHBlY3RlZCBhIHZhbGlkIG1vZHVsZSBib2R5XCIpLEMudHlwZSE9PUouQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciYmTmUodGhpcyxQZSxcIm1cIixicikuY2FsbCh0aGlzLHQubmFtZSxcImdsb2JhbCBtb2R1bGUgYXVnbWVudGF0aW9uIG11c3QgaGF2ZSBhbiBJZGVudGlmaWVyIGlkXCIpLHtraW5kOlwiZ2xvYmFsXCIsYm9keTpTLGRlY2xhcmU6ITEsZ2xvYmFsOiExLGlkOkN9fWlmKCEodC5mbGFncyZfdC5Ob2RlRmxhZ3MuTmFtZXNwYWNlKSl7bGV0IEM9dGhpcy5jb252ZXJ0Q2hpbGQodC5ib2R5KTtyZXR1cm57a2luZDpcIm1vZHVsZVwiLC4uLkMhPW51bGw/e2JvZHk6Q306e30sZGVjbGFyZTohMSxnbG9iYWw6ITEsaWQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKX19dC5ib2R5PT1udWxsJiZOZSh0aGlzLFBlLFwibVwiLGJyKS5jYWxsKHRoaXMsdCxcIkV4cGVjdGVkIGEgbW9kdWxlIGJvZHlcIiksdC5uYW1lLmtpbmQhPT1fdC5TeW50YXhLaW5kLklkZW50aWZpZXImJk5lKHRoaXMsUGUsXCJtXCIsYnIpLmNhbGwodGhpcyx0Lm5hbWUsXCJgbmFtZXNwYWNlYHMgbXVzdCBoYXZlIGFuIElkZW50aWZpZXIgaWRcIik7bGV0IHk9dGhpcy5jcmVhdGVOb2RlKHQubmFtZSx7ZGVjb3JhdG9yczpbXSxuYW1lOnQubmFtZS50ZXh0LG9wdGlvbmFsOiExLHJhbmdlOlt0Lm5hbWUuZ2V0U3RhcnQodGhpcy5hc3QpLHQubmFtZS5nZXRFbmQoKV0sdHlwZTpKLkFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIsdHlwZUFubm90YXRpb246dm9pZCAwfSk7Zm9yKDt0LmJvZHkmJl90LmlzTW9kdWxlRGVjbGFyYXRpb24odC5ib2R5KSYmdC5ib2R5Lm5hbWU7KXt0PXQuYm9keSxsfHwobD0oMCxwZS5oYXNNb2RpZmllcikoRS5EZWNsYXJlS2V5d29yZCx0KSk7bGV0IEM9dC5uYW1lLFM9dGhpcy5jcmVhdGVOb2RlKEMse2RlY29yYXRvcnM6W10sbmFtZTpDLnRleHQsb3B0aW9uYWw6ITEscmFuZ2U6W0MuZ2V0U3RhcnQodGhpcy5hc3QpLEMuZ2V0RW5kKCldLHR5cGU6Si5BU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyLHR5cGVBbm5vdGF0aW9uOnZvaWQgMH0pO3k9dGhpcy5jcmVhdGVOb2RlKEMse2xlZnQ6eSxyaWdodDpTLHJhbmdlOlt5LnJhbmdlWzBdLFMucmFuZ2VbMV1dLHR5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1F1YWxpZmllZE5hbWV9KX1yZXR1cm57a2luZDpcIm5hbWVzcGFjZVwiLGJvZHk6dGhpcy5jb252ZXJ0Q2hpbGQodC5ib2R5KSxkZWNsYXJlOiExLGdsb2JhbDohMSxpZDp5fX0pKCl9KTtyZXR1cm4gdi5kZWNsYXJlPWwsdC5mbGFncyZfdC5Ob2RlRmxhZ3MuR2xvYmFsQXVnbWVudGF0aW9uJiYodi5nbG9iYWw9ITApLHRoaXMuZml4RXhwb3J0cyh0LHYpfWNhc2UgRS5QYXJlbnRoZXNpemVkVHlwZTpyZXR1cm4gdGhpcy5jb252ZXJ0Q2hpbGQodC50eXBlKTtjYXNlIEUuVW5pb25UeXBlOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTVW5pb25UeXBlLHR5cGVzOnQudHlwZXMubWFwKGw9PnRoaXMuY29udmVydENoaWxkKGwpKX0pO2Nhc2UgRS5JbnRlcnNlY3Rpb25UeXBlOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTSW50ZXJzZWN0aW9uVHlwZSx0eXBlczp0LnR5cGVzLm1hcChsPT50aGlzLmNvbnZlcnRDaGlsZChsKSl9KTtjYXNlIEUuQXNFeHByZXNzaW9uOnJldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTQXNFeHByZXNzaW9uLGV4cHJlc3Npb246dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSx0eXBlQW5ub3RhdGlvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LnR5cGUpfSk7Y2FzZSBFLkluZmVyVHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0luZmVyVHlwZSx0eXBlUGFyYW1ldGVyOnRoaXMuY29udmVydENoaWxkKHQudHlwZVBhcmFtZXRlcil9KTtjYXNlIEUuTGl0ZXJhbFR5cGU6cmV0dXJuIHQubGl0ZXJhbC5raW5kPT09RS5OdWxsS2V5d29yZD90aGlzLmNyZWF0ZU5vZGUodC5saXRlcmFsLHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNOdWxsS2V5d29yZH0pOnRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNMaXRlcmFsVHlwZSxsaXRlcmFsOnRoaXMuY29udmVydENoaWxkKHQubGl0ZXJhbCl9KTtjYXNlIEUuVHlwZUFzc2VydGlvbkV4cHJlc3Npb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNUeXBlQXNzZXJ0aW9uLHR5cGVBbm5vdGF0aW9uOnRoaXMuY29udmVydENoaWxkKHQudHlwZSksZXhwcmVzc2lvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LmV4cHJlc3Npb24pfSk7Y2FzZSBFLkltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOnJldHVybiB0aGlzLmZpeEV4cG9ydHModCx0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24saWQ6dGhpcy5jb252ZXJ0Q2hpbGQodC5uYW1lKSxpbXBvcnRLaW5kOnQuaXNUeXBlT25seT9cInR5cGVcIjpcInZhbHVlXCIsbW9kdWxlUmVmZXJlbmNlOnRoaXMuY29udmVydENoaWxkKHQubW9kdWxlUmVmZXJlbmNlKX0pKTtjYXNlIEUuRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2U6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZSxleHByZXNzaW9uOnRoaXMuY29udmVydENoaWxkKHQuZXhwcmVzc2lvbil9KTtjYXNlIEUuTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbixpZDp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpfSk7Y2FzZSBFLkFic3RyYWN0S2V5d29yZDpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU0Fic3RyYWN0S2V5d29yZH0pO2Nhc2UgRS5UdXBsZVR5cGU6e2xldCBsPVwiZWxlbWVudFR5cGVzXCJpbiB0P3QuZWxlbWVudFR5cGVzLm1hcCh2PT50aGlzLmNvbnZlcnRDaGlsZCh2KSk6dC5lbGVtZW50cy5tYXAodj0+dGhpcy5jb252ZXJ0Q2hpbGQodikpO3JldHVybiB0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTVHVwbGVUeXBlLGVsZW1lbnRUeXBlczpsfSl9Y2FzZSBFLk5hbWVkVHVwbGVNZW1iZXI6e2xldCBsPXRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNOYW1lZFR1cGxlTWVtYmVyLGVsZW1lbnRUeXBlOnRoaXMuY29udmVydENoaWxkKHQudHlwZSx0KSxsYWJlbDp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUsdCksb3B0aW9uYWw6dC5xdWVzdGlvblRva2VuIT1udWxsfSk7cmV0dXJuIHQuZG90RG90RG90VG9rZW4/KGwucmFuZ2VbMF09bC5sYWJlbC5yYW5nZVswXSxsLmxvYy5zdGFydD1sLmxhYmVsLmxvYy5zdGFydCx0aGlzLmNyZWF0ZU5vZGUodCx7dHlwZTpKLkFTVF9OT0RFX1RZUEVTLlRTUmVzdFR5cGUsdHlwZUFubm90YXRpb246bH0pKTpsfWNhc2UgRS5PcHRpb25hbFR5cGU6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNPcHRpb25hbFR5cGUsdHlwZUFubm90YXRpb246dGhpcy5jb252ZXJ0Q2hpbGQodC50eXBlKX0pO2Nhc2UgRS5SZXN0VHlwZTpyZXR1cm4gdGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1Jlc3RUeXBlLHR5cGVBbm5vdGF0aW9uOnRoaXMuY29udmVydENoaWxkKHQudHlwZSl9KTtjYXNlIEUuVGVtcGxhdGVMaXRlcmFsVHlwZTp7bGV0IGw9dGhpcy5jcmVhdGVOb2RlKHQse3R5cGU6Si5BU1RfTk9ERV9UWVBFUy5UU1RlbXBsYXRlTGl0ZXJhbFR5cGUscXVhc2lzOlt0aGlzLmNvbnZlcnRDaGlsZCh0LmhlYWQpXSx0eXBlczpbXX0pO3JldHVybiB0LnRlbXBsYXRlU3BhbnMuZm9yRWFjaCh2PT57bC50eXBlcy5wdXNoKHRoaXMuY29udmVydENoaWxkKHYudHlwZSkpLGwucXVhc2lzLnB1c2godGhpcy5jb252ZXJ0Q2hpbGQodi5saXRlcmFsKSl9KSxsfWNhc2UgRS5DbGFzc1N0YXRpY0Jsb2NrRGVjbGFyYXRpb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuU3RhdGljQmxvY2ssYm9keTp0aGlzLmNvbnZlcnRCb2R5RXhwcmVzc2lvbnModC5ib2R5LnN0YXRlbWVudHMsdCl9KTtjYXNlIEUuQXNzZXJ0RW50cnk6cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuSW1wb3J0QXR0cmlidXRlLGtleTp0aGlzLmNvbnZlcnRDaGlsZCh0Lm5hbWUpLHZhbHVlOnRoaXMuY29udmVydENoaWxkKHQudmFsdWUpfSk7Y2FzZSBFLlNhdGlzZmllc0V4cHJlc3Npb246cmV0dXJuIHRoaXMuY3JlYXRlTm9kZSh0LHt0eXBlOkouQVNUX05PREVfVFlQRVMuVFNTYXRpc2ZpZXNFeHByZXNzaW9uLGV4cHJlc3Npb246dGhpcy5jb252ZXJ0Q2hpbGQodC5leHByZXNzaW9uKSx0eXBlQW5ub3RhdGlvbjp0aGlzLmNvbnZlcnRDaGlsZCh0LnR5cGUpfSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5kZWVwbHlDb3B5KHQpfX19O3luLkNvbnZlcnRlcj1LNjtQZT1uZXcgV2Vha1NldCxvdz1mdW5jdGlvbih0KXtpZighdGhpcy5vcHRpb25zLmFsbG93SW52YWxpZEFTVCl7KDAscGUubm9kZUhhc0lsbGVnYWxEZWNvcmF0b3JzKSh0KSYmTmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHQuaWxsZWdhbERlY29yYXRvcnNbMF0sXCJEZWNvcmF0b3JzIGFyZSBub3QgdmFsaWQgaGVyZS5cIik7Zm9yKGxldCByIG9mKDAsWmkuZ2V0RGVjb3JhdG9ycykodCwhMCk/P1tdKSgwLHBlLm5vZGVDYW5CZURlY29yYXRlZCkodCl8fChfdC5pc01ldGhvZERlY2xhcmF0aW9uKHQpJiYhKDAscGUubm9kZUlzUHJlc2VudCkodC5ib2R5KT9OZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixcIkEgZGVjb3JhdG9yIGNhbiBvbmx5IGRlY29yYXRlIGEgbWV0aG9kIGltcGxlbWVudGF0aW9uLCBub3QgYW4gb3ZlcmxvYWQuXCIpOk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLFwiRGVjb3JhdG9ycyBhcmUgbm90IHZhbGlkIGhlcmUuXCIpKTtmb3IobGV0IHIgb2YoMCxaaS5nZXRNb2RpZmllcnMpKHQsITApPz9bXSl7aWYoci5raW5kIT09RS5SZWFkb25seUtleXdvcmQmJigodC5raW5kPT09RS5Qcm9wZXJ0eVNpZ25hdHVyZXx8dC5raW5kPT09RS5NZXRob2RTaWduYXR1cmUpJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixgJyR7X3QudG9rZW5Ub1N0cmluZyhyLmtpbmQpfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIHR5cGUgbWVtYmVyYCksdC5raW5kPT09RS5JbmRleFNpZ25hdHVyZSYmKHIua2luZCE9PUUuU3RhdGljS2V5d29yZHx8IV90LmlzQ2xhc3NMaWtlKHQucGFyZW50KSkmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLGAnJHtfdC50b2tlblRvU3RyaW5nKHIua2luZCl9JyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGFuIGluZGV4IHNpZ25hdHVyZWApKSxyLmtpbmQhPT1FLkluS2V5d29yZCYmci5raW5kIT09RS5PdXRLZXl3b3JkJiZyLmtpbmQhPT1FLkNvbnN0S2V5d29yZCYmdC5raW5kPT09RS5UeXBlUGFyYW1ldGVyJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixgJyR7X3QudG9rZW5Ub1N0cmluZyhyLmtpbmQpfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIHR5cGUgcGFyYW1ldGVyYCksKHIua2luZD09PUUuSW5LZXl3b3JkfHxyLmtpbmQ9PT1FLk91dEtleXdvcmQpJiYodC5raW5kIT09RS5UeXBlUGFyYW1ldGVyfHwhKF90LmlzSW50ZXJmYWNlRGVjbGFyYXRpb24odC5wYXJlbnQpfHxfdC5pc0NsYXNzTGlrZSh0LnBhcmVudCl8fF90LmlzVHlwZUFsaWFzRGVjbGFyYXRpb24odC5wYXJlbnQpKSkmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLGAnJHtfdC50b2tlblRvU3RyaW5nKHIua2luZCl9JyBtb2RpZmllciBjYW4gb25seSBhcHBlYXIgb24gYSB0eXBlIHBhcmFtZXRlciBvZiBhIGNsYXNzLCBpbnRlcmZhY2Ugb3IgdHlwZSBhbGlhc2ApLHIua2luZD09PUUuUmVhZG9ubHlLZXl3b3JkJiZ0LmtpbmQhPT1FLlByb3BlcnR5RGVjbGFyYXRpb24mJnQua2luZCE9PUUuUHJvcGVydHlTaWduYXR1cmUmJnQua2luZCE9PUUuSW5kZXhTaWduYXR1cmUmJnQua2luZCE9PUUuUGFyYW1ldGVyJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixcIidyZWFkb25seScgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgcHJvcGVydHkgZGVjbGFyYXRpb24gb3IgaW5kZXggc2lnbmF0dXJlLlwiKSxyLmtpbmQ9PT1FLkRlY2xhcmVLZXl3b3JkJiZfdC5pc0NsYXNzTGlrZSh0LnBhcmVudCkmJiFfdC5pc1Byb3BlcnR5RGVjbGFyYXRpb24odCkmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLGAnJHtfdC50b2tlblRvU3RyaW5nKHIua2luZCl9JyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGNsYXNzIGVsZW1lbnRzIG9mIHRoaXMga2luZC5gKSxyLmtpbmQ9PT1FLkRlY2xhcmVLZXl3b3JkJiZfdC5pc1ZhcmlhYmxlU3RhdGVtZW50KHQpKXtsZXQgYT0oMCxwZS5nZXREZWNsYXJhdGlvbktpbmQpKHQuZGVjbGFyYXRpb25MaXN0KTsoYT09PVwidXNpbmdcInx8YT09PVwiYXdhaXQgdXNpbmdcIikmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLGAnZGVjbGFyZScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhICcke2F9JyBkZWNsYXJhdGlvbi5gKX1pZihyLmtpbmQ9PT1FLkFic3RyYWN0S2V5d29yZCYmdC5raW5kIT09RS5DbGFzc0RlY2xhcmF0aW9uJiZ0LmtpbmQhPT1FLkNvbnN0cnVjdG9yVHlwZSYmdC5raW5kIT09RS5NZXRob2REZWNsYXJhdGlvbiYmdC5raW5kIT09RS5Qcm9wZXJ0eURlY2xhcmF0aW9uJiZ0LmtpbmQhPT1FLkdldEFjY2Vzc29yJiZ0LmtpbmQhPT1FLlNldEFjY2Vzc29yJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixgJyR7X3QudG9rZW5Ub1N0cmluZyhyLmtpbmQpfScgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgY2xhc3MsIG1ldGhvZCwgb3IgcHJvcGVydHkgZGVjbGFyYXRpb24uYCksKHIua2luZD09PUUuU3RhdGljS2V5d29yZHx8ci5raW5kPT09RS5QdWJsaWNLZXl3b3JkfHxyLmtpbmQ9PT1FLlByb3RlY3RlZEtleXdvcmR8fHIua2luZD09PUUuUHJpdmF0ZUtleXdvcmQpJiYodC5wYXJlbnQua2luZD09PUUuTW9kdWxlQmxvY2t8fHQucGFyZW50LmtpbmQ9PT1FLlNvdXJjZUZpbGUpJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixgJyR7X3QudG9rZW5Ub1N0cmluZyhyLmtpbmQpfScgbW9kaWZpZXIgY2Fubm90IGFwcGVhciBvbiBhIG1vZHVsZSBvciBuYW1lc3BhY2UgZWxlbWVudC5gKSxyLmtpbmQ9PT1FLkFjY2Vzc29yS2V5d29yZCYmdC5raW5kIT09RS5Qcm9wZXJ0eURlY2xhcmF0aW9uJiZOZSh0aGlzLFBlLFwibVwiLHN0KS5jYWxsKHRoaXMscixcIidhY2Nlc3NvcicgbW9kaWZpZXIgY2FuIG9ubHkgYXBwZWFyIG9uIGEgcHJvcGVydHkgZGVjbGFyYXRpb24uXCIpLHIua2luZD09PUUuQXN5bmNLZXl3b3JkJiZ0LmtpbmQhPT1FLk1ldGhvZERlY2xhcmF0aW9uJiZ0LmtpbmQhPT1FLkZ1bmN0aW9uRGVjbGFyYXRpb24mJnQua2luZCE9PUUuRnVuY3Rpb25FeHByZXNzaW9uJiZ0LmtpbmQhPT1FLkFycm93RnVuY3Rpb24mJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLFwiJ2FzeW5jJyBtb2RpZmllciBjYW5ub3QgYmUgdXNlZCBoZXJlLlwiKSx0LmtpbmQ9PT1FLlBhcmFtZXRlciYmKHIua2luZD09PUUuU3RhdGljS2V5d29yZHx8ci5raW5kPT09RS5FeHBvcnRLZXl3b3JkfHxyLmtpbmQ9PT1FLkRlY2xhcmVLZXl3b3JkfHxyLmtpbmQ9PT1FLkFzeW5jS2V5d29yZCkmJk5lKHRoaXMsUGUsXCJtXCIsc3QpLmNhbGwodGhpcyxyLGAnJHtfdC50b2tlblRvU3RyaW5nKHIua2luZCl9JyBtb2RpZmllciBjYW5ub3QgYXBwZWFyIG9uIGEgcGFyYW1ldGVyLmApLHQua2luZD09PUUuUGFyYW1ldGVyJiYoci5raW5kPT09RS5QdWJsaWNLZXl3b3JkfHxyLmtpbmQ9PT1FLlByaXZhdGVLZXl3b3JkfHxyLmtpbmQ9PT1FLlByb3RlY3RlZEtleXdvcmR8fHIua2luZD09PUUuUmVhZG9ubHlLZXl3b3JkfHxyLmtpbmQ9PT1FLk92ZXJyaWRlS2V5d29yZCkpe2xldCBhPSgwLHBlLmdldENvbnRhaW5pbmdGdW5jdGlvbikodCk7YS5raW5kPT09RS5Db25zdHJ1Y3RvciYmKDAscGUubm9kZUlzUHJlc2VudCkoYS5ib2R5KXx8TmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHIsXCJBIHBhcmFtZXRlciBwcm9wZXJ0eSBpcyBvbmx5IGFsbG93ZWQgaW4gYSBjb25zdHJ1Y3RvciBpbXBsZW1lbnRhdGlvbi5cIil9fX19LGJyPWZ1bmN0aW9uKHQscil7dGhpcy5vcHRpb25zLmFsbG93SW52YWxpZEFTVHx8TmUodGhpcyxQZSxcIm1cIixzdCkuY2FsbCh0aGlzLHQscil9LG9pPWZ1bmN0aW9uKHQscixhKXtsZXQgXz0hMTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscix7Y29uZmlndXJhYmxlOiEwLGdldDp0aGlzLm9wdGlvbnMuc3VwcHJlc3NEZXByZWNhdGVkUHJvcGVydHlXYXJuaW5ncz8oKT0+dFthXTooKT0+KF98fCgodm9pZCAwKShgVGhlICcke3J9JyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIG9uICR7dC50eXBlfSBub2Rlcy4gVXNlICcke2F9JyBpbnN0ZWFkLiBTZWUgaHR0cHM6Ly90eXBlc2NyaXB0LWVzbGludC5pby9saW50aW5nL3Ryb3VibGVzaG9vdGluZyN0aGUta2V5LXByb3BlcnR5LWlzLWRlcHJlY2F0ZWQtb24tdHlwZS1ub2Rlcy11c2Uta2V5LWluc3RlYWQtd2FybmluZ3MuYCxcIkRlcHJlY2F0aW9uV2FybmluZ1wiKSxfPSEwKSx0W2FdKSxzZXQocCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQscix7ZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpwfSl9fSksdH0sc3Q9ZnVuY3Rpb24odCxyKXtsZXQgYSxfO3Rocm93IHR5cGVvZiB0PT1cIm51bWJlclwiP2E9Xz10OihhPXQuZ2V0U3RhcnQodGhpcy5hc3QpLF89dC5nZXRFbmQoKSksKDAscGUuY3JlYXRlRXJyb3IpKHIsdGhpcy5hc3QsYSxfKX19KTt2YXIgZTk9dXQoKENILFp3KT0+e1widXNlIHN0cmljdFwiO3ZhciBBVT1PYmplY3QuY3JlYXRlLFdtPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxrVT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLERVPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLFBVPU9iamVjdC5nZXRQcm90b3R5cGVPZixJVT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE5VPShlLHQpPT57Zm9yKHZhciByIGluIHQpV20oZSxyLHtnZXQ6dFtyXSxlbnVtZXJhYmxlOiEwfSl9LGx3PShlLHQscixhKT0+e2lmKHQmJnR5cGVvZiB0PT1cIm9iamVjdFwifHx0eXBlb2YgdD09XCJmdW5jdGlvblwiKWZvcihsZXQgXyBvZiBEVSh0KSkhSVUuY2FsbChlLF8pJiZfIT09ciYmV20oZSxfLHtnZXQ6KCk9PnRbX10sZW51bWVyYWJsZTohKGE9a1UodCxfKSl8fGEuZW51bWVyYWJsZX0pO3JldHVybiBlfSxQcj0oZSx0LHIpPT4ocj1lIT1udWxsP0FVKFBVKGUpKTp7fSxsdyh0fHwhZXx8IWUuX19lc01vZHVsZT9XbShyLFwiZGVmYXVsdFwiLHt2YWx1ZTplLGVudW1lcmFibGU6ITB9KTpyLGUpKSxPVT1lPT5sdyhXbSh7fSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxlKSx1dz17fTtOVSh1dyx7Zm9yRWFjaENvbW1lbnQ6KCk9PkxVLGZvckVhY2hUb2tlbjooKT0+cHcsZ2V0Q2FsbFNpZ25hdHVyZXNPZlR5cGU6KCk9PnRiLGdldFByb3BlcnR5T2ZUeXBlOigpPT5nYixnZXRXZWxsS25vd25TeW1ib2xQcm9wZXJ0eU9mVHlwZTooKT0+WnosaGFzRGVjb3JhdG9yczooKT0+QnEsaGFzRXhwcmVzc2lvbkluaXRpYWxpemVyOigpPT5PdyxoYXNJbml0aWFsaXplcjooKT0+VXEsaGFzSlNEb2M6KCk9PnFxLGhhc01vZGlmaWVyczooKT0+enEsaGFzVHlwZTooKT0+V3EsaGFzVHlwZUFyZ3VtZW50czooKT0+VnEsaW5jbHVkZXNNb2RpZmllcjooKT0+alUsaW50ZXJzZWN0aW9uVHlwZVBhcnRzOigpPT5pVyxpc0Fic3RyYWN0S2V5d29yZDooKT0+RlUsaXNBY2Nlc3NFeHByZXNzaW9uOigpPT5rcSxpc0FjY2Vzc2liaWxpdHlNb2RpZmllcjooKT0+c2IsaXNBY2Nlc3NvckRlY2xhcmF0aW9uOigpPT5fYixpc0FjY2Vzc29yS2V5d29yZDooKT0+aHcsaXNBbnlLZXl3b3JkOigpPT5CVSxpc0FycmF5QmluZGluZ0VsZW1lbnQ6KCk9PkRxLGlzQXJyYXlCaW5kaW5nT3JBc3NpZ25tZW50UGF0dGVybjooKT0+a3csaXNBc3NlcnRLZXl3b3JkOigpPT5VVSxpc0Fzc2VydHNLZXl3b3JkOigpPT5xVSxpc0Fzc2lnbm1lbnRLaW5kOigpPT55eixpc0Fzc2lnbm1lbnRQYXR0ZXJuOigpPT5QcSxpc0FzeW5jS2V5d29yZDooKT0+elUsaXNBd2FpdEtleXdvcmQ6KCk9PldVLGlzQmlnSW50S2V5d29yZDooKT0+VlUsaXNCaWdJbnRMaXRlcmFsVHlwZTooKT0+SHosaXNCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudFJlc3RJbmRpY2F0b3I6KCk9PklxLGlzQmluZGluZ09yQXNzaWdubWVudEVsZW1lbnRUYXJnZXQ6KCk9Pk5xLGlzQmluZGluZ09yQXNzaWdubWVudFBhdHRlcm46KCk9PkR3LGlzQmluZGluZ1BhdHRlcm46KCk9PmNiLGlzQmxvY2tMaWtlOigpPT5PcSxpc0Jvb2xlYW5LZXl3b3JkOigpPT5IVSxpc0Jvb2xlYW5MaXRlcmFsOigpPT5Qdyxpc0Jvb2xlYW5MaXRlcmFsVHlwZTooKT0+aGIsaXNDbGFzc0xpa2VEZWNsYXJhdGlvbjooKT0+Vm0saXNDbGFzc01lbWJlck1vZGlmaWVyOigpPT5NcSxpc0NvbG9uVG9rZW46KCk9PkdVLGlzQ29tcGlsZXJPcHRpb25FbmFibGVkOigpPT5qYSxpc0NvbmRpdGlvbmFsVHlwZTooKT0+TXosaXNDb25zdEFzc2VydGlvbkV4cHJlc3Npb246KCk9Pkp3LGlzQ29uc3RLZXl3b3JkOigpPT5YVSxpc0RlY2xhcmF0aW9uTmFtZTooKT0+SXcsaXNEZWNsYXJhdGlvbldpdGhUeXBlUGFyYW1ldGVyQ2hpbGRyZW46KCk9Pk53LGlzRGVjbGFyYXRpb25XaXRoVHlwZVBhcmFtZXRlcnM6KCk9PkxxLGlzRGVjbGFyZUtleXdvcmQ6KCk9PiRVLGlzRGVmYXVsdEtleXdvcmQ6KCk9PlFVLGlzRGVzdHJ1Y3R1cmluZ1BhdHRlcm46KCk9PkpxLGlzRG90VG9rZW46KCk9PllVLGlzRW5kT2ZGaWxlVG9rZW46KCk9Pnl3LGlzRW50aXR5TmFtZUV4cHJlc3Npb246KCk9Pmh1LGlzRW50aXR5TmFtZU9yRW50aXR5TmFtZUV4cHJlc3Npb246KCk9PlJxLGlzRW51bVR5cGU6KCk9Pkx6LGlzRXF1YWxzR3JlYXRlclRoYW5Ub2tlbjooKT0+S1UsaXNFcXVhbHNUb2tlbjooKT0+WlUsaXNFdm9sdmluZ0FycmF5VHlwZTooKT0+V3osaXNFeGNsYW1hdGlvblRva2VuOigpPT5lcSxpc0V4cG9ydEtleXdvcmQ6KCk9PnRxLGlzRmFsc2VLZXl3b3JkOigpPT5ycSxpc0ZhbHNlTGl0ZXJhbDooKT0+Z3csaXNGYWxzZUxpdGVyYWxUeXBlOigpPT55Yixpc0ZhbHN5VHlwZTooKT0+blcsaXNGb3JJbk9yT2ZTdGF0ZW1lbnQ6KCk9PmpxLGlzRnJlc2hhYmxlSW50cmluc2ljVHlwZTooKT0+VnosaXNGcmVzaGFibGVUeXBlOigpPT5Idyxpc0Z1bmN0aW9uTGlrZURlY2xhcmF0aW9uOigpPT5GcSxpc0Z1bmN0aW9uU2NvcGVCb3VuZGFyeTooKT0+aHosaXNJbXBvcnRFeHByZXNzaW9uOigpPT5ucSxpc0ltcG9ydEtleXdvcmQ6KCk9PmlxLGlzSW5LZXl3b3JkOigpPT5hcSxpc0luZGV4VHlwZTooKT0+SnosaXNJbmRleGVkQWNjZXNzVHlwZTooKT0+UnosaXNJbnB1dEZpbGVzOigpPT5vcSxpc0luc3RhbnRpYWJsZVR5cGU6KCk9Pmp6LGlzSW50ZXJzZWN0aW9uVHlwZTooKT0+SG0saXNJbnRyaW5zaWNBbnlUeXBlOigpPT52eixpc0ludHJpbnNpY0JpZ0ludFR5cGU6KCk9PlN6LGlzSW50cmluc2ljQm9vbGVhblR5cGU6KCk9PlR6LGlzSW50cmluc2ljRVNTeW1ib2xUeXBlOigpPT53eixpc0ludHJpbnNpY0Vycm9yVHlwZTooKT0+eHosaXNJbnRyaW5zaWNOZXZlclR5cGU6KCk9PkV6LGlzSW50cmluc2ljTm9uUHJpbWl0aXZlVHlwZTooKT0+QXosaXNJbnRyaW5zaWNOdWxsVHlwZTooKT0+a3osaXNJbnRyaW5zaWNOdW1iZXJUeXBlOigpPT5Eeixpc0ludHJpbnNpY1N0cmluZ1R5cGU6KCk9PlB6LGlzSW50cmluc2ljVHlwZTooKT0+ZmIsaXNJbnRyaW5zaWNVbmRlZmluZWRUeXBlOigpPT5Jeixpc0ludHJpbnNpY1Vua25vd25UeXBlOigpPT5Oeixpc0ludHJpbnNpY1ZvaWRUeXBlOigpPT5Peixpc0l0ZXJhdGlvblN0YXRlbWVudDooKT0+bXosaXNKU0RvY0NvbW1lbnQ6KCk9PkhxLGlzSlNEb2NOYW1lc3BhY2VCb2R5OigpPT5sYixpc0pTRG9jTmFtZXNwYWNlRGVjbGFyYXRpb246KCk9PlJ3LGlzSlNEb2NUZXh0OigpPT5idyxpc0pTRG9jVHlwZVJlZmVyZW5jaW5nTm9kZTooKT0+R3EsaXNKc29uTWludXNOdW1lcmljTGl0ZXJhbDooKT0+dncsaXNKc29uT2JqZWN0RXhwcmVzc2lvbjooKT0+WHEsaXNKc3hBdHRyaWJ1dGVMaWtlOigpPT4kcSxpc0pzeEF0dHJpYnV0ZVZhbHVlOigpPT5RcSxpc0pzeENoaWxkOigpPT5ZcSxpc0pzeFRhZ05hbWVFeHByZXNzaW9uOigpPT5Ndyxpc0pzeFRhZ05hbWVQcm9wZXJ0eUFjY2VzczooKT0+ancsaXNMaXRlcmFsVG9rZW46KCk9PktxLGlzTGl0ZXJhbFR5cGU6KCk9Pkd6LGlzTW9kaWZpZXJGbGFnU2V0OigpPT5mdyxpc01vZHVsZUJvZHk6KCk9PlpxLGlzTW9kdWxlTmFtZTooKT0+ZXosaXNNb2R1bGVSZWZlcmVuY2U6KCk9PnR6LGlzTmFtZWREZWNsYXJhdGlvbldpdGhOYW1lOigpPT5Gdyxpc05hbWVkSW1wb3J0QmluZGluZ3M6KCk9PnJ6LGlzTmFtZWRJbXBvcnRzT3JFeHBvcnRzOigpPT5ueixpc05hbWVzcGFjZUJvZHk6KCk9PnViLGlzTmFtZXNwYWNlRGVjbGFyYXRpb246KCk9PkJ3LGlzTmV2ZXJLZXl3b3JkOigpPT5zcSxpc05vZGVGbGFnU2V0OigpPT5kdyxpc051bGxLZXl3b3JkOigpPT5fcSxpc051bGxMaXRlcmFsOigpPT5Udyxpc051bWJlcktleXdvcmQ6KCk9PmNxLGlzTnVtYmVyTGl0ZXJhbFR5cGU6KCk9Plh6LGlzTnVtZXJpY09yU3RyaW5nTGlrZUxpdGVyYWw6KCk9PlV3LGlzTnVtZXJpY1Byb3BlcnR5TmFtZTooKT0+VncsaXNPYmplY3RCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudDooKT0+aXosaXNPYmplY3RCaW5kaW5nT3JBc3NpZ25tZW50UGF0dGVybjooKT0+THcsaXNPYmplY3RGbGFnU2V0OigpPT5tdSxpc09iamVjdEtleXdvcmQ6KCk9PmxxLGlzT2JqZWN0VHlwZTooKT0+eXUsaXNPYmplY3RUeXBlRGVjbGFyYXRpb246KCk9PmF6LGlzT3V0S2V5d29yZDooKT0+dXEsaXNPdmVycmlkZUtleXdvcmQ6KCk9PnBxLGlzUGFyYW1ldGVyUHJvcGVydHlNb2RpZmllcjooKT0+b3osaXNQcml2YXRlS2V5d29yZDooKT0+U3csaXNQcm9wZXJ0eUFjY2Vzc0VudGl0eU5hbWVFeHByZXNzaW9uOigpPT5xdyxpc1Byb3BlcnR5TmFtZUxpdGVyYWw6KCk9PnN6LGlzUHJvcGVydHlSZWFkb25seUluVHlwZTooKT0+WXcsaXNQcm90ZWN0ZWRLZXl3b3JkOigpPT54dyxpc1BzZXVkb0xpdGVyYWxUb2tlbjooKT0+X3osaXNQdWJsaWNLZXl3b3JkOigpPT53dyxpc1F1ZXN0aW9uRG90VG9rZW46KCk9PmZxLGlzUXVlc3Rpb25Ub2tlbjooKT0+ZHEsaXNSZWFkb25seUtleXdvcmQ6KCk9PmFiLGlzU2lnbmF0dXJlRGVjbGFyYXRpb246KCk9PnBiLGlzU3RhdGljS2V5d29yZDooKT0+Q3csaXNTdHJpY3RDb21waWxlck9wdGlvbkVuYWJsZWQ6KCk9PnJiLGlzU3RyaW5nS2V5d29yZDooKT0+bXEsaXNTdHJpbmdMaXRlcmFsVHlwZTooKT0+JHosaXNTdHJpbmdNYXBwaW5nVHlwZTooKT0+RnosaXNTdWJzdGl0dXRpb25UeXBlOigpPT5Ceixpc1N1cGVyRWxlbWVudEFjY2Vzc0V4cHJlc3Npb246KCk9Pnp3LGlzU3VwZXJFeHByZXNzaW9uOigpPT5vYixpc1N1cGVyS2V5d29yZDooKT0+aHEsaXNTdXBlclByb3BlcnR5OigpPT5jeixpc1N1cGVyUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uOigpPT5Xdyxpc1N5bWJvbEZsYWdTZXQ6KCk9Pm13LGlzU3ltYm9sS2V5d29yZDooKT0+eXEsaXNTeW50YXhMaXN0OigpPT5ncSxpc1RlbXBsYXRlTGl0ZXJhbFR5cGU6KCk9PlF6LGlzVGhlbmFibGVUeXBlOigpPT5jVyxpc1RoaXNFeHByZXNzaW9uOigpPT5Fdyxpc1RoaXNLZXl3b3JkOigpPT5icSxpc1RydWVLZXl3b3JkOigpPT52cSxpc1RydWVMaXRlcmFsOigpPT5Bdyxpc1RydWVMaXRlcmFsVHlwZTooKT0+WXosaXNUdXBsZVR5cGU6KCk9Plh3LGlzVHVwbGVUeXBlUmVmZXJlbmNlOigpPT5Rdyxpc1R5cGVGbGFnU2V0OigpPT50dCxpc1R5cGVPbmx5Q29tcGF0aWJsZUFsaWFzRGVjbGFyYXRpb246KCk9Pmx6LGlzVHlwZVBhcmFtZXRlcjooKT0+VXosaXNUeXBlUmVmZXJlbmNlOigpPT4kdyxpc1R5cGVSZWZlcmVuY2VUeXBlOigpPT51eixpc1R5cGVWYXJpYWJsZTooKT0+cXosaXNVbmRlZmluZWRLZXl3b3JkOigpPT5UcSxpc1VuaW9uT3JJbnRlcnNlY3Rpb25UeXBlOigpPT56eixpc1VuaW9uT3JJbnRlcnNlY3Rpb25UeXBlTm9kZTooKT0+cHosaXNVbmlvblR5cGU6KCk9Pm1iLGlzVW5pcXVlRVNTeW1ib2xUeXBlOigpPT5Hdyxpc1Vua25vd25LZXl3b3JkOigpPT5TcSxpc1Vua25vd25MaXRlcmFsVHlwZTooKT0+S3osaXNVbnBhcnNlZFByb2xvZ3VlOigpPT54cSxpc1VucGFyc2VkU291cmNlVGV4dDooKT0+ZnosaXNVbnBhcnNlZFN5bnRoZXRpY1JlZmVyZW5jZTooKT0+d3EsaXNWYWxpZFByb3BlcnR5QWNjZXNzOigpPT5neixpc1ZhcmlhYmxlTGlrZURlY2xhcmF0aW9uOigpPT5keixpc1ZvaWRLZXl3b3JkOigpPT5DcSxzeW1ib2xIYXNSZWFkb25seURlY2xhcmF0aW9uOigpPT5Ldyx1bmlvblR5cGVQYXJ0czooKT0+ZHV9KTtady5leHBvcnRzPU9VKHV3KTt2YXIgWnI9UHIoRHQoKSwxKSxzdz1QcihEdCgpLDEpO2Z1bmN0aW9uIHB3KGUsdCxyPWUuZ2V0U291cmNlRmlsZSgpKXtsZXQgYT1bXTtmb3IoOzspe2lmKHN3LmRlZmF1bHQuaXNUb2tlbktpbmQoZS5raW5kKSl0KGUpO2Vsc2UgaWYoZS5raW5kIT09c3cuZGVmYXVsdC5TeW50YXhLaW5kLkpTRG9jQ29tbWVudCl7bGV0IF89ZS5nZXRDaGlsZHJlbihyKTtpZihfLmxlbmd0aD09PTEpe2U9X1swXTtjb250aW51ZX1mb3IobGV0IHA9Xy5sZW5ndGgtMTtwPj0wOy0tcClhLnB1c2goX1twXSl9aWYoYS5sZW5ndGg9PT0wKWJyZWFrO2U9YS5wb3AoKX19ZnVuY3Rpb24gTVUoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSBaci5kZWZhdWx0LlN5bnRheEtpbmQuQ2xvc2VCcmFjZVRva2VuOnJldHVybiBlLnBhcmVudC5raW5kIT09WnIuZGVmYXVsdC5TeW50YXhLaW5kLkpzeEV4cHJlc3Npb258fCFlYihlLnBhcmVudC5wYXJlbnQpO2Nhc2UgWnIuZGVmYXVsdC5TeW50YXhLaW5kLkdyZWF0ZXJUaGFuVG9rZW46c3dpdGNoKGUucGFyZW50LmtpbmQpe2Nhc2UgWnIuZGVmYXVsdC5TeW50YXhLaW5kLkpzeE9wZW5pbmdFbGVtZW50OnJldHVybiBlLmVuZCE9PWUucGFyZW50LmVuZDtjYXNlIFpyLmRlZmF1bHQuU3ludGF4S2luZC5Kc3hPcGVuaW5nRnJhZ21lbnQ6cmV0dXJuITE7Y2FzZSBaci5kZWZhdWx0LlN5bnRheEtpbmQuSnN4U2VsZkNsb3NpbmdFbGVtZW50OnJldHVybiBlLmVuZCE9PWUucGFyZW50LmVuZHx8IWViKGUucGFyZW50LnBhcmVudCk7Y2FzZSBaci5kZWZhdWx0LlN5bnRheEtpbmQuSnN4Q2xvc2luZ0VsZW1lbnQ6Y2FzZSBaci5kZWZhdWx0LlN5bnRheEtpbmQuSnN4Q2xvc2luZ0ZyYWdtZW50OnJldHVybiFlYihlLnBhcmVudC5wYXJlbnQucGFyZW50KX19cmV0dXJuITB9ZnVuY3Rpb24gZWIoZSl7cmV0dXJuIGUua2luZD09PVpyLmRlZmF1bHQuU3ludGF4S2luZC5Kc3hFbGVtZW50fHxlLmtpbmQ9PT1aci5kZWZhdWx0LlN5bnRheEtpbmQuSnN4RnJhZ21lbnR9ZnVuY3Rpb24gTFUoZSx0LHI9ZS5nZXRTb3VyY2VGaWxlKCkpe2xldCBhPXIudGV4dCxfPXIubGFuZ3VhZ2VWYXJpYW50IT09WnIuZGVmYXVsdC5MYW5ndWFnZVZhcmlhbnQuSlNYO3JldHVybiBwdyhlLGQ9PntpZihkLnBvcyE9PWQuZW5kJiYoZC5raW5kIT09WnIuZGVmYXVsdC5TeW50YXhLaW5kLkpzeFRleHQmJlpyLmRlZmF1bHQuZm9yRWFjaExlYWRpbmdDb21tZW50UmFuZ2UoYSxkLnBvcz09PTA/KFpyLmRlZmF1bHQuZ2V0U2hlYmFuZyhhKT8/XCJcIikubGVuZ3RoOmQucG9zLHApLF98fE1VKGQpKSlyZXR1cm4gWnIuZGVmYXVsdC5mb3JFYWNoVHJhaWxpbmdDb21tZW50UmFuZ2UoYSxkLmVuZCxwKX0scik7ZnVuY3Rpb24gcChkLGgsbCl7dChhLHtwb3M6ZCxlbmQ6aCxraW5kOmx9KX19dmFyIEpVPVByKER0KCksMSk7ZnVuY3Rpb24gamEoZSx0KXtzd2l0Y2godCl7Y2FzZVwic3RyaXBJbnRlcm5hbFwiOmNhc2VcImRlY2xhcmF0aW9uTWFwXCI6Y2FzZVwiZW1pdERlY2xhcmF0aW9uT25seVwiOnJldHVybiBlW3RdPT09ITAmJmphKGUsXCJkZWNsYXJhdGlvblwiKTtjYXNlXCJkZWNsYXJhdGlvblwiOnJldHVybiBlLmRlY2xhcmF0aW9ufHxqYShlLFwiY29tcG9zaXRlXCIpO2Nhc2VcImluY3JlbWVudGFsXCI6cmV0dXJuIGUuaW5jcmVtZW50YWw9PT12b2lkIDA/amEoZSxcImNvbXBvc2l0ZVwiKTplLmluY3JlbWVudGFsO2Nhc2VcInNraXBEZWZhdWx0TGliQ2hlY2tcIjpyZXR1cm4gZS5za2lwRGVmYXVsdExpYkNoZWNrfHxqYShlLFwic2tpcExpYkNoZWNrXCIpO2Nhc2VcInN1cHByZXNzSW1wbGljaXRBbnlJbmRleEVycm9yc1wiOnJldHVybiBlLnN1cHByZXNzSW1wbGljaXRBbnlJbmRleEVycm9ycz09PSEwJiZqYShlLFwibm9JbXBsaWNpdEFueVwiKTtjYXNlXCJhbGxvd1N5bnRoZXRpY0RlZmF1bHRJbXBvcnRzXCI6cmV0dXJuIGUuYWxsb3dTeW50aGV0aWNEZWZhdWx0SW1wb3J0cyE9PXZvaWQgMD9lLmFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHM6amEoZSxcImVzTW9kdWxlSW50ZXJvcFwiKXx8ZS5tb2R1bGU9PT1KVS5kZWZhdWx0Lk1vZHVsZUtpbmQuU3lzdGVtO2Nhc2VcIm5vVW5jaGVja2VkSW5kZXhlZEFjY2Vzc1wiOnJldHVybiBlLm5vVW5jaGVja2VkSW5kZXhlZEFjY2Vzcz09PSEwJiZqYShlLFwic3RyaWN0TnVsbENoZWNrc1wiKTtjYXNlXCJhbGxvd0pzXCI6cmV0dXJuIGUuYWxsb3dKcz09PXZvaWQgMD9qYShlLFwiY2hlY2tKc1wiKTplLmFsbG93SnM7Y2FzZVwibm9JbXBsaWNpdEFueVwiOmNhc2VcIm5vSW1wbGljaXRUaGlzXCI6Y2FzZVwic3RyaWN0TnVsbENoZWNrc1wiOmNhc2VcInN0cmljdEZ1bmN0aW9uVHlwZXNcIjpjYXNlXCJzdHJpY3RQcm9wZXJ0eUluaXRpYWxpemF0aW9uXCI6Y2FzZVwiYWx3YXlzU3RyaWN0XCI6Y2FzZVwic3RyaWN0QmluZENhbGxBcHBseVwiOnJldHVybiByYihlLHQpfXJldHVybiBlW3RdPT09ITB9ZnVuY3Rpb24gcmIoZSx0KXtyZXR1cm4oZS5zdHJpY3Q/ZVt0XSE9PSExOmVbdF09PT0hMCkmJih0IT09XCJzdHJpY3RQcm9wZXJ0eUluaXRpYWxpemF0aW9uXCJ8fHJiKGUsXCJzdHJpY3ROdWxsQ2hlY2tzXCIpKX12YXIgUlU9UHIoRHQoKSwxKTtmdW5jdGlvbiBuYihlLHQpe3JldHVybihlJnQpIT09MH1mdW5jdGlvbiBpYihlLHQpe3JldHVybiBuYihlLmZsYWdzLHQpfWZ1bmN0aW9uIGZ3KGUsdCl7cmV0dXJuIG5iKFJVLmRlZmF1bHQuZ2V0Q29tYmluZWRNb2RpZmllckZsYWdzKGUpLHQpfXZhciBkdz1pYjtmdW5jdGlvbiBtdShlLHQpe3JldHVybiBuYihlLm9iamVjdEZsYWdzLHQpfXZhciBtdz1pYix0dD1pYjtmdW5jdGlvbiBqVShlLC4uLnQpe2lmKGU9PT12b2lkIDApcmV0dXJuITE7Zm9yKGxldCByIG9mIGUpaWYodC5pbmNsdWRlcyhyLmtpbmQpKXJldHVybiEwO3JldHVybiExfXZhciBwcj1QcihEdCgpLDEpLEZlPVByKER0KCksMSk7ZnVuY3Rpb24gRlUoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5BYnN0cmFjdEtleXdvcmR9ZnVuY3Rpb24gaHcoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5BY2Nlc3NvcktleXdvcmR9ZnVuY3Rpb24gQlUoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5BbnlLZXl3b3JkfWZ1bmN0aW9uIFVVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuQXNzZXJ0S2V5d29yZH1mdW5jdGlvbiBxVShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkFzc2VydHNLZXl3b3JkfWZ1bmN0aW9uIHpVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuQXN5bmNLZXl3b3JkfWZ1bmN0aW9uIFdVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuQXdhaXRLZXl3b3JkfWZ1bmN0aW9uIFZVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuQmlnSW50S2V5d29yZH1mdW5jdGlvbiBIVShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkJvb2xlYW5LZXl3b3JkfWZ1bmN0aW9uIEdVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuQ29sb25Ub2tlbn1mdW5jdGlvbiBYVShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkNvbnN0S2V5d29yZH1mdW5jdGlvbiAkVShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkRlY2xhcmVLZXl3b3JkfWZ1bmN0aW9uIFFVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuRGVmYXVsdEtleXdvcmR9ZnVuY3Rpb24gWVUoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5Eb3RUb2tlbn1mdW5jdGlvbiB5dyhlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkVuZE9mRmlsZVRva2VufWZ1bmN0aW9uIEtVKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuRXF1YWxzR3JlYXRlclRoYW5Ub2tlbn1mdW5jdGlvbiBaVShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkVxdWFsc1Rva2VufWZ1bmN0aW9uIGVxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuRXhjbGFtYXRpb25Ub2tlbn1mdW5jdGlvbiB0cShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkV4cG9ydEtleXdvcmR9ZnVuY3Rpb24gcnEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5GYWxzZUtleXdvcmR9ZnVuY3Rpb24gZ3coZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5GYWxzZUtleXdvcmR9ZnVuY3Rpb24gbnEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5JbXBvcnRLZXl3b3JkfWZ1bmN0aW9uIGlxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuSW1wb3J0S2V5d29yZH1mdW5jdGlvbiBhcShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLkluS2V5d29yZH1mdW5jdGlvbiBvcShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLklucHV0RmlsZXN9ZnVuY3Rpb24gYncoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5KU0RvY1RleHR9ZnVuY3Rpb24gdncoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5QcmVmaXhVbmFyeUV4cHJlc3Npb259ZnVuY3Rpb24gc3EoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5OZXZlcktleXdvcmR9ZnVuY3Rpb24gX3EoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5OdWxsS2V5d29yZH1mdW5jdGlvbiBUdyhlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLk51bGxLZXl3b3JkfWZ1bmN0aW9uIGNxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuTnVtYmVyS2V5d29yZH1mdW5jdGlvbiBscShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLk9iamVjdEtleXdvcmR9ZnVuY3Rpb24gdXEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5PdXRLZXl3b3JkfWZ1bmN0aW9uIHBxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuT3ZlcnJpZGVLZXl3b3JkfWZ1bmN0aW9uIFN3KGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuUHJpdmF0ZUtleXdvcmR9ZnVuY3Rpb24geHcoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5Qcm90ZWN0ZWRLZXl3b3JkfWZ1bmN0aW9uIHd3KGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuUHVibGljS2V5d29yZH1mdW5jdGlvbiBmcShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlF1ZXN0aW9uRG90VG9rZW59ZnVuY3Rpb24gZHEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5RdWVzdGlvblRva2VufWZ1bmN0aW9uIGFiKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuUmVhZG9ubHlLZXl3b3JkfWZ1bmN0aW9uIEN3KGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuU3RhdGljS2V5d29yZH1mdW5jdGlvbiBtcShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlN0cmluZ0tleXdvcmR9ZnVuY3Rpb24gb2IoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5TdXBlcktleXdvcmR9ZnVuY3Rpb24gaHEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5TdXBlcktleXdvcmR9ZnVuY3Rpb24geXEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5TeW1ib2xLZXl3b3JkfWZ1bmN0aW9uIGdxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuU3ludGF4TGlzdH1mdW5jdGlvbiBFdyhlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlRoaXNLZXl3b3JkfWZ1bmN0aW9uIGJxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuVGhpc0tleXdvcmR9ZnVuY3Rpb24gdnEoZSl7cmV0dXJuIGUua2luZD09PUZlLmRlZmF1bHQuU3ludGF4S2luZC5UcnVlS2V5d29yZH1mdW5jdGlvbiBBdyhlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlRydWVLZXl3b3JkfWZ1bmN0aW9uIFRxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuVW5kZWZpbmVkS2V5d29yZH1mdW5jdGlvbiBTcShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlVua25vd25LZXl3b3JkfWZ1bmN0aW9uIHhxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuVW5wYXJzZWRQcm9sb2d1ZX1mdW5jdGlvbiB3cShlKXtyZXR1cm4gZS5raW5kPT09RmUuZGVmYXVsdC5TeW50YXhLaW5kLlVucGFyc2VkU3ludGhldGljUmVmZXJlbmNlfWZ1bmN0aW9uIENxKGUpe3JldHVybiBlLmtpbmQ9PT1GZS5kZWZhdWx0LlN5bnRheEtpbmQuVm9pZEtleXdvcmR9dmFyIEQ9UHIoRHQoKSwxKSxFcT1QcihEdCgpLDEpLFtfdyxBcV09RXEuZGVmYXVsdC52ZXJzaW9uTWFqb3JNaW5vci5zcGxpdChcIi5cIikubWFwKGU9Pk51bWJlci5wYXJzZUludChlLDEwKSk7ZnVuY3Rpb24gZnUoZSx0PTApe3JldHVybiBfdz5lfHxfdz09PWUmJkFxPj10fWZ1bmN0aW9uIGtxKGUpe3JldHVybiBELmRlZmF1bHQuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0VsZW1lbnRBY2Nlc3NFeHByZXNzaW9uKGUpfWZ1bmN0aW9uIHNiKGUpe3JldHVybiB3dyhlKXx8U3coZSl8fHh3KGUpfWZ1bmN0aW9uIF9iKGUpe3JldHVybiBELmRlZmF1bHQuaXNHZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNTZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGUpfWZ1bmN0aW9uIERxKGUpe3JldHVybiBELmRlZmF1bHQuaXNCaW5kaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzT21pdHRlZEV4cHJlc3Npb24oZSl9ZnVuY3Rpb24ga3coZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0FycmF5QmluZGluZ1BhdHRlcm4oZSl8fEQuZGVmYXVsdC5pc0FycmF5TGl0ZXJhbEV4cHJlc3Npb24oZSl9ZnVuY3Rpb24gUHEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKGUpfWZ1bmN0aW9uIElxKGUpe3JldHVybiBELmRlZmF1bHQuaXNTcHJlYWRFbGVtZW50KGUpfHxELmRlZmF1bHQuaXNTcHJlYWRBc3NpZ25tZW50KGUpPyEwOmZ1KDQsNCk/RC5kZWZhdWx0LmlzRG90RG90RG90VG9rZW4oZSk6ITF9ZnVuY3Rpb24gTnEoZSl7cmV0dXJuIER3KGUpfHxELmRlZmF1bHQuaXNJZGVudGlmaWVyKGUpfHxELmRlZmF1bHQuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0VsZW1lbnRBY2Nlc3NFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNPbWl0dGVkRXhwcmVzc2lvbihlKX1mdW5jdGlvbiBEdyhlKXtyZXR1cm4gTHcoZSl8fGt3KGUpfWZ1bmN0aW9uIGNiKGUpe3JldHVybiBELmRlZmF1bHQuaXNPYmplY3RCaW5kaW5nUGF0dGVybihlKXx8RC5kZWZhdWx0LmlzQXJyYXlCaW5kaW5nUGF0dGVybihlKX1mdW5jdGlvbiBPcShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzU291cmNlRmlsZShlKXx8RC5kZWZhdWx0LmlzQmxvY2soZSl8fEQuZGVmYXVsdC5pc01vZHVsZUJsb2NrKGUpfHxELmRlZmF1bHQuaXNDYXNlT3JEZWZhdWx0Q2xhdXNlKGUpfWZ1bmN0aW9uIFB3KGUpe3JldHVybiBBdyhlKXx8Z3coZSl9ZnVuY3Rpb24gVm0oZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0NsYXNzRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0NsYXNzRXhwcmVzc2lvbihlKX1mdW5jdGlvbiBNcShlKXtyZXR1cm4gc2IoZSl8fGFiKGUpfHxDdyhlKXx8aHcoZSl9ZnVuY3Rpb24gSXcoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0lkZW50aWZpZXIoZSl8fEQuZGVmYXVsdC5pc1ByaXZhdGVJZGVudGlmaWVyKGUpfHxELmRlZmF1bHQuaXNTdHJpbmdMaXRlcmFsTGlrZShlKXx8RC5kZWZhdWx0LmlzTnVtZXJpY0xpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc0NvbXB1dGVkUHJvcGVydHlOYW1lKGUpfHxELmRlZmF1bHQuaXNFbGVtZW50QWNjZXNzRXhwcmVzc2lvbihlKXx8Y2IoZSl8fGh1KGUpfWZ1bmN0aW9uIE53KGUpe3JldHVybiBwYihlKXx8Vm0oZSl8fEQuZGVmYXVsdC5pc0ludGVyZmFjZURlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNUeXBlQWxpYXNEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzSlNEb2NUZW1wbGF0ZVRhZyhlKX1mdW5jdGlvbiBMcShlKXtyZXR1cm4gTncoZSl8fEQuZGVmYXVsdC5pc0pTRG9jVHlwZWRlZlRhZyhlKXx8RC5kZWZhdWx0LmlzSlNEb2NDYWxsYmFja1RhZyhlKXx8RC5kZWZhdWx0LmlzSlNEb2NTaWduYXR1cmUoZSl9ZnVuY3Rpb24gSnEoZSl7cmV0dXJuIGNiKGUpfHxELmRlZmF1bHQuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihlKXx8RC5kZWZhdWx0LmlzQXJyYXlMaXRlcmFsRXhwcmVzc2lvbihlKX1mdW5jdGlvbiBodShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzSWRlbnRpZmllcihlKXx8cXcoZSl9ZnVuY3Rpb24gUnEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0VudGl0eU5hbWUoZSl8fGh1KGUpfWZ1bmN0aW9uIGpxKGUpe3JldHVybiBELmRlZmF1bHQuaXNGb3JJblN0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzRm9yT2ZTdGF0ZW1lbnQoZSl9ZnVuY3Rpb24gRnEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0Z1bmN0aW9uRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01ldGhvZERlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNHZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNTZXRBY2Nlc3NvckRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNGdW5jdGlvbkV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0Fycm93RnVuY3Rpb24oZSl9ZnVuY3Rpb24gQnEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc1BhcmFtZXRlcihlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzTWV0aG9kRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0dldEFjY2Vzc29yRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc1NldEFjY2Vzc29yRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0NsYXNzRXhwcmVzc2lvbihlKXx8RC5kZWZhdWx0LmlzQ2xhc3NEZWNsYXJhdGlvbihlKX1mdW5jdGlvbiBPdyhlKXtyZXR1cm4gRC5kZWZhdWx0LmlzVmFyaWFibGVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzUGFyYW1ldGVyKGUpfHxELmRlZmF1bHQuaXNCaW5kaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlBc3NpZ25tZW50KGUpfHxELmRlZmF1bHQuaXNFbnVtTWVtYmVyKGUpfWZ1bmN0aW9uIFVxKGUpe3JldHVybiBPdyhlKXx8RC5kZWZhdWx0LmlzRm9yU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNGb3JJblN0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzRm9yT2ZTdGF0ZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0pzeEF0dHJpYnV0ZShlKX1mdW5jdGlvbiBxcShlKXtyZXR1cm4hIShfYihlKXx8RC5kZWZhdWx0LmlzQXJyb3dGdW5jdGlvbihlKXx8RC5kZWZhdWx0LmlzQmxvY2soZSl8fEQuZGVmYXVsdC5pc0JyZWFrU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0Nhc2VDbGF1c2UoZSl8fFZtKGUpfHxELmRlZmF1bHQuaXNDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNDb25zdHJ1Y3RvclR5cGVOb2RlKGUpfHxELmRlZmF1bHQuaXNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzQ29udGludWVTdGF0ZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0RlYnVnZ2VyU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNEb1N0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzRW1wdHlTdGF0ZW1lbnQoZSl8fHl3KGUpfHxELmRlZmF1bHQuaXNFbnVtRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0VudW1NZW1iZXIoZSl8fEQuZGVmYXVsdC5pc0V4cG9ydEFzc2lnbm1lbnQoZSl8fEQuZGVmYXVsdC5pc0V4cG9ydERlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNFeHBvcnRTcGVjaWZpZXIoZSl8fEQuZGVmYXVsdC5pc0V4cHJlc3Npb25TdGF0ZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0ZvckluU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNGb3JPZlN0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzRm9yU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNGdW5jdGlvbkRlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNGdW5jdGlvbkV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0Z1bmN0aW9uVHlwZU5vZGUoZSl8fEQuZGVmYXVsdC5pc0lmU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNJbXBvcnREZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0luZGV4U2lnbmF0dXJlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0ludGVyZmFjZURlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNKU0RvY0Z1bmN0aW9uVHlwZShlKXx8RC5kZWZhdWx0LmlzTGFiZWxlZFN0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzTWV0aG9kRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01ldGhvZFNpZ25hdHVyZShlKXx8RC5kZWZhdWx0LmlzTW9kdWxlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc05hbWVkVHVwbGVNZW1iZXIoZSl8fEQuZGVmYXVsdC5pc05hbWVzcGFjZUV4cG9ydERlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNQYXJhbWV0ZXIoZSl8fEQuZGVmYXVsdC5pc1BhcmVudGhlc2l6ZWRFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNQcm9wZXJ0eUFzc2lnbm1lbnQoZSl8fEQuZGVmYXVsdC5pc1Byb3BlcnR5RGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc1Byb3BlcnR5U2lnbmF0dXJlKGUpfHxELmRlZmF1bHQuaXNSZXR1cm5TdGF0ZW1lbnQoZSl8fEQuZGVmYXVsdC5pc1Nob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudChlKXx8RC5kZWZhdWx0LmlzU3ByZWFkQXNzaWdubWVudChlKXx8RC5kZWZhdWx0LmlzU3dpdGNoU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNUaHJvd1N0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzVHJ5U3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNUeXBlQWxpYXNEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzVmFyaWFibGVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzVmFyaWFibGVTdGF0ZW1lbnQoZSl8fEQuZGVmYXVsdC5pc1doaWxlU3RhdGVtZW50KGUpfHxELmRlZmF1bHQuaXNXaXRoU3RhdGVtZW50KGUpfHxmdSg0LDQpJiZELmRlZmF1bHQuaXNDbGFzc1N0YXRpY0Jsb2NrRGVjbGFyYXRpb24oZSl8fGZ1KDUsMCkmJihELmRlZmF1bHQuaXNCaW5hcnlFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNFbGVtZW50QWNjZXNzRXhwcmVzc2lvbihlKXx8RC5kZWZhdWx0LmlzSWRlbnRpZmllcihlKXx8RC5kZWZhdWx0LmlzSlNEb2NTaWduYXR1cmUoZSl8fEQuZGVmYXVsdC5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc1R5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbihlKSkpfWZ1bmN0aW9uIHpxKGUpe3JldHVybiBELmRlZmF1bHQuaXNUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc1BhcmFtZXRlcihlKXx8RC5kZWZhdWx0LmlzQ29uc3RydWN0b3JUeXBlTm9kZShlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlTaWduYXR1cmUoZSl8fEQuZGVmYXVsdC5pc1Byb3BlcnR5RGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01ldGhvZFNpZ25hdHVyZShlKXx8RC5kZWZhdWx0LmlzTWV0aG9kRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0NvbnN0cnVjdG9yRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0dldEFjY2Vzc29yRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc1NldEFjY2Vzc29yRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0luZGV4U2lnbmF0dXJlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0Z1bmN0aW9uRXhwcmVzc2lvbihlKXx8RC5kZWZhdWx0LmlzQXJyb3dGdW5jdGlvbihlKXx8RC5kZWZhdWx0LmlzQ2xhc3NFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNWYXJpYWJsZVN0YXRlbWVudChlKXx8RC5kZWZhdWx0LmlzRnVuY3Rpb25EZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzQ2xhc3NEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzSW50ZXJmYWNlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc1R5cGVBbGlhc0RlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNFbnVtRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01vZHVsZURlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzSW1wb3J0RGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc0V4cG9ydEFzc2lnbm1lbnQoZSl8fEQuZGVmYXVsdC5pc0V4cG9ydERlY2xhcmF0aW9uKGUpfWZ1bmN0aW9uIFdxKGUpe3JldHVybiBwYihlKXx8RC5kZWZhdWx0LmlzVmFyaWFibGVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzUGFyYW1ldGVyKGUpfHxELmRlZmF1bHQuaXNQcm9wZXJ0eVNpZ25hdHVyZShlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzVHlwZVByZWRpY2F0ZU5vZGUoZSl8fEQuZGVmYXVsdC5pc1BhcmVudGhlc2l6ZWRUeXBlTm9kZShlKXx8RC5kZWZhdWx0LmlzVHlwZU9wZXJhdG9yTm9kZShlKXx8RC5kZWZhdWx0LmlzTWFwcGVkVHlwZU5vZGUoZSl8fEQuZGVmYXVsdC5pc0Fzc2VydGlvbkV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc1R5cGVBbGlhc0RlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNKU0RvY1R5cGVFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNKU0RvY05vbk51bGxhYmxlVHlwZShlKXx8RC5kZWZhdWx0LmlzSlNEb2NOdWxsYWJsZVR5cGUoZSl8fEQuZGVmYXVsdC5pc0pTRG9jT3B0aW9uYWxUeXBlKGUpfHxELmRlZmF1bHQuaXNKU0RvY1ZhcmlhZGljVHlwZShlKX1mdW5jdGlvbiBWcShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzQ2FsbEV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc05ld0V4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc1RhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbihlKXx8RC5kZWZhdWx0LmlzSnN4T3BlbmluZ0VsZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0pzeFNlbGZDbG9zaW5nRWxlbWVudChlKX1mdW5jdGlvbiBIcShlKXtyZXR1cm4gYncoZSk/ITA6ZnUoNCw0KT9ELmRlZmF1bHQuaXNKU0RvY0xpbmsoZSl8fEQuZGVmYXVsdC5pc0pTRG9jTGlua0NvZGUoZSl8fEQuZGVmYXVsdC5pc0pTRG9jTGlua1BsYWluKGUpOiExfWZ1bmN0aW9uIGxiKGUpe3JldHVybiBELmRlZmF1bHQuaXNJZGVudGlmaWVyKGUpfHxSdyhlKX1mdW5jdGlvbiBHcShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzSlNEb2NWYXJpYWRpY1R5cGUoZSl8fEQuZGVmYXVsdC5pc0pTRG9jT3B0aW9uYWxUeXBlKGUpfHxELmRlZmF1bHQuaXNKU0RvY051bGxhYmxlVHlwZShlKXx8RC5kZWZhdWx0LmlzSlNEb2NOb25OdWxsYWJsZVR5cGUoZSl9ZnVuY3Rpb24gWHEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc09iamVjdExpdGVyYWxFeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNBcnJheUxpdGVyYWxFeHByZXNzaW9uKGUpfHx2dyhlKXx8RC5kZWZhdWx0LmlzTnVtZXJpY0xpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc1N0cmluZ0xpdGVyYWwoZSl8fFB3KGUpfHxUdyhlKX1mdW5jdGlvbiAkcShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzSnN4QXR0cmlidXRlKGUpfHxELmRlZmF1bHQuaXNKc3hTcHJlYWRBdHRyaWJ1dGUoZSl9ZnVuY3Rpb24gUXEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc1N0cmluZ0xpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc0pzeEV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0pzeEVsZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0pzeFNlbGZDbG9zaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzSnN4RnJhZ21lbnQoZSl9ZnVuY3Rpb24gWXEoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0pzeFRleHQoZSl8fEQuZGVmYXVsdC5pc0pzeEV4cHJlc3Npb24oZSl8fEQuZGVmYXVsdC5pc0pzeEVsZW1lbnQoZSl8fEQuZGVmYXVsdC5pc0pzeFNlbGZDbG9zaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzSnN4RnJhZ21lbnQoZSl9ZnVuY3Rpb24gTXcoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0lkZW50aWZpZXIoZSl8fEV3KGUpfHxqdyhlKX1mdW5jdGlvbiBLcShlKXtyZXR1cm4gRC5kZWZhdWx0LmlzTnVtZXJpY0xpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc0JpZ0ludExpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc1N0cmluZ0xpdGVyYWwoZSl8fEQuZGVmYXVsdC5pc0pzeFRleHQoZSl8fEQuZGVmYXVsdC5pc1JlZ3VsYXJFeHByZXNzaW9uTGl0ZXJhbChlKXx8RC5kZWZhdWx0LmlzTm9TdWJzdGl0dXRpb25UZW1wbGF0ZUxpdGVyYWwoZSl9ZnVuY3Rpb24gWnEoZSl7cmV0dXJuIHViKGUpfHxsYihlKX1mdW5jdGlvbiBleihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzSWRlbnRpZmllcihlKXx8RC5kZWZhdWx0LmlzU3RyaW5nTGl0ZXJhbChlKX1mdW5jdGlvbiB0eihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzRW50aXR5TmFtZShlKXx8RC5kZWZhdWx0LmlzRXh0ZXJuYWxNb2R1bGVSZWZlcmVuY2UoZSl9ZnVuY3Rpb24gcnooZSl7cmV0dXJuIEQuZGVmYXVsdC5pc05hbWVzcGFjZUltcG9ydChlKXx8RC5kZWZhdWx0LmlzTmFtZWRJbXBvcnRzKGUpfWZ1bmN0aW9uIG56KGUpe3JldHVybiBELmRlZmF1bHQuaXNOYW1lZEltcG9ydHMoZSl8fEQuZGVmYXVsdC5pc05hbWVkRXhwb3J0cyhlKX1mdW5jdGlvbiB1YihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzTW9kdWxlQmxvY2soZSl8fEJ3KGUpfWZ1bmN0aW9uIGl6KGUpe3JldHVybiBELmRlZmF1bHQuaXNCaW5kaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlBc3NpZ25tZW50KGUpfHxELmRlZmF1bHQuaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQoZSl8fEQuZGVmYXVsdC5pc1NwcmVhZEFzc2lnbm1lbnQoZSl9ZnVuY3Rpb24gTHcoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc09iamVjdEJpbmRpbmdQYXR0ZXJuKGUpfHxELmRlZmF1bHQuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihlKX1mdW5jdGlvbiBheihlKXtyZXR1cm4gVm0oZSl8fEQuZGVmYXVsdC5pc0ludGVyZmFjZURlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNUeXBlTGl0ZXJhbE5vZGUoZSl9ZnVuY3Rpb24gb3ooZSl7cmV0dXJuIHNiKGUpfHxhYihlKX1mdW5jdGlvbiBzeihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzSWRlbnRpZmllcihlKXx8RC5kZWZhdWx0LmlzU3RyaW5nTGl0ZXJhbExpa2UoZSl8fEQuZGVmYXVsdC5pc051bWVyaWNMaXRlcmFsKGUpfWZ1bmN0aW9uIF96KGUpe3JldHVybiBELmRlZmF1bHQuaXNUZW1wbGF0ZUhlYWQoZSl8fEQuZGVmYXVsdC5pc1RlbXBsYXRlTWlkZGxlKGUpfHxELmRlZmF1bHQuaXNUZW1wbGF0ZVRhaWwoZSl9ZnVuY3Rpb24gcGIoZSl7cmV0dXJuIEQuZGVmYXVsdC5pc0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzQ29uc3RydWN0U2lnbmF0dXJlRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01ldGhvZFNpZ25hdHVyZShlKXx8RC5kZWZhdWx0LmlzSW5kZXhTaWduYXR1cmVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzRnVuY3Rpb25UeXBlTm9kZShlKXx8RC5kZWZhdWx0LmlzQ29uc3RydWN0b3JUeXBlTm9kZShlKXx8RC5kZWZhdWx0LmlzSlNEb2NGdW5jdGlvblR5cGUoZSl8fEQuZGVmYXVsdC5pc0Z1bmN0aW9uRGVjbGFyYXRpb24oZSl8fEQuZGVmYXVsdC5pc01ldGhvZERlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKGUpfHxfYihlKXx8RC5kZWZhdWx0LmlzRnVuY3Rpb25FeHByZXNzaW9uKGUpfHxELmRlZmF1bHQuaXNBcnJvd0Z1bmN0aW9uKGUpfWZ1bmN0aW9uIGN6KGUpe3JldHVybiBXdyhlKXx8encoZSl9ZnVuY3Rpb24gbHooZSl7cmV0dXJuISEoRC5kZWZhdWx0LmlzSW1wb3J0Q2xhdXNlKGUpfHxELmRlZmF1bHQuaXNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzTmFtZXNwYWNlSW1wb3J0KGUpfHxELmRlZmF1bHQuaXNJbXBvcnRPckV4cG9ydFNwZWNpZmllcihlKXx8ZnUoNSwwKSYmKEQuZGVmYXVsdC5pc0V4cG9ydERlY2xhcmF0aW9uKGUpfHxELmRlZmF1bHQuaXNOYW1lc3BhY2VFeHBvcnQoZSkpKX1mdW5jdGlvbiB1eihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzVHlwZVJlZmVyZW5jZU5vZGUoZSl8fEQuZGVmYXVsdC5pc0V4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50cyhlKX1mdW5jdGlvbiBweihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzVW5pb25UeXBlTm9kZShlKXx8RC5kZWZhdWx0LmlzSW50ZXJzZWN0aW9uVHlwZU5vZGUoZSl9ZnVuY3Rpb24gZnooZSl7cmV0dXJuIEQuZGVmYXVsdC5pc1VucGFyc2VkUHJlcGVuZChlKXx8RC5kZWZhdWx0LmlzVW5wYXJzZWRUZXh0TGlrZShlKX1mdW5jdGlvbiBkeihlKXtyZXR1cm4gRC5kZWZhdWx0LmlzVmFyaWFibGVEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzUGFyYW1ldGVyKGUpfHxELmRlZmF1bHQuaXNCaW5kaW5nRWxlbWVudChlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlEZWNsYXJhdGlvbihlKXx8RC5kZWZhdWx0LmlzUHJvcGVydHlBc3NpZ25tZW50KGUpfHxELmRlZmF1bHQuaXNQcm9wZXJ0eVNpZ25hdHVyZShlKXx8RC5kZWZhdWx0LmlzSnN4QXR0cmlidXRlKGUpfHxELmRlZmF1bHQuaXNTaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQoZSl8fEQuZGVmYXVsdC5pc0VudW1NZW1iZXIoZSl8fEQuZGVmYXVsdC5pc0pTRG9jUHJvcGVydHlUYWcoZSl8fEQuZGVmYXVsdC5pc0pTRG9jUGFyYW1ldGVyVGFnKGUpfWZ1bmN0aW9uIEp3KGUpe3JldHVybiBwci5kZWZhdWx0LmlzVHlwZVJlZmVyZW5jZU5vZGUoZS50eXBlKSYmcHIuZGVmYXVsdC5pc0lkZW50aWZpZXIoZS50eXBlLnR5cGVOYW1lKSYmZS50eXBlLnR5cGVOYW1lLmVzY2FwZWRUZXh0PT09XCJjb25zdFwifWZ1bmN0aW9uIG16KGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgcHIuZGVmYXVsdC5TeW50YXhLaW5kLkRvU3RhdGVtZW50OmNhc2UgcHIuZGVmYXVsdC5TeW50YXhLaW5kLkZvckluU3RhdGVtZW50OmNhc2UgcHIuZGVmYXVsdC5TeW50YXhLaW5kLkZvck9mU3RhdGVtZW50OmNhc2UgcHIuZGVmYXVsdC5TeW50YXhLaW5kLkZvclN0YXRlbWVudDpjYXNlIHByLmRlZmF1bHQuU3ludGF4S2luZC5XaGlsZVN0YXRlbWVudDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBSdyhlKXtyZXR1cm4gcHIuZGVmYXVsdC5pc01vZHVsZURlY2xhcmF0aW9uKGUpJiZwci5kZWZhdWx0LmlzSWRlbnRpZmllcihlLm5hbWUpJiYoZS5ib2R5PT09dm9pZCAwfHxsYihlLmJvZHkpKX1mdW5jdGlvbiBqdyhlKXtyZXR1cm4gcHIuZGVmYXVsdC5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihlKSYmTXcoZS5leHByZXNzaW9uKX1mdW5jdGlvbiBGdyhlKXtyZXR1cm5cIm5hbWVcImluIGUmJmUubmFtZSE9PXZvaWQgMCYmZS5uYW1lIT09bnVsbCYmSXcoZS5uYW1lKX1mdW5jdGlvbiBCdyhlKXtyZXR1cm4gcHIuZGVmYXVsdC5pc01vZHVsZURlY2xhcmF0aW9uKGUpJiZwci5kZWZhdWx0LmlzSWRlbnRpZmllcihlLm5hbWUpJiZlLmJvZHkhPT12b2lkIDAmJnViKGUuYm9keSl9ZnVuY3Rpb24gVXcoZSl7c3dpdGNoKGUua2luZCl7Y2FzZSBwci5kZWZhdWx0LlN5bnRheEtpbmQuU3RyaW5nTGl0ZXJhbDpjYXNlIHByLmRlZmF1bHQuU3ludGF4S2luZC5OdW1lcmljTGl0ZXJhbDpjYXNlIHByLmRlZmF1bHQuU3ludGF4S2luZC5Ob1N1YnN0aXR1dGlvblRlbXBsYXRlTGl0ZXJhbDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBxdyhlKXtyZXR1cm4gcHIuZGVmYXVsdC5pc1Byb3BlcnR5QWNjZXNzRXhwcmVzc2lvbihlKSYmcHIuZGVmYXVsdC5pc0lkZW50aWZpZXIoZS5uYW1lKSYmaHUoZS5leHByZXNzaW9uKX1mdW5jdGlvbiB6dyhlKXtyZXR1cm4gcHIuZGVmYXVsdC5pc0VsZW1lbnRBY2Nlc3NFeHByZXNzaW9uKGUpJiZvYihlLmV4cHJlc3Npb24pfWZ1bmN0aW9uIFd3KGUpe3JldHVybiBwci5kZWZhdWx0LmlzUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uKGUpJiZvYihlLmV4cHJlc3Npb24pfXZhciB2cj1QcihEdCgpLDEpO2Z1bmN0aW9uIGh6KGUpe3N3aXRjaChlLmtpbmQpe2Nhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkZ1bmN0aW9uRXhwcmVzc2lvbjpjYXNlIHZyLmRlZmF1bHQuU3ludGF4S2luZC5BcnJvd0Z1bmN0aW9uOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkNvbnN0cnVjdG9yOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLk1vZHVsZURlY2xhcmF0aW9uOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkNsYXNzRGVjbGFyYXRpb246Y2FzZSB2ci5kZWZhdWx0LlN5bnRheEtpbmQuQ2xhc3NFeHByZXNzaW9uOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkVudW1EZWNsYXJhdGlvbjpjYXNlIHZyLmRlZmF1bHQuU3ludGF4S2luZC5NZXRob2REZWNsYXJhdGlvbjpjYXNlIHZyLmRlZmF1bHQuU3ludGF4S2luZC5GdW5jdGlvbkRlY2xhcmF0aW9uOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkdldEFjY2Vzc29yOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLlNldEFjY2Vzc29yOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLk1ldGhvZFNpZ25hdHVyZTpjYXNlIHZyLmRlZmF1bHQuU3ludGF4S2luZC5DYWxsU2lnbmF0dXJlOmNhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLkNvbnN0cnVjdFNpZ25hdHVyZTpjYXNlIHZyLmRlZmF1bHQuU3ludGF4S2luZC5Db25zdHJ1Y3RvclR5cGU6Y2FzZSB2ci5kZWZhdWx0LlN5bnRheEtpbmQuRnVuY3Rpb25UeXBlOnJldHVybiEwO2Nhc2UgdnIuZGVmYXVsdC5TeW50YXhLaW5kLlNvdXJjZUZpbGU6cmV0dXJuIHZyLmRlZmF1bHQuaXNFeHRlcm5hbE1vZHVsZShlKTtkZWZhdWx0OnJldHVybiExfX12YXIgcHU9UHIoRHQoKSwxKTtmdW5jdGlvbiB5eihlKXtyZXR1cm4gZT49cHUuZGVmYXVsdC5TeW50YXhLaW5kLkZpcnN0QXNzaWdubWVudCYmZTw9cHUuZGVmYXVsdC5TeW50YXhLaW5kLkxhc3RBc3NpZ25tZW50fWZ1bmN0aW9uIFZ3KGUpe3JldHVybiBTdHJpbmcoK2UpPT09ZX1mdW5jdGlvbiBjdyhlKXtyZXR1cm4gZT49NjU1MzY/MjoxfWZ1bmN0aW9uIGd6KGUsdD1wdS5kZWZhdWx0LlNjcmlwdFRhcmdldC5MYXRlc3Qpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4hMTtsZXQgcj1lLmNvZGVQb2ludEF0KDApO2lmKCFwdS5kZWZhdWx0LmlzSWRlbnRpZmllclN0YXJ0KHIsdCkpcmV0dXJuITE7Zm9yKGxldCBhPWN3KHIpO2E8ZS5sZW5ndGg7YSs9Y3cocikpaWYocj1lLmNvZGVQb2ludEF0KGEpLCFwdS5kZWZhdWx0LmlzSWRlbnRpZmllclBhcnQocix0KSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgYno9UHIoRHQoKSwxKSxQdD1QcihEdCgpLDEpO2Z1bmN0aW9uIHZ6KGUpe3JldHVybiB0dChlLFB0LmRlZmF1bHQuVHlwZUZsYWdzLkFueSl9ZnVuY3Rpb24gVHooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuQm9vbGVhbil9ZnVuY3Rpb24gU3ooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuQmlnSW50KX1mdW5jdGlvbiB4eihlKXtyZXR1cm4gZmIoZSkmJmUuaW50cmluc2ljTmFtZT09PVwiZXJyb3JcIn1mdW5jdGlvbiB3eihlKXtyZXR1cm4gdHQoZSxQdC5kZWZhdWx0LlR5cGVGbGFncy5FU1N5bWJvbCl9dmFyIEN6PVB0LmRlZmF1bHQuVHlwZUZsYWdzLkludHJpbnNpYz8/UHQuZGVmYXVsdC5UeXBlRmxhZ3MuQW55fFB0LmRlZmF1bHQuVHlwZUZsYWdzLlVua25vd258UHQuZGVmYXVsdC5UeXBlRmxhZ3MuU3RyaW5nfFB0LmRlZmF1bHQuVHlwZUZsYWdzLk51bWJlcnxQdC5kZWZhdWx0LlR5cGVGbGFncy5CaWdJbnR8UHQuZGVmYXVsdC5UeXBlRmxhZ3MuQm9vbGVhbnxQdC5kZWZhdWx0LlR5cGVGbGFncy5Cb29sZWFuTGl0ZXJhbHxQdC5kZWZhdWx0LlR5cGVGbGFncy5FU1N5bWJvbHxQdC5kZWZhdWx0LlR5cGVGbGFncy5Wb2lkfFB0LmRlZmF1bHQuVHlwZUZsYWdzLlVuZGVmaW5lZHxQdC5kZWZhdWx0LlR5cGVGbGFncy5OdWxsfFB0LmRlZmF1bHQuVHlwZUZsYWdzLk5ldmVyfFB0LmRlZmF1bHQuVHlwZUZsYWdzLk5vblByaW1pdGl2ZTtmdW5jdGlvbiBmYihlKXtyZXR1cm4gdHQoZSxDeil9ZnVuY3Rpb24gRXooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuTmV2ZXIpfWZ1bmN0aW9uIEF6KGUpe3JldHVybiB0dChlLFB0LmRlZmF1bHQuVHlwZUZsYWdzLk5vblByaW1pdGl2ZSl9ZnVuY3Rpb24ga3ooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuTnVsbCl9ZnVuY3Rpb24gRHooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuTnVtYmVyKX1mdW5jdGlvbiBQeihlKXtyZXR1cm4gdHQoZSxQdC5kZWZhdWx0LlR5cGVGbGFncy5TdHJpbmcpfWZ1bmN0aW9uIEl6KGUpe3JldHVybiB0dChlLFB0LmRlZmF1bHQuVHlwZUZsYWdzLlVuZGVmaW5lZCl9ZnVuY3Rpb24gTnooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuVW5rbm93bil9ZnVuY3Rpb24gT3ooZSl7cmV0dXJuIHR0KGUsUHQuZGVmYXVsdC5UeXBlRmxhZ3MuVm9pZCl9dmFyIGRiPVByKER0KCksMSksZW49UHIoRHQoKSwxKTtmdW5jdGlvbiBNeihlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5Db25kaXRpb25hbCl9ZnVuY3Rpb24gTHooZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuRW51bSl9ZnVuY3Rpb24gSHcoZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuRnJlc2hhYmxlKX1mdW5jdGlvbiBKeihlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5JbmRleCl9ZnVuY3Rpb24gUnooZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuSW5kZXhlZEFjY2Vzcyl9ZnVuY3Rpb24ganooZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuSW5zdGFudGlhYmxlKX1mdW5jdGlvbiBIbShlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5JbnRlcnNlY3Rpb24pfWZ1bmN0aW9uIHl1KGUpe3JldHVybiB0dChlLGVuLmRlZmF1bHQuVHlwZUZsYWdzLk9iamVjdCl9ZnVuY3Rpb24gRnooZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuU3RyaW5nTWFwcGluZyl9ZnVuY3Rpb24gQnooZSl7cmV0dXJuIHR0KGUsZW4uZGVmYXVsdC5UeXBlRmxhZ3MuU3Vic3RpdHV0aW9uKX1mdW5jdGlvbiBVeihlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5UeXBlUGFyYW1ldGVyKX1mdW5jdGlvbiBxeihlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5UeXBlVmFyaWFibGUpfWZ1bmN0aW9uIG1iKGUpe3JldHVybiB0dChlLGVuLmRlZmF1bHQuVHlwZUZsYWdzLlVuaW9uKX1mdW5jdGlvbiB6eihlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5Vbmlvbk9ySW50ZXJzZWN0aW9uKX1mdW5jdGlvbiBHdyhlKXtyZXR1cm4gdHQoZSxlbi5kZWZhdWx0LlR5cGVGbGFncy5VbmlxdWVFU1N5bWJvbCl9ZnVuY3Rpb24gV3ooZSl7cmV0dXJuIHl1KGUpJiZtdShlLGRiLmRlZmF1bHQuT2JqZWN0RmxhZ3MuRXZvbHZpbmdBcnJheSl9ZnVuY3Rpb24gWHcoZSl7cmV0dXJuIHl1KGUpJiZtdShlLGRiLmRlZmF1bHQuT2JqZWN0RmxhZ3MuVHVwbGUpfWZ1bmN0aW9uICR3KGUpe3JldHVybiB5dShlKSYmbXUoZSxkYi5kZWZhdWx0Lk9iamVjdEZsYWdzLlJlZmVyZW5jZSl9ZnVuY3Rpb24gVnooZSl7cmV0dXJuIGZiKGUpJiZIdyhlKX1mdW5jdGlvbiBRdyhlKXtyZXR1cm4gJHcoZSkmJlh3KGUudGFyZ2V0KX12YXIgdXM9UHIoRHQoKSwxKTtmdW5jdGlvbiBoYihlKXtyZXR1cm4gdHQoZSx1cy5kZWZhdWx0LlR5cGVGbGFncy5Cb29sZWFuTGl0ZXJhbCl9ZnVuY3Rpb24gSHooZSl7cmV0dXJuIHR0KGUsdXMuZGVmYXVsdC5UeXBlRmxhZ3MuQmlnSW50TGl0ZXJhbCl9ZnVuY3Rpb24geWIoZSl7cmV0dXJuIGhiKGUpJiZlLmludHJpbnNpY05hbWU9PT1cImZhbHNlXCJ9ZnVuY3Rpb24gR3ooZSl7cmV0dXJuIHR0KGUsdXMuZGVmYXVsdC5UeXBlRmxhZ3MuTGl0ZXJhbCl9ZnVuY3Rpb24gWHooZSl7cmV0dXJuIHR0KGUsdXMuZGVmYXVsdC5UeXBlRmxhZ3MuTnVtYmVyTGl0ZXJhbCl9ZnVuY3Rpb24gJHooZSl7cmV0dXJuIHR0KGUsdXMuZGVmYXVsdC5UeXBlRmxhZ3MuU3RyaW5nTGl0ZXJhbCl9ZnVuY3Rpb24gUXooZSl7cmV0dXJuIHR0KGUsdXMuZGVmYXVsdC5UeXBlRmxhZ3MuVGVtcGxhdGVMaXRlcmFsKX1mdW5jdGlvbiBZeihlKXtyZXR1cm4gaGIoZSkmJmUuaW50cmluc2ljTmFtZT09PVwidHJ1ZVwifWZ1bmN0aW9uIEt6KGUpe3JldHVybiB0dChlLHVzLmRlZmF1bHQuVHlwZUZsYWdzLkxpdGVyYWwpfWZ1bmN0aW9uIHRiKGUpe2lmKG1iKGUpKXtsZXQgdD1bXTtmb3IobGV0IHIgb2YgZS50eXBlcyl0LnB1c2goLi4udGIocikpO3JldHVybiB0fWlmKEhtKGUpKXtsZXQgdDtmb3IobGV0IHIgb2YgZS50eXBlcyl7bGV0IGE9dGIocik7aWYoYS5sZW5ndGghPT0wKXtpZih0IT09dm9pZCAwKXJldHVybltdO3Q9YX19cmV0dXJuIHQ9PT12b2lkIDA/W106dH1yZXR1cm4gZS5nZXRDYWxsU2lnbmF0dXJlcygpfWZ1bmN0aW9uIGdiKGUsdCl7cmV0dXJuIHQuc3RhcnRzV2l0aChcIl9fXCIpP2UuZ2V0UHJvcGVydGllcygpLmZpbmQocj0+ci5lc2NhcGVkTmFtZT09PXQpOmUuZ2V0UHJvcGVydHkodCl9ZnVuY3Rpb24gWnooZSx0LHIpe2xldCBhPVwiX19AXCIrdDtmb3IobGV0IF8gb2YgZS5nZXRQcm9wZXJ0aWVzKCkpe2lmKCFfLm5hbWUuc3RhcnRzV2l0aChhKSljb250aW51ZTtsZXQgcD1fLnZhbHVlRGVjbGFyYXRpb24/P18uZ2V0RGVjbGFyYXRpb25zKClbMF07aWYoIUZ3KHApfHxwLm5hbWU9PT12b2lkIDB8fCFiei5kZWZhdWx0LmlzQ29tcHV0ZWRQcm9wZXJ0eU5hbWUocC5uYW1lKSljb250aW51ZTtsZXQgZD1yLmdldEFwcGFyZW50VHlwZShyLmdldFR5cGVBdExvY2F0aW9uKHAubmFtZS5leHByZXNzaW9uKSkuc3ltYm9sO2lmKF8uZXNjYXBlZE5hbWU9PT1lVyhyLGQsdCkpcmV0dXJuIF99fWZ1bmN0aW9uIGVXKGUsdCxyKXtsZXQgYT10JiZlLmdldFR5cGVPZlN5bWJvbEF0TG9jYXRpb24odCx0LnZhbHVlRGVjbGFyYXRpb24pLmdldFByb3BlcnR5KHIpLF89YSYmZS5nZXRUeXBlT2ZTeW1ib2xBdExvY2F0aW9uKGEsYS52YWx1ZURlY2xhcmF0aW9uKTtyZXR1cm4gXyYmR3coXyk/Xy5lc2NhcGVkTmFtZTpcIl9fQFwiK3J9dmFyIHVyPVByKER0KCksMSksZ249UHIoRHQoKSwxKTtmdW5jdGlvbiB0VyhlKXtyZXR1cm4gZS5hcmd1bWVudHMubGVuZ3RoPT09MyYmaHUoZS5hcmd1bWVudHNbMF0pJiZVdyhlLmFyZ3VtZW50c1sxXSkmJmduLmRlZmF1bHQuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZS5leHByZXNzaW9uKSYmZS5leHByZXNzaW9uLm5hbWUuZXNjYXBlZFRleHQ9PT1cImRlZmluZVByb3BlcnR5XCImJmduLmRlZmF1bHQuaXNJZGVudGlmaWVyKGUuZXhwcmVzc2lvbi5leHByZXNzaW9uKSYmZS5leHByZXNzaW9uLmV4cHJlc3Npb24uZXNjYXBlZFRleHQ9PT1cIk9iamVjdFwifWZ1bmN0aW9uIHJXKGUpe2xldCB0PWU7Zm9yKDs7KXtsZXQgcj10LnBhcmVudDtlOnN3aXRjaChyLmtpbmQpe2Nhc2UgZ24uZGVmYXVsdC5TeW50YXhLaW5kLlR5cGVBc3NlcnRpb25FeHByZXNzaW9uOmNhc2UgZ24uZGVmYXVsdC5TeW50YXhLaW5kLkFzRXhwcmVzc2lvbjpyZXR1cm4gSncocik7Y2FzZSBnbi5kZWZhdWx0LlN5bnRheEtpbmQuUHJlZml4VW5hcnlFeHByZXNzaW9uOmlmKHQua2luZCE9PWduLmRlZmF1bHQuU3ludGF4S2luZC5OdW1lcmljTGl0ZXJhbClyZXR1cm4hMTtzd2l0Y2goci5vcGVyYXRvcil7Y2FzZSBnbi5kZWZhdWx0LlN5bnRheEtpbmQuUGx1c1Rva2VuOmNhc2UgZ24uZGVmYXVsdC5TeW50YXhLaW5kLk1pbnVzVG9rZW46dD1yO2JyZWFrIGU7ZGVmYXVsdDpyZXR1cm4hMX1jYXNlIGduLmRlZmF1bHQuU3ludGF4S2luZC5Qcm9wZXJ0eUFzc2lnbm1lbnQ6aWYoci5pbml0aWFsaXplciE9PXQpcmV0dXJuITE7dD1yLnBhcmVudDticmVhaztjYXNlIGduLmRlZmF1bHQuU3ludGF4S2luZC5TaG9ydGhhbmRQcm9wZXJ0eUFzc2lnbm1lbnQ6dD1yLnBhcmVudDticmVhaztjYXNlIGduLmRlZmF1bHQuU3ludGF4S2luZC5QYXJlbnRoZXNpemVkRXhwcmVzc2lvbjpjYXNlIGduLmRlZmF1bHQuU3ludGF4S2luZC5BcnJheUxpdGVyYWxFeHByZXNzaW9uOmNhc2UgZ24uZGVmYXVsdC5TeW50YXhLaW5kLk9iamVjdExpdGVyYWxFeHByZXNzaW9uOmNhc2UgZ24uZGVmYXVsdC5TeW50YXhLaW5kLlRlbXBsYXRlRXhwcmVzc2lvbjp0PXI7YnJlYWs7ZGVmYXVsdDpyZXR1cm4hMX19fWZ1bmN0aW9uIG5XKGUpe3JldHVybiB0dChlLHVyLmRlZmF1bHQuVHlwZUZsYWdzLlVuZGVmaW5lZHx1ci5kZWZhdWx0LlR5cGVGbGFncy5OdWxsfHVyLmRlZmF1bHQuVHlwZUZsYWdzLlZvaWQpPyEwOmUuaXNMaXRlcmFsKCk/IWUudmFsdWU6eWIoZSl9ZnVuY3Rpb24gaVcoZSl7cmV0dXJuIEhtKGUpP2UudHlwZXM6W2VdfWZ1bmN0aW9uIGFXKGUsdCxyKXtyZXR1cm4oSG0oZSk/ZS50eXBlczpbZV0pLnNvbWUoXz0+e2xldCBwPWdiKF8sdCk7aWYocD09PXZvaWQgMClyZXR1cm4hMTtpZihwLmZsYWdzJnVyLmRlZmF1bHQuU3ltYm9sRmxhZ3MuVHJhbnNpZW50KXtpZigvXig/OlsxLTldXFxkKnwwKSQvLnRlc3QodCkmJlF3KF8pKXJldHVybiBfLnRhcmdldC5yZWFkb25seTtzd2l0Y2gob1coXyx0LHIpKXtjYXNlITA6cmV0dXJuITA7Y2FzZSExOnJldHVybiExO2RlZmF1bHQ6fX1yZXR1cm4hIShtdyhwLHVyLmRlZmF1bHQuU3ltYm9sRmxhZ3MuVmFsdWVNb2R1bGUpfHxLdyhwLHIpKX0pfWZ1bmN0aW9uIG9XKGUsdCxyKXtpZigheXUoZSl8fCFtdShlLHVyLmRlZmF1bHQuT2JqZWN0RmxhZ3MuTWFwcGVkKSlyZXR1cm47bGV0IGE9ZS5zeW1ib2wuZGVjbGFyYXRpb25zWzBdO2lmKGEucmVhZG9ubHlUb2tlbiE9PXZvaWQgMCYmIS9eX19AW15AXSskLy50ZXN0KHQpKXJldHVybiBhLnJlYWRvbmx5VG9rZW4ua2luZCE9PXVyLmRlZmF1bHQuU3ludGF4S2luZC5NaW51c1Rva2VuO2xldHttb2RpZmllcnNUeXBlOl99PWU7cmV0dXJuIF8mJll3KF8sdCxyKX1mdW5jdGlvbiBzVyhlLHQscil7bGV0IGE9ZS5nZXRBcHBhcmVudFR5cGUoZS5nZXRUeXBlT2ZTeW1ib2xBdExvY2F0aW9uKHQscikpO2lmKHQudmFsdWVEZWNsYXJhdGlvbi5kb3REb3REb3RUb2tlbiYmKGE9YS5nZXROdW1iZXJJbmRleFR5cGUoKSxhPT09dm9pZCAwKSlyZXR1cm4hMTtmb3IobGV0IF8gb2YgZHUoYSkpaWYoXy5nZXRDYWxsU2lnbmF0dXJlcygpLmxlbmd0aCE9PTApcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWXcoZSx0LHIpe2xldCBhPSExLF89ITE7Zm9yKGxldCBwIG9mIGR1KGUpKWlmKGdiKHAsdCk9PT12b2lkIDApe2xldCBkPShWdyh0KT9yLmdldEluZGV4SW5mb09mVHlwZShwLHVyLmRlZmF1bHQuSW5kZXhLaW5kLk51bWJlcik6dm9pZCAwKT8/ci5nZXRJbmRleEluZm9PZlR5cGUocCx1ci5kZWZhdWx0LkluZGV4S2luZC5TdHJpbmcpO2lmKGQhPW51bGwmJmQuaXNSZWFkb25seSl7aWYoYSlyZXR1cm4hMDtfPSEwfX1lbHNle2lmKF98fGFXKHAsdCxyKSlyZXR1cm4hMDthPSEwfXJldHVybiExfWZ1bmN0aW9uIF9XKGUsdCl7aWYoIXRXKGUpKXJldHVybiExO2xldCByPXQuZ2V0VHlwZUF0TG9jYXRpb24oZS5hcmd1bWVudHNbMl0pO2lmKHIuZ2V0UHJvcGVydHkoXCJ2YWx1ZVwiKT09PXZvaWQgMClyZXR1cm4gci5nZXRQcm9wZXJ0eShcInNldFwiKT09PXZvaWQgMDtsZXQgYT1yLmdldFByb3BlcnR5KFwid3JpdGFibGVcIik7aWYoYT09PXZvaWQgMClyZXR1cm4hMTtsZXQgXz1hLnZhbHVlRGVjbGFyYXRpb24hPT12b2lkIDAmJnVyLmRlZmF1bHQuaXNQcm9wZXJ0eUFzc2lnbm1lbnQoYS52YWx1ZURlY2xhcmF0aW9uKT90LmdldFR5cGVBdExvY2F0aW9uKGEudmFsdWVEZWNsYXJhdGlvbi5pbml0aWFsaXplcik6dC5nZXRUeXBlT2ZTeW1ib2xBdExvY2F0aW9uKGEsZS5hcmd1bWVudHNbMl0pO3JldHVybiB5YihfKX1mdW5jdGlvbiBjVyhlLHQscj1lLmdldFR5cGVBdExvY2F0aW9uKHQpKXtmb3IobGV0IGEgb2YgZHUoZS5nZXRBcHBhcmVudFR5cGUocikpKXtsZXQgXz1hLmdldFByb3BlcnR5KFwidGhlblwiKTtpZihfPT09dm9pZCAwKWNvbnRpbnVlO2xldCBwPWUuZ2V0VHlwZU9mU3ltYm9sQXRMb2NhdGlvbihfLHQpO2ZvcihsZXQgZCBvZiBkdShwKSlmb3IobGV0IGggb2YgZC5nZXRDYWxsU2lnbmF0dXJlcygpKWlmKGgucGFyYW1ldGVycy5sZW5ndGghPT0wJiZzVyhlLGgucGFyYW1ldGVyc1swXSx0KSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBLdyhlLHQpe3ZhciByO3JldHVybiEhKChlLmZsYWdzJnVyLmRlZmF1bHQuU3ltYm9sRmxhZ3MuQWNjZXNzb3IpPT09dXIuZGVmYXVsdC5TeW1ib2xGbGFncy5HZXRBY2Nlc3Nvcnx8KHI9ZS5kZWNsYXJhdGlvbnMpIT1udWxsJiZyLnNvbWUoYT0+ZncoYSx1ci5kZWZhdWx0Lk1vZGlmaWVyRmxhZ3MuUmVhZG9ubHkpfHx1ci5kZWZhdWx0LmlzVmFyaWFibGVEZWNsYXJhdGlvbihhKSYmZHcoYS5wYXJlbnQsdXIuZGVmYXVsdC5Ob2RlRmxhZ3MuQ29uc3QpfHx1ci5kZWZhdWx0LmlzQ2FsbEV4cHJlc3Npb24oYSkmJl9XKGEsdCl8fHVyLmRlZmF1bHQuaXNFbnVtTWVtYmVyKGEpfHwodXIuZGVmYXVsdC5pc1Byb3BlcnR5QXNzaWdubWVudChhKXx8dXIuZGVmYXVsdC5pc1Nob3J0aGFuZFByb3BlcnR5QXNzaWdubWVudChhKSkmJnJXKGEucGFyZW50KSkpfWZ1bmN0aW9uIGR1KGUpe3JldHVybiBtYihlKT9lLnR5cGVzOltlXX19KTt2YXIgaTk9dXQoZWE9PntcInVzZSBzdHJpY3RcIjt2YXIgbFc9ZWEmJmVhLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksdVc9ZWEmJmVhLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxuOT1lYSYmZWEuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZsVyh0LGUscik7cmV0dXJuIHVXKHQsZSksdH07T2JqZWN0LmRlZmluZVByb3BlcnR5KGVhLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO2VhLmNvbnZlcnRDb21tZW50cz12b2lkIDA7dmFyIHBXPW45KGU5KCkpLHQ5PW45KER0KCkpLGZXPXptKCkscjk9Qm0oKTtmdW5jdGlvbiBkVyhlLHQpe2xldCByPVtdO3JldHVybiBwVy5mb3JFYWNoQ29tbWVudChlLChhLF8pPT57bGV0IHA9Xy5raW5kPT09dDkuU3ludGF4S2luZC5TaW5nbGVMaW5lQ29tbWVudFRyaXZpYT9yOS5BU1RfVE9LRU5fVFlQRVMuTGluZTpyOS5BU1RfVE9LRU5fVFlQRVMuQmxvY2ssZD1bXy5wb3MsXy5lbmRdLGg9KDAsZlcuZ2V0TG9jRm9yKShkLGUpLGw9ZFswXSsyLHY9Xy5raW5kPT09dDkuU3ludGF4S2luZC5TaW5nbGVMaW5lQ29tbWVudFRyaXZpYT9kWzFdLWw6ZFsxXS1sLTI7ci5wdXNoKHt0eXBlOnAsdmFsdWU6dC5zbGljZShsLGwrdikscmFuZ2U6ZCxsb2M6aH0pfSxlKSxyfWVhLmNvbnZlcnRDb21tZW50cz1kV30pO3ZhciBvOT11dChHbT0+e1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShHbSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtHbS5hc3RDb252ZXJ0ZXI9dm9pZCAwO3ZhciBhOT1aNigpLG1XPWk5KCksaFc9em0oKSx5Vz17fTtmdW5jdGlvbiBnVyhlLHQscil7bGV0e3BhcnNlRGlhZ25vc3RpY3M6YX09ZTtpZihhLmxlbmd0aCl0aHJvdygwLGE5LmNvbnZlcnRFcnJvcikoYVswXSk7bGV0IF89bmV3IGE5LkNvbnZlcnRlcihlLHthbGxvd0ludmFsaWRBU1Q6dC5hbGxvd0ludmFsaWRBU1QsZXJyb3JPblVua25vd25BU1RUeXBlOnQuZXJyb3JPblVua25vd25BU1RUeXBlLHNob3VsZFByZXNlcnZlTm9kZU1hcHM6cixzdXBwcmVzc0RlcHJlY2F0ZWRQcm9wZXJ0eVdhcm5pbmdzOnQuc3VwcHJlc3NEZXByZWNhdGVkUHJvcGVydHlXYXJuaW5nc30pLHA9Xy5jb252ZXJ0UHJvZ3JhbSgpOyghdC5yYW5nZXx8IXQubG9jKSYmKDAseVcuc2ltcGxlVHJhdmVyc2UpKHAse2VudGVyOmg9Pnt0LnJhbmdlfHxkZWxldGUgaC5yYW5nZSx0LmxvY3x8ZGVsZXRlIGgubG9jfX0pLHQudG9rZW5zJiYocC50b2tlbnM9KDAsaFcuY29udmVydFRva2VucykoZSkpLHQuY29tbWVudCYmKHAuY29tbWVudHM9KDAsbVcuY29udmVydENvbW1lbnRzKShlLHQuY29kZUZ1bGxUZXh0KSk7bGV0IGQ9Xy5nZXRBU1RNYXBzKCk7cmV0dXJue2VzdHJlZTpwLGFzdE1hcHM6ZH19R20uYXN0Q29udmVydGVyPWdXfSk7dmFyIGJiPXV0KHNpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGJXPXNpJiZzaS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLGEpe2E9PT12b2lkIDAmJihhPXIpO3ZhciBfPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxyKTsoIV98fChcImdldFwiaW4gXz8hdC5fX2VzTW9kdWxlOl8ud3JpdGFibGV8fF8uY29uZmlndXJhYmxlKSkmJihfPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGEsXyl9OmZ1bmN0aW9uKGUsdCxyLGEpe2E9PT12b2lkIDAmJihhPXIpLGVbYV09dFtyXX0pLHZXPXNpJiZzaS5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksVFc9c2kmJnNpLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKGUhPW51bGwpZm9yKHZhciByIGluIGUpciE9PVwiZGVmYXVsdFwiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmYlcodCxlLHIpO3JldHVybiB2Vyh0LGUpLHR9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShzaSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtzaS5nZXRDb2RlVGV4dD1zaS5pc1NvdXJjZUZpbGU9dm9pZCAwO3ZhciBTVz1UVyhEdCgpKTtmdW5jdGlvbiBzOShlKXtpZih0eXBlb2YgZSE9XCJvYmplY3RcInx8ZT09bnVsbClyZXR1cm4hMTtsZXQgdD1lO3JldHVybiB0LmtpbmQ9PT1TVy5TeW50YXhLaW5kLlNvdXJjZUZpbGUmJnR5cGVvZiB0LmdldEZ1bGxUZXh0PT1cImZ1bmN0aW9uXCJ9c2kuaXNTb3VyY2VGaWxlPXM5O2Z1bmN0aW9uIHhXKGUpe3JldHVybiBzOShlKT9lLmdldEZ1bGxUZXh0KGUpOmV9c2kuZ2V0Q29kZVRleHQ9eFd9KTt2YXIgXzk9dXQoYm49PntcInVzZSBzdHJpY3RcIjt2YXIgd1c9Ym4mJmJuLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksQ1c9Ym4mJmJuLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxFVz1ibiYmYm4uX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ3Vyh0LGUscik7cmV0dXJuIENXKHQsZSksdH0sQVc9Ym4mJmJuLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYm4sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7Ym4uZ2V0TGFuZ3VhZ2VWYXJpYW50PWJuLmdldFNjcmlwdEtpbmQ9dm9pZCAwO3ZhciBrVz1BVyh7ZXh0bmFtZTplPT5cIi5cIitlLnNwbGl0KFwiLlwiKS5wb3AoKX0pLEh0PUVXKER0KCkpO2Z1bmN0aW9uIERXKGUsdCl7c3dpdGNoKGtXLmRlZmF1bHQuZXh0bmFtZShlKS50b0xvd2VyQ2FzZSgpKXtjYXNlIEh0LkV4dGVuc2lvbi5KczpjYXNlIEh0LkV4dGVuc2lvbi5DanM6Y2FzZSBIdC5FeHRlbnNpb24uTWpzOnJldHVybiBIdC5TY3JpcHRLaW5kLkpTO2Nhc2UgSHQuRXh0ZW5zaW9uLkpzeDpyZXR1cm4gSHQuU2NyaXB0S2luZC5KU1g7Y2FzZSBIdC5FeHRlbnNpb24uVHM6Y2FzZSBIdC5FeHRlbnNpb24uQ3RzOmNhc2UgSHQuRXh0ZW5zaW9uLk10czpyZXR1cm4gSHQuU2NyaXB0S2luZC5UUztjYXNlIEh0LkV4dGVuc2lvbi5Uc3g6cmV0dXJuIEh0LlNjcmlwdEtpbmQuVFNYO2Nhc2UgSHQuRXh0ZW5zaW9uLkpzb246cmV0dXJuIEh0LlNjcmlwdEtpbmQuSlNPTjtkZWZhdWx0OnJldHVybiB0P0h0LlNjcmlwdEtpbmQuVFNYOkh0LlNjcmlwdEtpbmQuVFN9fWJuLmdldFNjcmlwdEtpbmQ9RFc7ZnVuY3Rpb24gUFcoZSl7c3dpdGNoKGUpe2Nhc2UgSHQuU2NyaXB0S2luZC5UU1g6Y2FzZSBIdC5TY3JpcHRLaW5kLkpTWDpjYXNlIEh0LlNjcmlwdEtpbmQuSlM6Y2FzZSBIdC5TY3JpcHRLaW5kLkpTT046cmV0dXJuIEh0Lkxhbmd1YWdlVmFyaWFudC5KU1g7ZGVmYXVsdDpyZXR1cm4gSHQuTGFuZ3VhZ2VWYXJpYW50LlN0YW5kYXJkfX1ibi5nZXRMYW5ndWFnZVZhcmlhbnQ9UFd9KTt2YXIgdTk9dXQodm49PntcInVzZSBzdHJpY3RcIjt2YXIgSVc9dm4mJnZuLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9cik7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpOyghX3x8KFwiZ2V0XCJpbiBfPyF0Ll9fZXNNb2R1bGU6Xy53cml0YWJsZXx8Xy5jb25maWd1cmFibGUpKSYmKF89e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYSxfKX06ZnVuY3Rpb24oZSx0LHIsYSl7YT09PXZvaWQgMCYmKGE9ciksZVthXT10W3JdfSksTlc9dm4mJnZuLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSl9OmZ1bmN0aW9uKGUsdCl7ZS5kZWZhdWx0PXR9KSxPVz12biYmdm4uX19pbXBvcnRTdGFyfHxmdW5jdGlvbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYoZSE9bnVsbClmb3IodmFyIHIgaW4gZSlyIT09XCJkZWZhdWx0XCImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZJVyh0LGUscik7cmV0dXJuIE5XKHQsZSksdH0sTVc9dm4mJnZuLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodm4sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dm4uY3JlYXRlTm9Qcm9ncmFtPXZuLmNyZWF0ZVNvdXJjZUZpbGU9dm9pZCAwO3ZhciBMVz1NVygoQ2YoKSxIaCh3ZikpKSxjOT1PVyhEdCgpKSxKVz1iYigpLFJXPV85KCksalc9KDAsTFcuZGVmYXVsdCkoXCJ0eXBlc2NyaXB0LWVzbGludDp0eXBlc2NyaXB0LWVzdHJlZTpjcmVhdGVTb3VyY2VGaWxlXCIpO2Z1bmN0aW9uIGw5KGUpe3JldHVybiBqVyhcIkdldHRpbmcgQVNUIHdpdGhvdXQgdHlwZSBpbmZvcm1hdGlvbiBpbiAlcyBtb2RlIGZvcjogJXNcIixlLmpzeD9cIlRTWFwiOlwiVFNcIixlLmZpbGVQYXRoKSwoMCxKVy5pc1NvdXJjZUZpbGUpKGUuY29kZSk/ZS5jb2RlOmM5LmNyZWF0ZVNvdXJjZUZpbGUoZS5maWxlUGF0aCxlLmNvZGVGdWxsVGV4dCxjOS5TY3JpcHRUYXJnZXQuTGF0ZXN0LCEwLCgwLFJXLmdldFNjcmlwdEtpbmQpKGUuZmlsZVBhdGgsZS5qc3gpKX12bi5jcmVhdGVTb3VyY2VGaWxlPWw5O2Z1bmN0aW9uIEZXKGUpe3JldHVybnthc3Q6bDkoZSkscHJvZ3JhbTpudWxsfX12bi5jcmVhdGVOb1Byb2dyYW09Rld9KTt2YXIgcDk9dXQoKCk9Pnt9KTt2YXIgZjk9dXQoWG09PntcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkoWG0sXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7WG0uY3JlYXRlUGFyc2VyU2VydmljZXM9dm9pZCAwO2Z1bmN0aW9uIEJXKGUsdCl7aWYoIXQpcmV0dXJue3Byb2dyYW06dCwuLi5lfTtsZXQgcj10LmdldFR5cGVDaGVja2VyKCk7cmV0dXJue3Byb2dyYW06dCwuLi5lLGdldFN5bWJvbEF0TG9jYXRpb246YT0+ci5nZXRTeW1ib2xBdExvY2F0aW9uKGUuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChhKSksZ2V0VHlwZUF0TG9jYXRpb246YT0+ci5nZXRUeXBlQXRMb2NhdGlvbihlLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoYSkpfX1YbS5jcmVhdGVQYXJzZXJTZXJ2aWNlcz1CV30pO3ZhciBkOT11dCgoKT0+e30pO3ZhciBoOT11dChtOT0+e205LkV4cGlyaW5nQ2FjaGU9Y2xhc3N7fX0pO3ZhciBnOT11dCh5OT0+e3k5LnJlc29sdmVQcm9qZWN0TGlzdD0oKT0+W119KTt2YXIgdjk9dXQoYjk9PntiOS5pbmZlclNpbmdsZVJ1bj0oKT0+ITF9KTt2YXIgUzk9dXQoVDk9PntUOS53YXJuQWJvdXRUU1ZlcnNpb249KCk9Pnt9fSk7dmFyIEM5PXV0KHRhPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFVXPXRhJiZ0YS5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHRhLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3RhLmNsZWFyVFNTZXJ2ZXJQcm9qZWN0U2VydmljZT10YS5jbGVhclRTQ29uZmlnTWF0Y2hDYWNoZT10YS5jcmVhdGVQYXJzZVNldHRpbmdzPXZvaWQgMDt2YXIgdmI9VVcoKENmKCksSGgod2YpKSkscVc9ZDkoKSx6Vz17ZW5zdXJlQWJzb2x1dGVQYXRoOmU9PmV9LFdXPWJiKCkseDk9aDkoKSxVSD1nOSgpLFZXPXY5KCksSFc9UzkoKSxHVz0oMCx2Yi5kZWZhdWx0KShcInR5cGVzY3JpcHQtZXNsaW50OnR5cGVzY3JpcHQtZXN0cmVlOnBhcnNlcjpwYXJzZVNldHRpbmdzOmNyZWF0ZVBhcnNlU2V0dGluZ3NcIiksJG0sdzk9bnVsbDtmdW5jdGlvbiBYVyhlLHQ9e30pe3ZhciBkO2xldCByPVlXKGUpLGE9KDAsVlcuaW5mZXJTaW5nbGVSdW4pKHQpLF89dHlwZW9mIHQudHNjb25maWdSb290RGlyPT1cInN0cmluZ1wiP3QudHNjb25maWdSb290RGlyOlwiL3ByZXR0aWVyLXNlY3VyaXR5LWRpcm5hbWUtcGxhY2Vob2xkZXJcIixwPXthbGxvd0ludmFsaWRBU1Q6dC5hbGxvd0ludmFsaWRBU1Q9PT0hMCxjb2RlOmUsY29kZUZ1bGxUZXh0OnIsY29tbWVudDp0LmNvbW1lbnQ9PT0hMCxjb21tZW50czpbXSxERVBSRUNBVEVEX19jcmVhdGVEZWZhdWx0UHJvZ3JhbTp0LkRFUFJFQ0FURURfX2NyZWF0ZURlZmF1bHRQcm9ncmFtPT09ITAsZGVidWdMZXZlbDp0LmRlYnVnTGV2ZWw9PT0hMD9uZXcgU2V0KFtcInR5cGVzY3JpcHQtZXNsaW50XCJdKTpBcnJheS5pc0FycmF5KHQuZGVidWdMZXZlbCk/bmV3IFNldCh0LmRlYnVnTGV2ZWwpOm5ldyBTZXQsZXJyb3JPblR5cGVTY3JpcHRTeW50YWN0aWNBbmRTZW1hbnRpY0lzc3VlczohMSxlcnJvck9uVW5rbm93bkFTVFR5cGU6dC5lcnJvck9uVW5rbm93bkFTVFR5cGU9PT0hMCxFWFBFUklNRU5UQUxfcHJvamVjdFNlcnZpY2U6dC5FWFBFUklNRU5UQUxfdXNlUHJvamVjdFNlcnZpY2U9PT0hMD93OT8/KHc5PSgwLHFXLmNyZWF0ZVByb2plY3RTZXJ2aWNlKSgpKTp2b2lkIDAsRVhQRVJJTUVOVEFMX3VzZVNvdXJjZU9mUHJvamVjdFJlZmVyZW5jZVJlZGlyZWN0OnQuRVhQRVJJTUVOVEFMX3VzZVNvdXJjZU9mUHJvamVjdFJlZmVyZW5jZVJlZGlyZWN0PT09ITAsZXh0cmFGaWxlRXh0ZW5zaW9uczpBcnJheS5pc0FycmF5KHQuZXh0cmFGaWxlRXh0ZW5zaW9ucykmJnQuZXh0cmFGaWxlRXh0ZW5zaW9ucy5ldmVyeShoPT50eXBlb2YgaD09XCJzdHJpbmdcIik/dC5leHRyYUZpbGVFeHRlbnNpb25zOltdLGZpbGVQYXRoOigwLHpXLmVuc3VyZUFic29sdXRlUGF0aCkodHlwZW9mIHQuZmlsZVBhdGg9PVwic3RyaW5nXCImJnQuZmlsZVBhdGghPT1cIjxpbnB1dD5cIj90LmZpbGVQYXRoOktXKHQuanN4KSxfKSxqc3g6dC5qc3g9PT0hMCxsb2M6dC5sb2M9PT0hMCxsb2c6dHlwZW9mIHQubG9nZ2VyRm49PVwiZnVuY3Rpb25cIj90LmxvZ2dlckZuOnQubG9nZ2VyRm49PT0hMT8oKT0+e306Y29uc29sZS5sb2cscHJlc2VydmVOb2RlTWFwczp0LnByZXNlcnZlTm9kZU1hcHMhPT0hMSxwcm9ncmFtczpBcnJheS5pc0FycmF5KHQucHJvZ3JhbXMpP3QucHJvZ3JhbXM6bnVsbCxwcm9qZWN0czpbXSxyYW5nZTp0LnJhbmdlPT09ITAsc2luZ2xlUnVuOmEsc3VwcHJlc3NEZXByZWNhdGVkUHJvcGVydHlXYXJuaW5nczp0LnN1cHByZXNzRGVwcmVjYXRlZFByb3BlcnR5V2FybmluZ3M/PyEwLHRva2Vuczp0LnRva2Vucz09PSEwP1tdOm51bGwsdHNjb25maWdNYXRjaENhY2hlOiRtPz8oJG09bmV3IHg5LkV4cGlyaW5nQ2FjaGUoYT9cIkluZmluaXR5XCI6KChkPXQuY2FjaGVMaWZldGltZSk9PW51bGw/dm9pZCAwOmQuZ2xvYik/P3g5LkRFRkFVTFRfVFNDT05GSUdfQ0FDSEVfRFVSQVRJT05fU0VDT05EUykpLHRzY29uZmlnUm9vdERpcjpffTtpZihwLmRlYnVnTGV2ZWwuc2l6ZT4wKXtsZXQgaD1bXTtwLmRlYnVnTGV2ZWwuaGFzKFwidHlwZXNjcmlwdC1lc2xpbnRcIikmJmgucHVzaChcInR5cGVzY3JpcHQtZXNsaW50OipcIiksKHAuZGVidWdMZXZlbC5oYXMoXCJlc2xpbnRcIil8fHZiLmRlZmF1bHQuZW5hYmxlZChcImVzbGludDoqLC1lc2xpbnQ6Y29kZS1wYXRoXCIpKSYmaC5wdXNoKFwiZXNsaW50OiosLWVzbGludDpjb2RlLXBhdGhcIiksdmIuZGVmYXVsdC5lbmFibGUoaC5qb2luKFwiLFwiKSl9aWYoQXJyYXkuaXNBcnJheSh0LnByb2dyYW1zKSl7aWYoIXQucHJvZ3JhbXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIllvdSBoYXZlIHNldCBwYXJzZXJPcHRpb25zLnByb2dyYW1zIHRvIGFuIGVtcHR5IGFycmF5LiBUaGlzIHdpbGwgY2F1c2UgYWxsIGZpbGVzIHRvIG5vdCBiZSBmb3VuZCBpbiBleGlzdGluZyBwcm9ncmFtcy4gRWl0aGVyIHByb3ZpZGUgb25lIG9yIG1vcmUgZXhpc3RpbmcgVHlwZVNjcmlwdCBQcm9ncmFtIGluc3RhbmNlcyBpbiB0aGUgYXJyYXksIG9yIHJlbW92ZSB0aGUgcGFyc2VyT3B0aW9ucy5wcm9ncmFtcyBzZXR0aW5nLlwiKTtHVyhcInBhcnNlck9wdGlvbnMucHJvZ3JhbXMgd2FzIHByb3ZpZGVkLCBzbyBwYXJzZXJPcHRpb25zLnByb2plY3Qgd2lsbCBiZSBpZ25vcmVkLlwiKX1yZXR1cm4hcC5wcm9ncmFtcyYmIXAuRVhQRVJJTUVOVEFMX3Byb2plY3RTZXJ2aWNlJiYocC5wcm9qZWN0cz1bXSksKDAsSFcud2FybkFib3V0VFNWZXJzaW9uKShwKSxwfXRhLmNyZWF0ZVBhcnNlU2V0dGluZ3M9WFc7ZnVuY3Rpb24gJFcoKXskbT09bnVsbHx8JG0uY2xlYXIoKX10YS5jbGVhclRTQ29uZmlnTWF0Y2hDYWNoZT0kVztmdW5jdGlvbiBRVygpe3c5PW51bGx9dGEuY2xlYXJUU1NlcnZlclByb2plY3RTZXJ2aWNlPVFXO2Z1bmN0aW9uIFlXKGUpe3JldHVybigwLFdXLmlzU291cmNlRmlsZSkoZSk/ZS5nZXRGdWxsVGV4dChlKTp0eXBlb2YgZT09XCJzdHJpbmdcIj9lOlN0cmluZyhlKX1mdW5jdGlvbiBLVyhlKXtyZXR1cm4gZT9cImVzdHJlZS50c3hcIjpcImVzdHJlZS50c1wifX0pO3ZhciBEOT11dChRbT0+e1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRbSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtRbS5nZXRGaXJzdFNlbWFudGljT3JTeW50YWN0aWNFcnJvcj12b2lkIDA7dmFyIEU5PUR0KCk7ZnVuY3Rpb24gWlcoZSx0KXt0cnl7bGV0IHI9QTkoZS5nZXRTeW50YWN0aWNEaWFnbm9zdGljcyh0KSk7aWYoci5sZW5ndGg+MClyZXR1cm4gazkoclswXSk7bGV0IGE9QTkoZS5nZXRTZW1hbnRpY0RpYWdub3N0aWNzKHQpKTtyZXR1cm4gYS5sZW5ndGg+MD9rOShhWzBdKTp2b2lkIDB9Y2F0Y2gocil7Y29uc29sZS53YXJuKGBXYXJuaW5nIEZyb20gVFNDOiBcIiR7ci5tZXNzYWdlfWApO3JldHVybn19UW0uZ2V0Rmlyc3RTZW1hbnRpY09yU3ludGFjdGljRXJyb3I9Wlc7ZnVuY3Rpb24gQTkoZSl7cmV0dXJuIGUuZmlsdGVyKHQ9Pntzd2l0Y2godC5jb2RlKXtjYXNlIDEwMTM6Y2FzZSAxMDE0OmNhc2UgMTA0NDpjYXNlIDEwNDU6Y2FzZSAxMDQ4OmNhc2UgMTA0OTpjYXNlIDEwNzA6Y2FzZSAxMDcxOmNhc2UgMTA4NTpjYXNlIDEwOTA6Y2FzZSAxMDk2OmNhc2UgMTA5NzpjYXNlIDEwOTg6Y2FzZSAxMDk5OmNhc2UgMTExNzpjYXNlIDExMjE6Y2FzZSAxMTIzOmNhc2UgMTE0MTpjYXNlIDExNjI6Y2FzZSAxMTY0OmNhc2UgMTE3MjpjYXNlIDExNzM6Y2FzZSAxMTc1OmNhc2UgMTE3NjpjYXNlIDExOTA6Y2FzZSAxMTk2OmNhc2UgMTIwMDpjYXNlIDEyMDY6Y2FzZSAxMjExOmNhc2UgMTI0MjpjYXNlIDEyNDY6Y2FzZSAxMjU1OmNhc2UgMTMwODpjYXNlIDIzNjQ6Y2FzZSAyMzY5OmNhc2UgMjQ1MjpjYXNlIDI0NjI6Y2FzZSA4MDE3OmNhc2UgMTcwMTI6Y2FzZSAxNzAxMzpyZXR1cm4hMH1yZXR1cm4hMX0pfWZ1bmN0aW9uIGs5KGUpe3JldHVybnsuLi5lLG1lc3NhZ2U6KDAsRTkuZmxhdHRlbkRpYWdub3N0aWNNZXNzYWdlVGV4dCkoZS5tZXNzYWdlVGV4dCxFOS5zeXMubmV3TGluZSl9fX0pO3ZhciBQOT11dCgoKT0+e30pO3ZhciBKOT11dChfaT0+e1widXNlIHN0cmljdFwiO3ZhciBlVj1faSYmX2kuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShfaSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtfaS5jbGVhclBhcnNlQW5kR2VuZXJhdGVTZXJ2aWNlc0NhbGxzPV9pLmNsZWFyUHJvZ3JhbUNhY2hlPV9pLnBhcnNlQW5kR2VuZXJhdGVTZXJ2aWNlcz1faS5wYXJzZT12b2lkIDA7dmFyIHRWPWVWKChDZigpLEhoKHdmKSkpLEk5PW85KCksclY9WjYoKSxuVj17fSxOOT17fSxpVj17fSxPOT11OSgpLGFWPXA5KCksTTk9e30sb1Y9ZjkoKSxMOT1DOSgpLHNWPUQ5KCksX1Y9UDkoKSxjVj0oMCx0Vi5kZWZhdWx0KShcInR5cGVzY3JpcHQtZXNsaW50OnR5cGVzY3JpcHQtZXN0cmVlOnBhcnNlclwiKSxUYj1uZXcgTWFwO2Z1bmN0aW9uIGxWKCl7VGIuY2xlYXIoKX1faS5jbGVhclByb2dyYW1DYWNoZT1sVjtmdW5jdGlvbiB1VihlLHQpe2lmKGUuRVhQRVJJTUVOVEFMX3Byb2plY3RTZXJ2aWNlKXtsZXQgYT0oMCxfVi51c2VQcm9ncmFtRnJvbVByb2plY3RTZXJ2aWNlKShlLkVYUEVSSU1FTlRBTF9wcm9qZWN0U2VydmljZSxlKTtpZihhKXJldHVybiBhfWlmKGUucHJvZ3JhbXMpe2xldCBhPSgwLE05LnVzZVByb3ZpZGVkUHJvZ3JhbXMpKGUucHJvZ3JhbXMsZSk7aWYoYSlyZXR1cm4gYX1pZighdClyZXR1cm4oMCxPOS5jcmVhdGVOb1Byb2dyYW0pKGUpO2xldCByPSgwLGlWLmNyZWF0ZVByb2plY3RQcm9ncmFtKShlLCgwLGFWLmdldFdhdGNoUHJvZ3JhbXNGb3JQcm9qZWN0cykoZSkpO2lmKHIpcmV0dXJuIHI7aWYoZS5ERVBSRUNBVEVEX19jcmVhdGVEZWZhdWx0UHJvZ3JhbSl7bGV0IGE9KDAsblYuY3JlYXRlRGVmYXVsdFByb2dyYW0pKGUpO2lmKGEpcmV0dXJuIGF9cmV0dXJuKDAsTjkuY3JlYXRlSXNvbGF0ZWRQcm9ncmFtKShlKX1mdW5jdGlvbiBwVihlLHQpe2xldHthc3Q6cn09ZlYoZSx0LCExKTtyZXR1cm4gcn1faS5wYXJzZT1wVjtmdW5jdGlvbiBmVihlLHQscil7bGV0IGE9KDAsTDkuY3JlYXRlUGFyc2VTZXR0aW5ncykoZSx0KTtpZih0IT1udWxsJiZ0LmVycm9yT25UeXBlU2NyaXB0U3ludGFjdGljQW5kU2VtYW50aWNJc3N1ZXMpdGhyb3cgbmV3IEVycm9yKCdcImVycm9yT25UeXBlU2NyaXB0U3ludGFjdGljQW5kU2VtYW50aWNJc3N1ZXNcIiBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgcGFyc2VBbmRHZW5lcmF0ZVNlcnZpY2VzKCknKTtsZXQgXz0oMCxPOS5jcmVhdGVTb3VyY2VGaWxlKShhKSx7ZXN0cmVlOnAsYXN0TWFwczpkfT0oMCxJOS5hc3RDb252ZXJ0ZXIpKF8sYSxyKTtyZXR1cm57YXN0OnAsZXNUcmVlTm9kZVRvVFNOb2RlTWFwOmQuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLHRzTm9kZVRvRVNUcmVlTm9kZU1hcDpkLnRzTm9kZVRvRVNUcmVlTm9kZU1hcH19dmFyIFltPXt9O2Z1bmN0aW9uIGRWKCl7WW09e319X2kuY2xlYXJQYXJzZUFuZEdlbmVyYXRlU2VydmljZXNDYWxscz1kVjtmdW5jdGlvbiBtVihlLHQpe3ZhciB2LHk7bGV0IHI9KDAsTDkuY3JlYXRlUGFyc2VTZXR0aW5ncykoZSx0KTtyLnNpbmdsZVJ1biYmIXIucHJvZ3JhbXMmJigodj1yLnByb2plY3RzKT09bnVsbD92b2lkIDA6di5sZW5ndGgpPjAmJihyLnByb2dyYW1zPXsqW1N5bWJvbC5pdGVyYXRvcl0oKXtmb3IobGV0IEMgb2Ygci5wcm9qZWN0cyl7bGV0IFM9VGIuZ2V0KEMpO2lmKFMpeWllbGQgUztlbHNle2NWKFwiRGV0ZWN0ZWQgc2luZ2xlLXJ1bi9DTEkgdXNhZ2UsIGNyZWF0aW5nIFByb2dyYW0gb25jZSBhaGVhZCBvZiB0aW1lIGZvciBwcm9qZWN0OiAlc1wiLEMpO2xldCBrPSgwLE05LmNyZWF0ZVByb2dyYW1Gcm9tQ29uZmlnRmlsZSkoQyk7VGIuc2V0KEMsaykseWllbGQga319fX0pO2xldCBhPXIucHJvZ3JhbXMhPW51bGx8fCgoeT1yLnByb2plY3RzKT09bnVsbD92b2lkIDA6eS5sZW5ndGgpPjA7aWYodCE9PXZvaWQgMCYmKHR5cGVvZiB0LmVycm9yT25UeXBlU2NyaXB0U3ludGFjdGljQW5kU2VtYW50aWNJc3N1ZXM9PVwiYm9vbGVhblwiJiZ0LmVycm9yT25UeXBlU2NyaXB0U3ludGFjdGljQW5kU2VtYW50aWNJc3N1ZXMmJihyLmVycm9yT25UeXBlU2NyaXB0U3ludGFjdGljQW5kU2VtYW50aWNJc3N1ZXM9ITApLHIuZXJyb3JPblR5cGVTY3JpcHRTeW50YWN0aWNBbmRTZW1hbnRpY0lzc3VlcyYmIWEpKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjYWxjdWxhdGUgVHlwZVNjcmlwdCBzZW1hbnRpYyBpc3N1ZXMgd2l0aG91dCBhIHZhbGlkIHByb2plY3QuXCIpO3Iuc2luZ2xlUnVuJiZ0LmZpbGVQYXRoJiYoWW1bdC5maWxlUGF0aF09KFltW3QuZmlsZVBhdGhdfHwwKSsxKTtsZXR7YXN0Ol8scHJvZ3JhbTpwfT1yLnNpbmdsZVJ1biYmdC5maWxlUGF0aCYmWW1bdC5maWxlUGF0aF0+MT8oMCxOOS5jcmVhdGVJc29sYXRlZFByb2dyYW0pKHIpOnVWKHIsYSksZD10eXBlb2Ygci5wcmVzZXJ2ZU5vZGVNYXBzPT1cImJvb2xlYW5cIj9yLnByZXNlcnZlTm9kZU1hcHM6ITAse2VzdHJlZTpoLGFzdE1hcHM6bH09KDAsSTkuYXN0Q29udmVydGVyKShfLHIsZCk7aWYocCYmci5lcnJvck9uVHlwZVNjcmlwdFN5bnRhY3RpY0FuZFNlbWFudGljSXNzdWVzKXtsZXQgQz0oMCxzVi5nZXRGaXJzdFNlbWFudGljT3JTeW50YWN0aWNFcnJvcikocCxfKTtpZihDKXRocm93KDAsclYuY29udmVydEVycm9yKShDKX1yZXR1cm57YXN0Omgsc2VydmljZXM6KDAsb1YuY3JlYXRlUGFyc2VyU2VydmljZXMpKGwscCl9fV9pLnBhcnNlQW5kR2VuZXJhdGVTZXJ2aWNlcz1tVn0pO3ZhciBWOT11dChwcz0+e1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShwcyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtwcy5leHRyYWN0PXhWO3BzLnBhcnNlPUNWO3BzLnBhcnNlV2l0aENvbW1lbnRzPVc5O3BzLnByaW50PUVWO3BzLnN0cmlwPXdWO3ZhciBnVj0vXFwqXFwvJC8sYlY9L15cXC9cXCpcXCo/LyxxOT0vXlxccyooXFwvXFwqXFwqPygufFxccj9cXG4pKj9cXCpcXC8pLyx2Vj0vKF58XFxzKylcXC9cXC8oW15cXHJcXG5dKikvZyxGOT0vXihcXHI/XFxuKSsvLFRWPS8oPzpefFxccj9cXG4pICooQFteXFxyXFxuXSo/KSAqXFxyP1xcbiAqKD8hW15AXFxyXFxuXSpcXC9cXC9bXl0qKShbXkBcXHJcXG5cXHNdW15AXFxyXFxuXSs/KSAqXFxyP1xcbi9nLEI5PS8oPzpefFxccj9cXG4pICpAKFxcUyspICooW15cXHJcXG5dKikvZyxTVj0vKFxccj9cXG58XikgKlxcKiA/L2csejk9W107ZnVuY3Rpb24geFYoZSl7bGV0IHQ9ZS5tYXRjaChxOSk7cmV0dXJuIHQ/dFswXS50cmltTGVmdCgpOlwiXCJ9ZnVuY3Rpb24gd1YoZSl7bGV0IHQ9ZS5tYXRjaChxOSk7cmV0dXJuIHQmJnRbMF0/ZS5zdWJzdHJpbmcodFswXS5sZW5ndGgpOmV9ZnVuY3Rpb24gQ1YoZSl7cmV0dXJuIFc5KGUpLnByYWdtYXN9ZnVuY3Rpb24gVzkoZSl7bGV0IHQ9YFxuYDtlPWUucmVwbGFjZShiVixcIlwiKS5yZXBsYWNlKGdWLFwiXCIpLnJlcGxhY2UoU1YsXCIkMVwiKTtsZXQgcj1cIlwiO2Zvcig7ciE9PWU7KXI9ZSxlPWUucmVwbGFjZShUVixgJHt0fSQxICQyJHt0fWApO2U9ZS5yZXBsYWNlKEY5LFwiXCIpLnRyaW1SaWdodCgpO2xldCBhPU9iamVjdC5jcmVhdGUobnVsbCksXz1lLnJlcGxhY2UoQjksXCJcIikucmVwbGFjZShGOSxcIlwiKS50cmltUmlnaHQoKSxwO2Zvcig7cD1COS5leGVjKGUpOyl7bGV0IGQ9cFsyXS5yZXBsYWNlKHZWLFwiXCIpO3R5cGVvZiBhW3BbMV1dPT1cInN0cmluZ1wifHxBcnJheS5pc0FycmF5KGFbcFsxXV0pP2FbcFsxXV09ejkuY29uY2F0KGFbcFsxXV0sZCk6YVtwWzFdXT1kfXJldHVybntjb21tZW50czpfLHByYWdtYXM6YX19ZnVuY3Rpb24gRVYoe2NvbW1lbnRzOmU9XCJcIixwcmFnbWFzOnQ9e319KXtsZXQgcj1gXG5gLGE9XCIvKipcIixfPVwiICpcIixwPVwiICovXCIsZD1PYmplY3Qua2V5cyh0KSxoPWQubWFwKHY9PlU5KHYsdFt2XSkpLnJlZHVjZSgodix5KT0+di5jb25jYXQoeSksW10pLm1hcCh2PT5gJHtffSAke3Z9JHtyfWApLmpvaW4oXCJcIik7aWYoIWUpe2lmKGQubGVuZ3RoPT09MClyZXR1cm5cIlwiO2lmKGQubGVuZ3RoPT09MSYmIUFycmF5LmlzQXJyYXkodFtkWzBdXSkpe2xldCB2PXRbZFswXV07cmV0dXJuYCR7YX0gJHtVOShkWzBdLHYpWzBdfSR7cH1gfX1sZXQgbD1lLnNwbGl0KHIpLm1hcCh2PT5gJHtffSAke3Z9YCkuam9pbihyKStyO3JldHVybiBhK3IrKGU/bDpcIlwiKSsoZSYmZC5sZW5ndGg/XytyOlwiXCIpK2grcH1mdW5jdGlvbiBVOShlLHQpe3JldHVybiB6OS5jb25jYXQodCkubWFwKHI9PmBAJHtlfSAke3J9YC50cmltKCkpfX0pO3ZhciBEYj17fTtWaChEYix7cGFyc2VyczooKT0+a2J9KTt2YXIga2I9e307Vmgoa2Ise3R5cGVzY3JpcHQ6KCk9PkhWfSk7dmFyIG41PU1iKEo5KCksMSk7ZnVuY3Rpb24gaFYoZSx0KXtsZXQgcj1uZXcgU3ludGF4RXJyb3IoZStcIiAoXCIrdC5sb2Muc3RhcnQubGluZStcIjpcIit0LmxvYy5zdGFydC5jb2x1bW4rXCIpXCIpO3JldHVybiBPYmplY3QuYXNzaWduKHIsdCl9dmFyIFI5PWhWO2Z1bmN0aW9uIHlWKGUpe2xldCB0PVtdO2ZvcihsZXQgciBvZiBlKXRyeXtyZXR1cm4gcigpfWNhdGNoKGEpe3QucHVzaChhKX10aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihcIkFsbCBjb21iaW5hdGlvbnMgZmFpbGVkXCIpLHtlcnJvcnM6dH0pfXZhciBqOT15Vjt2YXIgSF89TWIoVjkoKSwxKTtmdW5jdGlvbiBBVihlKXtpZighZS5zdGFydHNXaXRoKFwiIyFcIikpcmV0dXJuXCJcIjtsZXQgdD1lLmluZGV4T2YoYFxuYCk7cmV0dXJuIHQ9PT0tMT9lOmUuc2xpY2UoMCx0KX12YXIgSDk9QVY7ZnVuY3Rpb24ga1YoZSl7bGV0IHQ9SDkoZSk7dCYmKGU9ZS5zbGljZSh0Lmxlbmd0aCsxKSk7bGV0IHI9KDAsSF8uZXh0cmFjdCkoZSkse3ByYWdtYXM6YSxjb21tZW50czpffT0oMCxIXy5wYXJzZVdpdGhDb21tZW50cykocik7cmV0dXJue3NoZWJhbmc6dCx0ZXh0OmUscHJhZ21hczphLGNvbW1lbnRzOl99fWZ1bmN0aW9uIEc5KGUpe2xldHtwcmFnbWFzOnR9PWtWKGUpO3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxcInByZXR0aWVyXCIpfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxcImZvcm1hdFwiKX1mdW5jdGlvbiBEVihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+MH12YXIgS209RFY7ZnVuY3Rpb24gRm4oZSl7dmFyIGE7bGV0IHQ9ZS5yYW5nZT9lLnJhbmdlWzBdOmUuc3RhcnQscj0oKGE9ZS5kZWNsYXJhdGlvbik9PW51bGw/dm9pZCAwOmEuZGVjb3JhdG9ycyk/P2UuZGVjb3JhdG9ycztyZXR1cm4gS20ocik/TWF0aC5taW4oRm4oclswXSksdCk6dH1mdW5jdGlvbiByYShlKXtyZXR1cm4gZS5yYW5nZT9lLnJhbmdlWzFdOmUuZW5kfWZ1bmN0aW9uIFBWKGUpe3JldHVybiBlPXR5cGVvZiBlPT1cImZ1bmN0aW9uXCI/e3BhcnNlOmV9OmUse2FzdEZvcm1hdDpcImVzdHJlZVwiLGhhc1ByYWdtYTpHOSxsb2NTdGFydDpGbixsb2NFbmQ6cmEsLi4uZX19dmFyIFg5PVBWO2Z1bmN0aW9uIElWKGUpe3JldHVybiBlLmNoYXJBdCgwKT09PVwiI1wiJiZlLmNoYXJBdCgxKT09PVwiIVwiP1wiLy9cIitlLnNsaWNlKDIpOmV9dmFyICQ5PUlWO3ZhciBOVj0oZSx0LHIpPT57aWYoIShlJiZ0PT1udWxsKSlyZXR1cm4gQXJyYXkuaXNBcnJheSh0KXx8dHlwZW9mIHQ9PVwic3RyaW5nXCI/dFtyPDA/dC5sZW5ndGgrcjpyXTp0LmF0KHIpfSxTYj1OVjtmdW5jdGlvbiBPVihlKXtyZXR1cm4gZT1uZXcgU2V0KGUpLHQ9PmUuaGFzKHQ9PW51bGw/dm9pZCAwOnQudHlwZSl9dmFyIFE5PU9WO3ZhciBNVj1ROShbXCJCbG9ja1wiLFwiQ29tbWVudEJsb2NrXCIsXCJNdWx0aUxpbmVcIl0pLGd1PU1WO2Z1bmN0aW9uIExWKGUpe3JldHVybiBndShlKSYmZS52YWx1ZVswXT09PVwiKlwiJiYvQCg/OnR5cGV8c2F0aXNmaWVzKVxcYi8udGVzdChlLnZhbHVlKX12YXIgWTk9TFY7ZnVuY3Rpb24gSlYoZSl7bGV0IHQ9YCoke2UudmFsdWV9KmAuc3BsaXQoYFxuYCk7cmV0dXJuIHQubGVuZ3RoPjEmJnQuZXZlcnkocj0+ci50cmltU3RhcnQoKVswXT09PVwiKlwiKX12YXIgeGI9SlY7dmFyIGJ1PW51bGw7ZnVuY3Rpb24gdnUoZSl7aWYoYnUhPT1udWxsJiZ0eXBlb2YgYnUucHJvcGVydHkpe2xldCB0PWJ1O3JldHVybiBidT12dS5wcm90b3R5cGU9bnVsbCx0fXJldHVybiBidT12dS5wcm90b3R5cGU9ZT8/T2JqZWN0LmNyZWF0ZShudWxsKSxuZXcgdnV9dmFyIFJWPTEwO2ZvcihsZXQgZT0wO2U8PVJWO2UrKyl2dSgpO2Z1bmN0aW9uIHdiKGUpe3JldHVybiB2dShlKX1mdW5jdGlvbiBqVihlLHQ9XCJ0eXBlXCIpe3diKGUpO2Z1bmN0aW9uIHIoYSl7bGV0IF89YVt0XSxwPWVbX107aWYoIUFycmF5LmlzQXJyYXkocCkpdGhyb3cgT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoYE1pc3NpbmcgdmlzaXRvciBrZXlzIGZvciAnJHtffScuYCkse25vZGU6YX0pO3JldHVybiBwfXJldHVybiByfXZhciBLOT1qVjt2YXIgWjk9e0FycmF5RXhwcmVzc2lvbjpbXCJlbGVtZW50c1wiXSxBc3NpZ25tZW50RXhwcmVzc2lvbjpbXCJsZWZ0XCIsXCJyaWdodFwiXSxCaW5hcnlFeHByZXNzaW9uOltcImxlZnRcIixcInJpZ2h0XCJdLEludGVycHJldGVyRGlyZWN0aXZlOltdLERpcmVjdGl2ZTpbXCJ2YWx1ZVwiXSxEaXJlY3RpdmVMaXRlcmFsOltdLEJsb2NrU3RhdGVtZW50OltcImRpcmVjdGl2ZXNcIixcImJvZHlcIl0sQnJlYWtTdGF0ZW1lbnQ6W1wibGFiZWxcIl0sQ2FsbEV4cHJlc3Npb246W1wiY2FsbGVlXCIsXCJhcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLENhdGNoQ2xhdXNlOltcInBhcmFtXCIsXCJib2R5XCJdLENvbmRpdGlvbmFsRXhwcmVzc2lvbjpbXCJ0ZXN0XCIsXCJjb25zZXF1ZW50XCIsXCJhbHRlcm5hdGVcIl0sQ29udGludWVTdGF0ZW1lbnQ6W1wibGFiZWxcIl0sRGVidWdnZXJTdGF0ZW1lbnQ6W10sRG9XaGlsZVN0YXRlbWVudDpbXCJ0ZXN0XCIsXCJib2R5XCJdLEVtcHR5U3RhdGVtZW50OltdLEV4cHJlc3Npb25TdGF0ZW1lbnQ6W1wiZXhwcmVzc2lvblwiXSxGaWxlOltcInByb2dyYW1cIl0sRm9ySW5TdGF0ZW1lbnQ6W1wibGVmdFwiLFwicmlnaHRcIixcImJvZHlcIl0sRm9yU3RhdGVtZW50OltcImluaXRcIixcInRlc3RcIixcInVwZGF0ZVwiLFwiYm9keVwiXSxGdW5jdGlvbkRlY2xhcmF0aW9uOltcImlkXCIsXCJwYXJhbXNcIixcImJvZHlcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwcmVkaWNhdGVcIl0sRnVuY3Rpb25FeHByZXNzaW9uOltcImlkXCIsXCJwYXJhbXNcIixcImJvZHlcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLElkZW50aWZpZXI6W1widHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sSWZTdGF0ZW1lbnQ6W1widGVzdFwiLFwiY29uc2VxdWVudFwiLFwiYWx0ZXJuYXRlXCJdLExhYmVsZWRTdGF0ZW1lbnQ6W1wibGFiZWxcIixcImJvZHlcIl0sU3RyaW5nTGl0ZXJhbDpbXSxOdW1lcmljTGl0ZXJhbDpbXSxOdWxsTGl0ZXJhbDpbXSxCb29sZWFuTGl0ZXJhbDpbXSxSZWdFeHBMaXRlcmFsOltdLExvZ2ljYWxFeHByZXNzaW9uOltcImxlZnRcIixcInJpZ2h0XCJdLE1lbWJlckV4cHJlc3Npb246W1wib2JqZWN0XCIsXCJwcm9wZXJ0eVwiXSxOZXdFeHByZXNzaW9uOltcImNhbGxlZVwiLFwiYXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxQcm9ncmFtOltcImRpcmVjdGl2ZXNcIixcImJvZHlcIl0sT2JqZWN0RXhwcmVzc2lvbjpbXCJwcm9wZXJ0aWVzXCJdLE9iamVjdE1ldGhvZDpbXCJrZXlcIixcInBhcmFtc1wiLFwiYm9keVwiLFwiZGVjb3JhdG9yc1wiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIl0sT2JqZWN0UHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwiZGVjb3JhdG9yc1wiXSxSZXN0RWxlbWVudDpbXCJhcmd1bWVudFwiLFwidHlwZUFubm90YXRpb25cIixcImRlY29yYXRvcnNcIl0sUmV0dXJuU3RhdGVtZW50OltcImFyZ3VtZW50XCJdLFNlcXVlbmNlRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uc1wiXSxQYXJlbnRoZXNpemVkRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLFN3aXRjaENhc2U6W1widGVzdFwiLFwiY29uc2VxdWVudFwiXSxTd2l0Y2hTdGF0ZW1lbnQ6W1wiZGlzY3JpbWluYW50XCIsXCJjYXNlc1wiXSxUaGlzRXhwcmVzc2lvbjpbXSxUaHJvd1N0YXRlbWVudDpbXCJhcmd1bWVudFwiXSxUcnlTdGF0ZW1lbnQ6W1wiYmxvY2tcIixcImhhbmRsZXJcIixcImZpbmFsaXplclwiXSxVbmFyeUV4cHJlc3Npb246W1wiYXJndW1lbnRcIl0sVXBkYXRlRXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxWYXJpYWJsZURlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uc1wiXSxWYXJpYWJsZURlY2xhcmF0b3I6W1wiaWRcIixcImluaXRcIl0sV2hpbGVTdGF0ZW1lbnQ6W1widGVzdFwiLFwiYm9keVwiXSxXaXRoU3RhdGVtZW50OltcIm9iamVjdFwiLFwiYm9keVwiXSxBc3NpZ25tZW50UGF0dGVybjpbXCJsZWZ0XCIsXCJyaWdodFwiLFwiZGVjb3JhdG9yc1wiLFwidHlwZUFubm90YXRpb25cIl0sQXJyYXlQYXR0ZXJuOltcImVsZW1lbnRzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpbXCJwYXJhbXNcIixcImJvZHlcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwcmVkaWNhdGVcIl0sQ2xhc3NCb2R5OltcImJvZHlcIl0sQ2xhc3NFeHByZXNzaW9uOltcImlkXCIsXCJib2R5XCIsXCJzdXBlckNsYXNzXCIsXCJtaXhpbnNcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJzdXBlclR5cGVQYXJhbWV0ZXJzXCIsXCJpbXBsZW1lbnRzXCIsXCJkZWNvcmF0b3JzXCIsXCJzdXBlclR5cGVBcmd1bWVudHNcIl0sQ2xhc3NEZWNsYXJhdGlvbjpbXCJpZFwiLFwiYm9keVwiLFwic3VwZXJDbGFzc1wiLFwibWl4aW5zXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJUeXBlUGFyYW1ldGVyc1wiLFwiaW1wbGVtZW50c1wiLFwiZGVjb3JhdG9yc1wiLFwic3VwZXJUeXBlQXJndW1lbnRzXCJdLEV4cG9ydEFsbERlY2xhcmF0aW9uOltcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiLFwiYXNzZXJ0aW9uc1wiLFwiZXhwb3J0ZWRcIl0sRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uOltcImRlY2xhcmF0aW9uXCJdLEV4cG9ydE5hbWVkRGVjbGFyYXRpb246W1wiZGVjbGFyYXRpb25cIixcInNwZWNpZmllcnNcIixcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiLFwiYXNzZXJ0aW9uc1wiXSxFeHBvcnRTcGVjaWZpZXI6W1wibG9jYWxcIixcImV4cG9ydGVkXCJdLEZvck9mU3RhdGVtZW50OltcImxlZnRcIixcInJpZ2h0XCIsXCJib2R5XCJdLEltcG9ydERlY2xhcmF0aW9uOltcInNwZWNpZmllcnNcIixcInNvdXJjZVwiLFwiYXR0cmlidXRlc1wiLFwiYXNzZXJ0aW9uc1wiXSxJbXBvcnREZWZhdWx0U3BlY2lmaWVyOltcImxvY2FsXCJdLEltcG9ydE5hbWVzcGFjZVNwZWNpZmllcjpbXCJsb2NhbFwiXSxJbXBvcnRTcGVjaWZpZXI6W1wibG9jYWxcIixcImltcG9ydGVkXCJdLE1ldGFQcm9wZXJ0eTpbXCJtZXRhXCIsXCJwcm9wZXJ0eVwiXSxDbGFzc01ldGhvZDpbXCJrZXlcIixcInBhcmFtc1wiLFwiYm9keVwiLFwiZGVjb3JhdG9yc1wiLFwicmV0dXJuVHlwZVwiLFwidHlwZVBhcmFtZXRlcnNcIl0sT2JqZWN0UGF0dGVybjpbXCJwcm9wZXJ0aWVzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiXSxTcHJlYWRFbGVtZW50OltcImFyZ3VtZW50XCJdLFN1cGVyOltdLFRhZ2dlZFRlbXBsYXRlRXhwcmVzc2lvbjpbXCJ0YWdcIixcInF1YXNpXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUZW1wbGF0ZUVsZW1lbnQ6W10sVGVtcGxhdGVMaXRlcmFsOltcInF1YXNpc1wiLFwiZXhwcmVzc2lvbnNcIl0sWWllbGRFeHByZXNzaW9uOltcImFyZ3VtZW50XCJdLEF3YWl0RXhwcmVzc2lvbjpbXCJhcmd1bWVudFwiXSxJbXBvcnQ6W10sQmlnSW50TGl0ZXJhbDpbXSxFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXI6W1wiZXhwb3J0ZWRcIl0sT3B0aW9uYWxNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sT3B0aW9uYWxDYWxsRXhwcmVzc2lvbjpbXCJjYWxsZWVcIixcImFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIixcInR5cGVBcmd1bWVudHNcIl0sQ2xhc3NQcm9wZXJ0eTpbXCJrZXlcIixcInZhbHVlXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiZGVjb3JhdG9yc1wiLFwidmFyaWFuY2VcIl0sQ2xhc3NBY2Nlc3NvclByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJkZWNvcmF0b3JzXCJdLENsYXNzUHJpdmF0ZVByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIixcImRlY29yYXRvcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJ2YXJpYW5jZVwiXSxDbGFzc1ByaXZhdGVNZXRob2Q6W1wia2V5XCIsXCJwYXJhbXNcIixcImJvZHlcIixcImRlY29yYXRvcnNcIixcInJldHVyblR5cGVcIixcInR5cGVQYXJhbWV0ZXJzXCJdLFByaXZhdGVOYW1lOltcImlkXCJdLFN0YXRpY0Jsb2NrOltcImJvZHlcIl0sQW55VHlwZUFubm90YXRpb246W10sQXJyYXlUeXBlQW5ub3RhdGlvbjpbXCJlbGVtZW50VHlwZVwiXSxCb29sZWFuVHlwZUFubm90YXRpb246W10sQm9vbGVhbkxpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxOdWxsTGl0ZXJhbFR5cGVBbm5vdGF0aW9uOltdLENsYXNzSW1wbGVtZW50czpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIl0sRGVjbGFyZUNsYXNzOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwibWl4aW5zXCIsXCJpbXBsZW1lbnRzXCIsXCJib2R5XCJdLERlY2xhcmVGdW5jdGlvbjpbXCJpZFwiLFwicHJlZGljYXRlXCJdLERlY2xhcmVJbnRlcmZhY2U6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJleHRlbmRzXCIsXCJib2R5XCJdLERlY2xhcmVNb2R1bGU6W1wiaWRcIixcImJvZHlcIl0sRGVjbGFyZU1vZHVsZUV4cG9ydHM6W1widHlwZUFubm90YXRpb25cIl0sRGVjbGFyZVR5cGVBbGlhczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInJpZ2h0XCJdLERlY2xhcmVPcGFxdWVUeXBlOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwic3VwZXJ0eXBlXCJdLERlY2xhcmVWYXJpYWJsZTpbXCJpZFwiXSxEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb246W1wiZGVjbGFyYXRpb25cIixcInNwZWNpZmllcnNcIixcInNvdXJjZVwiXSxEZWNsYXJlRXhwb3J0QWxsRGVjbGFyYXRpb246W1wic291cmNlXCJdLERlY2xhcmVkUHJlZGljYXRlOltcInZhbHVlXCJdLEV4aXN0c1R5cGVBbm5vdGF0aW9uOltdLEZ1bmN0aW9uVHlwZUFubm90YXRpb246W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmVzdFwiLFwicmV0dXJuVHlwZVwiLFwidGhpc1wiXSxGdW5jdGlvblR5cGVQYXJhbTpbXCJuYW1lXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxHZW5lcmljVHlwZUFubm90YXRpb246W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLEluZmVycmVkUHJlZGljYXRlOltdLEludGVyZmFjZUV4dGVuZHM6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCJdLEludGVyZmFjZURlY2xhcmF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxJbnRlcmZhY2VUeXBlQW5ub3RhdGlvbjpbXCJleHRlbmRzXCIsXCJib2R5XCJdLEludGVyc2VjdGlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVzXCJdLE1peGVkVHlwZUFubm90YXRpb246W10sRW1wdHlUeXBlQW5ub3RhdGlvbjpbXSxOdWxsYWJsZVR5cGVBbm5vdGF0aW9uOltcInR5cGVBbm5vdGF0aW9uXCJdLE51bWJlckxpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxOdW1iZXJUeXBlQW5ub3RhdGlvbjpbXSxPYmplY3RUeXBlQW5ub3RhdGlvbjpbXCJwcm9wZXJ0aWVzXCIsXCJpbmRleGVyc1wiLFwiY2FsbFByb3BlcnRpZXNcIixcImludGVybmFsU2xvdHNcIl0sT2JqZWN0VHlwZUludGVybmFsU2xvdDpbXCJpZFwiLFwidmFsdWVcIixcIm9wdGlvbmFsXCIsXCJzdGF0aWNcIixcIm1ldGhvZFwiXSxPYmplY3RUeXBlQ2FsbFByb3BlcnR5OltcInZhbHVlXCJdLE9iamVjdFR5cGVJbmRleGVyOltcImlkXCIsXCJrZXlcIixcInZhbHVlXCIsXCJ2YXJpYW5jZVwiXSxPYmplY3RUeXBlUHJvcGVydHk6W1wia2V5XCIsXCJ2YWx1ZVwiLFwidmFyaWFuY2VcIl0sT2JqZWN0VHlwZVNwcmVhZFByb3BlcnR5OltcImFyZ3VtZW50XCJdLE9wYXF1ZVR5cGU6W1wiaWRcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJzdXBlcnR5cGVcIixcImltcGx0eXBlXCJdLFF1YWxpZmllZFR5cGVJZGVudGlmaWVyOltcImlkXCIsXCJxdWFsaWZpY2F0aW9uXCJdLFN0cmluZ0xpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxTdHJpbmdUeXBlQW5ub3RhdGlvbjpbXSxTeW1ib2xUeXBlQW5ub3RhdGlvbjpbXSxUaGlzVHlwZUFubm90YXRpb246W10sVHVwbGVUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlc1wiLFwiZWxlbWVudFR5cGVzXCJdLFR5cGVvZlR5cGVBbm5vdGF0aW9uOltcImFyZ3VtZW50XCJdLFR5cGVBbGlhczpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInJpZ2h0XCJdLFR5cGVBbm5vdGF0aW9uOltcInR5cGVBbm5vdGF0aW9uXCJdLFR5cGVDYXN0RXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUeXBlUGFyYW1ldGVyOltcImJvdW5kXCIsXCJkZWZhdWx0XCIsXCJ2YXJpYW5jZVwiXSxUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb246W1wicGFyYW1zXCJdLFR5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uOltcInBhcmFtc1wiXSxVbmlvblR5cGVBbm5vdGF0aW9uOltcInR5cGVzXCJdLFZhcmlhbmNlOltdLFZvaWRUeXBlQW5ub3RhdGlvbjpbXSxFbnVtRGVjbGFyYXRpb246W1wiaWRcIixcImJvZHlcIl0sRW51bUJvb2xlYW5Cb2R5OltcIm1lbWJlcnNcIl0sRW51bU51bWJlckJvZHk6W1wibWVtYmVyc1wiXSxFbnVtU3RyaW5nQm9keTpbXCJtZW1iZXJzXCJdLEVudW1TeW1ib2xCb2R5OltcIm1lbWJlcnNcIl0sRW51bUJvb2xlYW5NZW1iZXI6W1wiaWRcIixcImluaXRcIl0sRW51bU51bWJlck1lbWJlcjpbXCJpZFwiLFwiaW5pdFwiXSxFbnVtU3RyaW5nTWVtYmVyOltcImlkXCIsXCJpbml0XCJdLEVudW1EZWZhdWx0ZWRNZW1iZXI6W1wiaWRcIl0sSW5kZXhlZEFjY2Vzc1R5cGU6W1wib2JqZWN0VHlwZVwiLFwiaW5kZXhUeXBlXCJdLE9wdGlvbmFsSW5kZXhlZEFjY2Vzc1R5cGU6W1wib2JqZWN0VHlwZVwiLFwiaW5kZXhUeXBlXCJdLEpTWEF0dHJpYnV0ZTpbXCJuYW1lXCIsXCJ2YWx1ZVwiXSxKU1hDbG9zaW5nRWxlbWVudDpbXCJuYW1lXCJdLEpTWEVsZW1lbnQ6W1wib3BlbmluZ0VsZW1lbnRcIixcImNoaWxkcmVuXCIsXCJjbG9zaW5nRWxlbWVudFwiXSxKU1hFbXB0eUV4cHJlc3Npb246W10sSlNYRXhwcmVzc2lvbkNvbnRhaW5lcjpbXCJleHByZXNzaW9uXCJdLEpTWFNwcmVhZENoaWxkOltcImV4cHJlc3Npb25cIl0sSlNYSWRlbnRpZmllcjpbXSxKU1hNZW1iZXJFeHByZXNzaW9uOltcIm9iamVjdFwiLFwicHJvcGVydHlcIl0sSlNYTmFtZXNwYWNlZE5hbWU6W1wibmFtZXNwYWNlXCIsXCJuYW1lXCJdLEpTWE9wZW5pbmdFbGVtZW50OltcIm5hbWVcIixcImF0dHJpYnV0ZXNcIixcInR5cGVBcmd1bWVudHNcIixcInR5cGVQYXJhbWV0ZXJzXCJdLEpTWFNwcmVhZEF0dHJpYnV0ZTpbXCJhcmd1bWVudFwiXSxKU1hUZXh0OltdLEpTWEZyYWdtZW50OltcIm9wZW5pbmdGcmFnbWVudFwiLFwiY2hpbGRyZW5cIixcImNsb3NpbmdGcmFnbWVudFwiXSxKU1hPcGVuaW5nRnJhZ21lbnQ6W10sSlNYQ2xvc2luZ0ZyYWdtZW50OltdLE5vb3A6W10sUGxhY2Vob2xkZXI6W10sVjhJbnRyaW5zaWNJZGVudGlmaWVyOltdLEFyZ3VtZW50UGxhY2Vob2xkZXI6W10sQmluZEV4cHJlc3Npb246W1wib2JqZWN0XCIsXCJjYWxsZWVcIl0sSW1wb3J0QXR0cmlidXRlOltcImtleVwiLFwidmFsdWVcIl0sRGVjb3JhdG9yOltcImV4cHJlc3Npb25cIl0sRG9FeHByZXNzaW9uOltcImJvZHlcIl0sRXhwb3J0RGVmYXVsdFNwZWNpZmllcjpbXCJleHBvcnRlZFwiXSxSZWNvcmRFeHByZXNzaW9uOltcInByb3BlcnRpZXNcIl0sVHVwbGVFeHByZXNzaW9uOltcImVsZW1lbnRzXCJdLERlY2ltYWxMaXRlcmFsOltdLE1vZHVsZUV4cHJlc3Npb246W1wiYm9keVwiXSxUb3BpY1JlZmVyZW5jZTpbXSxQaXBlbGluZVRvcGljRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLFBpcGVsaW5lQmFyZUZ1bmN0aW9uOltcImNhbGxlZVwiXSxQaXBlbGluZVByaW1hcnlUb3BpY1JlZmVyZW5jZTpbXSxUU1BhcmFtZXRlclByb3BlcnR5OltcInBhcmFtZXRlclwiLFwiZGVjb3JhdG9yc1wiXSxUU0RlY2xhcmVGdW5jdGlvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiLFwiYm9keVwiXSxUU0RlY2xhcmVNZXRob2Q6W1wiZGVjb3JhdG9yc1wiLFwia2V5XCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTUXVhbGlmaWVkTmFtZTpbXCJsZWZ0XCIsXCJyaWdodFwiXSxUU0NhbGxTaWduYXR1cmVEZWNsYXJhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyc1wiLFwicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uOltcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTUHJvcGVydHlTaWduYXR1cmU6W1wia2V5XCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU01ldGhvZFNpZ25hdHVyZTpbXCJrZXlcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJwYXJhbWV0ZXJzXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwicGFyYW1zXCIsXCJyZXR1cm5UeXBlXCJdLFRTSW5kZXhTaWduYXR1cmU6W1wicGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIl0sVFNBbnlLZXl3b3JkOltdLFRTQm9vbGVhbktleXdvcmQ6W10sVFNCaWdJbnRLZXl3b3JkOltdLFRTSW50cmluc2ljS2V5d29yZDpbXSxUU05ldmVyS2V5d29yZDpbXSxUU051bGxLZXl3b3JkOltdLFRTTnVtYmVyS2V5d29yZDpbXSxUU09iamVjdEtleXdvcmQ6W10sVFNTdHJpbmdLZXl3b3JkOltdLFRTU3ltYm9sS2V5d29yZDpbXSxUU1VuZGVmaW5lZEtleXdvcmQ6W10sVFNVbmtub3duS2V5d29yZDpbXSxUU1ZvaWRLZXl3b3JkOltdLFRTVGhpc1R5cGU6W10sVFNGdW5jdGlvblR5cGU6W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNDb25zdHJ1Y3RvclR5cGU6W1widHlwZVBhcmFtZXRlcnNcIixcInBhcmFtZXRlcnNcIixcInR5cGVBbm5vdGF0aW9uXCIsXCJwYXJhbXNcIixcInJldHVyblR5cGVcIl0sVFNUeXBlUmVmZXJlbmNlOltcInR5cGVOYW1lXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU1R5cGVQcmVkaWNhdGU6W1wicGFyYW1ldGVyTmFtZVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNUeXBlUXVlcnk6W1wiZXhwck5hbWVcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFRTVHlwZUxpdGVyYWw6W1wibWVtYmVyc1wiXSxUU0FycmF5VHlwZTpbXCJlbGVtZW50VHlwZVwiXSxUU1R1cGxlVHlwZTpbXCJlbGVtZW50VHlwZXNcIl0sVFNPcHRpb25hbFR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNSZXN0VHlwZTpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU05hbWVkVHVwbGVNZW1iZXI6W1wibGFiZWxcIixcImVsZW1lbnRUeXBlXCJdLFRTVW5pb25UeXBlOltcInR5cGVzXCJdLFRTSW50ZXJzZWN0aW9uVHlwZTpbXCJ0eXBlc1wiXSxUU0NvbmRpdGlvbmFsVHlwZTpbXCJjaGVja1R5cGVcIixcImV4dGVuZHNUeXBlXCIsXCJ0cnVlVHlwZVwiLFwiZmFsc2VUeXBlXCJdLFRTSW5mZXJUeXBlOltcInR5cGVQYXJhbWV0ZXJcIl0sVFNQYXJlbnRoZXNpemVkVHlwZTpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1R5cGVPcGVyYXRvcjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU0luZGV4ZWRBY2Nlc3NUeXBlOltcIm9iamVjdFR5cGVcIixcImluZGV4VHlwZVwiXSxUU01hcHBlZFR5cGU6W1widHlwZVBhcmFtZXRlclwiLFwidHlwZUFubm90YXRpb25cIixcIm5hbWVUeXBlXCJdLFRTTGl0ZXJhbFR5cGU6W1wibGl0ZXJhbFwiXSxUU0V4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50czpbXCJleHByZXNzaW9uXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxUU0ludGVyZmFjZURlY2xhcmF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwiZXh0ZW5kc1wiLFwiYm9keVwiXSxUU0ludGVyZmFjZUJvZHk6W1wiYm9keVwiXSxUU1R5cGVBbGlhc0RlY2xhcmF0aW9uOltcImlkXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFubm90YXRpb25cIl0sVFNJbnN0YW50aWF0aW9uRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCIsXCJ0eXBlUGFyYW1ldGVyc1wiLFwidHlwZUFyZ3VtZW50c1wiXSxUU0FzRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCIsXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1NhdGlzZmllc0V4cHJlc3Npb246W1wiZXhwcmVzc2lvblwiLFwidHlwZUFubm90YXRpb25cIl0sVFNUeXBlQXNzZXJ0aW9uOltcInR5cGVBbm5vdGF0aW9uXCIsXCJleHByZXNzaW9uXCJdLFRTRW51bURlY2xhcmF0aW9uOltcImlkXCIsXCJtZW1iZXJzXCJdLFRTRW51bU1lbWJlcjpbXCJpZFwiLFwiaW5pdGlhbGl6ZXJcIl0sVFNNb2R1bGVEZWNsYXJhdGlvbjpbXCJpZFwiLFwiYm9keVwiXSxUU01vZHVsZUJsb2NrOltcImJvZHlcIl0sVFNJbXBvcnRUeXBlOltcImFyZ3VtZW50XCIsXCJxdWFsaWZpZXJcIixcInR5cGVQYXJhbWV0ZXJzXCIsXCJ0eXBlQXJndW1lbnRzXCJdLFRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb246W1wiaWRcIixcIm1vZHVsZVJlZmVyZW5jZVwiXSxUU0V4dGVybmFsTW9kdWxlUmVmZXJlbmNlOltcImV4cHJlc3Npb25cIl0sVFNOb25OdWxsRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCJdLFRTRXhwb3J0QXNzaWdubWVudDpbXCJleHByZXNzaW9uXCJdLFRTTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb246W1wiaWRcIl0sVFNUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlQW5ub3RhdGlvblwiXSxUU1R5cGVQYXJhbWV0ZXJJbnN0YW50aWF0aW9uOltcInBhcmFtc1wiXSxUU1R5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvbjpbXCJwYXJhbXNcIl0sVFNUeXBlUGFyYW1ldGVyOltcImNvbnN0cmFpbnRcIixcImRlZmF1bHRcIixcIm5hbWVcIl0sQ2hhaW5FeHByZXNzaW9uOltcImV4cHJlc3Npb25cIl0sRXhwZXJpbWVudGFsUmVzdFByb3BlcnR5OltcImFyZ3VtZW50XCJdLEV4cGVyaW1lbnRhbFNwcmVhZFByb3BlcnR5OltcImFyZ3VtZW50XCJdLEltcG9ydEV4cHJlc3Npb246W1wic291cmNlXCIsXCJhdHRyaWJ1dGVzXCJdLExpdGVyYWw6W10sTWV0aG9kRGVmaW5pdGlvbjpbXCJkZWNvcmF0b3JzXCIsXCJrZXlcIixcInZhbHVlXCJdLFByaXZhdGVJZGVudGlmaWVyOltdLFByb3BlcnR5OltcImtleVwiLFwidmFsdWVcIl0sUHJvcGVydHlEZWZpbml0aW9uOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZUFubm90YXRpb25cIixcInZhbHVlXCIsXCJ2YXJpYW5jZVwiXSxBY2Nlc3NvclByb3BlcnR5OltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZUFubm90YXRpb25cIixcInZhbHVlXCJdLFRTQWJzdHJhY3RBY2Nlc3NvclByb3BlcnR5OltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNBYnN0cmFjdEtleXdvcmQ6W10sVFNBYnN0cmFjdE1ldGhvZERlZmluaXRpb246W1wia2V5XCIsXCJ2YWx1ZVwiXSxUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uOltcImRlY29yYXRvcnNcIixcImtleVwiLFwidHlwZUFubm90YXRpb25cIl0sVFNBc3luY0tleXdvcmQ6W10sVFNDbGFzc0ltcGxlbWVudHM6W1wiZXhwcmVzc2lvblwiLFwidHlwZUFyZ3VtZW50c1wiLFwidHlwZVBhcmFtZXRlcnNcIl0sVFNEZWNsYXJlS2V5d29yZDpbXSxUU0VtcHR5Qm9keUZ1bmN0aW9uRXhwcmVzc2lvbjpbXCJpZFwiLFwidHlwZVBhcmFtZXRlcnNcIixcInBhcmFtc1wiLFwicmV0dXJuVHlwZVwiXSxUU0V4cG9ydEtleXdvcmQ6W10sVFNJbnRlcmZhY2VIZXJpdGFnZTpbXCJleHByZXNzaW9uXCIsXCJ0eXBlQXJndW1lbnRzXCIsXCJ0eXBlUGFyYW1ldGVyc1wiXSxUU1ByaXZhdGVLZXl3b3JkOltdLFRTUHJvdGVjdGVkS2V5d29yZDpbXSxUU1B1YmxpY0tleXdvcmQ6W10sVFNSZWFkb25seUtleXdvcmQ6W10sVFNTdGF0aWNLZXl3b3JkOltdLFRTVGVtcGxhdGVMaXRlcmFsVHlwZTpbXCJxdWFzaXNcIixcInR5cGVzXCJdLEJpZ0ludExpdGVyYWxUeXBlQW5ub3RhdGlvbjpbXSxCaWdJbnRUeXBlQW5ub3RhdGlvbjpbXSxDb25kaXRpb25hbFR5cGVBbm5vdGF0aW9uOltcImNoZWNrVHlwZVwiLFwiZXh0ZW5kc1R5cGVcIixcInRydWVUeXBlXCIsXCJmYWxzZVR5cGVcIl0sRGVjbGFyZUVudW06W1wiaWRcIixcImJvZHlcIl0sSW5mZXJUeXBlQW5ub3RhdGlvbjpbXCJ0eXBlUGFyYW1ldGVyXCJdLEtleW9mVHlwZUFubm90YXRpb246W1wiYXJndW1lbnRcIl0sT2JqZWN0VHlwZU1hcHBlZFR5cGVQcm9wZXJ0eTpbXCJrZXlUcGFyYW1cIixcInByb3BUeXBlXCIsXCJzb3VyY2VUeXBlXCIsXCJ2YXJpYW5jZVwiXSxRdWFsaWZpZWRUeXBlb2ZJZGVudGlmaWVyOltcInF1YWxpZmljYXRpb25cIixcImlkXCJdLFR1cGxlVHlwZUxhYmVsZWRFbGVtZW50OltcImxhYmVsXCIsXCJlbGVtZW50VHlwZVwiLFwidmFyaWFuY2VcIl0sVHVwbGVUeXBlU3ByZWFkRWxlbWVudDpbXCJsYWJlbFwiLFwidHlwZUFubm90YXRpb25cIl0sVHlwZVByZWRpY2F0ZTpbXCJwYXJhbWV0ZXJOYW1lXCIsXCJ0eXBlQW5ub3RhdGlvblwiLFwiYXNzZXJ0c1wiXSxOR1Jvb3Q6W1wibm9kZVwiXSxOR1BpcGVFeHByZXNzaW9uOltcImxlZnRcIixcInJpZ2h0XCIsXCJhcmd1bWVudHNcIl0sTkdDaGFpbmVkRXhwcmVzc2lvbjpbXCJleHByZXNzaW9uc1wiXSxOR0VtcHR5RXhwcmVzc2lvbjpbXSxOR01pY3Jvc3ludGF4OltcImJvZHlcIl0sTkdNaWNyb3N5bnRheEtleTpbXSxOR01pY3Jvc3ludGF4RXhwcmVzc2lvbjpbXCJleHByZXNzaW9uXCIsXCJhbGlhc1wiXSxOR01pY3Jvc3ludGF4S2V5ZWRFeHByZXNzaW9uOltcImtleVwiLFwiZXhwcmVzc2lvblwiXSxOR01pY3Jvc3ludGF4TGV0OltcImtleVwiLFwidmFsdWVcIl0sTkdNaWNyb3N5bnRheEFzOltcImtleVwiLFwiYWxpYXNcIl0sSnNFeHByZXNzaW9uUm9vdDpbXCJub2RlXCJdLEpzb25Sb290OltcIm5vZGVcIl0sVFNKU0RvY0FsbFR5cGU6W10sVFNKU0RvY1Vua25vd25UeXBlOltdLFRTSlNEb2NOdWxsYWJsZVR5cGU6W1widHlwZUFubm90YXRpb25cIl0sVFNKU0RvY05vbk51bGxhYmxlVHlwZTpbXCJ0eXBlQW5ub3RhdGlvblwiXSxOZXZlclR5cGVBbm5vdGF0aW9uOltdLFVuZGVmaW5lZFR5cGVBbm5vdGF0aW9uOltdLFVua25vd25UeXBlQW5ub3RhdGlvbjpbXX07dmFyIEZWPUs5KFo5KSxlNT1GVjtmdW5jdGlvbiBDYihlLHQpe2lmKCEoZSE9PW51bGwmJnR5cGVvZiBlPT1cIm9iamVjdFwiKSlyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IobGV0IGE9MDthPGUubGVuZ3RoO2ErKyllW2FdPUNiKGVbYV0sdCk7cmV0dXJuIGV9bGV0IHI9ZTUoZSk7Zm9yKGxldCBhPTA7YTxyLmxlbmd0aDthKyspZVtyW2FdXT1DYihlW3JbYV1dLHQpO3JldHVybiB0KGUpfHxlfXZhciBabT1DYjtmdW5jdGlvbiBCVihlLHQpe2xldHtwYXJzZXI6cix0ZXh0OmF9PXQ7aWYoZS50eXBlPT09XCJGaWxlXCImJmUucHJvZ3JhbS5pbnRlcnByZXRlcil7bGV0e3Byb2dyYW06e2ludGVycHJldGVyOnB9LGNvbW1lbnRzOmR9PWU7ZGVsZXRlIGUucHJvZ3JhbS5pbnRlcnByZXRlcixkLnVuc2hpZnQocCl9aWYocj09PVwiYmFiZWxcIil7bGV0IHA9bmV3IFNldDtlPVptKGUsZD0+e3ZhciBoOyhoPWQubGVhZGluZ0NvbW1lbnRzKSE9bnVsbCYmaC5zb21lKFk5KSYmcC5hZGQoRm4oZCkpfSksZT1abShlLGQ9PntpZihkLnR5cGU9PT1cIlBhcmVudGhlc2l6ZWRFeHByZXNzaW9uXCIpe2xldHtleHByZXNzaW9uOmh9PWQ7aWYoaC50eXBlPT09XCJUeXBlQ2FzdEV4cHJlc3Npb25cIilyZXR1cm4gaC5yYW5nZT1kLnJhbmdlLGg7bGV0IGw9Rm4oZCk7aWYoIXAuaGFzKGwpKXJldHVybiBoLmV4dHJhPXsuLi5oLmV4dHJhLHBhcmVudGhlc2l6ZWQ6ITB9LGh9fSl9aWYoZT1abShlLHA9Pntzd2l0Y2gocC50eXBlKXtjYXNlXCJMb2dpY2FsRXhwcmVzc2lvblwiOmlmKHQ1KHApKXJldHVybiBFYihwKTticmVhaztjYXNlXCJWYXJpYWJsZURlY2xhcmF0aW9uXCI6e2xldCBkPVNiKCExLHAuZGVjbGFyYXRpb25zLC0xKTtkIT1udWxsJiZkLmluaXQmJl8ocCxkKTticmVha31jYXNlXCJUU1BhcmVudGhlc2l6ZWRUeXBlXCI6cmV0dXJuIHAudHlwZUFubm90YXRpb247Y2FzZVwiVFNUeXBlUGFyYW1ldGVyXCI6aWYodHlwZW9mIHAubmFtZT09XCJzdHJpbmdcIil7bGV0IGQ9Rm4ocCk7cC5uYW1lPXt0eXBlOlwiSWRlbnRpZmllclwiLG5hbWU6cC5uYW1lLHJhbmdlOltkLGQrcC5uYW1lLmxlbmd0aF19fWJyZWFrO2Nhc2VcIlRvcGljUmVmZXJlbmNlXCI6ZS5leHRyYT17Li4uZS5leHRyYSxfX2lzVXNpbmdIYWNrUGlwZWxpbmU6ITB9O2JyZWFrO2Nhc2VcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCI6e2xldHtleHBvcnRlZDpkfT1wO2lmKHI9PT1cIm1lcml5YWhcIiYmKGQ9PW51bGw/dm9pZCAwOmQudHlwZSk9PT1cIklkZW50aWZpZXJcIil7bGV0IGg9YS5zbGljZShGbihkKSxyYShkKSk7KGguc3RhcnRzV2l0aCgnXCInKXx8aC5zdGFydHNXaXRoKFwiJ1wiKSkmJihwLmV4cG9ydGVkPXsuLi5wLmV4cG9ydGVkLHR5cGU6XCJMaXRlcmFsXCIsdmFsdWU6cC5leHBvcnRlZC5uYW1lLHJhdzpofSl9YnJlYWt9Y2FzZVwiVFNVbmlvblR5cGVcIjpjYXNlXCJUU0ludGVyc2VjdGlvblR5cGVcIjppZihwLnR5cGVzLmxlbmd0aD09PTEpcmV0dXJuIHAudHlwZXNbMF07YnJlYWt9fSksS20oZS5jb21tZW50cykpe2xldCBwPVNiKCExLGUuY29tbWVudHMsLTEpO2ZvcihsZXQgZD1lLmNvbW1lbnRzLmxlbmd0aC0yO2Q+PTA7ZC0tKXtsZXQgaD1lLmNvbW1lbnRzW2RdO3JhKGgpPT09Rm4ocCkmJmd1KGgpJiZndShwKSYmeGIoaCkmJnhiKHApJiYoZS5jb21tZW50cy5zcGxpY2UoZCsxLDEpLGgudmFsdWUrPVwiKi8vKlwiK3AudmFsdWUsaC5yYW5nZT1bRm4oaCkscmEocCldKSxwPWh9fXJldHVybiBlLnR5cGU9PT1cIlByb2dyYW1cIiYmKGUucmFuZ2U9WzAsYS5sZW5ndGhdKSxlO2Z1bmN0aW9uIF8ocCxkKXthW3JhKGQpXSE9PVwiO1wiJiYocC5yYW5nZT1bRm4ocCkscmEoZCldKX19ZnVuY3Rpb24gdDUoZSl7cmV0dXJuIGUudHlwZT09PVwiTG9naWNhbEV4cHJlc3Npb25cIiYmZS5yaWdodC50eXBlPT09XCJMb2dpY2FsRXhwcmVzc2lvblwiJiZlLm9wZXJhdG9yPT09ZS5yaWdodC5vcGVyYXRvcn1mdW5jdGlvbiBFYihlKXtyZXR1cm4gdDUoZSk/RWIoe3R5cGU6XCJMb2dpY2FsRXhwcmVzc2lvblwiLG9wZXJhdG9yOmUub3BlcmF0b3IsbGVmdDpFYih7dHlwZTpcIkxvZ2ljYWxFeHByZXNzaW9uXCIsb3BlcmF0b3I6ZS5vcGVyYXRvcixsZWZ0OmUubGVmdCxyaWdodDplLnJpZ2h0LmxlZnQscmFuZ2U6W0ZuKGUubGVmdCkscmEoZS5yaWdodC5sZWZ0KV19KSxyaWdodDplLnJpZ2h0LnJpZ2h0LHJhbmdlOltGbihlKSxyYShlKV19KTplfXZhciByNT1CVjt2YXIgQWI9e2xvYzohMCxyYW5nZTohMCxjb21tZW50OiEwLHRva2VuczohMCxsb2dnZXJGbjohMSxwcm9qZWN0OltdLHN1cHByZXNzRGVwcmVjYXRlZFByb3BlcnR5V2FybmluZ3M6ITB9O2Z1bmN0aW9uIFVWKGUpe2xldHttZXNzYWdlOnQsbG9jYXRpb246cn09ZTtpZighcilyZXR1cm4gZTtsZXR7c3RhcnQ6YSxlbmQ6X309cjtyZXR1cm4gUjkodCx7bG9jOntzdGFydDp7bGluZTphLmxpbmUsY29sdW1uOmEuY29sdW1uKzF9LGVuZDp7bGluZTpfLmxpbmUsY29sdW1uOl8uY29sdW1uKzF9fSxjYXVzZTplfSl9dmFyIHFWPWU9Pi9cXC4oPzpqc3xtanN8Y2pzfGpzeHx0c3xtdHN8Y3RzfHRzeCkkL2kudGVzdChlKTtmdW5jdGlvbiB6VihlLHQpe2xldCByPXQ9PW51bGw/dm9pZCAwOnQuZmlsZXBhdGg7aWYociYmcVYocikpcmV0dXJuW3suLi5BYixmaWxlUGF0aDpyfV07bGV0IGE9VlYoZSk7cmV0dXJuW3suLi5BYixqc3g6YX0sey4uLkFiLGpzeDohYX1dfWZ1bmN0aW9uIFdWKGUsdCl7bGV0IHI9JDkoZSksYT16VihlLHQpLF87dHJ5e189ajkoYS5tYXAocD0+KCk9PigwLG41LnBhcnNlKShyLHApKSl9Y2F0Y2goe2Vycm9yczpbcF19KXt0aHJvdyBVVihwKX1yZXR1cm4gcjUoXyx7dGV4dDplfSl9ZnVuY3Rpb24gVlYoZSl7cmV0dXJuIG5ldyBSZWdFeHAoW1wiKD86XlteXFxcIidgXSo8LylcIixcInxcIixcIig/Ol5bXi9dezJ9LiovPilcIl0uam9pbihcIlwiKSxcIm1cIikudGVzdChlKX12YXIgSFY9WDkoV1YpO3ZhciBVRz1EYjtleHBvcnR7VUcgYXMgZGVmYXVsdCxrYiBhcyBwYXJzZXJzfTtcbiIsICJ2YXIgTGk9T2JqZWN0LmNyZWF0ZTt2YXIgbm49T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBBaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBUaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgQ2k9T2JqZWN0LmdldFByb3RvdHlwZU9mLE1pPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGVlPSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyksbnI9KHQsZSk9Pntmb3IodmFyIG4gaW4gZSlubih0LG4se2dldDplW25dLGVudW1lcmFibGU6ITB9KX0sa2k9KHQsZSxuLHIpPT57aWYoZSYmdHlwZW9mIGU9PVwib2JqZWN0XCJ8fHR5cGVvZiBlPT1cImZ1bmN0aW9uXCIpZm9yKGxldCBzIG9mIFRpKGUpKSFNaS5jYWxsKHQscykmJnMhPT1uJiZubih0LHMse2dldDooKT0+ZVtzXSxlbnVtZXJhYmxlOiEocj1BaShlLHMpKXx8ci5lbnVtZXJhYmxlfSk7cmV0dXJuIHR9O3ZhciBycj0odCxlLG4pPT4obj10IT1udWxsP0xpKENpKHQpKTp7fSxraShlfHwhdHx8IXQuX19lc01vZHVsZT9ubihuLFwiZGVmYXVsdFwiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpuLHQpKTt2YXIgbGU9ZWUoVT0+e1widXNlIHN0cmljdFwiO3ZhciByZT17QU5DSE9SOlwiJlwiLENPTU1FTlQ6XCIjXCIsVEFHOlwiIVwiLERJUkVDVElWRVNfRU5EOlwiLVwiLERPQ1VNRU5UX0VORDpcIi5cIn0sbHQ9e0FMSUFTOlwiQUxJQVNcIixCTEFOS19MSU5FOlwiQkxBTktfTElORVwiLEJMT0NLX0ZPTERFRDpcIkJMT0NLX0ZPTERFRFwiLEJMT0NLX0xJVEVSQUw6XCJCTE9DS19MSVRFUkFMXCIsQ09NTUVOVDpcIkNPTU1FTlRcIixESVJFQ1RJVkU6XCJESVJFQ1RJVkVcIixET0NVTUVOVDpcIkRPQ1VNRU5UXCIsRkxPV19NQVA6XCJGTE9XX01BUFwiLEZMT1dfU0VROlwiRkxPV19TRVFcIixNQVA6XCJNQVBcIixNQVBfS0VZOlwiTUFQX0tFWVwiLE1BUF9WQUxVRTpcIk1BUF9WQUxVRVwiLFBMQUlOOlwiUExBSU5cIixRVU9URV9ET1VCTEU6XCJRVU9URV9ET1VCTEVcIixRVU9URV9TSU5HTEU6XCJRVU9URV9TSU5HTEVcIixTRVE6XCJTRVFcIixTRVFfSVRFTTpcIlNFUV9JVEVNXCJ9LE5vPVwidGFnOnlhbWwub3JnLDIwMDI6XCIsT289e01BUDpcInRhZzp5YW1sLm9yZywyMDAyOm1hcFwiLFNFUTpcInRhZzp5YW1sLm9yZywyMDAyOnNlcVwiLFNUUjpcInRhZzp5YW1sLm9yZywyMDAyOnN0clwifTtmdW5jdGlvbiBNcyh0KXtsZXQgZT1bMF0sbj10LmluZGV4T2YoYFxuYCk7Zm9yKDtuIT09LTE7KW4rPTEsZS5wdXNoKG4pLG49dC5pbmRleE9mKGBcbmAsbik7cmV0dXJuIGV9ZnVuY3Rpb24ga3ModCl7bGV0IGUsbjtyZXR1cm4gdHlwZW9mIHQ9PVwic3RyaW5nXCI/KGU9TXModCksbj10KTooQXJyYXkuaXNBcnJheSh0KSYmKHQ9dFswXSksdCYmdC5jb250ZXh0JiYodC5saW5lU3RhcnRzfHwodC5saW5lU3RhcnRzPU1zKHQuY29udGV4dC5zcmMpKSxlPXQubGluZVN0YXJ0cyxuPXQuY29udGV4dC5zcmMpKSx7bGluZVN0YXJ0czplLHNyYzpufX1mdW5jdGlvbiBBbih0LGUpe2lmKHR5cGVvZiB0IT1cIm51bWJlclwifHx0PDApcmV0dXJuIG51bGw7bGV0e2xpbmVTdGFydHM6bixzcmM6cn09a3MoZSk7aWYoIW58fCFyfHx0PnIubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7KytpKXtsZXQgbz1uW2ldO2lmKHQ8bylyZXR1cm57bGluZTppLGNvbDp0LW5baS0xXSsxfTtpZih0PT09bylyZXR1cm57bGluZTppKzEsY29sOjF9fWxldCBzPW4ubGVuZ3RoO3JldHVybntsaW5lOnMsY29sOnQtbltzLTFdKzF9fWZ1bmN0aW9uIExvKHQsZSl7bGV0e2xpbmVTdGFydHM6bixzcmM6cn09a3MoZSk7aWYoIW58fCEodD49MSl8fHQ+bi5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IHM9blt0LTFdLGk9blt0XTtmb3IoO2kmJmk+cyYmcltpLTFdPT09YFxuYDspLS1pO3JldHVybiByLnNsaWNlKHMsaSl9ZnVuY3Rpb24gQW8oe3N0YXJ0OnQsZW5kOmV9LG4scj04MCl7bGV0IHM9TG8odC5saW5lLG4pO2lmKCFzKXJldHVybiBudWxsO2xldHtjb2w6aX09dDtpZihzLmxlbmd0aD5yKWlmKGk8PXItMTApcz1zLnN1YnN0cigwLHItMSkrXCJcXHUyMDI2XCI7ZWxzZXtsZXQgZj1NYXRoLnJvdW5kKHIvMik7cy5sZW5ndGg+aStmJiYocz1zLnN1YnN0cigwLGkrZi0xKStcIlxcdTIwMjZcIiksaS09cy5sZW5ndGgtcixzPVwiXFx1MjAyNlwiK3Muc3Vic3RyKDEtcil9bGV0IG89MSxhPVwiXCI7ZSYmKGUubGluZT09PXQubGluZSYmaSsoZS5jb2wtdC5jb2wpPD1yKzE/bz1lLmNvbC10LmNvbDoobz1NYXRoLm1pbihzLmxlbmd0aCsxLHIpLWksYT1cIlxcdTIwMjZcIikpO2xldCBjPWk+MT9cIiBcIi5yZXBlYXQoaS0xKTpcIlwiLGw9XCJeXCIucmVwZWF0KG8pO3JldHVybmAke3N9XG4ke2N9JHtsfSR7YX1gfXZhciBZZT1jbGFzcyB0e3N0YXRpYyBjb3B5KGUpe3JldHVybiBuZXcgdChlLnN0YXJ0LGUuZW5kKX1jb25zdHJ1Y3RvcihlLG4pe3RoaXMuc3RhcnQ9ZSx0aGlzLmVuZD1ufHxlfWlzRW1wdHkoKXtyZXR1cm4gdHlwZW9mIHRoaXMuc3RhcnQhPVwibnVtYmVyXCJ8fCF0aGlzLmVuZHx8dGhpcy5lbmQ8PXRoaXMuc3RhcnR9c2V0T3JpZ1JhbmdlKGUsbil7bGV0e3N0YXJ0OnIsZW5kOnN9PXRoaXM7aWYoZS5sZW5ndGg9PT0wfHxzPD1lWzBdKXJldHVybiB0aGlzLm9yaWdTdGFydD1yLHRoaXMub3JpZ0VuZD1zLG47bGV0IGk9bjtmb3IoO2k8ZS5sZW5ndGgmJiEoZVtpXT5yKTspKytpO3RoaXMub3JpZ1N0YXJ0PXIraTtsZXQgbz1pO2Zvcig7aTxlLmxlbmd0aCYmIShlW2ldPj1zKTspKytpO3JldHVybiB0aGlzLm9yaWdFbmQ9cytpLG99fSxzZT1jbGFzcyB0e3N0YXRpYyBhZGRTdHJpbmdUZXJtaW5hdG9yKGUsbixyKXtpZihyW3IubGVuZ3RoLTFdPT09YFxuYClyZXR1cm4gcjtsZXQgcz10LmVuZE9mV2hpdGVTcGFjZShlLG4pO3JldHVybiBzPj1lLmxlbmd0aHx8ZVtzXT09PWBcbmA/citgXG5gOnJ9c3RhdGljIGF0RG9jdW1lbnRCb3VuZGFyeShlLG4scil7bGV0IHM9ZVtuXTtpZighcylyZXR1cm4hMDtsZXQgaT1lW24tMV07aWYoaSYmaSE9PWBcbmApcmV0dXJuITE7aWYocil7aWYocyE9PXIpcmV0dXJuITF9ZWxzZSBpZihzIT09cmUuRElSRUNUSVZFU19FTkQmJnMhPT1yZS5ET0NVTUVOVF9FTkQpcmV0dXJuITE7bGV0IG89ZVtuKzFdLGE9ZVtuKzJdO2lmKG8hPT1zfHxhIT09cylyZXR1cm4hMTtsZXQgYz1lW24rM107cmV0dXJuIWN8fGM9PT1gXG5gfHxjPT09XCJcdFwifHxjPT09XCIgXCJ9c3RhdGljIGVuZE9mSWRlbnRpZmllcihlLG4pe2xldCByPWVbbl0scz1yPT09XCI8XCIsaT1zP1tgXG5gLFwiXHRcIixcIiBcIixcIj5cIl06W2BcbmAsXCJcdFwiLFwiIFwiLFwiW1wiLFwiXVwiLFwie1wiLFwifVwiLFwiLFwiXTtmb3IoO3ImJmkuaW5kZXhPZihyKT09PS0xOylyPWVbbis9MV07cmV0dXJuIHMmJnI9PT1cIj5cIiYmKG4rPTEpLG59c3RhdGljIGVuZE9mSW5kZW50KGUsbil7bGV0IHI9ZVtuXTtmb3IoO3I9PT1cIiBcIjspcj1lW24rPTFdO3JldHVybiBufXN0YXRpYyBlbmRPZkxpbmUoZSxuKXtsZXQgcj1lW25dO2Zvcig7ciYmciE9PWBcbmA7KXI9ZVtuKz0xXTtyZXR1cm4gbn1zdGF0aWMgZW5kT2ZXaGl0ZVNwYWNlKGUsbil7bGV0IHI9ZVtuXTtmb3IoO3I9PT1cIlx0XCJ8fHI9PT1cIiBcIjspcj1lW24rPTFdO3JldHVybiBufXN0YXRpYyBzdGFydE9mTGluZShlLG4pe2xldCByPWVbbi0xXTtpZihyPT09YFxuYClyZXR1cm4gbjtmb3IoO3ImJnIhPT1gXG5gOylyPWVbbi09MV07cmV0dXJuIG4rMX1zdGF0aWMgZW5kT2ZCbG9ja0luZGVudChlLG4scil7bGV0IHM9dC5lbmRPZkluZGVudChlLHIpO2lmKHM+cituKXJldHVybiBzO3tsZXQgaT10LmVuZE9mV2hpdGVTcGFjZShlLHMpLG89ZVtpXTtpZighb3x8bz09PWBcbmApcmV0dXJuIGl9cmV0dXJuIG51bGx9c3RhdGljIGF0QmxhbmsoZSxuLHIpe2xldCBzPWVbbl07cmV0dXJuIHM9PT1gXG5gfHxzPT09XCJcdFwifHxzPT09XCIgXCJ8fHImJiFzfXN0YXRpYyBuZXh0Tm9kZUlzSW5kZW50ZWQoZSxuLHIpe3JldHVybiFlfHxuPDA/ITE6bj4wPyEwOnImJmU9PT1cIi1cIn1zdGF0aWMgbm9ybWFsaXplT2Zmc2V0KGUsbil7bGV0IHI9ZVtuXTtyZXR1cm4gcj9yIT09YFxuYCYmZVtuLTFdPT09YFxuYD9uLTE6dC5lbmRPZldoaXRlU3BhY2UoZSxuKTpufXN0YXRpYyBmb2xkTmV3bGluZShlLG4scil7bGV0IHM9MCxpPSExLG89XCJcIixhPWVbbisxXTtmb3IoO2E9PT1cIiBcInx8YT09PVwiXHRcInx8YT09PWBcbmA7KXtzd2l0Y2goYSl7Y2FzZWBcbmA6cz0wLG4rPTEsbys9YFxuYDticmVhaztjYXNlXCJcdFwiOnM8PXImJihpPSEwKSxuPXQuZW5kT2ZXaGl0ZVNwYWNlKGUsbisyKS0xO2JyZWFrO2Nhc2VcIiBcIjpzKz0xLG4rPTE7YnJlYWt9YT1lW24rMV19cmV0dXJuIG98fChvPVwiIFwiKSxhJiZzPD1yJiYoaT0hMCkse2ZvbGQ6byxvZmZzZXQ6bixlcnJvcjppfX1jb25zdHJ1Y3RvcihlLG4scil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJjb250ZXh0XCIse3ZhbHVlOnJ8fG51bGwsd3JpdGFibGU6ITB9KSx0aGlzLmVycm9yPW51bGwsdGhpcy5yYW5nZT1udWxsLHRoaXMudmFsdWVSYW5nZT1udWxsLHRoaXMucHJvcHM9bnx8W10sdGhpcy50eXBlPWUsdGhpcy52YWx1ZT1udWxsfWdldFByb3BWYWx1ZShlLG4scil7aWYoIXRoaXMuY29udGV4dClyZXR1cm4gbnVsbDtsZXR7c3JjOnN9PXRoaXMuY29udGV4dCxpPXRoaXMucHJvcHNbZV07cmV0dXJuIGkmJnNbaS5zdGFydF09PT1uP3Muc2xpY2UoaS5zdGFydCsocj8xOjApLGkuZW5kKTpudWxsfWdldCBhbmNob3IoKXtmb3IobGV0IGU9MDtlPHRoaXMucHJvcHMubGVuZ3RoOysrZSl7bGV0IG49dGhpcy5nZXRQcm9wVmFsdWUoZSxyZS5BTkNIT1IsITApO2lmKG4hPW51bGwpcmV0dXJuIG59cmV0dXJuIG51bGx9Z2V0IGNvbW1lbnQoKXtsZXQgZT1bXTtmb3IobGV0IG49MDtuPHRoaXMucHJvcHMubGVuZ3RoOysrbil7bGV0IHI9dGhpcy5nZXRQcm9wVmFsdWUobixyZS5DT01NRU5ULCEwKTtyIT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGUubGVuZ3RoPjA/ZS5qb2luKGBcbmApOm51bGx9Y29tbWVudEhhc1JlcXVpcmVkV2hpdGVzcGFjZShlKXtsZXR7c3JjOm59PXRoaXMuY29udGV4dDtpZih0aGlzLmhlYWRlciYmZT09PXRoaXMuaGVhZGVyLmVuZHx8IXRoaXMudmFsdWVSYW5nZSlyZXR1cm4hMTtsZXR7ZW5kOnJ9PXRoaXMudmFsdWVSYW5nZTtyZXR1cm4gZSE9PXJ8fHQuYXRCbGFuayhuLHItMSl9Z2V0IGhhc0NvbW1lbnQoKXtpZih0aGlzLmNvbnRleHQpe2xldHtzcmM6ZX09dGhpcy5jb250ZXh0O2ZvcihsZXQgbj0wO248dGhpcy5wcm9wcy5sZW5ndGg7KytuKWlmKGVbdGhpcy5wcm9wc1tuXS5zdGFydF09PT1yZS5DT01NRU5UKXJldHVybiEwfXJldHVybiExfWdldCBoYXNQcm9wcygpe2lmKHRoaXMuY29udGV4dCl7bGV0e3NyYzplfT10aGlzLmNvbnRleHQ7Zm9yKGxldCBuPTA7bjx0aGlzLnByb3BzLmxlbmd0aDsrK24paWYoZVt0aGlzLnByb3BzW25dLnN0YXJ0XSE9PXJlLkNPTU1FTlQpcmV0dXJuITB9cmV0dXJuITF9Z2V0IGluY2x1ZGVzVHJhaWxpbmdMaW5lcygpe3JldHVybiExfWdldCBqc29uTGlrZSgpe3JldHVybltsdC5GTE9XX01BUCxsdC5GTE9XX1NFUSxsdC5RVU9URV9ET1VCTEUsbHQuUVVPVEVfU0lOR0xFXS5pbmRleE9mKHRoaXMudHlwZSkhPT0tMX1nZXQgcmFuZ2VBc0xpbmVQb3MoKXtpZighdGhpcy5yYW5nZXx8IXRoaXMuY29udGV4dClyZXR1cm47bGV0IGU9QW4odGhpcy5yYW5nZS5zdGFydCx0aGlzLmNvbnRleHQucm9vdCk7aWYoIWUpcmV0dXJuO2xldCBuPUFuKHRoaXMucmFuZ2UuZW5kLHRoaXMuY29udGV4dC5yb290KTtyZXR1cm57c3RhcnQ6ZSxlbmQ6bn19Z2V0IHJhd1ZhbHVlKCl7aWYoIXRoaXMudmFsdWVSYW5nZXx8IXRoaXMuY29udGV4dClyZXR1cm4gbnVsbDtsZXR7c3RhcnQ6ZSxlbmQ6bn09dGhpcy52YWx1ZVJhbmdlO3JldHVybiB0aGlzLmNvbnRleHQuc3JjLnNsaWNlKGUsbil9Z2V0IHRhZygpe2ZvcihsZXQgZT0wO2U8dGhpcy5wcm9wcy5sZW5ndGg7KytlKXtsZXQgbj10aGlzLmdldFByb3BWYWx1ZShlLHJlLlRBRywhMSk7aWYobiE9bnVsbCl7aWYoblsxXT09PVwiPFwiKXJldHVybnt2ZXJiYXRpbTpuLnNsaWNlKDIsLTEpfTt7bGV0W3IscyxpXT1uLm1hdGNoKC9eKC4qISkoW14hXSopJC8pO3JldHVybntoYW5kbGU6cyxzdWZmaXg6aX19fX1yZXR1cm4gbnVsbH1nZXQgdmFsdWVSYW5nZUNvbnRhaW5zTmV3bGluZSgpe2lmKCF0aGlzLnZhbHVlUmFuZ2V8fCF0aGlzLmNvbnRleHQpcmV0dXJuITE7bGV0e3N0YXJ0OmUsZW5kOm59PXRoaXMudmFsdWVSYW5nZSx7c3JjOnJ9PXRoaXMuY29udGV4dDtmb3IobGV0IHM9ZTtzPG47KytzKWlmKHJbc109PT1gXG5gKXJldHVybiEwO3JldHVybiExfXBhcnNlQ29tbWVudChlKXtsZXR7c3JjOm59PXRoaXMuY29udGV4dDtpZihuW2VdPT09cmUuQ09NTUVOVCl7bGV0IHI9dC5lbmRPZkxpbmUobixlKzEpLHM9bmV3IFllKGUscik7cmV0dXJuIHRoaXMucHJvcHMucHVzaChzKSxyfXJldHVybiBlfXNldE9yaWdSYW5nZXMoZSxuKXtyZXR1cm4gdGhpcy5yYW5nZSYmKG49dGhpcy5yYW5nZS5zZXRPcmlnUmFuZ2UoZSxuKSksdGhpcy52YWx1ZVJhbmdlJiZ0aGlzLnZhbHVlUmFuZ2Uuc2V0T3JpZ1JhbmdlKGUsbiksdGhpcy5wcm9wcy5mb3JFYWNoKHI9PnIuc2V0T3JpZ1JhbmdlKGUsbikpLG59dG9TdHJpbmcoKXtsZXR7Y29udGV4dDp7c3JjOmV9LHJhbmdlOm4sdmFsdWU6cn09dGhpcztpZihyIT1udWxsKXJldHVybiByO2xldCBzPWUuc2xpY2Uobi5zdGFydCxuLmVuZCk7cmV0dXJuIHQuYWRkU3RyaW5nVGVybWluYXRvcihlLG4uZW5kLHMpfX0sZGU9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLG4scil7aWYoIXJ8fCEobiBpbnN0YW5jZW9mIHNlKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXJndW1lbnRzIGZvciBuZXcgJHtlfWApO3N1cGVyKCksdGhpcy5uYW1lPWUsdGhpcy5tZXNzYWdlPXIsdGhpcy5zb3VyY2U9bn1tYWtlUHJldHR5KCl7aWYoIXRoaXMuc291cmNlKXJldHVybjt0aGlzLm5vZGVUeXBlPXRoaXMuc291cmNlLnR5cGU7bGV0IGU9dGhpcy5zb3VyY2UuY29udGV4dCYmdGhpcy5zb3VyY2UuY29udGV4dC5yb290O2lmKHR5cGVvZiB0aGlzLm9mZnNldD09XCJudW1iZXJcIil7dGhpcy5yYW5nZT1uZXcgWWUodGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQrMSk7bGV0IG49ZSYmQW4odGhpcy5vZmZzZXQsZSk7aWYobil7bGV0IHI9e2xpbmU6bi5saW5lLGNvbDpuLmNvbCsxfTt0aGlzLmxpbmVQb3M9e3N0YXJ0Om4sZW5kOnJ9fWRlbGV0ZSB0aGlzLm9mZnNldH1lbHNlIHRoaXMucmFuZ2U9dGhpcy5zb3VyY2UucmFuZ2UsdGhpcy5saW5lUG9zPXRoaXMuc291cmNlLnJhbmdlQXNMaW5lUG9zO2lmKHRoaXMubGluZVBvcyl7bGV0e2xpbmU6bixjb2w6cn09dGhpcy5saW5lUG9zLnN0YXJ0O3RoaXMubWVzc2FnZSs9YCBhdCBsaW5lICR7bn0sIGNvbHVtbiAke3J9YDtsZXQgcz1lJiZBbyh0aGlzLmxpbmVQb3MsZSk7cyYmKHRoaXMubWVzc2FnZSs9YDpcblxuJHtzfVxuYCl9ZGVsZXRlIHRoaXMuc291cmNlfX0sVG49Y2xhc3MgZXh0ZW5kcyBkZXtjb25zdHJ1Y3RvcihlLG4pe3N1cGVyKFwiWUFNTFJlZmVyZW5jZUVycm9yXCIsZSxuKX19LGZ0PWNsYXNzIGV4dGVuZHMgZGV7Y29uc3RydWN0b3IoZSxuKXtzdXBlcihcIllBTUxTZW1hbnRpY0Vycm9yXCIsZSxuKX19LENuPWNsYXNzIGV4dGVuZHMgZGV7Y29uc3RydWN0b3IoZSxuKXtzdXBlcihcIllBTUxTeW50YXhFcnJvclwiLGUsbil9fSxNbj1jbGFzcyBleHRlbmRzIGRle2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoXCJZQU1MV2FybmluZ1wiLGUsbil9fTtmdW5jdGlvbiBUbyh0LGUsbil7cmV0dXJuIGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1uLHR9dmFyIGtuPWNsYXNzIHQgZXh0ZW5kcyBzZXtzdGF0aWMgZW5kT2ZMaW5lKGUsbixyKXtsZXQgcz1lW25dLGk9bjtmb3IoO3MmJnMhPT1gXG5gJiYhKHImJihzPT09XCJbXCJ8fHM9PT1cIl1cInx8cz09PVwie1wifHxzPT09XCJ9XCJ8fHM9PT1cIixcIikpOyl7bGV0IG89ZVtpKzFdO2lmKHM9PT1cIjpcIiYmKCFvfHxvPT09YFxuYHx8bz09PVwiXHRcInx8bz09PVwiIFwifHxyJiZvPT09XCIsXCIpfHwocz09PVwiIFwifHxzPT09XCJcdFwiKSYmbz09PVwiI1wiKWJyZWFrO2krPTEscz1vfXJldHVybiBpfWdldCBzdHJWYWx1ZSgpe2lmKCF0aGlzLnZhbHVlUmFuZ2V8fCF0aGlzLmNvbnRleHQpcmV0dXJuIG51bGw7bGV0e3N0YXJ0OmUsZW5kOm59PXRoaXMudmFsdWVSYW5nZSx7c3JjOnJ9PXRoaXMuY29udGV4dCxzPXJbbi0xXTtmb3IoO2U8biYmKHM9PT1gXG5gfHxzPT09XCJcdFwifHxzPT09XCIgXCIpOylzPXJbLS1uLTFdO2xldCBpPVwiXCI7Zm9yKGxldCBhPWU7YTxuOysrYSl7bGV0IGM9clthXTtpZihjPT09YFxuYCl7bGV0e2ZvbGQ6bCxvZmZzZXQ6Zn09c2UuZm9sZE5ld2xpbmUocixhLC0xKTtpKz1sLGE9Zn1lbHNlIGlmKGM9PT1cIiBcInx8Yz09PVwiXHRcIil7bGV0IGw9YSxmPXJbYSsxXTtmb3IoO2E8biYmKGY9PT1cIiBcInx8Zj09PVwiXHRcIik7KWErPTEsZj1yW2ErMV07ZiE9PWBcbmAmJihpKz1hPmw/ci5zbGljZShsLGErMSk6Yyl9ZWxzZSBpKz1jfWxldCBvPXJbZV07c3dpdGNoKG8pe2Nhc2VcIlx0XCI6e2xldCBhPVwiUGxhaW4gdmFsdWUgY2Fubm90IHN0YXJ0IHdpdGggYSB0YWIgY2hhcmFjdGVyXCI7cmV0dXJue2Vycm9yczpbbmV3IGZ0KHRoaXMsYSldLHN0cjppfX1jYXNlXCJAXCI6Y2FzZVwiYFwiOntsZXQgYT1gUGxhaW4gdmFsdWUgY2Fubm90IHN0YXJ0IHdpdGggcmVzZXJ2ZWQgY2hhcmFjdGVyICR7b31gO3JldHVybntlcnJvcnM6W25ldyBmdCh0aGlzLGEpXSxzdHI6aX19ZGVmYXVsdDpyZXR1cm4gaX19cGFyc2VCbG9ja1ZhbHVlKGUpe2xldHtpbmRlbnQ6bixpbkZsb3c6cixzcmM6c309dGhpcy5jb250ZXh0LGk9ZSxvPWU7Zm9yKGxldCBhPXNbaV07YT09PWBcbmAmJiFzZS5hdERvY3VtZW50Qm91bmRhcnkocyxpKzEpO2E9c1tpXSl7bGV0IGM9c2UuZW5kT2ZCbG9ja0luZGVudChzLG4saSsxKTtpZihjPT09bnVsbHx8c1tjXT09PVwiI1wiKWJyZWFrO3NbY109PT1gXG5gP2k9Yzoobz10LmVuZE9mTGluZShzLGMsciksaT1vKX1yZXR1cm4gdGhpcy52YWx1ZVJhbmdlLmlzRW1wdHkoKSYmKHRoaXMudmFsdWVSYW5nZS5zdGFydD1lKSx0aGlzLnZhbHVlUmFuZ2UuZW5kPW8sb31wYXJzZShlLG4pe3RoaXMuY29udGV4dD1lO2xldHtpbkZsb3c6cixzcmM6c309ZSxpPW4sbz1zW2ldO3JldHVybiBvJiZvIT09XCIjXCImJm8hPT1gXG5gJiYoaT10LmVuZE9mTGluZShzLG4scikpLHRoaXMudmFsdWVSYW5nZT1uZXcgWWUobixpKSxpPXNlLmVuZE9mV2hpdGVTcGFjZShzLGkpLGk9dGhpcy5wYXJzZUNvbW1lbnQoaSksKCF0aGlzLmhhc0NvbW1lbnR8fHRoaXMudmFsdWVSYW5nZS5pc0VtcHR5KCkpJiYoaT10aGlzLnBhcnNlQmxvY2tWYWx1ZShpKSksaX19O1UuQ2hhcj1yZTtVLk5vZGU9c2U7VS5QbGFpblZhbHVlPWtuO1UuUmFuZ2U9WWU7VS5UeXBlPWx0O1UuWUFNTEVycm9yPWRlO1UuWUFNTFJlZmVyZW5jZUVycm9yPVRuO1UuWUFNTFNlbWFudGljRXJyb3I9ZnQ7VS5ZQU1MU3ludGF4RXJyb3I9Q247VS5ZQU1MV2FybmluZz1NbjtVLl9kZWZpbmVQcm9wZXJ0eT1UbztVLmRlZmF1bHRUYWdQcmVmaXg9Tm87VS5kZWZhdWx0VGFncz1Pb30pO3ZhciBJcz1lZSh2cz0+e1widXNlIHN0cmljdFwiO3ZhciB1PWxlKCksRWU9Y2xhc3MgZXh0ZW5kcyB1Lk5vZGV7Y29uc3RydWN0b3IoKXtzdXBlcih1LlR5cGUuQkxBTktfTElORSl9Z2V0IGluY2x1ZGVzVHJhaWxpbmdMaW5lcygpe3JldHVybiEwfXBhcnNlKGUsbil7cmV0dXJuIHRoaXMuY29udGV4dD1lLHRoaXMucmFuZ2U9bmV3IHUuUmFuZ2UobixuKzEpLG4rMX19LHV0PWNsYXNzIGV4dGVuZHMgdS5Ob2Rle2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoZSxuKSx0aGlzLm5vZGU9bnVsbH1nZXQgaW5jbHVkZXNUcmFpbGluZ0xpbmVzKCl7cmV0dXJuISF0aGlzLm5vZGUmJnRoaXMubm9kZS5pbmNsdWRlc1RyYWlsaW5nTGluZXN9cGFyc2UoZSxuKXt0aGlzLmNvbnRleHQ9ZTtsZXR7cGFyc2VOb2RlOnIsc3JjOnN9PWUse2F0TGluZVN0YXJ0OmksbGluZVN0YXJ0Om99PWU7IWkmJnRoaXMudHlwZT09PXUuVHlwZS5TRVFfSVRFTSYmKHRoaXMuZXJyb3I9bmV3IHUuWUFNTFNlbWFudGljRXJyb3IodGhpcyxcIlNlcXVlbmNlIGl0ZW1zIG11c3Qgbm90IGhhdmUgcHJlY2VkaW5nIGNvbnRlbnQgb24gdGhlIHNhbWUgbGluZVwiKSk7bGV0IGE9aT9uLW86ZS5pbmRlbnQsYz11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHMsbisxKSxsPXNbY10sZj1sPT09XCIjXCIsbT1bXSxkPW51bGw7Zm9yKDtsPT09YFxuYHx8bD09PVwiI1wiOyl7aWYobD09PVwiI1wiKXtsZXQgaD11Lk5vZGUuZW5kT2ZMaW5lKHMsYysxKTttLnB1c2gobmV3IHUuUmFuZ2UoYyxoKSksYz1ofWVsc2V7aT0hMCxvPWMrMTtsZXQgaD11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHMsbyk7c1toXT09PWBcbmAmJm0ubGVuZ3RoPT09MCYmKGQ9bmV3IEVlLG89ZC5wYXJzZSh7c3JjOnN9LG8pKSxjPXUuTm9kZS5lbmRPZkluZGVudChzLG8pfWw9c1tjXX1pZih1Lk5vZGUubmV4dE5vZGVJc0luZGVudGVkKGwsYy0obythKSx0aGlzLnR5cGUhPT11LlR5cGUuU0VRX0lURU0pP3RoaXMubm9kZT1yKHthdExpbmVTdGFydDppLGluQ29sbGVjdGlvbjohMSxpbmRlbnQ6YSxsaW5lU3RhcnQ6byxwYXJlbnQ6dGhpc30sYyk6bCYmbz5uKzEmJihjPW8tMSksdGhpcy5ub2RlKXtpZihkKXtsZXQgaD1lLnBhcmVudC5pdGVtc3x8ZS5wYXJlbnQuY29udGVudHM7aCYmaC5wdXNoKGQpfW0ubGVuZ3RoJiZBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLnByb3BzLG0pLGM9dGhpcy5ub2RlLnJhbmdlLmVuZH1lbHNlIGlmKGYpe2xldCBoPW1bMF07dGhpcy5wcm9wcy5wdXNoKGgpLGM9aC5lbmR9ZWxzZSBjPXUuTm9kZS5lbmRPZkxpbmUocyxuKzEpO2xldCB5PXRoaXMubm9kZT90aGlzLm5vZGUudmFsdWVSYW5nZS5lbmQ6YztyZXR1cm4gdGhpcy52YWx1ZVJhbmdlPW5ldyB1LlJhbmdlKG4seSksY31zZXRPcmlnUmFuZ2VzKGUsbil7cmV0dXJuIG49c3VwZXIuc2V0T3JpZ1JhbmdlcyhlLG4pLHRoaXMubm9kZT90aGlzLm5vZGUuc2V0T3JpZ1JhbmdlcyhlLG4pOm59dG9TdHJpbmcoKXtsZXR7Y29udGV4dDp7c3JjOmV9LG5vZGU6bixyYW5nZTpyLHZhbHVlOnN9PXRoaXM7aWYocyE9bnVsbClyZXR1cm4gcztsZXQgaT1uP2Uuc2xpY2Uoci5zdGFydCxuLnJhbmdlLnN0YXJ0KStTdHJpbmcobik6ZS5zbGljZShyLnN0YXJ0LHIuZW5kKTtyZXR1cm4gdS5Ob2RlLmFkZFN0cmluZ1Rlcm1pbmF0b3IoZSxyLmVuZCxpKX19LHllPWNsYXNzIGV4dGVuZHMgdS5Ob2Rle2NvbnN0cnVjdG9yKCl7c3VwZXIodS5UeXBlLkNPTU1FTlQpfXBhcnNlKGUsbil7dGhpcy5jb250ZXh0PWU7bGV0IHI9dGhpcy5wYXJzZUNvbW1lbnQobik7cmV0dXJuIHRoaXMucmFuZ2U9bmV3IHUuUmFuZ2UobixyKSxyfX07ZnVuY3Rpb24gdm4odCl7bGV0IGU9dDtmb3IoO2UgaW5zdGFuY2VvZiB1dDspZT1lLm5vZGU7aWYoIShlIGluc3RhbmNlb2YgQnQpKXJldHVybiBudWxsO2xldCBuPWUuaXRlbXMubGVuZ3RoLHI9LTE7Zm9yKGxldCBvPW4tMTtvPj0wOy0tbyl7bGV0IGE9ZS5pdGVtc1tvXTtpZihhLnR5cGU9PT11LlR5cGUuQ09NTUVOVCl7bGV0e2luZGVudDpjLGxpbmVTdGFydDpsfT1hLmNvbnRleHQ7aWYoYz4wJiZhLnJhbmdlLnN0YXJ0Pj1sK2MpYnJlYWs7cj1vfWVsc2UgaWYoYS50eXBlPT09dS5UeXBlLkJMQU5LX0xJTkUpcj1vO2Vsc2UgYnJlYWt9aWYocj09PS0xKXJldHVybiBudWxsO2xldCBzPWUuaXRlbXMuc3BsaWNlKHIsbi1yKSxpPXNbMF0ucmFuZ2Uuc3RhcnQ7Zm9yKDtlLnJhbmdlLmVuZD1pLGUudmFsdWVSYW5nZSYmZS52YWx1ZVJhbmdlLmVuZD5pJiYoZS52YWx1ZVJhbmdlLmVuZD1pKSxlIT09dDspZT1lLmNvbnRleHQucGFyZW50O3JldHVybiBzfXZhciBCdD1jbGFzcyB0IGV4dGVuZHMgdS5Ob2Rle3N0YXRpYyBuZXh0Q29udGVudEhhc0luZGVudChlLG4scil7bGV0IHM9dS5Ob2RlLmVuZE9mTGluZShlLG4pKzE7bj11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKGUscyk7bGV0IGk9ZVtuXTtyZXR1cm4gaT9uPj1zK3I/ITA6aSE9PVwiI1wiJiZpIT09YFxuYD8hMTp0Lm5leHRDb250ZW50SGFzSW5kZW50KGUsbixyKTohMX1jb25zdHJ1Y3RvcihlKXtzdXBlcihlLnR5cGU9PT11LlR5cGUuU0VRX0lURU0/dS5UeXBlLlNFUTp1LlR5cGUuTUFQKTtmb3IobGV0IHI9ZS5wcm9wcy5sZW5ndGgtMTtyPj0wOy0tcilpZihlLnByb3BzW3JdLnN0YXJ0PGUuY29udGV4dC5saW5lU3RhcnQpe3RoaXMucHJvcHM9ZS5wcm9wcy5zbGljZSgwLHIrMSksZS5wcm9wcz1lLnByb3BzLnNsaWNlKHIrMSk7bGV0IHM9ZS5wcm9wc1swXXx8ZS52YWx1ZVJhbmdlO2UucmFuZ2Uuc3RhcnQ9cy5zdGFydDticmVha310aGlzLml0ZW1zPVtlXTtsZXQgbj12bihlKTtuJiZBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLml0ZW1zLG4pfWdldCBpbmNsdWRlc1RyYWlsaW5nTGluZXMoKXtyZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGg+MH1wYXJzZShlLG4pe3RoaXMuY29udGV4dD1lO2xldHtwYXJzZU5vZGU6cixzcmM6c309ZSxpPXUuTm9kZS5zdGFydE9mTGluZShzLG4pLG89dGhpcy5pdGVtc1swXTtvLmNvbnRleHQucGFyZW50PXRoaXMsdGhpcy52YWx1ZVJhbmdlPXUuUmFuZ2UuY29weShvLnZhbHVlUmFuZ2UpO2xldCBhPW8ucmFuZ2Uuc3RhcnQtby5jb250ZXh0LmxpbmVTdGFydCxjPW47Yz11Lk5vZGUubm9ybWFsaXplT2Zmc2V0KHMsYyk7bGV0IGw9c1tjXSxmPXUuTm9kZS5lbmRPZldoaXRlU3BhY2UocyxpKT09PWMsbT0hMTtmb3IoO2w7KXtmb3IoO2w9PT1gXG5gfHxsPT09XCIjXCI7KXtpZihmJiZsPT09YFxuYCYmIW0pe2xldCBoPW5ldyBFZTtpZihjPWgucGFyc2Uoe3NyYzpzfSxjKSx0aGlzLnZhbHVlUmFuZ2UuZW5kPWMsYz49cy5sZW5ndGgpe2w9bnVsbDticmVha310aGlzLml0ZW1zLnB1c2goaCksYy09MX1lbHNlIGlmKGw9PT1cIiNcIil7aWYoYzxpK2EmJiF0Lm5leHRDb250ZW50SGFzSW5kZW50KHMsYyxhKSlyZXR1cm4gYztsZXQgaD1uZXcgeWU7aWYoYz1oLnBhcnNlKHtpbmRlbnQ6YSxsaW5lU3RhcnQ6aSxzcmM6c30sYyksdGhpcy5pdGVtcy5wdXNoKGgpLHRoaXMudmFsdWVSYW5nZS5lbmQ9YyxjPj1zLmxlbmd0aCl7bD1udWxsO2JyZWFrfX1pZihpPWMrMSxjPXUuTm9kZS5lbmRPZkluZGVudChzLGkpLHUuTm9kZS5hdEJsYW5rKHMsYykpe2xldCBoPXUuTm9kZS5lbmRPZldoaXRlU3BhY2UocyxjKSxnPXNbaF07KCFnfHxnPT09YFxuYHx8Zz09PVwiI1wiKSYmKGM9aCl9bD1zW2NdLGY9ITB9aWYoIWwpYnJlYWs7aWYoYyE9PWkrYSYmKGZ8fGwhPT1cIjpcIikpe2lmKGM8aSthKXtpPm4mJihjPWkpO2JyZWFrfWVsc2UgaWYoIXRoaXMuZXJyb3Ipe2xldCBoPVwiQWxsIGNvbGxlY3Rpb24gaXRlbXMgbXVzdCBzdGFydCBhdCB0aGUgc2FtZSBjb2x1bW5cIjt0aGlzLmVycm9yPW5ldyB1LllBTUxTeW50YXhFcnJvcih0aGlzLGgpfX1pZihvLnR5cGU9PT11LlR5cGUuU0VRX0lURU0pe2lmKGwhPT1cIi1cIil7aT5uJiYoYz1pKTticmVha319ZWxzZSBpZihsPT09XCItXCImJiF0aGlzLmVycm9yKXtsZXQgaD1zW2MrMV07aWYoIWh8fGg9PT1gXG5gfHxoPT09XCJcdFwifHxoPT09XCIgXCIpe2xldCBnPVwiQSBjb2xsZWN0aW9uIGNhbm5vdCBiZSBib3RoIGEgbWFwcGluZyBhbmQgYSBzZXF1ZW5jZVwiO3RoaXMuZXJyb3I9bmV3IHUuWUFNTFN5bnRheEVycm9yKHRoaXMsZyl9fWxldCBkPXIoe2F0TGluZVN0YXJ0OmYsaW5Db2xsZWN0aW9uOiEwLGluZGVudDphLGxpbmVTdGFydDppLHBhcmVudDp0aGlzfSxjKTtpZighZClyZXR1cm4gYztpZih0aGlzLml0ZW1zLnB1c2goZCksdGhpcy52YWx1ZVJhbmdlLmVuZD1kLnZhbHVlUmFuZ2UuZW5kLGM9dS5Ob2RlLm5vcm1hbGl6ZU9mZnNldChzLGQucmFuZ2UuZW5kKSxsPXNbY10sZj0hMSxtPWQuaW5jbHVkZXNUcmFpbGluZ0xpbmVzLGwpe2xldCBoPWMtMSxnPXNbaF07Zm9yKDtnPT09XCIgXCJ8fGc9PT1cIlx0XCI7KWc9c1stLWhdO2c9PT1gXG5gJiYoaT1oKzEsZj0hMCl9bGV0IHk9dm4oZCk7eSYmQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGhpcy5pdGVtcyx5KX1yZXR1cm4gY31zZXRPcmlnUmFuZ2VzKGUsbil7cmV0dXJuIG49c3VwZXIuc2V0T3JpZ1JhbmdlcyhlLG4pLHRoaXMuaXRlbXMuZm9yRWFjaChyPT57bj1yLnNldE9yaWdSYW5nZXMoZSxuKX0pLG59dG9TdHJpbmcoKXtsZXR7Y29udGV4dDp7c3JjOmV9LGl0ZW1zOm4scmFuZ2U6cix2YWx1ZTpzfT10aGlzO2lmKHMhPW51bGwpcmV0dXJuIHM7bGV0IGk9ZS5zbGljZShyLnN0YXJ0LG5bMF0ucmFuZ2Uuc3RhcnQpK1N0cmluZyhuWzBdKTtmb3IobGV0IG89MTtvPG4ubGVuZ3RoOysrbyl7bGV0IGE9bltvXSx7YXRMaW5lU3RhcnQ6YyxpbmRlbnQ6bH09YS5jb250ZXh0O2lmKGMpZm9yKGxldCBmPTA7ZjxsOysrZilpKz1cIiBcIjtpKz1TdHJpbmcoYSl9cmV0dXJuIHUuTm9kZS5hZGRTdHJpbmdUZXJtaW5hdG9yKGUsci5lbmQsaSl9fSxJbj1jbGFzcyBleHRlbmRzIHUuTm9kZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKHUuVHlwZS5ESVJFQ1RJVkUpLHRoaXMubmFtZT1udWxsfWdldCBwYXJhbWV0ZXJzKCl7bGV0IGU9dGhpcy5yYXdWYWx1ZTtyZXR1cm4gZT9lLnRyaW0oKS5zcGxpdCgvWyBcXHRdKy8pOltdfXBhcnNlTmFtZShlKXtsZXR7c3JjOm59PXRoaXMuY29udGV4dCxyPWUscz1uW3JdO2Zvcig7cyYmcyE9PWBcbmAmJnMhPT1cIlx0XCImJnMhPT1cIiBcIjspcz1uW3IrPTFdO3JldHVybiB0aGlzLm5hbWU9bi5zbGljZShlLHIpLHJ9cGFyc2VQYXJhbWV0ZXJzKGUpe2xldHtzcmM6bn09dGhpcy5jb250ZXh0LHI9ZSxzPW5bcl07Zm9yKDtzJiZzIT09YFxuYCYmcyE9PVwiI1wiOylzPW5bcis9MV07cmV0dXJuIHRoaXMudmFsdWVSYW5nZT1uZXcgdS5SYW5nZShlLHIpLHJ9cGFyc2UoZSxuKXt0aGlzLmNvbnRleHQ9ZTtsZXQgcj10aGlzLnBhcnNlTmFtZShuKzEpO3JldHVybiByPXRoaXMucGFyc2VQYXJhbWV0ZXJzKHIpLHI9dGhpcy5wYXJzZUNvbW1lbnQociksdGhpcy5yYW5nZT1uZXcgdS5SYW5nZShuLHIpLHJ9fSxQbj1jbGFzcyB0IGV4dGVuZHMgdS5Ob2Rle3N0YXRpYyBzdGFydENvbW1lbnRPckVuZEJsYW5rTGluZShlLG4pe2xldCByPXUuTm9kZS5lbmRPZldoaXRlU3BhY2UoZSxuKSxzPWVbcl07cmV0dXJuIHM9PT1cIiNcInx8cz09PWBcbmA/cjpufWNvbnN0cnVjdG9yKCl7c3VwZXIodS5UeXBlLkRPQ1VNRU5UKSx0aGlzLmRpcmVjdGl2ZXM9bnVsbCx0aGlzLmNvbnRlbnRzPW51bGwsdGhpcy5kaXJlY3RpdmVzRW5kTWFya2VyPW51bGwsdGhpcy5kb2N1bWVudEVuZE1hcmtlcj1udWxsfXBhcnNlRGlyZWN0aXZlcyhlKXtsZXR7c3JjOm59PXRoaXMuY29udGV4dDt0aGlzLmRpcmVjdGl2ZXM9W107bGV0IHI9ITAscz0hMSxpPWU7Zm9yKDshdS5Ob2RlLmF0RG9jdW1lbnRCb3VuZGFyeShuLGksdS5DaGFyLkRJUkVDVElWRVNfRU5EKTspc3dpdGNoKGk9dC5zdGFydENvbW1lbnRPckVuZEJsYW5rTGluZShuLGkpLG5baV0pe2Nhc2VgXG5gOmlmKHIpe2xldCBvPW5ldyBFZTtpPW8ucGFyc2Uoe3NyYzpufSxpKSxpPG4ubGVuZ3RoJiZ0aGlzLmRpcmVjdGl2ZXMucHVzaChvKX1lbHNlIGkrPTEscj0hMDticmVhaztjYXNlXCIjXCI6e2xldCBvPW5ldyB5ZTtpPW8ucGFyc2Uoe3NyYzpufSxpKSx0aGlzLmRpcmVjdGl2ZXMucHVzaChvKSxyPSExfWJyZWFrO2Nhc2VcIiVcIjp7bGV0IG89bmV3IEluO2k9by5wYXJzZSh7cGFyZW50OnRoaXMsc3JjOm59LGkpLHRoaXMuZGlyZWN0aXZlcy5wdXNoKG8pLHM9ITAscj0hMX1icmVhaztkZWZhdWx0OnJldHVybiBzP3RoaXMuZXJyb3I9bmV3IHUuWUFNTFNlbWFudGljRXJyb3IodGhpcyxcIk1pc3NpbmcgZGlyZWN0aXZlcy1lbmQgaW5kaWNhdG9yIGxpbmVcIik6dGhpcy5kaXJlY3RpdmVzLmxlbmd0aD4wJiYodGhpcy5jb250ZW50cz10aGlzLmRpcmVjdGl2ZXMsdGhpcy5kaXJlY3RpdmVzPVtdKSxpfXJldHVybiBuW2ldPyh0aGlzLmRpcmVjdGl2ZXNFbmRNYXJrZXI9bmV3IHUuUmFuZ2UoaSxpKzMpLGkrMyk6KHM/dGhpcy5lcnJvcj1uZXcgdS5ZQU1MU2VtYW50aWNFcnJvcih0aGlzLFwiTWlzc2luZyBkaXJlY3RpdmVzLWVuZCBpbmRpY2F0b3IgbGluZVwiKTp0aGlzLmRpcmVjdGl2ZXMubGVuZ3RoPjAmJih0aGlzLmNvbnRlbnRzPXRoaXMuZGlyZWN0aXZlcyx0aGlzLmRpcmVjdGl2ZXM9W10pLGkpfXBhcnNlQ29udGVudHMoZSl7bGV0e3BhcnNlTm9kZTpuLHNyYzpyfT10aGlzLmNvbnRleHQ7dGhpcy5jb250ZW50c3x8KHRoaXMuY29udGVudHM9W10pO2xldCBzPWU7Zm9yKDtyW3MtMV09PT1cIi1cIjspcy09MTtsZXQgaT11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHIsZSksbz1zPT09ZTtmb3IodGhpcy52YWx1ZVJhbmdlPW5ldyB1LlJhbmdlKGkpOyF1Lk5vZGUuYXREb2N1bWVudEJvdW5kYXJ5KHIsaSx1LkNoYXIuRE9DVU1FTlRfRU5EKTspe3N3aXRjaChyW2ldKXtjYXNlYFxuYDppZihvKXtsZXQgYT1uZXcgRWU7aT1hLnBhcnNlKHtzcmM6cn0saSksaTxyLmxlbmd0aCYmdGhpcy5jb250ZW50cy5wdXNoKGEpfWVsc2UgaSs9MSxvPSEwO3M9aTticmVhaztjYXNlXCIjXCI6e2xldCBhPW5ldyB5ZTtpPWEucGFyc2Uoe3NyYzpyfSxpKSx0aGlzLmNvbnRlbnRzLnB1c2goYSksbz0hMX1icmVhaztkZWZhdWx0OntsZXQgYT11Lk5vZGUuZW5kT2ZJbmRlbnQocixpKSxsPW4oe2F0TGluZVN0YXJ0Om8saW5kZW50Oi0xLGluRmxvdzohMSxpbkNvbGxlY3Rpb246ITEsbGluZVN0YXJ0OnMscGFyZW50OnRoaXN9LGEpO2lmKCFsKXJldHVybiB0aGlzLnZhbHVlUmFuZ2UuZW5kPWE7dGhpcy5jb250ZW50cy5wdXNoKGwpLGk9bC5yYW5nZS5lbmQsbz0hMTtsZXQgZj12bihsKTtmJiZBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLmNvbnRlbnRzLGYpfX1pPXQuc3RhcnRDb21tZW50T3JFbmRCbGFua0xpbmUocixpKX1pZih0aGlzLnZhbHVlUmFuZ2UuZW5kPWkscltpXSYmKHRoaXMuZG9jdW1lbnRFbmRNYXJrZXI9bmV3IHUuUmFuZ2UoaSxpKzMpLGkrPTMscltpXSkpe2lmKGk9dS5Ob2RlLmVuZE9mV2hpdGVTcGFjZShyLGkpLHJbaV09PT1cIiNcIil7bGV0IGE9bmV3IHllO2k9YS5wYXJzZSh7c3JjOnJ9LGkpLHRoaXMuY29udGVudHMucHVzaChhKX1zd2l0Y2gocltpXSl7Y2FzZWBcbmA6aSs9MTticmVhaztjYXNlIHZvaWQgMDpicmVhaztkZWZhdWx0OnRoaXMuZXJyb3I9bmV3IHUuWUFNTFN5bnRheEVycm9yKHRoaXMsXCJEb2N1bWVudCBlbmQgbWFya2VyIGxpbmUgY2Fubm90IGhhdmUgYSBub24tY29tbWVudCBzdWZmaXhcIil9fXJldHVybiBpfXBhcnNlKGUsbil7ZS5yb290PXRoaXMsdGhpcy5jb250ZXh0PWU7bGV0e3NyYzpyfT1lLHM9ci5jaGFyQ29kZUF0KG4pPT09NjUyNzk/bisxOm47cmV0dXJuIHM9dGhpcy5wYXJzZURpcmVjdGl2ZXMocykscz10aGlzLnBhcnNlQ29udGVudHMocyksc31zZXRPcmlnUmFuZ2VzKGUsbil7cmV0dXJuIG49c3VwZXIuc2V0T3JpZ1JhbmdlcyhlLG4pLHRoaXMuZGlyZWN0aXZlcy5mb3JFYWNoKHI9PntuPXIuc2V0T3JpZ1JhbmdlcyhlLG4pfSksdGhpcy5kaXJlY3RpdmVzRW5kTWFya2VyJiYobj10aGlzLmRpcmVjdGl2ZXNFbmRNYXJrZXIuc2V0T3JpZ1JhbmdlKGUsbikpLHRoaXMuY29udGVudHMuZm9yRWFjaChyPT57bj1yLnNldE9yaWdSYW5nZXMoZSxuKX0pLHRoaXMuZG9jdW1lbnRFbmRNYXJrZXImJihuPXRoaXMuZG9jdW1lbnRFbmRNYXJrZXIuc2V0T3JpZ1JhbmdlKGUsbikpLG59dG9TdHJpbmcoKXtsZXR7Y29udGVudHM6ZSxkaXJlY3RpdmVzOm4sdmFsdWU6cn09dGhpcztpZihyIT1udWxsKXJldHVybiByO2xldCBzPW4uam9pbihcIlwiKTtyZXR1cm4gZS5sZW5ndGg+MCYmKChuLmxlbmd0aD4wfHxlWzBdLnR5cGU9PT11LlR5cGUuQ09NTUVOVCkmJihzKz1gLS0tXG5gKSxzKz1lLmpvaW4oXCJcIikpLHNbcy5sZW5ndGgtMV0hPT1gXG5gJiYocys9YFxuYCksc319LF9uPWNsYXNzIGV4dGVuZHMgdS5Ob2Rle3BhcnNlKGUsbil7dGhpcy5jb250ZXh0PWU7bGV0e3NyYzpyfT1lLHM9dS5Ob2RlLmVuZE9mSWRlbnRpZmllcihyLG4rMSk7cmV0dXJuIHRoaXMudmFsdWVSYW5nZT1uZXcgdS5SYW5nZShuKzEscykscz11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHIscykscz10aGlzLnBhcnNlQ29tbWVudChzKSxzfX0sZmU9e0NMSVA6XCJDTElQXCIsS0VFUDpcIktFRVBcIixTVFJJUDpcIlNUUklQXCJ9LHhuPWNsYXNzIGV4dGVuZHMgdS5Ob2Rle2NvbnN0cnVjdG9yKGUsbil7c3VwZXIoZSxuKSx0aGlzLmJsb2NrSW5kZW50PW51bGwsdGhpcy5jaG9tcGluZz1mZS5DTElQLHRoaXMuaGVhZGVyPW51bGx9Z2V0IGluY2x1ZGVzVHJhaWxpbmdMaW5lcygpe3JldHVybiB0aGlzLmNob21waW5nPT09ZmUuS0VFUH1nZXQgc3RyVmFsdWUoKXtpZighdGhpcy52YWx1ZVJhbmdlfHwhdGhpcy5jb250ZXh0KXJldHVybiBudWxsO2xldHtzdGFydDplLGVuZDpufT10aGlzLnZhbHVlUmFuZ2Use2luZGVudDpyLHNyYzpzfT10aGlzLmNvbnRleHQ7aWYodGhpcy52YWx1ZVJhbmdlLmlzRW1wdHkoKSlyZXR1cm5cIlwiO2xldCBpPW51bGwsbz1zW24tMV07Zm9yKDtvPT09YFxuYHx8bz09PVwiXHRcInx8bz09PVwiIFwiOyl7aWYobi09MSxuPD1lKXtpZih0aGlzLmNob21waW5nPT09ZmUuS0VFUClicmVhaztyZXR1cm5cIlwifW89PT1gXG5gJiYoaT1uKSxvPXNbbi0xXX1sZXQgYT1uKzE7aSYmKHRoaXMuY2hvbXBpbmc9PT1mZS5LRUVQPyhhPWksbj10aGlzLnZhbHVlUmFuZ2UuZW5kKTpuPWkpO2xldCBjPXIrdGhpcy5ibG9ja0luZGVudCxsPXRoaXMudHlwZT09PXUuVHlwZS5CTE9DS19GT0xERUQsZj0hMCxtPVwiXCIsZD1cIlwiLHk9ITE7Zm9yKGxldCBoPWU7aDxuOysraCl7Zm9yKGxldCB3PTA7dzxjJiZzW2hdPT09XCIgXCI7Kyt3KWgrPTE7bGV0IGc9c1toXTtpZihnPT09YFxuYClkPT09YFxuYD9tKz1gXG5gOmQ9YFxuYDtlbHNle2xldCB3PXUuTm9kZS5lbmRPZkxpbmUocyxoKSxDPXMuc2xpY2UoaCx3KTtoPXcsbCYmKGc9PT1cIiBcInx8Zz09PVwiXHRcIikmJmg8YT8oZD09PVwiIFwiP2Q9YFxuYDoheSYmIWYmJmQ9PT1gXG5gJiYoZD1gXG5cbmApLG0rPWQrQyxkPXc8biYmc1t3XXx8XCJcIix5PSEwKToobSs9ZCtDLGQ9bCYmaDxhP1wiIFwiOmBcbmAseT0hMSksZiYmQyE9PVwiXCImJihmPSExKX19cmV0dXJuIHRoaXMuY2hvbXBpbmc9PT1mZS5TVFJJUD9tOm0rYFxuYH1wYXJzZUJsb2NrSGVhZGVyKGUpe2xldHtzcmM6bn09dGhpcy5jb250ZXh0LHI9ZSsxLHM9XCJcIjtmb3IoOzspe2xldCBpPW5bcl07c3dpdGNoKGkpe2Nhc2VcIi1cIjp0aGlzLmNob21waW5nPWZlLlNUUklQO2JyZWFrO2Nhc2VcIitcIjp0aGlzLmNob21waW5nPWZlLktFRVA7YnJlYWs7Y2FzZVwiMFwiOmNhc2VcIjFcIjpjYXNlXCIyXCI6Y2FzZVwiM1wiOmNhc2VcIjRcIjpjYXNlXCI1XCI6Y2FzZVwiNlwiOmNhc2VcIjdcIjpjYXNlXCI4XCI6Y2FzZVwiOVwiOnMrPWk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy5ibG9ja0luZGVudD1OdW1iZXIocyl8fG51bGwsdGhpcy5oZWFkZXI9bmV3IHUuUmFuZ2UoZSxyKSxyfXIrPTF9fXBhcnNlQmxvY2tWYWx1ZShlKXtsZXR7aW5kZW50Om4sc3JjOnJ9PXRoaXMuY29udGV4dCxzPSEhdGhpcy5ibG9ja0luZGVudCxpPWUsbz1lLGE9MTtmb3IobGV0IGM9cltpXTtjPT09YFxuYCYmKGkrPTEsIXUuTm9kZS5hdERvY3VtZW50Qm91bmRhcnkocixpKSk7Yz1yW2ldKXtsZXQgbD11Lk5vZGUuZW5kT2ZCbG9ja0luZGVudChyLG4saSk7aWYobD09PW51bGwpYnJlYWs7bGV0IGY9cltsXSxtPWwtKGkrbik7aWYodGhpcy5ibG9ja0luZGVudCl7aWYoZiYmZiE9PWBcbmAmJm08dGhpcy5ibG9ja0luZGVudCl7aWYocltsXT09PVwiI1wiKWJyZWFrO2lmKCF0aGlzLmVycm9yKXtsZXQgeT1gQmxvY2sgc2NhbGFycyBtdXN0IG5vdCBiZSBsZXNzIGluZGVudGVkIHRoYW4gdGhlaXIgJHtzP1wiZXhwbGljaXQgaW5kZW50YXRpb24gaW5kaWNhdG9yXCI6XCJmaXJzdCBsaW5lXCJ9YDt0aGlzLmVycm9yPW5ldyB1LllBTUxTZW1hbnRpY0Vycm9yKHRoaXMseSl9fX1lbHNlIGlmKHJbbF0hPT1gXG5gKXtpZihtPGEpe2xldCBkPVwiQmxvY2sgc2NhbGFycyB3aXRoIG1vcmUtaW5kZW50ZWQgbGVhZGluZyBlbXB0eSBsaW5lcyBtdXN0IHVzZSBhbiBleHBsaWNpdCBpbmRlbnRhdGlvbiBpbmRpY2F0b3JcIjt0aGlzLmVycm9yPW5ldyB1LllBTUxTZW1hbnRpY0Vycm9yKHRoaXMsZCl9dGhpcy5ibG9ja0luZGVudD1tfWVsc2UgbT5hJiYoYT1tKTtyW2xdPT09YFxuYD9pPWw6aT1vPXUuTm9kZS5lbmRPZkxpbmUocixsKX1yZXR1cm4gdGhpcy5jaG9tcGluZyE9PWZlLktFRVAmJihpPXJbb10/bysxOm8pLHRoaXMudmFsdWVSYW5nZT1uZXcgdS5SYW5nZShlKzEsaSksaX1wYXJzZShlLG4pe3RoaXMuY29udGV4dD1lO2xldHtzcmM6cn09ZSxzPXRoaXMucGFyc2VCbG9ja0hlYWRlcihuKTtyZXR1cm4gcz11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHIscykscz10aGlzLnBhcnNlQ29tbWVudChzKSxzPXRoaXMucGFyc2VCbG9ja1ZhbHVlKHMpLHN9c2V0T3JpZ1JhbmdlcyhlLG4pe3JldHVybiBuPXN1cGVyLnNldE9yaWdSYW5nZXMoZSxuKSx0aGlzLmhlYWRlcj90aGlzLmhlYWRlci5zZXRPcmlnUmFuZ2UoZSxuKTpufX0sUm49Y2xhc3MgZXh0ZW5kcyB1Lk5vZGV7Y29uc3RydWN0b3IoZSxuKXtzdXBlcihlLG4pLHRoaXMuaXRlbXM9bnVsbH1wcmV2Tm9kZUlzSnNvbkxpa2UoZT10aGlzLml0ZW1zLmxlbmd0aCl7bGV0IG49dGhpcy5pdGVtc1tlLTFdO3JldHVybiEhbiYmKG4uanNvbkxpa2V8fG4udHlwZT09PXUuVHlwZS5DT01NRU5UJiZ0aGlzLnByZXZOb2RlSXNKc29uTGlrZShlLTEpKX1wYXJzZShlLG4pe3RoaXMuY29udGV4dD1lO2xldHtwYXJzZU5vZGU6cixzcmM6c309ZSx7aW5kZW50OmksbGluZVN0YXJ0Om99PWUsYT1zW25dO3RoaXMuaXRlbXM9W3tjaGFyOmEsb2Zmc2V0Om59XTtsZXQgYz11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHMsbisxKTtmb3IoYT1zW2NdO2EmJmEhPT1cIl1cIiYmYSE9PVwifVwiOyl7c3dpdGNoKGEpe2Nhc2VgXG5gOntvPWMrMTtsZXQgbD11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHMsbyk7aWYoc1tsXT09PWBcbmApe2xldCBmPW5ldyBFZTtvPWYucGFyc2Uoe3NyYzpzfSxvKSx0aGlzLml0ZW1zLnB1c2goZil9aWYoYz11Lk5vZGUuZW5kT2ZJbmRlbnQocyxvKSxjPD1vK2kmJihhPXNbY10sYzxvK2l8fGEhPT1cIl1cIiYmYSE9PVwifVwiKSl7bGV0IGY9XCJJbnN1ZmZpY2llbnQgaW5kZW50YXRpb24gaW4gZmxvdyBjb2xsZWN0aW9uXCI7dGhpcy5lcnJvcj1uZXcgdS5ZQU1MU2VtYW50aWNFcnJvcih0aGlzLGYpfX1icmVhaztjYXNlXCIsXCI6dGhpcy5pdGVtcy5wdXNoKHtjaGFyOmEsb2Zmc2V0OmN9KSxjKz0xO2JyZWFrO2Nhc2VcIiNcIjp7bGV0IGw9bmV3IHllO2M9bC5wYXJzZSh7c3JjOnN9LGMpLHRoaXMuaXRlbXMucHVzaChsKX1icmVhaztjYXNlXCI/XCI6Y2FzZVwiOlwiOntsZXQgbD1zW2MrMV07aWYobD09PWBcbmB8fGw9PT1cIlx0XCJ8fGw9PT1cIiBcInx8bD09PVwiLFwifHxhPT09XCI6XCImJnRoaXMucHJldk5vZGVJc0pzb25MaWtlKCkpe3RoaXMuaXRlbXMucHVzaCh7Y2hhcjphLG9mZnNldDpjfSksYys9MTticmVha319ZGVmYXVsdDp7bGV0IGw9cih7YXRMaW5lU3RhcnQ6ITEsaW5Db2xsZWN0aW9uOiExLGluRmxvdzohMCxpbmRlbnQ6LTEsbGluZVN0YXJ0Om8scGFyZW50OnRoaXN9LGMpO2lmKCFsKXJldHVybiB0aGlzLnZhbHVlUmFuZ2U9bmV3IHUuUmFuZ2UobixjKSxjO3RoaXMuaXRlbXMucHVzaChsKSxjPXUuTm9kZS5ub3JtYWxpemVPZmZzZXQocyxsLnJhbmdlLmVuZCl9fWM9dS5Ob2RlLmVuZE9mV2hpdGVTcGFjZShzLGMpLGE9c1tjXX1yZXR1cm4gdGhpcy52YWx1ZVJhbmdlPW5ldyB1LlJhbmdlKG4sYysxKSxhJiYodGhpcy5pdGVtcy5wdXNoKHtjaGFyOmEsb2Zmc2V0OmN9KSxjPXUuTm9kZS5lbmRPZldoaXRlU3BhY2UocyxjKzEpLGM9dGhpcy5wYXJzZUNvbW1lbnQoYykpLGN9c2V0T3JpZ1JhbmdlcyhlLG4pe3JldHVybiBuPXN1cGVyLnNldE9yaWdSYW5nZXMoZSxuKSx0aGlzLml0ZW1zLmZvckVhY2gocj0+e2lmKHIgaW5zdGFuY2VvZiB1Lk5vZGUpbj1yLnNldE9yaWdSYW5nZXMoZSxuKTtlbHNlIGlmKGUubGVuZ3RoPT09MClyLm9yaWdPZmZzZXQ9ci5vZmZzZXQ7ZWxzZXtsZXQgcz1uO2Zvcig7czxlLmxlbmd0aCYmIShlW3NdPnIub2Zmc2V0KTspKytzO3Iub3JpZ09mZnNldD1yLm9mZnNldCtzLG49c319KSxufXRvU3RyaW5nKCl7bGV0e2NvbnRleHQ6e3NyYzplfSxpdGVtczpuLHJhbmdlOnIsdmFsdWU6c309dGhpcztpZihzIT1udWxsKXJldHVybiBzO2xldCBpPW4uZmlsdGVyKGM9PmMgaW5zdGFuY2VvZiB1Lk5vZGUpLG89XCJcIixhPXIuc3RhcnQ7cmV0dXJuIGkuZm9yRWFjaChjPT57bGV0IGw9ZS5zbGljZShhLGMucmFuZ2Uuc3RhcnQpO2E9Yy5yYW5nZS5lbmQsbys9bCtTdHJpbmcoYyksb1tvLmxlbmd0aC0xXT09PWBcbmAmJmVbYS0xXSE9PWBcbmAmJmVbYV09PT1gXG5gJiYoYSs9MSl9KSxvKz1lLnNsaWNlKGEsci5lbmQpLHUuTm9kZS5hZGRTdHJpbmdUZXJtaW5hdG9yKGUsci5lbmQsbyl9fSxEbj1jbGFzcyB0IGV4dGVuZHMgdS5Ob2Rle3N0YXRpYyBlbmRPZlF1b3RlKGUsbil7bGV0IHI9ZVtuXTtmb3IoO3ImJnIhPT0nXCInOyluKz1yPT09XCJcXFxcXCI/MjoxLHI9ZVtuXTtyZXR1cm4gbisxfWdldCBzdHJWYWx1ZSgpe2lmKCF0aGlzLnZhbHVlUmFuZ2V8fCF0aGlzLmNvbnRleHQpcmV0dXJuIG51bGw7bGV0IGU9W10se3N0YXJ0Om4sZW5kOnJ9PXRoaXMudmFsdWVSYW5nZSx7aW5kZW50OnMsc3JjOml9PXRoaXMuY29udGV4dDtpW3ItMV0hPT0nXCInJiZlLnB1c2gobmV3IHUuWUFNTFN5bnRheEVycm9yKHRoaXMsJ01pc3NpbmcgY2xvc2luZyBcInF1b3RlJykpO2xldCBvPVwiXCI7Zm9yKGxldCBhPW4rMTthPHItMTsrK2Epe2xldCBjPWlbYV07aWYoYz09PWBcbmApe3UuTm9kZS5hdERvY3VtZW50Qm91bmRhcnkoaSxhKzEpJiZlLnB1c2gobmV3IHUuWUFNTFNlbWFudGljRXJyb3IodGhpcyxcIkRvY3VtZW50IGJvdW5kYXJ5IGluZGljYXRvcnMgYXJlIG5vdCBhbGxvd2VkIHdpdGhpbiBzdHJpbmcgdmFsdWVzXCIpKTtsZXR7Zm9sZDpsLG9mZnNldDpmLGVycm9yOm19PXUuTm9kZS5mb2xkTmV3bGluZShpLGEscyk7bys9bCxhPWYsbSYmZS5wdXNoKG5ldyB1LllBTUxTZW1hbnRpY0Vycm9yKHRoaXMsXCJNdWx0aS1saW5lIGRvdWJsZS1xdW90ZWQgc3RyaW5nIG5lZWRzIHRvIGJlIHN1ZmZpY2llbnRseSBpbmRlbnRlZFwiKSl9ZWxzZSBpZihjPT09XCJcXFxcXCIpc3dpdGNoKGErPTEsaVthXSl7Y2FzZVwiMFwiOm8rPVwiXFwwXCI7YnJlYWs7Y2FzZVwiYVwiOm8rPVwiXFx4MDdcIjticmVhaztjYXNlXCJiXCI6bys9XCJcXGJcIjticmVhaztjYXNlXCJlXCI6bys9XCJcXHgxQlwiO2JyZWFrO2Nhc2VcImZcIjpvKz1cIlxcZlwiO2JyZWFrO2Nhc2VcIm5cIjpvKz1gXG5gO2JyZWFrO2Nhc2VcInJcIjpvKz1cIlxcclwiO2JyZWFrO2Nhc2VcInRcIjpvKz1cIlx0XCI7YnJlYWs7Y2FzZVwidlwiOm8rPVwiXFx2XCI7YnJlYWs7Y2FzZVwiTlwiOm8rPVwiXFx4ODVcIjticmVhaztjYXNlXCJfXCI6bys9XCJcXHhBMFwiO2JyZWFrO2Nhc2VcIkxcIjpvKz1cIlxcdTIwMjhcIjticmVhaztjYXNlXCJQXCI6bys9XCJcXHUyMDI5XCI7YnJlYWs7Y2FzZVwiIFwiOm8rPVwiIFwiO2JyZWFrO2Nhc2UnXCInOm8rPSdcIic7YnJlYWs7Y2FzZVwiL1wiOm8rPVwiL1wiO2JyZWFrO2Nhc2VcIlxcXFxcIjpvKz1cIlxcXFxcIjticmVhaztjYXNlXCJcdFwiOm8rPVwiXHRcIjticmVhaztjYXNlXCJ4XCI6bys9dGhpcy5wYXJzZUNoYXJDb2RlKGErMSwyLGUpLGErPTI7YnJlYWs7Y2FzZVwidVwiOm8rPXRoaXMucGFyc2VDaGFyQ29kZShhKzEsNCxlKSxhKz00O2JyZWFrO2Nhc2VcIlVcIjpvKz10aGlzLnBhcnNlQ2hhckNvZGUoYSsxLDgsZSksYSs9ODticmVhaztjYXNlYFxuYDpmb3IoO2lbYSsxXT09PVwiIFwifHxpW2ErMV09PT1cIlx0XCI7KWErPTE7YnJlYWs7ZGVmYXVsdDplLnB1c2gobmV3IHUuWUFNTFN5bnRheEVycm9yKHRoaXMsYEludmFsaWQgZXNjYXBlIHNlcXVlbmNlICR7aS5zdWJzdHIoYS0xLDIpfWApKSxvKz1cIlxcXFxcIitpW2FdfWVsc2UgaWYoYz09PVwiIFwifHxjPT09XCJcdFwiKXtsZXQgbD1hLGY9aVthKzFdO2Zvcig7Zj09PVwiIFwifHxmPT09XCJcdFwiOylhKz0xLGY9aVthKzFdO2YhPT1gXG5gJiYobys9YT5sP2kuc2xpY2UobCxhKzEpOmMpfWVsc2Ugbys9Y31yZXR1cm4gZS5sZW5ndGg+MD97ZXJyb3JzOmUsc3RyOm99Om99cGFyc2VDaGFyQ29kZShlLG4scil7bGV0e3NyYzpzfT10aGlzLmNvbnRleHQsaT1zLnN1YnN0cihlLG4pLGE9aS5sZW5ndGg9PT1uJiYvXlswLTlhLWZBLUZdKyQvLnRlc3QoaSk/cGFyc2VJbnQoaSwxNik6TmFOO3JldHVybiBpc05hTihhKT8oci5wdXNoKG5ldyB1LllBTUxTeW50YXhFcnJvcih0aGlzLGBJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAke3Muc3Vic3RyKGUtMixuKzIpfWApKSxzLnN1YnN0cihlLTIsbisyKSk6U3RyaW5nLmZyb21Db2RlUG9pbnQoYSl9cGFyc2UoZSxuKXt0aGlzLmNvbnRleHQ9ZTtsZXR7c3JjOnJ9PWUscz10LmVuZE9mUXVvdGUocixuKzEpO3JldHVybiB0aGlzLnZhbHVlUmFuZ2U9bmV3IHUuUmFuZ2UobixzKSxzPXUuTm9kZS5lbmRPZldoaXRlU3BhY2UocixzKSxzPXRoaXMucGFyc2VDb21tZW50KHMpLHN9fSxZbj1jbGFzcyB0IGV4dGVuZHMgdS5Ob2Rle3N0YXRpYyBlbmRPZlF1b3RlKGUsbil7bGV0IHI9ZVtuXTtmb3IoO3I7KWlmKHI9PT1cIidcIil7aWYoZVtuKzFdIT09XCInXCIpYnJlYWs7cj1lW24rPTJdfWVsc2Ugcj1lW24rPTFdO3JldHVybiBuKzF9Z2V0IHN0clZhbHVlKCl7aWYoIXRoaXMudmFsdWVSYW5nZXx8IXRoaXMuY29udGV4dClyZXR1cm4gbnVsbDtsZXQgZT1bXSx7c3RhcnQ6bixlbmQ6cn09dGhpcy52YWx1ZVJhbmdlLHtpbmRlbnQ6cyxzcmM6aX09dGhpcy5jb250ZXh0O2lbci0xXSE9PVwiJ1wiJiZlLnB1c2gobmV3IHUuWUFNTFN5bnRheEVycm9yKHRoaXMsXCJNaXNzaW5nIGNsb3NpbmcgJ3F1b3RlXCIpKTtsZXQgbz1cIlwiO2ZvcihsZXQgYT1uKzE7YTxyLTE7KythKXtsZXQgYz1pW2FdO2lmKGM9PT1gXG5gKXt1Lk5vZGUuYXREb2N1bWVudEJvdW5kYXJ5KGksYSsxKSYmZS5wdXNoKG5ldyB1LllBTUxTZW1hbnRpY0Vycm9yKHRoaXMsXCJEb2N1bWVudCBib3VuZGFyeSBpbmRpY2F0b3JzIGFyZSBub3QgYWxsb3dlZCB3aXRoaW4gc3RyaW5nIHZhbHVlc1wiKSk7bGV0e2ZvbGQ6bCxvZmZzZXQ6ZixlcnJvcjptfT11Lk5vZGUuZm9sZE5ld2xpbmUoaSxhLHMpO28rPWwsYT1mLG0mJmUucHVzaChuZXcgdS5ZQU1MU2VtYW50aWNFcnJvcih0aGlzLFwiTXVsdGktbGluZSBzaW5nbGUtcXVvdGVkIHN0cmluZyBuZWVkcyB0byBiZSBzdWZmaWNpZW50bHkgaW5kZW50ZWRcIikpfWVsc2UgaWYoYz09PVwiJ1wiKW8rPWMsYSs9MSxpW2FdIT09XCInXCImJmUucHVzaChuZXcgdS5ZQU1MU3ludGF4RXJyb3IodGhpcyxcIlVuZXNjYXBlZCBzaW5nbGUgcXVvdGU/IFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4uXCIpKTtlbHNlIGlmKGM9PT1cIiBcInx8Yz09PVwiXHRcIil7bGV0IGw9YSxmPWlbYSsxXTtmb3IoO2Y9PT1cIiBcInx8Zj09PVwiXHRcIjspYSs9MSxmPWlbYSsxXTtmIT09YFxuYCYmKG8rPWE+bD9pLnNsaWNlKGwsYSsxKTpjKX1lbHNlIG8rPWN9cmV0dXJuIGUubGVuZ3RoPjA/e2Vycm9yczplLHN0cjpvfTpvfXBhcnNlKGUsbil7dGhpcy5jb250ZXh0PWU7bGV0e3NyYzpyfT1lLHM9dC5lbmRPZlF1b3RlKHIsbisxKTtyZXR1cm4gdGhpcy52YWx1ZVJhbmdlPW5ldyB1LlJhbmdlKG4scykscz11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHIscykscz10aGlzLnBhcnNlQ29tbWVudChzKSxzfX07ZnVuY3Rpb24gQ28odCxlKXtzd2l0Y2godCl7Y2FzZSB1LlR5cGUuQUxJQVM6cmV0dXJuIG5ldyBfbih0LGUpO2Nhc2UgdS5UeXBlLkJMT0NLX0ZPTERFRDpjYXNlIHUuVHlwZS5CTE9DS19MSVRFUkFMOnJldHVybiBuZXcgeG4odCxlKTtjYXNlIHUuVHlwZS5GTE9XX01BUDpjYXNlIHUuVHlwZS5GTE9XX1NFUTpyZXR1cm4gbmV3IFJuKHQsZSk7Y2FzZSB1LlR5cGUuTUFQX0tFWTpjYXNlIHUuVHlwZS5NQVBfVkFMVUU6Y2FzZSB1LlR5cGUuU0VRX0lURU06cmV0dXJuIG5ldyB1dCh0LGUpO2Nhc2UgdS5UeXBlLkNPTU1FTlQ6Y2FzZSB1LlR5cGUuUExBSU46cmV0dXJuIG5ldyB1LlBsYWluVmFsdWUodCxlKTtjYXNlIHUuVHlwZS5RVU9URV9ET1VCTEU6cmV0dXJuIG5ldyBEbih0LGUpO2Nhc2UgdS5UeXBlLlFVT1RFX1NJTkdMRTpyZXR1cm4gbmV3IFluKHQsZSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIEJuPWNsYXNzIHR7c3RhdGljIHBhcnNlVHlwZShlLG4scil7c3dpdGNoKGVbbl0pe2Nhc2VcIipcIjpyZXR1cm4gdS5UeXBlLkFMSUFTO2Nhc2VcIj5cIjpyZXR1cm4gdS5UeXBlLkJMT0NLX0ZPTERFRDtjYXNlXCJ8XCI6cmV0dXJuIHUuVHlwZS5CTE9DS19MSVRFUkFMO2Nhc2VcIntcIjpyZXR1cm4gdS5UeXBlLkZMT1dfTUFQO2Nhc2VcIltcIjpyZXR1cm4gdS5UeXBlLkZMT1dfU0VRO2Nhc2VcIj9cIjpyZXR1cm4hciYmdS5Ob2RlLmF0QmxhbmsoZSxuKzEsITApP3UuVHlwZS5NQVBfS0VZOnUuVHlwZS5QTEFJTjtjYXNlXCI6XCI6cmV0dXJuIXImJnUuTm9kZS5hdEJsYW5rKGUsbisxLCEwKT91LlR5cGUuTUFQX1ZBTFVFOnUuVHlwZS5QTEFJTjtjYXNlXCItXCI6cmV0dXJuIXImJnUuTm9kZS5hdEJsYW5rKGUsbisxLCEwKT91LlR5cGUuU0VRX0lURU06dS5UeXBlLlBMQUlOO2Nhc2UnXCInOnJldHVybiB1LlR5cGUuUVVPVEVfRE9VQkxFO2Nhc2VcIidcIjpyZXR1cm4gdS5UeXBlLlFVT1RFX1NJTkdMRTtkZWZhdWx0OnJldHVybiB1LlR5cGUuUExBSU59fWNvbnN0cnVjdG9yKGU9e30se2F0TGluZVN0YXJ0Om4saW5Db2xsZWN0aW9uOnIsaW5GbG93OnMsaW5kZW50OmksbGluZVN0YXJ0Om8scGFyZW50OmF9PXt9KXt1Ll9kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGFyc2VOb2RlXCIsKGMsbCk9PntpZih1Lk5vZGUuYXREb2N1bWVudEJvdW5kYXJ5KHRoaXMuc3JjLGwpKXJldHVybiBudWxsO2xldCBmPW5ldyB0KHRoaXMsYykse3Byb3BzOm0sdHlwZTpkLHZhbHVlU3RhcnQ6eX09Zi5wYXJzZVByb3BzKGwpLGg9Q28oZCxtKSxnPWgucGFyc2UoZix5KTtpZihoLnJhbmdlPW5ldyB1LlJhbmdlKGwsZyksZzw9bCYmKGguZXJyb3I9bmV3IEVycm9yKFwiTm9kZSNwYXJzZSBjb25zdW1lZCBubyBjaGFyYWN0ZXJzXCIpLGguZXJyb3IucGFyc2VFbmQ9ZyxoLmVycm9yLnNvdXJjZT1oLGgucmFuZ2UuZW5kPWwrMSksZi5ub2RlU3RhcnRzQ29sbGVjdGlvbihoKSl7IWguZXJyb3ImJiFmLmF0TGluZVN0YXJ0JiZmLnBhcmVudC50eXBlPT09dS5UeXBlLkRPQ1VNRU5UJiYoaC5lcnJvcj1uZXcgdS5ZQU1MU3ludGF4RXJyb3IoaCxcIkJsb2NrIGNvbGxlY3Rpb24gbXVzdCBub3QgaGF2ZSBwcmVjZWRpbmcgY29udGVudCBoZXJlIChlLmcuIGRpcmVjdGl2ZXMtZW5kIGluZGljYXRvcilcIikpO2xldCB3PW5ldyBCdChoKTtyZXR1cm4gZz13LnBhcnNlKG5ldyB0KGYpLGcpLHcucmFuZ2U9bmV3IHUuUmFuZ2UobCxnKSx3fXJldHVybiBofSksdGhpcy5hdExpbmVTdGFydD1uPz8oZS5hdExpbmVTdGFydHx8ITEpLHRoaXMuaW5Db2xsZWN0aW9uPXI/PyhlLmluQ29sbGVjdGlvbnx8ITEpLHRoaXMuaW5GbG93PXM/PyhlLmluRmxvd3x8ITEpLHRoaXMuaW5kZW50PWk/P2UuaW5kZW50LHRoaXMubGluZVN0YXJ0PW8/P2UubGluZVN0YXJ0LHRoaXMucGFyZW50PWE/PyhlLnBhcmVudHx8e30pLHRoaXMucm9vdD1lLnJvb3QsdGhpcy5zcmM9ZS5zcmN9bm9kZVN0YXJ0c0NvbGxlY3Rpb24oZSl7bGV0e2luQ29sbGVjdGlvbjpuLGluRmxvdzpyLHNyYzpzfT10aGlzO2lmKG58fHIpcmV0dXJuITE7aWYoZSBpbnN0YW5jZW9mIHV0KXJldHVybiEwO2xldCBpPWUucmFuZ2UuZW5kO3JldHVybiBzW2ldPT09YFxuYHx8c1tpLTFdPT09YFxuYD8hMTooaT11Lk5vZGUuZW5kT2ZXaGl0ZVNwYWNlKHMsaSksc1tpXT09PVwiOlwiKX1wYXJzZVByb3BzKGUpe2xldHtpbkZsb3c6bixwYXJlbnQ6cixzcmM6c309dGhpcyxpPVtdLG89ITE7ZT10aGlzLmF0TGluZVN0YXJ0P3UuTm9kZS5lbmRPZkluZGVudChzLGUpOnUuTm9kZS5lbmRPZldoaXRlU3BhY2UocyxlKTtsZXQgYT1zW2VdO2Zvcig7YT09PXUuQ2hhci5BTkNIT1J8fGE9PT11LkNoYXIuQ09NTUVOVHx8YT09PXUuQ2hhci5UQUd8fGE9PT1gXG5gOyl7aWYoYT09PWBcbmApe2xldCBsPWUsZjtkbyBmPWwrMSxsPXUuTm9kZS5lbmRPZkluZGVudChzLGYpO3doaWxlKHNbbF09PT1gXG5gKTtsZXQgbT1sLShmK3RoaXMuaW5kZW50KSxkPXIudHlwZT09PXUuVHlwZS5TRVFfSVRFTSYmci5jb250ZXh0LmF0TGluZVN0YXJ0O2lmKHNbbF0hPT1cIiNcIiYmIXUuTm9kZS5uZXh0Tm9kZUlzSW5kZW50ZWQoc1tsXSxtLCFkKSlicmVhazt0aGlzLmF0TGluZVN0YXJ0PSEwLHRoaXMubGluZVN0YXJ0PWYsbz0hMSxlPWx9ZWxzZSBpZihhPT09dS5DaGFyLkNPTU1FTlQpe2xldCBsPXUuTm9kZS5lbmRPZkxpbmUocyxlKzEpO2kucHVzaChuZXcgdS5SYW5nZShlLGwpKSxlPWx9ZWxzZXtsZXQgbD11Lk5vZGUuZW5kT2ZJZGVudGlmaWVyKHMsZSsxKTthPT09dS5DaGFyLlRBRyYmc1tsXT09PVwiLFwiJiYvXlthLXpBLVowLTktXStcXC5bYS16QS1aMC05LV0rLFxcZFxcZFxcZFxcZCgtXFxkXFxkKXswLDJ9XFwvXFxTLy50ZXN0KHMuc2xpY2UoZSsxLGwrMTMpKSYmKGw9dS5Ob2RlLmVuZE9mSWRlbnRpZmllcihzLGwrNSkpLGkucHVzaChuZXcgdS5SYW5nZShlLGwpKSxvPSEwLGU9dS5Ob2RlLmVuZE9mV2hpdGVTcGFjZShzLGwpfWE9c1tlXX1vJiZhPT09XCI6XCImJnUuTm9kZS5hdEJsYW5rKHMsZSsxLCEwKSYmKGUtPTEpO2xldCBjPXQucGFyc2VUeXBlKHMsZSxuKTtyZXR1cm57cHJvcHM6aSx0eXBlOmMsdmFsdWVTdGFydDplfX19O2Z1bmN0aW9uIE1vKHQpe2xldCBlPVtdO3QuaW5kZXhPZihcIlxcclwiKSE9PS0xJiYodD10LnJlcGxhY2UoL1xcclxcbj8vZywocyxpKT0+KHMubGVuZ3RoPjEmJmUucHVzaChpKSxgXG5gKSkpO2xldCBuPVtdLHI9MDtkb3tsZXQgcz1uZXcgUG4saT1uZXcgQm4oe3NyYzp0fSk7cj1zLnBhcnNlKGksciksbi5wdXNoKHMpfXdoaWxlKHI8dC5sZW5ndGgpO3JldHVybiBuLnNldE9yaWdSYW5nZXM9KCk9PntpZihlLmxlbmd0aD09PTApcmV0dXJuITE7Zm9yKGxldCBpPTE7aTxlLmxlbmd0aDsrK2kpZVtpXS09aTtsZXQgcz0wO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7KytpKXM9bltpXS5zZXRPcmlnUmFuZ2VzKGUscyk7cmV0dXJuIGUuc3BsaWNlKDAsZS5sZW5ndGgpLCEwfSxuLnRvU3RyaW5nPSgpPT5uLmpvaW4oYC4uLlxuYCksbn12cy5wYXJzZT1Nb30pO3ZhciAkZT1lZShrPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHA9bGUoKTtmdW5jdGlvbiBrbyh0LGUsbil7cmV0dXJuIG4/YCMke24ucmVwbGFjZSgvW1xcc1xcU11eL2dtLGAkJiR7ZX0jYCl9XG4ke2V9JHt0fWA6dH1mdW5jdGlvbiBCZSh0LGUsbil7cmV0dXJuIG4/bi5pbmRleE9mKGBcbmApPT09LTE/YCR7dH0gIyR7bn1gOmAke3R9XG5gK24ucmVwbGFjZSgvXi9nbSxgJHtlfHxcIlwifSNgKTp0fXZhciBWPWNsYXNze307ZnVuY3Rpb24gdWUodCxlLG4pe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQubWFwKChyLHMpPT51ZShyLFN0cmluZyhzKSxuKSk7aWYodCYmdHlwZW9mIHQudG9KU09OPT1cImZ1bmN0aW9uXCIpe2xldCByPW4mJm4uYW5jaG9ycyYmbi5hbmNob3JzLmdldCh0KTtyJiYobi5vbkNyZWF0ZT1pPT57ci5yZXM9aSxkZWxldGUgbi5vbkNyZWF0ZX0pO2xldCBzPXQudG9KU09OKGUsbik7cmV0dXJuIHImJm4ub25DcmVhdGUmJm4ub25DcmVhdGUocyksc31yZXR1cm4oIW58fCFuLmtlZXApJiZ0eXBlb2YgdD09XCJiaWdpbnRcIj9OdW1iZXIodCk6dH12YXIgUD1jbGFzcyBleHRlbmRzIFZ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnZhbHVlPWV9dG9KU09OKGUsbil7cmV0dXJuIG4mJm4ua2VlcD90aGlzLnZhbHVlOnVlKHRoaXMudmFsdWUsZSxuKX10b1N0cmluZygpe3JldHVybiBTdHJpbmcodGhpcy52YWx1ZSl9fTtmdW5jdGlvbiBQcyh0LGUsbil7bGV0IHI9bjtmb3IobGV0IHM9ZS5sZW5ndGgtMTtzPj0wOy0tcyl7bGV0IGk9ZVtzXTtpZihOdW1iZXIuaXNJbnRlZ2VyKGkpJiZpPj0wKXtsZXQgbz1bXTtvW2ldPXIscj1vfWVsc2V7bGV0IG89e307T2JqZWN0LmRlZmluZVByb3BlcnR5KG8saSx7dmFsdWU6cix3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHI9b319cmV0dXJuIHQuY3JlYXRlTm9kZShyLCExKX12YXIgUnM9dD0+dD09bnVsbHx8dHlwZW9mIHQ9PVwib2JqZWN0XCImJnRbU3ltYm9sLml0ZXJhdG9yXSgpLm5leHQoKS5kb25lLFc9Y2xhc3MgdCBleHRlbmRzIFZ7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSxwLl9kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaXRlbXNcIixbXSksdGhpcy5zY2hlbWE9ZX1hZGRJbihlLG4pe2lmKFJzKGUpKXRoaXMuYWRkKG4pO2Vsc2V7bGV0W3IsLi4uc109ZSxpPXRoaXMuZ2V0KHIsITApO2lmKGkgaW5zdGFuY2VvZiB0KWkuYWRkSW4ocyxuKTtlbHNlIGlmKGk9PT12b2lkIDAmJnRoaXMuc2NoZW1hKXRoaXMuc2V0KHIsUHModGhpcy5zY2hlbWEscyxuKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke3J9LiBSZW1haW5pbmcgcGF0aDogJHtzfWApfX1kZWxldGVJbihbZSwuLi5uXSl7aWYobi5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmRlbGV0ZShlKTtsZXQgcj10aGlzLmdldChlLCEwKTtpZihyIGluc3RhbmNlb2YgdClyZXR1cm4gci5kZWxldGVJbihuKTt0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2V9LiBSZW1haW5pbmcgcGF0aDogJHtufWApfWdldEluKFtlLC4uLm5dLHIpe2xldCBzPXRoaXMuZ2V0KGUsITApO3JldHVybiBuLmxlbmd0aD09PTA/IXImJnMgaW5zdGFuY2VvZiBQP3MudmFsdWU6czpzIGluc3RhbmNlb2YgdD9zLmdldEluKG4scik6dm9pZCAwfWhhc0FsbE51bGxWYWx1ZXMoKXtyZXR1cm4gdGhpcy5pdGVtcy5ldmVyeShlPT57aWYoIWV8fGUudHlwZSE9PVwiUEFJUlwiKXJldHVybiExO2xldCBuPWUudmFsdWU7cmV0dXJuIG49PW51bGx8fG4gaW5zdGFuY2VvZiBQJiZuLnZhbHVlPT1udWxsJiYhbi5jb21tZW50QmVmb3JlJiYhbi5jb21tZW50JiYhbi50YWd9KX1oYXNJbihbZSwuLi5uXSl7aWYobi5sZW5ndGg9PT0wKXJldHVybiB0aGlzLmhhcyhlKTtsZXQgcj10aGlzLmdldChlLCEwKTtyZXR1cm4gciBpbnN0YW5jZW9mIHQ/ci5oYXNJbihuKTohMX1zZXRJbihbZSwuLi5uXSxyKXtpZihuLmxlbmd0aD09PTApdGhpcy5zZXQoZSxyKTtlbHNle2xldCBzPXRoaXMuZ2V0KGUsITApO2lmKHMgaW5zdGFuY2VvZiB0KXMuc2V0SW4obixyKTtlbHNlIGlmKHM9PT12b2lkIDAmJnRoaXMuc2NoZW1hKXRoaXMuc2V0KGUsUHModGhpcy5zY2hlbWEsbixyKSk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFlBTUwgY29sbGVjdGlvbiBhdCAke2V9LiBSZW1haW5pbmcgcGF0aDogJHtufWApfX10b0pTT04oKXtyZXR1cm4gbnVsbH10b1N0cmluZyhlLHtibG9ja0l0ZW06bixmbG93Q2hhcnM6cixpc01hcDpzLGl0ZW1JbmRlbnQ6aX0sbyxhKXtsZXR7aW5kZW50OmMsaW5kZW50U3RlcDpsLHN0cmluZ2lmeTpmfT1lLG09dGhpcy50eXBlPT09cC5UeXBlLkZMT1dfTUFQfHx0aGlzLnR5cGU9PT1wLlR5cGUuRkxPV19TRVF8fGUuaW5GbG93O20mJihpKz1sKTtsZXQgZD1zJiZ0aGlzLmhhc0FsbE51bGxWYWx1ZXMoKTtlPU9iamVjdC5hc3NpZ24oe30sZSx7YWxsTnVsbFZhbHVlczpkLGluZGVudDppLGluRmxvdzptLHR5cGU6bnVsbH0pO2xldCB5PSExLGg9ITEsZz10aGlzLml0ZW1zLnJlZHVjZSgoQyxMLE0pPT57bGV0IEE7TCYmKCF5JiZMLnNwYWNlQmVmb3JlJiZDLnB1c2goe3R5cGU6XCJjb21tZW50XCIsc3RyOlwiXCJ9KSxMLmNvbW1lbnRCZWZvcmUmJkwuY29tbWVudEJlZm9yZS5tYXRjaCgvXi4qJC9nbSkuZm9yRWFjaChPaT0+e0MucHVzaCh7dHlwZTpcImNvbW1lbnRcIixzdHI6YCMke09pfWB9KX0pLEwuY29tbWVudCYmKEE9TC5jb21tZW50KSxtJiYoIXkmJkwuc3BhY2VCZWZvcmV8fEwuY29tbWVudEJlZm9yZXx8TC5jb21tZW50fHxMLmtleSYmKEwua2V5LmNvbW1lbnRCZWZvcmV8fEwua2V5LmNvbW1lbnQpfHxMLnZhbHVlJiYoTC52YWx1ZS5jb21tZW50QmVmb3JlfHxMLnZhbHVlLmNvbW1lbnQpKSYmKGg9ITApKSx5PSExO2xldCBfPWYoTCxlLCgpPT5BPW51bGwsKCk9Pnk9ITApO3JldHVybiBtJiYhaCYmXy5pbmNsdWRlcyhgXG5gKSYmKGg9ITApLG0mJk08dGhpcy5pdGVtcy5sZW5ndGgtMSYmKF8rPVwiLFwiKSxfPUJlKF8saSxBKSx5JiYoQXx8bSkmJih5PSExKSxDLnB1c2goe3R5cGU6XCJpdGVtXCIsc3RyOl99KSxDfSxbXSksdztpZihnLmxlbmd0aD09PTApdz1yLnN0YXJ0K3IuZW5kO2Vsc2UgaWYobSl7bGV0e3N0YXJ0OkMsZW5kOkx9PXIsTT1nLm1hcChBPT5BLnN0cik7aWYoaHx8TS5yZWR1Y2UoKEEsXyk9PkErXy5sZW5ndGgrMiwyKT50Lm1heEZsb3dTdHJpbmdTaW5nbGVMaW5lTGVuZ3RoKXt3PUM7Zm9yKGxldCBBIG9mIE0pdys9QT9gXG4ke2x9JHtjfSR7QX1gOmBcbmA7dys9YFxuJHtjfSR7TH1gfWVsc2Ugdz1gJHtDfSAke00uam9pbihcIiBcIil9ICR7TH1gfWVsc2V7bGV0IEM9Zy5tYXAobik7dz1DLnNoaWZ0KCk7Zm9yKGxldCBMIG9mIEMpdys9TD9gXG4ke2N9JHtMfWA6YFxuYH1yZXR1cm4gdGhpcy5jb21tZW50Pyh3Kz1gXG5gK3RoaXMuY29tbWVudC5yZXBsYWNlKC9eL2dtLGAke2N9I2ApLG8mJm8oKSk6eSYmYSYmYSgpLHd9fTtwLl9kZWZpbmVQcm9wZXJ0eShXLFwibWF4Rmxvd1N0cmluZ1NpbmdsZUxpbmVMZW5ndGhcIiw2MCk7ZnVuY3Rpb24gJHQodCl7bGV0IGU9dCBpbnN0YW5jZW9mIFA/dC52YWx1ZTp0O3JldHVybiBlJiZ0eXBlb2YgZT09XCJzdHJpbmdcIiYmKGU9TnVtYmVyKGUpKSxOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0wP2U6bnVsbH12YXIgcGU9Y2xhc3MgZXh0ZW5kcyBXe2FkZChlKXt0aGlzLml0ZW1zLnB1c2goZSl9ZGVsZXRlKGUpe2xldCBuPSR0KGUpO3JldHVybiB0eXBlb2YgbiE9XCJudW1iZXJcIj8hMTp0aGlzLml0ZW1zLnNwbGljZShuLDEpLmxlbmd0aD4wfWdldChlLG4pe2xldCByPSR0KGUpO2lmKHR5cGVvZiByIT1cIm51bWJlclwiKXJldHVybjtsZXQgcz10aGlzLml0ZW1zW3JdO3JldHVybiFuJiZzIGluc3RhbmNlb2YgUD9zLnZhbHVlOnN9aGFzKGUpe2xldCBuPSR0KGUpO3JldHVybiB0eXBlb2Ygbj09XCJudW1iZXJcIiYmbjx0aGlzLml0ZW1zLmxlbmd0aH1zZXQoZSxuKXtsZXQgcj0kdChlKTtpZih0eXBlb2YgciE9XCJudW1iZXJcIil0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEgdmFsaWQgaW5kZXgsIG5vdCAke2V9LmApO3RoaXMuaXRlbXNbcl09bn10b0pTT04oZSxuKXtsZXQgcj1bXTtuJiZuLm9uQ3JlYXRlJiZuLm9uQ3JlYXRlKHIpO2xldCBzPTA7Zm9yKGxldCBpIG9mIHRoaXMuaXRlbXMpci5wdXNoKHVlKGksU3RyaW5nKHMrKyksbikpO3JldHVybiByfXRvU3RyaW5nKGUsbixyKXtyZXR1cm4gZT9zdXBlci50b1N0cmluZyhlLHtibG9ja0l0ZW06cz0+cy50eXBlPT09XCJjb21tZW50XCI/cy5zdHI6YC0gJHtzLnN0cn1gLGZsb3dDaGFyczp7c3RhcnQ6XCJbXCIsZW5kOlwiXVwifSxpc01hcDohMSxpdGVtSW5kZW50OihlLmluZGVudHx8XCJcIikrXCIgIFwifSxuLHIpOkpTT04uc3RyaW5naWZ5KHRoaXMpfX0sdm89KHQsZSxuKT0+ZT09PW51bGw/XCJcIjp0eXBlb2YgZSE9XCJvYmplY3RcIj9TdHJpbmcoZSk6dCBpbnN0YW5jZW9mIFYmJm4mJm4uZG9jP3QudG9TdHJpbmcoe2FuY2hvcnM6T2JqZWN0LmNyZWF0ZShudWxsKSxkb2M6bi5kb2MsaW5kZW50OlwiXCIsaW5kZW50U3RlcDpuLmluZGVudFN0ZXAsaW5GbG93OiEwLGluU3RyaW5naWZ5S2V5OiEwLHN0cmluZ2lmeTpuLnN0cmluZ2lmeX0pOkpTT04uc3RyaW5naWZ5KGUpLFQ9Y2xhc3MgdCBleHRlbmRzIFZ7Y29uc3RydWN0b3IoZSxuPW51bGwpe3N1cGVyKCksdGhpcy5rZXk9ZSx0aGlzLnZhbHVlPW4sdGhpcy50eXBlPXQuVHlwZS5QQUlSfWdldCBjb21tZW50QmVmb3JlKCl7cmV0dXJuIHRoaXMua2V5IGluc3RhbmNlb2YgVj90aGlzLmtleS5jb21tZW50QmVmb3JlOnZvaWQgMH1zZXQgY29tbWVudEJlZm9yZShlKXtpZih0aGlzLmtleT09bnVsbCYmKHRoaXMua2V5PW5ldyBQKG51bGwpKSx0aGlzLmtleSBpbnN0YW5jZW9mIFYpdGhpcy5rZXkuY29tbWVudEJlZm9yZT1lO2Vsc2V7bGV0IG49XCJQYWlyLmNvbW1lbnRCZWZvcmUgaXMgYW4gYWxpYXMgZm9yIFBhaXIua2V5LmNvbW1lbnRCZWZvcmUuIFRvIHNldCBpdCwgdGhlIGtleSBtdXN0IGJlIGEgTm9kZS5cIjt0aHJvdyBuZXcgRXJyb3Iobil9fWFkZFRvSlNNYXAoZSxuKXtsZXQgcj11ZSh0aGlzLmtleSxcIlwiLGUpO2lmKG4gaW5zdGFuY2VvZiBNYXApe2xldCBzPXVlKHRoaXMudmFsdWUscixlKTtuLnNldChyLHMpfWVsc2UgaWYobiBpbnN0YW5jZW9mIFNldCluLmFkZChyKTtlbHNle2xldCBzPXZvKHRoaXMua2V5LHIsZSksaT11ZSh0aGlzLnZhbHVlLHMsZSk7cyBpbiBuP09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHMse3ZhbHVlOmksd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTpuW3NdPWl9cmV0dXJuIG59dG9KU09OKGUsbil7bGV0IHI9biYmbi5tYXBBc01hcD9uZXcgTWFwOnt9O3JldHVybiB0aGlzLmFkZFRvSlNNYXAobixyKX10b1N0cmluZyhlLG4scil7aWYoIWV8fCFlLmRvYylyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7bGV0e2luZGVudDpzLGluZGVudFNlcTppLHNpbXBsZUtleXM6b309ZS5kb2Mub3B0aW9ucyx7a2V5OmEsdmFsdWU6Y309dGhpcyxsPWEgaW5zdGFuY2VvZiBWJiZhLmNvbW1lbnQ7aWYobyl7aWYobCl0aHJvdyBuZXcgRXJyb3IoXCJXaXRoIHNpbXBsZSBrZXlzLCBrZXkgbm9kZXMgY2Fubm90IGhhdmUgY29tbWVudHNcIik7aWYoYSBpbnN0YW5jZW9mIFcpe2xldCBfPVwiV2l0aCBzaW1wbGUga2V5cywgY29sbGVjdGlvbiBjYW5ub3QgYmUgdXNlZCBhcyBhIGtleSB2YWx1ZVwiO3Rocm93IG5ldyBFcnJvcihfKX19bGV0IGY9IW8mJighYXx8bHx8KGEgaW5zdGFuY2VvZiBWP2EgaW5zdGFuY2VvZiBXfHxhLnR5cGU9PT1wLlR5cGUuQkxPQ0tfRk9MREVEfHxhLnR5cGU9PT1wLlR5cGUuQkxPQ0tfTElURVJBTDp0eXBlb2YgYT09XCJvYmplY3RcIikpLHtkb2M6bSxpbmRlbnQ6ZCxpbmRlbnRTdGVwOnksc3RyaW5naWZ5Omh9PWU7ZT1PYmplY3QuYXNzaWduKHt9LGUse2ltcGxpY2l0S2V5OiFmLGluZGVudDpkK3l9KTtsZXQgZz0hMSx3PWgoYSxlLCgpPT5sPW51bGwsKCk9Pmc9ITApO2lmKHc9QmUodyxlLmluZGVudCxsKSwhZiYmdy5sZW5ndGg+MTAyNCl7aWYobyl0aHJvdyBuZXcgRXJyb3IoXCJXaXRoIHNpbXBsZSBrZXlzLCBzaW5nbGUgbGluZSBzY2FsYXIgbXVzdCBub3Qgc3BhbiBtb3JlIHRoYW4gMTAyNCBjaGFyYWN0ZXJzXCIpO2Y9ITB9aWYoZS5hbGxOdWxsVmFsdWVzJiYhbylyZXR1cm4gdGhpcy5jb21tZW50Pyh3PUJlKHcsZS5pbmRlbnQsdGhpcy5jb21tZW50KSxuJiZuKCkpOmcmJiFsJiZyJiZyKCksZS5pbkZsb3cmJiFmP3c6YD8gJHt3fWA7dz1mP2A/ICR7d31cbiR7ZH06YDpgJHt3fTpgLHRoaXMuY29tbWVudCYmKHc9QmUodyxlLmluZGVudCx0aGlzLmNvbW1lbnQpLG4mJm4oKSk7bGV0IEM9XCJcIixMPW51bGw7aWYoYyBpbnN0YW5jZW9mIFYpe2lmKGMuc3BhY2VCZWZvcmUmJihDPWBcbmApLGMuY29tbWVudEJlZm9yZSl7bGV0IF89Yy5jb21tZW50QmVmb3JlLnJlcGxhY2UoL14vZ20sYCR7ZS5pbmRlbnR9I2ApO0MrPWBcbiR7X31gfUw9Yy5jb21tZW50fWVsc2UgYyYmdHlwZW9mIGM9PVwib2JqZWN0XCImJihjPW0uc2NoZW1hLmNyZWF0ZU5vZGUoYywhMCkpO2UuaW1wbGljaXRLZXk9ITEsIWYmJiF0aGlzLmNvbW1lbnQmJmMgaW5zdGFuY2VvZiBQJiYoZS5pbmRlbnRBdFN0YXJ0PXcubGVuZ3RoKzEpLGc9ITEsIWkmJnM+PTImJiFlLmluRmxvdyYmIWYmJmMgaW5zdGFuY2VvZiBwZSYmYy50eXBlIT09cC5UeXBlLkZMT1dfU0VRJiYhYy50YWcmJiFtLmFuY2hvcnMuZ2V0TmFtZShjKSYmKGUuaW5kZW50PWUuaW5kZW50LnN1YnN0cigyKSk7bGV0IE09aChjLGUsKCk9Pkw9bnVsbCwoKT0+Zz0hMCksQT1cIiBcIjtyZXR1cm4gQ3x8dGhpcy5jb21tZW50P0E9YCR7Q31cbiR7ZS5pbmRlbnR9YDohZiYmYyBpbnN0YW5jZW9mIFc/KCEoTVswXT09PVwiW1wifHxNWzBdPT09XCJ7XCIpfHxNLmluY2x1ZGVzKGBcbmApKSYmKEE9YFxuJHtlLmluZGVudH1gKTpNWzBdPT09YFxuYCYmKEE9XCJcIiksZyYmIUwmJnImJnIoKSxCZSh3K0ErTSxlLmluZGVudCxMKX19O3AuX2RlZmluZVByb3BlcnR5KFQsXCJUeXBlXCIse1BBSVI6XCJQQUlSXCIsTUVSR0VfUEFJUjpcIk1FUkdFX1BBSVJcIn0pO3ZhciBGdD0odCxlKT0+e2lmKHQgaW5zdGFuY2VvZiB3ZSl7bGV0IG49ZS5nZXQodC5zb3VyY2UpO3JldHVybiBuLmNvdW50Km4uYWxpYXNDb3VudH1lbHNlIGlmKHQgaW5zdGFuY2VvZiBXKXtsZXQgbj0wO2ZvcihsZXQgciBvZiB0Lml0ZW1zKXtsZXQgcz1GdChyLGUpO3M+biYmKG49cyl9cmV0dXJuIG59ZWxzZSBpZih0IGluc3RhbmNlb2YgVCl7bGV0IG49RnQodC5rZXksZSkscj1GdCh0LnZhbHVlLGUpO3JldHVybiBNYXRoLm1heChuLHIpfXJldHVybiAxfSx3ZT1jbGFzcyB0IGV4dGVuZHMgVntzdGF0aWMgc3RyaW5naWZ5KHtyYW5nZTplLHNvdXJjZTpufSx7YW5jaG9yczpyLGRvYzpzLGltcGxpY2l0S2V5OmksaW5TdHJpbmdpZnlLZXk6b30pe2xldCBhPU9iamVjdC5rZXlzKHIpLmZpbmQobD0+cltsXT09PW4pO2lmKCFhJiZvJiYoYT1zLmFuY2hvcnMuZ2V0TmFtZShuKXx8cy5hbmNob3JzLm5ld05hbWUoKSksYSlyZXR1cm5gKiR7YX0ke2k/XCIgXCI6XCJcIn1gO2xldCBjPXMuYW5jaG9ycy5nZXROYW1lKG4pP1wiQWxpYXMgbm9kZSBtdXN0IGJlIGFmdGVyIHNvdXJjZSBub2RlXCI6XCJTb3VyY2Ugbm9kZSBub3QgZm91bmQgZm9yIGFsaWFzIG5vZGVcIjt0aHJvdyBuZXcgRXJyb3IoYCR7Y30gWyR7ZX1dYCl9Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLnNvdXJjZT1lLHRoaXMudHlwZT1wLlR5cGUuQUxJQVN9c2V0IHRhZyhlKXt0aHJvdyBuZXcgRXJyb3IoXCJBbGlhcyBub2RlcyBjYW5ub3QgaGF2ZSB0YWdzXCIpfXRvSlNPTihlLG4pe2lmKCFuKXJldHVybiB1ZSh0aGlzLnNvdXJjZSxlLG4pO2xldHthbmNob3JzOnIsbWF4QWxpYXNDb3VudDpzfT1uLGk9ci5nZXQodGhpcy5zb3VyY2UpO2lmKCFpfHxpLnJlcz09PXZvaWQgMCl7bGV0IG89XCJUaGlzIHNob3VsZCBub3QgaGFwcGVuOiBBbGlhcyBhbmNob3Igd2FzIG5vdCByZXNvbHZlZD9cIjt0aHJvdyB0aGlzLmNzdE5vZGU/bmV3IHAuWUFNTFJlZmVyZW5jZUVycm9yKHRoaXMuY3N0Tm9kZSxvKTpuZXcgUmVmZXJlbmNlRXJyb3Iobyl9aWYocz49MCYmKGkuY291bnQrPTEsaS5hbGlhc0NvdW50PT09MCYmKGkuYWxpYXNDb3VudD1GdCh0aGlzLnNvdXJjZSxyKSksaS5jb3VudCppLmFsaWFzQ291bnQ+cykpe2xldCBvPVwiRXhjZXNzaXZlIGFsaWFzIGNvdW50IGluZGljYXRlcyBhIHJlc291cmNlIGV4aGF1c3Rpb24gYXR0YWNrXCI7dGhyb3cgdGhpcy5jc3ROb2RlP25ldyBwLllBTUxSZWZlcmVuY2VFcnJvcih0aGlzLmNzdE5vZGUsbyk6bmV3IFJlZmVyZW5jZUVycm9yKG8pfXJldHVybiBpLnJlc310b1N0cmluZyhlKXtyZXR1cm4gdC5zdHJpbmdpZnkodGhpcyxlKX19O3AuX2RlZmluZVByb3BlcnR5KHdlLFwiZGVmYXVsdFwiLCEwKTtmdW5jdGlvbiBwdCh0LGUpe2xldCBuPWUgaW5zdGFuY2VvZiBQP2UudmFsdWU6ZTtmb3IobGV0IHIgb2YgdClpZihyIGluc3RhbmNlb2YgVCYmKHIua2V5PT09ZXx8ci5rZXk9PT1ufHxyLmtleSYmci5rZXkudmFsdWU9PT1uKSlyZXR1cm4gcn12YXIgbXQ9Y2xhc3MgZXh0ZW5kcyBXe2FkZChlLG4pe2U/ZSBpbnN0YW5jZW9mIFR8fChlPW5ldyBUKGUua2V5fHxlLGUudmFsdWUpKTplPW5ldyBUKGUpO2xldCByPXB0KHRoaXMuaXRlbXMsZS5rZXkpLHM9dGhpcy5zY2hlbWEmJnRoaXMuc2NoZW1hLnNvcnRNYXBFbnRyaWVzO2lmKHIpaWYobilyLnZhbHVlPWUudmFsdWU7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEtleSAke2Uua2V5fSBhbHJlYWR5IHNldGApO2Vsc2UgaWYocyl7bGV0IGk9dGhpcy5pdGVtcy5maW5kSW5kZXgobz0+cyhlLG8pPDApO2k9PT0tMT90aGlzLml0ZW1zLnB1c2goZSk6dGhpcy5pdGVtcy5zcGxpY2UoaSwwLGUpfWVsc2UgdGhpcy5pdGVtcy5wdXNoKGUpfWRlbGV0ZShlKXtsZXQgbj1wdCh0aGlzLml0ZW1zLGUpO3JldHVybiBuP3RoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihuKSwxKS5sZW5ndGg+MDohMX1nZXQoZSxuKXtsZXQgcj1wdCh0aGlzLml0ZW1zLGUpLHM9ciYmci52YWx1ZTtyZXR1cm4hbiYmcyBpbnN0YW5jZW9mIFA/cy52YWx1ZTpzfWhhcyhlKXtyZXR1cm4hIXB0KHRoaXMuaXRlbXMsZSl9c2V0KGUsbil7dGhpcy5hZGQobmV3IFQoZSxuKSwhMCl9dG9KU09OKGUsbixyKXtsZXQgcz1yP25ldyByOm4mJm4ubWFwQXNNYXA/bmV3IE1hcDp7fTtuJiZuLm9uQ3JlYXRlJiZuLm9uQ3JlYXRlKHMpO2ZvcihsZXQgaSBvZiB0aGlzLml0ZW1zKWkuYWRkVG9KU01hcChuLHMpO3JldHVybiBzfXRvU3RyaW5nKGUsbixyKXtpZighZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcyk7Zm9yKGxldCBzIG9mIHRoaXMuaXRlbXMpaWYoIShzIGluc3RhbmNlb2YgVCkpdGhyb3cgbmV3IEVycm9yKGBNYXAgaXRlbXMgbXVzdCBhbGwgYmUgcGFpcnM7IGZvdW5kICR7SlNPTi5zdHJpbmdpZnkocyl9IGluc3RlYWRgKTtyZXR1cm4gc3VwZXIudG9TdHJpbmcoZSx7YmxvY2tJdGVtOnM9PnMuc3RyLGZsb3dDaGFyczp7c3RhcnQ6XCJ7XCIsZW5kOlwifVwifSxpc01hcDohMCxpdGVtSW5kZW50OmUuaW5kZW50fHxcIlwifSxuLHIpfX0sRHM9XCI8PFwiLEt0PWNsYXNzIGV4dGVuZHMgVHtjb25zdHJ1Y3RvcihlKXtpZihlIGluc3RhbmNlb2YgVCl7bGV0IG49ZS52YWx1ZTtuIGluc3RhbmNlb2YgcGV8fChuPW5ldyBwZSxuLml0ZW1zLnB1c2goZS52YWx1ZSksbi5yYW5nZT1lLnZhbHVlLnJhbmdlKSxzdXBlcihlLmtleSxuKSx0aGlzLnJhbmdlPWUucmFuZ2V9ZWxzZSBzdXBlcihuZXcgUChEcyksbmV3IHBlKTt0aGlzLnR5cGU9VC5UeXBlLk1FUkdFX1BBSVJ9YWRkVG9KU01hcChlLG4pe2ZvcihsZXR7c291cmNlOnJ9b2YgdGhpcy52YWx1ZS5pdGVtcyl7aWYoIShyIGluc3RhbmNlb2YgbXQpKXRocm93IG5ldyBFcnJvcihcIk1lcmdlIHNvdXJjZXMgbXVzdCBiZSBtYXBzXCIpO2xldCBzPXIudG9KU09OKG51bGwsZSxNYXApO2ZvcihsZXRbaSxvXW9mIHMpbiBpbnN0YW5jZW9mIE1hcD9uLmhhcyhpKXx8bi5zZXQoaSxvKTpuIGluc3RhbmNlb2YgU2V0P24uYWRkKGkpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkobixpLHt2YWx1ZTpvLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9cmV0dXJuIG59dG9TdHJpbmcoZSxuKXtsZXQgcj10aGlzLnZhbHVlO2lmKHIuaXRlbXMubGVuZ3RoPjEpcmV0dXJuIHN1cGVyLnRvU3RyaW5nKGUsbik7dGhpcy52YWx1ZT1yLml0ZW1zWzBdO2xldCBzPXN1cGVyLnRvU3RyaW5nKGUsbik7cmV0dXJuIHRoaXMudmFsdWU9cixzfX0sSW89e2RlZmF1bHRUeXBlOnAuVHlwZS5CTE9DS19MSVRFUkFMLGxpbmVXaWR0aDo3Nn0sUG89e3RydWVTdHI6XCJ0cnVlXCIsZmFsc2VTdHI6XCJmYWxzZVwifSxfbz17YXNCaWdJbnQ6ITF9LHhvPXtudWxsU3RyOlwibnVsbFwifSxiZT17ZGVmYXVsdFR5cGU6cC5UeXBlLlBMQUlOLGRvdWJsZVF1b3RlZDp7anNvbkVuY29kaW5nOiExLG1pbk11bHRpTGluZUxlbmd0aDo0MH0sZm9sZDp7bGluZVdpZHRoOjgwLG1pbkNvbnRlbnRXaWR0aDoyMH19O2Z1bmN0aW9uIEZuKHQsZSxuKXtmb3IobGV0e2Zvcm1hdDpyLHRlc3Q6cyxyZXNvbHZlOml9b2YgZSlpZihzKXtsZXQgbz10Lm1hdGNoKHMpO2lmKG8pe2xldCBhPWkuYXBwbHkobnVsbCxvKTtyZXR1cm4gYSBpbnN0YW5jZW9mIFB8fChhPW5ldyBQKGEpKSxyJiYoYS5mb3JtYXQ9ciksYX19cmV0dXJuIG4mJih0PW4odCkpLG5ldyBQKHQpfXZhciBZcz1cImZsb3dcIiwkbj1cImJsb2NrXCIscXQ9XCJxdW90ZWRcIixfcz0odCxlKT0+e2xldCBuPXRbZSsxXTtmb3IoO249PT1cIiBcInx8bj09PVwiXHRcIjspe2RvIG49dFtlKz0xXTt3aGlsZShuJiZuIT09YFxuYCk7bj10W2UrMV19cmV0dXJuIGV9O2Z1bmN0aW9uIFZ0KHQsZSxuLHtpbmRlbnRBdFN0YXJ0OnIsbGluZVdpZHRoOnM9ODAsbWluQ29udGVudFdpZHRoOmk9MjAsb25Gb2xkOm8sb25PdmVyZmxvdzphfSl7aWYoIXN8fHM8MClyZXR1cm4gdDtsZXQgYz1NYXRoLm1heCgxK2ksMStzLWUubGVuZ3RoKTtpZih0Lmxlbmd0aDw9YylyZXR1cm4gdDtsZXQgbD1bXSxmPXt9LG09cy1lLmxlbmd0aDt0eXBlb2Ygcj09XCJudW1iZXJcIiYmKHI+cy1NYXRoLm1heCgyLGkpP2wucHVzaCgwKTptPXMtcik7bGV0IGQseSxoPSExLGc9LTEsdz0tMSxDPS0xO249PT0kbiYmKGc9X3ModCxnKSxnIT09LTEmJihtPWcrYykpO2ZvcihsZXQgTTtNPXRbZys9MV07KXtpZihuPT09cXQmJk09PT1cIlxcXFxcIil7c3dpdGNoKHc9Zyx0W2crMV0pe2Nhc2VcInhcIjpnKz0zO2JyZWFrO2Nhc2VcInVcIjpnKz01O2JyZWFrO2Nhc2VcIlVcIjpnKz05O2JyZWFrO2RlZmF1bHQ6Zys9MX1DPWd9aWYoTT09PWBcbmApbj09PSRuJiYoZz1fcyh0LGcpKSxtPWcrYyxkPXZvaWQgMDtlbHNle2lmKE09PT1cIiBcIiYmeSYmeSE9PVwiIFwiJiZ5IT09YFxuYCYmeSE9PVwiXHRcIil7bGV0IEE9dFtnKzFdO0EmJkEhPT1cIiBcIiYmQSE9PWBcbmAmJkEhPT1cIlx0XCImJihkPWcpfWlmKGc+PW0paWYoZClsLnB1c2goZCksbT1kK2MsZD12b2lkIDA7ZWxzZSBpZihuPT09cXQpe2Zvcig7eT09PVwiIFwifHx5PT09XCJcdFwiOyl5PU0sTT10W2crPTFdLGg9ITA7bGV0IEE9Zz5DKzE/Zy0yOnctMTtpZihmW0FdKXJldHVybiB0O2wucHVzaChBKSxmW0FdPSEwLG09QStjLGQ9dm9pZCAwfWVsc2UgaD0hMH15PU19aWYoaCYmYSYmYSgpLGwubGVuZ3RoPT09MClyZXR1cm4gdDtvJiZvKCk7bGV0IEw9dC5zbGljZSgwLGxbMF0pO2ZvcihsZXQgTT0wO008bC5sZW5ndGg7KytNKXtsZXQgQT1sW01dLF89bFtNKzFdfHx0Lmxlbmd0aDtBPT09MD9MPWBcbiR7ZX0ke3Quc2xpY2UoMCxfKX1gOihuPT09cXQmJmZbQV0mJihMKz1gJHt0W0FdfVxcXFxgKSxMKz1gXG4ke2V9JHt0LnNsaWNlKEErMSxfKX1gKX1yZXR1cm4gTH12YXIgcW49KHtpbmRlbnRBdFN0YXJ0OnR9KT0+dD9PYmplY3QuYXNzaWduKHtpbmRlbnRBdFN0YXJ0OnR9LGJlLmZvbGQpOmJlLmZvbGQsV3Q9dD0+L14oJXwtLS18XFwuXFwuXFwuKS9tLnRlc3QodCk7ZnVuY3Rpb24gUm8odCxlLG4pe2lmKCFlfHxlPDApcmV0dXJuITE7bGV0IHI9ZS1uLHM9dC5sZW5ndGg7aWYoczw9cilyZXR1cm4hMTtmb3IobGV0IGk9MCxvPTA7aTxzOysraSlpZih0W2ldPT09YFxuYCl7aWYoaS1vPnIpcmV0dXJuITA7aWYobz1pKzEscy1vPD1yKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFNlKHQsZSl7bGV0e2ltcGxpY2l0S2V5Om59PWUse2pzb25FbmNvZGluZzpyLG1pbk11bHRpTGluZUxlbmd0aDpzfT1iZS5kb3VibGVRdW90ZWQsaT1KU09OLnN0cmluZ2lmeSh0KTtpZihyKXJldHVybiBpO2xldCBvPWUuaW5kZW50fHwoV3QodCk/XCIgIFwiOlwiXCIpLGE9XCJcIixjPTA7Zm9yKGxldCBsPTAsZj1pW2xdO2Y7Zj1pWysrbF0paWYoZj09PVwiIFwiJiZpW2wrMV09PT1cIlxcXFxcIiYmaVtsKzJdPT09XCJuXCImJihhKz1pLnNsaWNlKGMsbCkrXCJcXFxcIFwiLGwrPTEsYz1sLGY9XCJcXFxcXCIpLGY9PT1cIlxcXFxcIilzd2l0Y2goaVtsKzFdKXtjYXNlXCJ1XCI6e2ErPWkuc2xpY2UoYyxsKTtsZXQgbT1pLnN1YnN0cihsKzIsNCk7c3dpdGNoKG0pe2Nhc2VcIjAwMDBcIjphKz1cIlxcXFwwXCI7YnJlYWs7Y2FzZVwiMDAwN1wiOmErPVwiXFxcXGFcIjticmVhaztjYXNlXCIwMDBiXCI6YSs9XCJcXFxcdlwiO2JyZWFrO2Nhc2VcIjAwMWJcIjphKz1cIlxcXFxlXCI7YnJlYWs7Y2FzZVwiMDA4NVwiOmErPVwiXFxcXE5cIjticmVhaztjYXNlXCIwMGEwXCI6YSs9XCJcXFxcX1wiO2JyZWFrO2Nhc2VcIjIwMjhcIjphKz1cIlxcXFxMXCI7YnJlYWs7Y2FzZVwiMjAyOVwiOmErPVwiXFxcXFBcIjticmVhaztkZWZhdWx0Om0uc3Vic3RyKDAsMik9PT1cIjAwXCI/YSs9XCJcXFxceFwiK20uc3Vic3RyKDIpOmErPWkuc3Vic3RyKGwsNil9bCs9NSxjPWwrMX1icmVhaztjYXNlXCJuXCI6aWYobnx8aVtsKzJdPT09J1wiJ3x8aS5sZW5ndGg8cylsKz0xO2Vsc2V7Zm9yKGErPWkuc2xpY2UoYyxsKStgXG5cbmA7aVtsKzJdPT09XCJcXFxcXCImJmlbbCszXT09PVwiblwiJiZpW2wrNF0hPT0nXCInOylhKz1gXG5gLGwrPTI7YSs9byxpW2wrMl09PT1cIiBcIiYmKGErPVwiXFxcXFwiKSxsKz0xLGM9bCsxfWJyZWFrO2RlZmF1bHQ6bCs9MX1yZXR1cm4gYT1jP2EraS5zbGljZShjKTppLG4/YTpWdChhLG8scXQscW4oZSkpfWZ1bmN0aW9uIEJzKHQsZSl7aWYoZS5pbXBsaWNpdEtleSl7aWYoL1xcbi8udGVzdCh0KSlyZXR1cm4gU2UodCxlKX1lbHNlIGlmKC9bIFxcdF1cXG58XFxuWyBcXHRdLy50ZXN0KHQpKXJldHVybiBTZSh0LGUpO2xldCBuPWUuaW5kZW50fHwoV3QodCk/XCIgIFwiOlwiXCIpLHI9XCInXCIrdC5yZXBsYWNlKC8nL2csXCInJ1wiKS5yZXBsYWNlKC9cXG4rL2csYCQmXG4ke259YCkrXCInXCI7cmV0dXJuIGUuaW1wbGljaXRLZXk/cjpWdChyLG4sWXMscW4oZSkpfWZ1bmN0aW9uIFV0KHtjb21tZW50OnQsdHlwZTplLHZhbHVlOm59LHIscyxpKXtpZigvXFxuW1xcdCBdKyQvLnRlc3Qobil8fC9eXFxzKiQvLnRlc3QobikpcmV0dXJuIFNlKG4scik7bGV0IG89ci5pbmRlbnR8fChyLmZvcmNlQmxvY2tJbmRlbnR8fFd0KG4pP1wiICBcIjpcIlwiKSxhPW8/XCIyXCI6XCIxXCIsYz1lPT09cC5UeXBlLkJMT0NLX0ZPTERFRD8hMTplPT09cC5UeXBlLkJMT0NLX0xJVEVSQUw/ITA6IVJvKG4sYmUuZm9sZC5saW5lV2lkdGgsby5sZW5ndGgpLGw9Yz9cInxcIjpcIj5cIjtpZighbilyZXR1cm4gbCtgXG5gO2xldCBmPVwiXCIsbT1cIlwiO2lmKG49bi5yZXBsYWNlKC9bXFxuXFx0IF0qJC8seT0+e2xldCBoPXkuaW5kZXhPZihgXG5gKTtyZXR1cm4gaD09PS0xP2wrPVwiLVwiOihuPT09eXx8aCE9PXkubGVuZ3RoLTEpJiYobCs9XCIrXCIsaSYmaSgpKSxtPXkucmVwbGFjZSgvXFxuJC8sXCJcIiksXCJcIn0pLnJlcGxhY2UoL15bXFxuIF0qLyx5PT57eS5pbmRleE9mKFwiIFwiKSE9PS0xJiYobCs9YSk7bGV0IGg9eS5tYXRjaCgvICskLyk7cmV0dXJuIGg/KGY9eS5zbGljZSgwLC1oWzBdLmxlbmd0aCksaFswXSk6KGY9eSxcIlwiKX0pLG0mJihtPW0ucmVwbGFjZSgvXFxuKyg/IVxcbnwkKS9nLGAkJiR7b31gKSksZiYmKGY9Zi5yZXBsYWNlKC9cXG4rL2csYCQmJHtvfWApKSx0JiYobCs9XCIgI1wiK3QucmVwbGFjZSgvID9bXFxyXFxuXSsvZyxcIiBcIikscyYmcygpKSwhbilyZXR1cm5gJHtsfSR7YX1cbiR7b30ke219YDtpZihjKXJldHVybiBuPW4ucmVwbGFjZSgvXFxuKy9nLGAkJiR7b31gKSxgJHtsfVxuJHtvfSR7Zn0ke259JHttfWA7bj1uLnJlcGxhY2UoL1xcbisvZyxgXG4kJmApLnJlcGxhY2UoLyg/Ol58XFxuKShbXFx0IF0uKikoPzooW1xcblxcdCBdKilcXG4oPyFbXFxuXFx0IF0pKT8vZyxcIiQxJDJcIikucmVwbGFjZSgvXFxuKy9nLGAkJiR7b31gKTtsZXQgZD1WdChgJHtmfSR7bn0ke219YCxvLCRuLGJlLmZvbGQpO3JldHVybmAke2x9XG4ke299JHtkfWB9ZnVuY3Rpb24gRG8odCxlLG4scil7bGV0e2NvbW1lbnQ6cyx0eXBlOmksdmFsdWU6b309dCx7YWN0dWFsU3RyaW5nOmEsaW1wbGljaXRLZXk6YyxpbmRlbnQ6bCxpbkZsb3c6Zn09ZTtpZihjJiYvW1xcbltcXF17fSxdLy50ZXN0KG8pfHxmJiYvW1tcXF17fSxdLy50ZXN0KG8pKXJldHVybiBTZShvLGUpO2lmKCFvfHwvXltcXG5cXHQgLFtcXF17fSMmKiF8PidcIiVAYF18Xls/LV0kfF5bPy1dWyBcXHRdfFtcXG46XVsgXFx0XXxbIFxcdF1cXG58W1xcblxcdCBdI3xbXFxuXFx0IDpdJC8udGVzdChvKSlyZXR1cm4gY3x8Znx8by5pbmRleE9mKGBcbmApPT09LTE/by5pbmRleE9mKCdcIicpIT09LTEmJm8uaW5kZXhPZihcIidcIik9PT0tMT9CcyhvLGUpOlNlKG8sZSk6VXQodCxlLG4scik7aWYoIWMmJiFmJiZpIT09cC5UeXBlLlBMQUlOJiZvLmluZGV4T2YoYFxuYCkhPT0tMSlyZXR1cm4gVXQodCxlLG4scik7aWYobD09PVwiXCImJld0KG8pKXJldHVybiBlLmZvcmNlQmxvY2tJbmRlbnQ9ITAsVXQodCxlLG4scik7bGV0IG09by5yZXBsYWNlKC9cXG4rL2csYCQmXG4ke2x9YCk7aWYoYSl7bGV0e3RhZ3M6eX09ZS5kb2Muc2NoZW1hO2lmKHR5cGVvZiBGbihtLHkseS5zY2FsYXJGYWxsYmFjaykudmFsdWUhPVwic3RyaW5nXCIpcmV0dXJuIFNlKG8sZSl9bGV0IGQ9Yz9tOlZ0KG0sbCxZcyxxbihlKSk7cmV0dXJuIHMmJiFmJiYoZC5pbmRleE9mKGBcbmApIT09LTF8fHMuaW5kZXhPZihgXG5gKSE9PS0xKT8obiYmbigpLGtvKGQsbCxzKSk6ZH1mdW5jdGlvbiBZbyh0LGUsbixyKXtsZXR7ZGVmYXVsdFR5cGU6c309YmUse2ltcGxpY2l0S2V5OmksaW5GbG93Om99PWUse3R5cGU6YSx2YWx1ZTpjfT10O3R5cGVvZiBjIT1cInN0cmluZ1wiJiYoYz1TdHJpbmcoYyksdD1PYmplY3QuYXNzaWduKHt9LHQse3ZhbHVlOmN9KSk7bGV0IGw9bT0+e3N3aXRjaChtKXtjYXNlIHAuVHlwZS5CTE9DS19GT0xERUQ6Y2FzZSBwLlR5cGUuQkxPQ0tfTElURVJBTDpyZXR1cm4gVXQodCxlLG4scik7Y2FzZSBwLlR5cGUuUVVPVEVfRE9VQkxFOnJldHVybiBTZShjLGUpO2Nhc2UgcC5UeXBlLlFVT1RFX1NJTkdMRTpyZXR1cm4gQnMoYyxlKTtjYXNlIHAuVHlwZS5QTEFJTjpyZXR1cm4gRG8odCxlLG4scik7ZGVmYXVsdDpyZXR1cm4gbnVsbH19OyhhIT09cC5UeXBlLlFVT1RFX0RPVUJMRSYmL1tcXHgwMC1cXHgwOFxceDBiLVxceDFmXFx4N2YtXFx4OWZdLy50ZXN0KGMpfHwoaXx8bykmJihhPT09cC5UeXBlLkJMT0NLX0ZPTERFRHx8YT09PXAuVHlwZS5CTE9DS19MSVRFUkFMKSkmJihhPXAuVHlwZS5RVU9URV9ET1VCTEUpO2xldCBmPWwoYSk7aWYoZj09PW51bGwmJihmPWwocyksZj09PW51bGwpKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVmYXVsdCBzdHJpbmcgdHlwZSAke3N9YCk7cmV0dXJuIGZ9ZnVuY3Rpb24gQm8oe2Zvcm1hdDp0LG1pbkZyYWN0aW9uRGlnaXRzOmUsdGFnOm4sdmFsdWU6cn0pe2lmKHR5cGVvZiByPT1cImJpZ2ludFwiKXJldHVybiBTdHJpbmcocik7aWYoIWlzRmluaXRlKHIpKXJldHVybiBpc05hTihyKT9cIi5uYW5cIjpyPDA/XCItLmluZlwiOlwiLmluZlwiO2xldCBzPUpTT04uc3RyaW5naWZ5KHIpO2lmKCF0JiZlJiYoIW58fG49PT1cInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XCIpJiYvXlxcZC8udGVzdChzKSl7bGV0IGk9cy5pbmRleE9mKFwiLlwiKTtpPDAmJihpPXMubGVuZ3RoLHMrPVwiLlwiKTtsZXQgbz1lLShzLmxlbmd0aC1pLTEpO2Zvcig7by0tID4wOylzKz1cIjBcIn1yZXR1cm4gc31mdW5jdGlvbiAkcyh0LGUpe2xldCBuLHI7c3dpdGNoKGUudHlwZSl7Y2FzZSBwLlR5cGUuRkxPV19NQVA6bj1cIn1cIixyPVwiZmxvdyBtYXBcIjticmVhaztjYXNlIHAuVHlwZS5GTE9XX1NFUTpuPVwiXVwiLHI9XCJmbG93IHNlcXVlbmNlXCI7YnJlYWs7ZGVmYXVsdDp0LnB1c2gobmV3IHAuWUFNTFNlbWFudGljRXJyb3IoZSxcIk5vdCBhIGZsb3cgY29sbGVjdGlvbiE/XCIpKTtyZXR1cm59bGV0IHM7Zm9yKGxldCBpPWUuaXRlbXMubGVuZ3RoLTE7aT49MDstLWkpe2xldCBvPWUuaXRlbXNbaV07aWYoIW98fG8udHlwZSE9PXAuVHlwZS5DT01NRU5UKXtzPW87YnJlYWt9fWlmKHMmJnMuY2hhciE9PW4pe2xldCBpPWBFeHBlY3RlZCAke3J9IHRvIGVuZCB3aXRoICR7bn1gLG87dHlwZW9mIHMub2Zmc2V0PT1cIm51bWJlclwiPyhvPW5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGUsaSksby5vZmZzZXQ9cy5vZmZzZXQrMSk6KG89bmV3IHAuWUFNTFNlbWFudGljRXJyb3IocyxpKSxzLnJhbmdlJiZzLnJhbmdlLmVuZCYmKG8ub2Zmc2V0PXMucmFuZ2UuZW5kLXMucmFuZ2Uuc3RhcnQpKSx0LnB1c2gobyl9fWZ1bmN0aW9uIEZzKHQsZSl7bGV0IG49ZS5jb250ZXh0LnNyY1tlLnJhbmdlLnN0YXJ0LTFdO2lmKG4hPT1gXG5gJiZuIT09XCJcdFwiJiZuIT09XCIgXCIpe2xldCByPVwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVyc1wiO3QucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihlLHIpKX19ZnVuY3Rpb24gcXModCxlKXtsZXQgbj1TdHJpbmcoZSkscj1uLnN1YnN0cigwLDgpK1wiLi4uXCIrbi5zdWJzdHIoLTgpO3JldHVybiBuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcih0LGBUaGUgXCIke3J9XCIga2V5IGlzIHRvbyBsb25nYCl9ZnVuY3Rpb24gVXModCxlKXtmb3IobGV0e2FmdGVyS2V5Om4sYmVmb3JlOnIsY29tbWVudDpzfW9mIGUpe2xldCBpPXQuaXRlbXNbcl07aT8obiYmaS52YWx1ZSYmKGk9aS52YWx1ZSkscz09PXZvaWQgMD8obnx8IWkuY29tbWVudEJlZm9yZSkmJihpLnNwYWNlQmVmb3JlPSEwKTppLmNvbW1lbnRCZWZvcmU/aS5jb21tZW50QmVmb3JlKz1gXG5gK3M6aS5jb21tZW50QmVmb3JlPXMpOnMhPT12b2lkIDAmJih0LmNvbW1lbnQ/dC5jb21tZW50Kz1gXG5gK3M6dC5jb21tZW50PXMpfX1mdW5jdGlvbiBVbih0LGUpe2xldCBuPWUuc3RyVmFsdWU7cmV0dXJuIG4/dHlwZW9mIG49PVwic3RyaW5nXCI/bjoobi5lcnJvcnMuZm9yRWFjaChyPT57ci5zb3VyY2V8fChyLnNvdXJjZT1lKSx0LmVycm9ycy5wdXNoKHIpfSksbi5zdHIpOlwiXCJ9ZnVuY3Rpb24gJG8odCxlKXtsZXR7aGFuZGxlOm4sc3VmZml4OnJ9PWUudGFnLHM9dC50YWdQcmVmaXhlcy5maW5kKGk9PmkuaGFuZGxlPT09bik7aWYoIXMpe2xldCBpPXQuZ2V0RGVmYXVsdHMoKS50YWdQcmVmaXhlcztpZihpJiYocz1pLmZpbmQobz0+by5oYW5kbGU9PT1uKSksIXMpdGhyb3cgbmV3IHAuWUFNTFNlbWFudGljRXJyb3IoZSxgVGhlICR7bn0gdGFnIGhhbmRsZSBpcyBub24tZGVmYXVsdCBhbmQgd2FzIG5vdCBkZWNsYXJlZC5gKX1pZighcil0aHJvdyBuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihlLGBUaGUgJHtufSB0YWcgaGFzIG5vIHN1ZmZpeC5gKTtpZihuPT09XCIhXCImJih0LnZlcnNpb258fHQub3B0aW9ucy52ZXJzaW9uKT09PVwiMS4wXCIpe2lmKHJbMF09PT1cIl5cIilyZXR1cm4gdC53YXJuaW5ncy5wdXNoKG5ldyBwLllBTUxXYXJuaW5nKGUsXCJZQU1MIDEuMCBeIHRhZyBleHBhbnNpb24gaXMgbm90IHN1cHBvcnRlZFwiKSkscjtpZigvWzovXS8udGVzdChyKSl7bGV0IGk9ci5tYXRjaCgvXihbYS16MC05LV0rKVxcLyguKikvaSk7cmV0dXJuIGk/YHRhZzoke2lbMV19LnlhbWwub3JnLDIwMDI6JHtpWzJdfWA6YHRhZzoke3J9YH19cmV0dXJuIHMucHJlZml4K2RlY29kZVVSSUNvbXBvbmVudChyKX1mdW5jdGlvbiBGbyh0LGUpe2xldHt0YWc6bix0eXBlOnJ9PWUscz0hMTtpZihuKXtsZXR7aGFuZGxlOmksc3VmZml4Om8sdmVyYmF0aW06YX09bjtpZihhKXtpZihhIT09XCIhXCImJmEhPT1cIiEhXCIpcmV0dXJuIGE7bGV0IGM9YFZlcmJhdGltIHRhZ3MgYXJlbid0IHJlc29sdmVkLCBzbyAke2F9IGlzIGludmFsaWQuYDt0LmVycm9ycy5wdXNoKG5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGUsYykpfWVsc2UgaWYoaT09PVwiIVwiJiYhbylzPSEwO2Vsc2UgdHJ5e3JldHVybiAkbyh0LGUpfWNhdGNoKGMpe3QuZXJyb3JzLnB1c2goYyl9fXN3aXRjaChyKXtjYXNlIHAuVHlwZS5CTE9DS19GT0xERUQ6Y2FzZSBwLlR5cGUuQkxPQ0tfTElURVJBTDpjYXNlIHAuVHlwZS5RVU9URV9ET1VCTEU6Y2FzZSBwLlR5cGUuUVVPVEVfU0lOR0xFOnJldHVybiBwLmRlZmF1bHRUYWdzLlNUUjtjYXNlIHAuVHlwZS5GTE9XX01BUDpjYXNlIHAuVHlwZS5NQVA6cmV0dXJuIHAuZGVmYXVsdFRhZ3MuTUFQO2Nhc2UgcC5UeXBlLkZMT1dfU0VROmNhc2UgcC5UeXBlLlNFUTpyZXR1cm4gcC5kZWZhdWx0VGFncy5TRVE7Y2FzZSBwLlR5cGUuUExBSU46cmV0dXJuIHM/cC5kZWZhdWx0VGFncy5TVFI6bnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiB4cyh0LGUsbil7bGV0e3RhZ3M6cn09dC5zY2hlbWEscz1bXTtmb3IobGV0IG8gb2YgcilpZihvLnRhZz09PW4paWYoby50ZXN0KXMucHVzaChvKTtlbHNle2xldCBhPW8ucmVzb2x2ZSh0LGUpO3JldHVybiBhIGluc3RhbmNlb2YgVz9hOm5ldyBQKGEpfWxldCBpPVVuKHQsZSk7cmV0dXJuIHR5cGVvZiBpPT1cInN0cmluZ1wiJiZzLmxlbmd0aD4wP0ZuKGkscyxyLnNjYWxhckZhbGxiYWNrKTpudWxsfWZ1bmN0aW9uIHFvKHt0eXBlOnR9KXtzd2l0Y2godCl7Y2FzZSBwLlR5cGUuRkxPV19NQVA6Y2FzZSBwLlR5cGUuTUFQOnJldHVybiBwLmRlZmF1bHRUYWdzLk1BUDtjYXNlIHAuVHlwZS5GTE9XX1NFUTpjYXNlIHAuVHlwZS5TRVE6cmV0dXJuIHAuZGVmYXVsdFRhZ3MuU0VRO2RlZmF1bHQ6cmV0dXJuIHAuZGVmYXVsdFRhZ3MuU1RSfX1mdW5jdGlvbiBVbyh0LGUsbil7dHJ5e2xldCByPXhzKHQsZSxuKTtpZihyKXJldHVybiBuJiZlLnRhZyYmKHIudGFnPW4pLHJ9Y2F0Y2gocil7cmV0dXJuIHIuc291cmNlfHwoci5zb3VyY2U9ZSksdC5lcnJvcnMucHVzaChyKSxudWxsfXRyeXtsZXQgcj1xbyhlKTtpZighcil0aHJvdyBuZXcgRXJyb3IoYFRoZSB0YWcgJHtufSBpcyB1bmF2YWlsYWJsZWApO2xldCBzPWBUaGUgdGFnICR7bn0gaXMgdW5hdmFpbGFibGUsIGZhbGxpbmcgYmFjayB0byAke3J9YDt0Lndhcm5pbmdzLnB1c2gobmV3IHAuWUFNTFdhcm5pbmcoZSxzKSk7bGV0IGk9eHModCxlLHIpO3JldHVybiBpLnRhZz1uLGl9Y2F0Y2gocil7bGV0IHM9bmV3IHAuWUFNTFJlZmVyZW5jZUVycm9yKGUsci5tZXNzYWdlKTtyZXR1cm4gcy5zdGFjaz1yLnN0YWNrLHQuZXJyb3JzLnB1c2gocyksbnVsbH19dmFyIEtvPXQ9PntpZighdClyZXR1cm4hMTtsZXR7dHlwZTplfT10O3JldHVybiBlPT09cC5UeXBlLk1BUF9LRVl8fGU9PT1wLlR5cGUuTUFQX1ZBTFVFfHxlPT09cC5UeXBlLlNFUV9JVEVNfTtmdW5jdGlvbiBWbyh0LGUpe2xldCBuPXtiZWZvcmU6W10sYWZ0ZXI6W119LHI9ITEscz0hMSxpPUtvKGUuY29udGV4dC5wYXJlbnQpP2UuY29udGV4dC5wYXJlbnQucHJvcHMuY29uY2F0KGUucHJvcHMpOmUucHJvcHM7Zm9yKGxldHtzdGFydDpvLGVuZDphfW9mIGkpc3dpdGNoKGUuY29udGV4dC5zcmNbb10pe2Nhc2UgcC5DaGFyLkNPTU1FTlQ6e2lmKCFlLmNvbW1lbnRIYXNSZXF1aXJlZFdoaXRlc3BhY2Uobykpe2xldCBtPVwiQ29tbWVudHMgbXVzdCBiZSBzZXBhcmF0ZWQgZnJvbSBvdGhlciB0b2tlbnMgYnkgd2hpdGUgc3BhY2UgY2hhcmFjdGVyc1wiO3QucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihlLG0pKX1sZXR7aGVhZGVyOmMsdmFsdWVSYW5nZTpsfT1lOyhsJiYobz5sLnN0YXJ0fHxjJiZvPmMuc3RhcnQpP24uYWZ0ZXI6bi5iZWZvcmUpLnB1c2goZS5jb250ZXh0LnNyYy5zbGljZShvKzEsYSkpO2JyZWFrfWNhc2UgcC5DaGFyLkFOQ0hPUjppZihyKXtsZXQgYz1cIkEgbm9kZSBjYW4gaGF2ZSBhdCBtb3N0IG9uZSBhbmNob3JcIjt0LnB1c2gobmV3IHAuWUFNTFNlbWFudGljRXJyb3IoZSxjKSl9cj0hMDticmVhaztjYXNlIHAuQ2hhci5UQUc6aWYocyl7bGV0IGM9XCJBIG5vZGUgY2FuIGhhdmUgYXQgbW9zdCBvbmUgdGFnXCI7dC5wdXNoKG5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGUsYykpfXM9ITA7YnJlYWt9cmV0dXJue2NvbW1lbnRzOm4saGFzQW5jaG9yOnIsaGFzVGFnOnN9fWZ1bmN0aW9uIFdvKHQsZSl7bGV0e2FuY2hvcnM6bixlcnJvcnM6cixzY2hlbWE6c309dDtpZihlLnR5cGU9PT1wLlR5cGUuQUxJQVMpe2xldCBvPWUucmF3VmFsdWUsYT1uLmdldE5vZGUobyk7aWYoIWEpe2xldCBsPWBBbGlhc2VkIGFuY2hvciBub3QgZm91bmQ6ICR7b31gO3JldHVybiByLnB1c2gobmV3IHAuWUFNTFJlZmVyZW5jZUVycm9yKGUsbCkpLG51bGx9bGV0IGM9bmV3IHdlKGEpO3JldHVybiBuLl9jc3RBbGlhc2VzLnB1c2goYyksY31sZXQgaT1Gbyh0LGUpO2lmKGkpcmV0dXJuIFVvKHQsZSxpKTtpZihlLnR5cGUhPT1wLlR5cGUuUExBSU4pe2xldCBvPWBGYWlsZWQgdG8gcmVzb2x2ZSAke2UudHlwZX0gbm9kZSBoZXJlYDtyZXR1cm4gci5wdXNoKG5ldyBwLllBTUxTeW50YXhFcnJvcihlLG8pKSxudWxsfXRyeXtsZXQgbz1Vbih0LGUpO3JldHVybiBGbihvLHMudGFncyxzLnRhZ3Muc2NhbGFyRmFsbGJhY2spfWNhdGNoKG8pe3JldHVybiBvLnNvdXJjZXx8KG8uc291cmNlPWUpLHIucHVzaChvKSxudWxsfX1mdW5jdGlvbiBtZSh0LGUpe2lmKCFlKXJldHVybiBudWxsO2UuZXJyb3ImJnQuZXJyb3JzLnB1c2goZS5lcnJvcik7bGV0e2NvbW1lbnRzOm4saGFzQW5jaG9yOnIsaGFzVGFnOnN9PVZvKHQuZXJyb3JzLGUpO2lmKHIpe2xldHthbmNob3JzOm99PXQsYT1lLmFuY2hvcixjPW8uZ2V0Tm9kZShhKTtjJiYoby5tYXBbby5uZXdOYW1lKGEpXT1jKSxvLm1hcFthXT1lfWlmKGUudHlwZT09PXAuVHlwZS5BTElBUyYmKHJ8fHMpKXtsZXQgbz1cIkFuIGFsaWFzIG5vZGUgbXVzdCBub3Qgc3BlY2lmeSBhbnkgcHJvcGVydGllc1wiO3QuZXJyb3JzLnB1c2gobmV3IHAuWUFNTFNlbWFudGljRXJyb3IoZSxvKSl9bGV0IGk9V28odCxlKTtpZihpKXtpLnJhbmdlPVtlLnJhbmdlLnN0YXJ0LGUucmFuZ2UuZW5kXSx0Lm9wdGlvbnMua2VlcENzdE5vZGVzJiYoaS5jc3ROb2RlPWUpLHQub3B0aW9ucy5rZWVwTm9kZVR5cGVzJiYoaS50eXBlPWUudHlwZSk7bGV0IG89bi5iZWZvcmUuam9pbihgXG5gKTtvJiYoaS5jb21tZW50QmVmb3JlPWkuY29tbWVudEJlZm9yZT9gJHtpLmNvbW1lbnRCZWZvcmV9XG4ke299YDpvKTtsZXQgYT1uLmFmdGVyLmpvaW4oYFxuYCk7YSYmKGkuY29tbWVudD1pLmNvbW1lbnQ/YCR7aS5jb21tZW50fVxuJHthfWA6YSl9cmV0dXJuIGUucmVzb2x2ZWQ9aX1mdW5jdGlvbiBqbyh0LGUpe2lmKGUudHlwZSE9PXAuVHlwZS5NQVAmJmUudHlwZSE9PXAuVHlwZS5GTE9XX01BUCl7bGV0IG89YEEgJHtlLnR5cGV9IG5vZGUgY2Fubm90IGJlIHJlc29sdmVkIGFzIGEgbWFwcGluZ2A7cmV0dXJuIHQuZXJyb3JzLnB1c2gobmV3IHAuWUFNTFN5bnRheEVycm9yKGUsbykpLG51bGx9bGV0e2NvbW1lbnRzOm4saXRlbXM6cn09ZS50eXBlPT09cC5UeXBlLkZMT1dfTUFQP0hvKHQsZSk6R28odCxlKSxzPW5ldyBtdDtzLml0ZW1zPXIsVXMocyxuKTtsZXQgaT0hMTtmb3IobGV0IG89MDtvPHIubGVuZ3RoOysrbyl7bGV0e2tleTphfT1yW29dO2lmKGEgaW5zdGFuY2VvZiBXJiYoaT0hMCksdC5zY2hlbWEubWVyZ2UmJmEmJmEudmFsdWU9PT1Ecyl7cltvXT1uZXcgS3QocltvXSk7bGV0IGM9cltvXS52YWx1ZS5pdGVtcyxsPW51bGw7Yy5zb21lKGY9PntpZihmIGluc3RhbmNlb2Ygd2Upe2xldHt0eXBlOm19PWYuc291cmNlO3JldHVybiBtPT09cC5UeXBlLk1BUHx8bT09PXAuVHlwZS5GTE9XX01BUD8hMTpsPVwiTWVyZ2Ugbm9kZXMgYWxpYXNlcyBjYW4gb25seSBwb2ludCB0byBtYXBzXCJ9cmV0dXJuIGw9XCJNZXJnZSBub2RlcyBjYW4gb25seSBoYXZlIEFsaWFzIG5vZGVzIGFzIHZhbHVlc1wifSksbCYmdC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihlLGwpKX1lbHNlIGZvcihsZXQgYz1vKzE7YzxyLmxlbmd0aDsrK2Mpe2xldHtrZXk6bH09cltjXTtpZihhPT09bHx8YSYmbCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsXCJ2YWx1ZVwiKSYmYS52YWx1ZT09PWwudmFsdWUpe2xldCBmPWBNYXAga2V5cyBtdXN0IGJlIHVuaXF1ZTsgXCIke2F9XCIgaXMgcmVwZWF0ZWRgO3QuZXJyb3JzLnB1c2gobmV3IHAuWUFNTFNlbWFudGljRXJyb3IoZSxmKSk7YnJlYWt9fX1pZihpJiYhdC5vcHRpb25zLm1hcEFzTWFwKXtsZXQgbz1cIktleXMgd2l0aCBjb2xsZWN0aW9uIHZhbHVlcyB3aWxsIGJlIHN0cmluZ2lmaWVkIGFzIFlBTUwgZHVlIHRvIEpTIE9iamVjdCByZXN0cmljdGlvbnMuIFVzZSBtYXBBc01hcDogdHJ1ZSB0byBhdm9pZCB0aGlzLlwiO3Qud2FybmluZ3MucHVzaChuZXcgcC5ZQU1MV2FybmluZyhlLG8pKX1yZXR1cm4gZS5yZXNvbHZlZD1zLHN9dmFyIFFvPSh7Y29udGV4dDp7bGluZVN0YXJ0OnQsbm9kZTplLHNyYzpufSxwcm9wczpyfSk9PntpZihyLmxlbmd0aD09PTApcmV0dXJuITE7bGV0e3N0YXJ0OnN9PXJbMF07aWYoZSYmcz5lLnZhbHVlUmFuZ2Uuc3RhcnR8fG5bc10hPT1wLkNoYXIuQ09NTUVOVClyZXR1cm4hMTtmb3IobGV0IGk9dDtpPHM7KytpKWlmKG5baV09PT1gXG5gKXJldHVybiExO3JldHVybiEwfTtmdW5jdGlvbiBKbyh0LGUpe2lmKCFRbyh0KSlyZXR1cm47bGV0IG49dC5nZXRQcm9wVmFsdWUoMCxwLkNoYXIuQ09NTUVOVCwhMCkscj0hMSxzPWUudmFsdWUuY29tbWVudEJlZm9yZTtpZihzJiZzLnN0YXJ0c1dpdGgobikpZS52YWx1ZS5jb21tZW50QmVmb3JlPXMuc3Vic3RyKG4ubGVuZ3RoKzEpLHI9ITA7ZWxzZXtsZXQgaT1lLnZhbHVlLmNvbW1lbnQ7IXQubm9kZSYmaSYmaS5zdGFydHNXaXRoKG4pJiYoZS52YWx1ZS5jb21tZW50PWkuc3Vic3RyKG4ubGVuZ3RoKzEpLHI9ITApfXImJihlLmNvbW1lbnQ9bil9ZnVuY3Rpb24gR28odCxlKXtsZXQgbj1bXSxyPVtdLHMsaT1udWxsO2ZvcihsZXQgbz0wO288ZS5pdGVtcy5sZW5ndGg7KytvKXtsZXQgYT1lLml0ZW1zW29dO3N3aXRjaChhLnR5cGUpe2Nhc2UgcC5UeXBlLkJMQU5LX0xJTkU6bi5wdXNoKHthZnRlcktleTohIXMsYmVmb3JlOnIubGVuZ3RofSk7YnJlYWs7Y2FzZSBwLlR5cGUuQ09NTUVOVDpuLnB1c2goe2FmdGVyS2V5OiEhcyxiZWZvcmU6ci5sZW5ndGgsY29tbWVudDphLmNvbW1lbnR9KTticmVhaztjYXNlIHAuVHlwZS5NQVBfS0VZOnMhPT12b2lkIDAmJnIucHVzaChuZXcgVChzKSksYS5lcnJvciYmdC5lcnJvcnMucHVzaChhLmVycm9yKSxzPW1lKHQsYS5ub2RlKSxpPW51bGw7YnJlYWs7Y2FzZSBwLlR5cGUuTUFQX1ZBTFVFOntpZihzPT09dm9pZCAwJiYocz1udWxsKSxhLmVycm9yJiZ0LmVycm9ycy5wdXNoKGEuZXJyb3IpLCFhLmNvbnRleHQuYXRMaW5lU3RhcnQmJmEubm9kZSYmYS5ub2RlLnR5cGU9PT1wLlR5cGUuTUFQJiYhYS5ub2RlLmNvbnRleHQuYXRMaW5lU3RhcnQpe2xldCBmPVwiTmVzdGVkIG1hcHBpbmdzIGFyZSBub3QgYWxsb3dlZCBpbiBjb21wYWN0IG1hcHBpbmdzXCI7dC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihhLm5vZGUsZikpfWxldCBjPWEubm9kZTtpZighYyYmYS5wcm9wcy5sZW5ndGg+MCl7Yz1uZXcgcC5QbGFpblZhbHVlKHAuVHlwZS5QTEFJTixbXSksYy5jb250ZXh0PXtwYXJlbnQ6YSxzcmM6YS5jb250ZXh0LnNyY307bGV0IGY9YS5yYW5nZS5zdGFydCsxO2lmKGMucmFuZ2U9e3N0YXJ0OmYsZW5kOmZ9LGMudmFsdWVSYW5nZT17c3RhcnQ6ZixlbmQ6Zn0sdHlwZW9mIGEucmFuZ2Uub3JpZ1N0YXJ0PT1cIm51bWJlclwiKXtsZXQgbT1hLnJhbmdlLm9yaWdTdGFydCsxO2MucmFuZ2Uub3JpZ1N0YXJ0PWMucmFuZ2Uub3JpZ0VuZD1tLGMudmFsdWVSYW5nZS5vcmlnU3RhcnQ9Yy52YWx1ZVJhbmdlLm9yaWdFbmQ9bX19bGV0IGw9bmV3IFQocyxtZSh0LGMpKTtKbyhhLGwpLHIucHVzaChsKSxzJiZ0eXBlb2YgaT09XCJudW1iZXJcIiYmYS5yYW5nZS5zdGFydD5pKzEwMjQmJnQuZXJyb3JzLnB1c2gocXMoZSxzKSkscz12b2lkIDAsaT1udWxsfWJyZWFrO2RlZmF1bHQ6cyE9PXZvaWQgMCYmci5wdXNoKG5ldyBUKHMpKSxzPW1lKHQsYSksaT1hLnJhbmdlLnN0YXJ0LGEuZXJyb3ImJnQuZXJyb3JzLnB1c2goYS5lcnJvcik7ZTpmb3IobGV0IGM9bysxOzsrK2Mpe2xldCBsPWUuaXRlbXNbY107c3dpdGNoKGwmJmwudHlwZSl7Y2FzZSBwLlR5cGUuQkxBTktfTElORTpjYXNlIHAuVHlwZS5DT01NRU5UOmNvbnRpbnVlIGU7Y2FzZSBwLlR5cGUuTUFQX1ZBTFVFOmJyZWFrIGU7ZGVmYXVsdDp7bGV0IGY9XCJJbXBsaWNpdCBtYXAga2V5cyBuZWVkIHRvIGJlIGZvbGxvd2VkIGJ5IG1hcCB2YWx1ZXNcIjt0LmVycm9ycy5wdXNoKG5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGEsZikpO2JyZWFrIGV9fX1pZihhLnZhbHVlUmFuZ2VDb250YWluc05ld2xpbmUpe2xldCBjPVwiSW1wbGljaXQgbWFwIGtleXMgbmVlZCB0byBiZSBvbiBhIHNpbmdsZSBsaW5lXCI7dC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihhLGMpKX19fXJldHVybiBzIT09dm9pZCAwJiZyLnB1c2gobmV3IFQocykpLHtjb21tZW50czpuLGl0ZW1zOnJ9fWZ1bmN0aW9uIEhvKHQsZSl7bGV0IG49W10scj1bXSxzLGk9ITEsbz1cIntcIjtmb3IobGV0IGE9MDthPGUuaXRlbXMubGVuZ3RoOysrYSl7bGV0IGM9ZS5pdGVtc1thXTtpZih0eXBlb2YgYy5jaGFyPT1cInN0cmluZ1wiKXtsZXR7Y2hhcjpsLG9mZnNldDpmfT1jO2lmKGw9PT1cIj9cIiYmcz09PXZvaWQgMCYmIWkpe2k9ITAsbz1cIjpcIjtjb250aW51ZX1pZihsPT09XCI6XCIpe2lmKHM9PT12b2lkIDAmJihzPW51bGwpLG89PT1cIjpcIil7bz1cIixcIjtjb250aW51ZX19ZWxzZSBpZihpJiYocz09PXZvaWQgMCYmbCE9PVwiLFwiJiYocz1udWxsKSxpPSExKSxzIT09dm9pZCAwJiYoci5wdXNoKG5ldyBUKHMpKSxzPXZvaWQgMCxsPT09XCIsXCIpKXtvPVwiOlwiO2NvbnRpbnVlfWlmKGw9PT1cIn1cIil7aWYoYT09PWUuaXRlbXMubGVuZ3RoLTEpY29udGludWV9ZWxzZSBpZihsPT09byl7bz1cIjpcIjtjb250aW51ZX1sZXQgbT1gRmxvdyBtYXAgY29udGFpbnMgYW4gdW5leHBlY3RlZCAke2x9YCxkPW5ldyBwLllBTUxTeW50YXhFcnJvcihlLG0pO2Qub2Zmc2V0PWYsdC5lcnJvcnMucHVzaChkKX1lbHNlIGMudHlwZT09PXAuVHlwZS5CTEFOS19MSU5FP24ucHVzaCh7YWZ0ZXJLZXk6ISFzLGJlZm9yZTpyLmxlbmd0aH0pOmMudHlwZT09PXAuVHlwZS5DT01NRU5UPyhGcyh0LmVycm9ycyxjKSxuLnB1c2goe2FmdGVyS2V5OiEhcyxiZWZvcmU6ci5sZW5ndGgsY29tbWVudDpjLmNvbW1lbnR9KSk6cz09PXZvaWQgMD8obz09PVwiLFwiJiZ0LmVycm9ycy5wdXNoKG5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGMsXCJTZXBhcmF0b3IgLCBtaXNzaW5nIGluIGZsb3cgbWFwXCIpKSxzPW1lKHQsYykpOihvIT09XCIsXCImJnQuZXJyb3JzLnB1c2gobmV3IHAuWUFNTFNlbWFudGljRXJyb3IoYyxcIkluZGljYXRvciA6IG1pc3NpbmcgaW4gZmxvdyBtYXAgZW50cnlcIikpLHIucHVzaChuZXcgVChzLG1lKHQsYykpKSxzPXZvaWQgMCxpPSExKX1yZXR1cm4gJHModC5lcnJvcnMsZSkscyE9PXZvaWQgMCYmci5wdXNoKG5ldyBUKHMpKSx7Y29tbWVudHM6bixpdGVtczpyfX1mdW5jdGlvbiBYbyh0LGUpe2lmKGUudHlwZSE9PXAuVHlwZS5TRVEmJmUudHlwZSE9PXAuVHlwZS5GTE9XX1NFUSl7bGV0IGk9YEEgJHtlLnR5cGV9IG5vZGUgY2Fubm90IGJlIHJlc29sdmVkIGFzIGEgc2VxdWVuY2VgO3JldHVybiB0LmVycm9ycy5wdXNoKG5ldyBwLllBTUxTeW50YXhFcnJvcihlLGkpKSxudWxsfWxldHtjb21tZW50czpuLGl0ZW1zOnJ9PWUudHlwZT09PXAuVHlwZS5GTE9XX1NFUT9abyh0LGUpOnpvKHQsZSkscz1uZXcgcGU7aWYocy5pdGVtcz1yLFVzKHMsbiksIXQub3B0aW9ucy5tYXBBc01hcCYmci5zb21lKGk9PmkgaW5zdGFuY2VvZiBUJiZpLmtleSBpbnN0YW5jZW9mIFcpKXtsZXQgaT1cIktleXMgd2l0aCBjb2xsZWN0aW9uIHZhbHVlcyB3aWxsIGJlIHN0cmluZ2lmaWVkIGFzIFlBTUwgZHVlIHRvIEpTIE9iamVjdCByZXN0cmljdGlvbnMuIFVzZSBtYXBBc01hcDogdHJ1ZSB0byBhdm9pZCB0aGlzLlwiO3Qud2FybmluZ3MucHVzaChuZXcgcC5ZQU1MV2FybmluZyhlLGkpKX1yZXR1cm4gZS5yZXNvbHZlZD1zLHN9ZnVuY3Rpb24gem8odCxlKXtsZXQgbj1bXSxyPVtdO2ZvcihsZXQgcz0wO3M8ZS5pdGVtcy5sZW5ndGg7KytzKXtsZXQgaT1lLml0ZW1zW3NdO3N3aXRjaChpLnR5cGUpe2Nhc2UgcC5UeXBlLkJMQU5LX0xJTkU6bi5wdXNoKHtiZWZvcmU6ci5sZW5ndGh9KTticmVhaztjYXNlIHAuVHlwZS5DT01NRU5UOm4ucHVzaCh7Y29tbWVudDppLmNvbW1lbnQsYmVmb3JlOnIubGVuZ3RofSk7YnJlYWs7Y2FzZSBwLlR5cGUuU0VRX0lURU06aWYoaS5lcnJvciYmdC5lcnJvcnMucHVzaChpLmVycm9yKSxyLnB1c2gobWUodCxpLm5vZGUpKSxpLmhhc1Byb3BzKXtsZXQgbz1cIlNlcXVlbmNlIGl0ZW1zIGNhbm5vdCBoYXZlIHRhZ3Mgb3IgYW5jaG9ycyBiZWZvcmUgdGhlIC0gaW5kaWNhdG9yXCI7dC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihpLG8pKX1icmVhaztkZWZhdWx0OmkuZXJyb3ImJnQuZXJyb3JzLnB1c2goaS5lcnJvciksdC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU3ludGF4RXJyb3IoaSxgVW5leHBlY3RlZCAke2kudHlwZX0gbm9kZSBpbiBzZXF1ZW5jZWApKX19cmV0dXJue2NvbW1lbnRzOm4saXRlbXM6cn19ZnVuY3Rpb24gWm8odCxlKXtsZXQgbj1bXSxyPVtdLHM9ITEsaSxvPW51bGwsYT1cIltcIixjPW51bGw7Zm9yKGxldCBsPTA7bDxlLml0ZW1zLmxlbmd0aDsrK2wpe2xldCBmPWUuaXRlbXNbbF07aWYodHlwZW9mIGYuY2hhcj09XCJzdHJpbmdcIil7bGV0e2NoYXI6bSxvZmZzZXQ6ZH09ZjtpZihtIT09XCI6XCImJihzfHxpIT09dm9pZCAwKSYmKHMmJmk9PT12b2lkIDAmJihpPWE/ci5wb3AoKTpudWxsKSxyLnB1c2gobmV3IFQoaSkpLHM9ITEsaT12b2lkIDAsbz1udWxsKSxtPT09YSlhPW51bGw7ZWxzZSBpZighYSYmbT09PVwiP1wiKXM9ITA7ZWxzZSBpZihhIT09XCJbXCImJm09PT1cIjpcIiYmaT09PXZvaWQgMCl7aWYoYT09PVwiLFwiKXtpZihpPXIucG9wKCksaSBpbnN0YW5jZW9mIFQpe2xldCB5PVwiQ2hhaW5pbmcgZmxvdyBzZXF1ZW5jZSBwYWlycyBpcyBpbnZhbGlkXCIsaD1uZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihlLHkpO2gub2Zmc2V0PWQsdC5lcnJvcnMucHVzaChoKX1pZighcyYmdHlwZW9mIG89PVwibnVtYmVyXCIpe2xldCB5PWYucmFuZ2U/Zi5yYW5nZS5zdGFydDpmLm9mZnNldDt5Pm8rMTAyNCYmdC5lcnJvcnMucHVzaChxcyhlLGkpKTtsZXR7c3JjOmh9PWMuY29udGV4dDtmb3IobGV0IGc9bztnPHk7KytnKWlmKGhbZ109PT1gXG5gKXtsZXQgdz1cIkltcGxpY2l0IGtleXMgb2YgZmxvdyBzZXF1ZW5jZSBwYWlycyBuZWVkIHRvIGJlIG9uIGEgc2luZ2xlIGxpbmVcIjt0LmVycm9ycy5wdXNoKG5ldyBwLllBTUxTZW1hbnRpY0Vycm9yKGMsdykpO2JyZWFrfX19ZWxzZSBpPW51bGw7bz1udWxsLHM9ITEsYT1udWxsfWVsc2UgaWYoYT09PVwiW1wifHxtIT09XCJdXCJ8fGw8ZS5pdGVtcy5sZW5ndGgtMSl7bGV0IHk9YEZsb3cgc2VxdWVuY2UgY29udGFpbnMgYW4gdW5leHBlY3RlZCAke219YCxoPW5ldyBwLllBTUxTeW50YXhFcnJvcihlLHkpO2gub2Zmc2V0PWQsdC5lcnJvcnMucHVzaChoKX19ZWxzZSBpZihmLnR5cGU9PT1wLlR5cGUuQkxBTktfTElORSluLnB1c2goe2JlZm9yZTpyLmxlbmd0aH0pO2Vsc2UgaWYoZi50eXBlPT09cC5UeXBlLkNPTU1FTlQpRnModC5lcnJvcnMsZiksbi5wdXNoKHtjb21tZW50OmYuY29tbWVudCxiZWZvcmU6ci5sZW5ndGh9KTtlbHNle2lmKGEpe2xldCBkPWBFeHBlY3RlZCBhICR7YX0gaW4gZmxvdyBzZXF1ZW5jZWA7dC5lcnJvcnMucHVzaChuZXcgcC5ZQU1MU2VtYW50aWNFcnJvcihmLGQpKX1sZXQgbT1tZSh0LGYpO2k9PT12b2lkIDA/KHIucHVzaChtKSxjPWYpOihyLnB1c2gobmV3IFQoaSxtKSksaT12b2lkIDApLG89Zi5yYW5nZS5zdGFydCxhPVwiLFwifX1yZXR1cm4gJHModC5lcnJvcnMsZSksaSE9PXZvaWQgMCYmci5wdXNoKG5ldyBUKGkpKSx7Y29tbWVudHM6bixpdGVtczpyfX1rLkFsaWFzPXdlO2suQ29sbGVjdGlvbj1XO2suTWVyZ2U9S3Q7ay5Ob2RlPVY7ay5QYWlyPVQ7ay5TY2FsYXI9UDtrLllBTUxNYXA9bXQ7ay5ZQU1MU2VxPXBlO2suYWRkQ29tbWVudD1CZTtrLmJpbmFyeU9wdGlvbnM9SW87ay5ib29sT3B0aW9ucz1QbztrLmZpbmRQYWlyPXB0O2suaW50T3B0aW9ucz1fbztrLmlzRW1wdHlQYXRoPVJzO2subnVsbE9wdGlvbnM9eG87ay5yZXNvbHZlTWFwPWpvO2sucmVzb2x2ZU5vZGU9bWU7ay5yZXNvbHZlU2VxPVhvO2sucmVzb2x2ZVN0cmluZz1VbjtrLnN0ck9wdGlvbnM9YmU7ay5zdHJpbmdpZnlOdW1iZXI9Qm87ay5zdHJpbmdpZnlTdHJpbmc9WW87ay50b0pTT049dWV9KTt2YXIgam49ZWUoej0+e1widXNlIHN0cmljdFwiO3ZhciBqPWxlKCksTz0kZSgpLGVhPXtpZGVudGlmeTp0PT50IGluc3RhbmNlb2YgVWludDhBcnJheSxkZWZhdWx0OiExLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeVwiLHJlc29sdmU6KHQsZSk9PntsZXQgbj1PLnJlc29sdmVTdHJpbmcodCxlKTtpZih0eXBlb2YgQnVmZmVyPT1cImZ1bmN0aW9uXCIpcmV0dXJuIEJ1ZmZlci5mcm9tKG4sXCJiYXNlNjRcIik7aWYodHlwZW9mIGF0b2I9PVwiZnVuY3Rpb25cIil7bGV0IHI9YXRvYihuLnJlcGxhY2UoL1tcXG5cXHJdL2csXCJcIikpLHM9bmV3IFVpbnQ4QXJyYXkoci5sZW5ndGgpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7KytpKXNbaV09ci5jaGFyQ29kZUF0KGkpO3JldHVybiBzfWVsc2V7bGV0IHI9XCJUaGlzIGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyBiaW5hcnkgdGFnczsgZWl0aGVyIEJ1ZmZlciBvciBhdG9iIGlzIHJlcXVpcmVkXCI7cmV0dXJuIHQuZXJyb3JzLnB1c2gobmV3IGouWUFNTFJlZmVyZW5jZUVycm9yKGUscikpLG51bGx9fSxvcHRpb25zOk8uYmluYXJ5T3B0aW9ucyxzdHJpbmdpZnk6KHtjb21tZW50OnQsdHlwZTplLHZhbHVlOm59LHIscyxpKT0+e2xldCBvO2lmKHR5cGVvZiBCdWZmZXI9PVwiZnVuY3Rpb25cIilvPW4gaW5zdGFuY2VvZiBCdWZmZXI/bi50b1N0cmluZyhcImJhc2U2NFwiKTpCdWZmZXIuZnJvbShuLmJ1ZmZlcikudG9TdHJpbmcoXCJiYXNlNjRcIik7ZWxzZSBpZih0eXBlb2YgYnRvYT09XCJmdW5jdGlvblwiKXtsZXQgYT1cIlwiO2ZvcihsZXQgYz0wO2M8bi5sZW5ndGg7KytjKWErPVN0cmluZy5mcm9tQ2hhckNvZGUobltjXSk7bz1idG9hKGEpfWVsc2UgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdyaXRpbmcgYmluYXJ5IHRhZ3M7IGVpdGhlciBCdWZmZXIgb3IgYnRvYSBpcyByZXF1aXJlZFwiKTtpZihlfHwoZT1PLmJpbmFyeU9wdGlvbnMuZGVmYXVsdFR5cGUpLGU9PT1qLlR5cGUuUVVPVEVfRE9VQkxFKW49bztlbHNle2xldHtsaW5lV2lkdGg6YX09Ty5iaW5hcnlPcHRpb25zLGM9TWF0aC5jZWlsKG8ubGVuZ3RoL2EpLGw9bmV3IEFycmF5KGMpO2ZvcihsZXQgZj0wLG09MDtmPGM7KytmLG0rPWEpbFtmXT1vLnN1YnN0cihtLGEpO249bC5qb2luKGU9PT1qLlR5cGUuQkxPQ0tfTElURVJBTD9gXG5gOlwiIFwiKX1yZXR1cm4gTy5zdHJpbmdpZnlTdHJpbmcoe2NvbW1lbnQ6dCx0eXBlOmUsdmFsdWU6bn0scixzLGkpfX07ZnVuY3Rpb24gVnModCxlKXtsZXQgbj1PLnJlc29sdmVTZXEodCxlKTtmb3IobGV0IHI9MDtyPG4uaXRlbXMubGVuZ3RoOysrcil7bGV0IHM9bi5pdGVtc1tyXTtpZighKHMgaW5zdGFuY2VvZiBPLlBhaXIpKXtpZihzIGluc3RhbmNlb2YgTy5ZQU1MTWFwKXtpZihzLml0ZW1zLmxlbmd0aD4xKXtsZXQgbz1cIkVhY2ggcGFpciBtdXN0IGhhdmUgaXRzIG93biBzZXF1ZW5jZSBpbmRpY2F0b3JcIjt0aHJvdyBuZXcgai5ZQU1MU2VtYW50aWNFcnJvcihlLG8pfWxldCBpPXMuaXRlbXNbMF18fG5ldyBPLlBhaXI7cy5jb21tZW50QmVmb3JlJiYoaS5jb21tZW50QmVmb3JlPWkuY29tbWVudEJlZm9yZT9gJHtzLmNvbW1lbnRCZWZvcmV9XG4ke2kuY29tbWVudEJlZm9yZX1gOnMuY29tbWVudEJlZm9yZSkscy5jb21tZW50JiYoaS5jb21tZW50PWkuY29tbWVudD9gJHtzLmNvbW1lbnR9XG4ke2kuY29tbWVudH1gOnMuY29tbWVudCkscz1pfW4uaXRlbXNbcl09cyBpbnN0YW5jZW9mIE8uUGFpcj9zOm5ldyBPLlBhaXIocyl9fXJldHVybiBufWZ1bmN0aW9uIFdzKHQsZSxuKXtsZXQgcj1uZXcgTy5ZQU1MU2VxKHQpO3IudGFnPVwidGFnOnlhbWwub3JnLDIwMDI6cGFpcnNcIjtmb3IobGV0IHMgb2YgZSl7bGV0IGksbztpZihBcnJheS5pc0FycmF5KHMpKWlmKHMubGVuZ3RoPT09MilpPXNbMF0sbz1zWzFdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgW2tleSwgdmFsdWVdIHR1cGxlOiAke3N9YCk7ZWxzZSBpZihzJiZzIGluc3RhbmNlb2YgT2JqZWN0KXtsZXQgYz1PYmplY3Qua2V5cyhzKTtpZihjLmxlbmd0aD09PTEpaT1jWzBdLG89c1tpXTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHsga2V5OiB2YWx1ZSB9IHR1cGxlOiAke3N9YCl9ZWxzZSBpPXM7bGV0IGE9dC5jcmVhdGVQYWlyKGksbyxuKTtyLml0ZW1zLnB1c2goYSl9cmV0dXJuIHJ9dmFyIHRhPXtkZWZhdWx0OiExLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzXCIscmVzb2x2ZTpWcyxjcmVhdGVOb2RlOldzfSxGZT1jbGFzcyB0IGV4dGVuZHMgTy5ZQU1MU2Vxe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSxqLl9kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiYWRkXCIsTy5ZQU1MTWFwLnByb3RvdHlwZS5hZGQuYmluZCh0aGlzKSksai5fZGVmaW5lUHJvcGVydHkodGhpcyxcImRlbGV0ZVwiLE8uWUFNTE1hcC5wcm90b3R5cGUuZGVsZXRlLmJpbmQodGhpcykpLGouX2RlZmluZVByb3BlcnR5KHRoaXMsXCJnZXRcIixPLllBTUxNYXAucHJvdG90eXBlLmdldC5iaW5kKHRoaXMpKSxqLl9kZWZpbmVQcm9wZXJ0eSh0aGlzLFwiaGFzXCIsTy5ZQU1MTWFwLnByb3RvdHlwZS5oYXMuYmluZCh0aGlzKSksai5fZGVmaW5lUHJvcGVydHkodGhpcyxcInNldFwiLE8uWUFNTE1hcC5wcm90b3R5cGUuc2V0LmJpbmQodGhpcykpLHRoaXMudGFnPXQudGFnfXRvSlNPTihlLG4pe2xldCByPW5ldyBNYXA7biYmbi5vbkNyZWF0ZSYmbi5vbkNyZWF0ZShyKTtmb3IobGV0IHMgb2YgdGhpcy5pdGVtcyl7bGV0IGksbztpZihzIGluc3RhbmNlb2YgTy5QYWlyPyhpPU8udG9KU09OKHMua2V5LFwiXCIsbiksbz1PLnRvSlNPTihzLnZhbHVlLGksbikpOmk9Ty50b0pTT04ocyxcIlwiLG4pLHIuaGFzKGkpKXRocm93IG5ldyBFcnJvcihcIk9yZGVyZWQgbWFwcyBtdXN0IG5vdCBpbmNsdWRlIGR1cGxpY2F0ZSBrZXlzXCIpO3Iuc2V0KGksbyl9cmV0dXJuIHJ9fTtqLl9kZWZpbmVQcm9wZXJ0eShGZSxcInRhZ1wiLFwidGFnOnlhbWwub3JnLDIwMDI6b21hcFwiKTtmdW5jdGlvbiBuYSh0LGUpe2xldCBuPVZzKHQsZSkscj1bXTtmb3IobGV0e2tleTpzfW9mIG4uaXRlbXMpaWYocyBpbnN0YW5jZW9mIE8uU2NhbGFyKWlmKHIuaW5jbHVkZXMocy52YWx1ZSkpe2xldCBpPVwiT3JkZXJlZCBtYXBzIG11c3Qgbm90IGluY2x1ZGUgZHVwbGljYXRlIGtleXNcIjt0aHJvdyBuZXcgai5ZQU1MU2VtYW50aWNFcnJvcihlLGkpfWVsc2Ugci5wdXNoKHMudmFsdWUpO3JldHVybiBPYmplY3QuYXNzaWduKG5ldyBGZSxuKX1mdW5jdGlvbiByYSh0LGUsbil7bGV0IHI9V3ModCxlLG4pLHM9bmV3IEZlO3JldHVybiBzLml0ZW1zPXIuaXRlbXMsc312YXIgc2E9e2lkZW50aWZ5OnQ9PnQgaW5zdGFuY2VvZiBNYXAsbm9kZUNsYXNzOkZlLGRlZmF1bHQ6ITEsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6b21hcFwiLHJlc29sdmU6bmEsY3JlYXRlTm9kZTpyYX0scWU9Y2xhc3MgdCBleHRlbmRzIE8uWUFNTE1hcHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy50YWc9dC50YWd9YWRkKGUpe2xldCBuPWUgaW5zdGFuY2VvZiBPLlBhaXI/ZTpuZXcgTy5QYWlyKGUpO08uZmluZFBhaXIodGhpcy5pdGVtcyxuLmtleSl8fHRoaXMuaXRlbXMucHVzaChuKX1nZXQoZSxuKXtsZXQgcj1PLmZpbmRQYWlyKHRoaXMuaXRlbXMsZSk7cmV0dXJuIW4mJnIgaW5zdGFuY2VvZiBPLlBhaXI/ci5rZXkgaW5zdGFuY2VvZiBPLlNjYWxhcj9yLmtleS52YWx1ZTpyLmtleTpyfXNldChlLG4pe2lmKHR5cGVvZiBuIT1cImJvb2xlYW5cIil0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4gdmFsdWUgZm9yIHNldChrZXksIHZhbHVlKSBpbiBhIFlBTUwgc2V0LCBub3QgJHt0eXBlb2Ygbn1gKTtsZXQgcj1PLmZpbmRQYWlyKHRoaXMuaXRlbXMsZSk7ciYmIW4/dGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKHIpLDEpOiFyJiZuJiZ0aGlzLml0ZW1zLnB1c2gobmV3IE8uUGFpcihlKSl9dG9KU09OKGUsbil7cmV0dXJuIHN1cGVyLnRvSlNPTihlLG4sU2V0KX10b1N0cmluZyhlLG4scil7aWYoIWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpO2lmKHRoaXMuaGFzQWxsTnVsbFZhbHVlcygpKXJldHVybiBzdXBlci50b1N0cmluZyhlLG4scik7dGhyb3cgbmV3IEVycm9yKFwiU2V0IGl0ZW1zIG11c3QgYWxsIGhhdmUgbnVsbCB2YWx1ZXNcIil9fTtqLl9kZWZpbmVQcm9wZXJ0eShxZSxcInRhZ1wiLFwidGFnOnlhbWwub3JnLDIwMDI6c2V0XCIpO2Z1bmN0aW9uIGlhKHQsZSl7bGV0IG49Ty5yZXNvbHZlTWFwKHQsZSk7aWYoIW4uaGFzQWxsTnVsbFZhbHVlcygpKXRocm93IG5ldyBqLllBTUxTZW1hbnRpY0Vycm9yKGUsXCJTZXQgaXRlbXMgbXVzdCBhbGwgaGF2ZSBudWxsIHZhbHVlc1wiKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgcWUsbil9ZnVuY3Rpb24gb2EodCxlLG4pe2xldCByPW5ldyBxZTtmb3IobGV0IHMgb2YgZSlyLml0ZW1zLnB1c2godC5jcmVhdGVQYWlyKHMsbnVsbCxuKSk7cmV0dXJuIHJ9dmFyIGFhPXtpZGVudGlmeTp0PT50IGluc3RhbmNlb2YgU2V0LG5vZGVDbGFzczpxZSxkZWZhdWx0OiExLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOnNldFwiLHJlc29sdmU6aWEsY3JlYXRlTm9kZTpvYX0sS249KHQsZSk9PntsZXQgbj1lLnNwbGl0KFwiOlwiKS5yZWR1Y2UoKHIscyk9PnIqNjArTnVtYmVyKHMpLDApO3JldHVybiB0PT09XCItXCI/LW46bn0sanM9KHt2YWx1ZTp0fSk9PntpZihpc05hTih0KXx8IWlzRmluaXRlKHQpKXJldHVybiBPLnN0cmluZ2lmeU51bWJlcih0KTtsZXQgZT1cIlwiO3Q8MCYmKGU9XCItXCIsdD1NYXRoLmFicyh0KSk7bGV0IG49W3QlNjBdO3JldHVybiB0PDYwP24udW5zaGlmdCgwKToodD1NYXRoLnJvdW5kKCh0LW5bMF0pLzYwKSxuLnVuc2hpZnQodCU2MCksdD49NjAmJih0PU1hdGgucm91bmQoKHQtblswXSkvNjApLG4udW5zaGlmdCh0KSkpLGUrbi5tYXAocj0+cjwxMD9cIjBcIitTdHJpbmcocik6U3RyaW5nKHIpKS5qb2luKFwiOlwiKS5yZXBsYWNlKC8wMDAwMDBcXGQqJC8sXCJcIil9LGNhPXtpZGVudGlmeTp0PT50eXBlb2YgdD09XCJudW1iZXJcIixkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmludFwiLGZvcm1hdDpcIlRJTUVcIix0ZXN0Oi9eKFstK10/KShbMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pKykkLyxyZXNvbHZlOih0LGUsbik9PktuKGUsbi5yZXBsYWNlKC9fL2csXCJcIikpLHN0cmluZ2lmeTpqc30sbGE9e2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIixmb3JtYXQ6XCJUSU1FXCIsdGVzdDovXihbLStdPykoWzAtOV1bMC05X10qKD86OlswLTVdP1swLTldKStcXC5bMC05X10qKSQvLHJlc29sdmU6KHQsZSxuKT0+S24oZSxuLnJlcGxhY2UoL18vZyxcIlwiKSksc3RyaW5naWZ5OmpzfSxmYT17aWRlbnRpZnk6dD0+dCBpbnN0YW5jZW9mIERhdGUsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXBcIix0ZXN0OlJlZ0V4cChcIl4oPzooWzAtOV17NH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSkoPzooPzp0fFR8WyBcXFxcdF0rKShbMC05XXsxLDJ9KTooWzAtOV17MSwyfSk6KFswLTldezEsMn0oXFxcXC5bMC05XSspPykoPzpbIFxcXFx0XSooWnxbLStdWzAxMl0/WzAtOV0oPzo6WzAtOV17Mn0pPykpPyk/KSRcIikscmVzb2x2ZToodCxlLG4scixzLGksbyxhLGMpPT57YSYmKGE9KGErXCIwMFwiKS5zdWJzdHIoMSwzKSk7bGV0IGw9RGF0ZS5VVEMoZSxuLTEscixzfHwwLGl8fDAsb3x8MCxhfHwwKTtpZihjJiZjIT09XCJaXCIpe2xldCBmPUtuKGNbMF0sYy5zbGljZSgxKSk7TWF0aC5hYnMoZik8MzAmJihmKj02MCksbC09NmU0KmZ9cmV0dXJuIG5ldyBEYXRlKGwpfSxzdHJpbmdpZnk6KHt2YWx1ZTp0fSk9PnQudG9JU09TdHJpbmcoKS5yZXBsYWNlKC8oKFQwMDowMCk/OjAwKT9cXC4wMDBaJC8sXCJcIil9O2Z1bmN0aW9uIFZuKHQpe2xldCBlPXt9O3JldHVybiB0P3R5cGVvZiBZQU1MX1NJTEVOQ0VfREVQUkVDQVRJT05fV0FSTklOR1M8XCJ1XCI/IVlBTUxfU0lMRU5DRV9ERVBSRUNBVElPTl9XQVJOSU5HUzohZS5ZQU1MX1NJTEVOQ0VfREVQUkVDQVRJT05fV0FSTklOR1M6dHlwZW9mIFlBTUxfU0lMRU5DRV9XQVJOSU5HUzxcInVcIj8hWUFNTF9TSUxFTkNFX1dBUk5JTkdTOiFlLllBTUxfU0lMRU5DRV9XQVJOSU5HU31mdW5jdGlvbiBXbih0LGUpe1ZuKCExKSYmY29uc29sZS53YXJuKGU/YCR7ZX06ICR7dH1gOnQpfWZ1bmN0aW9uIHVhKHQpe2lmKFZuKCEwKSl7bGV0IGU9dC5yZXBsYWNlKC8uKnlhbWxbL1xcXFxdL2ksXCJcIikucmVwbGFjZSgvXFwuanMkLyxcIlwiKS5yZXBsYWNlKC9cXFxcL2csXCIvXCIpO1duKGBUaGUgZW5kcG9pbnQgJ3lhbWwvJHtlfScgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuYCxcIkRlcHJlY2F0aW9uV2FybmluZ1wiKX19dmFyIEtzPXt9O2Z1bmN0aW9uIHBhKHQsZSl7aWYoIUtzW3RdJiZWbighMCkpe0tzW3RdPSEwO2xldCBuPWBUaGUgb3B0aW9uICcke3R9JyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZWA7bis9ZT9gLCB1c2UgJyR7ZX0nIGluc3RlYWQuYDpcIi5cIixXbihuLFwiRGVwcmVjYXRpb25XYXJuaW5nXCIpfX16LmJpbmFyeT1lYTt6LmZsb2F0VGltZT1sYTt6LmludFRpbWU9Y2E7ei5vbWFwPXNhO3oucGFpcnM9dGE7ei5zZXQ9YWE7ei50aW1lc3RhbXA9ZmE7ei53YXJuPVduO3oud2FybkZpbGVEZXByZWNhdGlvbj11YTt6Lndhcm5PcHRpb25EZXByZWNhdGlvbj1wYX0pO3ZhciBIbj1lZShpaT0+e1widXNlIHN0cmljdFwiO3ZhciBKdD1sZSgpLEU9JGUoKSxEPWpuKCk7ZnVuY3Rpb24gbWEodCxlLG4pe2xldCByPW5ldyBFLllBTUxNYXAodCk7aWYoZSBpbnN0YW5jZW9mIE1hcClmb3IobGV0W3MsaV1vZiBlKXIuaXRlbXMucHVzaCh0LmNyZWF0ZVBhaXIocyxpLG4pKTtlbHNlIGlmKGUmJnR5cGVvZiBlPT1cIm9iamVjdFwiKWZvcihsZXQgcyBvZiBPYmplY3Qua2V5cyhlKSlyLml0ZW1zLnB1c2godC5jcmVhdGVQYWlyKHMsZVtzXSxuKSk7cmV0dXJuIHR5cGVvZiB0LnNvcnRNYXBFbnRyaWVzPT1cImZ1bmN0aW9uXCImJnIuaXRlbXMuc29ydCh0LnNvcnRNYXBFbnRyaWVzKSxyfXZhciBndD17Y3JlYXRlTm9kZTptYSxkZWZhdWx0OiEwLG5vZGVDbGFzczpFLllBTUxNYXAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6bWFwXCIscmVzb2x2ZTpFLnJlc29sdmVNYXB9O2Z1bmN0aW9uIGhhKHQsZSxuKXtsZXQgcj1uZXcgRS5ZQU1MU2VxKHQpO2lmKGUmJmVbU3ltYm9sLml0ZXJhdG9yXSlmb3IobGV0IHMgb2YgZSl7bGV0IGk9dC5jcmVhdGVOb2RlKHMsbi53cmFwU2NhbGFycyxudWxsLG4pO3IuaXRlbXMucHVzaChpKX1yZXR1cm4gcn12YXIgR3Q9e2NyZWF0ZU5vZGU6aGEsZGVmYXVsdDohMCxub2RlQ2xhc3M6RS5ZQU1MU2VxLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOnNlcVwiLHJlc29sdmU6RS5yZXNvbHZlU2VxfSxnYT17aWRlbnRpZnk6dD0+dHlwZW9mIHQ9PVwic3RyaW5nXCIsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHJcIixyZXNvbHZlOkUucmVzb2x2ZVN0cmluZyxzdHJpbmdpZnkodCxlLG4scil7cmV0dXJuIGU9T2JqZWN0LmFzc2lnbih7YWN0dWFsU3RyaW5nOiEwfSxlKSxFLnN0cmluZ2lmeVN0cmluZyh0LGUsbixyKX0sb3B0aW9uczpFLnN0ck9wdGlvbnN9LEpuPVtndCxHdCxnYV0sSHQ9dD0+dHlwZW9mIHQ9PVwiYmlnaW50XCJ8fE51bWJlci5pc0ludGVnZXIodCksR249KHQsZSxuKT0+RS5pbnRPcHRpb25zLmFzQmlnSW50P0JpZ0ludCh0KTpwYXJzZUludChlLG4pO2Z1bmN0aW9uIEdzKHQsZSxuKXtsZXR7dmFsdWU6cn09dDtyZXR1cm4gSHQocikmJnI+PTA/bityLnRvU3RyaW5nKGUpOkUuc3RyaW5naWZ5TnVtYmVyKHQpfXZhciBIcz17aWRlbnRpZnk6dD0+dD09bnVsbCxjcmVhdGVOb2RlOih0LGUsbik9Pm4ud3JhcFNjYWxhcnM/bmV3IEUuU2NhbGFyKG51bGwpOm51bGwsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXCIsdGVzdDovXig/On58W05uXXVsbHxOVUxMKT8kLyxyZXNvbHZlOigpPT5udWxsLG9wdGlvbnM6RS5udWxsT3B0aW9ucyxzdHJpbmdpZnk6KCk9PkUubnVsbE9wdGlvbnMubnVsbFN0cn0sWHM9e2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cImJvb2xlYW5cIixkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcIix0ZXN0Oi9eKD86W1R0XXJ1ZXxUUlVFfFtGZl1hbHNlfEZBTFNFKSQvLHJlc29sdmU6dD0+dFswXT09PVwidFwifHx0WzBdPT09XCJUXCIsb3B0aW9uczpFLmJvb2xPcHRpb25zLHN0cmluZ2lmeTooe3ZhbHVlOnR9KT0+dD9FLmJvb2xPcHRpb25zLnRydWVTdHI6RS5ib29sT3B0aW9ucy5mYWxzZVN0cn0senM9e2lkZW50aWZ5OnQ9Pkh0KHQpJiZ0Pj0wLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6aW50XCIsZm9ybWF0OlwiT0NUXCIsdGVzdDovXjBvKFswLTddKykkLyxyZXNvbHZlOih0LGUpPT5Hbih0LGUsOCksb3B0aW9uczpFLmludE9wdGlvbnMsc3RyaW5naWZ5OnQ9PkdzKHQsOCxcIjBvXCIpfSxacz17aWRlbnRpZnk6SHQsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcIix0ZXN0Oi9eWy0rXT9bMC05XSskLyxyZXNvbHZlOnQ9PkduKHQsdCwxMCksb3B0aW9uczpFLmludE9wdGlvbnMsc3RyaW5naWZ5OkUuc3RyaW5naWZ5TnVtYmVyfSxlaT17aWRlbnRpZnk6dD0+SHQodCkmJnQ+PTAsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcIixmb3JtYXQ6XCJIRVhcIix0ZXN0Oi9eMHgoWzAtOWEtZkEtRl0rKSQvLHJlc29sdmU6KHQsZSk9PkduKHQsZSwxNiksb3B0aW9uczpFLmludE9wdGlvbnMsc3RyaW5naWZ5OnQ9PkdzKHQsMTYsXCIweFwiKX0sdGk9e2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIix0ZXN0Oi9eKD86Wy0rXT9cXC5pbmZ8KFxcLm5hbikpJC9pLHJlc29sdmU6KHQsZSk9PmU/TmFOOnRbMF09PT1cIi1cIj9OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHN0cmluZ2lmeTpFLnN0cmluZ2lmeU51bWJlcn0sbmk9e2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIixmb3JtYXQ6XCJFWFBcIix0ZXN0Oi9eWy0rXT8oPzpcXC5bMC05XSt8WzAtOV0rKD86XFwuWzAtOV0qKT8pW2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTp0PT5wYXJzZUZsb2F0KHQpLHN0cmluZ2lmeTooe3ZhbHVlOnR9KT0+TnVtYmVyKHQpLnRvRXhwb25lbnRpYWwoKX0scmk9e2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIix0ZXN0Oi9eWy0rXT8oPzpcXC4oWzAtOV0rKXxbMC05XStcXC4oWzAtOV0qKSkkLyxyZXNvbHZlKHQsZSxuKXtsZXQgcj1lfHxuLHM9bmV3IEUuU2NhbGFyKHBhcnNlRmxvYXQodCkpO3JldHVybiByJiZyW3IubGVuZ3RoLTFdPT09XCIwXCImJihzLm1pbkZyYWN0aW9uRGlnaXRzPXIubGVuZ3RoKSxzfSxzdHJpbmdpZnk6RS5zdHJpbmdpZnlOdW1iZXJ9LGRhPUpuLmNvbmNhdChbSHMsWHMsenMsWnMsZWksdGksbmkscmldKSxRcz10PT50eXBlb2YgdD09XCJiaWdpbnRcInx8TnVtYmVyLmlzSW50ZWdlcih0KSxqdD0oe3ZhbHVlOnR9KT0+SlNPTi5zdHJpbmdpZnkodCksc2k9W2d0LEd0LHtpZGVudGlmeTp0PT50eXBlb2YgdD09XCJzdHJpbmdcIixkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOnN0clwiLHJlc29sdmU6RS5yZXNvbHZlU3RyaW5nLHN0cmluZ2lmeTpqdH0se2lkZW50aWZ5OnQ9PnQ9PW51bGwsY3JlYXRlTm9kZToodCxlLG4pPT5uLndyYXBTY2FsYXJzP25ldyBFLlNjYWxhcihudWxsKTpudWxsLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6bnVsbFwiLHRlc3Q6L15udWxsJC8scmVzb2x2ZTooKT0+bnVsbCxzdHJpbmdpZnk6anR9LHtpZGVudGlmeTp0PT50eXBlb2YgdD09XCJib29sZWFuXCIsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXCIsdGVzdDovXnRydWV8ZmFsc2UkLyxyZXNvbHZlOnQ9PnQ9PT1cInRydWVcIixzdHJpbmdpZnk6anR9LHtpZGVudGlmeTpRcyxkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmludFwiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopJC8scmVzb2x2ZTp0PT5FLmludE9wdGlvbnMuYXNCaWdJbnQ/QmlnSW50KHQpOnBhcnNlSW50KHQsMTApLHN0cmluZ2lmeTooe3ZhbHVlOnR9KT0+UXModCk/dC50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KHQpfSx7aWRlbnRpZnk6dD0+dHlwZW9mIHQ9PVwibnVtYmVyXCIsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdFwiLHRlc3Q6L14tPyg/OjB8WzEtOV1bMC05XSopKD86XFwuWzAtOV0qKT8oPzpbZUVdWy0rXT9bMC05XSspPyQvLHJlc29sdmU6dD0+cGFyc2VGbG9hdCh0KSxzdHJpbmdpZnk6anR9XTtzaS5zY2FsYXJGYWxsYmFjaz10PT57dGhyb3cgbmV3IFN5bnRheEVycm9yKGBVbnJlc29sdmVkIHBsYWluIHNjYWxhciAke0pTT04uc3RyaW5naWZ5KHQpfWApfTt2YXIgSnM9KHt2YWx1ZTp0fSk9PnQ/RS5ib29sT3B0aW9ucy50cnVlU3RyOkUuYm9vbE9wdGlvbnMuZmFsc2VTdHIsaHQ9dD0+dHlwZW9mIHQ9PVwiYmlnaW50XCJ8fE51bWJlci5pc0ludGVnZXIodCk7ZnVuY3Rpb24gUXQodCxlLG4pe2xldCByPWUucmVwbGFjZSgvXy9nLFwiXCIpO2lmKEUuaW50T3B0aW9ucy5hc0JpZ0ludCl7c3dpdGNoKG4pe2Nhc2UgMjpyPWAwYiR7cn1gO2JyZWFrO2Nhc2UgODpyPWAwbyR7cn1gO2JyZWFrO2Nhc2UgMTY6cj1gMHgke3J9YDticmVha31sZXQgaT1CaWdJbnQocik7cmV0dXJuIHQ9PT1cIi1cIj9CaWdJbnQoLTEpKmk6aX1sZXQgcz1wYXJzZUludChyLG4pO3JldHVybiB0PT09XCItXCI/LTEqczpzfWZ1bmN0aW9uIFFuKHQsZSxuKXtsZXR7dmFsdWU6cn09dDtpZihodChyKSl7bGV0IHM9ci50b1N0cmluZyhlKTtyZXR1cm4gcjwwP1wiLVwiK24rcy5zdWJzdHIoMSk6bitzfXJldHVybiBFLnN0cmluZ2lmeU51bWJlcih0KX12YXIgeWE9Sm4uY29uY2F0KFt7aWRlbnRpZnk6dD0+dD09bnVsbCxjcmVhdGVOb2RlOih0LGUsbik9Pm4ud3JhcFNjYWxhcnM/bmV3IEUuU2NhbGFyKG51bGwpOm51bGwsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXCIsdGVzdDovXig/On58W05uXXVsbHxOVUxMKT8kLyxyZXNvbHZlOigpPT5udWxsLG9wdGlvbnM6RS5udWxsT3B0aW9ucyxzdHJpbmdpZnk6KCk9PkUubnVsbE9wdGlvbnMubnVsbFN0cn0se2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cImJvb2xlYW5cIixkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmJvb2xcIix0ZXN0Oi9eKD86WXx5fFtZeV1lc3xZRVN8W1R0XXJ1ZXxUUlVFfFtPb11ufE9OKSQvLHJlc29sdmU6KCk9PiEwLG9wdGlvbnM6RS5ib29sT3B0aW9ucyxzdHJpbmdpZnk6SnN9LHtpZGVudGlmeTp0PT50eXBlb2YgdD09XCJib29sZWFuXCIsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXCIsdGVzdDovXig/Ok58bnxbTm5db3xOT3xbRmZdYWxzZXxGQUxTRXxbT29dZmZ8T0ZGKSQvaSxyZXNvbHZlOigpPT4hMSxvcHRpb25zOkUuYm9vbE9wdGlvbnMsc3RyaW5naWZ5OkpzfSx7aWRlbnRpZnk6aHQsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcIixmb3JtYXQ6XCJCSU5cIix0ZXN0Oi9eKFstK10/KTBiKFswLTFfXSspJC8scmVzb2x2ZToodCxlLG4pPT5RdChlLG4sMiksc3RyaW5naWZ5OnQ9PlFuKHQsMixcIjBiXCIpfSx7aWRlbnRpZnk6aHQsZGVmYXVsdDohMCx0YWc6XCJ0YWc6eWFtbC5vcmcsMjAwMjppbnRcIixmb3JtYXQ6XCJPQ1RcIix0ZXN0Oi9eKFstK10/KTAoWzAtN19dKykkLyxyZXNvbHZlOih0LGUsbik9PlF0KGUsbiw4KSxzdHJpbmdpZnk6dD0+UW4odCw4LFwiMFwiKX0se2lkZW50aWZ5Omh0LGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6aW50XCIsdGVzdDovXihbLStdPykoWzAtOV1bMC05X10qKSQvLHJlc29sdmU6KHQsZSxuKT0+UXQoZSxuLDEwKSxzdHJpbmdpZnk6RS5zdHJpbmdpZnlOdW1iZXJ9LHtpZGVudGlmeTpodCxkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmludFwiLGZvcm1hdDpcIkhFWFwiLHRlc3Q6L14oWy0rXT8pMHgoWzAtOWEtZkEtRl9dKykkLyxyZXNvbHZlOih0LGUsbik9PlF0KGUsbiwxNiksc3RyaW5naWZ5OnQ9PlFuKHQsMTYsXCIweFwiKX0se2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIix0ZXN0Oi9eKD86Wy0rXT9cXC5pbmZ8KFxcLm5hbikpJC9pLHJlc29sdmU6KHQsZSk9PmU/TmFOOnRbMF09PT1cIi1cIj9OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk6TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHN0cmluZ2lmeTpFLnN0cmluZ2lmeU51bWJlcn0se2lkZW50aWZ5OnQ9PnR5cGVvZiB0PT1cIm51bWJlclwiLGRlZmF1bHQ6ITAsdGFnOlwidGFnOnlhbWwub3JnLDIwMDI6ZmxvYXRcIixmb3JtYXQ6XCJFWFBcIix0ZXN0Oi9eWy0rXT8oWzAtOV1bMC05X10qKT8oXFwuWzAtOV9dKik/W2VFXVstK10/WzAtOV0rJC8scmVzb2x2ZTp0PT5wYXJzZUZsb2F0KHQucmVwbGFjZSgvXy9nLFwiXCIpKSxzdHJpbmdpZnk6KHt2YWx1ZTp0fSk9Pk51bWJlcih0KS50b0V4cG9uZW50aWFsKCl9LHtpZGVudGlmeTp0PT50eXBlb2YgdD09XCJudW1iZXJcIixkZWZhdWx0OiEwLHRhZzpcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XCIsdGVzdDovXlstK10/KD86WzAtOV1bMC05X10qKT9cXC4oWzAtOV9dKikkLyxyZXNvbHZlKHQsZSl7bGV0IG49bmV3IEUuU2NhbGFyKHBhcnNlRmxvYXQodC5yZXBsYWNlKC9fL2csXCJcIikpKTtpZihlKXtsZXQgcj1lLnJlcGxhY2UoL18vZyxcIlwiKTtyW3IubGVuZ3RoLTFdPT09XCIwXCImJihuLm1pbkZyYWN0aW9uRGlnaXRzPXIubGVuZ3RoKX1yZXR1cm4gbn0sc3RyaW5naWZ5OkUuc3RyaW5naWZ5TnVtYmVyfV0sRC5iaW5hcnksRC5vbWFwLEQucGFpcnMsRC5zZXQsRC5pbnRUaW1lLEQuZmxvYXRUaW1lLEQudGltZXN0YW1wKSxFYT17Y29yZTpkYSxmYWlsc2FmZTpKbixqc29uOnNpLHlhbWwxMTp5YX0sU2E9e2JpbmFyeTpELmJpbmFyeSxib29sOlhzLGZsb2F0OnJpLGZsb2F0RXhwOm5pLGZsb2F0TmFOOnRpLGZsb2F0VGltZTpELmZsb2F0VGltZSxpbnQ6WnMsaW50SGV4OmVpLGludE9jdDp6cyxpbnRUaW1lOkQuaW50VGltZSxtYXA6Z3QsbnVsbDpIcyxvbWFwOkQub21hcCxwYWlyczpELnBhaXJzLHNlcTpHdCxzZXQ6RC5zZXQsdGltZXN0YW1wOkQudGltZXN0YW1wfTtmdW5jdGlvbiB3YSh0LGUsbil7aWYoZSl7bGV0IHI9bi5maWx0ZXIoaT0+aS50YWc9PT1lKSxzPXIuZmluZChpPT4haS5mb3JtYXQpfHxyWzBdO2lmKCFzKXRocm93IG5ldyBFcnJvcihgVGFnICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHN9cmV0dXJuIG4uZmluZChyPT4oci5pZGVudGlmeSYmci5pZGVudGlmeSh0KXx8ci5jbGFzcyYmdCBpbnN0YW5jZW9mIHIuY2xhc3MpJiYhci5mb3JtYXQpfWZ1bmN0aW9uIGJhKHQsZSxuKXtpZih0IGluc3RhbmNlb2YgRS5Ob2RlKXJldHVybiB0O2xldHtkZWZhdWx0UHJlZml4OnIsb25UYWdPYmo6cyxwcmV2T2JqZWN0czppLHNjaGVtYTpvLHdyYXBTY2FsYXJzOmF9PW47ZSYmZS5zdGFydHNXaXRoKFwiISFcIikmJihlPXIrZS5zbGljZSgyKSk7bGV0IGM9d2EodCxlLG8udGFncyk7aWYoIWMpe2lmKHR5cGVvZiB0LnRvSlNPTj09XCJmdW5jdGlvblwiJiYodD10LnRvSlNPTigpKSwhdHx8dHlwZW9mIHQhPVwib2JqZWN0XCIpcmV0dXJuIGE/bmV3IEUuU2NhbGFyKHQpOnQ7Yz10IGluc3RhbmNlb2YgTWFwP2d0OnRbU3ltYm9sLml0ZXJhdG9yXT9HdDpndH1zJiYocyhjKSxkZWxldGUgbi5vblRhZ09iaik7bGV0IGw9e3ZhbHVlOnZvaWQgMCxub2RlOnZvaWQgMH07aWYodCYmdHlwZW9mIHQ9PVwib2JqZWN0XCImJmkpe2xldCBmPWkuZ2V0KHQpO2lmKGYpe2xldCBtPW5ldyBFLkFsaWFzKGYpO3JldHVybiBuLmFsaWFzTm9kZXMucHVzaChtKSxtfWwudmFsdWU9dCxpLnNldCh0LGwpfXJldHVybiBsLm5vZGU9Yy5jcmVhdGVOb2RlP2MuY3JlYXRlTm9kZShuLnNjaGVtYSx0LG4pOmE/bmV3IEUuU2NhbGFyKHQpOnQsZSYmbC5ub2RlIGluc3RhbmNlb2YgRS5Ob2RlJiYobC5ub2RlLnRhZz1lKSxsLm5vZGV9ZnVuY3Rpb24gTmEodCxlLG4scil7bGV0IHM9dFtyLnJlcGxhY2UoL1xcVy9nLFwiXCIpXTtpZighcyl7bGV0IGk9T2JqZWN0LmtleXModCkubWFwKG89PkpTT04uc3RyaW5naWZ5KG8pKS5qb2luKFwiLCBcIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHNjaGVtYSBcIiR7cn1cIjsgdXNlIG9uZSBvZiAke2l9YCl9aWYoQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IGkgb2YgbilzPXMuY29uY2F0KGkpO2Vsc2UgdHlwZW9mIG49PVwiZnVuY3Rpb25cIiYmKHM9bihzLnNsaWNlKCkpKTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoOysraSl7bGV0IG89c1tpXTtpZih0eXBlb2Ygbz09XCJzdHJpbmdcIil7bGV0IGE9ZVtvXTtpZighYSl7bGV0IGM9T2JqZWN0LmtleXMoZSkubWFwKGw9PkpTT04uc3RyaW5naWZ5KGwpKS5qb2luKFwiLCBcIik7dGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGN1c3RvbSB0YWcgXCIke299XCI7IHVzZSBvbmUgb2YgJHtjfWApfXNbaV09YX19cmV0dXJuIHN9dmFyIE9hPSh0LGUpPT50LmtleTxlLmtleT8tMTp0LmtleT5lLmtleT8xOjAsZHQ9Y2xhc3MgdHtjb25zdHJ1Y3Rvcih7Y3VzdG9tVGFnczplLG1lcmdlOm4sc2NoZW1hOnIsc29ydE1hcEVudHJpZXM6cyx0YWdzOml9KXt0aGlzLm1lcmdlPSEhbix0aGlzLm5hbWU9cix0aGlzLnNvcnRNYXBFbnRyaWVzPXM9PT0hMD9PYTpzfHxudWxsLCFlJiZpJiZELndhcm5PcHRpb25EZXByZWNhdGlvbihcInRhZ3NcIixcImN1c3RvbVRhZ3NcIiksdGhpcy50YWdzPU5hKEVhLFNhLGV8fGkscil9Y3JlYXRlTm9kZShlLG4scixzKXtsZXQgaT17ZGVmYXVsdFByZWZpeDp0LmRlZmF1bHRQcmVmaXgsc2NoZW1hOnRoaXMsd3JhcFNjYWxhcnM6bn0sbz1zP09iamVjdC5hc3NpZ24ocyxpKTppO3JldHVybiBiYShlLHIsbyl9Y3JlYXRlUGFpcihlLG4scil7cnx8KHI9e3dyYXBTY2FsYXJzOiEwfSk7bGV0IHM9dGhpcy5jcmVhdGVOb2RlKGUsci53cmFwU2NhbGFycyxudWxsLHIpLGk9dGhpcy5jcmVhdGVOb2RlKG4sci53cmFwU2NhbGFycyxudWxsLHIpO3JldHVybiBuZXcgRS5QYWlyKHMsaSl9fTtKdC5fZGVmaW5lUHJvcGVydHkoZHQsXCJkZWZhdWx0UHJlZml4XCIsSnQuZGVmYXVsdFRhZ1ByZWZpeCk7SnQuX2RlZmluZVByb3BlcnR5KGR0LFwiZGVmYXVsdFRhZ3NcIixKdC5kZWZhdWx0VGFncyk7aWkuU2NoZW1hPWR0fSk7dmFyIGxpPWVlKGVuPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIFk9bGUoKSxTPSRlKCksb2k9SG4oKSxMYT17YW5jaG9yUHJlZml4OlwiYVwiLGN1c3RvbVRhZ3M6bnVsbCxpbmRlbnQ6MixpbmRlbnRTZXE6ITAsa2VlcENzdE5vZGVzOiExLGtlZXBOb2RlVHlwZXM6ITAsa2VlcEJsb2JzSW5KU09OOiEwLG1hcEFzTWFwOiExLG1heEFsaWFzQ291bnQ6MTAwLHByZXR0eUVycm9yczohMSxzaW1wbGVLZXlzOiExLHZlcnNpb246XCIxLjJcIn0sQWE9e2dldCBiaW5hcnkoKXtyZXR1cm4gUy5iaW5hcnlPcHRpb25zfSxzZXQgYmluYXJ5KHQpe09iamVjdC5hc3NpZ24oUy5iaW5hcnlPcHRpb25zLHQpfSxnZXQgYm9vbCgpe3JldHVybiBTLmJvb2xPcHRpb25zfSxzZXQgYm9vbCh0KXtPYmplY3QuYXNzaWduKFMuYm9vbE9wdGlvbnMsdCl9LGdldCBpbnQoKXtyZXR1cm4gUy5pbnRPcHRpb25zfSxzZXQgaW50KHQpe09iamVjdC5hc3NpZ24oUy5pbnRPcHRpb25zLHQpfSxnZXQgbnVsbCgpe3JldHVybiBTLm51bGxPcHRpb25zfSxzZXQgbnVsbCh0KXtPYmplY3QuYXNzaWduKFMubnVsbE9wdGlvbnMsdCl9LGdldCBzdHIoKXtyZXR1cm4gUy5zdHJPcHRpb25zfSxzZXQgc3RyKHQpe09iamVjdC5hc3NpZ24oUy5zdHJPcHRpb25zLHQpfX0sY2k9e1wiMS4wXCI6e3NjaGVtYTpcInlhbWwtMS4xXCIsbWVyZ2U6ITAsdGFnUHJlZml4ZXM6W3toYW5kbGU6XCIhXCIscHJlZml4OlkuZGVmYXVsdFRhZ1ByZWZpeH0se2hhbmRsZTpcIiEhXCIscHJlZml4OlwidGFnOnByaXZhdGUueWFtbC5vcmcsMjAwMjpcIn1dfSwxLjE6e3NjaGVtYTpcInlhbWwtMS4xXCIsbWVyZ2U6ITAsdGFnUHJlZml4ZXM6W3toYW5kbGU6XCIhXCIscHJlZml4OlwiIVwifSx7aGFuZGxlOlwiISFcIixwcmVmaXg6WS5kZWZhdWx0VGFnUHJlZml4fV19LDEuMjp7c2NoZW1hOlwiY29yZVwiLG1lcmdlOiExLHRhZ1ByZWZpeGVzOlt7aGFuZGxlOlwiIVwiLHByZWZpeDpcIiFcIn0se2hhbmRsZTpcIiEhXCIscHJlZml4OlkuZGVmYXVsdFRhZ1ByZWZpeH1dfX07ZnVuY3Rpb24gYWkodCxlKXtpZigodC52ZXJzaW9ufHx0Lm9wdGlvbnMudmVyc2lvbik9PT1cIjEuMFwiKXtsZXQgcz1lLm1hdGNoKC9edGFnOnByaXZhdGVcXC55YW1sXFwub3JnLDIwMDI6KFteOi9dKykkLyk7aWYocylyZXR1cm5cIiFcIitzWzFdO2xldCBpPWUubWF0Y2goL150YWc6KFthLXpBLVowLTktXSspXFwueWFtbFxcLm9yZywyMDAyOiguKikvKTtyZXR1cm4gaT9gISR7aVsxXX0vJHtpWzJdfWA6YCEke2UucmVwbGFjZSgvXnRhZzovLFwiXCIpfWB9bGV0IG49dC50YWdQcmVmaXhlcy5maW5kKHM9PmUuaW5kZXhPZihzLnByZWZpeCk9PT0wKTtpZighbil7bGV0IHM9dC5nZXREZWZhdWx0cygpLnRhZ1ByZWZpeGVzO249cyYmcy5maW5kKGk9PmUuaW5kZXhPZihpLnByZWZpeCk9PT0wKX1pZighbilyZXR1cm4gZVswXT09PVwiIVwiP2U6YCE8JHtlfT5gO2xldCByPWUuc3Vic3RyKG4ucHJlZml4Lmxlbmd0aCkucmVwbGFjZSgvWyEsW1xcXXt9XS9nLHM9Pih7XCIhXCI6XCIlMjFcIixcIixcIjpcIiUyQ1wiLFwiW1wiOlwiJTVCXCIsXCJdXCI6XCIlNURcIixcIntcIjpcIiU3QlwiLFwifVwiOlwiJTdEXCJ9KVtzXSk7cmV0dXJuIG4uaGFuZGxlK3J9ZnVuY3Rpb24gVGEodCxlKXtpZihlIGluc3RhbmNlb2YgUy5BbGlhcylyZXR1cm4gUy5BbGlhcztpZihlLnRhZyl7bGV0IHM9dC5maWx0ZXIoaT0+aS50YWc9PT1lLnRhZyk7aWYocy5sZW5ndGg+MClyZXR1cm4gcy5maW5kKGk9PmkuZm9ybWF0PT09ZS5mb3JtYXQpfHxzWzBdfWxldCBuLHI7aWYoZSBpbnN0YW5jZW9mIFMuU2NhbGFyKXtyPWUudmFsdWU7bGV0IHM9dC5maWx0ZXIoaT0+aS5pZGVudGlmeSYmaS5pZGVudGlmeShyKXx8aS5jbGFzcyYmciBpbnN0YW5jZW9mIGkuY2xhc3MpO249cy5maW5kKGk9PmkuZm9ybWF0PT09ZS5mb3JtYXQpfHxzLmZpbmQoaT0+IWkuZm9ybWF0KX1lbHNlIHI9ZSxuPXQuZmluZChzPT5zLm5vZGVDbGFzcyYmciBpbnN0YW5jZW9mIHMubm9kZUNsYXNzKTtpZighbil7bGV0IHM9ciYmci5jb25zdHJ1Y3Rvcj9yLmNvbnN0cnVjdG9yLm5hbWU6dHlwZW9mIHI7dGhyb3cgbmV3IEVycm9yKGBUYWcgbm90IHJlc29sdmVkIGZvciAke3N9IHZhbHVlYCl9cmV0dXJuIG59ZnVuY3Rpb24gQ2EodCxlLHthbmNob3JzOm4sZG9jOnJ9KXtsZXQgcz1bXSxpPXIuYW5jaG9ycy5nZXROYW1lKHQpO3JldHVybiBpJiYobltpXT10LHMucHVzaChgJiR7aX1gKSksdC50YWc/cy5wdXNoKGFpKHIsdC50YWcpKTplLmRlZmF1bHR8fHMucHVzaChhaShyLGUudGFnKSkscy5qb2luKFwiIFwiKX1mdW5jdGlvbiBYdCh0LGUsbixyKXtsZXR7YW5jaG9yczpzLHNjaGVtYTppfT1lLmRvYyxvO2lmKCEodCBpbnN0YW5jZW9mIFMuTm9kZSkpe2xldCBsPXthbGlhc05vZGVzOltdLG9uVGFnT2JqOmY9Pm89ZixwcmV2T2JqZWN0czpuZXcgTWFwfTt0PWkuY3JlYXRlTm9kZSh0LCEwLG51bGwsbCk7Zm9yKGxldCBmIG9mIGwuYWxpYXNOb2Rlcyl7Zi5zb3VyY2U9Zi5zb3VyY2Uubm9kZTtsZXQgbT1zLmdldE5hbWUoZi5zb3VyY2UpO218fChtPXMubmV3TmFtZSgpLHMubWFwW21dPWYuc291cmNlKX19aWYodCBpbnN0YW5jZW9mIFMuUGFpcilyZXR1cm4gdC50b1N0cmluZyhlLG4scik7b3x8KG89VGEoaS50YWdzLHQpKTtsZXQgYT1DYSh0LG8sZSk7YS5sZW5ndGg+MCYmKGUuaW5kZW50QXRTdGFydD0oZS5pbmRlbnRBdFN0YXJ0fHwwKSthLmxlbmd0aCsxKTtsZXQgYz10eXBlb2Ygby5zdHJpbmdpZnk9PVwiZnVuY3Rpb25cIj9vLnN0cmluZ2lmeSh0LGUsbixyKTp0IGluc3RhbmNlb2YgUy5TY2FsYXI/Uy5zdHJpbmdpZnlTdHJpbmcodCxlLG4scik6dC50b1N0cmluZyhlLG4scik7cmV0dXJuIGE/dCBpbnN0YW5jZW9mIFMuU2NhbGFyfHxjWzBdPT09XCJ7XCJ8fGNbMF09PT1cIltcIj9gJHthfSAke2N9YDpgJHthfVxuJHtlLmluZGVudH0ke2N9YDpjfXZhciBYbj1jbGFzcyB0e3N0YXRpYyB2YWxpZEFuY2hvck5vZGUoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTLlNjYWxhcnx8ZSBpbnN0YW5jZW9mIFMuWUFNTFNlcXx8ZSBpbnN0YW5jZW9mIFMuWUFNTE1hcH1jb25zdHJ1Y3RvcihlKXtZLl9kZWZpbmVQcm9wZXJ0eSh0aGlzLFwibWFwXCIsT2JqZWN0LmNyZWF0ZShudWxsKSksdGhpcy5wcmVmaXg9ZX1jcmVhdGVBbGlhcyhlLG4pe3JldHVybiB0aGlzLnNldEFuY2hvcihlLG4pLG5ldyBTLkFsaWFzKGUpfWNyZWF0ZU1lcmdlUGFpciguLi5lKXtsZXQgbj1uZXcgUy5NZXJnZTtyZXR1cm4gbi52YWx1ZS5pdGVtcz1lLm1hcChyPT57aWYociBpbnN0YW5jZW9mIFMuQWxpYXMpe2lmKHIuc291cmNlIGluc3RhbmNlb2YgUy5ZQU1MTWFwKXJldHVybiByfWVsc2UgaWYociBpbnN0YW5jZW9mIFMuWUFNTE1hcClyZXR1cm4gdGhpcy5jcmVhdGVBbGlhcyhyKTt0aHJvdyBuZXcgRXJyb3IoXCJNZXJnZSBzb3VyY2VzIG11c3QgYmUgTWFwIG5vZGVzIG9yIHRoZWlyIEFsaWFzZXNcIil9KSxufWdldE5hbWUoZSl7bGV0e21hcDpufT10aGlzO3JldHVybiBPYmplY3Qua2V5cyhuKS5maW5kKHI9Pm5bcl09PT1lKX1nZXROYW1lcygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLm1hcCl9Z2V0Tm9kZShlKXtyZXR1cm4gdGhpcy5tYXBbZV19bmV3TmFtZShlKXtlfHwoZT10aGlzLnByZWZpeCk7bGV0IG49T2JqZWN0LmtleXModGhpcy5tYXApO2ZvcihsZXQgcj0xOzsrK3Ipe2xldCBzPWAke2V9JHtyfWA7aWYoIW4uaW5jbHVkZXMocykpcmV0dXJuIHN9fXJlc29sdmVOb2Rlcygpe2xldHttYXA6ZSxfY3N0QWxpYXNlczpufT10aGlzO09iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e2Vbcl09ZVtyXS5yZXNvbHZlZH0pLG4uZm9yRWFjaChyPT57ci5zb3VyY2U9ci5zb3VyY2UucmVzb2x2ZWR9KSxkZWxldGUgdGhpcy5fY3N0QWxpYXNlc31zZXRBbmNob3IoZSxuKXtpZihlIT1udWxsJiYhdC52YWxpZEFuY2hvck5vZGUoZSkpdGhyb3cgbmV3IEVycm9yKFwiQW5jaG9ycyBtYXkgb25seSBiZSBzZXQgZm9yIFNjYWxhciwgU2VxIGFuZCBNYXAgbm9kZXNcIik7aWYobiYmL1tcXHgwMC1cXHgxOVxccyxbXFxde31dLy50ZXN0KG4pKXRocm93IG5ldyBFcnJvcihcIkFuY2hvciBuYW1lcyBtdXN0IG5vdCBjb250YWluIHdoaXRlc3BhY2Ugb3IgY29udHJvbCBjaGFyYWN0ZXJzXCIpO2xldHttYXA6cn09dGhpcyxzPWUmJk9iamVjdC5rZXlzKHIpLmZpbmQoaT0+cltpXT09PWUpO2lmKHMpaWYobilzIT09biYmKGRlbGV0ZSByW3NdLHJbbl09ZSk7ZWxzZSByZXR1cm4gcztlbHNle2lmKCFuKXtpZighZSlyZXR1cm4gbnVsbDtuPXRoaXMubmV3TmFtZSgpfXJbbl09ZX1yZXR1cm4gbn19LHp0PSh0LGUpPT57aWYodCYmdHlwZW9mIHQ9PVwib2JqZWN0XCIpe2xldHt0YWc6bn09dDt0IGluc3RhbmNlb2YgUy5Db2xsZWN0aW9uPyhuJiYoZVtuXT0hMCksdC5pdGVtcy5mb3JFYWNoKHI9Pnp0KHIsZSkpKTp0IGluc3RhbmNlb2YgUy5QYWlyPyh6dCh0LmtleSxlKSx6dCh0LnZhbHVlLGUpKTp0IGluc3RhbmNlb2YgUy5TY2FsYXImJm4mJihlW25dPSEwKX1yZXR1cm4gZX0sTWE9dD0+T2JqZWN0LmtleXMoenQodCx7fSkpO2Z1bmN0aW9uIGthKHQsZSl7bGV0IG49e2JlZm9yZTpbXSxhZnRlcjpbXX0scixzPSExO2ZvcihsZXQgaSBvZiBlKWlmKGkudmFsdWVSYW5nZSl7aWYociE9PXZvaWQgMCl7bGV0IGE9XCJEb2N1bWVudCBjb250YWlucyB0cmFpbGluZyBjb250ZW50IG5vdCBzZXBhcmF0ZWQgYnkgYSAuLi4gb3IgLS0tIGxpbmVcIjt0LmVycm9ycy5wdXNoKG5ldyBZLllBTUxTeW50YXhFcnJvcihpLGEpKTticmVha31sZXQgbz1TLnJlc29sdmVOb2RlKHQsaSk7cyYmKG8uc3BhY2VCZWZvcmU9ITAscz0hMSkscj1vfWVsc2UgaS5jb21tZW50IT09bnVsbD8ocj09PXZvaWQgMD9uLmJlZm9yZTpuLmFmdGVyKS5wdXNoKGkuY29tbWVudCk6aS50eXBlPT09WS5UeXBlLkJMQU5LX0xJTkUmJihzPSEwLHI9PT12b2lkIDAmJm4uYmVmb3JlLmxlbmd0aD4wJiYhdC5jb21tZW50QmVmb3JlJiYodC5jb21tZW50QmVmb3JlPW4uYmVmb3JlLmpvaW4oYFxuYCksbi5iZWZvcmU9W10pKTtpZih0LmNvbnRlbnRzPXJ8fG51bGwsIXIpdC5jb21tZW50PW4uYmVmb3JlLmNvbmNhdChuLmFmdGVyKS5qb2luKGBcbmApfHxudWxsO2Vsc2V7bGV0IGk9bi5iZWZvcmUuam9pbihgXG5gKTtpZihpKXtsZXQgbz1yIGluc3RhbmNlb2YgUy5Db2xsZWN0aW9uJiZyLml0ZW1zWzBdP3IuaXRlbXNbMF06cjtvLmNvbW1lbnRCZWZvcmU9by5jb21tZW50QmVmb3JlP2Ake2l9XG4ke28uY29tbWVudEJlZm9yZX1gOml9dC5jb21tZW50PW4uYWZ0ZXIuam9pbihgXG5gKXx8bnVsbH19ZnVuY3Rpb24gdmEoe3RhZ1ByZWZpeGVzOnR9LGUpe2xldFtuLHJdPWUucGFyYW1ldGVycztpZighbnx8IXIpe2xldCBzPVwiSW5zdWZmaWNpZW50IHBhcmFtZXRlcnMgZ2l2ZW4gZm9yICVUQUcgZGlyZWN0aXZlXCI7dGhyb3cgbmV3IFkuWUFNTFNlbWFudGljRXJyb3IoZSxzKX1pZih0LnNvbWUocz0+cy5oYW5kbGU9PT1uKSl7bGV0IHM9XCJUaGUgJVRBRyBkaXJlY3RpdmUgbXVzdCBvbmx5IGJlIGdpdmVuIGF0IG1vc3Qgb25jZSBwZXIgaGFuZGxlIGluIHRoZSBzYW1lIGRvY3VtZW50LlwiO3Rocm93IG5ldyBZLllBTUxTZW1hbnRpY0Vycm9yKGUscyl9cmV0dXJue2hhbmRsZTpuLHByZWZpeDpyfX1mdW5jdGlvbiBJYSh0LGUpe2xldFtuXT1lLnBhcmFtZXRlcnM7aWYoZS5uYW1lPT09XCJZQU1MOjEuMFwiJiYobj1cIjEuMFwiKSwhbil7bGV0IHI9XCJJbnN1ZmZpY2llbnQgcGFyYW1ldGVycyBnaXZlbiBmb3IgJVlBTUwgZGlyZWN0aXZlXCI7dGhyb3cgbmV3IFkuWUFNTFNlbWFudGljRXJyb3IoZSxyKX1pZighY2lbbl0pe2xldCBzPWBEb2N1bWVudCB3aWxsIGJlIHBhcnNlZCBhcyBZQU1MICR7dC52ZXJzaW9ufHx0Lm9wdGlvbnMudmVyc2lvbn0gcmF0aGVyIHRoYW4gWUFNTCAke259YDt0Lndhcm5pbmdzLnB1c2gobmV3IFkuWUFNTFdhcm5pbmcoZSxzKSl9cmV0dXJuIG59ZnVuY3Rpb24gUGEodCxlLG4pe2xldCByPVtdLHM9ITE7Zm9yKGxldCBpIG9mIGUpe2xldHtjb21tZW50Om8sbmFtZTphfT1pO3N3aXRjaChhKXtjYXNlXCJUQUdcIjp0cnl7dC50YWdQcmVmaXhlcy5wdXNoKHZhKHQsaSkpfWNhdGNoKGMpe3QuZXJyb3JzLnB1c2goYyl9cz0hMDticmVhaztjYXNlXCJZQU1MXCI6Y2FzZVwiWUFNTDoxLjBcIjppZih0LnZlcnNpb24pe2xldCBjPVwiVGhlICVZQU1MIGRpcmVjdGl2ZSBtdXN0IG9ubHkgYmUgZ2l2ZW4gYXQgbW9zdCBvbmNlIHBlciBkb2N1bWVudC5cIjt0LmVycm9ycy5wdXNoKG5ldyBZLllBTUxTZW1hbnRpY0Vycm9yKGksYykpfXRyeXt0LnZlcnNpb249SWEodCxpKX1jYXRjaChjKXt0LmVycm9ycy5wdXNoKGMpfXM9ITA7YnJlYWs7ZGVmYXVsdDppZihhKXtsZXQgYz1gWUFNTCBvbmx5IHN1cHBvcnRzICVUQUcgYW5kICVZQU1MIGRpcmVjdGl2ZXMsIGFuZCBub3QgJSR7YX1gO3Qud2FybmluZ3MucHVzaChuZXcgWS5ZQU1MV2FybmluZyhpLGMpKX19byYmci5wdXNoKG8pfWlmKG4mJiFzJiYodC52ZXJzaW9ufHxuLnZlcnNpb258fHQub3B0aW9ucy52ZXJzaW9uKT09PVwiMS4xXCIpe2xldCBpPSh7aGFuZGxlOm8scHJlZml4OmF9KT0+KHtoYW5kbGU6byxwcmVmaXg6YX0pO3QudGFnUHJlZml4ZXM9bi50YWdQcmVmaXhlcy5tYXAoaSksdC52ZXJzaW9uPW4udmVyc2lvbn10LmNvbW1lbnRCZWZvcmU9ci5qb2luKGBcbmApfHxudWxsfWZ1bmN0aW9uIFVlKHQpe2lmKHQgaW5zdGFuY2VvZiBTLkNvbGxlY3Rpb24pcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgYSBZQU1MIGNvbGxlY3Rpb24gYXMgZG9jdW1lbnQgY29udGVudHNcIil9dmFyIFp0PWNsYXNzIHR7Y29uc3RydWN0b3IoZSl7dGhpcy5hbmNob3JzPW5ldyBYbihlLmFuY2hvclByZWZpeCksdGhpcy5jb21tZW50QmVmb3JlPW51bGwsdGhpcy5jb21tZW50PW51bGwsdGhpcy5jb250ZW50cz1udWxsLHRoaXMuZGlyZWN0aXZlc0VuZE1hcmtlcj1udWxsLHRoaXMuZXJyb3JzPVtdLHRoaXMub3B0aW9ucz1lLHRoaXMuc2NoZW1hPW51bGwsdGhpcy50YWdQcmVmaXhlcz1bXSx0aGlzLnZlcnNpb249bnVsbCx0aGlzLndhcm5pbmdzPVtdfWFkZChlKXtyZXR1cm4gVWUodGhpcy5jb250ZW50cyksdGhpcy5jb250ZW50cy5hZGQoZSl9YWRkSW4oZSxuKXtVZSh0aGlzLmNvbnRlbnRzKSx0aGlzLmNvbnRlbnRzLmFkZEluKGUsbil9ZGVsZXRlKGUpe3JldHVybiBVZSh0aGlzLmNvbnRlbnRzKSx0aGlzLmNvbnRlbnRzLmRlbGV0ZShlKX1kZWxldGVJbihlKXtyZXR1cm4gUy5pc0VtcHR5UGF0aChlKT90aGlzLmNvbnRlbnRzPT1udWxsPyExOih0aGlzLmNvbnRlbnRzPW51bGwsITApOihVZSh0aGlzLmNvbnRlbnRzKSx0aGlzLmNvbnRlbnRzLmRlbGV0ZUluKGUpKX1nZXREZWZhdWx0cygpe3JldHVybiB0LmRlZmF1bHRzW3RoaXMudmVyc2lvbl18fHQuZGVmYXVsdHNbdGhpcy5vcHRpb25zLnZlcnNpb25dfHx7fX1nZXQoZSxuKXtyZXR1cm4gdGhpcy5jb250ZW50cyBpbnN0YW5jZW9mIFMuQ29sbGVjdGlvbj90aGlzLmNvbnRlbnRzLmdldChlLG4pOnZvaWQgMH1nZXRJbihlLG4pe3JldHVybiBTLmlzRW1wdHlQYXRoKGUpPyFuJiZ0aGlzLmNvbnRlbnRzIGluc3RhbmNlb2YgUy5TY2FsYXI/dGhpcy5jb250ZW50cy52YWx1ZTp0aGlzLmNvbnRlbnRzOnRoaXMuY29udGVudHMgaW5zdGFuY2VvZiBTLkNvbGxlY3Rpb24/dGhpcy5jb250ZW50cy5nZXRJbihlLG4pOnZvaWQgMH1oYXMoZSl7cmV0dXJuIHRoaXMuY29udGVudHMgaW5zdGFuY2VvZiBTLkNvbGxlY3Rpb24/dGhpcy5jb250ZW50cy5oYXMoZSk6ITF9aGFzSW4oZSl7cmV0dXJuIFMuaXNFbXB0eVBhdGgoZSk/dGhpcy5jb250ZW50cyE9PXZvaWQgMDp0aGlzLmNvbnRlbnRzIGluc3RhbmNlb2YgUy5Db2xsZWN0aW9uP3RoaXMuY29udGVudHMuaGFzSW4oZSk6ITF9c2V0KGUsbil7VWUodGhpcy5jb250ZW50cyksdGhpcy5jb250ZW50cy5zZXQoZSxuKX1zZXRJbihlLG4pe1MuaXNFbXB0eVBhdGgoZSk/dGhpcy5jb250ZW50cz1uOihVZSh0aGlzLmNvbnRlbnRzKSx0aGlzLmNvbnRlbnRzLnNldEluKGUsbikpfXNldFNjaGVtYShlLG4pe2lmKCFlJiYhbiYmdGhpcy5zY2hlbWEpcmV0dXJuO3R5cGVvZiBlPT1cIm51bWJlclwiJiYoZT1lLnRvRml4ZWQoMSkpLGU9PT1cIjEuMFwifHxlPT09XCIxLjFcInx8ZT09PVwiMS4yXCI/KHRoaXMudmVyc2lvbj90aGlzLnZlcnNpb249ZTp0aGlzLm9wdGlvbnMudmVyc2lvbj1lLGRlbGV0ZSB0aGlzLm9wdGlvbnMuc2NoZW1hKTplJiZ0eXBlb2YgZT09XCJzdHJpbmdcIiYmKHRoaXMub3B0aW9ucy5zY2hlbWE9ZSksQXJyYXkuaXNBcnJheShuKSYmKHRoaXMub3B0aW9ucy5jdXN0b21UYWdzPW4pO2xldCByPU9iamVjdC5hc3NpZ24oe30sdGhpcy5nZXREZWZhdWx0cygpLHRoaXMub3B0aW9ucyk7dGhpcy5zY2hlbWE9bmV3IG9pLlNjaGVtYShyKX1wYXJzZShlLG4pe3RoaXMub3B0aW9ucy5rZWVwQ3N0Tm9kZXMmJih0aGlzLmNzdE5vZGU9ZSksdGhpcy5vcHRpb25zLmtlZXBOb2RlVHlwZXMmJih0aGlzLnR5cGU9XCJET0NVTUVOVFwiKTtsZXR7ZGlyZWN0aXZlczpyPVtdLGNvbnRlbnRzOnM9W10sZGlyZWN0aXZlc0VuZE1hcmtlcjppLGVycm9yOm8sdmFsdWVSYW5nZTphfT1lO2lmKG8mJihvLnNvdXJjZXx8KG8uc291cmNlPXRoaXMpLHRoaXMuZXJyb3JzLnB1c2gobykpLFBhKHRoaXMscixuKSxpJiYodGhpcy5kaXJlY3RpdmVzRW5kTWFya2VyPSEwKSx0aGlzLnJhbmdlPWE/W2Euc3RhcnQsYS5lbmRdOm51bGwsdGhpcy5zZXRTY2hlbWEoKSx0aGlzLmFuY2hvcnMuX2NzdEFsaWFzZXM9W10sa2EodGhpcyxzKSx0aGlzLmFuY2hvcnMucmVzb2x2ZU5vZGVzKCksdGhpcy5vcHRpb25zLnByZXR0eUVycm9ycyl7Zm9yKGxldCBjIG9mIHRoaXMuZXJyb3JzKWMgaW5zdGFuY2VvZiBZLllBTUxFcnJvciYmYy5tYWtlUHJldHR5KCk7Zm9yKGxldCBjIG9mIHRoaXMud2FybmluZ3MpYyBpbnN0YW5jZW9mIFkuWUFNTEVycm9yJiZjLm1ha2VQcmV0dHkoKX1yZXR1cm4gdGhpc31saXN0Tm9uRGVmYXVsdFRhZ3MoKXtyZXR1cm4gTWEodGhpcy5jb250ZW50cykuZmlsdGVyKGU9PmUuaW5kZXhPZihvaS5TY2hlbWEuZGVmYXVsdFByZWZpeCkhPT0wKX1zZXRUYWdQcmVmaXgoZSxuKXtpZihlWzBdIT09XCIhXCJ8fGVbZS5sZW5ndGgtMV0hPT1cIiFcIil0aHJvdyBuZXcgRXJyb3IoXCJIYW5kbGUgbXVzdCBzdGFydCBhbmQgZW5kIHdpdGggIVwiKTtpZihuKXtsZXQgcj10aGlzLnRhZ1ByZWZpeGVzLmZpbmQocz0+cy5oYW5kbGU9PT1lKTtyP3IucHJlZml4PW46dGhpcy50YWdQcmVmaXhlcy5wdXNoKHtoYW5kbGU6ZSxwcmVmaXg6bn0pfWVsc2UgdGhpcy50YWdQcmVmaXhlcz10aGlzLnRhZ1ByZWZpeGVzLmZpbHRlcihyPT5yLmhhbmRsZSE9PWUpfXRvSlNPTihlLG4pe2xldHtrZWVwQmxvYnNJbkpTT046cixtYXBBc01hcDpzLG1heEFsaWFzQ291bnQ6aX09dGhpcy5vcHRpb25zLG89ciYmKHR5cGVvZiBlIT1cInN0cmluZ1wifHwhKHRoaXMuY29udGVudHMgaW5zdGFuY2VvZiBTLlNjYWxhcikpLGE9e2RvYzp0aGlzLGluZGVudFN0ZXA6XCIgIFwiLGtlZXA6byxtYXBBc01hcDpvJiYhIXMsbWF4QWxpYXNDb3VudDppLHN0cmluZ2lmeTpYdH0sYz1PYmplY3Qua2V5cyh0aGlzLmFuY2hvcnMubWFwKTtjLmxlbmd0aD4wJiYoYS5hbmNob3JzPW5ldyBNYXAoYy5tYXAoZj0+W3RoaXMuYW5jaG9ycy5tYXBbZl0se2FsaWFzOltdLGFsaWFzQ291bnQ6MCxjb3VudDoxfV0pKSk7bGV0IGw9Uy50b0pTT04odGhpcy5jb250ZW50cyxlLGEpO2lmKHR5cGVvZiBuPT1cImZ1bmN0aW9uXCImJmEuYW5jaG9ycylmb3IobGV0e2NvdW50OmYscmVzOm19b2YgYS5hbmNob3JzLnZhbHVlcygpKW4obSxmKTtyZXR1cm4gbH10b1N0cmluZygpe2lmKHRoaXMuZXJyb3JzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcihcIkRvY3VtZW50IHdpdGggZXJyb3JzIGNhbm5vdCBiZSBzdHJpbmdpZmllZFwiKTtsZXQgZT10aGlzLm9wdGlvbnMuaW5kZW50O2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGUpfHxlPD0wKXtsZXQgYz1KU09OLnN0cmluZ2lmeShlKTt0aHJvdyBuZXcgRXJyb3IoYFwiaW5kZW50XCIgb3B0aW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBub3QgJHtjfWApfXRoaXMuc2V0U2NoZW1hKCk7bGV0IG49W10scj0hMTtpZih0aGlzLnZlcnNpb24pe2xldCBjPVwiJVlBTUwgMS4yXCI7dGhpcy5zY2hlbWEubmFtZT09PVwieWFtbC0xLjFcIiYmKHRoaXMudmVyc2lvbj09PVwiMS4wXCI/Yz1cIiVZQU1MOjEuMFwiOnRoaXMudmVyc2lvbj09PVwiMS4xXCImJihjPVwiJVlBTUwgMS4xXCIpKSxuLnB1c2goYykscj0hMH1sZXQgcz10aGlzLmxpc3ROb25EZWZhdWx0VGFncygpO3RoaXMudGFnUHJlZml4ZXMuZm9yRWFjaCgoe2hhbmRsZTpjLHByZWZpeDpsfSk9PntzLnNvbWUoZj0+Zi5pbmRleE9mKGwpPT09MCkmJihuLnB1c2goYCVUQUcgJHtjfSAke2x9YCkscj0hMCl9KSwocnx8dGhpcy5kaXJlY3RpdmVzRW5kTWFya2VyKSYmbi5wdXNoKFwiLS0tXCIpLHRoaXMuY29tbWVudEJlZm9yZSYmKChyfHwhdGhpcy5kaXJlY3RpdmVzRW5kTWFya2VyKSYmbi51bnNoaWZ0KFwiXCIpLG4udW5zaGlmdCh0aGlzLmNvbW1lbnRCZWZvcmUucmVwbGFjZSgvXi9nbSxcIiNcIikpKTtsZXQgaT17YW5jaG9yczpPYmplY3QuY3JlYXRlKG51bGwpLGRvYzp0aGlzLGluZGVudDpcIlwiLGluZGVudFN0ZXA6XCIgXCIucmVwZWF0KGUpLHN0cmluZ2lmeTpYdH0sbz0hMSxhPW51bGw7aWYodGhpcy5jb250ZW50cyl7dGhpcy5jb250ZW50cyBpbnN0YW5jZW9mIFMuTm9kZSYmKHRoaXMuY29udGVudHMuc3BhY2VCZWZvcmUmJihyfHx0aGlzLmRpcmVjdGl2ZXNFbmRNYXJrZXIpJiZuLnB1c2goXCJcIiksdGhpcy5jb250ZW50cy5jb21tZW50QmVmb3JlJiZuLnB1c2godGhpcy5jb250ZW50cy5jb21tZW50QmVmb3JlLnJlcGxhY2UoL14vZ20sXCIjXCIpKSxpLmZvcmNlQmxvY2tJbmRlbnQ9ISF0aGlzLmNvbW1lbnQsYT10aGlzLmNvbnRlbnRzLmNvbW1lbnQpO2xldCBjPWE/bnVsbDooKT0+bz0hMCxsPVh0KHRoaXMuY29udGVudHMsaSwoKT0+YT1udWxsLGMpO24ucHVzaChTLmFkZENvbW1lbnQobCxcIlwiLGEpKX1lbHNlIHRoaXMuY29udGVudHMhPT12b2lkIDAmJm4ucHVzaChYdCh0aGlzLmNvbnRlbnRzLGkpKTtyZXR1cm4gdGhpcy5jb21tZW50JiYoKCFvfHxhKSYmbltuLmxlbmd0aC0xXSE9PVwiXCImJm4ucHVzaChcIlwiKSxuLnB1c2godGhpcy5jb21tZW50LnJlcGxhY2UoL14vZ20sXCIjXCIpKSksbi5qb2luKGBcbmApK2BcbmB9fTtZLl9kZWZpbmVQcm9wZXJ0eShadCxcImRlZmF1bHRzXCIsY2kpO2VuLkRvY3VtZW50PVp0O2VuLmRlZmF1bHRPcHRpb25zPUxhO2VuLnNjYWxhck9wdGlvbnM9QWF9KTt2YXIgcGk9ZWUodWk9PntcInVzZSBzdHJpY3RcIjt2YXIgem49SXMoKSxOZT1saSgpLF9hPUhuKCkseGE9bGUoKSxSYT1qbigpOyRlKCk7ZnVuY3Rpb24gRGEodCxlPSEwLG4pe249PT12b2lkIDAmJnR5cGVvZiBlPT1cInN0cmluZ1wiJiYobj1lLGU9ITApO2xldCByPU9iamVjdC5hc3NpZ24oe30sTmUuRG9jdW1lbnQuZGVmYXVsdHNbTmUuZGVmYXVsdE9wdGlvbnMudmVyc2lvbl0sTmUuZGVmYXVsdE9wdGlvbnMpO3JldHVybiBuZXcgX2EuU2NoZW1hKHIpLmNyZWF0ZU5vZGUodCxlLG4pfXZhciBLZT1jbGFzcyBleHRlbmRzIE5lLkRvY3VtZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKE9iamVjdC5hc3NpZ24oe30sTmUuZGVmYXVsdE9wdGlvbnMsZSkpfX07ZnVuY3Rpb24gWWEodCxlKXtsZXQgbj1bXSxyO2ZvcihsZXQgcyBvZiB6bi5wYXJzZSh0KSl7bGV0IGk9bmV3IEtlKGUpO2kucGFyc2UocyxyKSxuLnB1c2goaSkscj1pfXJldHVybiBufWZ1bmN0aW9uIGZpKHQsZSl7bGV0IG49em4ucGFyc2UodCkscj1uZXcgS2UoZSkucGFyc2UoblswXSk7aWYobi5sZW5ndGg+MSl7bGV0IHM9XCJTb3VyY2UgY29udGFpbnMgbXVsdGlwbGUgZG9jdW1lbnRzOyBwbGVhc2UgdXNlIFlBTUwucGFyc2VBbGxEb2N1bWVudHMoKVwiO3IuZXJyb3JzLnVuc2hpZnQobmV3IHhhLllBTUxTZW1hbnRpY0Vycm9yKG5bMV0scykpfXJldHVybiByfWZ1bmN0aW9uIEJhKHQsZSl7bGV0IG49ZmkodCxlKTtpZihuLndhcm5pbmdzLmZvckVhY2gocj0+UmEud2FybihyKSksbi5lcnJvcnMubGVuZ3RoPjApdGhyb3cgbi5lcnJvcnNbMF07cmV0dXJuIG4udG9KU09OKCl9ZnVuY3Rpb24gJGEodCxlKXtsZXQgbj1uZXcgS2UoZSk7cmV0dXJuIG4uY29udGVudHM9dCxTdHJpbmcobil9dmFyIEZhPXtjcmVhdGVOb2RlOkRhLGRlZmF1bHRPcHRpb25zOk5lLmRlZmF1bHRPcHRpb25zLERvY3VtZW50OktlLHBhcnNlOkJhLHBhcnNlQWxsRG9jdW1lbnRzOllhLHBhcnNlQ1NUOnpuLnBhcnNlLHBhcnNlRG9jdW1lbnQ6Zmksc2NhbGFyT3B0aW9uczpOZS5zY2FsYXJPcHRpb25zLHN0cmluZ2lmeTokYX07dWkuWUFNTD1GYX0pO3ZhciBoaT1lZSgoSW0sbWkpPT57bWkuZXhwb3J0cz1waSgpLllBTUx9KTt2YXIgZ2k9ZWUoUT0+e1widXNlIHN0cmljdFwiO3ZhciBWZT0kZSgpLFdlPWxlKCk7US5maW5kUGFpcj1WZS5maW5kUGFpcjtRLnBhcnNlTWFwPVZlLnJlc29sdmVNYXA7US5wYXJzZVNlcT1WZS5yZXNvbHZlU2VxO1Euc3RyaW5naWZ5TnVtYmVyPVZlLnN0cmluZ2lmeU51bWJlcjtRLnN0cmluZ2lmeVN0cmluZz1WZS5zdHJpbmdpZnlTdHJpbmc7US50b0pTT049VmUudG9KU09OO1EuVHlwZT1XZS5UeXBlO1EuWUFNTEVycm9yPVdlLllBTUxFcnJvcjtRLllBTUxSZWZlcmVuY2VFcnJvcj1XZS5ZQU1MUmVmZXJlbmNlRXJyb3I7US5ZQU1MU2VtYW50aWNFcnJvcj1XZS5ZQU1MU2VtYW50aWNFcnJvcjtRLllBTUxTeW50YXhFcnJvcj1XZS5ZQU1MU3ludGF4RXJyb3I7US5ZQU1MV2FybmluZz1XZS5ZQU1MV2FybmluZ30pO3ZhciB0cj17fTtucih0cix7bGFuZ3VhZ2VzOigpPT5iaSxvcHRpb25zOigpPT5OaSxwYXJzZXJzOigpPT5lcixwcmludGVyczooKT0+SmF9KTt2YXIgdmk9KHQsZSxuLHIpPT57aWYoISh0JiZlPT1udWxsKSlyZXR1cm4gZS5yZXBsYWNlQWxsP2UucmVwbGFjZUFsbChuLHIpOm4uZ2xvYmFsP2UucmVwbGFjZShuLHIpOmUuc3BsaXQobikuam9pbihyKX0seXQ9dmk7dmFyIGplPVwic3RyaW5nXCIsUWU9XCJhcnJheVwiLEplPVwiY3Vyc29yXCIsR2U9XCJpbmRlbnRcIixPZT1cImFsaWduXCIsSGU9XCJ0cmltXCIsTGU9XCJncm91cFwiLEFlPVwiZmlsbFwiLFRlPVwiaWYtYnJlYWtcIixYZT1cImluZGVudC1pZi1icmVha1wiLENlPVwibGluZS1zdWZmaXhcIix6ZT1cImxpbmUtc3VmZml4LWJvdW5kYXJ5XCIsdGU9XCJsaW5lXCIsWmU9XCJsYWJlbFwiLE1lPVwiYnJlYWstcGFyZW50XCIsRXQ9bmV3IFNldChbSmUsR2UsT2UsSGUsTGUsQWUsVGUsWGUsQ2UsemUsdGUsWmUsTWVdKTtmdW5jdGlvbiBJaSh0KXtpZih0eXBlb2YgdD09XCJzdHJpbmdcIilyZXR1cm4gamU7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gUWU7aWYoIXQpcmV0dXJuO2xldHt0eXBlOmV9PXQ7aWYoRXQuaGFzKGUpKXJldHVybiBlfXZhciBldD1JaTt2YXIgUGk9dD0+bmV3IEludGwuTGlzdEZvcm1hdChcImVuLVVTXCIse3R5cGU6XCJkaXNqdW5jdGlvblwifSkuZm9ybWF0KHQpO2Z1bmN0aW9uIF9pKHQpe2xldCBlPXQ9PT1udWxsP1wibnVsbFwiOnR5cGVvZiB0O2lmKGUhPT1cInN0cmluZ1wiJiZlIT09XCJvYmplY3RcIilyZXR1cm5gVW5leHBlY3RlZCBkb2MgJyR7ZX0nLCBcbkV4cGVjdGVkIGl0IHRvIGJlICdzdHJpbmcnIG9yICdvYmplY3QnLmA7aWYoZXQodCkpdGhyb3cgbmV3IEVycm9yKFwiZG9jIGlzIHZhbGlkLlwiKTtsZXQgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk7aWYobiE9PVwiW29iamVjdCBPYmplY3RdXCIpcmV0dXJuYFVuZXhwZWN0ZWQgZG9jICcke259Jy5gO2xldCByPVBpKFsuLi5FdF0ubWFwKHM9PmAnJHtzfSdgKSk7cmV0dXJuYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7dC50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke3J9LmB9dmFyIHJuPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIkludmFsaWREb2NFcnJvclwiO2NvbnN0cnVjdG9yKGUpe3N1cGVyKF9pKGUpKSx0aGlzLmRvYz1lfX0sc249cm47dmFyIHNyPSgpPT57fSxoZT1zcixTdD1zcjtmdW5jdGlvbiB0dCh0LGUpe3JldHVybiBoZShlKSx7dHlwZTpPZSxjb250ZW50czplLG46dH19ZnVuY3Rpb24ga2UodCxlPXt9KXtyZXR1cm4gaGUodCksU3QoZS5leHBhbmRlZFN0YXRlcywhMCkse3R5cGU6TGUsaWQ6ZS5pZCxjb250ZW50czp0LGJyZWFrOiEhZS5zaG91bGRCcmVhayxleHBhbmRlZFN0YXRlczplLmV4cGFuZGVkU3RhdGVzfX1mdW5jdGlvbiBvbih0KXtyZXR1cm4gdHQoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHQpfWZ1bmN0aW9uIGlyKHQpe3JldHVybiB0dCh7dHlwZTpcInJvb3RcIn0sdCl9ZnVuY3Rpb24gb3IodCl7cmV0dXJuIHR0KC0xLHQpfWZ1bmN0aW9uIGFuKHQsZSl7cmV0dXJuIGtlKHRbMF0sey4uLmUsZXhwYW5kZWRTdGF0ZXM6dH0pfWZ1bmN0aW9uIHd0KHQpe3JldHVybiBTdCh0KSx7dHlwZTpBZSxwYXJ0czp0fX1mdW5jdGlvbiBudCh0LGU9XCJcIixuPXt9KXtyZXR1cm4gaGUodCksZSE9PVwiXCImJmhlKGUpLHt0eXBlOlRlLGJyZWFrQ29udGVudHM6dCxmbGF0Q29udGVudHM6ZSxncm91cElkOm4uZ3JvdXBJZH19ZnVuY3Rpb24gYXIodCl7cmV0dXJuIGhlKHQpLHt0eXBlOkNlLGNvbnRlbnRzOnR9fXZhciBidD17dHlwZTpNZX07dmFyIHhpPXt0eXBlOnRlLGhhcmQ6ITB9LFJpPXt0eXBlOnRlLGhhcmQ6ITAsbGl0ZXJhbDohMH0sbmU9e3R5cGU6dGV9LE50PXt0eXBlOnRlLHNvZnQ6ITB9LE49W3hpLGJ0XSxydD1bUmksYnRdO2Z1bmN0aW9uIHYodCxlKXtoZSh0KSxTdChlKTtsZXQgbj1bXTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylyIT09MCYmbi5wdXNoKHQpLG4ucHVzaChlW3JdKTtyZXR1cm4gbn12YXIgRGk9KHQsZSxuKT0+e2lmKCEodCYmZT09bnVsbCkpcmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fHR5cGVvZiBlPT1cInN0cmluZ1wiP2VbbjwwP2UubGVuZ3RoK246bl06ZS5hdChuKX0seD1EaTtmdW5jdGlvbiBZaSh0LGUpe2lmKHR5cGVvZiB0PT1cInN0cmluZ1wiKXJldHVybiBlKHQpO2xldCBuPW5ldyBNYXA7cmV0dXJuIHIodCk7ZnVuY3Rpb24gcihpKXtpZihuLmhhcyhpKSlyZXR1cm4gbi5nZXQoaSk7bGV0IG89cyhpKTtyZXR1cm4gbi5zZXQoaSxvKSxvfWZ1bmN0aW9uIHMoaSl7c3dpdGNoKGV0KGkpKXtjYXNlIFFlOnJldHVybiBlKGkubWFwKHIpKTtjYXNlIEFlOnJldHVybiBlKHsuLi5pLHBhcnRzOmkucGFydHMubWFwKHIpfSk7Y2FzZSBUZTpyZXR1cm4gZSh7Li4uaSxicmVha0NvbnRlbnRzOnIoaS5icmVha0NvbnRlbnRzKSxmbGF0Q29udGVudHM6cihpLmZsYXRDb250ZW50cyl9KTtjYXNlIExlOntsZXR7ZXhwYW5kZWRTdGF0ZXM6byxjb250ZW50czphfT1pO3JldHVybiBvPyhvPW8ubWFwKHIpLGE9b1swXSk6YT1yKGEpLGUoey4uLmksY29udGVudHM6YSxleHBhbmRlZFN0YXRlczpvfSl9Y2FzZSBPZTpjYXNlIEdlOmNhc2UgWGU6Y2FzZSBaZTpjYXNlIENlOnJldHVybiBlKHsuLi5pLGNvbnRlbnRzOnIoaS5jb250ZW50cyl9KTtjYXNlIGplOmNhc2UgSmU6Y2FzZSBIZTpjYXNlIHplOmNhc2UgdGU6Y2FzZSBNZTpyZXR1cm4gZShpKTtkZWZhdWx0OnRocm93IG5ldyBzbihpKX19fWZ1bmN0aW9uIGNyKHQsZT1ydCl7cmV0dXJuIFlpKHQsbj0+dHlwZW9mIG49PVwic3RyaW5nXCI/dihlLG4uc3BsaXQoYFxuYCkpOm4pfWZ1bmN0aW9uIEJpKHQsZSxuKXtsZXQgcj0hIShuIT1udWxsJiZuLmJhY2t3YXJkcyk7aWYoZT09PSExKXJldHVybiExO2xldCBzPXQuY2hhckF0KGUpO2lmKHIpe2lmKHQuY2hhckF0KGUtMSk9PT1cIlxcclwiJiZzPT09YFxuYClyZXR1cm4gZS0yO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIGUtMX1lbHNle2lmKHM9PT1cIlxcclwiJiZ0LmNoYXJBdChlKzEpPT09YFxuYClyZXR1cm4gZSsyO2lmKHM9PT1gXG5gfHxzPT09XCJcXHJcInx8cz09PVwiXFx1MjAyOFwifHxzPT09XCJcXHUyMDI5XCIpcmV0dXJuIGUrMX1yZXR1cm4gZX12YXIgY249Qmk7ZnVuY3Rpb24gT3QodCl7cmV0dXJuKGUsbixyKT0+e2xldCBzPSEhKHIhPW51bGwmJnIuYmFja3dhcmRzKTtpZihuPT09ITEpcmV0dXJuITE7bGV0e2xlbmd0aDppfT1lLG89bjtmb3IoO28+PTAmJm88aTspe2xldCBhPWUuY2hhckF0KG8pO2lmKHQgaW5zdGFuY2VvZiBSZWdFeHApe2lmKCF0LnRlc3QoYSkpcmV0dXJuIG99ZWxzZSBpZighdC5pbmNsdWRlcyhhKSlyZXR1cm4gbztzP28tLTpvKyt9cmV0dXJuIG89PT0tMXx8bz09PWk/bzohMX19dmFyIE9jPU90KC9cXHMvKSxsbj1PdChcIiBcdFwiKSxMYz1PdChcIiw7IFx0XCIpLEFjPU90KC9bXlxcblxccl0vKTtmdW5jdGlvbiAkaSh0LGUpe2xldCBuPWUtMTtuPWxuKHQsbix7YmFja3dhcmRzOiEwfSksbj1jbih0LG4se2JhY2t3YXJkczohMH0pLG49bG4odCxuLHtiYWNrd2FyZHM6ITB9KTtsZXQgcj1jbih0LG4se2JhY2t3YXJkczohMH0pO3JldHVybiBuIT09cn12YXIgbHI9JGk7dmFyIGZuPWNsYXNzIGV4dGVuZHMgRXJyb3J7bmFtZT1cIlVuZXhwZWN0ZWROb2RlRXJyb3JcIjtjb25zdHJ1Y3RvcihlLG4scj1cInR5cGVcIil7c3VwZXIoYFVuZXhwZWN0ZWQgJHtufSBub2RlICR7cn06ICR7SlNPTi5zdHJpbmdpZnkoZVtyXSl9LmApLHRoaXMubm9kZT1lfX0sZnI9Zm47ZnVuY3Rpb24gdXIodCl7cmV0dXJuL15cXHMqQCg/OnByZXR0aWVyfGZvcm1hdClcXHMqJC8udGVzdCh0KX1mdW5jdGlvbiBwcih0KXtyZXR1cm4vXlxccyojW15cXFNcXG5dKkAoPzpwcmV0dGllcnxmb3JtYXQpXFxzKj8oPzpcXG58JCkvLnRlc3QodCl9ZnVuY3Rpb24gbXIodCl7cmV0dXJuYCMgQGZvcm1hdFxuXG4ke3R9YH1mdW5jdGlvbiB2ZSh0KXtyZXR1cm4gdC5wb3NpdGlvbi5zdGFydC5vZmZzZXR9ZnVuY3Rpb24gaHIodCl7cmV0dXJuIHQucG9zaXRpb24uZW5kLm9mZnNldH1mdW5jdGlvbiBncih0LGUpe2xldHtub2RlOm59PXQ7aWYobi50eXBlPT09XCJyb290XCImJmUuZmlsZXBhdGgmJi8oPzpbL1xcXFxdfF4pXFwuKD86cHJldHRpZXJ8c3R5bGVsaW50fGxpbnRzdGFnZWQpcmMkLy50ZXN0KGUuZmlsZXBhdGgpKXJldHVybiBhc3luYyByPT57bGV0IHM9YXdhaXQgcihlLm9yaWdpbmFsVGV4dCx7cGFyc2VyOlwianNvblwifSk7cmV0dXJuIHM/W3MsTl06dm9pZCAwfX1nci5nZXRWaXNpdG9yS2V5cz0oKT0+W107dmFyIGRyPWdyO2Z1bmN0aW9uIEZpKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wfXZhciBJZT1GaTtmdW5jdGlvbiBHKHQsZSl7cmV0dXJuIHR5cGVvZih0PT1udWxsP3ZvaWQgMDp0LnR5cGUpPT1cInN0cmluZ1wiJiYoIWV8fGUuaW5jbHVkZXModC50eXBlKSl9ZnVuY3Rpb24gdW4odCxlLG4pe3JldHVybiBlKFwiY2hpbGRyZW5cImluIHQ/ey4uLnQsY2hpbGRyZW46dC5jaGlsZHJlbi5tYXAocj0+dW4ocixlLHQpKX06dCxuKX1mdW5jdGlvbiBQZSh0LGUsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0Om4sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIEVyKHQsZSl7bGV0IG49MCxyPWUubGVuZ3RoO2ZvcihsZXQgcz10LnBvc2l0aW9uLmVuZC5vZmZzZXQtMTtzPHI7cysrKXtsZXQgaT1lW3NdO2lmKGk9PT1gXG5gJiZuKyssbj09PTEmJi9cXFMvLnRlc3QoaSkpcmV0dXJuITE7aWYobj09PTIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTHQodCl7bGV0e25vZGU6ZX09dDtzd2l0Y2goZS50eXBlKXtjYXNlXCJ0YWdcIjpjYXNlXCJhbmNob3JcIjpjYXNlXCJjb21tZW50XCI6cmV0dXJuITF9bGV0IG49dC5zdGFjay5sZW5ndGg7Zm9yKGxldCByPTE7cjxuO3IrKyl7bGV0IHM9dC5zdGFja1tyXSxpPXQuc3RhY2tbci0xXTtpZihBcnJheS5pc0FycmF5KGkpJiZ0eXBlb2Ygcz09XCJudW1iZXJcIiYmcyE9PWkubGVuZ3RoLTEpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gQXQodCl7cmV0dXJuIEllKHQuY2hpbGRyZW4pP0F0KHgoITEsdC5jaGlsZHJlbiwtMSkpOnR9ZnVuY3Rpb24geXIodCl7cmV0dXJuIHQudmFsdWUudHJpbSgpPT09XCJwcmV0dGllci1pZ25vcmVcIn1mdW5jdGlvbiBTcih0KXtsZXR7bm9kZTplfT10O2lmKGUudHlwZT09PVwiZG9jdW1lbnRCb2R5XCIpe2xldCBuPXQucGFyZW50LmhlYWQ7cmV0dXJuIFIobikmJnlyKHgoITEsbi5lbmRDb21tZW50cywtMSkpfXJldHVybiBaKGUpJiZ5cih4KCExLGUubGVhZGluZ0NvbW1lbnRzLC0xKSl9ZnVuY3Rpb24gX2UodCl7cmV0dXJuIUllKHQuY2hpbGRyZW4pJiYhcWkodCl9ZnVuY3Rpb24gcWkodCl7cmV0dXJuIFoodCl8fGllKHQpfHxwbih0KXx8SCh0KXx8Uih0KX1mdW5jdGlvbiBaKHQpe3JldHVybiBJZSh0PT1udWxsP3ZvaWQgMDp0LmxlYWRpbmdDb21tZW50cyl9ZnVuY3Rpb24gaWUodCl7cmV0dXJuIEllKHQ9PW51bGw/dm9pZCAwOnQubWlkZGxlQ29tbWVudHMpfWZ1bmN0aW9uIHBuKHQpe3JldHVybiB0PT1udWxsP3ZvaWQgMDp0LmluZGljYXRvckNvbW1lbnR9ZnVuY3Rpb24gSCh0KXtyZXR1cm4gdD09bnVsbD92b2lkIDA6dC50cmFpbGluZ0NvbW1lbnR9ZnVuY3Rpb24gUih0KXtyZXR1cm4gSWUodD09bnVsbD92b2lkIDA6dC5lbmRDb21tZW50cyl9ZnVuY3Rpb24gd3IodCl7bGV0IGU9W10sbjtmb3IobGV0IHIgb2YgdC5zcGxpdCgvKCArKS8pKXIhPT1cIiBcIj9uPT09XCIgXCI/ZS5wdXNoKHIpOmUucHVzaCgoZS5wb3AoKXx8XCJcIikrcik6bj09PXZvaWQgMCYmZS51bnNoaWZ0KFwiXCIpLG49cjtyZXR1cm4gbj09PVwiIFwiJiZlLnB1c2goKGUucG9wKCl8fFwiXCIpK1wiIFwiKSxlWzBdPT09XCJcIiYmKGUuc2hpZnQoKSxlLnVuc2hpZnQoXCIgXCIrKGUuc2hpZnQoKXx8XCJcIikpKSxlfWZ1bmN0aW9uIGJyKHQsZSxuKXtsZXQgcj1lLnNwbGl0KGBcbmApLm1hcCgocyxpLG8pPT5pPT09MCYmaT09PW8ubGVuZ3RoLTE/czppIT09MCYmaSE9PW8ubGVuZ3RoLTE/cy50cmltKCk6aT09PTA/cy50cmltRW5kKCk6cy50cmltU3RhcnQoKSk7cmV0dXJuIG4ucHJvc2VXcmFwPT09XCJwcmVzZXJ2ZVwiP3IubWFwKHM9PnMubGVuZ3RoPT09MD9bXTpbc10pOnIubWFwKHM9PnMubGVuZ3RoPT09MD9bXTp3cihzKSkucmVkdWNlKChzLGksbyk9Pm8hPT0wJiZyW28tMV0ubGVuZ3RoPjAmJmkubGVuZ3RoPjAmJiEodD09PVwicXVvdGVEb3VibGVcIiYmeCghMSx4KCExLHMsLTEpLC0xKS5lbmRzV2l0aChcIlxcXFxcIikpP1suLi5zLnNsaWNlKDAsLTEpLFsuLi54KCExLHMsLTEpLC4uLmldXTpbLi4ucyxpXSxbXSkubWFwKHM9Pm4ucHJvc2VXcmFwPT09XCJuZXZlclwiP1tzLmpvaW4oXCIgXCIpXTpzKX1mdW5jdGlvbiBOcih0LHtwYXJlbnRJbmRlbnQ6ZSxpc0xhc3REZXNjZW5kYW50Om4sb3B0aW9uczpyfSl7bGV0IHM9dC5wb3NpdGlvbi5zdGFydC5saW5lPT09dC5wb3NpdGlvbi5lbmQubGluZT9cIlwiOnIub3JpZ2luYWxUZXh0LnNsaWNlKHQucG9zaXRpb24uc3RhcnQub2Zmc2V0LHQucG9zaXRpb24uZW5kLm9mZnNldCkubWF0Y2goL15bXlxcbl0qXFxuKC4qKSQvcylbMV0saTtpZih0LmluZGVudD09PW51bGwpe2xldCBjPXMubWF0Y2goL14oPzxsZWFkaW5nU3BhY2U+ICopW15cXG5cXHIgXS9tKTtpPWM/Yy5ncm91cHMubGVhZGluZ1NwYWNlLmxlbmd0aDpOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFl9ZWxzZSBpPXQuaW5kZW50LTErZTtsZXQgbz1zLnNwbGl0KGBcbmApLm1hcChjPT5jLnNsaWNlKGkpKTtpZihyLnByb3NlV3JhcD09PVwicHJlc2VydmVcInx8dC50eXBlPT09XCJibG9ja0xpdGVyYWxcIilyZXR1cm4gYShvLm1hcChjPT5jLmxlbmd0aD09PTA/W106W2NdKSk7cmV0dXJuIGEoby5tYXAoYz0+Yy5sZW5ndGg9PT0wP1tdOndyKGMpKS5yZWR1Y2UoKGMsbCxmKT0+ZiE9PTAmJm9bZi0xXS5sZW5ndGg+MCYmbC5sZW5ndGg+MCYmIS9eXFxzLy50ZXN0KGxbMF0pJiYhL15cXHN8XFxzJC8udGVzdCh4KCExLGMsLTEpKT9bLi4uYy5zbGljZSgwLC0xKSxbLi4ueCghMSxjLC0xKSwuLi5sXV06Wy4uLmMsbF0sW10pLm1hcChjPT5jLnJlZHVjZSgobCxmKT0+bC5sZW5ndGg+MCYmL1xccyQvLnRlc3QoeCghMSxsLC0xKSk/Wy4uLmwuc2xpY2UoMCwtMSkseCghMSxsLC0xKStcIiBcIitmXTpbLi4ubCxmXSxbXSkpLm1hcChjPT5yLnByb3NlV3JhcD09PVwibmV2ZXJcIj9bYy5qb2luKFwiIFwiKV06YykpO2Z1bmN0aW9uIGEoYyl7aWYodC5jaG9tcGluZz09PVwia2VlcFwiKXJldHVybiB4KCExLGMsLTEpLmxlbmd0aD09PTA/Yy5zbGljZSgwLC0xKTpjO2xldCBsPTA7Zm9yKGxldCBmPWMubGVuZ3RoLTE7Zj49MCYmY1tmXS5sZW5ndGg9PT0wO2YtLSlsKys7cmV0dXJuIGw9PT0wP2M6bD49MiYmIW4/Yy5zbGljZSgwLC0obC0xKSk6Yy5zbGljZSgwLC1sKX19ZnVuY3Rpb24gc3QodCl7aWYoIXQpcmV0dXJuITA7c3dpdGNoKHQudHlwZSl7Y2FzZVwicGxhaW5cIjpjYXNlXCJxdW90ZURvdWJsZVwiOmNhc2VcInF1b3RlU2luZ2xlXCI6Y2FzZVwiYWxpYXNcIjpjYXNlXCJmbG93TWFwcGluZ1wiOmNhc2VcImZsb3dTZXF1ZW5jZVwiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fXZhciBpdD1udWxsO2Z1bmN0aW9uIG90KHQpe2lmKGl0IT09bnVsbCYmdHlwZW9mIGl0LnByb3BlcnR5KXtsZXQgZT1pdDtyZXR1cm4gaXQ9b3QucHJvdG90eXBlPW51bGwsZX1yZXR1cm4gaXQ9b3QucHJvdG90eXBlPXQ/P09iamVjdC5jcmVhdGUobnVsbCksbmV3IG90fXZhciBVaT0xMDtmb3IobGV0IHQ9MDt0PD1VaTt0Kyspb3QoKTtmdW5jdGlvbiBtbih0KXtyZXR1cm4gb3QodCl9ZnVuY3Rpb24gS2kodCxlPVwidHlwZVwiKXttbih0KTtmdW5jdGlvbiBuKHIpe2xldCBzPXJbZV0saT10W3NdO2lmKCFBcnJheS5pc0FycmF5KGkpKXRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBNaXNzaW5nIHZpc2l0b3Iga2V5cyBmb3IgJyR7c30nLmApLHtub2RlOnJ9KTtyZXR1cm4gaX1yZXR1cm4gbn12YXIgT3I9S2k7dmFyIFZpPU9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7cm9vdDpbXCJjaGlsZHJlblwiXSxkb2N1bWVudDpbXCJoZWFkXCIsXCJib2R5XCIsXCJjaGlsZHJlblwiXSxkb2N1bWVudEhlYWQ6W1wiY2hpbGRyZW5cIl0sZG9jdW1lbnRCb2R5OltcImNoaWxkcmVuXCJdLGRpcmVjdGl2ZTpbXSxhbGlhczpbXSxibG9ja0xpdGVyYWw6W10sYmxvY2tGb2xkZWQ6W1wiY2hpbGRyZW5cIl0scGxhaW46W1wiY2hpbGRyZW5cIl0scXVvdGVTaW5nbGU6W10scXVvdGVEb3VibGU6W10sbWFwcGluZzpbXCJjaGlsZHJlblwiXSxtYXBwaW5nSXRlbTpbXCJrZXlcIixcInZhbHVlXCIsXCJjaGlsZHJlblwiXSxtYXBwaW5nS2V5OltcImNvbnRlbnRcIixcImNoaWxkcmVuXCJdLG1hcHBpbmdWYWx1ZTpbXCJjb250ZW50XCIsXCJjaGlsZHJlblwiXSxzZXF1ZW5jZTpbXCJjaGlsZHJlblwiXSxzZXF1ZW5jZUl0ZW06W1wiY29udGVudFwiLFwiY2hpbGRyZW5cIl0sZmxvd01hcHBpbmc6W1wiY2hpbGRyZW5cIl0sZmxvd01hcHBpbmdJdGVtOltcImtleVwiLFwidmFsdWVcIixcImNoaWxkcmVuXCJdLGZsb3dTZXF1ZW5jZTpbXCJjaGlsZHJlblwiXSxmbG93U2VxdWVuY2VJdGVtOltcImNvbnRlbnRcIixcImNoaWxkcmVuXCJdLGNvbW1lbnQ6W10sdGFnOltdLGFuY2hvcjpbXX0pLm1hcCgoW3QsZV0pPT5bdCxbLi4uZSxcImFuY2hvclwiLFwidGFnXCIsXCJpbmRpY2F0b3JDb21tZW50XCIsXCJsZWFkaW5nQ29tbWVudHNcIixcIm1pZGRsZUNvbW1lbnRzXCIsXCJ0cmFpbGluZ0NvbW1lbnRcIixcImVuZENvbW1lbnRzXCJdXSkpLExyPVZpO3ZhciBXaT1PcihMciksQXI9V2k7ZnVuY3Rpb24gamkodCl7cmV0dXJuIHVuKHQsUWkpfWZ1bmN0aW9uIFFpKHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2VcImRvY3VtZW50XCI6UGUodCxcImhlYWRcIiwoKT0+dC5jaGlsZHJlblswXSksUGUodCxcImJvZHlcIiwoKT0+dC5jaGlsZHJlblsxXSk7YnJlYWs7Y2FzZVwiZG9jdW1lbnRCb2R5XCI6Y2FzZVwic2VxdWVuY2VJdGVtXCI6Y2FzZVwiZmxvd1NlcXVlbmNlSXRlbVwiOmNhc2VcIm1hcHBpbmdLZXlcIjpjYXNlXCJtYXBwaW5nVmFsdWVcIjpQZSh0LFwiY29udGVudFwiLCgpPT50LmNoaWxkcmVuWzBdKTticmVhaztjYXNlXCJtYXBwaW5nSXRlbVwiOmNhc2VcImZsb3dNYXBwaW5nSXRlbVwiOlBlKHQsXCJrZXlcIiwoKT0+dC5jaGlsZHJlblswXSksUGUodCxcInZhbHVlXCIsKCk9PnQuY2hpbGRyZW5bMV0pO2JyZWFrfXJldHVybiB0fXZhciBUcj1qaTt2YXIgaG49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gVHQodCxlKXtsZXR7bm9kZTpuLHJvb3Q6cn09dCxzO3JldHVybiBobi5oYXMocik/cz1obi5nZXQocik6KHM9bmV3IFNldCxobi5zZXQocixzKSksIXMuaGFzKG4ucG9zaXRpb24uZW5kLmxpbmUpJiYocy5hZGQobi5wb3NpdGlvbi5lbmQubGluZSksRXIobixlKSYmIWduKHQucGFyZW50KSk/TnQ6XCJcIn1mdW5jdGlvbiBnbih0KXtyZXR1cm4gUih0KSYmIUcodCxbXCJkb2N1bWVudEhlYWRcIixcImRvY3VtZW50Qm9keVwiLFwiZmxvd01hcHBpbmdcIixcImZsb3dTZXF1ZW5jZVwiXSl9ZnVuY3Rpb24gSSh0LGUpe3JldHVybiB0dChcIiBcIi5yZXBlYXQodCksZSl9ZnVuY3Rpb24gQ3QodCxlLG4pe2xldHtub2RlOnJ9PXQscz1yLnR5cGU9PT1cImZsb3dNYXBwaW5nXCIsaT1zP1wie1wiOlwiW1wiLG89cz9cIn1cIjpcIl1cIixhPU50O3MmJnIuY2hpbGRyZW4ubGVuZ3RoPjAmJm4uYnJhY2tldFNwYWNpbmcmJihhPW5lKTtsZXQgYz14KCExLHIuY2hpbGRyZW4sLTEpLGw9KGM9PW51bGw/dm9pZCAwOmMudHlwZSk9PT1cImZsb3dNYXBwaW5nSXRlbVwiJiZfZShjLmtleSkmJl9lKGMudmFsdWUpO3JldHVybltpLEkobi50YWJXaWR0aCxbYSxKaSh0LGUsbiksbi50cmFpbGluZ0NvbW1hPT09XCJub25lXCI/XCJcIjpudChcIixcIiksUihyKT9bTix2KE4sdC5tYXAoZSxcImVuZENvbW1lbnRzXCIpKV06XCJcIl0pLGw/XCJcIjphLG9dfWZ1bmN0aW9uIEppKHQsZSxuKXtyZXR1cm4gdC5tYXAoKHtpc0xhc3Q6cixub2RlOnMsbmV4dDppfSk9PltlKCkscj9cIlwiOltcIixcIixuZSxzLnBvc2l0aW9uLnN0YXJ0LmxpbmUhPT1pLnBvc2l0aW9uLnN0YXJ0LmxpbmU/VHQodCxuLm9yaWdpbmFsVGV4dCk6XCJcIl1dLFwiY2hpbGRyZW5cIil9ZnVuY3Rpb24gR2kodCxlLG4pe3ZhciBDO2xldHtub2RlOnIscGFyZW50OnN9PXQse2tleTppLHZhbHVlOm99PXIsYT1fZShpKSxjPV9lKG8pO2lmKGEmJmMpcmV0dXJuXCI6IFwiO2xldCBsPWUoXCJrZXlcIiksZj1IaShyKT9cIiBcIjpcIlwiO2lmKGMpcmV0dXJuIHIudHlwZT09PVwiZmxvd01hcHBpbmdJdGVtXCImJnMudHlwZT09PVwiZmxvd01hcHBpbmdcIj9sOnIudHlwZT09PVwibWFwcGluZ0l0ZW1cIiYmZG4oaS5jb250ZW50LG4pJiYhSChpLmNvbnRlbnQpJiYoKEM9cy50YWcpPT1udWxsP3ZvaWQgMDpDLnZhbHVlKSE9PVwidGFnOnlhbWwub3JnLDIwMDI6c2V0XCI/W2wsZixcIjpcIl06W1wiPyBcIixJKDIsbCldO2xldCBtPWUoXCJ2YWx1ZVwiKTtpZihhKXJldHVybltcIjogXCIsSSgyLG0pXTtpZihaKG8pfHwhc3QoaS5jb250ZW50KSlyZXR1cm5bXCI/IFwiLEkoMixsKSxOLC4uLnQubWFwKCgpPT5bZSgpLE5dLFwidmFsdWVcIixcImxlYWRpbmdDb21tZW50c1wiKSxcIjogXCIsSSgyLG0pXTtpZihYaShpLmNvbnRlbnQpJiYhWihpLmNvbnRlbnQpJiYhaWUoaS5jb250ZW50KSYmIUgoaS5jb250ZW50KSYmIVIoaSkmJiFaKG8uY29udGVudCkmJiFpZShvLmNvbnRlbnQpJiYhUihvKSYmZG4oby5jb250ZW50LG4pKXJldHVybltsLGYsXCI6IFwiLG1dO2xldCBkPVN5bWJvbChcIm1hcHBpbmdLZXlcIikseT1rZShbbnQoXCI/IFwiKSxrZShJKDIsbCkse2lkOmR9KV0pLGg9W04sXCI6IFwiLEkoMixtKV0sZz1bZixcIjpcIl07WihvLmNvbnRlbnQpfHxSKG8pJiZvLmNvbnRlbnQmJiFHKG8uY29udGVudCxbXCJtYXBwaW5nXCIsXCJzZXF1ZW5jZVwiXSl8fHMudHlwZT09PVwibWFwcGluZ1wiJiZIKGkuY29udGVudCkmJnN0KG8uY29udGVudCl8fEcoby5jb250ZW50LFtcIm1hcHBpbmdcIixcInNlcXVlbmNlXCJdKSYmby5jb250ZW50LnRhZz09PW51bGwmJm8uY29udGVudC5hbmNob3I9PT1udWxsP2cucHVzaChOKTpvLmNvbnRlbnQmJmcucHVzaChuZSksZy5wdXNoKG0pO2xldCB3PUkobi50YWJXaWR0aCxnKTtyZXR1cm4gZG4oaS5jb250ZW50LG4pJiYhWihpLmNvbnRlbnQpJiYhaWUoaS5jb250ZW50KSYmIVIoaSk/YW4oW1tsLHddXSk6YW4oW1t5LG50KGgsdyx7Z3JvdXBJZDpkfSldXSl9ZnVuY3Rpb24gZG4odCxlKXtpZighdClyZXR1cm4hMDtzd2l0Y2godC50eXBlKXtjYXNlXCJwbGFpblwiOmNhc2VcInF1b3RlU2luZ2xlXCI6Y2FzZVwicXVvdGVEb3VibGVcIjpicmVhaztjYXNlXCJhbGlhc1wiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9aWYoZS5wcm9zZVdyYXA9PT1cInByZXNlcnZlXCIpcmV0dXJuIHQucG9zaXRpb24uc3RhcnQubGluZT09PXQucG9zaXRpb24uZW5kLmxpbmU7aWYoL1xcXFwkL20udGVzdChlLm9yaWdpbmFsVGV4dC5zbGljZSh0LnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCx0LnBvc2l0aW9uLmVuZC5vZmZzZXQpKSlyZXR1cm4hMTtzd2l0Y2goZS5wcm9zZVdyYXApe2Nhc2VcIm5ldmVyXCI6cmV0dXJuIXQudmFsdWUuaW5jbHVkZXMoYFxuYCk7Y2FzZVwiYWx3YXlzXCI6cmV0dXJuIS9bXFxuIF0vLnRlc3QodC52YWx1ZSk7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gSGkodCl7dmFyIGU7cmV0dXJuKChlPXQua2V5LmNvbnRlbnQpPT1udWxsP3ZvaWQgMDplLnR5cGUpPT09XCJhbGlhc1wifWZ1bmN0aW9uIFhpKHQpe2lmKCF0KXJldHVybiEwO3N3aXRjaCh0LnR5cGUpe2Nhc2VcInBsYWluXCI6Y2FzZVwicXVvdGVEb3VibGVcIjpjYXNlXCJxdW90ZVNpbmdsZVwiOnJldHVybiB0LnBvc2l0aW9uLnN0YXJ0LmxpbmU9PT10LnBvc2l0aW9uLmVuZC5saW5lO2Nhc2VcImFsaWFzXCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIENyPUdpO2Z1bmN0aW9uIHppKHQsZSxuKXtsZXR7bm9kZTpyfT10LHM9dC5hbmNlc3RvcnMuZmlsdGVyKGw9PmwudHlwZT09PVwic2VxdWVuY2VcInx8bC50eXBlPT09XCJtYXBwaW5nXCIpLmxlbmd0aCxpPUx0KHQpLG89W3IudHlwZT09PVwiYmxvY2tGb2xkZWRcIj9cIj5cIjpcInxcIl07ci5pbmRlbnQhPT1udWxsJiZvLnB1c2goci5pbmRlbnQudG9TdHJpbmcoKSksci5jaG9tcGluZyE9PVwiY2xpcFwiJiZvLnB1c2goci5jaG9tcGluZz09PVwia2VlcFwiP1wiK1wiOlwiLVwiKSxwbihyKSYmby5wdXNoKFwiIFwiLGUoXCJpbmRpY2F0b3JDb21tZW50XCIpKTtsZXQgYT1OcihyLHtwYXJlbnRJbmRlbnQ6cyxpc0xhc3REZXNjZW5kYW50Omksb3B0aW9uczpufSksYz1bXTtmb3IobGV0W2wsZl1vZiBhLmVudHJpZXMoKSlsPT09MCYmYy5wdXNoKE4pLGMucHVzaCh3dCh2KG5lLGYpKSksbCE9PWEubGVuZ3RoLTE/Yy5wdXNoKGYubGVuZ3RoPT09MD9OOmlyKHJ0KSk6ci5jaG9tcGluZz09PVwia2VlcFwiJiZpJiZjLnB1c2gob24oZi5sZW5ndGg9PT0wP046cnQpKTtyZXR1cm4gci5pbmRlbnQ9PT1udWxsP28ucHVzaChvcihJKG4udGFiV2lkdGgsYykpKTpvLnB1c2gob24oSShyLmluZGVudC0xK3MsYykpKSxvfXZhciBNcj16aTtmdW5jdGlvbiBaaSh0LGUsbil7bGV0e25vZGU6cn09dCxzPVtdO3IudHlwZSE9PVwibWFwcGluZ1ZhbHVlXCImJloocikmJnMucHVzaChbdihOLHQubWFwKG4sXCJsZWFkaW5nQ29tbWVudHNcIikpLE5dKTtsZXR7dGFnOmksYW5jaG9yOm99PXI7aSYmcy5wdXNoKG4oXCJ0YWdcIikpLGkmJm8mJnMucHVzaChcIiBcIiksbyYmcy5wdXNoKG4oXCJhbmNob3JcIikpO2xldCBhPVwiXCI7cmV0dXJuIEcocixbXCJtYXBwaW5nXCIsXCJzZXF1ZW5jZVwiLFwiY29tbWVudFwiLFwiZGlyZWN0aXZlXCIsXCJtYXBwaW5nSXRlbVwiLFwic2VxdWVuY2VJdGVtXCJdKSYmIUx0KHQpJiYoYT1UdCh0LGUub3JpZ2luYWxUZXh0KSksKGl8fG8pJiYoRyhyLFtcInNlcXVlbmNlXCIsXCJtYXBwaW5nXCJdKSYmIWllKHIpP3MucHVzaChOKTpzLnB1c2goXCIgXCIpKSxpZShyKSYmcy5wdXNoKFtyLm1pZGRsZUNvbW1lbnRzLmxlbmd0aD09PTE/XCJcIjpOLHYoTix0Lm1hcChuLFwibWlkZGxlQ29tbWVudHNcIikpLE5dKSxTcih0KT9zLnB1c2goY3IoZS5vcmlnaW5hbFRleHQuc2xpY2Uoci5wb3NpdGlvbi5zdGFydC5vZmZzZXQsci5wb3NpdGlvbi5lbmQub2Zmc2V0KS50cmltRW5kKCkpKTpzLnB1c2goa2UoZW8odCxlLG4pKSksSChyKSYmIUcocixbXCJkb2N1bWVudFwiLFwiZG9jdW1lbnRIZWFkXCJdKSYmcy5wdXNoKGFyKFtyLnR5cGU9PT1cIm1hcHBpbmdWYWx1ZVwiJiYhci5jb250ZW50P1wiXCI6XCIgXCIsdC5wYXJlbnQudHlwZT09PVwibWFwcGluZ0tleVwiJiZ0LmdldFBhcmVudE5vZGUoMikudHlwZT09PVwibWFwcGluZ1wiJiZzdChyKT9cIlwiOmJ0LG4oXCJ0cmFpbGluZ0NvbW1lbnRcIildKSksZ24ocikmJnMucHVzaChJKHIudHlwZT09PVwic2VxdWVuY2VJdGVtXCI/MjowLFtOLHYoTix0Lm1hcCgoe25vZGU6Y30pPT5bbHIoZS5vcmlnaW5hbFRleHQsdmUoYykpP046XCJcIixuKCldLFwiZW5kQ29tbWVudHNcIikpXSkpLHMucHVzaChhKSxzfWZ1bmN0aW9uIGVvKHQsZSxuKXtsZXR7bm9kZTpyfT10O3N3aXRjaChyLnR5cGUpe2Nhc2VcInJvb3RcIjp7bGV0IHM9W107dC5lYWNoKCh7bm9kZTpvLG5leHQ6YSxpc0ZpcnN0OmN9KT0+e2N8fHMucHVzaChOKSxzLnB1c2gobigpKSxrcihvLGEpPyhzLnB1c2goTixcIi4uLlwiKSxIKG8pJiZzLnB1c2goXCIgXCIsbihcInRyYWlsaW5nQ29tbWVudFwiKSkpOmEmJiFIKGEuaGVhZCkmJnMucHVzaChOLFwiLS0tXCIpfSxcImNoaWxkcmVuXCIpO2xldCBpPUF0KHIpO3JldHVybighRyhpLFtcImJsb2NrTGl0ZXJhbFwiLFwiYmxvY2tGb2xkZWRcIl0pfHxpLmNob21waW5nIT09XCJrZWVwXCIpJiZzLnB1c2goTiksc31jYXNlXCJkb2N1bWVudFwiOntsZXQgcz1bXTtyZXR1cm4gbm8odCxlKT09PVwiaGVhZFwiJiYoKHIuaGVhZC5jaGlsZHJlbi5sZW5ndGg+MHx8ci5oZWFkLmVuZENvbW1lbnRzLmxlbmd0aD4wKSYmcy5wdXNoKG4oXCJoZWFkXCIpKSxIKHIuaGVhZCk/cy5wdXNoKFtcIi0tLVwiLFwiIFwiLG4oW1wiaGVhZFwiLFwidHJhaWxpbmdDb21tZW50XCJdKV0pOnMucHVzaChcIi0tLVwiKSksdG8ocikmJnMucHVzaChuKFwiYm9keVwiKSksdihOLHMpfWNhc2VcImRvY3VtZW50SGVhZFwiOnJldHVybiB2KE4sWy4uLnQubWFwKG4sXCJjaGlsZHJlblwiKSwuLi50Lm1hcChuLFwiZW5kQ29tbWVudHNcIildKTtjYXNlXCJkb2N1bWVudEJvZHlcIjp7bGV0e2NoaWxkcmVuOnMsZW5kQ29tbWVudHM6aX09cixvPVwiXCI7aWYocy5sZW5ndGg+MCYmaS5sZW5ndGg+MCl7bGV0IGE9QXQocik7RyhhLFtcImJsb2NrRm9sZGVkXCIsXCJibG9ja0xpdGVyYWxcIl0pP2EuY2hvbXBpbmchPT1cImtlZXBcIiYmKG89W04sTl0pOm89Tn1yZXR1cm5bdihOLHQubWFwKG4sXCJjaGlsZHJlblwiKSksbyx2KE4sdC5tYXAobixcImVuZENvbW1lbnRzXCIpKV19Y2FzZVwiZGlyZWN0aXZlXCI6cmV0dXJuW1wiJVwiLHYoXCIgXCIsW3IubmFtZSwuLi5yLnBhcmFtZXRlcnNdKV07Y2FzZVwiY29tbWVudFwiOnJldHVybltcIiNcIixyLnZhbHVlXTtjYXNlXCJhbGlhc1wiOnJldHVybltcIipcIixyLnZhbHVlXTtjYXNlXCJ0YWdcIjpyZXR1cm4gZS5vcmlnaW5hbFRleHQuc2xpY2Uoci5wb3NpdGlvbi5zdGFydC5vZmZzZXQsci5wb3NpdGlvbi5lbmQub2Zmc2V0KTtjYXNlXCJhbmNob3JcIjpyZXR1cm5bXCImXCIsci52YWx1ZV07Y2FzZVwicGxhaW5cIjpyZXR1cm4gYXQoci50eXBlLGUub3JpZ2luYWxUZXh0LnNsaWNlKHIucG9zaXRpb24uc3RhcnQub2Zmc2V0LHIucG9zaXRpb24uZW5kLm9mZnNldCksZSk7Y2FzZVwicXVvdGVEb3VibGVcIjpjYXNlXCJxdW90ZVNpbmdsZVwiOntsZXQgcz1cIidcIixpPSdcIicsbz1lLm9yaWdpbmFsVGV4dC5zbGljZShyLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCsxLHIucG9zaXRpb24uZW5kLm9mZnNldC0xKTtpZihyLnR5cGU9PT1cInF1b3RlU2luZ2xlXCImJm8uaW5jbHVkZXMoXCJcXFxcXCIpfHxyLnR5cGU9PT1cInF1b3RlRG91YmxlXCImJi9cXFxcW15cIl0vLnRlc3Qobykpe2xldCBjPXIudHlwZT09PVwicXVvdGVEb3VibGVcIj9pOnM7cmV0dXJuW2MsYXQoci50eXBlLG8sZSksY119aWYoby5pbmNsdWRlcyhpKSlyZXR1cm5bcyxhdChyLnR5cGUsci50eXBlPT09XCJxdW90ZURvdWJsZVwiP3l0KCExLHl0KCExLG8sJ1xcXFxcIicsaSksXCInXCIscy5yZXBlYXQoMikpOm8sZSksc107aWYoby5pbmNsdWRlcyhzKSlyZXR1cm5baSxhdChyLnR5cGUsci50eXBlPT09XCJxdW90ZVNpbmdsZVwiP3l0KCExLG8sXCInJ1wiLHMpOm8sZSksaV07bGV0IGE9ZS5zaW5nbGVRdW90ZT9zOmk7cmV0dXJuW2EsYXQoci50eXBlLG8sZSksYV19Y2FzZVwiYmxvY2tGb2xkZWRcIjpjYXNlXCJibG9ja0xpdGVyYWxcIjpyZXR1cm4gTXIodCxuLGUpO2Nhc2VcIm1hcHBpbmdcIjpjYXNlXCJzZXF1ZW5jZVwiOnJldHVybiB2KE4sdC5tYXAobixcImNoaWxkcmVuXCIpKTtjYXNlXCJzZXF1ZW5jZUl0ZW1cIjpyZXR1cm5bXCItIFwiLEkoMixyLmNvbnRlbnQ/bihcImNvbnRlbnRcIik6XCJcIildO2Nhc2VcIm1hcHBpbmdLZXlcIjpjYXNlXCJtYXBwaW5nVmFsdWVcIjpyZXR1cm4gci5jb250ZW50P24oXCJjb250ZW50XCIpOlwiXCI7Y2FzZVwibWFwcGluZ0l0ZW1cIjpjYXNlXCJmbG93TWFwcGluZ0l0ZW1cIjpyZXR1cm4gQ3IodCxuLGUpO2Nhc2VcImZsb3dNYXBwaW5nXCI6cmV0dXJuIEN0KHQsbixlKTtjYXNlXCJmbG93U2VxdWVuY2VcIjpyZXR1cm4gQ3QodCxuLGUpO2Nhc2VcImZsb3dTZXF1ZW5jZUl0ZW1cIjpyZXR1cm4gbihcImNvbnRlbnRcIik7ZGVmYXVsdDp0aHJvdyBuZXcgZnIocixcIllBTUxcIil9fWZ1bmN0aW9uIHRvKHQpe3JldHVybiB0LmJvZHkuY2hpbGRyZW4ubGVuZ3RoPjB8fFIodC5ib2R5KX1mdW5jdGlvbiBrcih0LGUpe3JldHVybiBIKHQpfHxlJiYoZS5oZWFkLmNoaWxkcmVuLmxlbmd0aD4wfHxSKGUuaGVhZCkpfWZ1bmN0aW9uIG5vKHQsZSl7bGV0IG49dC5ub2RlO2lmKHQuaXNGaXJzdCYmLy0tLSg/Olxcc3wkKS8udGVzdChlLm9yaWdpbmFsVGV4dC5zbGljZSh2ZShuKSx2ZShuKSs0KSl8fG4uaGVhZC5jaGlsZHJlbi5sZW5ndGg+MHx8UihuLmhlYWQpfHxIKG4uaGVhZCkpcmV0dXJuXCJoZWFkXCI7bGV0IHI9dC5uZXh0O3JldHVybiBrcihuLHIpPyExOnI/XCJyb290XCI6ITF9ZnVuY3Rpb24gYXQodCxlLG4pe2xldCByPWJyKHQsZSxuKTtyZXR1cm4gdihOLHIubWFwKHM9Pnd0KHYobmUscykpKSl9ZnVuY3Rpb24gcm8odCxlKXtpZihHKGUpKXN3aXRjaChkZWxldGUgZS5wb3NpdGlvbixlLnR5cGUpe2Nhc2VcImNvbW1lbnRcIjppZih1cihlLnZhbHVlKSlyZXR1cm4gbnVsbDticmVhaztjYXNlXCJxdW90ZURvdWJsZVwiOmNhc2VcInF1b3RlU2luZ2xlXCI6ZS50eXBlPVwicXVvdGVcIjticmVha319dmFyIHNvPXtwcmVwcm9jZXNzOlRyLGVtYmVkOmRyLHByaW50OlppLG1hc3NhZ2VBc3ROb2RlOnJvLGluc2VydFByYWdtYTptcixnZXRWaXNpdG9yS2V5czpBcn0sdnI9c287dmFyIGVyPXt9O25yKGVyLHt5YW1sOigpPT5qYX0pO3ZhciBNdD1gXG5gLElyPVwiXFxyXCIsUHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3RoaXMubGVuZ3RoPWUubGVuZ3RoO2Zvcih2YXIgbj1bMF0scj0wO3I8ZS5sZW5ndGg7KXN3aXRjaChlW3JdKXtjYXNlIE10OnIrPU10Lmxlbmd0aCxuLnB1c2gocik7YnJlYWs7Y2FzZSBJcjpyKz1Jci5sZW5ndGgsZVtyXT09PU10JiYocis9TXQubGVuZ3RoKSxuLnB1c2gocik7YnJlYWs7ZGVmYXVsdDpyKys7YnJlYWt9dGhpcy5vZmZzZXRzPW59cmV0dXJuIHQucHJvdG90eXBlLmxvY2F0aW9uRm9ySW5kZXg9ZnVuY3Rpb24oZSl7aWYoZTwwfHxlPnRoaXMubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgbj0wLHI9dGhpcy5vZmZzZXRzO3JbbisxXTw9ZTspbisrO3ZhciBzPWUtcltuXTtyZXR1cm57bGluZTpuLGNvbHVtbjpzfX0sdC5wcm90b3R5cGUuaW5kZXhGb3JMb2NhdGlvbj1mdW5jdGlvbihlKXt2YXIgbj1lLmxpbmUscj1lLmNvbHVtbjtyZXR1cm4gbjwwfHxuPj10aGlzLm9mZnNldHMubGVuZ3RofHxyPDB8fHI+dGhpcy5sZW5ndGhPZkxpbmUobik/bnVsbDp0aGlzLm9mZnNldHNbbl0rcn0sdC5wcm90b3R5cGUubGVuZ3RoT2ZMaW5lPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMub2Zmc2V0c1tlXSxyPWU9PT10aGlzLm9mZnNldHMubGVuZ3RoLTE/dGhpcy5sZW5ndGg6dGhpcy5vZmZzZXRzW2UrMV07cmV0dXJuIHItbn0sdH0oKTtmdW5jdGlvbiBCKHQsZT1udWxsKXtcImNoaWxkcmVuXCJpbiB0JiZ0LmNoaWxkcmVuLmZvckVhY2gobj0+QihuLHQpKSxcImFuY2hvclwiaW4gdCYmdC5hbmNob3ImJkIodC5hbmNob3IsdCksXCJ0YWdcImluIHQmJnQudGFnJiZCKHQudGFnLHQpLFwibGVhZGluZ0NvbW1lbnRzXCJpbiB0JiZ0LmxlYWRpbmdDb21tZW50cy5mb3JFYWNoKG49PkIobix0KSksXCJtaWRkbGVDb21tZW50c1wiaW4gdCYmdC5taWRkbGVDb21tZW50cy5mb3JFYWNoKG49PkIobix0KSksXCJpbmRpY2F0b3JDb21tZW50XCJpbiB0JiZ0LmluZGljYXRvckNvbW1lbnQmJkIodC5pbmRpY2F0b3JDb21tZW50LHQpLFwidHJhaWxpbmdDb21tZW50XCJpbiB0JiZ0LnRyYWlsaW5nQ29tbWVudCYmQih0LnRyYWlsaW5nQ29tbWVudCx0KSxcImVuZENvbW1lbnRzXCJpbiB0JiZ0LmVuZENvbW1lbnRzLmZvckVhY2gobj0+QihuLHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9wYXJlbnRcIix7dmFsdWU6ZSxlbnVtZXJhYmxlOiExfSl9ZnVuY3Rpb24gZ2UodCl7cmV0dXJuYCR7dC5saW5lfToke3QuY29sdW1ufWB9ZnVuY3Rpb24gX3IodCl7Qih0KTtsZXQgZT1pbyh0KSxuPXQuY2hpbGRyZW4uc2xpY2UoKTt0LmNvbW1lbnRzLnNvcnQoKHIscyk9PnIucG9zaXRpb24uc3RhcnQub2Zmc2V0LXMucG9zaXRpb24uZW5kLm9mZnNldCkuZmlsdGVyKHI9PiFyLl9wYXJlbnQpLmZvckVhY2gocj0+e2Zvcig7bi5sZW5ndGg+MSYmci5wb3NpdGlvbi5zdGFydC5saW5lPm5bMF0ucG9zaXRpb24uZW5kLmxpbmU7KW4uc2hpZnQoKTtvbyhyLGUsblswXSl9KX1mdW5jdGlvbiBpbyh0KXtsZXQgZT1BcnJheS5mcm9tKG5ldyBBcnJheSh0LnBvc2l0aW9uLmVuZC5saW5lKSwoKT0+KHt9KSk7Zm9yKGxldCBuIG9mIHQuY29tbWVudHMpZVtuLnBvc2l0aW9uLnN0YXJ0LmxpbmUtMV0uY29tbWVudD1uO3JldHVybiB4cihlLHQpLGV9ZnVuY3Rpb24geHIodCxlKXtpZihlLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCE9PWUucG9zaXRpb24uZW5kLm9mZnNldCl7aWYoXCJsZWFkaW5nQ29tbWVudHNcImluIGUpe2xldHtzdGFydDpufT1lLnBvc2l0aW9uLHtsZWFkaW5nQXR0YWNoYWJsZU5vZGU6cn09dFtuLmxpbmUtMV07KCFyfHxuLmNvbHVtbjxyLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbikmJih0W24ubGluZS0xXS5sZWFkaW5nQXR0YWNoYWJsZU5vZGU9ZSl9aWYoXCJ0cmFpbGluZ0NvbW1lbnRcImluIGUmJmUucG9zaXRpb24uZW5kLmNvbHVtbj4xJiZlLnR5cGUhPT1cImRvY3VtZW50XCImJmUudHlwZSE9PVwiZG9jdW1lbnRIZWFkXCIpe2xldHtlbmQ6bn09ZS5wb3NpdGlvbix7dHJhaWxpbmdBdHRhY2hhYmxlTm9kZTpyfT10W24ubGluZS0xXTsoIXJ8fG4uY29sdW1uPj1yLnBvc2l0aW9uLmVuZC5jb2x1bW4pJiYodFtuLmxpbmUtMV0udHJhaWxpbmdBdHRhY2hhYmxlTm9kZT1lKX1pZihlLnR5cGUhPT1cInJvb3RcIiYmZS50eXBlIT09XCJkb2N1bWVudFwiJiZlLnR5cGUhPT1cImRvY3VtZW50SGVhZFwiJiZlLnR5cGUhPT1cImRvY3VtZW50Qm9keVwiKXtsZXR7c3RhcnQ6bixlbmQ6cn09ZS5wb3NpdGlvbixzPVtyLmxpbmVdLmNvbmNhdChuLmxpbmU9PT1yLmxpbmU/W106bi5saW5lKTtmb3IobGV0IGkgb2Ygcyl7bGV0IG89dFtpLTFdLnRyYWlsaW5nTm9kZTsoIW98fHIuY29sdW1uPj1vLnBvc2l0aW9uLmVuZC5jb2x1bW4pJiYodFtpLTFdLnRyYWlsaW5nTm9kZT1lKX19XCJjaGlsZHJlblwiaW4gZSYmZS5jaGlsZHJlbi5mb3JFYWNoKG49Pnt4cih0LG4pfSl9fWZ1bmN0aW9uIG9vKHQsZSxuKXtsZXQgcj10LnBvc2l0aW9uLnN0YXJ0LmxpbmUse3RyYWlsaW5nQXR0YWNoYWJsZU5vZGU6c309ZVtyLTFdO2lmKHMpe2lmKHMudHJhaWxpbmdDb21tZW50KXRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBtdWx0aXBsZSB0cmFpbGluZyBjb21tZW50IGF0ICR7Z2UodC5wb3NpdGlvbi5zdGFydCl9YCk7Qih0LHMpLHMudHJhaWxpbmdDb21tZW50PXQ7cmV0dXJufWZvcihsZXQgbz1yO28+PW4ucG9zaXRpb24uc3RhcnQubGluZTtvLS0pe2xldHt0cmFpbGluZ05vZGU6YX09ZVtvLTFdLGM7aWYoYSljPWE7ZWxzZSBpZihvIT09ciYmZVtvLTFdLmNvbW1lbnQpYz1lW28tMV0uY29tbWVudC5fcGFyZW50O2Vsc2UgY29udGludWU7aWYoKGMudHlwZT09PVwic2VxdWVuY2VcInx8Yy50eXBlPT09XCJtYXBwaW5nXCIpJiYoYz1jLmNoaWxkcmVuWzBdKSxjLnR5cGU9PT1cIm1hcHBpbmdJdGVtXCIpe2xldFtsLGZdPWMuY2hpbGRyZW47Yz1ScihsKT9sOmZ9Zm9yKDs7KXtpZihhbyhjLHQpKXtCKHQsYyksYy5lbmRDb21tZW50cy5wdXNoKHQpO3JldHVybn1pZighYy5fcGFyZW50KWJyZWFrO2M9Yy5fcGFyZW50fWJyZWFrfWZvcihsZXQgbz1yKzE7bzw9bi5wb3NpdGlvbi5lbmQubGluZTtvKyspe2xldHtsZWFkaW5nQXR0YWNoYWJsZU5vZGU6YX09ZVtvLTFdO2lmKGEpe0IodCxhKSxhLmxlYWRpbmdDb21tZW50cy5wdXNoKHQpO3JldHVybn19bGV0IGk9bi5jaGlsZHJlblsxXTtCKHQsaSksaS5lbmRDb21tZW50cy5wdXNoKHQpfWZ1bmN0aW9uIGFvKHQsZSl7aWYodC5wb3NpdGlvbi5zdGFydC5vZmZzZXQ8ZS5wb3NpdGlvbi5zdGFydC5vZmZzZXQmJnQucG9zaXRpb24uZW5kLm9mZnNldD5lLnBvc2l0aW9uLmVuZC5vZmZzZXQpc3dpdGNoKHQudHlwZSl7Y2FzZVwiZmxvd01hcHBpbmdcIjpjYXNlXCJmbG93U2VxdWVuY2VcIjpyZXR1cm4gdC5jaGlsZHJlbi5sZW5ndGg9PT0wfHxlLnBvc2l0aW9uLnN0YXJ0LmxpbmU+dC5jaGlsZHJlblt0LmNoaWxkcmVuLmxlbmd0aC0xXS5wb3NpdGlvbi5lbmQubGluZX1pZihlLnBvc2l0aW9uLmVuZC5vZmZzZXQ8dC5wb3NpdGlvbi5lbmQub2Zmc2V0KXJldHVybiExO3N3aXRjaCh0LnR5cGUpe2Nhc2VcInNlcXVlbmNlSXRlbVwiOnJldHVybiBlLnBvc2l0aW9uLnN0YXJ0LmNvbHVtbj50LnBvc2l0aW9uLnN0YXJ0LmNvbHVtbjtjYXNlXCJtYXBwaW5nS2V5XCI6Y2FzZVwibWFwcGluZ1ZhbHVlXCI6cmV0dXJuIGUucG9zaXRpb24uc3RhcnQuY29sdW1uPnQuX3BhcmVudC5wb3NpdGlvbi5zdGFydC5jb2x1bW4mJih0LmNoaWxkcmVuLmxlbmd0aD09PTB8fHQuY2hpbGRyZW4ubGVuZ3RoPT09MSYmdC5jaGlsZHJlblswXS50eXBlIT09XCJibG9ja0ZvbGRlZFwiJiZ0LmNoaWxkcmVuWzBdLnR5cGUhPT1cImJsb2NrTGl0ZXJhbFwiKSYmKHQudHlwZT09PVwibWFwcGluZ1ZhbHVlXCJ8fFJyKHQpKTtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBScih0KXtyZXR1cm4gdC5wb3NpdGlvbi5zdGFydCE9PXQucG9zaXRpb24uZW5kJiYodC5jaGlsZHJlbi5sZW5ndGg9PT0wfHx0LnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCE9PXQuY2hpbGRyZW5bMF0ucG9zaXRpb24uc3RhcnQub2Zmc2V0KX1mdW5jdGlvbiBiKHQsZSl7cmV0dXJue3R5cGU6dCxwb3NpdGlvbjplfX1mdW5jdGlvbiBEcih0LGUsbil7cmV0dXJuey4uLmIoXCJyb290XCIsdCksY2hpbGRyZW46ZSxjb21tZW50czpufX1mdW5jdGlvbiBjdCh0KXtzd2l0Y2godC50eXBlKXtjYXNlXCJET0NVTUVOVFwiOmZvcihsZXQgZT10LmNvbnRlbnRzLmxlbmd0aC0xO2U+PTA7ZS0tKXQuY29udGVudHNbZV0udHlwZT09PVwiQkxBTktfTElORVwiP3QuY29udGVudHMuc3BsaWNlKGUsMSk6Y3QodC5jb250ZW50c1tlXSk7Zm9yKGxldCBlPXQuZGlyZWN0aXZlcy5sZW5ndGgtMTtlPj0wO2UtLSl0LmRpcmVjdGl2ZXNbZV0udHlwZT09PVwiQkxBTktfTElORVwiJiZ0LmRpcmVjdGl2ZXMuc3BsaWNlKGUsMSk7YnJlYWs7Y2FzZVwiRkxPV19NQVBcIjpjYXNlXCJGTE9XX1NFUVwiOmNhc2VcIk1BUFwiOmNhc2VcIlNFUVwiOmZvcihsZXQgZT10Lml0ZW1zLmxlbmd0aC0xO2U+PTA7ZS0tKXtsZXQgbj10Lml0ZW1zW2VdO1wiY2hhclwiaW4gbnx8KG4udHlwZT09PVwiQkxBTktfTElORVwiP3QuaXRlbXMuc3BsaWNlKGUsMSk6Y3QobikpfWJyZWFrO2Nhc2VcIk1BUF9LRVlcIjpjYXNlXCJNQVBfVkFMVUVcIjpjYXNlXCJTRVFfSVRFTVwiOnQubm9kZSYmY3QodC5ub2RlKTticmVhaztjYXNlXCJBTElBU1wiOmNhc2VcIkJMQU5LX0xJTkVcIjpjYXNlXCJCTE9DS19GT0xERURcIjpjYXNlXCJCTE9DS19MSVRFUkFMXCI6Y2FzZVwiQ09NTUVOVFwiOmNhc2VcIkRJUkVDVElWRVwiOmNhc2VcIlBMQUlOXCI6Y2FzZVwiUVVPVEVfRE9VQkxFXCI6Y2FzZVwiUVVPVEVfU0lOR0xFXCI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbm9kZSB0eXBlICR7SlNPTi5zdHJpbmdpZnkodC50eXBlKX1gKX19ZnVuY3Rpb24gWCgpe3JldHVybntsZWFkaW5nQ29tbWVudHM6W119fWZ1bmN0aW9uIG9lKHQ9bnVsbCl7cmV0dXJue3RyYWlsaW5nQ29tbWVudDp0fX1mdW5jdGlvbiAkKCl7cmV0dXJuey4uLlgoKSwuLi5vZSgpfX1mdW5jdGlvbiBZcih0LGUsbil7cmV0dXJuey4uLmIoXCJhbGlhc1wiLHQpLC4uLiQoKSwuLi5lLHZhbHVlOm59fWZ1bmN0aW9uIEJyKHQsZSl7bGV0IG49dC5jc3ROb2RlO3JldHVybiBZcihlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6bi52YWx1ZVJhbmdlLm9yaWdTdGFydC0xLG9yaWdFbmQ6bi52YWx1ZVJhbmdlLm9yaWdFbmR9KSxlLnRyYW5zZm9ybUNvbnRlbnQodCksbi5yYXdWYWx1ZSl9ZnVuY3Rpb24gJHIodCl7cmV0dXJuey4uLnQsdHlwZTpcImJsb2NrRm9sZGVkXCJ9fWZ1bmN0aW9uIEZyKHQsZSxuLHIscyxpKXtyZXR1cm57Li4uYihcImJsb2NrVmFsdWVcIix0KSwuLi5YKCksLi4uZSxjaG9tcGluZzpuLGluZGVudDpyLHZhbHVlOnMsaW5kaWNhdG9yQ29tbWVudDppfX12YXIgYWU7KGZ1bmN0aW9uKHQpe3QuVGFnPVwiIVwiLHQuQW5jaG9yPVwiJlwiLHQuQ29tbWVudD1cIiNcIn0pKGFlfHwoYWU9e30pKTtmdW5jdGlvbiBxcih0LGUpe3JldHVybnsuLi5iKFwiYW5jaG9yXCIsdCksdmFsdWU6ZX19ZnVuY3Rpb24geGUodCxlKXtyZXR1cm57Li4uYihcImNvbW1lbnRcIix0KSx2YWx1ZTplfX1mdW5jdGlvbiBVcih0LGUsbil7cmV0dXJue2FuY2hvcjplLHRhZzp0LG1pZGRsZUNvbW1lbnRzOm59fWZ1bmN0aW9uIEtyKHQsZSl7cmV0dXJuey4uLmIoXCJ0YWdcIix0KSx2YWx1ZTplfX1mdW5jdGlvbiBrdCh0LGUsbj0oKT0+ITEpe2xldCByPXQuY3N0Tm9kZSxzPVtdLGk9bnVsbCxvPW51bGwsYT1udWxsO2ZvcihsZXQgYyBvZiByLnByb3BzKXtsZXQgbD1lLnRleHRbYy5vcmlnU3RhcnRdO3N3aXRjaChsKXtjYXNlIGFlLlRhZzppPWl8fGMsbz1LcihlLnRyYW5zZm9ybVJhbmdlKGMpLHQudGFnKTticmVhaztjYXNlIGFlLkFuY2hvcjppPWl8fGMsYT1xcihlLnRyYW5zZm9ybVJhbmdlKGMpLHIuYW5jaG9yKTticmVhaztjYXNlIGFlLkNvbW1lbnQ6e2xldCBmPXhlKGUudHJhbnNmb3JtUmFuZ2UoYyksZS50ZXh0LnNsaWNlKGMub3JpZ1N0YXJ0KzEsYy5vcmlnRW5kKSk7ZS5jb21tZW50cy5wdXNoKGYpLCFuKGYpJiZpJiZpLm9yaWdFbmQ8PWMub3JpZ1N0YXJ0JiZjLm9yaWdFbmQ8PXIudmFsdWVSYW5nZS5vcmlnU3RhcnQmJnMucHVzaChmKTticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBsZWFkaW5nIGNoYXJhY3RlciAke0pTT04uc3RyaW5naWZ5KGwpfWApfX1yZXR1cm4gVXIobyxhLHMpfXZhciB5bjsoZnVuY3Rpb24odCl7dC5DTElQPVwiY2xpcFwiLHQuU1RSSVA9XCJzdHJpcFwiLHQuS0VFUD1cImtlZXBcIn0pKHlufHwoeW49e30pKTtmdW5jdGlvbiB2dCh0LGUpe2xldCBuPXQuY3N0Tm9kZSxyPTEscz1uLmNob21waW5nPT09XCJDTElQXCI/MDoxLG89bi5oZWFkZXIub3JpZ0VuZC1uLmhlYWRlci5vcmlnU3RhcnQtci1zIT09MCxhPWUudHJhbnNmb3JtUmFuZ2Uoe29yaWdTdGFydDpuLmhlYWRlci5vcmlnU3RhcnQsb3JpZ0VuZDpuLnZhbHVlUmFuZ2Uub3JpZ0VuZH0pLGM9bnVsbCxsPWt0KHQsZSxmPT57aWYoIShhLnN0YXJ0Lm9mZnNldDxmLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCYmZi5wb3NpdGlvbi5lbmQub2Zmc2V0PGEuZW5kLm9mZnNldCkpcmV0dXJuITE7aWYoYyl0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgbXVsdGlwbGUgaW5kaWNhdG9yIGNvbW1lbnRzIGF0ICR7Z2UoZi5wb3NpdGlvbi5zdGFydCl9YCk7cmV0dXJuIGM9ZiwhMH0pO3JldHVybiBGcihhLGwseW5bbi5jaG9tcGluZ10sbz9uLmJsb2NrSW5kZW50Om51bGwsbi5zdHJWYWx1ZSxjKX1mdW5jdGlvbiBWcih0LGUpe3JldHVybiAkcih2dCh0LGUpKX1mdW5jdGlvbiBXcih0KXtyZXR1cm57Li4udCx0eXBlOlwiYmxvY2tMaXRlcmFsXCJ9fWZ1bmN0aW9uIGpyKHQsZSl7cmV0dXJuIFdyKHZ0KHQsZSkpfWZ1bmN0aW9uIFFyKHQsZSl7cmV0dXJuIHhlKGUudHJhbnNmb3JtUmFuZ2UodC5yYW5nZSksdC5jb21tZW50KX1mdW5jdGlvbiBKcih0LGUsbil7cmV0dXJuey4uLmIoXCJkaXJlY3RpdmVcIix0KSwuLi4kKCksbmFtZTplLHBhcmFtZXRlcnM6bn19ZnVuY3Rpb24gUmUodCxlKXtmb3IobGV0IG4gb2YgdC5wcm9wcyl7bGV0IHI9ZS50ZXh0W24ub3JpZ1N0YXJ0XTtzd2l0Y2gocil7Y2FzZSBhZS5Db21tZW50OmUuY29tbWVudHMucHVzaCh4ZShlLnRyYW5zZm9ybVJhbmdlKG4pLGUudGV4dC5zbGljZShuLm9yaWdTdGFydCsxLG4ub3JpZ0VuZCkpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBsZWFkaW5nIGNoYXJhY3RlciAke0pTT04uc3RyaW5naWZ5KHIpfWApfX19ZnVuY3Rpb24gR3IodCxlKXtyZXR1cm4gUmUodCxlKSxKcihlLnRyYW5zZm9ybVJhbmdlKHQucmFuZ2UpLHQubmFtZSx0LnBhcmFtZXRlcnMpfWZ1bmN0aW9uIEhyKHQsZSxuLHIpe3JldHVybnsuLi5iKFwiZG9jdW1lbnRcIix0KSwuLi5vZShyKSxjaGlsZHJlbjpbZSxuXX19ZnVuY3Rpb24gSyh0LGUpe3JldHVybntzdGFydDp0LGVuZDplfX1mdW5jdGlvbiBFbih0KXtyZXR1cm57c3RhcnQ6dCxlbmQ6dH19ZnVuY3Rpb24gRih0PVtdKXtyZXR1cm57ZW5kQ29tbWVudHM6dH19ZnVuY3Rpb24gWHIodCxlLG4pe3JldHVybnsuLi5iKFwiZG9jdW1lbnRCb2R5XCIsdCksLi4uRihuKSxjaGlsZHJlbjplP1tlXTpbXX19ZnVuY3Rpb24gcSh0KXtyZXR1cm4gdFt0Lmxlbmd0aC0xXX1mdW5jdGlvbiBJdCh0LGUpe2xldCBuPXQubWF0Y2goZSk7cmV0dXJuIG4/bi5pbmRleDotMX1mdW5jdGlvbiB6cih0LGUsbil7bGV0IHI9dC5jc3ROb2RlLHtjb21tZW50czpzLGVuZENvbW1lbnRzOmksZG9jdW1lbnRUcmFpbGluZ0NvbW1lbnQ6byxkb2N1bWVudEhlYWRUcmFpbGluZ0NvbW1lbnQ6YX09Y28ocixlLG4pLGM9ZS50cmFuc2Zvcm1Ob2RlKHQuY29udGVudHMpLHtwb3NpdGlvbjpsLGRvY3VtZW50RW5kUG9pbnQ6Zn09bG8ocixjLGUpO3JldHVybiBlLmNvbW1lbnRzLnB1c2goLi4ucywuLi5pKSx7ZG9jdW1lbnRCb2R5OlhyKGwsYyxpKSxkb2N1bWVudEVuZFBvaW50OmYsZG9jdW1lbnRUcmFpbGluZ0NvbW1lbnQ6byxkb2N1bWVudEhlYWRUcmFpbGluZ0NvbW1lbnQ6YX19ZnVuY3Rpb24gY28odCxlLG4pe2xldCByPVtdLHM9W10saT1bXSxvPVtdLGE9ITE7Zm9yKGxldCBjPXQuY29udGVudHMubGVuZ3RoLTE7Yz49MDtjLS0pe2xldCBsPXQuY29udGVudHNbY107aWYobC50eXBlPT09XCJDT01NRU5UXCIpe2xldCBmPWUudHJhbnNmb3JtTm9kZShsKTtuJiZuLmxpbmU9PT1mLnBvc2l0aW9uLnN0YXJ0LmxpbmU/by51bnNoaWZ0KGYpOmE/ci51bnNoaWZ0KGYpOmYucG9zaXRpb24uc3RhcnQub2Zmc2V0Pj10LnZhbHVlUmFuZ2Uub3JpZ0VuZD9pLnVuc2hpZnQoZik6ci51bnNoaWZ0KGYpfWVsc2UgYT0hMH1pZihpLmxlbmd0aD4xKXRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBtdWx0aXBsZSBkb2N1bWVudCB0cmFpbGluZyBjb21tZW50cyBhdCAke2dlKGlbMV0ucG9zaXRpb24uc3RhcnQpfWApO2lmKG8ubGVuZ3RoPjEpdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG11bHRpcGxlIGRvY3VtZW50SGVhZCB0cmFpbGluZyBjb21tZW50cyBhdCAke2dlKG9bMV0ucG9zaXRpb24uc3RhcnQpfWApO3JldHVybntjb21tZW50czpyLGVuZENvbW1lbnRzOnMsZG9jdW1lbnRUcmFpbGluZ0NvbW1lbnQ6cShpKXx8bnVsbCxkb2N1bWVudEhlYWRUcmFpbGluZ0NvbW1lbnQ6cShvKXx8bnVsbH19ZnVuY3Rpb24gbG8odCxlLG4pe2xldCByPUl0KG4udGV4dC5zbGljZSh0LnZhbHVlUmFuZ2Uub3JpZ0VuZCksL15cXC5cXC5cXC4vKSxzPXI9PT0tMT90LnZhbHVlUmFuZ2Uub3JpZ0VuZDpNYXRoLm1heCgwLHQudmFsdWVSYW5nZS5vcmlnRW5kLTEpO24udGV4dFtzLTFdPT09XCJcXHJcIiYmcy0tO2xldCBpPW4udHJhbnNmb3JtUmFuZ2Uoe29yaWdTdGFydDplIT09bnVsbD9lLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDpzLG9yaWdFbmQ6c30pLG89cj09PS0xP2kuZW5kOm4udHJhbnNmb3JtT2Zmc2V0KHQudmFsdWVSYW5nZS5vcmlnRW5kKzMpO3JldHVybntwb3NpdGlvbjppLGRvY3VtZW50RW5kUG9pbnQ6b319ZnVuY3Rpb24gWnIodCxlLG4scil7cmV0dXJuey4uLmIoXCJkb2N1bWVudEhlYWRcIix0KSwuLi5GKG4pLC4uLm9lKHIpLGNoaWxkcmVuOmV9fWZ1bmN0aW9uIGVzKHQsZSl7bGV0IG49dC5jc3ROb2RlLHtkaXJlY3RpdmVzOnIsY29tbWVudHM6cyxlbmRDb21tZW50czppfT1mbyhuLGUpLHtwb3NpdGlvbjpvLGVuZE1hcmtlclBvaW50OmF9PXVvKG4scixlKTtyZXR1cm4gZS5jb21tZW50cy5wdXNoKC4uLnMsLi4uaSkse2NyZWF0ZURvY3VtZW50SGVhZFdpdGhUcmFpbGluZ0NvbW1lbnQ6bD0+KGwmJmUuY29tbWVudHMucHVzaChsKSxacihvLHIsaSxsKSksZG9jdW1lbnRIZWFkRW5kTWFya2VyUG9pbnQ6YX19ZnVuY3Rpb24gZm8odCxlKXtsZXQgbj1bXSxyPVtdLHM9W10saT0hMTtmb3IobGV0IG89dC5kaXJlY3RpdmVzLmxlbmd0aC0xO28+PTA7by0tKXtsZXQgYT1lLnRyYW5zZm9ybU5vZGUodC5kaXJlY3RpdmVzW29dKTthLnR5cGU9PT1cImNvbW1lbnRcIj9pP3IudW5zaGlmdChhKTpzLnVuc2hpZnQoYSk6KGk9ITAsbi51bnNoaWZ0KGEpKX1yZXR1cm57ZGlyZWN0aXZlczpuLGNvbW1lbnRzOnIsZW5kQ29tbWVudHM6c319ZnVuY3Rpb24gdW8odCxlLG4pe2xldCByPUl0KG4udGV4dC5zbGljZSgwLHQudmFsdWVSYW5nZS5vcmlnU3RhcnQpLC8tLS1cXHMqJC8pO3I+MCYmIS9bXFxyXFxuXS8udGVzdChuLnRleHRbci0xXSkmJihyPS0xKTtsZXQgcz1yPT09LTE/e29yaWdTdGFydDp0LnZhbHVlUmFuZ2Uub3JpZ1N0YXJ0LG9yaWdFbmQ6dC52YWx1ZVJhbmdlLm9yaWdTdGFydH06e29yaWdTdGFydDpyLG9yaWdFbmQ6ciszfTtyZXR1cm4gZS5sZW5ndGghPT0wJiYocy5vcmlnU3RhcnQ9ZVswXS5wb3NpdGlvbi5zdGFydC5vZmZzZXQpLHtwb3NpdGlvbjpuLnRyYW5zZm9ybVJhbmdlKHMpLGVuZE1hcmtlclBvaW50OnI9PT0tMT9udWxsOm4udHJhbnNmb3JtT2Zmc2V0KHIpfX1mdW5jdGlvbiB0cyh0LGUpe2xldHtjcmVhdGVEb2N1bWVudEhlYWRXaXRoVHJhaWxpbmdDb21tZW50Om4sZG9jdW1lbnRIZWFkRW5kTWFya2VyUG9pbnQ6cn09ZXModCxlKSx7ZG9jdW1lbnRCb2R5OnMsZG9jdW1lbnRFbmRQb2ludDppLGRvY3VtZW50VHJhaWxpbmdDb21tZW50Om8sZG9jdW1lbnRIZWFkVHJhaWxpbmdDb21tZW50OmF9PXpyKHQsZSxyKSxjPW4oYSk7cmV0dXJuIG8mJmUuY29tbWVudHMucHVzaChvKSxIcihLKGMucG9zaXRpb24uc3RhcnQsaSksYyxzLG8pfWZ1bmN0aW9uIFB0KHQsZSxuKXtyZXR1cm57Li4uYihcImZsb3dDb2xsZWN0aW9uXCIsdCksLi4uJCgpLC4uLkYoKSwuLi5lLGNoaWxkcmVuOm59fWZ1bmN0aW9uIG5zKHQsZSxuKXtyZXR1cm57Li4uUHQodCxlLG4pLHR5cGU6XCJmbG93TWFwcGluZ1wifX1mdW5jdGlvbiBfdCh0LGUsbil7cmV0dXJuey4uLmIoXCJmbG93TWFwcGluZ0l0ZW1cIix0KSwuLi5YKCksY2hpbGRyZW46W2Usbl19fWZ1bmN0aW9uIGNlKHQsZSl7bGV0IG49W107Zm9yKGxldCByIG9mIHQpciYmXCJ0eXBlXCJpbiByJiZyLnR5cGU9PT1cIkNPTU1FTlRcIj9lLmNvbW1lbnRzLnB1c2goZS50cmFuc2Zvcm1Ob2RlKHIpKTpuLnB1c2gocik7cmV0dXJuIG59ZnVuY3Rpb24geHQodCl7bGV0W2Usbl09W1wiP1wiLFwiOlwiXS5tYXAocj0+e2xldCBzPXQuZmluZChpPT5cImNoYXJcImluIGkmJmkuY2hhcj09PXIpO3JldHVybiBzP3tvcmlnU3RhcnQ6cy5vcmlnT2Zmc2V0LG9yaWdFbmQ6cy5vcmlnT2Zmc2V0KzF9Om51bGx9KTtyZXR1cm57YWRkaXRpb25hbEtleVJhbmdlOmUsYWRkaXRpb25hbFZhbHVlUmFuZ2U6bn19ZnVuY3Rpb24gUnQodCxlKXtsZXQgbj1lO3JldHVybiByPT50LnNsaWNlKG4sbj1yKX1mdW5jdGlvbiBEdCh0KXtsZXQgZT1bXSxuPVJ0KHQsMSkscj0hMTtmb3IobGV0IHM9MTtzPHQubGVuZ3RoLTE7cysrKXtsZXQgaT10W3NdO2lmKFwiY2hhclwiaW4gaSYmaS5jaGFyPT09XCIsXCIpe2UucHVzaChuKHMpKSxuKHMrMSkscj0hMTtjb250aW51ZX1yPSEwfXJldHVybiByJiZlLnB1c2gobih0Lmxlbmd0aC0xKSksZX1mdW5jdGlvbiBTbih0LGUpe3JldHVybnsuLi5iKFwibWFwcGluZ0tleVwiLHQpLC4uLm9lKCksLi4uRigpLGNoaWxkcmVuOmU/W2VdOltdfX1mdW5jdGlvbiB3bih0LGUpe3JldHVybnsuLi5iKFwibWFwcGluZ1ZhbHVlXCIsdCksLi4uJCgpLC4uLkYoKSxjaGlsZHJlbjplP1tlXTpbXX19ZnVuY3Rpb24gRGUodCxlLG4scixzKXtsZXQgaT1lLnRyYW5zZm9ybU5vZGUodC5rZXkpLG89ZS50cmFuc2Zvcm1Ob2RlKHQudmFsdWUpLGE9aXx8cj9TbihlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6cj9yLm9yaWdTdGFydDppLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCxvcmlnRW5kOmk/aS5wb3NpdGlvbi5lbmQub2Zmc2V0OnIub3JpZ1N0YXJ0KzF9KSxpKTpudWxsLGM9b3x8cz93bihlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6cz9zLm9yaWdTdGFydDpvLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCxvcmlnRW5kOm8/by5wb3NpdGlvbi5lbmQub2Zmc2V0OnMub3JpZ1N0YXJ0KzF9KSxvKTpudWxsO3JldHVybiBuKEsoYT9hLnBvc2l0aW9uLnN0YXJ0OmMucG9zaXRpb24uc3RhcnQsYz9jLnBvc2l0aW9uLmVuZDphLnBvc2l0aW9uLmVuZCksYXx8U24oRW4oYy5wb3NpdGlvbi5zdGFydCksbnVsbCksY3x8d24oRW4oYS5wb3NpdGlvbi5lbmQpLG51bGwpKX1mdW5jdGlvbiBycyh0LGUpe2xldCBuPWNlKHQuY3N0Tm9kZS5pdGVtcyxlKSxyPUR0KG4pLHM9dC5pdGVtcy5tYXAoKGEsYyk9PntsZXQgbD1yW2NdLHthZGRpdGlvbmFsS2V5UmFuZ2U6ZixhZGRpdGlvbmFsVmFsdWVSYW5nZTptfT14dChsKTtyZXR1cm4gRGUoYSxlLF90LGYsbSl9KSxpPW5bMF0sbz1xKG4pO3JldHVybiBucyhlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6aS5vcmlnT2Zmc2V0LG9yaWdFbmQ6by5vcmlnT2Zmc2V0KzF9KSxlLnRyYW5zZm9ybUNvbnRlbnQodCkscyl9ZnVuY3Rpb24gc3ModCxlLG4pe3JldHVybnsuLi5QdCh0LGUsbiksdHlwZTpcImZsb3dTZXF1ZW5jZVwifX1mdW5jdGlvbiBpcyh0LGUpe3JldHVybnsuLi5iKFwiZmxvd1NlcXVlbmNlSXRlbVwiLHQpLGNoaWxkcmVuOltlXX19ZnVuY3Rpb24gb3ModCxlKXtsZXQgbj1jZSh0LmNzdE5vZGUuaXRlbXMsZSkscj1EdChuKSxzPXQuaXRlbXMubWFwKChhLGMpPT57aWYoYS50eXBlIT09XCJQQUlSXCIpe2xldCBsPWUudHJhbnNmb3JtTm9kZShhKTtyZXR1cm4gaXMoSyhsLnBvc2l0aW9uLnN0YXJ0LGwucG9zaXRpb24uZW5kKSxsKX1lbHNle2xldCBsPXJbY10se2FkZGl0aW9uYWxLZXlSYW5nZTpmLGFkZGl0aW9uYWxWYWx1ZVJhbmdlOm19PXh0KGwpO3JldHVybiBEZShhLGUsX3QsZixtKX19KSxpPW5bMF0sbz1xKG4pO3JldHVybiBzcyhlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6aS5vcmlnT2Zmc2V0LG9yaWdFbmQ6by5vcmlnT2Zmc2V0KzF9KSxlLnRyYW5zZm9ybUNvbnRlbnQodCkscyl9ZnVuY3Rpb24gYXModCxlLG4pe3JldHVybnsuLi5iKFwibWFwcGluZ1wiLHQpLC4uLlgoKSwuLi5lLGNoaWxkcmVuOm59fWZ1bmN0aW9uIGNzKHQsZSxuKXtyZXR1cm57Li4uYihcIm1hcHBpbmdJdGVtXCIsdCksLi4uWCgpLGNoaWxkcmVuOltlLG5dfX1mdW5jdGlvbiBscyh0LGUpe2xldCBuPXQuY3N0Tm9kZTtuLml0ZW1zLmZpbHRlcihvPT5vLnR5cGU9PT1cIk1BUF9LRVlcInx8by50eXBlPT09XCJNQVBfVkFMVUVcIikuZm9yRWFjaChvPT5SZShvLGUpKTtsZXQgcj1jZShuLml0ZW1zLGUpLHM9cG8ociksaT10Lml0ZW1zLm1hcCgobyxhKT0+e2xldCBjPXNbYV0sW2wsZl09Y1swXS50eXBlPT09XCJNQVBfVkFMVUVcIj9bbnVsbCxjWzBdLnJhbmdlXTpbY1swXS5yYW5nZSxjLmxlbmd0aD09PTE/bnVsbDpjWzFdLnJhbmdlXTtyZXR1cm4gRGUobyxlLGNzLGwsZil9KTtyZXR1cm4gYXMoSyhpWzBdLnBvc2l0aW9uLnN0YXJ0LHEoaSkucG9zaXRpb24uZW5kKSxlLnRyYW5zZm9ybUNvbnRlbnQodCksaSl9ZnVuY3Rpb24gcG8odCl7bGV0IGU9W10sbj1SdCh0LDApLHI9ITE7Zm9yKGxldCBzPTA7czx0Lmxlbmd0aDtzKyspe2lmKHRbc10udHlwZT09PVwiTUFQX1ZBTFVFXCIpe2UucHVzaChuKHMrMSkpLHI9ITE7Y29udGludWV9ciYmZS5wdXNoKG4ocykpLHI9ITB9cmV0dXJuIHImJmUucHVzaChuKDEvMCkpLGV9ZnVuY3Rpb24gZnModCxlLG4pe3JldHVybnsuLi5iKFwicGxhaW5cIix0KSwuLi4kKCksLi4uZSx2YWx1ZTpufX1mdW5jdGlvbiB1cyh0LGUsbil7Zm9yKGxldCByPWU7cj49MDtyLS0paWYobi50ZXN0KHRbcl0pKXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIHBzKHQsZSl7bGV0IG49dC5jc3ROb2RlO3JldHVybiBmcyhlLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6bi52YWx1ZVJhbmdlLm9yaWdTdGFydCxvcmlnRW5kOnVzKGUudGV4dCxuLnZhbHVlUmFuZ2Uub3JpZ0VuZC0xLC9cXFMvKSsxfSksZS50cmFuc2Zvcm1Db250ZW50KHQpLG4uc3RyVmFsdWUpfWZ1bmN0aW9uIG1zKHQpe3JldHVybnsuLi50LHR5cGU6XCJxdW90ZURvdWJsZVwifX1mdW5jdGlvbiBocyh0LGUsbil7cmV0dXJuey4uLmIoXCJxdW90ZVZhbHVlXCIsdCksLi4uZSwuLi4kKCksdmFsdWU6bn19ZnVuY3Rpb24gWXQodCxlKXtsZXQgbj10LmNzdE5vZGU7cmV0dXJuIGhzKGUudHJhbnNmb3JtUmFuZ2Uobi52YWx1ZVJhbmdlKSxlLnRyYW5zZm9ybUNvbnRlbnQodCksbi5zdHJWYWx1ZSl9ZnVuY3Rpb24gZ3ModCxlKXtyZXR1cm4gbXMoWXQodCxlKSl9ZnVuY3Rpb24gZHModCl7cmV0dXJuey4uLnQsdHlwZTpcInF1b3RlU2luZ2xlXCJ9fWZ1bmN0aW9uIHlzKHQsZSl7cmV0dXJuIGRzKFl0KHQsZSkpfWZ1bmN0aW9uIEVzKHQsZSxuKXtyZXR1cm57Li4uYihcInNlcXVlbmNlXCIsdCksLi4uWCgpLC4uLkYoKSwuLi5lLGNoaWxkcmVuOm59fWZ1bmN0aW9uIFNzKHQsZSl7cmV0dXJuey4uLmIoXCJzZXF1ZW5jZUl0ZW1cIix0KSwuLi4kKCksLi4uRigpLGNoaWxkcmVuOmU/W2VdOltdfX1mdW5jdGlvbiB3cyh0LGUpe2xldCByPWNlKHQuY3N0Tm9kZS5pdGVtcyxlKS5tYXAoKHMsaSk9PntSZShzLGUpO2xldCBvPWUudHJhbnNmb3JtTm9kZSh0Lml0ZW1zW2ldKTtyZXR1cm4gU3MoSyhlLnRyYW5zZm9ybU9mZnNldChzLnZhbHVlUmFuZ2Uub3JpZ1N0YXJ0KSxvPT09bnVsbD9lLnRyYW5zZm9ybU9mZnNldChzLnZhbHVlUmFuZ2Uub3JpZ1N0YXJ0KzEpOm8ucG9zaXRpb24uZW5kKSxvKX0pO3JldHVybiBFcyhLKHJbMF0ucG9zaXRpb24uc3RhcnQscShyKS5wb3NpdGlvbi5lbmQpLGUudHJhbnNmb3JtQ29udGVudCh0KSxyKX1mdW5jdGlvbiBicyh0LGUpe2lmKHQ9PT1udWxsfHx0LnR5cGU9PT12b2lkIDAmJnQudmFsdWU9PT1udWxsKXJldHVybiBudWxsO3N3aXRjaCh0LnR5cGUpe2Nhc2VcIkFMSUFTXCI6cmV0dXJuIEJyKHQsZSk7Y2FzZVwiQkxPQ0tfRk9MREVEXCI6cmV0dXJuIFZyKHQsZSk7Y2FzZVwiQkxPQ0tfTElURVJBTFwiOnJldHVybiBqcih0LGUpO2Nhc2VcIkNPTU1FTlRcIjpyZXR1cm4gUXIodCxlKTtjYXNlXCJESVJFQ1RJVkVcIjpyZXR1cm4gR3IodCxlKTtjYXNlXCJET0NVTUVOVFwiOnJldHVybiB0cyh0LGUpO2Nhc2VcIkZMT1dfTUFQXCI6cmV0dXJuIHJzKHQsZSk7Y2FzZVwiRkxPV19TRVFcIjpyZXR1cm4gb3ModCxlKTtjYXNlXCJNQVBcIjpyZXR1cm4gbHModCxlKTtjYXNlXCJQTEFJTlwiOnJldHVybiBwcyh0LGUpO2Nhc2VcIlFVT1RFX0RPVUJMRVwiOnJldHVybiBncyh0LGUpO2Nhc2VcIlFVT1RFX1NJTkdMRVwiOnJldHVybiB5cyh0LGUpO2Nhc2VcIlNFUVwiOnJldHVybiB3cyh0LGUpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG5vZGUgdHlwZSAke3QudHlwZX1gKX19ZnVuY3Rpb24gTnModCxlLG4pe2xldCByPW5ldyBTeW50YXhFcnJvcih0KTtyZXR1cm4gci5uYW1lPVwiWUFNTFN5bnRheEVycm9yXCIsci5zb3VyY2U9ZSxyLnBvc2l0aW9uPW4scn1mdW5jdGlvbiBPcyh0LGUpe2xldCBuPXQuc291cmNlLnJhbmdlfHx0LnNvdXJjZS52YWx1ZVJhbmdlO3JldHVybiBOcyh0Lm1lc3NhZ2UsZS50ZXh0LGUudHJhbnNmb3JtUmFuZ2UobikpfWZ1bmN0aW9uIExzKHQsZSxuKXtyZXR1cm57b2Zmc2V0OnQsbGluZTplLGNvbHVtbjpufX1mdW5jdGlvbiBBcyh0LGUpe3Q8MD90PTA6dD5lLnRleHQubGVuZ3RoJiYodD1lLnRleHQubGVuZ3RoKTtsZXQgbj1lLmxvY2F0b3IubG9jYXRpb25Gb3JJbmRleCh0KTtyZXR1cm4gTHModCxuLmxpbmUrMSxuLmNvbHVtbisxKX1mdW5jdGlvbiBUcyh0LGUpe3JldHVybiBLKGUudHJhbnNmb3JtT2Zmc2V0KHQub3JpZ1N0YXJ0KSxlLnRyYW5zZm9ybU9mZnNldCh0Lm9yaWdFbmQpKX1mdW5jdGlvbiBDcyh0KXtpZighdC5zZXRPcmlnUmFuZ2VzKCkpe2xldCBlPW49PntpZihtbyhuKSlyZXR1cm4gbi5vcmlnU3RhcnQ9bi5zdGFydCxuLm9yaWdFbmQ9bi5lbmQsITA7aWYoaG8obikpcmV0dXJuIG4ub3JpZ09mZnNldD1uLm9mZnNldCwhMH07dC5mb3JFYWNoKG49PmJuKG4sZSkpfX1mdW5jdGlvbiBibih0LGUpe2lmKCEoIXR8fHR5cGVvZiB0IT1cIm9iamVjdFwiKSYmZSh0KSE9PSEwKWZvcihsZXQgbiBvZiBPYmplY3Qua2V5cyh0KSl7aWYobj09PVwiY29udGV4dFwifHxuPT09XCJlcnJvclwiKWNvbnRpbnVlO2xldCByPXRbbl07QXJyYXkuaXNBcnJheShyKT9yLmZvckVhY2gocz0+Ym4ocyxlKSk6Ym4ocixlKX19ZnVuY3Rpb24gbW8odCl7cmV0dXJuIHR5cGVvZiB0LnN0YXJ0PT1cIm51bWJlclwifWZ1bmN0aW9uIGhvKHQpe3JldHVybiB0eXBlb2YgdC5vZmZzZXQ9PVwibnVtYmVyXCJ9ZnVuY3Rpb24gTm4odCl7aWYoXCJjaGlsZHJlblwiaW4gdCl7aWYodC5jaGlsZHJlbi5sZW5ndGg9PT0xKXtsZXQgZT10LmNoaWxkcmVuWzBdO2lmKGUudHlwZT09PVwicGxhaW5cIiYmZS50YWc9PT1udWxsJiZlLmFuY2hvcj09PW51bGwmJmUudmFsdWU9PT1cIlwiKXJldHVybiB0LmNoaWxkcmVuLnNwbGljZSgwLDEpLHR9dC5jaGlsZHJlbi5mb3JFYWNoKE5uKX1yZXR1cm4gdH1mdW5jdGlvbiBPbih0LGUsbixyKXtsZXQgcz1lKHQpO3JldHVybiBpPT57cihzLGkpJiZuKHQscz1pKX19ZnVuY3Rpb24gTG4odCl7aWYodD09PW51bGx8fCEoXCJjaGlsZHJlblwiaW4gdCkpcmV0dXJuO2xldCBlPXQuY2hpbGRyZW47aWYoZS5mb3JFYWNoKExuKSx0LnR5cGU9PT1cImRvY3VtZW50XCIpe2xldFtpLG9dPXQuY2hpbGRyZW47aS5wb3NpdGlvbi5zdGFydC5vZmZzZXQ9PT1pLnBvc2l0aW9uLmVuZC5vZmZzZXQ/aS5wb3NpdGlvbi5zdGFydD1pLnBvc2l0aW9uLmVuZD1vLnBvc2l0aW9uLnN0YXJ0Om8ucG9zaXRpb24uc3RhcnQub2Zmc2V0PT09by5wb3NpdGlvbi5lbmQub2Zmc2V0JiYoby5wb3NpdGlvbi5zdGFydD1vLnBvc2l0aW9uLmVuZD1pLnBvc2l0aW9uLmVuZCl9bGV0IG49T24odC5wb3NpdGlvbixnbyx5byx3bykscj1Pbih0LnBvc2l0aW9uLEVvLFNvLGJvKTtcImVuZENvbW1lbnRzXCJpbiB0JiZ0LmVuZENvbW1lbnRzLmxlbmd0aCE9PTAmJihuKHQuZW5kQ29tbWVudHNbMF0ucG9zaXRpb24uc3RhcnQpLHIocSh0LmVuZENvbW1lbnRzKS5wb3NpdGlvbi5lbmQpKTtsZXQgcz1lLmZpbHRlcihpPT5pIT09bnVsbCk7aWYocy5sZW5ndGghPT0wKXtsZXQgaT1zWzBdLG89cShzKTtuKGkucG9zaXRpb24uc3RhcnQpLHIoby5wb3NpdGlvbi5lbmQpLFwibGVhZGluZ0NvbW1lbnRzXCJpbiBpJiZpLmxlYWRpbmdDb21tZW50cy5sZW5ndGghPT0wJiZuKGkubGVhZGluZ0NvbW1lbnRzWzBdLnBvc2l0aW9uLnN0YXJ0KSxcInRhZ1wiaW4gaSYmaS50YWcmJm4oaS50YWcucG9zaXRpb24uc3RhcnQpLFwiYW5jaG9yXCJpbiBpJiZpLmFuY2hvciYmbihpLmFuY2hvci5wb3NpdGlvbi5zdGFydCksXCJ0cmFpbGluZ0NvbW1lbnRcImluIG8mJm8udHJhaWxpbmdDb21tZW50JiZyKG8udHJhaWxpbmdDb21tZW50LnBvc2l0aW9uLmVuZCl9fWZ1bmN0aW9uIGdvKHQpe3JldHVybiB0LnN0YXJ0fWZ1bmN0aW9uIHlvKHQsZSl7dC5zdGFydD1lfWZ1bmN0aW9uIEVvKHQpe3JldHVybiB0LmVuZH1mdW5jdGlvbiBTbyh0LGUpe3QuZW5kPWV9ZnVuY3Rpb24gd28odCxlKXtyZXR1cm4gZS5vZmZzZXQ8dC5vZmZzZXR9ZnVuY3Rpb24gYm8odCxlKXtyZXR1cm4gZS5vZmZzZXQ+dC5vZmZzZXR9dmFyIGRpPXJyKGhpKCksMSk7dmFyIEo9cnIoZ2koKSwxKSxfbT1KLmRlZmF1bHQuZmluZFBhaXIseG09Si5kZWZhdWx0LnRvSlNPTixSbT1KLmRlZmF1bHQucGFyc2VNYXAsRG09Si5kZWZhdWx0LnBhcnNlU2VxLFltPUouZGVmYXVsdC5zdHJpbmdpZnlOdW1iZXIsQm09Si5kZWZhdWx0LnN0cmluZ2lmeVN0cmluZywkbT1KLmRlZmF1bHQuVHlwZSxxYT1KLmRlZmF1bHQuWUFNTEVycm9yLEZtPUouZGVmYXVsdC5ZQU1MUmVmZXJlbmNlRXJyb3IsWm49Si5kZWZhdWx0LllBTUxTZW1hbnRpY0Vycm9yLFVhPUouZGVmYXVsdC5ZQU1MU3ludGF4RXJyb3IscW09Si5kZWZhdWx0LllBTUxXYXJuaW5nO3ZhcntEb2N1bWVudDp5aSxwYXJzZUNTVDpFaX09ZGkuZGVmYXVsdDtmdW5jdGlvbiBTaSh0KXtsZXQgZT1FaSh0KTtDcyhlKTtsZXQgbj1lLm1hcChhPT5uZXcgeWkoe21lcmdlOiExLGtlZXBDc3ROb2RlczohMH0pLnBhcnNlKGEpKSxyPW5ldyBQcih0KSxzPVtdLGk9e3RleHQ6dCxsb2NhdG9yOnIsY29tbWVudHM6cyx0cmFuc2Zvcm1PZmZzZXQ6YT0+QXMoYSxpKSx0cmFuc2Zvcm1SYW5nZTphPT5UcyhhLGkpLHRyYW5zZm9ybU5vZGU6YT0+YnMoYSxpKSx0cmFuc2Zvcm1Db250ZW50OmE9Pmt0KGEsaSl9O2ZvcihsZXQgYSBvZiBuKWZvcihsZXQgYyBvZiBhLmVycm9ycylpZighKGMgaW5zdGFuY2VvZiBabiYmYy5tZXNzYWdlPT09J01hcCBrZXlzIG11c3QgYmUgdW5pcXVlOyBcIjw8XCIgaXMgcmVwZWF0ZWQnKSl0aHJvdyBPcyhjLGkpO24uZm9yRWFjaChhPT5jdChhLmNzdE5vZGUpKTtsZXQgbz1EcihpLnRyYW5zZm9ybVJhbmdlKHtvcmlnU3RhcnQ6MCxvcmlnRW5kOmkudGV4dC5sZW5ndGh9KSxuLm1hcChpLnRyYW5zZm9ybU5vZGUpLHMpO3JldHVybiBfcihvKSxMbihvKSxObihvKSxvfWZ1bmN0aW9uIFZhKHQsZSl7bGV0IG49bmV3IFN5bnRheEVycm9yKHQrXCIgKFwiK2UubG9jLnN0YXJ0LmxpbmUrXCI6XCIrZS5sb2Muc3RhcnQuY29sdW1uK1wiKVwiKTtyZXR1cm4gT2JqZWN0LmFzc2lnbihuLGUpfXZhciB3aT1WYTtmdW5jdGlvbiBXYSh0KXt0cnl7bGV0IGU9U2kodCk7cmV0dXJuIGRlbGV0ZSBlLmNvbW1lbnRzLGV9Y2F0Y2goZSl7dGhyb3cgZSE9bnVsbCYmZS5wb3NpdGlvbj93aShlLm1lc3NhZ2Use2xvYzplLnBvc2l0aW9uLGNhdXNlOmV9KTplfX12YXIgamE9e2FzdEZvcm1hdDpcInlhbWxcIixwYXJzZTpXYSxoYXNQcmFnbWE6cHIsbG9jU3RhcnQ6dmUsbG9jRW5kOmhyfTt2YXIgYmk9W3tsaW5ndWlzdExhbmd1YWdlSWQ6NDA3LG5hbWU6XCJZQU1MXCIsdHlwZTpcImRhdGFcIixjb2xvcjpcIiNjYjE3MWVcIix0bVNjb3BlOlwic291cmNlLnlhbWxcIixhbGlhc2VzOltcInltbFwiXSxleHRlbnNpb25zOltcIi55bWxcIixcIi5taXJcIixcIi5yZWVrXCIsXCIucnZpelwiLFwiLnN1YmxpbWUtc3ludGF4XCIsXCIuc3ludGF4XCIsXCIueWFtbFwiLFwiLnlhbWwtdG1sYW5ndWFnZVwiLFwiLnlhbWwuc2VkXCIsXCIueW1sLm15c3FsXCJdLGZpbGVuYW1lczpbXCIuY2xhbmctZm9ybWF0XCIsXCIuY2xhbmctdGlkeVwiLFwiLmdlbXJjXCIsXCJDSVRBVElPTi5jZmZcIixcImdsaWRlLmxvY2tcIixcIi5wcmV0dGllcnJjXCIsXCIuc3R5bGVsaW50cmNcIixcIi5saW50c3RhZ2VkcmNcIl0sYWNlTW9kZTpcInlhbWxcIixjb2RlbWlycm9yTW9kZTpcInlhbWxcIixjb2RlbWlycm9yTWltZVR5cGU6XCJ0ZXh0L3gteWFtbFwiLHBhcnNlcnM6W1wieWFtbFwiXSx2c2NvZGVMYW5ndWFnZUlkczpbXCJ5YW1sXCIsXCJhbnNpYmxlXCIsXCJob21lLWFzc2lzdGFudFwiXX1dO3ZhciB0bj17YnJhY2tldFNwYWNpbmc6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiEwLGRlc2NyaXB0aW9uOlwiUHJpbnQgc3BhY2VzIGJldHdlZW4gYnJhY2tldHMuXCIsb3Bwb3NpdGVEZXNjcmlwdGlvbjpcIkRvIG5vdCBwcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIn0sc2luZ2xlUXVvdGU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiVXNlIHNpbmdsZSBxdW90ZXMgaW5zdGVhZCBvZiBkb3VibGUgcXVvdGVzLlwifSxwcm9zZVdyYXA6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImNob2ljZVwiLGRlZmF1bHQ6XCJwcmVzZXJ2ZVwiLGRlc2NyaXB0aW9uOlwiSG93IHRvIHdyYXAgcHJvc2UuXCIsY2hvaWNlczpbe3ZhbHVlOlwiYWx3YXlzXCIsZGVzY3JpcHRpb246XCJXcmFwIHByb3NlIGlmIGl0IGV4Y2VlZHMgdGhlIHByaW50IHdpZHRoLlwifSx7dmFsdWU6XCJuZXZlclwiLGRlc2NyaXB0aW9uOlwiRG8gbm90IHdyYXAgcHJvc2UuXCJ9LHt2YWx1ZTpcInByZXNlcnZlXCIsZGVzY3JpcHRpb246XCJXcmFwIHByb3NlIGFzLWlzLlwifV19LGJyYWNrZXRTYW1lTGluZTp7Y2F0ZWdvcnk6XCJDb21tb25cIix0eXBlOlwiYm9vbGVhblwiLGRlZmF1bHQ6ITEsZGVzY3JpcHRpb246XCJQdXQgPiBvZiBvcGVuaW5nIHRhZ3Mgb24gdGhlIGxhc3QgbGluZSBpbnN0ZWFkIG9mIG9uIGEgbmV3IGxpbmUuXCJ9LHNpbmdsZUF0dHJpYnV0ZVBlckxpbmU6e2NhdGVnb3J5OlwiQ29tbW9uXCIsdHlwZTpcImJvb2xlYW5cIixkZWZhdWx0OiExLGRlc2NyaXB0aW9uOlwiRW5mb3JjZSBzaW5nbGUgYXR0cmlidXRlIHBlciBsaW5lIGluIEhUTUwsIFZ1ZSBhbmQgSlNYLlwifX07dmFyIFFhPXticmFja2V0U3BhY2luZzp0bi5icmFja2V0U3BhY2luZyxzaW5nbGVRdW90ZTp0bi5zaW5nbGVRdW90ZSxwcm9zZVdyYXA6dG4ucHJvc2VXcmFwfSxOaT1RYTt2YXIgSmE9e3lhbWw6dnJ9O3ZhciB5aD10cjtleHBvcnR7eWggYXMgZGVmYXVsdCxiaSBhcyBsYW5ndWFnZXMsTmkgYXMgb3B0aW9ucyxlciBhcyBwYXJzZXJzLEphIGFzIHByaW50ZXJzfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbWVtYmVyLWFjY2Vzc2liaWxpdHkgKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJ0BhY3Rpb25zL2dpdGh1Yi9saWIvY29udGV4dCc7XG5pbXBvcnQgKiBhcyBuY29uZiBmcm9tICduY29uZic7XG5cbmltcG9ydCBBY3Rpb24gZnJvbSAnLi9BY3Rpb24nO1xuaW1wb3J0IHsgcmVwb3NpdG9yeUZpbmRlciB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgTG9nVGFzayBmcm9tICcuL2xvZ3Rhc2snO1xuaW1wb3J0IHsgd29ya2luZ0RpcmVjdG9yeSB9IGZyb20gJy4vd29ya2luZy1kaXJlY3RvcnknO1xuXG5jb25zdCBsb2cgPSBuZXcgTG9nVGFzaygnaW5wdXRzJyk7XG5wcm9jZXNzLmNoZGlyKHdvcmtpbmdEaXJlY3RvcnkoKSk7XG5jb25zdCBnaXRodWJFdmVudFBhdGggPSBwcm9jZXNzLmVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSA/PyAnJztcbmxldCBnaXRodWJFdmVudDogQ29udGV4dCB8IG51bGwgPSBudWxsO1xudHJ5IHtcbiAgZ2l0aHViRXZlbnQgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhnaXRodWJFdmVudFBhdGgsICd1dGY4JykpIGFzIENvbnRleHQ7XG59IGNhdGNoIHtcbiAgLy8gRmlsZSBub3QgdGhlcmVcbiAgbG9nLmRlYnVnKGBHSVRIVUJfRVZFTlRfUEFUSCBub3QgZm91bmQ6ICR7Z2l0aHViRXZlbnRQYXRofWApO1xufVxuY29uc3QgY29uZmlnRmlsZU5hbWUgPSAnLmdoYWRvY3MuanNvbic7XG5jb25zdCBwYXRoc0FjdGlvbiA9ICdwYXRoczphY3Rpb24nO1xuY29uc3QgcGF0aHNSZWFkbWUgPSAncGF0aHM6cmVhZG1lJztcbmV4cG9ydCBjb25zdCBjb25maWdLZXlzOiBzdHJpbmdbXSA9IFtcbiAgJ3NhdmUnLFxuICBwYXRoc0FjdGlvbixcbiAgcGF0aHNSZWFkbWUsXG4gICdzaG93X2xvZ28nLFxuICAndmVyc2lvbmluZzplbmFibGVkJyxcbiAgJ3ZlcnNpb25pbmc6b3ZlcnJpZGUnLFxuICAndmVyc2lvbmluZzpwcmVmaXgnLFxuICAndmVyc2lvbmluZzpicmFuY2gnLFxuICAnb3duZXInLFxuICAncmVwbycsXG4gICd0aXRsZV9wcmVmaXgnLFxuICAncHJldHR5JyxcbiAgJ2luY2x1ZGVfZ2l0aHViX3ZlcnNpb25fYmFkZ2UnLFxuXTtcbmludGVyZmFjZSBLVlBhaXJUeXBlIHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbnB1dHMge1xuICBwdWJsaWMgY29uZmlnOiBuY29uZi5Qcm92aWRlcjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbmZpZyA9IG5ldyBuY29uZi5Qcm92aWRlcigpO1xuICAgIGNvbnN0IHJlcG9zaXRvcnlEZXRhaWwgPSByZXBvc2l0b3J5RmluZGVyKG51bGwsIGdpdGh1YkV2ZW50KTtcbiAgICBpZiAocHJvY2Vzcy5lbnZbJ0dJVEhVQl9BQ1RJT04nXSkge1xuICAgICAgbG9nLmluZm8oJ3J1bm5pbmcgaW4gR2l0SHViIGFjdGlvbicpO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpZy51c2UoJ21lbW9yeScpO1xuICAgIHRoaXMuY29uZmlnLmVudih7XG4gICAgICBsb3dlckNhc2U6IHRydWUsXG4gICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgIG1hdGNoOiAvXklOUFVUXy8sXG4gICAgICB0cmFuc2Zvcm06IChvYmo6IEtWUGFpclR5cGUpOiB1bmRlZmluZWQgfCBLVlBhaXJUeXBlID0+IHtcbiAgICAgICAgaWYgKG9iai5rZXkuc3RhcnRzV2l0aCgnaW5wdXRfJykpIHtcbiAgICAgICAgICBjb25zdCBuZXdPYmo6IEtWUGFpclR5cGUgPSB7XG4gICAgICAgICAgICBrZXk6IG9iai5rZXksXG4gICAgICAgICAgICB2YWx1ZTogb2JqLnZhbHVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3Qga2V5UGFyc2VkID0gb2JqLmtleS5yZXBsYWNlKC9eKElOUFVUfGlucHV0KV8vLCAnJyk7XG4gICAgICAgICAgc3dpdGNoIChrZXlQYXJzZWQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3JlYWRtZSc6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9IHBhdGhzUmVhZG1lO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FjdGlvbic6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9IHBhdGhzQWN0aW9uO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3ZlcnNpb25pbmdfZW5hYmxlZCc6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9ICd2ZXJzaW9uaW5nOmVuYWJsZWQnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3ZlcnNpb25fcHJlZml4Jzoge1xuICAgICAgICAgICAgICBuZXdPYmoua2V5ID0gJ3ZlcnNpb25pbmc6cHJlZml4JztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd2ZXJzaW9uaW5nX2RlZmF1bHRfYnJhbmNoJzoge1xuICAgICAgICAgICAgICBuZXdPYmoua2V5ID0gJ3ZlcnNpb25pbmc6YnJhbmNoJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd2ZXJzaW9uX292ZXJyaWRlJzoge1xuICAgICAgICAgICAgICBuZXdPYmoua2V5ID0gJ3ZlcnNpb25pbmc6b3ZlcnJpZGUnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2luY2x1ZGVfZ2l0aHViX3ZlcnNpb25fYmFkZ2UnOiB7XG4gICAgICAgICAgICAgIG5ld09iai5rZXkgPSAndmVyc2lvbmluZzpiYWRnZSc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICBuZXdPYmoua2V5ID0ga2V5UGFyc2VkO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG5ld09iai52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWcuc2V0KG5ld09iai5rZXksIG5ld09iai52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXdPYmo7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5jb25maWcuYXJndih7XG4gICAgICAnc2F2ZSc6IHtcbiAgICAgICAgYWxpYXM6ICdzYXZlJyxcbiAgICAgICAgZGVzY3JpYmU6IGBTYXZlIHRoaXMgY29uZmlnIHRvICR7Y29uZmlnRmlsZU5hbWV9YCxcbiAgICAgICAgcGFyc2VWYWx1ZXM6IHRydWUsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIH0sXG4gICAgICAncGF0aHM6YWN0aW9uJzoge1xuICAgICAgICBhbGlhczogWydwYXRoc0FjdGlvbicsICdhY3Rpb24nXSxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlc2NyaWJlOiAnUGF0aCB0byB0aGUgYWN0aW9uLnltbCcsXG4gICAgICB9LFxuICAgICAgJ3BhdGhzOnJlYWRtZSc6IHtcbiAgICAgICAgYWxpYXM6IFsncGF0aHNSZWFkbWUnLCAncmVhZG1lJ10sXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmliZTogJ1BhdGggdG8gdGhlIFJFQURNRSBmaWxlJyxcbiAgICAgIH0sXG4gICAgICAnc2hvd19sb2dvJzoge1xuICAgICAgICBhbGlhczogJ2xvZ28nLFxuICAgICAgICBkZXNjcmliZTogXCJEaXNwbGF5IHRoZSBhY3Rpb24ncyBsb2dvIGluIHRoZSBSRUFETUVcIixcbiAgICAgIH0sXG4gICAgICAnb3duZXInOiB7XG4gICAgICAgIGFsaWFzOiAnb3duZXInLFxuICAgICAgICBkZXNjcmliZTogJ1RoZSBHaXRIdWIgQWN0aW9uIHJlcG9zaXRvcnkgb3duZXIuIGkuZTogYGJpdGZsaWdodC1kZXZvcHNgJyxcbiAgICAgIH0sXG4gICAgICAncmVwbyc6IHtcbiAgICAgICAgYWxpYXM6ICdyZXBvJyxcbiAgICAgICAgZGVzY3JpYmU6ICdUaGUgR2l0SHViIEFjdGlvbiByZXBvc2l0b3J5IG5hbWUuIGkuZTogYGdpdGh1Yi1hY3Rpb24tcmVhZG1lLWdlbmVyYXRvcmAnLFxuICAgICAgfSxcbiAgICAgICdwcmV0dGllcic6IHtcbiAgICAgICAgYWxpYXM6ICdwcmV0dHknLFxuICAgICAgICBkZXNjcmliZTogJ0Zvcm1hdCB0aGUgbWFya2Rvd24gdXNpbmcgcHJldHRpZXIgZm9ybWF0dGVyJyxcbiAgICAgICAgcGFyc2VWYWx1ZXM6IHRydWUsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIH0sXG4gICAgICAndmVyc2lvbmluZzplbmFibGVkJzoge1xuICAgICAgICBhbGlhczogWyd2ZXJzaW9uaW5nJywgJ3ZlcnNpb25pbmdfZW5hYmxlZCddLFxuICAgICAgICBkZXNjcmliZTpcbiAgICAgICAgICAnRW5hYmxlIHRoZSB1cGRhdGUgb2YgdGhlIHVzYWdlIHZlcnNpb24gdG8gbWF0Y2ggdGhlIGxhdGVzdCB2ZXJzaW9uIGluIHRoZSBwYWNrYWdlLmpzb24gZmlsZScsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgICAgJ3ZlcnNpb25pbmc6b3ZlcnJpZGUnOiB7XG4gICAgICAgIGFsaWFzOiBbJ3NldHZlcnNpb24nLCAndmVyc2lvbmluZ19vdmVycmlkZScsICd2ZXJzaW9uX292ZXJyaWRlJ10sXG4gICAgICAgIGRlc2NyaWJlOiAnU2V0IGEgc3BlY2lmaWMgdmVyc2lvbiB0byBkaXNwbGF5IGluIHRoZSBSRUFETUUubWQnLFxuICAgICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAndmVyc2lvbmluZzpwcmVmaXgnOiB7XG4gICAgICAgIGFsaWFzOiBbJ3ZwJywgJ3ZlcnNpb25fcHJlZml4J10sXG4gICAgICAgIGRlc2NyaWJlOiBcIlByZWZpeCB0aGUgdmVyc2lvbiB3aXRoIHRoaXMgdmFsdWUgKGlmIGl0IGlzbid0IGFscmVhZHkgcHJlZml4ZWQpXCIsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgfSxcbiAgICAgICd2ZXJzaW9uaW5nOmJyYW5jaCc6IHtcbiAgICAgICAgYWxpYXM6IFsnYnJhbmNoJywgJ3ZlcnNpb25pbmdfZGVmYXVsdF9icmFuY2gnXSxcbiAgICAgICAgZGVzY3JpYmU6ICdJZiB2ZXJzaW9uaW5nIGlzIGRpc2FibGVkIHNob3cgdGhpcyBicmFuY2ggaW5zdGVhZCcsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgfSxcbiAgICAgICd2ZXJzaW9uaW5nOmJhZGdlJzoge1xuICAgICAgICBhbGlhczogWyd2ZXJzaW9uLWJhZGdlJywgJ3ZlcnNpb25pbmdfYmFkZ2UnXSxcbiAgICAgICAgZGVzY3JpYmU6ICdEaXNwbGF5IHRoZSBjdXJyZW50IHZlcnNpb24gYXMgYSBiYWRnZScsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgICAgJ3RpdGxlX3ByZWZpeCc6IHtcbiAgICAgICAgYWxpYXM6IFsncHJlZml4JywgJ3RpdGxlX3ByZWZpeCddLFxuICAgICAgICBkZXNjcmliZTogJ0FkZCBhIHByZWZpeCB0byB0aGUgUkVBRE1FIHRpdGxlJyxcbiAgICAgICAgcGFyc2VWYWx1ZXM6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWcuZmlsZSh7IGZpbGU6IGNvbmZpZ0ZpbGVOYW1lLCBkaXI6IHdvcmtpbmdEaXJlY3RvcnkoKSB9KTtcbiAgICB0aGlzLmNvbmZpZy5kZWZhdWx0cyh7XG4gICAgICBzYXZlOiB0cnVlLFxuICAgICAgb3duZXI6IHJlcG9zaXRvcnlEZXRhaWw/Lm93bmVyLFxuICAgICAgcmVwbzogcmVwb3NpdG9yeURldGFpbD8ucmVwbyxcbiAgICAgIHBhdGhzOiB7XG4gICAgICAgIGFjdGlvbjogJ2FjdGlvbi55bWwnLFxuICAgICAgICByZWFkbWU6ICdSRUFETUUubWQnLFxuICAgICAgfSxcbiAgICAgIHNob3dfbG9nbzogdHJ1ZSxcbiAgICAgIHByZXR0eTogdHJ1ZSxcbiAgICAgIHZlcnNpb25pbmc6IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgb3ZlcnJpZGU6ICcnLFxuICAgICAgICBwcmVmaXg6ICd2JyxcbiAgICAgICAgYnJhbmNoOiAnbWFpbicsXG4gICAgICAgIGJhZGdlczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB0aXRsZV9wcmVmaXg6ICdHaXRIdWIgQWN0aW9uOiAnLFxuICAgICAgc2VjdGlvbnM6IFsndGl0bGUnLCAnZGVzY3JpcHRpb24nLCAndXNhZ2UnLCAnaW5wdXRzJywgJ291dHB1dHMnLCAnY29udGVudHMnLCAnYmFkZ2VzJ10sXG4gICAgfSk7XG4gICAgdGhpcy5jb25maWcucmVxdWlyZWQoWydvd25lcicsICdyZXBvJ10pO1xuICAgIGZvciAoY29uc3QgayBvZiBjb25maWdLZXlzKSB7XG4gICAgICBsb2cuZGVidWcoYCR7a306ICR7dGhpcy5jb25maWcuZ2V0KGspfWApO1xuICAgIH1cblxuICAgIHRoaXMuc2VjdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXQoJ3NlY3Rpb25zJykgYXMgc3RyaW5nW107XG4gICAgdGhpcy5yZWFkbWVQYXRoID0gcGF0aC5yZWxhdGl2ZSh3b3JraW5nRGlyZWN0b3J5KCksIHRoaXMuY29uZmlnLmdldChwYXRoc1JlYWRtZSkgYXMgc3RyaW5nKTtcbiAgICBjb25zdCBhY3Rpb25QYXRoID0gcGF0aC5yZWxhdGl2ZSh3b3JraW5nRGlyZWN0b3J5KCksIHRoaXMuY29uZmlnLmdldChwYXRoc0FjdGlvbikgYXMgc3RyaW5nKTtcblxuICAgIHRoaXMuYWN0aW9uID0gbmV3IEFjdGlvbihhY3Rpb25QYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWN0aW9uczogc3RyaW5nW107XG5cbiAgcHVibGljIHJlYWRtZVBhdGg6IHN0cmluZztcblxuICBwdWJsaWMgYWN0aW9uOiBBY3Rpb247XG59XG4iLCAiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5ICovXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0ICogYXMgeWFtbCBmcm9tICdqcy15YW1sJztcblxuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dFR5cGUge1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkZWZhdWx0Pzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRUeXBlIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJ1bnMge1xuICB1c2luZzogc3RyaW5nO1xuICBtYWluOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kaW5nIHtcbiAgY29sb3I6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgSW5wdXRzVHlwZSA9IHsgW2lkOiBzdHJpbmddOiBJbnB1dFR5cGUgfTtcbmV4cG9ydCB0eXBlIE91dHB1dHNUeXBlID0geyBbaWQ6IHN0cmluZ106IE91dHB1dFR5cGUgfTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWN0aW9uIHtcbiAgLy8gTG9hZCB0aGUgYWN0aW9uLnltbFxuXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG5cbiAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgcHVibGljIGJyYW5kaW5nOiBCcmFuZGluZztcblxuICBwdWJsaWMgaW5wdXRzOiBJbnB1dHNUeXBlO1xuXG4gIHB1YmxpYyBvdXRwdXRzOiBPdXRwdXRzVHlwZTtcblxuICBwdWJsaWMgcnVuczogUnVucztcblxuICBjb25zdHJ1Y3RvcihhY3Rpb25QYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzaygnYWN0aW9uJyk7XG4gICAgbGV0IHRtcEFjdGlvbllhbWwgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICBsb2cuZGVidWcoYGxvYWRpbmcgYWN0aW9uLnltbCBmcm9tICR7YWN0aW9uUGF0aH1gKTtcbiAgICAgIHRtcEFjdGlvbllhbWwgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKGFjdGlvblBhdGgsICd1dGY4JykpIGFzIEFjdGlvbjtcbiAgICAgIGxvZy5zdWNjZXNzKCdsb2FkZWQgY29uZmlndXJhdGlvbiBzdWNjZXNzZnVsbHknKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGxvZy5lcnJvcihgZmFpbGVkIHRvIGxvYWQgJHthY3Rpb25QYXRofWApO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRtcEFjdGlvbllhbWwgIT09ICdvYmplY3QnIHx8IHRtcEFjdGlvbllhbWwgPT09IG51bGwpIHtcbiAgICAgIGxvZy5lcnJvcihcImFjdGlvbi55bWwgZmlsZSByZWFkIGluIGlzbid0IGFuIG9iamVjdCAobm8geWFtbCBpbiBpdClcIik7XG4gICAgfVxuICAgIGNvbnN0IGFjdGlvbllhbWwgPSB0bXBBY3Rpb25ZYW1sIGFzIEFjdGlvbjtcbiAgICB0aGlzLm5hbWUgPSBhY3Rpb25ZYW1sLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IGFjdGlvbllhbWwuZGVzY3JpcHRpb247XG4gICAgdGhpcy5icmFuZGluZyA9IGFjdGlvbllhbWwuYnJhbmRpbmc7XG4gICAgdGhpcy5pbnB1dHMgPSBhY3Rpb25ZYW1sLmlucHV0cztcbiAgICB0aGlzLm91dHB1dHMgPSBhY3Rpb25ZYW1sLm91dHB1dHM7XG4gICAgdGhpcy5ydW5zID0gYWN0aW9uWWFtbC5ydW5zO1xuICB9XG59XG4iLCAiXG4vKiEganMteWFtbCA0LjEuMCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWNhL2pzLXlhbWwgQGxpY2Vuc2UgTUlUICovXG5mdW5jdGlvbiBpc05vdGhpbmcoc3ViamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBzdWJqZWN0ID09PSAndW5kZWZpbmVkJykgfHwgKHN1YmplY3QgPT09IG51bGwpO1xufVxuXG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHN1YmplY3QpIHtcbiAgcmV0dXJuICh0eXBlb2Ygc3ViamVjdCA9PT0gJ29iamVjdCcpICYmIChzdWJqZWN0ICE9PSBudWxsKTtcbn1cblxuXG5mdW5jdGlvbiB0b0FycmF5KHNlcXVlbmNlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSkgcmV0dXJuIHNlcXVlbmNlO1xuICBlbHNlIGlmIChpc05vdGhpbmcoc2VxdWVuY2UpKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIFsgc2VxdWVuY2UgXTtcbn1cblxuXG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcblxuICBpZiAoc291cmNlKSB7XG4gICAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuXG5mdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkge1xuICB2YXIgcmVzdWx0ID0gJycsIGN5Y2xlO1xuXG4gIGZvciAoY3ljbGUgPSAwOyBjeWNsZSA8IGNvdW50OyBjeWNsZSArPSAxKSB7XG4gICAgcmVzdWx0ICs9IHN0cmluZztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7XG4gIHJldHVybiAobnVtYmVyID09PSAwKSAmJiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSAxIC8gbnVtYmVyKTtcbn1cblxuXG52YXIgaXNOb3RoaW5nXzEgICAgICA9IGlzTm90aGluZztcbnZhciBpc09iamVjdF8xICAgICAgID0gaXNPYmplY3Q7XG52YXIgdG9BcnJheV8xICAgICAgICA9IHRvQXJyYXk7XG52YXIgcmVwZWF0XzEgICAgICAgICA9IHJlcGVhdDtcbnZhciBpc05lZ2F0aXZlWmVyb18xID0gaXNOZWdhdGl2ZVplcm87XG52YXIgZXh0ZW5kXzEgICAgICAgICA9IGV4dGVuZDtcblxudmFyIGNvbW1vbiA9IHtcblx0aXNOb3RoaW5nOiBpc05vdGhpbmdfMSxcblx0aXNPYmplY3Q6IGlzT2JqZWN0XzEsXG5cdHRvQXJyYXk6IHRvQXJyYXlfMSxcblx0cmVwZWF0OiByZXBlYXRfMSxcblx0aXNOZWdhdGl2ZVplcm86IGlzTmVnYXRpdmVaZXJvXzEsXG5cdGV4dGVuZDogZXh0ZW5kXzFcbn07XG5cbi8vIFlBTUwgZXJyb3IgY2xhc3MuIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvODQ1ODk4NFxuXG5cbmZ1bmN0aW9uIGZvcm1hdEVycm9yKGV4Y2VwdGlvbiwgY29tcGFjdCkge1xuICB2YXIgd2hlcmUgPSAnJywgbWVzc2FnZSA9IGV4Y2VwdGlvbi5yZWFzb24gfHwgJyh1bmtub3duIHJlYXNvbiknO1xuXG4gIGlmICghZXhjZXB0aW9uLm1hcmspIHJldHVybiBtZXNzYWdlO1xuXG4gIGlmIChleGNlcHRpb24ubWFyay5uYW1lKSB7XG4gICAgd2hlcmUgKz0gJ2luIFwiJyArIGV4Y2VwdGlvbi5tYXJrLm5hbWUgKyAnXCIgJztcbiAgfVxuXG4gIHdoZXJlICs9ICcoJyArIChleGNlcHRpb24ubWFyay5saW5lICsgMSkgKyAnOicgKyAoZXhjZXB0aW9uLm1hcmsuY29sdW1uICsgMSkgKyAnKSc7XG5cbiAgaWYgKCFjb21wYWN0ICYmIGV4Y2VwdGlvbi5tYXJrLnNuaXBwZXQpIHtcbiAgICB3aGVyZSArPSAnXFxuXFxuJyArIGV4Y2VwdGlvbi5tYXJrLnNuaXBwZXQ7XG4gIH1cblxuICByZXR1cm4gbWVzc2FnZSArICcgJyArIHdoZXJlO1xufVxuXG5cbmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHtcbiAgLy8gU3VwZXIgY29uc3RydWN0b3JcbiAgRXJyb3IuY2FsbCh0aGlzKTtcblxuICB0aGlzLm5hbWUgPSAnWUFNTEV4Y2VwdGlvbic7XG4gIHRoaXMucmVhc29uID0gcmVhc29uO1xuICB0aGlzLm1hcmsgPSBtYXJrO1xuICB0aGlzLm1lc3NhZ2UgPSBmb3JtYXRFcnJvcih0aGlzLCBmYWxzZSk7XG5cbiAgLy8gSW5jbHVkZSBzdGFjayB0cmFjZSBpbiBlcnJvciBvYmplY3RcbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgLy8gQ2hyb21lIGFuZCBOb2RlSlNcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGRiwgSUUgMTArIGFuZCBTYWZhcmkgNisuIEZhbGxiYWNrIGZvciBvdGhlcnNcbiAgICB0aGlzLnN0YWNrID0gKG5ldyBFcnJvcigpKS5zdGFjayB8fCAnJztcbiAgfVxufVxuXG5cbi8vIEluaGVyaXQgZnJvbSBFcnJvclxuWUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKTtcbllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBZQU1MRXhjZXB0aW9uJDE7XG5cblxuWUFNTEV4Y2VwdGlvbiQxLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKGNvbXBhY3QpIHtcbiAgcmV0dXJuIHRoaXMubmFtZSArICc6ICcgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTtcbn07XG5cblxudmFyIGV4Y2VwdGlvbiA9IFlBTUxFeGNlcHRpb24kMTtcblxuLy8gZ2V0IHNuaXBwZXQgZm9yIGEgc2luZ2xlIGxpbmUsIHJlc3BlY3RpbmcgbWF4TGVuZ3RoXG5mdW5jdGlvbiBnZXRMaW5lKGJ1ZmZlciwgbGluZVN0YXJ0LCBsaW5lRW5kLCBwb3NpdGlvbiwgbWF4TGluZUxlbmd0aCkge1xuICB2YXIgaGVhZCA9ICcnO1xuICB2YXIgdGFpbCA9ICcnO1xuICB2YXIgbWF4SGFsZkxlbmd0aCA9IE1hdGguZmxvb3IobWF4TGluZUxlbmd0aCAvIDIpIC0gMTtcblxuICBpZiAocG9zaXRpb24gLSBsaW5lU3RhcnQgPiBtYXhIYWxmTGVuZ3RoKSB7XG4gICAgaGVhZCA9ICcgLi4uICc7XG4gICAgbGluZVN0YXJ0ID0gcG9zaXRpb24gLSBtYXhIYWxmTGVuZ3RoICsgaGVhZC5sZW5ndGg7XG4gIH1cblxuICBpZiAobGluZUVuZCAtIHBvc2l0aW9uID4gbWF4SGFsZkxlbmd0aCkge1xuICAgIHRhaWwgPSAnIC4uLic7XG4gICAgbGluZUVuZCA9IHBvc2l0aW9uICsgbWF4SGFsZkxlbmd0aCAtIHRhaWwubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cXHQvZywgJ1x1MjE5MicpICsgdGFpbCxcbiAgICBwb3M6IHBvc2l0aW9uIC0gbGluZVN0YXJ0ICsgaGVhZC5sZW5ndGggLy8gcmVsYXRpdmUgcG9zaXRpb25cbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBwYWRTdGFydChzdHJpbmcsIG1heCkge1xuICByZXR1cm4gY29tbW9uLnJlcGVhdCgnICcsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufVxuXG5cbmZ1bmN0aW9uIG1ha2VTbmlwcGV0KG1hcmssIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IE9iamVjdC5jcmVhdGUob3B0aW9ucyB8fCBudWxsKTtcblxuICBpZiAoIW1hcmsuYnVmZmVyKSByZXR1cm4gbnVsbDtcblxuICBpZiAoIW9wdGlvbnMubWF4TGVuZ3RoKSBvcHRpb25zLm1heExlbmd0aCA9IDc5O1xuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5kZW50ICAgICAgIT09ICdudW1iZXInKSBvcHRpb25zLmluZGVudCAgICAgID0gMTtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmxpbmVzQmVmb3JlICE9PSAnbnVtYmVyJykgb3B0aW9ucy5saW5lc0JlZm9yZSA9IDM7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5saW5lc0FmdGVyICAhPT0gJ251bWJlcicpIG9wdGlvbnMubGluZXNBZnRlciAgPSAyO1xuXG4gIHZhciByZSA9IC9cXHI/XFxufFxccnxcXDAvZztcbiAgdmFyIGxpbmVTdGFydHMgPSBbIDAgXTtcbiAgdmFyIGxpbmVFbmRzID0gW107XG4gIHZhciBtYXRjaDtcbiAgdmFyIGZvdW5kTGluZU5vID0gLTE7XG5cbiAgd2hpbGUgKChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSkge1xuICAgIGxpbmVFbmRzLnB1c2gobWF0Y2guaW5kZXgpO1xuICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG5cbiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHtcbiAgICAgIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAyO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmb3VuZExpbmVObyA8IDApIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxO1xuXG4gIHZhciByZXN1bHQgPSAnJywgaSwgbGluZTtcbiAgdmFyIGxpbmVOb0xlbmd0aCA9IE1hdGgubWluKG1hcmsubGluZSArIG9wdGlvbnMubGluZXNBZnRlciwgbGluZUVuZHMubGVuZ3RoKS50b1N0cmluZygpLmxlbmd0aDtcbiAgdmFyIG1heExpbmVMZW5ndGggPSBvcHRpb25zLm1heExlbmd0aCAtIChvcHRpb25zLmluZGVudCArIGxpbmVOb0xlbmd0aCArIDMpO1xuXG4gIGZvciAoaSA9IDE7IGkgPD0gb3B0aW9ucy5saW5lc0JlZm9yZTsgaSsrKSB7XG4gICAgaWYgKGZvdW5kTGluZU5vIC0gaSA8IDApIGJyZWFrO1xuICAgIGxpbmUgPSBnZXRMaW5lKFxuICAgICAgbWFyay5idWZmZXIsXG4gICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sXG4gICAgICBsaW5lRW5kc1tmb3VuZExpbmVObyAtIGldLFxuICAgICAgbWFyay5wb3NpdGlvbiAtIChsaW5lU3RhcnRzW2ZvdW5kTGluZU5vXSAtIGxpbmVTdGFydHNbZm91bmRMaW5lTm8gLSBpXSksXG4gICAgICBtYXhMaW5lTGVuZ3RoXG4gICAgKTtcbiAgICByZXN1bHQgPSBjb21tb24ucmVwZWF0KCcgJywgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSAtIGkgKyAxKS50b1N0cmluZygpLCBsaW5lTm9MZW5ndGgpICtcbiAgICAgICcgfCAnICsgbGluZS5zdHIgKyAnXFxuJyArIHJlc3VsdDtcbiAgfVxuXG4gIGxpbmUgPSBnZXRMaW5lKG1hcmsuYnVmZmVyLCBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vXSwgbGluZUVuZHNbZm91bmRMaW5lTm9dLCBtYXJrLnBvc2l0aW9uLCBtYXhMaW5lTGVuZ3RoKTtcbiAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJyAnLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArXG4gICAgJyB8ICcgKyBsaW5lLnN0ciArICdcXG4nO1xuICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnLScsIG9wdGlvbnMuaW5kZW50ICsgbGluZU5vTGVuZ3RoICsgMyArIGxpbmUucG9zKSArICdeJyArICdcXG4nO1xuXG4gIGZvciAoaSA9IDE7IGkgPD0gb3B0aW9ucy5saW5lc0FmdGVyOyBpKyspIHtcbiAgICBpZiAoZm91bmRMaW5lTm8gKyBpID49IGxpbmVFbmRzLmxlbmd0aCkgYnJlYWs7XG4gICAgbGluZSA9IGdldExpbmUoXG4gICAgICBtYXJrLmJ1ZmZlcixcbiAgICAgIGxpbmVTdGFydHNbZm91bmRMaW5lTm8gKyBpXSxcbiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sXG4gICAgICBtYXJrLnBvc2l0aW9uIC0gKGxpbmVTdGFydHNbZm91bmRMaW5lTm9dIC0gbGluZVN0YXJ0c1tmb3VuZExpbmVObyArIGldKSxcbiAgICAgIG1heExpbmVMZW5ndGhcbiAgICApO1xuICAgIHJlc3VsdCArPSBjb21tb24ucmVwZWF0KCcgJywgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSArIGkgKyAxKS50b1N0cmluZygpLCBsaW5lTm9MZW5ndGgpICtcbiAgICAgICcgfCAnICsgbGluZS5zdHIgKyAnXFxuJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQucmVwbGFjZSgvXFxuJC8sICcnKTtcbn1cblxuXG52YXIgc25pcHBldCA9IG1ha2VTbmlwcGV0O1xuXG52YXIgVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TID0gW1xuICAna2luZCcsXG4gICdtdWx0aScsXG4gICdyZXNvbHZlJyxcbiAgJ2NvbnN0cnVjdCcsXG4gICdpbnN0YW5jZU9mJyxcbiAgJ3ByZWRpY2F0ZScsXG4gICdyZXByZXNlbnQnLFxuICAncmVwcmVzZW50TmFtZScsXG4gICdkZWZhdWx0U3R5bGUnLFxuICAnc3R5bGVBbGlhc2VzJ1xuXTtcblxudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgJ3NjYWxhcicsXG4gICdzZXF1ZW5jZScsXG4gICdtYXBwaW5nJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gIGlmIChtYXAgIT09IG51bGwpIHtcbiAgICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICBtYXBbc3R5bGVdLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIHJlc3VsdFtTdHJpbmcoYWxpYXMpXSA9IHN0eWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBUeXBlJDEodGFnLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAoVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TLmluZGV4T2YobmFtZSkgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiBcIicgKyBuYW1lICsgJ1wiIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mIFwiJyArIHRhZyArICdcIiBZQU1MIHR5cGUuJyk7XG4gICAgfVxuICB9KTtcblxuICAvLyBUT0RPOiBBZGQgdGFnIGZvcm1hdCBjaGVjay5cbiAgdGhpcy5vcHRpb25zICAgICAgID0gb3B0aW9uczsgLy8ga2VlcCBvcmlnaW5hbCBvcHRpb25zIGluIGNhc2UgdXNlciB3YW50cyB0byBleHRlbmQgdGhpcyB0eXBlIGxhdGVyXG4gIHRoaXMudGFnICAgICAgICAgICA9IHRhZztcbiAgdGhpcy5raW5kICAgICAgICAgID0gb3B0aW9uc1sna2luZCddICAgICAgICAgIHx8IG51bGw7XG4gIHRoaXMucmVzb2x2ZSAgICAgICA9IG9wdGlvbnNbJ3Jlc29sdmUnXSAgICAgICB8fCBmdW5jdGlvbiAoKSB7IHJldHVybiB0cnVlOyB9O1xuICB0aGlzLmNvbnN0cnVjdCAgICAgPSBvcHRpb25zWydjb25zdHJ1Y3QnXSAgICAgfHwgZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGRhdGE7IH07XG4gIHRoaXMuaW5zdGFuY2VPZiAgICA9IG9wdGlvbnNbJ2luc3RhbmNlT2YnXSAgICB8fCBudWxsO1xuICB0aGlzLnByZWRpY2F0ZSAgICAgPSBvcHRpb25zWydwcmVkaWNhdGUnXSAgICAgfHwgbnVsbDtcbiAgdGhpcy5yZXByZXNlbnQgICAgID0gb3B0aW9uc1sncmVwcmVzZW50J10gICAgIHx8IG51bGw7XG4gIHRoaXMucmVwcmVzZW50TmFtZSA9IG9wdGlvbnNbJ3JlcHJlc2VudE5hbWUnXSB8fCBudWxsO1xuICB0aGlzLmRlZmF1bHRTdHlsZSAgPSBvcHRpb25zWydkZWZhdWx0U3R5bGUnXSAgfHwgbnVsbDtcbiAgdGhpcy5tdWx0aSAgICAgICAgID0gb3B0aW9uc1snbXVsdGknXSAgICAgICAgIHx8IGZhbHNlO1xuICB0aGlzLnN0eWxlQWxpYXNlcyAgPSBjb21waWxlU3R5bGVBbGlhc2VzKG9wdGlvbnNbJ3N0eWxlQWxpYXNlcyddIHx8IG51bGwpO1xuXG4gIGlmIChZQU1MX05PREVfS0lORFMuaW5kZXhPZih0aGlzLmtpbmQpID09PSAtMSkge1xuICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1Vua25vd24ga2luZCBcIicgKyB0aGlzLmtpbmQgKyAnXCIgaXMgc3BlY2lmaWVkIGZvciBcIicgKyB0YWcgKyAnXCIgWUFNTCB0eXBlLicpO1xuICB9XG59XG5cbnZhciB0eXBlID0gVHlwZSQxO1xuXG4vKmVzbGludC1kaXNhYmxlIG1heC1sZW4qL1xuXG5cblxuXG5cbmZ1bmN0aW9uIGNvbXBpbGVMaXN0KHNjaGVtYSwgbmFtZSkge1xuICB2YXIgcmVzdWx0ID0gW107XG5cbiAgc2NoZW1hW25hbWVdLmZvckVhY2goZnVuY3Rpb24gKGN1cnJlbnRUeXBlKSB7XG4gICAgdmFyIG5ld0luZGV4ID0gcmVzdWx0Lmxlbmd0aDtcblxuICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aW91c1R5cGUsIHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIGlmIChwcmV2aW91c1R5cGUudGFnID09PSBjdXJyZW50VHlwZS50YWcgJiZcbiAgICAgICAgICBwcmV2aW91c1R5cGUua2luZCA9PT0gY3VycmVudFR5cGUua2luZCAmJlxuICAgICAgICAgIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHtcblxuICAgICAgICBuZXdJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXN1bHRbbmV3SW5kZXhdID0gY3VycmVudFR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gY29tcGlsZU1hcCgvKiBsaXN0cy4uLiAqLykge1xuICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICBzY2FsYXI6IHt9LFxuICAgICAgICBzZXF1ZW5jZToge30sXG4gICAgICAgIG1hcHBpbmc6IHt9LFxuICAgICAgICBmYWxsYmFjazoge30sXG4gICAgICAgIG11bHRpOiB7XG4gICAgICAgICAgc2NhbGFyOiBbXSxcbiAgICAgICAgICBzZXF1ZW5jZTogW10sXG4gICAgICAgICAgbWFwcGluZzogW10sXG4gICAgICAgICAgZmFsbGJhY2s6IFtdXG4gICAgICAgIH1cbiAgICAgIH0sIGluZGV4LCBsZW5ndGg7XG5cbiAgZnVuY3Rpb24gY29sbGVjdFR5cGUodHlwZSkge1xuICAgIGlmICh0eXBlLm11bHRpKSB7XG4gICAgICByZXN1bHQubXVsdGlbdHlwZS5raW5kXS5wdXNoKHR5cGUpO1xuICAgICAgcmVzdWx0Lm11bHRpWydmYWxsYmFjayddLnB1c2godHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFt0eXBlLmtpbmRdW3R5cGUudGFnXSA9IHJlc3VsdFsnZmFsbGJhY2snXVt0eXBlLnRhZ10gPSB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuXG5mdW5jdGlvbiBTY2hlbWEkMShkZWZpbml0aW9uKSB7XG4gIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTtcbn1cblxuXG5TY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kID0gZnVuY3Rpb24gZXh0ZW5kKGRlZmluaXRpb24pIHtcbiAgdmFyIGltcGxpY2l0ID0gW107XG4gIHZhciBleHBsaWNpdCA9IFtdO1xuXG4gIGlmIChkZWZpbml0aW9uIGluc3RhbmNlb2YgdHlwZSkge1xuICAgIC8vIFNjaGVtYS5leHRlbmQodHlwZSlcbiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pO1xuXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkge1xuICAgIC8vIFNjaGVtYS5leHRlbmQoWyB0eXBlMSwgdHlwZTIsIC4uLiBdKVxuICAgIGV4cGxpY2l0ID0gZXhwbGljaXQuY29uY2F0KGRlZmluaXRpb24pO1xuXG4gIH0gZWxzZSBpZiAoZGVmaW5pdGlvbiAmJiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uLmltcGxpY2l0KSB8fCBBcnJheS5pc0FycmF5KGRlZmluaXRpb24uZXhwbGljaXQpKSkge1xuICAgIC8vIFNjaGVtYS5leHRlbmQoeyBleHBsaWNpdDogWyB0eXBlMSwgdHlwZTIsIC4uLiBdLCBpbXBsaWNpdDogWyB0eXBlMSwgdHlwZTIsIC4uLiBdIH0pXG4gICAgaWYgKGRlZmluaXRpb24uaW1wbGljaXQpIGltcGxpY2l0ID0gaW1wbGljaXQuY29uY2F0KGRlZmluaXRpb24uaW1wbGljaXQpO1xuICAgIGlmIChkZWZpbml0aW9uLmV4cGxpY2l0KSBleHBsaWNpdCA9IGV4cGxpY2l0LmNvbmNhdChkZWZpbml0aW9uLmV4cGxpY2l0KTtcblxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1NjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sICcgK1xuICAgICAgJ29yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSknKTtcbiAgfVxuXG4gIGltcGxpY2l0LmZvckVhY2goZnVuY3Rpb24gKHR5cGUkMSkge1xuICAgIGlmICghKHR5cGUkMSBpbnN0YW5jZW9mIHR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUkMS5sb2FkS2luZCAmJiB0eXBlJDEubG9hZEtpbmQgIT09ICdzY2FsYXInKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSQxLm11bHRpKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdUaGVyZSBpcyBhIG11bHRpIHR5cGUgaW4gdGhlIGltcGxpY2l0IGxpc3Qgb2YgYSBzY2hlbWEuIE11bHRpIHRhZ3MgY2FuIG9ubHkgYmUgbGlzdGVkIGFzIGV4cGxpY2l0LicpO1xuICAgIH1cbiAgfSk7XG5cbiAgZXhwbGljaXQuZm9yRWFjaChmdW5jdGlvbiAodHlwZSQxKSB7XG4gICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1NwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7XG5cbiAgcmVzdWx0LmltcGxpY2l0ID0gKHRoaXMuaW1wbGljaXQgfHwgW10pLmNvbmNhdChpbXBsaWNpdCk7XG4gIHJlc3VsdC5leHBsaWNpdCA9ICh0aGlzLmV4cGxpY2l0IHx8IFtdKS5jb25jYXQoZXhwbGljaXQpO1xuXG4gIHJlc3VsdC5jb21waWxlZEltcGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCAnaW1wbGljaXQnKTtcbiAgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsICdleHBsaWNpdCcpO1xuICByZXN1bHQuY29tcGlsZWRUeXBlTWFwICA9IGNvbXBpbGVNYXAocmVzdWx0LmNvbXBpbGVkSW1wbGljaXQsIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0KTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuXG52YXIgc2NoZW1hID0gU2NoZW1hJDE7XG5cbnZhciBzdHIgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c3RyJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAnJzsgfVxufSk7XG5cbnZhciBzZXEgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2VxJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFtdOyB9XG59KTtcblxudmFyIG1hcCA9IG5ldyB0eXBlKCd0YWc6eWFtbC5vcmcsMjAwMjptYXAnLCB7XG4gIGtpbmQ6ICdtYXBwaW5nJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsgfVxufSk7XG5cbnZhciBmYWlsc2FmZSA9IG5ldyBzY2hlbWEoe1xuICBleHBsaWNpdDogW1xuICAgIHN0cixcbiAgICBzZXEsXG4gICAgbWFwXG4gIF1cbn0pO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE51bGwoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSAxICYmIGRhdGEgPT09ICd+JykgfHxcbiAgICAgICAgIChtYXggPT09IDQgJiYgKGRhdGEgPT09ICdudWxsJyB8fCBkYXRhID09PSAnTnVsbCcgfHwgZGF0YSA9PT0gJ05VTEwnKSk7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxOdWxsKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNOdWxsKG9iamVjdCkge1xuICByZXR1cm4gb2JqZWN0ID09PSBudWxsO1xufVxuXG52YXIgX251bGwgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bnVsbCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTnVsbCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCxcbiAgcHJlZGljYXRlOiBpc051bGwsXG4gIHJlcHJlc2VudDoge1xuICAgIGNhbm9uaWNhbDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ34nOyAgICB9LFxuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ251bGwnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ05VTEwnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ051bGwnOyB9LFxuICAgIGVtcHR5OiAgICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gJyc7ICAgICB9XG4gIH0sXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4oZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aDtcblxuICByZXR1cm4gKG1heCA9PT0gNCAmJiAoZGF0YSA9PT0gJ3RydWUnIHx8IGRhdGEgPT09ICdUcnVlJyB8fCBkYXRhID09PSAnVFJVRScpKSB8fFxuICAgICAgICAgKG1heCA9PT0gNSAmJiAoZGF0YSA9PT0gJ2ZhbHNlJyB8fCBkYXRhID09PSAnRmFsc2UnIHx8IGRhdGEgPT09ICdGQUxTRScpKTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEJvb2xlYW4oZGF0YSkge1xuICByZXR1cm4gZGF0YSA9PT0gJ3RydWUnIHx8XG4gICAgICAgICBkYXRhID09PSAnVHJ1ZScgfHxcbiAgICAgICAgIGRhdGEgPT09ICdUUlVFJztcbn1cblxuZnVuY3Rpb24gaXNCb29sZWFuKG9iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICdbb2JqZWN0IEJvb2xlYW5dJztcbn1cblxudmFyIGJvb2wgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6Ym9vbCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sQm9vbGVhbixcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sQm9vbGVhbixcbiAgcHJlZGljYXRlOiBpc0Jvb2xlYW4sXG4gIHJlcHJlc2VudDoge1xuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ3RydWUnIDogJ2ZhbHNlJzsgfSxcbiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICdUUlVFJyA6ICdGQUxTRSc7IH0sXG4gICAgY2FtZWxjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAnVHJ1ZScgOiAnRmFsc2UnOyB9XG4gIH0sXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuXG5mdW5jdGlvbiBpc0hleENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpIHx8XG4gICAgICAgICAoKDB4NDEvKiBBICovIDw9IGMpICYmIChjIDw9IDB4NDYvKiBGICovKSkgfHxcbiAgICAgICAgICgoMHg2MS8qIGEgKi8gPD0gYykgJiYgKGMgPD0gMHg2Ni8qIGYgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzNy8qIDcgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGgsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBoYXNEaWdpdHMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIGlmICghbWF4KSByZXR1cm4gZmFsc2U7XG5cbiAgY2ggPSBkYXRhW2luZGV4XTtcblxuICAvLyBzaWduXG4gIGlmIChjaCA9PT0gJy0nIHx8IGNoID09PSAnKycpIHtcbiAgICBjaCA9IGRhdGFbKytpbmRleF07XG4gIH1cblxuICBpZiAoY2ggPT09ICcwJykge1xuICAgIC8vIDBcbiAgICBpZiAoaW5kZXggKyAxID09PSBtYXgpIHJldHVybiB0cnVlO1xuICAgIGNoID0gZGF0YVsrK2luZGV4XTtcblxuICAgIC8vIGJhc2UgMiwgYmFzZSA4LCBiYXNlIDE2XG5cbiAgICBpZiAoY2ggPT09ICdiJykge1xuICAgICAgLy8gYmFzZSAyXG4gICAgICBpbmRleCsrO1xuXG4gICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSAnXycpIGNvbnRpbnVlO1xuICAgICAgICBpZiAoY2ggIT09ICcwJyAmJiBjaCAhPT0gJzEnKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAnXyc7XG4gICAgfVxuXG5cbiAgICBpZiAoY2ggPT09ICd4Jykge1xuICAgICAgLy8gYmFzZSAxNlxuICAgICAgaW5kZXgrKztcblxuICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICAgIGlmIChjaCA9PT0gJ18nKSBjb250aW51ZTtcbiAgICAgICAgaWYgKCFpc0hleENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICdfJztcbiAgICB9XG5cblxuICAgIGlmIChjaCA9PT0gJ28nKSB7XG4gICAgICAvLyBiYXNlIDhcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgY29udGludWU7XG4gICAgICAgIGlmICghaXNPY3RDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAnXyc7XG4gICAgfVxuICB9XG5cbiAgLy8gYmFzZSAxMCAoZXhjZXB0IDApXG5cbiAgLy8gdmFsdWUgc2hvdWxkIG5vdCBzdGFydCB3aXRoIGBfYDtcbiAgaWYgKGNoID09PSAnXycpIHJldHVybiBmYWxzZTtcblxuICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgIGlmIChjaCA9PT0gJ18nKSBjb250aW51ZTtcbiAgICBpZiAoIWlzRGVjQ29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICB9XG5cbiAgLy8gU2hvdWxkIGhhdmUgZGlnaXRzIGFuZCBzaG91bGQgbm90IGVuZCB3aXRoIGBfYFxuICBpZiAoIWhhc0RpZ2l0cyB8fCBjaCA9PT0gJ18nKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoO1xuXG4gIGlmICh2YWx1ZS5pbmRleE9mKCdfJykgIT09IC0xKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9fL2csICcnKTtcbiAgfVxuXG4gIGNoID0gdmFsdWVbMF07XG5cbiAgaWYgKGNoID09PSAnLScgfHwgY2ggPT09ICcrJykge1xuICAgIGlmIChjaCA9PT0gJy0nKSBzaWduID0gLTE7XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBjaCA9IHZhbHVlWzBdO1xuICB9XG5cbiAgaWYgKHZhbHVlID09PSAnMCcpIHJldHVybiAwO1xuXG4gIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgaWYgKHZhbHVlWzFdID09PSAnYicpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDIpO1xuICAgIGlmICh2YWx1ZVsxXSA9PT0gJ3gnKSByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7XG4gICAgaWYgKHZhbHVlWzFdID09PSAnbycpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpO1xuICB9XG5cbiAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZSwgMTApO1xufVxuXG5mdW5jdGlvbiBpc0ludGVnZXIob2JqZWN0KSB7XG4gIHJldHVybiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpID09PSAnW29iamVjdCBOdW1iZXJdJyAmJlxuICAgICAgICAgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTtcbn1cblxudmFyIGludCA9IG5ldyB0eXBlKCd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEludGVnZXIsXG4gIHByZWRpY2F0ZTogaXNJbnRlZ2VyLFxuICByZXByZXNlbnQ6IHtcbiAgICBiaW5hcnk6ICAgICAgZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqID49IDAgPyAnMGInICsgb2JqLnRvU3RyaW5nKDIpIDogJy0wYicgKyBvYmoudG9TdHJpbmcoMikuc2xpY2UoMSk7IH0sXG4gICAgb2N0YWw6ICAgICAgIGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiA+PSAwID8gJzBvJyAgKyBvYmoudG9TdHJpbmcoOCkgOiAnLTBvJyAgKyBvYmoudG9TdHJpbmcoOCkuc2xpY2UoMSk7IH0sXG4gICAgZGVjaW1hbDogICAgIGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iai50b1N0cmluZygxMCk7IH0sXG4gICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuICAgIGhleGFkZWNpbWFsOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogPj0gMCA/ICcweCcgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgOiAgJy0weCcgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnZGVjaW1hbCcsXG4gIHN0eWxlQWxpYXNlczoge1xuICAgIGJpbmFyeTogICAgICBbIDIsICAnYmluJyBdLFxuICAgIG9jdGFsOiAgICAgICBbIDgsICAnb2N0JyBdLFxuICAgIGRlY2ltYWw6ICAgICBbIDEwLCAnZGVjJyBdLFxuICAgIGhleGFkZWNpbWFsOiBbIDE2LCAnaGV4JyBdXG4gIH1cbn0pO1xuXG52YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cChcbiAgLy8gMi41ZTQsIDIuNSBhbmQgaW50ZWdlcnNcbiAgJ14oPzpbLStdPyg/OlswLTldWzAtOV9dKikoPzpcXFxcLlswLTlfXSopPyg/OltlRV1bLStdP1swLTldKyk/JyArXG4gIC8vIC4yZTQsIC4yXG4gIC8vIHNwZWNpYWwgY2FzZSwgc2VlbXMgbm90IGZyb20gc3BlY1xuICAnfFxcXFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/JyArXG4gIC8vIC5pbmZcbiAgJ3xbLStdP1xcXFwuKD86aW5mfEluZnxJTkYpJyArXG4gIC8vIC5uYW5cbiAgJ3xcXFxcLig/Om5hbnxOYU58TkFOKSkkJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHxcbiAgICAgIC8vIFF1aWNrIGhhY2sgdG8gbm90IGFsbG93IGludGVnZXJzIGVuZCB3aXRoIGBfYFxuICAgICAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZFxuICAgICAgZGF0YVtkYXRhLmxlbmd0aCAtIDFdID09PSAnXycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEZsb2F0KGRhdGEpIHtcbiAgdmFyIHZhbHVlLCBzaWduO1xuXG4gIHZhbHVlICA9IGRhdGEucmVwbGFjZSgvXy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgc2lnbiAgID0gdmFsdWVbMF0gPT09ICctJyA/IC0xIDogMTtcblxuICBpZiAoJystJy5pbmRleE9mKHZhbHVlWzBdKSA+PSAwKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gJy5pbmYnKSB7XG4gICAgcmV0dXJuIChzaWduID09PSAxKSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTtcblxuICB9IGVsc2UgaWYgKHZhbHVlID09PSAnLm5hbicpIHtcbiAgICByZXR1cm4gTmFOO1xuICB9XG4gIHJldHVybiBzaWduICogcGFyc2VGbG9hdCh2YWx1ZSwgMTApO1xufVxuXG5cbnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvO1xuXG5mdW5jdGlvbiByZXByZXNlbnRZYW1sRmxvYXQob2JqZWN0LCBzdHlsZSkge1xuICB2YXIgcmVzO1xuXG4gIGlmIChpc05hTihvYmplY3QpKSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgY2FzZSAnbG93ZXJjYXNlJzogcmV0dXJuICcubmFuJztcbiAgICAgIGNhc2UgJ3VwcGVyY2FzZSc6IHJldHVybiAnLk5BTic7XG4gICAgICBjYXNlICdjYW1lbGNhc2UnOiByZXR1cm4gJy5OYU4nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiAnLmluZic7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gJy5JTkYnO1xuICAgICAgY2FzZSAnY2FtZWxjYXNlJzogcmV0dXJuICcuSW5mJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSBvYmplY3QpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICBjYXNlICdsb3dlcmNhc2UnOiByZXR1cm4gJy0uaW5mJztcbiAgICAgIGNhc2UgJ3VwcGVyY2FzZSc6IHJldHVybiAnLS5JTkYnO1xuICAgICAgY2FzZSAnY2FtZWxjYXNlJzogcmV0dXJuICctLkluZic7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKSB7XG4gICAgcmV0dXJuICctMC4wJztcbiAgfVxuXG4gIHJlcyA9IG9iamVjdC50b1N0cmluZygxMCk7XG5cbiAgLy8gSlMgc3RyaW5naWZpZXIgY2FuIGJ1aWxkIHNjaWVudGlmaWMgZm9ybWF0IHdpdGhvdXQgZG90czogNWUtMTAwLFxuICAvLyB3aGlsZSBZQU1MIHJlcXVyZXMgZG90OiA1LmUtMTAwLiBGaXggaXQgd2l0aCBzaW1wbGUgaGFja1xuXG4gIHJldHVybiBTQ0lFTlRJRklDX1dJVEhPVVRfRE9ULnRlc3QocmVzKSA/IHJlcy5yZXBsYWNlKCdlJywgJy5lJykgOiByZXM7XG59XG5cbmZ1bmN0aW9uIGlzRmxvYXQob2JqZWN0KSB7XG4gIHJldHVybiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICdbb2JqZWN0IE51bWJlcl0nKSAmJlxuICAgICAgICAgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xufVxuXG52YXIgZmxvYXQgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6ZmxvYXQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxGbG9hdCxcbiAgcHJlZGljYXRlOiBpc0Zsb2F0LFxuICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG5cbnZhciBqc29uID0gZmFpbHNhZmUuZXh0ZW5kKHtcbiAgaW1wbGljaXQ6IFtcbiAgICBfbnVsbCxcbiAgICBib29sLFxuICAgIGludCxcbiAgICBmbG9hdFxuICBdXG59KTtcblxudmFyIGNvcmUgPSBqc29uO1xuXG52YXIgWUFNTF9EQVRFX1JFR0VYUCA9IG5ldyBSZWdFeHAoXG4gICdeKFswLTldWzAtOV1bMC05XVswLTldKScgICAgICAgICAgKyAvLyBbMV0geWVhclxuICAnLShbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzJdIG1vbnRoXG4gICctKFswLTldWzAtOV0pJCcpOyAgICAgICAgICAgICAgICAgICAvLyBbM10gZGF5XG5cbnZhciBZQU1MX1RJTUVTVEFNUF9SRUdFWFAgPSBuZXcgUmVnRXhwKFxuICAnXihbMC05XVswLTldWzAtOV1bMC05XSknICAgICAgICAgICsgLy8gWzFdIHllYXJcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFsyXSBtb250aFxuICAnLShbMC05XVswLTldPyknICAgICAgICAgICAgICAgICAgICsgLy8gWzNdIGRheVxuICAnKD86W1R0XXxbIFxcXFx0XSspJyAgICAgICAgICAgICAgICAgKyAvLyAuLi5cbiAgJyhbMC05XVswLTldPyknICAgICAgICAgICAgICAgICAgICArIC8vIFs0XSBob3VyXG4gICc6KFswLTldWzAtOV0pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNV0gbWludXRlXG4gICc6KFswLTldWzAtOV0pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNl0gc2Vjb25kXG4gICcoPzpcXFxcLihbMC05XSopKT8nICAgICAgICAgICAgICAgICArIC8vIFs3XSBmcmFjdGlvblxuICAnKD86WyBcXFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KScgKyAvLyBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyXG4gICcoPzo6KFswLTldWzAtOV0pKT8pKT8kJyk7ICAgICAgICAgICAvLyBbMTFdIHR6X21pbnV0ZVxuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFRpbWVzdGFtcChkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlO1xuICBpZiAoWUFNTF9USU1FU1RBTVBfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICB2YXIgbWF0Y2gsIHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBmcmFjdGlvbiA9IDAsXG4gICAgICBkZWx0YSA9IG51bGwsIHR6X2hvdXIsIHR6X21pbnV0ZSwgZGF0ZTtcblxuICBtYXRjaCA9IFlBTUxfREFURV9SRUdFWFAuZXhlYyhkYXRhKTtcbiAgaWYgKG1hdGNoID09PSBudWxsKSBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpO1xuXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCdEYXRlIHJlc29sdmUgZXJyb3InKTtcblxuICAvLyBtYXRjaDogWzFdIHllYXIgWzJdIG1vbnRoIFszXSBkYXlcblxuICB5ZWFyID0gKyhtYXRjaFsxXSk7XG4gIG1vbnRoID0gKyhtYXRjaFsyXSkgLSAxOyAvLyBKUyBtb250aCBzdGFydHMgd2l0aCAwXG4gIGRheSA9ICsobWF0Y2hbM10pO1xuXG4gIGlmICghbWF0Y2hbNF0pIHsgLy8gbm8gaG91clxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5KSk7XG4gIH1cblxuICAvLyBtYXRjaDogWzRdIGhvdXIgWzVdIG1pbnV0ZSBbNl0gc2Vjb25kIFs3XSBmcmFjdGlvblxuXG4gIGhvdXIgPSArKG1hdGNoWzRdKTtcbiAgbWludXRlID0gKyhtYXRjaFs1XSk7XG4gIHNlY29uZCA9ICsobWF0Y2hbNl0pO1xuXG4gIGlmIChtYXRjaFs3XSkge1xuICAgIGZyYWN0aW9uID0gbWF0Y2hbN10uc2xpY2UoMCwgMyk7XG4gICAgd2hpbGUgKGZyYWN0aW9uLmxlbmd0aCA8IDMpIHsgLy8gbWlsbGktc2Vjb25kc1xuICAgICAgZnJhY3Rpb24gKz0gJzAnO1xuICAgIH1cbiAgICBmcmFjdGlvbiA9ICtmcmFjdGlvbjtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyIFsxMV0gdHpfbWludXRlXG5cbiAgaWYgKG1hdGNoWzldKSB7XG4gICAgdHpfaG91ciA9ICsobWF0Y2hbMTBdKTtcbiAgICB0el9taW51dGUgPSArKG1hdGNoWzExXSB8fCAwKTtcbiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNjAwMDA7IC8vIGRlbHRhIGluIG1pbGktc2Vjb25kc1xuICAgIGlmIChtYXRjaFs5XSA9PT0gJy0nKSBkZWx0YSA9IC1kZWx0YTtcbiAgfVxuXG4gIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24pKTtcblxuICBpZiAoZGVsdGEpIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSAtIGRlbHRhKTtcblxuICByZXR1cm4gZGF0ZTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgcmV0dXJuIG9iamVjdC50b0lTT1N0cmluZygpO1xufVxuXG52YXIgdGltZXN0YW1wID0gbmV3IHR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOnRpbWVzdGFtcCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sVGltZXN0YW1wLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAsXG4gIGluc3RhbmNlT2Y6IERhdGUsXG4gIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbFRpbWVzdGFtcFxufSk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2UoZGF0YSkge1xuICByZXR1cm4gZGF0YSA9PT0gJzw8JyB8fCBkYXRhID09PSBudWxsO1xufVxuXG52YXIgbWVyZ2UgPSBuZXcgdHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bWVyZ2UnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlXG59KTtcblxuLyplc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlKi9cblxuXG5cblxuXG4vLyBbIDY0LCA2NSwgNjYgXSAtPiBbIHBhZGRpbmcsIENSLCBMRiBdXG52YXIgQkFTRTY0X01BUCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxcblxccic7XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHZhciBjb2RlLCBpZHgsIGJpdGxlbiA9IDAsIG1heCA9IGRhdGEubGVuZ3RoLCBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgb25lIGJ5IG9uZS5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuXG4gICAgLy8gU2tpcCBDUi9MRlxuICAgIGlmIChjb2RlID4gNjQpIGNvbnRpbnVlO1xuXG4gICAgLy8gRmFpbCBvbiBpbGxlZ2FsIGNoYXJhY3RlcnNcbiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTtcblxuICAgIGJpdGxlbiArPSA2O1xuICB9XG5cbiAgLy8gSWYgdGhlcmUgYXJlIGFueSBiaXRzIGxlZnQsIHNvdXJjZSB3YXMgY29ycnVwdGVkXG4gIHJldHVybiAoYml0bGVuICUgOCkgPT09IDA7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxCaW5hcnkoZGF0YSkge1xuICB2YXIgaWR4LCB0YWlsYml0cyxcbiAgICAgIGlucHV0ID0gZGF0YS5yZXBsYWNlKC9bXFxyXFxuPV0vZywgJycpLCAvLyByZW1vdmUgQ1IvTEYgJiBwYWRkaW5nIHRvIHNpbXBsaWZ5IHNjYW5cbiAgICAgIG1heCA9IGlucHV0Lmxlbmd0aCxcbiAgICAgIG1hcCA9IEJBU0U2NF9NQVAsXG4gICAgICBiaXRzID0gMCxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIC8vIENvbGxlY3QgYnkgNio0IGJpdHMgKDMgYnl0ZXMpXG5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgaWYgKChpZHggJSA0ID09PSAwKSAmJiBpZHgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDE2KSAmIDB4RkYpO1xuICAgICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gOCkgJiAweEZGKTtcbiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAweEZGKTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgNikgfCBtYXAuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7XG4gIH1cblxuICAvLyBEdW1wIHRhaWxcblxuICB0YWlsYml0cyA9IChtYXggJSA0KSAqIDY7XG5cbiAgaWYgKHRhaWxiaXRzID09PSAwKSB7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTYpICYgMHhGRik7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gOCkgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaChiaXRzICYgMHhGRik7XG4gIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDE4KSB7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTApICYgMHhGRik7XG4gICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMikgJiAweEZGKTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTIpIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiA0KSAmIDB4RkYpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxCaW5hcnkob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHZhciByZXN1bHQgPSAnJywgYml0cyA9IDAsIGlkeCwgdGFpbCxcbiAgICAgIG1heCA9IG9iamVjdC5sZW5ndGgsXG4gICAgICBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgZXZlcnkgdGhyZWUgYnl0ZXMgdG8gNCBBU0NJSSBjaGFyYWN0ZXJzLlxuXG4gIGZvciAoaWR4ID0gMDsgaWR4IDwgbWF4OyBpZHgrKykge1xuICAgIGlmICgoaWR4ICUgMyA9PT0gMCkgJiYgaWR4KSB7XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDE4KSAmIDB4M0ZdO1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMikgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbYml0cyAmIDB4M0ZdO1xuICAgIH1cblxuICAgIGJpdHMgPSAoYml0cyA8PCA4KSArIG9iamVjdFtpZHhdO1xuICB9XG5cbiAgLy8gRHVtcCB0YWlsXG5cbiAgdGFpbCA9IG1heCAlIDM7XG5cbiAgaWYgKHRhaWwgPT09IDApIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDE4KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiA2KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbYml0cyAmIDB4M0ZdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDIpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEwKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzIDw8IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkge1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzIDw8IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gICAgcmVzdWx0ICs9IG1hcFs2NF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBpc0JpbmFyeShvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAgJ1tvYmplY3QgVWludDhBcnJheV0nO1xufVxuXG52YXIgYmluYXJ5ID0gbmV3IHR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmJpbmFyeScsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sQmluYXJ5LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCaW5hcnksXG4gIHByZWRpY2F0ZTogaXNCaW5hcnksXG4gIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEJpbmFyeVxufSk7XG5cbnZhciBfaGFzT3duUHJvcGVydHkkMyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX3RvU3RyaW5nJDIgICAgICAgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbE9tYXAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSxcbiAgICAgIG9iamVjdCA9IGRhdGE7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG4gICAgcGFpckhhc0tleSA9IGZhbHNlO1xuXG4gICAgaWYgKF90b1N0cmluZyQyLmNhbGwocGFpcikgIT09ICdbb2JqZWN0IE9iamVjdF0nKSByZXR1cm4gZmFsc2U7XG5cbiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikge1xuICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQzLmNhbGwocGFpciwgcGFpcktleSkpIHtcbiAgICAgICAgaWYgKCFwYWlySGFzS2V5KSBwYWlySGFzS2V5ID0gdHJ1ZTtcbiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFwYWlySGFzS2V5KSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAob2JqZWN0S2V5cy5pbmRleE9mKHBhaXJLZXkpID09PSAtMSkgb2JqZWN0S2V5cy5wdXNoKHBhaXJLZXkpO1xuICAgIGVsc2UgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxPbWFwKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107XG59XG5cbnZhciBvbWFwID0gbmV3IHR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOm9tYXAnLCB7XG4gIGtpbmQ6ICdzZXF1ZW5jZScsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sT21hcFxufSk7XG5cbnZhciBfdG9TdHJpbmckMSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sUGFpcnMoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCxcbiAgICAgIG9iamVjdCA9IGRhdGE7XG5cbiAgcmVzdWx0ID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuXG4gICAgaWYgKF90b1N0cmluZyQxLmNhbGwocGFpcikgIT09ICdbb2JqZWN0IE9iamVjdF0nKSByZXR1cm4gZmFsc2U7XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpIHJldHVybiBmYWxzZTtcblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIFtdO1xuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTtcblxuICAgIHJlc3VsdFtpbmRleF0gPSBbIGtleXNbMF0sIHBhaXJba2V5c1swXV0gXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbnZhciBwYWlycyA9IG5ldyB0eXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sUGFpcnNcbn0pO1xuXG52YXIgX2hhc093blByb3BlcnR5JDIgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFNldChkYXRhKSB7XG4gIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcblxuICB2YXIga2V5LCBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkkMi5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgaWYgKG9iamVjdFtrZXldICE9PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQoZGF0YSkge1xuICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTtcbn1cblxudmFyIHNldCA9IG5ldyB0eXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpzZXQnLCB7XG4gIGtpbmQ6ICdtYXBwaW5nJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFNldFxufSk7XG5cbnZhciBfZGVmYXVsdCA9IGNvcmUuZXh0ZW5kKHtcbiAgaW1wbGljaXQ6IFtcbiAgICB0aW1lc3RhbXAsXG4gICAgbWVyZ2VcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICBiaW5hcnksXG4gICAgb21hcCxcbiAgICBwYWlycyxcbiAgICBzZXRcbiAgXVxufSk7XG5cbi8qZXNsaW50LWRpc2FibGUgbWF4LWxlbixuby11c2UtYmVmb3JlLWRlZmluZSovXG5cblxuXG5cblxuXG5cbnZhciBfaGFzT3duUHJvcGVydHkkMSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cblxudmFyIENPTlRFWFRfRkxPV19JTiAgID0gMTtcbnZhciBDT05URVhUX0ZMT1dfT1VUICA9IDI7XG52YXIgQ09OVEVYVF9CTE9DS19JTiAgPSAzO1xudmFyIENPTlRFWFRfQkxPQ0tfT1VUID0gNDtcblxuXG52YXIgQ0hPTVBJTkdfQ0xJUCAgPSAxO1xudmFyIENIT01QSU5HX1NUUklQID0gMjtcbnZhciBDSE9NUElOR19LRUVQICA9IDM7XG5cblxudmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSAgICAgICAgID0gL1tcXHgwMC1cXHgwOFxceDBCXFx4MENcXHgwRS1cXHgxRlxceDdGLVxceDg0XFx4ODYtXFx4OUZcXHVGRkZFXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0vO1xudmFyIFBBVFRFUk5fTk9OX0FTQ0lJX0xJTkVfQlJFQUtTID0gL1tcXHg4NVxcdTIwMjhcXHUyMDI5XS87XG52YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgICAgICAgPSAvWyxcXFtcXF1cXHtcXH1dLztcbnZhciBQQVRURVJOX1RBR19IQU5ETEUgICAgICAgICAgICA9IC9eKD86IXwhIXwhW2EtelxcLV0rISkkL2k7XG52YXIgUEFUVEVSTl9UQUdfVVJJICAgICAgICAgICAgICAgPSAvXig/OiF8W14sXFxbXFxdXFx7XFx9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelxcLSM7XFwvXFw/OkAmPVxcK1xcJCxfXFwuIX5cXConXFwoXFwpXFxbXFxdXSkqJC9pO1xuXG5cbmZ1bmN0aW9uIF9jbGFzcyhvYmopIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopOyB9XG5cbmZ1bmN0aW9uIGlzX0VPTChjKSB7XG4gIHJldHVybiAoYyA9PT0gMHgwQS8qIExGICovKSB8fCAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV0hJVEVfU1BBQ0UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8IChjID09PSAweDIwLyogU3BhY2UgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19XU19PUl9FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MDkvKiBUYWIgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgyMC8qIFNwYWNlICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MEEvKiBMRiAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBELyogQ1IgKi8pO1xufVxuXG5mdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7XG4gIHJldHVybiBjID09PSAweDJDLyogLCAqLyB8fFxuICAgICAgICAgYyA9PT0gMHg1Qi8qIFsgKi8gfHxcbiAgICAgICAgIGMgPT09IDB4NUQvKiBdICovIHx8XG4gICAgICAgICBjID09PSAweDdCLyogeyAqLyB8fFxuICAgICAgICAgYyA9PT0gMHg3RC8qIH0gKi87XG59XG5cbmZ1bmN0aW9uIGZyb21IZXhDb2RlKGMpIHtcbiAgdmFyIGxjO1xuXG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgLyplc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlKi9cbiAgbGMgPSBjIHwgMHgyMDtcblxuICBpZiAoKDB4NjEvKiBhICovIDw9IGxjKSAmJiAobGMgPD0gMHg2Ni8qIGYgKi8pKSB7XG4gICAgcmV0dXJuIGxjIC0gMHg2MSArIDEwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVkSGV4TGVuKGMpIHtcbiAgaWYgKGMgPT09IDB4NzgvKiB4ICovKSB7IHJldHVybiAyOyB9XG4gIGlmIChjID09PSAweDc1LyogdSAqLykgeyByZXR1cm4gNDsgfVxuICBpZiAoYyA9PT0gMHg1NS8qIFUgKi8pIHsgcmV0dXJuIDg7IH1cbiAgcmV0dXJuIDA7XG59XG5cbmZ1bmN0aW9uIGZyb21EZWNpbWFsQ29kZShjKSB7XG4gIGlmICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKSB7XG4gICAgcmV0dXJuIGMgLSAweDMwO1xuICB9XG5cbiAgcmV0dXJuIC0xO1xufVxuXG5mdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuICByZXR1cm4gKGMgPT09IDB4MzAvKiAwICovKSA/ICdcXHgwMCcgOlxuICAgICAgICAoYyA9PT0gMHg2MS8qIGEgKi8pID8gJ1xceDA3JyA6XG4gICAgICAgIChjID09PSAweDYyLyogYiAqLykgPyAnXFx4MDgnIDpcbiAgICAgICAgKGMgPT09IDB4NzQvKiB0ICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHgwOS8qIFRhYiAqLykgPyAnXFx4MDknIDpcbiAgICAgICAgKGMgPT09IDB4NkUvKiBuICovKSA/ICdcXHgwQScgOlxuICAgICAgICAoYyA9PT0gMHg3Ni8qIHYgKi8pID8gJ1xceDBCJyA6XG4gICAgICAgIChjID09PSAweDY2LyogZiAqLykgPyAnXFx4MEMnIDpcbiAgICAgICAgKGMgPT09IDB4NzIvKiByICovKSA/ICdcXHgwRCcgOlxuICAgICAgICAoYyA9PT0gMHg2NS8qIGUgKi8pID8gJ1xceDFCJyA6XG4gICAgICAgIChjID09PSAweDIwLyogU3BhY2UgKi8pID8gJyAnIDpcbiAgICAgICAgKGMgPT09IDB4MjIvKiBcIiAqLykgPyAnXFx4MjInIDpcbiAgICAgICAgKGMgPT09IDB4MkYvKiAvICovKSA/ICcvJyA6XG4gICAgICAgIChjID09PSAweDVDLyogXFwgKi8pID8gJ1xceDVDJyA6XG4gICAgICAgIChjID09PSAweDRFLyogTiAqLykgPyAnXFx4ODUnIDpcbiAgICAgICAgKGMgPT09IDB4NUYvKiBfICovKSA/ICdcXHhBMCcgOlxuICAgICAgICAoYyA9PT0gMHg0Qy8qIEwgKi8pID8gJ1xcdTIwMjgnIDpcbiAgICAgICAgKGMgPT09IDB4NTAvKiBQICovKSA/ICdcXHUyMDI5JyA6ICcnO1xufVxuXG5mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7XG4gIGlmIChjIDw9IDB4RkZGRikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIC8vIEVuY29kZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJcbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX1UuMkIwMTAwMDBfdG9fVS4yQjEwRkZGRlxuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShcbiAgICAoKGMgLSAweDAxMDAwMCkgPj4gMTApICsgMHhEODAwLFxuICAgICgoYyAtIDB4MDEwMDAwKSAmIDB4MDNGRikgKyAweERDMDBcbiAgKTtcbn1cblxudmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7IC8vIGludGVnZXIsIGZvciBmYXN0IGFjY2Vzc1xudmFyIHNpbXBsZUVzY2FwZU1hcCA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpO1xufVxuXG5cbmZ1bmN0aW9uIFN0YXRlJDEoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdGhpcy5pbnB1dCA9IGlucHV0O1xuXG4gIHRoaXMuZmlsZW5hbWUgID0gb3B0aW9uc1snZmlsZW5hbWUnXSAgfHwgbnVsbDtcbiAgdGhpcy5zY2hlbWEgICAgPSBvcHRpb25zWydzY2hlbWEnXSAgICB8fCBfZGVmYXVsdDtcbiAgdGhpcy5vbldhcm5pbmcgPSBvcHRpb25zWydvbldhcm5pbmcnXSB8fCBudWxsO1xuICAvLyAoSGlkZGVuKSBSZW1vdmU/IG1ha2VzIHRoZSBsb2FkZXIgdG8gZXhwZWN0IFlBTUwgMS4xIGRvY3VtZW50c1xuICAvLyBpZiBzdWNoIGRvY3VtZW50cyBoYXZlIG5vIGV4cGxpY2l0ICVZQU1MIGRpcmVjdGl2ZVxuICB0aGlzLmxlZ2FjeSAgICA9IG9wdGlvbnNbJ2xlZ2FjeSddICAgIHx8IGZhbHNlO1xuXG4gIHRoaXMuanNvbiAgICAgID0gb3B0aW9uc1snanNvbiddICAgICAgfHwgZmFsc2U7XG4gIHRoaXMubGlzdGVuZXIgID0gb3B0aW9uc1snbGlzdGVuZXInXSAgfHwgbnVsbDtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLnR5cGVNYXAgICAgICAgPSB0aGlzLnNjaGVtYS5jb21waWxlZFR5cGVNYXA7XG5cbiAgdGhpcy5sZW5ndGggICAgID0gaW5wdXQubGVuZ3RoO1xuICB0aGlzLnBvc2l0aW9uICAgPSAwO1xuICB0aGlzLmxpbmUgICAgICAgPSAwO1xuICB0aGlzLmxpbmVTdGFydCAgPSAwO1xuICB0aGlzLmxpbmVJbmRlbnQgPSAwO1xuXG4gIC8vIHBvc2l0aW9uIG9mIGZpcnN0IGxlYWRpbmcgdGFiIGluIHRoZSBjdXJyZW50IGxpbmUsXG4gIC8vIHVzZWQgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyB0YWJzIGluIHRoZSBpbmRlbnRhdGlvblxuICB0aGlzLmZpcnN0VGFiSW5MaW5lID0gLTE7XG5cbiAgdGhpcy5kb2N1bWVudHMgPSBbXTtcblxuICAvKlxuICB0aGlzLnZlcnNpb247XG4gIHRoaXMuY2hlY2tMaW5lQnJlYWtzO1xuICB0aGlzLnRhZ01hcDtcbiAgdGhpcy5hbmNob3JNYXA7XG4gIHRoaXMudGFnO1xuICB0aGlzLmFuY2hvcjtcbiAgdGhpcy5raW5kO1xuICB0aGlzLnJlc3VsdDsqL1xuXG59XG5cblxuZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICB2YXIgbWFyayA9IHtcbiAgICBuYW1lOiAgICAgc3RhdGUuZmlsZW5hbWUsXG4gICAgYnVmZmVyOiAgIHN0YXRlLmlucHV0LnNsaWNlKDAsIC0xKSwgLy8gb21pdCB0cmFpbGluZyBcXDBcbiAgICBwb3NpdGlvbjogc3RhdGUucG9zaXRpb24sXG4gICAgbGluZTogICAgIHN0YXRlLmxpbmUsXG4gICAgY29sdW1uOiAgIHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0XG4gIH07XG5cbiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTtcblxuICByZXR1cm4gbmV3IGV4Y2VwdGlvbihtZXNzYWdlLCBtYXJrKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICB0aHJvdyBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7XG4gIGlmIChzdGF0ZS5vbldhcm5pbmcpIHtcbiAgICBzdGF0ZS5vbldhcm5pbmcuY2FsbChudWxsLCBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKSk7XG4gIH1cbn1cblxuXG52YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7XG5cbiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykge1xuXG4gICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7XG5cbiAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mICVZQU1MIGRpcmVjdGl2ZScpO1xuICAgIH1cblxuICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ1lBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG5cbiAgICBtYXRjaCA9IC9eKFswLTldKylcXC4oWzAtOV0rKSQvLmV4ZWMoYXJnc1swXSk7XG5cbiAgICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZScpO1xuICAgIH1cblxuICAgIG1ham9yID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICBtaW5vciA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG5cbiAgICBpZiAobWFqb3IgIT09IDEpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCcpO1xuICAgIH1cblxuICAgIHN0YXRlLnZlcnNpb24gPSBhcmdzWzBdO1xuICAgIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IChtaW5vciA8IDIpO1xuXG4gICAgaWYgKG1pbm9yICE9PSAxICYmIG1pbm9yICE9PSAyKSB7XG4gICAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICd1bnN1cHBvcnRlZCBZQU1MIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50Jyk7XG4gICAgfVxuICB9LFxuXG4gIFRBRzogZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG5cbiAgICB2YXIgaGFuZGxlLCBwcmVmaXg7XG5cbiAgICBpZiAoYXJncy5sZW5ndGggIT09IDIpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzJyk7XG4gICAgfVxuXG4gICAgaGFuZGxlID0gYXJnc1swXTtcbiAgICBwcmVmaXggPSBhcmdzWzFdO1xuXG4gICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdChoYW5kbGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaWxsLWZvcm1lZCB0YWcgaGFuZGxlIChmaXJzdCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUnKTtcbiAgICB9XG5cbiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0aGVyZSBpcyBhIHByZXZpb3VzbHkgZGVjbGFyZWQgc3VmZml4IGZvciBcIicgKyBoYW5kbGUgKyAnXCIgdGFnIGhhbmRsZScpO1xuICAgIH1cblxuICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZScpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBwcmVmaXggPSBkZWNvZGVVUklDb21wb25lbnQocHJlZml4KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogJyArIHByZWZpeCk7XG4gICAgfVxuXG4gICAgc3RhdGUudGFnTWFwW2hhbmRsZV0gPSBwcmVmaXg7XG4gIH1cbn07XG5cblxuZnVuY3Rpb24gY2FwdHVyZVNlZ21lbnQoc3RhdGUsIHN0YXJ0LCBlbmQsIGNoZWNrSnNvbikge1xuICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuXG4gIGlmIChzdGFydCA8IGVuZCkge1xuICAgIF9yZXN1bHQgPSBzdGF0ZS5pbnB1dC5zbGljZShzdGFydCwgZW5kKTtcblxuICAgIGlmIChjaGVja0pzb24pIHtcbiAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoOyBfcG9zaXRpb24gPCBfbGVuZ3RoOyBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICAgIGlmICghKF9jaGFyYWN0ZXIgPT09IDB4MDkgfHxcbiAgICAgICAgICAgICAgKDB4MjAgPD0gX2NoYXJhY3RlciAmJiBfY2hhcmFjdGVyIDw9IDB4MTBGRkZGKSkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZXhwZWN0ZWQgdmFsaWQgSlNPTiBjaGFyYWN0ZXInKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoUEFUVEVSTl9OT05fUFJJTlRBQkxFLnRlc3QoX3Jlc3VsdCkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0aGUgc3RyZWFtIGNvbnRhaW5zIG5vbi1wcmludGFibGUgY2hhcmFjdGVycycpO1xuICAgIH1cblxuICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlTWFwcGluZ3Moc3RhdGUsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIG92ZXJyaWRhYmxlS2V5cykge1xuICB2YXIgc291cmNlS2V5cywga2V5LCBpbmRleCwgcXVhbnRpdHk7XG5cbiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZScpO1xuICB9XG5cbiAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcblxuICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkge1xuICAgICAgZGVzdGluYXRpb25ba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgb3ZlcnJpZGFibGVLZXlzW2tleV0gPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLFxuICBzdGFydExpbmUsIHN0YXJ0TGluZVN0YXJ0LCBzdGFydFBvcykge1xuXG4gIHZhciBpbmRleCwgcXVhbnRpdHk7XG5cbiAgLy8gVGhlIG91dHB1dCBpcyBhIHBsYWluIG9iamVjdCBoZXJlLCBzbyBrZXlzIGNhbiBvbmx5IGJlIHN0cmluZ3MuXG4gIC8vIFdlIG5lZWQgdG8gY29udmVydCBrZXlOb2RlIHRvIGEgc3RyaW5nLCBidXQgZG9pbmcgc28gY2FuIGhhbmcgdGhlIHByb2Nlc3NcbiAgLy8gKGRlZXBseSBuZXN0ZWQgYXJyYXlzIHRoYXQgZXhwbG9kZSBleHBvbmVudGlhbGx5IHVzaW5nIGFsaWFzZXMpLlxuICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlKSkge1xuICAgIGtleU5vZGUgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChrZXlOb2RlKTtcblxuICAgIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IGtleU5vZGUubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ25lc3RlZCBhcnJheXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGtleXMnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBrZXlOb2RlID09PSAnb2JqZWN0JyAmJiBfY2xhc3Moa2V5Tm9kZVtpbmRleF0pID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgICBrZXlOb2RlW2luZGV4XSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEF2b2lkIGNvZGUgZXhlY3V0aW9uIGluIGxvYWQoKSB2aWEgdG9TdHJpbmcgcHJvcGVydHlcbiAgLy8gKHN0aWxsIHVzZSBpdHMgb3duIHRvU3RyaW5nIGZvciBhcnJheXMsIHRpbWVzdGFtcHMsXG4gIC8vIGFuZCB3aGF0ZXZlciB1c2VyIHNjaGVtYSBleHRlbnNpb25zIGhhcHBlbiB0byBoYXZlIEBAdG9TdHJpbmdUYWcpXG4gIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gJ29iamVjdCcgJiYgX2NsYXNzKGtleU5vZGUpID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGtleU5vZGUgPSAnW29iamVjdCBPYmplY3RdJztcbiAgfVxuXG5cbiAga2V5Tm9kZSA9IFN0cmluZyhrZXlOb2RlKTtcblxuICBpZiAoX3Jlc3VsdCA9PT0gbnVsbCkge1xuICAgIF9yZXN1bHQgPSB7fTtcbiAgfVxuXG4gIGlmIChrZXlUYWcgPT09ICd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZScpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZU5vZGUpKSB7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSB2YWx1ZU5vZGUubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7XG4gICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFzdGF0ZS5qc29uICYmXG4gICAgICAgICFfaGFzT3duUHJvcGVydHkkMS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiZcbiAgICAgICAgX2hhc093blByb3BlcnR5JDEuY2FsbChfcmVzdWx0LCBrZXlOb2RlKSkge1xuICAgICAgc3RhdGUubGluZSA9IHN0YXJ0TGluZSB8fCBzdGF0ZS5saW5lO1xuICAgICAgc3RhdGUubGluZVN0YXJ0ID0gc3RhcnRMaW5lU3RhcnQgfHwgc3RhdGUubGluZVN0YXJ0O1xuICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGFydFBvcyB8fCBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGVkIG1hcHBpbmcga2V5Jyk7XG4gICAgfVxuXG4gICAgLy8gdXNlZCBmb3IgdGhpcyBzcGVjaWZpYyBrZXkgb25seSBiZWNhdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBpcyBzbG93XG4gICAgaWYgKGtleU5vZGUgPT09ICdfX3Byb3RvX18nKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3Jlc3VsdCwga2V5Tm9kZSwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogdmFsdWVOb2RlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3Jlc3VsdFtrZXlOb2RlXSA9IHZhbHVlTm9kZTtcbiAgICB9XG4gICAgZGVsZXRlIG92ZXJyaWRhYmxlS2V5c1trZXlOb2RlXTtcbiAgfVxuXG4gIHJldHVybiBfcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZWFkTGluZUJyZWFrKHN0YXRlKSB7XG4gIHZhciBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChjaCA9PT0gMHgwQS8qIExGICovKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHgwRC8qIENSICovKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDB4MEEvKiBMRiAqLykge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2EgbGluZSBicmVhayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgc3RhdGUubGluZSArPSAxO1xuICBzdGF0ZS5saW5lU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgc3RhdGUuZmlyc3RUYWJJbkxpbmUgPSAtMTtcbn1cblxuZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHtcbiAgdmFyIGxpbmVCcmVha3MgPSAwLFxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBpZiAoY2ggPT09IDB4MDkvKiBUYWIgKi8gJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgPT09IC0xKSB7XG4gICAgICAgIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gc3RhdGUucG9zaXRpb247XG4gICAgICB9XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93Q29tbWVudHMgJiYgY2ggPT09IDB4MjMvKiAjICovKSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH0gd2hpbGUgKGNoICE9PSAweDBBLyogTEYgKi8gJiYgY2ggIT09IDB4MEQvKiBDUiAqLyAmJiBjaCAhPT0gMCk7XG4gICAgfVxuXG4gICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgbGluZUJyZWFrcysrO1xuICAgICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICAgIHdoaWxlIChjaCA9PT0gMHgyMC8qIFNwYWNlICovKSB7XG4gICAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoY2hlY2tJbmRlbnQgIT09IC0xICYmIGxpbmVCcmVha3MgIT09IDAgJiYgc3RhdGUubGluZUluZGVudCA8IGNoZWNrSW5kZW50KSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnZGVmaWNpZW50IGluZGVudGF0aW9uJyk7XG4gIH1cblxuICByZXR1cm4gbGluZUJyZWFrcztcbn1cblxuZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuXG4gIC8vIENvbmRpdGlvbiBzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0IGlzIHRlc3RlZFxuICAvLyBpbiBwYXJlbnQgb24gZWFjaCBjYWxsLCBmb3IgZWZmaWNpZW5jeS4gTm8gbmVlZHMgdG8gdGVzdCBoZXJlIGFnYWluLlxuICBpZiAoKGNoID09PSAweDJELyogLSAqLyB8fCBjaCA9PT0gMHgyRS8qIC4gKi8pICYmXG4gICAgICBjaCA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24gKyAxKSAmJlxuICAgICAgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHtcblxuICAgIF9wb3NpdGlvbiArPSAzO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBjb3VudCkge1xuICBpZiAoY291bnQgPT09IDEpIHtcbiAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICB9IGVsc2UgaWYgKGNvdW50ID4gMSkge1xuICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBjb3VudCAtIDEpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gcmVhZFBsYWluU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50LCB3aXRoaW5GbG93Q29sbGVjdGlvbikge1xuICB2YXIgcHJlY2VkaW5nLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgY2FwdHVyZVN0YXJ0LFxuICAgICAgY2FwdHVyZUVuZCxcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50LFxuICAgICAgX2xpbmUsXG4gICAgICBfbGluZVN0YXJ0LFxuICAgICAgX2xpbmVJbmRlbnQsXG4gICAgICBfa2luZCA9IHN0YXRlLmtpbmQsXG4gICAgICBfcmVzdWx0ID0gc3RhdGUucmVzdWx0LFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoaXNfV1NfT1JfRU9MKGNoKSAgICAgIHx8XG4gICAgICBpc19GTE9XX0lORElDQVRPUihjaCkgfHxcbiAgICAgIGNoID09PSAweDIzLyogIyAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4MjYvKiAmICovICAgIHx8XG4gICAgICBjaCA9PT0gMHgyQS8qICogKi8gICAgfHxcbiAgICAgIGNoID09PSAweDIxLyogISAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4N0MvKiB8ICovICAgIHx8XG4gICAgICBjaCA9PT0gMHgzRS8qID4gKi8gICAgfHxcbiAgICAgIGNoID09PSAweDI3LyogJyAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4MjIvKiBcIiAqLyAgICB8fFxuICAgICAgY2ggPT09IDB4MjUvKiAlICovICAgIHx8XG4gICAgICBjaCA9PT0gMHg0MC8qIEAgKi8gICAgfHxcbiAgICAgIGNoID09PSAweDYwLyogYCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChjaCA9PT0gMHgzRi8qID8gKi8gfHwgY2ggPT09IDB4MkQvKiAtICovKSB7XG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGZvbGxvd2luZykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gIGhhc1BlbmRpbmdDb250ZW50ID0gZmFsc2U7XG5cbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgaWYgKGNoID09PSAweDNBLyogOiAqLykge1xuICAgICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykgfHxcbiAgICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyMy8qICMgKi8pIHtcbiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICgoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB8fFxuICAgICAgICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgICBicmVhaztcblxuICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgX2xpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCAtMSk7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID49IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDtcbiAgICAgICAgc3RhdGUubGluZSA9IF9saW5lO1xuICAgICAgICBzdGF0ZS5saW5lU3RhcnQgPSBfbGluZVN0YXJ0O1xuICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc3RhdGUubGluZSAtIF9saW5lKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCFpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgfVxuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICB9XG5cbiAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuXG4gIGlmIChzdGF0ZS5yZXN1bHQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRlLmtpbmQgPSBfa2luZDtcbiAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjaCxcbiAgICAgIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChjaCAhPT0gMHgyNy8qICcgKi8pIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuICBzdGF0ZS5wb3NpdGlvbisrO1xuICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkge1xuICAgIGlmIChjaCA9PT0gMHgyNy8qICcgKi8pIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKGNoID09PSAweDI3LyogJyAqLykge1xuICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsXG4gICAgICBjYXB0dXJlRW5kLFxuICAgICAgaGV4TGVuZ3RoLFxuICAgICAgaGV4UmVzdWx0LFxuICAgICAgdG1wLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggIT09IDB4MjIvKiBcIiAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRlLmtpbmQgPSAnc2NhbGFyJztcbiAgc3RhdGUucmVzdWx0ID0gJyc7XG4gIHN0YXRlLnBvc2l0aW9uKys7XG4gIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7XG4gICAgaWYgKGNoID09PSAweDIyLyogXCIgKi8pIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCB0cnVlKTtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIH0gZWxzZSBpZiAoY2ggPT09IDB4NUMvKiBcXCAqLykge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCk7XG5cbiAgICAgICAgLy8gVE9ETzogcmV3b3JrIHRvIGlubGluZSBmbiB3aXRoIG5vIHR5cGUgY2FzdD9cbiAgICAgIH0gZWxzZSBpZiAoY2ggPCAyNTYgJiYgc2ltcGxlRXNjYXBlQ2hlY2tbY2hdKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgICB9IGVsc2UgaWYgKCh0bXAgPSBlc2NhcGVkSGV4TGVuKGNoKSkgPiAwKSB7XG4gICAgICAgIGhleExlbmd0aCA9IHRtcDtcbiAgICAgICAgaGV4UmVzdWx0ID0gMDtcblxuICAgICAgICBmb3IgKDsgaGV4TGVuZ3RoID4gMDsgaGV4TGVuZ3RoLS0pIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgICAgICBpZiAoKHRtcCA9IGZyb21IZXhDb2RlKGNoKSkgPj0gMCkge1xuICAgICAgICAgICAgaGV4UmVzdWx0ID0gKGhleFJlc3VsdCA8PCA0KSArIHRtcDtcblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNoYXJGcm9tQ29kZXBvaW50KGhleFJlc3VsdCk7XG5cbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3Vua25vd24gZXNjYXBlIHNlcXVlbmNlJyk7XG4gICAgICB9XG5cbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgdHJ1ZSk7XG4gICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpO1xuICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgfSBlbHNlIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXInKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyJyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRGbG93Q29sbGVjdGlvbihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgcmVhZE5leHQgPSB0cnVlLFxuICAgICAgX2xpbmUsXG4gICAgICBfbGluZVN0YXJ0LFxuICAgICAgX3BvcyxcbiAgICAgIF90YWcgICAgID0gc3RhdGUudGFnLFxuICAgICAgX3Jlc3VsdCxcbiAgICAgIF9hbmNob3IgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgdGVybWluYXRvcixcbiAgICAgIGlzUGFpcixcbiAgICAgIGlzRXhwbGljaXRQYWlyLFxuICAgICAgaXNNYXBwaW5nLFxuICAgICAgb3ZlcnJpZGFibGVLZXlzID0gT2JqZWN0LmNyZWF0ZShudWxsKSxcbiAgICAgIGtleU5vZGUsXG4gICAgICBrZXlUYWcsXG4gICAgICB2YWx1ZU5vZGUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmIChjaCA9PT0gMHg1Qi8qIFsgKi8pIHtcbiAgICB0ZXJtaW5hdG9yID0gMHg1RDsvKiBdICovXG4gICAgaXNNYXBwaW5nID0gZmFsc2U7XG4gICAgX3Jlc3VsdCA9IFtdO1xuICB9IGVsc2UgaWYgKGNoID09PSAweDdCLyogeyAqLykge1xuICAgIHRlcm1pbmF0b3IgPSAweDdEOy8qIH0gKi9cbiAgICBpc01hcHBpbmcgPSB0cnVlO1xuICAgIF9yZXN1bHQgPSB7fTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIHdoaWxlIChjaCAhPT0gMCkge1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgc3RhdGUua2luZCA9IGlzTWFwcGluZyA/ICdtYXBwaW5nJyA6ICdzZXF1ZW5jZSc7XG4gICAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICghcmVhZE5leHQpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdtaXNzZWQgY29tbWEgYmV0d2VlbiBmbG93IGNvbGxlY3Rpb24gZW50cmllcycpO1xuICAgIH0gZWxzZSBpZiAoY2ggPT09IDB4MkMvKiAsICovKSB7XG4gICAgICAvLyBcImZsb3cgY29sbGVjdGlvbiBlbnRyaWVzIGNhbiBuZXZlciBiZSBjb21wbGV0ZWx5IGVtcHR5XCIsIGFzIHBlciBZQU1MIDEuMiwgc2VjdGlvbiA3LjRcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZXhwZWN0ZWQgdGhlIG5vZGUgY29udGVudCwgYnV0IGZvdW5kICcsJ1wiKTtcbiAgICB9XG5cbiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICBpc1BhaXIgPSBpc0V4cGxpY2l0UGFpciA9IGZhbHNlO1xuXG4gICAgaWYgKGNoID09PSAweDNGLyogPyAqLykge1xuICAgICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICBpZiAoaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcbiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbGluZSA9IHN0YXRlLmxpbmU7IC8vIFNhdmUgdGhlIGN1cnJlbnQgbGluZS5cbiAgICBfbGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0O1xuICAgIF9wb3MgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAga2V5VGFnID0gc3RhdGUudGFnO1xuICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDB4M0EvKiA6ICovKSB7XG4gICAgICBpc1BhaXIgPSB0cnVlO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICB2YWx1ZU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKGlzTWFwcGluZykge1xuICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpO1xuICAgIH0gZWxzZSBpZiAoaXNQYWlyKSB7XG4gICAgICBfcmVzdWx0LnB1c2goc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgX3Jlc3VsdC5wdXNoKGtleU5vZGUpO1xuICAgIH1cblxuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChjaCA9PT0gMHgyQy8qICwgKi8pIHtcbiAgICAgIHJlYWROZXh0ID0gdHJ1ZTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVhZE5leHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24nKTtcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2NrU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsXG4gICAgICBmb2xkaW5nLFxuICAgICAgY2hvbXBpbmcgICAgICAgPSBDSE9NUElOR19DTElQLFxuICAgICAgZGlkUmVhZENvbnRlbnQgPSBmYWxzZSxcbiAgICAgIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsXG4gICAgICB0ZXh0SW5kZW50ICAgICA9IG5vZGVJbmRlbnQsXG4gICAgICBlbXB0eUxpbmVzICAgICA9IDAsXG4gICAgICBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlLFxuICAgICAgdG1wLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggPT09IDB4N0MvKiB8ICovKSB7XG4gICAgZm9sZGluZyA9IGZhbHNlO1xuICB9IGVsc2UgaWYgKGNoID09PSAweDNFLyogPiAqLykge1xuICAgIGZvbGRpbmcgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN0YXRlLmtpbmQgPSAnc2NhbGFyJztcbiAgc3RhdGUucmVzdWx0ID0gJyc7XG5cbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKGNoID09PSAweDJCLyogKyAqLyB8fCBjaCA9PT0gMHgyRC8qIC0gKi8pIHtcbiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykge1xuICAgICAgICBjaG9tcGluZyA9IChjaCA9PT0gMHgyQi8qICsgKi8pID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllcicpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkge1xuICAgICAgaWYgKHRtcCA9PT0gMCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGV4cGxpY2l0IGluZGVudGF0aW9uIHdpZHRoIG9mIGEgYmxvY2sgc2NhbGFyOyBpdCBjYW5ub3QgYmUgbGVzcyB0aGFuIG9uZScpO1xuICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHtcbiAgICAgICAgdGV4dEluZGVudCA9IG5vZGVJbmRlbnQgKyB0bXAgLSAxO1xuICAgICAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAncmVwZWF0IG9mIGFuIGluZGVudGF0aW9uIHdpZHRoIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgZG8geyBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7IH1cbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKTtcblxuICAgIGlmIChjaCA9PT0gMHgyMy8qICMgKi8pIHtcbiAgICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgICB3aGlsZSAoIWlzX0VPTChjaCkgJiYgKGNoICE9PSAwKSk7XG4gICAgfVxuICB9XG5cbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG4gICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgd2hpbGUgKCghZGV0ZWN0ZWRJbmRlbnQgfHwgc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpICYmXG4gICAgICAgICAgIChjaCA9PT0gMHgyMC8qIFNwYWNlICovKSkge1xuICAgICAgc3RhdGUubGluZUluZGVudCsrO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGlmICghZGV0ZWN0ZWRJbmRlbnQgJiYgc3RhdGUubGluZUluZGVudCA+IHRleHRJbmRlbnQpIHtcbiAgICAgIHRleHRJbmRlbnQgPSBzdGF0ZS5saW5lSW5kZW50O1xuICAgIH1cblxuICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBlbXB0eUxpbmVzKys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvLyBFbmQgb2YgdGhlIHNjYWxhci5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHtcblxuICAgICAgLy8gUGVyZm9ybSB0aGUgY2hvbXBpbmcuXG4gICAgICBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0tFRVApIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0NMSVApIHtcbiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7IC8vIGkuZS4gb25seSBpZiB0aGUgc2NhbGFyIGlzIG5vdCBlbXB0eS5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJ1xcbic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnJlYWsgdGhpcyBgd2hpbGVgIGN5Y2xlIGFuZCBnbyB0byB0aGUgZnVuY2l0b24ncyBlcGlsb2d1ZS5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZvbGRlZCBzdHlsZTogdXNlIGZhbmN5IHJ1bGVzIHRvIGhhbmRsZSBsaW5lIGJyZWFrcy5cbiAgICBpZiAoZm9sZGluZykge1xuXG4gICAgICAvLyBMaW5lcyBzdGFydGluZyB3aXRoIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgKG1vcmUtaW5kZW50ZWQgbGluZXMpIGFyZSBub3QgZm9sZGVkLlxuICAgICAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIC8vIGV4Y2VwdCBmb3IgdGhlIGZpcnN0IGNvbnRlbnQgbGluZSAoY2YuIEV4YW1wbGUgOC4xKVxuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpO1xuXG4gICAgICAvLyBFbmQgb2YgbW9yZS1pbmRlbnRlZCBibG9jay5cbiAgICAgIH0gZWxzZSBpZiAoYXRNb3JlSW5kZW50ZWQpIHtcbiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZTtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMgKyAxKTtcblxuICAgICAgLy8gSnVzdCBvbmUgbGluZSBicmVhayAtIHBlcmNlaXZlIGFzIHRoZSBzYW1lIGxpbmUuXG4gICAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXMgPT09IDApIHtcbiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7IC8vIGkuZS4gb25seSBpZiB3ZSBoYXZlIGFscmVhZHkgcmVhZCBzb21lIHNjYWxhciBjb250ZW50LlxuICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAnICc7XG4gICAgICAgIH1cblxuICAgICAgLy8gU2V2ZXJhbCBsaW5lIGJyZWFrcyAtIHBlcmNlaXZlIGFzIGRpZmZlcmVudCBsaW5lcy5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzKTtcbiAgICAgIH1cblxuICAgIC8vIExpdGVyYWwgc3R5bGU6IGp1c3QgYWRkIGV4YWN0IG51bWJlciBvZiBsaW5lIGJyZWFrcyBiZXR3ZWVuIGNvbnRlbnQgbGluZXMuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEtlZXAgYWxsIGxpbmUgYnJlYWtzIGV4Y2VwdCB0aGUgaGVhZGVyIGxpbmUgYnJlYWsuXG4gICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpO1xuICAgIH1cblxuICAgIGRpZFJlYWRDb250ZW50ID0gdHJ1ZTtcbiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7XG4gICAgZW1wdHlMaW5lcyA9IDA7XG4gICAgY2FwdHVyZVN0YXJ0ID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB3aGlsZSAoIWlzX0VPTChjaCkgJiYgKGNoICE9PSAwKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCBmYWxzZSk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIF9saW5lLFxuICAgICAgX3RhZyAgICAgID0gc3RhdGUudGFnLFxuICAgICAgX2FuY2hvciAgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgX3Jlc3VsdCAgID0gW10sXG4gICAgICBmb2xsb3dpbmcsXG4gICAgICBkZXRlY3RlZCAgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIC8vIHRoZXJlIGlzIGEgbGVhZGluZyB0YWIgYmVmb3JlIHRoaXMgdG9rZW4sIHNvIGl0IGNhbid0IGJlIGEgYmxvY2sgc2VxdWVuY2UvbWFwcGluZztcbiAgLy8gaXQgY2FuIHN0aWxsIGJlIGZsb3cgc2VxdWVuY2UvbWFwcGluZyBvciBhIHNjYWxhclxuICBpZiAoc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgaWYgKHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkge1xuICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKGNoICE9PSAweDJELyogLSAqLykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgaWYgKCFpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZGV0ZWN0ZWQgPSB0cnVlO1xuICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA8PSBub2RlSW5kZW50KSB7XG4gICAgICAgIF9yZXN1bHQucHVzaChudWxsKTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0JMT0NLX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAgX3Jlc3VsdC5wdXNoKHN0YXRlLnJlc3VsdCk7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmICgoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpICYmIChjaCAhPT0gMCkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdiYWQgaW5kZW50YXRpb24gb2YgYSBzZXF1ZW5jZSBlbnRyeScpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZXRlY3RlZCkge1xuICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICBzdGF0ZS5raW5kID0gJ3NlcXVlbmNlJztcbiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2NrTWFwcGluZyhzdGF0ZSwgbm9kZUluZGVudCwgZmxvd0luZGVudCkge1xuICB2YXIgZm9sbG93aW5nLFxuICAgICAgYWxsb3dDb21wYWN0LFxuICAgICAgX2xpbmUsXG4gICAgICBfa2V5TGluZSxcbiAgICAgIF9rZXlMaW5lU3RhcnQsXG4gICAgICBfa2V5UG9zLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIF9hbmNob3IgICAgICAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBfcmVzdWx0ICAgICAgID0ge30sXG4gICAgICBvdmVycmlkYWJsZUtleXMgPSBPYmplY3QuY3JlYXRlKG51bGwpLFxuICAgICAga2V5VGFnICAgICAgICA9IG51bGwsXG4gICAgICBrZXlOb2RlICAgICAgID0gbnVsbCxcbiAgICAgIHZhbHVlTm9kZSAgICAgPSBudWxsLFxuICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlLFxuICAgICAgZGV0ZWN0ZWQgICAgICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgLy8gdGhlcmUgaXMgYSBsZWFkaW5nIHRhYiBiZWZvcmUgdGhpcyB0b2tlbiwgc28gaXQgY2FuJ3QgYmUgYSBibG9jayBzZXF1ZW5jZS9tYXBwaW5nO1xuICAvLyBpdCBjYW4gc3RpbGwgYmUgZmxvdyBzZXF1ZW5jZS9tYXBwaW5nIG9yIGEgc2NhbGFyXG4gIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHJldHVybiBmYWxzZTtcblxuICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICB9XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICBpZiAoIWF0RXhwbGljaXRLZXkgJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbiA9IHN0YXRlLmZpcnN0VGFiSW5MaW5lO1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24nKTtcbiAgICB9XG5cbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lOyAvLyBTYXZlIHRoZSBjdXJyZW50IGxpbmUuXG5cbiAgICAvL1xuICAgIC8vIEV4cGxpY2l0IG5vdGF0aW9uIGNhc2UuIFRoZXJlIGFyZSB0d28gc2VwYXJhdGUgYmxvY2tzOlxuICAgIC8vIGZpcnN0IGZvciB0aGUga2V5IChkZW5vdGVkIGJ5IFwiP1wiKSBhbmQgc2Vjb25kIGZvciB0aGUgdmFsdWUgKGRlbm90ZWQgYnkgXCI6XCIpXG4gICAgLy9cbiAgICBpZiAoKGNoID09PSAweDNGLyogPyAqLyB8fCBjaCA9PT0gMHgzQS8qIDogKi8pICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG5cbiAgICAgIGlmIChjaCA9PT0gMHgzRi8qID8gKi8pIHtcbiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgbnVsbCwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpO1xuICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgICBhdEV4cGxpY2l0S2V5ID0gdHJ1ZTtcbiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTtcblxuICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgIC8vIGkuZS4gMHgzQS8qIDogKi8gPT09IGNoYXJhY3RlciBhZnRlciB0aGUgZXhwbGljaXQga2V5LlxuICAgICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbmNvbXBsZXRlIGV4cGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBrZXkgbm9kZSBpcyBtaXNzZWQ7IG9yIGZvbGxvd2VkIGJ5IGEgbm9uLXRhYnVsYXRlZCBlbXB0eSBsaW5lJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gICAgICBjaCA9IGZvbGxvd2luZztcblxuICAgIC8vXG4gICAgLy8gSW1wbGljaXQgbm90YXRpb24gY2FzZS4gRmxvdy1zdHlsZSBub2RlIGFzIHRoZSBrZXkgZmlyc3QsIHRoZW4gXCI6XCIsIGFuZCB0aGUgdmFsdWUuXG4gICAgLy9cbiAgICB9IGVsc2Uge1xuICAgICAgX2tleUxpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgICAgaWYgKCFjb21wb3NlTm9kZShzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX09VVCwgZmFsc2UsIHRydWUpKSB7XG4gICAgICAgIC8vIE5laXRoZXIgaW1wbGljaXQgbm9yIGV4cGxpY2l0IG5vdGF0aW9uLlxuICAgICAgICAvLyBSZWFkaW5nIGlzIGRvbmUuIEdvIHRvIHRoZSBlcGlsb2d1ZS5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2ggPT09IDB4M0EvKiA6ICovKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCBudWxsLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7XG4gICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICAgIGFsbG93Q29tcGFjdCA9IGZhbHNlO1xuICAgICAgICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGFuIGltcGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBjb2xvbiBpcyBtaXNzZWQnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCB0aGUgcmVzdWx0IG9mIGBjb21wb3NlTm9kZWAuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Jyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBLZWVwIHRoZSByZXN1bHQgb2YgYGNvbXBvc2VOb2RlYC5cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIENvbW1vbiByZWFkaW5nIGNvZGUgZm9yIGJvdGggZXhwbGljaXQgYW5kIGltcGxpY2l0IG5vdGF0aW9ucy5cbiAgICAvL1xuICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkge1xuICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgX2tleUxpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0O1xuICAgICAgICBfa2V5UG9zID0gc3RhdGUucG9zaXRpb247XG4gICAgICB9XG5cbiAgICAgIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19PVVQsIHRydWUsIGFsbG93Q29tcGFjdCkpIHtcbiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpO1xuICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoKHN0YXRlLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSAmJiAoY2ggIT09IDApKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYmFkIGluZGVudGF0aW9uIG9mIGEgbWFwcGluZyBlbnRyeScpO1xuICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vXG4gIC8vIEVwaWxvZ3VlLlxuICAvL1xuXG4gIC8vIFNwZWNpYWwgY2FzZTogbGFzdCBtYXBwaW5nJ3Mgbm9kZSBjb250YWlucyBvbmx5IHRoZSBrZXkgaW4gZXhwbGljaXQgbm90YXRpb24uXG4gIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTtcbiAgfVxuXG4gIC8vIEV4cG9zZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcuXG4gIGlmIChkZXRlY3RlZCkge1xuICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICBzdGF0ZS5raW5kID0gJ21hcHBpbmcnO1xuICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gZGV0ZWN0ZWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgaXNWZXJiYXRpbSA9IGZhbHNlLFxuICAgICAgaXNOYW1lZCAgICA9IGZhbHNlLFxuICAgICAgdGFnSGFuZGxlLFxuICAgICAgdGFnTmFtZSxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoICE9PSAweDIxLyogISAqLykgcmV0dXJuIGZhbHNlO1xuXG4gIGlmIChzdGF0ZS50YWcgIT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZHVwbGljYXRpb24gb2YgYSB0YWcgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggPT09IDB4M0MvKiA8ICovKSB7XG4gICAgaXNWZXJiYXRpbSA9IHRydWU7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSBpZiAoY2ggPT09IDB4MjEvKiAhICovKSB7XG4gICAgaXNOYW1lZCA9IHRydWU7XG4gICAgdGFnSGFuZGxlID0gJyEhJztcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgfSBlbHNlIHtcbiAgICB0YWdIYW5kbGUgPSAnISc7XG4gIH1cblxuICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSAweDNFLyogPiAqLyk7XG5cbiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHtcbiAgICAgIHRhZ05hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgdmVyYmF0aW0gdGFnJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuXG4gICAgICBpZiAoY2ggPT09IDB4MjEvKiAhICovKSB7XG4gICAgICAgIGlmICghaXNOYW1lZCkge1xuICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lZCB0YWcgaGFuZGxlIGNhbm5vdCBjb250YWluIHN1Y2ggY2hhcmFjdGVycycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBleGNsYW1hdGlvbiBtYXJrcycpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoUEFUVEVSTl9GTE9XX0lORElDQVRPUlMudGVzdCh0YWdOYW1lKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycycpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0YWdOYW1lICYmICFQQVRURVJOX1RBR19VUkkudGVzdCh0YWdOYW1lKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICcgKyB0YWdOYW1lKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdGFnTmFtZSA9IGRlY29kZVVSSUNvbXBvbmVudCh0YWdOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBuYW1lIGlzIG1hbGZvcm1lZDogJyArIHRhZ05hbWUpO1xuICB9XG5cbiAgaWYgKGlzVmVyYmF0aW0pIHtcbiAgICBzdGF0ZS50YWcgPSB0YWdOYW1lO1xuXG4gIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHtcbiAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICh0YWdIYW5kbGUgPT09ICchJykge1xuICAgIHN0YXRlLnRhZyA9ICchJyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICh0YWdIYW5kbGUgPT09ICchIScpIHtcbiAgICBzdGF0ZS50YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5kZWNsYXJlZCB0YWcgaGFuZGxlIFwiJyArIHRhZ0hhbmRsZSArICdcIicpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoY2ggIT09IDB4MjYvKiAmICovKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbGlhcyhzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcyxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoICE9PSAweDJBLyogKiAqLykgcmV0dXJuIGZhbHNlO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFsaWFzIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIGFsaWFzID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKCFfaGFzT3duUHJvcGVydHkkMS5jYWxsKHN0YXRlLmFuY2hvck1hcCwgYWxpYXMpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyBcIicgKyBhbGlhcyArICdcIicpO1xuICB9XG5cbiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTtcbiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHtcbiAgdmFyIGFsbG93QmxvY2tTdHlsZXMsXG4gICAgICBhbGxvd0Jsb2NrU2NhbGFycyxcbiAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyxcbiAgICAgIGluZGVudFN0YXR1cyA9IDEsIC8vIDE6IHRoaXM+cGFyZW50LCAwOiB0aGlzPXBhcmVudCwgLTE6IHRoaXM8cGFyZW50XG4gICAgICBhdE5ld0xpbmUgID0gZmFsc2UsXG4gICAgICBoYXNDb250ZW50ID0gZmFsc2UsXG4gICAgICB0eXBlSW5kZXgsXG4gICAgICB0eXBlUXVhbnRpdHksXG4gICAgICB0eXBlTGlzdCxcbiAgICAgIHR5cGUsXG4gICAgICBmbG93SW5kZW50LFxuICAgICAgYmxvY2tJbmRlbnQ7XG5cbiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7XG4gICAgc3RhdGUubGlzdGVuZXIoJ29wZW4nLCBzdGF0ZSk7XG4gIH1cblxuICBzdGF0ZS50YWcgICAgPSBudWxsO1xuICBzdGF0ZS5hbmNob3IgPSBudWxsO1xuICBzdGF0ZS5raW5kICAgPSBudWxsO1xuICBzdGF0ZS5yZXN1bHQgPSBudWxsO1xuXG4gIGFsbG93QmxvY2tTdHlsZXMgPSBhbGxvd0Jsb2NrU2NhbGFycyA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9XG4gICAgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8XG4gICAgQ09OVEVYVF9CTE9DS19JTiAgPT09IG5vZGVDb250ZXh0O1xuXG4gIGlmIChhbGxvd1RvU2Vlaykge1xuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgIGF0TmV3TGluZSA9IHRydWU7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7XG4gICAgICAgIGluZGVudFN0YXR1cyA9IC0xO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChpbmRlbnRTdGF0dXMgPT09IDEpIHtcbiAgICB3aGlsZSAocmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB8fCByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpKSB7XG4gICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICAgIGF0TmV3TGluZSA9IHRydWU7XG4gICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGFsbG93QmxvY2tTdHlsZXM7XG5cbiAgICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICAgIGluZGVudFN0YXR1cyA9IC0xO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zKSB7XG4gICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gYXROZXdMaW5lIHx8IGFsbG93Q29tcGFjdDtcbiAgfVxuXG4gIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgaWYgKENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQgfHwgQ09OVEVYVF9GTE9XX09VVCA9PT0gbm9kZUNvbnRleHQpIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsb3dJbmRlbnQgPSBwYXJlbnRJbmRlbnQgKyAxO1xuICAgIH1cblxuICAgIGJsb2NrSW5kZW50ID0gc3RhdGUucG9zaXRpb24gLSBzdGF0ZS5saW5lU3RhcnQ7XG5cbiAgICBpZiAoaW5kZW50U3RhdHVzID09PSAxKSB7XG4gICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmXG4gICAgICAgICAgKHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBibG9ja0luZGVudCkgfHxcbiAgICAgICAgICAgcmVhZEJsb2NrTWFwcGluZyhzdGF0ZSwgYmxvY2tJbmRlbnQsIGZsb3dJbmRlbnQpKSB8fFxuICAgICAgICAgIHJlYWRGbG93Q29sbGVjdGlvbihzdGF0ZSwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoKGFsbG93QmxvY2tTY2FsYXJzICYmIHJlYWRCbG9ja1NjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkpIHx8XG4gICAgICAgICAgICByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSB8fFxuICAgICAgICAgICAgcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHtcbiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcblxuICAgICAgICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYWxpYXMgbm9kZSBzaG91bGQgbm90IGhhdmUgYW55IHByb3BlcnRpZXMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAoc3RhdGUudGFnID09PSBudWxsKSB7XG4gICAgICAgICAgICBzdGF0ZS50YWcgPSAnPyc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbmRlbnRTdGF0dXMgPT09IDApIHtcbiAgICAgIC8vIFNwZWNpYWwgY2FzZTogYmxvY2sgc2VxdWVuY2VzIGFyZSBhbGxvd2VkIHRvIGhhdmUgc2FtZSBpbmRlbnRhdGlvbiBsZXZlbCBhcyB0aGUgcGFyZW50LlxuICAgICAgLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyNzk5Nzg0XG4gICAgICBoYXNDb250ZW50ID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBibG9ja0luZGVudCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXRlLnRhZyA9PT0gbnVsbCkge1xuICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgIH1cblxuICB9IGVsc2UgaWYgKHN0YXRlLnRhZyA9PT0gJz8nKSB7XG4gICAgLy8gSW1wbGljaXQgcmVzb2x2aW5nIGlzIG5vdCBhbGxvd2VkIGZvciBub24tc2NhbGFyIHR5cGVzLCBhbmQgJz8nXG4gICAgLy8gbm9uLXNwZWNpZmljIHRhZyBpcyBvbmx5IGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gcGxhaW4gc2NhbGFycy5cbiAgICAvL1xuICAgIC8vIFdlIG9ubHkgbmVlZCB0byBjaGVjayBraW5kIGNvbmZvcm1pdHkgaW4gY2FzZSB1c2VyIGV4cGxpY2l0bHkgYXNzaWducyAnPydcbiAgICAvLyB0YWcsIGZvciBleGFtcGxlIGxpa2UgdGhpczogXCIhPD8+IFswXVwiXG4gICAgLy9cbiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHN0YXRlLmtpbmQgIT09ICdzY2FsYXInKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITw/PiB0YWc7IGl0IHNob3VsZCBiZSBcInNjYWxhclwiLCBub3QgXCInICsgc3RhdGUua2luZCArICdcIicpO1xuICAgIH1cblxuICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHtcbiAgICAgIHR5cGUgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07XG5cbiAgICAgIGlmICh0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgc3RhdGUucmVzdWx0ID0gdHlwZS5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTtcbiAgICAgICAgc3RhdGUudGFnID0gdHlwZS50YWc7XG4gICAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoc3RhdGUudGFnICE9PSAnIScpIHtcbiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50eXBlTWFwW3N0YXRlLmtpbmQgfHwgJ2ZhbGxiYWNrJ10sIHN0YXRlLnRhZykpIHtcbiAgICAgIHR5cGUgPSBzdGF0ZS50eXBlTWFwW3N0YXRlLmtpbmQgfHwgJ2ZhbGxiYWNrJ11bc3RhdGUudGFnXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbG9va2luZyBmb3IgbXVsdGkgdHlwZVxuICAgICAgdHlwZSA9IG51bGw7XG4gICAgICB0eXBlTGlzdCA9IHN0YXRlLnR5cGVNYXAubXVsdGlbc3RhdGUua2luZCB8fCAnZmFsbGJhY2snXTtcblxuICAgICAgZm9yICh0eXBlSW5kZXggPSAwLCB0eXBlUXVhbnRpdHkgPSB0eXBlTGlzdC5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHtcbiAgICAgICAgaWYgKHN0YXRlLnRhZy5zbGljZSgwLCB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZy5sZW5ndGgpID09PSB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZykge1xuICAgICAgICAgIHR5cGUgPSB0eXBlTGlzdFt0eXBlSW5kZXhdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5rbm93biB0YWcgITwnICsgc3RhdGUudGFnICsgJz4nKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHR5cGUua2luZCAhPT0gc3RhdGUua2luZCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8JyArIHN0YXRlLnRhZyArICc+IHRhZzsgaXQgc2hvdWxkIGJlIFwiJyArIHR5cGUua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICB9XG5cbiAgICBpZiAoIXR5cGUucmVzb2x2ZShzdGF0ZS5yZXN1bHQsIHN0YXRlLnRhZykpIHsgLy8gYHN0YXRlLnJlc3VsdGAgdXBkYXRlZCBpbiByZXNvbHZlciBpZiBtYXRjaGVkXG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwnICsgc3RhdGUudGFnICsgJz4gZXhwbGljaXQgdGFnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnJlc3VsdCA9IHR5cGUuY29uc3RydWN0KHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKTtcbiAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7XG4gICAgc3RhdGUubGlzdGVuZXIoJ2Nsb3NlJywgc3RhdGUpO1xuICB9XG4gIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgIHN0YXRlLmFuY2hvciAhPT0gbnVsbCB8fCBoYXNDb250ZW50O1xufVxuXG5mdW5jdGlvbiByZWFkRG9jdW1lbnQoc3RhdGUpIHtcbiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIF9wb3NpdGlvbixcbiAgICAgIGRpcmVjdGl2ZU5hbWUsXG4gICAgICBkaXJlY3RpdmVBcmdzLFxuICAgICAgaGFzRGlyZWN0aXZlcyA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgc3RhdGUudmVyc2lvbiA9IG51bGw7XG4gIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTtcbiAgc3RhdGUudGFnTWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgc3RhdGUuYW5jaG9yTWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gMCB8fCBjaCAhPT0gMHgyNS8qICUgKi8pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICBkaXJlY3RpdmVBcmdzID0gW107XG5cbiAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoJyk7XG4gICAgfVxuXG4gICAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoID09PSAweDIzLyogIyAqLykge1xuICAgICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX0VPTChjaCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGlzX0VPTChjaCkpIGJyZWFrO1xuXG4gICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoY2ggIT09IDApIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuXG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoZGlyZWN0aXZlSGFuZGxlcnMsIGRpcmVjdGl2ZU5hbWUpKSB7XG4gICAgICBkaXJlY3RpdmVIYW5kbGVyc1tkaXJlY3RpdmVOYW1lXShzdGF0ZSwgZGlyZWN0aXZlTmFtZSwgZGlyZWN0aXZlQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vua25vd24gZG9jdW1lbnQgZGlyZWN0aXZlIFwiJyArIGRpcmVjdGl2ZU5hbWUgKyAnXCInKTtcbiAgICB9XG4gIH1cblxuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IDAgJiZcbiAgICAgIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pICAgICA9PT0gMHgyRC8qIC0gKi8gJiZcbiAgICAgIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKSA9PT0gMHgyRC8qIC0gKi8gJiZcbiAgICAgIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gMHgyRC8qIC0gKi8pIHtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAzO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICB9IGVsc2UgaWYgKGhhc0RpcmVjdGl2ZXMpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgY29tcG9zZU5vZGUoc3RhdGUsIHN0YXRlLmxpbmVJbmRlbnQgLSAxLCBDT05URVhUX0JMT0NLX09VVCwgZmFsc2UsIHRydWUpO1xuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKHN0YXRlLmNoZWNrTGluZUJyZWFrcyAmJlxuICAgICAgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnbm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50Jyk7XG4gIH1cblxuICBzdGF0ZS5kb2N1bWVudHMucHVzaChzdGF0ZS5yZXN1bHQpO1xuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcblxuICAgIGlmIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMHgyRS8qIC4gKi8pIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA8IChzdGF0ZS5sZW5ndGggLSAxKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpIHtcbiAgaW5wdXQgPSBTdHJpbmcoaW5wdXQpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7XG5cbiAgICAvLyBBZGQgdGFpbGluZyBgXFxuYCBpZiBub3QgZXhpc3RzXG4gICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkgIT09IDB4MEEvKiBMRiAqLyAmJlxuICAgICAgICBpbnB1dC5jaGFyQ29kZUF0KGlucHV0Lmxlbmd0aCAtIDEpICE9PSAweDBELyogQ1IgKi8pIHtcbiAgICAgIGlucHV0ICs9ICdcXG4nO1xuICAgIH1cblxuICAgIC8vIFN0cmlwIEJPTVxuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlJDEoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIHZhciBudWxscG9zID0gaW5wdXQuaW5kZXhPZignXFwwJyk7XG5cbiAgaWYgKG51bGxwb3MgIT09IC0xKSB7XG4gICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zO1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXQnKTtcbiAgfVxuXG4gIC8vIFVzZSAwIGFzIHN0cmluZyB0ZXJtaW5hdG9yLiBUaGF0IHNpZ25pZmljYW50bHkgc2ltcGxpZmllcyBib3VuZHMgY2hlY2suXG4gIHN0YXRlLmlucHV0ICs9ICdcXDAnO1xuXG4gIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMHgyMC8qIFNwYWNlICovKSB7XG4gICAgc3RhdGUubGluZUluZGVudCArPSAxO1xuICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gIH1cblxuICB3aGlsZSAoc3RhdGUucG9zaXRpb24gPCAoc3RhdGUubGVuZ3RoIC0gMSkpIHtcbiAgICByZWFkRG9jdW1lbnQoc3RhdGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmRvY3VtZW50cztcbn1cblxuXG5mdW5jdGlvbiBsb2FkQWxsJDEoaW5wdXQsIGl0ZXJhdG9yLCBvcHRpb25zKSB7XG4gIGlmIChpdGVyYXRvciAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlcmF0b3IgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcHRpb25zID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMgPSBpdGVyYXRvcjtcbiAgICBpdGVyYXRvciA9IG51bGw7XG4gIH1cblxuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7XG5cbiAgaWYgKHR5cGVvZiBpdGVyYXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBkb2N1bWVudHM7XG4gIH1cblxuICBmb3IgKHZhciBpbmRleCA9IDAsIGxlbmd0aCA9IGRvY3VtZW50cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBsb2FkJDEoaW5wdXQsIG9wdGlvbnMpIHtcbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpO1xuXG4gIGlmIChkb2N1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgLyplc2xpbnQtZGlzYWJsZSBuby11bmRlZmluZWQqL1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBkb2N1bWVudHNbMF07XG4gIH1cbiAgdGhyb3cgbmV3IGV4Y2VwdGlvbignZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUnKTtcbn1cblxuXG52YXIgbG9hZEFsbF8xID0gbG9hZEFsbCQxO1xudmFyIGxvYWRfMSAgICA9IGxvYWQkMTtcblxudmFyIGxvYWRlciA9IHtcblx0bG9hZEFsbDogbG9hZEFsbF8xLFxuXHRsb2FkOiBsb2FkXzFcbn07XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tdXNlLWJlZm9yZS1kZWZpbmUqL1xuXG5cblxuXG5cbnZhciBfdG9TdHJpbmcgICAgICAgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBDSEFSX0JPTSAgICAgICAgICAgICAgICAgID0gMHhGRUZGO1xudmFyIENIQVJfVEFCICAgICAgICAgICAgICAgICAgPSAweDA5OyAvKiBUYWIgKi9cbnZhciBDSEFSX0xJTkVfRkVFRCAgICAgICAgICAgID0gMHgwQTsgLyogTEYgKi9cbnZhciBDSEFSX0NBUlJJQUdFX1JFVFVSTiAgICAgID0gMHgwRDsgLyogQ1IgKi9cbnZhciBDSEFSX1NQQUNFICAgICAgICAgICAgICAgID0gMHgyMDsgLyogU3BhY2UgKi9cbnZhciBDSEFSX0VYQ0xBTUFUSU9OICAgICAgICAgID0gMHgyMTsgLyogISAqL1xudmFyIENIQVJfRE9VQkxFX1FVT1RFICAgICAgICAgPSAweDIyOyAvKiBcIiAqL1xudmFyIENIQVJfU0hBUlAgICAgICAgICAgICAgICAgPSAweDIzOyAvKiAjICovXG52YXIgQ0hBUl9QRVJDRU5UICAgICAgICAgICAgICA9IDB4MjU7IC8qICUgKi9cbnZhciBDSEFSX0FNUEVSU0FORCAgICAgICAgICAgID0gMHgyNjsgLyogJiAqL1xudmFyIENIQVJfU0lOR0xFX1FVT1RFICAgICAgICAgPSAweDI3OyAvKiAnICovXG52YXIgQ0hBUl9BU1RFUklTSyAgICAgICAgICAgICA9IDB4MkE7IC8qICogKi9cbnZhciBDSEFSX0NPTU1BICAgICAgICAgICAgICAgID0gMHgyQzsgLyogLCAqL1xudmFyIENIQVJfTUlOVVMgICAgICAgICAgICAgICAgPSAweDJEOyAvKiAtICovXG52YXIgQ0hBUl9DT0xPTiAgICAgICAgICAgICAgICA9IDB4M0E7IC8qIDogKi9cbnZhciBDSEFSX0VRVUFMUyAgICAgICAgICAgICAgID0gMHgzRDsgLyogPSAqL1xudmFyIENIQVJfR1JFQVRFUl9USEFOICAgICAgICAgPSAweDNFOyAvKiA+ICovXG52YXIgQ0hBUl9RVUVTVElPTiAgICAgICAgICAgICA9IDB4M0Y7IC8qID8gKi9cbnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgICAgICAgID0gMHg0MDsgLyogQCAqL1xudmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCAgPSAweDVCOyAvKiBbICovXG52YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDB4NUQ7IC8qIF0gKi9cbnZhciBDSEFSX0dSQVZFX0FDQ0VOVCAgICAgICAgID0gMHg2MDsgLyogYCAqL1xudmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgPSAweDdCOyAvKiB7ICovXG52YXIgQ0hBUl9WRVJUSUNBTF9MSU5FICAgICAgICA9IDB4N0M7IC8qIHwgKi9cbnZhciBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgID0gMHg3RDsgLyogfSAqL1xuXG52YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9O1xuXG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDBdICAgPSAnXFxcXDAnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA3XSAgID0gJ1xcXFxhJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOF0gICA9ICdcXFxcYic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDldICAgPSAnXFxcXHQnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBBXSAgID0gJ1xcXFxuJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQl0gICA9ICdcXFxcdic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MENdICAgPSAnXFxcXGYnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBEXSAgID0gJ1xcXFxyJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgxQl0gICA9ICdcXFxcZSc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjJdICAgPSAnXFxcXFwiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg1Q10gICA9ICdcXFxcXFxcXCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4ODVdICAgPSAnXFxcXE4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweEEwXSAgID0gJ1xcXFxfJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI4XSA9ICdcXFxcTCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjAyOV0gPSAnXFxcXFAnO1xuXG52YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbXG4gICd5JywgJ1knLCAneWVzJywgJ1llcycsICdZRVMnLCAnb24nLCAnT24nLCAnT04nLFxuICAnbicsICdOJywgJ25vJywgJ05vJywgJ05PJywgJ29mZicsICdPZmYnLCAnT0ZGJ1xuXTtcblxudmFyIERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWCA9IC9eWy0rXT9bMC05X10rKD86OlswLTlfXSspKyg/OlxcLlswLTlfXSopPyQvO1xuXG5mdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hLCBtYXApIHtcbiAgdmFyIHJlc3VsdCwga2V5cywgaW5kZXgsIGxlbmd0aCwgdGFnLCBzdHlsZSwgdHlwZTtcblxuICBpZiAobWFwID09PSBudWxsKSByZXR1cm4ge307XG5cbiAgcmVzdWx0ID0ge307XG4gIGtleXMgPSBPYmplY3Qua2V5cyhtYXApO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0YWcgPSBrZXlzW2luZGV4XTtcbiAgICBzdHlsZSA9IFN0cmluZyhtYXBbdGFnXSk7XG5cbiAgICBpZiAodGFnLnNsaWNlKDAsIDIpID09PSAnISEnKSB7XG4gICAgICB0YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZy5zbGljZSgyKTtcbiAgICB9XG4gICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbJ2ZhbGxiYWNrJ11bdGFnXTtcblxuICAgIGlmICh0eXBlICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHtcbiAgICAgIHN0eWxlID0gdHlwZS5zdHlsZUFsaWFzZXNbc3R5bGVdO1xuICAgIH1cblxuICAgIHJlc3VsdFt0YWddID0gc3R5bGU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7XG4gIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuXG4gIHN0cmluZyA9IGNoYXJhY3Rlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblxuICBpZiAoY2hhcmFjdGVyIDw9IDB4RkYpIHtcbiAgICBoYW5kbGUgPSAneCc7XG4gICAgbGVuZ3RoID0gMjtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGKSB7XG4gICAgaGFuZGxlID0gJ3UnO1xuICAgIGxlbmd0aCA9IDQ7XG4gIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDB4RkZGRkZGRkYpIHtcbiAgICBoYW5kbGUgPSAnVSc7XG4gICAgbGVuZ3RoID0gODtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdjb2RlIHBvaW50IHdpdGhpbiBhIHN0cmluZyBtYXkgbm90IGJlIGdyZWF0ZXIgdGhhbiAweEZGRkZGRkZGJyk7XG4gIH1cblxuICByZXR1cm4gJ1xcXFwnICsgaGFuZGxlICsgY29tbW9uLnJlcGVhdCgnMCcsIGxlbmd0aCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xufVxuXG5cbnZhciBRVU9USU5HX1RZUEVfU0lOR0xFID0gMSxcbiAgICBRVU9USU5HX1RZUEVfRE9VQkxFID0gMjtcblxuZnVuY3Rpb24gU3RhdGUob3B0aW9ucykge1xuICB0aGlzLnNjaGVtYSAgICAgICAgPSBvcHRpb25zWydzY2hlbWEnXSB8fCBfZGVmYXVsdDtcbiAgdGhpcy5pbmRlbnQgICAgICAgID0gTWF0aC5tYXgoMSwgKG9wdGlvbnNbJ2luZGVudCddIHx8IDIpKTtcbiAgdGhpcy5ub0FycmF5SW5kZW50ID0gb3B0aW9uc1snbm9BcnJheUluZGVudCddIHx8IGZhbHNlO1xuICB0aGlzLnNraXBJbnZhbGlkICAgPSBvcHRpb25zWydza2lwSW52YWxpZCddIHx8IGZhbHNlO1xuICB0aGlzLmZsb3dMZXZlbCAgICAgPSAoY29tbW9uLmlzTm90aGluZyhvcHRpb25zWydmbG93TGV2ZWwnXSkgPyAtMSA6IG9wdGlvbnNbJ2Zsb3dMZXZlbCddKTtcbiAgdGhpcy5zdHlsZU1hcCAgICAgID0gY29tcGlsZVN0eWxlTWFwKHRoaXMuc2NoZW1hLCBvcHRpb25zWydzdHlsZXMnXSB8fCBudWxsKTtcbiAgdGhpcy5zb3J0S2V5cyAgICAgID0gb3B0aW9uc1snc29ydEtleXMnXSB8fCBmYWxzZTtcbiAgdGhpcy5saW5lV2lkdGggICAgID0gb3B0aW9uc1snbGluZVdpZHRoJ10gfHwgODA7XG4gIHRoaXMubm9SZWZzICAgICAgICA9IG9wdGlvbnNbJ25vUmVmcyddIHx8IGZhbHNlO1xuICB0aGlzLm5vQ29tcGF0TW9kZSAgPSBvcHRpb25zWydub0NvbXBhdE1vZGUnXSB8fCBmYWxzZTtcbiAgdGhpcy5jb25kZW5zZUZsb3cgID0gb3B0aW9uc1snY29uZGVuc2VGbG93J10gfHwgZmFsc2U7XG4gIHRoaXMucXVvdGluZ1R5cGUgICA9IG9wdGlvbnNbJ3F1b3RpbmdUeXBlJ10gPT09ICdcIicgPyBRVU9USU5HX1RZUEVfRE9VQkxFIDogUVVPVElOR19UWVBFX1NJTkdMRTtcbiAgdGhpcy5mb3JjZVF1b3RlcyAgID0gb3B0aW9uc1snZm9yY2VRdW90ZXMnXSB8fCBmYWxzZTtcbiAgdGhpcy5yZXBsYWNlciAgICAgID0gdHlwZW9mIG9wdGlvbnNbJ3JlcGxhY2VyJ10gPT09ICdmdW5jdGlvbicgPyBvcHRpb25zWydyZXBsYWNlciddIDogbnVsbDtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuXG4gIHRoaXMudGFnID0gbnVsbDtcbiAgdGhpcy5yZXN1bHQgPSAnJztcblxuICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTtcbiAgdGhpcy51c2VkRHVwbGljYXRlcyA9IG51bGw7XG59XG5cbi8vIEluZGVudHMgZXZlcnkgbGluZSBpbiBhIHN0cmluZy4gRW1wdHkgbGluZXMgKFxcbiBvbmx5KSBhcmUgbm90IGluZGVudGVkLlxuZnVuY3Rpb24gaW5kZW50U3RyaW5nKHN0cmluZywgc3BhY2VzKSB7XG4gIHZhciBpbmQgPSBjb21tb24ucmVwZWF0KCcgJywgc3BhY2VzKSxcbiAgICAgIHBvc2l0aW9uID0gMCxcbiAgICAgIG5leHQgPSAtMSxcbiAgICAgIHJlc3VsdCA9ICcnLFxuICAgICAgbGluZSxcbiAgICAgIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV4dCA9IHN0cmluZy5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uKTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lID0gc3RyaW5nLnNsaWNlKHBvc2l0aW9uLCBuZXh0ICsgMSk7XG4gICAgICBwb3NpdGlvbiA9IG5leHQgKyAxO1xuICAgIH1cblxuICAgIGlmIChsaW5lLmxlbmd0aCAmJiBsaW5lICE9PSAnXFxuJykgcmVzdWx0ICs9IGluZDtcblxuICAgIHJlc3VsdCArPSBsaW5lO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpIHtcbiAgcmV0dXJuICdcXG4nICsgY29tbW9uLnJlcGVhdCgnICcsIHN0YXRlLmluZGVudCAqIGxldmVsKTtcbn1cblxuZnVuY3Rpb24gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBzdHIpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIHR5cGU7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHR5cGUgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTtcblxuICAgIGlmICh0eXBlLnJlc29sdmUoc3RyKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBbMzNdIHMtd2hpdGUgOjo9IHMtc3BhY2UgfCBzLXRhYlxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHtcbiAgcmV0dXJuIGMgPT09IENIQVJfU1BBQ0UgfHwgYyA9PT0gQ0hBUl9UQUI7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGNhbiBiZSBwcmludGVkIHdpdGhvdXQgZXNjYXBpbmcuXG4vLyBGcm9tIFlBTUwgMS4yOiBcImFueSBhbGxvd2VkIGNoYXJhY3RlcnMga25vd24gdG8gYmUgbm9uLXByaW50YWJsZVxuLy8gc2hvdWxkIGFsc28gYmUgZXNjYXBlZC4gW0hvd2V2ZXIsXSBUaGlzIGlzblx1MjAxOXQgbWFuZGF0b3J5XCJcbi8vIERlcml2ZWQgZnJvbSBuYi1jaGFyIC0gXFx0IC0gI3g4NSAtICN4QTAgLSAjeDIwMjggLSAjeDIwMjkuXG5mdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7XG4gIHJldHVybiAgKDB4MDAwMjAgPD0gYyAmJiBjIDw9IDB4MDAwMDdFKVxuICAgICAgfHwgKCgweDAwMEExIDw9IGMgJiYgYyA8PSAweDAwRDdGRikgJiYgYyAhPT0gMHgyMDI4ICYmIGMgIT09IDB4MjAyOSlcbiAgICAgIHx8ICgoMHgwRTAwMCA8PSBjICYmIGMgPD0gMHgwMEZGRkQpICYmIGMgIT09IENIQVJfQk9NKVxuICAgICAgfHwgICgweDEwMDAwIDw9IGMgJiYgYyA8PSAweDEwRkZGRik7XG59XG5cbi8vIFszNF0gbnMtY2hhciA6Oj0gbmItY2hhciAtIHMtd2hpdGVcbi8vIFsyN10gbmItY2hhciA6Oj0gYy1wcmludGFibGUgLSBiLWNoYXIgLSBjLWJ5dGUtb3JkZXItbWFya1xuLy8gWzI2XSBiLWNoYXIgIDo6PSBiLWxpbmUtZmVlZCB8IGItY2FycmlhZ2UtcmV0dXJuXG4vLyBJbmNsdWRpbmcgcy13aGl0ZSAoZm9yIHNvbWUgcmVhc29uLCBleGFtcGxlcyBkb2Vzbid0IG1hdGNoIHNwZWNzIGluIHRoaXMgYXNwZWN0KVxuLy8gbnMtY2hhciA6Oj0gYy1wcmludGFibGUgLSBiLWxpbmUtZmVlZCAtIGItY2FycmlhZ2UtcmV0dXJuIC0gYy1ieXRlLW9yZGVyLW1hcmtcbmZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKGMpIHtcbiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpXG4gICAgJiYgYyAhPT0gQ0hBUl9CT01cbiAgICAvLyAtIGItY2hhclxuICAgICYmIGMgIT09IENIQVJfQ0FSUklBR0VfUkVUVVJOXG4gICAgJiYgYyAhPT0gQ0hBUl9MSU5FX0ZFRUQ7XG59XG5cbi8vIFsxMjddICBucy1wbGFpbi1zYWZlKGMpIDo6PSBjID0gZmxvdy1vdXQgIFx1MjFEMiBucy1wbGFpbi1zYWZlLW91dFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBmbG93LWluICAgXHUyMUQyIG5zLXBsYWluLXNhZmUtaW5cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gYmxvY2sta2V5IFx1MjFEMiBucy1wbGFpbi1zYWZlLW91dFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBmbG93LWtleSAgXHUyMUQyIG5zLXBsYWluLXNhZmUtaW5cbi8vIFsxMjhdIG5zLXBsYWluLXNhZmUtb3V0IDo6PSBucy1jaGFyXG4vLyBbMTI5XSAgbnMtcGxhaW4tc2FmZS1pbiA6Oj0gbnMtY2hhciAtIGMtZmxvdy1pbmRpY2F0b3Jcbi8vIFsxMzBdICBucy1wbGFpbi1jaGFyKGMpIDo6PSAgKCBucy1wbGFpbi1zYWZlKGMpIC0gXHUyMDFDOlx1MjAxRCAtIFx1MjAxQyNcdTIwMUQgKVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIC8qIEFuIG5zLWNoYXIgcHJlY2VkaW5nICovIFx1MjAxQyNcdTIwMUQgKVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoIFx1MjAxQzpcdTIwMUQgLyogRm9sbG93ZWQgYnkgYW4gbnMtcGxhaW4tc2FmZShjKSAqLyApXG5mdW5jdGlvbiBpc1BsYWluU2FmZShjLCBwcmV2LCBpbmJsb2NrKSB7XG4gIHZhciBjSXNOc0NoYXJPcldoaXRlc3BhY2UgPSBpc05zQ2hhck9yV2hpdGVzcGFjZShjKTtcbiAgdmFyIGNJc05zQ2hhciA9IGNJc05zQ2hhck9yV2hpdGVzcGFjZSAmJiAhaXNXaGl0ZXNwYWNlKGMpO1xuICByZXR1cm4gKFxuICAgIC8vIG5zLXBsYWluLXNhZmVcbiAgICBpbmJsb2NrID8gLy8gYyA9IGZsb3ctaW5cbiAgICAgIGNJc05zQ2hhck9yV2hpdGVzcGFjZVxuICAgICAgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2VcbiAgICAgICAgLy8gLSBjLWZsb3ctaW5kaWNhdG9yXG4gICAgICAgICYmIGMgIT09IENIQVJfQ09NTUFcbiAgICAgICAgJiYgYyAhPT0gQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUXG4gICAgICAgICYmIGMgIT09IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVRcbiAgICAgICAgJiYgYyAhPT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVRcbiAgICAgICAgJiYgYyAhPT0gQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUXG4gIClcbiAgICAvLyBucy1wbGFpbi1jaGFyXG4gICAgJiYgYyAhPT0gQ0hBUl9TSEFSUCAvLyBmYWxzZSBvbiAnIydcbiAgICAmJiAhKHByZXYgPT09IENIQVJfQ09MT04gJiYgIWNJc05zQ2hhcikgLy8gZmFsc2Ugb24gJzogJ1xuICAgIHx8IChpc05zQ2hhck9yV2hpdGVzcGFjZShwcmV2KSAmJiAhaXNXaGl0ZXNwYWNlKHByZXYpICYmIGMgPT09IENIQVJfU0hBUlApIC8vIGNoYW5nZSB0byB0cnVlIG9uICdbXiBdIydcbiAgICB8fCAocHJldiA9PT0gQ0hBUl9DT0xPTiAmJiBjSXNOc0NoYXIpOyAvLyBjaGFuZ2UgdG8gdHJ1ZSBvbiAnOlteIF0nXG59XG5cbi8vIFNpbXBsaWZpZWQgdGVzdCBmb3IgdmFsdWVzIGFsbG93ZWQgYXMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBwbGFpbiBzdHlsZS5cbmZ1bmN0aW9uIGlzUGxhaW5TYWZlRmlyc3QoYykge1xuICAvLyBVc2VzIGEgc3Vic2V0IG9mIG5zLWNoYXIgLSBjLWluZGljYXRvclxuICAvLyB3aGVyZSBucy1jaGFyID0gbmItY2hhciAtIHMtd2hpdGUuXG4gIC8vIE5vIHN1cHBvcnQgb2YgKCAoIFx1MjAxQz9cdTIwMUQgfCBcdTIwMUM6XHUyMDFEIHwgXHUyMDFDLVx1MjAxRCApIC8qIEZvbGxvd2VkIGJ5IGFuIG5zLXBsYWluLXNhZmUoYykpICovICkgcGFydFxuICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT01cbiAgICAmJiAhaXNXaGl0ZXNwYWNlKGMpIC8vIC0gcy13aGl0ZVxuICAgIC8vIC0gKGMtaW5kaWNhdG9yIDo6PVxuICAgIC8vIFx1MjAxQy1cdTIwMUQgfCBcdTIwMUM/XHUyMDFEIHwgXHUyMDFDOlx1MjAxRCB8IFx1MjAxQyxcdTIwMUQgfCBcdTIwMUNbXHUyMDFEIHwgXHUyMDFDXVx1MjAxRCB8IFx1MjAxQ3tcdTIwMUQgfCBcdTIwMUN9XHUyMDFEXG4gICAgJiYgYyAhPT0gQ0hBUl9NSU5VU1xuICAgICYmIGMgIT09IENIQVJfUVVFU1RJT05cbiAgICAmJiBjICE9PSBDSEFSX0NPTE9OXG4gICAgJiYgYyAhPT0gQ0hBUl9DT01NQVxuICAgICYmIGMgIT09IENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVFxuICAgICYmIGMgIT09IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVRcbiAgICAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVFxuICAgICYmIGMgIT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVFxuICAgIC8vIHwgXHUyMDFDI1x1MjAxRCB8IFx1MjAxQyZcdTIwMUQgfCBcdTIwMUMqXHUyMDFEIHwgXHUyMDFDIVx1MjAxRCB8IFx1MjAxQ3xcdTIwMUQgfCBcdTIwMUM9XHUyMDFEIHwgXHUyMDFDPlx1MjAxRCB8IFx1MjAxQydcdTIwMUQgfCBcdTIwMUNcIlx1MjAxRFxuICAgICYmIGMgIT09IENIQVJfU0hBUlBcbiAgICAmJiBjICE9PSBDSEFSX0FNUEVSU0FORFxuICAgICYmIGMgIT09IENIQVJfQVNURVJJU0tcbiAgICAmJiBjICE9PSBDSEFSX0VYQ0xBTUFUSU9OXG4gICAgJiYgYyAhPT0gQ0hBUl9WRVJUSUNBTF9MSU5FXG4gICAgJiYgYyAhPT0gQ0hBUl9FUVVBTFNcbiAgICAmJiBjICE9PSBDSEFSX0dSRUFURVJfVEhBTlxuICAgICYmIGMgIT09IENIQVJfU0lOR0xFX1FVT1RFXG4gICAgJiYgYyAhPT0gQ0hBUl9ET1VCTEVfUVVPVEVcbiAgICAvLyB8IFx1MjAxQyVcdTIwMUQgfCBcdTIwMUNAXHUyMDFEIHwgXHUyMDFDYFx1MjAxRClcbiAgICAmJiBjICE9PSBDSEFSX1BFUkNFTlRcbiAgICAmJiBjICE9PSBDSEFSX0NPTU1FUkNJQUxfQVRcbiAgICAmJiBjICE9PSBDSEFSX0dSQVZFX0FDQ0VOVDtcbn1cblxuLy8gU2ltcGxpZmllZCB0ZXN0IGZvciB2YWx1ZXMgYWxsb3dlZCBhcyB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gcGxhaW4gc3R5bGUuXG5mdW5jdGlvbiBpc1BsYWluU2FmZUxhc3QoYykge1xuICAvLyBqdXN0IG5vdCB3aGl0ZXNwYWNlIG9yIGNvbG9uLCBpdCB3aWxsIGJlIGNoZWNrZWQgdG8gYmUgcGxhaW4gY2hhcmFjdGVyIGxhdGVyXG4gIHJldHVybiAhaXNXaGl0ZXNwYWNlKGMpICYmIGMgIT09IENIQVJfQ09MT047XG59XG5cbi8vIFNhbWUgYXMgJ3N0cmluZycuY29kZVBvaW50QXQocG9zKSwgYnV0IHdvcmtzIGluIG9sZGVyIGJyb3dzZXJzLlxuZnVuY3Rpb24gY29kZVBvaW50QXQoc3RyaW5nLCBwb3MpIHtcbiAgdmFyIGZpcnN0ID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zKSwgc2Vjb25kO1xuICBpZiAoZmlyc3QgPj0gMHhEODAwICYmIGZpcnN0IDw9IDB4REJGRiAmJiBwb3MgKyAxIDwgc3RyaW5nLmxlbmd0aCkge1xuICAgIHNlY29uZCA9IHN0cmluZy5jaGFyQ29kZUF0KHBvcyArIDEpO1xuICAgIGlmIChzZWNvbmQgPj0gMHhEQzAwICYmIHNlY29uZCA8PSAweERGRkYpIHtcbiAgICAgIC8vIGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZVxuICAgICAgcmV0dXJuIChmaXJzdCAtIDB4RDgwMCkgKiAweDQwMCArIHNlY29uZCAtIDB4REMwMCArIDB4MTAwMDA7XG4gICAgfVxuICB9XG4gIHJldHVybiBmaXJzdDtcbn1cblxuLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGJsb2NrIGluZGVudGF0aW9uIGluZGljYXRvciBpcyByZXF1aXJlZC5cbmZ1bmN0aW9uIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSB7XG4gIHZhciBsZWFkaW5nU3BhY2VSZSA9IC9eXFxuKiAvO1xuICByZXR1cm4gbGVhZGluZ1NwYWNlUmUudGVzdChzdHJpbmcpO1xufVxuXG52YXIgU1RZTEVfUExBSU4gICA9IDEsXG4gICAgU1RZTEVfU0lOR0xFICA9IDIsXG4gICAgU1RZTEVfTElURVJBTCA9IDMsXG4gICAgU1RZTEVfRk9MREVEICA9IDQsXG4gICAgU1RZTEVfRE9VQkxFICA9IDU7XG5cbi8vIERldGVybWluZXMgd2hpY2ggc2NhbGFyIHN0eWxlcyBhcmUgcG9zc2libGUgYW5kIHJldHVybnMgdGhlIHByZWZlcnJlZCBzdHlsZS5cbi8vIGxpbmVXaWR0aCA9IC0xID0+IG5vIGxpbWl0LlxuLy8gUHJlLWNvbmRpdGlvbnM6IHN0ci5sZW5ndGggPiAwLlxuLy8gUG9zdC1jb25kaXRpb25zOlxuLy8gICAgU1RZTEVfUExBSU4gb3IgU1RZTEVfU0lOR0xFID0+IG5vIFxcbiBhcmUgaW4gdGhlIHN0cmluZy5cbi8vICAgIFNUWUxFX0xJVEVSQUwgPT4gbm8gbGluZXMgYXJlIHN1aXRhYmxlIGZvciBmb2xkaW5nIChvciBsaW5lV2lkdGggaXMgLTEpLlxuLy8gICAgU1RZTEVfRk9MREVEID0+IGEgbGluZSA+IGxpbmVXaWR0aCBhbmQgY2FuIGJlIGZvbGRlZCAoYW5kIGxpbmVXaWR0aCAhPSAtMSkuXG5mdW5jdGlvbiBjaG9vc2VTY2FsYXJTdHlsZShzdHJpbmcsIHNpbmdsZUxpbmVPbmx5LCBpbmRlbnRQZXJMZXZlbCwgbGluZVdpZHRoLFxuICB0ZXN0QW1iaWd1b3VzVHlwZSwgcXVvdGluZ1R5cGUsIGZvcmNlUXVvdGVzLCBpbmJsb2NrKSB7XG5cbiAgdmFyIGk7XG4gIHZhciBjaGFyID0gMDtcbiAgdmFyIHByZXZDaGFyID0gbnVsbDtcbiAgdmFyIGhhc0xpbmVCcmVhayA9IGZhbHNlO1xuICB2YXIgaGFzRm9sZGFibGVMaW5lID0gZmFsc2U7IC8vIG9ubHkgY2hlY2tlZCBpZiBzaG91bGRUcmFja1dpZHRoXG4gIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTtcbiAgdmFyIHByZXZpb3VzTGluZUJyZWFrID0gLTE7IC8vIGNvdW50IHRoZSBmaXJzdCBsaW5lIGNvcnJlY3RseVxuICB2YXIgcGxhaW4gPSBpc1BsYWluU2FmZUZpcnN0KGNvZGVQb2ludEF0KHN0cmluZywgMCkpXG4gICAgICAgICAgJiYgaXNQbGFpblNhZmVMYXN0KGNvZGVQb2ludEF0KHN0cmluZywgc3RyaW5nLmxlbmd0aCAtIDEpKTtcblxuICBpZiAoc2luZ2xlTGluZU9ubHkgfHwgZm9yY2VRdW90ZXMpIHtcbiAgICAvLyBDYXNlOiBubyBibG9jayBzdHlsZXMuXG4gICAgLy8gQ2hlY2sgZm9yIGRpc2FsbG93ZWQgY2hhcmFjdGVycyB0byBydWxlIG91dCBwbGFpbiBhbmQgc2luZ2xlLlxuICAgIGZvciAoaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDB4MTAwMDAgPyBpICs9IDIgOiBpKyspIHtcbiAgICAgIGNoYXIgPSBjb2RlUG9pbnRBdChzdHJpbmcsIGkpO1xuICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkge1xuICAgICAgICByZXR1cm4gU1RZTEVfRE9VQkxFO1xuICAgICAgfVxuICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7XG4gICAgICBwcmV2Q2hhciA9IGNoYXI7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIENhc2U6IGJsb2NrIHN0eWxlcyBwZXJtaXR0ZWQuXG4gICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGNoYXIgPj0gMHgxMDAwMCA/IGkgKz0gMiA6IGkrKykge1xuICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7XG4gICAgICBpZiAoY2hhciA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgICAgaGFzTGluZUJyZWFrID0gdHJ1ZTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgYW55IGxpbmUgY2FuIGJlIGZvbGRlZC5cbiAgICAgICAgaWYgKHNob3VsZFRyYWNrV2lkdGgpIHtcbiAgICAgICAgICBoYXNGb2xkYWJsZUxpbmUgPSBoYXNGb2xkYWJsZUxpbmUgfHxcbiAgICAgICAgICAgIC8vIEZvbGRhYmxlIGxpbmUgPSB0b28gbG9uZywgYW5kIG5vdCBtb3JlLWluZGVudGVkLlxuICAgICAgICAgICAgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiZcbiAgICAgICAgICAgICBzdHJpbmdbcHJldmlvdXNMaW5lQnJlYWsgKyAxXSAhPT0gJyAnKTtcbiAgICAgICAgICBwcmV2aW91c0xpbmVCcmVhayA9IGk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7XG4gICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7XG4gICAgICB9XG4gICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZDaGFyLCBpbmJsb2NrKTtcbiAgICAgIHByZXZDaGFyID0gY2hhcjtcbiAgICB9XG4gICAgLy8gaW4gY2FzZSB0aGUgZW5kIGlzIG1pc3NpbmcgYSBcXG5cbiAgICBoYXNGb2xkYWJsZUxpbmUgPSBoYXNGb2xkYWJsZUxpbmUgfHwgKHNob3VsZFRyYWNrV2lkdGggJiZcbiAgICAgIChpIC0gcHJldmlvdXNMaW5lQnJlYWsgLSAxID4gbGluZVdpZHRoICYmXG4gICAgICAgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICcgJykpO1xuICB9XG4gIC8vIEFsdGhvdWdoIGV2ZXJ5IHN0eWxlIGNhbiByZXByZXNlbnQgXFxuIHdpdGhvdXQgZXNjYXBpbmcsIHByZWZlciBibG9jayBzdHlsZXNcbiAgLy8gZm9yIG11bHRpbGluZSwgc2luY2UgdGhleSdyZSBtb3JlIHJlYWRhYmxlIGFuZCB0aGV5IGRvbid0IGFkZCBlbXB0eSBsaW5lcy5cbiAgLy8gQWxzbyBwcmVmZXIgZm9sZGluZyBhIHN1cGVyLWxvbmcgbGluZS5cbiAgaWYgKCFoYXNMaW5lQnJlYWsgJiYgIWhhc0ZvbGRhYmxlTGluZSkge1xuICAgIC8vIFN0cmluZ3MgaW50ZXJwcmV0YWJsZSBhcyBhbm90aGVyIHR5cGUgaGF2ZSB0byBiZSBxdW90ZWQ7XG4gICAgLy8gZS5nLiB0aGUgc3RyaW5nICd0cnVlJyB2cy4gdGhlIGJvb2xlYW4gdHJ1ZS5cbiAgICBpZiAocGxhaW4gJiYgIWZvcmNlUXVvdGVzICYmICF0ZXN0QW1iaWd1b3VzVHlwZShzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gU1RZTEVfUExBSU47XG4gICAgfVxuICAgIHJldHVybiBxdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/IFNUWUxFX0RPVUJMRSA6IFNUWUxFX1NJTkdMRTtcbiAgfVxuICAvLyBFZGdlIGNhc2U6IGJsb2NrIGluZGVudGF0aW9uIGluZGljYXRvciBjYW4gb25seSBoYXZlIG9uZSBkaWdpdC5cbiAgaWYgKGluZGVudFBlckxldmVsID4gOSAmJiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykpIHtcbiAgICByZXR1cm4gU1RZTEVfRE9VQkxFO1xuICB9XG4gIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyBibG9jayBzdHlsZXMgYXJlIHZhbGlkLlxuICAvLyBQcmVmZXIgbGl0ZXJhbCBzdHlsZSB1bmxlc3Mgd2Ugd2FudCB0byBmb2xkLlxuICBpZiAoIWZvcmNlUXVvdGVzKSB7XG4gICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7XG4gIH1cbiAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFO1xufVxuXG4vLyBOb3RlOiBsaW5lIGJyZWFraW5nL2ZvbGRpbmcgaXMgaW1wbGVtZW50ZWQgZm9yIG9ubHkgdGhlIGZvbGRlZCBzdHlsZS5cbi8vIE5CLiBXZSBkcm9wIHRoZSBsYXN0IHRyYWlsaW5nIG5ld2xpbmUgKGlmIGFueSkgb2YgYSByZXR1cm5lZCBibG9jayBzY2FsYXJcbi8vICBzaW5jZSB0aGUgZHVtcGVyIGFkZHMgaXRzIG93biBuZXdsaW5lLiBUaGlzIGFsd2F5cyB3b3Jrczpcbi8vICAgIFx1MjAyMiBObyBlbmRpbmcgbmV3bGluZSA9PiB1bmFmZmVjdGVkOyBhbHJlYWR5IHVzaW5nIHN0cmlwIFwiLVwiIGNob21waW5nLlxuLy8gICAgXHUyMDIyIEVuZGluZyBuZXdsaW5lICAgID0+IHJlbW92ZWQgdGhlbiByZXN0b3JlZC5cbi8vICBJbXBvcnRhbnRseSwgdGhpcyBrZWVwcyB0aGUgXCIrXCIgY2hvbXAgaW5kaWNhdG9yIGZyb20gZ2FpbmluZyBhbiBleHRyYSBsaW5lLlxuZnVuY3Rpb24gd3JpdGVTY2FsYXIoc3RhdGUsIHN0cmluZywgbGV2ZWwsIGlza2V5LCBpbmJsb2NrKSB7XG4gIHN0YXRlLmR1bXAgPSAoZnVuY3Rpb24gKCkge1xuICAgIGlmIChzdHJpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnXCJcIicgOiBcIicnXCI7XG4gICAgfVxuICAgIGlmICghc3RhdGUubm9Db21wYXRNb2RlKSB7XG4gICAgICBpZiAoREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVguaW5kZXhPZihzdHJpbmcpICE9PSAtMSB8fCBERVBSRUNBVEVEX0JBU0U2MF9TWU5UQVgudGVzdChzdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5xdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/ICgnXCInICsgc3RyaW5nICsgJ1wiJykgOiAoXCInXCIgKyBzdHJpbmcgKyBcIidcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGluZGVudCA9IHN0YXRlLmluZGVudCAqIE1hdGgubWF4KDEsIGxldmVsKTsgLy8gbm8gMC1pbmRlbnQgc2NhbGFyc1xuICAgIC8vIEFzIGluZGVudGF0aW9uIGdldHMgZGVlcGVyLCBsZXQgdGhlIHdpZHRoIGRlY3JlYXNlIG1vbm90b25pY2FsbHlcbiAgICAvLyB0byB0aGUgbG93ZXIgYm91bmQgbWluKHN0YXRlLmxpbmVXaWR0aCwgNDApLlxuICAgIC8vIE5vdGUgdGhhdCB0aGlzIGltcGxpZXNcbiAgICAvLyAgc3RhdGUubGluZVdpZHRoIFx1MjI2NCA0MCArIHN0YXRlLmluZGVudDogd2lkdGggaXMgZml4ZWQgYXQgdGhlIGxvd2VyIGJvdW5kLlxuICAgIC8vICBzdGF0ZS5saW5lV2lkdGggPiA0MCArIHN0YXRlLmluZGVudDogd2lkdGggZGVjcmVhc2VzIHVudGlsIHRoZSBsb3dlciBib3VuZC5cbiAgICAvLyBUaGlzIGJlaGF2ZXMgYmV0dGVyIHRoYW4gYSBjb25zdGFudCBtaW5pbXVtIHdpZHRoIHdoaWNoIGRpc2FsbG93cyBuYXJyb3dlciBvcHRpb25zLFxuICAgIC8vIG9yIGFuIGluZGVudCB0aHJlc2hvbGQgd2hpY2ggY2F1c2VzIHRoZSB3aWR0aCB0byBzdWRkZW5seSBpbmNyZWFzZS5cbiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMVxuICAgICAgPyAtMSA6IE1hdGgubWF4KE1hdGgubWluKHN0YXRlLmxpbmVXaWR0aCwgNDApLCBzdGF0ZS5saW5lV2lkdGggLSBpbmRlbnQpO1xuXG4gICAgLy8gV2l0aG91dCBrbm93aW5nIGlmIGtleXMgYXJlIGltcGxpY2l0L2V4cGxpY2l0LCBhc3N1bWUgaW1wbGljaXQgZm9yIHNhZmV0eS5cbiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleVxuICAgICAgLy8gTm8gYmxvY2sgc3R5bGVzIGluIGZsb3cgbW9kZS5cbiAgICAgIHx8IChzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWwpO1xuICAgIGZ1bmN0aW9uIHRlc3RBbWJpZ3VpdHkoc3RyaW5nKSB7XG4gICAgICByZXR1cm4gdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBzdHJpbmcpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoY2hvb3NlU2NhbGFyU3R5bGUoc3RyaW5nLCBzaW5nbGVMaW5lT25seSwgc3RhdGUuaW5kZW50LCBsaW5lV2lkdGgsXG4gICAgICB0ZXN0QW1iaWd1aXR5LCBzdGF0ZS5xdW90aW5nVHlwZSwgc3RhdGUuZm9yY2VRdW90ZXMgJiYgIWlza2V5LCBpbmJsb2NrKSkge1xuXG4gICAgICBjYXNlIFNUWUxFX1BMQUlOOlxuICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgY2FzZSBTVFlMRV9TSU5HTEU6XG4gICAgICAgIHJldHVybiBcIidcIiArIHN0cmluZy5yZXBsYWNlKC8nL2csIFwiJydcIikgKyBcIidcIjtcbiAgICAgIGNhc2UgU1RZTEVfTElURVJBTDpcbiAgICAgICAgcmV0dXJuICd8JyArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KVxuICAgICAgICAgICsgZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKHN0cmluZywgaW5kZW50KSk7XG4gICAgICBjYXNlIFNUWUxFX0ZPTERFRDpcbiAgICAgICAgcmV0dXJuICc+JyArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KVxuICAgICAgICAgICsgZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKGZvbGRTdHJpbmcoc3RyaW5nLCBsaW5lV2lkdGgpLCBpbmRlbnQpKTtcbiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOlxuICAgICAgICByZXR1cm4gJ1wiJyArIGVzY2FwZVN0cmluZyhzdHJpbmcpICsgJ1wiJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBleGNlcHRpb24oJ2ltcG9zc2libGUgZXJyb3I6IGludmFsaWQgc2NhbGFyIHN0eWxlJyk7XG4gICAgfVxuICB9KCkpO1xufVxuXG4vLyBQcmUtY29uZGl0aW9uczogc3RyaW5nIGlzIHZhbGlkIGZvciBhIGJsb2NrIHNjYWxhciwgMSA8PSBpbmRlbnRQZXJMZXZlbCA8PSA5LlxuZnVuY3Rpb24gYmxvY2tIZWFkZXIoc3RyaW5nLCBpbmRlbnRQZXJMZXZlbCkge1xuICB2YXIgaW5kZW50SW5kaWNhdG9yID0gbmVlZEluZGVudEluZGljYXRvcihzdHJpbmcpID8gU3RyaW5nKGluZGVudFBlckxldmVsKSA6ICcnO1xuXG4gIC8vIG5vdGUgdGhlIHNwZWNpYWwgY2FzZTogdGhlIHN0cmluZyAnXFxuJyBjb3VudHMgYXMgYSBcInRyYWlsaW5nXCIgZW1wdHkgbGluZS5cbiAgdmFyIGNsaXAgPSAgICAgICAgICBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAnXFxuJztcbiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAnXFxuJyB8fCBzdHJpbmcgPT09ICdcXG4nKTtcbiAgdmFyIGNob21wID0ga2VlcCA/ICcrJyA6IChjbGlwID8gJycgOiAnLScpO1xuXG4gIHJldHVybiBpbmRlbnRJbmRpY2F0b3IgKyBjaG9tcCArICdcXG4nO1xufVxuXG4vLyAoU2VlIHRoZSBub3RlIGZvciB3cml0ZVNjYWxhci4pXG5mdW5jdGlvbiBkcm9wRW5kaW5nTmV3bGluZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICdcXG4nID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZztcbn1cblxuLy8gTm90ZTogYSBsb25nIGxpbmUgd2l0aG91dCBhIHN1aXRhYmxlIGJyZWFrIHBvaW50IHdpbGwgZXhjZWVkIHRoZSB3aWR0aCBsaW1pdC5cbi8vIFByZS1jb25kaXRpb25zOiBldmVyeSBjaGFyIGluIHN0ciBpc1ByaW50YWJsZSwgc3RyLmxlbmd0aCA+IDAsIHdpZHRoID4gMC5cbmZ1bmN0aW9uIGZvbGRTdHJpbmcoc3RyaW5nLCB3aWR0aCkge1xuICAvLyBJbiBmb2xkZWQgc3R5bGUsICRrJCBjb25zZWN1dGl2ZSBuZXdsaW5lcyBvdXRwdXQgYXMgJGsrMSQgbmV3bGluZXNcdTIwMTRcbiAgLy8gdW5sZXNzIHRoZXkncmUgYmVmb3JlIG9yIGFmdGVyIGEgbW9yZS1pbmRlbnRlZCBsaW5lLCBvciBhdCB0aGUgdmVyeVxuICAvLyBiZWdpbm5pbmcgb3IgZW5kLCBpbiB3aGljaCBjYXNlICRrJCBtYXBzIHRvICRrJC5cbiAgLy8gVGhlcmVmb3JlLCBwYXJzZSBlYWNoIGNodW5rIGFzIG5ld2xpbmUocykgZm9sbG93ZWQgYnkgYSBjb250ZW50IGxpbmUuXG4gIHZhciBsaW5lUmUgPSAvKFxcbispKFteXFxuXSopL2c7XG5cbiAgLy8gZmlyc3QgbGluZSAocG9zc2libHkgYW4gZW1wdHkgbGluZSlcbiAgdmFyIHJlc3VsdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG5leHRMRiA9IHN0cmluZy5pbmRleE9mKCdcXG4nKTtcbiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDtcbiAgICBsaW5lUmUubGFzdEluZGV4ID0gbmV4dExGO1xuICAgIHJldHVybiBmb2xkTGluZShzdHJpbmcuc2xpY2UoMCwgbmV4dExGKSwgd2lkdGgpO1xuICB9KCkpO1xuICAvLyBJZiB3ZSBoYXZlbid0IHJlYWNoZWQgdGhlIGZpcnN0IGNvbnRlbnQgbGluZSB5ZXQsIGRvbid0IGFkZCBhbiBleHRyYSBcXG4uXG4gIHZhciBwcmV2TW9yZUluZGVudGVkID0gc3RyaW5nWzBdID09PSAnXFxuJyB8fCBzdHJpbmdbMF0gPT09ICcgJztcbiAgdmFyIG1vcmVJbmRlbnRlZDtcblxuICAvLyByZXN0IG9mIHRoZSBsaW5lc1xuICB2YXIgbWF0Y2g7XG4gIHdoaWxlICgobWF0Y2ggPSBsaW5lUmUuZXhlYyhzdHJpbmcpKSkge1xuICAgIHZhciBwcmVmaXggPSBtYXRjaFsxXSwgbGluZSA9IG1hdGNoWzJdO1xuICAgIG1vcmVJbmRlbnRlZCA9IChsaW5lWzBdID09PSAnICcpO1xuICAgIHJlc3VsdCArPSBwcmVmaXhcbiAgICAgICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gJydcbiAgICAgICAgPyAnXFxuJyA6ICcnKVxuICAgICAgKyBmb2xkTGluZShsaW5lLCB3aWR0aCk7XG4gICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEdyZWVkeSBsaW5lIGJyZWFraW5nLlxuLy8gUGlja3MgdGhlIGxvbmdlc3QgbGluZSB1bmRlciB0aGUgbGltaXQgZWFjaCB0aW1lLFxuLy8gb3RoZXJ3aXNlIHNldHRsZXMgZm9yIHRoZSBzaG9ydGVzdCBsaW5lIG92ZXIgdGhlIGxpbWl0LlxuLy8gTkIuIE1vcmUtaW5kZW50ZWQgbGluZXMgKmNhbm5vdCogYmUgZm9sZGVkLCBhcyB0aGF0IHdvdWxkIGFkZCBhbiBleHRyYSBcXG4uXG5mdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkge1xuICBpZiAobGluZSA9PT0gJycgfHwgbGluZVswXSA9PT0gJyAnKSByZXR1cm4gbGluZTtcblxuICAvLyBTaW5jZSBhIG1vcmUtaW5kZW50ZWQgbGluZSBhZGRzIGEgXFxuLCBicmVha3MgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgYSBzcGFjZS5cbiAgdmFyIGJyZWFrUmUgPSAvIFteIF0vZzsgLy8gbm90ZTogdGhlIG1hdGNoIGluZGV4IHdpbGwgYWx3YXlzIGJlIDw9IGxlbmd0aC0yLlxuICB2YXIgbWF0Y2g7XG4gIC8vIHN0YXJ0IGlzIGFuIGluY2x1c2l2ZSBpbmRleC4gZW5kLCBjdXJyLCBhbmQgbmV4dCBhcmUgZXhjbHVzaXZlLlxuICB2YXIgc3RhcnQgPSAwLCBlbmQsIGN1cnIgPSAwLCBuZXh0ID0gMDtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuXG4gIC8vIEludmFyaWFudHM6IDAgPD0gc3RhcnQgPD0gbGVuZ3RoLTEuXG4gIC8vICAgMCA8PSBjdXJyIDw9IG5leHQgPD0gbWF4KDAsIGxlbmd0aC0yKS4gY3VyciAtIHN0YXJ0IDw9IHdpZHRoLlxuICAvLyBJbnNpZGUgdGhlIGxvb3A6XG4gIC8vICAgQSBtYXRjaCBpbXBsaWVzIGxlbmd0aCA+PSAyLCBzbyBjdXJyIGFuZCBuZXh0IGFyZSA8PSBsZW5ndGgtMi5cbiAgd2hpbGUgKChtYXRjaCA9IGJyZWFrUmUuZXhlYyhsaW5lKSkpIHtcbiAgICBuZXh0ID0gbWF0Y2guaW5kZXg7XG4gICAgLy8gbWFpbnRhaW4gaW52YXJpYW50OiBjdXJyIC0gc3RhcnQgPD0gd2lkdGhcbiAgICBpZiAobmV4dCAtIHN0YXJ0ID4gd2lkdGgpIHtcbiAgICAgIGVuZCA9IChjdXJyID4gc3RhcnQpID8gY3VyciA6IG5leHQ7IC8vIGRlcml2ZSBlbmQgPD0gbGVuZ3RoLTJcbiAgICAgIHJlc3VsdCArPSAnXFxuJyArIGxpbmUuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgICAvLyBza2lwIHRoZSBzcGFjZSB0aGF0IHdhcyBvdXRwdXQgYXMgXFxuXG4gICAgICBzdGFydCA9IGVuZCArIDE7ICAgICAgICAgICAgICAgICAgICAvLyBkZXJpdmUgc3RhcnQgPD0gbGVuZ3RoLTFcbiAgICB9XG4gICAgY3VyciA9IG5leHQ7XG4gIH1cblxuICAvLyBCeSB0aGUgaW52YXJpYW50cywgc3RhcnQgPD0gbGVuZ3RoLTEsIHNvIHRoZXJlIGlzIHNvbWV0aGluZyBsZWZ0IG92ZXIuXG4gIC8vIEl0IGlzIGVpdGhlciB0aGUgd2hvbGUgc3RyaW5nIG9yIGEgcGFydCBzdGFydGluZyBmcm9tIG5vbi13aGl0ZXNwYWNlLlxuICByZXN1bHQgKz0gJ1xcbic7XG4gIC8vIEluc2VydCBhIGJyZWFrIGlmIHRoZSByZW1haW5kZXIgaXMgdG9vIGxvbmcgYW5kIHRoZXJlIGlzIGEgYnJlYWsgYXZhaWxhYmxlLlxuICBpZiAobGluZS5sZW5ndGggLSBzdGFydCA+IHdpZHRoICYmIGN1cnIgPiBzdGFydCkge1xuICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICdcXG4nICsgbGluZS5zbGljZShjdXJyICsgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKTsgLy8gZHJvcCBleHRyYSBcXG4gam9pbmVyXG59XG5cbi8vIEVzY2FwZXMgYSBkb3VibGUtcXVvdGVkIHN0cmluZy5cbmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICB2YXIgY2hhciA9IDA7XG4gIHZhciBlc2NhcGVTZXE7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDB4MTAwMDAgPyBpICs9IDIgOiBpKyspIHtcbiAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTtcbiAgICBlc2NhcGVTZXEgPSBFU0NBUEVfU0VRVUVOQ0VTW2NoYXJdO1xuXG4gICAgaWYgKCFlc2NhcGVTZXEgJiYgaXNQcmludGFibGUoY2hhcikpIHtcbiAgICAgIHJlc3VsdCArPSBzdHJpbmdbaV07XG4gICAgICBpZiAoY2hhciA+PSAweDEwMDAwKSByZXN1bHQgKz0gc3RyaW5nW2kgKyAxXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ICs9IGVzY2FwZVNlcSB8fCBlbmNvZGVIZXgoY2hhcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBvYmplY3QpIHtcbiAgdmFyIF9yZXN1bHQgPSAnJyxcbiAgICAgIF90YWcgICAgPSBzdGF0ZS50YWcsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIHZhbHVlO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHZhbHVlID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGlmIChzdGF0ZS5yZXBsYWNlcikge1xuICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIFdyaXRlIG9ubHkgdmFsaWQgZWxlbWVudHMsIHB1dCBudWxsIGluc3RlYWQgb2YgaW52YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgdmFsdWUsIGZhbHNlLCBmYWxzZSkgfHxcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG51bGwsIGZhbHNlLCBmYWxzZSkpKSB7XG5cbiAgICAgIGlmIChfcmVzdWx0ICE9PSAnJykgX3Jlc3VsdCArPSAnLCcgKyAoIXN0YXRlLmNvbmRlbnNlRmxvdyA/ICcgJyA6ICcnKTtcbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ1snICsgX3Jlc3VsdCArICddJztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGgsXG4gICAgICB2YWx1ZTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB2YWx1ZSA9IG9iamVjdFtpbmRleF07XG5cbiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHtcbiAgICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIFN0cmluZyhpbmRleCksIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBXcml0ZSBvbmx5IHZhbGlkIGVsZW1lbnRzLCBwdXQgbnVsbCBpbnN0ZWFkIG9mIGludmFsaWQgZWxlbWVudHMuXG4gICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpIHx8XG4gICAgICAgICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICB3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgbnVsbCwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpKSkge1xuXG4gICAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gJycpIHtcbiAgICAgICAgX3Jlc3VsdCArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgX3Jlc3VsdCArPSAnLSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfcmVzdWx0ICs9ICctICc7XG4gICAgICB9XG5cbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAnW10nOyAvLyBFbXB0eSBzZXF1ZW5jZSBpZiBubyB2YWxpZCB2YWx1ZXMuXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHtcbiAgdmFyIF9yZXN1bHQgICAgICAgPSAnJyxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSxcbiAgICAgIGluZGV4LFxuICAgICAgbGVuZ3RoLFxuICAgICAgb2JqZWN0S2V5LFxuICAgICAgb2JqZWN0VmFsdWUsXG4gICAgICBwYWlyQnVmZmVyO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcblxuICAgIHBhaXJCdWZmZXIgPSAnJztcbiAgICBpZiAoX3Jlc3VsdCAhPT0gJycpIHBhaXJCdWZmZXIgKz0gJywgJztcblxuICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJ1wiJztcblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHtcbiAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0S2V5LCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIGtleTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSBwYWlyQnVmZmVyICs9ICc/ICc7XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXAgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJ1wiJyA6ICcnKSArICc6JyArIChzdGF0ZS5jb25kZW5zZUZsb3cgPyAnJyA6ICcgJyk7XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdFZhbHVlLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIC8vIEJvdGgga2V5IGFuZCB2YWx1ZSBhcmUgdmFsaWQuXG4gICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9ICd7JyArIF9yZXN1bHQgKyAnfSc7XG59XG5cbmZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ICAgICAgID0gJycsXG4gICAgICBfdGFnICAgICAgICAgID0gc3RhdGUudGFnLFxuICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIG9iamVjdEtleSxcbiAgICAgIG9iamVjdFZhbHVlLFxuICAgICAgZXhwbGljaXRQYWlyLFxuICAgICAgcGFpckJ1ZmZlcjtcblxuICAvLyBBbGxvdyBzb3J0aW5nIGtleXMgc28gdGhhdCB0aGUgb3V0cHV0IGZpbGUgaXMgZGV0ZXJtaW5pc3RpY1xuICBpZiAoc3RhdGUuc29ydEtleXMgPT09IHRydWUpIHtcbiAgICAvLyBEZWZhdWx0IHNvcnRpbmdcbiAgICBvYmplY3RLZXlMaXN0LnNvcnQoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBDdXN0b20gc29ydCBmdW5jdGlvblxuICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7XG4gIH0gZWxzZSBpZiAoc3RhdGUuc29ydEtleXMpIHtcbiAgICAvLyBTb21ldGhpbmcgaXMgd3JvbmdcbiAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdzb3J0S2V5cyBtdXN0IGJlIGEgYm9vbGVhbiBvciBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpckJ1ZmZlciA9ICcnO1xuXG4gICAgaWYgKCFjb21wYWN0IHx8IF9yZXN1bHQgIT09ICcnKSB7XG4gICAgICBwYWlyQnVmZmVyICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICB9XG5cbiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTtcbiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldO1xuXG4gICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7XG4gICAgICBvYmplY3RWYWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwob2JqZWN0LCBvYmplY3RLZXksIG9iamVjdFZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIGtleS5cbiAgICB9XG5cbiAgICBleHBsaWNpdFBhaXIgPSAoc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gJz8nKSB8fFxuICAgICAgICAgICAgICAgICAgIChzdGF0ZS5kdW1wICYmIHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCk7XG5cbiAgICBpZiAoZXhwbGljaXRQYWlyKSB7XG4gICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7XG4gICAgICAgIHBhaXJCdWZmZXIgKz0gJz8nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFpckJ1ZmZlciArPSAnPyAnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFZhbHVlLCB0cnVlLCBleHBsaWNpdFBhaXIpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gJzonO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYWlyQnVmZmVyICs9ICc6ICc7XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgLy8gQm90aCBrZXkgYW5kIHZhbHVlIGFyZSB2YWxpZC5cbiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAne30nOyAvLyBFbXB0eSBtYXBwaW5nIGlmIG5vIHZhbGlkIHBhaXJzLlxufVxuXG5mdW5jdGlvbiBkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGV4cGxpY2l0KSB7XG4gIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZSwgc3R5bGU7XG5cbiAgdHlwZUxpc3QgPSBleHBsaWNpdCA/IHN0YXRlLmV4cGxpY2l0VHlwZXMgOiBzdGF0ZS5pbXBsaWNpdFR5cGVzO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSB0eXBlTGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgdHlwZSA9IHR5cGVMaXN0W2luZGV4XTtcblxuICAgIGlmICgodHlwZS5pbnN0YW5jZU9mICB8fCB0eXBlLnByZWRpY2F0ZSkgJiZcbiAgICAgICAgKCF0eXBlLmluc3RhbmNlT2YgfHwgKCh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JykgJiYgKG9iamVjdCBpbnN0YW5jZW9mIHR5cGUuaW5zdGFuY2VPZikpKSAmJlxuICAgICAgICAoIXR5cGUucHJlZGljYXRlICB8fCB0eXBlLnByZWRpY2F0ZShvYmplY3QpKSkge1xuXG4gICAgICBpZiAoZXhwbGljaXQpIHtcbiAgICAgICAgaWYgKHR5cGUubXVsdGkgJiYgdHlwZS5yZXByZXNlbnROYW1lKSB7XG4gICAgICAgICAgc3RhdGUudGFnID0gdHlwZS5yZXByZXNlbnROYW1lKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUudGFnID0gdHlwZS50YWc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRhZyA9ICc/JztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUucmVwcmVzZW50KSB7XG4gICAgICAgIHN0eWxlID0gc3RhdGUuc3R5bGVNYXBbdHlwZS50YWddIHx8IHR5cGUuZGVmYXVsdFN0eWxlO1xuXG4gICAgICAgIGlmIChfdG9TdHJpbmcuY2FsbCh0eXBlLnJlcHJlc2VudCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXScpIHtcbiAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnQob2JqZWN0LCBzdHlsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZS5yZXByZXNlbnQsIHN0eWxlKSkge1xuICAgICAgICAgIF9yZXN1bHQgPSB0eXBlLnJlcHJlc2VudFtzdHlsZV0ob2JqZWN0LCBzdHlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbignITwnICsgdHlwZS50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgXCInICsgc3R5bGUgKyAnXCIgc3R5bGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIFNlcmlhbGl6ZXMgYG9iamVjdGAgYW5kIHdyaXRlcyBpdCB0byBnbG9iYWwgYHJlc3VsdGAuXG4vLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcywgb3IgZmFsc2Ugb24gaW52YWxpZCBvYmplY3QuXG4vL1xuZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXksIGlzYmxvY2tzZXEpIHtcbiAgc3RhdGUudGFnID0gbnVsbDtcbiAgc3RhdGUuZHVtcCA9IG9iamVjdDtcblxuICBpZiAoIWRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZmFsc2UpKSB7XG4gICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTtcbiAgfVxuXG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7XG4gIHZhciBpbmJsb2NrID0gYmxvY2s7XG4gIHZhciB0YWdTdHI7XG5cbiAgaWYgKGJsb2NrKSB7XG4gICAgYmxvY2sgPSAoc3RhdGUuZmxvd0xldmVsIDwgMCB8fCBzdGF0ZS5mbG93TGV2ZWwgPiBsZXZlbCk7XG4gIH1cblxuICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUgPT09ICdbb2JqZWN0IE9iamVjdF0nIHx8IHR5cGUgPT09ICdbb2JqZWN0IEFycmF5XScsXG4gICAgICBkdXBsaWNhdGVJbmRleCxcbiAgICAgIGR1cGxpY2F0ZTtcblxuICBpZiAob2JqZWN0T3JBcnJheSkge1xuICAgIGR1cGxpY2F0ZUluZGV4ID0gc3RhdGUuZHVwbGljYXRlcy5pbmRleE9mKG9iamVjdCk7XG4gICAgZHVwbGljYXRlID0gZHVwbGljYXRlSW5kZXggIT09IC0xO1xuICB9XG5cbiAgaWYgKChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAnPycpIHx8IGR1cGxpY2F0ZSB8fCAoc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkpIHtcbiAgICBjb21wYWN0ID0gZmFsc2U7XG4gIH1cblxuICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgIHN0YXRlLmR1bXAgPSAnKnJlZl8nICsgZHVwbGljYXRlSW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHtcbiAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgICAgaWYgKGJsb2NrICYmIChPYmplY3Qua2V5cyhzdGF0ZS5kdW1wKS5sZW5ndGggIT09IDApKSB7XG4gICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXApO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArICcgJyArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdbb2JqZWN0IEFycmF5XScpIHtcbiAgICAgIGlmIChibG9jayAmJiAoc3RhdGUuZHVtcC5sZW5ndGggIT09IDApKSB7XG4gICAgICAgIGlmIChzdGF0ZS5ub0FycmF5SW5kZW50ICYmICFpc2Jsb2Nrc2VxICYmIGxldmVsID4gMCkge1xuICAgICAgICAgIHdyaXRlQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwgLSAxLCBzdGF0ZS5kdW1wLCBjb21wYWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wLCBjb21wYWN0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgJyAnICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1tvYmplY3QgU3RyaW5nXScpIHtcbiAgICAgIGlmIChzdGF0ZS50YWcgIT09ICc/Jykge1xuICAgICAgICB3cml0ZVNjYWxhcihzdGF0ZSwgc3RhdGUuZHVtcCwgbGV2ZWwsIGlza2V5LCBpbmJsb2NrKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdbb2JqZWN0IFVuZGVmaW5lZF0nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzdGF0ZS5za2lwSW52YWxpZCkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigndW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgJyArIHR5cGUpO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAnPycpIHtcbiAgICAgIC8vIE5lZWQgdG8gZW5jb2RlIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCB0aG9zZSBhbGxvd2VkIGJ5IHRoZSBzcGVjOlxuICAgICAgLy9cbiAgICAgIC8vIFszNV0gbnMtZGVjLWRpZ2l0ICAgIDo6PSAgWyN4MzAtI3gzOV0gLyogMC05ICovXG4gICAgICAvLyBbMzZdIG5zLWhleC1kaWdpdCAgICA6Oj0gIG5zLWRlYy1kaWdpdFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCBbI3g0MS0jeDQ2XSAvKiBBLUYgKi8gfCBbI3g2MS0jeDY2XSAvKiBhLWYgKi9cbiAgICAgIC8vIFszN10gbnMtYXNjaWktbGV0dGVyIDo6PSAgWyN4NDEtI3g1QV0gLyogQS1aICovIHwgWyN4NjEtI3g3QV0gLyogYS16ICovXG4gICAgICAvLyBbMzhdIG5zLXdvcmQtY2hhciAgICA6Oj0gIG5zLWRlYy1kaWdpdCB8IG5zLWFzY2lpLWxldHRlciB8IFx1MjAxQy1cdTIwMURcbiAgICAgIC8vIFszOV0gbnMtdXJpLWNoYXIgICAgIDo6PSAgXHUyMDFDJVx1MjAxRCBucy1oZXgtZGlnaXQgbnMtaGV4LWRpZ2l0IHwgbnMtd29yZC1jaGFyIHwgXHUyMDFDI1x1MjAxRFxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgfCBcdTIwMUM7XHUyMDFEIHwgXHUyMDFDL1x1MjAxRCB8IFx1MjAxQz9cdTIwMUQgfCBcdTIwMUM6XHUyMDFEIHwgXHUyMDFDQFx1MjAxRCB8IFx1MjAxQyZcdTIwMUQgfCBcdTIwMUM9XHUyMDFEIHwgXHUyMDFDK1x1MjAxRCB8IFx1MjAxQyRcdTIwMUQgfCBcdTIwMUMsXHUyMDFEXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICB8IFx1MjAxQ19cdTIwMUQgfCBcdTIwMUMuXHUyMDFEIHwgXHUyMDFDIVx1MjAxRCB8IFx1MjAxQ35cdTIwMUQgfCBcdTIwMUMqXHUyMDFEIHwgXHUyMDFDJ1x1MjAxRCB8IFx1MjAxQyhcdTIwMUQgfCBcdTIwMUMpXHUyMDFEIHwgXHUyMDFDW1x1MjAxRCB8IFx1MjAxQ11cdTIwMURcbiAgICAgIC8vXG4gICAgICAvLyBBbHNvIG5lZWQgdG8gZW5jb2RlICchJyBiZWNhdXNlIGl0IGhhcyBzcGVjaWFsIG1lYW5pbmcgKGVuZCBvZiB0YWcgcHJlZml4KS5cbiAgICAgIC8vXG4gICAgICB0YWdTdHIgPSBlbmNvZGVVUkkoXG4gICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gJyEnID8gc3RhdGUudGFnLnNsaWNlKDEpIDogc3RhdGUudGFnXG4gICAgICApLnJlcGxhY2UoLyEvZywgJyUyMScpO1xuXG4gICAgICBpZiAoc3RhdGUudGFnWzBdID09PSAnIScpIHtcbiAgICAgICAgdGFnU3RyID0gJyEnICsgdGFnU3RyO1xuICAgICAgfSBlbHNlIGlmICh0YWdTdHIuc2xpY2UoMCwgMTgpID09PSAndGFnOnlhbWwub3JnLDIwMDI6Jykge1xuICAgICAgICB0YWdTdHIgPSAnISEnICsgdGFnU3RyLnNsaWNlKDE4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhZ1N0ciA9ICchPCcgKyB0YWdTdHIgKyAnPic7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLmR1bXAgPSB0YWdTdHIgKyAnICcgKyBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKG9iamVjdCwgc3RhdGUpIHtcbiAgdmFyIG9iamVjdHMgPSBbXSxcbiAgICAgIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gZHVwbGljYXRlc0luZGV4ZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pO1xuICB9XG4gIHN0YXRlLnVzZWREdXBsaWNhdGVzID0gbmV3IEFycmF5KGxlbmd0aCk7XG59XG5cbmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHtcbiAgdmFyIG9iamVjdEtleUxpc3QsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgaW5kZXggPSBvYmplY3RzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBpZiAoZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkgPT09IC0xKSB7XG4gICAgICAgIGR1cGxpY2F0ZXNJbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3Rbb2JqZWN0S2V5TGlzdFtpbmRleF1dLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZHVtcCQxKGlucHV0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIHZhciBzdGF0ZSA9IG5ldyBTdGF0ZShvcHRpb25zKTtcblxuICBpZiAoIXN0YXRlLm5vUmVmcykgZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhpbnB1dCwgc3RhdGUpO1xuXG4gIHZhciB2YWx1ZSA9IGlucHV0O1xuXG4gIGlmIChzdGF0ZS5yZXBsYWNlcikge1xuICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbCh7ICcnOiB2YWx1ZSB9LCAnJywgdmFsdWUpO1xuICB9XG5cbiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgdmFsdWUsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICdcXG4nO1xuXG4gIHJldHVybiAnJztcbn1cblxudmFyIGR1bXBfMSA9IGR1bXAkMTtcblxudmFyIGR1bXBlciA9IHtcblx0ZHVtcDogZHVtcF8xXG59O1xuXG5mdW5jdGlvbiByZW5hbWVkKGZyb20sIHRvKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGdW5jdGlvbiB5YW1sLicgKyBmcm9tICsgJyBpcyByZW1vdmVkIGluIGpzLXlhbWwgNC4gJyArXG4gICAgICAnVXNlIHlhbWwuJyArIHRvICsgJyBpbnN0ZWFkLCB3aGljaCBpcyBub3cgc2FmZSBieSBkZWZhdWx0LicpO1xuICB9O1xufVxuXG5cbnZhciBUeXBlICAgICAgICAgICAgICAgID0gdHlwZTtcbnZhciBTY2hlbWEgICAgICAgICAgICAgID0gc2NoZW1hO1xudmFyIEZBSUxTQUZFX1NDSEVNQSAgICAgPSBmYWlsc2FmZTtcbnZhciBKU09OX1NDSEVNQSAgICAgICAgID0ganNvbjtcbnZhciBDT1JFX1NDSEVNQSAgICAgICAgID0gY29yZTtcbnZhciBERUZBVUxUX1NDSEVNQSAgICAgID0gX2RlZmF1bHQ7XG52YXIgbG9hZCAgICAgICAgICAgICAgICA9IGxvYWRlci5sb2FkO1xudmFyIGxvYWRBbGwgICAgICAgICAgICAgPSBsb2FkZXIubG9hZEFsbDtcbnZhciBkdW1wICAgICAgICAgICAgICAgID0gZHVtcGVyLmR1bXA7XG52YXIgWUFNTEV4Y2VwdGlvbiAgICAgICA9IGV4Y2VwdGlvbjtcblxuLy8gUmUtZXhwb3J0IGFsbCB0eXBlcyBpbiBjYXNlIHVzZXIgd2FudHMgdG8gY3JlYXRlIGN1c3RvbSBzY2hlbWFcbnZhciB0eXBlcyA9IHtcbiAgYmluYXJ5OiAgICBiaW5hcnksXG4gIGZsb2F0OiAgICAgZmxvYXQsXG4gIG1hcDogICAgICAgbWFwLFxuICBudWxsOiAgICAgIF9udWxsLFxuICBwYWlyczogICAgIHBhaXJzLFxuICBzZXQ6ICAgICAgIHNldCxcbiAgdGltZXN0YW1wOiB0aW1lc3RhbXAsXG4gIGJvb2w6ICAgICAgYm9vbCxcbiAgaW50OiAgICAgICBpbnQsXG4gIG1lcmdlOiAgICAgbWVyZ2UsXG4gIG9tYXA6ICAgICAgb21hcCxcbiAgc2VxOiAgICAgICBzZXEsXG4gIHN0cjogICAgICAgc3RyXG59O1xuXG4vLyBSZW1vdmVkIGZ1bmN0aW9ucyBmcm9tIEpTLVlBTUwgMy4wLnhcbnZhciBzYWZlTG9hZCAgICAgICAgICAgID0gcmVuYW1lZCgnc2FmZUxvYWQnLCAnbG9hZCcpO1xudmFyIHNhZmVMb2FkQWxsICAgICAgICAgPSByZW5hbWVkKCdzYWZlTG9hZEFsbCcsICdsb2FkQWxsJyk7XG52YXIgc2FmZUR1bXAgICAgICAgICAgICA9IHJlbmFtZWQoJ3NhZmVEdW1wJywgJ2R1bXAnKTtcblxudmFyIGpzWWFtbCA9IHtcblx0VHlwZTogVHlwZSxcblx0U2NoZW1hOiBTY2hlbWEsXG5cdEZBSUxTQUZFX1NDSEVNQTogRkFJTFNBRkVfU0NIRU1BLFxuXHRKU09OX1NDSEVNQTogSlNPTl9TQ0hFTUEsXG5cdENPUkVfU0NIRU1BOiBDT1JFX1NDSEVNQSxcblx0REVGQVVMVF9TQ0hFTUE6IERFRkFVTFRfU0NIRU1BLFxuXHRsb2FkOiBsb2FkLFxuXHRsb2FkQWxsOiBsb2FkQWxsLFxuXHRkdW1wOiBkdW1wLFxuXHRZQU1MRXhjZXB0aW9uOiBZQU1MRXhjZXB0aW9uLFxuXHR0eXBlczogdHlwZXMsXG5cdHNhZmVMb2FkOiBzYWZlTG9hZCxcblx0c2FmZUxvYWRBbGw6IHNhZmVMb2FkQWxsLFxuXHRzYWZlRHVtcDogc2FmZUR1bXBcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGpzWWFtbDtcbmV4cG9ydCB7IENPUkVfU0NIRU1BLCBERUZBVUxUX1NDSEVNQSwgRkFJTFNBRkVfU0NIRU1BLCBKU09OX1NDSEVNQSwgU2NoZW1hLCBUeXBlLCBZQU1MRXhjZXB0aW9uLCBkdW1wLCBsb2FkLCBsb2FkQWxsLCBzYWZlRHVtcCwgc2FmZUxvYWQsIHNhZmVMb2FkQWxsLCB0eXBlcyB9O1xuIiwgImltcG9ydCAqIGFzIGNvcmUgZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgKiBhcyBjaGFsa0NsYXNzIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGVtb2ppIGZyb20gJ25vZGUtZW1vamknO1xuXG5jb25zdCBOT19HUk9VUCA9IDA7XG5jb25zdCBTVEFSVF9HUk9VUCA9IDE7XG5jb25zdCBFTkRfR1JPVVAgPSAyO1xuY29uc3QgSVNfRVJST1IgPSAzO1xuY29uc3QgSVNfRkFJTEVEID0gNTtcbmNvbnN0IElTX1RJVExFID0gNjtcbmNvbnN0IGNoYWxrID0gY2hhbGtDbGFzcy5kZWZhdWx0O1xuY2xhc3MgTG9nVGFzayB7XG4gIG5hbWU6IHN0cmluZztcblxuICBzdGF0aWMgaW5ncm91cF9zZXR0aW5nOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIHN0YXRpYyBpbmRlbnRXaWR0aCA9IDU7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZS50cmltKCk7XG4gICAgaWYgKExvZ1Rhc2suaW5ncm91cF9zZXR0aW5nW3RoaXMubmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgTG9nVGFzay5pbmdyb3VwX3NldHRpbmdbdGhpcy5uYW1lXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbmdyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBMb2dUYXNrLmluZ3JvdXBfc2V0dGluZ1t0aGlzLm5hbWVdID8/IGZhbHNlO1xuICB9XG5cbiAgc2V0IGluZ3JvdXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBMb2dUYXNrLmluZ3JvdXBfc2V0dGluZ1t0aGlzLm5hbWVdID0gdmFsdWU7XG4gIH1cblxuICBhc3luYyBsb2dTdGVwKFxuICAgIGVtb2ppU3RyOiBzdHJpbmcsXG4gICAgc3RlcDogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgc3RhcnRHcm91cCA9IE5PX0dST1VQLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoc3RlcC5sZW5ndGggPiBMb2dUYXNrLmluZGVudFdpZHRoKSB7XG4gICAgICBMb2dUYXNrLmluZGVudFdpZHRoID0gc3RlcC5sZW5ndGg7XG4gICAgfVxuICAgIGxldCBkZXNjOiBzdHJpbmc7XG4gICAgc3dpdGNoIChzdGVwKSB7XG4gICAgICBjYXNlICdTVEFSVCc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnllbGxvd0JyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdJTkZPJzoge1xuICAgICAgICBkZXNjID0gY2hhbGsuZ3JlZW4oYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnV0FSTic6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnllbGxvdyhgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTVUNDRVNTJzoge1xuICAgICAgICBkZXNjID0gY2hhbGsuZ3JlZW5CcmlnaHQoYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRkFJTFVSRSc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnJlZEJyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFUlJPUic6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnJlZEJyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICcjIyMjIyc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLmN5YW4oYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBkZXNjID0gY2hhbGsud2hpdGUoYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBtc2c6IHN0cmluZztcbiAgICBpZiAodGhpcy5pbmdyb3VwICYmICFwcm9jZXNzLmVudlsnR0lUSFVCX0FDVElPTlMnXSkge1xuICAgICAgY29uc3QgaW5kZW50U3RyID0gWy4uLkFycmF5LmZyb20oeyBsZW5ndGg6IExvZ1Rhc2suaW5kZW50V2lkdGggfSkuZmlsbCgnICcpXS5qb2luKCcnKTtcbiAgICAgIG1zZyA9IGAke2luZGVudFN0cn0gICAke2Vtb2ppU3RyfTogJHt0aGlzLm5hbWV9ID4gJHtkZXNjfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0ZXBTdHIgPSBbXG4gICAgICAgIC4uLnN0ZXAsXG4gICAgICAgIC4uLkFycmF5LmZyb20oeyBsZW5ndGg6IExvZ1Rhc2suaW5kZW50V2lkdGggLSBzdGVwLmxlbmd0aCB9KS5maWxsKCcgJyksXG4gICAgICBdLmpvaW4oJycpO1xuXG4gICAgICBtc2cgPSBgWyR7c3RlcFN0cn1dICR7ZW1vamlTdHJ9OiAke2Rlc2N9YDtcbiAgICB9XG4gICAgc3dpdGNoIChzdGVwKSB7XG4gICAgICBjYXNlICdTVEFSVCc6IHtcbiAgICAgICAgbXNnID0gY2hhbGsueWVsbG93QnJpZ2h0KGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTVUNDRVNTJzoge1xuICAgICAgICBtc2cgPSBjaGFsay53aGl0ZUJyaWdodChgJHttc2d9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRkFJTFVSRSc6IHtcbiAgICAgICAgbXNnID0gY2hhbGsucmVkKGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFUlJPUic6IHtcbiAgICAgICAgbXNnID0gY2hhbGsucmVkKGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpc0Vycm9yaW5nID0gc3RhcnRHcm91cCA9PT0gSVNfRVJST1IgfHwgc3RhcnRHcm91cCA9PT0gSVNfRkFJTEVEO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52WydHSVRIVUJfQUNUSU9OUyddKSB7XG4gICAgICBzd2l0Y2ggKHN0YXJ0R3JvdXApIHtcbiAgICAgICAgY2FzZSBTVEFSVF9HUk9VUDoge1xuICAgICAgICAgIGNvcmUuc3RhcnRHcm91cChtc2cpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBFTkRfR1JPVVA6IHtcbiAgICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIElTX0VSUk9SOiB7XG4gICAgICAgICAgY29yZS5lcnJvcihjaGFsay5iZ1JlZEJyaWdodChtc2cpKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgSVNfRkFJTEVEOiB7XG4gICAgICAgICAgY29yZS5zZXRGYWlsZWQoY2hhbGsuYmdSZWRCcmlnaHQobXNnKSk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgY29yZS5pbmZvKG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRXJyb3JpbmcpIHtcbiAgICAgIGNvcmUuZXJyb3IobXNnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29yZS5pbmZvKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgZGVidWcoZGVzY3JpcHRpb24gPSAnJyk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzLmVudlsnREVCVUcnXSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLmxvZ1N0ZXAoJ1x1RDgzRFx1REM0MVx1RkUwRlx1MjAwRFx1RDgzRFx1RERFOFx1RkUwRicsICdERUJVRycsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBzdGFydChkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0aW9uID09PSAnJyA/IGBTdGFydGluZyAke3RoaXMubmFtZX0uLi5gIDogZGVzY3JpcHRpb247XG5cbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCdyb2NrZXQnKSA/PyAnJywgJ1NUQVJUJywgZGVzYywgU1RBUlRfR1JPVVApO1xuICB9XG5cbiAgaW5mbyhkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5sb2dTdGVwKGVtb2ppLmdldCgnc3BhcmtsZXMnKSA/PyAnJywgJ0lORk8nLCBkZXNjcmlwdGlvbik7XG4gIH1cblxuICB3YXJuKGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCdhbmdlcicpID8/ICcnLCAnV0FSTicsIGRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHN1Y2Nlc3MoZGVzY3JpcHRpb24gPSAnJywgaW5ncm91cCA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBkZXNjID0gZGVzY3JpcHRpb24gPT09ICcnID8gYENvbXBsZXRlZCAke3RoaXMubmFtZX0uYCA6IGRlc2NyaXB0aW9uO1xuICAgIGlmIChpbmdyb3VwKSB7XG4gICAgICB0aGlzLmluZ3JvdXAgPSBmYWxzZTtcbiAgICAgIGlmIChwcm9jZXNzLmVudlsnR0lUSFVCX0FDVElPTlMnXSkge1xuICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubG9nU3RlcChlbW9qaS5nZXQoJ3doaXRlX2NoZWNrX21hcmsnKSA/PyAnJywgJ1NVQ0NFU1MnLCBkZXNjKTtcbiAgfVxuXG4gIGZhaWwoZGVzY3JpcHRpb24gPSAnJywgaW5ncm91cCA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBkZXNjID0gZGVzY3JpcHRpb24gPT09ICcnID8gYEZhaWxlZCAke3RoaXMubmFtZX0uYCA6IGRlc2NyaXB0aW9uO1xuICAgIGlmIChpbmdyb3VwKSB7XG4gICAgICB0aGlzLmluZ3JvdXAgPSBmYWxzZTtcbiAgICAgIGlmIChwcm9jZXNzLmVudlsnR0lUSFVCX0FDVElPTlMnXSkge1xuICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG1zZ3R5cGUgPSBwcm9jZXNzLmVudlsnR0lUSFVCX0FDVElPTlMnXSA/IElTX0ZBSUxFRCA6IElTX0VSUk9SO1xuICAgIHRoaXMubG9nU3RlcChlbW9qaS5nZXQoJ3gnKSA/PyAnJywgJ0ZBSUxVUkUnLCBkZXNjLCBtc2d0eXBlKTtcbiAgfVxuXG4gIGVycm9yKGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCd4JykgPz8gJycsICdFUlJPUicsIGRlc2NyaXB0aW9uLCBJU19FUlJPUik7XG4gIH1cblxuICB0aXRsZShkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5sb2dTdGVwKCdcdUQ4M0RcdURDRDMnLCAnIyMjIyMnLCBkZXNjcmlwdGlvbiwgSVNfVElUTEUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ1Rhc2s7XG4iLCAiLy8gc3JjL2Vtb2ppZnkudHNcbmltcG9ydCB7IGFzc2VydCBhcyBhc3NlcnQyLCBkZWZhdWx0IGFzIGlzIH0gZnJvbSBcIkBzaW5kcmVzb3JodXMvaXNcIjtcblxuLy8gc3JjL2ZpbmRCeU5hbWUudHNcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gXCJAc2luZHJlc29yaHVzL2lzXCI7XG5cbi8vIHNyYy9kYXRhLnRzXG5pbXBvcnQgZW1vamlsaWIgZnJvbSBcImVtb2ppbGliXCI7XG5cbi8vIHNyYy91dGlscy50c1xuaW1wb3J0IGNoYXJSZWdleCBmcm9tIFwiY2hhci1yZWdleFwiO1xudmFyIGNoYXJSZWdleE1hdGNoZXIgPSBjaGFyUmVnZXgoKTtcbmZ1bmN0aW9uIGFzRnVuY3Rpb24oaW5wdXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gXCJmdW5jdGlvblwiID8gaW5wdXQgOiAoKSA9PiBpbnB1dDtcbn1cbnZhciBOT05fU1BBQ0lOR19NQVJLID0gU3RyaW5nLmZyb21DaGFyQ29kZSg2NTAzOSk7XG52YXIgbm9uU3BhY2luZ1JlZ2V4ID0gbmV3IFJlZ0V4cChOT05fU1BBQ0lOR19NQVJLLCBcImdcIik7XG5mdW5jdGlvbiBub3JtYWxpemVDb2RlKGNvZGUpIHtcbiAgcmV0dXJuIGNvZGUucmVwbGFjZShub25TcGFjaW5nUmVnZXgsIFwiXCIpO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplTmFtZShuYW1lKSB7XG4gIHJldHVybiAvOi4rOi8udGVzdChuYW1lKSA/IG5hbWUuc2xpY2UoMSwgLTEpIDogbmFtZTtcbn1cbmZ1bmN0aW9uIHJhbmRvbUl0ZW0oYXJyYXkpIHtcbiAgcmV0dXJuIGFycmF5W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFycmF5Lmxlbmd0aCldO1xufVxuXG4vLyBzcmMvZGF0YS50c1xudmFyIGVtb2ppRGF0YSA9IE9iamVjdC5lbnRyaWVzKGVtb2ppbGliLmxpYikubWFwKFxuICAoW25hbWUsIHsgY2hhcjogZW1vamkgfV0pID0+IFtuYW1lLCBlbW9qaV1cbik7XG52YXIgZW1vamlDb2Rlc0J5TmFtZSA9IG5ldyBNYXAoZW1vamlEYXRhKTtcbnZhciBlbW9qaU5hbWVzQnlDb2RlID0gbmV3IE1hcChcbiAgZW1vamlEYXRhLm1hcCgoW25hbWUsIGVtb2ppXSkgPT4gW25vcm1hbGl6ZUNvZGUoZW1vamkpLCBuYW1lXSlcbik7XG5cbi8vIHNyYy9maW5kQnlOYW1lLnRzXG52YXIgZmluZEJ5TmFtZSA9IChuYW1lKSA9PiB7XG4gIGFzc2VydC5zdHJpbmcobmFtZSk7XG4gIGNvbnN0IG5hbWVOb3JtYWxpemVkID0gbm9ybWFsaXplTmFtZShuYW1lKTtcbiAgY29uc3QgZW1vamkgPSBlbW9qaUNvZGVzQnlOYW1lLmdldChuYW1lTm9ybWFsaXplZCk7XG4gIHJldHVybiBlbW9qaSA/IHsgZW1vamksIGtleTogbmFtZU5vcm1hbGl6ZWQgfSA6IHZvaWQgMDtcbn07XG5cbi8vIHNyYy9lbW9qaWZ5LnRzXG52YXIgZW1vamlmeSA9IChpbnB1dCwgeyBmYWxsYmFjaywgZm9ybWF0ID0gKG5hbWUpID0+IG5hbWUgfSA9IHt9KSA9PiB7XG4gIGNvbnN0IGZhbGxiYWNrRnVuY3Rpb24gPSBmYWxsYmFjayA9PT0gdm9pZCAwID8gZmFsbGJhY2sgOiBhc0Z1bmN0aW9uKGZhbGxiYWNrKTtcbiAgYXNzZXJ0Mi5zdHJpbmcoaW5wdXQpO1xuICBhc3NlcnQyLmFueShbaXMudW5kZWZpbmVkLCBpcy5mdW5jdGlvbl9dLCBmYWxsYmFja0Z1bmN0aW9uKTtcbiAgYXNzZXJ0Mi5mdW5jdGlvbl8oZm9ybWF0KTtcbiAgcmV0dXJuIGlucHV0LnJlcGxhY2UoLzooW2EtekEtWjAtOV9cXC0rXSspOi9nLCAocGFydCkgPT4ge1xuICAgIGNvbnN0IGZvdW5kID0gZmluZEJ5TmFtZShwYXJ0KTtcbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBmb3JtYXQoZm91bmQuZW1vamksIHBhcnQsIGlucHV0KTtcbiAgICB9XG4gICAgaWYgKGZhbGxiYWNrRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiBmb3JtYXQoZmFsbGJhY2tGdW5jdGlvbihub3JtYWxpemVOYW1lKHBhcnQpKSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXQocGFydCk7XG4gIH0pO1xufTtcblxuLy8gc3JjL2ZpbmRCeUNvZGUudHNcbmltcG9ydCB7IGFzc2VydCBhcyBhc3NlcnQzIH0gZnJvbSBcIkBzaW5kcmVzb3JodXMvaXNcIjtcbnZhciBmaW5kQnlDb2RlID0gKGNvZGUpID0+IHtcbiAgYXNzZXJ0My5zdHJpbmcoY29kZSk7XG4gIGNvbnN0IGVtb2ppTm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvZGUoY29kZSk7XG4gIGNvbnN0IGtleSA9IGVtb2ppTmFtZXNCeUNvZGUuZ2V0KGVtb2ppTm9ybWFsaXplZCk7XG4gIHJldHVybiBrZXkgPyB7IGVtb2ppOiBlbW9qaU5vcm1hbGl6ZWQsIGtleSB9IDogdm9pZCAwO1xufTtcblxuLy8gc3JjL2ZpbmQudHNcbnZhciBmaW5kID0gKGNvZGVPck5hbWUpID0+IHtcbiAgcmV0dXJuIGZpbmRCeUNvZGUoY29kZU9yTmFtZSkgfHwgZmluZEJ5TmFtZShjb2RlT3JOYW1lKTtcbn07XG5cbi8vIHNyYy9nZXQudHNcbmltcG9ydCB7IGFzc2VydCBhcyBhc3NlcnQ0IH0gZnJvbSBcIkBzaW5kcmVzb3JodXMvaXNcIjtcbnZhciBnZXQgPSAoY29kZU9yTmFtZSkgPT4ge1xuICBhc3NlcnQ0LnN0cmluZyhjb2RlT3JOYW1lKTtcbiAgcmV0dXJuIGVtb2ppQ29kZXNCeU5hbWUuZ2V0KG5vcm1hbGl6ZU5hbWUoY29kZU9yTmFtZSkpO1xufTtcblxuLy8gc3JjL2hhcy50c1xuaW1wb3J0IHsgYXNzZXJ0IGFzIGFzc2VydDUgfSBmcm9tIFwiQHNpbmRyZXNvcmh1cy9pc1wiO1xudmFyIGhhcyA9IChjb2RlT3JOYW1lKSA9PiB7XG4gIGFzc2VydDUuc3RyaW5nKGNvZGVPck5hbWUpO1xuICByZXR1cm4gZW1vamlDb2Rlc0J5TmFtZS5oYXMobm9ybWFsaXplTmFtZShjb2RlT3JOYW1lKSkgfHwgZW1vamlOYW1lc0J5Q29kZS5oYXMobm9ybWFsaXplQ29kZShjb2RlT3JOYW1lKSk7XG59O1xuXG4vLyBzcmMvcmFuZG9tLnRzXG52YXIgcmFuZG9tID0gKCkgPT4ge1xuICBjb25zdCBbbmFtZSwgZW1vamldID0gcmFuZG9tSXRlbShlbW9qaURhdGEpO1xuICByZXR1cm4geyBuYW1lLCBlbW9qaSB9O1xufTtcblxuLy8gc3JjL3JlcGxhY2UudHNcbmltcG9ydCB7IGFzc2VydCBhcyBhc3NlcnQ2IH0gZnJvbSBcIkBzaW5kcmVzb3JodXMvaXNcIjtcbnZhciByZXBsYWNlID0gKGlucHV0LCByZXBsYWNlbWVudCwgeyBwcmVzZXJ2ZVNwYWNlcyA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuICBjb25zdCByZXBsYWNlMiA9IGFzRnVuY3Rpb24ocmVwbGFjZW1lbnQpO1xuICBhc3NlcnQ2LnN0cmluZyhpbnB1dCk7XG4gIGFzc2VydDYuZnVuY3Rpb25fKHJlcGxhY2UyKTtcbiAgYXNzZXJ0Ni5ib29sZWFuKHByZXNlcnZlU3BhY2VzKTtcbiAgY29uc3QgY2hhcmFjdGVycyA9IGlucHV0Lm1hdGNoKGNoYXJSZWdleE1hdGNoZXIpO1xuICBpZiAoY2hhcmFjdGVycyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICByZXR1cm4gY2hhcmFjdGVycy5tYXAoKGNoYXJhY3RlciwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBmb3VuZCA9IGZpbmRCeUNvZGUoY2hhcmFjdGVyKTtcbiAgICBpZiAoIWZvdW5kKSB7XG4gICAgICByZXR1cm4gY2hhcmFjdGVyO1xuICAgIH1cbiAgICBpZiAoIXByZXNlcnZlU3BhY2VzICYmIGNoYXJhY3RlcnNbaW5kZXggKyAxXSA9PT0gXCIgXCIpIHtcbiAgICAgIGNoYXJhY3RlcnNbaW5kZXggKyAxXSA9IFwiXCI7XG4gICAgfVxuICAgIHJldHVybiByZXBsYWNlMihmb3VuZCwgaW5kZXgsIGlucHV0KTtcbiAgfSkuam9pbihcIlwiKTtcbn07XG5cbi8vIHNyYy9zZWFyY2gudHNcbmltcG9ydCB7IGFzc2VydCBhcyBhc3NlcnQ3IH0gZnJvbSBcIkBzaW5kcmVzb3JodXMvaXNcIjtcbnZhciBzZWFyY2ggPSAoa2V5d29yZCkgPT4ge1xuICBhc3NlcnQ3LnN0cmluZyhrZXl3b3JkKTtcbiAga2V5d29yZCA9IG5vcm1hbGl6ZU5hbWUoa2V5d29yZCk7XG4gIHJldHVybiBlbW9qaURhdGEuZmlsdGVyKChbbmFtZV0pID0+IG5hbWUuaW5jbHVkZXMoa2V5d29yZCkpLm1hcCgoW25hbWUsIGVtb2ppXSkgPT4gKHsgbmFtZSwgZW1vamkgfSkpO1xufTtcblxuLy8gc3JjL3N0cmlwLnRzXG52YXIgc3RyaXAgPSAoaW5wdXQsIHsgcHJlc2VydmVTcGFjZXMgfSA9IHt9KSA9PiByZXBsYWNlKGlucHV0LCBcIlwiLCB7IHByZXNlcnZlU3BhY2VzIH0pO1xuXG4vLyBzcmMvdW5lbW9qaWZ5LnRzXG5pbXBvcnQgeyBhc3NlcnQgYXMgYXNzZXJ0OSB9IGZyb20gXCJAc2luZHJlc29yaHVzL2lzXCI7XG5cbi8vIHNyYy93aGljaC50c1xuaW1wb3J0IHsgYXNzZXJ0IGFzIGFzc2VydDggfSBmcm9tIFwiQHNpbmRyZXNvcmh1cy9pc1wiO1xuaW1wb3J0IHNraW5Ub25lIGZyb20gXCJza2luLXRvbmVcIjtcbnZhciB3aGljaCA9IChlbW9qaSwgeyBtYXJrZG93biA9IGZhbHNlIH0gPSB7fSkgPT4ge1xuICBhc3NlcnQ4LnN0cmluZyhlbW9qaSk7XG4gIGFzc2VydDguYm9vbGVhbihtYXJrZG93bik7XG4gIGNvbnN0IHJlc3VsdCA9IGZpbmRCeUNvZGUoc2tpblRvbmUoZW1vamksIFwibm9uZVwiKSk7XG4gIGlmIChyZXN1bHQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgcmV0dXJuIG1hcmtkb3duID8gYDoke3Jlc3VsdC5rZXl9OmAgOiByZXN1bHQua2V5O1xufTtcblxuLy8gc3JjL3VuZW1vamlmeS50c1xudmFyIHVuZW1vamlmeSA9IChpbnB1dCkgPT4ge1xuICBhc3NlcnQ5LnN0cmluZyhpbnB1dCk7XG4gIGNvbnN0IGNoYXJhY3RlcnMgPSBpbnB1dC5tYXRjaChjaGFyUmVnZXhNYXRjaGVyKTtcbiAgaWYgKGNoYXJhY3RlcnMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbiAgcmV0dXJuIGNoYXJhY3RlcnMubWFwKChjaGFyYWN0ZXIpID0+IHdoaWNoKGNoYXJhY3RlciwgeyBtYXJrZG93bjogdHJ1ZSB9KSB8fCBjaGFyYWN0ZXIpLmpvaW4oXCJcIik7XG59O1xuZXhwb3J0IHtcbiAgZW1vamlmeSxcbiAgZmluZCxcbiAgZ2V0LFxuICBoYXMsXG4gIHJhbmRvbSxcbiAgcmVwbGFjZSxcbiAgc2VhcmNoLFxuICBzdHJpcCxcbiAgdW5lbW9qaWZ5LFxuICB3aGljaFxufTtcbiIsICJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzJztcblxuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnQGFjdGlvbnMvZ2l0aHViL2xpYi9jb250ZXh0JztcblxuaW1wb3J0IGVjIGZyb20gJy4vZWRpdG9yY29uZmlnJztcbmltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuL2lucHV0cyc7XG5pbXBvcnQgTG9nVGFzayBmcm9tICcuL2xvZ3Rhc2snO1xuXG4vL1xuLy8gUmVnZXggYmVsb3cgbWF0Y2hlcyBhbnkgVW5pY29kZSB3b3JkIGFuZCBudW1iZXIgY29tcGF0aWJsZSB3aXRoIEVTNS4gSW4gRVMyMDE4IHRoZSBzYW1lIHJlc3VsdFxuLy8gY2FuIGJlIGFjaGlldmVkIGJ5IHVzaW5nIC9bMC05XFxwe0x9XVxcUyovZ3UgYW5kIGFsc28ga25vd24gYXMgVW5pY29kZSBQcm9wZXJ0eSBFc2NhcGVzXG4vLyAoaHR0cHM6Ly8yYWxpdHkuY29tLzIwMTcvMDcvcmVnZXhwLXVuaWNvZGUtcHJvcGVydHktZXNjYXBlcy5odG1sKS4gU2luY2UgdGhlcmUgaXMgbm9cbi8vIHRyYW5zcGlsYXRpb24gb2YgdGhpcyBmdW5jdGlvbmFsaXR5IGRvd24gdG8gRVM1IHdpdGhvdXQgZXh0ZXJuYWwgdG9vbCwgdGhlIG9ubHkgc29sdXRpb24gaXNcbi8vIHRvIHVzZSBhbHJlYWR5IHRyYW5zcGlsZWQgZm9ybS4gRXhhbXBsZSBjYW4gYmUgZm91bmQgaGVyZSAtXG4vLyBodHRwczovL21vdGhlcmVmZi5pbi9yZWdleHB1I2lucHV0PXZhcityZWdleCslM0QrJTJGJTVCMC05JTVDcCU3QkwlN0QlNUQlNUNTKiUyRmd1JTNCJTBBJTBBJnVuaWNvZGVQcm9wZXJ0eUVzY2FwZT0xXG4vL1xuXG5jb25zdCB1bmljb2RlV29yZE1hdGNoID1cbiAgLy8gdHJ1bmstaWdub3JlKGVzbGludC91bmljb3JuL2JldHRlci1yZWdleCxlc2xpbnQvdW5pY29ybi9uby1oZXgtZXNjYXBlLGVzbGludC9vcHRpbWl6ZS1yZWdleC9vcHRpbWl6ZS1yZWdleClcbiAgLyg/OltcXGRBLVphLXpcXHUwMEFBXFx1MDBCNVxcdTAwQkFcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwODcwLVxcdTA4ODdcXHUwODg5LVxcdTA4OEVcXHUwOEEwLVxcdTA4QzlcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM1RFxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0REXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA0LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RjEtXFx1MTZGOFxcdTE3MDAtXFx1MTcxMVxcdTE3MUYtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNENcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTgzXFx1MjE4NFxcdTJDMDAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDVcXHUzMDA2XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkZcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQkZcXHU0RTAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFNVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdDQVxcdUE3RDBcXHVBN0QxXFx1QTdEM1xcdUE3RDUtXFx1QTdEOVxcdUE3RjItXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjlcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNDBcXHVERjQyLVxcdURGNDlcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REQ3MC1cXHVERDdBXFx1REQ3Qy1cXHVERDhBXFx1REQ4Qy1cXHVERDkyXFx1REQ5NFxcdUREOTVcXHVERDk3LVxcdUREQTFcXHVEREEzLVxcdUREQjFcXHVEREIzLVxcdUREQjlcXHVEREJCXFx1RERCQ1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N1xcdURGODAtXFx1REY4NVxcdURGODctXFx1REZCMFxcdURGQjItXFx1REZCQV18XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzVcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXFx1REQwMC1cXHVERDIzXFx1REU4MC1cXHVERUE5XFx1REVCMFxcdURFQjFcXHVERjAwLVxcdURGMUNcXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REY3MC1cXHVERjgxXFx1REZCMC1cXHVERkM0XFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDNzFcXHVEQzcyXFx1REM3NVxcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENDRcXHVERDQ3XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzVGLVxcdURDNjFcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REVCOFxcdURGMDAtXFx1REYxQVxcdURGNDAtXFx1REY0Nl18XFx1RDgwNltcXHVEQzAwLVxcdURDMkJcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGLVxcdUREMDZcXHVERDA5XFx1REQwQy1cXHVERDEzXFx1REQxNVxcdUREMTZcXHVERDE4LVxcdUREMkZcXHVERDNGXFx1REQ0MVxcdUREQTAtXFx1RERBN1xcdUREQUEtXFx1REREMFxcdURERTFcXHVEREUzXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTg5XFx1REU5RFxcdURFQjAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XFx1REQ2MC1cXHVERDY1XFx1REQ2N1xcdURENjhcXHVERDZBLVxcdUREODlcXHVERDk4XFx1REVFMC1cXHVERUYyXFx1REZCMF18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REM4MC1cXHVERDQzXXxcXHVEODBCW1xcdURGOTAtXFx1REZGMF18W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODIyXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XFx1RDg4MC1cXHVEODgzXVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERTcwLVxcdURFQkVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REU0MC1cXHVERTdGXFx1REYwMC1cXHVERjRBXFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXFx1REZFM118XFx1RDgyMVtcXHVEQzAwLVxcdURGRjddfFxcdUQ4MjNbXFx1REMwMC1cXHVEQ0Q1XFx1REQwMC1cXHVERDA4XXxcXHVEODJCW1xcdURGRjAtXFx1REZGM1xcdURGRjUtXFx1REZGQlxcdURGRkRcXHVERkZFXXxcXHVEODJDW1xcdURDMDAtXFx1REQyMlxcdURENTAtXFx1REQ1MlxcdURENjQtXFx1REQ2N1xcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzN1tcXHVERjAwLVxcdURGMUVdfFxcdUQ4MzhbXFx1REQwMC1cXHVERDJDXFx1REQzNy1cXHVERDNEXFx1REQ0RVxcdURFOTAtXFx1REVBRFxcdURFQzAtXFx1REVFQl18XFx1RDgzOVtcXHVERkUwLVxcdURGRTZcXHVERkU4LVxcdURGRUJcXHVERkVEXFx1REZFRVxcdURGRjAtXFx1REZGRV18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVERDAwLVxcdURENDNcXHVERDRCXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERURGXFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzOFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdfFxcdUQ4ODRbXFx1REMwMC1cXHVERjRBXSlcXFMqL2c7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmRlZmluZWRPbkVtcHR5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSAnJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VuYW1lKHBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghcGF0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2soJ2Jhc2VuYW1lJyk7XG4gIGNvbnN0IHJlc3VsdCA9IHBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKClbMF07XG4gIGxvZy5kZWJ1ZyhgQmFzZW5hbWUgcGFzc2VkICR7cGF0aH0gYW5kIHJldHVybnMgJHtyZXN1bHR9YCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFJlZnMocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghcGF0aCkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdzdHJpcFJlZnMnKTtcbiAgY29uc3QgcmVzdWx0ID0gcGF0aC5yZXBsYWNlKCdyZWZzL2hlYWRzLycsICcnKS5yZXBsYWNlKCdyZWZzL3RhZ3MvJywgJycpO1xuICBsb2cuZGVidWcoYHN0cmlwUmVmcyBwYXNzZWQgJHtwYXRofSBhbmQgcmV0dXJucyAke3Jlc3VsdH1gKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0aXRsZWNhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0ZXh0KSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodHlwZW9mIHRleHQgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCBhcmd1bWVudCB0eXBlIHByb3ZpZGVkIHRvIHRpdGxlY2FzZSgpOiAke3R5cGVvZiB0ZXh0fWApO1xuICB9XG4gIHJldHVybiB0ZXh0LnJlcGxhY2VBbGwodW5pY29kZVdvcmRNYXRjaCwgKHR4dCkgPT5cbiAgICB0eHRbMF0gPyB0eHRbMF0udG9VcHBlckNhc2UoKSArIHR4dC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpIDogdHh0LFxuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHByZWZpeFBhcnNlcih0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXRleHQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGFyZ3VtZW50IHR5cGUgcHJvdmlkZWQgdG8gcHJlZml4UGFyc2VyKCk6ICR7dHlwZW9mIHRleHR9YCk7XG4gIH1cbiAgcmV0dXJuIHRpdGxlY2FzZSh0ZXh0LnJlcGxhY2UoL1tfLV0rLywgJyAnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwVGV4dCh0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQsIGNvbnRlbnQ6IHN0cmluZ1tdLCBwcmVwZW5kID0gJycpOiBzdHJpbmdbXSB7XG4gIC8vIENvbnN0cmFpbiB0aGUgd2lkdGggb2YgdGhlIGRlc2NyaXB0aW9uXG4gIGlmICghdGV4dCkgcmV0dXJuIGNvbnRlbnQ7XG5cbiAgY29uc3Qgd2lkdGggPSBlYy5wcm9wcy5tYXhfbGluZV9sZW5ndGg7XG4gIGxldCBkZXNjcmlwdGlvbiA9IHRleHRcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2VBbGwoJ1xcclxcbicsICdcXG4nKSAvLyBDb252ZXJ0IENSIHRvIExGXG4gICAgLnJlcGxhY2VBbGwoLyArL2csICcgJykgLy8gICAgU3F1YXNoIGNvbnNlY3V0aXZlIHNwYWNlc1xuICAgIC5yZXBsYWNlQWxsKCcgXFxuJywgJ1xcbicpOyAvLyAgU3F1YXNoIHNwYWNlIGZvbGxvd2VkIGJ5IG5ld2xpbmVcblxuICB3aGlsZSAoZGVzY3JpcHRpb24pIHtcbiAgICAvLyBMb25nZXIgdGhhbiB3aWR0aD8gRmluZCBhIHNwYWNlIHRvIGJyZWFrIGFwYXJ0XG4gICAgbGV0IHNlZ21lbnQ6IHN0cmluZztcbiAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoID4gd2lkdGgpIHtcbiAgICAgIHNlZ21lbnQgPSBkZXNjcmlwdGlvbi5zbGljZSgwLCBNYXRoLm1heCgwLCB3aWR0aCArIDEpKTtcbiAgICAgIHdoaWxlICghc2VnbWVudC5lbmRzV2l0aCgnICcpICYmICFzZWdtZW50LmVuZHNXaXRoKCdcXG4nKSAmJiBzZWdtZW50KSB7XG4gICAgICAgIHNlZ21lbnQgPSBzZWdtZW50LnNsaWNlKDAsIE1hdGgubWF4KDAsIHNlZ21lbnQubGVuZ3RoIC0gMSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBUcmltbWVkIHRvbyBtdWNoP1xuICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoIDwgd2lkdGggKiAwLjY3KSB7XG4gICAgICAgIHNlZ21lbnQgPSBkZXNjcmlwdGlvbjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2VnbWVudCA9IGRlc2NyaXB0aW9uO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBuZXdsaW5lXG4gICAgY29uc3QgbmV3bGluZUluZGV4ID0gc2VnbWVudC5pbmRleE9mKCdcXG4nKTtcbiAgICBpZiAobmV3bGluZUluZGV4ID49IDApIHtcbiAgICAgIHNlZ21lbnQgPSBzZWdtZW50LnNsaWNlKDAsIE1hdGgubWF4KDAsIG5ld2xpbmVJbmRleCArIDEpKTtcbiAgICB9XG4gICAgY29udGVudC5wdXNoKGAke3ByZXBlbmR9JHtzZWdtZW50fWAudHJpbUVuZCgpKTtcbiAgICAvLyBSZW1haW5pbmdcbiAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnNsaWNlKHNlZ21lbnQubGVuZ3RoKTtcbiAgfVxuICByZXR1cm4gY29udGVudDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVwbyB7XG4gIG93bmVyOiBzdHJpbmc7XG4gIHJlcG86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9zaXRvcnlGaW5kZXIoXG4gIGlucHV0UmVwbzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgY29udGV4dDogQ29udGV4dCB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBSZXBvIHwgbnVsbCB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdyZXBvc2l0b3J5RmluZGVyJyk7XG4gIGNvbnN0IG9iaiA9IHt9IGFzIHVua25vd247XG4gIGNvbnN0IHJlc3VsdCA9IG9iaiBhcyBSZXBvO1xuICBpZiAoaW5wdXRSZXBvKSB7XG4gICAgW3Jlc3VsdC5vd25lciwgcmVzdWx0LnJlcG9dID0gaW5wdXRSZXBvLnNwbGl0KCcvJykgYXMgW3N0cmluZywgc3RyaW5nXTtcbiAgICBsb2cuaW5mbyhgcmVwb3NpdG9yeUZpbmRlciB1c2luZyBpbnB1dCAke2lucHV0UmVwb30gYW5kIHJldHVybnMgJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfWApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52WydHSVRIVUJfUkVQT1NJVE9SWSddKSB7XG4gICAgW3Jlc3VsdC5vd25lciwgcmVzdWx0LnJlcG9dID0gcHJvY2Vzcy5lbnZbJ0dJVEhVQl9SRVBPU0lUT1JZJ10uc3BsaXQoJy8nKSBhcyBbc3RyaW5nLCBzdHJpbmddO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYHJlcG9zaXRvcnlGaW5kZXIgdXNpbmcgR0lUSFVCX1JFUE9TSVRPUlkgJHtcbiAgICAgICAgcHJvY2Vzcy5lbnZbJ0dJVEhVQl9SRVBPU0lUT1JZJ11cbiAgICAgIH0gYW5kIHJldHVybnMgJHtKU09OLnN0cmluZ2lmeShyZXN1bHQpfWAsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmIChjb250ZXh0KSB7XG4gICAgcmVzdWx0Lm93bmVyID0gY29udGV4dC5yZXBvLm93bmVyO1xuICAgIHJlc3VsdC5yZXBvID0gY29udGV4dC5yZXBvLnJlcG87XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGByZXBvc2l0b3J5RmluZGVyIHVzaW5nIEdJVEhVQl9SRVBPU0lUT1JZICR7XG4gICAgICAgIHByb2Nlc3MuZW52WydHSVRIVUJfUkVQT1NJVE9SWSddXG4gICAgICB9IGFuZCByZXR1cm5zICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnZbJ0lOUFVUX09XTkVSJ10gJiYgcHJvY2Vzcy5lbnZbJ0lOUFVUX1JFUE8nXSkge1xuICAgIHJlc3VsdC5vd25lciA9IHByb2Nlc3MuZW52WydJTlBVVF9PV05FUiddO1xuICAgIHJlc3VsdC5yZXBvID0gcHJvY2Vzcy5lbnZbJ0lOUFVUX1JFUE8nXTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZUNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoJy5naXQvY29uZmlnJywgJ3V0ZjgnKTtcbiAgICBjb25zdCBwYXR0ZXJuID0gL3VybCggKT89KCApPy4qZ2l0aHViXFwuY29tWy86XSg/PG93bmVyPi4qKVxcLyg/PHJlcG8+LiopXFwuZ2l0LztcblxuICAgIGludGVyZmFjZSBPd25lclJlcG9JbnRlcmZhY2UgZXh0ZW5kcyBSZWdFeHBFeGVjQXJyYXkge1xuICAgICAgZ3JvdXBzOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgb3duZXI/OiBzdHJpbmc7XG4gICAgICAgIHJlcG8/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBmaWxlQ29udGVudC5tYXRjaChwYXR0ZXJuKSBhcyBPd25lclJlcG9JbnRlcmZhY2U7XG4gICAgaWYgKHJlc3VsdHMgIT09IG51bGwpIHtcbiAgICAgIGxvZy5kZWJ1ZyhKU09OLnN0cmluZ2lmeShyZXN1bHRzLmdyb3VwcykpO1xuICAgICAgcmVzdWx0Lm93bmVyID0gcmVzdWx0cy5ncm91cHMub3duZXIgPz8gJyc7XG4gICAgICByZXN1bHQucmVwbyA9IHJlc3VsdHMuZ3JvdXBzLnJlcG8gPz8gJyc7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gY2FuJ3QgZmluZCBpdFxuICAgIGxvZy5kZWJ1ZyhgQ291bGRuJ3QgZmluZCBhbnkgb3duZXIgb3IgcmVwbzogJHtlcnJvcn1gKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2l0X2RlZmF1bHRfYnJhbmNoKCk6IHN0cmluZyB7XG4gIC8vIGdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEIHwgc2VkICdzQF5yZWZzL3JlbW90ZXMvb3JpZ2luL0BAJ1xuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2x1bW5IZWFkZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXNlZEhlYWRlciA9IHRpdGxlY2FzZShcbiAgICB2YWx1ZVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UoL15bKl9+XSsvLCAnJylcbiAgICAgIC5yZXBsYWNlKC9bKl9+XSskLywgJycpLFxuICApO1xuICBpZiAobm9ybWFsaXNlZEhlYWRlcikge1xuICAgIHJldHVybiBgKioke25vcm1hbGlzZWRIZWFkZXJ9KipgO1xuICB9XG4gIHJldHVybiAnJztcbn1cbmV4cG9ydCBmdW5jdGlvbiByb3dIZWFkZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXNlZEhlYWRlciA9IHZhbHVlLnRyaW0oKS5yZXBsYWNlKC9eXFwqKy8sICcnKS5yZXBsYWNlKC9cXCorJC8sICcnKTtcbiAgcmV0dXJuIGBcXGAqKiR7bm9ybWFsaXNlZEhlYWRlcn0qKlxcYGA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50VmVyc2lvblN0cmluZyhpbnB1dHM6IElucHV0cyk6IHN0cmluZyB7XG4gIGxldCB2ZXJzaW9uU3RyaW5nID0gJyc7XG4gIGlmIChpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzplbmFibGVkJykpIHtcbiAgICBjb25zdCBvUmlkZSA9IGlucHV0cy5jb25maWcuZ2V0KCd2ZXJzaW9uaW5nOm92ZXJyaWRlJykgYXMgc3RyaW5nO1xuICAgIHZlcnNpb25TdHJpbmcgPVxuICAgICAgb1JpZGUgJiYgb1JpZGUubGVuZ3RoID4gMCA/IG9SaWRlIDogcHJvY2Vzcy5lbnZbJ25wbV9wYWNrYWdlX3ZlcnNpb24nXSA/PyAnMC4wLjAnO1xuXG4gICAgaWYgKFxuICAgICAgdmVyc2lvblN0cmluZyAmJlxuICAgICAgIXZlcnNpb25TdHJpbmcuc3RhcnRzV2l0aChpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzpwcmVmaXgnKSBhcyBzdHJpbmcpXG4gICAgKSB7XG4gICAgICB2ZXJzaW9uU3RyaW5nID0gYCR7aW5wdXRzLmNvbmZpZy5nZXQoJ3ZlcnNpb25pbmc6cHJlZml4JykgYXMgc3RyaW5nfSR7dmVyc2lvblN0cmluZ31gO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2ZXJzaW9uU3RyaW5nID0gaW5wdXRzLmNvbmZpZy5nZXQoJ3ZlcnNpb25pbmc6YnJhbmNoJykgYXMgc3RyaW5nO1xuICB9XG4gIHJldHVybiB2ZXJzaW9uU3RyaW5nO1xufVxuIiwgImltcG9ydCAqIGFzIGVkaXRvcmNvbmZpZyBmcm9tICdlZGl0b3Jjb25maWcnO1xuXG5pbXBvcnQgTG9nVGFzayBmcm9tICcuL2xvZ3Rhc2snO1xuXG5jb25zdCBsb2cgPSBuZXcgTG9nVGFzaygnRWRpdG9yY29uZmlnJyk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9FRElUT1JDT05GSUdfTUFYX0xJTkVfTEVOR1RIID0gODA7XG5leHBvcnQgaW50ZXJmYWNlIElQcm9wZXJ0aWVzIGV4dGVuZHMgZWRpdG9yY29uZmlnLktub3duUHJvcHMge1xuICAvKipcbiAgICogU2V0IHRvIGxhdGluMSwgdXRmLTgsIHV0Zi04LWJvbSwgdXRmLTE2YmUgb3IgdXRmLTE2bGUgdG8gY29udHJvbCB0aGVcbiAgICogY2hhcmFjdGVyIHNldC5cbiAgICovXG4gIGNoYXJzZXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdG8gdGFiIG9yIHNwYWNlIHRvIHVzZSBoYXJkIHRhYnMgb3Igc29mdCB0YWJzIHJlc3BlY3RpdmVseS5cbiAgICovXG4gIGluZGVudF9zdHlsZT86ICd1bnNldCcgfCAndGFiJyB8ICdzcGFjZSc7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBmb3IgZWFjaCBpbmRlbnRhdGlvbiBsZXZlbCBhbmQgdGhlIHdpZHRoXG4gICAqIG9mIHNvZnQgdGFicyAod2hlbiBzdXBwb3J0ZWQpLiBXaGVuIHNldCB0byB0YWIsIHRoZSB2YWx1ZSBvZlxuICAgKiB0YWJfd2lkdGggKGlmIHNwZWNpZmllZCkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgaW5kZW50X3NpemU/OiBudW1iZXIgfCAndW5zZXQnIHwgJ3RhYic7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgY29sdW1ucyB1c2VkIHRvIHJlcHJlc2VudCBhIHRhYiBjaGFyYWN0ZXIuIFRoaXMgZGVmYXVsdHNcbiAgICogdG8gdGhlIHZhbHVlIG9mIGluZGVudF9zaXplIGFuZCBkb2Vzbid0IHVzdWFsbHkgbmVlZCB0byBiZSBzcGVjaWZpZWQuXG4gICAqL1xuICB0YWJfd2lkdGg/OiBudW1iZXIgfCAndW5zZXQnO1xuICAvKipcbiAgICogUmVtb3ZlcyBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHByZWNlZGluZyBuZXdsaW5lIGNoYXJhY3RlcnMuXG4gICAqL1xuICB0cmltX3RyYWlsaW5nX3doaXRlc3BhY2U/OiBib29sZWFuIHwgJ3Vuc2V0JztcbiAgLyoqXG4gICAqIFNldCB0byBsZiwgY3IsIG9yIGNybGYgdG8gY29udHJvbCBob3cgbGluZSBicmVha3MgYXJlIHJlcHJlc2VudGVkLlxuICAgKi9cbiAgZW5kX29mX2xpbmU/OiAnbGYnIHwgJ2NybGYnIHwgJ3Vuc2V0JztcbiAgLyoqXG4gICAqIEVuc3VyZXMgZmlsZXMgZW5kcyB3aXRoIGEgbmV3bGluZS5cbiAgICovXG4gIGluc2VydF9maW5hbF9uZXdsaW5lPzogYm9vbGVhbiB8ICd1bnNldCc7XG4gIC8qKlxuICAgKiBFbmZvcmNlcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29sdW1ucyB5b3UgY2FuIGhhdmUgaW4gYSBsaW5lLlxuICAgKi9cbiAgbWF4X2xpbmVfbGVuZ3RoOiBudW1iZXI7XG4gIGJsb2NrX2NvbW1lbnQ/OiBzdHJpbmc7XG4gIGJsb2NrX2NvbW1lbnRfc3RhcnQ/OiBzdHJpbmc7XG4gIGJsb2NrX2NvbW1lbnRfZW5kPzogc3RyaW5nO1xufVxuY2xhc3MgRWRpdG9yY29uZmlnIHtcbiAgcHJvcHM6IElQcm9wZXJ0aWVzO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IGRlZmF1bHRzID0geyBtYXhfbGluZV9sZW5ndGg6IERFRkFVTFRfRURJVE9SQ09ORklHX01BWF9MSU5FX0xFTkdUSCB9O1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZWRpdG9yY29uZmlnLnBhcnNlU3luYyhwcm9jZXNzLmN3ZCgpKSB9O1xuICAgICAgbG9nLmRlYnVnKCdFZGl0b3IgY29uZmlnOiBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzKScpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2cuZXJyb3IoYEVycm9yIHBhcnNpbmcgZWRpdG9yY29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX1gKTtcbiAgICAgIHRoaXMucHJvcHMgPSBkZWZhdWx0cztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEVkaXRvcmNvbmZpZygpO1xuIiwgImV4cG9ydCBmdW5jdGlvbiB3b3JraW5nRGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9jZXNzLmVudlsnR0lUSFVCX1dPUktTUEFDRSddID8/IHByb2Nlc3MuZW52WydJTklUX0NXRCddID8/IHByb2Nlc3MuY3dkKCk7XG59XG5leHBvcnQgZGVmYXVsdCB3b3JraW5nRGlyZWN0b3J5O1xuIiwgImltcG9ydCBJbnB1dHMsIHsgY29uZmlnS2V5cyB9IGZyb20gJy4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4vbG9ndGFzayc7XG5cbi8vIFRoaXMgc2NyaXB0IHJlYnVpbGRzIHRoZSB1c2FnZSBzZWN0aW9uIGluIHRoZSBSRUFETUUubWQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBhY3Rpb24ueW1sXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzYXZlKGlucHV0czogSW5wdXRzKTogdm9pZCB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdzYXZlJyk7XG4gIGlmIChpbnB1dHMuY29uZmlnLmdldCgnc2F2ZScpLnRvU3RyaW5nKCkgPT09ICd0cnVlJykge1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhjb25maWdLZXlzKSkge1xuICAgICAgaW5wdXRzLmNvbmZpZy5zZXQoaywgaW5wdXRzLmNvbmZpZy5nZXQoaykpO1xuICAgIH1cbiAgICBpbnB1dHMuY29uZmlnLnNhdmUoKGVycjogYW55KSA9PiB7XG4gICAgICBpZiAoZXJyICYmICdtZXNzYWdlJyBpbiBlcnIgJiYgZXJyLm1lc3NhZ2UpIHtcbiAgICAgICAgbG9nLmVycm9yKGVyci5tZXNzYWdlIGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdDb25maWd1cmF0aW9uIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcbiAgICB9KTtcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSAnbm9kZTpvcyc7XG5cbmltcG9ydCB7IGVuZFRva2VuRm9ybWF0LCBzdGFydFRva2VuRm9ybWF0IH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcbmltcG9ydCB7IGZvcm1hdE1hcmtkb3duIH0gZnJvbSAnLi9wcmV0dGllcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlYWRtZVdyaXRlcihcbiAgY29udGVudDogc3RyaW5nW10sXG4gIHRva2VuTmFtZTogc3RyaW5nLFxuICByZWFkbWVQYXRoOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW5OYW1lKTtcblxuICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC5sZW5ndGggPT09IDApIHtcbiAgICBsb2cuaW5mbyhgcmVhZG1lV3JpdGVyIHBhc3NlZCBubyBjb250ZW50IGZyb20gJHt0b2tlbk5hbWV9IHBhcnNlcmApO1xuICAgIHJldHVybjtcbiAgfVxuICBsb2cuaW5mbyhgTG9va2luZyBmb3IgdGhlICR7dG9rZW5OYW1lfSB0b2tlbiBpbiAke3JlYWRtZVBhdGh9YCk7XG4gIC8vIExvYWQgdGhlIFJFQURNRVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVhZG1lID0gZnMucmVhZEZpbGVTeW5jKHJlYWRtZVBhdGgpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3Qgc3RhcnRUb2tlbiA9IHN0YXJ0VG9rZW5Gb3JtYXQucmVwbGFjZSgnJXMnLCB0b2tlbk5hbWUpO1xuICBjb25zdCBlbmRUb2tlbiA9IGVuZFRva2VuRm9ybWF0LnJlcGxhY2UoJyVzJywgdG9rZW5OYW1lKTtcblxuICAvLyBGaW5kIHRoZSBzdGFydCB0b2tlblxuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBvcmlnaW5hbFJlYWRtZS5pbmRleE9mKHN0YXJ0VG9rZW4pO1xuICBpZiAoc3RhcnRUb2tlbkluZGV4IDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RhcnQgdG9rZW4gJyR7c3RhcnRUb2tlbn0nIG5vdCBmb3VuZGApO1xuICB9XG4gIGxvZy5pbmZvKGBGb3VuZCB0aGUgc3RhcnQgJHt0b2tlbk5hbWV9IHRva2VuYCk7XG5cbiAgLy8gRmluZCB0aGUgZW5kIHRva2VuXG4gIGNvbnN0IGVuZFRva2VuSW5kZXggPSBvcmlnaW5hbFJlYWRtZS5pbmRleE9mKGVuZFRva2VuKTtcbiAgaWYgKGVuZFRva2VuSW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFbmQgdG9rZW4gJyR7ZW5kVG9rZW59JyBub3QgZm91bmRgKTtcbiAgfSBlbHNlIGlmIChlbmRUb2tlbkluZGV4IDwgc3RhcnRUb2tlbkluZGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdGFydCB0b2tlbiBtdXN0IGFwcGVhciBiZWZvcmUgZW5kIHRva2VuJyk7XG4gIH1cbiAgbG9nLmluZm8oYEZvdW5kIHRoZSBlbmQgJHt0b2tlbk5hbWV9IHRva2VuYCk7XG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IG5ld1JlYWRtZTogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgbGVuOiBudW1iZXIgPSBzdGFydFRva2VuLmxlbmd0aDtcblxuICBuZXdSZWFkbWUucHVzaChcbiAgICBvcmlnaW5hbFJlYWRtZS5zbGljZSgwLCBNYXRoLm1heCgwLCBzdGFydFRva2VuSW5kZXggKyBsZW4pKSwgLy8gQXBwZW5kIHRoZSBiZWdpbm5pbmdcbiAgICAuLi5jb250ZW50LFxuICAgIG9yaWdpbmFsUmVhZG1lLnNsaWNlKGVuZFRva2VuSW5kZXgpLCAvLyBBcHBlbmQgdGhlIGVuZFxuICApO1xuXG4gIGNvbnN0IGZpbGVDb250ZW50ID0gbmV3UmVhZG1lLmpvaW4oRU9MKTtcbiAgLy8gV3JpdGUgdGhlIG5ldyBSRUFETUVcbiAgY29uc3QgZm9ybWF0dGVkUmVhZG1lID0gYXdhaXQgZm9ybWF0TWFya2Rvd24oZmlsZUNvbnRlbnQpO1xuICBmcy53cml0ZUZpbGVTeW5jKHJlYWRtZVBhdGgsIGZvcm1hdHRlZFJlYWRtZSk7XG4gIGxvZy5pbmZvKGBzdWNjZXNzZnVsbHkgdXBkYXRlZCB0aGUgJHt0b2tlbk5hbWV9IHNlY3Rpb25gKTtcbn1cbiIsICJleHBvcnQgaW50ZXJmYWNlIFZlcnNpb25pbmcge1xuICBlbmFibGVkOiBib29sZWFuO1xuICBwcmVmaXg6IHN0cmluZztcbiAgb3ZlcnJpZGU6IHN0cmluZztcbiAgYnJhbmNoOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhdGhzIHtcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIHJlYWRtZTogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgR0hBY3Rpb25Eb2NzQ29uZmlnIHtcbiAgb3duZXI6IHN0cmluZztcblxuICByZXBvOiBzdHJpbmc7XG5cbiAgdGl0bGVfcHJlZml4OiBzdHJpbmc7XG5cbiAgdGl0bGU6IHN0cmluZztcblxuICBwYXRoczogUGF0aHM7XG5cbiAgc2hvd19sb2dvOiBib29sZWFuO1xuXG4gIHZlcnNpb25pbmc6IFZlcnNpb25pbmc7XG5cbiAgcmVhZG1lUGF0aDogc3RyaW5nO1xuXG4gIG91dHBhdGg6IHN0cmluZztcblxuICBwcmV0dHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBzdGFydFRva2VuRm9ybWF0ID0gJzwhLS0gc3RhcnQgJXMgLS0+JztcbmV4cG9ydCBjb25zdCBlbmRUb2tlbkZvcm1hdCA9ICc8IS0tIGVuZCAlcyAtLT4nO1xuIiwgImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgYXMgX19wcmV0dGllckNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIGFzIF9fcHJldHRpZXJGaWxlVXJsVG9QYXRoIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgZGlybmFtZSBhcyBfX3ByZXR0aWVyRGlybmFtZSB9IGZyb20gXCJwYXRoXCI7XG5jb25zdCByZXF1aXJlID0gX19wcmV0dGllckNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZmlsZW5hbWUgPSBfX3ByZXR0aWVyRmlsZVVybFRvUGF0aChpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgX19kaXJuYW1lID0gX19wcmV0dGllckRpcm5hbWUoX19maWxlbmFtZSk7XG5cbnZhciBfX2NyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19nZXRQcm90b09mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19yZXF1aXJlID0gLyogQF9fUFVSRV9fICovICgoeCkgPT4gdHlwZW9mIHJlcXVpcmUgIT09IFwidW5kZWZpbmVkXCIgPyByZXF1aXJlIDogdHlwZW9mIFByb3h5ICE9PSBcInVuZGVmaW5lZFwiID8gbmV3IFByb3h5KHgsIHtcbiAgZ2V0OiAoYSwgYikgPT4gKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiID8gcmVxdWlyZSA6IGEpW2JdXG59KSA6IHgpKGZ1bmN0aW9uKHgpIHtcbiAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiKVxuICAgIHJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHRocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgXCInICsgeCArICdcIiBpcyBub3Qgc3VwcG9ydGVkJyk7XG59KTtcbnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZTIoKSB7XG4gIHJldHVybiBtb2QgfHwgKDAsIGNiW19fZ2V0T3duUHJvcE5hbWVzKGNiKVswXV0pKChtb2QgPSB7IGV4cG9ydHM6IHt9IH0pLmV4cG9ydHMsIG1vZCksIG1vZC5leHBvcnRzO1xufTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvRVNNID0gKG1vZCwgaXNOb2RlTW9kZSwgdGFyZ2V0KSA9PiAodGFyZ2V0ID0gbW9kICE9IG51bGwgPyBfX2NyZWF0ZShfX2dldFByb3RvT2YobW9kKSkgOiB7fSwgX19jb3B5UHJvcHMoXG4gIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU01cbiAgLy8gZmlsZSB0aGF0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIENvbW1vbkpTIGZpbGUgdXNpbmcgYSBCYWJlbC1cbiAgLy8gY29tcGF0aWJsZSB0cmFuc2Zvcm0gKGkuZS4gXCJfX2VzTW9kdWxlXCIgaGFzIG5vdCBiZWVuIHNldCksIHRoZW4gc2V0XG4gIC8vIFwiZGVmYXVsdFwiIHRvIHRoZSBDb21tb25KUyBcIm1vZHVsZS5leHBvcnRzXCIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS5cbiAgaXNOb2RlTW9kZSB8fCAhbW9kIHx8ICFtb2QuX19lc01vZHVsZSA/IF9fZGVmUHJvcCh0YXJnZXQsIFwiZGVmYXVsdFwiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsXG4gIG1vZFxuKSk7XG52YXIgX19hY2Nlc3NDaGVjayA9IChvYmosIG1lbWJlciwgbXNnKSA9PiB7XG4gIGlmICghbWVtYmVyLmhhcyhvYmopKVxuICAgIHRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBcIiArIG1zZyk7XG59O1xudmFyIF9fcHJpdmF0ZUFkZCA9IChvYmosIG1lbWJlciwgdmFsdWUpID0+IHtcbiAgaWYgKG1lbWJlci5oYXMob2JqKSlcbiAgICB0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgYWRkIHRoZSBzYW1lIHByaXZhdGUgbWVtYmVyIG1vcmUgdGhhbiBvbmNlXCIpO1xuICBtZW1iZXIgaW5zdGFuY2VvZiBXZWFrU2V0ID8gbWVtYmVyLmFkZChvYmopIDogbWVtYmVyLnNldChvYmosIHZhbHVlKTtcbn07XG52YXIgX19wcml2YXRlTWV0aG9kID0gKG9iaiwgbWVtYmVyLCBtZXRob2QpID0+IHtcbiAgX19hY2Nlc3NDaGVjayhvYmosIG1lbWJlciwgXCJhY2Nlc3MgcHJpdmF0ZSBtZXRob2RcIik7XG4gIHJldHVybiBtZXRob2Q7XG59O1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9hcnJheS5qc1xudmFyIHJlcXVpcmVfYXJyYXkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9hcnJheS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5zcGxpdFdoZW4gPSBleHBvcnRzLmZsYXR0ZW4gPSB2b2lkIDA7XG4gICAgZnVuY3Rpb24gZmxhdHRlbihpdGVtcykge1xuICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgoY29sbGVjdGlvbiwgaXRlbSkgPT4gW10uY29uY2F0KGNvbGxlY3Rpb24sIGl0ZW0pLCBbXSk7XG4gICAgfVxuICAgIGV4cG9ydHMuZmxhdHRlbiA9IGZsYXR0ZW47XG4gICAgZnVuY3Rpb24gc3BsaXRXaGVuKGl0ZW1zLCBwcmVkaWNhdGUpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFtbXV07XG4gICAgICBsZXQgZ3JvdXBJbmRleCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgaWYgKHByZWRpY2F0ZShpdGVtKSkge1xuICAgICAgICAgIGdyb3VwSW5kZXgrKztcbiAgICAgICAgICByZXN1bHRbZ3JvdXBJbmRleF0gPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRbZ3JvdXBJbmRleF0ucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZXhwb3J0cy5zcGxpdFdoZW4gPSBzcGxpdFdoZW47XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9lcnJuby5qc1xudmFyIHJlcXVpcmVfZXJybm8gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9lcnJuby5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5pc0Vub2VudENvZGVFcnJvciA9IHZvaWQgMDtcbiAgICBmdW5jdGlvbiBpc0Vub2VudENvZGVFcnJvcihlcnJvcikge1xuICAgICAgcmV0dXJuIGVycm9yLmNvZGUgPT09IFwiRU5PRU5UXCI7XG4gICAgfVxuICAgIGV4cG9ydHMuaXNFbm9lbnRDb2RlRXJyb3IgPSBpc0Vub2VudENvZGVFcnJvcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3V0aWxzL2ZzLmpzXG52YXIgcmVxdWlyZV9mcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3V0aWxzL2ZzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLmNyZWF0ZURpcmVudEZyb21TdGF0cyA9IHZvaWQgMDtcbiAgICB2YXIgRGlyZW50RnJvbVN0YXRzID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IobmFtZSwgc3RhdHMpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5pc0Jsb2NrRGV2aWNlID0gc3RhdHMuaXNCbG9ja0RldmljZS5iaW5kKHN0YXRzKTtcbiAgICAgICAgdGhpcy5pc0NoYXJhY3RlckRldmljZSA9IHN0YXRzLmlzQ2hhcmFjdGVyRGV2aWNlLmJpbmQoc3RhdHMpO1xuICAgICAgICB0aGlzLmlzRGlyZWN0b3J5ID0gc3RhdHMuaXNEaXJlY3RvcnkuYmluZChzdGF0cyk7XG4gICAgICAgIHRoaXMuaXNGSUZPID0gc3RhdHMuaXNGSUZPLmJpbmQoc3RhdHMpO1xuICAgICAgICB0aGlzLmlzRmlsZSA9IHN0YXRzLmlzRmlsZS5iaW5kKHN0YXRzKTtcbiAgICAgICAgdGhpcy5pc1NvY2tldCA9IHN0YXRzLmlzU29ja2V0LmJpbmQoc3RhdHMpO1xuICAgICAgICB0aGlzLmlzU3ltYm9saWNMaW5rID0gc3RhdHMuaXNTeW1ib2xpY0xpbmsuYmluZChzdGF0cyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjcmVhdGVEaXJlbnRGcm9tU3RhdHMobmFtZSwgc3RhdHMpIHtcbiAgICAgIHJldHVybiBuZXcgRGlyZW50RnJvbVN0YXRzKG5hbWUsIHN0YXRzKTtcbiAgICB9XG4gICAgZXhwb3J0cy5jcmVhdGVEaXJlbnRGcm9tU3RhdHMgPSBjcmVhdGVEaXJlbnRGcm9tU3RhdHM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9wYXRoLmpzXG52YXIgcmVxdWlyZV9wYXRoID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvdXRpbHMvcGF0aC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5jb252ZXJ0UG9zaXhQYXRoVG9QYXR0ZXJuID0gZXhwb3J0cy5jb252ZXJ0V2luZG93c1BhdGhUb1BhdHRlcm4gPSBleHBvcnRzLmNvbnZlcnRQYXRoVG9QYXR0ZXJuID0gZXhwb3J0cy5lc2NhcGVQb3NpeFBhdGggPSBleHBvcnRzLmVzY2FwZVdpbmRvd3NQYXRoID0gZXhwb3J0cy5lc2NhcGUgPSBleHBvcnRzLnJlbW92ZUxlYWRpbmdEb3RTZWdtZW50ID0gZXhwb3J0cy5tYWtlQWJzb2x1dGUgPSBleHBvcnRzLnVuaXhpZnkgPSB2b2lkIDA7XG4gICAgdmFyIG9zMiA9IF9fcmVxdWlyZShcIm9zXCIpO1xuICAgIHZhciBwYXRoOSA9IF9fcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIElTX1dJTkRPV1NfUExBVEZPUk0gPSBvczIucGxhdGZvcm0oKSA9PT0gXCJ3aW4zMlwiO1xuICAgIHZhciBMRUFESU5HX0RPVF9TRUdNRU5UX0NIQVJBQ1RFUlNfQ09VTlQgPSAyO1xuICAgIHZhciBQT1NJWF9VTkVTQ0FQRURfR0xPQl9TWU1CT0xTX1JFID0gLyhcXFxcPykoWygpKj9bXFxde3x9XXxeIXxbIStAXSg/PVxcKCl8XFxcXCg/IVshKCkqKz9AW1xcXXt8fV0pKS9nO1xuICAgIHZhciBXSU5ET1dTX1VORVNDQVBFRF9HTE9CX1NZTUJPTFNfUkUgPSAvKFxcXFw/KShbKCl7fV18XiF8WyErQF0oPz1cXCgpKS9nO1xuICAgIHZhciBET1NfREVWSUNFX1BBVEhfUkUgPSAvXlxcXFxcXFxcKFsuP10pLztcbiAgICB2YXIgV0lORE9XU19CQUNLU0xBU0hFU19SRSA9IC9cXFxcKD8hWyEoKStAe31dKS9nO1xuICAgIGZ1bmN0aW9uIHVuaXhpZnkoZmlsZXBhdGgpIHtcbiAgICAgIHJldHVybiBmaWxlcGF0aC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcbiAgICB9XG4gICAgZXhwb3J0cy51bml4aWZ5ID0gdW5peGlmeTtcbiAgICBmdW5jdGlvbiBtYWtlQWJzb2x1dGUoY3dkLCBmaWxlcGF0aCkge1xuICAgICAgcmV0dXJuIHBhdGg5LnJlc29sdmUoY3dkLCBmaWxlcGF0aCk7XG4gICAgfVxuICAgIGV4cG9ydHMubWFrZUFic29sdXRlID0gbWFrZUFic29sdXRlO1xuICAgIGZ1bmN0aW9uIHJlbW92ZUxlYWRpbmdEb3RTZWdtZW50KGVudHJ5KSB7XG4gICAgICBpZiAoZW50cnkuY2hhckF0KDApID09PSBcIi5cIikge1xuICAgICAgICBjb25zdCBzZWNvbmRDaGFyYWN0ZXJ5ID0gZW50cnkuY2hhckF0KDEpO1xuICAgICAgICBpZiAoc2Vjb25kQ2hhcmFjdGVyeSA9PT0gXCIvXCIgfHwgc2Vjb25kQ2hhcmFjdGVyeSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICByZXR1cm4gZW50cnkuc2xpY2UoTEVBRElOR19ET1RfU0VHTUVOVF9DSEFSQUNURVJTX0NPVU5UKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cbiAgICBleHBvcnRzLnJlbW92ZUxlYWRpbmdEb3RTZWdtZW50ID0gcmVtb3ZlTGVhZGluZ0RvdFNlZ21lbnQ7XG4gICAgZXhwb3J0cy5lc2NhcGUgPSBJU19XSU5ET1dTX1BMQVRGT1JNID8gZXNjYXBlV2luZG93c1BhdGggOiBlc2NhcGVQb3NpeFBhdGg7XG4gICAgZnVuY3Rpb24gZXNjYXBlV2luZG93c1BhdGgocGF0dGVybikge1xuICAgICAgcmV0dXJuIHBhdHRlcm4ucmVwbGFjZShXSU5ET1dTX1VORVNDQVBFRF9HTE9CX1NZTUJPTFNfUkUsIFwiXFxcXCQyXCIpO1xuICAgIH1cbiAgICBleHBvcnRzLmVzY2FwZVdpbmRvd3NQYXRoID0gZXNjYXBlV2luZG93c1BhdGg7XG4gICAgZnVuY3Rpb24gZXNjYXBlUG9zaXhQYXRoKHBhdHRlcm4pIHtcbiAgICAgIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoUE9TSVhfVU5FU0NBUEVEX0dMT0JfU1lNQk9MU19SRSwgXCJcXFxcJDJcIik7XG4gICAgfVxuICAgIGV4cG9ydHMuZXNjYXBlUG9zaXhQYXRoID0gZXNjYXBlUG9zaXhQYXRoO1xuICAgIGV4cG9ydHMuY29udmVydFBhdGhUb1BhdHRlcm4gPSBJU19XSU5ET1dTX1BMQVRGT1JNID8gY29udmVydFdpbmRvd3NQYXRoVG9QYXR0ZXJuIDogY29udmVydFBvc2l4UGF0aFRvUGF0dGVybjtcbiAgICBmdW5jdGlvbiBjb252ZXJ0V2luZG93c1BhdGhUb1BhdHRlcm4oZmlsZXBhdGgpIHtcbiAgICAgIHJldHVybiBlc2NhcGVXaW5kb3dzUGF0aChmaWxlcGF0aCkucmVwbGFjZShET1NfREVWSUNFX1BBVEhfUkUsIFwiLy8kMVwiKS5yZXBsYWNlKFdJTkRPV1NfQkFDS1NMQVNIRVNfUkUsIFwiL1wiKTtcbiAgICB9XG4gICAgZXhwb3J0cy5jb252ZXJ0V2luZG93c1BhdGhUb1BhdHRlcm4gPSBjb252ZXJ0V2luZG93c1BhdGhUb1BhdHRlcm47XG4gICAgZnVuY3Rpb24gY29udmVydFBvc2l4UGF0aFRvUGF0dGVybihmaWxlcGF0aCkge1xuICAgICAgcmV0dXJuIGVzY2FwZVBvc2l4UGF0aChmaWxlcGF0aCk7XG4gICAgfVxuICAgIGV4cG9ydHMuY29udmVydFBvc2l4UGF0aFRvUGF0dGVybiA9IGNvbnZlcnRQb3NpeFBhdGhUb1BhdHRlcm47XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaXMtZXh0Z2xvYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfaXNfZXh0Z2xvYiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pcy1leHRnbG9iL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0V4dGdsb2Ioc3RyKSB7XG4gICAgICBpZiAodHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIiB8fCBzdHIgPT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdmFyIG1hdGNoO1xuICAgICAgd2hpbGUgKG1hdGNoID0gLyhcXFxcKS58KFtAPyErKl1cXCguKlxcKSkvZy5leGVjKHN0cikpIHtcbiAgICAgICAgaWYgKG1hdGNoWzJdKVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBzdHIgPSBzdHIuc2xpY2UobWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaXMtZ2xvYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfaXNfZ2xvYiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pcy1nbG9iL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIGlzRXh0Z2xvYiA9IHJlcXVpcmVfaXNfZXh0Z2xvYigpO1xuICAgIHZhciBjaGFycyA9IHsgXCJ7XCI6IFwifVwiLCBcIihcIjogXCIpXCIsIFwiW1wiOiBcIl1cIiB9O1xuICAgIHZhciBzdHJpY3RDaGVjayA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgaWYgKHN0clswXSA9PT0gXCIhXCIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgaW5kZXggPSAwO1xuICAgICAgdmFyIHBpcGVJbmRleCA9IC0yO1xuICAgICAgdmFyIGNsb3NlU3F1YXJlSW5kZXggPSAtMjtcbiAgICAgIHZhciBjbG9zZUN1cmx5SW5kZXggPSAtMjtcbiAgICAgIHZhciBjbG9zZVBhcmVuSW5kZXggPSAtMjtcbiAgICAgIHZhciBiYWNrU2xhc2hJbmRleCA9IC0yO1xuICAgICAgd2hpbGUgKGluZGV4IDwgc3RyLmxlbmd0aCkge1xuICAgICAgICBpZiAoc3RyW2luZGV4XSA9PT0gXCIqXCIpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyW2luZGV4ICsgMV0gPT09IFwiP1wiICYmIC9bXFxdLispXS8udGVzdChzdHJbaW5kZXhdKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjbG9zZVNxdWFyZUluZGV4ICE9PSAtMSAmJiBzdHJbaW5kZXhdID09PSBcIltcIiAmJiBzdHJbaW5kZXggKyAxXSAhPT0gXCJdXCIpIHtcbiAgICAgICAgICBpZiAoY2xvc2VTcXVhcmVJbmRleCA8IGluZGV4KSB7XG4gICAgICAgICAgICBjbG9zZVNxdWFyZUluZGV4ID0gc3RyLmluZGV4T2YoXCJdXCIsIGluZGV4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNsb3NlU3F1YXJlSW5kZXggPiBpbmRleCkge1xuICAgICAgICAgICAgaWYgKGJhY2tTbGFzaEluZGV4ID09PSAtMSB8fCBiYWNrU2xhc2hJbmRleCA+IGNsb3NlU3F1YXJlSW5kZXgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYWNrU2xhc2hJbmRleCA9IHN0ci5pbmRleE9mKFwiXFxcXFwiLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAoYmFja1NsYXNoSW5kZXggPT09IC0xIHx8IGJhY2tTbGFzaEluZGV4ID4gY2xvc2VTcXVhcmVJbmRleCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNsb3NlQ3VybHlJbmRleCAhPT0gLTEgJiYgc3RyW2luZGV4XSA9PT0gXCJ7XCIgJiYgc3RyW2luZGV4ICsgMV0gIT09IFwifVwiKSB7XG4gICAgICAgICAgY2xvc2VDdXJseUluZGV4ID0gc3RyLmluZGV4T2YoXCJ9XCIsIGluZGV4KTtcbiAgICAgICAgICBpZiAoY2xvc2VDdXJseUluZGV4ID4gaW5kZXgpIHtcbiAgICAgICAgICAgIGJhY2tTbGFzaEluZGV4ID0gc3RyLmluZGV4T2YoXCJcXFxcXCIsIGluZGV4KTtcbiAgICAgICAgICAgIGlmIChiYWNrU2xhc2hJbmRleCA9PT0gLTEgfHwgYmFja1NsYXNoSW5kZXggPiBjbG9zZUN1cmx5SW5kZXgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjbG9zZVBhcmVuSW5kZXggIT09IC0xICYmIHN0cltpbmRleF0gPT09IFwiKFwiICYmIHN0cltpbmRleCArIDFdID09PSBcIj9cIiAmJiAvWzohPV0vLnRlc3Qoc3RyW2luZGV4ICsgMl0pICYmIHN0cltpbmRleCArIDNdICE9PSBcIilcIikge1xuICAgICAgICAgIGNsb3NlUGFyZW5JbmRleCA9IHN0ci5pbmRleE9mKFwiKVwiLCBpbmRleCk7XG4gICAgICAgICAgaWYgKGNsb3NlUGFyZW5JbmRleCA+IGluZGV4KSB7XG4gICAgICAgICAgICBiYWNrU2xhc2hJbmRleCA9IHN0ci5pbmRleE9mKFwiXFxcXFwiLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAoYmFja1NsYXNoSW5kZXggPT09IC0xIHx8IGJhY2tTbGFzaEluZGV4ID4gY2xvc2VQYXJlbkluZGV4KSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocGlwZUluZGV4ICE9PSAtMSAmJiBzdHJbaW5kZXhdID09PSBcIihcIiAmJiBzdHJbaW5kZXggKyAxXSAhPT0gXCJ8XCIpIHtcbiAgICAgICAgICBpZiAocGlwZUluZGV4IDwgaW5kZXgpIHtcbiAgICAgICAgICAgIHBpcGVJbmRleCA9IHN0ci5pbmRleE9mKFwifFwiLCBpbmRleCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwaXBlSW5kZXggIT09IC0xICYmIHN0cltwaXBlSW5kZXggKyAxXSAhPT0gXCIpXCIpIHtcbiAgICAgICAgICAgIGNsb3NlUGFyZW5JbmRleCA9IHN0ci5pbmRleE9mKFwiKVwiLCBwaXBlSW5kZXgpO1xuICAgICAgICAgICAgaWYgKGNsb3NlUGFyZW5JbmRleCA+IHBpcGVJbmRleCkge1xuICAgICAgICAgICAgICBiYWNrU2xhc2hJbmRleCA9IHN0ci5pbmRleE9mKFwiXFxcXFwiLCBwaXBlSW5kZXgpO1xuICAgICAgICAgICAgICBpZiAoYmFja1NsYXNoSW5kZXggPT09IC0xIHx8IGJhY2tTbGFzaEluZGV4ID4gY2xvc2VQYXJlbkluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cltpbmRleF0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgdmFyIG9wZW4gPSBzdHJbaW5kZXggKyAxXTtcbiAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgIHZhciBjbG9zZSA9IGNoYXJzW29wZW5dO1xuICAgICAgICAgIGlmIChjbG9zZSkge1xuICAgICAgICAgICAgdmFyIG4gPSBzdHIuaW5kZXhPZihjbG9zZSwgaW5kZXgpO1xuICAgICAgICAgICAgaWYgKG4gIT09IC0xKSB7XG4gICAgICAgICAgICAgIGluZGV4ID0gbiArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHJbaW5kZXhdID09PSBcIiFcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIHZhciByZWxheGVkQ2hlY2sgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIGlmIChzdHJbMF0gPT09IFwiIVwiKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgIHdoaWxlIChpbmRleCA8IHN0ci5sZW5ndGgpIHtcbiAgICAgICAgaWYgKC9bKj97fSgpW1xcXV0vLnRlc3Qoc3RyW2luZGV4XSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyW2luZGV4XSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICB2YXIgb3BlbiA9IHN0cltpbmRleCArIDFdO1xuICAgICAgICAgIGluZGV4ICs9IDI7XG4gICAgICAgICAgdmFyIGNsb3NlID0gY2hhcnNbb3Blbl07XG4gICAgICAgICAgaWYgKGNsb3NlKSB7XG4gICAgICAgICAgICB2YXIgbiA9IHN0ci5pbmRleE9mKGNsb3NlLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAobiAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgaW5kZXggPSBuICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cltpbmRleF0gPT09IFwiIVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0dsb2Ioc3RyLCBvcHRpb25zOCkge1xuICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIgfHwgc3RyID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0V4dGdsb2Ioc3RyKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBjaGVjazIgPSBzdHJpY3RDaGVjaztcbiAgICAgIGlmIChvcHRpb25zOCAmJiBvcHRpb25zOC5zdHJpY3QgPT09IGZhbHNlKSB7XG4gICAgICAgIGNoZWNrMiA9IHJlbGF4ZWRDaGVjaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGVjazIoc3RyKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2dsb2ItcGFyZW50L2luZGV4LmpzXG52YXIgcmVxdWlyZV9nbG9iX3BhcmVudCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9nbG9iLXBhcmVudC9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBpc0dsb2IgPSByZXF1aXJlX2lzX2dsb2IoKTtcbiAgICB2YXIgcGF0aFBvc2l4RGlybmFtZSA9IF9fcmVxdWlyZShcInBhdGhcIikucG9zaXguZGlybmFtZTtcbiAgICB2YXIgaXNXaW4zMiA9IF9fcmVxdWlyZShcIm9zXCIpLnBsYXRmb3JtKCkgPT09IFwid2luMzJcIjtcbiAgICB2YXIgc2xhc2gyID0gXCIvXCI7XG4gICAgdmFyIGJhY2tzbGFzaCA9IC9cXFxcL2c7XG4gICAgdmFyIGVuY2xvc3VyZSA9IC9bXFx7XFxbXS4qW1xcfVxcXV0kLztcbiAgICB2YXIgZ2xvYmJ5ID0gLyhefFteXFxcXF0pKFtcXHtcXFtdfFxcKFteXFwpXSskKS87XG4gICAgdmFyIGVzY2FwZWQgPSAvXFxcXChbXFwhXFwqXFw/XFx8XFxbXFxdXFwoXFwpXFx7XFx9XSkvZztcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdsb2JQYXJlbnQoc3RyLCBvcHRzKSB7XG4gICAgICB2YXIgb3B0aW9uczggPSBPYmplY3QuYXNzaWduKHsgZmxpcEJhY2tzbGFzaGVzOiB0cnVlIH0sIG9wdHMpO1xuICAgICAgaWYgKG9wdGlvbnM4LmZsaXBCYWNrc2xhc2hlcyAmJiBpc1dpbjMyICYmIHN0ci5pbmRleE9mKHNsYXNoMikgPCAwKSB7XG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKGJhY2tzbGFzaCwgc2xhc2gyKTtcbiAgICAgIH1cbiAgICAgIGlmIChlbmNsb3N1cmUudGVzdChzdHIpKSB7XG4gICAgICAgIHN0ciArPSBzbGFzaDI7XG4gICAgICB9XG4gICAgICBzdHIgKz0gXCJhXCI7XG4gICAgICBkbyB7XG4gICAgICAgIHN0ciA9IHBhdGhQb3NpeERpcm5hbWUoc3RyKTtcbiAgICAgIH0gd2hpbGUgKGlzR2xvYihzdHIpIHx8IGdsb2JieS50ZXN0KHN0cikpO1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKGVzY2FwZWQsIFwiJDFcIik7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9icmFjZXMvbGliL3V0aWxzLmpzXG52YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9icmFjZXMvbGliL3V0aWxzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIGV4cG9ydHMuaXNJbnRlZ2VyID0gKG51bSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBudW0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIobnVtKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbnVtID09PSBcInN0cmluZ1wiICYmIG51bS50cmltKCkgIT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIoTnVtYmVyKG51bSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgZXhwb3J0cy5maW5kID0gKG5vZGUsIHR5cGUpID0+IG5vZGUubm9kZXMuZmluZCgobm9kZTIpID0+IG5vZGUyLnR5cGUgPT09IHR5cGUpO1xuICAgIGV4cG9ydHMuZXhjZWVkc0xpbWl0ID0gKG1pbiwgbWF4LCBzdGVwID0gMSwgbGltaXQpID0+IHtcbiAgICAgIGlmIChsaW1pdCA9PT0gZmFsc2UpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICghZXhwb3J0cy5pc0ludGVnZXIobWluKSB8fCAhZXhwb3J0cy5pc0ludGVnZXIobWF4KSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIChOdW1iZXIobWF4KSAtIE51bWJlcihtaW4pKSAvIE51bWJlcihzdGVwKSA+PSBsaW1pdDtcbiAgICB9O1xuICAgIGV4cG9ydHMuZXNjYXBlTm9kZSA9IChibG9jaywgbiA9IDAsIHR5cGUpID0+IHtcbiAgICAgIGxldCBub2RlID0gYmxvY2subm9kZXNbbl07XG4gICAgICBpZiAoIW5vZGUpXG4gICAgICAgIHJldHVybjtcbiAgICAgIGlmICh0eXBlICYmIG5vZGUudHlwZSA9PT0gdHlwZSB8fCBub2RlLnR5cGUgPT09IFwib3BlblwiIHx8IG5vZGUudHlwZSA9PT0gXCJjbG9zZVwiKSB7XG4gICAgICAgIGlmIChub2RlLmVzY2FwZWQgIT09IHRydWUpIHtcbiAgICAgICAgICBub2RlLnZhbHVlID0gXCJcXFxcXCIgKyBub2RlLnZhbHVlO1xuICAgICAgICAgIG5vZGUuZXNjYXBlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZW5jbG9zZUJyYWNlID0gKG5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlLnR5cGUgIT09IFwiYnJhY2VcIilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKG5vZGUuY29tbWFzID4+IDAgKyBub2RlLnJhbmdlcyA+PiAwID09PSAwKSB7XG4gICAgICAgIG5vZGUuaW52YWxpZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0ludmFsaWRCcmFjZSA9IChibG9jaykgPT4ge1xuICAgICAgaWYgKGJsb2NrLnR5cGUgIT09IFwiYnJhY2VcIilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGJsb2NrLmludmFsaWQgPT09IHRydWUgfHwgYmxvY2suZG9sbGFyKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChibG9jay5jb21tYXMgPj4gMCArIGJsb2NrLnJhbmdlcyA+PiAwID09PSAwKSB7XG4gICAgICAgIGJsb2NrLmludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChibG9jay5vcGVuICE9PSB0cnVlIHx8IGJsb2NrLmNsb3NlICE9PSB0cnVlKSB7XG4gICAgICAgIGJsb2NrLmludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNPcGVuT3JDbG9zZSA9IChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS50eXBlID09PSBcIm9wZW5cIiB8fCBub2RlLnR5cGUgPT09IFwiY2xvc2VcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2RlLm9wZW4gPT09IHRydWUgfHwgbm9kZS5jbG9zZSA9PT0gdHJ1ZTtcbiAgICB9O1xuICAgIGV4cG9ydHMucmVkdWNlID0gKG5vZGVzKSA9PiBub2Rlcy5yZWR1Y2UoKGFjYywgbm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gXCJ0ZXh0XCIpXG4gICAgICAgIGFjYy5wdXNoKG5vZGUudmFsdWUpO1xuICAgICAgaWYgKG5vZGUudHlwZSA9PT0gXCJyYW5nZVwiKVxuICAgICAgICBub2RlLnR5cGUgPSBcInRleHRcIjtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICAgIGV4cG9ydHMuZmxhdHRlbiA9ICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgIGNvbnN0IGZsYXQgPSAoYXJyKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgbGV0IGVsZSA9IGFycltpXTtcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGVsZSkgPyBmbGF0KGVsZSwgcmVzdWx0KSA6IGVsZSAhPT0gdm9pZCAwICYmIHJlc3VsdC5wdXNoKGVsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgICBmbGF0KGFyZ3MpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JyYWNlcy9saWIvc3RyaW5naWZ5LmpzXG52YXIgcmVxdWlyZV9zdHJpbmdpZnkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9zdHJpbmdpZnkuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAoYXN0LCBvcHRpb25zOCA9IHt9KSA9PiB7XG4gICAgICBsZXQgc3RyaW5naWZ5ID0gKG5vZGUsIHBhcmVudCA9IHt9KSA9PiB7XG4gICAgICAgIGxldCBpbnZhbGlkQmxvY2sgPSBvcHRpb25zOC5lc2NhcGVJbnZhbGlkICYmIHV0aWxzLmlzSW52YWxpZEJyYWNlKHBhcmVudCk7XG4gICAgICAgIGxldCBpbnZhbGlkTm9kZSA9IG5vZGUuaW52YWxpZCA9PT0gdHJ1ZSAmJiBvcHRpb25zOC5lc2NhcGVJbnZhbGlkID09PSB0cnVlO1xuICAgICAgICBsZXQgb3V0cHV0ID0gXCJcIjtcbiAgICAgICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgICAgICBpZiAoKGludmFsaWRCbG9jayB8fCBpbnZhbGlkTm9kZSkgJiYgdXRpbHMuaXNPcGVuT3JDbG9zZShub2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXFxcXFwiICsgbm9kZS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gbm9kZS52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5ub2Rlcykge1xuICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5vZGUubm9kZXMpIHtcbiAgICAgICAgICAgIG91dHB1dCArPSBzdHJpbmdpZnkoY2hpbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgfTtcbiAgICAgIHJldHVybiBzdHJpbmdpZnkoYXN0KTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2lzLW51bWJlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfaXNfbnVtYmVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2lzLW51bWJlci9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obnVtKSB7XG4gICAgICBpZiAodHlwZW9mIG51bSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gbnVtIC0gbnVtID09PSAwO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBudW0gPT09IFwic3RyaW5nXCIgJiYgbnVtLnRyaW0oKSAhPT0gXCJcIikge1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlID8gTnVtYmVyLmlzRmluaXRlKCtudW0pIDogaXNGaW5pdGUoK251bSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy90by1yZWdleC1yYW5nZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfdG9fcmVnZXhfcmFuZ2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvdG8tcmVnZXgtcmFuZ2UvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaXNOdW1iZXIgPSByZXF1aXJlX2lzX251bWJlcigpO1xuICAgIHZhciB0b1JlZ2V4UmFuZ2UgPSAobWluLCBtYXgsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAoaXNOdW1iZXIobWluKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG1heCA9PT0gdm9pZCAwIHx8IG1pbiA9PT0gbWF4KSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobWluKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc051bWJlcihtYXgpID09PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidG9SZWdleFJhbmdlOiBleHBlY3RlZCB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyLlwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBvcHRzID0geyByZWxheFplcm9zOiB0cnVlLCAuLi5vcHRpb25zOCB9O1xuICAgICAgaWYgKHR5cGVvZiBvcHRzLnN0cmljdFplcm9zID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICBvcHRzLnJlbGF4WmVyb3MgPSBvcHRzLnN0cmljdFplcm9zID09PSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGxldCByZWxheCA9IFN0cmluZyhvcHRzLnJlbGF4WmVyb3MpO1xuICAgICAgbGV0IHNob3J0aGFuZCA9IFN0cmluZyhvcHRzLnNob3J0aGFuZCk7XG4gICAgICBsZXQgY2FwdHVyZSA9IFN0cmluZyhvcHRzLmNhcHR1cmUpO1xuICAgICAgbGV0IHdyYXAgPSBTdHJpbmcob3B0cy53cmFwKTtcbiAgICAgIGxldCBjYWNoZUtleSA9IG1pbiArIFwiOlwiICsgbWF4ICsgXCI9XCIgKyByZWxheCArIHNob3J0aGFuZCArIGNhcHR1cmUgKyB3cmFwO1xuICAgICAgaWYgKHRvUmVnZXhSYW5nZS5jYWNoZS5oYXNPd25Qcm9wZXJ0eShjYWNoZUtleSkpIHtcbiAgICAgICAgcmV0dXJuIHRvUmVnZXhSYW5nZS5jYWNoZVtjYWNoZUtleV0ucmVzdWx0O1xuICAgICAgfVxuICAgICAgbGV0IGEgPSBNYXRoLm1pbihtaW4sIG1heCk7XG4gICAgICBsZXQgYiA9IE1hdGgubWF4KG1pbiwgbWF4KTtcbiAgICAgIGlmIChNYXRoLmFicyhhIC0gYikgPT09IDEpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG1pbiArIFwifFwiICsgbWF4O1xuICAgICAgICBpZiAob3B0cy5jYXB0dXJlKSB7XG4gICAgICAgICAgcmV0dXJuIGAoJHtyZXN1bHR9KWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMud3JhcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgKD86JHtyZXN1bHR9KWA7XG4gICAgICB9XG4gICAgICBsZXQgaXNQYWRkZWQgPSBoYXNQYWRkaW5nKG1pbikgfHwgaGFzUGFkZGluZyhtYXgpO1xuICAgICAgbGV0IHN0YXRlID0geyBtaW4sIG1heCwgYSwgYiB9O1xuICAgICAgbGV0IHBvc2l0aXZlcyA9IFtdO1xuICAgICAgbGV0IG5lZ2F0aXZlcyA9IFtdO1xuICAgICAgaWYgKGlzUGFkZGVkKSB7XG4gICAgICAgIHN0YXRlLmlzUGFkZGVkID0gaXNQYWRkZWQ7XG4gICAgICAgIHN0YXRlLm1heExlbiA9IFN0cmluZyhzdGF0ZS5tYXgpLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGlmIChhIDwgMCkge1xuICAgICAgICBsZXQgbmV3TWluID0gYiA8IDAgPyBNYXRoLmFicyhiKSA6IDE7XG4gICAgICAgIG5lZ2F0aXZlcyA9IHNwbGl0VG9QYXR0ZXJucyhuZXdNaW4sIE1hdGguYWJzKGEpLCBzdGF0ZSwgb3B0cyk7XG4gICAgICAgIGEgPSBzdGF0ZS5hID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChiID49IDApIHtcbiAgICAgICAgcG9zaXRpdmVzID0gc3BsaXRUb1BhdHRlcm5zKGEsIGIsIHN0YXRlLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIHN0YXRlLm5lZ2F0aXZlcyA9IG5lZ2F0aXZlcztcbiAgICAgIHN0YXRlLnBvc2l0aXZlcyA9IHBvc2l0aXZlcztcbiAgICAgIHN0YXRlLnJlc3VsdCA9IGNvbGxhdGVQYXR0ZXJucyhuZWdhdGl2ZXMsIHBvc2l0aXZlcywgb3B0cyk7XG4gICAgICBpZiAob3B0cy5jYXB0dXJlID09PSB0cnVlKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCA9IGAoJHtzdGF0ZS5yZXN1bHR9KWA7XG4gICAgICB9IGVsc2UgaWYgKG9wdHMud3JhcCAhPT0gZmFsc2UgJiYgcG9zaXRpdmVzLmxlbmd0aCArIG5lZ2F0aXZlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCA9IGAoPzoke3N0YXRlLnJlc3VsdH0pYDtcbiAgICAgIH1cbiAgICAgIHRvUmVnZXhSYW5nZS5jYWNoZVtjYWNoZUtleV0gPSBzdGF0ZTtcbiAgICAgIHJldHVybiBzdGF0ZS5yZXN1bHQ7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjb2xsYXRlUGF0dGVybnMobmVnLCBwb3MsIG9wdGlvbnM4KSB7XG4gICAgICBsZXQgb25seU5lZ2F0aXZlID0gZmlsdGVyUGF0dGVybnMobmVnLCBwb3MsIFwiLVwiLCBmYWxzZSwgb3B0aW9uczgpIHx8IFtdO1xuICAgICAgbGV0IG9ubHlQb3NpdGl2ZSA9IGZpbHRlclBhdHRlcm5zKHBvcywgbmVnLCBcIlwiLCBmYWxzZSwgb3B0aW9uczgpIHx8IFtdO1xuICAgICAgbGV0IGludGVyc2VjdGVkID0gZmlsdGVyUGF0dGVybnMobmVnLCBwb3MsIFwiLT9cIiwgdHJ1ZSwgb3B0aW9uczgpIHx8IFtdO1xuICAgICAgbGV0IHN1YnBhdHRlcm5zID0gb25seU5lZ2F0aXZlLmNvbmNhdChpbnRlcnNlY3RlZCkuY29uY2F0KG9ubHlQb3NpdGl2ZSk7XG4gICAgICByZXR1cm4gc3VicGF0dGVybnMuam9pbihcInxcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNwbGl0VG9SYW5nZXMobWluLCBtYXgpIHtcbiAgICAgIGxldCBuaW5lcyA9IDE7XG4gICAgICBsZXQgemVyb3MgPSAxO1xuICAgICAgbGV0IHN0b3AgPSBjb3VudE5pbmVzKG1pbiwgbmluZXMpO1xuICAgICAgbGV0IHN0b3BzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW21heF0pO1xuICAgICAgd2hpbGUgKG1pbiA8PSBzdG9wICYmIHN0b3AgPD0gbWF4KSB7XG4gICAgICAgIHN0b3BzLmFkZChzdG9wKTtcbiAgICAgICAgbmluZXMgKz0gMTtcbiAgICAgICAgc3RvcCA9IGNvdW50TmluZXMobWluLCBuaW5lcyk7XG4gICAgICB9XG4gICAgICBzdG9wID0gY291bnRaZXJvcyhtYXggKyAxLCB6ZXJvcykgLSAxO1xuICAgICAgd2hpbGUgKG1pbiA8IHN0b3AgJiYgc3RvcCA8PSBtYXgpIHtcbiAgICAgICAgc3RvcHMuYWRkKHN0b3ApO1xuICAgICAgICB6ZXJvcyArPSAxO1xuICAgICAgICBzdG9wID0gY291bnRaZXJvcyhtYXggKyAxLCB6ZXJvcykgLSAxO1xuICAgICAgfVxuICAgICAgc3RvcHMgPSBbLi4uc3RvcHNdO1xuICAgICAgc3RvcHMuc29ydChjb21wYXJlKTtcbiAgICAgIHJldHVybiBzdG9wcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmFuZ2VUb1BhdHRlcm4oc3RhcnQsIHN0b3AsIG9wdGlvbnM4KSB7XG4gICAgICBpZiAoc3RhcnQgPT09IHN0b3ApIHtcbiAgICAgICAgcmV0dXJuIHsgcGF0dGVybjogc3RhcnQsIGNvdW50OiBbXSwgZGlnaXRzOiAwIH07XG4gICAgICB9XG4gICAgICBsZXQgemlwcGVkID0gemlwKHN0YXJ0LCBzdG9wKTtcbiAgICAgIGxldCBkaWdpdHMgPSB6aXBwZWQubGVuZ3RoO1xuICAgICAgbGV0IHBhdHRlcm4gPSBcIlwiO1xuICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlnaXRzOyBpKyspIHtcbiAgICAgICAgbGV0IFtzdGFydERpZ2l0LCBzdG9wRGlnaXRdID0gemlwcGVkW2ldO1xuICAgICAgICBpZiAoc3RhcnREaWdpdCA9PT0gc3RvcERpZ2l0KSB7XG4gICAgICAgICAgcGF0dGVybiArPSBzdGFydERpZ2l0O1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0RGlnaXQgIT09IFwiMFwiIHx8IHN0b3BEaWdpdCAhPT0gXCI5XCIpIHtcbiAgICAgICAgICBwYXR0ZXJuICs9IHRvQ2hhcmFjdGVyQ2xhc3Moc3RhcnREaWdpdCwgc3RvcERpZ2l0LCBvcHRpb25zOCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgIHBhdHRlcm4gKz0gb3B0aW9uczguc2hvcnRoYW5kID09PSB0cnVlID8gXCJcXFxcZFwiIDogXCJbMC05XVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgcGF0dGVybiwgY291bnQ6IFtjb3VudF0sIGRpZ2l0cyB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGxpdFRvUGF0dGVybnMobWluLCBtYXgsIHRvaywgb3B0aW9uczgpIHtcbiAgICAgIGxldCByYW5nZXMgPSBzcGxpdFRvUmFuZ2VzKG1pbiwgbWF4KTtcbiAgICAgIGxldCB0b2tlbnMgPSBbXTtcbiAgICAgIGxldCBzdGFydCA9IG1pbjtcbiAgICAgIGxldCBwcmV2O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IG1heDIgPSByYW5nZXNbaV07XG4gICAgICAgIGxldCBvYmogPSByYW5nZVRvUGF0dGVybihTdHJpbmcoc3RhcnQpLCBTdHJpbmcobWF4MiksIG9wdGlvbnM4KTtcbiAgICAgICAgbGV0IHplcm9zID0gXCJcIjtcbiAgICAgICAgaWYgKCF0b2suaXNQYWRkZWQgJiYgcHJldiAmJiBwcmV2LnBhdHRlcm4gPT09IG9iai5wYXR0ZXJuKSB7XG4gICAgICAgICAgaWYgKHByZXYuY291bnQubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcHJldi5jb3VudC5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJldi5jb3VudC5wdXNoKG9iai5jb3VudFswXSk7XG4gICAgICAgICAgcHJldi5zdHJpbmcgPSBwcmV2LnBhdHRlcm4gKyB0b1F1YW50aWZpZXIocHJldi5jb3VudCk7XG4gICAgICAgICAgc3RhcnQgPSBtYXgyICsgMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rLmlzUGFkZGVkKSB7XG4gICAgICAgICAgemVyb3MgPSBwYWRaZXJvcyhtYXgyLCB0b2ssIG9wdGlvbnM4KTtcbiAgICAgICAgfVxuICAgICAgICBvYmouc3RyaW5nID0gemVyb3MgKyBvYmoucGF0dGVybiArIHRvUXVhbnRpZmllcihvYmouY291bnQpO1xuICAgICAgICB0b2tlbnMucHVzaChvYmopO1xuICAgICAgICBzdGFydCA9IG1heDIgKyAxO1xuICAgICAgICBwcmV2ID0gb2JqO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRva2VucztcbiAgICB9XG4gICAgZnVuY3Rpb24gZmlsdGVyUGF0dGVybnMoYXJyLCBjb21wYXJpc29uLCBwcmVmaXgsIGludGVyc2VjdGlvbiwgb3B0aW9uczgpIHtcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAobGV0IGVsZSBvZiBhcnIpIHtcbiAgICAgICAgbGV0IHsgc3RyaW5nIH0gPSBlbGU7XG4gICAgICAgIGlmICghaW50ZXJzZWN0aW9uICYmICFjb250YWlucyhjb21wYXJpc29uLCBcInN0cmluZ1wiLCBzdHJpbmcpKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2gocHJlZml4ICsgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW50ZXJzZWN0aW9uICYmIGNvbnRhaW5zKGNvbXBhcmlzb24sIFwic3RyaW5nXCIsIHN0cmluZykpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChwcmVmaXggKyBzdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiB6aXAoYSwgYikge1xuICAgICAgbGV0IGFyciA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKVxuICAgICAgICBhcnIucHVzaChbYVtpXSwgYltpXV0pO1xuICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGFyZShhLCBiKSB7XG4gICAgICByZXR1cm4gYSA+IGIgPyAxIDogYiA+IGEgPyAtMSA6IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRhaW5zKGFyciwga2V5LCB2YWwpIHtcbiAgICAgIHJldHVybiBhcnIuc29tZSgoZWxlKSA9PiBlbGVba2V5XSA9PT0gdmFsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY291bnROaW5lcyhtaW4sIGxlbikge1xuICAgICAgcmV0dXJuIE51bWJlcihTdHJpbmcobWluKS5zbGljZSgwLCAtbGVuKSArIFwiOVwiLnJlcGVhdChsZW4pKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY291bnRaZXJvcyhpbnRlZ2VyLCB6ZXJvcykge1xuICAgICAgcmV0dXJuIGludGVnZXIgLSBpbnRlZ2VyICUgTWF0aC5wb3coMTAsIHplcm9zKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdG9RdWFudGlmaWVyKGRpZ2l0cykge1xuICAgICAgbGV0IFtzdGFydCA9IDAsIHN0b3AgPSBcIlwiXSA9IGRpZ2l0cztcbiAgICAgIGlmIChzdG9wIHx8IHN0YXJ0ID4gMSkge1xuICAgICAgICByZXR1cm4gYHske3N0YXJ0ICsgKHN0b3AgPyBcIixcIiArIHN0b3AgOiBcIlwiKX19YDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0b0NoYXJhY3RlckNsYXNzKGEsIGIsIG9wdGlvbnM4KSB7XG4gICAgICByZXR1cm4gYFske2F9JHtiIC0gYSA9PT0gMSA/IFwiXCIgOiBcIi1cIn0ke2J9XWA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhc1BhZGRpbmcoc3RyKSB7XG4gICAgICByZXR1cm4gL14tPygwKylcXGQvLnRlc3Qoc3RyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFkWmVyb3ModmFsdWUsIHRvaywgb3B0aW9uczgpIHtcbiAgICAgIGlmICghdG9rLmlzUGFkZGVkKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGxldCBkaWZmID0gTWF0aC5hYnModG9rLm1heExlbiAtIFN0cmluZyh2YWx1ZSkubGVuZ3RoKTtcbiAgICAgIGxldCByZWxheCA9IG9wdGlvbnM4LnJlbGF4WmVyb3MgIT09IGZhbHNlO1xuICAgICAgc3dpdGNoIChkaWZmKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiByZWxheCA/IFwiMD9cIiA6IFwiMFwiO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgcmV0dXJuIHJlbGF4ID8gXCIwezAsMn1cIiA6IFwiMDBcIjtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiByZWxheCA/IGAwezAsJHtkaWZmfX1gIDogYDB7JHtkaWZmfX1gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRvUmVnZXhSYW5nZS5jYWNoZSA9IHt9O1xuICAgIHRvUmVnZXhSYW5nZS5jbGVhckNhY2hlID0gKCkgPT4gdG9SZWdleFJhbmdlLmNhY2hlID0ge307XG4gICAgbW9kdWxlLmV4cG9ydHMgPSB0b1JlZ2V4UmFuZ2U7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmlsbC1yYW5nZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfZmlsbF9yYW5nZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9maWxsLXJhbmdlL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHV0aWwgPSBfX3JlcXVpcmUoXCJ1dGlsXCIpO1xuICAgIHZhciB0b1JlZ2V4UmFuZ2UgPSByZXF1aXJlX3RvX3JlZ2V4X3JhbmdlKCk7XG4gICAgdmFyIGlzT2JqZWN0MiA9ICh2YWwpID0+IHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbCk7XG4gICAgdmFyIHRyYW5zZm9ybTIgPSAodG9OdW1iZXIpID0+IHtcbiAgICAgIHJldHVybiAodmFsdWUpID0+IHRvTnVtYmVyID09PSB0cnVlID8gTnVtYmVyKHZhbHVlKSA6IFN0cmluZyh2YWx1ZSk7XG4gICAgfTtcbiAgICB2YXIgaXNWYWxpZFZhbHVlID0gKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZSAhPT0gXCJcIjtcbiAgICB9O1xuICAgIHZhciBpc051bWJlciA9IChudW0pID0+IE51bWJlci5pc0ludGVnZXIoK251bSk7XG4gICAgdmFyIHplcm9zID0gKGlucHV0KSA9PiB7XG4gICAgICBsZXQgdmFsdWUgPSBgJHtpbnB1dH1gO1xuICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICBpZiAodmFsdWVbMF0gPT09IFwiLVwiKVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpO1xuICAgICAgaWYgKHZhbHVlID09PSBcIjBcIilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgd2hpbGUgKHZhbHVlWysraW5kZXhdID09PSBcIjBcIilcbiAgICAgICAgO1xuICAgICAgcmV0dXJuIGluZGV4ID4gMDtcbiAgICB9O1xuICAgIHZhciBzdHJpbmdpZnkgPSAoc3RhcnQsIGVuZCwgb3B0aW9uczgpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygc3RhcnQgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGVuZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zOC5zdHJpbmdpZnkgPT09IHRydWU7XG4gICAgfTtcbiAgICB2YXIgcGFkID0gKGlucHV0LCBtYXhMZW5ndGgsIHRvTnVtYmVyKSA9PiB7XG4gICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xuICAgICAgICBsZXQgZGFzaCA9IGlucHV0WzBdID09PSBcIi1cIiA/IFwiLVwiIDogXCJcIjtcbiAgICAgICAgaWYgKGRhc2gpXG4gICAgICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZSgxKTtcbiAgICAgICAgaW5wdXQgPSBkYXNoICsgaW5wdXQucGFkU3RhcnQoZGFzaCA/IG1heExlbmd0aCAtIDEgOiBtYXhMZW5ndGgsIFwiMFwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0b051bWJlciA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhpbnB1dCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfTtcbiAgICB2YXIgdG9NYXhMZW4gPSAoaW5wdXQsIG1heExlbmd0aCkgPT4ge1xuICAgICAgbGV0IG5lZ2F0aXZlID0gaW5wdXRbMF0gPT09IFwiLVwiID8gXCItXCIgOiBcIlwiO1xuICAgICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMSk7XG4gICAgICAgIG1heExlbmd0aC0tO1xuICAgICAgfVxuICAgICAgd2hpbGUgKGlucHV0Lmxlbmd0aCA8IG1heExlbmd0aClcbiAgICAgICAgaW5wdXQgPSBcIjBcIiArIGlucHV0O1xuICAgICAgcmV0dXJuIG5lZ2F0aXZlID8gXCItXCIgKyBpbnB1dCA6IGlucHV0O1xuICAgIH07XG4gICAgdmFyIHRvU2VxdWVuY2UgPSAocGFydHMsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBwYXJ0cy5uZWdhdGl2ZXMuc29ydCgoYSwgYikgPT4gYSA8IGIgPyAtMSA6IGEgPiBiID8gMSA6IDApO1xuICAgICAgcGFydHMucG9zaXRpdmVzLnNvcnQoKGEsIGIpID0+IGEgPCBiID8gLTEgOiBhID4gYiA/IDEgOiAwKTtcbiAgICAgIGxldCBwcmVmaXggPSBvcHRpb25zOC5jYXB0dXJlID8gXCJcIiA6IFwiPzpcIjtcbiAgICAgIGxldCBwb3NpdGl2ZXMgPSBcIlwiO1xuICAgICAgbGV0IG5lZ2F0aXZlcyA9IFwiXCI7XG4gICAgICBsZXQgcmVzdWx0O1xuICAgICAgaWYgKHBhcnRzLnBvc2l0aXZlcy5sZW5ndGgpIHtcbiAgICAgICAgcG9zaXRpdmVzID0gcGFydHMucG9zaXRpdmVzLmpvaW4oXCJ8XCIpO1xuICAgICAgfVxuICAgICAgaWYgKHBhcnRzLm5lZ2F0aXZlcy5sZW5ndGgpIHtcbiAgICAgICAgbmVnYXRpdmVzID0gYC0oJHtwcmVmaXh9JHtwYXJ0cy5uZWdhdGl2ZXMuam9pbihcInxcIil9KWA7XG4gICAgICB9XG4gICAgICBpZiAocG9zaXRpdmVzICYmIG5lZ2F0aXZlcykge1xuICAgICAgICByZXN1bHQgPSBgJHtwb3NpdGl2ZXN9fCR7bmVnYXRpdmVzfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBwb3NpdGl2ZXMgfHwgbmVnYXRpdmVzO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LndyYXApIHtcbiAgICAgICAgcmV0dXJuIGAoJHtwcmVmaXh9JHtyZXN1bHR9KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdmFyIHRvUmFuZ2UgPSAoYSwgYiwgaXNOdW1iZXJzLCBvcHRpb25zOCkgPT4ge1xuICAgICAgaWYgKGlzTnVtYmVycykge1xuICAgICAgICByZXR1cm4gdG9SZWdleFJhbmdlKGEsIGIsIHsgd3JhcDogZmFsc2UsIC4uLm9wdGlvbnM4IH0pO1xuICAgICAgfVxuICAgICAgbGV0IHN0YXJ0ID0gU3RyaW5nLmZyb21DaGFyQ29kZShhKTtcbiAgICAgIGlmIChhID09PSBiKVxuICAgICAgICByZXR1cm4gc3RhcnQ7XG4gICAgICBsZXQgc3RvcCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYik7XG4gICAgICByZXR1cm4gYFske3N0YXJ0fS0ke3N0b3B9XWA7XG4gICAgfTtcbiAgICB2YXIgdG9SZWdleCA9IChzdGFydCwgZW5kLCBvcHRpb25zOCkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3RhcnQpKSB7XG4gICAgICAgIGxldCB3cmFwID0gb3B0aW9uczgud3JhcCA9PT0gdHJ1ZTtcbiAgICAgICAgbGV0IHByZWZpeCA9IG9wdGlvbnM4LmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiO1xuICAgICAgICByZXR1cm4gd3JhcCA/IGAoJHtwcmVmaXh9JHtzdGFydC5qb2luKFwifFwiKX0pYCA6IHN0YXJ0LmpvaW4oXCJ8XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRvUmVnZXhSYW5nZShzdGFydCwgZW5kLCBvcHRpb25zOCk7XG4gICAgfTtcbiAgICB2YXIgcmFuZ2VFcnJvciA9ICguLi5hcmdzKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIHJhbmdlIGFyZ3VtZW50czogXCIgKyB1dGlsLmluc3BlY3QoLi4uYXJncykpO1xuICAgIH07XG4gICAgdmFyIGludmFsaWRSYW5nZSA9IChzdGFydCwgZW5kLCBvcHRpb25zOCkgPT4ge1xuICAgICAgaWYgKG9wdGlvbnM4LnN0cmljdFJhbmdlcyA9PT0gdHJ1ZSlcbiAgICAgICAgdGhyb3cgcmFuZ2VFcnJvcihbc3RhcnQsIGVuZF0pO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH07XG4gICAgdmFyIGludmFsaWRTdGVwID0gKHN0ZXAsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uczguc3RyaWN0UmFuZ2VzID09PSB0cnVlKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHN0ZXAgXCIke3N0ZXB9XCIgdG8gYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuICAgIHZhciBmaWxsTnVtYmVycyA9IChzdGFydCwgZW5kLCBzdGVwID0gMSwgb3B0aW9uczggPSB7fSkgPT4ge1xuICAgICAgbGV0IGEgPSBOdW1iZXIoc3RhcnQpO1xuICAgICAgbGV0IGIgPSBOdW1iZXIoZW5kKTtcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihhKSB8fCAhTnVtYmVyLmlzSW50ZWdlcihiKSkge1xuICAgICAgICBpZiAob3B0aW9uczguc3RyaWN0UmFuZ2VzID09PSB0cnVlKVxuICAgICAgICAgIHRocm93IHJhbmdlRXJyb3IoW3N0YXJ0LCBlbmRdKTtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGEgPT09IDApXG4gICAgICAgIGEgPSAwO1xuICAgICAgaWYgKGIgPT09IDApXG4gICAgICAgIGIgPSAwO1xuICAgICAgbGV0IGRlc2NlbmRpbmcgPSBhID4gYjtcbiAgICAgIGxldCBzdGFydFN0cmluZyA9IFN0cmluZyhzdGFydCk7XG4gICAgICBsZXQgZW5kU3RyaW5nID0gU3RyaW5nKGVuZCk7XG4gICAgICBsZXQgc3RlcFN0cmluZyA9IFN0cmluZyhzdGVwKTtcbiAgICAgIHN0ZXAgPSBNYXRoLm1heChNYXRoLmFicyhzdGVwKSwgMSk7XG4gICAgICBsZXQgcGFkZGVkID0gemVyb3Moc3RhcnRTdHJpbmcpIHx8IHplcm9zKGVuZFN0cmluZykgfHwgemVyb3Moc3RlcFN0cmluZyk7XG4gICAgICBsZXQgbWF4TGVuID0gcGFkZGVkID8gTWF0aC5tYXgoc3RhcnRTdHJpbmcubGVuZ3RoLCBlbmRTdHJpbmcubGVuZ3RoLCBzdGVwU3RyaW5nLmxlbmd0aCkgOiAwO1xuICAgICAgbGV0IHRvTnVtYmVyID0gcGFkZGVkID09PSBmYWxzZSAmJiBzdHJpbmdpZnkoc3RhcnQsIGVuZCwgb3B0aW9uczgpID09PSBmYWxzZTtcbiAgICAgIGxldCBmb3JtYXQzID0gb3B0aW9uczgudHJhbnNmb3JtIHx8IHRyYW5zZm9ybTIodG9OdW1iZXIpO1xuICAgICAgaWYgKG9wdGlvbnM4LnRvUmVnZXggJiYgc3RlcCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gdG9SYW5nZSh0b01heExlbihzdGFydCwgbWF4TGVuKSwgdG9NYXhMZW4oZW5kLCBtYXhMZW4pLCB0cnVlLCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgICBsZXQgcGFydHMgPSB7IG5lZ2F0aXZlczogW10sIHBvc2l0aXZlczogW10gfTtcbiAgICAgIGxldCBwdXNoID0gKG51bSkgPT4gcGFydHNbbnVtIDwgMCA/IFwibmVnYXRpdmVzXCIgOiBcInBvc2l0aXZlc1wiXS5wdXNoKE1hdGguYWJzKG51bSkpO1xuICAgICAgbGV0IHJhbmdlID0gW107XG4gICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgd2hpbGUgKGRlc2NlbmRpbmcgPyBhID49IGIgOiBhIDw9IGIpIHtcbiAgICAgICAgaWYgKG9wdGlvbnM4LnRvUmVnZXggPT09IHRydWUgJiYgc3RlcCA+IDEpIHtcbiAgICAgICAgICBwdXNoKGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJhbmdlLnB1c2gocGFkKGZvcm1hdDMoYSwgaW5kZXgpLCBtYXhMZW4sIHRvTnVtYmVyKSk7XG4gICAgICAgIH1cbiAgICAgICAgYSA9IGRlc2NlbmRpbmcgPyBhIC0gc3RlcCA6IGEgKyBzdGVwO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LnRvUmVnZXggPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHN0ZXAgPiAxID8gdG9TZXF1ZW5jZShwYXJ0cywgb3B0aW9uczgpIDogdG9SZWdleChyYW5nZSwgbnVsbCwgeyB3cmFwOiBmYWxzZSwgLi4ub3B0aW9uczggfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmFuZ2U7XG4gICAgfTtcbiAgICB2YXIgZmlsbExldHRlcnMgPSAoc3RhcnQsIGVuZCwgc3RlcCA9IDEsIG9wdGlvbnM4ID0ge30pID0+IHtcbiAgICAgIGlmICghaXNOdW1iZXIoc3RhcnQpICYmIHN0YXJ0Lmxlbmd0aCA+IDEgfHwgIWlzTnVtYmVyKGVuZCkgJiYgZW5kLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIGludmFsaWRSYW5nZShzdGFydCwgZW5kLCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgICBsZXQgZm9ybWF0MyA9IG9wdGlvbnM4LnRyYW5zZm9ybSB8fCAoKHZhbCkgPT4gU3RyaW5nLmZyb21DaGFyQ29kZSh2YWwpKTtcbiAgICAgIGxldCBhID0gYCR7c3RhcnR9YC5jaGFyQ29kZUF0KDApO1xuICAgICAgbGV0IGIgPSBgJHtlbmR9YC5jaGFyQ29kZUF0KDApO1xuICAgICAgbGV0IGRlc2NlbmRpbmcgPSBhID4gYjtcbiAgICAgIGxldCBtaW4gPSBNYXRoLm1pbihhLCBiKTtcbiAgICAgIGxldCBtYXggPSBNYXRoLm1heChhLCBiKTtcbiAgICAgIGlmIChvcHRpb25zOC50b1JlZ2V4ICYmIHN0ZXAgPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHRvUmFuZ2UobWluLCBtYXgsIGZhbHNlLCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgICBsZXQgcmFuZ2UgPSBbXTtcbiAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICB3aGlsZSAoZGVzY2VuZGluZyA/IGEgPj0gYiA6IGEgPD0gYikge1xuICAgICAgICByYW5nZS5wdXNoKGZvcm1hdDMoYSwgaW5kZXgpKTtcbiAgICAgICAgYSA9IGRlc2NlbmRpbmcgPyBhIC0gc3RlcCA6IGEgKyBzdGVwO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LnRvUmVnZXggPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRvUmVnZXgocmFuZ2UsIG51bGwsIHsgd3JhcDogZmFsc2UsIG9wdGlvbnM6IG9wdGlvbnM4IH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJhbmdlO1xuICAgIH07XG4gICAgdmFyIGZpbGwyID0gKHN0YXJ0LCBlbmQsIHN0ZXAsIG9wdGlvbnM4ID0ge30pID0+IHtcbiAgICAgIGlmIChlbmQgPT0gbnVsbCAmJiBpc1ZhbGlkVmFsdWUoc3RhcnQpKSB7XG4gICAgICAgIHJldHVybiBbc3RhcnRdO1xuICAgICAgfVxuICAgICAgaWYgKCFpc1ZhbGlkVmFsdWUoc3RhcnQpIHx8ICFpc1ZhbGlkVmFsdWUoZW5kKSkge1xuICAgICAgICByZXR1cm4gaW52YWxpZFJhbmdlKHN0YXJ0LCBlbmQsIG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygc3RlcCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBmaWxsMihzdGFydCwgZW5kLCAxLCB7IHRyYW5zZm9ybTogc3RlcCB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChpc09iamVjdDIoc3RlcCkpIHtcbiAgICAgICAgcmV0dXJuIGZpbGwyKHN0YXJ0LCBlbmQsIDAsIHN0ZXApO1xuICAgICAgfVxuICAgICAgbGV0IG9wdHMgPSB7IC4uLm9wdGlvbnM4IH07XG4gICAgICBpZiAob3B0cy5jYXB0dXJlID09PSB0cnVlKVxuICAgICAgICBvcHRzLndyYXAgPSB0cnVlO1xuICAgICAgc3RlcCA9IHN0ZXAgfHwgb3B0cy5zdGVwIHx8IDE7XG4gICAgICBpZiAoIWlzTnVtYmVyKHN0ZXApKSB7XG4gICAgICAgIGlmIChzdGVwICE9IG51bGwgJiYgIWlzT2JqZWN0MihzdGVwKSlcbiAgICAgICAgICByZXR1cm4gaW52YWxpZFN0ZXAoc3RlcCwgb3B0cyk7XG4gICAgICAgIHJldHVybiBmaWxsMihzdGFydCwgZW5kLCAxLCBzdGVwKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc051bWJlcihzdGFydCkgJiYgaXNOdW1iZXIoZW5kKSkge1xuICAgICAgICByZXR1cm4gZmlsbE51bWJlcnMoc3RhcnQsIGVuZCwgc3RlcCwgb3B0cyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsbExldHRlcnMoc3RhcnQsIGVuZCwgTWF0aC5tYXgoTWF0aC5hYnMoc3RlcCksIDEpLCBvcHRzKTtcbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gZmlsbDI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9jb21waWxlLmpzXG52YXIgcmVxdWlyZV9jb21waWxlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2JyYWNlcy9saWIvY29tcGlsZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBmaWxsMiA9IHJlcXVpcmVfZmlsbF9yYW5nZSgpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMoKTtcbiAgICB2YXIgY29tcGlsZSA9IChhc3QsIG9wdGlvbnM4ID0ge30pID0+IHtcbiAgICAgIGxldCB3YWxrID0gKG5vZGUsIHBhcmVudCA9IHt9KSA9PiB7XG4gICAgICAgIGxldCBpbnZhbGlkQmxvY2sgPSB1dGlscy5pc0ludmFsaWRCcmFjZShwYXJlbnQpO1xuICAgICAgICBsZXQgaW52YWxpZE5vZGUgPSBub2RlLmludmFsaWQgPT09IHRydWUgJiYgb3B0aW9uczguZXNjYXBlSW52YWxpZCA9PT0gdHJ1ZTtcbiAgICAgICAgbGV0IGludmFsaWQgPSBpbnZhbGlkQmxvY2sgPT09IHRydWUgfHwgaW52YWxpZE5vZGUgPT09IHRydWU7XG4gICAgICAgIGxldCBwcmVmaXggPSBvcHRpb25zOC5lc2NhcGVJbnZhbGlkID09PSB0cnVlID8gXCJcXFxcXCIgOiBcIlwiO1xuICAgICAgICBsZXQgb3V0cHV0ID0gXCJcIjtcbiAgICAgICAgaWYgKG5vZGUuaXNPcGVuID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHByZWZpeCArIG5vZGUudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuaXNDbG9zZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBwcmVmaXggKyBub2RlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLnR5cGUgPT09IFwib3BlblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGludmFsaWQgPyBwcmVmaXggKyBub2RlLnZhbHVlIDogXCIoXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gXCJjbG9zZVwiKSB7XG4gICAgICAgICAgcmV0dXJuIGludmFsaWQgPyBwcmVmaXggKyBub2RlLnZhbHVlIDogXCIpXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gXCJjb21tYVwiKSB7XG4gICAgICAgICAgcmV0dXJuIG5vZGUucHJldi50eXBlID09PSBcImNvbW1hXCIgPyBcIlwiIDogaW52YWxpZCA/IG5vZGUudmFsdWUgOiBcInxcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS52YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLm5vZGVzICYmIG5vZGUucmFuZ2VzID4gMCkge1xuICAgICAgICAgIGxldCBhcmdzID0gdXRpbHMucmVkdWNlKG5vZGUubm9kZXMpO1xuICAgICAgICAgIGxldCByYW5nZSA9IGZpbGwyKC4uLmFyZ3MsIHsgLi4ub3B0aW9uczgsIHdyYXA6IGZhbHNlLCB0b1JlZ2V4OiB0cnVlIH0pO1xuICAgICAgICAgIGlmIChyYW5nZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA+IDEgJiYgcmFuZ2UubGVuZ3RoID4gMSA/IGAoJHtyYW5nZX0pYCA6IHJhbmdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5ub2Rlcykge1xuICAgICAgICAgIGZvciAobGV0IGNoaWxkIG9mIG5vZGUubm9kZXMpIHtcbiAgICAgICAgICAgIG91dHB1dCArPSB3YWxrKGNoaWxkLCBub2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgIH07XG4gICAgICByZXR1cm4gd2Fsayhhc3QpO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBjb21waWxlO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2JyYWNlcy9saWIvZXhwYW5kLmpzXG52YXIgcmVxdWlyZV9leHBhbmQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9leHBhbmQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZmlsbDIgPSByZXF1aXJlX2ZpbGxfcmFuZ2UoKTtcbiAgICB2YXIgc3RyaW5naWZ5ID0gcmVxdWlyZV9zdHJpbmdpZnkoKTtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzKCk7XG4gICAgdmFyIGFwcGVuZCA9IChxdWV1ZSA9IFwiXCIsIHN0YXNoID0gXCJcIiwgZW5jbG9zZSA9IGZhbHNlKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICBxdWV1ZSA9IFtdLmNvbmNhdChxdWV1ZSk7XG4gICAgICBzdGFzaCA9IFtdLmNvbmNhdChzdGFzaCk7XG4gICAgICBpZiAoIXN0YXNoLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIHF1ZXVlO1xuICAgICAgaWYgKCFxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGVuY2xvc2UgPyB1dGlscy5mbGF0dGVuKHN0YXNoKS5tYXAoKGVsZSkgPT4gYHske2VsZX19YCkgOiBzdGFzaDtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgcXVldWUpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBpdGVtKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChhcHBlbmQodmFsdWUsIHN0YXNoLCBlbmNsb3NlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvciAobGV0IGVsZSBvZiBzdGFzaCkge1xuICAgICAgICAgICAgaWYgKGVuY2xvc2UgPT09IHRydWUgJiYgdHlwZW9mIGVsZSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgICAgZWxlID0gYHske2VsZX19YDtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKEFycmF5LmlzQXJyYXkoZWxlKSA/IGFwcGVuZChpdGVtLCBlbGUsIGVuY2xvc2UpIDogaXRlbSArIGVsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdXRpbHMuZmxhdHRlbihyZXN1bHQpO1xuICAgIH07XG4gICAgdmFyIGV4cGFuZCA9IChhc3QsIG9wdGlvbnM4ID0ge30pID0+IHtcbiAgICAgIGxldCByYW5nZUxpbWl0ID0gb3B0aW9uczgucmFuZ2VMaW1pdCA9PT0gdm9pZCAwID8gMWUzIDogb3B0aW9uczgucmFuZ2VMaW1pdDtcbiAgICAgIGxldCB3YWxrID0gKG5vZGUsIHBhcmVudCA9IHt9KSA9PiB7XG4gICAgICAgIG5vZGUucXVldWUgPSBbXTtcbiAgICAgICAgbGV0IHAgPSBwYXJlbnQ7XG4gICAgICAgIGxldCBxID0gcGFyZW50LnF1ZXVlO1xuICAgICAgICB3aGlsZSAocC50eXBlICE9PSBcImJyYWNlXCIgJiYgcC50eXBlICE9PSBcInJvb3RcIiAmJiBwLnBhcmVudCkge1xuICAgICAgICAgIHAgPSBwLnBhcmVudDtcbiAgICAgICAgICBxID0gcC5xdWV1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZS5pbnZhbGlkIHx8IG5vZGUuZG9sbGFyKSB7XG4gICAgICAgICAgcS5wdXNoKGFwcGVuZChxLnBvcCgpLCBzdHJpbmdpZnkobm9kZSwgb3B0aW9uczgpKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLnR5cGUgPT09IFwiYnJhY2VcIiAmJiBub2RlLmludmFsaWQgIT09IHRydWUgJiYgbm9kZS5ub2Rlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBxLnB1c2goYXBwZW5kKHEucG9wKCksIFtcInt9XCJdKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLm5vZGVzICYmIG5vZGUucmFuZ2VzID4gMCkge1xuICAgICAgICAgIGxldCBhcmdzID0gdXRpbHMucmVkdWNlKG5vZGUubm9kZXMpO1xuICAgICAgICAgIGlmICh1dGlscy5leGNlZWRzTGltaXQoLi4uYXJncywgb3B0aW9uczguc3RlcCwgcmFuZ2VMaW1pdCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKFwiZXhwYW5kZWQgYXJyYXkgbGVuZ3RoIGV4Y2VlZHMgcmFuZ2UgbGltaXQuIFVzZSBvcHRpb25zLnJhbmdlTGltaXQgdG8gaW5jcmVhc2Ugb3IgZGlzYWJsZSB0aGUgbGltaXQuXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgcmFuZ2UgPSBmaWxsMiguLi5hcmdzLCBvcHRpb25zOCk7XG4gICAgICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmFuZ2UgPSBzdHJpbmdpZnkobm9kZSwgb3B0aW9uczgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxLnB1c2goYXBwZW5kKHEucG9wKCksIHJhbmdlKSk7XG4gICAgICAgICAgbm9kZS5ub2RlcyA9IFtdO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZW5jbG9zZSA9IHV0aWxzLmVuY2xvc2VCcmFjZShub2RlKTtcbiAgICAgICAgbGV0IHF1ZXVlID0gbm9kZS5xdWV1ZTtcbiAgICAgICAgbGV0IGJsb2NrID0gbm9kZTtcbiAgICAgICAgd2hpbGUgKGJsb2NrLnR5cGUgIT09IFwiYnJhY2VcIiAmJiBibG9jay50eXBlICE9PSBcInJvb3RcIiAmJiBibG9jay5wYXJlbnQpIHtcbiAgICAgICAgICBibG9jayA9IGJsb2NrLnBhcmVudDtcbiAgICAgICAgICBxdWV1ZSA9IGJsb2NrLnF1ZXVlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5ub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBjaGlsZCA9IG5vZGUubm9kZXNbaV07XG4gICAgICAgICAgaWYgKGNoaWxkLnR5cGUgPT09IFwiY29tbWFcIiAmJiBub2RlLnR5cGUgPT09IFwiYnJhY2VcIikge1xuICAgICAgICAgICAgaWYgKGkgPT09IDEpXG4gICAgICAgICAgICAgIHF1ZXVlLnB1c2goXCJcIik7XG4gICAgICAgICAgICBxdWV1ZS5wdXNoKFwiXCIpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjaGlsZC50eXBlID09PSBcImNsb3NlXCIpIHtcbiAgICAgICAgICAgIHEucHVzaChhcHBlbmQocS5wb3AoKSwgcXVldWUsIGVuY2xvc2UpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hpbGQudmFsdWUgJiYgY2hpbGQudHlwZSAhPT0gXCJvcGVuXCIpIHtcbiAgICAgICAgICAgIHF1ZXVlLnB1c2goYXBwZW5kKHF1ZXVlLnBvcCgpLCBjaGlsZC52YWx1ZSkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjaGlsZC5ub2Rlcykge1xuICAgICAgICAgICAgd2FsayhjaGlsZCwgbm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxdWV1ZTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gdXRpbHMuZmxhdHRlbih3YWxrKGFzdCkpO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBleHBhbmQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYnJhY2VzL2xpYi9jb25zdGFudHMuanNcbnZhciByZXF1aXJlX2NvbnN0YW50cyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9icmFjZXMvbGliL2NvbnN0YW50cy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LFxuICAgICAgLy8gRGlnaXRzXG4gICAgICBDSEFSXzA6IFwiMFwiLFxuICAgICAgLyogMCAqL1xuICAgICAgQ0hBUl85OiBcIjlcIixcbiAgICAgIC8qIDkgKi9cbiAgICAgIC8vIEFscGhhYmV0IGNoYXJzLlxuICAgICAgQ0hBUl9VUFBFUkNBU0VfQTogXCJBXCIsXG4gICAgICAvKiBBICovXG4gICAgICBDSEFSX0xPV0VSQ0FTRV9BOiBcImFcIixcbiAgICAgIC8qIGEgKi9cbiAgICAgIENIQVJfVVBQRVJDQVNFX1o6IFwiWlwiLFxuICAgICAgLyogWiAqL1xuICAgICAgQ0hBUl9MT1dFUkNBU0VfWjogXCJ6XCIsXG4gICAgICAvKiB6ICovXG4gICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVM6IFwiKFwiLFxuICAgICAgLyogKCAqL1xuICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogXCIpXCIsXG4gICAgICAvKiApICovXG4gICAgICBDSEFSX0FTVEVSSVNLOiBcIipcIixcbiAgICAgIC8qICogKi9cbiAgICAgIC8vIE5vbi1hbHBoYWJldGljIGNoYXJzLlxuICAgICAgQ0hBUl9BTVBFUlNBTkQ6IFwiJlwiLFxuICAgICAgLyogJiAqL1xuICAgICAgQ0hBUl9BVDogXCJAXCIsXG4gICAgICAvKiBAICovXG4gICAgICBDSEFSX0JBQ0tTTEFTSDogXCJcXFxcXCIsXG4gICAgICAvKiBcXCAqL1xuICAgICAgQ0hBUl9CQUNLVElDSzogXCJgXCIsXG4gICAgICAvKiBgICovXG4gICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogXCJcXHJcIixcbiAgICAgIC8qIFxcciAqL1xuICAgICAgQ0hBUl9DSVJDVU1GTEVYX0FDQ0VOVDogXCJeXCIsXG4gICAgICAvKiBeICovXG4gICAgICBDSEFSX0NPTE9OOiBcIjpcIixcbiAgICAgIC8qIDogKi9cbiAgICAgIENIQVJfQ09NTUE6IFwiLFwiLFxuICAgICAgLyogLCAqL1xuICAgICAgQ0hBUl9ET0xMQVI6IFwiJFwiLFxuICAgICAgLyogLiAqL1xuICAgICAgQ0hBUl9ET1Q6IFwiLlwiLFxuICAgICAgLyogLiAqL1xuICAgICAgQ0hBUl9ET1VCTEVfUVVPVEU6ICdcIicsXG4gICAgICAvKiBcIiAqL1xuICAgICAgQ0hBUl9FUVVBTDogXCI9XCIsXG4gICAgICAvKiA9ICovXG4gICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUks6IFwiIVwiLFxuICAgICAgLyogISAqL1xuICAgICAgQ0hBUl9GT1JNX0ZFRUQ6IFwiXFxmXCIsXG4gICAgICAvKiBcXGYgKi9cbiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogXCIvXCIsXG4gICAgICAvKiAvICovXG4gICAgICBDSEFSX0hBU0g6IFwiI1wiLFxuICAgICAgLyogIyAqL1xuICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IFwiLVwiLFxuICAgICAgLyogLSAqL1xuICAgICAgQ0hBUl9MRUZUX0FOR0xFX0JSQUNLRVQ6IFwiPFwiLFxuICAgICAgLyogPCAqL1xuICAgICAgQ0hBUl9MRUZUX0NVUkxZX0JSQUNFOiBcIntcIixcbiAgICAgIC8qIHsgKi9cbiAgICAgIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDogXCJbXCIsXG4gICAgICAvKiBbICovXG4gICAgICBDSEFSX0xJTkVfRkVFRDogXCJcXG5cIixcbiAgICAgIC8qIFxcbiAqL1xuICAgICAgQ0hBUl9OT19CUkVBS19TUEFDRTogXCJcXHhBMFwiLFxuICAgICAgLyogXFx1MDBBMCAqL1xuICAgICAgQ0hBUl9QRVJDRU5UOiBcIiVcIixcbiAgICAgIC8qICUgKi9cbiAgICAgIENIQVJfUExVUzogXCIrXCIsXG4gICAgICAvKiArICovXG4gICAgICBDSEFSX1FVRVNUSU9OX01BUks6IFwiP1wiLFxuICAgICAgLyogPyAqL1xuICAgICAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiBcIj5cIixcbiAgICAgIC8qID4gKi9cbiAgICAgIENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6IFwifVwiLFxuICAgICAgLyogfSAqL1xuICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogXCJdXCIsXG4gICAgICAvKiBdICovXG4gICAgICBDSEFSX1NFTUlDT0xPTjogXCI7XCIsXG4gICAgICAvKiA7ICovXG4gICAgICBDSEFSX1NJTkdMRV9RVU9URTogXCInXCIsXG4gICAgICAvKiAnICovXG4gICAgICBDSEFSX1NQQUNFOiBcIiBcIixcbiAgICAgIC8qICAgKi9cbiAgICAgIENIQVJfVEFCOiBcIlx0XCIsXG4gICAgICAvKiBcXHQgKi9cbiAgICAgIENIQVJfVU5ERVJTQ09SRTogXCJfXCIsXG4gICAgICAvKiBfICovXG4gICAgICBDSEFSX1ZFUlRJQ0FMX0xJTkU6IFwifFwiLFxuICAgICAgLyogfCAqL1xuICAgICAgQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0U6IFwiXFx1RkVGRlwiXG4gICAgICAvKiBcXHVGRUZGICovXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9icmFjZXMvbGliL3BhcnNlLmpzXG52YXIgcmVxdWlyZV9wYXJzZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9icmFjZXMvbGliL3BhcnNlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHN0cmluZ2lmeSA9IHJlcXVpcmVfc3RyaW5naWZ5KCk7XG4gICAgdmFyIHtcbiAgICAgIE1BWF9MRU5HVEgsXG4gICAgICBDSEFSX0JBQ0tTTEFTSCxcbiAgICAgIC8qIFxcICovXG4gICAgICBDSEFSX0JBQ0tUSUNLLFxuICAgICAgLyogYCAqL1xuICAgICAgQ0hBUl9DT01NQSxcbiAgICAgIC8qICwgKi9cbiAgICAgIENIQVJfRE9ULFxuICAgICAgLyogLiAqL1xuICAgICAgQ0hBUl9MRUZUX1BBUkVOVEhFU0VTLFxuICAgICAgLyogKCAqL1xuICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUyxcbiAgICAgIC8qICkgKi9cbiAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDRSxcbiAgICAgIC8qIHsgKi9cbiAgICAgIENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UsXG4gICAgICAvKiB9ICovXG4gICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQsXG4gICAgICAvKiBbICovXG4gICAgICBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VULFxuICAgICAgLyogXSAqL1xuICAgICAgQ0hBUl9ET1VCTEVfUVVPVEUsXG4gICAgICAvKiBcIiAqL1xuICAgICAgQ0hBUl9TSU5HTEVfUVVPVEUsXG4gICAgICAvKiAnICovXG4gICAgICBDSEFSX05PX0JSRUFLX1NQQUNFLFxuICAgICAgQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0VcbiAgICB9ID0gcmVxdWlyZV9jb25zdGFudHMoKTtcbiAgICB2YXIgcGFyc2UzID0gKGlucHV0LCBvcHRpb25zOCA9IHt9KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIGxldCBvcHRzID0gb3B0aW9uczggfHwge307XG4gICAgICBsZXQgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSBcIm51bWJlclwiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDtcbiAgICAgIGlmIChpbnB1dC5sZW5ndGggPiBtYXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBJbnB1dCBsZW5ndGggKCR7aW5wdXQubGVuZ3RofSksIGV4Y2VlZHMgbWF4IGNoYXJhY3RlcnMgKCR7bWF4fSlgKTtcbiAgICAgIH1cbiAgICAgIGxldCBhc3QgPSB7IHR5cGU6IFwicm9vdFwiLCBpbnB1dCwgbm9kZXM6IFtdIH07XG4gICAgICBsZXQgc3RhY2sgPSBbYXN0XTtcbiAgICAgIGxldCBibG9jayA9IGFzdDtcbiAgICAgIGxldCBwcmV2ID0gYXN0O1xuICAgICAgbGV0IGJyYWNrZXRzID0gMDtcbiAgICAgIGxldCBsZW5ndGggPSBpbnB1dC5sZW5ndGg7XG4gICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgbGV0IGRlcHRoID0gMDtcbiAgICAgIGxldCB2YWx1ZTtcbiAgICAgIGxldCBtZW1vID0ge307XG4gICAgICBjb25zdCBhZHZhbmNlID0gKCkgPT4gaW5wdXRbaW5kZXgrK107XG4gICAgICBjb25zdCBwdXNoID0gKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gXCJ0ZXh0XCIgJiYgcHJldi50eXBlID09PSBcImRvdFwiKSB7XG4gICAgICAgICAgcHJldi50eXBlID0gXCJ0ZXh0XCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSBcInRleHRcIiAmJiBub2RlLnR5cGUgPT09IFwidGV4dFwiKSB7XG4gICAgICAgICAgcHJldi52YWx1ZSArPSBub2RlLnZhbHVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBibG9jay5ub2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICBub2RlLnBhcmVudCA9IGJsb2NrO1xuICAgICAgICBub2RlLnByZXYgPSBwcmV2O1xuICAgICAgICBwcmV2ID0gbm9kZTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9O1xuICAgICAgcHVzaCh7IHR5cGU6IFwiYm9zXCIgfSk7XG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgYmxvY2sgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgdmFsdWUgPSBhZHZhbmNlKCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0UgfHwgdmFsdWUgPT09IENIQVJfTk9fQlJFQUtfU1BBQ0UpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IENIQVJfQkFDS1NMQVNIKSB7XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwidGV4dFwiLCB2YWx1ZTogKG9wdGlvbnM4LmtlZXBFc2NhcGluZyA/IHZhbHVlIDogXCJcIikgKyBhZHZhbmNlKCkgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwidGV4dFwiLCB2YWx1ZTogXCJcXFxcXCIgKyB2YWx1ZSB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgIGJyYWNrZXRzKys7XG4gICAgICAgICAgbGV0IGNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgbGV0IG5leHQ7XG4gICAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoICYmIChuZXh0ID0gYWR2YW5jZSgpKSkge1xuICAgICAgICAgICAgdmFsdWUgKz0gbmV4dDtcbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQpIHtcbiAgICAgICAgICAgICAgYnJhY2tldHMrKztcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gQ0hBUl9CQUNLU0xBU0gpIHtcbiAgICAgICAgICAgICAgdmFsdWUgKz0gYWR2YW5jZSgpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUKSB7XG4gICAgICAgICAgICAgIGJyYWNrZXRzLS07XG4gICAgICAgICAgICAgIGlmIChicmFja2V0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHtcbiAgICAgICAgICBibG9jayA9IHB1c2goeyB0eXBlOiBcInBhcmVuXCIsIG5vZGVzOiBbXSB9KTtcbiAgICAgICAgICBzdGFjay5wdXNoKGJsb2NrKTtcbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykge1xuICAgICAgICAgIGlmIChibG9jay50eXBlICE9PSBcInBhcmVuXCIpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYmxvY2sgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlIH0pO1xuICAgICAgICAgIGJsb2NrID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBDSEFSX0RPVUJMRV9RVU9URSB8fCB2YWx1ZSA9PT0gQ0hBUl9TSU5HTEVfUVVPVEUgfHwgdmFsdWUgPT09IENIQVJfQkFDS1RJQ0spIHtcbiAgICAgICAgICBsZXQgb3BlbiA9IHZhbHVlO1xuICAgICAgICAgIGxldCBuZXh0O1xuICAgICAgICAgIGlmIChvcHRpb25zOC5rZWVwUXVvdGVzICE9PSB0cnVlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCAmJiAobmV4dCA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tTTEFTSCkge1xuICAgICAgICAgICAgICB2YWx1ZSArPSBuZXh0ICsgYWR2YW5jZSgpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBvcGVuKSB7XG4gICAgICAgICAgICAgIGlmIChvcHRpb25zOC5rZWVwUXVvdGVzID09PSB0cnVlKVxuICAgICAgICAgICAgICAgIHZhbHVlICs9IG5leHQ7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUgKz0gbmV4dDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwidGV4dFwiLCB2YWx1ZSB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkge1xuICAgICAgICAgIGRlcHRoKys7XG4gICAgICAgICAgbGV0IGRvbGxhciA9IHByZXYudmFsdWUgJiYgcHJldi52YWx1ZS5zbGljZSgtMSkgPT09IFwiJFwiIHx8IGJsb2NrLmRvbGxhciA9PT0gdHJ1ZTtcbiAgICAgICAgICBsZXQgYnJhY2UgPSB7XG4gICAgICAgICAgICB0eXBlOiBcImJyYWNlXCIsXG4gICAgICAgICAgICBvcGVuOiB0cnVlLFxuICAgICAgICAgICAgY2xvc2U6IGZhbHNlLFxuICAgICAgICAgICAgZG9sbGFyLFxuICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICBjb21tYXM6IDAsXG4gICAgICAgICAgICByYW5nZXM6IDAsXG4gICAgICAgICAgICBub2RlczogW11cbiAgICAgICAgICB9O1xuICAgICAgICAgIGJsb2NrID0gcHVzaChicmFjZSk7XG4gICAgICAgICAgc3RhY2sucHVzaChibG9jayk7XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwib3BlblwiLCB2YWx1ZSB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHtcbiAgICAgICAgICBpZiAoYmxvY2sudHlwZSAhPT0gXCJicmFjZVwiKSB7XG4gICAgICAgICAgICBwdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxldCB0eXBlID0gXCJjbG9zZVwiO1xuICAgICAgICAgIGJsb2NrID0gc3RhY2sucG9wKCk7XG4gICAgICAgICAgYmxvY2suY2xvc2UgPSB0cnVlO1xuICAgICAgICAgIHB1c2goeyB0eXBlLCB2YWx1ZSB9KTtcbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICAgIGJsb2NrID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBDSEFSX0NPTU1BICYmIGRlcHRoID4gMCkge1xuICAgICAgICAgIGlmIChibG9jay5yYW5nZXMgPiAwKSB7XG4gICAgICAgICAgICBibG9jay5yYW5nZXMgPSAwO1xuICAgICAgICAgICAgbGV0IG9wZW4gPSBibG9jay5ub2Rlcy5zaGlmdCgpO1xuICAgICAgICAgICAgYmxvY2subm9kZXMgPSBbb3BlbiwgeyB0eXBlOiBcInRleHRcIiwgdmFsdWU6IHN0cmluZ2lmeShibG9jaykgfV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcImNvbW1hXCIsIHZhbHVlIH0pO1xuICAgICAgICAgIGJsb2NrLmNvbW1hcysrO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gQ0hBUl9ET1QgJiYgZGVwdGggPiAwICYmIGJsb2NrLmNvbW1hcyA9PT0gMCkge1xuICAgICAgICAgIGxldCBzaWJsaW5ncyA9IGJsb2NrLm5vZGVzO1xuICAgICAgICAgIGlmIChkZXB0aCA9PT0gMCB8fCBzaWJsaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gXCJkb3RcIikge1xuICAgICAgICAgICAgYmxvY2sucmFuZ2UgPSBbXTtcbiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgICAgICBwcmV2LnR5cGUgPSBcInJhbmdlXCI7XG4gICAgICAgICAgICBpZiAoYmxvY2subm9kZXMubGVuZ3RoICE9PSAzICYmIGJsb2NrLm5vZGVzLmxlbmd0aCAhPT0gNSkge1xuICAgICAgICAgICAgICBibG9jay5pbnZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYmxvY2sucmFuZ2VzID0gMDtcbiAgICAgICAgICAgICAgcHJldi50eXBlID0gXCJ0ZXh0XCI7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmxvY2sucmFuZ2VzKys7XG4gICAgICAgICAgICBibG9jay5hcmdzID0gW107XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gXCJyYW5nZVwiKSB7XG4gICAgICAgICAgICBzaWJsaW5ncy5wb3AoKTtcbiAgICAgICAgICAgIGxldCBiZWZvcmUgPSBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGJlZm9yZS52YWx1ZSArPSBwcmV2LnZhbHVlICsgdmFsdWU7XG4gICAgICAgICAgICBwcmV2ID0gYmVmb3JlO1xuICAgICAgICAgICAgYmxvY2sucmFuZ2VzLS07XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwiZG90XCIsIHZhbHVlIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgICBkbyB7XG4gICAgICAgIGJsb2NrID0gc3RhY2sucG9wKCk7XG4gICAgICAgIGlmIChibG9jay50eXBlICE9PSBcInJvb3RcIikge1xuICAgICAgICAgIGJsb2NrLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmICghbm9kZS5ub2Rlcykge1xuICAgICAgICAgICAgICBpZiAobm9kZS50eXBlID09PSBcIm9wZW5cIilcbiAgICAgICAgICAgICAgICBub2RlLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgPT09IFwiY2xvc2VcIilcbiAgICAgICAgICAgICAgICBub2RlLmlzQ2xvc2UgPSB0cnVlO1xuICAgICAgICAgICAgICBpZiAoIW5vZGUubm9kZXMpXG4gICAgICAgICAgICAgICAgbm9kZS50eXBlID0gXCJ0ZXh0XCI7XG4gICAgICAgICAgICAgIG5vZGUuaW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGV0IHBhcmVudCA9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGxldCBpbmRleDIgPSBwYXJlbnQubm9kZXMuaW5kZXhPZihibG9jayk7XG4gICAgICAgICAgcGFyZW50Lm5vZGVzLnNwbGljZShpbmRleDIsIDEsIC4uLmJsb2NrLm5vZGVzKTtcbiAgICAgICAgfVxuICAgICAgfSB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCk7XG4gICAgICBwdXNoKHsgdHlwZTogXCJlb3NcIiB9KTtcbiAgICAgIHJldHVybiBhc3Q7XG4gICAgfTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHBhcnNlMztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9icmFjZXMvaW5kZXguanNcbnZhciByZXF1aXJlX2JyYWNlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9icmFjZXMvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgc3RyaW5naWZ5ID0gcmVxdWlyZV9zdHJpbmdpZnkoKTtcbiAgICB2YXIgY29tcGlsZSA9IHJlcXVpcmVfY29tcGlsZSgpO1xuICAgIHZhciBleHBhbmQgPSByZXF1aXJlX2V4cGFuZCgpO1xuICAgIHZhciBwYXJzZTMgPSByZXF1aXJlX3BhcnNlKCk7XG4gICAgdmFyIGJyYWNlcyA9IChpbnB1dCwgb3B0aW9uczggPSB7fSkgPT4ge1xuICAgICAgbGV0IG91dHB1dCA9IFtdO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAgIGZvciAobGV0IHBhdHRlcm4gb2YgaW5wdXQpIHtcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gYnJhY2VzLmNyZWF0ZShwYXR0ZXJuLCBvcHRpb25zOCk7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2goLi4ucmVzdWx0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dHB1dCA9IFtdLmNvbmNhdChicmFjZXMuY3JlYXRlKGlucHV0LCBvcHRpb25zOCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4ICYmIG9wdGlvbnM4LmV4cGFuZCA9PT0gdHJ1ZSAmJiBvcHRpb25zOC5ub2R1cGVzID09PSB0cnVlKSB7XG4gICAgICAgIG91dHB1dCA9IFsuLi5uZXcgU2V0KG91dHB1dCldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuICAgIGJyYWNlcy5wYXJzZSA9IChpbnB1dCwgb3B0aW9uczggPSB7fSkgPT4gcGFyc2UzKGlucHV0LCBvcHRpb25zOCk7XG4gICAgYnJhY2VzLnN0cmluZ2lmeSA9IChpbnB1dCwgb3B0aW9uczggPSB7fSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gc3RyaW5naWZ5KGJyYWNlcy5wYXJzZShpbnB1dCwgb3B0aW9uczgpLCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyaW5naWZ5KGlucHV0LCBvcHRpb25zOCk7XG4gICAgfTtcbiAgICBicmFjZXMuY29tcGlsZSA9IChpbnB1dCwgb3B0aW9uczggPSB7fSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpbnB1dCA9IGJyYWNlcy5wYXJzZShpbnB1dCwgb3B0aW9uczgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbXBpbGUoaW5wdXQsIG9wdGlvbnM4KTtcbiAgICB9O1xuICAgIGJyYWNlcy5leHBhbmQgPSAoaW5wdXQsIG9wdGlvbnM4ID0ge30pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaW5wdXQgPSBicmFjZXMucGFyc2UoaW5wdXQsIG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICAgIGxldCByZXN1bHQgPSBleHBhbmQoaW5wdXQsIG9wdGlvbnM4KTtcbiAgICAgIGlmIChvcHRpb25zOC5ub2VtcHR5ID09PSB0cnVlKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uczgubm9kdXBlcyA9PT0gdHJ1ZSkge1xuICAgICAgICByZXN1bHQgPSBbLi4ubmV3IFNldChyZXN1bHQpXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBicmFjZXMuY3JlYXRlID0gKGlucHV0LCBvcHRpb25zOCA9IHt9KSA9PiB7XG4gICAgICBpZiAoaW5wdXQgPT09IFwiXCIgfHwgaW5wdXQubGVuZ3RoIDwgMykge1xuICAgICAgICByZXR1cm4gW2lucHV0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zOC5leHBhbmQgIT09IHRydWUgPyBicmFjZXMuY29tcGlsZShpbnB1dCwgb3B0aW9uczgpIDogYnJhY2VzLmV4cGFuZChpbnB1dCwgb3B0aW9uczgpO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBicmFjZXM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanNcbnZhciByZXF1aXJlX2NvbnN0YW50czIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcGF0aDkgPSBfX3JlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBXSU5fU0xBU0ggPSBcIlxcXFxcXFxcL1wiO1xuICAgIHZhciBXSU5fTk9fU0xBU0ggPSBgW14ke1dJTl9TTEFTSH1dYDtcbiAgICB2YXIgRE9UX0xJVEVSQUwgPSBcIlxcXFwuXCI7XG4gICAgdmFyIFBMVVNfTElURVJBTCA9IFwiXFxcXCtcIjtcbiAgICB2YXIgUU1BUktfTElURVJBTCA9IFwiXFxcXD9cIjtcbiAgICB2YXIgU0xBU0hfTElURVJBTCA9IFwiXFxcXC9cIjtcbiAgICB2YXIgT05FX0NIQVIgPSBcIig/PS4pXCI7XG4gICAgdmFyIFFNQVJLID0gXCJbXi9dXCI7XG4gICAgdmFyIEVORF9BTkNIT1IgPSBgKD86JHtTTEFTSF9MSVRFUkFMfXwkKWA7XG4gICAgdmFyIFNUQVJUX0FOQ0hPUiA9IGAoPzpefCR7U0xBU0hfTElURVJBTH0pYDtcbiAgICB2YXIgRE9UU19TTEFTSCA9IGAke0RPVF9MSVRFUkFMfXsxLDJ9JHtFTkRfQU5DSE9SfWA7XG4gICAgdmFyIE5PX0RPVCA9IGAoPyEke0RPVF9MSVRFUkFMfSlgO1xuICAgIHZhciBOT19ET1RTID0gYCg/ISR7U1RBUlRfQU5DSE9SfSR7RE9UU19TTEFTSH0pYDtcbiAgICB2YXIgTk9fRE9UX1NMQVNIID0gYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0ke0VORF9BTkNIT1J9KWA7XG4gICAgdmFyIE5PX0RPVFNfU0xBU0ggPSBgKD8hJHtET1RTX1NMQVNIfSlgO1xuICAgIHZhciBRTUFSS19OT19ET1QgPSBgW14uJHtTTEFTSF9MSVRFUkFMfV1gO1xuICAgIHZhciBTVEFSID0gYCR7UU1BUkt9Kj9gO1xuICAgIHZhciBQT1NJWF9DSEFSUyA9IHtcbiAgICAgIERPVF9MSVRFUkFMLFxuICAgICAgUExVU19MSVRFUkFMLFxuICAgICAgUU1BUktfTElURVJBTCxcbiAgICAgIFNMQVNIX0xJVEVSQUwsXG4gICAgICBPTkVfQ0hBUixcbiAgICAgIFFNQVJLLFxuICAgICAgRU5EX0FOQ0hPUixcbiAgICAgIERPVFNfU0xBU0gsXG4gICAgICBOT19ET1QsXG4gICAgICBOT19ET1RTLFxuICAgICAgTk9fRE9UX1NMQVNILFxuICAgICAgTk9fRE9UU19TTEFTSCxcbiAgICAgIFFNQVJLX05PX0RPVCxcbiAgICAgIFNUQVIsXG4gICAgICBTVEFSVF9BTkNIT1JcbiAgICB9O1xuICAgIHZhciBXSU5ET1dTX0NIQVJTID0ge1xuICAgICAgLi4uUE9TSVhfQ0hBUlMsXG4gICAgICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLFxuICAgICAgUU1BUks6IFdJTl9OT19TTEFTSCxcbiAgICAgIFNUQVI6IGAke1dJTl9OT19TTEFTSH0qP2AsXG4gICAgICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCxcbiAgICAgIE5PX0RPVDogYCg/ISR7RE9UX0xJVEVSQUx9KWAsXG4gICAgICBOT19ET1RTOiBgKD8hKD86XnxbJHtXSU5fU0xBU0h9XSkke0RPVF9MSVRFUkFMfXsxLDJ9KD86WyR7V0lOX1NMQVNIfV18JCkpYCxcbiAgICAgIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLFxuICAgICAgTk9fRE9UU19TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezEsMn0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLFxuICAgICAgUU1BUktfTk9fRE9UOiBgW14uJHtXSU5fU0xBU0h9XWAsXG4gICAgICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsXG4gICAgICBFTkRfQU5DSE9SOiBgKD86WyR7V0lOX1NMQVNIfV18JClgXG4gICAgfTtcbiAgICB2YXIgUE9TSVhfUkVHRVhfU09VUkNFID0ge1xuICAgICAgYWxudW06IFwiYS16QS1aMC05XCIsXG4gICAgICBhbHBoYTogXCJhLXpBLVpcIixcbiAgICAgIGFzY2lpOiBcIlxcXFx4MDAtXFxcXHg3RlwiLFxuICAgICAgYmxhbms6IFwiIFxcXFx0XCIsXG4gICAgICBjbnRybDogXCJcXFxceDAwLVxcXFx4MUZcXFxceDdGXCIsXG4gICAgICBkaWdpdDogXCIwLTlcIixcbiAgICAgIGdyYXBoOiBcIlxcXFx4MjEtXFxcXHg3RVwiLFxuICAgICAgbG93ZXI6IFwiYS16XCIsXG4gICAgICBwcmludDogXCJcXFxceDIwLVxcXFx4N0UgXCIsXG4gICAgICBwdW5jdDogXCJcXFxcLSFcXFwiIyQlJicoKVxcXFwqKywuLzo7PD0+P0BbXFxcXF1eX2B7fH1+XCIsXG4gICAgICBzcGFjZTogXCIgXFxcXHRcXFxcclxcXFxuXFxcXHZcXFxcZlwiLFxuICAgICAgdXBwZXI6IFwiQS1aXCIsXG4gICAgICB3b3JkOiBcIkEtWmEtejAtOV9cIixcbiAgICAgIHhkaWdpdDogXCJBLUZhLWYwLTlcIlxuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgICBNQVhfTEVOR1RIOiAxMDI0ICogNjQsXG4gICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsXG4gICAgICAvLyByZWd1bGFyIGV4cHJlc3Npb25zXG4gICAgICBSRUdFWF9CQUNLU0xBU0g6IC9cXFxcKD8hWyorP14ke30ofClbXFxdXSkvZyxcbiAgICAgIFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTOiAvXlteQCFbXFxdLiwkKis/Xnt9KCl8XFxcXC9dKy8sXG4gICAgICBSRUdFWF9TUEVDSUFMX0NIQVJTOiAvWy0qKz8uXiR7fSh8KVtcXF1dLyxcbiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjogLyhcXFxcPykoKFxcVykoXFwzKikpL2csXG4gICAgICBSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTDogLyhbLSorPy5eJHt9KHwpW1xcXV0pL2csXG4gICAgICBSRUdFWF9SRU1PVkVfQkFDS1NMQVNIOiAvKD86XFxbLio/W15cXFxcXVxcXXxcXFxcKD89LikpL2csXG4gICAgICAvLyBSZXBsYWNlIGdsb2JzIHdpdGggZXF1aXZhbGVudCBwYXR0ZXJucyB0byByZWR1Y2UgcGFyc2luZyB0aW1lLlxuICAgICAgUkVQTEFDRU1FTlRTOiB7XG4gICAgICAgIFwiKioqXCI6IFwiKlwiLFxuICAgICAgICBcIioqLyoqXCI6IFwiKipcIixcbiAgICAgICAgXCIqKi8qKi8qKlwiOiBcIioqXCJcbiAgICAgIH0sXG4gICAgICAvLyBEaWdpdHNcbiAgICAgIENIQVJfMDogNDgsXG4gICAgICAvKiAwICovXG4gICAgICBDSEFSXzk6IDU3LFxuICAgICAgLyogOSAqL1xuICAgICAgLy8gQWxwaGFiZXQgY2hhcnMuXG4gICAgICBDSEFSX1VQUEVSQ0FTRV9BOiA2NSxcbiAgICAgIC8qIEEgKi9cbiAgICAgIENIQVJfTE9XRVJDQVNFX0E6IDk3LFxuICAgICAgLyogYSAqL1xuICAgICAgQ0hBUl9VUFBFUkNBU0VfWjogOTAsXG4gICAgICAvKiBaICovXG4gICAgICBDSEFSX0xPV0VSQ0FTRV9aOiAxMjIsXG4gICAgICAvKiB6ICovXG4gICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVM6IDQwLFxuICAgICAgLyogKCAqL1xuICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsXG4gICAgICAvKiApICovXG4gICAgICBDSEFSX0FTVEVSSVNLOiA0MixcbiAgICAgIC8qICogKi9cbiAgICAgIC8vIE5vbi1hbHBoYWJldGljIGNoYXJzLlxuICAgICAgQ0hBUl9BTVBFUlNBTkQ6IDM4LFxuICAgICAgLyogJiAqL1xuICAgICAgQ0hBUl9BVDogNjQsXG4gICAgICAvKiBAICovXG4gICAgICBDSEFSX0JBQ0tXQVJEX1NMQVNIOiA5MixcbiAgICAgIC8qIFxcICovXG4gICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogMTMsXG4gICAgICAvKiBcXHIgKi9cbiAgICAgIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LFxuICAgICAgLyogXiAqL1xuICAgICAgQ0hBUl9DT0xPTjogNTgsXG4gICAgICAvKiA6ICovXG4gICAgICBDSEFSX0NPTU1BOiA0NCxcbiAgICAgIC8qICwgKi9cbiAgICAgIENIQVJfRE9UOiA0NixcbiAgICAgIC8qIC4gKi9cbiAgICAgIENIQVJfRE9VQkxFX1FVT1RFOiAzNCxcbiAgICAgIC8qIFwiICovXG4gICAgICBDSEFSX0VRVUFMOiA2MSxcbiAgICAgIC8qID0gKi9cbiAgICAgIENIQVJfRVhDTEFNQVRJT05fTUFSSzogMzMsXG4gICAgICAvKiAhICovXG4gICAgICBDSEFSX0ZPUk1fRkVFRDogMTIsXG4gICAgICAvKiBcXGYgKi9cbiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogNDcsXG4gICAgICAvKiAvICovXG4gICAgICBDSEFSX0dSQVZFX0FDQ0VOVDogOTYsXG4gICAgICAvKiBgICovXG4gICAgICBDSEFSX0hBU0g6IDM1LFxuICAgICAgLyogIyAqL1xuICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IDQ1LFxuICAgICAgLyogLSAqL1xuICAgICAgQ0hBUl9MRUZUX0FOR0xFX0JSQUNLRVQ6IDYwLFxuICAgICAgLyogPCAqL1xuICAgICAgQ0hBUl9MRUZUX0NVUkxZX0JSQUNFOiAxMjMsXG4gICAgICAvKiB7ICovXG4gICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6IDkxLFxuICAgICAgLyogWyAqL1xuICAgICAgQ0hBUl9MSU5FX0ZFRUQ6IDEwLFxuICAgICAgLyogXFxuICovXG4gICAgICBDSEFSX05PX0JSRUFLX1NQQUNFOiAxNjAsXG4gICAgICAvKiBcXHUwMEEwICovXG4gICAgICBDSEFSX1BFUkNFTlQ6IDM3LFxuICAgICAgLyogJSAqL1xuICAgICAgQ0hBUl9QTFVTOiA0MyxcbiAgICAgIC8qICsgKi9cbiAgICAgIENIQVJfUVVFU1RJT05fTUFSSzogNjMsXG4gICAgICAvKiA/ICovXG4gICAgICBDSEFSX1JJR0hUX0FOR0xFX0JSQUNLRVQ6IDYyLFxuICAgICAgLyogPiAqL1xuICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTogMTI1LFxuICAgICAgLyogfSAqL1xuICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogOTMsXG4gICAgICAvKiBdICovXG4gICAgICBDSEFSX1NFTUlDT0xPTjogNTksXG4gICAgICAvKiA7ICovXG4gICAgICBDSEFSX1NJTkdMRV9RVU9URTogMzksXG4gICAgICAvKiAnICovXG4gICAgICBDSEFSX1NQQUNFOiAzMixcbiAgICAgIC8qICAgKi9cbiAgICAgIENIQVJfVEFCOiA5LFxuICAgICAgLyogXFx0ICovXG4gICAgICBDSEFSX1VOREVSU0NPUkU6IDk1LFxuICAgICAgLyogXyAqL1xuICAgICAgQ0hBUl9WRVJUSUNBTF9MSU5FOiAxMjQsXG4gICAgICAvKiB8ICovXG4gICAgICBDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTogNjUyNzksXG4gICAgICAvKiBcXHVGRUZGICovXG4gICAgICBTRVA6IHBhdGg5LnNlcCxcbiAgICAgIC8qKlxuICAgICAgICogQ3JlYXRlIEVYVEdMT0JfQ0hBUlNcbiAgICAgICAqL1xuICAgICAgZXh0Z2xvYkNoYXJzKGNoYXJzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgXCIhXCI6IHsgdHlwZTogXCJuZWdhdGVcIiwgb3BlbjogXCIoPzooPyEoPzpcIiwgY2xvc2U6IGApKSR7Y2hhcnMuU1RBUn0pYCB9LFxuICAgICAgICAgIFwiP1wiOiB7IHR5cGU6IFwicW1hcmtcIiwgb3BlbjogXCIoPzpcIiwgY2xvc2U6IFwiKT9cIiB9LFxuICAgICAgICAgIFwiK1wiOiB7IHR5cGU6IFwicGx1c1wiLCBvcGVuOiBcIig/OlwiLCBjbG9zZTogXCIpK1wiIH0sXG4gICAgICAgICAgXCIqXCI6IHsgdHlwZTogXCJzdGFyXCIsIG9wZW46IFwiKD86XCIsIGNsb3NlOiBcIikqXCIgfSxcbiAgICAgICAgICBcIkBcIjogeyB0eXBlOiBcImF0XCIsIG9wZW46IFwiKD86XCIsIGNsb3NlOiBcIilcIiB9XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBDcmVhdGUgR0xPQl9DSEFSU1xuICAgICAgICovXG4gICAgICBnbG9iQ2hhcnMod2luMzIpIHtcbiAgICAgICAgcmV0dXJuIHdpbjMyID09PSB0cnVlID8gV0lORE9XU19DSEFSUyA6IFBPU0lYX0NIQVJTO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qc1xudmFyIHJlcXVpcmVfdXRpbHMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvdXRpbHMuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHBhdGg5ID0gX19yZXF1aXJlKFwicGF0aFwiKTtcbiAgICB2YXIgd2luMzIgPSBwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCI7XG4gICAgdmFyIHtcbiAgICAgIFJFR0VYX0JBQ0tTTEFTSCxcbiAgICAgIFJFR0VYX1JFTU9WRV9CQUNLU0xBU0gsXG4gICAgICBSRUdFWF9TUEVDSUFMX0NIQVJTLFxuICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUxcbiAgICB9ID0gcmVxdWlyZV9jb25zdGFudHMyKCk7XG4gICAgZXhwb3J0cy5pc09iamVjdCA9ICh2YWwpID0+IHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbCk7XG4gICAgZXhwb3J0cy5oYXNSZWdleENoYXJzID0gKHN0cikgPT4gUkVHRVhfU1BFQ0lBTF9DSEFSUy50ZXN0KHN0cik7XG4gICAgZXhwb3J0cy5pc1JlZ2V4Q2hhciA9IChzdHIpID0+IHN0ci5sZW5ndGggPT09IDEgJiYgZXhwb3J0cy5oYXNSZWdleENoYXJzKHN0cik7XG4gICAgZXhwb3J0cy5lc2NhcGVSZWdleCA9IChzdHIpID0+IHN0ci5yZXBsYWNlKFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMLCBcIlxcXFwkMVwiKTtcbiAgICBleHBvcnRzLnRvUG9zaXhTbGFzaGVzID0gKHN0cikgPT4gc3RyLnJlcGxhY2UoUkVHRVhfQkFDS1NMQVNILCBcIi9cIik7XG4gICAgZXhwb3J0cy5yZW1vdmVCYWNrc2xhc2hlcyA9IChzdHIpID0+IHtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShSRUdFWF9SRU1PVkVfQkFDS1NMQVNILCAobWF0Y2gpID0+IHtcbiAgICAgICAgcmV0dXJuIG1hdGNoID09PSBcIlxcXFxcIiA/IFwiXCIgOiBtYXRjaDtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgZXhwb3J0cy5zdXBwb3J0c0xvb2tiZWhpbmRzID0gKCkgPT4ge1xuICAgICAgY29uc3Qgc2VncyA9IHByb2Nlc3MudmVyc2lvbi5zbGljZSgxKS5zcGxpdChcIi5cIikubWFwKE51bWJlcik7XG4gICAgICBpZiAoc2Vncy5sZW5ndGggPT09IDMgJiYgc2Vnc1swXSA+PSA5IHx8IHNlZ3NbMF0gPT09IDggJiYgc2Vnc1sxXSA+PSAxMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNXaW5kb3dzID0gKG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAob3B0aW9uczggJiYgdHlwZW9mIG9wdGlvbnM4LndpbmRvd3MgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zOC53aW5kb3dzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdpbjMyID09PSB0cnVlIHx8IHBhdGg5LnNlcCA9PT0gXCJcXFxcXCI7XG4gICAgfTtcbiAgICBleHBvcnRzLmVzY2FwZUxhc3QgPSAoaW5wdXQsIGNoYXIsIGxhc3RJZHgpID0+IHtcbiAgICAgIGNvbnN0IGlkeCA9IGlucHV0Lmxhc3RJbmRleE9mKGNoYXIsIGxhc3RJZHgpO1xuICAgICAgaWYgKGlkeCA9PT0gLTEpXG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgIGlmIChpbnB1dFtpZHggLSAxXSA9PT0gXCJcXFxcXCIpXG4gICAgICAgIHJldHVybiBleHBvcnRzLmVzY2FwZUxhc3QoaW5wdXQsIGNoYXIsIGlkeCAtIDEpO1xuICAgICAgcmV0dXJuIGAke2lucHV0LnNsaWNlKDAsIGlkeCl9XFxcXCR7aW5wdXQuc2xpY2UoaWR4KX1gO1xuICAgIH07XG4gICAgZXhwb3J0cy5yZW1vdmVQcmVmaXggPSAoaW5wdXQsIHN0YXRlID0ge30pID0+IHtcbiAgICAgIGxldCBvdXRwdXQgPSBpbnB1dDtcbiAgICAgIGlmIChvdXRwdXQuc3RhcnRzV2l0aChcIi4vXCIpKSB7XG4gICAgICAgIG91dHB1dCA9IG91dHB1dC5zbGljZSgyKTtcbiAgICAgICAgc3RhdGUucHJlZml4ID0gXCIuL1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xuICAgIGV4cG9ydHMud3JhcE91dHB1dCA9IChpbnB1dCwgc3RhdGUgPSB7fSwgb3B0aW9uczggPSB7fSkgPT4ge1xuICAgICAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnM4LmNvbnRhaW5zID8gXCJcIiA6IFwiXlwiO1xuICAgICAgY29uc3QgYXBwZW5kID0gb3B0aW9uczguY29udGFpbnMgPyBcIlwiIDogXCIkXCI7XG4gICAgICBsZXQgb3V0cHV0ID0gYCR7cHJlcGVuZH0oPzoke2lucHV0fSkke2FwcGVuZH1gO1xuICAgICAgaWYgKHN0YXRlLm5lZ2F0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgb3V0cHV0ID0gYCg/Ol4oPyEke291dHB1dH0pLiokKWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9zY2FuLmpzXG52YXIgcmVxdWlyZV9zY2FuID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvc2Nhbi5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMyKCk7XG4gICAgdmFyIHtcbiAgICAgIENIQVJfQVNURVJJU0ssXG4gICAgICAvKiAqICovXG4gICAgICBDSEFSX0FULFxuICAgICAgLyogQCAqL1xuICAgICAgQ0hBUl9CQUNLV0FSRF9TTEFTSCxcbiAgICAgIC8qIFxcICovXG4gICAgICBDSEFSX0NPTU1BLFxuICAgICAgLyogLCAqL1xuICAgICAgQ0hBUl9ET1QsXG4gICAgICAvKiAuICovXG4gICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUkssXG4gICAgICAvKiAhICovXG4gICAgICBDSEFSX0ZPUldBUkRfU0xBU0gsXG4gICAgICAvKiAvICovXG4gICAgICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UsXG4gICAgICAvKiB7ICovXG4gICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsXG4gICAgICAvKiAoICovXG4gICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQsXG4gICAgICAvKiBbICovXG4gICAgICBDSEFSX1BMVVMsXG4gICAgICAvKiArICovXG4gICAgICBDSEFSX1FVRVNUSU9OX01BUkssXG4gICAgICAvKiA/ICovXG4gICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFLFxuICAgICAgLyogfSAqL1xuICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUyxcbiAgICAgIC8qICkgKi9cbiAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVRcbiAgICAgIC8qIF0gKi9cbiAgICB9ID0gcmVxdWlyZV9jb25zdGFudHMyKCk7XG4gICAgdmFyIGlzUGF0aFNlcGFyYXRvciA9IChjb2RlKSA9PiB7XG4gICAgICByZXR1cm4gY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIIHx8IGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0g7XG4gICAgfTtcbiAgICB2YXIgZGVwdGggPSAodG9rZW4pID0+IHtcbiAgICAgIGlmICh0b2tlbi5pc1ByZWZpeCAhPT0gdHJ1ZSkge1xuICAgICAgICB0b2tlbi5kZXB0aCA9IHRva2VuLmlzR2xvYnN0YXIgPyBJbmZpbml0eSA6IDE7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgc2NhbiA9IChpbnB1dCwgb3B0aW9uczgpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zOCB8fCB7fTtcbiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7XG4gICAgICBjb25zdCBzY2FuVG9FbmQgPSBvcHRzLnBhcnRzID09PSB0cnVlIHx8IG9wdHMuc2NhblRvRW5kID09PSB0cnVlO1xuICAgICAgY29uc3Qgc2xhc2hlcyA9IFtdO1xuICAgICAgY29uc3QgdG9rZW5zID0gW107XG4gICAgICBjb25zdCBwYXJ0cyA9IFtdO1xuICAgICAgbGV0IHN0ciA9IGlucHV0O1xuICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICBsZXQgaXNCcmFjZSA9IGZhbHNlO1xuICAgICAgbGV0IGlzQnJhY2tldCA9IGZhbHNlO1xuICAgICAgbGV0IGlzR2xvYiA9IGZhbHNlO1xuICAgICAgbGV0IGlzRXh0Z2xvYiA9IGZhbHNlO1xuICAgICAgbGV0IGlzR2xvYnN0YXIgPSBmYWxzZTtcbiAgICAgIGxldCBicmFjZUVzY2FwZWQgPSBmYWxzZTtcbiAgICAgIGxldCBiYWNrc2xhc2hlcyA9IGZhbHNlO1xuICAgICAgbGV0IG5lZ2F0ZWQgPSBmYWxzZTtcbiAgICAgIGxldCBuZWdhdGVkRXh0Z2xvYiA9IGZhbHNlO1xuICAgICAgbGV0IGZpbmlzaGVkID0gZmFsc2U7XG4gICAgICBsZXQgYnJhY2VzID0gMDtcbiAgICAgIGxldCBwcmV2O1xuICAgICAgbGV0IGNvZGU7XG4gICAgICBsZXQgdG9rZW4gPSB7IHZhbHVlOiBcIlwiLCBkZXB0aDogMCwgaXNHbG9iOiBmYWxzZSB9O1xuICAgICAgY29uc3QgZW9zID0gKCkgPT4gaW5kZXggPj0gbGVuZ3RoO1xuICAgICAgY29uc3QgcGVlayA9ICgpID0+IHN0ci5jaGFyQ29kZUF0KGluZGV4ICsgMSk7XG4gICAgICBjb25zdCBhZHZhbmNlID0gKCkgPT4ge1xuICAgICAgICBwcmV2ID0gY29kZTtcbiAgICAgICAgcmV0dXJuIHN0ci5jaGFyQ29kZUF0KCsraW5kZXgpO1xuICAgICAgfTtcbiAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBjb2RlID0gYWR2YW5jZSgpO1xuICAgICAgICBsZXQgbmV4dDtcbiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHtcbiAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTtcbiAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpO1xuICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0UpIHtcbiAgICAgICAgICAgIGJyYWNlRXNjYXBlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChicmFjZUVzY2FwZWQgPT09IHRydWUgfHwgY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7XG4gICAgICAgICAgYnJhY2VzKys7XG4gICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkge1xuICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHtcbiAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7XG4gICAgICAgICAgICAgIGFkdmFuY2UoKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7XG4gICAgICAgICAgICAgIGJyYWNlcysrO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChicmFjZUVzY2FwZWQgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9ET1QgJiYgKGNvZGUgPSBhZHZhbmNlKCkpID09PSBDSEFSX0RPVCkge1xuICAgICAgICAgICAgICBpc0JyYWNlID0gdG9rZW4uaXNCcmFjZSA9IHRydWU7XG4gICAgICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7XG4gICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0NPTU1BKSB7XG4gICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSkge1xuICAgICAgICAgICAgICBicmFjZXMtLTtcbiAgICAgICAgICAgICAgaWYgKGJyYWNlcyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyYWNlRXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2RlID09PSBDSEFSX0ZPUldBUkRfU0xBU0gpIHtcbiAgICAgICAgICBzbGFzaGVzLnB1c2goaW5kZXgpO1xuICAgICAgICAgIHRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICB0b2tlbiA9IHsgdmFsdWU6IFwiXCIsIGRlcHRoOiAwLCBpc0dsb2I6IGZhbHNlIH07XG4gICAgICAgICAgaWYgKGZpbmlzaGVkID09PSB0cnVlKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgaWYgKHByZXYgPT09IENIQVJfRE9UICYmIGluZGV4ID09PSBzdGFydCArIDEpIHtcbiAgICAgICAgICAgIHN0YXJ0ICs9IDI7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXggKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLm5vZXh0ICE9PSB0cnVlKSB7XG4gICAgICAgICAgY29uc3QgaXNFeHRnbG9iQ2hhciA9IGNvZGUgPT09IENIQVJfUExVUyB8fCBjb2RlID09PSBDSEFSX0FUIHx8IGNvZGUgPT09IENIQVJfQVNURVJJU0sgfHwgY29kZSA9PT0gQ0hBUl9RVUVTVElPTl9NQVJLIHx8IGNvZGUgPT09IENIQVJfRVhDTEFNQVRJT05fTUFSSztcbiAgICAgICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykge1xuICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICAgIGlzRXh0Z2xvYiA9IHRva2VuLmlzRXh0Z2xvYiA9IHRydWU7XG4gICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLICYmIGluZGV4ID09PSBzdGFydCkge1xuICAgICAgICAgICAgICBuZWdhdGVkRXh0Z2xvYiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkge1xuICAgICAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTKSB7XG4gICAgICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb2RlID09PSBDSEFSX0FTVEVSSVNLKSB7XG4gICAgICAgICAgaWYgKHByZXYgPT09IENIQVJfQVNURVJJU0spXG4gICAgICAgICAgICBpc0dsb2JzdGFyID0gdG9rZW4uaXNHbG9ic3RhciA9IHRydWU7XG4gICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUkspIHtcbiAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlO1xuICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCkge1xuICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAobmV4dCA9IGFkdmFuY2UoKSkpIHtcbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7XG4gICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlO1xuICAgICAgICAgICAgICBhZHZhbmNlKCk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5leHQgPT09IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQpIHtcbiAgICAgICAgICAgICAgaXNCcmFja2V0ID0gdG9rZW4uaXNCcmFja2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLm5vbmVnYXRlICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfRVhDTEFNQVRJT05fTUFSSyAmJiBpbmRleCA9PT0gc3RhcnQpIHtcbiAgICAgICAgICBuZWdhdGVkID0gdG9rZW4ubmVnYXRlZCA9IHRydWU7XG4gICAgICAgICAgc3RhcnQrKztcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0cy5ub3BhcmVuICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykge1xuICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7XG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkge1xuICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9MRUZUX1BBUkVOVEhFU0VTKSB7XG4gICAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykge1xuICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0dsb2IgPT09IHRydWUpIHtcbiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5ub2V4dCA9PT0gdHJ1ZSkge1xuICAgICAgICBpc0V4dGdsb2IgPSBmYWxzZTtcbiAgICAgICAgaXNHbG9iID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBsZXQgYmFzZSA9IHN0cjtcbiAgICAgIGxldCBwcmVmaXggPSBcIlwiO1xuICAgICAgbGV0IGdsb2IgPSBcIlwiO1xuICAgICAgaWYgKHN0YXJ0ID4gMCkge1xuICAgICAgICBwcmVmaXggPSBzdHIuc2xpY2UoMCwgc3RhcnQpO1xuICAgICAgICBzdHIgPSBzdHIuc2xpY2Uoc3RhcnQpO1xuICAgICAgICBsYXN0SW5kZXggLT0gc3RhcnQ7XG4gICAgICB9XG4gICAgICBpZiAoYmFzZSAmJiBpc0dsb2IgPT09IHRydWUgJiYgbGFzdEluZGV4ID4gMCkge1xuICAgICAgICBiYXNlID0gc3RyLnNsaWNlKDAsIGxhc3RJbmRleCk7XG4gICAgICAgIGdsb2IgPSBzdHIuc2xpY2UobGFzdEluZGV4KTtcbiAgICAgIH0gZWxzZSBpZiAoaXNHbG9iID09PSB0cnVlKSB7XG4gICAgICAgIGJhc2UgPSBcIlwiO1xuICAgICAgICBnbG9iID0gc3RyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFzZSA9IHN0cjtcbiAgICAgIH1cbiAgICAgIGlmIChiYXNlICYmIGJhc2UgIT09IFwiXCIgJiYgYmFzZSAhPT0gXCIvXCIgJiYgYmFzZSAhPT0gc3RyKSB7XG4gICAgICAgIGlmIChpc1BhdGhTZXBhcmF0b3IoYmFzZS5jaGFyQ29kZUF0KGJhc2UubGVuZ3RoIC0gMSkpKSB7XG4gICAgICAgICAgYmFzZSA9IGJhc2Uuc2xpY2UoMCwgLTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAoZ2xvYilcbiAgICAgICAgICBnbG9iID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoZ2xvYik7XG4gICAgICAgIGlmIChiYXNlICYmIGJhY2tzbGFzaGVzID09PSB0cnVlKSB7XG4gICAgICAgICAgYmFzZSA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGJhc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGJhc2UsXG4gICAgICAgIGdsb2IsXG4gICAgICAgIGlzQnJhY2UsXG4gICAgICAgIGlzQnJhY2tldCxcbiAgICAgICAgaXNHbG9iLFxuICAgICAgICBpc0V4dGdsb2IsXG4gICAgICAgIGlzR2xvYnN0YXIsXG4gICAgICAgIG5lZ2F0ZWQsXG4gICAgICAgIG5lZ2F0ZWRFeHRnbG9iXG4gICAgICB9O1xuICAgICAgaWYgKG9wdHMudG9rZW5zID09PSB0cnVlKSB7XG4gICAgICAgIHN0YXRlLm1heERlcHRoID0gMDtcbiAgICAgICAgaWYgKCFpc1BhdGhTZXBhcmF0b3IoY29kZSkpIHtcbiAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUudG9rZW5zID0gdG9rZW5zO1xuICAgICAgfVxuICAgICAgaWYgKG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy50b2tlbnMgPT09IHRydWUpIHtcbiAgICAgICAgbGV0IHByZXZJbmRleDtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgY29uc3QgbiA9IHByZXZJbmRleCA/IHByZXZJbmRleCArIDEgOiBzdGFydDtcbiAgICAgICAgICBjb25zdCBpID0gc2xhc2hlc1tpZHhdO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7XG4gICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoaWR4ID09PSAwICYmIHN0YXJ0ICE9PSAwKSB7XG4gICAgICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdG9rZW5zW2lkeF0udmFsdWUgPSBwcmVmaXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVwdGgodG9rZW5zW2lkeF0pO1xuICAgICAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpZHggIT09IDAgfHwgdmFsdWUgIT09IFwiXCIpIHtcbiAgICAgICAgICAgIHBhcnRzLnB1c2godmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcmV2SW5kZXggPSBpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2SW5kZXggJiYgcHJldkluZGV4ICsgMSA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UocHJldkluZGV4ICsgMSk7XG4gICAgICAgICAgcGFydHMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBkZXB0aCh0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgICAgIHN0YXRlLm1heERlcHRoICs9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0uZGVwdGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzO1xuICAgICAgICBzdGF0ZS5wYXJ0cyA9IHBhcnRzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBzY2FuO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGFyc2UuanNcbnZhciByZXF1aXJlX3BhcnNlMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BhcnNlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvbnN0YW50cyA9IHJlcXVpcmVfY29uc3RhbnRzMigpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMyKCk7XG4gICAgdmFyIHtcbiAgICAgIE1BWF9MRU5HVEgsXG4gICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsXG4gICAgICBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUyxcbiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRixcbiAgICAgIFJFUExBQ0VNRU5UU1xuICAgIH0gPSBjb25zdGFudHM7XG4gICAgdmFyIGV4cGFuZFJhbmdlID0gKGFyZ3MsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnM4LmV4cGFuZFJhbmdlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM4LmV4cGFuZFJhbmdlKC4uLmFyZ3MsIG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICAgIGFyZ3Muc29ydCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSBgWyR7YXJncy5qb2luKFwiLVwiKX1dYDtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBSZWdFeHAodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3MubWFwKCh2KSA9PiB1dGlscy5lc2NhcGVSZWdleCh2KSkuam9pbihcIi4uXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gICAgdmFyIHN5bnRheEVycm9yID0gKHR5cGUsIGNoYXIpID0+IHtcbiAgICAgIHJldHVybiBgTWlzc2luZyAke3R5cGV9OiBcIiR7Y2hhcn1cIiAtIHVzZSBcIlxcXFxcXFxcJHtjaGFyfVwiIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7XG4gICAgfTtcbiAgICB2YXIgcGFyc2UzID0gKGlucHV0LCBvcHRpb25zOCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7XG4gICAgICBjb25zdCBvcHRzID0geyAuLi5vcHRpb25zOCB9O1xuICAgICAgY29uc3QgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSBcIm51bWJlclwiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDtcbiAgICAgIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7XG4gICAgICBpZiAobGVuID4gbWF4KSB7XG4gICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke2xlbn0sIGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIGxlbmd0aDogJHttYXh9YCk7XG4gICAgICB9XG4gICAgICBjb25zdCBib3MgPSB7IHR5cGU6IFwiYm9zXCIsIHZhbHVlOiBcIlwiLCBvdXRwdXQ6IG9wdHMucHJlcGVuZCB8fCBcIlwiIH07XG4gICAgICBjb25zdCB0b2tlbnMgPSBbYm9zXTtcbiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiO1xuICAgICAgY29uc3Qgd2luMzIgPSB1dGlscy5pc1dpbmRvd3Mob3B0aW9uczgpO1xuICAgICAgY29uc3QgUExBVEZPUk1fQ0hBUlMgPSBjb25zdGFudHMuZ2xvYkNoYXJzKHdpbjMyKTtcbiAgICAgIGNvbnN0IEVYVEdMT0JfQ0hBUlMgPSBjb25zdGFudHMuZXh0Z2xvYkNoYXJzKFBMQVRGT1JNX0NIQVJTKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgRE9UX0xJVEVSQUwsXG4gICAgICAgIFBMVVNfTElURVJBTCxcbiAgICAgICAgU0xBU0hfTElURVJBTCxcbiAgICAgICAgT05FX0NIQVIsXG4gICAgICAgIERPVFNfU0xBU0gsXG4gICAgICAgIE5PX0RPVCxcbiAgICAgICAgTk9fRE9UX1NMQVNILFxuICAgICAgICBOT19ET1RTX1NMQVNILFxuICAgICAgICBRTUFSSyxcbiAgICAgICAgUU1BUktfTk9fRE9ULFxuICAgICAgICBTVEFSLFxuICAgICAgICBTVEFSVF9BTkNIT1JcbiAgICAgIH0gPSBQTEFURk9STV9DSEFSUztcbiAgICAgIGNvbnN0IGdsb2JzdGFyID0gKG9wdHMyKSA9PiB7XG4gICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG5vZG90ID0gb3B0cy5kb3QgPyBcIlwiIDogTk9fRE9UO1xuICAgICAgY29uc3QgcW1hcmtOb0RvdCA9IG9wdHMuZG90ID8gUU1BUksgOiBRTUFSS19OT19ET1Q7XG4gICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/IGdsb2JzdGFyKG9wdHMpIDogU1RBUjtcbiAgICAgIGlmIChvcHRzLmNhcHR1cmUpIHtcbiAgICAgICAgc3RhciA9IGAoJHtzdGFyfSlgO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBvcHRzLm5vZXh0ID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICBvcHRzLm5vZXh0Z2xvYiA9IG9wdHMubm9leHQ7XG4gICAgICB9XG4gICAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGluZGV4OiAtMSxcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIGRvdDogb3B0cy5kb3QgPT09IHRydWUsXG4gICAgICAgIGNvbnN1bWVkOiBcIlwiLFxuICAgICAgICBvdXRwdXQ6IFwiXCIsXG4gICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgYmFja3RyYWNrOiBmYWxzZSxcbiAgICAgICAgbmVnYXRlZDogZmFsc2UsXG4gICAgICAgIGJyYWNrZXRzOiAwLFxuICAgICAgICBicmFjZXM6IDAsXG4gICAgICAgIHBhcmVuczogMCxcbiAgICAgICAgcXVvdGVzOiAwLFxuICAgICAgICBnbG9ic3RhcjogZmFsc2UsXG4gICAgICAgIHRva2Vuc1xuICAgICAgfTtcbiAgICAgIGlucHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7XG4gICAgICBsZW4gPSBpbnB1dC5sZW5ndGg7XG4gICAgICBjb25zdCBleHRnbG9icyA9IFtdO1xuICAgICAgY29uc3QgYnJhY2VzID0gW107XG4gICAgICBjb25zdCBzdGFjayA9IFtdO1xuICAgICAgbGV0IHByZXYgPSBib3M7XG4gICAgICBsZXQgdmFsdWU7XG4gICAgICBjb25zdCBlb3MgPSAoKSA9PiBzdGF0ZS5pbmRleCA9PT0gbGVuIC0gMTtcbiAgICAgIGNvbnN0IHBlZWsgPSBzdGF0ZS5wZWVrID0gKG4gPSAxKSA9PiBpbnB1dFtzdGF0ZS5pbmRleCArIG5dO1xuICAgICAgY29uc3QgYWR2YW5jZSA9IHN0YXRlLmFkdmFuY2UgPSAoKSA9PiBpbnB1dFsrK3N0YXRlLmluZGV4XSB8fCBcIlwiO1xuICAgICAgY29uc3QgcmVtYWluaW5nID0gKCkgPT4gaW5wdXQuc2xpY2Uoc3RhdGUuaW5kZXggKyAxKTtcbiAgICAgIGNvbnN0IGNvbnN1bWUgPSAodmFsdWUyID0gXCJcIiwgbnVtID0gMCkgPT4ge1xuICAgICAgICBzdGF0ZS5jb25zdW1lZCArPSB2YWx1ZTI7XG4gICAgICAgIHN0YXRlLmluZGV4ICs9IG51bTtcbiAgICAgIH07XG4gICAgICBjb25zdCBhcHBlbmQgPSAodG9rZW4pID0+IHtcbiAgICAgICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7XG4gICAgICAgIGNvbnN1bWUodG9rZW4udmFsdWUpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG5lZ2F0ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGNvdW50ID0gMTtcbiAgICAgICAgd2hpbGUgKHBlZWsoKSA9PT0gXCIhXCIgJiYgKHBlZWsoMikgIT09IFwiKFwiIHx8IHBlZWsoMykgPT09IFwiP1wiKSkge1xuICAgICAgICAgIGFkdmFuY2UoKTtcbiAgICAgICAgICBzdGF0ZS5zdGFydCsrO1xuICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50ICUgMiA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5uZWdhdGVkID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUuc3RhcnQrKztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgICAgY29uc3QgaW5jcmVtZW50ID0gKHR5cGUpID0+IHtcbiAgICAgICAgc3RhdGVbdHlwZV0rKztcbiAgICAgICAgc3RhY2sucHVzaCh0eXBlKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBkZWNyZW1lbnQgPSAodHlwZSkgPT4ge1xuICAgICAgICBzdGF0ZVt0eXBlXS0tO1xuICAgICAgICBzdGFjay5wb3AoKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBwdXNoID0gKHRvaykgPT4ge1xuICAgICAgICBpZiAocHJldi50eXBlID09PSBcImdsb2JzdGFyXCIpIHtcbiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAodG9rLnR5cGUgPT09IFwiY29tbWFcIiB8fCB0b2sudHlwZSA9PT0gXCJicmFjZVwiKTtcbiAgICAgICAgICBjb25zdCBpc0V4dGdsb2IgPSB0b2suZXh0Z2xvYiA9PT0gdHJ1ZSB8fCBleHRnbG9icy5sZW5ndGggJiYgKHRvay50eXBlID09PSBcInBpcGVcIiB8fCB0b2sudHlwZSA9PT0gXCJwYXJlblwiKTtcbiAgICAgICAgICBpZiAodG9rLnR5cGUgIT09IFwic2xhc2hcIiAmJiB0b2sudHlwZSAhPT0gXCJwYXJlblwiICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi5vdXRwdXQubGVuZ3RoKTtcbiAgICAgICAgICAgIHByZXYudHlwZSA9IFwic3RhclwiO1xuICAgICAgICAgICAgcHJldi52YWx1ZSA9IFwiKlwiO1xuICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBzdGFyO1xuICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXh0Z2xvYnMubGVuZ3RoICYmIHRvay50eXBlICE9PSBcInBhcmVuXCIpIHtcbiAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRvay52YWx1ZSB8fCB0b2sub3V0cHV0KVxuICAgICAgICAgIGFwcGVuZCh0b2spO1xuICAgICAgICBpZiAocHJldiAmJiBwcmV2LnR5cGUgPT09IFwidGV4dFwiICYmIHRvay50eXBlID09PSBcInRleHRcIikge1xuICAgICAgICAgIHByZXYudmFsdWUgKz0gdG9rLnZhbHVlO1xuICAgICAgICAgIHByZXYub3V0cHV0ID0gKHByZXYub3V0cHV0IHx8IFwiXCIpICsgdG9rLnZhbHVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0b2sucHJldiA9IHByZXY7XG4gICAgICAgIHRva2Vucy5wdXNoKHRvayk7XG4gICAgICAgIHByZXYgPSB0b2s7XG4gICAgICB9O1xuICAgICAgY29uc3QgZXh0Z2xvYk9wZW4gPSAodHlwZSwgdmFsdWUyKSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0geyAuLi5FWFRHTE9CX0NIQVJTW3ZhbHVlMl0sIGNvbmRpdGlvbnM6IDEsIGlubmVyOiBcIlwiIH07XG4gICAgICAgIHRva2VuLnByZXYgPSBwcmV2O1xuICAgICAgICB0b2tlbi5wYXJlbnMgPSBzdGF0ZS5wYXJlbnM7XG4gICAgICAgIHRva2VuLm91dHB1dCA9IHN0YXRlLm91dHB1dDtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/IFwiKFwiIDogXCJcIikgKyB0b2tlbi5vcGVuO1xuICAgICAgICBpbmNyZW1lbnQoXCJwYXJlbnNcIik7XG4gICAgICAgIHB1c2goeyB0eXBlLCB2YWx1ZTogdmFsdWUyLCBvdXRwdXQ6IHN0YXRlLm91dHB1dCA/IFwiXCIgOiBPTkVfQ0hBUiB9KTtcbiAgICAgICAgcHVzaCh7IHR5cGU6IFwicGFyZW5cIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWU6IGFkdmFuY2UoKSwgb3V0cHV0IH0pO1xuICAgICAgICBleHRnbG9icy5wdXNoKHRva2VuKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBleHRnbG9iQ2xvc2UgPSAodG9rZW4pID0+IHtcbiAgICAgICAgbGV0IG91dHB1dCA9IHRva2VuLmNsb3NlICsgKG9wdHMuY2FwdHVyZSA/IFwiKVwiIDogXCJcIik7XG4gICAgICAgIGxldCByZXN0O1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJuZWdhdGVcIikge1xuICAgICAgICAgIGxldCBleHRnbG9iU3RhciA9IHN0YXI7XG4gICAgICAgICAgaWYgKHRva2VuLmlubmVyICYmIHRva2VuLmlubmVyLmxlbmd0aCA+IDEgJiYgdG9rZW4uaW5uZXIuaW5jbHVkZXMoXCIvXCIpKSB7XG4gICAgICAgICAgICBleHRnbG9iU3RhciA9IGdsb2JzdGFyKG9wdHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXh0Z2xvYlN0YXIgIT09IHN0YXIgfHwgZW9zKCkgfHwgL15cXCkrJC8udGVzdChyZW1haW5pbmcoKSkpIHtcbiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0b2tlbi5pbm5lci5pbmNsdWRlcyhcIipcIikgJiYgKHJlc3QgPSByZW1haW5pbmcoKSkgJiYgL15cXC5bXlxcXFwvLl0rJC8udGVzdChyZXN0KSkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHBhcnNlMyhyZXN0LCB7IC4uLm9wdGlvbnM4LCBmYXN0cGF0aHM6IGZhbHNlIH0pLm91dHB1dDtcbiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkke2V4cHJlc3Npb259KSR7ZXh0Z2xvYlN0YXJ9KWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0b2tlbi5wcmV2LnR5cGUgPT09IFwiYm9zXCIpIHtcbiAgICAgICAgICAgIHN0YXRlLm5lZ2F0ZWRFeHRnbG9iID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcHVzaCh7IHR5cGU6IFwicGFyZW5cIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTtcbiAgICAgICAgZGVjcmVtZW50KFwicGFyZW5zXCIpO1xuICAgICAgfTtcbiAgICAgIGlmIChvcHRzLmZhc3RwYXRocyAhPT0gZmFsc2UgJiYgIS8oXlsqIV18Wy8oKVtcXF17fVwiXSkvLnRlc3QoaW5wdXQpKSB7XG4gICAgICAgIGxldCBiYWNrc2xhc2hlcyA9IGZhbHNlO1xuICAgICAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAoZmlyc3QgPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gbTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpcnN0ID09PSBcIj9cIikge1xuICAgICAgICAgICAgaWYgKGVzYykge1xuICAgICAgICAgICAgICByZXR1cm4gZXNjICsgZmlyc3QgKyAocmVzdCA/IFFNQVJLLnJlcGVhdChyZXN0Lmxlbmd0aCkgOiBcIlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gcW1hcmtOb0RvdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6IFwiXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFFNQVJLLnJlcGVhdChjaGFycy5sZW5ndGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmlyc3QgPT09IFwiLlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaXJzdCA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgIGlmIChlc2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVzYyArIGZpcnN0ICsgKHJlc3QgPyBzdGFyIDogXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RhcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGVzYyA/IG0gOiBgXFxcXCR7bX1gO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGJhY2tzbGFzaGVzID09PSB0cnVlKSB7XG4gICAgICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXFxcL2csIFwiXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFxcXCsvZywgKG0pID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIG0ubGVuZ3RoICUgMiA9PT0gMCA/IFwiXFxcXFxcXFxcIiA6IG0gPyBcIlxcXFxcIiA6IFwiXCI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG91dHB1dCA9PT0gaW5wdXQgJiYgb3B0cy5jb250YWlucyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHN0YXRlLm91dHB1dCA9IGlucHV0O1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy53cmFwT3V0cHV0KG91dHB1dCwgc3RhdGUsIG9wdGlvbnM4KTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuICAgICAgd2hpbGUgKCFlb3MoKSkge1xuICAgICAgICB2YWx1ZSA9IGFkdmFuY2UoKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSBcIlxcMFwiKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIlxcXFxcIikge1xuICAgICAgICAgIGNvbnN0IG5leHQgPSBwZWVrKCk7XG4gICAgICAgICAgaWYgKG5leHQgPT09IFwiL1wiICYmIG9wdHMuYmFzaCAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXh0ID09PSBcIi5cIiB8fCBuZXh0ID09PSBcIjtcIikge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gXCJcXFxcXCI7XG4gICAgICAgICAgICBwdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG1hdGNoID0gL15cXFxcKy8uZXhlYyhyZW1haW5pbmcoKSk7XG4gICAgICAgICAgbGV0IHNsYXNoZXMgPSAwO1xuICAgICAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFswXS5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICBzbGFzaGVzID0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICAgICAgc3RhdGUuaW5kZXggKz0gc2xhc2hlcztcbiAgICAgICAgICAgIGlmIChzbGFzaGVzICUgMiAhPT0gMCkge1xuICAgICAgICAgICAgICB2YWx1ZSArPSBcIlxcXFxcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYWR2YW5jZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSArPSBhZHZhbmNlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkge1xuICAgICAgICAgICAgcHVzaCh7IHR5cGU6IFwidGV4dFwiLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUuYnJhY2tldHMgPiAwICYmICh2YWx1ZSAhPT0gXCJdXCIgfHwgcHJldi52YWx1ZSA9PT0gXCJbXCIgfHwgcHJldi52YWx1ZSA9PT0gXCJbXlwiKSkge1xuICAgICAgICAgIGlmIChvcHRzLnBvc2l4ICE9PSBmYWxzZSAmJiB2YWx1ZSA9PT0gXCI6XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyID0gcHJldi52YWx1ZS5zbGljZSgxKTtcbiAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcyhcIltcIikpIHtcbiAgICAgICAgICAgICAgcHJldi5wb3NpeCA9IHRydWU7XG4gICAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpZHggPSBwcmV2LnZhbHVlLmxhc3RJbmRleE9mKFwiW1wiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmUgPSBwcmV2LnZhbHVlLnNsaWNlKDAsIGlkeCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdDIgPSBwcmV2LnZhbHVlLnNsaWNlKGlkeCArIDIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3QyXTtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXgpIHtcbiAgICAgICAgICAgICAgICAgIHByZXYudmFsdWUgPSBwcmUgKyBwb3NpeDtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBhZHZhbmNlKCk7XG4gICAgICAgICAgICAgICAgICBpZiAoIWJvcy5vdXRwdXQgJiYgdG9rZW5zLmluZGV4T2YocHJldikgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9zLm91dHB1dCA9IE9ORV9DSEFSO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gXCJbXCIgJiYgcGVlaygpICE9PSBcIjpcIiB8fCB2YWx1ZSA9PT0gXCItXCIgJiYgcGVlaygpID09PSBcIl1cIikge1xuICAgICAgICAgICAgdmFsdWUgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhbHVlID09PSBcIl1cIiAmJiAocHJldi52YWx1ZSA9PT0gXCJbXCIgfHwgcHJldi52YWx1ZSA9PT0gXCJbXlwiKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG9wdHMucG9zaXggPT09IHRydWUgJiYgdmFsdWUgPT09IFwiIVwiICYmIHByZXYudmFsdWUgPT09IFwiW1wiKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFwiXlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5xdW90ZXMgPT09IDEgJiYgdmFsdWUgIT09ICdcIicpIHtcbiAgICAgICAgICB2YWx1ZSA9IHV0aWxzLmVzY2FwZVJlZ2V4KHZhbHVlKTtcbiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ1wiJykge1xuICAgICAgICAgIHN0YXRlLnF1b3RlcyA9IHN0YXRlLnF1b3RlcyA9PT0gMSA/IDAgOiAxO1xuICAgICAgICAgIGlmIChvcHRzLmtlZXBRdW90ZXMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCIoXCIpIHtcbiAgICAgICAgICBpbmNyZW1lbnQoXCJwYXJlbnNcIik7XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwicGFyZW5cIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIilcIikge1xuICAgICAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwib3BlbmluZ1wiLCBcIihcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBleHRnbG9iID0gZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGV4dGdsb2IgJiYgc3RhdGUucGFyZW5zID09PSBleHRnbG9iLnBhcmVucyArIDEpIHtcbiAgICAgICAgICAgIGV4dGdsb2JDbG9zZShleHRnbG9icy5wb3AoKSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwicGFyZW5cIiwgdmFsdWUsIG91dHB1dDogc3RhdGUucGFyZW5zID8gXCIpXCIgOiBcIlxcXFwpXCIgfSk7XG4gICAgICAgICAgZGVjcmVtZW50KFwicGFyZW5zXCIpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJbXCIpIHtcbiAgICAgICAgICBpZiAob3B0cy5ub2JyYWNrZXQgPT09IHRydWUgfHwgIXJlbWFpbmluZygpLmluY2x1ZGVzKFwiXVwiKSkge1xuICAgICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ICE9PSB0cnVlICYmIG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLCBcIl1cIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5jcmVtZW50KFwiYnJhY2tldHNcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcImJyYWNrZXRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIl1cIikge1xuICAgICAgICAgIGlmIChvcHRzLm5vYnJhY2tldCA9PT0gdHJ1ZSB8fCBwcmV2ICYmIHByZXYudHlwZSA9PT0gXCJicmFja2V0XCIgJiYgcHJldi52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUsIG91dHB1dDogYFxcXFwke3ZhbHVlfWAgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXRlLmJyYWNrZXRzID09PSAwKSB7XG4gICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJvcGVuaW5nXCIsIFwiW1wiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwdXNoKHsgdHlwZTogXCJ0ZXh0XCIsIHZhbHVlLCBvdXRwdXQ6IGBcXFxcJHt2YWx1ZX1gIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlY3JlbWVudChcImJyYWNrZXRzXCIpO1xuICAgICAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXYudmFsdWUuc2xpY2UoMSk7XG4gICAgICAgICAgaWYgKHByZXYucG9zaXggIT09IHRydWUgJiYgcHJldlZhbHVlWzBdID09PSBcIl5cIiAmJiAhcHJldlZhbHVlLmluY2x1ZGVzKFwiL1wiKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBgLyR7dmFsdWV9YDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgICAgICBhcHBlbmQoeyB2YWx1ZSB9KTtcbiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IGZhbHNlIHx8IHV0aWxzLmhhc1JlZ2V4Q2hhcnMocHJldlZhbHVlKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTtcbiAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQuc2xpY2UoMCwgLXByZXYudmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkO1xuICAgICAgICAgICAgcHJldi52YWx1ZSA9IGVzY2FwZWQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJldi52YWx1ZSA9IGAoJHtjYXB0dXJlfSR7ZXNjYXBlZH18JHtwcmV2LnZhbHVlfSlgO1xuICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBwcmV2LnZhbHVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7XCIgJiYgb3B0cy5ub2JyYWNlICE9PSB0cnVlKSB7XG4gICAgICAgICAgaW5jcmVtZW50KFwiYnJhY2VzXCIpO1xuICAgICAgICAgIGNvbnN0IG9wZW4gPSB7XG4gICAgICAgICAgICB0eXBlOiBcImJyYWNlXCIsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIG91dHB1dDogXCIoXCIsXG4gICAgICAgICAgICBvdXRwdXRJbmRleDogc3RhdGUub3V0cHV0Lmxlbmd0aCxcbiAgICAgICAgICAgIHRva2Vuc0luZGV4OiBzdGF0ZS50b2tlbnMubGVuZ3RoXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmFjZXMucHVzaChvcGVuKTtcbiAgICAgICAgICBwdXNoKG9wZW4pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJ9XCIpIHtcbiAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IG91dHB1dCA9IFwiKVwiO1xuICAgICAgICAgIGlmIChicmFjZS5kb3RzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0b2tlbnMuc2xpY2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgIHRva2Vucy5wb3AoKTtcbiAgICAgICAgICAgICAgaWYgKGFycltpXS50eXBlID09PSBcImJyYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYXJyW2ldLnR5cGUgIT09IFwiZG90c1wiKSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UudW5zaGlmdChhcnJbaV0udmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRwdXQgPSBleHBhbmRSYW5nZShyYW5nZSwgb3B0cyk7XG4gICAgICAgICAgICBzdGF0ZS5iYWNrdHJhY2sgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYnJhY2UuY29tbWEgIT09IHRydWUgJiYgYnJhY2UuZG90cyAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3Qgb3V0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIGJyYWNlLm91dHB1dEluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IHRva3MgPSBzdGF0ZS50b2tlbnMuc2xpY2UoYnJhY2UudG9rZW5zSW5kZXgpO1xuICAgICAgICAgICAgYnJhY2UudmFsdWUgPSBicmFjZS5vdXRwdXQgPSBcIlxcXFx7XCI7XG4gICAgICAgICAgICB2YWx1ZSA9IG91dHB1dCA9IFwiXFxcXH1cIjtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCA9IG91dDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB0b2tzKSB7XG4gICAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSB0Lm91dHB1dCB8fCB0LnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJicmFjZVwiLCB2YWx1ZSwgb3V0cHV0IH0pO1xuICAgICAgICAgIGRlY3JlbWVudChcImJyYWNlc1wiKTtcbiAgICAgICAgICBicmFjZXMucG9wKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInxcIikge1xuICAgICAgICAgIGlmIChleHRnbG9icy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5jb25kaXRpb25zKys7XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIixcIikge1xuICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTtcbiAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGJyYWNlICYmIHN0YWNrW3N0YWNrLmxlbmd0aCAtIDFdID09PSBcImJyYWNlc1wiKSB7XG4gICAgICAgICAgICBicmFjZS5jb21tYSA9IHRydWU7XG4gICAgICAgICAgICBvdXRwdXQgPSBcInxcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHVzaCh7IHR5cGU6IFwiY29tbWFcIiwgdmFsdWUsIG91dHB1dCB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IFwiL1wiKSB7XG4gICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gXCJkb3RcIiAmJiBzdGF0ZS5pbmRleCA9PT0gc3RhdGUuc3RhcnQgKyAxKSB7XG4gICAgICAgICAgICBzdGF0ZS5zdGFydCA9IHN0YXRlLmluZGV4ICsgMTtcbiAgICAgICAgICAgIHN0YXRlLmNvbnN1bWVkID0gXCJcIjtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCA9IFwiXCI7XG4gICAgICAgICAgICB0b2tlbnMucG9wKCk7XG4gICAgICAgICAgICBwcmV2ID0gYm9zO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcInNsYXNoXCIsIHZhbHVlLCBvdXRwdXQ6IFNMQVNIX0xJVEVSQUwgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIi5cIikge1xuICAgICAgICAgIGlmIChzdGF0ZS5icmFjZXMgPiAwICYmIHByZXYudHlwZSA9PT0gXCJkb3RcIikge1xuICAgICAgICAgICAgaWYgKHByZXYudmFsdWUgPT09IFwiLlwiKVxuICAgICAgICAgICAgICBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMO1xuICAgICAgICAgICAgY29uc3QgYnJhY2UgPSBicmFjZXNbYnJhY2VzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgcHJldi50eXBlID0gXCJkb3RzXCI7XG4gICAgICAgICAgICBwcmV2Lm91dHB1dCArPSB2YWx1ZTtcbiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgICAgICBicmFjZS5kb3RzID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhdGUuYnJhY2VzICsgc3RhdGUucGFyZW5zID09PSAwICYmIHByZXYudHlwZSAhPT0gXCJib3NcIiAmJiBwcmV2LnR5cGUgIT09IFwic2xhc2hcIikge1xuICAgICAgICAgICAgcHVzaCh7IHR5cGU6IFwidGV4dFwiLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJkb3RcIiwgdmFsdWUsIG91dHB1dDogRE9UX0xJVEVSQUwgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIj9cIikge1xuICAgICAgICAgIGNvbnN0IGlzR3JvdXAgPSBwcmV2ICYmIHByZXYudmFsdWUgPT09IFwiKFwiO1xuICAgICAgICAgIGlmICghaXNHcm91cCAmJiBvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09IFwiKFwiICYmIHBlZWsoMikgIT09IFwiP1wiKSB7XG4gICAgICAgICAgICBleHRnbG9iT3BlbihcInFtYXJrXCIsIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LnR5cGUgPT09IFwicGFyZW5cIikge1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTtcbiAgICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmIChuZXh0ID09PSBcIjxcIiAmJiAhdXRpbHMuc3VwcG9ydHNMb29rYmVoaW5kcygpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vZGUuanMgdjEwIG9yIGhpZ2hlciBpcyByZXF1aXJlZCBmb3IgcmVnZXggbG9va2JlaGluZHNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gXCIoXCIgJiYgIS9bIT08Ol0vLnRlc3QobmV4dCkgfHwgbmV4dCA9PT0gXCI8XCIgJiYgIS88KFshPV18XFx3Kz4pLy50ZXN0KHJlbWFpbmluZygpKSkge1xuICAgICAgICAgICAgICBvdXRwdXQgPSBgXFxcXCR7dmFsdWV9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUsIG91dHB1dCB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0cy5kb3QgIT09IHRydWUgJiYgKHByZXYudHlwZSA9PT0gXCJzbGFzaFwiIHx8IHByZXYudHlwZSA9PT0gXCJib3NcIikpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInFtYXJrXCIsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLX05PX0RPVCB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJxbWFya1wiLCB2YWx1ZSwgb3V0cHV0OiBRTUFSSyB9KTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPT09IFwiIVwiKSB7XG4gICAgICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gXCIoXCIpIHtcbiAgICAgICAgICAgIGlmIChwZWVrKDIpICE9PSBcIj9cIiB8fCAhL1shPTw6XS8udGVzdChwZWVrKDMpKSkge1xuICAgICAgICAgICAgICBleHRnbG9iT3BlbihcIm5lZ2F0ZVwiLCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0cy5ub25lZ2F0ZSAhPT0gdHJ1ZSAmJiBzdGF0ZS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgbmVnYXRlKCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIitcIikge1xuICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09IFwiKFwiICYmIHBlZWsoMikgIT09IFwiP1wiKSB7XG4gICAgICAgICAgICBleHRnbG9iT3BlbihcInBsdXNcIiwgdmFsdWUpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmV2ICYmIHByZXYudmFsdWUgPT09IFwiKFwiIHx8IG9wdHMucmVnZXggPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBwdXNoKHsgdHlwZTogXCJwbHVzXCIsIHZhbHVlLCBvdXRwdXQ6IFBMVVNfTElURVJBTCB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJldiAmJiAocHJldi50eXBlID09PSBcImJyYWNrZXRcIiB8fCBwcmV2LnR5cGUgPT09IFwicGFyZW5cIiB8fCBwcmV2LnR5cGUgPT09IFwiYnJhY2VcIikgfHwgc3RhdGUucGFyZW5zID4gMCkge1xuICAgICAgICAgICAgcHVzaCh7IHR5cGU6IFwicGx1c1wiLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoKHsgdHlwZTogXCJwbHVzXCIsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIkBcIikge1xuICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09IFwiKFwiICYmIHBlZWsoMikgIT09IFwiP1wiKSB7XG4gICAgICAgICAgICBwdXNoKHsgdHlwZTogXCJhdFwiLCBleHRnbG9iOiB0cnVlLCB2YWx1ZSwgb3V0cHV0OiBcIlwiIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlICE9PSBcIipcIikge1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gXCIkXCIgfHwgdmFsdWUgPT09IFwiXlwiKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGBcXFxcJHt2YWx1ZX1gO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBtYXRjaCA9IFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTLmV4ZWMocmVtYWluaW5nKCkpO1xuICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgdmFsdWUgKz0gbWF0Y2hbMF07XG4gICAgICAgICAgICBzdGF0ZS5pbmRleCArPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgICAgfVxuICAgICAgICAgIHB1c2goeyB0eXBlOiBcInRleHRcIiwgdmFsdWUgfSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gXCJnbG9ic3RhclwiIHx8IHByZXYuc3RhciA9PT0gdHJ1ZSkpIHtcbiAgICAgICAgICBwcmV2LnR5cGUgPSBcInN0YXJcIjtcbiAgICAgICAgICBwcmV2LnN0YXIgPSB0cnVlO1xuICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgICAgcHJldi5vdXRwdXQgPSBzdGFyO1xuICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7XG4gICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlO1xuICAgICAgICAgIGNvbnN1bWUodmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN0ID0gcmVtYWluaW5nKCk7XG4gICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiAvXlxcKFteP10vLnRlc3QocmVzdCkpIHtcbiAgICAgICAgICBleHRnbG9iT3BlbihcInN0YXJcIiwgdmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2LnR5cGUgPT09IFwic3RhclwiKSB7XG4gICAgICAgICAgaWYgKG9wdHMubm9nbG9ic3RhciA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcHJpb3IgPSBwcmV2LnByZXY7XG4gICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJpb3IucHJldjtcbiAgICAgICAgICBjb25zdCBpc1N0YXJ0ID0gcHJpb3IudHlwZSA9PT0gXCJzbGFzaFwiIHx8IHByaW9yLnR5cGUgPT09IFwiYm9zXCI7XG4gICAgICAgICAgY29uc3QgYWZ0ZXJTdGFyID0gYmVmb3JlICYmIChiZWZvcmUudHlwZSA9PT0gXCJzdGFyXCIgfHwgYmVmb3JlLnR5cGUgPT09IFwiZ2xvYnN0YXJcIik7XG4gICAgICAgICAgaWYgKG9wdHMuYmFzaCA9PT0gdHJ1ZSAmJiAoIWlzU3RhcnQgfHwgcmVzdFswXSAmJiByZXN0WzBdICE9PSBcIi9cIikpIHtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInN0YXJcIiwgdmFsdWUsIG91dHB1dDogXCJcIiB9KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAocHJpb3IudHlwZSA9PT0gXCJjb21tYVwiIHx8IHByaW9yLnR5cGUgPT09IFwiYnJhY2VcIik7XG4gICAgICAgICAgY29uc3QgaXNFeHRnbG9iID0gZXh0Z2xvYnMubGVuZ3RoICYmIChwcmlvci50eXBlID09PSBcInBpcGVcIiB8fCBwcmlvci50eXBlID09PSBcInBhcmVuXCIpO1xuICAgICAgICAgIGlmICghaXNTdGFydCAmJiBwcmlvci50eXBlICE9PSBcInBhcmVuXCIgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikge1xuICAgICAgICAgICAgcHVzaCh7IHR5cGU6IFwic3RhclwiLCB2YWx1ZSwgb3V0cHV0OiBcIlwiIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdoaWxlIChyZXN0LnNsaWNlKDAsIDMpID09PSBcIi8qKlwiKSB7XG4gICAgICAgICAgICBjb25zdCBhZnRlciA9IGlucHV0W3N0YXRlLmluZGV4ICsgNF07XG4gICAgICAgICAgICBpZiAoYWZ0ZXIgJiYgYWZ0ZXIgIT09IFwiL1wiKSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdCA9IHJlc3Quc2xpY2UoMyk7XG4gICAgICAgICAgICBjb25zdW1lKFwiLyoqXCIsIDMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocHJpb3IudHlwZSA9PT0gXCJib3NcIiAmJiBlb3MoKSkge1xuICAgICAgICAgICAgcHJldi50eXBlID0gXCJnbG9ic3RhclwiO1xuICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTtcbiAgICAgICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cyk7XG4gICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDtcbiAgICAgICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSBcInNsYXNoXCIgJiYgcHJpb3IucHJldi50eXBlICE9PSBcImJvc1wiICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtKHByaW9yLm91dHB1dCArIHByZXYub3V0cHV0KS5sZW5ndGgpO1xuICAgICAgICAgICAgcHJpb3Iub3V0cHV0ID0gYCg/OiR7cHJpb3Iub3V0cHV0fWA7XG4gICAgICAgICAgICBwcmV2LnR5cGUgPSBcImdsb2JzdGFyXCI7XG4gICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpICsgKG9wdHMuc3RyaWN0U2xhc2hlcyA/IFwiKVwiIDogXCJ8JClcIik7XG4gICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByaW9yLm91dHB1dCArIHByZXYub3V0cHV0O1xuICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHByaW9yLnR5cGUgPT09IFwic2xhc2hcIiAmJiBwcmlvci5wcmV2LnR5cGUgIT09IFwiYm9zXCIgJiYgcmVzdFswXSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHJlc3RbMV0gIT09IHZvaWQgMCA/IFwifCRcIiA6IFwiXCI7XG4gICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQuc2xpY2UoMCwgLShwcmlvci5vdXRwdXQgKyBwcmV2Lm91dHB1dCkubGVuZ3RoKTtcbiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gO1xuICAgICAgICAgICAgcHJldi50eXBlID0gXCJnbG9ic3RhclwiO1xuICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgJHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9fCR7U0xBU0hfTElURVJBTH0ke2VuZH0pYDtcbiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7XG4gICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7XG4gICAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInNsYXNoXCIsIHZhbHVlOiBcIi9cIiwgb3V0cHV0OiBcIlwiIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSBcImJvc1wiICYmIHJlc3RbMF0gPT09IFwiL1wiKSB7XG4gICAgICAgICAgICBwcmV2LnR5cGUgPSBcImdsb2JzdGFyXCI7XG4gICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9fCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSlgO1xuICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gcHJldi5vdXRwdXQ7XG4gICAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTtcbiAgICAgICAgICAgIHB1c2goeyB0eXBlOiBcInNsYXNoXCIsIHZhbHVlOiBcIi9cIiwgb3V0cHV0OiBcIlwiIH0pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi5vdXRwdXQubGVuZ3RoKTtcbiAgICAgICAgICBwcmV2LnR5cGUgPSBcImdsb2JzdGFyXCI7XG4gICAgICAgICAgcHJldi5vdXRwdXQgPSBnbG9ic3RhcihvcHRzKTtcbiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlO1xuICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBwcmV2Lm91dHB1dDtcbiAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7XG4gICAgICAgICAgY29uc3VtZSh2YWx1ZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdG9rZW4gPSB7IHR5cGU6IFwic3RhclwiLCB2YWx1ZSwgb3V0cHV0OiBzdGFyIH07XG4gICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHtcbiAgICAgICAgICB0b2tlbi5vdXRwdXQgPSBcIi4qP1wiO1xuICAgICAgICAgIGlmIChwcmV2LnR5cGUgPT09IFwiYm9zXCIgfHwgcHJldi50eXBlID09PSBcInNsYXNoXCIpIHtcbiAgICAgICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoKHRva2VuKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldiAmJiAocHJldi50eXBlID09PSBcImJyYWNrZXRcIiB8fCBwcmV2LnR5cGUgPT09IFwicGFyZW5cIikgJiYgb3B0cy5yZWdleCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRva2VuLm91dHB1dCA9IHZhbHVlO1xuICAgICAgICAgIHB1c2godG9rZW4pO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5pbmRleCA9PT0gc3RhdGUuc3RhcnQgfHwgcHJldi50eXBlID09PSBcInNsYXNoXCIgfHwgcHJldi50eXBlID09PSBcImRvdFwiKSB7XG4gICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gXCJkb3RcIikge1xuICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IE5PX0RPVF9TTEFTSDtcbiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE5PX0RPVF9TTEFTSDtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gTk9fRE9UU19TTEFTSDtcbiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE5PX0RPVFNfU0xBU0g7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBub2RvdDtcbiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IG5vZG90O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGVlaygpICE9PSBcIipcIikge1xuICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IE9ORV9DSEFSO1xuICAgICAgICAgICAgcHJldi5vdXRwdXQgKz0gT05FX0NIQVI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHB1c2godG9rZW4pO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHN0YXRlLmJyYWNrZXRzID4gMCkge1xuICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSlcbiAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJjbG9zaW5nXCIsIFwiXVwiKSk7XG4gICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCBcIltcIik7XG4gICAgICAgIGRlY3JlbWVudChcImJyYWNrZXRzXCIpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHN0YXRlLnBhcmVucyA+IDApIHtcbiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpXG4gICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLCBcIilcIikpO1xuICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy5lc2NhcGVMYXN0KHN0YXRlLm91dHB1dCwgXCIoXCIpO1xuICAgICAgICBkZWNyZW1lbnQoXCJwYXJlbnNcIik7XG4gICAgICB9XG4gICAgICB3aGlsZSAoc3RhdGUuYnJhY2VzID4gMCkge1xuICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSlcbiAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJjbG9zaW5nXCIsIFwifVwiKSk7XG4gICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCBcIntcIik7XG4gICAgICAgIGRlY3JlbWVudChcImJyYWNlc1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUgJiYgKHByZXYudHlwZSA9PT0gXCJzdGFyXCIgfHwgcHJldi50eXBlID09PSBcImJyYWNrZXRcIikpIHtcbiAgICAgICAgcHVzaCh7IHR5cGU6IFwibWF5YmVfc2xhc2hcIiwgdmFsdWU6IFwiXCIsIG91dHB1dDogYCR7U0xBU0hfTElURVJBTH0/YCB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5iYWNrdHJhY2sgPT09IHRydWUpIHtcbiAgICAgICAgc3RhdGUub3V0cHV0ID0gXCJcIjtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBzdGF0ZS50b2tlbnMpIHtcbiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4ub3V0cHV0ICE9IG51bGwgPyB0b2tlbi5vdXRwdXQgOiB0b2tlbi52YWx1ZTtcbiAgICAgICAgICBpZiAodG9rZW4uc3VmZml4KSB7XG4gICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4uc3VmZml4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH07XG4gICAgcGFyc2UzLmZhc3RwYXRocyA9IChpbnB1dCwgb3B0aW9uczgpID0+IHtcbiAgICAgIGNvbnN0IG9wdHMgPSB7IC4uLm9wdGlvbnM4IH07XG4gICAgICBjb25zdCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09IFwibnVtYmVyXCIgPyBNYXRoLm1pbihNQVhfTEVOR1RILCBvcHRzLm1heExlbmd0aCkgOiBNQVhfTEVOR1RIO1xuICAgICAgY29uc3QgbGVuID0gaW5wdXQubGVuZ3RoO1xuICAgICAgaWYgKGxlbiA+IG1heCkge1xuICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApO1xuICAgICAgfVxuICAgICAgaW5wdXQgPSBSRVBMQUNFTUVOVFNbaW5wdXRdIHx8IGlucHV0O1xuICAgICAgY29uc3Qgd2luMzIgPSB1dGlscy5pc1dpbmRvd3Mob3B0aW9uczgpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBET1RfTElURVJBTCxcbiAgICAgICAgU0xBU0hfTElURVJBTCxcbiAgICAgICAgT05FX0NIQVIsXG4gICAgICAgIERPVFNfU0xBU0gsXG4gICAgICAgIE5PX0RPVCxcbiAgICAgICAgTk9fRE9UUyxcbiAgICAgICAgTk9fRE9UU19TTEFTSCxcbiAgICAgICAgU1RBUixcbiAgICAgICAgU1RBUlRfQU5DSE9SXG4gICAgICB9ID0gY29uc3RhbnRzLmdsb2JDaGFycyh3aW4zMik7XG4gICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gTk9fRE9UUyA6IE5PX0RPVDtcbiAgICAgIGNvbnN0IHNsYXNoRG90ID0gb3B0cy5kb3QgPyBOT19ET1RTX1NMQVNIIDogTk9fRE9UO1xuICAgICAgY29uc3QgY2FwdHVyZSA9IG9wdHMuY2FwdHVyZSA/IFwiXCIgOiBcIj86XCI7XG4gICAgICBjb25zdCBzdGF0ZSA9IHsgbmVnYXRlZDogZmFsc2UsIHByZWZpeDogXCJcIiB9O1xuICAgICAgbGV0IHN0YXIgPSBvcHRzLmJhc2ggPT09IHRydWUgPyBcIi4qP1wiIDogU1RBUjtcbiAgICAgIGlmIChvcHRzLmNhcHR1cmUpIHtcbiAgICAgICAgc3RhciA9IGAoJHtzdGFyfSlgO1xuICAgICAgfVxuICAgICAgY29uc3QgZ2xvYnN0YXIgPSAob3B0czIpID0+IHtcbiAgICAgICAgaWYgKG9wdHMyLm5vZ2xvYnN0YXIgPT09IHRydWUpXG4gICAgICAgICAgcmV0dXJuIHN0YXI7XG4gICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNyZWF0ZSA9IChzdHIpID0+IHtcbiAgICAgICAgc3dpdGNoIChzdHIpIHtcbiAgICAgICAgICBjYXNlIFwiKlwiOlxuICAgICAgICAgICAgcmV0dXJuIGAke25vZG90fSR7T05FX0NIQVJ9JHtzdGFyfWA7XG4gICAgICAgICAgY2FzZSBcIi4qXCI6XG4gICAgICAgICAgICByZXR1cm4gYCR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDtcbiAgICAgICAgICBjYXNlIFwiKi4qXCI6XG4gICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDtcbiAgICAgICAgICBjYXNlIFwiKi8qXCI6XG4gICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7U0xBU0hfTElURVJBTH0ke09ORV9DSEFSfSR7c2xhc2hEb3R9JHtzdGFyfWA7XG4gICAgICAgICAgY2FzZSBcIioqXCI6XG4gICAgICAgICAgICByZXR1cm4gbm9kb3QgKyBnbG9ic3RhcihvcHRzKTtcbiAgICAgICAgICBjYXNlIFwiKiovKlwiOlxuICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke09ORV9DSEFSfSR7c3Rhcn1gO1xuICAgICAgICAgIGNhc2UgXCIqKi8qLipcIjpcbiAgICAgICAgICAgIHJldHVybiBgKD86JHtub2RvdH0ke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH0pPyR7c2xhc2hEb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDtcbiAgICAgICAgICBjYXNlIFwiKiovLipcIjpcbiAgICAgICAgICAgIHJldHVybiBgKD86JHtub2RvdH0ke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH0pPyR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDtcbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IC9eKC4qPylcXC4oXFx3KykkLy5leGVjKHN0cik7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UyID0gY3JlYXRlKG1hdGNoWzFdKTtcbiAgICAgICAgICAgIGlmICghc291cmNlMilcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTIgKyBET1RfTElURVJBTCArIG1hdGNoWzJdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHV0aWxzLnJlbW92ZVByZWZpeChpbnB1dCwgc3RhdGUpO1xuICAgICAgbGV0IHNvdXJjZSA9IGNyZWF0ZShvdXRwdXQpO1xuICAgICAgaWYgKHNvdXJjZSAmJiBvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUpIHtcbiAgICAgICAgc291cmNlICs9IGAke1NMQVNIX0xJVEVSQUx9P2A7XG4gICAgICB9XG4gICAgICByZXR1cm4gc291cmNlO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBwYXJzZTM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9waWNvbWF0Y2guanNcbnZhciByZXF1aXJlX3BpY29tYXRjaCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BpY29tYXRjaC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBwYXRoOSA9IF9fcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIHNjYW4gPSByZXF1aXJlX3NjYW4oKTtcbiAgICB2YXIgcGFyc2UzID0gcmVxdWlyZV9wYXJzZTIoKTtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzMigpO1xuICAgIHZhciBjb25zdGFudHMgPSByZXF1aXJlX2NvbnN0YW50czIoKTtcbiAgICB2YXIgaXNPYmplY3QyID0gKHZhbCkgPT4gdmFsICYmIHR5cGVvZiB2YWwgPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTtcbiAgICB2YXIgcGljb21hdGNoID0gKGdsb2IsIG9wdGlvbnM4LCByZXR1cm5TdGF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShnbG9iKSkge1xuICAgICAgICBjb25zdCBmbnMgPSBnbG9iLm1hcCgoaW5wdXQpID0+IHBpY29tYXRjaChpbnB1dCwgb3B0aW9uczgsIHJldHVyblN0YXRlKSk7XG4gICAgICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IChzdHIpID0+IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZTIgPSBpc01hdGNoKHN0cik7XG4gICAgICAgICAgICBpZiAoc3RhdGUyKVxuICAgICAgICAgICAgICByZXR1cm4gc3RhdGUyO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBhcnJheU1hdGNoZXI7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1N0YXRlID0gaXNPYmplY3QyKGdsb2IpICYmIGdsb2IudG9rZW5zICYmIGdsb2IuaW5wdXQ7XG4gICAgICBpZiAoZ2xvYiA9PT0gXCJcIiB8fCB0eXBlb2YgZ2xvYiAhPT0gXCJzdHJpbmdcIiAmJiAhaXNTdGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgcGF0dGVybiB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBvcHRzID0gb3B0aW9uczggfHwge307XG4gICAgICBjb25zdCBwb3NpeCA9IHV0aWxzLmlzV2luZG93cyhvcHRpb25zOCk7XG4gICAgICBjb25zdCByZWdleCA9IGlzU3RhdGUgPyBwaWNvbWF0Y2guY29tcGlsZVJlKGdsb2IsIG9wdGlvbnM4KSA6IHBpY29tYXRjaC5tYWtlUmUoZ2xvYiwgb3B0aW9uczgsIGZhbHNlLCB0cnVlKTtcbiAgICAgIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7XG4gICAgICBkZWxldGUgcmVnZXguc3RhdGU7XG4gICAgICBsZXQgaXNJZ25vcmVkMiA9ICgpID0+IGZhbHNlO1xuICAgICAgaWYgKG9wdHMuaWdub3JlKSB7XG4gICAgICAgIGNvbnN0IGlnbm9yZU9wdHMgPSB7IC4uLm9wdGlvbnM4LCBpZ25vcmU6IG51bGwsIG9uTWF0Y2g6IG51bGwsIG9uUmVzdWx0OiBudWxsIH07XG4gICAgICAgIGlzSWdub3JlZDIgPSBwaWNvbWF0Y2gob3B0cy5pZ25vcmUsIGlnbm9yZU9wdHMsIHJldHVyblN0YXRlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1hdGNoZXIgPSAoaW5wdXQsIHJldHVybk9iamVjdCA9IGZhbHNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNNYXRjaCwgbWF0Y2gsIG91dHB1dCB9ID0gcGljb21hdGNoLnRlc3QoaW5wdXQsIHJlZ2V4LCBvcHRpb25zOCwgeyBnbG9iLCBwb3NpeCB9KTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0geyBnbG9iLCBzdGF0ZSwgcmVnZXgsIHBvc2l4LCBpbnB1dCwgb3V0cHV0LCBtYXRjaCwgaXNNYXRjaCB9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdHMub25SZXN1bHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIG9wdHMub25SZXN1bHQocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNYXRjaCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNJZ25vcmVkMihpbnB1dCkpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIG9wdHMub25JZ25vcmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgb3B0cy5vbklnbm9yZShyZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IHRydWU7XG4gICAgICB9O1xuICAgICAgaWYgKHJldHVyblN0YXRlKSB7XG4gICAgICAgIG1hdGNoZXIuc3RhdGUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaGVyO1xuICAgIH07XG4gICAgcGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zOCwgeyBnbG9iLCBwb3NpeCB9ID0ge30pID0+IHtcbiAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0ID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBvdXRwdXQ6IFwiXCIgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zOCB8fCB7fTtcbiAgICAgIGNvbnN0IGZvcm1hdDMgPSBvcHRzLmZvcm1hdCB8fCAocG9zaXggPyB1dGlscy50b1Bvc2l4U2xhc2hlcyA6IG51bGwpO1xuICAgICAgbGV0IG1hdGNoID0gaW5wdXQgPT09IGdsb2I7XG4gICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggJiYgZm9ybWF0MyA/IGZvcm1hdDMoaW5wdXQpIDogaW5wdXQ7XG4gICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7XG4gICAgICAgIG91dHB1dCA9IGZvcm1hdDMgPyBmb3JtYXQzKGlucHV0KSA6IGlucHV0O1xuICAgICAgICBtYXRjaCA9IG91dHB1dCA9PT0gZ2xvYjtcbiAgICAgIH1cbiAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UgfHwgb3B0cy5jYXB0dXJlID09PSB0cnVlKSB7XG4gICAgICAgIGlmIChvcHRzLm1hdGNoQmFzZSA9PT0gdHJ1ZSB8fCBvcHRzLmJhc2VuYW1lID09PSB0cnVlKSB7XG4gICAgICAgICAgbWF0Y2ggPSBwaWNvbWF0Y2gubWF0Y2hCYXNlKGlucHV0LCByZWdleCwgb3B0aW9uczgsIHBvc2l4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXRjaCA9IHJlZ2V4LmV4ZWMob3V0cHV0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgaXNNYXRjaDogQm9vbGVhbihtYXRjaCksIG1hdGNoLCBvdXRwdXQgfTtcbiAgICB9O1xuICAgIHBpY29tYXRjaC5tYXRjaEJhc2UgPSAoaW5wdXQsIGdsb2IsIG9wdGlvbnM4LCBwb3NpeCA9IHV0aWxzLmlzV2luZG93cyhvcHRpb25zOCkpID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gZ2xvYiBpbnN0YW5jZW9mIFJlZ0V4cCA/IGdsb2IgOiBwaWNvbWF0Y2gubWFrZVJlKGdsb2IsIG9wdGlvbnM4KTtcbiAgICAgIHJldHVybiByZWdleC50ZXN0KHBhdGg5LmJhc2VuYW1lKGlucHV0KSk7XG4gICAgfTtcbiAgICBwaWNvbWF0Y2guaXNNYXRjaCA9IChzdHIsIHBhdHRlcm5zLCBvcHRpb25zOCkgPT4gcGljb21hdGNoKHBhdHRlcm5zLCBvcHRpb25zOCkoc3RyKTtcbiAgICBwaWNvbWF0Y2gucGFyc2UgPSAocGF0dGVybiwgb3B0aW9uczgpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKVxuICAgICAgICByZXR1cm4gcGF0dGVybi5tYXAoKHApID0+IHBpY29tYXRjaC5wYXJzZShwLCBvcHRpb25zOCkpO1xuICAgICAgcmV0dXJuIHBhcnNlMyhwYXR0ZXJuLCB7IC4uLm9wdGlvbnM4LCBmYXN0cGF0aHM6IGZhbHNlIH0pO1xuICAgIH07XG4gICAgcGljb21hdGNoLnNjYW4gPSAoaW5wdXQsIG9wdGlvbnM4KSA9PiBzY2FuKGlucHV0LCBvcHRpb25zOCk7XG4gICAgcGljb21hdGNoLmNvbXBpbGVSZSA9IChzdGF0ZSwgb3B0aW9uczgsIHJldHVybk91dHB1dCA9IGZhbHNlLCByZXR1cm5TdGF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICBpZiAocmV0dXJuT3V0cHV0ID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZS5vdXRwdXQ7XG4gICAgICB9XG4gICAgICBjb25zdCBvcHRzID0gb3B0aW9uczggfHwge307XG4gICAgICBjb25zdCBwcmVwZW5kID0gb3B0cy5jb250YWlucyA/IFwiXCIgOiBcIl5cIjtcbiAgICAgIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyBcIlwiIDogXCIkXCI7XG4gICAgICBsZXQgc291cmNlID0gYCR7cHJlcGVuZH0oPzoke3N0YXRlLm91dHB1dH0pJHthcHBlbmR9YDtcbiAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7XG4gICAgICAgIHNvdXJjZSA9IGBeKD8hJHtzb3VyY2V9KS4qJGA7XG4gICAgICB9XG4gICAgICBjb25zdCByZWdleCA9IHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZSwgb3B0aW9uczgpO1xuICAgICAgaWYgKHJldHVyblN0YXRlID09PSB0cnVlKSB7XG4gICAgICAgIHJlZ2V4LnN0YXRlID0gc3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVnZXg7XG4gICAgfTtcbiAgICBwaWNvbWF0Y2gubWFrZVJlID0gKGlucHV0LCBvcHRpb25zOCA9IHt9LCByZXR1cm5PdXRwdXQgPSBmYWxzZSwgcmV0dXJuU3RhdGUgPSBmYWxzZSkgPT4ge1xuICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIGxldCBwYXJzZWQgPSB7IG5lZ2F0ZWQ6IGZhbHNlLCBmYXN0cGF0aHM6IHRydWUgfTtcbiAgICAgIGlmIChvcHRpb25zOC5mYXN0cGF0aHMgIT09IGZhbHNlICYmIChpbnB1dFswXSA9PT0gXCIuXCIgfHwgaW5wdXRbMF0gPT09IFwiKlwiKSkge1xuICAgICAgICBwYXJzZWQub3V0cHV0ID0gcGFyc2UzLmZhc3RwYXRocyhpbnB1dCwgb3B0aW9uczgpO1xuICAgICAgfVxuICAgICAgaWYgKCFwYXJzZWQub3V0cHV0KSB7XG4gICAgICAgIHBhcnNlZCA9IHBhcnNlMyhpbnB1dCwgb3B0aW9uczgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBpY29tYXRjaC5jb21waWxlUmUocGFyc2VkLCBvcHRpb25zOCwgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7XG4gICAgfTtcbiAgICBwaWNvbWF0Y2gudG9SZWdleCA9IChzb3VyY2UsIG9wdGlvbnM4KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvcHRzID0gb3B0aW9uczggfHwge307XG4gICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHNvdXJjZSwgb3B0cy5mbGFncyB8fCAob3B0cy5ub2Nhc2UgPyBcImlcIiA6IFwiXCIpKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAob3B0aW9uczggJiYgb3B0aW9uczguZGVidWcgPT09IHRydWUpXG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICByZXR1cm4gLyReLztcbiAgICAgIH1cbiAgICB9O1xuICAgIHBpY29tYXRjaC5jb25zdGFudHMgPSBjb25zdGFudHM7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBwaWNvbWF0Y2g7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGljb21hdGNoL2luZGV4LmpzXG52YXIgcmVxdWlyZV9waWNvbWF0Y2gyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZV9waWNvbWF0Y2goKTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9taWNyb21hdGNoL2luZGV4LmpzXG52YXIgcmVxdWlyZV9taWNyb21hdGNoID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21pY3JvbWF0Y2gvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdXRpbCA9IF9fcmVxdWlyZShcInV0aWxcIik7XG4gICAgdmFyIGJyYWNlcyA9IHJlcXVpcmVfYnJhY2VzKCk7XG4gICAgdmFyIHBpY29tYXRjaCA9IHJlcXVpcmVfcGljb21hdGNoMigpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMyKCk7XG4gICAgdmFyIGlzRW1wdHlTdHJpbmcgPSAodmFsKSA9PiB2YWwgPT09IFwiXCIgfHwgdmFsID09PSBcIi4vXCI7XG4gICAgdmFyIG1pY3JvbWF0Y2gyID0gKGxpc3QsIHBhdHRlcm5zLCBvcHRpb25zOCkgPT4ge1xuICAgICAgcGF0dGVybnMgPSBbXS5jb25jYXQocGF0dGVybnMpO1xuICAgICAgbGlzdCA9IFtdLmNvbmNhdChsaXN0KTtcbiAgICAgIGxldCBvbWl0MiA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgICBsZXQga2VlcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gICAgICBsZXQgaXRlbXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICAgICAgbGV0IG5lZ2F0aXZlcyA9IDA7XG4gICAgICBsZXQgb25SZXN1bHQgPSAoc3RhdGUpID0+IHtcbiAgICAgICAgaXRlbXMuYWRkKHN0YXRlLm91dHB1dCk7XG4gICAgICAgIGlmIChvcHRpb25zOCAmJiBvcHRpb25zOC5vblJlc3VsdCkge1xuICAgICAgICAgIG9wdGlvbnM4Lm9uUmVzdWx0KHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0dGVybnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGlzTWF0Y2ggPSBwaWNvbWF0Y2goU3RyaW5nKHBhdHRlcm5zW2ldKSwgeyAuLi5vcHRpb25zOCwgb25SZXN1bHQgfSwgdHJ1ZSk7XG4gICAgICAgIGxldCBuZWdhdGVkID0gaXNNYXRjaC5zdGF0ZS5uZWdhdGVkIHx8IGlzTWF0Y2guc3RhdGUubmVnYXRlZEV4dGdsb2I7XG4gICAgICAgIGlmIChuZWdhdGVkKVxuICAgICAgICAgIG5lZ2F0aXZlcysrO1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGxpc3QpIHtcbiAgICAgICAgICBsZXQgbWF0Y2hlZCA9IGlzTWF0Y2goaXRlbSwgdHJ1ZSk7XG4gICAgICAgICAgbGV0IG1hdGNoID0gbmVnYXRlZCA/ICFtYXRjaGVkLmlzTWF0Y2ggOiBtYXRjaGVkLmlzTWF0Y2g7XG4gICAgICAgICAgaWYgKCFtYXRjaClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICAgICAgICBvbWl0Mi5hZGQobWF0Y2hlZC5vdXRwdXQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbWl0Mi5kZWxldGUobWF0Y2hlZC5vdXRwdXQpO1xuICAgICAgICAgICAga2VlcC5hZGQobWF0Y2hlZC5vdXRwdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IHJlc3VsdCA9IG5lZ2F0aXZlcyA9PT0gcGF0dGVybnMubGVuZ3RoID8gWy4uLml0ZW1zXSA6IFsuLi5rZWVwXTtcbiAgICAgIGxldCBtYXRjaGVzID0gcmVzdWx0LmZpbHRlcigoaXRlbSkgPT4gIW9taXQyLmhhcyhpdGVtKSk7XG4gICAgICBpZiAob3B0aW9uczggJiYgbWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKG9wdGlvbnM4LmZhaWxnbG9iID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGVzIGZvdW5kIGZvciBcIiR7cGF0dGVybnMuam9pbihcIiwgXCIpfVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnM4Lm5vbnVsbCA9PT0gdHJ1ZSB8fCBvcHRpb25zOC5udWxsZ2xvYiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zOC51bmVzY2FwZSA/IHBhdHRlcm5zLm1hcCgocCkgPT4gcC5yZXBsYWNlKC9cXFxcL2csIFwiXCIpKSA6IHBhdHRlcm5zO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2hlcztcbiAgICB9O1xuICAgIG1pY3JvbWF0Y2gyLm1hdGNoID0gbWljcm9tYXRjaDI7XG4gICAgbWljcm9tYXRjaDIubWF0Y2hlciA9IChwYXR0ZXJuLCBvcHRpb25zOCkgPT4gcGljb21hdGNoKHBhdHRlcm4sIG9wdGlvbnM4KTtcbiAgICBtaWNyb21hdGNoMi5pc01hdGNoID0gKHN0ciwgcGF0dGVybnMsIG9wdGlvbnM4KSA9PiBwaWNvbWF0Y2gocGF0dGVybnMsIG9wdGlvbnM4KShzdHIpO1xuICAgIG1pY3JvbWF0Y2gyLmFueSA9IG1pY3JvbWF0Y2gyLmlzTWF0Y2g7XG4gICAgbWljcm9tYXRjaDIubm90ID0gKGxpc3QsIHBhdHRlcm5zLCBvcHRpb25zOCA9IHt9KSA9PiB7XG4gICAgICBwYXR0ZXJucyA9IFtdLmNvbmNhdChwYXR0ZXJucykubWFwKFN0cmluZyk7XG4gICAgICBsZXQgcmVzdWx0ID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICAgIGxldCBpdGVtcyA9IFtdO1xuICAgICAgbGV0IG9uUmVzdWx0ID0gKHN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zOC5vblJlc3VsdClcbiAgICAgICAgICBvcHRpb25zOC5vblJlc3VsdChzdGF0ZSk7XG4gICAgICAgIGl0ZW1zLnB1c2goc3RhdGUub3V0cHV0KTtcbiAgICAgIH07XG4gICAgICBsZXQgbWF0Y2hlcyA9IG5ldyBTZXQobWljcm9tYXRjaDIobGlzdCwgcGF0dGVybnMsIHsgLi4ub3B0aW9uczgsIG9uUmVzdWx0IH0pKTtcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgaWYgKCFtYXRjaGVzLmhhcyhpdGVtKSkge1xuICAgICAgICAgIHJlc3VsdC5hZGQoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4ucmVzdWx0XTtcbiAgICB9O1xuICAgIG1pY3JvbWF0Y2gyLmNvbnRhaW5zID0gKHN0ciwgcGF0dGVybiwgb3B0aW9uczgpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgc3RyaW5nOiBcIiR7dXRpbC5pbnNwZWN0KHN0cil9XCJgKTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XG4gICAgICAgIHJldHVybiBwYXR0ZXJuLnNvbWUoKHApID0+IG1pY3JvbWF0Y2gyLmNvbnRhaW5zKHN0ciwgcCwgb3B0aW9uczgpKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAoaXNFbXB0eVN0cmluZyhzdHIpIHx8IGlzRW1wdHlTdHJpbmcocGF0dGVybikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0ci5pbmNsdWRlcyhwYXR0ZXJuKSB8fCBzdHIuc3RhcnRzV2l0aChcIi4vXCIpICYmIHN0ci5zbGljZSgyKS5pbmNsdWRlcyhwYXR0ZXJuKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbWljcm9tYXRjaDIuaXNNYXRjaChzdHIsIHBhdHRlcm4sIHsgLi4ub3B0aW9uczgsIGNvbnRhaW5zOiB0cnVlIH0pO1xuICAgIH07XG4gICAgbWljcm9tYXRjaDIubWF0Y2hLZXlzID0gKG9iaiwgcGF0dGVybnMsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAoIXV0aWxzLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3RcIik7XG4gICAgICB9XG4gICAgICBsZXQga2V5cyA9IG1pY3JvbWF0Y2gyKE9iamVjdC5rZXlzKG9iaiksIHBhdHRlcm5zLCBvcHRpb25zOCk7XG4gICAgICBsZXQgcmVzID0ge307XG4gICAgICBmb3IgKGxldCBrZXkgb2Yga2V5cylcbiAgICAgICAgcmVzW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBtaWNyb21hdGNoMi5zb21lID0gKGxpc3QsIHBhdHRlcm5zLCBvcHRpb25zOCkgPT4ge1xuICAgICAgbGV0IGl0ZW1zID0gW10uY29uY2F0KGxpc3QpO1xuICAgICAgZm9yIChsZXQgcGF0dGVybiBvZiBbXS5jb25jYXQocGF0dGVybnMpKSB7XG4gICAgICAgIGxldCBpc01hdGNoID0gcGljb21hdGNoKFN0cmluZyhwYXR0ZXJuKSwgb3B0aW9uczgpO1xuICAgICAgICBpZiAoaXRlbXMuc29tZSgoaXRlbSkgPT4gaXNNYXRjaChpdGVtKSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgbWljcm9tYXRjaDIuZXZlcnkgPSAobGlzdCwgcGF0dGVybnMsIG9wdGlvbnM4KSA9PiB7XG4gICAgICBsZXQgaXRlbXMgPSBbXS5jb25jYXQobGlzdCk7XG4gICAgICBmb3IgKGxldCBwYXR0ZXJuIG9mIFtdLmNvbmNhdChwYXR0ZXJucykpIHtcbiAgICAgICAgbGV0IGlzTWF0Y2ggPSBwaWNvbWF0Y2goU3RyaW5nKHBhdHRlcm4pLCBvcHRpb25zOCk7XG4gICAgICAgIGlmICghaXRlbXMuZXZlcnkoKGl0ZW0pID0+IGlzTWF0Y2goaXRlbSkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIG1pY3JvbWF0Y2gyLmFsbCA9IChzdHIsIHBhdHRlcm5zLCBvcHRpb25zOCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBzdHJpbmc6IFwiJHt1dGlsLmluc3BlY3Qoc3RyKX1cImApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdLmNvbmNhdChwYXR0ZXJucykuZXZlcnkoKHApID0+IHBpY29tYXRjaChwLCBvcHRpb25zOCkoc3RyKSk7XG4gICAgfTtcbiAgICBtaWNyb21hdGNoMi5jYXB0dXJlID0gKGdsb2IsIGlucHV0LCBvcHRpb25zOCkgPT4ge1xuICAgICAgbGV0IHBvc2l4ID0gdXRpbHMuaXNXaW5kb3dzKG9wdGlvbnM4KTtcbiAgICAgIGxldCByZWdleCA9IHBpY29tYXRjaC5tYWtlUmUoU3RyaW5nKGdsb2IpLCB7IC4uLm9wdGlvbnM4LCBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgbGV0IG1hdGNoID0gcmVnZXguZXhlYyhwb3NpeCA/IHV0aWxzLnRvUG9zaXhTbGFzaGVzKGlucHV0KSA6IGlucHV0KTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICByZXR1cm4gbWF0Y2guc2xpY2UoMSkubWFwKCh2KSA9PiB2ID09PSB2b2lkIDAgPyBcIlwiIDogdik7XG4gICAgICB9XG4gICAgfTtcbiAgICBtaWNyb21hdGNoMi5tYWtlUmUgPSAoLi4uYXJncykgPT4gcGljb21hdGNoLm1ha2VSZSguLi5hcmdzKTtcbiAgICBtaWNyb21hdGNoMi5zY2FuID0gKC4uLmFyZ3MpID0+IHBpY29tYXRjaC5zY2FuKC4uLmFyZ3MpO1xuICAgIG1pY3JvbWF0Y2gyLnBhcnNlID0gKHBhdHRlcm5zLCBvcHRpb25zOCkgPT4ge1xuICAgICAgbGV0IHJlcyA9IFtdO1xuICAgICAgZm9yIChsZXQgcGF0dGVybiBvZiBbXS5jb25jYXQocGF0dGVybnMgfHwgW10pKSB7XG4gICAgICAgIGZvciAobGV0IHN0ciBvZiBicmFjZXMoU3RyaW5nKHBhdHRlcm4pLCBvcHRpb25zOCkpIHtcbiAgICAgICAgICByZXMucHVzaChwaWNvbWF0Y2gucGFyc2Uoc3RyLCBvcHRpb25zOCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgbWljcm9tYXRjaDIuYnJhY2VzID0gKHBhdHRlcm4sIG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHBhdHRlcm4gIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtcbiAgICAgIGlmIChvcHRpb25zOCAmJiBvcHRpb25zOC5ub2JyYWNlID09PSB0cnVlIHx8ICEvXFx7LipcXH0vLnRlc3QocGF0dGVybikpIHtcbiAgICAgICAgcmV0dXJuIFtwYXR0ZXJuXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBicmFjZXMocGF0dGVybiwgb3B0aW9uczgpO1xuICAgIH07XG4gICAgbWljcm9tYXRjaDIuYnJhY2VFeHBhbmQgPSAocGF0dGVybiwgb3B0aW9uczgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcGF0dGVybiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO1xuICAgICAgcmV0dXJuIG1pY3JvbWF0Y2gyLmJyYWNlcyhwYXR0ZXJuLCB7IC4uLm9wdGlvbnM4LCBleHBhbmQ6IHRydWUgfSk7XG4gICAgfTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IG1pY3JvbWF0Y2gyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvdXRpbHMvcGF0dGVybi5qc1xudmFyIHJlcXVpcmVfcGF0dGVybiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3V0aWxzL3BhdHRlcm4uanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMucmVtb3ZlRHVwbGljYXRlU2xhc2hlcyA9IGV4cG9ydHMubWF0Y2hBbnkgPSBleHBvcnRzLmNvbnZlcnRQYXR0ZXJuc1RvUmUgPSBleHBvcnRzLm1ha2VSZSA9IGV4cG9ydHMuZ2V0UGF0dGVyblBhcnRzID0gZXhwb3J0cy5leHBhbmRCcmFjZUV4cGFuc2lvbiA9IGV4cG9ydHMuZXhwYW5kUGF0dGVybnNXaXRoQnJhY2VFeHBhbnNpb24gPSBleHBvcnRzLmlzQWZmZWN0RGVwdGhPZlJlYWRpbmdQYXR0ZXJuID0gZXhwb3J0cy5lbmRzV2l0aFNsYXNoR2xvYlN0YXIgPSBleHBvcnRzLmhhc0dsb2JTdGFyID0gZXhwb3J0cy5nZXRCYXNlRGlyZWN0b3J5ID0gZXhwb3J0cy5pc1BhdHRlcm5SZWxhdGVkVG9QYXJlbnREaXJlY3RvcnkgPSBleHBvcnRzLmdldFBhdHRlcm5zT3V0c2lkZUN1cnJlbnREaXJlY3RvcnkgPSBleHBvcnRzLmdldFBhdHRlcm5zSW5zaWRlQ3VycmVudERpcmVjdG9yeSA9IGV4cG9ydHMuZ2V0UG9zaXRpdmVQYXR0ZXJucyA9IGV4cG9ydHMuZ2V0TmVnYXRpdmVQYXR0ZXJucyA9IGV4cG9ydHMuaXNQb3NpdGl2ZVBhdHRlcm4gPSBleHBvcnRzLmlzTmVnYXRpdmVQYXR0ZXJuID0gZXhwb3J0cy5jb252ZXJ0VG9OZWdhdGl2ZVBhdHRlcm4gPSBleHBvcnRzLmNvbnZlcnRUb1Bvc2l0aXZlUGF0dGVybiA9IGV4cG9ydHMuaXNEeW5hbWljUGF0dGVybiA9IGV4cG9ydHMuaXNTdGF0aWNQYXR0ZXJuID0gdm9pZCAwO1xuICAgIHZhciBwYXRoOSA9IF9fcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIGdsb2JQYXJlbnQgPSByZXF1aXJlX2dsb2JfcGFyZW50KCk7XG4gICAgdmFyIG1pY3JvbWF0Y2gyID0gcmVxdWlyZV9taWNyb21hdGNoKCk7XG4gICAgdmFyIEdMT0JTVEFSID0gXCIqKlwiO1xuICAgIHZhciBFU0NBUEVfU1lNQk9MID0gXCJcXFxcXCI7XG4gICAgdmFyIENPTU1PTl9HTE9CX1NZTUJPTFNfUkUgPSAvWyo/XXxeIS87XG4gICAgdmFyIFJFR0VYX0NIQVJBQ1RFUl9DTEFTU19TWU1CT0xTX1JFID0gL1xcW1teW10qXS87XG4gICAgdmFyIFJFR0VYX0dST1VQX1NZTUJPTFNfUkUgPSAvKD86XnxbXiEqKz9AXSlcXChbXihdKlxcfFtefF0qXFwpLztcbiAgICB2YXIgR0xPQl9FWFRFTlNJT05fU1lNQk9MU19SRSA9IC9bISorP0BdXFwoW14oXSpcXCkvO1xuICAgIHZhciBCUkFDRV9FWFBBTlNJT05fU0VQQVJBVE9SU19SRSA9IC8sfFxcLlxcLi87XG4gICAgdmFyIERPVUJMRV9TTEFTSF9SRSA9IC8oPyFeKVxcL3syLH0vZztcbiAgICBmdW5jdGlvbiBpc1N0YXRpY1BhdHRlcm4ocGF0dGVybiwgb3B0aW9uczggPSB7fSkge1xuICAgICAgcmV0dXJuICFpc0R5bmFtaWNQYXR0ZXJuKHBhdHRlcm4sIG9wdGlvbnM4KTtcbiAgICB9XG4gICAgZXhwb3J0cy5pc1N0YXRpY1BhdHRlcm4gPSBpc1N0YXRpY1BhdHRlcm47XG4gICAgZnVuY3Rpb24gaXNEeW5hbWljUGF0dGVybihwYXR0ZXJuLCBvcHRpb25zOCA9IHt9KSB7XG4gICAgICBpZiAocGF0dGVybiA9PT0gXCJcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uczguY2FzZVNlbnNpdGl2ZU1hdGNoID09PSBmYWxzZSB8fCBwYXR0ZXJuLmluY2x1ZGVzKEVTQ0FQRV9TWU1CT0wpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKENPTU1PTl9HTE9CX1NZTUJPTFNfUkUudGVzdChwYXR0ZXJuKSB8fCBSRUdFWF9DSEFSQUNURVJfQ0xBU1NfU1lNQk9MU19SRS50ZXN0KHBhdHRlcm4pIHx8IFJFR0VYX0dST1VQX1NZTUJPTFNfUkUudGVzdChwYXR0ZXJuKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zOC5leHRnbG9iICE9PSBmYWxzZSAmJiBHTE9CX0VYVEVOU0lPTl9TWU1CT0xTX1JFLnRlc3QocGF0dGVybikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uczguYnJhY2VFeHBhbnNpb24gIT09IGZhbHNlICYmIGhhc0JyYWNlRXhwYW5zaW9uKHBhdHRlcm4pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBleHBvcnRzLmlzRHluYW1pY1BhdHRlcm4gPSBpc0R5bmFtaWNQYXR0ZXJuO1xuICAgIGZ1bmN0aW9uIGhhc0JyYWNlRXhwYW5zaW9uKHBhdHRlcm4pIHtcbiAgICAgIGNvbnN0IG9wZW5pbmdCcmFjZUluZGV4ID0gcGF0dGVybi5pbmRleE9mKFwie1wiKTtcbiAgICAgIGlmIChvcGVuaW5nQnJhY2VJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3QgY2xvc2luZ0JyYWNlSW5kZXggPSBwYXR0ZXJuLmluZGV4T2YoXCJ9XCIsIG9wZW5pbmdCcmFjZUluZGV4ICsgMSk7XG4gICAgICBpZiAoY2xvc2luZ0JyYWNlSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJyYWNlQ29udGVudCA9IHBhdHRlcm4uc2xpY2Uob3BlbmluZ0JyYWNlSW5kZXgsIGNsb3NpbmdCcmFjZUluZGV4KTtcbiAgICAgIHJldHVybiBCUkFDRV9FWFBBTlNJT05fU0VQQVJBVE9SU19SRS50ZXN0KGJyYWNlQ29udGVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnZlcnRUb1Bvc2l0aXZlUGF0dGVybihwYXR0ZXJuKSB7XG4gICAgICByZXR1cm4gaXNOZWdhdGl2ZVBhdHRlcm4ocGF0dGVybikgPyBwYXR0ZXJuLnNsaWNlKDEpIDogcGF0dGVybjtcbiAgICB9XG4gICAgZXhwb3J0cy5jb252ZXJ0VG9Qb3NpdGl2ZVBhdHRlcm4gPSBjb252ZXJ0VG9Qb3NpdGl2ZVBhdHRlcm47XG4gICAgZnVuY3Rpb24gY29udmVydFRvTmVnYXRpdmVQYXR0ZXJuKHBhdHRlcm4pIHtcbiAgICAgIHJldHVybiBcIiFcIiArIHBhdHRlcm47XG4gICAgfVxuICAgIGV4cG9ydHMuY29udmVydFRvTmVnYXRpdmVQYXR0ZXJuID0gY29udmVydFRvTmVnYXRpdmVQYXR0ZXJuO1xuICAgIGZ1bmN0aW9uIGlzTmVnYXRpdmVQYXR0ZXJuKHBhdHRlcm4pIHtcbiAgICAgIHJldHVybiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIhXCIpICYmIHBhdHRlcm5bMV0gIT09IFwiKFwiO1xuICAgIH1cbiAgICBleHBvcnRzLmlzTmVnYXRpdmVQYXR0ZXJuID0gaXNOZWdhdGl2ZVBhdHRlcm47XG4gICAgZnVuY3Rpb24gaXNQb3NpdGl2ZVBhdHRlcm4ocGF0dGVybikge1xuICAgICAgcmV0dXJuICFpc05lZ2F0aXZlUGF0dGVybihwYXR0ZXJuKTtcbiAgICB9XG4gICAgZXhwb3J0cy5pc1Bvc2l0aXZlUGF0dGVybiA9IGlzUG9zaXRpdmVQYXR0ZXJuO1xuICAgIGZ1bmN0aW9uIGdldE5lZ2F0aXZlUGF0dGVybnMocGF0dGVybnMpIHtcbiAgICAgIHJldHVybiBwYXR0ZXJucy5maWx0ZXIoaXNOZWdhdGl2ZVBhdHRlcm4pO1xuICAgIH1cbiAgICBleHBvcnRzLmdldE5lZ2F0aXZlUGF0dGVybnMgPSBnZXROZWdhdGl2ZVBhdHRlcm5zO1xuICAgIGZ1bmN0aW9uIGdldFBvc2l0aXZlUGF0dGVybnMocGF0dGVybnMpIHtcbiAgICAgIHJldHVybiBwYXR0ZXJucy5maWx0ZXIoaXNQb3NpdGl2ZVBhdHRlcm4pO1xuICAgIH1cbiAgICBleHBvcnRzLmdldFBvc2l0aXZlUGF0dGVybnMgPSBnZXRQb3NpdGl2ZVBhdHRlcm5zO1xuICAgIGZ1bmN0aW9uIGdldFBhdHRlcm5zSW5zaWRlQ3VycmVudERpcmVjdG9yeShwYXR0ZXJucykge1xuICAgICAgcmV0dXJuIHBhdHRlcm5zLmZpbHRlcigocGF0dGVybikgPT4gIWlzUGF0dGVyblJlbGF0ZWRUb1BhcmVudERpcmVjdG9yeShwYXR0ZXJuKSk7XG4gICAgfVxuICAgIGV4cG9ydHMuZ2V0UGF0dGVybnNJbnNpZGVDdXJyZW50RGlyZWN0b3J5ID0gZ2V0UGF0dGVybnNJbnNpZGVDdXJyZW50RGlyZWN0b3J5O1xuICAgIGZ1bmN0aW9uIGdldFBhdHRlcm5zT3V0c2lkZUN1cnJlbnREaXJlY3RvcnkocGF0dGVybnMpIHtcbiAgICAgIHJldHVybiBwYXR0ZXJucy5maWx0ZXIoaXNQYXR0ZXJuUmVsYXRlZFRvUGFyZW50RGlyZWN0b3J5KTtcbiAgICB9XG4gICAgZXhwb3J0cy5nZXRQYXR0ZXJuc091dHNpZGVDdXJyZW50RGlyZWN0b3J5ID0gZ2V0UGF0dGVybnNPdXRzaWRlQ3VycmVudERpcmVjdG9yeTtcbiAgICBmdW5jdGlvbiBpc1BhdHRlcm5SZWxhdGVkVG9QYXJlbnREaXJlY3RvcnkocGF0dGVybikge1xuICAgICAgcmV0dXJuIHBhdHRlcm4uc3RhcnRzV2l0aChcIi4uXCIpIHx8IHBhdHRlcm4uc3RhcnRzV2l0aChcIi4vLi5cIik7XG4gICAgfVxuICAgIGV4cG9ydHMuaXNQYXR0ZXJuUmVsYXRlZFRvUGFyZW50RGlyZWN0b3J5ID0gaXNQYXR0ZXJuUmVsYXRlZFRvUGFyZW50RGlyZWN0b3J5O1xuICAgIGZ1bmN0aW9uIGdldEJhc2VEaXJlY3RvcnkocGF0dGVybikge1xuICAgICAgcmV0dXJuIGdsb2JQYXJlbnQocGF0dGVybiwgeyBmbGlwQmFja3NsYXNoZXM6IGZhbHNlIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLmdldEJhc2VEaXJlY3RvcnkgPSBnZXRCYXNlRGlyZWN0b3J5O1xuICAgIGZ1bmN0aW9uIGhhc0dsb2JTdGFyKHBhdHRlcm4pIHtcbiAgICAgIHJldHVybiBwYXR0ZXJuLmluY2x1ZGVzKEdMT0JTVEFSKTtcbiAgICB9XG4gICAgZXhwb3J0cy5oYXNHbG9iU3RhciA9IGhhc0dsb2JTdGFyO1xuICAgIGZ1bmN0aW9uIGVuZHNXaXRoU2xhc2hHbG9iU3RhcihwYXR0ZXJuKSB7XG4gICAgICByZXR1cm4gcGF0dGVybi5lbmRzV2l0aChcIi9cIiArIEdMT0JTVEFSKTtcbiAgICB9XG4gICAgZXhwb3J0cy5lbmRzV2l0aFNsYXNoR2xvYlN0YXIgPSBlbmRzV2l0aFNsYXNoR2xvYlN0YXI7XG4gICAgZnVuY3Rpb24gaXNBZmZlY3REZXB0aE9mUmVhZGluZ1BhdHRlcm4ocGF0dGVybikge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoOS5iYXNlbmFtZShwYXR0ZXJuKTtcbiAgICAgIHJldHVybiBlbmRzV2l0aFNsYXNoR2xvYlN0YXIocGF0dGVybikgfHwgaXNTdGF0aWNQYXR0ZXJuKGJhc2VuYW1lKTtcbiAgICB9XG4gICAgZXhwb3J0cy5pc0FmZmVjdERlcHRoT2ZSZWFkaW5nUGF0dGVybiA9IGlzQWZmZWN0RGVwdGhPZlJlYWRpbmdQYXR0ZXJuO1xuICAgIGZ1bmN0aW9uIGV4cGFuZFBhdHRlcm5zV2l0aEJyYWNlRXhwYW5zaW9uKHBhdHRlcm5zKSB7XG4gICAgICByZXR1cm4gcGF0dGVybnMucmVkdWNlKChjb2xsZWN0aW9uLCBwYXR0ZXJuKSA9PiB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmNvbmNhdChleHBhbmRCcmFjZUV4cGFuc2lvbihwYXR0ZXJuKSk7XG4gICAgICB9LCBbXSk7XG4gICAgfVxuICAgIGV4cG9ydHMuZXhwYW5kUGF0dGVybnNXaXRoQnJhY2VFeHBhbnNpb24gPSBleHBhbmRQYXR0ZXJuc1dpdGhCcmFjZUV4cGFuc2lvbjtcbiAgICBmdW5jdGlvbiBleHBhbmRCcmFjZUV4cGFuc2lvbihwYXR0ZXJuKSB7XG4gICAgICBjb25zdCBwYXR0ZXJucyA9IG1pY3JvbWF0Y2gyLmJyYWNlcyhwYXR0ZXJuLCB7IGV4cGFuZDogdHJ1ZSwgbm9kdXBlczogdHJ1ZSB9KTtcbiAgICAgIHBhdHRlcm5zLnNvcnQoKGEsIGIpID0+IGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xuICAgICAgcmV0dXJuIHBhdHRlcm5zLmZpbHRlcigocGF0dGVybjIpID0+IHBhdHRlcm4yICE9PSBcIlwiKTtcbiAgICB9XG4gICAgZXhwb3J0cy5leHBhbmRCcmFjZUV4cGFuc2lvbiA9IGV4cGFuZEJyYWNlRXhwYW5zaW9uO1xuICAgIGZ1bmN0aW9uIGdldFBhdHRlcm5QYXJ0cyhwYXR0ZXJuLCBvcHRpb25zOCkge1xuICAgICAgbGV0IHsgcGFydHMgfSA9IG1pY3JvbWF0Y2gyLnNjYW4ocGF0dGVybiwgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zOCksIHsgcGFydHM6IHRydWUgfSkpO1xuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBwYXJ0cyA9IFtwYXR0ZXJuXTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJ0c1swXS5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLnNsaWNlKDEpO1xuICAgICAgICBwYXJ0cy51bnNoaWZ0KFwiXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnRzO1xuICAgIH1cbiAgICBleHBvcnRzLmdldFBhdHRlcm5QYXJ0cyA9IGdldFBhdHRlcm5QYXJ0cztcbiAgICBmdW5jdGlvbiBtYWtlUmUocGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgIHJldHVybiBtaWNyb21hdGNoMi5tYWtlUmUocGF0dGVybiwgb3B0aW9uczgpO1xuICAgIH1cbiAgICBleHBvcnRzLm1ha2VSZSA9IG1ha2VSZTtcbiAgICBmdW5jdGlvbiBjb252ZXJ0UGF0dGVybnNUb1JlKHBhdHRlcm5zLCBvcHRpb25zOCkge1xuICAgICAgcmV0dXJuIHBhdHRlcm5zLm1hcCgocGF0dGVybikgPT4gbWFrZVJlKHBhdHRlcm4sIG9wdGlvbnM4KSk7XG4gICAgfVxuICAgIGV4cG9ydHMuY29udmVydFBhdHRlcm5zVG9SZSA9IGNvbnZlcnRQYXR0ZXJuc1RvUmU7XG4gICAgZnVuY3Rpb24gbWF0Y2hBbnkoZW50cnksIHBhdHRlcm5zUmUpIHtcbiAgICAgIHJldHVybiBwYXR0ZXJuc1JlLnNvbWUoKHBhdHRlcm5SZSkgPT4gcGF0dGVyblJlLnRlc3QoZW50cnkpKTtcbiAgICB9XG4gICAgZXhwb3J0cy5tYXRjaEFueSA9IG1hdGNoQW55O1xuICAgIGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZVNsYXNoZXMocGF0dGVybikge1xuICAgICAgcmV0dXJuIHBhdHRlcm4ucmVwbGFjZShET1VCTEVfU0xBU0hfUkUsIFwiL1wiKTtcbiAgICB9XG4gICAgZXhwb3J0cy5yZW1vdmVEdXBsaWNhdGVTbGFzaGVzID0gcmVtb3ZlRHVwbGljYXRlU2xhc2hlcztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9tZXJnZTIvaW5kZXguanNcbnZhciByZXF1aXJlX21lcmdlMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9tZXJnZTIvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgU3RyZWFtID0gX19yZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIHZhciBQYXNzVGhyb3VnaCA9IFN0cmVhbS5QYXNzVGhyb3VnaDtcbiAgICB2YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBtZXJnZTI7XG4gICAgZnVuY3Rpb24gbWVyZ2UyKCkge1xuICAgICAgY29uc3Qgc3RyZWFtc1F1ZXVlID0gW107XG4gICAgICBjb25zdCBhcmdzID0gc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgbGV0IG1lcmdpbmcgPSBmYWxzZTtcbiAgICAgIGxldCBvcHRpb25zOCA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChvcHRpb25zOCAmJiAhQXJyYXkuaXNBcnJheShvcHRpb25zOCkgJiYgb3B0aW9uczgucGlwZSA9PSBudWxsKSB7XG4gICAgICAgIGFyZ3MucG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zOCA9IHt9O1xuICAgICAgfVxuICAgICAgY29uc3QgZG9FbmQgPSBvcHRpb25zOC5lbmQgIT09IGZhbHNlO1xuICAgICAgY29uc3QgZG9QaXBlRXJyb3IgPSBvcHRpb25zOC5waXBlRXJyb3IgPT09IHRydWU7XG4gICAgICBpZiAob3B0aW9uczgub2JqZWN0TW9kZSA9PSBudWxsKSB7XG4gICAgICAgIG9wdGlvbnM4Lm9iamVjdE1vZGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LmhpZ2hXYXRlck1hcmsgPT0gbnVsbCkge1xuICAgICAgICBvcHRpb25zOC5oaWdoV2F0ZXJNYXJrID0gNjQgKiAxMDI0O1xuICAgICAgfVxuICAgICAgY29uc3QgbWVyZ2VkU3RyZWFtID0gUGFzc1Rocm91Z2gob3B0aW9uczgpO1xuICAgICAgZnVuY3Rpb24gYWRkU3RyZWFtKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgc3RyZWFtc1F1ZXVlLnB1c2gocGF1c2VTdHJlYW1zKGFyZ3VtZW50c1tpXSwgb3B0aW9uczgpKTtcbiAgICAgICAgfVxuICAgICAgICBtZXJnZVN0cmVhbSgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG1lcmdlU3RyZWFtKCkge1xuICAgICAgICBpZiAobWVyZ2luZykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBtZXJnaW5nID0gdHJ1ZTtcbiAgICAgICAgbGV0IHN0cmVhbXMgPSBzdHJlYW1zUXVldWUuc2hpZnQoKTtcbiAgICAgICAgaWYgKCFzdHJlYW1zKSB7XG4gICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhlbmRTdHJlYW0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3RyZWFtcykpIHtcbiAgICAgICAgICBzdHJlYW1zID0gW3N0cmVhbXNdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwaXBlc0NvdW50ID0gc3RyZWFtcy5sZW5ndGggKyAxO1xuICAgICAgICBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgICAgIGlmICgtLXBpcGVzQ291bnQgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1lcmdpbmcgPSBmYWxzZTtcbiAgICAgICAgICBtZXJnZVN0cmVhbSgpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHBpcGUoc3RyZWFtKSB7XG4gICAgICAgICAgZnVuY3Rpb24gb25lbmQoKSB7XG4gICAgICAgICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoXCJtZXJnZTJVbnBpcGVFbmRcIiwgb25lbmQpO1xuICAgICAgICAgICAgc3RyZWFtLnJlbW92ZUxpc3RlbmVyKFwiZW5kXCIsIG9uZW5kKTtcbiAgICAgICAgICAgIGlmIChkb1BpcGVFcnJvcikge1xuICAgICAgICAgICAgICBzdHJlYW0ucmVtb3ZlTGlzdGVuZXIoXCJlcnJvclwiLCBvbmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gb25lcnJvcihlcnIpIHtcbiAgICAgICAgICAgIG1lcmdlZFN0cmVhbS5lbWl0KFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0cmVhbS5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJlYW0ub24oXCJtZXJnZTJVbnBpcGVFbmRcIiwgb25lbmQpO1xuICAgICAgICAgIHN0cmVhbS5vbihcImVuZFwiLCBvbmVuZCk7XG4gICAgICAgICAgaWYgKGRvUGlwZUVycm9yKSB7XG4gICAgICAgICAgICBzdHJlYW0ub24oXCJlcnJvclwiLCBvbmVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3RyZWFtLnBpcGUobWVyZ2VkU3RyZWFtLCB7IGVuZDogZmFsc2UgfSk7XG4gICAgICAgICAgc3RyZWFtLnJlc3VtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyZWFtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHBpcGUoc3RyZWFtc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZW5kU3RyZWFtKCkge1xuICAgICAgICBtZXJnaW5nID0gZmFsc2U7XG4gICAgICAgIG1lcmdlZFN0cmVhbS5lbWl0KFwicXVldWVEcmFpblwiKTtcbiAgICAgICAgaWYgKGRvRW5kKSB7XG4gICAgICAgICAgbWVyZ2VkU3RyZWFtLmVuZCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBtZXJnZWRTdHJlYW0uc2V0TWF4TGlzdGVuZXJzKDApO1xuICAgICAgbWVyZ2VkU3RyZWFtLmFkZCA9IGFkZFN0cmVhbTtcbiAgICAgIG1lcmdlZFN0cmVhbS5vbihcInVucGlwZVwiLCBmdW5jdGlvbihzdHJlYW0pIHtcbiAgICAgICAgc3RyZWFtLmVtaXQoXCJtZXJnZTJVbnBpcGVFbmRcIik7XG4gICAgICB9KTtcbiAgICAgIGlmIChhcmdzLmxlbmd0aCkge1xuICAgICAgICBhZGRTdHJlYW0uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkU3RyZWFtO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXVzZVN0cmVhbXMoc3RyZWFtcywgb3B0aW9uczgpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzdHJlYW1zKSkge1xuICAgICAgICBpZiAoIXN0cmVhbXMuX3JlYWRhYmxlU3RhdGUgJiYgc3RyZWFtcy5waXBlKSB7XG4gICAgICAgICAgc3RyZWFtcyA9IHN0cmVhbXMucGlwZShQYXNzVGhyb3VnaChvcHRpb25zOCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc3RyZWFtcy5fcmVhZGFibGVTdGF0ZSB8fCAhc3RyZWFtcy5wYXVzZSB8fCAhc3RyZWFtcy5waXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSByZWFkYWJsZSBzdHJlYW0gY2FuIGJlIG1lcmdlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RyZWFtcy5wYXVzZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHN0cmVhbXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBzdHJlYW1zW2ldID0gcGF1c2VTdHJlYW1zKHN0cmVhbXNbaV0sIG9wdGlvbnM4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmVhbXM7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvdXRpbHMvc3RyZWFtLmpzXG52YXIgcmVxdWlyZV9zdHJlYW0gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC91dGlscy9zdHJlYW0uanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMubWVyZ2UgPSB2b2lkIDA7XG4gICAgdmFyIG1lcmdlMiA9IHJlcXVpcmVfbWVyZ2UyKCk7XG4gICAgZnVuY3Rpb24gbWVyZ2Uoc3RyZWFtcykge1xuICAgICAgY29uc3QgbWVyZ2VkU3RyZWFtID0gbWVyZ2UyKHN0cmVhbXMpO1xuICAgICAgc3RyZWFtcy5mb3JFYWNoKChzdHJlYW0pID0+IHtcbiAgICAgICAgc3RyZWFtLm9uY2UoXCJlcnJvclwiLCAoZXJyb3IpID0+IG1lcmdlZFN0cmVhbS5lbWl0KFwiZXJyb3JcIiwgZXJyb3IpKTtcbiAgICAgIH0pO1xuICAgICAgbWVyZ2VkU3RyZWFtLm9uY2UoXCJjbG9zZVwiLCAoKSA9PiBwcm9wYWdhdGVDbG9zZUV2ZW50VG9Tb3VyY2VzKHN0cmVhbXMpKTtcbiAgICAgIG1lcmdlZFN0cmVhbS5vbmNlKFwiZW5kXCIsICgpID0+IHByb3BhZ2F0ZUNsb3NlRXZlbnRUb1NvdXJjZXMoc3RyZWFtcykpO1xuICAgICAgcmV0dXJuIG1lcmdlZFN0cmVhbTtcbiAgICB9XG4gICAgZXhwb3J0cy5tZXJnZSA9IG1lcmdlO1xuICAgIGZ1bmN0aW9uIHByb3BhZ2F0ZUNsb3NlRXZlbnRUb1NvdXJjZXMoc3RyZWFtcykge1xuICAgICAgc3RyZWFtcy5mb3JFYWNoKChzdHJlYW0pID0+IHN0cmVhbS5lbWl0KFwiY2xvc2VcIikpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3V0aWxzL3N0cmluZy5qc1xudmFyIHJlcXVpcmVfc3RyaW5nID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvdXRpbHMvc3RyaW5nLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLmlzRW1wdHkgPSBleHBvcnRzLmlzU3RyaW5nID0gdm9pZCAwO1xuICAgIGZ1bmN0aW9uIGlzU3RyaW5nKGlucHV0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSBcInN0cmluZ1wiO1xuICAgIH1cbiAgICBleHBvcnRzLmlzU3RyaW5nID0gaXNTdHJpbmc7XG4gICAgZnVuY3Rpb24gaXNFbXB0eShpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0ID09PSBcIlwiO1xuICAgIH1cbiAgICBleHBvcnRzLmlzRW1wdHkgPSBpc0VtcHR5O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvdXRpbHMvaW5kZXguanNcbnZhciByZXF1aXJlX3V0aWxzMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3V0aWxzL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLnN0cmluZyA9IGV4cG9ydHMuc3RyZWFtID0gZXhwb3J0cy5wYXR0ZXJuID0gZXhwb3J0cy5wYXRoID0gZXhwb3J0cy5mcyA9IGV4cG9ydHMuZXJybm8gPSBleHBvcnRzLmFycmF5ID0gdm9pZCAwO1xuICAgIHZhciBhcnJheTIgPSByZXF1aXJlX2FycmF5KCk7XG4gICAgZXhwb3J0cy5hcnJheSA9IGFycmF5MjtcbiAgICB2YXIgZXJybm8gPSByZXF1aXJlX2Vycm5vKCk7XG4gICAgZXhwb3J0cy5lcnJubyA9IGVycm5vO1xuICAgIHZhciBmczUgPSByZXF1aXJlX2ZzKCk7XG4gICAgZXhwb3J0cy5mcyA9IGZzNTtcbiAgICB2YXIgcGF0aDkgPSByZXF1aXJlX3BhdGgoKTtcbiAgICBleHBvcnRzLnBhdGggPSBwYXRoOTtcbiAgICB2YXIgcGF0dGVybiA9IHJlcXVpcmVfcGF0dGVybigpO1xuICAgIGV4cG9ydHMucGF0dGVybiA9IHBhdHRlcm47XG4gICAgdmFyIHN0cmVhbSA9IHJlcXVpcmVfc3RyZWFtKCk7XG4gICAgZXhwb3J0cy5zdHJlYW0gPSBzdHJlYW07XG4gICAgdmFyIHN0cmluZyA9IHJlcXVpcmVfc3RyaW5nKCk7XG4gICAgZXhwb3J0cy5zdHJpbmcgPSBzdHJpbmc7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9tYW5hZ2Vycy90YXNrcy5qc1xudmFyIHJlcXVpcmVfdGFza3MgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9tYW5hZ2Vycy90YXNrcy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5jb252ZXJ0UGF0dGVybkdyb3VwVG9UYXNrID0gZXhwb3J0cy5jb252ZXJ0UGF0dGVybkdyb3Vwc1RvVGFza3MgPSBleHBvcnRzLmdyb3VwUGF0dGVybnNCeUJhc2VEaXJlY3RvcnkgPSBleHBvcnRzLmdldE5lZ2F0aXZlUGF0dGVybnNBc1Bvc2l0aXZlID0gZXhwb3J0cy5nZXRQb3NpdGl2ZVBhdHRlcm5zID0gZXhwb3J0cy5jb252ZXJ0UGF0dGVybnNUb1Rhc2tzID0gZXhwb3J0cy5nZW5lcmF0ZSA9IHZvaWQgMDtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzMygpO1xuICAgIGZ1bmN0aW9uIGdlbmVyYXRlKGlucHV0LCBzZXR0aW5ncykge1xuICAgICAgY29uc3QgcGF0dGVybnMgPSBwcm9jZXNzUGF0dGVybnMoaW5wdXQsIHNldHRpbmdzKTtcbiAgICAgIGNvbnN0IGlnbm9yZSA9IHByb2Nlc3NQYXR0ZXJucyhzZXR0aW5ncy5pZ25vcmUsIHNldHRpbmdzKTtcbiAgICAgIGNvbnN0IHBvc2l0aXZlUGF0dGVybnMgPSBnZXRQb3NpdGl2ZVBhdHRlcm5zKHBhdHRlcm5zKTtcbiAgICAgIGNvbnN0IG5lZ2F0aXZlUGF0dGVybnMgPSBnZXROZWdhdGl2ZVBhdHRlcm5zQXNQb3NpdGl2ZShwYXR0ZXJucywgaWdub3JlKTtcbiAgICAgIGNvbnN0IHN0YXRpY1BhdHRlcm5zID0gcG9zaXRpdmVQYXR0ZXJucy5maWx0ZXIoKHBhdHRlcm4pID0+IHV0aWxzLnBhdHRlcm4uaXNTdGF0aWNQYXR0ZXJuKHBhdHRlcm4sIHNldHRpbmdzKSk7XG4gICAgICBjb25zdCBkeW5hbWljUGF0dGVybnMgPSBwb3NpdGl2ZVBhdHRlcm5zLmZpbHRlcigocGF0dGVybikgPT4gdXRpbHMucGF0dGVybi5pc0R5bmFtaWNQYXR0ZXJuKHBhdHRlcm4sIHNldHRpbmdzKSk7XG4gICAgICBjb25zdCBzdGF0aWNUYXNrcyA9IGNvbnZlcnRQYXR0ZXJuc1RvVGFza3MoXG4gICAgICAgIHN0YXRpY1BhdHRlcm5zLFxuICAgICAgICBuZWdhdGl2ZVBhdHRlcm5zLFxuICAgICAgICAvKiBkeW5hbWljICovXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgY29uc3QgZHluYW1pY1Rhc2tzID0gY29udmVydFBhdHRlcm5zVG9UYXNrcyhcbiAgICAgICAgZHluYW1pY1BhdHRlcm5zLFxuICAgICAgICBuZWdhdGl2ZVBhdHRlcm5zLFxuICAgICAgICAvKiBkeW5hbWljICovXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RhdGljVGFza3MuY29uY2F0KGR5bmFtaWNUYXNrcyk7XG4gICAgfVxuICAgIGV4cG9ydHMuZ2VuZXJhdGUgPSBnZW5lcmF0ZTtcbiAgICBmdW5jdGlvbiBwcm9jZXNzUGF0dGVybnMoaW5wdXQsIHNldHRpbmdzKSB7XG4gICAgICBsZXQgcGF0dGVybnMgPSBpbnB1dDtcbiAgICAgIGlmIChzZXR0aW5ncy5icmFjZUV4cGFuc2lvbikge1xuICAgICAgICBwYXR0ZXJucyA9IHV0aWxzLnBhdHRlcm4uZXhwYW5kUGF0dGVybnNXaXRoQnJhY2VFeHBhbnNpb24ocGF0dGVybnMpO1xuICAgICAgfVxuICAgICAgaWYgKHNldHRpbmdzLmJhc2VOYW1lTWF0Y2gpIHtcbiAgICAgICAgcGF0dGVybnMgPSBwYXR0ZXJucy5tYXAoKHBhdHRlcm4pID0+IHBhdHRlcm4uaW5jbHVkZXMoXCIvXCIpID8gcGF0dGVybiA6IGAqKi8ke3BhdHRlcm59YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGF0dGVybnMubWFwKChwYXR0ZXJuKSA9PiB1dGlscy5wYXR0ZXJuLnJlbW92ZUR1cGxpY2F0ZVNsYXNoZXMocGF0dGVybikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb252ZXJ0UGF0dGVybnNUb1Rhc2tzKHBvc2l0aXZlLCBuZWdhdGl2ZSwgZHluYW1pYykge1xuICAgICAgY29uc3QgdGFza3MgPSBbXTtcbiAgICAgIGNvbnN0IHBhdHRlcm5zT3V0c2lkZUN1cnJlbnREaXJlY3RvcnkgPSB1dGlscy5wYXR0ZXJuLmdldFBhdHRlcm5zT3V0c2lkZUN1cnJlbnREaXJlY3RvcnkocG9zaXRpdmUpO1xuICAgICAgY29uc3QgcGF0dGVybnNJbnNpZGVDdXJyZW50RGlyZWN0b3J5ID0gdXRpbHMucGF0dGVybi5nZXRQYXR0ZXJuc0luc2lkZUN1cnJlbnREaXJlY3RvcnkocG9zaXRpdmUpO1xuICAgICAgY29uc3Qgb3V0c2lkZUN1cnJlbnREaXJlY3RvcnlHcm91cCA9IGdyb3VwUGF0dGVybnNCeUJhc2VEaXJlY3RvcnkocGF0dGVybnNPdXRzaWRlQ3VycmVudERpcmVjdG9yeSk7XG4gICAgICBjb25zdCBpbnNpZGVDdXJyZW50RGlyZWN0b3J5R3JvdXAgPSBncm91cFBhdHRlcm5zQnlCYXNlRGlyZWN0b3J5KHBhdHRlcm5zSW5zaWRlQ3VycmVudERpcmVjdG9yeSk7XG4gICAgICB0YXNrcy5wdXNoKC4uLmNvbnZlcnRQYXR0ZXJuR3JvdXBzVG9UYXNrcyhvdXRzaWRlQ3VycmVudERpcmVjdG9yeUdyb3VwLCBuZWdhdGl2ZSwgZHluYW1pYykpO1xuICAgICAgaWYgKFwiLlwiIGluIGluc2lkZUN1cnJlbnREaXJlY3RvcnlHcm91cCkge1xuICAgICAgICB0YXNrcy5wdXNoKGNvbnZlcnRQYXR0ZXJuR3JvdXBUb1Rhc2soXCIuXCIsIHBhdHRlcm5zSW5zaWRlQ3VycmVudERpcmVjdG9yeSwgbmVnYXRpdmUsIGR5bmFtaWMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2tzLnB1c2goLi4uY29udmVydFBhdHRlcm5Hcm91cHNUb1Rhc2tzKGluc2lkZUN1cnJlbnREaXJlY3RvcnlHcm91cCwgbmVnYXRpdmUsIGR5bmFtaWMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0YXNrcztcbiAgICB9XG4gICAgZXhwb3J0cy5jb252ZXJ0UGF0dGVybnNUb1Rhc2tzID0gY29udmVydFBhdHRlcm5zVG9UYXNrcztcbiAgICBmdW5jdGlvbiBnZXRQb3NpdGl2ZVBhdHRlcm5zKHBhdHRlcm5zKSB7XG4gICAgICByZXR1cm4gdXRpbHMucGF0dGVybi5nZXRQb3NpdGl2ZVBhdHRlcm5zKHBhdHRlcm5zKTtcbiAgICB9XG4gICAgZXhwb3J0cy5nZXRQb3NpdGl2ZVBhdHRlcm5zID0gZ2V0UG9zaXRpdmVQYXR0ZXJucztcbiAgICBmdW5jdGlvbiBnZXROZWdhdGl2ZVBhdHRlcm5zQXNQb3NpdGl2ZShwYXR0ZXJucywgaWdub3JlKSB7XG4gICAgICBjb25zdCBuZWdhdGl2ZSA9IHV0aWxzLnBhdHRlcm4uZ2V0TmVnYXRpdmVQYXR0ZXJucyhwYXR0ZXJucykuY29uY2F0KGlnbm9yZSk7XG4gICAgICBjb25zdCBwb3NpdGl2ZSA9IG5lZ2F0aXZlLm1hcCh1dGlscy5wYXR0ZXJuLmNvbnZlcnRUb1Bvc2l0aXZlUGF0dGVybik7XG4gICAgICByZXR1cm4gcG9zaXRpdmU7XG4gICAgfVxuICAgIGV4cG9ydHMuZ2V0TmVnYXRpdmVQYXR0ZXJuc0FzUG9zaXRpdmUgPSBnZXROZWdhdGl2ZVBhdHRlcm5zQXNQb3NpdGl2ZTtcbiAgICBmdW5jdGlvbiBncm91cFBhdHRlcm5zQnlCYXNlRGlyZWN0b3J5KHBhdHRlcm5zKSB7XG4gICAgICBjb25zdCBncm91cCA9IHt9O1xuICAgICAgcmV0dXJuIHBhdHRlcm5zLnJlZHVjZSgoY29sbGVjdGlvbiwgcGF0dGVybikgPT4ge1xuICAgICAgICBjb25zdCBiYXNlID0gdXRpbHMucGF0dGVybi5nZXRCYXNlRGlyZWN0b3J5KHBhdHRlcm4pO1xuICAgICAgICBpZiAoYmFzZSBpbiBjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgY29sbGVjdGlvbltiYXNlXS5wdXNoKHBhdHRlcm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbGxlY3Rpb25bYmFzZV0gPSBbcGF0dGVybl07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICB9LCBncm91cCk7XG4gICAgfVxuICAgIGV4cG9ydHMuZ3JvdXBQYXR0ZXJuc0J5QmFzZURpcmVjdG9yeSA9IGdyb3VwUGF0dGVybnNCeUJhc2VEaXJlY3Rvcnk7XG4gICAgZnVuY3Rpb24gY29udmVydFBhdHRlcm5Hcm91cHNUb1Rhc2tzKHBvc2l0aXZlLCBuZWdhdGl2ZSwgZHluYW1pYykge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHBvc2l0aXZlKS5tYXAoKGJhc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbnZlcnRQYXR0ZXJuR3JvdXBUb1Rhc2soYmFzZSwgcG9zaXRpdmVbYmFzZV0sIG5lZ2F0aXZlLCBkeW5hbWljKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLmNvbnZlcnRQYXR0ZXJuR3JvdXBzVG9UYXNrcyA9IGNvbnZlcnRQYXR0ZXJuR3JvdXBzVG9UYXNrcztcbiAgICBmdW5jdGlvbiBjb252ZXJ0UGF0dGVybkdyb3VwVG9UYXNrKGJhc2UsIHBvc2l0aXZlLCBuZWdhdGl2ZSwgZHluYW1pYykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZHluYW1pYyxcbiAgICAgICAgcG9zaXRpdmUsXG4gICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICBiYXNlLFxuICAgICAgICBwYXR0ZXJuczogW10uY29uY2F0KHBvc2l0aXZlLCBuZWdhdGl2ZS5tYXAodXRpbHMucGF0dGVybi5jb252ZXJ0VG9OZWdhdGl2ZVBhdHRlcm4pKVxuICAgICAgfTtcbiAgICB9XG4gICAgZXhwb3J0cy5jb252ZXJ0UGF0dGVybkdyb3VwVG9UYXNrID0gY29udmVydFBhdHRlcm5Hcm91cFRvVGFzaztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9wcm92aWRlcnMvYXN5bmMuanNcbnZhciByZXF1aXJlX2FzeW5jID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnN0YXQvb3V0L3Byb3ZpZGVycy9hc3luYy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5yZWFkID0gdm9pZCAwO1xuICAgIGZ1bmN0aW9uIHJlYWQyKHBhdGg5LCBzZXR0aW5ncywgY2FsbGJhY2spIHtcbiAgICAgIHNldHRpbmdzLmZzLmxzdGF0KHBhdGg5LCAobHN0YXRFcnJvciwgbHN0YXQpID0+IHtcbiAgICAgICAgaWYgKGxzdGF0RXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICBjYWxsRmFpbHVyZUNhbGxiYWNrKGNhbGxiYWNrLCBsc3RhdEVycm9yKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFsc3RhdC5pc1N5bWJvbGljTGluaygpIHx8ICFzZXR0aW5ncy5mb2xsb3dTeW1ib2xpY0xpbmspIHtcbiAgICAgICAgICBjYWxsU3VjY2Vzc0NhbGxiYWNrKGNhbGxiYWNrLCBsc3RhdCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldHRpbmdzLmZzLnN0YXQocGF0aDksIChzdGF0RXJyb3IsIHN0YXQpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdEVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZ3MudGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rKSB7XG4gICAgICAgICAgICAgIGNhbGxGYWlsdXJlQ2FsbGJhY2soY2FsbGJhY2ssIHN0YXRFcnJvcik7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGxTdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2ssIGxzdGF0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNldHRpbmdzLm1hcmtTeW1ib2xpY0xpbmspIHtcbiAgICAgICAgICAgIHN0YXQuaXNTeW1ib2xpY0xpbmsgPSAoKSA9PiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYWxsU3VjY2Vzc0NhbGxiYWNrKGNhbGxiYWNrLCBzdGF0KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZXhwb3J0cy5yZWFkID0gcmVhZDI7XG4gICAgZnVuY3Rpb24gY2FsbEZhaWx1cmVDYWxsYmFjayhjYWxsYmFjaywgZXJyb3IpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbFN1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaywgcmVzdWx0KSB7XG4gICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9wcm92aWRlcnMvc3luYy5qc1xudmFyIHJlcXVpcmVfc3luYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9wcm92aWRlcnMvc3luYy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5yZWFkID0gdm9pZCAwO1xuICAgIGZ1bmN0aW9uIHJlYWQyKHBhdGg5LCBzZXR0aW5ncykge1xuICAgICAgY29uc3QgbHN0YXQgPSBzZXR0aW5ncy5mcy5sc3RhdFN5bmMocGF0aDkpO1xuICAgICAgaWYgKCFsc3RhdC5pc1N5bWJvbGljTGluaygpIHx8ICFzZXR0aW5ncy5mb2xsb3dTeW1ib2xpY0xpbmspIHtcbiAgICAgICAgcmV0dXJuIGxzdGF0O1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3RhdCA9IHNldHRpbmdzLmZzLnN0YXRTeW5jKHBhdGg5KTtcbiAgICAgICAgaWYgKHNldHRpbmdzLm1hcmtTeW1ib2xpY0xpbmspIHtcbiAgICAgICAgICBzdGF0LmlzU3ltYm9saWNMaW5rID0gKCkgPT4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RhdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghc2V0dGluZ3MudGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rKSB7XG4gICAgICAgICAgcmV0dXJuIGxzdGF0O1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgICBleHBvcnRzLnJlYWQgPSByZWFkMjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9hZGFwdGVycy9mcy5qc1xudmFyIHJlcXVpcmVfZnMyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnN0YXQvb3V0L2FkYXB0ZXJzL2ZzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLmNyZWF0ZUZpbGVTeXN0ZW1BZGFwdGVyID0gZXhwb3J0cy5GSUxFX1NZU1RFTV9BREFQVEVSID0gdm9pZCAwO1xuICAgIHZhciBmczUgPSBfX3JlcXVpcmUoXCJmc1wiKTtcbiAgICBleHBvcnRzLkZJTEVfU1lTVEVNX0FEQVBURVIgPSB7XG4gICAgICBsc3RhdDogZnM1LmxzdGF0LFxuICAgICAgc3RhdDogZnM1LnN0YXQsXG4gICAgICBsc3RhdFN5bmM6IGZzNS5sc3RhdFN5bmMsXG4gICAgICBzdGF0U3luYzogZnM1LnN0YXRTeW5jXG4gICAgfTtcbiAgICBmdW5jdGlvbiBjcmVhdGVGaWxlU3lzdGVtQWRhcHRlcihmc01ldGhvZHMpIHtcbiAgICAgIGlmIChmc01ldGhvZHMgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5GSUxFX1NZU1RFTV9BREFQVEVSO1xuICAgICAgfVxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXhwb3J0cy5GSUxFX1NZU1RFTV9BREFQVEVSKSwgZnNNZXRob2RzKTtcbiAgICB9XG4gICAgZXhwb3J0cy5jcmVhdGVGaWxlU3lzdGVtQWRhcHRlciA9IGNyZWF0ZUZpbGVTeXN0ZW1BZGFwdGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnN0YXQvb3V0L3NldHRpbmdzLmpzXG52YXIgcmVxdWlyZV9zZXR0aW5ncyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9zZXR0aW5ncy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIGZzNSA9IHJlcXVpcmVfZnMyKCk7XG4gICAgdmFyIFNldHRpbmdzID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoX29wdGlvbnMgPSB7fSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gX29wdGlvbnM7XG4gICAgICAgIHRoaXMuZm9sbG93U3ltYm9saWNMaW5rID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5mb2xsb3dTeW1ib2xpY0xpbmssIHRydWUpO1xuICAgICAgICB0aGlzLmZzID0gZnM1LmNyZWF0ZUZpbGVTeXN0ZW1BZGFwdGVyKHRoaXMuX29wdGlvbnMuZnMpO1xuICAgICAgICB0aGlzLm1hcmtTeW1ib2xpY0xpbmsgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLm1hcmtTeW1ib2xpY0xpbmssIGZhbHNlKTtcbiAgICAgICAgdGhpcy50aHJvd0Vycm9yT25Ccm9rZW5TeW1ib2xpY0xpbmsgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLnRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGluaywgdHJ1ZSk7XG4gICAgICB9XG4gICAgICBfZ2V0VmFsdWUob3B0aW9uLCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gb3B0aW9uICE9PSBudWxsICYmIG9wdGlvbiAhPT0gdm9pZCAwID8gb3B0aW9uIDogdmFsdWU7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBTZXR0aW5ncztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zdGF0L291dC9pbmRleC5qc1xudmFyIHJlcXVpcmVfb3V0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnN0YXQvb3V0L2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLnN0YXRTeW5jID0gZXhwb3J0cy5zdGF0ID0gZXhwb3J0cy5TZXR0aW5ncyA9IHZvaWQgMDtcbiAgICB2YXIgYXN5bmMgPSByZXF1aXJlX2FzeW5jKCk7XG4gICAgdmFyIHN5bmMgPSByZXF1aXJlX3N5bmMoKTtcbiAgICB2YXIgc2V0dGluZ3NfMSA9IHJlcXVpcmVfc2V0dGluZ3MoKTtcbiAgICBleHBvcnRzLlNldHRpbmdzID0gc2V0dGluZ3NfMS5kZWZhdWx0O1xuICAgIGZ1bmN0aW9uIHN0YXQocGF0aDksIG9wdGlvbnNPclNldHRpbmdzT3JDYWxsYmFjaywgY2FsbGJhY2spIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgYXN5bmMucmVhZChwYXRoOSwgZ2V0U2V0dGluZ3MoKSwgb3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXN5bmMucmVhZChwYXRoOSwgZ2V0U2V0dGluZ3Mob3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrKSwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBleHBvcnRzLnN0YXQgPSBzdGF0O1xuICAgIGZ1bmN0aW9uIHN0YXRTeW5jMihwYXRoOSwgb3B0aW9uc09yU2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3Mob3B0aW9uc09yU2V0dGluZ3MpO1xuICAgICAgcmV0dXJuIHN5bmMucmVhZChwYXRoOSwgc2V0dGluZ3MpO1xuICAgIH1cbiAgICBleHBvcnRzLnN0YXRTeW5jID0gc3RhdFN5bmMyO1xuICAgIGZ1bmN0aW9uIGdldFNldHRpbmdzKHNldHRpbmdzT3JPcHRpb25zID0ge30pIHtcbiAgICAgIGlmIChzZXR0aW5nc09yT3B0aW9ucyBpbnN0YW5jZW9mIHNldHRpbmdzXzEuZGVmYXVsdCkge1xuICAgICAgICByZXR1cm4gc2V0dGluZ3NPck9wdGlvbnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IHNldHRpbmdzXzEuZGVmYXVsdChzZXR0aW5nc09yT3B0aW9ucyk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3F1ZXVlLW1pY3JvdGFzay9pbmRleC5qc1xudmFyIHJlcXVpcmVfcXVldWVfbWljcm90YXNrID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3F1ZXVlLW1pY3JvdGFzay9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciBwcm9taXNlO1xuICAgIG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHF1ZXVlTWljcm90YXNrID09PSBcImZ1bmN0aW9uXCIgPyBxdWV1ZU1pY3JvdGFzay5iaW5kKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiBnbG9iYWwpIDogKGNiKSA9PiAocHJvbWlzZSB8fCAocHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpKSkudGhlbihjYikuY2F0Y2goKGVycikgPT4gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSwgMCkpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3J1bi1wYXJhbGxlbC9pbmRleC5qc1xudmFyIHJlcXVpcmVfcnVuX3BhcmFsbGVsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3J1bi1wYXJhbGxlbC9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcnVuUGFyYWxsZWw7XG4gICAgdmFyIHF1ZXVlTWljcm90YXNrMiA9IHJlcXVpcmVfcXVldWVfbWljcm90YXNrKCk7XG4gICAgZnVuY3Rpb24gcnVuUGFyYWxsZWwodGFza3MsIGNiKSB7XG4gICAgICBsZXQgcmVzdWx0cywgcGVuZGluZywga2V5cztcbiAgICAgIGxldCBpc1N5bmMgPSB0cnVlO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFza3MpKSB7XG4gICAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgcGVuZGluZyA9IHRhc2tzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMgPSBPYmplY3Qua2V5cyh0YXNrcyk7XG4gICAgICAgIHJlc3VsdHMgPSB7fTtcbiAgICAgICAgcGVuZGluZyA9IGtleXMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZG9uZShlcnIpIHtcbiAgICAgICAgZnVuY3Rpb24gZW5kKCkge1xuICAgICAgICAgIGlmIChjYilcbiAgICAgICAgICAgIGNiKGVyciwgcmVzdWx0cyk7XG4gICAgICAgICAgY2IgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1N5bmMpXG4gICAgICAgICAgcXVldWVNaWNyb3Rhc2syKGVuZCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBlbmQoKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGVhY2goaSwgZXJyLCByZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0c1tpXSA9IHJlc3VsdDtcbiAgICAgICAgaWYgKC0tcGVuZGluZyA9PT0gMCB8fCBlcnIpIHtcbiAgICAgICAgICBkb25lKGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghcGVuZGluZykge1xuICAgICAgICBkb25lKG51bGwpO1xuICAgICAgfSBlbHNlIGlmIChrZXlzKSB7XG4gICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICB0YXNrc1trZXldKGZ1bmN0aW9uKGVyciwgcmVzdWx0KSB7XG4gICAgICAgICAgICBlYWNoKGtleSwgZXJyLCByZXN1bHQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2tzLmZvckVhY2goZnVuY3Rpb24odGFzaywgaSkge1xuICAgICAgICAgIHRhc2soZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgICAgICAgIGVhY2goaSwgZXJyLCByZXN1bHQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlzU3luYyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9jb25zdGFudHMuanNcbnZhciByZXF1aXJlX2NvbnN0YW50czMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvY29uc3RhbnRzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLklTX1NVUFBPUlRfUkVBRERJUl9XSVRIX0ZJTEVfVFlQRVMgPSB2b2lkIDA7XG4gICAgdmFyIE5PREVfUFJPQ0VTU19WRVJTSU9OX1BBUlRTID0gcHJvY2Vzcy52ZXJzaW9ucy5ub2RlLnNwbGl0KFwiLlwiKTtcbiAgICBpZiAoTk9ERV9QUk9DRVNTX1ZFUlNJT05fUEFSVFNbMF0gPT09IHZvaWQgMCB8fCBOT0RFX1BST0NFU1NfVkVSU0lPTl9QQVJUU1sxXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRoZSAncHJvY2Vzcy52ZXJzaW9ucy5ub2RlJyB2YXJpYWJsZSBoYXMgaW52YWxpZCB2YWx1ZTogJHtwcm9jZXNzLnZlcnNpb25zLm5vZGV9YCk7XG4gICAgfVxuICAgIHZhciBNQUpPUl9WRVJTSU9OID0gTnVtYmVyLnBhcnNlSW50KE5PREVfUFJPQ0VTU19WRVJTSU9OX1BBUlRTWzBdLCAxMCk7XG4gICAgdmFyIE1JTk9SX1ZFUlNJT04gPSBOdW1iZXIucGFyc2VJbnQoTk9ERV9QUk9DRVNTX1ZFUlNJT05fUEFSVFNbMV0sIDEwKTtcbiAgICB2YXIgU1VQUE9SVEVEX01BSk9SX1ZFUlNJT04gPSAxMDtcbiAgICB2YXIgU1VQUE9SVEVEX01JTk9SX1ZFUlNJT04gPSAxMDtcbiAgICB2YXIgSVNfTUFUQ0hFRF9CWV9NQUpPUiA9IE1BSk9SX1ZFUlNJT04gPiBTVVBQT1JURURfTUFKT1JfVkVSU0lPTjtcbiAgICB2YXIgSVNfTUFUQ0hFRF9CWV9NQUpPUl9BTkRfTUlOT1IgPSBNQUpPUl9WRVJTSU9OID09PSBTVVBQT1JURURfTUFKT1JfVkVSU0lPTiAmJiBNSU5PUl9WRVJTSU9OID49IFNVUFBPUlRFRF9NSU5PUl9WRVJTSU9OO1xuICAgIGV4cG9ydHMuSVNfU1VQUE9SVF9SRUFERElSX1dJVEhfRklMRV9UWVBFUyA9IElTX01BVENIRURfQllfTUFKT1IgfHwgSVNfTUFUQ0hFRF9CWV9NQUpPUl9BTkRfTUlOT1I7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvdXRpbHMvZnMuanNcbnZhciByZXF1aXJlX2ZzMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC91dGlscy9mcy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5jcmVhdGVEaXJlbnRGcm9tU3RhdHMgPSB2b2lkIDA7XG4gICAgdmFyIERpcmVudEZyb21TdGF0cyA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIHN0YXRzKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuaXNCbG9ja0RldmljZSA9IHN0YXRzLmlzQmxvY2tEZXZpY2UuYmluZChzdGF0cyk7XG4gICAgICAgIHRoaXMuaXNDaGFyYWN0ZXJEZXZpY2UgPSBzdGF0cy5pc0NoYXJhY3RlckRldmljZS5iaW5kKHN0YXRzKTtcbiAgICAgICAgdGhpcy5pc0RpcmVjdG9yeSA9IHN0YXRzLmlzRGlyZWN0b3J5LmJpbmQoc3RhdHMpO1xuICAgICAgICB0aGlzLmlzRklGTyA9IHN0YXRzLmlzRklGTy5iaW5kKHN0YXRzKTtcbiAgICAgICAgdGhpcy5pc0ZpbGUgPSBzdGF0cy5pc0ZpbGUuYmluZChzdGF0cyk7XG4gICAgICAgIHRoaXMuaXNTb2NrZXQgPSBzdGF0cy5pc1NvY2tldC5iaW5kKHN0YXRzKTtcbiAgICAgICAgdGhpcy5pc1N5bWJvbGljTGluayA9IHN0YXRzLmlzU3ltYm9saWNMaW5rLmJpbmQoc3RhdHMpO1xuICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gY3JlYXRlRGlyZW50RnJvbVN0YXRzKG5hbWUsIHN0YXRzKSB7XG4gICAgICByZXR1cm4gbmV3IERpcmVudEZyb21TdGF0cyhuYW1lLCBzdGF0cyk7XG4gICAgfVxuICAgIGV4cG9ydHMuY3JlYXRlRGlyZW50RnJvbVN0YXRzID0gY3JlYXRlRGlyZW50RnJvbVN0YXRzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnNjYW5kaXIvb3V0L3V0aWxzL2luZGV4LmpzXG52YXIgcmVxdWlyZV91dGlsczQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvdXRpbHMvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMuZnMgPSB2b2lkIDA7XG4gICAgdmFyIGZzNSA9IHJlcXVpcmVfZnMzKCk7XG4gICAgZXhwb3J0cy5mcyA9IGZzNTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9wcm92aWRlcnMvY29tbW9uLmpzXG52YXIgcmVxdWlyZV9jb21tb24gPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvcHJvdmlkZXJzL2NvbW1vbi5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5qb2luUGF0aFNlZ21lbnRzID0gdm9pZCAwO1xuICAgIGZ1bmN0aW9uIGpvaW5QYXRoU2VnbWVudHMoYSwgYiwgc2VwYXJhdG9yKSB7XG4gICAgICBpZiAoYS5lbmRzV2l0aChzZXBhcmF0b3IpKSB7XG4gICAgICAgIHJldHVybiBhICsgYjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhICsgc2VwYXJhdG9yICsgYjtcbiAgICB9XG4gICAgZXhwb3J0cy5qb2luUGF0aFNlZ21lbnRzID0gam9pblBhdGhTZWdtZW50cztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9wcm92aWRlcnMvYXN5bmMuanNcbnZhciByZXF1aXJlX2FzeW5jMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9wcm92aWRlcnMvYXN5bmMuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMucmVhZGRpciA9IGV4cG9ydHMucmVhZGRpcldpdGhGaWxlVHlwZXMgPSBleHBvcnRzLnJlYWQgPSB2b2lkIDA7XG4gICAgdmFyIGZzU3RhdCA9IHJlcXVpcmVfb3V0KCk7XG4gICAgdmFyIHJwbCA9IHJlcXVpcmVfcnVuX3BhcmFsbGVsKCk7XG4gICAgdmFyIGNvbnN0YW50c18xID0gcmVxdWlyZV9jb25zdGFudHMzKCk7XG4gICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24oKTtcbiAgICBmdW5jdGlvbiByZWFkMihkaXJlY3RvcnksIHNldHRpbmdzLCBjYWxsYmFjaykge1xuICAgICAgaWYgKCFzZXR0aW5ncy5zdGF0cyAmJiBjb25zdGFudHNfMS5JU19TVVBQT1JUX1JFQURESVJfV0lUSF9GSUxFX1RZUEVTKSB7XG4gICAgICAgIHJlYWRkaXJXaXRoRmlsZVR5cGVzKGRpcmVjdG9yeSwgc2V0dGluZ3MsIGNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVhZGRpcihkaXJlY3RvcnksIHNldHRpbmdzLCBjYWxsYmFjayk7XG4gICAgfVxuICAgIGV4cG9ydHMucmVhZCA9IHJlYWQyO1xuICAgIGZ1bmN0aW9uIHJlYWRkaXJXaXRoRmlsZVR5cGVzKGRpcmVjdG9yeSwgc2V0dGluZ3MsIGNhbGxiYWNrKSB7XG4gICAgICBzZXR0aW5ncy5mcy5yZWFkZGlyKGRpcmVjdG9yeSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0sIChyZWFkZGlyRXJyb3IsIGRpcmVudHMpID0+IHtcbiAgICAgICAgaWYgKHJlYWRkaXJFcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNhbGxGYWlsdXJlQ2FsbGJhY2soY2FsbGJhY2ssIHJlYWRkaXJFcnJvcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBkaXJlbnRzLm1hcCgoZGlyZW50KSA9PiAoe1xuICAgICAgICAgIGRpcmVudCxcbiAgICAgICAgICBuYW1lOiBkaXJlbnQubmFtZSxcbiAgICAgICAgICBwYXRoOiBjb21tb24uam9pblBhdGhTZWdtZW50cyhkaXJlY3RvcnksIGRpcmVudC5uYW1lLCBzZXR0aW5ncy5wYXRoU2VnbWVudFNlcGFyYXRvcilcbiAgICAgICAgfSkpO1xuICAgICAgICBpZiAoIXNldHRpbmdzLmZvbGxvd1N5bWJvbGljTGlua3MpIHtcbiAgICAgICAgICBjYWxsU3VjY2Vzc0NhbGxiYWNrKGNhbGxiYWNrLCBlbnRyaWVzKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFza3MgPSBlbnRyaWVzLm1hcCgoZW50cnkpID0+IG1ha2VScGxUYXNrRW50cnkoZW50cnksIHNldHRpbmdzKSk7XG4gICAgICAgIHJwbCh0YXNrcywgKHJwbEVycm9yLCBycGxFbnRyaWVzKSA9PiB7XG4gICAgICAgICAgaWYgKHJwbEVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjYWxsRmFpbHVyZUNhbGxiYWNrKGNhbGxiYWNrLCBycGxFcnJvcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhbGxTdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2ssIHJwbEVudHJpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLnJlYWRkaXJXaXRoRmlsZVR5cGVzID0gcmVhZGRpcldpdGhGaWxlVHlwZXM7XG4gICAgZnVuY3Rpb24gbWFrZVJwbFRhc2tFbnRyeShlbnRyeSwgc2V0dGluZ3MpIHtcbiAgICAgIHJldHVybiAoZG9uZSkgPT4ge1xuICAgICAgICBpZiAoIWVudHJ5LmRpcmVudC5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgICAgZG9uZShudWxsLCBlbnRyeSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldHRpbmdzLmZzLnN0YXQoZW50cnkucGF0aCwgKHN0YXRFcnJvciwgc3RhdHMpID0+IHtcbiAgICAgICAgICBpZiAoc3RhdEVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZ3MudGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rKSB7XG4gICAgICAgICAgICAgIGRvbmUoc3RhdEVycm9yKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9uZShudWxsLCBlbnRyeSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGVudHJ5LmRpcmVudCA9IHV0aWxzLmZzLmNyZWF0ZURpcmVudEZyb21TdGF0cyhlbnRyeS5uYW1lLCBzdGF0cyk7XG4gICAgICAgICAgZG9uZShudWxsLCBlbnRyeSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZGRpcihkaXJlY3RvcnksIHNldHRpbmdzLCBjYWxsYmFjaykge1xuICAgICAgc2V0dGluZ3MuZnMucmVhZGRpcihkaXJlY3RvcnksIChyZWFkZGlyRXJyb3IsIG5hbWVzKSA9PiB7XG4gICAgICAgIGlmIChyZWFkZGlyRXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICBjYWxsRmFpbHVyZUNhbGxiYWNrKGNhbGxiYWNrLCByZWFkZGlyRXJyb3IpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXNrcyA9IG5hbWVzLm1hcCgobmFtZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGg5ID0gY29tbW9uLmpvaW5QYXRoU2VnbWVudHMoZGlyZWN0b3J5LCBuYW1lLCBzZXR0aW5ncy5wYXRoU2VnbWVudFNlcGFyYXRvcik7XG4gICAgICAgICAgcmV0dXJuIChkb25lKSA9PiB7XG4gICAgICAgICAgICBmc1N0YXQuc3RhdChwYXRoOSwgc2V0dGluZ3MuZnNTdGF0U2V0dGluZ3MsIChlcnJvciwgc3RhdHMpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZG9uZShlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgcGF0aDogcGF0aDksXG4gICAgICAgICAgICAgICAgZGlyZW50OiB1dGlscy5mcy5jcmVhdGVEaXJlbnRGcm9tU3RhdHMobmFtZSwgc3RhdHMpXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGlmIChzZXR0aW5ncy5zdGF0cykge1xuICAgICAgICAgICAgICAgIGVudHJ5LnN0YXRzID0gc3RhdHM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZG9uZShudWxsLCBlbnRyeSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcnBsKHRhc2tzLCAocnBsRXJyb3IsIGVudHJpZXMpID0+IHtcbiAgICAgICAgICBpZiAocnBsRXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbGxGYWlsdXJlQ2FsbGJhY2soY2FsbGJhY2ssIHJwbEVycm9yKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FsbFN1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaywgZW50cmllcyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMucmVhZGRpciA9IHJlYWRkaXI7XG4gICAgZnVuY3Rpb24gY2FsbEZhaWx1cmVDYWxsYmFjayhjYWxsYmFjaywgZXJyb3IpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbFN1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaywgcmVzdWx0KSB7XG4gICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9wcm92aWRlcnMvc3luYy5qc1xudmFyIHJlcXVpcmVfc3luYzIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvcHJvdmlkZXJzL3N5bmMuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMucmVhZGRpciA9IGV4cG9ydHMucmVhZGRpcldpdGhGaWxlVHlwZXMgPSBleHBvcnRzLnJlYWQgPSB2b2lkIDA7XG4gICAgdmFyIGZzU3RhdCA9IHJlcXVpcmVfb3V0KCk7XG4gICAgdmFyIGNvbnN0YW50c18xID0gcmVxdWlyZV9jb25zdGFudHMzKCk7XG4gICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24oKTtcbiAgICBmdW5jdGlvbiByZWFkMihkaXJlY3RvcnksIHNldHRpbmdzKSB7XG4gICAgICBpZiAoIXNldHRpbmdzLnN0YXRzICYmIGNvbnN0YW50c18xLklTX1NVUFBPUlRfUkVBRERJUl9XSVRIX0ZJTEVfVFlQRVMpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRkaXJXaXRoRmlsZVR5cGVzKGRpcmVjdG9yeSwgc2V0dGluZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlYWRkaXIoZGlyZWN0b3J5LCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGV4cG9ydHMucmVhZCA9IHJlYWQyO1xuICAgIGZ1bmN0aW9uIHJlYWRkaXJXaXRoRmlsZVR5cGVzKGRpcmVjdG9yeSwgc2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IGRpcmVudHMgPSBzZXR0aW5ncy5mcy5yZWFkZGlyU3luYyhkaXJlY3RvcnksIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgICAgIHJldHVybiBkaXJlbnRzLm1hcCgoZGlyZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICAgIGRpcmVudCxcbiAgICAgICAgICBuYW1lOiBkaXJlbnQubmFtZSxcbiAgICAgICAgICBwYXRoOiBjb21tb24uam9pblBhdGhTZWdtZW50cyhkaXJlY3RvcnksIGRpcmVudC5uYW1lLCBzZXR0aW5ncy5wYXRoU2VnbWVudFNlcGFyYXRvcilcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGVudHJ5LmRpcmVudC5pc1N5bWJvbGljTGluaygpICYmIHNldHRpbmdzLmZvbGxvd1N5bWJvbGljTGlua3MpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBzZXR0aW5ncy5mcy5zdGF0U3luYyhlbnRyeS5wYXRoKTtcbiAgICAgICAgICAgIGVudHJ5LmRpcmVudCA9IHV0aWxzLmZzLmNyZWF0ZURpcmVudEZyb21TdGF0cyhlbnRyeS5uYW1lLCBzdGF0cyk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy50aHJvd0Vycm9yT25Ccm9rZW5TeW1ib2xpY0xpbmspIHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnRyeTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLnJlYWRkaXJXaXRoRmlsZVR5cGVzID0gcmVhZGRpcldpdGhGaWxlVHlwZXM7XG4gICAgZnVuY3Rpb24gcmVhZGRpcihkaXJlY3RvcnksIHNldHRpbmdzKSB7XG4gICAgICBjb25zdCBuYW1lcyA9IHNldHRpbmdzLmZzLnJlYWRkaXJTeW5jKGRpcmVjdG9yeSk7XG4gICAgICByZXR1cm4gbmFtZXMubWFwKChuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5UGF0aCA9IGNvbW1vbi5qb2luUGF0aFNlZ21lbnRzKGRpcmVjdG9yeSwgbmFtZSwgc2V0dGluZ3MucGF0aFNlZ21lbnRTZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBzdGF0cyA9IGZzU3RhdC5zdGF0U3luYyhlbnRyeVBhdGgsIHNldHRpbmdzLmZzU3RhdFNldHRpbmdzKTtcbiAgICAgICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBwYXRoOiBlbnRyeVBhdGgsXG4gICAgICAgICAgZGlyZW50OiB1dGlscy5mcy5jcmVhdGVEaXJlbnRGcm9tU3RhdHMobmFtZSwgc3RhdHMpXG4gICAgICAgIH07XG4gICAgICAgIGlmIChzZXR0aW5ncy5zdGF0cykge1xuICAgICAgICAgIGVudHJ5LnN0YXRzID0gc3RhdHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMucmVhZGRpciA9IHJlYWRkaXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMuc2NhbmRpci9vdXQvYWRhcHRlcnMvZnMuanNcbnZhciByZXF1aXJlX2ZzNCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9hZGFwdGVycy9mcy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgZXhwb3J0cy5jcmVhdGVGaWxlU3lzdGVtQWRhcHRlciA9IGV4cG9ydHMuRklMRV9TWVNURU1fQURBUFRFUiA9IHZvaWQgMDtcbiAgICB2YXIgZnM1ID0gX19yZXF1aXJlKFwiZnNcIik7XG4gICAgZXhwb3J0cy5GSUxFX1NZU1RFTV9BREFQVEVSID0ge1xuICAgICAgbHN0YXQ6IGZzNS5sc3RhdCxcbiAgICAgIHN0YXQ6IGZzNS5zdGF0LFxuICAgICAgbHN0YXRTeW5jOiBmczUubHN0YXRTeW5jLFxuICAgICAgc3RhdFN5bmM6IGZzNS5zdGF0U3luYyxcbiAgICAgIHJlYWRkaXI6IGZzNS5yZWFkZGlyLFxuICAgICAgcmVhZGRpclN5bmM6IGZzNS5yZWFkZGlyU3luY1xuICAgIH07XG4gICAgZnVuY3Rpb24gY3JlYXRlRmlsZVN5c3RlbUFkYXB0ZXIoZnNNZXRob2RzKSB7XG4gICAgICBpZiAoZnNNZXRob2RzID09PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuRklMRV9TWVNURU1fQURBUFRFUjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4cG9ydHMuRklMRV9TWVNURU1fQURBUFRFUiksIGZzTWV0aG9kcyk7XG4gICAgfVxuICAgIGV4cG9ydHMuY3JlYXRlRmlsZVN5c3RlbUFkYXB0ZXIgPSBjcmVhdGVGaWxlU3lzdGVtQWRhcHRlcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy5zY2FuZGlyL291dC9zZXR0aW5ncy5qc1xudmFyIHJlcXVpcmVfc2V0dGluZ3MyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnNjYW5kaXIvb3V0L3NldHRpbmdzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgcGF0aDkgPSBfX3JlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBmc1N0YXQgPSByZXF1aXJlX291dCgpO1xuICAgIHZhciBmczUgPSByZXF1aXJlX2ZzNCgpO1xuICAgIHZhciBTZXR0aW5ncyA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKF9vcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IF9vcHRpb25zO1xuICAgICAgICB0aGlzLmZvbGxvd1N5bWJvbGljTGlua3MgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmZvbGxvd1N5bWJvbGljTGlua3MsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5mcyA9IGZzNS5jcmVhdGVGaWxlU3lzdGVtQWRhcHRlcih0aGlzLl9vcHRpb25zLmZzKTtcbiAgICAgICAgdGhpcy5wYXRoU2VnbWVudFNlcGFyYXRvciA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMucGF0aFNlZ21lbnRTZXBhcmF0b3IsIHBhdGg5LnNlcCk7XG4gICAgICAgIHRoaXMuc3RhdHMgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLnN0YXRzLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy50aHJvd0Vycm9yT25Ccm9rZW5TeW1ib2xpY0xpbmssIHRydWUpO1xuICAgICAgICB0aGlzLmZzU3RhdFNldHRpbmdzID0gbmV3IGZzU3RhdC5TZXR0aW5ncyh7XG4gICAgICAgICAgZm9sbG93U3ltYm9saWNMaW5rOiB0aGlzLmZvbGxvd1N5bWJvbGljTGlua3MsXG4gICAgICAgICAgZnM6IHRoaXMuZnMsXG4gICAgICAgICAgdGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rOiB0aGlzLnRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGlua1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIF9nZXRWYWx1ZShvcHRpb24sIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24gIT09IG51bGwgJiYgb3B0aW9uICE9PSB2b2lkIDAgPyBvcHRpb24gOiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFNldHRpbmdzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnNjYW5kaXIvb3V0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9vdXQyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLnNjYW5kaXIvb3V0L2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLlNldHRpbmdzID0gZXhwb3J0cy5zY2FuZGlyU3luYyA9IGV4cG9ydHMuc2NhbmRpciA9IHZvaWQgMDtcbiAgICB2YXIgYXN5bmMgPSByZXF1aXJlX2FzeW5jMigpO1xuICAgIHZhciBzeW5jID0gcmVxdWlyZV9zeW5jMigpO1xuICAgIHZhciBzZXR0aW5nc18xID0gcmVxdWlyZV9zZXR0aW5nczIoKTtcbiAgICBleHBvcnRzLlNldHRpbmdzID0gc2V0dGluZ3NfMS5kZWZhdWx0O1xuICAgIGZ1bmN0aW9uIHNjYW5kaXIocGF0aDksIG9wdGlvbnNPclNldHRpbmdzT3JDYWxsYmFjaywgY2FsbGJhY2spIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgYXN5bmMucmVhZChwYXRoOSwgZ2V0U2V0dGluZ3MoKSwgb3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXN5bmMucmVhZChwYXRoOSwgZ2V0U2V0dGluZ3Mob3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrKSwgY2FsbGJhY2spO1xuICAgIH1cbiAgICBleHBvcnRzLnNjYW5kaXIgPSBzY2FuZGlyO1xuICAgIGZ1bmN0aW9uIHNjYW5kaXJTeW5jKHBhdGg5LCBvcHRpb25zT3JTZXR0aW5ncykge1xuICAgICAgY29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhvcHRpb25zT3JTZXR0aW5ncyk7XG4gICAgICByZXR1cm4gc3luYy5yZWFkKHBhdGg5LCBzZXR0aW5ncyk7XG4gICAgfVxuICAgIGV4cG9ydHMuc2NhbmRpclN5bmMgPSBzY2FuZGlyU3luYztcbiAgICBmdW5jdGlvbiBnZXRTZXR0aW5ncyhzZXR0aW5nc09yT3B0aW9ucyA9IHt9KSB7XG4gICAgICBpZiAoc2V0dGluZ3NPck9wdGlvbnMgaW5zdGFuY2VvZiBzZXR0aW5nc18xLmRlZmF1bHQpIHtcbiAgICAgICAgcmV0dXJuIHNldHRpbmdzT3JPcHRpb25zO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBzZXR0aW5nc18xLmRlZmF1bHQoc2V0dGluZ3NPck9wdGlvbnMpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9yZXVzaWZ5L3JldXNpZnkuanNcbnZhciByZXF1aXJlX3JldXNpZnkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcmV1c2lmeS9yZXVzaWZ5LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgZnVuY3Rpb24gcmV1c2lmeShDb25zdHJ1Y3Rvcikge1xuICAgICAgdmFyIGhlYWQgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgICAgIHZhciB0YWlsID0gaGVhZDtcbiAgICAgIGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBoZWFkO1xuICAgICAgICBpZiAoY3VycmVudC5uZXh0KSB7XG4gICAgICAgICAgaGVhZCA9IGN1cnJlbnQubmV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkID0gbmV3IENvbnN0cnVjdG9yKCk7XG4gICAgICAgICAgdGFpbCA9IGhlYWQ7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudC5uZXh0ID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZWxlYXNlKG9iaikge1xuICAgICAgICB0YWlsLm5leHQgPSBvYmo7XG4gICAgICAgIHRhaWwgPSBvYmo7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQsXG4gICAgICAgIHJlbGVhc2VcbiAgICAgIH07XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gcmV1c2lmeTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0cS9xdWV1ZS5qc1xudmFyIHJlcXVpcmVfcXVldWUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdHEvcXVldWUuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgcmV1c2lmeSA9IHJlcXVpcmVfcmV1c2lmeSgpO1xuICAgIGZ1bmN0aW9uIGZhc3RxdWV1ZShjb250ZXh0LCB3b3JrZXIsIGNvbmN1cnJlbmN5KSB7XG4gICAgICBpZiAodHlwZW9mIGNvbnRleHQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25jdXJyZW5jeSA9IHdvcmtlcjtcbiAgICAgICAgd29ya2VyID0gY29udGV4dDtcbiAgICAgICAgY29udGV4dCA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoY29uY3VycmVuY3kgPCAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhc3RxdWV1ZSBjb25jdXJyZW5jeSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGNhY2hlID0gcmV1c2lmeShUYXNrKTtcbiAgICAgIHZhciBxdWV1ZUhlYWQgPSBudWxsO1xuICAgICAgdmFyIHF1ZXVlVGFpbCA9IG51bGw7XG4gICAgICB2YXIgX3J1bm5pbmcgPSAwO1xuICAgICAgdmFyIGVycm9ySGFuZGxlciA9IG51bGw7XG4gICAgICB2YXIgc2VsZiA9IHtcbiAgICAgICAgcHVzaCxcbiAgICAgICAgZHJhaW46IG5vb3AyLFxuICAgICAgICBzYXR1cmF0ZWQ6IG5vb3AyLFxuICAgICAgICBwYXVzZSxcbiAgICAgICAgcGF1c2VkOiBmYWxzZSxcbiAgICAgICAgY29uY3VycmVuY3ksXG4gICAgICAgIHJ1bm5pbmcsXG4gICAgICAgIHJlc3VtZSxcbiAgICAgICAgaWRsZSxcbiAgICAgICAgbGVuZ3RoLFxuICAgICAgICBnZXRRdWV1ZSxcbiAgICAgICAgdW5zaGlmdCxcbiAgICAgICAgZW1wdHk6IG5vb3AyLFxuICAgICAgICBraWxsLFxuICAgICAgICBraWxsQW5kRHJhaW4sXG4gICAgICAgIGVycm9yXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHNlbGY7XG4gICAgICBmdW5jdGlvbiBydW5uaW5nKCkge1xuICAgICAgICByZXR1cm4gX3J1bm5pbmc7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBwYXVzZSgpIHtcbiAgICAgICAgc2VsZi5wYXVzZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gbGVuZ3RoKCkge1xuICAgICAgICB2YXIgY3VycmVudCA9IHF1ZXVlSGVhZDtcbiAgICAgICAgdmFyIGNvdW50ZXIgPSAwO1xuICAgICAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7XG4gICAgICAgICAgY291bnRlcisrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3VudGVyO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZ2V0UXVldWUoKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcXVldWVIZWFkO1xuICAgICAgICB2YXIgdGFza3MgPSBbXTtcbiAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgICB0YXNrcy5wdXNoKGN1cnJlbnQudmFsdWUpO1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhc2tzO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcmVzdW1lKCkge1xuICAgICAgICBpZiAoIXNlbGYucGF1c2VkKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2VsZi5wYXVzZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxmLmNvbmN1cnJlbmN5OyBpKyspIHtcbiAgICAgICAgICBfcnVubmluZysrO1xuICAgICAgICAgIHJlbGVhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gaWRsZSgpIHtcbiAgICAgICAgcmV0dXJuIF9ydW5uaW5nID09PSAwICYmIHNlbGYubGVuZ3RoKCkgPT09IDA7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBwdXNoKHZhbHVlLCBkb25lKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gY2FjaGUuZ2V0KCk7XG4gICAgICAgIGN1cnJlbnQuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgIGN1cnJlbnQucmVsZWFzZSA9IHJlbGVhc2U7XG4gICAgICAgIGN1cnJlbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgY3VycmVudC5jYWxsYmFjayA9IGRvbmUgfHwgbm9vcDI7XG4gICAgICAgIGN1cnJlbnQuZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyO1xuICAgICAgICBpZiAoX3J1bm5pbmcgPT09IHNlbGYuY29uY3VycmVuY3kgfHwgc2VsZi5wYXVzZWQpIHtcbiAgICAgICAgICBpZiAocXVldWVUYWlsKSB7XG4gICAgICAgICAgICBxdWV1ZVRhaWwubmV4dCA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBxdWV1ZVRhaWwgPSBjdXJyZW50O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWV1ZUhlYWQgPSBjdXJyZW50O1xuICAgICAgICAgICAgcXVldWVUYWlsID0gY3VycmVudDtcbiAgICAgICAgICAgIHNlbGYuc2F0dXJhdGVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIF9ydW5uaW5nKys7XG4gICAgICAgICAgd29ya2VyLmNhbGwoY29udGV4dCwgY3VycmVudC52YWx1ZSwgY3VycmVudC53b3JrZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1bnNoaWZ0KHZhbHVlLCBkb25lKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gY2FjaGUuZ2V0KCk7XG4gICAgICAgIGN1cnJlbnQuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgIGN1cnJlbnQucmVsZWFzZSA9IHJlbGVhc2U7XG4gICAgICAgIGN1cnJlbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgY3VycmVudC5jYWxsYmFjayA9IGRvbmUgfHwgbm9vcDI7XG4gICAgICAgIGlmIChfcnVubmluZyA9PT0gc2VsZi5jb25jdXJyZW5jeSB8fCBzZWxmLnBhdXNlZCkge1xuICAgICAgICAgIGlmIChxdWV1ZUhlYWQpIHtcbiAgICAgICAgICAgIGN1cnJlbnQubmV4dCA9IHF1ZXVlSGVhZDtcbiAgICAgICAgICAgIHF1ZXVlSGVhZCA9IGN1cnJlbnQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXVlSGVhZCA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBxdWV1ZVRhaWwgPSBjdXJyZW50O1xuICAgICAgICAgICAgc2VsZi5zYXR1cmF0ZWQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3J1bm5pbmcrKztcbiAgICAgICAgICB3b3JrZXIuY2FsbChjb250ZXh0LCBjdXJyZW50LnZhbHVlLCBjdXJyZW50LndvcmtlZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlbGVhc2UoaG9sZGVyKSB7XG4gICAgICAgIGlmIChob2xkZXIpIHtcbiAgICAgICAgICBjYWNoZS5yZWxlYXNlKGhvbGRlcik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG5leHQgPSBxdWV1ZUhlYWQ7XG4gICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgaWYgKCFzZWxmLnBhdXNlZCkge1xuICAgICAgICAgICAgaWYgKHF1ZXVlVGFpbCA9PT0gcXVldWVIZWFkKSB7XG4gICAgICAgICAgICAgIHF1ZXVlVGFpbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBxdWV1ZUhlYWQgPSBuZXh0Lm5leHQ7XG4gICAgICAgICAgICBuZXh0Lm5leHQgPSBudWxsO1xuICAgICAgICAgICAgd29ya2VyLmNhbGwoY29udGV4dCwgbmV4dC52YWx1ZSwgbmV4dC53b3JrZWQpO1xuICAgICAgICAgICAgaWYgKHF1ZXVlVGFpbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzZWxmLmVtcHR5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF9ydW5uaW5nLS07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKC0tX3J1bm5pbmcgPT09IDApIHtcbiAgICAgICAgICBzZWxmLmRyYWluKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGtpbGwoKSB7XG4gICAgICAgIHF1ZXVlSGVhZCA9IG51bGw7XG4gICAgICAgIHF1ZXVlVGFpbCA9IG51bGw7XG4gICAgICAgIHNlbGYuZHJhaW4gPSBub29wMjtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGtpbGxBbmREcmFpbigpIHtcbiAgICAgICAgcXVldWVIZWFkID0gbnVsbDtcbiAgICAgICAgcXVldWVUYWlsID0gbnVsbDtcbiAgICAgICAgc2VsZi5kcmFpbigpO1xuICAgICAgICBzZWxmLmRyYWluID0gbm9vcDI7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBlcnJvcihoYW5kbGVyKSB7XG4gICAgICAgIGVycm9ySGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vb3AyKCkge1xuICAgIH1cbiAgICBmdW5jdGlvbiBUYXNrKCkge1xuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLmNhbGxiYWNrID0gbm9vcDI7XG4gICAgICB0aGlzLm5leHQgPSBudWxsO1xuICAgICAgdGhpcy5yZWxlYXNlID0gbm9vcDI7XG4gICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIgPSBudWxsO1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgdGhpcy53b3JrZWQgPSBmdW5jdGlvbiB3b3JrZWQoZXJyLCByZXN1bHQpIHtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gc2VsZi5jYWxsYmFjaztcbiAgICAgICAgdmFyIGVycm9ySGFuZGxlciA9IHNlbGYuZXJyb3JIYW5kbGVyO1xuICAgICAgICB2YXIgdmFsID0gc2VsZi52YWx1ZTtcbiAgICAgICAgc2VsZi52YWx1ZSA9IG51bGw7XG4gICAgICAgIHNlbGYuY2FsbGJhY2sgPSBub29wMjtcbiAgICAgICAgaWYgKHNlbGYuZXJyb3JIYW5kbGVyKSB7XG4gICAgICAgICAgZXJyb3JIYW5kbGVyKGVyciwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjay5jYWxsKHNlbGYuY29udGV4dCwgZXJyLCByZXN1bHQpO1xuICAgICAgICBzZWxmLnJlbGVhc2Uoc2VsZik7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdWV1ZUFzUHJvbWlzZWQoY29udGV4dCwgd29ya2VyLCBjb25jdXJyZW5jeSkge1xuICAgICAgaWYgKHR5cGVvZiBjb250ZXh0ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uY3VycmVuY3kgPSB3b3JrZXI7XG4gICAgICAgIHdvcmtlciA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnRleHQgPSBudWxsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gYXN5bmNXcmFwcGVyKGFyZywgY2IpIHtcbiAgICAgICAgd29ya2VyLmNhbGwodGhpcywgYXJnKS50aGVuKGZ1bmN0aW9uKHJlcykge1xuICAgICAgICAgIGNiKG51bGwsIHJlcyk7XG4gICAgICAgIH0sIGNiKTtcbiAgICAgIH1cbiAgICAgIHZhciBxdWV1ZSA9IGZhc3RxdWV1ZShjb250ZXh0LCBhc3luY1dyYXBwZXIsIGNvbmN1cnJlbmN5KTtcbiAgICAgIHZhciBwdXNoQ2IgPSBxdWV1ZS5wdXNoO1xuICAgICAgdmFyIHVuc2hpZnRDYiA9IHF1ZXVlLnVuc2hpZnQ7XG4gICAgICBxdWV1ZS5wdXNoID0gcHVzaDtcbiAgICAgIHF1ZXVlLnVuc2hpZnQgPSB1bnNoaWZ0O1xuICAgICAgcXVldWUuZHJhaW5lZCA9IGRyYWluZWQ7XG4gICAgICByZXR1cm4gcXVldWU7XG4gICAgICBmdW5jdGlvbiBwdXNoKHZhbHVlKSB7XG4gICAgICAgIHZhciBwID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZTIsIHJlamVjdCkge1xuICAgICAgICAgIHB1c2hDYih2YWx1ZSwgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUyKHJlc3VsdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBwLmNhdGNoKG5vb3AyKTtcbiAgICAgICAgcmV0dXJuIHA7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1bnNoaWZ0KHZhbHVlKSB7XG4gICAgICAgIHZhciBwID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZTIsIHJlamVjdCkge1xuICAgICAgICAgIHVuc2hpZnRDYih2YWx1ZSwgZnVuY3Rpb24oZXJyLCByZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc29sdmUyKHJlc3VsdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBwLmNhdGNoKG5vb3AyKTtcbiAgICAgICAgcmV0dXJuIHA7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBkcmFpbmVkKCkge1xuICAgICAgICBpZiAocXVldWUuaWRsZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUyKSB7XG4gICAgICAgICAgICByZXNvbHZlMigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmV2aW91c0RyYWluID0gcXVldWUuZHJhaW47XG4gICAgICAgIHZhciBwID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZTIpIHtcbiAgICAgICAgICBxdWV1ZS5kcmFpbiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcHJldmlvdXNEcmFpbigpO1xuICAgICAgICAgICAgcmVzb2x2ZTIoKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHA7XG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gZmFzdHF1ZXVlO1xuICAgIG1vZHVsZS5leHBvcnRzLnByb21pc2UgPSBxdWV1ZUFzUHJvbWlzZWQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcmVhZGVycy9jb21tb24uanNcbnZhciByZXF1aXJlX2NvbW1vbjIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcmVhZGVycy9jb21tb24uanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGV4cG9ydHMuam9pblBhdGhTZWdtZW50cyA9IGV4cG9ydHMucmVwbGFjZVBhdGhTZWdtZW50U2VwYXJhdG9yID0gZXhwb3J0cy5pc0FwcGxpZWRGaWx0ZXIgPSBleHBvcnRzLmlzRmF0YWxFcnJvciA9IHZvaWQgMDtcbiAgICBmdW5jdGlvbiBpc0ZhdGFsRXJyb3Ioc2V0dGluZ3MsIGVycm9yKSB7XG4gICAgICBpZiAoc2V0dGluZ3MuZXJyb3JGaWx0ZXIgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gIXNldHRpbmdzLmVycm9yRmlsdGVyKGVycm9yKTtcbiAgICB9XG4gICAgZXhwb3J0cy5pc0ZhdGFsRXJyb3IgPSBpc0ZhdGFsRXJyb3I7XG4gICAgZnVuY3Rpb24gaXNBcHBsaWVkRmlsdGVyKGZpbHRlciwgdmFsdWUpIHtcbiAgICAgIHJldHVybiBmaWx0ZXIgPT09IG51bGwgfHwgZmlsdGVyKHZhbHVlKTtcbiAgICB9XG4gICAgZXhwb3J0cy5pc0FwcGxpZWRGaWx0ZXIgPSBpc0FwcGxpZWRGaWx0ZXI7XG4gICAgZnVuY3Rpb24gcmVwbGFjZVBhdGhTZWdtZW50U2VwYXJhdG9yKGZpbGVwYXRoLCBzZXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiBmaWxlcGF0aC5zcGxpdCgvWy9cXFxcXS8pLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG4gICAgZXhwb3J0cy5yZXBsYWNlUGF0aFNlZ21lbnRTZXBhcmF0b3IgPSByZXBsYWNlUGF0aFNlZ21lbnRTZXBhcmF0b3I7XG4gICAgZnVuY3Rpb24gam9pblBhdGhTZWdtZW50cyhhLCBiLCBzZXBhcmF0b3IpIHtcbiAgICAgIGlmIChhID09PSBcIlwiKSB7XG4gICAgICAgIHJldHVybiBiO1xuICAgICAgfVxuICAgICAgaWYgKGEuZW5kc1dpdGgoc2VwYXJhdG9yKSkge1xuICAgICAgICByZXR1cm4gYSArIGI7XG4gICAgICB9XG4gICAgICByZXR1cm4gYSArIHNlcGFyYXRvciArIGI7XG4gICAgfVxuICAgIGV4cG9ydHMuam9pblBhdGhTZWdtZW50cyA9IGpvaW5QYXRoU2VnbWVudHM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcmVhZGVycy9yZWFkZXIuanNcbnZhciByZXF1aXJlX3JlYWRlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy53YWxrL291dC9yZWFkZXJzL3JlYWRlci5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIGNvbW1vbiA9IHJlcXVpcmVfY29tbW9uMigpO1xuICAgIHZhciBSZWFkZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfcm9vdCwgX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSBfcm9vdDtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSBjb21tb24ucmVwbGFjZVBhdGhTZWdtZW50U2VwYXJhdG9yKF9yb290LCBfc2V0dGluZ3MucGF0aFNlZ21lbnRTZXBhcmF0b3IpO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gUmVhZGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L3JlYWRlcnMvYXN5bmMuanNcbnZhciByZXF1aXJlX2FzeW5jMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy53YWxrL291dC9yZWFkZXJzL2FzeW5jLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgZXZlbnRzXzEgPSBfX3JlcXVpcmUoXCJldmVudHNcIik7XG4gICAgdmFyIGZzU2NhbmRpciA9IHJlcXVpcmVfb3V0MigpO1xuICAgIHZhciBmYXN0cSA9IHJlcXVpcmVfcXVldWUoKTtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24yKCk7XG4gICAgdmFyIHJlYWRlcl8xID0gcmVxdWlyZV9yZWFkZXIoKTtcbiAgICB2YXIgQXN5bmNSZWFkZXIgPSBjbGFzcyBleHRlbmRzIHJlYWRlcl8xLmRlZmF1bHQge1xuICAgICAgY29uc3RydWN0b3IoX3Jvb3QsIF9zZXR0aW5ncykge1xuICAgICAgICBzdXBlcihfcm9vdCwgX3NldHRpbmdzKTtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX3NjYW5kaXIgPSBmc1NjYW5kaXIuc2NhbmRpcjtcbiAgICAgICAgdGhpcy5fZW1pdHRlciA9IG5ldyBldmVudHNfMS5FdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5fcXVldWUgPSBmYXN0cSh0aGlzLl93b3JrZXIuYmluZCh0aGlzKSwgdGhpcy5fc2V0dGluZ3MuY29uY3VycmVuY3kpO1xuICAgICAgICB0aGlzLl9pc0ZhdGFsRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faXNEZXN0cm95ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcXVldWUuZHJhaW4gPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9pc0ZhdGFsRXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXR0ZXIuZW1pdChcImVuZFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZWFkKCkge1xuICAgICAgICB0aGlzLl9pc0ZhdGFsRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faXNEZXN0cm95ZWQgPSBmYWxzZTtcbiAgICAgICAgc2V0SW1tZWRpYXRlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9wdXNoVG9RdWV1ZSh0aGlzLl9yb290LCB0aGlzLl9zZXR0aW5ncy5iYXNlUGF0aCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW1pdHRlcjtcbiAgICAgIH1cbiAgICAgIGdldCBpc0Rlc3Ryb3llZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRGVzdHJveWVkO1xuICAgICAgfVxuICAgICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzRGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIHJlYWRlciBpcyBhbHJlYWR5IGRlc3Ryb3llZFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3F1ZXVlLmtpbGxBbmREcmFpbigpO1xuICAgICAgfVxuICAgICAgb25FbnRyeShjYWxsYmFjaykge1xuICAgICAgICB0aGlzLl9lbWl0dGVyLm9uKFwiZW50cnlcIiwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgICAgb25FcnJvcihjYWxsYmFjaykge1xuICAgICAgICB0aGlzLl9lbWl0dGVyLm9uY2UoXCJlcnJvclwiLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgICBvbkVuZChjYWxsYmFjaykge1xuICAgICAgICB0aGlzLl9lbWl0dGVyLm9uY2UoXCJlbmRcIiwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgICAgX3B1c2hUb1F1ZXVlKGRpcmVjdG9yeSwgYmFzZSkge1xuICAgICAgICBjb25zdCBxdWV1ZUl0ZW0gPSB7IGRpcmVjdG9yeSwgYmFzZSB9O1xuICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKHF1ZXVlSXRlbSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIF93b3JrZXIoaXRlbSwgZG9uZSkge1xuICAgICAgICB0aGlzLl9zY2FuZGlyKGl0ZW0uZGlyZWN0b3J5LCB0aGlzLl9zZXR0aW5ncy5mc1NjYW5kaXJTZXR0aW5ncywgKGVycm9yLCBlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICBkb25lKGVycm9yLCB2b2lkIDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVudHJ5KGVudHJ5LCBpdGVtLmJhc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkb25lKG51bGwsIHZvaWQgMCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgX2hhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0Rlc3Ryb3llZCB8fCAhY29tbW9uLmlzRmF0YWxFcnJvcih0aGlzLl9zZXR0aW5ncywgZXJyb3IpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzRmF0YWxFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMuX2lzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdHRlci5lbWl0KFwiZXJyb3JcIiwgZXJyb3IpO1xuICAgICAgfVxuICAgICAgX2hhbmRsZUVudHJ5KGVudHJ5LCBiYXNlKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0Rlc3Ryb3llZCB8fCB0aGlzLl9pc0ZhdGFsRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVsbHBhdGggPSBlbnRyeS5wYXRoO1xuICAgICAgICBpZiAoYmFzZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgZW50cnkucGF0aCA9IGNvbW1vbi5qb2luUGF0aFNlZ21lbnRzKGJhc2UsIGVudHJ5Lm5hbWUsIHRoaXMuX3NldHRpbmdzLnBhdGhTZWdtZW50U2VwYXJhdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tbW9uLmlzQXBwbGllZEZpbHRlcih0aGlzLl9zZXR0aW5ncy5lbnRyeUZpbHRlciwgZW50cnkpKSB7XG4gICAgICAgICAgdGhpcy5fZW1pdEVudHJ5KGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkuZGlyZW50LmlzRGlyZWN0b3J5KCkgJiYgY29tbW9uLmlzQXBwbGllZEZpbHRlcih0aGlzLl9zZXR0aW5ncy5kZWVwRmlsdGVyLCBlbnRyeSkpIHtcbiAgICAgICAgICB0aGlzLl9wdXNoVG9RdWV1ZShmdWxscGF0aCwgYmFzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZW50cnkucGF0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIF9lbWl0RW50cnkoZW50cnkpIHtcbiAgICAgICAgdGhpcy5fZW1pdHRlci5lbWl0KFwiZW50cnlcIiwgZW50cnkpO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gQXN5bmNSZWFkZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcHJvdmlkZXJzL2FzeW5jLmpzXG52YXIgcmVxdWlyZV9hc3luYzQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcHJvdmlkZXJzL2FzeW5jLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMzKCk7XG4gICAgdmFyIEFzeW5jUHJvdmlkZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfcm9vdCwgX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSBfcm9vdDtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX3JlYWRlciA9IG5ldyBhc3luY18xLmRlZmF1bHQodGhpcy5fcm9vdCwgdGhpcy5fc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLl9zdG9yYWdlID0gW107XG4gICAgICB9XG4gICAgICByZWFkKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuX3JlYWRlci5vbkVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNhbGxGYWlsdXJlQ2FsbGJhY2soY2FsbGJhY2ssIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3JlYWRlci5vbkVudHJ5KChlbnRyeSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3N0b3JhZ2UucHVzaChlbnRyeSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yZWFkZXIub25FbmQoKCkgPT4ge1xuICAgICAgICAgIGNhbGxTdWNjZXNzQ2FsbGJhY2soY2FsbGJhY2ssIHRoaXMuX3N0b3JhZ2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVhZGVyLnJlYWQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IEFzeW5jUHJvdmlkZXI7XG4gICAgZnVuY3Rpb24gY2FsbEZhaWx1cmVDYWxsYmFjayhjYWxsYmFjaywgZXJyb3IpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbFN1Y2Nlc3NDYWxsYmFjayhjYWxsYmFjaywgZW50cmllcykge1xuICAgICAgY2FsbGJhY2sobnVsbCwgZW50cmllcyk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L3Byb3ZpZGVycy9zdHJlYW0uanNcbnZhciByZXF1aXJlX3N0cmVhbTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcHJvdmlkZXJzL3N0cmVhbS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIHN0cmVhbV8xID0gX19yZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYzMoKTtcbiAgICB2YXIgU3RyZWFtUHJvdmlkZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfcm9vdCwgX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSBfcm9vdDtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX3JlYWRlciA9IG5ldyBhc3luY18xLmRlZmF1bHQodGhpcy5fcm9vdCwgdGhpcy5fc2V0dGluZ3MpO1xuICAgICAgICB0aGlzLl9zdHJlYW0gPSBuZXcgc3RyZWFtXzEuUmVhZGFibGUoe1xuICAgICAgICAgIG9iamVjdE1vZGU6IHRydWUsXG4gICAgICAgICAgcmVhZDogKCkgPT4ge1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVzdHJveTogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9yZWFkZXIuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fcmVhZGVyLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmVhZCgpIHtcbiAgICAgICAgdGhpcy5fcmVhZGVyLm9uRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RyZWFtLmVtaXQoXCJlcnJvclwiLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yZWFkZXIub25FbnRyeSgoZW50cnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9zdHJlYW0ucHVzaChlbnRyeSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yZWFkZXIub25FbmQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3N0cmVhbS5wdXNoKG51bGwpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmVhbTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFN0cmVhbVByb3ZpZGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L3JlYWRlcnMvc3luYy5qc1xudmFyIHJlcXVpcmVfc3luYzMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcmVhZGVycy9zeW5jLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgZnNTY2FuZGlyID0gcmVxdWlyZV9vdXQyKCk7XG4gICAgdmFyIGNvbW1vbiA9IHJlcXVpcmVfY29tbW9uMigpO1xuICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyKCk7XG4gICAgdmFyIFN5bmNSZWFkZXIgPSBjbGFzcyBleHRlbmRzIHJlYWRlcl8xLmRlZmF1bHQge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuX3NjYW5kaXIgPSBmc1NjYW5kaXIuc2NhbmRpclN5bmM7XG4gICAgICAgIHRoaXMuX3N0b3JhZ2UgPSBbXTtcbiAgICAgICAgdGhpcy5fcXVldWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICAgICAgfVxuICAgICAgcmVhZCgpIHtcbiAgICAgICAgdGhpcy5fcHVzaFRvUXVldWUodGhpcy5fcm9vdCwgdGhpcy5fc2V0dGluZ3MuYmFzZVBhdGgpO1xuICAgICAgICB0aGlzLl9oYW5kbGVRdWV1ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZTtcbiAgICAgIH1cbiAgICAgIF9wdXNoVG9RdWV1ZShkaXJlY3RvcnksIGJhc2UpIHtcbiAgICAgICAgdGhpcy5fcXVldWUuYWRkKHsgZGlyZWN0b3J5LCBiYXNlIH0pO1xuICAgICAgfVxuICAgICAgX2hhbmRsZVF1ZXVlKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5fcXVldWUudmFsdWVzKCkpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVEaXJlY3RvcnkoaXRlbS5kaXJlY3RvcnksIGl0ZW0uYmFzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIF9oYW5kbGVEaXJlY3RvcnkoZGlyZWN0b3J5LCBiYXNlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IHRoaXMuX3NjYW5kaXIoZGlyZWN0b3J5LCB0aGlzLl9zZXR0aW5ncy5mc1NjYW5kaXJTZXR0aW5ncyk7XG4gICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVFbnRyeShlbnRyeSwgYmFzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgX2hhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmICghY29tbW9uLmlzRmF0YWxFcnJvcih0aGlzLl9zZXR0aW5ncywgZXJyb3IpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgX2hhbmRsZUVudHJ5KGVudHJ5LCBiYXNlKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxwYXRoID0gZW50cnkucGF0aDtcbiAgICAgICAgaWYgKGJhc2UgIT09IHZvaWQgMCkge1xuICAgICAgICAgIGVudHJ5LnBhdGggPSBjb21tb24uam9pblBhdGhTZWdtZW50cyhiYXNlLCBlbnRyeS5uYW1lLCB0aGlzLl9zZXR0aW5ncy5wYXRoU2VnbWVudFNlcGFyYXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbW1vbi5pc0FwcGxpZWRGaWx0ZXIodGhpcy5fc2V0dGluZ3MuZW50cnlGaWx0ZXIsIGVudHJ5KSkge1xuICAgICAgICAgIHRoaXMuX3B1c2hUb1N0b3JhZ2UoZW50cnkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5kaXJlbnQuaXNEaXJlY3RvcnkoKSAmJiBjb21tb24uaXNBcHBsaWVkRmlsdGVyKHRoaXMuX3NldHRpbmdzLmRlZXBGaWx0ZXIsIGVudHJ5KSkge1xuICAgICAgICAgIHRoaXMuX3B1c2hUb1F1ZXVlKGZ1bGxwYXRoLCBiYXNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlbnRyeS5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgX3B1c2hUb1N0b3JhZ2UoZW50cnkpIHtcbiAgICAgICAgdGhpcy5fc3RvcmFnZS5wdXNoKGVudHJ5KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFN5bmNSZWFkZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQG5vZGVsaWIvZnMud2Fsay9vdXQvcHJvdmlkZXJzL3N5bmMuanNcbnZhciByZXF1aXJlX3N5bmM0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L3Byb3ZpZGVycy9zeW5jLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgc3luY18xID0gcmVxdWlyZV9zeW5jMygpO1xuICAgIHZhciBTeW5jUHJvdmlkZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfcm9vdCwgX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSBfcm9vdDtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX3JlYWRlciA9IG5ldyBzeW5jXzEuZGVmYXVsdCh0aGlzLl9yb290LCB0aGlzLl9zZXR0aW5ncyk7XG4gICAgICB9XG4gICAgICByZWFkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZGVyLnJlYWQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFN5bmNQcm92aWRlcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9Abm9kZWxpYi9mcy53YWxrL291dC9zZXR0aW5ncy5qc1xudmFyIHJlcXVpcmVfc2V0dGluZ3MzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L3NldHRpbmdzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgcGF0aDkgPSBfX3JlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBmc1NjYW5kaXIgPSByZXF1aXJlX291dDIoKTtcbiAgICB2YXIgU2V0dGluZ3MgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBfb3B0aW9ucztcbiAgICAgICAgdGhpcy5iYXNlUGF0aCA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMuYmFzZVBhdGgsIHZvaWQgMCk7XG4gICAgICAgIHRoaXMuY29uY3VycmVuY3kgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmNvbmN1cnJlbmN5LCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpO1xuICAgICAgICB0aGlzLmRlZXBGaWx0ZXIgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmRlZXBGaWx0ZXIsIG51bGwpO1xuICAgICAgICB0aGlzLmVudHJ5RmlsdGVyID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5lbnRyeUZpbHRlciwgbnVsbCk7XG4gICAgICAgIHRoaXMuZXJyb3JGaWx0ZXIgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmVycm9yRmlsdGVyLCBudWxsKTtcbiAgICAgICAgdGhpcy5wYXRoU2VnbWVudFNlcGFyYXRvciA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMucGF0aFNlZ21lbnRTZXBhcmF0b3IsIHBhdGg5LnNlcCk7XG4gICAgICAgIHRoaXMuZnNTY2FuZGlyU2V0dGluZ3MgPSBuZXcgZnNTY2FuZGlyLlNldHRpbmdzKHtcbiAgICAgICAgICBmb2xsb3dTeW1ib2xpY0xpbmtzOiB0aGlzLl9vcHRpb25zLmZvbGxvd1N5bWJvbGljTGlua3MsXG4gICAgICAgICAgZnM6IHRoaXMuX29wdGlvbnMuZnMsXG4gICAgICAgICAgcGF0aFNlZ21lbnRTZXBhcmF0b3I6IHRoaXMuX29wdGlvbnMucGF0aFNlZ21lbnRTZXBhcmF0b3IsXG4gICAgICAgICAgc3RhdHM6IHRoaXMuX29wdGlvbnMuc3RhdHMsXG4gICAgICAgICAgdGhyb3dFcnJvck9uQnJva2VuU3ltYm9saWNMaW5rOiB0aGlzLl9vcHRpb25zLnRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGlua1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIF9nZXRWYWx1ZShvcHRpb24sIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBvcHRpb24gIT09IG51bGwgJiYgb3B0aW9uICE9PSB2b2lkIDAgPyBvcHRpb24gOiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFNldHRpbmdzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9vdXQzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0Bub2RlbGliL2ZzLndhbGsvb3V0L2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLlNldHRpbmdzID0gZXhwb3J0cy53YWxrU3RyZWFtID0gZXhwb3J0cy53YWxrU3luYyA9IGV4cG9ydHMud2FsayA9IHZvaWQgMDtcbiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmM0KCk7XG4gICAgdmFyIHN0cmVhbV8xID0gcmVxdWlyZV9zdHJlYW0yKCk7XG4gICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYzQoKTtcbiAgICB2YXIgc2V0dGluZ3NfMSA9IHJlcXVpcmVfc2V0dGluZ3MzKCk7XG4gICAgZXhwb3J0cy5TZXR0aW5ncyA9IHNldHRpbmdzXzEuZGVmYXVsdDtcbiAgICBmdW5jdGlvbiB3YWxrKGRpcmVjdG9yeSwgb3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrLCBjYWxsYmFjaykge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JTZXR0aW5nc09yQ2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBuZXcgYXN5bmNfMS5kZWZhdWx0KGRpcmVjdG9yeSwgZ2V0U2V0dGluZ3MoKSkucmVhZChvcHRpb25zT3JTZXR0aW5nc09yQ2FsbGJhY2spO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuZXcgYXN5bmNfMS5kZWZhdWx0KGRpcmVjdG9yeSwgZ2V0U2V0dGluZ3Mob3B0aW9uc09yU2V0dGluZ3NPckNhbGxiYWNrKSkucmVhZChjYWxsYmFjayk7XG4gICAgfVxuICAgIGV4cG9ydHMud2FsayA9IHdhbGs7XG4gICAgZnVuY3Rpb24gd2Fsa1N5bmMoZGlyZWN0b3J5LCBvcHRpb25zT3JTZXR0aW5ncykge1xuICAgICAgY29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhvcHRpb25zT3JTZXR0aW5ncyk7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5ldyBzeW5jXzEuZGVmYXVsdChkaXJlY3RvcnksIHNldHRpbmdzKTtcbiAgICAgIHJldHVybiBwcm92aWRlci5yZWFkKCk7XG4gICAgfVxuICAgIGV4cG9ydHMud2Fsa1N5bmMgPSB3YWxrU3luYztcbiAgICBmdW5jdGlvbiB3YWxrU3RyZWFtKGRpcmVjdG9yeSwgb3B0aW9uc09yU2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3Mob3B0aW9uc09yU2V0dGluZ3MpO1xuICAgICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgc3RyZWFtXzEuZGVmYXVsdChkaXJlY3RvcnksIHNldHRpbmdzKTtcbiAgICAgIHJldHVybiBwcm92aWRlci5yZWFkKCk7XG4gICAgfVxuICAgIGV4cG9ydHMud2Fsa1N0cmVhbSA9IHdhbGtTdHJlYW07XG4gICAgZnVuY3Rpb24gZ2V0U2V0dGluZ3Moc2V0dGluZ3NPck9wdGlvbnMgPSB7fSkge1xuICAgICAgaWYgKHNldHRpbmdzT3JPcHRpb25zIGluc3RhbmNlb2Ygc2V0dGluZ3NfMS5kZWZhdWx0KSB7XG4gICAgICAgIHJldHVybiBzZXR0aW5nc09yT3B0aW9ucztcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgc2V0dGluZ3NfMS5kZWZhdWx0KHNldHRpbmdzT3JPcHRpb25zKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9yZWFkZXJzL3JlYWRlci5qc1xudmFyIHJlcXVpcmVfcmVhZGVyMiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3JlYWRlcnMvcmVhZGVyLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgcGF0aDkgPSBfX3JlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBmc1N0YXQgPSByZXF1aXJlX291dCgpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMzKCk7XG4gICAgdmFyIFJlYWRlciA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKF9zZXR0aW5ncykge1xuICAgICAgICB0aGlzLl9zZXR0aW5ncyA9IF9zZXR0aW5ncztcbiAgICAgICAgdGhpcy5fZnNTdGF0U2V0dGluZ3MgPSBuZXcgZnNTdGF0LlNldHRpbmdzKHtcbiAgICAgICAgICBmb2xsb3dTeW1ib2xpY0xpbms6IHRoaXMuX3NldHRpbmdzLmZvbGxvd1N5bWJvbGljTGlua3MsXG4gICAgICAgICAgZnM6IHRoaXMuX3NldHRpbmdzLmZzLFxuICAgICAgICAgIHRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGluazogdGhpcy5fc2V0dGluZ3MuZm9sbG93U3ltYm9saWNMaW5rc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIF9nZXRGdWxsRW50cnlQYXRoKGZpbGVwYXRoKSB7XG4gICAgICAgIHJldHVybiBwYXRoOS5yZXNvbHZlKHRoaXMuX3NldHRpbmdzLmN3ZCwgZmlsZXBhdGgpO1xuICAgICAgfVxuICAgICAgX21ha2VFbnRyeShzdGF0cywgcGF0dGVybikge1xuICAgICAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAgICBuYW1lOiBwYXR0ZXJuLFxuICAgICAgICAgIHBhdGg6IHBhdHRlcm4sXG4gICAgICAgICAgZGlyZW50OiB1dGlscy5mcy5jcmVhdGVEaXJlbnRGcm9tU3RhdHMocGF0dGVybiwgc3RhdHMpXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9zZXR0aW5ncy5zdGF0cykge1xuICAgICAgICAgIGVudHJ5LnN0YXRzID0gc3RhdHM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgfVxuICAgICAgX2lzRmF0YWxFcnJvcihlcnJvcikge1xuICAgICAgICByZXR1cm4gIXV0aWxzLmVycm5vLmlzRW5vZW50Q29kZUVycm9yKGVycm9yKSAmJiAhdGhpcy5fc2V0dGluZ3Muc3VwcHJlc3NFcnJvcnM7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBSZWFkZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9yZWFkZXJzL3N0cmVhbS5qc1xudmFyIHJlcXVpcmVfc3RyZWFtMyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3JlYWRlcnMvc3RyZWFtLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgc3RyZWFtXzEgPSBfX3JlcXVpcmUoXCJzdHJlYW1cIik7XG4gICAgdmFyIGZzU3RhdCA9IHJlcXVpcmVfb3V0KCk7XG4gICAgdmFyIGZzV2FsayA9IHJlcXVpcmVfb3V0MygpO1xuICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyMigpO1xuICAgIHZhciBSZWFkZXJTdHJlYW0gPSBjbGFzcyBleHRlbmRzIHJlYWRlcl8xLmRlZmF1bHQge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuX3dhbGtTdHJlYW0gPSBmc1dhbGsud2Fsa1N0cmVhbTtcbiAgICAgICAgdGhpcy5fc3RhdCA9IGZzU3RhdC5zdGF0O1xuICAgICAgfVxuICAgICAgZHluYW1pYyhyb290LCBvcHRpb25zOCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Fsa1N0cmVhbShyb290LCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgICBzdGF0aWMocGF0dGVybnMsIG9wdGlvbnM4KSB7XG4gICAgICAgIGNvbnN0IGZpbGVwYXRocyA9IHBhdHRlcm5zLm1hcCh0aGlzLl9nZXRGdWxsRW50cnlQYXRoLCB0aGlzKTtcbiAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IHN0cmVhbV8xLlBhc3NUaHJvdWdoKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgICAgICAgc3RyZWFtLl93cml0ZSA9IChpbmRleCwgX2VuYywgZG9uZSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9nZXRFbnRyeShmaWxlcGF0aHNbaW5kZXhdLCBwYXR0ZXJuc1tpbmRleF0sIG9wdGlvbnM4KS50aGVuKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVudHJ5ICE9PSBudWxsICYmIG9wdGlvbnM4LmVudHJ5RmlsdGVyKGVudHJ5KSkge1xuICAgICAgICAgICAgICBzdHJlYW0ucHVzaChlbnRyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGZpbGVwYXRocy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIHN0cmVhbS5lbmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgICB9KS5jYXRjaChkb25lKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcGF0aHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBzdHJlYW0ud3JpdGUoaSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cmVhbTtcbiAgICAgIH1cbiAgICAgIF9nZXRFbnRyeShmaWxlcGF0aCwgcGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFN0YXQoZmlsZXBhdGgpLnRoZW4oKHN0YXRzKSA9PiB0aGlzLl9tYWtlRW50cnkoc3RhdHMsIHBhdHRlcm4pKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9uczguZXJyb3JGaWx0ZXIoZXJyb3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgX2dldFN0YXQoZmlsZXBhdGgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlMiwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgdGhpcy5fc3RhdChmaWxlcGF0aCwgdGhpcy5fZnNTdGF0U2V0dGluZ3MsIChlcnJvciwgc3RhdHMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvciA9PT0gbnVsbCA/IHJlc29sdmUyKHN0YXRzKSA6IHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gUmVhZGVyU3RyZWFtO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcmVhZGVycy9hc3luYy5qc1xudmFyIHJlcXVpcmVfYXN5bmM1ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcmVhZGVycy9hc3luYy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIGZzV2FsayA9IHJlcXVpcmVfb3V0MygpO1xuICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyMigpO1xuICAgIHZhciBzdHJlYW1fMSA9IHJlcXVpcmVfc3RyZWFtMygpO1xuICAgIHZhciBSZWFkZXJBc3luYyA9IGNsYXNzIGV4dGVuZHMgcmVhZGVyXzEuZGVmYXVsdCB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5fd2Fsa0FzeW5jID0gZnNXYWxrLndhbGs7XG4gICAgICAgIHRoaXMuX3JlYWRlclN0cmVhbSA9IG5ldyBzdHJlYW1fMS5kZWZhdWx0KHRoaXMuX3NldHRpbmdzKTtcbiAgICAgIH1cbiAgICAgIGR5bmFtaWMocm9vdCwgb3B0aW9uczgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlMiwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgdGhpcy5fd2Fsa0FzeW5jKHJvb3QsIG9wdGlvbnM4LCAoZXJyb3IsIGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXNvbHZlMihlbnRyaWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgYXN5bmMgc3RhdGljKHBhdHRlcm5zLCBvcHRpb25zOCkge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IHRoaXMuX3JlYWRlclN0cmVhbS5zdGF0aWMocGF0dGVybnMsIG9wdGlvbnM4KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlMiwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgc3RyZWFtLm9uY2UoXCJlcnJvclwiLCByZWplY3QpO1xuICAgICAgICAgIHN0cmVhbS5vbihcImRhdGFcIiwgKGVudHJ5KSA9PiBlbnRyaWVzLnB1c2goZW50cnkpKTtcbiAgICAgICAgICBzdHJlYW0ub25jZShcImVuZFwiLCAoKSA9PiByZXNvbHZlMihlbnRyaWVzKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gUmVhZGVyQXN5bmM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvbWF0Y2hlcnMvbWF0Y2hlci5qc1xudmFyIHJlcXVpcmVfbWF0Y2hlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3Byb3ZpZGVycy9tYXRjaGVycy9tYXRjaGVyLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzMygpO1xuICAgIHZhciBNYXRjaGVyID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoX3BhdHRlcm5zLCBfc2V0dGluZ3MsIF9taWNyb21hdGNoT3B0aW9ucykge1xuICAgICAgICB0aGlzLl9wYXR0ZXJucyA9IF9wYXR0ZXJucztcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX21pY3JvbWF0Y2hPcHRpb25zID0gX21pY3JvbWF0Y2hPcHRpb25zO1xuICAgICAgICB0aGlzLl9zdG9yYWdlID0gW107XG4gICAgICAgIHRoaXMuX2ZpbGxTdG9yYWdlKCk7XG4gICAgICB9XG4gICAgICBfZmlsbFN0b3JhZ2UoKSB7XG4gICAgICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiB0aGlzLl9wYXR0ZXJucykge1xuICAgICAgICAgIGNvbnN0IHNlZ21lbnRzID0gdGhpcy5fZ2V0UGF0dGVyblNlZ21lbnRzKHBhdHRlcm4pO1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5fc3BsaXRTZWdtZW50c0ludG9TZWN0aW9ucyhzZWdtZW50cyk7XG4gICAgICAgICAgdGhpcy5fc3RvcmFnZS5wdXNoKHtcbiAgICAgICAgICAgIGNvbXBsZXRlOiBzZWN0aW9ucy5sZW5ndGggPD0gMSxcbiAgICAgICAgICAgIHBhdHRlcm4sXG4gICAgICAgICAgICBzZWdtZW50cyxcbiAgICAgICAgICAgIHNlY3Rpb25zXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIF9nZXRQYXR0ZXJuU2VnbWVudHMocGF0dGVybikge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IHV0aWxzLnBhdHRlcm4uZ2V0UGF0dGVyblBhcnRzKHBhdHRlcm4sIHRoaXMuX21pY3JvbWF0Y2hPcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIHBhcnRzLm1hcCgocGFydCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSB1dGlscy5wYXR0ZXJuLmlzRHluYW1pY1BhdHRlcm4ocGFydCwgdGhpcy5fc2V0dGluZ3MpO1xuICAgICAgICAgIGlmICghZHluYW1pYykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZHluYW1pYzogZmFsc2UsXG4gICAgICAgICAgICAgIHBhdHRlcm46IHBhcnRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkeW5hbWljOiB0cnVlLFxuICAgICAgICAgICAgcGF0dGVybjogcGFydCxcbiAgICAgICAgICAgIHBhdHRlcm5SZTogdXRpbHMucGF0dGVybi5tYWtlUmUocGFydCwgdGhpcy5fbWljcm9tYXRjaE9wdGlvbnMpXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBfc3BsaXRTZWdtZW50c0ludG9TZWN0aW9ucyhzZWdtZW50cykge1xuICAgICAgICByZXR1cm4gdXRpbHMuYXJyYXkuc3BsaXRXaGVuKHNlZ21lbnRzLCAoc2VnbWVudCkgPT4gc2VnbWVudC5keW5hbWljICYmIHV0aWxzLnBhdHRlcm4uaGFzR2xvYlN0YXIoc2VnbWVudC5wYXR0ZXJuKSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBNYXRjaGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcHJvdmlkZXJzL21hdGNoZXJzL3BhcnRpYWwuanNcbnZhciByZXF1aXJlX3BhcnRpYWwgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvbWF0Y2hlcnMvcGFydGlhbC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIG1hdGNoZXJfMSA9IHJlcXVpcmVfbWF0Y2hlcigpO1xuICAgIHZhciBQYXJ0aWFsTWF0Y2hlciA9IGNsYXNzIGV4dGVuZHMgbWF0Y2hlcl8xLmRlZmF1bHQge1xuICAgICAgbWF0Y2goZmlsZXBhdGgpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBmaWxlcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IGxldmVscyA9IHBhcnRzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcGF0dGVybnMgPSB0aGlzLl9zdG9yYWdlLmZpbHRlcigoaW5mbykgPT4gIWluZm8uY29tcGxldGUgfHwgaW5mby5zZWdtZW50cy5sZW5ndGggPiBsZXZlbHMpO1xuICAgICAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgcGF0dGVybnMpIHtcbiAgICAgICAgICBjb25zdCBzZWN0aW9uID0gcGF0dGVybi5zZWN0aW9uc1swXTtcbiAgICAgICAgICBpZiAoIXBhdHRlcm4uY29tcGxldGUgJiYgbGV2ZWxzID4gc2VjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHBhcnRzLmV2ZXJ5KChwYXJ0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VnbWVudCA9IHBhdHRlcm4uc2VnbWVudHNbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHNlZ21lbnQuZHluYW1pYyAmJiBzZWdtZW50LnBhdHRlcm5SZS50ZXN0KHBhcnQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzZWdtZW50LmR5bmFtaWMgJiYgc2VnbWVudC5wYXR0ZXJuID09PSBwYXJ0KSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFBhcnRpYWxNYXRjaGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcHJvdmlkZXJzL2ZpbHRlcnMvZGVlcC5qc1xudmFyIHJlcXVpcmVfZGVlcCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3Byb3ZpZGVycy9maWx0ZXJzL2RlZXAuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMzKCk7XG4gICAgdmFyIHBhcnRpYWxfMSA9IHJlcXVpcmVfcGFydGlhbCgpO1xuICAgIHZhciBEZWVwRmlsdGVyID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoX3NldHRpbmdzLCBfbWljcm9tYXRjaE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuX21pY3JvbWF0Y2hPcHRpb25zID0gX21pY3JvbWF0Y2hPcHRpb25zO1xuICAgICAgfVxuICAgICAgZ2V0RmlsdGVyKGJhc2VQYXRoLCBwb3NpdGl2ZSwgbmVnYXRpdmUpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlciA9IHRoaXMuX2dldE1hdGNoZXIocG9zaXRpdmUpO1xuICAgICAgICBjb25zdCBuZWdhdGl2ZVJlID0gdGhpcy5fZ2V0TmVnYXRpdmVQYXR0ZXJuc1JlKG5lZ2F0aXZlKTtcbiAgICAgICAgcmV0dXJuIChlbnRyeSkgPT4gdGhpcy5fZmlsdGVyKGJhc2VQYXRoLCBlbnRyeSwgbWF0Y2hlciwgbmVnYXRpdmVSZSk7XG4gICAgICB9XG4gICAgICBfZ2V0TWF0Y2hlcihwYXR0ZXJucykge1xuICAgICAgICByZXR1cm4gbmV3IHBhcnRpYWxfMS5kZWZhdWx0KHBhdHRlcm5zLCB0aGlzLl9zZXR0aW5ncywgdGhpcy5fbWljcm9tYXRjaE9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgX2dldE5lZ2F0aXZlUGF0dGVybnNSZShwYXR0ZXJucykge1xuICAgICAgICBjb25zdCBhZmZlY3REZXB0aE9mUmVhZGluZ1BhdHRlcm5zID0gcGF0dGVybnMuZmlsdGVyKHV0aWxzLnBhdHRlcm4uaXNBZmZlY3REZXB0aE9mUmVhZGluZ1BhdHRlcm4pO1xuICAgICAgICByZXR1cm4gdXRpbHMucGF0dGVybi5jb252ZXJ0UGF0dGVybnNUb1JlKGFmZmVjdERlcHRoT2ZSZWFkaW5nUGF0dGVybnMsIHRoaXMuX21pY3JvbWF0Y2hPcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIF9maWx0ZXIoYmFzZVBhdGgsIGVudHJ5LCBtYXRjaGVyLCBuZWdhdGl2ZVJlKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc1NraXBwZWRCeURlZXAoYmFzZVBhdGgsIGVudHJ5LnBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pc1NraXBwZWRTeW1ib2xpY0xpbmsoZW50cnkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gdXRpbHMucGF0aC5yZW1vdmVMZWFkaW5nRG90U2VnbWVudChlbnRyeS5wYXRoKTtcbiAgICAgICAgaWYgKHRoaXMuX2lzU2tpcHBlZEJ5UG9zaXRpdmVQYXR0ZXJucyhmaWxlcGF0aCwgbWF0Y2hlcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2tpcHBlZEJ5TmVnYXRpdmVQYXR0ZXJucyhmaWxlcGF0aCwgbmVnYXRpdmVSZSk7XG4gICAgICB9XG4gICAgICBfaXNTa2lwcGVkQnlEZWVwKGJhc2VQYXRoLCBlbnRyeVBhdGgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLmRlZXAgPT09IEluZmluaXR5KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRFbnRyeUxldmVsKGJhc2VQYXRoLCBlbnRyeVBhdGgpID49IHRoaXMuX3NldHRpbmdzLmRlZXA7XG4gICAgICB9XG4gICAgICBfZ2V0RW50cnlMZXZlbChiYXNlUGF0aCwgZW50cnlQYXRoKSB7XG4gICAgICAgIGNvbnN0IGVudHJ5UGF0aERlcHRoID0gZW50cnlQYXRoLnNwbGl0KFwiL1wiKS5sZW5ndGg7XG4gICAgICAgIGlmIChiYXNlUGF0aCA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiBlbnRyeVBhdGhEZXB0aDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiYXNlUGF0aERlcHRoID0gYmFzZVBhdGguc3BsaXQoXCIvXCIpLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGVudHJ5UGF0aERlcHRoIC0gYmFzZVBhdGhEZXB0aDtcbiAgICAgIH1cbiAgICAgIF9pc1NraXBwZWRTeW1ib2xpY0xpbmsoZW50cnkpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl9zZXR0aW5ncy5mb2xsb3dTeW1ib2xpY0xpbmtzICYmIGVudHJ5LmRpcmVudC5pc1N5bWJvbGljTGluaygpO1xuICAgICAgfVxuICAgICAgX2lzU2tpcHBlZEJ5UG9zaXRpdmVQYXR0ZXJucyhlbnRyeVBhdGgsIG1hdGNoZXIpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLl9zZXR0aW5ncy5iYXNlTmFtZU1hdGNoICYmICFtYXRjaGVyLm1hdGNoKGVudHJ5UGF0aCk7XG4gICAgICB9XG4gICAgICBfaXNTa2lwcGVkQnlOZWdhdGl2ZVBhdHRlcm5zKGVudHJ5UGF0aCwgcGF0dGVybnNSZSkge1xuICAgICAgICByZXR1cm4gIXV0aWxzLnBhdHRlcm4ubWF0Y2hBbnkoZW50cnlQYXRoLCBwYXR0ZXJuc1JlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IERlZXBGaWx0ZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvZmlsdGVycy9lbnRyeS5qc1xudmFyIHJlcXVpcmVfZW50cnkgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvZmlsdGVycy9lbnRyeS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczMoKTtcbiAgICB2YXIgRW50cnlGaWx0ZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfc2V0dGluZ3MsIF9taWNyb21hdGNoT3B0aW9ucykge1xuICAgICAgICB0aGlzLl9zZXR0aW5ncyA9IF9zZXR0aW5ncztcbiAgICAgICAgdGhpcy5fbWljcm9tYXRjaE9wdGlvbnMgPSBfbWljcm9tYXRjaE9wdGlvbnM7XG4gICAgICAgIHRoaXMuaW5kZXggPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgfVxuICAgICAgZ2V0RmlsdGVyKHBvc2l0aXZlLCBuZWdhdGl2ZSkge1xuICAgICAgICBjb25zdCBwb3NpdGl2ZVJlID0gdXRpbHMucGF0dGVybi5jb252ZXJ0UGF0dGVybnNUb1JlKHBvc2l0aXZlLCB0aGlzLl9taWNyb21hdGNoT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IG5lZ2F0aXZlUmUgPSB1dGlscy5wYXR0ZXJuLmNvbnZlcnRQYXR0ZXJuc1RvUmUobmVnYXRpdmUsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fbWljcm9tYXRjaE9wdGlvbnMpLCB7IGRvdDogdHJ1ZSB9KSk7XG4gICAgICAgIHJldHVybiAoZW50cnkpID0+IHRoaXMuX2ZpbHRlcihlbnRyeSwgcG9zaXRpdmVSZSwgbmVnYXRpdmVSZSk7XG4gICAgICB9XG4gICAgICBfZmlsdGVyKGVudHJ5LCBwb3NpdGl2ZVJlLCBuZWdhdGl2ZVJlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gdXRpbHMucGF0aC5yZW1vdmVMZWFkaW5nRG90U2VnbWVudChlbnRyeS5wYXRoKTtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLnVuaXF1ZSAmJiB0aGlzLl9pc0R1cGxpY2F0ZUVudHJ5KGZpbGVwYXRoKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb25seUZpbGVGaWx0ZXIoZW50cnkpIHx8IHRoaXMuX29ubHlEaXJlY3RvcnlGaWx0ZXIoZW50cnkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pc1NraXBwZWRCeUFic29sdXRlTmVnYXRpdmVQYXR0ZXJucyhmaWxlcGF0aCwgbmVnYXRpdmVSZSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNEaXJlY3RvcnkgPSBlbnRyeS5kaXJlbnQuaXNEaXJlY3RvcnkoKTtcbiAgICAgICAgY29uc3QgaXNNYXRjaGVkID0gdGhpcy5faXNNYXRjaFRvUGF0dGVybnMoZmlsZXBhdGgsIHBvc2l0aXZlUmUsIGlzRGlyZWN0b3J5KSAmJiAhdGhpcy5faXNNYXRjaFRvUGF0dGVybnMoZmlsZXBhdGgsIG5lZ2F0aXZlUmUsIGlzRGlyZWN0b3J5KTtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzLnVuaXF1ZSAmJiBpc01hdGNoZWQpIHtcbiAgICAgICAgICB0aGlzLl9jcmVhdGVJbmRleFJlY29yZChmaWxlcGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTWF0Y2hlZDtcbiAgICAgIH1cbiAgICAgIF9pc0R1cGxpY2F0ZUVudHJ5KGZpbGVwYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4LmhhcyhmaWxlcGF0aCk7XG4gICAgICB9XG4gICAgICBfY3JlYXRlSW5kZXhSZWNvcmQoZmlsZXBhdGgpIHtcbiAgICAgICAgdGhpcy5pbmRleC5zZXQoZmlsZXBhdGgsIHZvaWQgMCk7XG4gICAgICB9XG4gICAgICBfb25seUZpbGVGaWx0ZXIoZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzLm9ubHlGaWxlcyAmJiAhZW50cnkuZGlyZW50LmlzRmlsZSgpO1xuICAgICAgfVxuICAgICAgX29ubHlEaXJlY3RvcnlGaWx0ZXIoZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzLm9ubHlEaXJlY3RvcmllcyAmJiAhZW50cnkuZGlyZW50LmlzRGlyZWN0b3J5KCk7XG4gICAgICB9XG4gICAgICBfaXNTa2lwcGVkQnlBYnNvbHV0ZU5lZ2F0aXZlUGF0dGVybnMoZW50cnlQYXRoLCBwYXR0ZXJuc1JlKSB7XG4gICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3MuYWJzb2x1dGUpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVsbHBhdGggPSB1dGlscy5wYXRoLm1ha2VBYnNvbHV0ZSh0aGlzLl9zZXR0aW5ncy5jd2QsIGVudHJ5UGF0aCk7XG4gICAgICAgIHJldHVybiB1dGlscy5wYXR0ZXJuLm1hdGNoQW55KGZ1bGxwYXRoLCBwYXR0ZXJuc1JlKTtcbiAgICAgIH1cbiAgICAgIF9pc01hdGNoVG9QYXR0ZXJucyhmaWxlcGF0aCwgcGF0dGVybnNSZSwgaXNEaXJlY3RvcnkpIHtcbiAgICAgICAgY29uc3QgaXNNYXRjaGVkID0gdXRpbHMucGF0dGVybi5tYXRjaEFueShmaWxlcGF0aCwgcGF0dGVybnNSZSk7XG4gICAgICAgIGlmICghaXNNYXRjaGVkICYmIGlzRGlyZWN0b3J5KSB7XG4gICAgICAgICAgcmV0dXJuIHV0aWxzLnBhdHRlcm4ubWF0Y2hBbnkoZmlsZXBhdGggKyBcIi9cIiwgcGF0dGVybnNSZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTWF0Y2hlZDtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IEVudHJ5RmlsdGVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcHJvdmlkZXJzL2ZpbHRlcnMvZXJyb3IuanNcbnZhciByZXF1aXJlX2Vycm9yID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcHJvdmlkZXJzL2ZpbHRlcnMvZXJyb3IuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMzKCk7XG4gICAgdmFyIEVycm9yRmlsdGVyID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdzID0gX3NldHRpbmdzO1xuICAgICAgfVxuICAgICAgZ2V0RmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gKGVycm9yKSA9PiB0aGlzLl9pc05vbkZhdGFsRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgICAgX2lzTm9uRmF0YWxFcnJvcihlcnJvcikge1xuICAgICAgICByZXR1cm4gdXRpbHMuZXJybm8uaXNFbm9lbnRDb2RlRXJyb3IoZXJyb3IpIHx8IHRoaXMuX3NldHRpbmdzLnN1cHByZXNzRXJyb3JzO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gRXJyb3JGaWx0ZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvdHJhbnNmb3JtZXJzL2VudHJ5LmpzXG52YXIgcmVxdWlyZV9lbnRyeTIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvdHJhbnNmb3JtZXJzL2VudHJ5LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB2YXIgdXRpbHMgPSByZXF1aXJlX3V0aWxzMygpO1xuICAgIHZhciBFbnRyeVRyYW5zZm9ybWVyID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoX3NldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdzID0gX3NldHRpbmdzO1xuICAgICAgfVxuICAgICAgZ2V0VHJhbnNmb3JtZXIoKSB7XG4gICAgICAgIHJldHVybiAoZW50cnkpID0+IHRoaXMuX3RyYW5zZm9ybShlbnRyeSk7XG4gICAgICB9XG4gICAgICBfdHJhbnNmb3JtKGVudHJ5KSB7XG4gICAgICAgIGxldCBmaWxlcGF0aCA9IGVudHJ5LnBhdGg7XG4gICAgICAgIGlmICh0aGlzLl9zZXR0aW5ncy5hYnNvbHV0ZSkge1xuICAgICAgICAgIGZpbGVwYXRoID0gdXRpbHMucGF0aC5tYWtlQWJzb2x1dGUodGhpcy5fc2V0dGluZ3MuY3dkLCBmaWxlcGF0aCk7XG4gICAgICAgICAgZmlsZXBhdGggPSB1dGlscy5wYXRoLnVuaXhpZnkoZmlsZXBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9zZXR0aW5ncy5tYXJrRGlyZWN0b3JpZXMgJiYgZW50cnkuZGlyZW50LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICBmaWxlcGF0aCArPSBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3NldHRpbmdzLm9iamVjdE1vZGUpIHtcbiAgICAgICAgICByZXR1cm4gZmlsZXBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZW50cnkpLCB7IHBhdGg6IGZpbGVwYXRoIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gRW50cnlUcmFuc2Zvcm1lcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3Byb3ZpZGVycy9wcm92aWRlci5qc1xudmFyIHJlcXVpcmVfcHJvdmlkZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvcHJvdmlkZXIuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBwYXRoOSA9IF9fcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIGRlZXBfMSA9IHJlcXVpcmVfZGVlcCgpO1xuICAgIHZhciBlbnRyeV8xID0gcmVxdWlyZV9lbnRyeSgpO1xuICAgIHZhciBlcnJvcl8xID0gcmVxdWlyZV9lcnJvcigpO1xuICAgIHZhciBlbnRyeV8yID0gcmVxdWlyZV9lbnRyeTIoKTtcbiAgICB2YXIgUHJvdmlkZXIgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfc2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSBfc2V0dGluZ3M7XG4gICAgICAgIHRoaXMuZXJyb3JGaWx0ZXIgPSBuZXcgZXJyb3JfMS5kZWZhdWx0KHRoaXMuX3NldHRpbmdzKTtcbiAgICAgICAgdGhpcy5lbnRyeUZpbHRlciA9IG5ldyBlbnRyeV8xLmRlZmF1bHQodGhpcy5fc2V0dGluZ3MsIHRoaXMuX2dldE1pY3JvbWF0Y2hPcHRpb25zKCkpO1xuICAgICAgICB0aGlzLmRlZXBGaWx0ZXIgPSBuZXcgZGVlcF8xLmRlZmF1bHQodGhpcy5fc2V0dGluZ3MsIHRoaXMuX2dldE1pY3JvbWF0Y2hPcHRpb25zKCkpO1xuICAgICAgICB0aGlzLmVudHJ5VHJhbnNmb3JtZXIgPSBuZXcgZW50cnlfMi5kZWZhdWx0KHRoaXMuX3NldHRpbmdzKTtcbiAgICAgIH1cbiAgICAgIF9nZXRSb290RGlyZWN0b3J5KHRhc2spIHtcbiAgICAgICAgcmV0dXJuIHBhdGg5LnJlc29sdmUodGhpcy5fc2V0dGluZ3MuY3dkLCB0YXNrLmJhc2UpO1xuICAgICAgfVxuICAgICAgX2dldFJlYWRlck9wdGlvbnModGFzaykge1xuICAgICAgICBjb25zdCBiYXNlUGF0aCA9IHRhc2suYmFzZSA9PT0gXCIuXCIgPyBcIlwiIDogdGFzay5iYXNlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJhc2VQYXRoLFxuICAgICAgICAgIHBhdGhTZWdtZW50U2VwYXJhdG9yOiBcIi9cIixcbiAgICAgICAgICBjb25jdXJyZW5jeTogdGhpcy5fc2V0dGluZ3MuY29uY3VycmVuY3ksXG4gICAgICAgICAgZGVlcEZpbHRlcjogdGhpcy5kZWVwRmlsdGVyLmdldEZpbHRlcihiYXNlUGF0aCwgdGFzay5wb3NpdGl2ZSwgdGFzay5uZWdhdGl2ZSksXG4gICAgICAgICAgZW50cnlGaWx0ZXI6IHRoaXMuZW50cnlGaWx0ZXIuZ2V0RmlsdGVyKHRhc2sucG9zaXRpdmUsIHRhc2submVnYXRpdmUpLFxuICAgICAgICAgIGVycm9yRmlsdGVyOiB0aGlzLmVycm9yRmlsdGVyLmdldEZpbHRlcigpLFxuICAgICAgICAgIGZvbGxvd1N5bWJvbGljTGlua3M6IHRoaXMuX3NldHRpbmdzLmZvbGxvd1N5bWJvbGljTGlua3MsXG4gICAgICAgICAgZnM6IHRoaXMuX3NldHRpbmdzLmZzLFxuICAgICAgICAgIHN0YXRzOiB0aGlzLl9zZXR0aW5ncy5zdGF0cyxcbiAgICAgICAgICB0aHJvd0Vycm9yT25Ccm9rZW5TeW1ib2xpY0xpbms6IHRoaXMuX3NldHRpbmdzLnRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGluayxcbiAgICAgICAgICB0cmFuc2Zvcm06IHRoaXMuZW50cnlUcmFuc2Zvcm1lci5nZXRUcmFuc2Zvcm1lcigpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBfZ2V0TWljcm9tYXRjaE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZG90OiB0aGlzLl9zZXR0aW5ncy5kb3QsXG4gICAgICAgICAgbWF0Y2hCYXNlOiB0aGlzLl9zZXR0aW5ncy5iYXNlTmFtZU1hdGNoLFxuICAgICAgICAgIG5vYnJhY2U6ICF0aGlzLl9zZXR0aW5ncy5icmFjZUV4cGFuc2lvbixcbiAgICAgICAgICBub2Nhc2U6ICF0aGlzLl9zZXR0aW5ncy5jYXNlU2Vuc2l0aXZlTWF0Y2gsXG4gICAgICAgICAgbm9leHQ6ICF0aGlzLl9zZXR0aW5ncy5leHRnbG9iLFxuICAgICAgICAgIG5vZ2xvYnN0YXI6ICF0aGlzLl9zZXR0aW5ncy5nbG9ic3RhcixcbiAgICAgICAgICBwb3NpeDogdHJ1ZSxcbiAgICAgICAgICBzdHJpY3RTbGFzaGVzOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gUHJvdmlkZXI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvYXN5bmMuanNcbnZhciByZXF1aXJlX2FzeW5jNiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3Byb3ZpZGVycy9hc3luYy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jNSgpO1xuICAgIHZhciBwcm92aWRlcl8xID0gcmVxdWlyZV9wcm92aWRlcigpO1xuICAgIHZhciBQcm92aWRlckFzeW5jID0gY2xhc3MgZXh0ZW5kcyBwcm92aWRlcl8xLmRlZmF1bHQge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuX3JlYWRlciA9IG5ldyBhc3luY18xLmRlZmF1bHQodGhpcy5fc2V0dGluZ3MpO1xuICAgICAgfVxuICAgICAgYXN5bmMgcmVhZCh0YXNrKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9nZXRSb290RGlyZWN0b3J5KHRhc2spO1xuICAgICAgICBjb25zdCBvcHRpb25zOCA9IHRoaXMuX2dldFJlYWRlck9wdGlvbnModGFzayk7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBhd2FpdCB0aGlzLmFwaShyb290LCB0YXNrLCBvcHRpb25zOCk7XG4gICAgICAgIHJldHVybiBlbnRyaWVzLm1hcCgoZW50cnkpID0+IG9wdGlvbnM4LnRyYW5zZm9ybShlbnRyeSkpO1xuICAgICAgfVxuICAgICAgYXBpKHJvb3QsIHRhc2ssIG9wdGlvbnM4KSB7XG4gICAgICAgIGlmICh0YXNrLmR5bmFtaWMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fcmVhZGVyLmR5bmFtaWMocm9vdCwgb3B0aW9uczgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkZXIuc3RhdGljKHRhc2sucGF0dGVybnMsIG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFByb3ZpZGVyQXN5bmM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvc3RyZWFtLmpzXG52YXIgcmVxdWlyZV9zdHJlYW00ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvcHJvdmlkZXJzL3N0cmVhbS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIHN0cmVhbV8xID0gX19yZXF1aXJlKFwic3RyZWFtXCIpO1xuICAgIHZhciBzdHJlYW1fMiA9IHJlcXVpcmVfc3RyZWFtMygpO1xuICAgIHZhciBwcm92aWRlcl8xID0gcmVxdWlyZV9wcm92aWRlcigpO1xuICAgIHZhciBQcm92aWRlclN0cmVhbSA9IGNsYXNzIGV4dGVuZHMgcHJvdmlkZXJfMS5kZWZhdWx0IHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLl9yZWFkZXIgPSBuZXcgc3RyZWFtXzIuZGVmYXVsdCh0aGlzLl9zZXR0aW5ncyk7XG4gICAgICB9XG4gICAgICByZWFkKHRhc2spIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX2dldFJvb3REaXJlY3RvcnkodGFzayk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM4ID0gdGhpcy5fZ2V0UmVhZGVyT3B0aW9ucyh0YXNrKTtcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5hcGkocm9vdCwgdGFzaywgb3B0aW9uczgpO1xuICAgICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IG5ldyBzdHJlYW1fMS5SZWFkYWJsZSh7IG9iamVjdE1vZGU6IHRydWUsIHJlYWQ6ICgpID0+IHtcbiAgICAgICAgfSB9KTtcbiAgICAgICAgc291cmNlLm9uY2UoXCJlcnJvclwiLCAoZXJyb3IpID0+IGRlc3RpbmF0aW9uLmVtaXQoXCJlcnJvclwiLCBlcnJvcikpLm9uKFwiZGF0YVwiLCAoZW50cnkpID0+IGRlc3RpbmF0aW9uLmVtaXQoXCJkYXRhXCIsIG9wdGlvbnM4LnRyYW5zZm9ybShlbnRyeSkpKS5vbmNlKFwiZW5kXCIsICgpID0+IGRlc3RpbmF0aW9uLmVtaXQoXCJlbmRcIikpO1xuICAgICAgICBkZXN0aW5hdGlvbi5vbmNlKFwiY2xvc2VcIiwgKCkgPT4gc291cmNlLmRlc3Ryb3koKSk7XG4gICAgICAgIHJldHVybiBkZXN0aW5hdGlvbjtcbiAgICAgIH1cbiAgICAgIGFwaShyb290LCB0YXNrLCBvcHRpb25zOCkge1xuICAgICAgICBpZiAodGFzay5keW5hbWljKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRlci5keW5hbWljKHJvb3QsIG9wdGlvbnM4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVhZGVyLnN0YXRpYyh0YXNrLnBhdHRlcm5zLCBvcHRpb25zOCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBQcm92aWRlclN0cmVhbTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3JlYWRlcnMvc3luYy5qc1xudmFyIHJlcXVpcmVfc3luYzUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9yZWFkZXJzL3N5bmMuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBmc1N0YXQgPSByZXF1aXJlX291dCgpO1xuICAgIHZhciBmc1dhbGsgPSByZXF1aXJlX291dDMoKTtcbiAgICB2YXIgcmVhZGVyXzEgPSByZXF1aXJlX3JlYWRlcjIoKTtcbiAgICB2YXIgUmVhZGVyU3luYyA9IGNsYXNzIGV4dGVuZHMgcmVhZGVyXzEuZGVmYXVsdCB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5fd2Fsa1N5bmMgPSBmc1dhbGsud2Fsa1N5bmM7XG4gICAgICAgIHRoaXMuX3N0YXRTeW5jID0gZnNTdGF0LnN0YXRTeW5jO1xuICAgICAgfVxuICAgICAgZHluYW1pYyhyb290LCBvcHRpb25zOCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Fsa1N5bmMocm9vdCwgb3B0aW9uczgpO1xuICAgICAgfVxuICAgICAgc3RhdGljKHBhdHRlcm5zLCBvcHRpb25zOCkge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiBwYXR0ZXJucykge1xuICAgICAgICAgIGNvbnN0IGZpbGVwYXRoID0gdGhpcy5fZ2V0RnVsbEVudHJ5UGF0aChwYXR0ZXJuKTtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2dldEVudHJ5KGZpbGVwYXRoLCBwYXR0ZXJuLCBvcHRpb25zOCk7XG4gICAgICAgICAgaWYgKGVudHJ5ID09PSBudWxsIHx8ICFvcHRpb25zOC5lbnRyeUZpbHRlcihlbnRyeSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgICAgfVxuICAgICAgX2dldEVudHJ5KGZpbGVwYXRoLCBwYXR0ZXJuLCBvcHRpb25zOCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fZ2V0U3RhdChmaWxlcGF0aCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX21ha2VFbnRyeShzdGF0cywgcGF0dGVybik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnM4LmVycm9yRmlsdGVyKGVycm9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBfZ2V0U3RhdChmaWxlcGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdFN5bmMoZmlsZXBhdGgsIHRoaXMuX2ZzU3RhdFNldHRpbmdzKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IFJlYWRlclN5bmM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvc3luYy5qc1xudmFyIHJlcXVpcmVfc3luYzYgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZmFzdC1nbG9iL291dC9wcm92aWRlcnMvc3luYy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYzUoKTtcbiAgICB2YXIgcHJvdmlkZXJfMSA9IHJlcXVpcmVfcHJvdmlkZXIoKTtcbiAgICB2YXIgUHJvdmlkZXJTeW5jID0gY2xhc3MgZXh0ZW5kcyBwcm92aWRlcl8xLmRlZmF1bHQge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuX3JlYWRlciA9IG5ldyBzeW5jXzEuZGVmYXVsdCh0aGlzLl9zZXR0aW5ncyk7XG4gICAgICB9XG4gICAgICByZWFkKHRhc2spIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX2dldFJvb3REaXJlY3RvcnkodGFzayk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM4ID0gdGhpcy5fZ2V0UmVhZGVyT3B0aW9ucyh0YXNrKTtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IHRoaXMuYXBpKHJvb3QsIHRhc2ssIG9wdGlvbnM4KTtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKG9wdGlvbnM4LnRyYW5zZm9ybSk7XG4gICAgICB9XG4gICAgICBhcGkocm9vdCwgdGFzaywgb3B0aW9uczgpIHtcbiAgICAgICAgaWYgKHRhc2suZHluYW1pYykge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9yZWFkZXIuZHluYW1pYyhyb290LCBvcHRpb25zOCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRlci5zdGF0aWModGFzay5wYXR0ZXJucywgb3B0aW9uczgpO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gUHJvdmlkZXJTeW5jO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvc2V0dGluZ3MuanNcbnZhciByZXF1aXJlX3NldHRpbmdzNCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L3NldHRpbmdzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBleHBvcnRzLkRFRkFVTFRfRklMRV9TWVNURU1fQURBUFRFUiA9IHZvaWQgMDtcbiAgICB2YXIgZnM1ID0gX19yZXF1aXJlKFwiZnNcIik7XG4gICAgdmFyIG9zMiA9IF9fcmVxdWlyZShcIm9zXCIpO1xuICAgIHZhciBDUFVfQ09VTlQgPSBNYXRoLm1heChvczIuY3B1cygpLmxlbmd0aCwgMSk7XG4gICAgZXhwb3J0cy5ERUZBVUxUX0ZJTEVfU1lTVEVNX0FEQVBURVIgPSB7XG4gICAgICBsc3RhdDogZnM1LmxzdGF0LFxuICAgICAgbHN0YXRTeW5jOiBmczUubHN0YXRTeW5jLFxuICAgICAgc3RhdDogZnM1LnN0YXQsXG4gICAgICBzdGF0U3luYzogZnM1LnN0YXRTeW5jLFxuICAgICAgcmVhZGRpcjogZnM1LnJlYWRkaXIsXG4gICAgICByZWFkZGlyU3luYzogZnM1LnJlYWRkaXJTeW5jXG4gICAgfTtcbiAgICB2YXIgU2V0dGluZ3MgPSBjbGFzcyB7XG4gICAgICBjb25zdHJ1Y3Rvcihfb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBfb3B0aW9ucztcbiAgICAgICAgdGhpcy5hYnNvbHV0ZSA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMuYWJzb2x1dGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5iYXNlTmFtZU1hdGNoID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5iYXNlTmFtZU1hdGNoLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYnJhY2VFeHBhbnNpb24gPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmJyYWNlRXhwYW5zaW9uLCB0cnVlKTtcbiAgICAgICAgdGhpcy5jYXNlU2Vuc2l0aXZlTWF0Y2ggPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmNhc2VTZW5zaXRpdmVNYXRjaCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY29uY3VycmVuY3kgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLmNvbmN1cnJlbmN5LCBDUFVfQ09VTlQpO1xuICAgICAgICB0aGlzLmN3ZCA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMuY3dkLCBwcm9jZXNzLmN3ZCgpKTtcbiAgICAgICAgdGhpcy5kZWVwID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5kZWVwLCBJbmZpbml0eSk7XG4gICAgICAgIHRoaXMuZG90ID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5kb3QsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5leHRnbG9iID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5leHRnbG9iLCB0cnVlKTtcbiAgICAgICAgdGhpcy5mb2xsb3dTeW1ib2xpY0xpbmtzID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5mb2xsb3dTeW1ib2xpY0xpbmtzLCB0cnVlKTtcbiAgICAgICAgdGhpcy5mcyA9IHRoaXMuX2dldEZpbGVTeXN0ZW1NZXRob2RzKHRoaXMuX29wdGlvbnMuZnMpO1xuICAgICAgICB0aGlzLmdsb2JzdGFyID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5nbG9ic3RhciwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuaWdub3JlID0gdGhpcy5fZ2V0VmFsdWUodGhpcy5fb3B0aW9ucy5pZ25vcmUsIFtdKTtcbiAgICAgICAgdGhpcy5tYXJrRGlyZWN0b3JpZXMgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLm1hcmtEaXJlY3RvcmllcywgZmFsc2UpO1xuICAgICAgICB0aGlzLm9iamVjdE1vZGUgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLm9iamVjdE1vZGUsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5vbmx5RGlyZWN0b3JpZXMgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLm9ubHlEaXJlY3RvcmllcywgZmFsc2UpO1xuICAgICAgICB0aGlzLm9ubHlGaWxlcyA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMub25seUZpbGVzLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zdGF0cyA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMuc3RhdHMsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5zdXBwcmVzc0Vycm9ycyA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMuc3VwcHJlc3NFcnJvcnMsIGZhbHNlKTtcbiAgICAgICAgdGhpcy50aHJvd0Vycm9yT25Ccm9rZW5TeW1ib2xpY0xpbmsgPSB0aGlzLl9nZXRWYWx1ZSh0aGlzLl9vcHRpb25zLnRocm93RXJyb3JPbkJyb2tlblN5bWJvbGljTGluaywgZmFsc2UpO1xuICAgICAgICB0aGlzLnVuaXF1ZSA9IHRoaXMuX2dldFZhbHVlKHRoaXMuX29wdGlvbnMudW5pcXVlLCB0cnVlKTtcbiAgICAgICAgaWYgKHRoaXMub25seURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgdGhpcy5vbmx5RmlsZXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0cykge1xuICAgICAgICAgIHRoaXMub2JqZWN0TW9kZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pZ25vcmUgPSBbXS5jb25jYXQodGhpcy5pZ25vcmUpO1xuICAgICAgfVxuICAgICAgX2dldFZhbHVlKG9wdGlvbiwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA9PT0gdm9pZCAwID8gdmFsdWUgOiBvcHRpb247XG4gICAgICB9XG4gICAgICBfZ2V0RmlsZVN5c3RlbU1ldGhvZHMobWV0aG9kcyA9IHt9KSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4cG9ydHMuREVGQVVMVF9GSUxFX1NZU1RFTV9BREFQVEVSKSwgbWV0aG9kcyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBTZXR0aW5ncztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9mYXN0LWdsb2Ivb3V0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9vdXQ0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Zhc3QtZ2xvYi9vdXQvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgdGFza01hbmFnZXIgPSByZXF1aXJlX3Rhc2tzKCk7XG4gICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jNigpO1xuICAgIHZhciBzdHJlYW1fMSA9IHJlcXVpcmVfc3RyZWFtNCgpO1xuICAgIHZhciBzeW5jXzEgPSByZXF1aXJlX3N5bmM2KCk7XG4gICAgdmFyIHNldHRpbmdzXzEgPSByZXF1aXJlX3NldHRpbmdzNCgpO1xuICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHMzKCk7XG4gICAgYXN5bmMgZnVuY3Rpb24gRmFzdEdsb2Ioc291cmNlLCBvcHRpb25zOCkge1xuICAgICAgYXNzZXJ0UGF0dGVybnNJbnB1dChzb3VyY2UpO1xuICAgICAgY29uc3Qgd29ya3MgPSBnZXRXb3Jrcyhzb3VyY2UsIGFzeW5jXzEuZGVmYXVsdCwgb3B0aW9uczgpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgUHJvbWlzZS5hbGwod29ya3MpO1xuICAgICAgcmV0dXJuIHV0aWxzLmFycmF5LmZsYXR0ZW4ocmVzdWx0KTtcbiAgICB9XG4gICAgKGZ1bmN0aW9uKEZhc3RHbG9iMikge1xuICAgICAgRmFzdEdsb2IyLmdsb2IgPSBGYXN0R2xvYjI7XG4gICAgICBGYXN0R2xvYjIuZ2xvYlN5bmMgPSBzeW5jO1xuICAgICAgRmFzdEdsb2IyLmdsb2JTdHJlYW0gPSBzdHJlYW07XG4gICAgICBGYXN0R2xvYjIuYXN5bmMgPSBGYXN0R2xvYjI7XG4gICAgICBmdW5jdGlvbiBzeW5jKHNvdXJjZSwgb3B0aW9uczgpIHtcbiAgICAgICAgYXNzZXJ0UGF0dGVybnNJbnB1dChzb3VyY2UpO1xuICAgICAgICBjb25zdCB3b3JrcyA9IGdldFdvcmtzKHNvdXJjZSwgc3luY18xLmRlZmF1bHQsIG9wdGlvbnM4KTtcbiAgICAgICAgcmV0dXJuIHV0aWxzLmFycmF5LmZsYXR0ZW4od29ya3MpO1xuICAgICAgfVxuICAgICAgRmFzdEdsb2IyLnN5bmMgPSBzeW5jO1xuICAgICAgZnVuY3Rpb24gc3RyZWFtKHNvdXJjZSwgb3B0aW9uczgpIHtcbiAgICAgICAgYXNzZXJ0UGF0dGVybnNJbnB1dChzb3VyY2UpO1xuICAgICAgICBjb25zdCB3b3JrcyA9IGdldFdvcmtzKHNvdXJjZSwgc3RyZWFtXzEuZGVmYXVsdCwgb3B0aW9uczgpO1xuICAgICAgICByZXR1cm4gdXRpbHMuc3RyZWFtLm1lcmdlKHdvcmtzKTtcbiAgICAgIH1cbiAgICAgIEZhc3RHbG9iMi5zdHJlYW0gPSBzdHJlYW07XG4gICAgICBmdW5jdGlvbiBnZW5lcmF0ZVRhc2tzKHNvdXJjZSwgb3B0aW9uczgpIHtcbiAgICAgICAgYXNzZXJ0UGF0dGVybnNJbnB1dChzb3VyY2UpO1xuICAgICAgICBjb25zdCBwYXR0ZXJucyA9IFtdLmNvbmNhdChzb3VyY2UpO1xuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IG5ldyBzZXR0aW5nc18xLmRlZmF1bHQob3B0aW9uczgpO1xuICAgICAgICByZXR1cm4gdGFza01hbmFnZXIuZ2VuZXJhdGUocGF0dGVybnMsIHNldHRpbmdzKTtcbiAgICAgIH1cbiAgICAgIEZhc3RHbG9iMi5nZW5lcmF0ZVRhc2tzID0gZ2VuZXJhdGVUYXNrcztcbiAgICAgIGZ1bmN0aW9uIGlzRHluYW1pY1BhdHRlcm4oc291cmNlLCBvcHRpb25zOCkge1xuICAgICAgICBhc3NlcnRQYXR0ZXJuc0lucHV0KHNvdXJjZSk7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gbmV3IHNldHRpbmdzXzEuZGVmYXVsdChvcHRpb25zOCk7XG4gICAgICAgIHJldHVybiB1dGlscy5wYXR0ZXJuLmlzRHluYW1pY1BhdHRlcm4oc291cmNlLCBzZXR0aW5ncyk7XG4gICAgICB9XG4gICAgICBGYXN0R2xvYjIuaXNEeW5hbWljUGF0dGVybiA9IGlzRHluYW1pY1BhdHRlcm47XG4gICAgICBmdW5jdGlvbiBlc2NhcGVQYXRoKHNvdXJjZSkge1xuICAgICAgICBhc3NlcnRQYXR0ZXJuc0lucHV0KHNvdXJjZSk7XG4gICAgICAgIHJldHVybiB1dGlscy5wYXRoLmVzY2FwZShzb3VyY2UpO1xuICAgICAgfVxuICAgICAgRmFzdEdsb2IyLmVzY2FwZVBhdGggPSBlc2NhcGVQYXRoO1xuICAgICAgZnVuY3Rpb24gY29udmVydFBhdGhUb1BhdHRlcm4oc291cmNlKSB7XG4gICAgICAgIGFzc2VydFBhdHRlcm5zSW5wdXQoc291cmNlKTtcbiAgICAgICAgcmV0dXJuIHV0aWxzLnBhdGguY29udmVydFBhdGhUb1BhdHRlcm4oc291cmNlKTtcbiAgICAgIH1cbiAgICAgIEZhc3RHbG9iMi5jb252ZXJ0UGF0aFRvUGF0dGVybiA9IGNvbnZlcnRQYXRoVG9QYXR0ZXJuO1xuICAgICAgbGV0IHBvc2l4O1xuICAgICAgKGZ1bmN0aW9uKHBvc2l4Mikge1xuICAgICAgICBmdW5jdGlvbiBlc2NhcGVQYXRoMihzb3VyY2UpIHtcbiAgICAgICAgICBhc3NlcnRQYXR0ZXJuc0lucHV0KHNvdXJjZSk7XG4gICAgICAgICAgcmV0dXJuIHV0aWxzLnBhdGguZXNjYXBlUG9zaXhQYXRoKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgcG9zaXgyLmVzY2FwZVBhdGggPSBlc2NhcGVQYXRoMjtcbiAgICAgICAgZnVuY3Rpb24gY29udmVydFBhdGhUb1BhdHRlcm4yKHNvdXJjZSkge1xuICAgICAgICAgIGFzc2VydFBhdHRlcm5zSW5wdXQoc291cmNlKTtcbiAgICAgICAgICByZXR1cm4gdXRpbHMucGF0aC5jb252ZXJ0UG9zaXhQYXRoVG9QYXR0ZXJuKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgcG9zaXgyLmNvbnZlcnRQYXRoVG9QYXR0ZXJuID0gY29udmVydFBhdGhUb1BhdHRlcm4yO1xuICAgICAgfSkocG9zaXggPSBGYXN0R2xvYjIucG9zaXggfHwgKEZhc3RHbG9iMi5wb3NpeCA9IHt9KSk7XG4gICAgICBsZXQgd2luMzI7XG4gICAgICAoZnVuY3Rpb24od2luMzIyKSB7XG4gICAgICAgIGZ1bmN0aW9uIGVzY2FwZVBhdGgyKHNvdXJjZSkge1xuICAgICAgICAgIGFzc2VydFBhdHRlcm5zSW5wdXQoc291cmNlKTtcbiAgICAgICAgICByZXR1cm4gdXRpbHMucGF0aC5lc2NhcGVXaW5kb3dzUGF0aChzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIHdpbjMyMi5lc2NhcGVQYXRoID0gZXNjYXBlUGF0aDI7XG4gICAgICAgIGZ1bmN0aW9uIGNvbnZlcnRQYXRoVG9QYXR0ZXJuMihzb3VyY2UpIHtcbiAgICAgICAgICBhc3NlcnRQYXR0ZXJuc0lucHV0KHNvdXJjZSk7XG4gICAgICAgICAgcmV0dXJuIHV0aWxzLnBhdGguY29udmVydFdpbmRvd3NQYXRoVG9QYXR0ZXJuKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgd2luMzIyLmNvbnZlcnRQYXRoVG9QYXR0ZXJuID0gY29udmVydFBhdGhUb1BhdHRlcm4yO1xuICAgICAgfSkod2luMzIgPSBGYXN0R2xvYjIud2luMzIgfHwgKEZhc3RHbG9iMi53aW4zMiA9IHt9KSk7XG4gICAgfSkoRmFzdEdsb2IgfHwgKEZhc3RHbG9iID0ge30pKTtcbiAgICBmdW5jdGlvbiBnZXRXb3Jrcyhzb3VyY2UsIF9Qcm92aWRlciwgb3B0aW9uczgpIHtcbiAgICAgIGNvbnN0IHBhdHRlcm5zID0gW10uY29uY2F0KHNvdXJjZSk7XG4gICAgICBjb25zdCBzZXR0aW5ncyA9IG5ldyBzZXR0aW5nc18xLmRlZmF1bHQob3B0aW9uczgpO1xuICAgICAgY29uc3QgdGFza3MgPSB0YXNrTWFuYWdlci5nZW5lcmF0ZShwYXR0ZXJucywgc2V0dGluZ3MpO1xuICAgICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgX1Byb3ZpZGVyKHNldHRpbmdzKTtcbiAgICAgIHJldHVybiB0YXNrcy5tYXAocHJvdmlkZXIucmVhZCwgcHJvdmlkZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhc3NlcnRQYXR0ZXJuc0lucHV0KGlucHV0KSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBbXS5jb25jYXQoaW5wdXQpO1xuICAgICAgY29uc3QgaXNWYWxpZFNvdXJjZSA9IHNvdXJjZS5ldmVyeSgoaXRlbSkgPT4gdXRpbHMuc3RyaW5nLmlzU3RyaW5nKGl0ZW0pICYmICF1dGlscy5zdHJpbmcuaXNFbXB0eShpdGVtKSk7XG4gICAgICBpZiAoIWlzVmFsaWRTb3VyY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlBhdHRlcm5zIG11c3QgYmUgYSBzdHJpbmcgKG5vbiBlbXB0eSkgb3IgYW4gYXJyYXkgb2Ygc3RyaW5nc1wiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBGYXN0R2xvYjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9kaWZmL2xpYi9kaWZmL2Jhc2UuanNcbnZhciByZXF1aXJlX2Jhc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZGlmZi9saWIvZGlmZi9iYXNlLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzW1wiZGVmYXVsdFwiXSA9IERpZmY7XG4gICAgZnVuY3Rpb24gRGlmZigpIHtcbiAgICB9XG4gICAgRGlmZi5wcm90b3R5cGUgPSB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xuICAgICAgZGlmZjogZnVuY3Rpb24gZGlmZihvbGRTdHJpbmcsIG5ld1N0cmluZykge1xuICAgICAgICB2YXIgb3B0aW9uczggPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHZvaWQgMCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICAgICAgICB2YXIgY2FsbGJhY2sgPSBvcHRpb25zOC5jYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zOCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSBvcHRpb25zODtcbiAgICAgICAgICBvcHRpb25zOCA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM4O1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgIGZ1bmN0aW9uIGRvbmUodmFsdWUpIHtcbiAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKHZvaWQgMCwgdmFsdWUpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgICAgICBuZXdTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChuZXdTdHJpbmcpO1xuICAgICAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgICAgIG5ld1N0cmluZyA9IHRoaXMucmVtb3ZlRW1wdHkodGhpcy50b2tlbml6ZShuZXdTdHJpbmcpKTtcbiAgICAgICAgdmFyIG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgICAgIHZhciBlZGl0TGVuZ3RoID0gMTtcbiAgICAgICAgdmFyIG1heEVkaXRMZW5ndGggPSBuZXdMZW4gKyBvbGRMZW47XG4gICAgICAgIGlmIChvcHRpb25zOC5tYXhFZGl0TGVuZ3RoKSB7XG4gICAgICAgICAgbWF4RWRpdExlbmd0aCA9IE1hdGgubWluKG1heEVkaXRMZW5ndGgsIG9wdGlvbnM4Lm1heEVkaXRMZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBiZXN0UGF0aCA9IFt7XG4gICAgICAgICAgbmV3UG9zOiAtMSxcbiAgICAgICAgICBjb21wb25lbnRzOiBbXVxuICAgICAgICB9XTtcbiAgICAgICAgdmFyIG9sZFBvcyA9IHRoaXMuZXh0cmFjdENvbW1vbihiZXN0UGF0aFswXSwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIDApO1xuICAgICAgICBpZiAoYmVzdFBhdGhbMF0ubmV3UG9zICsgMSA+PSBuZXdMZW4gJiYgb2xkUG9zICsgMSA+PSBvbGRMZW4pIHtcbiAgICAgICAgICByZXR1cm4gZG9uZShbe1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLFxuICAgICAgICAgICAgY291bnQ6IG5ld1N0cmluZy5sZW5ndGhcbiAgICAgICAgICB9XSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICAgICAgZm9yICh2YXIgZGlhZ29uYWxQYXRoID0gLTEgKiBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggPD0gZWRpdExlbmd0aDsgZGlhZ29uYWxQYXRoICs9IDIpIHtcbiAgICAgICAgICAgIHZhciBiYXNlUGF0aCA9IChcbiAgICAgICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgICAgICAgICAgICB2b2lkIDBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgYWRkUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCAtIDFdLCByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sIF9vbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgICAgICBpZiAoYWRkUGF0aCkge1xuICAgICAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHZvaWQgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbiwgY2FuUmVtb3ZlID0gcmVtb3ZlUGF0aCAmJiAwIDw9IF9vbGRQb3MgJiYgX29sZFBvcyA8IG9sZExlbjtcbiAgICAgICAgICAgIGlmICghY2FuQWRkICYmICFjYW5SZW1vdmUpIHtcbiAgICAgICAgICAgICAgYmVzdFBhdGhbZGlhZ29uYWxQYXRoXSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhbkFkZCB8fCBjYW5SZW1vdmUgJiYgYWRkUGF0aC5uZXdQb3MgPCByZW1vdmVQYXRoLm5ld1Bvcykge1xuICAgICAgICAgICAgICBiYXNlUGF0aCA9IGNsb25lUGF0aChyZW1vdmVQYXRoKTtcbiAgICAgICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHZvaWQgMCwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBiYXNlUGF0aCA9IGFkZFBhdGg7XG4gICAgICAgICAgICAgIGJhc2VQYXRoLm5ld1BvcysrO1xuICAgICAgICAgICAgICBzZWxmLnB1c2hDb21wb25lbnQoYmFzZVBhdGguY29tcG9uZW50cywgdHJ1ZSwgdm9pZCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9vbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuICAgICAgICAgICAgaWYgKGJhc2VQYXRoLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIF9vbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgICAgICByZXR1cm4gZG9uZShidWlsZFZhbHVlcyhzZWxmLCBiYXNlUGF0aC5jb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgc2VsZi51c2VMb25nZXN0VG9rZW4pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSBiYXNlUGF0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZWRpdExlbmd0aCsrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIChmdW5jdGlvbiBleGVjKCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgaWYgKGVkaXRMZW5ndGggPiBtYXhFZGl0TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICAgICAgZXhlYygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICB9KSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgICAgIHZhciByZXQgPSBleGVjRWRpdExlbmd0aCgpO1xuICAgICAgICAgICAgaWYgKHJldCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgICBwdXNoQ29tcG9uZW50OiBmdW5jdGlvbiBwdXNoQ29tcG9uZW50KGNvbXBvbmVudHMsIGFkZGVkLCByZW1vdmVkKSB7XG4gICAgICAgIHZhciBsYXN0ID0gY29tcG9uZW50c1tjb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7XG4gICAgICAgICAgICBjb3VudDogbGFzdC5jb3VudCArIDEsXG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWRcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbXBvbmVudHMucHVzaCh7XG4gICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICAgIGFkZGVkLFxuICAgICAgICAgICAgcmVtb3ZlZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9cbiAgICAgIGV4dHJhY3RDb21tb246IGZ1bmN0aW9uIGV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpIHtcbiAgICAgICAgdmFyIG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGgsIG5ld1BvcyA9IGJhc2VQYXRoLm5ld1Bvcywgb2xkUG9zID0gbmV3UG9zIC0gZGlhZ29uYWxQYXRoLCBjb21tb25Db3VudCA9IDA7XG4gICAgICAgIHdoaWxlIChuZXdQb3MgKyAxIDwgbmV3TGVuICYmIG9sZFBvcyArIDEgPCBvbGRMZW4gJiYgdGhpcy5lcXVhbHMobmV3U3RyaW5nW25ld1BvcyArIDFdLCBvbGRTdHJpbmdbb2xkUG9zICsgMV0pKSB7XG4gICAgICAgICAgbmV3UG9zKys7XG4gICAgICAgICAgb2xkUG9zKys7XG4gICAgICAgICAgY29tbW9uQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tbW9uQ291bnQpIHtcbiAgICAgICAgICBiYXNlUGF0aC5jb21wb25lbnRzLnB1c2goe1xuICAgICAgICAgICAgY291bnQ6IGNvbW1vbkNvdW50XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYmFzZVBhdGgubmV3UG9zID0gbmV3UG9zO1xuICAgICAgICByZXR1cm4gb2xkUG9zO1xuICAgICAgfSxcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgICBlcXVhbHM6IGZ1bmN0aW9uIGVxdWFscyhsZWZ0LCByaWdodCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmNvbXBhcmF0b3IobGVmdCwgcmlnaHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodCB8fCB0aGlzLm9wdGlvbnMuaWdub3JlQ2FzZSAmJiBsZWZ0LnRvTG93ZXJDYXNlKCkgPT09IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xuICAgICAgcmVtb3ZlRW1wdHk6IGZ1bmN0aW9uIHJlbW92ZUVtcHR5KGFycmF5Mikge1xuICAgICAgICB2YXIgcmV0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGFycmF5MltpXSkge1xuICAgICAgICAgICAgcmV0LnB1c2goYXJyYXkyW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH0sXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xuICAgICAgY2FzdElucHV0OiBmdW5jdGlvbiBjYXN0SW5wdXQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgICB0b2tlbml6ZTogZnVuY3Rpb24gdG9rZW5pemUodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiXCIpO1xuICAgICAgfSxcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgICBqb2luOiBmdW5jdGlvbiBqb2luMihjaGFycykge1xuICAgICAgICByZXR1cm4gY2hhcnMuam9pbihcIlwiKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGJ1aWxkVmFsdWVzKGRpZmYsIGNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCB1c2VMb25nZXN0VG9rZW4pIHtcbiAgICAgIHZhciBjb21wb25lbnRQb3MgPSAwLCBjb21wb25lbnRMZW4gPSBjb21wb25lbnRzLmxlbmd0aCwgbmV3UG9zID0gMCwgb2xkUG9zID0gMDtcbiAgICAgIGZvciAoOyBjb21wb25lbnRQb3MgPCBjb21wb25lbnRMZW47IGNvbXBvbmVudFBvcysrKSB7XG4gICAgICAgIHZhciBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGlmICghY29tcG9uZW50LnJlbW92ZWQpIHtcbiAgICAgICAgICBpZiAoIWNvbXBvbmVudC5hZGRlZCAmJiB1c2VMb25nZXN0VG9rZW4pIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLm1hcChmdW5jdGlvbih2YWx1ZTIsIGkpIHtcbiAgICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgICAgICByZXR1cm4gb2xkVmFsdWUubGVuZ3RoID4gdmFsdWUyLmxlbmd0aCA/IG9sZFZhbHVlIDogdmFsdWUyO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4obmV3U3RyaW5nLnNsaWNlKG5ld1BvcywgbmV3UG9zICsgY29tcG9uZW50LmNvdW50KSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5ld1BvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQpIHtcbiAgICAgICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgICAgICBvbGRQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuICAgICAgICAgIGlmIChjb21wb25lbnRQb3MgJiYgY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXS5hZGRlZCkge1xuICAgICAgICAgICAgdmFyIHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgICAgICBjb21wb25lbnRzW2NvbXBvbmVudFBvcyAtIDFdID0gY29tcG9uZW50c1tjb21wb25lbnRQb3NdO1xuICAgICAgICAgICAgY29tcG9uZW50c1tjb21wb25lbnRQb3NdID0gdG1wO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIGxhc3RDb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDFdO1xuICAgICAgaWYgKGNvbXBvbmVudExlbiA+IDEgJiYgdHlwZW9mIGxhc3RDb21wb25lbnQudmFsdWUgPT09IFwic3RyaW5nXCIgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKSAmJiBkaWZmLmVxdWFscyhcIlwiLCBsYXN0Q29tcG9uZW50LnZhbHVlKSkge1xuICAgICAgICBjb21wb25lbnRzW2NvbXBvbmVudExlbiAtIDJdLnZhbHVlICs9IGxhc3RDb21wb25lbnQudmFsdWU7XG4gICAgICAgIGNvbXBvbmVudHMucG9wKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29tcG9uZW50cztcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGg5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuZXdQb3M6IHBhdGg5Lm5ld1BvcyxcbiAgICAgICAgY29tcG9uZW50czogcGF0aDkuY29tcG9uZW50cy5zbGljZSgwKVxuICAgICAgfTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZGlmZi9saWIvZGlmZi9hcnJheS5qc1xudmFyIHJlcXVpcmVfYXJyYXkyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2RpZmYvbGliL2RpZmYvYXJyYXkuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuZGlmZkFycmF5cyA9IGRpZmZBcnJheXMyO1xuICAgIGV4cG9ydHMuYXJyYXlEaWZmID0gdm9pZCAwO1xuICAgIHZhciBfYmFzZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZV9iYXNlKCkpO1xuICAgIGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07XG4gICAgfVxuICAgIHZhciBhcnJheURpZmYgPSBuZXcgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgIF9iYXNlW1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgICAgXCJkZWZhdWx0XCJcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgXSgpO1xuICAgIGV4cG9ydHMuYXJyYXlEaWZmID0gYXJyYXlEaWZmO1xuICAgIGFycmF5RGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUuc2xpY2UoKTtcbiAgICB9O1xuICAgIGFycmF5RGlmZi5qb2luID0gYXJyYXlEaWZmLnJlbW92ZUVtcHR5ID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGRpZmZBcnJheXMyKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjaykge1xuICAgICAgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL24tcmVhZGxpbmVzL3JlYWRsaW5lcy5qc1xudmFyIHJlcXVpcmVfcmVhZGxpbmVzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL24tcmVhZGxpbmVzL3JlYWRsaW5lcy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBmczUgPSBfX3JlcXVpcmUoXCJmc1wiKTtcbiAgICB2YXIgTGluZUJ5TGluZSA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKGZpbGUsIG9wdGlvbnM4KSB7XG4gICAgICAgIG9wdGlvbnM4ID0gb3B0aW9uczggfHwge307XG4gICAgICAgIGlmICghb3B0aW9uczgucmVhZENodW5rKVxuICAgICAgICAgIG9wdGlvbnM4LnJlYWRDaHVuayA9IDEwMjQ7XG4gICAgICAgIGlmICghb3B0aW9uczgubmV3TGluZUNoYXJhY3Rlcikge1xuICAgICAgICAgIG9wdGlvbnM4Lm5ld0xpbmVDaGFyYWN0ZXIgPSAxMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zOC5uZXdMaW5lQ2hhcmFjdGVyID0gb3B0aW9uczgubmV3TGluZUNoYXJhY3Rlci5jaGFyQ29kZUF0KDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgZmlsZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIHRoaXMuZmQgPSBmaWxlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmQgPSBmczUub3BlblN5bmMoZmlsZSwgXCJyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM4O1xuICAgICAgICB0aGlzLm5ld0xpbmVDaGFyYWN0ZXIgPSBvcHRpb25zOC5uZXdMaW5lQ2hhcmFjdGVyO1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICB9XG4gICAgICBfc2VhcmNoSW5CdWZmZXIoYnVmZmVyLCBoZXhOZWVkbGUpIHtcbiAgICAgICAgbGV0IGZvdW5kID0gLTE7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGJ1ZmZlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBiX2J5dGUgPSBidWZmZXJbaV07XG4gICAgICAgICAgaWYgKGJfYnl0ZSA9PT0gaGV4TmVlZGxlKSB7XG4gICAgICAgICAgICBmb3VuZCA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuICAgICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuZW9mUmVhY2hlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVzQ2FjaGUgPSBbXTtcbiAgICAgICAgdGhpcy5mZFBvc2l0aW9uID0gMDtcbiAgICAgIH1cbiAgICAgIGNsb3NlKCkge1xuICAgICAgICBmczUuY2xvc2VTeW5jKHRoaXMuZmQpO1xuICAgICAgICB0aGlzLmZkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIF9leHRyYWN0TGluZXMoYnVmZmVyKSB7XG4gICAgICAgIGxldCBsaW5lMjtcbiAgICAgICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICAgICAgbGV0IGJ1ZmZlclBvc2l0aW9uID0gMDtcbiAgICAgICAgbGV0IGxhc3ROZXdMaW5lQnVmZmVyUG9zaXRpb24gPSAwO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgIGxldCBidWZmZXJQb3NpdGlvblZhbHVlID0gYnVmZmVyW2J1ZmZlclBvc2l0aW9uKytdO1xuICAgICAgICAgIGlmIChidWZmZXJQb3NpdGlvblZhbHVlID09PSB0aGlzLm5ld0xpbmVDaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgIGxpbmUyID0gYnVmZmVyLnNsaWNlKGxhc3ROZXdMaW5lQnVmZmVyUG9zaXRpb24sIGJ1ZmZlclBvc2l0aW9uKTtcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobGluZTIpO1xuICAgICAgICAgICAgbGFzdE5ld0xpbmVCdWZmZXJQb3NpdGlvbiA9IGJ1ZmZlclBvc2l0aW9uO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYnVmZmVyUG9zaXRpb25WYWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxlZnRvdmVycyA9IGJ1ZmZlci5zbGljZShsYXN0TmV3TGluZUJ1ZmZlclBvc2l0aW9uLCBidWZmZXJQb3NpdGlvbik7XG4gICAgICAgIGlmIChsZWZ0b3ZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgbGluZXMucHVzaChsZWZ0b3ZlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5lcztcbiAgICAgIH1cbiAgICAgIF9yZWFkQ2h1bmsobGluZUxlZnRvdmVycykge1xuICAgICAgICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwO1xuICAgICAgICBsZXQgYnl0ZXNSZWFkO1xuICAgICAgICBjb25zdCBidWZmZXJzID0gW107XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjb25zdCByZWFkQnVmZmVyID0gQnVmZmVyLmFsbG9jKHRoaXMub3B0aW9ucy5yZWFkQ2h1bmspO1xuICAgICAgICAgIGJ5dGVzUmVhZCA9IGZzNS5yZWFkU3luYyh0aGlzLmZkLCByZWFkQnVmZmVyLCAwLCB0aGlzLm9wdGlvbnMucmVhZENodW5rLCB0aGlzLmZkUG9zaXRpb24pO1xuICAgICAgICAgIHRvdGFsQnl0ZXNSZWFkID0gdG90YWxCeXRlc1JlYWQgKyBieXRlc1JlYWQ7XG4gICAgICAgICAgdGhpcy5mZFBvc2l0aW9uID0gdGhpcy5mZFBvc2l0aW9uICsgYnl0ZXNSZWFkO1xuICAgICAgICAgIGJ1ZmZlcnMucHVzaChyZWFkQnVmZmVyKTtcbiAgICAgICAgfSB3aGlsZSAoYnl0ZXNSZWFkICYmIHRoaXMuX3NlYXJjaEluQnVmZmVyKGJ1ZmZlcnNbYnVmZmVycy5sZW5ndGggLSAxXSwgdGhpcy5vcHRpb25zLm5ld0xpbmVDaGFyYWN0ZXIpID09PSAtMSk7XG4gICAgICAgIGxldCBidWZmZXJEYXRhID0gQnVmZmVyLmNvbmNhdChidWZmZXJzKTtcbiAgICAgICAgaWYgKGJ5dGVzUmVhZCA8IHRoaXMub3B0aW9ucy5yZWFkQ2h1bmspIHtcbiAgICAgICAgICB0aGlzLmVvZlJlYWNoZWQgPSB0cnVlO1xuICAgICAgICAgIGJ1ZmZlckRhdGEgPSBidWZmZXJEYXRhLnNsaWNlKDAsIHRvdGFsQnl0ZXNSZWFkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG90YWxCeXRlc1JlYWQpIHtcbiAgICAgICAgICB0aGlzLmxpbmVzQ2FjaGUgPSB0aGlzLl9leHRyYWN0TGluZXMoYnVmZmVyRGF0YSk7XG4gICAgICAgICAgaWYgKGxpbmVMZWZ0b3ZlcnMpIHtcbiAgICAgICAgICAgIHRoaXMubGluZXNDYWNoZVswXSA9IEJ1ZmZlci5jb25jYXQoW2xpbmVMZWZ0b3ZlcnMsIHRoaXMubGluZXNDYWNoZVswXV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG90YWxCeXRlc1JlYWQ7XG4gICAgICB9XG4gICAgICBuZXh0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZmQpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBsZXQgbGluZTIgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuZW9mUmVhY2hlZCAmJiB0aGlzLmxpbmVzQ2FjaGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGxpbmUyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBieXRlc1JlYWQ7XG4gICAgICAgIGlmICghdGhpcy5saW5lc0NhY2hlLmxlbmd0aCkge1xuICAgICAgICAgIGJ5dGVzUmVhZCA9IHRoaXMuX3JlYWRDaHVuaygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxpbmVzQ2FjaGUubGVuZ3RoKSB7XG4gICAgICAgICAgbGluZTIgPSB0aGlzLmxpbmVzQ2FjaGUuc2hpZnQoKTtcbiAgICAgICAgICBjb25zdCBsYXN0TGluZUNoYXJhY3RlciA9IGxpbmUyW2xpbmUyLmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGlmIChsYXN0TGluZUNoYXJhY3RlciAhPT0gdGhpcy5uZXdMaW5lQ2hhcmFjdGVyKSB7XG4gICAgICAgICAgICBieXRlc1JlYWQgPSB0aGlzLl9yZWFkQ2h1bmsobGluZTIpO1xuICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCkge1xuICAgICAgICAgICAgICBsaW5lMiA9IHRoaXMubGluZXNDYWNoZS5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5lb2ZSZWFjaGVkICYmIHRoaXMubGluZXNDYWNoZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmUyICYmIGxpbmUyW2xpbmUyLmxlbmd0aCAtIDFdID09PSB0aGlzLm5ld0xpbmVDaGFyYWN0ZXIpIHtcbiAgICAgICAgICBsaW5lMiA9IGxpbmUyLnNsaWNlKDAsIGxpbmUyLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5lMjtcbiAgICAgIH1cbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gTGluZUJ5TGluZTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy10b2tlbnMvaW5kZXguanNcbnZhciByZXF1aXJlX2pzX3Rva2VucyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy10b2tlbnMvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IC8oKFsnXCJdKSg/Oig/IVxcMnxcXFxcKS58XFxcXCg/OlxcclxcbnxbXFxzXFxTXSkpKihcXDIpP3xgKD86W15gXFxcXCRdfFxcXFxbXFxzXFxTXXxcXCQoPyFcXHspfFxcJFxceyg/Oltee31dfFxce1tefV0qXFx9PykqXFx9PykqKGApPyl8KFxcL1xcLy4qKXwoXFwvXFwqKD86W14qXXxcXCooPyFcXC8pKSooXFwqXFwvKT8pfChcXC8oPyFcXCopKD86XFxbKD86KD8hW1xcXVxcXFxdKS58XFxcXC4pKlxcXXwoPyFbXFwvXFxdXFxcXF0pLnxcXFxcLikrXFwvKD86KD8hXFxzKig/OlxcYnxbXFx1MDA4MC1cXHVGRkZGJFxcXFwnXCJ+KHtdfFsrXFwtIV0oPyE9KXxcXC4/XFxkKSl8W2dtaXl1c117MSw2fVxcYig/IVtcXHUwMDgwLVxcdUZGRkYkXFxcXF18XFxzKig/OlsrXFwtKiUmfF48PiE9Pyh7XXxcXC8oPyFbXFwvKl0pKSkpKXwoMFt4WF1bXFxkYS1mQS1GXSt8MFtvT11bMC03XSt8MFtiQl1bMDFdK3woPzpcXGQqXFwuXFxkK3xcXGQrXFwuPykoPzpbZUVdWystXT9cXGQrKT8pfCgoPyFcXGQpKD86KD8hXFxzKVskXFx3XFx1MDA4MC1cXHVGRkZGXXxcXFxcdVtcXGRhLWZBLUZdezR9fFxcXFx1XFx7W1xcZGEtZkEtRl0rXFx9KSspfCgtLXxcXCtcXCt8JiZ8XFx8XFx8fD0+fFxcLnszfXwoPzpbK1xcLVxcLyUmfF5dfFxcKnsxLDJ9fDx7MSwyfXw+ezEsM318IT0/fD17MSwyfSk9P3xbP34uLDo7W1xcXSgpe31dKXwoXFxzKyl8KF4kfFtcXHNcXFNdKS9nO1xuICAgIGV4cG9ydHMubWF0Y2hUb1Rva2VuID0gZnVuY3Rpb24obWF0Y2gpIHtcbiAgICAgIHZhciB0b2tlbiA9IHsgdHlwZTogXCJpbnZhbGlkXCIsIHZhbHVlOiBtYXRjaFswXSwgY2xvc2VkOiB2b2lkIDAgfTtcbiAgICAgIGlmIChtYXRjaFsxXSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwic3RyaW5nXCIsIHRva2VuLmNsb3NlZCA9ICEhKG1hdGNoWzNdIHx8IG1hdGNoWzRdKTtcbiAgICAgIGVsc2UgaWYgKG1hdGNoWzVdKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJjb21tZW50XCI7XG4gICAgICBlbHNlIGlmIChtYXRjaFs2XSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwiY29tbWVudFwiLCB0b2tlbi5jbG9zZWQgPSAhIW1hdGNoWzddO1xuICAgICAgZWxzZSBpZiAobWF0Y2hbOF0pXG4gICAgICAgIHRva2VuLnR5cGUgPSBcInJlZ2V4XCI7XG4gICAgICBlbHNlIGlmIChtYXRjaFs5XSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwibnVtYmVyXCI7XG4gICAgICBlbHNlIGlmIChtYXRjaFsxMF0pXG4gICAgICAgIHRva2VuLnR5cGUgPSBcIm5hbWVcIjtcbiAgICAgIGVsc2UgaWYgKG1hdGNoWzExXSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwicHVuY3R1YXRvclwiO1xuICAgICAgZWxzZSBpZiAobWF0Y2hbMTJdKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJ3aGl0ZXNwYWNlXCI7XG4gICAgICByZXR1cm4gdG9rZW47XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyL2xpYi9pZGVudGlmaWVyLmpzXG52YXIgcmVxdWlyZV9pZGVudGlmaWVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvbGliL2lkZW50aWZpZXIuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuaXNJZGVudGlmaWVyQ2hhciA9IGlzSWRlbnRpZmllckNoYXI7XG4gICAgZXhwb3J0cy5pc0lkZW50aWZpZXJOYW1lID0gaXNJZGVudGlmaWVyTmFtZTtcbiAgICBleHBvcnRzLmlzSWRlbnRpZmllclN0YXJ0ID0gaXNJZGVudGlmaWVyU3RhcnQ7XG4gICAgdmFyIG5vbkFTQ0lJaWRlbnRpZmllclN0YXJ0Q2hhcnMgPSBcIlxceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYwLVxcdTA1ODhcXHUwNUQwLVxcdTA1RUFcXHUwNUVGLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDg3MC1cXHUwODg3XFx1MDg4OS1cXHUwODhFXFx1MDhBMC1cXHUwOEM5XFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNURcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNC1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg2LVxcdTBFOEFcXHUwRThDLVxcdTBFQTNcXHUwRUE1XFx1MEVBNy1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkVFLVxcdTE2RjhcXHUxNzAwLVxcdTE3MTFcXHUxNzFGLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3OFxcdTE4ODAtXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRDXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQzkwLVxcdTFDQkFcXHUxQ0JELVxcdTFDQkZcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjNcXHUxQ0Y1XFx1MUNGNlxcdTFDRkFcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE4LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMjlcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlCLVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkZcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQkZcXHU0RTAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFRlxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdDQVxcdUE3RDBcXHVBN0QxXFx1QTdEM1xcdUE3RDUtXFx1QTdEOVxcdUE3RjItXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjlcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcIjtcbiAgICB2YXIgbm9uQVNDSUlpZGVudGlmaWVyQ2hhcnMgPSBcIlxcdTIwMENcXHUyMDBEXFx4QjdcXHUwMzAwLVxcdTAzNkZcXHUwMzg3XFx1MDQ4My1cXHUwNDg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDYxMC1cXHUwNjFBXFx1MDY0Qi1cXHUwNjY5XFx1MDY3MFxcdTA2RDYtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNFxcdTA2RTdcXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDZGMC1cXHUwNkY5XFx1MDcxMVxcdTA3MzAtXFx1MDc0QVxcdTA3QTYtXFx1MDdCMFxcdTA3QzAtXFx1MDdDOVxcdTA3RUItXFx1MDdGM1xcdTA3RkRcXHUwODE2LVxcdTA4MTlcXHUwODFCLVxcdTA4MjNcXHUwODI1LVxcdTA4MjdcXHUwODI5LVxcdTA4MkRcXHUwODU5LVxcdTA4NUJcXHUwODk4LVxcdTA4OUZcXHUwOENBLVxcdTA4RTFcXHUwOEUzLVxcdTA5MDNcXHUwOTNBLVxcdTA5M0NcXHUwOTNFLVxcdTA5NEZcXHUwOTUxLVxcdTA5NTdcXHUwOTYyXFx1MDk2M1xcdTA5NjYtXFx1MDk2RlxcdTA5ODEtXFx1MDk4M1xcdTA5QkNcXHUwOUJFLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRFxcdTA5RDdcXHUwOUUyXFx1MDlFM1xcdTA5RTYtXFx1MDlFRlxcdTA5RkVcXHUwQTAxLVxcdTBBMDNcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE2Ni1cXHUwQTcxXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBQkNcXHUwQUJFLVxcdTBBQzVcXHUwQUM3LVxcdTBBQzlcXHUwQUNCLVxcdTBBQ0RcXHUwQUUyXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRkEtXFx1MEFGRlxcdTBCMDEtXFx1MEIwM1xcdTBCM0NcXHUwQjNFLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTUtXFx1MEI1N1xcdTBCNjJcXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI4MlxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDRcXHUwQzNDXFx1MEMzRS1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzYyXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODEtXFx1MEM4M1xcdTBDQkNcXHUwQ0JFLVxcdTBDQzRcXHUwQ0M2LVxcdTBDQzhcXHUwQ0NBLVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBDRTJcXHUwQ0UzXFx1MENFNi1cXHUwQ0VGXFx1MENGM1xcdTBEMDAtXFx1MEQwM1xcdTBEM0JcXHUwRDNDXFx1MEQzRS1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDREXFx1MEQ1N1xcdTBENjJcXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ4MS1cXHUwRDgzXFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMzFcXHUwRTM0LVxcdTBFM0FcXHUwRTQ3LVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRUIxXFx1MEVCNC1cXHUwRUJDXFx1MEVDOC1cXHUwRUNFXFx1MEVEMC1cXHUwRUQ5XFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFXFx1MEYzRlxcdTBGNzEtXFx1MEY4NFxcdTBGODZcXHUwRjg3XFx1MEY4RC1cXHUwRjk3XFx1MEY5OS1cXHUwRkJDXFx1MEZDNlxcdTEwMkItXFx1MTAzRVxcdTEwNDAtXFx1MTA0OVxcdTEwNTYtXFx1MTA1OVxcdTEwNUUtXFx1MTA2MFxcdTEwNjItXFx1MTA2NFxcdTEwNjctXFx1MTA2RFxcdTEwNzEtXFx1MTA3NFxcdTEwODItXFx1MTA4RFxcdTEwOEYtXFx1MTA5RFxcdTEzNUQtXFx1MTM1RlxcdTEzNjktXFx1MTM3MVxcdTE3MTItXFx1MTcxNVxcdTE3MzItXFx1MTczNFxcdTE3NTJcXHUxNzUzXFx1MTc3MlxcdTE3NzNcXHUxN0I0LVxcdTE3RDNcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgwRi1cXHUxODE5XFx1MThBOVxcdTE5MjAtXFx1MTkyQlxcdTE5MzAtXFx1MTkzQlxcdTE5NDYtXFx1MTk0RlxcdTE5RDAtXFx1MTlEQVxcdTFBMTctXFx1MUExQlxcdTFBNTUtXFx1MUE1RVxcdTFBNjAtXFx1MUE3Q1xcdTFBN0YtXFx1MUE4OVxcdTFBOTAtXFx1MUE5OVxcdTFBQjAtXFx1MUFCRFxcdTFBQkYtXFx1MUFDRVxcdTFCMDAtXFx1MUIwNFxcdTFCMzQtXFx1MUI0NFxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUI4MlxcdTFCQTEtXFx1MUJBRFxcdTFCQjAtXFx1MUJCOVxcdTFCRTYtXFx1MUJGM1xcdTFDMjQtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNTAtXFx1MUM1OVxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNFOFxcdTFDRURcXHUxQ0Y0XFx1MUNGNy1cXHUxQ0Y5XFx1MURDMC1cXHUxREZGXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTJDRUYtXFx1MkNGMVxcdTJEN0ZcXHUyREUwLVxcdTJERkZcXHUzMDJBLVxcdTMwMkZcXHUzMDk5XFx1MzA5QVxcdUE2MjAtXFx1QTYyOVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjlFXFx1QTY5RlxcdUE2RjBcXHVBNkYxXFx1QTgwMlxcdUE4MDZcXHVBODBCXFx1QTgyMy1cXHVBODI3XFx1QTgyQ1xcdUE4ODBcXHVBODgxXFx1QThCNC1cXHVBOEM1XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEYxXFx1QThGRi1cXHVBOTA5XFx1QTkyNi1cXHVBOTJEXFx1QTk0Ny1cXHVBOTUzXFx1QTk4MC1cXHVBOTgzXFx1QTlCMy1cXHVBOUMwXFx1QTlEMC1cXHVBOUQ5XFx1QTlFNVxcdUE5RjAtXFx1QTlGOVxcdUFBMjktXFx1QUEzNlxcdUFBNDNcXHVBQTRDXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBN0ItXFx1QUE3RFxcdUFBQjBcXHVBQUIyLVxcdUFBQjRcXHVBQUI3XFx1QUFCOFxcdUFBQkVcXHVBQUJGXFx1QUFDMVxcdUFBRUItXFx1QUFFRlxcdUFBRjVcXHVBQUY2XFx1QUJFMy1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVGQjFFXFx1RkUwMC1cXHVGRTBGXFx1RkUyMC1cXHVGRTJGXFx1RkUzM1xcdUZFMzRcXHVGRTRELVxcdUZFNEZcXHVGRjEwLVxcdUZGMTlcXHVGRjNGXCI7XG4gICAgdmFyIG5vbkFTQ0lJaWRlbnRpZmllclN0YXJ0ID0gbmV3IFJlZ0V4cChcIltcIiArIG5vbkFTQ0lJaWRlbnRpZmllclN0YXJ0Q2hhcnMgKyBcIl1cIik7XG4gICAgdmFyIG5vbkFTQ0lJaWRlbnRpZmllciA9IG5ldyBSZWdFeHAoXCJbXCIgKyBub25BU0NJSWlkZW50aWZpZXJTdGFydENoYXJzICsgbm9uQVNDSUlpZGVudGlmaWVyQ2hhcnMgKyBcIl1cIik7XG4gICAgbm9uQVNDSUlpZGVudGlmaWVyU3RhcnRDaGFycyA9IG5vbkFTQ0lJaWRlbnRpZmllckNoYXJzID0gbnVsbDtcbiAgICB2YXIgYXN0cmFsSWRlbnRpZmllclN0YXJ0Q29kZXMgPSBbMCwgMTEsIDIsIDI1LCAyLCAxOCwgMiwgMSwgMiwgMTQsIDMsIDEzLCAzNSwgMTIyLCA3MCwgNTIsIDI2OCwgMjgsIDQsIDQ4LCA0OCwgMzEsIDE0LCAyOSwgNiwgMzcsIDExLCAyOSwgMywgMzUsIDUsIDcsIDIsIDQsIDQzLCAxNTcsIDE5LCAzNSwgNSwgMzUsIDUsIDM5LCA5LCA1MSwgMTMsIDEwLCAyLCAxNCwgMiwgNiwgMiwgMSwgMiwgMTAsIDIsIDE0LCAyLCA2LCAyLCAxLCA2OCwgMzEwLCAxMCwgMjEsIDExLCA3LCAyNSwgNSwgMiwgNDEsIDIsIDgsIDcwLCA1LCAzLCAwLCAyLCA0MywgMiwgMSwgNCwgMCwgMywgMjIsIDExLCAyMiwgMTAsIDMwLCA2NiwgMTgsIDIsIDEsIDExLCAyMSwgMTEsIDI1LCA3MSwgNTUsIDcsIDEsIDY1LCAwLCAxNiwgMywgMiwgMiwgMiwgMjgsIDQzLCAyOCwgNCwgMjgsIDM2LCA3LCAyLCAyNywgMjgsIDUzLCAxMSwgMjEsIDExLCAxOCwgMTQsIDE3LCAxMTEsIDcyLCA1NiwgNTAsIDE0LCA1MCwgMTQsIDM1LCAzNDksIDQxLCA3LCAxLCA3OSwgMjgsIDExLCAwLCA5LCAyMSwgNDMsIDE3LCA0NywgMjAsIDI4LCAyMiwgMTMsIDUyLCA1OCwgMSwgMywgMCwgMTQsIDQ0LCAzMywgMjQsIDI3LCAzNSwgMzAsIDAsIDMsIDAsIDksIDM0LCA0LCAwLCAxMywgNDcsIDE1LCAzLCAyMiwgMCwgMiwgMCwgMzYsIDE3LCAyLCAyNCwgMjAsIDEsIDY0LCA2LCAyLCAwLCAyLCAzLCAyLCAxNCwgMiwgOSwgOCwgNDYsIDM5LCA3LCAzLCAxLCAzLCAyMSwgMiwgNiwgMiwgMSwgMiwgNCwgNCwgMCwgMTksIDAsIDEzLCA0LCAxNTksIDUyLCAxOSwgMywgMjEsIDIsIDMxLCA0NywgMjEsIDEsIDIsIDAsIDE4NSwgNDYsIDQyLCAzLCAzNywgNDcsIDIxLCAwLCA2MCwgNDIsIDE0LCAwLCA3MiwgMjYsIDM4LCA2LCAxODYsIDQzLCAxMTcsIDYzLCAzMiwgNywgMywgMCwgMywgNywgMiwgMSwgMiwgMjMsIDE2LCAwLCAyLCAwLCA5NSwgNywgMywgMzgsIDE3LCAwLCAyLCAwLCAyOSwgMCwgMTEsIDM5LCA4LCAwLCAyMiwgMCwgMTIsIDQ1LCAyMCwgMCwgMTksIDcyLCAyNjQsIDgsIDIsIDM2LCAxOCwgMCwgNTAsIDI5LCAxMTMsIDYsIDIsIDEsIDIsIDM3LCAyMiwgMCwgMjYsIDUsIDIsIDEsIDIsIDMxLCAxNSwgMCwgMzI4LCAxOCwgMTYsIDAsIDIsIDEyLCAyLCAzMywgMTI1LCAwLCA4MCwgOTIxLCAxMDMsIDExMCwgMTgsIDE5NSwgMjYzNywgOTYsIDE2LCAxMDcxLCAxOCwgNSwgNDAyNiwgNTgyLCA4NjM0LCA1NjgsIDgsIDMwLCAxOCwgNzgsIDE4LCAyOSwgMTksIDQ3LCAxNywgMywgMzIsIDIwLCA2LCAxOCwgNjg5LCA2MywgMTI5LCA3NCwgNiwgMCwgNjcsIDEyLCA2NSwgMSwgMiwgMCwgMjksIDYxMzUsIDksIDEyMzcsIDQzLCA4LCA4OTM2LCAzLCAyLCA2LCAyLCAxLCAyLCAyOTAsIDE2LCAwLCAzMCwgMiwgMywgMCwgMTUsIDMsIDksIDM5NSwgMjMwOSwgMTA2LCA2LCAxMiwgNCwgOCwgOCwgOSwgNTk5MSwgODQsIDIsIDcwLCAyLCAxLCAzLCAwLCAzLCAxLCAzLCAzLCAyLCAxMSwgMiwgMCwgMiwgNiwgMiwgNjQsIDIsIDMsIDMsIDcsIDIsIDYsIDIsIDI3LCAyLCAzLCAyLCA0LCAyLCAwLCA0LCA2LCAyLCAzMzksIDMsIDI0LCAyLCAyNCwgMiwgMzAsIDIsIDI0LCAyLCAzMCwgMiwgMjQsIDIsIDMwLCAyLCAyNCwgMiwgMzAsIDIsIDI0LCAyLCA3LCAxODQ1LCAzMCwgNywgNSwgMjYyLCA2MSwgMTQ3LCA0NCwgMTEsIDYsIDE3LCAwLCAzMjIsIDI5LCAxOSwgNDMsIDQ4NSwgMjcsIDc1NywgNiwgMiwgMywgMiwgMSwgMiwgMTQsIDIsIDE5NiwgNjAsIDY3LCA4LCAwLCAxMjA1LCAzLCAyLCAyNiwgMiwgMSwgMiwgMCwgMywgMCwgMiwgOSwgMiwgMywgMiwgMCwgMiwgMCwgNywgMCwgNSwgMCwgMiwgMCwgMiwgMCwgMiwgMiwgMiwgMSwgMiwgMCwgMywgMCwgMiwgMCwgMiwgMCwgMiwgMCwgMiwgMCwgMiwgMSwgMiwgMCwgMywgMywgMiwgNiwgMiwgMywgMiwgMywgMiwgMCwgMiwgOSwgMiwgMTYsIDYsIDIsIDIsIDQsIDIsIDE2LCA0NDIxLCA0MjcxOSwgMzMsIDQxNTMsIDcsIDIyMSwgMywgNTc2MSwgMTUsIDc0NzIsIDMxMDQsIDU0MSwgMTUwNywgNDkzOCwgNiwgNDE5MV07XG4gICAgdmFyIGFzdHJhbElkZW50aWZpZXJDb2RlcyA9IFs1MDksIDAsIDIyNywgMCwgMTUwLCA0LCAyOTQsIDksIDEzNjgsIDIsIDIsIDEsIDYsIDMsIDQxLCAyLCA1LCAwLCAxNjYsIDEsIDU3NCwgMywgOSwgOSwgMzcwLCAxLCA4MSwgMiwgNzEsIDEwLCA1MCwgMywgMTIzLCAyLCA1NCwgMTQsIDMyLCAxMCwgMywgMSwgMTEsIDMsIDQ2LCAxMCwgOCwgMCwgNDYsIDksIDcsIDIsIDM3LCAxMywgMiwgOSwgNiwgMSwgNDUsIDAsIDEzLCAyLCA0OSwgMTMsIDksIDMsIDIsIDExLCA4MywgMTEsIDcsIDAsIDMsIDAsIDE1OCwgMTEsIDYsIDksIDcsIDMsIDU2LCAxLCAyLCA2LCAzLCAxLCAzLCAyLCAxMCwgMCwgMTEsIDEsIDMsIDYsIDQsIDQsIDE5MywgMTcsIDEwLCA5LCA1LCAwLCA4MiwgMTksIDEzLCA5LCAyMTQsIDYsIDMsIDgsIDI4LCAxLCA4MywgMTYsIDE2LCA5LCA4MiwgMTIsIDksIDksIDg0LCAxNCwgNSwgOSwgMjQzLCAxNCwgMTY2LCA5LCA3MSwgNSwgMiwgMSwgMywgMywgMiwgMCwgMiwgMSwgMTMsIDksIDEyMCwgNiwgMywgNiwgNCwgMCwgMjksIDksIDQxLCA2LCAyLCAzLCA5LCAwLCAxMCwgMTAsIDQ3LCAxNSwgNDA2LCA3LCAyLCA3LCAxNywgOSwgNTcsIDIxLCAyLCAxMywgMTIzLCA1LCA0LCAwLCAyLCAxLCAyLCA2LCAyLCAwLCA5LCA5LCA0OSwgNCwgMiwgMSwgMiwgNCwgOSwgOSwgMzMwLCAzLCAxMCwgMSwgMiwgMCwgNDksIDYsIDQsIDQsIDE0LCA5LCA1MzUxLCAwLCA3LCAxNCwgMTM4MzUsIDksIDg3LCA5LCAzOSwgNCwgNjAsIDYsIDI2LCA5LCAxMDE0LCAwLCAyLCA1NCwgOCwgMywgODIsIDAsIDEyLCAxLCAxOTYyOCwgMSwgNDcwNiwgNDUsIDMsIDIyLCA1NDMsIDQsIDQsIDUsIDksIDcsIDMsIDYsIDMxLCAzLCAxNDksIDIsIDE0MTgsIDQ5LCA1MTMsIDU0LCA1LCA0OSwgOSwgMCwgMTUsIDAsIDIzLCA0LCAyLCAxNCwgMTM2MSwgNiwgMiwgMTYsIDMsIDYsIDIsIDEsIDIsIDQsIDEwMSwgMCwgMTYxLCA2LCAxMCwgOSwgMzU3LCAwLCA2MiwgMTMsIDQ5OSwgMTMsIDk4MywgNiwgMTEwLCA2LCA2LCA5LCA0NzU5LCA5LCA3ODc3MTksIDIzOV07XG4gICAgZnVuY3Rpb24gaXNJbkFzdHJhbFNldChjb2RlLCBzZXQpIHtcbiAgICAgIGxldCBwb3MgPSA2NTUzNjtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBzZXQubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgcG9zICs9IHNldFtpXTtcbiAgICAgICAgaWYgKHBvcyA+IGNvZGUpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBwb3MgKz0gc2V0W2kgKyAxXTtcbiAgICAgICAgaWYgKHBvcyA+PSBjb2RlKVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJTdGFydChjb2RlKSB7XG4gICAgICBpZiAoY29kZSA8IDY1KVxuICAgICAgICByZXR1cm4gY29kZSA9PT0gMzY7XG4gICAgICBpZiAoY29kZSA8PSA5MClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoY29kZSA8IDk3KVxuICAgICAgICByZXR1cm4gY29kZSA9PT0gOTU7XG4gICAgICBpZiAoY29kZSA8PSAxMjIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgaWYgKGNvZGUgPD0gNjU1MzUpIHtcbiAgICAgICAgcmV0dXJuIGNvZGUgPj0gMTcwICYmIG5vbkFTQ0lJaWRlbnRpZmllclN0YXJ0LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNJbkFzdHJhbFNldChjb2RlLCBhc3RyYWxJZGVudGlmaWVyU3RhcnRDb2Rlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllckNoYXIoY29kZSkge1xuICAgICAgaWYgKGNvZGUgPCA0OClcbiAgICAgICAgcmV0dXJuIGNvZGUgPT09IDM2O1xuICAgICAgaWYgKGNvZGUgPCA1OClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoY29kZSA8IDY1KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoY29kZSA8PSA5MClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoY29kZSA8IDk3KVxuICAgICAgICByZXR1cm4gY29kZSA9PT0gOTU7XG4gICAgICBpZiAoY29kZSA8PSAxMjIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgaWYgKGNvZGUgPD0gNjU1MzUpIHtcbiAgICAgICAgcmV0dXJuIGNvZGUgPj0gMTcwICYmIG5vbkFTQ0lJaWRlbnRpZmllci50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlzSW5Bc3RyYWxTZXQoY29kZSwgYXN0cmFsSWRlbnRpZmllclN0YXJ0Q29kZXMpIHx8IGlzSW5Bc3RyYWxTZXQoY29kZSwgYXN0cmFsSWRlbnRpZmllckNvZGVzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyTmFtZShuYW1lKSB7XG4gICAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNwID0gbmFtZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoKGNwICYgNjQ1MTIpID09PSA1NTI5NiAmJiBpICsgMSA8IG5hbWUubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgdHJhaWwgPSBuYW1lLmNoYXJDb2RlQXQoKytpKTtcbiAgICAgICAgICBpZiAoKHRyYWlsICYgNjQ1MTIpID09PSA1NjMyMCkge1xuICAgICAgICAgICAgY3AgPSA2NTUzNiArICgoY3AgJiAxMDIzKSA8PCAxMCkgKyAodHJhaWwgJiAxMDIzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgaWYgKCFpc0lkZW50aWZpZXJTdGFydChjcCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzSWRlbnRpZmllckNoYXIoY3ApKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gIWlzRmlyc3Q7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvbGliL2tleXdvcmQuanNcbnZhciByZXF1aXJlX2tleXdvcmQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci9saWIva2V5d29yZC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5pc0tleXdvcmQgPSBpc0tleXdvcmQ7XG4gICAgZXhwb3J0cy5pc1Jlc2VydmVkV29yZCA9IGlzUmVzZXJ2ZWRXb3JkO1xuICAgIGV4cG9ydHMuaXNTdHJpY3RCaW5kT25seVJlc2VydmVkV29yZCA9IGlzU3RyaWN0QmluZE9ubHlSZXNlcnZlZFdvcmQ7XG4gICAgZXhwb3J0cy5pc1N0cmljdEJpbmRSZXNlcnZlZFdvcmQgPSBpc1N0cmljdEJpbmRSZXNlcnZlZFdvcmQ7XG4gICAgZXhwb3J0cy5pc1N0cmljdFJlc2VydmVkV29yZCA9IGlzU3RyaWN0UmVzZXJ2ZWRXb3JkO1xuICAgIHZhciByZXNlcnZlZFdvcmRzID0ge1xuICAgICAga2V5d29yZDogW1wiYnJlYWtcIiwgXCJjYXNlXCIsIFwiY2F0Y2hcIiwgXCJjb250aW51ZVwiLCBcImRlYnVnZ2VyXCIsIFwiZGVmYXVsdFwiLCBcImRvXCIsIFwiZWxzZVwiLCBcImZpbmFsbHlcIiwgXCJmb3JcIiwgXCJmdW5jdGlvblwiLCBcImlmXCIsIFwicmV0dXJuXCIsIFwic3dpdGNoXCIsIFwidGhyb3dcIiwgXCJ0cnlcIiwgXCJ2YXJcIiwgXCJjb25zdFwiLCBcIndoaWxlXCIsIFwid2l0aFwiLCBcIm5ld1wiLCBcInRoaXNcIiwgXCJzdXBlclwiLCBcImNsYXNzXCIsIFwiZXh0ZW5kc1wiLCBcImV4cG9ydFwiLCBcImltcG9ydFwiLCBcIm51bGxcIiwgXCJ0cnVlXCIsIFwiZmFsc2VcIiwgXCJpblwiLCBcImluc3RhbmNlb2ZcIiwgXCJ0eXBlb2ZcIiwgXCJ2b2lkXCIsIFwiZGVsZXRlXCJdLFxuICAgICAgc3RyaWN0OiBbXCJpbXBsZW1lbnRzXCIsIFwiaW50ZXJmYWNlXCIsIFwibGV0XCIsIFwicGFja2FnZVwiLCBcInByaXZhdGVcIiwgXCJwcm90ZWN0ZWRcIiwgXCJwdWJsaWNcIiwgXCJzdGF0aWNcIiwgXCJ5aWVsZFwiXSxcbiAgICAgIHN0cmljdEJpbmQ6IFtcImV2YWxcIiwgXCJhcmd1bWVudHNcIl1cbiAgICB9O1xuICAgIHZhciBrZXl3b3JkcyA9IG5ldyBTZXQocmVzZXJ2ZWRXb3Jkcy5rZXl3b3JkKTtcbiAgICB2YXIgcmVzZXJ2ZWRXb3Jkc1N0cmljdFNldCA9IG5ldyBTZXQocmVzZXJ2ZWRXb3Jkcy5zdHJpY3QpO1xuICAgIHZhciByZXNlcnZlZFdvcmRzU3RyaWN0QmluZFNldCA9IG5ldyBTZXQocmVzZXJ2ZWRXb3Jkcy5zdHJpY3RCaW5kKTtcbiAgICBmdW5jdGlvbiBpc1Jlc2VydmVkV29yZCh3b3JkLCBpbk1vZHVsZSkge1xuICAgICAgcmV0dXJuIGluTW9kdWxlICYmIHdvcmQgPT09IFwiYXdhaXRcIiB8fCB3b3JkID09PSBcImVudW1cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdHJpY3RSZXNlcnZlZFdvcmQod29yZCwgaW5Nb2R1bGUpIHtcbiAgICAgIHJldHVybiBpc1Jlc2VydmVkV29yZCh3b3JkLCBpbk1vZHVsZSkgfHwgcmVzZXJ2ZWRXb3Jkc1N0cmljdFNldC5oYXMod29yZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU3RyaWN0QmluZE9ubHlSZXNlcnZlZFdvcmQod29yZCkge1xuICAgICAgcmV0dXJuIHJlc2VydmVkV29yZHNTdHJpY3RCaW5kU2V0Lmhhcyh3b3JkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdHJpY3RCaW5kUmVzZXJ2ZWRXb3JkKHdvcmQsIGluTW9kdWxlKSB7XG4gICAgICByZXR1cm4gaXNTdHJpY3RSZXNlcnZlZFdvcmQod29yZCwgaW5Nb2R1bGUpIHx8IGlzU3RyaWN0QmluZE9ubHlSZXNlcnZlZFdvcmQod29yZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzS2V5d29yZCh3b3JkKSB7XG4gICAgICByZXR1cm4ga2V5d29yZHMuaGFzKHdvcmQpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyL2xpYi9pbmRleC5qc1xudmFyIHJlcXVpcmVfbGliID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvbGliL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0lkZW50aWZpZXJDaGFyXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2lkZW50aWZpZXIuaXNJZGVudGlmaWVyQ2hhcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0lkZW50aWZpZXJOYW1lXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2lkZW50aWZpZXIuaXNJZGVudGlmaWVyTmFtZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0lkZW50aWZpZXJTdGFydFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9pZGVudGlmaWVyLmlzSWRlbnRpZmllclN0YXJ0O1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzS2V5d29yZFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9rZXl3b3JkLmlzS2V5d29yZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1Jlc2VydmVkV29yZFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9rZXl3b3JkLmlzUmVzZXJ2ZWRXb3JkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzU3RyaWN0QmluZE9ubHlSZXNlcnZlZFdvcmRcIiwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfa2V5d29yZC5pc1N0cmljdEJpbmRPbmx5UmVzZXJ2ZWRXb3JkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzU3RyaWN0QmluZFJlc2VydmVkV29yZFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9rZXl3b3JkLmlzU3RyaWN0QmluZFJlc2VydmVkV29yZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1N0cmljdFJlc2VydmVkV29yZFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9rZXl3b3JkLmlzU3RyaWN0UmVzZXJ2ZWRXb3JkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBfaWRlbnRpZmllciA9IHJlcXVpcmVfaWRlbnRpZmllcigpO1xuICAgIHZhciBfa2V5d29yZCA9IHJlcXVpcmVfa2V5d29yZCgpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9lc2NhcGUtc3RyaW5nLXJlZ2V4cC9pbmRleC5qc1xudmFyIHJlcXVpcmVfZXNjYXBlX3N0cmluZ19yZWdleHAgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL2VzY2FwZS1zdHJpbmctcmVnZXhwL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG1hdGNoT3BlcmF0b3JzUmUgPSAvW3xcXFxce30oKVtcXF1eJCsqPy5dL2c7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihzdHIpIHtcbiAgICAgIGlmICh0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShtYXRjaE9wZXJhdG9yc1JlLCBcIlxcXFwkJlwiKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2NvbG9yLW5hbWUvaW5kZXguanNcbnZhciByZXF1aXJlX2NvbG9yX25hbWUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29sb3ItbmFtZS9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgXCJhbGljZWJsdWVcIjogWzI0MCwgMjQ4LCAyNTVdLFxuICAgICAgXCJhbnRpcXVld2hpdGVcIjogWzI1MCwgMjM1LCAyMTVdLFxuICAgICAgXCJhcXVhXCI6IFswLCAyNTUsIDI1NV0sXG4gICAgICBcImFxdWFtYXJpbmVcIjogWzEyNywgMjU1LCAyMTJdLFxuICAgICAgXCJhenVyZVwiOiBbMjQwLCAyNTUsIDI1NV0sXG4gICAgICBcImJlaWdlXCI6IFsyNDUsIDI0NSwgMjIwXSxcbiAgICAgIFwiYmlzcXVlXCI6IFsyNTUsIDIyOCwgMTk2XSxcbiAgICAgIFwiYmxhY2tcIjogWzAsIDAsIDBdLFxuICAgICAgXCJibGFuY2hlZGFsbW9uZFwiOiBbMjU1LCAyMzUsIDIwNV0sXG4gICAgICBcImJsdWVcIjogWzAsIDAsIDI1NV0sXG4gICAgICBcImJsdWV2aW9sZXRcIjogWzEzOCwgNDMsIDIyNl0sXG4gICAgICBcImJyb3duXCI6IFsxNjUsIDQyLCA0Ml0sXG4gICAgICBcImJ1cmx5d29vZFwiOiBbMjIyLCAxODQsIDEzNV0sXG4gICAgICBcImNhZGV0Ymx1ZVwiOiBbOTUsIDE1OCwgMTYwXSxcbiAgICAgIFwiY2hhcnRyZXVzZVwiOiBbMTI3LCAyNTUsIDBdLFxuICAgICAgXCJjaG9jb2xhdGVcIjogWzIxMCwgMTA1LCAzMF0sXG4gICAgICBcImNvcmFsXCI6IFsyNTUsIDEyNywgODBdLFxuICAgICAgXCJjb3JuZmxvd2VyYmx1ZVwiOiBbMTAwLCAxNDksIDIzN10sXG4gICAgICBcImNvcm5zaWxrXCI6IFsyNTUsIDI0OCwgMjIwXSxcbiAgICAgIFwiY3JpbXNvblwiOiBbMjIwLCAyMCwgNjBdLFxuICAgICAgXCJjeWFuXCI6IFswLCAyNTUsIDI1NV0sXG4gICAgICBcImRhcmtibHVlXCI6IFswLCAwLCAxMzldLFxuICAgICAgXCJkYXJrY3lhblwiOiBbMCwgMTM5LCAxMzldLFxuICAgICAgXCJkYXJrZ29sZGVucm9kXCI6IFsxODQsIDEzNCwgMTFdLFxuICAgICAgXCJkYXJrZ3JheVwiOiBbMTY5LCAxNjksIDE2OV0sXG4gICAgICBcImRhcmtncmVlblwiOiBbMCwgMTAwLCAwXSxcbiAgICAgIFwiZGFya2dyZXlcIjogWzE2OSwgMTY5LCAxNjldLFxuICAgICAgXCJkYXJra2hha2lcIjogWzE4OSwgMTgzLCAxMDddLFxuICAgICAgXCJkYXJrbWFnZW50YVwiOiBbMTM5LCAwLCAxMzldLFxuICAgICAgXCJkYXJrb2xpdmVncmVlblwiOiBbODUsIDEwNywgNDddLFxuICAgICAgXCJkYXJrb3JhbmdlXCI6IFsyNTUsIDE0MCwgMF0sXG4gICAgICBcImRhcmtvcmNoaWRcIjogWzE1MywgNTAsIDIwNF0sXG4gICAgICBcImRhcmtyZWRcIjogWzEzOSwgMCwgMF0sXG4gICAgICBcImRhcmtzYWxtb25cIjogWzIzMywgMTUwLCAxMjJdLFxuICAgICAgXCJkYXJrc2VhZ3JlZW5cIjogWzE0MywgMTg4LCAxNDNdLFxuICAgICAgXCJkYXJrc2xhdGVibHVlXCI6IFs3MiwgNjEsIDEzOV0sXG4gICAgICBcImRhcmtzbGF0ZWdyYXlcIjogWzQ3LCA3OSwgNzldLFxuICAgICAgXCJkYXJrc2xhdGVncmV5XCI6IFs0NywgNzksIDc5XSxcbiAgICAgIFwiZGFya3R1cnF1b2lzZVwiOiBbMCwgMjA2LCAyMDldLFxuICAgICAgXCJkYXJrdmlvbGV0XCI6IFsxNDgsIDAsIDIxMV0sXG4gICAgICBcImRlZXBwaW5rXCI6IFsyNTUsIDIwLCAxNDddLFxuICAgICAgXCJkZWVwc2t5Ymx1ZVwiOiBbMCwgMTkxLCAyNTVdLFxuICAgICAgXCJkaW1ncmF5XCI6IFsxMDUsIDEwNSwgMTA1XSxcbiAgICAgIFwiZGltZ3JleVwiOiBbMTA1LCAxMDUsIDEwNV0sXG4gICAgICBcImRvZGdlcmJsdWVcIjogWzMwLCAxNDQsIDI1NV0sXG4gICAgICBcImZpcmVicmlja1wiOiBbMTc4LCAzNCwgMzRdLFxuICAgICAgXCJmbG9yYWx3aGl0ZVwiOiBbMjU1LCAyNTAsIDI0MF0sXG4gICAgICBcImZvcmVzdGdyZWVuXCI6IFszNCwgMTM5LCAzNF0sXG4gICAgICBcImZ1Y2hzaWFcIjogWzI1NSwgMCwgMjU1XSxcbiAgICAgIFwiZ2FpbnNib3JvXCI6IFsyMjAsIDIyMCwgMjIwXSxcbiAgICAgIFwiZ2hvc3R3aGl0ZVwiOiBbMjQ4LCAyNDgsIDI1NV0sXG4gICAgICBcImdvbGRcIjogWzI1NSwgMjE1LCAwXSxcbiAgICAgIFwiZ29sZGVucm9kXCI6IFsyMTgsIDE2NSwgMzJdLFxuICAgICAgXCJncmF5XCI6IFsxMjgsIDEyOCwgMTI4XSxcbiAgICAgIFwiZ3JlZW5cIjogWzAsIDEyOCwgMF0sXG4gICAgICBcImdyZWVueWVsbG93XCI6IFsxNzMsIDI1NSwgNDddLFxuICAgICAgXCJncmV5XCI6IFsxMjgsIDEyOCwgMTI4XSxcbiAgICAgIFwiaG9uZXlkZXdcIjogWzI0MCwgMjU1LCAyNDBdLFxuICAgICAgXCJob3RwaW5rXCI6IFsyNTUsIDEwNSwgMTgwXSxcbiAgICAgIFwiaW5kaWFucmVkXCI6IFsyMDUsIDkyLCA5Ml0sXG4gICAgICBcImluZGlnb1wiOiBbNzUsIDAsIDEzMF0sXG4gICAgICBcIml2b3J5XCI6IFsyNTUsIDI1NSwgMjQwXSxcbiAgICAgIFwia2hha2lcIjogWzI0MCwgMjMwLCAxNDBdLFxuICAgICAgXCJsYXZlbmRlclwiOiBbMjMwLCAyMzAsIDI1MF0sXG4gICAgICBcImxhdmVuZGVyYmx1c2hcIjogWzI1NSwgMjQwLCAyNDVdLFxuICAgICAgXCJsYXduZ3JlZW5cIjogWzEyNCwgMjUyLCAwXSxcbiAgICAgIFwibGVtb25jaGlmZm9uXCI6IFsyNTUsIDI1MCwgMjA1XSxcbiAgICAgIFwibGlnaHRibHVlXCI6IFsxNzMsIDIxNiwgMjMwXSxcbiAgICAgIFwibGlnaHRjb3JhbFwiOiBbMjQwLCAxMjgsIDEyOF0sXG4gICAgICBcImxpZ2h0Y3lhblwiOiBbMjI0LCAyNTUsIDI1NV0sXG4gICAgICBcImxpZ2h0Z29sZGVucm9keWVsbG93XCI6IFsyNTAsIDI1MCwgMjEwXSxcbiAgICAgIFwibGlnaHRncmF5XCI6IFsyMTEsIDIxMSwgMjExXSxcbiAgICAgIFwibGlnaHRncmVlblwiOiBbMTQ0LCAyMzgsIDE0NF0sXG4gICAgICBcImxpZ2h0Z3JleVwiOiBbMjExLCAyMTEsIDIxMV0sXG4gICAgICBcImxpZ2h0cGlua1wiOiBbMjU1LCAxODIsIDE5M10sXG4gICAgICBcImxpZ2h0c2FsbW9uXCI6IFsyNTUsIDE2MCwgMTIyXSxcbiAgICAgIFwibGlnaHRzZWFncmVlblwiOiBbMzIsIDE3OCwgMTcwXSxcbiAgICAgIFwibGlnaHRza3libHVlXCI6IFsxMzUsIDIwNiwgMjUwXSxcbiAgICAgIFwibGlnaHRzbGF0ZWdyYXlcIjogWzExOSwgMTM2LCAxNTNdLFxuICAgICAgXCJsaWdodHNsYXRlZ3JleVwiOiBbMTE5LCAxMzYsIDE1M10sXG4gICAgICBcImxpZ2h0c3RlZWxibHVlXCI6IFsxNzYsIDE5NiwgMjIyXSxcbiAgICAgIFwibGlnaHR5ZWxsb3dcIjogWzI1NSwgMjU1LCAyMjRdLFxuICAgICAgXCJsaW1lXCI6IFswLCAyNTUsIDBdLFxuICAgICAgXCJsaW1lZ3JlZW5cIjogWzUwLCAyMDUsIDUwXSxcbiAgICAgIFwibGluZW5cIjogWzI1MCwgMjQwLCAyMzBdLFxuICAgICAgXCJtYWdlbnRhXCI6IFsyNTUsIDAsIDI1NV0sXG4gICAgICBcIm1hcm9vblwiOiBbMTI4LCAwLCAwXSxcbiAgICAgIFwibWVkaXVtYXF1YW1hcmluZVwiOiBbMTAyLCAyMDUsIDE3MF0sXG4gICAgICBcIm1lZGl1bWJsdWVcIjogWzAsIDAsIDIwNV0sXG4gICAgICBcIm1lZGl1bW9yY2hpZFwiOiBbMTg2LCA4NSwgMjExXSxcbiAgICAgIFwibWVkaXVtcHVycGxlXCI6IFsxNDcsIDExMiwgMjE5XSxcbiAgICAgIFwibWVkaXVtc2VhZ3JlZW5cIjogWzYwLCAxNzksIDExM10sXG4gICAgICBcIm1lZGl1bXNsYXRlYmx1ZVwiOiBbMTIzLCAxMDQsIDIzOF0sXG4gICAgICBcIm1lZGl1bXNwcmluZ2dyZWVuXCI6IFswLCAyNTAsIDE1NF0sXG4gICAgICBcIm1lZGl1bXR1cnF1b2lzZVwiOiBbNzIsIDIwOSwgMjA0XSxcbiAgICAgIFwibWVkaXVtdmlvbGV0cmVkXCI6IFsxOTksIDIxLCAxMzNdLFxuICAgICAgXCJtaWRuaWdodGJsdWVcIjogWzI1LCAyNSwgMTEyXSxcbiAgICAgIFwibWludGNyZWFtXCI6IFsyNDUsIDI1NSwgMjUwXSxcbiAgICAgIFwibWlzdHlyb3NlXCI6IFsyNTUsIDIyOCwgMjI1XSxcbiAgICAgIFwibW9jY2FzaW5cIjogWzI1NSwgMjI4LCAxODFdLFxuICAgICAgXCJuYXZham93aGl0ZVwiOiBbMjU1LCAyMjIsIDE3M10sXG4gICAgICBcIm5hdnlcIjogWzAsIDAsIDEyOF0sXG4gICAgICBcIm9sZGxhY2VcIjogWzI1MywgMjQ1LCAyMzBdLFxuICAgICAgXCJvbGl2ZVwiOiBbMTI4LCAxMjgsIDBdLFxuICAgICAgXCJvbGl2ZWRyYWJcIjogWzEwNywgMTQyLCAzNV0sXG4gICAgICBcIm9yYW5nZVwiOiBbMjU1LCAxNjUsIDBdLFxuICAgICAgXCJvcmFuZ2VyZWRcIjogWzI1NSwgNjksIDBdLFxuICAgICAgXCJvcmNoaWRcIjogWzIxOCwgMTEyLCAyMTRdLFxuICAgICAgXCJwYWxlZ29sZGVucm9kXCI6IFsyMzgsIDIzMiwgMTcwXSxcbiAgICAgIFwicGFsZWdyZWVuXCI6IFsxNTIsIDI1MSwgMTUyXSxcbiAgICAgIFwicGFsZXR1cnF1b2lzZVwiOiBbMTc1LCAyMzgsIDIzOF0sXG4gICAgICBcInBhbGV2aW9sZXRyZWRcIjogWzIxOSwgMTEyLCAxNDddLFxuICAgICAgXCJwYXBheWF3aGlwXCI6IFsyNTUsIDIzOSwgMjEzXSxcbiAgICAgIFwicGVhY2hwdWZmXCI6IFsyNTUsIDIxOCwgMTg1XSxcbiAgICAgIFwicGVydVwiOiBbMjA1LCAxMzMsIDYzXSxcbiAgICAgIFwicGlua1wiOiBbMjU1LCAxOTIsIDIwM10sXG4gICAgICBcInBsdW1cIjogWzIyMSwgMTYwLCAyMjFdLFxuICAgICAgXCJwb3dkZXJibHVlXCI6IFsxNzYsIDIyNCwgMjMwXSxcbiAgICAgIFwicHVycGxlXCI6IFsxMjgsIDAsIDEyOF0sXG4gICAgICBcInJlYmVjY2FwdXJwbGVcIjogWzEwMiwgNTEsIDE1M10sXG4gICAgICBcInJlZFwiOiBbMjU1LCAwLCAwXSxcbiAgICAgIFwicm9zeWJyb3duXCI6IFsxODgsIDE0MywgMTQzXSxcbiAgICAgIFwicm95YWxibHVlXCI6IFs2NSwgMTA1LCAyMjVdLFxuICAgICAgXCJzYWRkbGVicm93blwiOiBbMTM5LCA2OSwgMTldLFxuICAgICAgXCJzYWxtb25cIjogWzI1MCwgMTI4LCAxMTRdLFxuICAgICAgXCJzYW5keWJyb3duXCI6IFsyNDQsIDE2NCwgOTZdLFxuICAgICAgXCJzZWFncmVlblwiOiBbNDYsIDEzOSwgODddLFxuICAgICAgXCJzZWFzaGVsbFwiOiBbMjU1LCAyNDUsIDIzOF0sXG4gICAgICBcInNpZW5uYVwiOiBbMTYwLCA4MiwgNDVdLFxuICAgICAgXCJzaWx2ZXJcIjogWzE5MiwgMTkyLCAxOTJdLFxuICAgICAgXCJza3libHVlXCI6IFsxMzUsIDIwNiwgMjM1XSxcbiAgICAgIFwic2xhdGVibHVlXCI6IFsxMDYsIDkwLCAyMDVdLFxuICAgICAgXCJzbGF0ZWdyYXlcIjogWzExMiwgMTI4LCAxNDRdLFxuICAgICAgXCJzbGF0ZWdyZXlcIjogWzExMiwgMTI4LCAxNDRdLFxuICAgICAgXCJzbm93XCI6IFsyNTUsIDI1MCwgMjUwXSxcbiAgICAgIFwic3ByaW5nZ3JlZW5cIjogWzAsIDI1NSwgMTI3XSxcbiAgICAgIFwic3RlZWxibHVlXCI6IFs3MCwgMTMwLCAxODBdLFxuICAgICAgXCJ0YW5cIjogWzIxMCwgMTgwLCAxNDBdLFxuICAgICAgXCJ0ZWFsXCI6IFswLCAxMjgsIDEyOF0sXG4gICAgICBcInRoaXN0bGVcIjogWzIxNiwgMTkxLCAyMTZdLFxuICAgICAgXCJ0b21hdG9cIjogWzI1NSwgOTksIDcxXSxcbiAgICAgIFwidHVycXVvaXNlXCI6IFs2NCwgMjI0LCAyMDhdLFxuICAgICAgXCJ2aW9sZXRcIjogWzIzOCwgMTMwLCAyMzhdLFxuICAgICAgXCJ3aGVhdFwiOiBbMjQ1LCAyMjIsIDE3OV0sXG4gICAgICBcIndoaXRlXCI6IFsyNTUsIDI1NSwgMjU1XSxcbiAgICAgIFwid2hpdGVzbW9rZVwiOiBbMjQ1LCAyNDUsIDI0NV0sXG4gICAgICBcInllbGxvd1wiOiBbMjU1LCAyNTUsIDBdLFxuICAgICAgXCJ5ZWxsb3dncmVlblwiOiBbMTU0LCAyMDUsIDUwXVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9jb252ZXJzaW9ucy5qc1xudmFyIHJlcXVpcmVfY29udmVyc2lvbnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9jb252ZXJzaW9ucy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciBjc3NLZXl3b3JkcyA9IHJlcXVpcmVfY29sb3JfbmFtZSgpO1xuICAgIHZhciByZXZlcnNlS2V5d29yZHMgPSB7fTtcbiAgICBmb3IgKGtleSBpbiBjc3NLZXl3b3Jkcykge1xuICAgICAgaWYgKGNzc0tleXdvcmRzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgcmV2ZXJzZUtleXdvcmRzW2Nzc0tleXdvcmRzW2tleV1dID0ga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIga2V5O1xuICAgIHZhciBjb252ZXJ0ID0gbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgICByZ2I6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJyZ2JcIiB9LFxuICAgICAgaHNsOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwiaHNsXCIgfSxcbiAgICAgIGhzdjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImhzdlwiIH0sXG4gICAgICBod2I6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJod2JcIiB9LFxuICAgICAgY215azogeyBjaGFubmVsczogNCwgbGFiZWxzOiBcImNteWtcIiB9LFxuICAgICAgeHl6OiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwieHl6XCIgfSxcbiAgICAgIGxhYjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImxhYlwiIH0sXG4gICAgICBsY2g6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJsY2hcIiB9LFxuICAgICAgaGV4OiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImhleFwiXSB9LFxuICAgICAga2V5d29yZDogeyBjaGFubmVsczogMSwgbGFiZWxzOiBbXCJrZXl3b3JkXCJdIH0sXG4gICAgICBhbnNpMTY6IHsgY2hhbm5lbHM6IDEsIGxhYmVsczogW1wiYW5zaTE2XCJdIH0sXG4gICAgICBhbnNpMjU2OiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImFuc2kyNTZcIl0gfSxcbiAgICAgIGhjZzogeyBjaGFubmVsczogMywgbGFiZWxzOiBbXCJoXCIsIFwiY1wiLCBcImdcIl0gfSxcbiAgICAgIGFwcGxlOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFtcInIxNlwiLCBcImcxNlwiLCBcImIxNlwiXSB9LFxuICAgICAgZ3JheTogeyBjaGFubmVsczogMSwgbGFiZWxzOiBbXCJncmF5XCJdIH1cbiAgICB9O1xuICAgIGZvciAobW9kZWwgaW4gY29udmVydCkge1xuICAgICAgaWYgKGNvbnZlcnQuaGFzT3duUHJvcGVydHkobW9kZWwpKSB7XG4gICAgICAgIGlmICghKFwiY2hhbm5lbHNcIiBpbiBjb252ZXJ0W21vZGVsXSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nIGNoYW5uZWxzIHByb3BlcnR5OiBcIiArIG1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShcImxhYmVsc1wiIGluIGNvbnZlcnRbbW9kZWxdKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm1pc3NpbmcgY2hhbm5lbCBsYWJlbHMgcHJvcGVydHk6IFwiICsgbW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb252ZXJ0W21vZGVsXS5sYWJlbHMubGVuZ3RoICE9PSBjb252ZXJ0W21vZGVsXS5jaGFubmVscykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImNoYW5uZWwgYW5kIGxhYmVsIGNvdW50cyBtaXNtYXRjaDogXCIgKyBtb2RlbCk7XG4gICAgICAgIH1cbiAgICAgICAgY2hhbm5lbHMgPSBjb252ZXJ0W21vZGVsXS5jaGFubmVscztcbiAgICAgICAgbGFiZWxzID0gY29udmVydFttb2RlbF0ubGFiZWxzO1xuICAgICAgICBkZWxldGUgY29udmVydFttb2RlbF0uY2hhbm5lbHM7XG4gICAgICAgIGRlbGV0ZSBjb252ZXJ0W21vZGVsXS5sYWJlbHM7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W21vZGVsXSwgXCJjaGFubmVsc1wiLCB7IHZhbHVlOiBjaGFubmVscyB9KTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbbW9kZWxdLCBcImxhYmVsc1wiLCB7IHZhbHVlOiBsYWJlbHMgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBjaGFubmVscztcbiAgICB2YXIgbGFiZWxzO1xuICAgIHZhciBtb2RlbDtcbiAgICBjb252ZXJ0LnJnYi5oc2wgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciByID0gcmdiWzBdIC8gMjU1O1xuICAgICAgdmFyIGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICB2YXIgYiA9IHJnYlsyXSAvIDI1NTtcbiAgICAgIHZhciBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgICAgIHZhciBkZWx0YSA9IG1heCAtIG1pbjtcbiAgICAgIHZhciBoO1xuICAgICAgdmFyIHM7XG4gICAgICB2YXIgbDtcbiAgICAgIGlmIChtYXggPT09IG1pbikge1xuICAgICAgICBoID0gMDtcbiAgICAgIH0gZWxzZSBpZiAociA9PT0gbWF4KSB7XG4gICAgICAgIGggPSAoZyAtIGIpIC8gZGVsdGE7XG4gICAgICB9IGVsc2UgaWYgKGcgPT09IG1heCkge1xuICAgICAgICBoID0gMiArIChiIC0gcikgLyBkZWx0YTtcbiAgICAgIH0gZWxzZSBpZiAoYiA9PT0gbWF4KSB7XG4gICAgICAgIGggPSA0ICsgKHIgLSBnKSAvIGRlbHRhO1xuICAgICAgfVxuICAgICAgaCA9IE1hdGgubWluKGggKiA2MCwgMzYwKTtcbiAgICAgIGlmIChoIDwgMCkge1xuICAgICAgICBoICs9IDM2MDtcbiAgICAgIH1cbiAgICAgIGwgPSAobWluICsgbWF4KSAvIDI7XG4gICAgICBpZiAobWF4ID09PSBtaW4pIHtcbiAgICAgICAgcyA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGwgPD0gMC41KSB7XG4gICAgICAgIHMgPSBkZWx0YSAvIChtYXggKyBtaW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IGRlbHRhIC8gKDIgLSBtYXggLSBtaW4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtoLCBzICogMTAwLCBsICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmhzdiA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHJkaWY7XG4gICAgICB2YXIgZ2RpZjtcbiAgICAgIHZhciBiZGlmO1xuICAgICAgdmFyIGg7XG4gICAgICB2YXIgcztcbiAgICAgIHZhciByID0gcmdiWzBdIC8gMjU1O1xuICAgICAgdmFyIGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICB2YXIgYiA9IHJnYlsyXSAvIDI1NTtcbiAgICAgIHZhciB2ID0gTWF0aC5tYXgociwgZywgYik7XG4gICAgICB2YXIgZGlmZiA9IHYgLSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgICAgIHZhciBkaWZmYyA9IGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgcmV0dXJuICh2IC0gYykgLyA2IC8gZGlmZiArIDEgLyAyO1xuICAgICAgfTtcbiAgICAgIGlmIChkaWZmID09PSAwKSB7XG4gICAgICAgIGggPSBzID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMgPSBkaWZmIC8gdjtcbiAgICAgICAgcmRpZiA9IGRpZmZjKHIpO1xuICAgICAgICBnZGlmID0gZGlmZmMoZyk7XG4gICAgICAgIGJkaWYgPSBkaWZmYyhiKTtcbiAgICAgICAgaWYgKHIgPT09IHYpIHtcbiAgICAgICAgICBoID0gYmRpZiAtIGdkaWY7XG4gICAgICAgIH0gZWxzZSBpZiAoZyA9PT0gdikge1xuICAgICAgICAgIGggPSAxIC8gMyArIHJkaWYgLSBiZGlmO1xuICAgICAgICB9IGVsc2UgaWYgKGIgPT09IHYpIHtcbiAgICAgICAgICBoID0gMiAvIDMgKyBnZGlmIC0gcmRpZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgICBoICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAoaCA+IDEpIHtcbiAgICAgICAgICBoIC09IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBbXG4gICAgICAgIGggKiAzNjAsXG4gICAgICAgIHMgKiAxMDAsXG4gICAgICAgIHYgKiAxMDBcbiAgICAgIF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5od2IgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciByID0gcmdiWzBdO1xuICAgICAgdmFyIGcgPSByZ2JbMV07XG4gICAgICB2YXIgYiA9IHJnYlsyXTtcbiAgICAgIHZhciBoID0gY29udmVydC5yZ2IuaHNsKHJnYilbMF07XG4gICAgICB2YXIgdyA9IDEgLyAyNTUgKiBNYXRoLm1pbihyLCBNYXRoLm1pbihnLCBiKSk7XG4gICAgICBiID0gMSAtIDEgLyAyNTUgKiBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7XG4gICAgICByZXR1cm4gW2gsIHcgKiAxMDAsIGIgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuY215ayA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICB2YXIgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIHZhciBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgdmFyIGM7XG4gICAgICB2YXIgbTtcbiAgICAgIHZhciB5O1xuICAgICAgdmFyIGs7XG4gICAgICBrID0gTWF0aC5taW4oMSAtIHIsIDEgLSBnLCAxIC0gYik7XG4gICAgICBjID0gKDEgLSByIC0gaykgLyAoMSAtIGspIHx8IDA7XG4gICAgICBtID0gKDEgLSBnIC0gaykgLyAoMSAtIGspIHx8IDA7XG4gICAgICB5ID0gKDEgLSBiIC0gaykgLyAoMSAtIGspIHx8IDA7XG4gICAgICByZXR1cm4gW2MgKiAxMDAsIG0gKiAxMDAsIHkgKiAxMDAsIGsgKiAxMDBdO1xuICAgIH07XG4gICAgZnVuY3Rpb24gY29tcGFyYXRpdmVEaXN0YW5jZSh4LCB5KSB7XG4gICAgICByZXR1cm4gTWF0aC5wb3coeFswXSAtIHlbMF0sIDIpICsgTWF0aC5wb3coeFsxXSAtIHlbMV0sIDIpICsgTWF0aC5wb3coeFsyXSAtIHlbMl0sIDIpO1xuICAgIH1cbiAgICBjb252ZXJ0LnJnYi5rZXl3b3JkID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICB2YXIgcmV2ZXJzZWQgPSByZXZlcnNlS2V5d29yZHNbcmdiXTtcbiAgICAgIGlmIChyZXZlcnNlZCkge1xuICAgICAgICByZXR1cm4gcmV2ZXJzZWQ7XG4gICAgICB9XG4gICAgICB2YXIgY3VycmVudENsb3Nlc3REaXN0YW5jZSA9IEluZmluaXR5O1xuICAgICAgdmFyIGN1cnJlbnRDbG9zZXN0S2V5d29yZDtcbiAgICAgIGZvciAodmFyIGtleXdvcmQgaW4gY3NzS2V5d29yZHMpIHtcbiAgICAgICAgaWYgKGNzc0tleXdvcmRzLmhhc093blByb3BlcnR5KGtleXdvcmQpKSB7XG4gICAgICAgICAgdmFyIHZhbHVlID0gY3NzS2V5d29yZHNba2V5d29yZF07XG4gICAgICAgICAgdmFyIGRpc3RhbmNlID0gY29tcGFyYXRpdmVEaXN0YW5jZShyZ2IsIHZhbHVlKTtcbiAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBjdXJyZW50Q2xvc2VzdERpc3RhbmNlKSB7XG4gICAgICAgICAgICBjdXJyZW50Q2xvc2VzdERpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgICAgICBjdXJyZW50Q2xvc2VzdEtleXdvcmQgPSBrZXl3b3JkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnRDbG9zZXN0S2V5d29yZDtcbiAgICB9O1xuICAgIGNvbnZlcnQua2V5d29yZC5yZ2IgPSBmdW5jdGlvbihrZXl3b3JkKSB7XG4gICAgICByZXR1cm4gY3NzS2V5d29yZHNba2V5d29yZF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi54eXogPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciByID0gcmdiWzBdIC8gMjU1O1xuICAgICAgdmFyIGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICB2YXIgYiA9IHJnYlsyXSAvIDI1NTtcbiAgICAgIHIgPSByID4gMC4wNDA0NSA/IE1hdGgucG93KChyICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkgOiByIC8gMTIuOTI7XG4gICAgICBnID0gZyA+IDAuMDQwNDUgPyBNYXRoLnBvdygoZyArIDAuMDU1KSAvIDEuMDU1LCAyLjQpIDogZyAvIDEyLjkyO1xuICAgICAgYiA9IGIgPiAwLjA0MDQ1ID8gTWF0aC5wb3coKGIgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSA6IGIgLyAxMi45MjtcbiAgICAgIHZhciB4ID0gciAqIDAuNDEyNCArIGcgKiAwLjM1NzYgKyBiICogMC4xODA1O1xuICAgICAgdmFyIHkgPSByICogMC4yMTI2ICsgZyAqIDAuNzE1MiArIGIgKiAwLjA3MjI7XG4gICAgICB2YXIgeiA9IHIgKiAwLjAxOTMgKyBnICogMC4xMTkyICsgYiAqIDAuOTUwNTtcbiAgICAgIHJldHVybiBbeCAqIDEwMCwgeSAqIDEwMCwgeiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5sYWIgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciB4eXogPSBjb252ZXJ0LnJnYi54eXoocmdiKTtcbiAgICAgIHZhciB4ID0geHl6WzBdO1xuICAgICAgdmFyIHkgPSB4eXpbMV07XG4gICAgICB2YXIgeiA9IHh5elsyXTtcbiAgICAgIHZhciBsO1xuICAgICAgdmFyIGE7XG4gICAgICB2YXIgYjtcbiAgICAgIHggLz0gOTUuMDQ3O1xuICAgICAgeSAvPSAxMDA7XG4gICAgICB6IC89IDEwOC44ODM7XG4gICAgICB4ID0geCA+IDg4NTZlLTYgPyBNYXRoLnBvdyh4LCAxIC8gMykgOiA3Ljc4NyAqIHggKyAxNiAvIDExNjtcbiAgICAgIHkgPSB5ID4gODg1NmUtNiA/IE1hdGgucG93KHksIDEgLyAzKSA6IDcuNzg3ICogeSArIDE2IC8gMTE2O1xuICAgICAgeiA9IHogPiA4ODU2ZS02ID8gTWF0aC5wb3coeiwgMSAvIDMpIDogNy43ODcgKiB6ICsgMTYgLyAxMTY7XG4gICAgICBsID0gMTE2ICogeSAtIDE2O1xuICAgICAgYSA9IDUwMCAqICh4IC0geSk7XG4gICAgICBiID0gMjAwICogKHkgLSB6KTtcbiAgICAgIHJldHVybiBbbCwgYSwgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhzbC5yZ2IgPSBmdW5jdGlvbihoc2wpIHtcbiAgICAgIHZhciBoID0gaHNsWzBdIC8gMzYwO1xuICAgICAgdmFyIHMgPSBoc2xbMV0gLyAxMDA7XG4gICAgICB2YXIgbCA9IGhzbFsyXSAvIDEwMDtcbiAgICAgIHZhciB0MTtcbiAgICAgIHZhciB0MjtcbiAgICAgIHZhciB0MztcbiAgICAgIHZhciByZ2I7XG4gICAgICB2YXIgdmFsO1xuICAgICAgaWYgKHMgPT09IDApIHtcbiAgICAgICAgdmFsID0gbCAqIDI1NTtcbiAgICAgICAgcmV0dXJuIFt2YWwsIHZhbCwgdmFsXTtcbiAgICAgIH1cbiAgICAgIGlmIChsIDwgMC41KSB7XG4gICAgICAgIHQyID0gbCAqICgxICsgcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0MiA9IGwgKyBzIC0gbCAqIHM7XG4gICAgICB9XG4gICAgICB0MSA9IDIgKiBsIC0gdDI7XG4gICAgICByZ2IgPSBbMCwgMCwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykge1xuICAgICAgICB0MyA9IGggKyAxIC8gMyAqIC0oaSAtIDEpO1xuICAgICAgICBpZiAodDMgPCAwKSB7XG4gICAgICAgICAgdDMrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAodDMgPiAxKSB7XG4gICAgICAgICAgdDMtLTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoNiAqIHQzIDwgMSkge1xuICAgICAgICAgIHZhbCA9IHQxICsgKHQyIC0gdDEpICogNiAqIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKDIgKiB0MyA8IDEpIHtcbiAgICAgICAgICB2YWwgPSB0MjtcbiAgICAgICAgfSBlbHNlIGlmICgzICogdDMgPCAyKSB7XG4gICAgICAgICAgdmFsID0gdDEgKyAodDIgLSB0MSkgKiAoMiAvIDMgLSB0MykgKiA2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbCA9IHQxO1xuICAgICAgICB9XG4gICAgICAgIHJnYltpXSA9IHZhbCAqIDI1NTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZ2I7XG4gICAgfTtcbiAgICBjb252ZXJ0LmhzbC5oc3YgPSBmdW5jdGlvbihoc2wpIHtcbiAgICAgIHZhciBoID0gaHNsWzBdO1xuICAgICAgdmFyIHMgPSBoc2xbMV0gLyAxMDA7XG4gICAgICB2YXIgbCA9IGhzbFsyXSAvIDEwMDtcbiAgICAgIHZhciBzbWluID0gcztcbiAgICAgIHZhciBsbWluID0gTWF0aC5tYXgobCwgMC4wMSk7XG4gICAgICB2YXIgc3Y7XG4gICAgICB2YXIgdjtcbiAgICAgIGwgKj0gMjtcbiAgICAgIHMgKj0gbCA8PSAxID8gbCA6IDIgLSBsO1xuICAgICAgc21pbiAqPSBsbWluIDw9IDEgPyBsbWluIDogMiAtIGxtaW47XG4gICAgICB2ID0gKGwgKyBzKSAvIDI7XG4gICAgICBzdiA9IGwgPT09IDAgPyAyICogc21pbiAvIChsbWluICsgc21pbikgOiAyICogcyAvIChsICsgcyk7XG4gICAgICByZXR1cm4gW2gsIHN2ICogMTAwLCB2ICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHN2LnJnYiA9IGZ1bmN0aW9uKGhzdikge1xuICAgICAgdmFyIGggPSBoc3ZbMF0gLyA2MDtcbiAgICAgIHZhciBzID0gaHN2WzFdIC8gMTAwO1xuICAgICAgdmFyIHYgPSBoc3ZbMl0gLyAxMDA7XG4gICAgICB2YXIgaGkgPSBNYXRoLmZsb29yKGgpICUgNjtcbiAgICAgIHZhciBmID0gaCAtIE1hdGguZmxvb3IoaCk7XG4gICAgICB2YXIgcCA9IDI1NSAqIHYgKiAoMSAtIHMpO1xuICAgICAgdmFyIHEgPSAyNTUgKiB2ICogKDEgLSBzICogZik7XG4gICAgICB2YXIgdCA9IDI1NSAqIHYgKiAoMSAtIHMgKiAoMSAtIGYpKTtcbiAgICAgIHYgKj0gMjU1O1xuICAgICAgc3dpdGNoIChoaSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgcmV0dXJuIFt2LCB0LCBwXTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiBbcSwgdiwgcF07XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXR1cm4gW3AsIHYsIHRdO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmV0dXJuIFtwLCBxLCB2XTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiBbdCwgcCwgdl07XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gW3YsIHAsIHFdO1xuICAgICAgfVxuICAgIH07XG4gICAgY29udmVydC5oc3YuaHNsID0gZnVuY3Rpb24oaHN2KSB7XG4gICAgICB2YXIgaCA9IGhzdlswXTtcbiAgICAgIHZhciBzID0gaHN2WzFdIC8gMTAwO1xuICAgICAgdmFyIHYgPSBoc3ZbMl0gLyAxMDA7XG4gICAgICB2YXIgdm1pbiA9IE1hdGgubWF4KHYsIDAuMDEpO1xuICAgICAgdmFyIGxtaW47XG4gICAgICB2YXIgc2w7XG4gICAgICB2YXIgbDtcbiAgICAgIGwgPSAoMiAtIHMpICogdjtcbiAgICAgIGxtaW4gPSAoMiAtIHMpICogdm1pbjtcbiAgICAgIHNsID0gcyAqIHZtaW47XG4gICAgICBzbCAvPSBsbWluIDw9IDEgPyBsbWluIDogMiAtIGxtaW47XG4gICAgICBzbCA9IHNsIHx8IDA7XG4gICAgICBsIC89IDI7XG4gICAgICByZXR1cm4gW2gsIHNsICogMTAwLCBsICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHdiLnJnYiA9IGZ1bmN0aW9uKGh3Yikge1xuICAgICAgdmFyIGggPSBod2JbMF0gLyAzNjA7XG4gICAgICB2YXIgd2ggPSBod2JbMV0gLyAxMDA7XG4gICAgICB2YXIgYmwgPSBod2JbMl0gLyAxMDA7XG4gICAgICB2YXIgcmF0aW8gPSB3aCArIGJsO1xuICAgICAgdmFyIGk7XG4gICAgICB2YXIgdjtcbiAgICAgIHZhciBmO1xuICAgICAgdmFyIG47XG4gICAgICBpZiAocmF0aW8gPiAxKSB7XG4gICAgICAgIHdoIC89IHJhdGlvO1xuICAgICAgICBibCAvPSByYXRpbztcbiAgICAgIH1cbiAgICAgIGkgPSBNYXRoLmZsb29yKDYgKiBoKTtcbiAgICAgIHYgPSAxIC0gYmw7XG4gICAgICBmID0gNiAqIGggLSBpO1xuICAgICAgaWYgKChpICYgMSkgIT09IDApIHtcbiAgICAgICAgZiA9IDEgLSBmO1xuICAgICAgfVxuICAgICAgbiA9IHdoICsgZiAqICh2IC0gd2gpO1xuICAgICAgdmFyIHI7XG4gICAgICB2YXIgZztcbiAgICAgIHZhciBiO1xuICAgICAgc3dpdGNoIChpKSB7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIHIgPSB2O1xuICAgICAgICAgIGcgPSBuO1xuICAgICAgICAgIGIgPSB3aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHIgPSBuO1xuICAgICAgICAgIGcgPSB2O1xuICAgICAgICAgIGIgPSB3aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHIgPSB3aDtcbiAgICAgICAgICBnID0gdjtcbiAgICAgICAgICBiID0gbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHIgPSB3aDtcbiAgICAgICAgICBnID0gbjtcbiAgICAgICAgICBiID0gdjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHIgPSBuO1xuICAgICAgICAgIGcgPSB3aDtcbiAgICAgICAgICBiID0gdjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHIgPSB2O1xuICAgICAgICAgIGcgPSB3aDtcbiAgICAgICAgICBiID0gbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG4gICAgfTtcbiAgICBjb252ZXJ0LmNteWsucmdiID0gZnVuY3Rpb24oY215aykge1xuICAgICAgdmFyIGMgPSBjbXlrWzBdIC8gMTAwO1xuICAgICAgdmFyIG0gPSBjbXlrWzFdIC8gMTAwO1xuICAgICAgdmFyIHkgPSBjbXlrWzJdIC8gMTAwO1xuICAgICAgdmFyIGsgPSBjbXlrWzNdIC8gMTAwO1xuICAgICAgdmFyIHI7XG4gICAgICB2YXIgZztcbiAgICAgIHZhciBiO1xuICAgICAgciA9IDEgLSBNYXRoLm1pbigxLCBjICogKDEgLSBrKSArIGspO1xuICAgICAgZyA9IDEgLSBNYXRoLm1pbigxLCBtICogKDEgLSBrKSArIGspO1xuICAgICAgYiA9IDEgLSBNYXRoLm1pbigxLCB5ICogKDEgLSBrKSArIGspO1xuICAgICAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQueHl6LnJnYiA9IGZ1bmN0aW9uKHh5eikge1xuICAgICAgdmFyIHggPSB4eXpbMF0gLyAxMDA7XG4gICAgICB2YXIgeSA9IHh5elsxXSAvIDEwMDtcbiAgICAgIHZhciB6ID0geHl6WzJdIC8gMTAwO1xuICAgICAgdmFyIHI7XG4gICAgICB2YXIgZztcbiAgICAgIHZhciBiO1xuICAgICAgciA9IHggKiAzLjI0MDYgKyB5ICogLTEuNTM3MiArIHogKiAtMC40OTg2O1xuICAgICAgZyA9IHggKiAtMC45Njg5ICsgeSAqIDEuODc1OCArIHogKiAwLjA0MTU7XG4gICAgICBiID0geCAqIDAuMDU1NyArIHkgKiAtMC4yMDQgKyB6ICogMS4wNTc7XG4gICAgICByID0gciA+IDMxMzA4ZS03ID8gMS4wNTUgKiBNYXRoLnBvdyhyLCAxIC8gMi40KSAtIDAuMDU1IDogciAqIDEyLjkyO1xuICAgICAgZyA9IGcgPiAzMTMwOGUtNyA/IDEuMDU1ICogTWF0aC5wb3coZywgMSAvIDIuNCkgLSAwLjA1NSA6IGcgKiAxMi45MjtcbiAgICAgIGIgPSBiID4gMzEzMDhlLTcgPyAxLjA1NSAqIE1hdGgucG93KGIsIDEgLyAyLjQpIC0gMC4wNTUgOiBiICogMTIuOTI7XG4gICAgICByID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgciksIDEpO1xuICAgICAgZyA9IE1hdGgubWluKE1hdGgubWF4KDAsIGcpLCAxKTtcbiAgICAgIGIgPSBNYXRoLm1pbihNYXRoLm1heCgwLCBiKSwgMSk7XG4gICAgICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC54eXoubGFiID0gZnVuY3Rpb24oeHl6KSB7XG4gICAgICB2YXIgeCA9IHh5elswXTtcbiAgICAgIHZhciB5ID0geHl6WzFdO1xuICAgICAgdmFyIHogPSB4eXpbMl07XG4gICAgICB2YXIgbDtcbiAgICAgIHZhciBhO1xuICAgICAgdmFyIGI7XG4gICAgICB4IC89IDk1LjA0NztcbiAgICAgIHkgLz0gMTAwO1xuICAgICAgeiAvPSAxMDguODgzO1xuICAgICAgeCA9IHggPiA4ODU2ZS02ID8gTWF0aC5wb3coeCwgMSAvIDMpIDogNy43ODcgKiB4ICsgMTYgLyAxMTY7XG4gICAgICB5ID0geSA+IDg4NTZlLTYgPyBNYXRoLnBvdyh5LCAxIC8gMykgOiA3Ljc4NyAqIHkgKyAxNiAvIDExNjtcbiAgICAgIHogPSB6ID4gODg1NmUtNiA/IE1hdGgucG93KHosIDEgLyAzKSA6IDcuNzg3ICogeiArIDE2IC8gMTE2O1xuICAgICAgbCA9IDExNiAqIHkgLSAxNjtcbiAgICAgIGEgPSA1MDAgKiAoeCAtIHkpO1xuICAgICAgYiA9IDIwMCAqICh5IC0geik7XG4gICAgICByZXR1cm4gW2wsIGEsIGJdO1xuICAgIH07XG4gICAgY29udmVydC5sYWIueHl6ID0gZnVuY3Rpb24obGFiKSB7XG4gICAgICB2YXIgbCA9IGxhYlswXTtcbiAgICAgIHZhciBhID0gbGFiWzFdO1xuICAgICAgdmFyIGIgPSBsYWJbMl07XG4gICAgICB2YXIgeDtcbiAgICAgIHZhciB5O1xuICAgICAgdmFyIHo7XG4gICAgICB5ID0gKGwgKyAxNikgLyAxMTY7XG4gICAgICB4ID0gYSAvIDUwMCArIHk7XG4gICAgICB6ID0geSAtIGIgLyAyMDA7XG4gICAgICB2YXIgeTIgPSBNYXRoLnBvdyh5LCAzKTtcbiAgICAgIHZhciB4MiA9IE1hdGgucG93KHgsIDMpO1xuICAgICAgdmFyIHoyID0gTWF0aC5wb3coeiwgMyk7XG4gICAgICB5ID0geTIgPiA4ODU2ZS02ID8geTIgOiAoeSAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuICAgICAgeCA9IHgyID4gODg1NmUtNiA/IHgyIDogKHggLSAxNiAvIDExNikgLyA3Ljc4NztcbiAgICAgIHogPSB6MiA+IDg4NTZlLTYgPyB6MiA6ICh6IC0gMTYgLyAxMTYpIC8gNy43ODc7XG4gICAgICB4ICo9IDk1LjA0NztcbiAgICAgIHkgKj0gMTAwO1xuICAgICAgeiAqPSAxMDguODgzO1xuICAgICAgcmV0dXJuIFt4LCB5LCB6XTtcbiAgICB9O1xuICAgIGNvbnZlcnQubGFiLmxjaCA9IGZ1bmN0aW9uKGxhYikge1xuICAgICAgdmFyIGwgPSBsYWJbMF07XG4gICAgICB2YXIgYSA9IGxhYlsxXTtcbiAgICAgIHZhciBiID0gbGFiWzJdO1xuICAgICAgdmFyIGhyO1xuICAgICAgdmFyIGg7XG4gICAgICB2YXIgYztcbiAgICAgIGhyID0gTWF0aC5hdGFuMihiLCBhKTtcbiAgICAgIGggPSBociAqIDM2MCAvIDIgLyBNYXRoLlBJO1xuICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgIGggKz0gMzYwO1xuICAgICAgfVxuICAgICAgYyA9IE1hdGguc3FydChhICogYSArIGIgKiBiKTtcbiAgICAgIHJldHVybiBbbCwgYywgaF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmxjaC5sYWIgPSBmdW5jdGlvbihsY2gpIHtcbiAgICAgIHZhciBsID0gbGNoWzBdO1xuICAgICAgdmFyIGMgPSBsY2hbMV07XG4gICAgICB2YXIgaCA9IGxjaFsyXTtcbiAgICAgIHZhciBhO1xuICAgICAgdmFyIGI7XG4gICAgICB2YXIgaHI7XG4gICAgICBociA9IGggLyAzNjAgKiAyICogTWF0aC5QSTtcbiAgICAgIGEgPSBjICogTWF0aC5jb3MoaHIpO1xuICAgICAgYiA9IGMgKiBNYXRoLnNpbihocik7XG4gICAgICByZXR1cm4gW2wsIGEsIGJdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuYW5zaTE2ID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgdmFyIHIgPSBhcmdzWzBdO1xuICAgICAgdmFyIGcgPSBhcmdzWzFdO1xuICAgICAgdmFyIGIgPSBhcmdzWzJdO1xuICAgICAgdmFyIHZhbHVlID0gMSBpbiBhcmd1bWVudHMgPyBhcmd1bWVudHNbMV0gOiBjb252ZXJ0LnJnYi5oc3YoYXJncylbMl07XG4gICAgICB2YWx1ZSA9IE1hdGgucm91bmQodmFsdWUgLyA1MCk7XG4gICAgICBpZiAodmFsdWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDMwO1xuICAgICAgfVxuICAgICAgdmFyIGFuc2kgPSAzMCArIChNYXRoLnJvdW5kKGIgLyAyNTUpIDw8IDIgfCBNYXRoLnJvdW5kKGcgLyAyNTUpIDw8IDEgfCBNYXRoLnJvdW5kKHIgLyAyNTUpKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gMikge1xuICAgICAgICBhbnNpICs9IDYwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFuc2k7XG4gICAgfTtcbiAgICBjb252ZXJ0Lmhzdi5hbnNpMTYgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICByZXR1cm4gY29udmVydC5yZ2IuYW5zaTE2KGNvbnZlcnQuaHN2LnJnYihhcmdzKSwgYXJnc1syXSk7XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5hbnNpMjU2ID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgdmFyIHIgPSBhcmdzWzBdO1xuICAgICAgdmFyIGcgPSBhcmdzWzFdO1xuICAgICAgdmFyIGIgPSBhcmdzWzJdO1xuICAgICAgaWYgKHIgPT09IGcgJiYgZyA9PT0gYikge1xuICAgICAgICBpZiAociA8IDgpIHtcbiAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHIgPiAyNDgpIHtcbiAgICAgICAgICByZXR1cm4gMjMxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKChyIC0gOCkgLyAyNDcgKiAyNCkgKyAyMzI7XG4gICAgICB9XG4gICAgICB2YXIgYW5zaSA9IDE2ICsgMzYgKiBNYXRoLnJvdW5kKHIgLyAyNTUgKiA1KSArIDYgKiBNYXRoLnJvdW5kKGcgLyAyNTUgKiA1KSArIE1hdGgucm91bmQoYiAvIDI1NSAqIDUpO1xuICAgICAgcmV0dXJuIGFuc2k7XG4gICAgfTtcbiAgICBjb252ZXJ0LmFuc2kxNi5yZ2IgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgY29sb3IgPSBhcmdzICUgMTA7XG4gICAgICBpZiAoY29sb3IgPT09IDAgfHwgY29sb3IgPT09IDcpIHtcbiAgICAgICAgaWYgKGFyZ3MgPiA1MCkge1xuICAgICAgICAgIGNvbG9yICs9IDMuNTtcbiAgICAgICAgfVxuICAgICAgICBjb2xvciA9IGNvbG9yIC8gMTAuNSAqIDI1NTtcbiAgICAgICAgcmV0dXJuIFtjb2xvciwgY29sb3IsIGNvbG9yXTtcbiAgICAgIH1cbiAgICAgIHZhciBtdWx0ID0gKH5+KGFyZ3MgPiA1MCkgKyAxKSAqIDAuNTtcbiAgICAgIHZhciByID0gKGNvbG9yICYgMSkgKiBtdWx0ICogMjU1O1xuICAgICAgdmFyIGcgPSAoY29sb3IgPj4gMSAmIDEpICogbXVsdCAqIDI1NTtcbiAgICAgIHZhciBiID0gKGNvbG9yID4+IDIgJiAxKSAqIG11bHQgKiAyNTU7XG4gICAgICByZXR1cm4gW3IsIGcsIGJdO1xuICAgIH07XG4gICAgY29udmVydC5hbnNpMjU2LnJnYiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIGlmIChhcmdzID49IDIzMikge1xuICAgICAgICB2YXIgYyA9IChhcmdzIC0gMjMyKSAqIDEwICsgODtcbiAgICAgICAgcmV0dXJuIFtjLCBjLCBjXTtcbiAgICAgIH1cbiAgICAgIGFyZ3MgLT0gMTY7XG4gICAgICB2YXIgcmVtO1xuICAgICAgdmFyIHIgPSBNYXRoLmZsb29yKGFyZ3MgLyAzNikgLyA1ICogMjU1O1xuICAgICAgdmFyIGcgPSBNYXRoLmZsb29yKChyZW0gPSBhcmdzICUgMzYpIC8gNikgLyA1ICogMjU1O1xuICAgICAgdmFyIGIgPSByZW0gJSA2IC8gNSAqIDI1NTtcbiAgICAgIHJldHVybiBbciwgZywgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5oZXggPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgaW50ZWdlciA9ICgoTWF0aC5yb3VuZChhcmdzWzBdKSAmIDI1NSkgPDwgMTYpICsgKChNYXRoLnJvdW5kKGFyZ3NbMV0pICYgMjU1KSA8PCA4KSArIChNYXRoLnJvdW5kKGFyZ3NbMl0pICYgMjU1KTtcbiAgICAgIHZhciBzdHJpbmcgPSBpbnRlZ2VyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgICAgcmV0dXJuIFwiMDAwMDAwXCIuc3Vic3RyaW5nKHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xuICAgIH07XG4gICAgY29udmVydC5oZXgucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgdmFyIG1hdGNoID0gYXJncy50b1N0cmluZygxNikubWF0Y2goL1thLWYwLTldezZ9fFthLWYwLTldezN9L2kpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICByZXR1cm4gWzAsIDAsIDBdO1xuICAgICAgfVxuICAgICAgdmFyIGNvbG9yU3RyaW5nID0gbWF0Y2hbMF07XG4gICAgICBpZiAobWF0Y2hbMF0ubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIGNvbG9yU3RyaW5nID0gY29sb3JTdHJpbmcuc3BsaXQoXCJcIikubWFwKGZ1bmN0aW9uKGNoYXIpIHtcbiAgICAgICAgICByZXR1cm4gY2hhciArIGNoYXI7XG4gICAgICAgIH0pLmpvaW4oXCJcIik7XG4gICAgICB9XG4gICAgICB2YXIgaW50ZWdlciA9IHBhcnNlSW50KGNvbG9yU3RyaW5nLCAxNik7XG4gICAgICB2YXIgciA9IGludGVnZXIgPj4gMTYgJiAyNTU7XG4gICAgICB2YXIgZyA9IGludGVnZXIgPj4gOCAmIDI1NTtcbiAgICAgIHZhciBiID0gaW50ZWdlciAmIDI1NTtcbiAgICAgIHJldHVybiBbciwgZywgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5oY2cgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciByID0gcmdiWzBdIC8gMjU1O1xuICAgICAgdmFyIGcgPSByZ2JbMV0gLyAyNTU7XG4gICAgICB2YXIgYiA9IHJnYlsyXSAvIDI1NTtcbiAgICAgIHZhciBtYXggPSBNYXRoLm1heChNYXRoLm1heChyLCBnKSwgYik7XG4gICAgICB2YXIgbWluID0gTWF0aC5taW4oTWF0aC5taW4ociwgZyksIGIpO1xuICAgICAgdmFyIGNocm9tYSA9IG1heCAtIG1pbjtcbiAgICAgIHZhciBncmF5c2NhbGU7XG4gICAgICB2YXIgaHVlO1xuICAgICAgaWYgKGNocm9tYSA8IDEpIHtcbiAgICAgICAgZ3JheXNjYWxlID0gbWluIC8gKDEgLSBjaHJvbWEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ3JheXNjYWxlID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChjaHJvbWEgPD0gMCkge1xuICAgICAgICBodWUgPSAwO1xuICAgICAgfSBlbHNlIGlmIChtYXggPT09IHIpIHtcbiAgICAgICAgaHVlID0gKGcgLSBiKSAvIGNocm9tYSAlIDY7XG4gICAgICB9IGVsc2UgaWYgKG1heCA9PT0gZykge1xuICAgICAgICBodWUgPSAyICsgKGIgLSByKSAvIGNocm9tYTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGh1ZSA9IDQgKyAociAtIGcpIC8gY2hyb21hICsgNDtcbiAgICAgIH1cbiAgICAgIGh1ZSAvPSA2O1xuICAgICAgaHVlICU9IDE7XG4gICAgICByZXR1cm4gW2h1ZSAqIDM2MCwgY2hyb21hICogMTAwLCBncmF5c2NhbGUgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5oc2wuaGNnID0gZnVuY3Rpb24oaHNsKSB7XG4gICAgICB2YXIgcyA9IGhzbFsxXSAvIDEwMDtcbiAgICAgIHZhciBsID0gaHNsWzJdIC8gMTAwO1xuICAgICAgdmFyIGMgPSAxO1xuICAgICAgdmFyIGYgPSAwO1xuICAgICAgaWYgKGwgPCAwLjUpIHtcbiAgICAgICAgYyA9IDIgKiBzICogbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGMgPSAyICogcyAqICgxIC0gbCk7XG4gICAgICB9XG4gICAgICBpZiAoYyA8IDEpIHtcbiAgICAgICAgZiA9IChsIC0gMC41ICogYykgLyAoMSAtIGMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtoc2xbMF0sIGMgKiAxMDAsIGYgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5oc3YuaGNnID0gZnVuY3Rpb24oaHN2KSB7XG4gICAgICB2YXIgcyA9IGhzdlsxXSAvIDEwMDtcbiAgICAgIHZhciB2ID0gaHN2WzJdIC8gMTAwO1xuICAgICAgdmFyIGMgPSBzICogdjtcbiAgICAgIHZhciBmID0gMDtcbiAgICAgIGlmIChjIDwgMSkge1xuICAgICAgICBmID0gKHYgLSBjKSAvICgxIC0gYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2hzdlswXSwgYyAqIDEwMCwgZiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhjZy5yZ2IgPSBmdW5jdGlvbihoY2cpIHtcbiAgICAgIHZhciBoID0gaGNnWzBdIC8gMzYwO1xuICAgICAgdmFyIGMgPSBoY2dbMV0gLyAxMDA7XG4gICAgICB2YXIgZyA9IGhjZ1syXSAvIDEwMDtcbiAgICAgIGlmIChjID09PSAwKSB7XG4gICAgICAgIHJldHVybiBbZyAqIDI1NSwgZyAqIDI1NSwgZyAqIDI1NV07XG4gICAgICB9XG4gICAgICB2YXIgcHVyZSA9IFswLCAwLCAwXTtcbiAgICAgIHZhciBoaSA9IGggJSAxICogNjtcbiAgICAgIHZhciB2ID0gaGkgJSAxO1xuICAgICAgdmFyIHcgPSAxIC0gdjtcbiAgICAgIHZhciBtZyA9IDA7XG4gICAgICBzd2l0Y2ggKE1hdGguZmxvb3IoaGkpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBwdXJlWzBdID0gMTtcbiAgICAgICAgICBwdXJlWzFdID0gdjtcbiAgICAgICAgICBwdXJlWzJdID0gMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHB1cmVbMF0gPSB3O1xuICAgICAgICAgIHB1cmVbMV0gPSAxO1xuICAgICAgICAgIHB1cmVbMl0gPSAwO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgcHVyZVswXSA9IDA7XG4gICAgICAgICAgcHVyZVsxXSA9IDE7XG4gICAgICAgICAgcHVyZVsyXSA9IHY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBwdXJlWzBdID0gMDtcbiAgICAgICAgICBwdXJlWzFdID0gdztcbiAgICAgICAgICBwdXJlWzJdID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHB1cmVbMF0gPSB2O1xuICAgICAgICAgIHB1cmVbMV0gPSAwO1xuICAgICAgICAgIHB1cmVbMl0gPSAxO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHB1cmVbMF0gPSAxO1xuICAgICAgICAgIHB1cmVbMV0gPSAwO1xuICAgICAgICAgIHB1cmVbMl0gPSB3O1xuICAgICAgfVxuICAgICAgbWcgPSAoMSAtIGMpICogZztcbiAgICAgIHJldHVybiBbXG4gICAgICAgIChjICogcHVyZVswXSArIG1nKSAqIDI1NSxcbiAgICAgICAgKGMgKiBwdXJlWzFdICsgbWcpICogMjU1LFxuICAgICAgICAoYyAqIHB1cmVbMl0gKyBtZykgKiAyNTVcbiAgICAgIF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhjZy5oc3YgPSBmdW5jdGlvbihoY2cpIHtcbiAgICAgIHZhciBjID0gaGNnWzFdIC8gMTAwO1xuICAgICAgdmFyIGcgPSBoY2dbMl0gLyAxMDA7XG4gICAgICB2YXIgdiA9IGMgKyBnICogKDEgLSBjKTtcbiAgICAgIHZhciBmID0gMDtcbiAgICAgIGlmICh2ID4gMCkge1xuICAgICAgICBmID0gYyAvIHY7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2hjZ1swXSwgZiAqIDEwMCwgdiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhjZy5oc2wgPSBmdW5jdGlvbihoY2cpIHtcbiAgICAgIHZhciBjID0gaGNnWzFdIC8gMTAwO1xuICAgICAgdmFyIGcgPSBoY2dbMl0gLyAxMDA7XG4gICAgICB2YXIgbCA9IGcgKiAoMSAtIGMpICsgMC41ICogYztcbiAgICAgIHZhciBzID0gMDtcbiAgICAgIGlmIChsID4gMCAmJiBsIDwgMC41KSB7XG4gICAgICAgIHMgPSBjIC8gKDIgKiBsKTtcbiAgICAgIH0gZWxzZSBpZiAobCA+PSAwLjUgJiYgbCA8IDEpIHtcbiAgICAgICAgcyA9IGMgLyAoMiAqICgxIC0gbCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtoY2dbMF0sIHMgKiAxMDAsIGwgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5oY2cuaHdiID0gZnVuY3Rpb24oaGNnKSB7XG4gICAgICB2YXIgYyA9IGhjZ1sxXSAvIDEwMDtcbiAgICAgIHZhciBnID0gaGNnWzJdIC8gMTAwO1xuICAgICAgdmFyIHYgPSBjICsgZyAqICgxIC0gYyk7XG4gICAgICByZXR1cm4gW2hjZ1swXSwgKHYgLSBjKSAqIDEwMCwgKDEgLSB2KSAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0Lmh3Yi5oY2cgPSBmdW5jdGlvbihod2IpIHtcbiAgICAgIHZhciB3ID0gaHdiWzFdIC8gMTAwO1xuICAgICAgdmFyIGIgPSBod2JbMl0gLyAxMDA7XG4gICAgICB2YXIgdiA9IDEgLSBiO1xuICAgICAgdmFyIGMgPSB2IC0gdztcbiAgICAgIHZhciBnID0gMDtcbiAgICAgIGlmIChjIDwgMSkge1xuICAgICAgICBnID0gKHYgLSBjKSAvICgxIC0gYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2h3YlswXSwgYyAqIDEwMCwgZyAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmFwcGxlLnJnYiA9IGZ1bmN0aW9uKGFwcGxlKSB7XG4gICAgICByZXR1cm4gW2FwcGxlWzBdIC8gNjU1MzUgKiAyNTUsIGFwcGxlWzFdIC8gNjU1MzUgKiAyNTUsIGFwcGxlWzJdIC8gNjU1MzUgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuYXBwbGUgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHJldHVybiBbcmdiWzBdIC8gMjU1ICogNjU1MzUsIHJnYlsxXSAvIDI1NSAqIDY1NTM1LCByZ2JbMl0gLyAyNTUgKiA2NTUzNV07XG4gICAgfTtcbiAgICBjb252ZXJ0LmdyYXkucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgcmV0dXJuIFthcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1LCBhcmdzWzBdIC8gMTAwICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5oc2wgPSBjb252ZXJ0LmdyYXkuaHN2ID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgcmV0dXJuIFswLCAwLCBhcmdzWzBdXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5od2IgPSBmdW5jdGlvbihncmF5KSB7XG4gICAgICByZXR1cm4gWzAsIDEwMCwgZ3JheVswXV07XG4gICAgfTtcbiAgICBjb252ZXJ0LmdyYXkuY215ayA9IGZ1bmN0aW9uKGdyYXkpIHtcbiAgICAgIHJldHVybiBbMCwgMCwgMCwgZ3JheVswXV07XG4gICAgfTtcbiAgICBjb252ZXJ0LmdyYXkubGFiID0gZnVuY3Rpb24oZ3JheSkge1xuICAgICAgcmV0dXJuIFtncmF5WzBdLCAwLCAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5oZXggPSBmdW5jdGlvbihncmF5KSB7XG4gICAgICB2YXIgdmFsID0gTWF0aC5yb3VuZChncmF5WzBdIC8gMTAwICogMjU1KSAmIDI1NTtcbiAgICAgIHZhciBpbnRlZ2VyID0gKHZhbCA8PCAxNikgKyAodmFsIDw8IDgpICsgdmFsO1xuICAgICAgdmFyIHN0cmluZyA9IGludGVnZXIudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gICAgICByZXR1cm4gXCIwMDAwMDBcIi5zdWJzdHJpbmcoc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5ncmF5ID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICB2YXIgdmFsID0gKHJnYlswXSArIHJnYlsxXSArIHJnYlsyXSkgLyAzO1xuICAgICAgcmV0dXJuIFt2YWwgLyAyNTUgKiAxMDBdO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9yb3V0ZS5qc1xudmFyIHJlcXVpcmVfcm91dGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9yb3V0ZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciBjb252ZXJzaW9ucyA9IHJlcXVpcmVfY29udmVyc2lvbnMoKTtcbiAgICBmdW5jdGlvbiBidWlsZEdyYXBoKCkge1xuICAgICAgdmFyIGdyYXBoID0ge307XG4gICAgICB2YXIgbW9kZWxzID0gT2JqZWN0LmtleXMoY29udmVyc2lvbnMpO1xuICAgICAgZm9yICh2YXIgbGVuID0gbW9kZWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBncmFwaFttb2RlbHNbaV1dID0ge1xuICAgICAgICAgIC8vIGh0dHA6Ly9qc3BlcmYuY29tLzEtdnMtaW5maW5pdHlcbiAgICAgICAgICAvLyBtaWNyby1vcHQsIGJ1dCB0aGlzIGlzIHNpbXBsZS5cbiAgICAgICAgICBkaXN0YW5jZTogLTEsXG4gICAgICAgICAgcGFyZW50OiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlcml2ZUJGUyhmcm9tTW9kZWwpIHtcbiAgICAgIHZhciBncmFwaCA9IGJ1aWxkR3JhcGgoKTtcbiAgICAgIHZhciBxdWV1ZSA9IFtmcm9tTW9kZWxdO1xuICAgICAgZ3JhcGhbZnJvbU1vZGVsXS5kaXN0YW5jZSA9IDA7XG4gICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcXVldWUucG9wKCk7XG4gICAgICAgIHZhciBhZGphY2VudHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9uc1tjdXJyZW50XSk7XG4gICAgICAgIGZvciAodmFyIGxlbiA9IGFkamFjZW50cy5sZW5ndGgsIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICB2YXIgYWRqYWNlbnQgPSBhZGphY2VudHNbaV07XG4gICAgICAgICAgdmFyIG5vZGUgPSBncmFwaFthZGphY2VudF07XG4gICAgICAgICAgaWYgKG5vZGUuZGlzdGFuY2UgPT09IC0xKSB7XG4gICAgICAgICAgICBub2RlLmRpc3RhbmNlID0gZ3JhcGhbY3VycmVudF0uZGlzdGFuY2UgKyAxO1xuICAgICAgICAgICAgbm9kZS5wYXJlbnQgPSBjdXJyZW50O1xuICAgICAgICAgICAgcXVldWUudW5zaGlmdChhZGphY2VudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZ3JhcGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpbmsoZnJvbSwgdG8pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgIHJldHVybiB0byhmcm9tKGFyZ3MpKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyYXBDb252ZXJzaW9uKHRvTW9kZWwsIGdyYXBoKSB7XG4gICAgICB2YXIgcGF0aDkgPSBbZ3JhcGhbdG9Nb2RlbF0ucGFyZW50LCB0b01vZGVsXTtcbiAgICAgIHZhciBmbiA9IGNvbnZlcnNpb25zW2dyYXBoW3RvTW9kZWxdLnBhcmVudF1bdG9Nb2RlbF07XG4gICAgICB2YXIgY3VyID0gZ3JhcGhbdG9Nb2RlbF0ucGFyZW50O1xuICAgICAgd2hpbGUgKGdyYXBoW2N1cl0ucGFyZW50KSB7XG4gICAgICAgIHBhdGg5LnVuc2hpZnQoZ3JhcGhbY3VyXS5wYXJlbnQpO1xuICAgICAgICBmbiA9IGxpbmsoY29udmVyc2lvbnNbZ3JhcGhbY3VyXS5wYXJlbnRdW2N1cl0sIGZuKTtcbiAgICAgICAgY3VyID0gZ3JhcGhbY3VyXS5wYXJlbnQ7XG4gICAgICB9XG4gICAgICBmbi5jb252ZXJzaW9uID0gcGF0aDk7XG4gICAgICByZXR1cm4gZm47XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZnJvbU1vZGVsKSB7XG4gICAgICB2YXIgZ3JhcGggPSBkZXJpdmVCRlMoZnJvbU1vZGVsKTtcbiAgICAgIHZhciBjb252ZXJzaW9uID0ge307XG4gICAgICB2YXIgbW9kZWxzID0gT2JqZWN0LmtleXMoZ3JhcGgpO1xuICAgICAgZm9yICh2YXIgbGVuID0gbW9kZWxzLmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2YXIgdG9Nb2RlbCA9IG1vZGVsc1tpXTtcbiAgICAgICAgdmFyIG5vZGUgPSBncmFwaFt0b01vZGVsXTtcbiAgICAgICAgaWYgKG5vZGUucGFyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29udmVyc2lvblt0b01vZGVsXSA9IHdyYXBDb252ZXJzaW9uKHRvTW9kZWwsIGdyYXBoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb252ZXJzaW9uO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29sb3ItY29udmVydC9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29sb3JfY29udmVydCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIGNvbnZlcnNpb25zID0gcmVxdWlyZV9jb252ZXJzaW9ucygpO1xuICAgIHZhciByb3V0ZSA9IHJlcXVpcmVfcm91dGUoKTtcbiAgICB2YXIgY29udmVydCA9IHt9O1xuICAgIHZhciBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG4gICAgZnVuY3Rpb24gd3JhcFJhdyhmbikge1xuICAgICAgdmFyIHdyYXBwZWRGbiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgaWYgKGFyZ3MgPT09IHZvaWQgMCB8fCBhcmdzID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZuKGFyZ3MpO1xuICAgICAgfTtcbiAgICAgIGlmIChcImNvbnZlcnNpb25cIiBpbiBmbikge1xuICAgICAgICB3cmFwcGVkRm4uY29udmVyc2lvbiA9IGZuLmNvbnZlcnNpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlZEZuO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3cmFwUm91bmRlZChmbikge1xuICAgICAgdmFyIHdyYXBwZWRGbiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgaWYgKGFyZ3MgPT09IHZvaWQgMCB8fCBhcmdzID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGFyZ3M7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJlc3VsdCA9IGZuKGFyZ3MpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIGZvciAodmFyIGxlbiA9IHJlc3VsdC5sZW5ndGgsIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIHJlc3VsdFtpXSA9IE1hdGgucm91bmQocmVzdWx0W2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH07XG4gICAgICBpZiAoXCJjb252ZXJzaW9uXCIgaW4gZm4pIHtcbiAgICAgICAgd3JhcHBlZEZuLmNvbnZlcnNpb24gPSBmbi5jb252ZXJzaW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdyYXBwZWRGbjtcbiAgICB9XG4gICAgbW9kZWxzLmZvckVhY2goZnVuY3Rpb24oZnJvbU1vZGVsKSB7XG4gICAgICBjb252ZXJ0W2Zyb21Nb2RlbF0gPSB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W2Zyb21Nb2RlbF0sIFwiY2hhbm5lbHNcIiwgeyB2YWx1ZTogY29udmVyc2lvbnNbZnJvbU1vZGVsXS5jaGFubmVscyB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb252ZXJ0W2Zyb21Nb2RlbF0sIFwibGFiZWxzXCIsIHsgdmFsdWU6IGNvbnZlcnNpb25zW2Zyb21Nb2RlbF0ubGFiZWxzIH0pO1xuICAgICAgdmFyIHJvdXRlcyA9IHJvdXRlKGZyb21Nb2RlbCk7XG4gICAgICB2YXIgcm91dGVNb2RlbHMgPSBPYmplY3Qua2V5cyhyb3V0ZXMpO1xuICAgICAgcm91dGVNb2RlbHMuZm9yRWFjaChmdW5jdGlvbih0b01vZGVsKSB7XG4gICAgICAgIHZhciBmbiA9IHJvdXRlc1t0b01vZGVsXTtcbiAgICAgICAgY29udmVydFtmcm9tTW9kZWxdW3RvTW9kZWxdID0gd3JhcFJvdW5kZWQoZm4pO1xuICAgICAgICBjb252ZXJ0W2Zyb21Nb2RlbF1bdG9Nb2RlbF0ucmF3ID0gd3JhcFJhdyhmbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGNvbnZlcnQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvYW5zaS1zdHlsZXMvaW5kZXguanNcbnZhciByZXF1aXJlX2Fuc2lfc3R5bGVzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Fuc2ktc3R5bGVzL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvbG9yQ29udmVydCA9IHJlcXVpcmVfY29sb3JfY29udmVydCgpO1xuICAgIHZhciB3cmFwQW5zaTE2MiA9IChmbiwgb2Zmc2V0KSA9PiBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBmbi5hcHBseShjb2xvckNvbnZlcnQsIGFyZ3VtZW50cyk7XG4gICAgICByZXR1cm4gYFxceDFCWyR7Y29kZSArIG9mZnNldH1tYDtcbiAgICB9O1xuICAgIHZhciB3cmFwQW5zaTI1NjIgPSAoZm4sIG9mZnNldCkgPT4gZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBjb2RlID0gZm4uYXBwbHkoY29sb3JDb252ZXJ0LCBhcmd1bWVudHMpO1xuICAgICAgcmV0dXJuIGBcXHgxQlskezM4ICsgb2Zmc2V0fTs1OyR7Y29kZX1tYDtcbiAgICB9O1xuICAgIHZhciB3cmFwQW5zaTE2bTIgPSAoZm4sIG9mZnNldCkgPT4gZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCByZ2IgPSBmbi5hcHBseShjb2xvckNvbnZlcnQsIGFyZ3VtZW50cyk7XG4gICAgICByZXR1cm4gYFxceDFCWyR7MzggKyBvZmZzZXR9OzI7JHtyZ2JbMF19OyR7cmdiWzFdfTske3JnYlsyXX1tYDtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGFzc2VtYmxlU3R5bGVzMigpIHtcbiAgICAgIGNvbnN0IGNvZGVzMiA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBjb25zdCBzdHlsZXMzID0ge1xuICAgICAgICBtb2RpZmllcjoge1xuICAgICAgICAgIHJlc2V0OiBbMCwgMF0sXG4gICAgICAgICAgLy8gMjEgaXNuJ3Qgd2lkZWx5IHN1cHBvcnRlZCBhbmQgMjIgZG9lcyB0aGUgc2FtZSB0aGluZ1xuICAgICAgICAgIGJvbGQ6IFsxLCAyMl0sXG4gICAgICAgICAgZGltOiBbMiwgMjJdLFxuICAgICAgICAgIGl0YWxpYzogWzMsIDIzXSxcbiAgICAgICAgICB1bmRlcmxpbmU6IFs0LCAyNF0sXG4gICAgICAgICAgaW52ZXJzZTogWzcsIDI3XSxcbiAgICAgICAgICBoaWRkZW46IFs4LCAyOF0sXG4gICAgICAgICAgc3RyaWtldGhyb3VnaDogWzksIDI5XVxuICAgICAgICB9LFxuICAgICAgICBjb2xvcjoge1xuICAgICAgICAgIGJsYWNrOiBbMzAsIDM5XSxcbiAgICAgICAgICByZWQ6IFszMSwgMzldLFxuICAgICAgICAgIGdyZWVuOiBbMzIsIDM5XSxcbiAgICAgICAgICB5ZWxsb3c6IFszMywgMzldLFxuICAgICAgICAgIGJsdWU6IFszNCwgMzldLFxuICAgICAgICAgIG1hZ2VudGE6IFszNSwgMzldLFxuICAgICAgICAgIGN5YW46IFszNiwgMzldLFxuICAgICAgICAgIHdoaXRlOiBbMzcsIDM5XSxcbiAgICAgICAgICBncmF5OiBbOTAsIDM5XSxcbiAgICAgICAgICAvLyBCcmlnaHQgY29sb3JcbiAgICAgICAgICByZWRCcmlnaHQ6IFs5MSwgMzldLFxuICAgICAgICAgIGdyZWVuQnJpZ2h0OiBbOTIsIDM5XSxcbiAgICAgICAgICB5ZWxsb3dCcmlnaHQ6IFs5MywgMzldLFxuICAgICAgICAgIGJsdWVCcmlnaHQ6IFs5NCwgMzldLFxuICAgICAgICAgIG1hZ2VudGFCcmlnaHQ6IFs5NSwgMzldLFxuICAgICAgICAgIGN5YW5CcmlnaHQ6IFs5NiwgMzldLFxuICAgICAgICAgIHdoaXRlQnJpZ2h0OiBbOTcsIDM5XVxuICAgICAgICB9LFxuICAgICAgICBiZ0NvbG9yOiB7XG4gICAgICAgICAgYmdCbGFjazogWzQwLCA0OV0sXG4gICAgICAgICAgYmdSZWQ6IFs0MSwgNDldLFxuICAgICAgICAgIGJnR3JlZW46IFs0MiwgNDldLFxuICAgICAgICAgIGJnWWVsbG93OiBbNDMsIDQ5XSxcbiAgICAgICAgICBiZ0JsdWU6IFs0NCwgNDldLFxuICAgICAgICAgIGJnTWFnZW50YTogWzQ1LCA0OV0sXG4gICAgICAgICAgYmdDeWFuOiBbNDYsIDQ5XSxcbiAgICAgICAgICBiZ1doaXRlOiBbNDcsIDQ5XSxcbiAgICAgICAgICAvLyBCcmlnaHQgY29sb3JcbiAgICAgICAgICBiZ0JsYWNrQnJpZ2h0OiBbMTAwLCA0OV0sXG4gICAgICAgICAgYmdSZWRCcmlnaHQ6IFsxMDEsIDQ5XSxcbiAgICAgICAgICBiZ0dyZWVuQnJpZ2h0OiBbMTAyLCA0OV0sXG4gICAgICAgICAgYmdZZWxsb3dCcmlnaHQ6IFsxMDMsIDQ5XSxcbiAgICAgICAgICBiZ0JsdWVCcmlnaHQ6IFsxMDQsIDQ5XSxcbiAgICAgICAgICBiZ01hZ2VudGFCcmlnaHQ6IFsxMDUsIDQ5XSxcbiAgICAgICAgICBiZ0N5YW5CcmlnaHQ6IFsxMDYsIDQ5XSxcbiAgICAgICAgICBiZ1doaXRlQnJpZ2h0OiBbMTA3LCA0OV1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHN0eWxlczMuY29sb3IuZ3JleSA9IHN0eWxlczMuY29sb3IuZ3JheTtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXBOYW1lIG9mIE9iamVjdC5rZXlzKHN0eWxlczMpKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gc3R5bGVzM1tncm91cE5hbWVdO1xuICAgICAgICBmb3IgKGNvbnN0IHN0eWxlTmFtZSBvZiBPYmplY3Qua2V5cyhncm91cCkpIHtcbiAgICAgICAgICBjb25zdCBzdHlsZSA9IGdyb3VwW3N0eWxlTmFtZV07XG4gICAgICAgICAgc3R5bGVzM1tzdHlsZU5hbWVdID0ge1xuICAgICAgICAgICAgb3BlbjogYFxceDFCWyR7c3R5bGVbMF19bWAsXG4gICAgICAgICAgICBjbG9zZTogYFxceDFCWyR7c3R5bGVbMV19bWBcbiAgICAgICAgICB9O1xuICAgICAgICAgIGdyb3VwW3N0eWxlTmFtZV0gPSBzdHlsZXMzW3N0eWxlTmFtZV07XG4gICAgICAgICAgY29kZXMyLnNldChzdHlsZVswXSwgc3R5bGVbMV0pO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMzLCBncm91cE5hbWUsIHtcbiAgICAgICAgICB2YWx1ZTogZ3JvdXAsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMzLCBcImNvZGVzXCIsIHtcbiAgICAgICAgICB2YWx1ZTogY29kZXMyLFxuICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgYW5zaTJhbnNpID0gKG4pID0+IG47XG4gICAgICBjb25zdCByZ2IycmdiID0gKHIsIGcsIGIpID0+IFtyLCBnLCBiXTtcbiAgICAgIHN0eWxlczMuY29sb3IuY2xvc2UgPSBcIlxceDFCWzM5bVwiO1xuICAgICAgc3R5bGVzMy5iZ0NvbG9yLmNsb3NlID0gXCJcXHgxQls0OW1cIjtcbiAgICAgIHN0eWxlczMuY29sb3IuYW5zaSA9IHtcbiAgICAgICAgYW5zaTogd3JhcEFuc2kxNjIoYW5zaTJhbnNpLCAwKVxuICAgICAgfTtcbiAgICAgIHN0eWxlczMuY29sb3IuYW5zaTI1NiA9IHtcbiAgICAgICAgYW5zaTI1Njogd3JhcEFuc2kyNTYyKGFuc2kyYW5zaSwgMClcbiAgICAgIH07XG4gICAgICBzdHlsZXMzLmNvbG9yLmFuc2kxNm0gPSB7XG4gICAgICAgIHJnYjogd3JhcEFuc2kxNm0yKHJnYjJyZ2IsIDApXG4gICAgICB9O1xuICAgICAgc3R5bGVzMy5iZ0NvbG9yLmFuc2kgPSB7XG4gICAgICAgIGFuc2k6IHdyYXBBbnNpMTYyKGFuc2kyYW5zaSwgMTApXG4gICAgICB9O1xuICAgICAgc3R5bGVzMy5iZ0NvbG9yLmFuc2kyNTYgPSB7XG4gICAgICAgIGFuc2kyNTY6IHdyYXBBbnNpMjU2MihhbnNpMmFuc2ksIDEwKVxuICAgICAgfTtcbiAgICAgIHN0eWxlczMuYmdDb2xvci5hbnNpMTZtID0ge1xuICAgICAgICByZ2I6IHdyYXBBbnNpMTZtMihyZ2IycmdiLCAxMClcbiAgICAgIH07XG4gICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMoY29sb3JDb252ZXJ0KSkge1xuICAgICAgICBpZiAodHlwZW9mIGNvbG9yQ29udmVydFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3VpdGUgPSBjb2xvckNvbnZlcnRba2V5XTtcbiAgICAgICAgaWYgKGtleSA9PT0gXCJhbnNpMTZcIikge1xuICAgICAgICAgIGtleSA9IFwiYW5zaVwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImFuc2kxNlwiIGluIHN1aXRlKSB7XG4gICAgICAgICAgc3R5bGVzMy5jb2xvci5hbnNpW2tleV0gPSB3cmFwQW5zaTE2MihzdWl0ZS5hbnNpMTYsIDApO1xuICAgICAgICAgIHN0eWxlczMuYmdDb2xvci5hbnNpW2tleV0gPSB3cmFwQW5zaTE2MihzdWl0ZS5hbnNpMTYsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJhbnNpMjU2XCIgaW4gc3VpdGUpIHtcbiAgICAgICAgICBzdHlsZXMzLmNvbG9yLmFuc2kyNTZba2V5XSA9IHdyYXBBbnNpMjU2MihzdWl0ZS5hbnNpMjU2LCAwKTtcbiAgICAgICAgICBzdHlsZXMzLmJnQ29sb3IuYW5zaTI1NltrZXldID0gd3JhcEFuc2kyNTYyKHN1aXRlLmFuc2kyNTYsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJyZ2JcIiBpbiBzdWl0ZSkge1xuICAgICAgICAgIHN0eWxlczMuY29sb3IuYW5zaTE2bVtrZXldID0gd3JhcEFuc2kxNm0yKHN1aXRlLnJnYiwgMCk7XG4gICAgICAgICAgc3R5bGVzMy5iZ0NvbG9yLmFuc2kxNm1ba2V5XSA9IHdyYXBBbnNpMTZtMihzdWl0ZS5yZ2IsIDEwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0eWxlczM7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiZXhwb3J0c1wiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBhc3NlbWJsZVN0eWxlczJcbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9ub2RlX21vZHVsZXMvaGFzLWZsYWcvaW5kZXguanNcbnZhciByZXF1aXJlX2hhc19mbGFnID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9oYXMtZmxhZy9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0gKGZsYWcsIGFyZ3YpID0+IHtcbiAgICAgIGFyZ3YgPSBhcmd2IHx8IHByb2Nlc3MuYXJndjtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGZsYWcuc3RhcnRzV2l0aChcIi1cIikgPyBcIlwiIDogZmxhZy5sZW5ndGggPT09IDEgPyBcIi1cIiA6IFwiLS1cIjtcbiAgICAgIGNvbnN0IHBvcyA9IGFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcbiAgICAgIGNvbnN0IHRlcm1pbmF0b3JQb3MgPSBhcmd2LmluZGV4T2YoXCItLVwiKTtcbiAgICAgIHJldHVybiBwb3MgIT09IC0xICYmICh0ZXJtaW5hdG9yUG9zID09PSAtMSA/IHRydWUgOiBwb3MgPCB0ZXJtaW5hdG9yUG9zKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9zdXBwb3J0cy1jb2xvci9pbmRleC5qc1xudmFyIHJlcXVpcmVfc3VwcG9ydHNfY29sb3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL3N1cHBvcnRzLWNvbG9yL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG9zMiA9IF9fcmVxdWlyZShcIm9zXCIpO1xuICAgIHZhciBoYXNGbGFnMiA9IHJlcXVpcmVfaGFzX2ZsYWcoKTtcbiAgICB2YXIgZW52MiA9IHByb2Nlc3MuZW52O1xuICAgIHZhciBmb3JjZUNvbG9yO1xuICAgIGlmIChoYXNGbGFnMihcIm5vLWNvbG9yXCIpIHx8IGhhc0ZsYWcyKFwibm8tY29sb3JzXCIpIHx8IGhhc0ZsYWcyKFwiY29sb3I9ZmFsc2VcIikpIHtcbiAgICAgIGZvcmNlQ29sb3IgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGhhc0ZsYWcyKFwiY29sb3JcIikgfHwgaGFzRmxhZzIoXCJjb2xvcnNcIikgfHwgaGFzRmxhZzIoXCJjb2xvcj10cnVlXCIpIHx8IGhhc0ZsYWcyKFwiY29sb3I9YWx3YXlzXCIpKSB7XG4gICAgICBmb3JjZUNvbG9yID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKFwiRk9SQ0VfQ09MT1JcIiBpbiBlbnYyKSB7XG4gICAgICBmb3JjZUNvbG9yID0gZW52Mi5GT1JDRV9DT0xPUi5sZW5ndGggPT09IDAgfHwgcGFyc2VJbnQoZW52Mi5GT1JDRV9DT0xPUiwgMTApICE9PSAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVMZXZlbDIobGV2ZWwpIHtcbiAgICAgIGlmIChsZXZlbCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsZXZlbCxcbiAgICAgICAgaGFzQmFzaWM6IHRydWUsXG4gICAgICAgIGhhczI1NjogbGV2ZWwgPj0gMixcbiAgICAgICAgaGFzMTZtOiBsZXZlbCA+PSAzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdXBwb3J0c0NvbG9yMihzdHJlYW0pIHtcbiAgICAgIGlmIChmb3JjZUNvbG9yID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNGbGFnMihcImNvbG9yPTE2bVwiKSB8fCBoYXNGbGFnMihcImNvbG9yPWZ1bGxcIikgfHwgaGFzRmxhZzIoXCJjb2xvcj10cnVlY29sb3JcIikpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgICB9XG4gICAgICBpZiAoaGFzRmxhZzIoXCJjb2xvcj0yNTZcIikpIHtcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICB9XG4gICAgICBpZiAoc3RyZWFtICYmICFzdHJlYW0uaXNUVFkgJiYgZm9yY2VDb2xvciAhPT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbiA9IGZvcmNlQ29sb3IgPyAxIDogMDtcbiAgICAgIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcbiAgICAgICAgY29uc3Qgb3NSZWxlYXNlID0gb3MyLnJlbGVhc2UoKS5zcGxpdChcIi5cIik7XG4gICAgICAgIGlmIChOdW1iZXIocHJvY2Vzcy52ZXJzaW9ucy5ub2RlLnNwbGl0KFwiLlwiKVswXSkgPj0gOCAmJiBOdW1iZXIob3NSZWxlYXNlWzBdKSA+PSAxMCAmJiBOdW1iZXIob3NSZWxlYXNlWzJdKSA+PSAxMDU4Nikge1xuICAgICAgICAgIHJldHVybiBOdW1iZXIob3NSZWxlYXNlWzJdKSA+PSAxNDkzMSA/IDMgOiAyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgaWYgKFwiQ0lcIiBpbiBlbnYyKSB7XG4gICAgICAgIGlmIChbXCJUUkFWSVNcIiwgXCJDSVJDTEVDSVwiLCBcIkFQUFZFWU9SXCIsIFwiR0lUTEFCX0NJXCJdLnNvbWUoKHNpZ24pID0+IHNpZ24gaW4gZW52MikgfHwgZW52Mi5DSV9OQU1FID09PSBcImNvZGVzaGlwXCIpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgaWYgKFwiVEVBTUNJVFlfVkVSU0lPTlwiIGluIGVudjIpIHtcbiAgICAgICAgcmV0dXJuIC9eKDlcXC4oMCpbMS05XVxcZCopXFwufFxcZHsyLH1cXC4pLy50ZXN0KGVudjIuVEVBTUNJVFlfVkVSU0lPTikgPyAxIDogMDtcbiAgICAgIH1cbiAgICAgIGlmIChlbnYyLkNPTE9SVEVSTSA9PT0gXCJ0cnVlY29sb3JcIikge1xuICAgICAgICByZXR1cm4gMztcbiAgICAgIH1cbiAgICAgIGlmIChcIlRFUk1fUFJPR1JBTVwiIGluIGVudjIpIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHBhcnNlSW50KChlbnYyLlRFUk1fUFJPR1JBTV9WRVJTSU9OIHx8IFwiXCIpLnNwbGl0KFwiLlwiKVswXSwgMTApO1xuICAgICAgICBzd2l0Y2ggKGVudjIuVEVSTV9QUk9HUkFNKSB7XG4gICAgICAgICAgY2FzZSBcImlUZXJtLmFwcFwiOlxuICAgICAgICAgICAgcmV0dXJuIHZlcnNpb24gPj0gMyA/IDMgOiAyO1xuICAgICAgICAgIGNhc2UgXCJBcHBsZV9UZXJtaW5hbFwiOlxuICAgICAgICAgICAgcmV0dXJuIDI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICgvLTI1Nihjb2xvcik/JC9pLnRlc3QoZW52Mi5URVJNKSkge1xuICAgICAgICByZXR1cm4gMjtcbiAgICAgIH1cbiAgICAgIGlmICgvXnNjcmVlbnxeeHRlcm18XnZ0MTAwfF52dDIyMHxecnh2dHxjb2xvcnxhbnNpfGN5Z3dpbnxsaW51eC9pLnRlc3QoZW52Mi5URVJNKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmIChcIkNPTE9SVEVSTVwiIGluIGVudjIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpZiAoZW52Mi5URVJNID09PSBcImR1bWJcIikge1xuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3VwcG9ydExldmVsKHN0cmVhbSkge1xuICAgICAgY29uc3QgbGV2ZWwgPSBzdXBwb3J0c0NvbG9yMihzdHJlYW0pO1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZUxldmVsMihsZXZlbCk7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgc3VwcG9ydHNDb2xvcjogZ2V0U3VwcG9ydExldmVsLFxuICAgICAgc3Rkb3V0OiBnZXRTdXBwb3J0TGV2ZWwocHJvY2Vzcy5zdGRvdXQpLFxuICAgICAgc3RkZXJyOiBnZXRTdXBwb3J0TGV2ZWwocHJvY2Vzcy5zdGRlcnIpXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9ub2RlX21vZHVsZXMvY2hhbGsvdGVtcGxhdGVzLmpzXG52YXIgcmVxdWlyZV90ZW1wbGF0ZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL2NoYWxrL3RlbXBsYXRlcy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBURU1QTEFURV9SRUdFWCA9IC8oPzpcXFxcKHVbYS1mXFxkXXs0fXx4W2EtZlxcZF17Mn18LikpfCg/Olxceyh+KT8oXFx3Kyg/OlxcKFteKV0qXFwpKT8oPzpcXC5cXHcrKD86XFwoW14pXSpcXCkpPykqKSg/OlsgXFx0XXwoPz1cXHI/XFxuKSkpfChcXH0pfCgoPzoufFtcXHJcXG5cXGZdKSs/KS9naTtcbiAgICB2YXIgU1RZTEVfUkVHRVggPSAvKD86XnxcXC4pKFxcdyspKD86XFwoKFteKV0qKVxcKSk/L2c7XG4gICAgdmFyIFNUUklOR19SRUdFWCA9IC9eKFsnXCJdKSgoPzpcXFxcLnwoPyFcXDEpW15cXFxcXSkqKVxcMSQvO1xuICAgIHZhciBFU0NBUEVfUkVHRVggPSAvXFxcXCh1W2EtZlxcZF17NH18eFthLWZcXGRdezJ9fC4pfChbXlxcXFxdKS9naTtcbiAgICB2YXIgRVNDQVBFUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKFtcbiAgICAgIFtcIm5cIiwgXCJcXG5cIl0sXG4gICAgICBbXCJyXCIsIFwiXFxyXCJdLFxuICAgICAgW1widFwiLCBcIlx0XCJdLFxuICAgICAgW1wiYlwiLCBcIlxcYlwiXSxcbiAgICAgIFtcImZcIiwgXCJcXGZcIl0sXG4gICAgICBbXCJ2XCIsIFwiXFx2XCJdLFxuICAgICAgW1wiMFwiLCBcIlxcMFwiXSxcbiAgICAgIFtcIlxcXFxcIiwgXCJcXFxcXCJdLFxuICAgICAgW1wiZVwiLCBcIlxceDFCXCJdLFxuICAgICAgW1wiYVwiLCBcIlxceDA3XCJdXG4gICAgXSk7XG4gICAgZnVuY3Rpb24gdW5lc2NhcGUoYykge1xuICAgICAgaWYgKGNbMF0gPT09IFwidVwiICYmIGMubGVuZ3RoID09PSA1IHx8IGNbMF0gPT09IFwieFwiICYmIGMubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGMuc2xpY2UoMSksIDE2KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gRVNDQVBFUy5nZXQoYykgfHwgYztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMobmFtZSwgYXJncykge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAgICAgY29uc3QgY2h1bmtzID0gYXJncy50cmltKCkuc3BsaXQoL1xccyosXFxzKi9nKTtcbiAgICAgIGxldCBtYXRjaGVzO1xuICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjaHVua3MpIHtcbiAgICAgICAgaWYgKCFpc05hTihjaHVuaykpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2goTnVtYmVyKGNodW5rKSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWF0Y2hlcyA9IGNodW5rLm1hdGNoKFNUUklOR19SRUdFWCkpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2gobWF0Y2hlc1syXS5yZXBsYWNlKEVTQ0FQRV9SRUdFWCwgKG0sIGVzY2FwZSwgY2hyKSA9PiBlc2NhcGUgPyB1bmVzY2FwZShlc2NhcGUpIDogY2hyKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENoYWxrIHRlbXBsYXRlIHN0eWxlIGFyZ3VtZW50OiAke2NodW5rfSAoaW4gc3R5bGUgJyR7bmFtZX0nKWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VTdHlsZShzdHlsZSkge1xuICAgICAgU1RZTEVfUkVHRVgubGFzdEluZGV4ID0gMDtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICAgIGxldCBtYXRjaGVzO1xuICAgICAgd2hpbGUgKChtYXRjaGVzID0gU1RZTEVfUkVHRVguZXhlYyhzdHlsZSkpICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBtYXRjaGVzWzFdO1xuICAgICAgICBpZiAobWF0Y2hlc1syXSkge1xuICAgICAgICAgIGNvbnN0IGFyZ3MgPSBwYXJzZUFyZ3VtZW50cyhuYW1lLCBtYXRjaGVzWzJdKTtcbiAgICAgICAgICByZXN1bHRzLnB1c2goW25hbWVdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKFtuYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBidWlsZFN0eWxlKGNoYWxrMiwgc3R5bGVzMykge1xuICAgICAgY29uc3QgZW5hYmxlZCA9IHt9O1xuICAgICAgZm9yIChjb25zdCBsYXllciBvZiBzdHlsZXMzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc3R5bGUgb2YgbGF5ZXIuc3R5bGVzKSB7XG4gICAgICAgICAgZW5hYmxlZFtzdHlsZVswXV0gPSBsYXllci5pbnZlcnNlID8gbnVsbCA6IHN0eWxlLnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgY3VycmVudCA9IGNoYWxrMjtcbiAgICAgIGZvciAoY29uc3Qgc3R5bGVOYW1lIG9mIE9iamVjdC5rZXlzKGVuYWJsZWQpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVuYWJsZWRbc3R5bGVOYW1lXSkpIHtcbiAgICAgICAgICBpZiAoIShzdHlsZU5hbWUgaW4gY3VycmVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBDaGFsayBzdHlsZTogJHtzdHlsZU5hbWV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbmFibGVkW3N0eWxlTmFtZV0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbc3R5bGVOYW1lXS5hcHBseShjdXJyZW50LCBlbmFibGVkW3N0eWxlTmFtZV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtzdHlsZU5hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gKGNoYWxrMiwgdG1wKSA9PiB7XG4gICAgICBjb25zdCBzdHlsZXMzID0gW107XG4gICAgICBjb25zdCBjaHVua3MgPSBbXTtcbiAgICAgIGxldCBjaHVuayA9IFtdO1xuICAgICAgdG1wLnJlcGxhY2UoVEVNUExBVEVfUkVHRVgsIChtLCBlc2NhcGVDaGFyLCBpbnZlcnNlLCBzdHlsZSwgY2xvc2UsIGNocikgPT4ge1xuICAgICAgICBpZiAoZXNjYXBlQ2hhcikge1xuICAgICAgICAgIGNodW5rLnB1c2godW5lc2NhcGUoZXNjYXBlQ2hhcikpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0eWxlKSB7XG4gICAgICAgICAgY29uc3Qgc3RyID0gY2h1bmsuam9pbihcIlwiKTtcbiAgICAgICAgICBjaHVuayA9IFtdO1xuICAgICAgICAgIGNodW5rcy5wdXNoKHN0eWxlczMubGVuZ3RoID09PSAwID8gc3RyIDogYnVpbGRTdHlsZShjaGFsazIsIHN0eWxlczMpKHN0cikpO1xuICAgICAgICAgIHN0eWxlczMucHVzaCh7IGludmVyc2UsIHN0eWxlczogcGFyc2VTdHlsZShzdHlsZSkgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2xvc2UpIHtcbiAgICAgICAgICBpZiAoc3R5bGVzMy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZvdW5kIGV4dHJhbmVvdXMgfSBpbiBDaGFsayB0ZW1wbGF0ZSBsaXRlcmFsXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaHVua3MucHVzaChidWlsZFN0eWxlKGNoYWxrMiwgc3R5bGVzMykoY2h1bmsuam9pbihcIlwiKSkpO1xuICAgICAgICAgIGNodW5rID0gW107XG4gICAgICAgICAgc3R5bGVzMy5wb3AoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaHVuay5wdXNoKGNocik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY2h1bmtzLnB1c2goY2h1bmsuam9pbihcIlwiKSk7XG4gICAgICBpZiAoc3R5bGVzMy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGVyck1zZyA9IGBDaGFsayB0ZW1wbGF0ZSBsaXRlcmFsIGlzIG1pc3NpbmcgJHtzdHlsZXMzLmxlbmd0aH0gY2xvc2luZyBicmFja2V0JHtzdHlsZXMzLmxlbmd0aCA9PT0gMSA/IFwiXCIgOiBcInNcIn0gKFxcYH1cXGApYDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2h1bmtzLmpvaW4oXCJcIik7XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9ub2RlX21vZHVsZXMvY2hhbGsvaW5kZXguanNcbnZhciByZXF1aXJlX2NoYWxrID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9jaGFsay9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBlc2NhcGVTdHJpbmdSZWdleHAyID0gcmVxdWlyZV9lc2NhcGVfc3RyaW5nX3JlZ2V4cCgpO1xuICAgIHZhciBhbnNpU3R5bGVzMiA9IHJlcXVpcmVfYW5zaV9zdHlsZXMoKTtcbiAgICB2YXIgc3Rkb3V0Q29sb3IyID0gcmVxdWlyZV9zdXBwb3J0c19jb2xvcigpLnN0ZG91dDtcbiAgICB2YXIgdGVtcGxhdGUgPSByZXF1aXJlX3RlbXBsYXRlcygpO1xuICAgIHZhciBpc1NpbXBsZVdpbmRvd3NUZXJtID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiICYmICEocHJvY2Vzcy5lbnYuVEVSTSB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJ4dGVybVwiKTtcbiAgICB2YXIgbGV2ZWxNYXBwaW5nMiA9IFtcImFuc2lcIiwgXCJhbnNpXCIsIFwiYW5zaTI1NlwiLCBcImFuc2kxNm1cIl07XG4gICAgdmFyIHNraXBNb2RlbHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbXCJncmF5XCJdKTtcbiAgICB2YXIgc3R5bGVzMyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGZ1bmN0aW9uIGFwcGx5T3B0aW9uczIob2JqLCBvcHRpb25zOCkge1xuICAgICAgb3B0aW9uczggPSBvcHRpb25zOCB8fCB7fTtcbiAgICAgIGNvbnN0IHNjTGV2ZWwgPSBzdGRvdXRDb2xvcjIgPyBzdGRvdXRDb2xvcjIubGV2ZWwgOiAwO1xuICAgICAgb2JqLmxldmVsID0gb3B0aW9uczgubGV2ZWwgPT09IHZvaWQgMCA/IHNjTGV2ZWwgOiBvcHRpb25zOC5sZXZlbDtcbiAgICAgIG9iai5lbmFibGVkID0gXCJlbmFibGVkXCIgaW4gb3B0aW9uczggPyBvcHRpb25zOC5lbmFibGVkIDogb2JqLmxldmVsID4gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gQ2hhbGsob3B0aW9uczgpIHtcbiAgICAgIGlmICghdGhpcyB8fCAhKHRoaXMgaW5zdGFuY2VvZiBDaGFsaykgfHwgdGhpcy50ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCBjaGFsazIgPSB7fTtcbiAgICAgICAgYXBwbHlPcHRpb25zMihjaGFsazIsIG9wdGlvbnM4KTtcbiAgICAgICAgY2hhbGsyLnRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgY29uc3QgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICByZXR1cm4gY2hhbGtUYWcuYXBwbHkobnVsbCwgW2NoYWxrMi50ZW1wbGF0ZV0uY29uY2F0KGFyZ3MpKTtcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGNoYWxrMiwgQ2hhbGsucHJvdG90eXBlKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGNoYWxrMi50ZW1wbGF0ZSwgY2hhbGsyKTtcbiAgICAgICAgY2hhbGsyLnRlbXBsYXRlLmNvbnN0cnVjdG9yID0gQ2hhbGs7XG4gICAgICAgIHJldHVybiBjaGFsazIudGVtcGxhdGU7XG4gICAgICB9XG4gICAgICBhcHBseU9wdGlvbnMyKHRoaXMsIG9wdGlvbnM4KTtcbiAgICB9XG4gICAgaWYgKGlzU2ltcGxlV2luZG93c1Rlcm0pIHtcbiAgICAgIGFuc2lTdHlsZXMyLmJsdWUub3BlbiA9IFwiXFx4MUJbOTRtXCI7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGFuc2lTdHlsZXMyKSkge1xuICAgICAgYW5zaVN0eWxlczJba2V5XS5jbG9zZVJlID0gbmV3IFJlZ0V4cChlc2NhcGVTdHJpbmdSZWdleHAyKGFuc2lTdHlsZXMyW2tleV0uY2xvc2UpLCBcImdcIik7XG4gICAgICBzdHlsZXMzW2tleV0gPSB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBjb25zdCBjb2RlczIgPSBhbnNpU3R5bGVzMltrZXldO1xuICAgICAgICAgIHJldHVybiBidWlsZC5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlcyA/IHRoaXMuX3N0eWxlcy5jb25jYXQoY29kZXMyKSA6IFtjb2RlczJdLCB0aGlzLl9lbXB0eSwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgc3R5bGVzMy52aXNpYmxlID0ge1xuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gYnVpbGQuY2FsbCh0aGlzLCB0aGlzLl9zdHlsZXMgfHwgW10sIHRydWUsIFwidmlzaWJsZVwiKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGFuc2lTdHlsZXMyLmNvbG9yLmNsb3NlUmUgPSBuZXcgUmVnRXhwKGVzY2FwZVN0cmluZ1JlZ2V4cDIoYW5zaVN0eWxlczIuY29sb3IuY2xvc2UpLCBcImdcIik7XG4gICAgZm9yIChjb25zdCBtb2RlbCBvZiBPYmplY3Qua2V5cyhhbnNpU3R5bGVzMi5jb2xvci5hbnNpKSkge1xuICAgICAgaWYgKHNraXBNb2RlbHMuaGFzKG1vZGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHN0eWxlczNbbW9kZWxdID0ge1xuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgY29uc3QgbGV2ZWwgPSB0aGlzLmxldmVsO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW4gPSBhbnNpU3R5bGVzMi5jb2xvcltsZXZlbE1hcHBpbmcyW2xldmVsXV1bbW9kZWxdLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBjb2RlczIgPSB7XG4gICAgICAgICAgICAgIG9wZW4sXG4gICAgICAgICAgICAgIGNsb3NlOiBhbnNpU3R5bGVzMi5jb2xvci5jbG9zZSxcbiAgICAgICAgICAgICAgY2xvc2VSZTogYW5zaVN0eWxlczIuY29sb3IuY2xvc2VSZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBidWlsZC5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlcyA/IHRoaXMuX3N0eWxlcy5jb25jYXQoY29kZXMyKSA6IFtjb2RlczJdLCB0aGlzLl9lbXB0eSwgbW9kZWwpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGFuc2lTdHlsZXMyLmJnQ29sb3IuY2xvc2VSZSA9IG5ldyBSZWdFeHAoZXNjYXBlU3RyaW5nUmVnZXhwMihhbnNpU3R5bGVzMi5iZ0NvbG9yLmNsb3NlKSwgXCJnXCIpO1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgT2JqZWN0LmtleXMoYW5zaVN0eWxlczIuYmdDb2xvci5hbnNpKSkge1xuICAgICAgaWYgKHNraXBNb2RlbHMuaGFzKG1vZGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJnTW9kZWwgPSBcImJnXCIgKyBtb2RlbFswXS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gICAgICBzdHlsZXMzW2JnTW9kZWxdID0ge1xuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgY29uc3QgbGV2ZWwgPSB0aGlzLmxldmVsO1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZW4gPSBhbnNpU3R5bGVzMi5iZ0NvbG9yW2xldmVsTWFwcGluZzJbbGV2ZWxdXVttb2RlbF0uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVzMiA9IHtcbiAgICAgICAgICAgICAgb3BlbixcbiAgICAgICAgICAgICAgY2xvc2U6IGFuc2lTdHlsZXMyLmJnQ29sb3IuY2xvc2UsXG4gICAgICAgICAgICAgIGNsb3NlUmU6IGFuc2lTdHlsZXMyLmJnQ29sb3IuY2xvc2VSZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBidWlsZC5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlcyA/IHRoaXMuX3N0eWxlcy5jb25jYXQoY29kZXMyKSA6IFtjb2RlczJdLCB0aGlzLl9lbXB0eSwgbW9kZWwpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHZhciBwcm90bzIgPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcygoKSA9PiB7XG4gICAgfSwgc3R5bGVzMyk7XG4gICAgZnVuY3Rpb24gYnVpbGQoX3N0eWxlcywgX2VtcHR5LCBrZXkpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFwcGx5U3R5bGUyLmFwcGx5KGJ1aWxkZXIsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgYnVpbGRlci5fc3R5bGVzID0gX3N0eWxlcztcbiAgICAgIGJ1aWxkZXIuX2VtcHR5ID0gX2VtcHR5O1xuICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYnVpbGRlciwgXCJsZXZlbFwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5sZXZlbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KGxldmVsKSB7XG4gICAgICAgICAgc2VsZi5sZXZlbCA9IGxldmVsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShidWlsZGVyLCBcImVuYWJsZWRcIiwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYuZW5hYmxlZDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KGVuYWJsZWQpIHtcbiAgICAgICAgICBzZWxmLmVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGJ1aWxkZXIuaGFzR3JleSA9IHRoaXMuaGFzR3JleSB8fCBrZXkgPT09IFwiZ3JheVwiIHx8IGtleSA9PT0gXCJncmV5XCI7XG4gICAgICBidWlsZGVyLl9fcHJvdG9fXyA9IHByb3RvMjtcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcHBseVN0eWxlMigpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBjb25zdCBhcmdzTGVuID0gYXJncy5sZW5ndGg7XG4gICAgICBsZXQgc3RyID0gU3RyaW5nKGFyZ3VtZW50c1swXSk7XG4gICAgICBpZiAoYXJnc0xlbiA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzTGVuID4gMSkge1xuICAgICAgICBmb3IgKGxldCBhID0gMTsgYSA8IGFyZ3NMZW47IGErKykge1xuICAgICAgICAgIHN0ciArPSBcIiBcIiArIGFyZ3NbYV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5lbmFibGVkIHx8IHRoaXMubGV2ZWwgPD0gMCB8fCAhc3RyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbXB0eSA/IFwiXCIgOiBzdHI7XG4gICAgICB9XG4gICAgICBjb25zdCBvcmlnaW5hbERpbSA9IGFuc2lTdHlsZXMyLmRpbS5vcGVuO1xuICAgICAgaWYgKGlzU2ltcGxlV2luZG93c1Rlcm0gJiYgdGhpcy5oYXNHcmV5KSB7XG4gICAgICAgIGFuc2lTdHlsZXMyLmRpbS5vcGVuID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgY29kZSBvZiB0aGlzLl9zdHlsZXMuc2xpY2UoKS5yZXZlcnNlKCkpIHtcbiAgICAgICAgc3RyID0gY29kZS5vcGVuICsgc3RyLnJlcGxhY2UoY29kZS5jbG9zZVJlLCBjb2RlLm9wZW4pICsgY29kZS5jbG9zZTtcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccj9cXG4vZywgYCR7Y29kZS5jbG9zZX0kJiR7Y29kZS5vcGVufWApO1xuICAgICAgfVxuICAgICAgYW5zaVN0eWxlczIuZGltLm9wZW4gPSBvcmlnaW5hbERpbTtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoYWxrVGFnKGNoYWxrMiwgc3RyaW5ncykge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHN0cmluZ3MpKSB7XG4gICAgICAgIHJldHVybiBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkuam9pbihcIiBcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpO1xuICAgICAgY29uc3QgcGFydHMgPSBbc3RyaW5ncy5yYXdbMF1dO1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goU3RyaW5nKGFyZ3NbaSAtIDFdKS5yZXBsYWNlKC9be31cXFxcXS9nLCBcIlxcXFwkJlwiKSk7XG4gICAgICAgIHBhcnRzLnB1c2goU3RyaW5nKHN0cmluZ3MucmF3W2ldKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGVtcGxhdGUoY2hhbGsyLCBwYXJ0cy5qb2luKFwiXCIpKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2hhbGsucHJvdG90eXBlLCBzdHlsZXMzKTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IENoYWxrKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMuc3VwcG9ydHNDb2xvciA9IHN0ZG91dENvbG9yMjtcbiAgICBtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbW9kdWxlLmV4cG9ydHM7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGJhYmVsL2hpZ2hsaWdodC9saWIvaW5kZXguanNcbnZhciByZXF1aXJlX2xpYjIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2hpZ2hsaWdodC9saWIvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IGhpZ2hsaWdodDtcbiAgICBleHBvcnRzLnNob3VsZEhpZ2hsaWdodCA9IHNob3VsZEhpZ2hsaWdodDtcbiAgICB2YXIgX2pzVG9rZW5zID0gcmVxdWlyZV9qc190b2tlbnMoKTtcbiAgICB2YXIgX2hlbHBlclZhbGlkYXRvcklkZW50aWZpZXIgPSByZXF1aXJlX2xpYigpO1xuICAgIHZhciBfY2hhbGsyID0gcmVxdWlyZV9jaGFsaygpO1xuICAgIHZhciBjaGFsazIgPSBfY2hhbGsyO1xuICAgIHZhciBzb21ldGltZXNLZXl3b3JkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcImFzXCIsIFwiYXN5bmNcIiwgXCJmcm9tXCIsIFwiZ2V0XCIsIFwib2ZcIiwgXCJzZXRcIl0pO1xuICAgIGZ1bmN0aW9uIGdldERlZnMoY2hhbGszKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXl3b3JkOiBjaGFsazMuY3lhbixcbiAgICAgICAgY2FwaXRhbGl6ZWQ6IGNoYWxrMy55ZWxsb3csXG4gICAgICAgIGpzeElkZW50aWZpZXI6IGNoYWxrMy55ZWxsb3csXG4gICAgICAgIHB1bmN0dWF0b3I6IGNoYWxrMy55ZWxsb3csXG4gICAgICAgIG51bWJlcjogY2hhbGszLm1hZ2VudGEsXG4gICAgICAgIHN0cmluZzogY2hhbGszLmdyZWVuLFxuICAgICAgICByZWdleDogY2hhbGszLm1hZ2VudGEsXG4gICAgICAgIGNvbW1lbnQ6IGNoYWxrMy5ncmV5LFxuICAgICAgICBpbnZhbGlkOiBjaGFsazMud2hpdGUuYmdSZWQuYm9sZFxuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIE5FV0xJTkUgPSAvXFxyXFxufFtcXG5cXHJcXHUyMDI4XFx1MjAyOV0vO1xuICAgIHZhciBCUkFDS0VUID0gL15bKClbXFxde31dJC87XG4gICAgdmFyIHRva2VuaXplO1xuICAgIHtcbiAgICAgIGNvbnN0IEpTWF9UQUcgPSAvXlthLXpdW1xcdy1dKiQvaTtcbiAgICAgIGNvbnN0IGdldFRva2VuVHlwZSA9IGZ1bmN0aW9uKHRva2VuLCBvZmZzZXQsIHRleHQpIHtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwibmFtZVwiKSB7XG4gICAgICAgICAgaWYgKCgwLCBfaGVscGVyVmFsaWRhdG9ySWRlbnRpZmllci5pc0tleXdvcmQpKHRva2VuLnZhbHVlKSB8fCAoMCwgX2hlbHBlclZhbGlkYXRvcklkZW50aWZpZXIuaXNTdHJpY3RSZXNlcnZlZFdvcmQpKHRva2VuLnZhbHVlLCB0cnVlKSB8fCBzb21ldGltZXNLZXl3b3Jkcy5oYXModG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJrZXl3b3JkXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChKU1hfVEFHLnRlc3QodG9rZW4udmFsdWUpICYmICh0ZXh0W29mZnNldCAtIDFdID09PSBcIjxcIiB8fCB0ZXh0LnNsaWNlKG9mZnNldCAtIDIsIG9mZnNldCkgPT0gXCI8L1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwianN4SWRlbnRpZmllclwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodG9rZW4udmFsdWVbMF0gIT09IHRva2VuLnZhbHVlWzBdLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBcImNhcGl0YWxpemVkXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInB1bmN0dWF0b3JcIiAmJiBCUkFDS0VULnRlc3QodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYnJhY2tldFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImludmFsaWRcIiAmJiAodG9rZW4udmFsdWUgPT09IFwiQFwiIHx8IHRva2VuLnZhbHVlID09PSBcIiNcIikpIHtcbiAgICAgICAgICByZXR1cm4gXCJwdW5jdHVhdG9yXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuLnR5cGU7XG4gICAgICB9O1xuICAgICAgdG9rZW5pemUgPSBmdW5jdGlvbiogKHRleHQpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAobWF0Y2ggPSBfanNUb2tlbnMuZGVmYXVsdC5leGVjKHRleHQpKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBfanNUb2tlbnMubWF0Y2hUb1Rva2VuKG1hdGNoKTtcbiAgICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgICB0eXBlOiBnZXRUb2tlblR5cGUodG9rZW4sIG1hdGNoLmluZGV4LCB0ZXh0KSxcbiAgICAgICAgICAgIHZhbHVlOiB0b2tlbi52YWx1ZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhpZ2hsaWdodFRva2VucyhkZWZzLCB0ZXh0KSB7XG4gICAgICBsZXQgaGlnaGxpZ2h0ZWQgPSBcIlwiO1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHZhbHVlXG4gICAgICB9IG9mIHRva2VuaXplKHRleHQpKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yaXplID0gZGVmc1t0eXBlXTtcbiAgICAgICAgaWYgKGNvbG9yaXplKSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWQgKz0gdmFsdWUuc3BsaXQoTkVXTElORSkubWFwKChzdHIpID0+IGNvbG9yaXplKHN0cikpLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWQgKz0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBoaWdobGlnaHRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2hvdWxkSGlnaGxpZ2h0KG9wdGlvbnM4KSB7XG4gICAgICByZXR1cm4gISFjaGFsazIuc3VwcG9ydHNDb2xvciB8fCBvcHRpb25zOC5mb3JjZUNvbG9yO1xuICAgIH1cbiAgICB2YXIgY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSB2b2lkIDA7XG4gICAgZnVuY3Rpb24gZ2V0Q2hhbGsoZm9yY2VDb2xvcikge1xuICAgICAgaWYgKGZvcmNlQ29sb3IpIHtcbiAgICAgICAgdmFyIF9jaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgICAgKF9jaGFsa1dpdGhGb3JjZWRDb2xvciA9IGNoYWxrV2l0aEZvcmNlZENvbG9yKSAhPSBudWxsID8gX2NoYWxrV2l0aEZvcmNlZENvbG9yIDogY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSBuZXcgY2hhbGsyLmNvbnN0cnVjdG9yKHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIGxldmVsOiAxXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2hhbGtXaXRoRm9yY2VkQ29sb3I7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hhbGsyO1xuICAgIH1cbiAgICB7XG4gICAgICB7XG4gICAgICAgIGV4cG9ydHMuZ2V0Q2hhbGsgPSAob3B0aW9uczgpID0+IGdldENoYWxrKG9wdGlvbnM4LmZvcmNlQ29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoaWdobGlnaHQoY29kZSwgb3B0aW9uczggPSB7fSkge1xuICAgICAgaWYgKGNvZGUgIT09IFwiXCIgJiYgc2hvdWxkSGlnaGxpZ2h0KG9wdGlvbnM4KSkge1xuICAgICAgICBjb25zdCBkZWZzID0gZ2V0RGVmcyhnZXRDaGFsayhvcHRpb25zOC5mb3JjZUNvbG9yKSk7XG4gICAgICAgIHJldHVybiBoaWdobGlnaHRUb2tlbnMoZGVmcywgY29kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY29kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbGliL2luZGV4LmpzXG52YXIgcmVxdWlyZV9saWIzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL2xpYi9pbmRleC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5jb2RlRnJhbWVDb2x1bW5zID0gY29kZUZyYW1lQ29sdW1uczI7XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG4gICAgdmFyIF9oaWdobGlnaHQgPSByZXF1aXJlX2xpYjIoKTtcbiAgICB2YXIgX2NoYWxrMiA9IHJlcXVpcmVfY2hhbGsoKTtcbiAgICB2YXIgY2hhbGsyID0gX2NoYWxrMjtcbiAgICB2YXIgY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSB2b2lkIDA7XG4gICAgZnVuY3Rpb24gZ2V0Q2hhbGsoZm9yY2VDb2xvcikge1xuICAgICAgaWYgKGZvcmNlQ29sb3IpIHtcbiAgICAgICAgdmFyIF9jaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgICAgKF9jaGFsa1dpdGhGb3JjZWRDb2xvciA9IGNoYWxrV2l0aEZvcmNlZENvbG9yKSAhPSBudWxsID8gX2NoYWxrV2l0aEZvcmNlZENvbG9yIDogY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSBuZXcgY2hhbGsyLmNvbnN0cnVjdG9yKHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIGxldmVsOiAxXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gY2hhbGtXaXRoRm9yY2VkQ29sb3I7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hhbGsyO1xuICAgIH1cbiAgICB2YXIgZGVwcmVjYXRpb25XYXJuaW5nU2hvd24gPSBmYWxzZTtcbiAgICBmdW5jdGlvbiBnZXREZWZzKGNoYWxrMykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZ3V0dGVyOiBjaGFsazMuZ3JleSxcbiAgICAgICAgbWFya2VyOiBjaGFsazMucmVkLmJvbGQsXG4gICAgICAgIG1lc3NhZ2U6IGNoYWxrMy5yZWQuYm9sZFxuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIE5FV0xJTkUgPSAvXFxyXFxufFtcXG5cXHJcXHUyMDI4XFx1MjAyOV0vO1xuICAgIGZ1bmN0aW9uIGdldE1hcmtlckxpbmVzKGxvYywgc291cmNlLCBvcHRzKSB7XG4gICAgICBjb25zdCBzdGFydExvYyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBjb2x1bW46IDAsXG4gICAgICAgIGxpbmU6IC0xXG4gICAgICB9LCBsb2Muc3RhcnQpO1xuICAgICAgY29uc3QgZW5kTG9jID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhcnRMb2MsIGxvYy5lbmQpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBsaW5lc0Fib3ZlID0gMixcbiAgICAgICAgbGluZXNCZWxvdyA9IDNcbiAgICAgIH0gPSBvcHRzIHx8IHt9O1xuICAgICAgY29uc3Qgc3RhcnRMaW5lID0gc3RhcnRMb2MubGluZTtcbiAgICAgIGNvbnN0IHN0YXJ0Q29sdW1uID0gc3RhcnRMb2MuY29sdW1uO1xuICAgICAgY29uc3QgZW5kTGluZSA9IGVuZExvYy5saW5lO1xuICAgICAgY29uc3QgZW5kQ29sdW1uID0gZW5kTG9jLmNvbHVtbjtcbiAgICAgIGxldCBzdGFydCA9IE1hdGgubWF4KHN0YXJ0TGluZSAtIChsaW5lc0Fib3ZlICsgMSksIDApO1xuICAgICAgbGV0IGVuZCA9IE1hdGgubWluKHNvdXJjZS5sZW5ndGgsIGVuZExpbmUgKyBsaW5lc0JlbG93KTtcbiAgICAgIGlmIChzdGFydExpbmUgPT09IC0xKSB7XG4gICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChlbmRMaW5lID09PSAtMSkge1xuICAgICAgICBlbmQgPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgfVxuICAgICAgY29uc3QgbGluZURpZmYgPSBlbmRMaW5lIC0gc3RhcnRMaW5lO1xuICAgICAgY29uc3QgbWFya2VyTGluZXMgPSB7fTtcbiAgICAgIGlmIChsaW5lRGlmZikge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBsaW5lRGlmZjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbGluZU51bWJlciA9IGkgKyBzdGFydExpbmU7XG4gICAgICAgICAgaWYgKCFzdGFydENvbHVtbikge1xuICAgICAgICAgICAgbWFya2VyTGluZXNbbGluZU51bWJlcl0gPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlTGVuZ3RoID0gc291cmNlW2xpbmVOdW1iZXIgLSAxXS5sZW5ndGg7XG4gICAgICAgICAgICBtYXJrZXJMaW5lc1tsaW5lTnVtYmVyXSA9IFtzdGFydENvbHVtbiwgc291cmNlTGVuZ3RoIC0gc3RhcnRDb2x1bW4gKyAxXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IGxpbmVEaWZmKSB7XG4gICAgICAgICAgICBtYXJrZXJMaW5lc1tsaW5lTnVtYmVyXSA9IFswLCBlbmRDb2x1bW5dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VMZW5ndGggPSBzb3VyY2VbbGluZU51bWJlciAtIGldLmxlbmd0aDtcbiAgICAgICAgICAgIG1hcmtlckxpbmVzW2xpbmVOdW1iZXJdID0gWzAsIHNvdXJjZUxlbmd0aF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc3RhcnRDb2x1bW4gPT09IGVuZENvbHVtbikge1xuICAgICAgICAgIGlmIChzdGFydENvbHVtbikge1xuICAgICAgICAgICAgbWFya2VyTGluZXNbc3RhcnRMaW5lXSA9IFtzdGFydENvbHVtbiwgMF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hcmtlckxpbmVzW3N0YXJ0TGluZV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXJrZXJMaW5lc1tzdGFydExpbmVdID0gW3N0YXJ0Q29sdW1uLCBlbmRDb2x1bW4gLSBzdGFydENvbHVtbl07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBlbmQsXG4gICAgICAgIG1hcmtlckxpbmVzXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2RlRnJhbWVDb2x1bW5zMihyYXdMaW5lcywgbG9jLCBvcHRzID0ge30pIHtcbiAgICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gKG9wdHMuaGlnaGxpZ2h0Q29kZSB8fCBvcHRzLmZvcmNlQ29sb3IpICYmICgwLCBfaGlnaGxpZ2h0LnNob3VsZEhpZ2hsaWdodCkob3B0cyk7XG4gICAgICBjb25zdCBjaGFsazMgPSBnZXRDaGFsayhvcHRzLmZvcmNlQ29sb3IpO1xuICAgICAgY29uc3QgZGVmcyA9IGdldERlZnMoY2hhbGszKTtcbiAgICAgIGNvbnN0IG1heWJlSGlnaGxpZ2h0ID0gKGNoYWxrRm4sIHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gaGlnaGxpZ2h0ZWQgPyBjaGFsa0ZuKHN0cmluZykgOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGluZXMgPSByYXdMaW5lcy5zcGxpdChORVdMSU5FKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZCxcbiAgICAgICAgbWFya2VyTGluZXNcbiAgICAgIH0gPSBnZXRNYXJrZXJMaW5lcyhsb2MsIGxpbmVzLCBvcHRzKTtcbiAgICAgIGNvbnN0IGhhc0NvbHVtbnMgPSBsb2Muc3RhcnQgJiYgdHlwZW9mIGxvYy5zdGFydC5jb2x1bW4gPT09IFwibnVtYmVyXCI7XG4gICAgICBjb25zdCBudW1iZXJNYXhXaWR0aCA9IFN0cmluZyhlbmQpLmxlbmd0aDtcbiAgICAgIGNvbnN0IGhpZ2hsaWdodGVkTGluZXMgPSBoaWdobGlnaHRlZCA/ICgwLCBfaGlnaGxpZ2h0LmRlZmF1bHQpKHJhd0xpbmVzLCBvcHRzKSA6IHJhd0xpbmVzO1xuICAgICAgbGV0IGZyYW1lID0gaGlnaGxpZ2h0ZWRMaW5lcy5zcGxpdChORVdMSU5FLCBlbmQpLnNsaWNlKHN0YXJ0LCBlbmQpLm1hcCgobGluZTIsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IHN0YXJ0ICsgMSArIGluZGV4O1xuICAgICAgICBjb25zdCBwYWRkZWROdW1iZXIgPSBgICR7bnVtYmVyfWAuc2xpY2UoLW51bWJlck1heFdpZHRoKTtcbiAgICAgICAgY29uc3QgZ3V0dGVyID0gYCAke3BhZGRlZE51bWJlcn0gfGA7XG4gICAgICAgIGNvbnN0IGhhc01hcmtlciA9IG1hcmtlckxpbmVzW251bWJlcl07XG4gICAgICAgIGNvbnN0IGxhc3RNYXJrZXJMaW5lID0gIW1hcmtlckxpbmVzW251bWJlciArIDFdO1xuICAgICAgICBpZiAoaGFzTWFya2VyKSB7XG4gICAgICAgICAgbGV0IG1hcmtlckxpbmUgPSBcIlwiO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGhhc01hcmtlcikpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlclNwYWNpbmcgPSBsaW5lMi5zbGljZSgwLCBNYXRoLm1heChoYXNNYXJrZXJbMF0gLSAxLCAwKSkucmVwbGFjZSgvW15cXHRdL2csIFwiIFwiKTtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlck9mTWFya2VycyA9IGhhc01hcmtlclsxXSB8fCAxO1xuICAgICAgICAgICAgbWFya2VyTGluZSA9IFtcIlxcbiBcIiwgbWF5YmVIaWdobGlnaHQoZGVmcy5ndXR0ZXIsIGd1dHRlci5yZXBsYWNlKC9cXGQvZywgXCIgXCIpKSwgXCIgXCIsIG1hcmtlclNwYWNpbmcsIG1heWJlSGlnaGxpZ2h0KGRlZnMubWFya2VyLCBcIl5cIikucmVwZWF0KG51bWJlck9mTWFya2VycyldLmpvaW4oXCJcIik7XG4gICAgICAgICAgICBpZiAobGFzdE1hcmtlckxpbmUgJiYgb3B0cy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgIG1hcmtlckxpbmUgKz0gXCIgXCIgKyBtYXliZUhpZ2hsaWdodChkZWZzLm1lc3NhZ2UsIG9wdHMubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbbWF5YmVIaWdobGlnaHQoZGVmcy5tYXJrZXIsIFwiPlwiKSwgbWF5YmVIaWdobGlnaHQoZGVmcy5ndXR0ZXIsIGd1dHRlciksIGxpbmUyLmxlbmd0aCA+IDAgPyBgICR7bGluZTJ9YCA6IFwiXCIsIG1hcmtlckxpbmVdLmpvaW4oXCJcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGAgJHttYXliZUhpZ2hsaWdodChkZWZzLmd1dHRlciwgZ3V0dGVyKX0ke2xpbmUyLmxlbmd0aCA+IDAgPyBgICR7bGluZTJ9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgfSkuam9pbihcIlxcblwiKTtcbiAgICAgIGlmIChvcHRzLm1lc3NhZ2UgJiYgIWhhc0NvbHVtbnMpIHtcbiAgICAgICAgZnJhbWUgPSBgJHtcIiBcIi5yZXBlYXQobnVtYmVyTWF4V2lkdGggKyAxKX0ke29wdHMubWVzc2FnZX1cbiR7ZnJhbWV9YDtcbiAgICAgIH1cbiAgICAgIGlmIChoaWdobGlnaHRlZCkge1xuICAgICAgICByZXR1cm4gY2hhbGszLnJlc2V0KGZyYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmcmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gX2RlZmF1bHQocmF3TGluZXMsIGxpbmVOdW1iZXIsIGNvbE51bWJlciwgb3B0cyA9IHt9KSB7XG4gICAgICBpZiAoIWRlcHJlY2F0aW9uV2FybmluZ1Nob3duKSB7XG4gICAgICAgIGRlcHJlY2F0aW9uV2FybmluZ1Nob3duID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IFwiUGFzc2luZyBsaW5lTnVtYmVyIGFuZCBjb2xOdW1iZXIgaXMgZGVwcmVjYXRlZCB0byBAYmFiZWwvY29kZS1mcmFtZS4gUGxlYXNlIHVzZSBgY29kZUZyYW1lQ29sdW1uc2AuXCI7XG4gICAgICAgIGlmIChwcm9jZXNzLmVtaXRXYXJuaW5nKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhtZXNzYWdlLCBcIkRlcHJlY2F0aW9uV2FybmluZ1wiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkZXByZWNhdGlvbkVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgIGRlcHJlY2F0aW9uRXJyb3IubmFtZSA9IFwiRGVwcmVjYXRpb25XYXJuaW5nXCI7XG4gICAgICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbE51bWJlciA9IE1hdGgubWF4KGNvbE51bWJlciwgMCk7XG4gICAgICBjb25zdCBsb2NhdGlvbiA9IHtcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBjb2x1bW46IGNvbE51bWJlcixcbiAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gY29kZUZyYW1lQ29sdW1uczIocmF3TGluZXMsIGxvY2F0aW9uLCBvcHRzKTtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcC1kZWZlci9pbmRleC5qc1xudmFyIHJlcXVpcmVfcF9kZWZlciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9wLWRlZmVyL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAoKSA9PiB7XG4gICAgICBjb25zdCByZXQgPSB7fTtcbiAgICAgIHJldC5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUyLCByZWplY3QpID0+IHtcbiAgICAgICAgcmV0LnJlc29sdmUgPSByZXNvbHZlMjtcbiAgICAgICAgcmV0LnJlamVjdCA9IHJlamVjdDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL21hcC1hZ2UtY2xlYW5lci9kaXN0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9kaXN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL21hcC1hZ2UtY2xlYW5lci9kaXN0L2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIF9fYXdhaXRlciA9IGV4cG9ydHMgJiYgZXhwb3J0cy5fX2F3YWl0ZXIgfHwgZnVuY3Rpb24odGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uKHJlc29sdmUyLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0LmRvbmUgPyByZXNvbHZlMihyZXN1bHQudmFsdWUpIDogbmV3IFAoZnVuY3Rpb24ocmVzb2x2ZTMpIHtcbiAgICAgICAgICAgIHJlc29sdmUzKHJlc3VsdC52YWx1ZSk7XG4gICAgICAgICAgfSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTtcbiAgICAgICAgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzICYmIGV4cG9ydHMuX19pbXBvcnREZWZhdWx0IHx8IGZ1bmN0aW9uKG1vZCkge1xuICAgICAgcmV0dXJuIG1vZCAmJiBtb2QuX19lc01vZHVsZSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBwX2RlZmVyXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9wX2RlZmVyKCkpO1xuICAgIGZ1bmN0aW9uIG1hcEFnZUNsZWFuZXIyKG1hcCwgcHJvcGVydHkgPSBcIm1heEFnZVwiKSB7XG4gICAgICBsZXQgcHJvY2Vzc2luZ0tleTtcbiAgICAgIGxldCBwcm9jZXNzaW5nVGltZXI7XG4gICAgICBsZXQgcHJvY2Vzc2luZ0RlZmVycmVkO1xuICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3NpbmdLZXkgIT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR1cFRpbWVyID0gKGl0ZW0pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICBwcm9jZXNzaW5nRGVmZXJyZWQgPSBwX2RlZmVyXzEuZGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnN0IGRlbGF5ID0gaXRlbVsxXVtwcm9wZXJ0eV0gLSBEYXRlLm5vdygpO1xuICAgICAgICAgIGlmIChkZWxheSA8PSAwKSB7XG4gICAgICAgICAgICBtYXAuZGVsZXRlKGl0ZW1bMF0pO1xuICAgICAgICAgICAgcHJvY2Vzc2luZ0RlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJvY2Vzc2luZ0tleSA9IGl0ZW1bMF07XG4gICAgICAgICAgcHJvY2Vzc2luZ1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBtYXAuZGVsZXRlKGl0ZW1bMF0pO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3NpbmdEZWZlcnJlZCkge1xuICAgICAgICAgICAgICBwcm9jZXNzaW5nRGVmZXJyZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIGRlbGF5KTtcbiAgICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3NpbmdUaW1lci51bnJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBwcm9jZXNzaW5nVGltZXIudW5yZWYoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3NpbmdEZWZlcnJlZC5wcm9taXNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIG1hcCkge1xuICAgICAgICAgICAgeWllbGQgc2V0dXBUaW1lcihlbnRyeSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChfYSkge1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NpbmdLZXkgPSB2b2lkIDA7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgICAgICBwcm9jZXNzaW5nS2V5ID0gdm9pZCAwO1xuICAgICAgICBpZiAocHJvY2Vzc2luZ1RpbWVyICE9PSB2b2lkIDApIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQocHJvY2Vzc2luZ1RpbWVyKTtcbiAgICAgICAgICBwcm9jZXNzaW5nVGltZXIgPSB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3NpbmdEZWZlcnJlZCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgcHJvY2Vzc2luZ0RlZmVycmVkLnJlamVjdCh2b2lkIDApO1xuICAgICAgICAgIHByb2Nlc3NpbmdEZWZlcnJlZCA9IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsU2V0ID0gbWFwLnNldC5iaW5kKG1hcCk7XG4gICAgICBtYXAuc2V0ID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgICAgICAgIG1hcC5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBvcmlnaW5hbFNldChrZXksIHZhbHVlKTtcbiAgICAgICAgaWYgKHByb2Nlc3NpbmdLZXkgJiYgcHJvY2Vzc2luZ0tleSA9PT0ga2V5KSB7XG4gICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgICAgY2xlYW51cCgpO1xuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gbWFwQWdlQ2xlYW5lcjI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBtYXBBZ2VDbGVhbmVyMjtcbiAgICBtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gbWFwQWdlQ2xlYW5lcjI7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL2RlYnVnLmpzXG52YXIgcmVxdWlyZV9kZWJ1ZyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZW12ZXIvaW50ZXJuYWwvZGVidWcuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICB2YXIgZGVidWcgPSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJvYmplY3RcIiAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5OT0RFX0RFQlVHICYmIC9cXGJzZW12ZXJcXGIvaS50ZXN0KHByb2Nlc3MuZW52Lk5PREVfREVCVUcpID8gKC4uLmFyZ3MpID0+IGNvbnNvbGUuZXJyb3IoXCJTRU1WRVJcIiwgLi4uYXJncykgOiAoKSA9PiB7XG4gICAgfTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGRlYnVnO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9jb25zdGFudHMuanNcbnZhciByZXF1aXJlX2NvbnN0YW50czQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL2NvbnN0YW50cy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciBTRU1WRVJfU1BFQ19WRVJTSU9OID0gXCIyLjAuMFwiO1xuICAgIHZhciBNQVhfTEVOR1RIID0gMjU2O1xuICAgIHZhciBNQVhfU0FGRV9JTlRFR0VSID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICA5MDA3MTk5MjU0NzQwOTkxO1xuICAgIHZhciBNQVhfU0FGRV9DT01QT05FTlRfTEVOR1RIID0gMTY7XG4gICAgdmFyIE1BWF9TQUZFX0JVSUxEX0xFTkdUSCA9IE1BWF9MRU5HVEggLSA2O1xuICAgIHZhciBSRUxFQVNFX1RZUEVTID0gW1xuICAgICAgXCJtYWpvclwiLFxuICAgICAgXCJwcmVtYWpvclwiLFxuICAgICAgXCJtaW5vclwiLFxuICAgICAgXCJwcmVtaW5vclwiLFxuICAgICAgXCJwYXRjaFwiLFxuICAgICAgXCJwcmVwYXRjaFwiLFxuICAgICAgXCJwcmVyZWxlYXNlXCJcbiAgICBdO1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgTUFYX0xFTkdUSCxcbiAgICAgIE1BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEgsXG4gICAgICBNQVhfU0FGRV9CVUlMRF9MRU5HVEgsXG4gICAgICBNQVhfU0FGRV9JTlRFR0VSLFxuICAgICAgUkVMRUFTRV9UWVBFUyxcbiAgICAgIFNFTVZFUl9TUEVDX1ZFUlNJT04sXG4gICAgICBGTEFHX0lOQ0xVREVfUFJFUkVMRUFTRTogMSxcbiAgICAgIEZMQUdfTE9PU0U6IDJcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9yZS5qc1xudmFyIHJlcXVpcmVfcmUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL3JlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIHtcbiAgICAgIE1BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEgsXG4gICAgICBNQVhfU0FGRV9CVUlMRF9MRU5HVEgsXG4gICAgICBNQVhfTEVOR1RIXG4gICAgfSA9IHJlcXVpcmVfY29uc3RhbnRzNCgpO1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfZGVidWcoKTtcbiAgICBleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcbiAgICB2YXIgcmUgPSBleHBvcnRzLnJlID0gW107XG4gICAgdmFyIHNhZmVSZSA9IGV4cG9ydHMuc2FmZVJlID0gW107XG4gICAgdmFyIHNyYyA9IGV4cG9ydHMuc3JjID0gW107XG4gICAgdmFyIHQgPSBleHBvcnRzLnQgPSB7fTtcbiAgICB2YXIgUiA9IDA7XG4gICAgdmFyIExFVFRFUkRBU0hOVU1CRVIgPSBcIlthLXpBLVowLTktXVwiO1xuICAgIHZhciBzYWZlUmVnZXhSZXBsYWNlbWVudHMgPSBbXG4gICAgICBbXCJcXFxcc1wiLCAxXSxcbiAgICAgIFtcIlxcXFxkXCIsIE1BWF9MRU5HVEhdLFxuICAgICAgW0xFVFRFUkRBU0hOVU1CRVIsIE1BWF9TQUZFX0JVSUxEX0xFTkdUSF1cbiAgICBdO1xuICAgIHZhciBtYWtlU2FmZVJlZ2V4ID0gKHZhbHVlKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IFt0b2tlbiwgbWF4XSBvZiBzYWZlUmVnZXhSZXBsYWNlbWVudHMpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdChgJHt0b2tlbn0qYCkuam9pbihgJHt0b2tlbn17MCwke21heH19YCkuc3BsaXQoYCR7dG9rZW59K2ApLmpvaW4oYCR7dG9rZW59ezEsJHttYXh9fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG4gICAgdmFyIGNyZWF0ZVRva2VuID0gKG5hbWUsIHZhbHVlLCBpc0dsb2JhbCkgPT4ge1xuICAgICAgY29uc3Qgc2FmZSA9IG1ha2VTYWZlUmVnZXgodmFsdWUpO1xuICAgICAgY29uc3QgaW5kZXggPSBSKys7XG4gICAgICBkZWJ1ZyhuYW1lLCBpbmRleCwgdmFsdWUpO1xuICAgICAgdFtuYW1lXSA9IGluZGV4O1xuICAgICAgc3JjW2luZGV4XSA9IHZhbHVlO1xuICAgICAgcmVbaW5kZXhdID0gbmV3IFJlZ0V4cCh2YWx1ZSwgaXNHbG9iYWwgPyBcImdcIiA6IHZvaWQgMCk7XG4gICAgICBzYWZlUmVbaW5kZXhdID0gbmV3IFJlZ0V4cChzYWZlLCBpc0dsb2JhbCA/IFwiZ1wiIDogdm9pZCAwKTtcbiAgICB9O1xuICAgIGNyZWF0ZVRva2VuKFwiTlVNRVJJQ0lERU5USUZJRVJcIiwgXCIwfFsxLTldXFxcXGQqXCIpO1xuICAgIGNyZWF0ZVRva2VuKFwiTlVNRVJJQ0lERU5USUZJRVJMT09TRVwiLCBcIlxcXFxkK1wiKTtcbiAgICBjcmVhdGVUb2tlbihcIk5PTk5VTUVSSUNJREVOVElGSUVSXCIsIGBcXFxcZCpbYS16QS1aLV0ke0xFVFRFUkRBU0hOVU1CRVJ9KmApO1xuICAgIGNyZWF0ZVRva2VuKFwiTUFJTlZFUlNJT05cIiwgYCgke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSXX0pXFxcXC4oJHtzcmNbdC5OVU1FUklDSURFTlRJRklFUl19KVxcXFwuKCR7c3JjW3QuTlVNRVJJQ0lERU5USUZJRVJdfSlgKTtcbiAgICBjcmVhdGVUb2tlbihcIk1BSU5WRVJTSU9OTE9PU0VcIiwgYCgke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSTE9PU0VdfSlcXFxcLigke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSTE9PU0VdfSlcXFxcLigke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSTE9PU0VdfSlgKTtcbiAgICBjcmVhdGVUb2tlbihcIlBSRVJFTEVBU0VJREVOVElGSUVSXCIsIGAoPzoke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSXX18JHtzcmNbdC5OT05OVU1FUklDSURFTlRJRklFUl19KWApO1xuICAgIGNyZWF0ZVRva2VuKFwiUFJFUkVMRUFTRUlERU5USUZJRVJMT09TRVwiLCBgKD86JHtzcmNbdC5OVU1FUklDSURFTlRJRklFUkxPT1NFXX18JHtzcmNbdC5OT05OVU1FUklDSURFTlRJRklFUl19KWApO1xuICAgIGNyZWF0ZVRva2VuKFwiUFJFUkVMRUFTRVwiLCBgKD86LSgke3NyY1t0LlBSRVJFTEVBU0VJREVOVElGSUVSXX0oPzpcXFxcLiR7c3JjW3QuUFJFUkVMRUFTRUlERU5USUZJRVJdfSkqKSlgKTtcbiAgICBjcmVhdGVUb2tlbihcIlBSRVJFTEVBU0VMT09TRVwiLCBgKD86LT8oJHtzcmNbdC5QUkVSRUxFQVNFSURFTlRJRklFUkxPT1NFXX0oPzpcXFxcLiR7c3JjW3QuUFJFUkVMRUFTRUlERU5USUZJRVJMT09TRV19KSopKWApO1xuICAgIGNyZWF0ZVRva2VuKFwiQlVJTERJREVOVElGSUVSXCIsIGAke0xFVFRFUkRBU0hOVU1CRVJ9K2ApO1xuICAgIGNyZWF0ZVRva2VuKFwiQlVJTERcIiwgYCg/OlxcXFwrKCR7c3JjW3QuQlVJTERJREVOVElGSUVSXX0oPzpcXFxcLiR7c3JjW3QuQlVJTERJREVOVElGSUVSXX0pKikpYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJGVUxMUExBSU5cIiwgYHY/JHtzcmNbdC5NQUlOVkVSU0lPTl19JHtzcmNbdC5QUkVSRUxFQVNFXX0/JHtzcmNbdC5CVUlMRF19P2ApO1xuICAgIGNyZWF0ZVRva2VuKFwiRlVMTFwiLCBgXiR7c3JjW3QuRlVMTFBMQUlOXX0kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJMT09TRVBMQUlOXCIsIGBbdj1cXFxcc10qJHtzcmNbdC5NQUlOVkVSU0lPTkxPT1NFXX0ke3NyY1t0LlBSRVJFTEVBU0VMT09TRV19PyR7c3JjW3QuQlVJTERdfT9gKTtcbiAgICBjcmVhdGVUb2tlbihcIkxPT1NFXCIsIGBeJHtzcmNbdC5MT09TRVBMQUlOXX0kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJHVExUXCIsIFwiKCg/Ojx8Pik/PT8pXCIpO1xuICAgIGNyZWF0ZVRva2VuKFwiWFJBTkdFSURFTlRJRklFUkxPT1NFXCIsIGAke3NyY1t0Lk5VTUVSSUNJREVOVElGSUVSTE9PU0VdfXx4fFh8XFxcXCpgKTtcbiAgICBjcmVhdGVUb2tlbihcIlhSQU5HRUlERU5USUZJRVJcIiwgYCR7c3JjW3QuTlVNRVJJQ0lERU5USUZJRVJdfXx4fFh8XFxcXCpgKTtcbiAgICBjcmVhdGVUb2tlbihcIlhSQU5HRVBMQUlOXCIsIGBbdj1cXFxcc10qKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUl19KSg/OlxcXFwuKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUl19KSg/OlxcXFwuKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUl19KSg/OiR7c3JjW3QuUFJFUkVMRUFTRV19KT8ke3NyY1t0LkJVSUxEXX0/KT8pP2ApO1xuICAgIGNyZWF0ZVRva2VuKFwiWFJBTkdFUExBSU5MT09TRVwiLCBgW3Y9XFxcXHNdKigke3NyY1t0LlhSQU5HRUlERU5USUZJRVJMT09TRV19KSg/OlxcXFwuKCR7c3JjW3QuWFJBTkdFSURFTlRJRklFUkxPT1NFXX0pKD86XFxcXC4oJHtzcmNbdC5YUkFOR0VJREVOVElGSUVSTE9PU0VdfSkoPzoke3NyY1t0LlBSRVJFTEVBU0VMT09TRV19KT8ke3NyY1t0LkJVSUxEXX0/KT8pP2ApO1xuICAgIGNyZWF0ZVRva2VuKFwiWFJBTkdFXCIsIGBeJHtzcmNbdC5HVExUXX1cXFxccyoke3NyY1t0LlhSQU5HRVBMQUlOXX0kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJYUkFOR0VMT09TRVwiLCBgXiR7c3JjW3QuR1RMVF19XFxcXHMqJHtzcmNbdC5YUkFOR0VQTEFJTkxPT1NFXX0kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJDT0VSQ0VcIiwgYCR7XCIoXnxbXlxcXFxkXSkoXFxcXGR7MSxcIn0ke01BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEh9fSkoPzpcXFxcLihcXFxcZHsxLCR7TUFYX1NBRkVfQ09NUE9ORU5UX0xFTkdUSH19KSk/KD86XFxcXC4oXFxcXGR7MSwke01BWF9TQUZFX0NPTVBPTkVOVF9MRU5HVEh9fSkpPyg/OiR8W15cXFxcZF0pYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJDT0VSQ0VSVExcIiwgc3JjW3QuQ09FUkNFXSwgdHJ1ZSk7XG4gICAgY3JlYXRlVG9rZW4oXCJMT05FVElMREVcIiwgXCIoPzp+Pj8pXCIpO1xuICAgIGNyZWF0ZVRva2VuKFwiVElMREVUUklNXCIsIGAoXFxcXHMqKSR7c3JjW3QuTE9ORVRJTERFXX1cXFxccytgLCB0cnVlKTtcbiAgICBleHBvcnRzLnRpbGRlVHJpbVJlcGxhY2UgPSBcIiQxflwiO1xuICAgIGNyZWF0ZVRva2VuKFwiVElMREVcIiwgYF4ke3NyY1t0LkxPTkVUSUxERV19JHtzcmNbdC5YUkFOR0VQTEFJTl19JGApO1xuICAgIGNyZWF0ZVRva2VuKFwiVElMREVMT09TRVwiLCBgXiR7c3JjW3QuTE9ORVRJTERFXX0ke3NyY1t0LlhSQU5HRVBMQUlOTE9PU0VdfSRgKTtcbiAgICBjcmVhdGVUb2tlbihcIkxPTkVDQVJFVFwiLCBcIig/OlxcXFxeKVwiKTtcbiAgICBjcmVhdGVUb2tlbihcIkNBUkVUVFJJTVwiLCBgKFxcXFxzKikke3NyY1t0LkxPTkVDQVJFVF19XFxcXHMrYCwgdHJ1ZSk7XG4gICAgZXhwb3J0cy5jYXJldFRyaW1SZXBsYWNlID0gXCIkMV5cIjtcbiAgICBjcmVhdGVUb2tlbihcIkNBUkVUXCIsIGBeJHtzcmNbdC5MT05FQ0FSRVRdfSR7c3JjW3QuWFJBTkdFUExBSU5dfSRgKTtcbiAgICBjcmVhdGVUb2tlbihcIkNBUkVUTE9PU0VcIiwgYF4ke3NyY1t0LkxPTkVDQVJFVF19JHtzcmNbdC5YUkFOR0VQTEFJTkxPT1NFXX0kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJDT01QQVJBVE9STE9PU0VcIiwgYF4ke3NyY1t0LkdUTFRdfVxcXFxzKigke3NyY1t0LkxPT1NFUExBSU5dfSkkfF4kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJDT01QQVJBVE9SXCIsIGBeJHtzcmNbdC5HVExUXX1cXFxccyooJHtzcmNbdC5GVUxMUExBSU5dfSkkfF4kYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJDT01QQVJBVE9SVFJJTVwiLCBgKFxcXFxzKikke3NyY1t0LkdUTFRdfVxcXFxzKigke3NyY1t0LkxPT1NFUExBSU5dfXwke3NyY1t0LlhSQU5HRVBMQUlOXX0pYCwgdHJ1ZSk7XG4gICAgZXhwb3J0cy5jb21wYXJhdG9yVHJpbVJlcGxhY2UgPSBcIiQxJDIkM1wiO1xuICAgIGNyZWF0ZVRva2VuKFwiSFlQSEVOUkFOR0VcIiwgYF5cXFxccyooJHtzcmNbdC5YUkFOR0VQTEFJTl19KVxcXFxzKy1cXFxccysoJHtzcmNbdC5YUkFOR0VQTEFJTl19KVxcXFxzKiRgKTtcbiAgICBjcmVhdGVUb2tlbihcIkhZUEhFTlJBTkdFTE9PU0VcIiwgYF5cXFxccyooJHtzcmNbdC5YUkFOR0VQTEFJTkxPT1NFXX0pXFxcXHMrLVxcXFxzKygke3NyY1t0LlhSQU5HRVBMQUlOTE9PU0VdfSlcXFxccyokYCk7XG4gICAgY3JlYXRlVG9rZW4oXCJTVEFSXCIsIFwiKDx8Pik/PT9cXFxccypcXFxcKlwiKTtcbiAgICBjcmVhdGVUb2tlbihcIkdURTBcIiwgXCJeXFxcXHMqPj1cXFxccyowXFxcXC4wXFxcXC4wXFxcXHMqJFwiKTtcbiAgICBjcmVhdGVUb2tlbihcIkdURTBQUkVcIiwgXCJeXFxcXHMqPj1cXFxccyowXFxcXC4wXFxcXC4wLTBcXFxccyokXCIpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9wYXJzZS1vcHRpb25zLmpzXG52YXIgcmVxdWlyZV9wYXJzZV9vcHRpb25zID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9wYXJzZS1vcHRpb25zLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIGxvb3NlT3B0aW9uID0gT2JqZWN0LmZyZWV6ZSh7IGxvb3NlOiB0cnVlIH0pO1xuICAgIHZhciBlbXB0eU9wdHMgPSBPYmplY3QuZnJlZXplKHt9KTtcbiAgICB2YXIgcGFyc2VPcHRpb25zID0gKG9wdGlvbnM4KSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnM4KSB7XG4gICAgICAgIHJldHVybiBlbXB0eU9wdHM7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnM4ICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBsb29zZU9wdGlvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb25zODtcbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gcGFyc2VPcHRpb25zO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9pbnRlcm5hbC9pZGVudGlmaWVycy5qc1xudmFyIHJlcXVpcmVfaWRlbnRpZmllcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VtdmVyL2ludGVybmFsL2lkZW50aWZpZXJzLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIG51bWVyaWMgPSAvXlswLTldKyQvO1xuICAgIHZhciBjb21wYXJlSWRlbnRpZmllcnMgPSAoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYW51bSA9IG51bWVyaWMudGVzdChhKTtcbiAgICAgIGNvbnN0IGJudW0gPSBudW1lcmljLnRlc3QoYik7XG4gICAgICBpZiAoYW51bSAmJiBibnVtKSB7XG4gICAgICAgIGEgPSArYTtcbiAgICAgICAgYiA9ICtiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGEgPT09IGIgPyAwIDogYW51bSAmJiAhYm51bSA/IC0xIDogYm51bSAmJiAhYW51bSA/IDEgOiBhIDwgYiA/IC0xIDogMTtcbiAgICB9O1xuICAgIHZhciByY29tcGFyZUlkZW50aWZpZXJzID0gKGEsIGIpID0+IGNvbXBhcmVJZGVudGlmaWVycyhiLCBhKTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAgIGNvbXBhcmVJZGVudGlmaWVycyxcbiAgICAgIHJjb21wYXJlSWRlbnRpZmllcnNcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9jbGFzc2VzL3NlbXZlci5qc1xudmFyIHJlcXVpcmVfc2VtdmVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3NlbXZlci9jbGFzc2VzL3NlbXZlci5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciBkZWJ1ZyA9IHJlcXVpcmVfZGVidWcoKTtcbiAgICB2YXIgeyBNQVhfTEVOR1RILCBNQVhfU0FGRV9JTlRFR0VSIH0gPSByZXF1aXJlX2NvbnN0YW50czQoKTtcbiAgICB2YXIgeyBzYWZlUmU6IHJlLCB0IH0gPSByZXF1aXJlX3JlKCk7XG4gICAgdmFyIHBhcnNlT3B0aW9ucyA9IHJlcXVpcmVfcGFyc2Vfb3B0aW9ucygpO1xuICAgIHZhciB7IGNvbXBhcmVJZGVudGlmaWVycyB9ID0gcmVxdWlyZV9pZGVudGlmaWVycygpO1xuICAgIHZhciBTZW1WZXIgPSBjbGFzcyBfU2VtVmVyIHtcbiAgICAgIGNvbnN0cnVjdG9yKHZlcnNpb24sIG9wdGlvbnM4KSB7XG4gICAgICAgIG9wdGlvbnM4ID0gcGFyc2VPcHRpb25zKG9wdGlvbnM4KTtcbiAgICAgICAgaWYgKHZlcnNpb24gaW5zdGFuY2VvZiBfU2VtVmVyKSB7XG4gICAgICAgICAgaWYgKHZlcnNpb24ubG9vc2UgPT09ICEhb3B0aW9uczgubG9vc2UgJiYgdmVyc2lvbi5pbmNsdWRlUHJlcmVsZWFzZSA9PT0gISFvcHRpb25zOC5pbmNsdWRlUHJlcmVsZWFzZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnZlcnNpb247XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ZXJzaW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgSW52YWxpZCB2ZXJzaW9uLiBNdXN0IGJlIGEgc3RyaW5nLiBHb3QgdHlwZSBcIiR7dHlwZW9mIHZlcnNpb259XCIuYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZlcnNpb24ubGVuZ3RoID4gTUFYX0xFTkdUSCkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICBgdmVyc2lvbiBpcyBsb25nZXIgdGhhbiAke01BWF9MRU5HVEh9IGNoYXJhY3RlcnNgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBkZWJ1ZyhcIlNlbVZlclwiLCB2ZXJzaW9uLCBvcHRpb25zOCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM4O1xuICAgICAgICB0aGlzLmxvb3NlID0gISFvcHRpb25zOC5sb29zZTtcbiAgICAgICAgdGhpcy5pbmNsdWRlUHJlcmVsZWFzZSA9ICEhb3B0aW9uczguaW5jbHVkZVByZXJlbGVhc2U7XG4gICAgICAgIGNvbnN0IG0gPSB2ZXJzaW9uLnRyaW0oKS5tYXRjaChvcHRpb25zOC5sb29zZSA/IHJlW3QuTE9PU0VdIDogcmVbdC5GVUxMXSk7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgVmVyc2lvbjogJHt2ZXJzaW9ufWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmF3ID0gdmVyc2lvbjtcbiAgICAgICAgdGhpcy5tYWpvciA9ICttWzFdO1xuICAgICAgICB0aGlzLm1pbm9yID0gK21bMl07XG4gICAgICAgIHRoaXMucGF0Y2ggPSArbVszXTtcbiAgICAgICAgaWYgKHRoaXMubWFqb3IgPiBNQVhfU0FGRV9JTlRFR0VSIHx8IHRoaXMubWFqb3IgPCAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgbWFqb3IgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW5vciA+IE1BWF9TQUZFX0lOVEVHRVIgfHwgdGhpcy5taW5vciA8IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBtaW5vciB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhdGNoID4gTUFYX1NBRkVfSU5URUdFUiB8fCB0aGlzLnBhdGNoIDwgMCkge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIHBhdGNoIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtWzRdKSB7XG4gICAgICAgICAgdGhpcy5wcmVyZWxlYXNlID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wcmVyZWxlYXNlID0gbVs0XS5zcGxpdChcIi5cIikubWFwKChpZCkgPT4ge1xuICAgICAgICAgICAgaWYgKC9eWzAtOV0rJC8udGVzdChpZCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtID0gK2lkO1xuICAgICAgICAgICAgICBpZiAobnVtID49IDAgJiYgbnVtIDwgTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpZDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ1aWxkID0gbVs1XSA/IG1bNV0uc3BsaXQoXCIuXCIpIDogW107XG4gICAgICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgICB9XG4gICAgICBmb3JtYXQoKSB7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IGAke3RoaXMubWFqb3J9LiR7dGhpcy5taW5vcn0uJHt0aGlzLnBhdGNofWA7XG4gICAgICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy52ZXJzaW9uICs9IGAtJHt0aGlzLnByZXJlbGVhc2Uuam9pbihcIi5cIil9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52ZXJzaW9uO1xuICAgICAgfVxuICAgICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZlcnNpb247XG4gICAgICB9XG4gICAgICBjb21wYXJlKG90aGVyKSB7XG4gICAgICAgIGRlYnVnKFwiU2VtVmVyLmNvbXBhcmVcIiwgdGhpcy52ZXJzaW9uLCB0aGlzLm9wdGlvbnMsIG90aGVyKTtcbiAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBfU2VtVmVyKSkge1xuICAgICAgICAgIGlmICh0eXBlb2Ygb3RoZXIgPT09IFwic3RyaW5nXCIgJiYgb3RoZXIgPT09IHRoaXMudmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIG90aGVyID0gbmV3IF9TZW1WZXIob3RoZXIsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG90aGVyLnZlcnNpb24gPT09IHRoaXMudmVyc2lvbikge1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVNYWluKG90aGVyKSB8fCB0aGlzLmNvbXBhcmVQcmUob3RoZXIpO1xuICAgICAgfVxuICAgICAgY29tcGFyZU1haW4ob3RoZXIpIHtcbiAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBfU2VtVmVyKSkge1xuICAgICAgICAgIG90aGVyID0gbmV3IF9TZW1WZXIob3RoZXIsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbXBhcmVJZGVudGlmaWVycyh0aGlzLm1ham9yLCBvdGhlci5tYWpvcikgfHwgY29tcGFyZUlkZW50aWZpZXJzKHRoaXMubWlub3IsIG90aGVyLm1pbm9yKSB8fCBjb21wYXJlSWRlbnRpZmllcnModGhpcy5wYXRjaCwgb3RoZXIucGF0Y2gpO1xuICAgICAgfVxuICAgICAgY29tcGFyZVByZShvdGhlcikge1xuICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIF9TZW1WZXIpKSB7XG4gICAgICAgICAgb3RoZXIgPSBuZXcgX1NlbVZlcihvdGhlciwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcmVyZWxlYXNlLmxlbmd0aCAmJiAhb3RoZXIucHJlcmVsZWFzZS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMucHJlcmVsZWFzZS5sZW5ndGggJiYgb3RoZXIucHJlcmVsZWFzZS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCAmJiAhb3RoZXIucHJlcmVsZWFzZS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjb25zdCBhID0gdGhpcy5wcmVyZWxlYXNlW2ldO1xuICAgICAgICAgIGNvbnN0IGIgPSBvdGhlci5wcmVyZWxlYXNlW2ldO1xuICAgICAgICAgIGRlYnVnKFwicHJlcmVsZWFzZSBjb21wYXJlXCIsIGksIGEsIGIpO1xuICAgICAgICAgIGlmIChhID09PSB2b2lkIDAgJiYgYiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKGIgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgfSBlbHNlIGlmIChhID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGEgPT09IGIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gY29tcGFyZUlkZW50aWZpZXJzKGEsIGIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSB3aGlsZSAoKytpKTtcbiAgICAgIH1cbiAgICAgIGNvbXBhcmVCdWlsZChvdGhlcikge1xuICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIF9TZW1WZXIpKSB7XG4gICAgICAgICAgb3RoZXIgPSBuZXcgX1NlbVZlcihvdGhlciwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjb25zdCBhID0gdGhpcy5idWlsZFtpXTtcbiAgICAgICAgICBjb25zdCBiID0gb3RoZXIuYnVpbGRbaV07XG4gICAgICAgICAgZGVidWcoXCJwcmVyZWxlYXNlIGNvbXBhcmVcIiwgaSwgYSwgYik7XG4gICAgICAgICAgaWYgKGEgPT09IHZvaWQgMCAmJiBiID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYiA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGEgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYSA9PT0gYikge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21wYXJlSWRlbnRpZmllcnMoYSwgYik7XG4gICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlICgrK2kpO1xuICAgICAgfVxuICAgICAgLy8gcHJlbWlub3Igd2lsbCBidW1wIHRoZSB2ZXJzaW9uIHVwIHRvIHRoZSBuZXh0IG1pbm9yIHJlbGVhc2UsIGFuZCBpbW1lZGlhdGVseVxuICAgICAgLy8gZG93biB0byBwcmUtcmVsZWFzZS4gcHJlbWFqb3IgYW5kIHByZXBhdGNoIHdvcmsgdGhlIHNhbWUgd2F5LlxuICAgICAgaW5jKHJlbGVhc2UsIGlkZW50aWZpZXIsIGlkZW50aWZpZXJCYXNlKSB7XG4gICAgICAgIHN3aXRjaCAocmVsZWFzZSkge1xuICAgICAgICAgIGNhc2UgXCJwcmVtYWpvclwiOlxuICAgICAgICAgICAgdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB0aGlzLnBhdGNoID0gMDtcbiAgICAgICAgICAgIHRoaXMubWlub3IgPSAwO1xuICAgICAgICAgICAgdGhpcy5tYWpvcisrO1xuICAgICAgICAgICAgdGhpcy5pbmMoXCJwcmVcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInByZW1pbm9yXCI6XG4gICAgICAgICAgICB0aGlzLnByZXJlbGVhc2UubGVuZ3RoID0gMDtcbiAgICAgICAgICAgIHRoaXMucGF0Y2ggPSAwO1xuICAgICAgICAgICAgdGhpcy5taW5vcisrO1xuICAgICAgICAgICAgdGhpcy5pbmMoXCJwcmVcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInByZXBhdGNoXCI6XG4gICAgICAgICAgICB0aGlzLnByZXJlbGVhc2UubGVuZ3RoID0gMDtcbiAgICAgICAgICAgIHRoaXMuaW5jKFwicGF0Y2hcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgdGhpcy5pbmMoXCJwcmVcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInByZXJlbGVhc2VcIjpcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW5jKFwicGF0Y2hcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbmMoXCJwcmVcIiwgaWRlbnRpZmllciwgaWRlbnRpZmllckJhc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm1ham9yXCI6XG4gICAgICAgICAgICBpZiAodGhpcy5taW5vciAhPT0gMCB8fCB0aGlzLnBhdGNoICE9PSAwIHx8IHRoaXMucHJlcmVsZWFzZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5tYWpvcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5taW5vciA9IDA7XG4gICAgICAgICAgICB0aGlzLnBhdGNoID0gMDtcbiAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IFtdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIm1pbm9yXCI6XG4gICAgICAgICAgICBpZiAodGhpcy5wYXRjaCAhPT0gMCB8fCB0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMubWlub3IrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGF0Y2ggPSAwO1xuICAgICAgICAgICAgdGhpcy5wcmVyZWxlYXNlID0gW107XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwicGF0Y2hcIjpcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucGF0Y2grKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IFtdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInByZVwiOiB7XG4gICAgICAgICAgICBjb25zdCBiYXNlID0gTnVtYmVyKGlkZW50aWZpZXJCYXNlKSA/IDEgOiAwO1xuICAgICAgICAgICAgaWYgKCFpZGVudGlmaWVyICYmIGlkZW50aWZpZXJCYXNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGluY3JlbWVudCBhcmd1bWVudDogaWRlbnRpZmllciBpcyBlbXB0eVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnByZXJlbGVhc2UubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IFtiYXNlXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxldCBpID0gdGhpcy5wcmVyZWxlYXNlLmxlbmd0aDtcbiAgICAgICAgICAgICAgd2hpbGUgKC0taSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByZXJlbGVhc2VbaV0gPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZVtpXSsrO1xuICAgICAgICAgICAgICAgICAgaSA9IC0yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoaWRlbnRpZmllciA9PT0gdGhpcy5wcmVyZWxlYXNlLmpvaW4oXCIuXCIpICYmIGlkZW50aWZpZXJCYXNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBpbmNyZW1lbnQgYXJndW1lbnQ6IGlkZW50aWZpZXIgYWxyZWFkeSBleGlzdHNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZS5wdXNoKGJhc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgICAgICAgICBsZXQgcHJlcmVsZWFzZSA9IFtpZGVudGlmaWVyLCBiYXNlXTtcbiAgICAgICAgICAgICAgaWYgKGlkZW50aWZpZXJCYXNlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHByZXJlbGVhc2UgPSBbaWRlbnRpZmllcl07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGNvbXBhcmVJZGVudGlmaWVycyh0aGlzLnByZXJlbGVhc2VbMF0sIGlkZW50aWZpZXIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKHRoaXMucHJlcmVsZWFzZVsxXSkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IHByZXJlbGVhc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJlcmVsZWFzZSA9IHByZXJlbGVhc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGluY3JlbWVudCBhcmd1bWVudDogJHtyZWxlYXNlfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmF3ID0gdGhpcy5mb3JtYXQoKTtcbiAgICAgICAgaWYgKHRoaXMuYnVpbGQubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yYXcgKz0gYCske3RoaXMuYnVpbGQuam9pbihcIi5cIil9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gU2VtVmVyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvY29tcGFyZS5qc1xudmFyIHJlcXVpcmVfY29tcGFyZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zZW12ZXIvZnVuY3Rpb25zL2NvbXBhcmUuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICB2YXIgU2VtVmVyID0gcmVxdWlyZV9zZW12ZXIoKTtcbiAgICB2YXIgY29tcGFyZSA9IChhLCBiLCBsb29zZSkgPT4gbmV3IFNlbVZlcihhLCBsb29zZSkuY29tcGFyZShuZXcgU2VtVmVyKGIsIGxvb3NlKSk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBjb21wYXJlO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NlbXZlci9mdW5jdGlvbnMvZ3RlLmpzXG52YXIgcmVxdWlyZV9ndGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvc2VtdmVyL2Z1bmN0aW9ucy9ndGUuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICB2YXIgY29tcGFyZSA9IHJlcXVpcmVfY29tcGFyZSgpO1xuICAgIHZhciBndGUgPSAoYSwgYiwgbG9vc2UpID0+IGNvbXBhcmUoYSwgYiwgbG9vc2UpID49IDA7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBndGU7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcHNldWRvbWFwL3BzZXVkb21hcC5qc1xudmFyIHJlcXVpcmVfcHNldWRvbWFwID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BzZXVkb21hcC9wc2V1ZG9tYXAuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICB2YXIgaGFzT3duUHJvcGVydHkyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IFBzZXVkb01hcDtcbiAgICBmdW5jdGlvbiBQc2V1ZG9NYXAoc2V0Mikge1xuICAgICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFBzZXVkb01hcCkpXG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDb25zdHJ1Y3RvciBQc2V1ZG9NYXAgcmVxdWlyZXMgJ25ldydcIik7XG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICBpZiAoc2V0Mikge1xuICAgICAgICBpZiAoc2V0MiBpbnN0YW5jZW9mIFBzZXVkb01hcCB8fCB0eXBlb2YgTWFwID09PSBcImZ1bmN0aW9uXCIgJiYgc2V0MiBpbnN0YW5jZW9mIE1hcClcbiAgICAgICAgICBzZXQyLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfSwgdGhpcyk7XG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc2V0MikpXG4gICAgICAgICAgc2V0Mi5mb3JFYWNoKGZ1bmN0aW9uKGt2KSB7XG4gICAgICAgICAgICB0aGlzLnNldChrdlswXSwga3ZbMV0pO1xuICAgICAgICAgIH0sIHRoaXMpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImludmFsaWQgYXJndW1lbnRcIik7XG4gICAgICB9XG4gICAgfVxuICAgIFBzZXVkb01hcC5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGZuLCB0aGlzcCkge1xuICAgICAgdGhpc3AgPSB0aGlzcCB8fCB0aGlzO1xuICAgICAgT2JqZWN0LmtleXModGhpcy5fZGF0YSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIGlmIChrICE9PSBcInNpemVcIilcbiAgICAgICAgICBmbi5jYWxsKHRoaXNwLCB0aGlzLl9kYXRhW2tdLnZhbHVlLCB0aGlzLl9kYXRhW2tdLmtleSk7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9O1xuICAgIFBzZXVkb01hcC5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24oaykge1xuICAgICAgcmV0dXJuICEhZmluZCh0aGlzLl9kYXRhLCBrKTtcbiAgICB9O1xuICAgIFBzZXVkb01hcC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaykge1xuICAgICAgdmFyIHJlcyA9IGZpbmQodGhpcy5fZGF0YSwgayk7XG4gICAgICByZXR1cm4gcmVzICYmIHJlcy52YWx1ZTtcbiAgICB9O1xuICAgIFBzZXVkb01hcC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oaywgdikge1xuICAgICAgc2V0KHRoaXMuX2RhdGEsIGssIHYpO1xuICAgIH07XG4gICAgUHNldWRvTWFwLnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbihrKSB7XG4gICAgICB2YXIgcmVzID0gZmluZCh0aGlzLl9kYXRhLCBrKTtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX2RhdGFbcmVzLl9pbmRleF07XG4gICAgICAgIHRoaXMuX2RhdGEuc2l6ZS0tO1xuICAgICAgfVxuICAgIH07XG4gICAgUHNldWRvTWFwLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGRhdGEgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIGRhdGEuc2l6ZSA9IDA7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJfZGF0YVwiLCB7XG4gICAgICAgIHZhbHVlOiBkYXRhLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBzZXVkb01hcC5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YS5zaXplO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24obikge1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBQc2V1ZG9NYXAucHJvdG90eXBlLnZhbHVlcyA9IFBzZXVkb01hcC5wcm90b3R5cGUua2V5cyA9IFBzZXVkb01hcC5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaXRlcmF0b3JzIGFyZSBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyB2ZXJzaW9uXCIpO1xuICAgIH07XG4gICAgZnVuY3Rpb24gc2FtZShhLCBiKSB7XG4gICAgICByZXR1cm4gYSA9PT0gYiB8fCBhICE9PSBhICYmIGIgIT09IGI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIEVudHJ5KGssIHYsIGkpIHtcbiAgICAgIHRoaXMua2V5ID0gaztcbiAgICAgIHRoaXMudmFsdWUgPSB2O1xuICAgICAgdGhpcy5faW5kZXggPSBpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmaW5kKGRhdGEsIGspIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBzID0gXCJfXCIgKyBrLCBrZXkgPSBzOyBoYXNPd25Qcm9wZXJ0eTIuY2FsbChkYXRhLCBrZXkpOyBrZXkgPSBzICsgaSsrKSB7XG4gICAgICAgIGlmIChzYW1lKGRhdGFba2V5XS5rZXksIGspKVxuICAgICAgICAgIHJldHVybiBkYXRhW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldChkYXRhLCBrLCB2KSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgcyA9IFwiX1wiICsgaywga2V5ID0gczsgaGFzT3duUHJvcGVydHkyLmNhbGwoZGF0YSwga2V5KTsga2V5ID0gcyArIGkrKykge1xuICAgICAgICBpZiAoc2FtZShkYXRhW2tleV0ua2V5LCBrKSkge1xuICAgICAgICAgIGRhdGFba2V5XS52YWx1ZSA9IHY7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkYXRhLnNpemUrKztcbiAgICAgIGRhdGFba2V5XSA9IG5ldyBFbnRyeShrLCB2LCBrZXkpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wc2V1ZG9tYXAvbWFwLmpzXG52YXIgcmVxdWlyZV9tYXAgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcHNldWRvbWFwL21hcC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ucG1fcGFja2FnZV9uYW1lID09PSBcInBzZXVkb21hcFwiICYmIHByb2Nlc3MuZW52Lm5wbV9saWZlY3ljbGVfc2NyaXB0ID09PSBcInRlc3RcIilcbiAgICAgIHByb2Nlc3MuZW52LlRFU1RfUFNFVURPTUFQID0gXCJ0cnVlXCI7XG4gICAgaWYgKHR5cGVvZiBNYXAgPT09IFwiZnVuY3Rpb25cIiAmJiAhcHJvY2Vzcy5lbnYuVEVTVF9QU0VVRE9NQVApIHtcbiAgICAgIG1vZHVsZS5leHBvcnRzID0gTWFwO1xuICAgIH0gZWxzZSB7XG4gICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVfcHNldWRvbWFwKCk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMveWFsbGlzdC95YWxsaXN0LmpzXG52YXIgcmVxdWlyZV95YWxsaXN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMveWFsbGlzdC95YWxsaXN0LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBZYWxsaXN0O1xuICAgIFlhbGxpc3QuTm9kZSA9IE5vZGU7XG4gICAgWWFsbGlzdC5jcmVhdGUgPSBZYWxsaXN0O1xuICAgIGZ1bmN0aW9uIFlhbGxpc3QobGlzdCkge1xuICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgaWYgKCEoc2VsZiBpbnN0YW5jZW9mIFlhbGxpc3QpKSB7XG4gICAgICAgIHNlbGYgPSBuZXcgWWFsbGlzdCgpO1xuICAgICAgfVxuICAgICAgc2VsZi50YWlsID0gbnVsbDtcbiAgICAgIHNlbGYuaGVhZCA9IG51bGw7XG4gICAgICBzZWxmLmxlbmd0aCA9IDA7XG4gICAgICBpZiAobGlzdCAmJiB0eXBlb2YgbGlzdC5mb3JFYWNoID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICBzZWxmLnB1c2goaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBzZWxmLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHNlbGY7XG4gICAgfVxuICAgIFlhbGxpc3QucHJvdG90eXBlLnJlbW92ZU5vZGUgPSBmdW5jdGlvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5saXN0ICE9PSB0aGlzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbW92aW5nIG5vZGUgd2hpY2ggZG9lcyBub3QgYmVsb25nIHRvIHRoaXMgbGlzdFwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXh0ID0gbm9kZS5uZXh0O1xuICAgICAgdmFyIHByZXYgPSBub2RlLnByZXY7XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBuZXh0LnByZXYgPSBwcmV2O1xuICAgICAgfVxuICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgcHJldi5uZXh0ID0gbmV4dDtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlID09PSB0aGlzLmhlYWQpIHtcbiAgICAgICAgdGhpcy5oZWFkID0gbmV4dDtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlID09PSB0aGlzLnRhaWwpIHtcbiAgICAgICAgdGhpcy50YWlsID0gcHJldjtcbiAgICAgIH1cbiAgICAgIG5vZGUubGlzdC5sZW5ndGgtLTtcbiAgICAgIG5vZGUubmV4dCA9IG51bGw7XG4gICAgICBub2RlLnByZXYgPSBudWxsO1xuICAgICAgbm9kZS5saXN0ID0gbnVsbDtcbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLnVuc2hpZnROb2RlID0gZnVuY3Rpb24obm9kZSkge1xuICAgICAgaWYgKG5vZGUgPT09IHRoaXMuaGVhZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5saXN0KSB7XG4gICAgICAgIG5vZGUubGlzdC5yZW1vdmVOb2RlKG5vZGUpO1xuICAgICAgfVxuICAgICAgdmFyIGhlYWQgPSB0aGlzLmhlYWQ7XG4gICAgICBub2RlLmxpc3QgPSB0aGlzO1xuICAgICAgbm9kZS5uZXh0ID0gaGVhZDtcbiAgICAgIGlmIChoZWFkKSB7XG4gICAgICAgIGhlYWQucHJldiA9IG5vZGU7XG4gICAgICB9XG4gICAgICB0aGlzLmhlYWQgPSBub2RlO1xuICAgICAgaWYgKCF0aGlzLnRhaWwpIHtcbiAgICAgICAgdGhpcy50YWlsID0gbm9kZTtcbiAgICAgIH1cbiAgICAgIHRoaXMubGVuZ3RoKys7XG4gICAgfTtcbiAgICBZYWxsaXN0LnByb3RvdHlwZS5wdXNoTm9kZSA9IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlID09PSB0aGlzLnRhaWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKG5vZGUubGlzdCkge1xuICAgICAgICBub2RlLmxpc3QucmVtb3ZlTm9kZShub2RlKTtcbiAgICAgIH1cbiAgICAgIHZhciB0YWlsID0gdGhpcy50YWlsO1xuICAgICAgbm9kZS5saXN0ID0gdGhpcztcbiAgICAgIG5vZGUucHJldiA9IHRhaWw7XG4gICAgICBpZiAodGFpbCkge1xuICAgICAgICB0YWlsLm5leHQgPSBub2RlO1xuICAgICAgfVxuICAgICAgdGhpcy50YWlsID0gbm9kZTtcbiAgICAgIGlmICghdGhpcy5oZWFkKSB7XG4gICAgICAgIHRoaXMuaGVhZCA9IG5vZGU7XG4gICAgICB9XG4gICAgICB0aGlzLmxlbmd0aCsrO1xuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHB1c2godGhpcywgYXJndW1lbnRzW2ldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmxlbmd0aDtcbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLnVuc2hpZnQgPSBmdW5jdGlvbigpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB1bnNoaWZ0KHRoaXMsIGFyZ3VtZW50c1tpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGg7XG4gICAgfTtcbiAgICBZYWxsaXN0LnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbigpIHtcbiAgICAgIGlmICghdGhpcy50YWlsKSB7XG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICB9XG4gICAgICB2YXIgcmVzID0gdGhpcy50YWlsLnZhbHVlO1xuICAgICAgdGhpcy50YWlsID0gdGhpcy50YWlsLnByZXY7XG4gICAgICBpZiAodGhpcy50YWlsKSB7XG4gICAgICAgIHRoaXMudGFpbC5uZXh0ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGVhZCA9IG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLmxlbmd0aC0tO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLnNoaWZ0ID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXRoaXMuaGVhZCkge1xuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgfVxuICAgICAgdmFyIHJlcyA9IHRoaXMuaGVhZC52YWx1ZTtcbiAgICAgIHRoaXMuaGVhZCA9IHRoaXMuaGVhZC5uZXh0O1xuICAgICAgaWYgKHRoaXMuaGVhZCkge1xuICAgICAgICB0aGlzLmhlYWQucHJldiA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRhaWwgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5sZW5ndGgtLTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfTtcbiAgICBZYWxsaXN0LnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oZm4sIHRoaXNwKSB7XG4gICAgICB0aGlzcCA9IHRoaXNwIHx8IHRoaXM7XG4gICAgICBmb3IgKHZhciB3YWxrZXIgPSB0aGlzLmhlYWQsIGkgPSAwOyB3YWxrZXIgIT09IG51bGw7IGkrKykge1xuICAgICAgICBmbi5jYWxsKHRoaXNwLCB3YWxrZXIudmFsdWUsIGksIHRoaXMpO1xuICAgICAgICB3YWxrZXIgPSB3YWxrZXIubmV4dDtcbiAgICAgIH1cbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLmZvckVhY2hSZXZlcnNlID0gZnVuY3Rpb24oZm4sIHRoaXNwKSB7XG4gICAgICB0aGlzcCA9IHRoaXNwIHx8IHRoaXM7XG4gICAgICBmb3IgKHZhciB3YWxrZXIgPSB0aGlzLnRhaWwsIGkgPSB0aGlzLmxlbmd0aCAtIDE7IHdhbGtlciAhPT0gbnVsbDsgaS0tKSB7XG4gICAgICAgIGZuLmNhbGwodGhpc3AsIHdhbGtlci52YWx1ZSwgaSwgdGhpcyk7XG4gICAgICAgIHdhbGtlciA9IHdhbGtlci5wcmV2O1xuICAgICAgfVxuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obikge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIHdhbGtlciA9IHRoaXMuaGVhZDsgd2Fsa2VyICE9PSBudWxsICYmIGkgPCBuOyBpKyspIHtcbiAgICAgICAgd2Fsa2VyID0gd2Fsa2VyLm5leHQ7XG4gICAgICB9XG4gICAgICBpZiAoaSA9PT0gbiAmJiB3YWxrZXIgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHdhbGtlci52YWx1ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLmdldFJldmVyc2UgPSBmdW5jdGlvbihuKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgd2Fsa2VyID0gdGhpcy50YWlsOyB3YWxrZXIgIT09IG51bGwgJiYgaSA8IG47IGkrKykge1xuICAgICAgICB3YWxrZXIgPSB3YWxrZXIucHJldjtcbiAgICAgIH1cbiAgICAgIGlmIChpID09PSBuICYmIHdhbGtlciAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gd2Fsa2VyLnZhbHVlO1xuICAgICAgfVxuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24oZm4sIHRoaXNwKSB7XG4gICAgICB0aGlzcCA9IHRoaXNwIHx8IHRoaXM7XG4gICAgICB2YXIgcmVzID0gbmV3IFlhbGxpc3QoKTtcbiAgICAgIGZvciAodmFyIHdhbGtlciA9IHRoaXMuaGVhZDsgd2Fsa2VyICE9PSBudWxsOyApIHtcbiAgICAgICAgcmVzLnB1c2goZm4uY2FsbCh0aGlzcCwgd2Fsa2VyLnZhbHVlLCB0aGlzKSk7XG4gICAgICAgIHdhbGtlciA9IHdhbGtlci5uZXh0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLm1hcFJldmVyc2UgPSBmdW5jdGlvbihmbiwgdGhpc3ApIHtcbiAgICAgIHRoaXNwID0gdGhpc3AgfHwgdGhpcztcbiAgICAgIHZhciByZXMgPSBuZXcgWWFsbGlzdCgpO1xuICAgICAgZm9yICh2YXIgd2Fsa2VyID0gdGhpcy50YWlsOyB3YWxrZXIgIT09IG51bGw7ICkge1xuICAgICAgICByZXMucHVzaChmbi5jYWxsKHRoaXNwLCB3YWxrZXIudmFsdWUsIHRoaXMpKTtcbiAgICAgICAgd2Fsa2VyID0gd2Fsa2VyLnByZXY7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24oZm4sIGluaXRpYWwpIHtcbiAgICAgIHZhciBhY2M7XG4gICAgICB2YXIgd2Fsa2VyID0gdGhpcy5oZWFkO1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGFjYyA9IGluaXRpYWw7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZCkge1xuICAgICAgICB3YWxrZXIgPSB0aGlzLmhlYWQubmV4dDtcbiAgICAgICAgYWNjID0gdGhpcy5oZWFkLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlJlZHVjZSBvZiBlbXB0eSBsaXN0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyB3YWxrZXIgIT09IG51bGw7IGkrKykge1xuICAgICAgICBhY2MgPSBmbihhY2MsIHdhbGtlci52YWx1ZSwgaSk7XG4gICAgICAgIHdhbGtlciA9IHdhbGtlci5uZXh0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9O1xuICAgIFlhbGxpc3QucHJvdG90eXBlLnJlZHVjZVJldmVyc2UgPSBmdW5jdGlvbihmbiwgaW5pdGlhbCkge1xuICAgICAgdmFyIGFjYztcbiAgICAgIHZhciB3YWxrZXIgPSB0aGlzLnRhaWw7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgYWNjID0gaW5pdGlhbDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50YWlsKSB7XG4gICAgICAgIHdhbGtlciA9IHRoaXMudGFpbC5wcmV2O1xuICAgICAgICBhY2MgPSB0aGlzLnRhaWwudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUmVkdWNlIG9mIGVtcHR5IGxpc3Qgd2l0aCBubyBpbml0aWFsIHZhbHVlXCIpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgd2Fsa2VyICE9PSBudWxsOyBpLS0pIHtcbiAgICAgICAgYWNjID0gZm4oYWNjLCB3YWxrZXIudmFsdWUsIGkpO1xuICAgICAgICB3YWxrZXIgPSB3YWxrZXIucHJldjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfTtcbiAgICBZYWxsaXN0LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYXJyID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwLCB3YWxrZXIgPSB0aGlzLmhlYWQ7IHdhbGtlciAhPT0gbnVsbDsgaSsrKSB7XG4gICAgICAgIGFycltpXSA9IHdhbGtlci52YWx1ZTtcbiAgICAgICAgd2Fsa2VyID0gd2Fsa2VyLm5leHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXJyO1xuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUudG9BcnJheVJldmVyc2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBhcnIgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIHdhbGtlciA9IHRoaXMudGFpbDsgd2Fsa2VyICE9PSBudWxsOyBpKyspIHtcbiAgICAgICAgYXJyW2ldID0gd2Fsa2VyLnZhbHVlO1xuICAgICAgICB3YWxrZXIgPSB3YWxrZXIucHJldjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcnI7XG4gICAgfTtcbiAgICBZYWxsaXN0LnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uKGZyb20sIHRvKSB7XG4gICAgICB0byA9IHRvIHx8IHRoaXMubGVuZ3RoO1xuICAgICAgaWYgKHRvIDwgMCkge1xuICAgICAgICB0byArPSB0aGlzLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGZyb20gPSBmcm9tIHx8IDA7XG4gICAgICBpZiAoZnJvbSA8IDApIHtcbiAgICAgICAgZnJvbSArPSB0aGlzLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHZhciByZXQgPSBuZXcgWWFsbGlzdCgpO1xuICAgICAgaWYgKHRvIDwgZnJvbSB8fCB0byA8IDApIHtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cbiAgICAgIGlmIChmcm9tIDwgMCkge1xuICAgICAgICBmcm9tID0gMDtcbiAgICAgIH1cbiAgICAgIGlmICh0byA+IHRoaXMubGVuZ3RoKSB7XG4gICAgICAgIHRvID0gdGhpcy5sZW5ndGg7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMCwgd2Fsa2VyID0gdGhpcy5oZWFkOyB3YWxrZXIgIT09IG51bGwgJiYgaSA8IGZyb207IGkrKykge1xuICAgICAgICB3YWxrZXIgPSB3YWxrZXIubmV4dDtcbiAgICAgIH1cbiAgICAgIGZvciAoOyB3YWxrZXIgIT09IG51bGwgJiYgaSA8IHRvOyBpKyssIHdhbGtlciA9IHdhbGtlci5uZXh0KSB7XG4gICAgICAgIHJldC5wdXNoKHdhbGtlci52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUuc2xpY2VSZXZlcnNlID0gZnVuY3Rpb24oZnJvbSwgdG8pIHtcbiAgICAgIHRvID0gdG8gfHwgdGhpcy5sZW5ndGg7XG4gICAgICBpZiAodG8gPCAwKSB7XG4gICAgICAgIHRvICs9IHRoaXMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgZnJvbSA9IGZyb20gfHwgMDtcbiAgICAgIGlmIChmcm9tIDwgMCkge1xuICAgICAgICBmcm9tICs9IHRoaXMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgdmFyIHJldCA9IG5ldyBZYWxsaXN0KCk7XG4gICAgICBpZiAodG8gPCBmcm9tIHx8IHRvIDwgMCkge1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgICAgaWYgKGZyb20gPCAwKSB7XG4gICAgICAgIGZyb20gPSAwO1xuICAgICAgfVxuICAgICAgaWYgKHRvID4gdGhpcy5sZW5ndGgpIHtcbiAgICAgICAgdG8gPSB0aGlzLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCwgd2Fsa2VyID0gdGhpcy50YWlsOyB3YWxrZXIgIT09IG51bGwgJiYgaSA+IHRvOyBpLS0pIHtcbiAgICAgICAgd2Fsa2VyID0gd2Fsa2VyLnByZXY7XG4gICAgICB9XG4gICAgICBmb3IgKDsgd2Fsa2VyICE9PSBudWxsICYmIGkgPiBmcm9tOyBpLS0sIHdhbGtlciA9IHdhbGtlci5wcmV2KSB7XG4gICAgICAgIHJldC5wdXNoKHdhbGtlci52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH07XG4gICAgWWFsbGlzdC5wcm90b3R5cGUucmV2ZXJzZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGhlYWQgPSB0aGlzLmhlYWQ7XG4gICAgICB2YXIgdGFpbCA9IHRoaXMudGFpbDtcbiAgICAgIGZvciAodmFyIHdhbGtlciA9IGhlYWQ7IHdhbGtlciAhPT0gbnVsbDsgd2Fsa2VyID0gd2Fsa2VyLnByZXYpIHtcbiAgICAgICAgdmFyIHAgPSB3YWxrZXIucHJldjtcbiAgICAgICAgd2Fsa2VyLnByZXYgPSB3YWxrZXIubmV4dDtcbiAgICAgICAgd2Fsa2VyLm5leHQgPSBwO1xuICAgICAgfVxuICAgICAgdGhpcy5oZWFkID0gdGFpbDtcbiAgICAgIHRoaXMudGFpbCA9IGhlYWQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIGZ1bmN0aW9uIHB1c2goc2VsZiwgaXRlbSkge1xuICAgICAgc2VsZi50YWlsID0gbmV3IE5vZGUoaXRlbSwgc2VsZi50YWlsLCBudWxsLCBzZWxmKTtcbiAgICAgIGlmICghc2VsZi5oZWFkKSB7XG4gICAgICAgIHNlbGYuaGVhZCA9IHNlbGYudGFpbDtcbiAgICAgIH1cbiAgICAgIHNlbGYubGVuZ3RoKys7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVuc2hpZnQoc2VsZiwgaXRlbSkge1xuICAgICAgc2VsZi5oZWFkID0gbmV3IE5vZGUoaXRlbSwgbnVsbCwgc2VsZi5oZWFkLCBzZWxmKTtcbiAgICAgIGlmICghc2VsZi50YWlsKSB7XG4gICAgICAgIHNlbGYudGFpbCA9IHNlbGYuaGVhZDtcbiAgICAgIH1cbiAgICAgIHNlbGYubGVuZ3RoKys7XG4gICAgfVxuICAgIGZ1bmN0aW9uIE5vZGUodmFsdWUsIHByZXYsIG5leHQsIGxpc3QpIHtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBOb2RlKSkge1xuICAgICAgICByZXR1cm4gbmV3IE5vZGUodmFsdWUsIHByZXYsIG5leHQsIGxpc3QpO1xuICAgICAgfVxuICAgICAgdGhpcy5saXN0ID0gbGlzdDtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgIHByZXYubmV4dCA9IHRoaXM7XG4gICAgICAgIHRoaXMucHJldiA9IHByZXY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByZXYgPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgbmV4dC5wcmV2ID0gdGhpcztcbiAgICAgICAgdGhpcy5uZXh0ID0gbmV4dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmV4dCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9ub2RlX21vZHVsZXMvbHJ1LWNhY2hlL2luZGV4LmpzXG52YXIgcmVxdWlyZV9scnVfY2FjaGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL25vZGVfbW9kdWxlcy9scnUtY2FjaGUvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IExSVUNhY2hlO1xuICAgIHZhciBNYXAyID0gcmVxdWlyZV9tYXAoKTtcbiAgICB2YXIgdXRpbCA9IF9fcmVxdWlyZShcInV0aWxcIik7XG4gICAgdmFyIFlhbGxpc3QgPSByZXF1aXJlX3lhbGxpc3QoKTtcbiAgICB2YXIgaGFzU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHByb2Nlc3MuZW52Ll9ub2RlTFJVQ2FjaGVGb3JjZU5vU3ltYm9sICE9PSBcIjFcIjtcbiAgICB2YXIgbWFrZVN5bWJvbDtcbiAgICBpZiAoaGFzU3ltYm9sKSB7XG4gICAgICBtYWtlU3ltYm9sID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgIHJldHVybiBTeW1ib2woa2V5KTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIG1ha2VTeW1ib2wgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgcmV0dXJuIFwiX1wiICsga2V5O1xuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIE1BWCA9IG1ha2VTeW1ib2woXCJtYXhcIik7XG4gICAgdmFyIExFTkdUSCA9IG1ha2VTeW1ib2woXCJsZW5ndGhcIik7XG4gICAgdmFyIExFTkdUSF9DQUxDVUxBVE9SID0gbWFrZVN5bWJvbChcImxlbmd0aENhbGN1bGF0b3JcIik7XG4gICAgdmFyIEFMTE9XX1NUQUxFID0gbWFrZVN5bWJvbChcImFsbG93U3RhbGVcIik7XG4gICAgdmFyIE1BWF9BR0UgPSBtYWtlU3ltYm9sKFwibWF4QWdlXCIpO1xuICAgIHZhciBESVNQT1NFID0gbWFrZVN5bWJvbChcImRpc3Bvc2VcIik7XG4gICAgdmFyIE5PX0RJU1BPU0VfT05fU0VUID0gbWFrZVN5bWJvbChcIm5vRGlzcG9zZU9uU2V0XCIpO1xuICAgIHZhciBMUlVfTElTVCA9IG1ha2VTeW1ib2woXCJscnVMaXN0XCIpO1xuICAgIHZhciBDQUNIRSA9IG1ha2VTeW1ib2woXCJjYWNoZVwiKTtcbiAgICBmdW5jdGlvbiBuYWl2ZUxlbmd0aCgpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBmdW5jdGlvbiBMUlVDYWNoZShvcHRpb25zOCkge1xuICAgICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIExSVUNhY2hlKSkge1xuICAgICAgICByZXR1cm4gbmV3IExSVUNhY2hlKG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uczggPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgb3B0aW9uczggPSB7IG1heDogb3B0aW9uczggfTtcbiAgICAgIH1cbiAgICAgIGlmICghb3B0aW9uczgpIHtcbiAgICAgICAgb3B0aW9uczggPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciBtYXggPSB0aGlzW01BWF0gPSBvcHRpb25zOC5tYXg7XG4gICAgICBpZiAoIW1heCB8fCAhKHR5cGVvZiBtYXggPT09IFwibnVtYmVyXCIpIHx8IG1heCA8PSAwKSB7XG4gICAgICAgIHRoaXNbTUFYXSA9IEluZmluaXR5O1xuICAgICAgfVxuICAgICAgdmFyIGxjID0gb3B0aW9uczgubGVuZ3RoIHx8IG5haXZlTGVuZ3RoO1xuICAgICAgaWYgKHR5cGVvZiBsYyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxjID0gbmFpdmVMZW5ndGg7XG4gICAgICB9XG4gICAgICB0aGlzW0xFTkdUSF9DQUxDVUxBVE9SXSA9IGxjO1xuICAgICAgdGhpc1tBTExPV19TVEFMRV0gPSBvcHRpb25zOC5zdGFsZSB8fCBmYWxzZTtcbiAgICAgIHRoaXNbTUFYX0FHRV0gPSBvcHRpb25zOC5tYXhBZ2UgfHwgMDtcbiAgICAgIHRoaXNbRElTUE9TRV0gPSBvcHRpb25zOC5kaXNwb3NlO1xuICAgICAgdGhpc1tOT19ESVNQT1NFX09OX1NFVF0gPSBvcHRpb25zOC5ub0Rpc3Bvc2VPblNldCB8fCBmYWxzZTtcbiAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KExSVUNhY2hlLnByb3RvdHlwZSwgXCJtYXhcIiwge1xuICAgICAgc2V0OiBmdW5jdGlvbihtTCkge1xuICAgICAgICBpZiAoIW1MIHx8ICEodHlwZW9mIG1MID09PSBcIm51bWJlclwiKSB8fCBtTCA8PSAwKSB7XG4gICAgICAgICAgbUwgPSBJbmZpbml0eTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW01BWF0gPSBtTDtcbiAgICAgICAgdHJpbTIodGhpcyk7XG4gICAgICB9LFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbTUFYXTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KExSVUNhY2hlLnByb3RvdHlwZSwgXCJhbGxvd1N0YWxlXCIsIHtcbiAgICAgIHNldDogZnVuY3Rpb24oYWxsb3dTdGFsZSkge1xuICAgICAgICB0aGlzW0FMTE9XX1NUQUxFXSA9ICEhYWxsb3dTdGFsZTtcbiAgICAgIH0sXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tBTExPV19TVEFMRV07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMUlVDYWNoZS5wcm90b3R5cGUsIFwibWF4QWdlXCIsIHtcbiAgICAgIHNldDogZnVuY3Rpb24obUEpIHtcbiAgICAgICAgaWYgKCFtQSB8fCAhKHR5cGVvZiBtQSA9PT0gXCJudW1iZXJcIikgfHwgbUEgPCAwKSB7XG4gICAgICAgICAgbUEgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXNbTUFYX0FHRV0gPSBtQTtcbiAgICAgICAgdHJpbTIodGhpcyk7XG4gICAgICB9LFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbTUFYX0FHRV07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMUlVDYWNoZS5wcm90b3R5cGUsIFwibGVuZ3RoQ2FsY3VsYXRvclwiLCB7XG4gICAgICBzZXQ6IGZ1bmN0aW9uKGxDKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbEMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGxDID0gbmFpdmVMZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxDICE9PSB0aGlzW0xFTkdUSF9DQUxDVUxBVE9SXSkge1xuICAgICAgICAgIHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdID0gbEM7XG4gICAgICAgICAgdGhpc1tMRU5HVEhdID0gMDtcbiAgICAgICAgICB0aGlzW0xSVV9MSVNUXS5mb3JFYWNoKGZ1bmN0aW9uKGhpdCkge1xuICAgICAgICAgICAgaGl0Lmxlbmd0aCA9IHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdKGhpdC52YWx1ZSwgaGl0LmtleSk7XG4gICAgICAgICAgICB0aGlzW0xFTkdUSF0gKz0gaGl0Lmxlbmd0aDtcbiAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0cmltMih0aGlzKTtcbiAgICAgIH0sXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tMRU5HVEhfQ0FMQ1VMQVRPUl07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMUlVDYWNoZS5wcm90b3R5cGUsIFwibGVuZ3RoXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0xFTkdUSF07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMUlVDYWNoZS5wcm90b3R5cGUsIFwiaXRlbUNvdW50XCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0xSVV9MSVNUXS5sZW5ndGg7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5yZm9yRWFjaCA9IGZ1bmN0aW9uKGZuLCB0aGlzcCkge1xuICAgICAgdGhpc3AgPSB0aGlzcCB8fCB0aGlzO1xuICAgICAgZm9yICh2YXIgd2Fsa2VyID0gdGhpc1tMUlVfTElTVF0udGFpbDsgd2Fsa2VyICE9PSBudWxsOyApIHtcbiAgICAgICAgdmFyIHByZXYgPSB3YWxrZXIucHJldjtcbiAgICAgICAgZm9yRWFjaFN0ZXAodGhpcywgZm4sIHdhbGtlciwgdGhpc3ApO1xuICAgICAgICB3YWxrZXIgPSBwcmV2O1xuICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gZm9yRWFjaFN0ZXAoc2VsZiwgZm4sIG5vZGUsIHRoaXNwKSB7XG4gICAgICB2YXIgaGl0ID0gbm9kZS52YWx1ZTtcbiAgICAgIGlmIChpc1N0YWxlKHNlbGYsIGhpdCkpIHtcbiAgICAgICAgZGVsKHNlbGYsIG5vZGUpO1xuICAgICAgICBpZiAoIXNlbGZbQUxMT1dfU1RBTEVdKSB7XG4gICAgICAgICAgaGl0ID0gdm9pZCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaGl0KSB7XG4gICAgICAgIGZuLmNhbGwodGhpc3AsIGhpdC52YWx1ZSwgaGl0LmtleSwgc2VsZik7XG4gICAgICB9XG4gICAgfVxuICAgIExSVUNhY2hlLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oZm4sIHRoaXNwKSB7XG4gICAgICB0aGlzcCA9IHRoaXNwIHx8IHRoaXM7XG4gICAgICBmb3IgKHZhciB3YWxrZXIgPSB0aGlzW0xSVV9MSVNUXS5oZWFkOyB3YWxrZXIgIT09IG51bGw7ICkge1xuICAgICAgICB2YXIgbmV4dCA9IHdhbGtlci5uZXh0O1xuICAgICAgICBmb3JFYWNoU3RlcCh0aGlzLCBmbiwgd2Fsa2VyLCB0aGlzcCk7XG4gICAgICAgIHdhbGtlciA9IG5leHQ7XG4gICAgICB9XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXNbTFJVX0xJU1RdLnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24oaykge1xuICAgICAgICByZXR1cm4gay5rZXk7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS52YWx1ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzW0xSVV9MSVNUXS50b0FycmF5KCkubWFwKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgcmV0dXJuIGsudmFsdWU7XG4gICAgICB9LCB0aGlzKTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKHRoaXNbRElTUE9TRV0gJiYgdGhpc1tMUlVfTElTVF0gJiYgdGhpc1tMUlVfTElTVF0ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXNbTFJVX0xJU1RdLmZvckVhY2goZnVuY3Rpb24oaGl0KSB7XG4gICAgICAgICAgdGhpc1tESVNQT1NFXShoaXQua2V5LCBoaXQudmFsdWUpO1xuICAgICAgICB9LCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHRoaXNbQ0FDSEVdID0gbmV3IE1hcDIoKTtcbiAgICAgIHRoaXNbTFJVX0xJU1RdID0gbmV3IFlhbGxpc3QoKTtcbiAgICAgIHRoaXNbTEVOR1RIXSA9IDA7XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUuZHVtcCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXNbTFJVX0xJU1RdLm1hcChmdW5jdGlvbihoaXQpIHtcbiAgICAgICAgaWYgKCFpc1N0YWxlKHRoaXMsIGhpdCkpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgazogaGl0LmtleSxcbiAgICAgICAgICAgIHY6IGhpdC52YWx1ZSxcbiAgICAgICAgICAgIGU6IGhpdC5ub3cgKyAoaGl0Lm1heEFnZSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMpLnRvQXJyYXkoKS5maWx0ZXIoZnVuY3Rpb24oaCkge1xuICAgICAgICByZXR1cm4gaDtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgTFJVQ2FjaGUucHJvdG90eXBlLmR1bXBMcnUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzW0xSVV9MSVNUXTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24obiwgb3B0cykge1xuICAgICAgdmFyIHN0ciA9IFwiTFJVQ2FjaGUge1wiO1xuICAgICAgdmFyIGV4dHJhcyA9IGZhbHNlO1xuICAgICAgdmFyIGFzID0gdGhpc1tBTExPV19TVEFMRV07XG4gICAgICBpZiAoYXMpIHtcbiAgICAgICAgc3RyICs9IFwiXFxuICBhbGxvd1N0YWxlOiB0cnVlXCI7XG4gICAgICAgIGV4dHJhcyA9IHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgbWF4ID0gdGhpc1tNQVhdO1xuICAgICAgaWYgKG1heCAmJiBtYXggIT09IEluZmluaXR5KSB7XG4gICAgICAgIGlmIChleHRyYXMpIHtcbiAgICAgICAgICBzdHIgKz0gXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgc3RyICs9IFwiXFxuICBtYXg6IFwiICsgdXRpbC5pbnNwZWN0KG1heCwgb3B0cyk7XG4gICAgICAgIGV4dHJhcyA9IHRydWU7XG4gICAgICB9XG4gICAgICB2YXIgbWF4QWdlID0gdGhpc1tNQVhfQUdFXTtcbiAgICAgIGlmIChtYXhBZ2UpIHtcbiAgICAgICAgaWYgKGV4dHJhcykge1xuICAgICAgICAgIHN0ciArPSBcIixcIjtcbiAgICAgICAgfVxuICAgICAgICBzdHIgKz0gXCJcXG4gIG1heEFnZTogXCIgKyB1dGlsLmluc3BlY3QobWF4QWdlLCBvcHRzKTtcbiAgICAgICAgZXh0cmFzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHZhciBsYyA9IHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdO1xuICAgICAgaWYgKGxjICYmIGxjICE9PSBuYWl2ZUxlbmd0aCkge1xuICAgICAgICBpZiAoZXh0cmFzKSB7XG4gICAgICAgICAgc3RyICs9IFwiLFwiO1xuICAgICAgICB9XG4gICAgICAgIHN0ciArPSBcIlxcbiAgbGVuZ3RoOiBcIiArIHV0aWwuaW5zcGVjdCh0aGlzW0xFTkdUSF0sIG9wdHMpO1xuICAgICAgICBleHRyYXMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIGRpZEZpcnN0ID0gZmFsc2U7XG4gICAgICB0aGlzW0xSVV9MSVNUXS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgaWYgKGRpZEZpcnN0KSB7XG4gICAgICAgICAgc3RyICs9IFwiLFxcbiAgXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGV4dHJhcykge1xuICAgICAgICAgICAgc3RyICs9IFwiLFxcblwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkaWRGaXJzdCA9IHRydWU7XG4gICAgICAgICAgc3RyICs9IFwiXFxuICBcIjtcbiAgICAgICAgfVxuICAgICAgICB2YXIga2V5ID0gdXRpbC5pbnNwZWN0KGl0ZW0ua2V5KS5zcGxpdChcIlxcblwiKS5qb2luKFwiXFxuICBcIik7XG4gICAgICAgIHZhciB2YWwgPSB7IHZhbHVlOiBpdGVtLnZhbHVlIH07XG4gICAgICAgIGlmIChpdGVtLm1heEFnZSAhPT0gbWF4QWdlKSB7XG4gICAgICAgICAgdmFsLm1heEFnZSA9IGl0ZW0ubWF4QWdlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYyAhPT0gbmFpdmVMZW5ndGgpIHtcbiAgICAgICAgICB2YWwubGVuZ3RoID0gaXRlbS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzU3RhbGUodGhpcywgaXRlbSkpIHtcbiAgICAgICAgICB2YWwuc3RhbGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhbCA9IHV0aWwuaW5zcGVjdCh2YWwsIG9wdHMpLnNwbGl0KFwiXFxuXCIpLmpvaW4oXCJcXG4gIFwiKTtcbiAgICAgICAgc3RyICs9IGtleSArIFwiID0+IFwiICsgdmFsO1xuICAgICAgfSk7XG4gICAgICBpZiAoZGlkRmlyc3QgfHwgZXh0cmFzKSB7XG4gICAgICAgIHN0ciArPSBcIlxcblwiO1xuICAgICAgfVxuICAgICAgc3RyICs9IFwifVwiO1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihrZXksIHZhbHVlLCBtYXhBZ2UpIHtcbiAgICAgIG1heEFnZSA9IG1heEFnZSB8fCB0aGlzW01BWF9BR0VdO1xuICAgICAgdmFyIG5vdyA9IG1heEFnZSA/IERhdGUubm93KCkgOiAwO1xuICAgICAgdmFyIGxlbiA9IHRoaXNbTEVOR1RIX0NBTENVTEFUT1JdKHZhbHVlLCBrZXkpO1xuICAgICAgaWYgKHRoaXNbQ0FDSEVdLmhhcyhrZXkpKSB7XG4gICAgICAgIGlmIChsZW4gPiB0aGlzW01BWF0pIHtcbiAgICAgICAgICBkZWwodGhpcywgdGhpc1tDQUNIRV0uZ2V0KGtleSkpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbm9kZSA9IHRoaXNbQ0FDSEVdLmdldChrZXkpO1xuICAgICAgICB2YXIgaXRlbSA9IG5vZGUudmFsdWU7XG4gICAgICAgIGlmICh0aGlzW0RJU1BPU0VdKSB7XG4gICAgICAgICAgaWYgKCF0aGlzW05PX0RJU1BPU0VfT05fU0VUXSkge1xuICAgICAgICAgICAgdGhpc1tESVNQT1NFXShrZXksIGl0ZW0udmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpdGVtLm5vdyA9IG5vdztcbiAgICAgICAgaXRlbS5tYXhBZ2UgPSBtYXhBZ2U7XG4gICAgICAgIGl0ZW0udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpc1tMRU5HVEhdICs9IGxlbiAtIGl0ZW0ubGVuZ3RoO1xuICAgICAgICBpdGVtLmxlbmd0aCA9IGxlbjtcbiAgICAgICAgdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgdHJpbTIodGhpcyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgdmFyIGhpdCA9IG5ldyBFbnRyeShrZXksIHZhbHVlLCBsZW4sIG5vdywgbWF4QWdlKTtcbiAgICAgIGlmIChoaXQubGVuZ3RoID4gdGhpc1tNQVhdKSB7XG4gICAgICAgIGlmICh0aGlzW0RJU1BPU0VdKSB7XG4gICAgICAgICAgdGhpc1tESVNQT1NFXShrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzW0xFTkdUSF0gKz0gaGl0Lmxlbmd0aDtcbiAgICAgIHRoaXNbTFJVX0xJU1RdLnVuc2hpZnQoaGl0KTtcbiAgICAgIHRoaXNbQ0FDSEVdLnNldChrZXksIHRoaXNbTFJVX0xJU1RdLmhlYWQpO1xuICAgICAgdHJpbTIodGhpcyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgIGlmICghdGhpc1tDQUNIRV0uaGFzKGtleSkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHZhciBoaXQgPSB0aGlzW0NBQ0hFXS5nZXQoa2V5KS52YWx1ZTtcbiAgICAgIGlmIChpc1N0YWxlKHRoaXMsIGhpdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICByZXR1cm4gZ2V0KHRoaXMsIGtleSwgdHJ1ZSk7XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUucGVlayA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgcmV0dXJuIGdldCh0aGlzLCBrZXksIGZhbHNlKTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBub2RlID0gdGhpc1tMUlVfTElTVF0udGFpbDtcbiAgICAgIGlmICghbm9kZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBkZWwodGhpcywgbm9kZSk7XG4gICAgICByZXR1cm4gbm9kZS52YWx1ZTtcbiAgICB9O1xuICAgIExSVUNhY2hlLnByb3RvdHlwZS5kZWwgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgIGRlbCh0aGlzLCB0aGlzW0NBQ0hFXS5nZXQoa2V5KSk7XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uKGFycikge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XG4gICAgICBmb3IgKHZhciBsID0gYXJyLmxlbmd0aCAtIDE7IGwgPj0gMDsgbC0tKSB7XG4gICAgICAgIHZhciBoaXQgPSBhcnJbbF07XG4gICAgICAgIHZhciBleHBpcmVzQXQgPSBoaXQuZSB8fCAwO1xuICAgICAgICBpZiAoZXhwaXJlc0F0ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5zZXQoaGl0LmssIGhpdC52KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgbWF4QWdlID0gZXhwaXJlc0F0IC0gbm93O1xuICAgICAgICAgIGlmIChtYXhBZ2UgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNldChoaXQuaywgaGl0LnYsIG1heEFnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBMUlVDYWNoZS5wcm90b3R5cGUucHJ1bmUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBzZWxmID0gdGhpcztcbiAgICAgIHRoaXNbQ0FDSEVdLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIGtleSkge1xuICAgICAgICBnZXQoc2VsZiwga2V5LCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGdldChzZWxmLCBrZXksIGRvVXNlKSB7XG4gICAgICB2YXIgbm9kZSA9IHNlbGZbQ0FDSEVdLmdldChrZXkpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgdmFyIGhpdCA9IG5vZGUudmFsdWU7XG4gICAgICAgIGlmIChpc1N0YWxlKHNlbGYsIGhpdCkpIHtcbiAgICAgICAgICBkZWwoc2VsZiwgbm9kZSk7XG4gICAgICAgICAgaWYgKCFzZWxmW0FMTE9XX1NUQUxFXSlcbiAgICAgICAgICAgIGhpdCA9IHZvaWQgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZG9Vc2UpIHtcbiAgICAgICAgICAgIHNlbGZbTFJVX0xJU1RdLnVuc2hpZnROb2RlKG5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaGl0KVxuICAgICAgICAgIGhpdCA9IGhpdC52YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoaXQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU3RhbGUoc2VsZiwgaGl0KSB7XG4gICAgICBpZiAoIWhpdCB8fCAhaGl0Lm1heEFnZSAmJiAhc2VsZltNQVhfQUdFXSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB2YXIgc3RhbGUgPSBmYWxzZTtcbiAgICAgIHZhciBkaWZmID0gRGF0ZS5ub3coKSAtIGhpdC5ub3c7XG4gICAgICBpZiAoaGl0Lm1heEFnZSkge1xuICAgICAgICBzdGFsZSA9IGRpZmYgPiBoaXQubWF4QWdlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhbGUgPSBzZWxmW01BWF9BR0VdICYmIGRpZmYgPiBzZWxmW01BWF9BR0VdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YWxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmltMihzZWxmKSB7XG4gICAgICBpZiAoc2VsZltMRU5HVEhdID4gc2VsZltNQVhdKSB7XG4gICAgICAgIGZvciAodmFyIHdhbGtlciA9IHNlbGZbTFJVX0xJU1RdLnRhaWw7IHNlbGZbTEVOR1RIXSA+IHNlbGZbTUFYXSAmJiB3YWxrZXIgIT09IG51bGw7ICkge1xuICAgICAgICAgIHZhciBwcmV2ID0gd2Fsa2VyLnByZXY7XG4gICAgICAgICAgZGVsKHNlbGYsIHdhbGtlcik7XG4gICAgICAgICAgd2Fsa2VyID0gcHJldjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZWwoc2VsZiwgbm9kZSkge1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgdmFyIGhpdCA9IG5vZGUudmFsdWU7XG4gICAgICAgIGlmIChzZWxmW0RJU1BPU0VdKSB7XG4gICAgICAgICAgc2VsZltESVNQT1NFXShoaXQua2V5LCBoaXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHNlbGZbTEVOR1RIXSAtPSBoaXQubGVuZ3RoO1xuICAgICAgICBzZWxmW0NBQ0hFXS5kZWxldGUoaGl0LmtleSk7XG4gICAgICAgIHNlbGZbTFJVX0xJU1RdLnJlbW92ZU5vZGUobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIEVudHJ5KGtleSwgdmFsdWUsIGxlbmd0aCwgbm93LCBtYXhBZ2UpIHtcbiAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XG4gICAgICB0aGlzLm5vdyA9IG5vdztcbiAgICAgIHRoaXMubWF4QWdlID0gbWF4QWdlIHx8IDA7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL3NpZ211bmQvc2lnbXVuZC5qc1xudmFyIHJlcXVpcmVfc2lnbXVuZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9zaWdtdW5kL3NpZ211bmQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHNpZ211bmQ7XG4gICAgZnVuY3Rpb24gc2lnbXVuZChzdWJqZWN0LCBtYXhTZXNzaW9ucykge1xuICAgICAgbWF4U2Vzc2lvbnMgPSBtYXhTZXNzaW9ucyB8fCAxMDtcbiAgICAgIHZhciBub3RlcyA9IFtdO1xuICAgICAgdmFyIGFuYWx5c2lzID0gXCJcIjtcbiAgICAgIHZhciBSRSA9IFJlZ0V4cDtcbiAgICAgIGZ1bmN0aW9uIHBzeWNob0FuYWx5emUoc3ViamVjdDIsIHNlc3Npb24pIHtcbiAgICAgICAgaWYgKHNlc3Npb24gPiBtYXhTZXNzaW9ucylcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2Ygc3ViamVjdDIgPT09IFwiZnVuY3Rpb25cIiB8fCB0eXBlb2Ygc3ViamVjdDIgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBzdWJqZWN0MiAhPT0gXCJvYmplY3RcIiB8fCAhc3ViamVjdDIgfHwgc3ViamVjdDIgaW5zdGFuY2VvZiBSRSkge1xuICAgICAgICAgIGFuYWx5c2lzICs9IHN1YmplY3QyO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm90ZXMuaW5kZXhPZihzdWJqZWN0MikgIT09IC0xIHx8IHNlc3Npb24gPT09IG1heFNlc3Npb25zKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbm90ZXMucHVzaChzdWJqZWN0Mik7XG4gICAgICAgIGFuYWx5c2lzICs9IFwie1wiO1xuICAgICAgICBPYmplY3Qua2V5cyhzdWJqZWN0MikuZm9yRWFjaChmdW5jdGlvbihpc3N1ZSwgXywgX18pIHtcbiAgICAgICAgICBpZiAoaXNzdWUuY2hhckF0KDApID09PSBcIl9cIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB2YXIgdG8gPSB0eXBlb2Ygc3ViamVjdDJbaXNzdWVdO1xuICAgICAgICAgIGlmICh0byA9PT0gXCJmdW5jdGlvblwiIHx8IHRvID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGFuYWx5c2lzICs9IGlzc3VlO1xuICAgICAgICAgIHBzeWNob0FuYWx5emUoc3ViamVjdDJbaXNzdWVdLCBzZXNzaW9uICsgMSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcHN5Y2hvQW5hbHl6ZShzdWJqZWN0LCAwKTtcbiAgICAgIHJldHVybiBhbmFseXNpcztcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL3NyYy9saWIvZm5tYXRjaC5qc1xudmFyIHJlcXVpcmVfZm5tYXRjaCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvc3JjL2xpYi9mbm1hdGNoLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIHBsYXRmb3JtID0gdHlwZW9mIHByb2Nlc3MgPT09IFwib2JqZWN0XCIgPyBwcm9jZXNzLnBsYXRmb3JtIDogXCJ3aW4zMlwiO1xuICAgIGlmIChtb2R1bGUpXG4gICAgICBtb2R1bGUuZXhwb3J0cyA9IG1pbmltYXRjaDtcbiAgICBlbHNlXG4gICAgICBleHBvcnRzLm1pbmltYXRjaCA9IG1pbmltYXRjaDtcbiAgICBtaW5pbWF0Y2guTWluaW1hdGNoID0gTWluaW1hdGNoO1xuICAgIHZhciBMUlUgPSByZXF1aXJlX2xydV9jYWNoZSgpO1xuICAgIHZhciBjYWNoZSA9IG1pbmltYXRjaC5jYWNoZSA9IG5ldyBMUlUoeyBtYXg6IDEwMCB9KTtcbiAgICB2YXIgR0xPQlNUQVIgPSBtaW5pbWF0Y2guR0xPQlNUQVIgPSBNaW5pbWF0Y2guR0xPQlNUQVIgPSB7fTtcbiAgICB2YXIgc2lnbXVuZCA9IHJlcXVpcmVfc2lnbXVuZCgpO1xuICAgIHZhciBwYXRoOSA9IF9fcmVxdWlyZShcInBhdGhcIik7XG4gICAgdmFyIHFtYXJrID0gXCJbXi9dXCI7XG4gICAgdmFyIHN0YXIgPSBxbWFyayArIFwiKj9cIjtcbiAgICB2YXIgdHdvU3RhckRvdCA9IFwiKD86KD8hKD86XFxcXC98XikoPzpcXFxcLnsxLDJ9KSgkfFxcXFwvKSkuKSo/XCI7XG4gICAgdmFyIHR3b1N0YXJOb0RvdCA9IFwiKD86KD8hKD86XFxcXC98XilcXFxcLikuKSo/XCI7XG4gICAgdmFyIHJlU3BlY2lhbHMgPSBjaGFyU2V0KFwiKCkuKnt9Kz9bXV4kXFxcXCFcIik7XG4gICAgZnVuY3Rpb24gY2hhclNldChzKSB7XG4gICAgICByZXR1cm4gcy5zcGxpdChcIlwiKS5yZWR1Y2UoZnVuY3Rpb24oc2V0LCBjKSB7XG4gICAgICAgIHNldFtjXSA9IHRydWU7XG4gICAgICAgIHJldHVybiBzZXQ7XG4gICAgICB9LCB7fSk7XG4gICAgfVxuICAgIHZhciBzbGFzaFNwbGl0ID0gL1xcLysvO1xuICAgIG1pbmltYXRjaC5tb25rZXlQYXRjaCA9IG1vbmtleVBhdGNoO1xuICAgIGZ1bmN0aW9uIG1vbmtleVBhdGNoKCkge1xuICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsIFwibWF0Y2hcIik7XG4gICAgICB2YXIgb3JpZyA9IGRlc2MudmFsdWU7XG4gICAgICBkZXNjLnZhbHVlID0gZnVuY3Rpb24ocCkge1xuICAgICAgICBpZiAocCBpbnN0YW5jZW9mIE1pbmltYXRjaClcbiAgICAgICAgICByZXR1cm4gcC5tYXRjaCh0aGlzKTtcbiAgICAgICAgcmV0dXJuIG9yaWcuY2FsbCh0aGlzLCBwKTtcbiAgICAgIH07XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3RyaW5nLnByb3RvdHlwZSwgZGVzYyk7XG4gICAgfVxuICAgIG1pbmltYXRjaC5maWx0ZXIgPSBmaWx0ZXI7XG4gICAgZnVuY3Rpb24gZmlsdGVyKHBhdHRlcm4sIG9wdGlvbnM4KSB7XG4gICAgICBvcHRpb25zOCA9IG9wdGlvbnM4IHx8IHt9O1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHAsIGksIGxpc3QpIHtcbiAgICAgICAgcmV0dXJuIG1pbmltYXRjaChwLCBwYXR0ZXJuLCBvcHRpb25zOCk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHQoYSwgYikge1xuICAgICAgYSA9IGEgfHwge307XG4gICAgICBiID0gYiB8fCB7fTtcbiAgICAgIHZhciB0ID0ge307XG4gICAgICBPYmplY3Qua2V5cyhiKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgdFtrXSA9IGJba107XG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5rZXlzKGEpLmZvckVhY2goZnVuY3Rpb24oaykge1xuICAgICAgICB0W2tdID0gYVtrXTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuICAgIG1pbmltYXRjaC5kZWZhdWx0cyA9IGZ1bmN0aW9uKGRlZikge1xuICAgICAgaWYgKCFkZWYgfHwgIU9iamVjdC5rZXlzKGRlZikubGVuZ3RoKVxuICAgICAgICByZXR1cm4gbWluaW1hdGNoO1xuICAgICAgdmFyIG9yaWcgPSBtaW5pbWF0Y2g7XG4gICAgICB2YXIgbSA9IGZ1bmN0aW9uIG1pbmltYXRjaDIocCwgcGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgICAgcmV0dXJuIG9yaWcubWluaW1hdGNoKHAsIHBhdHRlcm4sIGV4dChkZWYsIG9wdGlvbnM4KSk7XG4gICAgICB9O1xuICAgICAgbS5NaW5pbWF0Y2ggPSBmdW5jdGlvbiBNaW5pbWF0Y2gyKHBhdHRlcm4sIG9wdGlvbnM4KSB7XG4gICAgICAgIHJldHVybiBuZXcgb3JpZy5NaW5pbWF0Y2gocGF0dGVybiwgZXh0KGRlZiwgb3B0aW9uczgpKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4gbTtcbiAgICB9O1xuICAgIE1pbmltYXRjaC5kZWZhdWx0cyA9IGZ1bmN0aW9uKGRlZikge1xuICAgICAgaWYgKCFkZWYgfHwgIU9iamVjdC5rZXlzKGRlZikubGVuZ3RoKVxuICAgICAgICByZXR1cm4gTWluaW1hdGNoO1xuICAgICAgcmV0dXJuIG1pbmltYXRjaC5kZWZhdWx0cyhkZWYpLk1pbmltYXRjaDtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIG1pbmltYXRjaChwLCBwYXR0ZXJuLCBvcHRpb25zOCkge1xuICAgICAgaWYgKHR5cGVvZiBwYXR0ZXJuICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJnbG9iIHBhdHRlcm4gc3RyaW5nIHJlcXVpcmVkXCIpO1xuICAgICAgfVxuICAgICAgaWYgKCFvcHRpb25zOClcbiAgICAgICAgb3B0aW9uczggPSB7fTtcbiAgICAgIGlmICghb3B0aW9uczgubm9jb21tZW50ICYmIHBhdHRlcm4uY2hhckF0KDApID09PSBcIiNcIikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAocGF0dGVybi50cmltKCkgPT09IFwiXCIpXG4gICAgICAgIHJldHVybiBwID09PSBcIlwiO1xuICAgICAgcmV0dXJuIG5ldyBNaW5pbWF0Y2gocGF0dGVybiwgb3B0aW9uczgpLm1hdGNoKHApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBNaW5pbWF0Y2gocGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgIGlmICghKHRoaXMgaW5zdGFuY2VvZiBNaW5pbWF0Y2gpKSB7XG4gICAgICAgIHJldHVybiBuZXcgTWluaW1hdGNoKHBhdHRlcm4sIG9wdGlvbnM4LCBjYWNoZSk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHBhdHRlcm4gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImdsb2IgcGF0dGVybiBzdHJpbmcgcmVxdWlyZWRcIik7XG4gICAgICB9XG4gICAgICBpZiAoIW9wdGlvbnM4KVxuICAgICAgICBvcHRpb25zOCA9IHt9O1xuICAgICAgaWYgKHBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcbiAgICAgICAgcGF0dGVybiA9IHBhdHRlcm4uc3BsaXQoXCJcXFxcXCIpLmpvaW4oXCIvXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGNhY2hlS2V5ID0gcGF0dGVybiArIFwiXFxuXCIgKyBzaWdtdW5kKG9wdGlvbnM4KTtcbiAgICAgIHZhciBjYWNoZWQgPSBtaW5pbWF0Y2guY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgIGlmIChjYWNoZWQpXG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgICBtaW5pbWF0Y2guY2FjaGUuc2V0KGNhY2hlS2V5LCB0aGlzKTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM4O1xuICAgICAgdGhpcy5zZXQgPSBbXTtcbiAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XG4gICAgICB0aGlzLnJlZ2V4cCA9IG51bGw7XG4gICAgICB0aGlzLm5lZ2F0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jb21tZW50ID0gZmFsc2U7XG4gICAgICB0aGlzLmVtcHR5ID0gZmFsc2U7XG4gICAgICB0aGlzLm1ha2UoKTtcbiAgICB9XG4gICAgTWluaW1hdGNoLnByb3RvdHlwZS5tYWtlID0gbWFrZTtcbiAgICBmdW5jdGlvbiBtYWtlKCkge1xuICAgICAgaWYgKHRoaXMuX21hZGUpXG4gICAgICAgIHJldHVybjtcbiAgICAgIHZhciBwYXR0ZXJuID0gdGhpcy5wYXR0ZXJuO1xuICAgICAgdmFyIG9wdGlvbnM4ID0gdGhpcy5vcHRpb25zO1xuICAgICAgaWYgKCFvcHRpb25zOC5ub2NvbW1lbnQgJiYgcGF0dGVybi5jaGFyQXQoMCkgPT09IFwiI1wiKSB7XG4gICAgICAgIHRoaXMuY29tbWVudCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghcGF0dGVybikge1xuICAgICAgICB0aGlzLmVtcHR5ID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJzZU5lZ2F0ZSgpO1xuICAgICAgdmFyIHNldCA9IHRoaXMuZ2xvYlNldCA9IHRoaXMuYnJhY2VFeHBhbmQoKTtcbiAgICAgIGlmIChvcHRpb25zOC5kZWJ1ZylcbiAgICAgICAgY29uc29sZS5lcnJvcih0aGlzLnBhdHRlcm4sIHNldCk7XG4gICAgICBzZXQgPSB0aGlzLmdsb2JQYXJ0cyA9IHNldC5tYXAoZnVuY3Rpb24ocykge1xuICAgICAgICByZXR1cm4gcy5zcGxpdChzbGFzaFNwbGl0KTtcbiAgICAgIH0pO1xuICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKVxuICAgICAgICBjb25zb2xlLmVycm9yKHRoaXMucGF0dGVybiwgc2V0KTtcbiAgICAgIHNldCA9IHNldC5tYXAoZnVuY3Rpb24ocywgc2ksIHNldDIpIHtcbiAgICAgICAgcmV0dXJuIHMubWFwKHRoaXMucGFyc2UsIHRoaXMpO1xuICAgICAgfSwgdGhpcyk7XG4gICAgICBpZiAob3B0aW9uczguZGVidWcpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5wYXR0ZXJuLCBzZXQpO1xuICAgICAgc2V0ID0gc2V0LmZpbHRlcihmdW5jdGlvbihzKSB7XG4gICAgICAgIHJldHVybiAtMSA9PT0gcy5pbmRleE9mKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKVxuICAgICAgICBjb25zb2xlLmVycm9yKHRoaXMucGF0dGVybiwgc2V0KTtcbiAgICAgIHRoaXMuc2V0ID0gc2V0O1xuICAgIH1cbiAgICBNaW5pbWF0Y2gucHJvdG90eXBlLnBhcnNlTmVnYXRlID0gcGFyc2VOZWdhdGU7XG4gICAgZnVuY3Rpb24gcGFyc2VOZWdhdGUoKSB7XG4gICAgICB2YXIgcGF0dGVybiA9IHRoaXMucGF0dGVybiwgbmVnYXRlID0gZmFsc2UsIG9wdGlvbnM4ID0gdGhpcy5vcHRpb25zLCBuZWdhdGVPZmZzZXQgPSAwO1xuICAgICAgaWYgKG9wdGlvbnM4Lm5vbmVnYXRlKVxuICAgICAgICByZXR1cm47XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHBhdHRlcm4ubGVuZ3RoOyBpIDwgbCAmJiBwYXR0ZXJuLmNoYXJBdChpKSA9PT0gXCIhXCI7IGkrKykge1xuICAgICAgICBuZWdhdGUgPSAhbmVnYXRlO1xuICAgICAgICBuZWdhdGVPZmZzZXQrKztcbiAgICAgIH1cbiAgICAgIGlmIChuZWdhdGVPZmZzZXQpXG4gICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm4uc3Vic3RyKG5lZ2F0ZU9mZnNldCk7XG4gICAgICB0aGlzLm5lZ2F0ZSA9IG5lZ2F0ZTtcbiAgICB9XG4gICAgbWluaW1hdGNoLmJyYWNlRXhwYW5kID0gZnVuY3Rpb24ocGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgIHJldHVybiBuZXcgTWluaW1hdGNoKHBhdHRlcm4sIG9wdGlvbnM4KS5icmFjZUV4cGFuZCgpO1xuICAgIH07XG4gICAgTWluaW1hdGNoLnByb3RvdHlwZS5icmFjZUV4cGFuZCA9IGJyYWNlRXhwYW5kO1xuICAgIGZ1bmN0aW9uIGJyYWNlRXhwYW5kKHBhdHRlcm4sIG9wdGlvbnM4KSB7XG4gICAgICBvcHRpb25zOCA9IG9wdGlvbnM4IHx8IHRoaXMub3B0aW9ucztcbiAgICAgIHBhdHRlcm4gPSB0eXBlb2YgcGF0dGVybiA9PT0gXCJ1bmRlZmluZWRcIiA/IHRoaXMucGF0dGVybiA6IHBhdHRlcm47XG4gICAgICBpZiAodHlwZW9mIHBhdHRlcm4gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5kZWZpbmVkIHBhdHRlcm5cIik7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uczgubm9icmFjZSB8fCAhcGF0dGVybi5tYXRjaCgvXFx7LipcXH0vKSkge1xuICAgICAgICByZXR1cm4gW3BhdHRlcm5dO1xuICAgICAgfVxuICAgICAgdmFyIGVzY2FwaW5nID0gZmFsc2U7XG4gICAgICBpZiAocGF0dGVybi5jaGFyQXQoMCkgIT09IFwie1wiKSB7XG4gICAgICAgIHZhciBwcmVmaXggPSBudWxsO1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHBhdHRlcm4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgdmFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKTtcbiAgICAgICAgICBpZiAoYyA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgIGVzY2FwaW5nID0gIWVzY2FwaW5nO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PT0gXCJ7XCIgJiYgIWVzY2FwaW5nKSB7XG4gICAgICAgICAgICBwcmVmaXggPSBwYXR0ZXJuLnN1YnN0cigwLCBpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocHJlZml4ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIFtwYXR0ZXJuXTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGFpbCA9IGJyYWNlRXhwYW5kKHBhdHRlcm4uc3Vic3RyKGkpLCBvcHRpb25zOCk7XG4gICAgICAgIHJldHVybiB0YWlsLm1hcChmdW5jdGlvbih0KSB7XG4gICAgICAgICAgcmV0dXJuIHByZWZpeCArIHQ7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIG51bXNldCA9IHBhdHRlcm4ubWF0Y2goL15cXHsoLT9bMC05XSspXFwuXFwuKC0/WzAtOV0rKVxcfS8pO1xuICAgICAgaWYgKG51bXNldCkge1xuICAgICAgICB2YXIgc3VmID0gYnJhY2VFeHBhbmQocGF0dGVybi5zdWJzdHIobnVtc2V0WzBdLmxlbmd0aCksIG9wdGlvbnM4KSwgc3RhcnQgPSArbnVtc2V0WzFdLCBlbmQgPSArbnVtc2V0WzJdLCBpbmMgPSBzdGFydCA+IGVuZCA/IC0xIDogMSwgc2V0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSAhPSBlbmQgKyBpbmM7IGkgKz0gaW5jKSB7XG4gICAgICAgICAgZm9yICh2YXIgaWkgPSAwLCBsbCA9IHN1Zi5sZW5ndGg7IGlpIDwgbGw7IGlpKyspIHtcbiAgICAgICAgICAgIHNldC5wdXNoKGkgKyBzdWZbaWldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNldDtcbiAgICAgIH1cbiAgICAgIHZhciBpID0gMSwgZGVwdGggPSAxLCBzZXQgPSBbXSwgbWVtYmVyID0gXCJcIiwgc2F3RW5kID0gZmFsc2UsIGVzY2FwaW5nID0gZmFsc2U7XG4gICAgICBmdW5jdGlvbiBhZGRNZW1iZXIoKSB7XG4gICAgICAgIHNldC5wdXNoKG1lbWJlcik7XG4gICAgICAgIG1lbWJlciA9IFwiXCI7XG4gICAgICB9XG4gICAgICBGT1I6XG4gICAgICAgIGZvciAoaSA9IDEsIGwgPSBwYXR0ZXJuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgIHZhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7XG4gICAgICAgICAgaWYgKGVzY2FwaW5nKSB7XG4gICAgICAgICAgICBlc2NhcGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgbWVtYmVyICs9IFwiXFxcXFwiICsgYztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJcXFxcXCI6XG4gICAgICAgICAgICAgICAgZXNjYXBpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIFwie1wiOlxuICAgICAgICAgICAgICAgIGRlcHRoKys7XG4gICAgICAgICAgICAgICAgbWVtYmVyICs9IFwie1wiO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIFwifVwiOlxuICAgICAgICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICBhZGRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICAgIGJyZWFrIEZPUjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbWVtYmVyICs9IGM7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCIsXCI6XG4gICAgICAgICAgICAgICAgaWYgKGRlcHRoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICBhZGRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbWVtYmVyICs9IGM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIG1lbWJlciArPSBjO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgaWYgKGRlcHRoICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBicmFjZUV4cGFuZChcIlxcXFxcIiArIHBhdHRlcm4sIG9wdGlvbnM4KTtcbiAgICAgIH1cbiAgICAgIHZhciBzdWYgPSBicmFjZUV4cGFuZChwYXR0ZXJuLnN1YnN0cihpKSwgb3B0aW9uczgpO1xuICAgICAgdmFyIGFkZEJyYWNlcyA9IHNldC5sZW5ndGggPT09IDE7XG4gICAgICBzZXQgPSBzZXQubWFwKGZ1bmN0aW9uKHApIHtcbiAgICAgICAgcmV0dXJuIGJyYWNlRXhwYW5kKHAsIG9wdGlvbnM4KTtcbiAgICAgIH0pO1xuICAgICAgc2V0ID0gc2V0LnJlZHVjZShmdW5jdGlvbihsMiwgcikge1xuICAgICAgICByZXR1cm4gbDIuY29uY2F0KHIpO1xuICAgICAgfSk7XG4gICAgICBpZiAoYWRkQnJhY2VzKSB7XG4gICAgICAgIHNldCA9IHNldC5tYXAoZnVuY3Rpb24ocykge1xuICAgICAgICAgIHJldHVybiBcIntcIiArIHMgKyBcIn1cIjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB2YXIgcmV0ID0gW107XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNldC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgZm9yICh2YXIgaWkgPSAwLCBsbCA9IHN1Zi5sZW5ndGg7IGlpIDwgbGw7IGlpKyspIHtcbiAgICAgICAgICByZXQucHVzaChzZXRbaV0gKyBzdWZbaWldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgTWluaW1hdGNoLnByb3RvdHlwZS5wYXJzZSA9IHBhcnNlMztcbiAgICB2YXIgU1VCUEFSU0UgPSB7fTtcbiAgICBmdW5jdGlvbiBwYXJzZTMocGF0dGVybiwgaXNTdWIpIHtcbiAgICAgIHZhciBvcHRpb25zOCA9IHRoaXMub3B0aW9ucztcbiAgICAgIGlmICghb3B0aW9uczgubm9nbG9ic3RhciAmJiBwYXR0ZXJuID09PSBcIioqXCIpXG4gICAgICAgIHJldHVybiBHTE9CU1RBUjtcbiAgICAgIGlmIChwYXR0ZXJuID09PSBcIlwiKVxuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIHZhciByZSA9IFwiXCIsIGhhc01hZ2ljID0gISFvcHRpb25zOC5ub2Nhc2UsIGVzY2FwaW5nID0gZmFsc2UsIHBhdHRlcm5MaXN0U3RhY2sgPSBbXSwgcGxUeXBlLCBzdGF0ZUNoYXIsIGluQ2xhc3MgPSBmYWxzZSwgcmVDbGFzc1N0YXJ0ID0gLTEsIGNsYXNzU3RhcnQgPSAtMSwgcGF0dGVyblN0YXJ0ID0gcGF0dGVybi5jaGFyQXQoMCkgPT09IFwiLlwiID8gXCJcIiA6IG9wdGlvbnM4LmRvdCA/IFwiKD8hKD86XnxcXFxcLylcXFxcLnsxLDJ9KD86JHxcXFxcLykpXCIgOiBcIig/IVxcXFwuKVwiO1xuICAgICAgZnVuY3Rpb24gY2xlYXJTdGF0ZUNoYXIoKSB7XG4gICAgICAgIGlmIChzdGF0ZUNoYXIpIHtcbiAgICAgICAgICBzd2l0Y2ggKHN0YXRlQ2hhcikge1xuICAgICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgICAgcmUgKz0gc3RhcjtcbiAgICAgICAgICAgICAgaGFzTWFnaWMgPSB0cnVlO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCI/XCI6XG4gICAgICAgICAgICAgIHJlICs9IHFtYXJrO1xuICAgICAgICAgICAgICBoYXNNYWdpYyA9IHRydWU7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmUgKz0gXCJcXFxcXCIgKyBzdGF0ZUNoYXI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdGF0ZUNoYXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHBhdHRlcm4ubGVuZ3RoLCBjOyBpIDwgbGVuICYmIChjID0gcGF0dGVybi5jaGFyQXQoaSkpOyBpKyspIHtcbiAgICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIiVzXHQlcyAlcyAlalwiLCBwYXR0ZXJuLCBpLCByZSwgYyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVzY2FwaW5nICYmIHJlU3BlY2lhbHNbY10pIHtcbiAgICAgICAgICByZSArPSBcIlxcXFxcIiArIGM7XG4gICAgICAgICAgZXNjYXBpbmcgPSBmYWxzZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBTV0lUQ0g6XG4gICAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgICBjYXNlIFwiL1wiOlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjYXNlIFwiXFxcXFwiOlxuICAgICAgICAgICAgICBjbGVhclN0YXRlQ2hhcigpO1xuICAgICAgICAgICAgICBlc2NhcGluZyA9IHRydWU7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY2FzZSBcIj9cIjpcbiAgICAgICAgICAgIGNhc2UgXCIqXCI6XG4gICAgICAgICAgICBjYXNlIFwiK1wiOlxuICAgICAgICAgICAgY2FzZSBcIkBcIjpcbiAgICAgICAgICAgIGNhc2UgXCIhXCI6XG4gICAgICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCIlc1x0JXMgJXMgJWogPC0tIHN0YXRlQ2hhclwiLCBwYXR0ZXJuLCBpLCByZSwgYyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGluQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gXCIhXCIgJiYgaSA9PT0gY2xhc3NTdGFydCArIDEpXG4gICAgICAgICAgICAgICAgICBjID0gXCJeXCI7XG4gICAgICAgICAgICAgICAgcmUgKz0gYztcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjbGVhclN0YXRlQ2hhcigpO1xuICAgICAgICAgICAgICBzdGF0ZUNoYXIgPSBjO1xuICAgICAgICAgICAgICBpZiAob3B0aW9uczgubm9leHQpXG4gICAgICAgICAgICAgICAgY2xlYXJTdGF0ZUNoYXIoKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjYXNlIFwiKFwiOlxuICAgICAgICAgICAgICBpZiAoaW5DbGFzcykge1xuICAgICAgICAgICAgICAgIHJlICs9IFwiKFwiO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICghc3RhdGVDaGFyKSB7XG4gICAgICAgICAgICAgICAgcmUgKz0gXCJcXFxcKFwiO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHBsVHlwZSA9IHN0YXRlQ2hhcjtcbiAgICAgICAgICAgICAgcGF0dGVybkxpc3RTdGFjay5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBwbFR5cGUsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IGkgLSAxLFxuICAgICAgICAgICAgICAgIHJlU3RhcnQ6IHJlLmxlbmd0aFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmUgKz0gc3RhdGVDaGFyID09PSBcIiFcIiA/IFwiKD86KD8hXCIgOiBcIig/OlwiO1xuICAgICAgICAgICAgICBzdGF0ZUNoYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjYXNlIFwiKVwiOlxuICAgICAgICAgICAgICBpZiAoaW5DbGFzcyB8fCAhcGF0dGVybkxpc3RTdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZSArPSBcIlxcXFwpXCI7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaGFzTWFnaWMgPSB0cnVlO1xuICAgICAgICAgICAgICByZSArPSBcIilcIjtcbiAgICAgICAgICAgICAgcGxUeXBlID0gcGF0dGVybkxpc3RTdGFjay5wb3AoKS50eXBlO1xuICAgICAgICAgICAgICBzd2l0Y2ggKHBsVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCIhXCI6XG4gICAgICAgICAgICAgICAgICByZSArPSBcIlteL10qPylcIjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCI/XCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIitcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiKlwiOlxuICAgICAgICAgICAgICAgICAgcmUgKz0gcGxUeXBlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJAXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgXCJ8XCI6XG4gICAgICAgICAgICAgIGlmIChpbkNsYXNzIHx8ICFwYXR0ZXJuTGlzdFN0YWNrLmxlbmd0aCB8fCBlc2NhcGluZykge1xuICAgICAgICAgICAgICAgIHJlICs9IFwiXFxcXHxcIjtcbiAgICAgICAgICAgICAgICBlc2NhcGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlICs9IFwifFwiO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgXCJbXCI6XG4gICAgICAgICAgICAgIGNsZWFyU3RhdGVDaGFyKCk7XG4gICAgICAgICAgICAgIGlmIChpbkNsYXNzKSB7XG4gICAgICAgICAgICAgICAgcmUgKz0gXCJcXFxcXCIgKyBjO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGluQ2xhc3MgPSB0cnVlO1xuICAgICAgICAgICAgICBjbGFzc1N0YXJ0ID0gaTtcbiAgICAgICAgICAgICAgcmVDbGFzc1N0YXJ0ID0gcmUubGVuZ3RoO1xuICAgICAgICAgICAgICByZSArPSBjO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgXCJdXCI6XG4gICAgICAgICAgICAgIGlmIChpID09PSBjbGFzc1N0YXJ0ICsgMSB8fCAhaW5DbGFzcykge1xuICAgICAgICAgICAgICAgIHJlICs9IFwiXFxcXFwiICsgYztcbiAgICAgICAgICAgICAgICBlc2NhcGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGhhc01hZ2ljID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaW5DbGFzcyA9IGZhbHNlO1xuICAgICAgICAgICAgICByZSArPSBjO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGNsZWFyU3RhdGVDaGFyKCk7XG4gICAgICAgICAgICAgIGlmIChlc2NhcGluZykge1xuICAgICAgICAgICAgICAgIGVzY2FwaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVTcGVjaWFsc1tjXSAmJiAhKGMgPT09IFwiXlwiICYmIGluQ2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgcmUgKz0gXCJcXFxcXCI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmUgKz0gYztcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5DbGFzcykge1xuICAgICAgICB2YXIgY3MgPSBwYXR0ZXJuLnN1YnN0cihjbGFzc1N0YXJ0ICsgMSksIHNwID0gdGhpcy5wYXJzZShjcywgU1VCUEFSU0UpO1xuICAgICAgICByZSA9IHJlLnN1YnN0cigwLCByZUNsYXNzU3RhcnQpICsgXCJcXFxcW1wiICsgc3BbMF07XG4gICAgICAgIGhhc01hZ2ljID0gaGFzTWFnaWMgfHwgc3BbMV07XG4gICAgICB9XG4gICAgICB2YXIgcGw7XG4gICAgICB3aGlsZSAocGwgPSBwYXR0ZXJuTGlzdFN0YWNrLnBvcCgpKSB7XG4gICAgICAgIHZhciB0YWlsID0gcmUuc2xpY2UocGwucmVTdGFydCArIDMpO1xuICAgICAgICB0YWlsID0gdGFpbC5yZXBsYWNlKC8oKD86XFxcXHsyfSkqKShcXFxcPylcXHwvZywgZnVuY3Rpb24oXywgJDEsICQyKSB7XG4gICAgICAgICAgaWYgKCEkMikge1xuICAgICAgICAgICAgJDIgPSBcIlxcXFxcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICQxICsgJDEgKyAkMiArIFwifFwiO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHQgPSBwbC50eXBlID09PSBcIipcIiA/IHN0YXIgOiBwbC50eXBlID09PSBcIj9cIiA/IHFtYXJrIDogXCJcXFxcXCIgKyBwbC50eXBlO1xuICAgICAgICBoYXNNYWdpYyA9IHRydWU7XG4gICAgICAgIHJlID0gcmUuc2xpY2UoMCwgcGwucmVTdGFydCkgKyB0ICsgXCJcXFxcKFwiICsgdGFpbDtcbiAgICAgIH1cbiAgICAgIGNsZWFyU3RhdGVDaGFyKCk7XG4gICAgICBpZiAoZXNjYXBpbmcpIHtcbiAgICAgICAgcmUgKz0gXCJcXFxcXFxcXFwiO1xuICAgICAgfVxuICAgICAgdmFyIGFkZFBhdHRlcm5TdGFydCA9IGZhbHNlO1xuICAgICAgc3dpdGNoIChyZS5jaGFyQXQoMCkpIHtcbiAgICAgICAgY2FzZSBcIi5cIjpcbiAgICAgICAgY2FzZSBcIltcIjpcbiAgICAgICAgY2FzZSBcIihcIjpcbiAgICAgICAgICBhZGRQYXR0ZXJuU3RhcnQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHJlICE9PSBcIlwiICYmIGhhc01hZ2ljKVxuICAgICAgICByZSA9IFwiKD89LilcIiArIHJlO1xuICAgICAgaWYgKGFkZFBhdHRlcm5TdGFydClcbiAgICAgICAgcmUgPSBwYXR0ZXJuU3RhcnQgKyByZTtcbiAgICAgIGlmIChpc1N1YiA9PT0gU1VCUEFSU0UpIHtcbiAgICAgICAgcmV0dXJuIFtyZSwgaGFzTWFnaWNdO1xuICAgICAgfVxuICAgICAgaWYgKCFoYXNNYWdpYykge1xuICAgICAgICByZXR1cm4gZ2xvYlVuZXNjYXBlKHBhdHRlcm4pO1xuICAgICAgfVxuICAgICAgdmFyIGZsYWdzID0gb3B0aW9uczgubm9jYXNlID8gXCJpXCIgOiBcIlwiLCByZWdFeHAgPSBuZXcgUmVnRXhwKFwiXlwiICsgcmUgKyBcIiRcIiwgZmxhZ3MpO1xuICAgICAgcmVnRXhwLl9nbG9iID0gcGF0dGVybjtcbiAgICAgIHJlZ0V4cC5fc3JjID0gcmU7XG4gICAgICByZXR1cm4gcmVnRXhwO1xuICAgIH1cbiAgICBtaW5pbWF0Y2gubWFrZVJlID0gZnVuY3Rpb24ocGF0dGVybiwgb3B0aW9uczgpIHtcbiAgICAgIHJldHVybiBuZXcgTWluaW1hdGNoKHBhdHRlcm4sIG9wdGlvbnM4IHx8IHt9KS5tYWtlUmUoKTtcbiAgICB9O1xuICAgIE1pbmltYXRjaC5wcm90b3R5cGUubWFrZVJlID0gbWFrZVJlO1xuICAgIGZ1bmN0aW9uIG1ha2VSZSgpIHtcbiAgICAgIGlmICh0aGlzLnJlZ2V4cCB8fCB0aGlzLnJlZ2V4cCA9PT0gZmFsc2UpXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2V4cDtcbiAgICAgIHZhciBzZXQgPSB0aGlzLnNldDtcbiAgICAgIGlmICghc2V0Lmxlbmd0aClcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnZXhwID0gZmFsc2U7XG4gICAgICB2YXIgb3B0aW9uczggPSB0aGlzLm9wdGlvbnM7XG4gICAgICB2YXIgdHdvU3RhciA9IG9wdGlvbnM4Lm5vZ2xvYnN0YXIgPyBzdGFyIDogb3B0aW9uczguZG90ID8gdHdvU3RhckRvdCA6IHR3b1N0YXJOb0RvdCwgZmxhZ3MgPSBvcHRpb25zOC5ub2Nhc2UgPyBcImlcIiA6IFwiXCI7XG4gICAgICB2YXIgcmUgPSBzZXQubWFwKGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICAgICAgcmV0dXJuIHBhdHRlcm4ubWFwKGZ1bmN0aW9uKHApIHtcbiAgICAgICAgICByZXR1cm4gcCA9PT0gR0xPQlNUQVIgPyB0d29TdGFyIDogdHlwZW9mIHAgPT09IFwic3RyaW5nXCIgPyByZWdFeHBFc2NhcGUocCkgOiBwLl9zcmM7XG4gICAgICAgIH0pLmpvaW4oXCJcXFxcL1wiKTtcbiAgICAgIH0pLmpvaW4oXCJ8XCIpO1xuICAgICAgcmUgPSBcIl4oPzpcIiArIHJlICsgXCIpJFwiO1xuICAgICAgaWYgKHRoaXMubmVnYXRlKVxuICAgICAgICByZSA9IFwiXig/IVwiICsgcmUgKyBcIikuKiRcIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2V4cCA9IG5ldyBSZWdFeHAocmUsIGZsYWdzKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2V4cCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBtaW5pbWF0Y2gubWF0Y2ggPSBmdW5jdGlvbihsaXN0LCBwYXR0ZXJuLCBvcHRpb25zOCkge1xuICAgICAgdmFyIG1tID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuLCBvcHRpb25zOCk7XG4gICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoZnVuY3Rpb24oZikge1xuICAgICAgICByZXR1cm4gbW0ubWF0Y2goZik7XG4gICAgICB9KTtcbiAgICAgIGlmIChvcHRpb25zOC5ub251bGwgJiYgIWxpc3QubGVuZ3RoKSB7XG4gICAgICAgIGxpc3QucHVzaChwYXR0ZXJuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH07XG4gICAgTWluaW1hdGNoLnByb3RvdHlwZS5tYXRjaCA9IG1hdGNoO1xuICAgIGZ1bmN0aW9uIG1hdGNoKGYsIHBhcnRpYWwpIHtcbiAgICAgIGlmICh0aGlzLmNvbW1lbnQpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmVtcHR5KVxuICAgICAgICByZXR1cm4gZiA9PT0gXCJcIjtcbiAgICAgIGlmIChmID09PSBcIi9cIiAmJiBwYXJ0aWFsKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIHZhciBvcHRpb25zOCA9IHRoaXMub3B0aW9ucztcbiAgICAgIGlmIChwbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICAgIGYgPSBmLnNwbGl0KFwiXFxcXFwiKS5qb2luKFwiL1wiKTtcbiAgICAgIH1cbiAgICAgIGYgPSBmLnNwbGl0KHNsYXNoU3BsaXQpO1xuICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IodGhpcy5wYXR0ZXJuLCBcInNwbGl0XCIsIGYpO1xuICAgICAgfVxuICAgICAgdmFyIHNldCA9IHRoaXMuc2V0O1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBzZXQubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gc2V0W2ldO1xuICAgICAgICB2YXIgaGl0ID0gdGhpcy5tYXRjaE9uZShmLCBwYXR0ZXJuLCBwYXJ0aWFsKTtcbiAgICAgICAgaWYgKGhpdCkge1xuICAgICAgICAgIGlmIChvcHRpb25zOC5mbGlwTmVnYXRlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLm5lZ2F0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LmZsaXBOZWdhdGUpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZTtcbiAgICB9XG4gICAgTWluaW1hdGNoLnByb3RvdHlwZS5tYXRjaE9uZSA9IGZ1bmN0aW9uKGZpbGUsIHBhdHRlcm4sIHBhcnRpYWwpIHtcbiAgICAgIHZhciBvcHRpb25zOCA9IHRoaXMub3B0aW9ucztcbiAgICAgIGlmIChvcHRpb25zOC5kZWJ1Zykge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwibWF0Y2hPbmVcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcInRoaXNcIjogdGhpcyxcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICBwYXR0ZXJuXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4Lm1hdGNoQmFzZSAmJiBwYXR0ZXJuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBmaWxlID0gcGF0aDkuYmFzZW5hbWUoZmlsZS5qb2luKFwiL1wiKSkuc3BsaXQoXCIvXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJtYXRjaE9uZVwiLCBmaWxlLmxlbmd0aCwgcGF0dGVybi5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgZmkgPSAwLCBwaSA9IDAsIGZsID0gZmlsZS5sZW5ndGgsIHBsID0gcGF0dGVybi5sZW5ndGg7IGZpIDwgZmwgJiYgcGkgPCBwbDsgZmkrKywgcGkrKykge1xuICAgICAgICBpZiAob3B0aW9uczguZGVidWcpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwibWF0Y2hPbmUgbG9vcFwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcCA9IHBhdHRlcm5bcGldLCBmID0gZmlsZVtmaV07XG4gICAgICAgIGlmIChvcHRpb25zOC5kZWJ1Zykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocGF0dGVybiwgcCwgZik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHAgPT09IGZhbHNlKVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKHAgPT09IEdMT0JTVEFSKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkdMT0JTVEFSXCIsIFtwYXR0ZXJuLCBwLCBmXSk7XG4gICAgICAgICAgdmFyIGZyID0gZmksIHByID0gcGkgKyAxO1xuICAgICAgICAgIGlmIChwciA9PT0gcGwpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1ZylcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIioqIGF0IHRoZSBlbmRcIik7XG4gICAgICAgICAgICBmb3IgKDsgZmkgPCBmbDsgZmkrKykge1xuICAgICAgICAgICAgICBpZiAoZmlsZVtmaV0gPT09IFwiLlwiIHx8IGZpbGVbZmldID09PSBcIi4uXCIgfHwgIW9wdGlvbnM4LmRvdCAmJiBmaWxlW2ZpXS5jaGFyQXQoMCkgPT09IFwiLlwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBXSElMRTpcbiAgICAgICAgICAgIHdoaWxlIChmciA8IGZsKSB7XG4gICAgICAgICAgICAgIHZhciBzd2FsbG93ZWUgPSBmaWxlW2ZyXTtcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnM4LmRlYnVnKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiXFxuZ2xvYnN0YXIgd2hpbGVcIixcbiAgICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgICBmcixcbiAgICAgICAgICAgICAgICAgIHBhdHRlcm4sXG4gICAgICAgICAgICAgICAgICBwcixcbiAgICAgICAgICAgICAgICAgIHN3YWxsb3dlZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHRoaXMubWF0Y2hPbmUoZmlsZS5zbGljZShmciksIHBhdHRlcm4uc2xpY2UocHIpLCBwYXJ0aWFsKSkge1xuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1ZylcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJnbG9ic3RhciBmb3VuZCBtYXRjaCFcIiwgZnIsIGZsLCBzd2FsbG93ZWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzd2FsbG93ZWUgPT09IFwiLlwiIHx8IHN3YWxsb3dlZSA9PT0gXCIuLlwiIHx8ICFvcHRpb25zOC5kb3QgJiYgc3dhbGxvd2VlLmNoYXJBdCgwKSA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1ZylcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcImRvdCBkZXRlY3RlZCFcIiwgZmlsZSwgZnIsIHBhdHRlcm4sIHByKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIFdISUxFO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uczguZGVidWcpXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiZ2xvYnN0YXIgc3dhbGxvdyBhIHNlZ21lbnQsIGFuZCBjb250aW51ZVwiKTtcbiAgICAgICAgICAgICAgICBmcisrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhcnRpYWwpIHtcbiAgICAgICAgICAgIGlmIChmciA9PT0gZmwpXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhpdDtcbiAgICAgICAgaWYgKHR5cGVvZiBwID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnM4Lm5vY2FzZSkge1xuICAgICAgICAgICAgaGl0ID0gZi50b0xvd2VyQ2FzZSgpID09PSBwLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhpdCA9IGYgPT09IHA7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcInN0cmluZyBtYXRjaFwiLCBwLCBmLCBoaXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoaXQgPSBmLm1hdGNoKHApO1xuICAgICAgICAgIGlmIChvcHRpb25zOC5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcInBhdHRlcm4gbWF0Y2hcIiwgcCwgZiwgaGl0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoaXQpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGZpID09PSBmbCAmJiBwaSA9PT0gcGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGZpID09PSBmbCkge1xuICAgICAgICByZXR1cm4gcGFydGlhbDtcbiAgICAgIH0gZWxzZSBpZiAocGkgPT09IHBsKSB7XG4gICAgICAgIHZhciBlbXB0eUZpbGVFbmQgPSBmaSA9PT0gZmwgLSAxICYmIGZpbGVbZmldID09PSBcIlwiO1xuICAgICAgICByZXR1cm4gZW1wdHlGaWxlRW5kO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwid3RmP1wiKTtcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGdsb2JVbmVzY2FwZShzKSB7XG4gICAgICByZXR1cm4gcy5yZXBsYWNlKC9cXFxcKC4pL2csIFwiJDFcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZ0V4cEVzY2FwZShzKSB7XG4gICAgICByZXR1cm4gcy5yZXBsYWNlKC9bLVtcXF17fSgpKis/LixcXFxcXiR8I1xcc10vZywgXCJcXFxcJCZcIik7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9zcmMvbGliL2luaS5qc1xudmFyIHJlcXVpcmVfaW5pID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9zcmMvbGliL2luaS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgX19hd2FpdGVyID0gZXhwb3J0cyAmJiBleHBvcnRzLl9fYXdhaXRlciB8fCBmdW5jdGlvbih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24ocmVzb2x2ZTIsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHtcbiAgICAgICAgICByZXN1bHQuZG9uZSA/IHJlc29sdmUyKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbihyZXNvbHZlMykge1xuICAgICAgICAgICAgcmVzb2x2ZTMocmVzdWx0LnZhbHVlKTtcbiAgICAgICAgICB9KS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgdmFyIF9fZ2VuZXJhdG9yID0gZXhwb3J0cyAmJiBleHBvcnRzLl9fZ2VuZXJhdG9yIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIGJvZHkpIHtcbiAgICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0WzBdICYgMSlcbiAgICAgICAgICB0aHJvdyB0WzFdO1xuICAgICAgICByZXR1cm4gdFsxXTtcbiAgICAgIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XG4gICAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSksIGc7XG4gICAgICBmdW5jdGlvbiB2ZXJiKG4pIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gc3RlcChbbiwgdl0pO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc3RlcChvcCkge1xuICAgICAgICBpZiAoZilcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICAgICAgd2hpbGUgKF8pXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKVxuICAgICAgICAgICAgICByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdClcbiAgICAgICAgICAgICAgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgdCA9IG9wO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgXy5sYWJlbCsrO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgIF8ubGFiZWwrKztcbiAgICAgICAgICAgICAgICB5ID0gb3BbMV07XG4gICAgICAgICAgICAgICAgb3AgPSBbMF07XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICBvcCA9IF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkge1xuICAgICAgICAgICAgICAgICAgXyA9IDA7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCBvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkge1xuICAgICAgICAgICAgICAgICAgXy5sYWJlbCA9IG9wWzFdO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkge1xuICAgICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMV07XG4gICAgICAgICAgICAgICAgICB0ID0gb3A7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHtcbiAgICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzJdO1xuICAgICAgICAgICAgICAgICAgXy5vcHMucHVzaChvcCk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRbMl0pXG4gICAgICAgICAgICAgICAgICBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBvcCA9IFs2LCBlXTtcbiAgICAgICAgICAgIHkgPSAwO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBmID0gdCA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICBpZiAob3BbMF0gJiA1KVxuICAgICAgICAgIHRocm93IG9wWzFdO1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMgJiYgZXhwb3J0cy5fX2ltcG9ydFN0YXIgfHwgZnVuY3Rpb24obW9kKSB7XG4gICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKVxuICAgICAgICByZXR1cm4gbW9kO1xuICAgICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgICAgaWYgKG1vZCAhPSBudWxsKSB7XG4gICAgICAgIGZvciAodmFyIGsgaW4gbW9kKVxuICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKVxuICAgICAgICAgICAgcmVzdWx0W2tdID0gbW9kW2tdO1xuICAgICAgfVxuICAgICAgcmVzdWx0W1wiZGVmYXVsdFwiXSA9IG1vZDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4gICAgdmFyIGZzNSA9IF9faW1wb3J0U3RhcihfX3JlcXVpcmUoXCJmc1wiKSk7XG4gICAgdmFyIHJlZ2V4ID0ge1xuICAgICAgc2VjdGlvbjogL15cXHMqXFxbKChbXiM7XXxcXFxcI3xcXFxcOykrKVxcXVxccyooWyM7XS4qKT8kLyxcbiAgICAgIHBhcmFtOiAvXlxccyooW1xcd1xcLlxcLVxcX10rKVxccypbPTpdXFxzKiguKj8pXFxzKihbIztdLiopPyQvLFxuICAgICAgY29tbWVudDogL15cXHMqWyM7XS4qJC9cbiAgICB9O1xuICAgIGZ1bmN0aW9uIHBhcnNlMyhmaWxlKSB7XG4gICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uKF9hKSB7XG4gICAgICAgICAgcmV0dXJuIFsyLCBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlMiwgcmVqZWN0KSB7XG4gICAgICAgICAgICBmczUucmVhZEZpbGUoZmlsZSwgXCJ1dGY4XCIsIGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlc29sdmUyKHBhcnNlU3RyaW5nKGRhdGEpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZXhwb3J0cy5wYXJzZSA9IHBhcnNlMztcbiAgICBmdW5jdGlvbiBwYXJzZVN5bmMoZmlsZSkge1xuICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nKGZzNS5yZWFkRmlsZVN5bmMoZmlsZSwgXCJ1dGY4XCIpKTtcbiAgICB9XG4gICAgZXhwb3J0cy5wYXJzZVN5bmMgPSBwYXJzZVN5bmM7XG4gICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoZGF0YSkge1xuICAgICAgdmFyIHNlY3Rpb25Cb2R5ID0ge307XG4gICAgICB2YXIgc2VjdGlvbk5hbWUgPSBudWxsO1xuICAgICAgdmFyIHZhbHVlID0gW1tzZWN0aW9uTmFtZSwgc2VjdGlvbkJvZHldXTtcbiAgICAgIHZhciBsaW5lcyA9IGRhdGEuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLyk7XG4gICAgICBsaW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGxpbmUyKSB7XG4gICAgICAgIHZhciBtYXRjaDtcbiAgICAgICAgaWYgKHJlZ2V4LmNvbW1lbnQudGVzdChsaW5lMikpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZ2V4LnBhcmFtLnRlc3QobGluZTIpKSB7XG4gICAgICAgICAgbWF0Y2ggPSBsaW5lMi5tYXRjaChyZWdleC5wYXJhbSk7XG4gICAgICAgICAgc2VjdGlvbkJvZHlbbWF0Y2hbMV1dID0gbWF0Y2hbMl07XG4gICAgICAgIH0gZWxzZSBpZiAocmVnZXguc2VjdGlvbi50ZXN0KGxpbmUyKSkge1xuICAgICAgICAgIG1hdGNoID0gbGluZTIubWF0Y2gocmVnZXguc2VjdGlvbik7XG4gICAgICAgICAgc2VjdGlvbk5hbWUgPSBtYXRjaFsxXTtcbiAgICAgICAgICBzZWN0aW9uQm9keSA9IHt9O1xuICAgICAgICAgIHZhbHVlLnB1c2goW3NlY3Rpb25OYW1lLCBzZWN0aW9uQm9keV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgZXhwb3J0cy5wYXJzZVN0cmluZyA9IHBhcnNlU3RyaW5nO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9wYWNrYWdlLmpzb25cbnZhciByZXF1aXJlX3BhY2thZ2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvZWRpdG9yY29uZmlnL3BhY2thZ2UuanNvblwiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgbmFtZTogXCJlZGl0b3Jjb25maWdcIixcbiAgICAgIHZlcnNpb246IFwiMC4xNS4zXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJFZGl0b3JDb25maWcgRmlsZSBMb2NhdG9yIGFuZCBJbnRlcnByZXRlciBmb3IgTm9kZS5qc1wiLFxuICAgICAga2V5d29yZHM6IFtcbiAgICAgICAgXCJlZGl0b3Jjb25maWdcIixcbiAgICAgICAgXCJjb3JlXCJcbiAgICAgIF0sXG4gICAgICBtYWluOiBcInNyYy9pbmRleC5qc1wiLFxuICAgICAgY29udHJpYnV0b3JzOiBbXG4gICAgICAgIFwiSG9uZyBYdSAodG9wYnVnLm5ldClcIixcbiAgICAgICAgXCJKZWQgTWFvIChodHRwczovL2dpdGh1Yi5jb20vamVkbWFvLylcIixcbiAgICAgICAgXCJUcmV5IEh1bm5lciAoaHR0cDovL3RyZXlodW5uZXIuY29tKVwiXG4gICAgICBdLFxuICAgICAgZGlyZWN0b3JpZXM6IHtcbiAgICAgICAgYmluOiBcIi4vYmluXCIsXG4gICAgICAgIGxpYjogXCIuL2xpYlwiXG4gICAgICB9LFxuICAgICAgc2NyaXB0czoge1xuICAgICAgICBjbGVhbjogXCJyaW1yYWYgZGlzdFwiLFxuICAgICAgICBwcmVidWlsZDogXCJucG0gcnVuIGNsZWFuXCIsXG4gICAgICAgIGJ1aWxkOiBcInRzY1wiLFxuICAgICAgICBwcmV0ZXN0OiBcIm5wbSBydW4gbGludCAmJiBucG0gcnVuIGJ1aWxkICYmIG5wbSBydW4gY29weSAmJiBjbWFrZSAuXCIsXG4gICAgICAgIHRlc3Q6IFwiY3Rlc3QgLlwiLFxuICAgICAgICBcInByZXRlc3Q6Y2lcIjogXCJucG0gcnVuIHByZXRlc3RcIixcbiAgICAgICAgXCJ0ZXN0OmNpXCI6IFwiY3Rlc3QgLVZWIC0tb3V0cHV0LW9uLWZhaWx1cmUgLlwiLFxuICAgICAgICBsaW50OiBcIm5wbSBydW4gZWNsaW50ICYmIG5wbSBydW4gdHNsaW50XCIsXG4gICAgICAgIGVjbGludDogJ2VjbGludCBjaGVjayAtLWluZGVudF9zaXplIGlnbm9yZSBcInNyYy8qKlwiJyxcbiAgICAgICAgdHNsaW50OiBcInRzbGludCAtLXByb2plY3QgdHNjb25maWcuanNvbiAtLWV4Y2x1ZGUgcGFja2FnZS5qc29uXCIsXG4gICAgICAgIGNvcHk6IFwiY3B5IC5ucG1pZ25vcmUgTElDRU5TRSBSRUFETUUubWQgQ0hBTkdFTE9HLm1kIGRpc3QgJiYgY3B5IGJpbi8qIGRpc3QvYmluICYmIGNweSBzcmMvbGliL2ZubWF0Y2gqLiogZGlzdC9zcmMvbGliXCIsXG4gICAgICAgIHByZXB1YjogXCJucG0gcnVuIGxpbnQgJiYgbnBtIHJ1biBidWlsZCAmJiBucG0gcnVuIGNvcHlcIixcbiAgICAgICAgcHViOiBcIm5wbSBwdWJsaXNoIC4vZGlzdFwiXG4gICAgICB9LFxuICAgICAgcmVwb3NpdG9yeToge1xuICAgICAgICB0eXBlOiBcImdpdFwiLFxuICAgICAgICB1cmw6IFwiZ2l0Oi8vZ2l0aHViLmNvbS9lZGl0b3Jjb25maWcvZWRpdG9yY29uZmlnLWNvcmUtanMuZ2l0XCJcbiAgICAgIH0sXG4gICAgICBidWdzOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9lZGl0b3Jjb25maWcvZWRpdG9yY29uZmlnLWNvcmUtanMvaXNzdWVzXCIsXG4gICAgICBhdXRob3I6IFwiRWRpdG9yQ29uZmlnIFRlYW1cIixcbiAgICAgIGxpY2Vuc2U6IFwiTUlUXCIsXG4gICAgICBkZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgY29tbWFuZGVyOiBcIl4yLjE5LjBcIixcbiAgICAgICAgXCJscnUtY2FjaGVcIjogXCJeNC4xLjVcIixcbiAgICAgICAgc2VtdmVyOiBcIl41LjYuMFwiLFxuICAgICAgICBzaWdtdW5kOiBcIl4xLjAuMVwiXG4gICAgICB9LFxuICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgIFwiQHR5cGVzL21vY2hhXCI6IFwiXjUuMi42XCIsXG4gICAgICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMTAuMTIuMjlcIixcbiAgICAgICAgXCJAdHlwZXMvc2VtdmVyXCI6IFwiXjUuNS4wXCIsXG4gICAgICAgIFwiY3B5LWNsaVwiOiBcIl4yLjAuMFwiLFxuICAgICAgICBlY2xpbnQ6IFwiXjIuOC4xXCIsXG4gICAgICAgIG1vY2hhOiBcIl41LjIuMFwiLFxuICAgICAgICByaW1yYWY6IFwiXjIuNi4zXCIsXG4gICAgICAgIHNob3VsZDogXCJeMTMuMi4zXCIsXG4gICAgICAgIHRzbGludDogXCJeNS4xMy4xXCIsXG4gICAgICAgIHR5cGVzY3JpcHQ6IFwiXjMuMy4zMzMzXCJcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy9zcmMvaW5kZXguanNcbnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9lZGl0b3Jjb25maWcvc3JjL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBfX2F3YWl0ZXIgPSBleHBvcnRzICYmIGV4cG9ydHMuX19hd2FpdGVyIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbihyZXNvbHZlMiwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkge1xuICAgICAgICAgIHJlc3VsdC5kb25lID8gcmVzb2x2ZTIocmVzdWx0LnZhbHVlKSA6IG5ldyBQKGZ1bmN0aW9uKHJlc29sdmUzKSB7XG4gICAgICAgICAgICByZXNvbHZlMyhyZXN1bHQudmFsdWUpO1xuICAgICAgICAgIH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICB2YXIgX19nZW5lcmF0b3IgPSBleHBvcnRzICYmIGV4cG9ydHMuX19nZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgYm9keSkge1xuICAgICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRbMF0gJiAxKVxuICAgICAgICAgIHRocm93IHRbMV07XG4gICAgICAgIHJldHVybiB0WzFdO1xuICAgICAgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZztcbiAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9KSwgZztcbiAgICAgIGZ1bmN0aW9uIHZlcmIobikge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBzdGVwKFtuLCB2XSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzdGVwKG9wKSB7XG4gICAgICAgIGlmIChmKVxuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXylcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpXG4gICAgICAgICAgICAgIHJldHVybiB0O1xuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KVxuICAgICAgICAgICAgICBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdO1xuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICB0ID0gb3A7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBfLmxhYmVsKys7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgXy5sYWJlbCsrO1xuICAgICAgICAgICAgICAgIHkgPSBvcFsxXTtcbiAgICAgICAgICAgICAgICBvcCA9IFswXTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgICAgIG9wID0gXy5vcHMucG9wKCk7XG4gICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7XG4gICAgICAgICAgICAgICAgICBfID0gMDtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSB7XG4gICAgICAgICAgICAgICAgICBfLmxhYmVsID0gb3BbMV07XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7XG4gICAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsxXTtcbiAgICAgICAgICAgICAgICAgIHQgPSBvcDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkge1xuICAgICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMl07XG4gICAgICAgICAgICAgICAgICBfLm9wcy5wdXNoKG9wKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodFsyXSlcbiAgICAgICAgICAgICAgICAgIF8ub3BzLnBvcCgpO1xuICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIG9wID0gWzYsIGVdO1xuICAgICAgICAgICAgeSA9IDA7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGYgPSB0ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpXG4gICAgICAgICAgdGhyb3cgb3BbMV07XG4gICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0cyAmJiBleHBvcnRzLl9faW1wb3J0U3RhciB8fCBmdW5jdGlvbihtb2QpIHtcbiAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpXG4gICAgICAgIHJldHVybiBtb2Q7XG4gICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICBpZiAobW9kICE9IG51bGwpIHtcbiAgICAgICAgZm9yICh2YXIgayBpbiBtb2QpXG4gICAgICAgICAgaWYgKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpXG4gICAgICAgICAgICByZXN1bHRba10gPSBtb2Rba107XG4gICAgICB9XG4gICAgICByZXN1bHRbXCJkZWZhdWx0XCJdID0gbW9kO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzICYmIGV4cG9ydHMuX19pbXBvcnREZWZhdWx0IHx8IGZ1bmN0aW9uKG1vZCkge1xuICAgICAgcmV0dXJuIG1vZCAmJiBtb2QuX19lc01vZHVsZSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHZhciBmczUgPSBfX2ltcG9ydFN0YXIoX19yZXF1aXJlKFwiZnNcIikpO1xuICAgIHZhciBwYXRoOSA9IF9faW1wb3J0U3RhcihfX3JlcXVpcmUoXCJwYXRoXCIpKTtcbiAgICB2YXIgc2VtdmVyID0ge1xuICAgICAgZ3RlOiByZXF1aXJlX2d0ZSgpXG4gICAgfTtcbiAgICB2YXIgZm5tYXRjaF8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmVfZm5tYXRjaCgpKTtcbiAgICB2YXIgaW5pXzEgPSByZXF1aXJlX2luaSgpO1xuICAgIGV4cG9ydHMucGFyc2VTdHJpbmcgPSBpbmlfMS5wYXJzZVN0cmluZztcbiAgICB2YXIgcGFja2FnZV9qc29uXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9wYWNrYWdlKCkpO1xuICAgIHZhciBrbm93blByb3BzID0ge1xuICAgICAgZW5kX29mX2xpbmU6IHRydWUsXG4gICAgICBpbmRlbnRfc3R5bGU6IHRydWUsXG4gICAgICBpbmRlbnRfc2l6ZTogdHJ1ZSxcbiAgICAgIGluc2VydF9maW5hbF9uZXdsaW5lOiB0cnVlLFxuICAgICAgdHJpbV90cmFpbGluZ193aGl0ZXNwYWNlOiB0cnVlLFxuICAgICAgY2hhcnNldDogdHJ1ZVxuICAgIH07XG4gICAgZnVuY3Rpb24gZm5tYXRjaChmaWxlcGF0aCwgZ2xvYikge1xuICAgICAgdmFyIG1hdGNoT3B0aW9ucyA9IHsgbWF0Y2hCYXNlOiB0cnVlLCBkb3Q6IHRydWUsIG5vZXh0OiB0cnVlIH07XG4gICAgICBnbG9iID0gZ2xvYi5yZXBsYWNlKC9cXCpcXCovZywgXCJ7KiwqKi8qKi8qKn1cIik7XG4gICAgICByZXR1cm4gZm5tYXRjaF8xLmRlZmF1bHQoZmlsZXBhdGgsIGdsb2IsIG1hdGNoT3B0aW9ucyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbmZpZ0ZpbGVOYW1lcyhmaWxlcGF0aCwgb3B0aW9uczgpIHtcbiAgICAgIHZhciBwYXRocyA9IFtdO1xuICAgICAgZG8ge1xuICAgICAgICBmaWxlcGF0aCA9IHBhdGg5LmRpcm5hbWUoZmlsZXBhdGgpO1xuICAgICAgICBwYXRocy5wdXNoKHBhdGg5LmpvaW4oZmlsZXBhdGgsIG9wdGlvbnM4LmNvbmZpZykpO1xuICAgICAgfSB3aGlsZSAoZmlsZXBhdGggIT09IG9wdGlvbnM4LnJvb3QpO1xuICAgICAgcmV0dXJuIHBhdGhzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzTWF0Y2hlcyhtYXRjaGVzLCB2ZXJzaW9uKSB7XG4gICAgICBpZiAoXCJpbmRlbnRfc3R5bGVcIiBpbiBtYXRjaGVzICYmIG1hdGNoZXMuaW5kZW50X3N0eWxlID09PSBcInRhYlwiICYmICEoXCJpbmRlbnRfc2l6ZVwiIGluIG1hdGNoZXMpICYmIHNlbXZlci5ndGUodmVyc2lvbiwgXCIwLjEwLjBcIikpIHtcbiAgICAgICAgbWF0Y2hlcy5pbmRlbnRfc2l6ZSA9IFwidGFiXCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJpbmRlbnRfc2l6ZVwiIGluIG1hdGNoZXMgJiYgIShcInRhYl93aWR0aFwiIGluIG1hdGNoZXMpICYmIG1hdGNoZXMuaW5kZW50X3NpemUgIT09IFwidGFiXCIpIHtcbiAgICAgICAgbWF0Y2hlcy50YWJfd2lkdGggPSBtYXRjaGVzLmluZGVudF9zaXplO1xuICAgICAgfVxuICAgICAgaWYgKFwiaW5kZW50X3NpemVcIiBpbiBtYXRjaGVzICYmIFwidGFiX3dpZHRoXCIgaW4gbWF0Y2hlcyAmJiBtYXRjaGVzLmluZGVudF9zaXplID09PSBcInRhYlwiKSB7XG4gICAgICAgIG1hdGNoZXMuaW5kZW50X3NpemUgPSBtYXRjaGVzLnRhYl93aWR0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaGVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzT3B0aW9ucyhvcHRpb25zOCwgZmlsZXBhdGgpIHtcbiAgICAgIGlmIChvcHRpb25zOCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdGlvbnM4ID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb25maWc6IG9wdGlvbnM4LmNvbmZpZyB8fCBcIi5lZGl0b3Jjb25maWdcIixcbiAgICAgICAgdmVyc2lvbjogb3B0aW9uczgudmVyc2lvbiB8fCBwYWNrYWdlX2pzb25fMS5kZWZhdWx0LnZlcnNpb24sXG4gICAgICAgIHJvb3Q6IHBhdGg5LnJlc29sdmUob3B0aW9uczgucm9vdCB8fCBwYXRoOS5wYXJzZShmaWxlcGF0aCkucm9vdClcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1aWxkRnVsbEdsb2IocGF0aFByZWZpeCwgZ2xvYikge1xuICAgICAgc3dpdGNoIChnbG9iLmluZGV4T2YoXCIvXCIpKSB7XG4gICAgICAgIGNhc2UgLTE6XG4gICAgICAgICAgZ2xvYiA9IFwiKiovXCIgKyBnbG9iO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgZ2xvYiA9IGdsb2Iuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhdGg5LmpvaW4ocGF0aFByZWZpeCwgZ2xvYik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dGVuZFByb3BzKHByb3BzLCBvcHRpb25zOCkge1xuICAgICAgaWYgKHByb3BzID09PSB2b2lkIDApIHtcbiAgICAgICAgcHJvcHMgPSB7fTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zOCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdGlvbnM4ID0ge307XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBrZXkgaW4gb3B0aW9uczgpIHtcbiAgICAgICAgaWYgKG9wdGlvbnM4Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBvcHRpb25zOFtrZXldO1xuICAgICAgICAgIHZhciBrZXkyID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgdmFyIHZhbHVlMiA9IHZhbHVlO1xuICAgICAgICAgIGlmIChrbm93blByb3BzW2tleTJdKSB7XG4gICAgICAgICAgICB2YWx1ZTIgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFsdWUyID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB2YWx1ZTIgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9wc1trZXkyXSA9IHZhbHVlMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZUZyb21Db25maWdzKGNvbmZpZ3MsIGZpbGVwYXRoLCBvcHRpb25zOCkge1xuICAgICAgcmV0dXJuIHByb2Nlc3NNYXRjaGVzKGNvbmZpZ3MucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbihtYXRjaGVzLCBmaWxlKSB7XG4gICAgICAgIHZhciBwYXRoUHJlZml4ID0gcGF0aDkuZGlybmFtZShmaWxlLm5hbWUpO1xuICAgICAgICBmaWxlLmNvbnRlbnRzLmZvckVhY2goZnVuY3Rpb24oc2VjdGlvbikge1xuICAgICAgICAgIHZhciBnbG9iID0gc2VjdGlvblswXTtcbiAgICAgICAgICB2YXIgb3B0aW9uczIyID0gc2VjdGlvblsxXTtcbiAgICAgICAgICBpZiAoIWdsb2IpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGZ1bGxHbG9iID0gYnVpbGRGdWxsR2xvYihwYXRoUHJlZml4LCBnbG9iKTtcbiAgICAgICAgICBpZiAoIWZubWF0Y2goZmlsZXBhdGgsIGZ1bGxHbG9iKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXRjaGVzID0gZXh0ZW5kUHJvcHMobWF0Y2hlcywgb3B0aW9uczIyKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzO1xuICAgICAgfSwge30pLCBvcHRpb25zOC52ZXJzaW9uKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q29uZmlnc0ZvckZpbGVzKGZpbGVzKSB7XG4gICAgICB2YXIgY29uZmlncyA9IFtdO1xuICAgICAgZm9yICh2YXIgaSBpbiBmaWxlcykge1xuICAgICAgICBpZiAoZmlsZXMuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICB2YXIgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgIHZhciBjb250ZW50cyA9IGluaV8xLnBhcnNlU3RyaW5nKGZpbGUuY29udGVudHMpO1xuICAgICAgICAgIGNvbmZpZ3MucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICBjb250ZW50c1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICgoY29udGVudHNbMF1bMV0ucm9vdCB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY29uZmlncztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENvbmZpZ0ZpbGVzKGZpbGVwYXRocykge1xuICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbihfYSkge1xuICAgICAgICAgIHJldHVybiBbMiwgUHJvbWlzZS5hbGwoZmlsZXBhdGhzLm1hcChmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZTIpIHtcbiAgICAgICAgICAgICAgZnM1LnJlYWRGaWxlKG5hbWUsIFwidXRmOFwiLCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlMih7XG4gICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgY29udGVudHM6IGVyciA/IFwiXCIgOiBkYXRhXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENvbmZpZ0ZpbGVzU3luYyhmaWxlcGF0aHMpIHtcbiAgICAgIHZhciBmaWxlcyA9IFtdO1xuICAgICAgdmFyIGZpbGU7XG4gICAgICBmaWxlcGF0aHMuZm9yRWFjaChmdW5jdGlvbihmaWxlcGF0aCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZpbGUgPSBmczUucmVhZEZpbGVTeW5jKGZpbGVwYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBmaWxlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBmaWxlcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWxlcGF0aCxcbiAgICAgICAgICBjb250ZW50czogZmlsZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvcHRzKGZpbGVwYXRoLCBvcHRpb25zOCkge1xuICAgICAgaWYgKG9wdGlvbnM4ID09PSB2b2lkIDApIHtcbiAgICAgICAgb3B0aW9uczggPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciByZXNvbHZlZEZpbGVQYXRoID0gcGF0aDkucmVzb2x2ZShmaWxlcGF0aCk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICByZXNvbHZlZEZpbGVQYXRoLFxuICAgICAgICBwcm9jZXNzT3B0aW9ucyhvcHRpb25zOCwgcmVzb2x2ZWRGaWxlUGF0aClcbiAgICAgIF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlRnJvbUZpbGVzKGZpbGVwYXRoLCBmaWxlcywgb3B0aW9uczgpIHtcbiAgICAgIGlmIChvcHRpb25zOCA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdGlvbnM4ID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIF9hLCByZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zO1xuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2IpIHtcbiAgICAgICAgICBfYSA9IG9wdHMoZmlsZXBhdGgsIG9wdGlvbnM4KSwgcmVzb2x2ZWRGaWxlUGF0aCA9IF9hWzBdLCBwcm9jZXNzZWRPcHRpb25zID0gX2FbMV07XG4gICAgICAgICAgcmV0dXJuIFsyLCBmaWxlcy50aGVuKGdldENvbmZpZ3NGb3JGaWxlcykudGhlbihmdW5jdGlvbihjb25maWdzKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGcm9tQ29uZmlncyhjb25maWdzLCByZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zKTtcbiAgICAgICAgICB9KV07XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMucGFyc2VGcm9tRmlsZXMgPSBwYXJzZUZyb21GaWxlcztcbiAgICBmdW5jdGlvbiBwYXJzZUZyb21GaWxlc1N5bmMoZmlsZXBhdGgsIGZpbGVzLCBvcHRpb25zOCkge1xuICAgICAgaWYgKG9wdGlvbnM4ID09PSB2b2lkIDApIHtcbiAgICAgICAgb3B0aW9uczggPSB7fTtcbiAgICAgIH1cbiAgICAgIHZhciBfYSA9IG9wdHMoZmlsZXBhdGgsIG9wdGlvbnM4KSwgcmVzb2x2ZWRGaWxlUGF0aCA9IF9hWzBdLCBwcm9jZXNzZWRPcHRpb25zID0gX2FbMV07XG4gICAgICByZXR1cm4gcGFyc2VGcm9tQ29uZmlncyhnZXRDb25maWdzRm9yRmlsZXMoZmlsZXMpLCByZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zKTtcbiAgICB9XG4gICAgZXhwb3J0cy5wYXJzZUZyb21GaWxlc1N5bmMgPSBwYXJzZUZyb21GaWxlc1N5bmM7XG4gICAgZnVuY3Rpb24gcGFyc2UzKF9maWxlcGF0aCwgX29wdGlvbnMpIHtcbiAgICAgIGlmIChfb3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgICAgIF9vcHRpb25zID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIF9hLCByZXNvbHZlZEZpbGVQYXRoLCBwcm9jZXNzZWRPcHRpb25zLCBmaWxlcGF0aHM7XG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbihfYikge1xuICAgICAgICAgIF9hID0gb3B0cyhfZmlsZXBhdGgsIF9vcHRpb25zKSwgcmVzb2x2ZWRGaWxlUGF0aCA9IF9hWzBdLCBwcm9jZXNzZWRPcHRpb25zID0gX2FbMV07XG4gICAgICAgICAgZmlsZXBhdGhzID0gZ2V0Q29uZmlnRmlsZU5hbWVzKHJlc29sdmVkRmlsZVBhdGgsIHByb2Nlc3NlZE9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybiBbMiwgcmVhZENvbmZpZ0ZpbGVzKGZpbGVwYXRocykudGhlbihnZXRDb25maWdzRm9yRmlsZXMpLnRoZW4oZnVuY3Rpb24oY29uZmlncykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnJvbUNvbmZpZ3MoY29uZmlncywgcmVzb2x2ZWRGaWxlUGF0aCwgcHJvY2Vzc2VkT3B0aW9ucyk7XG4gICAgICAgICAgfSldO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBleHBvcnRzLnBhcnNlID0gcGFyc2UzO1xuICAgIGZ1bmN0aW9uIHBhcnNlU3luYyhfZmlsZXBhdGgsIF9vcHRpb25zKSB7XG4gICAgICBpZiAoX29wdGlvbnMgPT09IHZvaWQgMCkge1xuICAgICAgICBfb3B0aW9ucyA9IHt9O1xuICAgICAgfVxuICAgICAgdmFyIF9hID0gb3B0cyhfZmlsZXBhdGgsIF9vcHRpb25zKSwgcmVzb2x2ZWRGaWxlUGF0aCA9IF9hWzBdLCBwcm9jZXNzZWRPcHRpb25zID0gX2FbMV07XG4gICAgICB2YXIgZmlsZXBhdGhzID0gZ2V0Q29uZmlnRmlsZU5hbWVzKHJlc29sdmVkRmlsZVBhdGgsIHByb2Nlc3NlZE9wdGlvbnMpO1xuICAgICAgdmFyIGZpbGVzID0gcmVhZENvbmZpZ0ZpbGVzU3luYyhmaWxlcGF0aHMpO1xuICAgICAgcmV0dXJuIHBhcnNlRnJvbUNvbmZpZ3MoZ2V0Q29uZmlnc0ZvckZpbGVzKGZpbGVzKSwgcmVzb2x2ZWRGaWxlUGF0aCwgcHJvY2Vzc2VkT3B0aW9ucyk7XG4gICAgfVxuICAgIGV4cG9ydHMucGFyc2VTeW5jID0gcGFyc2VTeW5jO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy10by1wcmV0dGllci9pbmRleC5qc1xudmFyIHJlcXVpcmVfZWRpdG9yY29uZmlnX3RvX3ByZXR0aWVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2VkaXRvcmNvbmZpZy10by1wcmV0dGllci9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZWRpdG9yQ29uZmlnVG9QcmV0dGllcjI7XG4gICAgZnVuY3Rpb24gcmVtb3ZlVW5zZXQoZWRpdG9yQ29uZmlnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhlZGl0b3JDb25maWcpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICAgIGlmIChlZGl0b3JDb25maWdba2V5XSA9PT0gXCJ1bnNldFwiKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W2tleV0gPSBlZGl0b3JDb25maWdba2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVkaXRvckNvbmZpZ1RvUHJldHRpZXIyKGVkaXRvckNvbmZpZykge1xuICAgICAgaWYgKCFlZGl0b3JDb25maWcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBlZGl0b3JDb25maWcgPSByZW1vdmVVbnNldChlZGl0b3JDb25maWcpO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGVkaXRvckNvbmZpZykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICBpZiAoZWRpdG9yQ29uZmlnLmluZGVudF9zdHlsZSkge1xuICAgICAgICByZXN1bHQudXNlVGFicyA9IGVkaXRvckNvbmZpZy5pbmRlbnRfc3R5bGUgPT09IFwidGFiXCI7XG4gICAgICB9XG4gICAgICBpZiAoZWRpdG9yQ29uZmlnLmluZGVudF9zaXplID09PSBcInRhYlwiKSB7XG4gICAgICAgIHJlc3VsdC51c2VUYWJzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQudXNlVGFicyAmJiBlZGl0b3JDb25maWcudGFiX3dpZHRoKSB7XG4gICAgICAgIHJlc3VsdC50YWJXaWR0aCA9IGVkaXRvckNvbmZpZy50YWJfd2lkdGg7XG4gICAgICB9IGVsc2UgaWYgKGVkaXRvckNvbmZpZy5pbmRlbnRfc3R5bGUgPT09IFwic3BhY2VcIiAmJiBlZGl0b3JDb25maWcuaW5kZW50X3NpemUgJiYgZWRpdG9yQ29uZmlnLmluZGVudF9zaXplICE9PSBcInRhYlwiKSB7XG4gICAgICAgIHJlc3VsdC50YWJXaWR0aCA9IGVkaXRvckNvbmZpZy5pbmRlbnRfc2l6ZTtcbiAgICAgIH0gZWxzZSBpZiAoZWRpdG9yQ29uZmlnLnRhYl93aWR0aCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIHJlc3VsdC50YWJXaWR0aCA9IGVkaXRvckNvbmZpZy50YWJfd2lkdGg7XG4gICAgICB9XG4gICAgICBpZiAoZWRpdG9yQ29uZmlnLm1heF9saW5lX2xlbmd0aCkge1xuICAgICAgICBpZiAoZWRpdG9yQ29uZmlnLm1heF9saW5lX2xlbmd0aCA9PT0gXCJvZmZcIikge1xuICAgICAgICAgIHJlc3VsdC5wcmludFdpZHRoID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdC5wcmludFdpZHRoID0gZWRpdG9yQ29uZmlnLm1heF9saW5lX2xlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVkaXRvckNvbmZpZy5xdW90ZV90eXBlID09PSBcInNpbmdsZVwiKSB7XG4gICAgICAgIHJlc3VsdC5zaW5nbGVRdW90ZSA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGVkaXRvckNvbmZpZy5xdW90ZV90eXBlID09PSBcImRvdWJsZVwiKSB7XG4gICAgICAgIHJlc3VsdC5zaW5nbGVRdW90ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKFtcImNyXCIsIFwiY3JsZlwiLCBcImxmXCJdLmluZGV4T2YoZWRpdG9yQ29uZmlnLmVuZF9vZl9saW5lKSAhPT0gLTEpIHtcbiAgICAgICAgcmVzdWx0LmVuZE9mTGluZSA9IGVkaXRvckNvbmZpZy5lbmRfb2ZfbGluZTtcbiAgICAgIH1cbiAgICAgIGlmIChlZGl0b3JDb25maWcuaW5zZXJ0X2ZpbmFsX25ld2xpbmUgPT09IGZhbHNlIHx8IGVkaXRvckNvbmZpZy5pbnNlcnRfZmluYWxfbmV3bGluZSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXN1bHQuaW5zZXJ0RmluYWxOZXdsaW5lID0gZWRpdG9yQ29uZmlnLmluc2VydF9maW5hbF9uZXdsaW5lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvbGliL3BhcnNlci5qc1xudmFyIHJlcXVpcmVfcGFyc2VyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9wYXJzZXIuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgUGFyc2VyRU5EID0gMTExNDExMjtcbiAgICB2YXIgUGFyc2VyRXJyb3IgPSBjbGFzcyBfUGFyc2VyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgY29uc3RydWN0b3IobXNnLCBmaWxlbmFtZSwgbGluZW51bWJlcikge1xuICAgICAgICBzdXBlcihcIltQYXJzZXJFcnJvcl0gXCIgKyBtc2csIGZpbGVuYW1lLCBsaW5lbnVtYmVyKTtcbiAgICAgICAgdGhpcy5uYW1lID0gXCJQYXJzZXJFcnJvclwiO1xuICAgICAgICB0aGlzLmNvZGUgPSBcIlBhcnNlckVycm9yXCI7XG4gICAgICAgIGlmIChFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSlcbiAgICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBfUGFyc2VyRXJyb3IpO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIFN0YXRlID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IocGFyc2VyKSB7XG4gICAgICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgICAgICB0aGlzLmJ1ZiA9IFwiXCI7XG4gICAgICAgIHRoaXMucmV0dXJuZWQgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc3VsdCA9IG51bGw7XG4gICAgICAgIHRoaXMucmVzdWx0VGFibGUgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc3VsdEFyciA9IG51bGw7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgUGFyc2VyID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgdGhpcy5jb2wgPSAwO1xuICAgICAgICB0aGlzLmxpbmUgPSAwO1xuICAgICAgICB0aGlzLm9iaiA9IHt9O1xuICAgICAgICB0aGlzLmN0eCA9IHRoaXMub2JqO1xuICAgICAgICB0aGlzLnN0YWNrID0gW107XG4gICAgICAgIHRoaXMuX2J1ZiA9IFwiXCI7XG4gICAgICAgIHRoaXMuY2hhciA9IG51bGw7XG4gICAgICAgIHRoaXMuaWkgPSAwO1xuICAgICAgICB0aGlzLnN0YXRlID0gbmV3IFN0YXRlKHRoaXMucGFyc2VTdGFydCk7XG4gICAgICB9XG4gICAgICBwYXJzZShzdHIpIHtcbiAgICAgICAgaWYgKHN0ci5sZW5ndGggPT09IDAgfHwgc3RyLmxlbmd0aCA9PSBudWxsKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5fYnVmID0gU3RyaW5nKHN0cik7XG4gICAgICAgIHRoaXMuaWkgPSAtMTtcbiAgICAgICAgdGhpcy5jaGFyID0gLTE7XG4gICAgICAgIGxldCBnZXROZXh0O1xuICAgICAgICB3aGlsZSAoZ2V0TmV4dCA9PT0gZmFsc2UgfHwgdGhpcy5uZXh0Q2hhcigpKSB7XG4gICAgICAgICAgZ2V0TmV4dCA9IHRoaXMucnVuT25lKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYnVmID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIG5leHRDaGFyKCkge1xuICAgICAgICBpZiAodGhpcy5jaGFyID09PSAxMCkge1xuICAgICAgICAgICsrdGhpcy5saW5lO1xuICAgICAgICAgIHRoaXMuY29sID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgKyt0aGlzLmlpO1xuICAgICAgICB0aGlzLmNoYXIgPSB0aGlzLl9idWYuY29kZVBvaW50QXQodGhpcy5paSk7XG4gICAgICAgICsrdGhpcy5wb3M7XG4gICAgICAgICsrdGhpcy5jb2w7XG4gICAgICAgIHJldHVybiB0aGlzLmhhdmVCdWZmZXIoKTtcbiAgICAgIH1cbiAgICAgIGhhdmVCdWZmZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlpIDwgdGhpcy5fYnVmLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJ1bk9uZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUucGFyc2VyLmNhbGwodGhpcywgdGhpcy5zdGF0ZS5yZXR1cm5lZCk7XG4gICAgICB9XG4gICAgICBmaW5pc2goKSB7XG4gICAgICAgIHRoaXMuY2hhciA9IFBhcnNlckVORDtcbiAgICAgICAgbGV0IGxhc3Q7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBsYXN0ID0gdGhpcy5zdGF0ZS5wYXJzZXI7XG4gICAgICAgICAgdGhpcy5ydW5PbmUoKTtcbiAgICAgICAgfSB3aGlsZSAodGhpcy5zdGF0ZS5wYXJzZXIgIT09IGxhc3QpO1xuICAgICAgICB0aGlzLmN0eCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9idWYgPSBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcy5vYmo7XG4gICAgICB9XG4gICAgICBuZXh0KGZuKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VyRXJyb3IoXCJUcmllZCB0byBzZXQgc3RhdGUgdG8gbm9uLWV4aXN0ZW50IHN0YXRlOiBcIiArIEpTT04uc3RyaW5naWZ5KGZuKSk7XG4gICAgICAgIHRoaXMuc3RhdGUucGFyc2VyID0gZm47XG4gICAgICB9XG4gICAgICBnb3RvKGZuKSB7XG4gICAgICAgIHRoaXMubmV4dChmbik7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1bk9uZSgpO1xuICAgICAgfVxuICAgICAgY2FsbChmbiwgcmV0dXJuV2l0aCkge1xuICAgICAgICBpZiAocmV0dXJuV2l0aClcbiAgICAgICAgICB0aGlzLm5leHQocmV0dXJuV2l0aCk7XG4gICAgICAgIHRoaXMuc3RhY2sucHVzaCh0aGlzLnN0YXRlKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ldyBTdGF0ZShmbik7XG4gICAgICB9XG4gICAgICBjYWxsTm93KGZuLCByZXR1cm5XaXRoKSB7XG4gICAgICAgIHRoaXMuY2FsbChmbiwgcmV0dXJuV2l0aCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1bk9uZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YWNrLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBQYXJzZXJFcnJvcihcIlN0YWNrIHVuZGVyZmxvd1wiKSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdm9pZCAwKVxuICAgICAgICAgIHZhbHVlID0gdGhpcy5zdGF0ZS5idWY7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnN0YWNrLnBvcCgpO1xuICAgICAgICB0aGlzLnN0YXRlLnJldHVybmVkID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm5Ob3codmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZXR1cm4odmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5ydW5PbmUoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN1bWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoYXIgPT09IFBhcnNlckVORClcbiAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBQYXJzZXJFcnJvcihcIlVuZXhwZWN0ZWQgZW5kLW9mLWJ1ZmZlclwiKSk7XG4gICAgICAgIHRoaXMuc3RhdGUuYnVmICs9IHRoaXMuX2J1Zlt0aGlzLmlpXTtcbiAgICAgIH1cbiAgICAgIGVycm9yKGVycikge1xuICAgICAgICBlcnIubGluZSA9IHRoaXMubGluZTtcbiAgICAgICAgZXJyLmNvbCA9IHRoaXMuY29sO1xuICAgICAgICBlcnIucG9zID0gdGhpcy5wb3M7XG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcGFyc2VTdGFydCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlckVycm9yKFwiTXVzdCBkZWNsYXJlIGEgcGFyc2VTdGFydCBtZXRob2RcIik7XG4gICAgICB9XG4gICAgfTtcbiAgICBQYXJzZXIuRU5EID0gUGFyc2VyRU5EO1xuICAgIFBhcnNlci5FcnJvciA9IFBhcnNlckVycm9yO1xuICAgIG1vZHVsZS5leHBvcnRzID0gUGFyc2VyO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9jcmVhdGUtZGF0ZXRpbWUuanNcbnZhciByZXF1aXJlX2NyZWF0ZV9kYXRldGltZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9AaWFybmEvdG9tbC9saWIvY3JlYXRlLWRhdGV0aW1lLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICBpZiAoaXNOYU4oZGF0ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgRGF0ZXRpbWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9mb3JtYXQtbnVtLmpzXG52YXIgcmVxdWlyZV9mb3JtYXRfbnVtID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9mb3JtYXQtbnVtLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAoZCwgbnVtKSA9PiB7XG4gICAgICBudW0gPSBTdHJpbmcobnVtKTtcbiAgICAgIHdoaWxlIChudW0ubGVuZ3RoIDwgZClcbiAgICAgICAgbnVtID0gXCIwXCIgKyBudW07XG4gICAgICByZXR1cm4gbnVtO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvbGliL2NyZWF0ZS1kYXRldGltZS1mbG9hdC5qc1xudmFyIHJlcXVpcmVfY3JlYXRlX2RhdGV0aW1lX2Zsb2F0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9jcmVhdGUtZGF0ZXRpbWUtZmxvYXQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZiA9IHJlcXVpcmVfZm9ybWF0X251bSgpO1xuICAgIHZhciBGbG9hdGluZ0RhdGVUaW1lID0gY2xhc3MgZXh0ZW5kcyBEYXRlIHtcbiAgICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHN1cGVyKHZhbHVlICsgXCJaXCIpO1xuICAgICAgICB0aGlzLmlzRmxvYXRpbmcgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdG9JU09TdHJpbmcoKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBgJHt0aGlzLmdldFVUQ0Z1bGxZZWFyKCl9LSR7ZigyLCB0aGlzLmdldFVUQ01vbnRoKCkgKyAxKX0tJHtmKDIsIHRoaXMuZ2V0VVRDRGF0ZSgpKX1gO1xuICAgICAgICBjb25zdCB0aW1lID0gYCR7ZigyLCB0aGlzLmdldFVUQ0hvdXJzKCkpfToke2YoMiwgdGhpcy5nZXRVVENNaW51dGVzKCkpfToke2YoMiwgdGhpcy5nZXRVVENTZWNvbmRzKCkpfS4ke2YoMywgdGhpcy5nZXRVVENNaWxsaXNlY29uZHMoKSl9YDtcbiAgICAgICAgcmV0dXJuIGAke2RhdGV9VCR7dGltZX1gO1xuICAgICAgfVxuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRmxvYXRpbmdEYXRlVGltZSh2YWx1ZSk7XG4gICAgICBpZiAoaXNOYU4oZGF0ZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgRGF0ZXRpbWVcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9jcmVhdGUtZGF0ZS5qc1xudmFyIHJlcXVpcmVfY3JlYXRlX2RhdGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvbGliL2NyZWF0ZS1kYXRlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGYgPSByZXF1aXJlX2Zvcm1hdF9udW0oKTtcbiAgICB2YXIgRGF0ZVRpbWUgPSBnbG9iYWwuRGF0ZTtcbiAgICB2YXIgRGF0ZTIgPSBjbGFzcyBleHRlbmRzIERhdGVUaW1lIHtcbiAgICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHN1cGVyKHZhbHVlKTtcbiAgICAgICAgdGhpcy5pc0RhdGUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdG9JU09TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmdldFVUQ0Z1bGxZZWFyKCl9LSR7ZigyLCB0aGlzLmdldFVUQ01vbnRoKCkgKyAxKX0tJHtmKDIsIHRoaXMuZ2V0VVRDRGF0ZSgpKX1gO1xuICAgICAgfVxuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZTIodmFsdWUpO1xuICAgICAgaWYgKGlzTmFOKGRhdGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIERhdGV0aW1lXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AaWFybmEvdG9tbC9saWIvY3JlYXRlLXRpbWUuanNcbnZhciByZXF1aXJlX2NyZWF0ZV90aW1lID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi9jcmVhdGUtdGltZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBmID0gcmVxdWlyZV9mb3JtYXRfbnVtKCk7XG4gICAgdmFyIFRpbWUgPSBjbGFzcyBleHRlbmRzIERhdGUge1xuICAgICAgY29uc3RydWN0b3IodmFsdWUpIHtcbiAgICAgICAgc3VwZXIoYDAwMDAtMDEtMDFUJHt2YWx1ZX1aYCk7XG4gICAgICAgIHRoaXMuaXNUaW1lID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRvSVNPU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gYCR7ZigyLCB0aGlzLmdldFVUQ0hvdXJzKCkpfToke2YoMiwgdGhpcy5nZXRVVENNaW51dGVzKCkpfToke2YoMiwgdGhpcy5nZXRVVENTZWNvbmRzKCkpfS4ke2YoMywgdGhpcy5nZXRVVENNaWxsaXNlY29uZHMoKSl9YDtcbiAgICAgIH1cbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IFRpbWUodmFsdWUpO1xuICAgICAgaWYgKGlzTmFOKGRhdGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIERhdGV0aW1lXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AaWFybmEvdG9tbC9saWIvdG9tbC1wYXJzZXIuanNcbnZhciByZXF1aXJlX3RvbWxfcGFyc2VyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BpYXJuYS90b21sL2xpYi90b21sLXBhcnNlci5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0gbWFrZVBhcnNlckNsYXNzKHJlcXVpcmVfcGFyc2VyKCkpO1xuICAgIG1vZHVsZS5leHBvcnRzLm1ha2VQYXJzZXJDbGFzcyA9IG1ha2VQYXJzZXJDbGFzcztcbiAgICB2YXIgVG9tbEVycm9yID0gY2xhc3MgX1RvbWxFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICAgIGNvbnN0cnVjdG9yKG1zZykge1xuICAgICAgICBzdXBlcihtc2cpO1xuICAgICAgICB0aGlzLm5hbWUgPSBcIlRvbWxFcnJvclwiO1xuICAgICAgICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpXG4gICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgX1RvbWxFcnJvcik7XG4gICAgICAgIHRoaXMuZnJvbVRPTUwgPSB0cnVlO1xuICAgICAgICB0aGlzLndyYXBwZWQgPSBudWxsO1xuICAgICAgfVxuICAgIH07XG4gICAgVG9tbEVycm9yLndyYXAgPSAoZXJyKSA9PiB7XG4gICAgICBjb25zdCB0ZXJyID0gbmV3IFRvbWxFcnJvcihlcnIubWVzc2FnZSk7XG4gICAgICB0ZXJyLmNvZGUgPSBlcnIuY29kZTtcbiAgICAgIHRlcnIud3JhcHBlZCA9IGVycjtcbiAgICAgIHJldHVybiB0ZXJyO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMuVG9tbEVycm9yID0gVG9tbEVycm9yO1xuICAgIHZhciBjcmVhdGVEYXRlVGltZSA9IHJlcXVpcmVfY3JlYXRlX2RhdGV0aW1lKCk7XG4gICAgdmFyIGNyZWF0ZURhdGVUaW1lRmxvYXQgPSByZXF1aXJlX2NyZWF0ZV9kYXRldGltZV9mbG9hdCgpO1xuICAgIHZhciBjcmVhdGVEYXRlID0gcmVxdWlyZV9jcmVhdGVfZGF0ZSgpO1xuICAgIHZhciBjcmVhdGVUaW1lID0gcmVxdWlyZV9jcmVhdGVfdGltZSgpO1xuICAgIHZhciBDVFJMX0kgPSA5O1xuICAgIHZhciBDVFJMX0ogPSAxMDtcbiAgICB2YXIgQ1RSTF9NID0gMTM7XG4gICAgdmFyIENUUkxfQ0hBUl9CT1VOREFSWSA9IDMxO1xuICAgIHZhciBDSEFSX1NQID0gMzI7XG4gICAgdmFyIENIQVJfUVVPVCA9IDM0O1xuICAgIHZhciBDSEFSX05VTSA9IDM1O1xuICAgIHZhciBDSEFSX0FQT1MgPSAzOTtcbiAgICB2YXIgQ0hBUl9QTFVTID0gNDM7XG4gICAgdmFyIENIQVJfQ09NTUEgPSA0NDtcbiAgICB2YXIgQ0hBUl9IWVBIRU4gPSA0NTtcbiAgICB2YXIgQ0hBUl9QRVJJT0QgPSA0NjtcbiAgICB2YXIgQ0hBUl8wID0gNDg7XG4gICAgdmFyIENIQVJfMSA9IDQ5O1xuICAgIHZhciBDSEFSXzcgPSA1NTtcbiAgICB2YXIgQ0hBUl85ID0gNTc7XG4gICAgdmFyIENIQVJfQ09MT04gPSA1ODtcbiAgICB2YXIgQ0hBUl9FUVVBTFMgPSA2MTtcbiAgICB2YXIgQ0hBUl9BID0gNjU7XG4gICAgdmFyIENIQVJfRSA9IDY5O1xuICAgIHZhciBDSEFSX0YgPSA3MDtcbiAgICB2YXIgQ0hBUl9UID0gODQ7XG4gICAgdmFyIENIQVJfVSA9IDg1O1xuICAgIHZhciBDSEFSX1ogPSA5MDtcbiAgICB2YXIgQ0hBUl9MT1dCQVIgPSA5NTtcbiAgICB2YXIgQ0hBUl9hID0gOTc7XG4gICAgdmFyIENIQVJfYiA9IDk4O1xuICAgIHZhciBDSEFSX2UgPSAxMDE7XG4gICAgdmFyIENIQVJfZiA9IDEwMjtcbiAgICB2YXIgQ0hBUl9pID0gMTA1O1xuICAgIHZhciBDSEFSX2wgPSAxMDg7XG4gICAgdmFyIENIQVJfbiA9IDExMDtcbiAgICB2YXIgQ0hBUl9vID0gMTExO1xuICAgIHZhciBDSEFSX3IgPSAxMTQ7XG4gICAgdmFyIENIQVJfcyA9IDExNTtcbiAgICB2YXIgQ0hBUl90ID0gMTE2O1xuICAgIHZhciBDSEFSX3UgPSAxMTc7XG4gICAgdmFyIENIQVJfeCA9IDEyMDtcbiAgICB2YXIgQ0hBUl96ID0gMTIyO1xuICAgIHZhciBDSEFSX0xDVUIgPSAxMjM7XG4gICAgdmFyIENIQVJfUkNVQiA9IDEyNTtcbiAgICB2YXIgQ0hBUl9MU1FCID0gOTE7XG4gICAgdmFyIENIQVJfQlNPTCA9IDkyO1xuICAgIHZhciBDSEFSX1JTUUIgPSA5MztcbiAgICB2YXIgQ0hBUl9ERUwgPSAxMjc7XG4gICAgdmFyIFNVUlJPR0FURV9GSVJTVCA9IDU1Mjk2O1xuICAgIHZhciBTVVJST0dBVEVfTEFTVCA9IDU3MzQzO1xuICAgIHZhciBlc2NhcGVzID0ge1xuICAgICAgW0NIQVJfYl06IFwiXFxiXCIsXG4gICAgICBbQ0hBUl90XTogXCJcdFwiLFxuICAgICAgW0NIQVJfbl06IFwiXFxuXCIsXG4gICAgICBbQ0hBUl9mXTogXCJcXGZcIixcbiAgICAgIFtDSEFSX3JdOiBcIlxcclwiLFxuICAgICAgW0NIQVJfUVVPVF06ICdcIicsXG4gICAgICBbQ0hBUl9CU09MXTogXCJcXFxcXCJcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGlzRGlnaXQoY3ApIHtcbiAgICAgIHJldHVybiBjcCA+PSBDSEFSXzAgJiYgY3AgPD0gQ0hBUl85O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0hleGl0KGNwKSB7XG4gICAgICByZXR1cm4gY3AgPj0gQ0hBUl9BICYmIGNwIDw9IENIQVJfRiB8fCBjcCA+PSBDSEFSX2EgJiYgY3AgPD0gQ0hBUl9mIHx8IGNwID49IENIQVJfMCAmJiBjcCA8PSBDSEFSXzk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQml0KGNwKSB7XG4gICAgICByZXR1cm4gY3AgPT09IENIQVJfMSB8fCBjcCA9PT0gQ0hBUl8wO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc09jdGl0KGNwKSB7XG4gICAgICByZXR1cm4gY3AgPj0gQ0hBUl8wICYmIGNwIDw9IENIQVJfNztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNBbHBoYU51bVF1b3RlSHlwaGVuKGNwKSB7XG4gICAgICByZXR1cm4gY3AgPj0gQ0hBUl9BICYmIGNwIDw9IENIQVJfWiB8fCBjcCA+PSBDSEFSX2EgJiYgY3AgPD0gQ0hBUl96IHx8IGNwID49IENIQVJfMCAmJiBjcCA8PSBDSEFSXzkgfHwgY3AgPT09IENIQVJfQVBPUyB8fCBjcCA9PT0gQ0hBUl9RVU9UIHx8IGNwID09PSBDSEFSX0xPV0JBUiB8fCBjcCA9PT0gQ0hBUl9IWVBIRU47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQWxwaGFOdW1IeXBoZW4oY3ApIHtcbiAgICAgIHJldHVybiBjcCA+PSBDSEFSX0EgJiYgY3AgPD0gQ0hBUl9aIHx8IGNwID49IENIQVJfYSAmJiBjcCA8PSBDSEFSX3ogfHwgY3AgPj0gQ0hBUl8wICYmIGNwIDw9IENIQVJfOSB8fCBjcCA9PT0gQ0hBUl9MT1dCQVIgfHwgY3AgPT09IENIQVJfSFlQSEVOO1xuICAgIH1cbiAgICB2YXIgX3R5cGUgPSBTeW1ib2woXCJ0eXBlXCIpO1xuICAgIHZhciBfZGVjbGFyZWQgPSBTeW1ib2woXCJkZWNsYXJlZFwiKTtcbiAgICB2YXIgaGFzT3duUHJvcGVydHkyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgICB2YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB2b2lkIDAgfTtcbiAgICBmdW5jdGlvbiBoYXNLZXkob2JqLCBrZXkpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eTIuY2FsbChvYmosIGtleSkpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgaWYgKGtleSA9PT0gXCJfX3Byb3RvX19cIilcbiAgICAgICAgZGVmaW5lUHJvcGVydHkob2JqLCBcIl9fcHJvdG9fX1wiLCBkZXNjcmlwdG9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIElOTElORV9UQUJMRSA9IFN5bWJvbChcImlubGluZS10YWJsZVwiKTtcbiAgICBmdW5jdGlvbiBJbmxpbmVUYWJsZSgpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSwge1xuICAgICAgICBbX3R5cGVdOiB7IHZhbHVlOiBJTkxJTkVfVEFCTEUgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSW5saW5lVGFibGUob2JqKSB7XG4gICAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBvYmpbX3R5cGVdID09PSBJTkxJTkVfVEFCTEU7XG4gICAgfVxuICAgIHZhciBUQUJMRSA9IFN5bWJvbChcInRhYmxlXCIpO1xuICAgIGZ1bmN0aW9uIFRhYmxlKCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHt9LCB7XG4gICAgICAgIFtfdHlwZV06IHsgdmFsdWU6IFRBQkxFIH0sXG4gICAgICAgIFtfZGVjbGFyZWRdOiB7IHZhbHVlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVGFibGUob2JqKSB7XG4gICAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiBvYmpbX3R5cGVdID09PSBUQUJMRTtcbiAgICB9XG4gICAgdmFyIF9jb250ZW50VHlwZSA9IFN5bWJvbChcImNvbnRlbnQtdHlwZVwiKTtcbiAgICB2YXIgSU5MSU5FX0xJU1QgPSBTeW1ib2woXCJpbmxpbmUtbGlzdFwiKTtcbiAgICBmdW5jdGlvbiBJbmxpbmVMaXN0KHR5cGUpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhbXSwge1xuICAgICAgICBbX3R5cGVdOiB7IHZhbHVlOiBJTkxJTkVfTElTVCB9LFxuICAgICAgICBbX2NvbnRlbnRUeXBlXTogeyB2YWx1ZTogdHlwZSB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJbmxpbmVMaXN0KG9iaikge1xuICAgICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqW190eXBlXSA9PT0gSU5MSU5FX0xJU1Q7XG4gICAgfVxuICAgIHZhciBMSVNUID0gU3ltYm9sKFwibGlzdFwiKTtcbiAgICBmdW5jdGlvbiBMaXN0KCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFtdLCB7XG4gICAgICAgIFtfdHlwZV06IHsgdmFsdWU6IExJU1QgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzTGlzdChvYmopIHtcbiAgICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIG9ialtfdHlwZV0gPT09IExJU1Q7XG4gICAgfVxuICAgIHZhciBfY3VzdG9tO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1dGlsSW5zcGVjdCA9IF9fcmVxdWlyZShcInV0aWxcIikuaW5zcGVjdDtcbiAgICAgIF9jdXN0b20gPSB1dGlsSW5zcGVjdC5jdXN0b207XG4gICAgfSBjYXRjaCAoXykge1xuICAgIH1cbiAgICB2YXIgX2luc3BlY3QgPSBfY3VzdG9tIHx8IFwiaW5zcGVjdFwiO1xuICAgIHZhciBCb3hlZEJpZ0ludCA9IGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGdsb2JhbC5CaWdJbnQuYXNJbnROKDY0LCB2YWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgX3R5cGUsIHsgdmFsdWU6IElOVEVHRVIgfSk7XG4gICAgICB9XG4gICAgICBpc05hTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG51bGw7XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgW19pbnNwZWN0XSgpIHtcbiAgICAgICAgcmV0dXJuIGBbQmlnSW50OiAke3RoaXMudG9TdHJpbmcoKX1dfWA7XG4gICAgICB9XG4gICAgICB2YWx1ZU9mKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBJTlRFR0VSID0gU3ltYm9sKFwiaW50ZWdlclwiKTtcbiAgICBmdW5jdGlvbiBJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICBsZXQgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgIGlmIChPYmplY3QuaXMobnVtLCAtMCkpXG4gICAgICAgIG51bSA9IDA7XG4gICAgICBpZiAoZ2xvYmFsLkJpZ0ludCAmJiAhTnVtYmVyLmlzU2FmZUludGVnZXIobnVtKSkge1xuICAgICAgICByZXR1cm4gbmV3IEJveGVkQmlnSW50KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuZXcgTnVtYmVyKG51bSksIHtcbiAgICAgICAgICBpc05hTjogeyB2YWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNOYU4odGhpcyk7XG4gICAgICAgICAgfSB9LFxuICAgICAgICAgIFtfdHlwZV06IHsgdmFsdWU6IElOVEVHRVIgfSxcbiAgICAgICAgICBbX2luc3BlY3RdOiB7IHZhbHVlOiAoKSA9PiBgW0ludGVnZXI6ICR7dmFsdWV9XWAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJbnRlZ2VyKG9iaikge1xuICAgICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqW190eXBlXSA9PT0gSU5URUdFUjtcbiAgICB9XG4gICAgdmFyIEZMT0FUID0gU3ltYm9sKFwiZmxvYXRcIik7XG4gICAgZnVuY3Rpb24gRmxvYXQodmFsdWUpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuZXcgTnVtYmVyKHZhbHVlKSwge1xuICAgICAgICBbX3R5cGVdOiB7IHZhbHVlOiBGTE9BVCB9LFxuICAgICAgICBbX2luc3BlY3RdOiB7IHZhbHVlOiAoKSA9PiBgW0Zsb2F0OiAke3ZhbHVlfV1gIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0Zsb2F0KG9iaikge1xuICAgICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gb2JqW190eXBlXSA9PT0gRkxPQVQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvbWxUeXBlKHZhbHVlKSB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgICAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKVxuICAgICAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICByZXR1cm4gXCJkYXRldGltZVwiO1xuICAgICAgICBpZiAoX3R5cGUgaW4gdmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKHZhbHVlW190eXBlXSkge1xuICAgICAgICAgICAgY2FzZSBJTkxJTkVfVEFCTEU6XG4gICAgICAgICAgICAgIHJldHVybiBcImlubGluZS10YWJsZVwiO1xuICAgICAgICAgICAgY2FzZSBJTkxJTkVfTElTVDpcbiAgICAgICAgICAgICAgcmV0dXJuIFwiaW5saW5lLWxpc3RcIjtcbiAgICAgICAgICAgIGNhc2UgVEFCTEU6XG4gICAgICAgICAgICAgIHJldHVybiBcInRhYmxlXCI7XG4gICAgICAgICAgICBjYXNlIExJU1Q6XG4gICAgICAgICAgICAgIHJldHVybiBcImxpc3RcIjtcbiAgICAgICAgICAgIGNhc2UgRkxPQVQ6XG4gICAgICAgICAgICAgIHJldHVybiBcImZsb2F0XCI7XG4gICAgICAgICAgICBjYXNlIElOVEVHRVI6XG4gICAgICAgICAgICAgIHJldHVybiBcImludGVnZXJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlUGFyc2VyQ2xhc3MoUGFyc2VyKSB7XG4gICAgICBjbGFzcyBUT01MUGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLmN0eCA9IHRoaXMub2JqID0gVGFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBNQVRDSCBIRUxQRVIgKi9cbiAgICAgICAgYXRFbmRPZldvcmQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2hhciA9PT0gQ0hBUl9OVU0gfHwgdGhpcy5jaGFyID09PSBDVFJMX0kgfHwgdGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuYXRFbmRPZkxpbmUoKTtcbiAgICAgICAgfVxuICAgICAgICBhdEVuZE9mTGluZSgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jaGFyID09PSBQYXJzZXIuRU5EIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9KIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9NO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlU3RhcnQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gUGFyc2VyLkVORCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfTFNRQikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlVGFibGVPckxpc3QpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX05VTSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlQ29tbWVudCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENUUkxfSiB8fCB0aGlzLmNoYXIgPT09IENIQVJfU1AgfHwgdGhpcy5jaGFyID09PSBDVFJMX0kgfHwgdGhpcy5jaGFyID09PSBDVFJMX00pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNBbHBoYU51bVF1b3RlSHlwaGVuKHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxOb3codGhpcy5wYXJzZUFzc2lnblN0YXRlbWVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihgVW5rbm93biBjaGFyYWN0ZXIgXCIke3RoaXMuY2hhcn1cImApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSEVMUEVSLCB0aGlzIHN0cmlwcyBhbnkgd2hpdGVzcGFjZSBhbmQgY29tbWVudHMgdG8gdGhlIGVuZCBvZiB0aGUgbGluZVxuICAgICAgICAvLyB0aGVuIFJFVFVSTlMuIExhc3Qgc3RhdGUgaW4gYSBwcm9kdWN0aW9uLlxuICAgICAgICBwYXJzZVdoaXRlc3BhY2VUb0VPTCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9JIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9NKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9OVU0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUNvbW1lbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBQYXJzZXIuRU5EIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9KKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm4oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW5leHBlY3RlZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIG9ubHkgd2hpdGVzcGFjZSBvciBjb21tZW50cyB0aWxsIGVuZCBvZiBsaW5lXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogQVNTSUdOTUVOVDoga2V5ID0gdmFsdWUgKi9cbiAgICAgICAgcGFyc2VBc3NpZ25TdGF0ZW1lbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE5vdyh0aGlzLnBhcnNlQXNzaWduLCB0aGlzLnJlY29yZEFzc2lnblN0YXRlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVjb3JkQXNzaWduU3RhdGVtZW50KGt2KSB7XG4gICAgICAgICAgbGV0IHRhcmdldCA9IHRoaXMuY3R4O1xuICAgICAgICAgIGxldCBmaW5hbEtleSA9IGt2LmtleS5wb3AoKTtcbiAgICAgICAgICBmb3IgKGxldCBrdyBvZiBrdi5rZXkpIHtcbiAgICAgICAgICAgIGlmIChoYXNLZXkodGFyZ2V0LCBrdykgJiYgKCFpc1RhYmxlKHRhcmdldFtrd10pIHx8IHRhcmdldFtrd11bX2RlY2xhcmVkXSkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiQ2FuJ3QgcmVkZWZpbmUgZXhpc3Rpbmcga2V5XCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldFtrd10gPSB0YXJnZXRba3ddIHx8IFRhYmxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChoYXNLZXkodGFyZ2V0LCBmaW5hbEtleSkpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkNhbid0IHJlZGVmaW5lIGV4aXN0aW5nIGtleVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0ludGVnZXIoa3YudmFsdWUpIHx8IGlzRmxvYXQoa3YudmFsdWUpKSB7XG4gICAgICAgICAgICB0YXJnZXRbZmluYWxLZXldID0ga3YudmFsdWUudmFsdWVPZigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXRbZmluYWxLZXldID0ga3YudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZVdoaXRlc3BhY2VUb0VPTCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogQVNTU0lHTk1FTlQgZXhwcmVzc2lvbiwga2V5ID0gdmFsdWUgcG9zc2libHkgaW5zaWRlIGFuIGlubGluZSB0YWJsZSAqL1xuICAgICAgICBwYXJzZUFzc2lnbigpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsTm93KHRoaXMucGFyc2VLZXl3b3JkLCB0aGlzLnJlY29yZEFzc2lnbktleXdvcmQpO1xuICAgICAgICB9XG4gICAgICAgIHJlY29yZEFzc2lnbktleXdvcmQoa2V5KSB7XG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUucmVzdWx0VGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0VGFibGUucHVzaChrZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdFRhYmxlID0gW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUFzc2lnbktleXdvcmRQcmVEb3QpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlQXNzaWduS2V5d29yZFByZURvdCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1BFUklPRCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlQXNzaWduS2V5d29yZFBvc3REb3QpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyICE9PSBDSEFSX1NQICYmIHRoaXMuY2hhciAhPT0gQ1RSTF9JKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VBc3NpZ25FcXVhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlQXNzaWduS2V5d29yZFBvc3REb3QoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciAhPT0gQ0hBUl9TUCAmJiB0aGlzLmNoYXIgIT09IENUUkxfSSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE5vdyh0aGlzLnBhcnNlS2V5d29yZCwgdGhpcy5yZWNvcmRBc3NpZ25LZXl3b3JkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VBc3NpZ25FcXVhbCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX0VRVUFMUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlQXNzaWduUHJlVmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoJ0ludmFsaWQgY2hhcmFjdGVyLCBleHBlY3RlZCBcIj1cIicpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VBc3NpZ25QcmVWYWx1ZSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9JKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE5vdyh0aGlzLnBhcnNlVmFsdWUsIHRoaXMucmVjb3JkQXNzaWduVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWNvcmRBc3NpZ25WYWx1ZSh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdyh7IGtleTogdGhpcy5zdGF0ZS5yZXN1bHRUYWJsZSwgdmFsdWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyogQ09NTUVOVFM6ICMuLi5lb2wgKi9cbiAgICAgICAgcGFyc2VDb21tZW50KCkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IFBhcnNlci5FTkQgfHwgdGhpcy5jaGFyID09PSBDVFJMX0opIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSB3aGlsZSAodGhpcy5uZXh0Q2hhcigpKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBUQUJMRVMgQU5EIExJU1RTLCBbZm9vXSBhbmQgW1tmb29dXSAqL1xuICAgICAgICBwYXJzZVRhYmxlT3JMaXN0KCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfTFNRQikge1xuICAgICAgICAgICAgdGhpcy5uZXh0KHRoaXMucGFyc2VMaXN0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlVGFibGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBUQUJMRSBbZm9vLmJhci5iYXpdICovXG4gICAgICAgIHBhcnNlVGFibGUoKSB7XG4gICAgICAgICAgdGhpcy5jdHggPSB0aGlzLm9iajtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VUYWJsZU5leHQpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlVGFibGVOZXh0KCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfU1AgfHwgdGhpcy5jaGFyID09PSBDVFJMX0kpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsTm93KHRoaXMucGFyc2VLZXl3b3JkLCB0aGlzLnBhcnNlVGFibGVNb3JlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VUYWJsZU1vcmUoa2V5d29yZCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfU1AgfHwgdGhpcy5jaGFyID09PSBDVFJMX0kpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1JTUUIpIHtcbiAgICAgICAgICAgIGlmIChoYXNLZXkodGhpcy5jdHgsIGtleXdvcmQpICYmICghaXNUYWJsZSh0aGlzLmN0eFtrZXl3b3JkXSkgfHwgdGhpcy5jdHhba2V5d29yZF1bX2RlY2xhcmVkXSkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiQ2FuJ3QgcmVkZWZpbmUgZXhpc3Rpbmcga2V5XCIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY3R4ID0gdGhpcy5jdHhba2V5d29yZF0gPSB0aGlzLmN0eFtrZXl3b3JkXSB8fCBUYWJsZSgpO1xuICAgICAgICAgICAgICB0aGlzLmN0eFtfZGVjbGFyZWRdID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZVdoaXRlc3BhY2VUb0VPTCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICBpZiAoIWhhc0tleSh0aGlzLmN0eCwga2V5d29yZCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5jdHggPSB0aGlzLmN0eFtrZXl3b3JkXSA9IFRhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVGFibGUodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuY3R4ID0gdGhpcy5jdHhba2V5d29yZF07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGlzdCh0aGlzLmN0eFtrZXl3b3JkXSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5jdHggPSB0aGlzLmN0eFtrZXl3b3JkXVt0aGlzLmN0eFtrZXl3b3JkXS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkNhbid0IHJlZGVmaW5lIGV4aXN0aW5nIGtleVwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VUYWJsZU5leHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJVbmV4cGVjdGVkIGNoYXJhY3RlciwgZXhwZWN0ZWQgd2hpdGVzcGFjZSwgLiBvciBdXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogTElTVCBbW2EuYi5jXV0gKi9cbiAgICAgICAgcGFyc2VMaXN0KCkge1xuICAgICAgICAgIHRoaXMuY3R4ID0gdGhpcy5vYmo7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlTGlzdE5leHQpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlTGlzdE5leHQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9TUCB8fCB0aGlzLmNoYXIgPT09IENUUkxfSSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxOb3codGhpcy5wYXJzZUtleXdvcmQsIHRoaXMucGFyc2VMaXN0TW9yZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTGlzdE1vcmUoa2V5d29yZCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfU1AgfHwgdGhpcy5jaGFyID09PSBDVFJMX0kpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1JTUUIpIHtcbiAgICAgICAgICAgIGlmICghaGFzS2V5KHRoaXMuY3R4LCBrZXl3b3JkKSkge1xuICAgICAgICAgICAgICB0aGlzLmN0eFtrZXl3b3JkXSA9IExpc3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0lubGluZUxpc3QodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkNhbid0IGV4dGVuZCBhbiBpbmxpbmUgYXJyYXlcIikpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpc3QodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBUYWJsZSgpO1xuICAgICAgICAgICAgICB0aGlzLmN0eFtrZXl3b3JkXS5wdXNoKG5leHQpO1xuICAgICAgICAgICAgICB0aGlzLmN0eCA9IG5leHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJDYW4ndCByZWRlZmluZSBhbiBleGlzdGluZyBrZXlcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTGlzdEVuZCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICBpZiAoIWhhc0tleSh0aGlzLmN0eCwga2V5d29yZCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5jdHggPSB0aGlzLmN0eFtrZXl3b3JkXSA9IFRhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW5saW5lTGlzdCh0aGlzLmN0eFtrZXl3b3JkXSkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiQ2FuJ3QgZXh0ZW5kIGFuIGlubGluZSBhcnJheVwiKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW5saW5lVGFibGUodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkNhbid0IGV4dGVuZCBhbiBpbmxpbmUgdGFibGVcIikpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpc3QodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuY3R4ID0gdGhpcy5jdHhba2V5d29yZF1bdGhpcy5jdHhba2V5d29yZF0ubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVGFibGUodGhpcy5jdHhba2V5d29yZF0pKSB7XG4gICAgICAgICAgICAgIHRoaXMuY3R4ID0gdGhpcy5jdHhba2V5d29yZF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJDYW4ndCByZWRlZmluZSBhbiBleGlzdGluZyBrZXlcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTGlzdE5leHQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJVbmV4cGVjdGVkIGNoYXJhY3RlciwgZXhwZWN0ZWQgd2hpdGVzcGFjZSwgLiBvciBdXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VMaXN0RW5kKGtleXdvcmQpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1JTUUIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZVdoaXRlc3BhY2VUb0VPTCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyLCBleHBlY3RlZCB3aGl0ZXNwYWNlLCAuIG9yIF1cIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBWQUxVRSBzdHJpbmcsIG51bWJlciwgYm9vbGVhbiwgaW5saW5lIGxpc3QsIGlubGluZSBvYmplY3QgKi9cbiAgICAgICAgcGFyc2VWYWx1ZSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBQYXJzZXIuRU5EKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJLZXkgd2l0aG91dCB2YWx1ZVwiKSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUVVPVCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRG91YmxlU3RyaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9BUE9TKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VTaW5nbGVTdHJpbmcpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0hZUEhFTiB8fCB0aGlzLmNoYXIgPT09IENIQVJfUExVUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlTnVtYmVyU2lnbik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfaSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlSW5mKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VOYW4pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VOdW1iZXJPckRhdGVUaW1lKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl90IHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9mKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VCb29sZWFuKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MU1FCKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VJbmxpbmVMaXN0LCB0aGlzLnJlY29yZFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MQ1VCKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VJbmxpbmVUYWJsZSwgdGhpcy5yZWNvcmRWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyLCBleHBlY3Rpbmcgc3RyaW5nLCBudW1iZXIsIGRhdGV0aW1lLCBib29sZWFuLCBpbmxpbmUgYXJyYXkgb3IgaW5saW5lIHRhYmxlXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVjb3JkVmFsdWUodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3codmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlSW5mKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlSW5mMik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcignVW5leHBlY3RlZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIFwiaW5mXCIsIFwiK2luZlwiIG9yIFwiLWluZlwiJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZUluZjIoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9mKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYgPT09IFwiLVwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybigtSW5maW5pdHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKEluZmluaXR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKCdVbmV4cGVjdGVkIGNoYXJhY3RlciwgZXhwZWN0ZWQgXCJpbmZcIiwgXCIraW5mXCIgb3IgXCItaW5mXCInKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTmFuKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfYSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTmFuMik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcignVW5leHBlY3RlZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIFwibmFuXCInKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTmFuMigpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybihOYU4pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoJ1VuZXhwZWN0ZWQgY2hhcmFjdGVyLCBleHBlY3RlZCBcIm5hblwiJykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBLRVlTLCBiYXJld29yZHMgb3IgYmFzaWMsIGxpdGVyYWwsIG9yIGRvdHRlZCAqL1xuICAgICAgICBwYXJzZUtleXdvcmQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9RVU9UKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VCYXNpY1N0cmluZyk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQVBPUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTGl0ZXJhbFN0cmluZyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUJhcmVLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBLRVlTOiBiYXJld29yZHMgKi9cbiAgICAgICAgcGFyc2VCYXJlS2V5KCkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IFBhcnNlci5FTkQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiS2V5IGVuZGVkIHdpdGhvdXQgdmFsdWVcIikpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0FscGhhTnVtSHlwaGVuKHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJFbXB0eSBiYXJlIGtleXMgYXJlIG5vdCBhbGxvd2VkXCIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKHRoaXMubmV4dENoYXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgLyogU1RSSU5HUywgc2luZ2xlIHF1b3RlZCAobGl0ZXJhbCkgKi9cbiAgICAgICAgcGFyc2VTaW5nbGVTdHJpbmcoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9BUE9TKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VMaXRlcmFsTXVsdGlTdHJpbmdNYXliZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUxpdGVyYWxTdHJpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZUxpdGVyYWxTdHJpbmcoKSB7XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9BUE9TKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0RW5kT2ZMaW5lKCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW50ZXJtaW5hdGVkIHN0cmluZ1wiKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9ERUwgfHwgdGhpcy5jaGFyIDw9IENUUkxfQ0hBUl9CT1VOREFSWSAmJiB0aGlzLmNoYXIgIT09IENUUkxfSSkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yQ29udHJvbENoYXJJblN0cmluZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSB3aGlsZSAodGhpcy5uZXh0Q2hhcigpKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZUxpdGVyYWxNdWx0aVN0cmluZ01heWJlKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQVBPUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTGl0ZXJhbE11bHRpU3RyaW5nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTGl0ZXJhbE11bHRpU3RyaW5nKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENUUkxfTSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENUUkxfSikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTGl0ZXJhbE11bHRpU3RyaW5nQ29udGVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUxpdGVyYWxNdWx0aVN0cmluZ0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZUxpdGVyYWxNdWx0aVN0cmluZ0NvbnRlbnQoKSB7XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9BUE9TKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZUxpdGVyYWxNdWx0aUVuZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gUGFyc2VyLkVORCkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJVbnRlcm1pbmF0ZWQgbXVsdGktbGluZSBzdHJpbmdcIikpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfREVMIHx8IHRoaXMuY2hhciA8PSBDVFJMX0NIQVJfQk9VTkRBUlkgJiYgdGhpcy5jaGFyICE9PSBDVFJMX0kgJiYgdGhpcy5jaGFyICE9PSBDVFJMX0ogJiYgdGhpcy5jaGFyICE9PSBDVFJMX00pIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvckNvbnRyb2xDaGFySW5TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKHRoaXMubmV4dENoYXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VMaXRlcmFsTXVsdGlFbmQoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9BUE9TKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VMaXRlcmFsTXVsdGlFbmQyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5idWYgKz0gXCInXCI7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VMaXRlcmFsTXVsdGlTdHJpbmdDb250ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VMaXRlcmFsTXVsdGlFbmQyKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQVBPUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuYnVmICs9IFwiJydcIjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUxpdGVyYWxNdWx0aVN0cmluZ0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBTVFJJTkdTIGRvdWJsZSBxdW90ZWQgKi9cbiAgICAgICAgcGFyc2VEb3VibGVTdHJpbmcoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9RVU9UKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VNdWx0aVN0cmluZ01heWJlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlQmFzaWNTdHJpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZUJhc2ljU3RyaW5nKCkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQlNPTCkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VFc2NhcGUsIHRoaXMucmVjb3JkRXNjYXBlUmVwbGFjZW1lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUVVPVCkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm4oKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5hdEVuZE9mTGluZSgpKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVudGVybWluYXRlZCBzdHJpbmdcIikpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfREVMIHx8IHRoaXMuY2hhciA8PSBDVFJMX0NIQVJfQk9VTkRBUlkgJiYgdGhpcy5jaGFyICE9PSBDVFJMX0kpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvckNvbnRyb2xDaGFySW5TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gd2hpbGUgKHRoaXMubmV4dENoYXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVjb3JkRXNjYXBlUmVwbGFjZW1lbnQocmVwbGFjZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiArPSByZXBsYWNlbWVudDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VCYXNpY1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VNdWx0aVN0cmluZ01heWJlKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUVVPVCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTXVsdGlTdHJpbmcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VNdWx0aVN0cmluZygpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDVFJMX00pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDVFJMX0opIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZU11bHRpU3RyaW5nQ29udGVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZU11bHRpU3RyaW5nQ29udGVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTXVsdGlTdHJpbmdDb250ZW50KCkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQlNPTCkge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VNdWx0aUVzY2FwZSwgdGhpcy5yZWNvcmRNdWx0aUVzY2FwZVJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1FVT1QpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTXVsdGlFbmQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IFBhcnNlci5FTkQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW50ZXJtaW5hdGVkIG11bHRpLWxpbmUgc3RyaW5nXCIpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0RFTCB8fCB0aGlzLmNoYXIgPD0gQ1RSTF9DSEFSX0JPVU5EQVJZICYmIHRoaXMuY2hhciAhPT0gQ1RSTF9JICYmIHRoaXMuY2hhciAhPT0gQ1RSTF9KICYmIHRoaXMuY2hhciAhPT0gQ1RSTF9NKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3JDb250cm9sQ2hhckluU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IHdoaWxlICh0aGlzLm5leHRDaGFyKCkpO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yQ29udHJvbENoYXJJblN0cmluZygpIHtcbiAgICAgICAgICBsZXQgZGlzcGxheUNvZGUgPSBcIlxcXFx1MDBcIjtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyIDwgMTYpIHtcbiAgICAgICAgICAgIGRpc3BsYXlDb2RlICs9IFwiMFwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkaXNwbGF5Q29kZSArPSB0aGlzLmNoYXIudG9TdHJpbmcoMTYpO1xuICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoYENvbnRyb2wgY2hhcmFjdGVycyAoY29kZXMgPCAweDFmIGFuZCAweDdmKSBhcmUgbm90IGFsbG93ZWQgaW4gc3RyaW5ncywgdXNlICR7ZGlzcGxheUNvZGV9IGluc3RlYWRgKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVjb3JkTXVsdGlFc2NhcGVSZXBsYWNlbWVudChyZXBsYWNlbWVudCkge1xuICAgICAgICAgIHRoaXMuc3RhdGUuYnVmICs9IHJlcGxhY2VtZW50O1xuICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZU11bHRpU3RyaW5nQ29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VNdWx0aUVuZCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1FVT1QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZU11bHRpRW5kMik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuYnVmICs9ICdcIic7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VNdWx0aVN0cmluZ0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU11bHRpRW5kMigpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1FVT1QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiArPSAnXCJcIic7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VNdWx0aVN0cmluZ0NvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU11bHRpRXNjYXBlKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENUUkxfTSB8fCB0aGlzLmNoYXIgPT09IENUUkxfSikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTXVsdGlUcmltKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9TUCB8fCB0aGlzLmNoYXIgPT09IENUUkxfSSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlUHJlTXVsdGlUcmltKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlRXNjYXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VQcmVNdWx0aVRyaW0oKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9TUCB8fCB0aGlzLmNoYXIgPT09IENUUkxfSSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENUUkxfTSB8fCB0aGlzLmNoYXIgPT09IENUUkxfSikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTXVsdGlUcmltKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiQ2FuJ3QgZXNjYXBlIHdoaXRlc3BhY2VcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU11bHRpVHJpbSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDVFJMX0ogfHwgdGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9JIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9NKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRXNjYXBlKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgaW4gZXNjYXBlcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKGVzY2FwZXNbdGhpcy5jaGFyXSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfdSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlU21hbGxVbmljb2RlLCB0aGlzLnBhcnNlVW5pY29kZVJldHVybik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfVSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlTGFyZ2VVbmljb2RlLCB0aGlzLnBhcnNlVW5pY29kZVJldHVybik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVua25vd24gZXNjYXBlIGNoYXJhY3RlcjogXCIgKyB0aGlzLmNoYXIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VVbmljb2RlUmV0dXJuKGNoYXIpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29kZVBvaW50ID0gcGFyc2VJbnQoY2hhciwgMTYpO1xuICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA+PSBTVVJST0dBVEVfRklSU1QgJiYgY29kZVBvaW50IDw9IFNVUlJPR0FURV9MQVNUKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgdW5pY29kZSwgY2hhcmFjdGVyIGluIHJhbmdlIDB4RDgwMCAtIDB4REZGRiBpcyByZXNlcnZlZFwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coU3RyaW5nLmZyb21Db2RlUG9pbnQoY29kZVBvaW50KSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKFRvbWxFcnJvci53cmFwKGVycikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZVNtYWxsVW5pY29kZSgpIHtcbiAgICAgICAgICBpZiAoIWlzSGV4aXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gdW5pY29kZSBzZXF1ZW5jZSwgZXhwZWN0ZWQgaGV4XCIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoID49IDQpXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZUxhcmdlVW5pY29kZSgpIHtcbiAgICAgICAgICBpZiAoIWlzSGV4aXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gdW5pY29kZSBzZXF1ZW5jZSwgZXhwZWN0ZWQgaGV4XCIpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoID49IDgpXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBOVU1CRVJTICovXG4gICAgICAgIHBhcnNlTnVtYmVyU2lnbigpIHtcbiAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VNYXliZVNpZ25lZEluZk9yTmFuKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZU1heWJlU2lnbmVkSW5mT3JOYW4oKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VJbmYpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZU5hbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxOb3codGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJJbnRlZ2VyU3RhcnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU51bWJlckludGVnZXJTdGFydCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSXzApIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTnVtYmVySW50ZWdlckV4cG9uZW50T3JEZWNpbWFsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlTnVtYmVySW50ZWdlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTnVtYmVySW50ZWdlckV4cG9uZW50T3JEZWNpbWFsKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJGbG9hdCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfRSB8fCB0aGlzLmNoYXIgPT09IENIQVJfZSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VOdW1iZXJFeHBvbmVudFNpZ24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coSW50ZWdlcih0aGlzLnN0YXRlLmJ1ZikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU51bWJlckludGVnZXIoKSB7XG4gICAgICAgICAgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfTE9XQkFSKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VOb1VuZGVyKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9FIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9lKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZU51bWJlckV4cG9uZW50U2lnbik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJGbG9hdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEludGVnZXIodGhpcy5zdGF0ZS5idWYpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05hTigpKSB7XG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgbnVtYmVyXCIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdyhyZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU5vVW5kZXIoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MT1dCQVIgfHwgdGhpcy5jaGFyID09PSBDSEFSX1BFUklPRCB8fCB0aGlzLmNoYXIgPT09IENIQVJfRSB8fCB0aGlzLmNoYXIgPT09IENIQVJfZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW5leHBlY3RlZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIGRpZ2l0XCIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXRFbmRPZldvcmQoKSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW5jb21wbGV0ZSBudW1iZXJcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZU5vVW5kZXJIZXhPY3RCaW5MaXRlcmFsKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfTE9XQkFSIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9QRVJJT0QpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyLCBleHBlY3RlZCBkaWdpdFwiKSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0RW5kT2ZXb3JkKCkpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkluY29tcGxldGUgbnVtYmVyXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VOdW1iZXJGbG9hdCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX0xPV0JBUikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlTm9VbmRlciwgdGhpcy5wYXJzZU51bWJlckZsb2F0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfRSB8fCB0aGlzLmNoYXIgPT09IENIQVJfZSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VOdW1iZXJFeHBvbmVudFNpZ24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coRmxvYXQodGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VOdW1iZXJFeHBvbmVudFNpZ24oKSB7XG4gICAgICAgICAgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlTnVtYmVyRXhwb25lbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0hZUEhFTiB8fCB0aGlzLmNoYXIgPT09IENIQVJfUExVUykge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJFeHBvbmVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyLCBleHBlY3RlZCAtLCArIG9yIGRpZ2l0XCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VOdW1iZXJFeHBvbmVudCgpIHtcbiAgICAgICAgICBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MT1dCQVIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coRmxvYXQodGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogTlVNQkVSUyBvciBEQVRFVElNRVMgICovXG4gICAgICAgIHBhcnNlTnVtYmVyT3JEYXRlVGltZSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSXzApIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlTnVtYmVyQmFzZU9yRGF0ZVRpbWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VOdW1iZXJPckRhdGVUaW1lT25seSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlTnVtYmVyT3JEYXRlVGltZU9ubHkoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MT1dCQVIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJJbnRlZ2VyKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoID4gNClcbiAgICAgICAgICAgICAgdGhpcy5uZXh0KHRoaXMucGFyc2VOdW1iZXJJbnRlZ2VyKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9FIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9lKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZU51bWJlckV4cG9uZW50U2lnbik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXIsIHRoaXMucGFyc2VOdW1iZXJGbG9hdCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfSFlQSEVOKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VEYXRlVGltZSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfQ09MT04pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZU9ubHlUaW1lSG91cik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdyhJbnRlZ2VyKHRoaXMuc3RhdGUuYnVmKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRGF0ZVRpbWVPbmx5KCkge1xuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmJ1Zi5sZW5ndGggPCA0KSB7XG4gICAgICAgICAgICBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0NPTE9OKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZU9ubHlUaW1lSG91cik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJFeHBlY3RlZCBkaWdpdCB3aGlsZSBwYXJzaW5nIHllYXIgcGFydCBvZiBhIGRhdGVcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX0hZUEhFTikge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VEYXRlVGltZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJFeHBlY3RlZCBoeXBoZW4gKC0pIHdoaWxlIHBhcnNpbmcgeWVhciBwYXJ0IG9mIGRhdGVcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU51bWJlckJhc2VPckRhdGVUaW1lKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfYikge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWxsKHRoaXMucGFyc2VOb1VuZGVySGV4T2N0QmluTGl0ZXJhbCwgdGhpcy5wYXJzZUludGVnZXJCaW4pO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX28pIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlTm9VbmRlckhleE9jdEJpbkxpdGVyYWwsIHRoaXMucGFyc2VJbnRlZ2VyT2N0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl94KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXJIZXhPY3RCaW5MaXRlcmFsLCB0aGlzLnBhcnNlSW50ZWdlckhleCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VOdW1iZXJJbnRlZ2VyKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlRGF0ZVRpbWVPbmx5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KEludGVnZXIodGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VJbnRlZ2VySGV4KCkge1xuICAgICAgICAgIGlmIChpc0hleGl0KHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0xPV0JBUikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlTm9VbmRlckhleE9jdEJpbkxpdGVyYWwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBJbnRlZ2VyKHRoaXMuc3RhdGUuYnVmKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuaXNOYU4oKSkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbnZhbGlkIG51bWJlclwiKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3cocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VJbnRlZ2VyT2N0KCkge1xuICAgICAgICAgIGlmIChpc09jdGl0KHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0xPV0JBUikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlTm9VbmRlckhleE9jdEJpbkxpdGVyYWwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBJbnRlZ2VyKHRoaXMuc3RhdGUuYnVmKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuaXNOYU4oKSkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbnZhbGlkIG51bWJlclwiKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3cocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VJbnRlZ2VyQmluKCkge1xuICAgICAgICAgIGlmIChpc0JpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9MT1dCQVIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZU5vVW5kZXJIZXhPY3RCaW5MaXRlcmFsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gSW50ZWdlcih0aGlzLnN0YXRlLmJ1Zik7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzTmFOKCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBudW1iZXJcIikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIERBVEVUSU1FICovXG4gICAgICAgIHBhcnNlRGF0ZVRpbWUoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA8IDQpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlllYXJzIGxlc3MgdGhhbiAxMDAwIG11c3QgYmUgemVybyBwYWRkZWQgdG8gZm91ciBjaGFyYWN0ZXJzXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zdGF0ZS5yZXN1bHQgPSB0aGlzLnN0YXRlLmJ1ZjtcbiAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiA9IFwiXCI7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRGF0ZU1vbnRoKTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZURhdGVNb250aCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX0hZUEhFTikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiTW9udGhzIGxlc3MgdGhhbiAxMCBtdXN0IGJlIHplcm8gcGFkZGVkIHRvIHR3byBjaGFyYWN0ZXJzXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0ICs9IFwiLVwiICsgdGhpcy5zdGF0ZS5idWY7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiA9IFwiXCI7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VEYXRlRGF5KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkluY29tcGxldGUgZGF0ZXRpbWVcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZURhdGVEYXkoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9UIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9TUCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiRGF5cyBsZXNzIHRoYW4gMTAgbXVzdCBiZSB6ZXJvIHBhZGRlZCB0byB0d28gY2hhcmFjdGVyc1wiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdCArPSBcIi1cIiArIHRoaXMuc3RhdGUuYnVmO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5idWYgPSBcIlwiO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlU3RhcnRUaW1lSG91cik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0RW5kT2ZXb3JkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdyhjcmVhdGVEYXRlKHRoaXMuc3RhdGUucmVzdWx0ICsgXCItXCIgKyB0aGlzLnN0YXRlLmJ1ZikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW5jb21wbGV0ZSBkYXRldGltZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlU3RhcnRUaW1lSG91cigpIHtcbiAgICAgICAgICBpZiAodGhpcy5hdEVuZE9mV29yZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coY3JlYXRlRGF0ZSh0aGlzLnN0YXRlLnJlc3VsdCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VUaW1lSG91cik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlVGltZUhvdXIoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9DT0xPTikge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSG91cnMgbGVzcyB0aGFuIDEwIG11c3QgYmUgemVybyBwYWRkZWQgdG8gdHdvIGNoYXJhY3RlcnNcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5yZXN1bHQgKz0gXCJUXCIgKyB0aGlzLnN0YXRlLmJ1ZjtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuYnVmID0gXCJcIjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZVRpbWVNaW4pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW5jb21wbGV0ZSBkYXRldGltZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlVGltZU1pbigpIHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoIDwgMiAmJiBpc0RpZ2l0KHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoID09PSAyICYmIHRoaXMuY2hhciA9PT0gQ0hBUl9DT0xPTikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5yZXN1bHQgKz0gXCI6XCIgKyB0aGlzLnN0YXRlLmJ1ZjtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuYnVmID0gXCJcIjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZVRpbWVTZWMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbmNvbXBsZXRlIGRhdGV0aW1lXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VUaW1lU2VjKCkge1xuICAgICAgICAgIGlmIChpc0RpZ2l0KHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdCArPSBcIjpcIiArIHRoaXMuc3RhdGUuYnVmO1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiA9IFwiXCI7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQodGhpcy5wYXJzZVRpbWVab25lT3JGcmFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkluY29tcGxldGUgZGF0ZXRpbWVcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU9ubHlUaW1lSG91cigpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX0NPTE9OKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5idWYubGVuZ3RoIDwgMikge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJIb3VycyBsZXNzIHRoYW4gMTAgbXVzdCBiZSB6ZXJvIHBhZGRlZCB0byB0d28gY2hhcmFjdGVyc1wiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdCA9IHRoaXMuc3RhdGUuYnVmO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5idWYgPSBcIlwiO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlT25seVRpbWVNaW4pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbmNvbXBsZXRlIHRpbWVcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU9ubHlUaW1lTWluKCkge1xuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmJ1Zi5sZW5ndGggPCAyICYmIGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmJ1Zi5sZW5ndGggPT09IDIgJiYgdGhpcy5jaGFyID09PSBDSEFSX0NPTE9OKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdCArPSBcIjpcIiArIHRoaXMuc3RhdGUuYnVmO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5idWYgPSBcIlwiO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlT25seVRpbWVTZWMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbmNvbXBsZXRlIHRpbWVcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU9ubHlUaW1lU2VjKCkge1xuICAgICAgICAgIGlmIChpc0RpZ2l0KHRoaXMuY2hhcikpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VPbmx5VGltZUZyYWN0aW9uTWF5YmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbmNvbXBsZXRlIHRpbWVcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU9ubHlUaW1lRnJhY3Rpb25NYXliZSgpIHtcbiAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdCArPSBcIjpcIiArIHRoaXMuc3RhdGUuYnVmO1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLmJ1ZiA9IFwiXCI7XG4gICAgICAgICAgICB0aGlzLm5leHQodGhpcy5wYXJzZU9ubHlUaW1lRnJhY3Rpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm4oY3JlYXRlVGltZSh0aGlzLnN0YXRlLnJlc3VsdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZU9ubHlUaW1lRnJhY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0RW5kT2ZXb3JkKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmJ1Zi5sZW5ndGggPT09IDApXG4gICAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkV4cGVjdGVkIGRpZ2l0IGluIG1pbGxpc2Vjb25kc1wiKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm5Ob3coY3JlYXRlVGltZSh0aGlzLnN0YXRlLnJlc3VsdCArIFwiLlwiICsgdGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gZGF0ZXRpbWUsIGV4cGVjdGVkIHBlcmlvZCAoLiksIG1pbnVzICgtKSwgcGx1cyAoKykgb3IgWlwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlVGltZVpvbmVPckZyYWN0aW9uKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUEVSSU9EKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHRoaXMubmV4dCh0aGlzLnBhcnNlRGF0ZVRpbWVGcmFjdGlvbik7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfSFlQSEVOIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9QTFVTKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHRoaXMubmV4dCh0aGlzLnBhcnNlVGltZVpvbmVIb3VyKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9aKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybihjcmVhdGVEYXRlVGltZSh0aGlzLnN0YXRlLnJlc3VsdCArIHRoaXMuc3RhdGUuYnVmKSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0RW5kT2ZXb3JkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybk5vdyhjcmVhdGVEYXRlVGltZUZsb2F0KHRoaXMuc3RhdGUucmVzdWx0ICsgdGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gZGF0ZXRpbWUsIGV4cGVjdGVkIHBlcmlvZCAoLiksIG1pbnVzICgtKSwgcGx1cyAoKykgb3IgWlwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRGF0ZVRpbWVGcmFjdGlvbigpIHtcbiAgICAgICAgICBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUuYnVmLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiRXhwZWN0ZWQgZGlnaXQgaW4gbWlsbGlzZWNvbmRzXCIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9IWVBIRU4gfHwgdGhpcy5jaGFyID09PSBDSEFSX1BMVVMpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgdGhpcy5uZXh0KHRoaXMucGFyc2VUaW1lWm9uZUhvdXIpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1opIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKGNyZWF0ZURhdGVUaW1lKHRoaXMuc3RhdGUucmVzdWx0ICsgdGhpcy5zdGF0ZS5idWYpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXRFbmRPZldvcmQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuTm93KGNyZWF0ZURhdGVUaW1lRmxvYXQodGhpcy5zdGF0ZS5yZXN1bHQgKyB0aGlzLnN0YXRlLmJ1ZikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiBkYXRldGltZSwgZXhwZWN0ZWQgcGVyaW9kICguKSwgbWludXMgKC0pLCBwbHVzICgrKSBvciBaXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VUaW1lWm9uZUhvdXIoKSB7XG4gICAgICAgICAgaWYgKGlzRGlnaXQodGhpcy5jaGFyKSkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICBpZiAoL1xcZFxcZCQvLnRlc3QodGhpcy5zdGF0ZS5idWYpKVxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VUaW1lWm9uZVNlcCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGRhdGV0aW1lLCBleHBlY3RlZCBkaWdpdFwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlVGltZVpvbmVTZXAoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9DT0xPTikge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICB0aGlzLm5leHQodGhpcy5wYXJzZVRpbWVab25lTWluKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiVW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4gZGF0ZXRpbWUsIGV4cGVjdGVkIGNvbG9uXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VUaW1lWm9uZU1pbigpIHtcbiAgICAgICAgICBpZiAoaXNEaWdpdCh0aGlzLmNoYXIpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIGlmICgvXFxkXFxkJC8udGVzdCh0aGlzLnN0YXRlLmJ1ZikpXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybihjcmVhdGVEYXRlVGltZSh0aGlzLnN0YXRlLnJlc3VsdCArIHRoaXMuc3RhdGUuYnVmKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIGluIGRhdGV0aW1lLCBleHBlY3RlZCBkaWdpdFwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIEJPT0xFQU4gKi9cbiAgICAgICAgcGFyc2VCb29sZWFuKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfdCkge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VUcnVlX3IpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX2YpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRmFsc2VfYSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlVHJ1ZV9yKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfcikge1xuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VUcnVlX3UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJJbnZhbGlkIGJvb2xlYW4sIGV4cGVjdGVkIHRydWUgb3IgZmFsc2VcIikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYXJzZVRydWVfdSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX3UpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlVHJ1ZV9lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBib29sZWFuLCBleHBlY3RlZCB0cnVlIG9yIGZhbHNlXCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VUcnVlX2UoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXR1cm4odHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgYm9vbGVhbiwgZXhwZWN0ZWQgdHJ1ZSBvciBmYWxzZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRmFsc2VfYSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX2EpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRmFsc2VfbCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgYm9vbGVhbiwgZXhwZWN0ZWQgdHJ1ZSBvciBmYWxzZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRmFsc2VfbCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRmFsc2Vfcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgYm9vbGVhbiwgZXhwZWN0ZWQgdHJ1ZSBvciBmYWxzZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRmFsc2VfcygpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX3MpIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlRmFsc2VfZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgYm9vbGVhbiwgZXhwZWN0ZWQgdHJ1ZSBvciBmYWxzZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhcnNlRmFsc2VfZSgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybihmYWxzZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIkludmFsaWQgYm9vbGVhbiwgZXhwZWN0ZWQgdHJ1ZSBvciBmYWxzZVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIElOTElORSBMSVNUUyAqL1xuICAgICAgICBwYXJzZUlubGluZUxpc3QoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9TUCB8fCB0aGlzLmNoYXIgPT09IENUUkxfSSB8fCB0aGlzLmNoYXIgPT09IENUUkxfTSB8fCB0aGlzLmNoYXIgPT09IENUUkxfSikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IFBhcnNlci5FTkQpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVudGVybWluYXRlZCBpbmxpbmUgYXJyYXlcIikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX05VTSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbCh0aGlzLnBhcnNlQ29tbWVudCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNoYXIgPT09IENIQVJfUlNRQikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuKHRoaXMuc3RhdGUucmVzdWx0QXJyIHx8IElubGluZUxpc3QoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGxOb3codGhpcy5wYXJzZVZhbHVlLCB0aGlzLnJlY29yZElubGluZUxpc3RWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlY29yZElubGluZUxpc3RWYWx1ZSh2YWx1ZSkge1xuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnJlc3VsdEFycikge1xuICAgICAgICAgICAgY29uc3QgbGlzdFR5cGUgPSB0aGlzLnN0YXRlLnJlc3VsdEFycltfY29udGVudFR5cGVdO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdG9tbFR5cGUodmFsdWUpO1xuICAgICAgICAgICAgaWYgKGxpc3RUeXBlICE9PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKGBJbmxpbmUgbGlzdHMgbXVzdCBiZSBhIHNpbmdsZSB0eXBlLCBub3QgYSBtaXggb2YgJHtsaXN0VHlwZX0gYW5kICR7dmFsdWVUeXBlfWApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5yZXN1bHRBcnIgPSBJbmxpbmVMaXN0KHRvbWxUeXBlKHZhbHVlKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0Zsb2F0KHZhbHVlKSB8fCBpc0ludGVnZXIodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlc3VsdEFyci5wdXNoKHZhbHVlLnZhbHVlT2YoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0QXJyLnB1c2godmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VJbmxpbmVMaXN0TmV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyc2VJbmxpbmVMaXN0TmV4dCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9JIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9NIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9KKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9OVU0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbGwodGhpcy5wYXJzZUNvbW1lbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX0NPTU1BKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZXh0KHRoaXMucGFyc2VJbmxpbmVMaXN0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9SU1FCKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nb3RvKHRoaXMucGFyc2VJbmxpbmVMaXN0KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIHdoaXRlc3BhY2UsIGNvbW1hICgsKSBvciBjbG9zZSBicmFja2V0IChdKVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIElOTElORSBUQUJMRSAqL1xuICAgICAgICBwYXJzZUlubGluZVRhYmxlKCkge1xuICAgICAgICAgIGlmICh0aGlzLmNoYXIgPT09IENIQVJfU1AgfHwgdGhpcy5jaGFyID09PSBDVFJMX0kpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBQYXJzZXIuRU5EIHx8IHRoaXMuY2hhciA9PT0gQ0hBUl9OVU0gfHwgdGhpcy5jaGFyID09PSBDVFJMX0ogfHwgdGhpcy5jaGFyID09PSBDVFJMX00pIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMuZXJyb3IobmV3IFRvbWxFcnJvcihcIlVudGVybWluYXRlZCBpbmxpbmUgYXJyYXlcIikpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1JDVUIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldHVybih0aGlzLnN0YXRlLnJlc3VsdFRhYmxlIHx8IElubGluZVRhYmxlKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RhdGUucmVzdWx0VGFibGUpXG4gICAgICAgICAgICAgIHRoaXMuc3RhdGUucmVzdWx0VGFibGUgPSBJbmxpbmVUYWJsZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FsbE5vdyh0aGlzLnBhcnNlQXNzaWduLCB0aGlzLnJlY29yZElubGluZVRhYmxlVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZWNvcmRJbmxpbmVUYWJsZVZhbHVlKGt2KSB7XG4gICAgICAgICAgbGV0IHRhcmdldCA9IHRoaXMuc3RhdGUucmVzdWx0VGFibGU7XG4gICAgICAgICAgbGV0IGZpbmFsS2V5ID0ga3Yua2V5LnBvcCgpO1xuICAgICAgICAgIGZvciAobGV0IGt3IG9mIGt2LmtleSkge1xuICAgICAgICAgICAgaWYgKGhhc0tleSh0YXJnZXQsIGt3KSAmJiAoIWlzVGFibGUodGFyZ2V0W2t3XSkgfHwgdGFyZ2V0W2t3XVtfZGVjbGFyZWRdKSkge1xuICAgICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJDYW4ndCByZWRlZmluZSBleGlzdGluZyBrZXlcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0W2t3XSA9IHRhcmdldFtrd10gfHwgVGFibGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhc0tleSh0YXJnZXQsIGZpbmFsS2V5KSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiQ2FuJ3QgcmVkZWZpbmUgZXhpc3Rpbmcga2V5XCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzSW50ZWdlcihrdi52YWx1ZSkgfHwgaXNGbG9hdChrdi52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRhcmdldFtmaW5hbEtleV0gPSBrdi52YWx1ZS52YWx1ZU9mKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldFtmaW5hbEtleV0gPSBrdi52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ290byh0aGlzLnBhcnNlSW5saW5lVGFibGVOZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBwYXJzZUlubGluZVRhYmxlTmV4dCgpIHtcbiAgICAgICAgICBpZiAodGhpcy5jaGFyID09PSBDSEFSX1NQIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9JKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gUGFyc2VyLkVORCB8fCB0aGlzLmNoYXIgPT09IENIQVJfTlVNIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9KIHx8IHRoaXMuY2hhciA9PT0gQ1RSTF9NKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLmVycm9yKG5ldyBUb21sRXJyb3IoXCJVbnRlcm1pbmF0ZWQgaW5saW5lIGFycmF5XCIpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hhciA9PT0gQ0hBUl9DT01NQSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmV4dCh0aGlzLnBhcnNlSW5saW5lVGFibGUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGFyID09PSBDSEFSX1JDVUIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdvdG8odGhpcy5wYXJzZUlubGluZVRhYmxlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5lcnJvcihuZXcgVG9tbEVycm9yKFwiSW52YWxpZCBjaGFyYWN0ZXIsIGV4cGVjdGVkIHdoaXRlc3BhY2UsIGNvbW1hICgsKSBvciBjbG9zZSBicmFja2V0IChdKVwiKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gVE9NTFBhcnNlcjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvcGFyc2UtcHJldHR5LWVycm9yLmpzXG52YXIgcmVxdWlyZV9wYXJzZV9wcmV0dHlfZXJyb3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvcGFyc2UtcHJldHR5LWVycm9yLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBwcmV0dHlFcnJvcjtcbiAgICBmdW5jdGlvbiBwcmV0dHlFcnJvcihlcnIsIGJ1Zikge1xuICAgICAgaWYgKGVyci5wb3MgPT0gbnVsbCB8fCBlcnIubGluZSA9PSBudWxsKVxuICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgbGV0IG1zZyA9IGVyci5tZXNzYWdlO1xuICAgICAgbXNnICs9IGAgYXQgcm93ICR7ZXJyLmxpbmUgKyAxfSwgY29sICR7ZXJyLmNvbCArIDF9LCBwb3MgJHtlcnIucG9zfTpcbmA7XG4gICAgICBpZiAoYnVmICYmIGJ1Zi5zcGxpdCkge1xuICAgICAgICBjb25zdCBsaW5lcyA9IGJ1Zi5zcGxpdCgvXFxuLyk7XG4gICAgICAgIGNvbnN0IGxpbmVOdW1XaWR0aCA9IFN0cmluZyhNYXRoLm1pbihsaW5lcy5sZW5ndGgsIGVyci5saW5lICsgMykpLmxlbmd0aDtcbiAgICAgICAgbGV0IGxpbmVQYWRkaW5nID0gXCIgXCI7XG4gICAgICAgIHdoaWxlIChsaW5lUGFkZGluZy5sZW5ndGggPCBsaW5lTnVtV2lkdGgpXG4gICAgICAgICAgbGluZVBhZGRpbmcgKz0gXCIgXCI7XG4gICAgICAgIGZvciAobGV0IGlpID0gTWF0aC5tYXgoMCwgZXJyLmxpbmUgLSAxKTsgaWkgPCBNYXRoLm1pbihsaW5lcy5sZW5ndGgsIGVyci5saW5lICsgMik7ICsraWkpIHtcbiAgICAgICAgICBsZXQgbGluZU51bSA9IFN0cmluZyhpaSArIDEpO1xuICAgICAgICAgIGlmIChsaW5lTnVtLmxlbmd0aCA8IGxpbmVOdW1XaWR0aClcbiAgICAgICAgICAgIGxpbmVOdW0gPSBcIiBcIiArIGxpbmVOdW07XG4gICAgICAgICAgaWYgKGVyci5saW5lID09PSBpaSkge1xuICAgICAgICAgICAgbXNnICs9IGxpbmVOdW0gKyBcIj4gXCIgKyBsaW5lc1tpaV0gKyBcIlxcblwiO1xuICAgICAgICAgICAgbXNnICs9IGxpbmVQYWRkaW5nICsgXCIgIFwiO1xuICAgICAgICAgICAgZm9yIChsZXQgaGggPSAwOyBoaCA8IGVyci5jb2w7ICsraGgpIHtcbiAgICAgICAgICAgICAgbXNnICs9IFwiIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbXNnICs9IFwiXlxcblwiO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtc2cgKz0gbGluZU51bSArIFwiOiBcIiArIGxpbmVzW2lpXSArIFwiXFxuXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlcnIubWVzc2FnZSA9IG1zZyArIFwiXFxuXCI7XG4gICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AaWFybmEvdG9tbC9wYXJzZS1hc3luYy5qc1xudmFyIHJlcXVpcmVfcGFyc2VfYXN5bmMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGlhcm5hL3RvbWwvcGFyc2UtYXN5bmMuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHBhcnNlQXN5bmM7XG4gICAgdmFyIFRPTUxQYXJzZXIgPSByZXF1aXJlX3RvbWxfcGFyc2VyKCk7XG4gICAgdmFyIHByZXR0eUVycm9yID0gcmVxdWlyZV9wYXJzZV9wcmV0dHlfZXJyb3IoKTtcbiAgICBmdW5jdGlvbiBwYXJzZUFzeW5jKHN0ciwgb3B0cykge1xuICAgICAgaWYgKCFvcHRzKVxuICAgICAgICBvcHRzID0ge307XG4gICAgICBjb25zdCBpbmRleCA9IDA7XG4gICAgICBjb25zdCBibG9ja3NpemUgPSBvcHRzLmJsb2Nrc2l6ZSB8fCA0MDk2MDtcbiAgICAgIGNvbnN0IHBhcnNlciA9IG5ldyBUT01MUGFyc2VyKCk7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUyLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0SW1tZWRpYXRlKHBhcnNlQXN5bmNOZXh0LCBpbmRleCwgYmxvY2tzaXplLCByZXNvbHZlMiwgcmVqZWN0KTtcbiAgICAgIH0pO1xuICAgICAgZnVuY3Rpb24gcGFyc2VBc3luY05leHQoaW5kZXgyLCBibG9ja3NpemUyLCByZXNvbHZlMiwgcmVqZWN0KSB7XG4gICAgICAgIGlmIChpbmRleDIgPj0gc3RyLmxlbmd0aCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZTIocGFyc2VyLmZpbmlzaCgpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QocHJldHR5RXJyb3IoZXJyLCBzdHIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXJzZXIucGFyc2Uoc3RyLnNsaWNlKGluZGV4MiwgaW5kZXgyICsgYmxvY2tzaXplMikpO1xuICAgICAgICAgIHNldEltbWVkaWF0ZShwYXJzZUFzeW5jTmV4dCwgaW5kZXgyICsgYmxvY2tzaXplMiwgYmxvY2tzaXplMiwgcmVzb2x2ZTIsIHJlamVjdCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHJlamVjdChwcmV0dHlFcnJvcihlcnIsIHN0cikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzb241L2xpYi91bmljb2RlLmpzXG52YXIgcmVxdWlyZV91bmljb2RlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzb241L2xpYi91bmljb2RlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMuU3BhY2VfU2VwYXJhdG9yID0gL1tcXHUxNjgwXFx1MjAwMC1cXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXS87XG4gICAgbW9kdWxlLmV4cG9ydHMuSURfU3RhcnQgPSAvW1xceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYxLVxcdTA1ODdcXHUwNUQwLVxcdTA1RUFcXHUwNUYwLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4N1xcdTBFODhcXHUwRThBXFx1MEU4RFxcdTBFOTQtXFx1MEU5N1xcdTBFOTktXFx1MEU5RlxcdTBFQTEtXFx1MEVBM1xcdTBFQTVcXHUwRUE3XFx1MEVBQVxcdTBFQUJcXHUwRUFELVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGMVxcdTFDRjVcXHUxQ0Y2XFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRVxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFQVxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0FFXFx1QTdCMC1cXHVBN0I3XFx1QTdGNy1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY1XFx1QUI3MC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REQ0MC1cXHVERDc0XFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjRBXFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXFx1REZEMS1cXHVERkQ1XXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzNcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURGMDAtXFx1REYxOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTgzXFx1REU4Ni1cXHVERTg5XFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDMDAtXFx1REM2RVxcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERjAwLVxcdURGNDRcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkVDXXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdLztcbiAgICBtb2R1bGUuZXhwb3J0cy5JRF9Db250aW51ZSA9IC9bXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzMDAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4My1cXHUwNDg3XFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjEtXFx1MDU4N1xcdTA1OTEtXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzRcXHUwNUM1XFx1MDVDN1xcdTA1RDAtXFx1MDVFQVxcdTA1RjAtXFx1MDVGMlxcdTA2MTAtXFx1MDYxQVxcdTA2MjAtXFx1MDY2OVxcdTA2NkUtXFx1MDZEM1xcdTA2RDUtXFx1MDZEQ1xcdTA2REYtXFx1MDZFOFxcdTA2RUEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwLVxcdTA3NEFcXHUwNzRELVxcdTA3QjFcXHUwN0MwLVxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODJEXFx1MDg0MC1cXHUwODVCXFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDhENC1cXHUwOEUxXFx1MDhFMy1cXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk3MS1cXHUwOTgzXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCQy1cXHUwOUM0XFx1MDlDN1xcdTA5QzhcXHUwOUNCLVxcdTA5Q0VcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTNcXHUwOUU2LVxcdTA5RjFcXHUwOUZDXFx1MEEwMS1cXHUwQTAzXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTNDXFx1MEEzRS1cXHUwQTQyXFx1MEE0N1xcdTBBNDhcXHUwQTRCLVxcdTBBNERcXHUwQTUxXFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNjYtXFx1MEE3NVxcdTBBODEtXFx1MEE4M1xcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCQy1cXHUwQUM1XFx1MEFDNy1cXHUwQUM5XFx1MEFDQi1cXHUwQUNEXFx1MEFEMFxcdTBBRTAtXFx1MEFFM1xcdTBBRTYtXFx1MEFFRlxcdTBBRjktXFx1MEFGRlxcdTBCMDEtXFx1MEIwM1xcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNDLVxcdTBCNDRcXHUwQjQ3XFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjcxXFx1MEI4MlxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEMFxcdTBCRDdcXHUwQkU2LVxcdTBCRUZcXHUwQzAwLVxcdTBDMDNcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNELVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNTgtXFx1MEM1QVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODAtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMC1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1NC1cXHUwRDU3XFx1MEQ1Ri1cXHUwRDYzXFx1MEQ2Ni1cXHUwRDZGXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4MlxcdTBEODNcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MERDQVxcdTBEQ0YtXFx1MERENFxcdTBERDZcXHUwREQ4LVxcdTBEREZcXHUwREU2LVxcdTBERUZcXHUwREYyXFx1MERGM1xcdTBFMDEtXFx1MEUzQVxcdTBFNDAtXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODdcXHUwRTg4XFx1MEU4QVxcdTBFOERcXHUwRTk0LVxcdTBFOTdcXHUwRTk5LVxcdTBFOUZcXHUwRUExLVxcdTBFQTNcXHUwRUE1XFx1MEVBN1xcdTBFQUFcXHUwRUFCXFx1MEVBRC1cXHUwRUI5XFx1MEVCQi1cXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFQzgtXFx1MEVDRFxcdTBFRDAtXFx1MEVEOVxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0UtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGNzEtXFx1MEY4NFxcdTBGODYtXFx1MEY5N1xcdTBGOTktXFx1MEZCQ1xcdTBGQzZcXHUxMDAwLVxcdTEwNDlcXHUxMDUwLVxcdTEwOURcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM1RC1cXHUxMzVGXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzE0XFx1MTcyMC1cXHUxNzM0XFx1MTc0MC1cXHUxNzUzXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc3MlxcdTE3NzNcXHUxNzgwLVxcdTE3RDNcXHUxN0Q3XFx1MTdEQ1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODEwLVxcdTE4MTlcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTIwLVxcdTE5MkJcXHUxOTMwLVxcdTE5M0JcXHUxOTQ2LVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxOUQwLVxcdTE5RDlcXHUxQTAwLVxcdTFBMUJcXHUxQTIwLVxcdTFBNUVcXHUxQTYwLVxcdTFBN0NcXHUxQTdGLVxcdTFBODlcXHUxQTkwLVxcdTFBOTlcXHUxQUE3XFx1MUFCMC1cXHUxQUJEXFx1MUIwMC1cXHUxQjRCXFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQkYzXFx1MUMwMC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM0RC1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0Y5XFx1MUQwMC1cXHUxREY5XFx1MURGQi1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwM0ZcXHUyMDQwXFx1MjA1NFxcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBGMFxcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDdGLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyREUwLVxcdTJERkZcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5OVxcdTMwOUFcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkVcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUFcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MkJcXHVBNjQwLVxcdUE2NkZcXHVBNjc0LVxcdUE2N0RcXHVBNjdGLVxcdUE2RjFcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QUVcXHVBN0IwLVxcdUE3QjdcXHVBN0Y3LVxcdUE4MjdcXHVBODQwLVxcdUE4NzNcXHVBODgwLVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2NVxcdUFCNzAtXFx1QUJFQVxcdUFCRUNcXHVBQkVEXFx1QUJGMC1cXHVBQkY5XFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMTAtXFx1RkYxOVxcdUZGMjEtXFx1RkYzQVxcdUZGM0ZcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERDQwLVxcdURENzRcXHVEREZEXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REVFMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0QVxcdURGNTAtXFx1REY3QVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRlxcdURGRDEtXFx1REZENV18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0EwLVxcdURDQTlcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwLVxcdURFMDNcXHVERTA1XFx1REUwNlxcdURFMEMtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzM1xcdURFMzgtXFx1REUzQVxcdURFM0ZcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTZcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXXxcXHVEODA0W1xcdURDMDAtXFx1REM0NlxcdURDNjYtXFx1REM2RlxcdURDN0YtXFx1RENCQVxcdURDRDAtXFx1RENFOFxcdURDRjAtXFx1RENGOVxcdUREMDAtXFx1REQzNFxcdUREMzYtXFx1REQzRlxcdURENTAtXFx1REQ3M1xcdURENzZcXHVERDgwLVxcdUREQzRcXHVERENBLVxcdUREQ0NcXHVEREQwLVxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTM3XFx1REUzRVxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFRUFcXHVERUYwLVxcdURFRjlcXHVERjAwLVxcdURGMDNcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzQy1cXHVERjQ0XFx1REY0N1xcdURGNDhcXHVERjRCLVxcdURGNERcXHVERjUwXFx1REY1N1xcdURGNUQtXFx1REY2M1xcdURGNjYtXFx1REY2Q1xcdURGNzAtXFx1REY3NF18XFx1RDgwNVtcXHVEQzAwLVxcdURDNEFcXHVEQzUwLVxcdURDNTlcXHVEQzgwLVxcdURDQzVcXHVEQ0M3XFx1RENEMC1cXHVEQ0Q5XFx1REQ4MC1cXHVEREI1XFx1RERCOC1cXHVEREMwXFx1REREOC1cXHVEREREXFx1REUwMC1cXHVERTQwXFx1REU0NFxcdURFNTAtXFx1REU1OVxcdURFODAtXFx1REVCN1xcdURFQzAtXFx1REVDOVxcdURGMDAtXFx1REYxOVxcdURGMUQtXFx1REYyQlxcdURGMzAtXFx1REYzOV18XFx1RDgwNltcXHVEQ0EwLVxcdURDRTlcXHVEQ0ZGXFx1REUwMC1cXHVERTNFXFx1REU0N1xcdURFNTAtXFx1REU4M1xcdURFODYtXFx1REU5OVxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMzZcXHVEQzM4LVxcdURDNDBcXHVEQzUwLVxcdURDNTlcXHVEQzcyLVxcdURDOEZcXHVEQzkyLVxcdURDQTdcXHVEQ0E5LVxcdURDQjZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzNlxcdUREM0FcXHVERDNDXFx1REQzRFxcdUREM0YtXFx1REQ0N1xcdURENTAtXFx1REQ1OV18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REMwMC1cXHVEQzZFXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REU2MC1cXHVERTY5XFx1REVEMC1cXHVERUVEXFx1REVGMC1cXHVERUY0XFx1REYwMC1cXHVERjM2XFx1REY0MC1cXHVERjQzXFx1REY1MC1cXHVERjU5XFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURGMDAtXFx1REY0NFxcdURGNTAtXFx1REY3RVxcdURGOEYtXFx1REY5RlxcdURGRTBcXHVERkUxXXxcXHVEODIxW1xcdURDMDAtXFx1REZFQ118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OVxcdURDOURcXHVEQzlFXXxcXHVEODM0W1xcdURENjUtXFx1REQ2OVxcdURENkQtXFx1REQ3MlxcdUREN0ItXFx1REQ4MlxcdUREODUtXFx1REQ4QlxcdUREQUEtXFx1RERBRFxcdURFNDItXFx1REU0NF18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXFx1REZDRS1cXHVERkZGXXxcXHVEODM2W1xcdURFMDAtXFx1REUzNlxcdURFM0ItXFx1REU2Q1xcdURFNzVcXHVERTg0XFx1REU5Qi1cXHVERTlGXFx1REVBMS1cXHVERUFGXXxcXHVEODM4W1xcdURDMDAtXFx1REMwNlxcdURDMDgtXFx1REMxOFxcdURDMUItXFx1REMyMVxcdURDMjNcXHVEQzI0XFx1REMyNi1cXHVEQzJBXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdURDRDAtXFx1RENENlxcdUREMDAtXFx1REQ0QVxcdURENTAtXFx1REQ1OV18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXXxcXHVEQjQwW1xcdUREMDAtXFx1RERFRl0vO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzb241L2xpYi91dGlsLmpzXG52YXIgcmVxdWlyZV91dGlsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzb241L2xpYi91dGlsLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIHVuaWNvZGUgPSByZXF1aXJlX3VuaWNvZGUoKTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAgIGlzU3BhY2VTZXBhcmF0b3IoYykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGMgPT09IFwic3RyaW5nXCIgJiYgdW5pY29kZS5TcGFjZV9TZXBhcmF0b3IudGVzdChjKTtcbiAgICAgIH0sXG4gICAgICBpc0lkU3RhcnRDaGFyKGMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSBcInN0cmluZ1wiICYmIChjID49IFwiYVwiICYmIGMgPD0gXCJ6XCIgfHwgYyA+PSBcIkFcIiAmJiBjIDw9IFwiWlwiIHx8IGMgPT09IFwiJFwiIHx8IGMgPT09IFwiX1wiIHx8IHVuaWNvZGUuSURfU3RhcnQudGVzdChjKSk7XG4gICAgICB9LFxuICAgICAgaXNJZENvbnRpbnVlQ2hhcihjKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgYyA9PT0gXCJzdHJpbmdcIiAmJiAoYyA+PSBcImFcIiAmJiBjIDw9IFwielwiIHx8IGMgPj0gXCJBXCIgJiYgYyA8PSBcIlpcIiB8fCBjID49IFwiMFwiICYmIGMgPD0gXCI5XCIgfHwgYyA9PT0gXCIkXCIgfHwgYyA9PT0gXCJfXCIgfHwgYyA9PT0gXCJcXHUyMDBDXCIgfHwgYyA9PT0gXCJcXHUyMDBEXCIgfHwgdW5pY29kZS5JRF9Db250aW51ZS50ZXN0KGMpKTtcbiAgICAgIH0sXG4gICAgICBpc0RpZ2l0KGMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSBcInN0cmluZ1wiICYmIC9bMC05XS8udGVzdChjKTtcbiAgICAgIH0sXG4gICAgICBpc0hleERpZ2l0KGMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBjID09PSBcInN0cmluZ1wiICYmIC9bMC05QS1GYS1mXS8udGVzdChjKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzb241L2xpYi9wYXJzZS5qc1xudmFyIHJlcXVpcmVfcGFyc2UzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzb241L2xpYi9wYXJzZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIHZhciB1dGlsID0gcmVxdWlyZV91dGlsKCk7XG4gICAgdmFyIHNvdXJjZTtcbiAgICB2YXIgcGFyc2VTdGF0ZTtcbiAgICB2YXIgc3RhY2s7XG4gICAgdmFyIHBvcztcbiAgICB2YXIgbGluZTI7XG4gICAgdmFyIGNvbHVtbjtcbiAgICB2YXIgdG9rZW47XG4gICAgdmFyIGtleTtcbiAgICB2YXIgcm9vdDtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNlMyh0ZXh0LCByZXZpdmVyKSB7XG4gICAgICBzb3VyY2UgPSBTdHJpbmcodGV4dCk7XG4gICAgICBwYXJzZVN0YXRlID0gXCJzdGFydFwiO1xuICAgICAgc3RhY2sgPSBbXTtcbiAgICAgIHBvcyA9IDA7XG4gICAgICBsaW5lMiA9IDE7XG4gICAgICBjb2x1bW4gPSAwO1xuICAgICAgdG9rZW4gPSB2b2lkIDA7XG4gICAgICBrZXkgPSB2b2lkIDA7XG4gICAgICByb290ID0gdm9pZCAwO1xuICAgICAgZG8ge1xuICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICBwYXJzZVN0YXRlc1twYXJzZVN0YXRlXSgpO1xuICAgICAgfSB3aGlsZSAodG9rZW4udHlwZSAhPT0gXCJlb2ZcIik7XG4gICAgICBpZiAodHlwZW9mIHJldml2ZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gaW50ZXJuYWxpemUoeyBcIlwiOiByb290IH0sIFwiXCIsIHJldml2ZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfTtcbiAgICBmdW5jdGlvbiBpbnRlcm5hbGl6ZShob2xkZXIsIG5hbWUsIHJldml2ZXIpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gaG9sZGVyW25hbWVdO1xuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtleTIgPSBTdHJpbmcoaSk7XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IGludGVybmFsaXplKHZhbHVlLCBrZXkyLCByZXZpdmVyKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXkyXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5Miwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCBrZXkyIGluIHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IGludGVybmFsaXplKHZhbHVlLCBrZXkyLCByZXZpdmVyKTtcbiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVtrZXkyXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwga2V5Miwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZXBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXZpdmVyLmNhbGwoaG9sZGVyLCBuYW1lLCB2YWx1ZSk7XG4gICAgfVxuICAgIHZhciBsZXhTdGF0ZTtcbiAgICB2YXIgYnVmZmVyO1xuICAgIHZhciBkb3VibGVRdW90ZTtcbiAgICB2YXIgc2lnbjtcbiAgICB2YXIgYztcbiAgICBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICBsZXhTdGF0ZSA9IFwiZGVmYXVsdFwiO1xuICAgICAgYnVmZmVyID0gXCJcIjtcbiAgICAgIGRvdWJsZVF1b3RlID0gZmFsc2U7XG4gICAgICBzaWduID0gMTtcbiAgICAgIGZvciAoOyA7ICkge1xuICAgICAgICBjID0gcGVlaygpO1xuICAgICAgICBjb25zdCB0b2tlbjIgPSBsZXhTdGF0ZXNbbGV4U3RhdGVdKCk7XG4gICAgICAgIGlmICh0b2tlbjIpIHtcbiAgICAgICAgICByZXR1cm4gdG9rZW4yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBlZWsoKSB7XG4gICAgICBpZiAoc291cmNlW3Bvc10pIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHNvdXJjZS5jb2RlUG9pbnRBdChwb3MpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZDIoKSB7XG4gICAgICBjb25zdCBjMiA9IHBlZWsoKTtcbiAgICAgIGlmIChjMiA9PT0gXCJcXG5cIikge1xuICAgICAgICBsaW5lMisrO1xuICAgICAgICBjb2x1bW4gPSAwO1xuICAgICAgfSBlbHNlIGlmIChjMikge1xuICAgICAgICBjb2x1bW4gKz0gYzIubGVuZ3RoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sdW1uKys7XG4gICAgICB9XG4gICAgICBpZiAoYzIpIHtcbiAgICAgICAgcG9zICs9IGMyLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjMjtcbiAgICB9XG4gICAgdmFyIGxleFN0YXRlcyA9IHtcbiAgICAgIGRlZmF1bHQoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCJcdFwiOlxuICAgICAgICAgIGNhc2UgXCJcXHZcIjpcbiAgICAgICAgICBjYXNlIFwiXFxmXCI6XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICBjYXNlIFwiXFx4QTBcIjpcbiAgICAgICAgICBjYXNlIFwiXFx1RkVGRlwiOlxuICAgICAgICAgIGNhc2UgXCJcXG5cIjpcbiAgICAgICAgICBjYXNlIFwiXFxyXCI6XG4gICAgICAgICAgY2FzZSBcIlxcdTIwMjhcIjpcbiAgICAgICAgICBjYXNlIFwiXFx1MjAyOVwiOlxuICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwiL1wiOlxuICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJjb21tZW50XCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSB2b2lkIDA6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwiZW9mXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsLmlzU3BhY2VTZXBhcmF0b3IoYykpIHtcbiAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGV4U3RhdGVzW3BhcnNlU3RhdGVdKCk7XG4gICAgICB9LFxuICAgICAgY29tbWVudCgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwibXVsdGlMaW5lQ29tbWVudFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCIvXCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcInNpbmdsZUxpbmVDb21tZW50XCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9LFxuICAgICAgbXVsdGlMaW5lQ29tbWVudCgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwibXVsdGlMaW5lQ29tbWVudEFzdGVyaXNrXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSB2b2lkIDA6XG4gICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICByZWFkMigpO1xuICAgICAgfSxcbiAgICAgIG11bHRpTGluZUNvbW1lbnRBc3RlcmlzaygpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIipcIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIi9cIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwiZGVmYXVsdFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2Ugdm9pZCAwOlxuICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgbGV4U3RhdGUgPSBcIm11bHRpTGluZUNvbW1lbnRcIjtcbiAgICAgIH0sXG4gICAgICBzaW5nbGVMaW5lQ29tbWVudCgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIlxcblwiOlxuICAgICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICBjYXNlIFwiXFx1MjAyOFwiOlxuICAgICAgICAgIGNhc2UgXCJcXHUyMDI5XCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlZmF1bHRcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIHZvaWQgMDpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJlb2ZcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmVhZDIoKTtcbiAgICAgIH0sXG4gICAgICB2YWx1ZSgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIntcIjpcbiAgICAgICAgICBjYXNlIFwiW1wiOlxuICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwicHVuY3R1YXRvclwiLCByZWFkMigpKTtcbiAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgIGxpdGVyYWwoXCJ1bGxcIik7XG4gICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJudWxsXCIsIG51bGwpO1xuICAgICAgICAgIGNhc2UgXCJ0XCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGl0ZXJhbChcInJ1ZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcImJvb2xlYW5cIiwgdHJ1ZSk7XG4gICAgICAgICAgY2FzZSBcImZcIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsaXRlcmFsKFwiYWxzZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcImJvb2xlYW5cIiwgZmFsc2UpO1xuICAgICAgICAgIGNhc2UgXCItXCI6XG4gICAgICAgICAgY2FzZSBcIitcIjpcbiAgICAgICAgICAgIGlmIChyZWFkMigpID09PSBcIi1cIikge1xuICAgICAgICAgICAgICBzaWduID0gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwic2lnblwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCIuXCI6XG4gICAgICAgICAgICBidWZmZXIgPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxQb2ludExlYWRpbmdcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwiMFwiOlxuICAgICAgICAgICAgYnVmZmVyID0gcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJ6ZXJvXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIjFcIjpcbiAgICAgICAgICBjYXNlIFwiMlwiOlxuICAgICAgICAgIGNhc2UgXCIzXCI6XG4gICAgICAgICAgY2FzZSBcIjRcIjpcbiAgICAgICAgICBjYXNlIFwiNVwiOlxuICAgICAgICAgIGNhc2UgXCI2XCI6XG4gICAgICAgICAgY2FzZSBcIjdcIjpcbiAgICAgICAgICBjYXNlIFwiOFwiOlxuICAgICAgICAgIGNhc2UgXCI5XCI6XG4gICAgICAgICAgICBidWZmZXIgPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxJbnRlZ2VyXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIklcIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsaXRlcmFsKFwibmZpbml0eVwiKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcIm51bWVyaWNcIiwgSW5maW5pdHkpO1xuICAgICAgICAgIGNhc2UgXCJOXCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGl0ZXJhbChcImFOXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwibnVtZXJpY1wiLCBOYU4pO1xuICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICBjYXNlIFwiJ1wiOlxuICAgICAgICAgICAgZG91YmxlUXVvdGUgPSByZWFkMigpID09PSAnXCInO1xuICAgICAgICAgICAgYnVmZmVyID0gXCJcIjtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJzdHJpbmdcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH0sXG4gICAgICBpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlKCkge1xuICAgICAgICBpZiAoYyAhPT0gXCJ1XCIpIHtcbiAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICByZWFkMigpO1xuICAgICAgICBjb25zdCB1ID0gdW5pY29kZUVzY2FwZSgpO1xuICAgICAgICBzd2l0Y2ggKHUpIHtcbiAgICAgICAgICBjYXNlIFwiJFwiOlxuICAgICAgICAgIGNhc2UgXCJfXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRTdGFydENoYXIodSkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJ1ZmZlciArPSB1O1xuICAgICAgICBsZXhTdGF0ZSA9IFwiaWRlbnRpZmllck5hbWVcIjtcbiAgICAgIH0sXG4gICAgICBpZGVudGlmaWVyTmFtZSgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIiRcIjpcbiAgICAgICAgICBjYXNlIFwiX1wiOlxuICAgICAgICAgIGNhc2UgXCJcXHUyMDBDXCI6XG4gICAgICAgICAgY2FzZSBcIlxcdTIwMERcIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJcXFxcXCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImlkZW50aWZpZXJOYW1lRXNjYXBlXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV0aWwuaXNJZENvbnRpbnVlQ2hhcihjKSkge1xuICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJpZGVudGlmaWVyXCIsIGJ1ZmZlcik7XG4gICAgICB9LFxuICAgICAgaWRlbnRpZmllck5hbWVFc2NhcGUoKSB7XG4gICAgICAgIGlmIChjICE9PSBcInVcIikge1xuICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQyKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJlYWQyKCk7XG4gICAgICAgIGNvbnN0IHUgPSB1bmljb2RlRXNjYXBlKCk7XG4gICAgICAgIHN3aXRjaCAodSkge1xuICAgICAgICAgIGNhc2UgXCIkXCI6XG4gICAgICAgICAgY2FzZSBcIl9cIjpcbiAgICAgICAgICBjYXNlIFwiXFx1MjAwQ1wiOlxuICAgICAgICAgIGNhc2UgXCJcXHUyMDBEXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKCF1dGlsLmlzSWRDb250aW51ZUNoYXIodSkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgaW52YWxpZElkZW50aWZpZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJ1ZmZlciArPSB1O1xuICAgICAgICBsZXhTdGF0ZSA9IFwiaWRlbnRpZmllck5hbWVcIjtcbiAgICAgIH0sXG4gICAgICBzaWduKCkge1xuICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICBjYXNlIFwiLlwiOlxuICAgICAgICAgICAgYnVmZmVyID0gcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJkZWNpbWFsUG9pbnRMZWFkaW5nXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIjBcIjpcbiAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwiemVyb1wiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCIxXCI6XG4gICAgICAgICAgY2FzZSBcIjJcIjpcbiAgICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICAgIGNhc2UgXCI0XCI6XG4gICAgICAgICAgY2FzZSBcIjVcIjpcbiAgICAgICAgICBjYXNlIFwiNlwiOlxuICAgICAgICAgIGNhc2UgXCI3XCI6XG4gICAgICAgICAgY2FzZSBcIjhcIjpcbiAgICAgICAgICBjYXNlIFwiOVwiOlxuICAgICAgICAgICAgYnVmZmVyID0gcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJkZWNpbWFsSW50ZWdlclwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJJXCI6XG4gICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgbGl0ZXJhbChcIm5maW5pdHlcIik7XG4gICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJudW1lcmljXCIsIHNpZ24gKiBJbmZpbml0eSk7XG4gICAgICAgICAgY2FzZSBcIk5cIjpcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgICBsaXRlcmFsKFwiYU5cIik7XG4gICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJudW1lcmljXCIsIE5hTik7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9LFxuICAgICAgemVybygpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIi5cIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxQb2ludFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxFeHBvbmVudFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJ4XCI6XG4gICAgICAgICAgY2FzZSBcIlhcIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImhleGFkZWNpbWFsXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwibnVtZXJpY1wiLCBzaWduICogMCk7XG4gICAgICB9LFxuICAgICAgZGVjaW1hbEludGVnZXIoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCIuXCI6XG4gICAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJkZWNpbWFsUG9pbnRcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwiZVwiOlxuICAgICAgICAgIGNhc2UgXCJFXCI6XG4gICAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJkZWNpbWFsRXhwb25lbnRcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG4gICAgICAgICAgYnVmZmVyICs9IHJlYWQyKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdUb2tlbihcIm51bWVyaWNcIiwgc2lnbiAqIE51bWJlcihidWZmZXIpKTtcbiAgICAgIH0sXG4gICAgICBkZWNpbWFsUG9pbnRMZWFkaW5nKCkge1xuICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG4gICAgICAgICAgYnVmZmVyICs9IHJlYWQyKCk7XG4gICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxGcmFjdGlvblwiO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH0sXG4gICAgICBkZWNpbWFsUG9pbnQoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxFeHBvbmVudFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcbiAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICBsZXhTdGF0ZSA9IFwiZGVjaW1hbEZyYWN0aW9uXCI7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdUb2tlbihcIm51bWVyaWNcIiwgc2lnbiAqIE51bWJlcihidWZmZXIpKTtcbiAgICAgIH0sXG4gICAgICBkZWNpbWFsRnJhY3Rpb24oKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCJlXCI6XG4gICAgICAgICAgY2FzZSBcIkVcIjpcbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxFeHBvbmVudFwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcbiAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwibnVtZXJpY1wiLCBzaWduICogTnVtYmVyKGJ1ZmZlcikpO1xuICAgICAgfSxcbiAgICAgIGRlY2ltYWxFeHBvbmVudCgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIitcIjpcbiAgICAgICAgICBjYXNlIFwiLVwiOlxuICAgICAgICAgICAgYnVmZmVyICs9IHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwiZGVjaW1hbEV4cG9uZW50U2lnblwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsLmlzRGlnaXQoYykpIHtcbiAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICBsZXhTdGF0ZSA9IFwiZGVjaW1hbEV4cG9uZW50SW50ZWdlclwiO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH0sXG4gICAgICBkZWNpbWFsRXhwb25lbnRTaWduKCkge1xuICAgICAgICBpZiAodXRpbC5pc0RpZ2l0KGMpKSB7XG4gICAgICAgICAgYnVmZmVyICs9IHJlYWQyKCk7XG4gICAgICAgICAgbGV4U3RhdGUgPSBcImRlY2ltYWxFeHBvbmVudEludGVnZXJcIjtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9LFxuICAgICAgZGVjaW1hbEV4cG9uZW50SW50ZWdlcigpIHtcbiAgICAgICAgaWYgKHV0aWwuaXNEaWdpdChjKSkge1xuICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJudW1lcmljXCIsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSk7XG4gICAgICB9LFxuICAgICAgaGV4YWRlY2ltYWwoKSB7XG4gICAgICAgIGlmICh1dGlsLmlzSGV4RGlnaXQoYykpIHtcbiAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICBsZXhTdGF0ZSA9IFwiaGV4YWRlY2ltYWxJbnRlZ2VyXCI7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQyKCkpO1xuICAgICAgfSxcbiAgICAgIGhleGFkZWNpbWFsSW50ZWdlcigpIHtcbiAgICAgICAgaWYgKHV0aWwuaXNIZXhEaWdpdChjKSkge1xuICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJudW1lcmljXCIsIHNpZ24gKiBOdW1iZXIoYnVmZmVyKSk7XG4gICAgICB9LFxuICAgICAgc3RyaW5nKCkge1xuICAgICAgICBzd2l0Y2ggKGMpIHtcbiAgICAgICAgICBjYXNlIFwiXFxcXFwiOlxuICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgIGJ1ZmZlciArPSBlc2NhcGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdcIic6XG4gICAgICAgICAgICBpZiAoZG91YmxlUXVvdGUpIHtcbiAgICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwic3RyaW5nXCIsIGJ1ZmZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwiJ1wiOlxuICAgICAgICAgICAgaWYgKCFkb3VibGVRdW90ZSkge1xuICAgICAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV3VG9rZW4oXCJzdHJpbmdcIiwgYnVmZmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJcXG5cIjpcbiAgICAgICAgICBjYXNlIFwiXFxyXCI6XG4gICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgICAgICBjYXNlIFwiXFx1MjAyOFwiOlxuICAgICAgICAgIGNhc2UgXCJcXHUyMDI5XCI6XG4gICAgICAgICAgICBzZXBhcmF0b3JDaGFyKGMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSB2b2lkIDA6XG4gICAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICBidWZmZXIgKz0gcmVhZDIoKTtcbiAgICAgIH0sXG4gICAgICBzdGFydCgpIHtcbiAgICAgICAgc3dpdGNoIChjKSB7XG4gICAgICAgICAgY2FzZSBcIntcIjpcbiAgICAgICAgICBjYXNlIFwiW1wiOlxuICAgICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwicHVuY3R1YXRvclwiLCByZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXhTdGF0ZSA9IFwidmFsdWVcIjtcbiAgICAgIH0sXG4gICAgICBiZWZvcmVQcm9wZXJ0eU5hbWUoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCIkXCI6XG4gICAgICAgICAgY2FzZSBcIl9cIjpcbiAgICAgICAgICAgIGJ1ZmZlciA9IHJlYWQyKCk7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwiaWRlbnRpZmllck5hbWVcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwiXFxcXFwiOlxuICAgICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICAgIGxleFN0YXRlID0gXCJpZGVudGlmaWVyTmFtZVN0YXJ0RXNjYXBlXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIn1cIjpcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcInB1bmN0dWF0b3JcIiwgcmVhZDIoKSk7XG4gICAgICAgICAgY2FzZSAnXCInOlxuICAgICAgICAgIGNhc2UgXCInXCI6XG4gICAgICAgICAgICBkb3VibGVRdW90ZSA9IHJlYWQyKCkgPT09ICdcIic7XG4gICAgICAgICAgICBsZXhTdGF0ZSA9IFwic3RyaW5nXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV0aWwuaXNJZFN0YXJ0Q2hhcihjKSkge1xuICAgICAgICAgIGJ1ZmZlciArPSByZWFkMigpO1xuICAgICAgICAgIGxleFN0YXRlID0gXCJpZGVudGlmaWVyTmFtZVwiO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH0sXG4gICAgICBhZnRlclByb3BlcnR5TmFtZSgpIHtcbiAgICAgICAgaWYgKGMgPT09IFwiOlwiKSB7XG4gICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwicHVuY3R1YXRvclwiLCByZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH0sXG4gICAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlKCkge1xuICAgICAgICBsZXhTdGF0ZSA9IFwidmFsdWVcIjtcbiAgICAgIH0sXG4gICAgICBhZnRlclByb3BlcnR5VmFsdWUoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCIsXCI6XG4gICAgICAgICAgY2FzZSBcIn1cIjpcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcInB1bmN0dWF0b3JcIiwgcmVhZDIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9LFxuICAgICAgYmVmb3JlQXJyYXlWYWx1ZSgpIHtcbiAgICAgICAgaWYgKGMgPT09IFwiXVwiKSB7XG4gICAgICAgICAgcmV0dXJuIG5ld1Rva2VuKFwicHVuY3R1YXRvclwiLCByZWFkMigpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXhTdGF0ZSA9IFwidmFsdWVcIjtcbiAgICAgIH0sXG4gICAgICBhZnRlckFycmF5VmFsdWUoKSB7XG4gICAgICAgIHN3aXRjaCAoYykge1xuICAgICAgICAgIGNhc2UgXCIsXCI6XG4gICAgICAgICAgY2FzZSBcIl1cIjpcbiAgICAgICAgICAgIHJldHVybiBuZXdUb2tlbihcInB1bmN0dWF0b3JcIiwgcmVhZDIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9LFxuICAgICAgZW5kKCkge1xuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIG5ld1Rva2VuKHR5cGUsIHZhbHVlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbGluZTogbGluZTIsXG4gICAgICAgIGNvbHVtblxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGl0ZXJhbChzKSB7XG4gICAgICBmb3IgKGNvbnN0IGMyIG9mIHMpIHtcbiAgICAgICAgY29uc3QgcCA9IHBlZWsoKTtcbiAgICAgICAgaWYgKHAgIT09IGMyKSB7XG4gICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVhZDIoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZXNjYXBlKCkge1xuICAgICAgY29uc3QgYzIgPSBwZWVrKCk7XG4gICAgICBzd2l0Y2ggKGMyKSB7XG4gICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICByZXR1cm4gXCJcXGJcIjtcbiAgICAgICAgY2FzZSBcImZcIjpcbiAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgIHJldHVybiBcIlxcZlwiO1xuICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgcmV0dXJuIFwiXFxuXCI7XG4gICAgICAgIGNhc2UgXCJyXCI6XG4gICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICByZXR1cm4gXCJcXHJcIjtcbiAgICAgICAgY2FzZSBcInRcIjpcbiAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgIHJldHVybiBcIlx0XCI7XG4gICAgICAgIGNhc2UgXCJ2XCI6XG4gICAgICAgICAgcmVhZDIoKTtcbiAgICAgICAgICByZXR1cm4gXCJcXHZcIjtcbiAgICAgICAgY2FzZSBcIjBcIjpcbiAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgIGlmICh1dGlsLmlzRGlnaXQocGVlaygpKSkge1xuICAgICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcIlxcMFwiO1xuICAgICAgICBjYXNlIFwieFwiOlxuICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgcmV0dXJuIGhleEVzY2FwZSgpO1xuICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgcmV0dXJuIHVuaWNvZGVFc2NhcGUoKTtcbiAgICAgICAgY2FzZSBcIlxcblwiOlxuICAgICAgICBjYXNlIFwiXFx1MjAyOFwiOlxuICAgICAgICBjYXNlIFwiXFx1MjAyOVwiOlxuICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIGNhc2UgXCJcXHJcIjpcbiAgICAgICAgICByZWFkMigpO1xuICAgICAgICAgIGlmIChwZWVrKCkgPT09IFwiXFxuXCIpIHtcbiAgICAgICAgICAgIHJlYWQyKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICBjYXNlIFwiMVwiOlxuICAgICAgICBjYXNlIFwiMlwiOlxuICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICBjYXNlIFwiNFwiOlxuICAgICAgICBjYXNlIFwiNVwiOlxuICAgICAgICBjYXNlIFwiNlwiOlxuICAgICAgICBjYXNlIFwiN1wiOlxuICAgICAgICBjYXNlIFwiOFwiOlxuICAgICAgICBjYXNlIFwiOVwiOlxuICAgICAgICAgIHRocm93IGludmFsaWRDaGFyKHJlYWQyKCkpO1xuICAgICAgICBjYXNlIHZvaWQgMDpcbiAgICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZWFkMigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoZXhFc2NhcGUoKSB7XG4gICAgICBsZXQgYnVmZmVyMiA9IFwiXCI7XG4gICAgICBsZXQgYzIgPSBwZWVrKCk7XG4gICAgICBpZiAoIXV0aWwuaXNIZXhEaWdpdChjMikpIHtcbiAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICB9XG4gICAgICBidWZmZXIyICs9IHJlYWQyKCk7XG4gICAgICBjMiA9IHBlZWsoKTtcbiAgICAgIGlmICghdXRpbC5pc0hleERpZ2l0KGMyKSkge1xuICAgICAgICB0aHJvdyBpbnZhbGlkQ2hhcihyZWFkMigpKTtcbiAgICAgIH1cbiAgICAgIGJ1ZmZlcjIgKz0gcmVhZDIoKTtcbiAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludChwYXJzZUludChidWZmZXIyLCAxNikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bmljb2RlRXNjYXBlKCkge1xuICAgICAgbGV0IGJ1ZmZlcjIgPSBcIlwiO1xuICAgICAgbGV0IGNvdW50ID0gNDtcbiAgICAgIHdoaWxlIChjb3VudC0tID4gMCkge1xuICAgICAgICBjb25zdCBjMiA9IHBlZWsoKTtcbiAgICAgICAgaWYgKCF1dGlsLmlzSGV4RGlnaXQoYzIpKSB7XG4gICAgICAgICAgdGhyb3cgaW52YWxpZENoYXIocmVhZDIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgYnVmZmVyMiArPSByZWFkMigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KGJ1ZmZlcjIsIDE2KSk7XG4gICAgfVxuICAgIHZhciBwYXJzZVN0YXRlcyA9IHtcbiAgICAgIHN0YXJ0KCkge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJlb2ZcIikge1xuICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKTtcbiAgICAgICAgfVxuICAgICAgICBwdXNoKCk7XG4gICAgICB9LFxuICAgICAgYmVmb3JlUHJvcGVydHlOYW1lKCkge1xuICAgICAgICBzd2l0Y2ggKHRva2VuLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFwiaWRlbnRpZmllclwiOlxuICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICAgIGtleSA9IHRva2VuLnZhbHVlO1xuICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFwiYWZ0ZXJQcm9wZXJ0eU5hbWVcIjtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIFwicHVuY3R1YXRvclwiOlxuICAgICAgICAgICAgcG9wKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcImVvZlwiOlxuICAgICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYWZ0ZXJQcm9wZXJ0eU5hbWUoKSB7XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImVvZlwiKSB7XG4gICAgICAgICAgdGhyb3cgaW52YWxpZEVPRigpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnNlU3RhdGUgPSBcImJlZm9yZVByb3BlcnR5VmFsdWVcIjtcbiAgICAgIH0sXG4gICAgICBiZWZvcmVQcm9wZXJ0eVZhbHVlKCkge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJlb2ZcIikge1xuICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKTtcbiAgICAgICAgfVxuICAgICAgICBwdXNoKCk7XG4gICAgICB9LFxuICAgICAgYmVmb3JlQXJyYXlWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwiZW9mXCIpIHtcbiAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwicHVuY3R1YXRvclwiICYmIHRva2VuLnZhbHVlID09PSBcIl1cIikge1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwdXNoKCk7XG4gICAgICB9LFxuICAgICAgYWZ0ZXJQcm9wZXJ0eVZhbHVlKCkge1xuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gXCJlb2ZcIikge1xuICAgICAgICAgIHRocm93IGludmFsaWRFT0YoKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcIixcIjpcbiAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBcImJlZm9yZVByb3BlcnR5TmFtZVwiO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJ9XCI6XG4gICAgICAgICAgICBwb3AoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFmdGVyQXJyYXlWYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwiZW9mXCIpIHtcbiAgICAgICAgICB0aHJvdyBpbnZhbGlkRU9GKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCIsXCI6XG4gICAgICAgICAgICBwYXJzZVN0YXRlID0gXCJiZWZvcmVBcnJheVZhbHVlXCI7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIl1cIjpcbiAgICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZW5kKCkge1xuICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gcHVzaCgpIHtcbiAgICAgIGxldCB2YWx1ZTtcbiAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFwicHVuY3R1YXRvclwiOlxuICAgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJ7XCI6XG4gICAgICAgICAgICAgIHZhbHVlID0ge307XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIltcIjpcbiAgICAgICAgICAgICAgdmFsdWUgPSBbXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibnVsbFwiOlxuICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICBjYXNlIFwibnVtZXJpY1wiOlxuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgdmFsdWUgPSB0b2tlbi52YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChyb290ID09PSB2b2lkIDApIHtcbiAgICAgICAgcm9vdCA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gc3RhY2tbc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgICAgICBwYXJlbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudCwga2V5LCB7XG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHN0YWNrLnB1c2godmFsdWUpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBwYXJzZVN0YXRlID0gXCJiZWZvcmVBcnJheVZhbHVlXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyc2VTdGF0ZSA9IFwiYmVmb3JlUHJvcGVydHlOYW1lXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuICAgICAgICAgIHBhcnNlU3RhdGUgPSBcImVuZFwiO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcbiAgICAgICAgICBwYXJzZVN0YXRlID0gXCJhZnRlckFycmF5VmFsdWVcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJzZVN0YXRlID0gXCJhZnRlclByb3BlcnR5VmFsdWVcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwb3AoKSB7XG4gICAgICBzdGFjay5wb3AoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICAgIGlmIChjdXJyZW50ID09IG51bGwpIHtcbiAgICAgICAgcGFyc2VTdGF0ZSA9IFwiZW5kXCI7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcbiAgICAgICAgcGFyc2VTdGF0ZSA9IFwiYWZ0ZXJBcnJheVZhbHVlXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZVN0YXRlID0gXCJhZnRlclByb3BlcnR5VmFsdWVcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW52YWxpZENoYXIoYzIpIHtcbiAgICAgIGlmIChjMiA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0ICR7bGluZTJ9OiR7Y29sdW1ufWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBjaGFyYWN0ZXIgJyR7Zm9ybWF0Q2hhcihjMil9JyBhdCAke2xpbmUyfToke2NvbHVtbn1gKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW52YWxpZEVPRigpIHtcbiAgICAgIHJldHVybiBzeW50YXhFcnJvcihgSlNPTjU6IGludmFsaWQgZW5kIG9mIGlucHV0IGF0ICR7bGluZTJ9OiR7Y29sdW1ufWApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbnZhbGlkSWRlbnRpZmllcigpIHtcbiAgICAgIGNvbHVtbiAtPSA1O1xuICAgICAgcmV0dXJuIHN5bnRheEVycm9yKGBKU09ONTogaW52YWxpZCBpZGVudGlmaWVyIGNoYXJhY3RlciBhdCAke2xpbmUyfToke2NvbHVtbn1gKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VwYXJhdG9yQ2hhcihjMikge1xuICAgICAgY29uc29sZS53YXJuKGBKU09ONTogJyR7Zm9ybWF0Q2hhcihjMil9JyBpbiBzdHJpbmdzIGlzIG5vdCB2YWxpZCBFQ01BU2NyaXB0OyBjb25zaWRlciBlc2NhcGluZ2ApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXRDaGFyKGMyKSB7XG4gICAgICBjb25zdCByZXBsYWNlbWVudHMgPSB7XG4gICAgICAgIFwiJ1wiOiBcIlxcXFwnXCIsXG4gICAgICAgICdcIic6ICdcXFxcXCInLFxuICAgICAgICBcIlxcXFxcIjogXCJcXFxcXFxcXFwiLFxuICAgICAgICBcIlxcYlwiOiBcIlxcXFxiXCIsXG4gICAgICAgIFwiXFxmXCI6IFwiXFxcXGZcIixcbiAgICAgICAgXCJcXG5cIjogXCJcXFxcblwiLFxuICAgICAgICBcIlxcclwiOiBcIlxcXFxyXCIsXG4gICAgICAgIFwiXHRcIjogXCJcXFxcdFwiLFxuICAgICAgICBcIlxcdlwiOiBcIlxcXFx2XCIsXG4gICAgICAgIFwiXFwwXCI6IFwiXFxcXDBcIixcbiAgICAgICAgXCJcXHUyMDI4XCI6IFwiXFxcXHUyMDI4XCIsXG4gICAgICAgIFwiXFx1MjAyOVwiOiBcIlxcXFx1MjAyOVwiXG4gICAgICB9O1xuICAgICAgaWYgKHJlcGxhY2VtZW50c1tjMl0pIHtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50c1tjMl07XG4gICAgICB9XG4gICAgICBpZiAoYzIgPCBcIiBcIikge1xuICAgICAgICBjb25zdCBoZXhTdHJpbmcgPSBjMi5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgcmV0dXJuIFwiXFxcXHhcIiArIChcIjAwXCIgKyBoZXhTdHJpbmcpLnN1YnN0cmluZyhoZXhTdHJpbmcubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjMjtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3ludGF4RXJyb3IobWVzc2FnZSkge1xuICAgICAgY29uc3QgZXJyID0gbmV3IFN5bnRheEVycm9yKG1lc3NhZ2UpO1xuICAgICAgZXJyLmxpbmVOdW1iZXIgPSBsaW5lMjtcbiAgICAgIGVyci5jb2x1bW5OdW1iZXIgPSBjb2x1bW47XG4gICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9pZ25vcmUvaW5kZXguanNcbnZhciByZXF1aXJlX2lnbm9yZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9pZ25vcmUvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBmdW5jdGlvbiBtYWtlQXJyYXkoc3ViamVjdCkge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoc3ViamVjdCkgPyBzdWJqZWN0IDogW3N1YmplY3RdO1xuICAgIH1cbiAgICB2YXIgRU1QVFkgPSBcIlwiO1xuICAgIHZhciBTUEFDRSA9IFwiIFwiO1xuICAgIHZhciBFU0NBUEUgPSBcIlxcXFxcIjtcbiAgICB2YXIgUkVHRVhfVEVTVF9CTEFOS19MSU5FID0gL15cXHMrJC87XG4gICAgdmFyIFJFR0VYX0lOVkFMSURfVFJBSUxJTkdfQkFDS1NMQVNIID0gLyg/OlteXFxcXF18XilcXFxcJC87XG4gICAgdmFyIFJFR0VYX1JFUExBQ0VfTEVBRElOR19FWENBUEVEX0VYQ0xBTUFUSU9OID0gL15cXFxcIS87XG4gICAgdmFyIFJFR0VYX1JFUExBQ0VfTEVBRElOR19FWENBUEVEX0hBU0ggPSAvXlxcXFwjLztcbiAgICB2YXIgUkVHRVhfU1BMSVRBTExfQ1JMRiA9IC9cXHI/XFxuL2c7XG4gICAgdmFyIFJFR0VYX1RFU1RfSU5WQUxJRF9QQVRIID0gL15cXC4qXFwvfF5cXC4rJC87XG4gICAgdmFyIFNMQVNIID0gXCIvXCI7XG4gICAgdmFyIFRNUF9LRVlfSUdOT1JFID0gXCJub2RlLWlnbm9yZVwiO1xuICAgIGlmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBUTVBfS0VZX0lHTk9SRSA9IFN5bWJvbC5mb3IoXCJub2RlLWlnbm9yZVwiKTtcbiAgICB9XG4gICAgdmFyIEtFWV9JR05PUkUgPSBUTVBfS0VZX0lHTk9SRTtcbiAgICB2YXIgZGVmaW5lID0gKG9iamVjdCwga2V5LCB2YWx1ZSkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwga2V5LCB7IHZhbHVlIH0pO1xuICAgIHZhciBSRUdFWF9SRUdFWFBfUkFOR0UgPSAvKFswLXpdKS0oWzAtel0pL2c7XG4gICAgdmFyIFJFVFVSTl9GQUxTRSA9ICgpID0+IGZhbHNlO1xuICAgIHZhciBzYW5pdGl6ZVJhbmdlID0gKHJhbmdlKSA9PiByYW5nZS5yZXBsYWNlKFxuICAgICAgUkVHRVhfUkVHRVhQX1JBTkdFLFxuICAgICAgKG1hdGNoLCBmcm9tLCB0bykgPT4gZnJvbS5jaGFyQ29kZUF0KDApIDw9IHRvLmNoYXJDb2RlQXQoMCkgPyBtYXRjaCA6IEVNUFRZXG4gICAgKTtcbiAgICB2YXIgY2xlYW5SYW5nZUJhY2tTbGFzaCA9IChzbGFzaGVzKSA9PiB7XG4gICAgICBjb25zdCB7IGxlbmd0aCB9ID0gc2xhc2hlcztcbiAgICAgIHJldHVybiBzbGFzaGVzLnNsaWNlKDAsIGxlbmd0aCAtIGxlbmd0aCAlIDIpO1xuICAgIH07XG4gICAgdmFyIFJFUExBQ0VSUyA9IFtcbiAgICAgIC8vID4gVHJhaWxpbmcgc3BhY2VzIGFyZSBpZ25vcmVkIHVubGVzcyB0aGV5IGFyZSBxdW90ZWQgd2l0aCBiYWNrc2xhc2ggKFwiXFxcIilcbiAgICAgIFtcbiAgICAgICAgLy8gKGFcXCApIC0+IChhIClcbiAgICAgICAgLy8gKGEgICkgLT4gKGEpXG4gICAgICAgIC8vIChhIFxcICkgLT4gKGEgIClcbiAgICAgICAgL1xcXFw/XFxzKyQvLFxuICAgICAgICAobWF0Y2gpID0+IG1hdGNoLmluZGV4T2YoXCJcXFxcXCIpID09PSAwID8gU1BBQ0UgOiBFTVBUWVxuICAgICAgXSxcbiAgICAgIC8vIHJlcGxhY2UgKFxcICkgd2l0aCAnICdcbiAgICAgIFtcbiAgICAgICAgL1xcXFxcXHMvZyxcbiAgICAgICAgKCkgPT4gU1BBQ0VcbiAgICAgIF0sXG4gICAgICAvLyBFc2NhcGUgbWV0YWNoYXJhY3RlcnNcbiAgICAgIC8vIHdoaWNoIGlzIHdyaXR0ZW4gZG93biBieSB1c2VycyBidXQgbWVhbnMgc3BlY2lhbCBmb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAgIC8vID4gVGhlcmUgYXJlIDEyIGNoYXJhY3RlcnMgd2l0aCBzcGVjaWFsIG1lYW5pbmdzOlxuICAgICAgLy8gPiAtIHRoZSBiYWNrc2xhc2ggXFwsXG4gICAgICAvLyA+IC0gdGhlIGNhcmV0IF4sXG4gICAgICAvLyA+IC0gdGhlIGRvbGxhciBzaWduICQsXG4gICAgICAvLyA+IC0gdGhlIHBlcmlvZCBvciBkb3QgLixcbiAgICAgIC8vID4gLSB0aGUgdmVydGljYWwgYmFyIG9yIHBpcGUgc3ltYm9sIHwsXG4gICAgICAvLyA+IC0gdGhlIHF1ZXN0aW9uIG1hcmsgPyxcbiAgICAgIC8vID4gLSB0aGUgYXN0ZXJpc2sgb3Igc3RhciAqLFxuICAgICAgLy8gPiAtIHRoZSBwbHVzIHNpZ24gKyxcbiAgICAgIC8vID4gLSB0aGUgb3BlbmluZyBwYXJlbnRoZXNpcyAoLFxuICAgICAgLy8gPiAtIHRoZSBjbG9zaW5nIHBhcmVudGhlc2lzICksXG4gICAgICAvLyA+IC0gYW5kIHRoZSBvcGVuaW5nIHNxdWFyZSBicmFja2V0IFssXG4gICAgICAvLyA+IC0gdGhlIG9wZW5pbmcgY3VybHkgYnJhY2UgeyxcbiAgICAgIC8vID4gVGhlc2Ugc3BlY2lhbCBjaGFyYWN0ZXJzIGFyZSBvZnRlbiBjYWxsZWQgXCJtZXRhY2hhcmFjdGVyc1wiLlxuICAgICAgW1xuICAgICAgICAvW1xcXFwkLnwqKygpe15dL2csXG4gICAgICAgIChtYXRjaCkgPT4gYFxcXFwke21hdGNofWBcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIC8vID4gYSBxdWVzdGlvbiBtYXJrICg/KSBtYXRjaGVzIGEgc2luZ2xlIGNoYXJhY3RlclxuICAgICAgICAvKD8hXFxcXClcXD8vZyxcbiAgICAgICAgKCkgPT4gXCJbXi9dXCJcbiAgICAgIF0sXG4gICAgICAvLyBsZWFkaW5nIHNsYXNoXG4gICAgICBbXG4gICAgICAgIC8vID4gQSBsZWFkaW5nIHNsYXNoIG1hdGNoZXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGF0aG5hbWUuXG4gICAgICAgIC8vID4gRm9yIGV4YW1wbGUsIFwiLyouY1wiIG1hdGNoZXMgXCJjYXQtZmlsZS5jXCIgYnV0IG5vdCBcIm1vemlsbGEtc2hhMS9zaGExLmNcIi5cbiAgICAgICAgLy8gQSBsZWFkaW5nIHNsYXNoIG1hdGNoZXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGF0aG5hbWVcbiAgICAgICAgL15cXC8vLFxuICAgICAgICAoKSA9PiBcIl5cIlxuICAgICAgXSxcbiAgICAgIC8vIHJlcGxhY2Ugc3BlY2lhbCBtZXRhY2hhcmFjdGVyIHNsYXNoIGFmdGVyIHRoZSBsZWFkaW5nIHNsYXNoXG4gICAgICBbXG4gICAgICAgIC9cXC8vZyxcbiAgICAgICAgKCkgPT4gXCJcXFxcL1wiXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAvLyA+IEEgbGVhZGluZyBcIioqXCIgZm9sbG93ZWQgYnkgYSBzbGFzaCBtZWFucyBtYXRjaCBpbiBhbGwgZGlyZWN0b3JpZXMuXG4gICAgICAgIC8vID4gRm9yIGV4YW1wbGUsIFwiKiovZm9vXCIgbWF0Y2hlcyBmaWxlIG9yIGRpcmVjdG9yeSBcImZvb1wiIGFueXdoZXJlLFxuICAgICAgICAvLyA+IHRoZSBzYW1lIGFzIHBhdHRlcm4gXCJmb29cIi5cbiAgICAgICAgLy8gPiBcIioqL2Zvby9iYXJcIiBtYXRjaGVzIGZpbGUgb3IgZGlyZWN0b3J5IFwiYmFyXCIgYW55d2hlcmUgdGhhdCBpcyBkaXJlY3RseVxuICAgICAgICAvLyA+ICAgdW5kZXIgZGlyZWN0b3J5IFwiZm9vXCIuXG4gICAgICAgIC8vIE5vdGljZSB0aGF0IHRoZSAnKidzIGhhdmUgYmVlbiByZXBsYWNlZCBhcyAnXFxcXConXG4gICAgICAgIC9eXFxeKlxcXFxcXCpcXFxcXFwqXFxcXFxcLy8sXG4gICAgICAgIC8vICcqKi9mb28nIDwtPiAnZm9vJ1xuICAgICAgICAoKSA9PiBcIl4oPzouKlxcXFwvKT9cIlxuICAgICAgXSxcbiAgICAgIC8vIHN0YXJ0aW5nXG4gICAgICBbXG4gICAgICAgIC8vIHRoZXJlIHdpbGwgYmUgbm8gbGVhZGluZyAnLydcbiAgICAgICAgLy8gICAod2hpY2ggaGFzIGJlZW4gcmVwbGFjZWQgYnkgc2VjdGlvbiBcImxlYWRpbmcgc2xhc2hcIilcbiAgICAgICAgLy8gSWYgc3RhcnRzIHdpdGggJyoqJywgYWRkaW5nIGEgJ14nIHRvIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYWxzbyB3b3Jrc1xuICAgICAgICAvXig/PVteXl0pLyxcbiAgICAgICAgZnVuY3Rpb24gc3RhcnRpbmdSZXBsYWNlcigpIHtcbiAgICAgICAgICByZXR1cm4gIS9cXC8oPyEkKS8udGVzdCh0aGlzKSA/IFwiKD86XnxcXFxcLylcIiA6IFwiXlwiO1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgLy8gdHdvIGdsb2JzdGFyc1xuICAgICAgW1xuICAgICAgICAvLyBVc2UgbG9va2FoZWFkIGFzc2VydGlvbnMgc28gdGhhdCB3ZSBjb3VsZCBtYXRjaCBtb3JlIHRoYW4gb25lIGAnLyoqJ2BcbiAgICAgICAgL1xcXFxcXC9cXFxcXFwqXFxcXFxcKig/PVxcXFxcXC98JCkvZyxcbiAgICAgICAgLy8gWmVybywgb25lIG9yIHNldmVyYWwgZGlyZWN0b3JpZXNcbiAgICAgICAgLy8gc2hvdWxkIG5vdCB1c2UgJyonLCBvciBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBuZXh0IHJlcGxhY2VyXG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGlzIG5vdCB0aGUgbGFzdCBgJy8qKidgXG4gICAgICAgIChfLCBpbmRleCwgc3RyKSA9PiBpbmRleCArIDYgPCBzdHIubGVuZ3RoID8gXCIoPzpcXFxcL1teXFxcXC9dKykqXCIgOiBcIlxcXFwvLitcIlxuICAgICAgXSxcbiAgICAgIC8vIG5vcm1hbCBpbnRlcm1lZGlhdGUgd2lsZGNhcmRzXG4gICAgICBbXG4gICAgICAgIC8vIE5ldmVyIHJlcGxhY2UgZXNjYXBlZCAnKidcbiAgICAgICAgLy8gaWdub3JlIHJ1bGUgJ1xcKicgd2lsbCBtYXRjaCB0aGUgcGF0aCAnKidcbiAgICAgICAgLy8gJ2FiYy4qLycgLT4gZ29cbiAgICAgICAgLy8gJ2FiYy4qJyAgLT4gc2tpcCB0aGlzIHJ1bGUsXG4gICAgICAgIC8vICAgIGNveiB0cmFpbGluZyBzaW5nbGUgd2lsZGNhcmQgd2lsbCBiZSBoYW5kZWQgYnkgW3RyYWlsaW5nIHdpbGRjYXJkXVxuICAgICAgICAvKF58W15cXFxcXSspKFxcXFxcXCopKyg/PS4rKS9nLFxuICAgICAgICAvLyAnKi5qcycgbWF0Y2hlcyAnLmpzJ1xuICAgICAgICAvLyAnKi5qcycgZG9lc24ndCBtYXRjaCAnYWJjJ1xuICAgICAgICAoXywgcDEsIHAyKSA9PiB7XG4gICAgICAgICAgY29uc3QgdW5lc2NhcGVkID0gcDIucmVwbGFjZSgvXFxcXFxcKi9nLCBcIlteXFxcXC9dKlwiKTtcbiAgICAgICAgICByZXR1cm4gcDEgKyB1bmVzY2FwZWQ7XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIC8vIHVuZXNjYXBlLCByZXZlcnQgc3RlcCAzIGV4Y2VwdCBmb3IgYmFjayBzbGFzaFxuICAgICAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYSB1c2VyIGVzY2FwZSBhICdcXFxcKicsXG4gICAgICAgIC8vIGFmdGVyIHN0ZXAgMywgdGhlIHJlc3VsdCB3aWxsIGJlICdcXFxcXFxcXFxcXFwqJ1xuICAgICAgICAvXFxcXFxcXFxcXFxcKD89WyQufCorKCl7Xl0pL2csXG4gICAgICAgICgpID0+IEVTQ0FQRVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgLy8gJ1xcXFxcXFxcJyAtPiAnXFxcXCdcbiAgICAgICAgL1xcXFxcXFxcL2csXG4gICAgICAgICgpID0+IEVTQ0FQRVxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgLy8gPiBUaGUgcmFuZ2Ugbm90YXRpb24sIGUuZy4gW2EtekEtWl0sXG4gICAgICAgIC8vID4gY2FuIGJlIHVzZWQgdG8gbWF0Y2ggb25lIG9mIHRoZSBjaGFyYWN0ZXJzIGluIGEgcmFuZ2UuXG4gICAgICAgIC8vIGBcXGAgaXMgZXNjYXBlZCBieSBzdGVwIDNcbiAgICAgICAgLyhcXFxcKT9cXFsoW15cXF0vXSo/KShcXFxcKikoJHxcXF0pL2csXG4gICAgICAgIChtYXRjaCwgbGVhZEVzY2FwZSwgcmFuZ2UsIGVuZEVzY2FwZSwgY2xvc2UpID0+IGxlYWRFc2NhcGUgPT09IEVTQ0FQRSA/IGBcXFxcWyR7cmFuZ2V9JHtjbGVhblJhbmdlQmFja1NsYXNoKGVuZEVzY2FwZSl9JHtjbG9zZX1gIDogY2xvc2UgPT09IFwiXVwiID8gZW5kRXNjYXBlLmxlbmd0aCAlIDIgPT09IDAgPyBgWyR7c2FuaXRpemVSYW5nZShyYW5nZSl9JHtlbmRFc2NhcGV9XWAgOiBcIltdXCIgOiBcIltdXCJcbiAgICAgIF0sXG4gICAgICAvLyBlbmRpbmdcbiAgICAgIFtcbiAgICAgICAgLy8gJ2pzJyB3aWxsIG5vdCBtYXRjaCAnanMuJ1xuICAgICAgICAvLyAnYWInIHdpbGwgbm90IG1hdGNoICdhYmMnXG4gICAgICAgIC8oPzpbXipdKSQvLFxuICAgICAgICAvLyBXVEYhXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0LXNjbS5jb20vZG9jcy9naXRpZ25vcmVcbiAgICAgICAgLy8gY2hhbmdlcyBpbiBbMi4yMi4xXShodHRwczovL2dpdC1zY20uY29tL2RvY3MvZ2l0aWdub3JlLzIuMjIuMSlcbiAgICAgICAgLy8gd2hpY2ggcmUtZml4ZXMgIzI0LCAjMzhcbiAgICAgICAgLy8gPiBJZiB0aGVyZSBpcyBhIHNlcGFyYXRvciBhdCB0aGUgZW5kIG9mIHRoZSBwYXR0ZXJuIHRoZW4gdGhlIHBhdHRlcm5cbiAgICAgICAgLy8gPiB3aWxsIG9ubHkgbWF0Y2ggZGlyZWN0b3JpZXMsIG90aGVyd2lzZSB0aGUgcGF0dGVybiBjYW4gbWF0Y2ggYm90aFxuICAgICAgICAvLyA+IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy5cbiAgICAgICAgLy8gJ2pzKicgd2lsbCBub3QgbWF0Y2ggJ2EuanMnXG4gICAgICAgIC8vICdqcy8nIHdpbGwgbm90IG1hdGNoICdhLmpzJ1xuICAgICAgICAvLyAnanMnIHdpbGwgbWF0Y2ggJ2EuanMnIGFuZCAnYS5qcy8nXG4gICAgICAgIChtYXRjaCkgPT4gL1xcLyQvLnRlc3QobWF0Y2gpID8gYCR7bWF0Y2h9JGAgOiBgJHttYXRjaH0oPz0kfFxcXFwvJClgXG4gICAgICBdLFxuICAgICAgLy8gdHJhaWxpbmcgd2lsZGNhcmRcbiAgICAgIFtcbiAgICAgICAgLyhcXF58XFxcXFxcLyk/XFxcXFxcKiQvLFxuICAgICAgICAoXywgcDEpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmVmaXggPSBwMSA/IGAke3AxfVteL10rYCA6IFwiW14vXSpcIjtcbiAgICAgICAgICByZXR1cm4gYCR7cHJlZml4fSg/PSR8XFxcXC8kKWA7XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICBdO1xuICAgIHZhciByZWdleENhY2hlID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdmFyIG1ha2VSZWdleCA9IChwYXR0ZXJuLCBpZ25vcmVDYXNlKSA9PiB7XG4gICAgICBsZXQgc291cmNlID0gcmVnZXhDYWNoZVtwYXR0ZXJuXTtcbiAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgIHNvdXJjZSA9IFJFUExBQ0VSUy5yZWR1Y2UoXG4gICAgICAgICAgKHByZXYsIGN1cnJlbnQpID0+IHByZXYucmVwbGFjZShjdXJyZW50WzBdLCBjdXJyZW50WzFdLmJpbmQocGF0dGVybikpLFxuICAgICAgICAgIHBhdHRlcm5cbiAgICAgICAgKTtcbiAgICAgICAgcmVnZXhDYWNoZVtwYXR0ZXJuXSA9IHNvdXJjZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpZ25vcmVDYXNlID8gbmV3IFJlZ0V4cChzb3VyY2UsIFwiaVwiKSA6IG5ldyBSZWdFeHAoc291cmNlKTtcbiAgICB9O1xuICAgIHZhciBpc1N0cmluZyA9IChzdWJqZWN0KSA9PiB0eXBlb2Ygc3ViamVjdCA9PT0gXCJzdHJpbmdcIjtcbiAgICB2YXIgY2hlY2tQYXR0ZXJuID0gKHBhdHRlcm4pID0+IHBhdHRlcm4gJiYgaXNTdHJpbmcocGF0dGVybikgJiYgIVJFR0VYX1RFU1RfQkxBTktfTElORS50ZXN0KHBhdHRlcm4pICYmICFSRUdFWF9JTlZBTElEX1RSQUlMSU5HX0JBQ0tTTEFTSC50ZXN0KHBhdHRlcm4pICYmIHBhdHRlcm4uaW5kZXhPZihcIiNcIikgIT09IDA7XG4gICAgdmFyIHNwbGl0UGF0dGVybiA9IChwYXR0ZXJuKSA9PiBwYXR0ZXJuLnNwbGl0KFJFR0VYX1NQTElUQUxMX0NSTEYpO1xuICAgIHZhciBJZ25vcmVSdWxlID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3Iob3JpZ2luLCBwYXR0ZXJuLCBuZWdhdGl2ZSwgcmVnZXgpIHtcbiAgICAgICAgdGhpcy5vcmlnaW4gPSBvcmlnaW47XG4gICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XG4gICAgICAgIHRoaXMubmVnYXRpdmUgPSBuZWdhdGl2ZTtcbiAgICAgICAgdGhpcy5yZWdleCA9IHJlZ2V4O1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGNyZWF0ZVJ1bGUgPSAocGF0dGVybiwgaWdub3JlQ2FzZSkgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luID0gcGF0dGVybjtcbiAgICAgIGxldCBuZWdhdGl2ZSA9IGZhbHNlO1xuICAgICAgaWYgKHBhdHRlcm4uaW5kZXhPZihcIiFcIikgPT09IDApIHtcbiAgICAgICAgbmVnYXRpdmUgPSB0cnVlO1xuICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5zdWJzdHIoMSk7XG4gICAgICB9XG4gICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKFJFR0VYX1JFUExBQ0VfTEVBRElOR19FWENBUEVEX0VYQ0xBTUFUSU9OLCBcIiFcIikucmVwbGFjZShSRUdFWF9SRVBMQUNFX0xFQURJTkdfRVhDQVBFRF9IQVNILCBcIiNcIik7XG4gICAgICBjb25zdCByZWdleCA9IG1ha2VSZWdleChwYXR0ZXJuLCBpZ25vcmVDYXNlKTtcbiAgICAgIHJldHVybiBuZXcgSWdub3JlUnVsZShcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBwYXR0ZXJuLFxuICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgcmVnZXhcbiAgICAgICk7XG4gICAgfTtcbiAgICB2YXIgdGhyb3dFcnJvciA9IChtZXNzYWdlLCBDdG9yKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgQ3RvcihtZXNzYWdlKTtcbiAgICB9O1xuICAgIHZhciBjaGVja1BhdGggPSAocGF0aDksIG9yaWdpbmFsUGF0aCwgZG9UaHJvdykgPT4ge1xuICAgICAgaWYgKCFpc1N0cmluZyhwYXRoOSkpIHtcbiAgICAgICAgcmV0dXJuIGRvVGhyb3coXG4gICAgICAgICAgYHBhdGggbXVzdCBiZSBhIHN0cmluZywgYnV0IGdvdCBcXGAke29yaWdpbmFsUGF0aH1cXGBgLFxuICAgICAgICAgIFR5cGVFcnJvclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFwYXRoOSkge1xuICAgICAgICByZXR1cm4gZG9UaHJvdyhgcGF0aCBtdXN0IG5vdCBiZSBlbXB0eWAsIFR5cGVFcnJvcik7XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tQYXRoLmlzTm90UmVsYXRpdmUocGF0aDkpKSB7XG4gICAgICAgIGNvbnN0IHIgPSBcImBwYXRoLnJlbGF0aXZlKClgZFwiO1xuICAgICAgICByZXR1cm4gZG9UaHJvdyhcbiAgICAgICAgICBgcGF0aCBzaG91bGQgYmUgYSAke3J9IHN0cmluZywgYnV0IGdvdCBcIiR7b3JpZ2luYWxQYXRofVwiYCxcbiAgICAgICAgICBSYW5nZUVycm9yXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIHZhciBpc05vdFJlbGF0aXZlID0gKHBhdGg5KSA9PiBSRUdFWF9URVNUX0lOVkFMSURfUEFUSC50ZXN0KHBhdGg5KTtcbiAgICBjaGVja1BhdGguaXNOb3RSZWxhdGl2ZSA9IGlzTm90UmVsYXRpdmU7XG4gICAgY2hlY2tQYXRoLmNvbnZlcnQgPSAocCkgPT4gcDtcbiAgICB2YXIgSWdub3JlID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3Ioe1xuICAgICAgICBpZ25vcmVjYXNlID0gdHJ1ZSxcbiAgICAgICAgaWdub3JlQ2FzZSA9IGlnbm9yZWNhc2UsXG4gICAgICAgIGFsbG93UmVsYXRpdmVQYXRocyA9IGZhbHNlXG4gICAgICB9ID0ge30pIHtcbiAgICAgICAgZGVmaW5lKHRoaXMsIEtFWV9JR05PUkUsIHRydWUpO1xuICAgICAgICB0aGlzLl9ydWxlcyA9IFtdO1xuICAgICAgICB0aGlzLl9pZ25vcmVDYXNlID0gaWdub3JlQ2FzZTtcbiAgICAgICAgdGhpcy5fYWxsb3dSZWxhdGl2ZVBhdGhzID0gYWxsb3dSZWxhdGl2ZVBhdGhzO1xuICAgICAgICB0aGlzLl9pbml0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICAgIF9pbml0Q2FjaGUoKSB7XG4gICAgICAgIHRoaXMuX2lnbm9yZUNhY2hlID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIHRoaXMuX3Rlc3RDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgX2FkZFBhdHRlcm4ocGF0dGVybikge1xuICAgICAgICBpZiAocGF0dGVybiAmJiBwYXR0ZXJuW0tFWV9JR05PUkVdKSB7XG4gICAgICAgICAgdGhpcy5fcnVsZXMgPSB0aGlzLl9ydWxlcy5jb25jYXQocGF0dGVybi5fcnVsZXMpO1xuICAgICAgICAgIHRoaXMuX2FkZGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoZWNrUGF0dGVybihwYXR0ZXJuKSkge1xuICAgICAgICAgIGNvbnN0IHJ1bGUgPSBjcmVhdGVSdWxlKHBhdHRlcm4sIHRoaXMuX2lnbm9yZUNhc2UpO1xuICAgICAgICAgIHRoaXMuX2FkZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9ydWxlcy5wdXNoKHJ1bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCBzdHJpbmcgfCBJZ25vcmV9IHBhdHRlcm5cbiAgICAgIGFkZChwYXR0ZXJuKSB7XG4gICAgICAgIHRoaXMuX2FkZGVkID0gZmFsc2U7XG4gICAgICAgIG1ha2VBcnJheShcbiAgICAgICAgICBpc1N0cmluZyhwYXR0ZXJuKSA/IHNwbGl0UGF0dGVybihwYXR0ZXJuKSA6IHBhdHRlcm5cbiAgICAgICAgKS5mb3JFYWNoKHRoaXMuX2FkZFBhdHRlcm4sIHRoaXMpO1xuICAgICAgICBpZiAodGhpcy5fYWRkZWQpIHtcbiAgICAgICAgICB0aGlzLl9pbml0Q2FjaGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cbiAgICAgIC8vIGxlZ2FjeVxuICAgICAgYWRkUGF0dGVybihwYXR0ZXJuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkZChwYXR0ZXJuKTtcbiAgICAgIH1cbiAgICAgIC8vICAgICAgICAgIHwgICAgICAgICAgIGlnbm9yZWQgOiB1bmlnbm9yZWRcbiAgICAgIC8vIG5lZ2F0aXZlIHwgICAwOjAgICB8ICAgMDoxICAgfCAgIDE6MCAgIHwgICAxOjFcbiAgICAgIC8vIC0tLS0tLS0tIHwgLS0tLS0tLSB8IC0tLS0tLS0gfCAtLS0tLS0tIHwgLS0tLS0tLS1cbiAgICAgIC8vICAgICAwICAgIHwgIFRFU1QgICB8ICBURVNUICAgfCAgU0tJUCAgIHwgICAgWFxuICAgICAgLy8gICAgIDEgICAgfCAgVEVTVElGIHwgIFNLSVAgICB8ICBURVNUICAgfCAgICBYXG4gICAgICAvLyAtIFNLSVA6IGFsd2F5cyBza2lwXG4gICAgICAvLyAtIFRFU1Q6IGFsd2F5cyB0ZXN0XG4gICAgICAvLyAtIFRFU1RJRjogb25seSB0ZXN0IGlmIGNoZWNrVW5pZ25vcmVkXG4gICAgICAvLyAtIFg6IHRoYXQgbmV2ZXIgaGFwcGVuXG4gICAgICAvLyBAcGFyYW0ge2Jvb2xlYW59IHdoZXRoZXIgc2hvdWxkIGNoZWNrIGlmIHRoZSBwYXRoIGlzIHVuaWdub3JlZCxcbiAgICAgIC8vICAgc2V0dGluZyBgY2hlY2tVbmlnbm9yZWRgIHRvIGBmYWxzZWAgY291bGQgcmVkdWNlIGFkZGl0aW9uYWxcbiAgICAgIC8vICAgcGF0aCBtYXRjaGluZy5cbiAgICAgIC8vIEByZXR1cm5zIHtUZXN0UmVzdWx0fSB0cnVlIGlmIGEgZmlsZSBpcyBpZ25vcmVkXG4gICAgICBfdGVzdE9uZShwYXRoOSwgY2hlY2tVbmlnbm9yZWQpIHtcbiAgICAgICAgbGV0IGlnbm9yZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IHVuaWdub3JlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9ydWxlcy5mb3JFYWNoKChydWxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBuZWdhdGl2ZSB9ID0gcnVsZTtcbiAgICAgICAgICBpZiAodW5pZ25vcmVkID09PSBuZWdhdGl2ZSAmJiBpZ25vcmVkICE9PSB1bmlnbm9yZWQgfHwgbmVnYXRpdmUgJiYgIWlnbm9yZWQgJiYgIXVuaWdub3JlZCAmJiAhY2hlY2tVbmlnbm9yZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHJ1bGUucmVnZXgudGVzdChwYXRoOSk7XG4gICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgIGlnbm9yZWQgPSAhbmVnYXRpdmU7XG4gICAgICAgICAgICB1bmlnbm9yZWQgPSBuZWdhdGl2ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlnbm9yZWQsXG4gICAgICAgICAgdW5pZ25vcmVkXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBAcmV0dXJucyB7VGVzdFJlc3VsdH1cbiAgICAgIF90ZXN0KG9yaWdpbmFsUGF0aCwgY2FjaGUsIGNoZWNrVW5pZ25vcmVkLCBzbGljZXMpIHtcbiAgICAgICAgY29uc3QgcGF0aDkgPSBvcmlnaW5hbFBhdGggJiYgY2hlY2tQYXRoLmNvbnZlcnQob3JpZ2luYWxQYXRoKTtcbiAgICAgICAgY2hlY2tQYXRoKFxuICAgICAgICAgIHBhdGg5LFxuICAgICAgICAgIG9yaWdpbmFsUGF0aCxcbiAgICAgICAgICB0aGlzLl9hbGxvd1JlbGF0aXZlUGF0aHMgPyBSRVRVUk5fRkFMU0UgOiB0aHJvd0Vycm9yXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLl90KHBhdGg5LCBjYWNoZSwgY2hlY2tVbmlnbm9yZWQsIHNsaWNlcyk7XG4gICAgICB9XG4gICAgICBfdChwYXRoOSwgY2FjaGUsIGNoZWNrVW5pZ25vcmVkLCBzbGljZXMpIHtcbiAgICAgICAgaWYgKHBhdGg5IGluIGNhY2hlKSB7XG4gICAgICAgICAgcmV0dXJuIGNhY2hlW3BhdGg5XTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNsaWNlcykge1xuICAgICAgICAgIHNsaWNlcyA9IHBhdGg5LnNwbGl0KFNMQVNIKTtcbiAgICAgICAgfVxuICAgICAgICBzbGljZXMucG9wKCk7XG4gICAgICAgIGlmICghc2xpY2VzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjYWNoZVtwYXRoOV0gPSB0aGlzLl90ZXN0T25lKHBhdGg5LCBjaGVja1VuaWdub3JlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5fdChcbiAgICAgICAgICBzbGljZXMuam9pbihTTEFTSCkgKyBTTEFTSCxcbiAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICBjaGVja1VuaWdub3JlZCxcbiAgICAgICAgICBzbGljZXNcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNhY2hlW3BhdGg5XSA9IHBhcmVudC5pZ25vcmVkID8gcGFyZW50IDogdGhpcy5fdGVzdE9uZShwYXRoOSwgY2hlY2tVbmlnbm9yZWQpO1xuICAgICAgfVxuICAgICAgaWdub3JlcyhwYXRoOSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVzdChwYXRoOSwgdGhpcy5faWdub3JlQ2FjaGUsIGZhbHNlKS5pZ25vcmVkO1xuICAgICAgfVxuICAgICAgY3JlYXRlRmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gKHBhdGg5KSA9PiAhdGhpcy5pZ25vcmVzKHBhdGg5KTtcbiAgICAgIH1cbiAgICAgIGZpbHRlcihwYXRocykge1xuICAgICAgICByZXR1cm4gbWFrZUFycmF5KHBhdGhzKS5maWx0ZXIodGhpcy5jcmVhdGVGaWx0ZXIoKSk7XG4gICAgICB9XG4gICAgICAvLyBAcmV0dXJucyB7VGVzdFJlc3VsdH1cbiAgICAgIHRlc3QocGF0aDkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rlc3QocGF0aDksIHRoaXMuX3Rlc3RDYWNoZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgZmFjdG9yeSA9IChvcHRpb25zOCkgPT4gbmV3IElnbm9yZShvcHRpb25zOCk7XG4gICAgdmFyIGlzUGF0aFZhbGlkID0gKHBhdGg5KSA9PiBjaGVja1BhdGgocGF0aDkgJiYgY2hlY2tQYXRoLmNvbnZlcnQocGF0aDkpLCBwYXRoOSwgUkVUVVJOX0ZBTFNFKTtcbiAgICBmYWN0b3J5LmlzUGF0aFZhbGlkID0gaXNQYXRoVmFsaWQ7XG4gICAgZmFjdG9yeS5kZWZhdWx0ID0gZmFjdG9yeTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3Rvcnk7XG4gICAgaWYgKFxuICAgICAgLy8gRGV0ZWN0IGBwcm9jZXNzYCBzbyB0aGF0IGl0IGNhbiBydW4gaW4gYnJvd3NlcnMuXG4gICAgICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiAocHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuSUdOT1JFX1RFU1RfV0lOMzIgfHwgcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiKVxuICAgICkge1xuICAgICAgY29uc3QgbWFrZVBvc2l4ID0gKHN0cikgPT4gL15cXFxcXFxcXFxcP1xcXFwvLnRlc3Qoc3RyKSB8fCAvW1wiPD58XFx1MDAwMC1cXHUwMDFGXSsvdS50ZXN0KHN0cikgPyBzdHIgOiBzdHIucmVwbGFjZSgvXFxcXC9nLCBcIi9cIik7XG4gICAgICBjaGVja1BhdGguY29udmVydCA9IG1ha2VQb3NpeDtcbiAgICAgIGNvbnN0IFJFR0lYX0lTX1dJTkRPV1NfUEFUSF9BQlNPTFVURSA9IC9eW2Etel06XFwvL2k7XG4gICAgICBjaGVja1BhdGguaXNOb3RSZWxhdGl2ZSA9IChwYXRoOSkgPT4gUkVHSVhfSVNfV0lORE9XU19QQVRIX0FCU09MVVRFLnRlc3QocGF0aDkpIHx8IGlzTm90UmVsYXRpdmUocGF0aDkpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIHNyYy9pbmRleC5qc1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBfX2RlYnVnOiAoKSA9PiBkZWJ1Z0FwaXMsXG4gIF9faW50ZXJuYWw6ICgpID0+IHNoYXJlZFdpdGhDbGksXG4gIGNoZWNrOiAoKSA9PiBjaGVjayxcbiAgY2xlYXJDb25maWdDYWNoZTogKCkgPT4gY2xlYXJDYWNoZTMsXG4gIGRvYzogKCkgPT4gZG9jLFxuICBmb3JtYXQ6ICgpID0+IGZvcm1hdDIsXG4gIGZvcm1hdFdpdGhDdXJzb3I6ICgpID0+IGZvcm1hdFdpdGhDdXJzb3IyLFxuICBnZXRGaWxlSW5mbzogKCkgPT4gZ2V0RmlsZUluZm8yLFxuICBnZXRTdXBwb3J0SW5mbzogKCkgPT4gZ2V0U3VwcG9ydEluZm8yLFxuICByZXNvbHZlQ29uZmlnOiAoKSA9PiByZXNvbHZlQ29uZmlnLFxuICByZXNvbHZlQ29uZmlnRmlsZTogKCkgPT4gcmVzb2x2ZUNvbmZpZ0ZpbGUsXG4gIHV0aWw6ICgpID0+IHB1YmxpY19leHBvcnRzLFxuICB2ZXJzaW9uOiAoKSA9PiB2ZXJzaW9uX2V2YWx1YXRlX2RlZmF1bHRcbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvdm5vcHRzL2xpYi9kZXNjcmlwdG9ycy9hcGkuanNcbnZhciBhcGlEZXNjcmlwdG9yID0ge1xuICBrZXk6IChrZXkpID0+IC9eWyRfYS16QS1aXVskX2EtekEtWjAtOV0qJC8udGVzdChrZXkpID8ga2V5IDogSlNPTi5zdHJpbmdpZnkoa2V5KSxcbiAgdmFsdWUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBgWyR7dmFsdWUubWFwKChzdWJWYWx1ZSkgPT4gYXBpRGVzY3JpcHRvci52YWx1ZShzdWJWYWx1ZSkpLmpvaW4oXCIsIFwiKX1dYDtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKTtcbiAgICByZXR1cm4ga2V5cy5sZW5ndGggPT09IDAgPyBcInt9XCIgOiBgeyAke2tleXMubWFwKChrZXkpID0+IGAke2FwaURlc2NyaXB0b3Iua2V5KGtleSl9OiAke2FwaURlc2NyaXB0b3IudmFsdWUodmFsdWVba2V5XSl9YCkuam9pbihcIiwgXCIpfSB9YDtcbiAgfSxcbiAgcGFpcjogKHsga2V5LCB2YWx1ZSB9KSA9PiBhcGlEZXNjcmlwdG9yLnZhbHVlKHsgW2tleV06IHZhbHVlIH0pXG59O1xuXG4vLyBub2RlX21vZHVsZXMvY2hhbGsvc291cmNlL3ZlbmRvci9hbnNpLXN0eWxlcy9pbmRleC5qc1xudmFyIEFOU0lfQkFDS0dST1VORF9PRkZTRVQgPSAxMDtcbnZhciB3cmFwQW5zaTE2ID0gKG9mZnNldCA9IDApID0+IChjb2RlKSA9PiBgXFx4MUJbJHtjb2RlICsgb2Zmc2V0fW1gO1xudmFyIHdyYXBBbnNpMjU2ID0gKG9mZnNldCA9IDApID0+IChjb2RlKSA9PiBgXFx4MUJbJHszOCArIG9mZnNldH07NTske2NvZGV9bWA7XG52YXIgd3JhcEFuc2kxNm0gPSAob2Zmc2V0ID0gMCkgPT4gKHJlZCwgZ3JlZW4sIGJsdWUpID0+IGBcXHgxQlskezM4ICsgb2Zmc2V0fTsyOyR7cmVkfTske2dyZWVufTske2JsdWV9bWA7XG52YXIgc3R5bGVzID0ge1xuICBtb2RpZmllcjoge1xuICAgIHJlc2V0OiBbMCwgMF0sXG4gICAgLy8gMjEgaXNuJ3Qgd2lkZWx5IHN1cHBvcnRlZCBhbmQgMjIgZG9lcyB0aGUgc2FtZSB0aGluZ1xuICAgIGJvbGQ6IFsxLCAyMl0sXG4gICAgZGltOiBbMiwgMjJdLFxuICAgIGl0YWxpYzogWzMsIDIzXSxcbiAgICB1bmRlcmxpbmU6IFs0LCAyNF0sXG4gICAgb3ZlcmxpbmU6IFs1MywgNTVdLFxuICAgIGludmVyc2U6IFs3LCAyN10sXG4gICAgaGlkZGVuOiBbOCwgMjhdLFxuICAgIHN0cmlrZXRocm91Z2g6IFs5LCAyOV1cbiAgfSxcbiAgY29sb3I6IHtcbiAgICBibGFjazogWzMwLCAzOV0sXG4gICAgcmVkOiBbMzEsIDM5XSxcbiAgICBncmVlbjogWzMyLCAzOV0sXG4gICAgeWVsbG93OiBbMzMsIDM5XSxcbiAgICBibHVlOiBbMzQsIDM5XSxcbiAgICBtYWdlbnRhOiBbMzUsIDM5XSxcbiAgICBjeWFuOiBbMzYsIDM5XSxcbiAgICB3aGl0ZTogWzM3LCAzOV0sXG4gICAgLy8gQnJpZ2h0IGNvbG9yXG4gICAgYmxhY2tCcmlnaHQ6IFs5MCwgMzldLFxuICAgIGdyYXk6IFs5MCwgMzldLFxuICAgIC8vIEFsaWFzIG9mIGBibGFja0JyaWdodGBcbiAgICBncmV5OiBbOTAsIDM5XSxcbiAgICAvLyBBbGlhcyBvZiBgYmxhY2tCcmlnaHRgXG4gICAgcmVkQnJpZ2h0OiBbOTEsIDM5XSxcbiAgICBncmVlbkJyaWdodDogWzkyLCAzOV0sXG4gICAgeWVsbG93QnJpZ2h0OiBbOTMsIDM5XSxcbiAgICBibHVlQnJpZ2h0OiBbOTQsIDM5XSxcbiAgICBtYWdlbnRhQnJpZ2h0OiBbOTUsIDM5XSxcbiAgICBjeWFuQnJpZ2h0OiBbOTYsIDM5XSxcbiAgICB3aGl0ZUJyaWdodDogWzk3LCAzOV1cbiAgfSxcbiAgYmdDb2xvcjoge1xuICAgIGJnQmxhY2s6IFs0MCwgNDldLFxuICAgIGJnUmVkOiBbNDEsIDQ5XSxcbiAgICBiZ0dyZWVuOiBbNDIsIDQ5XSxcbiAgICBiZ1llbGxvdzogWzQzLCA0OV0sXG4gICAgYmdCbHVlOiBbNDQsIDQ5XSxcbiAgICBiZ01hZ2VudGE6IFs0NSwgNDldLFxuICAgIGJnQ3lhbjogWzQ2LCA0OV0sXG4gICAgYmdXaGl0ZTogWzQ3LCA0OV0sXG4gICAgLy8gQnJpZ2h0IGNvbG9yXG4gICAgYmdCbGFja0JyaWdodDogWzEwMCwgNDldLFxuICAgIGJnR3JheTogWzEwMCwgNDldLFxuICAgIC8vIEFsaWFzIG9mIGBiZ0JsYWNrQnJpZ2h0YFxuICAgIGJnR3JleTogWzEwMCwgNDldLFxuICAgIC8vIEFsaWFzIG9mIGBiZ0JsYWNrQnJpZ2h0YFxuICAgIGJnUmVkQnJpZ2h0OiBbMTAxLCA0OV0sXG4gICAgYmdHcmVlbkJyaWdodDogWzEwMiwgNDldLFxuICAgIGJnWWVsbG93QnJpZ2h0OiBbMTAzLCA0OV0sXG4gICAgYmdCbHVlQnJpZ2h0OiBbMTA0LCA0OV0sXG4gICAgYmdNYWdlbnRhQnJpZ2h0OiBbMTA1LCA0OV0sXG4gICAgYmdDeWFuQnJpZ2h0OiBbMTA2LCA0OV0sXG4gICAgYmdXaGl0ZUJyaWdodDogWzEwNywgNDldXG4gIH1cbn07XG52YXIgbW9kaWZpZXJOYW1lcyA9IE9iamVjdC5rZXlzKHN0eWxlcy5tb2RpZmllcik7XG52YXIgZm9yZWdyb3VuZENvbG9yTmFtZXMgPSBPYmplY3Qua2V5cyhzdHlsZXMuY29sb3IpO1xudmFyIGJhY2tncm91bmRDb2xvck5hbWVzID0gT2JqZWN0LmtleXMoc3R5bGVzLmJnQ29sb3IpO1xudmFyIGNvbG9yTmFtZXMgPSBbLi4uZm9yZWdyb3VuZENvbG9yTmFtZXMsIC4uLmJhY2tncm91bmRDb2xvck5hbWVzXTtcbmZ1bmN0aW9uIGFzc2VtYmxlU3R5bGVzKCkge1xuICBjb25zdCBjb2RlczIgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IFtncm91cE5hbWUsIGdyb3VwXSBvZiBPYmplY3QuZW50cmllcyhzdHlsZXMpKSB7XG4gICAgZm9yIChjb25zdCBbc3R5bGVOYW1lLCBzdHlsZV0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXApKSB7XG4gICAgICBzdHlsZXNbc3R5bGVOYW1lXSA9IHtcbiAgICAgICAgb3BlbjogYFxceDFCWyR7c3R5bGVbMF19bWAsXG4gICAgICAgIGNsb3NlOiBgXFx4MUJbJHtzdHlsZVsxXX1tYFxuICAgICAgfTtcbiAgICAgIGdyb3VwW3N0eWxlTmFtZV0gPSBzdHlsZXNbc3R5bGVOYW1lXTtcbiAgICAgIGNvZGVzMi5zZXQoc3R5bGVbMF0sIHN0eWxlWzFdKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0eWxlcywgZ3JvdXBOYW1lLCB7XG4gICAgICB2YWx1ZTogZ3JvdXAsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsIFwiY29kZXNcIiwge1xuICAgIHZhbHVlOiBjb2RlczIsXG4gICAgZW51bWVyYWJsZTogZmFsc2VcbiAgfSk7XG4gIHN0eWxlcy5jb2xvci5jbG9zZSA9IFwiXFx4MUJbMzltXCI7XG4gIHN0eWxlcy5iZ0NvbG9yLmNsb3NlID0gXCJcXHgxQls0OW1cIjtcbiAgc3R5bGVzLmNvbG9yLmFuc2kgPSB3cmFwQW5zaTE2KCk7XG4gIHN0eWxlcy5jb2xvci5hbnNpMjU2ID0gd3JhcEFuc2kyNTYoKTtcbiAgc3R5bGVzLmNvbG9yLmFuc2kxNm0gPSB3cmFwQW5zaTE2bSgpO1xuICBzdHlsZXMuYmdDb2xvci5hbnNpID0gd3JhcEFuc2kxNihBTlNJX0JBQ0tHUk9VTkRfT0ZGU0VUKTtcbiAgc3R5bGVzLmJnQ29sb3IuYW5zaTI1NiA9IHdyYXBBbnNpMjU2KEFOU0lfQkFDS0dST1VORF9PRkZTRVQpO1xuICBzdHlsZXMuYmdDb2xvci5hbnNpMTZtID0gd3JhcEFuc2kxNm0oQU5TSV9CQUNLR1JPVU5EX09GRlNFVCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHN0eWxlcywge1xuICAgIHJnYlRvQW5zaTI1Njoge1xuICAgICAgdmFsdWUocmVkLCBncmVlbiwgYmx1ZSkge1xuICAgICAgICBpZiAocmVkID09PSBncmVlbiAmJiBncmVlbiA9PT0gYmx1ZSkge1xuICAgICAgICAgIGlmIChyZWQgPCA4KSB7XG4gICAgICAgICAgICByZXR1cm4gMTY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZWQgPiAyNDgpIHtcbiAgICAgICAgICAgIHJldHVybiAyMzE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKChyZWQgLSA4KSAvIDI0NyAqIDI0KSArIDIzMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTYgKyAzNiAqIE1hdGgucm91bmQocmVkIC8gMjU1ICogNSkgKyA2ICogTWF0aC5yb3VuZChncmVlbiAvIDI1NSAqIDUpICsgTWF0aC5yb3VuZChibHVlIC8gMjU1ICogNSk7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9LFxuICAgIGhleFRvUmdiOiB7XG4gICAgICB2YWx1ZShoZXgpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IC9bYS1mXFxkXXs2fXxbYS1mXFxkXXszfS9pLmV4ZWMoaGV4LnRvU3RyaW5nKDE2KSk7XG4gICAgICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiBbMCwgMCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtjb2xvclN0cmluZ10gPSBtYXRjaGVzO1xuICAgICAgICBpZiAoY29sb3JTdHJpbmcubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgY29sb3JTdHJpbmcgPSBbLi4uY29sb3JTdHJpbmddLm1hcCgoY2hhcmFjdGVyKSA9PiBjaGFyYWN0ZXIgKyBjaGFyYWN0ZXIpLmpvaW4oXCJcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW50ZWdlciA9IE51bWJlci5wYXJzZUludChjb2xvclN0cmluZywgMTYpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWJpdHdpc2UgKi9cbiAgICAgICAgICBpbnRlZ2VyID4+IDE2ICYgMjU1LFxuICAgICAgICAgIGludGVnZXIgPj4gOCAmIDI1NSxcbiAgICAgICAgICBpbnRlZ2VyICYgMjU1XG4gICAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1iaXR3aXNlICovXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9LFxuICAgIGhleFRvQW5zaTI1Njoge1xuICAgICAgdmFsdWU6IChoZXgpID0+IHN0eWxlcy5yZ2JUb0Fuc2kyNTYoLi4uc3R5bGVzLmhleFRvUmdiKGhleCkpLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICB9LFxuICAgIGFuc2kyNTZUb0Fuc2k6IHtcbiAgICAgIHZhbHVlKGNvZGUpIHtcbiAgICAgICAgaWYgKGNvZGUgPCA4KSB7XG4gICAgICAgICAgcmV0dXJuIDMwICsgY29kZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29kZSA8IDE2KSB7XG4gICAgICAgICAgcmV0dXJuIDkwICsgKGNvZGUgLSA4KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVkO1xuICAgICAgICBsZXQgZ3JlZW47XG4gICAgICAgIGxldCBibHVlO1xuICAgICAgICBpZiAoY29kZSA+PSAyMzIpIHtcbiAgICAgICAgICByZWQgPSAoKGNvZGUgLSAyMzIpICogMTAgKyA4KSAvIDI1NTtcbiAgICAgICAgICBncmVlbiA9IHJlZDtcbiAgICAgICAgICBibHVlID0gcmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvZGUgLT0gMTY7XG4gICAgICAgICAgY29uc3QgcmVtYWluZGVyID0gY29kZSAlIDM2O1xuICAgICAgICAgIHJlZCA9IE1hdGguZmxvb3IoY29kZSAvIDM2KSAvIDU7XG4gICAgICAgICAgZ3JlZW4gPSBNYXRoLmZsb29yKHJlbWFpbmRlciAvIDYpIC8gNTtcbiAgICAgICAgICBibHVlID0gcmVtYWluZGVyICUgNiAvIDU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLm1heChyZWQsIGdyZWVuLCBibHVlKSAqIDI7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiAzMDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gMzAgKyAoTWF0aC5yb3VuZChibHVlKSA8PCAyIHwgTWF0aC5yb3VuZChncmVlbikgPDwgMSB8IE1hdGgucm91bmQocmVkKSk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gMikge1xuICAgICAgICAgIHJlc3VsdCArPSA2MDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICByZ2JUb0Fuc2k6IHtcbiAgICAgIHZhbHVlOiAocmVkLCBncmVlbiwgYmx1ZSkgPT4gc3R5bGVzLmFuc2kyNTZUb0Fuc2koc3R5bGVzLnJnYlRvQW5zaTI1NihyZWQsIGdyZWVuLCBibHVlKSksXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgIH0sXG4gICAgaGV4VG9BbnNpOiB7XG4gICAgICB2YWx1ZTogKGhleCkgPT4gc3R5bGVzLmFuc2kyNTZUb0Fuc2koc3R5bGVzLmhleFRvQW5zaTI1NihoZXgpKSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHN0eWxlcztcbn1cbnZhciBhbnNpU3R5bGVzID0gYXNzZW1ibGVTdHlsZXMoKTtcbnZhciBhbnNpX3N0eWxlc19kZWZhdWx0ID0gYW5zaVN0eWxlcztcblxuLy8gbm9kZV9tb2R1bGVzL2NoYWxrL3NvdXJjZS92ZW5kb3Ivc3VwcG9ydHMtY29sb3IvaW5kZXguanNcbmltcG9ydCBwcm9jZXNzMiBmcm9tIFwicHJvY2Vzc1wiO1xuaW1wb3J0IG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0IHR0eSBmcm9tIFwidHR5XCI7XG5mdW5jdGlvbiBoYXNGbGFnKGZsYWcsIGFyZ3YgPSBnbG9iYWxUaGlzLkRlbm8gPyBnbG9iYWxUaGlzLkRlbm8uYXJncyA6IHByb2Nlc3MyLmFyZ3YpIHtcbiAgY29uc3QgcHJlZml4ID0gZmxhZy5zdGFydHNXaXRoKFwiLVwiKSA/IFwiXCIgOiBmbGFnLmxlbmd0aCA9PT0gMSA/IFwiLVwiIDogXCItLVwiO1xuICBjb25zdCBwb3NpdGlvbiA9IGFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcbiAgY29uc3QgdGVybWluYXRvclBvc2l0aW9uID0gYXJndi5pbmRleE9mKFwiLS1cIik7XG4gIHJldHVybiBwb3NpdGlvbiAhPT0gLTEgJiYgKHRlcm1pbmF0b3JQb3NpdGlvbiA9PT0gLTEgfHwgcG9zaXRpb24gPCB0ZXJtaW5hdG9yUG9zaXRpb24pO1xufVxudmFyIHsgZW52IH0gPSBwcm9jZXNzMjtcbnZhciBmbGFnRm9yY2VDb2xvcjtcbmlmIChoYXNGbGFnKFwibm8tY29sb3JcIikgfHwgaGFzRmxhZyhcIm5vLWNvbG9yc1wiKSB8fCBoYXNGbGFnKFwiY29sb3I9ZmFsc2VcIikgfHwgaGFzRmxhZyhcImNvbG9yPW5ldmVyXCIpKSB7XG4gIGZsYWdGb3JjZUNvbG9yID0gMDtcbn0gZWxzZSBpZiAoaGFzRmxhZyhcImNvbG9yXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcnNcIikgfHwgaGFzRmxhZyhcImNvbG9yPXRydWVcIikgfHwgaGFzRmxhZyhcImNvbG9yPWFsd2F5c1wiKSkge1xuICBmbGFnRm9yY2VDb2xvciA9IDE7XG59XG5mdW5jdGlvbiBlbnZGb3JjZUNvbG9yKCkge1xuICBpZiAoXCJGT1JDRV9DT0xPUlwiIGluIGVudikge1xuICAgIGlmIChlbnYuRk9SQ0VfQ09MT1IgPT09IFwidHJ1ZVwiKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgaWYgKGVudi5GT1JDRV9DT0xPUiA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIGVudi5GT1JDRV9DT0xPUi5sZW5ndGggPT09IDAgPyAxIDogTWF0aC5taW4oTnVtYmVyLnBhcnNlSW50KGVudi5GT1JDRV9DT0xPUiwgMTApLCAzKTtcbiAgfVxufVxuZnVuY3Rpb24gdHJhbnNsYXRlTGV2ZWwobGV2ZWwpIHtcbiAgaWYgKGxldmVsID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB7XG4gICAgbGV2ZWwsXG4gICAgaGFzQmFzaWM6IHRydWUsXG4gICAgaGFzMjU2OiBsZXZlbCA+PSAyLFxuICAgIGhhczE2bTogbGV2ZWwgPj0gM1xuICB9O1xufVxuZnVuY3Rpb24gX3N1cHBvcnRzQ29sb3IoaGF2ZVN0cmVhbSwgeyBzdHJlYW1Jc1RUWSwgc25pZmZGbGFncyA9IHRydWUgfSA9IHt9KSB7XG4gIGNvbnN0IG5vRmxhZ0ZvcmNlQ29sb3IgPSBlbnZGb3JjZUNvbG9yKCk7XG4gIGlmIChub0ZsYWdGb3JjZUNvbG9yICE9PSB2b2lkIDApIHtcbiAgICBmbGFnRm9yY2VDb2xvciA9IG5vRmxhZ0ZvcmNlQ29sb3I7XG4gIH1cbiAgY29uc3QgZm9yY2VDb2xvciA9IHNuaWZmRmxhZ3MgPyBmbGFnRm9yY2VDb2xvciA6IG5vRmxhZ0ZvcmNlQ29sb3I7XG4gIGlmIChmb3JjZUNvbG9yID09PSAwKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgaWYgKHNuaWZmRmxhZ3MpIHtcbiAgICBpZiAoaGFzRmxhZyhcImNvbG9yPTE2bVwiKSB8fCBoYXNGbGFnKFwiY29sb3I9ZnVsbFwiKSB8fCBoYXNGbGFnKFwiY29sb3I9dHJ1ZWNvbG9yXCIpKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9XG4gICAgaWYgKGhhc0ZsYWcoXCJjb2xvcj0yNTZcIikpIHtcbiAgICAgIHJldHVybiAyO1xuICAgIH1cbiAgfVxuICBpZiAoXCJURl9CVUlMRFwiIGluIGVudiAmJiBcIkFHRU5UX05BTUVcIiBpbiBlbnYpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBpZiAoaGF2ZVN0cmVhbSAmJiAhc3RyZWFtSXNUVFkgJiYgZm9yY2VDb2xvciA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY29uc3QgbWluID0gZm9yY2VDb2xvciB8fCAwO1xuICBpZiAoZW52LlRFUk0gPT09IFwiZHVtYlwiKSB7XG4gICAgcmV0dXJuIG1pbjtcbiAgfVxuICBpZiAocHJvY2VzczIucGxhdGZvcm0gPT09IFwid2luMzJcIikge1xuICAgIGNvbnN0IG9zUmVsZWFzZSA9IG9zLnJlbGVhc2UoKS5zcGxpdChcIi5cIik7XG4gICAgaWYgKE51bWJlcihvc1JlbGVhc2VbMF0pID49IDEwICYmIE51bWJlcihvc1JlbGVhc2VbMl0pID49IDEwNTg2KSB7XG4gICAgICByZXR1cm4gTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTQ5MzEgPyAzIDogMjtcbiAgICB9XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgaWYgKFwiQ0lcIiBpbiBlbnYpIHtcbiAgICBpZiAoXCJHSVRIVUJfQUNUSU9OU1wiIGluIGVudiB8fCBcIkdJVEVBX0FDVElPTlNcIiBpbiBlbnYpIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH1cbiAgICBpZiAoW1wiVFJBVklTXCIsIFwiQ0lSQ0xFQ0lcIiwgXCJBUFBWRVlPUlwiLCBcIkdJVExBQl9DSVwiLCBcIkJVSUxES0lURVwiLCBcIkRST05FXCJdLnNvbWUoKHNpZ24pID0+IHNpZ24gaW4gZW52KSB8fCBlbnYuQ0lfTkFNRSA9PT0gXCJjb2Rlc2hpcFwiKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIG1pbjtcbiAgfVxuICBpZiAoXCJURUFNQ0lUWV9WRVJTSU9OXCIgaW4gZW52KSB7XG4gICAgcmV0dXJuIC9eKDlcXC4oMCpbMS05XVxcZCopXFwufFxcZHsyLH1cXC4pLy50ZXN0KGVudi5URUFNQ0lUWV9WRVJTSU9OKSA/IDEgOiAwO1xuICB9XG4gIGlmIChlbnYuQ09MT1JURVJNID09PSBcInRydWVjb2xvclwiKSB7XG4gICAgcmV0dXJuIDM7XG4gIH1cbiAgaWYgKGVudi5URVJNID09PSBcInh0ZXJtLWtpdHR5XCIpIHtcbiAgICByZXR1cm4gMztcbiAgfVxuICBpZiAoXCJURVJNX1BST0dSQU1cIiBpbiBlbnYpIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gTnVtYmVyLnBhcnNlSW50KChlbnYuVEVSTV9QUk9HUkFNX1ZFUlNJT04gfHwgXCJcIikuc3BsaXQoXCIuXCIpWzBdLCAxMCk7XG4gICAgc3dpdGNoIChlbnYuVEVSTV9QUk9HUkFNKSB7XG4gICAgICBjYXNlIFwiaVRlcm0uYXBwXCI6IHtcbiAgICAgICAgcmV0dXJuIHZlcnNpb24gPj0gMyA/IDMgOiAyO1xuICAgICAgfVxuICAgICAgY2FzZSBcIkFwcGxlX1Rlcm1pbmFsXCI6IHtcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICgvLTI1Nihjb2xvcik/JC9pLnRlc3QoZW52LlRFUk0pKSB7XG4gICAgcmV0dXJuIDI7XG4gIH1cbiAgaWYgKC9ec2NyZWVufF54dGVybXxednQxMDB8XnZ0MjIwfF5yeHZ0fGNvbG9yfGFuc2l8Y3lnd2lufGxpbnV4L2kudGVzdChlbnYuVEVSTSkpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBpZiAoXCJDT0xPUlRFUk1cIiBpbiBlbnYpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gbWluO1xufVxuZnVuY3Rpb24gY3JlYXRlU3VwcG9ydHNDb2xvcihzdHJlYW0sIG9wdGlvbnM4ID0ge30pIHtcbiAgY29uc3QgbGV2ZWwgPSBfc3VwcG9ydHNDb2xvcihzdHJlYW0sIHtcbiAgICBzdHJlYW1Jc1RUWTogc3RyZWFtICYmIHN0cmVhbS5pc1RUWSxcbiAgICAuLi5vcHRpb25zOFxuICB9KTtcbiAgcmV0dXJuIHRyYW5zbGF0ZUxldmVsKGxldmVsKTtcbn1cbnZhciBzdXBwb3J0c0NvbG9yID0ge1xuICBzdGRvdXQ6IGNyZWF0ZVN1cHBvcnRzQ29sb3IoeyBpc1RUWTogdHR5LmlzYXR0eSgxKSB9KSxcbiAgc3RkZXJyOiBjcmVhdGVTdXBwb3J0c0NvbG9yKHsgaXNUVFk6IHR0eS5pc2F0dHkoMikgfSlcbn07XG52YXIgc3VwcG9ydHNfY29sb3JfZGVmYXVsdCA9IHN1cHBvcnRzQ29sb3I7XG5cbi8vIG5vZGVfbW9kdWxlcy9jaGFsay9zb3VyY2UvdXRpbGl0aWVzLmpzXG5mdW5jdGlvbiBzdHJpbmdSZXBsYWNlQWxsKHN0cmluZywgc3Vic3RyaW5nLCByZXBsYWNlcikge1xuICBsZXQgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihzdWJzdHJpbmcpO1xuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuICBjb25zdCBzdWJzdHJpbmdMZW5ndGggPSBzdWJzdHJpbmcubGVuZ3RoO1xuICBsZXQgZW5kSW5kZXggPSAwO1xuICBsZXQgcmV0dXJuVmFsdWUgPSBcIlwiO1xuICBkbyB7XG4gICAgcmV0dXJuVmFsdWUgKz0gc3RyaW5nLnNsaWNlKGVuZEluZGV4LCBpbmRleCkgKyBzdWJzdHJpbmcgKyByZXBsYWNlcjtcbiAgICBlbmRJbmRleCA9IGluZGV4ICsgc3Vic3RyaW5nTGVuZ3RoO1xuICAgIGluZGV4ID0gc3RyaW5nLmluZGV4T2Yoc3Vic3RyaW5nLCBlbmRJbmRleCk7XG4gIH0gd2hpbGUgKGluZGV4ICE9PSAtMSk7XG4gIHJldHVyblZhbHVlICs9IHN0cmluZy5zbGljZShlbmRJbmRleCk7XG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cbmZ1bmN0aW9uIHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleChzdHJpbmcsIHByZWZpeCwgcG9zdGZpeCwgaW5kZXgpIHtcbiAgbGV0IGVuZEluZGV4ID0gMDtcbiAgbGV0IHJldHVyblZhbHVlID0gXCJcIjtcbiAgZG8ge1xuICAgIGNvbnN0IGdvdENSID0gc3RyaW5nW2luZGV4IC0gMV0gPT09IFwiXFxyXCI7XG4gICAgcmV0dXJuVmFsdWUgKz0gc3RyaW5nLnNsaWNlKGVuZEluZGV4LCBnb3RDUiA/IGluZGV4IC0gMSA6IGluZGV4KSArIHByZWZpeCArIChnb3RDUiA/IFwiXFxyXFxuXCIgOiBcIlxcblwiKSArIHBvc3RmaXg7XG4gICAgZW5kSW5kZXggPSBpbmRleCArIDE7XG4gICAgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihcIlxcblwiLCBlbmRJbmRleCk7XG4gIH0gd2hpbGUgKGluZGV4ICE9PSAtMSk7XG4gIHJldHVyblZhbHVlICs9IHN0cmluZy5zbGljZShlbmRJbmRleCk7XG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL2NoYWxrL3NvdXJjZS9pbmRleC5qc1xudmFyIHsgc3Rkb3V0OiBzdGRvdXRDb2xvciwgc3RkZXJyOiBzdGRlcnJDb2xvciB9ID0gc3VwcG9ydHNfY29sb3JfZGVmYXVsdDtcbnZhciBHRU5FUkFUT1IgPSBTeW1ib2woXCJHRU5FUkFUT1JcIik7XG52YXIgU1RZTEVSID0gU3ltYm9sKFwiU1RZTEVSXCIpO1xudmFyIElTX0VNUFRZID0gU3ltYm9sKFwiSVNfRU1QVFlcIik7XG52YXIgbGV2ZWxNYXBwaW5nID0gW1xuICBcImFuc2lcIixcbiAgXCJhbnNpXCIsXG4gIFwiYW5zaTI1NlwiLFxuICBcImFuc2kxNm1cIlxuXTtcbnZhciBzdHlsZXMyID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG52YXIgYXBwbHlPcHRpb25zID0gKG9iamVjdCwgb3B0aW9uczggPSB7fSkgPT4ge1xuICBpZiAob3B0aW9uczgubGV2ZWwgJiYgIShOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnM4LmxldmVsKSAmJiBvcHRpb25zOC5sZXZlbCA+PSAwICYmIG9wdGlvbnM4LmxldmVsIDw9IDMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGBsZXZlbGAgb3B0aW9uIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGZyb20gMCB0byAzXCIpO1xuICB9XG4gIGNvbnN0IGNvbG9yTGV2ZWwgPSBzdGRvdXRDb2xvciA/IHN0ZG91dENvbG9yLmxldmVsIDogMDtcbiAgb2JqZWN0LmxldmVsID0gb3B0aW9uczgubGV2ZWwgPT09IHZvaWQgMCA/IGNvbG9yTGV2ZWwgOiBvcHRpb25zOC5sZXZlbDtcbn07XG52YXIgY2hhbGtGYWN0b3J5ID0gKG9wdGlvbnM4KSA9PiB7XG4gIGNvbnN0IGNoYWxrMiA9ICguLi5zdHJpbmdzKSA9PiBzdHJpbmdzLmpvaW4oXCIgXCIpO1xuICBhcHBseU9wdGlvbnMoY2hhbGsyLCBvcHRpb25zOCk7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihjaGFsazIsIGNyZWF0ZUNoYWxrLnByb3RvdHlwZSk7XG4gIHJldHVybiBjaGFsazI7XG59O1xuZnVuY3Rpb24gY3JlYXRlQ2hhbGsob3B0aW9uczgpIHtcbiAgcmV0dXJuIGNoYWxrRmFjdG9yeShvcHRpb25zOCk7XG59XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoY3JlYXRlQ2hhbGsucHJvdG90eXBlLCBGdW5jdGlvbi5wcm90b3R5cGUpO1xuZm9yIChjb25zdCBbc3R5bGVOYW1lLCBzdHlsZV0gb2YgT2JqZWN0LmVudHJpZXMoYW5zaV9zdHlsZXNfZGVmYXVsdCkpIHtcbiAgc3R5bGVzMltzdHlsZU5hbWVdID0ge1xuICAgIGdldCgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRoaXMsIGNyZWF0ZVN0eWxlcihzdHlsZS5vcGVuLCBzdHlsZS5jbG9zZSwgdGhpc1tTVFlMRVJdKSwgdGhpc1tJU19FTVBUWV0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHN0eWxlTmFtZSwgeyB2YWx1ZTogYnVpbGRlciB9KTtcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cbiAgfTtcbn1cbnN0eWxlczIudmlzaWJsZSA9IHtcbiAgZ2V0KCkge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHRoaXMsIHRoaXNbU1RZTEVSXSwgdHJ1ZSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwidmlzaWJsZVwiLCB7IHZhbHVlOiBidWlsZGVyIH0pO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG59O1xudmFyIGdldE1vZGVsQW5zaSA9IChtb2RlbCwgbGV2ZWwsIHR5cGUsIC4uLmFyZ3VtZW50c18pID0+IHtcbiAgaWYgKG1vZGVsID09PSBcInJnYlwiKSB7XG4gICAgaWYgKGxldmVsID09PSBcImFuc2kxNm1cIikge1xuICAgICAgcmV0dXJuIGFuc2lfc3R5bGVzX2RlZmF1bHRbdHlwZV0uYW5zaTE2bSguLi5hcmd1bWVudHNfKTtcbiAgICB9XG4gICAgaWYgKGxldmVsID09PSBcImFuc2kyNTZcIikge1xuICAgICAgcmV0dXJuIGFuc2lfc3R5bGVzX2RlZmF1bHRbdHlwZV0uYW5zaTI1NihhbnNpX3N0eWxlc19kZWZhdWx0LnJnYlRvQW5zaTI1NiguLi5hcmd1bWVudHNfKSk7XG4gICAgfVxuICAgIHJldHVybiBhbnNpX3N0eWxlc19kZWZhdWx0W3R5cGVdLmFuc2koYW5zaV9zdHlsZXNfZGVmYXVsdC5yZ2JUb0Fuc2koLi4uYXJndW1lbnRzXykpO1xuICB9XG4gIGlmIChtb2RlbCA9PT0gXCJoZXhcIikge1xuICAgIHJldHVybiBnZXRNb2RlbEFuc2koXCJyZ2JcIiwgbGV2ZWwsIHR5cGUsIC4uLmFuc2lfc3R5bGVzX2RlZmF1bHQuaGV4VG9SZ2IoLi4uYXJndW1lbnRzXykpO1xuICB9XG4gIHJldHVybiBhbnNpX3N0eWxlc19kZWZhdWx0W3R5cGVdW21vZGVsXSguLi5hcmd1bWVudHNfKTtcbn07XG52YXIgdXNlZE1vZGVscyA9IFtcInJnYlwiLCBcImhleFwiLCBcImFuc2kyNTZcIl07XG5mb3IgKGNvbnN0IG1vZGVsIG9mIHVzZWRNb2RlbHMpIHtcbiAgc3R5bGVzMlttb2RlbF0gPSB7XG4gICAgZ2V0KCkge1xuICAgICAgY29uc3QgeyBsZXZlbCB9ID0gdGhpcztcbiAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmd1bWVudHNfKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlciA9IGNyZWF0ZVN0eWxlcihnZXRNb2RlbEFuc2kobW9kZWwsIGxldmVsTWFwcGluZ1tsZXZlbF0sIFwiY29sb3JcIiwgLi4uYXJndW1lbnRzXyksIGFuc2lfc3R5bGVzX2RlZmF1bHQuY29sb3IuY2xvc2UsIHRoaXNbU1RZTEVSXSk7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWlsZGVyKHRoaXMsIHN0eWxlciwgdGhpc1tJU19FTVBUWV0pO1xuICAgICAgfTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGJnTW9kZWwgPSBcImJnXCIgKyBtb2RlbFswXS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gIHN0eWxlczJbYmdNb2RlbF0gPSB7XG4gICAgZ2V0KCkge1xuICAgICAgY29uc3QgeyBsZXZlbCB9ID0gdGhpcztcbiAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmd1bWVudHNfKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlciA9IGNyZWF0ZVN0eWxlcihnZXRNb2RlbEFuc2kobW9kZWwsIGxldmVsTWFwcGluZ1tsZXZlbF0sIFwiYmdDb2xvclwiLCAuLi5hcmd1bWVudHNfKSwgYW5zaV9zdHlsZXNfZGVmYXVsdC5iZ0NvbG9yLmNsb3NlLCB0aGlzW1NUWUxFUl0pO1xuICAgICAgICByZXR1cm4gY3JlYXRlQnVpbGRlcih0aGlzLCBzdHlsZXIsIHRoaXNbSVNfRU1QVFldKTtcbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxudmFyIHByb3RvID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoKCkgPT4ge1xufSwge1xuICAuLi5zdHlsZXMyLFxuICBsZXZlbDoge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIHRoaXNbR0VORVJBVE9SXS5sZXZlbDtcbiAgICB9LFxuICAgIHNldChsZXZlbCkge1xuICAgICAgdGhpc1tHRU5FUkFUT1JdLmxldmVsID0gbGV2ZWw7XG4gICAgfVxuICB9XG59KTtcbnZhciBjcmVhdGVTdHlsZXIgPSAob3BlbiwgY2xvc2UsIHBhcmVudCkgPT4ge1xuICBsZXQgb3BlbkFsbDtcbiAgbGV0IGNsb3NlQWxsO1xuICBpZiAocGFyZW50ID09PSB2b2lkIDApIHtcbiAgICBvcGVuQWxsID0gb3BlbjtcbiAgICBjbG9zZUFsbCA9IGNsb3NlO1xuICB9IGVsc2Uge1xuICAgIG9wZW5BbGwgPSBwYXJlbnQub3BlbkFsbCArIG9wZW47XG4gICAgY2xvc2VBbGwgPSBjbG9zZSArIHBhcmVudC5jbG9zZUFsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gICAgb3BlbkFsbCxcbiAgICBjbG9zZUFsbCxcbiAgICBwYXJlbnRcbiAgfTtcbn07XG52YXIgY3JlYXRlQnVpbGRlciA9IChzZWxmLCBfc3R5bGVyLCBfaXNFbXB0eSkgPT4ge1xuICBjb25zdCBidWlsZGVyID0gKC4uLmFyZ3VtZW50c18pID0+IGFwcGx5U3R5bGUoYnVpbGRlciwgYXJndW1lbnRzXy5sZW5ndGggPT09IDEgPyBcIlwiICsgYXJndW1lbnRzX1swXSA6IGFyZ3VtZW50c18uam9pbihcIiBcIikpO1xuICBPYmplY3Quc2V0UHJvdG90eXBlT2YoYnVpbGRlciwgcHJvdG8pO1xuICBidWlsZGVyW0dFTkVSQVRPUl0gPSBzZWxmO1xuICBidWlsZGVyW1NUWUxFUl0gPSBfc3R5bGVyO1xuICBidWlsZGVyW0lTX0VNUFRZXSA9IF9pc0VtcHR5O1xuICByZXR1cm4gYnVpbGRlcjtcbn07XG52YXIgYXBwbHlTdHlsZSA9IChzZWxmLCBzdHJpbmcpID0+IHtcbiAgaWYgKHNlbGYubGV2ZWwgPD0gMCB8fCAhc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNlbGZbSVNfRU1QVFldID8gXCJcIiA6IHN0cmluZztcbiAgfVxuICBsZXQgc3R5bGVyID0gc2VsZltTVFlMRVJdO1xuICBpZiAoc3R5bGVyID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG4gIGNvbnN0IHsgb3BlbkFsbCwgY2xvc2VBbGwgfSA9IHN0eWxlcjtcbiAgaWYgKHN0cmluZy5pbmNsdWRlcyhcIlxceDFCXCIpKSB7XG4gICAgd2hpbGUgKHN0eWxlciAhPT0gdm9pZCAwKSB7XG4gICAgICBzdHJpbmcgPSBzdHJpbmdSZXBsYWNlQWxsKHN0cmluZywgc3R5bGVyLmNsb3NlLCBzdHlsZXIub3Blbik7XG4gICAgICBzdHlsZXIgPSBzdHlsZXIucGFyZW50O1xuICAgIH1cbiAgfVxuICBjb25zdCBsZkluZGV4ID0gc3RyaW5nLmluZGV4T2YoXCJcXG5cIik7XG4gIGlmIChsZkluZGV4ICE9PSAtMSkge1xuICAgIHN0cmluZyA9IHN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleChzdHJpbmcsIGNsb3NlQWxsLCBvcGVuQWxsLCBsZkluZGV4KTtcbiAgfVxuICByZXR1cm4gb3BlbkFsbCArIHN0cmluZyArIGNsb3NlQWxsO1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNyZWF0ZUNoYWxrLnByb3RvdHlwZSwgc3R5bGVzMik7XG52YXIgY2hhbGsgPSBjcmVhdGVDaGFsaygpO1xudmFyIGNoYWxrU3RkZXJyID0gY3JlYXRlQ2hhbGsoeyBsZXZlbDogc3RkZXJyQ29sb3IgPyBzdGRlcnJDb2xvci5sZXZlbCA6IDAgfSk7XG52YXIgc291cmNlX2RlZmF1bHQgPSBjaGFsaztcblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvaGFuZGxlcnMvZGVwcmVjYXRlZC9jb21tb24uanNcbnZhciBjb21tb25EZXByZWNhdGVkSGFuZGxlciA9IChrZXlPclBhaXIsIHJlZGlyZWN0VG8sIHsgZGVzY3JpcHRvciB9KSA9PiB7XG4gIGNvbnN0IG1lc3NhZ2VzMiA9IFtcbiAgICBgJHtzb3VyY2VfZGVmYXVsdC55ZWxsb3codHlwZW9mIGtleU9yUGFpciA9PT0gXCJzdHJpbmdcIiA/IGRlc2NyaXB0b3Iua2V5KGtleU9yUGFpcikgOiBkZXNjcmlwdG9yLnBhaXIoa2V5T3JQYWlyKSl9IGlzIGRlcHJlY2F0ZWRgXG4gIF07XG4gIGlmIChyZWRpcmVjdFRvKSB7XG4gICAgbWVzc2FnZXMyLnB1c2goYHdlIG5vdyB0cmVhdCBpdCBhcyAke3NvdXJjZV9kZWZhdWx0LmJsdWUodHlwZW9mIHJlZGlyZWN0VG8gPT09IFwic3RyaW5nXCIgPyBkZXNjcmlwdG9yLmtleShyZWRpcmVjdFRvKSA6IGRlc2NyaXB0b3IucGFpcihyZWRpcmVjdFRvKSl9YCk7XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2VzMi5qb2luKFwiOyBcIikgKyBcIi5cIjtcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL2NvbnN0YW50cy5qc1xudmFyIFZBTFVFX05PVF9FWElTVCA9IFN5bWJvbC5mb3IoXCJ2bm9wdHMuVkFMVUVfTk9UX0VYSVNUXCIpO1xudmFyIFZBTFVFX1VOQ0hBTkdFRCA9IFN5bWJvbC5mb3IoXCJ2bm9wdHMuVkFMVUVfVU5DSEFOR0VEXCIpO1xuXG4vLyBub2RlX21vZHVsZXMvdm5vcHRzL2xpYi9oYW5kbGVycy9pbnZhbGlkL2NvbW1vbi5qc1xudmFyIElOREVOVEFUSU9OID0gXCIgXCIucmVwZWF0KDIpO1xudmFyIGNvbW1vbkludmFsaWRIYW5kbGVyID0gKGtleSwgdmFsdWUsIHV0aWxzKSA9PiB7XG4gIGNvbnN0IHsgdGV4dCwgbGlzdCB9ID0gdXRpbHMubm9ybWFsaXplRXhwZWN0ZWRSZXN1bHQodXRpbHMuc2NoZW1hc1trZXldLmV4cGVjdGVkKHV0aWxzKSk7XG4gIGNvbnN0IGRlc2NyaXB0aW9ucyA9IFtdO1xuICBpZiAodGV4dCkge1xuICAgIGRlc2NyaXB0aW9ucy5wdXNoKGdldERlc2NyaXB0aW9uKGtleSwgdmFsdWUsIHRleHQsIHV0aWxzLmRlc2NyaXB0b3IpKTtcbiAgfVxuICBpZiAobGlzdCkge1xuICAgIGRlc2NyaXB0aW9ucy5wdXNoKFtnZXREZXNjcmlwdGlvbihrZXksIHZhbHVlLCBsaXN0LnRpdGxlLCB1dGlscy5kZXNjcmlwdG9yKV0uY29uY2F0KGxpc3QudmFsdWVzLm1hcCgodmFsdWVEZXNjcmlwdGlvbikgPT4gZ2V0TGlzdERlc2NyaXB0aW9uKHZhbHVlRGVzY3JpcHRpb24sIHV0aWxzLmxvZ2dlclByaW50V2lkdGgpKSkuam9pbihcIlxcblwiKSk7XG4gIH1cbiAgcmV0dXJuIGNob29zZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9ucywgdXRpbHMubG9nZ2VyUHJpbnRXaWR0aCk7XG59O1xuZnVuY3Rpb24gZ2V0RGVzY3JpcHRpb24oa2V5LCB2YWx1ZSwgZXhwZWN0ZWQsIGRlc2NyaXB0b3IpIHtcbiAgcmV0dXJuIFtcbiAgICBgSW52YWxpZCAke3NvdXJjZV9kZWZhdWx0LnJlZChkZXNjcmlwdG9yLmtleShrZXkpKX0gdmFsdWUuYCxcbiAgICBgRXhwZWN0ZWQgJHtzb3VyY2VfZGVmYXVsdC5ibHVlKGV4cGVjdGVkKX0sYCxcbiAgICBgYnV0IHJlY2VpdmVkICR7dmFsdWUgPT09IFZBTFVFX05PVF9FWElTVCA/IHNvdXJjZV9kZWZhdWx0LmdyYXkoXCJub3RoaW5nXCIpIDogc291cmNlX2RlZmF1bHQucmVkKGRlc2NyaXB0b3IudmFsdWUodmFsdWUpKX0uYFxuICBdLmpvaW4oXCIgXCIpO1xufVxuZnVuY3Rpb24gZ2V0TGlzdERlc2NyaXB0aW9uKHsgdGV4dCwgbGlzdCB9LCBwcmludFdpZHRoKSB7XG4gIGNvbnN0IGRlc2NyaXB0aW9ucyA9IFtdO1xuICBpZiAodGV4dCkge1xuICAgIGRlc2NyaXB0aW9ucy5wdXNoKGAtICR7c291cmNlX2RlZmF1bHQuYmx1ZSh0ZXh0KX1gKTtcbiAgfVxuICBpZiAobGlzdCkge1xuICAgIGRlc2NyaXB0aW9ucy5wdXNoKFtgLSAke3NvdXJjZV9kZWZhdWx0LmJsdWUobGlzdC50aXRsZSl9OmBdLmNvbmNhdChsaXN0LnZhbHVlcy5tYXAoKHZhbHVlRGVzY3JpcHRpb24pID0+IGdldExpc3REZXNjcmlwdGlvbih2YWx1ZURlc2NyaXB0aW9uLCBwcmludFdpZHRoIC0gSU5ERU5UQVRJT04ubGVuZ3RoKS5yZXBsYWNlKC9efFxcbi9nLCBgJCYke0lOREVOVEFUSU9OfWApKSkuam9pbihcIlxcblwiKSk7XG4gIH1cbiAgcmV0dXJuIGNob29zZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9ucywgcHJpbnRXaWR0aCk7XG59XG5mdW5jdGlvbiBjaG9vc2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvbnMsIHByaW50V2lkdGgpIHtcbiAgaWYgKGRlc2NyaXB0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZGVzY3JpcHRpb25zWzBdO1xuICB9XG4gIGNvbnN0IFtmaXJzdERlc2NyaXB0aW9uLCBzZWNvbmREZXNjcmlwdGlvbl0gPSBkZXNjcmlwdGlvbnM7XG4gIGNvbnN0IFtmaXJzdFdpZHRoLCBzZWNvbmRXaWR0aF0gPSBkZXNjcmlwdGlvbnMubWFwKChkZXNjcmlwdGlvbikgPT4gZGVzY3JpcHRpb24uc3BsaXQoXCJcXG5cIiwgMSlbMF0ubGVuZ3RoKTtcbiAgcmV0dXJuIGZpcnN0V2lkdGggPiBwcmludFdpZHRoICYmIGZpcnN0V2lkdGggPiBzZWNvbmRXaWR0aCA/IHNlY29uZERlc2NyaXB0aW9uIDogZmlyc3REZXNjcmlwdGlvbjtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL2xldmVuL2luZGV4LmpzXG52YXIgYXJyYXkgPSBbXTtcbnZhciBjaGFyYWN0ZXJDb2RlQ2FjaGUgPSBbXTtcbmZ1bmN0aW9uIGxldmVuKGZpcnN0LCBzZWNvbmQpIHtcbiAgaWYgKGZpcnN0ID09PSBzZWNvbmQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBjb25zdCBzd2FwID0gZmlyc3Q7XG4gIGlmIChmaXJzdC5sZW5ndGggPiBzZWNvbmQubGVuZ3RoKSB7XG4gICAgZmlyc3QgPSBzZWNvbmQ7XG4gICAgc2Vjb25kID0gc3dhcDtcbiAgfVxuICBsZXQgZmlyc3RMZW5ndGggPSBmaXJzdC5sZW5ndGg7XG4gIGxldCBzZWNvbmRMZW5ndGggPSBzZWNvbmQubGVuZ3RoO1xuICB3aGlsZSAoZmlyc3RMZW5ndGggPiAwICYmIGZpcnN0LmNoYXJDb2RlQXQofi1maXJzdExlbmd0aCkgPT09IHNlY29uZC5jaGFyQ29kZUF0KH4tc2Vjb25kTGVuZ3RoKSkge1xuICAgIGZpcnN0TGVuZ3RoLS07XG4gICAgc2Vjb25kTGVuZ3RoLS07XG4gIH1cbiAgbGV0IHN0YXJ0ID0gMDtcbiAgd2hpbGUgKHN0YXJ0IDwgZmlyc3RMZW5ndGggJiYgZmlyc3QuY2hhckNvZGVBdChzdGFydCkgPT09IHNlY29uZC5jaGFyQ29kZUF0KHN0YXJ0KSkge1xuICAgIHN0YXJ0Kys7XG4gIH1cbiAgZmlyc3RMZW5ndGggLT0gc3RhcnQ7XG4gIHNlY29uZExlbmd0aCAtPSBzdGFydDtcbiAgaWYgKGZpcnN0TGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHNlY29uZExlbmd0aDtcbiAgfVxuICBsZXQgYkNoYXJhY3RlckNvZGU7XG4gIGxldCByZXN1bHQ7XG4gIGxldCB0ZW1wb3Jhcnk7XG4gIGxldCB0ZW1wb3JhcnkyO1xuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgaW5kZXgyID0gMDtcbiAgd2hpbGUgKGluZGV4IDwgZmlyc3RMZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXJDb2RlQ2FjaGVbaW5kZXhdID0gZmlyc3QuY2hhckNvZGVBdChzdGFydCArIGluZGV4KTtcbiAgICBhcnJheVtpbmRleF0gPSArK2luZGV4O1xuICB9XG4gIHdoaWxlIChpbmRleDIgPCBzZWNvbmRMZW5ndGgpIHtcbiAgICBiQ2hhcmFjdGVyQ29kZSA9IHNlY29uZC5jaGFyQ29kZUF0KHN0YXJ0ICsgaW5kZXgyKTtcbiAgICB0ZW1wb3JhcnkgPSBpbmRleDIrKztcbiAgICByZXN1bHQgPSBpbmRleDI7XG4gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgZmlyc3RMZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIHRlbXBvcmFyeTIgPSBiQ2hhcmFjdGVyQ29kZSA9PT0gY2hhcmFjdGVyQ29kZUNhY2hlW2luZGV4XSA/IHRlbXBvcmFyeSA6IHRlbXBvcmFyeSArIDE7XG4gICAgICB0ZW1wb3JhcnkgPSBhcnJheVtpbmRleF07XG4gICAgICByZXN1bHQgPSBhcnJheVtpbmRleF0gPSB0ZW1wb3JhcnkgPiByZXN1bHQgPyB0ZW1wb3JhcnkyID4gcmVzdWx0ID8gcmVzdWx0ICsgMSA6IHRlbXBvcmFyeTIgOiB0ZW1wb3JhcnkyID4gdGVtcG9yYXJ5ID8gdGVtcG9yYXJ5ICsgMSA6IHRlbXBvcmFyeTI7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL2hhbmRsZXJzL3Vua25vd24vbGV2ZW4uanNcbnZhciBsZXZlblVua25vd25IYW5kbGVyID0gKGtleSwgdmFsdWUsIHsgZGVzY3JpcHRvciwgbG9nZ2VyLCBzY2hlbWFzIH0pID0+IHtcbiAgY29uc3QgbWVzc2FnZXMyID0gW1xuICAgIGBJZ25vcmVkIHVua25vd24gb3B0aW9uICR7c291cmNlX2RlZmF1bHQueWVsbG93KGRlc2NyaXB0b3IucGFpcih7IGtleSwgdmFsdWUgfSkpfS5gXG4gIF07XG4gIGNvbnN0IHN1Z2dlc3Rpb24gPSBPYmplY3Qua2V5cyhzY2hlbWFzKS5zb3J0KCkuZmluZCgoa25vd25LZXkpID0+IGxldmVuKGtleSwga25vd25LZXkpIDwgMyk7XG4gIGlmIChzdWdnZXN0aW9uKSB7XG4gICAgbWVzc2FnZXMyLnB1c2goYERpZCB5b3UgbWVhbiAke3NvdXJjZV9kZWZhdWx0LmJsdWUoZGVzY3JpcHRvci5rZXkoc3VnZ2VzdGlvbikpfT9gKTtcbiAgfVxuICBsb2dnZXIud2FybihtZXNzYWdlczIuam9pbihcIiBcIikpO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvc2NoZW1hLmpzXG52YXIgSEFORExFUl9LRVlTID0gW1xuICBcImRlZmF1bHRcIixcbiAgXCJleHBlY3RlZFwiLFxuICBcInZhbGlkYXRlXCIsXG4gIFwiZGVwcmVjYXRlZFwiLFxuICBcImZvcndhcmRcIixcbiAgXCJyZWRpcmVjdFwiLFxuICBcIm92ZXJsYXBcIixcbiAgXCJwcmVwcm9jZXNzXCIsXG4gIFwicG9zdHByb2Nlc3NcIlxuXTtcbmZ1bmN0aW9uIGNyZWF0ZVNjaGVtYShTY2hlbWFDb25zdHJ1Y3RvciwgcGFyYW1ldGVycykge1xuICBjb25zdCBzY2hlbWEgPSBuZXcgU2NoZW1hQ29uc3RydWN0b3IocGFyYW1ldGVycyk7XG4gIGNvbnN0IHN1YlNjaGVtYSA9IE9iamVjdC5jcmVhdGUoc2NoZW1hKTtcbiAgZm9yIChjb25zdCBoYW5kbGVyS2V5IG9mIEhBTkRMRVJfS0VZUykge1xuICAgIGlmIChoYW5kbGVyS2V5IGluIHBhcmFtZXRlcnMpIHtcbiAgICAgIHN1YlNjaGVtYVtoYW5kbGVyS2V5XSA9IG5vcm1hbGl6ZUhhbmRsZXIocGFyYW1ldGVyc1toYW5kbGVyS2V5XSwgc2NoZW1hLCBTY2hlbWEucHJvdG90eXBlW2hhbmRsZXJLZXldLmxlbmd0aCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdWJTY2hlbWE7XG59XG52YXIgU2NoZW1hID0gY2xhc3Mge1xuICBzdGF0aWMgY3JlYXRlKHBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gY3JlYXRlU2NoZW1hKHRoaXMsIHBhcmFtZXRlcnMpO1xuICB9XG4gIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnMpIHtcbiAgICB0aGlzLm5hbWUgPSBwYXJhbWV0ZXJzLm5hbWU7XG4gIH1cbiAgZGVmYXVsdChfdXRpbHMpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIC8vIHRoaXMgaXMgYWN0dWFsbHkgYW4gYWJzdHJhY3QgbWV0aG9kIGJ1dCB3ZSBuZWVkIGEgcGxhY2Vob2xkZXIgdG8gZ2V0IGBmdW5jdGlvbi5sZW5ndGhgXG4gIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICBleHBlY3RlZChfdXRpbHMpIHtcbiAgICByZXR1cm4gXCJub3RoaW5nXCI7XG4gIH1cbiAgLyogYzggaWdub3JlIHN0b3AgKi9cbiAgLy8gdGhpcyBpcyBhY3R1YWxseSBhbiBhYnN0cmFjdCBtZXRob2QgYnV0IHdlIG5lZWQgYSBwbGFjZWhvbGRlciB0byBnZXQgYGZ1bmN0aW9uLmxlbmd0aGBcbiAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gIHZhbGlkYXRlKF92YWx1ZSwgX3V0aWxzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8qIGM4IGlnbm9yZSBzdG9wICovXG4gIGRlcHJlY2F0ZWQoX3ZhbHVlLCBfdXRpbHMpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgZm9yd2FyZChfdmFsdWUsIF91dGlscykge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgcmVkaXJlY3QoX3ZhbHVlLCBfdXRpbHMpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIG92ZXJsYXAoY3VycmVudFZhbHVlLCBfbmV3VmFsdWUsIF91dGlscykge1xuICAgIHJldHVybiBjdXJyZW50VmFsdWU7XG4gIH1cbiAgcHJlcHJvY2Vzcyh2YWx1ZSwgX3V0aWxzKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHBvc3Rwcm9jZXNzKF92YWx1ZSwgX3V0aWxzKSB7XG4gICAgcmV0dXJuIFZBTFVFX1VOQ0hBTkdFRDtcbiAgfVxufTtcbmZ1bmN0aW9uIG5vcm1hbGl6ZUhhbmRsZXIoaGFuZGxlciwgc3VwZXJTY2hlbWEsIGhhbmRsZXJBcmd1bWVudHNMZW5ndGgpIHtcbiAgcmV0dXJuIHR5cGVvZiBoYW5kbGVyID09PSBcImZ1bmN0aW9uXCIgPyAoLi4uYXJncykgPT4gaGFuZGxlciguLi5hcmdzLnNsaWNlKDAsIGhhbmRsZXJBcmd1bWVudHNMZW5ndGggLSAxKSwgc3VwZXJTY2hlbWEsIC4uLmFyZ3Muc2xpY2UoaGFuZGxlckFyZ3VtZW50c0xlbmd0aCAtIDEpKSA6ICgpID0+IGhhbmRsZXI7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL3NjaGVtYXMvYWxpYXMuanNcbnZhciBBbGlhc1NjaGVtYSA9IGNsYXNzIGV4dGVuZHMgU2NoZW1hIHtcbiAgY29uc3RydWN0b3IocGFyYW1ldGVycykge1xuICAgIHN1cGVyKHBhcmFtZXRlcnMpO1xuICAgIHRoaXMuX3NvdXJjZU5hbWUgPSBwYXJhbWV0ZXJzLnNvdXJjZU5hbWU7XG4gIH1cbiAgZXhwZWN0ZWQodXRpbHMpIHtcbiAgICByZXR1cm4gdXRpbHMuc2NoZW1hc1t0aGlzLl9zb3VyY2VOYW1lXS5leHBlY3RlZCh1dGlscyk7XG4gIH1cbiAgdmFsaWRhdGUodmFsdWUsIHV0aWxzKSB7XG4gICAgcmV0dXJuIHV0aWxzLnNjaGVtYXNbdGhpcy5fc291cmNlTmFtZV0udmFsaWRhdGUodmFsdWUsIHV0aWxzKTtcbiAgfVxuICByZWRpcmVjdChfdmFsdWUsIF91dGlscykge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2VOYW1lO1xuICB9XG59O1xuXG4vLyBub2RlX21vZHVsZXMvdm5vcHRzL2xpYi9zY2hlbWFzL2FueS5qc1xudmFyIEFueVNjaGVtYSA9IGNsYXNzIGV4dGVuZHMgU2NoZW1hIHtcbiAgZXhwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIFwiYW55dGhpbmdcIjtcbiAgfVxuICB2YWxpZGF0ZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvc2NoZW1hcy9hcnJheS5qc1xudmFyIEFycmF5U2NoZW1hID0gY2xhc3MgZXh0ZW5kcyBTY2hlbWEge1xuICBjb25zdHJ1Y3Rvcih7IHZhbHVlU2NoZW1hLCBuYW1lID0gdmFsdWVTY2hlbWEubmFtZSwgLi4uaGFuZGxlcnMgfSkge1xuICAgIHN1cGVyKHsgLi4uaGFuZGxlcnMsIG5hbWUgfSk7XG4gICAgdGhpcy5fdmFsdWVTY2hlbWEgPSB2YWx1ZVNjaGVtYTtcbiAgfVxuICBleHBlY3RlZCh1dGlscykge1xuICAgIGNvbnN0IHsgdGV4dCwgbGlzdCB9ID0gdXRpbHMubm9ybWFsaXplRXhwZWN0ZWRSZXN1bHQodGhpcy5fdmFsdWVTY2hlbWEuZXhwZWN0ZWQodXRpbHMpKTtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogdGV4dCAmJiBgYW4gYXJyYXkgb2YgJHt0ZXh0fWAsXG4gICAgICBsaXN0OiBsaXN0ICYmIHtcbiAgICAgICAgdGl0bGU6IGBhbiBhcnJheSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlc2AsXG4gICAgICAgIHZhbHVlczogW3sgbGlzdCB9XVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgdmFsaWRhdGUodmFsdWUsIHV0aWxzKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpbnZhbGlkVmFsdWVzID0gW107XG4gICAgZm9yIChjb25zdCBzdWJWYWx1ZSBvZiB2YWx1ZSkge1xuICAgICAgY29uc3Qgc3ViVmFsaWRhdGVSZXN1bHQgPSB1dGlscy5ub3JtYWxpemVWYWxpZGF0ZVJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS52YWxpZGF0ZShzdWJWYWx1ZSwgdXRpbHMpLCBzdWJWYWx1ZSk7XG4gICAgICBpZiAoc3ViVmFsaWRhdGVSZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgaW52YWxpZFZhbHVlcy5wdXNoKHN1YlZhbGlkYXRlUmVzdWx0LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZXMubGVuZ3RoID09PSAwID8gdHJ1ZSA6IHsgdmFsdWU6IGludmFsaWRWYWx1ZXMgfTtcbiAgfVxuICBkZXByZWNhdGVkKHZhbHVlLCB1dGlscykge1xuICAgIGNvbnN0IGRlcHJlY2F0ZWRSZXN1bHQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICBjb25zdCBzdWJEZXByZWNhdGVkUmVzdWx0ID0gdXRpbHMubm9ybWFsaXplRGVwcmVjYXRlZFJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS5kZXByZWNhdGVkKHN1YlZhbHVlLCB1dGlscyksIHN1YlZhbHVlKTtcbiAgICAgIGlmIChzdWJEZXByZWNhdGVkUmVzdWx0ICE9PSBmYWxzZSkge1xuICAgICAgICBkZXByZWNhdGVkUmVzdWx0LnB1c2goLi4uc3ViRGVwcmVjYXRlZFJlc3VsdC5tYXAoKHsgdmFsdWU6IGRlcHJlY2F0ZWRWYWx1ZSB9KSA9PiAoe1xuICAgICAgICAgIHZhbHVlOiBbZGVwcmVjYXRlZFZhbHVlXVxuICAgICAgICB9KSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGVwcmVjYXRlZFJlc3VsdDtcbiAgfVxuICBmb3J3YXJkKHZhbHVlLCB1dGlscykge1xuICAgIGNvbnN0IGZvcndhcmRSZXN1bHQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICBjb25zdCBzdWJGb3J3YXJkUmVzdWx0ID0gdXRpbHMubm9ybWFsaXplRm9yd2FyZFJlc3VsdCh0aGlzLl92YWx1ZVNjaGVtYS5mb3J3YXJkKHN1YlZhbHVlLCB1dGlscyksIHN1YlZhbHVlKTtcbiAgICAgIGZvcndhcmRSZXN1bHQucHVzaCguLi5zdWJGb3J3YXJkUmVzdWx0Lm1hcCh3cmFwVHJhbnNmZXJSZXN1bHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcndhcmRSZXN1bHQ7XG4gIH1cbiAgcmVkaXJlY3QodmFsdWUsIHV0aWxzKSB7XG4gICAgY29uc3QgcmVtYWluID0gW107XG4gICAgY29uc3QgcmVkaXJlY3QgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN1YlZhbHVlIG9mIHZhbHVlKSB7XG4gICAgICBjb25zdCBzdWJSZWRpcmVjdFJlc3VsdCA9IHV0aWxzLm5vcm1hbGl6ZVJlZGlyZWN0UmVzdWx0KHRoaXMuX3ZhbHVlU2NoZW1hLnJlZGlyZWN0KHN1YlZhbHVlLCB1dGlscyksIHN1YlZhbHVlKTtcbiAgICAgIGlmIChcInJlbWFpblwiIGluIHN1YlJlZGlyZWN0UmVzdWx0KSB7XG4gICAgICAgIHJlbWFpbi5wdXNoKHN1YlJlZGlyZWN0UmVzdWx0LnJlbWFpbik7XG4gICAgICB9XG4gICAgICByZWRpcmVjdC5wdXNoKC4uLnN1YlJlZGlyZWN0UmVzdWx0LnJlZGlyZWN0Lm1hcCh3cmFwVHJhbnNmZXJSZXN1bHQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlbWFpbi5sZW5ndGggPT09IDAgPyB7IHJlZGlyZWN0IH0gOiB7IHJlZGlyZWN0LCByZW1haW4gfTtcbiAgfVxuICBvdmVybGFwKGN1cnJlbnRWYWx1ZSwgbmV3VmFsdWUpIHtcbiAgICByZXR1cm4gY3VycmVudFZhbHVlLmNvbmNhdChuZXdWYWx1ZSk7XG4gIH1cbn07XG5mdW5jdGlvbiB3cmFwVHJhbnNmZXJSZXN1bHQoeyBmcm9tLCB0byB9KSB7XG4gIHJldHVybiB7IGZyb206IFtmcm9tXSwgdG8gfTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvc2NoZW1hcy9ib29sZWFuLmpzXG52YXIgQm9vbGVhblNjaGVtYSA9IGNsYXNzIGV4dGVuZHMgU2NoZW1hIHtcbiAgZXhwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIFwidHJ1ZSBvciBmYWxzZVwiO1xuICB9XG4gIHZhbGlkYXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCI7XG4gIH1cbn07XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL3V0aWxzLmpzXG5mdW5jdGlvbiByZWNvcmRGcm9tQXJyYXkoYXJyYXkyLCBtYWluS2V5KSB7XG4gIGNvbnN0IHJlY29yZCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5Mikge1xuICAgIGNvbnN0IGtleSA9IHZhbHVlW21haW5LZXldO1xuICAgIGlmIChyZWNvcmRba2V5XSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgJHttYWluS2V5fSAke0pTT04uc3RyaW5naWZ5KGtleSl9YCk7XG4gICAgfVxuICAgIHJlY29yZFtrZXldID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHJlY29yZDtcbn1cbmZ1bmN0aW9uIG1hcEZyb21BcnJheShhcnJheTIsIG1haW5LZXkpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCB2YWx1ZSBvZiBhcnJheTIpIHtcbiAgICBjb25zdCBrZXkgPSB2YWx1ZVttYWluS2V5XTtcbiAgICBpZiAobWFwLmhhcyhrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSAke21haW5LZXl9ICR7SlNPTi5zdHJpbmdpZnkoa2V5KX1gKTtcbiAgICB9XG4gICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gY3JlYXRlQXV0b0NoZWNrbGlzdCgpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHJldHVybiAoaWQpID0+IHtcbiAgICBjb25zdCBpZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGlkKTtcbiAgICBpZiAobWFwW2lkU3RyaW5nXSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIG1hcFtpZFN0cmluZ10gPSB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbn1cbmZ1bmN0aW9uIHBhcnRpdGlvbihhcnJheTIsIHByZWRpY2F0ZSkge1xuICBjb25zdCB0cnVlQXJyYXkgPSBbXTtcbiAgY29uc3QgZmFsc2VBcnJheSA9IFtdO1xuICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5Mikge1xuICAgIGlmIChwcmVkaWNhdGUodmFsdWUpKSB7XG4gICAgICB0cnVlQXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhbHNlQXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbdHJ1ZUFycmF5LCBmYWxzZUFycmF5XTtcbn1cbmZ1bmN0aW9uIGlzSW50KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gTWF0aC5mbG9vcih2YWx1ZSk7XG59XG5mdW5jdGlvbiBjb21wYXJlUHJpbWl0aXZlKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBjb25zdCB0eXBlb2ZBID0gdHlwZW9mIGE7XG4gIGNvbnN0IHR5cGVvZkIgPSB0eXBlb2YgYjtcbiAgY29uc3Qgb3JkZXJzID0gW1xuICAgIFwidW5kZWZpbmVkXCIsXG4gICAgXCJvYmplY3RcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwic3RyaW5nXCJcbiAgXTtcbiAgaWYgKHR5cGVvZkEgIT09IHR5cGVvZkIpIHtcbiAgICByZXR1cm4gb3JkZXJzLmluZGV4T2YodHlwZW9mQSkgLSBvcmRlcnMuaW5kZXhPZih0eXBlb2ZCKTtcbiAgfVxuICBpZiAodHlwZW9mQSAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBOdW1iZXIoYSkgLSBOdW1iZXIoYik7XG4gIH1cbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUludmFsaWRIYW5kbGVyKGludmFsaWRIYW5kbGVyKSB7XG4gIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZU9yRXJyb3IgPSBpbnZhbGlkSGFuZGxlciguLi5hcmdzKTtcbiAgICByZXR1cm4gdHlwZW9mIGVycm9yTWVzc2FnZU9yRXJyb3IgPT09IFwic3RyaW5nXCIgPyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlT3JFcnJvcikgOiBlcnJvck1lc3NhZ2VPckVycm9yO1xuICB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplRGVmYXVsdFJlc3VsdChyZXN1bHQpIHtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gdm9pZCAwID8ge30gOiByZXN1bHQ7XG59XG5mdW5jdGlvbiBub3JtYWxpemVFeHBlY3RlZFJlc3VsdChyZXN1bHQpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4geyB0ZXh0OiByZXN1bHQgfTtcbiAgfVxuICBjb25zdCB7IHRleHQsIGxpc3QgfSA9IHJlc3VsdDtcbiAgYXNzZXJ0KCh0ZXh0IHx8IGxpc3QpICE9PSB2b2lkIDAsIFwiVW5leHBlY3RlZCBgZXhwZWN0ZWRgIHJlc3VsdCwgdGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBmaWVsZC5cIik7XG4gIGlmICghbGlzdCkge1xuICAgIHJldHVybiB7IHRleHQgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHRleHQsXG4gICAgbGlzdDoge1xuICAgICAgdGl0bGU6IGxpc3QudGl0bGUsXG4gICAgICB2YWx1ZXM6IGxpc3QudmFsdWVzLm1hcChub3JtYWxpemVFeHBlY3RlZFJlc3VsdClcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiBub3JtYWxpemVWYWxpZGF0ZVJlc3VsdChyZXN1bHQsIHZhbHVlKSB7XG4gIHJldHVybiByZXN1bHQgPT09IHRydWUgPyB0cnVlIDogcmVzdWx0ID09PSBmYWxzZSA/IHsgdmFsdWUgfSA6IHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZURlcHJlY2F0ZWRSZXN1bHQocmVzdWx0LCB2YWx1ZSwgZG9Ob3ROb3JtYWxpemVUcnVlID0gZmFsc2UpIHtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gZmFsc2UgPyBmYWxzZSA6IHJlc3VsdCA9PT0gdHJ1ZSA/IGRvTm90Tm9ybWFsaXplVHJ1ZSA/IHRydWUgOiBbeyB2YWx1ZSB9XSA6IFwidmFsdWVcIiBpbiByZXN1bHQgPyBbcmVzdWx0XSA6IHJlc3VsdC5sZW5ndGggPT09IDAgPyBmYWxzZSA6IHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVRyYW5zZmVyUmVzdWx0KHJlc3VsdCwgdmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT09IFwic3RyaW5nXCIgfHwgXCJrZXlcIiBpbiByZXN1bHQgPyB7IGZyb206IHZhbHVlLCB0bzogcmVzdWx0IH0gOiBcImZyb21cIiBpbiByZXN1bHQgPyB7IGZyb206IHJlc3VsdC5mcm9tLCB0bzogcmVzdWx0LnRvIH0gOiB7IGZyb206IHZhbHVlLCB0bzogcmVzdWx0LnRvIH07XG59XG5mdW5jdGlvbiBub3JtYWxpemVGb3J3YXJkUmVzdWx0KHJlc3VsdCwgdmFsdWUpIHtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gdm9pZCAwID8gW10gOiBBcnJheS5pc0FycmF5KHJlc3VsdCkgPyByZXN1bHQubWFwKCh0cmFuc2ZlclJlc3VsdCkgPT4gbm9ybWFsaXplVHJhbnNmZXJSZXN1bHQodHJhbnNmZXJSZXN1bHQsIHZhbHVlKSkgOiBbbm9ybWFsaXplVHJhbnNmZXJSZXN1bHQocmVzdWx0LCB2YWx1ZSldO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplUmVkaXJlY3RSZXN1bHQocmVzdWx0LCB2YWx1ZSkge1xuICBjb25zdCByZWRpcmVjdCA9IG5vcm1hbGl6ZUZvcndhcmRSZXN1bHQodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIiAmJiBcInJlZGlyZWN0XCIgaW4gcmVzdWx0ID8gcmVzdWx0LnJlZGlyZWN0IDogcmVzdWx0LCB2YWx1ZSk7XG4gIHJldHVybiByZWRpcmVjdC5sZW5ndGggPT09IDAgPyB7IHJlbWFpbjogdmFsdWUsIHJlZGlyZWN0IH0gOiB0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiICYmIFwicmVtYWluXCIgaW4gcmVzdWx0ID8geyByZW1haW46IHJlc3VsdC5yZW1haW4sIHJlZGlyZWN0IH0gOiB7IHJlZGlyZWN0IH07XG59XG5mdW5jdGlvbiBhc3NlcnQoaXNWYWxpZCwgbWVzc2FnZSkge1xuICBpZiAoIWlzVmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvc2NoZW1hcy9jaG9pY2UuanNcbnZhciBDaG9pY2VTY2hlbWEgPSBjbGFzcyBleHRlbmRzIFNjaGVtYSB7XG4gIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnMpIHtcbiAgICBzdXBlcihwYXJhbWV0ZXJzKTtcbiAgICB0aGlzLl9jaG9pY2VzID0gbWFwRnJvbUFycmF5KHBhcmFtZXRlcnMuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4gY2hvaWNlICYmIHR5cGVvZiBjaG9pY2UgPT09IFwib2JqZWN0XCIgPyBjaG9pY2UgOiB7IHZhbHVlOiBjaG9pY2UgfSksIFwidmFsdWVcIik7XG4gIH1cbiAgZXhwZWN0ZWQoeyBkZXNjcmlwdG9yIH0pIHtcbiAgICBjb25zdCBjaG9pY2VEZXNjcmlwdGlvbnMgPSBBcnJheS5mcm9tKHRoaXMuX2Nob2ljZXMua2V5cygpKS5tYXAoKHZhbHVlKSA9PiB0aGlzLl9jaG9pY2VzLmdldCh2YWx1ZSkpLmZpbHRlcigoeyBoaWRkZW4gfSkgPT4gIWhpZGRlbikubWFwKChjaG9pY2VJbmZvKSA9PiBjaG9pY2VJbmZvLnZhbHVlKS5zb3J0KGNvbXBhcmVQcmltaXRpdmUpLm1hcChkZXNjcmlwdG9yLnZhbHVlKTtcbiAgICBjb25zdCBoZWFkID0gY2hvaWNlRGVzY3JpcHRpb25zLnNsaWNlKDAsIC0yKTtcbiAgICBjb25zdCB0YWlsID0gY2hvaWNlRGVzY3JpcHRpb25zLnNsaWNlKC0yKTtcbiAgICBjb25zdCBtZXNzYWdlID0gaGVhZC5jb25jYXQodGFpbC5qb2luKFwiIG9yIFwiKSkuam9pbihcIiwgXCIpO1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiBtZXNzYWdlLFxuICAgICAgbGlzdDoge1xuICAgICAgICB0aXRsZTogXCJvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXNcIixcbiAgICAgICAgdmFsdWVzOiBjaG9pY2VEZXNjcmlwdGlvbnNcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHZhbGlkYXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nob2ljZXMuaGFzKHZhbHVlKTtcbiAgfVxuICBkZXByZWNhdGVkKHZhbHVlKSB7XG4gICAgY29uc3QgY2hvaWNlSW5mbyA9IHRoaXMuX2Nob2ljZXMuZ2V0KHZhbHVlKTtcbiAgICByZXR1cm4gY2hvaWNlSW5mbyAmJiBjaG9pY2VJbmZvLmRlcHJlY2F0ZWQgPyB7IHZhbHVlIH0gOiBmYWxzZTtcbiAgfVxuICBmb3J3YXJkKHZhbHVlKSB7XG4gICAgY29uc3QgY2hvaWNlSW5mbyA9IHRoaXMuX2Nob2ljZXMuZ2V0KHZhbHVlKTtcbiAgICByZXR1cm4gY2hvaWNlSW5mbyA/IGNob2ljZUluZm8uZm9yd2FyZCA6IHZvaWQgMDtcbiAgfVxuICByZWRpcmVjdCh2YWx1ZSkge1xuICAgIGNvbnN0IGNob2ljZUluZm8gPSB0aGlzLl9jaG9pY2VzLmdldCh2YWx1ZSk7XG4gICAgcmV0dXJuIGNob2ljZUluZm8gPyBjaG9pY2VJbmZvLnJlZGlyZWN0IDogdm9pZCAwO1xuICB9XG59O1xuXG4vLyBub2RlX21vZHVsZXMvdm5vcHRzL2xpYi9zY2hlbWFzL251bWJlci5qc1xudmFyIE51bWJlclNjaGVtYSA9IGNsYXNzIGV4dGVuZHMgU2NoZW1hIHtcbiAgZXhwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIFwiYSBudW1iZXJcIjtcbiAgfVxuICB2YWxpZGF0ZSh2YWx1ZSwgX3V0aWxzKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIjtcbiAgfVxufTtcblxuLy8gbm9kZV9tb2R1bGVzL3Zub3B0cy9saWIvc2NoZW1hcy9pbnRlZ2VyLmpzXG52YXIgSW50ZWdlclNjaGVtYSA9IGNsYXNzIGV4dGVuZHMgTnVtYmVyU2NoZW1hIHtcbiAgZXhwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIFwiYW4gaW50ZWdlclwiO1xuICB9XG4gIHZhbGlkYXRlKHZhbHVlLCB1dGlscykge1xuICAgIHJldHVybiB1dGlscy5ub3JtYWxpemVWYWxpZGF0ZVJlc3VsdChzdXBlci52YWxpZGF0ZSh2YWx1ZSwgdXRpbHMpLCB2YWx1ZSkgPT09IHRydWUgJiYgaXNJbnQodmFsdWUpO1xuICB9XG59O1xuXG4vLyBub2RlX21vZHVsZXMvdm5vcHRzL2xpYi9zY2hlbWFzL3N0cmluZy5qc1xudmFyIFN0cmluZ1NjaGVtYSA9IGNsYXNzIGV4dGVuZHMgU2NoZW1hIHtcbiAgZXhwZWN0ZWQoKSB7XG4gICAgcmV0dXJuIFwiYSBzdHJpbmdcIjtcbiAgfVxuICB2YWxpZGF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCI7XG4gIH1cbn07XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL2RlZmF1bHRzLmpzXG52YXIgZGVmYXVsdERlc2NyaXB0b3IgPSBhcGlEZXNjcmlwdG9yO1xudmFyIGRlZmF1bHRVbmtub3duSGFuZGxlciA9IGxldmVuVW5rbm93bkhhbmRsZXI7XG52YXIgZGVmYXVsdEludmFsaWRIYW5kbGVyID0gY29tbW9uSW52YWxpZEhhbmRsZXI7XG52YXIgZGVmYXVsdERlcHJlY2F0ZWRIYW5kbGVyID0gY29tbW9uRGVwcmVjYXRlZEhhbmRsZXI7XG5cbi8vIG5vZGVfbW9kdWxlcy92bm9wdHMvbGliL25vcm1hbGl6ZS5qc1xudmFyIE5vcm1hbGl6ZXIgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHNjaGVtYXMsIG9wdHMpIHtcbiAgICBjb25zdCB7IGxvZ2dlciA9IGNvbnNvbGUsIGxvZ2dlclByaW50V2lkdGggPSA4MCwgZGVzY3JpcHRvciA9IGRlZmF1bHREZXNjcmlwdG9yLCB1bmtub3duID0gZGVmYXVsdFVua25vd25IYW5kbGVyLCBpbnZhbGlkID0gZGVmYXVsdEludmFsaWRIYW5kbGVyLCBkZXByZWNhdGVkID0gZGVmYXVsdERlcHJlY2F0ZWRIYW5kbGVyLCBtaXNzaW5nID0gKCkgPT4gZmFsc2UsIHJlcXVpcmVkID0gKCkgPT4gZmFsc2UsIHByZXByb2Nlc3MgPSAoeCkgPT4geCwgcG9zdHByb2Nlc3MgPSAoKSA9PiBWQUxVRV9VTkNIQU5HRUQgfSA9IG9wdHMgfHwge307XG4gICAgdGhpcy5fdXRpbHMgPSB7XG4gICAgICBkZXNjcmlwdG9yLFxuICAgICAgbG9nZ2VyOiAoXG4gICAgICAgIC8qIGM4IGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGxvZ2dlciB8fCB7IHdhcm46ICgpID0+IHtcbiAgICAgICAgfSB9XG4gICAgICApLFxuICAgICAgbG9nZ2VyUHJpbnRXaWR0aCxcbiAgICAgIHNjaGVtYXM6IHJlY29yZEZyb21BcnJheShzY2hlbWFzLCBcIm5hbWVcIiksXG4gICAgICBub3JtYWxpemVEZWZhdWx0UmVzdWx0LFxuICAgICAgbm9ybWFsaXplRXhwZWN0ZWRSZXN1bHQsXG4gICAgICBub3JtYWxpemVEZXByZWNhdGVkUmVzdWx0LFxuICAgICAgbm9ybWFsaXplRm9yd2FyZFJlc3VsdCxcbiAgICAgIG5vcm1hbGl6ZVJlZGlyZWN0UmVzdWx0LFxuICAgICAgbm9ybWFsaXplVmFsaWRhdGVSZXN1bHRcbiAgICB9O1xuICAgIHRoaXMuX3Vua25vd25IYW5kbGVyID0gdW5rbm93bjtcbiAgICB0aGlzLl9pbnZhbGlkSGFuZGxlciA9IG5vcm1hbGl6ZUludmFsaWRIYW5kbGVyKGludmFsaWQpO1xuICAgIHRoaXMuX2RlcHJlY2F0ZWRIYW5kbGVyID0gZGVwcmVjYXRlZDtcbiAgICB0aGlzLl9pZGVudGlmeU1pc3NpbmcgPSAoaywgbykgPT4gIShrIGluIG8pIHx8IG1pc3Npbmcoaywgbyk7XG4gICAgdGhpcy5faWRlbnRpZnlSZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIHRoaXMuX3ByZXByb2Nlc3MgPSBwcmVwcm9jZXNzO1xuICAgIHRoaXMuX3Bvc3Rwcm9jZXNzID0gcG9zdHByb2Nlc3M7XG4gICAgdGhpcy5jbGVhbkhpc3RvcnkoKTtcbiAgfVxuICBjbGVhbkhpc3RvcnkoKSB7XG4gICAgdGhpcy5faGFzRGVwcmVjYXRpb25XYXJuZWQgPSBjcmVhdGVBdXRvQ2hlY2tsaXN0KCk7XG4gIH1cbiAgbm9ybWFsaXplKG9wdGlvbnM4KSB7XG4gICAgY29uc3QgbmV3T3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IHByZXByb2Nlc3NlZCA9IHRoaXMuX3ByZXByb2Nlc3Mob3B0aW9uczgsIHRoaXMuX3V0aWxzKTtcbiAgICBjb25zdCByZXN0T3B0aW9uc0FycmF5ID0gW3ByZXByb2Nlc3NlZF07XG4gICAgY29uc3QgYXBwbHlOb3JtYWxpemF0aW9uID0gKCkgPT4ge1xuICAgICAgd2hpbGUgKHJlc3RPcHRpb25zQXJyYXkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcHRpb25zID0gcmVzdE9wdGlvbnNBcnJheS5zaGlmdCgpO1xuICAgICAgICBjb25zdCB0cmFuc2ZlcnJlZE9wdGlvbnNBcnJheSA9IHRoaXMuX2FwcGx5Tm9ybWFsaXphdGlvbihjdXJyZW50T3B0aW9ucywgbmV3T3B0aW9ucyk7XG4gICAgICAgIHJlc3RPcHRpb25zQXJyYXkucHVzaCguLi50cmFuc2ZlcnJlZE9wdGlvbnNBcnJheSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBhcHBseU5vcm1hbGl6YXRpb24oKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLl91dGlscy5zY2hlbWFzKSkge1xuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5fdXRpbHMuc2NoZW1hc1trZXldO1xuICAgICAgaWYgKCEoa2V5IGluIG5ld09wdGlvbnMpKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRSZXN1bHQgPSBub3JtYWxpemVEZWZhdWx0UmVzdWx0KHNjaGVtYS5kZWZhdWx0KHRoaXMuX3V0aWxzKSk7XG4gICAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVmYXVsdFJlc3VsdCkge1xuICAgICAgICAgIHJlc3RPcHRpb25zQXJyYXkucHVzaCh7IFtrZXldOiBkZWZhdWx0UmVzdWx0LnZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGFwcGx5Tm9ybWFsaXphdGlvbigpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuX3V0aWxzLnNjaGVtYXMpKSB7XG4gICAgICBpZiAoIShrZXkgaW4gbmV3T3B0aW9ucykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLl91dGlscy5zY2hlbWFzW2tleV07XG4gICAgICBjb25zdCB2YWx1ZSA9IG5ld09wdGlvbnNba2V5XTtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gc2NoZW1hLnBvc3Rwcm9jZXNzKHZhbHVlLCB0aGlzLl91dGlscyk7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IFZBTFVFX1VOQ0hBTkdFRCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2FwcGx5VmFsaWRhdGlvbihuZXdWYWx1ZSwga2V5LCBzY2hlbWEpO1xuICAgICAgbmV3T3B0aW9uc1trZXldID0gbmV3VmFsdWU7XG4gICAgfVxuICAgIHRoaXMuX2FwcGx5UG9zdHByb2Nlc3MobmV3T3B0aW9ucyk7XG4gICAgdGhpcy5fYXBwbHlSZXF1aXJlZENoZWNrKG5ld09wdGlvbnMpO1xuICAgIHJldHVybiBuZXdPcHRpb25zO1xuICB9XG4gIF9hcHBseU5vcm1hbGl6YXRpb24ob3B0aW9uczgsIG5ld09wdGlvbnMpIHtcbiAgICBjb25zdCB0cmFuc2ZlcnJlZE9wdGlvbnNBcnJheSA9IFtdO1xuICAgIGNvbnN0IHsga25vd25LZXlzLCB1bmtub3duS2V5cyB9ID0gdGhpcy5fcGFydGl0aW9uT3B0aW9uS2V5cyhvcHRpb25zOCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga25vd25LZXlzKSB7XG4gICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLl91dGlscy5zY2hlbWFzW2tleV07XG4gICAgICBjb25zdCB2YWx1ZSA9IHNjaGVtYS5wcmVwcm9jZXNzKG9wdGlvbnM4W2tleV0sIHRoaXMuX3V0aWxzKTtcbiAgICAgIHRoaXMuX2FwcGx5VmFsaWRhdGlvbih2YWx1ZSwga2V5LCBzY2hlbWEpO1xuICAgICAgY29uc3QgYXBwZW5kVHJhbnNmZXJyZWRPcHRpb25zID0gKHsgZnJvbSwgdG8gfSkgPT4ge1xuICAgICAgICB0cmFuc2ZlcnJlZE9wdGlvbnNBcnJheS5wdXNoKHR5cGVvZiB0byA9PT0gXCJzdHJpbmdcIiA/IHsgW3RvXTogZnJvbSB9IDogeyBbdG8ua2V5XTogdG8udmFsdWUgfSk7XG4gICAgICB9O1xuICAgICAgY29uc3Qgd2FybkRlcHJlY2F0ZWQgPSAoeyB2YWx1ZTogY3VycmVudFZhbHVlLCByZWRpcmVjdFRvIH0pID0+IHtcbiAgICAgICAgY29uc3QgZGVwcmVjYXRlZFJlc3VsdCA9IG5vcm1hbGl6ZURlcHJlY2F0ZWRSZXN1bHQoXG4gICAgICAgICAgc2NoZW1hLmRlcHJlY2F0ZWQoY3VycmVudFZhbHVlLCB0aGlzLl91dGlscyksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgLyogZG9Ob3ROb3JtYWxpemVUcnVlICovXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGVwcmVjYXRlZFJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlcHJlY2F0ZWRSZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuX2hhc0RlcHJlY2F0aW9uV2FybmVkKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3V0aWxzLmxvZ2dlci53YXJuKHRoaXMuX2RlcHJlY2F0ZWRIYW5kbGVyKGtleSwgcmVkaXJlY3RUbywgdGhpcy5fdXRpbHMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCB7IHZhbHVlOiBkZXByZWNhdGVkVmFsdWUgfSBvZiBkZXByZWNhdGVkUmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zdCBwYWlyID0geyBrZXksIHZhbHVlOiBkZXByZWNhdGVkVmFsdWUgfTtcbiAgICAgICAgICAgIGlmICghdGhpcy5faGFzRGVwcmVjYXRpb25XYXJuZWQocGFpcikpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RUb1BhaXIgPSB0eXBlb2YgcmVkaXJlY3RUbyA9PT0gXCJzdHJpbmdcIiA/IHsga2V5OiByZWRpcmVjdFRvLCB2YWx1ZTogZGVwcmVjYXRlZFZhbHVlIH0gOiByZWRpcmVjdFRvO1xuICAgICAgICAgICAgICB0aGlzLl91dGlscy5sb2dnZXIud2Fybih0aGlzLl9kZXByZWNhdGVkSGFuZGxlcihwYWlyLCByZWRpcmVjdFRvUGFpciwgdGhpcy5fdXRpbHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBmb3J3YXJkUmVzdWx0ID0gbm9ybWFsaXplRm9yd2FyZFJlc3VsdChzY2hlbWEuZm9yd2FyZCh2YWx1ZSwgdGhpcy5fdXRpbHMpLCB2YWx1ZSk7XG4gICAgICBmb3J3YXJkUmVzdWx0LmZvckVhY2goYXBwZW5kVHJhbnNmZXJyZWRPcHRpb25zKTtcbiAgICAgIGNvbnN0IHJlZGlyZWN0UmVzdWx0ID0gbm9ybWFsaXplUmVkaXJlY3RSZXN1bHQoc2NoZW1hLnJlZGlyZWN0KHZhbHVlLCB0aGlzLl91dGlscyksIHZhbHVlKTtcbiAgICAgIHJlZGlyZWN0UmVzdWx0LnJlZGlyZWN0LmZvckVhY2goYXBwZW5kVHJhbnNmZXJyZWRPcHRpb25zKTtcbiAgICAgIGlmIChcInJlbWFpblwiIGluIHJlZGlyZWN0UmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ1ZhbHVlID0gcmVkaXJlY3RSZXN1bHQucmVtYWluO1xuICAgICAgICBuZXdPcHRpb25zW2tleV0gPSBrZXkgaW4gbmV3T3B0aW9ucyA/IHNjaGVtYS5vdmVybGFwKG5ld09wdGlvbnNba2V5XSwgcmVtYWluaW5nVmFsdWUsIHRoaXMuX3V0aWxzKSA6IHJlbWFpbmluZ1ZhbHVlO1xuICAgICAgICB3YXJuRGVwcmVjYXRlZCh7IHZhbHVlOiByZW1haW5pbmdWYWx1ZSB9KTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgeyBmcm9tLCB0byB9IG9mIHJlZGlyZWN0UmVzdWx0LnJlZGlyZWN0KSB7XG4gICAgICAgIHdhcm5EZXByZWNhdGVkKHsgdmFsdWU6IGZyb20sIHJlZGlyZWN0VG86IHRvIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBvZiB1bmtub3duS2V5cykge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zOFtrZXldO1xuICAgICAgdGhpcy5fYXBwbHlVbmtub3duSGFuZGxlcihrZXksIHZhbHVlLCBuZXdPcHRpb25zLCAoa25vd25SZXN1bHRLZXksIGtub3duUmVzdWx0VmFsdWUpID0+IHtcbiAgICAgICAgdHJhbnNmZXJyZWRPcHRpb25zQXJyYXkucHVzaCh7IFtrbm93blJlc3VsdEtleV06IGtub3duUmVzdWx0VmFsdWUgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZmVycmVkT3B0aW9uc0FycmF5O1xuICB9XG4gIF9hcHBseVJlcXVpcmVkQ2hlY2sob3B0aW9uczgpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLl91dGlscy5zY2hlbWFzKSkge1xuICAgICAgaWYgKHRoaXMuX2lkZW50aWZ5TWlzc2luZyhrZXksIG9wdGlvbnM4KSkge1xuICAgICAgICBpZiAodGhpcy5faWRlbnRpZnlSZXF1aXJlZChrZXkpKSB7XG4gICAgICAgICAgdGhyb3cgdGhpcy5faW52YWxpZEhhbmRsZXIoa2V5LCBWQUxVRV9OT1RfRVhJU1QsIHRoaXMuX3V0aWxzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBfcGFydGl0aW9uT3B0aW9uS2V5cyhvcHRpb25zOCkge1xuICAgIGNvbnN0IFtrbm93bktleXMsIHVua25vd25LZXlzXSA9IHBhcnRpdGlvbihPYmplY3Qua2V5cyhvcHRpb25zOCkuZmlsdGVyKChrZXkpID0+ICF0aGlzLl9pZGVudGlmeU1pc3Npbmcoa2V5LCBvcHRpb25zOCkpLCAoa2V5KSA9PiBrZXkgaW4gdGhpcy5fdXRpbHMuc2NoZW1hcyk7XG4gICAgcmV0dXJuIHsga25vd25LZXlzLCB1bmtub3duS2V5cyB9O1xuICB9XG4gIF9hcHBseVZhbGlkYXRpb24odmFsdWUsIGtleSwgc2NoZW1hKSB7XG4gICAgY29uc3QgdmFsaWRhdGVSZXN1bHQgPSBub3JtYWxpemVWYWxpZGF0ZVJlc3VsdChzY2hlbWEudmFsaWRhdGUodmFsdWUsIHRoaXMuX3V0aWxzKSwgdmFsdWUpO1xuICAgIGlmICh2YWxpZGF0ZVJlc3VsdCAhPT0gdHJ1ZSkge1xuICAgICAgdGhyb3cgdGhpcy5faW52YWxpZEhhbmRsZXIoa2V5LCB2YWxpZGF0ZVJlc3VsdC52YWx1ZSwgdGhpcy5fdXRpbHMpO1xuICAgIH1cbiAgfVxuICBfYXBwbHlVbmtub3duSGFuZGxlcihrZXksIHZhbHVlLCBuZXdPcHRpb25zLCBrbm93blJlc3VsdEhhbmRsZXIpIHtcbiAgICBjb25zdCB1bmtub3duUmVzdWx0ID0gdGhpcy5fdW5rbm93bkhhbmRsZXIoa2V5LCB2YWx1ZSwgdGhpcy5fdXRpbHMpO1xuICAgIGlmICghdW5rbm93blJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJlc3VsdEtleSBvZiBPYmplY3Qua2V5cyh1bmtub3duUmVzdWx0KSkge1xuICAgICAgaWYgKHRoaXMuX2lkZW50aWZ5TWlzc2luZyhyZXN1bHRLZXksIHVua25vd25SZXN1bHQpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0VmFsdWUgPSB1bmtub3duUmVzdWx0W3Jlc3VsdEtleV07XG4gICAgICBpZiAocmVzdWx0S2V5IGluIHRoaXMuX3V0aWxzLnNjaGVtYXMpIHtcbiAgICAgICAga25vd25SZXN1bHRIYW5kbGVyKHJlc3VsdEtleSwgcmVzdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T3B0aW9uc1tyZXN1bHRLZXldID0gcmVzdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIF9hcHBseVBvc3Rwcm9jZXNzKG9wdGlvbnM4KSB7XG4gICAgY29uc3QgcG9zdHByb2Nlc3NlZCA9IHRoaXMuX3Bvc3Rwcm9jZXNzKG9wdGlvbnM4LCB0aGlzLl91dGlscyk7XG4gICAgaWYgKHBvc3Rwcm9jZXNzZWQgPT09IFZBTFVFX1VOQ0hBTkdFRCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG9zdHByb2Nlc3NlZC5kZWxldGUpIHtcbiAgICAgIGZvciAoY29uc3QgZGVsZXRlS2V5IG9mIHBvc3Rwcm9jZXNzZWQuZGVsZXRlKSB7XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zOFtkZWxldGVLZXldO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocG9zdHByb2Nlc3NlZC5vdmVycmlkZSkge1xuICAgICAgY29uc3QgeyBrbm93bktleXMsIHVua25vd25LZXlzIH0gPSB0aGlzLl9wYXJ0aXRpb25PcHRpb25LZXlzKHBvc3Rwcm9jZXNzZWQub3ZlcnJpZGUpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga25vd25LZXlzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcG9zdHByb2Nlc3NlZC5vdmVycmlkZVtrZXldO1xuICAgICAgICB0aGlzLl9hcHBseVZhbGlkYXRpb24odmFsdWUsIGtleSwgdGhpcy5fdXRpbHMuc2NoZW1hc1trZXldKTtcbiAgICAgICAgb3B0aW9uczhba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgdW5rbm93bktleXMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwb3N0cHJvY2Vzc2VkLm92ZXJyaWRlW2tleV07XG4gICAgICAgIHRoaXMuX2FwcGx5VW5rbm93bkhhbmRsZXIoa2V5LCB2YWx1ZSwgb3B0aW9uczgsIChrbm93blJlc3VsdEtleSwga25vd25SZXN1bHRWYWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IHRoaXMuX3V0aWxzLnNjaGVtYXNba25vd25SZXN1bHRLZXldO1xuICAgICAgICAgIHRoaXMuX2FwcGx5VmFsaWRhdGlvbihrbm93blJlc3VsdFZhbHVlLCBrbm93blJlc3VsdEtleSwgc2NoZW1hKTtcbiAgICAgICAgICBvcHRpb25zOFtrbm93blJlc3VsdEtleV0gPSBrbm93blJlc3VsdFZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8vIHNyYy9pbmRleC5qc1xudmFyIGltcG9ydF9mYXN0X2dsb2IgPSBfX3RvRVNNKHJlcXVpcmVfb3V0NCgpLCAxKTtcblxuLy8gc2NyaXB0cy9idWlsZC9zaGltcy9zdHJpbmctcmVwbGFjZS1hbGwuanNcbnZhciBzdHJpbmdSZXBsYWNlQWxsMiA9IChpc09wdGlvbmFsT2JqZWN0LCBvcmlnaW5hbCwgcGF0dGVybiwgcmVwbGFjZW1lbnQpID0+IHtcbiAgaWYgKGlzT3B0aW9uYWxPYmplY3QgJiYgKG9yaWdpbmFsID09PSB2b2lkIDAgfHwgb3JpZ2luYWwgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChvcmlnaW5hbC5yZXBsYWNlQWxsKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsLnJlcGxhY2VBbGwocGF0dGVybiwgcmVwbGFjZW1lbnQpO1xuICB9XG4gIGlmIChwYXR0ZXJuLmdsb2JhbCkge1xuICAgIHJldHVybiBvcmlnaW5hbC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KTtcbiAgfVxuICByZXR1cm4gb3JpZ2luYWwuc3BsaXQocGF0dGVybikuam9pbihyZXBsYWNlbWVudCk7XG59O1xudmFyIHN0cmluZ19yZXBsYWNlX2FsbF9kZWZhdWx0ID0gc3RyaW5nUmVwbGFjZUFsbDI7XG5cbi8vIHNyYy9tYWluL2NvcmUuanNcbnZhciBpbXBvcnRfZGlmZiA9IF9fdG9FU00ocmVxdWlyZV9hcnJheTIoKSwgMSk7XG5cbi8vIHNyYy9kb2N1bWVudC9jb25zdGFudHMuanNcbnZhciBET0NfVFlQRV9TVFJJTkcgPSBcInN0cmluZ1wiO1xudmFyIERPQ19UWVBFX0FSUkFZID0gXCJhcnJheVwiO1xudmFyIERPQ19UWVBFX0NVUlNPUiA9IFwiY3Vyc29yXCI7XG52YXIgRE9DX1RZUEVfSU5ERU5UID0gXCJpbmRlbnRcIjtcbnZhciBET0NfVFlQRV9BTElHTiA9IFwiYWxpZ25cIjtcbnZhciBET0NfVFlQRV9UUklNID0gXCJ0cmltXCI7XG52YXIgRE9DX1RZUEVfR1JPVVAgPSBcImdyb3VwXCI7XG52YXIgRE9DX1RZUEVfRklMTCA9IFwiZmlsbFwiO1xudmFyIERPQ19UWVBFX0lGX0JSRUFLID0gXCJpZi1icmVha1wiO1xudmFyIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSyA9IFwiaW5kZW50LWlmLWJyZWFrXCI7XG52YXIgRE9DX1RZUEVfTElORV9TVUZGSVggPSBcImxpbmUtc3VmZml4XCI7XG52YXIgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlkgPSBcImxpbmUtc3VmZml4LWJvdW5kYXJ5XCI7XG52YXIgRE9DX1RZUEVfTElORSA9IFwibGluZVwiO1xudmFyIERPQ19UWVBFX0xBQkVMID0gXCJsYWJlbFwiO1xudmFyIERPQ19UWVBFX0JSRUFLX1BBUkVOVCA9IFwiYnJlYWstcGFyZW50XCI7XG52YXIgVkFMSURfT0JKRUNUX0RPQ19UWVBFUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgRE9DX1RZUEVfQ1VSU09SLFxuICBET0NfVFlQRV9JTkRFTlQsXG4gIERPQ19UWVBFX0FMSUdOLFxuICBET0NfVFlQRV9UUklNLFxuICBET0NfVFlQRV9HUk9VUCxcbiAgRE9DX1RZUEVfRklMTCxcbiAgRE9DX1RZUEVfSUZfQlJFQUssXG4gIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSyxcbiAgRE9DX1RZUEVfTElORV9TVUZGSVgsXG4gIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZLFxuICBET0NfVFlQRV9MSU5FLFxuICBET0NfVFlQRV9MQUJFTCxcbiAgRE9DX1RZUEVfQlJFQUtfUEFSRU5UXG5dKTtcblxuLy8gc3JjL2RvY3VtZW50L3V0aWxzL2dldC1kb2MtdHlwZS5qc1xuZnVuY3Rpb24gZ2V0RG9jVHlwZShkb2MyKSB7XG4gIGlmICh0eXBlb2YgZG9jMiA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBET0NfVFlQRV9TVFJJTkc7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoZG9jMikpIHtcbiAgICByZXR1cm4gRE9DX1RZUEVfQVJSQVk7XG4gIH1cbiAgaWYgKCFkb2MyKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHsgdHlwZSB9ID0gZG9jMjtcbiAgaWYgKFZBTElEX09CSkVDVF9ET0NfVFlQRVMuaGFzKHR5cGUpKSB7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cbnZhciBnZXRfZG9jX3R5cGVfZGVmYXVsdCA9IGdldERvY1R5cGU7XG5cbi8vIHNyYy9kb2N1bWVudC9pbnZhbGlkLWRvYy1lcnJvci5qc1xudmFyIGRpc2p1bmN0aW9uTGlzdEZvcm1hdCA9IChsaXN0KSA9PiBuZXcgSW50bC5MaXN0Rm9ybWF0KFwiZW4tVVNcIiwgeyB0eXBlOiBcImRpc2p1bmN0aW9uXCIgfSkuZm9ybWF0KGxpc3QpO1xuZnVuY3Rpb24gZ2V0RG9jRXJyb3JNZXNzYWdlKGRvYzIpIHtcbiAgY29uc3QgdHlwZSA9IGRvYzIgPT09IG51bGwgPyBcIm51bGxcIiA6IHR5cGVvZiBkb2MyO1xuICBpZiAodHlwZSAhPT0gXCJzdHJpbmdcIiAmJiB0eXBlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGBVbmV4cGVjdGVkIGRvYyAnJHt0eXBlfScsIFxuRXhwZWN0ZWQgaXQgdG8gYmUgJ3N0cmluZycgb3IgJ29iamVjdCcuYDtcbiAgfVxuICBpZiAoZ2V0X2RvY190eXBlX2RlZmF1bHQoZG9jMikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb2MgaXMgdmFsaWQuXCIpO1xuICB9XG4gIGNvbnN0IG9iamVjdFR5cGUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZG9jMik7XG4gIGlmIChvYmplY3RUeXBlICE9PSBcIltvYmplY3QgT2JqZWN0XVwiKSB7XG4gICAgcmV0dXJuIGBVbmV4cGVjdGVkIGRvYyAnJHtvYmplY3RUeXBlfScuYDtcbiAgfVxuICBjb25zdCBFWFBFQ1RFRF9UWVBFX1ZBTFVFUyA9IGRpc2p1bmN0aW9uTGlzdEZvcm1hdChcbiAgICBbLi4uVkFMSURfT0JKRUNUX0RPQ19UWVBFU10ubWFwKCh0eXBlMikgPT4gYCcke3R5cGUyfSdgKVxuICApO1xuICByZXR1cm4gYFVuZXhwZWN0ZWQgZG9jLnR5cGUgJyR7ZG9jMi50eXBlfScuXG5FeHBlY3RlZCBpdCB0byBiZSAke0VYUEVDVEVEX1RZUEVfVkFMVUVTfS5gO1xufVxudmFyIEludmFsaWREb2NFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gXCJJbnZhbGlkRG9jRXJyb3JcIjtcbiAgY29uc3RydWN0b3IoZG9jMikge1xuICAgIHN1cGVyKGdldERvY0Vycm9yTWVzc2FnZShkb2MyKSk7XG4gICAgdGhpcy5kb2MgPSBkb2MyO1xuICB9XG59O1xudmFyIGludmFsaWRfZG9jX2Vycm9yX2RlZmF1bHQgPSBJbnZhbGlkRG9jRXJyb3I7XG5cbi8vIHNyYy9kb2N1bWVudC91dGlscy90cmF2ZXJzZS1kb2MuanNcbnZhciB0cmF2ZXJzZURvY09uRXhpdFN0YWNrTWFya2VyID0ge307XG5mdW5jdGlvbiB0cmF2ZXJzZURvYyhkb2MyLCBvbkVudGVyLCBvbkV4aXQsIHNob3VsZFRyYXZlcnNlQ29uZGl0aW9uYWxHcm91cHMpIHtcbiAgY29uc3QgZG9jc1N0YWNrID0gW2RvYzJdO1xuICB3aGlsZSAoZG9jc1N0YWNrLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBkb2MzID0gZG9jc1N0YWNrLnBvcCgpO1xuICAgIGlmIChkb2MzID09PSB0cmF2ZXJzZURvY09uRXhpdFN0YWNrTWFya2VyKSB7XG4gICAgICBvbkV4aXQoZG9jc1N0YWNrLnBvcCgpKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAob25FeGl0KSB7XG4gICAgICBkb2NzU3RhY2sucHVzaChkb2MzLCB0cmF2ZXJzZURvY09uRXhpdFN0YWNrTWFya2VyKTtcbiAgICB9XG4gICAgY29uc3QgZG9jVHlwZSA9IGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYzMpO1xuICAgIGlmICghZG9jVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IGludmFsaWRfZG9jX2Vycm9yX2RlZmF1bHQoZG9jMyk7XG4gICAgfVxuICAgIGlmICgob25FbnRlciA9PSBudWxsID8gdm9pZCAwIDogb25FbnRlcihkb2MzKSkgPT09IGZhbHNlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgc3dpdGNoIChkb2NUeXBlKSB7XG4gICAgICBjYXNlIERPQ19UWVBFX0FSUkFZOlxuICAgICAgY2FzZSBET0NfVFlQRV9GSUxMOiB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gZG9jVHlwZSA9PT0gRE9DX1RZUEVfQVJSQVkgPyBkb2MzIDogZG9jMy5wYXJ0cztcbiAgICAgICAgZm9yIChsZXQgaWMgPSBwYXJ0cy5sZW5ndGgsIGkgPSBpYyAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgZG9jc1N0YWNrLnB1c2gocGFydHNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9JRl9CUkVBSzpcbiAgICAgICAgZG9jc1N0YWNrLnB1c2goZG9jMy5mbGF0Q29udGVudHMsIGRvYzMuYnJlYWtDb250ZW50cyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9HUk9VUDpcbiAgICAgICAgaWYgKHNob3VsZFRyYXZlcnNlQ29uZGl0aW9uYWxHcm91cHMgJiYgZG9jMy5leHBhbmRlZFN0YXRlcykge1xuICAgICAgICAgIGZvciAobGV0IGljID0gZG9jMy5leHBhbmRlZFN0YXRlcy5sZW5ndGgsIGkgPSBpYyAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICBkb2NzU3RhY2sucHVzaChkb2MzLmV4cGFuZGVkU3RhdGVzW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jc1N0YWNrLnB1c2goZG9jMy5jb250ZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0FMSUdOOlxuICAgICAgY2FzZSBET0NfVFlQRV9JTkRFTlQ6XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSzpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTEFCRUw6XG4gICAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYOlxuICAgICAgICBkb2NzU3RhY2sucHVzaChkb2MzLmNvbnRlbnRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX1NUUklORzpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQ1VSU09SOlxuICAgICAgY2FzZSBET0NfVFlQRV9UUklNOlxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWF9CT1VOREFSWTpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORTpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQlJFQUtfUEFSRU5UOlxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBpbnZhbGlkX2RvY19lcnJvcl9kZWZhdWx0KGRvYzMpO1xuICAgIH1cbiAgfVxufVxudmFyIHRyYXZlcnNlX2RvY19kZWZhdWx0ID0gdHJhdmVyc2VEb2M7XG5cbi8vIHNyYy9kb2N1bWVudC91dGlscy9hc3NlcnQtZG9jLmpzXG52YXIgbm9vcCA9ICgpID0+IHtcbn07XG52YXIgYXNzZXJ0RG9jID0gdHJ1ZSA/IG5vb3AgOiBmdW5jdGlvbihkb2MyKSB7XG4gIHRyYXZlcnNlX2RvY19kZWZhdWx0KGRvYzIsIChkb2MzKSA9PiB7XG4gICAgaWYgKGNoZWNrZWQuaGFzKGRvYzMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZG9jMyAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgY2hlY2tlZC5hZGQoZG9jMyk7XG4gICAgfVxuICB9KTtcbn07XG52YXIgYXNzZXJ0RG9jQXJyYXkgPSB0cnVlID8gbm9vcCA6IGZ1bmN0aW9uKGRvY3MsIG9wdGlvbmFsID0gZmFsc2UpIHtcbiAgaWYgKG9wdGlvbmFsICYmICFkb2NzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShkb2NzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIGRvYyBhcnJheS5cIik7XG4gIH1cbiAgZm9yIChjb25zdCBkb2MyIG9mIGRvY3MpIHtcbiAgICBhc3NlcnREb2MoZG9jMik7XG4gIH1cbn07XG5cbi8vIHNyYy9kb2N1bWVudC9idWlsZGVycy5qc1xuZnVuY3Rpb24gaW5kZW50KGNvbnRlbnRzKSB7XG4gIGFzc2VydERvYyhjb250ZW50cyk7XG4gIHJldHVybiB7IHR5cGU6IERPQ19UWVBFX0lOREVOVCwgY29udGVudHMgfTtcbn1cbmZ1bmN0aW9uIGFsaWduKHdpZHRoT3JTdHJpbmcsIGNvbnRlbnRzKSB7XG4gIGFzc2VydERvYyhjb250ZW50cyk7XG4gIHJldHVybiB7IHR5cGU6IERPQ19UWVBFX0FMSUdOLCBjb250ZW50cywgbjogd2lkdGhPclN0cmluZyB9O1xufVxuZnVuY3Rpb24gZmlsbChwYXJ0cykge1xuICBhc3NlcnREb2NBcnJheShwYXJ0cyk7XG4gIHJldHVybiB7IHR5cGU6IERPQ19UWVBFX0ZJTEwsIHBhcnRzIH07XG59XG5mdW5jdGlvbiBsaW5lU3VmZml4KGNvbnRlbnRzKSB7XG4gIGFzc2VydERvYyhjb250ZW50cyk7XG4gIHJldHVybiB7IHR5cGU6IERPQ19UWVBFX0xJTkVfU1VGRklYLCBjb250ZW50cyB9O1xufVxudmFyIGJyZWFrUGFyZW50ID0geyB0eXBlOiBET0NfVFlQRV9CUkVBS19QQVJFTlQgfTtcbnZhciBoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudCA9IHsgdHlwZTogRE9DX1RZUEVfTElORSwgaGFyZDogdHJ1ZSB9O1xudmFyIGxpbmUgPSB7IHR5cGU6IERPQ19UWVBFX0xJTkUgfTtcbnZhciBoYXJkbGluZSA9IFtoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudCwgYnJlYWtQYXJlbnRdO1xudmFyIGN1cnNvciA9IHsgdHlwZTogRE9DX1RZUEVfQ1VSU09SIH07XG5mdW5jdGlvbiBhZGRBbGlnbm1lbnRUb0RvYyhkb2MyLCBzaXplLCB0YWJXaWR0aCkge1xuICBhc3NlcnREb2MoZG9jMik7XG4gIGxldCBhbGlnbmVkID0gZG9jMjtcbiAgaWYgKHNpemUgPiAwKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmZsb29yKHNpemUgLyB0YWJXaWR0aCk7ICsraSkge1xuICAgICAgYWxpZ25lZCA9IGluZGVudChhbGlnbmVkKTtcbiAgICB9XG4gICAgYWxpZ25lZCA9IGFsaWduKHNpemUgJSB0YWJXaWR0aCwgYWxpZ25lZCk7XG4gICAgYWxpZ25lZCA9IGFsaWduKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSwgYWxpZ25lZCk7XG4gIH1cbiAgcmV0dXJuIGFsaWduZWQ7XG59XG5cbi8vIHNjcmlwdHMvYnVpbGQvc2hpbXMvYXQuanNcbnZhciBhdCA9IChpc09wdGlvbmFsT2JqZWN0LCBvYmplY3QsIGluZGV4KSA9PiB7XG4gIGlmIChpc09wdGlvbmFsT2JqZWN0ICYmIChvYmplY3QgPT09IHZvaWQgMCB8fCBvYmplY3QgPT09IG51bGwpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkgfHwgdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBvYmplY3RbaW5kZXggPCAwID8gb2JqZWN0Lmxlbmd0aCArIGluZGV4IDogaW5kZXhdO1xuICB9XG4gIHJldHVybiBvYmplY3QuYXQoaW5kZXgpO1xufTtcbnZhciBhdF9kZWZhdWx0ID0gYXQ7XG5cbi8vIHNyYy9jb21tb24vZW5kLW9mLWxpbmUuanNcbmZ1bmN0aW9uIGd1ZXNzRW5kT2ZMaW5lKHRleHQpIHtcbiAgY29uc3QgaW5kZXggPSB0ZXh0LmluZGV4T2YoXCJcXHJcIik7XG4gIGlmIChpbmRleCA+PSAwKSB7XG4gICAgcmV0dXJuIHRleHQuY2hhckF0KGluZGV4ICsgMSkgPT09IFwiXFxuXCIgPyBcImNybGZcIiA6IFwiY3JcIjtcbiAgfVxuICByZXR1cm4gXCJsZlwiO1xufVxuZnVuY3Rpb24gY29udmVydEVuZE9mTGluZVRvQ2hhcnModmFsdWUpIHtcbiAgc3dpdGNoICh2YWx1ZSkge1xuICAgIGNhc2UgXCJjclwiOlxuICAgICAgcmV0dXJuIFwiXFxyXCI7XG4gICAgY2FzZSBcImNybGZcIjpcbiAgICAgIHJldHVybiBcIlxcclxcblwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJcXG5cIjtcbiAgfVxufVxuZnVuY3Rpb24gY291bnRFbmRPZkxpbmVDaGFycyh0ZXh0LCBlb2wpIHtcbiAgbGV0IHJlZ2V4O1xuICBzd2l0Y2ggKGVvbCkge1xuICAgIGNhc2UgXCJcXG5cIjpcbiAgICAgIHJlZ2V4ID0gL1xcbi9nO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcIlxcclwiOlxuICAgICAgcmVnZXggPSAvXFxyL2c7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiXFxyXFxuXCI6XG4gICAgICByZWdleCA9IC9cXHJcXG4vZztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgXCJlb2xcIiAke0pTT04uc3RyaW5naWZ5KGVvbCl9LmApO1xuICB9XG4gIGNvbnN0IGVuZE9mTGluZXMgPSB0ZXh0Lm1hdGNoKHJlZ2V4KTtcbiAgcmV0dXJuIGVuZE9mTGluZXMgPyBlbmRPZkxpbmVzLmxlbmd0aCA6IDA7XG59XG5mdW5jdGlvbiBub3JtYWxpemVFbmRPZkxpbmUodGV4dCkge1xuICByZXR1cm4gc3RyaW5nX3JlcGxhY2VfYWxsX2RlZmF1bHQoXG4gICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgZmFsc2UsXG4gICAgdGV4dCxcbiAgICAvXFxyXFxuPy9nLFxuICAgIFwiXFxuXCJcbiAgKTtcbn1cblxuLy8gbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4Lm1qc1xudmFyIGVtb2ppX3JlZ2V4X2RlZmF1bHQgPSAoKSA9PiB7XG4gIHJldHVybiAvWyMqMC05XVxcdUZFMEY/XFx1MjBFM3xbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMUFcXHUyMzFCXFx1MjMyOFxcdTIzQ0ZcXHUyM0VELVxcdTIzRUZcXHUyM0YxXFx1MjNGMlxcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQlxcdTI1RkNcXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkFBXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM4XFx1MjZDRlxcdTI2RDFcXHUyNkQzXFx1MjZFOVxcdTI2RjAtXFx1MjZGNVxcdTI2RjdcXHUyNkY4XFx1MjZGQVxcdTI3MDJcXHUyNzA4XFx1MjcwOVxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MzNcXHUyNzM0XFx1Mjc0NFxcdTI3NDdcXHUyNzU3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1NVxcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldXFx1RkUwRj98W1xcdTI2MURcXHUyNzBDXFx1MjcwRF0oPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyNzBBXFx1MjcwQl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjNFOS1cXHUyM0VDXFx1MjNGMFxcdTIzRjNcXHUyNUZEXFx1MjY5M1xcdTI2QTFcXHUyNkFCXFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RkRcXHUyNzA1XFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjUwXXxcXHUyNkY5KD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xcXHUyNzY0XFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1RDgzRFxcdUREMjV8XFx1RDgzRVxcdURFNzkpKT98XFx1RDgzQyg/OltcXHVEQzA0XFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddXFx1RkUwRj98W1xcdURGODVcXHVERkMyXFx1REZDN10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REZDM1xcdURGQzRcXHVERkNBXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERkNCXFx1REZDQ10oPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RERFNlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl18XFx1RERFN1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUZcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREU4XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjVcXHVEREY3XFx1RERGQS1cXHVEREZGXXxcXHVEREU5XFx1RDgzQ1tcXHVEREVBXFx1RERFQ1xcdURERUZcXHVEREYwXFx1RERGMlxcdURERjRcXHVEREZGXXxcXHVEREVBXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV18XFx1RERFQlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XXxcXHVEREVDXFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXXxcXHVEREVEXFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdfFxcdURERUVcXHVEODNDW1xcdURERTgtXFx1RERFQVxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOV18XFx1RERFRlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV18XFx1RERGMFxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERjFcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV18XFx1RERGMlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl18XFx1RERGM1xcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBLVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjRcXHVEREY1XFx1RERGN1xcdURERkFcXHVEREZGXXxcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RERGNVxcdUQ4M0NbXFx1RERFNlxcdURERUEtXFx1RERFRFxcdURERjAtXFx1RERGM1xcdURERjctXFx1RERGOVxcdURERkNcXHVEREZFXXxcXHVEREY2XFx1RDgzQ1xcdURERTZ8XFx1RERGN1xcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdfFxcdURERjhcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdfFxcdURERjlcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRFxcdURERUYtXFx1RERGNFxcdURERjdcXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZGXXxcXHVEREZBXFx1RDgzQ1tcXHVEREU2XFx1RERFQ1xcdURERjJcXHVEREYzXFx1RERGOFxcdURERkVcXHVEREZGXXxcXHVEREZCXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXXxcXHVEREZDXFx1RDgzQ1tcXHVEREVCXFx1RERGOF18XFx1RERGRFxcdUQ4M0NcXHVEREYwfFxcdURERkVcXHVEODNDW1xcdURERUFcXHVEREY5XXxcXHVEREZGXFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdfFxcdURGRjNcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHUyNkE3XFx1RkUwRj98XFx1RDgzQ1xcdURGMDgpKT98XFx1REZGNCg/OlxcdTIwMERcXHUyNjIwXFx1RkUwRj98XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2MlxcdURCNDAoPzpcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQzczXFx1REI0MFxcdURDNjNcXHVEQjQwXFx1REM3NHxcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3MylcXHVEQjQwXFx1REM3Rik/KXxcXHVEODNEKD86W1xcdURDMDhcXHVEQzI2XSg/OlxcdTIwMERcXHUyQjFCKT98W1xcdURDM0ZcXHVEQ0ZEXFx1REQ0OVxcdURENEFcXHVERDZGXFx1REQ3MFxcdURENzNcXHVERDc2LVxcdURENzlcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkFcXHVERUNCXFx1REVDRC1cXHVERUNGXFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRjBcXHVERUYzXVxcdUZFMEY/fFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjZcXHVEQzY3XFx1REM2Qi1cXHVEQzZEXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDc0XFx1REQ5MF0oPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDMjVcXHVEQzI3LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVEQy1cXHVERURGXFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJcXHVERkYwXXxcXHVEQzE1KD86XFx1MjAwRFxcdUQ4M0VcXHVEREJBKT98XFx1REMzQig/OlxcdTIwMERcXHUyNzQ0XFx1RkUwRj8pP3xcXHVEQzQxXFx1RkUwRj8oPzpcXHUyMDBEXFx1RDgzRFxcdURERThcXHVGRTBGPyk/fFxcdURDNjgoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OHxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPyl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSkpKT8pKT98XFx1REM2OSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9bXFx1REM2OFxcdURDNjldfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0QoPzpbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/fFxcdURDNjlcXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pKXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkMtXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNkYoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REQ3NSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REUyRSg/OlxcdTIwMERcXHVEODNEXFx1RENBOCk/fFxcdURFMzUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQUIpP3xcXHVERTM2KD86XFx1MjAwRFxcdUQ4M0NcXHVERjJCXFx1RkUwRj8pPyl8XFx1RDgzRSg/OltcXHVERDBDXFx1REQwRlxcdUREMTgtXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XFx1REVDMy1cXHVERUM1XFx1REVGMFxcdURFRjItXFx1REVGOF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RERERVxcdUREREZdKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFtcXHVERDBEXFx1REQwRVxcdUREMTAtXFx1REQxN1xcdUREMjAtXFx1REQyNVxcdUREMjctXFx1REQyRlxcdUREM0FcXHVERDNGLVxcdURENDVcXHVERDQ3LVxcdURENzZcXHVERDc4LVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQ1xcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFN0NcXHVERTgwLVxcdURFODhcXHVERTkwLVxcdURFQkRcXHVERUJGLVxcdURFQzJcXHVERUNFLVxcdURFREJcXHVERUUwLVxcdURFRThdfFxcdUREM0MoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/fFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFxcdURERDEoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkQoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT8pKT98XFx1REVGMSg/OlxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKT98XFx1REZGQyg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pP3xcXHVERkZEKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSk/fFxcdURGRkUoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKT98XFx1REZGRig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSk/KSk/KS9nO1xufTtcblxuLy8gbm9kZV9tb2R1bGVzL2Vhc3Rhc2lhbndpZHRoL2Vhc3Rhc2lhbndpZHRoLmpzXG52YXIgZWFzdGFzaWFud2lkdGhfZGVmYXVsdCA9IHtcbiAgZWFzdEFzaWFuV2lkdGgoY2hhcmFjdGVyKSB7XG4gICAgdmFyIHggPSBjaGFyYWN0ZXIuY2hhckNvZGVBdCgwKTtcbiAgICB2YXIgeSA9IGNoYXJhY3Rlci5sZW5ndGggPT0gMiA/IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDEpIDogMDtcbiAgICB2YXIgY29kZVBvaW50ID0geDtcbiAgICBpZiAoNTUyOTYgPD0geCAmJiB4IDw9IDU2MzE5ICYmIDU2MzIwIDw9IHkgJiYgeSA8PSA1NzM0Mykge1xuICAgICAgeCAmPSAxMDIzO1xuICAgICAgeSAmPSAxMDIzO1xuICAgICAgY29kZVBvaW50ID0geCA8PCAxMCB8IHk7XG4gICAgICBjb2RlUG9pbnQgKz0gNjU1MzY7XG4gICAgfVxuICAgIGlmICgxMjI4OCA9PSBjb2RlUG9pbnQgfHwgNjUyODEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA2NTM3NiB8fCA2NTUwNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDY1NTEwKSB7XG4gICAgICByZXR1cm4gXCJGXCI7XG4gICAgfVxuICAgIGlmICg0MzUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNDQ0NyB8fCA0NTE1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNDUxOSB8fCA0NjAyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNDYwNyB8fCA5MDAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gOTAwMiB8fCAxMTkwNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDExOTI5IHx8IDExOTMxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTIwMTkgfHwgMTIwMzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjI0NSB8fCAxMjI3MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyMjgzIHx8IDEyMjg5IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTIzNTAgfHwgMTIzNTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjQzOCB8fCAxMjQ0MSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNTQzIHx8IDEyNTQ5IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI1ODkgfHwgMTI1OTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjY4NiB8fCAxMjY4OCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNzMwIHx8IDEyNzM2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI3NzEgfHwgMTI3ODQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjgzMCB8fCAxMjgzMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyODcxIHx8IDEyODgwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTMwNTQgfHwgMTMwNTYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxOTkwMyB8fCAxOTk2OCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDQyMTI0IHx8IDQyMTI4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNDIxODIgfHwgNDMzNjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA0MzM4OCB8fCA0NDAzMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDU1MjAzIHx8IDU1MjE2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNTUyMzggfHwgNTUyNDMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA1NTI5MSB8fCA2Mzc0NCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDY0MjU1IHx8IDY1MDQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNjUwNDkgfHwgNjUwNzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA2NTEwNiB8fCA2NTEwOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDY1MTI2IHx8IDY1MTI4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNjUxMzEgfHwgMTEwNTkyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTEwNTkzIHx8IDEyNzQ4OCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNzQ5MCB8fCAxMjc1MDQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjc1NDYgfHwgMTI3NTUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI3NTYwIHx8IDEyNzU2OCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNzU2OSB8fCAxMzEwNzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxOTQzNjcgfHwgMTc3OTg0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTk2NjA1IHx8IDE5NjYwOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDI2MjE0MSkge1xuICAgICAgcmV0dXJuIFwiV1wiO1xuICAgIH1cbiAgICByZXR1cm4gXCJOXCI7XG4gIH1cbn07XG5cbi8vIHNyYy91dGlscy9nZXQtc3RyaW5nLXdpZHRoLmpzXG52YXIgbm90QXNjaWlSZWdleCA9IC9bXlxceDIwLVxceDdGXS87XG5mdW5jdGlvbiBnZXRTdHJpbmdXaWR0aCh0ZXh0KSB7XG4gIGlmICghdGV4dCkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGlmICghbm90QXNjaWlSZWdleC50ZXN0KHRleHQpKSB7XG4gICAgcmV0dXJuIHRleHQubGVuZ3RoO1xuICB9XG4gIHRleHQgPSB0ZXh0LnJlcGxhY2UoZW1vamlfcmVnZXhfZGVmYXVsdCgpLCBcIiAgXCIpO1xuICBsZXQgd2lkdGggPSAwO1xuICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiB0ZXh0KSB7XG4gICAgY29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApO1xuICAgIGlmIChjb2RlUG9pbnQgPD0gMzEgfHwgY29kZVBvaW50ID49IDEyNyAmJiBjb2RlUG9pbnQgPD0gMTU5KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGNvZGVQb2ludCA+PSA3NjggJiYgY29kZVBvaW50IDw9IDg3OSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IGNvZGUgPSBlYXN0YXNpYW53aWR0aF9kZWZhdWx0LmVhc3RBc2lhbldpZHRoKGNoYXJhY3Rlcik7XG4gICAgd2lkdGggKz0gY29kZSA9PT0gXCJGXCIgfHwgY29kZSA9PT0gXCJXXCIgPyAyIDogMTtcbiAgfVxuICByZXR1cm4gd2lkdGg7XG59XG52YXIgZ2V0X3N0cmluZ193aWR0aF9kZWZhdWx0ID0gZ2V0U3RyaW5nV2lkdGg7XG5cbi8vIHNyYy9kb2N1bWVudC91dGlscy5qc1xudmFyIGdldERvY1BhcnRzID0gKGRvYzIpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZG9jMikpIHtcbiAgICByZXR1cm4gZG9jMjtcbiAgfVxuICBpZiAoZG9jMi50eXBlICE9PSBET0NfVFlQRV9GSUxMKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgZG9jIHRvIGJlICdhcnJheScgb3IgJyR7RE9DX1RZUEVfRklMTH0nLmApO1xuICB9XG4gIHJldHVybiBkb2MyLnBhcnRzO1xufTtcbmZ1bmN0aW9uIG1hcERvYyhkb2MyLCBjYikge1xuICBpZiAodHlwZW9mIGRvYzIgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gY2IoZG9jMik7XG4gIH1cbiAgY29uc3QgbWFwcGVkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgcmV0dXJuIHJlYyhkb2MyKTtcbiAgZnVuY3Rpb24gcmVjKGRvYzMpIHtcbiAgICBpZiAobWFwcGVkLmhhcyhkb2MzKSkge1xuICAgICAgcmV0dXJuIG1hcHBlZC5nZXQoZG9jMyk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHByb2Nlc3M1KGRvYzMpO1xuICAgIG1hcHBlZC5zZXQoZG9jMywgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGZ1bmN0aW9uIHByb2Nlc3M1KGRvYzMpIHtcbiAgICBzd2l0Y2ggKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYzMpKSB7XG4gICAgICBjYXNlIERPQ19UWVBFX0FSUkFZOlxuICAgICAgICByZXR1cm4gY2IoZG9jMy5tYXAocmVjKSk7XG4gICAgICBjYXNlIERPQ19UWVBFX0ZJTEw6XG4gICAgICAgIHJldHVybiBjYih7XG4gICAgICAgICAgLi4uZG9jMyxcbiAgICAgICAgICBwYXJ0czogZG9jMy5wYXJ0cy5tYXAocmVjKVxuICAgICAgICB9KTtcbiAgICAgIGNhc2UgRE9DX1RZUEVfSUZfQlJFQUs6XG4gICAgICAgIHJldHVybiBjYih7XG4gICAgICAgICAgLi4uZG9jMyxcbiAgICAgICAgICBicmVha0NvbnRlbnRzOiByZWMoZG9jMy5icmVha0NvbnRlbnRzKSxcbiAgICAgICAgICBmbGF0Q29udGVudHM6IHJlYyhkb2MzLmZsYXRDb250ZW50cylcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIERPQ19UWVBFX0dST1VQOiB7XG4gICAgICAgIGxldCB7XG4gICAgICAgICAgZXhwYW5kZWRTdGF0ZXMsXG4gICAgICAgICAgY29udGVudHNcbiAgICAgICAgfSA9IGRvYzM7XG4gICAgICAgIGlmIChleHBhbmRlZFN0YXRlcykge1xuICAgICAgICAgIGV4cGFuZGVkU3RhdGVzID0gZXhwYW5kZWRTdGF0ZXMubWFwKHJlYyk7XG4gICAgICAgICAgY29udGVudHMgPSBleHBhbmRlZFN0YXRlc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZW50cyA9IHJlYyhjb250ZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNiKHtcbiAgICAgICAgICAuLi5kb2MzLFxuICAgICAgICAgIGNvbnRlbnRzLFxuICAgICAgICAgIGV4cGFuZGVkU3RhdGVzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9BTElHTjpcbiAgICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UOlxuICAgICAgY2FzZSBET0NfVFlQRV9JTkRFTlRfSUZfQlJFQUs6XG4gICAgICBjYXNlIERPQ19UWVBFX0xBQkVMOlxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWDpcbiAgICAgICAgcmV0dXJuIGNiKHtcbiAgICAgICAgICAuLi5kb2MzLFxuICAgICAgICAgIGNvbnRlbnRzOiByZWMoZG9jMy5jb250ZW50cylcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIERPQ19UWVBFX1NUUklORzpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQ1VSU09SOlxuICAgICAgY2FzZSBET0NfVFlQRV9UUklNOlxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWF9CT1VOREFSWTpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORTpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQlJFQUtfUEFSRU5UOlxuICAgICAgICByZXR1cm4gY2IoZG9jMyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGJyZWFrUGFyZW50R3JvdXAoZ3JvdXBTdGFjaykge1xuICBpZiAoZ3JvdXBTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSBhdF9kZWZhdWx0KFxuICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICBmYWxzZSxcbiAgICAgIGdyb3VwU3RhY2ssXG4gICAgICAtMVxuICAgICk7XG4gICAgaWYgKCFwYXJlbnRHcm91cC5leHBhbmRlZFN0YXRlcyAmJiAhcGFyZW50R3JvdXAuYnJlYWspIHtcbiAgICAgIHBhcmVudEdyb3VwLmJyZWFrID0gXCJwcm9wYWdhdGVkXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gcHJvcGFnYXRlQnJlYWtzKGRvYzIpIHtcbiAgY29uc3QgYWxyZWFkeVZpc2l0ZWRTZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpO1xuICBjb25zdCBncm91cFN0YWNrID0gW107XG4gIGZ1bmN0aW9uIHByb3BhZ2F0ZUJyZWFrc09uRW50ZXJGbihkb2MzKSB7XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfQlJFQUtfUEFSRU5UKSB7XG4gICAgICBicmVha1BhcmVudEdyb3VwKGdyb3VwU3RhY2spO1xuICAgIH1cbiAgICBpZiAoZG9jMy50eXBlID09PSBET0NfVFlQRV9HUk9VUCkge1xuICAgICAgZ3JvdXBTdGFjay5wdXNoKGRvYzMpO1xuICAgICAgaWYgKGFscmVhZHlWaXNpdGVkU2V0Lmhhcyhkb2MzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBhbHJlYWR5VmlzaXRlZFNldC5hZGQoZG9jMyk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHByb3BhZ2F0ZUJyZWFrc09uRXhpdEZuKGRvYzMpIHtcbiAgICBpZiAoZG9jMy50eXBlID09PSBET0NfVFlQRV9HUk9VUCkge1xuICAgICAgY29uc3QgZ3JvdXAgPSBncm91cFN0YWNrLnBvcCgpO1xuICAgICAgaWYgKGdyb3VwLmJyZWFrKSB7XG4gICAgICAgIGJyZWFrUGFyZW50R3JvdXAoZ3JvdXBTdGFjayk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRyYXZlcnNlX2RvY19kZWZhdWx0KFxuICAgIGRvYzIsXG4gICAgcHJvcGFnYXRlQnJlYWtzT25FbnRlckZuLFxuICAgIHByb3BhZ2F0ZUJyZWFrc09uRXhpdEZuLFxuICAgIC8qIHNob3VsZFRyYXZlcnNlQ29uZGl0aW9uYWxHcm91cHMgKi9cbiAgICB0cnVlXG4gICk7XG59XG5mdW5jdGlvbiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tUGFydHMocGFydHMpIHtcbiAgcGFydHMgPSBbLi4ucGFydHNdO1xuICB3aGlsZSAocGFydHMubGVuZ3RoID49IDIgJiYgYXRfZGVmYXVsdChcbiAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICBmYWxzZSxcbiAgICBwYXJ0cyxcbiAgICAtMlxuICApLnR5cGUgPT09IERPQ19UWVBFX0xJTkUgJiYgYXRfZGVmYXVsdChcbiAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICBmYWxzZSxcbiAgICBwYXJ0cyxcbiAgICAtMVxuICApLnR5cGUgPT09IERPQ19UWVBFX0JSRUFLX1BBUkVOVCkge1xuICAgIHBhcnRzLmxlbmd0aCAtPSAyO1xuICB9XG4gIGlmIChwYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgbGFzdFBhcnQgPSBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tRG9jKGF0X2RlZmF1bHQoXG4gICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgIGZhbHNlLFxuICAgICAgcGFydHMsXG4gICAgICAtMVxuICAgICkpO1xuICAgIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID0gbGFzdFBhcnQ7XG4gIH1cbiAgcmV0dXJuIHBhcnRzO1xufVxuZnVuY3Rpb24gc3RyaXBUcmFpbGluZ0hhcmRsaW5lRnJvbURvYyhkb2MyKSB7XG4gIHN3aXRjaCAoZ2V0X2RvY190eXBlX2RlZmF1bHQoZG9jMikpIHtcbiAgICBjYXNlIERPQ19UWVBFX0FMSUdOOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLOlxuICAgIGNhc2UgRE9DX1RZUEVfR1JPVVA6XG4gICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWDpcbiAgICBjYXNlIERPQ19UWVBFX0xBQkVMOiB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoZG9jMi5jb250ZW50cyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kb2MyLFxuICAgICAgICBjb250ZW50c1xuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBET0NfVFlQRV9JRl9CUkVBSzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvYzIsXG4gICAgICAgIGJyZWFrQ29udGVudHM6IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoZG9jMi5icmVha0NvbnRlbnRzKSxcbiAgICAgICAgZmxhdENvbnRlbnRzOiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tRG9jKGRvYzIuZmxhdENvbnRlbnRzKVxuICAgICAgfTtcbiAgICBjYXNlIERPQ19UWVBFX0ZJTEw6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kb2MyLFxuICAgICAgICBwYXJ0czogc3RyaXBUcmFpbGluZ0hhcmRsaW5lRnJvbVBhcnRzKGRvYzIucGFydHMpXG4gICAgICB9O1xuICAgIGNhc2UgRE9DX1RZUEVfQVJSQVk6XG4gICAgICByZXR1cm4gc3RyaXBUcmFpbGluZ0hhcmRsaW5lRnJvbVBhcnRzKGRvYzIpO1xuICAgIGNhc2UgRE9DX1RZUEVfU1RSSU5HOlxuICAgICAgcmV0dXJuIGRvYzIucmVwbGFjZSgvW1xcblxccl0qJC8sIFwiXCIpO1xuICAgIGNhc2UgRE9DX1RZUEVfQ1VSU09SOlxuICAgIGNhc2UgRE9DX1RZUEVfVFJJTTpcbiAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZOlxuICAgIGNhc2UgRE9DX1RZUEVfTElORTpcbiAgICBjYXNlIERPQ19UWVBFX0JSRUFLX1BBUkVOVDpcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MyKTtcbiAgfVxuICByZXR1cm4gZG9jMjtcbn1cbmZ1bmN0aW9uIHN0cmlwVHJhaWxpbmdIYXJkbGluZShkb2MyKSB7XG4gIHJldHVybiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tRG9jKGNsZWFuRG9jKGRvYzIpKTtcbn1cbmZ1bmN0aW9uIGNsZWFuRG9jRm4oZG9jMikge1xuICBzd2l0Y2ggKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYzIpKSB7XG4gICAgY2FzZSBET0NfVFlQRV9GSUxMOlxuICAgICAgaWYgKGRvYzIucGFydHMuZXZlcnkoKHBhcnQpID0+IHBhcnQgPT09IFwiXCIpKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBET0NfVFlQRV9HUk9VUDpcbiAgICAgIGlmICghZG9jMi5jb250ZW50cyAmJiAhZG9jMi5pZCAmJiAhZG9jMi5icmVhayAmJiAhZG9jMi5leHBhbmRlZFN0YXRlcykge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIGlmIChkb2MyLmNvbnRlbnRzLnR5cGUgPT09IERPQ19UWVBFX0dST1VQICYmIGRvYzIuY29udGVudHMuaWQgPT09IGRvYzIuaWQgJiYgZG9jMi5jb250ZW50cy5icmVhayA9PT0gZG9jMi5icmVhayAmJiBkb2MyLmNvbnRlbnRzLmV4cGFuZGVkU3RhdGVzID09PSBkb2MyLmV4cGFuZGVkU3RhdGVzKSB7XG4gICAgICAgIHJldHVybiBkb2MyLmNvbnRlbnRzO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBET0NfVFlQRV9BTElHTjpcbiAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICBjYXNlIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSzpcbiAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYOlxuICAgICAgaWYgKCFkb2MyLmNvbnRlbnRzKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBET0NfVFlQRV9JRl9CUkVBSzpcbiAgICAgIGlmICghZG9jMi5mbGF0Q29udGVudHMgJiYgIWRvYzIuYnJlYWtDb250ZW50cykge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRE9DX1RZUEVfQVJSQVk6IHtcbiAgICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgZG9jMikge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbY3VycmVudFBhcnQsIC4uLnJlc3RQYXJ0c10gPSBBcnJheS5pc0FycmF5KHBhcnQpID8gcGFydCA6IFtwYXJ0XTtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50UGFydCA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgYXRfZGVmYXVsdChcbiAgICAgICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICBwYXJ0cyxcbiAgICAgICAgICAtMVxuICAgICAgICApID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0gKz0gY3VycmVudFBhcnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFydHMucHVzaChjdXJyZW50UGFydCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFydHMucHVzaCguLi5yZXN0UGFydHMpO1xuICAgICAgfVxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHBhcnRzWzBdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnRzO1xuICAgIH1cbiAgICBjYXNlIERPQ19UWVBFX1NUUklORzpcbiAgICBjYXNlIERPQ19UWVBFX0NVUlNPUjpcbiAgICBjYXNlIERPQ19UWVBFX1RSSU06XG4gICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWF9CT1VOREFSWTpcbiAgICBjYXNlIERPQ19UWVBFX0xJTkU6XG4gICAgY2FzZSBET0NfVFlQRV9MQUJFTDpcbiAgICBjYXNlIERPQ19UWVBFX0JSRUFLX1BBUkVOVDpcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MyKTtcbiAgfVxuICByZXR1cm4gZG9jMjtcbn1cbmZ1bmN0aW9uIGNsZWFuRG9jKGRvYzIpIHtcbiAgcmV0dXJuIG1hcERvYyhkb2MyLCAoY3VycmVudERvYykgPT4gY2xlYW5Eb2NGbihjdXJyZW50RG9jKSk7XG59XG5mdW5jdGlvbiBpbmhlcml0TGFiZWwoZG9jMiwgZm4pIHtcbiAgcmV0dXJuIGRvYzIudHlwZSA9PT0gRE9DX1RZUEVfTEFCRUwgPyB7XG4gICAgLi4uZG9jMixcbiAgICBjb250ZW50czogZm4oZG9jMi5jb250ZW50cylcbiAgfSA6IGZuKGRvYzIpO1xufVxuXG4vLyBzcmMvZG9jdW1lbnQvcHJpbnRlci5qc1xudmFyIE1PREVfQlJFQUsgPSBTeW1ib2woXCJNT0RFX0JSRUFLXCIpO1xudmFyIE1PREVfRkxBVCA9IFN5bWJvbChcIk1PREVfRkxBVFwiKTtcbnZhciBDVVJTT1JfUExBQ0VIT0xERVIgPSBTeW1ib2woXCJjdXJzb3JcIik7XG5mdW5jdGlvbiByb290SW5kZW50KCkge1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiBcIlwiLFxuICAgIGxlbmd0aDogMCxcbiAgICBxdWV1ZTogW11cbiAgfTtcbn1cbmZ1bmN0aW9uIG1ha2VJbmRlbnQoaW5kLCBvcHRpb25zOCkge1xuICByZXR1cm4gZ2VuZXJhdGVJbmQoaW5kLCB7XG4gICAgdHlwZTogXCJpbmRlbnRcIlxuICB9LCBvcHRpb25zOCk7XG59XG5mdW5jdGlvbiBtYWtlQWxpZ24oaW5kZW50Miwgd2lkdGhPckRvYywgb3B0aW9uczgpIHtcbiAgaWYgKHdpZHRoT3JEb2MgPT09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkge1xuICAgIHJldHVybiBpbmRlbnQyLnJvb3QgfHwgcm9vdEluZGVudCgpO1xuICB9XG4gIGlmICh3aWR0aE9yRG9jIDwgMCkge1xuICAgIHJldHVybiBnZW5lcmF0ZUluZChpbmRlbnQyLCB7XG4gICAgICB0eXBlOiBcImRlZGVudFwiXG4gICAgfSwgb3B0aW9uczgpO1xuICB9XG4gIGlmICghd2lkdGhPckRvYykge1xuICAgIHJldHVybiBpbmRlbnQyO1xuICB9XG4gIGlmICh3aWR0aE9yRG9jLnR5cGUgPT09IFwicm9vdFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmluZGVudDIsXG4gICAgICByb290OiBpbmRlbnQyXG4gICAgfTtcbiAgfVxuICBjb25zdCBhbGlnblR5cGUgPSB0eXBlb2Ygd2lkdGhPckRvYyA9PT0gXCJzdHJpbmdcIiA/IFwic3RyaW5nQWxpZ25cIiA6IFwibnVtYmVyQWxpZ25cIjtcbiAgcmV0dXJuIGdlbmVyYXRlSW5kKGluZGVudDIsIHtcbiAgICB0eXBlOiBhbGlnblR5cGUsXG4gICAgbjogd2lkdGhPckRvY1xuICB9LCBvcHRpb25zOCk7XG59XG5mdW5jdGlvbiBnZW5lcmF0ZUluZChpbmQsIG5ld1BhcnQsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHF1ZXVlID0gbmV3UGFydC50eXBlID09PSBcImRlZGVudFwiID8gaW5kLnF1ZXVlLnNsaWNlKDAsIC0xKSA6IFsuLi5pbmQucXVldWUsIG5ld1BhcnRdO1xuICBsZXQgdmFsdWUgPSBcIlwiO1xuICBsZXQgbGVuZ3RoID0gMDtcbiAgbGV0IGxhc3RUYWJzID0gMDtcbiAgbGV0IGxhc3RTcGFjZXMgPSAwO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcXVldWUpIHtcbiAgICBzd2l0Y2ggKHBhcnQudHlwZSkge1xuICAgICAgY2FzZSBcImluZGVudFwiOlxuICAgICAgICBmbHVzaCgpO1xuICAgICAgICBpZiAob3B0aW9uczgudXNlVGFicykge1xuICAgICAgICAgIGFkZFRhYnMoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkU3BhY2VzKG9wdGlvbnM4LnRhYldpZHRoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzdHJpbmdBbGlnblwiOlxuICAgICAgICBmbHVzaCgpO1xuICAgICAgICB2YWx1ZSArPSBwYXJ0Lm47XG4gICAgICAgIGxlbmd0aCArPSBwYXJ0Lm4ubGVuZ3RoO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJudW1iZXJBbGlnblwiOlxuICAgICAgICBsYXN0VGFicyArPSAxO1xuICAgICAgICBsYXN0U3BhY2VzICs9IHBhcnQubjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAnJHtwYXJ0LnR5cGV9J2ApO1xuICAgIH1cbiAgfVxuICBmbHVzaFNwYWNlcygpO1xuICByZXR1cm4ge1xuICAgIC4uLmluZCxcbiAgICB2YWx1ZSxcbiAgICBsZW5ndGgsXG4gICAgcXVldWVcbiAgfTtcbiAgZnVuY3Rpb24gYWRkVGFicyhjb3VudCkge1xuICAgIHZhbHVlICs9IFwiXHRcIi5yZXBlYXQoY291bnQpO1xuICAgIGxlbmd0aCArPSBvcHRpb25zOC50YWJXaWR0aCAqIGNvdW50O1xuICB9XG4gIGZ1bmN0aW9uIGFkZFNwYWNlcyhjb3VudCkge1xuICAgIHZhbHVlICs9IFwiIFwiLnJlcGVhdChjb3VudCk7XG4gICAgbGVuZ3RoICs9IGNvdW50O1xuICB9XG4gIGZ1bmN0aW9uIGZsdXNoKCkge1xuICAgIGlmIChvcHRpb25zOC51c2VUYWJzKSB7XG4gICAgICBmbHVzaFRhYnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmx1c2hTcGFjZXMoKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZmx1c2hUYWJzKCkge1xuICAgIGlmIChsYXN0VGFicyA+IDApIHtcbiAgICAgIGFkZFRhYnMobGFzdFRhYnMpO1xuICAgIH1cbiAgICByZXNldExhc3QoKTtcbiAgfVxuICBmdW5jdGlvbiBmbHVzaFNwYWNlcygpIHtcbiAgICBpZiAobGFzdFNwYWNlcyA+IDApIHtcbiAgICAgIGFkZFNwYWNlcyhsYXN0U3BhY2VzKTtcbiAgICB9XG4gICAgcmVzZXRMYXN0KCk7XG4gIH1cbiAgZnVuY3Rpb24gcmVzZXRMYXN0KCkge1xuICAgIGxhc3RUYWJzID0gMDtcbiAgICBsYXN0U3BhY2VzID0gMDtcbiAgfVxufVxuZnVuY3Rpb24gdHJpbShvdXQpIHtcbiAgbGV0IHRyaW1Db3VudCA9IDA7XG4gIGxldCBjdXJzb3JDb3VudCA9IDA7XG4gIGxldCBvdXRJbmRleCA9IG91dC5sZW5ndGg7XG4gIG91dGVyOlxuICAgIHdoaWxlIChvdXRJbmRleC0tKSB7XG4gICAgICBjb25zdCBsYXN0ID0gb3V0W291dEluZGV4XTtcbiAgICAgIGlmIChsYXN0ID09PSBDVVJTT1JfUExBQ0VIT0xERVIpIHtcbiAgICAgICAgY3Vyc29yQ291bnQrKztcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHZhbHVlIGluIHRyaW06ICcke3R5cGVvZiBsYXN0fSdgKTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGNoYXJJbmRleCA9IGxhc3QubGVuZ3RoIC0gMTsgY2hhckluZGV4ID49IDA7IGNoYXJJbmRleC0tKSB7XG4gICAgICAgIGNvbnN0IGNoYXIgPSBsYXN0W2NoYXJJbmRleF07XG4gICAgICAgIGlmIChjaGFyID09PSBcIiBcIiB8fCBjaGFyID09PSBcIlx0XCIpIHtcbiAgICAgICAgICB0cmltQ291bnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvdXRbb3V0SW5kZXhdID0gbGFzdC5zbGljZSgwLCBjaGFySW5kZXggKyAxKTtcbiAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgaWYgKHRyaW1Db3VudCA+IDAgfHwgY3Vyc29yQ291bnQgPiAwKSB7XG4gICAgb3V0Lmxlbmd0aCA9IG91dEluZGV4ICsgMTtcbiAgICB3aGlsZSAoY3Vyc29yQ291bnQtLSA+IDApIHtcbiAgICAgIG91dC5wdXNoKENVUlNPUl9QTEFDRUhPTERFUik7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cmltQ291bnQ7XG59XG5mdW5jdGlvbiBmaXRzKG5leHQsIHJlc3RDb21tYW5kcywgd2lkdGgsIGhhc0xpbmVTdWZmaXgsIGdyb3VwTW9kZU1hcCwgbXVzdEJlRmxhdCkge1xuICBpZiAod2lkdGggPT09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGxldCByZXN0SWR4ID0gcmVzdENvbW1hbmRzLmxlbmd0aDtcbiAgY29uc3QgY21kcyA9IFtuZXh0XTtcbiAgY29uc3Qgb3V0ID0gW107XG4gIHdoaWxlICh3aWR0aCA+PSAwKSB7XG4gICAgaWYgKGNtZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAocmVzdElkeCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNtZHMucHVzaChyZXN0Q29tbWFuZHNbLS1yZXN0SWR4XSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3Qge1xuICAgICAgbW9kZSxcbiAgICAgIGRvYzogZG9jMlxuICAgIH0gPSBjbWRzLnBvcCgpO1xuICAgIHN3aXRjaCAoZ2V0X2RvY190eXBlX2RlZmF1bHQoZG9jMikpIHtcbiAgICAgIGNhc2UgRE9DX1RZUEVfU1RSSU5HOlxuICAgICAgICBvdXQucHVzaChkb2MyKTtcbiAgICAgICAgd2lkdGggLT0gZ2V0X3N0cmluZ193aWR0aF9kZWZhdWx0KGRvYzIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfQVJSQVk6XG4gICAgICBjYXNlIERPQ19UWVBFX0ZJTEw6IHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBnZXREb2NQYXJ0cyhkb2MyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICBkb2M6IHBhcnRzW2ldXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQUxJR046XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSzpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTEFCRUw6XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgbW9kZSxcbiAgICAgICAgICBkb2M6IGRvYzIuY29udGVudHNcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9UUklNOlxuICAgICAgICB3aWR0aCArPSB0cmltKG91dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9HUk9VUDoge1xuICAgICAgICBpZiAobXVzdEJlRmxhdCAmJiBkb2MyLmJyZWFrKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGdyb3VwTW9kZSA9IGRvYzIuYnJlYWsgPyBNT0RFX0JSRUFLIDogbW9kZTtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBkb2MyLmV4cGFuZGVkU3RhdGVzICYmIGdyb3VwTW9kZSA9PT0gTU9ERV9CUkVBSyA/IGF0X2RlZmF1bHQoXG4gICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgZG9jMi5leHBhbmRlZFN0YXRlcyxcbiAgICAgICAgICAtMVxuICAgICAgICApIDogZG9jMi5jb250ZW50cztcbiAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICBtb2RlOiBncm91cE1vZGUsXG4gICAgICAgICAgZG9jOiBjb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0lGX0JSRUFLOiB7XG4gICAgICAgIGNvbnN0IGdyb3VwTW9kZSA9IGRvYzIuZ3JvdXBJZCA/IGdyb3VwTW9kZU1hcFtkb2MyLmdyb3VwSWRdIHx8IE1PREVfRkxBVCA6IG1vZGU7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRzID0gZ3JvdXBNb2RlID09PSBNT0RFX0JSRUFLID8gZG9jMi5icmVha0NvbnRlbnRzIDogZG9jMi5mbGF0Q29udGVudHM7XG4gICAgICAgIGlmIChjb250ZW50cykge1xuICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgZG9jOiBjb250ZW50c1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FOlxuICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9CUkVBSyB8fCBkb2MyLmhhcmQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRvYzIuc29mdCkge1xuICAgICAgICAgIG91dC5wdXNoKFwiIFwiKTtcbiAgICAgICAgICB3aWR0aC0tO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWDpcbiAgICAgICAgaGFzTGluZVN1ZmZpeCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWF9CT1VOREFSWTpcbiAgICAgICAgaWYgKGhhc0xpbmVTdWZmaXgpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHByaW50RG9jVG9TdHJpbmcoZG9jMiwgb3B0aW9uczgpIHtcbiAgY29uc3QgZ3JvdXBNb2RlTWFwID0ge307XG4gIGNvbnN0IHdpZHRoID0gb3B0aW9uczgucHJpbnRXaWR0aDtcbiAgY29uc3QgbmV3TGluZSA9IGNvbnZlcnRFbmRPZkxpbmVUb0NoYXJzKG9wdGlvbnM4LmVuZE9mTGluZSk7XG4gIGxldCBwb3MgPSAwO1xuICBjb25zdCBjbWRzID0gW3tcbiAgICBpbmQ6IHJvb3RJbmRlbnQoKSxcbiAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgIGRvYzogZG9jMlxuICB9XTtcbiAgY29uc3Qgb3V0ID0gW107XG4gIGxldCBzaG91bGRSZW1lYXN1cmUgPSBmYWxzZTtcbiAgY29uc3QgbGluZVN1ZmZpeDIgPSBbXTtcbiAgbGV0IHByaW50ZWRDdXJzb3JDb3VudCA9IDA7XG4gIHByb3BhZ2F0ZUJyZWFrcyhkb2MyKTtcbiAgd2hpbGUgKGNtZHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGluZCxcbiAgICAgIG1vZGUsXG4gICAgICBkb2M6IGRvYzNcbiAgICB9ID0gY21kcy5wb3AoKTtcbiAgICBzd2l0Y2ggKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYzMpKSB7XG4gICAgICBjYXNlIERPQ19UWVBFX1NUUklORzoge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBuZXdMaW5lICE9PSBcIlxcblwiID8gc3RyaW5nX3JlcGxhY2VfYWxsX2RlZmF1bHQoXG4gICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgZG9jMyxcbiAgICAgICAgICBcIlxcblwiLFxuICAgICAgICAgIG5ld0xpbmVcbiAgICAgICAgKSA6IGRvYzM7XG4gICAgICAgIG91dC5wdXNoKGZvcm1hdHRlZCk7XG4gICAgICAgIGlmIChjbWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwb3MgKz0gZ2V0X3N0cmluZ193aWR0aF9kZWZhdWx0KGZvcm1hdHRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0FSUkFZOlxuICAgICAgICBmb3IgKGxldCBpID0gZG9jMy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgZG9jOiBkb2MzW2ldXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0NVUlNPUjpcbiAgICAgICAgaWYgKHByaW50ZWRDdXJzb3JDb3VudCA+PSAyKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlcmUgYXJlIHRvbyBtYW55ICdjdXJzb3InIGluIGRvYy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgb3V0LnB1c2goQ1VSU09SX1BMQUNFSE9MREVSKTtcbiAgICAgICAgcHJpbnRlZEN1cnNvckNvdW50Kys7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9JTkRFTlQ6XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgaW5kOiBtYWtlSW5kZW50KGluZCwgb3B0aW9uczgpLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZG9jOiBkb2MzLmNvbnRlbnRzXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfQUxJR046XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgaW5kOiBtYWtlQWxpZ24oaW5kLCBkb2MzLm4sIG9wdGlvbnM4KSxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRvYzogZG9jMy5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX1RSSU06XG4gICAgICAgIHBvcyAtPSB0cmltKG91dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9HUk9VUDpcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgY2FzZSBNT0RFX0ZMQVQ6XG4gICAgICAgICAgICBpZiAoIXNob3VsZFJlbWVhc3VyZSkge1xuICAgICAgICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgICBtb2RlOiBkb2MzLmJyZWFrID8gTU9ERV9CUkVBSyA6IE1PREVfRkxBVCxcbiAgICAgICAgICAgICAgICBkb2M6IGRvYzMuY29udGVudHNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgTU9ERV9CUkVBSzoge1xuICAgICAgICAgICAgc2hvdWxkUmVtZWFzdXJlID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0ge1xuICAgICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICAgIG1vZGU6IE1PREVfRkxBVCxcbiAgICAgICAgICAgICAgZG9jOiBkb2MzLmNvbnRlbnRzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcmVtID0gd2lkdGggLSBwb3M7XG4gICAgICAgICAgICBjb25zdCBoYXNMaW5lU3VmZml4ID0gbGluZVN1ZmZpeDIubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGlmICghZG9jMy5icmVhayAmJiBmaXRzKG5leHQsIGNtZHMsIHJlbSwgaGFzTGluZVN1ZmZpeCwgZ3JvdXBNb2RlTWFwKSkge1xuICAgICAgICAgICAgICBjbWRzLnB1c2gobmV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoZG9jMy5leHBhbmRlZFN0YXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vc3RFeHBhbmRlZCA9IGF0X2RlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgZG9jMy5leHBhbmRlZFN0YXRlcyxcbiAgICAgICAgICAgICAgICAgIC0xXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9jMy5icmVhaykge1xuICAgICAgICAgICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICAgICAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgICAgICAgICAgICAgICAgICBkb2M6IG1vc3RFeHBhbmRlZFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBkb2MzLmV4cGFuZGVkU3RhdGVzLmxlbmd0aCArIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA+PSBkb2MzLmV4cGFuZGVkU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jOiBtb3N0RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZSA9IGRvYzMuZXhwYW5kZWRTdGF0ZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY21kID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogTU9ERV9GTEFULFxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jOiBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGZpdHMoY21kLCBjbWRzLCByZW0sIGhhc0xpbmVTdWZmaXgsIGdyb3VwTW9kZU1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNtZHMucHVzaChjbWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICAgICAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgICAgICAgICAgICAgICAgZG9jOiBkb2MzLmNvbnRlbnRzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9jMy5pZCkge1xuICAgICAgICAgIGdyb3VwTW9kZU1hcFtkb2MzLmlkXSA9IGF0X2RlZmF1bHQoXG4gICAgICAgICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgY21kcyxcbiAgICAgICAgICAgIC0xXG4gICAgICAgICAgKS5tb2RlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9GSUxMOiB7XG4gICAgICAgIGNvbnN0IHJlbSA9IHdpZHRoIC0gcG9zO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcGFydHNcbiAgICAgICAgfSA9IGRvYzM7XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbY29udGVudCwgd2hpdGVzcGFjZV0gPSBwYXJ0cztcbiAgICAgICAgY29uc3QgY29udGVudEZsYXRDbWQgPSB7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGU6IE1PREVfRkxBVCxcbiAgICAgICAgICBkb2M6IGNvbnRlbnRcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY29udGVudEJyZWFrQ21kID0ge1xuICAgICAgICAgIGluZCxcbiAgICAgICAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgICAgICAgIGRvYzogY29udGVudFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb250ZW50Rml0cyA9IGZpdHMoY29udGVudEZsYXRDbWQsIFtdLCByZW0sIGxpbmVTdWZmaXgyLmxlbmd0aCA+IDAsIGdyb3VwTW9kZU1hcCwgdHJ1ZSk7XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBpZiAoY29udGVudEZpdHMpIHtcbiAgICAgICAgICAgIGNtZHMucHVzaChjb250ZW50RmxhdENtZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNtZHMucHVzaChjb250ZW50QnJlYWtDbWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB3aGl0ZXNwYWNlRmxhdENtZCA9IHtcbiAgICAgICAgICBpbmQsXG4gICAgICAgICAgbW9kZTogTU9ERV9GTEFULFxuICAgICAgICAgIGRvYzogd2hpdGVzcGFjZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB3aGl0ZXNwYWNlQnJlYWtDbWQgPSB7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGU6IE1PREVfQlJFQUssXG4gICAgICAgICAgZG9jOiB3aGl0ZXNwYWNlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBpZiAoY29udGVudEZpdHMpIHtcbiAgICAgICAgICAgIGNtZHMucHVzaCh3aGl0ZXNwYWNlRmxhdENtZCwgY29udGVudEZsYXRDbWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbWRzLnB1c2god2hpdGVzcGFjZUJyZWFrQ21kLCBjb250ZW50QnJlYWtDbWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwYXJ0cy5zcGxpY2UoMCwgMik7XG4gICAgICAgIGNvbnN0IHJlbWFpbmluZ0NtZCA9IHtcbiAgICAgICAgICBpbmQsXG4gICAgICAgICAgbW9kZSxcbiAgICAgICAgICBkb2M6IGZpbGwocGFydHMpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNlY29uZENvbnRlbnQgPSBwYXJ0c1swXTtcbiAgICAgICAgY29uc3QgZmlyc3RBbmRTZWNvbmRDb250ZW50RmxhdENtZCA9IHtcbiAgICAgICAgICBpbmQsXG4gICAgICAgICAgbW9kZTogTU9ERV9GTEFULFxuICAgICAgICAgIGRvYzogW2NvbnRlbnQsIHdoaXRlc3BhY2UsIHNlY29uZENvbnRlbnRdXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGZpcnN0QW5kU2Vjb25kQ29udGVudEZpdHMgPSBmaXRzKGZpcnN0QW5kU2Vjb25kQ29udGVudEZsYXRDbWQsIFtdLCByZW0sIGxpbmVTdWZmaXgyLmxlbmd0aCA+IDAsIGdyb3VwTW9kZU1hcCwgdHJ1ZSk7XG4gICAgICAgIGlmIChmaXJzdEFuZFNlY29uZENvbnRlbnRGaXRzKSB7XG4gICAgICAgICAgY21kcy5wdXNoKHJlbWFpbmluZ0NtZCwgd2hpdGVzcGFjZUZsYXRDbWQsIGNvbnRlbnRGbGF0Q21kKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250ZW50Rml0cykge1xuICAgICAgICAgIGNtZHMucHVzaChyZW1haW5pbmdDbWQsIHdoaXRlc3BhY2VCcmVha0NtZCwgY29udGVudEZsYXRDbWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNtZHMucHVzaChyZW1haW5pbmdDbWQsIHdoaXRlc3BhY2VCcmVha0NtZCwgY29udGVudEJyZWFrQ21kKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRE9DX1RZUEVfSUZfQlJFQUs6XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSzoge1xuICAgICAgICBjb25zdCBncm91cE1vZGUgPSBkb2MzLmdyb3VwSWQgPyBncm91cE1vZGVNYXBbZG9jMy5ncm91cElkXSA6IG1vZGU7XG4gICAgICAgIGlmIChncm91cE1vZGUgPT09IE1PREVfQlJFQUspIHtcbiAgICAgICAgICBjb25zdCBicmVha0NvbnRlbnRzID0gZG9jMy50eXBlID09PSBET0NfVFlQRV9JRl9CUkVBSyA/IGRvYzMuYnJlYWtDb250ZW50cyA6IGRvYzMubmVnYXRlID8gZG9jMy5jb250ZW50cyA6IGluZGVudChkb2MzLmNvbnRlbnRzKTtcbiAgICAgICAgICBpZiAoYnJlYWtDb250ZW50cykge1xuICAgICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICBkb2M6IGJyZWFrQ29udGVudHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3JvdXBNb2RlID09PSBNT0RFX0ZMQVQpIHtcbiAgICAgICAgICBjb25zdCBmbGF0Q29udGVudHMgPSBkb2MzLnR5cGUgPT09IERPQ19UWVBFX0lGX0JSRUFLID8gZG9jMy5mbGF0Q29udGVudHMgOiBkb2MzLm5lZ2F0ZSA/IGluZGVudChkb2MzLmNvbnRlbnRzKSA6IGRvYzMuY29udGVudHM7XG4gICAgICAgICAgaWYgKGZsYXRDb250ZW50cykge1xuICAgICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICBkb2M6IGZsYXRDb250ZW50c1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWDpcbiAgICAgICAgbGluZVN1ZmZpeDIucHVzaCh7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZG9jOiBkb2MzLmNvbnRlbnRzXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlk6XG4gICAgICAgIGlmIChsaW5lU3VmZml4Mi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICBkb2M6IGhhcmRsaW5lV2l0aG91dEJyZWFrUGFyZW50XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0xJTkU6XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgIGNhc2UgTU9ERV9GTEFUOlxuICAgICAgICAgICAgaWYgKCFkb2MzLmhhcmQpIHtcbiAgICAgICAgICAgICAgaWYgKCFkb2MzLnNvZnQpIHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChcIiBcIik7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzaG91bGRSZW1lYXN1cmUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgTU9ERV9CUkVBSzpcbiAgICAgICAgICAgIGlmIChsaW5lU3VmZml4Mi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICAgICAgZG9jOiBkb2MzXG4gICAgICAgICAgICAgIH0sIC4uLmxpbmVTdWZmaXgyLnJldmVyc2UoKSk7XG4gICAgICAgICAgICAgIGxpbmVTdWZmaXgyLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRvYzMubGl0ZXJhbCkge1xuICAgICAgICAgICAgICBpZiAoaW5kLnJvb3QpIHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChuZXdMaW5lLCBpbmQucm9vdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgcG9zID0gaW5kLnJvb3QubGVuZ3RoO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG91dC5wdXNoKG5ld0xpbmUpO1xuICAgICAgICAgICAgICAgIHBvcyA9IDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHBvcyAtPSB0cmltKG91dCk7XG4gICAgICAgICAgICAgIG91dC5wdXNoKG5ld0xpbmUgKyBpbmQudmFsdWUpO1xuICAgICAgICAgICAgICBwb3MgPSBpbmQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0xBQkVMOlxuICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgIGluZCxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRvYzogZG9jMy5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0JSRUFLX1BBUkVOVDpcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MzKTtcbiAgICB9XG4gICAgaWYgKGNtZHMubGVuZ3RoID09PSAwICYmIGxpbmVTdWZmaXgyLmxlbmd0aCA+IDApIHtcbiAgICAgIGNtZHMucHVzaCguLi5saW5lU3VmZml4Mi5yZXZlcnNlKCkpO1xuICAgICAgbGluZVN1ZmZpeDIubGVuZ3RoID0gMDtcbiAgICB9XG4gIH1cbiAgY29uc3QgY3Vyc29yUGxhY2Vob2xkZXJJbmRleCA9IG91dC5pbmRleE9mKENVUlNPUl9QTEFDRUhPTERFUik7XG4gIGlmIChjdXJzb3JQbGFjZWhvbGRlckluZGV4ICE9PSAtMSkge1xuICAgIGNvbnN0IG90aGVyQ3Vyc29yUGxhY2Vob2xkZXJJbmRleCA9IG91dC5pbmRleE9mKENVUlNPUl9QTEFDRUhPTERFUiwgY3Vyc29yUGxhY2Vob2xkZXJJbmRleCArIDEpO1xuICAgIGNvbnN0IGJlZm9yZUN1cnNvciA9IG91dC5zbGljZSgwLCBjdXJzb3JQbGFjZWhvbGRlckluZGV4KS5qb2luKFwiXCIpO1xuICAgIGNvbnN0IGFyb3VuZEN1cnNvciA9IG91dC5zbGljZShjdXJzb3JQbGFjZWhvbGRlckluZGV4ICsgMSwgb3RoZXJDdXJzb3JQbGFjZWhvbGRlckluZGV4KS5qb2luKFwiXCIpO1xuICAgIGNvbnN0IGFmdGVyQ3Vyc29yID0gb3V0LnNsaWNlKG90aGVyQ3Vyc29yUGxhY2Vob2xkZXJJbmRleCArIDEpLmpvaW4oXCJcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1hdHRlZDogYmVmb3JlQ3Vyc29yICsgYXJvdW5kQ3Vyc29yICsgYWZ0ZXJDdXJzb3IsXG4gICAgICBjdXJzb3JOb2RlU3RhcnQ6IGJlZm9yZUN1cnNvci5sZW5ndGgsXG4gICAgICBjdXJzb3JOb2RlVGV4dDogYXJvdW5kQ3Vyc29yXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGZvcm1hdHRlZDogb3V0LmpvaW4oXCJcIilcbiAgfTtcbn1cblxuLy8gc3JjL2RvY3VtZW50L2RlYnVnLmpzXG5mdW5jdGlvbiBmbGF0dGVuRG9jKGRvYzIpIHtcbiAgdmFyIF9hO1xuICBpZiAoIWRvYzIpIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShkb2MyKSkge1xuICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgcGFydCBvZiBkb2MyKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJ0KSkge1xuICAgICAgICByZXMucHVzaCguLi5mbGF0dGVuRG9jKHBhcnQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZsYXR0ZW5lZCA9IGZsYXR0ZW5Eb2MocGFydCk7XG4gICAgICAgIGlmIChmbGF0dGVuZWQgIT09IFwiXCIpIHtcbiAgICAgICAgICByZXMucHVzaChmbGF0dGVuZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbiAgaWYgKGRvYzIudHlwZSA9PT0gRE9DX1RZUEVfSUZfQlJFQUspIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZG9jMixcbiAgICAgIGJyZWFrQ29udGVudHM6IGZsYXR0ZW5Eb2MoZG9jMi5icmVha0NvbnRlbnRzKSxcbiAgICAgIGZsYXRDb250ZW50czogZmxhdHRlbkRvYyhkb2MyLmZsYXRDb250ZW50cylcbiAgICB9O1xuICB9XG4gIGlmIChkb2MyLnR5cGUgPT09IERPQ19UWVBFX0dST1VQKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRvYzIsXG4gICAgICBjb250ZW50czogZmxhdHRlbkRvYyhkb2MyLmNvbnRlbnRzKSxcbiAgICAgIGV4cGFuZGVkU3RhdGVzOiAoX2EgPSBkb2MyLmV4cGFuZGVkU3RhdGVzKSA9PSBudWxsID8gdm9pZCAwIDogX2EubWFwKGZsYXR0ZW5Eb2MpXG4gICAgfTtcbiAgfVxuICBpZiAoZG9jMi50eXBlID09PSBET0NfVFlQRV9GSUxMKSB7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJmaWxsXCIsIHBhcnRzOiBkb2MyLnBhcnRzLm1hcChmbGF0dGVuRG9jKSB9O1xuICB9XG4gIGlmIChkb2MyLmNvbnRlbnRzKSB7XG4gICAgcmV0dXJuIHsgLi4uZG9jMiwgY29udGVudHM6IGZsYXR0ZW5Eb2MoZG9jMi5jb250ZW50cykgfTtcbiAgfVxuICByZXR1cm4gZG9jMjtcbn1cbmZ1bmN0aW9uIHByaW50RG9jVG9EZWJ1Zyhkb2MyKSB7XG4gIGNvbnN0IHByaW50ZWRTeW1ib2xzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGNvbnN0IHVzZWRLZXlzRm9yU3ltYm9scyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gIHJldHVybiBwcmludERvYyhmbGF0dGVuRG9jKGRvYzIpKTtcbiAgZnVuY3Rpb24gcHJpbnREb2MoZG9jMywgaW5kZXgsIHBhcmVudFBhcnRzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBpZiAodHlwZW9mIGRvYzMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkb2MzKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZG9jMykpIHtcbiAgICAgIGNvbnN0IHByaW50ZWQgPSBkb2MzLm1hcChwcmludERvYykuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgcmV0dXJuIHByaW50ZWQubGVuZ3RoID09PSAxID8gcHJpbnRlZFswXSA6IGBbJHtwcmludGVkLmpvaW4oXCIsIFwiKX1dYDtcbiAgICB9XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfTElORSkge1xuICAgICAgY29uc3Qgd2l0aEJyZWFrUGFyZW50ID0gKChfYSA9IHBhcmVudFBhcnRzID09IG51bGwgPyB2b2lkIDAgOiBwYXJlbnRQYXJ0c1tpbmRleCArIDFdKSA9PSBudWxsID8gdm9pZCAwIDogX2EudHlwZSkgPT09IERPQ19UWVBFX0JSRUFLX1BBUkVOVDtcbiAgICAgIGlmIChkb2MzLmxpdGVyYWwpIHtcbiAgICAgICAgcmV0dXJuIHdpdGhCcmVha1BhcmVudCA/IFwibGl0ZXJhbGxpbmVcIiA6IFwibGl0ZXJhbGxpbmVXaXRob3V0QnJlYWtQYXJlbnRcIjtcbiAgICAgIH1cbiAgICAgIGlmIChkb2MzLmhhcmQpIHtcbiAgICAgICAgcmV0dXJuIHdpdGhCcmVha1BhcmVudCA/IFwiaGFyZGxpbmVcIiA6IFwiaGFyZGxpbmVXaXRob3V0QnJlYWtQYXJlbnRcIjtcbiAgICAgIH1cbiAgICAgIGlmIChkb2MzLnNvZnQpIHtcbiAgICAgICAgcmV0dXJuIFwic29mdGxpbmVcIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBcImxpbmVcIjtcbiAgICB9XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfQlJFQUtfUEFSRU5UKSB7XG4gICAgICBjb25zdCBhZnRlckhhcmRsaW5lID0gKChfYiA9IHBhcmVudFBhcnRzID09IG51bGwgPyB2b2lkIDAgOiBwYXJlbnRQYXJ0c1tpbmRleCAtIDFdKSA9PSBudWxsID8gdm9pZCAwIDogX2IudHlwZSkgPT09IERPQ19UWVBFX0xJTkUgJiYgcGFyZW50UGFydHNbaW5kZXggLSAxXS5oYXJkO1xuICAgICAgcmV0dXJuIGFmdGVySGFyZGxpbmUgPyB2b2lkIDAgOiBcImJyZWFrUGFyZW50XCI7XG4gICAgfVxuICAgIGlmIChkb2MzLnR5cGUgPT09IERPQ19UWVBFX1RSSU0pIHtcbiAgICAgIHJldHVybiBcInRyaW1cIjtcbiAgICB9XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfSU5ERU5UKSB7XG4gICAgICByZXR1cm4gXCJpbmRlbnQoXCIgKyBwcmludERvYyhkb2MzLmNvbnRlbnRzKSArIFwiKVwiO1xuICAgIH1cbiAgICBpZiAoZG9jMy50eXBlID09PSBET0NfVFlQRV9BTElHTikge1xuICAgICAgcmV0dXJuIGRvYzMubiA9PT0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID8gXCJkZWRlbnRUb1Jvb3QoXCIgKyBwcmludERvYyhkb2MzLmNvbnRlbnRzKSArIFwiKVwiIDogZG9jMy5uIDwgMCA/IFwiZGVkZW50KFwiICsgcHJpbnREb2MoZG9jMy5jb250ZW50cykgKyBcIilcIiA6IGRvYzMubi50eXBlID09PSBcInJvb3RcIiA/IFwibWFya0FzUm9vdChcIiArIHByaW50RG9jKGRvYzMuY29udGVudHMpICsgXCIpXCIgOiBcImFsaWduKFwiICsgSlNPTi5zdHJpbmdpZnkoZG9jMy5uKSArIFwiLCBcIiArIHByaW50RG9jKGRvYzMuY29udGVudHMpICsgXCIpXCI7XG4gICAgfVxuICAgIGlmIChkb2MzLnR5cGUgPT09IERPQ19UWVBFX0lGX0JSRUFLKSB7XG4gICAgICByZXR1cm4gXCJpZkJyZWFrKFwiICsgcHJpbnREb2MoZG9jMy5icmVha0NvbnRlbnRzKSArIChkb2MzLmZsYXRDb250ZW50cyA/IFwiLCBcIiArIHByaW50RG9jKGRvYzMuZmxhdENvbnRlbnRzKSA6IFwiXCIpICsgKGRvYzMuZ3JvdXBJZCA/ICghZG9jMy5mbGF0Q29udGVudHMgPyAnLCBcIlwiJyA6IFwiXCIpICsgYCwgeyBncm91cElkOiAke3ByaW50R3JvdXBJZChkb2MzLmdyb3VwSWQpfSB9YCA6IFwiXCIpICsgXCIpXCI7XG4gICAgfVxuICAgIGlmIChkb2MzLnR5cGUgPT09IERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSykge1xuICAgICAgY29uc3Qgb3B0aW9uc1BhcnRzID0gW107XG4gICAgICBpZiAoZG9jMy5uZWdhdGUpIHtcbiAgICAgICAgb3B0aW9uc1BhcnRzLnB1c2goXCJuZWdhdGU6IHRydWVcIik7XG4gICAgICB9XG4gICAgICBpZiAoZG9jMy5ncm91cElkKSB7XG4gICAgICAgIG9wdGlvbnNQYXJ0cy5wdXNoKGBncm91cElkOiAke3ByaW50R3JvdXBJZChkb2MzLmdyb3VwSWQpfWApO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9uczggPSBvcHRpb25zUGFydHMubGVuZ3RoID4gMCA/IGAsIHsgJHtvcHRpb25zUGFydHMuam9pbihcIiwgXCIpfSB9YCA6IFwiXCI7XG4gICAgICByZXR1cm4gYGluZGVudElmQnJlYWsoJHtwcmludERvYyhkb2MzLmNvbnRlbnRzKX0ke29wdGlvbnM4fSlgO1xuICAgIH1cbiAgICBpZiAoZG9jMy50eXBlID09PSBET0NfVFlQRV9HUk9VUCkge1xuICAgICAgY29uc3Qgb3B0aW9uc1BhcnRzID0gW107XG4gICAgICBpZiAoZG9jMy5icmVhayAmJiBkb2MzLmJyZWFrICE9PSBcInByb3BhZ2F0ZWRcIikge1xuICAgICAgICBvcHRpb25zUGFydHMucHVzaChcInNob3VsZEJyZWFrOiB0cnVlXCIpO1xuICAgICAgfVxuICAgICAgaWYgKGRvYzMuaWQpIHtcbiAgICAgICAgb3B0aW9uc1BhcnRzLnB1c2goYGlkOiAke3ByaW50R3JvdXBJZChkb2MzLmlkKX1gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9wdGlvbnM4ID0gb3B0aW9uc1BhcnRzLmxlbmd0aCA+IDAgPyBgLCB7ICR7b3B0aW9uc1BhcnRzLmpvaW4oXCIsIFwiKX0gfWAgOiBcIlwiO1xuICAgICAgaWYgKGRvYzMuZXhwYW5kZWRTdGF0ZXMpIHtcbiAgICAgICAgcmV0dXJuIGBjb25kaXRpb25hbEdyb3VwKFske2RvYzMuZXhwYW5kZWRTdGF0ZXMubWFwKChwYXJ0KSA9PiBwcmludERvYyhwYXJ0KSkuam9pbihcIixcIil9XSR7b3B0aW9uczh9KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGdyb3VwKCR7cHJpbnREb2MoZG9jMy5jb250ZW50cyl9JHtvcHRpb25zOH0pYDtcbiAgICB9XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfRklMTCkge1xuICAgICAgcmV0dXJuIGBmaWxsKFske2RvYzMucGFydHMubWFwKChwYXJ0KSA9PiBwcmludERvYyhwYXJ0KSkuam9pbihcIiwgXCIpfV0pYDtcbiAgICB9XG4gICAgaWYgKGRvYzMudHlwZSA9PT0gRE9DX1RZUEVfTElORV9TVUZGSVgpIHtcbiAgICAgIHJldHVybiBcImxpbmVTdWZmaXgoXCIgKyBwcmludERvYyhkb2MzLmNvbnRlbnRzKSArIFwiKVwiO1xuICAgIH1cbiAgICBpZiAoZG9jMy50eXBlID09PSBET0NfVFlQRV9MSU5FX1NVRkZJWF9CT1VOREFSWSkge1xuICAgICAgcmV0dXJuIFwibGluZVN1ZmZpeEJvdW5kYXJ5XCI7XG4gICAgfVxuICAgIGlmIChkb2MzLnR5cGUgPT09IERPQ19UWVBFX0xBQkVMKSB7XG4gICAgICByZXR1cm4gYGxhYmVsKCR7SlNPTi5zdHJpbmdpZnkoZG9jMy5sYWJlbCl9LCAke3ByaW50RG9jKGRvYzMuY29udGVudHMpfSlgO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGRvYyB0eXBlIFwiICsgZG9jMy50eXBlKTtcbiAgfVxuICBmdW5jdGlvbiBwcmludEdyb3VwSWQoaWQpIHtcbiAgICBpZiAodHlwZW9mIGlkICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoU3RyaW5nKGlkKSk7XG4gICAgfVxuICAgIGlmIChpZCBpbiBwcmludGVkU3ltYm9scykge1xuICAgICAgcmV0dXJuIHByaW50ZWRTeW1ib2xzW2lkXTtcbiAgICB9XG4gICAgY29uc3QgcHJlZml4ID0gaWQuZGVzY3JpcHRpb24gfHwgXCJzeW1ib2xcIjtcbiAgICBmb3IgKGxldCBjb3VudGVyID0gMDsgOyBjb3VudGVyKyspIHtcbiAgICAgIGNvbnN0IGtleSA9IHByZWZpeCArIChjb3VudGVyID4gMCA/IGAgIyR7Y291bnRlcn1gIDogXCJcIik7XG4gICAgICBpZiAoIXVzZWRLZXlzRm9yU3ltYm9scy5oYXMoa2V5KSkge1xuICAgICAgICB1c2VkS2V5c0ZvclN5bWJvbHMuYWRkKGtleSk7XG4gICAgICAgIHJldHVybiBwcmludGVkU3ltYm9sc1tpZF0gPSBgU3ltYm9sLmZvcigke0pTT04uc3RyaW5naWZ5KGtleSl9KWA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHNyYy91dGlscy9nZXQtYWxpZ25tZW50LXNpemUuanNcbmZ1bmN0aW9uIGdldEFsaWdubWVudFNpemUodGV4dCwgdGFiV2lkdGgsIHN0YXJ0SW5kZXggPSAwKSB7XG4gIGxldCBzaXplID0gMDtcbiAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPCB0ZXh0Lmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKHRleHRbaV0gPT09IFwiXHRcIikge1xuICAgICAgc2l6ZSA9IHNpemUgKyB0YWJXaWR0aCAtIHNpemUgJSB0YWJXaWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgc2l6ZSsrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2l6ZTtcbn1cbnZhciBnZXRfYWxpZ25tZW50X3NpemVfZGVmYXVsdCA9IGdldEFsaWdubWVudFNpemU7XG5cbi8vIHNyYy9jb21tb24vZXJyb3JzLmpzXG52YXIgZXJyb3JzX2V4cG9ydHMgPSB7fTtcbl9fZXhwb3J0KGVycm9yc19leHBvcnRzLCB7XG4gIEFyZ0V4cGFuc2lvbkJhaWxvdXQ6ICgpID0+IEFyZ0V4cGFuc2lvbkJhaWxvdXQsXG4gIENvbmZpZ0Vycm9yOiAoKSA9PiBDb25maWdFcnJvcixcbiAgVW5kZWZpbmVkUGFyc2VyRXJyb3I6ICgpID0+IFVuZGVmaW5lZFBhcnNlckVycm9yXG59KTtcbnZhciBDb25maWdFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gXCJDb25maWdFcnJvclwiO1xufTtcbnZhciBVbmRlZmluZWRQYXJzZXJFcnJvciA9IGNsYXNzIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gXCJVbmRlZmluZWRQYXJzZXJFcnJvclwiO1xufTtcbnZhciBBcmdFeHBhbnNpb25CYWlsb3V0ID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSBcIkFyZ0V4cGFuc2lvbkJhaWxvdXRcIjtcbn07XG5cbi8vIHNyYy9tYWluL2NvcmUtb3B0aW9ucy5ldmFsdWF0ZS5qc1xudmFyIGNvcmVfb3B0aW9uc19ldmFsdWF0ZV9kZWZhdWx0ID0ge1xuICBcImN1cnNvck9mZnNldFwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIlNwZWNpYWxcIixcbiAgICBcInR5cGVcIjogXCJpbnRcIixcbiAgICBcImRlZmF1bHRcIjogLTEsXG4gICAgXCJyYW5nZVwiOiB7XG4gICAgICBcInN0YXJ0XCI6IC0xLFxuICAgICAgXCJlbmRcIjogSW5maW5pdHksXG4gICAgICBcInN0ZXBcIjogMVxuICAgIH0sXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIlByaW50ICh0byBzdGRlcnIpIHdoZXJlIGEgY3Vyc29yIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiB3b3VsZCBtb3ZlIHRvIGFmdGVyIGZvcm1hdHRpbmcuXFxuVGhpcyBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCAtLXJhbmdlLXN0YXJ0IGFuZCAtLXJhbmdlLWVuZC5cIixcbiAgICBcImNsaUNhdGVnb3J5XCI6IFwiRWRpdG9yXCJcbiAgfSxcbiAgXCJlbmRPZkxpbmVcIjoge1xuICAgIFwiY2F0ZWdvcnlcIjogXCJHbG9iYWxcIixcbiAgICBcInR5cGVcIjogXCJjaG9pY2VcIixcbiAgICBcImRlZmF1bHRcIjogXCJsZlwiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJXaGljaCBlbmQgb2YgbGluZSBjaGFyYWN0ZXJzIHRvIGFwcGx5LlwiLFxuICAgIFwiY2hvaWNlc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJsZlwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTGluZSBGZWVkIG9ubHkgKFxcXFxuKSwgY29tbW9uIG9uIExpbnV4IGFuZCBtYWNPUyBhcyB3ZWxsIGFzIGluc2lkZSBnaXQgcmVwb3NcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImNybGZcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkNhcnJpYWdlIFJldHVybiArIExpbmUgRmVlZCBjaGFyYWN0ZXJzIChcXFxcclxcXFxuKSwgY29tbW9uIG9uIFdpbmRvd3NcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImNyXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJDYXJyaWFnZSBSZXR1cm4gY2hhcmFjdGVyIG9ubHkgKFxcXFxyKSwgdXNlZCB2ZXJ5IHJhcmVseVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwiYXV0b1wiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWFpbnRhaW4gZXhpc3RpbmdcXG4obWl4ZWQgdmFsdWVzIHdpdGhpbiBvbmUgZmlsZSBhcmUgbm9ybWFsaXNlZCBieSBsb29raW5nIGF0IHdoYXQncyB1c2VkIGFmdGVyIHRoZSBmaXJzdCBsaW5lKVwiXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBcImZpbGVwYXRoXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiU3BlY2lhbFwiLFxuICAgIFwidHlwZVwiOiBcInBhdGhcIixcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiU3BlY2lmeSB0aGUgaW5wdXQgZmlsZXBhdGguIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGRvIHBhcnNlciBpbmZlcmVuY2UuXCIsXG4gICAgXCJjbGlOYW1lXCI6IFwic3RkaW4tZmlsZXBhdGhcIixcbiAgICBcImNsaUNhdGVnb3J5XCI6IFwiT3RoZXJcIixcbiAgICBcImNsaURlc2NyaXB0aW9uXCI6IFwiUGF0aCB0byB0aGUgZmlsZSB0byBwcmV0ZW5kIHRoYXQgc3RkaW4gY29tZXMgZnJvbS5cIlxuICB9LFxuICBcImluc2VydFByYWdtYVwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIlNwZWNpYWxcIixcbiAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJJbnNlcnQgQGZvcm1hdCBwcmFnbWEgaW50byBmaWxlJ3MgZmlyc3QgZG9jYmxvY2sgY29tbWVudC5cIixcbiAgICBcImNsaUNhdGVnb3J5XCI6IFwiT3RoZXJcIlxuICB9LFxuICBcInBhcnNlclwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIkdsb2JhbFwiLFxuICAgIFwidHlwZVwiOiBcImNob2ljZVwiLFxuICAgIFwiZGVmYXVsdFwiOiB2b2lkIDAsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIldoaWNoIHBhcnNlciB0byB1c2UuXCIsXG4gICAgXCJleGNlcHRpb25cIjogKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIsXG4gICAgXCJjaG9pY2VzXCI6IFtcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImZsb3dcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkZsb3dcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImJhYmVsXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJKYXZhU2NyaXB0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJiYWJlbC1mbG93XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGbG93XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJiYWJlbC10c1wiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVHlwZVNjcmlwdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiVHlwZVNjcmlwdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwiYWNvcm5cIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkphdmFTY3JpcHRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImVzcHJlZVwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSmF2YVNjcmlwdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwibWVyaXlhaFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiSmF2YVNjcmlwdFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwiY3NzXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJDU1NcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImxlc3NcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxlc3NcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcInNjc3NcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlNDU1NcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImpzb25cIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkpTT05cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImpzb241XCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJKU09ONVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwianNvbi1zdHJpbmdpZnlcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkpTT04uc3RyaW5naWZ5XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJncmFwaHFsXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJHcmFwaFFMXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJtYXJrZG93blwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTWFya2Rvd25cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcIm1keFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTURYXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJ2dWVcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlZ1ZVwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwieWFtbFwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiWUFNTFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBcInZhbHVlXCI6IFwiZ2xpbW1lclwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiRW1iZXIgLyBIYW5kbGViYXJzXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJodG1sXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJIVE1MXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJhbmd1bGFyXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJBbmd1bGFyXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJsd2NcIixcbiAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIkxpZ2h0bmluZyBXZWIgQ29tcG9uZW50c1wiXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBcInBsdWdpbnNcIjoge1xuICAgIFwidHlwZVwiOiBcInBhdGhcIixcbiAgICBcImFycmF5XCI6IHRydWUsXG4gICAgXCJkZWZhdWx0XCI6IFtcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBbXVxuICAgICAgfVxuICAgIF0sXG4gICAgXCJjYXRlZ29yeVwiOiBcIkdsb2JhbFwiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJBZGQgYSBwbHVnaW4uIE11bHRpcGxlIHBsdWdpbnMgY2FuIGJlIHBhc3NlZCBhcyBzZXBhcmF0ZSBgLS1wbHVnaW5gcy5cIixcbiAgICBcImV4Y2VwdGlvblwiOiAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIsXG4gICAgXCJjbGlOYW1lXCI6IFwicGx1Z2luXCIsXG4gICAgXCJjbGlDYXRlZ29yeVwiOiBcIkNvbmZpZ1wiXG4gIH0sXG4gIFwicHJpbnRXaWR0aFwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIkdsb2JhbFwiLFxuICAgIFwidHlwZVwiOiBcImludFwiLFxuICAgIFwiZGVmYXVsdFwiOiA4MCxcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiVGhlIGxpbmUgbGVuZ3RoIHdoZXJlIFByZXR0aWVyIHdpbGwgdHJ5IHdyYXAuXCIsXG4gICAgXCJyYW5nZVwiOiB7XG4gICAgICBcInN0YXJ0XCI6IDAsXG4gICAgICBcImVuZFwiOiBJbmZpbml0eSxcbiAgICAgIFwic3RlcFwiOiAxXG4gICAgfVxuICB9LFxuICBcInJhbmdlRW5kXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiU3BlY2lhbFwiLFxuICAgIFwidHlwZVwiOiBcImludFwiLFxuICAgIFwiZGVmYXVsdFwiOiBJbmZpbml0eSxcbiAgICBcInJhbmdlXCI6IHtcbiAgICAgIFwic3RhcnRcIjogMCxcbiAgICAgIFwiZW5kXCI6IEluZmluaXR5LFxuICAgICAgXCJzdGVwXCI6IDFcbiAgICB9LFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJGb3JtYXQgY29kZSBlbmRpbmcgYXQgYSBnaXZlbiBjaGFyYWN0ZXIgb2Zmc2V0IChleGNsdXNpdmUpLlxcblRoZSByYW5nZSB3aWxsIGV4dGVuZCBmb3J3YXJkcyB0byB0aGUgZW5kIG9mIHRoZSBzZWxlY3RlZCBzdGF0ZW1lbnQuXFxuVGhpcyBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCAtLWN1cnNvci1vZmZzZXQuXCIsXG4gICAgXCJjbGlDYXRlZ29yeVwiOiBcIkVkaXRvclwiXG4gIH0sXG4gIFwicmFuZ2VTdGFydFwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIlNwZWNpYWxcIixcbiAgICBcInR5cGVcIjogXCJpbnRcIixcbiAgICBcImRlZmF1bHRcIjogMCxcbiAgICBcInJhbmdlXCI6IHtcbiAgICAgIFwic3RhcnRcIjogMCxcbiAgICAgIFwiZW5kXCI6IEluZmluaXR5LFxuICAgICAgXCJzdGVwXCI6IDFcbiAgICB9LFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJGb3JtYXQgY29kZSBzdGFydGluZyBhdCBhIGdpdmVuIGNoYXJhY3RlciBvZmZzZXQuXFxuVGhlIHJhbmdlIHdpbGwgZXh0ZW5kIGJhY2t3YXJkcyB0byB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IGxpbmUgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgc3RhdGVtZW50LlxcblRoaXMgb3B0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1jdXJzb3Itb2Zmc2V0LlwiLFxuICAgIFwiY2xpQ2F0ZWdvcnlcIjogXCJFZGl0b3JcIlxuICB9LFxuICBcInJlcXVpcmVQcmFnbWFcIjoge1xuICAgIFwiY2F0ZWdvcnlcIjogXCJTcGVjaWFsXCIsXG4gICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiUmVxdWlyZSBlaXRoZXIgJ0BwcmV0dGllcicgb3IgJ0Bmb3JtYXQnIHRvIGJlIHByZXNlbnQgaW4gdGhlIGZpbGUncyBmaXJzdCBkb2NibG9jayBjb21tZW50XFxuaW4gb3JkZXIgZm9yIGl0IHRvIGJlIGZvcm1hdHRlZC5cIixcbiAgICBcImNsaUNhdGVnb3J5XCI6IFwiT3RoZXJcIlxuICB9LFxuICBcInRhYldpZHRoXCI6IHtcbiAgICBcInR5cGVcIjogXCJpbnRcIixcbiAgICBcImNhdGVnb3J5XCI6IFwiR2xvYmFsXCIsXG4gICAgXCJkZWZhdWx0XCI6IDIsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIk51bWJlciBvZiBzcGFjZXMgcGVyIGluZGVudGF0aW9uIGxldmVsLlwiLFxuICAgIFwicmFuZ2VcIjoge1xuICAgICAgXCJzdGFydFwiOiAwLFxuICAgICAgXCJlbmRcIjogSW5maW5pdHksXG4gICAgICBcInN0ZXBcIjogMVxuICAgIH1cbiAgfSxcbiAgXCJ1c2VUYWJzXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiR2xvYmFsXCIsXG4gICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiSW5kZW50IHdpdGggdGFicyBpbnN0ZWFkIG9mIHNwYWNlcy5cIlxuICB9LFxuICBcImVtYmVkZGVkTGFuZ3VhZ2VGb3JtYXR0aW5nXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiR2xvYmFsXCIsXG4gICAgXCJ0eXBlXCI6IFwiY2hvaWNlXCIsXG4gICAgXCJkZWZhdWx0XCI6IFwiYXV0b1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJDb250cm9sIGhvdyBQcmV0dGllciBmb3JtYXRzIHF1b3RlZCBjb2RlIGVtYmVkZGVkIGluIHRoZSBmaWxlLlwiLFxuICAgIFwiY2hvaWNlc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwidmFsdWVcIjogXCJhdXRvXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJGb3JtYXQgZW1iZWRkZWQgY29kZSBpZiBQcmV0dGllciBjYW4gYXV0b21hdGljYWxseSBpZGVudGlmeSBpdC5cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcIm9mZlwiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTmV2ZXIgYXV0b21hdGljYWxseSBmb3JtYXQgZW1iZWRkZWQgY29kZS5cIlxuICAgICAgfVxuICAgIF1cbiAgfVxufTtcblxuLy8gc3JjL21haW4vc3VwcG9ydC5qc1xuZnVuY3Rpb24gZ2V0U3VwcG9ydEluZm8oe1xuICBwbHVnaW5zID0gW10sXG4gIHNob3dEZXByZWNhdGVkID0gZmFsc2Vcbn0gPSB7fSkge1xuICBjb25zdCBsYW5ndWFnZXMyID0gcGx1Z2lucy5mbGF0TWFwKChwbHVnaW4pID0+IHBsdWdpbi5sYW5ndWFnZXMgPz8gW10pO1xuICBjb25zdCBvcHRpb25zOCA9IFtdO1xuICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBub3JtYWxpemVPcHRpb25TZXR0aW5ncyhPYmplY3QuYXNzaWduKHt9LCAuLi5wbHVnaW5zLm1hcCgoe1xuICAgIG9wdGlvbnM6IG9wdGlvbnM5XG4gIH0pID0+IG9wdGlvbnM5KSwgY29yZV9vcHRpb25zX2V2YWx1YXRlX2RlZmF1bHQpKSkge1xuICAgIGlmICghc2hvd0RlcHJlY2F0ZWQgJiYgb3B0aW9uLmRlcHJlY2F0ZWQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb24uY2hvaWNlcykpIHtcbiAgICAgIGlmICghc2hvd0RlcHJlY2F0ZWQpIHtcbiAgICAgICAgb3B0aW9uLmNob2ljZXMgPSBvcHRpb24uY2hvaWNlcy5maWx0ZXIoKGNob2ljZSkgPT4gIWNob2ljZS5kZXByZWNhdGVkKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb24ubmFtZSA9PT0gXCJwYXJzZXJcIikge1xuICAgICAgICBvcHRpb24uY2hvaWNlcyA9IFsuLi5vcHRpb24uY2hvaWNlcywgLi4uY29sbGVjdFBhcnNlcnNGcm9tTGFuZ3VhZ2VzKG9wdGlvbi5jaG9pY2VzLCBsYW5ndWFnZXMyLCBwbHVnaW5zKV07XG4gICAgICB9XG4gICAgfVxuICAgIG9wdGlvbi5wbHVnaW5EZWZhdWx0cyA9IE9iamVjdC5mcm9tRW50cmllcyhwbHVnaW5zLmZpbHRlcigocGx1Z2luKSA9PiB7XG4gICAgICB2YXIgX2E7XG4gICAgICByZXR1cm4gKChfYSA9IHBsdWdpbi5kZWZhdWx0T3B0aW9ucykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hW29wdGlvbi5uYW1lXSkgIT09IHZvaWQgMDtcbiAgICB9KS5tYXAoKHBsdWdpbikgPT4gW3BsdWdpbi5uYW1lLCBwbHVnaW4uZGVmYXVsdE9wdGlvbnNbb3B0aW9uLm5hbWVdXSkpO1xuICAgIG9wdGlvbnM4LnB1c2gob3B0aW9uKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGxhbmd1YWdlczogbGFuZ3VhZ2VzMixcbiAgICBvcHRpb25zOiBvcHRpb25zOFxuICB9O1xufVxuZnVuY3Rpb24qIGNvbGxlY3RQYXJzZXJzRnJvbUxhbmd1YWdlcyhwYXJzZXJDaG9pY2VzLCBsYW5ndWFnZXMyLCBwbHVnaW5zKSB7XG4gIGNvbnN0IGV4aXN0aW5nUGFyc2VycyA9IG5ldyBTZXQocGFyc2VyQ2hvaWNlcy5tYXAoKGNob2ljZSkgPT4gY2hvaWNlLnZhbHVlKSk7XG4gIGZvciAoY29uc3QgbGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzMikge1xuICAgIGlmIChsYW5ndWFnZS5wYXJzZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhcnNlck5hbWUgb2YgbGFuZ3VhZ2UucGFyc2Vycykge1xuICAgICAgICBpZiAoIWV4aXN0aW5nUGFyc2Vycy5oYXMocGFyc2VyTmFtZSkpIHtcbiAgICAgICAgICBleGlzdGluZ1BhcnNlcnMuYWRkKHBhcnNlck5hbWUpO1xuICAgICAgICAgIGNvbnN0IHBsdWdpbiA9IHBsdWdpbnMuZmluZCgocGx1Z2luMikgPT4gcGx1Z2luMi5wYXJzZXJzICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwbHVnaW4yLnBhcnNlcnMsIHBhcnNlck5hbWUpKTtcbiAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSBsYW5ndWFnZS5uYW1lO1xuICAgICAgICAgIGlmIChwbHVnaW4gPT0gbnVsbCA/IHZvaWQgMCA6IHBsdWdpbi5uYW1lKSB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgIChwbHVnaW46ICR7cGx1Z2luLm5hbWV9KWA7XG4gICAgICAgICAgfVxuICAgICAgICAgIHlpZWxkIHtcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZXJOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVPcHRpb25TZXR0aW5ncyhzZXR0aW5ncykge1xuICBjb25zdCBvcHRpb25zOCA9IFtdO1xuICBmb3IgKGNvbnN0IFtuYW1lLCBvcmlnaW5hbE9wdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMoc2V0dGluZ3MpKSB7XG4gICAgY29uc3Qgb3B0aW9uID0ge1xuICAgICAgbmFtZSxcbiAgICAgIC4uLm9yaWdpbmFsT3B0aW9uXG4gICAgfTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb24uZGVmYXVsdCkpIHtcbiAgICAgIG9wdGlvbi5kZWZhdWx0ID0gYXRfZGVmYXVsdChcbiAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBvcHRpb24uZGVmYXVsdCxcbiAgICAgICAgLTFcbiAgICAgICkudmFsdWU7XG4gICAgfVxuICAgIG9wdGlvbnM4LnB1c2gob3B0aW9uKTtcbiAgfVxuICByZXR1cm4gb3B0aW9uczg7XG59XG5cbi8vIHNyYy91dGlscy9nZXQtaW50ZXJwcmV0ZXIuanNcbnZhciBpbXBvcnRfbl9yZWFkbGluZXMgPSBfX3RvRVNNKHJlcXVpcmVfcmVhZGxpbmVzKCksIDEpO1xuaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuZnVuY3Rpb24gZ2V0SW50ZXJwcmV0ZXIoZmlsZXBhdGgpIHtcbiAgaWYgKHR5cGVvZiBmaWxlcGF0aCAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIGxldCBmZDtcbiAgdHJ5IHtcbiAgICBmZCA9IGZzLm9wZW5TeW5jKGZpbGVwYXRoLCBcInJcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgbGluZXIgPSBuZXcgaW1wb3J0X25fcmVhZGxpbmVzLmRlZmF1bHQoZmQpO1xuICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVyLm5leHQoKS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgY29uc3QgbTEgPSBmaXJzdExpbmUubWF0Y2goL14jIVxcLyg/OnVzclxcLyk/YmluXFwvZW52XFxzKyhcXFMrKS8pO1xuICAgIGlmIChtMSkge1xuICAgICAgcmV0dXJuIG0xWzFdO1xuICAgIH1cbiAgICBjb25zdCBtMiA9IGZpcnN0TGluZS5tYXRjaCgvXiMhXFwvKD86dXNyXFwvKD86bG9jYWxcXC8pPyk/YmluXFwvKFxcUyspLyk7XG4gICAgaWYgKG0yKSB7XG4gICAgICByZXR1cm4gbTJbMV07XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gXCJcIjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgZnMuY2xvc2VTeW5jKGZkKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbn1cbnZhciBnZXRfaW50ZXJwcmV0ZXJfZGVmYXVsdCA9IGdldEludGVycHJldGVyO1xuXG4vLyBzcmMvdXRpbHMvaW5mZXItcGFyc2VyLmpzXG52YXIgZ2V0RmlsZUJhc2VuYW1lID0gKGZpbGUpID0+IGZpbGUuc3BsaXQoL1svXFxcXF0vKS5wb3AoKTtcbmZ1bmN0aW9uIGdldExhbmd1YWdlQnlGaWxlbmFtZShsYW5ndWFnZXMyLCBmaWxlbmFtZSkge1xuICBpZiAoIWZpbGVuYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGJhc2VuYW1lID0gZ2V0RmlsZUJhc2VuYW1lKGZpbGVuYW1lKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gbGFuZ3VhZ2VzMi5maW5kKFxuICAgIChsYW5ndWFnZSkgPT4ge1xuICAgICAgdmFyIF9hLCBfYjtcbiAgICAgIHJldHVybiAoKF9hID0gbGFuZ3VhZ2UuZXh0ZW5zaW9ucykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnNvbWUoKGV4dGVuc2lvbikgPT4gYmFzZW5hbWUuZW5kc1dpdGgoZXh0ZW5zaW9uKSkpIHx8ICgoX2IgPSBsYW5ndWFnZS5maWxlbmFtZXMpID09IG51bGwgPyB2b2lkIDAgOiBfYi5zb21lKChuYW1lKSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkgPT09IGJhc2VuYW1lKSk7XG4gICAgfVxuICApO1xufVxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VCeU5hbWUobGFuZ3VhZ2VzMiwgbGFuZ3VhZ2VOYW1lKSB7XG4gIGlmICghbGFuZ3VhZ2VOYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHJldHVybiBsYW5ndWFnZXMyLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lLnRvTG93ZXJDYXNlKCkgPT09IGxhbmd1YWdlTmFtZSkgPz8gbGFuZ3VhZ2VzMi5maW5kKCh7IGFsaWFzZXMgfSkgPT4gYWxpYXNlcyA9PSBudWxsID8gdm9pZCAwIDogYWxpYXNlcy5pbmNsdWRlcyhsYW5ndWFnZU5hbWUpKSA/PyBsYW5ndWFnZXMyLmZpbmQoKHsgZXh0ZW5zaW9ucyB9KSA9PiBleHRlbnNpb25zID09IG51bGwgPyB2b2lkIDAgOiBleHRlbnNpb25zLmluY2x1ZGVzKGAuJHtsYW5ndWFnZU5hbWV9YCkpO1xufVxuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2VCeUludGVycHJldGVyKGxhbmd1YWdlczIsIGZpbGUpIHtcbiAgaWYgKCFmaWxlIHx8IGdldEZpbGVCYXNlbmFtZShmaWxlKS5pbmNsdWRlcyhcIi5cIikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgaW50ZXJwcmV0ZXIgPSBnZXRfaW50ZXJwcmV0ZXJfZGVmYXVsdChmaWxlKTtcbiAgaWYgKCFpbnRlcnByZXRlcikge1xuICAgIHJldHVybjtcbiAgfVxuICByZXR1cm4gbGFuZ3VhZ2VzMi5maW5kKFxuICAgIChsYW5ndWFnZSkgPT4ge1xuICAgICAgdmFyIF9hO1xuICAgICAgcmV0dXJuIChfYSA9IGxhbmd1YWdlLmludGVycHJldGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmluY2x1ZGVzKGludGVycHJldGVyKTtcbiAgICB9XG4gICk7XG59XG5mdW5jdGlvbiBpbmZlclBhcnNlcihvcHRpb25zOCwgZmlsZUluZm8pIHtcbiAgY29uc3QgbGFuZ3VhZ2VzMiA9IG9wdGlvbnM4LnBsdWdpbnMuZmxhdE1hcChcbiAgICAocGx1Z2luKSA9PiAoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFNhZmVcbiAgICAgIHBsdWdpbi5sYW5ndWFnZXMgPz8gW11cbiAgICApXG4gICk7XG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2VCeU5hbWUobGFuZ3VhZ2VzMiwgZmlsZUluZm8ubGFuZ3VhZ2UpID8/IGdldExhbmd1YWdlQnlGaWxlbmFtZShsYW5ndWFnZXMyLCBmaWxlSW5mby5waHlzaWNhbEZpbGUpID8/IGdldExhbmd1YWdlQnlGaWxlbmFtZShsYW5ndWFnZXMyLCBmaWxlSW5mby5maWxlKSA/PyBnZXRMYW5ndWFnZUJ5SW50ZXJwcmV0ZXIobGFuZ3VhZ2VzMiwgZmlsZUluZm8ucGh5c2ljYWxGaWxlKTtcbiAgcmV0dXJuIGxhbmd1YWdlID09IG51bGwgPyB2b2lkIDAgOiBsYW5ndWFnZS5wYXJzZXJzWzBdO1xufVxudmFyIGluZmVyX3BhcnNlcl9kZWZhdWx0ID0gaW5mZXJQYXJzZXI7XG5cbi8vIHNyYy9tYWluL25vcm1hbGl6ZS1vcHRpb25zLmpzXG52YXIgaGFzRGVwcmVjYXRpb25XYXJuZWQ7XG5mdW5jdGlvbiBub3JtYWxpemVPcHRpb25zKG9wdGlvbnM4LCBvcHRpb25JbmZvcywge1xuICBsb2dnZXIgPSBmYWxzZSxcbiAgaXNDTEkgPSBmYWxzZSxcbiAgcGFzc1Rocm91Z2ggPSBmYWxzZSxcbiAgRmxhZ1NjaGVtYSxcbiAgZGVzY3JpcHRvclxufSA9IHt9KSB7XG4gIGlmIChpc0NMSSkge1xuICAgIGlmICghRmxhZ1NjaGVtYSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiJ0ZsYWdTY2hlbWEnIG9wdGlvbiBpcyByZXF1aXJlZC5cIik7XG4gICAgfVxuICAgIGlmICghZGVzY3JpcHRvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiJ2Rlc2NyaXB0b3InIG9wdGlvbiBpcyByZXF1aXJlZC5cIik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGRlc2NyaXB0b3IgPSBhcGlEZXNjcmlwdG9yO1xuICB9XG4gIGNvbnN0IHVua25vd24gPSAhcGFzc1Rocm91Z2ggPyAoa2V5LCB2YWx1ZSwgb3B0aW9uczkpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfLFxuICAgICAgLi4uc2NoZW1hczJcbiAgICB9ID0gb3B0aW9uczkuc2NoZW1hcztcbiAgICByZXR1cm4gbGV2ZW5Vbmtub3duSGFuZGxlcihrZXksIHZhbHVlLCB7XG4gICAgICAuLi5vcHRpb25zOSxcbiAgICAgIHNjaGVtYXM6IHNjaGVtYXMyXG4gICAgfSk7XG4gIH0gOiBBcnJheS5pc0FycmF5KHBhc3NUaHJvdWdoKSA/IChrZXksIHZhbHVlKSA9PiAhcGFzc1Rocm91Z2guaW5jbHVkZXMoa2V5KSA/IHZvaWQgMCA6IHtcbiAgICBba2V5XTogdmFsdWVcbiAgfSA6IChrZXksIHZhbHVlKSA9PiAoe1xuICAgIFtrZXldOiB2YWx1ZVxuICB9KTtcbiAgY29uc3Qgc2NoZW1hcyA9IG9wdGlvbkluZm9zVG9TY2hlbWFzKG9wdGlvbkluZm9zLCB7XG4gICAgaXNDTEksXG4gICAgRmxhZ1NjaGVtYVxuICB9KTtcbiAgY29uc3Qgbm9ybWFsaXplciA9IG5ldyBOb3JtYWxpemVyKHNjaGVtYXMsIHtcbiAgICBsb2dnZXIsXG4gICAgdW5rbm93bixcbiAgICBkZXNjcmlwdG9yXG4gIH0pO1xuICBjb25zdCBzaG91bGRTdXBwcmVzc0R1cGxpY2F0ZURlcHJlY2F0aW9uV2FybmluZ3MgPSBsb2dnZXIgIT09IGZhbHNlO1xuICBpZiAoc2hvdWxkU3VwcHJlc3NEdXBsaWNhdGVEZXByZWNhdGlvbldhcm5pbmdzICYmIGhhc0RlcHJlY2F0aW9uV2FybmVkKSB7XG4gICAgbm9ybWFsaXplci5faGFzRGVwcmVjYXRpb25XYXJuZWQgPSBoYXNEZXByZWNhdGlvbldhcm5lZDtcbiAgfVxuICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplci5ub3JtYWxpemUob3B0aW9uczgpO1xuICBpZiAoc2hvdWxkU3VwcHJlc3NEdXBsaWNhdGVEZXByZWNhdGlvbldhcm5pbmdzKSB7XG4gICAgaGFzRGVwcmVjYXRpb25XYXJuZWQgPSBub3JtYWxpemVyLl9oYXNEZXByZWNhdGlvbldhcm5lZDtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cbmZ1bmN0aW9uIG9wdGlvbkluZm9zVG9TY2hlbWFzKG9wdGlvbkluZm9zLCB7XG4gIGlzQ0xJLFxuICBGbGFnU2NoZW1hXG59KSB7XG4gIGNvbnN0IHNjaGVtYXMgPSBbXTtcbiAgaWYgKGlzQ0xJKSB7XG4gICAgc2NoZW1hcy5wdXNoKEFueVNjaGVtYS5jcmVhdGUoe1xuICAgICAgbmFtZTogXCJfXCJcbiAgICB9KSk7XG4gIH1cbiAgZm9yIChjb25zdCBvcHRpb25JbmZvIG9mIG9wdGlvbkluZm9zKSB7XG4gICAgc2NoZW1hcy5wdXNoKG9wdGlvbkluZm9Ub1NjaGVtYShvcHRpb25JbmZvLCB7XG4gICAgICBpc0NMSSxcbiAgICAgIG9wdGlvbkluZm9zLFxuICAgICAgRmxhZ1NjaGVtYVxuICAgIH0pKTtcbiAgICBpZiAob3B0aW9uSW5mby5hbGlhcyAmJiBpc0NMSSkge1xuICAgICAgc2NoZW1hcy5wdXNoKEFsaWFzU2NoZW1hLmNyZWF0ZSh7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgbmFtZTogb3B0aW9uSW5mby5hbGlhcyxcbiAgICAgICAgc291cmNlTmFtZTogb3B0aW9uSW5mby5uYW1lXG4gICAgICB9KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFzO1xufVxuZnVuY3Rpb24gb3B0aW9uSW5mb1RvU2NoZW1hKG9wdGlvbkluZm8sIHtcbiAgaXNDTEksXG4gIG9wdGlvbkluZm9zLFxuICBGbGFnU2NoZW1hXG59KSB7XG4gIGNvbnN0IHtcbiAgICBuYW1lXG4gIH0gPSBvcHRpb25JbmZvO1xuICBjb25zdCBwYXJhbWV0ZXJzID0ge1xuICAgIG5hbWVcbiAgfTtcbiAgbGV0IFNjaGVtYUNvbnN0cnVjdG9yO1xuICBjb25zdCBoYW5kbGVycyA9IHt9O1xuICBzd2l0Y2ggKG9wdGlvbkluZm8udHlwZSkge1xuICAgIGNhc2UgXCJpbnRcIjpcbiAgICAgIFNjaGVtYUNvbnN0cnVjdG9yID0gSW50ZWdlclNjaGVtYTtcbiAgICAgIGlmIChpc0NMSSkge1xuICAgICAgICBwYXJhbWV0ZXJzLnByZXByb2Nlc3MgPSBOdW1iZXI7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICBTY2hlbWFDb25zdHJ1Y3RvciA9IFN0cmluZ1NjaGVtYTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjaG9pY2VcIjpcbiAgICAgIFNjaGVtYUNvbnN0cnVjdG9yID0gQ2hvaWNlU2NoZW1hO1xuICAgICAgcGFyYW1ldGVycy5jaG9pY2VzID0gb3B0aW9uSW5mby5jaG9pY2VzLm1hcCgoY2hvaWNlSW5mbykgPT4gKGNob2ljZUluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IGNob2ljZUluZm8ucmVkaXJlY3QpID8ge1xuICAgICAgICAuLi5jaG9pY2VJbmZvLFxuICAgICAgICByZWRpcmVjdDoge1xuICAgICAgICAgIHRvOiB7XG4gICAgICAgICAgICBrZXk6IG9wdGlvbkluZm8ubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBjaG9pY2VJbmZvLnJlZGlyZWN0XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IDogY2hvaWNlSW5mbyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgU2NoZW1hQ29uc3RydWN0b3IgPSBCb29sZWFuU2NoZW1hO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImZsYWdcIjpcbiAgICAgIFNjaGVtYUNvbnN0cnVjdG9yID0gRmxhZ1NjaGVtYTtcbiAgICAgIHBhcmFtZXRlcnMuZmxhZ3MgPSBvcHRpb25JbmZvcy5mbGF0TWFwKChvcHRpb25JbmZvMikgPT4gW29wdGlvbkluZm8yLmFsaWFzLCBvcHRpb25JbmZvMi5kZXNjcmlwdGlvbiAmJiBvcHRpb25JbmZvMi5uYW1lLCBvcHRpb25JbmZvMi5vcHBvc2l0ZURlc2NyaXB0aW9uICYmIGBuby0ke29wdGlvbkluZm8yLm5hbWV9YF0uZmlsdGVyKEJvb2xlYW4pKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJwYXRoXCI6XG4gICAgICBTY2hlbWFDb25zdHJ1Y3RvciA9IFN0cmluZ1NjaGVtYTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdHlwZSAke29wdGlvbkluZm8udHlwZX1gKTtcbiAgfVxuICBpZiAob3B0aW9uSW5mby5leGNlcHRpb24pIHtcbiAgICBwYXJhbWV0ZXJzLnZhbGlkYXRlID0gKHZhbHVlLCBzY2hlbWEsIHV0aWxzKSA9PiBvcHRpb25JbmZvLmV4Y2VwdGlvbih2YWx1ZSkgfHwgc2NoZW1hLnZhbGlkYXRlKHZhbHVlLCB1dGlscyk7XG4gIH0gZWxzZSB7XG4gICAgcGFyYW1ldGVycy52YWxpZGF0ZSA9ICh2YWx1ZSwgc2NoZW1hLCB1dGlscykgPT4gdmFsdWUgPT09IHZvaWQgMCB8fCBzY2hlbWEudmFsaWRhdGUodmFsdWUsIHV0aWxzKTtcbiAgfVxuICBpZiAob3B0aW9uSW5mby5yZWRpcmVjdCkge1xuICAgIGhhbmRsZXJzLnJlZGlyZWN0ID0gKHZhbHVlKSA9PiAhdmFsdWUgPyB2b2lkIDAgOiB7XG4gICAgICB0bzoge1xuICAgICAgICBrZXk6IG9wdGlvbkluZm8ucmVkaXJlY3Qub3B0aW9uLFxuICAgICAgICB2YWx1ZTogb3B0aW9uSW5mby5yZWRpcmVjdC52YWx1ZVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgaWYgKG9wdGlvbkluZm8uZGVwcmVjYXRlZCkge1xuICAgIGhhbmRsZXJzLmRlcHJlY2F0ZWQgPSB0cnVlO1xuICB9XG4gIGlmIChpc0NMSSAmJiAhb3B0aW9uSW5mby5hcnJheSkge1xuICAgIGNvbnN0IG9yaWdpbmFsUHJlcHJvY2VzcyA9IHBhcmFtZXRlcnMucHJlcHJvY2VzcyB8fCAoKHgpID0+IHgpO1xuICAgIHBhcmFtZXRlcnMucHJlcHJvY2VzcyA9ICh2YWx1ZSwgc2NoZW1hLCB1dGlscykgPT4gc2NoZW1hLnByZXByb2Nlc3Mob3JpZ2luYWxQcmVwcm9jZXNzKEFycmF5LmlzQXJyYXkodmFsdWUpID8gYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICB2YWx1ZSxcbiAgICAgIC0xXG4gICAgKSA6IHZhbHVlKSwgdXRpbHMpO1xuICB9XG4gIHJldHVybiBvcHRpb25JbmZvLmFycmF5ID8gQXJyYXlTY2hlbWEuY3JlYXRlKHtcbiAgICAuLi5pc0NMSSA/IHtcbiAgICAgIHByZXByb2Nlc3M6ICh2KSA9PiBBcnJheS5pc0FycmF5KHYpID8gdiA6IFt2XVxuICAgIH0gOiB7fSxcbiAgICAuLi5oYW5kbGVycyxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdmFsdWVTY2hlbWE6IFNjaGVtYUNvbnN0cnVjdG9yLmNyZWF0ZShwYXJhbWV0ZXJzKVxuICB9KSA6IFNjaGVtYUNvbnN0cnVjdG9yLmNyZWF0ZSh7XG4gICAgLi4ucGFyYW1ldGVycyxcbiAgICAuLi5oYW5kbGVyc1xuICB9KTtcbn1cbnZhciBub3JtYWxpemVfb3B0aW9uc19kZWZhdWx0ID0gbm9ybWFsaXplT3B0aW9ucztcblxuLy8gc3JjL21haW4vcGFyc2VyLWFuZC1wcmludGVyLmpzXG5mdW5jdGlvbiBnZXRQYXJzZXJQbHVnaW5CeVBhcnNlck5hbWUocGx1Z2lucywgcGFyc2VyTmFtZSkge1xuICBpZiAoIXBhcnNlck5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJwYXJzZXJOYW1lIGlzIHJlcXVpcmVkLlwiKTtcbiAgfVxuICBmb3IgKGxldCBpbmRleCA9IHBsdWdpbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IHBsdWdpbiA9IHBsdWdpbnNbaW5kZXhdO1xuICAgIGlmIChwbHVnaW4ucGFyc2VycyAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGx1Z2luLnBhcnNlcnMsIHBhcnNlck5hbWUpKSB7XG4gICAgICByZXR1cm4gcGx1Z2luO1xuICAgIH1cbiAgfVxuICBsZXQgbWVzc2FnZSA9IGBDb3VsZG4ndCByZXNvbHZlIHBhcnNlciBcIiR7cGFyc2VyTmFtZX1cIi5gO1xuICBpZiAoZmFsc2UpIHtcbiAgICBtZXNzYWdlICs9IFwiIFBsdWdpbnMgbXVzdCBiZSBleHBsaWNpdGx5IGFkZGVkIHRvIHRoZSBzdGFuZGFsb25lIGJ1bmRsZS5cIjtcbiAgfVxuICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IobWVzc2FnZSk7XG59XG5mdW5jdGlvbiBnZXRQcmludGVyUGx1Z2luQnlBc3RGb3JtYXQocGx1Z2lucywgYXN0Rm9ybWF0KSB7XG4gIGlmICghYXN0Rm9ybWF0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiYXN0Rm9ybWF0IGlzIHJlcXVpcmVkLlwiKTtcbiAgfVxuICBmb3IgKGxldCBpbmRleCA9IHBsdWdpbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IHBsdWdpbiA9IHBsdWdpbnNbaW5kZXhdO1xuICAgIGlmIChwbHVnaW4ucHJpbnRlcnMgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBsdWdpbi5wcmludGVycywgYXN0Rm9ybWF0KSkge1xuICAgICAgcmV0dXJuIHBsdWdpbjtcbiAgICB9XG4gIH1cbiAgbGV0IG1lc3NhZ2UgPSBgQ291bGRuJ3QgZmluZCBwbHVnaW4gZm9yIEFTVCBmb3JtYXQgXCIke2FzdEZvcm1hdH1cIi5gO1xuICBpZiAoZmFsc2UpIHtcbiAgICBtZXNzYWdlICs9IFwiIFBsdWdpbnMgbXVzdCBiZSBleHBsaWNpdGx5IGFkZGVkIHRvIHRoZSBzdGFuZGFsb25lIGJ1bmRsZS5cIjtcbiAgfVxuICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IobWVzc2FnZSk7XG59XG5mdW5jdGlvbiByZXNvbHZlUGFyc2VyKHtcbiAgcGx1Z2lucyxcbiAgcGFyc2VyXG59KSB7XG4gIGNvbnN0IHBsdWdpbiA9IGdldFBhcnNlclBsdWdpbkJ5UGFyc2VyTmFtZShwbHVnaW5zLCBwYXJzZXIpO1xuICByZXR1cm4gaW5pdFBhcnNlcihwbHVnaW4sIHBhcnNlcik7XG59XG5mdW5jdGlvbiBpbml0UGFyc2VyKHBsdWdpbiwgcGFyc2VyTmFtZSkge1xuICBjb25zdCBwYXJzZXJPclBhcnNlckluaXRGdW5jdGlvbiA9IHBsdWdpbi5wYXJzZXJzW3BhcnNlck5hbWVdO1xuICByZXR1cm4gdHlwZW9mIHBhcnNlck9yUGFyc2VySW5pdEZ1bmN0aW9uID09PSBcImZ1bmN0aW9uXCIgPyBwYXJzZXJPclBhcnNlckluaXRGdW5jdGlvbigpIDogcGFyc2VyT3JQYXJzZXJJbml0RnVuY3Rpb247XG59XG5mdW5jdGlvbiBpbml0UHJpbnRlcihwbHVnaW4sIGFzdEZvcm1hdCkge1xuICBjb25zdCBwcmludGVyT3JQcmludGVySW5pdEZ1bmN0aW9uID0gcGx1Z2luLnByaW50ZXJzW2FzdEZvcm1hdF07XG4gIHJldHVybiB0eXBlb2YgcHJpbnRlck9yUHJpbnRlckluaXRGdW5jdGlvbiA9PT0gXCJmdW5jdGlvblwiID8gcHJpbnRlck9yUHJpbnRlckluaXRGdW5jdGlvbigpIDogcHJpbnRlck9yUHJpbnRlckluaXRGdW5jdGlvbjtcbn1cblxuLy8gc3JjL21haW4vbm9ybWFsaXplLWZvcm1hdC1vcHRpb25zLmpzXG52YXIgZm9ybWF0T3B0aW9uc0hpZGRlbkRlZmF1bHRzID0ge1xuICBhc3RGb3JtYXQ6IFwiZXN0cmVlXCIsXG4gIHByaW50ZXI6IHt9LFxuICBvcmlnaW5hbFRleHQ6IHZvaWQgMCxcbiAgbG9jU3RhcnQ6IG51bGwsXG4gIGxvY0VuZDogbnVsbFxufTtcbmFzeW5jIGZ1bmN0aW9uIG5vcm1hbGl6ZUZvcm1hdE9wdGlvbnMob3B0aW9uczgsIG9wdHMgPSB7fSkge1xuICB2YXIgX2E7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSB7IC4uLm9wdGlvbnM4IH07XG4gIGlmICghcmF3T3B0aW9ucy5wYXJzZXIpIHtcbiAgICBpZiAoIXJhd09wdGlvbnMuZmlsZXBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBVbmRlZmluZWRQYXJzZXJFcnJvcihcbiAgICAgICAgXCJObyBwYXJzZXIgYW5kIG5vIGZpbGUgcGF0aCBnaXZlbiwgY291bGRuJ3QgaW5mZXIgYSBwYXJzZXIuXCJcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhd09wdGlvbnMucGFyc2VyID0gaW5mZXJfcGFyc2VyX2RlZmF1bHQocmF3T3B0aW9ucywge1xuICAgICAgICBwaHlzaWNhbEZpbGU6IHJhd09wdGlvbnMuZmlsZXBhdGhcbiAgICAgIH0pO1xuICAgICAgaWYgKCFyYXdPcHRpb25zLnBhcnNlcikge1xuICAgICAgICB0aHJvdyBuZXcgVW5kZWZpbmVkUGFyc2VyRXJyb3IoXG4gICAgICAgICAgYE5vIHBhcnNlciBjb3VsZCBiZSBpbmZlcnJlZCBmb3IgZmlsZSBcIiR7cmF3T3B0aW9ucy5maWxlcGF0aH1cIi5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IHN1cHBvcnRPcHRpb25zID0gZ2V0U3VwcG9ydEluZm8oe1xuICAgIHBsdWdpbnM6IG9wdGlvbnM4LnBsdWdpbnMsXG4gICAgc2hvd0RlcHJlY2F0ZWQ6IHRydWVcbiAgfSkub3B0aW9ucztcbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgLi4uZm9ybWF0T3B0aW9uc0hpZGRlbkRlZmF1bHRzLFxuICAgIC4uLk9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHN1cHBvcnRPcHRpb25zLmZpbHRlcigob3B0aW9uSW5mbykgPT4gb3B0aW9uSW5mby5kZWZhdWx0ICE9PSB2b2lkIDApLm1hcCgob3B0aW9uKSA9PiBbb3B0aW9uLm5hbWUsIG9wdGlvbi5kZWZhdWx0XSlcbiAgICApXG4gIH07XG4gIGNvbnN0IHBhcnNlclBsdWdpbiA9IGdldFBhcnNlclBsdWdpbkJ5UGFyc2VyTmFtZShcbiAgICByYXdPcHRpb25zLnBsdWdpbnMsXG4gICAgcmF3T3B0aW9ucy5wYXJzZXJcbiAgKTtcbiAgY29uc3QgcGFyc2VyID0gYXdhaXQgaW5pdFBhcnNlcihwYXJzZXJQbHVnaW4sIHJhd09wdGlvbnMucGFyc2VyKTtcbiAgcmF3T3B0aW9ucy5hc3RGb3JtYXQgPSBwYXJzZXIuYXN0Rm9ybWF0O1xuICByYXdPcHRpb25zLmxvY0VuZCA9IHBhcnNlci5sb2NFbmQ7XG4gIHJhd09wdGlvbnMubG9jU3RhcnQgPSBwYXJzZXIubG9jU3RhcnQ7XG4gIGNvbnN0IHByaW50ZXJQbHVnaW4gPSAoKF9hID0gcGFyc2VyUGx1Z2luLnByaW50ZXJzKSA9PSBudWxsID8gdm9pZCAwIDogX2FbcGFyc2VyLmFzdEZvcm1hdF0pID8gcGFyc2VyUGx1Z2luIDogZ2V0UHJpbnRlclBsdWdpbkJ5QXN0Rm9ybWF0KHJhd09wdGlvbnMucGx1Z2lucywgcGFyc2VyLmFzdEZvcm1hdCk7XG4gIGNvbnN0IHByaW50ZXIgPSBhd2FpdCBpbml0UHJpbnRlcihwcmludGVyUGx1Z2luLCBwYXJzZXIuYXN0Rm9ybWF0KTtcbiAgcmF3T3B0aW9ucy5wcmludGVyID0gcHJpbnRlcjtcbiAgY29uc3QgcGx1Z2luRGVmYXVsdHMgPSBwcmludGVyUGx1Z2luLmRlZmF1bHRPcHRpb25zID8gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKHByaW50ZXJQbHVnaW4uZGVmYXVsdE9wdGlvbnMpLmZpbHRlcihcbiAgICAgIChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB2b2lkIDBcbiAgICApXG4gICkgOiB7fTtcbiAgY29uc3QgbWl4ZWREZWZhdWx0cyA9IHsgLi4uZGVmYXVsdHMsIC4uLnBsdWdpbkRlZmF1bHRzIH07XG4gIGZvciAoY29uc3QgW2ssIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhtaXhlZERlZmF1bHRzKSkge1xuICAgIGlmIChyYXdPcHRpb25zW2tdID09PSBudWxsIHx8IHJhd09wdGlvbnNba10gPT09IHZvaWQgMCkge1xuICAgICAgcmF3T3B0aW9uc1trXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBpZiAocmF3T3B0aW9ucy5wYXJzZXIgPT09IFwianNvblwiKSB7XG4gICAgcmF3T3B0aW9ucy50cmFpbGluZ0NvbW1hID0gXCJub25lXCI7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZV9vcHRpb25zX2RlZmF1bHQocmF3T3B0aW9ucywgc3VwcG9ydE9wdGlvbnMsIHtcbiAgICBwYXNzVGhyb3VnaDogT2JqZWN0LmtleXMoZm9ybWF0T3B0aW9uc0hpZGRlbkRlZmF1bHRzKSxcbiAgICAuLi5vcHRzXG4gIH0pO1xufVxudmFyIG5vcm1hbGl6ZV9mb3JtYXRfb3B0aW9uc19kZWZhdWx0ID0gbm9ybWFsaXplRm9ybWF0T3B0aW9ucztcblxuLy8gc3JjL21haW4vY3JlYXRlLWdldC12aXNpdG9yLWtleXMtZnVuY3Rpb24uanNcbnZhciBub25UcmF2ZXJzYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbXG4gIFwidG9rZW5zXCIsXG4gIFwiY29tbWVudHNcIixcbiAgXCJwYXJlbnRcIixcbiAgXCJlbmNsb3NpbmdOb2RlXCIsXG4gIFwicHJlY2VkaW5nTm9kZVwiLFxuICBcImZvbGxvd2luZ05vZGVcIlxuXSk7XG52YXIgZGVmYXVsdEdldFZpc2l0b3JLZXlzID0gKG5vZGUpID0+IE9iamVjdC5rZXlzKG5vZGUpLmZpbHRlcigoa2V5KSA9PiAhbm9uVHJhdmVyc2FibGVLZXlzLmhhcyhrZXkpKTtcbmZ1bmN0aW9uIGNyZWF0ZUdldFZpc2l0b3JLZXlzRnVuY3Rpb24ocHJpbnRlckdldFZpc2l0b3JLZXlzKSB7XG4gIHJldHVybiBwcmludGVyR2V0VmlzaXRvcktleXMgPyAobm9kZSkgPT4gcHJpbnRlckdldFZpc2l0b3JLZXlzKG5vZGUsIG5vblRyYXZlcnNhYmxlS2V5cykgOiBkZWZhdWx0R2V0VmlzaXRvcktleXM7XG59XG52YXIgY3JlYXRlX2dldF92aXNpdG9yX2tleXNfZnVuY3Rpb25fZGVmYXVsdCA9IGNyZWF0ZUdldFZpc2l0b3JLZXlzRnVuY3Rpb247XG5cbi8vIHNyYy9tYWluL21hc3NhZ2UtYXN0LmpzXG5mdW5jdGlvbiBtYXNzYWdlQXN0KGFzdCwgb3B0aW9uczgpIHtcbiAgY29uc3Qge1xuICAgIHByaW50ZXI6IHtcbiAgICAgIG1hc3NhZ2VBc3ROb2RlOiBjbGVhbkZ1bmN0aW9uLFxuICAgICAgZ2V0VmlzaXRvcktleXM6IHByaW50ZXJHZXRWaXNpdG9yS2V5c1xuICAgIH1cbiAgfSA9IG9wdGlvbnM4O1xuICBpZiAoIWNsZWFuRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gYXN0O1xuICB9XG4gIGNvbnN0IGdldFZpc2l0b3JLZXlzID0gY3JlYXRlX2dldF92aXNpdG9yX2tleXNfZnVuY3Rpb25fZGVmYXVsdChwcmludGVyR2V0VmlzaXRvcktleXMpO1xuICBjb25zdCBpZ25vcmVkUHJvcGVydGllcyA9IGNsZWFuRnVuY3Rpb24uaWdub3JlZFByb3BlcnRpZXMgPz8gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgcmV0dXJuIHJlY3Vyc2UoYXN0KTtcbiAgZnVuY3Rpb24gcmVjdXJzZShub2RlLCBwYXJlbnQpIHtcbiAgICBpZiAoIShub2RlICE9PSBudWxsICYmIHR5cGVvZiBub2RlID09PSBcIm9iamVjdFwiKSkge1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KG5vZGUpKSB7XG4gICAgICByZXR1cm4gbm9kZS5tYXAoKGNoaWxkKSA9PiByZWN1cnNlKGNoaWxkLCBwYXJlbnQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICAgIGNvbnN0IG5ld09iaiA9IHt9O1xuICAgIGNvbnN0IGNoaWxkcmVuS2V5cyA9IG5ldyBTZXQoZ2V0VmlzaXRvcktleXMobm9kZSkpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG5vZGUpIHtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5vZGUsIGtleSkgfHwgaWdub3JlZFByb3BlcnRpZXMuaGFzKGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGRyZW5LZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIG5ld09ialtrZXldID0gcmVjdXJzZShub2RlW2tleV0sIG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqW2tleV0gPSBub2RlW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGNsZWFuRnVuY3Rpb24obm9kZSwgbmV3T2JqLCBwYXJlbnQpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCA/PyBuZXdPYmo7XG4gIH1cbn1cbnZhciBtYXNzYWdlX2FzdF9kZWZhdWx0ID0gbWFzc2FnZUFzdDtcblxuLy8gc3JjL21haW4vcGFyc2UuanNcbnZhciBpbXBvcnRfY29kZV9mcmFtZSA9IF9fdG9FU00ocmVxdWlyZV9saWIzKCksIDEpO1xuYXN5bmMgZnVuY3Rpb24gcGFyc2Uob3JpZ2luYWxUZXh0LCBvcHRpb25zOCkge1xuICBjb25zdCBwYXJzZXIgPSBhd2FpdCByZXNvbHZlUGFyc2VyKG9wdGlvbnM4KTtcbiAgY29uc3QgdGV4dCA9IHBhcnNlci5wcmVwcm9jZXNzID8gcGFyc2VyLnByZXByb2Nlc3Mob3JpZ2luYWxUZXh0LCBvcHRpb25zOCkgOiBvcmlnaW5hbFRleHQ7XG4gIG9wdGlvbnM4Lm9yaWdpbmFsVGV4dCA9IHRleHQ7XG4gIGxldCBhc3Q7XG4gIHRyeSB7XG4gICAgYXN0ID0gYXdhaXQgcGFyc2VyLnBhcnNlKFxuICAgICAgdGV4dCxcbiAgICAgIG9wdGlvbnM4LFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSB0aGlyZCBhcmd1bWVudCBpbiB2NFxuICAgICAgLy8gVGhlIGR1cGxpY2F0ZWQgYXJndW1lbnQgaXMgcGFzc2VkIGFzIGludGVuZGVkLCBzZWUgIzEwMTU2XG4gICAgICBvcHRpb25zOFxuICAgICk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaGFuZGxlUGFyc2VFcnJvcihlcnJvciwgb3JpZ2luYWxUZXh0KTtcbiAgfVxuICByZXR1cm4geyB0ZXh0LCBhc3QgfTtcbn1cbmZ1bmN0aW9uIGhhbmRsZVBhcnNlRXJyb3IoZXJyb3IsIHRleHQpIHtcbiAgY29uc3QgeyBsb2MgfSA9IGVycm9yO1xuICBpZiAobG9jKSB7XG4gICAgY29uc3QgY29kZUZyYW1lID0gKDAsIGltcG9ydF9jb2RlX2ZyYW1lLmNvZGVGcmFtZUNvbHVtbnMpKHRleHQsIGxvYywgeyBoaWdobGlnaHRDb2RlOiB0cnVlIH0pO1xuICAgIGVycm9yLm1lc3NhZ2UgKz0gXCJcXG5cIiArIGNvZGVGcmFtZTtcbiAgICBlcnJvci5jb2RlRnJhbWUgPSBjb2RlRnJhbWU7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbiAgdGhyb3cgZXJyb3I7XG59XG52YXIgcGFyc2VfZGVmYXVsdCA9IHBhcnNlO1xuXG4vLyBzcmMvY29tbW9uL2FzdC1wYXRoLmpzXG52YXIgX2dldE5vZGVTdGFja0luZGV4LCBnZXROb2RlU3RhY2tJbmRleF9mbiwgX2dldEFuY2VzdG9ycywgZ2V0QW5jZXN0b3JzX2ZuO1xudmFyIEFzdFBhdGggPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHZhbHVlKSB7XG4gICAgX19wcml2YXRlQWRkKHRoaXMsIF9nZXROb2RlU3RhY2tJbmRleCk7XG4gICAgX19wcml2YXRlQWRkKHRoaXMsIF9nZXRBbmNlc3RvcnMpO1xuICAgIHRoaXMuc3RhY2sgPSBbdmFsdWVdO1xuICB9XG4gIC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVsbH0gKi9cbiAgZ2V0IGtleSgpIHtcbiAgICBjb25zdCB7XG4gICAgICBzdGFjayxcbiAgICAgIHNpYmxpbmdzXG4gICAgfSA9IHRoaXM7XG4gICAgcmV0dXJuIGF0X2RlZmF1bHQoXG4gICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgIGZhbHNlLFxuICAgICAgc3RhY2ssXG4gICAgICBzaWJsaW5ncyA9PT0gbnVsbCA/IC0yIDogLTRcbiAgICApID8/IG51bGw7XG4gIH1cbiAgLyoqIEB0eXBlIHtudW1iZXIgfCBudWxsfSAqL1xuICBnZXQgaW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2libGluZ3MgPT09IG51bGwgPyBudWxsIDogYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLnN0YWNrLFxuICAgICAgLTJcbiAgICApO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0fSAqL1xuICBnZXQgbm9kZSgpIHtcbiAgICByZXR1cm4gYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLnN0YWNrLFxuICAgICAgLTFcbiAgICApO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0IHwgbnVsbH0gKi9cbiAgZ2V0IHBhcmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKDEpO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0IHwgbnVsbH0gKi9cbiAgZ2V0IGdyYW5kcGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLmdldE5vZGUoMik7XG4gIH1cbiAgLyoqIEB0eXBlIHtib29sZWFufSAqL1xuICBnZXQgaXNJbkFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLnNpYmxpbmdzICE9PSBudWxsO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0W10gfCBudWxsfSAqL1xuICBnZXQgc2libGluZ3MoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3RhY2tcbiAgICB9ID0gdGhpcztcbiAgICBjb25zdCBtYXliZUFycmF5ID0gYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICBzdGFjayxcbiAgICAgIC0zXG4gICAgKTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShtYXliZUFycmF5KSA/IG1heWJlQXJyYXkgOiBudWxsO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0IHwgbnVsbH0gKi9cbiAgZ2V0IG5leHQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc2libGluZ3NcbiAgICB9ID0gdGhpcztcbiAgICByZXR1cm4gc2libGluZ3MgPT09IG51bGwgPyBudWxsIDogc2libGluZ3NbdGhpcy5pbmRleCArIDFdO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0IHwgbnVsbH0gKi9cbiAgZ2V0IHByZXZpb3VzKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHNpYmxpbmdzXG4gICAgfSA9IHRoaXM7XG4gICAgcmV0dXJuIHNpYmxpbmdzID09PSBudWxsID8gbnVsbCA6IHNpYmxpbmdzW3RoaXMuaW5kZXggLSAxXTtcbiAgfVxuICAvKiogQHR5cGUge2Jvb2xlYW59ICovXG4gIGdldCBpc0ZpcnN0KCkge1xuICAgIHJldHVybiB0aGlzLmluZGV4ID09PSAwO1xuICB9XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgZ2V0IGlzTGFzdCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBzaWJsaW5ncyxcbiAgICAgIGluZGV4XG4gICAgfSA9IHRoaXM7XG4gICAgcmV0dXJuIHNpYmxpbmdzICE9PSBudWxsICYmIGluZGV4ID09PSBzaWJsaW5ncy5sZW5ndGggLSAxO1xuICB9XG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgZ2V0IGlzUm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFjay5sZW5ndGggPT09IDE7XG4gIH1cbiAgLyoqIEB0eXBlIHtvYmplY3R9ICovXG4gIGdldCByb290KCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrWzBdO1xuICB9XG4gIC8qKiBAdHlwZSB7b2JqZWN0W119ICovXG4gIGdldCBhbmNlc3RvcnMoKSB7XG4gICAgcmV0dXJuIFsuLi5fX3ByaXZhdGVNZXRob2QodGhpcywgX2dldEFuY2VzdG9ycywgZ2V0QW5jZXN0b3JzX2ZuKS5jYWxsKHRoaXMpXTtcbiAgfVxuICAvLyBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBwcm9wZXJ0eSBpcyBhbHdheXMgdGhlIHBlbnVsdGltYXRlIGVsZW1lbnQgb2ZcbiAgLy8gdGhpcy5zdGFjaywgYW5kIGFsd2F5cyBhIHN0cmluZy9udW1iZXIvc3ltYm9sLlxuICBnZXROYW1lKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN0YWNrXG4gICAgfSA9IHRoaXM7XG4gICAgY29uc3Qge1xuICAgICAgbGVuZ3RoXG4gICAgfSA9IHN0YWNrO1xuICAgIGlmIChsZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gYXRfZGVmYXVsdChcbiAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBzdGFjayxcbiAgICAgICAgLTJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIFRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBwcm9wZXJ0eSBpcyBhbHdheXMgdGhlIGZpbmFsIGVsZW1lbnQgb2ZcbiAgLy8gdGhpcy5zdGFjay5cbiAgZ2V0VmFsdWUoKSB7XG4gICAgcmV0dXJuIGF0X2RlZmF1bHQoXG4gICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5zdGFjayxcbiAgICAgIC0xXG4gICAgKTtcbiAgfVxuICBnZXROb2RlKGNvdW50ID0gMCkge1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBfX3ByaXZhdGVNZXRob2QodGhpcywgX2dldE5vZGVTdGFja0luZGV4LCBnZXROb2RlU3RhY2tJbmRleF9mbikuY2FsbCh0aGlzLCBjb3VudCk7XG4gICAgcmV0dXJuIHN0YWNrSW5kZXggPT09IC0xID8gbnVsbCA6IHRoaXMuc3RhY2tbc3RhY2tJbmRleF07XG4gIH1cbiAgZ2V0UGFyZW50Tm9kZShjb3VudCA9IDApIHtcbiAgICByZXR1cm4gdGhpcy5nZXROb2RlKGNvdW50ICsgMSk7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgcHVzaCBwcm9wZXJ0aWVzIG5hbWVkIGJ5IHN0cmluZyBhcmd1bWVudHMgZ2l2ZW4gYWZ0ZXIgdGhlXG4gIC8vIGNhbGxiYWNrIGZ1bmN0aW9uIG9udG8gdGhpcy5zdGFjaywgdGhlbiBjYWxsIHRoZSBjYWxsYmFjayB3aXRoIGFcbiAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgKG1vZGlmaWVkKSBBc3RQYXRoIG9iamVjdC4gTm90ZSB0aGF0IHRoZSBzdGFjayB3aWxsXG4gIC8vIGJlIHJlc3RvcmVkIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZSBhZnRlciB0aGUgY2FsbGJhY2sgaXMgZmluaXNoZWQsIHNvIGl0XG4gIC8vIGlzIHByb2JhYmx5IGEgbWlzdGFrZSB0byByZXRhaW4gYSByZWZlcmVuY2UgdG8gdGhlIHBhdGguXG4gIGNhbGwoY2FsbGJhY2ssIC4uLm5hbWVzKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3RhY2tcbiAgICB9ID0gdGhpcztcbiAgICBjb25zdCB7XG4gICAgICBsZW5ndGhcbiAgICB9ID0gc3RhY2s7XG4gICAgbGV0IHZhbHVlID0gYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICBzdGFjayxcbiAgICAgIC0xXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIHZhbHVlID0gdmFsdWVbbmFtZV07XG4gICAgICBzdGFjay5wdXNoKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc3RhY2subGVuZ3RoID0gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICBjYWxsUGFyZW50KGNhbGxiYWNrLCBjb3VudCA9IDApIHtcbiAgICBjb25zdCBzdGFja0luZGV4ID0gX19wcml2YXRlTWV0aG9kKHRoaXMsIF9nZXROb2RlU3RhY2tJbmRleCwgZ2V0Tm9kZVN0YWNrSW5kZXhfZm4pLmNhbGwodGhpcywgY291bnQgKyAxKTtcbiAgICBjb25zdCBwYXJlbnRWYWx1ZXMgPSB0aGlzLnN0YWNrLnNwbGljZShzdGFja0luZGV4ICsgMSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zdGFjay5wdXNoKC4uLnBhcmVudFZhbHVlcyk7XG4gICAgfVxuICB9XG4gIC8vIFNpbWlsYXIgdG8gQXN0UGF0aC5wcm90b3R5cGUuY2FsbCwgZXhjZXB0IHRoYXQgdGhlIHZhbHVlIG9idGFpbmVkIGJ5XG4gIC8vIGFjY2Vzc2luZyB0aGlzLmdldFZhbHVlKClbbmFtZTFdW25hbWUyXS4uLiBzaG91bGQgYmUgYXJyYXkuIFRoZVxuICAvLyBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoaXMgcGF0aCBvYmplY3QgZm9yIGVhY2hcbiAgLy8gZWxlbWVudCBvZiB0aGUgYXJyYXkuXG4gIGVhY2goY2FsbGJhY2ssIC4uLm5hbWVzKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3RhY2tcbiAgICB9ID0gdGhpcztcbiAgICBjb25zdCB7XG4gICAgICBsZW5ndGhcbiAgICB9ID0gc3RhY2s7XG4gICAgbGV0IHZhbHVlID0gYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICBzdGFjayxcbiAgICAgIC0xXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgIHZhbHVlID0gdmFsdWVbbmFtZV07XG4gICAgICBzdGFjay5wdXNoKG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgc3RhY2sucHVzaChpLCB2YWx1ZVtpXSk7XG4gICAgICAgIGNhbGxiYWNrKHRoaXMsIGksIHZhbHVlKTtcbiAgICAgICAgc3RhY2subGVuZ3RoIC09IDI7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHN0YWNrLmxlbmd0aCA9IGxlbmd0aDtcbiAgICB9XG4gIH1cbiAgLy8gU2ltaWxhciB0byBBc3RQYXRoLnByb3RvdHlwZS5lYWNoLCBleGNlcHQgdGhhdCB0aGUgcmVzdWx0cyBvZiB0aGVcbiAgLy8gY2FsbGJhY2sgZnVuY3Rpb24gaW52b2NhdGlvbnMgYXJlIHN0b3JlZCBpbiBhbiBhcnJheSBhbmQgcmV0dXJuZWQgYXRcbiAgLy8gdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLlxuICBtYXAoY2FsbGJhY2ssIC4uLm5hbWVzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgdGhpcy5lYWNoKChwYXRoOSwgaW5kZXgsIHZhbHVlKSA9PiB7XG4gICAgICByZXN1bHRbaW5kZXhdID0gY2FsbGJhY2socGF0aDksIGluZGV4LCB2YWx1ZSk7XG4gICAgfSwgLi4ubmFtZXMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIEBwYXJhbSB7Li4uKFxuICAgKiAgIHwgKChub2RlOiBhbnksIG5hbWU6IHN0cmluZyB8IG51bGwsIG51bWJlcjogbnVtYmVyIHwgbnVsbCkgPT4gYm9vbGVhbilcbiAgICogICB8IHVuZGVmaW5lZFxuICAgKiApfSBwcmVkaWNhdGVzXG4gICAqL1xuICBtYXRjaCguLi5wcmVkaWNhdGVzKSB7XG4gICAgbGV0IHN0YWNrUG9pbnRlciA9IHRoaXMuc3RhY2subGVuZ3RoIC0gMTtcbiAgICBsZXQgbmFtZSA9IG51bGw7XG4gICAgbGV0IG5vZGUgPSB0aGlzLnN0YWNrW3N0YWNrUG9pbnRlci0tXTtcbiAgICBmb3IgKGNvbnN0IHByZWRpY2F0ZSBvZiBwcmVkaWNhdGVzKSB7XG4gICAgICBpZiAobm9kZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGxldCBudW1iZXIgPSBudWxsO1xuICAgICAgaWYgKHR5cGVvZiBuYW1lID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIG51bWJlciA9IG5hbWU7XG4gICAgICAgIG5hbWUgPSB0aGlzLnN0YWNrW3N0YWNrUG9pbnRlci0tXTtcbiAgICAgICAgbm9kZSA9IHRoaXMuc3RhY2tbc3RhY2tQb2ludGVyLS1dO1xuICAgICAgfVxuICAgICAgaWYgKHByZWRpY2F0ZSAmJiAhcHJlZGljYXRlKG5vZGUsIG5hbWUsIG51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgbmFtZSA9IHRoaXMuc3RhY2tbc3RhY2tQb2ludGVyLS1dO1xuICAgICAgbm9kZSA9IHRoaXMuc3RhY2tbc3RhY2tQb2ludGVyLS1dO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvKipcbiAgICogVHJhdmVyc2VzIHRoZSBhbmNlc3RvcnMgb2YgdGhlIGN1cnJlbnQgbm9kZSBoZWFkaW5nIHRvd2FyZCB0aGUgdHJlZSByb290XG4gICAqIHVudGlsIGl0IGZpbmRzIGEgbm9kZSB0aGF0IG1hdGNoZXMgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBmdW5jdGlvbi4gV2lsbFxuICAgKiByZXR1cm4gdGhlIGZpcnN0IG1hdGNoaW5nIGFuY2VzdG9yLiBJZiBubyBzdWNoIG5vZGUgZXhpc3RzLCByZXR1cm5zIHVuZGVmaW5lZC5cbiAgICogQHBhcmFtIHsobm9kZTogYW55KSA9PiBib29sZWFufSBwcmVkaWNhdGVcbiAgICogQGludGVybmFsIFVuc3RhYmxlIEFQSS4gRG9uJ3QgdXNlIGluIHBsdWdpbnMgZm9yIG5vdy5cbiAgICovXG4gIGZpbmRBbmNlc3RvcihwcmVkaWNhdGUpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgX19wcml2YXRlTWV0aG9kKHRoaXMsIF9nZXRBbmNlc3RvcnMsIGdldEFuY2VzdG9yc19mbikuY2FsbCh0aGlzKSkge1xuICAgICAgaWYgKHByZWRpY2F0ZShub2RlKSkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB0aGUgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50IG5vZGUgaGVhZGluZyB0b3dhcmQgdGhlIHRyZWUgcm9vdFxuICAgKiB1bnRpbCBpdCBmaW5kcyBhIG5vZGUgdGhhdCBtYXRjaGVzIHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAqIHJldHVybnMgdHJ1ZSBpZiBtYXRjaGVkIG5vZGUgZm91bmQuXG4gICAqIEBwYXJhbSB7KG5vZGU6IGFueSkgPT4gYm9vbGVhbn0gcHJlZGljYXRlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKiBAaW50ZXJuYWwgVW5zdGFibGUgQVBJLiBEb24ndCB1c2UgaW4gcGx1Z2lucyBmb3Igbm93LlxuICAgKi9cbiAgaGFzQW5jZXN0b3IocHJlZGljYXRlKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIF9fcHJpdmF0ZU1ldGhvZCh0aGlzLCBfZ2V0QW5jZXN0b3JzLCBnZXRBbmNlc3RvcnNfZm4pLmNhbGwodGhpcykpIHtcbiAgICAgIGlmIChwcmVkaWNhdGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbl9nZXROb2RlU3RhY2tJbmRleCA9IG5ldyBXZWFrU2V0KCk7XG5nZXROb2RlU3RhY2tJbmRleF9mbiA9IGZ1bmN0aW9uKGNvdW50KSB7XG4gIGNvbnN0IHtcbiAgICBzdGFja1xuICB9ID0gdGhpcztcbiAgZm9yIChsZXQgaSA9IHN0YWNrLmxlbmd0aCAtIDE7IGkgPj0gMDsgaSAtPSAyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHN0YWNrW2ldKSAmJiAtLWNvdW50IDwgMCkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn07XG5fZ2V0QW5jZXN0b3JzID0gbmV3IFdlYWtTZXQoKTtcbmdldEFuY2VzdG9yc19mbiA9IGZ1bmN0aW9uKiAoKSB7XG4gIGNvbnN0IHtcbiAgICBzdGFja1xuICB9ID0gdGhpcztcbiAgZm9yIChsZXQgaW5kZXggPSBzdGFjay5sZW5ndGggLSAzOyBpbmRleCA+PSAwOyBpbmRleCAtPSAyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBzdGFja1tpbmRleF07XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgeWllbGQgdmFsdWU7XG4gICAgfVxuICB9XG59O1xudmFyIGFzdF9wYXRoX2RlZmF1bHQgPSBBc3RQYXRoO1xuXG4vLyBzcmMvbWFpbi9jb21tZW50cy9hdHRhY2guanNcbmltcG9ydCBhc3NlcnQyIGZyb20gXCJhc3NlcnRcIjtcblxuLy8gc3JjL3V0aWxzL3NraXAuanNcbmZ1bmN0aW9uIHNraXAoY2hhcmFjdGVycykge1xuICByZXR1cm4gKHRleHQsIHN0YXJ0SW5kZXgsIG9wdGlvbnM4KSA9PiB7XG4gICAgY29uc3QgYmFja3dhcmRzID0gQm9vbGVhbihvcHRpb25zOCA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9uczguYmFja3dhcmRzKTtcbiAgICBpZiAoc3RhcnRJbmRleCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHRleHQ7XG4gICAgbGV0IGN1cnNvcjIgPSBzdGFydEluZGV4O1xuICAgIHdoaWxlIChjdXJzb3IyID49IDAgJiYgY3Vyc29yMiA8IGxlbmd0aCkge1xuICAgICAgY29uc3QgY2hhcmFjdGVyID0gdGV4dC5jaGFyQXQoY3Vyc29yMik7XG4gICAgICBpZiAoY2hhcmFjdGVycyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBpZiAoIWNoYXJhY3RlcnMudGVzdChjaGFyYWN0ZXIpKSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnNvcjI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWNoYXJhY3RlcnMuaW5jbHVkZXMoY2hhcmFjdGVyKSkge1xuICAgICAgICByZXR1cm4gY3Vyc29yMjtcbiAgICAgIH1cbiAgICAgIGJhY2t3YXJkcyA/IGN1cnNvcjItLSA6IGN1cnNvcjIrKztcbiAgICB9XG4gICAgaWYgKGN1cnNvcjIgPT09IC0xIHx8IGN1cnNvcjIgPT09IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGN1cnNvcjI7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbn1cbnZhciBza2lwV2hpdGVzcGFjZSA9IHNraXAoL1xccy8pO1xudmFyIHNraXBTcGFjZXMgPSBza2lwKFwiIFx0XCIpO1xudmFyIHNraXBUb0xpbmVFbmQgPSBza2lwKFwiLDsgXHRcIik7XG52YXIgc2tpcEV2ZXJ5dGhpbmdCdXROZXdMaW5lID0gc2tpcCgvW15cXG5cXHJdLyk7XG5cbi8vIHNyYy91dGlscy9za2lwLW5ld2xpbmUuanNcbmZ1bmN0aW9uIHNraXBOZXdsaW5lKHRleHQsIHN0YXJ0SW5kZXgsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IGJhY2t3YXJkcyA9IEJvb2xlYW4ob3B0aW9uczggPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnM4LmJhY2t3YXJkcyk7XG4gIGlmIChzdGFydEluZGV4ID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBjaGFyYWN0ZXIgPSB0ZXh0LmNoYXJBdChzdGFydEluZGV4KTtcbiAgaWYgKGJhY2t3YXJkcykge1xuICAgIGlmICh0ZXh0LmNoYXJBdChzdGFydEluZGV4IC0gMSkgPT09IFwiXFxyXCIgJiYgY2hhcmFjdGVyID09PSBcIlxcblwiKSB7XG4gICAgICByZXR1cm4gc3RhcnRJbmRleCAtIDI7XG4gICAgfVxuICAgIGlmIChjaGFyYWN0ZXIgPT09IFwiXFxuXCIgfHwgY2hhcmFjdGVyID09PSBcIlxcclwiIHx8IGNoYXJhY3RlciA9PT0gXCJcXHUyMDI4XCIgfHwgY2hhcmFjdGVyID09PSBcIlxcdTIwMjlcIikge1xuICAgICAgcmV0dXJuIHN0YXJ0SW5kZXggLSAxO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoY2hhcmFjdGVyID09PSBcIlxcclwiICYmIHRleHQuY2hhckF0KHN0YXJ0SW5kZXggKyAxKSA9PT0gXCJcXG5cIikge1xuICAgICAgcmV0dXJuIHN0YXJ0SW5kZXggKyAyO1xuICAgIH1cbiAgICBpZiAoY2hhcmFjdGVyID09PSBcIlxcblwiIHx8IGNoYXJhY3RlciA9PT0gXCJcXHJcIiB8fCBjaGFyYWN0ZXIgPT09IFwiXFx1MjAyOFwiIHx8IGNoYXJhY3RlciA9PT0gXCJcXHUyMDI5XCIpIHtcbiAgICAgIHJldHVybiBzdGFydEluZGV4ICsgMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXJ0SW5kZXg7XG59XG52YXIgc2tpcF9uZXdsaW5lX2RlZmF1bHQgPSBza2lwTmV3bGluZTtcblxuLy8gc3JjL3V0aWxzL2hhcy1uZXdsaW5lLmpzXG5mdW5jdGlvbiBoYXNOZXdsaW5lKHRleHQsIHN0YXJ0SW5kZXgsIG9wdGlvbnM4ID0ge30pIHtcbiAgY29uc3QgaWR4ID0gc2tpcFNwYWNlcyhcbiAgICB0ZXh0LFxuICAgIG9wdGlvbnM4LmJhY2t3YXJkcyA/IHN0YXJ0SW5kZXggLSAxIDogc3RhcnRJbmRleCxcbiAgICBvcHRpb25zOFxuICApO1xuICBjb25zdCBpZHgyID0gc2tpcF9uZXdsaW5lX2RlZmF1bHQodGV4dCwgaWR4LCBvcHRpb25zOCk7XG4gIHJldHVybiBpZHggIT09IGlkeDI7XG59XG52YXIgaGFzX25ld2xpbmVfZGVmYXVsdCA9IGhhc05ld2xpbmU7XG5cbi8vIHNyYy91dGlscy9pcy1ub24tZW1wdHktYXJyYXkuanNcbmZ1bmN0aW9uIGlzTm9uRW1wdHlBcnJheShvYmplY3QpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqZWN0KSAmJiBvYmplY3QubGVuZ3RoID4gMDtcbn1cbnZhciBpc19ub25fZW1wdHlfYXJyYXlfZGVmYXVsdCA9IGlzTm9uRW1wdHlBcnJheTtcblxuLy8gc3JjL3V0aWxzL2lzLW9iamVjdC5qc1xuZnVuY3Rpb24gaXNPYmplY3Qob2JqZWN0KSB7XG4gIHJldHVybiBvYmplY3QgIT09IG51bGwgJiYgdHlwZW9mIG9iamVjdCA9PT0gXCJvYmplY3RcIjtcbn1cbnZhciBpc19vYmplY3RfZGVmYXVsdCA9IGlzT2JqZWN0O1xuXG4vLyBzcmMvdXRpbHMvYXN0LXV0aWxzLmpzXG5mdW5jdGlvbiogZ2V0Q2hpbGRyZW4obm9kZSwgb3B0aW9uczgpIHtcbiAgY29uc3QgeyBnZXRWaXNpdG9yS2V5cywgZmlsdGVyID0gKCkgPT4gdHJ1ZSB9ID0gb3B0aW9uczg7XG4gIGNvbnN0IGlzTWF0Y2hlZE5vZGUgPSAobm9kZTIpID0+IGlzX29iamVjdF9kZWZhdWx0KG5vZGUyKSAmJiBmaWx0ZXIobm9kZTIpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBnZXRWaXNpdG9yS2V5cyhub2RlKSkge1xuICAgIGNvbnN0IHZhbHVlID0gbm9kZVtrZXldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB2YWx1ZSkge1xuICAgICAgICBpZiAoaXNNYXRjaGVkTm9kZShjaGlsZCkpIHtcbiAgICAgICAgICB5aWVsZCBjaGlsZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNNYXRjaGVkTm9kZSh2YWx1ZSkpIHtcbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24qIGdldERlc2NlbmRhbnRzKG5vZGUsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHF1ZXVlID0gW25vZGVdO1xuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcXVldWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3Qgbm9kZTIgPSBxdWV1ZVtpbmRleF07XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBnZXRDaGlsZHJlbihub2RlMiwgb3B0aW9uczgpKSB7XG4gICAgICB5aWVsZCBjaGlsZDtcbiAgICAgIHF1ZXVlLnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBzcmMvbWFpbi9jb21tZW50cy91dGlscy5qc1xuZnVuY3Rpb24gZGVzY3JpYmVOb2RlRm9yRGVidWdnaW5nKG5vZGUpIHtcbiAgY29uc3Qgbm9kZVR5cGUgPSBub2RlLnR5cGUgfHwgbm9kZS5raW5kIHx8IFwiKHVua25vd24gdHlwZSlcIjtcbiAgbGV0IG5vZGVOYW1lID0gU3RyaW5nKFxuICAgIG5vZGUubmFtZSB8fCBub2RlLmlkICYmICh0eXBlb2Ygbm9kZS5pZCA9PT0gXCJvYmplY3RcIiA/IG5vZGUuaWQubmFtZSA6IG5vZGUuaWQpIHx8IG5vZGUua2V5ICYmICh0eXBlb2Ygbm9kZS5rZXkgPT09IFwib2JqZWN0XCIgPyBub2RlLmtleS5uYW1lIDogbm9kZS5rZXkpIHx8IG5vZGUudmFsdWUgJiYgKHR5cGVvZiBub2RlLnZhbHVlID09PSBcIm9iamVjdFwiID8gXCJcIiA6IFN0cmluZyhub2RlLnZhbHVlKSkgfHwgbm9kZS5vcGVyYXRvciB8fCBcIlwiXG4gICk7XG4gIGlmIChub2RlTmFtZS5sZW5ndGggPiAyMCkge1xuICAgIG5vZGVOYW1lID0gbm9kZU5hbWUuc2xpY2UoMCwgMTkpICsgXCJcXHUyMDI2XCI7XG4gIH1cbiAgcmV0dXJuIG5vZGVUeXBlICsgKG5vZGVOYW1lID8gXCIgXCIgKyBub2RlTmFtZSA6IFwiXCIpO1xufVxuZnVuY3Rpb24gYWRkQ29tbWVudEhlbHBlcihub2RlLCBjb21tZW50KSB7XG4gIGNvbnN0IGNvbW1lbnRzID0gbm9kZS5jb21tZW50cyA/PyAobm9kZS5jb21tZW50cyA9IFtdKTtcbiAgY29tbWVudHMucHVzaChjb21tZW50KTtcbiAgY29tbWVudC5wcmludGVkID0gZmFsc2U7XG4gIGNvbW1lbnQubm9kZURlc2NyaXB0aW9uID0gZGVzY3JpYmVOb2RlRm9yRGVidWdnaW5nKG5vZGUpO1xufVxuZnVuY3Rpb24gYWRkTGVhZGluZ0NvbW1lbnQobm9kZSwgY29tbWVudCkge1xuICBjb21tZW50LmxlYWRpbmcgPSB0cnVlO1xuICBjb21tZW50LnRyYWlsaW5nID0gZmFsc2U7XG4gIGFkZENvbW1lbnRIZWxwZXIobm9kZSwgY29tbWVudCk7XG59XG5mdW5jdGlvbiBhZGREYW5nbGluZ0NvbW1lbnQobm9kZSwgY29tbWVudCwgbWFya2VyKSB7XG4gIGNvbW1lbnQubGVhZGluZyA9IGZhbHNlO1xuICBjb21tZW50LnRyYWlsaW5nID0gZmFsc2U7XG4gIGlmIChtYXJrZXIpIHtcbiAgICBjb21tZW50Lm1hcmtlciA9IG1hcmtlcjtcbiAgfVxuICBhZGRDb21tZW50SGVscGVyKG5vZGUsIGNvbW1lbnQpO1xufVxuZnVuY3Rpb24gYWRkVHJhaWxpbmdDb21tZW50KG5vZGUsIGNvbW1lbnQpIHtcbiAgY29tbWVudC5sZWFkaW5nID0gZmFsc2U7XG4gIGNvbW1lbnQudHJhaWxpbmcgPSB0cnVlO1xuICBhZGRDb21tZW50SGVscGVyKG5vZGUsIGNvbW1lbnQpO1xufVxuXG4vLyBzcmMvbWFpbi9jb21tZW50cy9hdHRhY2guanNcbnZhciBjaGlsZE5vZGVzQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGdldFNvcnRlZENoaWxkTm9kZXMobm9kZSwgb3B0aW9uczgpIHtcbiAgaWYgKGNoaWxkTm9kZXNDYWNoZS5oYXMobm9kZSkpIHtcbiAgICByZXR1cm4gY2hpbGROb2Rlc0NhY2hlLmdldChub2RlKTtcbiAgfVxuICBjb25zdCB7XG4gICAgcHJpbnRlcjoge1xuICAgICAgZ2V0Q29tbWVudENoaWxkTm9kZXMsXG4gICAgICBjYW5BdHRhY2hDb21tZW50LFxuICAgICAgZ2V0VmlzaXRvcktleXM6IHByaW50ZXJHZXRWaXNpdG9yS2V5c1xuICAgIH0sXG4gICAgbG9jU3RhcnQsXG4gICAgbG9jRW5kXG4gIH0gPSBvcHRpb25zODtcbiAgaWYgKCFjYW5BdHRhY2hDb21tZW50KSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGNoaWxkTm9kZXMgPSAoKGdldENvbW1lbnRDaGlsZE5vZGVzID09IG51bGwgPyB2b2lkIDAgOiBnZXRDb21tZW50Q2hpbGROb2Rlcyhub2RlLCBvcHRpb25zOCkpID8/IFtcbiAgICAuLi5nZXRDaGlsZHJlbihub2RlLCB7XG4gICAgICBnZXRWaXNpdG9yS2V5czogY3JlYXRlX2dldF92aXNpdG9yX2tleXNfZnVuY3Rpb25fZGVmYXVsdChwcmludGVyR2V0VmlzaXRvcktleXMpXG4gICAgfSlcbiAgXSkuZmxhdE1hcChcbiAgICAobm9kZTIpID0+IGNhbkF0dGFjaENvbW1lbnQobm9kZTIpID8gW25vZGUyXSA6IGdldFNvcnRlZENoaWxkTm9kZXMobm9kZTIsIG9wdGlvbnM4KVxuICApO1xuICBjaGlsZE5vZGVzLnNvcnQoXG4gICAgKG5vZGVBLCBub2RlQikgPT4gbG9jU3RhcnQobm9kZUEpIC0gbG9jU3RhcnQobm9kZUIpIHx8IGxvY0VuZChub2RlQSkgLSBsb2NFbmQobm9kZUIpXG4gICk7XG4gIGNoaWxkTm9kZXNDYWNoZS5zZXQobm9kZSwgY2hpbGROb2Rlcyk7XG4gIHJldHVybiBjaGlsZE5vZGVzO1xufVxuZnVuY3Rpb24gZGVjb3JhdGVDb21tZW50KG5vZGUsIGNvbW1lbnQsIG9wdGlvbnM4LCBlbmNsb3NpbmdOb2RlKSB7XG4gIGNvbnN0IHsgbG9jU3RhcnQsIGxvY0VuZCB9ID0gb3B0aW9uczg7XG4gIGNvbnN0IGNvbW1lbnRTdGFydCA9IGxvY1N0YXJ0KGNvbW1lbnQpO1xuICBjb25zdCBjb21tZW50RW5kID0gbG9jRW5kKGNvbW1lbnQpO1xuICBjb25zdCBjaGlsZE5vZGVzID0gZ2V0U29ydGVkQ2hpbGROb2Rlcyhub2RlLCBvcHRpb25zOCk7XG4gIGxldCBwcmVjZWRpbmdOb2RlO1xuICBsZXQgZm9sbG93aW5nTm9kZTtcbiAgbGV0IGxlZnQgPSAwO1xuICBsZXQgcmlnaHQgPSBjaGlsZE5vZGVzLmxlbmd0aDtcbiAgd2hpbGUgKGxlZnQgPCByaWdodCkge1xuICAgIGNvbnN0IG1pZGRsZSA9IGxlZnQgKyByaWdodCA+PiAxO1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGROb2Rlc1ttaWRkbGVdO1xuICAgIGNvbnN0IHN0YXJ0ID0gbG9jU3RhcnQoY2hpbGQpO1xuICAgIGNvbnN0IGVuZCA9IGxvY0VuZChjaGlsZCk7XG4gICAgaWYgKHN0YXJ0IDw9IGNvbW1lbnRTdGFydCAmJiBjb21tZW50RW5kIDw9IGVuZCkge1xuICAgICAgcmV0dXJuIGRlY29yYXRlQ29tbWVudChjaGlsZCwgY29tbWVudCwgb3B0aW9uczgsIGNoaWxkKTtcbiAgICB9XG4gICAgaWYgKGVuZCA8PSBjb21tZW50U3RhcnQpIHtcbiAgICAgIHByZWNlZGluZ05vZGUgPSBjaGlsZDtcbiAgICAgIGxlZnQgPSBtaWRkbGUgKyAxO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChjb21tZW50RW5kIDw9IHN0YXJ0KSB7XG4gICAgICBmb2xsb3dpbmdOb2RlID0gY2hpbGQ7XG4gICAgICByaWdodCA9IG1pZGRsZTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb21tZW50IGxvY2F0aW9uIG92ZXJsYXBzIHdpdGggbm9kZSBsb2NhdGlvblwiKTtcbiAgfVxuICBpZiAoKGVuY2xvc2luZ05vZGUgPT0gbnVsbCA/IHZvaWQgMCA6IGVuY2xvc2luZ05vZGUudHlwZSkgPT09IFwiVGVtcGxhdGVMaXRlcmFsXCIpIHtcbiAgICBjb25zdCB7IHF1YXNpcyB9ID0gZW5jbG9zaW5nTm9kZTtcbiAgICBjb25zdCBjb21tZW50SW5kZXggPSBmaW5kRXhwcmVzc2lvbkluZGV4Rm9yQ29tbWVudChcbiAgICAgIHF1YXNpcyxcbiAgICAgIGNvbW1lbnQsXG4gICAgICBvcHRpb25zOFxuICAgICk7XG4gICAgaWYgKHByZWNlZGluZ05vZGUgJiYgZmluZEV4cHJlc3Npb25JbmRleEZvckNvbW1lbnQocXVhc2lzLCBwcmVjZWRpbmdOb2RlLCBvcHRpb25zOCkgIT09IGNvbW1lbnRJbmRleCkge1xuICAgICAgcHJlY2VkaW5nTm9kZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChmb2xsb3dpbmdOb2RlICYmIGZpbmRFeHByZXNzaW9uSW5kZXhGb3JDb21tZW50KHF1YXNpcywgZm9sbG93aW5nTm9kZSwgb3B0aW9uczgpICE9PSBjb21tZW50SW5kZXgpIHtcbiAgICAgIGZvbGxvd2luZ05vZGUgPSBudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBlbmNsb3NpbmdOb2RlLCBwcmVjZWRpbmdOb2RlLCBmb2xsb3dpbmdOb2RlIH07XG59XG52YXIgcmV0dXJuRmFsc2UgPSAoKSA9PiBmYWxzZTtcbmZ1bmN0aW9uIGF0dGFjaENvbW1lbnRzKGFzdCwgb3B0aW9uczgpIHtcbiAgY29uc3QgeyBjb21tZW50cyB9ID0gYXN0O1xuICBkZWxldGUgYXN0LmNvbW1lbnRzO1xuICBpZiAoIWlzX25vbl9lbXB0eV9hcnJheV9kZWZhdWx0KGNvbW1lbnRzKSB8fCAhb3B0aW9uczgucHJpbnRlci5jYW5BdHRhY2hDb21tZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHRpZXNUb0JyZWFrID0gW107XG4gIGNvbnN0IHtcbiAgICBsb2NTdGFydCxcbiAgICBsb2NFbmQsXG4gICAgcHJpbnRlcjoge1xuICAgICAgZXhwZXJpbWVudGFsRmVhdHVyZXM6IHtcbiAgICAgICAgLy8gVE9ETzogTWFrZSB0aGlzIGFzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgYXZvaWRBc3RNdXRhdGlvbiA9IGZhbHNlXG4gICAgICB9ID0ge30sXG4gICAgICBoYW5kbGVDb21tZW50cyA9IHt9XG4gICAgfSxcbiAgICBvcmlnaW5hbFRleHQ6IHRleHRcbiAgfSA9IG9wdGlvbnM4O1xuICBjb25zdCB7XG4gICAgb3duTGluZTogaGFuZGxlT3duTGluZUNvbW1lbnQgPSByZXR1cm5GYWxzZSxcbiAgICBlbmRPZkxpbmU6IGhhbmRsZUVuZE9mTGluZUNvbW1lbnQgPSByZXR1cm5GYWxzZSxcbiAgICByZW1haW5pbmc6IGhhbmRsZVJlbWFpbmluZ0NvbW1lbnQgPSByZXR1cm5GYWxzZVxuICB9ID0gaGFuZGxlQ29tbWVudHM7XG4gIGNvbnN0IGRlY29yYXRlZENvbW1lbnRzID0gY29tbWVudHMubWFwKChjb21tZW50LCBpbmRleCkgPT4gKHtcbiAgICAuLi5kZWNvcmF0ZUNvbW1lbnQoYXN0LCBjb21tZW50LCBvcHRpb25zOCksXG4gICAgY29tbWVudCxcbiAgICB0ZXh0LFxuICAgIG9wdGlvbnM6IG9wdGlvbnM4LFxuICAgIGFzdCxcbiAgICBpc0xhc3RDb21tZW50OiBjb21tZW50cy5sZW5ndGggLSAxID09PSBpbmRleFxuICB9KSk7XG4gIGZvciAoY29uc3QgW2luZGV4LCBjb250ZXh0XSBvZiBkZWNvcmF0ZWRDb21tZW50cy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCB7XG4gICAgICBjb21tZW50LFxuICAgICAgcHJlY2VkaW5nTm9kZSxcbiAgICAgIGVuY2xvc2luZ05vZGUsXG4gICAgICBmb2xsb3dpbmdOb2RlLFxuICAgICAgdGV4dDogdGV4dDIsXG4gICAgICBvcHRpb25zOiBvcHRpb25zOSxcbiAgICAgIGFzdDogYXN0MixcbiAgICAgIGlzTGFzdENvbW1lbnRcbiAgICB9ID0gY29udGV4dDtcbiAgICBpZiAob3B0aW9uczkucGFyc2VyID09PSBcImpzb25cIiB8fCBvcHRpb25zOS5wYXJzZXIgPT09IFwianNvbjVcIiB8fCBvcHRpb25zOS5wYXJzZXIgPT09IFwiX19qc19leHByZXNzaW9uXCIgfHwgb3B0aW9uczkucGFyc2VyID09PSBcIl9fdHNfZXhwcmVzc2lvblwiIHx8IG9wdGlvbnM5LnBhcnNlciA9PT0gXCJfX3Z1ZV9leHByZXNzaW9uXCIgfHwgb3B0aW9uczkucGFyc2VyID09PSBcIl9fdnVlX3RzX2V4cHJlc3Npb25cIikge1xuICAgICAgaWYgKGxvY1N0YXJ0KGNvbW1lbnQpIC0gbG9jU3RhcnQoYXN0MikgPD0gMCkge1xuICAgICAgICBhZGRMZWFkaW5nQ29tbWVudChhc3QyLCBjb21tZW50KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAobG9jRW5kKGNvbW1lbnQpIC0gbG9jRW5kKGFzdDIpID49IDApIHtcbiAgICAgICAgYWRkVHJhaWxpbmdDb21tZW50KGFzdDIsIGNvbW1lbnQpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGFyZ3M7XG4gICAgaWYgKGF2b2lkQXN0TXV0YXRpb24pIHtcbiAgICAgIGFyZ3MgPSBbY29udGV4dF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1lbnQuZW5jbG9zaW5nTm9kZSA9IGVuY2xvc2luZ05vZGU7XG4gICAgICBjb21tZW50LnByZWNlZGluZ05vZGUgPSBwcmVjZWRpbmdOb2RlO1xuICAgICAgY29tbWVudC5mb2xsb3dpbmdOb2RlID0gZm9sbG93aW5nTm9kZTtcbiAgICAgIGFyZ3MgPSBbY29tbWVudCwgdGV4dDIsIG9wdGlvbnM5LCBhc3QyLCBpc0xhc3RDb21tZW50XTtcbiAgICB9XG4gICAgaWYgKGlzT3duTGluZUNvbW1lbnQodGV4dDIsIG9wdGlvbnM5LCBkZWNvcmF0ZWRDb21tZW50cywgaW5kZXgpKSB7XG4gICAgICBjb21tZW50LnBsYWNlbWVudCA9IFwib3duTGluZVwiO1xuICAgICAgaWYgKGhhbmRsZU93bkxpbmVDb21tZW50KC4uLmFyZ3MpKSB7XG4gICAgICB9IGVsc2UgaWYgKGZvbGxvd2luZ05vZGUpIHtcbiAgICAgICAgYWRkTGVhZGluZ0NvbW1lbnQoZm9sbG93aW5nTm9kZSwgY29tbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKHByZWNlZGluZ05vZGUpIHtcbiAgICAgICAgYWRkVHJhaWxpbmdDb21tZW50KHByZWNlZGluZ05vZGUsIGNvbW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChlbmNsb3NpbmdOb2RlKSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChlbmNsb3NpbmdOb2RlLCBjb21tZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChhc3QyLCBjb21tZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRW5kT2ZMaW5lQ29tbWVudCh0ZXh0Miwgb3B0aW9uczksIGRlY29yYXRlZENvbW1lbnRzLCBpbmRleCkpIHtcbiAgICAgIGNvbW1lbnQucGxhY2VtZW50ID0gXCJlbmRPZkxpbmVcIjtcbiAgICAgIGlmIChoYW5kbGVFbmRPZkxpbmVDb21tZW50KC4uLmFyZ3MpKSB7XG4gICAgICB9IGVsc2UgaWYgKHByZWNlZGluZ05vZGUpIHtcbiAgICAgICAgYWRkVHJhaWxpbmdDb21tZW50KHByZWNlZGluZ05vZGUsIGNvbW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChmb2xsb3dpbmdOb2RlKSB7XG4gICAgICAgIGFkZExlYWRpbmdDb21tZW50KGZvbGxvd2luZ05vZGUsIGNvbW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChlbmNsb3NpbmdOb2RlKSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChlbmNsb3NpbmdOb2RlLCBjb21tZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChhc3QyLCBjb21tZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29tbWVudC5wbGFjZW1lbnQgPSBcInJlbWFpbmluZ1wiO1xuICAgICAgaWYgKGhhbmRsZVJlbWFpbmluZ0NvbW1lbnQoLi4uYXJncykpIHtcbiAgICAgIH0gZWxzZSBpZiAocHJlY2VkaW5nTm9kZSAmJiBmb2xsb3dpbmdOb2RlKSB7XG4gICAgICAgIGNvbnN0IHRpZUNvdW50ID0gdGllc1RvQnJlYWsubGVuZ3RoO1xuICAgICAgICBpZiAodGllQ291bnQgPiAwKSB7XG4gICAgICAgICAgY29uc3QgbGFzdFRpZSA9IHRpZXNUb0JyZWFrW3RpZUNvdW50IC0gMV07XG4gICAgICAgICAgaWYgKGxhc3RUaWUuZm9sbG93aW5nTm9kZSAhPT0gZm9sbG93aW5nTm9kZSkge1xuICAgICAgICAgICAgYnJlYWtUaWVzKHRpZXNUb0JyZWFrLCBvcHRpb25zOSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRpZXNUb0JyZWFrLnB1c2goY29udGV4dCk7XG4gICAgICB9IGVsc2UgaWYgKHByZWNlZGluZ05vZGUpIHtcbiAgICAgICAgYWRkVHJhaWxpbmdDb21tZW50KHByZWNlZGluZ05vZGUsIGNvbW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChmb2xsb3dpbmdOb2RlKSB7XG4gICAgICAgIGFkZExlYWRpbmdDb21tZW50KGZvbGxvd2luZ05vZGUsIGNvbW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChlbmNsb3NpbmdOb2RlKSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChlbmNsb3NpbmdOb2RlLCBjb21tZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZERhbmdsaW5nQ29tbWVudChhc3QyLCBjb21tZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYnJlYWtUaWVzKHRpZXNUb0JyZWFrLCBvcHRpb25zOCk7XG4gIGlmICghYXZvaWRBc3RNdXRhdGlvbikge1xuICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBjb21tZW50cykge1xuICAgICAgZGVsZXRlIGNvbW1lbnQucHJlY2VkaW5nTm9kZTtcbiAgICAgIGRlbGV0ZSBjb21tZW50LmVuY2xvc2luZ05vZGU7XG4gICAgICBkZWxldGUgY29tbWVudC5mb2xsb3dpbmdOb2RlO1xuICAgIH1cbiAgfVxufVxudmFyIGlzQWxsRW1wdHlBbmROb0xpbmVCcmVhayA9ICh0ZXh0KSA9PiAhL1tcXFNcXG5cXHUyMDI4XFx1MjAyOV0vLnRlc3QodGV4dCk7XG5mdW5jdGlvbiBpc093bkxpbmVDb21tZW50KHRleHQsIG9wdGlvbnM4LCBkZWNvcmF0ZWRDb21tZW50cywgY29tbWVudEluZGV4KSB7XG4gIGNvbnN0IHsgY29tbWVudCwgcHJlY2VkaW5nTm9kZSB9ID0gZGVjb3JhdGVkQ29tbWVudHNbY29tbWVudEluZGV4XTtcbiAgY29uc3QgeyBsb2NTdGFydCwgbG9jRW5kIH0gPSBvcHRpb25zODtcbiAgbGV0IHN0YXJ0ID0gbG9jU3RhcnQoY29tbWVudCk7XG4gIGlmIChwcmVjZWRpbmdOb2RlKSB7XG4gICAgZm9yIChsZXQgaW5kZXggPSBjb21tZW50SW5kZXggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7XG4gICAgICBjb25zdCB7IGNvbW1lbnQ6IGNvbW1lbnQyLCBwcmVjZWRpbmdOb2RlOiBjdXJyZW50Q29tbWVudFByZWNlZGluZ05vZGUgfSA9IGRlY29yYXRlZENvbW1lbnRzW2luZGV4XTtcbiAgICAgIGlmIChjdXJyZW50Q29tbWVudFByZWNlZGluZ05vZGUgIT09IHByZWNlZGluZ05vZGUgfHwgIWlzQWxsRW1wdHlBbmROb0xpbmVCcmVhayh0ZXh0LnNsaWNlKGxvY0VuZChjb21tZW50MiksIHN0YXJ0KSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBzdGFydCA9IGxvY1N0YXJ0KGNvbW1lbnQyKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGhhc19uZXdsaW5lX2RlZmF1bHQodGV4dCwgc3RhcnQsIHsgYmFja3dhcmRzOiB0cnVlIH0pO1xufVxuZnVuY3Rpb24gaXNFbmRPZkxpbmVDb21tZW50KHRleHQsIG9wdGlvbnM4LCBkZWNvcmF0ZWRDb21tZW50cywgY29tbWVudEluZGV4KSB7XG4gIGNvbnN0IHsgY29tbWVudCwgZm9sbG93aW5nTm9kZSB9ID0gZGVjb3JhdGVkQ29tbWVudHNbY29tbWVudEluZGV4XTtcbiAgY29uc3QgeyBsb2NTdGFydCwgbG9jRW5kIH0gPSBvcHRpb25zODtcbiAgbGV0IGVuZCA9IGxvY0VuZChjb21tZW50KTtcbiAgaWYgKGZvbGxvd2luZ05vZGUpIHtcbiAgICBmb3IgKGxldCBpbmRleCA9IGNvbW1lbnRJbmRleCArIDE7IGluZGV4IDwgZGVjb3JhdGVkQ29tbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCB7IGNvbW1lbnQ6IGNvbW1lbnQyLCBmb2xsb3dpbmdOb2RlOiBjdXJyZW50Q29tbWVudEZvbGxvd2luZ05vZGUgfSA9IGRlY29yYXRlZENvbW1lbnRzW2luZGV4XTtcbiAgICAgIGlmIChjdXJyZW50Q29tbWVudEZvbGxvd2luZ05vZGUgIT09IGZvbGxvd2luZ05vZGUgfHwgIWlzQWxsRW1wdHlBbmROb0xpbmVCcmVhayh0ZXh0LnNsaWNlKGVuZCwgbG9jU3RhcnQoY29tbWVudDIpKSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBlbmQgPSBsb2NFbmQoY29tbWVudDIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaGFzX25ld2xpbmVfZGVmYXVsdCh0ZXh0LCBlbmQpO1xufVxuZnVuY3Rpb24gYnJlYWtUaWVzKHRpZXNUb0JyZWFrLCBvcHRpb25zOCkge1xuICB2YXIgX2EsIF9iO1xuICBjb25zdCB0aWVDb3VudCA9IHRpZXNUb0JyZWFrLmxlbmd0aDtcbiAgaWYgKHRpZUNvdW50ID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHsgcHJlY2VkaW5nTm9kZSwgZm9sbG93aW5nTm9kZSB9ID0gdGllc1RvQnJlYWtbMF07XG4gIGxldCBnYXBFbmRQb3MgPSBvcHRpb25zOC5sb2NTdGFydChmb2xsb3dpbmdOb2RlKTtcbiAgbGV0IGluZGV4T2ZGaXJzdExlYWRpbmdDb21tZW50O1xuICBmb3IgKGluZGV4T2ZGaXJzdExlYWRpbmdDb21tZW50ID0gdGllQ291bnQ7IGluZGV4T2ZGaXJzdExlYWRpbmdDb21tZW50ID4gMDsgLS1pbmRleE9mRmlyc3RMZWFkaW5nQ29tbWVudCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbW1lbnQsXG4gICAgICBwcmVjZWRpbmdOb2RlOiBjdXJyZW50Q29tbWVudFByZWNlZGluZ05vZGUsXG4gICAgICBmb2xsb3dpbmdOb2RlOiBjdXJyZW50Q29tbWVudEZvbGxvd2luZ05vZGVcbiAgICB9ID0gdGllc1RvQnJlYWtbaW5kZXhPZkZpcnN0TGVhZGluZ0NvbW1lbnQgLSAxXTtcbiAgICBhc3NlcnQyLnN0cmljdEVxdWFsKGN1cnJlbnRDb21tZW50UHJlY2VkaW5nTm9kZSwgcHJlY2VkaW5nTm9kZSk7XG4gICAgYXNzZXJ0Mi5zdHJpY3RFcXVhbChjdXJyZW50Q29tbWVudEZvbGxvd2luZ05vZGUsIGZvbGxvd2luZ05vZGUpO1xuICAgIGNvbnN0IGdhcCA9IG9wdGlvbnM4Lm9yaWdpbmFsVGV4dC5zbGljZShvcHRpb25zOC5sb2NFbmQoY29tbWVudCksIGdhcEVuZFBvcyk7XG4gICAgaWYgKCgoX2IgPSAoX2EgPSBvcHRpb25zOC5wcmludGVyKS5pc0dhcCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGdhcCwgb3B0aW9uczgpKSA/PyAvXltcXHMoXSokLy50ZXN0KGdhcCkpIHtcbiAgICAgIGdhcEVuZFBvcyA9IG9wdGlvbnM4LmxvY1N0YXJ0KGNvbW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgZm9yIChjb25zdCBbaSwgeyBjb21tZW50IH1dIG9mIHRpZXNUb0JyZWFrLmVudHJpZXMoKSkge1xuICAgIGlmIChpIDwgaW5kZXhPZkZpcnN0TGVhZGluZ0NvbW1lbnQpIHtcbiAgICAgIGFkZFRyYWlsaW5nQ29tbWVudChwcmVjZWRpbmdOb2RlLCBjb21tZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkTGVhZGluZ0NvbW1lbnQoZm9sbG93aW5nTm9kZSwgY29tbWVudCk7XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBbcHJlY2VkaW5nTm9kZSwgZm9sbG93aW5nTm9kZV0pIHtcbiAgICBpZiAobm9kZS5jb21tZW50cyAmJiBub2RlLmNvbW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIG5vZGUuY29tbWVudHMuc29ydCgoYSwgYikgPT4gb3B0aW9uczgubG9jU3RhcnQoYSkgLSBvcHRpb25zOC5sb2NTdGFydChiKSk7XG4gICAgfVxuICB9XG4gIHRpZXNUb0JyZWFrLmxlbmd0aCA9IDA7XG59XG5mdW5jdGlvbiBmaW5kRXhwcmVzc2lvbkluZGV4Rm9yQ29tbWVudChxdWFzaXMsIGNvbW1lbnQsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHN0YXJ0UG9zID0gb3B0aW9uczgubG9jU3RhcnQoY29tbWVudCkgLSAxO1xuICBmb3IgKGxldCBpID0gMTsgaSA8IHF1YXNpcy5sZW5ndGg7ICsraSkge1xuICAgIGlmIChzdGFydFBvcyA8IG9wdGlvbnM4LmxvY1N0YXJ0KHF1YXNpc1tpXSkpIHtcbiAgICAgIHJldHVybiBpIC0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vIHNyYy91dGlscy9pcy1wcmV2aW91cy1saW5lLWVtcHR5LmpzXG5mdW5jdGlvbiBpc1ByZXZpb3VzTGluZUVtcHR5KHRleHQsIHN0YXJ0SW5kZXgpIHtcbiAgbGV0IGlkeCA9IHN0YXJ0SW5kZXggLSAxO1xuICBpZHggPSBza2lwU3BhY2VzKHRleHQsIGlkeCwgeyBiYWNrd2FyZHM6IHRydWUgfSk7XG4gIGlkeCA9IHNraXBfbmV3bGluZV9kZWZhdWx0KHRleHQsIGlkeCwgeyBiYWNrd2FyZHM6IHRydWUgfSk7XG4gIGlkeCA9IHNraXBTcGFjZXModGV4dCwgaWR4LCB7IGJhY2t3YXJkczogdHJ1ZSB9KTtcbiAgY29uc3QgaWR4MiA9IHNraXBfbmV3bGluZV9kZWZhdWx0KHRleHQsIGlkeCwgeyBiYWNrd2FyZHM6IHRydWUgfSk7XG4gIHJldHVybiBpZHggIT09IGlkeDI7XG59XG52YXIgaXNfcHJldmlvdXNfbGluZV9lbXB0eV9kZWZhdWx0ID0gaXNQcmV2aW91c0xpbmVFbXB0eTtcblxuLy8gc3JjL21haW4vY29tbWVudHMvcHJpbnQuanNcbmZ1bmN0aW9uIHByaW50Q29tbWVudChwYXRoOSwgb3B0aW9uczgpIHtcbiAgY29uc3QgY29tbWVudCA9IHBhdGg5Lm5vZGU7XG4gIGNvbW1lbnQucHJpbnRlZCA9IHRydWU7XG4gIHJldHVybiBvcHRpb25zOC5wcmludGVyLnByaW50Q29tbWVudChwYXRoOSwgb3B0aW9uczgpO1xufVxuZnVuY3Rpb24gcHJpbnRMZWFkaW5nQ29tbWVudChwYXRoOSwgb3B0aW9uczgpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBjb21tZW50ID0gcGF0aDkubm9kZTtcbiAgY29uc3QgcGFydHMgPSBbcHJpbnRDb21tZW50KHBhdGg5LCBvcHRpb25zOCldO1xuICBjb25zdCB7IHByaW50ZXIsIG9yaWdpbmFsVGV4dCwgbG9jU3RhcnQsIGxvY0VuZCB9ID0gb3B0aW9uczg7XG4gIGNvbnN0IGlzQmxvY2sgPSAoX2EgPSBwcmludGVyLmlzQmxvY2tDb21tZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChwcmludGVyLCBjb21tZW50KTtcbiAgaWYgKGlzQmxvY2spIHtcbiAgICBjb25zdCBsaW5lQnJlYWsgPSBoYXNfbmV3bGluZV9kZWZhdWx0KG9yaWdpbmFsVGV4dCwgbG9jRW5kKGNvbW1lbnQpKSA/IGhhc19uZXdsaW5lX2RlZmF1bHQob3JpZ2luYWxUZXh0LCBsb2NTdGFydChjb21tZW50KSwge1xuICAgICAgYmFja3dhcmRzOiB0cnVlXG4gICAgfSkgPyBoYXJkbGluZSA6IGxpbmUgOiBcIiBcIjtcbiAgICBwYXJ0cy5wdXNoKGxpbmVCcmVhayk7XG4gIH0gZWxzZSB7XG4gICAgcGFydHMucHVzaChoYXJkbGluZSk7XG4gIH1cbiAgY29uc3QgaW5kZXggPSBza2lwX25ld2xpbmVfZGVmYXVsdChcbiAgICBvcmlnaW5hbFRleHQsXG4gICAgc2tpcFNwYWNlcyhvcmlnaW5hbFRleHQsIGxvY0VuZChjb21tZW50KSlcbiAgKTtcbiAgaWYgKGluZGV4ICE9PSBmYWxzZSAmJiBoYXNfbmV3bGluZV9kZWZhdWx0KG9yaWdpbmFsVGV4dCwgaW5kZXgpKSB7XG4gICAgcGFydHMucHVzaChoYXJkbGluZSk7XG4gIH1cbiAgcmV0dXJuIHBhcnRzO1xufVxuZnVuY3Rpb24gcHJpbnRUcmFpbGluZ0NvbW1lbnQocGF0aDksIG9wdGlvbnM4LCBwcmV2aW91c0NvbW1lbnQpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBjb21tZW50ID0gcGF0aDkubm9kZTtcbiAgY29uc3QgcHJpbnRlZCA9IHByaW50Q29tbWVudChwYXRoOSwgb3B0aW9uczgpO1xuICBjb25zdCB7IHByaW50ZXIsIG9yaWdpbmFsVGV4dCwgbG9jU3RhcnQgfSA9IG9wdGlvbnM4O1xuICBjb25zdCBpc0Jsb2NrID0gKF9hID0gcHJpbnRlci5pc0Jsb2NrQ29tbWVudCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocHJpbnRlciwgY29tbWVudCk7XG4gIGlmICgocHJldmlvdXNDb21tZW50ID09IG51bGwgPyB2b2lkIDAgOiBwcmV2aW91c0NvbW1lbnQuaGFzTGluZVN1ZmZpeCkgJiYgIShwcmV2aW91c0NvbW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ29tbWVudC5pc0Jsb2NrKSB8fCBoYXNfbmV3bGluZV9kZWZhdWx0KG9yaWdpbmFsVGV4dCwgbG9jU3RhcnQoY29tbWVudCksIHsgYmFja3dhcmRzOiB0cnVlIH0pKSB7XG4gICAgY29uc3QgaXNMaW5lQmVmb3JlRW1wdHkgPSBpc19wcmV2aW91c19saW5lX2VtcHR5X2RlZmF1bHQoXG4gICAgICBvcmlnaW5hbFRleHQsXG4gICAgICBsb2NTdGFydChjb21tZW50KVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvYzogbGluZVN1ZmZpeChbaGFyZGxpbmUsIGlzTGluZUJlZm9yZUVtcHR5ID8gaGFyZGxpbmUgOiBcIlwiLCBwcmludGVkXSksXG4gICAgICBpc0Jsb2NrLFxuICAgICAgaGFzTGluZVN1ZmZpeDogdHJ1ZVxuICAgIH07XG4gIH1cbiAgaWYgKCFpc0Jsb2NrIHx8IChwcmV2aW91c0NvbW1lbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ29tbWVudC5oYXNMaW5lU3VmZml4KSkge1xuICAgIHJldHVybiB7XG4gICAgICBkb2M6IFtsaW5lU3VmZml4KFtcIiBcIiwgcHJpbnRlZF0pLCBicmVha1BhcmVudF0sXG4gICAgICBpc0Jsb2NrLFxuICAgICAgaGFzTGluZVN1ZmZpeDogdHJ1ZVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgZG9jOiBbXCIgXCIsIHByaW50ZWRdLCBpc0Jsb2NrLCBoYXNMaW5lU3VmZml4OiBmYWxzZSB9O1xufVxuZnVuY3Rpb24gcHJpbnRDb21tZW50c1NlcGFyYXRlbHkocGF0aDksIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHZhbHVlID0gcGF0aDkubm9kZTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBpZ25vcmVkID0gb3B0aW9uczhbU3ltYm9sLmZvcihcInByaW50ZWRDb21tZW50c1wiKV07XG4gIGNvbnN0IGNvbW1lbnRzID0gKHZhbHVlLmNvbW1lbnRzIHx8IFtdKS5maWx0ZXIoXG4gICAgKGNvbW1lbnQpID0+ICFpZ25vcmVkLmhhcyhjb21tZW50KVxuICApO1xuICBpZiAoY29tbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgbGVhZGluZzogXCJcIiwgdHJhaWxpbmc6IFwiXCIgfTtcbiAgfVxuICBjb25zdCBsZWFkaW5nUGFydHMgPSBbXTtcbiAgY29uc3QgdHJhaWxpbmdQYXJ0cyA9IFtdO1xuICBsZXQgcHJpbnRlZFRyYWlsaW5nQ29tbWVudDtcbiAgcGF0aDkuZWFjaCgoKSA9PiB7XG4gICAgY29uc3QgY29tbWVudCA9IHBhdGg5Lm5vZGU7XG4gICAgaWYgKGlnbm9yZWQgPT0gbnVsbCA/IHZvaWQgMCA6IGlnbm9yZWQuaGFzKGNvbW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHsgbGVhZGluZywgdHJhaWxpbmcgfSA9IGNvbW1lbnQ7XG4gICAgaWYgKGxlYWRpbmcpIHtcbiAgICAgIGxlYWRpbmdQYXJ0cy5wdXNoKHByaW50TGVhZGluZ0NvbW1lbnQocGF0aDksIG9wdGlvbnM4KSk7XG4gICAgfSBlbHNlIGlmICh0cmFpbGluZykge1xuICAgICAgcHJpbnRlZFRyYWlsaW5nQ29tbWVudCA9IHByaW50VHJhaWxpbmdDb21tZW50KFxuICAgICAgICBwYXRoOSxcbiAgICAgICAgb3B0aW9uczgsXG4gICAgICAgIHByaW50ZWRUcmFpbGluZ0NvbW1lbnRcbiAgICAgICk7XG4gICAgICB0cmFpbGluZ1BhcnRzLnB1c2gocHJpbnRlZFRyYWlsaW5nQ29tbWVudC5kb2MpO1xuICAgIH1cbiAgfSwgXCJjb21tZW50c1wiKTtcbiAgcmV0dXJuIHsgbGVhZGluZzogbGVhZGluZ1BhcnRzLCB0cmFpbGluZzogdHJhaWxpbmdQYXJ0cyB9O1xufVxuZnVuY3Rpb24gcHJpbnRDb21tZW50cyhwYXRoOSwgZG9jMiwgb3B0aW9uczgpIHtcbiAgY29uc3QgeyBsZWFkaW5nLCB0cmFpbGluZyB9ID0gcHJpbnRDb21tZW50c1NlcGFyYXRlbHkocGF0aDksIG9wdGlvbnM4KTtcbiAgaWYgKCFsZWFkaW5nICYmICF0cmFpbGluZykge1xuICAgIHJldHVybiBkb2MyO1xuICB9XG4gIHJldHVybiBpbmhlcml0TGFiZWwoZG9jMiwgKGRvYzMpID0+IFtsZWFkaW5nLCBkb2MzLCB0cmFpbGluZ10pO1xufVxuZnVuY3Rpb24gZW5zdXJlQWxsQ29tbWVudHNQcmludGVkKG9wdGlvbnM4KSB7XG4gIGNvbnN0IHtcbiAgICBbU3ltYm9sLmZvcihcImNvbW1lbnRzXCIpXTogY29tbWVudHMsXG4gICAgW1N5bWJvbC5mb3IoXCJwcmludGVkQ29tbWVudHNcIildOiBwcmludGVkQ29tbWVudHNcbiAgfSA9IG9wdGlvbnM4O1xuICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICBpZiAoIWNvbW1lbnQucHJpbnRlZCAmJiAhcHJpbnRlZENvbW1lbnRzLmhhcyhjb21tZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ29tbWVudCBcIicgKyBjb21tZW50LnZhbHVlLnRyaW0oKSArICdcIiB3YXMgbm90IHByaW50ZWQuIFBsZWFzZSByZXBvcnQgdGhpcyBlcnJvciEnXG4gICAgICApO1xuICAgIH1cbiAgICBkZWxldGUgY29tbWVudC5wcmludGVkO1xuICB9XG59XG5cbi8vIHNyYy9tYWluL211bHRpcGFyc2VyLmpzXG5hc3luYyBmdW5jdGlvbiBwcmludEVtYmVkZGVkTGFuZ3VhZ2VzKHBhdGg5LCBnZW5lcmljUHJpbnQsIG9wdGlvbnM4LCBwcmludEFzdFRvRG9jMiwgZW1iZWRzKSB7XG4gIGNvbnN0IHtcbiAgICBlbWJlZGRlZExhbmd1YWdlRm9ybWF0dGluZyxcbiAgICBwcmludGVyOiB7XG4gICAgICBlbWJlZCxcbiAgICAgIGhhc1ByZXR0aWVySWdub3JlID0gKCkgPT4gZmFsc2UsXG4gICAgICBnZXRWaXNpdG9yS2V5czogcHJpbnRlckdldFZpc2l0b3JLZXlzXG4gICAgfVxuICB9ID0gb3B0aW9uczg7XG4gIGlmICghZW1iZWQgfHwgZW1iZWRkZWRMYW5ndWFnZUZvcm1hdHRpbmcgIT09IFwiYXV0b1wiKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChlbWJlZC5sZW5ndGggPiAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJwcmludGVyLmVtYmVkIGhhcyB0b28gbWFueSBwYXJhbWV0ZXJzLiBUaGUgQVBJIGNoYW5nZWQgaW4gUHJldHRpZXIgdjMuIFBsZWFzZSB1cGRhdGUgeW91ciBwbHVnaW4uIFNlZSBodHRwczovL3ByZXR0aWVyLmlvL2RvY3MvZW4vcGx1Z2lucy5odG1sI29wdGlvbmFsLWVtYmVkXCJcbiAgICApO1xuICB9XG4gIGNvbnN0IGdldFZpc2l0b3JLZXlzID0gY3JlYXRlX2dldF92aXNpdG9yX2tleXNfZnVuY3Rpb25fZGVmYXVsdChcbiAgICBlbWJlZC5nZXRWaXNpdG9yS2V5cyA/PyBwcmludGVyR2V0VmlzaXRvcktleXNcbiAgKTtcbiAgY29uc3QgZW1iZWRDYWxsUmVzdWx0cyA9IFtdO1xuICByZWN1cnNlKCk7XG4gIGNvbnN0IG9yaWdpbmFsUGF0aFN0YWNrID0gcGF0aDkuc3RhY2s7XG4gIGZvciAoY29uc3QgeyBwcmludCwgbm9kZSwgcGF0aFN0YWNrIH0gb2YgZW1iZWRDYWxsUmVzdWx0cykge1xuICAgIHRyeSB7XG4gICAgICBwYXRoOS5zdGFjayA9IHBhdGhTdGFjaztcbiAgICAgIGNvbnN0IGRvYzIgPSBhd2FpdCBwcmludCh0ZXh0VG9Eb2NGb3JFbWJlZCwgZ2VuZXJpY1ByaW50LCBwYXRoOSwgb3B0aW9uczgpO1xuICAgICAgaWYgKGRvYzIpIHtcbiAgICAgICAgZW1iZWRzLnNldChub2RlLCBkb2MyKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKHByb2Nlc3MuZW52LlBSRVRUSUVSX0RFQlVHKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwYXRoOS5zdGFjayA9IG9yaWdpbmFsUGF0aFN0YWNrO1xuICBmdW5jdGlvbiB0ZXh0VG9Eb2NGb3JFbWJlZCh0ZXh0LCBwYXJ0aWFsTmV4dE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGV4dFRvRG9jKHRleHQsIHBhcnRpYWxOZXh0T3B0aW9ucywgb3B0aW9uczgsIHByaW50QXN0VG9Eb2MyKTtcbiAgfVxuICBmdW5jdGlvbiByZWN1cnNlKCkge1xuICAgIGNvbnN0IHsgbm9kZSB9ID0gcGF0aDk7XG4gICAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIgfHwgaGFzUHJldHRpZXJJZ25vcmUocGF0aDkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGdldFZpc2l0b3JLZXlzKG5vZGUpKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlW2tleV0pKSB7XG4gICAgICAgIHBhdGg5LmVhY2gocmVjdXJzZSwga2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGg5LmNhbGwocmVjdXJzZSwga2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gZW1iZWQocGF0aDksIG9wdGlvbnM4KTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBlbWJlZENhbGxSZXN1bHRzLnB1c2goe1xuICAgICAgICBwcmludDogcmVzdWx0LFxuICAgICAgICBub2RlLFxuICAgICAgICBwYXRoU3RhY2s6IFsuLi5wYXRoOS5zdGFja11cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgZW1iZWRgIHNob3VsZCByZXR1cm4gYW4gYXN5bmMgZnVuY3Rpb24gaW5zdGVhZCBvZiBQcm9taXNlLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBlbWJlZHMuc2V0KG5vZGUsIHJlc3VsdCk7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHRleHRUb0RvYyh0ZXh0LCBwYXJ0aWFsTmV4dE9wdGlvbnMsIHBhcmVudE9wdGlvbnMsIHByaW50QXN0VG9Eb2MyKSB7XG4gIGNvbnN0IG9wdGlvbnM4ID0gYXdhaXQgbm9ybWFsaXplX2Zvcm1hdF9vcHRpb25zX2RlZmF1bHQoXG4gICAge1xuICAgICAgLi4ucGFyZW50T3B0aW9ucyxcbiAgICAgIC4uLnBhcnRpYWxOZXh0T3B0aW9ucyxcbiAgICAgIHBhcmVudFBhcnNlcjogcGFyZW50T3B0aW9ucy5wYXJzZXIsXG4gICAgICBvcmlnaW5hbFRleHQ6IHRleHRcbiAgICB9LFxuICAgIHsgcGFzc1Rocm91Z2g6IHRydWUgfVxuICApO1xuICBjb25zdCB7IGFzdCB9ID0gYXdhaXQgcGFyc2VfZGVmYXVsdCh0ZXh0LCBvcHRpb25zOCk7XG4gIGNvbnN0IGRvYzIgPSBhd2FpdCBwcmludEFzdFRvRG9jMihhc3QsIG9wdGlvbnM4KTtcbiAgcmV0dXJuIHN0cmlwVHJhaWxpbmdIYXJkbGluZShkb2MyKTtcbn1cblxuLy8gc3JjL21haW4vY3JlYXRlLXByaW50LXByZS1jaGVjay1mdW5jdGlvbi5qc1xuZnVuY3Rpb24gY3JlYXRlUHJpbnRQcmVDaGVja0Z1bmN0aW9uKG9wdGlvbnM4KSB7XG4gIGlmICh0cnVlKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICB9O1xuICB9XG4gIGNvbnN0IGdldFZpc2l0b3JLZXlzID0gY3JlYXRlX2dldF92aXNpdG9yX2tleXNfZnVuY3Rpb25fZGVmYXVsdChcbiAgICBvcHRpb25zOC5wcmludGVyLmdldFZpc2l0b3JLZXlzXG4gICk7XG4gIHJldHVybiBmdW5jdGlvbihwYXRoOSkge1xuICAgIGlmIChwYXRoOS5pc1Jvb3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBrZXksIHBhcmVudCB9ID0gcGF0aDk7XG4gICAgY29uc3QgdmlzaXRvcktleXMgPSBnZXRWaXNpdG9yS2V5cyhwYXJlbnQpO1xuICAgIGlmICh2aXNpdG9yS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiQ2FsbGluZyBgcHJpbnQoKWAgb24gbm9uLW5vZGUgb2JqZWN0LlwiKSwge1xuICAgICAgcGFyZW50Tm9kZTogcGFyZW50LFxuICAgICAgYWxsb3dlZFByb3BlcnRpZXM6IHZpc2l0b3JLZXlzLFxuICAgICAgcHJpbnRpbmdQcm9wZXJ0eToga2V5LFxuICAgICAgcHJpbnRpbmdWYWx1ZTogcGF0aDkubm9kZSxcbiAgICAgIHBhdGhTdGFjazogcGF0aDkuc3RhY2subGVuZ3RoID4gNSA/IFtcIi4uLlwiLCAuLi5wYXRoOS5zdGFjay5zbGljZSgtNSldIDogWy4uLnBhdGg5LnN0YWNrXVxuICAgIH0pO1xuICB9O1xufVxudmFyIGNyZWF0ZV9wcmludF9wcmVfY2hlY2tfZnVuY3Rpb25fZGVmYXVsdCA9IGNyZWF0ZVByaW50UHJlQ2hlY2tGdW5jdGlvbjtcblxuLy8gc3JjL21haW4vcHJpbnQtaWdub3JlZC5qc1xuZnVuY3Rpb24gcHJpbnRJZ25vcmVkKHBhdGg5LCBvcHRpb25zOCkge1xuICBjb25zdCB7XG4gICAgb3JpZ2luYWxUZXh0LFxuICAgIFtTeW1ib2wuZm9yKFwiY29tbWVudHNcIildOiBjb21tZW50cyxcbiAgICBsb2NTdGFydCxcbiAgICBsb2NFbmQsXG4gICAgW1N5bWJvbC5mb3IoXCJwcmludGVkQ29tbWVudHNcIildOiBwcmludGVkQ29tbWVudHNcbiAgfSA9IG9wdGlvbnM4O1xuICBjb25zdCB7IG5vZGUgfSA9IHBhdGg5O1xuICBjb25zdCBzdGFydCA9IGxvY1N0YXJ0KG5vZGUpO1xuICBjb25zdCBlbmQgPSBsb2NFbmQobm9kZSk7XG4gIGZvciAoY29uc3QgY29tbWVudCBvZiBjb21tZW50cykge1xuICAgIGlmIChsb2NTdGFydChjb21tZW50KSA+PSBzdGFydCAmJiBsb2NFbmQoY29tbWVudCkgPD0gZW5kKSB7XG4gICAgICBwcmludGVkQ29tbWVudHMuYWRkKGNvbW1lbnQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb3JpZ2luYWxUZXh0LnNsaWNlKHN0YXJ0LCBlbmQpO1xufVxudmFyIHByaW50X2lnbm9yZWRfZGVmYXVsdCA9IHByaW50SWdub3JlZDtcblxuLy8gc3JjL21haW4vYXN0LXRvLWRvYy5qc1xuYXN5bmMgZnVuY3Rpb24gcHJpbnRBc3RUb0RvYyhhc3QsIG9wdGlvbnM4KSB7XG4gICh7IGFzdCB9ID0gYXdhaXQgcHJlcGFyZVRvUHJpbnQoYXN0LCBvcHRpb25zOCkpO1xuICBjb25zdCBjYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGNvbnN0IHBhdGg5ID0gbmV3IGFzdF9wYXRoX2RlZmF1bHQoYXN0KTtcbiAgY29uc3QgZW5zdXJlUHJpbnRpbmdOb2RlID0gY3JlYXRlX3ByaW50X3ByZV9jaGVja19mdW5jdGlvbl9kZWZhdWx0KG9wdGlvbnM4KTtcbiAgY29uc3QgZW1iZWRzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgYXdhaXQgcHJpbnRFbWJlZGRlZExhbmd1YWdlcyhwYXRoOSwgbWFpblByaW50LCBvcHRpb25zOCwgcHJpbnRBc3RUb0RvYywgZW1iZWRzKTtcbiAgY29uc3QgZG9jMiA9IGF3YWl0IGNhbGxQbHVnaW5QcmludEZ1bmN0aW9uKFxuICAgIHBhdGg5LFxuICAgIG9wdGlvbnM4LFxuICAgIG1haW5QcmludCxcbiAgICB2b2lkIDAsXG4gICAgZW1iZWRzXG4gICk7XG4gIGVuc3VyZUFsbENvbW1lbnRzUHJpbnRlZChvcHRpb25zOCk7XG4gIHJldHVybiBkb2MyO1xuICBmdW5jdGlvbiBtYWluUHJpbnQoc2VsZWN0b3IsIGFyZ3MpIHtcbiAgICBpZiAoc2VsZWN0b3IgPT09IHZvaWQgMCB8fCBzZWxlY3RvciA9PT0gcGF0aDkpIHtcbiAgICAgIHJldHVybiBtYWluUHJpbnRJbnRlcm5hbChhcmdzKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0b3IpKSB7XG4gICAgICByZXR1cm4gcGF0aDkuY2FsbCgoKSA9PiBtYWluUHJpbnRJbnRlcm5hbChhcmdzKSwgLi4uc2VsZWN0b3IpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDkuY2FsbCgoKSA9PiBtYWluUHJpbnRJbnRlcm5hbChhcmdzKSwgc2VsZWN0b3IpO1xuICB9XG4gIGZ1bmN0aW9uIG1haW5QcmludEludGVybmFsKGFyZ3MpIHtcbiAgICBlbnN1cmVQcmludGluZ05vZGUocGF0aDkpO1xuICAgIGNvbnN0IHZhbHVlID0gcGF0aDkubm9kZTtcbiAgICBpZiAodmFsdWUgPT09IHZvaWQgMCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGNvbnN0IHNob3VsZENhY2hlID0gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIGFyZ3MgPT09IHZvaWQgMDtcbiAgICBpZiAoc2hvdWxkQ2FjaGUgJiYgY2FjaGUuaGFzKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGNhY2hlLmdldCh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGRvYzMgPSBjYWxsUGx1Z2luUHJpbnRGdW5jdGlvbihwYXRoOSwgb3B0aW9uczgsIG1haW5QcmludCwgYXJncywgZW1iZWRzKTtcbiAgICBpZiAoc2hvdWxkQ2FjaGUpIHtcbiAgICAgIGNhY2hlLnNldCh2YWx1ZSwgZG9jMyk7XG4gICAgfVxuICAgIHJldHVybiBkb2MzO1xuICB9XG59XG5mdW5jdGlvbiBjYWxsUGx1Z2luUHJpbnRGdW5jdGlvbihwYXRoOSwgb3B0aW9uczgsIHByaW50UGF0aCwgYXJncywgZW1iZWRzKSB7XG4gIHZhciBfYTtcbiAgY29uc3QgeyBub2RlIH0gPSBwYXRoOTtcbiAgY29uc3QgeyBwcmludGVyIH0gPSBvcHRpb25zODtcbiAgbGV0IGRvYzI7XG4gIGlmICgoX2EgPSBwcmludGVyLmhhc1ByZXR0aWVySWdub3JlKSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChwcmludGVyLCBwYXRoOSkpIHtcbiAgICBkb2MyID0gcHJpbnRfaWdub3JlZF9kZWZhdWx0KHBhdGg5LCBvcHRpb25zOCk7XG4gIH0gZWxzZSBpZiAoZW1iZWRzLmhhcyhub2RlKSkge1xuICAgIGRvYzIgPSBlbWJlZHMuZ2V0KG5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGRvYzIgPSBwcmludGVyLnByaW50KHBhdGg5LCBvcHRpb25zOCwgcHJpbnRQYXRoLCBhcmdzKTtcbiAgfVxuICBpZiAobm9kZSA9PT0gb3B0aW9uczguY3Vyc29yTm9kZSkge1xuICAgIGRvYzIgPSBpbmhlcml0TGFiZWwoZG9jMiwgKGRvYzMpID0+IFtjdXJzb3IsIGRvYzMsIGN1cnNvcl0pO1xuICB9XG4gIGlmIChwcmludGVyLnByaW50Q29tbWVudCAmJiAoIXByaW50ZXIud2lsbFByaW50T3duQ29tbWVudHMgfHwgIXByaW50ZXIud2lsbFByaW50T3duQ29tbWVudHMocGF0aDksIG9wdGlvbnM4KSkpIHtcbiAgICBkb2MyID0gcHJpbnRDb21tZW50cyhwYXRoOSwgZG9jMiwgb3B0aW9uczgpO1xuICB9XG4gIHJldHVybiBkb2MyO1xufVxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVRvUHJpbnQoYXN0LCBvcHRpb25zOCkge1xuICBjb25zdCBjb21tZW50cyA9IGFzdC5jb21tZW50cyA/PyBbXTtcbiAgb3B0aW9uczhbU3ltYm9sLmZvcihcImNvbW1lbnRzXCIpXSA9IGNvbW1lbnRzO1xuICBvcHRpb25zOFtTeW1ib2wuZm9yKFwidG9rZW5zXCIpXSA9IGFzdC50b2tlbnMgPz8gW107XG4gIG9wdGlvbnM4W1N5bWJvbC5mb3IoXCJwcmludGVkQ29tbWVudHNcIildID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgYXR0YWNoQ29tbWVudHMoYXN0LCBvcHRpb25zOCk7XG4gIGNvbnN0IHtcbiAgICBwcmludGVyOiB7IHByZXByb2Nlc3MgfVxuICB9ID0gb3B0aW9uczg7XG4gIGFzdCA9IHByZXByb2Nlc3MgPyBhd2FpdCBwcmVwcm9jZXNzKGFzdCwgb3B0aW9uczgpIDogYXN0O1xuICByZXR1cm4geyBhc3QsIGNvbW1lbnRzIH07XG59XG5cbi8vIHNyYy9tYWluL3JhbmdlLXV0aWwuanNcbmltcG9ydCBhc3NlcnQzIGZyb20gXCJhc3NlcnRcIjtcbnZhciBpc0pzb25QYXJzZXIgPSAoeyBwYXJzZXIgfSkgPT4gcGFyc2VyID09PSBcImpzb25cIiB8fCBwYXJzZXIgPT09IFwianNvbjVcIiB8fCBwYXJzZXIgPT09IFwianNvbi1zdHJpbmdpZnlcIjtcbmZ1bmN0aW9uIGZpbmRDb21tb25BbmNlc3RvcihzdGFydE5vZGVBbmRQYXJlbnRzLCBlbmROb2RlQW5kUGFyZW50cykge1xuICBjb25zdCBzdGFydE5vZGVBbmRBbmNlc3RvcnMgPSBbXG4gICAgc3RhcnROb2RlQW5kUGFyZW50cy5ub2RlLFxuICAgIC4uLnN0YXJ0Tm9kZUFuZFBhcmVudHMucGFyZW50Tm9kZXNcbiAgXTtcbiAgY29uc3QgZW5kTm9kZUFuZEFuY2VzdG9ycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICBlbmROb2RlQW5kUGFyZW50cy5ub2RlLFxuICAgIC4uLmVuZE5vZGVBbmRQYXJlbnRzLnBhcmVudE5vZGVzXG4gIF0pO1xuICByZXR1cm4gc3RhcnROb2RlQW5kQW5jZXN0b3JzLmZpbmQoXG4gICAgKG5vZGUpID0+IGpzb25Tb3VyY2VFbGVtZW50cy5oYXMobm9kZS50eXBlKSAmJiBlbmROb2RlQW5kQW5jZXN0b3JzLmhhcyhub2RlKVxuICApO1xufVxuZnVuY3Rpb24gZHJvcFJvb3RQYXJlbnRzKHBhcmVudHMpIHtcbiAgbGV0IGxhc3RQYXJlbnRJbmRleCA9IHBhcmVudHMubGVuZ3RoIC0gMTtcbiAgZm9yICg7IDsgKSB7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50c1tsYXN0UGFyZW50SW5kZXhdO1xuICAgIGlmICgocGFyZW50ID09IG51bGwgPyB2b2lkIDAgOiBwYXJlbnQudHlwZSkgPT09IFwiUHJvZ3JhbVwiIHx8IChwYXJlbnQgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcmVudC50eXBlKSA9PT0gXCJGaWxlXCIpIHtcbiAgICAgIGxhc3RQYXJlbnRJbmRleC0tO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcmVudHMuc2xpY2UoMCwgbGFzdFBhcmVudEluZGV4ICsgMSk7XG59XG5mdW5jdGlvbiBmaW5kU2libGluZ0FuY2VzdG9ycyhzdGFydE5vZGVBbmRQYXJlbnRzLCBlbmROb2RlQW5kUGFyZW50cywgeyBsb2NTdGFydCwgbG9jRW5kIH0pIHtcbiAgbGV0IHJlc3VsdFN0YXJ0Tm9kZSA9IHN0YXJ0Tm9kZUFuZFBhcmVudHMubm9kZTtcbiAgbGV0IHJlc3VsdEVuZE5vZGUgPSBlbmROb2RlQW5kUGFyZW50cy5ub2RlO1xuICBpZiAocmVzdWx0U3RhcnROb2RlID09PSByZXN1bHRFbmROb2RlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0Tm9kZTogcmVzdWx0U3RhcnROb2RlLFxuICAgICAgZW5kTm9kZTogcmVzdWx0RW5kTm9kZVxuICAgIH07XG4gIH1cbiAgY29uc3Qgc3RhcnROb2RlU3RhcnQgPSBsb2NTdGFydChzdGFydE5vZGVBbmRQYXJlbnRzLm5vZGUpO1xuICBmb3IgKGNvbnN0IGVuZFBhcmVudCBvZiBkcm9wUm9vdFBhcmVudHMoZW5kTm9kZUFuZFBhcmVudHMucGFyZW50Tm9kZXMpKSB7XG4gICAgaWYgKGxvY1N0YXJ0KGVuZFBhcmVudCkgPj0gc3RhcnROb2RlU3RhcnQpIHtcbiAgICAgIHJlc3VsdEVuZE5vZGUgPSBlbmRQYXJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBjb25zdCBlbmROb2RlRW5kID0gbG9jRW5kKGVuZE5vZGVBbmRQYXJlbnRzLm5vZGUpO1xuICBmb3IgKGNvbnN0IHN0YXJ0UGFyZW50IG9mIGRyb3BSb290UGFyZW50cyhzdGFydE5vZGVBbmRQYXJlbnRzLnBhcmVudE5vZGVzKSkge1xuICAgIGlmIChsb2NFbmQoc3RhcnRQYXJlbnQpIDw9IGVuZE5vZGVFbmQpIHtcbiAgICAgIHJlc3VsdFN0YXJ0Tm9kZSA9IHN0YXJ0UGFyZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKHJlc3VsdFN0YXJ0Tm9kZSA9PT0gcmVzdWx0RW5kTm9kZSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgc3RhcnROb2RlOiByZXN1bHRTdGFydE5vZGUsXG4gICAgZW5kTm9kZTogcmVzdWx0RW5kTm9kZVxuICB9O1xufVxuZnVuY3Rpb24gZmluZE5vZGVBdE9mZnNldChub2RlLCBvZmZzZXQsIG9wdGlvbnM4LCBwcmVkaWNhdGUsIHBhcmVudE5vZGVzID0gW10sIHR5cGUpIHtcbiAgY29uc3QgeyBsb2NTdGFydCwgbG9jRW5kIH0gPSBvcHRpb25zODtcbiAgY29uc3Qgc3RhcnQgPSBsb2NTdGFydChub2RlKTtcbiAgY29uc3QgZW5kID0gbG9jRW5kKG5vZGUpO1xuICBpZiAob2Zmc2V0ID4gZW5kIHx8IG9mZnNldCA8IHN0YXJ0IHx8IHR5cGUgPT09IFwicmFuZ2VFbmRcIiAmJiBvZmZzZXQgPT09IHN0YXJ0IHx8IHR5cGUgPT09IFwicmFuZ2VTdGFydFwiICYmIG9mZnNldCA9PT0gZW5kKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIGdldFNvcnRlZENoaWxkTm9kZXMobm9kZSwgb3B0aW9uczgpKSB7XG4gICAgY29uc3QgY2hpbGRSZXN1bHQgPSBmaW5kTm9kZUF0T2Zmc2V0KFxuICAgICAgY2hpbGROb2RlLFxuICAgICAgb2Zmc2V0LFxuICAgICAgb3B0aW9uczgsXG4gICAgICBwcmVkaWNhdGUsXG4gICAgICBbbm9kZSwgLi4ucGFyZW50Tm9kZXNdLFxuICAgICAgdHlwZVxuICAgICk7XG4gICAgaWYgKGNoaWxkUmVzdWx0KSB7XG4gICAgICByZXR1cm4gY2hpbGRSZXN1bHQ7XG4gICAgfVxuICB9XG4gIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZShub2RlLCBwYXJlbnROb2Rlc1swXSkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbm9kZSxcbiAgICAgIHBhcmVudE5vZGVzXG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gaXNKc1NvdXJjZUVsZW1lbnQodHlwZSwgcGFyZW50VHlwZSkge1xuICByZXR1cm4gcGFyZW50VHlwZSAhPT0gXCJEZWNsYXJlRXhwb3J0RGVjbGFyYXRpb25cIiAmJiB0eXBlICE9PSBcIlR5cGVQYXJhbWV0ZXJEZWNsYXJhdGlvblwiICYmICh0eXBlID09PSBcIkRpcmVjdGl2ZVwiIHx8IHR5cGUgPT09IFwiVHlwZUFsaWFzXCIgfHwgdHlwZSA9PT0gXCJUU0V4cG9ydEFzc2lnbm1lbnRcIiB8fCB0eXBlLnN0YXJ0c1dpdGgoXCJEZWNsYXJlXCIpIHx8IHR5cGUuc3RhcnRzV2l0aChcIlRTRGVjbGFyZVwiKSB8fCB0eXBlLmVuZHNXaXRoKFwiU3RhdGVtZW50XCIpIHx8IHR5cGUuZW5kc1dpdGgoXCJEZWNsYXJhdGlvblwiKSk7XG59XG52YXIganNvblNvdXJjZUVsZW1lbnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1xuICBcIkpzb25Sb290XCIsXG4gIFwiT2JqZWN0RXhwcmVzc2lvblwiLFxuICBcIkFycmF5RXhwcmVzc2lvblwiLFxuICBcIlN0cmluZ0xpdGVyYWxcIixcbiAgXCJOdW1lcmljTGl0ZXJhbFwiLFxuICBcIkJvb2xlYW5MaXRlcmFsXCIsXG4gIFwiTnVsbExpdGVyYWxcIixcbiAgXCJVbmFyeUV4cHJlc3Npb25cIixcbiAgXCJUZW1wbGF0ZUxpdGVyYWxcIlxuXSk7XG52YXIgZ3JhcGhxbFNvdXJjZUVsZW1lbnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1xuICBcIk9wZXJhdGlvbkRlZmluaXRpb25cIixcbiAgXCJGcmFnbWVudERlZmluaXRpb25cIixcbiAgXCJWYXJpYWJsZURlZmluaXRpb25cIixcbiAgXCJUeXBlRXh0ZW5zaW9uRGVmaW5pdGlvblwiLFxuICBcIk9iamVjdFR5cGVEZWZpbml0aW9uXCIsXG4gIFwiRmllbGREZWZpbml0aW9uXCIsXG4gIFwiRGlyZWN0aXZlRGVmaW5pdGlvblwiLFxuICBcIkVudW1UeXBlRGVmaW5pdGlvblwiLFxuICBcIkVudW1WYWx1ZURlZmluaXRpb25cIixcbiAgXCJJbnB1dFZhbHVlRGVmaW5pdGlvblwiLFxuICBcIklucHV0T2JqZWN0VHlwZURlZmluaXRpb25cIixcbiAgXCJTY2hlbWFEZWZpbml0aW9uXCIsXG4gIFwiT3BlcmF0aW9uVHlwZURlZmluaXRpb25cIixcbiAgXCJJbnRlcmZhY2VUeXBlRGVmaW5pdGlvblwiLFxuICBcIlVuaW9uVHlwZURlZmluaXRpb25cIixcbiAgXCJTY2FsYXJUeXBlRGVmaW5pdGlvblwiXG5dKTtcbmZ1bmN0aW9uIGlzU291cmNlRWxlbWVudChvcHRzLCBub2RlLCBwYXJlbnROb2RlKSB7XG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzd2l0Y2ggKG9wdHMucGFyc2VyKSB7XG4gICAgY2FzZSBcImZsb3dcIjpcbiAgICBjYXNlIFwiYmFiZWxcIjpcbiAgICBjYXNlIFwiYmFiZWwtZmxvd1wiOlxuICAgIGNhc2UgXCJiYWJlbC10c1wiOlxuICAgIGNhc2UgXCJ0eXBlc2NyaXB0XCI6XG4gICAgY2FzZSBcImFjb3JuXCI6XG4gICAgY2FzZSBcImVzcHJlZVwiOlxuICAgIGNhc2UgXCJtZXJpeWFoXCI6XG4gICAgY2FzZSBcIl9fYmFiZWxfZXN0cmVlXCI6XG4gICAgICByZXR1cm4gaXNKc1NvdXJjZUVsZW1lbnQobm9kZS50eXBlLCBwYXJlbnROb2RlID09IG51bGwgPyB2b2lkIDAgOiBwYXJlbnROb2RlLnR5cGUpO1xuICAgIGNhc2UgXCJqc29uXCI6XG4gICAgY2FzZSBcImpzb241XCI6XG4gICAgY2FzZSBcImpzb24tc3RyaW5naWZ5XCI6XG4gICAgICByZXR1cm4ganNvblNvdXJjZUVsZW1lbnRzLmhhcyhub2RlLnR5cGUpO1xuICAgIGNhc2UgXCJncmFwaHFsXCI6XG4gICAgICByZXR1cm4gZ3JhcGhxbFNvdXJjZUVsZW1lbnRzLmhhcyhub2RlLmtpbmQpO1xuICAgIGNhc2UgXCJ2dWVcIjpcbiAgICAgIHJldHVybiBub2RlLnRhZyAhPT0gXCJyb290XCI7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY2FsY3VsYXRlUmFuZ2UodGV4dCwgb3B0cywgYXN0KSB7XG4gIGxldCB7IHJhbmdlU3RhcnQ6IHN0YXJ0LCByYW5nZUVuZDogZW5kLCBsb2NTdGFydCwgbG9jRW5kIH0gPSBvcHRzO1xuICBhc3NlcnQzLm9rKGVuZCA+IHN0YXJ0KTtcbiAgY29uc3QgZmlyc3ROb25XaGl0ZXNwYWNlQ2hhcmFjdGVySW5kZXggPSB0ZXh0LnNsaWNlKHN0YXJ0LCBlbmQpLnNlYXJjaCgvXFxTLyk7XG4gIGNvbnN0IGlzQWxsV2hpdGVzcGFjZSA9IGZpcnN0Tm9uV2hpdGVzcGFjZUNoYXJhY3RlckluZGV4ID09PSAtMTtcbiAgaWYgKCFpc0FsbFdoaXRlc3BhY2UpIHtcbiAgICBzdGFydCArPSBmaXJzdE5vbldoaXRlc3BhY2VDaGFyYWN0ZXJJbmRleDtcbiAgICBmb3IgKDsgZW5kID4gc3RhcnQ7IC0tZW5kKSB7XG4gICAgICBpZiAoL1xcUy8udGVzdCh0ZXh0W2VuZCAtIDFdKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3Qgc3RhcnROb2RlQW5kUGFyZW50cyA9IGZpbmROb2RlQXRPZmZzZXQoXG4gICAgYXN0LFxuICAgIHN0YXJ0LFxuICAgIG9wdHMsXG4gICAgKG5vZGUsIHBhcmVudE5vZGUpID0+IGlzU291cmNlRWxlbWVudChvcHRzLCBub2RlLCBwYXJlbnROb2RlKSxcbiAgICBbXSxcbiAgICBcInJhbmdlU3RhcnRcIlxuICApO1xuICBjb25zdCBlbmROb2RlQW5kUGFyZW50cyA9IChcbiAgICAvLyBObyBuZWVkIGZpbmQgTm9kZSBhdCBgZW5kYCwgaXQgd2lsbCBiZSB0aGUgc2FtZSBhcyBgc3RhcnROb2RlQW5kUGFyZW50c2BcbiAgICBpc0FsbFdoaXRlc3BhY2UgPyBzdGFydE5vZGVBbmRQYXJlbnRzIDogZmluZE5vZGVBdE9mZnNldChcbiAgICAgIGFzdCxcbiAgICAgIGVuZCxcbiAgICAgIG9wdHMsXG4gICAgICAobm9kZSkgPT4gaXNTb3VyY2VFbGVtZW50KG9wdHMsIG5vZGUpLFxuICAgICAgW10sXG4gICAgICBcInJhbmdlRW5kXCJcbiAgICApXG4gICk7XG4gIGlmICghc3RhcnROb2RlQW5kUGFyZW50cyB8fCAhZW5kTm9kZUFuZFBhcmVudHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmFuZ2VTdGFydDogMCxcbiAgICAgIHJhbmdlRW5kOiAwXG4gICAgfTtcbiAgfVxuICBsZXQgc3RhcnROb2RlO1xuICBsZXQgZW5kTm9kZTtcbiAgaWYgKGlzSnNvblBhcnNlcihvcHRzKSkge1xuICAgIGNvbnN0IGNvbW1vbkFuY2VzdG9yID0gZmluZENvbW1vbkFuY2VzdG9yKFxuICAgICAgc3RhcnROb2RlQW5kUGFyZW50cyxcbiAgICAgIGVuZE5vZGVBbmRQYXJlbnRzXG4gICAgKTtcbiAgICBzdGFydE5vZGUgPSBjb21tb25BbmNlc3RvcjtcbiAgICBlbmROb2RlID0gY29tbW9uQW5jZXN0b3I7XG4gIH0gZWxzZSB7XG4gICAgKHsgc3RhcnROb2RlLCBlbmROb2RlIH0gPSBmaW5kU2libGluZ0FuY2VzdG9ycyhcbiAgICAgIHN0YXJ0Tm9kZUFuZFBhcmVudHMsXG4gICAgICBlbmROb2RlQW5kUGFyZW50cyxcbiAgICAgIG9wdHNcbiAgICApKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHJhbmdlU3RhcnQ6IE1hdGgubWluKGxvY1N0YXJ0KHN0YXJ0Tm9kZSksIGxvY1N0YXJ0KGVuZE5vZGUpKSxcbiAgICByYW5nZUVuZDogTWF0aC5tYXgobG9jRW5kKHN0YXJ0Tm9kZSksIGxvY0VuZChlbmROb2RlKSlcbiAgfTtcbn1cblxuLy8gc3JjL21haW4vZ2V0LWN1cnNvci1ub2RlLmpzXG5mdW5jdGlvbiBnZXRDdXJzb3JOb2RlKGFzdCwgb3B0aW9uczgpIHtcbiAgY29uc3QgeyBjdXJzb3JPZmZzZXQsIGxvY1N0YXJ0LCBsb2NFbmQgfSA9IG9wdGlvbnM4O1xuICBjb25zdCBnZXRWaXNpdG9yS2V5cyA9IGNyZWF0ZV9nZXRfdmlzaXRvcl9rZXlzX2Z1bmN0aW9uX2RlZmF1bHQoXG4gICAgb3B0aW9uczgucHJpbnRlci5nZXRWaXNpdG9yS2V5c1xuICApO1xuICBjb25zdCBub2RlQ29udGFpbnNDdXJzb3IgPSAobm9kZSkgPT4gbG9jU3RhcnQobm9kZSkgPD0gY3Vyc29yT2Zmc2V0ICYmIGxvY0VuZChub2RlKSA+PSBjdXJzb3JPZmZzZXQ7XG4gIGxldCBjdXJzb3JOb2RlID0gYXN0O1xuICBmb3IgKGNvbnN0IG5vZGUgb2YgZ2V0RGVzY2VuZGFudHMoYXN0LCB7XG4gICAgZ2V0VmlzaXRvcktleXMsXG4gICAgZmlsdGVyOiBub2RlQ29udGFpbnNDdXJzb3JcbiAgfSkpIHtcbiAgICBjdXJzb3JOb2RlID0gbm9kZTtcbiAgfVxuICByZXR1cm4gY3Vyc29yTm9kZTtcbn1cbnZhciBnZXRfY3Vyc29yX25vZGVfZGVmYXVsdCA9IGdldEN1cnNvck5vZGU7XG5cbi8vIHNyYy9tYWluL2NvcmUuanNcbnZhciBCT00gPSBcIlxcdUZFRkZcIjtcbnZhciBDVVJTT1IgPSBTeW1ib2woXCJjdXJzb3JcIik7XG5hc3luYyBmdW5jdGlvbiBjb3JlRm9ybWF0KG9yaWdpbmFsVGV4dCwgb3B0cywgYWRkQWxpZ25tZW50U2l6ZSA9IDApIHtcbiAgaWYgKCFvcmlnaW5hbFRleHQgfHwgb3JpZ2luYWxUZXh0LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybWF0dGVkOiBcIlwiLFxuICAgICAgY3Vyc29yT2Zmc2V0OiAtMSxcbiAgICAgIGNvbW1lbnRzOiBbXVxuICAgIH07XG4gIH1cbiAgY29uc3Qge1xuICAgIGFzdCxcbiAgICB0ZXh0XG4gIH0gPSBhd2FpdCBwYXJzZV9kZWZhdWx0KG9yaWdpbmFsVGV4dCwgb3B0cyk7XG4gIGlmIChvcHRzLmN1cnNvck9mZnNldCA+PSAwKSB7XG4gICAgb3B0cy5jdXJzb3JOb2RlID0gZ2V0X2N1cnNvcl9ub2RlX2RlZmF1bHQoYXN0LCBvcHRzKTtcbiAgfVxuICBsZXQgZG9jMiA9IGF3YWl0IHByaW50QXN0VG9Eb2MoYXN0LCBvcHRzLCBhZGRBbGlnbm1lbnRTaXplKTtcbiAgaWYgKGFkZEFsaWdubWVudFNpemUgPiAwKSB7XG4gICAgZG9jMiA9IGFkZEFsaWdubWVudFRvRG9jKFtoYXJkbGluZSwgZG9jMl0sIGFkZEFsaWdubWVudFNpemUsIG9wdHMudGFiV2lkdGgpO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHByaW50RG9jVG9TdHJpbmcoZG9jMiwgb3B0cyk7XG4gIGlmIChhZGRBbGlnbm1lbnRTaXplID4gMCkge1xuICAgIGNvbnN0IHRyaW1tZWQgPSByZXN1bHQuZm9ybWF0dGVkLnRyaW0oKTtcbiAgICBpZiAocmVzdWx0LmN1cnNvck5vZGVTdGFydCAhPT0gdm9pZCAwKSB7XG4gICAgICByZXN1bHQuY3Vyc29yTm9kZVN0YXJ0IC09IHJlc3VsdC5mb3JtYXR0ZWQuaW5kZXhPZih0cmltbWVkKTtcbiAgICB9XG4gICAgcmVzdWx0LmZvcm1hdHRlZCA9IHRyaW1tZWQgKyBjb252ZXJ0RW5kT2ZMaW5lVG9DaGFycyhvcHRzLmVuZE9mTGluZSk7XG4gIH1cbiAgY29uc3QgY29tbWVudHMgPSBvcHRzW1N5bWJvbC5mb3IoXCJjb21tZW50c1wiKV07XG4gIGlmIChvcHRzLmN1cnNvck9mZnNldCA+PSAwKSB7XG4gICAgbGV0IG9sZEN1cnNvck5vZGVTdGFydDtcbiAgICBsZXQgb2xkQ3Vyc29yTm9kZVRleHQ7XG4gICAgbGV0IGN1cnNvck9mZnNldFJlbGF0aXZlVG9PbGRDdXJzb3JOb2RlO1xuICAgIGxldCBuZXdDdXJzb3JOb2RlU3RhcnQ7XG4gICAgbGV0IG5ld0N1cnNvck5vZGVUZXh0O1xuICAgIGlmIChvcHRzLmN1cnNvck5vZGUgJiYgcmVzdWx0LmN1cnNvck5vZGVUZXh0KSB7XG4gICAgICBvbGRDdXJzb3JOb2RlU3RhcnQgPSBvcHRzLmxvY1N0YXJ0KG9wdHMuY3Vyc29yTm9kZSk7XG4gICAgICBvbGRDdXJzb3JOb2RlVGV4dCA9IHRleHQuc2xpY2Uob2xkQ3Vyc29yTm9kZVN0YXJ0LCBvcHRzLmxvY0VuZChvcHRzLmN1cnNvck5vZGUpKTtcbiAgICAgIGN1cnNvck9mZnNldFJlbGF0aXZlVG9PbGRDdXJzb3JOb2RlID0gb3B0cy5jdXJzb3JPZmZzZXQgLSBvbGRDdXJzb3JOb2RlU3RhcnQ7XG4gICAgICBuZXdDdXJzb3JOb2RlU3RhcnQgPSByZXN1bHQuY3Vyc29yTm9kZVN0YXJ0O1xuICAgICAgbmV3Q3Vyc29yTm9kZVRleHQgPSByZXN1bHQuY3Vyc29yTm9kZVRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sZEN1cnNvck5vZGVTdGFydCA9IDA7XG4gICAgICBvbGRDdXJzb3JOb2RlVGV4dCA9IHRleHQ7XG4gICAgICBjdXJzb3JPZmZzZXRSZWxhdGl2ZVRvT2xkQ3Vyc29yTm9kZSA9IG9wdHMuY3Vyc29yT2Zmc2V0O1xuICAgICAgbmV3Q3Vyc29yTm9kZVN0YXJ0ID0gMDtcbiAgICAgIG5ld0N1cnNvck5vZGVUZXh0ID0gcmVzdWx0LmZvcm1hdHRlZDtcbiAgICB9XG4gICAgaWYgKG9sZEN1cnNvck5vZGVUZXh0ID09PSBuZXdDdXJzb3JOb2RlVGV4dCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9ybWF0dGVkOiByZXN1bHQuZm9ybWF0dGVkLFxuICAgICAgICBjdXJzb3JPZmZzZXQ6IG5ld0N1cnNvck5vZGVTdGFydCArIGN1cnNvck9mZnNldFJlbGF0aXZlVG9PbGRDdXJzb3JOb2RlLFxuICAgICAgICBjb21tZW50c1xuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3Qgb2xkQ3Vyc29yTm9kZUNoYXJBcnJheSA9IG9sZEN1cnNvck5vZGVUZXh0LnNwbGl0KFwiXCIpO1xuICAgIG9sZEN1cnNvck5vZGVDaGFyQXJyYXkuc3BsaWNlKGN1cnNvck9mZnNldFJlbGF0aXZlVG9PbGRDdXJzb3JOb2RlLCAwLCBDVVJTT1IpO1xuICAgIGNvbnN0IG5ld0N1cnNvck5vZGVDaGFyQXJyYXkgPSBuZXdDdXJzb3JOb2RlVGV4dC5zcGxpdChcIlwiKTtcbiAgICBjb25zdCBjdXJzb3JOb2RlRGlmZiA9ICgwLCBpbXBvcnRfZGlmZi5kaWZmQXJyYXlzKShvbGRDdXJzb3JOb2RlQ2hhckFycmF5LCBuZXdDdXJzb3JOb2RlQ2hhckFycmF5KTtcbiAgICBsZXQgY3Vyc29yT2Zmc2V0ID0gbmV3Q3Vyc29yTm9kZVN0YXJ0O1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgY3Vyc29yTm9kZURpZmYpIHtcbiAgICAgIGlmIChlbnRyeS5yZW1vdmVkKSB7XG4gICAgICAgIGlmIChlbnRyeS52YWx1ZS5pbmNsdWRlcyhDVVJTT1IpKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnNvck9mZnNldCArPSBlbnRyeS5jb3VudDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1hdHRlZDogcmVzdWx0LmZvcm1hdHRlZCxcbiAgICAgIGN1cnNvck9mZnNldCxcbiAgICAgIGNvbW1lbnRzXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGZvcm1hdHRlZDogcmVzdWx0LmZvcm1hdHRlZCxcbiAgICBjdXJzb3JPZmZzZXQ6IC0xLFxuICAgIGNvbW1lbnRzXG4gIH07XG59XG5hc3luYyBmdW5jdGlvbiBmb3JtYXRSYW5nZShvcmlnaW5hbFRleHQsIG9wdHMpIHtcbiAgY29uc3Qge1xuICAgIGFzdCxcbiAgICB0ZXh0XG4gIH0gPSBhd2FpdCBwYXJzZV9kZWZhdWx0KG9yaWdpbmFsVGV4dCwgb3B0cyk7XG4gIGNvbnN0IHtcbiAgICByYW5nZVN0YXJ0LFxuICAgIHJhbmdlRW5kXG4gIH0gPSBjYWxjdWxhdGVSYW5nZSh0ZXh0LCBvcHRzLCBhc3QpO1xuICBjb25zdCByYW5nZVN0cmluZyA9IHRleHQuc2xpY2UocmFuZ2VTdGFydCwgcmFuZ2VFbmQpO1xuICBjb25zdCByYW5nZVN0YXJ0MiA9IE1hdGgubWluKHJhbmdlU3RhcnQsIHRleHQubGFzdEluZGV4T2YoXCJcXG5cIiwgcmFuZ2VTdGFydCkgKyAxKTtcbiAgY29uc3QgaW5kZW50U3RyaW5nID0gdGV4dC5zbGljZShyYW5nZVN0YXJ0MiwgcmFuZ2VTdGFydCkubWF0Y2goL15cXHMqLylbMF07XG4gIGNvbnN0IGFsaWdubWVudFNpemUgPSBnZXRfYWxpZ25tZW50X3NpemVfZGVmYXVsdChpbmRlbnRTdHJpbmcsIG9wdHMudGFiV2lkdGgpO1xuICBjb25zdCByYW5nZVJlc3VsdCA9IGF3YWl0IGNvcmVGb3JtYXQocmFuZ2VTdHJpbmcsIHtcbiAgICAuLi5vcHRzLFxuICAgIHJhbmdlU3RhcnQ6IDAsXG4gICAgcmFuZ2VFbmQ6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxcbiAgICAvLyBUcmFjayB0aGUgY3Vyc29yIG9mZnNldCBvbmx5IGlmIGl0J3Mgd2l0aGluIG91ciByYW5nZVxuICAgIGN1cnNvck9mZnNldDogb3B0cy5jdXJzb3JPZmZzZXQgPiByYW5nZVN0YXJ0ICYmIG9wdHMuY3Vyc29yT2Zmc2V0IDw9IHJhbmdlRW5kID8gb3B0cy5jdXJzb3JPZmZzZXQgLSByYW5nZVN0YXJ0IDogLTEsXG4gICAgLy8gQWx3YXlzIHVzZSBgbGZgIHRvIGZvcm1hdCwgd2UnbGwgcmVwbGFjZSBpdCBsYXRlclxuICAgIGVuZE9mTGluZTogXCJsZlwiXG4gIH0sIGFsaWdubWVudFNpemUpO1xuICBjb25zdCByYW5nZVRyaW1tZWQgPSByYW5nZVJlc3VsdC5mb3JtYXR0ZWQudHJpbUVuZCgpO1xuICBsZXQge1xuICAgIGN1cnNvck9mZnNldFxuICB9ID0gb3B0cztcbiAgaWYgKGN1cnNvck9mZnNldCA+IHJhbmdlRW5kKSB7XG4gICAgY3Vyc29yT2Zmc2V0ICs9IHJhbmdlVHJpbW1lZC5sZW5ndGggLSByYW5nZVN0cmluZy5sZW5ndGg7XG4gIH0gZWxzZSBpZiAocmFuZ2VSZXN1bHQuY3Vyc29yT2Zmc2V0ID49IDApIHtcbiAgICBjdXJzb3JPZmZzZXQgPSByYW5nZVJlc3VsdC5jdXJzb3JPZmZzZXQgKyByYW5nZVN0YXJ0O1xuICB9XG4gIGxldCBmb3JtYXR0ZWQgPSB0ZXh0LnNsaWNlKDAsIHJhbmdlU3RhcnQpICsgcmFuZ2VUcmltbWVkICsgdGV4dC5zbGljZShyYW5nZUVuZCk7XG4gIGlmIChvcHRzLmVuZE9mTGluZSAhPT0gXCJsZlwiKSB7XG4gICAgY29uc3QgZW9sID0gY29udmVydEVuZE9mTGluZVRvQ2hhcnMob3B0cy5lbmRPZkxpbmUpO1xuICAgIGlmIChjdXJzb3JPZmZzZXQgPj0gMCAmJiBlb2wgPT09IFwiXFxyXFxuXCIpIHtcbiAgICAgIGN1cnNvck9mZnNldCArPSBjb3VudEVuZE9mTGluZUNoYXJzKGZvcm1hdHRlZC5zbGljZSgwLCBjdXJzb3JPZmZzZXQpLCBcIlxcblwiKTtcbiAgICB9XG4gICAgZm9ybWF0dGVkID0gc3RyaW5nX3JlcGxhY2VfYWxsX2RlZmF1bHQoXG4gICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgIGZhbHNlLFxuICAgICAgZm9ybWF0dGVkLFxuICAgICAgXCJcXG5cIixcbiAgICAgIGVvbFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBmb3JtYXR0ZWQsXG4gICAgY3Vyc29yT2Zmc2V0LFxuICAgIGNvbW1lbnRzOiByYW5nZVJlc3VsdC5jb21tZW50c1xuICB9O1xufVxuZnVuY3Rpb24gZW5zdXJlSW5kZXhJblRleHQodGV4dCwgaW5kZXgsIGRlZmF1bHRWYWx1ZSkge1xuICBpZiAodHlwZW9mIGluZGV4ICE9PSBcIm51bWJlclwiIHx8IE51bWJlci5pc05hTihpbmRleCkgfHwgaW5kZXggPCAwIHx8IGluZGV4ID4gdGV4dC5sZW5ndGgpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG4gIHJldHVybiBpbmRleDtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUluZGV4ZXModGV4dCwgb3B0aW9uczgpIHtcbiAgbGV0IHtcbiAgICBjdXJzb3JPZmZzZXQsXG4gICAgcmFuZ2VTdGFydCxcbiAgICByYW5nZUVuZFxuICB9ID0gb3B0aW9uczg7XG4gIGN1cnNvck9mZnNldCA9IGVuc3VyZUluZGV4SW5UZXh0KHRleHQsIGN1cnNvck9mZnNldCwgLTEpO1xuICByYW5nZVN0YXJ0ID0gZW5zdXJlSW5kZXhJblRleHQodGV4dCwgcmFuZ2VTdGFydCwgMCk7XG4gIHJhbmdlRW5kID0gZW5zdXJlSW5kZXhJblRleHQodGV4dCwgcmFuZ2VFbmQsIHRleHQubGVuZ3RoKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5vcHRpb25zOCxcbiAgICBjdXJzb3JPZmZzZXQsXG4gICAgcmFuZ2VTdGFydCxcbiAgICByYW5nZUVuZFxuICB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplSW5wdXRBbmRPcHRpb25zKHRleHQsIG9wdGlvbnM4KSB7XG4gIGxldCB7XG4gICAgY3Vyc29yT2Zmc2V0LFxuICAgIHJhbmdlU3RhcnQsXG4gICAgcmFuZ2VFbmQsXG4gICAgZW5kT2ZMaW5lXG4gIH0gPSBub3JtYWxpemVJbmRleGVzKHRleHQsIG9wdGlvbnM4KTtcbiAgY29uc3QgaGFzQk9NID0gdGV4dC5jaGFyQXQoMCkgPT09IEJPTTtcbiAgaWYgKGhhc0JPTSkge1xuICAgIHRleHQgPSB0ZXh0LnNsaWNlKDEpO1xuICAgIGN1cnNvck9mZnNldC0tO1xuICAgIHJhbmdlU3RhcnQtLTtcbiAgICByYW5nZUVuZC0tO1xuICB9XG4gIGlmIChlbmRPZkxpbmUgPT09IFwiYXV0b1wiKSB7XG4gICAgZW5kT2ZMaW5lID0gZ3Vlc3NFbmRPZkxpbmUodGV4dCk7XG4gIH1cbiAgaWYgKHRleHQuaW5jbHVkZXMoXCJcXHJcIikpIHtcbiAgICBjb25zdCBjb3VudENybGZCZWZvcmUgPSAoaW5kZXgpID0+IGNvdW50RW5kT2ZMaW5lQ2hhcnModGV4dC5zbGljZSgwLCBNYXRoLm1heChpbmRleCwgMCkpLCBcIlxcclxcblwiKTtcbiAgICBjdXJzb3JPZmZzZXQgLT0gY291bnRDcmxmQmVmb3JlKGN1cnNvck9mZnNldCk7XG4gICAgcmFuZ2VTdGFydCAtPSBjb3VudENybGZCZWZvcmUocmFuZ2VTdGFydCk7XG4gICAgcmFuZ2VFbmQgLT0gY291bnRDcmxmQmVmb3JlKHJhbmdlRW5kKTtcbiAgICB0ZXh0ID0gbm9ybWFsaXplRW5kT2ZMaW5lKHRleHQpO1xuICB9XG4gIHJldHVybiB7XG4gICAgaGFzQk9NLFxuICAgIHRleHQsXG4gICAgb3B0aW9uczogbm9ybWFsaXplSW5kZXhlcyh0ZXh0LCB7XG4gICAgICAuLi5vcHRpb25zOCxcbiAgICAgIGN1cnNvck9mZnNldCxcbiAgICAgIHJhbmdlU3RhcnQsXG4gICAgICByYW5nZUVuZCxcbiAgICAgIGVuZE9mTGluZVxuICAgIH0pXG4gIH07XG59XG5hc3luYyBmdW5jdGlvbiBoYXNQcmFnbWEodGV4dCwgb3B0aW9uczgpIHtcbiAgY29uc3Qgc2VsZWN0ZWRQYXJzZXIgPSBhd2FpdCByZXNvbHZlUGFyc2VyKG9wdGlvbnM4KTtcbiAgcmV0dXJuICFzZWxlY3RlZFBhcnNlci5oYXNQcmFnbWEgfHwgc2VsZWN0ZWRQYXJzZXIuaGFzUHJhZ21hKHRleHQpO1xufVxuYXN5bmMgZnVuY3Rpb24gZm9ybWF0V2l0aEN1cnNvcihvcmlnaW5hbFRleHQsIG9yaWdpbmFsT3B0aW9ucykge1xuICBsZXQge1xuICAgIGhhc0JPTSxcbiAgICB0ZXh0LFxuICAgIG9wdGlvbnM6IG9wdGlvbnM4XG4gIH0gPSBub3JtYWxpemVJbnB1dEFuZE9wdGlvbnMob3JpZ2luYWxUZXh0LCBhd2FpdCBub3JtYWxpemVfZm9ybWF0X29wdGlvbnNfZGVmYXVsdChvcmlnaW5hbE9wdGlvbnMpKTtcbiAgaWYgKG9wdGlvbnM4LnJhbmdlU3RhcnQgPj0gb3B0aW9uczgucmFuZ2VFbmQgJiYgdGV4dCAhPT0gXCJcIiB8fCBvcHRpb25zOC5yZXF1aXJlUHJhZ21hICYmICFhd2FpdCBoYXNQcmFnbWEodGV4dCwgb3B0aW9uczgpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1hdHRlZDogb3JpZ2luYWxUZXh0LFxuICAgICAgY3Vyc29yT2Zmc2V0OiBvcmlnaW5hbE9wdGlvbnMuY3Vyc29yT2Zmc2V0LFxuICAgICAgY29tbWVudHM6IFtdXG4gICAgfTtcbiAgfVxuICBsZXQgcmVzdWx0O1xuICBpZiAob3B0aW9uczgucmFuZ2VTdGFydCA+IDAgfHwgb3B0aW9uczgucmFuZ2VFbmQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgIHJlc3VsdCA9IGF3YWl0IGZvcm1hdFJhbmdlKHRleHQsIG9wdGlvbnM4KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIW9wdGlvbnM4LnJlcXVpcmVQcmFnbWEgJiYgb3B0aW9uczguaW5zZXJ0UHJhZ21hICYmIG9wdGlvbnM4LnByaW50ZXIuaW5zZXJ0UHJhZ21hICYmICFhd2FpdCBoYXNQcmFnbWEodGV4dCwgb3B0aW9uczgpKSB7XG4gICAgICB0ZXh0ID0gb3B0aW9uczgucHJpbnRlci5pbnNlcnRQcmFnbWEodGV4dCk7XG4gICAgfVxuICAgIHJlc3VsdCA9IGF3YWl0IGNvcmVGb3JtYXQodGV4dCwgb3B0aW9uczgpO1xuICB9XG4gIGlmIChoYXNCT00pIHtcbiAgICByZXN1bHQuZm9ybWF0dGVkID0gQk9NICsgcmVzdWx0LmZvcm1hdHRlZDtcbiAgICBpZiAocmVzdWx0LmN1cnNvck9mZnNldCA+PSAwKSB7XG4gICAgICByZXN1bHQuY3Vyc29yT2Zmc2V0Kys7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5hc3luYyBmdW5jdGlvbiBwYXJzZTIob3JpZ2luYWxUZXh0LCBvcmlnaW5hbE9wdGlvbnMsIGRldk9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIHRleHQsXG4gICAgb3B0aW9uczogb3B0aW9uczhcbiAgfSA9IG5vcm1hbGl6ZUlucHV0QW5kT3B0aW9ucyhvcmlnaW5hbFRleHQsIGF3YWl0IG5vcm1hbGl6ZV9mb3JtYXRfb3B0aW9uc19kZWZhdWx0KG9yaWdpbmFsT3B0aW9ucykpO1xuICBjb25zdCBwYXJzZWQgPSBhd2FpdCBwYXJzZV9kZWZhdWx0KHRleHQsIG9wdGlvbnM4KTtcbiAgaWYgKGRldk9wdGlvbnMpIHtcbiAgICBpZiAoZGV2T3B0aW9ucy5wcmVwcm9jZXNzRm9yUHJpbnQpIHtcbiAgICAgIHBhcnNlZC5hc3QgPSBhd2FpdCBwcmVwYXJlVG9QcmludChwYXJzZWQuYXN0LCBvcHRpb25zOCk7XG4gICAgfVxuICAgIGlmIChkZXZPcHRpb25zLm1hc3NhZ2UpIHtcbiAgICAgIHBhcnNlZC5hc3QgPSBtYXNzYWdlX2FzdF9kZWZhdWx0KHBhcnNlZC5hc3QsIG9wdGlvbnM4KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGZvcm1hdEFzdChhc3QsIG9wdGlvbnM4KSB7XG4gIG9wdGlvbnM4ID0gYXdhaXQgbm9ybWFsaXplX2Zvcm1hdF9vcHRpb25zX2RlZmF1bHQob3B0aW9uczgpO1xuICBjb25zdCBkb2MyID0gYXdhaXQgcHJpbnRBc3RUb0RvYyhhc3QsIG9wdGlvbnM4KTtcbiAgcmV0dXJuIHByaW50RG9jVG9TdHJpbmcoZG9jMiwgb3B0aW9uczgpO1xufVxuYXN5bmMgZnVuY3Rpb24gZm9ybWF0RG9jKGRvYzIsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHRleHQgPSBwcmludERvY1RvRGVidWcoZG9jMik7XG4gIGNvbnN0IHtcbiAgICBmb3JtYXR0ZWRcbiAgfSA9IGF3YWl0IGZvcm1hdFdpdGhDdXJzb3IodGV4dCwge1xuICAgIC4uLm9wdGlvbnM4LFxuICAgIHBhcnNlcjogXCJfX2pzX2V4cHJlc3Npb25cIlxuICB9KTtcbiAgcmV0dXJuIGZvcm1hdHRlZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHByaW50VG9Eb2Mob3JpZ2luYWxUZXh0LCBvcHRpb25zOCkge1xuICBvcHRpb25zOCA9IGF3YWl0IG5vcm1hbGl6ZV9mb3JtYXRfb3B0aW9uc19kZWZhdWx0KG9wdGlvbnM4KTtcbiAgY29uc3Qge1xuICAgIGFzdFxuICB9ID0gYXdhaXQgcGFyc2VfZGVmYXVsdChvcmlnaW5hbFRleHQsIG9wdGlvbnM4KTtcbiAgcmV0dXJuIHByaW50QXN0VG9Eb2MoYXN0LCBvcHRpb25zOCk7XG59XG5hc3luYyBmdW5jdGlvbiBwcmludERvY1RvU3RyaW5nMihkb2MyLCBvcHRpb25zOCkge1xuICByZXR1cm4gcHJpbnREb2NUb1N0cmluZyhkb2MyLCBhd2FpdCBub3JtYWxpemVfZm9ybWF0X29wdGlvbnNfZGVmYXVsdChvcHRpb25zOCkpO1xufVxuXG4vLyBzcmMvY29uZmlnL3Jlc29sdmUtY29uZmlnLmpzXG52YXIgaW1wb3J0X21pY3JvbWF0Y2ggPSBfX3RvRVNNKHJlcXVpcmVfbWljcm9tYXRjaCgpLCAxKTtcbmltcG9ydCBwYXRoNSBmcm9tIFwicGF0aFwiO1xuXG4vLyBub2RlX21vZHVsZXMvbWltaWMtZm4vaW5kZXguanNcbnZhciBjb3B5UHJvcGVydHkgPSAodG8sIGZyb20sIHByb3BlcnR5LCBpZ25vcmVOb25Db25maWd1cmFibGUpID0+IHtcbiAgaWYgKHByb3BlcnR5ID09PSBcImxlbmd0aFwiIHx8IHByb3BlcnR5ID09PSBcInByb3RvdHlwZVwiKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9wZXJ0eSA9PT0gXCJhcmd1bWVudHNcIiB8fCBwcm9wZXJ0eSA9PT0gXCJjYWxsZXJcIikge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCB0b0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvLCBwcm9wZXJ0eSk7XG4gIGNvbnN0IGZyb21EZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmcm9tLCBwcm9wZXJ0eSk7XG4gIGlmICghY2FuQ29weVByb3BlcnR5KHRvRGVzY3JpcHRvciwgZnJvbURlc2NyaXB0b3IpICYmIGlnbm9yZU5vbkNvbmZpZ3VyYWJsZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIHByb3BlcnR5LCBmcm9tRGVzY3JpcHRvcik7XG59O1xudmFyIGNhbkNvcHlQcm9wZXJ0eSA9IGZ1bmN0aW9uKHRvRGVzY3JpcHRvciwgZnJvbURlc2NyaXB0b3IpIHtcbiAgcmV0dXJuIHRvRGVzY3JpcHRvciA9PT0gdm9pZCAwIHx8IHRvRGVzY3JpcHRvci5jb25maWd1cmFibGUgfHwgdG9EZXNjcmlwdG9yLndyaXRhYmxlID09PSBmcm9tRGVzY3JpcHRvci53cml0YWJsZSAmJiB0b0Rlc2NyaXB0b3IuZW51bWVyYWJsZSA9PT0gZnJvbURlc2NyaXB0b3IuZW51bWVyYWJsZSAmJiB0b0Rlc2NyaXB0b3IuY29uZmlndXJhYmxlID09PSBmcm9tRGVzY3JpcHRvci5jb25maWd1cmFibGUgJiYgKHRvRGVzY3JpcHRvci53cml0YWJsZSB8fCB0b0Rlc2NyaXB0b3IudmFsdWUgPT09IGZyb21EZXNjcmlwdG9yLnZhbHVlKTtcbn07XG52YXIgY2hhbmdlUHJvdG90eXBlID0gKHRvLCBmcm9tKSA9PiB7XG4gIGNvbnN0IGZyb21Qcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZnJvbSk7XG4gIGlmIChmcm9tUHJvdG90eXBlID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodG8pKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZih0bywgZnJvbVByb3RvdHlwZSk7XG59O1xudmFyIHdyYXBwZWRUb1N0cmluZyA9ICh3aXRoTmFtZSwgZnJvbUJvZHkpID0+IGAvKiBXcmFwcGVkICR7d2l0aE5hbWV9Ki9cbiR7ZnJvbUJvZHl9YDtcbnZhciB0b1N0cmluZ0Rlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLnByb3RvdHlwZSwgXCJ0b1N0cmluZ1wiKTtcbnZhciB0b1N0cmluZ05hbWUgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZywgXCJuYW1lXCIpO1xudmFyIGNoYW5nZVRvU3RyaW5nID0gKHRvLCBmcm9tLCBuYW1lKSA9PiB7XG4gIGNvbnN0IHdpdGhOYW1lID0gbmFtZSA9PT0gXCJcIiA/IFwiXCIgOiBgd2l0aCAke25hbWUudHJpbSgpfSgpIGA7XG4gIGNvbnN0IG5ld1RvU3RyaW5nID0gd3JhcHBlZFRvU3RyaW5nLmJpbmQobnVsbCwgd2l0aE5hbWUsIGZyb20udG9TdHJpbmcoKSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdUb1N0cmluZywgXCJuYW1lXCIsIHRvU3RyaW5nTmFtZSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0bywgXCJ0b1N0cmluZ1wiLCB7IC4uLnRvU3RyaW5nRGVzY3JpcHRvciwgdmFsdWU6IG5ld1RvU3RyaW5nIH0pO1xufTtcbmZ1bmN0aW9uIG1pbWljRnVuY3Rpb24odG8sIGZyb20sIHsgaWdub3JlTm9uQ29uZmlndXJhYmxlID0gZmFsc2UgfSA9IHt9KSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gdG87XG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgUmVmbGVjdC5vd25LZXlzKGZyb20pKSB7XG4gICAgY29weVByb3BlcnR5KHRvLCBmcm9tLCBwcm9wZXJ0eSwgaWdub3JlTm9uQ29uZmlndXJhYmxlKTtcbiAgfVxuICBjaGFuZ2VQcm90b3R5cGUodG8sIGZyb20pO1xuICBjaGFuZ2VUb1N0cmluZyh0bywgZnJvbSwgbmFtZSk7XG4gIHJldHVybiB0bztcbn1cblxuLy8gbm9kZV9tb2R1bGVzL21lbS9kaXN0L2luZGV4LmpzXG52YXIgaW1wb3J0X21hcF9hZ2VfY2xlYW5lciA9IF9fdG9FU00ocmVxdWlyZV9kaXN0KCksIDEpO1xudmFyIGNhY2hlU3RvcmUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1lbShmbiwgeyBjYWNoZUtleSwgY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpLCBtYXhBZ2UgfSA9IHt9KSB7XG4gIGlmICh0eXBlb2YgbWF4QWdlID09PSBcIm51bWJlclwiKSB7XG4gICAgKDAsIGltcG9ydF9tYXBfYWdlX2NsZWFuZXIuZGVmYXVsdCkoY2FjaGUpO1xuICB9XG4gIGNvbnN0IG1lbW9pemVkID0gZnVuY3Rpb24oLi4uYXJndW1lbnRzXykge1xuICAgIGNvbnN0IGtleSA9IGNhY2hlS2V5ID8gY2FjaGVLZXkoYXJndW1lbnRzXykgOiBhcmd1bWVudHNfWzBdO1xuICAgIGNvbnN0IGNhY2hlSXRlbSA9IGNhY2hlLmdldChrZXkpO1xuICAgIGlmIChjYWNoZUl0ZW0pIHtcbiAgICAgIHJldHVybiBjYWNoZUl0ZW0uZGF0YTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzXyk7XG4gICAgY2FjaGUuc2V0KGtleSwge1xuICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgbWF4QWdlOiBtYXhBZ2UgPyBEYXRlLm5vdygpICsgbWF4QWdlIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgbWltaWNGdW5jdGlvbihtZW1vaXplZCwgZm4sIHtcbiAgICBpZ25vcmVOb25Db25maWd1cmFibGU6IHRydWVcbiAgfSk7XG4gIGNhY2hlU3RvcmUuc2V0KG1lbW9pemVkLCBjYWNoZSk7XG4gIHJldHVybiBtZW1vaXplZDtcbn1cbmZ1bmN0aW9uIG1lbUNsZWFyKGZuKSB7XG4gIGNvbnN0IGNhY2hlID0gY2FjaGVTdG9yZS5nZXQoZm4pO1xuICBpZiAoIWNhY2hlKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbid0IGNsZWFyIGEgZnVuY3Rpb24gdGhhdCB3YXMgbm90IG1lbW9pemVkIVwiKTtcbiAgfVxuICBpZiAodHlwZW9mIGNhY2hlLmNsZWFyICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVGhlIGNhY2hlIE1hcCBjYW4ndCBiZSBjbGVhcmVkIVwiKTtcbiAgfVxuICBjYWNoZS5jbGVhcigpO1xufVxuXG4vLyBzcmMvdXRpbHMvcGFydGl0aW9uLmpzXG5mdW5jdGlvbiBwYXJ0aXRpb24yKGFycmF5MiwgcHJlZGljYXRlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFtbXSwgW11dO1xuICBmb3IgKGNvbnN0IHZhbHVlIG9mIGFycmF5Mikge1xuICAgIHJlc3VsdFtwcmVkaWNhdGUodmFsdWUpID8gMCA6IDFdLnB1c2godmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG52YXIgcGFydGl0aW9uX2RlZmF1bHQgPSBwYXJ0aXRpb24yO1xuXG4vLyBzcmMvY29uZmlnL3Jlc29sdmUtZWRpdG9yY29uZmlnLmpzXG52YXIgaW1wb3J0X2VkaXRvcmNvbmZpZyA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7XG52YXIgaW1wb3J0X2VkaXRvcmNvbmZpZ190b19wcmV0dGllciA9IF9fdG9FU00ocmVxdWlyZV9lZGl0b3Jjb25maWdfdG9fcHJldHRpZXIoKSwgMSk7XG5pbXBvcnQgcGF0aDIgZnJvbSBcInBhdGhcIjtcblxuLy8gc3JjL2NvbmZpZy9maW5kLXByb2plY3Qtcm9vdC5qc1xuaW1wb3J0IGZzMiBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG52YXIgTUFSS0VSUyA9IFtcIi5naXRcIiwgXCIuaGdcIl07XG52YXIgbWFya2VyRXhpc3RzID0gKGRpcmVjdG9yeSkgPT4gTUFSS0VSUy5zb21lKChtYXJrKSA9PiBmczIuZXhpc3RzU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCBtYXJrKSkpO1xuZnVuY3Rpb24gZmluZFByb2plY3RSb290KGRpcmVjdG9yeSkge1xuICB3aGlsZSAoIW1hcmtlckV4aXN0cyhkaXJlY3RvcnkpKSB7XG4gICAgY29uc3QgcGFyZW50RGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGRpcmVjdG9yeSwgXCIuLlwiKTtcbiAgICBpZiAocGFyZW50RGlyZWN0b3J5ID09PSBkaXJlY3RvcnkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkaXJlY3RvcnkgPSBwYXJlbnREaXJlY3Rvcnk7XG4gIH1cbiAgcmV0dXJuIGRpcmVjdG9yeTtcbn1cbnZhciBmaW5kX3Byb2plY3Rfcm9vdF9kZWZhdWx0ID0gZmluZFByb2plY3RSb290O1xuXG4vLyBzcmMvY29uZmlnL3Jlc29sdmUtZWRpdG9yY29uZmlnLmpzXG5hc3luYyBmdW5jdGlvbiBsb2FkRWRpdG9yQ29uZmlnKGZpbGVQYXRoKSB7XG4gIGNvbnN0IGVkaXRvckNvbmZpZyA9IGF3YWl0IGltcG9ydF9lZGl0b3Jjb25maWcuZGVmYXVsdC5wYXJzZShmaWxlUGF0aCwge1xuICAgIHJvb3Q6IGZpbmRfcHJvamVjdF9yb290X2RlZmF1bHQocGF0aDIuZGlybmFtZShwYXRoMi5yZXNvbHZlKGZpbGVQYXRoKSkpXG4gIH0pO1xuICBjb25zdCBjb25maWcgPSAoMCwgaW1wb3J0X2VkaXRvcmNvbmZpZ190b19wcmV0dGllci5kZWZhdWx0KShlZGl0b3JDb25maWcpO1xuICBpZiAoY29uZmlnKSB7XG4gICAgZGVsZXRlIGNvbmZpZy5pbnNlcnRGaW5hbE5ld2xpbmU7XG4gIH1cbiAgcmV0dXJuIGNvbmZpZztcbn1cbnZhciByZXNvbHZlX2VkaXRvcmNvbmZpZ19kZWZhdWx0ID0gbG9hZEVkaXRvckNvbmZpZztcblxuLy8gc3JjL2NvbmZpZy9nZXQtcHJldHRpZXItY29uZmlnLWV4cGxvcmVyLmpzXG52YXIgaW1wb3J0X3BhcnNlX2FzeW5jID0gX190b0VTTShyZXF1aXJlX3BhcnNlX2FzeW5jKCksIDEpO1xudmFyIGltcG9ydF9wYXJzZTMgPSBfX3RvRVNNKHJlcXVpcmVfcGFyc2UzKCksIDEpO1xuaW1wb3J0IG1vY2thYmxlIGZyb20gXCIuL2ludGVybmFsL2ludGVybmFsLm1qc1wiO1xuXG4vLyBzcmMvdXRpbHMvcmVxdWlyZS1mcm9tLWZpbGUuanNcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5mdW5jdGlvbiByZXF1aXJlRnJvbUZpbGUoaWQsIHBhcmVudCkge1xuICBjb25zdCByZXF1aXJlMiA9IGNyZWF0ZVJlcXVpcmUocGFyZW50KTtcbiAgcmV0dXJuIHJlcXVpcmUyKGlkKTtcbn1cbnZhciByZXF1aXJlX2Zyb21fZmlsZV9kZWZhdWx0ID0gcmVxdWlyZUZyb21GaWxlO1xuXG4vLyBzcmMvdXRpbHMvaW1wb3J0LWZyb20tZmlsZS5qc1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCBhcyBwYXRoVG9GaWxlVVJMMiB9IGZyb20gXCJ1cmxcIjtcblxuLy8gbm9kZV9tb2R1bGVzL2ltcG9ydC1tZXRhLXJlc29sdmUvbGliL3Jlc29sdmUuanNcbmltcG9ydCBhc3NlcnQ1IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7IFN0YXRzLCBzdGF0U3luYywgcmVhbHBhdGhTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgcHJvY2VzczQgZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IFVSTCBhcyBVUkwzLCBmaWxlVVJMVG9QYXRoIGFzIGZpbGVVUkxUb1BhdGgzLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHBhdGg0IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBidWlsdGluTW9kdWxlcyB9IGZyb20gXCJtb2R1bGVcIjtcblxuLy8gbm9kZV9tb2R1bGVzL2ltcG9ydC1tZXRhLXJlc29sdmUvbGliL2dldC1mb3JtYXQuanNcbmltcG9ydCB7IFVSTCBhcyBVUkwyLCBmaWxlVVJMVG9QYXRoIGFzIGZpbGVVUkxUb1BhdGgyIH0gZnJvbSBcInVybFwiO1xuXG4vLyBub2RlX21vZHVsZXMvaW1wb3J0LW1ldGEtcmVzb2x2ZS9saWIvcGFja2FnZS1jb25maWcuanNcbmltcG9ydCB7IFVSTCwgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJ1cmxcIjtcblxuLy8gbm9kZV9tb2R1bGVzL2ltcG9ydC1tZXRhLXJlc29sdmUvbGliL2Vycm9ycy5qc1xuaW1wb3J0IHY4IGZyb20gXCJ2OFwiO1xuaW1wb3J0IHByb2Nlc3MzIGZyb20gXCJwcm9jZXNzXCI7XG5pbXBvcnQgYXNzZXJ0NCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgeyBmb3JtYXQsIGluc3BlY3QgfSBmcm9tIFwidXRpbFwiO1xudmFyIGlzV2luZG93cyA9IHByb2Nlc3MzLnBsYXRmb3JtID09PSBcIndpbjMyXCI7XG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG52YXIgY2xhc3NSZWdFeHAgPSAvXihbQS1aXVthLXpcXGRdKikrJC87XG52YXIga1R5cGVzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1xuICBcInN0cmluZ1wiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwibnVtYmVyXCIsXG4gIFwib2JqZWN0XCIsXG4gIC8vIEFjY2VwdCAnRnVuY3Rpb24nIGFuZCAnT2JqZWN0JyBhcyBhbHRlcm5hdGl2ZSB0byB0aGUgbG93ZXIgY2FzZWQgdmVyc2lvbi5cbiAgXCJGdW5jdGlvblwiLFxuICBcIk9iamVjdFwiLFxuICBcImJvb2xlYW5cIixcbiAgXCJiaWdpbnRcIixcbiAgXCJzeW1ib2xcIlxuXSk7XG52YXIgY29kZXMgPSB7fTtcbmZ1bmN0aW9uIGZvcm1hdExpc3QoYXJyYXkyLCB0eXBlID0gXCJhbmRcIikge1xuICByZXR1cm4gYXJyYXkyLmxlbmd0aCA8IDMgPyBhcnJheTIuam9pbihgICR7dHlwZX0gYCkgOiBgJHthcnJheTIuc2xpY2UoMCwgLTEpLmpvaW4oXCIsIFwiKX0sICR7dHlwZX0gJHthcnJheTJbYXJyYXkyLmxlbmd0aCAtIDFdfWA7XG59XG52YXIgbWVzc2FnZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xudmFyIG5vZGVJbnRlcm5hbFByZWZpeCA9IFwiX19ub2RlX2ludGVybmFsX1wiO1xudmFyIHVzZXJTdGFja1RyYWNlTGltaXQ7XG5jb2Rlcy5FUlJfSU5WQUxJRF9BUkdfVFlQRSA9IGNyZWF0ZUVycm9yKFxuICBcIkVSUl9JTlZBTElEX0FSR19UWVBFXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz4gfCBzdHJpbmd9IGV4cGVjdGVkXG4gICAqIEBwYXJhbSB7dW5rbm93bn0gYWN0dWFsXG4gICAqL1xuICAobmFtZSwgZXhwZWN0ZWQsIGFjdHVhbCkgPT4ge1xuICAgIGFzc2VydDQodHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIsIFwiJ25hbWUnIG11c3QgYmUgYSBzdHJpbmdcIik7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV4cGVjdGVkKSkge1xuICAgICAgZXhwZWN0ZWQgPSBbZXhwZWN0ZWRdO1xuICAgIH1cbiAgICBsZXQgbWVzc2FnZSA9IFwiVGhlIFwiO1xuICAgIGlmIChuYW1lLmVuZHNXaXRoKFwiIGFyZ3VtZW50XCIpKSB7XG4gICAgICBtZXNzYWdlICs9IGAke25hbWV9IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBuYW1lLmluY2x1ZGVzKFwiLlwiKSA/IFwicHJvcGVydHlcIiA6IFwiYXJndW1lbnRcIjtcbiAgICAgIG1lc3NhZ2UgKz0gYFwiJHtuYW1lfVwiICR7dHlwZX0gYDtcbiAgICB9XG4gICAgbWVzc2FnZSArPSBcIm11c3QgYmUgXCI7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcbiAgICBjb25zdCBpbnN0YW5jZXMgPSBbXTtcbiAgICBjb25zdCBvdGhlciA9IFtdO1xuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZXhwZWN0ZWQpIHtcbiAgICAgIGFzc2VydDQoXG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIixcbiAgICAgICAgXCJBbGwgZXhwZWN0ZWQgZW50cmllcyBoYXZlIHRvIGJlIG9mIHR5cGUgc3RyaW5nXCJcbiAgICAgICk7XG4gICAgICBpZiAoa1R5cGVzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgdHlwZXMucHVzaCh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIH0gZWxzZSBpZiAoY2xhc3NSZWdFeHAuZXhlYyh2YWx1ZSkgPT09IG51bGwpIHtcbiAgICAgICAgYXNzZXJ0NChcbiAgICAgICAgICB2YWx1ZSAhPT0gXCJvYmplY3RcIixcbiAgICAgICAgICAnVGhlIHZhbHVlIFwib2JqZWN0XCIgc2hvdWxkIGJlIHdyaXR0ZW4gYXMgXCJPYmplY3RcIidcbiAgICAgICAgKTtcbiAgICAgICAgb3RoZXIucHVzaCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbnN0YW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcG9zID0gdHlwZXMuaW5kZXhPZihcIm9iamVjdFwiKTtcbiAgICAgIGlmIChwb3MgIT09IC0xKSB7XG4gICAgICAgIHR5cGVzLnNsaWNlKHBvcywgMSk7XG4gICAgICAgIGluc3RhbmNlcy5wdXNoKFwiT2JqZWN0XCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZSArPSBgJHt0eXBlcy5sZW5ndGggPiAxID8gXCJvbmUgb2YgdHlwZVwiIDogXCJvZiB0eXBlXCJ9ICR7Zm9ybWF0TGlzdChcbiAgICAgICAgdHlwZXMsXG4gICAgICAgIFwib3JcIlxuICAgICAgKX1gO1xuICAgICAgaWYgKGluc3RhbmNlcy5sZW5ndGggPiAwIHx8IG90aGVyLmxlbmd0aCA+IDApXG4gICAgICAgIG1lc3NhZ2UgKz0gXCIgb3IgXCI7XG4gICAgfVxuICAgIGlmIChpbnN0YW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgbWVzc2FnZSArPSBgYW4gaW5zdGFuY2Ugb2YgJHtmb3JtYXRMaXN0KGluc3RhbmNlcywgXCJvclwiKX1gO1xuICAgICAgaWYgKG90aGVyLmxlbmd0aCA+IDApXG4gICAgICAgIG1lc3NhZ2UgKz0gXCIgb3IgXCI7XG4gICAgfVxuICAgIGlmIChvdGhlci5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAob3RoZXIubGVuZ3RoID4gMSkge1xuICAgICAgICBtZXNzYWdlICs9IGBvbmUgb2YgJHtmb3JtYXRMaXN0KG90aGVyLCBcIm9yXCIpfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAob3RoZXJbMF0udG9Mb3dlckNhc2UoKSAhPT0gb3RoZXJbMF0pXG4gICAgICAgICAgbWVzc2FnZSArPSBcImFuIFwiO1xuICAgICAgICBtZXNzYWdlICs9IGAke290aGVyWzBdfWA7XG4gICAgICB9XG4gICAgfVxuICAgIG1lc3NhZ2UgKz0gYC4gUmVjZWl2ZWQgJHtkZXRlcm1pbmVTcGVjaWZpY1R5cGUoYWN0dWFsKX1gO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuICBUeXBlRXJyb3Jcbik7XG5jb2Rlcy5FUlJfSU5WQUxJRF9NT0RVTEVfU1BFQ0lGSUVSID0gY3JlYXRlRXJyb3IoXG4gIFwiRVJSX0lOVkFMSURfTU9EVUxFX1NQRUNJRklFUlwiLFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2Jhc2VdXG4gICAqL1xuICAocmVxdWVzdCwgcmVhc29uLCBiYXNlID0gdm9pZCAwKSA9PiB7XG4gICAgcmV0dXJuIGBJbnZhbGlkIG1vZHVsZSBcIiR7cmVxdWVzdH1cIiAke3JlYXNvbn0ke2Jhc2UgPyBgIGltcG9ydGVkIGZyb20gJHtiYXNlfWAgOiBcIlwifWA7XG4gIH0sXG4gIFR5cGVFcnJvclxuKTtcbmNvZGVzLkVSUl9JTlZBTElEX1BBQ0tBR0VfQ09ORklHID0gY3JlYXRlRXJyb3IoXG4gIFwiRVJSX0lOVkFMSURfUEFDS0FHRV9DT05GSUdcIixcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYmFzZV1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKi9cbiAgKHBhdGg5LCBiYXNlLCBtZXNzYWdlKSA9PiB7XG4gICAgcmV0dXJuIGBJbnZhbGlkIHBhY2thZ2UgY29uZmlnICR7cGF0aDl9JHtiYXNlID8gYCB3aGlsZSBpbXBvcnRpbmcgJHtiYXNlfWAgOiBcIlwifSR7bWVzc2FnZSA/IGAuICR7bWVzc2FnZX1gIDogXCJcIn1gO1xuICB9LFxuICBFcnJvclxuKTtcbmNvZGVzLkVSUl9JTlZBTElEX1BBQ0tBR0VfVEFSR0VUID0gY3JlYXRlRXJyb3IoXG4gIFwiRVJSX0lOVkFMSURfUEFDS0FHRV9UQVJHRVRcIixcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dQYXRoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHt1bmtub3dufSB0YXJnZXRcbiAgICogQHBhcmFtIHtib29sZWFufSBbaXNJbXBvcnQ9ZmFsc2VdXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbYmFzZV1cbiAgICovXG4gIChwa2dQYXRoLCBrZXksIHRhcmdldCwgaXNJbXBvcnQgPSBmYWxzZSwgYmFzZSA9IHZvaWQgMCkgPT4ge1xuICAgIGNvbnN0IHJlbEVycm9yID0gdHlwZW9mIHRhcmdldCA9PT0gXCJzdHJpbmdcIiAmJiAhaXNJbXBvcnQgJiYgdGFyZ2V0Lmxlbmd0aCA+IDAgJiYgIXRhcmdldC5zdGFydHNXaXRoKFwiLi9cIik7XG4gICAgaWYgKGtleSA9PT0gXCIuXCIpIHtcbiAgICAgIGFzc2VydDQoaXNJbXBvcnQgPT09IGZhbHNlKTtcbiAgICAgIHJldHVybiBgSW52YWxpZCBcImV4cG9ydHNcIiBtYWluIHRhcmdldCAke0pTT04uc3RyaW5naWZ5KHRhcmdldCl9IGRlZmluZWQgaW4gdGhlIHBhY2thZ2UgY29uZmlnICR7cGtnUGF0aH1wYWNrYWdlLmpzb24ke2Jhc2UgPyBgIGltcG9ydGVkIGZyb20gJHtiYXNlfWAgOiBcIlwifSR7cmVsRXJyb3IgPyAnOyB0YXJnZXRzIG11c3Qgc3RhcnQgd2l0aCBcIi4vXCInIDogXCJcIn1gO1xuICAgIH1cbiAgICByZXR1cm4gYEludmFsaWQgXCIke2lzSW1wb3J0ID8gXCJpbXBvcnRzXCIgOiBcImV4cG9ydHNcIn1cIiB0YXJnZXQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgIHRhcmdldFxuICAgICl9IGRlZmluZWQgZm9yICcke2tleX0nIGluIHRoZSBwYWNrYWdlIGNvbmZpZyAke3BrZ1BhdGh9cGFja2FnZS5qc29uJHtiYXNlID8gYCBpbXBvcnRlZCBmcm9tICR7YmFzZX1gIDogXCJcIn0ke3JlbEVycm9yID8gJzsgdGFyZ2V0cyBtdXN0IHN0YXJ0IHdpdGggXCIuL1wiJyA6IFwiXCJ9YDtcbiAgfSxcbiAgRXJyb3Jcbik7XG5jb2Rlcy5FUlJfTU9EVUxFX05PVF9GT1VORCA9IGNyZWF0ZUVycm9yKFxuICBcIkVSUl9NT0RVTEVfTk9UX0ZPVU5EXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3R5cGVdXG4gICAqL1xuICAocGF0aDksIGJhc2UsIHR5cGUgPSBcInBhY2thZ2VcIikgPT4ge1xuICAgIHJldHVybiBgQ2Fubm90IGZpbmQgJHt0eXBlfSAnJHtwYXRoOX0nIGltcG9ydGVkIGZyb20gJHtiYXNlfWA7XG4gIH0sXG4gIEVycm9yXG4pO1xuY29kZXMuRVJSX05FVFdPUktfSU1QT1JUX0RJU0FMTE9XRUQgPSBjcmVhdGVFcnJvcihcbiAgXCJFUlJfTkVUV09SS19JTVBPUlRfRElTQUxMT1dFRFwiLFxuICBcImltcG9ydCBvZiAnJXMnIGJ5ICVzIGlzIG5vdCBzdXBwb3J0ZWQ6ICVzXCIsXG4gIEVycm9yXG4pO1xuY29kZXMuRVJSX1BBQ0tBR0VfSU1QT1JUX05PVF9ERUZJTkVEID0gY3JlYXRlRXJyb3IoXG4gIFwiRVJSX1BBQ0tBR0VfSU1QT1JUX05PVF9ERUZJTkVEXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3BlY2lmaWVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYWNrYWdlUGF0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZVxuICAgKi9cbiAgKHNwZWNpZmllciwgcGFja2FnZVBhdGgsIGJhc2UpID0+IHtcbiAgICByZXR1cm4gYFBhY2thZ2UgaW1wb3J0IHNwZWNpZmllciBcIiR7c3BlY2lmaWVyfVwiIGlzIG5vdCBkZWZpbmVkJHtwYWNrYWdlUGF0aCA/IGAgaW4gcGFja2FnZSAke3BhY2thZ2VQYXRofXBhY2thZ2UuanNvbmAgOiBcIlwifSBpbXBvcnRlZCBmcm9tICR7YmFzZX1gO1xuICB9LFxuICBUeXBlRXJyb3Jcbik7XG5jb2Rlcy5FUlJfUEFDS0FHRV9QQVRIX05PVF9FWFBPUlRFRCA9IGNyZWF0ZUVycm9yKFxuICBcIkVSUl9QQUNLQUdFX1BBVEhfTk9UX0VYUE9SVEVEXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGtnUGF0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3VicGF0aFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2Jhc2VdXG4gICAqL1xuICAocGtnUGF0aCwgc3VicGF0aCwgYmFzZSA9IHZvaWQgMCkgPT4ge1xuICAgIGlmIChzdWJwYXRoID09PSBcIi5cIilcbiAgICAgIHJldHVybiBgTm8gXCJleHBvcnRzXCIgbWFpbiBkZWZpbmVkIGluICR7cGtnUGF0aH1wYWNrYWdlLmpzb24ke2Jhc2UgPyBgIGltcG9ydGVkIGZyb20gJHtiYXNlfWAgOiBcIlwifWA7XG4gICAgcmV0dXJuIGBQYWNrYWdlIHN1YnBhdGggJyR7c3VicGF0aH0nIGlzIG5vdCBkZWZpbmVkIGJ5IFwiZXhwb3J0c1wiIGluICR7cGtnUGF0aH1wYWNrYWdlLmpzb24ke2Jhc2UgPyBgIGltcG9ydGVkIGZyb20gJHtiYXNlfWAgOiBcIlwifWA7XG4gIH0sXG4gIEVycm9yXG4pO1xuY29kZXMuRVJSX1VOU1VQUE9SVEVEX0RJUl9JTVBPUlQgPSBjcmVhdGVFcnJvcihcbiAgXCJFUlJfVU5TVVBQT1JURURfRElSX0lNUE9SVFwiLFxuICBcIkRpcmVjdG9yeSBpbXBvcnQgJyVzJyBpcyBub3Qgc3VwcG9ydGVkIHJlc29sdmluZyBFUyBtb2R1bGVzIGltcG9ydGVkIGZyb20gJXNcIixcbiAgRXJyb3Jcbik7XG5jb2Rlcy5FUlJfVU5LTk9XTl9GSUxFX0VYVEVOU0lPTiA9IGNyZWF0ZUVycm9yKFxuICBcIkVSUl9VTktOT1dOX0ZJTEVfRVhURU5TSU9OXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gICAqL1xuICAoZXh0LCBwYXRoOSkgPT4ge1xuICAgIHJldHVybiBgVW5rbm93biBmaWxlIGV4dGVuc2lvbiBcIiR7ZXh0fVwiIGZvciAke3BhdGg5fWA7XG4gIH0sXG4gIFR5cGVFcnJvclxuKTtcbmNvZGVzLkVSUl9JTlZBTElEX0FSR19WQUxVRSA9IGNyZWF0ZUVycm9yKFxuICBcIkVSUl9JTlZBTElEX0FSR19WQUxVRVwiLFxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbj0naXMgaW52YWxpZCddXG4gICAqL1xuICAobmFtZSwgdmFsdWUsIHJlYXNvbiA9IFwiaXMgaW52YWxpZFwiKSA9PiB7XG4gICAgbGV0IGluc3BlY3RlZCA9IGluc3BlY3QodmFsdWUpO1xuICAgIGlmIChpbnNwZWN0ZWQubGVuZ3RoID4gMTI4KSB7XG4gICAgICBpbnNwZWN0ZWQgPSBgJHtpbnNwZWN0ZWQuc2xpY2UoMCwgMTI4KX0uLi5gO1xuICAgIH1cbiAgICBjb25zdCB0eXBlID0gbmFtZS5pbmNsdWRlcyhcIi5cIikgPyBcInByb3BlcnR5XCIgOiBcImFyZ3VtZW50XCI7XG4gICAgcmV0dXJuIGBUaGUgJHt0eXBlfSAnJHtuYW1lfScgJHtyZWFzb259LiBSZWNlaXZlZCAke2luc3BlY3RlZH1gO1xuICB9LFxuICBUeXBlRXJyb3JcbiAgLy8gTm90ZTogZXh0cmEgY2xhc3NlcyBoYXZlIGJlZW4gc2hha2VuIG91dC5cbiAgLy8gLCBSYW5nZUVycm9yXG4pO1xuY29kZXMuRVJSX1VOU1VQUE9SVEVEX0VTTV9VUkxfU0NIRU1FID0gY3JlYXRlRXJyb3IoXG4gIFwiRVJSX1VOU1VQUE9SVEVEX0VTTV9VUkxfU0NIRU1FXCIsXG4gIC8qKlxuICAgKiBAcGFyYW0ge1VSTH0gdXJsXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gc3VwcG9ydGVkXG4gICAqL1xuICAodXJsLCBzdXBwb3J0ZWQpID0+IHtcbiAgICBsZXQgbWVzc2FnZSA9IGBPbmx5IFVSTHMgd2l0aCBhIHNjaGVtZSBpbjogJHtmb3JtYXRMaXN0KFxuICAgICAgc3VwcG9ydGVkXG4gICAgKX0gYXJlIHN1cHBvcnRlZCBieSB0aGUgZGVmYXVsdCBFU00gbG9hZGVyYDtcbiAgICBpZiAoaXNXaW5kb3dzICYmIHVybC5wcm90b2NvbC5sZW5ndGggPT09IDIpIHtcbiAgICAgIG1lc3NhZ2UgKz0gXCIuIE9uIFdpbmRvd3MsIGFic29sdXRlIHBhdGhzIG11c3QgYmUgdmFsaWQgZmlsZTovLyBVUkxzXCI7XG4gICAgfVxuICAgIG1lc3NhZ2UgKz0gYC4gUmVjZWl2ZWQgcHJvdG9jb2wgJyR7dXJsLnByb3RvY29sfSdgO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuICBFcnJvclxuKTtcbmZ1bmN0aW9uIGNyZWF0ZUVycm9yKHN5bSwgdmFsdWUsIGRlZikge1xuICBtZXNzYWdlcy5zZXQoc3ltLCB2YWx1ZSk7XG4gIHJldHVybiBtYWtlTm9kZUVycm9yV2l0aENvZGUoZGVmLCBzeW0pO1xufVxuZnVuY3Rpb24gbWFrZU5vZGVFcnJvcldpdGhDb2RlKEJhc2UsIGtleSkge1xuICByZXR1cm4gTm9kZUVycm9yO1xuICBmdW5jdGlvbiBOb2RlRXJyb3IoLi4uYXJncykge1xuICAgIGNvbnN0IGxpbWl0ID0gRXJyb3Iuc3RhY2tUcmFjZUxpbWl0O1xuICAgIGlmIChpc0Vycm9yU3RhY2tUcmFjZUxpbWl0V3JpdGFibGUoKSlcbiAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IDA7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgQmFzZSgpO1xuICAgIGlmIChpc0Vycm9yU3RhY2tUcmFjZUxpbWl0V3JpdGFibGUoKSlcbiAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IGxpbWl0O1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRNZXNzYWdlKGtleSwgYXJncywgZXJyb3IpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGVycm9yLCB7XG4gICAgICAvLyBOb3RlOiBubyBuZWVkIHRvIGltcGxlbWVudCBga0lzTm9kZUVycm9yYCBzeW1ib2wsIHdvdWxkIGJlIGhhcmQsXG4gICAgICAvLyBwcm9iYWJseS5cbiAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgdmFsdWU6IG1lc3NhZ2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgdG9TdHJpbmc6IHtcbiAgICAgICAgLyoqIEB0aGlzIHtFcnJvcn0gKi9cbiAgICAgICAgdmFsdWUoKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3RoaXMubmFtZX0gWyR7a2V5fV06ICR7dGhpcy5tZXNzYWdlfWA7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfSk7XG4gICAgY2FwdHVyZUxhcmdlclN0YWNrVHJhY2UoZXJyb3IpO1xuICAgIGVycm9yLmNvZGUgPSBrZXk7XG4gICAgcmV0dXJuIGVycm9yO1xuICB9XG59XG5mdW5jdGlvbiBpc0Vycm9yU3RhY2tUcmFjZUxpbWl0V3JpdGFibGUoKSB7XG4gIHRyeSB7XG4gICAgaWYgKHY4LnN0YXJ0dXBTbmFwc2hvdC5pc0J1aWxkaW5nU25hcHNob3QoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gIH1cbiAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXJyb3IsIFwic3RhY2tUcmFjZUxpbWl0XCIpO1xuICBpZiAoZGVzYyA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIE9iamVjdC5pc0V4dGVuc2libGUoRXJyb3IpO1xuICB9XG4gIHJldHVybiBvd24uY2FsbChkZXNjLCBcIndyaXRhYmxlXCIpICYmIGRlc2Mud3JpdGFibGUgIT09IHZvaWQgMCA/IGRlc2Mud3JpdGFibGUgOiBkZXNjLnNldCAhPT0gdm9pZCAwO1xufVxuZnVuY3Rpb24gaGlkZVN0YWNrRnJhbWVzKGZuKSB7XG4gIGNvbnN0IGhpZGRlbiA9IG5vZGVJbnRlcm5hbFByZWZpeCArIGZuLm5hbWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmbiwgXCJuYW1lXCIsIHsgdmFsdWU6IGhpZGRlbiB9KTtcbiAgcmV0dXJuIGZuO1xufVxudmFyIGNhcHR1cmVMYXJnZXJTdGFja1RyYWNlID0gaGlkZVN0YWNrRnJhbWVzKFxuICAvKipcbiAgICogQHBhcmFtIHtFcnJvcn0gZXJyb3JcbiAgICogQHJldHVybnMge0Vycm9yfVxuICAgKi9cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogZmluZVxuICBmdW5jdGlvbihlcnJvcikge1xuICAgIGNvbnN0IHN0YWNrVHJhY2VMaW1pdElzV3JpdGFibGUgPSBpc0Vycm9yU3RhY2tUcmFjZUxpbWl0V3JpdGFibGUoKTtcbiAgICBpZiAoc3RhY2tUcmFjZUxpbWl0SXNXcml0YWJsZSkge1xuICAgICAgdXNlclN0YWNrVHJhY2VMaW1pdCA9IEVycm9yLnN0YWNrVHJhY2VMaW1pdDtcbiAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcbiAgICB9XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IpO1xuICAgIGlmIChzdGFja1RyYWNlTGltaXRJc1dyaXRhYmxlKVxuICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gdXNlclN0YWNrVHJhY2VMaW1pdDtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbik7XG5mdW5jdGlvbiBnZXRNZXNzYWdlKGtleSwgYXJncywgc2VsZikge1xuICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZXMuZ2V0KGtleSk7XG4gIGFzc2VydDQobWVzc2FnZSAhPT0gdm9pZCAwLCBcImV4cGVjdGVkIGBtZXNzYWdlYCB0byBiZSBmb3VuZFwiKTtcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhc3NlcnQ0KFxuICAgICAgbWVzc2FnZS5sZW5ndGggPD0gYXJncy5sZW5ndGgsXG4gICAgICAvLyBEZWZhdWx0IG9wdGlvbnMgZG8gbm90IGNvdW50LlxuICAgICAgYENvZGU6ICR7a2V5fTsgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBsZW5ndGggKCR7YXJncy5sZW5ndGh9KSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVxdWlyZWQgb25lcyAoJHttZXNzYWdlLmxlbmd0aH0pLmBcbiAgICApO1xuICAgIHJldHVybiBSZWZsZWN0LmFwcGx5KG1lc3NhZ2UsIHNlbGYsIGFyZ3MpO1xuICB9XG4gIGNvbnN0IHJlZ2V4ID0gLyVbZGZpam9Pc10vZztcbiAgbGV0IGV4cGVjdGVkTGVuZ3RoID0gMDtcbiAgd2hpbGUgKHJlZ2V4LmV4ZWMobWVzc2FnZSkgIT09IG51bGwpXG4gICAgZXhwZWN0ZWRMZW5ndGgrKztcbiAgYXNzZXJ0NChcbiAgICBleHBlY3RlZExlbmd0aCA9PT0gYXJncy5sZW5ndGgsXG4gICAgYENvZGU6ICR7a2V5fTsgVGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBsZW5ndGggKCR7YXJncy5sZW5ndGh9KSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVxdWlyZWQgb25lcyAoJHtleHBlY3RlZExlbmd0aH0pLmBcbiAgKTtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAwKVxuICAgIHJldHVybiBtZXNzYWdlO1xuICBhcmdzLnVuc2hpZnQobWVzc2FnZSk7XG4gIHJldHVybiBSZWZsZWN0LmFwcGx5KGZvcm1hdCwgbnVsbCwgYXJncyk7XG59XG5mdW5jdGlvbiBkZXRlcm1pbmVTcGVjaWZpY1R5cGUodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDApIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiYgdmFsdWUubmFtZSkge1xuICAgIHJldHVybiBgZnVuY3Rpb24gJHt2YWx1ZS5uYW1lfWA7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3RvciAmJiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgICByZXR1cm4gYGFuIGluc3RhbmNlIG9mICR7dmFsdWUuY29uc3RydWN0b3IubmFtZX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7aW5zcGVjdCh2YWx1ZSwgeyBkZXB0aDogLTEgfSl9YDtcbiAgfVxuICBsZXQgaW5zcGVjdGVkID0gaW5zcGVjdCh2YWx1ZSwgeyBjb2xvcnM6IGZhbHNlIH0pO1xuICBpZiAoaW5zcGVjdGVkLmxlbmd0aCA+IDI4KSB7XG4gICAgaW5zcGVjdGVkID0gYCR7aW5zcGVjdGVkLnNsaWNlKDAsIDI1KX0uLi5gO1xuICB9XG4gIHJldHVybiBgdHlwZSAke3R5cGVvZiB2YWx1ZX0gKCR7aW5zcGVjdGVkfSlgO1xufVxuXG4vLyBub2RlX21vZHVsZXMvaW1wb3J0LW1ldGEtcmVzb2x2ZS9saWIvcGFja2FnZS1qc29uLXJlYWRlci5qc1xuaW1wb3J0IGZzMyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoMyBmcm9tIFwicGF0aFwiO1xudmFyIHJlYWRlciA9IHsgcmVhZCB9O1xudmFyIHBhY2thZ2VfanNvbl9yZWFkZXJfZGVmYXVsdCA9IHJlYWRlcjtcbmZ1bmN0aW9uIHJlYWQoanNvblBhdGgpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdHJpbmcgPSBmczMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aDMudG9OYW1lc3BhY2VkUGF0aChwYXRoMy5qb2luKHBhdGgzLmRpcm5hbWUoanNvblBhdGgpLCBcInBhY2thZ2UuanNvblwiKSksXG4gICAgICBcInV0ZjhcIlxuICAgICk7XG4gICAgcmV0dXJuIHsgc3RyaW5nIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgZXhjZXB0aW9uID0gKFxuICAgICAgLyoqIEB0eXBlIHtFcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgIGVycm9yXG4gICAgKTtcbiAgICBpZiAoZXhjZXB0aW9uLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgIHJldHVybiB7IHN0cmluZzogdm9pZCAwIH07XG4gICAgfVxuICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgfVxufVxuXG4vLyBub2RlX21vZHVsZXMvaW1wb3J0LW1ldGEtcmVzb2x2ZS9saWIvcGFja2FnZS1jb25maWcuanNcbnZhciB7IEVSUl9JTlZBTElEX1BBQ0tBR0VfQ09ORklHIH0gPSBjb2RlcztcbnZhciBwYWNrYWdlSnNvbkNhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbmZ1bmN0aW9uIGdldFBhY2thZ2VDb25maWcocGF0aDksIHNwZWNpZmllciwgYmFzZSkge1xuICBjb25zdCBleGlzdGluZyA9IHBhY2thZ2VKc29uQ2FjaGUuZ2V0KHBhdGg5KTtcbiAgaWYgKGV4aXN0aW5nICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZXhpc3Rpbmc7XG4gIH1cbiAgY29uc3Qgc291cmNlID0gcGFja2FnZV9qc29uX3JlYWRlcl9kZWZhdWx0LnJlYWQocGF0aDkpLnN0cmluZztcbiAgaWYgKHNvdXJjZSA9PT0gdm9pZCAwKSB7XG4gICAgY29uc3QgcGFja2FnZUNvbmZpZzIgPSB7XG4gICAgICBwanNvblBhdGg6IHBhdGg5LFxuICAgICAgZXhpc3RzOiBmYWxzZSxcbiAgICAgIG1haW46IHZvaWQgMCxcbiAgICAgIG5hbWU6IHZvaWQgMCxcbiAgICAgIHR5cGU6IFwibm9uZVwiLFxuICAgICAgZXhwb3J0czogdm9pZCAwLFxuICAgICAgaW1wb3J0czogdm9pZCAwXG4gICAgfTtcbiAgICBwYWNrYWdlSnNvbkNhY2hlLnNldChwYXRoOSwgcGFja2FnZUNvbmZpZzIpO1xuICAgIHJldHVybiBwYWNrYWdlQ29uZmlnMjtcbiAgfVxuICBsZXQgcGFja2FnZUpzb247XG4gIHRyeSB7XG4gICAgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKHNvdXJjZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgZXhjZXB0aW9uID0gKFxuICAgICAgLyoqIEB0eXBlIHtFcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgIGVycm9yXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgRVJSX0lOVkFMSURfUEFDS0FHRV9DT05GSUcoXG4gICAgICBwYXRoOSxcbiAgICAgIChiYXNlID8gYFwiJHtzcGVjaWZpZXJ9XCIgZnJvbSBgIDogXCJcIikgKyBmaWxlVVJMVG9QYXRoKGJhc2UgfHwgc3BlY2lmaWVyKSxcbiAgICAgIGV4Y2VwdGlvbi5tZXNzYWdlXG4gICAgKTtcbiAgfVxuICBjb25zdCB7IGV4cG9ydHMsIGltcG9ydHMsIG1haW4sIG5hbWUsIHR5cGUgfSA9IHBhY2thZ2VKc29uO1xuICBjb25zdCBwYWNrYWdlQ29uZmlnID0ge1xuICAgIHBqc29uUGF0aDogcGF0aDksXG4gICAgZXhpc3RzOiB0cnVlLFxuICAgIG1haW46IHR5cGVvZiBtYWluID09PSBcInN0cmluZ1wiID8gbWFpbiA6IHZvaWQgMCxcbiAgICBuYW1lOiB0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIiA/IG5hbWUgOiB2b2lkIDAsXG4gICAgdHlwZTogdHlwZSA9PT0gXCJtb2R1bGVcIiB8fCB0eXBlID09PSBcImNvbW1vbmpzXCIgPyB0eXBlIDogXCJub25lXCIsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBBc3N1bWUgYFJlY29yZDxzdHJpbmcsIHVua25vd24+YC5cbiAgICBleHBvcnRzLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQXNzdW1lIGBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPmAuXG4gICAgaW1wb3J0czogaW1wb3J0cyAmJiB0eXBlb2YgaW1wb3J0cyA9PT0gXCJvYmplY3RcIiA/IGltcG9ydHMgOiB2b2lkIDBcbiAgfTtcbiAgcGFja2FnZUpzb25DYWNoZS5zZXQocGF0aDksIHBhY2thZ2VDb25maWcpO1xuICByZXR1cm4gcGFja2FnZUNvbmZpZztcbn1cbmZ1bmN0aW9uIGdldFBhY2thZ2VTY29wZUNvbmZpZyhyZXNvbHZlZCkge1xuICBsZXQgcGFja2FnZUpzb25VcmwgPSBuZXcgVVJMKFwicGFja2FnZS5qc29uXCIsIHJlc29sdmVkKTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGgyID0gcGFja2FnZUpzb25VcmwucGF0aG5hbWU7XG4gICAgaWYgKHBhY2thZ2VKc29uUGF0aDIuZW5kc1dpdGgoXCJub2RlX21vZHVsZXMvcGFja2FnZS5qc29uXCIpKVxuICAgICAgYnJlYWs7XG4gICAgY29uc3QgcGFja2FnZUNvbmZpZzIgPSBnZXRQYWNrYWdlQ29uZmlnKFxuICAgICAgZmlsZVVSTFRvUGF0aChwYWNrYWdlSnNvblVybCksXG4gICAgICByZXNvbHZlZFxuICAgICk7XG4gICAgaWYgKHBhY2thZ2VDb25maWcyLmV4aXN0cylcbiAgICAgIHJldHVybiBwYWNrYWdlQ29uZmlnMjtcbiAgICBjb25zdCBsYXN0UGFja2FnZUpzb25VcmwgPSBwYWNrYWdlSnNvblVybDtcbiAgICBwYWNrYWdlSnNvblVybCA9IG5ldyBVUkwoXCIuLi9wYWNrYWdlLmpzb25cIiwgcGFja2FnZUpzb25VcmwpO1xuICAgIGlmIChwYWNrYWdlSnNvblVybC5wYXRobmFtZSA9PT0gbGFzdFBhY2thZ2VKc29uVXJsLnBhdGhuYW1lKVxuICAgICAgYnJlYWs7XG4gIH1cbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gZmlsZVVSTFRvUGF0aChwYWNrYWdlSnNvblVybCk7XG4gIGNvbnN0IHBhY2thZ2VDb25maWcgPSB7XG4gICAgcGpzb25QYXRoOiBwYWNrYWdlSnNvblBhdGgsXG4gICAgZXhpc3RzOiBmYWxzZSxcbiAgICBtYWluOiB2b2lkIDAsXG4gICAgbmFtZTogdm9pZCAwLFxuICAgIHR5cGU6IFwibm9uZVwiLFxuICAgIGV4cG9ydHM6IHZvaWQgMCxcbiAgICBpbXBvcnRzOiB2b2lkIDBcbiAgfTtcbiAgcGFja2FnZUpzb25DYWNoZS5zZXQocGFja2FnZUpzb25QYXRoLCBwYWNrYWdlQ29uZmlnKTtcbiAgcmV0dXJuIHBhY2thZ2VDb25maWc7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9pbXBvcnQtbWV0YS1yZXNvbHZlL2xpYi9yZXNvbHZlLWdldC1wYWNrYWdlLXR5cGUuanNcbmZ1bmN0aW9uIGdldFBhY2thZ2VUeXBlKHVybCkge1xuICBjb25zdCBwYWNrYWdlQ29uZmlnID0gZ2V0UGFja2FnZVNjb3BlQ29uZmlnKHVybCk7XG4gIHJldHVybiBwYWNrYWdlQ29uZmlnLnR5cGU7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9pbXBvcnQtbWV0YS1yZXNvbHZlL2xpYi9nZXQtZm9ybWF0LmpzXG52YXIgeyBFUlJfVU5LTk9XTl9GSUxFX0VYVEVOU0lPTiB9ID0gY29kZXM7XG52YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBleHRlbnNpb25Gb3JtYXRNYXAgPSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3I6IGh1c2guXG4gIF9fcHJvdG9fXzogbnVsbCxcbiAgXCIuY2pzXCI6IFwiY29tbW9uanNcIixcbiAgXCIuanNcIjogXCJtb2R1bGVcIixcbiAgXCIuanNvblwiOiBcImpzb25cIixcbiAgXCIubWpzXCI6IFwibW9kdWxlXCJcbn07XG5mdW5jdGlvbiBtaW1lVG9Gb3JtYXQobWltZSkge1xuICBpZiAobWltZSAmJiAvXFxzKih0ZXh0fGFwcGxpY2F0aW9uKVxcL2phdmFzY3JpcHRcXHMqKDtcXHMqY2hhcnNldD11dGYtPzhcXHMqKT8vaS50ZXN0KG1pbWUpKVxuICAgIHJldHVybiBcIm1vZHVsZVwiO1xuICBpZiAobWltZSA9PT0gXCJhcHBsaWNhdGlvbi9qc29uXCIpXG4gICAgcmV0dXJuIFwianNvblwiO1xuICByZXR1cm4gbnVsbDtcbn1cbnZhciBwcm90b2NvbEhhbmRsZXJzID0ge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yOiBodXNoLlxuICBfX3Byb3RvX186IG51bGwsXG4gIFwiZGF0YTpcIjogZ2V0RGF0YVByb3RvY29sTW9kdWxlRm9ybWF0LFxuICBcImZpbGU6XCI6IGdldEZpbGVQcm90b2NvbE1vZHVsZUZvcm1hdCxcbiAgXCJodHRwOlwiOiBnZXRIdHRwUHJvdG9jb2xNb2R1bGVGb3JtYXQsXG4gIFwiaHR0cHM6XCI6IGdldEh0dHBQcm90b2NvbE1vZHVsZUZvcm1hdCxcbiAgXCJub2RlOlwiKCkge1xuICAgIHJldHVybiBcImJ1aWx0aW5cIjtcbiAgfVxufTtcbmZ1bmN0aW9uIGdldERhdGFQcm90b2NvbE1vZHVsZUZvcm1hdChwYXJzZWQpIHtcbiAgY29uc3QgeyAxOiBtaW1lIH0gPSAvXihbXi9dK1xcL1teOyxdKylbXixdKj8oO2Jhc2U2NCk/LC8uZXhlYyhcbiAgICBwYXJzZWQucGF0aG5hbWVcbiAgKSB8fCBbbnVsbCwgbnVsbCwgbnVsbF07XG4gIHJldHVybiBtaW1lVG9Gb3JtYXQobWltZSk7XG59XG5mdW5jdGlvbiBleHRuYW1lKHVybCkge1xuICBjb25zdCBwYXRobmFtZSA9IHVybC5wYXRobmFtZTtcbiAgbGV0IGluZGV4ID0gcGF0aG5hbWUubGVuZ3RoO1xuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvZGUgPSBwYXRobmFtZS5jb2RlUG9pbnRBdChpbmRleCk7XG4gICAgaWYgKGNvZGUgPT09IDQ3KSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgaWYgKGNvZGUgPT09IDQ2KSB7XG4gICAgICByZXR1cm4gcGF0aG5hbWUuY29kZVBvaW50QXQoaW5kZXggLSAxKSA9PT0gNDcgPyBcIlwiIDogcGF0aG5hbWUuc2xpY2UoaW5kZXgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gXCJcIjtcbn1cbmZ1bmN0aW9uIGdldEZpbGVQcm90b2NvbE1vZHVsZUZvcm1hdCh1cmwsIF9jb250ZXh0LCBpZ25vcmVFcnJvcnMpIHtcbiAgY29uc3QgZXh0ID0gZXh0bmFtZSh1cmwpO1xuICBpZiAoZXh0ID09PSBcIi5qc1wiKSB7XG4gICAgcmV0dXJuIGdldFBhY2thZ2VUeXBlKHVybCkgPT09IFwibW9kdWxlXCIgPyBcIm1vZHVsZVwiIDogXCJjb21tb25qc1wiO1xuICB9XG4gIGNvbnN0IGZvcm1hdDMgPSBleHRlbnNpb25Gb3JtYXRNYXBbZXh0XTtcbiAgaWYgKGZvcm1hdDMpXG4gICAgcmV0dXJuIGZvcm1hdDM7XG4gIGlmIChpZ25vcmVFcnJvcnMpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGNvbnN0IGZpbGVwYXRoID0gZmlsZVVSTFRvUGF0aDIodXJsKTtcbiAgdGhyb3cgbmV3IEVSUl9VTktOT1dOX0ZJTEVfRVhURU5TSU9OKGV4dCwgZmlsZXBhdGgpO1xufVxuZnVuY3Rpb24gZ2V0SHR0cFByb3RvY29sTW9kdWxlRm9ybWF0KCkge1xufVxuZnVuY3Rpb24gZGVmYXVsdEdldEZvcm1hdFdpdGhvdXRFcnJvcnModXJsLCBjb250ZXh0KSB7XG4gIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChwcm90b2NvbEhhbmRsZXJzLCB1cmwucHJvdG9jb2wpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIHByb3RvY29sSGFuZGxlcnNbdXJsLnByb3RvY29sXSh1cmwsIGNvbnRleHQsIHRydWUpIHx8IG51bGw7XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9pbXBvcnQtbWV0YS1yZXNvbHZlL2xpYi91dGlscy5qc1xudmFyIHsgRVJSX0lOVkFMSURfQVJHX1ZBTFVFIH0gPSBjb2RlcztcbnZhciBERUZBVUxUX0NPTkRJVElPTlMgPSBPYmplY3QuZnJlZXplKFtcIm5vZGVcIiwgXCJpbXBvcnRcIl0pO1xudmFyIERFRkFVTFRfQ09ORElUSU9OU19TRVQgPSBuZXcgU2V0KERFRkFVTFRfQ09ORElUSU9OUyk7XG5mdW5jdGlvbiBnZXREZWZhdWx0Q29uZGl0aW9ucygpIHtcbiAgcmV0dXJuIERFRkFVTFRfQ09ORElUSU9OUztcbn1cbmZ1bmN0aW9uIGdldERlZmF1bHRDb25kaXRpb25zU2V0KCkge1xuICByZXR1cm4gREVGQVVMVF9DT05ESVRJT05TX1NFVDtcbn1cbmZ1bmN0aW9uIGdldENvbmRpdGlvbnNTZXQoY29uZGl0aW9ucykge1xuICBpZiAoY29uZGl0aW9ucyAhPT0gdm9pZCAwICYmIGNvbmRpdGlvbnMgIT09IGdldERlZmF1bHRDb25kaXRpb25zKCkpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uZGl0aW9ucykpIHtcbiAgICAgIHRocm93IG5ldyBFUlJfSU5WQUxJRF9BUkdfVkFMVUUoXG4gICAgICAgIFwiY29uZGl0aW9uc1wiLFxuICAgICAgICBjb25kaXRpb25zLFxuICAgICAgICBcImV4cGVjdGVkIGFuIGFycmF5XCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgU2V0KGNvbmRpdGlvbnMpO1xuICB9XG4gIHJldHVybiBnZXREZWZhdWx0Q29uZGl0aW9uc1NldCgpO1xufVxuXG4vLyBub2RlX21vZHVsZXMvaW1wb3J0LW1ldGEtcmVzb2x2ZS9saWIvcmVzb2x2ZS5qc1xudmFyIFJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UgPSBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXTtcbnZhciBleHBlcmltZW50YWxOZXR3b3JrSW1wb3J0cyA9IGZhbHNlO1xudmFyIHtcbiAgRVJSX05FVFdPUktfSU1QT1JUX0RJU0FMTE9XRUQsXG4gIEVSUl9JTlZBTElEX01PRFVMRV9TUEVDSUZJRVIsXG4gIEVSUl9JTlZBTElEX1BBQ0tBR0VfQ09ORklHOiBFUlJfSU5WQUxJRF9QQUNLQUdFX0NPTkZJRzIsXG4gIEVSUl9JTlZBTElEX1BBQ0tBR0VfVEFSR0VULFxuICBFUlJfTU9EVUxFX05PVF9GT1VORCxcbiAgRVJSX1BBQ0tBR0VfSU1QT1JUX05PVF9ERUZJTkVELFxuICBFUlJfUEFDS0FHRV9QQVRIX05PVF9FWFBPUlRFRCxcbiAgRVJSX1VOU1VQUE9SVEVEX0RJUl9JTVBPUlQsXG4gIEVSUl9VTlNVUFBPUlRFRF9FU01fVVJMX1NDSEVNRVxufSA9IGNvZGVzO1xudmFyIG93bjIgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBpbnZhbGlkU2VnbWVudFJlZ0V4ID0gLyhefFxcXFx8XFwvKSgoXFwufCUyZSkoXFwufCUyZSk/fChufCU2ZXwlNGUpKG98JTZmfCU0ZikoZHwlNjR8JTQ0KShlfCU2NXwlNDUpKF98JTVmKShtfCU2ZHwlNGQpKG98JTZmfCU0ZikoZHwlNjR8JTQ0KSh1fCU3NXwlNTUpKGx8JTZjfCU0YykoZXwlNjV8JTQ1KShzfCU3M3wlNTMpKT8oXFxcXHxcXC98JCkvaTtcbnZhciBkZXByZWNhdGVkSW52YWxpZFNlZ21lbnRSZWdFeCA9IC8oXnxcXFxcfFxcLykoKFxcLnwlMmUpKFxcLnwlMmUpP3wobnwlNmV8JTRlKShvfCU2ZnwlNGYpKGR8JTY0fCU0NCkoZXwlNjV8JTQ1KShffCU1ZikobXwlNmR8JTRkKShvfCU2ZnwlNGYpKGR8JTY0fCU0NCkodXwlNzV8JTU1KShsfCU2Y3wlNGMpKGV8JTY1fCU0NSkoc3wlNzN8JTUzKSkoXFxcXHxcXC98JCkvaTtcbnZhciBpbnZhbGlkUGFja2FnZU5hbWVSZWdFeCA9IC9eXFwufCV8XFxcXC87XG52YXIgcGF0dGVyblJlZ0V4ID0gL1xcKi9nO1xudmFyIGVuY29kZWRTZXBSZWdFeCA9IC8lMmZ8JTVjL2k7XG52YXIgZW1pdHRlZFBhY2thZ2VXYXJuaW5ncyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG52YXIgZG91YmxlU2xhc2hSZWdFeCA9IC9bL1xcXFxdezJ9LztcbmZ1bmN0aW9uIGVtaXRJbnZhbGlkU2VnbWVudERlcHJlY2F0aW9uKHRhcmdldCwgcmVxdWVzdCwgbWF0Y2gsIHBhY2thZ2VKc29uVXJsLCBpbnRlcm5hbCwgYmFzZSwgaXNUYXJnZXQpIHtcbiAgY29uc3QgcGpzb25QYXRoID0gZmlsZVVSTFRvUGF0aDMocGFja2FnZUpzb25VcmwpO1xuICBjb25zdCBkb3VibGUgPSBkb3VibGVTbGFzaFJlZ0V4LmV4ZWMoaXNUYXJnZXQgPyB0YXJnZXQgOiByZXF1ZXN0KSAhPT0gbnVsbDtcbiAgcHJvY2VzczQuZW1pdFdhcm5pbmcoXG4gICAgYFVzZSBvZiBkZXByZWNhdGVkICR7ZG91YmxlID8gXCJkb3VibGUgc2xhc2hcIiA6IFwibGVhZGluZyBvciB0cmFpbGluZyBzbGFzaCBtYXRjaGluZ1wifSByZXNvbHZpbmcgXCIke3RhcmdldH1cIiBmb3IgbW9kdWxlIHJlcXVlc3QgXCIke3JlcXVlc3R9XCIgJHtyZXF1ZXN0ID09PSBtYXRjaCA/IFwiXCIgOiBgbWF0Y2hlZCB0byBcIiR7bWF0Y2h9XCIgYH1pbiB0aGUgXCIke2ludGVybmFsID8gXCJpbXBvcnRzXCIgOiBcImV4cG9ydHNcIn1cIiBmaWVsZCBtb2R1bGUgcmVzb2x1dGlvbiBvZiB0aGUgcGFja2FnZSBhdCAke3Bqc29uUGF0aH0ke2Jhc2UgPyBgIGltcG9ydGVkIGZyb20gJHtmaWxlVVJMVG9QYXRoMyhiYXNlKX1gIDogXCJcIn0uYCxcbiAgICBcIkRlcHJlY2F0aW9uV2FybmluZ1wiLFxuICAgIFwiREVQMDE2NlwiXG4gICk7XG59XG5mdW5jdGlvbiBlbWl0TGVnYWN5SW5kZXhEZXByZWNhdGlvbih1cmwsIHBhY2thZ2VKc29uVXJsLCBiYXNlLCBtYWluKSB7XG4gIGNvbnN0IGZvcm1hdDMgPSBkZWZhdWx0R2V0Rm9ybWF0V2l0aG91dEVycm9ycyh1cmwsIHsgcGFyZW50VVJMOiBiYXNlLmhyZWYgfSk7XG4gIGlmIChmb3JtYXQzICE9PSBcIm1vZHVsZVwiKVxuICAgIHJldHVybjtcbiAgY29uc3QgcGF0aDkgPSBmaWxlVVJMVG9QYXRoMyh1cmwuaHJlZik7XG4gIGNvbnN0IHBrZ1BhdGggPSBmaWxlVVJMVG9QYXRoMyhuZXcgVVJMMyhcIi5cIiwgcGFja2FnZUpzb25VcmwpKTtcbiAgY29uc3QgYmFzZVBhdGggPSBmaWxlVVJMVG9QYXRoMyhiYXNlKTtcbiAgaWYgKG1haW4pXG4gICAgcHJvY2VzczQuZW1pdFdhcm5pbmcoXG4gICAgICBgUGFja2FnZSAke3BrZ1BhdGh9IGhhcyBhIFwibWFpblwiIGZpZWxkIHNldCB0byAke0pTT04uc3RyaW5naWZ5KG1haW4pfSwgZXhjbHVkaW5nIHRoZSBmdWxsIGZpbGVuYW1lIGFuZCBleHRlbnNpb24gdG8gdGhlIHJlc29sdmVkIGZpbGUgYXQgXCIke3BhdGg5LnNsaWNlKFxuICAgICAgICBwa2dQYXRoLmxlbmd0aFxuICAgICAgKX1cIiwgaW1wb3J0ZWQgZnJvbSAke2Jhc2VQYXRofS5cbiBBdXRvbWF0aWMgZXh0ZW5zaW9uIHJlc29sdXRpb24gb2YgdGhlIFwibWFpblwiIGZpZWxkIGlzZGVwcmVjYXRlZCBmb3IgRVMgbW9kdWxlcy5gLFxuICAgICAgXCJEZXByZWNhdGlvbldhcm5pbmdcIixcbiAgICAgIFwiREVQMDE1MVwiXG4gICAgKTtcbiAgZWxzZVxuICAgIHByb2Nlc3M0LmVtaXRXYXJuaW5nKFxuICAgICAgYE5vIFwibWFpblwiIG9yIFwiZXhwb3J0c1wiIGZpZWxkIGRlZmluZWQgaW4gdGhlIHBhY2thZ2UuanNvbiBmb3IgJHtwa2dQYXRofSByZXNvbHZpbmcgdGhlIG1haW4gZW50cnkgcG9pbnQgXCIke3BhdGg5LnNsaWNlKFxuICAgICAgICBwa2dQYXRoLmxlbmd0aFxuICAgICAgKX1cIiwgaW1wb3J0ZWQgZnJvbSAke2Jhc2VQYXRofS5cbkRlZmF1bHQgXCJpbmRleFwiIGxvb2t1cHMgZm9yIHRoZSBtYWluIGFyZSBkZXByZWNhdGVkIGZvciBFUyBtb2R1bGVzLmAsXG4gICAgICBcIkRlcHJlY2F0aW9uV2FybmluZ1wiLFxuICAgICAgXCJERVAwMTUxXCJcbiAgICApO1xufVxuZnVuY3Rpb24gdHJ5U3RhdFN5bmMocGF0aDkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc3RhdFN5bmMocGF0aDkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbmV3IFN0YXRzKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGZpbGVFeGlzdHModXJsKSB7XG4gIGNvbnN0IHN0YXRzID0gc3RhdFN5bmModXJsLCB7IHRocm93SWZOb0VudHJ5OiBmYWxzZSB9KTtcbiAgY29uc3QgaXNGaWxlID0gc3RhdHMgPyBzdGF0cy5pc0ZpbGUoKSA6IHZvaWQgMDtcbiAgcmV0dXJuIGlzRmlsZSA9PT0gbnVsbCB8fCBpc0ZpbGUgPT09IHZvaWQgMCA/IGZhbHNlIDogaXNGaWxlO1xufVxuZnVuY3Rpb24gbGVnYWN5TWFpblJlc29sdmUocGFja2FnZUpzb25VcmwsIHBhY2thZ2VDb25maWcsIGJhc2UpIHtcbiAgbGV0IGd1ZXNzO1xuICBpZiAocGFja2FnZUNvbmZpZy5tYWluICE9PSB2b2lkIDApIHtcbiAgICBndWVzcyA9IG5ldyBVUkwzKHBhY2thZ2VDb25maWcubWFpbiwgcGFja2FnZUpzb25VcmwpO1xuICAgIGlmIChmaWxlRXhpc3RzKGd1ZXNzKSlcbiAgICAgIHJldHVybiBndWVzcztcbiAgICBjb25zdCB0cmllczIgPSBbXG4gICAgICBgLi8ke3BhY2thZ2VDb25maWcubWFpbn0uanNgLFxuICAgICAgYC4vJHtwYWNrYWdlQ29uZmlnLm1haW59Lmpzb25gLFxuICAgICAgYC4vJHtwYWNrYWdlQ29uZmlnLm1haW59Lm5vZGVgLFxuICAgICAgYC4vJHtwYWNrYWdlQ29uZmlnLm1haW59L2luZGV4LmpzYCxcbiAgICAgIGAuLyR7cGFja2FnZUNvbmZpZy5tYWlufS9pbmRleC5qc29uYCxcbiAgICAgIGAuLyR7cGFja2FnZUNvbmZpZy5tYWlufS9pbmRleC5ub2RlYFxuICAgIF07XG4gICAgbGV0IGkyID0gLTE7XG4gICAgd2hpbGUgKCsraTIgPCB0cmllczIubGVuZ3RoKSB7XG4gICAgICBndWVzcyA9IG5ldyBVUkwzKHRyaWVzMltpMl0sIHBhY2thZ2VKc29uVXJsKTtcbiAgICAgIGlmIChmaWxlRXhpc3RzKGd1ZXNzKSlcbiAgICAgICAgYnJlYWs7XG4gICAgICBndWVzcyA9IHZvaWQgMDtcbiAgICB9XG4gICAgaWYgKGd1ZXNzKSB7XG4gICAgICBlbWl0TGVnYWN5SW5kZXhEZXByZWNhdGlvbihcbiAgICAgICAgZ3Vlc3MsXG4gICAgICAgIHBhY2thZ2VKc29uVXJsLFxuICAgICAgICBiYXNlLFxuICAgICAgICBwYWNrYWdlQ29uZmlnLm1haW5cbiAgICAgICk7XG4gICAgICByZXR1cm4gZ3Vlc3M7XG4gICAgfVxuICB9XG4gIGNvbnN0IHRyaWVzID0gW1wiLi9pbmRleC5qc1wiLCBcIi4vaW5kZXguanNvblwiLCBcIi4vaW5kZXgubm9kZVwiXTtcbiAgbGV0IGkgPSAtMTtcbiAgd2hpbGUgKCsraSA8IHRyaWVzLmxlbmd0aCkge1xuICAgIGd1ZXNzID0gbmV3IFVSTDModHJpZXNbaV0sIHBhY2thZ2VKc29uVXJsKTtcbiAgICBpZiAoZmlsZUV4aXN0cyhndWVzcykpXG4gICAgICBicmVhaztcbiAgICBndWVzcyA9IHZvaWQgMDtcbiAgfVxuICBpZiAoZ3Vlc3MpIHtcbiAgICBlbWl0TGVnYWN5SW5kZXhEZXByZWNhdGlvbihndWVzcywgcGFja2FnZUpzb25VcmwsIGJhc2UsIHBhY2thZ2VDb25maWcubWFpbik7XG4gICAgcmV0dXJuIGd1ZXNzO1xuICB9XG4gIHRocm93IG5ldyBFUlJfTU9EVUxFX05PVF9GT1VORChcbiAgICBmaWxlVVJMVG9QYXRoMyhuZXcgVVJMMyhcIi5cIiwgcGFja2FnZUpzb25VcmwpKSxcbiAgICBmaWxlVVJMVG9QYXRoMyhiYXNlKVxuICApO1xufVxuZnVuY3Rpb24gZmluYWxpemVSZXNvbHV0aW9uKHJlc29sdmVkLCBiYXNlLCBwcmVzZXJ2ZVN5bWxpbmtzKSB7XG4gIGlmIChlbmNvZGVkU2VwUmVnRXguZXhlYyhyZXNvbHZlZC5wYXRobmFtZSkgIT09IG51bGwpXG4gICAgdGhyb3cgbmV3IEVSUl9JTlZBTElEX01PRFVMRV9TUEVDSUZJRVIoXG4gICAgICByZXNvbHZlZC5wYXRobmFtZSxcbiAgICAgICdtdXN0IG5vdCBpbmNsdWRlIGVuY29kZWQgXCIvXCIgb3IgXCJcXFxcXCIgY2hhcmFjdGVycycsXG4gICAgICBmaWxlVVJMVG9QYXRoMyhiYXNlKVxuICAgICk7XG4gIGNvbnN0IGZpbGVQYXRoID0gZmlsZVVSTFRvUGF0aDMocmVzb2x2ZWQpO1xuICBjb25zdCBzdGF0cyA9IHRyeVN0YXRTeW5jKFxuICAgIGZpbGVQYXRoLmVuZHNXaXRoKFwiL1wiKSA/IGZpbGVQYXRoLnNsaWNlKC0xKSA6IGZpbGVQYXRoXG4gICk7XG4gIGlmIChzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRVJSX1VOU1VQUE9SVEVEX0RJUl9JTVBPUlQoZmlsZVBhdGgsIGZpbGVVUkxUb1BhdGgzKGJhc2UpKTtcbiAgICBlcnJvci51cmwgPSBTdHJpbmcocmVzb2x2ZWQpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIGlmICghc3RhdHMuaXNGaWxlKCkpIHtcbiAgICB0aHJvdyBuZXcgRVJSX01PRFVMRV9OT1RfRk9VTkQoXG4gICAgICBmaWxlUGF0aCB8fCByZXNvbHZlZC5wYXRobmFtZSxcbiAgICAgIGJhc2UgJiYgZmlsZVVSTFRvUGF0aDMoYmFzZSksXG4gICAgICBcIm1vZHVsZVwiXG4gICAgKTtcbiAgfVxuICBpZiAoIXByZXNlcnZlU3ltbGlua3MpIHtcbiAgICBjb25zdCByZWFsID0gcmVhbHBhdGhTeW5jKGZpbGVQYXRoKTtcbiAgICBjb25zdCB7IHNlYXJjaCwgaGFzaCB9ID0gcmVzb2x2ZWQ7XG4gICAgcmVzb2x2ZWQgPSBwYXRoVG9GaWxlVVJMKHJlYWwgKyAoZmlsZVBhdGguZW5kc1dpdGgocGF0aDQuc2VwKSA/IFwiL1wiIDogXCJcIikpO1xuICAgIHJlc29sdmVkLnNlYXJjaCA9IHNlYXJjaDtcbiAgICByZXNvbHZlZC5oYXNoID0gaGFzaDtcbiAgfVxuICByZXR1cm4gcmVzb2x2ZWQ7XG59XG5mdW5jdGlvbiBpbXBvcnROb3REZWZpbmVkKHNwZWNpZmllciwgcGFja2FnZUpzb25VcmwsIGJhc2UpIHtcbiAgcmV0dXJuIG5ldyBFUlJfUEFDS0FHRV9JTVBPUlRfTk9UX0RFRklORUQoXG4gICAgc3BlY2lmaWVyLFxuICAgIHBhY2thZ2VKc29uVXJsICYmIGZpbGVVUkxUb1BhdGgzKG5ldyBVUkwzKFwiLlwiLCBwYWNrYWdlSnNvblVybCkpLFxuICAgIGZpbGVVUkxUb1BhdGgzKGJhc2UpXG4gICk7XG59XG5mdW5jdGlvbiBleHBvcnRzTm90Rm91bmQoc3VicGF0aCwgcGFja2FnZUpzb25VcmwsIGJhc2UpIHtcbiAgcmV0dXJuIG5ldyBFUlJfUEFDS0FHRV9QQVRIX05PVF9FWFBPUlRFRChcbiAgICBmaWxlVVJMVG9QYXRoMyhuZXcgVVJMMyhcIi5cIiwgcGFja2FnZUpzb25VcmwpKSxcbiAgICBzdWJwYXRoLFxuICAgIGJhc2UgJiYgZmlsZVVSTFRvUGF0aDMoYmFzZSlcbiAgKTtcbn1cbmZ1bmN0aW9uIHRocm93SW52YWxpZFN1YnBhdGgocmVxdWVzdCwgbWF0Y2gsIHBhY2thZ2VKc29uVXJsLCBpbnRlcm5hbCwgYmFzZSkge1xuICBjb25zdCByZWFzb24gPSBgcmVxdWVzdCBpcyBub3QgYSB2YWxpZCBtYXRjaCBpbiBwYXR0ZXJuIFwiJHttYXRjaH1cIiBmb3IgdGhlIFwiJHtpbnRlcm5hbCA/IFwiaW1wb3J0c1wiIDogXCJleHBvcnRzXCJ9XCIgcmVzb2x1dGlvbiBvZiAke2ZpbGVVUkxUb1BhdGgzKHBhY2thZ2VKc29uVXJsKX1gO1xuICB0aHJvdyBuZXcgRVJSX0lOVkFMSURfTU9EVUxFX1NQRUNJRklFUihcbiAgICByZXF1ZXN0LFxuICAgIHJlYXNvbixcbiAgICBiYXNlICYmIGZpbGVVUkxUb1BhdGgzKGJhc2UpXG4gICk7XG59XG5mdW5jdGlvbiBpbnZhbGlkUGFja2FnZVRhcmdldChzdWJwYXRoLCB0YXJnZXQsIHBhY2thZ2VKc29uVXJsLCBpbnRlcm5hbCwgYmFzZSkge1xuICB0YXJnZXQgPSB0eXBlb2YgdGFyZ2V0ID09PSBcIm9iamVjdFwiICYmIHRhcmdldCAhPT0gbnVsbCA/IEpTT04uc3RyaW5naWZ5KHRhcmdldCwgbnVsbCwgXCJcIikgOiBgJHt0YXJnZXR9YDtcbiAgcmV0dXJuIG5ldyBFUlJfSU5WQUxJRF9QQUNLQUdFX1RBUkdFVChcbiAgICBmaWxlVVJMVG9QYXRoMyhuZXcgVVJMMyhcIi5cIiwgcGFja2FnZUpzb25VcmwpKSxcbiAgICBzdWJwYXRoLFxuICAgIHRhcmdldCxcbiAgICBpbnRlcm5hbCxcbiAgICBiYXNlICYmIGZpbGVVUkxUb1BhdGgzKGJhc2UpXG4gICk7XG59XG5mdW5jdGlvbiByZXNvbHZlUGFja2FnZVRhcmdldFN0cmluZyh0YXJnZXQsIHN1YnBhdGgsIG1hdGNoLCBwYWNrYWdlSnNvblVybCwgYmFzZSwgcGF0dGVybiwgaW50ZXJuYWwsIGlzUGF0aE1hcCwgY29uZGl0aW9ucykge1xuICBpZiAoc3VicGF0aCAhPT0gXCJcIiAmJiAhcGF0dGVybiAmJiB0YXJnZXRbdGFyZ2V0Lmxlbmd0aCAtIDFdICE9PSBcIi9cIilcbiAgICB0aHJvdyBpbnZhbGlkUGFja2FnZVRhcmdldChtYXRjaCwgdGFyZ2V0LCBwYWNrYWdlSnNvblVybCwgaW50ZXJuYWwsIGJhc2UpO1xuICBpZiAoIXRhcmdldC5zdGFydHNXaXRoKFwiLi9cIikpIHtcbiAgICBpZiAoaW50ZXJuYWwgJiYgIXRhcmdldC5zdGFydHNXaXRoKFwiLi4vXCIpICYmICF0YXJnZXQuc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgIGxldCBpc1VSTDIgPSBmYWxzZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBVUkwzKHRhcmdldCk7XG4gICAgICAgIGlzVVJMMiA9IHRydWU7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgIH1cbiAgICAgIGlmICghaXNVUkwyKSB7XG4gICAgICAgIGNvbnN0IGV4cG9ydFRhcmdldCA9IHBhdHRlcm4gPyBSZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlLmNhbGwoXG4gICAgICAgICAgcGF0dGVyblJlZ0V4LFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAoKSA9PiBzdWJwYXRoXG4gICAgICAgICkgOiB0YXJnZXQgKyBzdWJwYXRoO1xuICAgICAgICByZXR1cm4gcGFja2FnZVJlc29sdmUoZXhwb3J0VGFyZ2V0LCBwYWNrYWdlSnNvblVybCwgY29uZGl0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGludmFsaWRQYWNrYWdlVGFyZ2V0KG1hdGNoLCB0YXJnZXQsIHBhY2thZ2VKc29uVXJsLCBpbnRlcm5hbCwgYmFzZSk7XG4gIH1cbiAgaWYgKGludmFsaWRTZWdtZW50UmVnRXguZXhlYyh0YXJnZXQuc2xpY2UoMikpICE9PSBudWxsKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRJbnZhbGlkU2VnbWVudFJlZ0V4LmV4ZWModGFyZ2V0LnNsaWNlKDIpKSA9PT0gbnVsbCkge1xuICAgICAgaWYgKCFpc1BhdGhNYXApIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHBhdHRlcm4gPyBtYXRjaC5yZXBsYWNlKFwiKlwiLCAoKSA9PiBzdWJwYXRoKSA6IG1hdGNoICsgc3VicGF0aDtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBwYXR0ZXJuID8gUmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZS5jYWxsKFxuICAgICAgICAgIHBhdHRlcm5SZWdFeCxcbiAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgKCkgPT4gc3VicGF0aFxuICAgICAgICApIDogdGFyZ2V0O1xuICAgICAgICBlbWl0SW52YWxpZFNlZ21lbnREZXByZWNhdGlvbihcbiAgICAgICAgICByZXNvbHZlZFRhcmdldCxcbiAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgIG1hdGNoLFxuICAgICAgICAgIHBhY2thZ2VKc29uVXJsLFxuICAgICAgICAgIGludGVybmFsLFxuICAgICAgICAgIGJhc2UsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBpbnZhbGlkUGFja2FnZVRhcmdldChtYXRjaCwgdGFyZ2V0LCBwYWNrYWdlSnNvblVybCwgaW50ZXJuYWwsIGJhc2UpO1xuICAgIH1cbiAgfVxuICBjb25zdCByZXNvbHZlZCA9IG5ldyBVUkwzKHRhcmdldCwgcGFja2FnZUpzb25VcmwpO1xuICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlZC5wYXRobmFtZTtcbiAgY29uc3QgcGFja2FnZVBhdGggPSBuZXcgVVJMMyhcIi5cIiwgcGFja2FnZUpzb25VcmwpLnBhdGhuYW1lO1xuICBpZiAoIXJlc29sdmVkUGF0aC5zdGFydHNXaXRoKHBhY2thZ2VQYXRoKSlcbiAgICB0aHJvdyBpbnZhbGlkUGFja2FnZVRhcmdldChtYXRjaCwgdGFyZ2V0LCBwYWNrYWdlSnNvblVybCwgaW50ZXJuYWwsIGJhc2UpO1xuICBpZiAoc3VicGF0aCA9PT0gXCJcIilcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIGlmIChpbnZhbGlkU2VnbWVudFJlZ0V4LmV4ZWMoc3VicGF0aCkgIT09IG51bGwpIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gcGF0dGVybiA/IG1hdGNoLnJlcGxhY2UoXCIqXCIsICgpID0+IHN1YnBhdGgpIDogbWF0Y2ggKyBzdWJwYXRoO1xuICAgIGlmIChkZXByZWNhdGVkSW52YWxpZFNlZ21lbnRSZWdFeC5leGVjKHN1YnBhdGgpID09PSBudWxsKSB7XG4gICAgICBpZiAoIWlzUGF0aE1hcCkge1xuICAgICAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHBhdHRlcm4gPyBSZWdFeHBQcm90b3R5cGVTeW1ib2xSZXBsYWNlLmNhbGwoXG4gICAgICAgICAgcGF0dGVyblJlZ0V4LFxuICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAoKSA9PiBzdWJwYXRoXG4gICAgICAgICkgOiB0YXJnZXQ7XG4gICAgICAgIGVtaXRJbnZhbGlkU2VnbWVudERlcHJlY2F0aW9uKFxuICAgICAgICAgIHJlc29sdmVkVGFyZ2V0LFxuICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgbWF0Y2gsXG4gICAgICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICAgICAgaW50ZXJuYWwsXG4gICAgICAgICAgYmFzZSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd0ludmFsaWRTdWJwYXRoKHJlcXVlc3QsIG1hdGNoLCBwYWNrYWdlSnNvblVybCwgaW50ZXJuYWwsIGJhc2UpO1xuICAgIH1cbiAgfVxuICBpZiAocGF0dGVybikge1xuICAgIHJldHVybiBuZXcgVVJMMyhcbiAgICAgIFJlZ0V4cFByb3RvdHlwZVN5bWJvbFJlcGxhY2UuY2FsbChcbiAgICAgICAgcGF0dGVyblJlZ0V4LFxuICAgICAgICByZXNvbHZlZC5ocmVmLFxuICAgICAgICAoKSA9PiBzdWJwYXRoXG4gICAgICApXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbmV3IFVSTDMoc3VicGF0aCwgcmVzb2x2ZWQpO1xufVxuZnVuY3Rpb24gaXNBcnJheUluZGV4KGtleSkge1xuICBjb25zdCBrZXlOdW1iZXIgPSBOdW1iZXIoa2V5KTtcbiAgaWYgKGAke2tleU51bWJlcn1gICE9PSBrZXkpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4ga2V5TnVtYmVyID49IDAgJiYga2V5TnVtYmVyIDwgNDI5NDk2NzI5NTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVQYWNrYWdlVGFyZ2V0KHBhY2thZ2VKc29uVXJsLCB0YXJnZXQsIHN1YnBhdGgsIHBhY2thZ2VTdWJwYXRoLCBiYXNlLCBwYXR0ZXJuLCBpbnRlcm5hbCwgaXNQYXRoTWFwLCBjb25kaXRpb25zKSB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHJlc29sdmVQYWNrYWdlVGFyZ2V0U3RyaW5nKFxuICAgICAgdGFyZ2V0LFxuICAgICAgc3VicGF0aCxcbiAgICAgIHBhY2thZ2VTdWJwYXRoLFxuICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICBiYXNlLFxuICAgICAgcGF0dGVybixcbiAgICAgIGludGVybmFsLFxuICAgICAgaXNQYXRoTWFwLFxuICAgICAgY29uZGl0aW9uc1xuICAgICk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIGNvbnN0IHRhcmdldExpc3QgPSB0YXJnZXQ7XG4gICAgaWYgKHRhcmdldExpc3QubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgbGV0IGxhc3RFeGNlcHRpb247XG4gICAgbGV0IGkgPSAtMTtcbiAgICB3aGlsZSAoKytpIDwgdGFyZ2V0TGlzdC5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSB0YXJnZXRMaXN0W2ldO1xuICAgICAgbGV0IHJlc29sdmVSZXN1bHQ7XG4gICAgICB0cnkge1xuICAgICAgICByZXNvbHZlUmVzdWx0ID0gcmVzb2x2ZVBhY2thZ2VUYXJnZXQoXG4gICAgICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICAgICAgdGFyZ2V0SXRlbSxcbiAgICAgICAgICBzdWJwYXRoLFxuICAgICAgICAgIHBhY2thZ2VTdWJwYXRoLFxuICAgICAgICAgIGJhc2UsXG4gICAgICAgICAgcGF0dGVybixcbiAgICAgICAgICBpbnRlcm5hbCxcbiAgICAgICAgICBpc1BhdGhNYXAsXG4gICAgICAgICAgY29uZGl0aW9uc1xuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgZXhjZXB0aW9uID0gKFxuICAgICAgICAgIC8qKiBAdHlwZSB7RXJybm9FeGNlcHRpb259ICovXG4gICAgICAgICAgZXJyb3JcbiAgICAgICAgKTtcbiAgICAgICAgbGFzdEV4Y2VwdGlvbiA9IGV4Y2VwdGlvbjtcbiAgICAgICAgaWYgKGV4Y2VwdGlvbi5jb2RlID09PSBcIkVSUl9JTlZBTElEX1BBQ0tBR0VfVEFSR0VUXCIpXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgaWYgKHJlc29sdmVSZXN1bHQgPT09IHZvaWQgMClcbiAgICAgICAgY29udGludWU7XG4gICAgICBpZiAocmVzb2x2ZVJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICBsYXN0RXhjZXB0aW9uID0gbnVsbDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZVJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGxhc3RFeGNlcHRpb24gPT09IHZvaWQgMCB8fCBsYXN0RXhjZXB0aW9uID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdGhyb3cgbGFzdEV4Y2VwdGlvbjtcbiAgfVxuICBpZiAodHlwZW9mIHRhcmdldCA9PT0gXCJvYmplY3RcIiAmJiB0YXJnZXQgIT09IG51bGwpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgICBsZXQgaSA9IC0xO1xuICAgIHdoaWxlICgrK2kgPCBrZXlzLmxlbmd0aCkge1xuICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgIGlmIChpc0FycmF5SW5kZXgoa2V5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRVJSX0lOVkFMSURfUEFDS0FHRV9DT05GSUcyKFxuICAgICAgICAgIGZpbGVVUkxUb1BhdGgzKHBhY2thZ2VKc29uVXJsKSxcbiAgICAgICAgICBiYXNlLFxuICAgICAgICAgICdcImV4cG9ydHNcIiBjYW5ub3QgY29udGFpbiBudW1lcmljIHByb3BlcnR5IGtleXMuJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpID0gLTE7XG4gICAgd2hpbGUgKCsraSA8IGtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwgY29uZGl0aW9ucyAmJiBjb25kaXRpb25zLmhhcyhrZXkpKSB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbmFsVGFyZ2V0ID0gKFxuICAgICAgICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbiAgICAgICAgICB0YXJnZXRba2V5XVxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZXNvbHZlUmVzdWx0ID0gcmVzb2x2ZVBhY2thZ2VUYXJnZXQoXG4gICAgICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICAgICAgY29uZGl0aW9uYWxUYXJnZXQsXG4gICAgICAgICAgc3VicGF0aCxcbiAgICAgICAgICBwYWNrYWdlU3VicGF0aCxcbiAgICAgICAgICBiYXNlLFxuICAgICAgICAgIHBhdHRlcm4sXG4gICAgICAgICAgaW50ZXJuYWwsXG4gICAgICAgICAgaXNQYXRoTWFwLFxuICAgICAgICAgIGNvbmRpdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlc29sdmVSZXN1bHQgPT09IHZvaWQgMClcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVSZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmICh0YXJnZXQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICB0aHJvdyBpbnZhbGlkUGFja2FnZVRhcmdldChcbiAgICBwYWNrYWdlU3VicGF0aCxcbiAgICB0YXJnZXQsXG4gICAgcGFja2FnZUpzb25VcmwsXG4gICAgaW50ZXJuYWwsXG4gICAgYmFzZVxuICApO1xufVxuZnVuY3Rpb24gaXNDb25kaXRpb25hbEV4cG9ydHNNYWluU3VnYXIoZXhwb3J0cywgcGFja2FnZUpzb25VcmwsIGJhc2UpIHtcbiAgaWYgKHR5cGVvZiBleHBvcnRzID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkoZXhwb3J0cykpXG4gICAgcmV0dXJuIHRydWU7XG4gIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gXCJvYmplY3RcIiB8fCBleHBvcnRzID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4cG9ydHMpO1xuICBsZXQgaXNDb25kaXRpb25hbFN1Z2FyID0gZmFsc2U7XG4gIGxldCBpID0gMDtcbiAgbGV0IGogPSAtMTtcbiAgd2hpbGUgKCsraiA8IGtleXMubGVuZ3RoKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tqXTtcbiAgICBjb25zdCBjdXJJc0NvbmRpdGlvbmFsU3VnYXIgPSBrZXkgPT09IFwiXCIgfHwga2V5WzBdICE9PSBcIi5cIjtcbiAgICBpZiAoaSsrID09PSAwKSB7XG4gICAgICBpc0NvbmRpdGlvbmFsU3VnYXIgPSBjdXJJc0NvbmRpdGlvbmFsU3VnYXI7XG4gICAgfSBlbHNlIGlmIChpc0NvbmRpdGlvbmFsU3VnYXIgIT09IGN1cklzQ29uZGl0aW9uYWxTdWdhcikge1xuICAgICAgdGhyb3cgbmV3IEVSUl9JTlZBTElEX1BBQ0tBR0VfQ09ORklHMihcbiAgICAgICAgZmlsZVVSTFRvUGF0aDMocGFja2FnZUpzb25VcmwpLFxuICAgICAgICBiYXNlLFxuICAgICAgICBgXCJleHBvcnRzXCIgY2Fubm90IGNvbnRhaW4gc29tZSBrZXlzIHN0YXJ0aW5nIHdpdGggJy4nIGFuZCBzb21lIG5vdC4gVGhlIGV4cG9ydHMgb2JqZWN0IG11c3QgZWl0aGVyIGJlIGFuIG9iamVjdCBvZiBwYWNrYWdlIHN1YnBhdGgga2V5cyBvciBhbiBvYmplY3Qgb2YgbWFpbiBlbnRyeSBjb25kaXRpb24gbmFtZSBrZXlzIG9ubHkuYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGlzQ29uZGl0aW9uYWxTdWdhcjtcbn1cbmZ1bmN0aW9uIGVtaXRUcmFpbGluZ1NsYXNoUGF0dGVybkRlcHJlY2F0aW9uKG1hdGNoLCBwanNvblVybCwgYmFzZSkge1xuICBjb25zdCBwanNvblBhdGggPSBmaWxlVVJMVG9QYXRoMyhwanNvblVybCk7XG4gIGlmIChlbWl0dGVkUGFja2FnZVdhcm5pbmdzLmhhcyhwanNvblBhdGggKyBcInxcIiArIG1hdGNoKSlcbiAgICByZXR1cm47XG4gIGVtaXR0ZWRQYWNrYWdlV2FybmluZ3MuYWRkKHBqc29uUGF0aCArIFwifFwiICsgbWF0Y2gpO1xuICBwcm9jZXNzNC5lbWl0V2FybmluZyhcbiAgICBgVXNlIG9mIGRlcHJlY2F0ZWQgdHJhaWxpbmcgc2xhc2ggcGF0dGVybiBtYXBwaW5nIFwiJHttYXRjaH1cIiBpbiB0aGUgXCJleHBvcnRzXCIgZmllbGQgbW9kdWxlIHJlc29sdXRpb24gb2YgdGhlIHBhY2thZ2UgYXQgJHtwanNvblBhdGh9JHtiYXNlID8gYCBpbXBvcnRlZCBmcm9tICR7ZmlsZVVSTFRvUGF0aDMoYmFzZSl9YCA6IFwiXCJ9LiBNYXBwaW5nIHNwZWNpZmllcnMgZW5kaW5nIGluIFwiL1wiIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuYCxcbiAgICBcIkRlcHJlY2F0aW9uV2FybmluZ1wiLFxuICAgIFwiREVQMDE1NVwiXG4gICk7XG59XG5mdW5jdGlvbiBwYWNrYWdlRXhwb3J0c1Jlc29sdmUocGFja2FnZUpzb25VcmwsIHBhY2thZ2VTdWJwYXRoLCBwYWNrYWdlQ29uZmlnLCBiYXNlLCBjb25kaXRpb25zKSB7XG4gIGxldCBleHBvcnRzID0gcGFja2FnZUNvbmZpZy5leHBvcnRzO1xuICBpZiAoaXNDb25kaXRpb25hbEV4cG9ydHNNYWluU3VnYXIoZXhwb3J0cywgcGFja2FnZUpzb25VcmwsIGJhc2UpKSB7XG4gICAgZXhwb3J0cyA9IHsgXCIuXCI6IGV4cG9ydHMgfTtcbiAgfVxuICBpZiAob3duMi5jYWxsKGV4cG9ydHMsIHBhY2thZ2VTdWJwYXRoKSAmJiAhcGFja2FnZVN1YnBhdGguaW5jbHVkZXMoXCIqXCIpICYmICFwYWNrYWdlU3VicGF0aC5lbmRzV2l0aChcIi9cIikpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBleHBvcnRzW3BhY2thZ2VTdWJwYXRoXTtcbiAgICBjb25zdCByZXNvbHZlUmVzdWx0ID0gcmVzb2x2ZVBhY2thZ2VUYXJnZXQoXG4gICAgICBwYWNrYWdlSnNvblVybCxcbiAgICAgIHRhcmdldCxcbiAgICAgIFwiXCIsXG4gICAgICBwYWNrYWdlU3VicGF0aCxcbiAgICAgIGJhc2UsXG4gICAgICBmYWxzZSxcbiAgICAgIGZhbHNlLFxuICAgICAgZmFsc2UsXG4gICAgICBjb25kaXRpb25zXG4gICAgKTtcbiAgICBpZiAocmVzb2x2ZVJlc3VsdCA9PT0gbnVsbCB8fCByZXNvbHZlUmVzdWx0ID09PSB2b2lkIDApIHtcbiAgICAgIHRocm93IGV4cG9ydHNOb3RGb3VuZChwYWNrYWdlU3VicGF0aCwgcGFja2FnZUpzb25VcmwsIGJhc2UpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZVJlc3VsdDtcbiAgfVxuICBsZXQgYmVzdE1hdGNoID0gXCJcIjtcbiAgbGV0IGJlc3RNYXRjaFN1YnBhdGggPSBcIlwiO1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZXhwb3J0cyk7XG4gIGxldCBpID0gLTE7XG4gIHdoaWxlICgrK2kgPCBrZXlzLmxlbmd0aCkge1xuICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgY29uc3QgcGF0dGVybkluZGV4ID0ga2V5LmluZGV4T2YoXCIqXCIpO1xuICAgIGlmIChwYXR0ZXJuSW5kZXggIT09IC0xICYmIHBhY2thZ2VTdWJwYXRoLnN0YXJ0c1dpdGgoa2V5LnNsaWNlKDAsIHBhdHRlcm5JbmRleCkpKSB7XG4gICAgICBpZiAocGFja2FnZVN1YnBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICAgIGVtaXRUcmFpbGluZ1NsYXNoUGF0dGVybkRlcHJlY2F0aW9uKFxuICAgICAgICAgIHBhY2thZ2VTdWJwYXRoLFxuICAgICAgICAgIHBhY2thZ2VKc29uVXJsLFxuICAgICAgICAgIGJhc2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhdHRlcm5UcmFpbGVyID0ga2V5LnNsaWNlKHBhdHRlcm5JbmRleCArIDEpO1xuICAgICAgaWYgKHBhY2thZ2VTdWJwYXRoLmxlbmd0aCA+PSBrZXkubGVuZ3RoICYmIHBhY2thZ2VTdWJwYXRoLmVuZHNXaXRoKHBhdHRlcm5UcmFpbGVyKSAmJiBwYXR0ZXJuS2V5Q29tcGFyZShiZXN0TWF0Y2gsIGtleSkgPT09IDEgJiYga2V5Lmxhc3RJbmRleE9mKFwiKlwiKSA9PT0gcGF0dGVybkluZGV4KSB7XG4gICAgICAgIGJlc3RNYXRjaCA9IGtleTtcbiAgICAgICAgYmVzdE1hdGNoU3VicGF0aCA9IHBhY2thZ2VTdWJwYXRoLnNsaWNlKFxuICAgICAgICAgIHBhdHRlcm5JbmRleCxcbiAgICAgICAgICBwYWNrYWdlU3VicGF0aC5sZW5ndGggLSBwYXR0ZXJuVHJhaWxlci5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGJlc3RNYXRjaCkge1xuICAgIGNvbnN0IHRhcmdldCA9IChcbiAgICAgIC8qKiBAdHlwZSB7dW5rbm93bn0gKi9cbiAgICAgIGV4cG9ydHNbYmVzdE1hdGNoXVxuICAgICk7XG4gICAgY29uc3QgcmVzb2x2ZVJlc3VsdCA9IHJlc29sdmVQYWNrYWdlVGFyZ2V0KFxuICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICB0YXJnZXQsXG4gICAgICBiZXN0TWF0Y2hTdWJwYXRoLFxuICAgICAgYmVzdE1hdGNoLFxuICAgICAgYmFzZSxcbiAgICAgIHRydWUsXG4gICAgICBmYWxzZSxcbiAgICAgIHBhY2thZ2VTdWJwYXRoLmVuZHNXaXRoKFwiL1wiKSxcbiAgICAgIGNvbmRpdGlvbnNcbiAgICApO1xuICAgIGlmIChyZXNvbHZlUmVzdWx0ID09PSBudWxsIHx8IHJlc29sdmVSZXN1bHQgPT09IHZvaWQgMCkge1xuICAgICAgdGhyb3cgZXhwb3J0c05vdEZvdW5kKHBhY2thZ2VTdWJwYXRoLCBwYWNrYWdlSnNvblVybCwgYmFzZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlUmVzdWx0O1xuICB9XG4gIHRocm93IGV4cG9ydHNOb3RGb3VuZChwYWNrYWdlU3VicGF0aCwgcGFja2FnZUpzb25VcmwsIGJhc2UpO1xufVxuZnVuY3Rpb24gcGF0dGVybktleUNvbXBhcmUoYSwgYikge1xuICBjb25zdCBhUGF0dGVybkluZGV4ID0gYS5pbmRleE9mKFwiKlwiKTtcbiAgY29uc3QgYlBhdHRlcm5JbmRleCA9IGIuaW5kZXhPZihcIipcIik7XG4gIGNvbnN0IGJhc2VMZW5ndGhBID0gYVBhdHRlcm5JbmRleCA9PT0gLTEgPyBhLmxlbmd0aCA6IGFQYXR0ZXJuSW5kZXggKyAxO1xuICBjb25zdCBiYXNlTGVuZ3RoQiA9IGJQYXR0ZXJuSW5kZXggPT09IC0xID8gYi5sZW5ndGggOiBiUGF0dGVybkluZGV4ICsgMTtcbiAgaWYgKGJhc2VMZW5ndGhBID4gYmFzZUxlbmd0aEIpXG4gICAgcmV0dXJuIC0xO1xuICBpZiAoYmFzZUxlbmd0aEIgPiBiYXNlTGVuZ3RoQSlcbiAgICByZXR1cm4gMTtcbiAgaWYgKGFQYXR0ZXJuSW5kZXggPT09IC0xKVxuICAgIHJldHVybiAxO1xuICBpZiAoYlBhdHRlcm5JbmRleCA9PT0gLTEpXG4gICAgcmV0dXJuIC0xO1xuICBpZiAoYS5sZW5ndGggPiBiLmxlbmd0aClcbiAgICByZXR1cm4gLTE7XG4gIGlmIChiLmxlbmd0aCA+IGEubGVuZ3RoKVxuICAgIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cbmZ1bmN0aW9uIHBhY2thZ2VJbXBvcnRzUmVzb2x2ZShuYW1lLCBiYXNlLCBjb25kaXRpb25zKSB7XG4gIGlmIChuYW1lID09PSBcIiNcIiB8fCBuYW1lLnN0YXJ0c1dpdGgoXCIjL1wiKSB8fCBuYW1lLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgIGNvbnN0IHJlYXNvbiA9IFwiaXMgbm90IGEgdmFsaWQgaW50ZXJuYWwgaW1wb3J0cyBzcGVjaWZpZXIgbmFtZVwiO1xuICAgIHRocm93IG5ldyBFUlJfSU5WQUxJRF9NT0RVTEVfU1BFQ0lGSUVSKG5hbWUsIHJlYXNvbiwgZmlsZVVSTFRvUGF0aDMoYmFzZSkpO1xuICB9XG4gIGxldCBwYWNrYWdlSnNvblVybDtcbiAgY29uc3QgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VTY29wZUNvbmZpZyhiYXNlKTtcbiAgaWYgKHBhY2thZ2VDb25maWcuZXhpc3RzKSB7XG4gICAgcGFja2FnZUpzb25VcmwgPSBwYXRoVG9GaWxlVVJMKHBhY2thZ2VDb25maWcucGpzb25QYXRoKTtcbiAgICBjb25zdCBpbXBvcnRzID0gcGFja2FnZUNvbmZpZy5pbXBvcnRzO1xuICAgIGlmIChpbXBvcnRzKSB7XG4gICAgICBpZiAob3duMi5jYWxsKGltcG9ydHMsIG5hbWUpICYmICFuYW1lLmluY2x1ZGVzKFwiKlwiKSkge1xuICAgICAgICBjb25zdCByZXNvbHZlUmVzdWx0ID0gcmVzb2x2ZVBhY2thZ2VUYXJnZXQoXG4gICAgICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICAgICAgaW1wb3J0c1tuYW1lXSxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgYmFzZSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIGNvbmRpdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlc29sdmVSZXN1bHQgIT09IG51bGwgJiYgcmVzb2x2ZVJlc3VsdCAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVSZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBiZXN0TWF0Y2ggPSBcIlwiO1xuICAgICAgICBsZXQgYmVzdE1hdGNoU3VicGF0aCA9IFwiXCI7XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbXBvcnRzKTtcbiAgICAgICAgbGV0IGkgPSAtMTtcbiAgICAgICAgd2hpbGUgKCsraSA8IGtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBjb25zdCBwYXR0ZXJuSW5kZXggPSBrZXkuaW5kZXhPZihcIipcIik7XG4gICAgICAgICAgaWYgKHBhdHRlcm5JbmRleCAhPT0gLTEgJiYgbmFtZS5zdGFydHNXaXRoKGtleS5zbGljZSgwLCAtMSkpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuVHJhaWxlciA9IGtleS5zbGljZShwYXR0ZXJuSW5kZXggKyAxKTtcbiAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCA+PSBrZXkubGVuZ3RoICYmIG5hbWUuZW5kc1dpdGgocGF0dGVyblRyYWlsZXIpICYmIHBhdHRlcm5LZXlDb21wYXJlKGJlc3RNYXRjaCwga2V5KSA9PT0gMSAmJiBrZXkubGFzdEluZGV4T2YoXCIqXCIpID09PSBwYXR0ZXJuSW5kZXgpIHtcbiAgICAgICAgICAgICAgYmVzdE1hdGNoID0ga2V5O1xuICAgICAgICAgICAgICBiZXN0TWF0Y2hTdWJwYXRoID0gbmFtZS5zbGljZShcbiAgICAgICAgICAgICAgICBwYXR0ZXJuSW5kZXgsXG4gICAgICAgICAgICAgICAgbmFtZS5sZW5ndGggLSBwYXR0ZXJuVHJhaWxlci5sZW5ndGhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJlc3RNYXRjaCkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGltcG9ydHNbYmVzdE1hdGNoXTtcbiAgICAgICAgICBjb25zdCByZXNvbHZlUmVzdWx0ID0gcmVzb2x2ZVBhY2thZ2VUYXJnZXQoXG4gICAgICAgICAgICBwYWNrYWdlSnNvblVybCxcbiAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgIGJlc3RNYXRjaFN1YnBhdGgsXG4gICAgICAgICAgICBiZXN0TWF0Y2gsXG4gICAgICAgICAgICBiYXNlLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnNcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChyZXNvbHZlUmVzdWx0ICE9PSBudWxsICYmIHJlc29sdmVSZXN1bHQgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRocm93IGltcG9ydE5vdERlZmluZWQobmFtZSwgcGFja2FnZUpzb25VcmwsIGJhc2UpO1xufVxuZnVuY3Rpb24gcGFyc2VQYWNrYWdlTmFtZShzcGVjaWZpZXIsIGJhc2UpIHtcbiAgbGV0IHNlcGFyYXRvckluZGV4ID0gc3BlY2lmaWVyLmluZGV4T2YoXCIvXCIpO1xuICBsZXQgdmFsaWRQYWNrYWdlTmFtZSA9IHRydWU7XG4gIGxldCBpc1Njb3BlZCA9IGZhbHNlO1xuICBpZiAoc3BlY2lmaWVyWzBdID09PSBcIkBcIikge1xuICAgIGlzU2NvcGVkID0gdHJ1ZTtcbiAgICBpZiAoc2VwYXJhdG9ySW5kZXggPT09IC0xIHx8IHNwZWNpZmllci5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhbGlkUGFja2FnZU5hbWUgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VwYXJhdG9ySW5kZXggPSBzcGVjaWZpZXIuaW5kZXhPZihcIi9cIiwgc2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFja2FnZU5hbWUgPSBzZXBhcmF0b3JJbmRleCA9PT0gLTEgPyBzcGVjaWZpZXIgOiBzcGVjaWZpZXIuc2xpY2UoMCwgc2VwYXJhdG9ySW5kZXgpO1xuICBpZiAoaW52YWxpZFBhY2thZ2VOYW1lUmVnRXguZXhlYyhwYWNrYWdlTmFtZSkgIT09IG51bGwpIHtcbiAgICB2YWxpZFBhY2thZ2VOYW1lID0gZmFsc2U7XG4gIH1cbiAgaWYgKCF2YWxpZFBhY2thZ2VOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVSUl9JTlZBTElEX01PRFVMRV9TUEVDSUZJRVIoXG4gICAgICBzcGVjaWZpZXIsXG4gICAgICBcImlzIG5vdCBhIHZhbGlkIHBhY2thZ2UgbmFtZVwiLFxuICAgICAgZmlsZVVSTFRvUGF0aDMoYmFzZSlcbiAgICApO1xuICB9XG4gIGNvbnN0IHBhY2thZ2VTdWJwYXRoID0gXCIuXCIgKyAoc2VwYXJhdG9ySW5kZXggPT09IC0xID8gXCJcIiA6IHNwZWNpZmllci5zbGljZShzZXBhcmF0b3JJbmRleCkpO1xuICByZXR1cm4geyBwYWNrYWdlTmFtZSwgcGFja2FnZVN1YnBhdGgsIGlzU2NvcGVkIH07XG59XG5mdW5jdGlvbiBwYWNrYWdlUmVzb2x2ZShzcGVjaWZpZXIsIGJhc2UsIGNvbmRpdGlvbnMpIHtcbiAgaWYgKGJ1aWx0aW5Nb2R1bGVzLmluY2x1ZGVzKHNwZWNpZmllcikpIHtcbiAgICByZXR1cm4gbmV3IFVSTDMoXCJub2RlOlwiICsgc3BlY2lmaWVyKTtcbiAgfVxuICBjb25zdCB7IHBhY2thZ2VOYW1lLCBwYWNrYWdlU3VicGF0aCwgaXNTY29wZWQgfSA9IHBhcnNlUGFja2FnZU5hbWUoXG4gICAgc3BlY2lmaWVyLFxuICAgIGJhc2VcbiAgKTtcbiAgY29uc3QgcGFja2FnZUNvbmZpZyA9IGdldFBhY2thZ2VTY29wZUNvbmZpZyhiYXNlKTtcbiAgaWYgKHBhY2thZ2VDb25maWcuZXhpc3RzKSB7XG4gICAgY29uc3QgcGFja2FnZUpzb25VcmwyID0gcGF0aFRvRmlsZVVSTChwYWNrYWdlQ29uZmlnLnBqc29uUGF0aCk7XG4gICAgaWYgKHBhY2thZ2VDb25maWcubmFtZSA9PT0gcGFja2FnZU5hbWUgJiYgcGFja2FnZUNvbmZpZy5leHBvcnRzICE9PSB2b2lkIDAgJiYgcGFja2FnZUNvbmZpZy5leHBvcnRzICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFja2FnZUV4cG9ydHNSZXNvbHZlKFxuICAgICAgICBwYWNrYWdlSnNvblVybDIsXG4gICAgICAgIHBhY2thZ2VTdWJwYXRoLFxuICAgICAgICBwYWNrYWdlQ29uZmlnLFxuICAgICAgICBiYXNlLFxuICAgICAgICBjb25kaXRpb25zXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBsZXQgcGFja2FnZUpzb25VcmwgPSBuZXcgVVJMMyhcbiAgICBcIi4vbm9kZV9tb2R1bGVzL1wiICsgcGFja2FnZU5hbWUgKyBcIi9wYWNrYWdlLmpzb25cIixcbiAgICBiYXNlXG4gICk7XG4gIGxldCBwYWNrYWdlSnNvblBhdGggPSBmaWxlVVJMVG9QYXRoMyhwYWNrYWdlSnNvblVybCk7XG4gIGxldCBsYXN0UGF0aDtcbiAgZG8ge1xuICAgIGNvbnN0IHN0YXQgPSB0cnlTdGF0U3luYyhwYWNrYWdlSnNvblBhdGguc2xpY2UoMCwgLTEzKSk7XG4gICAgaWYgKCFzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIGxhc3RQYXRoID0gcGFja2FnZUpzb25QYXRoO1xuICAgICAgcGFja2FnZUpzb25VcmwgPSBuZXcgVVJMMyhcbiAgICAgICAgKGlzU2NvcGVkID8gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvXCIgOiBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9cIikgKyBwYWNrYWdlTmFtZSArIFwiL3BhY2thZ2UuanNvblwiLFxuICAgICAgICBwYWNrYWdlSnNvblVybFxuICAgICAgKTtcbiAgICAgIHBhY2thZ2VKc29uUGF0aCA9IGZpbGVVUkxUb1BhdGgzKHBhY2thZ2VKc29uVXJsKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBwYWNrYWdlQ29uZmlnMiA9IGdldFBhY2thZ2VDb25maWcocGFja2FnZUpzb25QYXRoLCBzcGVjaWZpZXIsIGJhc2UpO1xuICAgIGlmIChwYWNrYWdlQ29uZmlnMi5leHBvcnRzICE9PSB2b2lkIDAgJiYgcGFja2FnZUNvbmZpZzIuZXhwb3J0cyAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhY2thZ2VFeHBvcnRzUmVzb2x2ZShcbiAgICAgICAgcGFja2FnZUpzb25VcmwsXG4gICAgICAgIHBhY2thZ2VTdWJwYXRoLFxuICAgICAgICBwYWNrYWdlQ29uZmlnMixcbiAgICAgICAgYmFzZSxcbiAgICAgICAgY29uZGl0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHBhY2thZ2VTdWJwYXRoID09PSBcIi5cIikge1xuICAgICAgcmV0dXJuIGxlZ2FjeU1haW5SZXNvbHZlKHBhY2thZ2VKc29uVXJsLCBwYWNrYWdlQ29uZmlnMiwgYmFzZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVVJMMyhwYWNrYWdlU3VicGF0aCwgcGFja2FnZUpzb25VcmwpO1xuICB9IHdoaWxlIChwYWNrYWdlSnNvblBhdGgubGVuZ3RoICE9PSBsYXN0UGF0aC5sZW5ndGgpO1xuICB0aHJvdyBuZXcgRVJSX01PRFVMRV9OT1RfRk9VTkQocGFja2FnZU5hbWUsIGZpbGVVUkxUb1BhdGgzKGJhc2UpKTtcbn1cbmZ1bmN0aW9uIGlzUmVsYXRpdmVTcGVjaWZpZXIoc3BlY2lmaWVyKSB7XG4gIGlmIChzcGVjaWZpZXJbMF0gPT09IFwiLlwiKSB7XG4gICAgaWYgKHNwZWNpZmllci5sZW5ndGggPT09IDEgfHwgc3BlY2lmaWVyWzFdID09PSBcIi9cIilcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChzcGVjaWZpZXJbMV0gPT09IFwiLlwiICYmIChzcGVjaWZpZXIubGVuZ3RoID09PSAyIHx8IHNwZWNpZmllclsyXSA9PT0gXCIvXCIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gc2hvdWxkQmVUcmVhdGVkQXNSZWxhdGl2ZU9yQWJzb2x1dGVQYXRoKHNwZWNpZmllcikge1xuICBpZiAoc3BlY2lmaWVyID09PSBcIlwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHNwZWNpZmllclswXSA9PT0gXCIvXCIpXG4gICAgcmV0dXJuIHRydWU7XG4gIHJldHVybiBpc1JlbGF0aXZlU3BlY2lmaWVyKHNwZWNpZmllcik7XG59XG5mdW5jdGlvbiBtb2R1bGVSZXNvbHZlKHNwZWNpZmllciwgYmFzZSwgY29uZGl0aW9ucywgcHJlc2VydmVTeW1saW5rcykge1xuICBjb25zdCBwcm90b2NvbCA9IGJhc2UucHJvdG9jb2w7XG4gIGNvbnN0IGlzUmVtb3RlID0gcHJvdG9jb2wgPT09IFwiaHR0cDpcIiB8fCBwcm90b2NvbCA9PT0gXCJodHRwczpcIjtcbiAgbGV0IHJlc29sdmVkO1xuICBpZiAoc2hvdWxkQmVUcmVhdGVkQXNSZWxhdGl2ZU9yQWJzb2x1dGVQYXRoKHNwZWNpZmllcikpIHtcbiAgICByZXNvbHZlZCA9IG5ldyBVUkwzKHNwZWNpZmllciwgYmFzZSk7XG4gIH0gZWxzZSBpZiAoIWlzUmVtb3RlICYmIHNwZWNpZmllclswXSA9PT0gXCIjXCIpIHtcbiAgICByZXNvbHZlZCA9IHBhY2thZ2VJbXBvcnRzUmVzb2x2ZShzcGVjaWZpZXIsIGJhc2UsIGNvbmRpdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICByZXNvbHZlZCA9IG5ldyBVUkwzKHNwZWNpZmllcik7XG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoIWlzUmVtb3RlKSB7XG4gICAgICAgIHJlc29sdmVkID0gcGFja2FnZVJlc29sdmUoc3BlY2lmaWVyLCBiYXNlLCBjb25kaXRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYXNzZXJ0NShyZXNvbHZlZCAhPT0gdm9pZCAwLCBcImV4cGVjdGVkIHRvIGJlIGRlZmluZWRcIik7XG4gIGlmIChyZXNvbHZlZC5wcm90b2NvbCAhPT0gXCJmaWxlOlwiKSB7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xuICB9XG4gIHJldHVybiBmaW5hbGl6ZVJlc29sdXRpb24ocmVzb2x2ZWQsIGJhc2UsIHByZXNlcnZlU3ltbGlua3MpO1xufVxuZnVuY3Rpb24gY2hlY2tJZkRpc2FsbG93ZWRJbXBvcnQoc3BlY2lmaWVyLCBwYXJzZWQsIHBhcnNlZFBhcmVudFVSTCkge1xuICBpZiAocGFyc2VkUGFyZW50VVJMKSB7XG4gICAgY29uc3QgcGFyZW50UHJvdG9jb2wgPSBwYXJzZWRQYXJlbnRVUkwucHJvdG9jb2w7XG4gICAgaWYgKHBhcmVudFByb3RvY29sID09PSBcImh0dHA6XCIgfHwgcGFyZW50UHJvdG9jb2wgPT09IFwiaHR0cHM6XCIpIHtcbiAgICAgIGlmIChzaG91bGRCZVRyZWF0ZWRBc1JlbGF0aXZlT3JBYnNvbHV0ZVBhdGgoc3BlY2lmaWVyKSkge1xuICAgICAgICBjb25zdCBwYXJzZWRQcm90b2NvbCA9IHBhcnNlZCA9PSBudWxsID8gdm9pZCAwIDogcGFyc2VkLnByb3RvY29sO1xuICAgICAgICBpZiAocGFyc2VkUHJvdG9jb2wgJiYgcGFyc2VkUHJvdG9jb2wgIT09IFwiaHR0cHM6XCIgJiYgcGFyc2VkUHJvdG9jb2wgIT09IFwiaHR0cDpcIikge1xuICAgICAgICAgIHRocm93IG5ldyBFUlJfTkVUV09SS19JTVBPUlRfRElTQUxMT1dFRChcbiAgICAgICAgICAgIHNwZWNpZmllcixcbiAgICAgICAgICAgIHBhcnNlZFBhcmVudFVSTCxcbiAgICAgICAgICAgIFwicmVtb3RlIGltcG9ydHMgY2Fubm90IGltcG9ydCBmcm9tIGEgbG9jYWwgbG9jYXRpb24uXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHVybDogKHBhcnNlZCA9PSBudWxsID8gdm9pZCAwIDogcGFyc2VkLmhyZWYpIHx8IFwiXCIgfTtcbiAgICAgIH1cbiAgICAgIGlmIChidWlsdGluTW9kdWxlcy5pbmNsdWRlcyhzcGVjaWZpZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBFUlJfTkVUV09SS19JTVBPUlRfRElTQUxMT1dFRChcbiAgICAgICAgICBzcGVjaWZpZXIsXG4gICAgICAgICAgcGFyc2VkUGFyZW50VVJMLFxuICAgICAgICAgIFwicmVtb3RlIGltcG9ydHMgY2Fubm90IGltcG9ydCBmcm9tIGEgbG9jYWwgbG9jYXRpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFUlJfTkVUV09SS19JTVBPUlRfRElTQUxMT1dFRChcbiAgICAgICAgc3BlY2lmaWVyLFxuICAgICAgICBwYXJzZWRQYXJlbnRVUkwsXG4gICAgICAgIFwib25seSByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgc3BlY2lmaWVycyBhcmUgc3VwcG9ydGVkLlwiXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gaXNVUkwoc2VsZikge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICBzZWxmICYmIHR5cGVvZiBzZWxmID09PSBcIm9iamVjdFwiICYmIFwiaHJlZlwiIGluIHNlbGYgJiYgdHlwZW9mIHNlbGYuaHJlZiA9PT0gXCJzdHJpbmdcIiAmJiBcInByb3RvY29sXCIgaW4gc2VsZiAmJiB0eXBlb2Ygc2VsZi5wcm90b2NvbCA9PT0gXCJzdHJpbmdcIiAmJiBzZWxmLmhyZWYgJiYgc2VsZi5wcm90b2NvbFxuICApO1xufVxuZnVuY3Rpb24gdGhyb3dJZkludmFsaWRQYXJlbnRVUkwocGFyZW50VVJMKSB7XG4gIGlmIChwYXJlbnRVUkwgPT09IHZvaWQgMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAodHlwZW9mIHBhcmVudFVSTCAhPT0gXCJzdHJpbmdcIiAmJiAhaXNVUkwocGFyZW50VVJMKSkge1xuICAgIHRocm93IG5ldyBjb2Rlcy5FUlJfSU5WQUxJRF9BUkdfVFlQRShcbiAgICAgIFwicGFyZW50VVJMXCIsXG4gICAgICBbXCJzdHJpbmdcIiwgXCJVUkxcIl0sXG4gICAgICBwYXJlbnRVUkxcbiAgICApO1xuICB9XG59XG5mdW5jdGlvbiB0aHJvd0lmVW5zdXBwb3J0ZWRVUkxQcm90b2NvbCh1cmwpIHtcbiAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2w7XG4gIGlmIChwcm90b2NvbCAhPT0gXCJmaWxlOlwiICYmIHByb3RvY29sICE9PSBcImRhdGE6XCIgJiYgcHJvdG9jb2wgIT09IFwibm9kZTpcIikge1xuICAgIHRocm93IG5ldyBFUlJfVU5TVVBQT1JURURfRVNNX1VSTF9TQ0hFTUUodXJsKTtcbiAgfVxufVxuZnVuY3Rpb24gdGhyb3dJZlVuc3VwcG9ydGVkVVJMU2NoZW1lKHBhcnNlZCwgZXhwZXJpbWVudGFsTmV0d29ya0ltcG9ydHMyKSB7XG4gIGNvbnN0IHByb3RvY29sID0gcGFyc2VkID09IG51bGwgPyB2b2lkIDAgOiBwYXJzZWQucHJvdG9jb2w7XG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbCAhPT0gXCJmaWxlOlwiICYmIHByb3RvY29sICE9PSBcImRhdGE6XCIgJiYgKCFleHBlcmltZW50YWxOZXR3b3JrSW1wb3J0czIgfHwgcHJvdG9jb2wgIT09IFwiaHR0cHM6XCIgJiYgcHJvdG9jb2wgIT09IFwiaHR0cDpcIikpIHtcbiAgICB0aHJvdyBuZXcgRVJSX1VOU1VQUE9SVEVEX0VTTV9VUkxfU0NIRU1FKFxuICAgICAgcGFyc2VkLFxuICAgICAgW1wiZmlsZVwiLCBcImRhdGFcIl0uY29uY2F0KFxuICAgICAgICBleHBlcmltZW50YWxOZXR3b3JrSW1wb3J0czIgPyBbXCJodHRwc1wiLCBcImh0dHBcIl0gOiBbXVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRlZmF1bHRSZXNvbHZlKHNwZWNpZmllciwgY29udGV4dCA9IHt9KSB7XG4gIGNvbnN0IHsgcGFyZW50VVJMIH0gPSBjb250ZXh0O1xuICBhc3NlcnQ1KHBhcmVudFVSTCAhPT0gdm9pZCAwLCBcImV4cGVjdGVkIGBwYXJlbnRVUkxgIHRvIGJlIGRlZmluZWRcIik7XG4gIHRocm93SWZJbnZhbGlkUGFyZW50VVJMKHBhcmVudFVSTCk7XG4gIGxldCBwYXJzZWRQYXJlbnRVUkw7XG4gIGlmIChwYXJlbnRVUkwpIHtcbiAgICB0cnkge1xuICAgICAgcGFyc2VkUGFyZW50VVJMID0gbmV3IFVSTDMocGFyZW50VVJMKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgbGV0IHBhcnNlZDtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBzaG91bGRCZVRyZWF0ZWRBc1JlbGF0aXZlT3JBYnNvbHV0ZVBhdGgoc3BlY2lmaWVyKSA/IG5ldyBVUkwzKHNwZWNpZmllciwgcGFyc2VkUGFyZW50VVJMKSA6IG5ldyBVUkwzKHNwZWNpZmllcik7XG4gICAgY29uc3QgcHJvdG9jb2wgPSBwYXJzZWQucHJvdG9jb2w7XG4gICAgaWYgKHByb3RvY29sID09PSBcImRhdGE6XCIgfHwgZXhwZXJpbWVudGFsTmV0d29ya0ltcG9ydHMgJiYgKHByb3RvY29sID09PSBcImh0dHBzOlwiIHx8IHByb3RvY29sID09PSBcImh0dHA6XCIpKSB7XG4gICAgICByZXR1cm4geyB1cmw6IHBhcnNlZC5ocmVmLCBmb3JtYXQ6IG51bGwgfTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICB9XG4gIGNvbnN0IG1heWJlUmV0dXJuID0gY2hlY2tJZkRpc2FsbG93ZWRJbXBvcnQoXG4gICAgc3BlY2lmaWVyLFxuICAgIHBhcnNlZCxcbiAgICBwYXJzZWRQYXJlbnRVUkxcbiAgKTtcbiAgaWYgKG1heWJlUmV0dXJuKVxuICAgIHJldHVybiBtYXliZVJldHVybjtcbiAgaWYgKHBhcnNlZCAmJiBwYXJzZWQucHJvdG9jb2wgPT09IFwibm9kZTpcIilcbiAgICByZXR1cm4geyB1cmw6IHNwZWNpZmllciB9O1xuICB0aHJvd0lmVW5zdXBwb3J0ZWRVUkxTY2hlbWUocGFyc2VkLCBleHBlcmltZW50YWxOZXR3b3JrSW1wb3J0cyk7XG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBnZXRDb25kaXRpb25zU2V0KGNvbnRleHQuY29uZGl0aW9ucyk7XG4gIGNvbnN0IHVybCA9IG1vZHVsZVJlc29sdmUoc3BlY2lmaWVyLCBuZXcgVVJMMyhwYXJlbnRVUkwpLCBjb25kaXRpb25zLCBmYWxzZSk7XG4gIHRocm93SWZVbnN1cHBvcnRlZFVSTFByb3RvY29sKHVybCk7XG4gIHJldHVybiB7XG4gICAgLy8gRG8gTk9UIGNhc3QgYHVybGAgdG8gYSBzdHJpbmc6IHRoYXQgd2lsbCB3b3JrIGV2ZW4gd2hlbiB0aGVyZSBhcmUgcmVhbFxuICAgIC8vIHByb2JsZW1zLCBzaWxlbmNpbmcgdGhlbVxuICAgIHVybDogdXJsLmhyZWYsXG4gICAgZm9ybWF0OiBkZWZhdWx0R2V0Rm9ybWF0V2l0aG91dEVycm9ycyh1cmwsIHsgcGFyZW50VVJMIH0pXG4gIH07XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9pbXBvcnQtbWV0YS1yZXNvbHZlL2luZGV4LmpzXG5mdW5jdGlvbiByZXNvbHZlKHNwZWNpZmllciwgcGFyZW50KSB7XG4gIGlmICghcGFyZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJQbGVhc2UgcGFzcyBgcGFyZW50YDogYGltcG9ydC1tZXRhLXJlc29sdmVgIGNhbm5vdCBwb255ZmlsbCB0aGF0XCJcbiAgICApO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlZmF1bHRSZXNvbHZlKHNwZWNpZmllciwgeyBwYXJlbnRVUkw6IHBhcmVudCB9KS51cmw7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgZXhjZXB0aW9uID0gKFxuICAgICAgLyoqIEB0eXBlIHtFcnJub0V4Y2VwdGlvbn0gKi9cbiAgICAgIGVycm9yXG4gICAgKTtcbiAgICBpZiAoZXhjZXB0aW9uLmNvZGUgPT09IFwiRVJSX1VOU1VQUE9SVEVEX0RJUl9JTVBPUlRcIiAmJiB0eXBlb2YgZXhjZXB0aW9uLnVybCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIGV4Y2VwdGlvbi51cmw7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8vIHNyYy91dGlscy9pbXBvcnQtZnJvbS1maWxlLmpzXG5mdW5jdGlvbiBpbXBvcnRGcm9tRmlsZShzcGVjaWZpZXIsIHBhcmVudCkge1xuICBjb25zdCB1cmwgPSByZXNvbHZlKHNwZWNpZmllciwgcGF0aFRvRmlsZVVSTDIocGFyZW50KS5ocmVmKTtcbiAgcmV0dXJuIGltcG9ydCh1cmwpO1xufVxudmFyIGltcG9ydF9mcm9tX2ZpbGVfZGVmYXVsdCA9IGltcG9ydEZyb21GaWxlO1xuXG4vLyBzcmMvY29uZmlnL2xvYWQtZXh0ZXJuYWwtY29uZmlnLmpzXG52YXIgcmVxdWlyZUVycm9yQ29kZXNTaG91bGRCZUlnbm9yZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbXG4gIFwiTU9EVUxFX05PVF9GT1VORFwiLFxuICBcIkVSUl9SRVFVSVJFX0VTTVwiLFxuICBcIkVSUl9QQUNLQUdFX1BBVEhfTk9UX0VYUE9SVEVEXCJcbl0pO1xuYXN5bmMgZnVuY3Rpb24gbG9hZEV4dGVybmFsQ29uZmlnKGNvbmZpZywgZmlsZXBhdGgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZV9mcm9tX2ZpbGVfZGVmYXVsdChjb25maWcsIGZpbGVwYXRoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoIXJlcXVpcmVFcnJvckNvZGVzU2hvdWxkQmVJZ25vcmVkLmhhcyhlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IuY29kZSkpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnRfZnJvbV9maWxlX2RlZmF1bHQoY29uZmlnLCBmaWxlcGF0aCk7XG4gIHJldHVybiBtb2R1bGUuZGVmYXVsdDtcbn1cbnZhciBsb2FkX2V4dGVybmFsX2NvbmZpZ19kZWZhdWx0ID0gbG9hZEV4dGVybmFsQ29uZmlnO1xuXG4vLyBzcmMvY29uZmlnL2dldC1wcmV0dGllci1jb25maWctZXhwbG9yZXIuanNcbnZhciB7IGNvc21pY29uZmlnIH0gPSBtb2NrYWJsZTtcbnZhciBzZWFyY2hQbGFjZXMgPSBbXG4gIFwicGFja2FnZS5qc29uXCIsXG4gIFwiLnByZXR0aWVycmNcIixcbiAgXCIucHJldHRpZXJyYy5qc29uXCIsXG4gIFwiLnByZXR0aWVycmMueWFtbFwiLFxuICBcIi5wcmV0dGllcnJjLnltbFwiLFxuICBcIi5wcmV0dGllcnJjLmpzb241XCIsXG4gIFwiLnByZXR0aWVycmMuanNcIixcbiAgXCIucHJldHRpZXJyYy5tanNcIixcbiAgXCIucHJldHRpZXJyYy5janNcIixcbiAgXCJwcmV0dGllci5jb25maWcuanNcIixcbiAgXCJwcmV0dGllci5jb25maWcubWpzXCIsXG4gIFwicHJldHRpZXIuY29uZmlnLmNqc1wiLFxuICBcIi5wcmV0dGllcnJjLnRvbWxcIlxuXTtcbnZhciBsb2FkZXJzID0ge1xuICBhc3luYyBcIi50b21sXCIoZmlsZVBhdGgsIGNvbnRlbnQpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0ICgwLCBpbXBvcnRfcGFyc2VfYXN5bmMuZGVmYXVsdCkoY29udGVudCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVE9NTCBFcnJvciBpbiAke2ZpbGVQYXRofTpcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9LFxuICBcIi5qc29uNVwiKGZpbGVQYXRoLCBjb250ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoMCwgaW1wb3J0X3BhcnNlMy5kZWZhdWx0KShjb250ZW50KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBKU09ONSBFcnJvciBpbiAke2ZpbGVQYXRofTpcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59O1xuYXN5bmMgZnVuY3Rpb24gdHJhbnNmb3JtKHJlc3VsdCkge1xuICBpZiAoIShyZXN1bHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJlc3VsdC5jb25maWcpKSB7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBsZXQgeyBjb25maWcsIGZpbGVwYXRoIH0gPSByZXN1bHQ7XG4gIGlmICh0eXBlb2YgY29uZmlnID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uZmlnID0gYXdhaXQgbG9hZF9leHRlcm5hbF9jb25maWdfZGVmYXVsdChjb25maWcsIGZpbGVwYXRoKTtcbiAgICByZXN1bHQuY29uZmlnID0gY29uZmlnO1xuICB9XG4gIGlmICh0eXBlb2YgY29uZmlnICE9PSBcIm9iamVjdFwiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIGBDb25maWcgaXMgb25seSBhbGxvd2VkIHRvIGJlIGFuIG9iamVjdCwgYnV0IHJlY2VpdmVkICR7dHlwZW9mIGNvbmZpZ30gaW4gXCIke2ZpbGVwYXRofVwiYFxuICAgICk7XG4gIH1cbiAgZGVsZXRlIGNvbmZpZy4kc2NoZW1hO1xuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gZ2V0RXhwbG9yZXIob3B0aW9uczgpIHtcbiAgcmV0dXJuIGNvc21pY29uZmlnKFwicHJldHRpZXJcIiwge1xuICAgIGNhY2hlOiBvcHRpb25zOC5jYWNoZSxcbiAgICB0cmFuc2Zvcm0sXG4gICAgc2VhcmNoUGxhY2VzLFxuICAgIGxvYWRlcnNcbiAgfSk7XG59XG52YXIgZ2V0X3ByZXR0aWVyX2NvbmZpZ19leHBsb3Jlcl9kZWZhdWx0ID0gZ2V0RXhwbG9yZXI7XG5cbi8vIHNyYy9jb25maWcvcmVzb2x2ZS1jb25maWcuanNcbnZhciBnZXRQcmV0dGllckNvbmZpZ0V4cGxvcmVyID0gbWVtKGdldF9wcmV0dGllcl9jb25maWdfZXhwbG9yZXJfZGVmYXVsdCwge1xuICBjYWNoZUtleTogKFtvcHRpb25zOF0pID0+IG9wdGlvbnM4LmNhY2hlXG59KTtcbnZhciBtZW1vaXplZExvYWRFZGl0b3JDb25maWcgPSBtZW0ocmVzb2x2ZV9lZGl0b3Jjb25maWdfZGVmYXVsdCk7XG5mdW5jdGlvbiBjbGVhckNhY2hlKCkge1xuICBtZW1DbGVhcihnZXRQcmV0dGllckNvbmZpZ0V4cGxvcmVyKTtcbiAgbWVtQ2xlYXIobWVtb2l6ZWRMb2FkRWRpdG9yQ29uZmlnKTtcbn1cbmZ1bmN0aW9uIGxvYWRFZGl0b3JDb25maWcyKGZpbGVQYXRoLCBvcHRpb25zOCkge1xuICBpZiAoIWZpbGVQYXRoIHx8ICFvcHRpb25zOC5lZGl0b3Jjb25maWcpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgcmV0dXJuIChvcHRpb25zOC51c2VDYWNoZSA/IG1lbW9pemVkTG9hZEVkaXRvckNvbmZpZyA6IHJlc29sdmVfZWRpdG9yY29uZmlnX2RlZmF1bHQpKGZpbGVQYXRoKTtcbn1cbmZ1bmN0aW9uIGxvYWRQcmV0dGllckNvbmZpZyhmaWxlUGF0aCwgb3B0aW9uczgpIHtcbiAgY29uc3QgeyB1c2VDYWNoZSwgY29uZmlnOiBjb25maWdQYXRoIH0gPSBvcHRpb25zODtcbiAgY29uc3QgeyBsb2FkLCBzZWFyY2ggfSA9IGdldFByZXR0aWVyQ29uZmlnRXhwbG9yZXIoe1xuICAgIGNhY2hlOiBCb29sZWFuKHVzZUNhY2hlKVxuICB9KTtcbiAgcmV0dXJuIGNvbmZpZ1BhdGggPyBsb2FkKGNvbmZpZ1BhdGgpIDogc2VhcmNoKGZpbGVQYXRoKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVDb25maWcoZmlsZVBhdGgsIG9wdGlvbnM4KSB7XG4gIG9wdGlvbnM4ID0geyB1c2VDYWNoZTogdHJ1ZSwgLi4ub3B0aW9uczggfTtcbiAgY29uc3QgW3Jlc3VsdCwgZWRpdG9yQ29uZmlndXJlZF0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgbG9hZFByZXR0aWVyQ29uZmlnKGZpbGVQYXRoLCBvcHRpb25zOCksXG4gICAgbG9hZEVkaXRvckNvbmZpZzIoZmlsZVBhdGgsIG9wdGlvbnM4KVxuICBdKTtcbiAgaWYgKCFyZXN1bHQgJiYgIWVkaXRvckNvbmZpZ3VyZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBtZXJnZWQgPSB7XG4gICAgLi4uZWRpdG9yQ29uZmlndXJlZCxcbiAgICAuLi5tZXJnZU92ZXJyaWRlcyhyZXN1bHQsIGZpbGVQYXRoKVxuICB9O1xuICBpZiAoQXJyYXkuaXNBcnJheShtZXJnZWQucGx1Z2lucykpIHtcbiAgICBtZXJnZWQucGx1Z2lucyA9IG1lcmdlZC5wbHVnaW5zLm1hcChcbiAgICAgICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLnN0YXJ0c1dpdGgoXCIuXCIpID8gcGF0aDUucmVzb2x2ZShwYXRoNS5kaXJuYW1lKHJlc3VsdC5maWxlcGF0aCksIHZhbHVlKSA6IHZhbHVlXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbWVyZ2VkO1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNvbmZpZ0ZpbGUoZmlsZVBhdGgpIHtcbiAgY29uc3QgeyBzZWFyY2ggfSA9IGdldFByZXR0aWVyQ29uZmlnRXhwbG9yZXIoeyBjYWNoZTogZmFsc2UgfSk7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlYXJjaChmaWxlUGF0aCk7XG4gIHJldHVybiByZXN1bHQgPyByZXN1bHQuZmlsZXBhdGggOiBudWxsO1xufVxuZnVuY3Rpb24gbWVyZ2VPdmVycmlkZXMoY29uZmlnUmVzdWx0LCBmaWxlUGF0aCkge1xuICBjb25zdCB7IGNvbmZpZywgZmlsZXBhdGg6IGNvbmZpZ1BhdGggfSA9IGNvbmZpZ1Jlc3VsdCB8fCB7fTtcbiAgY29uc3QgeyBvdmVycmlkZXMsIC4uLm9wdGlvbnM4IH0gPSBjb25maWcgfHwge307XG4gIGlmIChmaWxlUGF0aCAmJiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCByZWxhdGl2ZUZpbGVQYXRoID0gcGF0aDUucmVsYXRpdmUocGF0aDUuZGlybmFtZShjb25maWdQYXRoKSwgZmlsZVBhdGgpO1xuICAgIGZvciAoY29uc3Qgb3ZlcnJpZGUgb2Ygb3ZlcnJpZGVzKSB7XG4gICAgICBpZiAocGF0aE1hdGNoZXNHbG9icyhcbiAgICAgICAgcmVsYXRpdmVGaWxlUGF0aCxcbiAgICAgICAgb3ZlcnJpZGUuZmlsZXMsXG4gICAgICAgIG92ZXJyaWRlLmV4Y2x1ZGVGaWxlc1xuICAgICAgKSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKG9wdGlvbnM4LCBvdmVycmlkZS5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnM4O1xufVxuZnVuY3Rpb24gcGF0aE1hdGNoZXNHbG9icyhmaWxlUGF0aCwgcGF0dGVybnMsIGV4Y2x1ZGVkUGF0dGVybnMpIHtcbiAgY29uc3QgcGF0dGVybkxpc3QgPSBBcnJheS5pc0FycmF5KHBhdHRlcm5zKSA/IHBhdHRlcm5zIDogW3BhdHRlcm5zXTtcbiAgY29uc3QgW3dpdGhTbGFzaGVzLCB3aXRob3V0U2xhc2hlc10gPSBwYXJ0aXRpb25fZGVmYXVsdChcbiAgICBwYXR0ZXJuTGlzdCxcbiAgICAocGF0dGVybikgPT4gcGF0dGVybi5pbmNsdWRlcyhcIi9cIilcbiAgKTtcbiAgcmV0dXJuIGltcG9ydF9taWNyb21hdGNoLmRlZmF1bHQuaXNNYXRjaChmaWxlUGF0aCwgd2l0aG91dFNsYXNoZXMsIHtcbiAgICBpZ25vcmU6IGV4Y2x1ZGVkUGF0dGVybnMsXG4gICAgYmFzZW5hbWU6IHRydWUsXG4gICAgZG90OiB0cnVlXG4gIH0pIHx8IGltcG9ydF9taWNyb21hdGNoLmRlZmF1bHQuaXNNYXRjaChmaWxlUGF0aCwgd2l0aFNsYXNoZXMsIHtcbiAgICBpZ25vcmU6IGV4Y2x1ZGVkUGF0dGVybnMsXG4gICAgYmFzZW5hbWU6IGZhbHNlLFxuICAgIGRvdDogdHJ1ZVxuICB9KTtcbn1cblxuLy8gc3JjL3V0aWxzL2lnbm9yZS5qc1xudmFyIGltcG9ydF9pZ25vcmUgPSBfX3RvRVNNKHJlcXVpcmVfaWdub3JlKCksIDEpO1xuaW1wb3J0IHBhdGg2IGZyb20gXCJwYXRoXCI7XG5cbi8vIHNyYy91dGlscy9yZWFkLWZpbGUuanNcbmltcG9ydCBmczQgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5hc3luYyBmdW5jdGlvbiByZWFkRmlsZShmaWxlbmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmczQucmVhZEZpbGUoZmlsZW5hbWUsIFwidXRmOFwiKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IuY29kZSA9PT0gXCJFTk9FTlRcIikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byByZWFkICcke2ZpbGVuYW1lfSc6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufVxudmFyIHJlYWRfZmlsZV9kZWZhdWx0ID0gcmVhZEZpbGU7XG5cbi8vIHNyYy91dGlscy9pZ25vcmUuanNcbnZhciBjcmVhdGVJZ25vcmUgPSBpbXBvcnRfaWdub3JlLmRlZmF1bHQuZGVmYXVsdDtcbnZhciBzbGFzaCA9IHBhdGg2LnNlcCA9PT0gXCJcXFxcXCIgPyAoZmlsZXBhdGgpID0+IHN0cmluZ19yZXBsYWNlX2FsbF9kZWZhdWx0KFxuICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgZmFsc2UsXG4gIGZpbGVwYXRoLFxuICBcIlxcXFxcIixcbiAgXCIvXCJcbikgOiAoZmlsZXBhdGgpID0+IGZpbGVwYXRoO1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2luZ2xlSXNJZ25vcmVkRnVuY3Rpb24oaWdub3JlRmlsZVBhdGgsIHdpdGhOb2RlTW9kdWxlcykge1xuICBsZXQgY29udGVudCA9IFwiXCI7XG4gIGlmIChpZ25vcmVGaWxlUGF0aCkge1xuICAgIGNvbnRlbnQgKz0gYXdhaXQgcmVhZF9maWxlX2RlZmF1bHQoaWdub3JlRmlsZVBhdGgpID8/IFwiXCI7XG4gIH1cbiAgaWYgKCF3aXRoTm9kZU1vZHVsZXMpIHtcbiAgICBjb250ZW50ICs9IFwiXFxubm9kZV9tb2R1bGVzXCI7XG4gIH1cbiAgaWYgKCFjb250ZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGlnbm9yZSA9IGNyZWF0ZUlnbm9yZSh7XG4gICAgYWxsb3dSZWxhdGl2ZVBhdGhzOiB0cnVlXG4gIH0pLmFkZChjb250ZW50KTtcbiAgcmV0dXJuIChmaWxlcGF0aCkgPT4ge1xuICAgIGZpbGVwYXRoID0gcGF0aDYucmVzb2x2ZShmaWxlcGF0aCk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gaWdub3JlRmlsZVBhdGggPyBwYXRoNi5yZWxhdGl2ZShwYXRoNi5kaXJuYW1lKGlnbm9yZUZpbGVQYXRoKSwgZmlsZXBhdGgpIDogcGF0aDYucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZXBhdGgpO1xuICAgIHJldHVybiBpZ25vcmUuaWdub3JlcyhzbGFzaChyZWxhdGl2ZVBhdGgpKTtcbiAgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUlzSWdub3JlZEZ1bmN0aW9uKGlnbm9yZUZpbGVQYXRocywgd2l0aE5vZGVNb2R1bGVzKSB7XG4gIGlmIChpZ25vcmVGaWxlUGF0aHMubGVuZ3RoID09PSAwICYmICF3aXRoTm9kZU1vZHVsZXMpIHtcbiAgICBpZ25vcmVGaWxlUGF0aHMgPSBbdm9pZCAwXTtcbiAgfVxuICBjb25zdCBpc0lnbm9yZWRGdW5jdGlvbnMgPSAoYXdhaXQgUHJvbWlzZS5hbGwoaWdub3JlRmlsZVBhdGhzLm1hcCgoaWdub3JlRmlsZVBhdGgpID0+IGNyZWF0ZVNpbmdsZUlzSWdub3JlZEZ1bmN0aW9uKGlnbm9yZUZpbGVQYXRoLCB3aXRoTm9kZU1vZHVsZXMpKSkpLmZpbHRlcihCb29sZWFuKTtcbiAgcmV0dXJuIChmaWxlcGF0aCkgPT4gaXNJZ25vcmVkRnVuY3Rpb25zLnNvbWUoKGlzSWdub3JlZDIpID0+IGlzSWdub3JlZDIoZmlsZXBhdGgpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGlzSWdub3JlZChmaWxlcGF0aCwgb3B0aW9uczgpIHtcbiAgY29uc3Qge1xuICAgIGlnbm9yZVBhdGgsXG4gICAgd2l0aE5vZGVNb2R1bGVzXG4gIH0gPSBvcHRpb25zODtcbiAgY29uc3QgaXNJZ25vcmVkMiA9IGF3YWl0IGNyZWF0ZUlzSWdub3JlZEZ1bmN0aW9uKGlnbm9yZVBhdGgsIHdpdGhOb2RlTW9kdWxlcyk7XG4gIHJldHVybiBpc0lnbm9yZWQyKGZpbGVwYXRoKTtcbn1cblxuLy8gc3JjL2NvbW1vbi9nZXQtZmlsZS1pbmZvLmpzXG5hc3luYyBmdW5jdGlvbiBnZXRGaWxlSW5mbyhmaWxlUGF0aCwgb3B0aW9uczgpIHtcbiAgaWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJzdHJpbmdcIikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBgZXhwZWN0IFxcYGZpbGVQYXRoXFxgIHRvIGJlIGEgc3RyaW5nLCBnb3QgXFxgJHt0eXBlb2YgZmlsZVBhdGh9XFxgYFxuICAgICk7XG4gIH1cbiAgbGV0IHsgaWdub3JlUGF0aCwgd2l0aE5vZGVNb2R1bGVzIH0gPSBvcHRpb25zODtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGlnbm9yZVBhdGgpKSB7XG4gICAgaWdub3JlUGF0aCA9IFtpZ25vcmVQYXRoXTtcbiAgfVxuICBjb25zdCBpZ25vcmVkID0gYXdhaXQgaXNJZ25vcmVkKGZpbGVQYXRoLCB7IGlnbm9yZVBhdGgsIHdpdGhOb2RlTW9kdWxlcyB9KTtcbiAgbGV0IGluZmVycmVkUGFyc2VyO1xuICBpZiAoIWlnbm9yZWQpIHtcbiAgICBpbmZlcnJlZFBhcnNlciA9IGF3YWl0IGdldFBhcnNlcihmaWxlUGF0aCwgb3B0aW9uczgpO1xuICB9XG4gIHJldHVybiB7XG4gICAgaWdub3JlZCxcbiAgICBpbmZlcnJlZFBhcnNlcjogaW5mZXJyZWRQYXJzZXIgPz8gbnVsbFxuICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0UGFyc2VyKGZpbGVQYXRoLCBvcHRpb25zOCkge1xuICBsZXQgY29uZmlnO1xuICBpZiAob3B0aW9uczgucmVzb2x2ZUNvbmZpZyAhPT0gZmFsc2UpIHtcbiAgICBjb25maWcgPSBhd2FpdCByZXNvbHZlQ29uZmlnKGZpbGVQYXRoKTtcbiAgfVxuICByZXR1cm4gKGNvbmZpZyA9PSBudWxsID8gdm9pZCAwIDogY29uZmlnLnBhcnNlcikgPz8gaW5mZXJfcGFyc2VyX2RlZmF1bHQob3B0aW9uczgsIHsgcGh5c2ljYWxGaWxlOiBmaWxlUGF0aCB9KTtcbn1cbnZhciBnZXRfZmlsZV9pbmZvX2RlZmF1bHQgPSBnZXRGaWxlSW5mbztcblxuLy8gc3JjL21haW4vcGx1Z2lucy9sb2FkLXBsdWdpbi5qc1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCBhcyBwYXRoVG9GaWxlVVJMMyB9IGZyb20gXCJ1cmxcIjtcbmltcG9ydCBwYXRoOCBmcm9tIFwicGF0aFwiO1xuXG4vLyBzcmMvdXRpbHMvaW1wb3J0LWZyb20tZGlyZWN0b3J5LmpzXG5pbXBvcnQgcGF0aDcgZnJvbSBcInBhdGhcIjtcbmZ1bmN0aW9uIGltcG9ydEZyb21EaXJlY3Rvcnkoc3BlY2lmaWVyLCBkaXJlY3RvcnkpIHtcbiAgcmV0dXJuIGltcG9ydF9mcm9tX2ZpbGVfZGVmYXVsdChzcGVjaWZpZXIsIHBhdGg3LmpvaW4oZGlyZWN0b3J5LCBcIm5vb3AuanNcIikpO1xufVxudmFyIGltcG9ydF9mcm9tX2RpcmVjdG9yeV9kZWZhdWx0ID0gaW1wb3J0RnJvbURpcmVjdG9yeTtcblxuLy8gc3JjL21haW4vcGx1Z2lucy9sb2FkLXBsdWdpbi5qc1xuZnVuY3Rpb24gbm9ybWFsaXplUGx1Z2luKHBsdWdpbkluc3RhbmNlT2ZQbHVnaW5Nb2R1bGUsIG5hbWUpIHtcbiAgY29uc3QgcGx1Z2luID0gcGx1Z2luSW5zdGFuY2VPZlBsdWdpbk1vZHVsZS5kZWZhdWx0ID8/IHBsdWdpbkluc3RhbmNlT2ZQbHVnaW5Nb2R1bGU7XG4gIHJldHVybiB7IG5hbWUsIC4uLnBsdWdpbiB9O1xufVxudmFyIGxvYWRQbHVnaW5Gcm9tRGlyZWN0b3J5ID0gbWVtKFxuICBhc3luYyAobmFtZSwgZGlyZWN0b3J5KSA9PiBub3JtYWxpemVQbHVnaW4oYXdhaXQgaW1wb3J0X2Zyb21fZGlyZWN0b3J5X2RlZmF1bHQobmFtZSwgZGlyZWN0b3J5KSwgbmFtZSksXG4gIHsgY2FjaGVLZXk6IEpTT04uc3RyaW5naWZ5IH1cbik7XG52YXIgaW1wb3J0UGx1Z2luID0gbWVtKGFzeW5jIChuYW1lKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGltcG9ydChwYXRoVG9GaWxlVVJMMyhwYXRoOC5yZXNvbHZlKG5hbWUpKS5ocmVmKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGltcG9ydF9mcm9tX2RpcmVjdG9yeV9kZWZhdWx0KG5hbWUsIHByb2Nlc3MuY3dkKCkpO1xuICB9XG59KTtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRQbHVnaW4ocGx1Z2luKSB7XG4gIGlmICh0eXBlb2YgcGx1Z2luID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBsdWdpbihhd2FpdCBpbXBvcnRQbHVnaW4ocGx1Z2luKSwgcGx1Z2luKTtcbiAgfVxuICByZXR1cm4gcGx1Z2luO1xufVxuZnVuY3Rpb24gY2xlYXJDYWNoZTIoKSB7XG4gIG1lbUNsZWFyKGxvYWRQbHVnaW5Gcm9tRGlyZWN0b3J5KTtcbiAgbWVtQ2xlYXIoaW1wb3J0UGx1Z2luKTtcbn1cblxuLy8gc3JjL3BsdWdpbnMvYnVpbHRpbi1wbHVnaW5zLXByb3h5LmpzXG52YXIgYnVpbHRpbl9wbHVnaW5zX3Byb3h5X2V4cG9ydHMgPSB7fTtcbl9fZXhwb3J0KGJ1aWx0aW5fcGx1Z2luc19wcm94eV9leHBvcnRzLCB7XG4gIGxhbmd1YWdlczogKCkgPT4gbGFuZ3VhZ2VzLFxuICBvcHRpb25zOiAoKSA9PiBvcHRpb25zNyxcbiAgcGFyc2VyczogKCkgPT4gcGFyc2VycyxcbiAgcHJpbnRlcnM6ICgpID0+IHByaW50ZXJzXG59KTtcblxuLy8gc3JjL2NvbW1vbi9jb21tb24tb3B0aW9ucy5ldmFsdWF0ZS5qc1xudmFyIGNvbW1vbl9vcHRpb25zX2V2YWx1YXRlX2RlZmF1bHQgPSB7XG4gIFwiYnJhY2tldFNwYWNpbmdcIjoge1xuICAgIFwiY2F0ZWdvcnlcIjogXCJDb21tb25cIixcbiAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgXCJkZWZhdWx0XCI6IHRydWUsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIlByaW50IHNwYWNlcyBiZXR3ZWVuIGJyYWNrZXRzLlwiLFxuICAgIFwib3Bwb3NpdGVEZXNjcmlwdGlvblwiOiBcIkRvIG5vdCBwcmludCBzcGFjZXMgYmV0d2VlbiBicmFja2V0cy5cIlxuICB9LFxuICBcInNpbmdsZVF1b3RlXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiQ29tbW9uXCIsXG4gICAgXCJ0eXBlXCI6IFwiYm9vbGVhblwiLFxuICAgIFwiZGVmYXVsdFwiOiBmYWxzZSxcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiVXNlIHNpbmdsZSBxdW90ZXMgaW5zdGVhZCBvZiBkb3VibGUgcXVvdGVzLlwiXG4gIH0sXG4gIFwicHJvc2VXcmFwXCI6IHtcbiAgICBcImNhdGVnb3J5XCI6IFwiQ29tbW9uXCIsXG4gICAgXCJ0eXBlXCI6IFwiY2hvaWNlXCIsXG4gICAgXCJkZWZhdWx0XCI6IFwicHJlc2VydmVcIixcbiAgICBcImRlc2NyaXB0aW9uXCI6IFwiSG93IHRvIHdyYXAgcHJvc2UuXCIsXG4gICAgXCJjaG9pY2VzXCI6IFtcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcImFsd2F5c1wiLFxuICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiV3JhcCBwcm9zZSBpZiBpdCBleGNlZWRzIHRoZSBwcmludCB3aWR0aC5cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcIm5ldmVyXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJEbyBub3Qgd3JhcCBwcm9zZS5cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgXCJ2YWx1ZVwiOiBcInByZXNlcnZlXCIsXG4gICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJXcmFwIHByb3NlIGFzLWlzLlwiXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBcImJyYWNrZXRTYW1lTGluZVwiOiB7XG4gICAgXCJjYXRlZ29yeVwiOiBcIkNvbW1vblwiLFxuICAgIFwidHlwZVwiOiBcImJvb2xlYW5cIixcbiAgICBcImRlZmF1bHRcIjogZmFsc2UsXG4gICAgXCJkZXNjcmlwdGlvblwiOiBcIlB1dCA+IG9mIG9wZW5pbmcgdGFncyBvbiB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2Ygb24gYSBuZXcgbGluZS5cIlxuICB9LFxuICBcInNpbmdsZUF0dHJpYnV0ZVBlckxpbmVcIjoge1xuICAgIFwiY2F0ZWdvcnlcIjogXCJDb21tb25cIixcbiAgICBcInR5cGVcIjogXCJib29sZWFuXCIsXG4gICAgXCJkZWZhdWx0XCI6IGZhbHNlLFxuICAgIFwiZGVzY3JpcHRpb25cIjogXCJFbmZvcmNlIHNpbmdsZSBhdHRyaWJ1dGUgcGVyIGxpbmUgaW4gSFRNTCwgVnVlIGFuZCBKU1guXCJcbiAgfVxufTtcblxuLy8gc3JjL2xhbmd1YWdlLWNzcy9vcHRpb25zLmpzXG52YXIgb3B0aW9ucyA9IHtcbiAgc2luZ2xlUXVvdGU6IGNvbW1vbl9vcHRpb25zX2V2YWx1YXRlX2RlZmF1bHQuc2luZ2xlUXVvdGVcbn07XG52YXIgb3B0aW9uc19kZWZhdWx0ID0gb3B0aW9ucztcblxuLy8gc3JjL2xhbmd1YWdlLWNzcy9sYW5ndWFnZXMuZXZhbHVhdGUuanNcbnZhciBsYW5ndWFnZXNfZXZhbHVhdGVfZGVmYXVsdCA9IFtcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDUwLFxuICAgIFwibmFtZVwiOiBcIkNTU1wiLFxuICAgIFwidHlwZVwiOiBcIm1hcmt1cFwiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS5jc3NcIixcbiAgICBcImFjZU1vZGVcIjogXCJjc3NcIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiY3NzXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L2Nzc1wiLFxuICAgIFwiY29sb3JcIjogXCIjNTYzZDdjXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLmNzc1wiLFxuICAgICAgXCIud3hzc1wiXG4gICAgXSxcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJjc3NcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImNzc1wiXG4gICAgXVxuICB9LFxuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogMjYyNzY0NDM3LFxuICAgIFwibmFtZVwiOiBcIlBvc3RDU1NcIixcbiAgICBcInR5cGVcIjogXCJtYXJrdXBcIixcbiAgICBcImNvbG9yXCI6IFwiI2RjM2EwY1wiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS5wb3N0Y3NzXCIsXG4gICAgXCJncm91cFwiOiBcIkNTU1wiLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi5wY3NzXCIsXG4gICAgICBcIi5wb3N0Y3NzXCJcbiAgICBdLFxuICAgIFwiYWNlTW9kZVwiOiBcInRleHRcIixcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJjc3NcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcInBvc3Rjc3NcIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE5OCxcbiAgICBcIm5hbWVcIjogXCJMZXNzXCIsXG4gICAgXCJ0eXBlXCI6IFwibWFya3VwXCIsXG4gICAgXCJjb2xvclwiOiBcIiMxZDM2NWRcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJsZXNzLWNzc1wiXG4gICAgXSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIubGVzc1wiXG4gICAgXSxcbiAgICBcInRtU2NvcGVcIjogXCJzb3VyY2UuY3NzLmxlc3NcIixcbiAgICBcImFjZU1vZGVcIjogXCJsZXNzXCIsXG4gICAgXCJjb2RlbWlycm9yTW9kZVwiOiBcImNzc1wiLFxuICAgIFwiY29kZW1pcnJvck1pbWVUeXBlXCI6IFwidGV4dC9jc3NcIixcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJsZXNzXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJsZXNzXCJcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiAzMjksXG4gICAgXCJuYW1lXCI6IFwiU0NTU1wiLFxuICAgIFwidHlwZVwiOiBcIm1hcmt1cFwiLFxuICAgIFwiY29sb3JcIjogXCIjYzY1MzhjXCIsXG4gICAgXCJ0bVNjb3BlXCI6IFwic291cmNlLmNzcy5zY3NzXCIsXG4gICAgXCJhY2VNb2RlXCI6IFwic2Nzc1wiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJjc3NcIixcbiAgICBcImNvZGVtaXJyb3JNaW1lVHlwZVwiOiBcInRleHQveC1zY3NzXCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLnNjc3NcIlxuICAgIF0sXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwic2Nzc1wiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwic2Nzc1wiXG4gICAgXVxuICB9XG5dO1xuXG4vLyBzcmMvbGFuZ3VhZ2UtZ3JhcGhxbC9vcHRpb25zLmpzXG52YXIgb3B0aW9uczIgPSB7XG4gIGJyYWNrZXRTcGFjaW5nOiBjb21tb25fb3B0aW9uc19ldmFsdWF0ZV9kZWZhdWx0LmJyYWNrZXRTcGFjaW5nXG59O1xudmFyIG9wdGlvbnNfZGVmYXVsdDIgPSBvcHRpb25zMjtcblxuLy8gc3JjL2xhbmd1YWdlLWdyYXBocWwvbGFuZ3VhZ2VzLmV2YWx1YXRlLmpzXG52YXIgbGFuZ3VhZ2VzX2V2YWx1YXRlX2RlZmF1bHQyID0gW1xuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogMTM5LFxuICAgIFwibmFtZVwiOiBcIkdyYXBoUUxcIixcbiAgICBcInR5cGVcIjogXCJkYXRhXCIsXG4gICAgXCJjb2xvclwiOiBcIiNlMTAwOThcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIuZ3JhcGhxbFwiLFxuICAgICAgXCIuZ3FsXCIsXG4gICAgICBcIi5ncmFwaHFsc1wiXG4gICAgXSxcbiAgICBcInRtU2NvcGVcIjogXCJzb3VyY2UuZ3JhcGhxbFwiLFxuICAgIFwiYWNlTW9kZVwiOiBcInRleHRcIixcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJncmFwaHFsXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJncmFwaHFsXCJcbiAgICBdXG4gIH1cbl07XG5cbi8vIHNyYy9sYW5ndWFnZS1oYW5kbGViYXJzL2xhbmd1YWdlcy5ldmFsdWF0ZS5qc1xudmFyIGxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0MyA9IFtcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE1NSxcbiAgICBcIm5hbWVcIjogXCJIYW5kbGViYXJzXCIsXG4gICAgXCJ0eXBlXCI6IFwibWFya3VwXCIsXG4gICAgXCJjb2xvclwiOiBcIiNmNzkzMWVcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJoYnNcIixcbiAgICAgIFwiaHRtbGJhcnNcIlxuICAgIF0sXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLmhhbmRsZWJhcnNcIixcbiAgICAgIFwiLmhic1wiXG4gICAgXSxcbiAgICBcInRtU2NvcGVcIjogXCJ0ZXh0Lmh0bWwuaGFuZGxlYmFyc1wiLFxuICAgIFwiYWNlTW9kZVwiOiBcImhhbmRsZWJhcnNcIixcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJnbGltbWVyXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJoYW5kbGViYXJzXCJcbiAgICBdXG4gIH1cbl07XG5cbi8vIHNyYy9sYW5ndWFnZS1odG1sL29wdGlvbnMuanNcbnZhciBDQVRFR09SWV9IVE1MID0gXCJIVE1MXCI7XG52YXIgb3B0aW9uczMgPSB7XG4gIGJyYWNrZXRTYW1lTGluZTogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5icmFja2V0U2FtZUxpbmUsXG4gIGh0bWxXaGl0ZXNwYWNlU2Vuc2l0aXZpdHk6IHtcbiAgICBjYXRlZ29yeTogQ0FURUdPUllfSFRNTCxcbiAgICB0eXBlOiBcImNob2ljZVwiLFxuICAgIGRlZmF1bHQ6IFwiY3NzXCIsXG4gICAgZGVzY3JpcHRpb246IFwiSG93IHRvIGhhbmRsZSB3aGl0ZXNwYWNlcyBpbiBIVE1MLlwiLFxuICAgIGNob2ljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IFwiY3NzXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJlc3BlY3QgdGhlIGRlZmF1bHQgdmFsdWUgb2YgQ1NTIGRpc3BsYXkgcHJvcGVydHkuXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBcInN0cmljdFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJXaGl0ZXNwYWNlcyBhcmUgY29uc2lkZXJlZCBzZW5zaXRpdmUuXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBcImlnbm9yZVwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJXaGl0ZXNwYWNlcyBhcmUgY29uc2lkZXJlZCBpbnNlbnNpdGl2ZS5cIlxuICAgICAgfVxuICAgIF1cbiAgfSxcbiAgc2luZ2xlQXR0cmlidXRlUGVyTGluZTogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5zaW5nbGVBdHRyaWJ1dGVQZXJMaW5lLFxuICB2dWVJbmRlbnRTY3JpcHRBbmRTdHlsZToge1xuICAgIGNhdGVnb3J5OiBDQVRFR09SWV9IVE1MLFxuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkluZGVudCBzY3JpcHQgYW5kIHN0eWxlIHRhZ3MgaW4gVnVlIGZpbGVzLlwiXG4gIH1cbn07XG52YXIgb3B0aW9uc19kZWZhdWx0MyA9IG9wdGlvbnMzO1xuXG4vLyBzcmMvbGFuZ3VhZ2UtaHRtbC9sYW5ndWFnZXMuZXZhbHVhdGUuanNcbnZhciBsYW5ndWFnZXNfZXZhbHVhdGVfZGVmYXVsdDQgPSBbXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiAxNDYsXG4gICAgXCJuYW1lXCI6IFwiQW5ndWxhclwiLFxuICAgIFwidHlwZVwiOiBcIm1hcmt1cFwiLFxuICAgIFwidG1TY29wZVwiOiBcInRleHQuaHRtbC5iYXNpY1wiLFxuICAgIFwiYWNlTW9kZVwiOiBcImh0bWxcIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiaHRtbG1peGVkXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L2h0bWxcIixcbiAgICBcImNvbG9yXCI6IFwiI2UzNGMyNlwiLFxuICAgIFwiYWxpYXNlc1wiOiBbXG4gICAgICBcInhodG1sXCJcbiAgICBdLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi5jb21wb25lbnQuaHRtbFwiXG4gICAgXSxcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJhbmd1bGFyXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJodG1sXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtdXG4gIH0sXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiAxNDYsXG4gICAgXCJuYW1lXCI6IFwiSFRNTFwiLFxuICAgIFwidHlwZVwiOiBcIm1hcmt1cFwiLFxuICAgIFwidG1TY29wZVwiOiBcInRleHQuaHRtbC5iYXNpY1wiLFxuICAgIFwiYWNlTW9kZVwiOiBcImh0bWxcIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiaHRtbG1peGVkXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L2h0bWxcIixcbiAgICBcImNvbG9yXCI6IFwiI2UzNGMyNlwiLFxuICAgIFwiYWxpYXNlc1wiOiBbXG4gICAgICBcInhodG1sXCJcbiAgICBdLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi5odG1sXCIsXG4gICAgICBcIi5odGFcIixcbiAgICAgIFwiLmh0bVwiLFxuICAgICAgXCIuaHRtbC5obFwiLFxuICAgICAgXCIuaW5jXCIsXG4gICAgICBcIi54aHRcIixcbiAgICAgIFwiLnhodG1sXCIsXG4gICAgICBcIi5tam1sXCJcbiAgICBdLFxuICAgIFwicGFyc2Vyc1wiOiBbXG4gICAgICBcImh0bWxcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImh0bWxcIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE0NixcbiAgICBcIm5hbWVcIjogXCJMaWdodG5pbmcgV2ViIENvbXBvbmVudHNcIixcbiAgICBcInR5cGVcIjogXCJtYXJrdXBcIixcbiAgICBcInRtU2NvcGVcIjogXCJ0ZXh0Lmh0bWwuYmFzaWNcIixcbiAgICBcImFjZU1vZGVcIjogXCJodG1sXCIsXG4gICAgXCJjb2RlbWlycm9yTW9kZVwiOiBcImh0bWxtaXhlZFwiLFxuICAgIFwiY29kZW1pcnJvck1pbWVUeXBlXCI6IFwidGV4dC9odG1sXCIsXG4gICAgXCJjb2xvclwiOiBcIiNlMzRjMjZcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJ4aHRtbFwiXG4gICAgXSxcbiAgICBcImV4dGVuc2lvbnNcIjogW10sXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwibHdjXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJodG1sXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtdXG4gIH0sXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiAzOTEsXG4gICAgXCJuYW1lXCI6IFwiVnVlXCIsXG4gICAgXCJ0eXBlXCI6IFwibWFya3VwXCIsXG4gICAgXCJjb2xvclwiOiBcIiM0MWI4ODNcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIudnVlXCJcbiAgICBdLFxuICAgIFwidG1TY29wZVwiOiBcInRleHQuaHRtbC52dWVcIixcbiAgICBcImFjZU1vZGVcIjogXCJodG1sXCIsXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwidnVlXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJ2dWVcIlxuICAgIF1cbiAgfVxuXTtcblxuLy8gc3JjL2xhbmd1YWdlLWpzL29wdGlvbnMuanNcbnZhciBDQVRFR09SWV9KQVZBU0NSSVBUID0gXCJKYXZhU2NyaXB0XCI7XG52YXIgb3B0aW9uczQgPSB7XG4gIGFycm93UGFyZW5zOiB7XG4gICAgY2F0ZWdvcnk6IENBVEVHT1JZX0pBVkFTQ1JJUFQsXG4gICAgdHlwZTogXCJjaG9pY2VcIixcbiAgICBkZWZhdWx0OiBcImFsd2F5c1wiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkluY2x1ZGUgcGFyZW50aGVzZXMgYXJvdW5kIGEgc29sZSBhcnJvdyBmdW5jdGlvbiBwYXJhbWV0ZXIuXCIsXG4gICAgY2hvaWNlczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogXCJhbHdheXNcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQWx3YXlzIGluY2x1ZGUgcGFyZW5zLiBFeGFtcGxlOiBgKHgpID0+IHhgXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBcImF2b2lkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk9taXQgcGFyZW5zIHdoZW4gcG9zc2libGUuIEV4YW1wbGU6IGB4ID0+IHhgXCJcbiAgICAgIH1cbiAgICBdXG4gIH0sXG4gIGJyYWNrZXRTYW1lTGluZTogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5icmFja2V0U2FtZUxpbmUsXG4gIGJyYWNrZXRTcGFjaW5nOiBjb21tb25fb3B0aW9uc19ldmFsdWF0ZV9kZWZhdWx0LmJyYWNrZXRTcGFjaW5nLFxuICBqc3hCcmFja2V0U2FtZUxpbmU6IHtcbiAgICBjYXRlZ29yeTogQ0FURUdPUllfSkFWQVNDUklQVCxcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZXNjcmlwdGlvbjogXCJQdXQgPiBvbiB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2YgYXQgYSBuZXcgbGluZS5cIixcbiAgICBkZXByZWNhdGVkOiBcIjIuNC4wXCJcbiAgfSxcbiAgc2VtaToge1xuICAgIGNhdGVnb3J5OiBDQVRFR09SWV9KQVZBU0NSSVBULFxuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiUHJpbnQgc2VtaWNvbG9ucy5cIixcbiAgICBvcHBvc2l0ZURlc2NyaXB0aW9uOiBcIkRvIG5vdCBwcmludCBzZW1pY29sb25zLCBleGNlcHQgYXQgdGhlIGJlZ2lubmluZyBvZiBsaW5lcyB3aGljaCBtYXkgbmVlZCB0aGVtLlwiXG4gIH0sXG4gIHNpbmdsZVF1b3RlOiBjb21tb25fb3B0aW9uc19ldmFsdWF0ZV9kZWZhdWx0LnNpbmdsZVF1b3RlLFxuICBqc3hTaW5nbGVRdW90ZToge1xuICAgIGNhdGVnb3J5OiBDQVRFR09SWV9KQVZBU0NSSVBULFxuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlVzZSBzaW5nbGUgcXVvdGVzIGluIEpTWC5cIlxuICB9LFxuICBxdW90ZVByb3BzOiB7XG4gICAgY2F0ZWdvcnk6IENBVEVHT1JZX0pBVkFTQ1JJUFQsXG4gICAgdHlwZTogXCJjaG9pY2VcIixcbiAgICBkZWZhdWx0OiBcImFzLW5lZWRlZFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIkNoYW5nZSB3aGVuIHByb3BlcnRpZXMgaW4gb2JqZWN0cyBhcmUgcXVvdGVkLlwiLFxuICAgIGNob2ljZXM6IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IFwiYXMtbmVlZGVkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIk9ubHkgYWRkIHF1b3RlcyBhcm91bmQgb2JqZWN0IHByb3BlcnRpZXMgd2hlcmUgcmVxdWlyZWQuXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBcImNvbnNpc3RlbnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiSWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGluIGFuIG9iamVjdCByZXF1aXJlcyBxdW90ZXMsIHF1b3RlIGFsbCBwcm9wZXJ0aWVzLlwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogXCJwcmVzZXJ2ZVwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJSZXNwZWN0IHRoZSBpbnB1dCB1c2Ugb2YgcXVvdGVzIGluIG9iamVjdCBwcm9wZXJ0aWVzLlwiXG4gICAgICB9XG4gICAgXVxuICB9LFxuICB0cmFpbGluZ0NvbW1hOiB7XG4gICAgY2F0ZWdvcnk6IENBVEVHT1JZX0pBVkFTQ1JJUFQsXG4gICAgdHlwZTogXCJjaG9pY2VcIixcbiAgICBkZWZhdWx0OiBcImFsbFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRyYWlsaW5nIGNvbW1hcyB3aGVyZXZlciBwb3NzaWJsZSB3aGVuIG11bHRpLWxpbmUuXCIsXG4gICAgY2hvaWNlczogW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogXCJhbGxcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVHJhaWxpbmcgY29tbWFzIHdoZXJldmVyIHBvc3NpYmxlIChpbmNsdWRpbmcgZnVuY3Rpb24gYXJndW1lbnRzKS5cIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IFwiZXM1XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRyYWlsaW5nIGNvbW1hcyB3aGVyZSB2YWxpZCBpbiBFUzUgKG9iamVjdHMsIGFycmF5cywgZXRjLilcIlxuICAgICAgfSxcbiAgICAgIHsgdmFsdWU6IFwibm9uZVwiLCBkZXNjcmlwdGlvbjogXCJObyB0cmFpbGluZyBjb21tYXMuXCIgfVxuICAgIF1cbiAgfSxcbiAgc2luZ2xlQXR0cmlidXRlUGVyTGluZTogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5zaW5nbGVBdHRyaWJ1dGVQZXJMaW5lXG59O1xudmFyIG9wdGlvbnNfZGVmYXVsdDQgPSBvcHRpb25zNDtcblxuLy8gc3JjL2xhbmd1YWdlLWpzL2xhbmd1YWdlcy5ldmFsdWF0ZS5qc1xudmFyIGxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0NSA9IFtcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE4MyxcbiAgICBcIm5hbWVcIjogXCJKYXZhU2NyaXB0XCIsXG4gICAgXCJ0eXBlXCI6IFwicHJvZ3JhbW1pbmdcIixcbiAgICBcInRtU2NvcGVcIjogXCJzb3VyY2UuanNcIixcbiAgICBcImFjZU1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTW9kZVwiOiBcImphdmFzY3JpcHRcIixcbiAgICBcImNvZGVtaXJyb3JNaW1lVHlwZVwiOiBcInRleHQvamF2YXNjcmlwdFwiLFxuICAgIFwiY29sb3JcIjogXCIjZjFlMDVhXCIsXG4gICAgXCJhbGlhc2VzXCI6IFtcbiAgICAgIFwianNcIixcbiAgICAgIFwibm9kZVwiXG4gICAgXSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIuanNcIixcbiAgICAgIFwiLl9qc1wiLFxuICAgICAgXCIuYm9uZXNcIixcbiAgICAgIFwiLmNqc1wiLFxuICAgICAgXCIuZXNcIixcbiAgICAgIFwiLmVzNlwiLFxuICAgICAgXCIuZnJhZ1wiLFxuICAgICAgXCIuZ3NcIixcbiAgICAgIFwiLmpha2VcIixcbiAgICAgIFwiLmphdmFzY3JpcHRcIixcbiAgICAgIFwiLmpzYlwiLFxuICAgICAgXCIuanNjYWRcIixcbiAgICAgIFwiLmpzZmxcIixcbiAgICAgIFwiLmpzbGliXCIsXG4gICAgICBcIi5qc21cIixcbiAgICAgIFwiLmpzcHJlXCIsXG4gICAgICBcIi5qc3NcIixcbiAgICAgIFwiLm1qc1wiLFxuICAgICAgXCIubmpzXCIsXG4gICAgICBcIi5wYWNcIixcbiAgICAgIFwiLnNqc1wiLFxuICAgICAgXCIuc3Nqc1wiLFxuICAgICAgXCIueHNqc1wiLFxuICAgICAgXCIueHNqc2xpYlwiLFxuICAgICAgXCIud3hzXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtcbiAgICAgIFwiSmFrZWZpbGVcIlxuICAgIF0sXG4gICAgXCJpbnRlcnByZXRlcnNcIjogW1xuICAgICAgXCJjaGFrcmFcIixcbiAgICAgIFwiZDhcIixcbiAgICAgIFwiZ2pzXCIsXG4gICAgICBcImpzXCIsXG4gICAgICBcIm5vZGVcIixcbiAgICAgIFwibm9kZWpzXCIsXG4gICAgICBcInFqc1wiLFxuICAgICAgXCJyaGlub1wiLFxuICAgICAgXCJ2OFwiLFxuICAgICAgXCJ2OC1zaGVsbFwiLFxuICAgICAgXCJ6eFwiXG4gICAgXSxcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJiYWJlbFwiLFxuICAgICAgXCJhY29yblwiLFxuICAgICAgXCJlc3ByZWVcIixcbiAgICAgIFwibWVyaXlhaFwiLFxuICAgICAgXCJiYWJlbC1mbG93XCIsXG4gICAgICBcImJhYmVsLXRzXCIsXG4gICAgICBcImZsb3dcIixcbiAgICAgIFwidHlwZXNjcmlwdFwiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwiamF2YXNjcmlwdFwiLFxuICAgICAgXCJtb25nb1wiXG4gICAgXVxuICB9LFxuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogMTgzLFxuICAgIFwibmFtZVwiOiBcIkZsb3dcIixcbiAgICBcInR5cGVcIjogXCJwcm9ncmFtbWluZ1wiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS5qc1wiLFxuICAgIFwiYWNlTW9kZVwiOiBcImphdmFzY3JpcHRcIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiamF2YXNjcmlwdFwiLFxuICAgIFwiY29kZW1pcnJvck1pbWVUeXBlXCI6IFwidGV4dC9qYXZhc2NyaXB0XCIsXG4gICAgXCJjb2xvclwiOiBcIiNmMWUwNWFcIixcbiAgICBcImFsaWFzZXNcIjogW10sXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLmpzLmZsb3dcIlxuICAgIF0sXG4gICAgXCJmaWxlbmFtZXNcIjogW10sXG4gICAgXCJpbnRlcnByZXRlcnNcIjogW1xuICAgICAgXCJjaGFrcmFcIixcbiAgICAgIFwiZDhcIixcbiAgICAgIFwiZ2pzXCIsXG4gICAgICBcImpzXCIsXG4gICAgICBcIm5vZGVcIixcbiAgICAgIFwibm9kZWpzXCIsXG4gICAgICBcInFqc1wiLFxuICAgICAgXCJyaGlub1wiLFxuICAgICAgXCJ2OFwiLFxuICAgICAgXCJ2OC1zaGVsbFwiXG4gICAgXSxcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJmbG93XCIsXG4gICAgICBcImJhYmVsLWZsb3dcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImphdmFzY3JpcHRcIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE4MyxcbiAgICBcIm5hbWVcIjogXCJKU1hcIixcbiAgICBcInR5cGVcIjogXCJwcm9ncmFtbWluZ1wiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS5qcy5qc3hcIixcbiAgICBcImFjZU1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTW9kZVwiOiBcImpzeFwiLFxuICAgIFwiY29kZW1pcnJvck1pbWVUeXBlXCI6IFwidGV4dC9qc3hcIixcbiAgICBcImNvbG9yXCI6IHZvaWQgMCxcbiAgICBcImFsaWFzZXNcIjogdm9pZCAwLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi5qc3hcIlxuICAgIF0sXG4gICAgXCJmaWxlbmFtZXNcIjogdm9pZCAwLFxuICAgIFwiaW50ZXJwcmV0ZXJzXCI6IHZvaWQgMCxcbiAgICBcInBhcnNlcnNcIjogW1xuICAgICAgXCJiYWJlbFwiLFxuICAgICAgXCJiYWJlbC1mbG93XCIsXG4gICAgICBcImJhYmVsLXRzXCIsXG4gICAgICBcImZsb3dcIixcbiAgICAgIFwidHlwZXNjcmlwdFwiLFxuICAgICAgXCJlc3ByZWVcIixcbiAgICAgIFwibWVyaXlhaFwiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwiamF2YXNjcmlwdHJlYWN0XCJcbiAgICBdLFxuICAgIFwiZ3JvdXBcIjogXCJKYXZhU2NyaXB0XCJcbiAgfSxcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDM3OCxcbiAgICBcIm5hbWVcIjogXCJUeXBlU2NyaXB0XCIsXG4gICAgXCJ0eXBlXCI6IFwicHJvZ3JhbW1pbmdcIixcbiAgICBcImNvbG9yXCI6IFwiIzMxNzhjNlwiLFxuICAgIFwiYWxpYXNlc1wiOiBbXG4gICAgICBcInRzXCJcbiAgICBdLFxuICAgIFwiaW50ZXJwcmV0ZXJzXCI6IFtcbiAgICAgIFwiZGVub1wiLFxuICAgICAgXCJ0cy1ub2RlXCJcbiAgICBdLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi50c1wiLFxuICAgICAgXCIuY3RzXCIsXG4gICAgICBcIi5tdHNcIlxuICAgIF0sXG4gICAgXCJ0bVNjb3BlXCI6IFwic291cmNlLnRzXCIsXG4gICAgXCJhY2VNb2RlXCI6IFwidHlwZXNjcmlwdFwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJhcHBsaWNhdGlvbi90eXBlc2NyaXB0XCIsXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwidHlwZXNjcmlwdFwiLFxuICAgICAgXCJiYWJlbC10c1wiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwidHlwZXNjcmlwdFwiXG4gICAgXVxuICB9LFxuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogOTQ5MDE5MjQsXG4gICAgXCJuYW1lXCI6IFwiVFNYXCIsXG4gICAgXCJ0eXBlXCI6IFwicHJvZ3JhbW1pbmdcIixcbiAgICBcImNvbG9yXCI6IFwiIzMxNzhjNlwiLFxuICAgIFwiZ3JvdXBcIjogXCJUeXBlU2NyaXB0XCIsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLnRzeFwiXG4gICAgXSxcbiAgICBcInRtU2NvcGVcIjogXCJzb3VyY2UudHN4XCIsXG4gICAgXCJhY2VNb2RlXCI6IFwiamF2YXNjcmlwdFwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJqc3hcIixcbiAgICBcImNvZGVtaXJyb3JNaW1lVHlwZVwiOiBcInRleHQvanN4XCIsXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwidHlwZXNjcmlwdFwiLFxuICAgICAgXCJiYWJlbC10c1wiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwidHlwZXNjcmlwdHJlYWN0XCJcbiAgICBdXG4gIH1cbl07XG5cbi8vIHNyYy9sYW5ndWFnZS1qc29uL2xhbmd1YWdlcy5ldmFsdWF0ZS5qc1xudmFyIGxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0NiA9IFtcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE3NCxcbiAgICBcIm5hbWVcIjogXCJKU09OLnN0cmluZ2lmeVwiLFxuICAgIFwidHlwZVwiOiBcImRhdGFcIixcbiAgICBcImNvbG9yXCI6IFwiIzI5MjkyOVwiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS5qc29uXCIsXG4gICAgXCJhY2VNb2RlXCI6IFwianNvblwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgXCJhbGlhc2VzXCI6IFtcbiAgICAgIFwiZ2VvanNvblwiLFxuICAgICAgXCJqc29ubFwiLFxuICAgICAgXCJ0b3BvanNvblwiXG4gICAgXSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIuaW1wb3J0bWFwXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtcbiAgICAgIFwicGFja2FnZS5qc29uXCIsXG4gICAgICBcInBhY2thZ2UtbG9jay5qc29uXCIsXG4gICAgICBcImNvbXBvc2VyLmpzb25cIlxuICAgIF0sXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwianNvbi1zdHJpbmdpZnlcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImpzb25cIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDE3NCxcbiAgICBcIm5hbWVcIjogXCJKU09OXCIsXG4gICAgXCJ0eXBlXCI6IFwiZGF0YVwiLFxuICAgIFwiY29sb3JcIjogXCIjMjkyOTI5XCIsXG4gICAgXCJ0bVNjb3BlXCI6IFwic291cmNlLmpzb25cIixcbiAgICBcImFjZU1vZGVcIjogXCJqc29uXCIsXG4gICAgXCJjb2RlbWlycm9yTW9kZVwiOiBcImphdmFzY3JpcHRcIixcbiAgICBcImNvZGVtaXJyb3JNaW1lVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJnZW9qc29uXCIsXG4gICAgICBcImpzb25sXCIsXG4gICAgICBcInRvcG9qc29uXCJcbiAgICBdLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi5qc29uXCIsXG4gICAgICBcIi40REZvcm1cIixcbiAgICAgIFwiLjREUHJvamVjdFwiLFxuICAgICAgXCIuYXZzY1wiLFxuICAgICAgXCIuZ2VvanNvblwiLFxuICAgICAgXCIuZ2x0ZlwiLFxuICAgICAgXCIuaGFyXCIsXG4gICAgICBcIi5pY2VcIixcbiAgICAgIFwiLkpTT04tdG1MYW5ndWFnZVwiLFxuICAgICAgXCIubWNtZXRhXCIsXG4gICAgICBcIi50ZnN0YXRlXCIsXG4gICAgICBcIi50ZnN0YXRlLmJhY2t1cFwiLFxuICAgICAgXCIudG9wb2pzb25cIixcbiAgICAgIFwiLndlYmFwcFwiLFxuICAgICAgXCIud2VibWFuaWZlc3RcIixcbiAgICAgIFwiLnl5XCIsXG4gICAgICBcIi55eXBcIlxuICAgIF0sXG4gICAgXCJmaWxlbmFtZXNcIjogW1xuICAgICAgXCIuYWxsLWNvbnRyaWJ1dG9yc3JjXCIsXG4gICAgICBcIi5hcmNjb25maWdcIixcbiAgICAgIFwiLmF1dG8tY2hhbmdlbG9nXCIsXG4gICAgICBcIi5jOHJjXCIsXG4gICAgICBcIi5odG1saGludHJjXCIsXG4gICAgICBcIi5pbWdib3Rjb25maWdcIixcbiAgICAgIFwiLm55Y3JjXCIsXG4gICAgICBcIi50ZXJuLWNvbmZpZ1wiLFxuICAgICAgXCIudGVybi1wcm9qZWN0XCIsXG4gICAgICBcIi53YXRjaG1hbmNvbmZpZ1wiLFxuICAgICAgXCJQaXBmaWxlLmxvY2tcIixcbiAgICAgIFwiY29tcG9zZXIubG9ja1wiLFxuICAgICAgXCJmbGFrZS5sb2NrXCIsXG4gICAgICBcIm1jbW9kLmluZm9cIlxuICAgIF0sXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwianNvblwiXG4gICAgXSxcbiAgICBcInZzY29kZUxhbmd1YWdlSWRzXCI6IFtcbiAgICAgIFwianNvblwiXG4gICAgXVxuICB9LFxuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogNDIzLFxuICAgIFwibmFtZVwiOiBcIkpTT04gd2l0aCBDb21tZW50c1wiLFxuICAgIFwidHlwZVwiOiBcImRhdGFcIixcbiAgICBcImNvbG9yXCI6IFwiIzI5MjkyOVwiLFxuICAgIFwiZ3JvdXBcIjogXCJKU09OXCIsXG4gICAgXCJ0bVNjb3BlXCI6IFwic291cmNlLmpzXCIsXG4gICAgXCJhY2VNb2RlXCI6IFwiamF2YXNjcmlwdFwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L2phdmFzY3JpcHRcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJqc29uY1wiXG4gICAgXSxcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIuanNvbmNcIixcbiAgICAgIFwiLmNvZGUtc25pcHBldHNcIixcbiAgICAgIFwiLnN1YmxpbWUtYnVpbGRcIixcbiAgICAgIFwiLnN1YmxpbWUtY29tbWFuZHNcIixcbiAgICAgIFwiLnN1YmxpbWUtY29tcGxldGlvbnNcIixcbiAgICAgIFwiLnN1YmxpbWUta2V5bWFwXCIsXG4gICAgICBcIi5zdWJsaW1lLW1hY3JvXCIsXG4gICAgICBcIi5zdWJsaW1lLW1lbnVcIixcbiAgICAgIFwiLnN1YmxpbWUtbW91c2VtYXBcIixcbiAgICAgIFwiLnN1YmxpbWUtcHJvamVjdFwiLFxuICAgICAgXCIuc3VibGltZS1zZXR0aW5nc1wiLFxuICAgICAgXCIuc3VibGltZS10aGVtZVwiLFxuICAgICAgXCIuc3VibGltZS13b3Jrc3BhY2VcIixcbiAgICAgIFwiLnN1YmxpbWVfbWV0cmljc1wiLFxuICAgICAgXCIuc3VibGltZV9zZXNzaW9uXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtcbiAgICAgIFwiLmJhYmVscmNcIixcbiAgICAgIFwiLmRldmNvbnRhaW5lci5qc29uXCIsXG4gICAgICBcIi5lc2xpbnRyYy5qc29uXCIsXG4gICAgICBcIi5qc2NzcmNcIixcbiAgICAgIFwiLmpzaGludHJjXCIsXG4gICAgICBcIi5qc2xpbnRyY1wiLFxuICAgICAgXCIuc3djcmNcIixcbiAgICAgIFwiYXBpLWV4dHJhY3Rvci5qc29uXCIsXG4gICAgICBcImRldmNvbnRhaW5lci5qc29uXCIsXG4gICAgICBcImpzY29uZmlnLmpzb25cIixcbiAgICAgIFwibGFuZ3VhZ2UtY29uZmlndXJhdGlvbi5qc29uXCIsXG4gICAgICBcInRzY29uZmlnLmpzb25cIixcbiAgICAgIFwidHNsaW50Lmpzb25cIixcbiAgICAgIFwiLmVzbGludHJjXCJcbiAgICBdLFxuICAgIFwicGFyc2Vyc1wiOiBbXG4gICAgICBcImpzb25cIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImpzb25jXCJcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiAxNzUsXG4gICAgXCJuYW1lXCI6IFwiSlNPTjVcIixcbiAgICBcInR5cGVcIjogXCJkYXRhXCIsXG4gICAgXCJjb2xvclwiOiBcIiMyNjdDQjlcIixcbiAgICBcImV4dGVuc2lvbnNcIjogW1xuICAgICAgXCIuanNvbjVcIlxuICAgIF0sXG4gICAgXCJ0bVNjb3BlXCI6IFwic291cmNlLmpzXCIsXG4gICAgXCJhY2VNb2RlXCI6IFwiamF2YXNjcmlwdFwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJqYXZhc2NyaXB0XCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwianNvbjVcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcImpzb241XCJcbiAgICBdXG4gIH1cbl07XG5cbi8vIHNyYy9sYW5ndWFnZS1tYXJrZG93bi9vcHRpb25zLmpzXG52YXIgb3B0aW9uczUgPSB7XG4gIHByb3NlV3JhcDogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5wcm9zZVdyYXAsXG4gIHNpbmdsZVF1b3RlOiBjb21tb25fb3B0aW9uc19ldmFsdWF0ZV9kZWZhdWx0LnNpbmdsZVF1b3RlXG59O1xudmFyIG9wdGlvbnNfZGVmYXVsdDUgPSBvcHRpb25zNTtcblxuLy8gc3JjL2xhbmd1YWdlLW1hcmtkb3duL2xhbmd1YWdlcy5ldmFsdWF0ZS5qc1xudmFyIGxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0NyA9IFtcbiAge1xuICAgIFwibGluZ3Vpc3RMYW5ndWFnZUlkXCI6IDIyMixcbiAgICBcIm5hbWVcIjogXCJNYXJrZG93blwiLFxuICAgIFwidHlwZVwiOiBcInByb3NlXCIsXG4gICAgXCJjb2xvclwiOiBcIiMwODNmYTFcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJtZFwiLFxuICAgICAgXCJwYW5kb2NcIlxuICAgIF0sXG4gICAgXCJhY2VNb2RlXCI6IFwibWFya2Rvd25cIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiZ2ZtXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L3gtZ2ZtXCIsXG4gICAgXCJ3cmFwXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLm1kXCIsXG4gICAgICBcIi5saXZlbWRcIixcbiAgICAgIFwiLm1hcmtkb3duXCIsXG4gICAgICBcIi5tZG93blwiLFxuICAgICAgXCIubWR3blwiLFxuICAgICAgXCIubWtkXCIsXG4gICAgICBcIi5ta2RuXCIsXG4gICAgICBcIi5ta2Rvd25cIixcbiAgICAgIFwiLnJvbm5cIixcbiAgICAgIFwiLnNjZFwiLFxuICAgICAgXCIud29ya2Jvb2tcIlxuICAgIF0sXG4gICAgXCJmaWxlbmFtZXNcIjogW1xuICAgICAgXCJjb250ZW50cy5sclwiLFxuICAgICAgXCJSRUFETUVcIlxuICAgIF0sXG4gICAgXCJ0bVNjb3BlXCI6IFwidGV4dC5tZFwiLFxuICAgIFwicGFyc2Vyc1wiOiBbXG4gICAgICBcIm1hcmtkb3duXCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJtYXJrZG93blwiXG4gICAgXVxuICB9LFxuICB7XG4gICAgXCJsaW5ndWlzdExhbmd1YWdlSWRcIjogMjIyLFxuICAgIFwibmFtZVwiOiBcIk1EWFwiLFxuICAgIFwidHlwZVwiOiBcInByb3NlXCIsXG4gICAgXCJjb2xvclwiOiBcIiMwODNmYTFcIixcbiAgICBcImFsaWFzZXNcIjogW1xuICAgICAgXCJtZFwiLFxuICAgICAgXCJwYW5kb2NcIlxuICAgIF0sXG4gICAgXCJhY2VNb2RlXCI6IFwibWFya2Rvd25cIixcbiAgICBcImNvZGVtaXJyb3JNb2RlXCI6IFwiZ2ZtXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L3gtZ2ZtXCIsXG4gICAgXCJ3cmFwXCI6IHRydWUsXG4gICAgXCJleHRlbnNpb25zXCI6IFtcbiAgICAgIFwiLm1keFwiXG4gICAgXSxcbiAgICBcImZpbGVuYW1lc1wiOiBbXSxcbiAgICBcInRtU2NvcGVcIjogXCJ0ZXh0Lm1kXCIsXG4gICAgXCJwYXJzZXJzXCI6IFtcbiAgICAgIFwibWR4XCJcbiAgICBdLFxuICAgIFwidnNjb2RlTGFuZ3VhZ2VJZHNcIjogW1xuICAgICAgXCJtZHhcIlxuICAgIF1cbiAgfVxuXTtcblxuLy8gc3JjL2xhbmd1YWdlLXlhbWwvb3B0aW9ucy5qc1xudmFyIG9wdGlvbnM2ID0ge1xuICBicmFja2V0U3BhY2luZzogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5icmFja2V0U3BhY2luZyxcbiAgc2luZ2xlUXVvdGU6IGNvbW1vbl9vcHRpb25zX2V2YWx1YXRlX2RlZmF1bHQuc2luZ2xlUXVvdGUsXG4gIHByb3NlV3JhcDogY29tbW9uX29wdGlvbnNfZXZhbHVhdGVfZGVmYXVsdC5wcm9zZVdyYXBcbn07XG52YXIgb3B0aW9uc19kZWZhdWx0NiA9IG9wdGlvbnM2O1xuXG4vLyBzcmMvbGFuZ3VhZ2UteWFtbC9sYW5ndWFnZXMuZXZhbHVhdGUuanNcbnZhciBsYW5ndWFnZXNfZXZhbHVhdGVfZGVmYXVsdDggPSBbXG4gIHtcbiAgICBcImxpbmd1aXN0TGFuZ3VhZ2VJZFwiOiA0MDcsXG4gICAgXCJuYW1lXCI6IFwiWUFNTFwiLFxuICAgIFwidHlwZVwiOiBcImRhdGFcIixcbiAgICBcImNvbG9yXCI6IFwiI2NiMTcxZVwiLFxuICAgIFwidG1TY29wZVwiOiBcInNvdXJjZS55YW1sXCIsXG4gICAgXCJhbGlhc2VzXCI6IFtcbiAgICAgIFwieW1sXCJcbiAgICBdLFxuICAgIFwiZXh0ZW5zaW9uc1wiOiBbXG4gICAgICBcIi55bWxcIixcbiAgICAgIFwiLm1pclwiLFxuICAgICAgXCIucmVla1wiLFxuICAgICAgXCIucnZpelwiLFxuICAgICAgXCIuc3VibGltZS1zeW50YXhcIixcbiAgICAgIFwiLnN5bnRheFwiLFxuICAgICAgXCIueWFtbFwiLFxuICAgICAgXCIueWFtbC10bWxhbmd1YWdlXCIsXG4gICAgICBcIi55YW1sLnNlZFwiLFxuICAgICAgXCIueW1sLm15c3FsXCJcbiAgICBdLFxuICAgIFwiZmlsZW5hbWVzXCI6IFtcbiAgICAgIFwiLmNsYW5nLWZvcm1hdFwiLFxuICAgICAgXCIuY2xhbmctdGlkeVwiLFxuICAgICAgXCIuZ2VtcmNcIixcbiAgICAgIFwiQ0lUQVRJT04uY2ZmXCIsXG4gICAgICBcImdsaWRlLmxvY2tcIixcbiAgICAgIFwiLnByZXR0aWVycmNcIixcbiAgICAgIFwiLnN0eWxlbGludHJjXCIsXG4gICAgICBcIi5saW50c3RhZ2VkcmNcIlxuICAgIF0sXG4gICAgXCJhY2VNb2RlXCI6IFwieWFtbFwiLFxuICAgIFwiY29kZW1pcnJvck1vZGVcIjogXCJ5YW1sXCIsXG4gICAgXCJjb2RlbWlycm9yTWltZVR5cGVcIjogXCJ0ZXh0L3gteWFtbFwiLFxuICAgIFwicGFyc2Vyc1wiOiBbXG4gICAgICBcInlhbWxcIlxuICAgIF0sXG4gICAgXCJ2c2NvZGVMYW5ndWFnZUlkc1wiOiBbXG4gICAgICBcInlhbWxcIixcbiAgICAgIFwiYW5zaWJsZVwiLFxuICAgICAgXCJob21lLWFzc2lzdGFudFwiXG4gICAgXVxuICB9XG5dO1xuXG4vLyBzcmMvcGx1Z2lucy9idWlsdGluLXBsdWdpbnMtcHJveHkuanNcbmZ1bmN0aW9uIGNyZWF0ZVBhcnNlcnNBbmRQcmludGVycyhtb2R1bGVzKSB7XG4gIGNvbnN0IHBhcnNlcnMyID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGNvbnN0IHByaW50ZXJzMiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBmb3IgKGNvbnN0IHtcbiAgICBpbXBvcnRQbHVnaW46IGltcG9ydFBsdWdpbjIsXG4gICAgcGFyc2VyczogcGFyc2VyTmFtZXMgPSBbXSxcbiAgICBwcmludGVyczogcHJpbnRlck5hbWVzID0gW11cbiAgfSBvZiBtb2R1bGVzKSB7XG4gICAgY29uc3QgbG9hZFBsdWdpbjIgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwbHVnaW4gPSBhd2FpdCBpbXBvcnRQbHVnaW4yKCk7XG4gICAgICBPYmplY3QuYXNzaWduKHBhcnNlcnMyLCBwbHVnaW4ucGFyc2Vycyk7XG4gICAgICBPYmplY3QuYXNzaWduKHByaW50ZXJzMiwgcGx1Z2luLnByaW50ZXJzKTtcbiAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IHBhcnNlck5hbWUgb2YgcGFyc2VyTmFtZXMpIHtcbiAgICAgIHBhcnNlcnMyW3BhcnNlck5hbWVdID0gYXN5bmMgKCkgPT4gKGF3YWl0IGxvYWRQbHVnaW4yKCkpLnBhcnNlcnNbcGFyc2VyTmFtZV07XG4gICAgfVxuICAgIGZvciAoY29uc3QgcHJpbnRlck5hbWUgb2YgcHJpbnRlck5hbWVzKSB7XG4gICAgICBwcmludGVyczJbcHJpbnRlck5hbWVdID0gYXN5bmMgKCkgPT4gKGF3YWl0IGxvYWRQbHVnaW4yKCkpLnByaW50ZXJzW3ByaW50ZXJOYW1lXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcGFyc2VyczogcGFyc2VyczIsIHByaW50ZXJzOiBwcmludGVyczIgfTtcbn1cbnZhciBvcHRpb25zNyA9IHtcbiAgLi4ub3B0aW9uc19kZWZhdWx0LFxuICAuLi5vcHRpb25zX2RlZmF1bHQyLFxuICAuLi5vcHRpb25zX2RlZmF1bHQzLFxuICAuLi5vcHRpb25zX2RlZmF1bHQ0LFxuICAuLi5vcHRpb25zX2RlZmF1bHQ1LFxuICAuLi5vcHRpb25zX2RlZmF1bHQ2XG59O1xudmFyIGxhbmd1YWdlcyA9IFtcbiAgLi4ubGFuZ3VhZ2VzX2V2YWx1YXRlX2RlZmF1bHQsXG4gIC4uLmxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0MixcbiAgLi4ubGFuZ3VhZ2VzX2V2YWx1YXRlX2RlZmF1bHQzLFxuICAuLi5sYW5ndWFnZXNfZXZhbHVhdGVfZGVmYXVsdDQsXG4gIC4uLmxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0NSxcbiAgLi4ubGFuZ3VhZ2VzX2V2YWx1YXRlX2RlZmF1bHQ2LFxuICAuLi5sYW5ndWFnZXNfZXZhbHVhdGVfZGVmYXVsdDcsXG4gIC4uLmxhbmd1YWdlc19ldmFsdWF0ZV9kZWZhdWx0OFxuXTtcbnZhciB7IHBhcnNlcnMsIHByaW50ZXJzIH0gPSBjcmVhdGVQYXJzZXJzQW5kUHJpbnRlcnMoW1xuICB7XG4gICAgaW1wb3J0UGx1Z2luOiAoKSA9PiBpbXBvcnQoXCIuL3BsdWdpbnMvYWNvcm4ubWpzXCIpLFxuICAgIHBhcnNlcnM6IFtcImFjb3JuXCIsIFwiZXNwcmVlXCJdXG4gIH0sXG4gIHtcbiAgICBpbXBvcnRQbHVnaW46ICgpID0+IGltcG9ydChcIi4vcGx1Z2lucy9hbmd1bGFyLm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXG4gICAgICBcIl9fbmdfYWN0aW9uXCIsXG4gICAgICBcIl9fbmdfYmluZGluZ1wiLFxuICAgICAgXCJfX25nX2ludGVycG9sYXRpb25cIixcbiAgICAgIFwiX19uZ19kaXJlY3RpdmVcIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIGltcG9ydFBsdWdpbjogKCkgPT4gaW1wb3J0KFwiLi9wbHVnaW5zL2JhYmVsLm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXG4gICAgICBcImJhYmVsXCIsXG4gICAgICBcImJhYmVsLWZsb3dcIixcbiAgICAgIFwiYmFiZWwtdHNcIixcbiAgICAgIFwiX19qc19leHByZXNzaW9uXCIsXG4gICAgICBcIl9fdHNfZXhwcmVzc2lvblwiLFxuICAgICAgXCJfX3Z1ZV9leHByZXNzaW9uXCIsXG4gICAgICBcIl9fdnVlX3RzX2V4cHJlc3Npb25cIixcbiAgICAgIFwiX192dWVfZXZlbnRfYmluZGluZ1wiLFxuICAgICAgXCJfX3Z1ZV90c19ldmVudF9iaW5kaW5nXCIsXG4gICAgICBcIl9fYmFiZWxfZXN0cmVlXCIsXG4gICAgICBcImpzb25cIixcbiAgICAgIFwianNvbjVcIixcbiAgICAgIFwianNvbi1zdHJpbmdpZnlcIlxuICAgIF1cbiAgfSxcbiAge1xuICAgIGltcG9ydFBsdWdpbjogKCkgPT4gaW1wb3J0KFwiLi9wbHVnaW5zL2VzdHJlZS5tanNcIiksXG4gICAgcHJpbnRlcnM6IFtcImVzdHJlZVwiLCBcImVzdHJlZS1qc29uXCJdXG4gIH0sXG4gIHtcbiAgICBpbXBvcnRQbHVnaW46ICgpID0+IGltcG9ydChcIi4vcGx1Z2lucy9mbG93Lm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXCJmbG93XCJdXG4gIH0sXG4gIHtcbiAgICBpbXBvcnRQbHVnaW46ICgpID0+IGltcG9ydChcIi4vcGx1Z2lucy9nbGltbWVyLm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXCJnbGltbWVyXCJdLFxuICAgIHByaW50ZXJzOiBbXCJnbGltbWVyXCJdXG4gIH0sXG4gIHtcbiAgICBpbXBvcnRQbHVnaW46ICgpID0+IGltcG9ydChcIi4vcGx1Z2lucy9ncmFwaHFsLm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXCJncmFwaHFsXCJdLFxuICAgIHByaW50ZXJzOiBbXCJncmFwaHFsXCJdXG4gIH0sXG4gIHtcbiAgICBpbXBvcnRQbHVnaW46ICgpID0+IGltcG9ydChcIi4vcGx1Z2lucy9odG1sLm1qc1wiKSxcbiAgICBwYXJzZXJzOiBbXCJodG1sXCIsIFwiYW5ndWxhclwiLCBcInZ1ZVwiLCBcImx3Y1wiXSxcbiAgICBwcmludGVyczogW1wiaHRtbFwiXVxuICB9LFxuICB7XG4gICAgaW1wb3J0UGx1Z2luOiAoKSA9PiBpbXBvcnQoXCIuL3BsdWdpbnMvbWFya2Rvd24ubWpzXCIpLFxuICAgIHBhcnNlcnM6IFtcIm1hcmtkb3duXCIsIFwibWR4XCIsIFwicmVtYXJrXCJdLFxuICAgIHByaW50ZXJzOiBbXCJtZGFzdFwiXVxuICB9LFxuICB7XG4gICAgaW1wb3J0UGx1Z2luOiAoKSA9PiBpbXBvcnQoXCIuL3BsdWdpbnMvbWVyaXlhaC5tanNcIiksXG4gICAgcGFyc2VyczogW1wibWVyaXlhaFwiXVxuICB9LFxuICB7XG4gICAgaW1wb3J0UGx1Z2luOiAoKSA9PiBpbXBvcnQoXCIuL3BsdWdpbnMvcG9zdGNzcy5tanNcIiksXG4gICAgcGFyc2VyczogW1wiY3NzXCIsIFwibGVzc1wiLCBcInNjc3NcIl0sXG4gICAgcHJpbnRlcnM6IFtcInBvc3Rjc3NcIl1cbiAgfSxcbiAge1xuICAgIGltcG9ydFBsdWdpbjogKCkgPT4gaW1wb3J0KFwiLi9wbHVnaW5zL3R5cGVzY3JpcHQubWpzXCIpLFxuICAgIHBhcnNlcnM6IFtcInR5cGVzY3JpcHRcIl1cbiAgfSxcbiAge1xuICAgIGltcG9ydFBsdWdpbjogKCkgPT4gaW1wb3J0KFwiLi9wbHVnaW5zL3lhbWwubWpzXCIpLFxuICAgIHBhcnNlcnM6IFtcInlhbWxcIl0sXG4gICAgcHJpbnRlcnM6IFtcInlhbWxcIl1cbiAgfVxuXSk7XG5cbi8vIHNyYy9tYWluL3BsdWdpbnMvbG9hZC1idWlsdGluLXBsdWdpbnMuanNcbmZ1bmN0aW9uIGxvYWRCdWlsdGluUGx1Z2lucygpIHtcbiAgcmV0dXJuIFtidWlsdGluX3BsdWdpbnNfcHJveHlfZXhwb3J0c107XG59XG52YXIgbG9hZF9idWlsdGluX3BsdWdpbnNfZGVmYXVsdCA9IGxvYWRCdWlsdGluUGx1Z2lucztcblxuLy8gc3JjL21haW4vcGx1Z2lucy9sb2FkLXBsdWdpbnMuanNcbmZ1bmN0aW9uIGxvYWRQbHVnaW5zKHBsdWdpbnMgPSBbXSkge1xuICByZXR1cm4gUHJvbWlzZS5hbGwocGx1Z2lucy5tYXAoKHBsdWdpbikgPT4gbG9hZFBsdWdpbihwbHVnaW4pKSk7XG59XG52YXIgbG9hZF9wbHVnaW5zX2RlZmF1bHQgPSBsb2FkUGx1Z2lucztcblxuLy8gc3JjL21haW4vb3B0aW9uLWNhdGVnb3JpZXMuanNcbnZhciBvcHRpb25fY2F0ZWdvcmllc19leHBvcnRzID0ge307XG5fX2V4cG9ydChvcHRpb25fY2F0ZWdvcmllc19leHBvcnRzLCB7XG4gIENBVEVHT1JZX0NPTkZJRzogKCkgPT4gQ0FURUdPUllfQ09ORklHLFxuICBDQVRFR09SWV9FRElUT1I6ICgpID0+IENBVEVHT1JZX0VESVRPUixcbiAgQ0FURUdPUllfRk9STUFUOiAoKSA9PiBDQVRFR09SWV9GT1JNQVQsXG4gIENBVEVHT1JZX0dMT0JBTDogKCkgPT4gQ0FURUdPUllfR0xPQkFMLFxuICBDQVRFR09SWV9PVEhFUjogKCkgPT4gQ0FURUdPUllfT1RIRVIsXG4gIENBVEVHT1JZX09VVFBVVDogKCkgPT4gQ0FURUdPUllfT1VUUFVULFxuICBDQVRFR09SWV9TUEVDSUFMOiAoKSA9PiBDQVRFR09SWV9TUEVDSUFMXG59KTtcbnZhciBDQVRFR09SWV9DT05GSUcgPSBcIkNvbmZpZ1wiO1xudmFyIENBVEVHT1JZX0VESVRPUiA9IFwiRWRpdG9yXCI7XG52YXIgQ0FURUdPUllfRk9STUFUID0gXCJGb3JtYXRcIjtcbnZhciBDQVRFR09SWV9PVEhFUiA9IFwiT3RoZXJcIjtcbnZhciBDQVRFR09SWV9PVVRQVVQgPSBcIk91dHB1dFwiO1xudmFyIENBVEVHT1JZX0dMT0JBTCA9IFwiR2xvYmFsXCI7XG52YXIgQ0FURUdPUllfU1BFQ0lBTCA9IFwiU3BlY2lhbFwiO1xuXG4vLyBzcmMvdXRpbHMvb2JqZWN0LW9taXQuanNcbmZ1bmN0aW9uIG9taXQob2JqZWN0LCBrZXlzKSB7XG4gIGtleXMgPSBuZXcgU2V0KGtleXMpO1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZmlsdGVyKChba2V5XSkgPT4gIWtleXMuaGFzKGtleSkpXG4gICk7XG59XG52YXIgb2JqZWN0X29taXRfZGVmYXVsdCA9IG9taXQ7XG5cbi8vIHNyYy91dGlscy9wdWJsaWMuanNcbnZhciBwdWJsaWNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQocHVibGljX2V4cG9ydHMsIHtcbiAgYWRkRGFuZ2xpbmdDb21tZW50OiAoKSA9PiBhZGREYW5nbGluZ0NvbW1lbnQsXG4gIGFkZExlYWRpbmdDb21tZW50OiAoKSA9PiBhZGRMZWFkaW5nQ29tbWVudCxcbiAgYWRkVHJhaWxpbmdDb21tZW50OiAoKSA9PiBhZGRUcmFpbGluZ0NvbW1lbnQsXG4gIGdldEFsaWdubWVudFNpemU6ICgpID0+IGdldF9hbGlnbm1lbnRfc2l6ZV9kZWZhdWx0LFxuICBnZXRJbmRlbnRTaXplOiAoKSA9PiBnZXRfaW5kZW50X3NpemVfZGVmYXVsdCxcbiAgZ2V0TWF4Q29udGludW91c0NvdW50OiAoKSA9PiBnZXRfbWF4X2NvbnRpbnVvdXNfY291bnRfZGVmYXVsdCxcbiAgZ2V0TmV4dE5vblNwYWNlTm9uQ29tbWVudENoYXJhY3RlcjogKCkgPT4gZ2V0X25leHRfbm9uX3NwYWNlX25vbl9jb21tZW50X2NoYXJhY3Rlcl9kZWZhdWx0LFxuICBnZXROZXh0Tm9uU3BhY2VOb25Db21tZW50Q2hhcmFjdGVySW5kZXg6ICgpID0+IGdldE5leHROb25TcGFjZU5vbkNvbW1lbnRDaGFyYWN0ZXJJbmRleDIsXG4gIGdldFN0cmluZ1dpZHRoOiAoKSA9PiBnZXRfc3RyaW5nX3dpZHRoX2RlZmF1bHQsXG4gIGhhc05ld2xpbmU6ICgpID0+IGhhc19uZXdsaW5lX2RlZmF1bHQsXG4gIGhhc05ld2xpbmVJblJhbmdlOiAoKSA9PiBoYXNfbmV3bGluZV9pbl9yYW5nZV9kZWZhdWx0LFxuICBoYXNTcGFjZXM6ICgpID0+IGhhc19zcGFjZXNfZGVmYXVsdCxcbiAgaXNOZXh0TGluZUVtcHR5OiAoKSA9PiBpc05leHRMaW5lRW1wdHkyLFxuICBpc05leHRMaW5lRW1wdHlBZnRlckluZGV4OiAoKSA9PiBpc19uZXh0X2xpbmVfZW1wdHlfZGVmYXVsdCxcbiAgaXNQcmV2aW91c0xpbmVFbXB0eTogKCkgPT4gaXNQcmV2aW91c0xpbmVFbXB0eTIsXG4gIG1ha2VTdHJpbmc6ICgpID0+IG1ha2Vfc3RyaW5nX2RlZmF1bHQsXG4gIHNraXA6ICgpID0+IHNraXAsXG4gIHNraXBFdmVyeXRoaW5nQnV0TmV3TGluZTogKCkgPT4gc2tpcEV2ZXJ5dGhpbmdCdXROZXdMaW5lLFxuICBza2lwSW5saW5lQ29tbWVudDogKCkgPT4gc2tpcF9pbmxpbmVfY29tbWVudF9kZWZhdWx0LFxuICBza2lwTmV3bGluZTogKCkgPT4gc2tpcF9uZXdsaW5lX2RlZmF1bHQsXG4gIHNraXBTcGFjZXM6ICgpID0+IHNraXBTcGFjZXMsXG4gIHNraXBUb0xpbmVFbmQ6ICgpID0+IHNraXBUb0xpbmVFbmQsXG4gIHNraXBUcmFpbGluZ0NvbW1lbnQ6ICgpID0+IHNraXBfdHJhaWxpbmdfY29tbWVudF9kZWZhdWx0LFxuICBza2lwV2hpdGVzcGFjZTogKCkgPT4gc2tpcFdoaXRlc3BhY2Vcbn0pO1xuXG4vLyBzcmMvdXRpbHMvc2tpcC1pbmxpbmUtY29tbWVudC5qc1xuZnVuY3Rpb24gc2tpcElubGluZUNvbW1lbnQodGV4dCwgc3RhcnRJbmRleCkge1xuICBpZiAoc3RhcnRJbmRleCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHRleHQuY2hhckF0KHN0YXJ0SW5kZXgpID09PSBcIi9cIiAmJiB0ZXh0LmNoYXJBdChzdGFydEluZGV4ICsgMSkgPT09IFwiKlwiKSB7XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXggKyAyOyBpIDwgdGV4dC5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKHRleHQuY2hhckF0KGkpID09PSBcIipcIiAmJiB0ZXh0LmNoYXJBdChpICsgMSkgPT09IFwiL1wiKSB7XG4gICAgICAgIHJldHVybiBpICsgMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXJ0SW5kZXg7XG59XG52YXIgc2tpcF9pbmxpbmVfY29tbWVudF9kZWZhdWx0ID0gc2tpcElubGluZUNvbW1lbnQ7XG5cbi8vIHNyYy91dGlscy9za2lwLXRyYWlsaW5nLWNvbW1lbnQuanNcbmZ1bmN0aW9uIHNraXBUcmFpbGluZ0NvbW1lbnQodGV4dCwgc3RhcnRJbmRleCkge1xuICBpZiAoc3RhcnRJbmRleCA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHRleHQuY2hhckF0KHN0YXJ0SW5kZXgpID09PSBcIi9cIiAmJiB0ZXh0LmNoYXJBdChzdGFydEluZGV4ICsgMSkgPT09IFwiL1wiKSB7XG4gICAgcmV0dXJuIHNraXBFdmVyeXRoaW5nQnV0TmV3TGluZSh0ZXh0LCBzdGFydEluZGV4KTtcbiAgfVxuICByZXR1cm4gc3RhcnRJbmRleDtcbn1cbnZhciBza2lwX3RyYWlsaW5nX2NvbW1lbnRfZGVmYXVsdCA9IHNraXBUcmFpbGluZ0NvbW1lbnQ7XG5cbi8vIHNyYy91dGlscy9nZXQtbmV4dC1ub24tc3BhY2Utbm9uLWNvbW1lbnQtY2hhcmFjdGVyLWluZGV4LmpzXG5mdW5jdGlvbiBnZXROZXh0Tm9uU3BhY2VOb25Db21tZW50Q2hhcmFjdGVySW5kZXgodGV4dCwgc3RhcnRJbmRleCkge1xuICBsZXQgb2xkSWR4ID0gbnVsbDtcbiAgbGV0IG5leHRJZHggPSBzdGFydEluZGV4O1xuICB3aGlsZSAobmV4dElkeCAhPT0gb2xkSWR4KSB7XG4gICAgb2xkSWR4ID0gbmV4dElkeDtcbiAgICBuZXh0SWR4ID0gc2tpcFNwYWNlcyh0ZXh0LCBuZXh0SWR4KTtcbiAgICBuZXh0SWR4ID0gc2tpcF9pbmxpbmVfY29tbWVudF9kZWZhdWx0KHRleHQsIG5leHRJZHgpO1xuICAgIG5leHRJZHggPSBza2lwX3RyYWlsaW5nX2NvbW1lbnRfZGVmYXVsdCh0ZXh0LCBuZXh0SWR4KTtcbiAgICBuZXh0SWR4ID0gc2tpcF9uZXdsaW5lX2RlZmF1bHQodGV4dCwgbmV4dElkeCk7XG4gIH1cbiAgcmV0dXJuIG5leHRJZHg7XG59XG52YXIgZ2V0X25leHRfbm9uX3NwYWNlX25vbl9jb21tZW50X2NoYXJhY3Rlcl9pbmRleF9kZWZhdWx0ID0gZ2V0TmV4dE5vblNwYWNlTm9uQ29tbWVudENoYXJhY3RlckluZGV4O1xuXG4vLyBzcmMvdXRpbHMvaXMtbmV4dC1saW5lLWVtcHR5LmpzXG5mdW5jdGlvbiBpc05leHRMaW5lRW1wdHkodGV4dCwgc3RhcnRJbmRleCkge1xuICBsZXQgb2xkSWR4ID0gbnVsbDtcbiAgbGV0IGlkeCA9IHN0YXJ0SW5kZXg7XG4gIHdoaWxlIChpZHggIT09IG9sZElkeCkge1xuICAgIG9sZElkeCA9IGlkeDtcbiAgICBpZHggPSBza2lwVG9MaW5lRW5kKHRleHQsIGlkeCk7XG4gICAgaWR4ID0gc2tpcF9pbmxpbmVfY29tbWVudF9kZWZhdWx0KHRleHQsIGlkeCk7XG4gICAgaWR4ID0gc2tpcFNwYWNlcyh0ZXh0LCBpZHgpO1xuICB9XG4gIGlkeCA9IHNraXBfdHJhaWxpbmdfY29tbWVudF9kZWZhdWx0KHRleHQsIGlkeCk7XG4gIGlkeCA9IHNraXBfbmV3bGluZV9kZWZhdWx0KHRleHQsIGlkeCk7XG4gIHJldHVybiBpZHggIT09IGZhbHNlICYmIGhhc19uZXdsaW5lX2RlZmF1bHQodGV4dCwgaWR4KTtcbn1cbnZhciBpc19uZXh0X2xpbmVfZW1wdHlfZGVmYXVsdCA9IGlzTmV4dExpbmVFbXB0eTtcblxuLy8gbm9kZV9tb2R1bGVzL2VzY2FwZS1zdHJpbmctcmVnZXhwL2luZGV4LmpzXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmdSZWdleHAoc3RyaW5nKSB7XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO1xuICB9XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW3xcXFxce30oKVtcXF1eJCsqPy5dL2csIFwiXFxcXCQmXCIpLnJlcGxhY2UoLy0vZywgXCJcXFxceDJkXCIpO1xufVxuXG4vLyBzcmMvdXRpbHMvZ2V0LW1heC1jb250aW51b3VzLWNvdW50LmpzXG5mdW5jdGlvbiBnZXRNYXhDb250aW51b3VzQ291bnQodGV4dCwgc2VhcmNoU3RyaW5nKSB7XG4gIGNvbnN0IHJlc3VsdHMgPSB0ZXh0Lm1hdGNoKFxuICAgIG5ldyBSZWdFeHAoYCgke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWFyY2hTdHJpbmcpfSkrYCwgXCJnXCIpXG4gICk7XG4gIGlmIChyZXN1bHRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChtYXhDb3VudCwgcmVzdWx0KSA9PiBNYXRoLm1heChtYXhDb3VudCwgcmVzdWx0Lmxlbmd0aCAvIHNlYXJjaFN0cmluZy5sZW5ndGgpLFxuICAgIDBcbiAgKTtcbn1cbnZhciBnZXRfbWF4X2NvbnRpbnVvdXNfY291bnRfZGVmYXVsdCA9IGdldE1heENvbnRpbnVvdXNDb3VudDtcblxuLy8gc3JjL3V0aWxzL2dldC1pbmRlbnQtc2l6ZS5qc1xuZnVuY3Rpb24gZ2V0SW5kZW50U2l6ZSh2YWx1ZSwgdGFiV2lkdGgpIHtcbiAgY29uc3QgbGFzdE5ld2xpbmVJbmRleCA9IHZhbHVlLmxhc3RJbmRleE9mKFwiXFxuXCIpO1xuICBpZiAobGFzdE5ld2xpbmVJbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gZ2V0X2FsaWdubWVudF9zaXplX2RlZmF1bHQoXG4gICAgLy8gQWxsIHRoZSBsZWFkaW5nIHdoaXRlc3BhY2VzXG4gICAgdmFsdWUuc2xpY2UobGFzdE5ld2xpbmVJbmRleCArIDEpLm1hdGNoKC9eW1xcdCBdKi8pWzBdLFxuICAgIHRhYldpZHRoXG4gICk7XG59XG52YXIgZ2V0X2luZGVudF9zaXplX2RlZmF1bHQgPSBnZXRJbmRlbnRTaXplO1xuXG4vLyBzcmMvdXRpbHMvaGFzLW5ld2xpbmUtaW4tcmFuZ2UuanNcbmZ1bmN0aW9uIGhhc05ld2xpbmVJblJhbmdlKHRleHQsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KSB7XG4gIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpIDwgZW5kSW5kZXg7ICsraSkge1xuICAgIGlmICh0ZXh0LmNoYXJBdChpKSA9PT0gXCJcXG5cIikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cbnZhciBoYXNfbmV3bGluZV9pbl9yYW5nZV9kZWZhdWx0ID0gaGFzTmV3bGluZUluUmFuZ2U7XG5cbi8vIHNyYy91dGlscy9oYXMtc3BhY2VzLmpzXG5mdW5jdGlvbiBoYXNTcGFjZXModGV4dCwgc3RhcnRJbmRleCwgb3B0aW9uczggPSB7fSkge1xuICBjb25zdCBpZHggPSBza2lwU3BhY2VzKFxuICAgIHRleHQsXG4gICAgb3B0aW9uczguYmFja3dhcmRzID8gc3RhcnRJbmRleCAtIDEgOiBzdGFydEluZGV4LFxuICAgIG9wdGlvbnM4XG4gICk7XG4gIHJldHVybiBpZHggIT09IHN0YXJ0SW5kZXg7XG59XG52YXIgaGFzX3NwYWNlc19kZWZhdWx0ID0gaGFzU3BhY2VzO1xuXG4vLyBzcmMvdXRpbHMvZ2V0LW5leHQtbm9uLXNwYWNlLW5vbi1jb21tZW50LWNoYXJhY3Rlci5qc1xuZnVuY3Rpb24gZ2V0TmV4dE5vblNwYWNlTm9uQ29tbWVudENoYXJhY3Rlcih0ZXh0LCBzdGFydEluZGV4KSB7XG4gIGNvbnN0IGluZGV4ID0gZ2V0X25leHRfbm9uX3NwYWNlX25vbl9jb21tZW50X2NoYXJhY3Rlcl9pbmRleF9kZWZhdWx0KHRleHQsIHN0YXJ0SW5kZXgpO1xuICByZXR1cm4gaW5kZXggPT09IGZhbHNlID8gXCJcIiA6IHRleHQuY2hhckF0KGluZGV4KTtcbn1cbnZhciBnZXRfbmV4dF9ub25fc3BhY2Vfbm9uX2NvbW1lbnRfY2hhcmFjdGVyX2RlZmF1bHQgPSBnZXROZXh0Tm9uU3BhY2VOb25Db21tZW50Q2hhcmFjdGVyO1xuXG4vLyBzcmMvdXRpbHMvbWFrZS1zdHJpbmcuanNcbmZ1bmN0aW9uIG1ha2VTdHJpbmcocmF3VGV4dCwgZW5jbG9zaW5nUXVvdGUsIHVuZXNjYXBlVW5uZWNlc3NhcnlFc2NhcGVzKSB7XG4gIGNvbnN0IG90aGVyUXVvdGUgPSBlbmNsb3NpbmdRdW90ZSA9PT0gJ1wiJyA/IFwiJ1wiIDogJ1wiJztcbiAgY29uc3QgcmVnZXggPSAvXFxcXCguKXwoW1wiJ10pL2dzO1xuICBjb25zdCByYXcgPSBzdHJpbmdfcmVwbGFjZV9hbGxfZGVmYXVsdChcbiAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICBmYWxzZSxcbiAgICByYXdUZXh0LFxuICAgIHJlZ2V4LFxuICAgIChtYXRjaCwgZXNjYXBlZCwgcXVvdGUpID0+IHtcbiAgICAgIGlmIChlc2NhcGVkID09PSBvdGhlclF1b3RlKSB7XG4gICAgICAgIHJldHVybiBlc2NhcGVkO1xuICAgICAgfVxuICAgICAgaWYgKHF1b3RlID09PSBlbmNsb3NpbmdRdW90ZSkge1xuICAgICAgICByZXR1cm4gXCJcXFxcXCIgKyBxdW90ZTtcbiAgICAgIH1cbiAgICAgIGlmIChxdW90ZSkge1xuICAgICAgICByZXR1cm4gcXVvdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5lc2NhcGVVbm5lY2Vzc2FyeUVzY2FwZXMgJiYgL15bXlxcblxcclwiJzAtN1xcXFxiZm5ydC12eFxcdTIwMjhcXHUyMDI5XSQvLnRlc3QoZXNjYXBlZCkgPyBlc2NhcGVkIDogXCJcXFxcXCIgKyBlc2NhcGVkO1xuICAgIH1cbiAgKTtcbiAgcmV0dXJuIGVuY2xvc2luZ1F1b3RlICsgcmF3ICsgZW5jbG9zaW5nUXVvdGU7XG59XG52YXIgbWFrZV9zdHJpbmdfZGVmYXVsdCA9IG1ha2VTdHJpbmc7XG5cbi8vIHNyYy91dGlscy9wdWJsaWMuanNcbmZ1bmN0aW9uIGxlZ2FjeUdldE5leHROb25TcGFjZU5vbkNvbW1lbnRDaGFyYWN0ZXJJbmRleCh0ZXh0LCBub2RlLCBsb2NFbmQpIHtcbiAgcmV0dXJuIGdldF9uZXh0X25vbl9zcGFjZV9ub25fY29tbWVudF9jaGFyYWN0ZXJfaW5kZXhfZGVmYXVsdChcbiAgICB0ZXh0LFxuICAgIGxvY0VuZChub2RlKVxuICApO1xufVxuZnVuY3Rpb24gZ2V0TmV4dE5vblNwYWNlTm9uQ29tbWVudENoYXJhY3RlckluZGV4Mih0ZXh0LCBzdGFydEluZGV4KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAyIHx8IHR5cGVvZiBzdGFydEluZGV4ID09PSBcIm51bWJlclwiID8gZ2V0X25leHRfbm9uX3NwYWNlX25vbl9jb21tZW50X2NoYXJhY3Rlcl9pbmRleF9kZWZhdWx0KHRleHQsIHN0YXJ0SW5kZXgpIDogKFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gZXhwZWN0ZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgbGVnYWN5R2V0TmV4dE5vblNwYWNlTm9uQ29tbWVudENoYXJhY3RlckluZGV4KC4uLmFyZ3VtZW50cylcbiAgKTtcbn1cbmZ1bmN0aW9uIGxlZ2FjeUlzUHJldmlvdXNMaW5lRW1wdHkodGV4dCwgbm9kZSwgbG9jU3RhcnQpIHtcbiAgcmV0dXJuIGlzX3ByZXZpb3VzX2xpbmVfZW1wdHlfZGVmYXVsdCh0ZXh0LCBsb2NTdGFydChub2RlKSk7XG59XG5mdW5jdGlvbiBpc1ByZXZpb3VzTGluZUVtcHR5Mih0ZXh0LCBzdGFydEluZGV4KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAyIHx8IHR5cGVvZiBzdGFydEluZGV4ID09PSBcIm51bWJlclwiID8gaXNfcHJldmlvdXNfbGluZV9lbXB0eV9kZWZhdWx0KHRleHQsIHN0YXJ0SW5kZXgpIDogKFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gZXhwZWN0ZWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgbGVnYWN5SXNQcmV2aW91c0xpbmVFbXB0eSguLi5hcmd1bWVudHMpXG4gICk7XG59XG5mdW5jdGlvbiBsZWdhY3lJc05leHRMaW5lRW1wdHkodGV4dCwgbm9kZSwgbG9jRW5kKSB7XG4gIHJldHVybiBpc19uZXh0X2xpbmVfZW1wdHlfZGVmYXVsdCh0ZXh0LCBsb2NFbmQobm9kZSkpO1xufVxuZnVuY3Rpb24gaXNOZXh0TGluZUVtcHR5Mih0ZXh0LCBzdGFydEluZGV4KSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAyIHx8IHR5cGVvZiBzdGFydEluZGV4ID09PSBcIm51bWJlclwiID8gaXNfbmV4dF9saW5lX2VtcHR5X2RlZmF1bHQodGV4dCwgc3RhcnRJbmRleCkgOiAoXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBleHBlY3RlZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItcmVzdC1wYXJhbXNcbiAgICBsZWdhY3lJc05leHRMaW5lRW1wdHkoLi4uYXJndW1lbnRzKVxuICApO1xufVxuXG4vLyBzcmMvaW5kZXguanNcbmltcG9ydCAqIGFzIGRvYyBmcm9tIFwiLi9kb2MubWpzXCI7XG5cbi8vIHNyYy9tYWluL3ZlcnNpb24uZXZhbHVhdGUuY2pzXG52YXIgdmVyc2lvbl9ldmFsdWF0ZV9kZWZhdWx0ID0gXCIzLjAuM1wiO1xuXG4vLyBzcmMvaW5kZXguanNcbmZ1bmN0aW9uIHdpdGhQbHVnaW5zKGZuLCBvcHRpb25zQXJndW1lbnRJbmRleCA9IDEpIHtcbiAgcmV0dXJuIGFzeW5jICguLi5hcmdzKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uczggPSBhcmdzW29wdGlvbnNBcmd1bWVudEluZGV4XSA/PyB7fTtcbiAgICBjb25zdCB7IHBsdWdpbnMgPSBbXSB9ID0gb3B0aW9uczg7XG4gICAgYXJnc1tvcHRpb25zQXJndW1lbnRJbmRleF0gPSB7XG4gICAgICAuLi5vcHRpb25zOCxcbiAgICAgIHBsdWdpbnM6IChhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGxvYWRfYnVpbHRpbl9wbHVnaW5zX2RlZmF1bHQoKSxcbiAgICAgICAgLy8gVE9ETzogc3RhbmRhbG9uZSB2ZXJzaW9uIGFsbG93IGBwbHVnaW5zYCB0byBiZSBgcHJldHRpZXJQbHVnaW5zYCB3aGljaCBpcyBhbiBvYmplY3QsIHNob3VsZCBhbGxvdyB0aGF0IHRvb1xuICAgICAgICBsb2FkX3BsdWdpbnNfZGVmYXVsdChwbHVnaW5zKVxuICAgICAgXSkpLmZsYXQoKVxuICAgIH07XG4gICAgcmV0dXJuIGZuKC4uLmFyZ3MpO1xuICB9O1xufVxudmFyIGZvcm1hdFdpdGhDdXJzb3IyID0gd2l0aFBsdWdpbnMoZm9ybWF0V2l0aEN1cnNvcik7XG5hc3luYyBmdW5jdGlvbiBmb3JtYXQyKHRleHQsIG9wdGlvbnM4KSB7XG4gIGNvbnN0IHsgZm9ybWF0dGVkIH0gPSBhd2FpdCBmb3JtYXRXaXRoQ3Vyc29yMih0ZXh0LCB7XG4gICAgLi4ub3B0aW9uczgsXG4gICAgY3Vyc29yT2Zmc2V0OiAtMVxuICB9KTtcbiAgcmV0dXJuIGZvcm1hdHRlZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrKHRleHQsIG9wdGlvbnM4KSB7XG4gIHJldHVybiBhd2FpdCBmb3JtYXQyKHRleHQsIG9wdGlvbnM4KSA9PT0gdGV4dDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNsZWFyQ2FjaGUzKCkge1xuICBjbGVhckNhY2hlKCk7XG4gIGNsZWFyQ2FjaGUyKCk7XG59XG52YXIgZ2V0RmlsZUluZm8yID0gd2l0aFBsdWdpbnMoZ2V0X2ZpbGVfaW5mb19kZWZhdWx0KTtcbnZhciBnZXRTdXBwb3J0SW5mbzIgPSB3aXRoUGx1Z2lucyhnZXRTdXBwb3J0SW5mbywgMCk7XG52YXIgc2hhcmVkV2l0aENsaSA9IHtcbiAgZXJyb3JzOiBlcnJvcnNfZXhwb3J0cyxcbiAgb3B0aW9uQ2F0ZWdvcmllczogb3B0aW9uX2NhdGVnb3JpZXNfZXhwb3J0cyxcbiAgY3JlYXRlSXNJZ25vcmVkRnVuY3Rpb24sXG4gIGZvcm1hdE9wdGlvbnNIaWRkZW5EZWZhdWx0cyxcbiAgbm9ybWFsaXplT3B0aW9uczogbm9ybWFsaXplX29wdGlvbnNfZGVmYXVsdCxcbiAgZ2V0U3VwcG9ydEluZm9XaXRob3V0UGx1Z2luczogZ2V0U3VwcG9ydEluZm8sXG4gIG5vcm1hbGl6ZU9wdGlvblNldHRpbmdzLFxuICB2bm9wdHM6IHtcbiAgICBDaG9pY2VTY2hlbWEsXG4gICAgYXBpRGVzY3JpcHRvclxuICB9LFxuICBmYXN0R2xvYjogaW1wb3J0X2Zhc3RfZ2xvYi5kZWZhdWx0LFxuICB1dGlsczoge1xuICAgIGlzTm9uRW1wdHlBcnJheTogaXNfbm9uX2VtcHR5X2FycmF5X2RlZmF1bHQsXG4gICAgcGFydGl0aW9uOiBwYXJ0aXRpb25fZGVmYXVsdCxcbiAgICBvbWl0OiBvYmplY3Rfb21pdF9kZWZhdWx0XG4gIH1cbn07XG52YXIgZGVidWdBcGlzID0ge1xuICBwYXJzZTogd2l0aFBsdWdpbnMocGFyc2UyKSxcbiAgZm9ybWF0QVNUOiB3aXRoUGx1Z2lucyhmb3JtYXRBc3QpLFxuICBmb3JtYXREb2M6IHdpdGhQbHVnaW5zKGZvcm1hdERvYyksXG4gIHByaW50VG9Eb2M6IHdpdGhQbHVnaW5zKHByaW50VG9Eb2MpLFxuICBwcmludERvY1RvU3RyaW5nOiB3aXRoUGx1Z2lucyhwcmludERvY1RvU3RyaW5nMilcbn07XG5cbi8vIHdpdGgtZGVmYXVsdC1leHBvcnQ6c3JjL2luZGV4LmpzXG52YXIgc3JjX2RlZmF1bHQgPSBzcmNfZXhwb3J0cztcbmV4cG9ydCB7XG4gIGRlYnVnQXBpcyBhcyBfX2RlYnVnLFxuICBzaGFyZWRXaXRoQ2xpIGFzIF9faW50ZXJuYWwsXG4gIGNoZWNrLFxuICBjbGVhckNhY2hlMyBhcyBjbGVhckNvbmZpZ0NhY2hlLFxuICBzcmNfZGVmYXVsdCBhcyBkZWZhdWx0LFxuICBkb2MsXG4gIGZvcm1hdDIgYXMgZm9ybWF0LFxuICBmb3JtYXRXaXRoQ3Vyc29yMiBhcyBmb3JtYXRXaXRoQ3Vyc29yLFxuICBnZXRGaWxlSW5mbzIgYXMgZ2V0RmlsZUluZm8sXG4gIGdldFN1cHBvcnRJbmZvMiBhcyBnZXRTdXBwb3J0SW5mbyxcbiAgcmVzb2x2ZUNvbmZpZyxcbiAgcmVzb2x2ZUNvbmZpZ0ZpbGUsXG4gIHB1YmxpY19leHBvcnRzIGFzIHV0aWwsXG4gIHZlcnNpb25fZXZhbHVhdGVfZGVmYXVsdCBhcyB2ZXJzaW9uXG59O1xuIiwgImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgYXMgX19wcmV0dGllckNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIGFzIF9fcHJldHRpZXJGaWxlVXJsVG9QYXRoIH0gZnJvbSBcInVybFwiO1xuaW1wb3J0IHsgZGlybmFtZSBhcyBfX3ByZXR0aWVyRGlybmFtZSB9IGZyb20gXCJwYXRoXCI7XG5jb25zdCByZXF1aXJlID0gX19wcmV0dGllckNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcbmNvbnN0IF9fZmlsZW5hbWUgPSBfX3ByZXR0aWVyRmlsZVVybFRvUGF0aChpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgX19kaXJuYW1lID0gX19wcmV0dGllckRpcm5hbWUoX19maWxlbmFtZSk7XG5cbnZhciBfX2NyZWF0ZSA9IE9iamVjdC5jcmVhdGU7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19nZXRQcm90b09mID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19yZXF1aXJlID0gLyogQF9fUFVSRV9fICovICgoeCkgPT4gdHlwZW9mIHJlcXVpcmUgIT09IFwidW5kZWZpbmVkXCIgPyByZXF1aXJlIDogdHlwZW9mIFByb3h5ICE9PSBcInVuZGVmaW5lZFwiID8gbmV3IFByb3h5KHgsIHtcbiAgZ2V0OiAoYSwgYikgPT4gKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiID8gcmVxdWlyZSA6IGEpW2JdXG59KSA6IHgpKGZ1bmN0aW9uKHgpIHtcbiAgaWYgKHR5cGVvZiByZXF1aXJlICE9PSBcInVuZGVmaW5lZFwiKVxuICAgIHJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIHRocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgXCInICsgeCArICdcIiBpcyBub3Qgc3VwcG9ydGVkJyk7XG59KTtcbnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZTIoKSB7XG4gIHJldHVybiBtb2QgfHwgKDAsIGNiW19fZ2V0T3duUHJvcE5hbWVzKGNiKVswXV0pKChtb2QgPSB7IGV4cG9ydHM6IHt9IH0pLmV4cG9ydHMsIG1vZCksIG1vZC5leHBvcnRzO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvRVNNID0gKG1vZCwgaXNOb2RlTW9kZSwgdGFyZ2V0KSA9PiAodGFyZ2V0ID0gbW9kICE9IG51bGwgPyBfX2NyZWF0ZShfX2dldFByb3RvT2YobW9kKSkgOiB7fSwgX19jb3B5UHJvcHMoXG4gIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU01cbiAgLy8gZmlsZSB0aGF0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIENvbW1vbkpTIGZpbGUgdXNpbmcgYSBCYWJlbC1cbiAgLy8gY29tcGF0aWJsZSB0cmFuc2Zvcm0gKGkuZS4gXCJfX2VzTW9kdWxlXCIgaGFzIG5vdCBiZWVuIHNldCksIHRoZW4gc2V0XG4gIC8vIFwiZGVmYXVsdFwiIHRvIHRoZSBDb21tb25KUyBcIm1vZHVsZS5leHBvcnRzXCIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS5cbiAgaXNOb2RlTW9kZSB8fCAhbW9kIHx8ICFtb2QuX19lc01vZHVsZSA/IF9fZGVmUHJvcCh0YXJnZXQsIFwiZGVmYXVsdFwiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsXG4gIG1vZFxuKSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L2NhY2hlV3JhcHBlci5qc1xudmFyIHJlcXVpcmVfY2FjaGVXcmFwcGVyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvY2FjaGVXcmFwcGVyLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzLmNhY2hlV3JhcHBlciA9IGNhY2hlV3JhcHBlcjtcbiAgICBleHBvcnRzLmNhY2hlV3JhcHBlclN5bmMgPSBjYWNoZVdyYXBwZXJTeW5jO1xuICAgIGFzeW5jIGZ1bmN0aW9uIGNhY2hlV3JhcHBlcihjYWNoZSwga2V5LCBmbikge1xuICAgICAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAoY2FjaGVkICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKCk7XG4gICAgICBjYWNoZS5zZXQoa2V5LCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FjaGVXcmFwcGVyU3luYyhjYWNoZSwga2V5LCBmbikge1xuICAgICAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KGtleSk7XG4gICAgICBpZiAoY2FjaGVkICE9PSB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKCk7XG4gICAgICBjYWNoZS5zZXQoa2V5LCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9nZXRQcm9wZXJ0eUJ5UGF0aC5qc1xudmFyIHJlcXVpcmVfZ2V0UHJvcGVydHlCeVBhdGggPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9nZXRQcm9wZXJ0eUJ5UGF0aC5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5nZXRQcm9wZXJ0eUJ5UGF0aCA9IGdldFByb3BlcnR5QnlQYXRoO1xuICAgIGZ1bmN0aW9uIGdldFByb3BlcnR5QnlQYXRoKHNvdXJjZSwgcGF0aCkge1xuICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSBcInN0cmluZ1wiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIHBhdGgpKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VbcGF0aF07XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJzZWRQYXRoID0gdHlwZW9mIHBhdGggPT09IFwic3RyaW5nXCIgPyBwYXRoLnNwbGl0KFwiLlwiKSA6IHBhdGg7XG4gICAgICByZXR1cm4gcGFyc2VkUGF0aC5yZWR1Y2UoKHByZXZpb3VzLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKHByZXZpb3VzID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZXZpb3VzW2tleV07XG4gICAgICB9LCBzb3VyY2UpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9pbXBvcnQtZnJlc2gvbm9kZV9tb2R1bGVzL3Jlc29sdmUtZnJvbS9pbmRleC5qc1xudmFyIHJlcXVpcmVfcmVzb2x2ZV9mcm9tID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2ltcG9ydC1mcmVzaC9ub2RlX21vZHVsZXMvcmVzb2x2ZS1mcm9tL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHBhdGggPSBfX3JlcXVpcmUoXCJwYXRoXCIpO1xuICAgIHZhciBNb2R1bGUgPSBfX3JlcXVpcmUoXCJtb2R1bGVcIik7XG4gICAgdmFyIGZzMiA9IF9fcmVxdWlyZShcImZzXCIpO1xuICAgIHZhciByZXNvbHZlRnJvbSA9IChmcm9tRGlyLCBtb2R1bGVJZCwgc2lsZW50KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGZyb21EaXIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgXFxgZnJvbURpclxcYCB0byBiZSBvZiB0eXBlIFxcYHN0cmluZ1xcYCwgZ290IFxcYCR7dHlwZW9mIGZyb21EaXJ9XFxgYCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIG1vZHVsZUlkICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIFxcYG1vZHVsZUlkXFxgIHRvIGJlIG9mIHR5cGUgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgbW9kdWxlSWR9XFxgYCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBmcm9tRGlyID0gZnMyLnJlYWxwYXRoU3luYyhmcm9tRGlyKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXJyLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgICBmcm9tRGlyID0gcGF0aC5yZXNvbHZlKGZyb21EaXIpO1xuICAgICAgICB9IGVsc2UgaWYgKHNpbGVudCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgZnJvbUZpbGUgPSBwYXRoLmpvaW4oZnJvbURpciwgXCJub29wLmpzXCIpO1xuICAgICAgY29uc3QgcmVzb2x2ZUZpbGVOYW1lID0gKCkgPT4gTW9kdWxlLl9yZXNvbHZlRmlsZW5hbWUobW9kdWxlSWQsIHtcbiAgICAgICAgaWQ6IGZyb21GaWxlLFxuICAgICAgICBmaWxlbmFtZTogZnJvbUZpbGUsXG4gICAgICAgIHBhdGhzOiBNb2R1bGUuX25vZGVNb2R1bGVQYXRocyhmcm9tRGlyKVxuICAgICAgfSk7XG4gICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVGaWxlTmFtZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVGaWxlTmFtZSgpO1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSAoZnJvbURpciwgbW9kdWxlSWQpID0+IHJlc29sdmVGcm9tKGZyb21EaXIsIG1vZHVsZUlkKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5zaWxlbnQgPSAoZnJvbURpciwgbW9kdWxlSWQpID0+IHJlc29sdmVGcm9tKGZyb21EaXIsIG1vZHVsZUlkLCB0cnVlKTtcbiAgfVxufSk7XG5cbi8vIHNjcmlwdHMvYnVpbGQvc2hpbXMvcGFyZW50LW1vZHVsZS5janNcbnZhciByZXF1aXJlX3BhcmVudF9tb2R1bGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJzY3JpcHRzL2J1aWxkL3NoaW1zL3BhcmVudC1tb2R1bGUuY2pzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHBhcmVudE1vZHVsZSA9IChmaWxlKSA9PiBmaWxlO1xuICAgIG1vZHVsZS5leHBvcnRzID0gcGFyZW50TW9kdWxlO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2ltcG9ydC1mcmVzaC9pbmRleC5qc1xudmFyIHJlcXVpcmVfaW1wb3J0X2ZyZXNoID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2ltcG9ydC1mcmVzaC9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBwYXRoID0gX19yZXF1aXJlKFwicGF0aFwiKTtcbiAgICB2YXIgcmVzb2x2ZUZyb20gPSByZXF1aXJlX3Jlc29sdmVfZnJvbSgpO1xuICAgIHZhciBwYXJlbnRNb2R1bGUgPSByZXF1aXJlX3BhcmVudF9tb2R1bGUoKTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IChtb2R1bGVJZCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBtb2R1bGVJZCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmdcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJlbnRQYXRoID0gcGFyZW50TW9kdWxlKF9fZmlsZW5hbWUpO1xuICAgICAgY29uc3QgY3dkID0gcGFyZW50UGF0aCA/IHBhdGguZGlybmFtZShwYXJlbnRQYXRoKSA6IF9fZGlybmFtZTtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcmVzb2x2ZUZyb20oY3dkLCBtb2R1bGVJZCk7XG4gICAgICBjb25zdCBvbGRNb2R1bGUgPSBfX3JlcXVpcmUuY2FjaGVbZmlsZVBhdGhdO1xuICAgICAgaWYgKG9sZE1vZHVsZSAmJiBvbGRNb2R1bGUucGFyZW50KSB7XG4gICAgICAgIGxldCBpID0gb2xkTW9kdWxlLnBhcmVudC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgICBpZiAob2xkTW9kdWxlLnBhcmVudC5jaGlsZHJlbltpXS5pZCA9PT0gZmlsZVBhdGgpIHtcbiAgICAgICAgICAgIG9sZE1vZHVsZS5wYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGksIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVsZXRlIF9fcmVxdWlyZS5jYWNoZVtmaWxlUGF0aF07XG4gICAgICBjb25zdCBwYXJlbnQgPSBfX3JlcXVpcmUuY2FjaGVbcGFyZW50UGF0aF07XG4gICAgICByZXR1cm4gcGFyZW50ID09PSB2b2lkIDAgPyBfX3JlcXVpcmUoZmlsZVBhdGgpIDogcGFyZW50LnJlcXVpcmUoZmlsZVBhdGgpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvaXMtYXJyYXlpc2gvaW5kZXguanNcbnZhciByZXF1aXJlX2lzX2FycmF5aXNoID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2lzLWFycmF5aXNoL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0FycmF5aXNoKG9iaikge1xuICAgICAgaWYgKCFvYmopIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEFycmF5IHx8IEFycmF5LmlzQXJyYXkob2JqKSB8fCBvYmoubGVuZ3RoID49IDAgJiYgb2JqLnNwbGljZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvZXJyb3ItZXgvaW5kZXguanNcbnZhciByZXF1aXJlX2Vycm9yX2V4ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Vycm9yLWV4L2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHV0aWwgPSBfX3JlcXVpcmUoXCJ1dGlsXCIpO1xuICAgIHZhciBpc0FycmF5aXNoID0gcmVxdWlyZV9pc19hcnJheWlzaCgpO1xuICAgIHZhciBlcnJvckV4ID0gZnVuY3Rpb24gZXJyb3JFeDIobmFtZSwgcHJvcGVydGllcykge1xuICAgICAgaWYgKCFuYW1lIHx8IG5hbWUuY29uc3RydWN0b3IgIT09IFN0cmluZykge1xuICAgICAgICBwcm9wZXJ0aWVzID0gbmFtZSB8fCB7fTtcbiAgICAgICAgbmFtZSA9IEVycm9yLm5hbWU7XG4gICAgICB9XG4gICAgICB2YXIgZXJyb3JFeEVycm9yID0gZnVuY3Rpb24gRXJyb3JFWEVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgaWYgKCF0aGlzKSB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBFcnJvckVYRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgaW5zdGFuY2VvZiBFcnJvciA/IG1lc3NhZ2UubWVzc2FnZSA6IG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlO1xuICAgICAgICBFcnJvci5jYWxsKHRoaXMsIG1lc3NhZ2UpO1xuICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBlcnJvckV4RXJyb3IpO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgXCJtZXNzYWdlXCIsIHtcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBuZXdNZXNzYWdlID0gbWVzc2FnZS5zcGxpdCgvXFxyP1xcbi9nKTtcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIG1vZGlmaWVyID0gcHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgICBpZiAoXCJtZXNzYWdlXCIgaW4gbW9kaWZpZXIpIHtcbiAgICAgICAgICAgICAgICBuZXdNZXNzYWdlID0gbW9kaWZpZXIubWVzc2FnZSh0aGlzW2tleV0sIG5ld01lc3NhZ2UpIHx8IG5ld01lc3NhZ2U7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0FycmF5aXNoKG5ld01lc3NhZ2UpKSB7XG4gICAgICAgICAgICAgICAgICBuZXdNZXNzYWdlID0gW25ld01lc3NhZ2VdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5ld01lc3NhZ2Uuam9pbihcIlxcblwiKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldDogZnVuY3Rpb24odikge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHY7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG92ZXJ3cml0dGVuU3RhY2sgPSBudWxsO1xuICAgICAgICB2YXIgc3RhY2tEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCBcInN0YWNrXCIpO1xuICAgICAgICB2YXIgc3RhY2tHZXR0ZXIgPSBzdGFja0Rlc2NyaXB0b3IuZ2V0O1xuICAgICAgICB2YXIgc3RhY2tWYWx1ZSA9IHN0YWNrRGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgZGVsZXRlIHN0YWNrRGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgZGVsZXRlIHN0YWNrRGVzY3JpcHRvci53cml0YWJsZTtcbiAgICAgICAgc3RhY2tEZXNjcmlwdG9yLnNldCA9IGZ1bmN0aW9uKG5ld3N0YWNrKSB7XG4gICAgICAgICAgb3ZlcndyaXR0ZW5TdGFjayA9IG5ld3N0YWNrO1xuICAgICAgICB9O1xuICAgICAgICBzdGFja0Rlc2NyaXB0b3IuZ2V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgdmFyIHN0YWNrID0gKG92ZXJ3cml0dGVuU3RhY2sgfHwgKHN0YWNrR2V0dGVyID8gc3RhY2tHZXR0ZXIuY2FsbCh0aGlzKSA6IHN0YWNrVmFsdWUpKS5zcGxpdCgvXFxyP1xcbisvZyk7XG4gICAgICAgICAgaWYgKCFvdmVyd3JpdHRlblN0YWNrKSB7XG4gICAgICAgICAgICBzdGFja1swXSA9IHRoaXMubmFtZSArIFwiOiBcIiArIHRoaXMubWVzc2FnZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxpbmVDb3VudCA9IDE7XG4gICAgICAgICAgZm9yICh2YXIga2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmICghcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIG1vZGlmaWVyID0gcHJvcGVydGllc1trZXldO1xuICAgICAgICAgICAgaWYgKFwibGluZVwiIGluIG1vZGlmaWVyKSB7XG4gICAgICAgICAgICAgIHZhciBsaW5lID0gbW9kaWZpZXIubGluZSh0aGlzW2tleV0pO1xuICAgICAgICAgICAgICBpZiAobGluZSkge1xuICAgICAgICAgICAgICAgIHN0YWNrLnNwbGljZShsaW5lQ291bnQrKywgMCwgXCIgICAgXCIgKyBsaW5lKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFwic3RhY2tcIiBpbiBtb2RpZmllcikge1xuICAgICAgICAgICAgICBtb2RpZmllci5zdGFjayh0aGlzW2tleV0sIHN0YWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN0YWNrLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBcInN0YWNrXCIsIHN0YWNrRGVzY3JpcHRvcik7XG4gICAgICB9O1xuICAgICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikge1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZXJyb3JFeEVycm9yLnByb3RvdHlwZSwgRXJyb3IucHJvdG90eXBlKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGVycm9yRXhFcnJvciwgRXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXRpbC5pbmhlcml0cyhlcnJvckV4RXJyb3IsIEVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlcnJvckV4RXJyb3I7XG4gICAgfTtcbiAgICBlcnJvckV4LmFwcGVuZCA9IGZ1bmN0aW9uKHN0ciwgZGVmKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXNzYWdlOiBmdW5jdGlvbih2LCBtZXNzYWdlKSB7XG4gICAgICAgICAgdiA9IHYgfHwgZGVmO1xuICAgICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICBtZXNzYWdlWzBdICs9IFwiIFwiICsgc3RyLnJlcGxhY2UoXCIlc1wiLCB2LnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIGVycm9yRXgubGluZSA9IGZ1bmN0aW9uKHN0ciwgZGVmKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgdiA9IHYgfHwgZGVmO1xuICAgICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoXCIlc1wiLCB2LnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gZXJyb3JFeDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qc29uLXBhcnNlLWV2ZW4tYmV0dGVyLWVycm9ycy9pbmRleC5qc1xudmFyIHJlcXVpcmVfanNvbl9wYXJzZV9ldmVuX2JldHRlcl9lcnJvcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanNvbi1wYXJzZS1ldmVuLWJldHRlci1lcnJvcnMvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgaGV4aWZ5ID0gKGNoYXIpID0+IHtcbiAgICAgIGNvbnN0IGggPSBjaGFyLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gICAgICByZXR1cm4gXCIweFwiICsgKGgubGVuZ3RoICUgMiA/IFwiMFwiIDogXCJcIikgKyBoO1xuICAgIH07XG4gICAgdmFyIHBhcnNlRXJyb3IgPSAoZSwgdHh0LCBjb250ZXh0KSA9PiB7XG4gICAgICBpZiAoIXR4dCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSArIFwiIHdoaWxlIHBhcnNpbmcgZW1wdHkgc3RyaW5nXCIsXG4gICAgICAgICAgcG9zaXRpb246IDBcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJhZFRva2VuID0gZS5tZXNzYWdlLm1hdGNoKC9eVW5leHBlY3RlZCB0b2tlbiAoLikgLipwb3NpdGlvblxccysoXFxkKykvaSk7XG4gICAgICBjb25zdCBlcnJJZHggPSBiYWRUb2tlbiA/ICtiYWRUb2tlblsyXSA6IGUubWVzc2FnZS5tYXRjaCgvXlVuZXhwZWN0ZWQgZW5kIG9mIEpTT04uKi9pKSA/IHR4dC5sZW5ndGggLSAxIDogbnVsbDtcbiAgICAgIGNvbnN0IG1zZyA9IGJhZFRva2VuID8gZS5tZXNzYWdlLnJlcGxhY2UoL15VbmV4cGVjdGVkIHRva2VuIC4vLCBgVW5leHBlY3RlZCB0b2tlbiAke0pTT04uc3RyaW5naWZ5KGJhZFRva2VuWzFdKX0gKCR7aGV4aWZ5KGJhZFRva2VuWzFdKX0pYCkgOiBlLm1lc3NhZ2U7XG4gICAgICBpZiAoZXJySWR4ICE9PSBudWxsICYmIGVycklkeCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZXJySWR4IDw9IGNvbnRleHQgPyAwIDogZXJySWR4IC0gY29udGV4dDtcbiAgICAgICAgY29uc3QgZW5kID0gZXJySWR4ICsgY29udGV4dCA+PSB0eHQubGVuZ3RoID8gdHh0Lmxlbmd0aCA6IGVycklkeCArIGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHNsaWNlID0gKHN0YXJ0ID09PSAwID8gXCJcIiA6IFwiLi4uXCIpICsgdHh0LnNsaWNlKHN0YXJ0LCBlbmQpICsgKGVuZCA9PT0gdHh0Lmxlbmd0aCA/IFwiXCIgOiBcIi4uLlwiKTtcbiAgICAgICAgY29uc3QgbmVhciA9IHR4dCA9PT0gc2xpY2UgPyBcIlwiIDogXCJuZWFyIFwiO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6IG1zZyArIGAgd2hpbGUgcGFyc2luZyAke25lYXJ9JHtKU09OLnN0cmluZ2lmeShzbGljZSl9YCxcbiAgICAgICAgICBwb3NpdGlvbjogZXJySWR4XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2U6IG1zZyArIGAgd2hpbGUgcGFyc2luZyAnJHt0eHQuc2xpY2UoMCwgY29udGV4dCAqIDIpfSdgLFxuICAgICAgICAgIHBvc2l0aW9uOiAwXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgSlNPTlBhcnNlRXJyb3IgPSBjbGFzcyBleHRlbmRzIFN5bnRheEVycm9yIHtcbiAgICAgIGNvbnN0cnVjdG9yKGVyLCB0eHQsIGNvbnRleHQsIGNhbGxlcikge1xuICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCAyMDtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBwYXJzZUVycm9yKGVyLCB0eHQsIGNvbnRleHQpO1xuICAgICAgICBzdXBlcihtZXRhZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBtZXRhZGF0YSk7XG4gICAgICAgIHRoaXMuY29kZSA9IFwiRUpTT05QQVJTRVwiO1xuICAgICAgICB0aGlzLnN5c3RlbUVycm9yID0gZXI7XG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIGNhbGxlciB8fCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgICAgIH1cbiAgICAgIGdldCBuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgICAgfVxuICAgICAgc2V0IG5hbWUobikge1xuICAgICAgfVxuICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGtJbmRlbnQgPSBTeW1ib2wuZm9yKFwiaW5kZW50XCIpO1xuICAgIHZhciBrTmV3bGluZSA9IFN5bWJvbC5mb3IoXCJuZXdsaW5lXCIpO1xuICAgIHZhciBmb3JtYXRSRSA9IC9eXFxzKlt7XFxbXSgoPzpcXHI/XFxuKSspKFtcXHNcXHRdKikvO1xuICAgIHZhciBlbXB0eVJFID0gL14oPzpcXHtcXH18XFxbXFxdKSgoPzpcXHI/XFxuKSspPyQvO1xuICAgIHZhciBwYXJzZUpzb24gPSAodHh0LCByZXZpdmVyLCBjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBwYXJzZVRleHQgPSBzdHJpcEJPTSh0eHQpO1xuICAgICAgY29udGV4dCA9IGNvbnRleHQgfHwgMjA7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBbLCBuZXdsaW5lID0gXCJcXG5cIiwgaW5kZW50ID0gXCIgIFwiXSA9IHBhcnNlVGV4dC5tYXRjaChlbXB0eVJFKSB8fCBwYXJzZVRleHQubWF0Y2goZm9ybWF0UkUpIHx8IFssIFwiXCIsIFwiXCJdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHBhcnNlVGV4dCwgcmV2aXZlcik7XG4gICAgICAgIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIHJlc3VsdFtrTmV3bGluZV0gPSBuZXdsaW5lO1xuICAgICAgICAgIHJlc3VsdFtrSW5kZW50XSA9IGluZGVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAodHlwZW9mIHR4dCAhPT0gXCJzdHJpbmdcIiAmJiAhQnVmZmVyLmlzQnVmZmVyKHR4dCkpIHtcbiAgICAgICAgICBjb25zdCBpc0VtcHR5QXJyYXkgPSBBcnJheS5pc0FycmF5KHR4dCkgJiYgdHh0Lmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICBgQ2Fubm90IHBhcnNlICR7aXNFbXB0eUFycmF5ID8gXCJhbiBlbXB0eSBhcnJheVwiIDogU3RyaW5nKHR4dCl9YFxuICAgICAgICAgICksIHtcbiAgICAgICAgICAgIGNvZGU6IFwiRUpTT05QQVJTRVwiLFxuICAgICAgICAgICAgc3lzdGVtRXJyb3I6IGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgSlNPTlBhcnNlRXJyb3IoZSwgcGFyc2VUZXh0LCBjb250ZXh0LCBwYXJzZUpzb24pO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHN0cmlwQk9NID0gKHR4dCkgPT4gU3RyaW5nKHR4dCkucmVwbGFjZSgvXlxcdUZFRkYvLCBcIlwiKTtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHBhcnNlSnNvbjtcbiAgICBwYXJzZUpzb24uSlNPTlBhcnNlRXJyb3IgPSBKU09OUGFyc2VFcnJvcjtcbiAgICBwYXJzZUpzb24ubm9FeGNlcHRpb25zID0gKHR4dCwgcmV2aXZlcikgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyaXBCT00odHh0KSwgcmV2aXZlcik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wYXJzZS1qc29uL25vZGVfbW9kdWxlcy9saW5lcy1hbmQtY29sdW1ucy9idWlsZC9pbmRleC5qc1xudmFyIHJlcXVpcmVfYnVpbGQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcGFyc2UtanNvbi9ub2RlX21vZHVsZXMvbGluZXMtYW5kLWNvbHVtbnMvYnVpbGQvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgICBleHBvcnRzLkxpbmVzQW5kQ29sdW1ucyA9IHZvaWQgMDtcbiAgICB2YXIgTEYgPSBcIlxcblwiO1xuICAgIHZhciBDUiA9IFwiXFxyXCI7XG4gICAgdmFyIExpbmVzQW5kQ29sdW1ucyA9IChcbiAgICAgIC8qKiBAY2xhc3MgKi9cbiAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICBmdW5jdGlvbiBMaW5lc0FuZENvbHVtbnMyKHN0cmluZykge1xuICAgICAgICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgICAgICAgIHZhciBvZmZzZXRzID0gWzBdO1xuICAgICAgICAgIGZvciAodmFyIG9mZnNldCA9IDA7IG9mZnNldCA8IHN0cmluZy5sZW5ndGg7ICkge1xuICAgICAgICAgICAgc3dpdGNoIChzdHJpbmdbb2Zmc2V0XSkge1xuICAgICAgICAgICAgICBjYXNlIExGOlxuICAgICAgICAgICAgICAgIG9mZnNldCArPSBMRi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgb2Zmc2V0cy5wdXNoKG9mZnNldCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQ1I6XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IENSLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoc3RyaW5nW29mZnNldF0gPT09IExGKSB7XG4gICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gTEYubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvZmZzZXRzLnB1c2gob2Zmc2V0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBvZmZzZXQrKztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5vZmZzZXRzID0gb2Zmc2V0cztcbiAgICAgICAgfVxuICAgICAgICBMaW5lc0FuZENvbHVtbnMyLnByb3RvdHlwZS5sb2NhdGlvbkZvckluZGV4ID0gZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5zdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGxpbmUgPSAwO1xuICAgICAgICAgIHZhciBvZmZzZXRzID0gdGhpcy5vZmZzZXRzO1xuICAgICAgICAgIHdoaWxlIChvZmZzZXRzW2xpbmUgKyAxXSA8PSBpbmRleCkge1xuICAgICAgICAgICAgbGluZSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgY29sdW1uID0gaW5kZXggLSBvZmZzZXRzW2xpbmVdO1xuICAgICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9O1xuICAgICAgICB9O1xuICAgICAgICBMaW5lc0FuZENvbHVtbnMyLnByb3RvdHlwZS5pbmRleEZvckxvY2F0aW9uID0gZnVuY3Rpb24obG9jYXRpb24pIHtcbiAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmUsIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbjtcbiAgICAgICAgICBpZiAobGluZSA8IDAgfHwgbGluZSA+PSB0aGlzLm9mZnNldHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvbHVtbiA8IDAgfHwgY29sdW1uID4gdGhpcy5sZW5ndGhPZkxpbmUobGluZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5vZmZzZXRzW2xpbmVdICsgY29sdW1uO1xuICAgICAgICB9O1xuICAgICAgICBMaW5lc0FuZENvbHVtbnMyLnByb3RvdHlwZS5sZW5ndGhPZkxpbmUgPSBmdW5jdGlvbihsaW5lKSB7XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMub2Zmc2V0c1tsaW5lXTtcbiAgICAgICAgICB2YXIgbmV4dE9mZnNldCA9IGxpbmUgPT09IHRoaXMub2Zmc2V0cy5sZW5ndGggLSAxID8gdGhpcy5zdHJpbmcubGVuZ3RoIDogdGhpcy5vZmZzZXRzW2xpbmUgKyAxXTtcbiAgICAgICAgICByZXR1cm4gbmV4dE9mZnNldCAtIG9mZnNldDtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIExpbmVzQW5kQ29sdW1uczI7XG4gICAgICB9KClcbiAgICApO1xuICAgIGV4cG9ydHMuTGluZXNBbmRDb2x1bW5zID0gTGluZXNBbmRDb2x1bW5zO1xuICAgIGV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTGluZXNBbmRDb2x1bW5zO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXRva2Vucy9pbmRleC5qc1xudmFyIHJlcXVpcmVfanNfdG9rZW5zID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXRva2Vucy9pbmRleC5qc1wiKGV4cG9ydHMpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5kZWZhdWx0ID0gLygoWydcIl0pKD86KD8hXFwyfFxcXFwpLnxcXFxcKD86XFxyXFxufFtcXHNcXFNdKSkqKFxcMik/fGAoPzpbXmBcXFxcJF18XFxcXFtcXHNcXFNdfFxcJCg/IVxceyl8XFwkXFx7KD86W157fV18XFx7W159XSpcXH0/KSpcXH0/KSooYCk/KXwoXFwvXFwvLiopfChcXC9cXCooPzpbXipdfFxcKig/IVxcLykpKihcXCpcXC8pPyl8KFxcLyg/IVxcKikoPzpcXFsoPzooPyFbXFxdXFxcXF0pLnxcXFxcLikqXFxdfCg/IVtcXC9cXF1cXFxcXSkufFxcXFwuKStcXC8oPzooPyFcXHMqKD86XFxifFtcXHUwMDgwLVxcdUZGRkYkXFxcXCdcIn4oe118WytcXC0hXSg/IT0pfFxcLj9cXGQpKXxbZ21peXVzXXsxLDZ9XFxiKD8hW1xcdTAwODAtXFx1RkZGRiRcXFxcXXxcXHMqKD86WytcXC0qJSZ8Xjw+IT0/KHtdfFxcLyg/IVtcXC8qXSkpKSkpfCgwW3hYXVtcXGRhLWZBLUZdK3wwW29PXVswLTddK3wwW2JCXVswMV0rfCg/OlxcZCpcXC5cXGQrfFxcZCtcXC4/KSg/OltlRV1bKy1dP1xcZCspPyl8KCg/IVxcZCkoPzooPyFcXHMpWyRcXHdcXHUwMDgwLVxcdUZGRkZdfFxcXFx1W1xcZGEtZkEtRl17NH18XFxcXHVcXHtbXFxkYS1mQS1GXStcXH0pKyl8KC0tfFxcK1xcK3wmJnxcXHxcXHx8PT58XFwuezN9fCg/OlsrXFwtXFwvJSZ8Xl18XFwqezEsMn18PHsxLDJ9fD57MSwzfXwhPT98PXsxLDJ9KT0/fFs/fi4sOjtbXFxdKCl7fV0pfChcXHMrKXwoXiR8W1xcc1xcU10pL2c7XG4gICAgZXhwb3J0cy5tYXRjaFRvVG9rZW4gPSBmdW5jdGlvbihtYXRjaCkge1xuICAgICAgdmFyIHRva2VuID0geyB0eXBlOiBcImludmFsaWRcIiwgdmFsdWU6IG1hdGNoWzBdLCBjbG9zZWQ6IHZvaWQgMCB9O1xuICAgICAgaWYgKG1hdGNoWzFdKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJzdHJpbmdcIiwgdG9rZW4uY2xvc2VkID0gISEobWF0Y2hbM10gfHwgbWF0Y2hbNF0pO1xuICAgICAgZWxzZSBpZiAobWF0Y2hbNV0pXG4gICAgICAgIHRva2VuLnR5cGUgPSBcImNvbW1lbnRcIjtcbiAgICAgIGVsc2UgaWYgKG1hdGNoWzZdKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJjb21tZW50XCIsIHRva2VuLmNsb3NlZCA9ICEhbWF0Y2hbN107XG4gICAgICBlbHNlIGlmIChtYXRjaFs4XSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwicmVnZXhcIjtcbiAgICAgIGVsc2UgaWYgKG1hdGNoWzldKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJudW1iZXJcIjtcbiAgICAgIGVsc2UgaWYgKG1hdGNoWzEwXSlcbiAgICAgICAgdG9rZW4udHlwZSA9IFwibmFtZVwiO1xuICAgICAgZWxzZSBpZiAobWF0Y2hbMTFdKVxuICAgICAgICB0b2tlbi50eXBlID0gXCJwdW5jdHVhdG9yXCI7XG4gICAgICBlbHNlIGlmIChtYXRjaFsxMl0pXG4gICAgICAgIHRva2VuLnR5cGUgPSBcIndoaXRlc3BhY2VcIjtcbiAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvbGliL2lkZW50aWZpZXIuanNcbnZhciByZXF1aXJlX2lkZW50aWZpZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci9saWIvaWRlbnRpZmllci5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5pc0lkZW50aWZpZXJDaGFyID0gaXNJZGVudGlmaWVyQ2hhcjtcbiAgICBleHBvcnRzLmlzSWRlbnRpZmllck5hbWUgPSBpc0lkZW50aWZpZXJOYW1lO1xuICAgIGV4cG9ydHMuaXNJZGVudGlmaWVyU3RhcnQgPSBpc0lkZW50aWZpZXJTdGFydDtcbiAgICB2YXIgbm9uQVNDSUlpZGVudGlmaWVyU3RhcnRDaGFycyA9IFwiXFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwODcwLVxcdTA4ODdcXHUwODg5LVxcdTA4OEVcXHUwOEEwLVxcdTA4QzlcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM1RFxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0REXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA0LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcxMVxcdTE3MUYtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNENcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTgtXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTYwLVxcdTIxODhcXHUyQzAwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTMwMDUtXFx1MzAwN1xcdTMwMjEtXFx1MzAyOVxcdTMwMzEtXFx1MzAzNVxcdTMwMzgtXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUItXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkVGXFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0NBXFx1QTdEMFxcdUE3RDFcXHVBN0QzXFx1QTdENS1cXHVBN0Q5XFx1QTdGMi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ1wiO1xuICAgIHZhciBub25BU0NJSWlkZW50aWZpZXJDaGFycyA9IFwiXFx1MjAwQ1xcdTIwMERcXHhCN1xcdTAzMDAtXFx1MDM2RlxcdTAzODdcXHUwNDgzLVxcdTA0ODdcXHUwNTkxLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MUFcXHUwNjRCLVxcdTA2NjlcXHUwNjcwXFx1MDZENi1cXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFN1xcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNkYwLVxcdTA2RjlcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDdBNi1cXHUwN0IwXFx1MDdDMC1cXHUwN0M5XFx1MDdFQi1cXHUwN0YzXFx1MDdGRFxcdTA4MTYtXFx1MDgxOVxcdTA4MUItXFx1MDgyM1xcdTA4MjUtXFx1MDgyN1xcdTA4MjktXFx1MDgyRFxcdTA4NTktXFx1MDg1QlxcdTA4OTgtXFx1MDg5RlxcdTA4Q0EtXFx1MDhFMVxcdTA4RTMtXFx1MDkwM1xcdTA5M0EtXFx1MDkzQ1xcdTA5M0UtXFx1MDk0RlxcdTA5NTEtXFx1MDk1N1xcdTA5NjJcXHUwOTYzXFx1MDk2Ni1cXHUwOTZGXFx1MDk4MS1cXHUwOTgzXFx1MDlCQ1xcdTA5QkUtXFx1MDlDNFxcdTA5QzdcXHUwOUM4XFx1MDlDQi1cXHUwOUNEXFx1MDlEN1xcdTA5RTJcXHUwOUUzXFx1MDlFNi1cXHUwOUVGXFx1MDlGRVxcdTBBMDEtXFx1MEEwM1xcdTBBM0NcXHUwQTNFLVxcdTBBNDJcXHUwQTQ3XFx1MEE0OFxcdTBBNEItXFx1MEE0RFxcdTBBNTFcXHUwQTY2LVxcdTBBNzFcXHUwQTc1XFx1MEE4MS1cXHUwQTgzXFx1MEFCQ1xcdTBBQkUtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRTJcXHUwQUUzXFx1MEFFNi1cXHUwQUVGXFx1MEFGQS1cXHUwQUZGXFx1MEIwMS1cXHUwQjAzXFx1MEIzQ1xcdTBCM0UtXFx1MEI0NFxcdTBCNDdcXHUwQjQ4XFx1MEI0Qi1cXHUwQjREXFx1MEI1NS1cXHUwQjU3XFx1MEI2MlxcdTBCNjNcXHUwQjY2LVxcdTBCNkZcXHUwQjgyXFx1MEJCRS1cXHUwQkMyXFx1MEJDNi1cXHUwQkM4XFx1MEJDQS1cXHUwQkNEXFx1MEJEN1xcdTBCRTYtXFx1MEJFRlxcdTBDMDAtXFx1MEMwNFxcdTBDM0NcXHUwQzNFLVxcdTBDNDRcXHUwQzQ2LVxcdTBDNDhcXHUwQzRBLVxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDNjJcXHUwQzYzXFx1MEM2Ni1cXHUwQzZGXFx1MEM4MS1cXHUwQzgzXFx1MENCQ1xcdTBDQkUtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENFMlxcdTBDRTNcXHUwQ0U2LVxcdTBDRUZcXHUwQ0YzXFx1MEQwMC1cXHUwRDAzXFx1MEQzQlxcdTBEM0NcXHUwRDNFLVxcdTBENDRcXHUwRDQ2LVxcdTBENDhcXHUwRDRBLVxcdTBENERcXHUwRDU3XFx1MEQ2MlxcdTBENjNcXHUwRDY2LVxcdTBENkZcXHUwRDgxLVxcdTBEODNcXHUwRENBXFx1MERDRi1cXHUwREQ0XFx1MERENlxcdTBERDgtXFx1MERERlxcdTBERTYtXFx1MERFRlxcdTBERjJcXHUwREYzXFx1MEUzMVxcdTBFMzQtXFx1MEUzQVxcdTBFNDctXFx1MEU0RVxcdTBFNTAtXFx1MEU1OVxcdTBFQjFcXHUwRUI0LVxcdTBFQkNcXHUwRUM4LVxcdTBFQ0VcXHUwRUQwLVxcdTBFRDlcXHUwRjE4XFx1MEYxOVxcdTBGMjAtXFx1MEYyOVxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGM0VcXHUwRjNGXFx1MEY3MS1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjhELVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAyQi1cXHUxMDNFXFx1MTA0MC1cXHUxMDQ5XFx1MTA1Ni1cXHUxMDU5XFx1MTA1RS1cXHUxMDYwXFx1MTA2Mi1cXHUxMDY0XFx1MTA2Ny1cXHUxMDZEXFx1MTA3MS1cXHUxMDc0XFx1MTA4Mi1cXHUxMDhEXFx1MTA4Ri1cXHUxMDlEXFx1MTM1RC1cXHUxMzVGXFx1MTM2OS1cXHUxMzcxXFx1MTcxMi1cXHUxNzE1XFx1MTczMi1cXHUxNzM0XFx1MTc1MlxcdTE3NTNcXHUxNzcyXFx1MTc3M1xcdTE3QjQtXFx1MTdEM1xcdTE3RERcXHUxN0UwLVxcdTE3RTlcXHUxODBCLVxcdTE4MERcXHUxODBGLVxcdTE4MTlcXHUxOEE5XFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTRGXFx1MTlEMC1cXHUxOURBXFx1MUExNy1cXHUxQTFCXFx1MUE1NS1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFCMC1cXHUxQUJEXFx1MUFCRi1cXHUxQUNFXFx1MUIwMC1cXHUxQjA0XFx1MUIzNC1cXHUxQjQ0XFx1MUI1MC1cXHUxQjU5XFx1MUI2Qi1cXHUxQjczXFx1MUI4MC1cXHUxQjgyXFx1MUJBMS1cXHUxQkFEXFx1MUJCMC1cXHUxQkI5XFx1MUJFNi1cXHUxQkYzXFx1MUMyNC1cXHUxQzM3XFx1MUM0MC1cXHUxQzQ5XFx1MUM1MC1cXHUxQzU5XFx1MUNEMC1cXHUxQ0QyXFx1MUNENC1cXHUxQ0U4XFx1MUNFRFxcdTFDRjRcXHUxQ0Y3LVxcdTFDRjlcXHUxREMwLVxcdTFERkZcXHUyMDNGXFx1MjA0MFxcdTIwNTRcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MkNFRi1cXHUyQ0YxXFx1MkQ3RlxcdTJERTAtXFx1MkRGRlxcdTMwMkEtXFx1MzAyRlxcdTMwOTlcXHUzMDlBXFx1QTYyMC1cXHVBNjI5XFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2OUVcXHVBNjlGXFx1QTZGMFxcdUE2RjFcXHVBODAyXFx1QTgwNlxcdUE4MEJcXHVBODIzLVxcdUE4MjdcXHVBODJDXFx1QTg4MFxcdUE4ODFcXHVBOEI0LVxcdUE4QzVcXHVBOEQwLVxcdUE4RDlcXHVBOEUwLVxcdUE4RjFcXHVBOEZGLVxcdUE5MDlcXHVBOTI2LVxcdUE5MkRcXHVBOTQ3LVxcdUE5NTNcXHVBOTgwLVxcdUE5ODNcXHVBOUIzLVxcdUE5QzBcXHVBOUQwLVxcdUE5RDlcXHVBOUU1XFx1QTlGMC1cXHVBOUY5XFx1QUEyOS1cXHVBQTM2XFx1QUE0M1xcdUFBNENcXHVBQTREXFx1QUE1MC1cXHVBQTU5XFx1QUE3Qi1cXHVBQTdEXFx1QUFCMFxcdUFBQjItXFx1QUFCNFxcdUFBQjdcXHVBQUI4XFx1QUFCRVxcdUFBQkZcXHVBQUMxXFx1QUFFQi1cXHVBQUVGXFx1QUFGNVxcdUFBRjZcXHVBQkUzLVxcdUFCRUFcXHVBQkVDXFx1QUJFRFxcdUFCRjAtXFx1QUJGOVxcdUZCMUVcXHVGRTAwLVxcdUZFMEZcXHVGRTIwLVxcdUZFMkZcXHVGRTMzXFx1RkUzNFxcdUZFNEQtXFx1RkU0RlxcdUZGMTAtXFx1RkYxOVxcdUZGM0ZcIjtcbiAgICB2YXIgbm9uQVNDSUlpZGVudGlmaWVyU3RhcnQgPSBuZXcgUmVnRXhwKFwiW1wiICsgbm9uQVNDSUlpZGVudGlmaWVyU3RhcnRDaGFycyArIFwiXVwiKTtcbiAgICB2YXIgbm9uQVNDSUlpZGVudGlmaWVyID0gbmV3IFJlZ0V4cChcIltcIiArIG5vbkFTQ0lJaWRlbnRpZmllclN0YXJ0Q2hhcnMgKyBub25BU0NJSWlkZW50aWZpZXJDaGFycyArIFwiXVwiKTtcbiAgICBub25BU0NJSWlkZW50aWZpZXJTdGFydENoYXJzID0gbm9uQVNDSUlpZGVudGlmaWVyQ2hhcnMgPSBudWxsO1xuICAgIHZhciBhc3RyYWxJZGVudGlmaWVyU3RhcnRDb2RlcyA9IFswLCAxMSwgMiwgMjUsIDIsIDE4LCAyLCAxLCAyLCAxNCwgMywgMTMsIDM1LCAxMjIsIDcwLCA1MiwgMjY4LCAyOCwgNCwgNDgsIDQ4LCAzMSwgMTQsIDI5LCA2LCAzNywgMTEsIDI5LCAzLCAzNSwgNSwgNywgMiwgNCwgNDMsIDE1NywgMTksIDM1LCA1LCAzNSwgNSwgMzksIDksIDUxLCAxMywgMTAsIDIsIDE0LCAyLCA2LCAyLCAxLCAyLCAxMCwgMiwgMTQsIDIsIDYsIDIsIDEsIDY4LCAzMTAsIDEwLCAyMSwgMTEsIDcsIDI1LCA1LCAyLCA0MSwgMiwgOCwgNzAsIDUsIDMsIDAsIDIsIDQzLCAyLCAxLCA0LCAwLCAzLCAyMiwgMTEsIDIyLCAxMCwgMzAsIDY2LCAxOCwgMiwgMSwgMTEsIDIxLCAxMSwgMjUsIDcxLCA1NSwgNywgMSwgNjUsIDAsIDE2LCAzLCAyLCAyLCAyLCAyOCwgNDMsIDI4LCA0LCAyOCwgMzYsIDcsIDIsIDI3LCAyOCwgNTMsIDExLCAyMSwgMTEsIDE4LCAxNCwgMTcsIDExMSwgNzIsIDU2LCA1MCwgMTQsIDUwLCAxNCwgMzUsIDM0OSwgNDEsIDcsIDEsIDc5LCAyOCwgMTEsIDAsIDksIDIxLCA0MywgMTcsIDQ3LCAyMCwgMjgsIDIyLCAxMywgNTIsIDU4LCAxLCAzLCAwLCAxNCwgNDQsIDMzLCAyNCwgMjcsIDM1LCAzMCwgMCwgMywgMCwgOSwgMzQsIDQsIDAsIDEzLCA0NywgMTUsIDMsIDIyLCAwLCAyLCAwLCAzNiwgMTcsIDIsIDI0LCAyMCwgMSwgNjQsIDYsIDIsIDAsIDIsIDMsIDIsIDE0LCAyLCA5LCA4LCA0NiwgMzksIDcsIDMsIDEsIDMsIDIxLCAyLCA2LCAyLCAxLCAyLCA0LCA0LCAwLCAxOSwgMCwgMTMsIDQsIDE1OSwgNTIsIDE5LCAzLCAyMSwgMiwgMzEsIDQ3LCAyMSwgMSwgMiwgMCwgMTg1LCA0NiwgNDIsIDMsIDM3LCA0NywgMjEsIDAsIDYwLCA0MiwgMTQsIDAsIDcyLCAyNiwgMzgsIDYsIDE4NiwgNDMsIDExNywgNjMsIDMyLCA3LCAzLCAwLCAzLCA3LCAyLCAxLCAyLCAyMywgMTYsIDAsIDIsIDAsIDk1LCA3LCAzLCAzOCwgMTcsIDAsIDIsIDAsIDI5LCAwLCAxMSwgMzksIDgsIDAsIDIyLCAwLCAxMiwgNDUsIDIwLCAwLCAxOSwgNzIsIDI2NCwgOCwgMiwgMzYsIDE4LCAwLCA1MCwgMjksIDExMywgNiwgMiwgMSwgMiwgMzcsIDIyLCAwLCAyNiwgNSwgMiwgMSwgMiwgMzEsIDE1LCAwLCAzMjgsIDE4LCAxNiwgMCwgMiwgMTIsIDIsIDMzLCAxMjUsIDAsIDgwLCA5MjEsIDEwMywgMTEwLCAxOCwgMTk1LCAyNjM3LCA5NiwgMTYsIDEwNzEsIDE4LCA1LCA0MDI2LCA1ODIsIDg2MzQsIDU2OCwgOCwgMzAsIDE4LCA3OCwgMTgsIDI5LCAxOSwgNDcsIDE3LCAzLCAzMiwgMjAsIDYsIDE4LCA2ODksIDYzLCAxMjksIDc0LCA2LCAwLCA2NywgMTIsIDY1LCAxLCAyLCAwLCAyOSwgNjEzNSwgOSwgMTIzNywgNDMsIDgsIDg5MzYsIDMsIDIsIDYsIDIsIDEsIDIsIDI5MCwgMTYsIDAsIDMwLCAyLCAzLCAwLCAxNSwgMywgOSwgMzk1LCAyMzA5LCAxMDYsIDYsIDEyLCA0LCA4LCA4LCA5LCA1OTkxLCA4NCwgMiwgNzAsIDIsIDEsIDMsIDAsIDMsIDEsIDMsIDMsIDIsIDExLCAyLCAwLCAyLCA2LCAyLCA2NCwgMiwgMywgMywgNywgMiwgNiwgMiwgMjcsIDIsIDMsIDIsIDQsIDIsIDAsIDQsIDYsIDIsIDMzOSwgMywgMjQsIDIsIDI0LCAyLCAzMCwgMiwgMjQsIDIsIDMwLCAyLCAyNCwgMiwgMzAsIDIsIDI0LCAyLCAzMCwgMiwgMjQsIDIsIDcsIDE4NDUsIDMwLCA3LCA1LCAyNjIsIDYxLCAxNDcsIDQ0LCAxMSwgNiwgMTcsIDAsIDMyMiwgMjksIDE5LCA0MywgNDg1LCAyNywgNzU3LCA2LCAyLCAzLCAyLCAxLCAyLCAxNCwgMiwgMTk2LCA2MCwgNjcsIDgsIDAsIDEyMDUsIDMsIDIsIDI2LCAyLCAxLCAyLCAwLCAzLCAwLCAyLCA5LCAyLCAzLCAyLCAwLCAyLCAwLCA3LCAwLCA1LCAwLCAyLCAwLCAyLCAwLCAyLCAyLCAyLCAxLCAyLCAwLCAzLCAwLCAyLCAwLCAyLCAwLCAyLCAwLCAyLCAwLCAyLCAxLCAyLCAwLCAzLCAzLCAyLCA2LCAyLCAzLCAyLCAzLCAyLCAwLCAyLCA5LCAyLCAxNiwgNiwgMiwgMiwgNCwgMiwgMTYsIDQ0MjEsIDQyNzE5LCAzMywgNDE1MywgNywgMjIxLCAzLCA1NzYxLCAxNSwgNzQ3MiwgMzEwNCwgNTQxLCAxNTA3LCA0OTM4LCA2LCA0MTkxXTtcbiAgICB2YXIgYXN0cmFsSWRlbnRpZmllckNvZGVzID0gWzUwOSwgMCwgMjI3LCAwLCAxNTAsIDQsIDI5NCwgOSwgMTM2OCwgMiwgMiwgMSwgNiwgMywgNDEsIDIsIDUsIDAsIDE2NiwgMSwgNTc0LCAzLCA5LCA5LCAzNzAsIDEsIDgxLCAyLCA3MSwgMTAsIDUwLCAzLCAxMjMsIDIsIDU0LCAxNCwgMzIsIDEwLCAzLCAxLCAxMSwgMywgNDYsIDEwLCA4LCAwLCA0NiwgOSwgNywgMiwgMzcsIDEzLCAyLCA5LCA2LCAxLCA0NSwgMCwgMTMsIDIsIDQ5LCAxMywgOSwgMywgMiwgMTEsIDgzLCAxMSwgNywgMCwgMywgMCwgMTU4LCAxMSwgNiwgOSwgNywgMywgNTYsIDEsIDIsIDYsIDMsIDEsIDMsIDIsIDEwLCAwLCAxMSwgMSwgMywgNiwgNCwgNCwgMTkzLCAxNywgMTAsIDksIDUsIDAsIDgyLCAxOSwgMTMsIDksIDIxNCwgNiwgMywgOCwgMjgsIDEsIDgzLCAxNiwgMTYsIDksIDgyLCAxMiwgOSwgOSwgODQsIDE0LCA1LCA5LCAyNDMsIDE0LCAxNjYsIDksIDcxLCA1LCAyLCAxLCAzLCAzLCAyLCAwLCAyLCAxLCAxMywgOSwgMTIwLCA2LCAzLCA2LCA0LCAwLCAyOSwgOSwgNDEsIDYsIDIsIDMsIDksIDAsIDEwLCAxMCwgNDcsIDE1LCA0MDYsIDcsIDIsIDcsIDE3LCA5LCA1NywgMjEsIDIsIDEzLCAxMjMsIDUsIDQsIDAsIDIsIDEsIDIsIDYsIDIsIDAsIDksIDksIDQ5LCA0LCAyLCAxLCAyLCA0LCA5LCA5LCAzMzAsIDMsIDEwLCAxLCAyLCAwLCA0OSwgNiwgNCwgNCwgMTQsIDksIDUzNTEsIDAsIDcsIDE0LCAxMzgzNSwgOSwgODcsIDksIDM5LCA0LCA2MCwgNiwgMjYsIDksIDEwMTQsIDAsIDIsIDU0LCA4LCAzLCA4MiwgMCwgMTIsIDEsIDE5NjI4LCAxLCA0NzA2LCA0NSwgMywgMjIsIDU0MywgNCwgNCwgNSwgOSwgNywgMywgNiwgMzEsIDMsIDE0OSwgMiwgMTQxOCwgNDksIDUxMywgNTQsIDUsIDQ5LCA5LCAwLCAxNSwgMCwgMjMsIDQsIDIsIDE0LCAxMzYxLCA2LCAyLCAxNiwgMywgNiwgMiwgMSwgMiwgNCwgMTAxLCAwLCAxNjEsIDYsIDEwLCA5LCAzNTcsIDAsIDYyLCAxMywgNDk5LCAxMywgOTgzLCA2LCAxMTAsIDYsIDYsIDksIDQ3NTksIDksIDc4NzcxOSwgMjM5XTtcbiAgICBmdW5jdGlvbiBpc0luQXN0cmFsU2V0KGNvZGUsIHNldCkge1xuICAgICAgbGV0IHBvcyA9IDY1NTM2O1xuICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IHNldC5sZW5ndGg7IGkgPCBsZW5ndGg7IGkgKz0gMikge1xuICAgICAgICBwb3MgKz0gc2V0W2ldO1xuICAgICAgICBpZiAocG9zID4gY29kZSlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHBvcyArPSBzZXRbaSArIDFdO1xuICAgICAgICBpZiAocG9zID49IGNvZGUpXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllclN0YXJ0KGNvZGUpIHtcbiAgICAgIGlmIChjb2RlIDwgNjUpXG4gICAgICAgIHJldHVybiBjb2RlID09PSAzNjtcbiAgICAgIGlmIChjb2RlIDw9IDkwKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChjb2RlIDwgOTcpXG4gICAgICAgIHJldHVybiBjb2RlID09PSA5NTtcbiAgICAgIGlmIChjb2RlIDw9IDEyMilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoY29kZSA8PSA2NTUzNSkge1xuICAgICAgICByZXR1cm4gY29kZSA+PSAxNzAgJiYgbm9uQVNDSUlpZGVudGlmaWVyU3RhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpc0luQXN0cmFsU2V0KGNvZGUsIGFzdHJhbElkZW50aWZpZXJTdGFydENvZGVzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyQ2hhcihjb2RlKSB7XG4gICAgICBpZiAoY29kZSA8IDQ4KVxuICAgICAgICByZXR1cm4gY29kZSA9PT0gMzY7XG4gICAgICBpZiAoY29kZSA8IDU4KVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChjb2RlIDwgNjUpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChjb2RlIDw9IDkwKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChjb2RlIDwgOTcpXG4gICAgICAgIHJldHVybiBjb2RlID09PSA5NTtcbiAgICAgIGlmIChjb2RlIDw9IDEyMilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoY29kZSA8PSA2NTUzNSkge1xuICAgICAgICByZXR1cm4gY29kZSA+PSAxNzAgJiYgbm9uQVNDSUlpZGVudGlmaWVyLnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaXNJbkFzdHJhbFNldChjb2RlLCBhc3RyYWxJZGVudGlmaWVyU3RhcnRDb2RlcykgfHwgaXNJbkFzdHJhbFNldChjb2RlLCBhc3RyYWxJZGVudGlmaWVyQ29kZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJOYW1lKG5hbWUpIHtcbiAgICAgIGxldCBpc0ZpcnN0ID0gdHJ1ZTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3AgPSBuYW1lLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmICgoY3AgJiA2NDUxMikgPT09IDU1Mjk2ICYmIGkgKyAxIDwgbmFtZS5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCB0cmFpbCA9IG5hbWUuY2hhckNvZGVBdCgrK2kpO1xuICAgICAgICAgIGlmICgodHJhaWwgJiA2NDUxMikgPT09IDU2MzIwKSB7XG4gICAgICAgICAgICBjcCA9IDY1NTM2ICsgKChjcCAmIDEwMjMpIDw8IDEwKSArICh0cmFpbCAmIDEwMjMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNGaXJzdCkge1xuICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclN0YXJ0KGNwKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaXNJZGVudGlmaWVyQ2hhcihjcCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhaXNGaXJzdDtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci9saWIva2V5d29yZC5qc1xudmFyIHJlcXVpcmVfa2V5d29yZCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9AYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyL2xpYi9rZXl3b3JkLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzLmlzS2V5d29yZCA9IGlzS2V5d29yZDtcbiAgICBleHBvcnRzLmlzUmVzZXJ2ZWRXb3JkID0gaXNSZXNlcnZlZFdvcmQ7XG4gICAgZXhwb3J0cy5pc1N0cmljdEJpbmRPbmx5UmVzZXJ2ZWRXb3JkID0gaXNTdHJpY3RCaW5kT25seVJlc2VydmVkV29yZDtcbiAgICBleHBvcnRzLmlzU3RyaWN0QmluZFJlc2VydmVkV29yZCA9IGlzU3RyaWN0QmluZFJlc2VydmVkV29yZDtcbiAgICBleHBvcnRzLmlzU3RyaWN0UmVzZXJ2ZWRXb3JkID0gaXNTdHJpY3RSZXNlcnZlZFdvcmQ7XG4gICAgdmFyIHJlc2VydmVkV29yZHMgPSB7XG4gICAgICBrZXl3b3JkOiBbXCJicmVha1wiLCBcImNhc2VcIiwgXCJjYXRjaFwiLCBcImNvbnRpbnVlXCIsIFwiZGVidWdnZXJcIiwgXCJkZWZhdWx0XCIsIFwiZG9cIiwgXCJlbHNlXCIsIFwiZmluYWxseVwiLCBcImZvclwiLCBcImZ1bmN0aW9uXCIsIFwiaWZcIiwgXCJyZXR1cm5cIiwgXCJzd2l0Y2hcIiwgXCJ0aHJvd1wiLCBcInRyeVwiLCBcInZhclwiLCBcImNvbnN0XCIsIFwid2hpbGVcIiwgXCJ3aXRoXCIsIFwibmV3XCIsIFwidGhpc1wiLCBcInN1cGVyXCIsIFwiY2xhc3NcIiwgXCJleHRlbmRzXCIsIFwiZXhwb3J0XCIsIFwiaW1wb3J0XCIsIFwibnVsbFwiLCBcInRydWVcIiwgXCJmYWxzZVwiLCBcImluXCIsIFwiaW5zdGFuY2VvZlwiLCBcInR5cGVvZlwiLCBcInZvaWRcIiwgXCJkZWxldGVcIl0sXG4gICAgICBzdHJpY3Q6IFtcImltcGxlbWVudHNcIiwgXCJpbnRlcmZhY2VcIiwgXCJsZXRcIiwgXCJwYWNrYWdlXCIsIFwicHJpdmF0ZVwiLCBcInByb3RlY3RlZFwiLCBcInB1YmxpY1wiLCBcInN0YXRpY1wiLCBcInlpZWxkXCJdLFxuICAgICAgc3RyaWN0QmluZDogW1wiZXZhbFwiLCBcImFyZ3VtZW50c1wiXVxuICAgIH07XG4gICAgdmFyIGtleXdvcmRzID0gbmV3IFNldChyZXNlcnZlZFdvcmRzLmtleXdvcmQpO1xuICAgIHZhciByZXNlcnZlZFdvcmRzU3RyaWN0U2V0ID0gbmV3IFNldChyZXNlcnZlZFdvcmRzLnN0cmljdCk7XG4gICAgdmFyIHJlc2VydmVkV29yZHNTdHJpY3RCaW5kU2V0ID0gbmV3IFNldChyZXNlcnZlZFdvcmRzLnN0cmljdEJpbmQpO1xuICAgIGZ1bmN0aW9uIGlzUmVzZXJ2ZWRXb3JkKHdvcmQsIGluTW9kdWxlKSB7XG4gICAgICByZXR1cm4gaW5Nb2R1bGUgJiYgd29yZCA9PT0gXCJhd2FpdFwiIHx8IHdvcmQgPT09IFwiZW51bVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1N0cmljdFJlc2VydmVkV29yZCh3b3JkLCBpbk1vZHVsZSkge1xuICAgICAgcmV0dXJuIGlzUmVzZXJ2ZWRXb3JkKHdvcmQsIGluTW9kdWxlKSB8fCByZXNlcnZlZFdvcmRzU3RyaWN0U2V0Lmhhcyh3b3JkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdHJpY3RCaW5kT25seVJlc2VydmVkV29yZCh3b3JkKSB7XG4gICAgICByZXR1cm4gcmVzZXJ2ZWRXb3Jkc1N0cmljdEJpbmRTZXQuaGFzKHdvcmQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1N0cmljdEJpbmRSZXNlcnZlZFdvcmQod29yZCwgaW5Nb2R1bGUpIHtcbiAgICAgIHJldHVybiBpc1N0cmljdFJlc2VydmVkV29yZCh3b3JkLCBpbk1vZHVsZSkgfHwgaXNTdHJpY3RCaW5kT25seVJlc2VydmVkV29yZCh3b3JkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNLZXl3b3JkKHdvcmQpIHtcbiAgICAgIHJldHVybiBrZXl3b3Jkcy5oYXMod29yZCk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIvbGliL2luZGV4LmpzXG52YXIgcmVxdWlyZV9saWIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2hlbHBlci12YWxpZGF0b3ItaWRlbnRpZmllci9saWIvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzSWRlbnRpZmllckNoYXJcIiwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaWRlbnRpZmllci5pc0lkZW50aWZpZXJDaGFyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzSWRlbnRpZmllck5hbWVcIiwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaWRlbnRpZmllci5pc0lkZW50aWZpZXJOYW1lO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzSWRlbnRpZmllclN0YXJ0XCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2lkZW50aWZpZXIuaXNJZGVudGlmaWVyU3RhcnQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNLZXl3b3JkXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2tleXdvcmQuaXNLZXl3b3JkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzUmVzZXJ2ZWRXb3JkXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2tleXdvcmQuaXNSZXNlcnZlZFdvcmQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNTdHJpY3RCaW5kT25seVJlc2VydmVkV29yZFwiLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9rZXl3b3JkLmlzU3RyaWN0QmluZE9ubHlSZXNlcnZlZFdvcmQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNTdHJpY3RCaW5kUmVzZXJ2ZWRXb3JkXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2tleXdvcmQuaXNTdHJpY3RCaW5kUmVzZXJ2ZWRXb3JkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzU3RyaWN0UmVzZXJ2ZWRXb3JkXCIsIHtcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2tleXdvcmQuaXNTdHJpY3RSZXNlcnZlZFdvcmQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIF9pZGVudGlmaWVyID0gcmVxdWlyZV9pZGVudGlmaWVyKCk7XG4gICAgdmFyIF9rZXl3b3JkID0gcmVxdWlyZV9rZXl3b3JkKCk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL2VzY2FwZS1zdHJpbmctcmVnZXhwL2luZGV4LmpzXG52YXIgcmVxdWlyZV9lc2NhcGVfc3RyaW5nX3JlZ2V4cCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9ub2RlX21vZHVsZXMvZXNjYXBlLXN0cmluZy1yZWdleHAvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgbWF0Y2hPcGVyYXRvcnNSZSA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Ll0vZztcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgaWYgKHR5cGVvZiBzdHIgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG1hdGNoT3BlcmF0b3JzUmUsIFwiXFxcXCQmXCIpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29sb3ItbmFtZS9pbmRleC5qc1xudmFyIHJlcXVpcmVfY29sb3JfbmFtZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1uYW1lL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgICBcImFsaWNlYmx1ZVwiOiBbMjQwLCAyNDgsIDI1NV0sXG4gICAgICBcImFudGlxdWV3aGl0ZVwiOiBbMjUwLCAyMzUsIDIxNV0sXG4gICAgICBcImFxdWFcIjogWzAsIDI1NSwgMjU1XSxcbiAgICAgIFwiYXF1YW1hcmluZVwiOiBbMTI3LCAyNTUsIDIxMl0sXG4gICAgICBcImF6dXJlXCI6IFsyNDAsIDI1NSwgMjU1XSxcbiAgICAgIFwiYmVpZ2VcIjogWzI0NSwgMjQ1LCAyMjBdLFxuICAgICAgXCJiaXNxdWVcIjogWzI1NSwgMjI4LCAxOTZdLFxuICAgICAgXCJibGFja1wiOiBbMCwgMCwgMF0sXG4gICAgICBcImJsYW5jaGVkYWxtb25kXCI6IFsyNTUsIDIzNSwgMjA1XSxcbiAgICAgIFwiYmx1ZVwiOiBbMCwgMCwgMjU1XSxcbiAgICAgIFwiYmx1ZXZpb2xldFwiOiBbMTM4LCA0MywgMjI2XSxcbiAgICAgIFwiYnJvd25cIjogWzE2NSwgNDIsIDQyXSxcbiAgICAgIFwiYnVybHl3b29kXCI6IFsyMjIsIDE4NCwgMTM1XSxcbiAgICAgIFwiY2FkZXRibHVlXCI6IFs5NSwgMTU4LCAxNjBdLFxuICAgICAgXCJjaGFydHJldXNlXCI6IFsxMjcsIDI1NSwgMF0sXG4gICAgICBcImNob2NvbGF0ZVwiOiBbMjEwLCAxMDUsIDMwXSxcbiAgICAgIFwiY29yYWxcIjogWzI1NSwgMTI3LCA4MF0sXG4gICAgICBcImNvcm5mbG93ZXJibHVlXCI6IFsxMDAsIDE0OSwgMjM3XSxcbiAgICAgIFwiY29ybnNpbGtcIjogWzI1NSwgMjQ4LCAyMjBdLFxuICAgICAgXCJjcmltc29uXCI6IFsyMjAsIDIwLCA2MF0sXG4gICAgICBcImN5YW5cIjogWzAsIDI1NSwgMjU1XSxcbiAgICAgIFwiZGFya2JsdWVcIjogWzAsIDAsIDEzOV0sXG4gICAgICBcImRhcmtjeWFuXCI6IFswLCAxMzksIDEzOV0sXG4gICAgICBcImRhcmtnb2xkZW5yb2RcIjogWzE4NCwgMTM0LCAxMV0sXG4gICAgICBcImRhcmtncmF5XCI6IFsxNjksIDE2OSwgMTY5XSxcbiAgICAgIFwiZGFya2dyZWVuXCI6IFswLCAxMDAsIDBdLFxuICAgICAgXCJkYXJrZ3JleVwiOiBbMTY5LCAxNjksIDE2OV0sXG4gICAgICBcImRhcmtraGFraVwiOiBbMTg5LCAxODMsIDEwN10sXG4gICAgICBcImRhcmttYWdlbnRhXCI6IFsxMzksIDAsIDEzOV0sXG4gICAgICBcImRhcmtvbGl2ZWdyZWVuXCI6IFs4NSwgMTA3LCA0N10sXG4gICAgICBcImRhcmtvcmFuZ2VcIjogWzI1NSwgMTQwLCAwXSxcbiAgICAgIFwiZGFya29yY2hpZFwiOiBbMTUzLCA1MCwgMjA0XSxcbiAgICAgIFwiZGFya3JlZFwiOiBbMTM5LCAwLCAwXSxcbiAgICAgIFwiZGFya3NhbG1vblwiOiBbMjMzLCAxNTAsIDEyMl0sXG4gICAgICBcImRhcmtzZWFncmVlblwiOiBbMTQzLCAxODgsIDE0M10sXG4gICAgICBcImRhcmtzbGF0ZWJsdWVcIjogWzcyLCA2MSwgMTM5XSxcbiAgICAgIFwiZGFya3NsYXRlZ3JheVwiOiBbNDcsIDc5LCA3OV0sXG4gICAgICBcImRhcmtzbGF0ZWdyZXlcIjogWzQ3LCA3OSwgNzldLFxuICAgICAgXCJkYXJrdHVycXVvaXNlXCI6IFswLCAyMDYsIDIwOV0sXG4gICAgICBcImRhcmt2aW9sZXRcIjogWzE0OCwgMCwgMjExXSxcbiAgICAgIFwiZGVlcHBpbmtcIjogWzI1NSwgMjAsIDE0N10sXG4gICAgICBcImRlZXBza3libHVlXCI6IFswLCAxOTEsIDI1NV0sXG4gICAgICBcImRpbWdyYXlcIjogWzEwNSwgMTA1LCAxMDVdLFxuICAgICAgXCJkaW1ncmV5XCI6IFsxMDUsIDEwNSwgMTA1XSxcbiAgICAgIFwiZG9kZ2VyYmx1ZVwiOiBbMzAsIDE0NCwgMjU1XSxcbiAgICAgIFwiZmlyZWJyaWNrXCI6IFsxNzgsIDM0LCAzNF0sXG4gICAgICBcImZsb3JhbHdoaXRlXCI6IFsyNTUsIDI1MCwgMjQwXSxcbiAgICAgIFwiZm9yZXN0Z3JlZW5cIjogWzM0LCAxMzksIDM0XSxcbiAgICAgIFwiZnVjaHNpYVwiOiBbMjU1LCAwLCAyNTVdLFxuICAgICAgXCJnYWluc2Jvcm9cIjogWzIyMCwgMjIwLCAyMjBdLFxuICAgICAgXCJnaG9zdHdoaXRlXCI6IFsyNDgsIDI0OCwgMjU1XSxcbiAgICAgIFwiZ29sZFwiOiBbMjU1LCAyMTUsIDBdLFxuICAgICAgXCJnb2xkZW5yb2RcIjogWzIxOCwgMTY1LCAzMl0sXG4gICAgICBcImdyYXlcIjogWzEyOCwgMTI4LCAxMjhdLFxuICAgICAgXCJncmVlblwiOiBbMCwgMTI4LCAwXSxcbiAgICAgIFwiZ3JlZW55ZWxsb3dcIjogWzE3MywgMjU1LCA0N10sXG4gICAgICBcImdyZXlcIjogWzEyOCwgMTI4LCAxMjhdLFxuICAgICAgXCJob25leWRld1wiOiBbMjQwLCAyNTUsIDI0MF0sXG4gICAgICBcImhvdHBpbmtcIjogWzI1NSwgMTA1LCAxODBdLFxuICAgICAgXCJpbmRpYW5yZWRcIjogWzIwNSwgOTIsIDkyXSxcbiAgICAgIFwiaW5kaWdvXCI6IFs3NSwgMCwgMTMwXSxcbiAgICAgIFwiaXZvcnlcIjogWzI1NSwgMjU1LCAyNDBdLFxuICAgICAgXCJraGFraVwiOiBbMjQwLCAyMzAsIDE0MF0sXG4gICAgICBcImxhdmVuZGVyXCI6IFsyMzAsIDIzMCwgMjUwXSxcbiAgICAgIFwibGF2ZW5kZXJibHVzaFwiOiBbMjU1LCAyNDAsIDI0NV0sXG4gICAgICBcImxhd25ncmVlblwiOiBbMTI0LCAyNTIsIDBdLFxuICAgICAgXCJsZW1vbmNoaWZmb25cIjogWzI1NSwgMjUwLCAyMDVdLFxuICAgICAgXCJsaWdodGJsdWVcIjogWzE3MywgMjE2LCAyMzBdLFxuICAgICAgXCJsaWdodGNvcmFsXCI6IFsyNDAsIDEyOCwgMTI4XSxcbiAgICAgIFwibGlnaHRjeWFuXCI6IFsyMjQsIDI1NSwgMjU1XSxcbiAgICAgIFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIjogWzI1MCwgMjUwLCAyMTBdLFxuICAgICAgXCJsaWdodGdyYXlcIjogWzIxMSwgMjExLCAyMTFdLFxuICAgICAgXCJsaWdodGdyZWVuXCI6IFsxNDQsIDIzOCwgMTQ0XSxcbiAgICAgIFwibGlnaHRncmV5XCI6IFsyMTEsIDIxMSwgMjExXSxcbiAgICAgIFwibGlnaHRwaW5rXCI6IFsyNTUsIDE4MiwgMTkzXSxcbiAgICAgIFwibGlnaHRzYWxtb25cIjogWzI1NSwgMTYwLCAxMjJdLFxuICAgICAgXCJsaWdodHNlYWdyZWVuXCI6IFszMiwgMTc4LCAxNzBdLFxuICAgICAgXCJsaWdodHNreWJsdWVcIjogWzEzNSwgMjA2LCAyNTBdLFxuICAgICAgXCJsaWdodHNsYXRlZ3JheVwiOiBbMTE5LCAxMzYsIDE1M10sXG4gICAgICBcImxpZ2h0c2xhdGVncmV5XCI6IFsxMTksIDEzNiwgMTUzXSxcbiAgICAgIFwibGlnaHRzdGVlbGJsdWVcIjogWzE3NiwgMTk2LCAyMjJdLFxuICAgICAgXCJsaWdodHllbGxvd1wiOiBbMjU1LCAyNTUsIDIyNF0sXG4gICAgICBcImxpbWVcIjogWzAsIDI1NSwgMF0sXG4gICAgICBcImxpbWVncmVlblwiOiBbNTAsIDIwNSwgNTBdLFxuICAgICAgXCJsaW5lblwiOiBbMjUwLCAyNDAsIDIzMF0sXG4gICAgICBcIm1hZ2VudGFcIjogWzI1NSwgMCwgMjU1XSxcbiAgICAgIFwibWFyb29uXCI6IFsxMjgsIDAsIDBdLFxuICAgICAgXCJtZWRpdW1hcXVhbWFyaW5lXCI6IFsxMDIsIDIwNSwgMTcwXSxcbiAgICAgIFwibWVkaXVtYmx1ZVwiOiBbMCwgMCwgMjA1XSxcbiAgICAgIFwibWVkaXVtb3JjaGlkXCI6IFsxODYsIDg1LCAyMTFdLFxuICAgICAgXCJtZWRpdW1wdXJwbGVcIjogWzE0NywgMTEyLCAyMTldLFxuICAgICAgXCJtZWRpdW1zZWFncmVlblwiOiBbNjAsIDE3OSwgMTEzXSxcbiAgICAgIFwibWVkaXVtc2xhdGVibHVlXCI6IFsxMjMsIDEwNCwgMjM4XSxcbiAgICAgIFwibWVkaXVtc3ByaW5nZ3JlZW5cIjogWzAsIDI1MCwgMTU0XSxcbiAgICAgIFwibWVkaXVtdHVycXVvaXNlXCI6IFs3MiwgMjA5LCAyMDRdLFxuICAgICAgXCJtZWRpdW12aW9sZXRyZWRcIjogWzE5OSwgMjEsIDEzM10sXG4gICAgICBcIm1pZG5pZ2h0Ymx1ZVwiOiBbMjUsIDI1LCAxMTJdLFxuICAgICAgXCJtaW50Y3JlYW1cIjogWzI0NSwgMjU1LCAyNTBdLFxuICAgICAgXCJtaXN0eXJvc2VcIjogWzI1NSwgMjI4LCAyMjVdLFxuICAgICAgXCJtb2NjYXNpblwiOiBbMjU1LCAyMjgsIDE4MV0sXG4gICAgICBcIm5hdmFqb3doaXRlXCI6IFsyNTUsIDIyMiwgMTczXSxcbiAgICAgIFwibmF2eVwiOiBbMCwgMCwgMTI4XSxcbiAgICAgIFwib2xkbGFjZVwiOiBbMjUzLCAyNDUsIDIzMF0sXG4gICAgICBcIm9saXZlXCI6IFsxMjgsIDEyOCwgMF0sXG4gICAgICBcIm9saXZlZHJhYlwiOiBbMTA3LCAxNDIsIDM1XSxcbiAgICAgIFwib3JhbmdlXCI6IFsyNTUsIDE2NSwgMF0sXG4gICAgICBcIm9yYW5nZXJlZFwiOiBbMjU1LCA2OSwgMF0sXG4gICAgICBcIm9yY2hpZFwiOiBbMjE4LCAxMTIsIDIxNF0sXG4gICAgICBcInBhbGVnb2xkZW5yb2RcIjogWzIzOCwgMjMyLCAxNzBdLFxuICAgICAgXCJwYWxlZ3JlZW5cIjogWzE1MiwgMjUxLCAxNTJdLFxuICAgICAgXCJwYWxldHVycXVvaXNlXCI6IFsxNzUsIDIzOCwgMjM4XSxcbiAgICAgIFwicGFsZXZpb2xldHJlZFwiOiBbMjE5LCAxMTIsIDE0N10sXG4gICAgICBcInBhcGF5YXdoaXBcIjogWzI1NSwgMjM5LCAyMTNdLFxuICAgICAgXCJwZWFjaHB1ZmZcIjogWzI1NSwgMjE4LCAxODVdLFxuICAgICAgXCJwZXJ1XCI6IFsyMDUsIDEzMywgNjNdLFxuICAgICAgXCJwaW5rXCI6IFsyNTUsIDE5MiwgMjAzXSxcbiAgICAgIFwicGx1bVwiOiBbMjIxLCAxNjAsIDIyMV0sXG4gICAgICBcInBvd2RlcmJsdWVcIjogWzE3NiwgMjI0LCAyMzBdLFxuICAgICAgXCJwdXJwbGVcIjogWzEyOCwgMCwgMTI4XSxcbiAgICAgIFwicmViZWNjYXB1cnBsZVwiOiBbMTAyLCA1MSwgMTUzXSxcbiAgICAgIFwicmVkXCI6IFsyNTUsIDAsIDBdLFxuICAgICAgXCJyb3N5YnJvd25cIjogWzE4OCwgMTQzLCAxNDNdLFxuICAgICAgXCJyb3lhbGJsdWVcIjogWzY1LCAxMDUsIDIyNV0sXG4gICAgICBcInNhZGRsZWJyb3duXCI6IFsxMzksIDY5LCAxOV0sXG4gICAgICBcInNhbG1vblwiOiBbMjUwLCAxMjgsIDExNF0sXG4gICAgICBcInNhbmR5YnJvd25cIjogWzI0NCwgMTY0LCA5Nl0sXG4gICAgICBcInNlYWdyZWVuXCI6IFs0NiwgMTM5LCA4N10sXG4gICAgICBcInNlYXNoZWxsXCI6IFsyNTUsIDI0NSwgMjM4XSxcbiAgICAgIFwic2llbm5hXCI6IFsxNjAsIDgyLCA0NV0sXG4gICAgICBcInNpbHZlclwiOiBbMTkyLCAxOTIsIDE5Ml0sXG4gICAgICBcInNreWJsdWVcIjogWzEzNSwgMjA2LCAyMzVdLFxuICAgICAgXCJzbGF0ZWJsdWVcIjogWzEwNiwgOTAsIDIwNV0sXG4gICAgICBcInNsYXRlZ3JheVwiOiBbMTEyLCAxMjgsIDE0NF0sXG4gICAgICBcInNsYXRlZ3JleVwiOiBbMTEyLCAxMjgsIDE0NF0sXG4gICAgICBcInNub3dcIjogWzI1NSwgMjUwLCAyNTBdLFxuICAgICAgXCJzcHJpbmdncmVlblwiOiBbMCwgMjU1LCAxMjddLFxuICAgICAgXCJzdGVlbGJsdWVcIjogWzcwLCAxMzAsIDE4MF0sXG4gICAgICBcInRhblwiOiBbMjEwLCAxODAsIDE0MF0sXG4gICAgICBcInRlYWxcIjogWzAsIDEyOCwgMTI4XSxcbiAgICAgIFwidGhpc3RsZVwiOiBbMjE2LCAxOTEsIDIxNl0sXG4gICAgICBcInRvbWF0b1wiOiBbMjU1LCA5OSwgNzFdLFxuICAgICAgXCJ0dXJxdW9pc2VcIjogWzY0LCAyMjQsIDIwOF0sXG4gICAgICBcInZpb2xldFwiOiBbMjM4LCAxMzAsIDIzOF0sXG4gICAgICBcIndoZWF0XCI6IFsyNDUsIDIyMiwgMTc5XSxcbiAgICAgIFwid2hpdGVcIjogWzI1NSwgMjU1LCAyNTVdLFxuICAgICAgXCJ3aGl0ZXNtb2tlXCI6IFsyNDUsIDI0NSwgMjQ1XSxcbiAgICAgIFwieWVsbG93XCI6IFsyNTUsIDI1NSwgMF0sXG4gICAgICBcInllbGxvd2dyZWVuXCI6IFsxNTQsIDIwNSwgNTBdXG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2NvbnZlcnNpb25zLmpzXG52YXIgcmVxdWlyZV9jb252ZXJzaW9ucyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2NvbnZlcnNpb25zLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIGNzc0tleXdvcmRzID0gcmVxdWlyZV9jb2xvcl9uYW1lKCk7XG4gICAgdmFyIHJldmVyc2VLZXl3b3JkcyA9IHt9O1xuICAgIGZvciAoa2V5IGluIGNzc0tleXdvcmRzKSB7XG4gICAgICBpZiAoY3NzS2V5d29yZHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICByZXZlcnNlS2V5d29yZHNbY3NzS2V5d29yZHNba2V5XV0gPSBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBrZXk7XG4gICAgdmFyIGNvbnZlcnQgPSBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAgIHJnYjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcInJnYlwiIH0sXG4gICAgICBoc2w6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJoc2xcIiB9LFxuICAgICAgaHN2OiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwiaHN2XCIgfSxcbiAgICAgIGh3YjogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImh3YlwiIH0sXG4gICAgICBjbXlrOiB7IGNoYW5uZWxzOiA0LCBsYWJlbHM6IFwiY215a1wiIH0sXG4gICAgICB4eXo6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogXCJ4eXpcIiB9LFxuICAgICAgbGFiOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFwibGFiXCIgfSxcbiAgICAgIGxjaDogeyBjaGFubmVsczogMywgbGFiZWxzOiBcImxjaFwiIH0sXG4gICAgICBoZXg6IHsgY2hhbm5lbHM6IDEsIGxhYmVsczogW1wiaGV4XCJdIH0sXG4gICAgICBrZXl3b3JkOiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImtleXdvcmRcIl0gfSxcbiAgICAgIGFuc2kxNjogeyBjaGFubmVsczogMSwgbGFiZWxzOiBbXCJhbnNpMTZcIl0gfSxcbiAgICAgIGFuc2kyNTY6IHsgY2hhbm5lbHM6IDEsIGxhYmVsczogW1wiYW5zaTI1NlwiXSB9LFxuICAgICAgaGNnOiB7IGNoYW5uZWxzOiAzLCBsYWJlbHM6IFtcImhcIiwgXCJjXCIsIFwiZ1wiXSB9LFxuICAgICAgYXBwbGU6IHsgY2hhbm5lbHM6IDMsIGxhYmVsczogW1wicjE2XCIsIFwiZzE2XCIsIFwiYjE2XCJdIH0sXG4gICAgICBncmF5OiB7IGNoYW5uZWxzOiAxLCBsYWJlbHM6IFtcImdyYXlcIl0gfVxuICAgIH07XG4gICAgZm9yIChtb2RlbCBpbiBjb252ZXJ0KSB7XG4gICAgICBpZiAoY29udmVydC5oYXNPd25Qcm9wZXJ0eShtb2RlbCkpIHtcbiAgICAgICAgaWYgKCEoXCJjaGFubmVsc1wiIGluIGNvbnZlcnRbbW9kZWxdKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm1pc3NpbmcgY2hhbm5lbHMgcHJvcGVydHk6IFwiICsgbW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKFwibGFiZWxzXCIgaW4gY29udmVydFttb2RlbF0pKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZyBjaGFubmVsIGxhYmVscyBwcm9wZXJ0eTogXCIgKyBtb2RlbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnZlcnRbbW9kZWxdLmxhYmVscy5sZW5ndGggIT09IGNvbnZlcnRbbW9kZWxdLmNoYW5uZWxzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hhbm5lbCBhbmQgbGFiZWwgY291bnRzIG1pc21hdGNoOiBcIiArIG1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgICBjaGFubmVscyA9IGNvbnZlcnRbbW9kZWxdLmNoYW5uZWxzO1xuICAgICAgICBsYWJlbHMgPSBjb252ZXJ0W21vZGVsXS5sYWJlbHM7XG4gICAgICAgIGRlbGV0ZSBjb252ZXJ0W21vZGVsXS5jaGFubmVscztcbiAgICAgICAgZGVsZXRlIGNvbnZlcnRbbW9kZWxdLmxhYmVscztcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbbW9kZWxdLCBcImNoYW5uZWxzXCIsIHsgdmFsdWU6IGNoYW5uZWxzIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29udmVydFttb2RlbF0sIFwibGFiZWxzXCIsIHsgdmFsdWU6IGxhYmVscyB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGNoYW5uZWxzO1xuICAgIHZhciBsYWJlbHM7XG4gICAgdmFyIG1vZGVsO1xuICAgIGNvbnZlcnQucmdiLmhzbCA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICB2YXIgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIHZhciBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgdmFyIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICAgICAgdmFyIGRlbHRhID0gbWF4IC0gbWluO1xuICAgICAgdmFyIGg7XG4gICAgICB2YXIgcztcbiAgICAgIHZhciBsO1xuICAgICAgaWYgKG1heCA9PT0gbWluKSB7XG4gICAgICAgIGggPSAwO1xuICAgICAgfSBlbHNlIGlmIChyID09PSBtYXgpIHtcbiAgICAgICAgaCA9IChnIC0gYikgLyBkZWx0YTtcbiAgICAgIH0gZWxzZSBpZiAoZyA9PT0gbWF4KSB7XG4gICAgICAgIGggPSAyICsgKGIgLSByKSAvIGRlbHRhO1xuICAgICAgfSBlbHNlIGlmIChiID09PSBtYXgpIHtcbiAgICAgICAgaCA9IDQgKyAociAtIGcpIC8gZGVsdGE7XG4gICAgICB9XG4gICAgICBoID0gTWF0aC5taW4oaCAqIDYwLCAzNjApO1xuICAgICAgaWYgKGggPCAwKSB7XG4gICAgICAgIGggKz0gMzYwO1xuICAgICAgfVxuICAgICAgbCA9IChtaW4gKyBtYXgpIC8gMjtcbiAgICAgIGlmIChtYXggPT09IG1pbikge1xuICAgICAgICBzID0gMDtcbiAgICAgIH0gZWxzZSBpZiAobCA8PSAwLjUpIHtcbiAgICAgICAgcyA9IGRlbHRhIC8gKG1heCArIG1pbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzID0gZGVsdGEgLyAoMiAtIG1heCAtIG1pbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2gsIHMgKiAxMDAsIGwgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5yZ2IuaHN2ID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICB2YXIgcmRpZjtcbiAgICAgIHZhciBnZGlmO1xuICAgICAgdmFyIGJkaWY7XG4gICAgICB2YXIgaDtcbiAgICAgIHZhciBzO1xuICAgICAgdmFyIHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICB2YXIgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIHZhciBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgdmFyIHYgPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgICAgIHZhciBkaWZmID0gdiAtIE1hdGgubWluKHIsIGcsIGIpO1xuICAgICAgdmFyIGRpZmZjID0gZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4gKHYgLSBjKSAvIDYgLyBkaWZmICsgMSAvIDI7XG4gICAgICB9O1xuICAgICAgaWYgKGRpZmYgPT09IDApIHtcbiAgICAgICAgaCA9IHMgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IGRpZmYgLyB2O1xuICAgICAgICByZGlmID0gZGlmZmMocik7XG4gICAgICAgIGdkaWYgPSBkaWZmYyhnKTtcbiAgICAgICAgYmRpZiA9IGRpZmZjKGIpO1xuICAgICAgICBpZiAociA9PT0gdikge1xuICAgICAgICAgIGggPSBiZGlmIC0gZ2RpZjtcbiAgICAgICAgfSBlbHNlIGlmIChnID09PSB2KSB7XG4gICAgICAgICAgaCA9IDEgLyAzICsgcmRpZiAtIGJkaWY7XG4gICAgICAgIH0gZWxzZSBpZiAoYiA9PT0gdikge1xuICAgICAgICAgIGggPSAyIC8gMyArIGdkaWYgLSByZGlmO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoIDwgMCkge1xuICAgICAgICAgIGggKz0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChoID4gMSkge1xuICAgICAgICAgIGggLT0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgaCAqIDM2MCxcbiAgICAgICAgcyAqIDEwMCxcbiAgICAgICAgdiAqIDEwMFxuICAgICAgXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmh3YiA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHIgPSByZ2JbMF07XG4gICAgICB2YXIgZyA9IHJnYlsxXTtcbiAgICAgIHZhciBiID0gcmdiWzJdO1xuICAgICAgdmFyIGggPSBjb252ZXJ0LnJnYi5oc2wocmdiKVswXTtcbiAgICAgIHZhciB3ID0gMSAvIDI1NSAqIE1hdGgubWluKHIsIE1hdGgubWluKGcsIGIpKTtcbiAgICAgIGIgPSAxIC0gMSAvIDI1NSAqIE1hdGgubWF4KHIsIE1hdGgubWF4KGcsIGIpKTtcbiAgICAgIHJldHVybiBbaCwgdyAqIDEwMCwgYiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5jbXlrID0gZnVuY3Rpb24ocmdiKSB7XG4gICAgICB2YXIgciA9IHJnYlswXSAvIDI1NTtcbiAgICAgIHZhciBnID0gcmdiWzFdIC8gMjU1O1xuICAgICAgdmFyIGIgPSByZ2JbMl0gLyAyNTU7XG4gICAgICB2YXIgYztcbiAgICAgIHZhciBtO1xuICAgICAgdmFyIHk7XG4gICAgICB2YXIgaztcbiAgICAgIGsgPSBNYXRoLm1pbigxIC0gciwgMSAtIGcsIDEgLSBiKTtcbiAgICAgIGMgPSAoMSAtIHIgLSBrKSAvICgxIC0gaykgfHwgMDtcbiAgICAgIG0gPSAoMSAtIGcgLSBrKSAvICgxIC0gaykgfHwgMDtcbiAgICAgIHkgPSAoMSAtIGIgLSBrKSAvICgxIC0gaykgfHwgMDtcbiAgICAgIHJldHVybiBbYyAqIDEwMCwgbSAqIDEwMCwgeSAqIDEwMCwgayAqIDEwMF07XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjb21wYXJhdGl2ZURpc3RhbmNlKHgsIHkpIHtcbiAgICAgIHJldHVybiBNYXRoLnBvdyh4WzBdIC0geVswXSwgMikgKyBNYXRoLnBvdyh4WzFdIC0geVsxXSwgMikgKyBNYXRoLnBvdyh4WzJdIC0geVsyXSwgMik7XG4gICAgfVxuICAgIGNvbnZlcnQucmdiLmtleXdvcmQgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciByZXZlcnNlZCA9IHJldmVyc2VLZXl3b3Jkc1tyZ2JdO1xuICAgICAgaWYgKHJldmVyc2VkKSB7XG4gICAgICAgIHJldHVybiByZXZlcnNlZDtcbiAgICAgIH1cbiAgICAgIHZhciBjdXJyZW50Q2xvc2VzdERpc3RhbmNlID0gSW5maW5pdHk7XG4gICAgICB2YXIgY3VycmVudENsb3Nlc3RLZXl3b3JkO1xuICAgICAgZm9yICh2YXIga2V5d29yZCBpbiBjc3NLZXl3b3Jkcykge1xuICAgICAgICBpZiAoY3NzS2V5d29yZHMuaGFzT3duUHJvcGVydHkoa2V5d29yZCkpIHtcbiAgICAgICAgICB2YXIgdmFsdWUgPSBjc3NLZXl3b3Jkc1trZXl3b3JkXTtcbiAgICAgICAgICB2YXIgZGlzdGFuY2UgPSBjb21wYXJhdGl2ZURpc3RhbmNlKHJnYiwgdmFsdWUpO1xuICAgICAgICAgIGlmIChkaXN0YW5jZSA8IGN1cnJlbnRDbG9zZXN0RGlzdGFuY2UpIHtcbiAgICAgICAgICAgIGN1cnJlbnRDbG9zZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgICAgIGN1cnJlbnRDbG9zZXN0S2V5d29yZCA9IGtleXdvcmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycmVudENsb3Nlc3RLZXl3b3JkO1xuICAgIH07XG4gICAgY29udmVydC5rZXl3b3JkLnJnYiA9IGZ1bmN0aW9uKGtleXdvcmQpIHtcbiAgICAgIHJldHVybiBjc3NLZXl3b3Jkc1trZXl3b3JkXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLnh5eiA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICB2YXIgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIHZhciBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgciA9IHIgPiAwLjA0MDQ1ID8gTWF0aC5wb3coKHIgKyAwLjA1NSkgLyAxLjA1NSwgMi40KSA6IHIgLyAxMi45MjtcbiAgICAgIGcgPSBnID4gMC4wNDA0NSA/IE1hdGgucG93KChnICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkgOiBnIC8gMTIuOTI7XG4gICAgICBiID0gYiA+IDAuMDQwNDUgPyBNYXRoLnBvdygoYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpIDogYiAvIDEyLjkyO1xuICAgICAgdmFyIHggPSByICogMC40MTI0ICsgZyAqIDAuMzU3NiArIGIgKiAwLjE4MDU7XG4gICAgICB2YXIgeSA9IHIgKiAwLjIxMjYgKyBnICogMC43MTUyICsgYiAqIDAuMDcyMjtcbiAgICAgIHZhciB6ID0gciAqIDAuMDE5MyArIGcgKiAwLjExOTIgKyBiICogMC45NTA1O1xuICAgICAgcmV0dXJuIFt4ICogMTAwLCB5ICogMTAwLCB6ICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmxhYiA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHh5eiA9IGNvbnZlcnQucmdiLnh5eihyZ2IpO1xuICAgICAgdmFyIHggPSB4eXpbMF07XG4gICAgICB2YXIgeSA9IHh5elsxXTtcbiAgICAgIHZhciB6ID0geHl6WzJdO1xuICAgICAgdmFyIGw7XG4gICAgICB2YXIgYTtcbiAgICAgIHZhciBiO1xuICAgICAgeCAvPSA5NS4wNDc7XG4gICAgICB5IC89IDEwMDtcbiAgICAgIHogLz0gMTA4Ljg4MztcbiAgICAgIHggPSB4ID4gODg1NmUtNiA/IE1hdGgucG93KHgsIDEgLyAzKSA6IDcuNzg3ICogeCArIDE2IC8gMTE2O1xuICAgICAgeSA9IHkgPiA4ODU2ZS02ID8gTWF0aC5wb3coeSwgMSAvIDMpIDogNy43ODcgKiB5ICsgMTYgLyAxMTY7XG4gICAgICB6ID0geiA+IDg4NTZlLTYgPyBNYXRoLnBvdyh6LCAxIC8gMykgOiA3Ljc4NyAqIHogKyAxNiAvIDExNjtcbiAgICAgIGwgPSAxMTYgKiB5IC0gMTY7XG4gICAgICBhID0gNTAwICogKHggLSB5KTtcbiAgICAgIGIgPSAyMDAgKiAoeSAtIHopO1xuICAgICAgcmV0dXJuIFtsLCBhLCBiXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHNsLnJnYiA9IGZ1bmN0aW9uKGhzbCkge1xuICAgICAgdmFyIGggPSBoc2xbMF0gLyAzNjA7XG4gICAgICB2YXIgcyA9IGhzbFsxXSAvIDEwMDtcbiAgICAgIHZhciBsID0gaHNsWzJdIC8gMTAwO1xuICAgICAgdmFyIHQxO1xuICAgICAgdmFyIHQyO1xuICAgICAgdmFyIHQzO1xuICAgICAgdmFyIHJnYjtcbiAgICAgIHZhciB2YWw7XG4gICAgICBpZiAocyA9PT0gMCkge1xuICAgICAgICB2YWwgPSBsICogMjU1O1xuICAgICAgICByZXR1cm4gW3ZhbCwgdmFsLCB2YWxdO1xuICAgICAgfVxuICAgICAgaWYgKGwgPCAwLjUpIHtcbiAgICAgICAgdDIgPSBsICogKDEgKyBzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHQyID0gbCArIHMgLSBsICogcztcbiAgICAgIH1cbiAgICAgIHQxID0gMiAqIGwgLSB0MjtcbiAgICAgIHJnYiA9IFswLCAwLCAwXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgICAgIHQzID0gaCArIDEgLyAzICogLShpIC0gMSk7XG4gICAgICAgIGlmICh0MyA8IDApIHtcbiAgICAgICAgICB0MysrO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0MyA+IDEpIHtcbiAgICAgICAgICB0My0tO1xuICAgICAgICB9XG4gICAgICAgIGlmICg2ICogdDMgPCAxKSB7XG4gICAgICAgICAgdmFsID0gdDEgKyAodDIgLSB0MSkgKiA2ICogdDM7XG4gICAgICAgIH0gZWxzZSBpZiAoMiAqIHQzIDwgMSkge1xuICAgICAgICAgIHZhbCA9IHQyO1xuICAgICAgICB9IGVsc2UgaWYgKDMgKiB0MyA8IDIpIHtcbiAgICAgICAgICB2YWwgPSB0MSArICh0MiAtIHQxKSAqICgyIC8gMyAtIHQzKSAqIDY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsID0gdDE7XG4gICAgICAgIH1cbiAgICAgICAgcmdiW2ldID0gdmFsICogMjU1O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJnYjtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHNsLmhzdiA9IGZ1bmN0aW9uKGhzbCkge1xuICAgICAgdmFyIGggPSBoc2xbMF07XG4gICAgICB2YXIgcyA9IGhzbFsxXSAvIDEwMDtcbiAgICAgIHZhciBsID0gaHNsWzJdIC8gMTAwO1xuICAgICAgdmFyIHNtaW4gPSBzO1xuICAgICAgdmFyIGxtaW4gPSBNYXRoLm1heChsLCAwLjAxKTtcbiAgICAgIHZhciBzdjtcbiAgICAgIHZhciB2O1xuICAgICAgbCAqPSAyO1xuICAgICAgcyAqPSBsIDw9IDEgPyBsIDogMiAtIGw7XG4gICAgICBzbWluICo9IGxtaW4gPD0gMSA/IGxtaW4gOiAyIC0gbG1pbjtcbiAgICAgIHYgPSAobCArIHMpIC8gMjtcbiAgICAgIHN2ID0gbCA9PT0gMCA/IDIgKiBzbWluIC8gKGxtaW4gKyBzbWluKSA6IDIgKiBzIC8gKGwgKyBzKTtcbiAgICAgIHJldHVybiBbaCwgc3YgKiAxMDAsIHYgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5oc3YucmdiID0gZnVuY3Rpb24oaHN2KSB7XG4gICAgICB2YXIgaCA9IGhzdlswXSAvIDYwO1xuICAgICAgdmFyIHMgPSBoc3ZbMV0gLyAxMDA7XG4gICAgICB2YXIgdiA9IGhzdlsyXSAvIDEwMDtcbiAgICAgIHZhciBoaSA9IE1hdGguZmxvb3IoaCkgJSA2O1xuICAgICAgdmFyIGYgPSBoIC0gTWF0aC5mbG9vcihoKTtcbiAgICAgIHZhciBwID0gMjU1ICogdiAqICgxIC0gcyk7XG4gICAgICB2YXIgcSA9IDI1NSAqIHYgKiAoMSAtIHMgKiBmKTtcbiAgICAgIHZhciB0ID0gMjU1ICogdiAqICgxIC0gcyAqICgxIC0gZikpO1xuICAgICAgdiAqPSAyNTU7XG4gICAgICBzd2l0Y2ggKGhpKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICByZXR1cm4gW3YsIHQsIHBdO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIFtxLCB2LCBwXTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBbcCwgdiwgdF07XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICByZXR1cm4gW3AsIHEsIHZdO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIFt0LCBwLCB2XTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJldHVybiBbdiwgcCwgcV07XG4gICAgICB9XG4gICAgfTtcbiAgICBjb252ZXJ0Lmhzdi5oc2wgPSBmdW5jdGlvbihoc3YpIHtcbiAgICAgIHZhciBoID0gaHN2WzBdO1xuICAgICAgdmFyIHMgPSBoc3ZbMV0gLyAxMDA7XG4gICAgICB2YXIgdiA9IGhzdlsyXSAvIDEwMDtcbiAgICAgIHZhciB2bWluID0gTWF0aC5tYXgodiwgMC4wMSk7XG4gICAgICB2YXIgbG1pbjtcbiAgICAgIHZhciBzbDtcbiAgICAgIHZhciBsO1xuICAgICAgbCA9ICgyIC0gcykgKiB2O1xuICAgICAgbG1pbiA9ICgyIC0gcykgKiB2bWluO1xuICAgICAgc2wgPSBzICogdm1pbjtcbiAgICAgIHNsIC89IGxtaW4gPD0gMSA/IGxtaW4gOiAyIC0gbG1pbjtcbiAgICAgIHNsID0gc2wgfHwgMDtcbiAgICAgIGwgLz0gMjtcbiAgICAgIHJldHVybiBbaCwgc2wgKiAxMDAsIGwgKiAxMDBdO1xuICAgIH07XG4gICAgY29udmVydC5od2IucmdiID0gZnVuY3Rpb24oaHdiKSB7XG4gICAgICB2YXIgaCA9IGh3YlswXSAvIDM2MDtcbiAgICAgIHZhciB3aCA9IGh3YlsxXSAvIDEwMDtcbiAgICAgIHZhciBibCA9IGh3YlsyXSAvIDEwMDtcbiAgICAgIHZhciByYXRpbyA9IHdoICsgYmw7XG4gICAgICB2YXIgaTtcbiAgICAgIHZhciB2O1xuICAgICAgdmFyIGY7XG4gICAgICB2YXIgbjtcbiAgICAgIGlmIChyYXRpbyA+IDEpIHtcbiAgICAgICAgd2ggLz0gcmF0aW87XG4gICAgICAgIGJsIC89IHJhdGlvO1xuICAgICAgfVxuICAgICAgaSA9IE1hdGguZmxvb3IoNiAqIGgpO1xuICAgICAgdiA9IDEgLSBibDtcbiAgICAgIGYgPSA2ICogaCAtIGk7XG4gICAgICBpZiAoKGkgJiAxKSAhPT0gMCkge1xuICAgICAgICBmID0gMSAtIGY7XG4gICAgICB9XG4gICAgICBuID0gd2ggKyBmICogKHYgLSB3aCk7XG4gICAgICB2YXIgcjtcbiAgICAgIHZhciBnO1xuICAgICAgdmFyIGI7XG4gICAgICBzd2l0Y2ggKGkpIHtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgciA9IHY7XG4gICAgICAgICAgZyA9IG47XG4gICAgICAgICAgYiA9IHdoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgciA9IG47XG4gICAgICAgICAgZyA9IHY7XG4gICAgICAgICAgYiA9IHdoO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgciA9IHdoO1xuICAgICAgICAgIGcgPSB2O1xuICAgICAgICAgIGIgPSBuO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgciA9IHdoO1xuICAgICAgICAgIGcgPSBuO1xuICAgICAgICAgIGIgPSB2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgciA9IG47XG4gICAgICAgICAgZyA9IHdoO1xuICAgICAgICAgIGIgPSB2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgciA9IHY7XG4gICAgICAgICAgZyA9IHdoO1xuICAgICAgICAgIGIgPSBuO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtyICogMjU1LCBnICogMjU1LCBiICogMjU1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQuY215ay5yZ2IgPSBmdW5jdGlvbihjbXlrKSB7XG4gICAgICB2YXIgYyA9IGNteWtbMF0gLyAxMDA7XG4gICAgICB2YXIgbSA9IGNteWtbMV0gLyAxMDA7XG4gICAgICB2YXIgeSA9IGNteWtbMl0gLyAxMDA7XG4gICAgICB2YXIgayA9IGNteWtbM10gLyAxMDA7XG4gICAgICB2YXIgcjtcbiAgICAgIHZhciBnO1xuICAgICAgdmFyIGI7XG4gICAgICByID0gMSAtIE1hdGgubWluKDEsIGMgKiAoMSAtIGspICsgayk7XG4gICAgICBnID0gMSAtIE1hdGgubWluKDEsIG0gKiAoMSAtIGspICsgayk7XG4gICAgICBiID0gMSAtIE1hdGgubWluKDEsIHkgKiAoMSAtIGspICsgayk7XG4gICAgICByZXR1cm4gW3IgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC54eXoucmdiID0gZnVuY3Rpb24oeHl6KSB7XG4gICAgICB2YXIgeCA9IHh5elswXSAvIDEwMDtcbiAgICAgIHZhciB5ID0geHl6WzFdIC8gMTAwO1xuICAgICAgdmFyIHogPSB4eXpbMl0gLyAxMDA7XG4gICAgICB2YXIgcjtcbiAgICAgIHZhciBnO1xuICAgICAgdmFyIGI7XG4gICAgICByID0geCAqIDMuMjQwNiArIHkgKiAtMS41MzcyICsgeiAqIC0wLjQ5ODY7XG4gICAgICBnID0geCAqIC0wLjk2ODkgKyB5ICogMS44NzU4ICsgeiAqIDAuMDQxNTtcbiAgICAgIGIgPSB4ICogMC4wNTU3ICsgeSAqIC0wLjIwNCArIHogKiAxLjA1NztcbiAgICAgIHIgPSByID4gMzEzMDhlLTcgPyAxLjA1NSAqIE1hdGgucG93KHIsIDEgLyAyLjQpIC0gMC4wNTUgOiByICogMTIuOTI7XG4gICAgICBnID0gZyA+IDMxMzA4ZS03ID8gMS4wNTUgKiBNYXRoLnBvdyhnLCAxIC8gMi40KSAtIDAuMDU1IDogZyAqIDEyLjkyO1xuICAgICAgYiA9IGIgPiAzMTMwOGUtNyA/IDEuMDU1ICogTWF0aC5wb3coYiwgMSAvIDIuNCkgLSAwLjA1NSA6IGIgKiAxMi45MjtcbiAgICAgIHIgPSBNYXRoLm1pbihNYXRoLm1heCgwLCByKSwgMSk7XG4gICAgICBnID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgZyksIDEpO1xuICAgICAgYiA9IE1hdGgubWluKE1hdGgubWF4KDAsIGIpLCAxKTtcbiAgICAgIHJldHVybiBbciAqIDI1NSwgZyAqIDI1NSwgYiAqIDI1NV07XG4gICAgfTtcbiAgICBjb252ZXJ0Lnh5ei5sYWIgPSBmdW5jdGlvbih4eXopIHtcbiAgICAgIHZhciB4ID0geHl6WzBdO1xuICAgICAgdmFyIHkgPSB4eXpbMV07XG4gICAgICB2YXIgeiA9IHh5elsyXTtcbiAgICAgIHZhciBsO1xuICAgICAgdmFyIGE7XG4gICAgICB2YXIgYjtcbiAgICAgIHggLz0gOTUuMDQ3O1xuICAgICAgeSAvPSAxMDA7XG4gICAgICB6IC89IDEwOC44ODM7XG4gICAgICB4ID0geCA+IDg4NTZlLTYgPyBNYXRoLnBvdyh4LCAxIC8gMykgOiA3Ljc4NyAqIHggKyAxNiAvIDExNjtcbiAgICAgIHkgPSB5ID4gODg1NmUtNiA/IE1hdGgucG93KHksIDEgLyAzKSA6IDcuNzg3ICogeSArIDE2IC8gMTE2O1xuICAgICAgeiA9IHogPiA4ODU2ZS02ID8gTWF0aC5wb3coeiwgMSAvIDMpIDogNy43ODcgKiB6ICsgMTYgLyAxMTY7XG4gICAgICBsID0gMTE2ICogeSAtIDE2O1xuICAgICAgYSA9IDUwMCAqICh4IC0geSk7XG4gICAgICBiID0gMjAwICogKHkgLSB6KTtcbiAgICAgIHJldHVybiBbbCwgYSwgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LmxhYi54eXogPSBmdW5jdGlvbihsYWIpIHtcbiAgICAgIHZhciBsID0gbGFiWzBdO1xuICAgICAgdmFyIGEgPSBsYWJbMV07XG4gICAgICB2YXIgYiA9IGxhYlsyXTtcbiAgICAgIHZhciB4O1xuICAgICAgdmFyIHk7XG4gICAgICB2YXIgejtcbiAgICAgIHkgPSAobCArIDE2KSAvIDExNjtcbiAgICAgIHggPSBhIC8gNTAwICsgeTtcbiAgICAgIHogPSB5IC0gYiAvIDIwMDtcbiAgICAgIHZhciB5MiA9IE1hdGgucG93KHksIDMpO1xuICAgICAgdmFyIHgyID0gTWF0aC5wb3coeCwgMyk7XG4gICAgICB2YXIgejIgPSBNYXRoLnBvdyh6LCAzKTtcbiAgICAgIHkgPSB5MiA+IDg4NTZlLTYgPyB5MiA6ICh5IC0gMTYgLyAxMTYpIC8gNy43ODc7XG4gICAgICB4ID0geDIgPiA4ODU2ZS02ID8geDIgOiAoeCAtIDE2IC8gMTE2KSAvIDcuNzg3O1xuICAgICAgeiA9IHoyID4gODg1NmUtNiA/IHoyIDogKHogLSAxNiAvIDExNikgLyA3Ljc4NztcbiAgICAgIHggKj0gOTUuMDQ3O1xuICAgICAgeSAqPSAxMDA7XG4gICAgICB6ICo9IDEwOC44ODM7XG4gICAgICByZXR1cm4gW3gsIHksIHpdO1xuICAgIH07XG4gICAgY29udmVydC5sYWIubGNoID0gZnVuY3Rpb24obGFiKSB7XG4gICAgICB2YXIgbCA9IGxhYlswXTtcbiAgICAgIHZhciBhID0gbGFiWzFdO1xuICAgICAgdmFyIGIgPSBsYWJbMl07XG4gICAgICB2YXIgaHI7XG4gICAgICB2YXIgaDtcbiAgICAgIHZhciBjO1xuICAgICAgaHIgPSBNYXRoLmF0YW4yKGIsIGEpO1xuICAgICAgaCA9IGhyICogMzYwIC8gMiAvIE1hdGguUEk7XG4gICAgICBpZiAoaCA8IDApIHtcbiAgICAgICAgaCArPSAzNjA7XG4gICAgICB9XG4gICAgICBjID0gTWF0aC5zcXJ0KGEgKiBhICsgYiAqIGIpO1xuICAgICAgcmV0dXJuIFtsLCBjLCBoXTtcbiAgICB9O1xuICAgIGNvbnZlcnQubGNoLmxhYiA9IGZ1bmN0aW9uKGxjaCkge1xuICAgICAgdmFyIGwgPSBsY2hbMF07XG4gICAgICB2YXIgYyA9IGxjaFsxXTtcbiAgICAgIHZhciBoID0gbGNoWzJdO1xuICAgICAgdmFyIGE7XG4gICAgICB2YXIgYjtcbiAgICAgIHZhciBocjtcbiAgICAgIGhyID0gaCAvIDM2MCAqIDIgKiBNYXRoLlBJO1xuICAgICAgYSA9IGMgKiBNYXRoLmNvcyhocik7XG4gICAgICBiID0gYyAqIE1hdGguc2luKGhyKTtcbiAgICAgIHJldHVybiBbbCwgYSwgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5hbnNpMTYgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgciA9IGFyZ3NbMF07XG4gICAgICB2YXIgZyA9IGFyZ3NbMV07XG4gICAgICB2YXIgYiA9IGFyZ3NbMl07XG4gICAgICB2YXIgdmFsdWUgPSAxIGluIGFyZ3VtZW50cyA/IGFyZ3VtZW50c1sxXSA6IGNvbnZlcnQucmdiLmhzdihhcmdzKVsyXTtcbiAgICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSAvIDUwKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMzA7XG4gICAgICB9XG4gICAgICB2YXIgYW5zaSA9IDMwICsgKE1hdGgucm91bmQoYiAvIDI1NSkgPDwgMiB8IE1hdGgucm91bmQoZyAvIDI1NSkgPDwgMSB8IE1hdGgucm91bmQociAvIDI1NSkpO1xuICAgICAgaWYgKHZhbHVlID09PSAyKSB7XG4gICAgICAgIGFuc2kgKz0gNjA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYW5zaTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHN2LmFuc2kxNiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIHJldHVybiBjb252ZXJ0LnJnYi5hbnNpMTYoY29udmVydC5oc3YucmdiKGFyZ3MpLCBhcmdzWzJdKTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmFuc2kyNTYgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgciA9IGFyZ3NbMF07XG4gICAgICB2YXIgZyA9IGFyZ3NbMV07XG4gICAgICB2YXIgYiA9IGFyZ3NbMl07XG4gICAgICBpZiAociA9PT0gZyAmJiBnID09PSBiKSB7XG4gICAgICAgIGlmIChyIDwgOCkge1xuICAgICAgICAgIHJldHVybiAxNjtcbiAgICAgICAgfVxuICAgICAgICBpZiAociA+IDI0OCkge1xuICAgICAgICAgIHJldHVybiAyMzE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoKHIgLSA4KSAvIDI0NyAqIDI0KSArIDIzMjtcbiAgICAgIH1cbiAgICAgIHZhciBhbnNpID0gMTYgKyAzNiAqIE1hdGgucm91bmQociAvIDI1NSAqIDUpICsgNiAqIE1hdGgucm91bmQoZyAvIDI1NSAqIDUpICsgTWF0aC5yb3VuZChiIC8gMjU1ICogNSk7XG4gICAgICByZXR1cm4gYW5zaTtcbiAgICB9O1xuICAgIGNvbnZlcnQuYW5zaTE2LnJnYiA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIHZhciBjb2xvciA9IGFyZ3MgJSAxMDtcbiAgICAgIGlmIChjb2xvciA9PT0gMCB8fCBjb2xvciA9PT0gNykge1xuICAgICAgICBpZiAoYXJncyA+IDUwKSB7XG4gICAgICAgICAgY29sb3IgKz0gMy41O1xuICAgICAgICB9XG4gICAgICAgIGNvbG9yID0gY29sb3IgLyAxMC41ICogMjU1O1xuICAgICAgICByZXR1cm4gW2NvbG9yLCBjb2xvciwgY29sb3JdO1xuICAgICAgfVxuICAgICAgdmFyIG11bHQgPSAofn4oYXJncyA+IDUwKSArIDEpICogMC41O1xuICAgICAgdmFyIHIgPSAoY29sb3IgJiAxKSAqIG11bHQgKiAyNTU7XG4gICAgICB2YXIgZyA9IChjb2xvciA+PiAxICYgMSkgKiBtdWx0ICogMjU1O1xuICAgICAgdmFyIGIgPSAoY29sb3IgPj4gMiAmIDEpICogbXVsdCAqIDI1NTtcbiAgICAgIHJldHVybiBbciwgZywgYl07XG4gICAgfTtcbiAgICBjb252ZXJ0LmFuc2kyNTYucmdiID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgaWYgKGFyZ3MgPj0gMjMyKSB7XG4gICAgICAgIHZhciBjID0gKGFyZ3MgLSAyMzIpICogMTAgKyA4O1xuICAgICAgICByZXR1cm4gW2MsIGMsIGNdO1xuICAgICAgfVxuICAgICAgYXJncyAtPSAxNjtcbiAgICAgIHZhciByZW07XG4gICAgICB2YXIgciA9IE1hdGguZmxvb3IoYXJncyAvIDM2KSAvIDUgKiAyNTU7XG4gICAgICB2YXIgZyA9IE1hdGguZmxvb3IoKHJlbSA9IGFyZ3MgJSAzNikgLyA2KSAvIDUgKiAyNTU7XG4gICAgICB2YXIgYiA9IHJlbSAlIDYgLyA1ICogMjU1O1xuICAgICAgcmV0dXJuIFtyLCBnLCBiXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmhleCA9IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgIHZhciBpbnRlZ2VyID0gKChNYXRoLnJvdW5kKGFyZ3NbMF0pICYgMjU1KSA8PCAxNikgKyAoKE1hdGgucm91bmQoYXJnc1sxXSkgJiAyNTUpIDw8IDgpICsgKE1hdGgucm91bmQoYXJnc1syXSkgJiAyNTUpO1xuICAgICAgdmFyIHN0cmluZyA9IGludGVnZXIudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gICAgICByZXR1cm4gXCIwMDAwMDBcIi5zdWJzdHJpbmcoc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7XG4gICAgfTtcbiAgICBjb252ZXJ0LmhleC5yZ2IgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBhcmdzLnRvU3RyaW5nKDE2KS5tYXRjaCgvW2EtZjAtOV17Nn18W2EtZjAtOV17M30vaSk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiBbMCwgMCwgMF07XG4gICAgICB9XG4gICAgICB2YXIgY29sb3JTdHJpbmcgPSBtYXRjaFswXTtcbiAgICAgIGlmIChtYXRjaFswXS5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgY29sb3JTdHJpbmcgPSBjb2xvclN0cmluZy5zcGxpdChcIlwiKS5tYXAoZnVuY3Rpb24oY2hhcikge1xuICAgICAgICAgIHJldHVybiBjaGFyICsgY2hhcjtcbiAgICAgICAgfSkuam9pbihcIlwiKTtcbiAgICAgIH1cbiAgICAgIHZhciBpbnRlZ2VyID0gcGFyc2VJbnQoY29sb3JTdHJpbmcsIDE2KTtcbiAgICAgIHZhciByID0gaW50ZWdlciA+PiAxNiAmIDI1NTtcbiAgICAgIHZhciBnID0gaW50ZWdlciA+PiA4ICYgMjU1O1xuICAgICAgdmFyIGIgPSBpbnRlZ2VyICYgMjU1O1xuICAgICAgcmV0dXJuIFtyLCBnLCBiXTtcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmhjZyA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgdmFyIHIgPSByZ2JbMF0gLyAyNTU7XG4gICAgICB2YXIgZyA9IHJnYlsxXSAvIDI1NTtcbiAgICAgIHZhciBiID0gcmdiWzJdIC8gMjU1O1xuICAgICAgdmFyIG1heCA9IE1hdGgubWF4KE1hdGgubWF4KHIsIGcpLCBiKTtcbiAgICAgIHZhciBtaW4gPSBNYXRoLm1pbihNYXRoLm1pbihyLCBnKSwgYik7XG4gICAgICB2YXIgY2hyb21hID0gbWF4IC0gbWluO1xuICAgICAgdmFyIGdyYXlzY2FsZTtcbiAgICAgIHZhciBodWU7XG4gICAgICBpZiAoY2hyb21hIDwgMSkge1xuICAgICAgICBncmF5c2NhbGUgPSBtaW4gLyAoMSAtIGNocm9tYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncmF5c2NhbGUgPSAwO1xuICAgICAgfVxuICAgICAgaWYgKGNocm9tYSA8PSAwKSB7XG4gICAgICAgIGh1ZSA9IDA7XG4gICAgICB9IGVsc2UgaWYgKG1heCA9PT0gcikge1xuICAgICAgICBodWUgPSAoZyAtIGIpIC8gY2hyb21hICUgNjtcbiAgICAgIH0gZWxzZSBpZiAobWF4ID09PSBnKSB7XG4gICAgICAgIGh1ZSA9IDIgKyAoYiAtIHIpIC8gY2hyb21hO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaHVlID0gNCArIChyIC0gZykgLyBjaHJvbWEgKyA0O1xuICAgICAgfVxuICAgICAgaHVlIC89IDY7XG4gICAgICBodWUgJT0gMTtcbiAgICAgIHJldHVybiBbaHVlICogMzYwLCBjaHJvbWEgKiAxMDAsIGdyYXlzY2FsZSAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhzbC5oY2cgPSBmdW5jdGlvbihoc2wpIHtcbiAgICAgIHZhciBzID0gaHNsWzFdIC8gMTAwO1xuICAgICAgdmFyIGwgPSBoc2xbMl0gLyAxMDA7XG4gICAgICB2YXIgYyA9IDE7XG4gICAgICB2YXIgZiA9IDA7XG4gICAgICBpZiAobCA8IDAuNSkge1xuICAgICAgICBjID0gMiAqIHMgKiBsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYyA9IDIgKiBzICogKDEgLSBsKTtcbiAgICAgIH1cbiAgICAgIGlmIChjIDwgMSkge1xuICAgICAgICBmID0gKGwgLSAwLjUgKiBjKSAvICgxIC0gYyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2hzbFswXSwgYyAqIDEwMCwgZiAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0Lmhzdi5oY2cgPSBmdW5jdGlvbihoc3YpIHtcbiAgICAgIHZhciBzID0gaHN2WzFdIC8gMTAwO1xuICAgICAgdmFyIHYgPSBoc3ZbMl0gLyAxMDA7XG4gICAgICB2YXIgYyA9IHMgKiB2O1xuICAgICAgdmFyIGYgPSAwO1xuICAgICAgaWYgKGMgPCAxKSB7XG4gICAgICAgIGYgPSAodiAtIGMpIC8gKDEgLSBjKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaHN2WzBdLCBjICogMTAwLCBmICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaGNnLnJnYiA9IGZ1bmN0aW9uKGhjZykge1xuICAgICAgdmFyIGggPSBoY2dbMF0gLyAzNjA7XG4gICAgICB2YXIgYyA9IGhjZ1sxXSAvIDEwMDtcbiAgICAgIHZhciBnID0gaGNnWzJdIC8gMTAwO1xuICAgICAgaWYgKGMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFtnICogMjU1LCBnICogMjU1LCBnICogMjU1XTtcbiAgICAgIH1cbiAgICAgIHZhciBwdXJlID0gWzAsIDAsIDBdO1xuICAgICAgdmFyIGhpID0gaCAlIDEgKiA2O1xuICAgICAgdmFyIHYgPSBoaSAlIDE7XG4gICAgICB2YXIgdyA9IDEgLSB2O1xuICAgICAgdmFyIG1nID0gMDtcbiAgICAgIHN3aXRjaCAoTWF0aC5mbG9vcihoaSkpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIHB1cmVbMF0gPSAxO1xuICAgICAgICAgIHB1cmVbMV0gPSB2O1xuICAgICAgICAgIHB1cmVbMl0gPSAwO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcHVyZVswXSA9IHc7XG4gICAgICAgICAgcHVyZVsxXSA9IDE7XG4gICAgICAgICAgcHVyZVsyXSA9IDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBwdXJlWzBdID0gMDtcbiAgICAgICAgICBwdXJlWzFdID0gMTtcbiAgICAgICAgICBwdXJlWzJdID0gdjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHB1cmVbMF0gPSAwO1xuICAgICAgICAgIHB1cmVbMV0gPSB3O1xuICAgICAgICAgIHB1cmVbMl0gPSAxO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcHVyZVswXSA9IHY7XG4gICAgICAgICAgcHVyZVsxXSA9IDA7XG4gICAgICAgICAgcHVyZVsyXSA9IDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHVyZVswXSA9IDE7XG4gICAgICAgICAgcHVyZVsxXSA9IDA7XG4gICAgICAgICAgcHVyZVsyXSA9IHc7XG4gICAgICB9XG4gICAgICBtZyA9ICgxIC0gYykgKiBnO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgKGMgKiBwdXJlWzBdICsgbWcpICogMjU1LFxuICAgICAgICAoYyAqIHB1cmVbMV0gKyBtZykgKiAyNTUsXG4gICAgICAgIChjICogcHVyZVsyXSArIG1nKSAqIDI1NVxuICAgICAgXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaGNnLmhzdiA9IGZ1bmN0aW9uKGhjZykge1xuICAgICAgdmFyIGMgPSBoY2dbMV0gLyAxMDA7XG4gICAgICB2YXIgZyA9IGhjZ1syXSAvIDEwMDtcbiAgICAgIHZhciB2ID0gYyArIGcgKiAoMSAtIGMpO1xuICAgICAgdmFyIGYgPSAwO1xuICAgICAgaWYgKHYgPiAwKSB7XG4gICAgICAgIGYgPSBjIC8gdjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaGNnWzBdLCBmICogMTAwLCB2ICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaGNnLmhzbCA9IGZ1bmN0aW9uKGhjZykge1xuICAgICAgdmFyIGMgPSBoY2dbMV0gLyAxMDA7XG4gICAgICB2YXIgZyA9IGhjZ1syXSAvIDEwMDtcbiAgICAgIHZhciBsID0gZyAqICgxIC0gYykgKyAwLjUgKiBjO1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgaWYgKGwgPiAwICYmIGwgPCAwLjUpIHtcbiAgICAgICAgcyA9IGMgLyAoMiAqIGwpO1xuICAgICAgfSBlbHNlIGlmIChsID49IDAuNSAmJiBsIDwgMSkge1xuICAgICAgICBzID0gYyAvICgyICogKDEgLSBsKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW2hjZ1swXSwgcyAqIDEwMCwgbCAqIDEwMF07XG4gICAgfTtcbiAgICBjb252ZXJ0LmhjZy5od2IgPSBmdW5jdGlvbihoY2cpIHtcbiAgICAgIHZhciBjID0gaGNnWzFdIC8gMTAwO1xuICAgICAgdmFyIGcgPSBoY2dbMl0gLyAxMDA7XG4gICAgICB2YXIgdiA9IGMgKyBnICogKDEgLSBjKTtcbiAgICAgIHJldHVybiBbaGNnWzBdLCAodiAtIGMpICogMTAwLCAoMSAtIHYpICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuaHdiLmhjZyA9IGZ1bmN0aW9uKGh3Yikge1xuICAgICAgdmFyIHcgPSBod2JbMV0gLyAxMDA7XG4gICAgICB2YXIgYiA9IGh3YlsyXSAvIDEwMDtcbiAgICAgIHZhciB2ID0gMSAtIGI7XG4gICAgICB2YXIgYyA9IHYgLSB3O1xuICAgICAgdmFyIGcgPSAwO1xuICAgICAgaWYgKGMgPCAxKSB7XG4gICAgICAgIGcgPSAodiAtIGMpIC8gKDEgLSBjKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbaHdiWzBdLCBjICogMTAwLCBnICogMTAwXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuYXBwbGUucmdiID0gZnVuY3Rpb24oYXBwbGUpIHtcbiAgICAgIHJldHVybiBbYXBwbGVbMF0gLyA2NTUzNSAqIDI1NSwgYXBwbGVbMV0gLyA2NTUzNSAqIDI1NSwgYXBwbGVbMl0gLyA2NTUzNSAqIDI1NV07XG4gICAgfTtcbiAgICBjb252ZXJ0LnJnYi5hcHBsZSA9IGZ1bmN0aW9uKHJnYikge1xuICAgICAgcmV0dXJuIFtyZ2JbMF0gLyAyNTUgKiA2NTUzNSwgcmdiWzFdIC8gMjU1ICogNjU1MzUsIHJnYlsyXSAvIDI1NSAqIDY1NTM1XTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5yZ2IgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICByZXR1cm4gW2FyZ3NbMF0gLyAxMDAgKiAyNTUsIGFyZ3NbMF0gLyAxMDAgKiAyNTUsIGFyZ3NbMF0gLyAxMDAgKiAyNTVdO1xuICAgIH07XG4gICAgY29udmVydC5ncmF5LmhzbCA9IGNvbnZlcnQuZ3JheS5oc3YgPSBmdW5jdGlvbihhcmdzKSB7XG4gICAgICByZXR1cm4gWzAsIDAsIGFyZ3NbMF1dO1xuICAgIH07XG4gICAgY29udmVydC5ncmF5Lmh3YiA9IGZ1bmN0aW9uKGdyYXkpIHtcbiAgICAgIHJldHVybiBbMCwgMTAwLCBncmF5WzBdXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5jbXlrID0gZnVuY3Rpb24oZ3JheSkge1xuICAgICAgcmV0dXJuIFswLCAwLCAwLCBncmF5WzBdXTtcbiAgICB9O1xuICAgIGNvbnZlcnQuZ3JheS5sYWIgPSBmdW5jdGlvbihncmF5KSB7XG4gICAgICByZXR1cm4gW2dyYXlbMF0sIDAsIDBdO1xuICAgIH07XG4gICAgY29udmVydC5ncmF5LmhleCA9IGZ1bmN0aW9uKGdyYXkpIHtcbiAgICAgIHZhciB2YWwgPSBNYXRoLnJvdW5kKGdyYXlbMF0gLyAxMDAgKiAyNTUpICYgMjU1O1xuICAgICAgdmFyIGludGVnZXIgPSAodmFsIDw8IDE2KSArICh2YWwgPDwgOCkgKyB2YWw7XG4gICAgICB2YXIgc3RyaW5nID0gaW50ZWdlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcbiAgICAgIHJldHVybiBcIjAwMDAwMFwiLnN1YnN0cmluZyhzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbiAgICB9O1xuICAgIGNvbnZlcnQucmdiLmdyYXkgPSBmdW5jdGlvbihyZ2IpIHtcbiAgICAgIHZhciB2YWwgPSAocmdiWzBdICsgcmdiWzFdICsgcmdiWzJdKSAvIDM7XG4gICAgICByZXR1cm4gW3ZhbCAvIDI1NSAqIDEwMF07XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L3JvdXRlLmpzXG52YXIgcmVxdWlyZV9yb3V0ZSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L3JvdXRlLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgdmFyIGNvbnZlcnNpb25zID0gcmVxdWlyZV9jb252ZXJzaW9ucygpO1xuICAgIGZ1bmN0aW9uIGJ1aWxkR3JhcGgoKSB7XG4gICAgICB2YXIgZ3JhcGggPSB7fTtcbiAgICAgIHZhciBtb2RlbHMgPSBPYmplY3Qua2V5cyhjb252ZXJzaW9ucyk7XG4gICAgICBmb3IgKHZhciBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGdyYXBoW21vZGVsc1tpXV0gPSB7XG4gICAgICAgICAgLy8gaHR0cDovL2pzcGVyZi5jb20vMS12cy1pbmZpbml0eVxuICAgICAgICAgIC8vIG1pY3JvLW9wdCwgYnV0IHRoaXMgaXMgc2ltcGxlLlxuICAgICAgICAgIGRpc3RhbmNlOiAtMSxcbiAgICAgICAgICBwYXJlbnQ6IG51bGxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVyaXZlQkZTKGZyb21Nb2RlbCkge1xuICAgICAgdmFyIGdyYXBoID0gYnVpbGRHcmFwaCgpO1xuICAgICAgdmFyIHF1ZXVlID0gW2Zyb21Nb2RlbF07XG4gICAgICBncmFwaFtmcm9tTW9kZWxdLmRpc3RhbmNlID0gMDtcbiAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBxdWV1ZS5wb3AoKTtcbiAgICAgICAgdmFyIGFkamFjZW50cyA9IE9iamVjdC5rZXlzKGNvbnZlcnNpb25zW2N1cnJlbnRdKTtcbiAgICAgICAgZm9yICh2YXIgbGVuID0gYWRqYWNlbnRzLmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIHZhciBhZGphY2VudCA9IGFkamFjZW50c1tpXTtcbiAgICAgICAgICB2YXIgbm9kZSA9IGdyYXBoW2FkamFjZW50XTtcbiAgICAgICAgICBpZiAobm9kZS5kaXN0YW5jZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIG5vZGUuZGlzdGFuY2UgPSBncmFwaFtjdXJyZW50XS5kaXN0YW5jZSArIDE7XG4gICAgICAgICAgICBub2RlLnBhcmVudCA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBxdWV1ZS51bnNoaWZ0KGFkamFjZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBncmFwaDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGluayhmcm9tLCB0bykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRvKGZyb20oYXJncykpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JhcENvbnZlcnNpb24odG9Nb2RlbCwgZ3JhcGgpIHtcbiAgICAgIHZhciBwYXRoID0gW2dyYXBoW3RvTW9kZWxdLnBhcmVudCwgdG9Nb2RlbF07XG4gICAgICB2YXIgZm4gPSBjb252ZXJzaW9uc1tncmFwaFt0b01vZGVsXS5wYXJlbnRdW3RvTW9kZWxdO1xuICAgICAgdmFyIGN1ciA9IGdyYXBoW3RvTW9kZWxdLnBhcmVudDtcbiAgICAgIHdoaWxlIChncmFwaFtjdXJdLnBhcmVudCkge1xuICAgICAgICBwYXRoLnVuc2hpZnQoZ3JhcGhbY3VyXS5wYXJlbnQpO1xuICAgICAgICBmbiA9IGxpbmsoY29udmVyc2lvbnNbZ3JhcGhbY3VyXS5wYXJlbnRdW2N1cl0sIGZuKTtcbiAgICAgICAgY3VyID0gZ3JhcGhbY3VyXS5wYXJlbnQ7XG4gICAgICB9XG4gICAgICBmbi5jb252ZXJzaW9uID0gcGF0aDtcbiAgICAgIHJldHVybiBmbjtcbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmcm9tTW9kZWwpIHtcbiAgICAgIHZhciBncmFwaCA9IGRlcml2ZUJGUyhmcm9tTW9kZWwpO1xuICAgICAgdmFyIGNvbnZlcnNpb24gPSB7fTtcbiAgICAgIHZhciBtb2RlbHMgPSBPYmplY3Qua2V5cyhncmFwaCk7XG4gICAgICBmb3IgKHZhciBsZW4gPSBtb2RlbHMubGVuZ3RoLCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHZhciB0b01vZGVsID0gbW9kZWxzW2ldO1xuICAgICAgICB2YXIgbm9kZSA9IGdyYXBoW3RvTW9kZWxdO1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb252ZXJzaW9uW3RvTW9kZWxdID0gd3JhcENvbnZlcnNpb24odG9Nb2RlbCwgZ3JhcGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnZlcnNpb247XG4gICAgfTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb2xvci1jb252ZXJ0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9jb2xvcl9jb252ZXJ0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NvbG9yLWNvbnZlcnQvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICB2YXIgY29udmVyc2lvbnMgPSByZXF1aXJlX2NvbnZlcnNpb25zKCk7XG4gICAgdmFyIHJvdXRlID0gcmVxdWlyZV9yb3V0ZSgpO1xuICAgIHZhciBjb252ZXJ0ID0ge307XG4gICAgdmFyIG1vZGVscyA9IE9iamVjdC5rZXlzKGNvbnZlcnNpb25zKTtcbiAgICBmdW5jdGlvbiB3cmFwUmF3KGZuKSB7XG4gICAgICB2YXIgd3JhcHBlZEZuID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgICBpZiAoYXJncyA9PT0gdm9pZCAwIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJncztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm4oYXJncyk7XG4gICAgICB9O1xuICAgICAgaWYgKFwiY29udmVyc2lvblwiIGluIGZuKSB7XG4gICAgICAgIHdyYXBwZWRGbi5jb252ZXJzaW9uID0gZm4uY29udmVyc2lvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3cmFwcGVkRm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyYXBSb3VuZGVkKGZuKSB7XG4gICAgICB2YXIgd3JhcHBlZEZuID0gZnVuY3Rpb24oYXJncykge1xuICAgICAgICBpZiAoYXJncyA9PT0gdm9pZCAwIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gYXJncztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmVzdWx0ID0gZm4oYXJncyk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgZm9yICh2YXIgbGVuID0gcmVzdWx0Lmxlbmd0aCwgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgcmVzdWx0W2ldID0gTWF0aC5yb3VuZChyZXN1bHRbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICAgIGlmIChcImNvbnZlcnNpb25cIiBpbiBmbikge1xuICAgICAgICB3cmFwcGVkRm4uY29udmVyc2lvbiA9IGZuLmNvbnZlcnNpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gd3JhcHBlZEZuO1xuICAgIH1cbiAgICBtb2RlbHMuZm9yRWFjaChmdW5jdGlvbihmcm9tTW9kZWwpIHtcbiAgICAgIGNvbnZlcnRbZnJvbU1vZGVsXSA9IHt9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgXCJjaGFubmVsc1wiLCB7IHZhbHVlOiBjb252ZXJzaW9uc1tmcm9tTW9kZWxdLmNoYW5uZWxzIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnZlcnRbZnJvbU1vZGVsXSwgXCJsYWJlbHNcIiwgeyB2YWx1ZTogY29udmVyc2lvbnNbZnJvbU1vZGVsXS5sYWJlbHMgfSk7XG4gICAgICB2YXIgcm91dGVzID0gcm91dGUoZnJvbU1vZGVsKTtcbiAgICAgIHZhciByb3V0ZU1vZGVscyA9IE9iamVjdC5rZXlzKHJvdXRlcyk7XG4gICAgICByb3V0ZU1vZGVscy5mb3JFYWNoKGZ1bmN0aW9uKHRvTW9kZWwpIHtcbiAgICAgICAgdmFyIGZuID0gcm91dGVzW3RvTW9kZWxdO1xuICAgICAgICBjb252ZXJ0W2Zyb21Nb2RlbF1bdG9Nb2RlbF0gPSB3cmFwUm91bmRlZChmbik7XG4gICAgICAgIGNvbnZlcnRbZnJvbU1vZGVsXVt0b01vZGVsXS5yYXcgPSB3cmFwUmF3KGZuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIG1vZHVsZS5leHBvcnRzID0gY29udmVydDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9hbnNpLXN0eWxlcy9pbmRleC5qc1xudmFyIHJlcXVpcmVfYW5zaV9zdHlsZXMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvYW5zaS1zdHlsZXMvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29sb3JDb252ZXJ0ID0gcmVxdWlyZV9jb2xvcl9jb252ZXJ0KCk7XG4gICAgdmFyIHdyYXBBbnNpMTYgPSAoZm4sIG9mZnNldCkgPT4gZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBjb2RlID0gZm4uYXBwbHkoY29sb3JDb252ZXJ0LCBhcmd1bWVudHMpO1xuICAgICAgcmV0dXJuIGBcXHgxQlske2NvZGUgKyBvZmZzZXR9bWA7XG4gICAgfTtcbiAgICB2YXIgd3JhcEFuc2kyNTYgPSAoZm4sIG9mZnNldCkgPT4gZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBjb2RlID0gZm4uYXBwbHkoY29sb3JDb252ZXJ0LCBhcmd1bWVudHMpO1xuICAgICAgcmV0dXJuIGBcXHgxQlskezM4ICsgb2Zmc2V0fTs1OyR7Y29kZX1tYDtcbiAgICB9O1xuICAgIHZhciB3cmFwQW5zaTE2bSA9IChmbiwgb2Zmc2V0KSA9PiBmdW5jdGlvbigpIHtcbiAgICAgIGNvbnN0IHJnYiA9IGZuLmFwcGx5KGNvbG9yQ29udmVydCwgYXJndW1lbnRzKTtcbiAgICAgIHJldHVybiBgXFx4MUJbJHszOCArIG9mZnNldH07Mjske3JnYlswXX07JHtyZ2JbMV19OyR7cmdiWzJdfW1gO1xuICAgIH07XG4gICAgZnVuY3Rpb24gYXNzZW1ibGVTdHlsZXMoKSB7XG4gICAgICBjb25zdCBjb2RlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBjb25zdCBzdHlsZXMgPSB7XG4gICAgICAgIG1vZGlmaWVyOiB7XG4gICAgICAgICAgcmVzZXQ6IFswLCAwXSxcbiAgICAgICAgICAvLyAyMSBpc24ndCB3aWRlbHkgc3VwcG9ydGVkIGFuZCAyMiBkb2VzIHRoZSBzYW1lIHRoaW5nXG4gICAgICAgICAgYm9sZDogWzEsIDIyXSxcbiAgICAgICAgICBkaW06IFsyLCAyMl0sXG4gICAgICAgICAgaXRhbGljOiBbMywgMjNdLFxuICAgICAgICAgIHVuZGVybGluZTogWzQsIDI0XSxcbiAgICAgICAgICBpbnZlcnNlOiBbNywgMjddLFxuICAgICAgICAgIGhpZGRlbjogWzgsIDI4XSxcbiAgICAgICAgICBzdHJpa2V0aHJvdWdoOiBbOSwgMjldXG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgYmxhY2s6IFszMCwgMzldLFxuICAgICAgICAgIHJlZDogWzMxLCAzOV0sXG4gICAgICAgICAgZ3JlZW46IFszMiwgMzldLFxuICAgICAgICAgIHllbGxvdzogWzMzLCAzOV0sXG4gICAgICAgICAgYmx1ZTogWzM0LCAzOV0sXG4gICAgICAgICAgbWFnZW50YTogWzM1LCAzOV0sXG4gICAgICAgICAgY3lhbjogWzM2LCAzOV0sXG4gICAgICAgICAgd2hpdGU6IFszNywgMzldLFxuICAgICAgICAgIGdyYXk6IFs5MCwgMzldLFxuICAgICAgICAgIC8vIEJyaWdodCBjb2xvclxuICAgICAgICAgIHJlZEJyaWdodDogWzkxLCAzOV0sXG4gICAgICAgICAgZ3JlZW5CcmlnaHQ6IFs5MiwgMzldLFxuICAgICAgICAgIHllbGxvd0JyaWdodDogWzkzLCAzOV0sXG4gICAgICAgICAgYmx1ZUJyaWdodDogWzk0LCAzOV0sXG4gICAgICAgICAgbWFnZW50YUJyaWdodDogWzk1LCAzOV0sXG4gICAgICAgICAgY3lhbkJyaWdodDogWzk2LCAzOV0sXG4gICAgICAgICAgd2hpdGVCcmlnaHQ6IFs5NywgMzldXG4gICAgICAgIH0sXG4gICAgICAgIGJnQ29sb3I6IHtcbiAgICAgICAgICBiZ0JsYWNrOiBbNDAsIDQ5XSxcbiAgICAgICAgICBiZ1JlZDogWzQxLCA0OV0sXG4gICAgICAgICAgYmdHcmVlbjogWzQyLCA0OV0sXG4gICAgICAgICAgYmdZZWxsb3c6IFs0MywgNDldLFxuICAgICAgICAgIGJnQmx1ZTogWzQ0LCA0OV0sXG4gICAgICAgICAgYmdNYWdlbnRhOiBbNDUsIDQ5XSxcbiAgICAgICAgICBiZ0N5YW46IFs0NiwgNDldLFxuICAgICAgICAgIGJnV2hpdGU6IFs0NywgNDldLFxuICAgICAgICAgIC8vIEJyaWdodCBjb2xvclxuICAgICAgICAgIGJnQmxhY2tCcmlnaHQ6IFsxMDAsIDQ5XSxcbiAgICAgICAgICBiZ1JlZEJyaWdodDogWzEwMSwgNDldLFxuICAgICAgICAgIGJnR3JlZW5CcmlnaHQ6IFsxMDIsIDQ5XSxcbiAgICAgICAgICBiZ1llbGxvd0JyaWdodDogWzEwMywgNDldLFxuICAgICAgICAgIGJnQmx1ZUJyaWdodDogWzEwNCwgNDldLFxuICAgICAgICAgIGJnTWFnZW50YUJyaWdodDogWzEwNSwgNDldLFxuICAgICAgICAgIGJnQ3lhbkJyaWdodDogWzEwNiwgNDldLFxuICAgICAgICAgIGJnV2hpdGVCcmlnaHQ6IFsxMDcsIDQ5XVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc3R5bGVzLmNvbG9yLmdyZXkgPSBzdHlsZXMuY29sb3IuZ3JheTtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXBOYW1lIG9mIE9iamVjdC5rZXlzKHN0eWxlcykpIHtcbiAgICAgICAgY29uc3QgZ3JvdXAgPSBzdHlsZXNbZ3JvdXBOYW1lXTtcbiAgICAgICAgZm9yIChjb25zdCBzdHlsZU5hbWUgb2YgT2JqZWN0LmtleXMoZ3JvdXApKSB7XG4gICAgICAgICAgY29uc3Qgc3R5bGUgPSBncm91cFtzdHlsZU5hbWVdO1xuICAgICAgICAgIHN0eWxlc1tzdHlsZU5hbWVdID0ge1xuICAgICAgICAgICAgb3BlbjogYFxceDFCWyR7c3R5bGVbMF19bWAsXG4gICAgICAgICAgICBjbG9zZTogYFxceDFCWyR7c3R5bGVbMV19bWBcbiAgICAgICAgICB9O1xuICAgICAgICAgIGdyb3VwW3N0eWxlTmFtZV0gPSBzdHlsZXNbc3R5bGVOYW1lXTtcbiAgICAgICAgICBjb2Rlcy5zZXQoc3R5bGVbMF0sIHN0eWxlWzFdKTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3R5bGVzLCBncm91cE5hbWUsIHtcbiAgICAgICAgICB2YWx1ZTogZ3JvdXAsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHlsZXMsIFwiY29kZXNcIiwge1xuICAgICAgICAgIHZhbHVlOiBjb2RlcyxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFuc2kyYW5zaSA9IChuKSA9PiBuO1xuICAgICAgY29uc3QgcmdiMnJnYiA9IChyLCBnLCBiKSA9PiBbciwgZywgYl07XG4gICAgICBzdHlsZXMuY29sb3IuY2xvc2UgPSBcIlxceDFCWzM5bVwiO1xuICAgICAgc3R5bGVzLmJnQ29sb3IuY2xvc2UgPSBcIlxceDFCWzQ5bVwiO1xuICAgICAgc3R5bGVzLmNvbG9yLmFuc2kgPSB7XG4gICAgICAgIGFuc2k6IHdyYXBBbnNpMTYoYW5zaTJhbnNpLCAwKVxuICAgICAgfTtcbiAgICAgIHN0eWxlcy5jb2xvci5hbnNpMjU2ID0ge1xuICAgICAgICBhbnNpMjU2OiB3cmFwQW5zaTI1NihhbnNpMmFuc2ksIDApXG4gICAgICB9O1xuICAgICAgc3R5bGVzLmNvbG9yLmFuc2kxNm0gPSB7XG4gICAgICAgIHJnYjogd3JhcEFuc2kxNm0ocmdiMnJnYiwgMClcbiAgICAgIH07XG4gICAgICBzdHlsZXMuYmdDb2xvci5hbnNpID0ge1xuICAgICAgICBhbnNpOiB3cmFwQW5zaTE2KGFuc2kyYW5zaSwgMTApXG4gICAgICB9O1xuICAgICAgc3R5bGVzLmJnQ29sb3IuYW5zaTI1NiA9IHtcbiAgICAgICAgYW5zaTI1Njogd3JhcEFuc2kyNTYoYW5zaTJhbnNpLCAxMClcbiAgICAgIH07XG4gICAgICBzdHlsZXMuYmdDb2xvci5hbnNpMTZtID0ge1xuICAgICAgICByZ2I6IHdyYXBBbnNpMTZtKHJnYjJyZ2IsIDEwKVxuICAgICAgfTtcbiAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhjb2xvckNvbnZlcnQpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY29sb3JDb252ZXJ0W2tleV0gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWl0ZSA9IGNvbG9yQ29udmVydFtrZXldO1xuICAgICAgICBpZiAoa2V5ID09PSBcImFuc2kxNlwiKSB7XG4gICAgICAgICAga2V5ID0gXCJhbnNpXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiYW5zaTE2XCIgaW4gc3VpdGUpIHtcbiAgICAgICAgICBzdHlsZXMuY29sb3IuYW5zaVtrZXldID0gd3JhcEFuc2kxNihzdWl0ZS5hbnNpMTYsIDApO1xuICAgICAgICAgIHN0eWxlcy5iZ0NvbG9yLmFuc2lba2V5XSA9IHdyYXBBbnNpMTYoc3VpdGUuYW5zaTE2LCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiYW5zaTI1NlwiIGluIHN1aXRlKSB7XG4gICAgICAgICAgc3R5bGVzLmNvbG9yLmFuc2kyNTZba2V5XSA9IHdyYXBBbnNpMjU2KHN1aXRlLmFuc2kyNTYsIDApO1xuICAgICAgICAgIHN0eWxlcy5iZ0NvbG9yLmFuc2kyNTZba2V5XSA9IHdyYXBBbnNpMjU2KHN1aXRlLmFuc2kyNTYsIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJyZ2JcIiBpbiBzdWl0ZSkge1xuICAgICAgICAgIHN0eWxlcy5jb2xvci5hbnNpMTZtW2tleV0gPSB3cmFwQW5zaTE2bShzdWl0ZS5yZ2IsIDApO1xuICAgICAgICAgIHN0eWxlcy5iZ0NvbG9yLmFuc2kxNm1ba2V5XSA9IHdyYXBBbnNpMTZtKHN1aXRlLnJnYiwgMTApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3R5bGVzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImV4cG9ydHNcIiwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogYXNzZW1ibGVTdHlsZXNcbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9ub2RlX21vZHVsZXMvaGFzLWZsYWcvaW5kZXguanNcbnZhciByZXF1aXJlX2hhc19mbGFnID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9oYXMtZmxhZy9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIG1vZHVsZS5leHBvcnRzID0gKGZsYWcsIGFyZ3YpID0+IHtcbiAgICAgIGFyZ3YgPSBhcmd2IHx8IHByb2Nlc3MuYXJndjtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGZsYWcuc3RhcnRzV2l0aChcIi1cIikgPyBcIlwiIDogZmxhZy5sZW5ndGggPT09IDEgPyBcIi1cIiA6IFwiLS1cIjtcbiAgICAgIGNvbnN0IHBvcyA9IGFyZ3YuaW5kZXhPZihwcmVmaXggKyBmbGFnKTtcbiAgICAgIGNvbnN0IHRlcm1pbmF0b3JQb3MgPSBhcmd2LmluZGV4T2YoXCItLVwiKTtcbiAgICAgIHJldHVybiBwb3MgIT09IC0xICYmICh0ZXJtaW5hdG9yUG9zID09PSAtMSA/IHRydWUgOiBwb3MgPCB0ZXJtaW5hdG9yUG9zKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9zdXBwb3J0cy1jb2xvci9pbmRleC5qc1xudmFyIHJlcXVpcmVfc3VwcG9ydHNfY29sb3IgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL3N1cHBvcnRzLWNvbG9yL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIG9zID0gX19yZXF1aXJlKFwib3NcIik7XG4gICAgdmFyIGhhc0ZsYWcgPSByZXF1aXJlX2hhc19mbGFnKCk7XG4gICAgdmFyIGVudiA9IHByb2Nlc3MuZW52O1xuICAgIHZhciBmb3JjZUNvbG9yO1xuICAgIGlmIChoYXNGbGFnKFwibm8tY29sb3JcIikgfHwgaGFzRmxhZyhcIm5vLWNvbG9yc1wiKSB8fCBoYXNGbGFnKFwiY29sb3I9ZmFsc2VcIikpIHtcbiAgICAgIGZvcmNlQ29sb3IgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGhhc0ZsYWcoXCJjb2xvclwiKSB8fCBoYXNGbGFnKFwiY29sb3JzXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj10cnVlXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj1hbHdheXNcIikpIHtcbiAgICAgIGZvcmNlQ29sb3IgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoXCJGT1JDRV9DT0xPUlwiIGluIGVudikge1xuICAgICAgZm9yY2VDb2xvciA9IGVudi5GT1JDRV9DT0xPUi5sZW5ndGggPT09IDAgfHwgcGFyc2VJbnQoZW52LkZPUkNFX0NPTE9SLCAxMCkgIT09IDA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZUxldmVsKGxldmVsKSB7XG4gICAgICBpZiAobGV2ZWwgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGV2ZWwsXG4gICAgICAgIGhhc0Jhc2ljOiB0cnVlLFxuICAgICAgICBoYXMyNTY6IGxldmVsID49IDIsXG4gICAgICAgIGhhczE2bTogbGV2ZWwgPj0gM1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3VwcG9ydHNDb2xvcihzdHJlYW0pIHtcbiAgICAgIGlmIChmb3JjZUNvbG9yID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNGbGFnKFwiY29sb3I9MTZtXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj1mdWxsXCIpIHx8IGhhc0ZsYWcoXCJjb2xvcj10cnVlY29sb3JcIikpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgICB9XG4gICAgICBpZiAoaGFzRmxhZyhcImNvbG9yPTI1NlwiKSkge1xuICAgICAgICByZXR1cm4gMjtcbiAgICAgIH1cbiAgICAgIGlmIChzdHJlYW0gJiYgIXN0cmVhbS5pc1RUWSAmJiBmb3JjZUNvbG9yICE9PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluID0gZm9yY2VDb2xvciA/IDEgOiAwO1xuICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIikge1xuICAgICAgICBjb25zdCBvc1JlbGVhc2UgPSBvcy5yZWxlYXNlKCkuc3BsaXQoXCIuXCIpO1xuICAgICAgICBpZiAoTnVtYmVyKHByb2Nlc3MudmVyc2lvbnMubm9kZS5zcGxpdChcIi5cIilbMF0pID49IDggJiYgTnVtYmVyKG9zUmVsZWFzZVswXSkgPj0gMTAgJiYgTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTA1ODYpIHtcbiAgICAgICAgICByZXR1cm4gTnVtYmVyKG9zUmVsZWFzZVsyXSkgPj0gMTQ5MzEgPyAzIDogMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGlmIChcIkNJXCIgaW4gZW52KSB7XG4gICAgICAgIGlmIChbXCJUUkFWSVNcIiwgXCJDSVJDTEVDSVwiLCBcIkFQUFZFWU9SXCIsIFwiR0lUTEFCX0NJXCJdLnNvbWUoKHNpZ24pID0+IHNpZ24gaW4gZW52KSB8fCBlbnYuQ0lfTkFNRSA9PT0gXCJjb2Rlc2hpcFwiKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICAgIH1cbiAgICAgIGlmIChcIlRFQU1DSVRZX1ZFUlNJT05cIiBpbiBlbnYpIHtcbiAgICAgICAgcmV0dXJuIC9eKDlcXC4oMCpbMS05XVxcZCopXFwufFxcZHsyLH1cXC4pLy50ZXN0KGVudi5URUFNQ0lUWV9WRVJTSU9OKSA/IDEgOiAwO1xuICAgICAgfVxuICAgICAgaWYgKGVudi5DT0xPUlRFUk0gPT09IFwidHJ1ZWNvbG9yXCIpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgICB9XG4gICAgICBpZiAoXCJURVJNX1BST0dSQU1cIiBpbiBlbnYpIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHBhcnNlSW50KChlbnYuVEVSTV9QUk9HUkFNX1ZFUlNJT04gfHwgXCJcIikuc3BsaXQoXCIuXCIpWzBdLCAxMCk7XG4gICAgICAgIHN3aXRjaCAoZW52LlRFUk1fUFJPR1JBTSkge1xuICAgICAgICAgIGNhc2UgXCJpVGVybS5hcHBcIjpcbiAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uID49IDMgPyAzIDogMjtcbiAgICAgICAgICBjYXNlIFwiQXBwbGVfVGVybWluYWxcIjpcbiAgICAgICAgICAgIHJldHVybiAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoLy0yNTYoY29sb3IpPyQvaS50ZXN0KGVudi5URVJNKSkge1xuICAgICAgICByZXR1cm4gMjtcbiAgICAgIH1cbiAgICAgIGlmICgvXnNjcmVlbnxeeHRlcm18XnZ0MTAwfF52dDIyMHxecnh2dHxjb2xvcnxhbnNpfGN5Z3dpbnxsaW51eC9pLnRlc3QoZW52LlRFUk0pKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgaWYgKFwiQ09MT1JURVJNXCIgaW4gZW52KSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuICAgICAgaWYgKGVudi5URVJNID09PSBcImR1bWJcIikge1xuICAgICAgICByZXR1cm4gbWluO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1pbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3VwcG9ydExldmVsKHN0cmVhbSkge1xuICAgICAgY29uc3QgbGV2ZWwgPSBzdXBwb3J0c0NvbG9yKHN0cmVhbSk7XG4gICAgICByZXR1cm4gdHJhbnNsYXRlTGV2ZWwobGV2ZWwpO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAgIHN1cHBvcnRzQ29sb3I6IGdldFN1cHBvcnRMZXZlbCxcbiAgICAgIHN0ZG91dDogZ2V0U3VwcG9ydExldmVsKHByb2Nlc3Muc3Rkb3V0KSxcbiAgICAgIHN0ZGVycjogZ2V0U3VwcG9ydExldmVsKHByb2Nlc3Muc3RkZXJyKVxuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL2NoYWxrL3RlbXBsYXRlcy5qc1xudmFyIHJlcXVpcmVfdGVtcGxhdGVzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9jaGFsay90ZW1wbGF0ZXMuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgVEVNUExBVEVfUkVHRVggPSAvKD86XFxcXCh1W2EtZlxcZF17NH18eFthLWZcXGRdezJ9fC4pKXwoPzpcXHsofik/KFxcdysoPzpcXChbXildKlxcKSk/KD86XFwuXFx3Kyg/OlxcKFteKV0qXFwpKT8pKikoPzpbIFxcdF18KD89XFxyP1xcbikpKXwoXFx9KXwoKD86LnxbXFxyXFxuXFxmXSkrPykvZ2k7XG4gICAgdmFyIFNUWUxFX1JFR0VYID0gLyg/Ol58XFwuKShcXHcrKSg/OlxcKChbXildKilcXCkpPy9nO1xuICAgIHZhciBTVFJJTkdfUkVHRVggPSAvXihbJ1wiXSkoKD86XFxcXC58KD8hXFwxKVteXFxcXF0pKilcXDEkLztcbiAgICB2YXIgRVNDQVBFX1JFR0VYID0gL1xcXFwodVthLWZcXGRdezR9fHhbYS1mXFxkXXsyfXwuKXwoW15cXFxcXSkvZ2k7XG4gICAgdmFyIEVTQ0FQRVMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcChbXG4gICAgICBbXCJuXCIsIFwiXFxuXCJdLFxuICAgICAgW1wiclwiLCBcIlxcclwiXSxcbiAgICAgIFtcInRcIiwgXCJcdFwiXSxcbiAgICAgIFtcImJcIiwgXCJcXGJcIl0sXG4gICAgICBbXCJmXCIsIFwiXFxmXCJdLFxuICAgICAgW1widlwiLCBcIlxcdlwiXSxcbiAgICAgIFtcIjBcIiwgXCJcXDBcIl0sXG4gICAgICBbXCJcXFxcXCIsIFwiXFxcXFwiXSxcbiAgICAgIFtcImVcIiwgXCJcXHgxQlwiXSxcbiAgICAgIFtcImFcIiwgXCJcXHgwN1wiXVxuICAgIF0pO1xuICAgIGZ1bmN0aW9uIHVuZXNjYXBlKGMpIHtcbiAgICAgIGlmIChjWzBdID09PSBcInVcIiAmJiBjLmxlbmd0aCA9PT0gNSB8fCBjWzBdID09PSBcInhcIiAmJiBjLmxlbmd0aCA9PT0gMykge1xuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjLnNsaWNlKDEpLCAxNikpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEVTQ0FQRVMuZ2V0KGMpIHx8IGM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlQXJndW1lbnRzKG5hbWUsIGFyZ3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICAgIGNvbnN0IGNodW5rcyA9IGFyZ3MudHJpbSgpLnNwbGl0KC9cXHMqLFxccyovZyk7XG4gICAgICBsZXQgbWF0Y2hlcztcbiAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICAgIGlmICghaXNOYU4oY2h1bmspKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKE51bWJlcihjaHVuaykpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoZXMgPSBjaHVuay5tYXRjaChTVFJJTkdfUkVHRVgpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKG1hdGNoZXNbMl0ucmVwbGFjZShFU0NBUEVfUkVHRVgsIChtLCBlc2NhcGUsIGNocikgPT4gZXNjYXBlID8gdW5lc2NhcGUoZXNjYXBlKSA6IGNocikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBDaGFsayB0ZW1wbGF0ZSBzdHlsZSBhcmd1bWVudDogJHtjaHVua30gKGluIHN0eWxlICcke25hbWV9JylgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlU3R5bGUoc3R5bGUpIHtcbiAgICAgIFNUWUxFX1JFR0VYLmxhc3RJbmRleCA9IDA7XG4gICAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgICBsZXQgbWF0Y2hlcztcbiAgICAgIHdoaWxlICgobWF0Y2hlcyA9IFNUWUxFX1JFR0VYLmV4ZWMoc3R5bGUpKSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBuYW1lID0gbWF0Y2hlc1sxXTtcbiAgICAgICAgaWYgKG1hdGNoZXNbMl0pIHtcbiAgICAgICAgICBjb25zdCBhcmdzID0gcGFyc2VBcmd1bWVudHMobmFtZSwgbWF0Y2hlc1syXSk7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKFtuYW1lXS5jb25jYXQoYXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChbbmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgZnVuY3Rpb24gYnVpbGRTdHlsZShjaGFsaywgc3R5bGVzKSB7XG4gICAgICBjb25zdCBlbmFibGVkID0ge307XG4gICAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHN0eWxlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHN0eWxlIG9mIGxheWVyLnN0eWxlcykge1xuICAgICAgICAgIGVuYWJsZWRbc3R5bGVbMF1dID0gbGF5ZXIuaW52ZXJzZSA/IG51bGwgOiBzdHlsZS5zbGljZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGN1cnJlbnQgPSBjaGFsaztcbiAgICAgIGZvciAoY29uc3Qgc3R5bGVOYW1lIG9mIE9iamVjdC5rZXlzKGVuYWJsZWQpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVuYWJsZWRbc3R5bGVOYW1lXSkpIHtcbiAgICAgICAgICBpZiAoIShzdHlsZU5hbWUgaW4gY3VycmVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBDaGFsayBzdHlsZTogJHtzdHlsZU5hbWV9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbmFibGVkW3N0eWxlTmFtZV0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbc3R5bGVOYW1lXS5hcHBseShjdXJyZW50LCBlbmFibGVkW3N0eWxlTmFtZV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtzdHlsZU5hbWVdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gKGNoYWxrLCB0bXApID0+IHtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IFtdO1xuICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICBsZXQgY2h1bmsgPSBbXTtcbiAgICAgIHRtcC5yZXBsYWNlKFRFTVBMQVRFX1JFR0VYLCAobSwgZXNjYXBlQ2hhciwgaW52ZXJzZSwgc3R5bGUsIGNsb3NlLCBjaHIpID0+IHtcbiAgICAgICAgaWYgKGVzY2FwZUNoYXIpIHtcbiAgICAgICAgICBjaHVuay5wdXNoKHVuZXNjYXBlKGVzY2FwZUNoYXIpKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdHlsZSkge1xuICAgICAgICAgIGNvbnN0IHN0ciA9IGNodW5rLmpvaW4oXCJcIik7XG4gICAgICAgICAgY2h1bmsgPSBbXTtcbiAgICAgICAgICBjaHVua3MucHVzaChzdHlsZXMubGVuZ3RoID09PSAwID8gc3RyIDogYnVpbGRTdHlsZShjaGFsaywgc3R5bGVzKShzdHIpKTtcbiAgICAgICAgICBzdHlsZXMucHVzaCh7IGludmVyc2UsIHN0eWxlczogcGFyc2VTdHlsZShzdHlsZSkgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2xvc2UpIHtcbiAgICAgICAgICBpZiAoc3R5bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRm91bmQgZXh0cmFuZW91cyB9IGluIENoYWxrIHRlbXBsYXRlIGxpdGVyYWxcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNodW5rcy5wdXNoKGJ1aWxkU3R5bGUoY2hhbGssIHN0eWxlcykoY2h1bmsuam9pbihcIlwiKSkpO1xuICAgICAgICAgIGNodW5rID0gW107XG4gICAgICAgICAgc3R5bGVzLnBvcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNodW5rLnB1c2goY2hyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjaHVua3MucHVzaChjaHVuay5qb2luKFwiXCIpKTtcbiAgICAgIGlmIChzdHlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBlcnJNc2cgPSBgQ2hhbGsgdGVtcGxhdGUgbGl0ZXJhbCBpcyBtaXNzaW5nICR7c3R5bGVzLmxlbmd0aH0gY2xvc2luZyBicmFja2V0JHtzdHlsZXMubGVuZ3RoID09PSAxID8gXCJcIiA6IFwic1wifSAoXFxgfVxcYClgO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTXNnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjaHVua3Muam9pbihcIlwiKTtcbiAgICB9O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9jb2RlLWZyYW1lL25vZGVfbW9kdWxlcy9jaGFsay9pbmRleC5qc1xudmFyIHJlcXVpcmVfY2hhbGsgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbm9kZV9tb2R1bGVzL2NoYWxrL2luZGV4LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGVzY2FwZVN0cmluZ1JlZ2V4cCA9IHJlcXVpcmVfZXNjYXBlX3N0cmluZ19yZWdleHAoKTtcbiAgICB2YXIgYW5zaVN0eWxlcyA9IHJlcXVpcmVfYW5zaV9zdHlsZXMoKTtcbiAgICB2YXIgc3Rkb3V0Q29sb3IgPSByZXF1aXJlX3N1cHBvcnRzX2NvbG9yKCkuc3Rkb3V0O1xuICAgIHZhciB0ZW1wbGF0ZSA9IHJlcXVpcmVfdGVtcGxhdGVzKCk7XG4gICAgdmFyIGlzU2ltcGxlV2luZG93c1Rlcm0gPSBwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgJiYgIShwcm9jZXNzLmVudi5URVJNIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcInh0ZXJtXCIpO1xuICAgIHZhciBsZXZlbE1hcHBpbmcgPSBbXCJhbnNpXCIsIFwiYW5zaVwiLCBcImFuc2kyNTZcIiwgXCJhbnNpMTZtXCJdO1xuICAgIHZhciBza2lwTW9kZWxzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoW1wiZ3JheVwiXSk7XG4gICAgdmFyIHN0eWxlcyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGZ1bmN0aW9uIGFwcGx5T3B0aW9ucyhvYmosIG9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgY29uc3Qgc2NMZXZlbCA9IHN0ZG91dENvbG9yID8gc3Rkb3V0Q29sb3IubGV2ZWwgOiAwO1xuICAgICAgb2JqLmxldmVsID0gb3B0aW9ucy5sZXZlbCA9PT0gdm9pZCAwID8gc2NMZXZlbCA6IG9wdGlvbnMubGV2ZWw7XG4gICAgICBvYmouZW5hYmxlZCA9IFwiZW5hYmxlZFwiIGluIG9wdGlvbnMgPyBvcHRpb25zLmVuYWJsZWQgOiBvYmoubGV2ZWwgPiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDaGFsayhvcHRpb25zKSB7XG4gICAgICBpZiAoIXRoaXMgfHwgISh0aGlzIGluc3RhbmNlb2YgQ2hhbGspIHx8IHRoaXMudGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3QgY2hhbGsgPSB7fTtcbiAgICAgICAgYXBwbHlPcHRpb25zKGNoYWxrLCBvcHRpb25zKTtcbiAgICAgICAgY2hhbGsudGVtcGxhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICBjb25zdCBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgIHJldHVybiBjaGFsa1RhZy5hcHBseShudWxsLCBbY2hhbGsudGVtcGxhdGVdLmNvbmNhdChhcmdzKSk7XG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihjaGFsaywgQ2hhbGsucHJvdG90eXBlKTtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGNoYWxrLnRlbXBsYXRlLCBjaGFsayk7XG4gICAgICAgIGNoYWxrLnRlbXBsYXRlLmNvbnN0cnVjdG9yID0gQ2hhbGs7XG4gICAgICAgIHJldHVybiBjaGFsay50ZW1wbGF0ZTtcbiAgICAgIH1cbiAgICAgIGFwcGx5T3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKGlzU2ltcGxlV2luZG93c1Rlcm0pIHtcbiAgICAgIGFuc2lTdHlsZXMuYmx1ZS5vcGVuID0gXCJcXHgxQls5NG1cIjtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYW5zaVN0eWxlcykpIHtcbiAgICAgIGFuc2lTdHlsZXNba2V5XS5jbG9zZVJlID0gbmV3IFJlZ0V4cChlc2NhcGVTdHJpbmdSZWdleHAoYW5zaVN0eWxlc1trZXldLmNsb3NlKSwgXCJnXCIpO1xuICAgICAgc3R5bGVzW2tleV0gPSB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBjb25zdCBjb2RlcyA9IGFuc2lTdHlsZXNba2V5XTtcbiAgICAgICAgICByZXR1cm4gYnVpbGQuY2FsbCh0aGlzLCB0aGlzLl9zdHlsZXMgPyB0aGlzLl9zdHlsZXMuY29uY2F0KGNvZGVzKSA6IFtjb2Rlc10sIHRoaXMuX2VtcHR5LCBrZXkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBzdHlsZXMudmlzaWJsZSA9IHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkLmNhbGwodGhpcywgdGhpcy5fc3R5bGVzIHx8IFtdLCB0cnVlLCBcInZpc2libGVcIik7XG4gICAgICB9XG4gICAgfTtcbiAgICBhbnNpU3R5bGVzLmNvbG9yLmNsb3NlUmUgPSBuZXcgUmVnRXhwKGVzY2FwZVN0cmluZ1JlZ2V4cChhbnNpU3R5bGVzLmNvbG9yLmNsb3NlKSwgXCJnXCIpO1xuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgT2JqZWN0LmtleXMoYW5zaVN0eWxlcy5jb2xvci5hbnNpKSkge1xuICAgICAgaWYgKHNraXBNb2RlbHMuaGFzKG1vZGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHN0eWxlc1ttb2RlbF0gPSB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IHRoaXMubGV2ZWw7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3Qgb3BlbiA9IGFuc2lTdHlsZXMuY29sb3JbbGV2ZWxNYXBwaW5nW2xldmVsXV1bbW9kZWxdLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBjb2RlcyA9IHtcbiAgICAgICAgICAgICAgb3BlbixcbiAgICAgICAgICAgICAgY2xvc2U6IGFuc2lTdHlsZXMuY29sb3IuY2xvc2UsXG4gICAgICAgICAgICAgIGNsb3NlUmU6IGFuc2lTdHlsZXMuY29sb3IuY2xvc2VSZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBidWlsZC5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlcyA/IHRoaXMuX3N0eWxlcy5jb25jYXQoY29kZXMpIDogW2NvZGVzXSwgdGhpcy5fZW1wdHksIG1vZGVsKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBhbnNpU3R5bGVzLmJnQ29sb3IuY2xvc2VSZSA9IG5ldyBSZWdFeHAoZXNjYXBlU3RyaW5nUmVnZXhwKGFuc2lTdHlsZXMuYmdDb2xvci5jbG9zZSksIFwiZ1wiKTtcbiAgICBmb3IgKGNvbnN0IG1vZGVsIG9mIE9iamVjdC5rZXlzKGFuc2lTdHlsZXMuYmdDb2xvci5hbnNpKSkge1xuICAgICAgaWYgKHNraXBNb2RlbHMuaGFzKG1vZGVsKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJnTW9kZWwgPSBcImJnXCIgKyBtb2RlbFswXS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gICAgICBzdHlsZXNbYmdNb2RlbF0gPSB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IHRoaXMubGV2ZWw7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3Qgb3BlbiA9IGFuc2lTdHlsZXMuYmdDb2xvcltsZXZlbE1hcHBpbmdbbGV2ZWxdXVttb2RlbF0uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVzID0ge1xuICAgICAgICAgICAgICBvcGVuLFxuICAgICAgICAgICAgICBjbG9zZTogYW5zaVN0eWxlcy5iZ0NvbG9yLmNsb3NlLFxuICAgICAgICAgICAgICBjbG9zZVJlOiBhbnNpU3R5bGVzLmJnQ29sb3IuY2xvc2VSZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBidWlsZC5jYWxsKHRoaXMsIHRoaXMuX3N0eWxlcyA/IHRoaXMuX3N0eWxlcy5jb25jYXQoY29kZXMpIDogW2NvZGVzXSwgdGhpcy5fZW1wdHksIG1vZGVsKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgcHJvdG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcygoKSA9PiB7XG4gICAgfSwgc3R5bGVzKTtcbiAgICBmdW5jdGlvbiBidWlsZChfc3R5bGVzLCBfZW1wdHksIGtleSkge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXBwbHlTdHlsZS5hcHBseShidWlsZGVyLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIGJ1aWxkZXIuX3N0eWxlcyA9IF9zdHlsZXM7XG4gICAgICBidWlsZGVyLl9lbXB0eSA9IF9lbXB0eTtcbiAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJ1aWxkZXIsIFwibGV2ZWxcIiwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYubGV2ZWw7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChsZXZlbCkge1xuICAgICAgICAgIHNlbGYubGV2ZWwgPSBsZXZlbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYnVpbGRlciwgXCJlbmFibGVkXCIsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0KCkge1xuICAgICAgICAgIHJldHVybiBzZWxmLmVuYWJsZWQ7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChlbmFibGVkKSB7XG4gICAgICAgICAgc2VsZi5lbmFibGVkID0gZW5hYmxlZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBidWlsZGVyLmhhc0dyZXkgPSB0aGlzLmhhc0dyZXkgfHwga2V5ID09PSBcImdyYXlcIiB8fCBrZXkgPT09IFwiZ3JleVwiO1xuICAgICAgYnVpbGRlci5fX3Byb3RvX18gPSBwcm90bztcbiAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcHBseVN0eWxlKCkge1xuICAgICAgY29uc3QgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIGNvbnN0IGFyZ3NMZW4gPSBhcmdzLmxlbmd0aDtcbiAgICAgIGxldCBzdHIgPSBTdHJpbmcoYXJndW1lbnRzWzBdKTtcbiAgICAgIGlmIChhcmdzTGVuID09PSAwKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgaWYgKGFyZ3NMZW4gPiAxKSB7XG4gICAgICAgIGZvciAobGV0IGEgPSAxOyBhIDwgYXJnc0xlbjsgYSsrKSB7XG4gICAgICAgICAgc3RyICs9IFwiIFwiICsgYXJnc1thXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmVuYWJsZWQgfHwgdGhpcy5sZXZlbCA8PSAwIHx8ICFzdHIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VtcHR5ID8gXCJcIiA6IHN0cjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yaWdpbmFsRGltID0gYW5zaVN0eWxlcy5kaW0ub3BlbjtcbiAgICAgIGlmIChpc1NpbXBsZVdpbmRvd3NUZXJtICYmIHRoaXMuaGFzR3JleSkge1xuICAgICAgICBhbnNpU3R5bGVzLmRpbS5vcGVuID0gXCJcIjtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgY29kZSBvZiB0aGlzLl9zdHlsZXMuc2xpY2UoKS5yZXZlcnNlKCkpIHtcbiAgICAgICAgc3RyID0gY29kZS5vcGVuICsgc3RyLnJlcGxhY2UoY29kZS5jbG9zZVJlLCBjb2RlLm9wZW4pICsgY29kZS5jbG9zZTtcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccj9cXG4vZywgYCR7Y29kZS5jbG9zZX0kJiR7Y29kZS5vcGVufWApO1xuICAgICAgfVxuICAgICAgYW5zaVN0eWxlcy5kaW0ub3BlbiA9IG9yaWdpbmFsRGltO1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hhbGtUYWcoY2hhbGssIHN0cmluZ3MpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzdHJpbmdzKSkge1xuICAgICAgICByZXR1cm4gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLmpvaW4oXCIgXCIpO1xuICAgICAgfVxuICAgICAgY29uc3QgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTtcbiAgICAgIGNvbnN0IHBhcnRzID0gW3N0cmluZ3MucmF3WzBdXTtcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc3RyaW5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICBwYXJ0cy5wdXNoKFN0cmluZyhhcmdzW2kgLSAxXSkucmVwbGFjZSgvW3t9XFxcXF0vZywgXCJcXFxcJCZcIikpO1xuICAgICAgICBwYXJ0cy5wdXNoKFN0cmluZyhzdHJpbmdzLnJhd1tpXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRlbXBsYXRlKGNoYWxrLCBwYXJ0cy5qb2luKFwiXCIpKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2hhbGsucHJvdG90eXBlLCBzdHlsZXMpO1xuICAgIG1vZHVsZS5leHBvcnRzID0gQ2hhbGsoKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5zdXBwb3J0c0NvbG9yID0gc3Rkb3V0Q29sb3I7XG4gICAgbW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IG1vZHVsZS5leHBvcnRzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL0BiYWJlbC9oaWdobGlnaHQvbGliL2luZGV4LmpzXG52YXIgcmVxdWlyZV9saWIyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL0BiYWJlbC9oaWdobGlnaHQvbGliL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzLmRlZmF1bHQgPSBoaWdobGlnaHQ7XG4gICAgZXhwb3J0cy5zaG91bGRIaWdobGlnaHQgPSBzaG91bGRIaWdobGlnaHQ7XG4gICAgdmFyIF9qc1Rva2VucyA9IHJlcXVpcmVfanNfdG9rZW5zKCk7XG4gICAgdmFyIF9oZWxwZXJWYWxpZGF0b3JJZGVudGlmaWVyID0gcmVxdWlyZV9saWIoKTtcbiAgICB2YXIgX2NoYWxrMiA9IHJlcXVpcmVfY2hhbGsoKTtcbiAgICB2YXIgY2hhbGsgPSBfY2hhbGsyO1xuICAgIHZhciBzb21ldGltZXNLZXl3b3JkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcImFzXCIsIFwiYXN5bmNcIiwgXCJmcm9tXCIsIFwiZ2V0XCIsIFwib2ZcIiwgXCJzZXRcIl0pO1xuICAgIGZ1bmN0aW9uIGdldERlZnMoY2hhbGsyKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXl3b3JkOiBjaGFsazIuY3lhbixcbiAgICAgICAgY2FwaXRhbGl6ZWQ6IGNoYWxrMi55ZWxsb3csXG4gICAgICAgIGpzeElkZW50aWZpZXI6IGNoYWxrMi55ZWxsb3csXG4gICAgICAgIHB1bmN0dWF0b3I6IGNoYWxrMi55ZWxsb3csXG4gICAgICAgIG51bWJlcjogY2hhbGsyLm1hZ2VudGEsXG4gICAgICAgIHN0cmluZzogY2hhbGsyLmdyZWVuLFxuICAgICAgICByZWdleDogY2hhbGsyLm1hZ2VudGEsXG4gICAgICAgIGNvbW1lbnQ6IGNoYWxrMi5ncmV5LFxuICAgICAgICBpbnZhbGlkOiBjaGFsazIud2hpdGUuYmdSZWQuYm9sZFxuICAgICAgfTtcbiAgICB9XG4gICAgdmFyIE5FV0xJTkUgPSAvXFxyXFxufFtcXG5cXHJcXHUyMDI4XFx1MjAyOV0vO1xuICAgIHZhciBCUkFDS0VUID0gL15bKClbXFxde31dJC87XG4gICAgdmFyIHRva2VuaXplO1xuICAgIHtcbiAgICAgIGNvbnN0IEpTWF9UQUcgPSAvXlthLXpdW1xcdy1dKiQvaTtcbiAgICAgIGNvbnN0IGdldFRva2VuVHlwZSA9IGZ1bmN0aW9uKHRva2VuLCBvZmZzZXQsIHRleHQpIHtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFwibmFtZVwiKSB7XG4gICAgICAgICAgaWYgKCgwLCBfaGVscGVyVmFsaWRhdG9ySWRlbnRpZmllci5pc0tleXdvcmQpKHRva2VuLnZhbHVlKSB8fCAoMCwgX2hlbHBlclZhbGlkYXRvcklkZW50aWZpZXIuaXNTdHJpY3RSZXNlcnZlZFdvcmQpKHRva2VuLnZhbHVlLCB0cnVlKSB8fCBzb21ldGltZXNLZXl3b3Jkcy5oYXModG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJrZXl3b3JkXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChKU1hfVEFHLnRlc3QodG9rZW4udmFsdWUpICYmICh0ZXh0W29mZnNldCAtIDFdID09PSBcIjxcIiB8fCB0ZXh0LnNsaWNlKG9mZnNldCAtIDIsIG9mZnNldCkgPT0gXCI8L1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwianN4SWRlbnRpZmllclwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodG9rZW4udmFsdWVbMF0gIT09IHRva2VuLnZhbHVlWzBdLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBcImNhcGl0YWxpemVkXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcInB1bmN0dWF0b3JcIiAmJiBCUkFDS0VULnRlc3QodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIFwiYnJhY2tldFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBcImludmFsaWRcIiAmJiAodG9rZW4udmFsdWUgPT09IFwiQFwiIHx8IHRva2VuLnZhbHVlID09PSBcIiNcIikpIHtcbiAgICAgICAgICByZXR1cm4gXCJwdW5jdHVhdG9yXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VuLnR5cGU7XG4gICAgICB9O1xuICAgICAgdG9rZW5pemUgPSBmdW5jdGlvbiogKHRleHQpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAobWF0Y2ggPSBfanNUb2tlbnMuZGVmYXVsdC5leGVjKHRleHQpKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBfanNUb2tlbnMubWF0Y2hUb1Rva2VuKG1hdGNoKTtcbiAgICAgICAgICB5aWVsZCB7XG4gICAgICAgICAgICB0eXBlOiBnZXRUb2tlblR5cGUodG9rZW4sIG1hdGNoLmluZGV4LCB0ZXh0KSxcbiAgICAgICAgICAgIHZhbHVlOiB0b2tlbi52YWx1ZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhpZ2hsaWdodFRva2VucyhkZWZzLCB0ZXh0KSB7XG4gICAgICBsZXQgaGlnaGxpZ2h0ZWQgPSBcIlwiO1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHZhbHVlXG4gICAgICB9IG9mIHRva2VuaXplKHRleHQpKSB7XG4gICAgICAgIGNvbnN0IGNvbG9yaXplID0gZGVmc1t0eXBlXTtcbiAgICAgICAgaWYgKGNvbG9yaXplKSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWQgKz0gdmFsdWUuc3BsaXQoTkVXTElORSkubWFwKChzdHIpID0+IGNvbG9yaXplKHN0cikpLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlnaGxpZ2h0ZWQgKz0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBoaWdobGlnaHRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2hvdWxkSGlnaGxpZ2h0KG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiAhIWNoYWxrLnN1cHBvcnRzQ29sb3IgfHwgb3B0aW9ucy5mb3JjZUNvbG9yO1xuICAgIH1cbiAgICB2YXIgY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSB2b2lkIDA7XG4gICAgZnVuY3Rpb24gZ2V0Q2hhbGsoZm9yY2VDb2xvcikge1xuICAgICAgaWYgKGZvcmNlQ29sb3IpIHtcbiAgICAgICAgdmFyIF9jaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgICAgKF9jaGFsa1dpdGhGb3JjZWRDb2xvciA9IGNoYWxrV2l0aEZvcmNlZENvbG9yKSAhPSBudWxsID8gX2NoYWxrV2l0aEZvcmNlZENvbG9yIDogY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSBuZXcgY2hhbGsuY29uc3RydWN0b3Ioe1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgbGV2ZWw6IDFcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGFsaztcbiAgICB9XG4gICAge1xuICAgICAge1xuICAgICAgICBleHBvcnRzLmdldENoYWxrID0gKG9wdGlvbnMpID0+IGdldENoYWxrKG9wdGlvbnMuZm9yY2VDb2xvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhpZ2hsaWdodChjb2RlLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGlmIChjb2RlICE9PSBcIlwiICYmIHNob3VsZEhpZ2hsaWdodChvcHRpb25zKSkge1xuICAgICAgICBjb25zdCBkZWZzID0gZ2V0RGVmcyhnZXRDaGFsayhvcHRpb25zLmZvcmNlQ29sb3IpKTtcbiAgICAgICAgcmV0dXJuIGhpZ2hsaWdodFRva2VucyhkZWZzLCBjb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjb2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9AYmFiZWwvY29kZS1mcmFtZS9saWIvaW5kZXguanNcbnZhciByZXF1aXJlX2xpYjMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvQGJhYmVsL2NvZGUtZnJhbWUvbGliL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzLmNvZGVGcmFtZUNvbHVtbnMgPSBjb2RlRnJhbWVDb2x1bW5zO1xuICAgIGV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuICAgIHZhciBfaGlnaGxpZ2h0ID0gcmVxdWlyZV9saWIyKCk7XG4gICAgdmFyIF9jaGFsazIgPSByZXF1aXJlX2NoYWxrKCk7XG4gICAgdmFyIGNoYWxrID0gX2NoYWxrMjtcbiAgICB2YXIgY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSB2b2lkIDA7XG4gICAgZnVuY3Rpb24gZ2V0Q2hhbGsoZm9yY2VDb2xvcikge1xuICAgICAgaWYgKGZvcmNlQ29sb3IpIHtcbiAgICAgICAgdmFyIF9jaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgICAgKF9jaGFsa1dpdGhGb3JjZWRDb2xvciA9IGNoYWxrV2l0aEZvcmNlZENvbG9yKSAhPSBudWxsID8gX2NoYWxrV2l0aEZvcmNlZENvbG9yIDogY2hhbGtXaXRoRm9yY2VkQ29sb3IgPSBuZXcgY2hhbGsuY29uc3RydWN0b3Ioe1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgbGV2ZWw6IDFcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGFsa1dpdGhGb3JjZWRDb2xvcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGFsaztcbiAgICB9XG4gICAgdmFyIGRlcHJlY2F0aW9uV2FybmluZ1Nob3duID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gZ2V0RGVmcyhjaGFsazIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGd1dHRlcjogY2hhbGsyLmdyZXksXG4gICAgICAgIG1hcmtlcjogY2hhbGsyLnJlZC5ib2xkLFxuICAgICAgICBtZXNzYWdlOiBjaGFsazIucmVkLmJvbGRcbiAgICAgIH07XG4gICAgfVxuICAgIHZhciBORVdMSU5FID0gL1xcclxcbnxbXFxuXFxyXFx1MjAyOFxcdTIwMjldLztcbiAgICBmdW5jdGlvbiBnZXRNYXJrZXJMaW5lcyhsb2MsIHNvdXJjZSwgb3B0cykge1xuICAgICAgY29uc3Qgc3RhcnRMb2MgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgY29sdW1uOiAwLFxuICAgICAgICBsaW5lOiAtMVxuICAgICAgfSwgbG9jLnN0YXJ0KTtcbiAgICAgIGNvbnN0IGVuZExvYyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXJ0TG9jLCBsb2MuZW5kKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbGluZXNBYm92ZSA9IDIsXG4gICAgICAgIGxpbmVzQmVsb3cgPSAzXG4gICAgICB9ID0gb3B0cyB8fCB7fTtcbiAgICAgIGNvbnN0IHN0YXJ0TGluZSA9IHN0YXJ0TG9jLmxpbmU7XG4gICAgICBjb25zdCBzdGFydENvbHVtbiA9IHN0YXJ0TG9jLmNvbHVtbjtcbiAgICAgIGNvbnN0IGVuZExpbmUgPSBlbmRMb2MubGluZTtcbiAgICAgIGNvbnN0IGVuZENvbHVtbiA9IGVuZExvYy5jb2x1bW47XG4gICAgICBsZXQgc3RhcnQgPSBNYXRoLm1heChzdGFydExpbmUgLSAobGluZXNBYm92ZSArIDEpLCAwKTtcbiAgICAgIGxldCBlbmQgPSBNYXRoLm1pbihzb3VyY2UubGVuZ3RoLCBlbmRMaW5lICsgbGluZXNCZWxvdyk7XG4gICAgICBpZiAoc3RhcnRMaW5lID09PSAtMSkge1xuICAgICAgICBzdGFydCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAoZW5kTGluZSA9PT0gLTEpIHtcbiAgICAgICAgZW5kID0gc291cmNlLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbmVEaWZmID0gZW5kTGluZSAtIHN0YXJ0TGluZTtcbiAgICAgIGNvbnN0IG1hcmtlckxpbmVzID0ge307XG4gICAgICBpZiAobGluZURpZmYpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gbGluZURpZmY7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGxpbmVOdW1iZXIgPSBpICsgc3RhcnRMaW5lO1xuICAgICAgICAgIGlmICghc3RhcnRDb2x1bW4pIHtcbiAgICAgICAgICAgIG1hcmtlckxpbmVzW2xpbmVOdW1iZXJdID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxlbmd0aCA9IHNvdXJjZVtsaW5lTnVtYmVyIC0gMV0ubGVuZ3RoO1xuICAgICAgICAgICAgbWFya2VyTGluZXNbbGluZU51bWJlcl0gPSBbc3RhcnRDb2x1bW4sIHNvdXJjZUxlbmd0aCAtIHN0YXJ0Q29sdW1uICsgMV07XG4gICAgICAgICAgfSBlbHNlIGlmIChpID09PSBsaW5lRGlmZikge1xuICAgICAgICAgICAgbWFya2VyTGluZXNbbGluZU51bWJlcl0gPSBbMCwgZW5kQ29sdW1uXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlTGVuZ3RoID0gc291cmNlW2xpbmVOdW1iZXIgLSBpXS5sZW5ndGg7XG4gICAgICAgICAgICBtYXJrZXJMaW5lc1tsaW5lTnVtYmVyXSA9IFswLCBzb3VyY2VMZW5ndGhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0YXJ0Q29sdW1uID09PSBlbmRDb2x1bW4pIHtcbiAgICAgICAgICBpZiAoc3RhcnRDb2x1bW4pIHtcbiAgICAgICAgICAgIG1hcmtlckxpbmVzW3N0YXJ0TGluZV0gPSBbc3RhcnRDb2x1bW4sIDBdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXJrZXJMaW5lc1tzdGFydExpbmVdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWFya2VyTGluZXNbc3RhcnRMaW5lXSA9IFtzdGFydENvbHVtbiwgZW5kQ29sdW1uIC0gc3RhcnRDb2x1bW5dO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydCxcbiAgICAgICAgZW5kLFxuICAgICAgICBtYXJrZXJMaW5lc1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29kZUZyYW1lQ29sdW1ucyhyYXdMaW5lcywgbG9jLCBvcHRzID0ge30pIHtcbiAgICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gKG9wdHMuaGlnaGxpZ2h0Q29kZSB8fCBvcHRzLmZvcmNlQ29sb3IpICYmICgwLCBfaGlnaGxpZ2h0LnNob3VsZEhpZ2hsaWdodCkob3B0cyk7XG4gICAgICBjb25zdCBjaGFsazIgPSBnZXRDaGFsayhvcHRzLmZvcmNlQ29sb3IpO1xuICAgICAgY29uc3QgZGVmcyA9IGdldERlZnMoY2hhbGsyKTtcbiAgICAgIGNvbnN0IG1heWJlSGlnaGxpZ2h0ID0gKGNoYWxrRm4sIHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gaGlnaGxpZ2h0ZWQgPyBjaGFsa0ZuKHN0cmluZykgOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGluZXMgPSByYXdMaW5lcy5zcGxpdChORVdMSU5FKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZCxcbiAgICAgICAgbWFya2VyTGluZXNcbiAgICAgIH0gPSBnZXRNYXJrZXJMaW5lcyhsb2MsIGxpbmVzLCBvcHRzKTtcbiAgICAgIGNvbnN0IGhhc0NvbHVtbnMgPSBsb2Muc3RhcnQgJiYgdHlwZW9mIGxvYy5zdGFydC5jb2x1bW4gPT09IFwibnVtYmVyXCI7XG4gICAgICBjb25zdCBudW1iZXJNYXhXaWR0aCA9IFN0cmluZyhlbmQpLmxlbmd0aDtcbiAgICAgIGNvbnN0IGhpZ2hsaWdodGVkTGluZXMgPSBoaWdobGlnaHRlZCA/ICgwLCBfaGlnaGxpZ2h0LmRlZmF1bHQpKHJhd0xpbmVzLCBvcHRzKSA6IHJhd0xpbmVzO1xuICAgICAgbGV0IGZyYW1lID0gaGlnaGxpZ2h0ZWRMaW5lcy5zcGxpdChORVdMSU5FLCBlbmQpLnNsaWNlKHN0YXJ0LCBlbmQpLm1hcCgobGluZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gc3RhcnQgKyAxICsgaW5kZXg7XG4gICAgICAgIGNvbnN0IHBhZGRlZE51bWJlciA9IGAgJHtudW1iZXJ9YC5zbGljZSgtbnVtYmVyTWF4V2lkdGgpO1xuICAgICAgICBjb25zdCBndXR0ZXIgPSBgICR7cGFkZGVkTnVtYmVyfSB8YDtcbiAgICAgICAgY29uc3QgaGFzTWFya2VyID0gbWFya2VyTGluZXNbbnVtYmVyXTtcbiAgICAgICAgY29uc3QgbGFzdE1hcmtlckxpbmUgPSAhbWFya2VyTGluZXNbbnVtYmVyICsgMV07XG4gICAgICAgIGlmIChoYXNNYXJrZXIpIHtcbiAgICAgICAgICBsZXQgbWFya2VyTGluZSA9IFwiXCI7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaGFzTWFya2VyKSkge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyU3BhY2luZyA9IGxpbmUuc2xpY2UoMCwgTWF0aC5tYXgoaGFzTWFya2VyWzBdIC0gMSwgMCkpLnJlcGxhY2UoL1teXFx0XS9nLCBcIiBcIik7XG4gICAgICAgICAgICBjb25zdCBudW1iZXJPZk1hcmtlcnMgPSBoYXNNYXJrZXJbMV0gfHwgMTtcbiAgICAgICAgICAgIG1hcmtlckxpbmUgPSBbXCJcXG4gXCIsIG1heWJlSGlnaGxpZ2h0KGRlZnMuZ3V0dGVyLCBndXR0ZXIucmVwbGFjZSgvXFxkL2csIFwiIFwiKSksIFwiIFwiLCBtYXJrZXJTcGFjaW5nLCBtYXliZUhpZ2hsaWdodChkZWZzLm1hcmtlciwgXCJeXCIpLnJlcGVhdChudW1iZXJPZk1hcmtlcnMpXS5qb2luKFwiXCIpO1xuICAgICAgICAgICAgaWYgKGxhc3RNYXJrZXJMaW5lICYmIG9wdHMubWVzc2FnZSkge1xuICAgICAgICAgICAgICBtYXJrZXJMaW5lICs9IFwiIFwiICsgbWF5YmVIaWdobGlnaHQoZGVmcy5tZXNzYWdlLCBvcHRzLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gW21heWJlSGlnaGxpZ2h0KGRlZnMubWFya2VyLCBcIj5cIiksIG1heWJlSGlnaGxpZ2h0KGRlZnMuZ3V0dGVyLCBndXR0ZXIpLCBsaW5lLmxlbmd0aCA+IDAgPyBgICR7bGluZX1gIDogXCJcIiwgbWFya2VyTGluZV0uam9pbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYCAke21heWJlSGlnaGxpZ2h0KGRlZnMuZ3V0dGVyLCBndXR0ZXIpfSR7bGluZS5sZW5ndGggPiAwID8gYCAke2xpbmV9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgfSkuam9pbihcIlxcblwiKTtcbiAgICAgIGlmIChvcHRzLm1lc3NhZ2UgJiYgIWhhc0NvbHVtbnMpIHtcbiAgICAgICAgZnJhbWUgPSBgJHtcIiBcIi5yZXBlYXQobnVtYmVyTWF4V2lkdGggKyAxKX0ke29wdHMubWVzc2FnZX1cbiR7ZnJhbWV9YDtcbiAgICAgIH1cbiAgICAgIGlmIChoaWdobGlnaHRlZCkge1xuICAgICAgICByZXR1cm4gY2hhbGsyLnJlc2V0KGZyYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmcmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gX2RlZmF1bHQocmF3TGluZXMsIGxpbmVOdW1iZXIsIGNvbE51bWJlciwgb3B0cyA9IHt9KSB7XG4gICAgICBpZiAoIWRlcHJlY2F0aW9uV2FybmluZ1Nob3duKSB7XG4gICAgICAgIGRlcHJlY2F0aW9uV2FybmluZ1Nob3duID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IFwiUGFzc2luZyBsaW5lTnVtYmVyIGFuZCBjb2xOdW1iZXIgaXMgZGVwcmVjYXRlZCB0byBAYmFiZWwvY29kZS1mcmFtZS4gUGxlYXNlIHVzZSBgY29kZUZyYW1lQ29sdW1uc2AuXCI7XG4gICAgICAgIGlmIChwcm9jZXNzLmVtaXRXYXJuaW5nKSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhtZXNzYWdlLCBcIkRlcHJlY2F0aW9uV2FybmluZ1wiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkZXByZWNhdGlvbkVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgIGRlcHJlY2F0aW9uRXJyb3IubmFtZSA9IFwiRGVwcmVjYXRpb25XYXJuaW5nXCI7XG4gICAgICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbE51bWJlciA9IE1hdGgubWF4KGNvbE51bWJlciwgMCk7XG4gICAgICBjb25zdCBsb2NhdGlvbiA9IHtcbiAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICBjb2x1bW46IGNvbE51bWJlcixcbiAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gY29kZUZyYW1lQ29sdW1ucyhyYXdMaW5lcywgbG9jYXRpb24sIG9wdHMpO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9wYXJzZS1qc29uL2luZGV4LmpzXG52YXIgcmVxdWlyZV9wYXJzZV9qc29uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL3BhcnNlLWpzb24vaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgZXJyb3JFeCA9IHJlcXVpcmVfZXJyb3JfZXgoKTtcbiAgICB2YXIgZmFsbGJhY2sgPSByZXF1aXJlX2pzb25fcGFyc2VfZXZlbl9iZXR0ZXJfZXJyb3JzKCk7XG4gICAgdmFyIHsgZGVmYXVsdDogTGluZXNBbmRDb2x1bW5zIH0gPSByZXF1aXJlX2J1aWxkKCk7XG4gICAgdmFyIHsgY29kZUZyYW1lQ29sdW1ucyB9ID0gcmVxdWlyZV9saWIzKCk7XG4gICAgdmFyIEpTT05FcnJvciA9IGVycm9yRXgoXCJKU09ORXJyb3JcIiwge1xuICAgICAgZmlsZU5hbWU6IGVycm9yRXguYXBwZW5kKFwiaW4gJXNcIiksXG4gICAgICBjb2RlRnJhbWU6IGVycm9yRXguYXBwZW5kKFwiXFxuXFxuJXNcXG5cIilcbiAgICB9KTtcbiAgICB2YXIgcGFyc2VKc29uID0gKHN0cmluZywgcmV2aXZlciwgZmlsZW5hbWUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcmV2aXZlciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBmaWxlbmFtZSA9IHJldml2ZXI7XG4gICAgICAgIHJldml2ZXIgPSBudWxsO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdHJpbmcsIHJldml2ZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGZhbGxiYWNrKHN0cmluZywgcmV2aXZlcik7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICAgICAgY29uc3QgaW5kZXhNYXRjaCA9IGVycm9yLm1lc3NhZ2UubWF0Y2goL2luIEpTT04gYXQgcG9zaXRpb24gKFxcZCspIHdoaWxlIHBhcnNpbmcvKTtcbiAgICAgICAgY29uc3QganNvbkVycm9yID0gbmV3IEpTT05FcnJvcihlcnJvcik7XG4gICAgICAgIGlmIChmaWxlbmFtZSkge1xuICAgICAgICAgIGpzb25FcnJvci5maWxlTmFtZSA9IGZpbGVuYW1lO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleE1hdGNoICYmIGluZGV4TWF0Y2gubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGxpbmVzID0gbmV3IExpbmVzQW5kQ29sdW1ucyhzdHJpbmcpO1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGluZGV4TWF0Y2hbMV0pO1xuICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gbGluZXMubG9jYXRpb25Gb3JJbmRleChpbmRleCk7XG4gICAgICAgICAgY29uc3QgY29kZUZyYW1lID0gY29kZUZyYW1lQ29sdW1ucyhcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIHsgc3RhcnQ6IHsgbGluZTogbG9jYXRpb24ubGluZSArIDEsIGNvbHVtbjogbG9jYXRpb24uY29sdW1uICsgMSB9IH0sXG4gICAgICAgICAgICB7IGhpZ2hsaWdodENvZGU6IHRydWUgfVxuICAgICAgICAgICk7XG4gICAgICAgICAganNvbkVycm9yLmNvZGVGcmFtZSA9IGNvZGVGcmFtZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBqc29uRXJyb3I7XG4gICAgICB9XG4gICAgfTtcbiAgICBwYXJzZUpzb24uSlNPTkVycm9yID0gSlNPTkVycm9yO1xuICAgIG1vZHVsZS5leHBvcnRzID0gcGFyc2VKc29uO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2NvbW1vbi5qc1xudmFyIHJlcXVpcmVfY29tbW9uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2NvbW1vbi5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIGZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgc3ViamVjdCA9PT0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBzdWJqZWN0ID09PSBcIm9iamVjdFwiICYmIHN1YmplY3QgIT09IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSlcbiAgICAgICAgcmV0dXJuIHNlcXVlbmNlO1xuICAgICAgZWxzZSBpZiAoaXNOb3RoaW5nKHNlcXVlbmNlKSlcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgcmV0dXJuIFtzZXF1ZW5jZV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4dGVuZCh0YXJnZXQsIHNvdXJjZSkge1xuICAgICAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkge1xuICAgICAgdmFyIHJlc3VsdCA9IFwiXCIsIGN5Y2xlO1xuICAgICAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHtcbiAgICAgICAgcmVzdWx0ICs9IHN0cmluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzTmVnYXRpdmVaZXJvKG51bWJlcikge1xuICAgICAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzLmlzTm90aGluZyA9IGlzTm90aGluZztcbiAgICBtb2R1bGUuZXhwb3J0cy5pc09iamVjdCA9IGlzT2JqZWN0O1xuICAgIG1vZHVsZS5leHBvcnRzLnRvQXJyYXkgPSB0b0FycmF5O1xuICAgIG1vZHVsZS5leHBvcnRzLnJlcGVhdCA9IHJlcGVhdDtcbiAgICBtb2R1bGUuZXhwb3J0cy5pc05lZ2F0aXZlWmVybyA9IGlzTmVnYXRpdmVaZXJvO1xuICAgIG1vZHVsZS5leHBvcnRzLmV4dGVuZCA9IGV4dGVuZDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9leGNlcHRpb24uanNcbnZhciByZXF1aXJlX2V4Y2VwdGlvbiA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9leGNlcHRpb24uanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBmdW5jdGlvbiBmb3JtYXRFcnJvcihleGNlcHRpb24sIGNvbXBhY3QpIHtcbiAgICAgIHZhciB3aGVyZSA9IFwiXCIsIG1lc3NhZ2UgPSBleGNlcHRpb24ucmVhc29uIHx8IFwiKHVua25vd24gcmVhc29uKVwiO1xuICAgICAgaWYgKCFleGNlcHRpb24ubWFyaylcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICBpZiAoZXhjZXB0aW9uLm1hcmsubmFtZSkge1xuICAgICAgICB3aGVyZSArPSAnaW4gXCInICsgZXhjZXB0aW9uLm1hcmsubmFtZSArICdcIiAnO1xuICAgICAgfVxuICAgICAgd2hlcmUgKz0gXCIoXCIgKyAoZXhjZXB0aW9uLm1hcmsubGluZSArIDEpICsgXCI6XCIgKyAoZXhjZXB0aW9uLm1hcmsuY29sdW1uICsgMSkgKyBcIilcIjtcbiAgICAgIGlmICghY29tcGFjdCAmJiBleGNlcHRpb24ubWFyay5zbmlwcGV0KSB7XG4gICAgICAgIHdoZXJlICs9IFwiXFxuXFxuXCIgKyBleGNlcHRpb24ubWFyay5zbmlwcGV0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lc3NhZ2UgKyBcIiBcIiArIHdoZXJlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBZQU1MRXhjZXB0aW9uKHJlYXNvbiwgbWFyaykge1xuICAgICAgRXJyb3IuY2FsbCh0aGlzKTtcbiAgICAgIHRoaXMubmFtZSA9IFwiWUFNTEV4Y2VwdGlvblwiO1xuICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgICB0aGlzLm1hcmsgPSBtYXJrO1xuICAgICAgdGhpcy5tZXNzYWdlID0gZm9ybWF0RXJyb3IodGhpcywgZmFsc2UpO1xuICAgICAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrIHx8IFwiXCI7XG4gICAgICB9XG4gICAgfVxuICAgIFlBTUxFeGNlcHRpb24ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpO1xuICAgIFlBTUxFeGNlcHRpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gWUFNTEV4Y2VwdGlvbjtcbiAgICBZQU1MRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKGNvbXBhY3QpIHtcbiAgICAgIHJldHVybiB0aGlzLm5hbWUgKyBcIjogXCIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTtcbiAgICB9O1xuICAgIG1vZHVsZS5leHBvcnRzID0gWUFNTEV4Y2VwdGlvbjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9zbmlwcGV0LmpzXG52YXIgcmVxdWlyZV9zbmlwcGV0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3NuaXBwZXQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24oKTtcbiAgICBmdW5jdGlvbiBnZXRMaW5lKGJ1ZmZlciwgbGluZVN0YXJ0LCBsaW5lRW5kLCBwb3NpdGlvbiwgbWF4TGluZUxlbmd0aCkge1xuICAgICAgdmFyIGhlYWQgPSBcIlwiO1xuICAgICAgdmFyIHRhaWwgPSBcIlwiO1xuICAgICAgdmFyIG1heEhhbGZMZW5ndGggPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGggLyAyKSAtIDE7XG4gICAgICBpZiAocG9zaXRpb24gLSBsaW5lU3RhcnQgPiBtYXhIYWxmTGVuZ3RoKSB7XG4gICAgICAgIGhlYWQgPSBcIiAuLi4gXCI7XG4gICAgICAgIGxpbmVTdGFydCA9IHBvc2l0aW9uIC0gbWF4SGFsZkxlbmd0aCArIGhlYWQubGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKGxpbmVFbmQgLSBwb3NpdGlvbiA+IG1heEhhbGZMZW5ndGgpIHtcbiAgICAgICAgdGFpbCA9IFwiIC4uLlwiO1xuICAgICAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cXHQvZywgXCJcXHUyMTkyXCIpICsgdGFpbCxcbiAgICAgICAgcG9zOiBwb3NpdGlvbiAtIGxpbmVTdGFydCArIGhlYWQubGVuZ3RoXG4gICAgICAgIC8vIHJlbGF0aXZlIHBvc2l0aW9uXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYWRTdGFydChzdHJpbmcsIG1heCkge1xuICAgICAgcmV0dXJuIGNvbW1vbi5yZXBlYXQoXCIgXCIsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlU25pcHBldChtYXJrLCBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpO1xuICAgICAgaWYgKCFtYXJrLmJ1ZmZlcilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoIW9wdGlvbnMubWF4TGVuZ3RoKVxuICAgICAgICBvcHRpb25zLm1heExlbmd0aCA9IDc5O1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gXCJudW1iZXJcIilcbiAgICAgICAgb3B0aW9ucy5pbmRlbnQgPSAxO1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxpbmVzQmVmb3JlICE9PSBcIm51bWJlclwiKVxuICAgICAgICBvcHRpb25zLmxpbmVzQmVmb3JlID0gMztcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5saW5lc0FmdGVyICE9PSBcIm51bWJlclwiKVxuICAgICAgICBvcHRpb25zLmxpbmVzQWZ0ZXIgPSAyO1xuICAgICAgdmFyIHJlID0gL1xccj9cXG58XFxyfFxcMC9nO1xuICAgICAgdmFyIGxpbmVTdGFydHMgPSBbMF07XG4gICAgICB2YXIgbGluZUVuZHMgPSBbXTtcbiAgICAgIHZhciBtYXRjaDtcbiAgICAgIHZhciBmb3VuZExpbmVObyA9IC0xO1xuICAgICAgd2hpbGUgKG1hdGNoID0gcmUuZXhlYyhtYXJrLmJ1ZmZlcikpIHtcbiAgICAgICAgbGluZUVuZHMucHVzaChtYXRjaC5pbmRleCk7XG4gICAgICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIGlmIChtYXJrLnBvc2l0aW9uIDw9IG1hdGNoLmluZGV4ICYmIGZvdW5kTGluZU5vIDwgMCkge1xuICAgICAgICAgIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm91bmRMaW5lTm8gPCAwKVxuICAgICAgICBmb3VuZExpbmVObyA9IGxpbmVTdGFydHMubGVuZ3RoIC0gMTtcbiAgICAgIHZhciByZXN1bHQgPSBcIlwiLCBpLCBsaW5lO1xuICAgICAgdmFyIGxpbmVOb0xlbmd0aCA9IE1hdGgubWluKG1hcmsubGluZSArIG9wdGlvbnMubGluZXNBZnRlciwgbGluZUVuZHMubGVuZ3RoKS50b1N0cmluZygpLmxlbmd0aDtcbiAgICAgIHZhciBtYXhMaW5lTGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggLSAob3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzKTtcbiAgICAgIGZvciAoaSA9IDE7IGkgPD0gb3B0aW9ucy5saW5lc0JlZm9yZTsgaSsrKSB7XG4gICAgICAgIGlmIChmb3VuZExpbmVObyAtIGkgPCAwKVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBsaW5lID0gZ2V0TGluZShcbiAgICAgICAgICBtYXJrLmJ1ZmZlcixcbiAgICAgICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sXG4gICAgICAgICAgbGluZUVuZHNbZm91bmRMaW5lTm8gLSBpXSxcbiAgICAgICAgICBtYXJrLnBvc2l0aW9uIC0gKGxpbmVTdGFydHNbZm91bmRMaW5lTm9dIC0gbGluZVN0YXJ0c1tmb3VuZExpbmVObyAtIGldKSxcbiAgICAgICAgICBtYXhMaW5lTGVuZ3RoXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdCA9IGNvbW1vbi5yZXBlYXQoXCIgXCIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArIFwiIHwgXCIgKyBsaW5lLnN0ciArIFwiXFxuXCIgKyByZXN1bHQ7XG4gICAgICB9XG4gICAgICBsaW5lID0gZ2V0TGluZShtYXJrLmJ1ZmZlciwgbGluZVN0YXJ0c1tmb3VuZExpbmVOb10sIGxpbmVFbmRzW2ZvdW5kTGluZU5vXSwgbWFyay5wb3NpdGlvbiwgbWF4TGluZUxlbmd0aCk7XG4gICAgICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIiBcIiwgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyBcIiB8IFwiICsgbGluZS5zdHIgKyBcIlxcblwiO1xuICAgICAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoXCItXCIsIG9wdGlvbnMuaW5kZW50ICsgbGluZU5vTGVuZ3RoICsgMyArIGxpbmUucG9zKSArIFwiXlxcblwiO1xuICAgICAgZm9yIChpID0gMTsgaSA8PSBvcHRpb25zLmxpbmVzQWZ0ZXI7IGkrKykge1xuICAgICAgICBpZiAoZm91bmRMaW5lTm8gKyBpID49IGxpbmVFbmRzLmxlbmd0aClcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgbGluZSA9IGdldExpbmUoXG4gICAgICAgICAgbWFyay5idWZmZXIsXG4gICAgICAgICAgbGluZVN0YXJ0c1tmb3VuZExpbmVObyArIGldLFxuICAgICAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sXG4gICAgICAgICAgbWFyay5wb3NpdGlvbiAtIChsaW5lU3RhcnRzW2ZvdW5kTGluZU5vXSAtIGxpbmVTdGFydHNbZm91bmRMaW5lTm8gKyBpXSksXG4gICAgICAgICAgbWF4TGluZUxlbmd0aFxuICAgICAgICApO1xuICAgICAgICByZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIiBcIiwgb3B0aW9ucy5pbmRlbnQpICsgcGFkU3RhcnQoKG1hcmsubGluZSArIGkgKyAxKS50b1N0cmluZygpLCBsaW5lTm9MZW5ndGgpICsgXCIgfCBcIiArIGxpbmUuc3RyICsgXCJcXG5cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQucmVwbGFjZSgvXFxuJC8sIFwiXCIpO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IG1ha2VTbmlwcGV0O1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUuanNcbnZhciByZXF1aXJlX3R5cGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBZQU1MRXhjZXB0aW9uID0gcmVxdWlyZV9leGNlcHRpb24oKTtcbiAgICB2YXIgVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TID0gW1xuICAgICAgXCJraW5kXCIsXG4gICAgICBcIm11bHRpXCIsXG4gICAgICBcInJlc29sdmVcIixcbiAgICAgIFwiY29uc3RydWN0XCIsXG4gICAgICBcImluc3RhbmNlT2ZcIixcbiAgICAgIFwicHJlZGljYXRlXCIsXG4gICAgICBcInJlcHJlc2VudFwiLFxuICAgICAgXCJyZXByZXNlbnROYW1lXCIsXG4gICAgICBcImRlZmF1bHRTdHlsZVwiLFxuICAgICAgXCJzdHlsZUFsaWFzZXNcIlxuICAgIF07XG4gICAgdmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgICAgIFwic2NhbGFyXCIsXG4gICAgICBcInNlcXVlbmNlXCIsXG4gICAgICBcIm1hcHBpbmdcIlxuICAgIF07XG4gICAgZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIGlmIChtYXAgIT09IG51bGwpIHtcbiAgICAgICAgT2JqZWN0LmtleXMobWFwKS5mb3JFYWNoKGZ1bmN0aW9uKHN0eWxlKSB7XG4gICAgICAgICAgbWFwW3N0eWxlXS5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7XG4gICAgICAgICAgICByZXN1bHRbU3RyaW5nKGFsaWFzKV0gPSBzdHlsZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBUeXBlKHRhZywgb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkge1xuICAgICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiBcIicgKyBuYW1lICsgJ1wiIGlzIG1ldCBpbiBkZWZpbml0aW9uIG9mIFwiJyArIHRhZyArICdcIiBZQU1MIHR5cGUuJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgIHRoaXMudGFnID0gdGFnO1xuICAgICAgdGhpcy5raW5kID0gb3B0aW9uc1tcImtpbmRcIl0gfHwgbnVsbDtcbiAgICAgIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbXCJyZXNvbHZlXCJdIHx8IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH07XG4gICAgICB0aGlzLmNvbnN0cnVjdCA9IG9wdGlvbnNbXCJjb25zdHJ1Y3RcIl0gfHwgZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH07XG4gICAgICB0aGlzLmluc3RhbmNlT2YgPSBvcHRpb25zW1wiaW5zdGFuY2VPZlwiXSB8fCBudWxsO1xuICAgICAgdGhpcy5wcmVkaWNhdGUgPSBvcHRpb25zW1wicHJlZGljYXRlXCJdIHx8IG51bGw7XG4gICAgICB0aGlzLnJlcHJlc2VudCA9IG9wdGlvbnNbXCJyZXByZXNlbnRcIl0gfHwgbnVsbDtcbiAgICAgIHRoaXMucmVwcmVzZW50TmFtZSA9IG9wdGlvbnNbXCJyZXByZXNlbnROYW1lXCJdIHx8IG51bGw7XG4gICAgICB0aGlzLmRlZmF1bHRTdHlsZSA9IG9wdGlvbnNbXCJkZWZhdWx0U3R5bGVcIl0gfHwgbnVsbDtcbiAgICAgIHRoaXMubXVsdGkgPSBvcHRpb25zW1wibXVsdGlcIl0gfHwgZmFsc2U7XG4gICAgICB0aGlzLnN0eWxlQWxpYXNlcyA9IGNvbXBpbGVTdHlsZUFsaWFzZXMob3B0aW9uc1tcInN0eWxlQWxpYXNlc1wiXSB8fCBudWxsKTtcbiAgICAgIGlmIChZQU1MX05PREVfS0lORFMuaW5kZXhPZih0aGlzLmtpbmQpID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignVW5rbm93biBraW5kIFwiJyArIHRoaXMua2luZCArICdcIiBpcyBzcGVjaWZpZWQgZm9yIFwiJyArIHRhZyArICdcIiBZQU1MIHR5cGUuJyk7XG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gVHlwZTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9zY2hlbWEuanNcbnZhciByZXF1aXJlX3NjaGVtYSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9zY2hlbWEuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmVfZXhjZXB0aW9uKCk7XG4gICAgdmFyIFR5cGUgPSByZXF1aXJlX3R5cGUoKTtcbiAgICBmdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEsIG5hbWUpIHtcbiAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgIHNjaGVtYVtuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uKGN1cnJlbnRUeXBlKSB7XG4gICAgICAgIHZhciBuZXdJbmRleCA9IHJlc3VsdC5sZW5ndGg7XG4gICAgICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkge1xuICAgICAgICAgIGlmIChwcmV2aW91c1R5cGUudGFnID09PSBjdXJyZW50VHlwZS50YWcgJiYgcHJldmlvdXNUeXBlLmtpbmQgPT09IGN1cnJlbnRUeXBlLmtpbmQgJiYgcHJldmlvdXNUeXBlLm11bHRpID09PSBjdXJyZW50VHlwZS5tdWx0aSkge1xuICAgICAgICAgICAgbmV3SW5kZXggPSBwcmV2aW91c0luZGV4O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdFtuZXdJbmRleF0gPSBjdXJyZW50VHlwZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGlsZU1hcCgpIHtcbiAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgIHNjYWxhcjoge30sXG4gICAgICAgIHNlcXVlbmNlOiB7fSxcbiAgICAgICAgbWFwcGluZzoge30sXG4gICAgICAgIGZhbGxiYWNrOiB7fSxcbiAgICAgICAgbXVsdGk6IHtcbiAgICAgICAgICBzY2FsYXI6IFtdLFxuICAgICAgICAgIHNlcXVlbmNlOiBbXSxcbiAgICAgICAgICBtYXBwaW5nOiBbXSxcbiAgICAgICAgICBmYWxsYmFjazogW11cbiAgICAgICAgfVxuICAgICAgfSwgaW5kZXgsIGxlbmd0aDtcbiAgICAgIGZ1bmN0aW9uIGNvbGxlY3RUeXBlKHR5cGUpIHtcbiAgICAgICAgaWYgKHR5cGUubXVsdGkpIHtcbiAgICAgICAgICByZXN1bHQubXVsdGlbdHlwZS5raW5kXS5wdXNoKHR5cGUpO1xuICAgICAgICAgIHJlc3VsdC5tdWx0aVtcImZhbGxiYWNrXCJdLnB1c2godHlwZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W3R5cGUua2luZF1bdHlwZS50YWddID0gcmVzdWx0W1wiZmFsbGJhY2tcIl1bdHlwZS50YWddID0gdHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBTY2hlbWEoZGVmaW5pdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKGRlZmluaXRpb24pO1xuICAgIH1cbiAgICBTY2hlbWEucHJvdG90eXBlLmV4dGVuZCA9IGZ1bmN0aW9uIGV4dGVuZChkZWZpbml0aW9uKSB7XG4gICAgICB2YXIgaW1wbGljaXQgPSBbXTtcbiAgICAgIHZhciBleHBsaWNpdCA9IFtdO1xuICAgICAgaWYgKGRlZmluaXRpb24gaW5zdGFuY2VvZiBUeXBlKSB7XG4gICAgICAgIGV4cGxpY2l0LnB1c2goZGVmaW5pdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGRlZmluaXRpb24gJiYgKEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5pbXBsaWNpdCkgfHwgQXJyYXkuaXNBcnJheShkZWZpbml0aW9uLmV4cGxpY2l0KSkpIHtcbiAgICAgICAgaWYgKGRlZmluaXRpb24uaW1wbGljaXQpXG4gICAgICAgICAgaW1wbGljaXQgPSBpbXBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5pbXBsaWNpdCk7XG4gICAgICAgIGlmIChkZWZpbml0aW9uLmV4cGxpY2l0KVxuICAgICAgICAgIGV4cGxpY2l0ID0gZXhwbGljaXQuY29uY2F0KGRlZmluaXRpb24uZXhwbGljaXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCJTY2hlbWEuZXh0ZW5kIGFyZ3VtZW50IHNob3VsZCBiZSBhIFR5cGUsIFsgVHlwZSBdLCBvciBhIHNjaGVtYSBkZWZpbml0aW9uICh7IGltcGxpY2l0OiBbLi4uXSwgZXhwbGljaXQ6IFsuLi5dIH0pXCIpO1xuICAgICAgfVxuICAgICAgaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0eXBlKSB7XG4gICAgICAgIGlmICghKHR5cGUgaW5zdGFuY2VvZiBUeXBlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKFwiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZS5sb2FkS2luZCAmJiB0eXBlLmxvYWRLaW5kICE9PSBcInNjYWxhclwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGUubXVsdGkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbihcIlRoZXJlIGlzIGEgbXVsdGkgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gTXVsdGkgdGFncyBjYW4gb25seSBiZSBsaXN0ZWQgYXMgZXhwbGljaXQuXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGV4cGxpY2l0LmZvckVhY2goZnVuY3Rpb24odHlwZSkge1xuICAgICAgICBpZiAoISh0eXBlIGluc3RhbmNlb2YgVHlwZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbihcIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC5cIik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIHJlc3VsdCA9IE9iamVjdC5jcmVhdGUoU2NoZW1hLnByb3RvdHlwZSk7XG4gICAgICByZXN1bHQuaW1wbGljaXQgPSAodGhpcy5pbXBsaWNpdCB8fCBbXSkuY29uY2F0KGltcGxpY2l0KTtcbiAgICAgIHJlc3VsdC5leHBsaWNpdCA9ICh0aGlzLmV4cGxpY2l0IHx8IFtdKS5jb25jYXQoZXhwbGljaXQpO1xuICAgICAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsIFwiaW1wbGljaXRcIik7XG4gICAgICByZXN1bHQuY29tcGlsZWRFeHBsaWNpdCA9IGNvbXBpbGVMaXN0KHJlc3VsdCwgXCJleHBsaWNpdFwiKTtcbiAgICAgIHJlc3VsdC5jb21waWxlZFR5cGVNYXAgPSBjb21waWxlTWFwKHJlc3VsdC5jb21waWxlZEltcGxpY2l0LCByZXN1bHQuY29tcGlsZWRFeHBsaWNpdCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBTY2hlbWE7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9zdHIuanNcbnZhciByZXF1aXJlX3N0ciA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL3N0ci5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOnN0clwiLCB7XG4gICAgICBraW5kOiBcInNjYWxhclwiLFxuICAgICAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFwiXCI7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9zZXEuanNcbnZhciByZXF1aXJlX3NlcSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL3NlcS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOnNlcVwiLCB7XG4gICAgICBraW5kOiBcInNlcXVlbmNlXCIsXG4gICAgICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9tYXAuanNcbnZhciByZXF1aXJlX21hcCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL21hcC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOm1hcFwiLCB7XG4gICAgICBraW5kOiBcIm1hcHBpbmdcIixcbiAgICAgIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9zY2hlbWEvZmFpbHNhZmUuanNcbnZhciByZXF1aXJlX2ZhaWxzYWZlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3NjaGVtYS9mYWlsc2FmZS5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBTY2hlbWEgPSByZXF1aXJlX3NjaGVtYSgpO1xuICAgIG1vZHVsZS5leHBvcnRzID0gbmV3IFNjaGVtYSh7XG4gICAgICBleHBsaWNpdDogW1xuICAgICAgICByZXF1aXJlX3N0cigpLFxuICAgICAgICByZXF1aXJlX3NlcSgpLFxuICAgICAgICByZXF1aXJlX21hcCgpXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9udWxsLmpzXG52YXIgcmVxdWlyZV9udWxsID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvbnVsbC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVlhbWxOdWxsKGRhdGEpIHtcbiAgICAgIGlmIChkYXRhID09PSBudWxsKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIHZhciBtYXggPSBkYXRhLmxlbmd0aDtcbiAgICAgIHJldHVybiBtYXggPT09IDEgJiYgZGF0YSA9PT0gXCJ+XCIgfHwgbWF4ID09PSA0ICYmIChkYXRhID09PSBcIm51bGxcIiB8fCBkYXRhID09PSBcIk51bGxcIiB8fCBkYXRhID09PSBcIk5VTExcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxOdWxsKCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzTnVsbChvYmplY3QpIHtcbiAgICAgIHJldHVybiBvYmplY3QgPT09IG51bGw7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpudWxsXCIsIHtcbiAgICAgIGtpbmQ6IFwic2NhbGFyXCIsXG4gICAgICByZXNvbHZlOiByZXNvbHZlWWFtbE51bGwsXG4gICAgICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxOdWxsLFxuICAgICAgcHJlZGljYXRlOiBpc051bGwsXG4gICAgICByZXByZXNlbnQ6IHtcbiAgICAgICAgY2Fub25pY2FsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXCJ+XCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxvd2VyY2FzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICB9LFxuICAgICAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBcIk5VTExcIjtcbiAgICAgICAgfSxcbiAgICAgICAgY2FtZWxjYXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXCJOdWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGVtcHR5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRTdHlsZTogXCJsb3dlcmNhc2VcIlxuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvYm9vbC5qc1xudmFyIHJlcXVpcmVfYm9vbCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL2Jvb2wuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgVHlwZSA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbihkYXRhKSB7XG4gICAgICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuICAgICAgcmV0dXJuIG1heCA9PT0gNCAmJiAoZGF0YSA9PT0gXCJ0cnVlXCIgfHwgZGF0YSA9PT0gXCJUcnVlXCIgfHwgZGF0YSA9PT0gXCJUUlVFXCIpIHx8IG1heCA9PT0gNSAmJiAoZGF0YSA9PT0gXCJmYWxzZVwiIHx8IGRhdGEgPT09IFwiRmFsc2VcIiB8fCBkYXRhID09PSBcIkZBTFNFXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YSA9PT0gXCJ0cnVlXCIgfHwgZGF0YSA9PT0gXCJUcnVlXCIgfHwgZGF0YSA9PT0gXCJUUlVFXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gXCJbb2JqZWN0IEJvb2xlYW5dXCI7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sXCIsIHtcbiAgICAgIGtpbmQ6IFwic2NhbGFyXCIsXG4gICAgICByZXNvbHZlOiByZXNvbHZlWWFtbEJvb2xlYW4sXG4gICAgICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLFxuICAgICAgcHJlZGljYXRlOiBpc0Jvb2xlYW4sXG4gICAgICByZXByZXNlbnQ6IHtcbiAgICAgICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0ID8gXCJ0cnVlXCIgOiBcImZhbHNlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyY2FzZTogZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA/IFwiVFJVRVwiIDogXCJGQUxTRVwiO1xuICAgICAgICB9LFxuICAgICAgICBjYW1lbGNhc2U6IGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgICAgIHJldHVybiBvYmplY3QgPyBcIlRydWVcIiA6IFwiRmFsc2VcIjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRTdHlsZTogXCJsb3dlcmNhc2VcIlxuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvaW50LmpzXG52YXIgcmVxdWlyZV9pbnQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9pbnQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24oKTtcbiAgICB2YXIgVHlwZSA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIGZ1bmN0aW9uIGlzSGV4Q29kZShjKSB7XG4gICAgICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU3IHx8IDY1IDw9IGMgJiYgYyA8PSA3MCB8fCA5NyA8PSBjICYmIGMgPD0gMTAyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc09jdENvZGUoYykge1xuICAgICAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1NTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgICAgIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVZYW1sSW50ZWdlcihkYXRhKSB7XG4gICAgICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDtcbiAgICAgIGlmICghbWF4KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgaWYgKGNoID09PSBcIi1cIiB8fCBjaCA9PT0gXCIrXCIpIHtcbiAgICAgICAgY2ggPSBkYXRhWysraW5kZXhdO1xuICAgICAgfVxuICAgICAgaWYgKGNoID09PSBcIjBcIikge1xuICAgICAgICBpZiAoaW5kZXggKyAxID09PSBtYXgpXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNoID0gZGF0YVsrK2luZGV4XTtcbiAgICAgICAgaWYgKGNoID09PSBcImJcIikge1xuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAoY2ggIT09IFwiMFwiICYmIGNoICE9PSBcIjFcIilcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSBcInhcIikge1xuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAoIWlzSGV4Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSlcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoID09PSBcIm9cIikge1xuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSBcIl9cIilcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSlcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gXCJfXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjaCA9PT0gXCJfXCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09IFwiX1wiKVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoIWlzRGVjQ29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFoYXNEaWdpdHMgfHwgY2ggPT09IFwiX1wiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29uc3RydWN0WWFtbEludGVnZXIoZGF0YSkge1xuICAgICAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoO1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoXCJfXCIpICE9PSAtMSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgXCJcIik7XG4gICAgICB9XG4gICAgICBjaCA9IHZhbHVlWzBdO1xuICAgICAgaWYgKGNoID09PSBcIi1cIiB8fCBjaCA9PT0gXCIrXCIpIHtcbiAgICAgICAgaWYgKGNoID09PSBcIi1cIilcbiAgICAgICAgICBzaWduID0gLTE7XG4gICAgICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7XG4gICAgICAgIGNoID0gdmFsdWVbMF07XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgPT09IFwiMFwiKVxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIGlmIChjaCA9PT0gXCIwXCIpIHtcbiAgICAgICAgaWYgKHZhbHVlWzFdID09PSBcImJcIilcbiAgICAgICAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAyKTtcbiAgICAgICAgaWYgKHZhbHVlWzFdID09PSBcInhcIilcbiAgICAgICAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLnNsaWNlKDIpLCAxNik7XG4gICAgICAgIGlmICh2YWx1ZVsxXSA9PT0gXCJvXCIpXG4gICAgICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgOCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSW50ZWdlcihvYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gXCJbb2JqZWN0IE51bWJlcl1cIiAmJiAob2JqZWN0ICUgMSA9PT0gMCAmJiAhY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKFwidGFnOnlhbWwub3JnLDIwMDI6aW50XCIsIHtcbiAgICAgIGtpbmQ6IFwic2NhbGFyXCIsXG4gICAgICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gICAgICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxJbnRlZ2VyLFxuICAgICAgcHJlZGljYXRlOiBpc0ludGVnZXIsXG4gICAgICByZXByZXNlbnQ6IHtcbiAgICAgICAgYmluYXJ5OiBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICByZXR1cm4gb2JqID49IDAgPyBcIjBiXCIgKyBvYmoudG9TdHJpbmcoMikgOiBcIi0wYlwiICsgb2JqLnRvU3RyaW5nKDIpLnNsaWNlKDEpO1xuICAgICAgICB9LFxuICAgICAgICBvY3RhbDogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgcmV0dXJuIG9iaiA+PSAwID8gXCIwb1wiICsgb2JqLnRvU3RyaW5nKDgpIDogXCItMG9cIiArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVjaW1hbDogZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgICAgcmV0dXJuIG9iai50b1N0cmluZygxMCk7XG4gICAgICAgIH0sXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbiAgICAgICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICAgIHJldHVybiBvYmogPj0gMCA/IFwiMHhcIiArIG9iai50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSA6IFwiLTB4XCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkZWZhdWx0U3R5bGU6IFwiZGVjaW1hbFwiLFxuICAgICAgc3R5bGVBbGlhc2VzOiB7XG4gICAgICAgIGJpbmFyeTogWzIsIFwiYmluXCJdLFxuICAgICAgICBvY3RhbDogWzgsIFwib2N0XCJdLFxuICAgICAgICBkZWNpbWFsOiBbMTAsIFwiZGVjXCJdLFxuICAgICAgICBoZXhhZGVjaW1hbDogWzE2LCBcImhleFwiXVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvZmxvYXQuanNcbnZhciByZXF1aXJlX2Zsb2F0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvZmxvYXQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgY29tbW9uID0gcmVxdWlyZV9jb21tb24oKTtcbiAgICB2YXIgVHlwZSA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciBZQU1MX0ZMT0FUX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICAgICAgLy8gMi41ZTQsIDIuNSBhbmQgaW50ZWdlcnNcbiAgICAgIFwiXig/OlstK10/KD86WzAtOV1bMC05X10qKSg/OlxcXFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFxcXC5bMC05X10rKD86W2VFXVstK10/WzAtOV0rKT98Wy0rXT9cXFxcLig/OmluZnxJbmZ8SU5GKXxcXFxcLig/Om5hbnxOYU58TkFOKSkkXCJcbiAgICApO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICAgICAgaWYgKGRhdGEgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gXG4gICAgICAvLyBQcm9iYWJseSBzaG91bGQgdXBkYXRlIHJlZ2V4cCAmIGNoZWNrIHNwZWVkXG4gICAgICBkYXRhW2RhdGEubGVuZ3RoIC0gMV0gPT09IFwiX1wiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sRmxvYXQoZGF0YSkge1xuICAgICAgdmFyIHZhbHVlLCBzaWduO1xuICAgICAgdmFsdWUgPSBkYXRhLnJlcGxhY2UoL18vZywgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgIHNpZ24gPSB2YWx1ZVswXSA9PT0gXCItXCIgPyAtMSA6IDE7XG4gICAgICBpZiAoXCIrLVwiLmluZGV4T2YodmFsdWVbMF0pID49IDApIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA9PT0gXCIuaW5mXCIpIHtcbiAgICAgICAgcmV0dXJuIHNpZ24gPT09IDEgPyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgOiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBcIi5uYW5cIikge1xuICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUZsb2F0KHZhbHVlLCAxMCk7XG4gICAgfVxuICAgIHZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvO1xuICAgIGZ1bmN0aW9uIHJlcHJlc2VudFlhbWxGbG9hdChvYmplY3QsIHN0eWxlKSB7XG4gICAgICB2YXIgcmVzO1xuICAgICAgaWYgKGlzTmFOKG9iamVjdCkpIHtcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xuICAgICAgICAgIGNhc2UgXCJsb3dlcmNhc2VcIjpcbiAgICAgICAgICAgIHJldHVybiBcIi5uYW5cIjtcbiAgICAgICAgICBjYXNlIFwidXBwZXJjYXNlXCI6XG4gICAgICAgICAgICByZXR1cm4gXCIuTkFOXCI7XG4gICAgICAgICAgY2FzZSBcImNhbWVsY2FzZVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiLk5hTlwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7XG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICBjYXNlIFwibG93ZXJjYXNlXCI6XG4gICAgICAgICAgICByZXR1cm4gXCIuaW5mXCI7XG4gICAgICAgICAgY2FzZSBcInVwcGVyY2FzZVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiLklORlwiO1xuICAgICAgICAgIGNhc2UgXCJjYW1lbGNhc2VcIjpcbiAgICAgICAgICAgIHJldHVybiBcIi5JbmZcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgICAgICAgY2FzZSBcImxvd2VyY2FzZVwiOlxuICAgICAgICAgICAgcmV0dXJuIFwiLS5pbmZcIjtcbiAgICAgICAgICBjYXNlIFwidXBwZXJjYXNlXCI6XG4gICAgICAgICAgICByZXR1cm4gXCItLklORlwiO1xuICAgICAgICAgIGNhc2UgXCJjYW1lbGNhc2VcIjpcbiAgICAgICAgICAgIHJldHVybiBcIi0uSW5mXCI7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIFwiLTAuMFwiO1xuICAgICAgfVxuICAgICAgcmVzID0gb2JqZWN0LnRvU3RyaW5nKDEwKTtcbiAgICAgIHJldHVybiBTQ0lFTlRJRklDX1dJVEhPVVRfRE9ULnRlc3QocmVzKSA/IHJlcy5yZXBsYWNlKFwiZVwiLCBcIi5lXCIpIDogcmVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09PSBcIltvYmplY3QgTnVtYmVyXVwiICYmIChvYmplY3QgJSAxICE9PSAwIHx8IGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTtcbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOmZsb2F0XCIsIHtcbiAgICAgIGtpbmQ6IFwic2NhbGFyXCIsXG4gICAgICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LFxuICAgICAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sRmxvYXQsXG4gICAgICBwcmVkaWNhdGU6IGlzRmxvYXQsXG4gICAgICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCxcbiAgICAgIGRlZmF1bHRTdHlsZTogXCJsb3dlcmNhc2VcIlxuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3NjaGVtYS9qc29uLmpzXG52YXIgcmVxdWlyZV9qc29uID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3NjaGVtYS9qc29uLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlX2ZhaWxzYWZlKCkuZXh0ZW5kKHtcbiAgICAgIGltcGxpY2l0OiBbXG4gICAgICAgIHJlcXVpcmVfbnVsbCgpLFxuICAgICAgICByZXF1aXJlX2Jvb2woKSxcbiAgICAgICAgcmVxdWlyZV9pbnQoKSxcbiAgICAgICAgcmVxdWlyZV9mbG9hdCgpXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvc2NoZW1hL2NvcmUuanNcbnZhciByZXF1aXJlX2NvcmUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvc2NoZW1hL2NvcmUuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVfanNvbigpO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvdGltZXN0YW1wLmpzXG52YXIgcmVxdWlyZV90aW1lc3RhbXAgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS90aW1lc3RhbXAuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgVHlwZSA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIHZhciBZQU1MX0RBVEVfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgICAgIFwiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0pLShbMC05XVswLTldKSRcIlxuICAgICk7XG4gICAgdmFyIFlBTUxfVElNRVNUQU1QX1JFR0VYUCA9IG5ldyBSZWdFeHAoXG4gICAgICBcIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldPyktKFswLTldWzAtOV0/KSg/OltUdF18WyBcXFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcXFwuKFswLTldKikpPyg/OlsgXFxcXHRdKihafChbLStdKShbMC05XVswLTldPykoPzo6KFswLTldWzAtOV0pKT8pKT8kXCJcbiAgICApO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKGRhdGEpIHtcbiAgICAgIGlmIChkYXRhID09PSBudWxsKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoWUFNTF9EQVRFX1JFR0VYUC5leGVjKGRhdGEpICE9PSBudWxsKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICAgICAgdmFyIG1hdGNoLCB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24gPSAwLCBkZWx0YSA9IG51bGwsIHR6X2hvdXIsIHR6X21pbnV0ZSwgZGF0ZTtcbiAgICAgIG1hdGNoID0gWUFNTF9EQVRFX1JFR0VYUC5leGVjKGRhdGEpO1xuICAgICAgaWYgKG1hdGNoID09PSBudWxsKVxuICAgICAgICBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpO1xuICAgICAgaWYgKG1hdGNoID09PSBudWxsKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEYXRlIHJlc29sdmUgZXJyb3JcIik7XG4gICAgICB5ZWFyID0gK21hdGNoWzFdO1xuICAgICAgbW9udGggPSArbWF0Y2hbMl0gLSAxO1xuICAgICAgZGF5ID0gK21hdGNoWzNdO1xuICAgICAgaWYgKCFtYXRjaFs0XSkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSkpO1xuICAgICAgfVxuICAgICAgaG91ciA9ICttYXRjaFs0XTtcbiAgICAgIG1pbnV0ZSA9ICttYXRjaFs1XTtcbiAgICAgIHNlY29uZCA9ICttYXRjaFs2XTtcbiAgICAgIGlmIChtYXRjaFs3XSkge1xuICAgICAgICBmcmFjdGlvbiA9IG1hdGNoWzddLnNsaWNlKDAsIDMpO1xuICAgICAgICB3aGlsZSAoZnJhY3Rpb24ubGVuZ3RoIDwgMykge1xuICAgICAgICAgIGZyYWN0aW9uICs9IFwiMFwiO1xuICAgICAgICB9XG4gICAgICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKG1hdGNoWzldKSB7XG4gICAgICAgIHR6X2hvdXIgPSArbWF0Y2hbMTBdO1xuICAgICAgICB0el9taW51dGUgPSArKG1hdGNoWzExXSB8fCAwKTtcbiAgICAgICAgZGVsdGEgPSAodHpfaG91ciAqIDYwICsgdHpfbWludXRlKSAqIDZlNDtcbiAgICAgICAgaWYgKG1hdGNoWzldID09PSBcIi1cIilcbiAgICAgICAgICBkZWx0YSA9IC1kZWx0YTtcbiAgICAgIH1cbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgZnJhY3Rpb24pKTtcbiAgICAgIGlmIChkZWx0YSlcbiAgICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpIC0gZGVsdGEpO1xuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gb2JqZWN0LnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoXCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXBcIiwge1xuICAgICAga2luZDogXCJzY2FsYXJcIixcbiAgICAgIHJlc29sdmU6IHJlc29sdmVZYW1sVGltZXN0YW1wLFxuICAgICAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLFxuICAgICAgaW5zdGFuY2VPZjogRGF0ZSxcbiAgICAgIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbFRpbWVzdGFtcFxuICAgIH0pO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvbWVyZ2UuanNcbnZhciByZXF1aXJlX21lcmdlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvbWVyZ2UuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgVHlwZSA9IHJlcXVpcmVfdHlwZSgpO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2UoZGF0YSkge1xuICAgICAgcmV0dXJuIGRhdGEgPT09IFwiPDxcIiB8fCBkYXRhID09PSBudWxsO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKFwidGFnOnlhbWwub3JnLDIwMDI6bWVyZ2VcIiwge1xuICAgICAga2luZDogXCJzY2FsYXJcIixcbiAgICAgIHJlc29sdmU6IHJlc29sdmVZYW1sTWVyZ2VcbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL2JpbmFyeS5qc1xudmFyIHJlcXVpcmVfYmluYXJ5ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvYmluYXJ5LmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIFR5cGUgPSByZXF1aXJlX3R5cGUoKTtcbiAgICB2YXIgQkFTRTY0X01BUCA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cXG5cXHJcIjtcbiAgICBmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7XG4gICAgICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIGNvZGUsIGlkeCwgYml0bGVuID0gMCwgbWF4ID0gZGF0YS5sZW5ndGgsIG1hcCA9IEJBU0U2NF9NQVA7XG4gICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICAgICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuICAgICAgICBpZiAoY29kZSA+IDY0KVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoY29kZSA8IDApXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBiaXRsZW4gKz0gNjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiaXRsZW4gJSA4ID09PSAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHtcbiAgICAgIHZhciBpZHgsIHRhaWxiaXRzLCBpbnB1dCA9IGRhdGEucmVwbGFjZSgvW1xcclxcbj1dL2csIFwiXCIpLCBtYXggPSBpbnB1dC5sZW5ndGgsIG1hcCA9IEJBU0U2NF9NQVAsIGJpdHMgPSAwLCByZXN1bHQgPSBbXTtcbiAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgbWF4OyBpZHgrKykge1xuICAgICAgICBpZiAoaWR4ICUgNCA9PT0gMCAmJiBpZHgpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTtcbiAgICAgICAgICByZXN1bHQucHVzaChiaXRzID4+IDggJiAyNTUpO1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAyNTUpO1xuICAgICAgICB9XG4gICAgICAgIGJpdHMgPSBiaXRzIDw8IDYgfCBtYXAuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7XG4gICAgICB9XG4gICAgICB0YWlsYml0cyA9IG1heCAlIDQgKiA2O1xuICAgICAgaWYgKHRhaWxiaXRzID09PSAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gMTYgJiAyNTUpO1xuICAgICAgICByZXN1bHQucHVzaChiaXRzID4+IDggJiAyNTUpO1xuICAgICAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTtcbiAgICAgIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDE4KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gMTAgJiAyNTUpO1xuICAgICAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpO1xuICAgICAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTIpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYml0cyA+PiA0ICYgMjU1KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShyZXN1bHQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IFwiXCIsIGJpdHMgPSAwLCBpZHgsIHRhaWwsIG1heCA9IG9iamVjdC5sZW5ndGgsIG1hcCA9IEJBU0U2NF9NQVA7XG4gICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGlkeCAlIDMgPT09IDAgJiYgaWR4KSB7XG4gICAgICAgICAgcmVzdWx0ICs9IG1hcFtiaXRzID4+IDE4ICYgNjNdO1xuICAgICAgICAgIHJlc3VsdCArPSBtYXBbYml0cyA+PiAxMiAmIDYzXTtcbiAgICAgICAgICByZXN1bHQgKz0gbWFwW2JpdHMgPj4gNiAmIDYzXTtcbiAgICAgICAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiA2M107XG4gICAgICAgIH1cbiAgICAgICAgYml0cyA9IChiaXRzIDw8IDgpICsgb2JqZWN0W2lkeF07XG4gICAgICB9XG4gICAgICB0YWlsID0gbWF4ICUgMztcbiAgICAgIGlmICh0YWlsID09PSAwKSB7XG4gICAgICAgIHJlc3VsdCArPSBtYXBbYml0cyA+PiAxOCAmIDYzXTtcbiAgICAgICAgcmVzdWx0ICs9IG1hcFtiaXRzID4+IDEyICYgNjNdO1xuICAgICAgICByZXN1bHQgKz0gbWFwW2JpdHMgPj4gNiAmIDYzXTtcbiAgICAgICAgcmVzdWx0ICs9IG1hcFtiaXRzICYgNjNdO1xuICAgICAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7XG4gICAgICAgIHJlc3VsdCArPSBtYXBbYml0cyA+PiAxMCAmIDYzXTtcbiAgICAgICAgcmVzdWx0ICs9IG1hcFtiaXRzID4+IDQgJiA2M107XG4gICAgICAgIHJlc3VsdCArPSBtYXBbYml0cyA8PCAyICYgNjNdO1xuICAgICAgICByZXN1bHQgKz0gbWFwWzY0XTtcbiAgICAgIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkge1xuICAgICAgICByZXN1bHQgKz0gbWFwW2JpdHMgPj4gMiAmIDYzXTtcbiAgICAgICAgcmVzdWx0ICs9IG1hcFtiaXRzIDw8IDQgJiA2M107XG4gICAgICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICAgICAgICByZXN1bHQgKz0gbWFwWzY0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQmluYXJ5KG9iaikge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgVWludDhBcnJheV1cIjtcbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOmJpbmFyeVwiLCB7XG4gICAgICBraW5kOiBcInNjYWxhclwiLFxuICAgICAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCaW5hcnksXG4gICAgICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCaW5hcnksXG4gICAgICBwcmVkaWNhdGU6IGlzQmluYXJ5LFxuICAgICAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sQmluYXJ5XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9vbWFwLmpzXG52YXIgcmVxdWlyZV9vbWFwID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL3R5cGUvb21hcC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgdmFyIF90b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHtcbiAgICAgIGlmIChkYXRhID09PSBudWxsKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIHZhciBvYmplY3RLZXlzID0gW10sIGluZGV4LCBsZW5ndGgsIHBhaXIsIHBhaXJLZXksIHBhaXJIYXNLZXksIG9iamVjdCA9IGRhdGE7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgcGFpciA9IG9iamVjdFtpbmRleF07XG4gICAgICAgIHBhaXJIYXNLZXkgPSBmYWxzZTtcbiAgICAgICAgaWYgKF90b1N0cmluZy5jYWxsKHBhaXIpICE9PSBcIltvYmplY3QgT2JqZWN0XVwiKVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgZm9yIChwYWlyS2V5IGluIHBhaXIpIHtcbiAgICAgICAgICBpZiAoX2hhc093blByb3BlcnR5LmNhbGwocGFpciwgcGFpcktleSkpIHtcbiAgICAgICAgICAgIGlmICghcGFpckhhc0tleSlcbiAgICAgICAgICAgICAgcGFpckhhc0tleSA9IHRydWU7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYWlySGFzS2V5KVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKG9iamVjdEtleXMuaW5kZXhPZihwYWlyS2V5KSA9PT0gLTEpXG4gICAgICAgICAgb2JqZWN0S2V5cy5wdXNoKHBhaXJLZXkpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxPbWFwKGRhdGEpIHtcbiAgICAgIHJldHVybiBkYXRhICE9PSBudWxsID8gZGF0YSA6IFtdO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKFwidGFnOnlhbWwub3JnLDIwMDI6b21hcFwiLCB7XG4gICAgICBraW5kOiBcInNlcXVlbmNlXCIsXG4gICAgICByZXNvbHZlOiByZXNvbHZlWWFtbE9tYXAsXG4gICAgICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9wYWlycy5qc1xudmFyIHJlcXVpcmVfcGFpcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9wYWlycy5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyIF90b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVlhbWxQYWlycyhkYXRhKSB7XG4gICAgICBpZiAoZGF0YSA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LCBvYmplY3QgPSBkYXRhO1xuICAgICAgcmVzdWx0ID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpO1xuICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgICAgICBpZiAoX3RvU3RyaW5nLmNhbGwocGFpcikgIT09IFwiW29iamVjdCBPYmplY3RdXCIpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSlcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29uc3RydWN0WWFtbFBhaXJzKGRhdGEpIHtcbiAgICAgIGlmIChkYXRhID09PSBudWxsKVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LCBvYmplY3QgPSBkYXRhO1xuICAgICAgcmVzdWx0ID0gbmV3IEFycmF5KG9iamVjdC5sZW5ndGgpO1xuICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG4gICAgICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKFwidGFnOnlhbWwub3JnLDIwMDI6cGFpcnNcIiwge1xuICAgICAga2luZDogXCJzZXF1ZW5jZVwiLFxuICAgICAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgICAgIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFBhaXJzXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvdHlwZS9zZXQuanNcbnZhciByZXF1aXJlX3NldCA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi90eXBlL3NldC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBUeXBlID0gcmVxdWlyZV90eXBlKCk7XG4gICAgdmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQoZGF0YSkge1xuICAgICAgaWYgKGRhdGEgPT09IG51bGwpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgdmFyIGtleSwgb2JqZWN0ID0gZGF0YTtcbiAgICAgIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgICAgICBpZiAoX2hhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSB7XG4gICAgICAgICAgaWYgKG9iamVjdFtrZXldICE9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29uc3RydWN0WWFtbFNldChkYXRhKSB7XG4gICAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTtcbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZShcInRhZzp5YW1sLm9yZywyMDAyOnNldFwiLCB7XG4gICAgICBraW5kOiBcIm1hcHBpbmdcIixcbiAgICAgIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICAgICAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sU2V0XG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvc2NoZW1hL2RlZmF1bHQuanNcbnZhciByZXF1aXJlX2RlZmF1bHQgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvc2NoZW1hL2RlZmF1bHQuanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmVfY29yZSgpLmV4dGVuZCh7XG4gICAgICBpbXBsaWNpdDogW1xuICAgICAgICByZXF1aXJlX3RpbWVzdGFtcCgpLFxuICAgICAgICByZXF1aXJlX21lcmdlKClcbiAgICAgIF0sXG4gICAgICBleHBsaWNpdDogW1xuICAgICAgICByZXF1aXJlX2JpbmFyeSgpLFxuICAgICAgICByZXF1aXJlX29tYXAoKSxcbiAgICAgICAgcmVxdWlyZV9wYWlycygpLFxuICAgICAgICByZXF1aXJlX3NldCgpXG4gICAgICBdXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvbG9hZGVyLmpzXG52YXIgcmVxdWlyZV9sb2FkZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvbG9hZGVyLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvbW1vbiA9IHJlcXVpcmVfY29tbW9uKCk7XG4gICAgdmFyIFlBTUxFeGNlcHRpb24gPSByZXF1aXJlX2V4Y2VwdGlvbigpO1xuICAgIHZhciBtYWtlU25pcHBldCA9IHJlcXVpcmVfc25pcHBldCgpO1xuICAgIHZhciBERUZBVUxUX1NDSEVNQSA9IHJlcXVpcmVfZGVmYXVsdCgpO1xuICAgIHZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgIHZhciBDT05URVhUX0ZMT1dfSU4gPSAxO1xuICAgIHZhciBDT05URVhUX0ZMT1dfT1VUID0gMjtcbiAgICB2YXIgQ09OVEVYVF9CTE9DS19JTiA9IDM7XG4gICAgdmFyIENPTlRFWFRfQkxPQ0tfT1VUID0gNDtcbiAgICB2YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7XG4gICAgdmFyIENIT01QSU5HX1NUUklQID0gMjtcbiAgICB2YXIgQ0hPTVBJTkdfS0VFUCA9IDM7XG4gICAgdmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXFx4MDAtXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUZcXHg3Ri1cXHg4NFxceDg2LVxceDlGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbiAgICB2YXIgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MgPSAvW1xceDg1XFx1MjAyOFxcdTIwMjldLztcbiAgICB2YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgPSAvWyxcXFtcXF1cXHtcXH1dLztcbiAgICB2YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XFwtXSshKSQvaTtcbiAgICB2YXIgUEFUVEVSTl9UQUdfVVJJID0gL14oPzohfFteLFxcW1xcXVxce1xcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcXC0jO1xcL1xcPzpAJj1cXCtcXCQsX1xcLiF+XFwqJ1xcKFxcKVxcW1xcXV0pKiQvaTtcbiAgICBmdW5jdGlvbiBfY2xhc3Mob2JqKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzX0VPTChjKSB7XG4gICAgICByZXR1cm4gYyA9PT0gMTAgfHwgYyA9PT0gMTM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzX1dISVRFX1NQQUNFKGMpIHtcbiAgICAgIHJldHVybiBjID09PSA5IHx8IGMgPT09IDMyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc19XU19PUl9FT0woYykge1xuICAgICAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzIgfHwgYyA9PT0gMTAgfHwgYyA9PT0gMTM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzX0ZMT1dfSU5ESUNBVE9SKGMpIHtcbiAgICAgIHJldHVybiBjID09PSA0NCB8fCBjID09PSA5MSB8fCBjID09PSA5MyB8fCBjID09PSAxMjMgfHwgYyA9PT0gMTI1O1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tSGV4Q29kZShjKSB7XG4gICAgICB2YXIgbGM7XG4gICAgICBpZiAoNDggPD0gYyAmJiBjIDw9IDU3KSB7XG4gICAgICAgIHJldHVybiBjIC0gNDg7XG4gICAgICB9XG4gICAgICBsYyA9IGMgfCAzMjtcbiAgICAgIGlmICg5NyA8PSBsYyAmJiBsYyA8PSAxMDIpIHtcbiAgICAgICAgcmV0dXJuIGxjIC0gOTcgKyAxMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7XG4gICAgICBpZiAoYyA9PT0gMTIwKSB7XG4gICAgICAgIHJldHVybiAyO1xuICAgICAgfVxuICAgICAgaWYgKGMgPT09IDExNykge1xuICAgICAgICByZXR1cm4gNDtcbiAgICAgIH1cbiAgICAgIGlmIChjID09PSA4NSkge1xuICAgICAgICByZXR1cm4gODtcbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykge1xuICAgICAgaWYgKDQ4IDw9IGMgJiYgYyA8PSA1Nykge1xuICAgICAgICByZXR1cm4gYyAtIDQ4O1xuICAgICAgfVxuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7XG4gICAgICByZXR1cm4gYyA9PT0gNDggPyBcIlxcMFwiIDogYyA9PT0gOTcgPyBcIlxceDA3XCIgOiBjID09PSA5OCA/IFwiXFxiXCIgOiBjID09PSAxMTYgPyBcIlx0XCIgOiBjID09PSA5ID8gXCJcdFwiIDogYyA9PT0gMTEwID8gXCJcXG5cIiA6IGMgPT09IDExOCA/IFwiXFx2XCIgOiBjID09PSAxMDIgPyBcIlxcZlwiIDogYyA9PT0gMTE0ID8gXCJcXHJcIiA6IGMgPT09IDEwMSA/IFwiXFx4MUJcIiA6IGMgPT09IDMyID8gXCIgXCIgOiBjID09PSAzNCA/ICdcIicgOiBjID09PSA0NyA/IFwiL1wiIDogYyA9PT0gOTIgPyBcIlxcXFxcIiA6IGMgPT09IDc4ID8gXCJcXHg4NVwiIDogYyA9PT0gOTUgPyBcIlxceEEwXCIgOiBjID09PSA3NiA/IFwiXFx1MjAyOFwiIDogYyA9PT0gODAgPyBcIlxcdTIwMjlcIiA6IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoYXJGcm9tQ29kZXBvaW50KGMpIHtcbiAgICAgIGlmIChjIDw9IDY1NTM1KSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoXG4gICAgICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsXG4gICAgICAgIChjIC0gNjU1MzYgJiAxMDIzKSArIDU2MzIwXG4gICAgICApO1xuICAgIH1cbiAgICB2YXIgc2ltcGxlRXNjYXBlQ2hlY2sgPSBuZXcgQXJyYXkoMjU2KTtcbiAgICB2YXIgc2ltcGxlRXNjYXBlTWFwID0gbmV3IEFycmF5KDI1Nik7XG4gICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7XG4gICAgICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gICAgICBzaW1wbGVFc2NhcGVNYXBbaV0gPSBzaW1wbGVFc2NhcGVTZXF1ZW5jZShpKTtcbiAgICB9XG4gICAgdmFyIGk7XG4gICAgZnVuY3Rpb24gU3RhdGUoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICAgIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zW1wiZmlsZW5hbWVcIl0gfHwgbnVsbDtcbiAgICAgIHRoaXMuc2NoZW1hID0gb3B0aW9uc1tcInNjaGVtYVwiXSB8fCBERUZBVUxUX1NDSEVNQTtcbiAgICAgIHRoaXMub25XYXJuaW5nID0gb3B0aW9uc1tcIm9uV2FybmluZ1wiXSB8fCBudWxsO1xuICAgICAgdGhpcy5sZWdhY3kgPSBvcHRpb25zW1wibGVnYWN5XCJdIHx8IGZhbHNlO1xuICAgICAgdGhpcy5qc29uID0gb3B0aW9uc1tcImpzb25cIl0gfHwgZmFsc2U7XG4gICAgICB0aGlzLmxpc3RlbmVyID0gb3B0aW9uc1tcImxpc3RlbmVyXCJdIHx8IG51bGw7XG4gICAgICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICAgICAgdGhpcy50eXBlTWFwID0gdGhpcy5zY2hlbWEuY29tcGlsZWRUeXBlTWFwO1xuICAgICAgdGhpcy5sZW5ndGggPSBpbnB1dC5sZW5ndGg7XG4gICAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgICAgIHRoaXMubGluZSA9IDA7XG4gICAgICB0aGlzLmxpbmVTdGFydCA9IDA7XG4gICAgICB0aGlzLmxpbmVJbmRlbnQgPSAwO1xuICAgICAgdGhpcy5maXJzdFRhYkluTGluZSA9IC0xO1xuICAgICAgdGhpcy5kb2N1bWVudHMgPSBbXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICAgICAgdmFyIG1hcmsgPSB7XG4gICAgICAgIG5hbWU6IHN0YXRlLmZpbGVuYW1lLFxuICAgICAgICBidWZmZXI6IHN0YXRlLmlucHV0LnNsaWNlKDAsIC0xKSxcbiAgICAgICAgLy8gb21pdCB0cmFpbGluZyBcXDBcbiAgICAgICAgcG9zaXRpb246IHN0YXRlLnBvc2l0aW9uLFxuICAgICAgICBsaW5lOiBzdGF0ZS5saW5lLFxuICAgICAgICBjb2x1bW46IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0XG4gICAgICB9O1xuICAgICAgbWFyay5zbmlwcGV0ID0gbWFrZVNuaXBwZXQobWFyayk7XG4gICAgICByZXR1cm4gbmV3IFlBTUxFeGNlcHRpb24obWVzc2FnZSwgbWFyayk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRocm93RXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHtcbiAgICAgIHRocm93IGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0aHJvd1dhcm5pbmcoc3RhdGUsIG1lc3NhZ2UpIHtcbiAgICAgIGlmIChzdGF0ZS5vbldhcm5pbmcpIHtcbiAgICAgICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7XG4gICAgICBZQU1MOiBmdW5jdGlvbiBoYW5kbGVZYW1sRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG4gICAgICAgIHZhciBtYXRjaCwgbWFqb3IsIG1pbm9yO1xuICAgICAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiWUFNTCBkaXJlY3RpdmUgYWNjZXB0cyBleGFjdGx5IG9uZSBhcmd1bWVudFwiKTtcbiAgICAgICAgfVxuICAgICAgICBtYXRjaCA9IC9eKFswLTldKylcXC4oWzAtOV0rKSQvLmV4ZWMoYXJnc1swXSk7XG4gICAgICAgIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiaWxsLWZvcm1lZCBhcmd1bWVudCBvZiB0aGUgWUFNTCBkaXJlY3RpdmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICAgICAgICBtaW5vciA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG4gICAgICAgIGlmIChtYWpvciAhPT0gMSkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnRcIik7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgICAgIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IG1pbm9yIDwgMjtcbiAgICAgICAgaWYgKG1pbm9yICE9PSAxICYmIG1pbm9yICE9PSAyKSB7XG4gICAgICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCBcInVuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnRcIik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBUQUc6IGZ1bmN0aW9uIGhhbmRsZVRhZ0RpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykge1xuICAgICAgICB2YXIgaGFuZGxlLCBwcmVmaXg7XG4gICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50c1wiKTtcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGUgPSBhcmdzWzBdO1xuICAgICAgICBwcmVmaXggPSBhcmdzWzFdO1xuICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGhlcmUgaXMgYSBwcmV2aW91c2x5IGRlY2xhcmVkIHN1ZmZpeCBmb3IgXCInICsgaGFuZGxlICsgJ1wiIHRhZyBoYW5kbGUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX1VSSS50ZXN0KHByZWZpeCkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImlsbC1mb3JtZWQgdGFnIHByZWZpeCAoc2Vjb25kIGFyZ3VtZW50KSBvZiB0aGUgVEFHIGRpcmVjdGl2ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHByZWZpeCA9IGRlY29kZVVSSUNvbXBvbmVudChwcmVmaXgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInRhZyBwcmVmaXggaXMgbWFsZm9ybWVkOiBcIiArIHByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUudGFnTWFwW2hhbmRsZV0gPSBwcmVmaXg7XG4gICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBjYXB0dXJlU2VnbWVudChzdGF0ZSwgc3RhcnQsIGVuZCwgY2hlY2tKc29uKSB7XG4gICAgICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuICAgICAgaWYgKHN0YXJ0IDwgZW5kKSB7XG4gICAgICAgIF9yZXN1bHQgPSBzdGF0ZS5pbnB1dC5zbGljZShzdGFydCwgZW5kKTtcbiAgICAgICAgaWYgKGNoZWNrSnNvbikge1xuICAgICAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoOyBfcG9zaXRpb24gPCBfbGVuZ3RoOyBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICAgICAgX2NoYXJhY3RlciA9IF9yZXN1bHQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuICAgICAgICAgICAgaWYgKCEoX2NoYXJhY3RlciA9PT0gOSB8fCAzMiA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMTExNDExMSkpIHtcbiAgICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoUEFUVEVSTl9OT05fUFJJTlRBQkxFLnRlc3QoX3Jlc3VsdCkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInRoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzXCIpO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHtcbiAgICAgIHZhciBzb3VyY2VLZXlzLCBrZXksIGluZGV4LCBxdWFudGl0eTtcbiAgICAgIGlmICghY29tbW9uLmlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJjYW5ub3QgbWVyZ2UgbWFwcGluZ3M7IHRoZSBwcm92aWRlZCBzb3VyY2Ugb2JqZWN0IGlzIHVuYWNjZXB0YWJsZVwiKTtcbiAgICAgIH1cbiAgICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICAgICAga2V5ID0gc291cmNlS2V5c1tpbmRleF07XG4gICAgICAgIGlmICghX2hhc093blByb3BlcnR5LmNhbGwoZGVzdGluYXRpb24sIGtleSkpIHtcbiAgICAgICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgb3ZlcnJpZGFibGVLZXlzW2tleV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUsIHN0YXJ0TGluZSwgc3RhcnRMaW5lU3RhcnQsIHN0YXJ0UG9zKSB7XG4gICAgICB2YXIgaW5kZXgsIHF1YW50aXR5O1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5Tm9kZSkpIHtcbiAgICAgICAga2V5Tm9kZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGtleU5vZGUpO1xuICAgICAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBrZXlOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGVbaW5kZXhdKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJuZXN0ZWQgYXJyYXlzIGFyZSBub3Qgc3VwcG9ydGVkIGluc2lkZSBrZXlzXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGtleU5vZGUgPT09IFwib2JqZWN0XCIgJiYgX2NsYXNzKGtleU5vZGVbaW5kZXhdKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIikge1xuICAgICAgICAgICAga2V5Tm9kZVtpbmRleF0gPSBcIltvYmplY3QgT2JqZWN0XVwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBrZXlOb2RlID09PSBcIm9iamVjdFwiICYmIF9jbGFzcyhrZXlOb2RlKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIikge1xuICAgICAgICBrZXlOb2RlID0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbiAgICAgIH1cbiAgICAgIGtleU5vZGUgPSBTdHJpbmcoa2V5Tm9kZSk7XG4gICAgICBpZiAoX3Jlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICBfcmVzdWx0ID0ge307XG4gICAgICB9XG4gICAgICBpZiAoa2V5VGFnID09PSBcInRhZzp5YW1sLm9yZywyMDAyOm1lcmdlXCIpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVOb2RlKSkge1xuICAgICAgICAgIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHZhbHVlTm9kZS5sZW5ndGg7IGluZGV4IDwgcXVhbnRpdHk7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFzdGF0ZS5qc29uICYmICFfaGFzT3duUHJvcGVydHkuY2FsbChvdmVycmlkYWJsZUtleXMsIGtleU5vZGUpICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKF9yZXN1bHQsIGtleU5vZGUpKSB7XG4gICAgICAgICAgc3RhdGUubGluZSA9IHN0YXJ0TGluZSB8fCBzdGF0ZS5saW5lO1xuICAgICAgICAgIHN0YXRlLmxpbmVTdGFydCA9IHN0YXJ0TGluZVN0YXJ0IHx8IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IHN0YXJ0UG9zIHx8IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZHVwbGljYXRlZCBtYXBwaW5nIGtleVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5Tm9kZSA9PT0gXCJfX3Byb3RvX19cIikge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfcmVzdWx0LCBrZXlOb2RlLCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWVOb2RlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3Jlc3VsdFtrZXlOb2RlXSA9IHZhbHVlTm9kZTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgb3ZlcnJpZGFibGVLZXlzW2tleU5vZGVdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIF9yZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRMaW5lQnJlYWsoc3RhdGUpIHtcbiAgICAgIHZhciBjaDtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBpZiAoY2ggPT09IDEwKSB7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICB9IGVsc2UgaWYgKGNoID09PSAxMykge1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDEwKSB7XG4gICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWRcIik7XG4gICAgICB9XG4gICAgICBzdGF0ZS5saW5lICs9IDE7XG4gICAgICBzdGF0ZS5saW5lU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gLTE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGFsbG93Q29tbWVudHMsIGNoZWNrSW5kZW50KSB7XG4gICAgICB2YXIgbGluZUJyZWFrcyA9IDAsIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZS5maXJzdFRhYkluTGluZSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dDb21tZW50cyAmJiBjaCA9PT0gMzUpIHtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgICAgfSB3aGlsZSAoY2ggIT09IDEwICYmIGNoICE9PSAxMyAmJiBjaCAhPT0gMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgICByZWFkTGluZUJyZWFrKHN0YXRlKTtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgIGxpbmVCcmVha3MrKztcbiAgICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDtcbiAgICAgICAgICB3aGlsZSAoY2ggPT09IDMyKSB7XG4gICAgICAgICAgICBzdGF0ZS5saW5lSW5kZW50Kys7XG4gICAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY2hlY2tJbmRlbnQgIT09IC0xICYmIGxpbmVCcmVha3MgIT09IDAgJiYgc3RhdGUubGluZUluZGVudCA8IGNoZWNrSW5kZW50KSB7XG4gICAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgXCJkZWZpY2llbnQgaW5kZW50YXRpb25cIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGluZUJyZWFrcztcbiAgICB9XG4gICAgZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSB7XG4gICAgICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sIGNoO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICBpZiAoKGNoID09PSA0NSB8fCBjaCA9PT0gNDYpICYmIGNoID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDEpICYmIGNoID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDIpKSB7XG4gICAgICAgIF9wb3NpdGlvbiArPSAzO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uKTtcbiAgICAgICAgaWYgKGNoID09PSAwIHx8IGlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBjb3VudCkge1xuICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBcIiBcIjtcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KFwiXFxuXCIsIGNvdW50IC0gMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRQbGFpblNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCwgd2l0aGluRmxvd0NvbGxlY3Rpb24pIHtcbiAgICAgIHZhciBwcmVjZWRpbmcsIGZvbGxvd2luZywgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBoYXNQZW5kaW5nQ29udGVudCwgX2xpbmUsIF9saW5lU3RhcnQsIF9saW5lSW5kZW50LCBfa2luZCA9IHN0YXRlLmtpbmQsIF9yZXN1bHQgPSBzdGF0ZS5yZXN1bHQsIGNoO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGlmIChpc19XU19PUl9FT0woY2gpIHx8IGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSB8fCBjaCA9PT0gMzUgfHwgY2ggPT09IDM4IHx8IGNoID09PSA0MiB8fCBjaCA9PT0gMzMgfHwgY2ggPT09IDEyNCB8fCBjaCA9PT0gNjIgfHwgY2ggPT09IDM5IHx8IGNoID09PSAzNCB8fCBjaCA9PT0gMzcgfHwgY2ggPT09IDY0IHx8IGNoID09PSA5Nikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoY2ggPT09IDYzIHx8IGNoID09PSA0NSkge1xuICAgICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdGF0ZS5raW5kID0gXCJzY2FsYXJcIjtcbiAgICAgIHN0YXRlLnJlc3VsdCA9IFwiXCI7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICAgICAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgICAgIGlmIChjaCA9PT0gNTgpIHtcbiAgICAgICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGZvbGxvd2luZykpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMzUpIHtcbiAgICAgICAgICBwcmVjZWRpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uIC0gMSk7XG4gICAgICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgICAgICAgX2xpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgICAgICBfbGluZUluZGVudCA9IHN0YXRlLmxpbmVJbmRlbnQ7XG4gICAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIC0xKTtcbiAgICAgICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+PSBub2RlSW5kZW50KSB7XG4gICAgICAgICAgICBoYXNQZW5kaW5nQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDtcbiAgICAgICAgICAgIHN0YXRlLmxpbmUgPSBfbGluZTtcbiAgICAgICAgICAgIHN0YXRlLmxpbmVTdGFydCA9IF9saW5lU3RhcnQ7XG4gICAgICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1BlbmRpbmdDb250ZW50KSB7XG4gICAgICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgZmFsc2UpO1xuICAgICAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7XG4gICAgICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb24gKyAxO1xuICAgICAgICB9XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcbiAgICAgIGlmIChzdGF0ZS5yZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBzdGF0ZS5raW5kID0gX2tpbmQ7XG4gICAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gICAgICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBpZiAoY2ggIT09IDM5KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHN0YXRlLmtpbmQgPSBcInNjYWxhclwiO1xuICAgICAgc3RhdGUucmVzdWx0ID0gXCJcIjtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7XG4gICAgICAgIGlmIChjaCA9PT0gMzkpIHtcbiAgICAgICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgIGlmIChjaCA9PT0gMzkpIHtcbiAgICAgICAgICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCB0cnVlKTtcbiAgICAgICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpO1xuICAgICAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhclwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gICAgICB2YXIgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBoZXhMZW5ndGgsIGhleFJlc3VsdCwgdG1wLCBjaDtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBpZiAoY2ggIT09IDM0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHN0YXRlLmtpbmQgPSBcInNjYWxhclwiO1xuICAgICAgc3RhdGUucmVzdWx0ID0gXCJcIjtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7XG4gICAgICAgIGlmIChjaCA9PT0gMzQpIHtcbiAgICAgICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gOTIpIHtcbiAgICAgICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjaCA8IDI1NiAmJiBzaW1wbGVFc2NhcGVDaGVja1tjaF0pIHtcbiAgICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdO1xuICAgICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgICB9IGVsc2UgaWYgKCh0bXAgPSBlc2NhcGVkSGV4TGVuKGNoKSkgPiAwKSB7XG4gICAgICAgICAgICBoZXhMZW5ndGggPSB0bXA7XG4gICAgICAgICAgICBoZXhSZXN1bHQgPSAwO1xuICAgICAgICAgICAgZm9yICg7IGhleExlbmd0aCA+IDA7IGhleExlbmd0aC0tKSB7XG4gICAgICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgaWYgKCh0bXAgPSBmcm9tSGV4Q29kZShjaCkpID49IDApIHtcbiAgICAgICAgICAgICAgICBoZXhSZXN1bHQgPSAoaGV4UmVzdWx0IDw8IDQpICsgdG1wO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY2hhckZyb21Db2RlcG9pbnQoaGV4UmVzdWx0KTtcbiAgICAgICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidW5rbm93biBlc2NhcGUgc2VxdWVuY2VcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZCwgdHJ1ZSk7XG4gICAgICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgZG9jdW1lbnQgd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXJcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhclwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gICAgICB2YXIgcmVhZE5leHQgPSB0cnVlLCBfbGluZSwgX2xpbmVTdGFydCwgX3BvcywgX3RhZyA9IHN0YXRlLnRhZywgX3Jlc3VsdCwgX2FuY2hvciA9IHN0YXRlLmFuY2hvciwgZm9sbG93aW5nLCB0ZXJtaW5hdG9yLCBpc1BhaXIsIGlzRXhwbGljaXRQYWlyLCBpc01hcHBpbmcsIG92ZXJyaWRhYmxlS2V5cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpLCBrZXlOb2RlLCBrZXlUYWcsIHZhbHVlTm9kZSwgY2g7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgaWYgKGNoID09PSA5MSkge1xuICAgICAgICB0ZXJtaW5hdG9yID0gOTM7XG4gICAgICAgIGlzTWFwcGluZyA9IGZhbHNlO1xuICAgICAgICBfcmVzdWx0ID0gW107XG4gICAgICB9IGVsc2UgaWYgKGNoID09PSAxMjMpIHtcbiAgICAgICAgdGVybWluYXRvciA9IDEyNTtcbiAgICAgICAgaXNNYXBwaW5nID0gdHJ1ZTtcbiAgICAgICAgX3Jlc3VsdCA9IHt9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gICAgICB9XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikge1xuICAgICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgICAgIHN0YXRlLmtpbmQgPSBpc01hcHBpbmcgPyBcIm1hcHBpbmdcIiA6IFwic2VxdWVuY2VcIjtcbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXNcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoY2ggPT09IDQ0KSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnXCIpO1xuICAgICAgICB9XG4gICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsO1xuICAgICAgICBpc1BhaXIgPSBpc0V4cGxpY2l0UGFpciA9IGZhbHNlO1xuICAgICAgICBpZiAoY2ggPT09IDYzKSB7XG4gICAgICAgICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuICAgICAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuICAgICAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICAgIF9wb3MgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfRkxPV19JTiwgZmFsc2UsIHRydWUpO1xuICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7XG4gICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBpZiAoKGlzRXhwbGljaXRQYWlyIHx8IHN0YXRlLmxpbmUgPT09IF9saW5lKSAmJiBjaCA9PT0gNTgpIHtcbiAgICAgICAgICBpc1BhaXIgPSB0cnVlO1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgICAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc01hcHBpbmcpIHtcbiAgICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQYWlyKSB7XG4gICAgICAgICAgX3Jlc3VsdC5wdXNoKHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIG51bGwsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUsIF9saW5lLCBfbGluZVN0YXJ0LCBfcG9zKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3Jlc3VsdC5wdXNoKGtleU5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBpZiAoY2ggPT09IDQ0KSB7XG4gICAgICAgICAgcmVhZE5leHQgPSB0cnVlO1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWFkTmV4dCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInVuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZmxvdyBjb2xsZWN0aW9uXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgICAgIHZhciBjYXB0dXJlU3RhcnQsIGZvbGRpbmcsIGNob21waW5nID0gQ0hPTVBJTkdfQ0xJUCwgZGlkUmVhZENvbnRlbnQgPSBmYWxzZSwgZGV0ZWN0ZWRJbmRlbnQgPSBmYWxzZSwgdGV4dEluZGVudCA9IG5vZGVJbmRlbnQsIGVtcHR5TGluZXMgPSAwLCBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlLCB0bXAsIGNoO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGlmIChjaCA9PT0gMTI0KSB7XG4gICAgICAgIGZvbGRpbmcgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoY2ggPT09IDYyKSB7XG4gICAgICAgIGZvbGRpbmcgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgc3RhdGUua2luZCA9IFwic2NhbGFyXCI7XG4gICAgICBzdGF0ZS5yZXN1bHQgPSBcIlwiO1xuICAgICAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgaWYgKGNoID09PSA0MyB8fCBjaCA9PT0gNDUpIHtcbiAgICAgICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgICAgIGNob21waW5nID0gY2ggPT09IDQzID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInJlcGVhdCBvZiBhIGNob21waW5nIG1vZGUgaWRlbnRpZmllclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGZyb21EZWNpbWFsQ29kZShjaCkpID49IDApIHtcbiAgICAgICAgICBpZiAodG1wID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmVcIik7XG4gICAgICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHtcbiAgICAgICAgICAgIHRleHRJbmRlbnQgPSBub2RlSW5kZW50ICsgdG1wIC0gMTtcbiAgICAgICAgICAgIGRldGVjdGVkSW5kZW50ID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfSB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKTtcbiAgICAgICAgaWYgKGNoID09PSAzNSkge1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdoaWxlIChjaCAhPT0gMCkge1xuICAgICAgICByZWFkTGluZUJyZWFrKHN0YXRlKTtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCA9IDA7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSAmJiBjaCA9PT0gMzIpIHtcbiAgICAgICAgICBzdGF0ZS5saW5lSW5kZW50Kys7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGV0ZWN0ZWRJbmRlbnQgJiYgc3RhdGUubGluZUluZGVudCA+IHRleHRJbmRlbnQpIHtcbiAgICAgICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgICAgIGVtcHR5TGluZXMrKztcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHtcbiAgICAgICAgICBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0tFRVApIHtcbiAgICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KFwiXFxuXCIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7XG4gICAgICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgc3RhdGUucmVzdWx0ICs9IFwiXFxuXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb2xkaW5nKSB7XG4gICAgICAgICAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlO1xuICAgICAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoXCJcXG5cIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXRNb3JlSW5kZW50ZWQpIHtcbiAgICAgICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7XG4gICAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIlxcblwiLCBlbXB0eUxpbmVzICsgMSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlbXB0eUxpbmVzID09PSAwKSB7XG4gICAgICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgc3RhdGUucmVzdWx0ICs9IFwiIFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdChcIlxcblwiLCBlbXB0eUxpbmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoXCJcXG5cIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpO1xuICAgICAgICB9XG4gICAgICAgIGRpZFJlYWRDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgICAgICBlbXB0eUxpbmVzID0gMDtcbiAgICAgICAgY2FwdHVyZVN0YXJ0ID0gc3RhdGUucG9zaXRpb247XG4gICAgICAgIHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgZmFsc2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gICAgICB2YXIgX2xpbmUsIF90YWcgPSBzdGF0ZS50YWcsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIF9yZXN1bHQgPSBbXSwgZm9sbG93aW5nLCBkZXRlY3RlZCA9IGZhbHNlLCBjaDtcbiAgICAgIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBfcmVzdWx0O1xuICAgICAgfVxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIHdoaWxlIChjaCAhPT0gMCkge1xuICAgICAgICBpZiAoc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7XG4gICAgICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoICE9PSA0NSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcbiAgICAgICAgaWYgKCFpc19XU19PUl9FT0woZm9sbG93aW5nKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRldGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50IDw9IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgICAgIF9yZXN1bHQucHVzaChudWxsKTtcbiAgICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpO1xuICAgICAgICBfcmVzdWx0LnB1c2goc3RhdGUucmVzdWx0KTtcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBpZiAoKHN0YXRlLmxpbmUgPT09IF9saW5lIHx8IHN0YXRlLmxpbmVJbmRlbnQgPiBub2RlSW5kZW50KSAmJiBjaCAhPT0gMCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiYmFkIGluZGVudGF0aW9uIG9mIGEgc2VxdWVuY2UgZW50cnlcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGRldGVjdGVkKSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHN0YXRlLmtpbmQgPSBcInNlcXVlbmNlXCI7XG4gICAgICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7XG4gICAgICB2YXIgZm9sbG93aW5nLCBhbGxvd0NvbXBhY3QsIF9saW5lLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcywgX3RhZyA9IHN0YXRlLnRhZywgX2FuY2hvciA9IHN0YXRlLmFuY2hvciwgX3Jlc3VsdCA9IHt9LCBvdmVycmlkYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKSwga2V5VGFnID0gbnVsbCwga2V5Tm9kZSA9IG51bGwsIHZhbHVlTm9kZSA9IG51bGwsIGF0RXhwbGljaXRLZXkgPSBmYWxzZSwgZGV0ZWN0ZWQgPSBmYWxzZSwgY2g7XG4gICAgICBpZiAoc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgICAgIH1cbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB3aGlsZSAoY2ggIT09IDApIHtcbiAgICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5ICYmIHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkge1xuICAgICAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhdGUuZmlyc3RUYWJJbkxpbmU7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcbiAgICAgICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgICBpZiAoKGNoID09PSA2MyB8fCBjaCA9PT0gNTgpICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICAgICAgaWYgKGNoID09PSA2Mykge1xuICAgICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTtcbiAgICAgICAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICBhdEV4cGxpY2l0S2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICBhdEV4cGxpY2l0S2V5ID0gZmFsc2U7XG4gICAgICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmVcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gICAgICAgICAgY2ggPSBmb2xsb3dpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX2tleUxpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgICAgIF9rZXlMaW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICAgICAgX2tleVBvcyA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICAgIGlmICghY29tcG9zZU5vZGUoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19PVVQsIGZhbHNlLCB0cnVlKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSkge1xuICAgICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNoID09PSA1OCkge1xuICAgICAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgICAgICAgIGlmICghaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTtcbiAgICAgICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgIGF0RXhwbGljaXRLZXkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICAgICAgICAgICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5XCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgICAgX2tleUxpbmUgPSBzdGF0ZS5saW5lO1xuICAgICAgICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDtcbiAgICAgICAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0JMT0NLX09VVCwgdHJ1ZSwgYWxsb3dDb21wYWN0KSkge1xuICAgICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7XG4gICAgICAgICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7XG4gICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImJhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnlcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTtcbiAgICAgIH1cbiAgICAgIGlmIChkZXRlY3RlZCkge1xuICAgICAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgICAgICBzdGF0ZS5raW5kID0gXCJtYXBwaW5nXCI7XG4gICAgICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGV0ZWN0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkge1xuICAgICAgdmFyIF9wb3NpdGlvbiwgaXNWZXJiYXRpbSA9IGZhbHNlLCBpc05hbWVkID0gZmFsc2UsIHRhZ0hhbmRsZSwgdGFnTmFtZSwgY2g7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgaWYgKGNoICE9PSAzMylcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5XCIpO1xuICAgICAgfVxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgaWYgKGNoID09PSA2MCkge1xuICAgICAgICBpc1ZlcmJhdGltID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMzMpIHtcbiAgICAgICAgaXNOYW1lZCA9IHRydWU7XG4gICAgICAgIHRhZ0hhbmRsZSA9IFwiISFcIjtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFnSGFuZGxlID0gXCIhXCI7XG4gICAgICB9XG4gICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIGlmIChpc1ZlcmJhdGltKSB7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSA2Mik7XG4gICAgICAgIGlmIChzdGF0ZS5wb3NpdGlvbiA8IHN0YXRlLmxlbmd0aCkge1xuICAgICAgICAgIHRhZ05hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZ1wiKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgaWYgKGNoID09PSAzMykge1xuICAgICAgICAgICAgaWYgKCFpc05hbWVkKSB7XG4gICAgICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7XG4gICAgICAgICAgICAgIGlmICghUEFUVEVSTl9UQUdfSEFORExFLnRlc3QodGFnSGFuZGxlKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwibmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnNcIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaXNOYW1lZCA9IHRydWU7XG4gICAgICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidGFnIHN1ZmZpeCBjYW5ub3QgY29udGFpbiBleGNsYW1hdGlvbiBtYXJrc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHRhZ05hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVyc1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRhZ05hbWUgJiYgIVBBVFRFUk5fVEFHX1VSSS50ZXN0KHRhZ05hbWUpKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiBcIiArIHRhZ05hbWUpO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgdGFnTmFtZSA9IGRlY29kZVVSSUNvbXBvbmVudCh0YWdOYW1lKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcInRhZyBuYW1lIGlzIG1hbGZvcm1lZDogXCIgKyB0YWdOYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1ZlcmJhdGltKSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IHRhZ05hbWU7XG4gICAgICB9IGVsc2UgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLnRhZ01hcCwgdGFnSGFuZGxlKSkge1xuICAgICAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG4gICAgICB9IGVsc2UgaWYgKHRhZ0hhbmRsZSA9PT0gXCIhXCIpIHtcbiAgICAgICAgc3RhdGUudGFnID0gXCIhXCIgKyB0YWdOYW1lO1xuICAgICAgfSBlbHNlIGlmICh0YWdIYW5kbGUgPT09IFwiISFcIikge1xuICAgICAgICBzdGF0ZS50YWcgPSBcInRhZzp5YW1sLm9yZywyMDAyOlwiICsgdGFnTmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgXCInICsgdGFnSGFuZGxlICsgJ1wiJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSB7XG4gICAgICB2YXIgX3Bvc2l0aW9uLCBjaDtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBpZiAoY2ggIT09IDM4KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5XCIpO1xuICAgICAgfVxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG4gICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXJcIik7XG4gICAgICB9XG4gICAgICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQWxpYXMoc3RhdGUpIHtcbiAgICAgIHZhciBfcG9zaXRpb24sIGFsaWFzLCBjaDtcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBpZiAoY2ggIT09IDQyKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSAmJiAhaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gX3Bvc2l0aW9uKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwibmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyXCIpO1xuICAgICAgfVxuICAgICAgYWxpYXMgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgIGlmICghX2hhc093blByb3BlcnR5LmNhbGwoc3RhdGUuYW5jaG9yTWFwLCBhbGlhcykpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyBcIicgKyBhbGlhcyArICdcIicpO1xuICAgICAgfVxuICAgICAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wb3NlTm9kZShzdGF0ZSwgcGFyZW50SW5kZW50LCBub2RlQ29udGV4dCwgYWxsb3dUb1NlZWssIGFsbG93Q29tcGFjdCkge1xuICAgICAgdmFyIGFsbG93QmxvY2tTdHlsZXMsIGFsbG93QmxvY2tTY2FsYXJzLCBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMsIGluZGVudFN0YXR1cyA9IDEsIGF0TmV3TGluZSA9IGZhbHNlLCBoYXNDb250ZW50ID0gZmFsc2UsIHR5cGVJbmRleCwgdHlwZVF1YW50aXR5LCB0eXBlTGlzdCwgdHlwZSwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7XG4gICAgICBpZiAoc3RhdGUubGlzdGVuZXIgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGUubGlzdGVuZXIoXCJvcGVuXCIsIHN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHN0YXRlLnRhZyA9IG51bGw7XG4gICAgICBzdGF0ZS5hbmNob3IgPSBudWxsO1xuICAgICAgc3RhdGUua2luZCA9IG51bGw7XG4gICAgICBzdGF0ZS5yZXN1bHQgPSBudWxsO1xuICAgICAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfQkxPQ0tfSU4gPT09IG5vZGVDb250ZXh0O1xuICAgICAgaWYgKGFsbG93VG9TZWVrKSB7XG4gICAgICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5kZW50U3RhdHVzID09PSAxKSB7XG4gICAgICAgIHdoaWxlIChyZWFkVGFnUHJvcGVydHkoc3RhdGUpIHx8IHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkpIHtcbiAgICAgICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICAgICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gYWxsb3dCbG9ja1N0eWxlcztcbiAgICAgICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgICAgIGluZGVudFN0YXR1cyA9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPT09IHBhcmVudEluZGVudCkge1xuICAgICAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgICAgIGluZGVudFN0YXR1cyA9IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gYXROZXdMaW5lIHx8IGFsbG93Q29tcGFjdDtcbiAgICAgIH1cbiAgICAgIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgICAgIGlmIChDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfRkxPV19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50ICsgMTtcbiAgICAgICAgfVxuICAgICAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0O1xuICAgICAgICBpZiAoaW5kZW50U3RhdHVzID09PSAxKSB7XG4gICAgICAgICAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiAocmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KSB8fCByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBibG9ja0luZGVudCwgZmxvd0luZGVudCkpIHx8IHJlYWRGbG93Q29sbGVjdGlvbihzdGF0ZSwgZmxvd0luZGVudCkpIHtcbiAgICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoYWxsb3dCbG9ja1NjYWxhcnMgJiYgcmVhZEJsb2NrU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSB8fCByZWFkU2luZ2xlUXVvdGVkU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSB8fCByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50KSkge1xuICAgICAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVhZEFsaWFzKHN0YXRlKSkge1xuICAgICAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzXCIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlYWRQbGFpblNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCkpIHtcbiAgICAgICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG4gICAgICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS50YWcgPSBcIj9cIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3RhdGUudGFnID09PSBudWxsKSB7XG4gICAgICAgIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzdGF0ZS50YWcgPT09IFwiP1wiKSB7XG4gICAgICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgc3RhdGUua2luZCAhPT0gXCJzY2FsYXJcIikge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlIFwic2NhbGFyXCIsIG5vdCBcIicgKyBzdGF0ZS5raW5kICsgJ1wiJyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh0eXBlSW5kZXggPSAwLCB0eXBlUXVhbnRpdHkgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgICAgIHR5cGUgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07XG4gICAgICAgICAgaWYgKHR5cGUucmVzb2x2ZShzdGF0ZS5yZXN1bHQpKSB7XG4gICAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICAgICAgc3RhdGUudGFnID0gdHlwZS50YWc7XG4gICAgICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLnRhZyAhPT0gXCIhXCIpIHtcbiAgICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLnR5cGVNYXBbc3RhdGUua2luZCB8fCBcImZhbGxiYWNrXCJdLCBzdGF0ZS50YWcpKSB7XG4gICAgICAgICAgdHlwZSA9IHN0YXRlLnR5cGVNYXBbc3RhdGUua2luZCB8fCBcImZhbGxiYWNrXCJdW3N0YXRlLnRhZ107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHlwZSA9IG51bGw7XG4gICAgICAgICAgdHlwZUxpc3QgPSBzdGF0ZS50eXBlTWFwLm11bHRpW3N0YXRlLmtpbmQgfHwgXCJmYWxsYmFja1wiXTtcbiAgICAgICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkge1xuICAgICAgICAgICAgaWYgKHN0YXRlLnRhZy5zbGljZSgwLCB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZy5sZW5ndGgpID09PSB0eXBlTGlzdFt0eXBlSW5kZXhdLnRhZykge1xuICAgICAgICAgICAgICB0eXBlID0gdHlwZUxpc3RbdHlwZUluZGV4XTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZSkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidW5rbm93biB0YWcgITxcIiArIHN0YXRlLnRhZyArIFwiPlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHR5cGUua2luZCAhPT0gc3RhdGUua2luZCkge1xuICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITxcIiArIHN0YXRlLnRhZyArICc+IHRhZzsgaXQgc2hvdWxkIGJlIFwiJyArIHR5cGUua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGUucmVzb2x2ZShzdGF0ZS5yZXN1bHQsIHN0YXRlLnRhZykpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImNhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8XCIgKyBzdGF0ZS50YWcgKyBcIj4gZXhwbGljaXQgdGFnXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnJlc3VsdCA9IHR5cGUuY29uc3RydWN0KHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKTtcbiAgICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5saXN0ZW5lciAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZS5saXN0ZW5lcihcImNsb3NlXCIsIHN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWREb2N1bWVudChzdGF0ZSkge1xuICAgICAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbiwgX3Bvc2l0aW9uLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzLCBoYXNEaXJlY3RpdmVzID0gZmFsc2UsIGNoO1xuICAgICAgc3RhdGUudmVyc2lvbiA9IG51bGw7XG4gICAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBzdGF0ZS5sZWdhY3k7XG4gICAgICBzdGF0ZS50YWdNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHN0YXRlLmFuY2hvck1hcCA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkge1xuICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gMCB8fCBjaCAhPT0gMzcpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBoYXNEaXJlY3RpdmVzID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICAgICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgZGlyZWN0aXZlQXJncyA9IFtdO1xuICAgICAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJkaXJlY3RpdmUgbmFtZSBtdXN0IG5vdCBiZSBsZXNzIHRoYW4gb25lIGNoYXJhY3RlciBpbiBsZW5ndGhcIik7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGNoICE9PSAwKSB7XG4gICAgICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2ggPT09IDM1KSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNfRU9MKGNoKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICAgIHdoaWxlIChjaCAhPT0gMCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkaXJlY3RpdmVBcmdzLnB1c2goc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaCAhPT0gMClcbiAgICAgICAgICByZWFkTGluZUJyZWFrKHN0YXRlKTtcbiAgICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRpcmVjdGl2ZUhhbmRsZXJzLCBkaXJlY3RpdmVOYW1lKSkge1xuICAgICAgICAgIGRpcmVjdGl2ZUhhbmRsZXJzW2RpcmVjdGl2ZU5hbWVdKHN0YXRlLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSBcIicgKyBkaXJlY3RpdmVOYW1lICsgJ1wiJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSAwICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSA0NSAmJiBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gNDUpIHtcbiAgICAgICAgc3RhdGUucG9zaXRpb24gKz0gMztcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgfSBlbHNlIGlmIChoYXNEaXJlY3RpdmVzKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsIFwiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZFwiKTtcbiAgICAgIH1cbiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBzdGF0ZS5saW5lSW5kZW50IC0gMSwgQ09OVEVYVF9CTE9DS19PVVQsIGZhbHNlLCB0cnVlKTtcbiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgICAgIGlmIChzdGF0ZS5jaGVja0xpbmVCcmVha3MgJiYgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgXCJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnRcIik7XG4gICAgICB9XG4gICAgICBzdGF0ZS5kb2N1bWVudHMucHVzaChzdGF0ZS5yZXN1bHQpO1xuICAgICAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuICAgICAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDQ2KSB7XG4gICAgICAgICAgc3RhdGUucG9zaXRpb24gKz0gMztcbiAgICAgICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoIC0gMSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCBcImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKSB7XG4gICAgICBpbnB1dCA9IFN0cmluZyhpbnB1dCk7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChpbnB1dC5sZW5ndGggIT09IDApIHtcbiAgICAgICAgaWYgKGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkgIT09IDEwICYmIGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkgIT09IDEzKSB7XG4gICAgICAgICAgaW5wdXQgKz0gXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuY2hhckNvZGVBdCgwKSA9PT0gNjUyNzkpIHtcbiAgICAgICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUoaW5wdXQsIG9wdGlvbnMpO1xuICAgICAgdmFyIG51bGxwb3MgPSBpbnB1dC5pbmRleE9mKFwiXFwwXCIpO1xuICAgICAgaWYgKG51bGxwb3MgIT09IC0xKSB7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uID0gbnVsbHBvcztcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgXCJudWxsIGJ5dGUgaXMgbm90IGFsbG93ZWQgaW4gaW5wdXRcIik7XG4gICAgICB9XG4gICAgICBzdGF0ZS5pbnB1dCArPSBcIlxcMFwiO1xuICAgICAgd2hpbGUgKHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSAzMikge1xuICAgICAgICBzdGF0ZS5saW5lSW5kZW50ICs9IDE7XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7XG4gICAgICB9XG4gICAgICB3aGlsZSAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJlYWREb2N1bWVudChzdGF0ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGUuZG9jdW1lbnRzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2FkQWxsKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykge1xuICAgICAgaWYgKGl0ZXJhdG9yICE9PSBudWxsICYmIHR5cGVvZiBpdGVyYXRvciA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb3B0aW9ucyA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBvcHRpb25zID0gaXRlcmF0b3I7XG4gICAgICAgIGl0ZXJhdG9yID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKTtcbiAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3IgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnRzO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICBpdGVyYXRvcihkb2N1bWVudHNbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbG9hZChpbnB1dCwgb3B0aW9ucykge1xuICAgICAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpO1xuICAgICAgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnRzWzBdO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCJleHBlY3RlZCBhIHNpbmdsZSBkb2N1bWVudCBpbiB0aGUgc3RyZWFtLCBidXQgZm91bmQgbW9yZVwiKTtcbiAgICB9XG4gICAgbW9kdWxlLmV4cG9ydHMubG9hZEFsbCA9IGxvYWRBbGw7XG4gICAgbW9kdWxlLmV4cG9ydHMubG9hZCA9IGxvYWQ7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvanMteWFtbC9saWIvZHVtcGVyLmpzXG52YXIgcmVxdWlyZV9kdW1wZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvZHVtcGVyLmpzXCIoZXhwb3J0cywgbW9kdWxlKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIGNvbW1vbiA9IHJlcXVpcmVfY29tbW9uKCk7XG4gICAgdmFyIFlBTUxFeGNlcHRpb24gPSByZXF1aXJlX2V4Y2VwdGlvbigpO1xuICAgIHZhciBERUZBVUxUX1NDSEVNQSA9IHJlcXVpcmVfZGVmYXVsdCgpO1xuICAgIHZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuICAgIHZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICAgIHZhciBDSEFSX0JPTSA9IDY1Mjc5O1xuICAgIHZhciBDSEFSX1RBQiA9IDk7XG4gICAgdmFyIENIQVJfTElORV9GRUVEID0gMTA7XG4gICAgdmFyIENIQVJfQ0FSUklBR0VfUkVUVVJOID0gMTM7XG4gICAgdmFyIENIQVJfU1BBQ0UgPSAzMjtcbiAgICB2YXIgQ0hBUl9FWENMQU1BVElPTiA9IDMzO1xuICAgIHZhciBDSEFSX0RPVUJMRV9RVU9URSA9IDM0O1xuICAgIHZhciBDSEFSX1NIQVJQID0gMzU7XG4gICAgdmFyIENIQVJfUEVSQ0VOVCA9IDM3O1xuICAgIHZhciBDSEFSX0FNUEVSU0FORCA9IDM4O1xuICAgIHZhciBDSEFSX1NJTkdMRV9RVU9URSA9IDM5O1xuICAgIHZhciBDSEFSX0FTVEVSSVNLID0gNDI7XG4gICAgdmFyIENIQVJfQ09NTUEgPSA0NDtcbiAgICB2YXIgQ0hBUl9NSU5VUyA9IDQ1O1xuICAgIHZhciBDSEFSX0NPTE9OID0gNTg7XG4gICAgdmFyIENIQVJfRVFVQUxTID0gNjE7XG4gICAgdmFyIENIQVJfR1JFQVRFUl9USEFOID0gNjI7XG4gICAgdmFyIENIQVJfUVVFU1RJT04gPSA2MztcbiAgICB2YXIgQ0hBUl9DT01NRVJDSUFMX0FUID0gNjQ7XG4gICAgdmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDkxO1xuICAgIHZhciBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUID0gOTM7XG4gICAgdmFyIENIQVJfR1JBVkVfQUNDRU5UID0gOTY7XG4gICAgdmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUID0gMTIzO1xuICAgIHZhciBDSEFSX1ZFUlRJQ0FMX0xJTkUgPSAxMjQ7XG4gICAgdmFyIENIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCA9IDEyNTtcbiAgICB2YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9O1xuICAgIEVTQ0FQRV9TRVFVRU5DRVNbMF0gPSBcIlxcXFwwXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1s3XSA9IFwiXFxcXGFcIjtcbiAgICBFU0NBUEVfU0VRVUVOQ0VTWzhdID0gXCJcXFxcYlwiO1xuICAgIEVTQ0FQRV9TRVFVRU5DRVNbOV0gPSBcIlxcXFx0XCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1sxMF0gPSBcIlxcXFxuXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1sxMV0gPSBcIlxcXFx2XCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1sxMl0gPSBcIlxcXFxmXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1sxM10gPSBcIlxcXFxyXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1syN10gPSBcIlxcXFxlXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1szNF0gPSAnXFxcXFwiJztcbiAgICBFU0NBUEVfU0VRVUVOQ0VTWzkyXSA9IFwiXFxcXFxcXFxcIjtcbiAgICBFU0NBUEVfU0VRVUVOQ0VTWzEzM10gPSBcIlxcXFxOXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1sxNjBdID0gXCJcXFxcX1wiO1xuICAgIEVTQ0FQRV9TRVFVRU5DRVNbODIzMl0gPSBcIlxcXFxMXCI7XG4gICAgRVNDQVBFX1NFUVVFTkNFU1s4MjMzXSA9IFwiXFxcXFBcIjtcbiAgICB2YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbXG4gICAgICBcInlcIixcbiAgICAgIFwiWVwiLFxuICAgICAgXCJ5ZXNcIixcbiAgICAgIFwiWWVzXCIsXG4gICAgICBcIllFU1wiLFxuICAgICAgXCJvblwiLFxuICAgICAgXCJPblwiLFxuICAgICAgXCJPTlwiLFxuICAgICAgXCJuXCIsXG4gICAgICBcIk5cIixcbiAgICAgIFwibm9cIixcbiAgICAgIFwiTm9cIixcbiAgICAgIFwiTk9cIixcbiAgICAgIFwib2ZmXCIsXG4gICAgICBcIk9mZlwiLFxuICAgICAgXCJPRkZcIlxuICAgIF07XG4gICAgdmFyIERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWCA9IC9eWy0rXT9bMC05X10rKD86OlswLTlfXSspKyg/OlxcLlswLTlfXSopPyQvO1xuICAgIGZ1bmN0aW9uIGNvbXBpbGVTdHlsZU1hcChzY2hlbWEsIG1hcCkge1xuICAgICAgdmFyIHJlc3VsdCwga2V5cywgaW5kZXgsIGxlbmd0aCwgdGFnLCBzdHlsZSwgdHlwZTtcbiAgICAgIGlmIChtYXAgPT09IG51bGwpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIHJlc3VsdCA9IHt9O1xuICAgICAga2V5cyA9IE9iamVjdC5rZXlzKG1hcCk7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHRhZyA9IGtleXNbaW5kZXhdO1xuICAgICAgICBzdHlsZSA9IFN0cmluZyhtYXBbdGFnXSk7XG4gICAgICAgIGlmICh0YWcuc2xpY2UoMCwgMikgPT09IFwiISFcIikge1xuICAgICAgICAgIHRhZyA9IFwidGFnOnlhbWwub3JnLDIwMDI6XCIgKyB0YWcuc2xpY2UoMik7XG4gICAgICAgIH1cbiAgICAgICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbXCJmYWxsYmFja1wiXVt0YWddO1xuICAgICAgICBpZiAodHlwZSAmJiBfaGFzT3duUHJvcGVydHkuY2FsbCh0eXBlLnN0eWxlQWxpYXNlcywgc3R5bGUpKSB7XG4gICAgICAgICAgc3R5bGUgPSB0eXBlLnN0eWxlQWxpYXNlc1tzdHlsZV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0W3RhZ10gPSBzdHlsZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuY29kZUhleChjaGFyYWN0ZXIpIHtcbiAgICAgIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuICAgICAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICAgICAgaWYgKGNoYXJhY3RlciA8PSAyNTUpIHtcbiAgICAgICAgaGFuZGxlID0gXCJ4XCI7XG4gICAgICAgIGxlbmd0aCA9IDI7XG4gICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA8PSA2NTUzNSkge1xuICAgICAgICBoYW5kbGUgPSBcInVcIjtcbiAgICAgICAgbGVuZ3RoID0gNDtcbiAgICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDQyOTQ5NjcyOTUpIHtcbiAgICAgICAgaGFuZGxlID0gXCJVXCI7XG4gICAgICAgIGxlbmd0aCA9IDg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbihcImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkZcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gXCJcXFxcXCIgKyBoYW5kbGUgKyBjb21tb24ucmVwZWF0KFwiMFwiLCBsZW5ndGggLSBzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbiAgICB9XG4gICAgdmFyIFFVT1RJTkdfVFlQRV9TSU5HTEUgPSAxO1xuICAgIHZhciBRVU9USU5HX1RZUEVfRE9VQkxFID0gMjtcbiAgICBmdW5jdGlvbiBTdGF0ZShvcHRpb25zKSB7XG4gICAgICB0aGlzLnNjaGVtYSA9IG9wdGlvbnNbXCJzY2hlbWFcIl0gfHwgREVGQVVMVF9TQ0hFTUE7XG4gICAgICB0aGlzLmluZGVudCA9IE1hdGgubWF4KDEsIG9wdGlvbnNbXCJpbmRlbnRcIl0gfHwgMik7XG4gICAgICB0aGlzLm5vQXJyYXlJbmRlbnQgPSBvcHRpb25zW1wibm9BcnJheUluZGVudFwiXSB8fCBmYWxzZTtcbiAgICAgIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zW1wic2tpcEludmFsaWRcIl0gfHwgZmFsc2U7XG4gICAgICB0aGlzLmZsb3dMZXZlbCA9IGNvbW1vbi5pc05vdGhpbmcob3B0aW9uc1tcImZsb3dMZXZlbFwiXSkgPyAtMSA6IG9wdGlvbnNbXCJmbG93TGV2ZWxcIl07XG4gICAgICB0aGlzLnN0eWxlTWFwID0gY29tcGlsZVN0eWxlTWFwKHRoaXMuc2NoZW1hLCBvcHRpb25zW1wic3R5bGVzXCJdIHx8IG51bGwpO1xuICAgICAgdGhpcy5zb3J0S2V5cyA9IG9wdGlvbnNbXCJzb3J0S2V5c1wiXSB8fCBmYWxzZTtcbiAgICAgIHRoaXMubGluZVdpZHRoID0gb3B0aW9uc1tcImxpbmVXaWR0aFwiXSB8fCA4MDtcbiAgICAgIHRoaXMubm9SZWZzID0gb3B0aW9uc1tcIm5vUmVmc1wiXSB8fCBmYWxzZTtcbiAgICAgIHRoaXMubm9Db21wYXRNb2RlID0gb3B0aW9uc1tcIm5vQ29tcGF0TW9kZVwiXSB8fCBmYWxzZTtcbiAgICAgIHRoaXMuY29uZGVuc2VGbG93ID0gb3B0aW9uc1tcImNvbmRlbnNlRmxvd1wiXSB8fCBmYWxzZTtcbiAgICAgIHRoaXMucXVvdGluZ1R5cGUgPSBvcHRpb25zW1wicXVvdGluZ1R5cGVcIl0gPT09ICdcIicgPyBRVU9USU5HX1RZUEVfRE9VQkxFIDogUVVPVElOR19UWVBFX1NJTkdMRTtcbiAgICAgIHRoaXMuZm9yY2VRdW90ZXMgPSBvcHRpb25zW1wiZm9yY2VRdW90ZXNcIl0gfHwgZmFsc2U7XG4gICAgICB0aGlzLnJlcGxhY2VyID0gdHlwZW9mIG9wdGlvbnNbXCJyZXBsYWNlclwiXSA9PT0gXCJmdW5jdGlvblwiID8gb3B0aW9uc1tcInJlcGxhY2VyXCJdIDogbnVsbDtcbiAgICAgIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7XG4gICAgICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuICAgICAgdGhpcy50YWcgPSBudWxsO1xuICAgICAgdGhpcy5yZXN1bHQgPSBcIlwiO1xuICAgICAgdGhpcy5kdXBsaWNhdGVzID0gW107XG4gICAgICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5kZW50U3RyaW5nKHN0cmluZywgc3BhY2VzKSB7XG4gICAgICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdChcIiBcIiwgc3BhY2VzKSwgcG9zaXRpb24gPSAwLCBuZXh0ID0gLTEsIHJlc3VsdCA9IFwiXCIsIGxpbmUsIGxlbmd0aCA9IHN0cmluZy5sZW5ndGg7XG4gICAgICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHtcbiAgICAgICAgbmV4dCA9IHN0cmluZy5pbmRleE9mKFwiXFxuXCIsIHBvc2l0aW9uKTtcbiAgICAgICAgaWYgKG5leHQgPT09IC0xKSB7XG4gICAgICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7XG4gICAgICAgICAgcG9zaXRpb24gPSBsZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpO1xuICAgICAgICAgIHBvc2l0aW9uID0gbmV4dCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09IFwiXFxuXCIpXG4gICAgICAgICAgcmVzdWx0ICs9IGluZDtcbiAgICAgICAgcmVzdWx0ICs9IGxpbmU7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCkge1xuICAgICAgcmV0dXJuIFwiXFxuXCIgKyBjb21tb24ucmVwZWF0KFwiIFwiLCBzdGF0ZS5pbmRlbnQgKiBsZXZlbCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyKSB7XG4gICAgICB2YXIgaW5kZXgsIGxlbmd0aCwgdHlwZTtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgdHlwZSA9IHN0YXRlLmltcGxpY2l0VHlwZXNbaW5kZXhdO1xuICAgICAgICBpZiAodHlwZS5yZXNvbHZlKHN0cikpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1doaXRlc3BhY2UoYykge1xuICAgICAgcmV0dXJuIGMgPT09IENIQVJfU1BBQ0UgfHwgYyA9PT0gQ0hBUl9UQUI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzUHJpbnRhYmxlKGMpIHtcbiAgICAgIHJldHVybiAzMiA8PSBjICYmIGMgPD0gMTI2IHx8IDE2MSA8PSBjICYmIGMgPD0gNTUyOTUgJiYgYyAhPT0gODIzMiAmJiBjICE9PSA4MjMzIHx8IDU3MzQ0IDw9IGMgJiYgYyA8PSA2NTUzMyAmJiBjICE9PSBDSEFSX0JPTSB8fCA2NTUzNiA8PSBjICYmIGMgPD0gMTExNDExMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNOc0NoYXJPcldoaXRlc3BhY2UoYykge1xuICAgICAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmIGMgIT09IENIQVJfQk9NICYmIGMgIT09IENIQVJfQ0FSUklBR0VfUkVUVVJOICYmIGMgIT09IENIQVJfTElORV9GRUVEO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1BsYWluU2FmZShjLCBwcmV2LCBpbmJsb2NrKSB7XG4gICAgICB2YXIgY0lzTnNDaGFyT3JXaGl0ZXNwYWNlID0gaXNOc0NoYXJPcldoaXRlc3BhY2UoYyk7XG4gICAgICB2YXIgY0lzTnNDaGFyID0gY0lzTnNDaGFyT3JXaGl0ZXNwYWNlICYmICFpc1doaXRlc3BhY2UoYyk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAvLyBucy1wbGFpbi1zYWZlXG4gICAgICAgIChpbmJsb2NrID8gKFxuICAgICAgICAgIC8vIGMgPSBmbG93LWluXG4gICAgICAgICAgY0lzTnNDaGFyT3JXaGl0ZXNwYWNlXG4gICAgICAgICkgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2UgJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQpICYmIGMgIT09IENIQVJfU0hBUlAgJiYgIShwcmV2ID09PSBDSEFSX0NPTE9OICYmICFjSXNOc0NoYXIpIHx8IGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHByZXYpICYmICFpc1doaXRlc3BhY2UocHJldikgJiYgYyA9PT0gQ0hBUl9TSEFSUCB8fCBwcmV2ID09PSBDSEFSX0NPTE9OICYmIGNJc05zQ2hhclxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChjKSB7XG4gICAgICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT00gJiYgIWlzV2hpdGVzcGFjZShjKSAmJiBjICE9PSBDSEFSX01JTlVTICYmIGMgIT09IENIQVJfUVVFU1RJT04gJiYgYyAhPT0gQ0hBUl9DT0xPTiAmJiBjICE9PSBDSEFSX0NPTU1BICYmIGMgIT09IENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUICYmIGMgIT09IENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICYmIGMgIT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1NIQVJQICYmIGMgIT09IENIQVJfQU1QRVJTQU5EICYmIGMgIT09IENIQVJfQVNURVJJU0sgJiYgYyAhPT0gQ0hBUl9FWENMQU1BVElPTiAmJiBjICE9PSBDSEFSX1ZFUlRJQ0FMX0xJTkUgJiYgYyAhPT0gQ0hBUl9FUVVBTFMgJiYgYyAhPT0gQ0hBUl9HUkVBVEVSX1RIQU4gJiYgYyAhPT0gQ0hBUl9TSU5HTEVfUVVPVEUgJiYgYyAhPT0gQ0hBUl9ET1VCTEVfUVVPVEUgJiYgYyAhPT0gQ0hBUl9QRVJDRU5UICYmIGMgIT09IENIQVJfQ09NTUVSQ0lBTF9BVCAmJiBjICE9PSBDSEFSX0dSQVZFX0FDQ0VOVDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KGMpIHtcbiAgICAgIHJldHVybiAhaXNXaGl0ZXNwYWNlKGMpICYmIGMgIT09IENIQVJfQ09MT047XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgcG9zKSB7XG4gICAgICB2YXIgZmlyc3QgPSBzdHJpbmcuY2hhckNvZGVBdChwb3MpLCBzZWNvbmQ7XG4gICAgICBpZiAoZmlyc3QgPj0gNTUyOTYgJiYgZmlyc3QgPD0gNTYzMTkgJiYgcG9zICsgMSA8IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zICsgMSk7XG4gICAgICAgIGlmIChzZWNvbmQgPj0gNTYzMjAgJiYgc2Vjb25kIDw9IDU3MzQzKSB7XG4gICAgICAgICAgcmV0dXJuIChmaXJzdCAtIDU1Mjk2KSAqIDEwMjQgKyBzZWNvbmQgLSA1NjMyMCArIDY1NTM2O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlyc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSB7XG4gICAgICB2YXIgbGVhZGluZ1NwYWNlUmUgPSAvXlxcbiogLztcbiAgICAgIHJldHVybiBsZWFkaW5nU3BhY2VSZS50ZXN0KHN0cmluZyk7XG4gICAgfVxuICAgIHZhciBTVFlMRV9QTEFJTiA9IDE7XG4gICAgdmFyIFNUWUxFX1NJTkdMRSA9IDI7XG4gICAgdmFyIFNUWUxFX0xJVEVSQUwgPSAzO1xuICAgIHZhciBTVFlMRV9GT0xERUQgPSA0O1xuICAgIHZhciBTVFlMRV9ET1VCTEUgPSA1O1xuICAgIGZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHN0cmluZywgc2luZ2xlTGluZU9ubHksIGluZGVudFBlckxldmVsLCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VvdXNUeXBlLCBxdW90aW5nVHlwZSwgZm9yY2VRdW90ZXMsIGluYmxvY2spIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGNoYXIgPSAwO1xuICAgICAgdmFyIHByZXZDaGFyID0gbnVsbDtcbiAgICAgIHZhciBoYXNMaW5lQnJlYWsgPSBmYWxzZTtcbiAgICAgIHZhciBoYXNGb2xkYWJsZUxpbmUgPSBmYWxzZTtcbiAgICAgIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTtcbiAgICAgIHZhciBwcmV2aW91c0xpbmVCcmVhayA9IC0xO1xuICAgICAgdmFyIHBsYWluID0gaXNQbGFpblNhZmVGaXJzdChjb2RlUG9pbnRBdChzdHJpbmcsIDApKSAmJiBpc1BsYWluU2FmZUxhc3QoY29kZVBvaW50QXQoc3RyaW5nLCBzdHJpbmcubGVuZ3RoIC0gMSkpO1xuICAgICAgaWYgKHNpbmdsZUxpbmVPbmx5IHx8IGZvcmNlUXVvdGVzKSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7XG4gICAgICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7XG4gICAgICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7XG4gICAgICAgICAgcHJldkNoYXIgPSBjaGFyO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgY2hhciA+PSA2NTUzNiA/IGkgKz0gMiA6IGkrKykge1xuICAgICAgICAgIGNoYXIgPSBjb2RlUG9pbnRBdChzdHJpbmcsIGkpO1xuICAgICAgICAgIGlmIChjaGFyID09PSBDSEFSX0xJTkVfRkVFRCkge1xuICAgICAgICAgICAgaGFzTGluZUJyZWFrID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChzaG91bGRUcmFja1dpZHRoKSB7XG4gICAgICAgICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC5cbiAgICAgICAgICAgICAgaSAtIHByZXZpb3VzTGluZUJyZWFrIC0gMSA+IGxpbmVXaWR0aCAmJiBzdHJpbmdbcHJldmlvdXNMaW5lQnJlYWsgKyAxXSAhPT0gXCIgXCI7XG4gICAgICAgICAgICAgIHByZXZpb3VzTGluZUJyZWFrID0gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7XG4gICAgICAgICAgcHJldkNoYXIgPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCBzaG91bGRUcmFja1dpZHRoICYmIChpIC0gcHJldmlvdXNMaW5lQnJlYWsgLSAxID4gbGluZVdpZHRoICYmIHN0cmluZ1twcmV2aW91c0xpbmVCcmVhayArIDFdICE9PSBcIiBcIik7XG4gICAgICB9XG4gICAgICBpZiAoIWhhc0xpbmVCcmVhayAmJiAhaGFzRm9sZGFibGVMaW5lKSB7XG4gICAgICAgIGlmIChwbGFpbiAmJiAhZm9yY2VRdW90ZXMgJiYgIXRlc3RBbWJpZ3VvdXNUeXBlKHN0cmluZykpIHtcbiAgICAgICAgICByZXR1cm4gU1RZTEVfUExBSU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFO1xuICAgICAgfVxuICAgICAgaWYgKGluZGVudFBlckxldmVsID4gOSAmJiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTtcbiAgICAgIH1cbiAgICAgIGlmICghZm9yY2VRdW90ZXMpIHtcbiAgICAgICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7XG4gICAgICB9XG4gICAgICByZXR1cm4gcXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyBTVFlMRV9ET1VCTEUgOiBTVFlMRV9TSU5HTEU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyaXRlU2NhbGFyKHN0YXRlLCBzdHJpbmcsIGxldmVsLCBpc2tleSwgaW5ibG9jaykge1xuICAgICAgc3RhdGUuZHVtcCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBzdGF0ZS5xdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/ICdcIlwiJyA6IFwiJydcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXN0YXRlLm5vQ29tcGF0TW9kZSkge1xuICAgICAgICAgIGlmIChERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKHN0cmluZykgIT09IC0xIHx8IERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWC50ZXN0KHN0cmluZykpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZS5xdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/ICdcIicgKyBzdHJpbmcgKyAnXCInIDogXCInXCIgKyBzdHJpbmcgKyBcIidcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGluZGVudCA9IHN0YXRlLmluZGVudCAqIE1hdGgubWF4KDEsIGxldmVsKTtcbiAgICAgICAgdmFyIGxpbmVXaWR0aCA9IHN0YXRlLmxpbmVXaWR0aCA9PT0gLTEgPyAtMSA6IE1hdGgubWF4KE1hdGgubWluKHN0YXRlLmxpbmVXaWR0aCwgNDApLCBzdGF0ZS5saW5lV2lkdGggLSBpbmRlbnQpO1xuICAgICAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleSB8fCBzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWw7XG4gICAgICAgIGZ1bmN0aW9uIHRlc3RBbWJpZ3VpdHkoc3RyaW5nMikge1xuICAgICAgICAgIHJldHVybiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIHN0cmluZzIpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoY2hvb3NlU2NhbGFyU3R5bGUoXG4gICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgIHNpbmdsZUxpbmVPbmx5LFxuICAgICAgICAgIHN0YXRlLmluZGVudCxcbiAgICAgICAgICBsaW5lV2lkdGgsXG4gICAgICAgICAgdGVzdEFtYmlndWl0eSxcbiAgICAgICAgICBzdGF0ZS5xdW90aW5nVHlwZSxcbiAgICAgICAgICBzdGF0ZS5mb3JjZVF1b3RlcyAmJiAhaXNrZXksXG4gICAgICAgICAgaW5ibG9ja1xuICAgICAgICApKSB7XG4gICAgICAgICAgY2FzZSBTVFlMRV9QTEFJTjpcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgICAgICAgY2FzZSBTVFlMRV9TSU5HTEU6XG4gICAgICAgICAgICByZXR1cm4gXCInXCIgKyBzdHJpbmcucmVwbGFjZSgvJy9nLCBcIicnXCIpICsgXCInXCI7XG4gICAgICAgICAgY2FzZSBTVFlMRV9MSVRFUkFMOlxuICAgICAgICAgICAgcmV0dXJuIFwifFwiICsgYmxvY2tIZWFkZXIoc3RyaW5nLCBzdGF0ZS5pbmRlbnQpICsgZHJvcEVuZGluZ05ld2xpbmUoaW5kZW50U3RyaW5nKHN0cmluZywgaW5kZW50KSk7XG4gICAgICAgICAgY2FzZSBTVFlMRV9GT0xERUQ6XG4gICAgICAgICAgICByZXR1cm4gXCI+XCIgKyBibG9ja0hlYWRlcihzdHJpbmcsIHN0YXRlLmluZGVudCkgKyBkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoZm9sZFN0cmluZyhzdHJpbmcsIGxpbmVXaWR0aCksIGluZGVudCkpO1xuICAgICAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOlxuICAgICAgICAgICAgcmV0dXJuICdcIicgKyBlc2NhcGVTdHJpbmcoc3RyaW5nLCBsaW5lV2lkdGgpICsgJ1wiJztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZVwiKTtcbiAgICAgICAgfVxuICAgICAgfSgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBibG9ja0hlYWRlcihzdHJpbmcsIGluZGVudFBlckxldmVsKSB7XG4gICAgICB2YXIgaW5kZW50SW5kaWNhdG9yID0gbmVlZEluZGVudEluZGljYXRvcihzdHJpbmcpID8gU3RyaW5nKGluZGVudFBlckxldmVsKSA6IFwiXCI7XG4gICAgICB2YXIgY2xpcCA9IHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09IFwiXFxuXCI7XG4gICAgICB2YXIga2VlcCA9IGNsaXAgJiYgKHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMl0gPT09IFwiXFxuXCIgfHwgc3RyaW5nID09PSBcIlxcblwiKTtcbiAgICAgIHZhciBjaG9tcCA9IGtlZXAgPyBcIitcIiA6IGNsaXAgPyBcIlwiIDogXCItXCI7XG4gICAgICByZXR1cm4gaW5kZW50SW5kaWNhdG9yICsgY2hvbXAgKyBcIlxcblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkcm9wRW5kaW5nTmV3bGluZShzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSBcIlxcblwiID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZztcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9sZFN0cmluZyhzdHJpbmcsIHdpZHRoKSB7XG4gICAgICB2YXIgbGluZVJlID0gLyhcXG4rKShbXlxcbl0qKS9nO1xuICAgICAgdmFyIHJlc3VsdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbmV4dExGID0gc3RyaW5nLmluZGV4T2YoXCJcXG5cIik7XG4gICAgICAgIG5leHRMRiA9IG5leHRMRiAhPT0gLTEgPyBuZXh0TEYgOiBzdHJpbmcubGVuZ3RoO1xuICAgICAgICBsaW5lUmUubGFzdEluZGV4ID0gbmV4dExGO1xuICAgICAgICByZXR1cm4gZm9sZExpbmUoc3RyaW5nLnNsaWNlKDAsIG5leHRMRiksIHdpZHRoKTtcbiAgICAgIH0oKTtcbiAgICAgIHZhciBwcmV2TW9yZUluZGVudGVkID0gc3RyaW5nWzBdID09PSBcIlxcblwiIHx8IHN0cmluZ1swXSA9PT0gXCIgXCI7XG4gICAgICB2YXIgbW9yZUluZGVudGVkO1xuICAgICAgdmFyIG1hdGNoO1xuICAgICAgd2hpbGUgKG1hdGNoID0gbGluZVJlLmV4ZWMoc3RyaW5nKSkge1xuICAgICAgICB2YXIgcHJlZml4ID0gbWF0Y2hbMV0sIGxpbmUgPSBtYXRjaFsyXTtcbiAgICAgICAgbW9yZUluZGVudGVkID0gbGluZVswXSA9PT0gXCIgXCI7XG4gICAgICAgIHJlc3VsdCArPSBwcmVmaXggKyAoIXByZXZNb3JlSW5kZW50ZWQgJiYgIW1vcmVJbmRlbnRlZCAmJiBsaW5lICE9PSBcIlwiID8gXCJcXG5cIiA6IFwiXCIpICsgZm9sZExpbmUobGluZSwgd2lkdGgpO1xuICAgICAgICBwcmV2TW9yZUluZGVudGVkID0gbW9yZUluZGVudGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9sZExpbmUobGluZSwgd2lkdGgpIHtcbiAgICAgIGlmIChsaW5lID09PSBcIlwiIHx8IGxpbmVbMF0gPT09IFwiIFwiKVxuICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgIHZhciBicmVha1JlID0gLyBbXiBdL2c7XG4gICAgICB2YXIgbWF0Y2g7XG4gICAgICB2YXIgc3RhcnQgPSAwLCBlbmQsIGN1cnIgPSAwLCBuZXh0ID0gMDtcbiAgICAgIHZhciByZXN1bHQgPSBcIlwiO1xuICAgICAgd2hpbGUgKG1hdGNoID0gYnJlYWtSZS5leGVjKGxpbmUpKSB7XG4gICAgICAgIG5leHQgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgaWYgKG5leHQgLSBzdGFydCA+IHdpZHRoKSB7XG4gICAgICAgICAgZW5kID0gY3VyciA+IHN0YXJ0ID8gY3VyciA6IG5leHQ7XG4gICAgICAgICAgcmVzdWx0ICs9IFwiXFxuXCIgKyBsaW5lLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgICAgICAgIHN0YXJ0ID0gZW5kICsgMTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyID0gbmV4dDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBcIlxcblwiO1xuICAgICAgaWYgKGxpbmUubGVuZ3RoIC0gc3RhcnQgPiB3aWR0aCAmJiBjdXJyID4gc3RhcnQpIHtcbiAgICAgICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQsIGN1cnIpICsgXCJcXG5cIiArIGxpbmUuc2xpY2UoY3VyciArIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdC5zbGljZSgxKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXNjYXBlU3RyaW5nKHN0cmluZykge1xuICAgICAgdmFyIHJlc3VsdCA9IFwiXCI7XG4gICAgICB2YXIgY2hhciA9IDA7XG4gICAgICB2YXIgZXNjYXBlU2VxO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7XG4gICAgICAgIGNoYXIgPSBjb2RlUG9pbnRBdChzdHJpbmcsIGkpO1xuICAgICAgICBlc2NhcGVTZXEgPSBFU0NBUEVfU0VRVUVOQ0VTW2NoYXJdO1xuICAgICAgICBpZiAoIWVzY2FwZVNlcSAmJiBpc1ByaW50YWJsZShjaGFyKSkge1xuICAgICAgICAgIHJlc3VsdCArPSBzdHJpbmdbaV07XG4gICAgICAgICAgaWYgKGNoYXIgPj0gNjU1MzYpXG4gICAgICAgICAgICByZXN1bHQgKz0gc3RyaW5nW2kgKyAxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgKz0gZXNjYXBlU2VxIHx8IGVuY29kZUhleChjaGFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBvYmplY3QpIHtcbiAgICAgIHZhciBfcmVzdWx0ID0gXCJcIiwgX3RhZyA9IHN0YXRlLnRhZywgaW5kZXgsIGxlbmd0aCwgdmFsdWU7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgdmFsdWUgPSBvYmplY3RbaW5kZXhdO1xuICAgICAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHtcbiAgICAgICAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwob2JqZWN0LCBTdHJpbmcoaW5kZXgpLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIHZhbHVlLCBmYWxzZSwgZmFsc2UpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiB3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBudWxsLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICAgICAgaWYgKF9yZXN1bHQgIT09IFwiXCIpXG4gICAgICAgICAgICBfcmVzdWx0ICs9IFwiLFwiICsgKCFzdGF0ZS5jb25kZW5zZUZsb3cgPyBcIiBcIiA6IFwiXCIpO1xuICAgICAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmR1bXAgPSBcIltcIiArIF9yZXN1bHQgKyBcIl1cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gICAgICB2YXIgX3Jlc3VsdCA9IFwiXCIsIF90YWcgPSBzdGF0ZS50YWcsIGluZGV4LCBsZW5ndGgsIHZhbHVlO1xuICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHZhbHVlID0gb2JqZWN0W2luZGV4XTtcbiAgICAgICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7XG4gICAgICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgdmFsdWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSB8fCB0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIgJiYgd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG51bGwsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSkge1xuICAgICAgICAgIGlmICghY29tcGFjdCB8fCBfcmVzdWx0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0YXRlLmR1bXAgJiYgQ0hBUl9MSU5FX0ZFRUQgPT09IHN0YXRlLmR1bXAuY2hhckNvZGVBdCgwKSkge1xuICAgICAgICAgICAgX3Jlc3VsdCArPSBcIi1cIjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX3Jlc3VsdCArPSBcIi0gXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8IFwiW11cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIG9iamVjdCkge1xuICAgICAgdmFyIF9yZXN1bHQgPSBcIlwiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgcGFpckJ1ZmZlcjtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgcGFpckJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIGlmIChfcmVzdWx0ICE9PSBcIlwiKVxuICAgICAgICAgIHBhaXJCdWZmZXIgKz0gXCIsIFwiO1xuICAgICAgICBpZiAoc3RhdGUuY29uZGVuc2VGbG93KVxuICAgICAgICAgIHBhaXJCdWZmZXIgKz0gJ1wiJztcbiAgICAgICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG4gICAgICAgIGlmIChzdGF0ZS5yZXBsYWNlcikge1xuICAgICAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0S2V5LCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNClcbiAgICAgICAgICBwYWlyQnVmZmVyICs9IFwiPyBcIjtcbiAgICAgICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICdcIicgOiBcIlwiKSArIFwiOlwiICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/IFwiXCIgOiBcIiBcIik7XG4gICAgICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG4gICAgICAgIF9yZXN1bHQgKz0gcGFpckJ1ZmZlcjtcbiAgICAgIH1cbiAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICBzdGF0ZS5kdW1wID0gXCJ7XCIgKyBfcmVzdWx0ICsgXCJ9XCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gICAgICB2YXIgX3Jlc3VsdCA9IFwiXCIsIF90YWcgPSBzdGF0ZS50YWcsIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpLCBpbmRleCwgbGVuZ3RoLCBvYmplY3RLZXksIG9iamVjdFZhbHVlLCBleHBsaWNpdFBhaXIsIHBhaXJCdWZmZXI7XG4gICAgICBpZiAoc3RhdGUuc29ydEtleXMgPT09IHRydWUpIHtcbiAgICAgICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdGF0ZS5zb3J0S2V5cyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLnNvcnRLZXlzKSB7XG4gICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKFwic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvblwiKTtcbiAgICAgIH1cbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgcGFpckJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIGlmICghY29tcGFjdCB8fCBfcmVzdWx0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG4gICAgICAgIGlmIChzdGF0ZS5yZXBsYWNlcikge1xuICAgICAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdEtleSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBleHBsaWNpdFBhaXIgPSBzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSBcIj9cIiB8fCBzdGF0ZS5kdW1wICYmIHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNDtcbiAgICAgICAgaWYgKGV4cGxpY2l0UGFpcikge1xuICAgICAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICAgIHBhaXJCdWZmZXIgKz0gXCI/XCI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhaXJCdWZmZXIgKz0gXCI/IFwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG4gICAgICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgICAgICBwYWlyQnVmZmVyICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RWYWx1ZSwgdHJ1ZSwgZXhwbGljaXRQYWlyKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgICBwYWlyQnVmZmVyICs9IFwiOlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhaXJCdWZmZXIgKz0gXCI6IFwiO1xuICAgICAgICB9XG4gICAgICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcbiAgICAgICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICAgICAgfVxuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8IFwie31cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkge1xuICAgICAgdmFyIF9yZXN1bHQsIHR5cGVMaXN0LCBpbmRleCwgbGVuZ3RoLCB0eXBlLCBzdHlsZTtcbiAgICAgIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlcztcbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSB0eXBlTGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHR5cGUgPSB0eXBlTGlzdFtpbmRleF07XG4gICAgICAgIGlmICgodHlwZS5pbnN0YW5jZU9mIHx8IHR5cGUucHJlZGljYXRlKSAmJiAoIXR5cGUuaW5zdGFuY2VPZiB8fCB0eXBlb2Ygb2JqZWN0ID09PSBcIm9iamVjdFwiICYmIG9iamVjdCBpbnN0YW5jZW9mIHR5cGUuaW5zdGFuY2VPZikgJiYgKCF0eXBlLnByZWRpY2F0ZSB8fCB0eXBlLnByZWRpY2F0ZShvYmplY3QpKSkge1xuICAgICAgICAgIGlmIChleHBsaWNpdCkge1xuICAgICAgICAgICAgaWYgKHR5cGUubXVsdGkgJiYgdHlwZS5yZXByZXNlbnROYW1lKSB7XG4gICAgICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUucmVwcmVzZW50TmFtZShvYmplY3QpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3RhdGUudGFnID0gdHlwZS50YWc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXRlLnRhZyA9IFwiP1wiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZS5yZXByZXNlbnQpIHtcbiAgICAgICAgICAgIHN0eWxlID0gc3RhdGUuc3R5bGVNYXBbdHlwZS50YWddIHx8IHR5cGUuZGVmYXVsdFN0eWxlO1xuICAgICAgICAgICAgaWYgKF90b1N0cmluZy5jYWxsKHR5cGUucmVwcmVzZW50KSA9PT0gXCJbb2JqZWN0IEZ1bmN0aW9uXVwiKSB7XG4gICAgICAgICAgICAgIF9yZXN1bHQgPSB0eXBlLnJlcHJlc2VudChvYmplY3QsIHN0eWxlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZS5yZXByZXNlbnQsIHN0eWxlKSkge1xuICAgICAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCIhPFwiICsgdHlwZS50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgXCInICsgc3R5bGUgKyAnXCIgc3R5bGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3QsIGJsb2NrLCBjb21wYWN0LCBpc2tleSwgaXNibG9ja3NlcSkge1xuICAgICAgc3RhdGUudGFnID0gbnVsbDtcbiAgICAgIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG4gICAgICBpZiAoIWRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZmFsc2UpKSB7XG4gICAgICAgIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgICB2YXIgdHlwZSA9IF90b1N0cmluZy5jYWxsKHN0YXRlLmR1bXApO1xuICAgICAgdmFyIGluYmxvY2sgPSBibG9jaztcbiAgICAgIHZhciB0YWdTdHI7XG4gICAgICBpZiAoYmxvY2spIHtcbiAgICAgICAgYmxvY2sgPSBzdGF0ZS5mbG93TGV2ZWwgPCAwIHx8IHN0YXRlLmZsb3dMZXZlbCA+IGxldmVsO1xuICAgICAgfVxuICAgICAgdmFyIG9iamVjdE9yQXJyYXkgPSB0eXBlID09PSBcIltvYmplY3QgT2JqZWN0XVwiIHx8IHR5cGUgPT09IFwiW29iamVjdCBBcnJheV1cIiwgZHVwbGljYXRlSW5kZXgsIGR1cGxpY2F0ZTtcbiAgICAgIGlmIChvYmplY3RPckFycmF5KSB7XG4gICAgICAgIGR1cGxpY2F0ZUluZGV4ID0gc3RhdGUuZHVwbGljYXRlcy5pbmRleE9mKG9iamVjdCk7XG4gICAgICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTtcbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSBcIj9cIiB8fCBkdXBsaWNhdGUgfHwgc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkge1xuICAgICAgICBjb21wYWN0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgICAgICBzdGF0ZS5kdW1wID0gXCIqcmVmX1wiICsgZHVwbGljYXRlSW5kZXg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAob2JqZWN0T3JBcnJheSAmJiBkdXBsaWNhdGUgJiYgIXN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgICAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGUgPT09IFwiW29iamVjdCBPYmplY3RdXCIpIHtcbiAgICAgICAgICBpZiAoYmxvY2sgJiYgT2JqZWN0LmtleXMoc3RhdGUuZHVtcCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICB3cml0ZUJsb2NrTWFwcGluZyhzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpO1xuICAgICAgICAgICAgaWYgKGR1cGxpY2F0ZSkge1xuICAgICAgICAgICAgICBzdGF0ZS5kdW1wID0gXCImcmVmX1wiICsgZHVwbGljYXRlSW5kZXggKyBzdGF0ZS5kdW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cml0ZUZsb3dNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmR1bXAgPSBcIiZyZWZfXCIgKyBkdXBsaWNhdGVJbmRleCArIFwiIFwiICsgc3RhdGUuZHVtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiKSB7XG4gICAgICAgICAgaWYgKGJsb2NrICYmIHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGUubm9BcnJheUluZGVudCAmJiAhaXNibG9ja3NlcSAmJiBsZXZlbCA+IDApIHtcbiAgICAgICAgICAgICAgd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCAtIDEsIHN0YXRlLmR1bXAsIGNvbXBhY3QpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmR1bXAgPSBcIiZyZWZfXCIgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmR1bXAgPSBcIiZyZWZfXCIgKyBkdXBsaWNhdGVJbmRleCArIFwiIFwiICsgc3RhdGUuZHVtcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJbb2JqZWN0IFN0cmluZ11cIikge1xuICAgICAgICAgIGlmIChzdGF0ZS50YWcgIT09IFwiP1wiKSB7XG4gICAgICAgICAgICB3cml0ZVNjYWxhcihzdGF0ZSwgc3RhdGUuZHVtcCwgbGV2ZWwsIGlza2V5LCBpbmJsb2NrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJbb2JqZWN0IFVuZGVmaW5lZF1cIikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oXCJ1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCBcIiArIHR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSBcIj9cIikge1xuICAgICAgICAgIHRhZ1N0ciA9IGVuY29kZVVSSShcbiAgICAgICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gXCIhXCIgPyBzdGF0ZS50YWcuc2xpY2UoMSkgOiBzdGF0ZS50YWdcbiAgICAgICAgICApLnJlcGxhY2UoLyEvZywgXCIlMjFcIik7XG4gICAgICAgICAgaWYgKHN0YXRlLnRhZ1swXSA9PT0gXCIhXCIpIHtcbiAgICAgICAgICAgIHRhZ1N0ciA9IFwiIVwiICsgdGFnU3RyO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGFnU3RyLnNsaWNlKDAsIDE4KSA9PT0gXCJ0YWc6eWFtbC5vcmcsMjAwMjpcIikge1xuICAgICAgICAgICAgdGFnU3RyID0gXCIhIVwiICsgdGFnU3RyLnNsaWNlKDE4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGFnU3RyID0gXCIhPFwiICsgdGFnU3RyICsgXCI+XCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0YXRlLmR1bXAgPSB0YWdTdHIgKyBcIiBcIiArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKG9iamVjdCwgc3RhdGUpIHtcbiAgICAgIHZhciBvYmplY3RzID0gW10sIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sIGluZGV4LCBsZW5ndGg7XG4gICAgICBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBkdXBsaWNhdGVzSW5kZXhlcy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pO1xuICAgICAgfVxuICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXMgPSBuZXcgQXJyYXkobGVuZ3RoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcykge1xuICAgICAgdmFyIG9iamVjdEtleUxpc3QsIGluZGV4LCBsZW5ndGg7XG4gICAgICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgaW5kZXggPSBvYmplY3RzLmluZGV4T2Yob2JqZWN0KTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGlmIChkdXBsaWNhdGVzSW5kZXhlcy5pbmRleE9mKGluZGV4KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGR1cGxpY2F0ZXNJbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICAgICAgaW5zcGVjdE5vZGUob2JqZWN0W2luZGV4XSwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICAgICAgaW5zcGVjdE5vZGUob2JqZWN0W29iamVjdEtleUxpc3RbaW5kZXhdXSwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkdW1wKGlucHV0LCBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIHZhciBzdGF0ZSA9IG5ldyBTdGF0ZShvcHRpb25zKTtcbiAgICAgIGlmICghc3RhdGUubm9SZWZzKVxuICAgICAgICBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7XG4gICAgICB2YXIgdmFsdWUgPSBpbnB1dDtcbiAgICAgIGlmIChzdGF0ZS5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwoeyBcIlwiOiB2YWx1ZSB9LCBcIlwiLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCAwLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSkpXG4gICAgICAgIHJldHVybiBzdGF0ZS5kdW1wICsgXCJcXG5cIjtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBtb2R1bGUuZXhwb3J0cy5kdW1wID0gZHVtcDtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9qcy15YW1sL2luZGV4LmpzXG52YXIgcmVxdWlyZV9qc195YW1sID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2pzLXlhbWwvaW5kZXguanNcIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICB2YXIgbG9hZGVyID0gcmVxdWlyZV9sb2FkZXIoKTtcbiAgICB2YXIgZHVtcGVyID0gcmVxdWlyZV9kdW1wZXIoKTtcbiAgICBmdW5jdGlvbiByZW5hbWVkKGZyb20sIHRvKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZ1bmN0aW9uIHlhbWwuXCIgKyBmcm9tICsgXCIgaXMgcmVtb3ZlZCBpbiBqcy15YW1sIDQuIFVzZSB5YW1sLlwiICsgdG8gKyBcIiBpbnN0ZWFkLCB3aGljaCBpcyBub3cgc2FmZSBieSBkZWZhdWx0LlwiKTtcbiAgICAgIH07XG4gICAgfVxuICAgIG1vZHVsZS5leHBvcnRzLlR5cGUgPSByZXF1aXJlX3R5cGUoKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5TY2hlbWEgPSByZXF1aXJlX3NjaGVtYSgpO1xuICAgIG1vZHVsZS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQSA9IHJlcXVpcmVfZmFpbHNhZmUoKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5KU09OX1NDSEVNQSA9IHJlcXVpcmVfanNvbigpO1xuICAgIG1vZHVsZS5leHBvcnRzLkNPUkVfU0NIRU1BID0gcmVxdWlyZV9jb3JlKCk7XG4gICAgbW9kdWxlLmV4cG9ydHMuREVGQVVMVF9TQ0hFTUEgPSByZXF1aXJlX2RlZmF1bHQoKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5sb2FkID0gbG9hZGVyLmxvYWQ7XG4gICAgbW9kdWxlLmV4cG9ydHMubG9hZEFsbCA9IGxvYWRlci5sb2FkQWxsO1xuICAgIG1vZHVsZS5leHBvcnRzLmR1bXAgPSBkdW1wZXIuZHVtcDtcbiAgICBtb2R1bGUuZXhwb3J0cy5ZQU1MRXhjZXB0aW9uID0gcmVxdWlyZV9leGNlcHRpb24oKTtcbiAgICBtb2R1bGUuZXhwb3J0cy50eXBlcyA9IHtcbiAgICAgIGJpbmFyeTogcmVxdWlyZV9iaW5hcnkoKSxcbiAgICAgIGZsb2F0OiByZXF1aXJlX2Zsb2F0KCksXG4gICAgICBtYXA6IHJlcXVpcmVfbWFwKCksXG4gICAgICBudWxsOiByZXF1aXJlX251bGwoKSxcbiAgICAgIHBhaXJzOiByZXF1aXJlX3BhaXJzKCksXG4gICAgICBzZXQ6IHJlcXVpcmVfc2V0KCksXG4gICAgICB0aW1lc3RhbXA6IHJlcXVpcmVfdGltZXN0YW1wKCksXG4gICAgICBib29sOiByZXF1aXJlX2Jvb2woKSxcbiAgICAgIGludDogcmVxdWlyZV9pbnQoKSxcbiAgICAgIG1lcmdlOiByZXF1aXJlX21lcmdlKCksXG4gICAgICBvbWFwOiByZXF1aXJlX29tYXAoKSxcbiAgICAgIHNlcTogcmVxdWlyZV9zZXEoKSxcbiAgICAgIHN0cjogcmVxdWlyZV9zdHIoKVxuICAgIH07XG4gICAgbW9kdWxlLmV4cG9ydHMuc2FmZUxvYWQgPSByZW5hbWVkKFwic2FmZUxvYWRcIiwgXCJsb2FkXCIpO1xuICAgIG1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsID0gcmVuYW1lZChcInNhZmVMb2FkQWxsXCIsIFwibG9hZEFsbFwiKTtcbiAgICBtb2R1bGUuZXhwb3J0cy5zYWZlRHVtcCA9IHJlbmFtZWQoXCJzYWZlRHVtcFwiLCBcImR1bXBcIik7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9sb2FkZXJzLmpzXG52YXIgcmVxdWlyZV9sb2FkZXJzID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvbG9hZGVycy5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5sb2FkZXJzID0gdm9pZCAwO1xuICAgIHZhciBfdXJsID0gX19yZXF1aXJlKFwidXJsXCIpO1xuICAgIHZhciBpbXBvcnRGcmVzaDtcbiAgICB2YXIgbG9hZEpzU3luYyA9IGZ1bmN0aW9uIGxvYWRKc1N5bmMyKGZpbGVwYXRoKSB7XG4gICAgICBpZiAoaW1wb3J0RnJlc2ggPT09IHZvaWQgMCkge1xuICAgICAgICBpbXBvcnRGcmVzaCA9IHJlcXVpcmVfaW1wb3J0X2ZyZXNoKCk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSBpbXBvcnRGcmVzaChmaWxlcGF0aCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdmFyIGxvYWRKcyA9IGFzeW5jIGZ1bmN0aW9uIGxvYWRKczIoZmlsZXBhdGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBocmVmXG4gICAgICAgIH0gPSAoMCwgX3VybC5wYXRoVG9GaWxlVVJMKShmaWxlcGF0aCk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgaW1wb3J0KGhyZWYpKS5kZWZhdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGxvYWRKc1N5bmMoZmlsZXBhdGgsIFwiXCIpO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHBhcnNlSnNvbjtcbiAgICB2YXIgbG9hZEpzb24gPSBmdW5jdGlvbiBsb2FkSnNvbjIoZmlsZXBhdGgsIGNvbnRlbnQpIHtcbiAgICAgIGlmIChwYXJzZUpzb24gPT09IHZvaWQgMCkge1xuICAgICAgICBwYXJzZUpzb24gPSByZXF1aXJlX3BhcnNlX2pzb24oKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlSnNvbihjb250ZW50KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgSlNPTiBFcnJvciBpbiAke2ZpbGVwYXRofTpcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciB5YW1sO1xuICAgIHZhciBsb2FkWWFtbCA9IGZ1bmN0aW9uIGxvYWRZYW1sMihmaWxlcGF0aCwgY29udGVudCkge1xuICAgICAgaWYgKHlhbWwgPT09IHZvaWQgMCkge1xuICAgICAgICB5YW1sID0gcmVxdWlyZV9qc195YW1sKCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB5YW1sLmxvYWQoY29udGVudCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gYFlBTUwgRXJyb3IgaW4gJHtmaWxlcGF0aH06XG4ke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgbG9hZGVycyA9IHtcbiAgICAgIGxvYWRKcyxcbiAgICAgIGxvYWRKc1N5bmMsXG4gICAgICBsb2FkSnNvbixcbiAgICAgIGxvYWRZYW1sXG4gICAgfTtcbiAgICBleHBvcnRzLmxvYWRlcnMgPSBsb2FkZXJzO1xuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvRXhwbG9yZXJCYXNlLmpzXG52YXIgcmVxdWlyZV9FeHBsb3JlckJhc2UgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9FeHBsb3JlckJhc2UuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuRXhwbG9yZXJCYXNlID0gdm9pZCAwO1xuICAgIGV4cG9ydHMuZ2V0RXh0ZW5zaW9uRGVzY3JpcHRpb24gPSBnZXRFeHRlbnNpb25EZXNjcmlwdGlvbjtcbiAgICB2YXIgX3BhdGggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9fcmVxdWlyZShcInBhdGhcIikpO1xuICAgIHZhciBfZ2V0UHJvcGVydHlCeVBhdGggPSByZXF1aXJlX2dldFByb3BlcnR5QnlQYXRoKCk7XG4gICAgdmFyIF9sb2FkZXJzID0gcmVxdWlyZV9sb2FkZXJzKCk7XG4gICAgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xuICAgIH1cbiAgICB2YXIgRXhwbG9yZXJCYXNlID0gY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5jYWNoZSkge1xuICAgICAgICAgIHRoaXMubG9hZENhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgICAgICB0aGlzLnNlYXJjaENhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb25maWcoKTtcbiAgICAgIH1cbiAgICAgIGNsZWFyTG9hZENhY2hlKCkge1xuICAgICAgICBpZiAodGhpcy5sb2FkQ2FjaGUpIHtcbiAgICAgICAgICB0aGlzLmxvYWRDYWNoZS5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjbGVhclNlYXJjaENhY2hlKCkge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hDYWNoZSkge1xuICAgICAgICAgIHRoaXMuc2VhcmNoQ2FjaGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2xlYXJDYWNoZXMoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJMb2FkQ2FjaGUoKTtcbiAgICAgICAgdGhpcy5jbGVhclNlYXJjaENhY2hlKCk7XG4gICAgICB9XG4gICAgICB2YWxpZGF0ZUNvbmZpZygpIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbmZpZy5zZWFyY2hQbGFjZXMuZm9yRWFjaCgocGxhY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBsb2FkZXJLZXkgPSBfcGF0aC5kZWZhdWx0LmV4dG5hbWUocGxhY2UpIHx8IFwibm9FeHRcIjtcbiAgICAgICAgICBjb25zdCBsb2FkZXIgPSBjb25maWcubG9hZGVyc1tsb2FkZXJLZXldO1xuICAgICAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGxvYWRlciBzcGVjaWZpZWQgZm9yICR7Z2V0RXh0ZW5zaW9uRGVzY3JpcHRpb24ocGxhY2UpfSwgc28gc2VhcmNoUGxhY2VzIGl0ZW0gXCIke3BsYWNlfVwiIGlzIGludmFsaWRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBsb2FkZXIgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBsb2FkZXIgZm9yICR7Z2V0RXh0ZW5zaW9uRGVzY3JpcHRpb24ocGxhY2UpfSBpcyBub3QgYSBmdW5jdGlvbiAodHlwZSBwcm92aWRlZDogXCIke3R5cGVvZiBsb2FkZXJ9XCIpLCBzbyBzZWFyY2hQbGFjZXMgaXRlbSBcIiR7cGxhY2V9XCIgaXMgaW52YWxpZGApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBzaG91bGRTZWFyY2hTdG9wV2l0aFJlc3VsdChyZXN1bHQpIHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbClcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiAhKHJlc3VsdC5pc0VtcHR5ICYmIHRoaXMuY29uZmlnLmlnbm9yZUVtcHR5U2VhcmNoUGxhY2VzKTtcbiAgICAgIH1cbiAgICAgIG5leHREaXJlY3RvcnlUb1NlYXJjaChjdXJyZW50RGlyLCBjdXJyZW50UmVzdWx0KSB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZFNlYXJjaFN0b3BXaXRoUmVzdWx0KGN1cnJlbnRSZXN1bHQpKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dERpciA9IG5leHREaXJVcChjdXJyZW50RGlyKTtcbiAgICAgICAgaWYgKG5leHREaXIgPT09IGN1cnJlbnREaXIgfHwgY3VycmVudERpciA9PT0gdGhpcy5jb25maWcuc3RvcERpcikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXh0RGlyO1xuICAgICAgfVxuICAgICAgbG9hZFBhY2thZ2VQcm9wKGZpbGVwYXRoLCBjb250ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZENvbnRlbnQgPSBfbG9hZGVycy5sb2FkZXJzLmxvYWRKc29uKGZpbGVwYXRoLCBjb250ZW50KTtcbiAgICAgICAgY29uc3QgcGFja2FnZVByb3BWYWx1ZSA9ICgwLCBfZ2V0UHJvcGVydHlCeVBhdGguZ2V0UHJvcGVydHlCeVBhdGgpKHBhcnNlZENvbnRlbnQsIHRoaXMuY29uZmlnLnBhY2thZ2VQcm9wKTtcbiAgICAgICAgcmV0dXJuIHBhY2thZ2VQcm9wVmFsdWUgfHwgbnVsbDtcbiAgICAgIH1cbiAgICAgIGdldExvYWRlckVudHJ5Rm9yRmlsZShmaWxlcGF0aCkge1xuICAgICAgICBpZiAoX3BhdGguZGVmYXVsdC5iYXNlbmFtZShmaWxlcGF0aCkgPT09IFwicGFja2FnZS5qc29uXCIpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkUGFja2FnZVByb3AuYmluZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2FkZXJLZXkgPSBfcGF0aC5kZWZhdWx0LmV4dG5hbWUoZmlsZXBhdGgpIHx8IFwibm9FeHRcIjtcbiAgICAgICAgY29uc3QgbG9hZGVyID0gdGhpcy5jb25maWcubG9hZGVyc1tsb2FkZXJLZXldO1xuICAgICAgICBpZiAoIWxvYWRlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbG9hZGVyIHNwZWNpZmllZCBmb3IgJHtnZXRFeHRlbnNpb25EZXNjcmlwdGlvbihmaWxlcGF0aCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvYWRlcjtcbiAgICAgIH1cbiAgICAgIGxvYWRlZENvbnRlbnRUb0Nvc21pY29uZmlnUmVzdWx0KGZpbGVwYXRoLCBsb2FkZWRDb250ZW50LCBmb3JjZVByb3ApIHtcbiAgICAgICAgaWYgKGxvYWRlZENvbnRlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9hZGVkQ29udGVudCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGVwYXRoLFxuICAgICAgICAgICAgY29uZmlnOiB2b2lkIDAsXG4gICAgICAgICAgICBpc0VtcHR5OiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcudXNlUGFja2FnZVByb3BJbkNvbmZpZ0ZpbGVzIHx8IGZvcmNlUHJvcCkge1xuICAgICAgICAgIGxvYWRlZENvbnRlbnQgPSAoMCwgX2dldFByb3BlcnR5QnlQYXRoLmdldFByb3BlcnR5QnlQYXRoKShsb2FkZWRDb250ZW50LCB0aGlzLmNvbmZpZy5wYWNrYWdlUHJvcCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvYWRlZENvbnRlbnQgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlcGF0aCxcbiAgICAgICAgICAgIGNvbmZpZzogdm9pZCAwLFxuICAgICAgICAgICAgaXNFbXB0eTogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb25maWc6IGxvYWRlZENvbnRlbnQsXG4gICAgICAgICAgZmlsZXBhdGhcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHZhbGlkYXRlRmlsZVBhdGgoZmlsZXBhdGgpIHtcbiAgICAgICAgaWYgKCFmaWxlcGF0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImxvYWQgbXVzdCBwYXNzIGEgbm9uLWVtcHR5IHN0cmluZ1wiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5FeHBsb3JlckJhc2UgPSBFeHBsb3JlckJhc2U7XG4gICAgZnVuY3Rpb24gbmV4dERpclVwKGRpcikge1xuICAgICAgcmV0dXJuIF9wYXRoLmRlZmF1bHQuZGlybmFtZShkaXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFeHRlbnNpb25EZXNjcmlwdGlvbihmaWxlcGF0aCkge1xuICAgICAgY29uc3QgZXh0ID0gX3BhdGguZGVmYXVsdC5leHRuYW1lKGZpbGVwYXRoKTtcbiAgICAgIHJldHVybiBleHQgPyBgZXh0ZW5zaW9uIFwiJHtleHR9XCJgIDogXCJmaWxlcyB3aXRob3V0IGV4dGVuc2lvbnNcIjtcbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvcGF0aC10eXBlL2luZGV4LmpzXG52YXIgcmVxdWlyZV9wYXRoX3R5cGUgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvcGF0aC10eXBlL2luZGV4LmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciB7IHByb21pc2lmeSB9ID0gX19yZXF1aXJlKFwidXRpbFwiKTtcbiAgICB2YXIgZnMyID0gX19yZXF1aXJlKFwiZnNcIik7XG4gICAgYXN5bmMgZnVuY3Rpb24gaXNUeXBlKGZzU3RhdFR5cGUsIHN0YXRzTWV0aG9kTmFtZSwgZmlsZVBhdGgpIHtcbiAgICAgIGlmICh0eXBlb2YgZmlsZVBhdGggIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBzdHJpbmcsIGdvdCAke3R5cGVvZiBmaWxlUGF0aH1gKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcHJvbWlzaWZ5KGZzMltmc1N0YXRUeXBlXSkoZmlsZVBhdGgpO1xuICAgICAgICByZXR1cm4gc3RhdHNbc3RhdHNNZXRob2ROYW1lXSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVHlwZVN5bmMoZnNTdGF0VHlwZSwgc3RhdHNNZXRob2ROYW1lLCBmaWxlUGF0aCkge1xuICAgICAgaWYgKHR5cGVvZiBmaWxlUGF0aCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIHN0cmluZywgZ290ICR7dHlwZW9mIGZpbGVQYXRofWApO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGZzMltmc1N0YXRUeXBlXShmaWxlUGF0aClbc3RhdHNNZXRob2ROYW1lXSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICAgIGV4cG9ydHMuaXNGaWxlID0gaXNUeXBlLmJpbmQobnVsbCwgXCJzdGF0XCIsIFwiaXNGaWxlXCIpO1xuICAgIGV4cG9ydHMuaXNEaXJlY3RvcnkgPSBpc1R5cGUuYmluZChudWxsLCBcInN0YXRcIiwgXCJpc0RpcmVjdG9yeVwiKTtcbiAgICBleHBvcnRzLmlzU3ltbGluayA9IGlzVHlwZS5iaW5kKG51bGwsIFwibHN0YXRcIiwgXCJpc1N5bWJvbGljTGlua1wiKTtcbiAgICBleHBvcnRzLmlzRmlsZVN5bmMgPSBpc1R5cGVTeW5jLmJpbmQobnVsbCwgXCJzdGF0U3luY1wiLCBcImlzRmlsZVwiKTtcbiAgICBleHBvcnRzLmlzRGlyZWN0b3J5U3luYyA9IGlzVHlwZVN5bmMuYmluZChudWxsLCBcInN0YXRTeW5jXCIsIFwiaXNEaXJlY3RvcnlcIik7XG4gICAgZXhwb3J0cy5pc1N5bWxpbmtTeW5jID0gaXNUeXBlU3luYy5iaW5kKG51bGwsIFwibHN0YXRTeW5jXCIsIFwiaXNTeW1ib2xpY0xpbmtcIik7XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9nZXREaXJlY3RvcnkuanNcbnZhciByZXF1aXJlX2dldERpcmVjdG9yeSA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L2dldERpcmVjdG9yeS5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5nZXREaXJlY3RvcnkgPSBnZXREaXJlY3Rvcnk7XG4gICAgZXhwb3J0cy5nZXREaXJlY3RvcnlTeW5jID0gZ2V0RGlyZWN0b3J5U3luYztcbiAgICB2YXIgX3BhdGggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9fcmVxdWlyZShcInBhdGhcIikpO1xuICAgIHZhciBfcGF0aFR5cGUgPSByZXF1aXJlX3BhdGhfdHlwZSgpO1xuICAgIGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0RGlyZWN0b3J5KGZpbGVwYXRoKSB7XG4gICAgICBjb25zdCBmaWxlUGF0aElzRGlyZWN0b3J5ID0gYXdhaXQgKDAsIF9wYXRoVHlwZS5pc0RpcmVjdG9yeSkoZmlsZXBhdGgpO1xuICAgICAgaWYgKGZpbGVQYXRoSXNEaXJlY3RvcnkgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGZpbGVwYXRoO1xuICAgICAgfVxuICAgICAgY29uc3QgZGlyZWN0b3J5ID0gX3BhdGguZGVmYXVsdC5kaXJuYW1lKGZpbGVwYXRoKTtcbiAgICAgIHJldHVybiBkaXJlY3Rvcnk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldERpcmVjdG9yeVN5bmMoZmlsZXBhdGgpIHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoSXNEaXJlY3RvcnkgPSAoMCwgX3BhdGhUeXBlLmlzRGlyZWN0b3J5U3luYykoZmlsZXBhdGgpO1xuICAgICAgaWYgKGZpbGVQYXRoSXNEaXJlY3RvcnkgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGZpbGVwYXRoO1xuICAgICAgfVxuICAgICAgY29uc3QgZGlyZWN0b3J5ID0gX3BhdGguZGVmYXVsdC5kaXJuYW1lKGZpbGVwYXRoKTtcbiAgICAgIHJldHVybiBkaXJlY3Rvcnk7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvcmVhZEZpbGUuanNcbnZhciByZXF1aXJlX3JlYWRGaWxlID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvcmVhZEZpbGUuanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMucmVhZEZpbGUgPSByZWFkRmlsZTtcbiAgICBleHBvcnRzLnJlYWRGaWxlU3luYyA9IHJlYWRGaWxlU3luYztcbiAgICB2YXIgX2ZzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfX3JlcXVpcmUoXCJmc1wiKSk7XG4gICAgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBmc1JlYWRGaWxlQXN5bmMocGF0aG5hbWUsIGVuY29kaW5nKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBfZnMuZGVmYXVsdC5yZWFkRmlsZShwYXRobmFtZSwgZW5jb2RpbmcsIChlcnJvciwgY29udGVudHMpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUoY29udGVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiByZWFkRmlsZShmaWxlcGF0aCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCB0aHJvd05vdEZvdW5kID0gb3B0aW9ucy50aHJvd05vdEZvdW5kID09PSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzUmVhZEZpbGVBc3luYyhmaWxlcGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICh0aHJvd05vdEZvdW5kID09PSBmYWxzZSAmJiAoZXJyb3IuY29kZSA9PT0gXCJFTk9FTlRcIiB8fCBlcnJvci5jb2RlID09PSBcIkVJU0RJUlwiKSkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkRmlsZVN5bmMoZmlsZXBhdGgsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgY29uc3QgdGhyb3dOb3RGb3VuZCA9IG9wdGlvbnMudGhyb3dOb3RGb3VuZCA9PT0gdHJ1ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBfZnMuZGVmYXVsdC5yZWFkRmlsZVN5bmMoZmlsZXBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAodGhyb3dOb3RGb3VuZCA9PT0gZmFsc2UgJiYgKGVycm9yLmNvZGUgPT09IFwiRU5PRU5UXCIgfHwgZXJyb3IuY29kZSA9PT0gXCJFSVNESVJcIikpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9FeHBsb3Jlci5qc1xudmFyIHJlcXVpcmVfRXhwbG9yZXIgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY29zbWljb25maWcvZGlzdC9FeHBsb3Jlci5qc1wiKGV4cG9ydHMpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICAgIHZhbHVlOiB0cnVlXG4gICAgfSk7XG4gICAgZXhwb3J0cy5FeHBsb3JlciA9IHZvaWQgMDtcbiAgICB2YXIgX3BhdGggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9fcmVxdWlyZShcInBhdGhcIikpO1xuICAgIHZhciBfY2FjaGVXcmFwcGVyID0gcmVxdWlyZV9jYWNoZVdyYXBwZXIoKTtcbiAgICB2YXIgX0V4cGxvcmVyQmFzZSA9IHJlcXVpcmVfRXhwbG9yZXJCYXNlKCk7XG4gICAgdmFyIF9nZXREaXJlY3RvcnkgPSByZXF1aXJlX2dldERpcmVjdG9yeSgpO1xuICAgIHZhciBfcmVhZEZpbGUgPSByZXF1aXJlX3JlYWRGaWxlKCk7XG4gICAgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xuICAgIH1cbiAgICB2YXIgRXhwbG9yZXIgPSBjbGFzcyBleHRlbmRzIF9FeHBsb3JlckJhc2UuRXhwbG9yZXJCYXNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBhc3luYyBzZWFyY2goc2VhcmNoRnJvbSA9IHByb2Nlc3MuY3dkKCkpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1ldGFDb25maWdGaWxlUGF0aCkge1xuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuX2xvYWRGaWxlKHRoaXMuY29uZmlnLm1ldGFDb25maWdGaWxlUGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgaWYgKGNvbmZpZyAmJiAhY29uZmlnLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlYXJjaEZyb21EaXJlY3RvcnkoYXdhaXQgKDAsIF9nZXREaXJlY3RvcnkuZ2V0RGlyZWN0b3J5KShzZWFyY2hGcm9tKSk7XG4gICAgICB9XG4gICAgICBhc3luYyBzZWFyY2hGcm9tRGlyZWN0b3J5KGRpcikge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZURpciA9IF9wYXRoLmRlZmF1bHQucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBkaXIpO1xuICAgICAgICBjb25zdCBydW4gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zZWFyY2hEaXJlY3RvcnkoYWJzb2x1dGVEaXIpO1xuICAgICAgICAgIGNvbnN0IG5leHREaXIgPSB0aGlzLm5leHREaXJlY3RvcnlUb1NlYXJjaChhYnNvbHV0ZURpciwgcmVzdWx0KTtcbiAgICAgICAgICBpZiAobmV4dERpcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoRnJvbURpcmVjdG9yeShuZXh0RGlyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29uZmlnLnRyYW5zZm9ybShyZXN1bHQpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hDYWNoZSkge1xuICAgICAgICAgIHJldHVybiAoMCwgX2NhY2hlV3JhcHBlci5jYWNoZVdyYXBwZXIpKHRoaXMuc2VhcmNoQ2FjaGUsIGFic29sdXRlRGlyLCBydW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBydW4oKTtcbiAgICAgIH1cbiAgICAgIGFzeW5jIHNlYXJjaERpcmVjdG9yeShkaXIpIHtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBwbGFjZSBvZiB0aGlzLmNvbmZpZy5zZWFyY2hQbGFjZXMpIHtcbiAgICAgICAgICBjb25zdCBwbGFjZVJlc3VsdCA9IGF3YWl0IHRoaXMubG9hZFNlYXJjaFBsYWNlKGRpciwgcGxhY2UpO1xuICAgICAgICAgIGlmICh0aGlzLnNob3VsZFNlYXJjaFN0b3BXaXRoUmVzdWx0KHBsYWNlUmVzdWx0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlUmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGFzeW5jIGxvYWRTZWFyY2hQbGFjZShkaXIsIHBsYWNlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gX3BhdGguZGVmYXVsdC5qb2luKGRpciwgcGxhY2UpO1xuICAgICAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCAoMCwgX3JlYWRGaWxlLnJlYWRGaWxlKShmaWxlcGF0aCk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZUNvc21pY29uZmlnUmVzdWx0KGZpbGVwYXRoLCBmaWxlQ29udGVudHMsIGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIGFzeW5jIGxvYWRGaWxlQ29udGVudChmaWxlcGF0aCwgY29udGVudCkge1xuICAgICAgICBpZiAoY29udGVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb250ZW50LnRyaW0oKSA9PT0gXCJcIikge1xuICAgICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9hZGVyID0gdGhpcy5nZXRMb2FkZXJFbnRyeUZvckZpbGUoZmlsZXBhdGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBsb2FkZXIoZmlsZXBhdGgsIGNvbnRlbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgZS5maWxlcGF0aCA9IGZpbGVwYXRoO1xuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFzeW5jIGNyZWF0ZUNvc21pY29uZmlnUmVzdWx0KGZpbGVwYXRoLCBjb250ZW50LCBmb3JjZVByb3ApIHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCB0aGlzLmxvYWRGaWxlQ29udGVudChmaWxlcGF0aCwgY29udGVudCk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRlZENvbnRlbnRUb0Nvc21pY29uZmlnUmVzdWx0KGZpbGVwYXRoLCBmaWxlQ29udGVudCwgZm9yY2VQcm9wKTtcbiAgICAgIH1cbiAgICAgIGFzeW5jIGxvYWQoZmlsZXBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRGaWxlKGZpbGVwYXRoLCBmYWxzZSk7XG4gICAgICB9XG4gICAgICBhc3luYyBfbG9hZEZpbGUoZmlsZXBhdGgsIGZvcmNlUHJvcCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlRmlsZVBhdGgoZmlsZXBhdGgpO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZUZpbGVQYXRoID0gX3BhdGguZGVmYXVsdC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGZpbGVwYXRoKTtcbiAgICAgICAgY29uc3QgcnVuTG9hZCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWxlQ29udGVudHMgPSBhd2FpdCAoMCwgX3JlYWRGaWxlLnJlYWRGaWxlKShhYnNvbHV0ZUZpbGVQYXRoLCB7XG4gICAgICAgICAgICB0aHJvd05vdEZvdW5kOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jcmVhdGVDb3NtaWNvbmZpZ1Jlc3VsdChhYnNvbHV0ZUZpbGVQYXRoLCBmaWxlQ29udGVudHMsIGZvcmNlUHJvcCk7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29uZmlnLnRyYW5zZm9ybShyZXN1bHQpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5sb2FkQ2FjaGUpIHtcbiAgICAgICAgICByZXR1cm4gKDAsIF9jYWNoZVdyYXBwZXIuY2FjaGVXcmFwcGVyKSh0aGlzLmxvYWRDYWNoZSwgYWJzb2x1dGVGaWxlUGF0aCwgcnVuTG9hZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJ1bkxvYWQoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGV4cG9ydHMuRXhwbG9yZXIgPSBFeHBsb3JlcjtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L0V4cGxvcmVyU3luYy5qc1xudmFyIHJlcXVpcmVfRXhwbG9yZXJTeW5jID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvRXhwbG9yZXJTeW5jLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgICBleHBvcnRzLkV4cGxvcmVyU3luYyA9IHZvaWQgMDtcbiAgICB2YXIgX3BhdGggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9fcmVxdWlyZShcInBhdGhcIikpO1xuICAgIHZhciBfY2FjaGVXcmFwcGVyID0gcmVxdWlyZV9jYWNoZVdyYXBwZXIoKTtcbiAgICB2YXIgX0V4cGxvcmVyQmFzZSA9IHJlcXVpcmVfRXhwbG9yZXJCYXNlKCk7XG4gICAgdmFyIF9nZXREaXJlY3RvcnkgPSByZXF1aXJlX2dldERpcmVjdG9yeSgpO1xuICAgIHZhciBfcmVhZEZpbGUgPSByZXF1aXJlX3JlYWRGaWxlKCk7XG4gICAgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xuICAgIH1cbiAgICB2YXIgRXhwbG9yZXJTeW5jID0gY2xhc3MgZXh0ZW5kcyBfRXhwbG9yZXJCYXNlLkV4cGxvcmVyQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgc2VhcmNoU3luYyhzZWFyY2hGcm9tID0gcHJvY2Vzcy5jd2QoKSkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcubWV0YUNvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fbG9hZEZpbGVTeW5jKHRoaXMuY29uZmlnLm1ldGFDb25maWdGaWxlUGF0aCwgdHJ1ZSk7XG4gICAgICAgICAgaWYgKGNvbmZpZyAmJiAhY29uZmlnLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEZyb21EaXJlY3RvcnlTeW5jKCgwLCBfZ2V0RGlyZWN0b3J5LmdldERpcmVjdG9yeVN5bmMpKHNlYXJjaEZyb20pKTtcbiAgICAgIH1cbiAgICAgIHNlYXJjaEZyb21EaXJlY3RvcnlTeW5jKGRpcikge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZURpciA9IF9wYXRoLmRlZmF1bHQucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBkaXIpO1xuICAgICAgICBjb25zdCBydW4gPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zZWFyY2hEaXJlY3RvcnlTeW5jKGFic29sdXRlRGlyKTtcbiAgICAgICAgICBjb25zdCBuZXh0RGlyID0gdGhpcy5uZXh0RGlyZWN0b3J5VG9TZWFyY2goYWJzb2x1dGVEaXIsIHJlc3VsdCk7XG4gICAgICAgICAgaWYgKG5leHREaXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEZyb21EaXJlY3RvcnlTeW5jKG5leHREaXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtKHJlc3VsdCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaENhY2hlKSB7XG4gICAgICAgICAgcmV0dXJuICgwLCBfY2FjaGVXcmFwcGVyLmNhY2hlV3JhcHBlclN5bmMpKHRoaXMuc2VhcmNoQ2FjaGUsIGFic29sdXRlRGlyLCBydW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBydW4oKTtcbiAgICAgIH1cbiAgICAgIHNlYXJjaERpcmVjdG9yeVN5bmMoZGlyKSB7XG4gICAgICAgIGZvciAoY29uc3QgcGxhY2Ugb2YgdGhpcy5jb25maWcuc2VhcmNoUGxhY2VzKSB7XG4gICAgICAgICAgY29uc3QgcGxhY2VSZXN1bHQgPSB0aGlzLmxvYWRTZWFyY2hQbGFjZVN5bmMoZGlyLCBwbGFjZSk7XG4gICAgICAgICAgaWYgKHRoaXMuc2hvdWxkU2VhcmNoU3RvcFdpdGhSZXN1bHQocGxhY2VSZXN1bHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGxhY2VSZXN1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgbG9hZFNlYXJjaFBsYWNlU3luYyhkaXIsIHBsYWNlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVwYXRoID0gX3BhdGguZGVmYXVsdC5qb2luKGRpciwgcGxhY2UpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gKDAsIF9yZWFkRmlsZS5yZWFkRmlsZVN5bmMpKGZpbGVwYXRoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29zbWljb25maWdSZXN1bHRTeW5jKGZpbGVwYXRoLCBjb250ZW50LCBmYWxzZSk7XG4gICAgICB9XG4gICAgICBsb2FkRmlsZUNvbnRlbnRTeW5jKGZpbGVwYXRoLCBjb250ZW50KSB7XG4gICAgICAgIGlmIChjb250ZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRlbnQudHJpbSgpID09PSBcIlwiKSB7XG4gICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmdldExvYWRlckVudHJ5Rm9yRmlsZShmaWxlcGF0aCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGxvYWRlcihmaWxlcGF0aCwgY29udGVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBlLmZpbGVwYXRoID0gZmlsZXBhdGg7XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY3JlYXRlQ29zbWljb25maWdSZXN1bHRTeW5jKGZpbGVwYXRoLCBjb250ZW50LCBmb3JjZVByb3ApIHtcbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnQgPSB0aGlzLmxvYWRGaWxlQ29udGVudFN5bmMoZmlsZXBhdGgsIGNvbnRlbnQpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkZWRDb250ZW50VG9Db3NtaWNvbmZpZ1Jlc3VsdChmaWxlcGF0aCwgZmlsZUNvbnRlbnQsIGZvcmNlUHJvcCk7XG4gICAgICB9XG4gICAgICBsb2FkU3luYyhmaWxlcGF0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZEZpbGVTeW5jKGZpbGVwYXRoLCBmYWxzZSk7XG4gICAgICB9XG4gICAgICBfbG9hZEZpbGVTeW5jKGZpbGVwYXRoLCBmb3JjZVByb3ApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZpbGVQYXRoKGZpbGVwYXRoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVGaWxlUGF0aCA9IF9wYXRoLmRlZmF1bHQucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBmaWxlcGF0aCk7XG4gICAgICAgIGNvbnN0IHJ1bkxvYWRTeW5jID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSAoMCwgX3JlYWRGaWxlLnJlYWRGaWxlU3luYykoYWJzb2x1dGVGaWxlUGF0aCwge1xuICAgICAgICAgICAgdGhyb3dOb3RGb3VuZDogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGNvc21pY29uZmlnUmVzdWx0ID0gdGhpcy5jcmVhdGVDb3NtaWNvbmZpZ1Jlc3VsdFN5bmMoYWJzb2x1dGVGaWxlUGF0aCwgY29udGVudCwgZm9yY2VQcm9wKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtKGNvc21pY29uZmlnUmVzdWx0KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMubG9hZENhY2hlKSB7XG4gICAgICAgICAgcmV0dXJuICgwLCBfY2FjaGVXcmFwcGVyLmNhY2hlV3JhcHBlclN5bmMpKHRoaXMubG9hZENhY2hlLCBhYnNvbHV0ZUZpbGVQYXRoLCBydW5Mb2FkU3luYyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJ1bkxvYWRTeW5jKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLkV4cGxvcmVyU3luYyA9IEV4cGxvcmVyU3luYztcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L3R5cGVzLmpzXG52YXIgcmVxdWlyZV90eXBlcyA9IF9fY29tbW9uSlMoe1xuICBcIm5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L3R5cGVzLmpzXCIoZXhwb3J0cykge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgICAgdmFsdWU6IHRydWVcbiAgICB9KTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jb3NtaWNvbmZpZy9kaXN0L2luZGV4LmpzXG52YXIgcmVxdWlyZV9kaXN0ID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2Nvc21pY29uZmlnL2Rpc3QvaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgICB2YWx1ZTogdHJ1ZVxuICAgIH0pO1xuICAgIGV4cG9ydHMuY29zbWljb25maWcgPSBjb3NtaWNvbmZpZzI7XG4gICAgZXhwb3J0cy5jb3NtaWNvbmZpZ1N5bmMgPSBjb3NtaWNvbmZpZ1N5bmM7XG4gICAgZXhwb3J0cy5tZXRhU2VhcmNoUGxhY2VzID0gZXhwb3J0cy5kZWZhdWx0TG9hZGVyc1N5bmMgPSBleHBvcnRzLmRlZmF1bHRMb2FkZXJzID0gdm9pZCAwO1xuICAgIHZhciBfb3MgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9fcmVxdWlyZShcIm9zXCIpKTtcbiAgICB2YXIgX0V4cGxvcmVyID0gcmVxdWlyZV9FeHBsb3JlcigpO1xuICAgIHZhciBfRXhwbG9yZXJTeW5jID0gcmVxdWlyZV9FeHBsb3JlclN5bmMoKTtcbiAgICB2YXIgX2xvYWRlcnMgPSByZXF1aXJlX2xvYWRlcnMoKTtcbiAgICB2YXIgX3R5cGVzID0gcmVxdWlyZV90eXBlcygpO1xuICAgIGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbiAgICB9XG4gICAgdmFyIG1ldGFTZWFyY2hQbGFjZXMgPSBbXCJwYWNrYWdlLmpzb25cIiwgXCIuY29uZmlnLmpzb25cIiwgXCIuY29uZmlnLnlhbWxcIiwgXCIuY29uZmlnLnltbFwiLCBcIi5jb25maWcuanNcIiwgXCIuY29uZmlnLmNqc1wiLCBcIi5jb25maWcubWpzXCJdO1xuICAgIGV4cG9ydHMubWV0YVNlYXJjaFBsYWNlcyA9IG1ldGFTZWFyY2hQbGFjZXM7XG4gICAgdmFyIGRlZmF1bHRMb2FkZXJzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgICBcIi5tanNcIjogX2xvYWRlcnMubG9hZGVycy5sb2FkSnMsXG4gICAgICBcIi5janNcIjogX2xvYWRlcnMubG9hZGVycy5sb2FkSnMsXG4gICAgICBcIi5qc1wiOiBfbG9hZGVycy5sb2FkZXJzLmxvYWRKcyxcbiAgICAgIFwiLmpzb25cIjogX2xvYWRlcnMubG9hZGVycy5sb2FkSnNvbixcbiAgICAgIFwiLnlhbWxcIjogX2xvYWRlcnMubG9hZGVycy5sb2FkWWFtbCxcbiAgICAgIFwiLnltbFwiOiBfbG9hZGVycy5sb2FkZXJzLmxvYWRZYW1sLFxuICAgICAgbm9FeHQ6IF9sb2FkZXJzLmxvYWRlcnMubG9hZFlhbWxcbiAgICB9KTtcbiAgICBleHBvcnRzLmRlZmF1bHRMb2FkZXJzID0gZGVmYXVsdExvYWRlcnM7XG4gICAgdmFyIGRlZmF1bHRMb2FkZXJzU3luYyA9IE9iamVjdC5mcmVlemUoe1xuICAgICAgXCIuY2pzXCI6IF9sb2FkZXJzLmxvYWRlcnMubG9hZEpzU3luYyxcbiAgICAgIFwiLmpzXCI6IF9sb2FkZXJzLmxvYWRlcnMubG9hZEpzU3luYyxcbiAgICAgIFwiLmpzb25cIjogX2xvYWRlcnMubG9hZGVycy5sb2FkSnNvbixcbiAgICAgIFwiLnlhbWxcIjogX2xvYWRlcnMubG9hZGVycy5sb2FkWWFtbCxcbiAgICAgIFwiLnltbFwiOiBfbG9hZGVycy5sb2FkZXJzLmxvYWRZYW1sLFxuICAgICAgbm9FeHQ6IF9sb2FkZXJzLmxvYWRlcnMubG9hZFlhbWxcbiAgICB9KTtcbiAgICBleHBvcnRzLmRlZmF1bHRMb2FkZXJzU3luYyA9IGRlZmF1bHRMb2FkZXJzU3luYztcbiAgICB2YXIgaWRlbnRpdHkgPSBmdW5jdGlvbiBpZGVudGl0eTIoeCkge1xuICAgICAgcmV0dXJuIHg7XG4gICAgfTtcbiAgICBmdW5jdGlvbiByZXBsYWNlTWV0YVBsYWNlaG9sZGVycyhwYXRocywgbW9kdWxlTmFtZSkge1xuICAgICAgcmV0dXJuIHBhdGhzLm1hcCgocGF0aCkgPT4gcGF0aC5yZXBsYWNlKFwie25hbWV9XCIsIG1vZHVsZU5hbWUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RXhwbG9yZXJPcHRpb25zKG1vZHVsZU5hbWUsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfbWV0YUNvbmZpZyRjb25maWc7XG4gICAgICBjb25zdCBtZXRhRXhwbG9yZXIgPSBuZXcgX0V4cGxvcmVyU3luYy5FeHBsb3JlclN5bmMoe1xuICAgICAgICBwYWNrYWdlUHJvcDogXCJjb3NtaWNvbmZpZ1wiLFxuICAgICAgICBzdG9wRGlyOiBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICBzZWFyY2hQbGFjZXM6IG1ldGFTZWFyY2hQbGFjZXMsXG4gICAgICAgIGlnbm9yZUVtcHR5U2VhcmNoUGxhY2VzOiBmYWxzZSxcbiAgICAgICAgdXNlUGFja2FnZVByb3BJbkNvbmZpZ0ZpbGVzOiB0cnVlLFxuICAgICAgICBsb2FkZXJzOiBkZWZhdWx0TG9hZGVycyxcbiAgICAgICAgdHJhbnNmb3JtOiBpZGVudGl0eSxcbiAgICAgICAgY2FjaGU6IHRydWUsXG4gICAgICAgIG1ldGFDb25maWdGaWxlUGF0aDogbnVsbFxuICAgICAgfSk7XG4gICAgICBjb25zdCBtZXRhQ29uZmlnID0gbWV0YUV4cGxvcmVyLnNlYXJjaFN5bmMoKTtcbiAgICAgIGlmICghbWV0YUNvbmZpZykge1xuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICAgIH1cbiAgICAgIGlmICgoX21ldGFDb25maWckY29uZmlnID0gbWV0YUNvbmZpZy5jb25maWcpICE9PSBudWxsICYmIF9tZXRhQ29uZmlnJGNvbmZpZyAhPT0gdm9pZCAwICYmIF9tZXRhQ29uZmlnJGNvbmZpZy5sb2FkZXJzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbiBub3Qgc3BlY2lmeSBsb2FkZXJzIGluIG1ldGEgY29uZmlnIGZpbGVcIik7XG4gICAgICB9XG4gICAgICBjb25zdCBvdmVycmlkZU9wdGlvbnMgPSBtZXRhQ29uZmlnLmNvbmZpZyA/PyB7fTtcbiAgICAgIGlmIChvdmVycmlkZU9wdGlvbnMuc2VhcmNoUGxhY2VzKSB7XG4gICAgICAgIG92ZXJyaWRlT3B0aW9ucy5zZWFyY2hQbGFjZXMgPSByZXBsYWNlTWV0YVBsYWNlaG9sZGVycyhvdmVycmlkZU9wdGlvbnMuc2VhcmNoUGxhY2VzLCBtb2R1bGVOYW1lKTtcbiAgICAgIH1cbiAgICAgIG92ZXJyaWRlT3B0aW9ucy5tZXRhQ29uZmlnRmlsZVBhdGggPSBtZXRhQ29uZmlnLmZpbGVwYXRoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgLi4ub3ZlcnJpZGVPcHRpb25zXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb3NtaWNvbmZpZzIobW9kdWxlTmFtZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCBleHBsb3Jlck9wdGlvbnMgPSBnZXRFeHBsb3Jlck9wdGlvbnMobW9kdWxlTmFtZSwgb3B0aW9ucyk7XG4gICAgICBjb25zdCBub3JtYWxpemVkT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGlvbnMobW9kdWxlTmFtZSwgZXhwbG9yZXJPcHRpb25zKTtcbiAgICAgIGNvbnN0IGV4cGxvcmVyID0gbmV3IF9FeHBsb3Jlci5FeHBsb3Jlcihub3JtYWxpemVkT3B0aW9ucyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWFyY2g6IGV4cGxvcmVyLnNlYXJjaC5iaW5kKGV4cGxvcmVyKSxcbiAgICAgICAgbG9hZDogZXhwbG9yZXIubG9hZC5iaW5kKGV4cGxvcmVyKSxcbiAgICAgICAgY2xlYXJMb2FkQ2FjaGU6IGV4cGxvcmVyLmNsZWFyTG9hZENhY2hlLmJpbmQoZXhwbG9yZXIpLFxuICAgICAgICBjbGVhclNlYXJjaENhY2hlOiBleHBsb3Jlci5jbGVhclNlYXJjaENhY2hlLmJpbmQoZXhwbG9yZXIpLFxuICAgICAgICBjbGVhckNhY2hlczogZXhwbG9yZXIuY2xlYXJDYWNoZXMuYmluZChleHBsb3JlcilcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvc21pY29uZmlnU3luYyhtb2R1bGVOYW1lLCBvcHRpb25zID0ge30pIHtcbiAgICAgIGNvbnN0IGV4cGxvcmVyT3B0aW9ucyA9IGdldEV4cGxvcmVyT3B0aW9ucyhtb2R1bGVOYW1lLCBvcHRpb25zKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zID0gbm9ybWFsaXplT3B0aW9uc1N5bmMobW9kdWxlTmFtZSwgZXhwbG9yZXJPcHRpb25zKTtcbiAgICAgIGNvbnN0IGV4cGxvcmVyU3luYyA9IG5ldyBfRXhwbG9yZXJTeW5jLkV4cGxvcmVyU3luYyhub3JtYWxpemVkT3B0aW9ucyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWFyY2g6IGV4cGxvcmVyU3luYy5zZWFyY2hTeW5jLmJpbmQoZXhwbG9yZXJTeW5jKSxcbiAgICAgICAgbG9hZDogZXhwbG9yZXJTeW5jLmxvYWRTeW5jLmJpbmQoZXhwbG9yZXJTeW5jKSxcbiAgICAgICAgY2xlYXJMb2FkQ2FjaGU6IGV4cGxvcmVyU3luYy5jbGVhckxvYWRDYWNoZS5iaW5kKGV4cGxvcmVyU3luYyksXG4gICAgICAgIGNsZWFyU2VhcmNoQ2FjaGU6IGV4cGxvcmVyU3luYy5jbGVhclNlYXJjaENhY2hlLmJpbmQoZXhwbG9yZXJTeW5jKSxcbiAgICAgICAgY2xlYXJDYWNoZXM6IGV4cGxvcmVyU3luYy5jbGVhckNhY2hlcy5iaW5kKGV4cGxvcmVyU3luYylcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMobW9kdWxlTmFtZSwgb3B0aW9ucykge1xuICAgICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICAgIHBhY2thZ2VQcm9wOiBtb2R1bGVOYW1lLFxuICAgICAgICBzZWFyY2hQbGFjZXM6IFtcInBhY2thZ2UuanNvblwiLCBgLiR7bW9kdWxlTmFtZX1yY2AsIGAuJHttb2R1bGVOYW1lfXJjLmpzb25gLCBgLiR7bW9kdWxlTmFtZX1yYy55YW1sYCwgYC4ke21vZHVsZU5hbWV9cmMueW1sYCwgYC4ke21vZHVsZU5hbWV9cmMuanNgLCBgLiR7bW9kdWxlTmFtZX1yYy5janNgLCBgLiR7bW9kdWxlTmFtZX1yYy5tanNgLCBgLmNvbmZpZy8ke21vZHVsZU5hbWV9cmNgLCBgLmNvbmZpZy8ke21vZHVsZU5hbWV9cmMuanNvbmAsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy55YW1sYCwgYC5jb25maWcvJHttb2R1bGVOYW1lfXJjLnltbGAsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy5qc2AsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy5janNgLCBgLmNvbmZpZy8ke21vZHVsZU5hbWV9cmMubWpzYCwgYCR7bW9kdWxlTmFtZX0uY29uZmlnLmpzYCwgYCR7bW9kdWxlTmFtZX0uY29uZmlnLmNqc2AsIGAke21vZHVsZU5hbWV9LmNvbmZpZy5tanNgXS5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIGlnbm9yZUVtcHR5U2VhcmNoUGxhY2VzOiB0cnVlLFxuICAgICAgICBzdG9wRGlyOiBfb3MuZGVmYXVsdC5ob21lZGlyKCksXG4gICAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgICB0cmFuc2Zvcm06IGlkZW50aXR5LFxuICAgICAgICBsb2FkZXJzOiBkZWZhdWx0TG9hZGVycyxcbiAgICAgICAgbWV0YUNvbmZpZ0ZpbGVQYXRoOiBudWxsXG4gICAgICB9O1xuICAgICAgY29uc3Qgbm9ybWFsaXplZE9wdGlvbnMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBsb2FkZXJzOiB7XG4gICAgICAgICAgLi4uZGVmYXVsdHMubG9hZGVycyxcbiAgICAgICAgICAuLi5vcHRpb25zLmxvYWRlcnNcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiBub3JtYWxpemVkT3B0aW9ucztcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9ybWFsaXplT3B0aW9uc1N5bmMobW9kdWxlTmFtZSwgb3B0aW9ucykge1xuICAgICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICAgIHBhY2thZ2VQcm9wOiBtb2R1bGVOYW1lLFxuICAgICAgICBzZWFyY2hQbGFjZXM6IFtcInBhY2thZ2UuanNvblwiLCBgLiR7bW9kdWxlTmFtZX1yY2AsIGAuJHttb2R1bGVOYW1lfXJjLmpzb25gLCBgLiR7bW9kdWxlTmFtZX1yYy55YW1sYCwgYC4ke21vZHVsZU5hbWV9cmMueW1sYCwgYC4ke21vZHVsZU5hbWV9cmMuanNgLCBgLiR7bW9kdWxlTmFtZX1yYy5janNgLCBgLmNvbmZpZy8ke21vZHVsZU5hbWV9cmNgLCBgLmNvbmZpZy8ke21vZHVsZU5hbWV9cmMuanNvbmAsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy55YW1sYCwgYC5jb25maWcvJHttb2R1bGVOYW1lfXJjLnltbGAsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy5qc2AsIGAuY29uZmlnLyR7bW9kdWxlTmFtZX1yYy5janNgLCBgJHttb2R1bGVOYW1lfS5jb25maWcuanNgLCBgJHttb2R1bGVOYW1lfS5jb25maWcuY2pzYF0sXG4gICAgICAgIGlnbm9yZUVtcHR5U2VhcmNoUGxhY2VzOiB0cnVlLFxuICAgICAgICBzdG9wRGlyOiBfb3MuZGVmYXVsdC5ob21lZGlyKCksXG4gICAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgICB0cmFuc2Zvcm06IGlkZW50aXR5LFxuICAgICAgICBsb2FkZXJzOiBkZWZhdWx0TG9hZGVyc1N5bmMsXG4gICAgICAgIG1ldGFDb25maWdGaWxlUGF0aDogbnVsbFxuICAgICAgfTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zID0ge1xuICAgICAgICAuLi5kZWZhdWx0cyxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbG9hZGVyczoge1xuICAgICAgICAgIC4uLmRlZmF1bHRzLmxvYWRlcnMsXG4gICAgICAgICAgLi4ub3B0aW9ucy5sb2FkZXJzXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gbm9ybWFsaXplZE9wdGlvbnM7XG4gICAgfVxuICB9XG59KTtcblxuLy8gbm9kZV9tb2R1bGVzL2ZpbmQtcGFyZW50LWRpci9pbmRleC5qc1xudmFyIHJlcXVpcmVfZmluZF9wYXJlbnRfZGlyID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2ZpbmQtcGFyZW50LWRpci9pbmRleC5qc1wiKGV4cG9ydHMsIG1vZHVsZSkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHZhciBwYXRoID0gX19yZXF1aXJlKFwicGF0aFwiKTtcbiAgICB2YXIgZnMyID0gX19yZXF1aXJlKFwiZnNcIik7XG4gICAgdmFyIGV4aXN0cyA9IGZzMi5leGlzdHMgfHwgcGF0aC5leGlzdHM7XG4gICAgdmFyIGV4aXN0c1N5bmMgPSBmczIuZXhpc3RzU3luYyB8fCBwYXRoLmV4aXN0c1N5bmM7XG4gICAgZnVuY3Rpb24gc3BsaXRQYXRoKHBhdGgyKSB7XG4gICAgICB2YXIgcGFydHMgPSBwYXRoMi5zcGxpdCgvKFxcL3xcXFxcKS8pO1xuICAgICAgaWYgKCFwYXJ0cy5sZW5ndGgpXG4gICAgICAgIHJldHVybiBwYXJ0cztcbiAgICAgIHJldHVybiAhcGFydHNbMF0ubGVuZ3RoID8gcGFydHMuc2xpY2UoMSkgOiBwYXJ0cztcbiAgICB9XG4gICAgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY3VycmVudEZ1bGxQYXRoLCBjbHVlLCBjYikge1xuICAgICAgZnVuY3Rpb24gdGVzdERpcihwYXJ0cykge1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAwKVxuICAgICAgICAgIHJldHVybiBjYihudWxsLCBudWxsKTtcbiAgICAgICAgdmFyIHAgPSBwYXJ0cy5qb2luKFwiXCIpO1xuICAgICAgICBleGlzdHMocGF0aC5qb2luKHAsIGNsdWUpLCBmdW5jdGlvbihpdGRvZXMpIHtcbiAgICAgICAgICBpZiAoaXRkb2VzKVxuICAgICAgICAgICAgcmV0dXJuIGNiKG51bGwsIHApO1xuICAgICAgICAgIHRlc3REaXIocGFydHMuc2xpY2UoMCwgLTEpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0ZXN0RGlyKHNwbGl0UGF0aChjdXJyZW50RnVsbFBhdGgpKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuc3luYyA9IGZ1bmN0aW9uKGN1cnJlbnRGdWxsUGF0aCwgY2x1ZSkge1xuICAgICAgZnVuY3Rpb24gdGVzdERpcihwYXJ0cykge1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAwKVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB2YXIgcCA9IHBhcnRzLmpvaW4oXCJcIik7XG4gICAgICAgIHZhciBpdGRvZXMgPSBleGlzdHNTeW5jKHBhdGguam9pbihwLCBjbHVlKSk7XG4gICAgICAgIHJldHVybiBpdGRvZXMgPyBwIDogdGVzdERpcihwYXJ0cy5zbGljZSgwLCAtMSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRlc3REaXIoc3BsaXRQYXRoKGN1cnJlbnRGdWxsUGF0aCkpO1xuICAgIH07XG4gIH1cbn0pO1xuXG4vLyBub2RlX21vZHVsZXMvY2ktaW5mby92ZW5kb3JzLmpzb25cbnZhciByZXF1aXJlX3ZlbmRvcnMgPSBfX2NvbW1vbkpTKHtcbiAgXCJub2RlX21vZHVsZXMvY2ktaW5mby92ZW5kb3JzLmpzb25cIihleHBvcnRzLCBtb2R1bGUpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJBcHBjaXJjbGVcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiQVBQQ0lSQ0xFXCIsXG4gICAgICAgIGVudjogXCJBQ19BUFBDSVJDTEVcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJBcHBWZXlvclwiLFxuICAgICAgICBjb25zdGFudDogXCJBUFBWRVlPUlwiLFxuICAgICAgICBlbnY6IFwiQVBQVkVZT1JcIixcbiAgICAgICAgcHI6IFwiQVBQVkVZT1JfUFVMTF9SRVFVRVNUX05VTUJFUlwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFXUyBDb2RlQnVpbGRcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiQ09ERUJVSUxEXCIsXG4gICAgICAgIGVudjogXCJDT0RFQlVJTERfQlVJTERfQVJOXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQXp1cmUgUGlwZWxpbmVzXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkFaVVJFX1BJUEVMSU5FU1wiLFxuICAgICAgICBlbnY6IFwiU1lTVEVNX1RFQU1GT1VOREFUSU9OQ09MTEVDVElPTlVSSVwiLFxuICAgICAgICBwcjogXCJTWVNURU1fUFVMTFJFUVVFU1RfUFVMTFJFUVVFU1RJRFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkJhbWJvb1wiLFxuICAgICAgICBjb25zdGFudDogXCJCQU1CT09cIixcbiAgICAgICAgZW52OiBcImJhbWJvb19wbGFuS2V5XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQml0YnVja2V0IFBpcGVsaW5lc1wiLFxuICAgICAgICBjb25zdGFudDogXCJCSVRCVUNLRVRcIixcbiAgICAgICAgZW52OiBcIkJJVEJVQ0tFVF9DT01NSVRcIixcbiAgICAgICAgcHI6IFwiQklUQlVDS0VUX1BSX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQml0cmlzZVwiLFxuICAgICAgICBjb25zdGFudDogXCJCSVRSSVNFXCIsXG4gICAgICAgIGVudjogXCJCSVRSSVNFX0lPXCIsXG4gICAgICAgIHByOiBcIkJJVFJJU0VfUFVMTF9SRVFVRVNUXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQnVkZHlcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiQlVERFlcIixcbiAgICAgICAgZW52OiBcIkJVRERZX1dPUktTUEFDRV9JRFwiLFxuICAgICAgICBwcjogXCJCVUREWV9FWEVDVVRJT05fUFVMTF9SRVFVRVNUX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQnVpbGRraXRlXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkJVSUxES0lURVwiLFxuICAgICAgICBlbnY6IFwiQlVJTERLSVRFXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgZW52OiBcIkJVSUxES0lURV9QVUxMX1JFUVVFU1RcIixcbiAgICAgICAgICBuZTogXCJmYWxzZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ2lyY2xlQ0lcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiQ0lSQ0xFXCIsXG4gICAgICAgIGVudjogXCJDSVJDTEVDSVwiLFxuICAgICAgICBwcjogXCJDSVJDTEVfUFVMTF9SRVFVRVNUXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ2lycnVzIENJXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkNJUlJVU1wiLFxuICAgICAgICBlbnY6IFwiQ0lSUlVTX0NJXCIsXG4gICAgICAgIHByOiBcIkNJUlJVU19QUlwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkNvZGVmcmVzaFwiLFxuICAgICAgICBjb25zdGFudDogXCJDT0RFRlJFU0hcIixcbiAgICAgICAgZW52OiBcIkNGX0JVSUxEX0lEXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgYW55OiBbXG4gICAgICAgICAgICBcIkNGX1BVTExfUkVRVUVTVF9OVU1CRVJcIixcbiAgICAgICAgICAgIFwiQ0ZfUFVMTF9SRVFVRVNUX0lEXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ29kZW1hZ2ljXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkNPREVNQUdJQ1wiLFxuICAgICAgICBlbnY6IFwiQ01fQlVJTERfSURcIixcbiAgICAgICAgcHI6IFwiQ01fUFVMTF9SRVFVRVNUXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ29kZXNoaXBcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiQ09ERVNISVBcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ0lfTkFNRTogXCJjb2Rlc2hpcFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRHJvbmVcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiRFJPTkVcIixcbiAgICAgICAgZW52OiBcIkRST05FXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgRFJPTkVfQlVJTERfRVZFTlQ6IFwicHVsbF9yZXF1ZXN0XCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJkc2FyaVwiLFxuICAgICAgICBjb25zdGFudDogXCJEU0FSSVwiLFxuICAgICAgICBlbnY6IFwiRFNBUklcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFeHBvIEFwcGxpY2F0aW9uIFNlcnZpY2VzXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkVBU1wiLFxuICAgICAgICBlbnY6IFwiRUFTX0JVSUxEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiR2Vycml0XCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkdFUlJJVFwiLFxuICAgICAgICBlbnY6IFwiR0VSUklUX1BST0pFQ1RcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJHaXRIdWIgQWN0aW9uc1wiLFxuICAgICAgICBjb25zdGFudDogXCJHSVRIVUJfQUNUSU9OU1wiLFxuICAgICAgICBlbnY6IFwiR0lUSFVCX0FDVElPTlNcIixcbiAgICAgICAgcHI6IHtcbiAgICAgICAgICBHSVRIVUJfRVZFTlRfTkFNRTogXCJwdWxsX3JlcXVlc3RcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdpdExhYiBDSVwiLFxuICAgICAgICBjb25zdGFudDogXCJHSVRMQUJcIixcbiAgICAgICAgZW52OiBcIkdJVExBQl9DSVwiLFxuICAgICAgICBwcjogXCJDSV9NRVJHRV9SRVFVRVNUX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiR29DRFwiLFxuICAgICAgICBjb25zdGFudDogXCJHT0NEXCIsXG4gICAgICAgIGVudjogXCJHT19QSVBFTElORV9MQUJFTFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkdvb2dsZSBDbG91ZCBCdWlsZFwiLFxuICAgICAgICBjb25zdGFudDogXCJHT09HTEVfQ0xPVURfQlVJTERcIixcbiAgICAgICAgZW52OiBcIkJVSUxERVJfT1VUUFVUXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSGFybmVzcyBDSVwiLFxuICAgICAgICBjb25zdGFudDogXCJIQVJORVNTXCIsXG4gICAgICAgIGVudjogXCJIQVJORVNTX0JVSUxEX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSGVyb2t1XCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkhFUk9LVVwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBlbnY6IFwiTk9ERVwiLFxuICAgICAgICAgIGluY2x1ZGVzOiBcIi9hcHAvLmhlcm9rdS9ub2RlL2Jpbi9ub2RlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJIdWRzb25cIixcbiAgICAgICAgY29uc3RhbnQ6IFwiSFVEU09OXCIsXG4gICAgICAgIGVudjogXCJIVURTT05fVVJMXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSmVua2luc1wiLFxuICAgICAgICBjb25zdGFudDogXCJKRU5LSU5TXCIsXG4gICAgICAgIGVudjogW1xuICAgICAgICAgIFwiSkVOS0lOU19VUkxcIixcbiAgICAgICAgICBcIkJVSUxEX0lEXCJcbiAgICAgICAgXSxcbiAgICAgICAgcHI6IHtcbiAgICAgICAgICBhbnk6IFtcbiAgICAgICAgICAgIFwiZ2hwcmJQdWxsSWRcIixcbiAgICAgICAgICAgIFwiQ0hBTkdFX0lEXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiTGF5ZXJDSVwiLFxuICAgICAgICBjb25zdGFudDogXCJMQVlFUkNJXCIsXG4gICAgICAgIGVudjogXCJMQVlFUkNJXCIsXG4gICAgICAgIHByOiBcIkxBWUVSQ0lfUFVMTF9SRVFVRVNUXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiTWFnbnVtIENJXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIk1BR05VTVwiLFxuICAgICAgICBlbnY6IFwiTUFHTlVNXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiTmV0bGlmeSBDSVwiLFxuICAgICAgICBjb25zdGFudDogXCJORVRMSUZZXCIsXG4gICAgICAgIGVudjogXCJORVRMSUZZXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgZW52OiBcIlBVTExfUkVRVUVTVFwiLFxuICAgICAgICAgIG5lOiBcImZhbHNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJOZXZlcmNvZGVcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiTkVWRVJDT0RFXCIsXG4gICAgICAgIGVudjogXCJORVZFUkNPREVcIixcbiAgICAgICAgcHI6IHtcbiAgICAgICAgICBlbnY6IFwiTkVWRVJDT0RFX1BVTExfUkVRVUVTVFwiLFxuICAgICAgICAgIG5lOiBcImZhbHNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJSZWxlYXNlSHViXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIlJFTEVBU0VIVUJcIixcbiAgICAgICAgZW52OiBcIlJFTEVBU0VfQlVJTERfSURcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJSZW5kZXJcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiUkVOREVSXCIsXG4gICAgICAgIGVudjogXCJSRU5ERVJcIixcbiAgICAgICAgcHI6IHtcbiAgICAgICAgICBJU19QVUxMX1JFUVVFU1Q6IFwidHJ1ZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2FpbCBDSVwiLFxuICAgICAgICBjb25zdGFudDogXCJTQUlMXCIsXG4gICAgICAgIGVudjogXCJTQUlMQ0lcIixcbiAgICAgICAgcHI6IFwiU0FJTF9QVUxMX1JFUVVFU1RfTlVNQkVSXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2NyZXdkcml2ZXJcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiU0NSRVdEUklWRVJcIixcbiAgICAgICAgZW52OiBcIlNDUkVXRFJJVkVSXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgZW52OiBcIlNEX1BVTExfUkVRVUVTVFwiLFxuICAgICAgICAgIG5lOiBcImZhbHNlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZW1hcGhvcmVcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiU0VNQVBIT1JFXCIsXG4gICAgICAgIGVudjogXCJTRU1BUEhPUkVcIixcbiAgICAgICAgcHI6IFwiUFVMTF9SRVFVRVNUX05VTUJFUlwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNoaXBwYWJsZVwiLFxuICAgICAgICBjb25zdGFudDogXCJTSElQUEFCTEVcIixcbiAgICAgICAgZW52OiBcIlNISVBQQUJMRVwiLFxuICAgICAgICBwcjoge1xuICAgICAgICAgIElTX1BVTExfUkVRVUVTVDogXCJ0cnVlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTb2xhbm8gQ0lcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiU09MQU5PXCIsXG4gICAgICAgIGVudjogXCJURERJVU1cIixcbiAgICAgICAgcHI6IFwiVERESVVNX1BSX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU291cmNlaHV0XCIsXG4gICAgICAgIGNvbnN0YW50OiBcIlNPVVJDRUhVVFwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDSV9OQU1FOiBcInNvdXJjZWh1dFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU3RyaWRlciBDRFwiLFxuICAgICAgICBjb25zdGFudDogXCJTVFJJREVSXCIsXG4gICAgICAgIGVudjogXCJTVFJJREVSXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiVGFza0NsdXN0ZXJcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiVEFTS0NMVVNURVJcIixcbiAgICAgICAgZW52OiBbXG4gICAgICAgICAgXCJUQVNLX0lEXCIsXG4gICAgICAgICAgXCJSVU5fSURcIlxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlRlYW1DaXR5XCIsXG4gICAgICAgIGNvbnN0YW50OiBcIlRFQU1DSVRZXCIsXG4gICAgICAgIGVudjogXCJURUFNQ0lUWV9WRVJTSU9OXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiVHJhdmlzIENJXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIlRSQVZJU1wiLFxuICAgICAgICBlbnY6IFwiVFJBVklTXCIsXG4gICAgICAgIHByOiB7XG4gICAgICAgICAgZW52OiBcIlRSQVZJU19QVUxMX1JFUVVFU1RcIixcbiAgICAgICAgICBuZTogXCJmYWxzZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiVmVyY2VsXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIlZFUkNFTFwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBhbnk6IFtcbiAgICAgICAgICAgIFwiTk9XX0JVSUxERVJcIixcbiAgICAgICAgICAgIFwiVkVSQ0VMXCJcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiVmlzdWFsIFN0dWRpbyBBcHAgQ2VudGVyXCIsXG4gICAgICAgIGNvbnN0YW50OiBcIkFQUENFTlRFUlwiLFxuICAgICAgICBlbnY6IFwiQVBQQ0VOVEVSX0JVSUxEX0lEXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiV29vZHBlY2tlclwiLFxuICAgICAgICBjb25zdGFudDogXCJXT09EUEVDS0VSXCIsXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiBcIndvb2RwZWNrZXJcIlxuICAgICAgICB9LFxuICAgICAgICBwcjoge1xuICAgICAgICAgIENJX0JVSUxEX0VWRU5UOiBcInB1bGxfcmVxdWVzdFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiWGNvZGUgQ2xvdWRcIixcbiAgICAgICAgY29uc3RhbnQ6IFwiWENPREVfQ0xPVURcIixcbiAgICAgICAgZW52OiBcIkNJX1hDT0RFX1BST0pFQ1RcIixcbiAgICAgICAgcHI6IFwiQ0lfUFVMTF9SRVFVRVNUX05VTUJFUlwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlhjb2RlIFNlcnZlclwiLFxuICAgICAgICBjb25zdGFudDogXCJYQ09ERV9TRVJWRVJcIixcbiAgICAgICAgZW52OiBcIlhDU1wiXG4gICAgICB9XG4gICAgXTtcbiAgfVxufSk7XG5cbi8vIG5vZGVfbW9kdWxlcy9jaS1pbmZvL2luZGV4LmpzXG52YXIgcmVxdWlyZV9jaV9pbmZvID0gX19jb21tb25KUyh7XG4gIFwibm9kZV9tb2R1bGVzL2NpLWluZm8vaW5kZXguanNcIihleHBvcnRzKSB7XG4gICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgdmFyIHZlbmRvcnMgPSByZXF1aXJlX3ZlbmRvcnMoKTtcbiAgICB2YXIgZW52ID0gcHJvY2Vzcy5lbnY7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX3ZlbmRvcnNcIiwge1xuICAgICAgdmFsdWU6IHZlbmRvcnMubWFwKGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgcmV0dXJuIHYuY29uc3RhbnQ7XG4gICAgICB9KVxuICAgIH0pO1xuICAgIGV4cG9ydHMubmFtZSA9IG51bGw7XG4gICAgZXhwb3J0cy5pc1BSID0gbnVsbDtcbiAgICB2ZW5kb3JzLmZvckVhY2goZnVuY3Rpb24odmVuZG9yKSB7XG4gICAgICBjb25zdCBlbnZzID0gQXJyYXkuaXNBcnJheSh2ZW5kb3IuZW52KSA/IHZlbmRvci5lbnYgOiBbdmVuZG9yLmVudl07XG4gICAgICBjb25zdCBpc0NJMiA9IGVudnMuZXZlcnkoZnVuY3Rpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiBjaGVja0VudihvYmopO1xuICAgICAgfSk7XG4gICAgICBleHBvcnRzW3ZlbmRvci5jb25zdGFudF0gPSBpc0NJMjtcbiAgICAgIGlmICghaXNDSTIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXhwb3J0cy5uYW1lID0gdmVuZG9yLm5hbWU7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2ZW5kb3IucHIpIHtcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIGV4cG9ydHMuaXNQUiA9ICEhZW52W3ZlbmRvci5wcl07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBpZiAoXCJlbnZcIiBpbiB2ZW5kb3IucHIpIHtcbiAgICAgICAgICAgIGV4cG9ydHMuaXNQUiA9IHZlbmRvci5wci5lbnYgaW4gZW52ICYmIGVudlt2ZW5kb3IucHIuZW52XSAhPT0gdmVuZG9yLnByLm5lO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXCJhbnlcIiBpbiB2ZW5kb3IucHIpIHtcbiAgICAgICAgICAgIGV4cG9ydHMuaXNQUiA9IHZlbmRvci5wci5hbnkuc29tZShmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuICEhZW52W2tleV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cy5pc1BSID0gY2hlY2tFbnYodmVuZG9yLnByKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgZXhwb3J0cy5pc1BSID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBleHBvcnRzLmlzQ0kgPSAhIShlbnYuQ0kgIT09IFwiZmFsc2VcIiAmJiAvLyBCeXBhc3MgYWxsIGNoZWNrcyBpZiBDSSBlbnYgaXMgZXhwbGljaXRseSBzZXQgdG8gJ2ZhbHNlJ1xuICAgIChlbnYuQlVJTERfSUQgfHwgLy8gSmVua2lucywgQ2xvdWRiZWVzXG4gICAgZW52LkJVSUxEX05VTUJFUiB8fCAvLyBKZW5raW5zLCBUZWFtQ2l0eVxuICAgIGVudi5DSSB8fCAvLyBUcmF2aXMgQ0ksIENpcmNsZUNJLCBDaXJydXMgQ0ksIEdpdGxhYiBDSSwgQXBwdmV5b3IsIENvZGVTaGlwLCBkc2FyaVxuICAgIGVudi5DSV9BUFBfSUQgfHwgLy8gQXBwZmxvd1xuICAgIGVudi5DSV9CVUlMRF9JRCB8fCAvLyBBcHBmbG93XG4gICAgZW52LkNJX0JVSUxEX05VTUJFUiB8fCAvLyBBcHBmbG93XG4gICAgZW52LkNJX05BTUUgfHwgLy8gQ29kZXNoaXAgYW5kIG90aGVyc1xuICAgIGVudi5DT05USU5VT1VTX0lOVEVHUkFUSU9OIHx8IC8vIFRyYXZpcyBDSSwgQ2lycnVzIENJXG4gICAgZW52LlJVTl9JRCB8fCAvLyBUYXNrQ2x1c3RlciwgZHNhcmlcbiAgICBleHBvcnRzLm5hbWUgfHwgZmFsc2UpKTtcbiAgICBmdW5jdGlvbiBjaGVja0VudihvYmopIHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKVxuICAgICAgICByZXR1cm4gISFlbnZbb2JqXTtcbiAgICAgIGlmIChcImVudlwiIGluIG9iaikge1xuICAgICAgICByZXR1cm4gZW52W29iai5lbnZdICYmIGVudltvYmouZW52XS5pbmNsdWRlcyhvYmouaW5jbHVkZXMpO1xuICAgICAgfVxuICAgICAgaWYgKFwiYW55XCIgaW4gb2JqKSB7XG4gICAgICAgIHJldHVybiBvYmouYW55LnNvbWUoZnVuY3Rpb24oaykge1xuICAgICAgICAgIHJldHVybiAhIWVudltrXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5ldmVyeShmdW5jdGlvbihrKSB7XG4gICAgICAgIHJldHVybiBlbnZba10gPT09IG9ialtrXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8vIHNyYy9jb21tb24vbW9ja2FibGUuanNcbnZhciBpbXBvcnRfY29zbWljb25maWcgPSBfX3RvRVNNKHJlcXVpcmVfZGlzdCgpLCAxKTtcbnZhciBpbXBvcnRfZmluZF9wYXJlbnRfZGlyID0gX190b0VTTShyZXF1aXJlX2ZpbmRfcGFyZW50X2RpcigpLCAxKTtcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcblxuLy8gbm9kZV9tb2R1bGVzL2dldC1zdGRpbi9pbmRleC5qc1xudmFyIHsgc3RkaW4gfSA9IHByb2Nlc3M7XG5hc3luYyBmdW5jdGlvbiBnZXRTdGRpbigpIHtcbiAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gIGlmIChzdGRpbi5pc1RUWSkge1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgc3RkaW4uc2V0RW5jb2RpbmcoXCJ1dGY4XCIpO1xuICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHN0ZGluKSB7XG4gICAgcmVzdWx0ICs9IGNodW5rO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5nZXRTdGRpbi5idWZmZXIgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBsZXQgbGVuZ3RoID0gMDtcbiAgaWYgKHN0ZGluLmlzVFRZKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW10pO1xuICB9XG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc3RkaW4pIHtcbiAgICByZXN1bHQucHVzaChjaHVuayk7XG4gICAgbGVuZ3RoICs9IGNodW5rLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gQnVmZmVyLmNvbmNhdChyZXN1bHQsIGxlbmd0aCk7XG59O1xuXG4vLyBzcmMvY29tbW9uL21vY2thYmxlLmpzXG52YXIgaW1wb3J0X2NpX2luZm8gPSBfX3RvRVNNKHJlcXVpcmVfY2lfaW5mbygpLCAxKTtcbmZ1bmN0aW9uIHdyaXRlRm9ybWF0dGVkRmlsZShmaWxlLCBkYXRhKSB7XG4gIHJldHVybiBmcy53cml0ZUZpbGUoZmlsZSwgZGF0YSk7XG59XG52YXIgbW9ja2FibGUgPSB7XG4gIGNvc21pY29uZmlnOiBpbXBvcnRfY29zbWljb25maWcuY29zbWljb25maWcsXG4gIGZpbmRQYXJlbnREaXI6IGltcG9ydF9maW5kX3BhcmVudF9kaXIuc3luYyxcbiAgZ2V0U3RkaW4sXG4gIGlzQ0k6ICgpID0+IGltcG9ydF9jaV9pbmZvLmlzQ0ksXG4gIHdyaXRlRm9ybWF0dGVkRmlsZVxufTtcbnZhciBtb2NrYWJsZV9kZWZhdWx0ID0gbW9ja2FibGU7XG5leHBvcnQge1xuICBtb2NrYWJsZV9kZWZhdWx0IGFzIGRlZmF1bHRcbn07XG4iLCAidmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcblxuLy8gc3JjL2RvY3VtZW50L3B1YmxpYy5qc1xudmFyIHB1YmxpY19leHBvcnRzID0ge307XG5fX2V4cG9ydChwdWJsaWNfZXhwb3J0cywge1xuICBidWlsZGVyczogKCkgPT4gYnVpbGRlcnMsXG4gIHByaW50ZXI6ICgpID0+IHByaW50ZXIsXG4gIHV0aWxzOiAoKSA9PiB1dGlsc1xufSk7XG5cbi8vIHNyYy9kb2N1bWVudC9jb25zdGFudHMuanNcbnZhciBET0NfVFlQRV9TVFJJTkcgPSBcInN0cmluZ1wiO1xudmFyIERPQ19UWVBFX0FSUkFZID0gXCJhcnJheVwiO1xudmFyIERPQ19UWVBFX0NVUlNPUiA9IFwiY3Vyc29yXCI7XG52YXIgRE9DX1RZUEVfSU5ERU5UID0gXCJpbmRlbnRcIjtcbnZhciBET0NfVFlQRV9BTElHTiA9IFwiYWxpZ25cIjtcbnZhciBET0NfVFlQRV9UUklNID0gXCJ0cmltXCI7XG52YXIgRE9DX1RZUEVfR1JPVVAgPSBcImdyb3VwXCI7XG52YXIgRE9DX1RZUEVfRklMTCA9IFwiZmlsbFwiO1xudmFyIERPQ19UWVBFX0lGX0JSRUFLID0gXCJpZi1icmVha1wiO1xudmFyIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSyA9IFwiaW5kZW50LWlmLWJyZWFrXCI7XG52YXIgRE9DX1RZUEVfTElORV9TVUZGSVggPSBcImxpbmUtc3VmZml4XCI7XG52YXIgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlkgPSBcImxpbmUtc3VmZml4LWJvdW5kYXJ5XCI7XG52YXIgRE9DX1RZUEVfTElORSA9IFwibGluZVwiO1xudmFyIERPQ19UWVBFX0xBQkVMID0gXCJsYWJlbFwiO1xudmFyIERPQ19UWVBFX0JSRUFLX1BBUkVOVCA9IFwiYnJlYWstcGFyZW50XCI7XG52YXIgVkFMSURfT0JKRUNUX0RPQ19UWVBFUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgRE9DX1RZUEVfQ1VSU09SLFxuICBET0NfVFlQRV9JTkRFTlQsXG4gIERPQ19UWVBFX0FMSUdOLFxuICBET0NfVFlQRV9UUklNLFxuICBET0NfVFlQRV9HUk9VUCxcbiAgRE9DX1RZUEVfRklMTCxcbiAgRE9DX1RZUEVfSUZfQlJFQUssXG4gIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSyxcbiAgRE9DX1RZUEVfTElORV9TVUZGSVgsXG4gIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZLFxuICBET0NfVFlQRV9MSU5FLFxuICBET0NfVFlQRV9MQUJFTCxcbiAgRE9DX1RZUEVfQlJFQUtfUEFSRU5UXG5dKTtcblxuLy8gc3JjL2RvY3VtZW50L3V0aWxzL2dldC1kb2MtdHlwZS5qc1xuZnVuY3Rpb24gZ2V0RG9jVHlwZShkb2MpIHtcbiAgaWYgKHR5cGVvZiBkb2MgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gRE9DX1RZUEVfU1RSSU5HO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRvYykpIHtcbiAgICByZXR1cm4gRE9DX1RZUEVfQVJSQVk7XG4gIH1cbiAgaWYgKCFkb2MpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgeyB0eXBlIH0gPSBkb2M7XG4gIGlmIChWQUxJRF9PQkpFQ1RfRE9DX1RZUEVTLmhhcyh0eXBlKSkge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG59XG52YXIgZ2V0X2RvY190eXBlX2RlZmF1bHQgPSBnZXREb2NUeXBlO1xuXG4vLyBzcmMvZG9jdW1lbnQvaW52YWxpZC1kb2MtZXJyb3IuanNcbnZhciBkaXNqdW5jdGlvbkxpc3RGb3JtYXQgPSAobGlzdCkgPT4gbmV3IEludGwuTGlzdEZvcm1hdChcImVuLVVTXCIsIHsgdHlwZTogXCJkaXNqdW5jdGlvblwiIH0pLmZvcm1hdChsaXN0KTtcbmZ1bmN0aW9uIGdldERvY0Vycm9yTWVzc2FnZShkb2MpIHtcbiAgY29uc3QgdHlwZSA9IGRvYyA9PT0gbnVsbCA/IFwibnVsbFwiIDogdHlwZW9mIGRvYztcbiAgaWYgKHR5cGUgIT09IFwic3RyaW5nXCIgJiYgdHlwZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBgVW5leHBlY3RlZCBkb2MgJyR7dHlwZX0nLCBcbkV4cGVjdGVkIGl0IHRvIGJlICdzdHJpbmcnIG9yICdvYmplY3QnLmA7XG4gIH1cbiAgaWYgKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb2MgaXMgdmFsaWQuXCIpO1xuICB9XG4gIGNvbnN0IG9iamVjdFR5cGUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZG9jKTtcbiAgaWYgKG9iamVjdFR5cGUgIT09IFwiW29iamVjdCBPYmplY3RdXCIpIHtcbiAgICByZXR1cm4gYFVuZXhwZWN0ZWQgZG9jICcke29iamVjdFR5cGV9Jy5gO1xuICB9XG4gIGNvbnN0IEVYUEVDVEVEX1RZUEVfVkFMVUVTID0gZGlzanVuY3Rpb25MaXN0Rm9ybWF0KFxuICAgIFsuLi5WQUxJRF9PQkpFQ1RfRE9DX1RZUEVTXS5tYXAoKHR5cGUyKSA9PiBgJyR7dHlwZTJ9J2ApXG4gICk7XG4gIHJldHVybiBgVW5leHBlY3RlZCBkb2MudHlwZSAnJHtkb2MudHlwZX0nLlxuRXhwZWN0ZWQgaXQgdG8gYmUgJHtFWFBFQ1RFRF9UWVBFX1ZBTFVFU30uYDtcbn1cbnZhciBJbnZhbGlkRG9jRXJyb3IgPSBjbGFzcyBleHRlbmRzIEVycm9yIHtcbiAgbmFtZSA9IFwiSW52YWxpZERvY0Vycm9yXCI7XG4gIGNvbnN0cnVjdG9yKGRvYykge1xuICAgIHN1cGVyKGdldERvY0Vycm9yTWVzc2FnZShkb2MpKTtcbiAgICB0aGlzLmRvYyA9IGRvYztcbiAgfVxufTtcbnZhciBpbnZhbGlkX2RvY19lcnJvcl9kZWZhdWx0ID0gSW52YWxpZERvY0Vycm9yO1xuXG4vLyBzcmMvZG9jdW1lbnQvdXRpbHMvdHJhdmVyc2UtZG9jLmpzXG52YXIgdHJhdmVyc2VEb2NPbkV4aXRTdGFja01hcmtlciA9IHt9O1xuZnVuY3Rpb24gdHJhdmVyc2VEb2MoZG9jLCBvbkVudGVyLCBvbkV4aXQsIHNob3VsZFRyYXZlcnNlQ29uZGl0aW9uYWxHcm91cHMpIHtcbiAgY29uc3QgZG9jc1N0YWNrID0gW2RvY107XG4gIHdoaWxlIChkb2NzU3RhY2subGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGRvYzIgPSBkb2NzU3RhY2sucG9wKCk7XG4gICAgaWYgKGRvYzIgPT09IHRyYXZlcnNlRG9jT25FeGl0U3RhY2tNYXJrZXIpIHtcbiAgICAgIG9uRXhpdChkb2NzU3RhY2sucG9wKCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChvbkV4aXQpIHtcbiAgICAgIGRvY3NTdGFjay5wdXNoKGRvYzIsIHRyYXZlcnNlRG9jT25FeGl0U3RhY2tNYXJrZXIpO1xuICAgIH1cbiAgICBjb25zdCBkb2NUeXBlID0gZ2V0X2RvY190eXBlX2RlZmF1bHQoZG9jMik7XG4gICAgaWYgKCFkb2NUeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MyKTtcbiAgICB9XG4gICAgaWYgKChvbkVudGVyID09IG51bGwgPyB2b2lkIDAgOiBvbkVudGVyKGRvYzIpKSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBzd2l0Y2ggKGRvY1R5cGUpIHtcbiAgICAgIGNhc2UgRE9DX1RZUEVfQVJSQVk6XG4gICAgICBjYXNlIERPQ19UWVBFX0ZJTEw6IHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBkb2NUeXBlID09PSBET0NfVFlQRV9BUlJBWSA/IGRvYzIgOiBkb2MyLnBhcnRzO1xuICAgICAgICBmb3IgKGxldCBpYyA9IHBhcnRzLmxlbmd0aCwgaSA9IGljIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICBkb2NzU3RhY2sucHVzaChwYXJ0c1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0lGX0JSRUFLOlxuICAgICAgICBkb2NzU3RhY2sucHVzaChkb2MyLmZsYXRDb250ZW50cywgZG9jMi5icmVha0NvbnRlbnRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0dST1VQOlxuICAgICAgICBpZiAoc2hvdWxkVHJhdmVyc2VDb25kaXRpb25hbEdyb3VwcyAmJiBkb2MyLmV4cGFuZGVkU3RhdGVzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaWMgPSBkb2MyLmV4cGFuZGVkU3RhdGVzLmxlbmd0aCwgaSA9IGljIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgIGRvY3NTdGFjay5wdXNoKGRvYzIuZXhwYW5kZWRTdGF0ZXNbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2NzU3RhY2sucHVzaChkb2MyLmNvbnRlbnRzKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfQUxJR046XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLOlxuICAgICAgY2FzZSBET0NfVFlQRV9MQUJFTDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVg6XG4gICAgICAgIGRvY3NTdGFjay5wdXNoKGRvYzIuY29udGVudHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfU1RSSU5HOlxuICAgICAgY2FzZSBET0NfVFlQRV9DVVJTT1I6XG4gICAgICBjYXNlIERPQ19UWVBFX1RSSU06XG4gICAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZOlxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FOlxuICAgICAgY2FzZSBET0NfVFlQRV9CUkVBS19QQVJFTlQ6XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IGludmFsaWRfZG9jX2Vycm9yX2RlZmF1bHQoZG9jMik7XG4gICAgfVxuICB9XG59XG52YXIgdHJhdmVyc2VfZG9jX2RlZmF1bHQgPSB0cmF2ZXJzZURvYztcblxuLy8gc3JjL2RvY3VtZW50L3V0aWxzL2Fzc2VydC1kb2MuanNcbnZhciBub29wID0gKCkgPT4ge1xufTtcbnZhciBhc3NlcnREb2MgPSB0cnVlID8gbm9vcCA6IGZ1bmN0aW9uKGRvYykge1xuICB0cmF2ZXJzZV9kb2NfZGVmYXVsdChkb2MsIChkb2MyKSA9PiB7XG4gICAgaWYgKGNoZWNrZWQuaGFzKGRvYzIpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZG9jMiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgY2hlY2tlZC5hZGQoZG9jMik7XG4gICAgfVxuICB9KTtcbn07XG52YXIgYXNzZXJ0RG9jQXJyYXkgPSB0cnVlID8gbm9vcCA6IGZ1bmN0aW9uKGRvY3MsIG9wdGlvbmFsID0gZmFsc2UpIHtcbiAgaWYgKG9wdGlvbmFsICYmICFkb2NzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghQXJyYXkuaXNBcnJheShkb2NzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmV4cGVjdGVkIGRvYyBhcnJheS5cIik7XG4gIH1cbiAgZm9yIChjb25zdCBkb2Mgb2YgZG9jcykge1xuICAgIGFzc2VydERvYyhkb2MpO1xuICB9XG59O1xuXG4vLyBzcmMvZG9jdW1lbnQvYnVpbGRlcnMuanNcbmZ1bmN0aW9uIGluZGVudChjb250ZW50cykge1xuICBhc3NlcnREb2MoY29udGVudHMpO1xuICByZXR1cm4geyB0eXBlOiBET0NfVFlQRV9JTkRFTlQsIGNvbnRlbnRzIH07XG59XG5mdW5jdGlvbiBhbGlnbih3aWR0aE9yU3RyaW5nLCBjb250ZW50cykge1xuICBhc3NlcnREb2MoY29udGVudHMpO1xuICByZXR1cm4geyB0eXBlOiBET0NfVFlQRV9BTElHTiwgY29udGVudHMsIG46IHdpZHRoT3JTdHJpbmcgfTtcbn1cbmZ1bmN0aW9uIGdyb3VwKGNvbnRlbnRzLCBvcHRzID0ge30pIHtcbiAgYXNzZXJ0RG9jKGNvbnRlbnRzKTtcbiAgYXNzZXJ0RG9jQXJyYXkoXG4gICAgb3B0cy5leHBhbmRlZFN0YXRlcyxcbiAgICAvKiBvcHRpb25hbCAqL1xuICAgIHRydWVcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBET0NfVFlQRV9HUk9VUCxcbiAgICBpZDogb3B0cy5pZCxcbiAgICBjb250ZW50cyxcbiAgICBicmVhazogQm9vbGVhbihvcHRzLnNob3VsZEJyZWFrKSxcbiAgICBleHBhbmRlZFN0YXRlczogb3B0cy5leHBhbmRlZFN0YXRlc1xuICB9O1xufVxuZnVuY3Rpb24gZGVkZW50VG9Sb290KGNvbnRlbnRzKSB7XG4gIHJldHVybiBhbGlnbihOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksIGNvbnRlbnRzKTtcbn1cbmZ1bmN0aW9uIG1hcmtBc1Jvb3QoY29udGVudHMpIHtcbiAgcmV0dXJuIGFsaWduKHsgdHlwZTogXCJyb290XCIgfSwgY29udGVudHMpO1xufVxuZnVuY3Rpb24gZGVkZW50KGNvbnRlbnRzKSB7XG4gIHJldHVybiBhbGlnbigtMSwgY29udGVudHMpO1xufVxuZnVuY3Rpb24gY29uZGl0aW9uYWxHcm91cChzdGF0ZXMsIG9wdHMpIHtcbiAgcmV0dXJuIGdyb3VwKHN0YXRlc1swXSwgeyAuLi5vcHRzLCBleHBhbmRlZFN0YXRlczogc3RhdGVzIH0pO1xufVxuZnVuY3Rpb24gZmlsbChwYXJ0cykge1xuICBhc3NlcnREb2NBcnJheShwYXJ0cyk7XG4gIHJldHVybiB7IHR5cGU6IERPQ19UWVBFX0ZJTEwsIHBhcnRzIH07XG59XG5mdW5jdGlvbiBpZkJyZWFrKGJyZWFrQ29udGVudHMsIGZsYXRDb250ZW50cyA9IFwiXCIsIG9wdHMgPSB7fSkge1xuICBhc3NlcnREb2MoYnJlYWtDb250ZW50cyk7XG4gIGlmIChmbGF0Q29udGVudHMgIT09IFwiXCIpIHtcbiAgICBhc3NlcnREb2MoZmxhdENvbnRlbnRzKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHR5cGU6IERPQ19UWVBFX0lGX0JSRUFLLFxuICAgIGJyZWFrQ29udGVudHMsXG4gICAgZmxhdENvbnRlbnRzLFxuICAgIGdyb3VwSWQ6IG9wdHMuZ3JvdXBJZFxuICB9O1xufVxuZnVuY3Rpb24gaW5kZW50SWZCcmVhayhjb250ZW50cywgb3B0cykge1xuICBhc3NlcnREb2MoY29udGVudHMpO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSyxcbiAgICBjb250ZW50cyxcbiAgICBncm91cElkOiBvcHRzLmdyb3VwSWQsXG4gICAgbmVnYXRlOiBvcHRzLm5lZ2F0ZVxuICB9O1xufVxuZnVuY3Rpb24gbGluZVN1ZmZpeChjb250ZW50cykge1xuICBhc3NlcnREb2MoY29udGVudHMpO1xuICByZXR1cm4geyB0eXBlOiBET0NfVFlQRV9MSU5FX1NVRkZJWCwgY29udGVudHMgfTtcbn1cbnZhciBsaW5lU3VmZml4Qm91bmRhcnkgPSB7IHR5cGU6IERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZIH07XG52YXIgYnJlYWtQYXJlbnQgPSB7IHR5cGU6IERPQ19UWVBFX0JSRUFLX1BBUkVOVCB9O1xudmFyIHRyaW0gPSB7IHR5cGU6IERPQ19UWVBFX1RSSU0gfTtcbnZhciBoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudCA9IHsgdHlwZTogRE9DX1RZUEVfTElORSwgaGFyZDogdHJ1ZSB9O1xudmFyIGxpdGVyYWxsaW5lV2l0aG91dEJyZWFrUGFyZW50ID0ge1xuICB0eXBlOiBET0NfVFlQRV9MSU5FLFxuICBoYXJkOiB0cnVlLFxuICBsaXRlcmFsOiB0cnVlXG59O1xudmFyIGxpbmUgPSB7IHR5cGU6IERPQ19UWVBFX0xJTkUgfTtcbnZhciBzb2Z0bGluZSA9IHsgdHlwZTogRE9DX1RZUEVfTElORSwgc29mdDogdHJ1ZSB9O1xudmFyIGhhcmRsaW5lID0gW2hhcmRsaW5lV2l0aG91dEJyZWFrUGFyZW50LCBicmVha1BhcmVudF07XG52YXIgbGl0ZXJhbGxpbmUgPSBbbGl0ZXJhbGxpbmVXaXRob3V0QnJlYWtQYXJlbnQsIGJyZWFrUGFyZW50XTtcbnZhciBjdXJzb3IgPSB7IHR5cGU6IERPQ19UWVBFX0NVUlNPUiB9O1xuZnVuY3Rpb24gam9pbihzZXBhcmF0b3IsIGRvY3MpIHtcbiAgYXNzZXJ0RG9jKHNlcGFyYXRvcik7XG4gIGFzc2VydERvY0FycmF5KGRvY3MpO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRvY3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaSAhPT0gMCkge1xuICAgICAgcGFydHMucHVzaChzZXBhcmF0b3IpO1xuICAgIH1cbiAgICBwYXJ0cy5wdXNoKGRvY3NbaV0pO1xuICB9XG4gIHJldHVybiBwYXJ0cztcbn1cbmZ1bmN0aW9uIGFkZEFsaWdubWVudFRvRG9jKGRvYywgc2l6ZSwgdGFiV2lkdGgpIHtcbiAgYXNzZXJ0RG9jKGRvYyk7XG4gIGxldCBhbGlnbmVkID0gZG9jO1xuICBpZiAoc2l6ZSA+IDApIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGguZmxvb3Ioc2l6ZSAvIHRhYldpZHRoKTsgKytpKSB7XG4gICAgICBhbGlnbmVkID0gaW5kZW50KGFsaWduZWQpO1xuICAgIH1cbiAgICBhbGlnbmVkID0gYWxpZ24oc2l6ZSAlIHRhYldpZHRoLCBhbGlnbmVkKTtcbiAgICBhbGlnbmVkID0gYWxpZ24oTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLCBhbGlnbmVkKTtcbiAgfVxuICByZXR1cm4gYWxpZ25lZDtcbn1cbmZ1bmN0aW9uIGxhYmVsKGxhYmVsMiwgY29udGVudHMpIHtcbiAgYXNzZXJ0RG9jKGNvbnRlbnRzKTtcbiAgcmV0dXJuIGxhYmVsMiA/IHsgdHlwZTogRE9DX1RZUEVfTEFCRUwsIGxhYmVsOiBsYWJlbDIsIGNvbnRlbnRzIH0gOiBjb250ZW50cztcbn1cblxuLy8gc2NyaXB0cy9idWlsZC9zaGltcy9hdC5qc1xudmFyIGF0ID0gKGlzT3B0aW9uYWxPYmplY3QsIG9iamVjdCwgaW5kZXgpID0+IHtcbiAgaWYgKGlzT3B0aW9uYWxPYmplY3QgJiYgKG9iamVjdCA9PT0gdm9pZCAwIHx8IG9iamVjdCA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSB8fCB0eXBlb2Ygb2JqZWN0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIG9iamVjdFtpbmRleCA8IDAgPyBvYmplY3QubGVuZ3RoICsgaW5kZXggOiBpbmRleF07XG4gIH1cbiAgcmV0dXJuIG9iamVjdC5hdChpbmRleCk7XG59O1xudmFyIGF0X2RlZmF1bHQgPSBhdDtcblxuLy8gc2NyaXB0cy9idWlsZC9zaGltcy9zdHJpbmctcmVwbGFjZS1hbGwuanNcbnZhciBzdHJpbmdSZXBsYWNlQWxsID0gKGlzT3B0aW9uYWxPYmplY3QsIG9yaWdpbmFsLCBwYXR0ZXJuLCByZXBsYWNlbWVudCkgPT4ge1xuICBpZiAoaXNPcHRpb25hbE9iamVjdCAmJiAob3JpZ2luYWwgPT09IHZvaWQgMCB8fCBvcmlnaW5hbCA9PT0gbnVsbCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG9yaWdpbmFsLnJlcGxhY2VBbGwpIHtcbiAgICByZXR1cm4gb3JpZ2luYWwucmVwbGFjZUFsbChwYXR0ZXJuLCByZXBsYWNlbWVudCk7XG4gIH1cbiAgaWYgKHBhdHRlcm4uZ2xvYmFsKSB7XG4gICAgcmV0dXJuIG9yaWdpbmFsLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQpO1xuICB9XG4gIHJldHVybiBvcmlnaW5hbC5zcGxpdChwYXR0ZXJuKS5qb2luKHJlcGxhY2VtZW50KTtcbn07XG52YXIgc3RyaW5nX3JlcGxhY2VfYWxsX2RlZmF1bHQgPSBzdHJpbmdSZXBsYWNlQWxsO1xuXG4vLyBzcmMvY29tbW9uL2VuZC1vZi1saW5lLmpzXG5mdW5jdGlvbiBjb252ZXJ0RW5kT2ZMaW5lVG9DaGFycyh2YWx1ZSkge1xuICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgY2FzZSBcImNyXCI6XG4gICAgICByZXR1cm4gXCJcXHJcIjtcbiAgICBjYXNlIFwiY3JsZlwiOlxuICAgICAgcmV0dXJuIFwiXFxyXFxuXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcIlxcblwiO1xuICB9XG59XG5cbi8vIG5vZGVfbW9kdWxlcy9lbW9qaS1yZWdleC9pbmRleC5tanNcbnZhciBlbW9qaV9yZWdleF9kZWZhdWx0ID0gKCkgPT4ge1xuICByZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbi8vIG5vZGVfbW9kdWxlcy9lYXN0YXNpYW53aWR0aC9lYXN0YXNpYW53aWR0aC5qc1xudmFyIGVhc3Rhc2lhbndpZHRoX2RlZmF1bHQgPSB7XG4gIGVhc3RBc2lhbldpZHRoKGNoYXJhY3Rlcikge1xuICAgIHZhciB4ID0gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCk7XG4gICAgdmFyIHkgPSBjaGFyYWN0ZXIubGVuZ3RoID09IDIgPyBjaGFyYWN0ZXIuY2hhckNvZGVBdCgxKSA6IDA7XG4gICAgdmFyIGNvZGVQb2ludCA9IHg7XG4gICAgaWYgKDU1Mjk2IDw9IHggJiYgeCA8PSA1NjMxOSAmJiA1NjMyMCA8PSB5ICYmIHkgPD0gNTczNDMpIHtcbiAgICAgIHggJj0gMTAyMztcbiAgICAgIHkgJj0gMTAyMztcbiAgICAgIGNvZGVQb2ludCA9IHggPDwgMTAgfCB5O1xuICAgICAgY29kZVBvaW50ICs9IDY1NTM2O1xuICAgIH1cbiAgICBpZiAoMTIyODggPT0gY29kZVBvaW50IHx8IDY1MjgxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNjUzNzYgfHwgNjU1MDQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA2NTUxMCkge1xuICAgICAgcmV0dXJuIFwiRlwiO1xuICAgIH1cbiAgICBpZiAoNDM1MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDQ0NDcgfHwgNDUxNSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDQ1MTkgfHwgNDYwMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDQ2MDcgfHwgOTAwMSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDkwMDIgfHwgMTE5MDQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMTkyOSB8fCAxMTkzMSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyMDE5IHx8IDEyMDMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTIyNDUgfHwgMTIyNzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjI4MyB8fCAxMjI4OSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyMzUwIHx8IDEyMzUzIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI0MzggfHwgMTI0NDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjU0MyB8fCAxMjU0OSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNTg5IHx8IDEyNTkzIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI2ODYgfHwgMTI2ODggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjczMCB8fCAxMjczNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNzcxIHx8IDEyNzg0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI4MzAgfHwgMTI4MzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjg3MSB8fCAxMjg4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEzMDU0IHx8IDEzMDU2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTk5MDMgfHwgMTk5NjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA0MjEyNCB8fCA0MjEyOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDQyMTgyIHx8IDQzMzYwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNDMzODggfHwgNDQwMzIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA1NTIwMyB8fCA1NTIxNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDU1MjM4IHx8IDU1MjQzIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNTUyOTEgfHwgNjM3NDQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA2NDI1NSB8fCA2NTA0MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDY1MDQ5IHx8IDY1MDcyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gNjUxMDYgfHwgNjUxMDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSA2NTEyNiB8fCA2NTEyOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDY1MTMxIHx8IDExMDU5MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDExMDU5MyB8fCAxMjc0ODggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjc0OTAgfHwgMTI3NTA0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTI3NTQ2IHx8IDEyNzU1MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDEyNzU2MCB8fCAxMjc1NjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAxMjc1NjkgfHwgMTMxMDcyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMTk0MzY3IHx8IDE3Nzk4NCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDE5NjYwNSB8fCAxOTY2MDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAyNjIxNDEpIHtcbiAgICAgIHJldHVybiBcIldcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiTlwiO1xuICB9XG59O1xuXG4vLyBzcmMvdXRpbHMvZ2V0LXN0cmluZy13aWR0aC5qc1xudmFyIG5vdEFzY2lpUmVnZXggPSAvW15cXHgyMC1cXHg3Rl0vO1xuZnVuY3Rpb24gZ2V0U3RyaW5nV2lkdGgodGV4dCkge1xuICBpZiAoIXRleHQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBpZiAoIW5vdEFzY2lpUmVnZXgudGVzdCh0ZXh0KSkge1xuICAgIHJldHVybiB0ZXh0Lmxlbmd0aDtcbiAgfVxuICB0ZXh0ID0gdGV4dC5yZXBsYWNlKGVtb2ppX3JlZ2V4X2RlZmF1bHQoKSwgXCIgIFwiKTtcbiAgbGV0IHdpZHRoID0gMDtcbiAgZm9yIChjb25zdCBjaGFyYWN0ZXIgb2YgdGV4dCkge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNoYXJhY3Rlci5jb2RlUG9pbnRBdCgwKTtcbiAgICBpZiAoY29kZVBvaW50IDw9IDMxIHx8IGNvZGVQb2ludCA+PSAxMjcgJiYgY29kZVBvaW50IDw9IDE1OSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChjb2RlUG9pbnQgPj0gNzY4ICYmIGNvZGVQb2ludCA8PSA4NzkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBjb2RlID0gZWFzdGFzaWFud2lkdGhfZGVmYXVsdC5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuICAgIHdpZHRoICs9IGNvZGUgPT09IFwiRlwiIHx8IGNvZGUgPT09IFwiV1wiID8gMiA6IDE7XG4gIH1cbiAgcmV0dXJuIHdpZHRoO1xufVxudmFyIGdldF9zdHJpbmdfd2lkdGhfZGVmYXVsdCA9IGdldFN0cmluZ1dpZHRoO1xuXG4vLyBzcmMvZG9jdW1lbnQvdXRpbHMuanNcbnZhciBnZXREb2NQYXJ0cyA9IChkb2MpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZG9jKSkge1xuICAgIHJldHVybiBkb2M7XG4gIH1cbiAgaWYgKGRvYy50eXBlICE9PSBET0NfVFlQRV9GSUxMKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3QgZG9jIHRvIGJlICdhcnJheScgb3IgJyR7RE9DX1RZUEVfRklMTH0nLmApO1xuICB9XG4gIHJldHVybiBkb2MucGFydHM7XG59O1xuZnVuY3Rpb24gbWFwRG9jKGRvYywgY2IpIHtcbiAgaWYgKHR5cGVvZiBkb2MgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gY2IoZG9jKTtcbiAgfVxuICBjb25zdCBtYXBwZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICByZXR1cm4gcmVjKGRvYyk7XG4gIGZ1bmN0aW9uIHJlYyhkb2MyKSB7XG4gICAgaWYgKG1hcHBlZC5oYXMoZG9jMikpIHtcbiAgICAgIHJldHVybiBtYXBwZWQuZ2V0KGRvYzIpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBwcm9jZXNzMihkb2MyKTtcbiAgICBtYXBwZWQuc2V0KGRvYzIsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBmdW5jdGlvbiBwcm9jZXNzMihkb2MyKSB7XG4gICAgc3dpdGNoIChnZXRfZG9jX3R5cGVfZGVmYXVsdChkb2MyKSkge1xuICAgICAgY2FzZSBET0NfVFlQRV9BUlJBWTpcbiAgICAgICAgcmV0dXJuIGNiKGRvYzIubWFwKHJlYykpO1xuICAgICAgY2FzZSBET0NfVFlQRV9GSUxMOlxuICAgICAgICByZXR1cm4gY2Ioe1xuICAgICAgICAgIC4uLmRvYzIsXG4gICAgICAgICAgcGFydHM6IGRvYzIucGFydHMubWFwKHJlYylcbiAgICAgICAgfSk7XG4gICAgICBjYXNlIERPQ19UWVBFX0lGX0JSRUFLOlxuICAgICAgICByZXR1cm4gY2Ioe1xuICAgICAgICAgIC4uLmRvYzIsXG4gICAgICAgICAgYnJlYWtDb250ZW50czogcmVjKGRvYzIuYnJlYWtDb250ZW50cyksXG4gICAgICAgICAgZmxhdENvbnRlbnRzOiByZWMoZG9jMi5mbGF0Q29udGVudHMpXG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBET0NfVFlQRV9HUk9VUDoge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIGV4cGFuZGVkU3RhdGVzLFxuICAgICAgICAgIGNvbnRlbnRzXG4gICAgICAgIH0gPSBkb2MyO1xuICAgICAgICBpZiAoZXhwYW5kZWRTdGF0ZXMpIHtcbiAgICAgICAgICBleHBhbmRlZFN0YXRlcyA9IGV4cGFuZGVkU3RhdGVzLm1hcChyZWMpO1xuICAgICAgICAgIGNvbnRlbnRzID0gZXhwYW5kZWRTdGF0ZXNbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGVudHMgPSByZWMoY29udGVudHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYih7XG4gICAgICAgICAgLi4uZG9jMixcbiAgICAgICAgICBjb250ZW50cyxcbiAgICAgICAgICBleHBhbmRlZFN0YXRlc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNhc2UgRE9DX1RZUEVfQUxJR046XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLOlxuICAgICAgY2FzZSBET0NfVFlQRV9MQUJFTDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVg6XG4gICAgICAgIHJldHVybiBjYih7XG4gICAgICAgICAgLi4uZG9jMixcbiAgICAgICAgICBjb250ZW50czogcmVjKGRvYzIuY29udGVudHMpXG4gICAgICAgIH0pO1xuICAgICAgY2FzZSBET0NfVFlQRV9TVFJJTkc6XG4gICAgICBjYXNlIERPQ19UWVBFX0NVUlNPUjpcbiAgICAgIGNhc2UgRE9DX1RZUEVfVFJJTTpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlk6XG4gICAgICBjYXNlIERPQ19UWVBFX0xJTkU6XG4gICAgICBjYXNlIERPQ19UWVBFX0JSRUFLX1BBUkVOVDpcbiAgICAgICAgcmV0dXJuIGNiKGRvYzIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IGludmFsaWRfZG9jX2Vycm9yX2RlZmF1bHQoZG9jMik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBmaW5kSW5Eb2MoZG9jLCBmbiwgZGVmYXVsdFZhbHVlKSB7XG4gIGxldCByZXN1bHQgPSBkZWZhdWx0VmFsdWU7XG4gIGxldCBzaG91bGRTa2lwRnVydGhlclByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgZnVuY3Rpb24gZmluZEluRG9jT25FbnRlckZuKGRvYzIpIHtcbiAgICBpZiAoc2hvdWxkU2tpcEZ1cnRoZXJQcm9jZXNzaW5nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG1heWJlUmVzdWx0ID0gZm4oZG9jMik7XG4gICAgaWYgKG1heWJlUmVzdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgIHNob3VsZFNraXBGdXJ0aGVyUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgICByZXN1bHQgPSBtYXliZVJlc3VsdDtcbiAgICB9XG4gIH1cbiAgdHJhdmVyc2VfZG9jX2RlZmF1bHQoZG9jLCBmaW5kSW5Eb2NPbkVudGVyRm4pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gd2lsbEJyZWFrRm4oZG9jKSB7XG4gIGlmIChkb2MudHlwZSA9PT0gRE9DX1RZUEVfR1JPVVAgJiYgZG9jLmJyZWFrKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKGRvYy50eXBlID09PSBET0NfVFlQRV9MSU5FICYmIGRvYy5oYXJkKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKGRvYy50eXBlID09PSBET0NfVFlQRV9CUkVBS19QQVJFTlQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuZnVuY3Rpb24gd2lsbEJyZWFrKGRvYykge1xuICByZXR1cm4gZmluZEluRG9jKGRvYywgd2lsbEJyZWFrRm4sIGZhbHNlKTtcbn1cbmZ1bmN0aW9uIGJyZWFrUGFyZW50R3JvdXAoZ3JvdXBTdGFjaykge1xuICBpZiAoZ3JvdXBTdGFjay5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgcGFyZW50R3JvdXAgPSBhdF9kZWZhdWx0KFxuICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICBmYWxzZSxcbiAgICAgIGdyb3VwU3RhY2ssXG4gICAgICAtMVxuICAgICk7XG4gICAgaWYgKCFwYXJlbnRHcm91cC5leHBhbmRlZFN0YXRlcyAmJiAhcGFyZW50R3JvdXAuYnJlYWspIHtcbiAgICAgIHBhcmVudEdyb3VwLmJyZWFrID0gXCJwcm9wYWdhdGVkXCI7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gcHJvcGFnYXRlQnJlYWtzKGRvYykge1xuICBjb25zdCBhbHJlYWR5VmlzaXRlZFNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7XG4gIGNvbnN0IGdyb3VwU3RhY2sgPSBbXTtcbiAgZnVuY3Rpb24gcHJvcGFnYXRlQnJlYWtzT25FbnRlckZuKGRvYzIpIHtcbiAgICBpZiAoZG9jMi50eXBlID09PSBET0NfVFlQRV9CUkVBS19QQVJFTlQpIHtcbiAgICAgIGJyZWFrUGFyZW50R3JvdXAoZ3JvdXBTdGFjayk7XG4gICAgfVxuICAgIGlmIChkb2MyLnR5cGUgPT09IERPQ19UWVBFX0dST1VQKSB7XG4gICAgICBncm91cFN0YWNrLnB1c2goZG9jMik7XG4gICAgICBpZiAoYWxyZWFkeVZpc2l0ZWRTZXQuaGFzKGRvYzIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGFscmVhZHlWaXNpdGVkU2V0LmFkZChkb2MyKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gcHJvcGFnYXRlQnJlYWtzT25FeGl0Rm4oZG9jMikge1xuICAgIGlmIChkb2MyLnR5cGUgPT09IERPQ19UWVBFX0dST1VQKSB7XG4gICAgICBjb25zdCBncm91cDIgPSBncm91cFN0YWNrLnBvcCgpO1xuICAgICAgaWYgKGdyb3VwMi5icmVhaykge1xuICAgICAgICBicmVha1BhcmVudEdyb3VwKGdyb3VwU3RhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0cmF2ZXJzZV9kb2NfZGVmYXVsdChcbiAgICBkb2MsXG4gICAgcHJvcGFnYXRlQnJlYWtzT25FbnRlckZuLFxuICAgIHByb3BhZ2F0ZUJyZWFrc09uRXhpdEZuLFxuICAgIC8qIHNob3VsZFRyYXZlcnNlQ29uZGl0aW9uYWxHcm91cHMgKi9cbiAgICB0cnVlXG4gICk7XG59XG5mdW5jdGlvbiByZW1vdmVMaW5lc0ZuKGRvYykge1xuICBpZiAoZG9jLnR5cGUgPT09IERPQ19UWVBFX0xJTkUgJiYgIWRvYy5oYXJkKSB7XG4gICAgcmV0dXJuIGRvYy5zb2Z0ID8gXCJcIiA6IFwiIFwiO1xuICB9XG4gIGlmIChkb2MudHlwZSA9PT0gRE9DX1RZUEVfSUZfQlJFQUspIHtcbiAgICByZXR1cm4gZG9jLmZsYXRDb250ZW50cztcbiAgfVxuICByZXR1cm4gZG9jO1xufVxuZnVuY3Rpb24gcmVtb3ZlTGluZXMoZG9jKSB7XG4gIHJldHVybiBtYXBEb2MoZG9jLCByZW1vdmVMaW5lc0ZuKTtcbn1cbmZ1bmN0aW9uIHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21QYXJ0cyhwYXJ0cykge1xuICBwYXJ0cyA9IFsuLi5wYXJ0c107XG4gIHdoaWxlIChwYXJ0cy5sZW5ndGggPj0gMiAmJiBhdF9kZWZhdWx0KFxuICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgIGZhbHNlLFxuICAgIHBhcnRzLFxuICAgIC0yXG4gICkudHlwZSA9PT0gRE9DX1RZUEVfTElORSAmJiBhdF9kZWZhdWx0KFxuICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgIGZhbHNlLFxuICAgIHBhcnRzLFxuICAgIC0xXG4gICkudHlwZSA9PT0gRE9DX1RZUEVfQlJFQUtfUEFSRU5UKSB7XG4gICAgcGFydHMubGVuZ3RoIC09IDI7XG4gIH1cbiAgaWYgKHBhcnRzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBsYXN0UGFydCA9IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoYXRfZGVmYXVsdChcbiAgICAgIC8qIGlzT3B0aW9uYWxPYmplY3QqL1xuICAgICAgZmFsc2UsXG4gICAgICBwYXJ0cyxcbiAgICAgIC0xXG4gICAgKSk7XG4gICAgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0gPSBsYXN0UGFydDtcbiAgfVxuICByZXR1cm4gcGFydHM7XG59XG5mdW5jdGlvbiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tRG9jKGRvYykge1xuICBzd2l0Y2ggKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYykpIHtcbiAgICBjYXNlIERPQ19UWVBFX0FMSUdOOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLOlxuICAgIGNhc2UgRE9DX1RZUEVfR1JPVVA6XG4gICAgY2FzZSBET0NfVFlQRV9MSU5FX1NVRkZJWDpcbiAgICBjYXNlIERPQ19UWVBFX0xBQkVMOiB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoZG9jLmNvbnRlbnRzKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvYyxcbiAgICAgICAgY29udGVudHNcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgRE9DX1RZUEVfSUZfQlJFQUs6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kb2MsXG4gICAgICAgIGJyZWFrQ29udGVudHM6IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoZG9jLmJyZWFrQ29udGVudHMpLFxuICAgICAgICBmbGF0Q29udGVudHM6IHN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MoZG9jLmZsYXRDb250ZW50cylcbiAgICAgIH07XG4gICAgY2FzZSBET0NfVFlQRV9GSUxMOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZG9jLFxuICAgICAgICBwYXJ0czogc3RyaXBUcmFpbGluZ0hhcmRsaW5lRnJvbVBhcnRzKGRvYy5wYXJ0cylcbiAgICAgIH07XG4gICAgY2FzZSBET0NfVFlQRV9BUlJBWTpcbiAgICAgIHJldHVybiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tUGFydHMoZG9jKTtcbiAgICBjYXNlIERPQ19UWVBFX1NUUklORzpcbiAgICAgIHJldHVybiBkb2MucmVwbGFjZSgvW1xcblxccl0qJC8sIFwiXCIpO1xuICAgIGNhc2UgRE9DX1RZUEVfQ1VSU09SOlxuICAgIGNhc2UgRE9DX1RZUEVfVFJJTTpcbiAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZOlxuICAgIGNhc2UgRE9DX1RZUEVfTElORTpcbiAgICBjYXNlIERPQ19UWVBFX0JSRUFLX1BBUkVOVDpcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgaW52YWxpZF9kb2NfZXJyb3JfZGVmYXVsdChkb2MpO1xuICB9XG4gIHJldHVybiBkb2M7XG59XG5mdW5jdGlvbiBzdHJpcFRyYWlsaW5nSGFyZGxpbmUoZG9jKSB7XG4gIHJldHVybiBzdHJpcFRyYWlsaW5nSGFyZGxpbmVGcm9tRG9jKGNsZWFuRG9jKGRvYykpO1xufVxuZnVuY3Rpb24gY2xlYW5Eb2NGbihkb2MpIHtcbiAgc3dpdGNoIChnZXRfZG9jX3R5cGVfZGVmYXVsdChkb2MpKSB7XG4gICAgY2FzZSBET0NfVFlQRV9GSUxMOlxuICAgICAgaWYgKGRvYy5wYXJ0cy5ldmVyeSgocGFydCkgPT4gcGFydCA9PT0gXCJcIikpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIERPQ19UWVBFX0dST1VQOlxuICAgICAgaWYgKCFkb2MuY29udGVudHMgJiYgIWRvYy5pZCAmJiAhZG9jLmJyZWFrICYmICFkb2MuZXhwYW5kZWRTdGF0ZXMpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICBpZiAoZG9jLmNvbnRlbnRzLnR5cGUgPT09IERPQ19UWVBFX0dST1VQICYmIGRvYy5jb250ZW50cy5pZCA9PT0gZG9jLmlkICYmIGRvYy5jb250ZW50cy5icmVhayA9PT0gZG9jLmJyZWFrICYmIGRvYy5jb250ZW50cy5leHBhbmRlZFN0YXRlcyA9PT0gZG9jLmV4cGFuZGVkU3RhdGVzKSB7XG4gICAgICAgIHJldHVybiBkb2MuY29udGVudHM7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIERPQ19UWVBFX0FMSUdOOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UOlxuICAgIGNhc2UgRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLOlxuICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVg6XG4gICAgICBpZiAoIWRvYy5jb250ZW50cykge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRE9DX1RZUEVfSUZfQlJFQUs6XG4gICAgICBpZiAoIWRvYy5mbGF0Q29udGVudHMgJiYgIWRvYy5icmVha0NvbnRlbnRzKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBET0NfVFlQRV9BUlJBWToge1xuICAgICAgY29uc3QgcGFydHMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgcGFydCBvZiBkb2MpIHtcbiAgICAgICAgaWYgKCFwYXJ0KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW2N1cnJlbnRQYXJ0LCAuLi5yZXN0UGFydHNdID0gQXJyYXkuaXNBcnJheShwYXJ0KSA/IHBhcnQgOiBbcGFydF07XG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudFBhcnQgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIGF0X2RlZmF1bHQoXG4gICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgcGFydHMsXG4gICAgICAgICAgLTFcbiAgICAgICAgKSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdICs9IGN1cnJlbnRQYXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcnRzLnB1c2goY3VycmVudFBhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHBhcnRzLnB1c2goLi4ucmVzdFBhcnRzKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgICBpZiAocGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBwYXJ0c1swXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJ0cztcbiAgICB9XG4gICAgY2FzZSBET0NfVFlQRV9TVFJJTkc6XG4gICAgY2FzZSBET0NfVFlQRV9DVVJTT1I6XG4gICAgY2FzZSBET0NfVFlQRV9UUklNOlxuICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlk6XG4gICAgY2FzZSBET0NfVFlQRV9MSU5FOlxuICAgIGNhc2UgRE9DX1RZUEVfTEFCRUw6XG4gICAgY2FzZSBET0NfVFlQRV9CUkVBS19QQVJFTlQ6XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IGludmFsaWRfZG9jX2Vycm9yX2RlZmF1bHQoZG9jKTtcbiAgfVxuICByZXR1cm4gZG9jO1xufVxuZnVuY3Rpb24gY2xlYW5Eb2MoZG9jKSB7XG4gIHJldHVybiBtYXBEb2MoZG9jLCAoY3VycmVudERvYykgPT4gY2xlYW5Eb2NGbihjdXJyZW50RG9jKSk7XG59XG5mdW5jdGlvbiByZXBsYWNlRW5kT2ZMaW5lKGRvYywgcmVwbGFjZW1lbnQgPSBsaXRlcmFsbGluZSkge1xuICByZXR1cm4gbWFwRG9jKGRvYywgKGN1cnJlbnREb2MpID0+IHR5cGVvZiBjdXJyZW50RG9jID09PSBcInN0cmluZ1wiID8gam9pbihyZXBsYWNlbWVudCwgY3VycmVudERvYy5zcGxpdChcIlxcblwiKSkgOiBjdXJyZW50RG9jKTtcbn1cbmZ1bmN0aW9uIGNhbkJyZWFrRm4oZG9jKSB7XG4gIGlmIChkb2MudHlwZSA9PT0gRE9DX1RZUEVfTElORSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBjYW5CcmVhayhkb2MpIHtcbiAgcmV0dXJuIGZpbmRJbkRvYyhkb2MsIGNhbkJyZWFrRm4sIGZhbHNlKTtcbn1cblxuLy8gc3JjL2RvY3VtZW50L3ByaW50ZXIuanNcbnZhciBNT0RFX0JSRUFLID0gU3ltYm9sKFwiTU9ERV9CUkVBS1wiKTtcbnZhciBNT0RFX0ZMQVQgPSBTeW1ib2woXCJNT0RFX0ZMQVRcIik7XG52YXIgQ1VSU09SX1BMQUNFSE9MREVSID0gU3ltYm9sKFwiY3Vyc29yXCIpO1xuZnVuY3Rpb24gcm9vdEluZGVudCgpIHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogXCJcIixcbiAgICBsZW5ndGg6IDAsXG4gICAgcXVldWU6IFtdXG4gIH07XG59XG5mdW5jdGlvbiBtYWtlSW5kZW50KGluZCwgb3B0aW9ucykge1xuICByZXR1cm4gZ2VuZXJhdGVJbmQoaW5kLCB7XG4gICAgdHlwZTogXCJpbmRlbnRcIlxuICB9LCBvcHRpb25zKTtcbn1cbmZ1bmN0aW9uIG1ha2VBbGlnbihpbmRlbnQyLCB3aWR0aE9yRG9jLCBvcHRpb25zKSB7XG4gIGlmICh3aWR0aE9yRG9jID09PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkpIHtcbiAgICByZXR1cm4gaW5kZW50Mi5yb290IHx8IHJvb3RJbmRlbnQoKTtcbiAgfVxuICBpZiAod2lkdGhPckRvYyA8IDApIHtcbiAgICByZXR1cm4gZ2VuZXJhdGVJbmQoaW5kZW50Miwge1xuICAgICAgdHlwZTogXCJkZWRlbnRcIlxuICAgIH0sIG9wdGlvbnMpO1xuICB9XG4gIGlmICghd2lkdGhPckRvYykge1xuICAgIHJldHVybiBpbmRlbnQyO1xuICB9XG4gIGlmICh3aWR0aE9yRG9jLnR5cGUgPT09IFwicm9vdFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmluZGVudDIsXG4gICAgICByb290OiBpbmRlbnQyXG4gICAgfTtcbiAgfVxuICBjb25zdCBhbGlnblR5cGUgPSB0eXBlb2Ygd2lkdGhPckRvYyA9PT0gXCJzdHJpbmdcIiA/IFwic3RyaW5nQWxpZ25cIiA6IFwibnVtYmVyQWxpZ25cIjtcbiAgcmV0dXJuIGdlbmVyYXRlSW5kKGluZGVudDIsIHtcbiAgICB0eXBlOiBhbGlnblR5cGUsXG4gICAgbjogd2lkdGhPckRvY1xuICB9LCBvcHRpb25zKTtcbn1cbmZ1bmN0aW9uIGdlbmVyYXRlSW5kKGluZCwgbmV3UGFydCwgb3B0aW9ucykge1xuICBjb25zdCBxdWV1ZSA9IG5ld1BhcnQudHlwZSA9PT0gXCJkZWRlbnRcIiA/IGluZC5xdWV1ZS5zbGljZSgwLCAtMSkgOiBbLi4uaW5kLnF1ZXVlLCBuZXdQYXJ0XTtcbiAgbGV0IHZhbHVlID0gXCJcIjtcbiAgbGV0IGxlbmd0aCA9IDA7XG4gIGxldCBsYXN0VGFicyA9IDA7XG4gIGxldCBsYXN0U3BhY2VzID0gMDtcbiAgZm9yIChjb25zdCBwYXJ0IG9mIHF1ZXVlKSB7XG4gICAgc3dpdGNoIChwYXJ0LnR5cGUpIHtcbiAgICAgIGNhc2UgXCJpbmRlbnRcIjpcbiAgICAgICAgZmx1c2goKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlVGFicykge1xuICAgICAgICAgIGFkZFRhYnMoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkU3BhY2VzKG9wdGlvbnMudGFiV2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInN0cmluZ0FsaWduXCI6XG4gICAgICAgIGZsdXNoKCk7XG4gICAgICAgIHZhbHVlICs9IHBhcnQubjtcbiAgICAgICAgbGVuZ3RoICs9IHBhcnQubi5sZW5ndGg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm51bWJlckFsaWduXCI6XG4gICAgICAgIGxhc3RUYWJzICs9IDE7XG4gICAgICAgIGxhc3RTcGFjZXMgKz0gcGFydC5uO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB0eXBlICcke3BhcnQudHlwZX0nYCk7XG4gICAgfVxuICB9XG4gIGZsdXNoU3BhY2VzKCk7XG4gIHJldHVybiB7XG4gICAgLi4uaW5kLFxuICAgIHZhbHVlLFxuICAgIGxlbmd0aCxcbiAgICBxdWV1ZVxuICB9O1xuICBmdW5jdGlvbiBhZGRUYWJzKGNvdW50KSB7XG4gICAgdmFsdWUgKz0gXCJcdFwiLnJlcGVhdChjb3VudCk7XG4gICAgbGVuZ3RoICs9IG9wdGlvbnMudGFiV2lkdGggKiBjb3VudDtcbiAgfVxuICBmdW5jdGlvbiBhZGRTcGFjZXMoY291bnQpIHtcbiAgICB2YWx1ZSArPSBcIiBcIi5yZXBlYXQoY291bnQpO1xuICAgIGxlbmd0aCArPSBjb3VudDtcbiAgfVxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICBpZiAob3B0aW9ucy51c2VUYWJzKSB7XG4gICAgICBmbHVzaFRhYnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmx1c2hTcGFjZXMoKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZmx1c2hUYWJzKCkge1xuICAgIGlmIChsYXN0VGFicyA+IDApIHtcbiAgICAgIGFkZFRhYnMobGFzdFRhYnMpO1xuICAgIH1cbiAgICByZXNldExhc3QoKTtcbiAgfVxuICBmdW5jdGlvbiBmbHVzaFNwYWNlcygpIHtcbiAgICBpZiAobGFzdFNwYWNlcyA+IDApIHtcbiAgICAgIGFkZFNwYWNlcyhsYXN0U3BhY2VzKTtcbiAgICB9XG4gICAgcmVzZXRMYXN0KCk7XG4gIH1cbiAgZnVuY3Rpb24gcmVzZXRMYXN0KCkge1xuICAgIGxhc3RUYWJzID0gMDtcbiAgICBsYXN0U3BhY2VzID0gMDtcbiAgfVxufVxuZnVuY3Rpb24gdHJpbTIob3V0KSB7XG4gIGxldCB0cmltQ291bnQgPSAwO1xuICBsZXQgY3Vyc29yQ291bnQgPSAwO1xuICBsZXQgb3V0SW5kZXggPSBvdXQubGVuZ3RoO1xuICBvdXRlcjpcbiAgICB3aGlsZSAob3V0SW5kZXgtLSkge1xuICAgICAgY29uc3QgbGFzdCA9IG91dFtvdXRJbmRleF07XG4gICAgICBpZiAobGFzdCA9PT0gQ1VSU09SX1BMQUNFSE9MREVSKSB7XG4gICAgICAgIGN1cnNvckNvdW50Kys7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGZhbHNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCB2YWx1ZSBpbiB0cmltOiAnJHt0eXBlb2YgbGFzdH0nYCk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBjaGFySW5kZXggPSBsYXN0Lmxlbmd0aCAtIDE7IGNoYXJJbmRleCA+PSAwOyBjaGFySW5kZXgtLSkge1xuICAgICAgICBjb25zdCBjaGFyID0gbGFzdFtjaGFySW5kZXhdO1xuICAgICAgICBpZiAoY2hhciA9PT0gXCIgXCIgfHwgY2hhciA9PT0gXCJcdFwiKSB7XG4gICAgICAgICAgdHJpbUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0W291dEluZGV4XSA9IGxhc3Quc2xpY2UoMCwgY2hhckluZGV4ICsgMSk7XG4gICAgICAgICAgYnJlYWsgb3V0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIGlmICh0cmltQ291bnQgPiAwIHx8IGN1cnNvckNvdW50ID4gMCkge1xuICAgIG91dC5sZW5ndGggPSBvdXRJbmRleCArIDE7XG4gICAgd2hpbGUgKGN1cnNvckNvdW50LS0gPiAwKSB7XG4gICAgICBvdXQucHVzaChDVVJTT1JfUExBQ0VIT0xERVIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJpbUNvdW50O1xufVxuZnVuY3Rpb24gZml0cyhuZXh0LCByZXN0Q29tbWFuZHMsIHdpZHRoLCBoYXNMaW5lU3VmZml4LCBncm91cE1vZGVNYXAsIG11c3RCZUZsYXQpIHtcbiAgaWYgKHdpZHRoID09PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBsZXQgcmVzdElkeCA9IHJlc3RDb21tYW5kcy5sZW5ndGg7XG4gIGNvbnN0IGNtZHMgPSBbbmV4dF07XG4gIGNvbnN0IG91dCA9IFtdO1xuICB3aGlsZSAod2lkdGggPj0gMCkge1xuICAgIGlmIChjbWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKHJlc3RJZHggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBjbWRzLnB1c2gocmVzdENvbW1hbmRzWy0tcmVzdElkeF0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIG1vZGUsXG4gICAgICBkb2NcbiAgICB9ID0gY21kcy5wb3AoKTtcbiAgICBzd2l0Y2ggKGdldF9kb2NfdHlwZV9kZWZhdWx0KGRvYykpIHtcbiAgICAgIGNhc2UgRE9DX1RZUEVfU1RSSU5HOlxuICAgICAgICBvdXQucHVzaChkb2MpO1xuICAgICAgICB3aWR0aCAtPSBnZXRfc3RyaW5nX3dpZHRoX2RlZmF1bHQoZG9jKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0FSUkFZOlxuICAgICAgY2FzZSBET0NfVFlQRV9GSUxMOiB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gZ2V0RG9jUGFydHMoZG9jKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IHBhcnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICBkb2M6IHBhcnRzW2ldXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICAgIGNhc2UgRE9DX1RZUEVfQUxJR046XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVF9JRl9CUkVBSzpcbiAgICAgIGNhc2UgRE9DX1RZUEVfTEFCRUw6XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgbW9kZSxcbiAgICAgICAgICBkb2M6IGRvYy5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX1RSSU06XG4gICAgICAgIHdpZHRoICs9IHRyaW0yKG91dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9HUk9VUDoge1xuICAgICAgICBpZiAobXVzdEJlRmxhdCAmJiBkb2MuYnJlYWspIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ3JvdXBNb2RlID0gZG9jLmJyZWFrID8gTU9ERV9CUkVBSyA6IG1vZGU7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRzID0gZG9jLmV4cGFuZGVkU3RhdGVzICYmIGdyb3VwTW9kZSA9PT0gTU9ERV9CUkVBSyA/IGF0X2RlZmF1bHQoXG4gICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgZG9jLmV4cGFuZGVkU3RhdGVzLFxuICAgICAgICAgIC0xXG4gICAgICAgICkgOiBkb2MuY29udGVudHM7XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgbW9kZTogZ3JvdXBNb2RlLFxuICAgICAgICAgIGRvYzogY29udGVudHNcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9JRl9CUkVBSzoge1xuICAgICAgICBjb25zdCBncm91cE1vZGUgPSBkb2MuZ3JvdXBJZCA/IGdyb3VwTW9kZU1hcFtkb2MuZ3JvdXBJZF0gfHwgTU9ERV9GTEFUIDogbW9kZTtcbiAgICAgICAgY29uc3QgY29udGVudHMgPSBncm91cE1vZGUgPT09IE1PREVfQlJFQUsgPyBkb2MuYnJlYWtDb250ZW50cyA6IGRvYy5mbGF0Q29udGVudHM7XG4gICAgICAgIGlmIChjb250ZW50cykge1xuICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgZG9jOiBjb250ZW50c1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FOlxuICAgICAgICBpZiAobW9kZSA9PT0gTU9ERV9CUkVBSyB8fCBkb2MuaGFyZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZG9jLnNvZnQpIHtcbiAgICAgICAgICBvdXQucHVzaChcIiBcIik7XG4gICAgICAgICAgd2lkdGgtLTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVg6XG4gICAgICAgIGhhc0xpbmVTdWZmaXggPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVhfQk9VTkRBUlk6XG4gICAgICAgIGlmIChoYXNMaW5lU3VmZml4KSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBwcmludERvY1RvU3RyaW5nKGRvYywgb3B0aW9ucykge1xuICBjb25zdCBncm91cE1vZGVNYXAgPSB7fTtcbiAgY29uc3Qgd2lkdGggPSBvcHRpb25zLnByaW50V2lkdGg7XG4gIGNvbnN0IG5ld0xpbmUgPSBjb252ZXJ0RW5kT2ZMaW5lVG9DaGFycyhvcHRpb25zLmVuZE9mTGluZSk7XG4gIGxldCBwb3MgPSAwO1xuICBjb25zdCBjbWRzID0gW3tcbiAgICBpbmQ6IHJvb3RJbmRlbnQoKSxcbiAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgIGRvY1xuICB9XTtcbiAgY29uc3Qgb3V0ID0gW107XG4gIGxldCBzaG91bGRSZW1lYXN1cmUgPSBmYWxzZTtcbiAgY29uc3QgbGluZVN1ZmZpeDIgPSBbXTtcbiAgbGV0IHByaW50ZWRDdXJzb3JDb3VudCA9IDA7XG4gIHByb3BhZ2F0ZUJyZWFrcyhkb2MpO1xuICB3aGlsZSAoY21kcy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qge1xuICAgICAgaW5kLFxuICAgICAgbW9kZSxcbiAgICAgIGRvYzogZG9jMlxuICAgIH0gPSBjbWRzLnBvcCgpO1xuICAgIHN3aXRjaCAoZ2V0X2RvY190eXBlX2RlZmF1bHQoZG9jMikpIHtcbiAgICAgIGNhc2UgRE9DX1RZUEVfU1RSSU5HOiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IG5ld0xpbmUgIT09IFwiXFxuXCIgPyBzdHJpbmdfcmVwbGFjZV9hbGxfZGVmYXVsdChcbiAgICAgICAgICAvKiBpc09wdGlvbmFsT2JqZWN0Ki9cbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICBkb2MyLFxuICAgICAgICAgIFwiXFxuXCIsXG4gICAgICAgICAgbmV3TGluZVxuICAgICAgICApIDogZG9jMjtcbiAgICAgICAgb3V0LnB1c2goZm9ybWF0dGVkKTtcbiAgICAgICAgaWYgKGNtZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHBvcyArPSBnZXRfc3RyaW5nX3dpZHRoX2RlZmF1bHQoZm9ybWF0dGVkKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRE9DX1RZUEVfQVJSQVk6XG4gICAgICAgIGZvciAobGV0IGkgPSBkb2MyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgICBkb2M6IGRvYzJbaV1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfQ1VSU09SOlxuICAgICAgICBpZiAocHJpbnRlZEN1cnNvckNvdW50ID49IDIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGVyZSBhcmUgdG9vIG1hbnkgJ2N1cnNvcicgaW4gZG9jLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBvdXQucHVzaChDVVJTT1JfUExBQ0VIT0xERVIpO1xuICAgICAgICBwcmludGVkQ3Vyc29yQ291bnQrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0lOREVOVDpcbiAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICBpbmQ6IG1ha2VJbmRlbnQoaW5kLCBvcHRpb25zKSxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRvYzogZG9jMi5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0FMSUdOOlxuICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgIGluZDogbWFrZUFsaWduKGluZCwgZG9jMi5uLCBvcHRpb25zKSxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRvYzogZG9jMi5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX1RSSU06XG4gICAgICAgIHBvcyAtPSB0cmltMihvdXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfR1JPVVA6XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgIGNhc2UgTU9ERV9GTEFUOlxuICAgICAgICAgICAgaWYgKCFzaG91bGRSZW1lYXN1cmUpIHtcbiAgICAgICAgICAgICAgY21kcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICAgICAgbW9kZTogZG9jMi5icmVhayA/IE1PREVfQlJFQUsgOiBNT0RFX0ZMQVQsXG4gICAgICAgICAgICAgICAgZG9jOiBkb2MyLmNvbnRlbnRzXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIE1PREVfQlJFQUs6IHtcbiAgICAgICAgICAgIHNob3VsZFJlbWVhc3VyZSA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHtcbiAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICBtb2RlOiBNT0RFX0ZMQVQsXG4gICAgICAgICAgICAgIGRvYzogZG9jMi5jb250ZW50c1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlbSA9IHdpZHRoIC0gcG9zO1xuICAgICAgICAgICAgY29uc3QgaGFzTGluZVN1ZmZpeCA9IGxpbmVTdWZmaXgyLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICBpZiAoIWRvYzIuYnJlYWsgJiYgZml0cyhuZXh0LCBjbWRzLCByZW0sIGhhc0xpbmVTdWZmaXgsIGdyb3VwTW9kZU1hcCkpIHtcbiAgICAgICAgICAgICAgY21kcy5wdXNoKG5leHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGRvYzIuZXhwYW5kZWRTdGF0ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb3N0RXhwYW5kZWQgPSBhdF9kZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGRvYzIuZXhwYW5kZWRTdGF0ZXMsXG4gICAgICAgICAgICAgICAgICAtMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKGRvYzIuYnJlYWspIHtcbiAgICAgICAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogTU9ERV9CUkVBSyxcbiAgICAgICAgICAgICAgICAgICAgZG9jOiBtb3N0RXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgZG9jMi5leHBhbmRlZFN0YXRlcy5sZW5ndGggKyAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gZG9jMi5leHBhbmRlZFN0YXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogTU9ERV9CUkVBSyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvYzogbW9zdEV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBkb2MyLmV4cGFuZGVkU3RhdGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNtZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IE1PREVfRkxBVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvYzogc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXRzKGNtZCwgY21kcywgcmVtLCBoYXNMaW5lU3VmZml4LCBncm91cE1vZGVNYXApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbWRzLnB1c2goY21kKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgaW5kLFxuICAgICAgICAgICAgICAgICAgbW9kZTogTU9ERV9CUkVBSyxcbiAgICAgICAgICAgICAgICAgIGRvYzogZG9jMi5jb250ZW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvYzIuaWQpIHtcbiAgICAgICAgICBncm91cE1vZGVNYXBbZG9jMi5pZF0gPSBhdF9kZWZhdWx0KFxuICAgICAgICAgICAgLyogaXNPcHRpb25hbE9iamVjdCovXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGNtZHMsXG4gICAgICAgICAgICAtMVxuICAgICAgICAgICkubW9kZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfRklMTDoge1xuICAgICAgICBjb25zdCByZW0gPSB3aWR0aCAtIHBvcztcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBhcnRzXG4gICAgICAgIH0gPSBkb2MyO1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW2NvbnRlbnQsIHdoaXRlc3BhY2VdID0gcGFydHM7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRGbGF0Q21kID0ge1xuICAgICAgICAgIGluZCxcbiAgICAgICAgICBtb2RlOiBNT0RFX0ZMQVQsXG4gICAgICAgICAgZG9jOiBjb250ZW50XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbnRlbnRCcmVha0NtZCA9IHtcbiAgICAgICAgICBpbmQsXG4gICAgICAgICAgbW9kZTogTU9ERV9CUkVBSyxcbiAgICAgICAgICBkb2M6IGNvbnRlbnRcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY29udGVudEZpdHMgPSBmaXRzKGNvbnRlbnRGbGF0Q21kLCBbXSwgcmVtLCBsaW5lU3VmZml4Mi5sZW5ndGggPiAwLCBncm91cE1vZGVNYXAsIHRydWUpO1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgaWYgKGNvbnRlbnRGaXRzKSB7XG4gICAgICAgICAgICBjbWRzLnB1c2goY29udGVudEZsYXRDbWQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbWRzLnB1c2goY29udGVudEJyZWFrQ21kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2hpdGVzcGFjZUZsYXRDbWQgPSB7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGU6IE1PREVfRkxBVCxcbiAgICAgICAgICBkb2M6IHdoaXRlc3BhY2VcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgd2hpdGVzcGFjZUJyZWFrQ21kID0ge1xuICAgICAgICAgIGluZCxcbiAgICAgICAgICBtb2RlOiBNT0RFX0JSRUFLLFxuICAgICAgICAgIGRvYzogd2hpdGVzcGFjZVxuICAgICAgICB9O1xuICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgaWYgKGNvbnRlbnRGaXRzKSB7XG4gICAgICAgICAgICBjbWRzLnB1c2god2hpdGVzcGFjZUZsYXRDbWQsIGNvbnRlbnRGbGF0Q21kKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY21kcy5wdXNoKHdoaXRlc3BhY2VCcmVha0NtZCwgY29udGVudEJyZWFrQ21kKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcGFydHMuc3BsaWNlKDAsIDIpO1xuICAgICAgICBjb25zdCByZW1haW5pbmdDbWQgPSB7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZG9jOiBmaWxsKHBhcnRzKVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZWNvbmRDb250ZW50ID0gcGFydHNbMF07XG4gICAgICAgIGNvbnN0IGZpcnN0QW5kU2Vjb25kQ29udGVudEZsYXRDbWQgPSB7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGU6IE1PREVfRkxBVCxcbiAgICAgICAgICBkb2M6IFtjb250ZW50LCB3aGl0ZXNwYWNlLCBzZWNvbmRDb250ZW50XVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBmaXJzdEFuZFNlY29uZENvbnRlbnRGaXRzID0gZml0cyhmaXJzdEFuZFNlY29uZENvbnRlbnRGbGF0Q21kLCBbXSwgcmVtLCBsaW5lU3VmZml4Mi5sZW5ndGggPiAwLCBncm91cE1vZGVNYXAsIHRydWUpO1xuICAgICAgICBpZiAoZmlyc3RBbmRTZWNvbmRDb250ZW50Rml0cykge1xuICAgICAgICAgIGNtZHMucHVzaChyZW1haW5pbmdDbWQsIHdoaXRlc3BhY2VGbGF0Q21kLCBjb250ZW50RmxhdENtZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29udGVudEZpdHMpIHtcbiAgICAgICAgICBjbWRzLnB1c2gocmVtYWluaW5nQ21kLCB3aGl0ZXNwYWNlQnJlYWtDbWQsIGNvbnRlbnRGbGF0Q21kKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbWRzLnB1c2gocmVtYWluaW5nQ21kLCB3aGl0ZXNwYWNlQnJlYWtDbWQsIGNvbnRlbnRCcmVha0NtZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIERPQ19UWVBFX0lGX0JSRUFLOlxuICAgICAgY2FzZSBET0NfVFlQRV9JTkRFTlRfSUZfQlJFQUs6IHtcbiAgICAgICAgY29uc3QgZ3JvdXBNb2RlID0gZG9jMi5ncm91cElkID8gZ3JvdXBNb2RlTWFwW2RvYzIuZ3JvdXBJZF0gOiBtb2RlO1xuICAgICAgICBpZiAoZ3JvdXBNb2RlID09PSBNT0RFX0JSRUFLKSB7XG4gICAgICAgICAgY29uc3QgYnJlYWtDb250ZW50cyA9IGRvYzIudHlwZSA9PT0gRE9DX1RZUEVfSUZfQlJFQUsgPyBkb2MyLmJyZWFrQ29udGVudHMgOiBkb2MyLm5lZ2F0ZSA/IGRvYzIuY29udGVudHMgOiBpbmRlbnQoZG9jMi5jb250ZW50cyk7XG4gICAgICAgICAgaWYgKGJyZWFrQ29udGVudHMpIHtcbiAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgICAgZG9jOiBicmVha0NvbnRlbnRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdyb3VwTW9kZSA9PT0gTU9ERV9GTEFUKSB7XG4gICAgICAgICAgY29uc3QgZmxhdENvbnRlbnRzID0gZG9jMi50eXBlID09PSBET0NfVFlQRV9JRl9CUkVBSyA/IGRvYzIuZmxhdENvbnRlbnRzIDogZG9jMi5uZWdhdGUgPyBpbmRlbnQoZG9jMi5jb250ZW50cykgOiBkb2MyLmNvbnRlbnRzO1xuICAgICAgICAgIGlmIChmbGF0Q29udGVudHMpIHtcbiAgICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgICAgZG9jOiBmbGF0Q29udGVudHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgRE9DX1RZUEVfTElORV9TVUZGSVg6XG4gICAgICAgIGxpbmVTdWZmaXgyLnB1c2goe1xuICAgICAgICAgIGluZCxcbiAgICAgICAgICBtb2RlLFxuICAgICAgICAgIGRvYzogZG9jMi5jb250ZW50c1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZOlxuICAgICAgICBpZiAobGluZVN1ZmZpeDIubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgICBpbmQsXG4gICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgZG9jOiBoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBET0NfVFlQRV9MSU5FOlxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICBjYXNlIE1PREVfRkxBVDpcbiAgICAgICAgICAgIGlmICghZG9jMi5oYXJkKSB7XG4gICAgICAgICAgICAgIGlmICghZG9jMi5zb2Z0KSB7XG4gICAgICAgICAgICAgICAgb3V0LnB1c2goXCIgXCIpO1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2hvdWxkUmVtZWFzdXJlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIE1PREVfQlJFQUs6XG4gICAgICAgICAgICBpZiAobGluZVN1ZmZpeDIubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBjbWRzLnB1c2goe1xuICAgICAgICAgICAgICAgIGluZCxcbiAgICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICAgIGRvYzogZG9jMlxuICAgICAgICAgICAgICB9LCAuLi5saW5lU3VmZml4Mi5yZXZlcnNlKCkpO1xuICAgICAgICAgICAgICBsaW5lU3VmZml4Mi5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkb2MyLmxpdGVyYWwpIHtcbiAgICAgICAgICAgICAgaWYgKGluZC5yb290KSB7XG4gICAgICAgICAgICAgICAgb3V0LnB1c2gobmV3TGluZSwgaW5kLnJvb3QudmFsdWUpO1xuICAgICAgICAgICAgICAgIHBvcyA9IGluZC5yb290Lmxlbmd0aDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChuZXdMaW5lKTtcbiAgICAgICAgICAgICAgICBwb3MgPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwb3MgLT0gdHJpbTIob3V0KTtcbiAgICAgICAgICAgICAgb3V0LnB1c2gobmV3TGluZSArIGluZC52YWx1ZSk7XG4gICAgICAgICAgICAgIHBvcyA9IGluZC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfTEFCRUw6XG4gICAgICAgIGNtZHMucHVzaCh7XG4gICAgICAgICAgaW5kLFxuICAgICAgICAgIG1vZGUsXG4gICAgICAgICAgZG9jOiBkb2MyLmNvbnRlbnRzXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRE9DX1RZUEVfQlJFQUtfUEFSRU5UOlxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBpbnZhbGlkX2RvY19lcnJvcl9kZWZhdWx0KGRvYzIpO1xuICAgIH1cbiAgICBpZiAoY21kcy5sZW5ndGggPT09IDAgJiYgbGluZVN1ZmZpeDIubGVuZ3RoID4gMCkge1xuICAgICAgY21kcy5wdXNoKC4uLmxpbmVTdWZmaXgyLnJldmVyc2UoKSk7XG4gICAgICBsaW5lU3VmZml4Mi5sZW5ndGggPSAwO1xuICAgIH1cbiAgfVxuICBjb25zdCBjdXJzb3JQbGFjZWhvbGRlckluZGV4ID0gb3V0LmluZGV4T2YoQ1VSU09SX1BMQUNFSE9MREVSKTtcbiAgaWYgKGN1cnNvclBsYWNlaG9sZGVySW5kZXggIT09IC0xKSB7XG4gICAgY29uc3Qgb3RoZXJDdXJzb3JQbGFjZWhvbGRlckluZGV4ID0gb3V0LmluZGV4T2YoQ1VSU09SX1BMQUNFSE9MREVSLCBjdXJzb3JQbGFjZWhvbGRlckluZGV4ICsgMSk7XG4gICAgY29uc3QgYmVmb3JlQ3Vyc29yID0gb3V0LnNsaWNlKDAsIGN1cnNvclBsYWNlaG9sZGVySW5kZXgpLmpvaW4oXCJcIik7XG4gICAgY29uc3QgYXJvdW5kQ3Vyc29yID0gb3V0LnNsaWNlKGN1cnNvclBsYWNlaG9sZGVySW5kZXggKyAxLCBvdGhlckN1cnNvclBsYWNlaG9sZGVySW5kZXgpLmpvaW4oXCJcIik7XG4gICAgY29uc3QgYWZ0ZXJDdXJzb3IgPSBvdXQuc2xpY2Uob3RoZXJDdXJzb3JQbGFjZWhvbGRlckluZGV4ICsgMSkuam9pbihcIlwiKTtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybWF0dGVkOiBiZWZvcmVDdXJzb3IgKyBhcm91bmRDdXJzb3IgKyBhZnRlckN1cnNvcixcbiAgICAgIGN1cnNvck5vZGVTdGFydDogYmVmb3JlQ3Vyc29yLmxlbmd0aCxcbiAgICAgIGN1cnNvck5vZGVUZXh0OiBhcm91bmRDdXJzb3JcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgZm9ybWF0dGVkOiBvdXQuam9pbihcIlwiKVxuICB9O1xufVxuXG4vLyBzcmMvZG9jdW1lbnQvcHVibGljLmpzXG52YXIgYnVpbGRlcnMgPSB7XG4gIGpvaW4sXG4gIGxpbmUsXG4gIHNvZnRsaW5lLFxuICBoYXJkbGluZSxcbiAgbGl0ZXJhbGxpbmUsXG4gIGdyb3VwLFxuICBjb25kaXRpb25hbEdyb3VwLFxuICBmaWxsLFxuICBsaW5lU3VmZml4LFxuICBsaW5lU3VmZml4Qm91bmRhcnksXG4gIGN1cnNvcixcbiAgYnJlYWtQYXJlbnQsXG4gIGlmQnJlYWssXG4gIHRyaW0sXG4gIGluZGVudCxcbiAgaW5kZW50SWZCcmVhayxcbiAgYWxpZ24sXG4gIGFkZEFsaWdubWVudFRvRG9jLFxuICBtYXJrQXNSb290LFxuICBkZWRlbnRUb1Jvb3QsXG4gIGRlZGVudCxcbiAgaGFyZGxpbmVXaXRob3V0QnJlYWtQYXJlbnQsXG4gIGxpdGVyYWxsaW5lV2l0aG91dEJyZWFrUGFyZW50LFxuICBsYWJlbCxcbiAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgaW4gdjRcbiAgY29uY2F0OiAocGFydHMpID0+IHBhcnRzXG59O1xudmFyIHByaW50ZXIgPSB7IHByaW50RG9jVG9TdHJpbmcgfTtcbnZhciB1dGlscyA9IHtcbiAgd2lsbEJyZWFrLFxuICB0cmF2ZXJzZURvYzogdHJhdmVyc2VfZG9jX2RlZmF1bHQsXG4gIGZpbmRJbkRvYyxcbiAgbWFwRG9jLFxuICByZW1vdmVMaW5lcyxcbiAgc3RyaXBUcmFpbGluZ0hhcmRsaW5lLFxuICByZXBsYWNlRW5kT2ZMaW5lLFxuICBjYW5CcmVha1xufTtcblxuLy8gd2l0aC1kZWZhdWx0LWV4cG9ydDpzcmMvZG9jdW1lbnQvcHVibGljLmpzXG52YXIgcHVibGljX2RlZmF1bHQgPSBwdWJsaWNfZXhwb3J0cztcbmV4cG9ydCB7XG4gIGJ1aWxkZXJzLFxuICBwdWJsaWNfZGVmYXVsdCBhcyBkZWZhdWx0LFxuICBwcmludGVyLFxuICB1dGlsc1xufTtcbiIsICJpbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdwcmV0dGllcic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmb3JtYXRZYW1sKHZhbHVlOiBzdHJpbmcsIGZpbGVwYXRoPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZnAgPSBmaWxlcGF0aCA/IHsgZmlsZXBhdGggfSA6IHt9O1xuICByZXR1cm4gZm9ybWF0KHZhbHVlLCB7XG4gICAgc2VtaTogZmFsc2UsXG4gICAgcGFyc2VyOiAneWFtbCcsXG4gICAgZW1iZWRkZWRMYW5ndWFnZUZvcm1hdHRpbmc6ICdhdXRvJyxcbiAgICAuLi5mcCxcbiAgfSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0TWFya2Rvd24odmFsdWU6IHN0cmluZywgZmlsZXBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBmcCA9IGZpbGVwYXRoID8geyBmaWxlcGF0aCB9IDoge307XG4gIHJldHVybiBmb3JtYXQodmFsdWUsIHtcbiAgICBzZW1pOiBmYWxzZSxcbiAgICBwYXJzZXI6ICdtYXJrZG93bicsXG4gICAgZW1iZWRkZWRMYW5ndWFnZUZvcm1hdHRpbmc6ICdhdXRvJyxcbiAgICAuLi5mcCxcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBSZXBvIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZVJlYWRtZSBmcm9tICcuLi9yZWFkbWUtd3JpdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJQmFkZ2Uge1xuICBhbHQ6IHN0cmluZztcbiAgaW1nOiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUJhZGdlcyh0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIGNvbnN0IGVuYWJsZVZlcnNpb25pbmcgPSBpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzpiYWRnZXMnKTtcbiAgY29uc3QgYmFkZ2VzOiBJQmFkZ2VbXSA9IFtdO1xuICBjb25zdCByZXBvczogUmVwbyA9IHtcbiAgICBvd25lcjogaW5wdXRzLmNvbmZpZy5nZXQoJ293bmVyJyksXG4gICAgcmVwbzogaW5wdXRzLmNvbmZpZy5nZXQoJ3JlcG8nKSxcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgZ2l0aHViIGJhZGdlcy5cbiAgICogQHBhcmFtIGdpdGh1YklkXG4gICAqL1xuICBmdW5jdGlvbiBnaXRodWJCYWRnZXMoKTogSUJhZGdlW10ge1xuICAgIGNvbnN0IHJlcG9VcmwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb3Mub3duZXJ9LyR7cmVwb3MucmVwb31gO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGltZzogYGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2Rpc3BsYXlfbmFtZT10YWcmc29ydD1zZW12ZXImbG9nbz1naXRodWImc3R5bGU9ZmxhdC1zcXVhcmVgLFxuICAgICAgICBhbHQ6ICdSZWxlYXNlJyxcbiAgICAgICAgdXJsOiBgJHtyZXBvVXJsfS9yZWxlYXNlcy9sYXRlc3RgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1nOiBgaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVsZWFzZS1kYXRlLyR7cmVwb3Mub3duZXJ9LyR7cmVwb3MucmVwb30/ZGlzcGxheV9uYW1lPXRhZyZzb3J0PXNlbXZlciZsb2dvPWdpdGh1YiZzdHlsZT1mbGF0LXNxdWFyZWAsXG4gICAgICAgIGFsdDogJ1JlbGVhc2UnLFxuICAgICAgICB1cmw6IGAke3JlcG9Vcmx9L3JlbGVhc2VzL2xhdGVzdGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWc6IGBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2xvZ289Z2l0aHViJnN0eWxlPWZsYXQtc3F1YXJlYCxcbiAgICAgICAgYWx0OiAnQ29tbWl0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltZzogYGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2xvZ289Z2l0aHViJnN0eWxlPWZsYXQtc3F1YXJlYCxcbiAgICAgICAgYWx0OiAnT3BlbiBJc3N1ZXMnLFxuICAgICAgICB1cmw6IGAke3JlcG9Vcmx9L2lzc3Vlc2AsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWc6IGBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9kb3dubG9hZHMvJHtyZXBvcy5vd25lcn0vJHtyZXBvcy5yZXBvfS90b3RhbD9sb2dvPWdpdGh1YiZzdHlsZT1mbGF0LXNxdWFyZWAsXG4gICAgICAgIGFsdDogJ0Rvd25sb2FkcycsXG4gICAgICB9LFxuICAgIF07XG4gIH1cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGJhZGdlLlxuICAgKi9cbiAgZnVuY3Rpb24gZ2VuZXJhdGVCYWRnZShpdGVtOiBJQmFkZ2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhZGdlVGVtcGxhdGUgPSBgPGltZyBzcmM9XCIke2l0ZW0uaW1nfVwiIGFsdD1cIiR7aXRlbS5hbHQgfHwgJyd9XCIgLz5gO1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHtpdGVtLnVybH1cIj4ke2JhZGdlVGVtcGxhdGV9PC9hPmA7XG4gICAgfVxuICAgIHJldHVybiBiYWRnZVRlbXBsYXRlO1xuICB9XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYWxsIGJhZGdlcy5cbiAgICovXG4gIGZ1bmN0aW9uIGdlbmVyYXRlQmFkZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBiYWRnZUFycmF5ID0gW107XG4gICAgZm9yIChjb25zdCBiIG9mIGJhZGdlcykge1xuICAgICAgYmFkZ2VBcnJheS5wdXNoKGdlbmVyYXRlQmFkZ2UoYikpO1xuICAgIH1cbiAgICByZXR1cm4gW2JhZGdlQXJyYXkuam9pbignJyldO1xuICB9XG5cbiAgbG9nLnN0YXJ0KCk7XG5cbiAgLy8gQWRkIEdpdGh1YiBiYWRnZXNcbiAgaWYgKGVuYWJsZVZlcnNpb25pbmcpIHtcbiAgICBiYWRnZXMucHVzaCguLi5naXRodWJCYWRnZXMoKSk7XG4gIH1cbiAgY29uc3QgY29udGVudCA9IGdlbmVyYXRlQmFkZ2VzKCk7XG4gIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICBsb2cuc3VjY2VzcygpO1xufVxuIiwgImltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi4vbG9ndGFzayc7XG5pbXBvcnQgdXBkYXRlUmVhZG1lIGZyb20gJy4uL3JlYWRtZS13cml0ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB1cGRhdGVEZXNjcmlwdGlvbih0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZ1tdID0gW107XG4gIC8vIEJ1aWxkIHRoZSBuZXcgZGVzY3JpcHRpb24gc2VjdGlvblxuICBpZiAoaW5wdXRzPy5hY3Rpb24/LmRlc2NyaXB0aW9uKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgY29uc3QgZGVzYzogc3RyaW5nID0gaW5wdXRzLmFjdGlvbi5kZXNjcmlwdGlvblxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2VBbGwoJ1xcclxcbicsICdcXG4nKSAvLyBDb252ZXJ0IENSIHRvIExGXG4gICAgICAucmVwbGFjZUFsbCgvICsvZywgJyAnKSAvLyAgICBTcXVhc2ggY29uc2VjdXRpdmUgc3BhY2VzXG4gICAgICAucmVwbGFjZUFsbCgnIFxcbicsICdcXG4nKSAvLyAgU3F1YXNoIHNwYWNlIGZvbGxvd2VkIGJ5IG5ld2xpbmVcbiAgICAgIC5yZXBsYWNlKCdcXG4nLCAnPGJyIC8+Jyk7IC8vIGNvbnZlcnQgZG91YmxlIHJldHVybiB0byBhIGJyZWFrXG5cbiAgICBsb2cuaW5mbyhgV3JpdGluZyAke2Rlc2MubGVuZ3RofSBjaGFyYWN0ZXJzIHRvIHRoZSBkZXNjcmlwdGlvbiBzZWN0aW9uYCk7XG4gICAgY29udGVudC5wdXNoKGRlc2MpO1xuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH1cbn1cbiIsICJleHBvcnQgdHlwZSBNYXJrZG93bkFycmF5Um93VHlwZSA9IHN0cmluZ1tdW107XG5leHBvcnQgdHlwZSBNYXJrZG93bkFycmF5SXRlbVR5cGUgPSBzdHJpbmc7XG4vKipcbiAqIEZpbGxzIHRoZSB3aWR0aCBvZiB0aGUgY2VsbC5cbiAqIEBwYXJhbSB0ZXh0XG4gKiBAcGFyYW0gd2lkdGhcbiAqIEBwYXJhbSBwYWRkaW5nU3RhcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxXaWR0aCh0ZXh0OiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIHBhZGRpbmdTdGFydDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICAnICcucmVwZWF0KHBhZGRpbmdTdGFydCkgKyB0ZXh0ICsgJyAnLnJlcGVhdChNYXRoLm1heCgxLCB3aWR0aCAtIHRleHQubGVuZ3RoIC0gcGFkZGluZ1N0YXJ0KSlcbiAgKTtcbn1cbi8qKlxuICogRXNjYXBlIGEgdGV4dCBzbyBpdCBjYW4gYmUgdXNlZCBpbiBhIG1hcmtkb3duIHRhYmxlXG4gKiBAcGFyYW0gdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25Fc2NhcGVUYWJsZUNlbGwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnXFxuJywgJzxiciAvPicpLnJlcGxhY2VBbGwoJ3wnLCAnXFxcXHwnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duRXNjYXBlSW5saW5lQ29kZShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyByZXBsYWNlIGdyYXZlIGFjY2VudHMgd2l0aCA8Y29kZT4gSFRNTCBlbGVtZW50IHRvIHJlc29sdmUgdW5pY29kZSBjaGFyYWN0ZXIgaW4gbWFya2Rvd25cbiAgLy8gbGV0IGlzQ2xvc2luZ1RhZyA9IGZhbHNlO1xuICByZXR1cm4gY29udGVudC5yZXBsYWNlQWxsKC8oW1xccypfXXxeKWAoW15gXSspYChbXFxzKl9dfCQpL2csICckMTxjb2RlPiQyPC9jb2RlPiQzJyk7XG5cbiAgLy8gPy5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAvLyAgIGlmICghaXNDbG9zaW5nVGFnKSB7XG4gIC8vICAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKG1hdGNoLCAnPGNvZGU+Jyk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UobWF0Y2gsICc8L2NvZGU+Jyk7XG4gIC8vICAgfVxuICAvLyAgIGlzQ2xvc2luZ1RhZyA9ICFpc0Nsb3NpbmdUYWc7XG4gIC8vIH0pO1xuICAvLyByZXR1cm4gY29udGVudFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXJyYXlPZkFycmF5c1RvTWFya2Rvd25UYWJsZShwcm92aWRlZFRhYmxlQ29udGVudDogTWFya2Rvd25BcnJheVJvd1R5cGUpOiBzdHJpbmcge1xuICBjb25zdCB0YWJsZUNvbnRlbnQ6IE1hcmtkb3duQXJyYXlSb3dUeXBlID0gW107XG4gIGNvbnN0IG91dHB1dFN0cmluZ3MgPSBbXTtcbiAgLy8gQ2xvbmUgdGhlIGFycmF5cyBzbyB3ZSBkb24ndCBtb2RpZnkgdGhlIG9yaWdpbmFsXG4gIGZvciAoY29uc3Qgcm93QSBvZiBwcm92aWRlZFRhYmxlQ29udGVudCkge1xuICAgIHRhYmxlQ29udGVudC5wdXNoKFsuLi5yb3dBXSBhcyBzdHJpbmdbXSk7XG4gIH1cbiAgY29uc3QgbWF4Um93cyA9IHRhYmxlQ29udGVudC5sZW5ndGg7XG4gIGxldCBtYXhDb2xzID0gMDtcbiAgbGV0IG1pbkNvbHMgPSAwO1xuICAvLyBGaW5kIHRoZSBtYXggYW5kIG1pbiBjb2x1bW5zIHNvIHdlIGNhbiBwYWQgdGhlIHJvd3NcbiAgZm9yIChjb25zdCBbaSwgZV0gb2YgdGFibGVDb250ZW50LmVudHJpZXMoKSkge1xuICAgIGlmICh0YWJsZUNvbnRlbnRbaV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbnVtQ29scyA9IGUubGVuZ3RoO1xuICAgICAgaWYgKG51bUNvbHMgPiBtYXhDb2xzKSB7XG4gICAgICAgIG1heENvbHMgPSBudW1Db2xzO1xuICAgICAgfVxuICAgICAgaWYgKG51bUNvbHMgPCBtaW5Db2xzIHx8IG1pbkNvbHMgPT09IDApIHtcbiAgICAgICAgbWluQ29scyA9IG51bUNvbHM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChtYXhDb2xzICE9PSBtaW5Db2xzKSB7XG4gICAgZm9yIChjb25zdCBbaSwgZV0gb2YgdGFibGVDb250ZW50LmVudHJpZXMoKSkge1xuICAgICAgaWYgKHRhYmxlQ29udGVudFtpXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRhYmxlQ29udGVudFtpXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IG1heENvbHMgfSkuZmlsbCgnJykgYXMgc3RyaW5nW107XG4gICAgICB9IGVsc2UgaWYgKGUubGVuZ3RoIDwgbWF4Q29scykge1xuICAgICAgICB0YWJsZUNvbnRlbnRbaV0gPSBbXG4gICAgICAgICAgLi4uZSxcbiAgICAgICAgICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiBtYXhDb2xzIC0gZS5sZW5ndGggfSkuZmlsbCgndW5kZWZpbmVkJyksXG4gICAgICAgIF0gYXMgc3RyaW5nW107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IG1hcmtkb3duQXJyYXlSb3dzTGVuZ3RoID0gbWF4Um93cyArIDE7XG4gIGNvbnN0IG1hcmtkb3duQXJyYXlFbnRyaWVzTGVuZ3RoID0gbWF4Q29scyAqIDIgKyAxO1xuICBjb25zdCBtYXJrZG93bkFycmF5czogTWFya2Rvd25BcnJheVJvd1R5cGUgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBtYXJrZG93bkFycmF5Um93c0xlbmd0aCB9KS5maWxsKFxuICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IG1hcmtkb3duQXJyYXlFbnRyaWVzTGVuZ3RoIH0pLmZpbGwoJ3wnIGFzIHN0cmluZykgYXMgc3RyaW5nW10sXG4gICkgYXMgTWFya2Rvd25BcnJheVJvd1R5cGU7XG4gIGZvciAoY29uc3QgW2ksIHJvd10gb2YgbWFya2Rvd25BcnJheXMuZW50cmllcygpKSB7XG4gICAgbGV0IGNvbCA9IDA7XG5cbiAgICBjb25zdCBpZHggPSBpID4gMSA/IGkgLSAxIDogMDtcbiAgICBjb25zdCBkYXRhUm93ID0gdGFibGVDb250ZW50W2lkeF0gYXMgc3RyaW5nW107XG4gICAgZm9yIChjb25zdCBbal0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgbGV0IGNvbnRlbnQgPSBtYXJrZG93bkVzY2FwZVRhYmxlQ2VsbChkYXRhUm93W2NvbF0gPz8gJycpO1xuXG4gICAgICBjb250ZW50ID0gbWFya2Rvd25Fc2NhcGVJbmxpbmVDb2RlKGNvbnRlbnQpO1xuXG4gICAgICBpZiAoaiAlIDIgPT09IDEpIHtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAobWFya2Rvd25BcnJheXNbaV0gYXMgc3RyaW5nW10pW2pdID0gYCAqKiR7Y29udGVudC50cmltKCl9KiogYDtcbiAgICAgICAgfSBlbHNlIGlmIChpID09PSAxKSB7XG4gICAgICAgICAgKG1hcmtkb3duQXJyYXlzW2ldIGFzIHN0cmluZ1tdKVtqXSA9ICctLS0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIChtYXJrZG93bkFycmF5c1tpXSBhcyBzdHJpbmdbXSlbal0gPSBgICR7Y29udGVudC50cmltKCl9IGA7XG4gICAgICAgIH1cbiAgICAgICAgY29sICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIG91dHB1dFN0cmluZ3MucHVzaChgJHsobWFya2Rvd25BcnJheXNbaV0gYXMgc3RyaW5nW10pLmpvaW4oJycpfVxcbmApO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dFN0cmluZ3Muam9pbignJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFycmF5T2ZBcnJheXNUb01hcmtkb3duVGFibGU7XG4iLCAiaW1wb3J0IHsgY29sdW1uSGVhZGVyLCByb3dIZWFkZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi4vbG9ndGFzayc7XG5pbXBvcnQgbWFya2Rvd25lciBmcm9tICcuLi9tYXJrZG93bmVyJztcbmltcG9ydCB1cGRhdGVSZWFkbWUgZnJvbSAnLi4vcmVhZG1lLXdyaXRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUlucHV0cyh0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IG1hcmtkb3duQXJyYXk6IHN0cmluZ1tdW10gPSBbXTtcbiAgY29uc3QgdGl0bGVBcnJheSA9IFsnSW5wdXQnLCAnRGVzY3JpcHRpb24nLCAnRGVmYXVsdCcsICdSZXF1aXJlZCddO1xuICBjb25zdCB0aXRsZXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgdCBvZiB0aXRsZUFycmF5KSB7XG4gICAgdGl0bGVzLnB1c2goY29sdW1uSGVhZGVyKHQpKTtcbiAgfVxuICBtYXJrZG93bkFycmF5LnB1c2godGl0bGVzKTtcbiAgY29uc3QgdmFycyA9IGlucHV0cy5hY3Rpb24uaW5wdXRzO1xuICBjb25zdCB0SSA9IHZhcnMgPyBPYmplY3Qua2V5cyh2YXJzKS5sZW5ndGggOiAwO1xuICBpZiAodEkgPiAwKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFycykpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHZhcnNba2V5XTtcblxuICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdmFsdWVzPy5kZXNjcmlwdGlvbiA/PyAnJztcblxuICAgICAgLy8gQ2hlY2sgaWYgb25seSBmaXJzdCBsaW5lIHNob3VsZCBiZSBhZGRlZCAob25seSBzdWJqZWN0IHdpdGhvdXQgYm9keSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgICAgY29uc3QgbWF0Y2hlcyA9IGRlc2NyaXB0aW9uLm1hdGNoKCcoLio/KVxcblxcbihbU3NdKiknKTtcbiAgICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgZGVzY3JpcHRpb24gPSBtYXRjaGVzWzFdIHx8IGRlc2NyaXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnRyaW0oKS5yZXBsYWNlKCdcXG4nLCAnPGJyIC8+Jyk7XG5cbiAgICAgIGNvbnN0IHJvdzogc3RyaW5nW10gPSBbXG4gICAgICAgIHJvd0hlYWRlcihrZXkpLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgdmFsdWVzPy5kZWZhdWx0ID8gYFxcYCR7dmFsdWVzLmRlZmF1bHR9XFxgYCA6ICcnLFxuICAgICAgICB2YWx1ZXM/LnJlcXVpcmVkID8gJyoqdHJ1ZSoqJyA6ICdfX2ZhbHNlX18nLFxuICAgICAgXTtcbiAgICAgIGxvZy5kZWJ1ZyhKU09OLnN0cmluZ2lmeShyb3cpKTtcbiAgICAgIG1hcmtkb3duQXJyYXkucHVzaChyb3cpO1xuICAgIH1cbiAgICBjb250ZW50LnB1c2gobWFya2Rvd25lcihtYXJrZG93bkFycmF5KSk7XG4gICAgbG9nLmluZm8oYEFjdGlvbiBoYXMgJHt0SX0gdG90YWwgJHt0b2tlbn1gKTtcbiAgICBhd2FpdCB1cGRhdGVSZWFkbWUoY29udGVudCwgdG9rZW4sIGlucHV0cy5yZWFkbWVQYXRoKTtcbiAgICBsb2cuc3VjY2VzcygpO1xuICB9IGVsc2Uge1xuICAgIGxvZy5kZWJ1ZyhgQWN0aW9uIGhhcyBubyAke3Rva2VufWApO1xuICB9XG59XG4iLCAiaW1wb3J0IHsgY29sdW1uSGVhZGVyLCByb3dIZWFkZXIgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi4vbG9ndGFzayc7XG5pbXBvcnQgbWFya2Rvd25lciBmcm9tICcuLi9tYXJrZG93bmVyJztcbmltcG9ydCB1cGRhdGVSZWFkbWUgZnJvbSAnLi4vcmVhZG1lLXdyaXRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU91dHB1dHModG9rZW46IHN0cmluZywgaW5wdXRzOiBJbnB1dHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW4pO1xuXG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgbWFya2Rvd25BcnJheTogc3RyaW5nW11bXSA9IFtdO1xuICBjb25zdCB0aXRsZUFycmF5ID0gWydPdXRwdXQnLCAnRGVzY3JpcHRpb24nXTtcbiAgY29uc3QgdGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHQgb2YgdGl0bGVBcnJheSkge1xuICAgIHRpdGxlcy5wdXNoKGNvbHVtbkhlYWRlcih0KSk7XG4gIH1cbiAgbWFya2Rvd25BcnJheS5wdXNoKHRpdGxlcyk7XG4gIGNvbnN0IHZhcnMgPSBpbnB1dHMuYWN0aW9uLm91dHB1dHM7XG4gIGNvbnN0IHRJID0gdmFycyA/IE9iamVjdC5rZXlzKHZhcnMpLmxlbmd0aCA6IDA7XG4gIGlmICh0SSA+IDApIHtcbiAgICBsb2cuc3RhcnQoKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YXJzKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFyc1trZXldO1xuXG4gICAgICBsZXQgZGVzY3JpcHRpb24gPSB2YWx1ZXM/LmRlc2NyaXB0aW9uID8/ICcnO1xuXG4gICAgICAvLyBDaGVjayBpZiBvbmx5IGZpcnN0IGxpbmUgc2hvdWxkIGJlIGFkZGVkIChvbmx5IHN1YmplY3Qgd2l0aG91dCBib2R5KVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgICBjb25zdCBtYXRjaGVzID0gZGVzY3JpcHRpb24ubWF0Y2goJyguKj8pXFxuXFxuKFtTc10qKScpO1xuICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPj0gMikge1xuICAgICAgICBkZXNjcmlwdGlvbiA9IG1hdGNoZXNbMV0gfHwgZGVzY3JpcHRpb247XG4gICAgICB9XG5cbiAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24udHJpbSgpLnJlcGxhY2UoJ1xcbicsICc8YnIgLz4nKTtcbiAgICAgIGNvbnN0IHJvdzogc3RyaW5nW10gPSBbcm93SGVhZGVyKGtleSksIGRlc2NyaXB0aW9uXTtcblxuICAgICAgbG9nLmRlYnVnKEpTT04uc3RyaW5naWZ5KHJvdykpO1xuICAgICAgbWFya2Rvd25BcnJheS5wdXNoKHJvdyk7XG4gICAgfVxuICAgIGNvbnRlbnQucHVzaChtYXJrZG93bmVyKG1hcmtkb3duQXJyYXkpKTtcbiAgICBsb2cuaW5mbyhgQWN0aW9uIGhhcyAke3RJfSB0b3RhbCAke3Rva2VufWApO1xuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nLmRlYnVnKGBBY3Rpb24gaGFzIG5vICR7dG9rZW59YCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZVJlYWRtZSBmcm9tICcuLi9yZWFkbWUtd3JpdGVyJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVGl0bGUodG9rZW46IHN0cmluZywgaW5wdXRzOiBJbnB1dHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW4pO1xuICAvLyBCdWlsZCB0aGUgbmV3IFJFQURNRVxuICBjb25zdCBjb250ZW50OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgbmFtZSA9ICcnO1xuICBpZiAoaW5wdXRzLmFjdGlvbi5uYW1lKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgbmFtZSA9IGlucHV0cy5hY3Rpb24ubmFtZTtcblxuICAgIGxvZy5pbmZvKGBXcml0aW5nICR7bmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMgdG8gdGhlIHRpdGxlYCk7XG4gICAgY29uc3QgdGl0bGUgPSBgIyAke2lucHV0cy5jb25maWcuZ2V0KCd0aXRsZV9wcmVmaXgnKSBhcyBzdHJpbmd9JHtpbnB1dHMuYWN0aW9uLm5hbWV9YDtcbiAgICBsb2cuaW5mbyhgVGl0bGU6ICR7dGl0bGV9YCk7XG4gICAgLy8gQnVpbGQgdGhlIG5ldyB1c2FnZSBzZWN0aW9uXG4gICAgY29udGVudC5wdXNoKHRpdGxlKTtcblxuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRDdXJyZW50VmVyc2lvblN0cmluZywgd3JhcFRleHQgfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi4vbG9ndGFzayc7XG5pbXBvcnQgcmVhZG1lV3JpdGVyIGZyb20gJy4uL3JlYWRtZS13cml0ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB1cGRhdGVVc2FnZSh0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIGxvZy5zdGFydCgpO1xuICBjb25zdCBhY3Rpb25OYW1lID0gYCR7aW5wdXRzLmNvbmZpZy5nZXQoJ293bmVyJykgYXMgc3RyaW5nfS8ke2lucHV0cy5jb25maWcuZ2V0KCdyZXBvJyl9YDtcbiAgbG9nLmluZm8oYEFjdGlvbiBuYW1lOiAke2FjdGlvbk5hbWV9YCk7XG4gIGNvbnN0IHZlcnNpb25TdHJpbmc6IHN0cmluZyA9IGdldEN1cnJlbnRWZXJzaW9uU3RyaW5nKGlucHV0cyk7XG5cbiAgbG9nLmluZm8oYFZlcnNpb24gc3RyaW5nOiAke3ZlcnNpb25TdHJpbmd9YCk7XG5cbiAgY29uc3QgYWN0aW9uUmVmZXJlbmNlID0gYCR7YWN0aW9uTmFtZX1AJHt2ZXJzaW9uU3RyaW5nfWA7XG5cbiAgaWYgKCFhY3Rpb25SZWZlcmVuY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBhY3Rpb25SZWZlcmVuY2UgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZ1tdID0gW107XG4gIC8vIEJ1aWxkIHRoZSBuZXcgdXNhZ2Ugc2VjdGlvblxuICBjb250ZW50LnB1c2goJ2BgYHlhbWwnLCBgLSB1c2VzOiAke2FjdGlvblJlZmVyZW5jZX1gLCAnICB3aXRoOicpO1xuXG4gIGNvbnN0IGlucCA9IGlucHV0cy5hY3Rpb24uaW5wdXRzO1xuICBsZXQgZmlyc3RJbnB1dCA9IHRydWU7XG4gIGlmIChpbnApIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpbnApKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGlucFtrZXldO1xuICAgICAgaWYgKGlucHV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTGluZSBicmVhayBiZXR3ZWVuIGlucHV0c1xuICAgICAgICBpZiAoIWZpcnN0SW5wdXQpIHtcbiAgICAgICAgICBjb250ZW50LnB1c2goJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29uc3RyYWluIHRoZSB3aWR0aCBvZiB0aGUgZGVzY3JpcHRpb24sIGFuZCBhcHBlbmQgaXRcbiAgICAgICAgd3JhcFRleHQoaW5wdXQuZGVzY3JpcHRpb24sIGNvbnRlbnQsICcgICAgIyAnKTtcblxuICAgICAgICBpZiAoaW5wdXQuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQXBwZW5kIGJsYW5rIGxpbmUgaWYgZGVzY3JpcHRpb24gaGFkIHBhcmFncmFwaHNcbiAgICAgICAgICBpZiAoaW5wdXQuZGVzY3JpcHRpb24/LnRyaW1FbmQoKS5tYXRjaCgvXFxuICpcXHI/XFxuLykpIHtcbiAgICAgICAgICAgIGNvbnRlbnQucHVzaCgnICAgICMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBEZWZhdWx0XG4gICAgICAgICAgY29udGVudC5wdXNoKGAgICAgIyBEZWZhdWx0OiAke2lucHV0LmRlZmF1bHR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnB1dCBuYW1lXG4gICAgICAgIGNvbnRlbnQucHVzaChgICAgICR7a2V5fTogJydgKTtcblxuICAgICAgICBmaXJzdElucHV0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29udGVudC5wdXNoKCdgYGBcXG4nKTtcblxuICBhd2FpdCByZWFkbWVXcml0ZXIoY29udGVudCwgdG9rZW4sIGlucHV0cy5yZWFkbWVQYXRoKTtcbiAgbG9nLnN1Y2Nlc3MoKTtcbn1cbiIsICJpbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZUJhZGdlcyBmcm9tICcuL3VwZGF0ZS1iYWRnZXMnO1xuaW1wb3J0IHVwZGF0ZURlc2NyaXB0aW9uIGZyb20gJy4vdXBkYXRlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB1cGRhdGVJbnB1dHMgZnJvbSAnLi91cGRhdGUtaW5wdXRzJztcbmltcG9ydCB1cGRhdGVPdXRwdXRzIGZyb20gJy4vdXBkYXRlLW91dHB1dHMnO1xuaW1wb3J0IHVwZGF0ZVRpdGxlIGZyb20gJy4vdXBkYXRlLXRpdGxlJztcbmltcG9ydCB1cGRhdGVVc2FnZSBmcm9tICcuL3VwZGF0ZS11c2FnZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVNlY3Rpb24oc2VjdGlvbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzaygndXBkYXRlU2VjdGlvbicpO1xuICB0cnkge1xuICAgIHN3aXRjaCAoc2VjdGlvbikge1xuICAgICAgY2FzZSAnYmFkZ2VzJzoge1xuICAgICAgICBhd2FpdCB1cGRhdGVCYWRnZXMoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd1c2FnZSc6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlVXNhZ2Uoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd0aXRsZSc6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlVGl0bGUoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkZXNjcmlwdGlvbic6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlRGVzY3JpcHRpb24oc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdpbnB1dHMnOiB7XG4gICAgICAgIGF3YWl0IHVwZGF0ZUlucHV0cyhzZWN0aW9uLCBpbnB1dHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ291dHB1dHMnOiB7XG4gICAgICAgIGF3YWl0IHVwZGF0ZU91dHB1dHMoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgdW5rbm93biBzZWN0aW9uICR7c2VjdGlvbn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoZXJyb3IgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIGVycm9yLm1lc3NhZ2UpIGxvZy5mYWlsKGVycm9yLm1lc3NhZ2UgYXMgc3RyaW5nKTtcbiAgfVxufVxuIiwgImltcG9ydCBJbnB1dHMgZnJvbSAnLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcbmltcG9ydCBzYXZlIGZyb20gJy4vc2F2ZSc7XG5pbXBvcnQgdXBkYXRlU2VjdGlvbiBmcm9tICcuL3NlY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IGlucHV0cyA9IG5ldyBJbnB1dHMoKTtcbi8vIFRoaXMgc2NyaXB0IHJlYnVpbGRzIHRoZSB1c2FnZSBzZWN0aW9uIGluIHRoZSBSRUFETUUubWQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBhY3Rpb24ueW1sXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZURvY3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdnZW5lcmF0aW5nIHJlYWRtZScpO1xuICB0cnkge1xuICAgIGNvbnN0IHNlY3Rpb25zUHJvbWlzZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgaW5wdXRzLnNlY3Rpb25zKSB7XG4gICAgICBzZWN0aW9uc1Byb21pc2VzLnB1c2godXBkYXRlU2VjdGlvbihzZWN0aW9uLCBpbnB1dHMpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zUHJvbWlzZXMpLnRoZW4oKCkgPT4gc2F2ZShpbnB1dHMpKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmIChlcnJvciAmJiAnbWVzc2FnZScgaW4gZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkgbG9nLmVycm9yKGVycm9yLm1lc3NhZ2UgYXMgc3RyaW5nKTtcbiAgfVxufVxuIiwgIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IGdlbmVyYXRlRG9jcyBmcm9tICcuL2dlbmVyYXRlLWRvY3MnO1xuXG5nZW5lcmF0ZURvY3MoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBLDhDQUFBQSxTQUFBO0FBQUEsS0FBQyxTQUFVQyxTQUFRLFNBQVM7QUFDeEIsYUFBTyxZQUFZLFlBQVksT0FBT0QsWUFBVyxjQUFjLFFBQVEsT0FBTyxJQUM5RSxPQUFPLFdBQVcsY0FBYyxPQUFPLE1BQU0sT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLElBQ3ZFLFFBQVNDLFFBQU8sUUFBUSxDQUFDLENBQUU7QUFBQSxJQUNoQyxHQUFFLFNBQU8sU0FBVUMsVUFBUztBQUFFO0FBK0MxQixlQUFTLE1BQU1DLFFBQU8sTUFBTTtBQUN4QixlQUFPLElBQUksYUFBYUEsSUFBRyxHQUFHLE1BQUssR0FBRyxRQUFRO0FBQUEsTUFDbEQ7QUFFQSxlQUFTLGNBQWVBLEtBQUk7QUFDeEIsZUFBTyxZQUFhLE1BQW9CO0FBQ3BDLGNBQUksV0FBVyxLQUFLLElBQUk7QUFDeEIsaUJBQU9BLElBQUcsS0FBSyxNQUFNLE1BQU0sUUFBUTtBQUFBLFFBQ3ZDO0FBQUEsTUFDSjtBQUlBLFVBQUksb0JBQW9CLE9BQU8sbUJBQW1CLGNBQWM7QUFDaEUsVUFBSSxrQkFBa0IsT0FBTyxpQkFBaUIsY0FBYztBQUM1RCxVQUFJLGNBQWMsT0FBTyxZQUFZLFlBQVksT0FBTyxRQUFRLGFBQWE7QUFFN0UsZUFBUyxTQUFTQSxLQUFJO0FBQ2xCLG1CQUFXQSxLQUFJLENBQUM7QUFBQSxNQUNwQjtBQUVBLGVBQVMsS0FBSyxPQUFPO0FBQ2pCLGVBQU8sQ0FBQ0EsUUFBTyxTQUFTLE1BQU0sTUFBTUEsSUFBRyxHQUFHLElBQUksQ0FBQztBQUFBLE1BQ25EO0FBRUEsVUFBSTtBQUVKLFVBQUksbUJBQW1CO0FB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QUssS0FBSyxHQUFHO0FBQUEsTUFDM0IsYUFBYSxDQUFDLElBQUksS0FBSyxHQUFHO0FBQUEsTUFDMUIsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFO0FBQUEsTUFDM0IsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDeEIsY0FBYyxDQUFDLEtBQUssS0FBSyxFQUFFO0FBQUEsTUFDM0IsWUFBWSxDQUFDLElBQUksS0FBSyxFQUFFO0FBQUEsTUFDeEIsWUFBWSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDMUIsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO0FBQUEsTUFDdEIsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDeEIsV0FBVyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDekIsYUFBYSxDQUFDLEtBQUssSUFBSSxHQUFHO0FBQUEsTUFDMUIsYUFBYSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDM0IsYUFBYSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDM0IsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDdEIsZUFBZSxDQUFDLEdBQUcsS0FBSyxHQUFHO0FBQUEsTUFDM0IsYUFBYSxDQUFDLElBQUksS0FBSyxHQUFHO0FBQUEsTUFDMUIsT0FBTyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDckIsUUFBUSxDQUFDLEdBQUcsS0FBSyxHQUFHO0FBQUEsTUFDcEIsV0FBVyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDekIsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO0FBQUEsTUFDdEIsYUFBYSxDQUFDLElBQUksS0FBSyxHQUFHO0FBQUEsTUFDMUIsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDeEIsU0FBUyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDdkIsU0FBUyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDdkIsY0FBYyxDQUFDLEtBQUssS0FBSyxHQUFHO0FBQUEsTUFDNUIsVUFBVSxDQUFDLEtB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QUE7QUFBQSxJQUFBQSxRQUFPLFVBQVU7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNFakIsUUFBQSxPQUFBLGFBQUEsUUFBQSxNQUFBLENBQUE7QUFDQSxRQUFBLFFBQUEsYUFBQSxRQUFBLE9BQUEsQ0FBQTtBQUdBLFFBQUEsS0FBQSxhQUFBLGVBQUE7QUFDQSxRQUFBLFNBQUEsYUFBQSxpQkFBQTtBQUVBLFFBQVk7QUFBWixLQUFBLFNBQVlDLFlBQVM7QUFDbkIsTUFBQUEsV0FBQUEsV0FBQSxJQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSxpQkFBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsa0JBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGVBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFVBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFVBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGFBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLG1CQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSxtQkFBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsWUFBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsY0FBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsaUJBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFdBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFVBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGtCQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSxlQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSw2QkFBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsZ0JBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFVBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLE1BQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLGlCQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSxxQkFBQSxJQUFBLEdBQUEsSUFBQTtBQUNBLE1BQUFBLFdBQUFBLFdBQUEsZ0JBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLFlBQUEsSUFBQSxHQUFBLElBQUE7QUFDQSxNQUFBQSxXQUFBQSxXQUFBLG9CQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0EsTUFBQUEsV0FBQUEsV0FBQSxnQkFBQSxJQUFBLEdBQUEsSUFBQTtJQUNGLEdBNUJZLFlBQUEsUUFBQSxjQUFBLFFBQUEsWUFBUyxDQUFBLEVBQUE7QUE4QnJCLFFBQVk7QUFBWixLQUFBLFNBQVlDLFVBQU87QUFDakIsTUFBQUEsU0FBQSxRQUFBLElBQUE7QUFDQSxNQUFBQSxTQUFBLGFBQUEsSUFBQTtJQUNGLEdBSFksVUFBQSxRQUFBLFlBQUEsUUFBQSxVQUFPLENBQUEsRUFBQTtBQUtuQixRQUFZO0FBQVosS0FBQSxTQUFZQyxhQUFVO0FBQ3BCLE1BQUFBLFlBQUEsaUJBQUEsSUFBQTtJQUNGLEdBRlksYUFBQSxRQUFBLGVBQUEsUUFBQSxhQUFVLENBQUEsRUFBQTtBQVF0QixhQUFnQixZQUFZLFdBQWlCO0FBQzNDLFlBQU0sV0FBVyxHQUFHLFlBQVksSUFBSSxJQUFJLFNBQVMsQ0FBQztBQUNsRCxhQUFPLFdBQVcsU0FBUyxPQUFPO0lBQ3BDO0FBSEEsWUFBQSxjQUFBO0FBS0EsUUFBTSxvQkFBOEI7TUFDbEMsVUFBVTtNQUNWLFVBQVU7TUFDVixVQUFVO01BQ1YsVUFBVTtNQUNWLFVBQVU7O0FBRVosUUFBTSx5QkFBbUM7TUFDdkMsVUFBVTtNQUNWLFVBQVU7TUFDVixVQUFVOztBQUVaLFFBQU0scUJBQStCLENBQUMsV0FBVyxPQUFPLFVBQVUsTUFBTTtBQUN4RSxRQUFNLDRCQUE0QjtBQUNsQyxRQUFNLDhCQUE4QjtBQUVwQyxRQUFhLGtCQUFiLE1BQWEseUJBQXdCLE1BQUs7TUFDeEMsWUFBWSxTQUFpQixZQUFrQjtBQUM3QyxjQUFNLE9BQU87QUFDYixhQUFLLE9BQU87QUFDWixhQUFLLGFBQWE7QUFDbEIsZUFBTyxlQUFlLE1BQU0saUJBQWdCLFNBQVM7TUFDdkQ7O0FBTkYsWUFBQSxrQkFBQTtBQVlBLFFBQWEscUJBQWIsTUFBK0I7TUFDN0IsWUFBWSxTQUE2QjtBQUN2QyxhQUFLLFVBQVU7TUFDakI7TUFHTSxXQUFROztBQUNaLGlCQUFPLElBQUksUUFBZ0IsQ0FBTUMsYUFBVSxVQUFBLE1BQUEsUUFBQSxRQUFBLGFBQUE7QUFDekMsZ0JBQUksU0FBUyxPQUFPLE1BQU0sQ0FBQztBQUUzQixpQkFBSyxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQWlCO0FBQ3hDLHVCQUFTLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDO1lBQ3hDLENBQUM7QUFFRCxpQkFBSyxRQUFRLEdBQUcsT0FBTyxNQUFLO0FBQzFCLGNBQUFBLFNBQVEsT0FBTyxTQUFRLENBQUU7WUFDM0IsQ0FBQztVQUNILENBQUMsQ0FBQTtRQUNILENBQUM7OztBQWxCSCxZQUFBLHFCQUFBO0FBcUJBLGFBQWdCLFFBQVEsWUFBa0I7QUFDeEMsWUFBTSxZQUFpQixJQUFJLElBQUksVUFBVTtBQUN6QyxhQUFPLFVBQVUsYUFBYTtJQUNoQztBQUhBLFlBQUEsVUFBQTtBQUtBLFFBQWEsYUFBYixNQUF1QjtNQWlCckIsWUFDRSxXQUNBLFVBQ0EsZ0JBQW1DO0FBZjdCLGFBQUEsa0JBQWtCO0FBRWxCLGFBQUEsa0JBQWtCO0FBQ2xCLGFBQUEsMEJBQTBCO0FBQzFCLGFBQUEsZ0JBQWdCO0FBQ2hCLGFBQUEsZ0JBQWdCO0FBQ2hCLGFBQUEsY0FBYztBQUdkLGFBQUEsYUFBYTtBQUNiLGFBQUEsWUFBWTtBQU9sQixhQUFLLFlBQVk7QUFDakIsYUFBSyxXQUFXLFlBQVksQ0FBQTtBQUM1QixhQUFLLGlCQUFpQjtBQUN0QixZQUFJLGdCQUFnQjtBQUNsQixjQUFJLGVBQWUsa0JBQWtCLE1BQU07QUFDekMsaUJBQUssa0JBQWtCLGVBQWU7O0FBR3hDLGVBQUssaUJBQWlCLGVBQWU7QUFFckMsY0FBSSxlQUFlLGtCQUFrQixNQUFNO0FBQ3pDLGlCQUFLLGtCQUFrQixlQUFlOztBQUd4QyxjQUFJLGVBQWUsMEJBQTBCLE1BQU07QUFDakQsaUJBQUssMEJBQTBCLGVBQWU7O0FBR2hELGNBQUksZUFBZSxnQkFBZ0IsTUFBTTtBQUN2QyxpQkFBSyxnQkFBZ0IsS0FBSyxJQUFJLGVBQWUsY0FBYyxDQUFDOztBQUc5RCxjQUFJLGVBQWUsYUFBYSxNQUFNO0FBQ3BDLGlCQUFLLGFBQWEsZUFBZTs7QUFHbkMsY0FBSSxlQUFlLGdCQUFnQixNQUFNO0FBQ3ZDLGlCQUFLLGdCQUFnQixlQUFlOztBQUd0QyxjQUFJLGVBQWUsY0FBYyxNQUFNO0FBQ3JDLGlCQUFLLGNBQWMsZUFBZTs7O01BR3hDO01BRU0sUUFDSixZQUNBLG1CQUE0Qzs7QUFFNUMsaUJBQU8sS0FBSyxRQUFRLFdBQVcsWUFBWSxNQUFNLHFCQUFxQixDQUFBLENBQUU7UUFDMUUsQ0FBQzs7TUFFSyxJQUNKLFlBQ0EsbUJBQTRDOztBQUU1QyxpQkFBTyxLQUFLLFFBQVEsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUEsQ0FBRTtRQUN0RSxDQUFDOztNQUVLLElBQ0osWUFDQSxtQkFBNEM7O0FBRTVDLGlCQUFPLEtBQUssUUFBUSxVQUFVLFlBQVksTUFBTSxxQkFBcUIsQ0FBQSxDQUFFO1FBQ3pFLENBQUM7O01BRUssS0FDSixZQUNBLE1BQ0EsbUJBQTRDOztBQUU1QyxpQkFBTyxLQUFLLFFBQVEsUUFBUSxZQUFZLE1BQU0scUJBQXFCLENBQUEsQ0FBRTtRQUN2RSxDQUFDOztNQUVLLE1BQ0osWUFDQSxNQUNBLG1CQUE0Qzs7QUFFNUMsaUJBQU8sS0FBSyxRQUFRLFNBQVMsWUFBWSxNQUFNLHFCQUFxQixDQUFBLENBQUU7UUFDeEUsQ0FBQzs7TUFFSyxJQUNKLFlBQ0EsTUFDQSxtQkFBNEM7O0FBRTVDLGlCQUFPLEtBQUssUUFBUSxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQSxDQUFFO1FBQ3RFLENBQUM7O01BRUssS0FDSixZQUNBLG1CQUE0Qzs7QUFFNUMsaUJBQU8sS0FBSyxRQUFRLFFBQVEsWUFBWSxNQUFNLHFCQUFxQixDQUFBLENBQUU7UUFDdkUsQ0FBQzs7TUFFSyxXQUNKLE1BQ0EsWUFDQSxRQUNBLG1CQUE0Qzs7QUFFNUMsaUJBQU8sS0FBSyxRQUFRLE1BQU0sWUFBWSxRQUFRLGlCQUFpQjtRQUNqRSxDQUFDOzs7Ozs7TUFNSyxRQUNKLFlBQ0Esb0JBQThDLENBQUEsR0FBRTs7QUFFaEQsNEJBQWtCLFFBQVEsTUFBTSxJQUFJLEtBQUssNEJBQ3ZDLG1CQUNBLFFBQVEsUUFDUixXQUFXLGVBQWU7QUFFNUIsZ0JBQU0sTUFBMEIsTUFBTSxLQUFLLElBQ3pDLFlBQ0EsaUJBQWlCO0FBRW5CLGlCQUFPLEtBQUssaUJBQW9CLEtBQUssS0FBSyxjQUFjO1FBQzFELENBQUM7O01BRUssU0FDSixZQUNBLEtBQ0Esb0JBQThDLENBQUEsR0FBRTs7QUFFaEQsZ0JBQU0sT0FBZSxLQUFLLFVBQVUsS0FBSyxNQUFNLENBQUM7QUFDaEQsNEJBQWtCLFFBQVEsTUFBTSxJQUFJLEtBQUssNEJBQ3ZDLG1CQUNBLFFBQVEsUUFDUixXQUFXLGVBQWU7QUFFNUIsNEJBQWtCLFFBQVEsV0FBVyxJQUFJLEtBQUssNEJBQzVDLG1CQUNBLFFBQVEsYUFDUixXQUFXLGVBQWU7QUFFNUIsZ0JBQU0sTUFBMEIsTUFBTSxLQUFLLEtBQ3pDLFlBQ0EsTUFDQSxpQkFBaUI7QUFFbkIsaUJBQU8sS0FBSyxpQkFBb0IsS0FBSyxLQUFLLGNBQWM7UUFDMUQsQ0FBQzs7TUFFSyxRQUNKLFlBQ0EsS0FDQSxvQkFBOEMsQ0FBQSxHQUFFOztBQUVoRCxnQkFBTSxPQUFlLEtBQUssVUFBVSxLQUFLLE1BQU0sQ0FBQztBQUNoRCw0QkFBa0IsUUFBUSxNQUFNLElBQUksS0FBSyw0QkFDdkMsbUJBQ0EsUUFBUSxRQUNSLFdBQVcsZUFBZTtBQUU1Qiw0QkFBa0IsUUFBUSxXQUFXLElBQUksS0FBSyw0QkFDNUMsbUJBQ0EsUUFBUSxhQUNSLFdBQVcsZUFBZTtBQUU1QixnQkFBTSxNQUEwQixNQUFNLEtBQUssSUFDekMsWUFDQSxNQUNBLGlCQUFpQjtBQUVuQixpQkFBTyxLQUFLLGlCQUFvQixLQUFLLEtBQUssY0FBYztRQUMxRCxDQUFDOztNQUVLLFVBQ0osWUFDQSxLQUNBLG9CQUE4QyxDQUFBLEdBQUU7O0FBRWhELGdCQUFNLE9BQWUsS0FBSyxVQUFVLEtBQUssTUFBTSxDQUFDO0FBQ2hELDRCQUFrQixRQUFRLE1BQU0sSUFBSSxLQUFLLDRCQUN2QyxtQkFDQSxRQUFRLFFBQ1IsV0FBVyxlQUFlO0FBRTVCLDRCQUFrQixRQUFRLFdBQVcsSUFBSSxLQUFLLDRCQUM1QyxtQkFDQSxRQUFRLGFBQ1IsV0FBVyxlQUFlO0FBRTVCLGdCQUFNLE1BQTBCLE1BQU0sS0FBSyxNQUN6QyxZQUNBLE1BQ0EsaUJBQWlCO0FBRW5CLGlCQUFPLEtBQUssaUJBQW9CLEtBQUssS0FBSyxjQUFjO1FBQzFELENBQUM7Ozs7Ozs7TUFPSyxRQUNKLE1BQ0EsWUFDQSxNQUNBLFNBQWtDOztBQUVsQyxjQUFJLEtBQUssV0FBVztBQUNsQixrQkFBTSxJQUFJLE1BQU0sbUNBQW1DOztBQUdyRCxnQkFBTSxZQUFZLElBQUksSUFBSSxVQUFVO0FBQ3BDLGNBQUlDLFFBQXdCLEtBQUssZ0JBQWdCLE1BQU0sV0FBVyxPQUFPO0FBR3pFLGdCQUFNLFdBQ0osS0FBSyxpQkFBaUIsbUJBQW1CLFNBQVMsSUFBSSxJQUNsRCxLQUFLLGNBQWMsSUFDbkI7QUFDTixjQUFJLFdBQVc7QUFFZixjQUFJO0FBQ0osYUFBRztBQUNELHVCQUFXLE1BQU0sS0FBSyxXQUFXQSxPQUFNLElBQUk7QUFHM0MsZ0JBQ0UsWUFDQSxTQUFTLFdBQ1QsU0FBUyxRQUFRLGVBQWUsVUFBVSxjQUMxQztBQUNBLGtCQUFJO0FBRUoseUJBQVcsV0FBVyxLQUFLLFVBQVU7QUFDbkMsb0JBQUksUUFBUSx3QkFBd0IsUUFBUSxHQUFHO0FBQzdDLDBDQUF3QjtBQUN4Qjs7O0FBSUosa0JBQUksdUJBQXVCO0FBQ3pCLHVCQUFPLHNCQUFzQixxQkFBcUIsTUFBTUEsT0FBTSxJQUFJO3FCQUM3RDtBQUdMLHVCQUFPOzs7QUFJWCxnQkFBSSxxQkFBNkIsS0FBSztBQUN0QyxtQkFDRSxTQUFTLFFBQVEsY0FDakIsa0JBQWtCLFNBQVMsU0FBUyxRQUFRLFVBQVUsS0FDdEQsS0FBSyxtQkFDTCxxQkFBcUIsR0FDckI7QUFDQSxvQkFBTSxjQUNKLFNBQVMsUUFBUSxRQUFRLFVBQVU7QUFDckMsa0JBQUksQ0FBQyxhQUFhO0FBRWhCOztBQUVGLG9CQUFNLG9CQUFvQixJQUFJLElBQUksV0FBVztBQUM3QyxrQkFDRSxVQUFVLGFBQWEsWUFDdkIsVUFBVSxhQUFhLGtCQUFrQixZQUN6QyxDQUFDLEtBQUsseUJBQ047QUFDQSxzQkFBTSxJQUFJLE1BQ1IsOEtBQThLOztBQU1sTCxvQkFBTSxTQUFTLFNBQVE7QUFHdkIsa0JBQUksa0JBQWtCLGFBQWEsVUFBVSxVQUFVO0FBQ3JELDJCQUFXLFVBQVUsU0FBUztBQUU1QixzQkFBSSxPQUFPLFlBQVcsTUFBTyxpQkFBaUI7QUFDNUMsMkJBQU8sUUFBUSxNQUFNOzs7O0FBTTNCLGNBQUFBLFFBQU8sS0FBSyxnQkFBZ0IsTUFBTSxtQkFBbUIsT0FBTztBQUM1RCx5QkFBVyxNQUFNLEtBQUssV0FBV0EsT0FBTSxJQUFJO0FBQzNDOztBQUdGLGdCQUNFLENBQUMsU0FBUyxRQUFRLGNBQ2xCLENBQUMsdUJBQXVCLFNBQVMsU0FBUyxRQUFRLFVBQVUsR0FDNUQ7QUFFQSxxQkFBTzs7QUFHVCx3QkFBWTtBQUVaLGdCQUFJLFdBQVcsVUFBVTtBQUN2QixvQkFBTSxTQUFTLFNBQVE7QUFDdkIsb0JBQU0sS0FBSywyQkFBMkIsUUFBUTs7bUJBRXpDLFdBQVc7QUFFcEIsaUJBQU87UUFDVCxDQUFDOzs7OztNQUtELFVBQU87QUFDTCxZQUFJLEtBQUssUUFBUTtBQUNmLGVBQUssT0FBTyxRQUFPOztBQUdyQixhQUFLLFlBQVk7TUFDbkI7Ozs7OztNQU9NLFdBQ0pBLE9BQ0EsTUFBMkM7O0FBRTNDLGlCQUFPLElBQUksUUFBNEIsQ0FBQ0QsVUFBUyxXQUFVO0FBQ3pELHFCQUFTLGtCQUFrQixLQUFhLEtBQXdCO0FBQzlELGtCQUFJLEtBQUs7QUFDUCx1QkFBTyxHQUFHO3lCQUNELENBQUMsS0FBSztBQUVmLHVCQUFPLElBQUksTUFBTSxlQUFlLENBQUM7cUJBQzVCO0FBQ0wsZ0JBQUFBLFNBQVEsR0FBRzs7WUFFZjtBQUVBLGlCQUFLLHVCQUF1QkMsT0FBTSxNQUFNLGlCQUFpQjtVQUMzRCxDQUFDO1FBQ0gsQ0FBQzs7Ozs7Ozs7TUFRRCx1QkFDRUEsT0FDQSxNQUNBLFVBQXlEO0FBRXpELFlBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsY0FBSSxDQUFDQSxNQUFLLFFBQVEsU0FBUztBQUN6QixZQUFBQSxNQUFLLFFBQVEsVUFBVSxDQUFBOztBQUV6QixVQUFBQSxNQUFLLFFBQVEsUUFBUSxnQkFBZ0IsSUFBSSxPQUFPLFdBQVcsTUFBTSxNQUFNOztBQUd6RSxZQUFJLGlCQUFpQjtBQUNyQixpQkFBUyxhQUFhLEtBQWEsS0FBd0I7QUFDekQsY0FBSSxDQUFDLGdCQUFnQjtBQUNuQiw2QkFBaUI7QUFDakIscUJBQVMsS0FBSyxHQUFHOztRQUVyQjtBQUVBLGNBQU0sTUFBMEJBLE1BQUssV0FBVyxRQUM5Q0EsTUFBSyxTQUNMLENBQUMsUUFBNkI7QUFDNUIsZ0JBQU0sTUFBMEIsSUFBSSxtQkFBbUIsR0FBRztBQUMxRCx1QkFBYSxRQUFXLEdBQUc7UUFDN0IsQ0FBQztBQUdILFlBQUk7QUFDSixZQUFJLEdBQUcsVUFBVSxVQUFPO0FBQ3RCLG1CQUFTO1FBQ1gsQ0FBQztBQUdELFlBQUksV0FBVyxLQUFLLGtCQUFrQixJQUFJLEtBQU8sTUFBSztBQUNwRCxjQUFJLFFBQVE7QUFDVixtQkFBTyxJQUFHOztBQUVaLHVCQUFhLElBQUksTUFBTSxvQkFBb0JBLE1BQUssUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNqRSxDQUFDO0FBRUQsWUFBSSxHQUFHLFNBQVMsU0FBUyxLQUFHO0FBRzFCLHVCQUFhLEdBQUc7UUFDbEIsQ0FBQztBQUVELFlBQUksUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUNwQyxjQUFJLE1BQU0sTUFBTSxNQUFNOztBQUd4QixZQUFJLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDcEMsZUFBSyxHQUFHLFNBQVMsV0FBQTtBQUNmLGdCQUFJLElBQUc7VUFDVCxDQUFDO0FBRUQsZUFBSyxLQUFLLEdBQUc7ZUFDUjtBQUNMLGNBQUksSUFBRzs7TUFFWDs7Ozs7O01BT0EsU0FBUyxXQUFpQjtBQUN4QixjQUFNLFlBQVksSUFBSSxJQUFJLFNBQVM7QUFDbkMsZUFBTyxLQUFLLFVBQVUsU0FBUztNQUNqQztNQUVRLGdCQUNOLFFBQ0EsWUFDQSxTQUFrQztBQUVsQyxjQUFNQSxRQUF5QyxDQUFBO0FBRS9DLFFBQUFBLE1BQUssWUFBWTtBQUNqQixjQUFNLFdBQW9CQSxNQUFLLFVBQVUsYUFBYTtBQUN0RCxRQUFBQSxNQUFLLGFBQWEsV0FBVyxRQUFRO0FBQ3JDLGNBQU0sY0FBc0IsV0FBVyxNQUFNO0FBRTdDLFFBQUFBLE1BQUssVUFBK0IsQ0FBQTtBQUNwQyxRQUFBQSxNQUFLLFFBQVEsT0FBT0EsTUFBSyxVQUFVO0FBQ25DLFFBQUFBLE1BQUssUUFBUSxPQUFPQSxNQUFLLFVBQVUsT0FDL0IsU0FBU0EsTUFBSyxVQUFVLElBQUksSUFDNUI7QUFDSixRQUFBQSxNQUFLLFFBQVEsUUFDVkEsTUFBSyxVQUFVLFlBQVksT0FBT0EsTUFBSyxVQUFVLFVBQVU7QUFDOUQsUUFBQUEsTUFBSyxRQUFRLFNBQVM7QUFDdEIsUUFBQUEsTUFBSyxRQUFRLFVBQVUsS0FBSyxjQUFjLE9BQU87QUFDakQsWUFBSSxLQUFLLGFBQWEsTUFBTTtBQUMxQixVQUFBQSxNQUFLLFFBQVEsUUFBUSxZQUFZLElBQUksS0FBSzs7QUFHNUMsUUFBQUEsTUFBSyxRQUFRLFFBQVEsS0FBSyxVQUFVQSxNQUFLLFNBQVM7QUFHbEQsWUFBSSxLQUFLLFVBQVU7QUFDakIscUJBQVcsV0FBVyxLQUFLLFVBQVU7QUFDbkMsb0JBQVEsZUFBZUEsTUFBSyxPQUFPOzs7QUFJdkMsZUFBT0E7TUFDVDtNQUVRLGNBQ04sU0FBa0M7QUFFbEMsWUFBSSxLQUFLLGtCQUFrQixLQUFLLGVBQWUsU0FBUztBQUN0RCxpQkFBTyxPQUFPLE9BQ1osQ0FBQSxHQUNBLGNBQWMsS0FBSyxlQUFlLE9BQU8sR0FDekMsY0FBYyxXQUFXLENBQUEsQ0FBRSxDQUFDOztBQUloQyxlQUFPLGNBQWMsV0FBVyxDQUFBLENBQUU7TUFDcEM7TUFFUSw0QkFDTixtQkFDQSxRQUNBQyxXQUFnQjtBQUVoQixZQUFJO0FBQ0osWUFBSSxLQUFLLGtCQUFrQixLQUFLLGVBQWUsU0FBUztBQUN0RCx5QkFBZSxjQUFjLEtBQUssZUFBZSxPQUFPLEVBQUUsTUFBTTs7QUFFbEUsZUFBTyxrQkFBa0IsTUFBTSxLQUFLLGdCQUFnQkE7TUFDdEQ7TUFFUSxVQUFVLFdBQWM7QUFDOUIsWUFBSTtBQUNKLGNBQU0sV0FBVyxHQUFHLFlBQVksU0FBUztBQUN6QyxjQUFNLFdBQVcsWUFBWSxTQUFTO0FBRXRDLFlBQUksS0FBSyxjQUFjLFVBQVU7QUFDL0Isa0JBQVEsS0FBSzs7QUFHZixZQUFJLEtBQUssY0FBYyxDQUFDLFVBQVU7QUFDaEMsa0JBQVEsS0FBSzs7QUFJZixZQUFJLE9BQU87QUFDVCxpQkFBTzs7QUFHVCxjQUFNLFdBQVcsVUFBVSxhQUFhO0FBQ3hDLFlBQUksYUFBYTtBQUNqQixZQUFJLEtBQUssZ0JBQWdCO0FBQ3ZCLHVCQUFhLEtBQUssZUFBZSxjQUFjLEtBQUssWUFBWTs7QUFJbEUsWUFBSSxZQUFZLFNBQVMsVUFBVTtBQUNqQyxnQkFBTSxlQUFlO1lBQ25CO1lBQ0EsV0FBVyxLQUFLO1lBQ2hCLE9BQUssT0FBQSxPQUFBLE9BQUEsT0FBQSxDQUFBLElBQ0UsU0FBUyxZQUFZLFNBQVMsYUFBYTtjQUM5QyxXQUFXLEdBQUcsU0FBUyxRQUFRLElBQUksU0FBUyxRQUFRO2FBQ3BELEdBQUEsRUFDRixNQUFNLFNBQVMsVUFDZixNQUFNLFNBQVMsS0FBSSxDQUFBOztBQUl2QixjQUFJO0FBQ0osZ0JBQU0sWUFBWSxTQUFTLGFBQWE7QUFDeEMsY0FBSSxVQUFVO0FBQ1osMEJBQWMsWUFBWSxPQUFPLGlCQUFpQixPQUFPO2lCQUNwRDtBQUNMLDBCQUFjLFlBQVksT0FBTyxnQkFBZ0IsT0FBTzs7QUFHMUQsa0JBQVEsWUFBWSxZQUFZO0FBQ2hDLGVBQUssY0FBYzs7QUFJckIsWUFBSSxLQUFLLGNBQWMsQ0FBQyxPQUFPO0FBQzdCLGdCQUFNQyxXQUFVLEVBQUMsV0FBVyxLQUFLLFlBQVksV0FBVTtBQUN2RCxrQkFBUSxXQUFXLElBQUksTUFBTSxNQUFNQSxRQUFPLElBQUksSUFBSSxLQUFLLE1BQU1BLFFBQU87QUFDcEUsZUFBSyxTQUFTOztBQUloQixZQUFJLENBQUMsT0FBTztBQUNWLGtCQUFRLFdBQVcsTUFBTSxjQUFjLEtBQUs7O0FBRzlDLFlBQUksWUFBWSxLQUFLLGlCQUFpQjtBQUlwQyxnQkFBTSxVQUFVLE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQSxHQUFJO1lBQ2pELG9CQUFvQjtXQUNyQjs7QUFHSCxlQUFPO01BQ1Q7TUFFYywyQkFBMkIsYUFBbUI7O0FBQzFELHdCQUFjLEtBQUssSUFBSSwyQkFBMkIsV0FBVztBQUM3RCxnQkFBTUMsTUFBYSw4QkFBOEIsS0FBSyxJQUFJLEdBQUcsV0FBVztBQUN4RSxpQkFBTyxJQUFJLFFBQVEsQ0FBQUosYUFBVyxXQUFXLE1BQU1BLFNBQU8sR0FBSUksR0FBRSxDQUFDO1FBQy9ELENBQUM7O01BRWEsaUJBQ1osS0FDQUQsVUFBNEI7O0FBRTVCLGlCQUFPLElBQUksUUFBOEIsQ0FBT0gsVUFBUyxXQUFVLFVBQUEsTUFBQSxRQUFBLFFBQUEsYUFBQTtBQUNqRSxrQkFBTSxhQUFhLElBQUksUUFBUSxjQUFjO0FBRTdDLGtCQUFNLFdBQWlDO2NBQ3JDO2NBQ0EsUUFBUTtjQUNSLFNBQVMsQ0FBQTs7QUFJWCxnQkFBSSxlQUFlLFVBQVUsVUFBVTtBQUNyQyxjQUFBQSxTQUFRLFFBQVE7O0FBS2xCLHFCQUFTLHFCQUFxQixLQUFVLE9BQVU7QUFDaEQsa0JBQUksT0FBTyxVQUFVLFVBQVU7QUFDN0Isc0JBQU0sSUFBSSxJQUFJLEtBQUssS0FBSztBQUN4QixvQkFBSSxDQUFDLE1BQU0sRUFBRSxRQUFPLENBQUUsR0FBRztBQUN2Qix5QkFBTzs7O0FBSVgscUJBQU87WUFDVDtBQUVBLGdCQUFJO0FBQ0osZ0JBQUk7QUFFSixnQkFBSTtBQUNGLHlCQUFXLE1BQU0sSUFBSSxTQUFRO0FBQzdCLGtCQUFJLFlBQVksU0FBUyxTQUFTLEdBQUc7QUFDbkMsb0JBQUlHLFlBQVdBLFNBQVEsa0JBQWtCO0FBQ3ZDLHdCQUFNLEtBQUssTUFBTSxVQUFVLG9CQUFvQjt1QkFDMUM7QUFDTCx3QkFBTSxLQUFLLE1BQU0sUUFBUTs7QUFHM0IseUJBQVMsU0FBUzs7QUFHcEIsdUJBQVMsVUFBVSxJQUFJLFFBQVE7cUJBQ3hCLEtBQUs7O0FBS2QsZ0JBQUksYUFBYSxLQUFLO0FBQ3BCLGtCQUFJO0FBR0osa0JBQUksT0FBTyxJQUFJLFNBQVM7QUFDdEIsc0JBQU0sSUFBSTt5QkFDRCxZQUFZLFNBQVMsU0FBUyxHQUFHO0FBRTFDLHNCQUFNO3FCQUNEO0FBQ0wsc0JBQU0sb0JBQW9CLFVBQVU7O0FBR3RDLG9CQUFNLE1BQU0sSUFBSSxnQkFBZ0IsS0FBSyxVQUFVO0FBQy9DLGtCQUFJLFNBQVMsU0FBUztBQUV0QixxQkFBTyxHQUFHO21CQUNMO0FBQ0wsY0FBQUgsU0FBUSxRQUFROztVQUVwQixDQUFDLENBQUE7UUFDSCxDQUFDOzs7QUFqcEJILFlBQUEsYUFBQTtBQW9wQkEsUUFBTSxnQkFBZ0IsQ0FBQyxRQUNyQixPQUFPLEtBQUssR0FBRyxFQUFFLE9BQU8sQ0FBQ0ssSUFBUUMsUUFBUUQsR0FBRUMsR0FBRSxZQUFXLENBQUUsSUFBSSxJQUFJQSxFQUFDLEdBQUlELEtBQUksQ0FBQSxDQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDaHdCL0UsUUFBYSx5QkFBYixNQUFtQztNQUlqQyxZQUFZLFVBQWtCLFVBQWdCO0FBQzVDLGFBQUssV0FBVztBQUNoQixhQUFLLFdBQVc7TUFDbEI7TUFFQSxlQUFlRSxVQUE0QjtBQUN6QyxZQUFJLENBQUNBLFNBQVEsU0FBUztBQUNwQixnQkFBTSxNQUFNLDRCQUE0Qjs7QUFFMUMsUUFBQUEsU0FBUSxRQUFRLGVBQWUsSUFBSSxTQUFTLE9BQU8sS0FDakQsR0FBRyxLQUFLLFFBQVEsSUFBSSxLQUFLLFFBQVEsRUFBRSxFQUNuQyxTQUFTLFFBQVEsQ0FBQztNQUN0Qjs7TUFHQSwwQkFBdUI7QUFDckIsZUFBTztNQUNUO01BRU0sdUJBQW9COztBQUN4QixnQkFBTSxJQUFJLE1BQU0saUJBQWlCO1FBQ25DLENBQUM7OztBQXpCSCxZQUFBLHlCQUFBO0FBNEJBLFFBQWEsMEJBQWIsTUFBb0M7TUFHbEMsWUFBWSxPQUFhO0FBQ3ZCLGFBQUssUUFBUTtNQUNmOzs7TUFJQSxlQUFlQSxVQUE0QjtBQUN6QyxZQUFJLENBQUNBLFNBQVEsU0FBUztBQUNwQixnQkFBTSxNQUFNLDRCQUE0Qjs7QUFFMUMsUUFBQUEsU0FBUSxRQUFRLGVBQWUsSUFBSSxVQUFVLEtBQUssS0FBSztNQUN6RDs7TUFHQSwwQkFBdUI7QUFDckIsZUFBTztNQUNUO01BRU0sdUJBQW9COztBQUN4QixnQkFBTSxJQUFJLE1BQU0saUJBQWlCO1FBQ25DLENBQUM7OztBQXZCSCxZQUFBLDBCQUFBO0FBMEJBLFFBQWEsdUNBQWIsTUFBaUQ7TUFJL0MsWUFBWSxPQUFhO0FBQ3ZCLGFBQUssUUFBUTtNQUNmOzs7TUFJQSxlQUFlQSxVQUE0QjtBQUN6QyxZQUFJLENBQUNBLFNBQVEsU0FBUztBQUNwQixnQkFBTSxNQUFNLDRCQUE0Qjs7QUFFMUMsUUFBQUEsU0FBUSxRQUFRLGVBQWUsSUFBSSxTQUFTLE9BQU8sS0FDakQsT0FBTyxLQUFLLEtBQUssRUFBRSxFQUNuQixTQUFTLFFBQVEsQ0FBQztNQUN0Qjs7TUFHQSwwQkFBdUI7QUFDckIsZUFBTztNQUNUO01BRU0sdUJBQW9COztBQUN4QixnQkFBTSxJQUFJLE1BQU0saUJBQWlCO1FBQ25DLENBQUM7OztBQTFCSCxZQUFBLHVDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdkRBLFFBQUEsZ0JBQUE7QUFDQSxRQUFBLFNBQUE7QUFDQSxRQUFBLFNBQUE7QUFLQSxRQUFhLGFBQWIsTUFBYSxZQUFVO01BQ2IsT0FBTyxpQkFDYixhQUFhLE1BQ2IsV0FBVyxJQUFFO0FBRWIsY0FBTSxpQkFBaUM7VUFDckMsY0FBYztVQUNkLFlBQVk7O0FBR2QsZUFBTyxJQUFJLGNBQUEsV0FDVCx1QkFDQSxDQUFDLElBQUksT0FBQSx3QkFBd0IsWUFBVyxnQkFBZSxDQUFFLENBQUMsR0FDMUQsY0FBYztNQUVsQjtNQUVRLE9BQU8sa0JBQWU7QUFDNUIsY0FBTSxRQUFRLFFBQVEsSUFBSSxnQ0FBZ0M7QUFDMUQsWUFBSSxDQUFDLE9BQU87QUFDVixnQkFBTSxJQUFJLE1BQ1IsMkRBQTJEOztBQUcvRCxlQUFPO01BQ1Q7TUFFUSxPQUFPLGdCQUFhO0FBQzFCLGNBQU0sYUFBYSxRQUFRLElBQUksOEJBQThCO0FBQzdELFlBQUksQ0FBQyxZQUFZO0FBQ2YsZ0JBQU0sSUFBSSxNQUFNLHlEQUF5RDs7QUFFM0UsZUFBTztNQUNUO01BRVEsT0FBYSxRQUFRLGNBQW9COzs7QUFDL0MsZ0JBQU0sYUFBYSxZQUFXLGlCQUFnQjtBQUU5QyxnQkFBTSxNQUFNLE1BQU0sV0FDZixRQUF1QixZQUFZLEVBQ25DLE1BQU0sQ0FBQUMsV0FBUTtBQUNiLGtCQUFNLElBQUksTUFDUjs7dUJBQ2FBLE9BQU0sVUFBVTs7eUJBQ2RBLE9BQU0sT0FBTyxFQUFFO1VBRWxDLENBQUM7QUFFSCxnQkFBTSxZQUFRQyxNQUFHLElBQUksWUFBTSxRQUFBQSxRQUFBLFNBQUEsU0FBQUEsSUFBRTtBQUM3QixjQUFJLENBQUMsVUFBVTtBQUNiLGtCQUFNLElBQUksTUFBTSwrQ0FBK0M7O0FBRWpFLGlCQUFPOzs7TUFHVCxPQUFhLFdBQVcsVUFBaUI7O0FBQ3ZDLGNBQUk7QUFFRixnQkFBSSxlQUF1QixZQUFXLGNBQWE7QUFDbkQsZ0JBQUksVUFBVTtBQUNaLG9CQUFNLGtCQUFrQixtQkFBbUIsUUFBUTtBQUNuRCw2QkFBZSxHQUFHLFlBQVksYUFBYSxlQUFlOztBQUc1RCxtQkFBQSxNQUFNLG1CQUFtQixZQUFZLEVBQUU7QUFFdkMsa0JBQU0sV0FBVyxNQUFNLFlBQVcsUUFBUSxZQUFZO0FBQ3RELG1CQUFBLFVBQVUsUUFBUTtBQUNsQixtQkFBTzttQkFDQUQsUUFBTztBQUNkLGtCQUFNLElBQUksTUFBTSxrQkFBa0JBLE9BQU0sT0FBTyxFQUFFOztRQUVyRCxDQUFDOzs7QUF4RUgsWUFBQSxhQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDVkEsUUFBQSxPQUFBLFFBQUEsSUFBQTtBQUNBLFFBQUEsT0FBQSxRQUFBLElBQUE7QUFDQSxRQUFNLEVBQUMsUUFBUSxZQUFZLFVBQVMsSUFBSSxLQUFBO0FBRTNCLFlBQUEsa0JBQWtCO0FBQ2xCLFlBQUEsbUJBQ1g7QUErQ0YsUUFBTSxVQUFOLE1BQWE7TUFJWCxjQUFBO0FBQ0UsYUFBSyxVQUFVO01BQ2pCOzs7Ozs7O01BUWMsV0FBUTs7QUFDcEIsY0FBSSxLQUFLLFdBQVc7QUFDbEIsbUJBQU8sS0FBSzs7QUFHZCxnQkFBTSxjQUFjLFFBQVEsSUFBSSxRQUFBLGVBQWU7QUFDL0MsY0FBSSxDQUFDLGFBQWE7QUFDaEIsa0JBQU0sSUFBSSxNQUNSLDRDQUE0QyxRQUFBLGVBQWUsNkRBQTZEOztBQUk1SCxjQUFJO0FBQ0Ysa0JBQU0sT0FBTyxhQUFhLEtBQUEsVUFBVSxPQUFPLEtBQUEsVUFBVSxJQUFJO21CQUN6REUsS0FBTTtBQUNOLGtCQUFNLElBQUksTUFDUixtQ0FBbUMsV0FBVywwREFBMEQ7O0FBSTVHLGVBQUssWUFBWTtBQUNqQixpQkFBTyxLQUFLO1FBQ2QsQ0FBQzs7Ozs7Ozs7Ozs7TUFXTyxLQUNOLEtBQ0EsU0FDQSxRQUF1QyxDQUFBLEdBQUU7QUFFekMsY0FBTSxZQUFZLE9BQU8sUUFBUSxLQUFLLEVBQ25DLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssR0FBRyxFQUMxQyxLQUFLLEVBQUU7QUFFVixZQUFJLENBQUMsU0FBUztBQUNaLGlCQUFPLElBQUksR0FBRyxHQUFHLFNBQVM7O0FBRzVCLGVBQU8sSUFBSSxHQUFHLEdBQUcsU0FBUyxJQUFJLE9BQU8sS0FBSyxHQUFHO01BQy9DOzs7Ozs7OztNQVNNLE1BQU1DLFVBQTZCOztBQUN2QyxnQkFBTSxZQUFZLENBQUMsRUFBQ0EsYUFBTyxRQUFQQSxhQUFPLFNBQUEsU0FBUEEsU0FBUztBQUM3QixnQkFBTSxXQUFXLE1BQU0sS0FBSyxTQUFRO0FBQ3BDLGdCQUFNLFlBQVksWUFBWSxZQUFZO0FBQzFDLGdCQUFNLFVBQVUsVUFBVSxLQUFLLFNBQVMsRUFBQyxVQUFVLE9BQU0sQ0FBQztBQUMxRCxpQkFBTyxLQUFLLFlBQVc7UUFDekIsQ0FBQzs7Ozs7OztNQU9LLFFBQUs7O0FBQ1QsaUJBQU8sS0FBSyxZQUFXLEVBQUcsTUFBTSxFQUFDLFdBQVcsS0FBSSxDQUFDO1FBQ25ELENBQUM7Ozs7Ozs7TUFPRCxZQUFTO0FBQ1AsZUFBTyxLQUFLO01BQ2Q7Ozs7OztNQU9BLGdCQUFhO0FBQ1gsZUFBTyxLQUFLLFFBQVEsV0FBVztNQUNqQzs7Ozs7O01BT0EsY0FBVztBQUNULGFBQUssVUFBVTtBQUNmLGVBQU87TUFDVDs7Ozs7Ozs7O01BVUEsT0FBTyxNQUFjLFNBQVMsT0FBSztBQUNqQyxhQUFLLFdBQVc7QUFDaEIsZUFBTyxTQUFTLEtBQUssT0FBTSxJQUFLO01BQ2xDOzs7Ozs7TUFPQSxTQUFNO0FBQ0osZUFBTyxLQUFLLE9BQU8sS0FBQSxHQUFHO01BQ3hCOzs7Ozs7Ozs7TUFVQSxhQUFhLE1BQWMsTUFBYTtBQUN0QyxjQUFNLFFBQUssT0FBQSxPQUFBLENBQUEsR0FDTCxRQUFRLEVBQUMsS0FBSSxDQUFFO0FBRXJCLGNBQU0sVUFBVSxLQUFLLEtBQUssT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSztBQUMvRCxlQUFPLEtBQUssT0FBTyxPQUFPLEVBQUUsT0FBTTtNQUNwQzs7Ozs7Ozs7O01BVUEsUUFBUSxPQUFpQixVQUFVLE9BQUs7QUFDdEMsY0FBTSxNQUFNLFVBQVUsT0FBTztBQUM3QixjQUFNLFlBQVksTUFBTSxJQUFJLFVBQVEsS0FBSyxLQUFLLE1BQU0sSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQ2xFLGNBQU0sVUFBVSxLQUFLLEtBQUssS0FBSyxTQUFTO0FBQ3hDLGVBQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxPQUFNO01BQ3BDOzs7Ozs7OztNQVNBLFNBQVMsTUFBdUI7QUFDOUIsY0FBTSxZQUFZLEtBQ2YsSUFBSSxTQUFNO0FBQ1QsZ0JBQU0sUUFBUSxJQUNYLElBQUksVUFBTztBQUNWLGdCQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLHFCQUFPLEtBQUssS0FBSyxNQUFNLElBQUk7O0FBRzdCLGtCQUFNLEVBQUMsUUFBUSxNQUFNLFNBQVMsUUFBTyxJQUFJO0FBQ3pDLGtCQUFNLE1BQU0sU0FBUyxPQUFPO0FBQzVCLGtCQUFNLFFBQUssT0FBQSxPQUFBLE9BQUEsT0FBQSxDQUFBLEdBQ0wsV0FBVyxFQUFDLFFBQU8sQ0FBRSxHQUNyQixXQUFXLEVBQUMsUUFBTyxDQUFFO0FBRzNCLG1CQUFPLEtBQUssS0FBSyxLQUFLLE1BQU0sS0FBSztVQUNuQyxDQUFDLEVBQ0EsS0FBSyxFQUFFO0FBRVYsaUJBQU8sS0FBSyxLQUFLLE1BQU0sS0FBSztRQUM5QixDQUFDLEVBQ0EsS0FBSyxFQUFFO0FBRVYsY0FBTSxVQUFVLEtBQUssS0FBSyxTQUFTLFNBQVM7QUFDNUMsZUFBTyxLQUFLLE9BQU8sT0FBTyxFQUFFLE9BQU07TUFDcEM7Ozs7Ozs7OztNQVVBLFdBQVdDLFFBQWUsU0FBZTtBQUN2QyxjQUFNLFVBQVUsS0FBSyxLQUFLLFdBQVcsS0FBSyxLQUFLLFdBQVdBLE1BQUssSUFBSSxPQUFPO0FBQzFFLGVBQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxPQUFNO01BQ3BDOzs7Ozs7Ozs7O01BV0EsU0FBUyxLQUFhLEtBQWFELFVBQTZCO0FBQzlELGNBQU0sRUFBQyxPQUFPLE9BQU0sSUFBSUEsWUFBVyxDQUFBO0FBQ25DLGNBQU0sUUFBSyxPQUFBLE9BQUEsT0FBQSxPQUFBLENBQUEsR0FDTCxTQUFTLEVBQUMsTUFBSyxDQUFFLEdBQ2pCLFVBQVUsRUFBQyxPQUFNLENBQUU7QUFHekIsY0FBTSxVQUFVLEtBQUssS0FBSyxPQUFPLE1BQUksT0FBQSxPQUFBLEVBQUcsS0FBSyxJQUFHLEdBQUssS0FBSyxDQUFBO0FBQzFELGVBQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxPQUFNO01BQ3BDOzs7Ozs7Ozs7TUFVQSxXQUFXLE1BQWMsT0FBdUI7QUFDOUMsY0FBTSxNQUFNLElBQUksS0FBSztBQUNyQixjQUFNLGFBQWEsQ0FBQyxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLFNBQVMsR0FBRyxJQUNoRSxNQUNBO0FBQ0osY0FBTSxVQUFVLEtBQUssS0FBSyxZQUFZLElBQUk7QUFDMUMsZUFBTyxLQUFLLE9BQU8sT0FBTyxFQUFFLE9BQU07TUFDcEM7Ozs7OztNQU9BLGVBQVk7QUFDVixjQUFNLFVBQVUsS0FBSyxLQUFLLE1BQU0sSUFBSTtBQUNwQyxlQUFPLEtBQUssT0FBTyxPQUFPLEVBQUUsT0FBTTtNQUNwQzs7Ozs7O01BT0EsV0FBUTtBQUNOLGNBQU0sVUFBVSxLQUFLLEtBQUssTUFBTSxJQUFJO0FBQ3BDLGVBQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxPQUFNO01BQ3BDOzs7Ozs7Ozs7TUFVQSxTQUFTLE1BQWMsTUFBYTtBQUNsQyxjQUFNLFFBQUssT0FBQSxPQUFBLENBQUEsR0FDTCxRQUFRLEVBQUMsS0FBSSxDQUFFO0FBRXJCLGNBQU0sVUFBVSxLQUFLLEtBQUssY0FBYyxNQUFNLEtBQUs7QUFDbkQsZUFBTyxLQUFLLE9BQU8sT0FBTyxFQUFFLE9BQU07TUFDcEM7Ozs7Ozs7OztNQVVBLFFBQVEsTUFBYyxNQUFZO0FBQ2hDLGNBQU0sVUFBVSxLQUFLLEtBQUssS0FBSyxNQUFNLEVBQUMsS0FBSSxDQUFDO0FBQzNDLGVBQU8sS0FBSyxPQUFPLE9BQU8sRUFBRSxPQUFNO01BQ3BDOztBQUdGLFFBQU0sV0FBVyxJQUFJLFFBQU87QUFLZixZQUFBLGtCQUFrQjtBQUNsQixZQUFBLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDMVd2QixRQUFBRSxRQUFBLGFBQUEsUUFBQSxNQUFBLENBQUE7QUFTQSxhQUFnQixZQUFZLEtBQVc7QUFDckMsYUFBTyxJQUFJLFFBQVEsU0FBUyxHQUFHO0lBQ2pDO0FBRkEsWUFBQSxjQUFBO0FBV0EsYUFBZ0IsWUFBWSxLQUFXO0FBQ3JDLGFBQU8sSUFBSSxRQUFRLFFBQVEsSUFBSTtJQUNqQztBQUZBLFlBQUEsY0FBQTtBQVlBLGFBQWdCLGVBQWUsS0FBVztBQUN4QyxhQUFPLElBQUksUUFBUSxVQUFVQSxNQUFLLEdBQUc7SUFDdkM7QUFGQSxZQUFBLGlCQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2hDQSxRQUFBLFlBQUE7QUFDQSxRQUFBLGlCQUFBO0FBQ0EsUUFBQSxVQUFBO0FBRUEsUUFBQUMsTUFBQSxhQUFBLFFBQUEsSUFBQSxDQUFBO0FBQ0EsUUFBQUMsUUFBQSxhQUFBLFFBQUEsTUFBQSxDQUFBO0FBRUEsUUFBQSxlQUFBO0FBZ0JBLFFBQVk7QUFBWixLQUFBLFNBQVlDLFdBQVE7QUFJbEIsTUFBQUEsVUFBQUEsVUFBQSxTQUFBLElBQUEsQ0FBQSxJQUFBO0FBS0EsTUFBQUEsVUFBQUEsVUFBQSxTQUFBLElBQUEsQ0FBQSxJQUFBO0lBQ0YsR0FWWSxXQUFBLFFBQUEsYUFBQSxRQUFBLFdBQVEsQ0FBQSxFQUFBO0FBMkRwQixhQUFnQixlQUFlLE1BQWMsS0FBUTtBQUNuRCxZQUFNLGVBQWUsUUFBQSxlQUFlLEdBQUc7QUFDdkMsY0FBUSxJQUFJLElBQUksSUFBSTtBQUVwQixZQUFNLFdBQVcsUUFBUSxJQUFJLFlBQVksS0FBSztBQUM5QyxVQUFJLFVBQVU7QUFDWixlQUFPLGVBQUEsaUJBQWlCLE9BQU8sZUFBQSx1QkFBdUIsTUFBTSxHQUFHLENBQUM7O0FBR2xFLGdCQUFBLGFBQWEsV0FBVyxFQUFDLEtBQUksR0FBRyxZQUFZO0lBQzlDO0FBVkEsWUFBQSxpQkFBQTtBQWdCQSxhQUFnQixVQUFVLFFBQWM7QUFDdEMsZ0JBQUEsYUFBYSxZQUFZLENBQUEsR0FBSSxNQUFNO0lBQ3JDO0FBRkEsWUFBQSxZQUFBO0FBUUEsYUFBZ0IsUUFBUSxXQUFpQjtBQUN2QyxZQUFNLFdBQVcsUUFBUSxJQUFJLGFBQWEsS0FBSztBQUMvQyxVQUFJLFVBQVU7QUFDWix1QkFBQSxpQkFBaUIsUUFBUSxTQUFTO2FBQzdCO0FBQ0wsa0JBQUEsYUFBYSxZQUFZLENBQUEsR0FBSSxTQUFTOztBQUV4QyxjQUFRLElBQUksTUFBTSxJQUFJLEdBQUcsU0FBUyxHQUFHRCxNQUFLLFNBQVMsR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDO0lBQzNFO0FBUkEsWUFBQSxVQUFBO0FBbUJBLGFBQWdCLFNBQVMsTUFBY0UsVUFBc0I7QUFDM0QsWUFBTSxNQUNKLFFBQVEsSUFBSSxTQUFTLEtBQUssUUFBUSxNQUFNLEdBQUcsRUFBRSxZQUFXLENBQUUsRUFBRSxLQUFLO0FBQ25FLFVBQUlBLFlBQVdBLFNBQVEsWUFBWSxDQUFDLEtBQUs7QUFDdkMsY0FBTSxJQUFJLE1BQU0sb0NBQW9DLElBQUksRUFBRTs7QUFHNUQsVUFBSUEsWUFBV0EsU0FBUSxtQkFBbUIsT0FBTztBQUMvQyxlQUFPOztBQUdULGFBQU8sSUFBSSxLQUFJO0lBQ2pCO0FBWkEsWUFBQSxXQUFBO0FBc0JBLGFBQWdCLGtCQUNkLE1BQ0FBLFVBQXNCO0FBRXRCLFlBQU1DLFVBQW1CLFNBQVMsTUFBTUQsUUFBTyxFQUM1QyxNQUFNLElBQUksRUFDVixPQUFPLENBQUFFLE9BQUtBLE9BQU0sRUFBRTtBQUV2QixVQUFJRixZQUFXQSxTQUFRLG1CQUFtQixPQUFPO0FBQy9DLGVBQU9DOztBQUdULGFBQU9BLFFBQU8sSUFBSSxXQUFTLE1BQU0sS0FBSSxDQUFFO0lBQ3pDO0FBYkEsWUFBQSxvQkFBQTtBQXlCQSxhQUFnQixnQkFBZ0IsTUFBY0QsVUFBc0I7QUFDbEUsWUFBTSxZQUFZLENBQUMsUUFBUSxRQUFRLE1BQU07QUFDekMsWUFBTSxhQUFhLENBQUMsU0FBUyxTQUFTLE9BQU87QUFDN0MsWUFBTSxNQUFNLFNBQVMsTUFBTUEsUUFBTztBQUNsQyxVQUFJLFVBQVUsU0FBUyxHQUFHO0FBQUcsZUFBTztBQUNwQyxVQUFJLFdBQVcsU0FBUyxHQUFHO0FBQUcsZUFBTztBQUNyQyxZQUFNLElBQUksVUFDUiw2REFBNkQsSUFBSTsyRUFDYTtJQUVsRjtBQVZBLFlBQUEsa0JBQUE7QUFtQkEsYUFBZ0IsVUFBVSxNQUFjLE9BQVU7QUFDaEQsWUFBTSxXQUFXLFFBQVEsSUFBSSxlQUFlLEtBQUs7QUFDakQsVUFBSSxVQUFVO0FBQ1osZUFBTyxlQUFBLGlCQUFpQixVQUFVLGVBQUEsdUJBQXVCLE1BQU0sS0FBSyxDQUFDOztBQUd2RSxjQUFRLE9BQU8sTUFBTUgsSUFBRyxHQUFHO0FBQzNCLGdCQUFBLGFBQWEsY0FBYyxFQUFDLEtBQUksR0FBRyxRQUFBLGVBQWUsS0FBSyxDQUFDO0lBQzFEO0FBUkEsWUFBQSxZQUFBO0FBZUEsYUFBZ0IsZUFBZSxTQUFnQjtBQUM3QyxnQkFBQSxNQUFNLFFBQVEsVUFBVSxPQUFPLEtBQUs7SUFDdEM7QUFGQSxZQUFBLGlCQUFBO0FBYUEsYUFBZ0JNLFdBQVUsU0FBdUI7QUFDL0MsY0FBUSxXQUFXLFNBQVM7QUFFNUIsTUFBQUMsT0FBTSxPQUFPO0lBQ2Y7QUFKQSxZQUFBLFlBQUFEO0FBYUEsYUFBZ0IsVUFBTztBQUNyQixhQUFPLFFBQVEsSUFBSSxjQUFjLE1BQU07SUFDekM7QUFGQSxZQUFBLFVBQUE7QUFRQSxhQUFnQixNQUFNLFNBQWU7QUFDbkMsZ0JBQUEsYUFBYSxTQUFTLENBQUEsR0FBSSxPQUFPO0lBQ25DO0FBRkEsWUFBQSxRQUFBO0FBU0EsYUFBZ0JDLE9BQ2QsU0FDQSxhQUFtQyxDQUFBLEdBQUU7QUFFckMsZ0JBQUEsYUFDRSxTQUNBLFFBQUEsb0JBQW9CLFVBQVUsR0FDOUIsbUJBQW1CLFFBQVEsUUFBUSxTQUFRLElBQUssT0FBTztJQUUzRDtBQVRBLFlBQUEsUUFBQUE7QUFnQkEsYUFBZ0IsUUFDZCxTQUNBLGFBQW1DLENBQUEsR0FBRTtBQUVyQyxnQkFBQSxhQUNFLFdBQ0EsUUFBQSxvQkFBb0IsVUFBVSxHQUM5QixtQkFBbUIsUUFBUSxRQUFRLFNBQVEsSUFBSyxPQUFPO0lBRTNEO0FBVEEsWUFBQSxVQUFBO0FBZ0JBLGFBQWdCLE9BQ2QsU0FDQSxhQUFtQyxDQUFBLEdBQUU7QUFFckMsZ0JBQUEsYUFDRSxVQUNBLFFBQUEsb0JBQW9CLFVBQVUsR0FDOUIsbUJBQW1CLFFBQVEsUUFBUSxTQUFRLElBQUssT0FBTztJQUUzRDtBQVRBLFlBQUEsU0FBQTtBQWVBLGFBQWdCQyxNQUFLLFNBQWU7QUFDbEMsY0FBUSxPQUFPLE1BQU0sVUFBVVIsSUFBRyxHQUFHO0lBQ3ZDO0FBRkEsWUFBQSxPQUFBUTtBQVdBLGFBQWdCQyxZQUFXLE1BQVk7QUFDckMsZ0JBQUEsTUFBTSxTQUFTLElBQUk7SUFDckI7QUFGQSxZQUFBLGFBQUFBO0FBT0EsYUFBZ0JDLFlBQVE7QUFDdEIsZ0JBQUEsTUFBTSxVQUFVO0lBQ2xCO0FBRkEsWUFBQSxXQUFBQTtBQVlBLGFBQXNCQyxPQUFTLE1BQWNDLEtBQW9COztBQUMvRCxRQUFBSCxZQUFXLElBQUk7QUFFZixZQUFJO0FBRUosWUFBSTtBQUNGLG1CQUFTLE1BQU1HLElBQUU7O0FBRWpCLFVBQUFGLFVBQVE7O0FBR1YsZUFBTztNQUNULENBQUM7O0FBWkQsWUFBQSxRQUFBQztBQXlCQSxhQUFnQixVQUFVLE1BQWMsT0FBVTtBQUNoRCxZQUFNLFdBQVcsUUFBUSxJQUFJLGNBQWMsS0FBSztBQUNoRCxVQUFJLFVBQVU7QUFDWixlQUFPLGVBQUEsaUJBQWlCLFNBQVMsZUFBQSx1QkFBdUIsTUFBTSxLQUFLLENBQUM7O0FBR3RFLGdCQUFBLGFBQWEsY0FBYyxFQUFDLEtBQUksR0FBRyxRQUFBLGVBQWUsS0FBSyxDQUFDO0lBQzFEO0FBUEEsWUFBQSxZQUFBO0FBZUEsYUFBZ0IsU0FBUyxNQUFZO0FBQ25DLGFBQU8sUUFBUSxJQUFJLFNBQVMsSUFBSSxFQUFFLEtBQUs7SUFDekM7QUFGQSxZQUFBLFdBQUE7QUFJQSxhQUFzQixXQUFXLEtBQVk7O0FBQzNDLGVBQU8sTUFBTSxhQUFBLFdBQVcsV0FBVyxHQUFHO01BQ3hDLENBQUM7O0FBRkQsWUFBQSxhQUFBO0FBT0EsUUFBQSxZQUFBO0FBQVEsV0FBQSxlQUFBLFNBQUEsV0FBQSxFQUFBLFlBQUEsTUFBQSxLQUFBLFdBQUE7QUFBQSxhQUFBLFVBQUE7SUFBTyxFQUFBLENBQUE7QUFLZixRQUFBLFlBQUE7QUFBUSxXQUFBLGVBQUEsU0FBQSxtQkFBQSxFQUFBLFlBQUEsTUFBQSxLQUFBLFdBQUE7QUFBQSxhQUFBLFVBQUE7SUFBZSxFQUFBLENBQUE7QUFLdkIsUUFBQSxlQUFBO0FBQVEsV0FBQSxlQUFBLFNBQUEsZUFBQSxFQUFBLFlBQUEsTUFBQSxLQUFBLFdBQUE7QUFBQSxhQUFBLGFBQUE7SUFBVyxFQUFBLENBQUE7QUFBRSxXQUFBLGVBQUEsU0FBQSxlQUFBLEVBQUEsWUFBQSxNQUFBLEtBQUEsV0FBQTtBQUFBLGFBQUEsYUFBQTtJQUFXLEVBQUEsQ0FBQTtBQUFFLFdBQUEsZUFBQSxTQUFBLGtCQUFBLEVBQUEsWUFBQSxNQUFBLEtBQUEsV0FBQTtBQUFBLGFBQUEsYUFBQTtJQUFjLEVBQUEsQ0FBQTs7Ozs7QUNuWWhEO0FBQUEsNENBQUFFLFNBQUE7QUFBQTtBQUVBLElBQUFBLFFBQU8sVUFBVSxDQUFDLE1BQU0sT0FBTyxRQUFRLFNBQVM7QUFDL0MsWUFBTSxTQUFTLEtBQUssV0FBVyxHQUFHLElBQUksS0FBTSxLQUFLLFdBQVcsSUFBSSxNQUFNO0FBQ3RFLFlBQU0sV0FBVyxLQUFLLFFBQVEsU0FBUyxJQUFJO0FBQzNDLFlBQU0scUJBQXFCLEtBQUssUUFBUSxJQUFJO0FBQzVDLGFBQU8sYUFBYSxPQUFPLHVCQUF1QixNQUFNLFdBQVc7QUFBQSxJQUNwRTtBQUFBO0FBQUE7OztBQ1BBO0FBQUEsa0RBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQU1DLE1BQUssUUFBUSxJQUFJO0FBQ3ZCLFFBQU1DLE9BQU0sUUFBUSxLQUFLO0FBQ3pCLFFBQU1DLFdBQVU7QUFFaEIsUUFBTSxFQUFDLEtBQUFDLEtBQUcsSUFBSTtBQUVkLFFBQUk7QUFDSixRQUFJRCxTQUFRLFVBQVUsS0FDckJBLFNBQVEsV0FBVyxLQUNuQkEsU0FBUSxhQUFhLEtBQ3JCQSxTQUFRLGFBQWEsR0FBRztBQUN4QixtQkFBYTtBQUFBLElBQ2QsV0FBV0EsU0FBUSxPQUFPLEtBQ3pCQSxTQUFRLFFBQVEsS0FDaEJBLFNBQVEsWUFBWSxLQUNwQkEsU0FBUSxjQUFjLEdBQUc7QUFDekIsbUJBQWE7QUFBQSxJQUNkO0FBRUEsUUFBSSxpQkFBaUJDLE1BQUs7QUFDekIsVUFBSUEsS0FBSSxnQkFBZ0IsUUFBUTtBQUMvQixxQkFBYTtBQUFBLE1BQ2QsV0FBV0EsS0FBSSxnQkFBZ0IsU0FBUztBQUN2QyxxQkFBYTtBQUFBLE1BQ2QsT0FBTztBQUNOLHFCQUFhQSxLQUFJLFlBQVksV0FBVyxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVNBLEtBQUksYUFBYSxFQUFFLEdBQUcsQ0FBQztBQUFBLE1BQzFGO0FBQUEsSUFDRDtBQUVBLGFBQVNDLGdCQUFlLE9BQU87QUFDOUIsVUFBSSxVQUFVLEdBQUc7QUFDaEIsZUFBTztBQUFBLE1BQ1I7QUFFQSxhQUFPO0FBQUEsUUFDTjtBQUFBLFFBQ0EsVUFBVTtBQUFBLFFBQ1YsUUFBUSxTQUFTO0FBQUEsUUFDakIsUUFBUSxTQUFTO0FBQUEsTUFDbEI7QUFBQSxJQUNEO0FBRUEsYUFBU0MsZUFBYyxZQUFZLGFBQWE7QUFDL0MsVUFBSSxlQUFlLEdBQUc7QUFDckIsZUFBTztBQUFBLE1BQ1I7QUFFQSxVQUFJSCxTQUFRLFdBQVcsS0FDdEJBLFNBQVEsWUFBWSxLQUNwQkEsU0FBUSxpQkFBaUIsR0FBRztBQUM1QixlQUFPO0FBQUEsTUFDUjtBQUVBLFVBQUlBLFNBQVEsV0FBVyxHQUFHO0FBQ3pCLGVBQU87QUFBQSxNQUNSO0FBRUEsVUFBSSxjQUFjLENBQUMsZUFBZSxlQUFlLFFBQVc7QUFDM0QsZUFBTztBQUFBLE1BQ1I7QUFFQSxZQUFNLE1BQU0sY0FBYztBQUUxQixVQUFJQyxLQUFJLFNBQVMsUUFBUTtBQUN4QixlQUFPO0FBQUEsTUFDUjtBQUVBLFVBQUksUUFBUSxhQUFhLFNBQVM7QUFHakMsY0FBTSxZQUFZSCxJQUFHLFFBQVEsRUFBRSxNQUFNLEdBQUc7QUFDeEMsWUFDQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLEtBQUssTUFDeEIsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLE9BQ3ZCO0FBQ0QsaUJBQU8sT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSTtBQUFBLFFBQzVDO0FBRUEsZUFBTztBQUFBLE1BQ1I7QUFFQSxVQUFJLFFBQVFHLE1BQUs7QUFDaEIsWUFBSSxDQUFDLFVBQVUsWUFBWSxZQUFZLGFBQWEsa0JBQWtCLFdBQVcsRUFBRSxLQUFLLFVBQVEsUUFBUUEsSUFBRyxLQUFLQSxLQUFJLFlBQVksWUFBWTtBQUMzSSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPO0FBQUEsTUFDUjtBQUVBLFVBQUksc0JBQXNCQSxNQUFLO0FBQzlCLGVBQU8sZ0NBQWdDLEtBQUtBLEtBQUksZ0JBQWdCLElBQUksSUFBSTtBQUFBLE1BQ3pFO0FBRUEsVUFBSUEsS0FBSSxjQUFjLGFBQWE7QUFDbEMsZUFBTztBQUFBLE1BQ1I7QUFFQSxVQUFJLGtCQUFrQkEsTUFBSztBQUMxQixjQUFNRyxXQUFVLFVBQVVILEtBQUksd0JBQXdCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUU7QUFFM0UsZ0JBQVFBLEtBQUksY0FBYztBQUFBLFVBQ3pCLEtBQUs7QUFDSixtQkFBT0csWUFBVyxJQUFJLElBQUk7QUFBQSxVQUMzQixLQUFLO0FBQ0osbUJBQU87QUFBQSxRQUVUO0FBQUEsTUFDRDtBQUVBLFVBQUksaUJBQWlCLEtBQUtILEtBQUksSUFBSSxHQUFHO0FBQ3BDLGVBQU87QUFBQSxNQUNSO0FBRUEsVUFBSSw4REFBOEQsS0FBS0EsS0FBSSxJQUFJLEdBQUc7QUFDakYsZUFBTztBQUFBLE1BQ1I7QUFFQSxVQUFJLGVBQWVBLE1BQUs7QUFDdkIsZUFBTztBQUFBLE1BQ1I7QUFFQSxhQUFPO0FBQUEsSUFDUjtBQUVBLGFBQVMsZ0JBQWdCLFFBQVE7QUFDaEMsWUFBTSxRQUFRRSxlQUFjLFFBQVEsVUFBVSxPQUFPLEtBQUs7QUFDMUQsYUFBT0QsZ0JBQWUsS0FBSztBQUFBLElBQzVCO0FBRUEsSUFBQUwsUUFBTyxVQUFVO0FBQUEsTUFDaEIsZUFBZTtBQUFBLE1BQ2YsUUFBUUssZ0JBQWVDLGVBQWMsTUFBTUosS0FBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQUEsTUFDekQsUUFBUUcsZ0JBQWVDLGVBQWMsTUFBTUosS0FBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQUEsSUFDMUQ7QUFBQTtBQUFBOzs7QUN0SUE7QUFBQSwrQ0FBQU0sU0FBQTtBQUFBO0FBRUEsUUFBTUMsb0JBQW1CLENBQUMsUUFBUSxXQUFXLGFBQWE7QUFDekQsVUFBSSxRQUFRLE9BQU8sUUFBUSxTQUFTO0FBQ3BDLFVBQUksVUFBVSxJQUFJO0FBQ2pCLGVBQU87QUFBQSxNQUNSO0FBRUEsWUFBTSxrQkFBa0IsVUFBVTtBQUNsQyxVQUFJLFdBQVc7QUFDZixVQUFJLGNBQWM7QUFDbEIsU0FBRztBQUNGLHVCQUFlLE9BQU8sT0FBTyxVQUFVLFFBQVEsUUFBUSxJQUFJLFlBQVk7QUFDdkUsbUJBQVcsUUFBUTtBQUNuQixnQkFBUSxPQUFPLFFBQVEsV0FBVyxRQUFRO0FBQUEsTUFDM0MsU0FBUyxVQUFVO0FBRW5CLHFCQUFlLE9BQU8sT0FBTyxRQUFRO0FBQ3JDLGFBQU87QUFBQSxJQUNSO0FBRUEsUUFBTUMsa0NBQWlDLENBQUMsUUFBUSxRQUFRLFNBQVMsVUFBVTtBQUMxRSxVQUFJLFdBQVc7QUFDZixVQUFJLGNBQWM7QUFDbEIsU0FBRztBQUNGLGNBQU0sUUFBUSxPQUFPLFFBQVEsQ0FBQyxNQUFNO0FBQ3BDLHVCQUFlLE9BQU8sT0FBTyxXQUFXLFFBQVEsUUFBUSxJQUFJLFNBQVMsUUFBUSxJQUFJLFVBQVUsUUFBUSxTQUFTLFFBQVE7QUFDcEgsbUJBQVcsUUFBUTtBQUNuQixnQkFBUSxPQUFPLFFBQVEsTUFBTSxRQUFRO0FBQUEsTUFDdEMsU0FBUyxVQUFVO0FBRW5CLHFCQUFlLE9BQU8sT0FBTyxRQUFRO0FBQ3JDLGFBQU87QUFBQSxJQUNSO0FBRUEsSUFBQUYsUUFBTyxVQUFVO0FBQUEsTUFDaEIsa0JBQUFDO0FBQUEsTUFDQSxnQ0FBQUM7QUFBQSxJQUNEO0FBQUE7QUFBQTs7O0FDdENBO0FBQUEsb0RBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQU0saUJBQWlCO0FBQ3ZCLFFBQU0sY0FBYztBQUNwQixRQUFNLGVBQWU7QUFDckIsUUFBTSxlQUFlO0FBRXJCLFFBQU0sVUFBVSxvQkFBSSxJQUFJO0FBQUEsTUFDdkIsQ0FBQyxLQUFLLElBQUk7QUFBQSxNQUNWLENBQUMsS0FBSyxJQUFJO0FBQUEsTUFDVixDQUFDLEtBQUssR0FBSTtBQUFBLE1BQ1YsQ0FBQyxLQUFLLElBQUk7QUFBQSxNQUNWLENBQUMsS0FBSyxJQUFJO0FBQUEsTUFDVixDQUFDLEtBQUssSUFBSTtBQUFBLE1BQ1YsQ0FBQyxLQUFLLElBQUk7QUFBQSxNQUNWLENBQUMsTUFBTSxJQUFJO0FBQUEsTUFDWCxDQUFDLEtBQUssTUFBUTtBQUFBLE1BQ2QsQ0FBQyxLQUFLLE1BQVE7QUFBQSxJQUNmLENBQUM7QUFFRCxhQUFTQyxVQUFTQyxJQUFHO0FBQ3BCLFlBQU0sSUFBSUEsR0FBRSxDQUFDLE1BQU07QUFDbkIsWUFBTSxVQUFVQSxHQUFFLENBQUMsTUFBTTtBQUV6QixVQUFLLEtBQUssQ0FBQyxXQUFXQSxHQUFFLFdBQVcsS0FBT0EsR0FBRSxDQUFDLE1BQU0sT0FBT0EsR0FBRSxXQUFXLEdBQUk7QUFDMUUsZUFBTyxPQUFPLGFBQWEsU0FBU0EsR0FBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFBQSxNQUNwRDtBQUVBLFVBQUksS0FBSyxTQUFTO0FBQ2pCLGVBQU8sT0FBTyxjQUFjLFNBQVNBLEdBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFBQSxNQUN6RDtBQUVBLGFBQU8sUUFBUSxJQUFJQSxFQUFDLEtBQUtBO0FBQUEsSUFDMUI7QUFFQSxhQUFTLGVBQWUsTUFBTSxZQUFZO0FBQ3pDLFlBQU0sVUFBVSxDQUFDO0FBQ2pCLFlBQU0sU0FBUyxXQUFXLEtBQUssRUFBRSxNQUFNLFVBQVU7QUFDakQsVUFBSTtBQUVKLGlCQUFXLFNBQVMsUUFBUTtBQUMzQixjQUFNLFNBQVMsT0FBTyxLQUFLO0FBQzNCLFlBQUksQ0FBQyxPQUFPLE1BQU0sTUFBTSxHQUFHO0FBQzFCLGtCQUFRLEtBQUssTUFBTTtBQUFBLFFBQ3BCLFdBQVksVUFBVSxNQUFNLE1BQU0sWUFBWSxHQUFJO0FBQ2pELGtCQUFRLEtBQUssUUFBUSxDQUFDLEVBQUUsUUFBUSxjQUFjLENBQUNDLElBQUcsUUFBUSxjQUFjLFNBQVNGLFVBQVMsTUFBTSxJQUFJLFNBQVMsQ0FBQztBQUFBLFFBQy9HLE9BQU87QUFDTixnQkFBTSxJQUFJLE1BQU0sMENBQTBDLEtBQUssZUFBZSxJQUFJLElBQUk7QUFBQSxRQUN2RjtBQUFBLE1BQ0Q7QUFFQSxhQUFPO0FBQUEsSUFDUjtBQUVBLGFBQVMsV0FBVyxPQUFPO0FBQzFCLGtCQUFZLFlBQVk7QUFFeEIsWUFBTSxVQUFVLENBQUM7QUFDakIsVUFBSTtBQUVKLGNBQVEsVUFBVSxZQUFZLEtBQUssS0FBSyxPQUFPLE1BQU07QUFDcEQsY0FBTSxPQUFPLFFBQVEsQ0FBQztBQUV0QixZQUFJLFFBQVEsQ0FBQyxHQUFHO0FBQ2YsZ0JBQU0sT0FBTyxlQUFlLE1BQU0sUUFBUSxDQUFDLENBQUM7QUFDNUMsa0JBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksQ0FBQztBQUFBLFFBQ2pDLE9BQU87QUFDTixrQkFBUSxLQUFLLENBQUMsSUFBSSxDQUFDO0FBQUEsUUFDcEI7QUFBQSxNQUNEO0FBRUEsYUFBTztBQUFBLElBQ1I7QUFFQSxhQUFTLFdBQVdHLFFBQU9DLFNBQVE7QUFDbEMsWUFBTSxVQUFVLENBQUM7QUFFakIsaUJBQVcsU0FBU0EsU0FBUTtBQUMzQixtQkFBVyxTQUFTLE1BQU0sUUFBUTtBQUNqQyxrQkFBUSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sVUFBVSxPQUFPLE1BQU0sTUFBTSxDQUFDO0FBQUEsUUFDekQ7QUFBQSxNQUNEO0FBRUEsVUFBSSxVQUFVRDtBQUNkLGlCQUFXLENBQUMsV0FBV0MsT0FBTSxLQUFLLE9BQU8sUUFBUSxPQUFPLEdBQUc7QUFDMUQsWUFBSSxDQUFDLE1BQU0sUUFBUUEsT0FBTSxHQUFHO0FBQzNCO0FBQUEsUUFDRDtBQUVBLFlBQUksRUFBRSxhQUFhLFVBQVU7QUFDNUIsZ0JBQU0sSUFBSSxNQUFNLHdCQUF3QixTQUFTLEVBQUU7QUFBQSxRQUNwRDtBQUVBLGtCQUFVQSxRQUFPLFNBQVMsSUFBSSxRQUFRLFNBQVMsRUFBRSxHQUFHQSxPQUFNLElBQUksUUFBUSxTQUFTO0FBQUEsTUFDaEY7QUFFQSxhQUFPO0FBQUEsSUFDUjtBQUVBLElBQUFMLFFBQU8sVUFBVSxDQUFDSSxRQUFPLGNBQWM7QUFDdEMsWUFBTUMsVUFBUyxDQUFDO0FBQ2hCLFlBQU0sU0FBUyxDQUFDO0FBQ2hCLFVBQUksUUFBUSxDQUFDO0FBR2IsZ0JBQVUsUUFBUSxnQkFBZ0IsQ0FBQ0YsSUFBRyxpQkFBaUIsU0FBUyxPQUFPLE9BQU8sY0FBYztBQUMzRixZQUFJLGlCQUFpQjtBQUNwQixnQkFBTSxLQUFLRixVQUFTLGVBQWUsQ0FBQztBQUFBLFFBQ3JDLFdBQVcsT0FBTztBQUNqQixnQkFBTSxTQUFTLE1BQU0sS0FBSyxFQUFFO0FBQzVCLGtCQUFRLENBQUM7QUFDVCxpQkFBTyxLQUFLSSxRQUFPLFdBQVcsSUFBSSxTQUFTLFdBQVdELFFBQU9DLE9BQU0sRUFBRSxNQUFNLENBQUM7QUFDNUUsVUFBQUEsUUFBTyxLQUFLLEVBQUMsU0FBUyxRQUFRLFdBQVcsS0FBSyxFQUFDLENBQUM7QUFBQSxRQUNqRCxXQUFXLE9BQU87QUFDakIsY0FBSUEsUUFBTyxXQUFXLEdBQUc7QUFDeEIsa0JBQU0sSUFBSSxNQUFNLDhDQUE4QztBQUFBLFVBQy9EO0FBRUEsaUJBQU8sS0FBSyxXQUFXRCxRQUFPQyxPQUFNLEVBQUUsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELGtCQUFRLENBQUM7QUFDVCxVQUFBQSxRQUFPLElBQUk7QUFBQSxRQUNaLE9BQU87QUFDTixnQkFBTSxLQUFLLFNBQVM7QUFBQSxRQUNyQjtBQUFBLE1BQ0QsQ0FBQztBQUVELGFBQU8sS0FBSyxNQUFNLEtBQUssRUFBRSxDQUFDO0FBRTFCLFVBQUlBLFFBQU8sU0FBUyxHQUFHO0FBQ3RCLGNBQU0sYUFBYSxxQ0FBcUNBLFFBQU8sTUFBTSxtQkFBbUJBLFFBQU8sV0FBVyxJQUFJLEtBQUssR0FBRztBQUN0SCxjQUFNLElBQUksTUFBTSxVQUFVO0FBQUEsTUFDM0I7QUFFQSxhQUFPLE9BQU8sS0FBSyxFQUFFO0FBQUEsSUFDdEI7QUFBQTtBQUFBOzs7QUNySUE7QUFBQSxnREFBQUMsU0FBQTtBQUFBO0FBQ0EsUUFBTUMsY0FBYTtBQUNuQixRQUFNLEVBQUMsUUFBUUMsY0FBYSxRQUFRQyxhQUFXLElBQUk7QUFDbkQsUUFBTTtBQUFBLE1BQ0wsa0JBQUFDO0FBQUEsTUFDQSxnQ0FBQUM7QUFBQSxJQUNELElBQUk7QUFFSixRQUFNLEVBQUMsUUFBTyxJQUFJO0FBR2xCLFFBQU1DLGdCQUFlO0FBQUEsTUFDcEI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNEO0FBRUEsUUFBTUMsVUFBUyx1QkFBTyxPQUFPLElBQUk7QUFFakMsUUFBTUMsZ0JBQWUsQ0FBQyxRQUFRQyxXQUFVLENBQUMsTUFBTTtBQUM5QyxVQUFJQSxTQUFRLFNBQVMsRUFBRSxPQUFPLFVBQVVBLFNBQVEsS0FBSyxLQUFLQSxTQUFRLFNBQVMsS0FBS0EsU0FBUSxTQUFTLElBQUk7QUFDcEcsY0FBTSxJQUFJLE1BQU0scURBQXFEO0FBQUEsTUFDdEU7QUFHQSxZQUFNLGFBQWFQLGVBQWNBLGFBQVksUUFBUTtBQUNyRCxhQUFPLFFBQVFPLFNBQVEsVUFBVSxTQUFZLGFBQWFBLFNBQVE7QUFBQSxJQUNuRTtBQUVBLFFBQU0sYUFBTixNQUFpQjtBQUFBLE1BQ2hCLFlBQVlBLFVBQVM7QUFFcEIsZUFBT0MsY0FBYUQsUUFBTztBQUFBLE1BQzVCO0FBQUEsSUFDRDtBQUVBLFFBQU1DLGdCQUFlLENBQUFELGFBQVc7QUFDL0IsWUFBTUUsU0FBUSxDQUFDO0FBQ2YsTUFBQUgsY0FBYUcsUUFBT0YsUUFBTztBQUUzQixNQUFBRSxPQUFNLFdBQVcsSUFBSSxlQUFlLFNBQVNBLE9BQU0sVUFBVSxHQUFHLFVBQVU7QUFFMUUsYUFBTyxlQUFlQSxRQUFPLE1BQU0sU0FBUztBQUM1QyxhQUFPLGVBQWVBLE9BQU0sVUFBVUEsTUFBSztBQUUzQyxNQUFBQSxPQUFNLFNBQVMsY0FBYyxNQUFNO0FBQ2xDLGNBQU0sSUFBSSxNQUFNLDBFQUEwRTtBQUFBLE1BQzNGO0FBRUEsTUFBQUEsT0FBTSxTQUFTLFdBQVc7QUFFMUIsYUFBT0EsT0FBTTtBQUFBLElBQ2Q7QUFFQSxhQUFTLE1BQU1GLFVBQVM7QUFDdkIsYUFBT0MsY0FBYUQsUUFBTztBQUFBLElBQzVCO0FBRUEsZUFBVyxDQUFDLFdBQVcsS0FBSyxLQUFLLE9BQU8sUUFBUVIsV0FBVSxHQUFHO0FBQzVELE1BQUFNLFFBQU8sU0FBUyxJQUFJO0FBQUEsUUFDbkIsTUFBTTtBQUNMLGdCQUFNLFVBQVVLLGVBQWMsTUFBTUMsY0FBYSxNQUFNLE1BQU0sTUFBTSxPQUFPLEtBQUssT0FBTyxHQUFHLEtBQUssUUFBUTtBQUN0RyxpQkFBTyxlQUFlLE1BQU0sV0FBVyxFQUFDLE9BQU8sUUFBTyxDQUFDO0FBQ3ZELGlCQUFPO0FBQUEsUUFDUjtBQUFBLE1BQ0Q7QUFBQSxJQUNEO0FBRUEsSUFBQU4sUUFBTyxVQUFVO0FBQUEsTUFDaEIsTUFBTTtBQUNMLGNBQU0sVUFBVUssZUFBYyxNQUFNLEtBQUssU0FBUyxJQUFJO0FBQ3RELGVBQU8sZUFBZSxNQUFNLFdBQVcsRUFBQyxPQUFPLFFBQU8sQ0FBQztBQUN2RCxlQUFPO0FBQUEsTUFDUjtBQUFBLElBQ0Q7QUFFQSxRQUFNRSxjQUFhLENBQUMsT0FBTyxPQUFPLFdBQVcsT0FBTyxPQUFPLE9BQU8sUUFBUSxTQUFTO0FBRW5GLGVBQVcsU0FBU0EsYUFBWTtBQUMvQixNQUFBUCxRQUFPLEtBQUssSUFBSTtBQUFBLFFBQ2YsTUFBTTtBQUNMLGdCQUFNLEVBQUMsTUFBSyxJQUFJO0FBQ2hCLGlCQUFPLFlBQWEsWUFBWTtBQUMvQixrQkFBTSxTQUFTTSxjQUFhWixZQUFXLE1BQU1LLGNBQWEsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxHQUFHTCxZQUFXLE1BQU0sT0FBTyxLQUFLLE9BQU87QUFDN0gsbUJBQU9XLGVBQWMsTUFBTSxRQUFRLEtBQUssUUFBUTtBQUFBLFVBQ2pEO0FBQUEsUUFDRDtBQUFBLE1BQ0Q7QUFBQSxJQUNEO0FBRUEsZUFBVyxTQUFTRSxhQUFZO0FBQy9CLFlBQU0sVUFBVSxPQUFPLE1BQU0sQ0FBQyxFQUFFLFlBQVksSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxNQUFBUCxRQUFPLE9BQU8sSUFBSTtBQUFBLFFBQ2pCLE1BQU07QUFDTCxnQkFBTSxFQUFDLE1BQUssSUFBSTtBQUNoQixpQkFBTyxZQUFhLFlBQVk7QUFDL0Isa0JBQU0sU0FBU00sY0FBYVosWUFBVyxRQUFRSyxjQUFhLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsR0FBR0wsWUFBVyxRQUFRLE9BQU8sS0FBSyxPQUFPO0FBQ2pJLG1CQUFPVyxlQUFjLE1BQU0sUUFBUSxLQUFLLFFBQVE7QUFBQSxVQUNqRDtBQUFBLFFBQ0Q7QUFBQSxNQUNEO0FBQUEsSUFDRDtBQUVBLFFBQU1HLFNBQVEsT0FBTyxpQkFBaUIsTUFBTTtBQUFBLElBQUMsR0FBRztBQUFBLE1BQy9DLEdBQUdSO0FBQUEsTUFDSCxPQUFPO0FBQUEsUUFDTixZQUFZO0FBQUEsUUFDWixNQUFNO0FBQ0wsaUJBQU8sS0FBSyxXQUFXO0FBQUEsUUFDeEI7QUFBQSxRQUNBLElBQUksT0FBTztBQUNWLGVBQUssV0FBVyxRQUFRO0FBQUEsUUFDekI7QUFBQSxNQUNEO0FBQUEsSUFDRCxDQUFDO0FBRUQsUUFBTU0sZ0JBQWUsQ0FBQyxNQUFNLE9BQU8sV0FBVztBQUM3QyxVQUFJO0FBQ0osVUFBSTtBQUNKLFVBQUksV0FBVyxRQUFXO0FBQ3pCLGtCQUFVO0FBQ1YsbUJBQVc7QUFBQSxNQUNaLE9BQU87QUFDTixrQkFBVSxPQUFPLFVBQVU7QUFDM0IsbUJBQVcsUUFBUSxPQUFPO0FBQUEsTUFDM0I7QUFFQSxhQUFPO0FBQUEsUUFDTjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNEO0FBQUEsSUFDRDtBQUVBLFFBQU1ELGlCQUFnQixDQUFDSSxPQUFNLFNBQVMsYUFBYTtBQUNsRCxZQUFNLFVBQVUsSUFBSSxlQUFlO0FBQ2xDLFlBQUksUUFBUSxXQUFXLENBQUMsQ0FBQyxLQUFLLFFBQVEsV0FBVyxDQUFDLEVBQUUsR0FBRyxHQUFHO0FBRXpELGlCQUFPQyxZQUFXLFNBQVMsU0FBUyxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBQUEsUUFDNUQ7QUFJQSxlQUFPQSxZQUFXLFNBQVUsV0FBVyxXQUFXLElBQU0sS0FBSyxXQUFXLENBQUMsSUFBSyxXQUFXLEtBQUssR0FBRyxDQUFDO0FBQUEsTUFDbkc7QUFJQSxhQUFPLGVBQWUsU0FBU0YsTUFBSztBQUVwQyxjQUFRLGFBQWFDO0FBQ3JCLGNBQVEsVUFBVTtBQUNsQixjQUFRLFdBQVc7QUFFbkIsYUFBTztBQUFBLElBQ1I7QUFFQSxRQUFNQyxjQUFhLENBQUNELE9BQU0sV0FBVztBQUNwQyxVQUFJQSxNQUFLLFNBQVMsS0FBSyxDQUFDLFFBQVE7QUFDL0IsZUFBT0EsTUFBSyxXQUFXLEtBQUs7QUFBQSxNQUM3QjtBQUVBLFVBQUksU0FBU0EsTUFBSztBQUVsQixVQUFJLFdBQVcsUUFBVztBQUN6QixlQUFPO0FBQUEsTUFDUjtBQUVBLFlBQU0sRUFBQyxTQUFTLFNBQVEsSUFBSTtBQUM1QixVQUFJLE9BQU8sUUFBUSxNQUFRLE1BQU0sSUFBSTtBQUNwQyxlQUFPLFdBQVcsUUFBVztBQUk1QixtQkFBU1osa0JBQWlCLFFBQVEsT0FBTyxPQUFPLE9BQU8sSUFBSTtBQUUzRCxtQkFBUyxPQUFPO0FBQUEsUUFDakI7QUFBQSxNQUNEO0FBS0EsWUFBTSxVQUFVLE9BQU8sUUFBUSxJQUFJO0FBQ25DLFVBQUksWUFBWSxJQUFJO0FBQ25CLGlCQUFTQyxnQ0FBK0IsUUFBUSxVQUFVLFNBQVMsT0FBTztBQUFBLE1BQzNFO0FBRUEsYUFBTyxVQUFVLFNBQVM7QUFBQSxJQUMzQjtBQUVBLFFBQUk7QUFDSixRQUFNLFdBQVcsQ0FBQ00sV0FBVSxZQUFZO0FBQ3ZDLFlBQU0sQ0FBQyxXQUFXLElBQUk7QUFFdEIsVUFBSSxDQUFDLFFBQVEsV0FBVyxLQUFLLENBQUMsUUFBUSxZQUFZLEdBQUcsR0FBRztBQUd2RCxlQUFPLFFBQVEsS0FBSyxHQUFHO0FBQUEsTUFDeEI7QUFFQSxZQUFNLGFBQWEsUUFBUSxNQUFNLENBQUM7QUFDbEMsWUFBTSxRQUFRLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztBQUVqQyxlQUFTLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxLQUFLO0FBQzVDLGNBQU07QUFBQSxVQUNMLE9BQU8sV0FBVyxJQUFJLENBQUMsQ0FBQyxFQUFFLFFBQVEsV0FBVyxNQUFNO0FBQUEsVUFDbkQsT0FBTyxZQUFZLElBQUksQ0FBQyxDQUFDO0FBQUEsUUFDMUI7QUFBQSxNQUNEO0FBRUEsVUFBSSxhQUFhLFFBQVc7QUFDM0IsbUJBQVc7QUFBQSxNQUNaO0FBRUEsYUFBTyxTQUFTQSxRQUFPLE1BQU0sS0FBSyxFQUFFLENBQUM7QUFBQSxJQUN0QztBQUVBLFdBQU8saUJBQWlCLE1BQU0sV0FBV0osT0FBTTtBQUUvQyxRQUFNSSxTQUFRLE1BQU07QUFDcEIsSUFBQUEsT0FBTSxnQkFBZ0JUO0FBQ3RCLElBQUFTLE9BQU0sU0FBUyxNQUFNLEVBQUMsT0FBT1IsZUFBY0EsYUFBWSxRQUFRLEVBQUMsQ0FBQztBQUNqRSxJQUFBUSxPQUFNLE9BQU8sZ0JBQWdCUjtBQUU3QixJQUFBSCxRQUFPLFVBQVVXO0FBQUE7QUFBQTs7O0FDcE9qQjtBQUFBLHlEQUFBTyxTQUFBO0FBQUE7QUFJQSxXQUFPLGVBQWUsU0FBUyxjQUFjLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDNUQsUUFBTSxzQkFBc0I7QUFBQSxNQUN4QjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNKO0FBQ0EsYUFBUyxpQkFBaUIsTUFBTTtBQUM1QixhQUFPLG9CQUFvQixTQUFTLElBQUk7QUFBQSxJQUM1QztBQUNBLFFBQU0sa0JBQWtCO0FBQUEsTUFDcEI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQSxHQUFHO0FBQUEsSUFDUDtBQUNBLGFBQVMsaUJBQWlCLE1BQU07QUFDNUIsYUFBTyxnQkFBZ0IsU0FBUyxJQUFJO0FBQUEsSUFDeEM7QUFDQSxRQUFNLHFCQUFxQjtBQUFBLE1BQ3ZCO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDSjtBQUNBLGFBQVMsb0JBQW9CLE1BQU07QUFDL0IsYUFBTyxtQkFBbUIsU0FBUyxJQUFJO0FBQUEsSUFDM0M7QUFFQSxhQUFTLFNBQVNDLE9BQU07QUFDcEIsYUFBTyxDQUFDLFVBQVUsT0FBTyxVQUFVQTtBQUFBLElBQ3ZDO0FBQ0EsUUFBTSxFQUFFLFVBQUFDLFVBQVMsSUFBSSxPQUFPO0FBQzVCLFFBQU0sZ0JBQWdCLENBQUMsVUFBVTtBQUM3QixZQUFNLGlCQUFpQkEsVUFBUyxLQUFLLEtBQUssRUFBRSxNQUFNLEdBQUcsRUFBRTtBQUN2RCxVQUFJLGlCQUFpQixLQUFLLGNBQWMsS0FBS0MsSUFBRyxXQUFXLEtBQUssR0FBRztBQUMvRCxlQUFPO0FBQUEsTUFDWDtBQUNBLFVBQUksaUJBQWlCLGNBQWMsR0FBRztBQUNsQyxlQUFPO0FBQUEsTUFDWDtBQUNBLGFBQU87QUFBQSxJQUNYO0FBQ0EsUUFBTSxpQkFBaUIsQ0FBQ0YsVUFBUyxDQUFDLFVBQVUsY0FBYyxLQUFLLE1BQU1BO0FBQ3JFLGFBQVNFLElBQUcsT0FBTztBQUNmLFVBQUksVUFBVSxNQUFNO0FBQ2hCLGVBQU87QUFBQSxNQUNYO0FBQ0EsY0FBUSxPQUFPLE9BQU87QUFBQSxRQUNsQixLQUFLO0FBQ0QsaUJBQU87QUFBQSxRQUNYLEtBQUs7QUFDRCxpQkFBTztBQUFBLFFBQ1gsS0FBSztBQUNELGlCQUFPO0FBQUEsUUFDWCxLQUFLO0FBQ0QsaUJBQU87QUFBQSxRQUNYLEtBQUs7QUFDRCxpQkFBTztBQUFBLFFBQ1gsS0FBSztBQUNELGlCQUFPO0FBQUEsUUFDWCxLQUFLO0FBQ0QsaUJBQU87QUFBQSxRQUNYO0FBQUEsTUFDSjtBQUNBLFVBQUlBLElBQUcsV0FBVyxLQUFLLEdBQUc7QUFDdEIsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFJQSxJQUFHLE1BQU0sS0FBSyxHQUFHO0FBQ2pCLGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSUEsSUFBRyxPQUFPLEtBQUssR0FBRztBQUNsQixlQUFPO0FBQUEsTUFDWDtBQUNBLFlBQU0sVUFBVSxjQUFjLEtBQUs7QUFDbkMsVUFBSSxTQUFTO0FBQ1QsZUFBTztBQUFBLE1BQ1g7QUFDQSxVQUFJLGlCQUFpQixVQUFVLGlCQUFpQixXQUFXLGlCQUFpQixRQUFRO0FBQ2hGLGNBQU0sSUFBSSxVQUFVLHNEQUF1RDtBQUFBLE1BQy9FO0FBQ0EsYUFBTztBQUFBLElBQ1g7QUFDQSxJQUFBQSxJQUFHLFlBQVksU0FBUyxXQUFXO0FBQ25DLElBQUFBLElBQUcsU0FBUyxTQUFTLFFBQVE7QUFDN0IsUUFBTSxlQUFlLFNBQVMsUUFBUTtBQUN0QyxJQUFBQSxJQUFHLFNBQVMsQ0FBQyxVQUFVLGFBQWEsS0FBSyxLQUFLLENBQUNBLElBQUcsSUFBSSxLQUFLO0FBQzNELElBQUFBLElBQUcsU0FBUyxTQUFTLFFBQVE7QUFFN0IsSUFBQUEsSUFBRyxZQUFZLFNBQVMsVUFBVTtBQUNsQyxJQUFBQSxJQUFHLFFBQVEsQ0FBQyxVQUFVLFVBQVU7QUFDaEMsSUFBQUEsSUFBRyxTQUFTLENBQUMsVUFBVUEsSUFBRyxVQUFVLEtBQUssS0FBSyxNQUFNLFNBQVMsRUFBRSxXQUFXLFFBQVE7QUFDbEYsSUFBQUEsSUFBRyxVQUFVLENBQUMsVUFBVSxVQUFVLFFBQVEsVUFBVTtBQUNwRCxJQUFBQSxJQUFHLFNBQVMsU0FBUyxRQUFRO0FBQzdCLElBQUFBLElBQUcsZ0JBQWdCLENBQUMsVUFBVUEsSUFBRyxPQUFPLEtBQUssS0FBSyxDQUFDQSxJQUFHLHdCQUF3QixLQUFLLEtBQUssQ0FBQyxPQUFPLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkgsSUFBQUEsSUFBRyxRQUFRLENBQUMsT0FBTyxjQUFjO0FBQzdCLFVBQUksQ0FBQyxNQUFNLFFBQVEsS0FBSyxHQUFHO0FBQ3ZCLGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSSxDQUFDQSxJQUFHLFVBQVUsU0FBUyxHQUFHO0FBQzFCLGVBQU87QUFBQSxNQUNYO0FBQ0EsYUFBTyxNQUFNLE1BQU0sU0FBUztBQUFBLElBQ2hDO0FBQ0EsSUFBQUEsSUFBRyxTQUFTLENBQUMsVUFBVTtBQUFFLFVBQUlDLEtBQUksSUFBSUMsS0FBSTtBQUFJLGNBQVEsTUFBTUEsT0FBTSxNQUFNRCxNQUFLLFdBQVcsUUFBUUEsUUFBTyxTQUFTLFNBQVNBLElBQUcsaUJBQWlCLFFBQVEsT0FBTyxTQUFTLFNBQVMsR0FBRyxjQUFjLFFBQVFDLFFBQU8sU0FBUyxTQUFTQSxJQUFHLEtBQUssSUFBSSxLQUFLLE9BQU8sUUFBUSxPQUFPLFNBQVMsS0FBSztBQUFBLElBQU87QUFDM1IsSUFBQUYsSUFBRyxrQkFBa0IsQ0FBQyxVQUFVQSxJQUFHLE1BQU0sS0FBSyxLQUFLQSxJQUFHLFVBQVUsS0FBSztBQUNyRSxJQUFBQSxJQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUNBLElBQUcsTUFBTSxLQUFLLE1BQU0sT0FBTyxVQUFVLFlBQVlBLElBQUcsVUFBVSxLQUFLO0FBQzNGLElBQUFBLElBQUcsV0FBVyxDQUFDLFVBQVU7QUFBRSxVQUFJQztBQUFJLGFBQU9ELElBQUcsV0FBV0MsTUFBSyxXQUFXLFFBQVFBLFFBQU8sU0FBUyxTQUFTQSxJQUFHLE9BQU8sUUFBUSxDQUFDO0FBQUEsSUFBRztBQUMvSCxJQUFBRCxJQUFHLGdCQUFnQixDQUFDLFVBQVU7QUFBRSxVQUFJQztBQUFJLGFBQU9ELElBQUcsV0FBV0MsTUFBSyxXQUFXLFFBQVFBLFFBQU8sU0FBUyxTQUFTQSxJQUFHLE9BQU8sYUFBYSxDQUFDO0FBQUEsSUFBRztBQUN6SSxJQUFBRCxJQUFHLFlBQVksQ0FBQyxVQUFVQSxJQUFHLFNBQVMsS0FBSyxLQUFLQSxJQUFHLFVBQVUsTUFBTSxJQUFJLEtBQUtBLElBQUcsVUFBVSxNQUFNLEtBQUs7QUFDcEcsSUFBQUEsSUFBRyxpQkFBaUIsQ0FBQyxVQUFVQSxJQUFHLGNBQWMsS0FBSyxLQUFLQSxJQUFHLFVBQVUsTUFBTSxJQUFJLEtBQUtBLElBQUcsVUFBVSxNQUFNLEtBQUs7QUFDOUcsSUFBQUEsSUFBRyxnQkFBZ0IsQ0FBQyxVQUFVLGVBQWUsU0FBUyxFQUFFLEtBQUs7QUFDN0QsUUFBTSxnQkFBZ0IsQ0FBQyxVQUFVO0FBQzdCLFVBQUlDLEtBQUk7QUFDUixhQUFPRCxJQUFHLFdBQVdDLE1BQUssV0FBVyxRQUFRQSxRQUFPLFNBQVMsU0FBU0EsSUFBRyxJQUFJLEtBQ3pFRCxJQUFHLFdBQVcsS0FBSyxXQUFXLFFBQVEsT0FBTyxTQUFTLFNBQVMsR0FBRyxLQUFLO0FBQUEsSUFDL0U7QUFDQSxJQUFBQSxJQUFHLFVBQVUsQ0FBQyxVQUFVQSxJQUFHLGNBQWMsS0FBSyxLQUFLLGNBQWMsS0FBSztBQUN0RSxJQUFBQSxJQUFHLG9CQUFvQixlQUFlLG1CQUFtQjtBQUN6RCxJQUFBQSxJQUFHLHlCQUF5QixDQUFDLFVBQVUsY0FBYyxLQUFLLE1BQU07QUFDaEUsSUFBQUEsSUFBRyxnQkFBZ0IsQ0FBQyxVQUFVLGNBQWMsS0FBSyxNQUFNO0FBRXZELElBQUFBLElBQUcsZ0JBQWdCLENBQUMsVUFBVUEsSUFBRyxVQUFVLEtBQUssS0FBSyxDQUFDLE1BQU0sZUFBZSxXQUFXO0FBQ3RGLElBQUFBLElBQUcsU0FBUyxlQUFlLFFBQVE7QUFDbkMsSUFBQUEsSUFBRyxPQUFPLGVBQWUsTUFBTTtBQUMvQixJQUFBQSxJQUFHLFFBQVEsZUFBZSxPQUFPO0FBQ2pDLElBQUFBLElBQUcsTUFBTSxDQUFDLFVBQVUsZUFBZSxLQUFLLEVBQUUsS0FBSztBQUMvQyxJQUFBQSxJQUFHLE1BQU0sQ0FBQyxVQUFVLGVBQWUsS0FBSyxFQUFFLEtBQUs7QUFDL0MsSUFBQUEsSUFBRyxVQUFVLENBQUMsVUFBVSxlQUFlLFNBQVMsRUFBRSxLQUFLO0FBQ3ZELElBQUFBLElBQUcsVUFBVSxDQUFDLFVBQVUsZUFBZSxTQUFTLEVBQUUsS0FBSztBQUN2RCxJQUFBQSxJQUFHLFlBQVksZUFBZSxXQUFXO0FBQ3pDLElBQUFBLElBQUcsYUFBYSxlQUFlLFlBQVk7QUFDM0MsSUFBQUEsSUFBRyxvQkFBb0IsZUFBZSxtQkFBbUI7QUFDekQsSUFBQUEsSUFBRyxhQUFhLGVBQWUsWUFBWTtBQUMzQyxJQUFBQSxJQUFHLGNBQWMsZUFBZSxhQUFhO0FBQzdDLElBQUFBLElBQUcsYUFBYSxlQUFlLFlBQVk7QUFDM0MsSUFBQUEsSUFBRyxjQUFjLGVBQWUsYUFBYTtBQUM3QyxJQUFBQSxJQUFHLGVBQWUsZUFBZSxjQUFjO0FBQy9DLElBQUFBLElBQUcsZUFBZSxlQUFlLGNBQWM7QUFDL0MsSUFBQUEsSUFBRyxnQkFBZ0IsZUFBZSxlQUFlO0FBQ2pELElBQUFBLElBQUcsaUJBQWlCLGVBQWUsZ0JBQWdCO0FBQ25ELElBQUFBLElBQUcsY0FBYyxlQUFlLGFBQWE7QUFDN0MsSUFBQUEsSUFBRyxvQkFBb0IsZUFBZSxtQkFBbUI7QUFDekQsSUFBQUEsSUFBRyxXQUFXLGVBQWUsVUFBVTtBQUN2QyxJQUFBQSxJQUFHLG1CQUFtQixDQUFDLFVBQVUsV0FBVyxPQUFPLGVBQWUsUUFBUSxNQUFNLE9BQU87QUFDdkYsSUFBQUEsSUFBRyxjQUFjLENBQUMsVUFBVSxlQUFlLEtBQUssRUFBRSxLQUFLO0FBQ3ZELElBQUFBLElBQUcsWUFBWSxDQUFDLFVBQVU7QUFDdEIsVUFBSSxDQUFDQSxJQUFHLE9BQU8sS0FBSyxHQUFHO0FBQ25CLGVBQU87QUFBQSxNQUNYO0FBQ0EsVUFBSTtBQUNBLFlBQUksSUFBSSxLQUFLO0FBQ2IsZUFBTztBQUFBLE1BQ1gsU0FDT0MsS0FBSTtBQUNQLGVBQU87QUFBQSxNQUNYO0FBQUEsSUFDSjtBQUdBLElBQUFELElBQUcsU0FBUyxDQUFDLFVBQVUsUUFBUSxLQUFLO0FBRXBDLElBQUFBLElBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztBQUN2QixJQUFBQSxJQUFHLE1BQU0sQ0FBQyxVQUFVLE9BQU8sTUFBTSxLQUFLO0FBQ3RDLElBQUFBLElBQUcsWUFBWSxDQUFDLFVBQVVBLElBQUcsTUFBTSxLQUFLLEtBQUssb0JBQW9CLE9BQU8sS0FBSztBQUM3RSxJQUFBQSxJQUFHLFVBQVUsQ0FBQyxVQUFVLE9BQU8sVUFBVSxLQUFLO0FBQzlDLElBQUFBLElBQUcsY0FBYyxDQUFDLFVBQVUsT0FBTyxjQUFjLEtBQUs7QUFDdEQsSUFBQUEsSUFBRyxjQUFjLENBQUMsVUFBVTtBQUV4QixVQUFJRCxVQUFTLEtBQUssS0FBSyxNQUFNLG1CQUFtQjtBQUM1QyxlQUFPO0FBQUEsTUFDWDtBQUNBLFlBQU0sWUFBWSxPQUFPLGVBQWUsS0FBSztBQUM3QyxhQUFPLGNBQWMsUUFBUSxjQUFjLE9BQU8sZUFBZSxDQUFDLENBQUM7QUFBQSxJQUN2RTtBQUNBLElBQUFDLElBQUcsYUFBYSxDQUFDLFVBQVUsaUJBQWlCLGNBQWMsS0FBSyxDQUFDO0FBQ2hFLFFBQU0sZ0JBQWdCLENBQUMsVUFBVUEsSUFBRyxZQUFZLEtBQUssS0FBSyxTQUFTO0FBQ25FLElBQUFBLElBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQ0EsSUFBRyxnQkFBZ0IsS0FBSyxLQUFLLENBQUNBLElBQUcsVUFBVSxLQUFLLEtBQUssY0FBYyxNQUFNLE1BQU07QUFDMUcsSUFBQUEsSUFBRyxVQUFVLENBQUMsT0FBTyxVQUFVO0FBQzNCLFVBQUlBLElBQUcsT0FBTyxLQUFLLEdBQUc7QUFDbEIsZUFBTyxTQUFTLEtBQUssSUFBSSxHQUFHLEtBQUssS0FBSyxTQUFTLEtBQUssSUFBSSxPQUFPLENBQUM7QUFBQSxNQUNwRTtBQUNBLFVBQUlBLElBQUcsTUFBTSxLQUFLLEtBQUssTUFBTSxXQUFXLEdBQUc7QUFDdkMsZUFBTyxTQUFTLEtBQUssSUFBSSxHQUFHLEtBQUssS0FBSyxTQUFTLEtBQUssSUFBSSxHQUFHLEtBQUs7QUFBQSxNQUNwRTtBQUNBLFlBQU0sSUFBSSxVQUFVLGtCQUFrQixLQUFLLFVBQVUsS0FBSyxDQUFDLEVBQUU7QUFBQSxJQUNqRTtBQUNBLFFBQU0sb0JBQW9CO0FBQzFCLFFBQU0sMEJBQTBCO0FBQUEsTUFDNUI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDSjtBQUNBLElBQUFBLElBQUcsYUFBYSxDQUFDLFVBQVU7QUFDdkIsYUFBT0EsSUFBRyxPQUFPLEtBQUssS0FDbEIsTUFBTSxhQUFhLHFCQUNuQkEsSUFBRyxPQUFPLE1BQU0sUUFBUSxLQUN4QixDQUFDQSxJQUFHLFlBQVksS0FBSyxLQUNyQix3QkFBd0IsTUFBTSxjQUFZLFlBQVksS0FBSztBQUFBLElBQ25FO0FBQ0EsSUFBQUEsSUFBRyxhQUFhLENBQUMsVUFBVTtBQUN2QixVQUFJQyxLQUFJLElBQUlDLEtBQUk7QUFDaEIsVUFBSSxDQUFDLE9BQU87QUFDUixlQUFPO0FBQUEsTUFDWDtBQUVBLFVBQUksWUFBWSxNQUFNRCxNQUFLLE9BQU8sT0FBTyxVQUFVLE9BQU8sUUFBUSxPQUFPLFNBQVMsU0FBUyxHQUFHLEtBQUtBLEdBQUUsSUFBSTtBQUNyRyxlQUFPO0FBQUEsTUFDWDtBQUNBLFVBQUksWUFBWSxNQUFNQyxNQUFLLE9BQU8sY0FBYyxPQUFPLFFBQVEsT0FBTyxTQUFTLFNBQVMsR0FBRyxLQUFLQSxHQUFFLElBQUk7QUFDbEcsZUFBTztBQUFBLE1BQ1g7QUFDQSxhQUFPO0FBQUEsSUFDWDtBQUNBLElBQUFGLElBQUcsYUFBYSxDQUFDLFVBQVVBLElBQUcsT0FBTyxLQUFLLEtBQUtBLElBQUcsVUFBVSxNQUFNLElBQUksS0FBSyxDQUFDQSxJQUFHLFdBQVcsS0FBSztBQUMvRixJQUFBQSxJQUFHLFdBQVcsQ0FBQyxVQUFVLFVBQVUsWUFBWSxVQUFVO0FBQ3pELFFBQU0saUJBQWlCLENBQUMsY0FBYyxDQUFDLFVBQVVBLElBQUcsUUFBUSxLQUFLLEtBQUssS0FBSyxJQUFJLFFBQVEsQ0FBQyxNQUFNO0FBQzlGLElBQUFBLElBQUcsY0FBYyxlQUFlLENBQUM7QUFDakMsSUFBQUEsSUFBRyxhQUFhLGVBQWUsQ0FBQztBQUNoQyxJQUFBQSxJQUFHLGFBQWEsQ0FBQyxVQUFVQSxJQUFHLE1BQU0sS0FBSyxLQUFLLE1BQU0sV0FBVztBQUMvRCxJQUFBQSxJQUFHLGdCQUFnQixDQUFDLFVBQVVBLElBQUcsTUFBTSxLQUFLLEtBQUssTUFBTSxTQUFTO0FBQ2hFLElBQUFBLElBQUcsY0FBYyxDQUFDLFVBQVVBLElBQUcsT0FBTyxLQUFLLEtBQUssTUFBTSxXQUFXO0FBRWpFLElBQUFBLElBQUcsaUJBQWlCLENBQUMsVUFBVUEsSUFBRyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVM7QUFDbEUsUUFBTSxxQkFBcUIsQ0FBQyxVQUFVQSxJQUFHLE9BQU8sS0FBSyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUs7QUFDMUUsSUFBQUEsSUFBRywwQkFBMEIsQ0FBQyxVQUFVQSxJQUFHLFlBQVksS0FBSyxLQUFLLG1CQUFtQixLQUFLO0FBQ3pGLElBQUFBLElBQUcsY0FBYyxDQUFDLFVBQVVBLElBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQ0EsSUFBRyxJQUFJLEtBQUssS0FBSyxDQUFDQSxJQUFHLElBQUksS0FBSyxLQUFLLE9BQU8sS0FBSyxLQUFLLEVBQUUsV0FBVztBQUdsSCxJQUFBQSxJQUFHLGlCQUFpQixDQUFDLFVBQVVBLElBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQ0EsSUFBRyxJQUFJLEtBQUssS0FBSyxDQUFDQSxJQUFHLElBQUksS0FBSyxLQUFLLE9BQU8sS0FBSyxLQUFLLEVBQUUsU0FBUztBQUNuSCxJQUFBQSxJQUFHLFdBQVcsQ0FBQyxVQUFVQSxJQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sU0FBUztBQUN6RCxJQUFBQSxJQUFHLGNBQWMsQ0FBQyxVQUFVQSxJQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sT0FBTztBQUMxRCxJQUFBQSxJQUFHLFdBQVcsQ0FBQyxVQUFVQSxJQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sU0FBUztBQUN6RCxJQUFBQSxJQUFHLGNBQWMsQ0FBQyxVQUFVQSxJQUFHLElBQUksS0FBSyxLQUFLLE1BQU0sT0FBTztBQUMxRCxRQUFNLG1CQUFtQixDQUFDLFFBQVEsV0FBVyxXQUFXO0FBQ3BELFVBQUksQ0FBQ0EsSUFBRyxVQUFVLFNBQVMsR0FBRztBQUMxQixjQUFNLElBQUksVUFBVSxzQkFBc0IsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFO0FBQUEsTUFDekU7QUFDQSxVQUFJLE9BQU8sV0FBVyxHQUFHO0FBQ3JCLGNBQU0sSUFBSSxVQUFVLDBCQUEwQjtBQUFBLE1BQ2xEO0FBQ0EsYUFBTyxPQUFPLEtBQUssUUFBUSxTQUFTO0FBQUEsSUFDeEM7QUFDQSxJQUFBQSxJQUFHLE1BQU0sQ0FBQyxjQUFjLFdBQVc7QUFDL0IsWUFBTSxhQUFhQSxJQUFHLE1BQU0sU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTO0FBQy9ELGFBQU8sV0FBVyxLQUFLLHFCQUFtQixpQkFBaUIsTUFBTSxVQUFVLE1BQU0saUJBQWlCLE1BQU0sQ0FBQztBQUFBLElBQzdHO0FBQ0EsSUFBQUEsSUFBRyxNQUFNLENBQUMsY0FBYyxXQUFXLGlCQUFpQixNQUFNLFVBQVUsT0FBTyxXQUFXLE1BQU07QUFDNUYsUUFBTSxhQUFhLENBQUMsV0FBVyxhQUFhLFVBQVU7QUFDbEQsVUFBSSxDQUFDLFdBQVc7QUFDWixjQUFNLElBQUksVUFBVSw2QkFBNkIsV0FBVyxnQ0FBZ0NBLElBQUcsS0FBSyxDQUFDLEtBQUs7QUFBQSxNQUM5RztBQUFBLElBQ0o7QUFDQSxZQUFRLFNBQVM7QUFBQTtBQUFBLE1BRWIsV0FBVyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxVQUFVLEtBQUssR0FBRyxhQUFhLEtBQUs7QUFBQSxNQUN4RSxRQUFRLENBQUMsVUFBVSxXQUFXQSxJQUFHLE9BQU8sS0FBSyxHQUFHLFVBQVUsS0FBSztBQUFBLE1BQy9ELFFBQVEsQ0FBQyxVQUFVLFdBQVdBLElBQUcsT0FBTyxLQUFLLEdBQUcsVUFBVSxLQUFLO0FBQUEsTUFDL0QsUUFBUSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxPQUFPLEtBQUssR0FBRyxVQUFVLEtBQUs7QUFBQTtBQUFBLE1BRS9ELFdBQVcsQ0FBQyxVQUFVLFdBQVdBLElBQUcsVUFBVSxLQUFLLEdBQUcsWUFBWSxLQUFLO0FBQUEsTUFDdkUsT0FBTyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxNQUFNLEtBQUssR0FBRyxRQUFRLEtBQUs7QUFBQSxNQUMzRCxRQUFRLENBQUMsVUFBVSxXQUFXQSxJQUFHLE9BQU8sS0FBSyxHQUFHLFNBQXNCLEtBQUs7QUFBQSxNQUMzRSxTQUFTLENBQUMsVUFBVSxXQUFXQSxJQUFHLFFBQVEsS0FBSyxHQUFHLFdBQVcsS0FBSztBQUFBLE1BQ2xFLFFBQVEsQ0FBQyxVQUFVLFdBQVdBLElBQUcsT0FBTyxLQUFLLEdBQUcsVUFBVSxLQUFLO0FBQUEsTUFDL0QsZUFBZSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxjQUFjLEtBQUssR0FBRyx3QkFBNEMsS0FBSztBQUFBLE1BQy9HLE9BQU8sQ0FBQyxPQUFPLGNBQWM7QUFDekIsY0FBTUcsVUFBUztBQUNmLFFBQUFBLFFBQU9ILElBQUcsTUFBTSxLQUFLLEdBQUcsU0FBUyxLQUFLO0FBQ3RDLFlBQUksV0FBVztBQUNYLGdCQUFNLFFBQVEsU0FBUztBQUFBLFFBQzNCO0FBQUEsTUFDSjtBQUFBLE1BQ0EsUUFBUSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxPQUFPLEtBQUssR0FBRyxVQUFVLEtBQUs7QUFBQSxNQUMvRCxpQkFBaUIsQ0FBQyxVQUFVLFdBQVdBLElBQUcsZ0JBQWdCLEtBQUssR0FBRyxxQkFBMkMsS0FBSztBQUFBLE1BQ2xILFFBQVEsQ0FBQyxVQUFVLFdBQVdBLElBQUcsT0FBTyxLQUFLLEdBQUcsVUFBVSxLQUFLO0FBQUEsTUFDL0QsVUFBVSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxTQUFTLEtBQUssR0FBRyxZQUEyQixLQUFLO0FBQUEsTUFDcEYsZUFBZSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxjQUFjLEtBQUssR0FBRyxpQkFBcUMsS0FBSztBQUFBLE1BQ3hHLFdBQVcsQ0FBQyxVQUFVLFdBQVdBLElBQUcsVUFBVSxLQUFLLEdBQUcsYUFBYSxLQUFLO0FBQUEsTUFDeEUsZ0JBQWdCLENBQUMsVUFBVSxXQUFXQSxJQUFHLGVBQWUsS0FBSyxHQUFHLGtCQUFrQixLQUFLO0FBQUEsTUFDdkYsZUFBZSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxjQUFjLEtBQUssR0FBRyxrQkFBc0MsS0FBSztBQUFBLE1BQ3pHLFNBQVMsQ0FBQyxVQUFVLFdBQVdBLElBQUcsUUFBUSxLQUFLLEdBQUcsV0FBVyxLQUFLO0FBQUEsTUFDbEUsbUJBQW1CLENBQUMsVUFBVSxXQUFXQSxJQUFHLGtCQUFrQixLQUFLLEdBQUcscUJBQXFCLEtBQUs7QUFBQSxNQUNoRyx3QkFBd0IsQ0FBQyxVQUFVLFdBQVdBLElBQUcsdUJBQXVCLEtBQUssR0FBRywwQkFBMEIsS0FBSztBQUFBO0FBQUEsTUFFL0csZUFBZSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxjQUFjLEtBQUssR0FBRyxpQkFBaUIsS0FBSztBQUFBO0FBQUEsTUFFcEYsZUFBZSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxjQUFjLEtBQUssR0FBRyxZQUFZLEtBQUs7QUFBQSxNQUMvRSxRQUFRLENBQUMsVUFBVSxXQUFXQSxJQUFHLE9BQU8sS0FBSyxHQUFHLFVBQVUsS0FBSztBQUFBLE1BQy9ELE1BQU0sQ0FBQyxVQUFVLFdBQVdBLElBQUcsS0FBSyxLQUFLLEdBQUcsUUFBUSxLQUFLO0FBQUEsTUFDekQsT0FBTyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxNQUFNLEtBQUssR0FBRyxTQUFTLEtBQUs7QUFBQSxNQUM1RCxLQUFLLENBQUMsVUFBVSxXQUFXQSxJQUFHLElBQUksS0FBSyxHQUFHLE9BQU8sS0FBSztBQUFBLE1BQ3RELEtBQUssQ0FBQyxVQUFVLFdBQVdBLElBQUcsSUFBSSxLQUFLLEdBQUcsT0FBTyxLQUFLO0FBQUEsTUFDdEQsU0FBUyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxRQUFRLEtBQUssR0FBRyxXQUFXLEtBQUs7QUFBQSxNQUNsRSxTQUFTLENBQUMsVUFBVSxXQUFXQSxJQUFHLFFBQVEsS0FBSyxHQUFHLFdBQVcsS0FBSztBQUFBLE1BQ2xFLFdBQVcsQ0FBQyxVQUFVLFdBQVdBLElBQUcsVUFBVSxLQUFLLEdBQUcsYUFBYSxLQUFLO0FBQUEsTUFDeEUsWUFBWSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxXQUFXLEtBQUssR0FBRyxjQUFjLEtBQUs7QUFBQSxNQUMzRSxtQkFBbUIsQ0FBQyxVQUFVLFdBQVdBLElBQUcsa0JBQWtCLEtBQUssR0FBRyxxQkFBcUIsS0FBSztBQUFBLE1BQ2hHLFlBQVksQ0FBQyxVQUFVLFdBQVdBLElBQUcsV0FBVyxLQUFLLEdBQUcsY0FBYyxLQUFLO0FBQUEsTUFDM0UsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxlQUFlLEtBQUs7QUFBQSxNQUM5RSxZQUFZLENBQUMsVUFBVSxXQUFXQSxJQUFHLFdBQVcsS0FBSyxHQUFHLGNBQWMsS0FBSztBQUFBLE1BQzNFLGFBQWEsQ0FBQyxVQUFVLFdBQVdBLElBQUcsWUFBWSxLQUFLLEdBQUcsZUFBZSxLQUFLO0FBQUEsTUFDOUUsY0FBYyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxhQUFhLEtBQUssR0FBRyxnQkFBZ0IsS0FBSztBQUFBLE1BQ2pGLGNBQWMsQ0FBQyxVQUFVLFdBQVdBLElBQUcsYUFBYSxLQUFLLEdBQUcsZ0JBQWdCLEtBQUs7QUFBQSxNQUNqRixlQUFlLENBQUMsVUFBVSxXQUFXQSxJQUFHLGNBQWMsS0FBSyxHQUFHLGlCQUFpQixLQUFLO0FBQUEsTUFDcEYsZ0JBQWdCLENBQUMsVUFBVSxXQUFXQSxJQUFHLGVBQWUsS0FBSyxHQUFHLGtCQUFrQixLQUFLO0FBQUEsTUFDdkYsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxlQUFlLEtBQUs7QUFBQSxNQUM5RSxtQkFBbUIsQ0FBQyxVQUFVLFdBQVdBLElBQUcsa0JBQWtCLEtBQUssR0FBRyxxQkFBcUIsS0FBSztBQUFBLE1BQ2hHLFVBQVUsQ0FBQyxVQUFVLFdBQVdBLElBQUcsU0FBUyxLQUFLLEdBQUcsWUFBWSxLQUFLO0FBQUEsTUFDckUsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxPQUFPLEtBQUs7QUFBQSxNQUN0RSxXQUFXLENBQUMsVUFBVSxXQUFXQSxJQUFHLFVBQVUsS0FBSyxHQUFHLHFCQUFxQyxLQUFLO0FBQUEsTUFDaEcsUUFBUSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxPQUFPLEtBQUssR0FBRyxVQUF1QixLQUFLO0FBQUEsTUFDNUUsT0FBTyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxNQUFNLEtBQUssR0FBRyxTQUFxQixLQUFLO0FBQUEsTUFDeEUsS0FBSyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxJQUFJLEtBQUssR0FBRyxPQUFpQixLQUFLO0FBQUEsTUFDaEUsV0FBVyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxVQUFVLEtBQUssR0FBRyxhQUE2QixLQUFLO0FBQUEsTUFDeEYsU0FBUyxDQUFDLFVBQVUsV0FBV0EsSUFBRyxRQUFRLEtBQUssR0FBRyxXQUF5QixLQUFLO0FBQUEsTUFDaEYsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxXQUE2QixLQUFLO0FBQUEsTUFDNUYsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxnQkFBa0MsS0FBSztBQUFBLE1BQ2pHLFlBQVksQ0FBQyxVQUFVLFdBQVdBLElBQUcsV0FBVyxLQUFLLEdBQUcsY0FBK0IsS0FBSztBQUFBLE1BQzVGLFdBQVcsQ0FBQyxVQUFVLFdBQVdBLElBQUcsVUFBVSxLQUFLLEdBQUcsY0FBOEIsS0FBSztBQUFBLE1BQ3pGLFlBQVksQ0FBQyxVQUFVLFdBQVdBLElBQUcsV0FBVyxLQUFLLEdBQUcsZUFBZ0MsS0FBSztBQUFBLE1BQzdGLFlBQVksQ0FBQyxVQUFVLFdBQVdBLElBQUcsV0FBVyxLQUFLLEdBQUcsY0FBYyxLQUFLO0FBQUEsTUFDM0UsWUFBWSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxXQUFXLEtBQUssR0FBRyxrQkFBbUMsS0FBSztBQUFBLE1BQ2hHLFVBQVUsQ0FBQyxVQUFVLFdBQVdBLElBQUcsU0FBUyxLQUFLLEdBQUcsbUJBQWtDLEtBQUs7QUFBQSxNQUMzRixZQUFZLENBQUMsVUFBVSxXQUFXQSxJQUFHLFdBQVcsS0FBSyxHQUFHLGVBQWdDLEtBQUs7QUFBQSxNQUM3RixlQUFlLENBQUMsVUFBVSxXQUFXQSxJQUFHLGNBQWMsS0FBSyxHQUFHLG1CQUF1QyxLQUFLO0FBQUEsTUFDMUcsYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxnQkFBa0MsS0FBSztBQUFBLE1BQ2pHLGdCQUFnQixDQUFDLFVBQVUsV0FBV0EsSUFBRyxlQUFlLEtBQUssR0FBRyxvQkFBeUMsS0FBSztBQUFBLE1BQzlHLHlCQUF5QixDQUFDLFVBQVUsV0FBV0EsSUFBRyx3QkFBd0IsS0FBSyxHQUFHLDhCQUE0RCxLQUFLO0FBQUEsTUFDbkosYUFBYSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxZQUFZLEtBQUssR0FBRyxnQkFBa0MsS0FBSztBQUFBLE1BQ2pHLGdCQUFnQixDQUFDLFVBQVUsV0FBV0EsSUFBRyxlQUFlLEtBQUssR0FBRyxvQkFBeUMsS0FBSztBQUFBLE1BQzlHLFVBQVUsQ0FBQyxVQUFVLFdBQVdBLElBQUcsU0FBUyxLQUFLLEdBQUcsYUFBNEIsS0FBSztBQUFBLE1BQ3JGLGFBQWEsQ0FBQyxVQUFVLFdBQVdBLElBQUcsWUFBWSxLQUFLLEdBQUcsaUJBQW1DLEtBQUs7QUFBQSxNQUNsRyxVQUFVLENBQUMsVUFBVSxXQUFXQSxJQUFHLFNBQVMsS0FBSyxHQUFHLGFBQTRCLEtBQUs7QUFBQSxNQUNyRixhQUFhLENBQUMsVUFBVSxXQUFXQSxJQUFHLFlBQVksS0FBSyxHQUFHLGlCQUFtQyxLQUFLO0FBQUE7QUFBQSxNQUVsRyxhQUFhLENBQUMsVUFBVSxXQUFXQSxJQUFHLFlBQVksS0FBSyxHQUFHLGdCQUFrQyxLQUFLO0FBQUEsTUFDakcsWUFBWSxDQUFDLFVBQVUsV0FBV0EsSUFBRyxXQUFXLEtBQUssR0FBRyxlQUFnQyxLQUFLO0FBQUE7QUFBQSxNQUU3RixrQkFBa0IsQ0FBQyxVQUFVLFdBQVcsV0FBV0EsSUFBRyxpQkFBaUIsVUFBVSxNQUFNLEdBQUcsS0FBNEIsUUFBUTtBQUFBLE1BQzlILFNBQVMsQ0FBQyxPQUFPLFVBQVUsV0FBV0EsSUFBRyxRQUFRLE9BQU8sS0FBSyxHQUFHLFlBQTBCLEtBQUs7QUFBQTtBQUFBLE1BRS9GLEtBQUssQ0FBQyxjQUFjLFdBQVcsV0FBV0EsSUFBRyxJQUFJLFdBQVcsR0FBRyxNQUFNLEdBQUcsMENBQW9ELE1BQU07QUFBQSxNQUNsSSxLQUFLLENBQUMsY0FBYyxXQUFXLFdBQVdBLElBQUcsSUFBSSxXQUFXLEdBQUcsTUFBTSxHQUFHLDJDQUFxRCxNQUFNO0FBQUEsSUFDdkk7QUFHQSxXQUFPLGlCQUFpQkEsS0FBSTtBQUFBLE1BQ3hCLE9BQU87QUFBQSxRQUNILE9BQU9BLElBQUc7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDTixPQUFPQSxJQUFHO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBTTtBQUFBLFFBQ0YsT0FBT0EsSUFBRztBQUFBLE1BQ2Q7QUFBQSxJQUNKLENBQUM7QUFDRCxXQUFPLGlCQUFpQixRQUFRLFFBQVE7QUFBQSxNQUNwQyxPQUFPO0FBQUEsUUFDSCxPQUFPLFFBQVEsT0FBTztBQUFBLE1BQzFCO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDTixPQUFPLFFBQVEsT0FBTztBQUFBLE1BQzFCO0FBQUEsTUFDQSxNQUFNO0FBQUEsUUFDRixPQUFPLFFBQVEsT0FBTztBQUFBLE1BQzFCO0FBQUEsSUFDSixDQUFDO0FBQ0QsWUFBUSxVQUFVQTtBQUVsQixJQUFBSCxRQUFPLFVBQVVHO0FBQ2pCLElBQUFILFFBQU8sUUFBUSxVQUFVRztBQUN6QixJQUFBSCxRQUFPLFFBQVEsU0FBUyxRQUFRO0FBQUE7QUFBQTs7O0FDelpoQztBQUFBLCtDQUFBTyxTQUFBO0FBQUEsSUFBQUEsUUFBQTtBQUFBLE1BQ0UsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsU0FBUyxTQUFTLE9BQU8sTUFBTSxNQUFNO0FBQUEsUUFDMUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFdBQVcsT0FBTztBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxTQUFTLFNBQVMsT0FBTyxRQUFRO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxRQUFRLE9BQU8sU0FBUyxRQUFRLFNBQVMsY0FBYyxNQUFNO0FBQUEsUUFDMUUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFdBQVcsU0FBUyxZQUFZLE9BQU8sTUFBTTtBQUFBLFFBQ2xFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxlQUFlLFFBQVE7QUFBQSxRQUM1QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPLFFBQVEsTUFBTSxNQUFNLFNBQVMsT0FBTztBQUFBLFFBQ3pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxTQUFTLE9BQU8sU0FBUyxRQUFRLFNBQVMsUUFBUSxNQUFNLElBQUk7QUFBQSxRQUNqRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLFNBQVMsU0FBUyxTQUFTLFFBQVE7QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsT0FBTyxPQUFPLGFBQWEsUUFBUSxRQUFRLFFBQVEsTUFBTSxPQUFPO0FBQUEsUUFDdEYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFNBQVMsVUFBVSxNQUFNO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFNBQVMsZUFBZSxVQUFVLE1BQU0sU0FBUyxLQUFLO0FBQUEsUUFDM0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFNBQVMsU0FBUyxXQUFXLFNBQVMsZUFBZSxPQUFPLEtBQUs7QUFBQSxRQUN0RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFFBQVEsT0FBTztBQUFBLFFBQzVCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsT0FBTztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxTQUFTLFdBQVcsV0FBVztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsU0FBUyxPQUFPLFVBQVUsU0FBUyxRQUFRLFNBQVMsU0FBUyxPQUFPLGFBQWEsV0FBVztBQUFBLFFBQ3pHLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxXQUFXLFFBQVEsV0FBVyxXQUFXO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVEsUUFBUSxhQUFhLGNBQWMsZUFBZSxTQUFTLE9BQU87QUFBQSxRQUMvRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0NBQWtDO0FBQUEsUUFDaEMsVUFBWSxDQUFDLFFBQVEsUUFBUSxRQUFRLGFBQWEsY0FBYyxlQUFlLFNBQVMsVUFBVSxPQUFPO0FBQUEsUUFDekcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsUUFBUSxRQUFRLFFBQVEsYUFBYSxjQUFjLGVBQWUsTUFBTTtBQUFBLFFBQ3JGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxRQUFRLFFBQVEsS0FBSyxjQUFjLGVBQWUsTUFBTTtBQUFBLFFBQzdFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsUUFBUSxhQUFhLGNBQWMsZUFBZSxNQUFNO0FBQUEsUUFDckUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxRQUFRLFFBQVEsUUFBUSxhQUFhLGNBQWMsZUFBZSxNQUFNO0FBQUEsUUFDckYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDhCQUFnQztBQUFBLFFBQzlCLFVBQVksQ0FBQyxRQUFRLFNBQVMsWUFBWSxXQUFXLGVBQWUsU0FBUyxRQUFRLFFBQVE7QUFBQSxRQUM3RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxRQUFRLFlBQVksY0FBYyxlQUFlLGFBQWEsVUFBVTtBQUFBLFFBQ3JGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxVQUFVLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsOEJBQWdDO0FBQUEsUUFDOUIsVUFBWSxDQUFDLFFBQVEsU0FBUyxXQUFXLGVBQWUsU0FBUyxRQUFRO0FBQUEsUUFDekUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLFNBQVMsWUFBWSxXQUFXLGVBQWUsU0FBUyxRQUFRO0FBQUEsUUFDckYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLFFBQVEsVUFBVSxPQUFPO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUSxNQUFNO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsUUFBUSxTQUFTLFVBQVUsUUFBUSxVQUFVO0FBQUEsUUFDMUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxRQUFRLFdBQVcsS0FBSztBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxTQUFTLEtBQUs7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsU0FBUyxRQUFRLFNBQVMsUUFBUSxTQUFTO0FBQUEsUUFDaEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFlBQVk7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxnQkFBZ0IsT0FBTyxNQUFNLFNBQVM7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFFBQVEsZUFBZSxPQUFPLE9BQU8sU0FBUztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsZ0JBQWdCLFNBQVMsaUJBQWlCLFdBQVcsV0FBVyxlQUFlLGFBQWEsV0FBVyxVQUFVO0FBQUEsUUFDOUgsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFdBQVcsWUFBWTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxRQUFRLFNBQVMsVUFBVTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxPQUFPLFdBQVc7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFFBQVEsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsU0FBUyxNQUFNO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxRQUFRLFlBQVksV0FBVyxXQUFXLGFBQWEsV0FBVztBQUFBLFFBQy9FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsUUFBUSxXQUFXLFFBQVEsT0FBTztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxTQUFTLE9BQU8sV0FBVztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLGFBQWEsSUFBSTtBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxXQUFXLFdBQVcsSUFBSTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsT0FBTyxRQUFRLFdBQVcsWUFBWTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxPQUFPLFFBQVEsU0FBUztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxPQUFPLGFBQWEsT0FBTztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxnQkFBZ0IsT0FBTyxTQUFTLFFBQVEsSUFBSTtBQUFBLFFBQ2pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsUUFBUSxZQUFZLGdCQUFnQixPQUFPLE9BQU87QUFBQSxRQUMvRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxRQUFRLE9BQU8sU0FBUyxPQUFPO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFFBQVEsTUFBTSxTQUFTLE1BQU07QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFFBQVEsWUFBWSxRQUFRLFVBQVUsUUFBUSxJQUFJO0FBQUEsUUFDL0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFNBQVMsU0FBUyxZQUFZO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFNBQVMsVUFBVSxPQUFPLGNBQWMsT0FBTztBQUFBLFFBQ3BFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxXQUFXLE9BQU87QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsT0FBTyxRQUFRLFNBQVMsT0FBTztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxZQUFZLGFBQWEsT0FBTyxRQUFRLElBQUk7QUFBQSxRQUNqRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsU0FBUyxVQUFVLEtBQUs7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsVUFBVSxhQUFhLFdBQVcsUUFBUSxLQUFLO0FBQUEsUUFDcEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFdBQVcsT0FBTztBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsUUFBUSxPQUFPLEtBQUs7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsTUFBTSxNQUFNO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFdBQVcsU0FBUztBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsUUFBUSxTQUFTLE9BQU8sYUFBYSxTQUFTLEtBQUs7QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFNBQVM7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUSxLQUFLO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTyxTQUFTLFVBQVU7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsWUFBWSxRQUFRLE9BQU8sVUFBVTtBQUFBLFFBQzFELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxRQUFRLFlBQVksVUFBVSxhQUFhLFNBQVM7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLE9BQU8sU0FBUyxXQUFXO0FBQUEsUUFDaEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxTQUFTLGVBQWUsT0FBTyxPQUFPO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLE9BQU8sYUFBYSxVQUFVO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxRQUFRLFVBQVUsVUFBVSxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxRQUFRLFNBQVMsU0FBUyxTQUFTLFFBQVEsWUFBWSxLQUFLO0FBQUEsUUFDekUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsUUFBUSxjQUFjLFVBQVUsUUFBUSxTQUFTO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLE1BQU07QUFBQSxRQUMzQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsUUFBUSxPQUFPLFNBQVM7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFFBQVEsZUFBZSxlQUFlLFFBQVEsT0FBTztBQUFBLFFBQ2xFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsV0FBVyxVQUFVLFdBQVcsTUFBTTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxTQUFTLGVBQWUsU0FBUyxNQUFNO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFNBQVMsVUFBVSxTQUFTLEtBQUs7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFlBQVksUUFBUSxRQUFRLE1BQU07QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsT0FBTztBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsU0FBUyxTQUFTLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxXQUFXLE9BQU8sUUFBUSxhQUFhLFNBQVMsVUFBVSxTQUFTLFNBQVMsWUFBWSxNQUFNO0FBQUEsUUFDM0csTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxPQUFPLFFBQVEsUUFBUSxXQUFXLFNBQVMsVUFBVSxZQUFZLFFBQVE7QUFBQSxRQUN0RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsWUFBWSxVQUFVLE9BQU87QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLGFBQWEsVUFBVSxPQUFPO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxPQUFPLFFBQVEsU0FBUyxhQUFhO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxZQUFZLFdBQVcsS0FBSztBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxRQUFRLFNBQVMsT0FBTztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsVUFBVSxRQUFRLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsUUFBUSxRQUFRLFNBQVMsT0FBTztBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsVUFBVSxRQUFRLFFBQVEsYUFBYSxRQUFRLGNBQWMsT0FBTztBQUFBLFFBQ2pGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsVUFBVSxRQUFRLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFVBQVUsUUFBUSxNQUFNO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxVQUFVLFFBQVEsU0FBUyxVQUFVLFFBQVE7QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFVBQVUsU0FBUyxRQUFRLE9BQU8sUUFBUSxTQUFTLEtBQUs7QUFBQSxRQUNyRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFVBQVUsTUFBTTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxXQUFXLFVBQVUsUUFBUTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFdBQVcsVUFBVSxPQUFPLGVBQWUsT0FBTztBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxVQUFVLFlBQVksWUFBWSxLQUFLO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLFdBQVcsV0FBVyxVQUFVLFlBQVksU0FBUyxNQUFNLE1BQU07QUFBQSxRQUN2RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLFNBQVM7QUFBQSxRQUMvQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLFlBQVksT0FBTyxXQUFXLFFBQVEsU0FBUyxVQUFVLFFBQVEsUUFBUSxNQUFNO0FBQUEsUUFDNUYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxjQUFjLE1BQU0sV0FBVyxNQUFNO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxTQUFTLFlBQVksUUFBUSxPQUFPLFVBQVUsTUFBTTtBQUFBLFFBQ2pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsV0FBVyxRQUFRLE9BQU87QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVEsVUFBVTtBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxVQUFVO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEdBQUs7QUFBQSxRQUNILFVBQVksQ0FBQyxXQUFXLFVBQVUsUUFBUSxTQUFTLFdBQVcsS0FBSztBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsV0FBVyxTQUFTLFdBQVcsTUFBTSxNQUFNO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxXQUFXLFFBQVEsWUFBWSxRQUFRLEtBQUs7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFdBQVcsVUFBVSxVQUFVO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxXQUFXLGFBQWEsU0FBUyxNQUFNO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxPQUFPLFFBQVEsUUFBUSxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRLFFBQVEsV0FBVyxVQUFVO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLE9BQU87QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsTUFBTTtBQUFBLFFBQzNCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsYUFBYSxPQUFPO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFdBQVcsYUFBYSxJQUFJO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxXQUFXLFFBQVEsYUFBYSxJQUFJO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxXQUFXLFFBQVEsYUFBYSxNQUFNO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxhQUFhLFdBQVcsUUFBUSxNQUFNO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxXQUFXLFFBQVEsYUFBYSxPQUFPO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxRQUFRLFdBQVcsUUFBUSxVQUFVLFVBQVU7QUFBQSxRQUM1RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0NBQW9DO0FBQUEsUUFDbEMsVUFBWSxDQUFDLFFBQVEsV0FBVyxNQUFNO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFdBQVcsU0FBUztBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxXQUFXLFlBQVksaUJBQWlCLFNBQVM7QUFBQSxRQUN0RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFFBQVEsT0FBTztBQUFBLFFBQzVCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFFBQVEsV0FBVyxTQUFTLFdBQVc7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyw0QkFBNEIsY0FBYyxTQUFTLFNBQVM7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsT0FBTztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsV0FBVyxNQUFNO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLE1BQU07QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsU0FBUztBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxTQUFTO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxRQUFRO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsUUFBUSxPQUFPLFNBQVMsT0FBTztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxTQUFTLFNBQVMsUUFBUSxLQUFLO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLGFBQWE7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFFBQVEsVUFBVSxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxRQUFRLFVBQVUsU0FBUyxTQUFTLE1BQU07QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxRQUFRLFVBQVUsU0FBUyxRQUFRLE9BQU8sTUFBTTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxPQUFPLFFBQVEsU0FBUztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsa0JBQWtCLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLFVBQVU7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxrQkFBa0IsUUFBUTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsWUFBWSxVQUFVLE9BQU8sT0FBTyxVQUFVLE9BQU8sV0FBVztBQUFBLFFBQzdFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxTQUFTLE1BQU07QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLFVBQVUsUUFBUSxVQUFVLFFBQVE7QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLE9BQU8sUUFBUSxPQUFPLFVBQVUsT0FBTyxRQUFRO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLGFBQWE7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsU0FBUyxVQUFVLGdCQUFnQjtBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsU0FBUyxRQUFRLE9BQU8sT0FBTyxTQUFTLFFBQVE7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsVUFBVSxTQUFTLFFBQVEsT0FBTyxTQUFTLFFBQVE7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxVQUFVLFNBQVMsWUFBWSxRQUFRO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxVQUFVLFVBQVUsWUFBWSxTQUFTLE9BQU87QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFFBQVEsVUFBVSxZQUFZLE9BQU87QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsVUFBVSxPQUFPLFNBQVMsZUFBZSxVQUFVLE9BQU8sUUFBUTtBQUFBLFFBQ3hGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsT0FBTyxVQUFVLE9BQU8sU0FBUyxlQUFlLFVBQVUsS0FBSztBQUFBLFFBQzVFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwyQkFBNkI7QUFBQSxRQUMzQixVQUFZLENBQUMsVUFBVSxTQUFTLE9BQU8sU0FBUyxnQkFBZ0IsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUMxRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EseUJBQTJCO0FBQUEsUUFDekIsVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPLE9BQU8sU0FBUyxnQkFBZ0IsVUFBVSxPQUFPO0FBQUEsUUFDdEYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxNQUFNLE1BQU0sV0FBVyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQzlELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsTUFBTSxNQUFNLFdBQVcsUUFBUSxPQUFPLE9BQU87QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFNBQVMsT0FBTyxhQUFhLFVBQVUsT0FBTztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsU0FBUyxPQUFPLFdBQVc7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFVBQVUsU0FBUyxhQUFhLGNBQWMsU0FBUyxPQUFPO0FBQUEsUUFDM0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxVQUFVLFNBQVMsYUFBYSxjQUFjLE9BQU8sT0FBTztBQUFBLFFBQ3pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFdBQVcsWUFBWSxTQUFTLE9BQU87QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFdBQVcsWUFBWSxPQUFPLE9BQU87QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTztBQUFBLFFBQ25DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFlBQVksU0FBUyxPQUFPO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxZQUFZLE9BQU8sT0FBTztBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFlBQVksZUFBZSxTQUFTLE9BQU87QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFlBQVksZUFBZSxPQUFPLE9BQU87QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxjQUFjLGFBQWEsU0FBUyxPQUFPO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxjQUFjLGFBQWEsT0FBTyxPQUFPO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxZQUFZLGNBQWMsU0FBUyxPQUFPO0FBQUEsUUFDdkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxZQUFZLGNBQWMsT0FBTyxPQUFPO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxTQUFTLGFBQWEsWUFBWSxjQUFjLFlBQVksU0FBUyxTQUFTLFVBQVUsVUFBVTtBQUFBLFFBQy9HLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsU0FBUyxhQUFhLFlBQVksY0FBYyxZQUFZLE9BQU8sU0FBUyxVQUFVLFVBQVU7QUFBQSxRQUM3RyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFlBQVksV0FBVyxTQUFTLE9BQU87QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFlBQVksV0FBVyxPQUFPLE9BQU87QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFdBQVcsU0FBUyxTQUFTLFFBQVE7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxXQUFXLE9BQU8sU0FBUyxRQUFRO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxhQUFhLFdBQVcsWUFBWSxhQUFhLFNBQVMsT0FBTztBQUFBLFFBQzlFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLGFBQWEsV0FBVyxZQUFZLGFBQWEsT0FBTyxPQUFPO0FBQUEsUUFDNUUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsV0FBVyxTQUFTLE9BQU87QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFdBQVcsT0FBTyxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxXQUFXLFNBQVMsT0FBTztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsV0FBVyxPQUFPLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFdBQVcsU0FBUyxTQUFTLE9BQU87QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFdBQVcsU0FBUyxPQUFPLE9BQU87QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFNBQVMsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTLFVBQVUsT0FBTyxPQUFPO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxXQUFXLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxXQUFXLFNBQVMsT0FBTyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxTQUFTLFVBQVUsUUFBUSxXQUFXLGFBQWE7QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxPQUFPLFFBQVEsUUFBUSxRQUFRLGFBQWE7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFNBQVMsVUFBVSxRQUFRLE9BQU8sWUFBWSxXQUFXLGFBQWE7QUFBQSxRQUNuRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLE9BQU8sUUFBUSxRQUFRLE9BQU8sWUFBWSxRQUFRLGFBQWE7QUFBQSxRQUM1RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFNBQVMsVUFBVSxRQUFRLGtCQUFrQjtBQUFBLFFBQzFELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsWUFBWSxPQUFPLFFBQVEsUUFBUSxrQkFBa0I7QUFBQSxRQUNsRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFNBQVMsVUFBVSxRQUFRLE9BQU87QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLE9BQU8sUUFBUSxRQUFRLFVBQVU7QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFNBQVMsUUFBUTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsU0FBUyxRQUFRO0FBQUEsUUFDOUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxPQUFPLFFBQVEsU0FBUztBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFNBQVMsVUFBVSxVQUFVLGNBQWM7QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLE9BQU8sUUFBUSxXQUFXLFVBQVUsY0FBYztBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsU0FBUyxRQUFRO0FBQUEsUUFDOUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxPQUFPLE1BQU07QUFBQSxRQUMxQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsVUFBVSxZQUFZLE9BQU87QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLE9BQU8sUUFBUSxRQUFRO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxTQUFTLFFBQVE7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLE9BQU8sTUFBTTtBQUFBLFFBQzFCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxTQUFTLE1BQU07QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLE1BQU07QUFBQSxRQUNuQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxXQUFXLE1BQU07QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsU0FBUyxVQUFVLFNBQVMsU0FBUyxTQUFTLE9BQU87QUFBQSxRQUMxRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLE9BQU8sT0FBTyxRQUFRLFNBQVMsU0FBUyxNQUFNO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxVQUFVLFlBQVksV0FBVyxTQUFTLE9BQU87QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFlBQVksV0FBVyxPQUFPO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsU0FBUyxXQUFXLFlBQVksUUFBUSxXQUFXLFFBQVE7QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLE9BQU8sV0FBVyxZQUFZLFFBQVEsU0FBUztBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFNBQVMsUUFBUSxTQUFTLFNBQVMsUUFBUTtBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsU0FBUyxRQUFRLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsUUFBUSxTQUFTLEtBQUs7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsT0FBTyxPQUFPLFFBQVE7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLFNBQVMsT0FBTyxNQUFNO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFVBQVUsU0FBUyxRQUFRLFFBQVEsVUFBVSxRQUFRLGFBQWEsY0FBYyxVQUFVO0FBQUEsUUFDL0csTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHVCQUF5QjtBQUFBLFFBQ3ZCLFVBQVksQ0FBQyxRQUFRLFVBQVUsUUFBUSxRQUFRLFlBQVksY0FBYyxVQUFVLE9BQU87QUFBQSxRQUMxRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EseUJBQTJCO0FBQUEsUUFDekIsVUFBWSxDQUFDLFFBQVEsY0FBYyxVQUFVLFFBQVEsUUFBUSxVQUFVLFVBQVUsT0FBTztBQUFBLFFBQ3hGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFNBQVMsVUFBVSxNQUFNO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxPQUFPLFFBQVEsS0FBSztBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsT0FBTyxRQUFRLE9BQU8sV0FBVztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsU0FBUyxVQUFVLFFBQVEsV0FBVztBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsU0FBUyxVQUFVLFFBQVEsWUFBWSxlQUFlLE9BQU87QUFBQSxRQUMxRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxPQUFPLFFBQVEsT0FBTyxZQUFZLGVBQWUsT0FBTztBQUFBLFFBQ3JFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsVUFBVSxRQUFRLFNBQVMsU0FBUyxhQUFhO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTyxTQUFTLGFBQWE7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFFBQVEsU0FBUyxNQUFNO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTyxNQUFNO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTLFFBQVEsVUFBVSxRQUFRLFNBQVMsT0FBTztBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsT0FBTyxPQUFPLFFBQVEsUUFBUSxTQUFTLEtBQUs7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFVBQVUsUUFBUSxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLE9BQU8sS0FBSztBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsUUFBUSxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLE9BQU8sS0FBSztBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsVUFBVSxRQUFRLFNBQVMsT0FBTyxhQUFhLGVBQWUsU0FBUztBQUFBLFFBQ3BGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFFBQVEsT0FBTyxPQUFPLE9BQU8sYUFBYSxlQUFlLFNBQVM7QUFBQSxRQUMvRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFFBQVEsT0FBTztBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsUUFBUSxPQUFPLEtBQUs7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFFBQVEsU0FBUyxNQUFNO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLE9BQU8sT0FBTyxNQUFNO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxVQUFVLFNBQVMsT0FBTyxhQUFhLE9BQU87QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFFBQVEsT0FBTyxPQUFPLGFBQWEsT0FBTztBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSw2QkFBK0I7QUFBQSxRQUM3QixVQUFZLENBQUMsUUFBUSxRQUFRLFFBQVEsYUFBYSxTQUFTLFVBQVUsY0FBYyxVQUFVO0FBQUEsUUFDN0YsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLCtCQUFpQztBQUFBLFFBQy9CLFVBQVksQ0FBQyxRQUFRLFFBQVEsUUFBUSxhQUFhLFNBQVMsVUFBVSxjQUFjLFVBQVU7QUFBQSxRQUM3RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsMkJBQTZCO0FBQUEsUUFDM0IsVUFBWSxDQUFDLFFBQVEsUUFBUSxRQUFRLGFBQWEsU0FBUyxVQUFVLGNBQWMsVUFBVTtBQUFBLFFBQzdGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsUUFBUSxjQUFjLFFBQVEsUUFBUSxVQUFVLFVBQVU7QUFBQSxRQUN2RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esd0JBQTBCO0FBQUEsUUFDeEIsVUFBWSxDQUFDLFFBQVEsY0FBYyxRQUFRLFFBQVEsVUFBVSxVQUFVO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxRQUFRLGNBQWMsUUFBUSxRQUFRLFVBQVUsVUFBVTtBQUFBLFFBQ3ZFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsT0FBTyxPQUFPLFVBQVUsVUFBVSxVQUFVLE9BQU87QUFBQSxRQUM1RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQzFELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwyQkFBNkI7QUFBQSxRQUMzQixVQUFZLENBQUMsUUFBUSxXQUFXLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDBCQUE0QjtBQUFBLFFBQzFCLFVBQVksQ0FBQyxRQUFRLFdBQVcsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsNEJBQThCO0FBQUEsUUFDNUIsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsUUFBUSxXQUFXLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHlCQUEyQjtBQUFBLFFBQ3pCLFVBQVksQ0FBQyxRQUFRLFdBQVcsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsNkJBQStCO0FBQUEsUUFDN0IsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSw0QkFBOEI7QUFBQSxRQUM1QixVQUFZLENBQUMsUUFBUSxXQUFXLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDhCQUFnQztBQUFBLFFBQzlCLFVBQVksQ0FBQyxRQUFRLFdBQVcsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsUUFBUSxXQUFXLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHlCQUEyQjtBQUFBLFFBQ3pCLFVBQVksQ0FBQyxRQUFRLFdBQVcsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esd0JBQTBCO0FBQUEsUUFDeEIsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwwQkFBNEI7QUFBQSxRQUMxQixVQUFZLENBQUMsUUFBUSxXQUFXLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLFVBQVUsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFFBQVEsVUFBVSxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx1QkFBeUI7QUFBQSxRQUN2QixVQUFZLENBQUMsUUFBUSxVQUFVLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxRQUFRLFVBQVUsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM1RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esd0JBQTBCO0FBQUEsUUFDeEIsVUFBWSxDQUFDLFFBQVEsVUFBVSxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsUUFBUSxVQUFVLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxRQUFRLFVBQVUsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFFBQVEsVUFBVSxVQUFVLFNBQVMsVUFBVTtBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsUUFBUSxVQUFVLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxRQUFRLFVBQVUsVUFBVSxTQUFTLFVBQVU7QUFBQSxRQUM1RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsV0FBVyxNQUFNO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxVQUFVLFVBQVUsU0FBUyxRQUFRO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLGNBQWMsYUFBYSxTQUFTO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxXQUFXLGlCQUFpQixRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxXQUFXLFNBQVMsVUFBVSxTQUFTLEtBQUs7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFdBQVcsVUFBVTtBQUFBLFFBQ2xDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxVQUFVLFVBQVUsV0FBVyxTQUFTLFVBQVU7QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFdBQVcsV0FBVyxVQUFVO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxZQUFZLFVBQVUsU0FBUyxRQUFRLFdBQVcsU0FBUyxRQUFRO0FBQUEsUUFDaEYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxTQUFTLFdBQVcsU0FBUyxVQUFVLFVBQVU7QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsUUFBUSxXQUFXLE9BQU87QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsUUFBUSxRQUFRLFFBQVEsYUFBYSxZQUFZO0FBQUEsUUFDdEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFlBQVksV0FBVyxPQUFPO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFdBQVcsU0FBUztBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsV0FBVyxTQUFTLFVBQVUsU0FBUyxVQUFVO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxTQUFTLFdBQVcsWUFBWTtBQUFBLFFBQzdDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxTQUFTO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxXQUFXLE1BQU07QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTLFVBQVUsVUFBVTtBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsZUFBZSxXQUFXLFFBQVE7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLGFBQWEsU0FBUztBQUFBLFFBQ25DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxVQUFVLFNBQVM7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsVUFBVSxTQUFTO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxXQUFXLGVBQWUsVUFBVSxRQUFRLFFBQVE7QUFBQSxRQUNqRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsYUFBYSxVQUFVLFFBQVE7QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLE9BQU8sVUFBVTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsZ0JBQWdCLE9BQU87QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxVQUFVLFdBQVcsVUFBVSxjQUFjLGNBQWMsT0FBTyxPQUFPLFNBQVMsU0FBUyxXQUFXO0FBQUEsUUFDbkgsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLE9BQU8sVUFBVSxXQUFXLE1BQU07QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFdBQVcsYUFBYSxPQUFPLFVBQVU7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFdBQVcsUUFBUTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsT0FBTyxlQUFlLFVBQVU7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFdBQVcsZUFBZSxTQUFTLFNBQVMsVUFBVTtBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsV0FBVyxhQUFhLGVBQWUsVUFBVTtBQUFBLFFBQzlELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsWUFBWSxhQUFhLFFBQVEsT0FBTyxTQUFTLE9BQU8sUUFBUTtBQUFBLFFBQzdFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsV0FBVyxlQUFlLFlBQVksU0FBUyxRQUFRLE1BQU07QUFBQSxRQUMxRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLGNBQWMsUUFBUTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsV0FBVyxXQUFXLFlBQVksY0FBYyxXQUFXLFdBQVcsV0FBVyxPQUFPLFlBQVk7QUFBQSxRQUNqSCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFdBQVcsUUFBUSxTQUFTO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFVBQVUsVUFBVSxRQUFRLFNBQVMsT0FBTyxVQUFVO0FBQUEsUUFDN0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFFBQVEsVUFBVSxPQUFPLFFBQVE7QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFVBQVUsVUFBVSxnQkFBZ0IsUUFBUTtBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxVQUFVLFVBQVUsT0FBTyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQ2xFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsVUFBVSxVQUFVLE1BQU07QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFVBQVUsVUFBVSxNQUFNO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxVQUFVLFVBQVUsT0FBTztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLE9BQU8sVUFBVSxRQUFRLFVBQVUsTUFBTTtBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxRQUFRLE1BQU0sVUFBVSxVQUFVLE9BQU8sTUFBTTtBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsVUFBVSxRQUFRLFFBQVE7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsTUFBTTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxVQUFVLFNBQVMsTUFBTTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxVQUFVLFNBQVMsS0FBSztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxZQUFZLFNBQVMsT0FBTyxVQUFVLE9BQU87QUFBQSxRQUNwRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsU0FBUyxVQUFVLFNBQVM7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFVBQVUsVUFBVSxRQUFRO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ2pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFVBQVUsVUFBVSxRQUFRO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsS0FBSztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxTQUFTLFVBQVUsTUFBTTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFVBQVUsT0FBTyxTQUFTLFFBQVE7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsV0FBVyxNQUFNO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLFdBQVcsT0FBTyxRQUFRLFFBQVEsTUFBTTtBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsV0FBVyxRQUFRLE1BQU07QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFVBQVUsVUFBVSxRQUFRLFNBQVM7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFVBQVUsVUFBVSxNQUFNO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxNQUFNO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFVBQVUsU0FBUyxTQUFTO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFNBQVMsUUFBUTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVU7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsVUFBVSxVQUFVLE9BQU8sVUFBVSxPQUFPO0FBQUEsUUFDbkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFVBQVUsVUFBVSxNQUFNO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFVBQVUsVUFBVSxhQUFhO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFVBQVUsT0FBTztBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsU0FBUztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsS0FBSztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsVUFBVSxXQUFXLE9BQU87QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsVUFBVTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsVUFBVSxVQUFVO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFlBQVk7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFVBQVUsUUFBUSxVQUFVLFFBQVEsUUFBUTtBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxVQUFVLFNBQVM7QUFBQSxRQUMxQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFVBQVUsVUFBVSxZQUFZLGlCQUFpQixTQUFTO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFVBQVUsWUFBWSxpQkFBaUIsZ0JBQWdCLGNBQWMsU0FBUztBQUFBLFFBQ3JHLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxRQUFRLFVBQVUsVUFBVTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsUUFBUSxTQUFTLFNBQVMsTUFBTTtBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRLFFBQVE7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsVUFBVSxRQUFRLE9BQU8sT0FBTztBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxVQUFVLFFBQVEsT0FBTyxTQUFTLFdBQVcsUUFBUSxPQUFPO0FBQUEsUUFDbkYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxPQUFPLFNBQVMsUUFBUSxRQUFRLE9BQU87QUFBQSxRQUNoRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFVBQVUsVUFBVSxPQUFPLE9BQU87QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsVUFBVSxPQUFPLE9BQU87QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFVBQVUsVUFBVSxXQUFXLFVBQVUsV0FBVztBQUFBLFFBQ2pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsV0FBVyxRQUFRO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsVUFBVSxNQUFNLEtBQUs7QUFBQSxRQUM1QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsSUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLFVBQVUsT0FBTyxNQUFNO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLE1BQU0sVUFBVSxVQUFVLE9BQU8sTUFBTTtBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxVQUFVLFNBQVMsU0FBUztBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsVUFBVSxPQUFPLFVBQVUsTUFBTTtBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxVQUFVLE9BQU8sVUFBVSxNQUFNO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLFVBQVUsU0FBUyxRQUFRO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxNQUFNLFFBQVE7QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsVUFBVSxNQUFNO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFFBQVE7QUFBQSxRQUMvQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFVBQVUsU0FBUyxRQUFRO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFNBQVMsUUFBUTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxVQUFVLFFBQVE7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsVUFBVSxTQUFTO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxVQUFVLE1BQU07QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFVBQVUsTUFBTTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFBQSxRQUNwRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLE9BQU8sVUFBVSxPQUFPLFVBQVUsS0FBSztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRLE9BQU8sTUFBTTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxVQUFVLE9BQU8sU0FBUyxRQUFRO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFVBQVUsVUFBVSxVQUFVO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFVBQVUsT0FBTztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFVBQVUsUUFBUTtBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsVUFBVSxVQUFVLGFBQWEsUUFBUSxPQUFPLFdBQVc7QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsVUFBVSxPQUFPO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ2pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxVQUFVLFFBQVEsVUFBVSxNQUFNO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLFVBQVUsVUFBVSxTQUFTLFNBQVM7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsVUFBVSxVQUFVLFNBQVM7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsWUFBWSxjQUFjLE9BQU8sT0FBTyxPQUFPLE1BQU07QUFBQSxRQUM1RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsUUFBUSxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsVUFBVSxRQUFRLFVBQVUsV0FBVyxPQUFPO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxhQUFhLFNBQVMsUUFBUTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsWUFBWSxZQUFZLFlBQVksUUFBUSxhQUFhO0FBQUEsUUFDdEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxTQUFTLFFBQVE7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFNBQVMsUUFBUTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsU0FBUyxhQUFhLFVBQVUsVUFBVSxTQUFTLFVBQVUsVUFBVTtBQUFBLFFBQ3BGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxVQUFVLFNBQVMsUUFBUSxRQUFRO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxhQUFhLFNBQVMsWUFBWSxRQUFRLFNBQVMsTUFBTTtBQUFBLFFBQ3RFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsYUFBYSxTQUFTLFVBQVUsU0FBUyxRQUFRO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxhQUFhLFNBQVMsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsVUFBVSxhQUFhLFNBQVMsaUJBQWlCO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsU0FBUyxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxTQUFTLFFBQVEsYUFBYSxTQUFTLFFBQVEsUUFBUTtBQUFBLFFBQzlFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsVUFBVSxTQUFTLGFBQWEsUUFBUTtBQUFBLFFBQ3JELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxTQUFTLGFBQWEsTUFBTSxNQUFNO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxVQUFVLE9BQU87QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsYUFBYSxXQUFXLE9BQU87QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFVBQVUsU0FBUyxNQUFNO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxXQUFXLGNBQWMsUUFBUSxRQUFRO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsU0FBUyxVQUFVLFFBQVE7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFdBQVcsU0FBUyxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxXQUFXLFFBQVE7QUFBQSxRQUMxQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFVBQVUsU0FBUyxVQUFVLFFBQVE7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFdBQVcsVUFBVSxRQUFRO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTLFdBQVc7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsVUFBVTtBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsYUFBYSxTQUFTLFdBQVcsVUFBVSxNQUFNO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLE9BQU8sT0FBTztBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxVQUFVLFlBQVksTUFBTTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsU0FBUyxTQUFTLE9BQU8sZUFBZTtBQUFBLFFBQ3JELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFNBQVMsU0FBUyxlQUFlO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxTQUFTLFNBQVMsUUFBUSxlQUFlO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFVBQVUsWUFBWSxVQUFVLFNBQVMsU0FBUyxXQUFXLE9BQU87QUFBQSxRQUMzRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFVBQVUsWUFBWSxVQUFVLFNBQVMsU0FBUyxXQUFXLFNBQVMscUJBQXFCO0FBQUEsUUFDeEcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxVQUFVLFlBQVksVUFBVSxTQUFTLFNBQVMsV0FBVyxPQUFPO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxVQUFVLFlBQVksVUFBVSxTQUFTLFNBQVMsV0FBVyxPQUFPO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFlBQVksVUFBVSxTQUFTLFNBQVMsV0FBVyxPQUFPO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxVQUFVLFlBQVksVUFBVSxTQUFTLFNBQVMsV0FBVyxPQUFPO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxVQUFVLFlBQVksVUFBVSxTQUFTLFNBQVMsV0FBVyxPQUFPO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxVQUFVLFNBQVMsT0FBTyxRQUFRLFlBQVksVUFBVSxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQ2hHLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsU0FBUyxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQ2pGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsU0FBUyxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQ2pGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSw4QkFBZ0M7QUFBQSxRQUM5QixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsU0FBUyxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQ2pGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSw2QkFBK0I7QUFBQSxRQUM3QixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsU0FBUyxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQ2pGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsV0FBVyxLQUFLO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsU0FBUyxTQUFTLE9BQU8sV0FBVyxPQUFPO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLFFBQVE7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsV0FBVyxXQUFXLFFBQVEsT0FBTztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsT0FBTztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxTQUFTLFNBQVMsUUFBUSxXQUFXLFFBQVEsT0FBTztBQUFBLFFBQzFFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsT0FBTztBQUFBLFFBQ3BCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsV0FBVyxVQUFVLGNBQWMsVUFBVSxTQUFTLFFBQVE7QUFBQSxRQUMzRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esd0JBQTBCO0FBQUEsUUFDeEIsVUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxXQUFXLFVBQVUsVUFBVSxXQUFXLFFBQVEsUUFBUTtBQUFBLFFBQ3ZFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsU0FBUztBQUFBLFFBQ3RCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx1QkFBeUI7QUFBQSxRQUN2QixVQUFZLENBQUMsU0FBUztBQUFBLFFBQ3RCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsV0FBVyxLQUFLO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxTQUFTO0FBQUEsUUFDdEIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLCtCQUFpQztBQUFBLFFBQy9CLFVBQVksQ0FBQyxXQUFXLFdBQVc7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLFdBQVcsU0FBUztBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsV0FBVyxXQUFXLGtCQUFrQixNQUFNO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxPQUFPLFFBQVEsT0FBTztBQUFBLFFBQ25DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxXQUFXLGFBQWEsYUFBYSxPQUFPO0FBQUEsUUFDakUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxXQUFXLGFBQWEsTUFBTTtBQUFBLFFBQ3ZFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsU0FBUztBQUFBLFFBQ3RCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsVUFBVSxVQUFVLFFBQVEsV0FBVyxhQUFhLFFBQVEsVUFBVSxjQUFjO0FBQUEsUUFDakcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxXQUFXLGFBQWEsUUFBUSxRQUFRO0FBQUEsUUFDakYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxRQUMxQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsT0FBTyxRQUFRLFFBQVEsUUFBUSxTQUFTLE1BQU07QUFBQSxRQUNuRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFdBQVcsV0FBVyxTQUFTO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxTQUFTO0FBQUEsUUFDdEIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsV0FBVyxRQUFRO0FBQUEsUUFDaEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTLFdBQVcsUUFBUTtBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxRQUFRLFVBQVUsUUFBUTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsU0FBUyxRQUFRLE1BQU07QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLE9BQU8sU0FBUyxRQUFRLFVBQVUsV0FBVyxVQUFVO0FBQUEsUUFDcEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxTQUFTLFFBQVE7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsT0FBTyxRQUFRO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLFVBQVUsTUFBTTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxTQUFTLFVBQVUsUUFBUTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsU0FBUyxRQUFRO0FBQUEsUUFDOUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxTQUFTLFFBQVEsUUFBUTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsU0FBUyxRQUFRLFVBQVUsUUFBUTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxRQUFRLE1BQU07QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFNBQVMsUUFBUSxRQUFRO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFVBQVUsTUFBTTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxPQUFPO0FBQUEsUUFDNUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFVBQVUsTUFBTTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsU0FBUyxVQUFVLE1BQU07QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsVUFBVSxRQUFRLE1BQU07QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFNBQVMsTUFBTTtBQUFBLFFBQzVCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsU0FBUyxRQUFRLFVBQVU7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsTUFBTTtBQUFBLFFBQzVCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxRQUFRLFdBQVc7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsYUFBYSxVQUFVLE1BQU07QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLGFBQWEsVUFBVSxRQUFRLFdBQVc7QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsUUFBUSxRQUFRO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxhQUFhLFFBQVEsUUFBUTtBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxTQUFTLFVBQVUsT0FBTztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsUUFBUSxTQUFTLGFBQWEsUUFBUTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxhQUFhLE9BQU87QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLGFBQWEsU0FBUyxZQUFZLFdBQVcsUUFBUSxTQUFTO0FBQUEsUUFDbkYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUSxRQUFRO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxRQUMxQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVEsU0FBUyxTQUFTO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxTQUFTLGFBQWEsT0FBTztBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsUUFBUSxTQUFTLFFBQVE7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsU0FBUyxVQUFVLFNBQVM7QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsU0FBUyxTQUFTO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFNBQVM7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsV0FBVyxXQUFXO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLGFBQWEsUUFBUSxPQUFPLE1BQU07QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsT0FBTyxRQUFRLE9BQU8sUUFBUSxZQUFZLFVBQVU7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsYUFBYSxhQUFhLFVBQVU7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhLFFBQVEsV0FBVyxRQUFRO0FBQUEsUUFDckUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUSxRQUFRLFdBQVc7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFVBQVU7QUFBQSxRQUN2QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLFVBQVUsYUFBYSxRQUFRO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLGFBQWEsV0FBVyxLQUFLO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLGFBQWEsUUFBUSxnQkFBZ0IsYUFBYSxhQUFhO0FBQUEsUUFDcEYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFNBQVMsV0FBVztBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsUUFBUSxhQUFhLFdBQVcsTUFBTTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsUUFBUSxhQUFhO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLE9BQU87QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLE1BQU07QUFBQSxRQUMzQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVEsV0FBVyxRQUFRO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFNBQVM7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsU0FBUztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVM7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFFBQVEsV0FBVyxhQUFhLFFBQVE7QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsWUFBWSxVQUFVLFlBQVk7QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsUUFBUSxNQUFNO0FBQUEsUUFDbkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFNBQVMsT0FBTyxTQUFTLGNBQWMsUUFBUSxTQUFTLFlBQVksVUFBVSxPQUFPO0FBQUEsUUFDMUcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxRQUFRLFVBQVU7QUFBQSxRQUMvQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsUUFBUSxZQUFZLE1BQU07QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsWUFBWSxLQUFLO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFNBQVMsT0FBTyxRQUFRO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFVBQVU7QUFBQSxRQUMvQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUSxVQUFVO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFVBQVU7QUFBQSxRQUMvQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsV0FBVyxTQUFTLFlBQVksWUFBWSxNQUFNO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxPQUFPLFdBQVcsUUFBUTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxPQUFPLFNBQVM7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsT0FBTyxXQUFXLFFBQVE7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsV0FBVyxRQUFRO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFNBQVM7QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsV0FBVyxVQUFVLE9BQU87QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVEsUUFBUTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxXQUFXLE1BQU07QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFdBQVcsTUFBTTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsU0FBUyxXQUFXLFNBQVMsT0FBTztBQUFBLFFBQ2pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxTQUFTLFNBQVMsT0FBTztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFFBQVEsU0FBUyxXQUFXLE9BQU87QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFFBQVEsaUJBQWlCLFNBQVMsT0FBTztBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxZQUFZLFdBQVcsWUFBWTtBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUSxhQUFhLFNBQVMsU0FBUztBQUFBLFFBQ3JFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsWUFBWSxTQUFTLEtBQUs7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFNBQVMsWUFBWSxTQUFTLFNBQVMsU0FBUyxPQUFPLFVBQVUsV0FBVyxPQUFPO0FBQUEsUUFDaEcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFlBQVksU0FBUyxTQUFTLFNBQVMsT0FBTyxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQ2hHLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsWUFBWSxTQUFTLFNBQVMsV0FBVyxhQUFhLFVBQVUsUUFBUSxhQUFhLE9BQU87QUFBQSxRQUN6RyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFNBQVMsWUFBWSxTQUFTLFdBQVcsT0FBTztBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFNBQVMsWUFBWSxTQUFTLFdBQVcsVUFBVSxTQUFTLFdBQVcsVUFBVSxVQUFVLFNBQVMsTUFBTTtBQUFBLFFBQ3ZILE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxTQUFTLFdBQVcsWUFBWSxTQUFTLFFBQVE7QUFBQSxRQUN2RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFlBQVksWUFBWSxVQUFVLFNBQVMsV0FBVyxTQUFTLFFBQVE7QUFBQSxRQUNwRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFNBQVMsUUFBUSxVQUFVLGFBQWE7QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsU0FBUyxTQUFTLFlBQVksWUFBWSxXQUFXLE9BQU87QUFBQSxRQUNqRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFNBQVMsUUFBUSxhQUFhLFNBQVMsU0FBUztBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsU0FBUyxNQUFNO0FBQUEsUUFDNUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxZQUFZLFlBQVksU0FBUyxVQUFVO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLGFBQWEsTUFBTTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsYUFBYSxRQUFRO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxXQUFXLFdBQVcsV0FBVztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsV0FBVyxTQUFTO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxRQUFRLE9BQU8sUUFBUSxTQUFTLFVBQVUsWUFBWTtBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsUUFBUSxhQUFhLFVBQVUsV0FBVyxVQUFVO0FBQUEsUUFDakUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLFdBQVc7QUFBQSxRQUNoQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLE1BQU07QUFBQSxRQUNuQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsVUFBVTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxTQUFTLEtBQUs7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsU0FBUyxLQUFLO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLE9BQU87QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsT0FBTztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsT0FBTztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsVUFBVSxNQUFNO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxVQUFVLFdBQVcsVUFBVTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxTQUFTLFFBQVEsUUFBUSxPQUFPO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxVQUFVLFlBQVksUUFBUSxRQUFRLFFBQVE7QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFlBQVksU0FBUyxRQUFRO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxVQUFVLFVBQVU7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFVBQVUsVUFBVTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFFBQVE7QUFBQSxRQUNyQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFVBQVUsUUFBUSxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFVBQVUsUUFBUSxNQUFNO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsVUFBVSxRQUFRO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsVUFBVSxXQUFXO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsVUFBVSxXQUFXO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxZQUFZO0FBQUEsUUFDekIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxZQUFZO0FBQUEsUUFDekIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHdCQUEwQjtBQUFBLFFBQ3hCLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsT0FBTztBQUFBLFFBQ3BCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxRQUFRLFVBQVU7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHVCQUF5QjtBQUFBLFFBQ3ZCLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFVBQVUsVUFBVTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsUUFBUSxVQUFVLFdBQVc7QUFBQSxRQUMxQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxVQUFVLFNBQVMsU0FBUyxRQUFRLFNBQVMsUUFBUTtBQUFBLFFBQ2xFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxTQUFTLFNBQVMsTUFBTTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsVUFBVSxTQUFTLFNBQVMsVUFBVSxNQUFNO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsVUFBVSxTQUFTLE9BQU8sUUFBUSxNQUFNO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLFlBQVksU0FBUyxXQUFXLFNBQVMsVUFBVSxTQUFTLFFBQVE7QUFBQSxRQUMzRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxVQUFVLFlBQVksU0FBUyxXQUFXLFNBQVMsUUFBUTtBQUFBLFFBQ3hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwwQkFBNEI7QUFBQSxRQUMxQixVQUFZLENBQUMsVUFBVSxNQUFNO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHdCQUEwQjtBQUFBLFFBQ3hCLFVBQVksQ0FBQyxVQUFVLE1BQU07QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EseUJBQTJCO0FBQUEsUUFDekIsVUFBWSxDQUFDLFNBQVMsVUFBVSxjQUFjLFFBQVEsWUFBWSxPQUFPLGFBQWE7QUFBQSxRQUN0RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLE9BQU8sUUFBUSxjQUFjLFFBQVEsWUFBWSxPQUFPLGFBQWE7QUFBQSxRQUNsRixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFNBQVMsT0FBTyxVQUFVLFNBQVMsU0FBUyxRQUFRO0FBQUEsUUFDM0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxVQUFVLFNBQVMsT0FBTyxVQUFVLE9BQU87QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFNBQVMsVUFBVSxVQUFVO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxVQUFVLFNBQVMsU0FBUyxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLE9BQU87QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLFVBQVUsWUFBWSxZQUFZLFNBQVMsUUFBUTtBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVU7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxVQUFVLFFBQVEsWUFBWSxXQUFXLFNBQVMsUUFBUTtBQUFBLFFBQ3ZFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxRQUFRLFlBQVksU0FBUztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx1QkFBeUI7QUFBQSxRQUN2QixVQUFZLENBQUMsa0JBQWtCLFVBQVUsU0FBUyxRQUFRLFFBQVEsU0FBUyxRQUFRO0FBQUEsUUFDbkYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxrQkFBa0IsVUFBVSxTQUFTLFFBQVEsTUFBTTtBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFVBQVUsV0FBVyxlQUFlLFlBQVksTUFBTTtBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwwQkFBNEI7QUFBQSxRQUMxQixVQUFZLENBQUMsUUFBUSxZQUFZLFlBQVksU0FBUyxNQUFNO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxPQUFPLFNBQVMsV0FBVyxTQUFTLE9BQU8sVUFBVTtBQUFBLFFBQ2xFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx5QkFBMkI7QUFBQSxRQUN6QixVQUFZLENBQUMsUUFBUSxTQUFTO0FBQUEsUUFDOUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUyxTQUFTO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxTQUFTLFdBQVcsTUFBTTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsU0FBUyxXQUFXLE9BQU87QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFNBQVMsUUFBUTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsU0FBUyxPQUFPO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxVQUFVLFNBQVMsV0FBVyxXQUFXO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLGNBQWMsVUFBVTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxXQUFXLE1BQU07QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsV0FBVyxVQUFVO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsVUFBVSxTQUFTLFFBQVEsUUFBUTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsWUFBWSxZQUFZLE9BQU87QUFBQSxRQUM1QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFVBQVUsV0FBVyxTQUFTLFdBQVc7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxVQUFVLFdBQVcsU0FBUyxXQUFXO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxTQUFTLFNBQVMsTUFBTSxRQUFRLFVBQVU7QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFNBQVMsU0FBUyxTQUFTO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsVUFBVSxRQUFRLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFNBQVMsY0FBYyxTQUFTO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLGNBQWMsY0FBYyxPQUFPO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxTQUFTLGNBQWMsUUFBUSxPQUFPO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsWUFBWTtBQUFBLFFBQ2xDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxjQUFjLGFBQWEsVUFBVTtBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxRQUFRLFFBQVE7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFFBQVEsV0FBVyxPQUFPLFlBQVk7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxRQUFRLFVBQVUsTUFBTTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxRQUFRLE9BQU8sVUFBVSxVQUFVO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFVBQVUsWUFBWSxRQUFRLE1BQU07QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFlBQVk7QUFBQSxRQUN6QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxPQUFPLFVBQVUsU0FBUyxpQkFBaUIsUUFBUSxRQUFRO0FBQUEsUUFDeEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxnQkFBZ0IsVUFBVSxPQUFPO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLE9BQU8sTUFBTTtBQUFBLFFBQ3BDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsT0FBTyxrQkFBa0IsU0FBUztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsUUFBUSxXQUFXLFFBQVEsZ0JBQWdCO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxrQkFBa0IsU0FBUztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsT0FBTyxXQUFXLGdCQUFnQjtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxrQkFBa0IsU0FBUztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxRQUFRLFFBQVEsV0FBVyxJQUFJO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxXQUFXLFFBQVEsa0JBQWtCLE9BQU8sU0FBUyxhQUFhO0FBQUEsUUFDL0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLE9BQU8sVUFBVTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsa0JBQWtCLFFBQVEsU0FBUztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsV0FBVyxPQUFPLGdCQUFnQjtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxnQkFBZ0I7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFdBQVcsUUFBUSxrQkFBa0IsU0FBUztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsV0FBVyxPQUFPLFdBQVcsYUFBYTtBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFdBQVcsUUFBUSxPQUFPO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFVBQVUsTUFBTTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxXQUFXLFlBQVksU0FBUztBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFdBQVcsU0FBUyxPQUFPO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLGFBQWEsT0FBTyxhQUFhLFNBQVMsU0FBUyxVQUFVLE9BQU8sT0FBTztBQUFBLFFBQ2xHLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsV0FBVyxPQUFPLFNBQVMsZUFBZSxLQUFLO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsV0FBVyxnQkFBZ0I7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLE9BQU8sV0FBVyxnQkFBZ0I7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxXQUFXLFFBQVEsTUFBTTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsa0JBQWtCLFdBQVcsS0FBSztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsa0JBQWtCLFdBQVcsS0FBSztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsV0FBVyxnQkFBZ0I7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLGtCQUFrQixTQUFTO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxrQkFBa0IsV0FBVyxZQUFZLFVBQVUsUUFBUTtBQUFBLFFBQ3hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsa0JBQWtCLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGtCQUFrQixTQUFTO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxrQkFBa0IsV0FBVyxTQUFTLFFBQVEsVUFBVSxRQUFRO0FBQUEsUUFDN0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxrQkFBa0IsU0FBUztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsa0JBQWtCLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGtCQUFrQixXQUFXLE9BQU87QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGtCQUFrQixTQUFTO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxrQkFBa0IsZUFBZSxPQUFPLGVBQWUsTUFBTTtBQUFBLFFBQzFFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsa0JBQWtCLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLGtCQUFrQixXQUFXLFFBQVE7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxrQkFBa0IsV0FBVyxLQUFLO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxrQkFBa0IsV0FBVyxLQUFLO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLGtCQUFrQixPQUFPLFNBQVM7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFdBQVcsa0JBQWtCLFVBQVUsS0FBSztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsV0FBVyxVQUFVLFNBQVM7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFdBQVcsVUFBVSxVQUFVO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFVBQVUsa0JBQWtCLFNBQVMsU0FBUztBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsTUFBTTtBQUFBLFFBQ25CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxrQkFBa0IsV0FBVyxRQUFRO0FBQUEsUUFDMUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFFBQVEsT0FBTztBQUFBLFFBQ3BDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsU0FBUyxVQUFVLE9BQU87QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFVBQVUsUUFBUSxhQUFhLFFBQVEsZUFBZSxlQUFlLEtBQUs7QUFBQSxRQUN2RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLGlCQUFpQixPQUFPLFNBQVMsZUFBZSxRQUFRLEtBQUs7QUFBQSxRQUMxRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLE9BQU8sWUFBWSxhQUFhLE9BQU8sVUFBVSxLQUFLO0FBQUEsUUFDbkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFVBQVUsU0FBUyxNQUFNO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFNBQVMsT0FBTyxNQUFNO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsT0FBTyxZQUFZLFdBQVcsU0FBUztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsZUFBZSxXQUFXO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxrQkFBa0IsTUFBTTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsa0JBQWtCLFNBQVM7QUFBQSxRQUN4QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxrQkFBa0IsUUFBUTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsV0FBVyxjQUFjLFFBQVEsUUFBUTtBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsa0JBQWtCLFdBQVcsUUFBUTtBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFNBQVMsWUFBWSxXQUFXO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxZQUFZLGNBQWMsU0FBUyxLQUFLO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxTQUFTLFVBQVU7QUFBQSxRQUNoQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLE9BQU8sV0FBVyxVQUFVO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFVBQVU7QUFBQSxRQUNoQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsVUFBVTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsWUFBWSxZQUFZLGFBQWEsT0FBTztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsU0FBUyxTQUFTLFFBQVEsU0FBUztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsU0FBUyxVQUFVLGFBQWE7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTLFVBQVUsZUFBZSxVQUFVLE1BQU07QUFBQSxRQUMvRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFNBQVMsWUFBWSxVQUFVLFVBQVU7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsVUFBVSxVQUFVO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFdBQVcsWUFBWSxNQUFNO0FBQUEsUUFDcEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLFlBQVksTUFBTTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxXQUFXLFVBQVU7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTLGVBQWUsUUFBUTtBQUFBLFFBQzdDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxhQUFhLGNBQWMsU0FBUztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFNBQVMsZ0JBQWdCO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxXQUFXLFFBQVEsWUFBWSxPQUFPO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHdCQUEwQjtBQUFBLFFBQ3hCLFVBQVksQ0FBQyxRQUFRLFlBQVksT0FBTztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxRQUFRLFNBQVM7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFdBQVcsVUFBVSxTQUFTLFFBQVEsUUFBUTtBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFNBQVMsWUFBWSxRQUFRO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUyxnQkFBZ0IsTUFBTTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsU0FBUyxXQUFXLE9BQU8sV0FBVztBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsU0FBUyxjQUFjLE9BQU87QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFdBQVcsUUFBUSxVQUFVO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxTQUFTLGNBQWM7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxTQUFTLFlBQVksWUFBWSxpQkFBaUI7QUFBQSxRQUMvRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsU0FBUyxnQkFBZ0IsU0FBUyxPQUFPLFFBQVE7QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGFBQWEsT0FBTztBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsWUFBWSxXQUFXLFNBQVM7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFNBQVMsVUFBVTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxTQUFTLFVBQVUsV0FBVyxPQUFPO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxZQUFZLFNBQVM7QUFBQSxRQUNsQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFlBQVksTUFBTTtBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsUUFBUSxTQUFTLFFBQVE7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFdBQVcsU0FBUyxVQUFVLFVBQVU7QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFlBQVksVUFBVSxNQUFNO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxZQUFZLFlBQVksTUFBTTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsWUFBWSxZQUFZLGVBQWU7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLFlBQVksT0FBTztBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsWUFBWSxVQUFVLFdBQVcsUUFBUTtBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsWUFBWSxTQUFTLFNBQVMsUUFBUSxZQUFZLFlBQVk7QUFBQSxRQUMzRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFlBQVksZ0JBQWdCLFNBQVM7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFlBQVksWUFBWSxXQUFXO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxZQUFZLFdBQVcsYUFBYSxTQUFTLE9BQU87QUFBQSxRQUNqRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFFBQVEsYUFBYSxRQUFRO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxVQUFVLFlBQVksU0FBUyxPQUFPO0FBQUEsUUFDaEYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxPQUFPLFdBQVcsU0FBUztBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsWUFBWSxZQUFZLFFBQVE7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsV0FBVyxTQUFTO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxXQUFXLFdBQVcsVUFBVSxRQUFRO0FBQUEsUUFDckQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFVBQVUsT0FBTztBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsU0FBUyxPQUFPO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLGFBQWE7QUFBQSxRQUNsQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGNBQWMsU0FBUyxXQUFXLE1BQU07QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsVUFBVTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsY0FBYyxVQUFVLFVBQVUsV0FBVyxTQUFTO0FBQUEsUUFDbkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxjQUFjLFlBQVksUUFBUSxTQUFTLE1BQU07QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGNBQWMsYUFBYSxRQUFRO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLEtBQUs7QUFBQSxRQUMzQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLE9BQU87QUFBQSxRQUNwQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLGNBQWMsVUFBVTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxNQUFNO0FBQUEsUUFDM0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxjQUFjLFVBQVUsUUFBUSxRQUFRLEtBQUs7QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLGFBQWEsY0FBYyxRQUFRLE9BQU8sS0FBSztBQUFBLFFBQzVELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxJQUFNO0FBQUEsUUFDSixVQUFZLENBQUMsY0FBYyxPQUFPLFFBQVEsUUFBUSxLQUFLO0FBQUEsUUFDdkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxNQUFNLFFBQVEsTUFBTTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsVUFBVSxTQUFTLGFBQWEsT0FBTyxLQUFLO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxXQUFXLGFBQWE7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxlQUFlLFNBQVM7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLFFBQVE7QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLFFBQVE7QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFNBQVMsUUFBUSxVQUFVLE9BQU87QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLE9BQU87QUFBQSxRQUNwQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLGNBQWMsaUJBQWlCLE1BQU07QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLGNBQWMsaUJBQWlCLFFBQVEsV0FBVztBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxhQUFhLEtBQUs7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLGlCQUFpQixZQUFZO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxjQUFjLFdBQVcsYUFBYSxRQUFRLFlBQVk7QUFBQSxRQUN2RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLGlCQUFpQixTQUFTLFdBQVcsU0FBUztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsUUFBUSxhQUFhLFVBQVUsVUFBVTtBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLE9BQU87QUFBQSxRQUNwQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxZQUFZLGNBQWMsY0FBYztBQUFBLFFBQ3JELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxVQUFVO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxPQUFPO0FBQUEsUUFDcEIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLE1BQU07QUFBQSxRQUMzQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLE1BQU07QUFBQSxRQUNuQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esd0JBQTBCO0FBQUEsUUFDeEIsVUFBWSxDQUFDLGFBQWEsUUFBUSxXQUFXO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFNBQVMsYUFBYSxTQUFTLFFBQVEsUUFBUSxNQUFNO0FBQUEsUUFDMUUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxpQkFBaUIsVUFBVSxTQUFTLE9BQU87QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsVUFBVSxTQUFTO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsV0FBVyxPQUFPO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLGVBQWUsTUFBTTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsT0FBTztBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsUUFBUSxLQUFLO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxPQUFPLFNBQVMsV0FBVyxXQUFXLE1BQU07QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFVBQVUsU0FBUyxXQUFXLE1BQU07QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsU0FBUyxRQUFRLFVBQVU7QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFNBQVMsU0FBUyxZQUFZLFVBQVUsVUFBVTtBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxTQUFTLFVBQVUsVUFBVTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsV0FBVyxZQUFZLFNBQVMsU0FBUyxTQUFTLE1BQU0sV0FBVyxVQUFVO0FBQUEsUUFDMUYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxVQUFVLFdBQVcsU0FBUyxNQUFNO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxTQUFTLFNBQVMsVUFBVSxRQUFRLFdBQVcsVUFBVTtBQUFBLFFBQ3RFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsUUFBUSxRQUFRLFdBQVcsU0FBUztBQUFBLFFBQ2pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLE9BQU8sWUFBWSxRQUFRO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLE9BQU8sT0FBTyxjQUFjLFVBQVU7QUFBQSxRQUM1RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsT0FBTyxRQUFRLE9BQU8sWUFBWTtBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxTQUFTLFFBQVE7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFNBQVMsU0FBUyxRQUFRO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxTQUFTLFNBQVMsUUFBUTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxLQUFLO0FBQUEsUUFDM0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUyxTQUFTLEtBQUs7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLEtBQUs7QUFBQSxRQUNsQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVE7QUFBQSxRQUNyQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsY0FBYyxVQUFVO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxZQUFZLFVBQVUsVUFBVSxVQUFVO0FBQUEsUUFDdkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxRQUFRLFdBQVcsYUFBYSxXQUFXO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxZQUFZLFFBQVEsV0FBVyxhQUFhLFdBQVc7QUFBQSxRQUNwRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsU0FBUyxXQUFXLFdBQVcsUUFBUTtBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsY0FBYyxVQUFVO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLFdBQVcsYUFBYSxTQUFTLE9BQU87QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLFVBQVUsVUFBVSxVQUFVLFNBQVMsU0FBUyxVQUFVLE1BQU07QUFBQSxRQUM3RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFdBQVcsUUFBUSxPQUFPLFNBQVMsT0FBTyxhQUFhLFlBQVksVUFBVSxXQUFXLEtBQUs7QUFBQSxRQUMxRyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsT0FBTyxTQUFTLE9BQU8sT0FBTztBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxLQUFLO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUyxTQUFTLFNBQVMsVUFBVSxnQkFBZ0I7QUFBQSxRQUNsRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLFdBQVc7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLE9BQU87QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxjQUFjLFdBQVcsY0FBYyxXQUFXO0FBQUEsUUFDL0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxTQUFTLFNBQVMsUUFBUSxXQUFXLFdBQVc7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLGNBQWMsY0FBYyxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQ3JFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsY0FBYztBQUFBLFFBQzNCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxZQUFZLFVBQVUsWUFBWSxNQUFNO0FBQUEsUUFDL0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLFlBQVksU0FBUyxTQUFTLFlBQVksVUFBVSxVQUFVLE9BQU87QUFBQSxRQUM1RixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLGFBQWEsWUFBWSxNQUFNO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxVQUFVLFlBQVksT0FBTztBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsWUFBWSxXQUFXLFdBQVcsS0FBSztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsYUFBYSxjQUFjLE9BQU8sU0FBUztBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsV0FBVyxlQUFlLE9BQU8sTUFBTTtBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsWUFBWSxZQUFZLE9BQU87QUFBQSxRQUM1QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLEtBQUs7QUFBQSxRQUMxQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFlBQVksU0FBUyxNQUFNO0FBQUEsUUFDeEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxZQUFZLE1BQU0sWUFBWSxZQUFZLE9BQU87QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFNBQVMsU0FBUyxVQUFVO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLFVBQVUsVUFBVTtBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsT0FBTyxXQUFXLFlBQVksUUFBUTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsYUFBYSxZQUFZLFFBQVE7QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxlQUFlLFdBQVc7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFFBQVEsUUFBUSxVQUFVO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsVUFBVTtBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsUUFBUSxPQUFPO0FBQUEsUUFDNUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsT0FBTyxNQUFNO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxTQUFTLE1BQU07QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFNBQVMsU0FBUyxNQUFNO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUztBQUFBLFFBQ3RCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsU0FBUyxTQUFTO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxhQUFhO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxZQUFZLFdBQVc7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFdBQVcsUUFBUTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsUUFBUSxpQkFBaUIsTUFBTTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxPQUFPLFVBQVU7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTO0FBQUEsUUFDdEIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxTQUFTLGVBQWUsWUFBWSxRQUFRO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFlBQVksYUFBYSxRQUFRLFFBQVE7QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGNBQWMsUUFBUSxRQUFRLFFBQVE7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFdBQVcsWUFBWSxhQUFhLE1BQU07QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxZQUFZLFNBQVMsWUFBWSxRQUFRO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLG1CQUFtQixZQUFZLFNBQVMsVUFBVSxhQUFhO0FBQUEsUUFDckYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxZQUFZLE9BQU8sUUFBUTtBQUFBLFFBQ3hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsVUFBVSxRQUFRLFVBQVUsTUFBTTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFlBQVksVUFBVSxXQUFXLFFBQVE7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFNBQVMsU0FBUyxhQUFhLFFBQVE7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxNQUFNO0FBQUEsUUFDbkIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxVQUFVLFVBQVUsU0FBUyxlQUFlO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxTQUFTLGVBQWU7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFNBQVMsT0FBTztBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsaUJBQWlCLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsUUFBUSxhQUFhLFlBQVksWUFBWTtBQUFBLFFBQ25FLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxVQUFVLFVBQVU7QUFBQSxRQUMxQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFNBQVMsaUJBQWlCLE9BQU87QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsU0FBUyxlQUFlO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxTQUFTLFNBQVMsZUFBZTtBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsU0FBUyxPQUFPO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxPQUFPLFFBQVE7QUFBQSxRQUN6RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLGNBQWMsT0FBTztBQUFBLFFBQ2xDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsU0FBUyxXQUFXO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGFBQWEsV0FBVyxXQUFXLE9BQU87QUFBQSxRQUN2RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLGFBQWEsVUFBVSxPQUFPO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsWUFBWSxRQUFRLFNBQVMsTUFBTTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsY0FBYyxVQUFVO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxTQUFTLGdCQUFnQixPQUFPO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDBCQUE0QjtBQUFBLFFBQzFCLFVBQVksQ0FBQyxTQUFTLGdCQUFnQixTQUFTLFlBQVksWUFBWSxhQUFhLFNBQVMsU0FBUyxRQUFRLFNBQVM7QUFBQSxRQUN2SCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsNEJBQThCO0FBQUEsUUFDNUIsVUFBWSxDQUFDLFNBQVMsZ0JBQWdCLFNBQVMsYUFBYSxZQUFZLGFBQWEsU0FBUyxTQUFTLE9BQU8sU0FBUztBQUFBLFFBQ3ZILE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsYUFBYSxVQUFVLFNBQVMsYUFBYTtBQUFBLFFBQzFELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsWUFBWSxVQUFVO0FBQUEsUUFDbkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxZQUFZLFFBQVEsVUFBVTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsUUFBUSxZQUFZLFVBQVU7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFlBQVksWUFBWTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFlBQVksWUFBWTtBQUFBLFFBQ3JDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsWUFBWSxNQUFNO0FBQUEsUUFDL0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsVUFBVSxZQUFZO0FBQUEsUUFDbkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxjQUFjLFdBQVc7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFFBQVEsWUFBWTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsYUFBYSxZQUFZLFFBQVE7QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGFBQWEsTUFBTTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsY0FBYyxZQUFZLFlBQVk7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFNBQVMsVUFBVTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsU0FBUyxVQUFVO0FBQUEsUUFDaEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxjQUFjLFVBQVUsU0FBUyxTQUFTLE9BQU87QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsV0FBVyxhQUFhLFlBQVksT0FBTztBQUFBLFFBQ2hFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxXQUFXLGFBQWEsT0FBTztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxXQUFXLGFBQWEsU0FBUyxPQUFPO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLFdBQVcsYUFBYSxZQUFZLE9BQU87QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0NBQWtDO0FBQUEsUUFDaEMsVUFBWSxDQUFDLGFBQWEsU0FBUyxVQUFVLFNBQVMsT0FBTztBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsU0FBUyxPQUFPO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxjQUFjLFdBQVcsT0FBTztBQUFBLFFBQzdDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxRQUFRLFdBQVcsYUFBYSxjQUFjLFNBQVMsT0FBTztBQUFBLFFBQ25GLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxLQUFLO0FBQUEsUUFDM0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxhQUFhLFlBQVk7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLGFBQWEsWUFBWTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsY0FBYyxLQUFLO0FBQUEsUUFDaEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxjQUFjLFFBQVEsYUFBYSxRQUFRO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxjQUFjLGFBQWEsVUFBVSxRQUFRLFVBQVUsV0FBVyxhQUFhLFFBQVE7QUFBQSxRQUNwRyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGFBQWE7QUFBQSxRQUMxQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLGNBQWMsUUFBUSxNQUFNO0FBQUEsUUFDekMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsY0FBYyxZQUFZLE9BQU8sTUFBTTtBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx5QkFBMkI7QUFBQSxRQUN6QixVQUFZLENBQUMsUUFBUSxhQUFhLE9BQU87QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsU0FBUyxRQUFRLGFBQWEsV0FBVyxNQUFNO0FBQUEsUUFDdEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRO0FBQUEsUUFDckIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUSxXQUFXLFNBQVMsT0FBTyxRQUFRLFFBQVEsU0FBUyxjQUFjLFdBQVcsWUFBWSxhQUFhO0FBQUEsUUFDM0gsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxZQUFZLFNBQVM7QUFBQSxRQUNsQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFlBQVksWUFBWSxTQUFTO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxXQUFXLFVBQVU7QUFBQSxRQUNsQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFlBQVksUUFBUTtBQUFBLFFBQ2pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsY0FBYyxXQUFXLE9BQU87QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxjQUFjLFdBQVcsT0FBTztBQUFBLFFBQzdDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsT0FBTyxjQUFjLFdBQVcsT0FBTztBQUFBLFFBQ3BELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxhQUFhLGNBQWMsVUFBVSxTQUFTLFdBQVcsU0FBUyxRQUFRLFFBQVEsUUFBUSxTQUFTLFNBQVM7QUFBQSxRQUNsSSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLGNBQWMsU0FBUyxTQUFTLFdBQVcsVUFBVSxPQUFPO0FBQUEsUUFDekUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxXQUFXLFlBQVk7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFdBQVcsY0FBYyxLQUFLO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxVQUFVLFFBQVEsUUFBUSxXQUFXO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxVQUFVLFFBQVEsUUFBUSxXQUFXO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFFBQVEsWUFBWTtBQUFBLFFBQ3pDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhLFlBQVk7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxZQUFZO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxZQUFZO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxZQUFZO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUSxRQUFRLGFBQWEsWUFBWTtBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsTUFBTTtBQUFBLFFBQ25CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLE9BQU8sU0FBUyxTQUFTLFNBQVMsWUFBWTtBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx5QkFBMkI7QUFBQSxRQUN6QixVQUFZLENBQUMsY0FBYyxNQUFNO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxjQUFjLE9BQU87QUFBQSxRQUMvRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhLFlBQVk7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhLGNBQWMsUUFBUSxPQUFPO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVEsYUFBYSxjQUFjLE1BQU07QUFBQSxRQUM5RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsaUJBQW1CO0FBQUEsUUFDakIsVUFBWSxDQUFDLFFBQVEsUUFBUSxhQUFhLFlBQVk7QUFBQSxRQUN0RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLGFBQWEsWUFBWTtBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxZQUFZO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxpQkFBaUIsUUFBUSxNQUFNO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsUUFBUTtBQUFBLFFBQ3JCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsY0FBYztBQUFBLFFBQzNCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsT0FBTztBQUFBLFFBQ3BCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxJQUFNO0FBQUEsUUFDSixVQUFZLENBQUMsWUFBWSxZQUFZLFdBQVcsU0FBUztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsWUFBWSxZQUFZLFdBQVcsU0FBUztBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGlCQUFpQixZQUFZLFVBQVUsVUFBVTtBQUFBLFFBQzlELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsWUFBWSxXQUFXLFFBQVE7QUFBQSxRQUM1QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVM7QUFBQSxRQUN0QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLGVBQWUsVUFBVTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsWUFBWSxVQUFVLFVBQVUsUUFBUTtBQUFBLFFBQ3JELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxpQkFBaUIsaUJBQWlCLFdBQVc7QUFBQSxRQUNsRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsaUJBQWlCLFVBQVUsV0FBVztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsaUJBQWlCLFFBQVEsVUFBVSxXQUFXO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFVBQVUsaUJBQWlCLFdBQVc7QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsVUFBVSxpQkFBaUIsV0FBVztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsUUFBUSxpQkFBaUIsVUFBVSxXQUFXO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxRQUFRLFVBQVUsaUJBQWlCLFdBQVc7QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsaUJBQWlCLFVBQVUsV0FBVztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsUUFBUSxVQUFVLGlCQUFpQixhQUFhLFNBQVM7QUFBQSxRQUN0RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFFBQVEsVUFBVSxpQkFBaUIsV0FBVztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxVQUFVLGlCQUFpQixXQUFXO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLGlCQUFpQixVQUFVLFdBQVc7QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGlCQUFpQixRQUFRLFVBQVUsV0FBVztBQUFBLFFBQzNELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxJQUFNO0FBQUEsUUFDSixVQUFZLENBQUMsaUJBQWlCLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFdBQVcsV0FBVyxXQUFXO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFlBQVksV0FBVyxTQUFTLE9BQU8sYUFBYTtBQUFBLFFBQzFFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsT0FBTyxVQUFVLFdBQVcsU0FBUyxhQUFhO0FBQUEsUUFDL0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxXQUFXLFFBQVE7QUFBQSxRQUNoQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLFFBQVE7QUFBQSxRQUNyQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFFBQVEsaUJBQWlCLFdBQVcsT0FBTztBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsaUJBQWlCLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLGlCQUFpQixXQUFXLFFBQVEsT0FBTztBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsV0FBVyxXQUFXLFNBQVMsWUFBWSxlQUFlO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxXQUFXLFlBQVksU0FBUyxlQUFlO0FBQUEsUUFDNUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxZQUFZLGlCQUFpQixlQUFlO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxXQUFXLFNBQVMsUUFBUSxZQUFZLGlCQUFpQixPQUFPO0FBQUEsUUFDN0UsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDBCQUE0QjtBQUFBLFFBQzFCLFVBQVksQ0FBQyxpQkFBaUIsU0FBUyxTQUFTO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxTQUFTLGVBQWU7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLE1BQU0sUUFBUSxXQUFXLFNBQVMsU0FBUyxPQUFPLGVBQWU7QUFBQSxRQUM5RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxZQUFZLFFBQVE7QUFBQSxRQUNqQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFdBQVcsU0FBUyxVQUFVLE9BQU8sUUFBUTtBQUFBLFFBQzFELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsV0FBVyxXQUFXLFFBQVEsU0FBUyxZQUFZO0FBQUEsUUFDaEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxXQUFXLFNBQVMsWUFBWSxZQUFZO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxZQUFZLFdBQVcsUUFBUSxTQUFTLFlBQVk7QUFBQSxRQUNqRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFFBQVEsV0FBVyxZQUFZLGNBQWMsT0FBTztBQUFBLFFBQ2pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsU0FBUyxZQUFZLFdBQVcsYUFBYSxTQUFTLGNBQWMsWUFBWTtBQUFBLFFBQzdGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxHQUFLO0FBQUEsUUFDSCxVQUFZLENBQUMsY0FBYyxZQUFZLFFBQVE7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsR0FBSztBQUFBLFFBQ0gsVUFBWSxDQUFDLGNBQWMsWUFBWSxRQUFRO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxjQUFjLFVBQVU7QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsSUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLFlBQVksU0FBUyxZQUFZO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxZQUFZLGNBQWMsUUFBUTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsUUFBUSxjQUFjLFNBQVMsYUFBYSxLQUFLO0FBQUEsUUFDOUQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTLFlBQVksV0FBVyxPQUFPLFVBQVUsUUFBUSxRQUFRO0FBQUEsUUFDOUUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxRQUFRLFFBQVE7QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxVQUFVLFFBQVEsU0FBUyxVQUFVLFlBQVksUUFBUTtBQUFBLFFBQ3RFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxHQUFLO0FBQUEsUUFDSCxVQUFZLENBQUMsTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEdBQUs7QUFBQSxRQUNILFVBQVksQ0FBQyxVQUFVLE9BQU87QUFBQSxRQUM5QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLE1BQU07QUFBQSxRQUNuQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsS0FBSztBQUFBLFFBQzNCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsUUFBUSxRQUFRLE9BQU87QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZ0JBQWtCO0FBQUEsUUFDaEIsVUFBWSxDQUFDLFNBQVMsWUFBWSxXQUFXLFFBQVE7QUFBQSxRQUNyRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsZUFBaUI7QUFBQSxRQUNmLFVBQVksQ0FBQyxTQUFTLE9BQU8sV0FBVyxRQUFRO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxXQUFXLGNBQWMsUUFBUTtBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsU0FBUyxVQUFVLE9BQU8sUUFBUTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxVQUFZO0FBQUEsUUFDVixVQUFZLENBQUMsTUFBTSxTQUFTLE9BQU8sU0FBUyxTQUFTLFFBQVE7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFVBQVUsUUFBUSxRQUFRO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQywwQkFBMEIsVUFBVSxZQUFZLGVBQWUsT0FBTyxTQUFTO0FBQUEsUUFDNUYsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxZQUFZLGVBQWUsUUFBUSxPQUFPLFNBQVM7QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsVUFBVTtBQUFBLFFBQ2hDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLGVBQWUsVUFBVTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsT0FBTyxlQUFlLFVBQVU7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFNBQVMsV0FBVyxXQUFXLFdBQVcsUUFBUSxRQUFRLFFBQVEsUUFBUSxTQUFTO0FBQUEsUUFDaEcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxPQUFPLGFBQWEsUUFBUSxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxPQUFPLE9BQU87QUFBQSxRQUMzQixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFVBQVUsT0FBTztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLGNBQWMsT0FBTztBQUFBLFFBQ2xDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx1QkFBeUI7QUFBQSxRQUN2QixVQUFZLENBQUMsU0FBUyxnQkFBZ0IsU0FBUyxZQUFZLGFBQWEsS0FBSztBQUFBLFFBQzdFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsZUFBZSxPQUFPLFNBQVMsU0FBUyxXQUFXLE9BQU87QUFBQSxRQUN2RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFVBQVUsV0FBVyxVQUFVLFFBQVEsV0FBVyxnQkFBZ0I7QUFBQSxRQUMvRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFNBQVMsUUFBUTtBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxlQUFlLFdBQVcsT0FBTztBQUFBLFFBQ3ZELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsV0FBVyxTQUFTLGdCQUFnQixPQUFPO0FBQUEsUUFDeEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxnQkFBZ0IsU0FBUyxnQkFBZ0IsT0FBTztBQUFBLFFBQzdELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxnQkFBZ0IsV0FBVyxRQUFRLFdBQVc7QUFBQSxRQUNwRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFFBQVEsV0FBVyxjQUFjO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDZCQUErQjtBQUFBLFFBQzdCLFVBQVksQ0FBQyxLQUFLLGdCQUFnQixNQUFNLE1BQU07QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGdCQUFnQixNQUFNLFNBQVMsUUFBUSxZQUFZLFVBQVUsTUFBTTtBQUFBLFFBQ2hGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQ0FBbUM7QUFBQSxRQUNqQyxVQUFZLENBQUMsU0FBUyxRQUFRLE9BQU8sV0FBVyxPQUFPO0FBQUEsUUFDdkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxXQUFXLFNBQVMsUUFBUSxTQUFTLFVBQVUsVUFBVSxhQUFhLFFBQVEsV0FBVyxhQUFhLFNBQVM7QUFBQSxRQUM1SCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFFBQVEsVUFBVTtBQUFBLFFBQy9CLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsU0FBUyxpQkFBaUIsU0FBUyxZQUFZLFlBQVksTUFBTTtBQUFBLFFBQzlFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxHQUFLO0FBQUEsUUFDSCxVQUFZLENBQUMsWUFBWSxlQUFlLFFBQVE7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFNBQVMsU0FBUyxRQUFRLGVBQWUsV0FBVyxNQUFNO0FBQUEsUUFDdkUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxZQUFZLGVBQWUsVUFBVTtBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsVUFBVSxhQUFhO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxZQUFZLFVBQVUsYUFBYTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLGVBQWUsV0FBVyxXQUFXO0FBQUEsUUFDbEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsZUFBZSxRQUFRO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxlQUFlLFlBQVksUUFBUSxlQUFlO0FBQUEsUUFDL0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFlBQWM7QUFBQSxRQUNaLFVBQVksQ0FBQyxhQUFhLGVBQWUsU0FBUyxPQUFPO0FBQUEsUUFDekQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxVQUFVLFlBQVksYUFBYTtBQUFBLFFBQ2hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsUUFBUSxlQUFlLFlBQVksUUFBUTtBQUFBLFFBQ3hELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLGVBQWUsVUFBVSxZQUFZLFlBQVksUUFBUTtBQUFBLFFBQ3RFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxZQUFZLE1BQU0sZUFBZSxVQUFVLE1BQU07QUFBQSxRQUN4RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLGlCQUFpQixTQUFTLFVBQVUsVUFBVSxPQUFPLFlBQVksUUFBUTtBQUFBLFFBQ3RGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsaUJBQWlCLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLGVBQWUsVUFBVSxXQUFXLE1BQU0sUUFBUTtBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx5QkFBMkI7QUFBQSxRQUN6QixVQUFZLENBQUMsZUFBZSxRQUFRLFNBQVMsTUFBTTtBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFVO0FBQUEsUUFDUixVQUFZLENBQUMsZUFBZSxVQUFVLFFBQVEsU0FBUyxXQUFXLFNBQVMsU0FBUztBQUFBLFFBQ3BGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsZUFBZSxhQUFhLFNBQVMsWUFBWSxjQUFjLFFBQVEsYUFBYSxNQUFNO0FBQUEsUUFDdkcsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxlQUFlLFFBQVEsWUFBWSxZQUFZLGFBQWE7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsSUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLGVBQWUsU0FBUyxTQUFTLE1BQU07QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsSUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLFFBQVEsU0FBUyxPQUFPLGFBQWE7QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsSUFBTTtBQUFBLFFBQ0osVUFBWSxDQUFDLGVBQWUsU0FBUyxNQUFNO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxTQUFTLGFBQWE7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLGVBQWUsU0FBUyxPQUFPO0FBQUEsUUFDNUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxlQUFlLE9BQU87QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLEtBQUssV0FBVyxlQUFlLE1BQU07QUFBQSxRQUNsRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLGVBQWUsV0FBVyxHQUFHO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxXQUFXLEtBQUssU0FBUyxhQUFhO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxLQUFLLFdBQVcsU0FBUyxhQUFhO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxLQUFLLFdBQVcsYUFBYTtBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsS0FBSyxXQUFXLGVBQWUsT0FBTztBQUFBLFFBQ25ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxLQUFPO0FBQUEsUUFDTCxVQUFZLENBQUMsS0FBSyxXQUFXLGFBQWE7QUFBQSxRQUMxQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLEtBQUssV0FBVyxlQUFlLE9BQU87QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLEtBQUssZUFBZSxTQUFTO0FBQUEsUUFDMUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE1BQVE7QUFBQSxRQUNOLFVBQVksQ0FBQyxlQUFlLFdBQVcsR0FBRztBQUFBLFFBQzFDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsV0FBVyxNQUFNLGFBQWE7QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLFFBQVEsUUFBUTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxRQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsV0FBVyxhQUFhO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsYUFBYTtBQUFBLFFBQzFCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLGVBQWUsU0FBUyxhQUFhLE1BQU07QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLGFBQWE7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFdBQVcsUUFBUSxhQUFhO0FBQUEsUUFDN0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGFBQWU7QUFBQSxRQUNiLFVBQVksQ0FBQyxhQUFhO0FBQUEsUUFDMUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGVBQWlCO0FBQUEsUUFDZixVQUFZLENBQUMsYUFBYTtBQUFBLFFBQzFCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxzQkFBd0I7QUFBQSxRQUN0QixVQUFZLENBQUMsZUFBZSxRQUFRLE9BQU87QUFBQSxRQUMzQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsdUJBQXlCO0FBQUEsUUFDdkIsVUFBWSxDQUFDLFVBQVU7QUFBQSxRQUN2QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxlQUFlLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDdkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLGFBQWE7QUFBQSxRQUNsQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsMkJBQTZCO0FBQUEsUUFDM0IsVUFBWSxDQUFDLGVBQWUsV0FBVyxTQUFTLFFBQVE7QUFBQSxRQUN4RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUTtBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsZUFBZSxNQUFNO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxlQUFlLFFBQVEsV0FBVztBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsZUFBZSxZQUFZLGFBQWEsU0FBUyxXQUFXLEtBQUs7QUFBQSxRQUM5RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGVBQWUsYUFBYSxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGlCQUFtQjtBQUFBLFFBQ2pCLFVBQVksQ0FBQyxlQUFlLGFBQWEsS0FBSztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxtQkFBcUI7QUFBQSxRQUNuQixVQUFZLENBQUMsZUFBZSxhQUFhLFFBQVE7QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLGVBQWUsTUFBTTtBQUFBLFFBQ2xDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsZUFBZSxZQUFZLE1BQU07QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsVUFBWTtBQUFBLFFBQ1YsVUFBWSxDQUFDLGVBQWUsWUFBWSxPQUFPLFdBQVc7QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLGVBQWUsYUFBYSxRQUFRO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxlQUFlLFNBQVMsYUFBYSxZQUFZLFdBQVc7QUFBQSxRQUN6RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLGVBQWUsYUFBYSxZQUFZLFdBQVc7QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGVBQWUsYUFBYSxZQUFZLFdBQVc7QUFBQSxRQUNoRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGVBQWUsU0FBUyxhQUFhLFlBQVksV0FBVztBQUFBLFFBQ3pFLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxlQUFpQjtBQUFBLFFBQ2YsVUFBWSxDQUFDLGVBQWUsYUFBYSxPQUFPLFVBQVU7QUFBQSxRQUMxRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLFNBQVMsYUFBYSxjQUFjLFVBQVU7QUFBQSxRQUMzRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EseUJBQTJCO0FBQUEsUUFDekIsVUFBWSxDQUFDLGVBQWUsUUFBUSxPQUFPO0FBQUEsUUFDM0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxlQUFlLFVBQVUsVUFBVSxXQUFXO0FBQUEsUUFDM0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDJCQUE2QjtBQUFBLFFBQzNCLFVBQVksQ0FBQyxRQUFRLFVBQVUsZUFBZSxRQUFRLE9BQU87QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLGVBQWUsYUFBYSxLQUFLO0FBQUEsUUFDOUMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxlQUFlLGFBQWEsUUFBUTtBQUFBLFFBQ2pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsVUFBVSxlQUFlLFNBQVM7QUFBQSxRQUMvQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLGVBQWUsWUFBWSxRQUFRO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxlQUFlLFVBQVU7QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLGVBQWUsVUFBVTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFlBQVksU0FBUyxhQUFhO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxlQUFlLFNBQVMsUUFBUSxhQUFhLFdBQVcsVUFBVSxZQUFZO0FBQUEsUUFDM0YsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGNBQWdCO0FBQUEsUUFDZCxVQUFZLENBQUMsU0FBUyxRQUFRLE9BQU87QUFBQSxRQUNyQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsT0FBUztBQUFBLFFBQ1AsVUFBWSxDQUFDLFNBQVMsT0FBTztBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxXQUFhO0FBQUEsUUFDWCxVQUFZLENBQUMsUUFBUSxRQUFRLGFBQWEsWUFBWSxZQUFZLFVBQVU7QUFBQSxRQUM1RSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFlBQVksUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esa0JBQW9CO0FBQUEsUUFDbEIsVUFBWSxDQUFDLE1BQU0sUUFBUSxVQUFVLE9BQU8sTUFBTTtBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxrQkFBb0I7QUFBQSxRQUNsQixVQUFZLENBQUMsUUFBUSxTQUFTLFNBQVMsUUFBUTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsUUFBUSxlQUFlLFlBQVksUUFBUSxVQUFVO0FBQUEsUUFDbEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGtCQUFvQjtBQUFBLFFBQ2xCLFVBQVksQ0FBQyxRQUFRLGVBQWUsWUFBWSxNQUFNO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHFCQUF1QjtBQUFBLFFBQ3JCLFVBQVksQ0FBQyxVQUFVLFFBQVEsYUFBYTtBQUFBLFFBQzVDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSx3QkFBMEI7QUFBQSxRQUN4QixVQUFZLENBQUMsUUFBUSxhQUFhO0FBQUEsUUFDbEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTO0FBQUEsUUFDdEIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG1CQUFxQjtBQUFBLFFBQ25CLFVBQVksQ0FBQyxTQUFTLFNBQVMsV0FBVyxZQUFZLE1BQU07QUFBQSxRQUM1RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFNBQVMsU0FBUyxVQUFVLFFBQVE7QUFBQSxRQUNqRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsV0FBYTtBQUFBLFFBQ1gsVUFBWSxDQUFDLE1BQU0sV0FBVyxVQUFVLE9BQU8sT0FBTztBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsWUFBWSxRQUFRO0FBQUEsUUFDakMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxhQUFhLFNBQVMsT0FBTyxPQUFPO0FBQUEsUUFDakQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLEtBQU87QUFBQSxRQUNMLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsTUFBUTtBQUFBLFFBQ04sVUFBWSxDQUFDLFNBQVMsU0FBUyxRQUFRO0FBQUEsUUFDdkMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLElBQU07QUFBQSxRQUNKLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsS0FBTztBQUFBLFFBQ0wsVUFBWSxDQUFDLFNBQVMsYUFBYTtBQUFBLFFBQ25DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxPQUFPO0FBQUEsUUFDN0IsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHVCQUF5QjtBQUFBLFFBQ3ZCLFVBQVksQ0FBQyxNQUFNLFNBQVMsV0FBVyxnQkFBZ0IsUUFBUSxZQUFZLE9BQU8sTUFBTTtBQUFBLFFBQ3hGLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxjQUFnQjtBQUFBLFFBQ2QsVUFBWSxDQUFDLFNBQVMsT0FBTyxTQUFTLFFBQVE7QUFBQSxRQUM5QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLE9BQU87QUFBQSxRQUM3QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsY0FBZ0I7QUFBQSxRQUNkLFVBQVksQ0FBQyxTQUFTLFVBQVUsT0FBTztBQUFBLFFBQ3ZDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxZQUFjO0FBQUEsUUFDWixVQUFZLENBQUMsU0FBUyxTQUFTLFFBQVE7QUFBQSxRQUN2QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsbUJBQXFCO0FBQUEsUUFDbkIsVUFBWSxDQUFDLFNBQVMsUUFBUSxRQUFRO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxTQUFTLFNBQVMsS0FBSztBQUFBLFFBQ3BDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsU0FBUyxTQUFTLEtBQUs7QUFBQSxRQUNwQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esc0JBQXdCO0FBQUEsUUFDdEIsVUFBWSxDQUFDLFNBQVMsU0FBUyxLQUFLO0FBQUEsUUFDcEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxTQUFTLFNBQVMsS0FBSztBQUFBLFFBQ3BDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsU0FBUyxhQUFhLE1BQU0sS0FBSztBQUFBLFFBQzlDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxvQkFBc0I7QUFBQSxRQUNwQixVQUFZLENBQUMsU0FBUyxNQUFNO0FBQUEsUUFDNUIsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxTQUFTLE1BQU07QUFBQSxRQUM1QixNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFNBQVMsUUFBUSxRQUFRO0FBQUEsUUFDdEMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxTQUFTLFFBQVEsU0FBUyxRQUFRO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHlCQUEyQjtBQUFBLFFBQ3pCLFVBQVksQ0FBQyxTQUFTLGFBQWEsUUFBUTtBQUFBLFFBQzNDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsU0FBUyxVQUFVLE1BQU07QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFNBQVMsU0FBUyxNQUFNO0FBQUEsUUFDckMsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLDJCQUE2QjtBQUFBLFFBQzNCLFVBQVksQ0FBQyxRQUFRLFNBQVMsUUFBUTtBQUFBLFFBQ3RDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSwyQkFBNkI7QUFBQSxRQUMzQixVQUFZLENBQUMsU0FBUyxTQUFTLFFBQVEsUUFBUTtBQUFBLFFBQy9DLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxxQkFBdUI7QUFBQSxRQUNyQixVQUFZLENBQUMsU0FBUyxTQUFTLE9BQU87QUFBQSxRQUN0QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EscUJBQXVCO0FBQUEsUUFDckIsVUFBWSxDQUFDLFNBQVMsT0FBTztBQUFBLFFBQzdCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxTQUFXO0FBQUEsUUFDVCxVQUFZLENBQUMsU0FBUyxVQUFVLFdBQVcsV0FBVztBQUFBLFFBQ3RELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFTO0FBQUEsUUFDUCxVQUFZLENBQUMsVUFBVSxXQUFXLFdBQVc7QUFBQSxRQUM3QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsWUFBYztBQUFBLFFBQ1osVUFBWSxDQUFDLFVBQVUsU0FBUyxTQUFTLFdBQVcsV0FBVztBQUFBLFFBQy9ELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxVQUFVLFdBQVcsT0FBTztBQUFBLFFBQ2xELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxXQUFXLFFBQVE7QUFBQSxRQUN6QyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFVBQVUsT0FBTztBQUFBLFFBQzlCLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxNQUFRO0FBQUEsUUFDTixVQUFZLENBQUMsU0FBUyxnQkFBZ0IsYUFBYSxRQUFRLE9BQU87QUFBQSxRQUNsRSxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsU0FBVztBQUFBLFFBQ1QsVUFBWSxDQUFDLFNBQVMsVUFBVSxRQUFRLFNBQVMsUUFBUTtBQUFBLFFBQ3pELE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxhQUFlO0FBQUEsUUFDYixVQUFZLENBQUMsU0FBUyxTQUFTLFFBQVEsUUFBUSxPQUFPO0FBQUEsUUFDdEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsV0FBVyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxTQUFTLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLE9BQVM7QUFBQSxRQUNQLFVBQVksQ0FBQyxTQUFTLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxTQUFTLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxTQUFTLFNBQVMsU0FBUyxPQUFPO0FBQUEsUUFDL0MsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLHNCQUF3QjtBQUFBLFFBQ3RCLFVBQVksQ0FBQyxRQUFRLFVBQVUsS0FBSztBQUFBLFFBQ3BDLE1BQVE7QUFBQSxRQUNSLG1CQUFxQjtBQUFBLFFBQ3JCLFVBQVk7QUFBQSxNQUNkO0FBQUEsTUFDQSxpQkFBbUI7QUFBQSxRQUNqQixVQUFZLENBQUMsVUFBVSxTQUFTLFVBQVUsWUFBWSxPQUFPO0FBQUEsUUFDN0QsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLG9CQUFzQjtBQUFBLFFBQ3BCLFVBQVksQ0FBQyxXQUFXLFVBQVUsWUFBWSxLQUFLO0FBQUEsUUFDbkQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLGdCQUFrQjtBQUFBLFFBQ2hCLFVBQVksQ0FBQyxVQUFVLFNBQVMsV0FBVyxRQUFRLFVBQVU7QUFBQSxRQUM3RCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0Esb0JBQXNCO0FBQUEsUUFDcEIsVUFBWSxDQUFDLFNBQVMsV0FBVyxRQUFRLFVBQVU7QUFBQSxRQUNuRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFVBQVU7QUFBQSxRQUNoRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsUUFBVTtBQUFBLFFBQ1IsVUFBWSxDQUFDLFFBQVEsUUFBUSxTQUFTLFlBQVksUUFBUSxNQUFNO0FBQUEsUUFDaEUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFFBQVU7QUFBQSxRQUNSLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFNBQVc7QUFBQSxRQUNULFVBQVksQ0FBQyxRQUFRLFFBQVEsWUFBWSxVQUFVLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDOUUsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFVBQVk7QUFBQSxRQUNWLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNBLFdBQWE7QUFBQSxRQUNYLFVBQVksQ0FBQyxRQUFRLFFBQVEsU0FBUyxVQUFVO0FBQUEsUUFDaEQsTUFBUTtBQUFBLFFBQ1IsbUJBQXFCO0FBQUEsUUFDckIsVUFBWTtBQUFBLE1BQ2Q7QUFBQSxNQUNB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QUEsTUFDQSxnQkFBa0I7QUFBQSxRQUNoQixVQUFZLENBQUMsTUFBTSxRQUFRLFFBQVE7QUFBQSxRQUNuQyxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLE1BQ0EsYUFBZTtBQUFBLFFBQ2IsVUFBWSxDQUFDLFNBQVMsY0FBYyxRQUFRLFFBQVE7QUFBQSxRQUNwRCxNQUFRO0FBQUEsUUFDUixtQkFBcUI7QUFBQSxRQUNyQixVQUFZO0FBQUEsTUFDZDtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUM3c1NBO0FBQUEsZ0RBQUFDLFNBQUE7QUFBQSxJQUFBQSxRQUFBO0FBQUEsTUFDRTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQTtBQUFBOzs7QUNuaURBO0FBQUEsNENBQUFDLFNBQUE7QUFBQSxJQUFBQSxRQUFPLFVBQVU7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMLFNBQVM7QUFBQSxNQUNULDZCQUE2QixDQUFDLGFBQU0sYUFBTSxhQUFNLGFBQU0sV0FBSTtBQUFBLElBQzVEO0FBQUE7QUFBQTs7O0FDSkE7QUFBQSw4Q0FBQUMsU0FBQTtBQUFBO0FBSUEsSUFBQUEsUUFBTyxVQUFVLE1BQU07QUFFdEIsWUFBTSxjQUFjO0FBQ3BCLFlBQU0sa0JBQWtCO0FBQ3hCLFlBQU0sc0JBQXNCO0FBQzVCLFlBQU0sb0JBQW9CO0FBQzFCLFlBQU0sMEJBQTBCO0FBQ2hDLFlBQU0sNEJBQTRCO0FBQ2xDLFlBQU0sYUFBYSxrQkFBa0Isc0JBQXNCLG9CQUFvQiwwQkFBMEI7QUFDekcsWUFBTSxXQUFXO0FBQ2pCLFlBQU0sY0FBYztBQUdwQixZQUFNLFNBQVMsSUFBSSxXQUFXO0FBQzlCLFlBQU0sUUFBUSxJQUFJLFVBQVU7QUFDNUIsWUFBTSxPQUFPO0FBQ2IsWUFBTSxXQUFXLE1BQU0sS0FBSyxJQUFJLElBQUk7QUFDcEMsWUFBTSxZQUFZLEtBQUssV0FBVztBQUNsQyxZQUFNLFdBQVc7QUFDakIsWUFBTSxnQkFBZ0I7QUFDdEIsWUFBTSxNQUFNO0FBQ1osWUFBTSxZQUFZO0FBQ2xCLFlBQU0sU0FBUyxJQUFJLFdBQVc7QUFHOUIsWUFBTSxjQUFjLEdBQUcsUUFBUTtBQUMvQixZQUFNLFNBQVMsSUFBSSxRQUFRO0FBQzNCLFlBQU0sVUFBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsVUFBVSxhQUFhLEVBQUUsS0FBSyxHQUFHLENBQUMsSUFBSSxTQUFTLFdBQVc7QUFDckcsWUFBTUMsT0FBTSxTQUFTLGNBQWM7QUFDbkMsWUFBTSxpQkFBaUIsR0FBRyxTQUFTLEdBQUcsS0FBSztBQUMzQyxZQUFNLFNBQVMsTUFBTSxDQUFDLGdCQUFnQixPQUFPLFVBQVUsZUFBZSxRQUFRLE1BQU0sRUFBRSxLQUFLLEdBQUcsQ0FBQztBQUcvRixhQUFPLElBQUksT0FBTyxHQUFHLFNBQVMsSUFBSSxJQUFJLE1BQU0sSUFBSSxLQUFLLFNBQVNBLElBQUcsSUFBSSxHQUFHO0FBQUEsSUFDekU7QUFBQTtBQUFBOzs7QUN0Q0E7QUFBQSwrREFBQUMsU0FBQTtBQUNBLElBQUFBLFFBQU8sVUFBVSxvQkFBSSxJQUFJO0FBQUEsTUFDeEI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRCxDQUFDO0FBQUE7QUFBQTs7O0FDckZEO0FBQUEsNkNBQUFDLFNBQUE7QUFBQTtBQUNBLFFBQU0sb0JBQW9CO0FBRTFCLFFBQU0sWUFBWSxvQkFBSSxJQUFJO0FBQUEsTUFDekIsQ0FBQyxRQUFRLEVBQUU7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QUksR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEtBQUksSUFBRyxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsTUFBSyxHQUFFLEdBQUUsSUFBRyxPQUFNLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLE1BQUssR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsT0FBTSxHQUFFLE1BQUssSUFBRyxHQUFFLElBQUcsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsTUFBSyxJQUFHLEtBQUksSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLE1BQUssR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsSUFBRyxLQUFJLElBQUcsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsTUFBSyxHQUFFLFFBQU8sR0FBRyxHQUFFeEIsS0FBRSxDQUFDLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsS0FBSSxJQUFHLElBQUcsS0FBSSxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxLQUFJLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsS0FBSSxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBSSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEtBQUksSUFBRyxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLEtBQUksSUFBRyxLQUFJLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsS0FBSSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEtBQUksR0FBRSxJQUFHLEtBQUksS0FBSSxLQUFJLElBQUcsS0FBSSxNQUFLLElBQUcsSUFBRyxNQUFLLElBQUcsR0FBRSxNQUFLLEtBQUksTUFBSyxLQUFJLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLE1BQUssR0FBRSxNQUFLLElBQUcsR0FBRSxNQUFLLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsS0FBSSxNQUFLLEtBQUksR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsTUFBSyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsTUFBSyxJQUFHLEdBQUUsR0FBRSxLQUFJLElBQUcsS0FBSSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxJQUFHLElBQUcs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QUFJQSxHQUFFLEtBQUlFLEVBQUMsR0FBRSxhQUFZLElBQUlGLEdBQUUsSUFBSSxHQUFFLE9BQU0sSUFBSUEsR0FBRSxNQUFLRSxFQUFDLEdBQUUsVUFBUyxJQUFJRixHQUFFLFVBQVUsR0FBRSxpQkFBZ0IsSUFBSUEsR0FBRSxpQkFBaUIsR0FBRSxVQUFTLElBQUlBLEdBQUUsT0FBTUUsRUFBQyxHQUFFLFdBQVUsSUFBSUYsR0FBRSxLQUFJRyxFQUFDLEdBQUUsY0FBYSxJQUFJSCxHQUFFLE1BQUssRUFBQyxZQUFXLE1BQUcsWUFBVyxLQUFFLENBQUMsR0FBRSxJQUFHLElBQUlBLEdBQUUsS0FBSSxFQUFDLFlBQVcsTUFBRyxVQUFTLEtBQUUsQ0FBQyxHQUFFLFFBQU8sSUFBSUEsR0FBRSxNQUFLLEVBQUMsWUFBVyxNQUFHLFVBQVMsS0FBRSxDQUFDLEdBQUUsUUFBTyxJQUFJQSxHQUFFLFNBQVEsRUFBQyxRQUFPLE1BQUcsU0FBUSxNQUFHLFlBQVcsS0FBRSxDQUFDLEdBQUUsUUFBTyxJQUFJQSxHQUFFLE9BQU0sRUFBQyxZQUFXLE1BQUcsUUFBTyxNQUFHLFlBQVcsS0FBRSxDQUFDLEdBQUUsV0FBVUMsR0FBRSxNQUFLLENBQUMsR0FBRSxZQUFXQSxHQUFFLE1BQUssQ0FBQyxHQUFFLFdBQVVBLEdBQUUsS0FBSSxDQUFDLEdBQUUsWUFBV0EsR0FBRSxLQUFJLENBQUMsR0FBRSxZQUFXQSxHQUFFLEtBQUksQ0FBQyxHQUFFLFVBQVNBLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxZQUFXQSxHQUFFLGFBQVksQ0FBQyxHQUFFLFVBQVNBLEdBQUUsYUFBWSxDQUFDLEdBQUUsU0FBUSxJQUFJRCxHQUFFLE9BQU0sRUFBQyxZQUFXLE1BQUcsT0FBTSxHQUFFLFFBQU8sTUFBRyxZQUFXLEtBQUUsQ0FBQyxHQUFFLFFBQU9DLEdBQUUsS0FBSSxFQUFFLEdBQUUsTUFBS0EsR0FBRSxLQUFJLEVBQUUsR0FBRSxPQUFNQSxHQUFFLEtBQUksRUFBRSxHQUFFLFVBQVMsSUFBSUQsR0FBRSxNQUFLLEVBQUMsWUFBVyxLQUFFLENBQUMsR0FBRSxVQUFTQyxHQUFFLE1BQUssQ0FBQyxHQUFFLFFBQU9JLEdBQUUsT0FBTyxHQUFFLE9BQU1BLEdBQUUsUUFBT0gsRUFBQyxHQUFFLFFBQU9HLEdBQUUsT0FBTyxHQUFFLFdBQVVBLEdBQUUsVUFBVSxHQUFFLFdBQVVBLEdBQUUsVUFBVSxHQUFFLFVBQVNBLEdBQUUsV0FBVUgsRUFBQyxHQUFFLEtBQUlHLEdBQUUsTUFBSyxFQUFDLFFBQU8sTUFBRyxZQUFXLEtBQUUsQ0FBQyxHQUFFLE9BQU1BLEdBQUUsUUFBT0gsRUFBQyxHQUFFLFVBQVNHLEdBQUUsU0FBUyxHQUFFLE1BQUtBLEdBQUUsT0FBTSxFQUFDLFFBQU8sS0FBRSxDQUFDLEdBQUUsV0FBVUEsR0FBRSxZQUFXRixFQUFDLEdBQUUsS0FBSUUsR0FBRSxJQUFJLEdBQUUsU0FBUUEsR0FBRSxVQUFTSCxFQUFDLEdBQUUsU0FBUUcsR0FBRSxRQUFRLEdBQUUsUUFBT0EsR0FBRSxTQUFRSCxFQUFDLEdBQUUsTUFBS0csR0FBRSxLQUFLLEdBQUUsTUFBS0EsR0FBRSxLQUFLLEdBQUUsUUFBT0EsR0FBRSxPQUFPLEdBQUUsUUFBT0EsR0FBRSxTQUFRLEVBQUMsUUFBTyxLQUFFLENBQUMsR0FBRSxPQUFNQSxHQUFFLE1BQU0sR0FBRSxNQUFLQSxHQUFFLE9BQU0sRUFBQyxZQUFXLE1BQUcsWUFBVyxLQUFFLENBQUMsR0FBRSxPQUFNQSxHQUFFLFFBQU9GLEVBQUMsR0FBRSxRQUFPRSxHQUFFLFNBQVFGLEVBQUMsR0FBRSxRQUFPRSxHQUFFLFNBQVFGLEVBQUMsR0FBRSxVQUFTRSxHQUFFLFdBQVVILEVBQUMsR0FBRSxTQUFRRyxHQUFFLFFBQVEsR0FBRSxTQUFRQSxHQUFFLFVBQVNGLEVBQUMsR0FBRSxPQUFNRSxHQUFFLFFBQU9GLEVBQUMsR0FBRSxPQUFNRSxHQUFFLFFBQU9GLEVBQUMsR0FBRSxRQUFPRSxHQUFFLFNBQVFGLEVBQUMsR0FBRSxLQUFJRSxHQUFFLE1BQUssRUFBQyxZQUFXLE1BQUcsT0FBTSxFQUFDLENBQUMs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S0FBSSxFQUFDLFlBQVdULElBQUUsWUFBV0MsR0FBQyxDQUFDLEdBQUUsY0FBYVEsSUFBRSxNQUFLLEVBQUMsWUFBV1QsSUFBRSxZQUFXQyxHQUFDLENBQUMsR0FBRSxhQUFZUSxJQUFFLE1BQUssRUFBQyxZQUFXVCxJQUFFLFlBQVdDLEdBQUMsQ0FBQyxHQUFFLFVBQVNRLElBQUUsR0FBRyxHQUFFLGFBQVlBLElBQUUsSUFBSSxHQUFFLFFBQU9BLElBQUUsS0FBSSxFQUFDLFlBQVdULElBQUUsWUFBV0MsR0FBQyxDQUFDLEdBQUUsV0FBVVEsSUFBRSxNQUFLLEVBQUMsWUFBV1QsSUFBRSxZQUFXQyxHQUFDLENBQUMsR0FBRSxZQUFXUSxJQUFFLE1BQUssRUFBQyxZQUFXVCxJQUFFLFlBQVdDLEdBQUMsQ0FBQyxHQUFFLFFBQU9RLElBQUUsR0FBRyxHQUFFLFdBQVVBLElBQUUsSUFBSSxHQUFFLFFBQU9BLElBQUUsS0FBSSxFQUFDLFlBQVdULElBQUUsWUFBV0MsR0FBQyxDQUFDLEdBQUUsUUFBT1EsSUFBRSxHQUFHLEdBQUUsT0FBTUEsSUFBRSxLQUFJLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsTUFBS1MsSUFBRSxLQUFJLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsT0FBTVMsSUFBRSxLQUFJLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsYUFBWVMsSUFBRSxNQUFLLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsS0FBSVMsSUFBRSxHQUFHLEdBQUUsVUFBU0EsSUFBRSxLQUFJLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsYUFBWVMsSUFBRSxJQUFJLEdBQUUsT0FBTUEsSUFBRSxNQUFLLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsVUFBU1MsSUFBRSxVQUFVLEdBQUUsVUFBU0EsSUFBRSxPQUFNLEVBQUMsWUFBV1QsR0FBQyxDQUFDLEdBQUUsV0FBVVMsSUFBRSxLQUFJLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsY0FBYVEsSUFBRSxNQUFLLEVBQUMsWUFBV1QsSUFBRSxZQUFXQyxHQUFDLENBQUMsR0FBRSxjQUFhUSxJQUFFLFFBQU8sRUFBQyxZQUFXUixHQUFDLENBQUMsR0FBRSxpQkFBZ0JRLElBQUUsU0FBUSxFQUFDLFlBQVdULElBQUUsWUFBV0MsR0FBQyxDQUFDLEdBQUUsSUFBR1EsSUFBRSxHQUFHLEdBQUUsTUFBS0EsSUFBRSxLQUFJLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsc0JBQXFCUSxJQUFFLE9BQU8sR0FBRSxJQUFHQSxJQUFFLEtBQUksRUFBQyxZQUFXVCxJQUFFLFVBQVNHLElBQUUsQ0FBQyxHQUFFLFFBQU9NLElBQUUsTUFBSyxFQUFDLFlBQVdULElBQUUsVUFBU0csSUFBRSxDQUFDLEdBQUUsYUFBWU0sSUFBRSxNQUFLLEVBQUMsWUFBV1QsSUFBRSxVQUFTRyxJQUFFLENBQUMsR0FBRSxXQUFVTSxJQUFFLE1BQUssRUFBQyxZQUFXVCxJQUFFLFVBQVNHLElBQUUsQ0FBQyxHQUFFLGNBQWFNLElBQUUsTUFBSyxFQUFDLFlBQVdULElBQUUsVUFBU0csSUFBRSxDQUFDLEdBQUUsUUFBT00sSUFBRSxTQUFRLEVBQUMsUUFBT0wsSUFBRSxTQUFRQyxLQUFHLFlBQVdKLEdBQUMsQ0FBQyxHQUFFLE1BQUtRLElBQUUsS0FBSSxFQUFDLFlBQVdULElBQUUsUUFBT0ksSUFBRSxZQUFXSCxHQUFDLENBQUMsR0FBRSxPQUFNUSxJQUFFLEtBQUksRUFBQyxZQUFXVCxJQUFFLFFBQU9JLElBQUUsWUFBV0gsR0FBQyxDQUFDLEdBQUUsYUFBWVEsSUFBRSxNQUFLLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsVUFBU1EsSUFBRSxNQUFLLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsVUFBU1MsR0FBRSxNQUFLLENBQUMsR0FBRSxtQkFBa0JBLEdBQUUsTUFBSyxDQUFDLEdBQUUsV0FBVUEsR0FBRSxNQUFLLENBQUMsR0FBRSxZQUFXQSxHQUFFLE1BQUssQ0FBQyxHQUFFLFdBQVVBLEdBQUUsS0FBSSxDQUFDLEdBQUUsWUFBV0EsR0FBRSxLQUFJLENBQUMsR0FBRSxZQUFXQSxHQUFFLEtBQUksQ0FBQyxHQUFFLFVBQVNBLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxJQUFHQSxHQUFFLGFBQVksQ0FBQyxHQUFFLElBQUdBLEdBQUUsYUFBWSxDQUFDLEdBQUUsWUFBV0EsR0FBRSxhQUFZLENBQUMsR0FBRSxVQUFTQSxHQUFFLGFBQVksQ0FBQyxHQUFFLFdBQVVBLEdBQUUsYUFBWSxDQUFDLEdBQUUsV0FBVUEsR0FBRSxhQUFZLENBQUMsR0FBRSxTQUFRRCxJQUFFLE9BQU0sRUFBQyxZQUFXVCxJQUFFLE9BQU0sR0FBRSxRQUFPSSxJQUFFLFlBQVdILEdBQUMsQ0FBQyxHQUFFLFFBQU9RLElBQUUsS0FBSSxFQUFDLE9BQU0sSUFBRyxZQUFXUixHQUFDLENBQUMsR0FBRSxNQUFLUSxJQUFFLEtBQUksRUFBQyxPQUFNLEdBQUUsQ0FBQyxHQUFFLE9BQU1DLEdBQUUsS0FBSSxFQUFFLEdBQUUsVUFBU0QsSUFBRSxNQUFLLEVBQUMsWUFBV1QsSUFBRSxPQUFNLElBQUcsa0JBQWlCLEtBQUUsQ0FBQyxHQUFFLEtBQUlRLEdBQUUsTUFBSyxFQUFDLFlBQVdSLElBQUUsT0FBTSxFQUFDLENBQUMsR0FBRSxhQUFZUSxHQUFFLGNBQWEsRUFBQyxZQUFXUixJQUFFLE9BQU0sRUFBQyxDQUFDLEdBQUUsUUFBT1EsR0FBRSxPQUFPLEdBQUUsT0FBTUEsR0FBRSxRQUFPLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsUUFBT1EsR0FBRSxPQUFPLEdBQUUsV0FBVUEsR0FBRSxVQUFVLEdBQUUsV0FBVUEsR0FBRSxVQUFVLEdBQUUsVUFBU0EsR0FBRSxXQUFVLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsT0FBTVEsR0FBRSxRQUFPLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsVUFBU1EsR0FBRSxTQUFTLEdBQUUsV0FBVUEsR0FBRSxZQUFXLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsS0FBSU8sR0FBRSxJQUFJLEdBQUUsU0FBUUEsR0FBRSxVQUFTLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsU0FBUVEsR0FBRSxRQUFRLEdBQUUsUUFBT0EsR0FBRSxTQUFRLEVBQUMsWUFBV1IsSUFBRSxRQUFPSSxJQUFFLFlBQVdILEdBQUMsQ0FBQyxHQUFFLE1BQUtPLEdBQUUsS0FBSyxHQUFFLE1BQUtBLEdBQUUsS0FBSyxHQUFFLFFBQU9BLEdBQUUsT0FBTyxHQUFFLE9BQU1BLEdBQUUsTUFBTSxHQUFFLE1BQUtBLEdBQUUsT0FBTSxFQUFDLFlBQVdSLElBQUUsWUFBV0MsR0FBQyxDQUFDLEdBQUUsT0FBTU8sR0FBRSxRQUFPLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsUUFBT08sR0FBRSxTQUFRLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsUUFBT08sR0FBRSxTQUFRLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsVUFBU08sR0FBRSxXQUFVLEVBQUMsWUFBV1IsR0FBQyxDQUFDLEdBQUUsU0FBUVEsR0FBRSxRQUFRLEdBQUUsU0FBUUEsR0FBRSxVQUFTLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsT0FBTU8sR0FBRSxRQUFPLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsT0FBTU8sR0FBRSxRQUFPLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsUUFBT08sR0FBRSxTQUFRLEVBQUMsWUFBV1AsR0FBQyxDQUFDLEdBQUUsU0FBUU8sR0FBRSxVQUFTLEVBQUMsWUFBV1IsSUFBRSxRQUFPSSxJQUFFLFlBQVdILEdBQUMsQ0FBQyxHQUFFLE9BQU1PLEdBQUUsUUFBTyxFQUFDLFlBQVdSLElBQUUsUUFBT0ksSUFBRSxZQUFXSCxHQUFDLENBQUMsR0FBRSxTQUFRTyxHQUFFLFVBQVMsRUFBQyxZQUFXUixJQUFFLFFBQU9JLElBQUUsWUFBV0gsR0FBQyxDQUFDLEdBQUUsS0FBSU8sR0FBRSxNQUFLLEVBQUMsUUFBT04sS0FBRyxZQUFXRixHQUFDLENBQUMsR0FBRSxNQUFLUSxHQUFFLE9BQU0sRUFBQyxRQUFPTixJQUFFLENBQUMsR0FBRSxRQUFPTSxHQUFFLFNBQVEsRUFBQyxRQUFPTixJQUFFLENBQUMsR0FBRSxLQUFJZ0IsR0FBRSxNQUFLLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFNBQVFpQixHQUFFLFVBQVMsRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsUUFBT2lCLEdBQUUsU0FBUSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxRQUFPaUIsR0FBRSxTQUFRLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLE9BQU1pQixHQUFFLFFBQU8sRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsTUFBS2lCLEdBQUUsT0FBTSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxNQUFLaUIsR0FBRSxPQUFNLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLE9BQU1pQixHQUFFLFFBQU8sRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsS0FBSWlCLEdBQUUsTUFBSyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxPQUFNaUIsR0FBRSxRQUFPLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLE1BQUtpQixHQUFFLE9BQU0sRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsU0FBUWlCLEdBQUUsVUFBUyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxRQUFPaUIsR0FBRSxTQUFRLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFFBQU9pQixHQUFFLFNBQVEsRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsVUFBU2lCLEdBQUUsV0FBVSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxTQUFRaUIsR0FBRSxVQUFTLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFVBQVNpQixHQUFFLFdBQVUsRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsU0FBUWlCLEdBQUUsVUFBUyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxhQUFZaUIsR0FBRSxjQUFhLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFlBQVdpQixHQUFFLGFBQVksRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsUUFBT2lCLEdBQUUsU0FBUSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxLQUFJaUIsR0FBRSxNQUFLLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFNBQVFpQixHQUFFLFVBQVMsRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsUUFBT2lCLEdBQUUsU0FBUSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxVQUFTaUIsR0FBRSxXQUFVLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFlBQVdpQixHQUFFLGFBQVksRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsUUFBT2lCLEdBQUUsU0FBUSxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxXQUFVaUIsR0FBRSxZQUFXLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFNBQVFpQixHQUFFLFVBQVMsRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsV0FBVWlCLEdBQUUsWUFBVyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxVQUFTaUIsR0FBRSxXQUFVLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLE9BQU1pQixHQUFFLFFBQU8sRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsU0FBUWlCLEdBQUUsVUFBUyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxZQUFXaUIsR0FBRSxhQUFZLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLFlBQVdpQixHQUFFLGFBQVksRUFBQyxZQUFXakIsR0FBQyxDQUFDLEdBQUUsT0FBTWlCLEdBQUUsUUFBTyxFQUFDLFlBQVdqQixHQUFDLENBQUMsR0FBRSxTQUFRaUIsR0FBRSxVQUFTLEVBQUMsWUFBV2pCLEdBQUMsQ0FBQyxHQUFFLE1BQUtRLElBQUUsUUFBTyxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLFFBQU9RLElBQUUsVUFBUyxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLEtBQUlRLElBQUUsT0FBTSxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLFFBQU9RLElBQUUsVUFBUyxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLFNBQVFRLElBQUUsV0FBVSxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLFFBQU9RLElBQUUsVUFBUyxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLGFBQVlRLElBQUUsU0FBUSxFQUFDLFlBQVdSLEdBQUMsQ0FBQyxHQUFFLEtBQUlRLElBQUUsS0FBSyxHQUFFLFNBQVFBLElBQUUsU0FBUyxHQUFFLFNBQVFBLElBQUUsV0FBVSxFQUFDLFlBQVcsS0FBRSxDQUFDLEdBQUUsYUFBWUEsSUFBRSxlQUFjLEVBQUMsWUFBVyxLQUFFLENBQUMsR0FBRSxXQUFVQSxJQUFFLFdBQVcsR0FBRSxhQUFZQSxJQUFFLE1BQUssRUFBQyxZQUFXLEtBQUUsQ0FBQyxFQUFDO0FBQUUsZUFBU1csR0FBRSxHQUFFO0FBQUMsZUFBTyxLQUFHLE1BQUksS0FBRztBQUFBLE1BQUc7QUFBQyxlQUFTQyxJQUFHLEdBQUU7QUFBQyxlQUFPLEtBQUc7QUFBQSxNQUFFO0FBQUMsZUFBU0MsR0FBRSxHQUFFO0FBQUMsZUFBTyxLQUFHLE1BQUksS0FBRztBQUFBLE1BQUc7QUFBQyxlQUFTQyxJQUFHLEdBQUU7QUFBQyxlQUFPLEtBQUcsTUFBSSxLQUFHO0FBQUEsTUFBRztBQUFDLGVBQVNDLElBQUcsR0FBRTtBQUFDLGVBQU9ULElBQUcsQ0FBQztBQUFBLE1BQUM7QUFBQyxlQUFTVSxLQUFHLEdBQUU7QUFBQyxlQUFPVCxJQUFHLENBQUM7QUFBQSxNQUFDO0FBQUMsZUFBU1UsSUFBRyxHQUFFO0FBQUMsZUFBTyxLQUFHLE1BQUksS0FBRztBQUFBLE1BQUU7QUFBQyxlQUFTQyxJQUFHLEdBQUU7QUFBQyxlQUFPLEtBQUcsT0FBSyxLQUFHO0FBQUEsTUFBRztBQUFDLGVBQVNDLElBQUcsR0FBRTtBQUFDLGVBQU8sS0FBRyxNQUFJLEtBQUc7QUFBQSxNQUFFO0FBQUMsZUFBU0MsSUFBRyxHQUFFO0FBQUMsZUFBTyxLQUFHLE1BQUksS0FBRztBQUFBLE1BQUU7QUFBQyxlQUFTQyxJQUFHLEdBQUU7QUFBQyxlQUFPLEtBQUcsTUFBSSxLQUFHO0FBQUEsTUFBRTtBQUFDLGVBQVNDLElBQUcsR0FBRTtBQUFDLGVBQU8sTUFBSTtBQUFBLE1BQUU7QUFBQyxlQUFTQyxJQUFHLEdBQUU7QUFBQyxlQUFPZixJQUFHLENBQUM7QUFBQSxNQUFDO0FBQUMsZUFBU2dCLElBQUcsR0FBRTtBQUFDLGVBQU8sS0FBRyxPQUFLLEtBQUc7QUFBQSxNQUFHO0FBQUMsZUFBU0MsSUFBRyxHQUFFO0FBQUMsZUFBTyxLQUFHLE9BQUssS0FBRztBQUFBLE1BQUc7QUFBQyxlQUFTQyxHQUFFLEdBQUU7QUFBQyxlQUFPdEIsSUFBRyxDQUFDO0FBQUEsTUFBQztBQUFDLGVBQVN1QixJQUFHLEdBQUU7QUFBQyxlQUFPdEIsSUFBRyxDQUFDO0FBQUEsTUFBQztBQUFDLGVBQVN1QixJQUFHLEdBQUU7QUFBQyxlQUFPLE1BQUk7QUFBQSxNQUFFO0FBQUMsZUFBU0MsSUFBRyxHQUFFO0FBQUMsZUFBTyxLQUFHLE1BQUksS0FBRztBQUFBLE1BQUU7QUFBQyxlQUFTQyxHQUFFLEdBQUU7QUFBQyxlQUFPM0IsR0FBRSxDQUFDO0FBQUEsTUFBQztBQUFDLE1BQUFBLEdBQUUsQ0FBQyxFQUFFLGdCQUFjLE9BQUc7QUFBQyxVQUFFLElBQUk7QUFBQSxNQUFDLEdBQUVBLEdBQUUsQ0FBQyxFQUFFLGdCQUFjQSxHQUFFLENBQUMsRUFBRSxnQkFBY0EsR0FBRSxFQUFFLEVBQUUsZ0JBQWMsT0FBRztBQUFDLFVBQUUsS0FBS2IsR0FBRSxLQUFLO0FBQUEsTUFBQyxHQUFFYSxHQUFFLEVBQUUsRUFBRSxnQkFBYyxPQUFHO0FBQUMsVUFBRSxFQUFFLFNBQU8sQ0FBQyxNQUFJYixHQUFFLFdBQVMsRUFBRSxJQUFJLElBQUUsRUFBRSxLQUFLQSxHQUFFLFFBQVE7QUFBQSxNQUFDLEdBQUVhLEdBQUUsR0FBRyxFQUFFLGdCQUFjLE9BQUc7QUFBQyxVQUFFLEtBQUtiLEdBQUUsUUFBT0EsR0FBRSxNQUFNO0FBQUEsTUFBQztBQUFFLFVBQUl5QyxNQUFHLGdySUFBK3FJQyxNQUFHLHFrRkFBb2tGQyxNQUFHLElBQUksT0FBTyxNQUFJRixNQUFHLEdBQUcsR0FBRUcsTUFBRyxJQUFJLE9BQU8sTUFBSUgsTUFBR0MsTUFBRyxHQUFHO0FBQUUsTUFBQUQsTUFBR0MsTUFBRztBQUFLLFVBQUlHLE1BQUcsQ0FBQyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEtBQUksSUFBRyxJQUFHLEtBQUksSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsS0FBSSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEtBQUksSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxLQUFJLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsS0FBSSxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxLQUFJLElBQUcsS0FBSSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxJQUFHLEtBQUksR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksSUFBRyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxLQUFJLEdBQUUsSUFBRyxLQUFJLEtBQUksS0FBSSxJQUFHLEtBQUksTUFBSyxJQUFHLElBQUcsTUFBSyxJQUFHLEdBQUUsTUFBSyxLQUFJLE1BQUssS0FBSSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxNQUFLLEdBQUUsTUFBSyxJQUFHLEdBQUUsTUFBSyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEtBQUksTUFBSyxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLE1BQUssSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLE1BQUssSUFBRyxHQUFFLEdBQUUsS0FBSSxJQUFHLEtBQUksSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxJQUFHLElBQUcsS0FBSSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxJQUFHLEdBQUUsR0FBRSxNQUFLLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxNQUFLLE9BQU0sSUFBRyxNQUFLLEdBQUUsS0FBSSxHQUFFLE1BQUssSUFBRyxNQUFLLE1BQUssS0FBSSxNQUFLLE1BQUssR0FBRSxJQUFJLEdBQUVDLE1BQUcsQ0FBQyxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsTUFBSyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsS0FBSSxJQUFHLEtBQUksR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxNQUFLLEdBQUUsR0FBRSxJQUFHLE9BQU0sR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsTUFBSyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxPQUFNLEdBQUUsTUFBSyxJQUFHLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxNQUFLLElBQUcsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsTUFBSyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxJQUFHLEtBQUksSUFBRyxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxNQUFLLEdBQUUsUUFBTyxHQUFHO0FBQUUsZUFBU0MsSUFBRyxHQUFFckgsS0FBRTtBQUFDLFlBQUlDLEtBQUU7QUFBTSxpQkFBUUMsS0FBRSxHQUFFLElBQUVGLElBQUUsUUFBT0UsS0FBRSxHQUFFQSxNQUFHLEdBQUU7QUFBQyxjQUFHRCxNQUFH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QUlDLEtBQUUsRUFBRUYsRUFBQztBQUFFLFNBQU8sT0FBTyxVQUFVRSxFQUFDLEtBQUdBLE9BQUksRUFBRUQsR0FBQztBQUFDO0FBQUMsU0FBUzJELElBQUc1RCxJQUFFQyxLQUFFO0FBQUMsU0FBTzBELElBQUczRCxJQUFFQyxHQUFDLEtBQUcsR0FBR0QsSUFBRUMsR0FBQztBQUFDO0FBQWEsU0FBUyxHQUFHRCxJQUFFO0FBQUMsTUFBRyxPQUFLLFFBQU0sT0FBTyxHQUFHLFVBQVM7QUFBQyxRQUFJQyxNQUFFO0FBQUcsV0FBTyxLQUFHLEdBQUcsWUFBVSxNQUFLQTtBQUFBLEVBQUM7QUFBQyxTQUFPLEtBQUcsR0FBRyxZQUFVRCxNQUFHLHVCQUFPLE9BQU8sSUFBSSxHQUFFLElBQUk7QUFBRTtBQUFzQyxTQUFTLEdBQUdBLElBQUU7QUFBQyxTQUFPLEdBQUdBLEVBQUM7QUFBQztBQUFDLFNBQVMsR0FBR0EsSUFBRUMsTUFBRSxRQUFPO0FBQUMsS0FBR0QsRUFBQztBQUFFLFdBQVNFLEdBQUUsR0FBRTtBQUFDLFFBQUlDLEtBQUUsRUFBRUYsR0FBQyxHQUFFLElBQUVELEdBQUVHLEVBQUM7QUFBRSxRQUFHLENBQUMsTUFBTSxRQUFRLENBQUM7QUFBRSxZQUFNLE9BQU8sT0FBTyxJQUFJLE1BQU0sNkJBQTZCQSxFQUFDLElBQUksR0FBRSxFQUFDLE1BQUssRUFBQyxDQUFDO0FBQUUsV0FBTztBQUFBLEVBQUM7QUFBQyxTQUFPRDtBQUFDO0FBQW14WCxTQUFTLEdBQUdGLElBQUU7QUFBQyxTQUFPQSxLQUFFLElBQUksSUFBSUEsRUFBQyxHQUFFLENBQUFDLFFBQUdELEdBQUUsSUFBSUMsT0FBRyxPQUFLLFNBQU9BLElBQUUsSUFBSTtBQUFDO0FBQStELFNBQVMsR0FBR0QsSUFBRUMsS0FBRTtBQUFDLE1BQUlDLEtBQUVELElBQUUsTUFBTSxHQUFHO0FBQUUsV0FBUSxJQUFFQyxHQUFFLFNBQU8sR0FBRSxLQUFHLEdBQUUsS0FBSTtBQUFDLFFBQUlDLEtBQUVELEdBQUUsQ0FBQztBQUFFLFFBQUcsTUFB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LEdBQUUsQ0FBQyxJQUFFcUQsR0FBRSxFQUFFLE1BQUssRUFBRSxVQUFRLEVBQUUsS0FBSyxJQUFFMUUsR0FBRSxLQUFLLEtBQUksQ0FBQyxJQUFFQSxHQUFFLEtBQUssQ0FBQyxHQUFFQSxHQUFFLEtBQUssR0FBRyxHQUFFQTtBQUFDO0FBQUMsU0FBUyxHQUFHSCxJQUFFQyxLQUFFO0FBQUMsTUFBRyxFQUFDLE1BQUtDLEdBQUMsSUFBRUYsSUFBRSxJQUFFNkUsR0FBRTNFLEVBQUMsR0FBRUMsS0FBRTBFLEdBQUUzRSxJQUFFLEVBQUUsSUFBSSxHQUFFLElBQUVBLEdBQUUsU0FBTztBQUFxQixTQUFNLENBQUMsSUFBRSxNQUFJLE1BQUtzQixHQUFFLENBQUNyQixLQUFFLElBQUUsS0FBRyxDQUFDLElBQUUsTUFBSSxJQUFHb0csR0FBRXZHLElBQUVDLEdBQUMsQ0FBQyxDQUFDLEdBQUVFLEtBQUUsSUFBRSxJQUFHLEdBQUc7QUFBQztBQUFDLFNBQVMsR0FBR0gsSUFBRUMsS0FBRUMsSUFBRTtBQUFDLE1BQUksSUFBRXNHLElBQUd4RyxJQUFFLEdBQUdBLElBQUVDLEtBQUVDLEVBQUMsR0FBRUQsR0FBQztBQUFFLFNBQU8sR0FBR0QsSUFBRSxHQUFFQyxHQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUdELElBQUVDLEtBQUU7QUFBQyxNQUFHLEVBQUMsTUFBS0MsR0FBQyxJQUFFRixJQUFFLElBQUU2RSxHQUFFM0UsSUFBRSxFQUFFLElBQUk7QUFBRSxTQUFNLENBQUNxRyxHQUFFdkcsSUFBRUMsS0FBRSxFQUFDLFFBQU8sRUFBQyxDQUFDLEdBQUUsSUFBRSxJQUFFLEVBQUU7QUFBQztBQUFDLFNBQVMsR0FBR0QsSUFBRUMsS0FBRUMsSUFBRTtBQUFDLE1BQUcsRUFBQyxNQUFLLEVBQUMsSUFBRUY7QUFBRSxTQUFNLENBQUMsS0FBSUEsR0FBRSxLQUFLLENBQUMsRUFBQyxNQUFLRyxHQUFDLE1BQUk7QUFBQyxRQUFJLElBQUUsQ0FBQyxPQUFNRCxHQUFFLENBQUM7QUFBRSxXQUFNLENBQUMyRSxHQUFFMUUs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QUMsU0FBUUMsS0FBRyxVQUFTQyxJQUFFLEtBQUcsR0FBRSxHQUFHLG1CQUFtQkYsR0FBRTtBQUFFLFNBQU0sRUFBQyxTQUFRLElBQUcsTUFBSyxJQUFHLFNBQVFDLEtBQUcsVUFBU0MsSUFBRTtBQUFDO0FBQUMsU0FBUyxHQUFHLElBQUc7QUFBQyxNQUFHLEVBQUMsU0FBUSxHQUFFLElBQUUsSUFBSSxFQUFFO0FBQUUsU0FBTyxPQUFPLFVBQVUsZUFBZSxLQUFLLElBQUcsVUFBVSxLQUFHLE9BQU8sVUFBVSxlQUFlLEtBQUssSUFBRyxRQUFRO0FBQUM7QUFBQyxTQUFTLElBQUksSUFBRztBQUFDLFNBQU8sTUFBTSxRQUFRLEVBQUUsS0FBRyxHQUFHLFNBQU87QUFBQztBQUFZLFNBQVNDLElBQUcsSUFBRztBQUFDLE1BQUlGO0FBQUcsTUFBSSxLQUFHLEdBQUcsUUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFFLEdBQUcsT0FBTUQsUUFBS0MsTUFBRyxHQUFHLGdCQUFjLE9BQUssU0FBT0EsSUFBRyxlQUFhLEdBQUc7QUFBVyxTQUFPLEdBQUdELEdBQUUsSUFBRSxLQUFLLElBQUlHLElBQUdILElBQUcsQ0FBQyxDQUFDLEdBQUUsRUFBRSxJQUFFO0FBQUU7QUFBQyxTQUFTSSxJQUFHLElBQUc7QUFBQyxTQUFPLEdBQUcsUUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFFLEdBQUc7QUFBRztBQUFDLFNBQVMsSUFBSSxJQUFHO0FBQUMsU0FBTyxLQUFHLE9BQU8sTUFBSSxhQUFXLEVBQUMsT0FBTSxHQUFFLElBQUUsSUFBRyxFQUFDLFdBQVUsVUFBUyxXQUFVLElBQUcsVUFBU0QsS0FBRyxRQUFPQyxLQUFHLEdBQUcsR0FBRTtBQUFDO0FBQVksU0FBUyxJQUFJLElBQUc7QUFBQyxTQUFPLEdBQUcsT0FBTyxDQUFDLE1BQUksT0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFJLE1BQUksT0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFFO0FBQUU7QUFBNkksU0FBUyxJQUFJLElBQUc7QUFBQyxTQUFPLEtBQUcsSUFBSSxJQUFJLEVB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QUMsR0FBRSxJQUFFLEdBQUUsSUFBRSxHQUFFO0FBQUksa0JBQUFMLEdBQUUsTUFBTSxHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQUUseUJBQVEsSUFBRXdCLElBQUcsR0FBR25CLEdBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxJQUFFLEdBQUUsSUFBRSxHQUFFO0FBQUksa0JBQUFMLEdBQUUsTUFBTSxHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQUEsY0FBQztBQUFDO0FBQUEsVUFBSztBQUFDLFVBQUFFLEdBQUUsQ0FBQyxLQUFHLElBQUVELEdBQUUsS0FBSyxVQUFRLEdBQUVDLEdBQUUsQ0FBQyxLQUFHLElBQUVELEdBQUUsS0FBSyxVQUFRO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdELElBQUU7QUFBQyxrQkFBT0EsSUFBRTtBQUFBLFlBQUMsS0FBSztBQUFBLFlBQUUsS0FBSztBQUFBLFlBQUcsS0FBSztBQUFHLHFCQUFPO0FBQUEsWUFBRTtBQUFRLHFCQUFPO0FBQUEsVUFBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHQSxJQUFFQyxJQUFFO0FBQUMsY0FBSUM7QUFBRSxrQkFBT0YsSUFBRTtBQUFBLFlBQUMsS0FBSztBQUFFLGNBQUFFLEtBQUU7QUFBYTtBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBYTtBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVTtBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBWTtBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFFLGNBQUFBLEtBQUU7QUFBVztBQUFBLFlBQU0sS0FBSztBQUFHLGNBQUFBLEtBQUU7QUFBYTtB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QUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxjQUFBQyxLQUFFLE9BQUtBLEtBQUU7QUFBSSx1QkFBUSxJQUFFLEdBQUUsSUFBRUEsSUFBRTtBQUFJLGdCQUFBQyxLQUFFcUMsSUFBR3JDLElBQUVGLEdBQUUsS0FBSyxDQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSztBQUFBLFlBQUUsS0FBSztBQUFFLGNBQUFDLEtBQUUsT0FBS0EsS0FBRTtBQUFJLHVCQUFRLElBQUUsR0FBRSxJQUFFQSxJQUFFO0FBQUksZ0JBQUFDLEtBQUVxQyxJQUFHckMsSUFBRUYsR0FBRSxLQUFLLENBQUMsQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFLO0FBQUUsY0FBQUMsS0FBRSxPQUFLQSxLQUFFLEtBQUlBLE1BQUc7QUFBRSx1QkFBUSxJQUFFLEdBQUUsSUFBRUEsSUFBRTtBQUFJLGdCQUFBQyxLQUFFcUMsSUFBR3JDLElBQUVGLEdBQUUsS0FBSyxDQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSztBQUFHLGNBQUFDLE1BQUc7QUFBQSxZQUFFLEtBQUs7QUFBRSxjQUFBQSxLQUFFLE9BQUtBLEtBQUU7QUFBSSx1QkFBUSxJQUFFLEdBQUUsSUFBRUEsSUFBRTtBQUFJLGdCQUFBQyxLQUFFLEdBQUdBLElBQUVGLEdBQUUsS0FBSyxDQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSztBQUFHLGNBQUFDLE1BQUc7QUFBQSxZQUFFLEtBQUs7QUFBRSxjQUFBQSxLQUFFLE9BQUtBLEtBQUU7QUFBSSx1QkFBUSxJQUFFLEdBQUUsSUFBRUEsSUFBRTtBQUFJLGdCQUFBQyxLQUFFLEdBQUdBLElBQUVGLEdBQUUsS0FBSyxDQUFDLENBQUM7QUFBRTtBQUFBLFVBQUs7QUFBQyxpQkFBT0U7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0YsSUFBRUMsSUFBRTtBQUFDLGlCQUFPQSxHQUFFLENBQUMsSUFBRSxHQUFFRCxHQUFFLFFBQVE7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLGtCQUFPRCxHQUFFLE9B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QUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxLQUFJLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxNQUFLLENBQUMsR0FBRSxLQUFHLDZCQUE0QixLQUFHLENBQUMsR0FBRUEsS0FBRyxNQUFLLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxNQUFLLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUEsS0FBRyxNQUFLLEVBQUUsR0FBRSxLQUFHLDZCQUE0QixLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLDRCQUEyQixDQUFDLEdBQUUsR0FBRSxDQUFDLENBQUMsR0FBRSw0QkFBNEIsR0FBRSxLQUFHLENBQUMsR0FBRSxHQUFFLENBQUMsR0FBRSxLQUFHLElBQUcsS0FBRyxnQkFBZSxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsQ0FBQyxHQUFFOEIsR0FBRSxHQUFFLEtBQUcsUUFBTyxLQUFHLFFBQU8sS0FBRyxRQUFPLEtBQUcsUUFBTyxLQUFHLE9BQU0sS0FBRyxRQUFPLEtBQUcsT0FBTSxLQUFHLFFBQU8sS0FBRyxPQUFNLEtBQUcsUUFBTyxLQUFHLE9BQU0sS0FBRyxJQUFHLEtBQUcsT0FBTSxLQUFHLFFBQU8sS0FBRyxRQUFPLEtBQUcsUUFBTyxLQUFHLFFBQU8sS0FBRyxPQUFNLEtBQUcsUUFBTyxLQUFHLE9BQU0sS0FBRyxRQUFPLEtBQUcsT0FBTSxLQUFHLFFBQU8sS0FBRyxPQUFNLEtBQUcsSUFBRyxLQUFH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LEtBQUcsSUFBRyxLQUFHMVcsS0FBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRzZQLEtBQUcsS0FBR3BMLEtBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHOU4sS0FBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHMUYsS0FBRyxLQUFHcWQsS0FBRyxLQUFHaFEsS0FBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLElBQUcsS0FBRyxJQUFHLEtBQUcsSUFBRyxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUd6TixLQUFHLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUUsQ0FBQyxJQUFHLElBQUcsQ0FBQyxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUcsWUFBVyxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLEVBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBR3VILEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRWYsS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUVkLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsQ0FBQyxHQUFFaWEsR0FBRSxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxHQUFFLENBQUMsR0FBRTFkLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsSUFBRyxDQUFDLElBQUcsQ0FBQyxHQUFFdUUsS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRW5CLEdBQUUsR0FBRSxLQUFHaVcsS0FBRyxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLEVBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBRy9ULEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRWYsS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUVkLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsQ0FBQyxHQUFFaWEsR0FBRSxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxHQUFFLENBQUMsR0FBRTFkLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFdUUsS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUd5TSxLQUFHLENBQUMsSUFBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUcsVUFBUyxLQUFHLElBQUcsS0FBRyxRQUFPLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsSUFBR2pULEtBQUcsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUcsSUFBRyxDQUFDLENBQUMsR0FBRSxFQUFFLEdBQUUsS0FBRyxjQUFhLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsRUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxJQUFHdUgsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFZixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRWQsR0FBRSxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxHQUFFLENBQUMsR0FBRXpELEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsSUFBRyxDQUFDLElBQUcsQ0FBQyxHQUFFdUUsS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMs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Z0IsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLGdEQUFnRCxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsSUFBRyxxRUFBb0UsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxJQUFHLDRCQUEyQixDQUFDLENBQUMsQ0FBQyxHQUFFLDZGQUE2RixHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsSUFBRyxJQUFHLENBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxHQUFFLGVBQWUsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLElBQUcsSUFBRyxDQUFDLEdBQUUsR0FBRSxDQUFDLElBQUcscUJBQW9CLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBRyxNQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLDJDQUEyQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsSUFBRyxJQUFHLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBRyxlQUFjLENBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSw0QkFBNEIsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLElBQUcscUJBQW9CLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBRyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsc0JBQXNCLEdBQUUsTUFBSSxxQkFBb0IsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsSUFBRyxFQUFFLEdBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxJQUFHa1IsR0FBRSxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsSUFBRyxFQUFFLEdBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUVuTCxLQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsSUFBR2dLLEdBQUUsR0FBRSxDQUFDLEdBQUVwTyxLQUFHLEdBQUcsR0FBRSxDQUFDLEdBQUUsSUFBRyxHQUFHLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxHQUFFLENBQUMsR0FBRSxJQUFHLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLElBQUcsSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsSUFBRyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssRUFBRSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxJQUFHLElBQUksR0FBRSxDQUFDLEdBQUVzWixLQUFHLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLElBQUcsSUFBSSxHQUFFLENBQUMsR0FBRXhELEtBQUcsSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLEVBQUUsR0FBRSxDQUFDLEdBQUV0TSxLQUFHLElBQUksR0FBRSxDQUFDLEdBQUUsSUFBRyxJQUFJLEdBQUUsQ0FBQyxHQUFFLElBQUcvRyxHQUFFLEdBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRWlFLEtBQUdhLEdBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxNQUFLLElBQUksR0FBRSxDQUFDLEdBQUUsSUFBRyxJQUFJLEdBQUUsQ0FBQyxHQUFFLE1BQUssSUFBSSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTXBKLEdBQUUsR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFUCxLQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFNlgsS0FBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLElBQUcsS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNMVIsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTTlELEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU15WCxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU1uQixHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU1wUSxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU16SSxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0rWSxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU15RCxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNN0UsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTXdDLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFekIsS0FBR3FDLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFeFQsS0FBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0rTCxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNRyxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUV2TCxLQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU1vVCxHQUFFLEdBQUUsQ0FBQyxHQUFFdEosS0FBR2pPLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTXVELEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU1KLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTW9SLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUVyRyxLQUFHN0UsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTW5JLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHMlEsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNeUQsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLElBQUcsS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTTlVLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTXRDLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTXdFLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFMUQsS0FBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTVosR0FBRSxHQUFFLENBQUMsR0FBRSxJQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLElBQUdzQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNbkIsR0FBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTWtDLEdBQUUsR0FBRSxDQUFDLEdBQUUsT0FBTSxFQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUVtVSxLQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTXhDLEdBQUUsR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUxTSxLQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEVBQUUsR0FBRSxDQUFDLEdBQUU3TCxLQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxJQUFHLEtBQUssR0FBRSxDQUFDLEdBQUU0TixLQUFHLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0rRyxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU03USxHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU00WixHQUFFLEdBQUUsQ0FBQyxHQUFFLE9BQU0sRUFBRSxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsT0FBTSxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLEtBQUssR0FBRSxDQUFDLEdBQUUsSUFBRyxLQUFLLEdBQUUsQ0FBQyxHQUFFLE9BQU0sS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNdFEsR0FBRSxHQUFFLENBQUMsR0FBRXhELEtBQUcsS0FBSyxHQUFFLENBQUMsR0FBRSxPQUFNLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU81SSxHQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU8sRUFBRSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsSUFBRyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPeUwsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPL0MsR0FBRSxHQUFFLENBQUMsR0FBRSxJQUFHNE8sR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPbEMsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPcE4sR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTzBELEdBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU8sRUFBRSxHQUFFLENBQUMsR0FBRSxRQUFPL0IsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPLEVBQUUsR0FBRSxDQUFDLEdBQUVYLEtBQUcsTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPRyxHQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLEVBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU8sRUFBRSxHQUFFLENBQUMsR0FBRSxRQUFPM0gsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPK0IsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPLEVBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTzJWLEdBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU8sRUFBRSxHQUFFLENBQUMsR0FBRSxRQUFPLEVBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFaFMsS0FBRyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTyxNQUFNLEdBQUUsQ0FBQyxHQUFFLFFBQU8sTUFBTSxHQUFFLENBQUMsR0FBRSxRQUFPLE1BQU0sR0FBRSxDQUFDLEdBQUUsUUFBTzhRLEdBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU9vQixHQUFFLEdBQUUsQ0FBQyxHQUFFMVAsS0FBRyxNQUFNLEdBQUUsQ0FBQyxHQUFFakcsS0FBRyxFQUFFLEdBQUUsQ0FBQyxHQUFFLFFBQU9HLEdBQUUsR0FBRSxDQUFDLEdBQUUsUUFBT3dHLEdBQUUsR0FBRSxDQUFDLEdBQUV6SyxLQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsSUFBRyxNQUFNLEdBQUUsQ0FBQyxHQUFFZ1osS0FBRyxNQUFNLEdBQUUsQ0FBQyxHQUFFSSxLQUFHNVIsR0FBRSxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUU0VixLQUFHdEUsR0FBRSxHQUFFLENBQUMsR0FBRSxRQUFPLEVBQUUsR0FBRSxDQUFDLEdBQUUsUUFBTzVTLEdBQUUsR0FBRSxD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cUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSwwQ0FBeUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSxvQ0FBbUMsTUFBSSwwQkFBeUIsTUFBSSxJQUFHLE1BQUksQ0FBQyxJQUFHLENBQUMsR0FBRSxNQUFJLENBQUMsSUFBRyxDQUFDLEdBQUUsTUFBSSw2QkFBNEIsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLHlCQUF3QixNQUFJLHVCQUFzQixNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFZ0ksR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFZ0wsR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRThCLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRTlDLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUVyRyxHQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxLQUFLLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRXNRLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFclksR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEtBQUssR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRTRKLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxJQUFJLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBSSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRyxHQUFFLE1BQUksQ0FBQyxHQUFFNEssR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUksR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFM0YsR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUcsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFHLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFL08sR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFF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LENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSTlMLEtBQUcsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLE1BQUkrSCxLQUFHLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSTVILEtBQUcsTUFBSSxDQUFDLEdBQUUsSUFBRyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUlvQixLQUFHLE1BQUlBLEtBQUcsTUFBSSxDQUFDLEdBQUUsc0JBQXNCLEdBQUUsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxDQUFDLEdBQUUsbUNBQWtDLE1BQUssRUFBRSxHQUFFLE1BQUksQ0FBQyxHQUFFLHlCQUF5QixHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUloQixLQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJNlAsS0FBRyxNQUFJLElBQUcsTUFBSSxDQUFDLEdBQUUseUJBQXlCLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUk5TSxLQUFHLE1BQUk2VSxLQUFHLE1BQUlBLEtBQUcsTUFBSXBFLEtBQUcsTUFBSSxDQUFDLEdBQUUsb0NBQW9DLEdBQUUsTUFBSUEsS0FBRyxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLElBQUdwWSxHQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUlnRyxLQUFHLE1BQUksQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFLE1BQUksK0RBQThELE1BQUksQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFLE1BQUkrVixLQUFHLE1BQUksNEJBQTJCLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUlBLEtBQUcsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSSxzREFBcUQsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLElBQUcsTUFBSyxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsK0NBQStDLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUl4RSxLQUFHLE1BQUksQ0FBQyxHQUFFLElBQUcsSUFBRyxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksV0FBVSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLElBQUcsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUlsVCxLQUFHLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLGtCQUFrQixHQUFFLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsb0JBQW9CLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBRyxJQUFHLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxTQUFRLE1BQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxHQUFFLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBRyxLQUFJLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBRyxLQUFJLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxpQkFBZ0IsTUFBSSxDQUFDLEdBQUUsQ0FBQyxHQUFFLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLElBQUcsTUFBSSxDQUFDLEdBQUV3QixHQUFFLEdBQUUsTUFBSSxJQUFHLE1BQUksQ0FBQyxJQUFHMUYsR0FBRSxHQUFFLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxDQUFDLElBQUcsY0FBYyxHQUFFLE1BQUksQ0FBQyxHQUFFK0MsR0FBRSxHQUFFLE1BQUksQ0FBQyxHQUFFQSxHQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsSUFBRyxJQUFHLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRTJDLEdBQUUsR0FBRSxNQUFJLElBQUcsTUFBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLE1BQUksQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUsTUFBSSxDQUFDLEdBQUUsR0FBRSxHQUFFLENBQUMsR0FBRSxNQUFJLElBQUcsTUFBSSxVQUFTLE1BQUksSUFBRyxNQUFJLHlEQUF3RCxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUMsR0FBRSw2QkFBNEJtUCxLQUFHLEVBQUUsR0FBRSxNQUFJLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxDQUFDLENBQUMsR0FBRSxNQUFJLElBQUcsTUFBSXNCLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUluRyxLQUFHLE1BQUksSUFBRyxNQUFJdUssS0FBRyxNQUFJOUUsS0FBRyxNQUFJLHdCQUF1QixNQUFJLGVBQWMsTUFBSSxXQUFVLE1BQUlzSSxLQUFHLE1BQUksa0JBQWlCLE1BQUlBLEtBQUcsTUFBSSxxQkFBb0IsTUFBSSxxQkFBb0IsTUFBSSxJQUFHLE1BQUksK0JBQThCLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLDRCQUEyQixNQUFJbEQsS0FBRyxNQUFJTixLQUFHLE1BQUl4UixLQUFHLE1BQUksaUJBQWdCLE1BQUlpSSxLQUFHLE1BQUksd0JBQXVCLE1BQUkxRSxLQUFHLE1BQUlpTyxLQUFHLE1BQUksb0JBQW1CLE1BQUksa0JBQWlCLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSw0QkFBMkIsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSx3QkFBdUIsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUksMEJBQXlCLE1BQUksYUFBWSxNQUFJckMsS0FBRyxNQUFJLHVCQUFzQixNQUFJcUMsS0FBRyxNQUFJLFVBQVMsTUFBSWpPLEtBQUcsTUFBSWQsS0FBRyxNQUFJLGdCQUFlLE1BQUksUUFBTyxNQUFJK08sS0FBRyxNQUFJOUMsS0FBRyxNQUFJMVEsS0FBRyxNQUFJLGtCQUFpQixNQUFJLElBQUcsTUFBSXdULEtBQUcsTUFBSTlDLEtBQUcsTUFBSTFRLEtBQUcsTUFBSSxrQkFBaUIsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJdUYsS0FBRyxNQUFJLGVBQWMsTUFBSTBELEtBQUcsTUFBSXJLLEtBQUcsTUFBSThQLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSxxQkFBb0IsTUFBSThFLEtBQUcsTUFBSXdELEtBQUcsTUFBSSxvQkFBbUIsTUFBSXZZLEtBQUcsTUFBSSxtQkFBa0IsTUFBSSxTQUFRLE1BQUksZ0JBQWUsTUFBSSxtQkFBa0IsTUFBSUEsS0FBRyxNQUFJLGtCQUFpQixNQUFJLGFBQVksTUFBSSxXQUFVLE1BQUlRLEtBQUcsTUFBSSxnQkFBZSxNQUFJdVUsS0FBRyxNQUFJak8sS0FBRyxNQUFJLGtCQUFpQixNQUFJaU8sS0FBRyxNQUFJLElBQUcsTUFBSSxpQkFBZ0IsTUFBSSxJQUFHLE1BQUksbUJBQWtCLE1BQUkzSyxLQUFHLE1BQUk4SSxLQUFHLE1BQUlSLEtBQUcsTUFBSXVHLE1BQUcsTUFBSSxJQUFHLE1BQUlQLEtBQUcsTUFBSTNELEtBQUcsTUFBSWxMLEtBQUcsTUFBSXRHLEtBQUcsTUFBSSwyQkFBMEIsTUFBSSxJQUFHLE1BQUkwTyxLQUFHLE1BQUkxUSxLQUFHLE1BQUk0TyxLQUFHLE1BQUksd0JBQXVCLE1BQUk4QixLQUFHLE1BQUkxUSxLQUFHLE1BQUk0TyxLQUFHLE1BQUksb0JBQW1CLE1BQUksa0JBQWlCLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSXJKLEtBQUcsTUFBSSx5QkFBd0IsTUFBSSxJQUFHLE1BQUksb0JBQW1CLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSXpNLEtBQUcsTUFBSTRYLEtBQUcsTUFBSTFRLEtBQUcsTUFBSTRPLEtBQUcsTUFBSSxxQkFBb0IsTUFBSSxvQkFBbUIsTUFBSSxJQUFHLE1BQUkwRyxLQUFHLE1BQUksZ0JBQWUsTUFBSSxJQUFHLE1BQUkxVSxLQUFHLE1BQUksSUFBRyxNQUFJLGlCQUFnQixNQUFJLElBQUcsTUFBSSxvQkFBbUIsTUFBSTJILEtBQUcsTUFBSSwwQkFBeUIsTUFBSUEsS0FBRyxNQUFJLDRCQUEyQixNQUFJLElBQUcsTUFBSSxzQkFBcUIsTUFBSSxTQUFRLE1BQUksa0JBQWlCLE1BQUkwQixLQUFHLE1BQUlrSCxLQUFHLE1BQUksc0JBQXFCLE1BQUlBLEtBQUcsTUFBSSxxQkFBb0IsTUFBSWxILEtBQUcsTUFBSWtILEtBQUcsTUFBSSxnQkFBZSxNQUFJbEgsS0FBRyxNQUFJa0gsS0FBRyxNQUFJLHVCQUFzQixNQUFJMVMsS0FBRyxNQUFJLG1CQUFrQixNQUFJK04sS0FBRyxNQUFJb0wsS0FBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUloWixLQUFHLE1BQUlpSixLQUFHLE1BQUl3RyxLQUFHLE1BQUksaUJBQWdCLE1BQUk1UCxLQUFHLE1BQUksSUFBRyxNQUFJbVEsS0FBRyxNQUFJLG1CQUFrQixNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJblEsS0FBRyxNQUFJbVEsS0FBRyxNQUFJLG9CQUFtQixNQUFJLFlBQVcsTUFBSW5RLEtBQUcsTUFBSSxtQkFBa0IsTUFBSSxzREFBcUQsTUFBSW9LLEtBQUcsTUFBSThJLEtBQUcsTUFBSVIsS0FBRyxNQUFJdUcsTUFBRyxNQUFJLElBQUcsTUFBSVAsS0FBRyxNQUFJM0QsS0FBRyxNQUFJbEwsS0FBRyxNQUFJdEcsS0FBRyxNQUFJLHVCQUFzQixNQUFJLHFEQUFvRCxNQUFJNkcsS0FBRyxNQUFJOEksS0FBRyxNQUFJUixLQUFHLE1BQUl1RyxNQUFHLE1BQUksSUFBRyxNQUFJUCxLQUFHLE1BQUkzRCxLQUFHLE1BQUlsTCxLQUFHLE1BQUl0RyxLQUFHLE1BQUksc0JBQXFCLE1BQUl1RyxLQUFHLE1BQUkwQixLQUFHLE1BQUk1QyxLQUFHLE1BQUksSUFBRyxNQUFJa0IsS0FBRyxNQUFJMEIsS0FBRyxNQUFJNUMsS0FBRyxNQUFJLHFCQUFvQixNQUFJa0IsS0FBRyxNQUFJMEIsS0FBRyxNQUFJNUMsS0FBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUk5QixLQUFHLE1BQUksY0FBYSxNQUFJaU8sS0FBRyxNQUFJLFNBQVEsTUFBSSxlQUFjLE1BQUlBLEtBQUcsTUFBSSxrQkFBaUIsTUFBSU0sS0FBRyxNQUFJOVIsS0FBRyxNQUFJLG1CQUFrQixNQUFJMFYsTUFBRyxNQUFJMVYsS0FBRyxNQUFJLG1CQUFrQixNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUk2VixLQUFHLE1BQUlyRSxLQUFHLE1BQUkzSyxLQUFHLE1BQUk3RyxLQUFHLE1BQUksZ0JBQWUsTUFBSTZHLEtBQUcsTUFBSSxJQUFHLE1BQUlQLEtBQUcsTUFBSSxJQUFHLE1BQUlBLEtBQUcsTUFBSXRHLEtBQUcsTUFBSSxvQkFBbUIsTUFBSTZHLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJUCxLQUFHLE1BQUksMkJBQTBCLE1BQUlDLEtBQUcsTUFBSTBCLEtBQUcsTUFBSTVDLEtBQUcsTUFBSSwwQkFBeUIsTUFBSW1NLEtBQUcsTUFBSXhSLEtBQUcsTUFBSSxlQUFjLE1BQUk2VixLQUFHLE1BQUlyRSxLQUFHLE1BQUkzSyxLQUFHLE1BQUk3RyxLQUFHLE1BQUksb0JBQW1CLE1BQUkwTSxLQUFHLE1BQUl6RixLQUFHLE1BQUksSUFBRyxNQUFJLDRCQUEyQixNQUFJeUgsS0FBRyxNQUFJN0gsS0FBRyxNQUFJN0csS0FBRyxNQUFJLG9CQUFtQixNQUFJME8sS0FBRyxNQUFJN0gsS0FBRyxNQUFJN0csS0FBRyxNQUFJLGFBQVksTUFBSSxxQkFBb0IsTUFBSSxjQUFhLE1BQUksYUFBWSxNQUFJLFlBQVcsTUFBSTZHLEtBQUcsTUFBSTdHLEtBQUcsTUFBSSxvQkFBbUIsTUFBSSxtQkFBa0IsTUFBSTBVLEtBQUcsTUFBSSxJQUFHLE1BQUksdUJBQXNCLE1BQUksY0FBYSxNQUFJN04sS0FBRyxNQUFJMkssS0FBRyxNQUFJeFIsS0FBRyxNQUFJbVAsS0FBRyxNQUFJLGFBQVksTUFBSXRJLEtBQUcsTUFBSTdHLEtBQUcsTUFBSSxtQkFBa0IsTUFBSXdSLEtBQUcsTUFBSSxhQUFZLE1BQUksSUFBRyxNQUFJekksS0FBRyxNQUFJLElBQUcsTUFBSXNNLEtBQUcsTUFBSVgsS0FBRyxNQUFJOUUsS0FBRyxNQUFJK0QsTUFBRyxNQUFJN0IsS0FBRyxNQUFJcEYsS0FBRyxNQUFJLElBQUcsTUFBSSxvQkFBbUIsTUFBSXBGLEtBQUcsTUFBSW9OLEtBQUcsTUFBSXhELEtBQUcsTUFBSXlDLE1BQUcsTUFBSS9ELEtBQUcsTUFBSTNILEtBQUcsTUFBSXlFLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLG9EQUFtRCxNQUFJcEYsS0FBRyxNQUFJb04sS0FBRyxNQUFJeEQsS0FBRyxNQUFJeUMsTUFBRyxNQUFJL0QsS0FBRyxNQUFJM0gsS0FBRyxNQUFJeUUsS0FBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUk3RixLQUFHLE1BQUksSUFBRyxNQUFJUCxLQUFHLE1BQUl0RyxLQUFHLE1BQUl3UixLQUFHLE1BQUksd0JBQXVCLE1BQUkvVSxLQUFHLE1BQUksSUFBRyxNQUFJaVMsS0FBRyxNQUFJMVEsS0FBRyxNQUFJb0MsS0FBRyxNQUFJLElBQUcsTUFBSTZPLEtBQUcsTUFBSTVKLEtBQUcsTUFBSSxzQkFBcUIsTUFBSTVDLEtBQUcsTUFBSXpDLEtBQUcsTUFBSSxvQkFBbUIsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSXlDLEtBQUcsTUFBSXpDLEtBQUcsTUFBSSxvQkFBbUIsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSXlDLEtBQUcsTUFBSXpDLEtBQUcsTUFBSSxvQkFBbUIsTUFBSXlDLEtBQUcsTUFBSXpDLEtBQUcsTUFBSSxxQkFBb0IsTUFBSXdDLEtBQUcsTUFBSSxJQUFHLE1BQUlnRyxLQUFHLE1BQUksbUJBQWtCLE1BQUloRyxLQUFHLE1BQUksSUFBRyxNQUFJZ0csS0FBRyxNQUFJLGtCQUFpQixNQUFJaEcsS0FBRyxNQUFJLElBQUcsTUFBSWdHLEtBQUcsTUFBSSxrQkFBaUIsTUFBSWhHLEtBQUcsTUFBSWdHLEtBQUcsTUFBSSxrQkFBaUIsTUFBSWhHLEtBQUcsTUFBSSxJQUFHLE1BQUlnRyxLQUFHLE1BQUksa0JBQWlCLE1BQUlnSixLQUFHLE1BQUl4UixLQUFHLE1BQUksbUJBQWtCLE1BQUk2VixLQUFHLE1BQUlyRSxLQUFHLE1BQUkzSyxLQUFHLE1BQUk3RyxLQUFHLE1BQUksd0JBQXVCLE1BQUk2RyxLQUFHLE1BQUk3RyxLQUFHLE1BQUksb0JBQW1CLE1BQUlpSSxLQUFHLE1BQUksSUFBRyxNQUFJLGlCQUFnQixNQUFJQSxLQUFHLE1BQUksSUFBRyxNQUFJLGdCQUFlLE1BQUl5RyxLQUFHLE1BQUkxUSxLQUFHLE1BQUlvQyxLQUFHLE1BQUk2SCxLQUFHLE1BQUk1QyxLQUFHLE1BQUksSUFBRyxNQUFJNUksS0FBRyxNQUFJLElBQUcsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSWlTLEtBQUcsTUFBSTFRLEtBQUcsTUFBSW9DLEtBQUcsTUFBSXFDLEtBQUcsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSTRTLEtBQUcsTUFBSSxJQUFHLE1BQUl6RixLQUFHLE1BQUksSUFBRyxNQUFJN0csS0FBRyxNQUFJK0ksS0FBRyxNQUFJcEYsS0FBRyxNQUFJLElBQUcsTUFBSSxJQUFHLE1BQUlqUSxLQUFHLE1BQUksSUFBRyxNQUFJaVMsS0FBRyxNQUFJMVEsS0FBRyxNQUFJb0MsS0FBRyxNQUFJd1AsS0FBRyxNQUFJLElBQUcsTUFBSTdHLEtBQUcsTUFBSStJLEtBQUcsTUFBSXBGLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJalEsS0FBRyxNQUFJLElBQUcsTUFBSXFXLEtBQUcsTUFBSXBHLEtBQUcsTUFBSXhULEtBQUcsTUFBSTRaLEtBQUcsTUFBSSxJQUFHLE1BQUlwRyxLQUFHLE1BQUl4VCxLQUFHLE1BQUk0WixLQUFHLE1BQUlwRyxLQUFHLE1BQUl4VCxLQUFHLE1BQUlzRSxLQUFHLE1BQUkyQyxLQUFHLE1BQUkyUyxLQUFHLE1BQUlwRyxLQUFHLE1BQUl4VCxLQUFHLE1BQUksU0FBUSxNQUFJOGEsS0FBRyxNQUFJLFNBQVEsTUFBSWxCLEtBQUcsTUFBSXBHLEtBQUcsTUFBSXhULEtBQUcsTUFBSTRaLEtBQUcsTUFBSXBHLEtBQUcsTUFBSXhULEtBQUcsTUFBSSxJQUFHLE1BQUksVUFBUyxNQUFJLG1CQUFrQixNQUFJLFVBQVMsTUFBSTRaLEtBQUcsTUFBSSxRQUFPLE1BQUlwRyxLQUFHLE1BQUksbUJBQWtCLE1BQUksU0FBUSxNQUFJLE9BQU0sTUFBSSw0QkFBMkIsTUFBSWdELEtBQUcsTUFBSWxULEtBQUcsTUFBSXFRLEtBQUcsTUFBSWlGLEtBQUcsTUFBSSxnQkFBZSxNQUFJLHVCQUFzQixNQUFJclAsS0FBRyxNQUFJekMsS0FBRyxNQUFJLHNCQUFxQixNQUFJLFFBQU8sTUFBSSxJQUFHLE1BQUlvRixLQUFHLE1BQUlpUCxLQUFHLE1BQUksSUFBRyxNQUFJLFVBQVMsTUFBSXZDLEtBQUcsTUFBSSxZQUFXLE1BQUkscUJBQW9CLE1BQUksdUJBQXNCLE1BQUksdUJBQXNCLE1BQUksc0JBQXFCLE1BQUksNkJBQTRCLE1BQUksd0JBQXVCLE1BQUksd0JBQXVCLE1BQUksd0JBQXVCLE1BQUksd0JBQXVCLE1BQUkseUJBQXdCLE1BQUk3SixLQUFHLE1BQUksMEJBQXlCLE1BQUkseUJBQXdCLE1BQUksdUJBQXNCLE1BQUksMkJBQTBCLE1BQUl4SyxLQUFHLE1BQUl3SyxLQUFHLE1BQUksaUJBQWdCLE1BQUksaUJBQWdCLE1BQUlwQixLQUFHLE1BQUksSUFBRyxNQUFJOEksS0FBRyxNQUFJLElBQUcsTUFBSXJKLEtBQUcsTUFBSSwwQkFBeUIsTUFBSUMsS0FBRyxNQUFJMEIsS0FBRyxNQUFJNUMsS0FBRyxNQUFJLElBQUcsTUFBSWtCLEtBQUcsTUFBSTBCLEtBQUcsTUFBSTVDLEtBQUcsTUFBSSxJQUFHLE1BQUksQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLENBQUMsR0FBRSxNQUFJLGlCQUFnQixNQUFJLGtCQUFpQixNQUFJLFlBQVcsTUFBSSxJQUFHLE1BQUksU0FBUSxNQUFJLFdBQVUsTUFBSSx3QkFBdUIsTUFBSSxJQUFHLE1BQUksMERBQXlELE1BQUk1QyxLQUFHLE1BQUksSUFBRyxNQUFJNFMsS0FBRyxNQUFJdkQsS0FBRyxNQUFJWixLQUFHLE1BQUksSUFBRyxNQUFJeUMsTUFBRyxNQUFJcE4sS0FBRyxNQUFJd0MsS0FBRyxNQUFJMkQsS0FBRyxNQUFJLElBQUcsTUFBSSxzQkFBcUIsTUFBSWpRLEtBQUcsTUFBSSw0QkFBMkIsTUFBSXlVLEtBQUcsTUFBSXlDLE1BQUcsTUFBSWpILEtBQUcsTUFBSSxJQUFHLE1BQUkxTSxLQUFHLE1BQUkscUJBQW9CLE1BQUkyVCxNQUFHLE1BQUlqSCxLQUFHLE1BQUksMEJBQXlCLE1BQUluRyxLQUFHLE1BQUkySyxLQUFHLE1BQUksY0FBYSxNQUFJLFlBQVcsTUFBSSxhQUFZLE1BQUksZ0NBQStCLE1BQUl4RSxLQUFHLE1BQUkzRCxLQUFHLE1BQUk0SyxNQUFHLE1BQUlwTixLQUFHLE1BQUl2RyxLQUFHLE1BQUksMEJBQXlCLE1BQUl3UixLQUFHLE1BQUlxRSxLQUFHLE1BQUksMkJBQTBCLE1BQUksSUFBRyxNQUFJLHVCQUFzQixNQUFJLGFBQVksTUFBSSxZQUFXLE1BQUksZUFBYyxNQUFJLGFBQVksTUFBSSw2QkFBNEIsTUFBSSxpQkFBZ0IsTUFBSSx1QkFBc0IsTUFBSTdWLEtBQUcsTUFBSSxJQUFHLE1BQUksMkJBQTBCLE1BQUk2RyxLQUFHLE1BQUk3RyxLQUFHLE1BQUkseUJBQXdCLE1BQUksYUFBWSxNQUFJLGNBQWEsTUFBSSxxQkFBb0IsTUFBSXVHLEtBQUcsTUFBSSw2QkFBNEIsTUFBSSxJQUFHLE1BQUksdUJBQXNCLE1BQUksSUFBRyxNQUFJLDhCQUE2QixNQUFJOUosS0FBRyxNQUFJLHdCQUF1QixNQUFJdUQsS0FBRyxNQUFJLElBQUcsTUFBSSw2QkFBNEIsTUFBSXZELEtBQUcsTUFBSSx1QkFBc0IsTUFBSUEsS0FBRyxNQUFJLDBCQUF5QixNQUFJLGdCQUFlLE1BQUksdUJBQXNCLE1BQUk4SixLQUFHLE1BQUkySyxLQUFHLE1BQUksSUFBRyxNQUFJOEQsS0FBRyxNQUFJLDJCQUEwQixNQUFJL00sS0FBRyxNQUFJK00sS0FBRyxNQUFJLDBCQUF5QixNQUFJbEMsS0FBRyxNQUFJcEcsS0FBRyxNQUFJLCtCQUE4QixNQUFJb0csS0FBRyxNQUFJcEcsS0FBRyxNQUFJLCtCQUE4QixNQUFJb0csS0FBRyxNQUFJcEcsS0FBRyxNQUFJLCtCQUE4QixNQUFJbFAsS0FBRyxNQUFJMkMsS0FBRyxNQUFJMlMsS0FBRyxNQUFJcEcsS0FBRyxNQUFJLGdDQUErQixNQUFJLHdCQUF1QixNQUFJekUsS0FBRyxNQUFJLElBQUcsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSTNCLEtBQUcsTUFBSSw0QkFBMkIsTUFBSSxvQkFBbUIsTUFBSSxJQUFHLE1BQUk0SyxLQUFHLE1BQUksU0FBUSxNQUFJN0wsS0FBRyxNQUFJLGlCQUFnQixNQUFJaUIsS0FBRyxNQUFJLElBQUcsTUFBSUEsS0FBRyxNQUFJLElBQUcsTUFBSWlGLEtBQUcsTUFBSSxJQUFHLE1BQUksa0JBQWlCLE1BQUksa0JBQWlCLE1BQUksY0FBYSxNQUFJLG1CQUFrQixNQUFJLElBQUcsTUFBSSxtQkFBa0IsTUFBSSxlQUFjLE1BQUkzTSxLQUFHLE1BQUksZUFBYyxNQUFJLGNBQWEsTUFBSXlHLEtBQUcsTUFBSSxxQkFBb0IsTUFBSSxzQkFBcUIsTUFBSUEsS0FBRyxNQUFJLHFCQUFvQixNQUFJLHNCQUFxQixNQUFJcUgsS0FBRyxNQUFJckgsS0FBRyxNQUFJLGdCQUFlLE1BQUk1SSxLQUFHLE1BQUksc0JBQXFCLE1BQUksc0JBQXFCLE1BQUkwUyxLQUFHLE1BQUksMEJBQXlCLE1BQUlBLEtBQUcsTUFBSSxrQkFBaUIsTUFBSTJELEtBQUcsTUFBSXBHLEtBQUcsTUFBSSxXQUFVLE1BQUksSUFBRyxNQUFJLElBQUcsTUFBSSx1QkFBc0IsTUFBSXJILEtBQUcsTUFBSSxhQUFZLE1BQUkscUJBQW9CLE1BQUlBLEtBQUcsTUFBSSxpQkFBZ0IsTUFBSSxJQUFHLE1BQUk0SixLQUFHLE1BQUksbUJBQWtCLE1BQUlBLEtBQUcsTUFBSSwwQkFBeUIsTUFBSUEsS0FBRyxNQUFJLDRCQUEyQixNQUFJLElBQUcsTUFBSUEsS0FBRyxNQUFJLFlBQVcsTUFBSSxtQkFBa0IsTUFBSSxRQUFPLE1BQUksU0FBUSxNQUFJdkMsS0FBRyxNQUFJQSxLQUFHLE1BQUkscUJBQW9CLE1BQUkscUJBQW9CLE1BQUksSUFBRyxNQUFJOU4sS0FBRyxNQUFJLElBQUcsTUFBSWdSLEtBQUcsTUFBSSxJQUFHLE1BQUksSUFBRyxNQUFJLFdBQVUsTUFBSXhDLEtBQUcsTUFBSSxJQUFHLE1BQUl4VixLQUFHLE1BQUksSUFBRyxNQUFJc2EsS0FBRyxNQUFJNUIsS0FBRyxNQUFJLENBQUMsR0FBRVQsS0FBRyxJQUFHcEksS0FBRyxJQUFHLElBQUdzQyxLQUFHOUcsS0FBR3NQLEtBQUcsSUFBR3BILEtBQUdnRixLQUFHbFQsS0FBRzZJLEtBQUdvTixLQUFHN0ssS0FBR3pLLEtBQUcyQyxLQUFHc08sS0FBRyxJQUFHLElBQUdoSCxLQUFHd1AsS0FBRzlDLEtBQUcsSUFBRyxJQUFHdFYsS0FBR29FLEtBQUcySCxLQUFHNkMsS0FBR3FKLEtBQUcsSUFBR2xULEtBQUd1RSxLQUFHK0YsS0FBR3hGLEtBQUdsQixLQUFHLElBQUdvRSxLQUFHckssS0FBRyxJQUFHeVYsS0FBR2xZLEtBQUdrSCxLQUFHK04sS0FBR2pNLEtBQUc2RyxLQUFHLElBQUduVyxLQUFHOFosS0FBR1UsS0FBR2pHLEtBQUduUixNQUFHMEQsTUFBRzZGLEtBQUcsSUFBR3dPLEtBQUdqSixLQUFHLElBQUcsSUFBR3JGLEtBQUdpTSxLQUFHLElBQUdNLEtBQUcsSUFBR3dDLEtBQUc1SyxLQUFHWCxLQUFHb0IsS0FBRyxJQUFHLElBQUcwRCxLQUFHckssS0FBRyxJQUFHbUIsS0FBRzZGLEtBQUc2RCxLQUFHNkYsS0FBR3BCLEtBQUdyTyxLQUFHVyxLQUFHd0osS0FBRyxJQUFHbFYsS0FBRyxJQUFHLElBQUcsSUFBRyxJQUFHdVYsS0FBRzdHLEtBQUc3QixLQUFHck4sS0FBRyxJQUFHLElBQUcsSUFBRyxJQUFHMEcsS0FBR3lCLEtBQUc2SSxLQUFHbkYsS0FBR2xCLEtBQUdoQyxLQUFHc0UsS0FBR3dMLEtBQUd2UixLQUFHM0osS0FBR3liLEtBQUcsSUFBR25hLEtBQUdvRyxLQUFHdUksS0FBR0QsS0FBRyxJQUFHSyxLQUFHLElBQUczUCxLQUFHc1IsS0FBR2tPLEtBQUdyTCxLQUFHNUksS0FBRzhGLEtBQUduRyxLQUFHMkIsS0FBR2pOLEtBQUcsSUFBRyxJQUFHLElBQUd3SCxLQUFHZ0ssS0FBR2hILEtBQUcrRCxLQUFHLElBQUcrSixLQUFHbk4sS0FBRyxJQUFHLElBQUcwTixLQUFHaEosS0FBR3hNLEtBQUcsSUFBR3lRLEtBQUdqSixLQUFHd1YsS0FBR3RXLEtBQUcwQixLQUFHak0sS0FBR29VLEtBQUc3RSxLQUFHNk8sS0FBRzFDLEtBQUdwWCxLQUFHLElBQUdvSSxLQUFHK0QsS0FBR3lQLEtBQUdqUCxLQUFHLElBQUcsSUFBR2hILEtBQUd2SCxLQUFHLElBQUcsSUFBRytULEtBQUd1RSxLQUFHalQsS0FBRzBHLEtBQUc3TSxLQUFHeVIsS0FBRzFMLEtBQUc1RyxLQUFHa0ssS0FBR3NNLEtBQUd6WCxLQUFHLElBQUdvUixLQUFHM0MsS0FBRzhPLEtBQUdwTixLQUFHLElBQUd3UCxLQUFHVixLQUFHN1AsS0FBRzJQLEtBQUduVyxLQUFHLElBQUcsSUFBRzhLLEtBQUcsSUFBRyxJQUFHekksS0FBR3lLLEtBQUcySyxLQUFHLElBQUdQLEtBQUcsSUFBRzdPLEtBQUcsSUFBR0QsS0FBR3FLLEtBQUc5SixLQUFHLElBQUcsSUFBRyxJQUFHN0IsS0FBRyxJQUFHK04sS0FBR2dDLEtBQUd0UixLQUFHNUYsS0FBR3lVLEtBQUdrQixLQUFHLElBQUdsVixLQUFHNEYsS0FBRyxJQUFHLElBQUdzRixLQUFHN0YsS0FBRytOLEtBQUcsSUFBRzFSLEtBQUcsSUFBRzZWLEtBQUcxVCxLQUFHLElBQUdvUSxLQUFHblIsS0FBR3FULE1BQUdoQyxLQUFHelIsS0FBRzhDLEtBQUdsQyxLQUFHMEosS0FBRyxJQUFHdUUsS0FBRzJDLEtBQUd0TixLQUFHLElBQUd3TyxLQUFHckosS0FBR0csS0FBRyxJQUFHd0MsS0FBRytJLEtBQUd2UyxLQUFHLElBQUcsSUFBRyxJQUFHOFEsS0FBR2hNLEtBQUcsSUFBR3dOLEtBQUdFLEtBQUc1SCxLQUFHakUsS0FBRzNILEtBQUdzTyxLQUFHcFosS0FBR2tCLEtBQUcrTyxLQUFHLElBQUdSLEtBQUdnTyxLQUFHLElBQUdFLEtBQUduTyxLQUFHelEsS0FBR21ILEtBQUd1SyxLQUFHLElBQUcsSUFBRy9JLEtBQUcsSUFBRzNCLEtBQUdzSixLQUFHOUIsS0FBR2tQLEtBQUd6YSxLQUFHOEUsS0FBR3NILEtBQUdvUSxLQUFHeE4sS0FBR3VILEtBQUcsSUFBRyxJQUFHOUosS0FBR3FQLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRUEsS0FBR3JQLEtBQUcsSUFBRyxJQUFHOEosS0FBR3ZILEtBQUd3TixLQUFHcFEsS0FBR3RILEtBQUc5RSxLQUFHeWEsS0FBR2xQLEtBQUc4QixLQUFHdEosS0FBRyxJQUFHMkIsS0FBRyxJQUFHLElBQUcrSSxLQUFHdkssS0FBR25ILEtBQUd5USxLQUFHbU8sS0FBRyxJQUFHRixLQUFHaE8sS0FBRyxJQUFHUSxLQUFHL08sS0FBR2xCLEtBQUdvWixLQUFHdE8sS0FBRzJILEtBQUdpRSxLQUFHNEgsS0FBR0YsS0FBRyxJQUFHeE4sS0FBR2dNLEtBQUcsSUFBRyxJQUFHLElBQUc5USxLQUFHdVMsS0FBRy9JLEtBQUcsSUFBR3hDLEtBQUdILEtBQUdxSixLQUFHLElBQUd4TyxLQUFHc04sS0FBRzNDLEtBQUcsSUFBR3ZFLEtBQUcxSixLQUFHa0MsS0FBRzlDLEtBQUd5UixLQUFHZ0MsTUFBR3JULEtBQUdtUixLQUFHLElBQUdwUSxLQUFHMFQsS0FBRyxJQUFHN1YsS0FBRyxJQUFHMFIsS0FBRy9OLEtBQUc2RixLQUFHLElBQUcsSUFBR3RGLEtBQUc1RixLQUFHLElBQUdrVixLQUFHbEIsS0FBR3pVLEtBQUc0RixLQUFHc1IsS0FBR2hDLEtBQUcsSUFBRy9OLEtBQUcsSUFBRyxJQUFHLElBQUc2QixLQUFHOEosS0FBR3JLLEtBQUcsSUFBR0MsS0FBRyxJQUFHNk8sS0FBRyxJQUFHTyxLQUFHM0ssS0FBR3pLLEtBQUcsSUFBRyxJQUFHeUksS0FBRyxJQUFHLElBQUc5SyxLQUFHbVcsS0FBRzNQLEtBQUc2UCxLQUFHVSxLQUFHLElBQUd4UCxLQUFHb04sS0FBRzlPLEtBQUcyQyxLQUFHLElBQUdwUixLQUFHeVgsS0FBR3RNLEtBQUdsSyxLQUFHNEcsS0FBRzBMLEtBQUd6UixLQUFHNk0sS0FBRzFHLEtBQUdpVCxLQUFHdkUsS0FBRyxJQUFHLElBQUcvVCxLQUFHdUgsS0FBRyxJQUFHLElBQUdnSCxLQUFHaVAsS0FBR3pQLEtBQUcvRCxLQUFHLElBQUdwSSxLQUFHb1gsS0FBRzBDLEtBQUc3TyxLQUFHNkUsS0FBR3BVLEtBQUdpTSxLQUFHMUIsS0FBR3NXLEtBQUd4VixLQUFHaUosS0FBRyxJQUFHelEsS0FBR3dNLEtBQUdnSixLQUFHLElBQUcsSUFBRzFOLEtBQUdtTixLQUFHLElBQUcvSixLQUFHL0QsS0FBR2dILEtBQUdoSyxLQUFHLElBQUcsSUFBRyxJQUFHeEgsS0FBR2lOLEtBQUczQixLQUFHbUcsS0FBRzlGLEtBQUc0SSxLQUFHcUwsS0FBR2xPLEtBQUd0UixLQUFHLElBQUcyUCxLQUFHLElBQUdMLEtBQUdDLEtBQUd2SSxLQUFHcEcsS0FBRyxJQUFHbWEsS0FBR3piLEtBQUcySixLQUFHdVIsS0FBR3hMLEtBQUd0RSxLQUFHZ0MsS0FBR2tCLEtBQUdtRixLQUFHN0ksS0FBR3pCLEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBRzFHLEtBQUdxTixLQUFHNkIsS0FBRzZHLEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBR3ZWLEtBQUcsSUFBR2tWLEtBQUd4SixLQUFHWCxLQUFHcU8sS0FBR29CLEtBQUc3RixLQUFHN0QsS0FBRzdGLEtBQUcsSUFBR25CLEtBQUdxSyxLQUFHLElBQUcsSUFBRzFELEtBQUdwQixLQUFHVyxLQUFHNEssS0FBRyxJQUFHeEMsS0FBRyxJQUFHTixLQUFHak0sS0FBRyxJQUFHLElBQUdxRixLQUFHaUosS0FBRyxJQUFHeE8sS0FBRzdGLE1BQUcxRCxNQUFHbVIsS0FBR2lHLEtBQUdWLEtBQUc5WixLQUFHLElBQUdtVyxLQUFHN0csS0FBR2lNLEtBQUcvTixLQUFHbEgsS0FBR2tZLEtBQUcsSUFBR3pWLEtBQUdxSyxLQUFHLElBQUdwRSxLQUFHa0IsS0FBR3dGLEtBQUcvRixLQUFHdkUsS0FBRyxJQUFHa1QsS0FBR3JKLEtBQUc3QyxLQUFHM0gsS0FBR3BFLEtBQUcsSUFBRyxJQUFHc1YsS0FBRzhDLEtBQUd4UCxLQUFHLElBQUcsSUFBR2dILEtBQUd0TyxLQUFHM0MsS0FBR3lLLEtBQUc2SyxLQUFHcE4sS0FBRzdJLEtBQUdrVCxLQUFHaEYsS0FBRyxJQUFHb0gsS0FBR3RQLEtBQUc4RyxLQUFHLElBQUcsSUFBR3RDLEtBQUcsSUFBR29JLEdBQUUsR0FBRSxNQUFJLENBQUMsR0FBRThFLEtBQUdsZSxLQUFHa1EsS0FBR3pDLEtBQUc3TSxLQUFHdUcsS0FBRzRYLEtBQUcsSUFBRzlOLEtBQUdwTixLQUFHd0wsS0FBR3NRLEtBQUd4RSxLQUFHb0YsS0FBRyxJQUFHLElBQUcsSUFBRyxJQUFHN0UsS0FBRyxJQUFHLElBQUduTSxLQUFHK0gsS0FBR3JELEtBQUd0RCxLQUFHLElBQUd4RSxLQUFHbUIsS0FBRyxJQUFHME4sS0FBRzBDLEtBQUd6TCxLQUFHaEYsS0FBR3NCLEtBQUcvTixLQUFHLElBQUcsSUFBRzBiLEtBQUcsSUFBRzlELEtBQUdqSSxLQUFHLElBQUcsSUFBR3RCLEtBQUdqRCxLQUFHd1UsS0FBRzVSLEtBQUdSLEtBQUd3RixLQUFHLElBQUd3QixLQUFHOEQsS0FBRyxJQUFHL1EsS0FBR3NWLEtBQUc5SSxLQUFHc0QsS0FBRyxJQUFHdUIsS0FBR2lILEtBQUcsSUFBRzNPLEtBQUczRyxLQUFHLElBQUdkLEtBQUcsSUFBRzZHLEtBQUdtTyxNQUFHVyxLQUFHLElBQUdwUSxLQUFHMEIsS0FBR2dQLEtBQUc1YixLQUFHd0gsS0FBR25FLEtBQUdnVixLQUFHLElBQUdnQixLQUFHLElBQUd0SyxLQUFHLElBQUcsSUFBRyxJQUFHNEgsS0FBRyxJQUFHMUQsS0FBR25MLEtBQUdtVCxLQUFHdk8sS0FBRzRDLEtBQUc5SixLQUFHa1QsS0FBR3ZDLEtBQUdzQyxLQUFHTyxLQUFHMVQsS0FBRyxJQUFHLElBQUcsSUFBRzBCLEtBQUdrVixLQUFHSyxLQUFHclksS0FBR0UsS0FBRyxJQUFHOEosS0FBR25KLEtBQUdzSSxLQUFHcU8sS0FBR3BlLEtBQUdnWCxLQUFHdkUsS0FBRyxJQUFHNUUsS0FBR3BILEtBQUcsSUFBR2lHLEtBQUd3TixLQUFHNkMsS0FBR3RNLEtBQUcsSUFBR25ELEtBQUdvQixLQUFHOE4sS0FBR2xjLEtBQUcsSUFBR2tNLEtBQUd6TCxLQUFHME8sS0FBRyxJQUFHNUMsS0FBR3FPLEtBQUcsSUFBRyxJQUFHMVosS0FBRzhILEtBQUdnSSxLQUFHb0ksS0FBRyxJQUFHLElBQUcsSUFBR3BYLEtBQUd1YyxLQUFHLElBQUc5TSxLQUFHN0IsS0FBRy9RLEtBQUd3UCxLQUFHZ0YsS0FBR3ZNLEtBQUdtSSxLQUFHME4sS0FBRyxJQUFHclMsS0FBR3ZCLEtBQUcyVixLQUFHaFUsS0FBR25FLEtBQUd1VixLQUFHLElBQUcyQyxLQUFHN2dCLEtBQUdrSSxLQUFHcVMsS0FBRyxJQUFHMUgsS0FBRzZFLEtBQUcxTyxLQUFHd1gsS0FBR3JYLE1BQUd3VyxLQUFHLElBQUcsSUFBRzVOLEtBQUd1QyxLQUFHbUosS0FBR2QsS0FBR2QsS0FBRyxJQUFHaFEsS0FBRzRCLEtBQUcsSUFBRzNGLEtBQUdxRSxLQUFHaUcsS0FBR2pLLEtBQUc2UCxLQUFHbUYsS0FBRzdCLEtBQUdwUSxLQUFHdVIsS0FBR3BaLEtBQUcsSUFBRyxJQUFHdU0sS0FBRyxJQUFHLElBQUdxQixLQUFHaUQsS0FBRzdCLEtBQUdxRCxLQUFHN0ksS0FBRyxJQUFHdkUsS0FBRyxJQUFHZ0osS0FBR3BDLEtBQUcwSyxLQUFHck8sS0FBRyxJQUFHLElBQUcyQixLQUFHK0gsS0FBR3ZKLEtBQUd3RyxLQUFHbU8sS0FBR3JDLEtBQUcsSUFBR3BSLEtBQUcwSyxLQUFHL0csS0FBRzhDLEtBQUcsSUFBRyxJQUFHdU4sS0FBRzNDLEtBQUcsSUFBRzhCLEtBQUcsSUFBR3BQLEtBQUdsRyxLQUFHMFIsS0FBR3hGLEtBQUcsSUFBR3hHLEtBQUdxRSxLQUFHLElBQUc1UixLQUFHekIsS0FBRzZkLEtBQUd4TCxLQUFHZ0YsS0FBRzVKLEtBQUdnRyxLQUFHZ0UsS0FBR3pLLEtBQUcsSUFBRytCLEtBQUcyRSxLQUFHelUsS0FBRzJKLEtBQUdnTCxLQUFHdFAsTUFBRy9ELEtBQUdtTyxLQUFHbkYsS0FBRzZOLEtBQUdrRCxLQUFHekksS0FBRyxJQUFHbEQsS0FBRyxJQUFHMkIsS0FBR3pHLEtBQUcsSUFBR3RFLEtBQUd1SSxLQUFHLElBQUcsSUFBRyxJQUFHLElBQUdELEtBQUdaLEtBQUcwRCxLQUFHLElBQUd5SCxLQUFHM0MsS0FBRyxJQUFHakYsS0FBR3FFLEtBQUcsSUFBRzNULEtBQUdnTSxLQUFHLElBQUcsRUFBRSxHQUFFLE1BQUksMEJBQXlCLE1BQUksQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFJLGNBQWEsTUFBSSxJQUFHLE1BQUkseUJBQXdCLE1BQUksU0FBUSxNQUFJLGNBQWEsTUFBSTtBQUFtQixpQkFBUzRZLElBQUdqRyxJQUFFO0FBQUMsY0FBRyxPQUFPQSxNQUFHO0FBQVMsbUJBQU87QUFBRSxrQkFBT0EsR0FBRSxDQUFDLEdBQUU7QUFBQSxZQUFDLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVpRyxJQUFHakcsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFaUcsSUFBR2pHLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVpRyxJQUFHakcsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFaUcsSUFBR2pHLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVpRyxJQUFHakcsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlDLEtBQUVELEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsR0FBRUMsSUFBRWdHLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlFLEtBQUVGLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsR0FBRUUsSUFBRUEsSUFBRStGLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHaUcsSUFBR2pHLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUdpRyxJQUFHakcsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLHFCQUFNLENBQUMsSUFBR2lHLElBQUdqRyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHaUcsSUFBR2pHLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFO0FBQVEscUJBQU0sQ0FBQyxJQUFHaUcsSUFBR2pHLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTa0csSUFBR2xHLElBQUVDLElBQUU7QUFBQyxjQUFHLE9BQU9ELE1BQUc7QUFBUyxtQkFBT0M7QUFBRSxrQkFBT0QsR0FBRSxDQUFDLEdBQUU7QUFBQSxZQUFDLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVrRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdsRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFaUcsSUFBR2xHLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVpRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdsRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFaUcsSUFBR2xHLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUVpRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRWlHLElBQUdsRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlDLEtBQUVGLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsR0FBRUUsSUFBRWdHLElBQUdsRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlFLE1BQUVILEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsR0FBRSxHQUFFRyxLQUFFK0YsSUFBR2xHLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUdpRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLHFCQUFNLENBQUMsSUFBR2lHLElBQUdsRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHaUcsSUFBR2xHLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUdpRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUU7QUFBUSxxQkFBTSxDQUFDLElBQUdpRyxJQUFHbEcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVNrRyxJQUFHbkcsSUFBRUMsSUFBRTtBQUFDLGNBQUcsT0FBT0QsTUFBRztBQUFTLG1CQUFPQztBQUFFLGtCQUFPRCxHQUFFLENBQUMsR0FBRTtBQUFBLFlBQUMsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRW1HLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFa0csSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxrQkFBSUMsS0FBRUYsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFRSxJQUFFaUcsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxrQkFBSUUsTUFBRUgsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFRyxLQUFFZ0csSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxrQkFBSSxJQUFFRCxHQUFFLENBQUMsR0FBRSxJQUFFQSxHQUFFLENBQUMsR0FBRUssS0FBRUwsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFSyxJQUFFLEdBQUUsR0FBRThGLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlLLEtBQUVOLEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQyxHQUFFUSxNQUFFUixHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUVRLEtBQUUsR0FBRUYsSUFBRTZGLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlrQixLQUFFbkIsR0FBRSxDQUFDLEdBQUVvQixLQUFFcEIsR0FBRSxDQUFDLEdBQUU2QixLQUFFN0IsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFNkIsSUFBRVQsSUFBRUQsSUFBRWdGLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUk2QixNQUFFOUIsR0FBRSxDQUFDLEdBQUUrQixNQUFFL0IsR0FBRSxDQUFDLEdBQUVnQyxNQUFFaEMsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFZ0MsS0FBRUQsS0FBRUQsS0FBRXFFLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlpQyxNQUFFbEMsR0FBRSxDQUFDLEdBQUVtQyxNQUFFbkMsR0FBRSxDQUFDLEdBQUVvQyxNQUFFcEMsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFb0MsS0FBRUQsS0FBRUQsS0FBRWlFLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUsa0JBQUlvQyxNQUFFckMsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFcUMsS0FBRThELElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHa0csSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxrQkFBSXFDLE1BQUV0QyxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLElBQUdzQyxLQUFFNkQsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxrQkFBSWdDLE1BQUVqQyxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLElBQUdpQyxLQUFFa0UsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxrQkFBSW1HLE1BQUdwRyxHQUFFLENBQUMsR0FBRXFHLE1BQUdyRyxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLElBQUdxRyxLQUFHRCxLQUFHRCxJQUFHbkcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLGtCQUFJcUcsTUFBRXRHLEdBQUUsQ0FBQyxHQUFFdUcsTUFBRXZHLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsSUFBR3VHLEtBQUVELEtBQUVILElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHa0csSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUdrRyxJQUFHbkcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLGtCQUFJdUcsTUFBRXhHLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsSUFBR3dHLEtBQUVMLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcsa0JBQUl3RyxNQUFFekcsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxJQUFHeUcsS0FBRU4sSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUdrRyxJQUFHbkcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLGtCQUFJLEtBQUdELEdBQUUsQ0FBQyxHQUFFMEcsTUFBRTFHLEdBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsSUFBRzBHLEtBQUUsSUFBR1AsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxrQkFBSTBHLE1BQUczRyxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLElBQUcyRyxLQUFHUixJQUFHbkcsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLHFCQUFNLENBQUMsSUFBR2tHLElBQUduRyxHQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcsa0JBQUkyRyxNQUFHNUcsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxJQUFHNEcsS0FBR1QsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxZQUFFO0FBQVEsa0JBQUk0RyxNQUFHN0csR0FBRSxDQUFDLEdBQUU4RyxNQUFHOUcsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxJQUFHOEcsS0FBR0QsS0FBR1YsSUFBR25HLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdELElBQUVDLElBQUVDLElBQUU7QUFBQyxpQkFBT0YsR0FBRSxDQUFDLE1BQUlDLE1BQUdELEdBQUUsQ0FBQyxJQUFFRSxJQUFFLEtBQUc7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0YsSUFBRTtBQUFDLGdCQUFNYSxJQUFHLENBQUMsR0FBRThELEtBQUczRSxFQUFDLEdBQUUsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBUytHLElBQUcvRyxJQUFFO0FBQUMsZ0JBQU1hLElBQUcsQ0FBQyxHQUFFLElBQUdiLEVBQUMsR0FBRSxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdBLElBQUU7QUFBQyxpQkFBTyxLQUFHQSxLQUFFQSxLQUFFLENBQUNBLEtBQUU7QUFBQSxRQUFDO0FBQUMsWUFBSSxNQUFJO0FBQUcsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLGNBQUlDLEtBQUUsR0FBR0YsRUFBQyxHQUFFRyxNQUFFLEdBQUdGLEVBQUMsR0FBRSxJQUFFd0MsSUFBR3ZDLEtBQUVDLE1BQUUsQ0FBQztBQUFFLGlCQUFPUSxJQUFHWCxJQUFFLEdBQUUsR0FBRSxHQUFFRSxFQUFDLEdBQUVTLElBQUdWLElBQUUsR0FBRSxHQUFFQyxJQUFFQyxHQUFDLEdBQUU0RCxJQUFHLENBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVMsSUFBSS9ELElBQUU7QUFBQyxpQkFBT0EsS0FBRSxLQUFHO0FBQUEsUUFBRTtBQUFDLGlCQUFTLEdBQUdBLElBQUVDLElBQUU7QUFBQyxjQUFHLENBQUNEO0FBQUUsbUJBQU9DO0FBQUUsY0FBSUMsS0FBRUYsR0FBRSxDQUFDO0FBQUUsaUJBQU0sQ0FBQyxHQUFFRSxJQUFFLEdBQUdGLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLENBQUM7QUFBQSxRQUFDO0FBQUMsV0FBRyxDQUFDO0FBQUUsWUFBSSxNQUFJLEdBQUcsQ0FBQyxHQUFFK0csTUFBRyxHQUFHLENBQUM7QUFBRSxpQkFBUyxJQUFJaEgsSUFBRTtBQUFDLG1CQUFRQyxLQUFFLEdBQUcsQ0FBQyxPQUFJO0FBQUMsZ0JBQUcsQ0FBQ0E7QUFBRSxxQkFBTztBQUFFLGdCQUFJQyxLQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUYsR0FBRSxDQUFDO0FBQUUsZ0JBQUc7QUFBQyxjQUFBa0QsSUFBR2hELEdBQUM7QUFBQSxZQUFDLFNBQU9FLElBQUU7QUFBQyxrQkFBSSxJQUFFa0UsSUFBR2xFLEVBQUM7QUFBRSxrQkFBRyxFQUFFLENBQUMsTUFBSTtBQUFHLHNCQUFNUSxJQUFHLEdBQUUsQ0FBQztBQUFBLFlBQUM7QUFBQyxnQkFBSVosS0FBRUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTK0csSUFBR2pILElBQUVDLElBQUU7QUFBQyxpQkFBTyxHQUFHRCxJQUFFQyxJQUFFLEdBQUUsR0FBR0EsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdELElBQUU7QUFBQyxpQkFBT2lILElBQUdELEtBQUdoSCxFQUFDLEdBQUUsR0FBR2dILEtBQUcsRUFBRSxHQUFFN0QsSUFBRzZELEdBQUU7QUFBQSxRQUFDO0FBQUMsWUFBSSxLQUFHLENBQUMsR0FBRSxHQUFHO0FBQUUsaUJBQVMsR0FBR2hILElBQUU7QUFBQyxpQkFBTyxFQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUM7QUFBQSxRQUFDO0FBQUMsV0FBRyxJQUFHLEVBQUU7QUFBRSxZQUFJLEtBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFFa0gsT0FBSSxJQUFFLEdBQUcsQ0FBQyxJQUFFLEtBQUcsSUFBRSxHQUFFLE1BQUksQ0FBQzdqQixLQUFHLElBQUdxZixJQUFHLENBQUMsQ0FBQztBQUFFLGlCQUFTLElBQUkxQyxJQUFFO0FBQUMsZ0JBQU1hLElBQUcsS0FBSSxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdiLElBQUVDLElBQUU7QUFBQyxpQkFBT0EsS0FBRSxDQUFDLEdBQUUsRUFBRUQsSUFBRUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFFO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdELElBQUU7QUFBQyxpQkFBTyxLQUFHQSxLQUFFaEcsUUFBSyxJQUFFZ0csS0FBRUEsS0FBRSxLQUFHO0FBQUEsUUFBQztBQUFDLGlCQUFTbUgsSUFBR25ILElBQUU7QUFBQyxtQkFBUUMsS0FBRSxHQUFFQyxLQUFFRixRQUFJO0FBQUMsZ0JBQUcsQ0FBQ0U7QUFBRSxxQkFBT0Q7QUFBRSxnQkFBSUEsS0FBRUEsS0FBRSxJQUFFLEdBQUVDLEtBQUVBLEdBQUUsQ0FBQztBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVNrSCxJQUFHcEgsSUFBRTtBQUFDLGlCQUFPQSxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFHLEVBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0EsSUFBRTtBQUFDLGlCQUFPQSxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFHLEVBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVNxSCxJQUFHckgsSUFBRUMsSUFBRTtBQUFDLG1CQUFRQyxLQUFFRixJQUFFRyxNQUFFRixRQUFJO0FBQUMsZ0JBQUcsQ0FBQ0M7QUFBRSxxQkFBT0M7QUFBRSxnQkFBSSxJQUFFLENBQUMsR0FBRUQsR0FBRSxDQUFDLEdBQUVDLEdBQUMsR0FBRUQsS0FBRUEsR0FBRSxDQUFDLEdBQUVDLE1BQUU7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdILElBQUU7QUFBQyxpQkFBT3FILElBQUdySCxJQUFFLENBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVNzSCxJQUFHdEgsSUFBRTtBQUFDLGNBQUcsQ0FBQ0E7QUFBRSxtQkFBTztBQUFFLGNBQUlDLEtBQUVELEdBQUUsQ0FBQztBQUFFLGlCQUFPLEdBQUdDLElBQUVxSCxJQUFHdEgsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3VILElBQUd2SCxJQUFFQyxJQUFFO0FBQUMsY0FBRyxDQUFDQTtBQUFFLG1CQUFPO0FBQUUsY0FBSUMsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUUsRUFBRUgsSUFBRUMsR0FBRSxDQUFDLENBQUM7QUFBRSxpQkFBTSxDQUFDLEdBQUVFLEtBQUVvSCxJQUFHdkgsSUFBRUUsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUVDLElBQUU7QUFBQyxtQkFBUUMsS0FBRSxHQUFFQyxNQUFFRixRQUFJO0FBQUMsZ0JBQUcsQ0FBQ0U7QUFBRSxxQkFBT0Q7QUFBRSxnQkFBSSxJQUFFQyxJQUFFLENBQUMsR0FBRUQsS0FBRSxDQUFDLEdBQUUsRUFBRUYsSUFBRUcsSUFBRSxDQUFDLENBQUMsR0FBRUQsRUFBQyxHQUFFQyxNQUFFO0FBQUEsVUFBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3FILElBQUd4SCxJQUFFQyxJQUFFO0FBQUMsbUJBQVFDLEtBQUVELFFBQUk7QUFBQyxnQkFBRyxDQUFDQztBQUFFLHFCQUFPO0FBQUUsZ0JBQUlDLE1BQUVELEdBQUUsQ0FBQztBQUFFLGNBQUVGLElBQUVFLEdBQUUsQ0FBQyxDQUFDO0FBQUUsZ0JBQUlBLEtBQUVDO0FBQUEsVUFBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3NILElBQUd6SCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsbUJBQVFDLE1BQUVGLElBQUUsSUFBRUMsUUFBSTtBQUFDLGdCQUFHLENBQUM7QUFBRSxxQkFBT0M7QUFBRSxnQkFBSSxJQUFFLEVBQUUsQ0FBQyxHQUFFQSxNQUFFcUUsR0FBRXhFLElBQUVHLEtBQUUsRUFBRSxDQUFDLENBQUMsR0FBRSxJQUFFO0FBQUEsVUFBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHSCxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsY0FBRyxDQUFDRDtBQUFFLG1CQUFPQztBQUFFLGNBQUlDLE1BQUVGLEdBQUUsQ0FBQztBQUFFLGlCQUFPdUUsR0FBRXhFLElBQUVHLEtBQUUsR0FBR0gsSUFBRUMsR0FBRSxDQUFDLEdBQUVDLEVBQUMsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsbUJBQVFDLE1BQUVGLElBQUUsSUFBRUMsUUFBSTtBQUFDLGdCQUFHQyxLQUFFO0FBQUMsa0JBQUcsR0FBRTtBQUFDLG9CQUFJLElBQUUsRUFBRSxDQUFDLEdBQUVFLEtBQUVGLElBQUUsQ0FBQztBQUFFLGdCQUFBcUUsR0FBRXhFLElBQUVHLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQUUsb0JBQUlBLE1BQUVFLElBQUUsSUFBRTtBQUFFO0FBQUEsY0FBUTtBQUFBLFlBQUMsV0FBUyxDQUFDO0FBQUUscUJBQU87QUFBRSxtQkFBTzBHLElBQUcsRUFBRTtBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBRy9HLElBQUVDLElBQUU7QUFBQyxtQkFBUUMsS0FBRUQsUUFBSTtBQUFDLGdCQUFHLENBQUNDO0FBQUUscUJBQU87QUFBRSxnQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRSxFQUFFRixJQUFFRSxHQUFFLENBQUMsQ0FBQztBQUFFLGdCQUFHO0FBQUUscUJBQU87QUFBRSxnQkFBSUEsS0FBRUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdILElBQUVDLElBQUU7QUFBQyxtQkFBUUMsS0FBRUQsUUFBSTtBQUFDLGdCQUFHLENBQUNDO0FBQUUscUJBQU87QUFBRSxnQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRSxHQUFHQSxHQUFFLENBQUMsR0FBRUYsRUFBQyxNQUFJLElBQUUsSUFBRTtBQUFFLGdCQUFHO0FBQUUscUJBQU87QUFBRSxnQkFBSUUsS0FBRUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTdUgsSUFBRzFILElBQUU7QUFBQyxjQUFJQyxLQUFFO0FBQUUsaUJBQU8sU0FBU0MsSUFBRTtBQUFDLHFCQUFRQyxNQUFFRixJQUFFLElBQUVDLFFBQUk7QUFBQyxrQkFBRyxDQUFDO0FBQUUsdUJBQU8sR0FBR0MsR0FBQztBQUFFLGtCQUFJLElBQUUsRUFBRSxDQUFDLEdBQUVFLEtBQUUsRUFBRSxDQUFDO0FBQUUsa0JBQUcsRUFBRUwsSUFBRUssRUFBQyxHQUFFO0FBQUMsb0JBQUlGLE1BQUUsQ0FBQyxHQUFFRSxJQUFFRixHQUFDLEdBQUUsSUFBRTtBQUFFO0FBQUEsY0FBUTtBQUFDLGtCQUFJLElBQUU7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHSCxJQUFFQyxJQUFFO0FBQUMsY0FBSUMsS0FBRXVDLElBQUd6QyxFQUFDO0FBQUUsaUJBQU8sR0FBR0UsSUFBRSxHQUFFRixJQUFFQyxFQUFDLEdBQUVDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUU7QUFBQyxjQUFJQyxLQUFFK0MsSUFBR2hELEVBQUMsR0FBRUUsS0FBRXVDLElBQUd4QyxFQUFDO0FBQUUsaUJBQU9HLElBQUdKLElBQUUsR0FBRUUsSUFBRSxHQUFFRCxFQUFDLEdBQUVDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUVDLElBQUVDLElBQUU7QUFBQyxjQUFHLEtBQUdELE1BQUcsS0FBR0MsT0FBSThDLElBQUdoRCxFQUFDLElBQUVFLEtBQUUsTUFBSUQsSUFBRTtBQUFDLGdCQUFJRSxNQUFFc0MsSUFBR3ZDLEVBQUM7QUFBRSxtQkFBT0UsSUFBR0osSUFBRUMsSUFBRUUsS0FBRSxHQUFFRCxFQUFDLEdBQUVDO0FBQUEsVUFBQztBQUFDLGlCQUFPNEcsSUFBRyxFQUFFO0FBQUEsUUFBQztBQUFDLGlCQUFTWSxJQUFHM0gsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGlCQUFPNkQsSUFBRyxHQUFHL0QsSUFBRUMsSUFBRUMsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLGlCQUFPLEtBQUcsS0FBRyxLQUFHRixPQUFJK0MsSUFBR2hELEVBQUMsSUFBRSxJQUFFLE1BQUlDLE1BQUcsS0FBR0UsUUFBSTZDLElBQUc5QyxFQUFDLElBQUUsSUFBRSxNQUFJQyxNQUFFQyxJQUFHSixJQUFFQyxJQUFFQyxJQUFFQyxLQUFFLENBQUMsSUFBRTRHLElBQUcsRUFBRTtBQUFBLFFBQUM7QUFBQyxpQkFBU2EsSUFBRzVILElBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLGlCQUFPLEtBQUcsS0FBRyxLQUFHRixPQUFJLEdBQUdELEVBQUMsSUFBRSxJQUFFLE1BQUlDLE1BQUcsS0FBR0UsUUFBSTZDLElBQUc5QyxFQUFDLElBQUUsSUFBRSxNQUFJQyxNQUFFUSxJQUFHWCxJQUFFQyxJQUFFQyxJQUFFQyxLQUFFLENBQUMsSUFBRTRHLElBQUcsRUFBRTtBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHL0csSUFBRUMsSUFBRTtBQUFDLGlCQUFPOEQsSUFBRyxHQUFHL0QsSUFBRUMsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTNEgsSUFBRzdILElBQUVDLElBQUVDLElBQUU7QUFBQyxpQkFBTzZELElBQUcsR0FBR3JELElBQUdWLEVBQUMsR0FBRUMsSUFBRUMsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUU7QUFBQyxjQUFJQyxLQUFFUyxJQUFHVixFQUFDO0FBQUUsY0FBR2dELElBQUcvQyxFQUFDLE1BQUk7QUFBRSxnQkFBSUMsS0FBRUQ7QUFBQSxlQUFNO0FBQUMsZ0JBQUlFLE1BQUUsR0FBR0YsRUFBQztBQUFFLFlBQUFjLElBQUdaLEtBQUUsR0FBRSxHQUFHYyxJQUFHaEIsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFFLGdCQUFJQyxLQUFFQztBQUFBLFVBQUM7QUFBQyxpQkFBTzRELElBQUc3RCxFQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUVDLElBQUU7QUFBQyxjQUFJQyxLQUFFLEdBQUdGLEVBQUMsR0FBRUcsTUFBRUQsTUFBRyxHQUFHRCxFQUFDLElBQUUsSUFBRTtBQUFFLGNBQUcsQ0FBQ0U7QUFBRSxtQkFBT0E7QUFBRSxtQkFBUSxJQUFFLE9BQUk7QUFBQyxnQkFBRyxNQUFJRDtBQUFFLHFCQUFPO0FBQUUsZ0JBQUcsR0FBR0QsSUFBRSxDQUFDLE1BQUksR0FBR0QsSUFBRSxDQUFDO0FBQUUscUJBQU87QUFBRSxnQkFBSSxJQUFFLElBQUUsSUFBRTtBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsWUFBSSxNQUFJO0FBQUcsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLGNBQUlDLEtBQUVELEdBQUUsU0FBTyxJQUFFLElBQUUsR0FBRUUsTUFBRTtBQUFFLGNBQUdELE1BQUc7QUFBRSxxQkFBUSxJQUFFQyxTQUFJO0FBQUMsZ0JBQUVILElBQUVDLEdBQUUsSUFBRSxDQUFDLENBQUM7QUFBRSxrQkFBSSxJQUFFLElBQUUsSUFBRTtBQUFFLGtCQUFHQyxPQUFJLEdBQUU7QUFBQyxvQkFBSSxJQUFFO0FBQUU7QUFBQSxjQUFRO0FBQUM7QUFBQSxZQUFLO0FBQUMsaUJBQU87QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0YsSUFBRUMsSUFBRTtBQUFDLGNBQUlDLEtBQUVELEdBQUUsU0FBTztBQUFFLGNBQUdDLE9BQUk7QUFBRSxtQkFBTSxDQUFDLENBQUM7QUFBRSxjQUFJQyxNQUFFNEMsSUFBRzdDLElBQUUsRUFBRUYsSUFBRUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLElBQUVDLEtBQUUsSUFBRSxHQUFFLElBQUU7QUFBRSxjQUFHLEtBQUc7QUFBRSxxQkFBUUcsS0FBRSxPQUFJO0FBQUMsY0FBQUYsSUFBRSxJQUFFRSxFQUFDLElBQUUsRUFBRUwsSUFBRUMsR0FBRSxJQUFFSSxFQUFDLENBQUM7QUFBRSxrQkFBSUMsS0FBRUQsS0FBRSxJQUFFO0FBQUUsa0JBQUcsTUFBSUEsSUFBRTtBQUFDLG9CQUFJQSxLQUFFQztBQUFFO0FBQUEsY0FBUTtBQUFDO0FBQUEsWUFBSztBQUFDLGlCQUFPSDtBQUFBLFFBQUM7QUFBQyxpQkFBUzJILElBQUc5SCxJQUFFO0FBQUMsY0FBRyxDQUFDQTtBQUFFLG1CQUFNLENBQUMsQ0FBQztBQUFFLG1CQUFRQyxLQUFFLEdBQUVDLEtBQUVGLElBQUVHLE1BQUVILEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQyxPQUFJO0FBQUMsZ0JBQUdFLElBQUU7QUFBQyxrQkFBSUQsS0FBRUEsS0FBRSxJQUFFLEdBQUVDLEtBQUVBLEdBQUUsQ0FBQztBQUFFO0FBQUEsWUFBUTtBQUFDLHFCQUFRLElBQUU2QyxJQUFHOUMsSUFBRSxDQUFDLEdBQUVJLEtBQUUsR0FBRUMsS0FBRUgsU0FBSTtBQUFDLGtCQUFHLENBQUNHO0FBQUUsdUJBQU87QUFBRSxrQkFBSSxJQUFFQSxHQUFFLENBQUM7QUFBRSxnQkFBRSxJQUFFRCxFQUFDLElBQUVDLEdBQUUsQ0FBQztBQUFFLGtCQUFJRCxLQUFFQSxLQUFFLElBQUUsR0FBRUMsS0FBRTtBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdOLElBQUU7QUFBQyxjQUFHO0FBQUMsZ0JBQUlDLEtBQUUsQ0FBQyxHQUFFMkMsSUFBRzVDLEVBQUMsQ0FBQztBQUFFLG1CQUFPQztBQUFBLFVBQUMsU0FBT0UsS0FBRTtBQUFDLGdCQUFJRCxLQUFFcUUsSUFBR3BFLEdBQUM7QUFBRSxnQkFBR0QsR0FBRSxDQUFDLE1BQUl5RTtBQUFHLHFCQUFPO0FBQUUsa0JBQU05RCxJQUFHWCxJQUFFLENBQUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUU7QUFBQyxtQkFBU0MsR0FBRThILElBQUU7QUFBQyxtQkFBT0EsS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVM3SCxHQUFFNkgsSUFBRUMsS0FBRUMsS0FBRUMsS0FBRztBQUFDLGdCQUFJQyxNQUFHbEksR0FBRThILEVBQUMsR0FBRSxLQUFHOUgsR0FBRWlJLEdBQUUsR0FBRUUsS0FBRSxNQUFJRCxNQUFHQSxNQUFHLElBQUUsSUFBRSxLQUFHLElBQUU7QUFBRSxtQkFBTSxDQUFDLEdBQUVKLElBQUVDLEtBQUVDLEtBQUVDLEtBQUdFLEVBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVNqSSxJQUFFNEgsSUFBRUMsS0FBRTtBQUFDLG1CQUFNLENBQUMsR0FBRSxHQUFFRCxJQUFFQyxLQUFFLEdBQUUsQ0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBUyxFQUFFRCxJQUFFQyxLQUFFQyxLQUFFQyxLQUFHO0FBQUMsZ0JBQUlDLE1BQUdKLEtBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUUsS0FBR0csTUFBR0EsSUFBRyxDQUFDLElBQUU7QUFBRSxpQkFBSSxLQUFHLElBQUUsS0FBR0MsS0FBRztBQUFDLGtCQUFHLENBQUNKO0FBQUUsdUJBQU9oQixJQUFHLEVBQUU7QUFBRSxrQkFBSXFCLEtBQUVMLEdBQUUsQ0FBQyxHQUFFTSxNQUFHTixHQUFFLENBQUMsR0FBRSxLQUFHQSxHQUFFLENBQUMsR0FBRU8sTUFBR1AsR0FBRSxDQUFDLEdBQUUsS0FBRzlILEdBQUVtSSxFQUFDO0FBQUUsa0JBQUcsTUFBSW5JLEdBQUVxSSxHQUFFO0FBQUUsdUJBQU9wSSxHQUFFb0ksS0FBRyxJQUFHRCxLQUFHbkksR0FBRWtJLElBQUVKLEtBQUVDLEtBQUVDLEdBQUUsQ0FBQztBQUFFLGtCQUFHLENBQUNFO0FBQUUsdUJBQU9yQixJQUFHLEVBQUU7QUFBRSxrQkFBSSxLQUFHcUIsR0FBRSxDQUFDLEdBQUUsS0FBR0EsR0FBRSxDQUFDLEdBQUVHLE1BQUdILEdBQUUsQ0FBQyxHQUFFSSxLQUFFdEksR0FBRWtJLEdBQUUsQ0FBQyxHQUFFSixLQUFFQyxLQUFFQyxHQUFFO0FBQUUscUJBQU9oSSxHQUFFQSxHQUFFb0ksS0FBRyxJQUFHRCxLQUFHRSxHQUFFLEdBQUUsSUFBRyxJQUFHQyxFQUFDO0FBQUEsWUFBQztBQUFDLGlCQUFJTCxNQUFHLElBQUUsTUFBSSxJQUFHO0FBQUMsa0JBQUlNLE1BQUUsTUFBSU4sTUFBR0EsTUFBRyxJQUFFLElBQUUsS0FBRyxJQUFFO0FBQUUscUJBQU0sQ0FBQyxHQUFFSixJQUFFQyxLQUFFQyxLQUFFQyxLQUFHTyxHQUFDO0FBQUEsWUFBQztBQUFDLGdCQUFHLENBQUNQO0FBQUcscUJBQU9uQixJQUFHLEVBQUU7QUFBRSxnQkFBSTJCLE1BQUdSLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFUyxNQUFHVCxJQUFHLENBQUMsR0FBRSxLQUFHakksR0FBRTBJLEdBQUU7QUFBRSxnQkFBRyxNQUFJMUksR0FBRXlJLEdBQUU7QUFBRSxxQkFBT3hJLEdBQUVBLEdBQUU2SCxJQUFFQyxLQUFFQyxLQUFFVSxHQUFFLEdBQUUsSUFBRyxJQUFHRCxHQUFFO0FBQUUsZ0JBQUcsQ0FBQ0M7QUFBRyxxQkFBTzVCLElBQUcsRUFBRTtBQUFFLGdCQUFJLEtBQUc0QixJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRUMsTUFBRzFJLEdBQUV5SSxJQUFHLENBQUMsR0FBRSxJQUFHLElBQUdELEdBQUU7QUFBRSxtQkFBT3hJLEdBQUVBLEdBQUU2SCxJQUFFQyxLQUFFQyxLQUFFLEVBQUUsR0FBRSxJQUFHLElBQUdXLEdBQUU7QUFBQSxVQUFDO0FBQUMsY0FBSSxJQUFFO0FBQUUsbUJBQVN2SSxHQUFFMEgsSUFBRTtBQUFDLG1CQUFPQSxLQUFFLElBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVN6SCxHQUFFeUgsSUFBRUMsS0FBRUMsS0FBRTtBQUFDLGdCQUFHLENBQUNBO0FBQUUscUJBQU0sQ0FBQyxHQUFFLEdBQUVGLElBQUVDLEtBQUUsR0FBRSxDQUFDO0FBQUUsZ0JBQUlFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUcsS0FBRUgsSUFBRSxDQUFDLEdBQUVJLE1BQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUd6RCxHQUFFeEUsR0FBRSxDQUFDLEdBQUUrSCxJQUFFLEVBQUU7QUFBRSxnQkFBRyxPQUFLO0FBQUUscUJBQU9JLFFBQUtILE1BQUVDLE1BQUUsQ0FBQyxHQUFFRyxJQUFFTCxJQUFFQyxLQUFFRSxLQUFHRyxHQUFFO0FBQUUsZ0JBQUcsS0FBRyxJQUFHO0FBQUMsa0JBQUlDLE1BQUdoSSxHQUFFeUgsSUFBRUMsS0FBRUUsR0FBRTtBQUFFLHFCQUFPQSxRQUFLSSxNQUFHTCxNQUFFLEVBQUVHLElBQUUsSUFBR0QsS0FBR0csR0FBRTtBQUFBLFlBQUM7QUFBQyxnQkFBSSxLQUFHaEksR0FBRXlILElBQUVDLEtBQUVJLEVBQUM7QUFBRSxtQkFBT0EsT0FBSSxLQUFHSCxNQUFFLEVBQUUsSUFBRyxJQUFHRSxLQUFHRCxHQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTLEVBQUVILElBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRUQsU0FBSTtBQUFDLGtCQUFHLENBQUNDO0FBQUUsc0JBQU1wSCxJQUFHK0QsS0FBRyxDQUFDO0FBQUUsa0JBQUlzRCxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVHLEtBQUU1RCxHQUFFeEUsR0FBRSxDQUFDLEdBQUUrSCxJQUFFRSxJQUFFLENBQUMsQ0FBQztBQUFFLGtCQUFHRyxPQUFJO0FBQUUsdUJBQU9EO0FBQUcsa0JBQUlFLE1BQUcsS0FBR0QsS0FBRUYsTUFBRyxJQUFHRCxNQUFFSTtBQUFBLFlBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVM3SCxJQUFFdUgsSUFBRUMsS0FBRTtBQUFDLHFCQUFRQyxNQUFFRCxTQUFJO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRSxzQkFBTXBILElBQUcrRCxLQUFHLENBQUM7QUFBRSxrQkFBSXNELE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUcsS0FBRUgsSUFBRSxDQUFDO0FBQUUsa0JBQUcsQ0FBQyxFQUFFRixJQUFFRyxHQUFFLEdBQUU7QUFBQyxvQkFBSUQsTUFBRUU7QUFBRztBQUFBLGNBQVE7QUFBQyx1QkFBUUUsTUFBR0gsS0FBRyxLQUFHLElBQUdJLE1BQUdGLFFBQUk7QUFBQyxvQkFBRyxDQUFDRTtBQUFHLHlCQUFNLENBQUMsR0FBRUQsS0FBRyxFQUFFO0FBQUUsb0JBQUksS0FBR0MsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQztBQUFFLG9CQUFHLEVBQUVQLElBQUUsRUFBRSxHQUFFO0FBQUMsc0JBQUlNLE1BQUcsSUFBRyxLQUFHLElBQUdDLE1BQUdDO0FBQUc7QUFBQSxnQkFBUTtBQUFDLG9CQUFJRCxNQUFHO0FBQUEsY0FBRTtBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVNuSCxHQUFFNEcsSUFBRUMsS0FBRTtBQUFDLHFCQUFRQyxNQUFFRCxTQUFJO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRSx1QkFBTztBQUFFLGtCQUFJQyxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVHLEtBQUVILElBQUUsQ0FBQztBQUFFLGtCQUFHLENBQUMsRUFBRUYsSUFBRUcsR0FBRSxHQUFFO0FBQUMsb0JBQUlELE1BQUVFO0FBQUc7QUFBQSxjQUFRO0FBQUMsdUJBQVFFLE1BQUdILEtBQUcsS0FBRyxJQUFHSSxNQUFHRixRQUFJO0FBQUMsb0JBQUcsQ0FBQ0U7QUFBRyx5QkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFRCxLQUFHLEVBQUUsQ0FBQztBQUFFLG9CQUFJLEtBQUdDLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFQyxNQUFHRCxJQUFHLENBQUM7QUFBRSxvQkFBRyxFQUFFUCxJQUFFLEVBQUUsR0FBRTtBQUFDLHNCQUFJTSxNQUFHLElBQUcsS0FBRyxJQUFHQyxNQUFHQztBQUFHO0FBQUEsZ0JBQVE7QUFBQyxvQkFBSUQsTUFBRztBQUFBLGNBQUU7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTbEgsR0FBRTJHLElBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRUQsU0FBSTtBQUFDLGtCQUFHLENBQUNDO0FBQUUsc0JBQU1wSCxJQUFHK0QsS0FBRyxDQUFDO0FBQUUsa0JBQUlzRCxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVHLEtBQUVILElBQUUsQ0FBQztBQUFFLGtCQUFHLENBQUMsRUFBRUYsSUFBRUcsR0FBRSxHQUFFO0FBQUMsb0JBQUlELE1BQUVHO0FBQUU7QUFBQSxjQUFRO0FBQUMsdUJBQVFDLE1BQUdILEtBQUcsS0FBRyxJQUFHSSxNQUFHSCxTQUFLO0FBQUMsb0JBQUcsQ0FBQ0c7QUFBRyx5QkFBTSxDQUFDLEdBQUVELEtBQUcsRUFBRTtBQUFFLG9CQUFJLEtBQUdDLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFQyxNQUFHRCxJQUFHLENBQUM7QUFBRSxvQkFBRyxFQUFFUCxJQUFFLEVBQUUsR0FBRTtBQUFDLHNCQUFJTSxNQUFHLElBQUcsS0FBRyxJQUFHQyxNQUFHO0FBQUc7QUFBQSxnQkFBUTtBQUFDLG9CQUFJQSxNQUFHQztBQUFBLGNBQUU7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTMUcsR0FBRWtHLElBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRUQsU0FBSTtBQUFDLGtCQUFHLENBQUNDO0FBQUUsdUJBQU87QUFBRSxrQkFBSUMsTUFBR0QsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFRyxLQUFFSCxJQUFFLENBQUM7QUFBRSxrQkFBRyxDQUFDLEVBQUVGLElBQUVHLEdBQUUsR0FBRTtBQUFDLG9CQUFJRCxNQUFFRztBQUFFO0FBQUEsY0FBUTtBQUFDLHVCQUFRQyxNQUFHSCxLQUFHLEtBQUcsSUFBR0ksTUFBR0gsU0FBSztBQUFDLG9CQUFHLENBQUNHO0FBQUcseUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRUQsS0FBRyxFQUFFLENBQUM7QUFBRSxvQkFBSSxLQUFHQyxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRUMsTUFBR0QsSUFBRyxDQUFDO0FBQUUsb0JBQUcsRUFBRVAsSUFBRSxFQUFFLEdBQUU7QUFBQyxzQkFBSU0sTUFBRyxJQUFHLEtBQUcsSUFBR0MsTUFBRztBQUFHO0FBQUEsZ0JBQVE7QUFBQyxvQkFBSUEsTUFBR0M7QUFBQSxjQUFFO0FBQUEsWUFBQztBQUFBLFVBQUM7QUFBQyxtQkFBU3pHLElBQUVpRyxJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUcsS0FBRTVELEdBQUV4RSxHQUFFLENBQUMsR0FBRStILElBQUVFLElBQUUsQ0FBQyxDQUFDO0FBQUUsa0JBQUdHLE9BQUk7QUFBRSx1QkFBTSxDQUFDLEdBQUVELEdBQUU7QUFBRSxrQkFBSUUsTUFBRyxLQUFHRCxLQUFFRixNQUFHLElBQUdELE1BQUVJO0FBQUEsWUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBU3RHLElBQUVnRyxJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHekQsR0FBRXhFLEdBQUUsQ0FBQyxHQUFFK0gsSUFBRUUsSUFBRSxDQUFDLENBQUMsR0FBRUcsS0FBRSxPQUFLLElBQUUsSUFBRTtBQUFFLGtCQUFHQTtBQUFFLHVCQUFPQTtBQUFFLGtCQUFJQyxNQUFHLEtBQUcsS0FBR0gsTUFBR0MsS0FBR0YsTUFBRUk7QUFBQSxZQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTckcsSUFBRStGLElBQUU7QUFBQyxxQkFBUUMsTUFBRUQsUUFBSTtBQUFDLGtCQUFHLENBQUNDO0FBQUUsc0JBQU1uSCxJQUFHK0QsS0FBRyxDQUFDO0FBQUUsa0JBQUlxRCxNQUFFRCxJQUFFLENBQUM7QUFBRSxrQkFBRyxDQUFDQztBQUFFLHVCQUFNLENBQUMsR0FBRUQsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDO0FBQUUsa0JBQUlBLE1BQUVDO0FBQUEsWUFBQztBQUFBLFVBQUM7QUFBQyxtQkFBUy9GLElBQUU2RixJQUFFO0FBQUMscUJBQVFDLE1BQUVELFFBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUVELElBQUUsQ0FBQztBQUFFLGtCQUFHLENBQUNDO0FBQUUsdUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRUQsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRSxrQkFBSUEsTUFBRUM7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTOUYsSUFBRTRGLElBQUU7QUFBQyxxQkFBUUMsTUFBRUQsUUFBSTtBQUFDLGtCQUFHLENBQUNDO0FBQUUsc0JBQU1uSCxJQUFHK0QsS0FBRyxDQUFDO0FBQUUsa0JBQUcsQ0FBQ29ELElBQUUsQ0FBQztBQUFFLHVCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDO0FBQUUsa0JBQUlBLE1BQUVBLElBQUUsQ0FBQztBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVM1RixJQUFFMkYsSUFBRTtBQUFDLHFCQUFRQyxNQUFFRCxRQUFJO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRSx1QkFBTztBQUFFLGtCQUFHLENBQUNBLElBQUUsQ0FBQztBQUFFLHVCQUFNLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUUsa0JBQUlBLE1BQUVBLElBQUUsQ0FBQztBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVMzRixJQUFFMEYsSUFBRTtBQUFDLGdCQUFHLENBQUNBO0FBQUUscUJBQU9oQixJQUFHLEVBQUU7QUFBRSxnQkFBSWlCLE1BQUVELEdBQUUsQ0FBQztBQUFFLGdCQUFHLENBQUNDO0FBQUUscUJBQU9ELEdBQUUsQ0FBQztBQUFFLGdCQUFJRSxNQUFFRixHQUFFLENBQUMsR0FBRUcsTUFBR0gsR0FBRSxDQUFDLEdBQUVJLE1BQUdKLEdBQUUsQ0FBQztBQUFFLG1CQUFPLEVBQUUxRixJQUFFMkYsR0FBQyxHQUFFRyxLQUFHRCxLQUFHRCxHQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTM0YsSUFBRXlGLElBQUVDLEtBQUU7QUFBQyxnQkFBRyxDQUFDRDtBQUFFLHFCQUFPQztBQUFFLGdCQUFHLENBQUNBO0FBQUUscUJBQU9EO0FBQUUsZ0JBQUlFLE1BQUVqRyxJQUFFZ0csR0FBQyxHQUFFRSxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDO0FBQUUsbUJBQU8sRUFBRUYsSUFBRUksS0FBR0QsS0FBRzdGLElBQUUyRixHQUFDLENBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVMvRixJQUFFOEYsSUFBRUMsS0FBRTtBQUFDLGdCQUFHLENBQUNBO0FBQUUscUJBQU87QUFBRSxnQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUksS0FBRTVELEdBQUV4RSxHQUFFLENBQUMsR0FBRStILElBQUVJLEdBQUU7QUFBRSxnQkFBR0MsT0FBSTtBQUFFLHFCQUFPOUYsSUFBRSxJQUFHMkYsR0FBQztBQUFFLGdCQUFHLEtBQUdHLElBQUU7QUFBQyxrQkFBSUMsTUFBR3BHLElBQUU4RixJQUFFRSxHQUFDO0FBQUUscUJBQU9BLFFBQUlJLE1BQUdMLE1BQUUsRUFBRSxJQUFHRyxLQUFHRCxLQUFHRyxHQUFFO0FBQUEsWUFBQztBQUFDLGdCQUFJLEtBQUdwRyxJQUFFOEYsSUFBRSxFQUFFO0FBQUUsbUJBQU8sT0FBSyxLQUFHQyxNQUFFLEVBQUUsSUFBR0csS0FBR0QsS0FBR0QsR0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBUzdCLElBQUcyQixJQUFFQyxLQUFFQyxLQUFFO0FBQUMsZ0JBQUcsQ0FBQ0EsS0FBRTtBQUFDLGtCQUFJQyxNQUFHLEVBQUVGLEtBQUUsQ0FBQztBQUFFLHFCQUFPRSxNQUFHLENBQUMsR0FBRSxHQUFFSCxJQUFFRyxJQUFHLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBRTtBQUFBLFlBQUM7QUFBQyxnQkFBSUMsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVHLEtBQUVILElBQUUsQ0FBQyxHQUFFSSxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUssTUFBRzlELEdBQUV4RSxHQUFFLENBQUMsR0FBRStILElBQUVLLEVBQUM7QUFBRSxnQkFBR0UsUUFBSyxHQUFFO0FBQUMsa0JBQUksS0FBRyxFQUFFTixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBRSxrQkFBRyxDQUFDO0FBQUcsdUJBQU8xRixJQUFFK0YsS0FBR0YsR0FBRTtBQUFFLGtCQUFJLEtBQUcsR0FBRyxDQUFDO0FBQUUscUJBQU8sT0FBSyxLQUFHRixNQUFFLENBQUMsR0FBRUksS0FBR04sSUFBRSxJQUFHSSxLQUFHLEVBQUU7QUFBQSxZQUFDO0FBQUMsZ0JBQUcsS0FBR0csS0FBRztBQUFDLGtCQUFJLEtBQUdsQyxJQUFHMkIsSUFBRUMsS0FBRUcsR0FBRTtBQUFFLHFCQUFPQSxRQUFLLEtBQUdGLE1BQUUsRUFBRUksS0FBR0QsSUFBRSxJQUFHLEVBQUU7QUFBQSxZQUFDO0FBQUMsZ0JBQUlHLE1BQUduQyxJQUFHMkIsSUFBRUMsS0FBRUssR0FBRTtBQUFFLG1CQUFPQSxRQUFLRSxNQUFHTixNQUFFLEVBQUVNLEtBQUdILElBQUUsSUFBR0QsR0FBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUzlCLElBQUcwQixJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUM7QUFBRSxjQUFBNUIsSUFBRzBCLElBQUVFLElBQUUsQ0FBQyxDQUFDLEdBQUV6RCxHQUFFdUQsSUFBRSxJQUFHSSxHQUFFO0FBQUUsa0JBQUlGLE1BQUVDO0FBQUEsWUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUzVCLElBQUV5QixJQUFFQyxLQUFFO0FBQUMsZ0JBQUcsQ0FBQ0E7QUFBRSxxQkFBTztBQUFFLGdCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFSSxLQUFFOUIsSUFBRXlCLElBQUVDLElBQUUsQ0FBQyxDQUFDLEdBQUVLLE1BQUcsRUFBRU4sSUFBRUksR0FBRTtBQUFFLG1CQUFNLENBQUMsR0FBRUMsSUFBRSxJQUFHQyxLQUFHL0IsSUFBRXlCLElBQUVHLEdBQUUsR0FBRUQsR0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBUzFCLElBQUV3QixJQUFFQyxLQUFFO0FBQUMsZ0JBQUcsQ0FBQ0E7QUFBRSxxQkFBTztBQUFFLGdCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFSSxLQUFFN0IsSUFBRXdCLElBQUVDLElBQUUsQ0FBQyxDQUFDLEdBQUVLLE1BQUc3RCxHQUFFdUQsSUFBRUUsS0FBRSxFQUFFO0FBQUUsbUJBQU0sQ0FBQyxHQUFFRyxJQUFFSCxLQUFFSSxLQUFHOUIsSUFBRXdCLElBQUVJLEdBQUUsR0FBRUQsR0FBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUzFCLElBQUV1QixJQUFFQyxLQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUdGLEtBQUVHLE1BQUdGLFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFHLHVCQUFPQztBQUFHLGtCQUFJLEtBQUdELElBQUcsQ0FBQyxHQUFFRSxLQUFFRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUUsS0FBRyxHQUFHSCxJQUFFTSxLQUFHRCxJQUFFNUIsSUFBRXVCLElBQUVHLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUMsR0FBRUQsTUFBRyxJQUFHQyxNQUFHO0FBQUEsWUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUzFCLElBQUVzQixJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHekQsR0FBRXVELElBQUVFLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsQ0FBQztBQUFFLGtCQUFHLElBQUc7QUFBQyxvQkFBSUcsS0FBRTNCLElBQUVzQixJQUFFSSxHQUFFO0FBQUUsb0JBQUdDLElBQUU7QUFBQyxzQkFBSUgsTUFBRUM7QUFBRztBQUFBLGdCQUFRO0FBQUMsb0JBQUlHLE1BQUdEO0FBQUEsY0FBQztBQUFNLG9CQUFJQyxNQUFHO0FBQUcscUJBQU9BO0FBQUEsWUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHTixJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPO0FBQUUsa0JBQUlDLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHekQsR0FBRXVELElBQUVFLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsQ0FBQztBQUFFLGtCQUFHO0FBQUcsb0JBQUlHLEtBQUU7QUFBQSxtQkFBTztBQUFDLG9CQUFJQyxNQUFHLEdBQUdOLElBQUVJLEdBQUU7QUFBRSxvQkFBRyxDQUFDRSxLQUFHO0FBQUMsc0JBQUlKLE1BQUVDO0FBQUc7QUFBQSxnQkFBUTtBQUFDLG9CQUFJRSxLQUFFQztBQUFBLGNBQUU7QUFBQyxxQkFBT0Q7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTMUIsSUFBRXFCLElBQUVDLEtBQUVDLEtBQUU7QUFBQyxnQkFBRyxDQUFDQTtBQUFFLHFCQUFPOUgsSUFBRTRILElBQUVDLEdBQUM7QUFBRSxnQkFBSUUsTUFBR0QsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQztBQUFFLG1CQUFPLEVBQUV2QixJQUFFcUIsSUFBRUMsS0FBRUMsSUFBRSxDQUFDLENBQUMsR0FBRSxJQUFHRSxLQUFHRCxHQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTdkIsSUFBR29CLElBQUVDLEtBQUVDLEtBQUU7QUFBQyxnQkFBRyxDQUFDQTtBQUFFLHFCQUFPOUgsSUFBRTRILElBQUVDLEdBQUM7QUFBRSxnQkFBSUUsTUFBR0QsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQztBQUFFLG1CQUFPLEVBQUUsSUFBR0UsS0FBR0QsS0FBR3ZCLElBQUdvQixJQUFFQyxLQUFFQyxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTckIsSUFBR21CLElBQUVDLEtBQUVDLEtBQUVDLEtBQUc7QUFBQyxnQkFBRyxDQUFDSDtBQUFFLHFCQUFPckIsSUFBRXNCLEtBQUVDLEtBQUVDLEdBQUU7QUFBRSxnQkFBRyxDQUFDQTtBQUFHLHFCQUFPdkIsSUFBR3FCLEtBQUVDLEtBQUVGLEVBQUM7QUFBRSxnQkFBSUksTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBR0gsR0FBRSxDQUFDLEdBQUVLLEtBQUVGLElBQUcsQ0FBQyxHQUFFRyxNQUFHSCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRUksTUFBR0osSUFBRyxDQUFDLEdBQUUsS0FBR0gsR0FBRSxDQUFDLEdBQUUsS0FBR0EsR0FBRSxDQUFDLEdBQUUsS0FBR0EsR0FBRSxDQUFDLEdBQUVRLE1BQUdSLEdBQUUsQ0FBQztBQUFFLG9CQUFPSSxNQUFHLElBQUUsS0FBRyxLQUFHLEVBQUVJLEtBQUcsSUFBRyxJQUFHM0IsSUFBRyxJQUFHb0IsS0FBRUMsS0FBRUMsR0FBRSxDQUFDLEtBQUcsS0FBRyxJQUFFLEtBQUdDLE1BQUcsRUFBRXZCLElBQUdtQixJQUFFQyxLQUFFQyxLQUFFSyxHQUFFLEdBQUUsSUFBR0QsS0FBR0QsRUFBQyxJQUFFbEksR0FBRTZILElBQUVDLEtBQUVDLEtBQUVDLEdBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVNyQixJQUFHa0IsSUFBRUMsS0FBRTtBQUFDLGdCQUFHLENBQUNEO0FBQUUscUJBQU9DO0FBQUUsZ0JBQUcsQ0FBQ0E7QUFBRSxxQkFBT0Q7QUFBRSxnQkFBSUUsTUFBRWpHLElBQUVnRyxHQUFDLEdBQUVFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUM7QUFBRSxtQkFBT3JCLElBQUdtQixJQUFFSSxLQUFHRCxLQUFHN0YsSUFBRTJGLEdBQUMsQ0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBU2xCLElBQUdpQixJQUFFQyxLQUFFQyxLQUFFQyxLQUFHO0FBQUMsbUJBQU9ELE1BQUVyQixJQUFHbUIsSUFBRUMsS0FBRUMsSUFBRSxDQUFDLEdBQUVDLEdBQUUsSUFBRXJCLElBQUdrQixJQUFFRyxHQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTVyxJQUFHZCxJQUFFQyxLQUFFO0FBQUMsZ0JBQUcsQ0FBQ0E7QUFBRSxxQkFBTztBQUFHLGdCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFSSxLQUFFNUQsR0FBRXhFLEdBQUUsQ0FBQyxHQUFFK0gsSUFBRUksR0FBRTtBQUFFLGdCQUFHQyxPQUFJO0FBQUUscUJBQU0sQ0FBQyxHQUFFLElBQUcsQ0FBQyxHQUFFRixHQUFFLEdBQUVELEdBQUM7QUFBRSxnQkFBRyxLQUFHRyxJQUFFO0FBQUMsa0JBQUlDLE1BQUdRLElBQUdkLElBQUVFLEdBQUMsR0FBRSxLQUFHSSxJQUFHLENBQUMsR0FBRUMsTUFBR0QsSUFBRyxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFekIsSUFBRyxJQUFHdUIsS0FBR0QsS0FBR0csSUFBRyxDQUFDLENBQUMsR0FBRUMsS0FBRyxFQUFFO0FBQUEsWUFBQztBQUFDLGdCQUFJLEtBQUdPLElBQUdkLElBQUUsRUFBRSxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUM7QUFBRSxtQkFBTSxDQUFDLEdBQUUsSUFBRyxJQUFHbkIsSUFBRyxHQUFHLENBQUMsR0FBRXVCLEtBQUdELEtBQUdELEdBQUMsQ0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBU2EsSUFBR2YsSUFBRUMsS0FBRUMsS0FBRTtBQUFDLGdCQUFHRCxLQUFFO0FBQUMsa0JBQUlFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUksS0FBRUosSUFBRSxDQUFDLEdBQUVLLE1BQUdMLElBQUUsQ0FBQztBQUFFLGtCQUFHL0gsR0FBRWdJLEdBQUMsS0FBR0UsS0FBRztBQUFDLG9CQUFJLEtBQUdVLElBQUdYLEtBQUdELEdBQUMsR0FBRUssTUFBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUdRLElBQUdmLElBQUUsSUFBRyxHQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsR0FBR0EsSUFBRUcsS0FBRyxDQUFDLEdBQUVFLEVBQUMsR0FBRUUsR0FBRTtBQUFFLHVCQUFPeEIsSUFBR2dDLElBQUdmLElBQUVNLEtBQUcsRUFBRSxHQUFFSCxLQUFHLElBQUcsRUFBRTtBQUFBLGNBQUM7QUFBQSxZQUFDLFdBQVMsQ0FBQ0Q7QUFBRSxxQkFBTztBQUFFLGdCQUFHLENBQUNBO0FBQUUsb0JBQU1wSCxJQUFHLENBQUMsR0FBRWdFLEtBQUcsRUFBRSxHQUFFLENBQUM7QUFBRSxnQkFBSTBELE1BQUdOLElBQUUsQ0FBQyxHQUFFTyxLQUFFUCxJQUFFLENBQUMsR0FBRVEsTUFBRVIsSUFBRSxDQUFDLEdBQUVTLE1BQUdULElBQUUsQ0FBQyxHQUFFLEtBQUdZLElBQUdOLEtBQUdQLEdBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFVyxNQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUdHLElBQUdmLElBQUUsR0FBRyxDQUFDLEdBQUVTLEVBQUMsR0FBRSxLQUFHLEdBQUdULElBQUVRLEtBQUcsSUFBRyxDQUFDLEdBQUVFLEdBQUMsQ0FBQztBQUFFLG1CQUFPM0IsSUFBR2dDLElBQUdmLElBQUVZLEtBQUdELEdBQUUsR0FBRUgsS0FBRyxJQUFHLEVBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVNRLElBQUdoQixJQUFFQyxLQUFFQyxLQUFFO0FBQUMsZ0JBQUdELEtBQUU7QUFBQyxrQkFBR0MsS0FBRTtBQUFDLG9CQUFJQyxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0QsSUFBRSxDQUFDLEdBQUVJLEtBQUVKLElBQUUsQ0FBQyxHQUFFSyxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUssTUFBR04sSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDO0FBQUUsb0JBQUdDLElBQUUsQ0FBQyxLQUFHRCxJQUFFLENBQUMsR0FBRTtBQUFDLHNCQUFJLEtBQUdhLElBQUdULElBQUVILEdBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFTSxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxLQUFFTyxJQUFHaEIsSUFBRSxJQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUVVLE1BQUVNLElBQUdoQixJQUFFTyxLQUFHQyxHQUFFO0FBQUUseUJBQU8sS0FBR3pCLElBQUcwQixJQUFFSixJQUFFLEdBQUdMLElBQUVLLElBQUUsSUFBRyxHQUFHLENBQUMsQ0FBQyxHQUFFSyxHQUFDLElBQUU3QixJQUFHNEIsSUFBRUosSUFBRSxJQUFHSyxHQUFDO0FBQUEsZ0JBQUM7QUFBQyxvQkFBSUMsTUFBR0csSUFBR1YsS0FBR0gsR0FBQyxHQUFFLEtBQUdVLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFQyxNQUFHSSxJQUFHaEIsSUFBRVcsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUdLLElBQUdoQixJQUFFLElBQUdNLEdBQUU7QUFBRSx1QkFBTyxLQUFHdkIsSUFBRzZCLEtBQUdSLEtBQUcsR0FBR0osSUFBRUksS0FBRyxHQUFHLENBQUMsR0FBRUQsR0FBRSxHQUFFLEVBQUUsSUFBRXRCLElBQUcrQixLQUFHUixLQUFHRCxLQUFHLEVBQUU7QUFBQSxjQUFDO0FBQUMsa0JBQUksS0FBR0Y7QUFBQSxZQUFDO0FBQU0sa0JBQUksS0FBR0M7QUFBRSxtQkFBTztBQUFBLFVBQUU7QUFBQyxtQkFBU2UsSUFBR2pCLElBQUVDLEtBQUU7QUFBQyxnQkFBRyxDQUFDQTtBQUFFLHFCQUFPO0FBQUUsZ0JBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRUcsTUFBR0gsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVJLEtBQUVZLElBQUdqQixJQUFFLEVBQUUsR0FBRU0sTUFBRzdELEdBQUV1RCxJQUFFSSxLQUFHRCxHQUFFLEdBQUUsS0FBR2MsSUFBR2pCLElBQUVFLEdBQUM7QUFBRSxtQkFBT0ksTUFBRyxPQUFLRCxNQUFHSCxRQUFJLEtBQUdELE1BQUVwQixJQUFHd0IsSUFBRUQsS0FBR0QsS0FBRyxFQUFFLElBQUVyQixJQUFHdUIsSUFBRSxFQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTYSxJQUFHbEIsSUFBRUMsS0FBRTtBQUFDLGdCQUFHLENBQUNBO0FBQUUscUJBQU87QUFBRSxnQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHaUIsSUFBR2xCLElBQUVDLElBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUU1RCxHQUFFdUQsSUFBRUUsS0FBRUUsR0FBRSxHQUFFRSxNQUFHWSxJQUFHbEIsSUFBRUcsR0FBRTtBQUFFLG1CQUFPRSxLQUFFeEIsSUFBRyxJQUFHcUIsS0FBRUcsR0FBRSxDQUFDLEdBQUVDLEdBQUUsSUFBRXhCLElBQUcsSUFBR3dCLEdBQUU7QUFBQSxVQUFDO0FBQUMsbUJBQVMsR0FBR04sSUFBRUMsS0FBRTtBQUFDLGdCQUFHLENBQUNBO0FBQUUscUJBQU87QUFBRyxnQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHLEdBQUdELElBQUVDLElBQUUsQ0FBQyxDQUFDLEdBQUVJLEtBQUUsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUUsS0FBRzdELEdBQUV1RCxJQUFFRyxLQUFHRCxHQUFDLEdBQUVLLE1BQUcsR0FBR1AsSUFBRUksR0FBRSxHQUFFLEtBQUdHLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQztBQUFFLGdCQUFHLElBQUc7QUFBQyxrQkFBSSxLQUFHekIsSUFBR3VCLElBQUUsRUFBRTtBQUFFLHFCQUFNLENBQUMsR0FBRXhCLElBQUd5QixLQUFHSCxLQUFHRCxLQUFFLEVBQUUsR0FBRSxFQUFFO0FBQUEsWUFBQztBQUFDLGdCQUFJTSxNQUFHM0IsSUFBR3dCLElBQUVGLEtBQUdELEtBQUUsRUFBRTtBQUFFLG1CQUFNLENBQUMsR0FBRXBCLElBQUd3QixLQUFHLEVBQUUsR0FBRUUsR0FBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHUixJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVGLElBQUVHLE1BQUdGLFNBQUk7QUFBQyxrQkFBRyxDQUFDQztBQUFFLHVCQUFPQztBQUFHLGtCQUFJQyxNQUFHLENBQUMsR0FBRUYsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUMsR0FBRSxHQUFFRCxNQUFFQSxJQUFFLENBQUMsR0FBRUMsTUFBR0M7QUFBQSxZQUFFO0FBQUEsVUFBQztBQUFDLG1CQUFTLEdBQUdKLElBQUVDLEtBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRyxHQUFHRCxLQUFFLENBQUMsR0FBRUUsTUFBRyxHQUFHSCxLQUFFLENBQUMsR0FBRSxLQUFHRSxTQUFLO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRyx1QkFBTyxLQUFHLEtBQUc7QUFBRSxrQkFBRyxDQUFDO0FBQUcsdUJBQU87QUFBRSxrQkFBSUMsS0FBRSxHQUFHLENBQUMsR0FBRUMsTUFBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHSCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHM0QsR0FBRXhFLEdBQUUsQ0FBQyxHQUFFbUksSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7QUFBRSxrQkFBRyxPQUFLO0FBQUUsdUJBQU87QUFBRyxrQkFBSUksTUFBRy9ELEdBQUV1RCxJQUFFLElBQUcsRUFBRTtBQUFFLGtCQUFHUSxRQUFLO0FBQUUsdUJBQU9BO0FBQUcsa0JBQUlDLEtBQUUsR0FBR0gsS0FBR0QsRUFBQyxHQUFFRCxNQUFHLEdBQUcsSUFBR0csR0FBRSxHQUFFLEtBQUdFO0FBQUEsWUFBQztBQUFBLFVBQUM7QUFBQyxtQkFBU1UsSUFBR25CLElBQUVDLEtBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRyxHQUFHRCxLQUFFLENBQUMsR0FBRUUsTUFBRyxHQUFHSCxLQUFFLENBQUMsR0FBRSxLQUFHRSxTQUFLO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRyx1QkFBTyxLQUFHLElBQUU7QUFBRSxrQkFBRyxDQUFDO0FBQUcsdUJBQU87QUFBRSxrQkFBSUMsS0FBRSxHQUFHLENBQUMsR0FBRUMsTUFBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHSCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHM0QsR0FBRXhFLEdBQUUsQ0FBQyxHQUFFbUksSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUMsTUFBSSxJQUFFLElBQUU7QUFBRSxrQkFBRyxJQUFHO0FBQUMsb0JBQUlJLE1BQUcvRCxHQUFFdUQsSUFBRSxJQUFHLEVBQUU7QUFBRSxvQkFBR1EsS0FBRztBQUFDLHNCQUFJQyxLQUFFLEdBQUdILEtBQUdELEVBQUMsR0FBRUQsTUFBRyxHQUFHLElBQUdHLEdBQUUsR0FBRSxLQUFHRTtBQUFFO0FBQUEsZ0JBQVE7QUFBQyxvQkFBSUMsTUFBRUY7QUFBQSxjQUFFO0FBQU0sb0JBQUlFLE1BQUU7QUFBRyxxQkFBT0E7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTLEdBQUdWLElBQUU7QUFBQyxnQkFBRyxDQUFDQTtBQUFFLHFCQUFPO0FBQUUsZ0JBQUlDLE1BQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFLEdBQUdGLEdBQUUsQ0FBQyxDQUFDO0FBQUUsb0JBQU8sR0FBR0MsR0FBQyxJQUFFLElBQUUsS0FBR0MsTUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHRixJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVGLElBQUVHLE1BQUdGLFNBQUk7QUFBQyxrQkFBRyxDQUFDRTtBQUFHLHVCQUFPRDtBQUFFLGtCQUFJRSxNQUFHRCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRUUsS0FBRUYsSUFBRyxDQUFDLEdBQUVELE1BQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxJQUFHRSxHQUFFLEdBQUUsR0FBR0YsS0FBRUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFQSxNQUFHRTtBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVMsR0FBR0wsSUFBRTtBQUFDLG1CQUFPLEdBQUcsR0FBRUEsRUFBQztBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHQSxJQUFFQyxLQUFFO0FBQUMscUJBQVFDLE1BQUVELEtBQUVFLE1BQUdILFFBQUk7QUFBQyxrQkFBSUksTUFBRyxFQUFFRCxLQUFHLENBQUM7QUFBRSxrQkFBRyxDQUFDQztBQUFHLHVCQUFPRjtBQUFFLGtCQUFJLEtBQUdFLElBQUcsQ0FBQyxHQUFFQyxLQUFFRCxJQUFHLENBQUMsR0FBRUYsTUFBRTNILEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUySCxHQUFDLEdBQUVDLE1BQUdFO0FBQUEsWUFBQztBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHTCxJQUFFO0FBQUMsbUJBQU8sR0FBR0EsSUFBRSxDQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTLEdBQUdBLElBQUVDLEtBQUU7QUFBQyxnQkFBRyxDQUFDRDtBQUFFLHFCQUFPO0FBQUUsZ0JBQUlFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFHSCxHQUFFLENBQUMsR0FBRUksTUFBRyxHQUFHSixHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUM7QUFBRSxtQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFRyxLQUFHRCxHQUFDLEdBQUUsU0FBUyxJQUFHO0FBQUMscUJBQU8sR0FBR0UsS0FBRyxFQUFFO0FBQUEsWUFBQyxDQUFDO0FBQUEsVUFBQztBQUFDLG1CQUFTZ0IsSUFBR3BCLElBQUU7QUFBQyxnQkFBSUMsTUFBRSxHQUFHRCxJQUFFLENBQUM7QUFBRSxtQkFBTyxTQUFTRSxLQUFFO0FBQUMscUJBQU8sR0FBR0QsS0FBRUMsR0FBQztBQUFBLFlBQUM7QUFBQSxVQUFDO0FBQUMsbUJBQVMsR0FBR0YsSUFBRUMsS0FBRTtBQUFDLHFCQUFRQyxNQUFFRixJQUFFRyxNQUFHRixTQUFJO0FBQUMsa0JBQUcsQ0FBQ0M7QUFBRSx1QkFBT0M7QUFBRyxrQkFBSUMsTUFBRyxDQUFDLEdBQUVGLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEdBQUUsR0FBRUQsTUFBRUEsSUFBRSxDQUFDLEdBQUVDLE1BQUdDO0FBQUEsWUFBRTtBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHSixJQUFFQyxLQUFFO0FBQUMsZ0JBQUcsQ0FBQ0Q7QUFBRSxxQkFBTztBQUFFLGdCQUFJRSxNQUFFRixHQUFFLENBQUMsR0FBRUcsTUFBR0gsR0FBRSxDQUFDLEdBQUVJLE1BQUcsR0FBR0osR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxDQUFDO0FBQUUsbUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRUcsS0FBR0QsR0FBQyxHQUFFLFNBQVMsSUFBRztBQUFDLHFCQUFPLEdBQUdFLEtBQUcsRUFBRTtBQUFBLFlBQUMsQ0FBQztBQUFBLFVBQUM7QUFBQyxtQkFBUyxHQUFHSixJQUFFO0FBQUMsZ0JBQUlDLE1BQUUsR0FBR0QsSUFBRSxDQUFDO0FBQUUsbUJBQU8sU0FBU0UsS0FBRTtBQUFDLHFCQUFPLEdBQUdELEtBQUVDLEdBQUM7QUFBQSxZQUFDO0FBQUEsVUFBQztBQUFDLGlCQUFNLENBQUMsR0FBRSxHQUFFNUgsSUFBRTBCLEtBQUV6QixJQUFFOEYsS0FBR2pHLEtBQUU4QixLQUFFNkcsS0FBR0MsS0FBRyxJQUFHRyxLQUFHN0MsS0FBR0csS0FBRUMsS0FBRSxJQUFHdUMsS0FBR0MsS0FBRyxJQUFHLElBQUcsSUFBR2pILEtBQUVFLEtBQUVDLEtBQUVDLEtBQUVKLEtBQUVFLEtBQUUyRyxLQUFHLEdBQUUvRyxLQUFFdEIsS0FBRVcsSUFBRUMsSUFBRVMsSUFBRXlFLEtBQUVDLEtBQUU0QyxLQUFHLElBQUcsU0FBU3BCLElBQUVDLEtBQUU7QUFBQyxxQkFBUUMsTUFBRUQsS0FBRUUsTUFBRyxPQUFJO0FBQUMsa0JBQUdELEtBQUU7QUFBQyxvQkFBSUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVHLEtBQUVILElBQUUsQ0FBQyxHQUFFSSxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHekQsR0FBRXhFLEdBQUUsQ0FBQyxHQUFFb0ksSUFBRUwsRUFBQztBQUFFLG9CQUFHLE9BQUssR0FBRTtBQUFDLHNCQUFHLEtBQUcsSUFBRztBQUFDLHdCQUFJRSxNQUFFSSxLQUFHSCxNQUFHLENBQUMsR0FBRUUsSUFBRSxJQUFHRCxLQUFHRCxHQUFFO0FBQUU7QUFBQSxrQkFBUTtBQUFDLHNCQUFJRCxNQUFFRTtBQUFHO0FBQUEsZ0JBQVE7QUFBQyxvQkFBSUcsTUFBRyxDQUFDLEdBQUVGLElBQUUsSUFBR0QsS0FBR0QsR0FBRTtBQUFBLGNBQUM7QUFBTSxvQkFBSUksTUFBR0o7QUFBRyxxQkFBTyxTQUFTLElBQUc7QUFBQyx1QkFBTyxHQUFHSSxLQUFHLEVBQUU7QUFBQSxjQUFDO0FBQUEsWUFBQztBQUFBLFVBQUMsR0FBRSxJQUFHLEVBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVNjLElBQUdwSixJQUFFO0FBQUMsaUJBQU0sQ0FBQyxHQUFFLEdBQUUsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3FKLElBQUdySixJQUFFO0FBQUMsaUJBQU9BLEdBQUUsQ0FBQyxJQUFFLEdBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLGlCQUFPQSxHQUFFLENBQUMsSUFBRSxDQUFDLEdBQUVELElBQUVDLEdBQUUsQ0FBQyxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsSUFBRSxJQUFFLEdBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVNxSixJQUFHdEosSUFBRTtBQUFDLGNBQUlDLEtBQUVELEdBQUUsQ0FBQztBQUFFLGNBQUcsQ0FBQ0M7QUFBRSxtQkFBTztBQUFFLGNBQUlDLEtBQUVELEdBQUUsQ0FBQztBQUFFLGlCQUFPRCxHQUFFLENBQUMsSUFBRUMsR0FBRSxDQUFDLEdBQUVELEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsSUFBRSxJQUFFLEdBQUUsQ0FBQyxHQUFFRSxFQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTcUosSUFBR3ZKLElBQUU7QUFBQyxjQUFJQyxLQUFFRCxHQUFFLENBQUM7QUFBRSxpQkFBT0MsS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLElBQUU7QUFBQSxRQUFDO0FBQUMsWUFBSSxNQUFJLENBQUM1YyxLQUFHLElBQUdxZixJQUFHLENBQUMsQ0FBQztBQUFFLGlCQUFTLEdBQUcxQyxJQUFFO0FBQUMsaUJBQU0sQ0FBQyxHQUFFLEdBQUUsR0FBRSxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdBLElBQUU7QUFBQyxpQkFBT0EsR0FBRSxDQUFDLElBQUUsR0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRTtBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHQSxJQUFFQyxJQUFFO0FBQUMsY0FBSUMsS0FBRSxDQUFDLEdBQUVGLElBQUUsQ0FBQyxHQUFFRyxNQUFFRixHQUFFLENBQUM7QUFBRSxpQkFBT0UsT0FBR0YsR0FBRSxDQUFDLElBQUVBLEdBQUUsQ0FBQyxJQUFFLElBQUUsR0FBRUUsSUFBRSxDQUFDLElBQUVELElBQUVELEdBQUUsQ0FBQyxJQUFFQyxJQUFFLE1BQUlELEdBQUUsQ0FBQyxJQUFFLEdBQUVBLEdBQUUsQ0FBQyxJQUFFQyxJQUFFRCxHQUFFLENBQUMsSUFBRUMsSUFBRTtBQUFBLFFBQUU7QUFBQyxpQkFBU3NKLElBQUd4SixJQUFFO0FBQUMsY0FBSUMsS0FBRSxLQUFHRCxLQUFFQSxLQUFFLEdBQUVFLEtBQUVnSCxNQUFHakgsS0FBRWlILE1BQUdqSCxJQUFFRSxNQUFFc0MsSUFBR3ZDLEVBQUM7QUFBRSxpQkFBTSxDQUFDLEdBQUVDLEtBQUUsR0FBRUQsSUFBRUMsR0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3NKLElBQUd6SixJQUFFO0FBQUMsaUJBQU8ySCxJQUFHM0gsR0FBRSxDQUFDLEdBQUUsR0FBRUEsR0FBRSxDQUFDLENBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLG1CQUFRQyxLQUFFRixHQUFFLENBQUMsR0FBRUcsTUFBRSxDQUFDLEdBQUVILEdBQUUsQ0FBQyxDQUFDLE9BQUk7QUFBQyxnQkFBR0csSUFBRSxDQUFDLEtBQUdELEtBQUVELEtBQUUsSUFBRztBQUFDLGNBQUFFLElBQUUsQ0FBQyxJQUFFLElBQUVBLElBQUUsQ0FBQyxJQUFFO0FBQUU7QUFBQSxZQUFRO0FBQUMsWUFBQStHLE1BQUcvRyxJQUFFLENBQUMsT0FBS0QsS0FBRUQsS0FBRSxNQUFJaUgsTUFBRy9HLElBQUUsQ0FBQyxJQUFFK0csTUFBRyxHQUFHLEVBQUU7QUFBRyxnQkFBSSxJQUFFekUsSUFBR3RDLElBQUUsQ0FBQyxDQUFDO0FBQUUsZ0JBQUcsR0FBR0gsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUVBLEdBQUUsQ0FBQyxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUVBLEdBQUUsQ0FBQyxJQUFFRyxJQUFFLENBQUMsSUFBR0gsR0FBRSxDQUFDLElBQUVDLEtBQUUsS0FBR0QsR0FBRSxDQUFDO0FBQUUsb0JBQU1hLElBQUcsQ0FBQyxHQUFFZ0UsS0FBRyxFQUFFLEdBQUUsQ0FBQztBQUFFLGlCQUFJM0UsS0FBRUQsS0FBRSxNQUFJRCxHQUFFLENBQUM7QUFBRSxxQkFBTztBQUFFLGtCQUFNYSxJQUFHLENBQUMsR0FBRWdFLEtBQUcsRUFBRSxHQUFFLENBQUM7QUFBQSxVQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTNkUsSUFBRzFKLElBQUVDLElBQUU7QUFBQyxjQUFJQyxLQUFFRixHQUFFLENBQUM7QUFBRSxpQkFBT0EsR0FBRSxDQUFDLEtBQUdFLE1BQUcsR0FBR0YsSUFBRSxDQUFDLEdBQUVlLElBQUdmLEdBQUUsQ0FBQyxHQUFFRSxJQUFFRCxFQUFDLEdBQUVELEdBQUUsQ0FBQyxJQUFFRSxLQUFFLElBQUUsR0FBRTtBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHRixJQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMsY0FBSSxJQUFFRCxLQUFFLElBQUUsSUFBRTtBQUFFLGNBQUc7QUFBRSxnQkFBSUcsS0FBRTtBQUFBO0FBQU8sZ0JBQUksSUFBRUYsTUFBRSxJQUFFLElBQUUsR0FBRUUsS0FBRSxPQUFLLEdBQUdKLEVBQUMsSUFBRUUsTUFBRSxLQUFHRCxLQUFFLElBQUU7QUFBRyxVQUFBRyxNQUFHMEcsSUFBRyxFQUFFO0FBQUUsY0FBSXpHLEtBQUVOLEdBQUUsQ0FBQyxJQUFFRyxNQUFFO0FBQUUsaUJBQU9ILEdBQUUsQ0FBQyxJQUFFTSxNQUFHLEdBQUdOLElBQUVHLEdBQUMsR0FBRVEsSUFBR1YsSUFBRUMsSUFBRUYsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFRyxHQUFDLEdBQUVILEdBQUUsQ0FBQyxJQUFFTSxJQUFFO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdOLElBQUVDLElBQUVDLElBQUVDLEtBQUU7QUFBQyxpQkFBTyxHQUFHSCxJQUFFK0QsSUFBRzlELEVBQUMsR0FBRUMsSUFBRUMsR0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBU3dKLElBQUczSixJQUFFQyxJQUFFO0FBQUMsY0FBSUMsS0FBRSxHQUFHRCxFQUFDLEdBQUVFLE1BQUVILEdBQUUsQ0FBQyxJQUFFRSxLQUFFO0FBQUUsaUJBQU9GLEdBQUUsQ0FBQyxJQUFFRyxPQUFHLEdBQUdILElBQUVFLEVBQUMsR0FBRVMsSUFBR1YsSUFBRSxHQUFFRCxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVFLEVBQUMsR0FBRUYsR0FBRSxDQUFDLElBQUVHLEtBQUU7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0gsSUFBRTtBQUFDLGlCQUFPQSxHQUFFLENBQUMsTUFBSSxJQUFFLEtBQUc7QUFBQSxRQUFFO0FBQUMsaUJBQVMsR0FBR0EsSUFBRTtBQUFDLGlCQUFNLENBQUMsR0FBRSxHQUFFeUMsSUFBR3pDLEVBQUMsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHQSxJQUFFQyxJQUFFO0FBQUMsY0FBSUMsS0FBRThDLElBQUdoRCxHQUFFLENBQUMsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsSUFBRUMsS0FBRSxHQUFFLElBQUVDLEtBQUVDLE1BQUUsSUFBRTtBQUFFLGNBQUcsR0FBRTtBQUFDLGdCQUFJLElBQUVELEtBQUUsSUFBRSxHQUFFRyxLQUFFRixPQUFHLElBQUUsSUFBRUEsS0FBRUcsS0FBRW1DLElBQUdwQyxFQUFDO0FBQUUsZUFBR0wsR0FBRSxDQUFDLEdBQUUsR0FBRU0sSUFBRSxHQUFFSixFQUFDLEdBQUVGLEdBQUUsQ0FBQyxJQUFFTTtBQUFFLGdCQUFJLElBQUU7QUFBQSxVQUFDO0FBQU0sZ0JBQUksSUFBRTtBQUFFLGlCQUFPO0FBQUEsUUFBQztBQUFDLGlCQUFTc0osSUFBRzVKLElBQUVDLElBQUU7QUFBQyxpQkFBTyxHQUFHRCxJQUFFLENBQUMsR0FBRWdCLElBQUdoQixHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVDLEVBQUMsR0FBRUQsR0FBRSxDQUFDLElBQUVBLEdBQUUsQ0FBQyxJQUFFLElBQUUsR0FBRTtBQUFBLFFBQUM7QUFBQyxpQkFBUzZKLElBQUc3SixJQUFFQyxJQUFFO0FBQUMsY0FBSUMsS0FBRSxHQUFHRCxFQUFDO0FBQUUsaUJBQU8sR0FBR0QsSUFBRUUsRUFBQyxHQUFFMEgsSUFBRzNILElBQUUsR0FBRUQsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFRSxFQUFDLEdBQUVGLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsSUFBRUUsS0FBRSxHQUFFO0FBQUEsUUFBQztBQUFDLGlCQUFTLEdBQUdGLElBQUU7QUFBQyxpQkFBTzJILElBQUczSCxHQUFFLENBQUMsR0FBRSxHQUFFQSxHQUFFLENBQUMsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxHQUFHQSxJQUFFO0FBQUMsY0FBRyxPQUFPQSxNQUFHO0FBQVMsb0JBQU9BLElBQUU7QUFBQSxjQUFDLEtBQUs7QUFBRSx1QkFBTztBQUFBLGNBQUcsS0FBSztBQUFFLHVCQUFPO0FBQUEsY0FBRyxLQUFLO0FBQUUsdUJBQU87QUFBQSxjQUFHLEtBQUs7QUFBRSx1QkFBTztBQUFBLGNBQUcsS0FBSztBQUFFLHVCQUFPO0FBQUEsY0FBRyxLQUFLO0FBQUUsdUJBQU87QUFBQSxjQUFHO0FBQVEsdUJBQU87QUFBQSxZQUFFO0FBQUMsa0JBQU9BLEdBQUUsQ0FBQyxHQUFFO0FBQUEsWUFBQyxLQUFLO0FBQUUscUJBQU9BLEdBQUUsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFPQSxHQUFFLENBQUM7QUFBQSxZQUFFO0FBQVEscUJBQU8sR0FBRyxJQUFHLEdBQUcsR0FBRUEsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVMsR0FBR0EsSUFBRUMsSUFBRTtBQUFDLG1CQUFRQyxLQUFFRCxRQUFJO0FBQUMsZ0JBQUcsT0FBT0MsTUFBRztBQUFTLHFCQUFPO0FBQUUsb0JBQU9BLEdBQUUsQ0FBQyxHQUFFO0FBQUEsY0FBQyxLQUFLO0FBQUUsb0JBQUlDLE1BQUVELEdBQUUsQ0FBQztBQUFFLGdCQUFBMkosSUFBRzdKLElBQUUsRUFBRTtBQUFFLG9CQUFJRSxLQUFFQztBQUFFO0FBQUEsY0FBUyxLQUFLO0FBQUUsb0JBQUksSUFBRUQsR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUU7QUFBRTtBQUFBLGNBQVMsS0FBSztBQUFFLG9CQUFJLElBQUVBLEdBQUUsQ0FBQztBQUFFLGdCQUFBMkosSUFBRzdKLElBQUUsRUFBRTtBQUFFLG9CQUFJRSxLQUFFO0FBQUU7QUFBQSxjQUFTLEtBQUs7QUFBRSxvQkFBSUcsS0FBRUgsR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUVHO0FBQUU7QUFBQSxjQUFTLEtBQUs7QUFBRSxvQkFBSUMsS0FBRUosR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUVJO0FBQUU7QUFBQSxjQUFTLEtBQUs7QUFBRSxvQkFBSSxJQUFFSixHQUFFLENBQUM7QUFBRSxnQkFBQTJKLElBQUc3SixJQUFFLEVBQUU7QUFBRSxvQkFBSUUsS0FBRTtBQUFFO0FBQUEsY0FBUyxLQUFLO0FBQUUsb0JBQUlNLE1BQUVOLEdBQUUsQ0FBQztBQUFFLGdCQUFBMkosSUFBRzdKLElBQUUsRUFBRTtBQUFFLG9CQUFJRSxLQUFFTTtBQUFFO0FBQUEsY0FBUyxLQUFLO0FBQUUsb0JBQUlXLEtBQUVqQixHQUFFLENBQUM7QUFBRSxnQkFBQTJKLElBQUc3SixJQUFFLEVBQUU7QUFBRSxvQkFBSUUsS0FBRWlCO0FBQUU7QUFBQSxjQUFTLEtBQUs7QUFBRSxvQkFBSUMsS0FBRWxCLEdBQUUsQ0FBQyxHQUFFMkIsS0FBRTNCLEdBQUUsQ0FBQztBQUFFLGdCQUFBMkosSUFBRzdKLElBQUUsRUFBRSxHQUFFLEdBQUdBLElBQUU2QixFQUFDLEdBQUVnSSxJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUVrQjtBQUFFO0FBQUEsY0FBUyxLQUFLO0FBQUUsb0JBQUlVLE1BQUU1QixHQUFFLENBQUMsR0FBRTZCLE1BQUU3QixHQUFFLENBQUM7QUFBRSxnQkFBQTJKLElBQUc3SixJQUFFLEVBQUUsR0FBRSxHQUFHQSxJQUFFK0IsR0FBQyxHQUFFOEgsSUFBRzdKLElBQUUsRUFBRTtBQUFFLG9CQUFJRSxLQUFFNEI7QUFBRTtBQUFBLGNBQVMsS0FBSztBQUFHLG9CQUFJRSxNQUFFOUIsR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUU4QjtBQUFFO0FBQUEsY0FBUyxLQUFLO0FBQUcsb0JBQUlFLE1BQUVoQyxHQUFFLENBQUM7QUFBRSxnQkFBQTJKLElBQUc3SixJQUFFLEVBQUU7QUFBRSxvQkFBSUUsS0FBRWdDO0FBQUU7QUFBQSxjQUFTLEtBQUs7QUFBRyxvQkFBSUMsTUFBRWpDLEdBQUUsQ0FBQztBQUFFLGdCQUFBMkosSUFBRzdKLElBQUUsRUFBRTtBQUFFLG9CQUFJRSxLQUFFaUM7QUFBRTtBQUFBLGNBQVMsS0FBSztBQUFHLG9CQUFJQyxNQUFFbEMsR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUVrQztBQUFFO0FBQUEsY0FBUztBQUFRLG9CQUFJQyxNQUFFbkMsR0FBRSxDQUFDO0FBQUUsZ0JBQUEySixJQUFHN0osSUFBRSxFQUFFO0FBQUUsb0JBQUlFLEtBQUVtQztBQUFFO0FBQUEsWUFBUTtBQUFBLFVBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVN5SCxJQUFHOUosSUFBRTtBQUFDLGNBQUcsT0FBT0EsTUFBRztBQUFTLG1CQUFPO0FBQUUsa0JBQU9BLEdBQUUsQ0FBQyxHQUFFO0FBQUEsWUFBQyxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFOEosSUFBRzlKLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUU4SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRThKLElBQUc5SixHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFOEosSUFBRzlKLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUU4SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLHFCQUFNLENBQUMsR0FBRThKLElBQUc5SixHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUUscUJBQU0sQ0FBQyxHQUFFOEosSUFBRzlKLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRSxxQkFBTSxDQUFDLEdBQUU4SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLGtCQUFJQyxLQUFFRCxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUVDLElBQUU2SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFFLGtCQUFJRSxLQUFFRixHQUFFLENBQUMsR0FBRUcsTUFBRUgsR0FBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFRSxJQUFFQyxLQUFFMkosSUFBRzlKLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUc4SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUUsS0FBSztBQUFHLHFCQUFNLENBQUMsSUFBRzhKLElBQUc5SixHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBRSxLQUFLO0FBQUcscUJBQU0sQ0FBQyxJQUFHOEosSUFBRzlKLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFFLEtBQUs7QUFBRyxxQkFBTSxDQUFDLElBQUc4SixJQUFHOUosR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUU7QUFBUSxxQkFBTSxDQUFDLElBQUc4SixJQUFHOUos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QUFHO0FBQUEsWUFBTTtBQUFRLGtCQUFJQSxLQUFFO0FBQUEsVUFBRTtBQUFDLGlCQUFPLEdBQUdGLElBQUUsR0FBR0UsSUFBRUQsRUFBQyxDQUFDO0FBQUEsUUFBQztBQUFDLGlCQUFTLElBQUlELElBQUVDLElBQUU7QUFBQyxrQkFBT0QsSUFBRTtBQUFBLFlBQUMsS0FBSztBQUFFLGtCQUFJRSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUcsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFHLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBQSxZQUFFLEtBQUs7QUFBRyxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUEsWUFBRSxLQUFLO0FBQUcsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU07QUFBUSxrQkFBSUEsS0FBRTtBQUFBLFVBQUU7QUFBQyxpQkFBTyxHQUFHRixJQUFFLEdBQUdFLElBQUVELEVBQUMsQ0FBQztBQUFBLFFBQUM7QUFBQyxpQkFBUyxJQUFJRCxJQUFFQyxJQUFFO0FBQUMsa0JBQU9ELElBQUU7QUFBQSxZQUFDLEtBQUs7QUFBRSxrQkFBSUUsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFHLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRyxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUEsWUFBRSxLQUFLO0FBQUcsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFBLFlBQUUsS0FBSztBQUFHLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNO0FBQVEsa0JBQUlBLEtBQUU7QUFBQSxVQUFFO0FBQUMsaUJBQU8sR0FBR0YsSUFBRSxHQUFHRSxJQUFFRCxFQUFDLENBQUM7QUFBQSxRQUFDO0FBQUMsaUJBQVMsSUFBSUQsSUFBRUMsSUFBRTtBQUFDLGtCQUFPRCxJQUFFO0FBQUEsWUFBQyxLQUFLO0FBQUUsa0JBQUlFLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRSxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRyxrQkFBSUEsS0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUcsa0JBQUlBLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFBLFlBQUUsS0FBSztBQUFHLGtCQUFJQSxLQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFB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QUFPNUwsS0FBRSxLQUFHNEwsSUFBRzVMLEtBQUUsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUVxRSxJQUFHdUgsS0FBRyxDQUFDLEdBQUUsR0FBRSxHQUFFLEVBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBTzVMLEtBQUUsS0FBRzRMLElBQUc1TCxLQUFFLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFFcUUsSUFBR3VILEtBQUcsQ0FBQyxHQUFFLEdBQUUsR0FBRSxFQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU81TCxLQUFFLEtBQUc0TCxJQUFHNUwsS0FBRSxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsSUFBRXFFLElBQUd1SCxLQUFHLENBQUMsR0FBRSxHQUFFLEdBQUUsRUFBRSxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLDJCQUFPNUwsS0FBRSxLQUFHNEwsSUFBRzVMLEtBQUUsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUVxRSxJQUFHdUgsS0FBRyxDQUFDLEdBQUUsR0FBRSxHQUFFLEVBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBTzVMLEtBQUUsS0FBRzRMLElBQUc1TCxLQUFFLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxJQUFFcUUsSUFBR3VILEtBQUcsQ0FBQyxHQUFFLEdBQUUsR0FBRSxFQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU81TCxLQUFFLEtBQUc0TCxJQUFHNUwsS0FBRSxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsSUFBRXFFLElBQUd1SCxLQUFHLENBQUMsR0FBRSxHQUFFLEdBQUUsRUFBRSxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLDJCQUFPNUwsS0FBRSxLQUFHNEwsSUFBRzVMLEtBQUUsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLElBQUVxRSxJQUFHdUgsS0FBRyxDQUFDLEdBQUUsR0FBRSxHQUFFLEVBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSTFDLE1BQUcs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QyxJQUFFLElBQUUsR0FBRUMsT0FBSSxPQUFLRCxHQUFFLENBQUMsTUFBSSxNQUFJQSxHQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLElBQUUsSUFBRSxJQUFHQSxHQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLElBQUdDO0FBQUEsWUFBQyxHQUFFNE0sTUFBRyxTQUFTN00sSUFBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxJQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLElBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsSUFBRUMsSUFBRTtBQUFBLFlBQUMsR0FBRTZNLE1BQUcsU0FBUzlNLElBQUU7QUFBQyxxQkFBT0EsR0FBRSxDQUFDLElBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsR0FBRTZNLElBQUc3TSxJQUFFLEVBQUU7QUFBQSxZQUFDLEdBQUUrTSxLQUFFLFNBQVMvTSxJQUFFO0FBQUMscUJBQU9BLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLElBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLENBQUMsSUFBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRTtBQUFBLFlBQUMsR0FBRWdOLE1BQUcsU0FBU2hOLElBQUU7QUFBQyxxQkFBT0EsR0FBRSxDQUFDLElBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsR0FBRTtBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNBLElBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxDQUFDLElBQUVDLElBQUU7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxJQUFFO0FBQUMscUJBQU9BLEdBQUUsQ0FBQyxJQUFFQSxHQUFFLENBQUMsSUFBRTtBQUFBLFlBQUMs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O0FBQVEsa0NBQUksS0FBRyxDQUFDLEdBQUUsSUFBRyxDQUFDLEdBQUUsSUFBRyxDQUFDLEdBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQztBQUFFLGdDQUFJcUIsTUFBRztBQUFBLDBCQUFFO0FBQUMsaUNBQU0sQ0FBQyxHQUFFQSxLQUFHSixFQUFDO0FBQUEsd0JBQUM7QUFBQSxzQkFBQztBQUFBLG9CQUFDO0FBQUMsNkJBQVFRLE1BQUcsTUFBSSxHQUFFQyxLQUFFTSxJQUFHUCxLQUFHLEVBQUUsR0FBRUUsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUdJLElBQUcsS0FBR1AsTUFBRyxHQUFFQyxHQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUdDLEtBQUUsS0FBR0MsSUFBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRSxLQUFHRCxJQUFHLENBQUMsT0FBSTtBQUFDLDBCQUFHLElBQUc7QUFBQyw0QkFBRyxJQUFHO0FBQUMsOEJBQUksS0FBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUVFLE1BQUcsR0FBRyxDQUFDLEdBQUUsS0FBR3BFLEdBQUVzQyxLQUFHOEIsS0FBRyxFQUFFO0FBQUUsOEJBQUcsT0FBSyxHQUFFO0FBQUMsZ0NBQUksS0FBRyxJQUFHLEtBQUcsSUFBR0QsTUFBRyxDQUFDLEdBQUVDLEtBQUdELEdBQUU7QUFBRTtBQUFBLDBCQUFRO0FBQUMsOEJBQUcsSUFBRSxJQUFHO0FBQUMsZ0NBQUksS0FBRyxJQUFHQSxNQUFHLENBQUMsR0FBRUMsS0FBR0QsR0FBRTtBQUFFO0FBQUEsMEJBQVE7QUFBQyw4QkFBSSxLQUFHLElBQUdBLE1BQUcsQ0FBQyxHQUFFLElBQUdBLEdBQUU7QUFBRTtBQUFBLHdCQUFRO0FBQUMsNEJBQUksS0FBR3RCLElBQUcsSUFBR3NCLEdBQUU7QUFBQSxzQkFBQztBQUFNLDRCQUFJLEtBQUd0QixJQUFHLElBQUdzQixHQUFFO0FBQUUsNkJBQU0sQ0FBQyxHQUFFLElBQUcsRUFBRTtBQUFBLG9CQUFDO0FBQUEsa0JBQUMsR0FB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QUFHRCxNQUFHRixJQUFHRSxLQUFHekMsR0FBQyxFQUFFLENBQUMsSUFBRUEsS0FBRTJDLE1BQUcsU0FBUyxJQUFHLElBQUc7QUFBQyx3QkFBRyxLQUFHLE9BQUs7QUFBRSw4QkFBTyxJQUFHO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFNLENBQUMsR0FBRSxHQUFFLEVBQUU7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUc7QUFBRyxtQ0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7QUFBRTtBQUFBLHdCQUFNLEtBQUs7QUFBRSw4QkFBRyxJQUFHO0FBQUMsZ0NBQUlDLE1BQUcsR0FBRyxDQUFDO0FBQUUsZ0NBQUdBO0FBQUcscUNBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFQSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUcsQ0FBQyxDQUFDO0FBQUEsMEJBQUM7QUFBQztBQUFBLHdCQUFNO0FBQVEsOEJBQUcsSUFBRztBQUFDLGdDQUFJLEtBQUcsR0FBRyxDQUFDO0FBQUUsZ0NBQUcsSUFBRztBQUFDLGtDQUFJLEtBQUcsR0FBRyxDQUFDO0FBQUUsa0NBQUc7QUFBRyx1Q0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxHQUFHLENBQUMsQ0FBQztBQUFBLDRCQUFDO0FBQUEsMEJBQUM7QUFBQSxzQkFBQztBQUFDLHdCQUFJLEtBQUcsS0FBRyxJQUFFLEdBQUUsS0FBR0QsSUFBRyxJQUFHLEVBQUUsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDO0FBQUUsd0JBQUcsQ0FBQztBQUFHLDRCQUFNcEksSUFBRyxDQUFDLEdBQUVnRSxLQUFHLEVBQUUsR0FBRSxDQUFDO0FBQUUsd0JBQUlzRSxNQUFHLEdBQUcs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QUUsRUFBRSxHQUFFb0ksTUFBR3BJLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFcUksTUFBR3JJLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFc0ksTUFBR3RJLEdBQUUsRUFBRSxHQUFFdUksS0FBRXZJLEdBQUUsRUFBRSxHQUFFd0ksTUFBRXhJLEdBQUUsRUFBRSxHQUFFeUksTUFBR3pJLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFMEksTUFBRzFJLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFMkksTUFBRzNJLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFZ0ssTUFBR2hLLEdBQUUsRUFBRSxHQUFFaUssTUFBR2pLLEdBQUUsRUFBRSxHQUFFa0ssTUFBR2xLLEdBQUUsRUFBRSxHQUFFbUssTUFBR25LLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFb0ssTUFBR3BLLEdBQUUsRUFBRSxHQUFFcUssTUFBR3JLLEdBQUUsRUFBRSxHQUFFc0ssTUFBR3RLLEdBQUUsRUFBRSxHQUFFdUssTUFBR3ZLLEdBQUUsRUFBRSxHQUFFd0ssTUFBR3hLLEdBQUUsRUFBRSxHQUFFeUssTUFBRXpLLEdBQUUsRUFBRSxHQUFFMEssS0FBRTFLLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFMkssTUFBRzNLLEdBQUUsRUFBRSxHQUFFNEssTUFBRTVLLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsRUFBRSxHQUFFNkssTUFBRzdLLEdBQUUsRUFBRSxHQUFFLEtB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QztBQUFFLHVCQUFPQSxRQUFJRSxNQUFFSCxLQUFFLENBQUMsR0FBRUUsS0FBRUMsR0FBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVKLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRTVULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTBFLEdBQUUsR0FBRSxHQUFFK08sR0FBQztBQUFFLHVCQUFPQSxRQUFJRyxNQUFFSixLQUFFLENBQUMsR0FBRUcsS0FBRUQsS0FBRUUsR0FBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVMLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRTVULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTBFLEdBQUUsR0FBRSxHQUFFK08sR0FBQztBQUFFLHVCQUFPQSxRQUFJRyxNQUFFSixLQUFFLENBQUMsR0FBRUcsS0FBRUQsS0FBRUUsR0FBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVMLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRTVULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTBFLEdBQUUsR0FBRSxHQUFFK08sR0FBQztBQUFFLHVCQUFPQSxRQUFJRyxNQUFFSixLQUFFLENBQUMsR0FBRUcsS0FBRUQsS0FBRUUsR0FBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVMLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBRTNILEdBQUUsR0FBRSxHQUFF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QUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVMLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFM1QsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxHQUFFMFQsR0FBQyxHQUFFRSxNQUFFNVQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFMEUsR0FBRSxHQUFFLEdBQUUrTyxHQUFDO0FBQUUsdUJBQU9DLFFBQUlDLE9BQUdGLFFBQUlHLE1BQUVKLEtBQUUsQ0FBQyxHQUFFRyxLQUFFQyxHQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTLElBQUksR0FBRUwsSUFBRUMsSUFBRTtBQUFDLG9CQUFJQyxNQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUYsR0FBRSxDQUFDLEdBQUVHLE1BQUVILEdBQUUsQ0FBQyxHQUFFSSxNQUFFNVQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxHQUFFMlQsR0FBQyxHQUFFRSxNQUFFN1QsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxHQUFFMFQsR0FBQyxHQUFFSSxNQUFFOVQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFMEUsR0FBRSxHQUFFLEdBQUUrTyxHQUFDO0FBQUUsdUJBQU9FLFFBQUlDLE9BQUdGLFFBQUlHLE9BQUdKLFFBQUlLLE1BQUVOLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUksS0FBRUMsS0FBRUMsR0FBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVQLElBQUVDLElBQUU7QUFBQyxvQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRTVULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWlULEdBQUUsR0FBRSxHQUFFVSxHQUFDLEdBQUVFLE1BQUU3VCxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUsRUFBRSxHQUFFLEdBQUUwVCxHQUFDLEdBQUVJLE1BQUU5VCxHQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUwRSxHQUFFLEdBQUUsR0FBRStPLEdBQUM7QUFBRSx1QkFBT0UsUUFBSUMsT0FBR0YsUUFBSUcsT0FBR0osUUFBSUssTUFBRU4sS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFSSxLQUFFQyxLQUFFQyxHQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTLElBQUksR0FBRVAsSUFBRUMsSUFBRTtBQUFDLHVCQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBRWxHLEdBQUUsR0FBRSxHQUFFaUcsSUFBRUMsRUFBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVELElBQUU7QUFBQyx3QkFBT0EsR0FBRSxDQUFDLEdBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUUsd0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFLFNBQVNHLEtBQUU7QUFBQyw2QkFBTSxDQUFDLEdBQUVBLEdBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVKLElBQUVELElBQUVFLEdBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUlDLE1BQUVILEdBQUUsQ0FBQyxHQUFFSSxNQUFFLFNBQVNDLEtBQUU7QUFBQyw2QkFBTSxDQUFDLEdBQUVBLEdBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVGLEtBQUVILElBQUVJLEdBQUM7QUFBQSxrQkFBRTtBQUFRLDJCQUFPSjtBQUFBLGdCQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTLElBQUksR0FBRUEsSUFBRUMsSUFBRTtBQUFDLG9CQUFJQyxNQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUYsR0FBRSxDQUFDLEdBQUVHLE1BQUVuSyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFa0ssR0FBQyxHQUFFRSxNQUFFNVQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFMEUsR0FBRSxHQUFFLEdBQUUrTyxHQUFDO0FBQUUsdUJBQU9DLFFBQUlDLE9BQUdGLFFBQUlHLE1BQUVKLEtBQUUsQ0FBQyxHQUFFRyxLQUFFQyxHQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTLElBQUksR0FBRUwsSUFBRTtBQUFDLG9CQUFJQyxLQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUYsR0FBRSxDQUFDO0FBQUUsd0JBQU9DLEdBQUUsQ0FBQyxHQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLHdCQUFJRSxNQUFFRixHQUFFLENBQUMsR0FBRUcsTUFBRSxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVGLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVMLEdBQUUsR0FBRSxDQUFDLEdBQUVLLEtBQUVDLEtBQUVILElBQUVJLEdBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUlDLE1BQUVKLEdBQUUsQ0FBQyxHQUFFSyxNQUFFLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUosS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRVAsR0FBRSxHQUFFLENBQUMsR0FBRU8sS0FBRUcsS0FBRUwsSUFBRU0sR0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSUMsTUFBRU4sR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUsRUFBRSxHQUFFLENBQUMsR0FBRUEsS0FBRUssS0FBRVAsSUFBRSxFQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJLEtBQUdDLEdBQUUsQ0FBQyxHQUFFLEtBQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFQyxLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFVixHQUFFLEdBQUUsQ0FBQyxHQUFFVSxLQUFFLElBQUdGLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSSxLQUFHQyxHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWhCLEdBQUUsR0FBRSxDQUFDLEdBQUVnQixLQUFFLElBQUdGLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSSxLQUFHQyxHQUFFLENBQUMsR0FBRVMsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVSLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUxQixHQUFFLEdBQUUsQ0FBQyxHQUFFMEIsS0FBRSxJQUFHRixJQUFFVSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJQyxNQUFHVixHQUFFLENBQUMsR0FBRVcsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVWLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVqRCxHQUFFLEdBQUUsQ0FBQyxHQUFFaUQsS0FBRVMsS0FBR1gsSUFBRVksR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSUMsTUFBR1osR0FBRSxDQUFDLEdBQUVRLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFUCxLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFdkcsR0FBRSxHQUFFLENBQUMsR0FBRXVHLEtBQUVXLEtBQUdiLElBQUVTLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUlvQixNQUFHNUIsR0FBRSxDQUFDLEdBQUU2QixNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTVCLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVuSCxHQUFFLEdBQUUsQ0FBQyxHQUFFOEksS0FBRzdCLElBQUU4QixHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJQyxNQUFHOUIsR0FBRSxDQUFDLEdBQUUrQixPQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTlCLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBR3pULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXFNLEdBQUUsR0FBRSxHQUFFb0gsR0FBQyxHQUFFNkIsS0FBRy9CLElBQUVnQyxJQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxPQUFHaEMsR0FBRSxDQUFDLEdBQUVpQyxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRWhDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVySSxHQUFFLEdBQUUsQ0FBQyxHQUFFcUksS0FBRStCLE1BQUdqQyxJQUFFa0MsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR2xDLEdBQUUsQ0FBQyxHQUFFbUMsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVsQyxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFMUksR0FBRSxHQUFFLENBQUMsR0FBRTBJLEtBQUVpQyxLQUFHbkMsSUFBRW9DLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdwQyxHQUFFLENBQUMsR0FBRXFDLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFcEMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFQSxLQUFFbUMsS0FBR3JDLElBQUVzQyxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHdEMsR0FBRSxDQUFDLEdBQUV1QyxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXRDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVkLEdBQUUsR0FBRSxDQUFDLEdBQUVjLEtBQUVxQyxLQUFHdkMsSUFBRXdDLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUd4QyxHQUFFLENBQUMsR0FBRTJCLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFMUIsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWhLLEdBQUUsR0FBRSxDQUFDLEdBQUVnSyxLQUFFdUMsS0FBR3pDLElBQUU0QixHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJYyxNQUFHekMsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVoTixHQUFFLEdBQUUsQ0FBQyxHQUFFZ04sS0FBRXdDLEtBQUcxQyxJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlxRCxNQUFHcEQsR0FBRSxDQUFDLEdBQUVxRCxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXBELEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVULEdBQUUsR0FBRSxDQUFDLEdBQUVTLEtBQUVtRCxLQUFHckQsSUFBRXNELEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUd0RCxHQUFFLENBQUMsR0FBRXVELE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFdEQsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRS9QLEdBQUUsR0FBRSxDQUFDLEdBQUUrUCxLQUFFcUQsS0FBR3ZELElBQUV3RCxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHeEQsR0FBRSxDQUFDLEdBQUV5RCxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXhELEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUU5SixHQUFFLEdBQUUsQ0FBQyxHQUFFOEosS0FBRXVELEtBQUd6RCxJQUFFMEQsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBRzFELEdBQUUsQ0FBQyxHQUFFMkQsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUUxRCxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFdEosR0FBRSxHQUFFLENBQUMsR0FBRXNKLEtBQUV5RCxLQUFHM0QsSUFBRTRELEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUc1RCxHQUFFLENBQUMsR0FBRTZELE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFNUQsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXZKLEdBQUUsR0FBRSxDQUFDLEdBQUV1SixLQUFFMkQsS0FBRzdELElBQUU4RCxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHOUQsR0FBRSxDQUFDLEdBQUUrRCxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTlELEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUU3SixHQUFFLEdBQUUsQ0FBQyxHQUFFNkosS0FBRTZELEtBQUcvRCxJQUFFZ0UsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR2hFLEdBQUUsQ0FBQyxHQUFFaUUsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVoRSxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFL0osR0FBRSxHQUFFLENBQUMsR0FBRStKLEtBQUUrRCxLQUFHakUsSUFBRWtFLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdsRSxHQUFFLENBQUMsR0FBRW1FLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFbEUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFQSxLQUFFaUUsS0FBR25FLElBQUVvRSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJLEtBQUduRSxHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHelQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxHQUFFeVQsR0FBQyxHQUFFLElBQUdGLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSSxLQUFHQyxHQUFFLENBQUMsR0FBRW9FLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFbkUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTlOLEdBQUUsR0FBRSxDQUFDLEdBQUU4TixLQUFFLElBQUdGLElBQUVxRSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHckUsR0FBRSxDQUFDLEdBQUVzRSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXJFLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVsUSxFQUFDLEdBQUUsQ0FBQyxHQUFFa1EsS0FBRW9FLEtBQUd0RSxJQUFFdUUsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR3ZFLEdBQUUsQ0FBQyxHQUFFd0UsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUV2RSxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVBLEtBQUVzRSxLQUFHeEUsSUFBRXlFLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksS0FBR3hFLEdBQUUsQ0FBQyxHQUFFLEtBQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFQyxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVBLEtBQUUsSUFBR0YsSUFBRSxFQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJMEUsTUFBR3pFLEdBQUUsQ0FBQyxHQUFFMEUsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUV6RSxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVBLEtBQUV3RSxLQUFHMUUsSUFBRTJFLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUczRSxHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWhQLEdBQUUsR0FBRSxDQUFDLEdBQUVnUCxLQUFFMEUsS0FBRzVFLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSTZFLE1BQUc1RSxHQUFFLENBQUMsR0FBRTZFLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFNUUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTNSLEdBQUMsR0FBRSxDQUFDLEdBQUUyUixLQUFFMkUsS0FBRzdFLElBQUU4RSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHOUUsR0FBRSxDQUFDLEdBQUUrRSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTlFLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVwUCxHQUFFLEdBQUUsQ0FBQyxHQUFFb1AsS0FBRTZFLEtBQUcvRSxJQUFFZ0YsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR2hGLEdBQUUsQ0FBQyxHQUFFaUYsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVoRixLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFcFcsRUFBQyxHQUFFLENBQUMsR0FBRW9XLEtBQUUrRSxLQUFHakYsSUFBRWtGLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdsRixHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTlXLEVBQUMsR0FBRSxDQUFDLEdBQUU4VyxLQUFFaUYsS0FBR25GLElBQUUsRUFBRTtBQUFBLGtCQUFFO0FBQVEsd0JBQUlvRixNQUFHbkYsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUvWCxFQUFDLEdBQUUsQ0FBQyxHQUFFK1gsS0FBRWtGLEtBQUdwRixJQUFFLEVBQUU7QUFBQSxnQkFBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVBLElBQUU7QUFBQyxvQkFBSUMsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRW5LLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFOEgsR0FBRSxHQUFFLENBQUMsR0FBRW1DLEdBQUMsR0FBRUcsTUFBRXBLLElBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFOEgsR0FBRSxHQUFFLENBQUMsR0FBRWtDLEVBQUM7QUFBRSx1QkFBT0MsUUFBSUUsT0FBR0gsT0FBSUksTUFBRUwsS0FBRSxDQUFDLEdBQUVJLEtBQUVDLEtBQUVGLEdBQUM7QUFBQSxjQUFDO0FBQUMsdUJBQVMsSUFBSSxHQUFFO0FBQUMsb0JBQUlILEtBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDO0FBQUUsdUJBQU8sU0FBU0MsSUFBRTtBQUFDLHlCQUFPLEdBQUdELElBQUVDLEVBQUM7QUFBQSxnQkFBQztBQUFBLGNBQUM7QUFBQyx1QkFBUyxJQUFJLEdBQUVELElBQUU7QUFBQyx1QkFBT0E7QUFBQSxjQUFDO0FBQUMsdUJBQVMsSUFBSSxHQUFFQSxJQUFFO0FBQUMsb0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFRixHQUFFLENBQUM7QUFBRSx3QkFBT0MsR0FBRSxDQUFDLEdBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUUsd0JBQUlFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUYsS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWIsR0FBRSxHQUFFLENBQUMsR0FBRWEsS0FBRUMsS0FBRUgsSUFBRUksR0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSUMsTUFBRUosR0FBRSxDQUFDLEdBQUVLLE1BQUUsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFSixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFZixHQUFFLEdBQUUsQ0FBQyxHQUFFZSxLQUFFRyxLQUFFTCxJQUFFTSxHQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJQyxNQUFFTixHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXZCLEdBQUUsR0FBRSxDQUFDLEdBQUV1QixLQUFFSyxLQUFFUCxJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUksS0FBR0MsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVyQyxHQUFFLEdBQUUsQ0FBQyxHQUFFcUMsS0FBRSxJQUFHRixJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUksS0FBR0MsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVuRCxHQUFFLEdBQUUsQ0FBQyxHQUFFbUQsS0FBRSxJQUFHRixJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUksS0FBR0MsR0FBRSxDQUFDLEdBQUVTLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFUixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFcEQsR0FBRSxHQUFFLENBQUMsR0FBRW9ELEtBQUUsSUFBR0YsSUFBRVUsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSUMsTUFBR1YsR0FBRSxDQUFDLEdBQUVXLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFVixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFckQsR0FBRSxHQUFFLENBQUMsR0FBRXFELEtBQUVTLEtBQUdYLElBQUVZLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUlDLE1BQUdaLEdBQUUsQ0FBQyxHQUFFUSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRVAsS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXRELEdBQUUsR0FBRSxDQUFDLEdBQUVzRCxLQUFFVyxLQUFHYixJQUFFUyxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJb0IsTUFBRzVCLEdBQUUsQ0FBQyxHQUFFNkIsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUU1QixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFdkQsR0FBRSxHQUFFLENBQUMsR0FBRXVELEtBQUUyQixLQUFHN0IsSUFBRThCLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUlDLE1BQUc5QixHQUFFLENBQUMsR0FBRStCLE9BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFOUIsS0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXhELEdBQUUsR0FBRSxDQUFDLEdBQUV3RCxLQUFFNkIsS0FBRy9CLElBQUVnQyxJQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxPQUFHaEMsR0FBRSxDQUFDLEdBQUVpQyxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRWhDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUxRCxHQUFFLEdBQUUsQ0FBQyxHQUFFMEQsS0FBRStCLE1BQUdqQyxJQUFFa0MsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR2xDLEdBQUUsQ0FBQyxHQUFFbUMsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVsQyxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFM0QsR0FBRSxHQUFFLENBQUMsR0FBRTJELEtBQUVpQyxLQUFHbkMsSUFBRW9DLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdwQyxHQUFFLENBQUMsR0FBRXFDLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFcEMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTVELEdBQUUsR0FBRSxDQUFDLEdBQUU0RCxLQUFFbUMsS0FBR3JDLElBQUVzQyxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHdEMsR0FBRSxDQUFDLEdBQUV1QyxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXRDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUU3RCxHQUFFLEdBQUUsQ0FBQyxHQUFFNkQsS0FBRXFDLEtBQUd2QyxJQUFFd0MsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR3hDLEdBQUUsQ0FBQyxHQUFFMkIsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUUxQixLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFOUQsR0FBRSxHQUFFLENBQUMsR0FBRThELEtBQUV1QyxLQUFHekMsSUFBRTRCLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUljLE1BQUd6QyxHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTVOLEdBQUUsR0FBRSxDQUFDLEdBQUU0TixLQUFFd0MsS0FBRzFDLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSXFELE1BQUdwRCxHQUFFLENBQUMsR0FBRXFELE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFcEQsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRS9ELElBQUUsR0FBRSxDQUFDLEdBQUUrRCxLQUFFbUQsS0FBR3JELElBQUVzRCxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHdEQsR0FBRSxDQUFDLEdBQUV1RCxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRXRELEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVqRSxHQUFFLEdBQUUsQ0FBQyxHQUFFaUUsS0FBRXFELEtBQUd2RCxJQUFFd0QsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR3hELEdBQUUsQ0FBQyxHQUFFeUQsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUV4RCxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFbEUsR0FBRSxHQUFFLENBQUMsR0FBRWtFLEtBQUV1RCxLQUFHekQsSUFBRTBELEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUcxRCxHQUFFLENBQUMsR0FBRTJELE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFMUQsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXhFLEdBQUUsR0FBRSxDQUFDLEdBQUV3RSxLQUFFeUQsS0FBRzNELElBQUU0RCxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHNUQsR0FBRSxDQUFDLEdBQUU2RCxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTVELEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVoRixJQUFFLEdBQUUsQ0FBQyxHQUFFZ0YsS0FBRTJELEtBQUc3RCxJQUFFOEQsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBRzlELEdBQUUsQ0FBQyxHQUFFK0QsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUU5RCxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFbEYsR0FBRSxHQUFFLENBQUMsR0FBRWtGLEtBQUU2RCxLQUFHL0QsSUFBRWdFLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdoRSxHQUFFLENBQUMsR0FBRWlFLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFaEUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXZGLEdBQUUsR0FBRSxDQUFDLEdBQUV1RixLQUFFK0QsS0FBR2pFLElBQUVrRSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHbEUsR0FBRSxDQUFDLEdBQUVtRSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRWxFLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVqRyxHQUFFLEdBQUUsQ0FBQyxHQUFFaUcsS0FBRWlFLEtBQUduRSxJQUFFb0UsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSSxLQUFHbkUsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUxRixHQUFFLEdBQUUsQ0FBQyxHQUFFMEYsS0FBRSxJQUFHRixJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksS0FBR0MsR0FBRSxDQUFDLEdBQUVvRSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRW5FLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUvRixHQUFFLEdBQUUsQ0FBQyxHQUFFK0YsS0FBRSxJQUFHRixJQUFFcUUsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBR3JFLEdBQUUsQ0FBQyxHQUFFc0UsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVyRSxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFdEcsR0FBRSxHQUFFLENBQUMsR0FBRXNHLEtBQUVvRSxLQUFHdEUsSUFBRXVFLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUd2RSxHQUFFLENBQUMsR0FBRXdFLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFdkUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFQSxLQUFFc0UsS0FBR3hFLElBQUV5RSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJLEtBQUd4RSxHQUFFLENBQUMsR0FBRSxLQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRUMsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRXJILEdBQUUsR0FBRSxDQUFDLEdBQUVxSCxLQUFFLElBQUdGLElBQUUsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSTBFLE1BQUd6RSxHQUFFLENBQUMsR0FBRTBFLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFekUsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTFILEdBQUUsR0FBRSxDQUFDLEdBQUUwSCxLQUFFd0UsS0FBRzFFLElBQUUyRSxHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHM0UsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVySixHQUFFLEdBQUUsQ0FBQyxHQUFFcUosS0FBRTBFLEtBQUc1RSxJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUk2RSxNQUFHNUUsR0FBRSxDQUFDLEdBQUU2RSxNQUFHLFNBQVMsSUFBRztBQUFDLDZCQUFNLENBQUMsR0FBRTVFLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVqUSxHQUFDLEdBQUUsQ0FBQyxHQUFFaVEsS0FBRTJFLEtBQUc3RSxJQUFFOEUsR0FBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRyx3QkFBSUMsTUFBRzlFLEdBQUUsQ0FBQyxHQUFFK0UsTUFBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUU5RSxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVBLEtBQUU2RSxLQUFHL0UsSUFBRWdGLEdBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlDLE1BQUdoRixHQUFFLENBQUMsR0FBRWlGLE1BQUcsU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFaEYsS0FBRSxDQUFDLElBQUcsRUFBRSxDQUFDO0FBQUEsb0JBQUM7QUFBRSwyQkFBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRWpQLEdBQUUsR0FBRSxDQUFDLEdBQUVpUCxLQUFFK0UsS0FBR2pGLElBQUVrRixHQUFFO0FBQUEsa0JBQUUsS0FBSztBQUFHLHdCQUFJQyxNQUFHbEYsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUVuUCxHQUFFLEdBQUUsQ0FBQyxHQUFFbVAsS0FBRWlGLEtBQUduRixJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlvRixNQUFHbkYsR0FBRSxDQUFDLEdBQUUsS0FBRyxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUsRUFBRSxHQUFFLENBQUMsR0FBRUEsS0FBRWtGLEtBQUdwRixJQUFFLEVBQUU7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksS0FBR0MsR0FBRSxDQUFDLEdBQUUsTUFBSSxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUU1TixHQUFFLEdBQUUsQ0FBQyxHQUFFNE4sS0FBRSxJQUFHRixJQUFFLEdBQUc7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksTUFBSUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUV6WCxHQUFDLEdBQUUsQ0FBQyxHQUFFeVgsS0FBRSxLQUFJRixJQUFFLEdBQUc7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksTUFBSUMsR0FBRSxDQUFDLEdBQUUsTUFBSSxTQUFTLElBQUc7QUFBQyw2QkFBTSxDQUFDLEdBQUVDLEtBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUUsMkJBQU8sR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRUEsS0FBRSxLQUFJRixJQUFFLEdBQUc7QUFBQSxrQkFBRTtBQUFRLHdCQUFJLE1BQUlDLEdBQUUsQ0FBQyxHQUFFLE1BQUksU0FBUyxJQUFHO0FBQUMsNkJBQU0sQ0FBQyxHQUFFQyxLQUFFLENBQUMsSUFBRyxFQUFFLENBQUM7QUFBQSxvQkFBQztBQUFFLDJCQUFPLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFFOVgsR0FBQyxHQUFFLENBQUMsR0FBRThYLEtBQUUsS0FBSUYsSUFBRSxHQUFHO0FBQUEsZ0JBQUM7QUFBQSxjQUFDO0FBQUMscUJBQU8sR0FBRy9YLElBQUUsQ0FBQyxHQUFFLElBQUcsU0FBUyxHQUFFK1gsSUFBRTtBQUFDLG9CQUFJQyxLQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFRyxNQUFFSCxHQUFFLENBQUMsR0FBRUksTUFBRUosR0FBRSxDQUFDLEdBQUVLLE1BQUVOLEdBQUUsQ0FBQyxHQUFFTyxNQUFFOVQsR0FBRSxFQUFFLENBQUMsRUFBRSxJQUFFdUUsR0FBRSxHQUFFLEdBQUVvUCxHQUFDLEdBQUUsS0FBRzNULEdBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRTBFLEdBQUUsR0FBRSxHQUFFZ1AsR0FBQyxHQUFFLEtBQUdsSyxJQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBRThILEdBQUUsR0FBRSxDQUFDLEdBQUVtQyxHQUFDO0FBQUUsdUJBQU9FLFFBQUlHLE9BQUdKLFFBQUksTUFBSUQsUUFBSSxLQUFHRixLQUFFLENBQUMsR0FBRU0sS0FBRSxDQUFDLEdBQUVDLEtBQUVGLEtBQUUsSUFBRyxFQUFFLENBQUM7QUFBQSxjQUFDLEdBQUUsSUFBRyxLQUFJdEMsS0FBRyxLQUFJNU0sS0FBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUkwTyxLQUFHLEtBQUksSUFBRyxLQUFJRixLQUFHLEtBQUksSUFBRyxLQUFJSCxLQUFHLEtBQUlILEtBQUcsS0FBSUYsS0FBRyxLQUFJRCxLQUFHLEtBQUlZLEtBQUcsS0FBSSxJQUFHLEtBQUlkLEtBQUcsS0FBSUMsS0FBRyxLQUFJLElBQUcsS0FBSUYsS0FBRyxLQUFJSixLQUFHLEtBQUlILEtBQUcsS0FBSUssS0FBRyxLQUFJTixLQUFHLEtBQUlELEtBQUcsS0FBSU0sS0FBRyxLQUFJRixLQUFHLEtBQUlELEtBQUcsS0FBSUosS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUYsS0FBRyxLQUFJRCxLQUFHLEtBQUlFLEtBQUcsS0FBSWhDLEtBQUcsS0FBSTJCLEtBQUcsS0FBSUQsS0FBRyxLQUFJSixLQUFHLEtBQUlHLEtBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlGLEtBQUcsS0FBSU8sS0FBRyxLQUFJYixLQUFHLEtBQUlGLEtBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSVUsS0FBRyxLQUFJRixLQUFHLEtBQUlDLEtBQUcsS0FBSUYsS0FBRyxLQUFJUixLQUFHLEtBQUlELEtBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUQsTUFBRyxLQUFJRixLQUFHLEtBQUlELEtBQUcsS0FBSU4sS0FBRyxLQUFJRyxNQUFHLEtBQUlELEtBQUcsS0FBSUosS0FBRyxLQUFJRixLQUFHLEtBQUlGLEtBQUcsS0FBSVcsS0FBRyxLQUFJTixLQUFHLEtBQUlFLEtBQUcsS0FBSUosS0FBRyxLQUFJRixLQUFHLEtBQUlTLEtBQUcsS0FBSSxJQUFHLEtBQUlaLE1BQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUksS0FBRyxLQUFJTCxLQUFHLEtBQUlELEtBQUcsS0FBSUYsS0FBRyxLQUFJQyxNQUFHLEtBQUlKLEtBQUcsS0FBSUQsS0FBRyxLQUFJRSxLQUFHLEtBQUlOLEtBQUcsS0FBSUQsS0FBRyxLQUFJRSxLQUFHLEtBQUlILEtBQUcsS0FBSUQsS0FBRyxLQUFJTSxLQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsS0FBSWpCLEtBQUcsS0FBSUYsS0FBRSxLQUFJQyxLQUFFLEtBQUl0QyxLQUFHLEtBQUlsRSxJQUFFLEtBQUlKLEtBQUcsS0FBSUQsS0FBRyxLQUFJLElBQUcsS0FBSUksS0FBRSxLQUFJLElBQUcsS0FBSUssS0FBRyxLQUFJQyxLQUFHLEtBQUlILEtBQUUsS0FBSUosS0FBRyxLQUFJRCxLQUFHLEtBQUk4RixLQUFHLEtBQUlXLEtBQUUsS0FBSUQsS0FBRyxLQUFJM0MsS0FBRyxLQUFJaE8sSUFBRSxLQUFJLEdBQUUsS0FBSWtHLEtBQUUsS0FBSW5FLEtBQUUsS0FBSUMsS0FBRSxLQUFJME8sS0FBRyxLQUFJUCxLQUFHLEtBQUlwRyxLQUFHLEtBQUksSUFBRyxLQUFJYSxLQUFHLEtBQUl1TSxLQUFHLEtBQUlMLEtBQUcsS0FBSWxKLEtBQUcsS0FBSS9GLEtBQUcsS0FBSWlHLEtBQUcsS0FBSSxJQUFHLEtBQUk0RyxLQUFHLEtBQUksSUFBRyxLQUFJalQsS0FBRSxLQUFJSyxLQUFFLEtBQUlELEtBQUUsS0FBSUYsS0FBRSxLQUFJRCxLQUFFLEtBQUkrTSxLQUFHLEtBQUkzRyxLQUFHLEtBQUl4QixLQUFHLEtBQUlHLEtBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUkrUSxLQUFHLEtBQUl2VyxJQUFFLEtBQUlpUCxLQUFHLEtBQUkzSixLQUFFLEtBQUlELEtBQUUsS0FBSUQsS0FBRSxLQUFJbUwsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUssS0FBRyxLQUFJLElBQUcsS0FBSVQsS0FBRyxLQUFJRSxLQUFHLEtBQUksSUFBRyxLQUFJSyxLQUFHLEtBQUlDLEtBQUcsS0FBSSxJQUFHLEtBQUlMLEtBQUcsS0FBSVYsS0FBRyxLQUFJN08sS0FBRSxLQUFJSyxLQUFFLEtBQUkrVSxNQUFHLEtBQUksSUFBRyxLQUFJOUcsS0FBRyxLQUFJLElBQUcsS0FBSTBFLEtBQUcsS0FBSXBFLEtBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsS0FBSUQsS0FBRyxLQUFJSCxLQUFHLEtBQUksSUFBRyxLQUFJeEksS0FBRSxLQUFJLElBQUcsS0FBSTBJLEtBQUcsS0FBSUQsS0FBRyxLQUFJZCxLQUFHLEtBQUlMLEtBQUcsS0FBSVAsS0FBRyxLQUFJYSxLQUFHLEtBQUlaLEtBQUcsS0FBSUYsS0FBRyxLQUFJcUIsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSUQsS0FBRyxLQUFJLElBQUcsS0FBSUQsS0FBRyxLQUFJRCxLQUFHLEtBQUlELEtBQUcsS0FBSSxJQUFHLEtBQUlOLEtBQUcsS0FBSSxJQUFHLEtBQUlHLEtBQUcsS0FBSUQsS0FBRyxLQUFJLElBQUcsS0FBSUQsS0FBRyxLQUFJUCxLQUFHLEtBQUlHLEtBQUcsS0FBSUYsS0FBRyxJQUFHQyxLQUFHK0wsS0FBRzdMLEtBQUcsSUFBR1YsS0FBR3NNLEtBQUd2TSxLQUFHLElBQUdELEtBQUd1TSxLQUFHOVEsS0FBRyxJQUFHcUUsS0FBRyxJQUFHRixLQUFHLElBQUdHLEtBQUd1TSxLQUFHek0sS0FBR3dNLEtBQUczTSxLQUFHME0sS0FBRzVNLEtBQUcyTSxLQUFHLElBQUcsSUFBR2pRLEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBR2dRLEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBRzlQLEtBQUcsSUFBRyxJQUFHNlAsS0FBR3RRLEtBQUcsSUFBR2lILEtBQUcsSUFBR2hSLElBQUUsSUFBR3VXLEtBQUcsSUFBR3BFLEtBQUcsSUFBR0wsS0FBR3NJLEtBQUdwRCxLQUFHLElBQUdHLEtBQUcsSUFBR3ZOLEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUd3UCxLQUFHLElBQUcsSUFBRy9RLEtBQUc4USxLQUFHLElBQUcsSUFBR2pSLElBQUUsSUFBRyxJQUFHLElBQUdELEtBQUdpUixLQUFHLElBQUcsSUFBRy9RLEtBQUU4USxLQUFHN1EsS0FBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUdKLEtBQUdnUixLQUFHclAsS0FBR29QLEtBQUcsSUFBRyxJQUFHLElBQUdELEtBQUcsSUFBRyxJQUFHeFEsS0FBR3VRLEtBQUcsSUFBRyxJQUFHOVEsS0FBRyxJQUFHRCxJQUFFLElBQUdoQyxLQUFHOFMsS0FBRzdTLEtBQUcsSUFBRyxJQUFHNFMsS0FBR2pSLEtBQUUsSUFBR0QsSUFBRWlSLEtBQUdqUSxLQUFHZ1EsS0FBRyxJQUFHLElBQUc1UCxLQUFHLElBQUcsSUFBRyxJQUFHLElBQUcyUCxLQUFHLElBQUdELEtBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRzVQLEtBQUcsSUFBR0QsS0FBRyxJQUFHRixLQUFHLElBQUd4QyxLQUFFLElBQUd1QyxLQUFHLElBQUdoSCxJQUFFLElBQUdWLElBQUUsSUFBR1gsS0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUdMLEtBQUUsSUFBRyxJQUFHb1ksS0FBR3JZLElBQUU0WCxHQUFFLENBQUMsR0FBRSxTQUFTLEdBQUVDLElBQUU7QUFBQyx1QkFBTyxHQUFHQSxJQUFFL1gsRUFBQztBQUFBLGNBQUM7QUFBQSxZQUFDLENBQUMsR0FBRSxLQUFHLFNBQVNBLEdBQUVDLElBQUVDLElBQUVDLEtBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxHQUFDO0FBQUEsWUFBQztBQUFFLFlBQUFtRSxJQUFHLElBQUcsU0FBU3RFLElBQUVDLElBQUVDLElBQUU7QUFBQyxrQkFBSUMsTUFBRUQsR0FBRSxDQUFDO0FBQUUsc0JBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsZ0JBQUMsS0FBSztBQUFFLHNCQUFJLElBQUVBLElBQUUsQ0FBQyxFQUFFLENBQUM7QUFBRSx5QkFBT3NILElBQUcsU0FBU3BILElBQUU7QUFBQywyQkFBTyxTQUFTQyxJQUFFO0FBQUMsMEJBQUksSUFBRUEsR0FBRSxDQUFDLE1BQUksSUFBRUEsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFBRSw2QkFBTyxHQUFHLElBQUdOLElBQUVLLElBQUUsQ0FBQztBQUFBLG9CQUFDO0FBQUEsa0JBQUMsR0FBRUosSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFFLHNCQUFJLElBQUVFLElBQUUsQ0FBQyxFQUFFLENBQUM7QUFBRSx5QkFBT3NILElBQUcsU0FBU3BILElBQUU7QUFBQywyQkFBTyxTQUFTQyxJQUFFO0FBQUMsNkJBQU9BLEdBQUUsQ0FBQyxNQUFJLElBQUVELEtBQUUsR0FBRyxJQUFHTCxJQUFFSyxJQUFFQyxHQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQUEsb0JBQUM7QUFBQSxrQkFBQyxHQUFFTCxJQUFFLENBQUM7QUFBQSxnQkFBRSxLQUFLO0FBQUUseUJBQU91RSxHQUFFeEUsSUFBRUMsSUFBRUUsSUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQUEsZ0JBQUU7QUFBUSx5QkFBT0Y7QUFBQSxjQUFDO0FBQUEsWUFBQyxDQUFDO0FBQUUsZ0JBQUksS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxNQUFJLFNBQVNELElBQUU7QUFBQyxrQkFBSUMsS0FBRUQsR0FBRSxDQUFDLE1BQUksSUFBRUEsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBRUEsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFBRSxxQkFBTyxFQUFFLElBQUdDLEVBQUM7QUFBQSxZQUFDLEdBQUUsTUFBSSxTQUFTRCxJQUFFO0FBQUMscUJBQU9BLEdBQUUsQ0FBQyxNQUFJLElBQUUsSUFBRSxFQUFFLElBQUdBLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxZQUFDO0FBQUUsWUFBQXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFRCxHQUFFLENBQUM7QUFBRSxzQkFBT0MsR0FBRSxDQUFDLEdBQUU7QUFBQSxnQkFBQyxLQUFLO0FBQUUseUJBQU8sR0FBRyxLQUFJQSxHQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxnQkFBRSxLQUFLO0FBQUUseUJBQU8sR0FBRyxLQUFJQSxHQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxnQkFBRSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBRTtBQUFRLHlCQUFPO0FBQUEsY0FBQztBQUFBLFlBQUMsQ0FBQztBQUFFLGdCQUFJbWQsTUFBRyxTQUFTcGQsSUFBRUMsSUFBRTtBQUFDLHFCQUFNLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUQsRUFBQyxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0EsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGtCQUFJQyxNQUFFSCxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFFLElBQUVDLEtBQUVBLEdBQUUsQ0FBQyxJQUFFO0FBQUUscUJBQU0sQ0FBQyxHQUFFRSxLQUFFLEdBQUVELEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsa0JBQUlDLE1BQUVILEtBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUUsSUFBRUMsS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBRSxxQkFBTSxDQUFDRSxPQUFHLENBQUMsSUFBRSxJQUFFLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRUEsR0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsWUFBQyxHQUFFa2QsTUFBRyxTQUFTcmQsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLGtCQUFJLElBQUVILEtBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUUsSUFBRUMsS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBRSxxQkFBTSxDQUFDLEtBQUcsQ0FBQyxLQUFHLENBQUNDLEtBQUUsSUFBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVBLEVBQUMsQ0FBQztBQUFBLFlBQUMsR0FBRW9kLE1BQUcsU0FBU3RkLElBQUVDLElBQUU7QUFBQyxrQkFBR0QsSUFBRTtBQUFDLG9CQUFHQyxJQUFFO0FBQUMsc0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFSCxHQUFFLENBQUMsR0FBRSxJQUFFLENBQUMsR0FBRSxHQUFHRyxJQUFFLENBQUMsR0FBRUQsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFFLHlCQUFPLEdBQUcsQ0FBQyxHQUFFLEdBQUdBLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsR0FBRSxDQUFDO0FBQUEsZ0JBQUM7QUFBQyxvQkFBSSxJQUFFSDtBQUFBLGNBQUM7QUFBTSxvQkFBSSxJQUFFQztBQUFFLHFCQUFPO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLGtCQUFHLENBQUNBO0FBQUUsdUJBQU9EO0FBQUUsa0JBQUdBLElBQUU7QUFBQyxvQkFBSUUsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVILEdBQUUsQ0FBQyxHQUFFLElBQUVFLEdBQUUsQ0FBQyxHQUFFLElBQUVDLElBQUUsQ0FBQyxHQUFFRSxLQUFFRixJQUFFLENBQUMsR0FBRUcsS0FBRSxDQUFDLEdBQUUsR0FBR0gsSUFBRSxDQUFDLEdBQUVELEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRSx1QkFBT21kLElBQUcsQ0FBQyxHQUFFLEdBQUcsR0FBRWhkLEVBQUMsQ0FBQyxHQUFFQyxJQUFFLEdBQUUsQ0FBQztBQUFBLGNBQUM7QUFBQyxrQkFBSSxJQUFFTCxHQUFFLENBQUM7QUFBRSxxQkFBT29kLElBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU3JkLElBQUVDLElBQUU7QUFBQyxnQkFBRXFNLElBQUd0TSxFQUFDLEdBQUUsRUFBRSxHQUFFd0UsR0FBRThILElBQUd0TSxFQUFDLEdBQUUsSUFBRyxFQUFFO0FBQUUsa0JBQUlFLEtBQUVELEdBQUUsQ0FBQztBQUFFLGdCQUFFLEVBQUVxTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRUUsRUFBQyxHQUFFLEVBQUVvTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRSxFQUFFc00sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUV3RSxHQUFFOEgsSUFBR3RNLEVBQUMsR0FBRSxJQUFHLEVBQUU7QUFBRSxrQkFBSUcsTUFBRUYsR0FBRSxDQUFDO0FBQUUscUJBQU8sRUFBRSxFQUFFcU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUVHLEdBQUMsR0FBRSxFQUFFbU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRXNNLElBQUd0TSxFQUFDLEdBQUUsRUFBRTtBQUFBLFlBQUMsR0FBRXVkLE1BQUcsU0FBU3ZkLEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLE1BQUksU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDO0FBQUUsWUFBQXFFLElBQUdpWixLQUFHLFNBQVN2ZCxJQUFFQyxJQUFFO0FBQUMsZ0JBQUVxTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRXdFLEdBQUU4SCxJQUFHdE0sRUFBQyxHQUFFLElBQUcsRUFBRTtBQUFFLGtCQUFJRSxLQUFFRCxHQUFFLENBQUM7QUFBRSxrQkFBR0MsSUFBRTtBQUFDLG9CQUFJQyxNQUFFRCxHQUFFLENBQUM7QUFBRSx3QkFBTyxHQUFHRixJQUFFLEVBQUUsR0FBRUcsSUFBRSxDQUFDLEdBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUUsd0JBQUksSUFBRUEsSUFBRSxDQUFDO0FBQUUsc0JBQUVtTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUVzTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRXNNLElBQUd0TSxFQUFDLEdBQUUsRUFBRTtBQUFFO0FBQUEsa0JBQU0sS0FBSztBQUFFLHdCQUFJLElBQUVHLElBQUUsQ0FBQztBQUFFLHNCQUFFbU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFc00sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFLEVBQUVzTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUU7QUFBRTtBQUFBLGtCQUFNLEtBQUs7QUFBRSx3QkFBSUssS0FBRUYsSUFBRSxDQUFDO0FBQUUsc0JBQUVtTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRSxFQUFFLEVBQUVzTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUUsR0FBRUssRUFBQyxHQUFFLEVBQUVpTSxJQUFHdE0sRUFBQyxHQUFFLEVBQUU7QUFBRTtBQUFBLGtCQUFNO0FBQVEsd0JBQUlNLEtBQUVILElBQUUsQ0FBQztBQUFFLHNCQUFFbU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRSxFQUFFc00sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUVNLEVBQUMsR0FBRSxFQUFFZ00sSUFBR3RNLEVBQUMsR0FBRSxFQUFFO0FBQUEsZ0JBQUM7QUFBQyxtQkFBR0EsSUFBRSxFQUFFO0FBQUEsY0FBQztBQUFNLG1CQUFHQSxJQUFFLEVBQUU7QUFBRSxxQkFBTyxFQUFFc00sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRXNNLElBQUd0TSxFQUFDLEdBQUUsRUFBRSxHQUFFd0UsR0FBRThILElBQUd0TSxFQUFDLEdBQUUsSUFBRyxFQUFFLEdBQUUsR0FBR0EsSUFBRUMsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFFcU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRXNNLElBQUd0TSxFQUFDLEdBQUUsRUFBRSxHQUFFd0UsR0FBRThILElBQUd0TSxFQUFDLEdBQUUsSUFBRyxFQUFFLEdBQUUsR0FBR0EsSUFBRUMsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFFcU0sSUFBR3RNLEVBQUMsR0FBRSxFQUFFLEdBQUUsRUFBRXNNLElBQUd0TSxFQUFDLEdBQUUsRUFBRTtBQUFBLFlBQUMsQ0FBQyxHQUFFc0UsSUFBRyxLQUFJLFNBQVN0RSxJQUFFO0FBQUMsa0JBQUlDLEtBQUUsR0FBRyxDQUFDLEdBQUVDLEtBQUUsR0FBRyxDQUFDLEdBQUVDLE1BQUUsR0FBR0QsRUFBQztBQUFFLHFCQUFPc0UsR0FBRWtILElBQUcsU0FBUyxHQUFFO0FBQUMsZ0JBQUFXLElBQUdsTSxLQUFFLENBQUMsR0FBRSxHQUFHQSxLQUFFLENBQUM7QUFBRSxvQkFBSSxJQUFFc0osSUFBR3ZKLEVBQUM7QUFBRSx1QkFBT0EsR0FBRSxDQUFDLElBQUUsR0FBRUEsR0FBRSxDQUFDLElBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsSUFBRThDLElBQUc5QyxHQUFFLENBQUMsQ0FBQyxHQUFFO0FBQUEsY0FBQyxHQUFFLEdBQUVELEVBQUMsR0FBRXNkLEtBQUd2ZCxFQUFDO0FBQUEsWUFBQyxDQUFDO0FBQUUsZ0JBQUl3ZCxNQUFHLFNBQVN4ZCxJQUFFQyxJQUFFO0FBQUMscUJBQU0sQ0FBQyxHQUFFRCxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsWUFBQyxHQUFFd2QsTUFBRyxTQUFTemQsSUFBRUMsSUFBRTtBQUFDLGtCQUFJQyxLQUFFRixHQUFFLENBQUMsSUFBRUMsR0FBRSxDQUFDLElBQUU7QUFBRSxxQkFBT0MsT0FBSSxJQUFFRixHQUFFLENBQUMsSUFBRUMsR0FBRSxDQUFDLElBQUUsSUFBRUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixJQUFFQyxJQUFFO0FBQUMsa0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFSCxHQUFFLENBQUM7QUFBRSxrQkFBR0csS0FBRTtBQUFDLG9CQUFJLElBQUVBLElBQUUsQ0FBQztBQUFFLG9CQUFHRDtBQUFFLHNCQUFJLElBQUVBLEdBQUUsQ0FBQyxHQUFFRyxLQUFFLEdBQUcsQ0FBQyxHQUFFQyxLQUFFLEdBQUcsQ0FBQyxJQUFFRCxLQUFFLEdBQUUsSUFBRUMsT0FBSSxJQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUMsSUFBRUE7QUFBQTtBQUFPLHNCQUFJLElBQUU7QUFBQSxjQUFFO0FBQU0sb0JBQUksSUFBRUosS0FBRSxJQUFFO0FBQUUsa0JBQUcsTUFBSTtBQUFFLHVCQUFPO0FBQUUsa0JBQUlNLE1BQUVpZCxJQUFHemQsR0FBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQyxDQUFDO0FBQUUscUJBQU9PLFFBQUksSUFBRWlkLElBQUd6ZCxHQUFFLENBQUMsR0FBRUMsR0FBRSxDQUFDLENBQUMsSUFBRU87QUFBQSxZQUFDLEdBQUVrZCxNQUFHLFNBQVMxZCxJQUFFQyxJQUFFO0FBQUMscUJBQU8sR0FBR0QsSUFBRUMsRUFBQyxNQUFJLElBQUUsSUFBRTtBQUFBLFlBQUMsR0FBRTBkLE1BQUcsU0FBUzNkLEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQztBQUFFLFlBQUFvRSxJQUFHcVosS0FBRyxTQUFTM2QsSUFBRUMsSUFBRTtBQUFDLGtCQUFHLE9BQU9ELE1BQUcsVUFBUztBQUFDLG9CQUFJRSxLQUFFRjtBQUFFLG9CQUFHLE1BQUlFO0FBQUUsMEJBQU9BLElBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUcsMEJBQUcsT0FBT0QsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FB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QVVBLE9BQUk7QUFBRSwrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFFLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUUsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRSwrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFFLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFN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QU87QUFBQSxvQkFBRyxLQUFLO0FBQUUsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU9uVztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTzZCO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUc7QUFBUSw2QkFBTztBQUFBLGtCQUFFO0FBQUMsb0JBQUl3VSxNQUFHO0FBQUcsb0JBQUcsTUFBSUE7QUFBRywwQkFBT0EsS0FBRztBQUFBLG9CQUFDLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFB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QU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBRztBQUFRLDJCQUFPO0FBQUEsZ0JBQUU7QUFBQSxjQUFDO0FBQUMsa0JBQUlELE1BQUdELEdBQUVuSSxFQUFDO0FBQUUscUJBQU91QyxJQUFHNEYsR0FBRXBJLEVBQUMsR0FBRXFJLEdBQUU7QUFBQSxZQUFDLENBQUM7QUFBRSxnQkFBSSxNQUFJLENBQUNobEIsS0FBRyxLQUFJcWYsSUFBRyxDQUFDLENBQUMsR0FBRSxNQUFJLFNBQVMxQyxJQUFFO0FBQUMsa0JBQUcsT0FBT0EsTUFBRyxVQUFTO0FBQUMsb0JBQUlDLEtBQUVEO0FBQUUsb0JBQUcsTUFBSUM7QUFBRSwwQkFBT0EsSUFBRTtBQUFBLG9CQUFDLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBT2tGO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPQztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBT0M7QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU9DO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPQztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBT0M7QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU9DO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPQztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBTztBQUFBLG9CQUFHLEtBQUs7QUFBRyw2QkFBT0M7QUFBQSxvQkFBRyxLQUFLO0FBQUcsNkJBQU9DO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUcsS0FBSztBQUFJLDZCQUFPQztBQUFBLG9CQUFHLEtBQUs7QUFBSSw2QkFBTztBQUFBLG9CQUFJLEtBQUs7QUFBSSw2QkFBTztBQUFBLG9CQUFJO0FBQVEsNkJBQU87QUFBQSxrQkFBRztBQUFDLHdCQUFPNUYsSUFBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTyxHQUFHLElBQUcsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRSwyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTyxHQUFHLElBQUcsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTyxHQUFHLElBQUcsRUFBRTtBQUFBLGtCQUFFLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFHLEtBQUs7QUFBRywyQkFBTztB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Q0FBQyxHQUFFO0FBQUMsc0JBQUlFLEtBQUVDLE1BQUUsSUFBRTtBQUFFO0FBQUEsZ0JBQVE7QUFBQyxvQkFBRyxJQUFFSDtBQUFFLHlCQUFPO0FBQUUsb0JBQUlDLEtBQUVFLE1BQUUsSUFBRTtBQUFBLGNBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxHQUFFLEtBQUcsU0FBU0gsSUFBRTtBQUFDLGtCQUFJQyxLQUFFRCxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRUMsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQyxHQUFFRCxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTQSxJQUFFO0FBQUMscUJBQU9BLEdBQUUsQ0FBQyxFQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTQSxJQUFFQyxJQUFFO0FBQUMscUJBQU9ELE9BQUlDLEdBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUQsSUFBRUMsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsQ0FBQyxJQUFFQTtBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFF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QUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNLEtBQUs7QUFBRyw0QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRyxpQ0FBTztBQUFFO0FBQUEsc0JBQU0sS0FBSztBQUFHLDRCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLGlDQUFPO0FBQUU7QUFBQSxzQkFBTSxLQUFLO0FBQUcsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBRTtBQUFBLHNCQUFNO0FBQVEsNEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsaUNBQU87QUFBQSxvQkFBQztBQUFBLHlCQUFTLE1BQUlDO0FBQUUsMEJBQU9BLElBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUcsMEJBQUcsT0FBT0QsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNO0FBQVEsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBQSxrQkFBQztBQUFBO0FBQU0sMEJBQU9DLElBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUUsMEJBQUcsT0FBT0QsTUFBRyxZQUFVLENBQUNBO0FBQUUsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRSwrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFFLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUUsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRSwrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFFLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUUsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRSwrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFFLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUUsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLCtCQUFPO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJO0FBQUcsK0JBQU87QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUk7QUFBRywrQkFBTztBQUFFO0FBQUEsb0JBQU0sS0FB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NkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUcsNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSTtBQUFRLDZCQUFPO0FBQUEsa0JBQUc7QUFBQyx3QkFBT0EsSUFBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJO0FBQVEsMkJBQU87QUFBQSxnQkFBRztBQUFBLGNBQUM7QUFBQyxrQkFBRyxNQUFJQTtBQUFFLHdCQUFPQSxJQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPO0FBQUEsa0JBQUk7QUFBUSwyQkFBTztBQUFBLGdCQUFHO0FBQUMsc0JBQU9BLElBQUU7QUFBQSxnQkFBQyxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUUseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSSxLQUFLO0FBQUcseUJBQU87QUFBQSxnQkFBSTtBQUFRLHlCQUFPO0FBQUEsY0FBRztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUU7QUFBQyxrQkFBRyxPQUFPQSxNQUFHO0FBQVMsd0JBQU9BLEdBQUUsQ0FBQyxHQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLDJCQUFPQSxHQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU9BLEdBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBT0EsR0FBRSxDQUFDLEVBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSUMsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFRixHQUFFLENBQUMsR0FBRSxJQUFFQSxHQUFFLENBQUM7QUFBRSwyQkFBT0UsT0FBR0QsS0FBRSxHQUFHLEtBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQyxJQUFFQyxNQUFFLEdBQUc2RixNQUFJLEdBQUcsR0FBRSxHQUFHLENBQUMsSUFBRTlGLEtBQUUsR0FBRyxLQUFJLEdBQUcsR0FBRSxHQUFHLENBQUMsSUFBRSxHQUFHLEtBQUksR0FBRyxHQUFFLEdBQUcsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBT0YsR0FBRSxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJLElBQUVBLEdBQUUsQ0FBQztBQUFFLDJCQUFPLEdBQUcsS0FBSSxHQUFHLEdBQUUsR0FBRyxLQUFJQSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU9BLEdBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBT0EsR0FBRSxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLDJCQUFPQSxHQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU9BLEdBQUUsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRywyQkFBT0EsR0FBRSxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFPQSxHQUFFLENBQUMsSUFBRSxNQUFJO0FBQUEsa0JBQUksS0FBSztBQUFHLDJCQUFPQSxHQUFFLENBQUM7QUFBQSxrQkFBRTtBQUFRLDJCQUFPQSxHQUFFLENBQUM7QUFBQSxnQkFBQztBQUFDLGtCQUFJSyxLQUFFTDtBQUFFLGtCQUFHLE1BQUlLLElBQUU7QUFBQyxvQkFBRyxNQUFJQTtBQUFFLDBCQUFPQSxJQUFFO0FBQUEsb0JBQUMsS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFHLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPO0FBQUEsb0JBQUksS0FBSztBQUFJLDZCQUFPMEY7QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUksNkJBQU87QUFBQSxvQkFBSTtBQUFRLDZCQUFPO0FBQUEsa0JBQUc7QUFBQyx3QkFBTzFGLElBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU87QUFBQSxrQkFBSSxLQUFLO0FBQUcsMkJBQU95RjtBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJO0FBQVEsMkJBQU87QUFBQSxnQkFBRztBQUFBLGNBQUM7QUFBQyxrQkFBRyxNQUFJekY7QUFBRSx3QkFBT0EsSUFBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJLEtBQUs7QUFBRywyQkFBTztBQUFBLGtCQUFJO0FBQVEsMkJBQU87QUFBQSxnQkFBRztBQUFDLHNCQUFPQSxJQUFFO0FBQUEsZ0JBQUMsS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFFLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUksS0FBSztBQUFHLHlCQUFPO0FBQUEsZ0JBQUk7QUFBUSx5QkFBTztBQUFBLGNBQUc7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTTCxJQUFFO0FBQUMscUJBQU8sRUFBRWdNLElBQUcsR0FBRyxHQUFFaE0sRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNBLElBQUVDLElBQUU7QUFBQyxrQkFBSUMsS0FBRUYsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUcsTUFBRTtBQUFFLGtCQUFHLE9BQU9GLE1BQUc7QUFBUyxvQkFBR3JULFFBQUtxVDtBQUFFLHNCQUFJLElBQUUsS0FBSSxJQUFFO0FBQUE7QUFBUyxrQkFBQUUsTUFBRTtBQUFBO0FBQU8sd0JBQU9GLEdBQUUsQ0FBQyxHQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLHdCQUFJLElBQUUsS0FBSSxJQUFFO0FBQUk7QUFBQSxrQkFBTSxLQUFLO0FBQUUsd0JBQUksSUFBRSxLQUFJLElBQUU7QUFBSTtBQUFBLGtCQUFNLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksSUFBRSxLQUFJLElBQUU7QUFBSTtBQUFBLGtCQUFNLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksSUFBRSxLQUFJLElBQUU7QUFBSTtBQUFBLGtCQUFNLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUksSUFBRSxLQUFJLElBQUU7QUFBSTtBQUFBLGtCQUFNLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUEsa0JBQUUsS0FBSztBQUFHLG9CQUFBRSxNQUFFO0FBQUU7QUFBQSxrQkFBTTtBQUFRLHdCQUFJLElBQUUsS0FBSSxJQUFFO0FBQUEsZ0JBQUc7QUFBQyxrQkFBR0E7QUFBRSxvQkFBSSxJQUFFLEtBQUksSUFBRSxHQUFHLEdBQUdGLEVBQUMsQ0FBQztBQUFFLHFCQUFPQyxLQUFFLEdBQUcsR0FBRSxHQUFHLEtBQUksQ0FBQyxDQUFDLElBQUU7QUFBQSxZQUFDLEdBQUUsTUFBSSxTQUFTRixJQUFFO0FBQUMscUJBQU8sS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUcsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVwZ0IsTUFBR29nQixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFckgsTUFBR3FILEtBQUVyQyxNQUFHcUMsS0FBRS9jLE1BQUcrYyxLQUFFLEtBQUdBLEtBQUV4UCxNQUFHd1AsS0FBRWxPLE1BQUdrTyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV4WCxNQUFHd1gsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFaGIsTUFBR2diLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFM0UsTUFBRzJFLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV6VSxNQUFHeVUsS0FBRXpjLE1BQUd5YyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFMUQsTUFBRzBELEtBQUVoYyxNQUFHZ2MsS0FBRSxJQUFFLElBQUVqZSxNQUFHaWUsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTFULE1BQUcwVCxLQUFFLElBQUUsSUFBRTFaLE1BQUcwWixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFNUcsTUFBRzRHLEtBQUV4WixNQUFHd1osS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFcmhCLE1BQUdxaEIsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWxZLE1BQUdrWSxLQUFFLEtBQUdBLEtBQUV0QyxNQUFHc0MsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRXRHLE1BQUdzRyxLQUFFLElBQUUsSUFBRTFHLE1BQUcwRyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFalYsTUFBR2lWLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTFmLE1BQUcwZixLQUFFLElBQUUsSUFBRXpiLE1BQUd5YixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFakcsTUFBR2lHLEtBQUUsS0FBR0EsS0FBRTViLE1BQUc0YixLQUFFLElBQUUsSUFBRTNWLE1BQUcyVixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUU1TCxNQUFHNEwsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVuWSxNQUFHbVksS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFbkcsTUFBR21HLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU5YixNQUFHOGIsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFN2QsTUFBRzZkLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVsVyxNQUFHa1csS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVyVyxNQUFHcVcsS0FBRSxJQUFFLElBQUUxVixNQUFHMFYsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTVULE1BQUc0VCxLQUFFclgsTUFBR3FYLEtBQUUzVCxNQUFHMlQsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVqZ0IsTUFBR2lnQixLQUFFLElBQUUsSUFBRS9ILE1BQUcrSCxLQUFFakssTUFBR2lLLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUzVyxNQUFHMlcsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTNJLE1BQUcySSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTdnQixNQUFHNmdCLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV6SixNQUFHeUosS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRXJmLE1BQUdxZixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRXZmLE1BQUd1ZixLQUFFemQsTUFBR3lkLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFOWQsTUFBRzhkLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRWpULE1BQUdpVCxLQUFFelcsTUFBR3lXLEtBQUUsSUFBRSxJQUFFcmIsTUFBR3FiLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVuSixNQUFHbUosS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU5SSxNQUFHOEksS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFdEssTUFBR3NLLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVoSyxNQUFHZ0ssS0FBRTNDLE1BQUcyQyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUU5ZSxNQUFHOGUsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFdmMsTUFBR3VjLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFMUwsTUFBRzBMLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXpTLE1BQUd5UyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVwSixNQUFHb0osS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXJnQixNQUFHcWdCLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU1TSxNQUFHNE0sS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVsZSxNQUFHa2UsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTVaLE1BQUc0WixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFaGYsTUFBR2dmLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUV4VSxNQUFHd1UsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFamhCLE1BQUdpaEIsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTlILE1BQUc4SCxLQUFFLEtBQUdBLEtB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QixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFMWEsTUFBRzBhLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTVmLE1BQUc0ZixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFdlYsTUFBR3VWLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFNUYsTUFBRzRGLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXJKLE1BQUdxSixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFbEssTUFBR2tLLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWpZLE1BQUdpWSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFOUssTUFBRzhLLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFN1IsTUFBRzZSLEtBQUVoYSxNQUFHZ2EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRWhULE1BQUdnVCxLQUFFcGYsTUFBR29mLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU1SSxNQUFHNEksS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFM0csTUFBRzJHLEtBQUUvSyxNQUFHK0ssS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUvZ0IsTUFBRytnQixLQUFFL1gsTUFBRytYLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRXJOLE1BQUdxTixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFbGIsTUFBR2tiLEtBQUUzWCxNQUFHMlgsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTNELE1BQUcyRCxLQUFFak4sTUFBR2lOLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFL1csTUFBRytXLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFeEwsTUFBR3dMLEtBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFM0wsTUFBRzJMLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUxWCxNQUFHMFgsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRWxkLE1BQUdrZCxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVsRSxNQUFHa0UsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXZHLE1BQUd1RyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsTUFBRyxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRXplLE1BQUd5ZSxLQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsTUFBRyxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFL0ksTUFBRytJLEtBQUU5RSxNQUFHOEUsS0FBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxL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QSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTVMLE1BQUc0TCxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRW5ZLE1BQUdtWSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVuRyxNQUFHbUcsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTliLE1BQUc4YixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU3ZCxNQUFHNmQsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWxXLE1BQUdrVyxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXJXLE1BQUdxVyxLQUFFLElBQUUsSUFBRTFWLE1BQUcwVixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFNVQsTUFBRzRULEtBQUVyWCxNQUFHcVgsS0FBRTNULE1BQUcyVCxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWpnQixNQUFHaWdCLEtBQUUsSUFBRSxJQUFFL0gsTUFBRytILEtBQUVqSyxNQUFHaUssS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTNXLE1BQUcyVyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFM0ksTUFBRzJJLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFN2dCLE1BQUc2Z0IsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXpKLE1BQUd5SixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFcmYsTUFBR3FmLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFdmYsTUFBR3VmLEtBQUV6ZCxNQUFHeWQsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU5ZCxNQUFHOGQsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFalQsTUFBR2lULEtBQUV6VyxNQUFHeVcsS0FBRSxJQUFFLElBQUVyYixNQUFHcWIsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRW5KLE1BQUdtSixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTlJLE1BQUc4SSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV0SyxNQUFHc0ssS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWhLLE1BQUdnSyxLQUFFM0MsTUFBRzJDLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTllLE1BQUc4ZSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUV2YyxNQUFHdWMsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUxTCxNQUFHMEwsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFelMsTUFBR3lTLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRXBKLE1BQUdvSixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFcmdCLE1BQUdxZ0IsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTVNLE1BQUc0TSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWxlLE1BQUdrZSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFNVosTUFBRzRaLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVoZixNQUFHZ2YsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRXhVLE1BQUd3VSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVqaEIsTUFBR2loQixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFOUgsTUFBRzhILEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV0RixNQUFHc0YsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVoZ0IsTUFBR2dnQixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFelosTUFBR3laLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTNiLE1BQUcyYixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUV4YSxNQUFHd2EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFcGQsTUFBR29kLEtBQUUsSUFBRSxJQUFFdkssTUFBR3VLLEtBQUV4Z0IsTUFBR3dnQixLQUFFOWMsTUFBRzhjLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWxjLE1BQUdrYyxLQUFFLElBQUUsSUFBRTlKLE1BQUc4SixLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV4WSxNQUFHd1ksS0FBRXhILE1BQUd3SCxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFcmQsTUFBR3FkLEtBQUVoZCxNQUFHZ2QsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUzSixNQUFHMkosS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUxZ0IsTUFBRzBnQixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFNUssTUFBRzRLLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRW5nQixNQUFHbWdCLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUxYSxNQUFHMGEsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFNWYsTUFBRzRmLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV2VixNQUFHdVYsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU1RixNQUFHNEYsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFckosTUFBR3FKLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVsSyxNQUFHa0ssS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFalksTUFBR2lZLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUU5SyxNQUFHOEssS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU3UixNQUFHNlIsS0FBRWhhLE1BQUdnYSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFaFQsTUFBR2dULEtBQUVwZixNQUFHb2YsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTVJLE1BQUc0SSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUzRyxNQUFHMkcsS0FBRS9LLE1BQUcrSyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRS9nQixNQUFHK2dCLEtBQUUvWCxNQUFHK1gsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFck4sTUFBR3FOLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVsYixNQUFHa2IsS0FBRTNYLE1BQUcyWCxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFM0QsTUFBRzJELEtBQUVqTixNQUFHaU4sS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUvVyxNQUFHK1csS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV4TCxNQUFHd0wsS0FBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUzTCxNQUFHMkwsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTFYLE1BQUcwWCxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFbGQsTUFBR2tkLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRWxFLE1BQUdrRSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFdkcsTUFBR3VHLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxNQUFHLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFemUsTUFBR3llLEtBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLElBQUUs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QUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUxZixNQUFHMGYsS0FBRSxJQUFFLElBQUV6YixNQUFHeWIsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWpHLE1BQUdpRyxLQUFFLEtBQUdBLEtBQUU1YixNQUFHNGIsS0FBRSxJQUFFLElBQUUzVixNQUFHMlYsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFNUwsTUFBRzRMLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFblksTUFBR21ZLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRW5HLE1BQUdtRyxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFOWIsTUFBRzhiLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTdkLE1BQUc2ZCxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFbFcsTUFBR2tXLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFclcsTUFBR3FXLEtBQUUsSUFBRSxJQUFFMVYsTUFBRzBWLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU1VCxNQUFHNFQsS0FBRXJYLE1BQUdxWCxLQUFFM1QsTUFBRzJULEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFamdCLE1BQUdpZ0IsS0FBRSxJQUFFLElBQUUvSCxNQUFHK0gsS0FBRWpLLE1BQUdpSyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFM1csTUFBRzJXLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUzSSxNQUFHMkksS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUU3Z0IsTUFBRzZnQixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFekosTUFBR3lKLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVyZixNQUFHcWYsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUV2ZixNQUFHdWYsS0FBRXpkLE1BQUd5ZCxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTlkLE1BQUc4ZCxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVqVCxNQUFHaVQsS0FBRXpXLE1BQUd5VyxLQUFFLElBQUUsSUFBRXJiLE1BQUdxYixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFbkosTUFBR21KLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFOUksTUFBRzhJLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXRLLE1BQUdzSyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFaEssTUFBR2dLLEtBQUUzQyxNQUFHMkMsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFOWUsTUFBRzhlLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRXZjLE1BQUd1YyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTFMLE1BQUcwTCxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV6UyxNQUFHeVMsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFcEosTUFBR29KLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVyZ0IsTUFBR3FnQixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFNU0sTUFBRzRNLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFbGUsTUFBR2tlLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUU1WixNQUFHNFosS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWhmLE1BQUdnZixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFeFUsTUFBR3dVLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRWpoQixNQUFHaWhCLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU5SCxNQUFHOEgsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXRGLE1BQUdzRixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWhnQixNQUFHZ2dCLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUV6WixNQUFHeVosS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFM2IsTUFBRzJiLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRXhhLE1BQUd3YSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVwZCxNQUFHb2QsS0FBRSxJQUFFLElBQUV2SyxNQUFHdUssS0FBRXhnQixNQUFHd2dCLEtBQUU5YyxNQUFHOGMsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFbGMsTUFBR2tjLEtBQUUsSUFBRSxJQUFFOUosTUFBRzhKLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXhZLE1BQUd3WSxLQUFFeEgsTUFBR3dILEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVyZCxNQUFHcWQsS0FBRWhkLE1BQUdnZCxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTNKLE1BQUcySixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTFnQixNQUFHMGdCLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUU1SyxNQUFHNEssS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFbmdCLE1BQUdtZ0IsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTFhLE1BQUcwYSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUU1ZixNQUFHNGYsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXZWLE1BQUd1VixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRTVGLE1BQUc0RixLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVySixNQUFHcUosS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRWxLLE1BQUdrSyxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUVqWSxNQUFHaVksS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTlLLE1BQUc4SyxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRTdSLE1BQUc2UixLQUFFaGEsTUFBR2dhLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUVoVCxNQUFHZ1QsS0FBRXBmLE1BQUdvZixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFNUksTUFBRzRJLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRTNHLE1BQUcyRyxLQUFFL0ssTUFBRytLLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFL2dCLE1BQUcrZ0IsS0FBRS9YLE1BQUcrWCxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVyTixNQUFHcU4sS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRWxiLE1BQUdrYixLQUFFM1gsTUFBRzJYLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUzRCxNQUFHMkQsS0FBRWpOLE1BQUdpTixLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRS9XLE1BQUcrVyxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRXhMLE1BQUd3TCxLQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRTNMLE1BQUcyTCxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFMVgsTUFBRzBYLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUVsZCxNQUFHa2QsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFbEUsTUFBR2tFLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUV2RyxNQUFHdUcsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLE1BQUcsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUV6ZSxNQUFHeWUsS0FBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLE1BQUcsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRS9JLE1BQUcrSSxLQUFFOUUsTUFBRzhFLEtBQUUsSUFBRSxLQUFHQSxLQUFFLElBQUUsSUFBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFNWQsTUFBRzRkLEtBQUUsS0FBR0EsS0FBRSxJQUFFLEtBQUdBLEtBQUUsSUFBRSxJQUFFLEtBQUdBLEtBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxJQUFFLElBQUUsS0FBR0EsS0FBRSxLQUFHQSxLQUFFLEtBQUdBLEtBQUV6QyxNQUFHeUMsS0FBRSxLQUFHQSxLQUFFdEgsTUFB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R0FBRStOLElBQUVqWixHQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRWlaLElBQUUsRUFBRTtBQUFBLGdCQUFFLEtBQUs7QUFBRyx5QkFBTSxDQUFDLEdBQUVBLElBQUViLEdBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFYSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFdGMsR0FBRTtBQUFBLGdCQUFFLEtBQUs7QUFBRyx5QkFBTSxDQUFDLEdBQUVzYyxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxLQUFLO0FBQUcseUJBQU0sQ0FBQyxHQUFFQSxJQUFFLEVBQUU7QUFBQSxnQkFBRSxL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LElBQUVwRSxJQUFFLEtBQUs7QUFBRSxpQ0FBTztBQUFJLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxPQUFPO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsUUFBUTtBQUFFLGlDQUFPO0FBQUksNEJBQUcsQ0FBQ29FLElBQUVwRSxJQUFFLE9BQU87QUFBRSxpQ0FBTztBQUFJLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxRQUFRO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsU0FBUztBQUFFLGlDQUFPO0FBQUEsc0JBQUc7QUFBQSxvQkFBQyxPQUFLO0FBQUMsMEJBQUksS0FBRyxHQUFHQSxJQUFFLFFBQVE7QUFBRSwwQkFBRyxLQUFHLElBQUc7QUFBQyw0QkFBRyxLQUFHO0FBQUcsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsTUFBTTtBQUFFLGlDQUFPO0FBQUksNEJBQUcsQ0FBQ29FLElBQUVwRSxJQUFFLEtBQUs7QUFBRSxpQ0FBTztBQUFJLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxJQUFJO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsT0FBTztBQUFFLGlDQUFPO0FBQUksNEJBQUcsQ0FBQ29FLElBQUVwRSxJQUFFLEtBQUs7QUFBRSxpQ0FBTztBQUFJLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxLQUFLO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsUUFBUTtBQUFFLGlDQUFPO0FBQUEsc0JBQUcsT0FBSztBQUFDLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxPQUFPO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxDQUFDb0UsSUFBRXBFLElBQUUsUUFBUTtBQUFFLGlDQUFPO0FBQUksNEJBQUcsQ0FBQ29FLElBQUVwRSxJQUFFLE9BQU87QUFBRSxpQ0FBTztBQUFJLDRCQUFHLENBQUNvRSxJQUFFcEUsSUFBRSxRQUFRO0FBQUUsaUNBQU87QUFBSSw0QkFBRyxD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QUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxDQUFDO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEsSUFBRSxFQUFFO0FBQUEsZ0JBQUUsS0FBSztBQUFHLHlCQUFNLENBQUMsR0FBRUEs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QUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxxQkFBT0QsT0FBSUMsR0FBRSxFQUFFLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFRCxJQUFFQyxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRCxPQUFJQyxHQUFFLEVBQUUsSUFBRUEsS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUQsSUFBRUMsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMscUJBQU9ELE9BQUlDLEdBQUUsRUFBRSxJQUFFQSxLQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUQsSUFBRUMsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxxQkFBT0QsT0FBSUMsR0FBRSxFQUFFLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUQsSUFBRUMsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRCxPQUFJQyxHQUFFLEVBQUUsSUFBRUEsS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVELElBQUVDLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMscUJBQU9ELE9BQUlDLEdBQUUsRUFBRSxJQUFFQSxLQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVELElBQUVDLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxxQkFBT0QsT0FBSUMsR0FBRSxDQUFDLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUQsSUFBRUMsR0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRCxPQUFJQyxHQUFFLEVBQUUsSUFBRUEsS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUQsSUFBRUMsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMscUJBQU9ELE9BQUlDLEdBQUUsRUFBRSxJQUFFQSxLQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFRCxJQUFFQyxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxxQkFBT0QsT0FBSUMsR0FBRSxFQUFFLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFRCxJQUFFQyxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRCxPQUFJQyxHQUFFLENBQUMsSUFBRUEsS0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUQsSUFBRUMsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxJQUFFQyxJQUFFO0FBQUMscUJBQU9ELE9BQUlDLEdBQUUsQ0FBQyxJQUFFQSxLQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUQsSUFBRUMsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELElBQUVDLElBQUU7QUFBQyxxQkFBT0QsT0FBSUMsR0FBRSxFQUFFLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFRCxJQUFFQyxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsSUFBRUMsSUFBRTtBQUFDLHFCQUFNLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFRCxFQUFDLEdBQUVDLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUs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b0JBQUcsS0FBSztBQUFBLG9CQUFHLEtBQUs7QUFBQSxvQkFBRyxLQUFLO0FBQUEsb0JBQUcsS0FBSztBQUFBLG9CQUFHLEtBQUs7QUFBQSxvQkFBSSxLQUFLO0FBQUEsb0JBQUksS0FBSztBQUFBLG9CQUFJLEtBQUs7QUFBQSxvQkFBSSxLQUFLO0FBQUEsb0JBQUksS0FBSztBQUFBLG9CQUFJLEtBQUs7QUFBQSxvQkFBSSxLQUFLO0FBQUEsb0JBQUksS0FBSztBQUFBLG9CQUFJLEtBQUs7QUFBQSxvQkFBSSxLQUFLO0FBQUk7QUFBQSxvQkFBTTtBQUFRLHNCQUFBQSxNQUFFO0FBQUEsa0JBQUM7QUFBQTtBQUFNLDBCQUFPLEdBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUEsb0JBQUcsS0FBSztBQUFHLHNCQUFBQSxNQUFFO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUEsb0JBQUUsS0FBSztBQUFBLG9CQUFFLEtBQUs7QUFBQSxvQkFBRSxLQUFLO0FBQUEsb0JBQUUsS0FBSztBQUFBLG9CQUFFLEtBQUs7QUFBQSxvQkFBRSxLQUFLO0FBQUEsb0JBQUUsS0FBSztBQUFBLG9CQUFFLEtBQUs7QUFBQSxvQkFBRSxLQUFLO0FBQUEsb0JBQUUsS0FBSztBQUFBLG9CQUFHLEtBQUs7QUFBQSxvQkFBRyxLQUFLO0FBQUEsb0JBQUcsS0FBSztBQUFBLG9CQUFHLEtBQUs7QUFBRyxzQkFBQUEsTUFBRTtBQUFFO0FBQUEsa0JBQUs7QUFBQSxjQUFDO0FBQU0sd0JBQU9GLEdBQUUsQ0FBQyxHQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLHdCQUFHLEdBQUdBLEdBQUUsQ0FBQyxDQUFDO0FBQUUsNkJBQU87QUFBRTtBQUFBLGtCQUFNLEtBQUs7QUFBRSxvQkFBQUUsTUFBRTtBQUFFO0FBQUEsa0JBQU0sS0FBSztBQUFBLGtCQUFHLEtBQUs7QUFBQSxrQkFBRyxLQUFLO0FBQUc7QUFBQSxrQkFBTTtBQUFRLDJCQUFPO0FBQUEsZ0JBQUM7QUFBQyxzQkFBT0EsS0FBRTtBQUFBLGdCQUFDLEtBQUs7QUFBRSx5QkFBTztBQUFB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SUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUdELEtBQUUsRUFBRTtBQUFBLGdCQUFDO0FBQUMseUJBQVNFLElBQUcsSUFBRztBQUFDLHlCQUFNLENBQUMsR0FBRSxJQUFHLENBQUMsR0FBRSxJQUFHLEVBQUUsQ0FBQztBQUFBLGdCQUFDO0FBQUMsdUJBQU8sR0FBR3ZHLEdBQUUsR0FBRyxDQUFDLEVBQUUsSUFBRTFDLEdBQUMsR0FBRSxJQUFHOEksR0FBRSxHQUFFRSxLQUFHRCxLQUFFRSxHQUFFO0FBQUEsY0FBQztBQUFDLHVCQUFTOUMsSUFBRSxJQUFHMkMsS0FBR0MsS0FBRTtBQUFDLG9CQUFJLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUM7QUFBRSxvQkFBR0E7QUFBRyxzQkFBSSxLQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBRSxFQUFFLEdBQUVBLEdBQUUsR0FBRUMsTUFBRztBQUFBO0FBQVEsc0JBQUksS0FBRyxHQUFFQSxNQUFHdkcsR0FBRSxHQUFHLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBRSxJQUFHLEVBQUU7QUFBRSxvQkFBSSxLQUFHQSxHQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRTtBQUFFLHVCQUFPLE9BQUt1RyxPQUFJRCxRQUFLLE1BQUksT0FBSyxLQUFHRCxNQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsSUFBR0UsS0FBRyxFQUFFLEdBQUUsRUFBRTtBQUFBLGNBQUM7QUFBQyx1QkFBUzdDLElBQUcsSUFBRzBDLEtBQUc7QUFBQyxvQkFBSUMsTUFBRUQsSUFBRyxDQUFDLEdBQUUsS0FBR0MsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVDLE1BQUdGLElBQUcsQ0FBQztBQUFFLHlCQUFTLEdBQUcsSUFBRztBQUFDLHlCQUFNLENBQUMsR0FBRUUsS0FBRyxDQUFDLEdB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RUFBRTtBQUFBLGdCQUFDO0FBQUMsb0JBQUksS0FBR3JHLEdBQUUsR0FBRyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUUsSUFBRyxFQUFFO0FBQUUsdUJBQU8sT0FBSyxNQUFJLE9BQUssS0FBR3FHLE1BQUUsQ0FBQyxHQUFFLElBQUdBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRSxFQUFFO0FBQUEsY0FBQztBQUFDLHVCQUFTdEMsSUFBRyxJQUFHcUMsS0FBR0MsS0FBRTtBQUFDLG9CQUFJLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFQyxNQUFHdEcsR0FBRSxHQUFHLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxLQUFHQSxHQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUUsQ0FBQyxHQUFFLElBQUcsRUFBRTtBQUFFLHVCQUFPLE9BQUtzRyxPQUFJLE9BQUssS0FBR0QsTUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUMsS0FBRyxFQUFFO0FBQUEsY0FBQztBQUFDLHVCQUFTdEMsR0FBRSxJQUFHb0MsS0FBR0MsS0FBRTtBQUFDLG9CQUFJLEtBQUdBLElBQUUsQ0FBQztBQUFFLHlCQUFTLEdBQUdDLEtBQUc7QUFBQyx5QkFBTSxDQUFDLEdBQUVELElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEdBQUU7QUFBQSxnQkFBQztBQUFDLHVCQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFFLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBR0QsS0FBRSxFQUFFO0FBQUEsY0FBQztBQUFDLHVCQUFTcEMsSUFBRSxJQUFHbUMsS0FBR0MsS0FBRTtBQUFDLG9CQUFJLEtBQUdBLElBQUUsQ0FBQztBQUFFLHlCQUFTLEdBQUdDLEtBQUc7QUFBQyx5QkFBTSxDQUFDLEdBQUVELElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEdBQUU7QUFB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QUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFQyxNQUFHRixJQUFHLENBQUM7QUFBRSx5QkFBUyxHQUFHLElBQUc7QUFBQyx5QkFBTSxDQUFDLEdBQUVFLEtBQUcsQ0FBQyxHQUFFLElBQUcsRUFBRSxDQUFDO0FBQUEsZ0JBQUM7QUFBQyx1QkFBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUdGLEtBQUcsRUFBRTtBQUFBLGNBQUM7QUFBQyx1QkFBU1IsSUFBRyxJQUFHUSxLQUFHQyxLQUFFO0FBQUMsb0JBQUksS0FBR0EsSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVDLE1BQUd0RyxHQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUVyRCxFQUFDLEdBQUUsSUFBRyxFQUFFLEdBQUUsS0FBR3FELEdBQUUsR0FBRyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUUsSUFBRyxFQUFFO0FBQUUsdUJBQU8sT0FBS3NHLE9BQUksT0FBSyxLQUFHRCxNQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEtBQUdELElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFLEVBQUU7QUFBQSxjQUFDO0FBQUMsdUJBQVMsR0FBRyxJQUFHRCxLQUFHO0FBQUMsb0JBQUlDLE1BQUVELElBQUcsQ0FBQyxHQUFFLEtBQUdDLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFQyxNQUFHRixJQUFHLENBQUM7QUFBRSx5QkFBUyxHQUFHLElBQUc7QUFBQyx5QkFBTSxDQUFDLEdBQUVFLEtBQUcsQ0FBQyxHQUFFLElBQUcsRUFBRSxDQUFDO0FBQUEsZ0JBQUM7QUFBQyx1QkFBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUdGLEtBQUcsRUFBRTtBQUFBLGNBQUM7QUFBQyx1QkFBU1AsSUFBRyxJQUFHTyxLQUFHO0FBQUMsb0JBQUlDLE1BQUVELElB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QUFJQyxNQUFFbEMsR0FBRSxDQUFDLEdBQUVtQyxNQUFFLEVBQUVELElBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUMsR0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUlDLE1BQUVwQyxHQUFFLENBQUMsR0FBRStCLE1BQUUsRUFBRUssSUFBRSxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUwsR0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUltRSxNQUFHbEcsR0FBRSxDQUFDLEdBQUVtRyxNQUFHLEVBQUVELElBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUMsR0FBRSxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUlDLE1BQUVwRyxHQUFFLENBQUMsR0FBRXFHLE1BQUUsRUFBRUQsSUFBRSxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEdBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJQyxNQUFFdEcsR0FBRSxDQUFDLEdBQUV1RyxNQUFFLEVBQUVELElBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUMsR0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUksS0FBR3ZHLEdBQUUsQ0FBQyxHQUFFd0csTUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFQSxHQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSUMsTUFBR3pHLEdBQUUsQ0FBQyxHQUFFMEcsTUFBRyxFQUFFRCxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJQyxNQUFHM0csR0FBRSxDQUFDLEdBQUU0RyxNQUFHLEVBQUVELElBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSStCLE1BQUczSSxHQUFFLENBQUMsR0FBRTRJLE1BQUcsRUFBRUQsSUFBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSUMsTUFBRzdJLEdBQUUsQ0FBQyxHQUFFOEksTUFBRyxFQUFFRCxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUMsR0FBRSxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUlDLE1BQUcvSSxHQUFFLENBQUMsR0FBRSxLQUFHLEVBQUUrSSxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRSxFQUFFL0ksR0FBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUdBLEdBQUUsQ0FBQyxHQUFFLEtBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSWdKLE1BQUdoSixHQUFFLENBQUMsR0FBRSxLQUFHLEVBQUVnSixJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUdoSixHQUFFLENBQUMsR0FBRSxLQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUksS0FBR0EsR0FBRSxDQUFDLEdBQUUsS0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUdBLEdBQUUsQ0FBQyxHQUFFaUosTUFBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdB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QUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVBLEdBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUd6SSxHQUFFLENBQUMsR0FBRSxLQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUksS0FBR0EsR0FBRSxDQUFDLEdBQUUsS0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJMEksTUFBRzFJLEdBQUUsQ0FBQyxHQUFFLEtBQUcsRUFBRTBJLElBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHMUksR0FBRSxDQUFDLEdBQUUsS0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJK0osTUFBRy9KLEdBQUUsQ0FBQyxHQUFFZ0ssTUFBRyxFQUFFRCxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7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QUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFJLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBSSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUksMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFJLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBSSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUksMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFJLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBSSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUksMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFJLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBSSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUksMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFJLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBSSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUksMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU07QUFBUSxzQkFBQUQsS0FBRTtBQUFBLGtCQUFDO0FBQUE7QUFBTSwwQkFBT0MsS0FBRTtBQUFBLG9CQUFDLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJ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QUUsSUFBSUMsSUFBRUMsSUFBRUMsS0FBRSxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0gsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUV5akIsTUFBRyxTQUFTMWpCLEdBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLHFCQUFPSCxHQUFFLElBQUlDLElBQUVDLElBQUVDLEtBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRSxHQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRTBqQixNQUFHLFNBQVMzakIsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFLEdBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxLQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFQyxJQUFFQyxLQUFFLEdBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxLQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRTJqQixNQUFHLFNBQVM1akIsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsR0FBQztBQUFBLFlBQUM7QUFBRSxZQUFBbUUsSUFBR21mLEtBQUcsU0FBU3pqQixJQUFFO0FBQUMscUJBQU8sRUFBRSxJQUFHQSxFQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxxQkFBTyxJQUFFeWhCLElBQUd6aEIsRUFBQyxLQUFHLEdBQUdBLElBQUV4RSxHQUFFLEdBQUVnb0IsSUFBRyxHQUFFLFNBQVN2akIsSUFBRTtBQUFDLHVCQUFPOGlCLElBQUc5aUIsSUFBRSxFQUFFLEdBQUUsRUFBRXdqQixLQUFHeGpCLEVBQUM7QUFBQSxjQUFDLEdBQUVELEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFFeWhCLElBQUd6aEIsRUFBQyxLQUFHLEdBQUdBLElBQUV4RSxHQUFFO0FBQUUsa0JBQUl5RSxLQUFFLEdBQUdELEVBQUM7QUFBRSxxQkFBTytpQixJQUFHL2lCLElBQUUsRUFBRSxHQUFFLEdBQUdBLEVBQUMsSUFBRSxDQUFDLEdBQUV3RSxHQUFFLElBQUd4RSxJQUFFQyxFQUFDLENBQUMsSUFBRSxDQUFDLEdBQUV1akIsSUFBRyxDQUFDLEdBQUV2akIsRUFBQyxHQUFFd2pCLEtBQUd6akIsRUFBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRSxHQUFHRCxFQUFDLEdBQUVFLEtBQUUsR0FBRyxHQUFFRixFQUFDO0FBQUUscUJBQU8sR0FBRyxJQUFHRSxJQUFFRCxJQUFFLEVBQUUsSUFBR0MsRUFBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVvRSxJQUFHLElBQUcsU0FBU3RFLElBQUVDLElBQUVDLElBQUU7QUFBQyxrQkFBSUMsTUFBRTZoQixJQUFFaGlCLEVBQUM7QUFBRSxxQkFBTyxPQUFPRyxPQUFHLFlBQVVBLFFBQUksS0FBR3FqQixJQUFHLENBQUMsR0FBRXZqQixFQUFDLEdBQUUsU0FBUyxHQUFFO0FBQUMsZ0JBQUE4aUIsSUFBRyxHQUFFLEVBQUU7QUFBRSxvQkFBSSxJQUFFLEVBQUUsSUFBRyxHQUFHLEdBQUUsQ0FBQyxDQUFDO0FBQUUsbUJBQUcsR0FBRSxFQUFFO0FBQUUsb0JBQUkxaUIsS0FBRSxFQUFFb2pCLEtBQUcsQ0FBQztBQUFFLG1CQUFHLEdBQUUsRUFBRTtBQUFFLG9CQUFJbmpCLEtBQUUsRUFBRW1qQixLQUFHLENBQUM7QUFBRSx1QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFdmpCLElBQUUsR0FBRUcsSUFBRUMsSUFBRSxHQUFHLEdBQUUsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDLEdBQUVOLEVBQUMsSUFBRUU7QUFBQSxZQUFDLENBQUMsR0FBRW9FLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxrQkFBR2dpQixJQUFFaGlCLEVBQUMsTUFBSSxJQUFHO0FBQUMsb0JBQUlFLEtBQUVnaUIsSUFBR2xpQixFQUFDO0FBQUUsbUJBQUdBLEVBQUM7QUFBRSxvQkFBSUcsTUFBRUQ7QUFBQSxjQUFDO0FBQU0sb0JBQUlDLE1BQUU7QUFBRSxxQkFBT3NFLElBQUcsSUFBR3pFLElBQUUsQ0FBQyxHQUFFRyxHQUFDLEdBQUVGLElBQUUsRUFBRSxJQUFHRCxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLGtCQUFJLElBQUVGLEtBQUVBLEdBQUUsQ0FBQyxJQUFFO0FBQUUsa0JBQUcraEIsSUFBRWhpQixFQUFDLE1BQUk7QUFBRyx1QkFBT0c7QUFBRSxrQkFBSSxJQUFFLENBQUMsR0FBRUEsS0FBRSxDQUFDO0FBQUUscUJBQU9xakIsSUFBRyxDQUFDLEdBQUV0akIsRUFBQyxHQUFFLFNBQVNHLElBQUU7QUFBQyx5QkFBUUMsS0FBRSxPQUFJO0FBQUMsc0JBQUdvaUIsSUFBR3JpQixJQUFFLEVBQUUsR0FBRTtBQUFDLHdCQUFJQyxLQUFFLENBQUMsR0FBRSxFQUFFLElBQUdELEVBQUMsR0FBRUMsRUFBQztBQUFFO0FBQUEsa0JBQVE7QUFBQyxzQkFBSSxJQUFFLEdBQUdBLEVBQUM7QUFBRSxzQkFBRyxHQUFFO0FBQUMsd0JBQUlFLE1BQUUsRUFBRSxDQUFDO0FBQUUsd0JBQUdBLEtBQUU7QUFBQywwQkFBSVcsS0FBRVgsSUFBRSxDQUFDLEdBQUVZLEtBQUVaLElBQUUsQ0FBQyxHQUFFcUIsS0FBRSxFQUFFLENBQUM7QUFBRSw2QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRVQsSUFBRUQsRUFBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUM7QUFBQSxrQkFBQztBQUFDLHdCQUFNTixJQUFHLENBQUMsR0FBRWdFLEtBQUcsR0FBRyxHQUFFLENBQUM7QUFBQSxnQkFBQztBQUFBLGNBQUMsR0FBRTdFLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxrQkFBR2dpQixJQUFFaGlCLEVBQUMsTUFBSSxJQUFHO0FBQUMsb0JBQUlFLEtBQUVnaUIsSUFBR2xpQixFQUFDO0FBQUUsbUJBQUdBLEVBQUM7QUFBRSxvQkFBSUcsTUFBRUQ7QUFBQSxjQUFDO0FBQU0sb0JBQUlDLE1BQUU7QUFBRSxxQkFBT3NFLElBQUcsSUFBR3pFLElBQUUsQ0FBQyxHQUFFRyxHQUFDLEdBQUVGLElBQUUsRUFBRSxJQUFHRCxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLGtCQUFJLElBQUVGLEtBQUVBLEdBQUUsQ0FBQyxJQUFFO0FBQUUsa0JBQUcraEIsSUFBRWhpQixFQUFDLE1BQUk7QUFBRyx1QkFBT0c7QUFBRSxrQkFBSSxJQUFFLENBQUMsR0FBRUEsS0FBRSxDQUFDO0FBQUUscUJBQU9xakIsSUFBRyxDQUFDLEdBQUV0akIsRUFBQyxHQUFFLFNBQVNHLElBQUU7QUFBQyx5QkFBUUMsS0FBRSxPQUFJO0FBQUMsc0JBQUdvaUIsSUFBR3JpQixJQUFFLEVBQUUsR0FBRTtBQUFDLHdCQUFJQyxLQUFFLENBQUMsR0FBRSxFQUFFLElBQUdELEVBQUMsR0FBRUMsRUFBQztBQUFFO0FBQUEsa0JBQVE7QUFBQyxzQkFBSSxJQUFFLEdBQUdBLEVBQUM7QUFBRSxzQkFBRyxHQUFFO0FBQUMsd0JBQUlFLE1BQUUsRUFBRSxDQUFDO0FBQUUsd0JBQUdBLEtBQUU7QUFBQywwQkFBSVcsS0FBRVgsSUFBRSxDQUFDLEdBQUVZLEtBQUVaLElBQUUsQ0FBQyxHQUFFcUIsS0FBRSxFQUFFLENBQUM7QUFBRSw2QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRVQsSUFBRUQsRUFBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUM7QUFBQSxrQkFBQztBQUFDLHdCQUFNTixJQUFHLENBQUMsR0FBRWdFLEtBQUcsR0FBRyxHQUFFLENBQUM7QUFBQSxnQkFBQztBQUFBLGNBQUMsR0FBRTdFLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPd0UsR0FBRSxJQUFHeEUsSUFBRSxFQUFFLElBQUdBLEVBQUMsQ0FBQztBQUFBLFlBQUMsQ0FBQyxHQUFFc0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFO0FBQUMsa0JBQUlDLEtBQUU4aEIsSUFBRWhpQixFQUFDO0FBQUUsa0JBQUcsT0FBT0UsTUFBRyxZQUFVQSxPQUFJLE1BQUksQ0FBQ0YsR0FBRSxFQUFFLEdBQUU7QUFBQyxvQkFBSUcsTUFBRXFFLEdBQUVtZixLQUFHM2pCLElBQUVDLEVBQUM7QUFBRSx1QkFBT3dFLElBQUcsSUFBR3pFLElBQUVHLElBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxDQUFDLEdBQUVBLEtBQUUsQ0FBQyxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDO0FBQUMscUJBQU9GO0FBQUEsWUFBQyxDQUFDLEdBQUVxRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRStoQixJQUFFaGlCLEVBQUM7QUFBRSxxQkFBTyxPQUFPQyxNQUFHLFlBQVVBLE9BQUksS0FBR3VqQixJQUFHLEdBQUUsU0FBU3RqQixJQUFFO0FBQUMsb0JBQUlDLE1BQUUraEIsSUFBR2hpQixFQUFDO0FBQUUsZ0JBQUE2aUIsSUFBRzdpQixJQUFFLEVBQUU7QUFBRSxvQkFBSSxJQUFFLEdBQUcsQ0FBQyxHQUFFQyxHQUFDLEdBQUUsR0FBRSxDQUFDO0FBQUUsdUJBQU0sQ0FBQyxJQUFHLENBQUMsR0FBRSxFQUFFLElBQUdELEVBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSxjQUFDLEdBQUVGLEVBQUMsSUFBRSxFQUFFLElBQUdBLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUM7QUFBRSxxQkFBT3lFLElBQUdpZixLQUFHLEdBQUUxakIsSUFBRUMsSUFBRSxFQUFFLElBQUdELEVBQUMsQ0FBQztBQUFBLFlBQUMsQ0FBQyxHQUFFc0UsSUFBR29mLEtBQUcsU0FBUzFqQixJQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMsa0JBQUksSUFBRUgsS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBRSxrQkFBR21pQixJQUFHbGlCLEVBQUM7QUFBRSx1QkFBT0U7QUFBRSxrQkFBSSxJQUFFNmhCLElBQUUvaEIsRUFBQztBQUFFLGtCQUFHLE9BQU8sS0FBRyxVQUFTO0FBQUMsb0JBQUcsTUFBSTtBQUFFLHlCQUFPLEdBQUdBLEVBQUMsR0FBRXlFLElBQUcsSUFBRyxHQUFFLEdBQUV6RSxJQUFFQyxJQUFFQyxHQUFDO0FBQUUsb0JBQUcsTUFBSSxJQUFHO0FBQUMsc0JBQUlFLEtBQUV5aEIsSUFBRyxHQUFFN2hCLEVBQUM7QUFBRSx5QkFBTyxPQUFPSSxNQUFHLFlBQVVBLE9BQUksS0FBRyxHQUFHSixJQUFFLEdBQUcsR0FBRThpQixJQUFHOWlCLElBQUUsRUFBRSxHQUFFOGlCLElBQUc5aUIsSUFBRSxDQUFDLEdBQUV5RSxJQUFHLElBQUcsR0FBRSxHQUFFekUsSUFBRUMsSUFBRUMsR0FBQyxNQUFJLEdBQUdGLElBQUUsR0FBRyxHQUFFRTtBQUFBLGdCQUFFO0FBQUMsb0JBQUcsTUFBSTtBQUFHLHlCQUFPLEdBQUdGLEVBQUMsR0FBRStoQixJQUFFL2hCLEVBQUMsTUFBSSxLQUFHLEdBQUdBLElBQUUsRUFBRSxHQUFFOGlCLElBQUc5aUIsSUFBRSxDQUFDLEdBQUV5RSxJQUFHLElBQUcsR0FBRSxHQUFFekUsSUFBRUMsSUFBRUMsR0FBQztBQUFBLGNBQUM7QUFBQyxxQkFBT0E7QUFBQSxZQUFDLENBQUMsR0FBRW1FLElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFO0FBQUMscUJBQU9zRSxJQUFHaWYsS0FBRyxDQUFDLEdBQUUxakIsRUFBQyxHQUFFRSxJQUFFQyxLQUFFcWpCLElBQUcsQ0FBQyxHQUFFcmpCLEdBQUMsR0FBRSxTQUFTLEdBQUU7QUFBQyxvQkFBRyxDQUFDRixNQUFHeWlCLElBQUcsR0FBRSxDQUFDO0FBQUUseUJBQU0sQ0FBQyxJQUFHLENBQUMsR0FBRSxHQUFFLEdBQUcsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFFLG9CQUFJcmlCLEtBQUUsRUFBRW9qQixLQUFHLENBQUM7QUFBRSxnQkFBQVYsSUFBRyxHQUFFLENBQUM7QUFBRSxvQkFBSXppQixLQUFFLENBQUMsR0FBRSxHQUFFRCxJQUFFLEdBQUcsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBRSx1QkFBT0wsS0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFTSxJQUFFTCxFQUFDLENBQUMsSUFBRSxDQUFDLElBQUdLLEVBQUM7QUFBQSxjQUFDLEdBQUVKLEVBQUMsQ0FBQztBQUFBLFlBQUMsQ0FBQyxHQUFFb0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMscUJBQU93RSxHQUFFLElBQUd4RSxJQUFFd0UsR0FBRSxHQUFHLEVBQUUsR0FBRSxHQUFFeEUsRUFBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUVDLElBQUU7QUFBQyx1QkFBUUMsS0FBRSxDQUFDLEdBQUVELEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRUEsRUFBQyxDQUFDLE9BQUk7QUFBQyxvQkFBSUUsTUFBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRUEsR0FBRSxDQUFDO0FBQUUsb0JBQUc4aEIsSUFBRWhpQixFQUFDLE1BQUksTUFBSSxHQUFHLEdBQUVBLEVBQUMsR0FBRTtBQUFDLHNCQUFJLElBQUV3akIsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLFNBQVMsR0FBRTtBQUFDLDJCQUFPLFNBQVNoakIsS0FBRTtBQUFDLDZCQUFPdWlCLElBQUd2aUIsS0FBRSxFQUFFLEdBQUUsQ0FBQyxHQUFFLEdBQUUraUIsSUFBRy9pQixHQUFDLENBQUM7QUFBQSxvQkFBQztBQUFBLGtCQUFDLEVBQUVMLEdBQUMsR0FBRUgsRUFBQyxHQUFFSyxLQUFFLEVBQUUsQ0FBQyxHQUFFSCxLQUFFLENBQUMsR0FBRUcsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQVE7QUFBQyx1QkFBT0Y7QUFBQSxjQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVtRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBRzJpQixJQUFHM2lCLElBQUUsQ0FBQyxHQUFFZ2lCLElBQUVoaUIsRUFBQyxNQUFJLEdBQUU7QUFBQyxtQkFBR0EsRUFBQztBQUFFLG9CQUFJQyxLQUFFLEVBQUUsSUFBR0QsRUFBQztBQUFFLGdCQUFBK2lCLElBQUcvaUIsSUFBRSxDQUFDO0FBQUUsb0JBQUlFLEtBQUVEO0FBQUEsY0FBQztBQUFNLG9CQUFJQyxLQUFFbWlCLElBQUdyaUIsRUFBQyxJQUFFLENBQUMsR0FBRSxFQUFFLElBQUdBLEVBQUMsQ0FBQyxLQUFHLEdBQUdBLElBQUUsRUFBRSxHQUFFO0FBQUcscUJBQU80aUIsSUFBRzVpQixFQUFDLEdBQUVFO0FBQUEsWUFBQyxDQUFDLEdBQUVvRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxxQkFBT3dqQixJQUFHLEdBQUUsU0FBU3ZqQixJQUFFO0FBQUMsb0JBQUlDLEtBQUVnaUIsSUFBR2ppQixFQUFDO0FBQUUsZ0JBQUE4aUIsSUFBRzlpQixJQUFFLEVBQUU7QUFBRSxvQkFBSUUsTUFBRSxFQUFFLElBQUdGLEVBQUM7QUFBRSxvQkFBRyxDQUFDRTtBQUFFLHlCQUFPO0FBQUksb0JBQUksSUFBRUEsSUFBRSxDQUFDO0FBQUUsdUJBQU0sQ0FBQyxJQUFHLENBQUMsR0FBRSxHQUFFLEdBQUcsQ0FBQyxHQUFFRCxFQUFDLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLGNBQUMsR0FBRUYsRUFBQztBQUFBLFlBQUMsQ0FBQyxHQUFFc0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMsa0JBQUlDLEtBQUUsR0FBR0QsRUFBQyxHQUFFRSxLQUFFOGhCLElBQUVoaUIsRUFBQyxHQUFFRyxNQUFFO0FBQUUsa0JBQUcsT0FBT0QsTUFBRztBQUFTLHdCQUFPQSxJQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLDJCQUFPLEVBQUUsSUFBR0YsRUFBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSwyQkFBTyxFQUFFLElBQUdBLEVBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUcsMkJBQU8sRUFBRSxJQUFHQSxFQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFPd2pCLElBQUcsR0FBRSxTQUFTdmhCLEtBQUU7QUFBQywwQkFBSW1FLE1BQUc4YixJQUFHamdCLEdBQUM7QUFBRSx5QkFBR0EsR0FBQztBQUFFLDBCQUFJb0UsTUFBRyxFQUFFLElBQUdwRSxHQUFDLEdBQUVxRSxNQUFFRCxJQUFHLENBQUMsR0FBRUUsTUFBRUYsSUFBRyxDQUFDO0FBQUUsNkJBQU0sQ0FBQyxJQUFHLENBQUMsR0FBRUMsS0FBRUMsS0FBRSxHQUFHLENBQUMsR0FBRUgsR0FBRSxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFcEcsRUFBQztBQUFBLGtCQUFFLEtBQUs7QUFBRywyQkFBTyxFQUFFLElBQUdBLEVBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU93akIsSUFBRyxHQUFFLElBQUd4akIsRUFBQztBQUFBLGtCQUFFLEtBQUs7QUFBSSx3QkFBSSxJQUFFa2lCLElBQUdsaUIsRUFBQztBQUFFLDJCQUFPLEdBQUdBLEVBQUMsR0FBRSxDQUFDLEdBQUVDLElBQUUsQ0FBQyxJQUFHLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU93akIsSUFBRyxHQUFFLFNBQVN2aEIsS0FBRTtBQUFDLDBCQUFJbUUsTUFBRzhiLElBQUdqZ0IsR0FBQztBQUFFLHlCQUFHQSxHQUFDO0FBQUUsMEJBQUlvRSxNQUFHLEdBQUdwRSxHQUFDLEdBQUVxRSxNQUFFLEVBQUVtZCxLQUFHeGhCLEdBQUM7QUFBRSw2QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFcUUsS0FBRSxHQUFHLENBQUMsR0FBRUYsR0FBRSxHQUFFLENBQUMsR0FBRUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRXJHLEVBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU93akIsSUFBRyxHQUFFLFNBQVN2aEIsS0FBRTtBQUFDLDBCQUFJbUUsTUFBRzhiLElBQUdqZ0IsR0FBQztBQUFFLHlCQUFHQSxHQUFDO0FBQUUsMEJBQUlvRSxNQUFHLEdBQUdwRSxHQUFDLEdBQUVxRSxNQUFFLEVBQUVtZCxLQUFHeGhCLEdBQUM7QUFBRSw2QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFcUUsS0FBRSxHQUFHLENBQUMsR0FBRUYsR0FBRSxHQUFFLENBQUMsR0FBRUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRXJHLEVBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU93akIsSUFBRyxHQUFFLFNBQVN2aEIsS0FBRTtBQUFDLDBCQUFJbUUsTUFBRzhiLElBQUdqZ0IsR0FBQztBQUFFLHlCQUFHQSxHQUFDO0FBQUUsMEJBQUlvRSxNQUFHLEdBQUdwRSxHQUFDLEdBQUVxRSxNQUFFa2QsSUFBRyxHQUFFLFNBQVNqZCxLQUFFO0FBQUMsNEJBQUlDLE1BQUUsRUFBRW9kLEtBQUdyZCxHQUFDO0FBQUUsaUNBQVNFLElBQUUsSUFBRztBQUFDLDhCQUFHLElBQUVpYyxJQUFHLElBQUcsRUFBRTtBQUFFLGtDQUFNN2hCLElBQUdvaUIsS0FBRyxDQUFDO0FBQUUsOEJBQUl2YyxNQUFFLEVBQUUsSUFBRyxFQUFFO0FBQUUsOEJBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBR3NiLElBQUUsRUFBRSxNQUFJO0FBQUcsa0NBQU1uaEIsSUFBR29pQixLQUFHLENBQUM7QUFBRSxpQ0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFdmMsSUFBRSxDQUFDLEdBQUVBLEdBQUMsQ0FBQztBQUFBLHdCQUFDO0FBQUMsK0JBQU0sQ0FBQyxHQUFFRixLQUFFLEdBQUdELEtBQUUsQ0FBQyxHQUFFLEdBQUdBLEdBQUMsQ0FBQyxHQUFFRSxHQUFDLEdBQUUsR0FBRSxHQUFFLENBQUM7QUFBQSxzQkFBQyxHQUFFeEUsR0FBQztBQUFFLDZCQUFNLENBQUMsSUFBRyxDQUFDLEdBQUVxRSxLQUFFLEdBQUcsQ0FBQyxHQUFFRixHQUFFLEdBQUUsQ0FBQyxHQUFFQyxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFckcsRUFBQztBQUFBLGtCQUFFLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUksSUFBRXlFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRXpFLEVBQUM7QUFBRSwyQkFBTSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUEsa0JBQUcsS0FBSztBQUFHLG9CQUFBRyxNQUFFO0FBQUU7QUFBQSxrQkFBTSxLQUFLO0FBQUEsa0JBQUcsS0FBSztBQUFHLHdCQUFJRSxLQUFFNmhCLElBQUdsaUIsRUFBQztBQUFFLDJCQUFPLEdBQUdBLEVBQUMsR0FBRSxDQUFDLEdBQUVDLElBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRUMsT0FBSSxLQUFHLElBQUUsR0FBRSxHQUFHLENBQUMsR0FBRUcsRUFBQyxHQUFFLENBQUMsR0FBRSxHQUFHTCxFQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsZ0JBQUM7QUFBQTtBQUFNLHdCQUFPRSxHQUFFLENBQUMsR0FBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRSx3QkFBSUksS0FBRUosR0FBRSxDQUFDLEdBQUUsSUFBRUksR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFYSxLQUFFYixHQUFFLENBQUM7QUFBRSxvQkFBQUEsR0FBRSxDQUFDLEtBQUdraUIsSUFBR3hpQixJQUFFLEVBQUU7QUFBRSx3QkFBSW9CLEtBQUU4Z0IsSUFBR2xpQixFQUFDO0FBQUUsMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRW1CLElBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRVgsS0FBRSxHQUFFLEdBQUcsQ0FBQyxHQUFFWSxFQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUdwQixFQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFHb0UsSUFBRWxFLEdBQUUsQ0FBQyxHQUFFdGMsR0FBRTtBQUFFLHNCQUFBdWMsTUFBRTtBQUFBLHlCQUFNO0FBQUMsMEJBQUdILEdBQUUsRUFBRSxFQUFFLENBQUM7QUFBRSwrQkFBT3dqQixJQUFHLEdBQUUsU0FBU3ZoQixLQUFFO0FBQUMsOEJBQUltRSxNQUFHOGIsSUFBR2pnQixHQUFDO0FBQUUsMEJBQUErZ0IsSUFBRy9nQixLQUFFLEdBQUc7QUFBRSw4QkFBSW9FLE1BQUcrYyxLQUFHbmhCLEtBQUUsRUFBRSxJQUFHQSxHQUFDLENBQUMsR0FBRXFFLE1BQUUsRUFBRSxJQUFHckUsR0FBQztBQUFFLDhCQUFHLEdBQUdBLEdBQUM7QUFBRSxnQ0FBSXdFLE1BQUUsR0FBR3hFLEtBQUUsRUFBRSxJQUFHQSxHQUFDLENBQUMsR0FBRSxLQUFHcUU7QUFBQTtBQUFPLGdDQUFJQyxNQUFFLEVBQUUsSUFBR3RFLEdBQUMsR0FBRXVFLE1BQUUwYyxJQUFHamhCLEdBQUMsRUFBRSxDQUFDLEdBQUV3RSxNQUFFRixLQUFFLEtBQUcvQixHQUFFZ0MsS0FBRUYsS0FBRSxTQUFTSSxLQUFFQyxLQUFHO0FBQUMscUNBQU9uQyxHQUFFLEdBQUdrQyxLQUFFLFdBQVUsRUFBRSxHQUFFQSxLQUFFQyxHQUFFO0FBQUEsNEJBQUMsQ0FBQztBQUFFLGlDQUFNLENBQUMsSUFBRyxDQUFDLEdBQUVOLEtBQUcsSUFBR0ksS0FBRSxHQUFHLENBQUMsR0FBRUwsR0FBRSxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBQyxHQUFFcEcsRUFBQztBQUFFLHNCQUFBRyxNQUFFO0FBQUEsb0JBQUM7QUFBQztBQUFBLGtCQUFNLEtBQUs7QUFBRSx3QkFBRyxDQUFDaUUsSUFBRWxFLEdBQUUsQ0FBQyxHQUFFM2YsR0FBRTtBQUFFLDZCQUFPLEdBQUd5ZixJQUFFLEVBQUUsR0FBRSxDQUFDLEdBQUVDLElBQUUsR0FBRztBQUFFO0FBQUEsa0JBQU0sS0FBSztBQUFHLHdCQUFJNEIsS0FBRTNCLEdBQUUsQ0FBQyxHQUFFNEIsTUFBRTVCLEdBQUUsQ0FBQyxHQUFFNkIsTUFBRTdCLEdBQUUsQ0FBQyxHQUFFOEIsTUFBRTtBQUFFLDJCQUFPd2hCLElBQUcsR0FBRSxTQUFTdmhCLEtBQUU7QUFBQyw2QkFBTyxHQUFHRCxLQUFFRCxLQUFFRCxLQUFFRCxJQUFFSSxHQUFDO0FBQUEsb0JBQUMsR0FBRWpDLEVBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlrQyxNQUFFaEMsR0FBRSxDQUFDLEdBQUVpQyxNQUFFakMsR0FBRSxDQUFDLEdBQUVrQyxNQUFFO0FBQUUsMkJBQU9vaEIsSUFBRyxHQUFFLFNBQVN2aEIsS0FBRTtBQUFDLDZCQUFPLEdBQUdHLEtBQUVELEtBQUVELEtBQUVELEdBQUM7QUFBQSxvQkFBQyxHQUFFakMsRUFBQztBQUFBLGdCQUFDO0FBQUMsa0JBQUdHLEtBQUU7QUFBQyxvQkFBSWtDLE1BQUUsRUFBRSxJQUFHckMsRUFBQztBQUFFLHVCQUFNLENBQUMsR0FBRXFDLElBQUUsQ0FBQyxHQUFFLENBQUMsSUFBR0EsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLGNBQUM7QUFBQyxrQkFBSUMsTUFBRSxFQUFFLElBQUd0QyxFQUFDO0FBQUUscUJBQU9zQyxNQUFFLENBQUMsR0FBRXJDLElBQUVxQyxJQUFFLENBQUMsQ0FBQyxLQUFHaWdCLElBQUcsS0FBSXZpQixFQUFDLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLEdBQUc7QUFBQSxZQUFFLENBQUMsR0FBRXFFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFaWlCLElBQUdsaUIsRUFBQztBQUFFLGlCQUFHQSxFQUFDO0FBQUUsa0JBQUlFLEtBQUU4aEIsSUFBRWhpQixFQUFDO0FBQUUsa0JBQUcsT0FBT0UsTUFBRztBQUFTLHdCQUFPQSxHQUFFLENBQUMsR0FBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRywyQkFBTyxHQUFHLENBQUMsR0FBRUQsRUFBQyxHQUFFQyxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFRixFQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFPLEdBQUcsQ0FBQyxHQUFFQyxFQUFDLEdBQUVDLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUYsRUFBQztBQUFBLGdCQUFDO0FBQUMscUJBQU91aUIsSUFBRyxLQUFJdmlCLEVBQUMsR0FBRTtBQUFBLFlBQUcsQ0FBQyxHQUFFc0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMsa0JBQUlDLEtBQUU7QUFBRSxrQkFBRyxPQUFPRCxNQUFHO0FBQVMsd0JBQU9BLElBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUEsa0JBQUcsS0FBSztBQUFBLGtCQUFJLEtBQUs7QUFBQSxrQkFBSSxLQUFLO0FBQUEsa0JBQUksS0FBSztBQUFBLGtCQUFJLEtBQUs7QUFBQSxrQkFBSSxLQUFLO0FBQUEsa0JBQUksS0FBSztBQUFBLGtCQUFJLEtBQUs7QUFBQSxrQkFBSSxLQUFLO0FBQUEsa0JBQUksS0FBSztBQUFBLGtCQUFJLEtBQUs7QUFBSSxvQkFBQUMsS0FBRTtBQUFFO0FBQUEsZ0JBQUs7QUFBQTtBQUFNLGdCQUFBRCxHQUFFLENBQUMsTUFBSSxPQUFLQyxLQUFFO0FBQUcscUJBQU9BLEtBQUUsSUFBRTtBQUFBLFlBQUMsQ0FBQyxHQUFFcUUsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFO0FBQUMsa0JBQUlDLEtBQUVnaUIsSUFBR2xpQixFQUFDLEdBQUVHLE1BQUVxakIsSUFBRyxHQUFFLElBQUd4akIsRUFBQyxFQUFFLENBQUMsR0FBRSxJQUFFLEdBQUcsQ0FBQyxHQUFFRSxFQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUdGLEVBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVvZCxJQUFHLEdBQUUsQ0FBQyxHQUFFamQsS0FBRUYsRUFBQyxDQUFDLENBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVxRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRWlpQixJQUFHbGlCLEVBQUMsR0FBRUUsS0FBRThoQixJQUFFaGlCLEVBQUM7QUFBRSxrQkFBRyxPQUFPRSxNQUFHO0FBQVMsd0JBQU9BLElBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUcsMkJBQU8sR0FBR0YsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUcsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUksMkJBQU8sR0FBR0EsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUcs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S0FBSztBQUFFLHNCQUFJLEtBQUcsQ0FBQyxHQUFFLEVBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSSxLQUFHLENBQUMsR0FBRSxFQUFFQSxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUksS0FBRyxDQUFDLEdBQUUsRUFBRUEsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJLEtBQUcsQ0FBQyxHQUFFLEVBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSSxLQUFHLENBQUMsR0FBRSxFQUFFQSxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUksS0FBRyxDQUFDLEdBQUUsRUFBRUEsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJLEtBQUcsQ0FBQyxHQUFFLEVBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSUUsS0FBRSxFQUFFRixJQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUUsRUFBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJLEtBQUcsQ0FBQyxHQUFFLEVBQUVGLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHLENBQUMsSUFBRyxFQUFFQSxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUcsc0JBQUlHLEtBQUVILElBQUUsQ0FBQyxHQUFFLElBQUUsRUFBRUcsR0FBRSxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztB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U0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFLEdBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxLQUFFLEdBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLHFCQUFPSCxHQUFFLElBQUlDLElBQUVDLElBQUVDLEtBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRSxHQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFLEdBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxLQUFFLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUVDLEtBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxHQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0gsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsR0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLHFCQUFPSCxHQUFFLElBQUlDLElBQUVDLElBQUVDLEtBQUUsQ0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLHFCQUFPSCxHQUFFLElBQUlDLElBQUVDLElBQUVDLEdBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTSCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsR0FBQztBQUFBLFlBQUMsR0FBRSxNQUFJLFNBQVNILElBQUU7QUFBQyxrQkFBSUMsS0FBRUQsR0FBRSxDQUFDO0FBQUUsc0JBQU9DLEdBQUUsQ0FBQyxHQUFFO0FBQUEsZ0JBQUMsS0FBSztBQUFHLHNCQUFJQyxLQUFFRCxHQUFFLENBQUMsR0FBRUUsTUFBRUQsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFBRSxzQkFBR2tFLElBQUVqRSxLQUFFalosR0FBRSxHQUFFO0FBQUMsd0JBQUcsQ0FBQ2tkLElBQUVqRSxLQUFFLEVBQUUsS0FBRyxDQUFDaUUsSUFBRWxFLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsRUFBRTtBQUFFLDZCQUFPO0FBQUEsa0JBQUMsV0FBUyxDQUFDa0UsSUFBRWxFLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUVuRSxHQUFFO0FBQUUsMkJBQU87QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBQSxnQkFBRSxLQUFLO0FBQUEsZ0JBQUUsS0FBSztBQUFBLGdCQUFHLEtBQUs7QUFBRztBQUFBLGdCQUFNO0FBQVEseUJBQU87QUFBQSxjQUFDO0FBQUMscUJBQU87QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTaUUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUMsR0FBRUUsS0FBRSxFQUFFLElBQUdGLEVBQUMsR0FBRUcsTUFBRSxFQUFFLElBQUdILEVBQUM7QUFBRSxrQkFBRyxDQUFDRztBQUFFLHVCQUFPRDtBQUFFLGtCQUFJLElBQUVDLElBQUUsQ0FBQztBQUFFLHFCQUFNLENBQUMsR0FBRXFqQixJQUFHLENBQUMsR0FBRXZqQixFQUFDLEdBQUUsU0FBUyxHQUFFO0FBQUMsb0JBQUlJLEtBQUUsR0FBRyxHQUFFLEdBQUVILEVBQUM7QUFBRSx1QkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUVHLElBQUUsRUFBRTZqQixLQUFHLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSxjQUFDLEdBQUVsa0IsRUFBQyxDQUFDO0FBQUEsWUFBQyxHQUFFLE1BQUksU0FBU0EsSUFBRUMsSUFBRTtBQUFDLGtCQUFHLE9BQU9BLE1BQUcsWUFBVUEsT0FBSTtBQUFHLHVCQUFPO0FBQUUsb0JBQU1ZLElBQUdvaUIsS0FBRyxDQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU2pqQixJQUFFO0FBQUMsa0JBQUlDLEtBQUUsR0FBRyxLQUFJRCxFQUFDLEdBQUVFLEtBQUUsR0FBR0QsRUFBQyxHQUFFRSxNQUFFNmhCLElBQUUvaEIsRUFBQztBQUFFLGtCQUFHLE9BQU9FLE9BQUcsVUFBUztBQUFDLG9CQUFHQSxRQUFJO0FBQUcsd0JBQU1VLElBQUdvaUIsS0FBRyxDQUFDO0FBQUUsb0JBQUc5aUIsUUFBSSxJQUFHO0FBQUMsc0JBQUksSUFBRSxHQUFHRixFQUFDLEdBQUUsSUFBRTtBQUFFLHNCQUFHLEdBQUU7QUFBQyx3QkFBSUksS0FBRSxFQUFFLENBQUM7QUFBRSx3QkFBRyxPQUFPQSxNQUFHLFlBQVVBLE9BQUksR0FBRTtBQUFDLDBCQUFJQyxLQUFFO0FBQUUsMEJBQUU7QUFBQSxvQkFBQztBQUFBLGtCQUFDO0FBQUMsc0JBQUcsQ0FBQztBQUFFLHdCQUFJQSxLQUFFO0FBQUUsc0JBQUdBO0FBQUUsMEJBQU1PLElBQUdvaUIsS0FBRyxDQUFDO0FBQUEsZ0JBQUM7QUFBQSxjQUFDO0FBQUMsa0JBQUcsQ0FBQ1osSUFBR3BpQixFQUFDO0FBQUUsdUJBQU9DO0FBQUUsa0JBQUdBLEdBQUUsQ0FBQyxNQUFJLEdBQUU7QUFBQyxvQkFBSSxJQUFFQSxHQUFFLENBQUMsRUFBRSxDQUFDO0FBQUUsb0JBQUcsRUFBRSxDQUFDLE1BQUksS0FBRyxDQUFDa0UsSUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFFeEcsR0FBRSxLQUFHLENBQUN1a0IsSUFBR2xpQixFQUFDO0FBQUUsd0JBQU1ZLElBQUdvaUIsS0FBRyxDQUFDO0FBQUEsY0FBQztBQUFDLHFCQUFPL2lCO0FBQUEsWUFBQztBQUFFLFlBQUFvRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRW9pQixJQUFHcmlCLEVBQUM7QUFBRSxrQkFBR0MsSUFBRTtBQUFDLG9CQUFJQyxLQUFFOGhCLElBQUVoaUIsRUFBQyxHQUFFRyxNQUFFO0FBQUUsb0JBQUcsT0FBT0QsTUFBRyxVQUFTO0FBQUMsc0JBQUdBLE9BQUksSUFBRztBQUFDLHdCQUFHRixHQUFFLEVBQUUsR0FBRTtBQUFDLDBCQUFJLElBQUU7QUFBRSxzQkFBQUcsTUFBRTtBQUFBLG9CQUFDO0FBQUEsa0JBQUMsV0FBU0QsT0FBSSxNQUFJRixHQUFFLEVBQUUsR0FBRTtBQUFDLHdCQUFJLElBQUU7QUFBRSxvQkFBQUcsTUFBRTtBQUFBLGtCQUFDO0FBQUEsZ0JBQUM7QUFBQyxvQkFBRyxDQUFDQTtBQUFFLHNCQUFJLElBQUU7QUFBRSxvQkFBSSxJQUFFO0FBQUEsY0FBQztBQUFNLG9CQUFJLElBQUVGO0FBQUUsa0JBQUlJLEtBQUUyaEIsSUFBRWhpQixFQUFDLEdBQUVNLEtBQUU7QUFBRSxrQkFBRyxPQUFPRCxNQUFHLFVBQVM7QUFBQyxvQkFBSSxJQUFFO0FBQUUsb0JBQUcsTUFBSUE7QUFBRSxzQkFBR0EsT0FBSSxJQUFHO0FBQUMsd0JBQUdMLEdBQUUsRUFBRTtBQUFFLDZCQUFNLENBQUMsR0FBRSxFQUFFLElBQUdBLEVBQUMsQ0FBQztBQUFFLHdCQUFFO0FBQUEsa0JBQUM7QUFBTSxvQkFBQUssT0FBSSxPQUFLLElBQUU7QUFBQTtBQUFRLGtCQUFBQSxPQUFJLEtBQUcsS0FBR0EsT0FBSSxJQUFFO0FBQUcsc0JBQUlDLEtBQUU7QUFBQSxjQUFFO0FBQUMsa0JBQUcsQ0FBQ0EsTUFBRyxDQUFDO0FBQUUsdUJBQU8sR0FBR04sRUFBQztBQUFFLGtCQUFJUSxNQUFFO0FBQUUsa0JBQUdILE9BQUksTUFBSW9oQixJQUFHemhCLEVBQUMsS0FBRzhoQixJQUFHLEdBQUU5aEIsRUFBQyxNQUFJLElBQUc7QUFBQyxvQkFBSW1CLEtBQUUsSUFBR0MsS0FBRTtBQUFHLGdCQUFBWixNQUFFO0FBQUEsY0FBQztBQUFDLGtCQUFHLENBQUNBO0FBQUUsb0JBQUlXLEtBQUUsSUFBR0MsS0FBRTtBQUFHLGtCQUFJUyxLQUFFLEdBQUc3QixJQUFFb0IsRUFBQztBQUFFLGtCQUFHUztBQUFFLHVCQUFPQSxHQUFFLENBQUM7QUFBRSxrQkFBSUMsTUFBRSxHQUFHOUIsSUFBRW1CLEVBQUM7QUFBRSxxQkFBT1csTUFBRUEsSUFBRSxDQUFDLElBQUUsR0FBRzlCLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUc0ZixLQUFHLFNBQVNsa0IsSUFBRTtBQUFDLHFCQUFPLEdBQUdBLElBQUUsRUFBRSxJQUFHQSxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPd2pCLElBQUcsR0FBRSxTQUFTdmpCLElBQUU7QUFBQyxnQkFBQUEsR0FBRSxFQUFFLEtBQUcsR0FBR0EsSUFBRXBjLEdBQUU7QUFBRSxvQkFBSXFjLEtBQUVnaUIsSUFBR2ppQixFQUFDLEdBQUVFLE1BQUUsR0FBR0YsRUFBQztBQUFFLGdCQUFBOGlCLElBQUc5aUIsSUFBRSxFQUFFO0FBQUUsb0JBQUksSUFBRSxHQUFHQSxFQUFDO0FBQUUsb0JBQUcsR0FBR0EsRUFBQztBQUFFLHNCQUFJLElBQUUsR0FBRUksS0FBRTtBQUFBLHFCQUFNO0FBQUMsc0JBQUlDLEtBQUVvaUIsSUFBR3ppQixJQUFFdE0sR0FBRSxHQUFFLElBQUVxdUIsSUFBRS9oQixFQUFDLEdBQUVPLE1BQUU7QUFBRSxzQkFBRyxPQUFPLEtBQUcsVUFBUztBQUFDLHdCQUFJVyxLQUFFO0FBQUUsd0JBQUcsTUFBSTtBQUFHLHNCQUFBQSxLQUFFO0FBQUEsNkJBQVUsS0FBRztBQUFFLDhCQUFPLEdBQUU7QUFBQSx3QkFBQyxLQUFLO0FBQUEsd0JBQUUsS0FBSztBQUFBLHdCQUFFLEtBQUs7QUFBQSx3QkFBRSxLQUFLO0FBQUEsd0JBQUUsS0FBSztBQUFFO0FBQUEsd0JBQU07QUFBUSwwQkFBQUEsS0FBRTtBQUFBLHNCQUFDO0FBQUMsd0JBQUdBLElBQUU7QUFBQywwQkFBSUMsS0FBRTtBQUFFLHNCQUFBWixNQUFFO0FBQUEsb0JBQUM7QUFBQSxrQkFBQztBQUFDLHNCQUFHLENBQUNBO0FBQUUsd0JBQUlZLEtBQUU7QUFBRSxzQkFBSVMsS0FBRTtBQUFFLHNCQUFHLENBQUN2QixNQUFHLENBQUNjLElBQUU7QUFBQyx3QkFBSVUsTUFBRTtBQUFFLG9CQUFBRCxLQUFFO0FBQUEsa0JBQUM7QUFBQyxzQkFBRyxDQUFDQTtBQUFFLHdCQUFJQyxNQUFFLENBQUMsR0FBRSxFQUFFb2lCLEtBQUdqa0IsRUFBQyxDQUFDO0FBQUUsc0JBQUksSUFBRUssSUFBRUQsS0FBRXlCO0FBQUEsZ0JBQUM7QUFBQyxvQkFBSUMsTUFBRTFCLEtBQUUsSUFBRSxHQUFHSixFQUFDLEdBQUUrQixNQUFFd2IsSUFBR3JkLEtBQUUsQ0FBQztBQUFFLHVCQUFNLENBQUMsSUFBRyxDQUFDLEdBQUVFLElBQUUsR0FBRyxDQUFDLEdBQUVILEVBQUMsR0FBRSxDQUFDLEdBQUU2QixHQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUVDLEdBQUMsQ0FBQztBQUFBLGNBQUMsR0FBRWhDLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFRCxHQUFFLENBQUM7QUFBRSxzQkFBT0MsR0FBRSxDQUFDLEdBQUU7QUFBQSxnQkFBQyxLQUFLO0FBQUcsc0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFRSxNQUFFRCxHQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUFFLHNCQUFHa0UsSUFBRWpFLEtBQUVqWixHQUFFLEdBQUU7QUFBQyx3QkFBRyxDQUFDa2QsSUFBRWpFLEtBQUUsRUFBRSxLQUFHLENBQUNpRSxJQUFFbEUsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRSxFQUFFO0FBQUUsNkJBQU87QUFBQSxrQkFBQyxXQUFTLENBQUNrRSxJQUFFbEUsR0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRW5FLEdBQUU7QUFBRSwyQkFBTztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFBLGdCQUFFLEtBQUs7QUFBRztBQUFBLGdCQUFNO0FBQVEseUJBQU87QUFBQSxjQUFDO0FBQUMscUJBQU87QUFBQSxZQUFDLENBQUMsR0FBRXVJLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFK2hCLElBQUVoaUIsRUFBQyxHQUFFRSxLQUFFO0FBQUUsa0JBQUcsT0FBT0QsTUFBRyxVQUFTO0FBQUMsb0JBQUlFLE1BQUVGLEtBQUUsS0FBRztBQUFFLG9CQUFHLE1BQUlFLFFBQUksR0FBRTtBQUFDLDBCQUFPQSxLQUFFO0FBQUEsb0JBQUMsS0FBSztBQUFFLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFFLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU0sS0FBSztBQUFHLDBCQUFJLElBQUU7QUFBSTtBQUFBLG9CQUFNLEtBQUs7QUFBRywwQkFBSSxJQUFFO0FBQUk7QUFBQSxvQkFBTSxLQUFLO0FBQUcsMEJBQUksSUFBRTtBQUFJO0FBQUEsb0JBQU07QUFBUSwwQkFBSSxJQUFFO0FBQUEsa0JBQUc7QUFBQyxzQkFBSSxJQUFFO0FBQUUsa0JBQUFELEtBQUU7QUFBQSxnQkFBQztBQUFBLGNBQUM7QUFBQyxrQkFBRyxDQUFDQTtBQUFFLG9CQUFJLElBQUU7QUFBRSxxQkFBTyxNQUFJLEtBQUcsR0FBR0YsRUFBQyxHQUFFO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRSxHQUFHRCxFQUFDLEdBQUVFLEtBQUUsRUFBRSxJQUFHRixFQUFDO0FBQUUsa0JBQUdnaUIsSUFBRWhpQixFQUFDLE1BQUk7QUFBRyx1QkFBT0U7QUFBRSxpQkFBR0YsRUFBQztBQUFFLGtCQUFJRyxNQUFFLEVBQUUrakIsS0FBRyxHQUFHLEdBQUVsa0IsRUFBQyxDQUFDO0FBQUUsY0FBQStpQixJQUFHL2lCLElBQUUsRUFBRTtBQUFFLGtCQUFJLElBQUV3akIsSUFBRyxDQUFDLEdBQUV2akIsRUFBQyxHQUFFaWtCLEtBQUdsa0IsRUFBQyxHQUFFLElBQUUsRUFBRSxDQUFDLEdBQUVLLEtBQUUsRUFBRSxDQUFDO0FBQUUscUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUdMLElBQUVFLEVBQUMsR0FBRUMsS0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRW1FLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPLEdBQUdBLElBQUUsRUFBRSxJQUFHQSxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUM7QUFBRSxnQkFBSSxLQUFHLFNBQVNBLElBQUVDLElBQUVDLElBQUVDLEtBQUUsR0FBRTtBQUFDLGtCQUFJLElBQUUsR0FBR0gsSUFBRUMsRUFBQztBQUFFLHFCQUFNLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFRSxLQUFFLEdBQUUsR0FBR0gsSUFBRUUsRUFBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixJQUFFQyxJQUFFQyxJQUFFO0FBQUMsdUJBQVFDLE1BQUVGLElBQUUsSUFBRUMsUUFBSTtBQUFDLG9CQUFJLElBQUU4aEIsSUFBRWhpQixFQUFDO0FBQUUsb0JBQUcsT0FBTyxLQUFHLFlBQVUsTUFBSSxJQUFHO0FBQUMscUJBQUdBLEVBQUM7QUFBRSxzQkFBSUssS0FBRW1qQixJQUFHLEdBQUUsSUFBR3hqQixFQUFDLEdBQUVNLEtBQUVELEdBQUUsQ0FBQyxHQUFFLElBQUVtZCxJQUFHLEdBQUVuZCxHQUFFLENBQUMsQ0FBQyxHQUFFRyxNQUFFLEdBQUcsR0FBRVIsSUFBRSxHQUFHQSxJQUFFRyxLQUFFRyxJQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRUgsTUFBRUssSUFBRSxDQUFDLEdBQUUsSUFBRUEsSUFBRSxDQUFDO0FBQUU7QUFBQSxnQkFBUTtBQUFDLHVCQUFNLENBQUMsR0FBRSxHQUFFTCxHQUFDO0FBQUEsY0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILElBQUVDLElBQUVDLElBQUU7QUFBQyx1QkFBUUMsTUFBRUYsSUFBRSxJQUFFQyxRQUFJO0FBQUMsb0JBQUksSUFBRThoQixJQUFFaGlCLEVBQUM7QUFBRSxvQkFBRyxPQUFPLEtBQUcsWUFBVSxNQUFJLElBQUc7QUFBQyxxQkFBR0EsRUFBQztBQUFFLHNCQUFJSyxLQUFFbWpCLElBQUcsR0FBRSxJQUFHeGpCLEVBQUMsR0FBRU0sS0FBRSxHQUFHTixJQUFFSyxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxJQUFFQyxHQUFFLENBQUMsR0FBRUUsTUFBRWdkLElBQUcsR0FBRWxkLEdBQUUsQ0FBQyxDQUFDLEdBQUVhLEtBQUUsR0FBRyxHQUFFbkIsSUFBRSxHQUFHQSxJQUFFRyxLQUFFLEdBQUUsR0FBRUssR0FBQyxHQUFFQSxHQUFDLEdBQUVMLE1BQUVnQixHQUFFLENBQUMsR0FBRSxJQUFFQSxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFRO0FBQUMsdUJBQU0sQ0FBQyxHQUFFLEdBQUVoQixHQUFDO0FBQUEsY0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILElBQUVDLElBQUVDLElBQUVDLEtBQUU7QUFBQyx1QkFBUSxJQUFFSCxJQUFFLElBQUVFLElBQUVHLEtBQUVGLFNBQUk7QUFBQyxvQkFBSUcsS0FBRTBoQixJQUFFL2hCLEVBQUM7QUFBRSxvQkFBRyxPQUFPSyxNQUFHLFlBQVVBLE9BQUksSUFBRztBQUFDLHNCQUFFLEtBQUcsR0FBR0wsSUFBRSxHQUFHLEdBQUU4aUIsSUFBRzlpQixJQUFFLEVBQUU7QUFBRSxzQkFBSSxJQUFFdWpCLElBQUcsR0FBRSxJQUFHdmpCLEVBQUMsR0FBRU8sTUFBRSxFQUFFLENBQUMsR0FBRVcsS0FBRSxFQUFFLENBQUMsR0FBRUMsS0FBRTRnQixJQUFFL2hCLEVBQUMsR0FBRTRCLEtBQUU7QUFBRSxzQkFBRyxPQUFPVCxNQUFHLFlBQVUsS0FBR0EsS0FBRSxPQUFLLEdBQUU7QUFBQyx1QkFBR25CLElBQUUsQ0FBQyxJQUFHLEdBQUdtQixFQUFDLENBQUMsQ0FBQztBQUFFLHdCQUFJVSxNQUFFLEdBQUc3QixJQUFFTyxLQUFFVyxFQUFDLEdBQUVZLE1BQUUsR0FBRzlCLElBQUU2QixJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVHLE1BQUVILElBQUUsQ0FBQztBQUFFLG9CQUFBRixLQUFFO0FBQUEsa0JBQUM7QUFBQyxzQkFBRyxDQUFDQTtBQUFFLHdCQUFJRyxNQUFFeEIsS0FBRTBCLE1BQUVmO0FBQUUsc0JBQUlnQixNQUFFcWIsSUFBR25kLElBQUU2QixHQUFDLEdBQUUsSUFBRSxHQUFFLElBQUUsR0FBR2pDLElBQUUsR0FBRStCLEtBQUUsR0FBRUcsR0FBQyxHQUFFOUIsS0FBRThCO0FBQUU7QUFBQSxnQkFBUTtBQUFDLHVCQUFNLENBQUMsR0FBRTlCLElBQUUsQ0FBQztBQUFBLGNBQUM7QUFBQSxZQUFDO0FBQUUsWUFBQWlFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFdWpCLElBQUcsR0FBRSxJQUFHeGpCLEVBQUMsR0FBRUUsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFLElBQUUraEIsSUFBRWhpQixFQUFDLEdBQUUsSUFBRTtBQUFFLGtCQUFHLE9BQU8sS0FBRyxZQUFVLE1BQUksSUFBRztBQUFDLG9CQUFJTSxLQUFFLEdBQUcsR0FBRU4sSUFBRUUsSUFBRUMsR0FBQztBQUFFLG9CQUFFO0FBQUEsY0FBQztBQUFDLGtCQUFHLENBQUM7QUFBRSxvQkFBSUUsS0FBRSxHQUFHTCxJQUFFRSxJQUFFQyxHQUFDLEdBQUVHLEtBQUUsR0FBR04sSUFBRUssR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxDQUFDO0FBQUUscUJBQU9DLEdBQUUsQ0FBQztBQUFBLFlBQUMsQ0FBQztBQUFFLGdCQUFJLEtBQUcsU0FBU04sSUFBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLHFCQUFNLENBQUMsR0FBRUEsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFRCxJQUFFRixJQUFFQyxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBQyxHQUFFLE1BQUksU0FBU0QsSUFBRUMsSUFBRTtBQUFDLGtCQUFJQyxLQUFFRDtBQUFFO0FBQUUsMkJBQU87QUFBQyxzQkFBSUUsTUFBRXFqQixJQUFHLEdBQUUsU0FBUyxJQUFHO0FBQUMsd0JBQUksS0FBRyxFQUFFLElBQUcsRUFBRSxNQUFJLElBQUUsSUFBRTtBQUFFLDJCQUFNLENBQUMsR0FBRSxJQUFHLEVBQUUsSUFBRyxHQUFHLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFBQSxrQkFBQyxHQUFFeGpCLEVBQUMsR0FBRSxJQUFFRyxJQUFFLENBQUMsR0FBRSxJQUFFLEVBQUUsQ0FBQyxHQUFFRSxLQUFFLEVBQUUsQ0FBQyxHQUFFQyxLQUFFSCxJQUFFLENBQUM7QUFBRSxzQkFBRzZoQixJQUFFaGlCLEVBQUMsTUFBSSxJQUFHO0FBQUMsd0JBQUksSUFBRTtBQUFFLHNCQUFFLENBQUMsTUFBSSxLQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQUksT0FBSyxHQUFHQSxJQUFFLENBQUMsR0FBRSxJQUFFO0FBQUEsa0JBQUU7QUFBQywyQkFBUVEsTUFBRU4sSUFBRWlCLEtBQUUsT0FBSTtBQUFDLHdCQUFJQyxLQUFFNGdCLElBQUVoaUIsRUFBQztBQUFFLHdCQUFHLE9BQU9vQixNQUFHLFlBQVVBLEdBQUUsQ0FBQyxNQUFJLEdBQUU7QUFBQywwQkFBSVMsS0FBRVQsR0FBRSxDQUFDLEdBQUVVLE1BQUU7QUFBRSwwQkFBR3NDLElBQUV2QyxJQUFFbFcsR0FBRSxLQUFHeVksSUFBRXZDLElBQUUsRUFBRSxNQUFJQyxNQUFFLElBQUcsQ0FBQ0EsT0FBRzJmLElBQUd6aEIsRUFBQyxHQUFFO0FBQUMsMkJBQUdBLEVBQUM7QUFBRSw0QkFBSStCLE1BQUUsR0FBRy9CLElBQUVtQixFQUFDLEdBQUVhLE1BQUU7QUFBRSw0QkFBR3hCLEtBQUU7QUFBQyw4QkFBSTBCLE1BQUUxQixJQUFFLENBQUMsR0FBRTJCLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFNUIsSUFBRSxDQUFDLEdBQUU2QixNQUFFSCxJQUFFLENBQUMsR0FBRUksTUFBRUgsSUFBRSxDQUFDLEdBQUVGLE1BQUVDLElBQUUsQ0FBQztBQUFFLDhCQUFHLEdBQUdDLElBQUUsQ0FBQyxHQUFFLEdBQUcsR0FBRTtBQUFDLGdDQUFJaUUsTUFBRyxHQUFHbkUsS0FBRUYsS0FBRU8sS0FBRWtiLElBQUduYixLQUFFL0IsRUFBQyxDQUFDLEdBQUUrRixNQUFHakU7QUFBRSw0QkFBQUosTUFBRTtBQUFBLDBCQUFDO0FBQUEsd0JBQUM7QUFBQyw0QkFBRyxDQUFDQTtBQUFFLDhCQUFJb0UsTUFBR3JFLEtBQUVzRSxNQUFHN0Y7QUFBRSw0QkFBSThGLE1BQUVGLElBQUcsQ0FBQztBQUFFLDRCQUFHbEMsSUFBR3JDLElBQUUsRUFBRTtBQUFFLDhCQUFJMEUsTUFBRXVkLElBQUc5akIsRUFBQyxHQUFFLEtBQUd1RyxJQUFFLENBQUMsR0FBRUcsTUFBRSxDQUFDLEdBQUVILEdBQUM7QUFBQSxpQ0FBVXliLElBQUVoaUIsRUFBQyxNQUFJLElBQUc7QUFBQyw4QkFBSXdHLE1BQUUsR0FBR3hHLEVBQUM7QUFBRSw2QkFBR0EsRUFBQztBQUFFLDhCQUFJLEtBQUd3RyxLQUFFRSxNQUFFO0FBQUEsd0JBQUM7QUFBTSw4QkFBSUQsTUFBRXFkLElBQUc5akIsRUFBQyxHQUFFLEtBQUd5RyxJQUFFLENBQUMsR0FBRUMsTUFBRSxDQUFDLEdBQUVELEdBQUM7QUFBRSw0QkFBSWpHLE1BQUU2RixLQUFHbEYsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFcWMsSUFBR2xYLEtBQUUsRUFBRSxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUVGLEtBQUdNLEtBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsc0JBQVE7QUFBQSxvQkFBQztBQUFDLHdCQUFJQyxNQUFHcWIsSUFBRWhpQixFQUFDLEdBQUU0RyxNQUFHO0FBQUUsd0JBQUcsT0FBT0QsT0FBSSxVQUFTO0FBQUMsMEJBQUlFLE1BQUdGLE1BQUcsS0FBRyxHQUFFRyxNQUFHO0FBQUUsMEJBQUcsSUFBRUQsUUFBSztBQUFFLDRCQUFHLE1BQUlBLEtBQUc7QUFBQyw4QkFBSWdDLE1BQUc7QUFBRSxrQ0FBT2hDLE1BQUcsS0FBRyxHQUFFO0FBQUEsNEJBQUMsS0FBSztBQUFFLGtDQUFJaUMsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTTtBQUFRLDhCQUFBaEMsTUFBRyxHQUFFK0IsTUFBRztBQUFBLDBCQUFDO0FBQUMsOEJBQUcsQ0FBQ0E7QUFBRyxnQ0FBSUUsTUFBR0Q7QUFBQSx3QkFBRTtBQUFNLDBCQUFBaEMsTUFBRztBQUFBO0FBQU8sNEJBQUlpQyxNQUFHbEMsTUFBRyxNQUFJN0csR0FBRSxFQUFFLElBQUUsSUFBRTtBQUFJLDBCQUFHLENBQUM4RyxLQUFHO0FBQUMsNEJBQUlrQyxNQUFHRDtBQUFHLHdCQUFBbkMsTUFBRztBQUFBLHNCQUFDO0FBQUEsb0JBQUM7QUFBQyx3QkFBRyxDQUFDQTtBQUFHLDBCQUFJb0MsTUFBRztBQUFFLHdCQUFHQSxRQUFLLEtBQUcsR0FBR2hKLEVBQUMsR0FBRSxDQUFDUSxPQUFHLENBQUN3STtBQUFHLDZCQUFPN0g7QUFBRSx3QkFBRyxDQUFDNkg7QUFBRywrQkFBUUMsTUFBRyxHQUFHakosSUFBRW1CLEVBQUMsR0FBRSxLQUFHYixJQUFFLEtBQUdFLFNBQUk7QUFBQyw0QkFBRyxDQUFDO0FBQUcsaUNBQU0sQ0FBQyxHQUFFeUksR0FBRTtBQUFFLDRCQUFJLEtBQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRSxLQUFHc1UsSUFBRyxHQUFHLENBQUMsR0FBRSxFQUFFLEdBQUV2VSxNQUFHLEdBQUcsSUFBR0EsS0FBRyxJQUFHLEVBQUUsR0FBRSxLQUFHLElBQUcsS0FBR0M7QUFBQSxzQkFBRTtBQUFDLHdCQUFJLEtBQUdGLElBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRUcsTUFBRzlJLE9BQUksT0FBSyxLQUFHLElBQUU7QUFBRyxvQkFBQThJLE9BQUksR0FBR25KLElBQUUsQ0FBQyxHQUFFTSxJQUFFLEVBQUUsQ0FBQztBQUFFLDZCQUFRLEtBQUcsR0FBR04sSUFBRW1CLEVBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxJQUFHLEVBQUUsR0FBRSxLQUFHYixJQUFFeUgsS0FBRXZILFNBQUk7QUFBQywwQkFBSXdILE1BQUUsR0FBRyxDQUFDLEdBQUVDLE1BQUUsR0FBRyxDQUFDO0FBQUUsMEJBQUdGLElBQUU7QUFBQyw0QkFBSUcsTUFBR0gsR0FBRSxDQUFDLEdBQUVJLE1BQUdELElBQUcsQ0FBQyxHQUFFLEtBQUdILEdBQUUsQ0FBQyxHQUFFSyxLQUFFRixJQUFHLENBQUMsR0FBRUcsTUFBR0YsSUFBRyxDQUFDLEdBQUUsS0FBR0QsSUFBRyxDQUFDO0FBQUUsNEJBQUcsR0FBR0MsSUFBRyxDQUFDLEdBQUVILEdBQUMsR0FBRTtBQUFDLDhCQUFJTSxNQUFHa1YsSUFBR3BWLElBQUUsRUFBRSxHQUFFLEtBQUcsR0FBRyxJQUFHLElBQUdDLEtBQUdDLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRUwsS0FBRUQsR0FBQyxHQUFFLEtBQUdNLEtBQUdQLEtBQUU7QUFBRztBQUFBLHdCQUFRO0FBQUEsc0JBQUM7QUFBQywwQkFBSTdILEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxJQUFHLENBQUMsR0FBRStILEtBQUVELEdBQUMsR0FBRSxFQUFFLEdBQUVELEVBQUM7QUFBRSwrQkFBUztBQUFBLG9CQUFDO0FBQUEsa0JBQUM7QUFBQSxnQkFBQztBQUFBLFlBQUM7QUFBRSxZQUFBekQsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMscUJBQU8sSUFBSUEsSUFBRSxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxrQkFBSUMsS0FBRStoQixJQUFFaGlCLEVBQUM7QUFBRSxrQkFBRyxPQUFPQyxNQUFHLFVBQVM7QUFBQyxvQkFBRyxNQUFJQSxJQUFFO0FBQUMsc0JBQUdqZSxPQUFJaWUsSUFBRTtBQUFDLHdCQUFHaE8sT0FBR2dPO0FBQUUsOEJBQU9BLEtBQUUsS0FBRyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFPO0FBQUEsd0JBQUksS0FBSztBQUFFLGlDQUFPO0FBQUEsd0JBQUksS0FBSztBQUFFLGlDQUFPO0FBQUEsd0JBQUksS0FBSztBQUFFLGlDQUFPO0FBQUEsc0JBQUc7QUFBQSxrQkFBQyxXQUFTQSxPQUFJLE1BQUlELEdBQUUsRUFBRTtBQUFFLDJCQUFPQSxHQUFFLEVBQUUsS0FBRyxHQUFHQSxJQUFFLENBQUMsR0FBRTtBQUFBLGdCQUFHLFdBQVMsTUFBSUM7QUFBRSwwQkFBT0EsS0FBRSxLQUFHLEdBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUUsNkJBQU87QUFBQSxvQkFBSSxLQUFLO0FBQUUsNkJBQU87QUFBQSxvQkFBSTtBQUFRLDZCQUFPO0FBQUEsa0JBQUc7QUFBQSxjQUFDO0FBQUMscUJBQU87QUFBQSxZQUFDLENBQUMsR0FBRXFFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUMsR0FBRUUsS0FBRWdpQixJQUFHbGlCLEVBQUMsR0FBRUcsTUFBRSxFQUFFLElBQUdILEVBQUM7QUFBRSxrQkFBR0csS0FBRTtBQUFDLG9CQUFJLElBQUVBLElBQUUsQ0FBQztBQUFFLG1CQUFHSCxFQUFDO0FBQUUsb0JBQUksSUFBRXdqQixJQUFHLENBQUMsR0FBRXZqQixFQUFDLEdBQUUsSUFBR0QsRUFBQyxHQUFFSyxLQUFFLEVBQUUsQ0FBQyxHQUFFQyxLQUFFLEVBQUUsQ0FBQyxHQUFFLElBQUU7QUFBRSxvQkFBRyxNQUFJLEdBQUU7QUFBQyxzQkFBSUUsTUFBRUgsR0FBRSxDQUFDLEdBQUVjLEtBQUU7QUFBRSwwQkFBT1gsSUFBRSxDQUFDLEdBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUUsc0JBQUFpaUIsSUFBR3ppQixJQUFFLENBQUMsR0FBRU0sSUFBRSxFQUFFLENBQUMsR0FBRWEsS0FBRTtBQUFFO0FBQUEsb0JBQU0sS0FBSztBQUFHLHNCQUFBWCxJQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFJLEtBQUcsR0FBR1IsSUFBRSxDQUFDLEdBQUVNLElBQUUsRUFBRSxDQUFDLEdBQUVhLEtBQUU7QUFBRTtBQUFBLGtCQUFLO0FBQUMsa0JBQUFBLE9BQUksSUFBRTtBQUFBLGdCQUFFO0FBQUMsdUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRWIsSUFBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUVELElBQUUsR0FBRyxDQUFDLEdBQUVILEVBQUMsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLGNBQUM7QUFBQyxrQkFBSWtCLEtBQUU0Z0IsSUFBRWhpQixFQUFDLEdBQUU2QixLQUFFO0FBQUUsa0JBQUcsT0FBT1QsTUFBRztBQUFTLG9CQUFHblAsU0FBS21QO0FBQUUsc0JBQUlVLE1BQUU7QUFBQSx5QkFBWS9hLFFBQUtxYTtBQUFFLHNCQUFJVSxNQUFFO0FBQUE7QUFBUyxrQkFBQUQsS0FBRTtBQUFBO0FBQU8sZ0JBQUFBLEtBQUU7QUFBRSxrQkFBR0E7QUFBRSxvQkFBSUMsTUFBRTtBQUFFLGtCQUFHLENBQUNBO0FBQUUsdUJBQU8sRUFBRSxJQUFHOUIsRUFBQztBQUFFLGtCQUFJK0IsTUFBRUQsSUFBRSxDQUFDO0FBQUUsaUJBQUc5QixFQUFDO0FBQUUsa0JBQUlnQyxNQUFFd2hCLElBQUcsQ0FBQyxHQUFFdmpCLEVBQUMsR0FBRSxJQUFHRCxFQUFDLEdBQUVrQyxNQUFFRixJQUFFLENBQUMsR0FBRUcsTUFBRUgsSUFBRSxDQUFDO0FBQUUsa0JBQUUsRUFBRSxJQUFHRSxHQUFDLEtBQUcsR0FBR2xDLElBQUUsQ0FBQyxHQUFFa0MsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUUsa0JBQUlFLE1BQUVGLElBQUUsQ0FBQyxHQUFFRyxNQUFFO0FBQUUscUJBQU9ELElBQUUsQ0FBQyxNQUFJLEtBQUcsR0FBR0EsSUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFJb2dCLElBQUd4aUIsSUFBRSxFQUFFLEdBQUVxQyxNQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUYsS0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFSixLQUFFRyxLQUFFLEdBQUUsR0FBRyxDQUFDLEdBQUVoQyxFQUFDLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRW9FLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPLEdBQUdBLElBQUUsRUFBRSxJQUFHQSxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEVBQUUsSUFBR0QsRUFBQztBQUFFLGtCQUFHbWlCLElBQUduaUIsRUFBQztBQUFFLHVCQUFPQztBQUFFLGtCQUFJQyxLQUFFOGhCLElBQUVoaUIsRUFBQyxHQUFFRyxNQUFFO0FBQUUsa0JBQUcsT0FBT0QsTUFBRztBQUFTLG9CQUFHak8sU0FBS2lPO0FBQUUsc0JBQUksSUFBRTtBQUFBLHlCQUFZblosUUFBS21aO0FBQUUsc0JBQUksSUFBRTtBQUFBO0FBQVMsa0JBQUFDLE1BQUU7QUFBQTtBQUFPLGdCQUFBQSxNQUFFO0FBQUUsa0JBQUdBO0FBQUUsb0JBQUksSUFBRTtBQUFFLGtCQUFHLENBQUM7QUFBRSx1QkFBT0Y7QUFBRSxrQkFBSSxJQUFFLEVBQUUsQ0FBQyxHQUFFSSxLQUFFLEdBQUdMLElBQUVDLEVBQUM7QUFBRSxrQkFBRSxFQUFFLElBQUdJLEVBQUMsS0FBRyxHQUFHTCxJQUFFLENBQUMsR0FBRUssR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUUsa0JBQUlDLEtBQUVELEdBQUUsQ0FBQyxHQUFFLElBQUU7QUFBRSxjQUFBQyxHQUFFLENBQUMsTUFBSSxLQUFHLEdBQUdBLEdBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBSWtpQixJQUFHeGlCLElBQUUsRUFBRSxHQUFFLElBQUU7QUFBRyxrQkFBSVEsTUFBRSxHQUFHUixFQUFDO0FBQUUsaUJBQUdBLEVBQUM7QUFBRSxrQkFBSW1CLEtBQUUsR0FBR25CLEVBQUMsR0FBRW9CLEtBQUVvYyxJQUFHbmQsR0FBRSxDQUFDLEdBQUVHLEdBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFWSxJQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRWYsSUFBRSxHQUFFLEdBQUcsR0FBRSxDQUFDLEdBQUVjLEVBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRW1ELElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFLEdBQUdELEVBQUMsR0FBRUUsS0FBRSxJQUFFRixHQUFFLEVBQUUsR0FBRUcsTUFBRSxHQUFFLElBQUVILEdBQUUsRUFBRSxNQUFJLElBQUVBLEtBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUcsS0FBRUgsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsR0FBRUEsR0FBRSxFQUFFLEdBQUVBLEdBQUUsRUFBRSxDQUFDLEdBQUUsSUFBRWdpQixJQUFFLENBQUMsR0FBRTNoQixLQUFFO0FBQUUsa0JBQUcsT0FBTyxLQUFHLFVBQVM7QUFBQyxvQkFBSUMsS0FBRSxJQUFFLEtBQUc7QUFBRSxvQkFBRyxLQUFHQSxPQUFJLEdBQUU7QUFBQyxzQkFBSSxJQUFFO0FBQUUsMEJBQU9BLElBQUU7QUFBQSxvQkFBQyxLQUFLO0FBQUUsMEJBQUdKO0FBQUUsNEJBQUlNLE1BQUUsQ0FBQyxHQUFFLEVBQUUsSUFBRyxDQUFDLENBQUM7QUFBQTtBQUFPLDRCQUFFO0FBQUU7QUFBQSxvQkFBTSxLQUFLO0FBQUUsMEJBQUlBLE1BQUUsQ0FBQyxHQUFFLEVBQUUsSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLG9CQUFNLEtBQUs7QUFBRSwwQkFBSUEsTUFBRSxDQUFDLEdBQUUsRUFBRSxJQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsb0JBQU07QUFBUSwwQkFBRTtBQUFBLGtCQUFDO0FBQUMsc0JBQUcsQ0FBQyxHQUFFO0FBQUMsd0JBQUlXLEtBQUVYO0FBQUUsb0JBQUFILEtBQUU7QUFBQSxrQkFBQztBQUFBLGdCQUFDO0FBQUEsY0FBQztBQUFDLGtCQUFHLENBQUNBO0FBQUUsb0JBQUljLEtBQUVtaEIsSUFBRyxDQUFDLElBQUUsQ0FBQyxHQUFFLEVBQUUsSUFBRyxDQUFDLENBQUMsSUFBRSxFQUFFLElBQUcsQ0FBQztBQUFFLHFCQUFPNWQsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFekUsSUFBRWtCLEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRW1ELElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPLEdBQUdBLElBQUUsRUFBRSxJQUFHQSxFQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHNCQUFPQSxHQUFFLEVBQUUsR0FBRTtBQUFBLGdCQUFDLEtBQUs7QUFBRSxzQkFBSUMsS0FBRSxHQUFFQyxLQUFFO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUlELEtBQUUsR0FBRUMsS0FBRTtBQUFFO0FBQUEsZ0JBQU07QUFBUSxzQkFBSUQsS0FBRSxHQUFFQyxLQUFFO0FBQUEsY0FBQztBQUFDLGtCQUFJQyxNQUFFLEdBQUdILEVBQUMsR0FBRSxJQUFFa2lCLElBQUdsaUIsRUFBQztBQUFFLGNBQUEraUIsSUFBRy9pQixJQUFFLEVBQUU7QUFBRSxrQkFBSSxJQUFFLENBQUMsR0FBRUcsS0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0gsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFSyxLQUFFMmhCLElBQUVoaUIsRUFBQztBQUFFLGtCQUFHLE9BQU9LLE1BQUcsWUFBVSxLQUFHQTtBQUFFLHdCQUFPQSxJQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLHdCQUFJQyxLQUFFTCxLQUFFLEtBQUcsR0FBR0QsSUFBRSxDQUFDLEdBQUVHLEtBQUU3TyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUU2TyxLQUFFLENBQUMsR0FBRWlkLElBQUcsR0FBRSxDQUFDLEdBQUVqZCxLQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFBRywyQkFBT3NFLElBQUcsSUFBRyxHQUFFekUsSUFBRUcsS0FBRUcsRUFBQztBQUFBLGtCQUFFLEtBQUs7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUksSUFBRUosS0FBRSxLQUFHLEdBQUdGLElBQUUsQ0FBQyxHQUFFRyxLQUFFckYsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFcUYsS0FBRSxDQUFDLEdBQUVpZCxJQUFHLEdBQUUsQ0FBQyxHQUFFamQsS0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUcsMkJBQU9zRSxJQUFHLElBQUcsR0FBRXpFLElBQUVHLEtBQUUsQ0FBQztBQUFBLGdCQUFDO0FBQUMscUJBQU9ELEtBQUVxaUIsSUFBRyxLQUFJdmlCLEVBQUMsSUFBRSxHQUFHQSxJQUFFLENBQUMsR0FBRUcsS0FBRXJGLElBQUUsQ0FBQyxHQUFFO0FBQUEsWUFBQyxDQUFDLEdBQUV3SixJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxxQkFBT3dqQixJQUFHLEdBQUUsU0FBU3ZqQixJQUFFO0FBQUMsb0JBQUlDLEtBQUVnaUIsSUFBR2ppQixFQUFDLEdBQUVFLE1BQUUsR0FBR0YsRUFBQztBQUFFLG9CQUFHOGlCLElBQUc5aUIsSUFBRSxFQUFFLEdBQUV5aUIsSUFBR3ppQixJQUFFLEVBQUUsR0FBRTtBQUFDLHNCQUFJLElBQUVtZCxJQUFHLEdBQUUsQ0FBQyxHQUFFamQsS0FBRSxHQUFHLENBQUMsR0FBRSxJQUFFLEdBQUdGLEVBQUM7QUFBRSxrQkFBQStpQixJQUFHL2lCLElBQUUsR0FBRztBQUFFLHNCQUFJSSxLQUFFK2MsSUFBRyxHQUFFLENBQUMsR0FBRSxHQUFFLEdBQUcsQ0FBQztBQUFFLHlCQUFNLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRS9jLElBQUUsR0FBRyxDQUFDLEdBQUVILEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxnQkFBQztBQUFDLG9CQUFJSyxLQUFFNGhCLElBQUdqaUIsRUFBQztBQUFFLGdCQUFBOGlCLElBQUc5aUIsSUFBRSxDQUFDO0FBQUUsb0JBQUksSUFBRSxHQUFHLElBQUcsQ0FBQyxHQUFFSyxFQUFDLEdBQUUsR0FBRSxFQUFFNGpCLEtBQUcsR0FBRyxHQUFFamtCLEVBQUMsQ0FBQyxDQUFDO0FBQUUsdUJBQU84aUIsSUFBRzlpQixJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDLEdBQUVELEVBQUM7QUFBQSxZQUFDLENBQUMsR0FBRXNFLElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFO0FBQUMsa0JBQUksSUFBRUgsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUssS0FBRUosS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUssS0FBRW9FLElBQUcsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRXJFLEVBQUMsR0FBRUgsSUFBRUMsS0FBRSxDQUFDLEdBQUUsSUFBRSxHQUFHRCxFQUFDLEdBQUVNLE1BQUU7QUFBRSxrQkFBRyxHQUFFO0FBQUMsb0JBQUlXLEtBQUUsRUFBRSxDQUFDO0FBQUUsb0JBQUcsT0FBT0EsTUFBRyxZQUFVQSxPQUFJLElBQUc7QUFBQyxzQkFBSUMsS0FBRTtBQUFFLGtCQUFBWixNQUFFO0FBQUEsZ0JBQUM7QUFBQSxjQUFDO0FBQUMsa0JBQUcsQ0FBQ0E7QUFBRSxvQkFBSVksS0FBRTtBQUFFLHVCQUFTUyxHQUFFTSxLQUFFO0FBQUMsb0JBQUlDLE1BQUU4Z0IsSUFBRy9nQixHQUFDLEVBQUUsQ0FBQztBQUFFLHlCQUFTRSxJQUFFQyxLQUFFTCxLQUFFO0FBQUMseUJBQU91QyxHQUFFLEdBQUdsQyxLQUFFN0ssS0FBRyxFQUFFLEdBQUU2SyxLQUFFTCxHQUFDO0FBQUEsZ0JBQUM7QUFBQyx1QkFBT3VDLEdBQUVwQyxLQUFFLEdBQUdELEtBQUU3QixFQUFDLEdBQUUrQixHQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTUCxJQUFFSyxLQUFFQyxLQUFFQyxLQUFFO0FBQUMsb0JBQUlDLE1BQUUsRUFBRSxJQUFHRixHQUFDLEdBQUVILE1BQUVLLElBQUUsQ0FBQyxHQUFFOEQsTUFBRzlELElBQUUsQ0FBQyxHQUFFK0QsTUFBR21YLElBQUdyZCxLQUFFOEIsR0FBQyxHQUFFcUUsTUFBRSxDQUFDLEdBQUVqRSxLQUFFRixLQUFFLENBQUMsR0FBRUYsS0FBRW1FLEdBQUUsR0FBRSxDQUFDLEdBQUVHLE1BQUU7QUFBRSxvQkFBRyxDQUFDbkYsTUFBRyxDQUFDZixJQUFFO0FBQUMsc0JBQUltRyxNQUFFLENBQUMsR0FBRUYsR0FBQztBQUFFLGtCQUFBQyxNQUFFO0FBQUEsZ0JBQUM7QUFBQyxvQkFBRyxDQUFDQTtBQUFFLHNCQUFJQyxNQUFFLENBQUMsSUFBRyxDQUFDLEdBQUVGLEtBQUVELEtBQUdqRixFQUFDLENBQUM7QUFBRSxvQkFBSXFGLE1BQUVwRyxNQUFHZTtBQUFFLHVCQUFPc0QsSUFBRyxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFK0IsR0FBQyxHQUFFckUsS0FBRWpDLEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRWtHLEtBQUdHLEdBQUMsQ0FBQyxDQUFDO0FBQUEsY0FBQztBQUFDLGtCQUFHdEcsR0FBRSxFQUFFO0FBQUUsdUJBQU9JO0FBQUUsa0JBQUl5QixNQUFFaWdCLElBQUU5aEIsRUFBQztBQUFFLGtCQUFHLE9BQU82QixPQUFHLFVBQVM7QUFBQyxvQkFBSUMsTUFBRUQsTUFBRSxLQUFHO0FBQUUsb0JBQUcsSUFBRUMsUUFBSSxHQUFFO0FBQUMsc0JBQUdBLFFBQUk7QUFBSSwyQkFBT0YsSUFBRSxHQUFFNUIsSUFBRTJCLEdBQUUzQixFQUFDLENBQUM7QUFBQSxnQkFBQyxXQUFTOEIsUUFBSSxLQUFHeWYsSUFBR3ZoQixFQUFDLEdBQUU7QUFBQyxzQkFBSWdDLE1BQUUsR0FBRyxTQUFTQyxLQUFFQyxLQUFFO0FBQUMsMEJBQU12QixJQUFHb2lCLEtBQUcsQ0FBQztBQUFBLGtCQUFDLEdBQUUvaUIsRUFBQztBQUFFLHlCQUFPLEdBQUdnQyxLQUFFNUIsSUFBRSxTQUFTNkIsS0FBRTtBQUFDLHdCQUFJQyxNQUFFUCxHQUFFTSxHQUFDO0FBQUUsMkJBQU9MLElBQUUsRUFBRSxJQUFHSyxHQUFDLEdBQUVBLEtBQUVDLEdBQUM7QUFBQSxrQkFBQyxDQUFDO0FBQUEsZ0JBQUM7QUFBQSxjQUFDO0FBQUMscUJBQU85QjtBQUFBLFlBQUMsQ0FBQyxHQUFFZ0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMsa0JBQUksSUFBRUgsS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBRSxxQkFBTyxHQUFHQyxJQUFFeUUsSUFBRyxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRXpFLElBQUVDLElBQUUsQ0FBQyxHQUFFQyxHQUFDLENBQUMsQ0FBQztBQUFBLFlBQUMsQ0FBQyxHQUFFbUUsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMscUJBQU93akIsSUFBRyxHQUFFLFNBQVN2akIsSUFBRTtBQUFDLG9CQUFJQyxLQUFFLEdBQUdELEVBQUMsR0FBRUUsTUFBRStoQixJQUFHamlCLEVBQUM7QUFBRSxvQkFBRzhpQixJQUFHOWlCLElBQUUsRUFBRSxHQUFFQSxHQUFFLEVBQUUsS0FBRytoQixJQUFFL2hCLEVBQUMsTUFBSSxJQUFHO0FBQUMsc0JBQUksSUFBRSxHQUFHQSxFQUFDO0FBQUUscUJBQUdBLEVBQUM7QUFBRSxzQkFBSSxJQUFFbWQsSUFBRyxHQUFHLENBQUMsR0FBRWpkLEdBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVELElBQUUsR0FBRyxDQUFDLEdBQUVHLEtBQUUyaEIsSUFBRS9oQixFQUFDO0FBQUUseUJBQU8sT0FBT0ksTUFBRyxZQUFVQSxHQUFFLENBQUMsTUFBSSxLQUFHLENBQUMrRCxJQUFFL0QsR0FBRSxDQUFDLEdBQUUsRUFBRSxJQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRW1FLEdBQUUsR0FBRyxFQUFFLEdBQUUsR0FBRXZFLEVBQUMsR0FBRSxDQUFDLENBQUMsS0FBR3NpQixJQUFHLEtBQUl0aUIsRUFBQyxHQUFFLEdBQUdBLEVBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLGdCQUFFO0FBQUMsb0JBQUlLLEtBQUUsR0FBR0wsRUFBQyxHQUFFLElBQUUraEIsSUFBRS9oQixFQUFDLEdBQUVPLE1BQUU7QUFBRSxvQkFBRyxPQUFPLEtBQUc7QUFBUyxzQkFBRyxNQUFJO0FBQUcsd0JBQUlXLEtBQUUsRUFBRSxJQUFHbEIsRUFBQztBQUFBLDJCQUFVLE1BQUk7QUFBRyx3QkFBSWtCLEtBQUUsRUFBRSxJQUFHLEdBQUcsR0FBRWxCLEVBQUMsQ0FBQztBQUFBO0FBQU8sb0JBQUFPLE1BQUU7QUFBQTtBQUFPLGtCQUFBQSxNQUFFO0FBQUUsb0JBQUdBO0FBQUUsc0JBQUlXLEtBQUVtaEIsSUFBR3JpQixFQUFDLElBQUUsRUFBRSxJQUFHQSxFQUFDLElBQUUsRUFBRSxJQUFHQSxFQUFDO0FBQUUsb0JBQUltQixLQUFFcUQsSUFBRyxJQUFHLEtBQUksR0FBRyxHQUFFeEUsRUFBQyxHQUFFSyxJQUFFYSxFQUFDLEdBQUVVLEtBQUVtZ0IsSUFBRS9oQixFQUFDLEdBQUU2QixNQUFFO0FBQUUsb0JBQUcsT0FBT0QsTUFBRyxZQUFVQSxHQUFFLENBQUMsTUFBSSxHQUFFO0FBQUMsc0JBQUlFLE1BQUUwQyxJQUFHLElBQUd4RSxJQUFFSyxJQUFFYyxJQUFFUyxHQUFFLENBQUMsQ0FBQztBQUFFLGtCQUFBQyxNQUFFO0FBQUEsZ0JBQUM7QUFBQyxvQkFBRyxDQUFDQTtBQUFFLHNCQUFJQyxNQUFFWDtBQUFFLG9CQUFJWSxNQUFFO0FBQUUsb0JBQUdnZ0IsSUFBRS9oQixFQUFDLE1BQUksR0FBRTtBQUFDLHNCQUFJaUMsTUFBRTtBQUFFLHVCQUFJLENBQUN1ZixJQUFHeGhCLEVBQUMsS0FBRytoQixJQUFFL2hCLEVBQUMsTUFBSSxRQUFNaUMsTUFBRSxJQUFHQSxLQUFFO0FBQUMsd0JBQUlFLE1BQUVMO0FBQUUsb0JBQUFDLE1BQUU7QUFBQSxrQkFBQztBQUFBLGdCQUFDO0FBQUMsb0JBQUcsQ0FBQ0E7QUFBRSxzQkFBSUcsTUFBRStnQixJQUFHampCLEVBQUMsRUFBRSxDQUFDLEdBQUVtQyxNQUFFb0MsR0FBRXJDLEtBQUVKLEtBQUUsU0FBU3NFLEtBQUdDLEtBQUU7QUFBQywyQkFBTzlCLEdBQUUsR0FBRzZCLEtBQUc1TyxLQUFHLEVBQUUsR0FBRTRPLEtBQUdDLEdBQUM7QUFBQSxrQkFBQyxDQUFDO0FBQUUsb0JBQUlqRSxNQUFFb2YsSUFBR3hoQixFQUFDLElBQUUsR0FBRyxHQUFHLFNBQVNvRyxLQUFHQyxLQUFFO0FBQUMsd0JBQU16RixJQUFHb2lCLEtBQUcsQ0FBQztBQUFBLGdCQUFDLEdBQUVoakIsRUFBQyxHQUFFLEdBQUUsRUFBRSxJQUFFLEdBQUVxQyxNQUFFMGYsSUFBRS9oQixFQUFDLEdBQUVnQyxNQUFFO0FBQUUsb0JBQUcsT0FBT0ssT0FBRyxZQUFVQSxRQUFJLEdBQUU7QUFBQyxzQkFBSThELE1BQUcsQ0FBQyxHQUFFLEVBQUUsSUFBR25HLEVBQUMsQ0FBQztBQUFFLGtCQUFBZ0MsTUFBRTtBQUFBLGdCQUFDO0FBQUMsb0JBQUcsQ0FBQ0E7QUFBRSxzQkFBSW1FLE1BQUc7QUFBRSx1QkFBTSxDQUFDLElBQUcsQ0FBQyxHQUFFaEUsS0FBRUMsS0FBRStELEtBQUcsR0FBRyxDQUFDLEdBQUVqRyxHQUFDLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLGNBQUMsR0FBRUgsRUFBQztBQUFBLFlBQUMsQ0FBQztBQUFFLGdCQUFJLE1BQUksU0FBU0EsSUFBRTtBQUFDLGtCQUFJQyxLQUFFaWlCLElBQUdsaUIsRUFBQztBQUFFLGNBQUEraUIsSUFBRy9pQixJQUFFLEVBQUU7QUFBRSx1QkFBUUUsS0FBRSxPQUFJO0FBQUMsb0JBQUlDLE1BQUU2aEIsSUFBRWhpQixFQUFDO0FBQUUsb0JBQUcsT0FBT0csT0FBRyxVQUFTO0FBQUMsc0JBQUksSUFBRTtBQUFFLHNCQUFHQSxRQUFJLE1BQUl2VCxRQUFLdVQsUUFBSSxJQUFFLElBQUcsQ0FBQyxHQUFFO0FBQUMsd0JBQUksSUFBRSxHQUFHRCxFQUFDLEdBQUVHLEtBQUU2aEIsSUFBR2xpQixFQUFDO0FBQUUsb0JBQUEraUIsSUFBRy9pQixJQUFFLEVBQUU7QUFBRSx3QkFBSU0sS0FBRTBoQixJQUFFaGlCLEVBQUMsTUFBSSxJQUFFa2pCLElBQUdsakIsRUFBQyxFQUFFLENBQUMsSUFBRSxHQUFHQSxFQUFDO0FBQUUsMkJBQU0sQ0FBQyxHQUFFLEdBQUVxZCxJQUFHLENBQUMsR0FBRXBkLEVBQUMsR0FBRSxDQUFDLEdBQUVLLEVBQUMsR0FBRUQsSUFBRSxDQUFDLENBQUM7QUFBQSxrQkFBQztBQUFBLGdCQUFDO0FBQUMsb0JBQUksSUFBRTJoQixJQUFFaGlCLEVBQUMsR0FBRVEsTUFBRTtBQUFFLG9CQUFHLE9BQU8sS0FBRyxZQUFVLEVBQUUsQ0FBQyxNQUFJLEtBQUcsQ0FBQzRELElBQUUsRUFBRSxDQUFDLEdBQUVwUSxHQUFFLEdBQUU7QUFBQyxzQkFBSW1OLEtBQUUsR0FBR25CLEVBQUMsR0FBRW9CLEtBQUU4Z0IsSUFBR2xpQixFQUFDO0FBQUUsa0JBQUFnakIsSUFBR2hqQixJQUFFLEdBQUc7QUFBRSxzQkFBSTZCLEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRVYsSUFBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR3BCLEVBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBRSxrQkFBQVEsTUFBRTtBQUFBLGdCQUFDO0FBQUMsb0JBQUcsQ0FBQ0E7QUFBRSxzQkFBSXFCLEtBQUUsQ0FBQyxHQUFFaWlCLElBQUc5akIsRUFBQyxDQUFDO0FBQUUsb0JBQUk4QixNQUFFLENBQUMsR0FBRUQsSUFBRTNCLEVBQUM7QUFBRSxnQkFBQThoQixJQUFFaGlCLEVBQUMsTUFBSSxNQUFJK2lCLElBQUcvaUIsSUFBRSxDQUFDO0FBQUUsb0JBQUlFLEtBQUU0QjtBQUFBLGNBQUM7QUFBQSxZQUFDO0FBQUUsWUFBQXdDLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGNBQUEyaUIsSUFBRzNpQixJQUFFLENBQUM7QUFBRSxrQkFBSUMsS0FBRStoQixJQUFFaGlCLEVBQUMsTUFBSSxLQUFHLENBQUMsR0FBRXdqQixJQUFHLEdBQUUsS0FBSXhqQixFQUFDLENBQUMsSUFBRTtBQUFFLHFCQUFPNGlCLElBQUc1aUIsRUFBQyxHQUFFQztBQUFBLFlBQUMsQ0FBQztBQUFFLGdCQUFJLE1BQUksU0FBU0QsSUFBRTtBQUFDLGtCQUFJQyxLQUFFaWlCLElBQUdsaUIsRUFBQztBQUFFLGNBQUEraUIsSUFBRy9pQixJQUFFLEVBQUU7QUFBRSxrQkFBSUUsS0FBRSxFQUFFZ2tCLEtBQUdsa0IsRUFBQztBQUFFLHFCQUFNLENBQUMsR0FBRUUsSUFBRSxHQUFHLENBQUMsR0FBRUQsRUFBQyxHQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQUEsWUFBQztBQUFFLFlBQUFxRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxxQkFBT3dqQixJQUFHLEdBQUUsU0FBU3ZqQixJQUFFO0FBQUMsb0JBQUlDLEtBQUVnaUIsSUFBR2ppQixFQUFDO0FBQUUsZ0JBQUE4aUIsSUFBRzlpQixJQUFFLENBQUM7QUFBRSx5QkFBUUUsTUFBRSxPQUFJO0FBQUMsc0JBQUksSUFBRTZoQixJQUFFL2hCLEVBQUM7QUFBRSxzQkFBRyxPQUFPLEtBQUcsVUFBUztBQUFDLHdCQUFJLElBQUU7QUFBRSx3QkFBRyxNQUFJLEtBQUdyVCxRQUFLLE1BQUksSUFBRSxJQUFHLENBQUMsR0FBRTtBQUFDLDBCQUFJeVQsS0FBRSxHQUFHRixHQUFDLEdBQUVHLEtBQUU0aEIsSUFBR2ppQixFQUFDO0FBQUUsNkJBQU84aUIsSUFBRzlpQixJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVJLElBQUVnZCxJQUFHLENBQUMsR0FBRW5kLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0QsRUFBQyxDQUFDLEdBQUVLLElBQUUsQ0FBQyxDQUFDO0FBQUEsb0JBQUM7QUFBQSxrQkFBQztBQUFDLHNCQUFJLElBQUUwaEIsSUFBRS9oQixFQUFDLEdBQUVPLE1BQUU7QUFBRSxzQkFBRyxPQUFPLEtBQUcsWUFBVSxNQUFJLElBQUc7QUFBQyx3QkFBSVcsS0FBRSxDQUFDLEdBQUVxaUIsSUFBRyxHQUFFLEtBQUl2akIsRUFBQyxDQUFDO0FBQUUsb0JBQUFPLE1BQUU7QUFBQSxrQkFBQztBQUFDLHNCQUFHLENBQUNBO0FBQUUsd0JBQUlXLEtBQUUsQ0FBQyxHQUFFLEVBQUUraUIsS0FBR2prQixFQUFDLENBQUM7QUFBRSxzQkFBSW1CLEtBQUUsQ0FBQyxHQUFFRCxJQUFFaEIsR0FBQztBQUFFLGtCQUFBNmhCLElBQUUvaEIsRUFBQyxNQUFJLEtBQUc4aUIsSUFBRzlpQixJQUFFLENBQUM7QUFBRSxzQkFBSUUsTUFBRWlCO0FBQUEsZ0JBQUM7QUFBQSxjQUFDLEdBQUVwQixFQUFDO0FBQUEsWUFBQyxDQUFDO0FBQUUsZ0JBQUksS0FBRyxTQUFTQSxJQUFFQyxJQUFFQyxJQUFFQyxLQUFFLEdBQUUsR0FBRTtBQUFDLGtCQUFJRSxLQUFFTCxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFFTSxLQUFFTCxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFFLElBQUVDLEtBQUVBLEdBQUUsQ0FBQyxJQUFFLEdBQUVNLE1BQUUsR0FBRyxHQUFFTCxHQUFDLEdBQUVnQixLQUFFLEVBQUUsR0FBRyxDQUFDLEdBQUVYLEdBQUMsR0FBRVksS0FBRSxHQUFHakIsR0FBQztBQUFFLGNBQUE0aUIsSUFBRzVpQixLQUFFLENBQUM7QUFBRSxrQkFBSTBCLEtBQUUsR0FBRzFCLEdBQUMsR0FBRTJCLE1BQUUwYixJQUFHLEdBQUVwYyxFQUFDLEdBQUVXLE1BQUUsR0FBRyxHQUFFLENBQUMsR0FBRUYsRUFBQyxHQUFFLENBQUMsR0FBRUcsTUFBRSxDQUFDLEdBQUUsR0FBRzdCLEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRWdCLEVBQUMsR0FBRVksR0FBQyxHQUFFRyxNQUFFNUIsS0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFMEIsS0FBRUYsS0FBRSxDQUFDLENBQUMsSUFBRSxDQUFDLElBQUdFLEdBQUM7QUFBRSxxQkFBTzBDLElBQUcsSUFBRyxDQUFDLEdBQUVyRSxFQUFDLEdBQUUsQ0FBQyxHQUFFQyxFQUFDLEdBQUVILEtBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFMkIsS0FBRUksR0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTbEMsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFLEdBQUU7QUFBQyxrQkFBSUUsS0FBRUwsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRU0sS0FBRUwsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRSxJQUFFQyxLQUFFQSxHQUFFLENBQUMsSUFBRSxHQUFFTSxNQUFFd2hCLElBQUU3aEIsR0FBQyxHQUFFZ0IsS0FBRTtBQUFFLGtCQUFHLE9BQU9YLE9BQUcsWUFBVUEsUUFBSSxJQUFHO0FBQUMsb0JBQUlZLEtBQUUsR0FBR2pCLEdBQUMsR0FBRTBCLEtBQUVULEdBQUUsQ0FBQyxHQUFFVSxNQUFFM0IsSUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFFNEIsTUFBRVgsR0FBRSxDQUFDLEVBQUUsQ0FBQztBQUFFLG9CQUFHVSxLQUFFO0FBQUMsc0JBQUlFLE1BQUVGLElBQUUsQ0FBQztBQUFFLGtCQUFBM0IsSUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUU2QixJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFRCxLQUFFRixFQUFDLEdBQUVHLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRUYsSUFBRSxDQUFDLENBQUM7QUFBQSxnQkFBQztBQUFNLHFCQUFHM0IsS0FBRSxDQUFDLEdBQUUwQixJQUFFLEVBQUUsQ0FBQztBQUFFLG9CQUFJTSxNQUFFLENBQUMsR0FBRWYsRUFBQyxHQUFFZ0IsTUFBRVA7QUFBRSxnQkFBQVYsS0FBRTtBQUFBLGNBQUM7QUFBQyxrQkFBRyxDQUFDQTtBQUFFLG9CQUFJZSxNQUFFcWhCLElBQUdwakIsR0FBQyxHQUFFZ0MsTUFBRSxDQUFDLEdBQUVELEdBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsa0JBQUlHLE1BQUVtYixJQUFHLEdBQUVwYixHQUFDLEdBQUVFLE1BQUU7QUFBRSxnQkFBRSxDQUFDLE1BQUksS0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFJLE1BQUlILElBQUUsQ0FBQyxNQUFJLE1BQUksR0FBR2hDLEtBQUUsQ0FBQyxHQUFFa0MsS0FBRSxFQUFFLENBQUMsR0FBRUMsTUFBRTtBQUFHLGtCQUFJTCxNQUFFLENBQUMsR0FBRSxHQUFHOUIsS0FBRSxDQUFDLEdBQUVnQyxLQUFFLENBQUMsR0FBRWlFLE1BQUc5RixLQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUyQixLQUFFSSxLQUFFLENBQUMsQ0FBQyxJQUFFLENBQUMsSUFBR0osR0FBQztBQUFFLHFCQUFPeUMsSUFBRyxJQUFHLENBQUMsR0FBRXJFLEVBQUMsR0FBRSxDQUFDLEdBQUVDLEVBQUMsR0FBRUgsS0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVrQyxLQUFFK0QsR0FBRSxDQUFDLENBQUM7QUFBQSxZQUFDO0FBQUUsWUFBQTlCLElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRSxHQUFFO0FBQUMsa0JBQUksSUFBRUgsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUssS0FBRUosS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUssS0FBRTBoQixJQUFFOWhCLEVBQUM7QUFBRSxrQkFBRyxPQUFPSSxNQUFHO0FBQVMsd0JBQU9BLElBQUU7QUFBQSxrQkFBQyxLQUFLO0FBQUUsMkJBQU8sR0FBR0osRUFBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVHLEVBQUMsR0FBRSxHQUFFSCxJQUFFQyxLQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUcsMkJBQU8sR0FBR0QsRUFBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVHLEVBQUMsR0FBRSxHQUFFSCxJQUFFQyxLQUFFLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUUsS0FBRyxHQUFHRCxJQUFFLEVBQUUsR0FBRTZpQixJQUFHN2lCLElBQUUsRUFBRTtBQUFFLHdCQUFJLElBQUU4aEIsSUFBRTloQixFQUFDO0FBQUUsd0JBQUcsT0FBTyxLQUFHO0FBQVMsOEJBQU8sR0FBRTtBQUFBLHdCQUFDLEtBQUs7QUFBRSxpQ0FBTztBQUFBLHdCQUFFLEtBQUs7QUFBRSxpQ0FBTyxHQUFHQSxFQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksS0FBSUEsSUFBRUMsS0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFHc2hCLElBQUd2aEIsRUFBQztBQUFFLG1DQUFPO0FBQUU7QUFBQSxzQkFBSztBQUFBLDZCQUFTLEVBQUUsQ0FBQyxNQUFJO0FBQUUsNkJBQU8sR0FBR0EsSUFBRSxFQUFFLEdBQUU7QUFBRSwyQkFBTyxHQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxLQUFJQSxJQUFFQyxLQUFFLENBQUM7QUFBQSxnQkFBQztBQUFBLHVCQUFTRyxHQUFFLENBQUMsTUFBSSxHQUFFO0FBQUMsb0JBQUlFLE1BQUVGLEdBQUUsQ0FBQztBQUFFLHVCQUFPRCxNQUFHLEdBQUdILElBQUUsRUFBRSxHQUFFd0UsSUFBRyxJQUFHLEtBQUksR0FBRXhFLElBQUVDLEtBQUUsQ0FBQyxHQUFFc0UsSUFBRyxJQUFHdkUsSUFBRUMsS0FBRSxHQUFHRCxJQUFFLENBQUMsR0FBRU0sR0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDO0FBQUMscUJBQU87QUFBQSxZQUFDLENBQUMsR0FBRThELElBQUcsSUFBRyxTQUFTdEUsSUFBRUMsSUFBRUMsSUFBRUMsS0FBRTtBQUFDLGtCQUFJLElBQUVILEtBQUVBLEdBQUUsQ0FBQyxJQUFFO0FBQUUscUJBQU8sR0FBR0MsSUFBRXlFLElBQUcsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUV6RSxJQUFFQyxJQUFFLENBQUMsR0FBRUMsR0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRW1FLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLHFCQUFPd2pCLElBQUcsR0FBRSxTQUFTdmpCLElBQUU7QUFBQyxvQkFBSUMsS0FBRSxHQUFHRCxFQUFDLEdBQUVFLE1BQUVELEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQyxHQUFFLElBQUVzakIsSUFBRyxHQUFFLFNBQVNyaEIsS0FBRTtBQUFDLHNCQUFJQyxNQUFFOGYsSUFBRy9mLEdBQUM7QUFBRSxrQkFBQTRnQixJQUFHNWdCLEtBQUUsRUFBRTtBQUFFLHNCQUFJRSxNQUFFLEdBQUdGLEdBQUMsR0FBRUcsTUFBRUQsSUFBRSxDQUFDLEdBQUVKLE1BQUVxRixJQUFHLENBQUMsR0FBRSxHQUFFLENBQUMsR0FBRWxGLEtBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUUsc0JBQUcyZixJQUFFN2YsR0FBQyxNQUFJO0FBQUUsd0JBQUlpRSxNQUFHLEdBQUVDLE1BQUc7QUFBQSx1QkFBTTtBQUFDLHdCQUFJQyxNQUFFMGIsSUFBRTdmLEdBQUMsR0FBRW9FLE1BQUU7QUFBRSx3QkFBRyxPQUFPRCxPQUFHLFlBQVVBLFFBQUksSUFBRztBQUFDLDBCQUFJRyxNQUFFO0FBQUUsc0JBQUFGLE1BQUU7QUFBQSxvQkFBQztBQUFDLHdCQUFHLENBQUNBO0FBQUUsMEJBQUlDLE1BQUUsR0FBR2xFLEtBQUUsR0FBR25DLEtBQUVnQyxHQUFDLENBQUMsR0FBRXNFLE1BQUUsQ0FBQyxHQUFFMGMsSUFBRzNjLEtBQUVoQyxHQUFFLEdBQUcsRUFBRSxHQUFFLEtBQUlnQyxHQUFDLENBQUMsQ0FBQztBQUFFLHdCQUFJSixNQUFHZ2QsS0FBR2poQixLQUFFNmhCLEtBQUc3aEIsR0FBQyxDQUFDLEdBQUVrRSxNQUFHSTtBQUFBLGtCQUFDO0FBQUMsc0JBQUksS0FBRyxHQUFHLEdBQUV0RSxHQUFDLEdBQUV1RSxNQUFFdkcsT0FBRyxHQUFHLEVBQUUsR0FBRXdHLE1BQUcsRUFBRSxHQUFHRCxLQUFFcEUsR0FBQyxHQUFFLEVBQUUsR0FBRXNFLE1BQUdvYixJQUFFLEVBQUUsTUFBSSxLQUFHcmIsTUFBRyxHQUFHLElBQUdBLEdBQUUsR0FBRUUsTUFBRyxHQUFHLEVBQUUsR0FBRUMsTUFBR0QsSUFBRyxDQUFDLEdBQUVnQyxNQUFHaEMsSUFBRyxDQUFDO0FBQUUsc0JBQUdDO0FBQUcsd0JBQUlnQyxNQUFHLEdBQUcsSUFBR2hDLEdBQUUsR0FBRWlDLE1BQUdGO0FBQUE7QUFBUSx3QkFBSUMsTUFBR2hDLEtBQUdpQyxNQUFHc2EsSUFBRyxJQUFHeGEsR0FBRTtBQUFFLHlCQUFNLENBQUMsR0FBRXhDLEtBQUdPLEtBQUd0RSxLQUFFd0csS0FBR0MsS0FBRzNDLEtBQUduRSxHQUFDO0FBQUEsZ0JBQUMsR0FBRWhDLEVBQUMsR0FBRUksS0FBRSxFQUFFLENBQUMsR0FBRUMsS0FBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRUEsR0FBRSxDQUFDLEdBQUVHLE1BQUVILEdBQUUsQ0FBQyxHQUFFYyxLQUFFZCxHQUFFLENBQUMsR0FBRWUsS0FBRWYsR0FBRSxDQUFDLEdBQUV3QixLQUFFeEIsR0FBRSxDQUFDLEdBQUV5QixNQUFFekIsR0FBRSxDQUFDLEdBQUUwQixNQUFFLEVBQUUsQ0FBQyxHQUFFQyxNQUFFLEdBQUcvQixJQUFFRSxLQUFFRyxJQUFFLEdBQUUsR0FBRyxDQUFDLENBQUMsR0FBRTRCLE1BQUVGLElBQUUsQ0FBQztBQUFFLHVCQUFPLEdBQUcvQixJQUFFK0IsSUFBRSxDQUFDLEdBQUV4QixLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxLQUFFLEdBQUUwQixLQUFFL0IsS0FBRUcsSUFBRXdCLEtBQUVELElBQUVULElBQUUsR0FBRyxDQUFDLEdBQUVELEVBQUMsR0FBRSxHQUFFLENBQUMsR0FBRVksR0FBQyxDQUFDO0FBQUEsY0FBQyxHQUFFL0IsRUFBQztBQUFBLFlBQUMsQ0FBQyxHQUFFc0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsc0JBQU9ELElBQUU7QUFBQSxnQkFBQyxLQUFLO0FBQUUsa0JBQUF1aUIsSUFBR3hpQixJQUFFLEVBQUU7QUFBRSxzQkFBRztBQUFDLHdCQUFJRyxNQUFFLEdBQUd5QyxJQUFHLEdBQUcsS0FBSTFDLEVBQUMsQ0FBQyxDQUFDLEdBQUUsSUFBRUM7QUFBQSxrQkFBQyxTQUFPMEIsSUFBRTtBQUFDLHdCQUFJLElBQUUwQyxJQUFHMUMsRUFBQztBQUFFLHdCQUFHLEVBQUUsQ0FBQyxNQUFJOEM7QUFBRyw0QkFBTTlELElBQUcsR0FBRSxDQUFDO0FBQUUsd0JBQUksSUFBRSxHQUFHLEdBQUcsS0FBSVgsRUFBQyxDQUFDO0FBQUEsa0JBQUM7QUFBQztBQUFBLGdCQUFNLEtBQUs7QUFBRSxrQkFBQXNpQixJQUFHeGlCLElBQUUsRUFBRTtBQUFFLHNCQUFHO0FBQUMsd0JBQUlLLEtBQUUsR0FBR0gsRUFBQyxHQUFFLElBQUVHO0FBQUEsa0JBQUMsU0FBT3dCLElBQUU7QUFBQyx3QkFBSXZCLEtBQUVpRSxJQUFHMUMsRUFBQztBQUFFLHdCQUFHdkIsR0FBRSxDQUFDLE1BQUlxRTtBQUFHLDRCQUFNOUQsSUFBR1AsSUFBRSxDQUFDO0FBQUUsd0JBQUksSUFBRSxHQUFHLEdBQUcsS0FBSUosRUFBQyxDQUFDO0FBQUEsa0JBQUM7QUFBQztBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBRztBQUFDLHdCQUFJLElBQUUsR0FBR0EsRUFBQyxHQUFFLElBQUU7QUFBQSxrQkFBQyxTQUFPMkIsSUFBRTtBQUFDLHdCQUFJckIsTUFBRStELElBQUcxQyxFQUFDO0FBQUUsd0JBQUdyQixJQUFFLENBQUMsTUFBSW1FO0FBQUcsNEJBQU05RCxJQUFHTCxLQUFFLENBQUM7QUFBRSx3QkFBSSxJQUFFLEdBQUcsR0FBRyxLQUFJTixFQUFDLENBQUM7QUFBQSxrQkFBQztBQUFDO0FBQUEsZ0JBQU07QUFBUSxzQkFBRztBQUFDLHdCQUFJaUIsS0FBRSxHQUFHeUIsSUFBRzFDLEVBQUMsQ0FBQyxHQUFFLElBQUVpQjtBQUFBLGtCQUFDLFNBQU9VLElBQUU7QUFBQyx3QkFBSVQsS0FBRW1ELElBQUcxQyxFQUFDO0FBQUUsd0JBQUdULEdBQUUsQ0FBQyxNQUFJdUQ7QUFBRyw0QkFBTTlELElBQUdPLElBQUUsQ0FBQztBQUFFLHdCQUFJLElBQUUsR0FBRyxHQUFHLEtBQUlsQixFQUFDLENBQUM7QUFBQSxrQkFBQztBQUFBLGNBQUM7QUFBQyxxQkFBTzZpQixJQUFHL2lCLElBQUUsQ0FBQyxHQUFFQyxJQUFFQyxFQUFDLENBQUMsR0FBRTtBQUFBLFlBQUMsQ0FBQyxHQUFFb0UsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMsa0JBQUlDLEtBQUUsR0FBR0QsRUFBQyxHQUFFRSxLQUFFO0FBQUUsa0JBQUdELE9BQUksS0FBR3RaLFFBQUt3ZCxJQUFHbkUsSUFBRUMsS0FBRSxJQUFFLENBQUMsR0FBRTtBQUFDLG9CQUFJRSxNQUFFMEgsSUFBRzdILElBQUUsR0FBRUMsS0FBRSxJQUFFLENBQUM7QUFBRSxnQkFBQUMsS0FBRTtBQUFBLGNBQUM7QUFBQyxrQkFBRyxDQUFDQTtBQUFFLG9CQUFJQyxNQUFFSDtBQUFFLHFCQUFPRztBQUFBLFlBQUMsQ0FBQyxHQUFFbUUsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsa0JBQUlDLE1BQUUsR0FBRyxFQUFFLElBQUdELEVBQUMsQ0FBQztBQUFFLHFCQUFPNmlCLElBQUcvaUIsSUFBRSxDQUFDLEdBQUVDLElBQUVDLEVBQUMsQ0FBQyxHQUFFQztBQUFBLFlBQUMsQ0FBQyxHQUFFbUUsSUFBRyxJQUFHLFNBQVN0RSxJQUFFO0FBQUMsa0JBQUlDLEtBQUUsR0FBR0QsRUFBQyxHQUFFRSxLQUFFZ2lCLElBQUdsaUIsRUFBQyxHQUFFRyxNQUFFNmhCLElBQUVoaUIsRUFBQztBQUFFLGtCQUFHLE9BQU9HLE9BQUc7QUFBUyx3QkFBT0EsS0FBRTtBQUFBLGtCQUFDLEtBQUs7QUFBRSx3QkFBSSxJQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUVILEVBQUM7QUFBRSwyQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLENBQUMsSUFBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsMkJBQU0sQ0FBQyxHQUFFLEVBQUUsSUFBR0EsRUFBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJLElBQUV3akIsSUFBRyxHQUFFLElBQUd4akIsRUFBQyxHQUFFSyxLQUFFLEVBQUUsQ0FBQztBQUFFLDJCQUFNLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFPLEdBQUdMLEVBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0YsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFPLEdBQUdBLEVBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsSUFBRyxHQUFHLENBQUMsR0FBRUMsRUFBQyxHQUFFLENBQUMsR0FBRSxHQUFHRixFQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFHLDJCQUFNLENBQUMsR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFFQSxFQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUcsd0JBQUlNLEtBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRU4sRUFBQyxHQUFFLElBQUVNLEdBQUUsQ0FBQyxHQUFFRSxNQUFFRixHQUFFLENBQUMsR0FBRWEsS0FBRTFlLE9BQUksRUFBRSxDQUFDLElBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUUsQ0FBQyxJQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQUUsMkJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRStkLEtBQUVXLEVBQUMsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBQSxrQkFBRyxLQUFLO0FBQUcsMkJBQU8sR0FBR25CLEVBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsSUFBRyxDQUFDLEdBQUVFLFFBQUksS0FBRyxJQUFFLEdBQUUsR0FBRyxDQUFDLEdBQUVELEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0YsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFBLGtCQUFHLEtBQUs7QUFBSSwyQkFBTSxDQUFDLEdBQUUsRUFBRSxJQUFHQSxFQUFDLENBQUM7QUFBQSxnQkFBQztBQUFBO0FBQU0sd0JBQU9HLElBQUUsQ0FBQyxHQUFFO0FBQUEsa0JBQUMsS0FBSztBQUFFLHdCQUFJaUIsS0FBRWpCLElBQUUsQ0FBQyxHQUFFMEIsS0FBRSxHQUFHLElBQUc3QixJQUFFRyxJQUFFLENBQUMsR0FBRWlCLEVBQUM7QUFBRSwyQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFbkIsSUFBRSxDQUFDLElBQUcsQ0FBQyxHQUFFNEIsSUFBRVQsSUFBRSxHQUFHLENBQUMsR0FBRWxCLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0YsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJOEIsTUFBRTNCLElBQUUsQ0FBQyxHQUFFNEIsTUFBRSxHQUFHLElBQUcvQixJQUFFRyxJQUFFLENBQUMsR0FBRTJCLEdBQUM7QUFBRSwyQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFN0IsSUFBRSxDQUFDLElBQUcsQ0FBQyxHQUFFOEIsS0FBRUQsS0FBRSxHQUFHLENBQUMsR0FBRTVCLEVBQUMsR0FBRSxDQUFDLEdBQUUsR0FBR0YsRUFBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsa0JBQUUsS0FBSztBQUFFLHdCQUFJZ0MsTUFBRTdCLElBQUUsQ0FBQyxHQUFFK0IsTUFBRUYsSUFBRSxDQUFDLEdBQUVHLE1BQUVILElBQUUsQ0FBQyxHQUFFSSxNQUFFSixJQUFFLENBQUM7QUFBRSxvQkFBQUEsSUFBRSxDQUFDLEtBQUd3Z0IsSUFBR3hpQixJQUFFLEVBQUUsR0FBRSxHQUFHQSxFQUFDO0FBQUUsd0JBQUlxQyxNQUFFLEdBQUcsQ0FBQyxHQUFFbkMsRUFBQyxHQUFFLENBQUMsR0FBRSxHQUFHRixFQUFDLENBQUMsR0FBRSxDQUFDLEdBQUVzQyxNQUFFdEMsR0FBRSxFQUFFLEdBQUVpQyxNQUFFSyxJQUFFLENBQUMsR0FBRThELE1BQUc5RCxJQUFFLENBQUMsR0FBRStELE1BQUc7QUFBRSx3QkFBR3BFLEtBQUU7QUFBQywwQkFBSXFFLE1BQUVyRSxJQUFFLENBQUM7QUFBRSwwQkFBRyxHQUFHcUUsS0FBRW5FLEdBQUM7QUFBRSw0QkFBSW9FLE1BQUUsQ0FBQyxJQUFHLENBQUMsR0FBRXBFLEtBQUVDLEtBQUUsR0FBR2tFLEdBQUMsR0FBRSxHQUFFcEUsS0FBRUcsR0FBQyxDQUFDO0FBQUE7QUFBTyx3QkFBQWdFLE1BQUc7QUFBQSxvQkFBQztBQUFNLHNCQUFBQSxNQUFHO0FBQUUsd0JBQUdBLEtBQUc7QUFBQywwQkFBSUcsTUFBRTtBQUFFLDBCQUFHSixLQUFHO0FBQUMsNEJBQUlLLE1BQUVMLElBQUcsQ0FBQztBQUFFLDRCQUFHLEdBQUdLLEtBQUV0RSxHQUFDLEdBQUU7QUFBQyw4QkFBSW9FLE1BQUUsQ0FBQyxJQUFHLENBQUMsR0FBRXBFLEtBQUVDLEtBQUUsR0FBR3FFLEdBQUMsR0FBRSxHQUFFdkUsS0FBRUcsR0FBQyxDQUFDO0FBQUUsMEJBQUFtRSxNQUFFO0FBQUEsd0JBQUM7QUFBQSxzQkFBQztBQUFDLDBCQUFHLENBQUNBO0FBQUUsNEJBQUlELE1BQUUsQ0FBQyxJQUFHLENBQUMsR0FBRXBFLEtBQUVELEtBQUVHLEdBQUMsQ0FBQztBQUFBLG9CQUFDO0FBQUMsMkJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRUQsS0FBRW1FLEdBQUMsQ0FBQztBQUFBLGtCQUFFLEtBQUs7QUFBRSx3QkFBSSxLQUFHL0IsR0FBRSxJQUFHeEUsSUFBRUcsSUFBRSxDQUFDLENBQUM7QUFBRSwyQkFBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxrQkFBRSxLQUFLO0FBQUUsd0JBQUcsQ0FBQ2lFLElBQUVqRSxJQUFFLENBQUMsR0FBRSxFQUFFLEtBQUcyaEIsSUFBRyxHQUFFOWhCLEVBQUMsTUFBSTtBQUFHLDZCQUFNLENBQUMsR0FBRSxFQUFFLEdBQUcsRUFBRSxHQUFFQSxFQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFLO0FBQUMsa0JBQUdxaUIsSUFBR3JpQixFQUFDLEdBQUU7QUFBQyxvQkFBSTBHLE1BQUVsQyxHQUFFLEdBQUcsRUFBRSxHQUFFLEdBQUV4RSxFQUFDO0FBQUUsdUJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRTBHLElBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRUEsR0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDO0FBQUMsY0FBQTZiLElBQUcsR0FBRXZpQixFQUFDO0FBQUUsa0JBQUkyRyxNQUFHO0FBQUUscUJBQU8sT0FBT3hHLE9BQUcsWUFBVUEsSUFBRSxDQUFDLE1BQUksTUFBSSxHQUFHSCxFQUFDLEdBQUUyRyxNQUFHLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRTFHLElBQUUsQ0FBQyxJQUFHLEdBQUcsQ0FBQyxHQUFFQyxFQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVvRSxJQUFHLElBQUcsU0FBU3RFLElBQUU7QUFBQyxxQkFBTyxHQUFHQSxJQUFFLEVBQUUsSUFBR0EsRUFBQyxDQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVzRSxJQUFHLElBQUcsU0FBU3RFLElBQUVDLElBQUU7QUFBQyxrQkFBSUMsS0FBRUQsR0FBRSxDQUFDLEdBQUVFLE1BQUVGLEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQyxHQUFFLElBQUVBLEdBQUUsQ0FBQyxHQUFFSSxLQUFFNmhCLElBQUdsaUIsRUFBQztBQUFFLGNBQUEraUIsSUFBRy9pQixJQUFFLENBQUMsR0FBRUMsRUFBQyxDQUFDO0FBQUUsa0JBQUlLLEtBQUUsQ0FBQyxHQUFFSCxLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsR0FBRSxDQUFDLEdBQUVELEVBQUMsQ0FBQztBQUFFLGtCQUFHQTtBQUFFLG9CQUFJLElBQUUsR0FBRU0sTUFBRSxDQUFDLEdBQUVGLElBQUUsQ0FBQyxHQUFFYSxLQUFFaEI7QUFBQTtBQUFPLHlCQUFRaUIsS0FBRSxDQUFDLEdBQUVkLElBQUUsQ0FBQyxHQUFFdUIsS0FBRSxPQUFJO0FBQUMsc0JBQUlDLE1BQUUsRUFBRSxHQUFHLENBQUMsR0FBRTlCLEVBQUMsR0FBRStCLE1BQUUsQ0FBQyxHQUFFRCxLQUFFRCxFQUFDLEdBQUVHLE1BQUVnZ0IsSUFBRWhpQixFQUFDLEdBQUVrQyxNQUFFO0FBQUUsc0JBQUcsT0FBT0YsT0FBRyxZQUFVQSxRQUFJLEdBQUU7QUFBQyxvQkFBQTJnQixJQUFHM2lCLElBQUUsQ0FBQztBQUFFLHdCQUFJbUMsTUFBRTZmLElBQUVoaUIsRUFBQyxHQUFFb0MsTUFBRTtBQUFFLHdCQUFHLE9BQU9ELE9BQUcsWUFBVUEsSUFBRSxDQUFDLE1BQUk7QUFBRSxzQkFBQUMsTUFBRTtBQUFBLHlCQUFNO0FBQUMsMEJBQUlDLE1BQUVGLElBQUUsQ0FBQyxHQUFFRyxNQUFFRCxJQUFFLENBQUMsR0FBRUosTUFBRUksSUFBRSxDQUFDLEdBQUUrRCxNQUFHL0QsSUFBRSxDQUFDLEdBQUVnRSxNQUFHaEUsSUFBRSxDQUFDO0FBQUUseUJBQUdyQyxFQUFDLEdBQUU0aUIsSUFBRzVpQixFQUFDO0FBQUUsMEJBQUlzRyxNQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVyRSxLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVtRSxLQUFHQyxHQUFFLEdBQUUvRCxHQUFDLENBQUMsR0FBRWxCLEVBQUM7QUFBRSwwQkFBRyxDQUFDa0IsS0FBRTtBQUFDLDRCQUFJbEIsS0FBRWtGLEtBQUV6RSxLQUFFRTtBQUFFO0FBQUEsc0JBQVE7QUFBQywwQkFBSXdFLE1BQUUsR0FBR3hFLEdBQUMsR0FBRXlFLE1BQUUsQ0FBQyxHQUFFdkUsS0FBRSxHQUFHcUUsR0FBQyxHQUFFQyxHQUFDO0FBQUUsc0JBQUFyRSxNQUFFO0FBQUEsb0JBQUM7QUFBQyx3QkFBR0U7QUFBRSw0QkFBTXZCLElBQUcsQ0FBQyxHQUFFZ0UsS0FBRyxHQUFHLEdBQUUsQ0FBQztBQUFBLGtCQUFDO0FBQUMsc0JBQUcsQ0FBQzNDLEtBQUU7QUFBQyxvQkFBQXFnQixJQUFHLEtBQUl2aUIsRUFBQztBQUFFLHdCQUFJeUcsTUFBRSxDQUFDLEdBQUUzRSxJQUFFLENBQUMsR0FBRSxHQUFHLEdBQUUsS0FBRyxHQUFHQyxHQUFDLEdBQUUyRSxNQUFFLEdBQUcsQ0FBQyxHQUFFRCxLQUFFckYsRUFBQyxDQUFDLEdBQUVvRixNQUFFLENBQUMsR0FBRTFFLElBQUUsQ0FBQyxHQUFFNEUsS0FBRSxFQUFFO0FBQUEsa0JBQUM7QUFBQyxzQkFBSSxJQUFFRixJQUFFLENBQUMsR0FBRWhHLE1BQUVnRyxJQUFFLENBQUMsR0FBRXJGLEtBQUVxRixJQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFLO0FBQUMsa0JBQUlHLE1BQUcsR0FBRzNHLEVBQUMsR0FBRTRHLE1BQUc0VyxJQUFHcmQsS0FBRWdCLEVBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUV5RixLQUFHLENBQUMsR0FBRXBHLEtBQUUsR0FBRSxHQUFHLENBQUMsR0FBRUgsRUFBQyxHQUFFLENBQUMsR0FBRXNHLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLFlBQUMsQ0FBQyxHQUFFckMsSUFBRyxJQUFHLFNBQVN0RSxJQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMsa0JBQUksSUFBRStpQixJQUFHbGpCLEVBQUMsRUFBRSxDQUFDLEdBQUUsSUFBRXdFLEdBQUUsR0FBRXRFLElBQUUsU0FBU0ksSUFBRSxHQUFFO0FBQUMsdUJBQU9rRSxHQUFFLEdBQUdsRSxJQUFFN0ksS0FBRyxDQUFDLEdBQUU2SSxJQUFFLENBQUM7QUFBQSxjQUFDLENBQUMsR0FBRUQsS0FBRW1FLEdBQUUsSUFBR3hFLElBQUVHLEdBQUM7QUFBRSxxQkFBTSxDQUFDLEdBQUVxZCxJQUFHdmQsSUFBRUksR0FBRSxDQUFDLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxZQUFDLENBQUMsR0FBRWlFLElBQUcsSUFBRyxTQUFTdEUsSUFBRTtBQUFDLGtCQUFJQyxLQUFFaWlCLElBQUdsaUIsRUFBQyxHQUFFRSxLQUFFc2pCLElBQUcsR0FBRSxTQUFTbGpCLElBQUU7QUFBQyxnQkFBQXlpQixJQUFHemlCLElBQUUsQ0FBQztBQUFFLG9CQUFJLElBQUUsR0FBR0EsRUFBQyxHQUFFRSxNQUFFLEVBQUUwakIsS0FBRzVqQixFQUFDLEdBQUVhLEtBQUU2Z0IsSUFBRTFoQixFQUFDLEdBQUVjLEtBQUU7QUFBRSxvQkFBRyxPQUFPRCxNQUFHO0FBQVMsc0JBQUdBLE9BQUk7QUFBRSx3QkFBSVUsS0FBRSxDQUFDLEdBQUUsR0FBRyxJQUFHdkIsSUFBRSxHQUFFLENBQUMsR0FBRUUsS0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLDJCQUFVVyxPQUFJO0FBQUcsd0JBQUlVLEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRXJCLEtBQUUsR0FBR0YsRUFBQyxHQUFFLENBQUMsQ0FBQztBQUFBO0FBQU8sb0JBQUFjLEtBQUU7QUFBQTtBQUFPLGtCQUFBQSxLQUFFO0FBQUUsb0JBQUdBO0FBQUUsc0JBQUlTLEtBQUUsQ0FBQyxHQUFFckIsR0FBQztBQUFFLHVCQUFPdWlCLElBQUd6aUIsSUFBRSxDQUFDLEdBQUV1QjtBQUFBLGNBQUMsR0FBRTdCLEVBQUMsR0FBRUcsTUFBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRUEsR0FBRSxDQUFDLEdBQUUsSUFBRSxHQUFHRixFQUFDLEdBQUVLLEtBQUVGLElBQUUsQ0FBQyxNQUFJLElBQUVBLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRSxHQUFFLENBQUMsSUFBR0EsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFFLHFCQUFPLEdBQUcsSUFBRyxDQUFDLEdBQUVGLEVBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFSSxFQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUVpRSxJQUFHLElBQUcsU0FBU3RFLElBQUVDLElBQUVDLElBQUU7QUFBQyxrQkFBSUMsTUFBRUQsR0FBRSxDQUFDLEdBQUUsSUFBRUEsR0FBRSxDQUFDLEdBQUUsSUFBRUYsS0FBRUEsR0FBRSxDQUFDLElBQUUsR0FBRUssS0FBRUosS0FBRUEsR0FBRSxDQUFDLElBQUU7QUFBRSx1QkFBU0ssR0FBRStKLEtBQUc7QUFBQyx1QkFBT2lULElBQUdqVCxLQUFHLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVoSyxFQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsY0FBQztBQUFDLHVCQUFTLEVBQUVnSyxLQUFHO0FBQUMsdUJBQU8sR0FBR0EsS0FBRyxHQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFaEssRUFBQyxHQUFFLENBQUMsQ0FBQztBQUFBLGNBQUM7QUFBQyxzQkFBT0YsSUFBRSxDQUFDLEdBQUU7QUFBQSxnQkFBQyxLQUFLO0FBQUUsc0JBQUlLLE1BQUVMLElBQUUsQ0FBQyxHQUFFZ0IsS0FBRSxFQUFFWCxJQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVXLEVBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJQyxLQUFFakIsSUFBRSxDQUFDLEdBQUUwQixLQUFFVCxHQUFFLEVBQUUsR0FBRVUsTUFBRXhCLEdBQUVjLEdBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVVLEtBQUVELEVBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJRSxNQUFFNUIsSUFBRSxDQUFDLEdBQUU2QixNQUFFMUIsR0FBRXlCLElBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQyxHQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSUUsTUFBRS9CLElBQUUsQ0FBQyxHQUFFZ0MsTUFBRTdCLEdBQUU0QixJQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUMsR0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUlDLE1BQUVqQyxJQUFFLENBQUMsR0FBRWtDLE1BQUUvQixHQUFFOEIsSUFBRSxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVDLEdBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJQyxNQUFFbkMsSUFBRSxDQUFDLEdBQUU4QixNQUFFM0IsR0FBRWdDLElBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFTCxHQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSW1FLE1BQUdqRyxJQUFFLENBQUMsR0FBRWtHLE1BQUcvRixHQUFFOEYsSUFBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFFLHNCQUFJQyxNQUFFbkcsSUFBRSxDQUFDLEdBQUVvRyxNQUFFRCxJQUFFLEVBQUUsR0FBRUUsTUFBRWxHLEdBQUVnRyxJQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFQSxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxHQUFFRSxLQUFFRCxHQUFDLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRSxzQkFBSUUsTUFBRXRHLElBQUUsQ0FBQyxHQUFFLEtBQUdzRyxJQUFFLENBQUMsR0FBRUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdyRyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFb0csS0FBRSxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUVDLEdBQUUsQ0FBQyxDQUFDO0FBQUU7QUFBQSxnQkFBTSxLQUFLO0FBQUUsc0JBQUlDLE1BQUd6RyxJQUFFLENBQUMsR0FBRTBHLE1BQUd2RyxHQUFFc0csSUFBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSUMsTUFBRzNHLElBQUUsQ0FBQyxHQUFFMEksTUFBR3ZJLEdBQUV3RyxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRStCLEdBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJQyxNQUFHM0ksSUFBRSxDQUFDLEdBQUU0SSxNQUFHekksR0FBRXdJLElBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSUMsTUFBRzdJLElBQUUsQ0FBQyxHQUFFOEksTUFBRzNJLEdBQUUwSSxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHOUksSUFBRSxDQUFDLEdBQUUsS0FBR0csR0FBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHLENBQUMsSUFBR0EsR0FBRUgsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUdBLElBQUUsQ0FBQyxHQUFFK0ksTUFBRzVJLEdBQUUsR0FBRyxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLEdBQUU0SSxHQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHL0ksSUFBRSxDQUFDLEdBQUUsS0FBR0csR0FBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxJQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBRTtBQUFBLGdCQUFNLEtBQUs7QUFBRyxzQkFBSSxLQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHRyxHQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFFO0FBQUEsZ0JBQU0sS0FBSztBQUFHLHNCQUFJLEtBQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdHLEdBQUUsR0FBRyxDQUFDLENBQUMs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QUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUVDLEtBQUU7QUFBQyxxQkFBT0gsR0FBRSxJQUFJQyxJQUFFQyxJQUFFQyxHQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0gsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRXFrQixNQUFHLFNBQVN0a0IsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsR0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMs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RXFqQixJQUFHdGpCLEVBQUM7QUFBRSxxQkFBTyxHQUFHRCxJQUFFQyxJQUFFQyxFQUFDLEdBQUVBO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFQyxJQUFFQyxLQUFFO0FBQUMscUJBQU9ILEdBQUUsSUFBSUMsSUFBRUMsSUFBRUMsR0FBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNILEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUVDLElBQUU7QUFBQyxxQkFBT0YsR0FBRSxJQUFJQyxJQUFFQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0YsR0FBRUMsSUFBRUMsSUFBRTtBQUFDLHFCQUFPRixHQUFFLElBQUlDLElBQUVDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRixHQUFFQyxJQUFFQyxJQUFFO0FBQUMscUJBQU9GLEdBQUUsSUFBSUMsSUFBRUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNGLEdBQUVDLElBQUU7QUFBQyxxQkFBT0QsR0FBRSxJQUFJQyxFQUFDO0FBQUEsWUFBQyxHQUFFLEtBQUcsU0FBU0QsR0FBRUMsSUFBRTtBQUFDLHFCQUFPRCxHQUFFLElBQUlDLEVBQUM7QUFBQSxZQUFDLEdBQUUsS0FBRyxTQUFTRCxHQUFFQyxJQUFFO0FBQUMscUJBQU9ELEdBQUUsSUFBSUMsRUFBQztBQUFBLFlBQUMsR0FBRSxLQUFHLFNBQVNELEdBQUVDLElBQUVDLElBQUVD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RSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHUyxJQUFHLENBQUMsTUFBSSxJQUFFQSxJQUFHLENBQUMsSUFBRSxHQUFHLEdBQUcsR0FBRSxLQUFHK0UsSUFBRzJILElBQUcsRUFBRSxHQUFFLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHOVYsS0FBRyxFQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksS0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWxFLElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR2dGLEtBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWxGLElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRTtBQUFFLGlDQUFPM0MsR0FBRSxLQUFJK0ksS0FBRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJMEgsTUFBRzNILElBQUUsQ0FBQyxHQUFFNEgsTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDO0FBQUUsOEJBQUdDO0FBQUcsZ0NBQUlDLE1BQUdELElBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRUUsTUFBR3JRLElBQUcsSUFBSW9RLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUE7QUFBTyxnQ0FBSUMsTUFBRzJMO0FBQUcsOEJBQUksS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUloYyxJQUFHLEVBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXFRLEdBQUUsR0FBRSxDQUFDLENBQUM7QUFBRSxpQ0FBTzVRLEdBQUUsS0FBSStJLEtBQUUsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqSCxJQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSStPLE1BQUcvSCxJQUFFLENBQUMsR0FBRSxLQUFHK0gsSUFBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQztBQUFFLDhCQUFHLElBQUc7QUFBQyxnQ0FBSUUsTUFBRyxHQUFHLENBQUM7QUFBRSxnQ0FBR0EsSUFBRyxDQUFDLE1BQUk7QUFBRSxrQ0FBSSxLQUFHQSxJQUFHLENBQUMsR0FBRUUsTUFBRzlSLElBQUcsU0FBU3VULEtBQUc7QUFBQyxvQ0FBSUMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdFLE1BQUd3QyxJQUFHekMsSUFBRyxDQUFDLEdBQUVDLElBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFFRCxJQUFHLENBQUMsR0FBRSxLQUFHQyxNQUFHQSxJQUFHLENBQUMsSUFBRUQsS0FBR0UsTUFBRyxHQUFFLEtBQUc7QUFBRSxvQ0FBRyxJQUFHO0FBQUMsc0NBQUlDLE1BQUc7QUFBRSwwQ0FBTyxHQUFHLENBQUMsR0FBRTtBQUFBLG9DQUFDLEtBQUs7QUFBRSwwQ0FBSSxLQUFHeHJCO0FBQUcsc0NBQUF3ckIsTUFBRztBQUFFO0FBQUEsb0NBQU0sS0FBSztBQUFFLDBDQUFJLEtBQUc3MUI7QUFBRyxzQ0FBQTYxQixNQUFHO0FBQUU7QUFBQSxrQ0FBSztBQUFDLHNDQUFHQSxLQUFHO0FBQUMsd0NBQUlDLE1BQUc7QUFBRyxvQ0FBQUYsTUFBRztBQUFBLGtDQUFDO0FBQUEsZ0NBQUM7QUFBQyxvQ0FBRyxDQUFDQTtBQUFHLHNDQUFJRSxNQUFHd0o7QUFBRyxvQ0FBSSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXhKLEdBQUUsR0FBRSxFQUFFLENBQUM7QUFBRSx1Q0FBTy9TLEdBQUUsS0FBSSxJQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcyUyxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSw4QkFBQyxHQUFFLEVBQUU7QUFBQTtBQUFPLGtDQUFJM0IsTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBR0MsSUFBRyxDQUFDLEdBQUVDLE1BQUcsQ0FBQyxHQUFFalIsR0FBRSxLQUFJLElBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR2dSLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsZ0NBQUlFLE1BQUdEO0FBQUEsMEJBQUU7QUFBTSxnQ0FBSUMsTUFBRztBQUFFLDhCQUFHSjtBQUFHLGdDQUFJLEtBQUdBLElBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRTlRLEdBQUUsS0FBSSxHQUFHLENBQUMsR0FBRSxHQUFFLEVBQUUsR0FBRWtSLEdBQUU7QUFBQTtBQUFPLGdDQUFJLEtBQUdBO0FBQUcsa0NBQU8sSUFBRztBQUFBLDRCQUFDLEtBQUs7QUFBRSxrQ0FBSUMsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTTtBQUFRLGtDQUFJQSxNQUFHO0FBQUEsMEJBQUc7QUFBQyw4QkFBSSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTNRLElBQUcsRUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJOUYsSUFBR3lXLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFFLGlDQUFPblIsR0FBRSxLQUFJK0ksS0FBRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTJULElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPeGMsSUFBRyxDQUFDLEdBQUU2SSxLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJc0ksTUFBR3RJLElBQUUsQ0FBQyxHQUFFLEtBQUdzSSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTdRLElBQUc2USxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPcFIsR0FBRSxLQUFJK0ksS0FBRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSXNJLE1BQUd2SSxJQUFFLENBQUMsR0FBRSxLQUFHdUksSUFBRyxDQUFDO0FBQUUsaUNBQU9yUixHQUFFLEtBQUkrSSxLQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdqSCxLQUFHdVAsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUMsTUFBR3hJLElBQUUsQ0FBQyxHQUFFLEtBQUd3SSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXFMLElBQUcxYSxLQUFHcVAsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxpQ0FBT3RSLEdBQUUsS0FBSStJLEtBQUUsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqSCxJQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSSxLQUFHZ0gsSUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUM7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUUsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqSCxJQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUl3USxNQUFHeEosSUFBRSxDQUFDLEdBQUUsS0FBR3dKLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsSUFBR0EsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHcFEsS0FBRyxFQUFFLENBQUMsR0FBRSxFQUFFO0FBQUUsaUNBQU9sQyxHQUFFLEtBQUkrSSxLQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPLEdBQUcsQ0FBQyxHQUFFQSxLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPLEdBQUcsR0FBRSxDQUFDLEdBQUVDLEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsaUNBQU8sR0FBRyxDQUFDLEdBQUVDLEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUl5SixNQUFHekosSUFBRSxDQUFDLEdBQUUsS0FBR3lKLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJaFMsSUFBR2dTLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU92UyxHQUFFLEtBQUkrSSxLQUFFLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJakgsSUFBRyxFQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSx3QkFBRTtBQUFRLDhCQUFJMFEsTUFBRzFKLElBQUUsQ0FBQyxHQUFFLEtBQUcwSixJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWpTLElBQUdpUyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPeFMsR0FBRSxLQUFJK0ksS0FBRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWpILElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsc0JBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBUytHLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsRUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdELElBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJN0ksR0FBRSxLQUFJOEksSUFBRSxDQUFDLEdBQUUsR0FBRSxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk2VCxJQUFHclYsS0FBRzBCLEdBQUUsQ0FBQyxHQUFFLEVBQUU7QUFBRSw2QkFBT2hKLEdBQUUsS0FBSSxJQUFHK0ksS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkvSSxHQUFFLEtBQUlpSixLQUFHLEdBQUUsQ0FBQyxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUMsR0FBRSxLQUFHLFNBQVNKLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRUcsTUFBR0gsSUFBRSxDQUFDLEdBQUUsS0FBR0QsSUFBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk4VCxJQUFHclYsS0FBR3dCLElBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsSUFBR0csR0FBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUVHLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUdOLElBQUUsQ0FBQyxHQUFFTyxNQUFHLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcEMsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxJQUFFLEdBQUVxQyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW9ULElBQUd2VixLQUFHOEIsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0MsR0FBRSxHQUFFLENBQUMsQ0FBQztBQUFFLDZCQUFPbkosR0FBRSxLQUFJLElBQUdnSixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWhKLEdBQUUsS0FBSXFKLEtBQUcsR0FBRSxHQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTNCLElBQUcwQixHQUFFLENBQUMsR0FBRUcsR0FBRSxHQUFFRCxHQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTVCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJOFQsSUFBRzdhLEtBQUdnSCxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLDZCQUFPOUksR0FBRSxLQUFJaUosS0FBR0YsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk0VCxJQUFHMVcsS0FBRytDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTSCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUdFLE1BQUUsTUFBSTtBQUFJLDZCQUFPL0ksR0FBRSxLQUFJaUosS0FBR0QsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDRCxHQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJck8sSUFBRyxFQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUU4RixNQUFHLFNBQVNxSSxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQztBQUFFLDZCQUFPN0ksR0FBRSxLQUFJNkksSUFBRSxDQUFDLEdBQUVDLElBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXBPLElBQUdvTyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcE8sSUFBR29PLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTRCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQztBQUFFLDZCQUFPN0ksR0FBRSxLQUFJaUosS0FBR0QsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl1VCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJN2hCLElBQUcrRSxJQUFHc0osS0FBRSxHQUFFLEdBQUdBLEdBQUMsSUFBRSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJck8sSUFBR3FPLEdBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBU0YsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUM7QUFBRSw2QkFBTzdJLEdBQUUsS0FBSTZJLElBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlBLElBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcE8sSUFBR29PLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTRCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQztBQUFFLDZCQUFPN0ksR0FBRSxLQUFJNkksSUFBRSxDQUFDLEdBQUVDLElBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXBPLElBQUdvTyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJeVQsR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxLQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUxYSxNQUFHLFNBQVNnSCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFSSxNQUFHRixJQUFHLENBQUMsRUFBRSxDQUFDLEdBQUVHLE1BQUdMLElBQUUsQ0FBQyxHQUFFTSxNQUFHUCxJQUFFLENBQUMsR0FBRVEsTUFBR04sSUFBRSxDQUFDLE1BQUksSUFBRUEsSUFBRSxDQUFDLElBQUUsR0FBRyxHQUFHLEdBQUVPLE1BQUc0TCxJQUFHMkgsSUFBRzNULEdBQUUsR0FBRUQsR0FBRSxHQUFFTSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHeEMsS0FBRyxFQUFFLENBQUMsR0FBRSxDQUFDLEdBQUV5QyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxLQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJM0csSUFBRyxFQUFFLENBQUMsR0FBRTBHLEdBQUUsQ0FBQyxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHNUIsS0FBRyxFQUFFLENBQUMsR0FBRTJCLEdBQUUsQ0FBQyxDQUFDLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdMLEdBQUUsQ0FBQyxHQUFFSSxHQUFFLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJaEgsSUFBR3FHLEdBQUUsQ0FBQyxHQUFFVSxHQUFFO0FBQUUsNkJBQU8xSixHQUFFLEtBQUlvSixLQUFHRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLElBQUdILEdBQUUsQ0FBQyxHQUFFUSxHQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFN0gsTUFBRyxTQUFTK0csS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsOEJBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLDhCQUFJRSxNQUFHRixJQUFFLENBQUMsR0FBRUcsTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkyVCxJQUFHM1csS0FBR2dELElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU9oSixHQUFFLEtBQUkrSSxLQUFFOFQsSUFBRzVULEdBQUUsR0FBRSxFQUFFO0FBQUEsd0JBQUUsS0FBSztBQUFFLDhCQUFJLEtBQUdILElBQUUsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFSSxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFBRSw4QkFBRyxHQUFHLENBQUMsTUFBSTtBQUFFLGdDQUFJQyxNQUFHLEdBQUVDLE1BQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUFBO0FBQU8sZ0NBQUlELE1BQUcsR0FBRUMsTUFBRzFILElBQUcsR0FBRyxDQUFDLENBQUM7QUFBRSw4QkFBSTJILE1BQUd5TCxJQUFHMkgsSUFBR3ZULEdBQUUsR0FBRSxFQUFFLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUczQyxLQUFHbUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFUyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNKLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkxRyxJQUFHc0csR0FBRSxDQUFDLEdBQUVPLEdBQUUsQ0FBQyxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSUosR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNILEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksS0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHeEIsS0FBR3VCLEdBQUUsQ0FBQyxHQUFFTyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUUsaUNBQU8zSixHQUFFLEtBQUkrSSxLQUFFVSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSThTLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk1WixJQUFHLEVBQUUsQ0FBQyxHQUFFaUgsR0FBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUlDLE1BQUdmLElBQUUsQ0FBQyxHQUFFZ0IsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHSCxJQUFHLENBQUMsR0FBRUksTUFBR0osSUFBRyxDQUFDO0FBQUUsOEJBQUdDLEtBQUc7QUFBQyxvQ0FBT0EsSUFBRyxDQUFDLEdBQUU7QUFBQSw4QkFBQyxLQUFLO0FBQUUsb0NBQUlJLE1BQUc7QUFBRztBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSUEsTUFBRztBQUFHO0FBQUEsOEJBQU0sS0FBSztBQUFFLG9DQUFJQSxNQUFHO0FBQUc7QUFBQSw4QkFBTSxLQUFLO0FBQUUsb0NBQUlBLE1BQUc7QUFBRztBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSUEsTUFBRztBQUFHO0FBQUEsOEJBQU0sS0FBSztBQUFFLG9DQUFJQSxNQUFHO0FBQUc7QUFBQSw4QkFBTSxLQUFLO0FBQUUsb0NBQUlBLE1BQUc7QUFBRztBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSUEsTUFBRztBQUFHO0FBQUEsOEJBQU0sS0FBSztBQUFFLG9DQUFJQSxNQUFHO0FBQUc7QUFBQSw4QkFBTSxLQUFLO0FBQUUsb0NBQUlBLE1BQUc7QUFBRztBQUFBLDhCQUFNLEtBQUs7QUFBRyxvQ0FBSUEsTUFBRztBQUFHO0FBQUEsOEJBQU0sS0FBSztBQUFHLG9DQUFJQSxNQUFHO0FBQUc7QUFBQSw4QkFBTSxLQUFLO0FBQUcsb0NBQUlBLE1BQUc7QUFBRztBQUFBLDhCQUFNLEtBQUs7QUFBRyxvQ0FBSUEsTUFBRztBQUFHO0FBQUEsOEJBQU07QUFBUSxvQ0FBSUEsTUFBRztBQUFBLDRCQUFFO0FBQUMsZ0NBQUlDLE1BQUdEO0FBQUEsMEJBQUU7QUFBTSxnQ0FBSUMsTUFBRztBQUFJLDhCQUFJQyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXRJLElBQUdrSSxHQUFFLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU9oSyxHQUFFLEtBQUkrSSxLQUFFZ0IsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlyUCxJQUFHeVAsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdGLEdBQUUsQ0FBQyxHQUFFRyxHQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRSw4QkFBSUMsTUFBR3ZCLElBQUUsQ0FBQyxHQUFFd0IsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE9BQUdGLElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFRyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTFJLElBQUd1SSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTNJLElBQUd5SSxJQUFFLENBQUMsR0FBRUMsR0FBRTtBQUFFLGtDQUFPLElBQUc7QUFBQSw0QkFBQyxLQUFLO0FBQUUsa0NBQUlFLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc1TjtBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJNE4sTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTSxLQUFLO0FBQUcsa0NBQUlBLE1BQUc7QUFBRztBQUFBLDRCQUFNLEtBQUs7QUFBRyxrQ0FBSUEsTUFBRztBQUFHO0FBQUEsNEJBQU0sS0FBSztBQUFHLGtDQUFJQSxNQUFHO0FBQUc7QUFBQSw0QkFBTTtBQUFRLGtDQUFJQSxNQUFHO0FBQUEsMEJBQUU7QUFBQyxpQ0FBTzFLLEdBQUUsS0FBSStJLEtBQUV1QixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTVQLElBQUdnUSxHQUFFLENBQUMsR0FBRUQsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLDhCQUFJRSxNQUFHN0IsSUFBRSxDQUFDLEdBQUU4QixNQUFHRCxJQUFHLENBQUMsR0FBRUUsT0FBR3FLLElBQUcySCxJQUFHbFMsSUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFFQyxHQUFFO0FBQUUsaUNBQU81SyxHQUFFLEtBQUkrSSxLQUFFOEIsTUFBRy9DLElBQUc2QyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU8sR0FBRyxLQUFJLENBQUMsR0FBRTVCLEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUlnQyxNQUFHaEMsSUFBRSxDQUFDLEdBQUVpQyxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUdILElBQUcsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXBKLElBQUdnSixJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFSyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXJKLElBQUdrSixHQUFFLENBQUMsR0FBRUUsR0FBRTtBQUFFLGlDQUFPbEwsR0FBRSxLQUFJK0ksS0FBRWdDLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJakosSUFBR21KLEdBQUUsQ0FBQyxHQUFFRSxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU90SixJQUFHLENBQUMsR0FBRWtILEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU8sR0FBR0EsSUFBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUksS0FBR0EsSUFBRSxDQUFDLEdBQUVzQyxNQUFHLEdBQUcsQ0FBQztBQUFFLGlDQUFPcEwsR0FBRSxLQUFJK0ksS0FBRXFDLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdEosSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPLEdBQUcsQ0FBQyxHQUFFaUgsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTyxHQUFHLENBQUMsR0FBRUMsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBT3RJLElBQUcsQ0FBQyxHQUFFdUksS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTyxHQUFHLENBQUMsR0FBRUMsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUVELElBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXlULEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPLEdBQUcsQ0FBQyxHQUFFeFQsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTyxHQUFHLENBQUMsR0FBRUMsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSXVDLE1BQUd2QyxJQUFFLENBQUMsR0FBRXdDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsT0FBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQztBQUFFLDhCQUFHO0FBQUMsZ0NBQUlLLE1BQUcsSUFBSSxPQUFPaFIsSUFBRzZRLEdBQUUsR0FBRTdRLElBQUc0USxHQUFFLENBQUMsR0FBRUssTUFBR0Q7QUFBQSwwQkFBRSxRQUFNO0FBQUMsZ0NBQUlDLE1BQUc0UTtBQUFBLDBCQUFFO0FBQUMsaUNBQU92YyxHQUFFLEtBQUkrSSxLQUFFeUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlHLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqUixJQUFHK1EsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJZ1IsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkvaEIsSUFBRzZRLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTdRLElBQUc0USxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSU0sTUFBRzlDLElBQUUsQ0FBQztBQUFFLGlDQUFPdEksSUFBRyxDQUFDLEdBQUV1SSxLQUFFLENBQUMsR0FBRTZDLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJQyxNQUFHL0MsSUFBRSxDQUFDLEdBQUVnRCxPQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUdILElBQUcsQ0FBQztBQUFFLGtDQUFPQSxJQUFHLENBQUMsR0FBRTtBQUFBLDRCQUFDLEtBQUs7QUFBRSxrQ0FBSUksTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTTtBQUFRLGtDQUFJQSxNQUFHO0FBQUEsMEJBQUc7QUFBQyw4QkFBSUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlwSyxJQUFHaUssR0FBRSxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPL0wsR0FBRSxLQUFJK0ksS0FBRStDLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcFIsSUFBR3VSLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5LLElBQUdrSyxHQUFFLENBQUMsR0FBRUUsR0FBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUdyRCxJQUFFLENBQUMsR0FBRXNELE1BQUdELElBQUcsQ0FBQztBQUFFLGlDQUFPbk0sR0FBRSxLQUFJK0ksS0FBRXFELEtBQUdyRSxJQUFHb0UsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJRSxNQUFHdkQsSUFBRSxDQUFDLEdBQUV3RCxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdILElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU9yTSxHQUFFLEtBQUkrSSxLQUFFdUQsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0MsR0FBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUMsTUFBRzNELElBQUUsQ0FBQyxHQUFFNEQsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHSCxJQUFHLENBQUMsR0FBRUksTUFBR0osSUFBRyxDQUFDO0FBQUUsOEJBQUdFO0FBQUcsZ0NBQUlHLE1BQUdILElBQUcsQ0FBQyxHQUFFSSxNQUFHbUksSUFBRzJILElBQUcvUCxJQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRUosR0FBRSxHQUFFTSxNQUFHRCxLQUFHRSxNQUFHLEdBQUdILEdBQUU7QUFBQTtBQUFPLGdDQUFJRSxNQUFHTixLQUFHTyxNQUFHeVAsSUFBRyxDQUFDO0FBQUUsOEJBQUl4UCxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHaEcsS0FBRzBGLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSUssR0FBRSxHQUFFLENBQUMsQ0FBQztBQUFFLGlDQUFPak4sR0FBRSxLQUFJK0ksS0FBRWlFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJbEwsSUFBRytLLEdBQUUsQ0FBQyxHQUFFSyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUdyRSxJQUFFLENBQUMsR0FBRXNFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXNQLElBQUcsSUFBR3hQLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU9uTixHQUFFLEtBQUkrSSxLQUFFOFQsSUFBR3pQLEdBQUUsR0FBRUMsR0FBRTtBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUMsTUFBR3hFLElBQUUsQ0FBQyxHQUFFeUUsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR3dILElBQUcySCxJQUFHdFAsSUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFFRSxHQUFFO0FBQUUsaUNBQU96TixHQUFFLEtBQUkrSSxLQUFFMkUsS0FBRyxHQUFHNUYsSUFBR3lGLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDQyxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlHLE1BQUc3RSxJQUFFLENBQUMsR0FBRThFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDSCxJQUFHLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxpQ0FBTzNOLEdBQUUsS0FBSStJLEtBQUU4RSxLQUFHLEdBQUc5RixJQUFHNkYsR0FBRSxHQUFFRSxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUdqRixJQUFFLENBQUMsR0FBRWtGLE1BQUdELElBQUcsQ0FBQztBQUFFLGlDQUFPL04sR0FBRSxLQUFJK0ksS0FBRWlGLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMk8sSUFBRzdhLEtBQUdpTSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPL04sR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUltRixNQUFHbkYsSUFBRSxDQUFDLEdBQUVvRixNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdILElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsaUNBQU9qTyxHQUFFLEtBQUkrSSxLQUFFbUYsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlwTSxJQUFHcU0sR0FBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTyxHQUFHLENBQUMsR0FBRXJGLEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsaUNBQU85SSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSXVGLE1BQUd2RixJQUFFLENBQUMsR0FBRXdGLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0gsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxpQ0FBT3JPLEdBQUUsS0FBSStJLEtBQUV1RixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXhNLElBQUd5TSxHQUFFLENBQUMsR0FBRUMsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJQyxNQUFHM0YsSUFBRSxDQUFDLEdBQUU0RixNQUFHRCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUM7QUFBRSw4QkFBRyxPQUFPQyxPQUFJLFVBQVM7QUFBQyxnQ0FBSUMsTUFBR0YsSUFBRyxDQUFDO0FBQUUsbUNBQU96TyxHQUFFLEtBQUkrSSxLQUFFNEYsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk3TSxJQUFHLEVBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLDBCQUFDO0FBQUMsOEJBQUc0TSxJQUFHLENBQUMsTUFBSSxHQUFFO0FBQUMsZ0NBQUlFLE1BQUdILElBQUcsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXJJLElBQUdrSSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLG1DQUFPMU8sR0FBRSxLQUFJK0ksS0FBRTZGLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJOU0sSUFBRyxFQUFFLENBQUMsR0FBRStNLEdBQUUsQ0FBQztBQUFBLDBCQUFDO0FBQUMsOEJBQUlDLE1BQUdMLElBQUcsQ0FBQyxHQUFFTSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXZJLElBQUdrSSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPMU8sR0FBRSxLQUFJK0ksS0FBRStGLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJaE4sSUFBRyxFQUFFLENBQUMsR0FBRWlOLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSSxLQUFHakcsSUFBRSxDQUFDLEdBQUVrRyxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxPQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsQ0FBQztBQUFFLDhCQUFHLEtBQUdBO0FBQUcsbUNBQU9sUCxHQUFFLEtBQUkrSSxLQUFFaUcsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlsTixJQUFHbU4sSUFBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUUsa0NBQU9DLEtBQUc7QUFBQSw0QkFBQyxLQUFLO0FBQUUsa0NBQUlDLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlBLE1BQUc7QUFBSTtBQUFBLDRCQUFNO0FBQVEsa0NBQUlBLE1BQUcsR0FBRyxHQUFHO0FBQUEsMEJBQUM7QUFBQyxpQ0FBT25QLEdBQUUsS0FBSStJLEtBQUVpRyxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXRVLElBQUd5VSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXJOLElBQUdtTixJQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJRyxNQUFHdEcsSUFBRSxDQUFDLEdBQUV1RyxNQUFHRCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUdILElBQUcsQ0FBQyxJQUFFLE1BQUk7QUFBSSxpQ0FBT3BQLEdBQUUsS0FBSStJLEtBQUVzRyxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTNVLElBQUc2VSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl6TixJQUFHd04sR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFO0FBQVEsOEJBQUksS0FBR3hHLElBQUUsQ0FBQyxHQUFFMEcsTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPelAsR0FBRSxLQUFJK0ksS0FBRXlHLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcxTixLQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRTJOLEdBQUUsQ0FBQztBQUFBLHNCQUFDO0FBQUEsb0JBQUMsR0FBRTFOLE1BQUcsU0FBUzhHLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDO0FBQUUsNkJBQU83SSxHQUFFLEtBQUk2SSxJQUFFLENBQUMsR0FBRUMsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcE8sSUFBR29PLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl5VCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEtBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRXZhLE1BQUcsU0FBUzZHLEtBQUVDLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFFRSxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDRCxJQUFFLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSw2QkFBTzlJLEdBQUUsS0FBSTZJLEtBQUVHLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdE8sSUFBR3VPLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTJULElBQUcsSUFBRzlULElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTRCxLQUFFO0FBQUMsNkJBQU84VCxJQUFHNVcsS0FBRzhDLElBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUU1RyxNQUFHLFNBQVM0RyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJOFQsSUFBR3BjLEtBQUd1SSxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLDZCQUFPOUksR0FBRSxLQUFJaUosS0FBR0YsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR2pILEtBQUdrSCxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFOUcsTUFBRyxTQUFTMkcsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLDZCQUFPOUksR0FBRSxLQUFJaUosS0FBR0YsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxJQUFHQyxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFN0csTUFBRyxTQUFTMEcsS0FBRTtBQUFDLDZCQUFPNlQsSUFBR3ZkLElBQUcsU0FBUzJKLEtBQUU7QUFBQyw0QkFBSUMsTUFBRUQsSUFBRSxDQUFDO0FBQUUsK0JBQU8xRyxJQUFHLEdBQUUyRyxJQUFFLENBQUMsR0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsQ0FBQyxHQUFFQSxJQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFBQSxzQkFBQyxHQUFFRixHQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFekcsTUFBRyxTQUFTeUcsS0FBRUMsS0FBRUMsS0FBRUMsS0FBR0MsS0FBRztBQUFDLDBCQUFHRDtBQUFHLDRCQUFJLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLE1BQUksSUFBRSxHQUFHLElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBRSxHQUFHeEksS0FBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLEtBQUc7QUFBQTtBQUFRLDRCQUFJLEtBQUcsR0FBRyxJQUFHLENBQUM7QUFBRSw2QkFBT1IsR0FBRSxLQUFJK0ksS0FBRUYsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXJDLElBQUd5QyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDSCxHQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUV6RyxNQUFHLFNBQVN3RyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdELElBQUUsQ0FBQztBQUFFLDZCQUFPekcsSUFBRzJHLEtBQUVDLEtBQUcsSUFBRyxHQUFHLFNBQVMsSUFBRztBQUFDLCtCQUFNLENBQUMsR0FBRSxFQUFFO0FBQUEsc0JBQUMsR0FBRSxFQUFFLEdBQUVDLEdBQUU7QUFBQSxvQkFBQyxHQUFFM0csTUFBRSxTQUFTdUcsS0FBRTtBQUFDLDZCQUFPQSxNQUFFLE1BQUk7QUFBQSxvQkFBRyxHQUFFdEcsS0FBRSxTQUFTc0csS0FBRTtBQUFDLDBCQUFHLENBQUNBO0FBQUUsK0JBQU82VCxJQUFHLENBQUM7QUFBRSwwQkFBSTVULE1BQUVELElBQUUsQ0FBQztBQUFFLDBCQUFHQyxJQUFFLENBQUMsTUFBSTtBQUFFLCtCQUFPNlQsSUFBR2hWLEtBQUdtQixJQUFFLENBQUMsQ0FBQztBQUFFLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0QsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQztBQUFFLDZCQUFPMlQsSUFBRzFULE1BQUcsQ0FBQyxHQUFFaEosR0FBRSxLQUFJaUosS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHRCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxJQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBU0gsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQztBQUFFLDZCQUFPN0ksR0FBRSxLQUFJZ0osS0FBR0QsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqSCxJQUFHZ0gsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUV0RyxNQUFHLFNBQVNxRyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0gsSUFBRSxDQUFDLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdoQyxLQUFHNkIsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSw2QkFBTzlJLEdBQUUsS0FBSWdKLEtBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0QsR0FBQyxDQUFDLEdBQUVFLEdBQUUsQ0FBQztBQUFBLG9CQUFDLEdBQUV4RyxNQUFFLFNBQVNvRyxLQUFFO0FBQUMsOEJBQU9BLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLDhCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRSxLQUFHRCxJQUFFLENBQUM7QUFBRSxrQ0FBT0csSUFBRyxDQUFDLEdBQUU7QUFBQSw0QkFBQyxLQUFLO0FBQUUsa0NBQUlJLE1BQUdMLEtBQUdNLE1BQUcsR0FBRUMsTUFBRy9JLElBQUd5SSxJQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJSSxNQUFHTCxLQUFHTSxNQUFHLEdBQUVDLE1BQUcsR0FBR04sSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUksTUFBR0wsS0FBR00sTUFBRyxHQUFFQyxNQUFHLEdBQUdOLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlJLE1BQUdMLEtBQUdNLE1BQUcsR0FBRUMsTUFBRyxHQUFHTixJQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJSSxNQUFHTCxLQUFHTSxNQUFHLEdBQUVDLE1BQUd4SCxJQUFHa0gsSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDRCQUFNO0FBQVEsa0NBQUlDLE1BQUdELElBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRUUsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUc4TCxJQUFHaE0sSUFBRyxDQUFDLEdBQUVGLEdBQUUsR0FBRUssTUFBR0QsS0FBR0UsTUFBRyxHQUFFQyxNQUFHekgsSUFBR3FILEdBQUU7QUFBQSwwQkFBQztBQUFDLGtDQUFPLElBQUc7QUFBQSw0QkFBQyxLQUFLO0FBQUUsa0NBQUlLLE1BQUc7QUFBSTtBQUFBLDRCQUFNLEtBQUs7QUFBRSxrQ0FBSUEsTUFBRztBQUFJO0FBQUEsNEJBQU0sS0FBSztBQUFFLGtDQUFJQSxNQUFHO0FBQUk7QUFBQSw0QkFBTTtBQUFRLGtDQUFJQSxNQUFHO0FBQUEsMEJBQUc7QUFBQyw4QkFBSUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkvTyxJQUFHOE8sR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0YsR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXFULElBQUcsSUFBRyxFQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUUsaUNBQU8zYyxHQUFFLEtBQUksSUFBR3FKLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJRSxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMUgsSUFBRyxFQUFFLENBQUMsR0FBRTRILEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLDhCQUFJQyxNQUFHYixJQUFFLENBQUMsR0FBRWMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxNQUFHTCxJQUFHLENBQUMsR0FBRU0sTUFBR04sSUFBRyxDQUFDLEdBQUVPLE1BQUdQLElBQUcsQ0FBQyxHQUFFUSxNQUFHVCxJQUFHLENBQUM7QUFBRSxrQ0FBT0ssSUFBRyxDQUFDLEdBQUU7QUFBQSw0QkFBQyxLQUFLO0FBQUUsa0NBQUksS0FBR0gsS0FBR1ksTUFBRyxHQUFFQyxNQUFHakssSUFBR3VKLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUksS0FBR0gsS0FBR1ksTUFBRyxHQUFFQyxNQUFHLEdBQUdWLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUksS0FBR0gsS0FBR1ksTUFBRyxHQUFFQyxNQUFHLEdBQUdWLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUksS0FBR0gsS0FBR1ksTUFBRyxHQUFFQyxNQUFHLEdBQUdWLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw0QkFBTSxLQUFLO0FBQUUsa0NBQUlLLE1BQUcsR0FBRyxHQUFHLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxNQUFHTCxJQUFHLENBQUM7QUFBRTtBQUFBLDRCQUFNO0FBQVEsa0NBQUlDLE1BQUdOLElBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRU8sTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE9BQUcySyxJQUFHN0ssSUFBRyxDQUFDLEdBQUVULEdBQUUsR0FBRSxLQUFHVyxNQUFHQyxNQUFHLEdBQUVDLE1BQUczSSxJQUFHd0ksR0FBRTtBQUFBLDBCQUFDO0FBQUMsOEJBQUcsT0FBT1IsT0FBSTtBQUFTLGdDQUFHQTtBQUFHLGtDQUFJWSxNQUFHLEdBQUVDLE1BQUc7QUFBQTtBQUFPLGtDQUFJRCxNQUFHLEdBQUVDLE1BQUc7QUFBQTtBQUFPLGdDQUFJRCxNQUFHLEdBQUVDLE1BQUcsQ0FBQyxHQUFFYixJQUFHLENBQUMsQ0FBQztBQUFFLDhCQUFJYyxNQUFHRixNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNBLEdBQUUsR0FBRSxDQUFDLElBQUUsR0FBRUcsT0FBR2hCLFFBQUssSUFBRSxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSThTLElBQUcsSUFBRzlTLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRWlCLE1BQUcsR0FBR0QsTUFBR0QsR0FBRSxHQUFFRyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNQLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDUCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUc3RCxLQUFHNEQsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRWdCLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJNFIsSUFBRyxJQUFHMVMsR0FBRSxDQUFDLEdBQUVhLEdBQUU7QUFBRSxpQ0FBTy9LLEdBQUUsS0FBSW1LLEtBQUcsSUFBRyxHQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSU0sR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHM0ksS0FBRzZJLEdBQUUsQ0FBQyxHQUFFSyxHQUFFLENBQUMsR0FBRUYsR0FBRSxDQUFDO0FBQUEsd0JBQUU7QUFBUSw4QkFBSUcsTUFBR3BDLElBQUUsQ0FBQyxHQUFFcUMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdELElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxNQUFHTCxJQUFHLENBQUMsR0FBRU0sT0FBR04sSUFBRyxDQUFDLEdBQUVPLE1BQUdSLElBQUcsQ0FBQztBQUFFLDhCQUFHLE9BQU8sTUFBSTtBQUFTLGdDQUFHO0FBQUcsa0NBQUlTLE1BQUcsR0FBRUMsTUFBRztBQUFBO0FBQU8sa0NBQUlELE1BQUcsR0FBRUMsTUFBRztBQUFBO0FBQU8sZ0NBQUlELE1BQUcsR0FBRUMsTUFBRyxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7QUFBRSw4QkFBSUMsTUFBR0YsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDQSxHQUFFLEdBQUUsQ0FBQyxJQUFFLEdBQUVHLE1BQUdWLFFBQUssSUFBRSxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXdSLElBQUcsSUFBR3hSLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRVcsT0FBRyxHQUFHRCxLQUFHRCxHQUFFLEdBQUVHLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEtBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDVCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdsRixLQUFHaUYsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRVcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk0USxJQUFHLElBQUdyUixHQUFFLENBQUMsR0FBRVEsR0FBRSxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHbkssS0FBRzZKLEdBQUUsQ0FBQyxHQUFFSyxHQUFFO0FBQUUsaUNBQU9oTSxHQUFFLEtBQUl5TCxLQUFHTCxLQUFHLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJckosSUFBR3lKLElBQUUsQ0FBQyxHQUFFUyxHQUFFLEdBQUVILElBQUUsQ0FBQztBQUFBLHNCQUFDO0FBQUEsb0JBQUMsR0FBRSxLQUFHLFNBQVNqRCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdELElBQUUsQ0FBQyxHQUFFLEtBQUdDLElBQUUsQ0FBQyxHQUFFLEtBQUdHLElBQUcsQ0FBQyxNQUFJLElBQUUsR0FBR0EsSUFBRyxDQUFDLENBQUMsSUFBRXpJLElBQUd5SSxJQUFHLENBQUMsQ0FBQztBQUFFLDBCQUFHRjtBQUFFLDRCQUFJLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJakgsSUFBR2lILElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBRy9JLEdBQUUsS0FBSSxJQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdnSixHQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQTtBQUFPLDRCQUFJLEtBQUcsR0FBR0EsR0FBRTtBQUFFLDZCQUFPaEosR0FBRSxLQUFJLElBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTNkksS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsOEJBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLDhCQUFJRSxNQUFHRixJQUFFLENBQUMsR0FBRUcsTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDQSxJQUFHLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNBLElBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkyVCxJQUFHLFNBQVMsSUFBRztBQUFDLGdDQUFJblMsTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdILElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsbUNBQU94SyxHQUFFLEtBQUkwSyxLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELEdBQUUsQ0FBQyxHQUFFRSxHQUFFLENBQUM7QUFBQSwwQkFBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUU7QUFBRSxpQ0FBTzNLLEdBQUUsS0FBSStJLEtBQUU4VCxJQUFHNVQsR0FBRSxHQUFFLEVBQUU7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUksS0FBR0gsSUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRUksTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFQyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXVULElBQUcsU0FBUyxJQUFHO0FBQUMsZ0NBQUluUyxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0gsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxtQ0FBT3hLLEdBQUUsS0FBSTBLLEtBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0QsR0FBRSxDQUFDLEdBQUVFLEdBQUUsQ0FBQztBQUFBLDBCQUFDLEdBQUV6QixHQUFFLENBQUMsR0FBRUMsR0FBRTtBQUFFLGlDQUFPbkosR0FBRSxLQUFJK0ksS0FBRThULElBQUcsRUFBRSxHQUFFelQsR0FBRTtBQUFBLHdCQUFFLEtBQUs7QUFBRSw4QkFBSUMsTUFBR1AsSUFBRSxDQUFDLEdBQUVRLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQztBQUFFLDhCQUFHQyxJQUFHLENBQUMsTUFBSTtBQUFFLGdDQUFJSSxNQUFHSixJQUFHLENBQUMsR0FBRU0sTUFBR3pLLElBQUcsU0FBUyxJQUFHO0FBQUMsa0NBQUlxTCxNQUFHLEdBQUcsQ0FBQztBQUFFLHFDQUFPeEssR0FBRSxLQUFJd0ssS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsNEJBQUMsR0FBRWQsR0FBRTtBQUFBO0FBQU8sZ0NBQUlDLE1BQUdMLElBQUcsQ0FBQyxHQUFFTSxNQUFHekssSUFBRyxTQUFTLElBQUc7QUFBQyxrQ0FBSXFMLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5LLElBQUdnSyxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLHFDQUFPeEssR0FBRSxLQUFJMEssS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHRCxHQUFFLENBQUMsR0FBRUUsR0FBRSxDQUFDO0FBQUEsNEJBQUMsR0FBRWhCLEdBQUU7QUFBRSw4QkFBSUUsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk2UyxJQUFHOVMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0gsR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNELEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFFLGlDQUFPeEosR0FBRSxLQUFJK0ksS0FBRThULElBQUd0VCxHQUFFLEdBQUVNLEdBQUU7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUlDLE1BQUdoQixJQUFFLENBQUMsR0FBRWlCLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDSCxJQUFHLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRUksTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl5UyxJQUFHLFNBQVMsSUFBRztBQUFDLGdDQUFJblMsTUFBRyxHQUFHLENBQUM7QUFBRSxtQ0FBT3hLLEdBQUUsS0FBSXdLLEtBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLDBCQUFDLEdBQUVSLEdBQUUsQ0FBQyxHQUFFQyxHQUFFO0FBQUUsaUNBQU9qSyxHQUFFLEtBQUkrSSxLQUFFOFQsSUFBRzlTLEdBQUUsR0FBRUcsR0FBRTtBQUFBLHdCQUFFO0FBQVEsOEJBQUlDLE1BQUdyQixJQUFFLENBQUMsR0FBRXNCLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDSCxJQUFHLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNBLElBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLEdBQUVJLE9BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJb1MsSUFBRyxTQUFTLElBQUc7QUFBQyxnQ0FBSW5TLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHLEdBQUcsQ0FBQyxHQUFFQyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHSCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLG1DQUFPeEssR0FBRSxLQUFJMEssS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHRCxHQUFFLENBQUMsR0FBRUUsR0FBRSxDQUFDO0FBQUEsMEJBQUMsR0FBRU4sR0FBRSxDQUFDLEdBQUVDLEdBQUU7QUFBRSxpQ0FBT3RLLEdBQUUsS0FBSStJLEtBQUU4VCxJQUFHelMsR0FBRSxHQUFFRyxJQUFFO0FBQUEsc0JBQUM7QUFBQSxvQkFBQyxHQUFFN0gsTUFBRyxTQUFTbUcsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHRCxJQUFFLENBQUMsR0FBRSxLQUFHRSxJQUFFLENBQUMsTUFBSSxJQUFFLEdBQUdBLElBQUUsQ0FBQyxDQUFDLElBQUVuQyxJQUFHbUMsSUFBRSxDQUFDLENBQUM7QUFBRSw2QkFBTy9JLEdBQUUsS0FBSSxJQUFHZ0osS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHL0IsS0FBR2dDLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRSxLQUFHLFNBQVNKLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVGLElBQUUsQ0FBQztBQUFFLDhCQUFPQyxJQUFFLENBQUMsR0FBRTtBQUFBLHdCQUFDLEtBQUs7QUFBRSw4QkFBSUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdELElBQUcsQ0FBQyxHQUFFLEtBQUdBLElBQUcsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJNFQsSUFBRyxJQUFHNVQsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTJULElBQUc5VyxLQUFHLEVBQUUsQ0FBQyxHQUFFLEVBQUU7QUFBRSxpQ0FBTzdGLEdBQUUsS0FBSStJLEtBQUU4VCxJQUFHNVQsR0FBRSxHQUFFLEVBQUU7QUFBQSx3QkFBRSxLQUFLO0FBQUUsOEJBQUksS0FBR0gsSUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRUksTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl5VCxJQUFHLElBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRXhULE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdVQsSUFBRy9aLEtBQUdzRyxHQUFFLENBQUMsR0FBRUMsR0FBRTtBQUFFLGlDQUFPbkosR0FBRSxLQUFJK0ksS0FBRThULElBQUcsRUFBRSxHQUFFelQsR0FBRTtBQUFBLHdCQUFFLEtBQUs7QUFBRSxpQ0FBT3BILElBQUcrRyxLQUFFRCxJQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFO0FBQVEsaUNBQU9oSCxJQUFHZ0gsSUFBRSxDQUFDLENBQUM7QUFBQSxzQkFBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTRCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQztBQUFFLDBCQUFHLENBQUNFO0FBQUUsK0JBQU8sR0FBR0MsR0FBRTtBQUFFLDBCQUFJLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJbEgsSUFBR2lILElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU8vSSxHQUFFLEtBQUlpSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTSCxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0gsSUFBRSxDQUFDO0FBQUUsNkJBQU83SSxHQUFFLEtBQUlnSixLQUFHRCxLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUVuRyxNQUFHLFNBQVNrRyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQztBQUFFLDBCQUFHQyxLQUFFO0FBQUMsNEJBQUksS0FBR0EsSUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRy9JLEdBQUUsS0FBSSxJQUFHLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFa0osTUFBRyxHQUFHLENBQUMsR0FBRSxJQUFHLEdBQUcsSUFBR0YsR0FBRSxDQUFDLENBQUMsR0FBRUcsTUFBR0YsTUFBRyxDQUFDLEdBQUUsR0FBR0EsSUFBRyxDQUFDLENBQUMsR0FBRUMsR0FBRSxJQUFFQTtBQUFHLCtCQUFPd1QsSUFBR3ZULEdBQUU7QUFBQSxzQkFBQztBQUFDLDBCQUFJQyxNQUFHakssSUFBRyxJQUFHNkosR0FBRSxHQUFFSyxNQUFHSixNQUFHLENBQUMsR0FBRSxHQUFHQSxJQUFHLENBQUMsQ0FBQyxHQUFFRyxHQUFFLElBQUVBO0FBQUcsNkJBQU9zVCxJQUFHclQsR0FBRTtBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTUixLQUFFQyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQztBQUFFLDZCQUFPOUksR0FBRSxLQUFJNkksS0FBRUUsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0QsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUVsRyxNQUFHLFNBQVNpRyxLQUFFO0FBQUMsOEJBQU9BLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLDhCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHRCxJQUFFLENBQUM7QUFBRSw4QkFBRyxDQUFDRTtBQUFHLG1DQUFPLEdBQUdDLEdBQUU7QUFBRSw4QkFBSSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5ILElBQUdrSCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPaEosR0FBRSxLQUFJLElBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR2lKLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRSw4QkFBSSxLQUFHSixJQUFFLENBQUM7QUFBRSxpQ0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQUEsd0JBQUU7QUFBUSxpQ0FBTzBUO0FBQUEsc0JBQUU7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBUzFULEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDO0FBQUUsNkJBQU83SSxHQUFFLEtBQUk4SSxLQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdEMsSUFBR3FDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFaEcsTUFBRyxTQUFTZ0csS0FBRTtBQUFDLDhCQUFPQSxJQUFFLENBQUMsR0FBRTtBQUFBLHdCQUFDLEtBQUs7QUFBRSxpQ0FBTzBUO0FBQUEsd0JBQUcsS0FBSztBQUFFLGlDQUFPLEdBQUcxVCxJQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFO0FBQVEsOEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDO0FBQUUsaUNBQU85SSxHQUFFLEtBQUlnSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdkMsSUFBRyxDQUFDLEdBQUVzQyxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsc0JBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBU0YsS0FBRTtBQUFDLDBCQUFHQSxJQUFFLENBQUMsTUFBSSxHQUFFO0FBQUMsNEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDO0FBQUUsZ0NBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsMEJBQUMsS0FBSztBQUFFLGdDQUFJRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRU8sTUFBRyxHQUFFQyxNQUFHTixLQUFHTyxNQUFHLEdBQUVDLE1BQUcsS0FBSUMsTUFBRzVILElBQUdpSCxJQUFFLENBQUMsQ0FBQyxHQUFFWSxNQUFHO0FBQUc7QUFBQSwwQkFBTSxLQUFLO0FBQUUsZ0NBQUksS0FBR1osSUFBRSxDQUFDLEdBQUUsS0FBR0EsSUFBRSxDQUFDLEdBQUVPLE1BQUcsR0FBRUMsTUFBRyxHQUFFQyxNQUFHLEdBQUVDLE1BQUcsS0FBSUMsTUFBRzdILElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRThILE1BQUc7QUFBRztBQUFBLDBCQUFNLEtBQUs7QUFBRSxnQ0FBSSxLQUFHWixJQUFFLENBQUMsR0FBRSxLQUFHQSxJQUFFLENBQUMsR0FBRUcsTUFBR0gsSUFBRSxDQUFDLEdBQUVPLE1BQUcsSUFBR0MsTUFBRyxHQUFFQyxNQUFHLEdBQUVDLE1BQUcsS0FBSUMsTUFBRzdILElBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRThILE1BQUdUO0FBQUc7QUFBQSwwQkFBTTtBQUFRLGdDQUFJQyxNQUFHSixJQUFFLENBQUMsR0FBRUssTUFBR0wsSUFBRSxDQUFDLEdBQUVNLE1BQUdOLElBQUUsQ0FBQyxHQUFFTyxNQUFHRixLQUFHRyxNQUFHLEdBQUVDLE1BQUcsR0FBRUMsTUFBRyxLQUFJQyxNQUFHN0gsSUFBRyxDQUFDLEdBQUVzSCxJQUFHLENBQUMsR0FBRUEsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFUSxNQUFHTjtBQUFBLHdCQUFFO0FBQUMsZ0NBQU9NLElBQUcsQ0FBQyxHQUFFO0FBQUEsMEJBQUMsS0FBSztBQUFFLGdDQUFJSyxNQUFHVixLQUFHVyxNQUFHLEdBQUVDLE1BQUcxSixJQUFHbUosSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDBCQUFNLEtBQUs7QUFBRSxnQ0FBSUssTUFBR1YsS0FBR1csTUFBRyxHQUFFQyxNQUFHLEdBQUdQLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSwwQkFBTSxLQUFLO0FBQUUsZ0NBQUlLLE1BQUdWLEtBQUdXLE1BQUcsR0FBRUMsTUFBRyxHQUFHUCxJQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsMEJBQU0sS0FBSztBQUFFLGdDQUFJSyxNQUFHVixLQUFHVyxNQUFHLEdBQUVDLE1BQUcsR0FBR1AsSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDBCQUFNLEtBQUs7QUFBRSxnQ0FBSUMsTUFBRyxHQUFHLEdBQUcsR0FBRUksTUFBR0osSUFBRyxDQUFDLEdBQUVLLE1BQUdMLElBQUcsQ0FBQyxHQUFFTSxNQUFHTixJQUFHLENBQUM7QUFBRTtBQUFBLDBCQUFNO0FBQVEsZ0NBQUlDLE1BQUdGLElBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRUcsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdtTCxJQUFHckwsSUFBRyxDQUFDLEdBQUVQLEdBQUUsR0FBRVUsTUFBR0QsS0FBR0UsTUFBRyxHQUFFQyxNQUFHcEksSUFBR2dJLEdBQUU7QUFBQSx3QkFBQztBQUFDLCtCQUFPOUosR0FBRSxLQUFJZ0osS0FBR2dCLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJRSxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJUixHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJaFAsSUFBRytPLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNELEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDRCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ1UsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxzQkFBQztBQUFDLDBCQUFJRSxNQUFHdEIsSUFBRSxDQUFDLEdBQUV1QixNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdILElBQUcsQ0FBQztBQUFFLDZCQUFPbkssR0FBRSxLQUFJc0ssS0FBR0QsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl2SSxJQUFHc0ksSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUV2RSxNQUFHLFNBQVNnRCxLQUFFO0FBQUMsMEJBQUdBLElBQUUsQ0FBQyxNQUFJLEdBQUU7QUFBQyw0QkFBSUMsTUFBRUQsSUFBRSxDQUFDO0FBQUUsK0JBQU8sR0FBR0MsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDO0FBQUEsc0JBQUM7QUFBQywwQkFBSUMsTUFBRUYsSUFBRSxDQUFDLEdBQUVHLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRSxLQUFHRCxJQUFFLENBQUM7QUFBRSw4QkFBTyxHQUFHLENBQUMsR0FBRTtBQUFBLHdCQUFDLEtBQUs7QUFBRSw4QkFBSUksTUFBRyxHQUFFQyxNQUFHLEdBQUVDLE1BQUc3SSxJQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSx3QkFBTSxLQUFLO0FBQUUsOEJBQUkySSxNQUFHLEdBQUVDLE1BQUcsR0FBRUMsTUFBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSx3QkFBTSxLQUFLO0FBQUUsOEJBQUlGLE1BQUcsR0FBRUMsTUFBRyxHQUFFQyxNQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFBRTtBQUFBLHdCQUFNLEtBQUs7QUFBRSw4QkFBSUYsTUFBRyxHQUFFQyxNQUFHLEdBQUVDLE1BQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsd0JBQU07QUFBUSw4QkFBSSxLQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRUgsTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBR0QsS0FBR0UsTUFBRyxHQUFFQyxNQUFHdkgsSUFBRyxHQUFHLENBQUMsQ0FBQztBQUFBLHNCQUFDO0FBQUMsMEJBQUdtSDtBQUFHLDRCQUFJSyxNQUFHTCxJQUFHLENBQUMsR0FBRU0sTUFBRzZMLElBQUcsR0FBRyxDQUFDLEdBQUU5TCxJQUFHLENBQUMsQ0FBQyxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTFILElBQUd3SCxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVHLE1BQUd6SixHQUFFLEtBQUl1SixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFBO0FBQU8sNEJBQUlDLE1BQUcsR0FBRyxFQUFFO0FBQUUsNkJBQU96SixHQUFFLEtBQUksSUFBR21KLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJRSxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJSSxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJM21CLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksS0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNzbUIsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFdEQsTUFBRyxTQUFTK0MsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQztBQUFFLDZCQUFPN0ksR0FBRSxLQUFJZ0osS0FBR0QsS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlqSCxJQUFHZ0gsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUvQyxNQUFHLFNBQVM4QyxLQUFFO0FBQUMsNkJBQU9BLElBQUUsQ0FBQyxNQUFJLElBQUUvRyxJQUFHK0csSUFBRSxDQUFDLENBQUMsSUFBRS9DLElBQUcrQyxJQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUU3QyxNQUFHLFNBQVM2QyxLQUFFO0FBQUMsOEJBQU9BLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFPL0csSUFBRytHLElBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPL0MsSUFBRytDLElBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUU7QUFBUSxpQ0FBTzBUO0FBQUEsc0JBQUU7QUFBQSxvQkFBQyxHQUFFdFcsTUFBRyxTQUFTNEMsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSixJQUFFLENBQUM7QUFBRSw2QkFBTzdJLEdBQUUsS0FBSWlKLEtBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl3VCxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSS9oQixJQUFHcU8sSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXJPLElBQUdxTyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNDLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUU5QyxNQUFHLFNBQVMyQyxLQUFFO0FBQUMsOEJBQU9BLEtBQUU7QUFBQSx3QkFBQyxLQUFLO0FBQUUsaUNBQU87QUFBQSx3QkFBSSxLQUFLO0FBQUUsaUNBQU87QUFBQSx3QkFBSTtBQUFRLGlDQUFPO0FBQUEsc0JBQUc7QUFBQSxvQkFBQyxHQUFFMUMsTUFBRyxTQUFTMEMsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHbkgsS0FBR2dILElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU85SSxHQUFFLEtBQUlnSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELEdBQUMsQ0FBQyxHQUFFRSxHQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFN0MsTUFBRyxTQUFTeUMsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQztBQUFFLDhCQUFPQyxJQUFFLENBQUMsR0FBRTtBQUFBLHdCQUFDLEtBQUs7QUFBRSw4QkFBSUcsTUFBRztBQUFJO0FBQUEsd0JBQU0sS0FBSztBQUFFLDhCQUFJQSxNQUFHO0FBQUk7QUFBQSx3QkFBTSxLQUFLO0FBQUUsOEJBQUlBLE1BQUc7QUFBSTtBQUFBLHdCQUFNLEtBQUs7QUFBRSw4QkFBSUEsTUFBRztBQUFJO0FBQUEsd0JBQU0sS0FBSztBQUFFLDhCQUFJQSxNQUFHO0FBQUk7QUFBQSx3QkFBTTtBQUFRLDhCQUFJQSxNQUFHO0FBQUEsc0JBQUc7QUFBQyw2QkFBT2pKLEdBQUUsS0FBSWdKLEtBQUdELEtBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJck8sSUFBR3VPLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUU1QyxNQUFHLFNBQVN3QyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdELElBQUUsQ0FBQyxHQUFFLEtBQUdFLElBQUUsQ0FBQyxNQUFJLElBQUUsR0FBR0EsSUFBRSxDQUFDLENBQUMsSUFBRW5DLElBQUdtQyxJQUFFLENBQUMsQ0FBQztBQUFFLDZCQUFPL0ksR0FBRSxLQUFJLElBQUdnSixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcvQixLQUFHZ0MsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFM0MsTUFBRyxTQUFTdUMsS0FBRUMsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0QsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdELElBQUUsQ0FBQyxHQUFFLEtBQUd6SixJQUFHLFNBQVNvSyxLQUFHQyxLQUFHO0FBQUMsNEJBQUlDLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHSCxJQUFHLENBQUMsR0FBRUksTUFBR0osSUFBRyxDQUFDLEdBQUVLLE1BQUdMLElBQUcsQ0FBQztBQUFFLGdDQUFPQyxJQUFHLENBQUMsR0FBRTtBQUFBLDBCQUFDLEtBQUs7QUFBRSxnQ0FBSUssTUFBR0wsSUFBRyxDQUFDLEdBQUVNLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUdILElBQUcsQ0FBQyxHQUFFSSxNQUFHSixJQUFHLENBQUMsR0FBRUssTUFBR0wsSUFBRyxDQUFDLEdBQUVNLE1BQUdOLElBQUcsQ0FBQyxHQUFFTyxPQUFHUCxJQUFHLENBQUMsR0FBRSxLQUFHQSxJQUFHLENBQUMsR0FBRVEsTUFBR1QsSUFBRyxDQUFDO0FBQUUsb0NBQU9HLElBQUcsQ0FBQyxHQUFFO0FBQUEsOEJBQUMsS0FBSztBQUFFLG9DQUFJTyxNQUFHakssSUFBRzBKLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw4QkFBTSxLQUFLO0FBQUUsb0NBQUlPLE1BQUcsR0FBR1AsSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSU8sTUFBRyxHQUFHUCxJQUFHLENBQUMsQ0FBQztBQUFFO0FBQUEsOEJBQU0sS0FBSztBQUFFLG9DQUFJTyxNQUFHLEdBQUdQLElBQUcsQ0FBQyxDQUFDO0FBQUU7QUFBQSw4QkFBTSxLQUFLO0FBQUUsb0NBQUlPLE1BQUcsR0FBRyxHQUFHO0FBQUU7QUFBQSw4QkFBTTtBQUFRLG9DQUFJQSxNQUFHLEdBQUcsR0FBRztBQUFBLDRCQUFDO0FBQUMsb0NBQU9SLElBQUcsQ0FBQyxHQUFFO0FBQUEsOEJBQUMsS0FBSztBQUFFLG9DQUFJVyxNQUFHLEtBQUlDLE9BQUdyRSxJQUFHeUQsSUFBRyxDQUFDLENBQUM7QUFBRTtBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSVMsTUFBR1QsSUFBRyxDQUFDLEdBQUVXLE1BQUcsS0FBSUMsT0FBR3RFLElBQUcsQ0FBQyxHQUFFbUUsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxDQUFDLENBQUM7QUFBRTtBQUFBLDhCQUFNO0FBQVEsb0NBQUlDLE1BQUdWLElBQUcsQ0FBQyxHQUFFVyxNQUFHLEtBQUlDLE9BQUd0RSxJQUFHLENBQUMsR0FBRW9FLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUEsNEJBQUM7QUFBQyxtQ0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFM0ssR0FBRSxLQUFJd0ssS0FBR0wsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlNLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlJLElBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDUixHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0UsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNELEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR2xFLEtBQUdnRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkxUCxJQUFHa1EsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRWQsR0FBRSxHQUFFRCxLQUFHRCxLQUFHRCxHQUFFO0FBQUEsMEJBQUUsS0FBSztBQUFFLGdDQUFJbUIsTUFBR3BCLElBQUcsQ0FBQyxHQUFFcUIsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHSCxJQUFHLENBQUM7QUFBRSxtQ0FBTSxDQUFDLEdBQUUsQ0FBQyxHQUFFOUssR0FBRSxLQUFJaUwsS0FBR0QsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl4RSxJQUFHdUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFakIsR0FBRSxHQUFFRCxLQUFHRCxLQUFHRCxHQUFFO0FBQUEsMEJBQUUsS0FBSztBQUFFLGdDQUFJdUIsTUFBR3hCLElBQUcsQ0FBQyxHQUFFeUIsTUFBR0QsSUFBRyxDQUFDLEdBQUUsS0FBR0MsSUFBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxPQUFHTixJQUFHLENBQUMsR0FBRU8sTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDTCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdoRixLQUFHK0UsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxHQUFFTyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWxGLElBQUc2RSxHQUFFLENBQUMsR0FBRUksR0FBRSxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5GLElBQUc4RSxHQUFFLENBQUMsR0FBRUksR0FBRTtBQUFFLG1DQUFNLENBQUMsR0FBRTVCLEtBQUcsQ0FBQyxHQUFFOUosR0FBRSxLQUFJd0wsTUFBRyxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLElBQUdELEdBQUUsQ0FBQyxHQUFFSSxHQUFFLENBQUMsR0FBRTlCLEdBQUUsR0FBRUQsS0FBR0QsR0FBRTtBQUFBLDBCQUFFLEtBQUs7QUFBRSxnQ0FBSWlDLE1BQUdsQyxJQUFHLENBQUMsR0FBRW1DLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxPQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0gsSUFBRyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsbUNBQU0sQ0FBQyxHQUFFL0IsS0FBR0QsS0FBRyxDQUFDLEdBQUU3SixHQUFFLEtBQUkrTCxLQUFHRCxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXZGLElBQUdzRixJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUVHLEdBQUUsQ0FBQyxHQUFFcEMsR0FBRSxHQUFFRCxHQUFFO0FBQUEsMEJBQUUsS0FBSztBQUFFLGdDQUFJc0MsTUFBR3ZDLElBQUcsQ0FBQyxHQUFFd0MsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxNQUFHTCxJQUFHLENBQUMsR0FBRU0sTUFBR1AsSUFBRyxDQUFDLEdBQUVRLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0gsR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNELEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDRCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJNUYsSUFBRzBGLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUUsbUNBQU0sQ0FBQyxHQUFFcEMsS0FBR0QsS0FBR0QsS0FBRyxDQUFDLEdBQUU1SixHQUFFLEtBQUl3TSxLQUFHTCxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHSSxHQUFFLENBQUMsR0FBRUUsR0FBRSxDQUFDLEdBQUU5QyxHQUFFLENBQUM7QUFBQSwwQkFBRTtBQUFRLGdDQUFJK0MsTUFBR2hELElBQUcsQ0FBQyxHQUFFaUQsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBR0gsSUFBRyxDQUFDLEdBQUVJLE1BQUdKLElBQUcsQ0FBQyxHQUFFSyxNQUFHTCxJQUFHLENBQUMsR0FBRU0sTUFBR1AsSUFBRyxDQUFDLEdBQUVRLE1BQUc7QUFBRSxvQ0FBT1AsSUFBRyxDQUFDLEdBQUU7QUFBQSw4QkFBQyxLQUFLO0FBQUUsb0NBQUlRLE1BQUc7QUFBZTtBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSUEsTUFBRztBQUFnQjtBQUFBLDhCQUFNLEtBQUs7QUFBRSxvQ0FBSUEsTUFBRztBQUFXO0FBQUEsOEJBQU07QUFBUSxvQ0FBSUEsTUFBR29QO0FBQUEsNEJBQUU7QUFBQyxnQ0FBSW5QLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdoSCxLQUFHeUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJTSxHQUFFLEdBQUVELEdBQUUsQ0FBQyxHQUFFRyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTdHLElBQUdzRyxHQUFFLENBQUMsR0FBRU0sR0FBRSxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTlHLElBQUd1RyxHQUFFLENBQUMsR0FBRU0sR0FBRTtBQUFFLG1DQUFNLENBQUMsR0FBRSxDQUFDLEdBQUVyTixHQUFFLEtBQUlpTixLQUFHTCxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTVGLElBQUdnRyxHQUFFLENBQUMsR0FBRU0sR0FBRSxDQUFDLEdBQUV4RCxHQUFFLEdBQUVELEtBQUdELEtBQUdELEdBQUU7QUFBQSx3QkFBQztBQUFBLHNCQUFDLEdBQUUsS0FBSVYsR0FBRSxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJc1QsSUFBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRXJULE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcVQsSUFBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUV0VCxHQUFFLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJb1QsSUFBRyxHQUFHeFQsR0FBRSxDQUFDLENBQUMsR0FBRUcsR0FBRSxHQUFFRSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW1ULElBQUcsR0FBR3ZULEdBQUUsQ0FBQyxDQUFDLEdBQUVHLEdBQUUsQ0FBQyxHQUFFRSxNQUFHWCxNQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUMsRUFBRSxHQUFFVSxHQUFFLElBQUVBO0FBQUcsNkJBQU92SixHQUFFLEtBQUksSUFBRzZjLElBQUc3VCxHQUFFLEdBQUVRLEdBQUU7QUFBQSxvQkFBQyxHQUFFakQsTUFBRyxTQUFTc0MsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRUcsTUFBR0gsSUFBRSxDQUFDLEdBQUUsS0FBR0UsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBR0EsSUFBRyxDQUFDLEdBQUUsS0FBR0YsSUFBRSxDQUFDLEdBQUUsS0FBR0QsSUFBRSxDQUFDLEdBQUVLLE1BQUdnTSxJQUFHMkgsSUFBRzdULElBQUcsQ0FBQyxDQUFDLEdBQUVDLEdBQUUsR0FBRUUsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR3BDLEtBQUcsRUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFcUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxJQUFHLEVBQUUsQ0FBQyxHQUFFRCxHQUFFLEdBQUVFLE1BQUdOLElBQUUsQ0FBQyxNQUFJLElBQUV2QyxJQUFHdUMsSUFBRSxDQUFDLENBQUMsSUFBRXRDLElBQUdzQyxJQUFFLENBQUMsQ0FBQyxHQUFFTyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHM0MsS0FBRyxFQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkwQyxHQUFFLEdBQUVELEdBQUUsQ0FBQztBQUFFLDZCQUFPcEosR0FBRSxLQUFJLElBQUdrSixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXlULElBQUcsU0FBU3BULEtBQUc7QUFBQywrQkFBTzdDLElBQUcsR0FBRTZDLEdBQUU7QUFBQSxzQkFBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFRCxHQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFOUMsTUFBRyxTQUFTcUMsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsOEJBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUVELElBQUUsQ0FBQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU85SSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUVELElBQUUsQ0FBQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU85SSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUVELElBQUUsQ0FBQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUUsaUNBQU85SSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUVELElBQUUsQ0FBQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHRCxJQUFHLENBQUM7QUFBRSxpQ0FBT2hKLEdBQUUsS0FBSStJLEtBQUVFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJekMsSUFBR3dDLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsaUNBQU96QyxJQUFHLENBQUMsR0FBRXdDLEtBQUVELElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUksS0FBR0EsSUFBRSxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRUksTUFBR2dNLElBQUcySCxJQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUUsR0FBRTFULE1BQUcsR0FBRyxDQUFDLEdBQUVDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR3ZDLEtBQUcsRUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFd0MsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlxVCxJQUFHLElBQUcsRUFBRSxDQUFDLEdBQUV0VCxHQUFFLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUduSCxLQUFHK0csR0FBRSxDQUFDLEdBQUVHLEdBQUU7QUFBRSxpQ0FBT3ZKLEdBQUUsS0FBSStJLEtBQUVHLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJL0csSUFBR2tILEdBQUUsQ0FBQyxHQUFFRyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsaUNBQU9sRCxJQUFHLEdBQUUsQ0FBQyxHQUFFeUMsS0FBRUQsSUFBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSVcsTUFBR1gsSUFBRSxDQUFDLEdBQUVZLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUMsR0FBRUcsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl0RCxJQUFHLEdBQUVtRCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLGlDQUFPekosR0FBRSxLQUFJK0ksS0FBRVcsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlpVCxJQUFHamEsS0FBR2lILEdBQUUsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUdmLElBQUUsQ0FBQyxHQUFFZ0IsTUFBR0QsSUFBRyxDQUFDO0FBQUUsaUNBQU83SixHQUFFLEtBQUkrSSxLQUFFZSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXRELElBQUdxRCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJRSxNQUFHakIsSUFBRSxDQUFDLEdBQUVrQixNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUdILElBQUcsQ0FBQyxHQUFFSSxNQUFHSixJQUFHLENBQUMsR0FBRUssTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk1RCxJQUFHdUQsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRU0sTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk3RCxJQUFHeUQsR0FBRSxDQUFDLEdBQUVHLEdBQUUsR0FBRUUsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk5RCxJQUFHMEQsR0FBRSxDQUFDLEdBQUVHLEdBQUU7QUFBRSxpQ0FBT3JLLEdBQUUsS0FBSStJLEtBQUVpQixLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXhELElBQUcyRCxHQUFFLENBQUMsR0FBRUcsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJQyxPQUFHekIsSUFBRSxDQUFDLEdBQUUsS0FBR3lCLEtBQUcsQ0FBQztBQUFFLGlDQUFPdkssR0FBRSxLQUFJK0ksS0FBRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSS9CLElBQUd1RCxLQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPbEUsSUFBRyxDQUFDLEdBQUUwQyxLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJMEIsTUFBRzFCLElBQUUsQ0FBQyxHQUFFMkIsTUFBR0QsSUFBRyxDQUFDO0FBQUUsaUNBQU94SyxHQUFFLEtBQUkrSSxLQUFFMEIsS0FBRzVELElBQUcyRCxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlFLE1BQUc1QixJQUFFLENBQUMsR0FBRTZCLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRCxJQUFHLENBQUMsR0FBRUUsT0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDSCxJQUFHLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSxpQ0FBTzFLLEdBQUUsS0FBSStJLEtBQUU2QixLQUFHLEdBQUcvRCxJQUFHOEQsR0FBRSxHQUFFRSxJQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUdoQyxJQUFFLENBQUMsR0FBRWlDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUM7QUFBRSxpQ0FBTzlLLEdBQUUsS0FBSStJLEtBQUVpQyxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTJSLElBQUduVyxLQUFHLENBQUMsR0FBRXVFLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRyxDQUFDLEdBQUVBLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJRSxNQUFHbkMsSUFBRSxDQUFDLEdBQUVvQyxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDO0FBQUUsaUNBQU9qTCxHQUFFLEtBQUkrSSxLQUFFb0MsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl3UixJQUFHblcsS0FBRyxDQUFDLEdBQUUwRSxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUVBLElBQUcsQ0FBQyxHQUFFQSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSSxLQUFHcEMsSUFBRSxDQUFDLEdBQUVzQyxNQUFHLEdBQUcsQ0FBQztBQUFFLGlDQUFPcEwsR0FBRSxLQUFJK0ksS0FBRXFDLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdEUsSUFBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLDhCQUFJdUUsTUFBR3ZDLElBQUUsQ0FBQyxHQUFFd0MsTUFBR0QsSUFBRyxDQUFDO0FBQUUsaUNBQU9yTCxHQUFFLEtBQUkrSSxLQUFFdUMsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk5RSxJQUFHNkUsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUUsTUFBR3pDLElBQUUsQ0FBQyxHQUFFMEMsT0FBR0QsSUFBRyxDQUFDO0FBQUUsaUNBQU92TCxHQUFFLEtBQUkrSSxLQUFFeUMsTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUloRixJQUFHK0UsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUUsTUFBRzNDLElBQUUsQ0FBQyxHQUFFNEMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHO0FBQUUsaUNBQU81TCxHQUFFLEtBQUkrSSxLQUFFMkMsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlpUixJQUFHLFNBQVN0USxLQUFHO0FBQUMsZ0NBQUlDLE1BQUdELElBQUcsQ0FBQyxHQUFFRSxNQUFHRixJQUFHLENBQUM7QUFBRSxvQ0FBT0MsSUFBRyxDQUFDLEdBQUU7QUFBQSw4QkFBQyxLQUFLO0FBQUUsdUNBQU85RixJQUFHOEYsSUFBRyxDQUFDLENBQUM7QUFBQSw4QkFBRSxLQUFLO0FBQUUsb0NBQUlFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHRCxJQUFHLENBQUMsR0FBRUUsTUFBR0YsSUFBRyxDQUFDLEdBQUVHLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0gsSUFBRyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUd4RyxLQUFHb0csSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFRyxHQUFFLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJckcsSUFBR2lHLEdBQUUsQ0FBQyxHQUFFRyxHQUFFO0FBQUUsdUNBQU81TSxHQUFFLEtBQUl1TSxLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdHLEdBQUUsQ0FBQyxHQUFFRyxHQUFFLENBQUM7QUFBQSw4QkFBRTtBQUFRLG9DQUFJQyxNQUFHUixJQUFHLENBQUMsR0FBRVMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJeEcsSUFBR3NHLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsdUNBQU85TSxHQUFFLEtBQUl1TSxLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcsSUFBR1EsR0FBRSxDQUFDLEdBQUVDLEdBQUUsQ0FBQztBQUFBLDRCQUFDO0FBQUEsMEJBQUMsR0FBRXJCLEdBQUUsQ0FBQyxHQUFFQyxHQUFFLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE1BQUcvQyxJQUFFLENBQUM7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUU4QyxJQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUluUixJQUFHbVIsSUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5SLElBQUdtUixJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsOEJBQUlDLE9BQUdoRCxJQUFFLENBQUM7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUUrQyxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlBLEtBQUcsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcFIsSUFBR29SLEtBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUMsTUFBR2pELElBQUUsQ0FBQztBQUFFLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRWdELElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXdRLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUk3aEIsSUFBR3FSLElBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLHdCQUFFLEtBQUs7QUFBRyw4QkFBSUMsTUFBR2xELElBQUUsQ0FBQyxHQUFFbUQsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHLEdBQUVDLE1BQUdILE1BQUcsTUFBSTtBQUFJLGlDQUFPak0sR0FBRSxLQUFJK0ksS0FBRW1ELEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLENBQUMsQ0FBQ0QsR0FBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXZSLElBQUcwUixHQUFFLENBQUMsR0FBRUQsR0FBRSxDQUFDLENBQUM7QUFBQSx3QkFBRSxLQUFLO0FBQUcsaUNBQU9uTSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsR0FBRSxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFHLGlDQUFPOUksR0FBRSxLQUFJK0ksS0FBRUQsSUFBRSxDQUFDLEdBQUUsQ0FBQztBQUFBLHdCQUFFO0FBQVEsaUNBQU85SSxHQUFFLEtBQUkrSSxLQUFFRCxJQUFFLENBQUMsR0FBRSxDQUFDO0FBQUEsc0JBQUM7QUFBQSxvQkFBQyxHQUFFckMsTUFBRyxTQUFTb0MsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxDQUFDLENBQUNDLElBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUd0QyxLQUFHdUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHRSxHQUFFLENBQUMsR0FBRSxFQUFFO0FBQUUsNkJBQU9qSixHQUFFLEtBQUksSUFBRzZjLElBQUc3VCxHQUFFLEdBQUUsRUFBRTtBQUFBLG9CQUFDLEdBQUV0QyxNQUFHLFNBQVNtQyxLQUFFQyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHRCxJQUFFLENBQUMsR0FBRUUsTUFBR0gsSUFBRSxDQUFDLEdBQUUsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDQyxJQUFFLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXZDLElBQUd1QyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBRTtBQUFFLDZCQUFPL0ksR0FBRSxLQUFJaUosS0FBR0osS0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxJQUFHRyxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBU0gsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUM7QUFBRSw2QkFBT25DLElBQUdvQyxJQUFFLENBQUMsR0FBRUEsSUFBRSxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFbkMsTUFBRyxTQUFTa0MsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXpDLElBQUdzQyxJQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxLQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQUUsNkJBQU85SSxHQUFFLEtBQUlnSixLQUFHRCxLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHLElBQUcsQ0FBQyxDQUFDLEdBQUVFLEdBQUUsQ0FBQztBQUFBLG9CQUFDLEdBQUVyQyxNQUFHLFNBQVNpQyxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUdFLElBQUUsQ0FBQyxNQUFJLElBQUUsR0FBR0EsSUFBRSxDQUFDLENBQUMsSUFBRW5DLElBQUdtQyxJQUFFLENBQUMsQ0FBQztBQUFFLDZCQUFPL0ksR0FBRSxLQUFJaUosS0FBRyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxFQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRW5DLE1BQUcsU0FBU2dDLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdkMsSUFBR3FDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJckMsSUFBR3NDLEdBQUMsQ0FBQyxHQUFFQyxHQUFDO0FBQUEsb0JBQUMsR0FBRWpDLE1BQUcsU0FBUytCLEtBQUU7QUFBQywwQkFBR0EsSUFBRSxDQUFDLE1BQUk7QUFBRSwrQkFBTyxHQUFHQSxJQUFFLENBQUMsQ0FBQztBQUFFLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHSCxJQUFFLENBQUMsR0FBRSxLQUFHaEMsSUFBR2lDLElBQUUsQ0FBQyxDQUFDO0FBQUUsNkJBQU8vSSxHQUFFLEtBQUlpSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEVBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBR0QsR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFakMsTUFBRyxTQUFTOEIsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdILElBQUUsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTBULElBQUczVixLQUFHOEIsSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUM7QUFBRSw2QkFBTzlJLEdBQUUsS0FBSWdKLEtBQUc2VCxJQUFHOVQsR0FBQyxHQUFFRSxHQUFFO0FBQUEsb0JBQUMsR0FBRWpDLE1BQUcsU0FBUzZCLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVELElBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdILElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdDLElBQUUsQ0FBQyxHQUFFLEtBQUdBLElBQUUsQ0FBQyxHQUFFLEtBQUdGLElBQUUsQ0FBQyxHQUFFLEtBQUdDLElBQUUsQ0FBQyxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxJQUFFLEdBQUUsQ0FBQyxJQUFFLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUcxQyxLQUFHd0MsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFRyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHL0MsS0FBRzZDLEdBQUUsQ0FBQyxHQUFFQyxHQUFFO0FBQUUsNkJBQU9sSixHQUFFLEtBQUksSUFBRyxJQUFHLEdBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJdEYsSUFBRyxFQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlraUIsSUFBRyxJQUFHLEVBQUUsQ0FBQyxHQUFFelQsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDO0FBQUEsb0JBQUMsR0FBRWxDLE1BQUcsU0FBUzRCLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHSCxJQUFFLENBQUMsR0FBRUksTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUkwVCxJQUFHblcsS0FBR3NDLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU85SSxHQUFFLEtBQUlnSixLQUFHNlQsSUFBRzlULEdBQUMsR0FBRUUsR0FBRTtBQUFBLG9CQUFDLEdBQUUvQixNQUFHLFNBQVMyQixLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0gsSUFBRSxDQUFDLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMFQsSUFBR3hWLEtBQUcyQixJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQztBQUFFLDZCQUFPOUksR0FBRSxLQUFJZ0osS0FBRzZULElBQUc5VCxHQUFDLEdBQUVFLEdBQUU7QUFBQSxvQkFBQyxHQUFFOUIsTUFBRyxTQUFTMEIsS0FBRTtBQUFDLDBCQUFHQSxJQUFFLENBQUMsTUFBSTtBQUFFLCtCQUFPckMsSUFBR3FDLElBQUUsQ0FBQyxDQUFDO0FBQUUsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEVBQUUsQ0FBQztBQUFFLDZCQUFPekMsSUFBRyxDQUFDLEdBQUUwQyxLQUFFLENBQUMsR0FBRSxDQUFDLEdBQUVpTSxJQUFHLEdBQUUsQ0FBQyxHQUFFak0sS0FBRSxHQUFHLENBQUMsQ0FBQyxHQUFFLEdBQUVDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRTVCLE1BQUcsU0FBU3lCLEtBQUU7QUFBQywwQkFBR0EsSUFBRSxDQUFDLE1BQUksR0FBRTtBQUFDLDRCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdELElBQUUsQ0FBQyxHQUFFRSxNQUFHRixJQUFFLENBQUMsR0FBRSxLQUFHRCxJQUFFLENBQUMsR0FBRSxLQUFHRSxJQUFHLENBQUMsTUFBSSxJQUFFekIsSUFBR3lCLElBQUcsQ0FBQyxDQUFDLElBQUV4QixJQUFHd0IsSUFBRyxDQUFDLENBQUM7QUFBRSwrQkFBT2hKLEdBQUUsS0FBSSxJQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEVBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksR0FBRyxJQUFHaUosR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxzQkFBQztBQUFDLDBCQUFJLEtBQUdKLElBQUUsQ0FBQyxHQUFFLEtBQUcsR0FBRyxDQUFDLEdBQUUsS0FBRyxHQUFHLENBQUMsR0FBRUssTUFBRyxHQUFHLENBQUM7QUFBRSw2QkFBT2xKLEdBQUUsS0FBSWtKLEtBQUcsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlwSCxJQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFLEtBQUcsU0FBUytHLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDO0FBQUUsNkJBQU83SSxHQUFFLEtBQUk4SSxLQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJcEIsSUFBR21CLElBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsb0JBQUMsR0FBRXhCLE1BQUcsU0FBU3dCLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFHSCxJQUFFLENBQUMsR0FBRUksTUFBR0gsSUFBRSxDQUFDLEdBQUUsS0FBR0MsTUFBRWpILElBQUdpSCxJQUFFLENBQUMsQ0FBQyxJQUFFL0ksR0FBRSxLQUFJLENBQUMsR0FBRWdKLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRUEsSUFBRyxDQUFDLEVBQUUsQ0FBQyxHQUFFQSxJQUFHLENBQUMsRUFBRSxDQUFDLElBQUUsSUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFQSxJQUFHLENBQUMsRUFBRSxDQUFDLEdBQUVBLElBQUcsQ0FBQyxFQUFFLENBQUMsSUFBRSxJQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsQ0FBQztBQUFFLDZCQUFPaEosR0FBRSxLQUFJZ0osS0FBRzZULElBQUc1VCxHQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFM0IsTUFBRyxTQUFTdUIsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsOEJBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFPLEdBQUcsQ0FBQyxHQUFFQyxLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPLEdBQUcsQ0FBQyxHQUFFQyxLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPekIsSUFBRyxDQUFDLEdBQUUwQixLQUFFRCxJQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLDhCQUFJRSxNQUFHRixJQUFFLENBQUMsR0FBRUcsTUFBR0QsSUFBRyxDQUFDO0FBQUUsaUNBQU9oSixHQUFFLEtBQUkrSSxLQUFFRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSW5ILElBQUdrSCxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUU7QUFBUSw4QkFBSSxLQUFHRixJQUFFLENBQUM7QUFBRSxpQ0FBTzlJLEdBQUUsS0FBSStJLEtBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlyTyxJQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlBLElBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUEsc0JBQUM7QUFBQSxvQkFBQyxHQUFFNk0sTUFBRyxTQUFTc0IsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUM7QUFBRSw2QkFBTzdJLEdBQUUsS0FBSTZJLElBQUUsQ0FBQyxHQUFFQyxJQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlwTyxJQUFHb08sSUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUV0QixNQUFHLFNBQVNxQixLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0gsSUFBRSxDQUFDLEdBQUVJLE1BQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMUIsSUFBR3VCLElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU85SSxHQUFFLEtBQUlnSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJekIsSUFBR3dCLEdBQUMsQ0FBQyxHQUFFRSxHQUFFLENBQUM7QUFBQSxvQkFBQyxHQUFFeEIsTUFBRyxTQUFTb0IsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHRSxJQUFFLENBQUMsTUFBSSxJQUFFeEIsSUFBR3dCLElBQUUsQ0FBQyxDQUFDLElBQUV0QixJQUFHc0IsSUFBRSxDQUFDLENBQUM7QUFBRSw2QkFBTy9JLEdBQUUsS0FBSWlKLEtBQUcsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSTFCLElBQUd5QixHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUV0QixNQUFHLFNBQVNtQixLQUFFO0FBQUMsOEJBQU9BLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLGlDQUFPdEIsSUFBR3NCLElBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUUsS0FBSztBQUFFLGlDQUFPckIsSUFBR3FCLElBQUUsQ0FBQyxDQUFDO0FBQUEsd0JBQUU7QUFBUSxpQ0FBT3BCLElBQUdvQixJQUFFLENBQUMsQ0FBQztBQUFBLHNCQUFDO0FBQUEsb0JBQUMsR0FBRSxLQUFHLFNBQVNBLEtBQUU7QUFBQywwQkFBR0EsSUFBRSxDQUFDLE1BQUksR0FBRTtBQUFDLDRCQUFJQyxNQUFFRCxJQUFFLENBQUM7QUFBRSwrQkFBT3JJLElBQUcsQ0FBQyxHQUFFc0ksSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxzQkFBQztBQUFDLDBCQUFJQyxNQUFFRixJQUFFLENBQUM7QUFBRSw2QkFBT3hCLElBQUcsQ0FBQyxHQUFFMEIsSUFBRSxDQUFDLEdBQUVBLElBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFcEIsTUFBRyxTQUFTa0IsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSixJQUFFLENBQUMsR0FBRSxLQUFHLEdBQUdFLE1BQUVBLElBQUUsQ0FBQyxJQUFFQyxHQUFFO0FBQUUsNkJBQU9oSixHQUFFLEtBQUlpSixLQUFHLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJLEdBQUdELEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFcEIsTUFBRyxTQUFTaUIsS0FBRTtBQUFDLDZCQUFPOFQsSUFBRyxJQUFHOVQsR0FBQztBQUFBLG9CQUFDLEdBQUUsS0FBRyxTQUFTQSxLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRixJQUFFLENBQUM7QUFBRSwwQkFBR0MsSUFBRSxDQUFDO0FBQUUsNEJBQUlFLE1BQUdGLElBQUUsQ0FBQyxHQUFFRyxNQUFHO0FBQUE7QUFBUyw0QkFBSUQsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUc7QUFBSSw2QkFBT2pKLEdBQUVpSixLQUFHRixLQUFFLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJck8sSUFBR3NPLEdBQUUsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUVuQixNQUFHLFNBQVNnQixLQUFFO0FBQUMsMEJBQUlDLE1BQUVELElBQUUsQ0FBQyxHQUFFRSxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBR0YsSUFBRSxDQUFDLEdBQUVHLE1BQUdKLElBQUUsQ0FBQztBQUFFLDBCQUFHRTtBQUFFLDRCQUFJLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJakgsSUFBR2lILElBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBRztBQUFBO0FBQVMsNEJBQUksS0FBRyxHQUFFLEtBQUc7QUFBSSw2QkFBTy9JLEdBQUUsSUFBR2lKLEtBQUdELEtBQUcsRUFBRTtBQUFBLG9CQUFDLEdBQUVsQixNQUFHLFNBQVNlLEtBQUU7QUFBQywwQkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVGLElBQUUsQ0FBQyxHQUFFRyxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHSCxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFSSxNQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHL0IsS0FBRzRCLEdBQUMsQ0FBQyxHQUFFRSxHQUFFO0FBQUUsNkJBQU0sQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJbEgsSUFBR2lILEdBQUMsQ0FBQyxHQUFFRSxHQUFFO0FBQUEsb0JBQUMsR0FBRWxCLE1BQUcsU0FBU2MsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRUYsSUFBRSxDQUFDO0FBQUUsOEJBQU9DLElBQUUsQ0FBQyxHQUFFO0FBQUEsd0JBQUMsS0FBSztBQUFFLDhCQUFJRSxNQUFHLEdBQUVDLE1BQUcsR0FBR0gsSUFBRSxDQUFDLENBQUM7QUFBRTtBQUFBLHdCQUFNLEtBQUs7QUFBRSw4QkFBSUUsTUFBRyxHQUFFQyxNQUFHbEgsSUFBRytHLElBQUUsQ0FBQyxDQUFDO0FBQUU7QUFBQSx3QkFBTTtBQUFRLDhCQUFJRSxNQUFHLEdBQUVDLE1BQUduSCxJQUFHZ0gsSUFBRSxDQUFDLENBQUM7QUFBQSxzQkFBQztBQUFDLDZCQUFNLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSWhILElBQUdpSCxHQUFDLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlFLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxDQUFDRCxHQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFBQSxvQkFBQyxHQUFFaEIsTUFBRyxHQUFHLENBQUMsR0FBRUMsTUFBR0QsSUFBRyxDQUFDLEdBQUVFLE1BQUdGLElBQUcsQ0FBQyxHQUFFRyxNQUFHSCxJQUFHLENBQUMsR0FBRSxLQUFHLEdBQUcsQ0FBQyxHQUFFLEtBQUcvSCxJQUFHK0gsSUFBRyxDQUFDLENBQUMsR0FBRUksTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUksRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSVIsSUFBR00sR0FBRSxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUUsd0JBQUdEO0FBQUcsMEJBQUksS0FBR0EsSUFBRyxDQUFDLEdBQUVJLE1BQUcsR0FBR0QsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlwSSxHQUFFLEtBQUksR0FBRyxDQUFDLEdBQUUsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl0RixJQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQztBQUFBO0FBQU8sMEJBQUkyTixNQUFHRDtBQUFHLHdCQUFJRSxNQUFHdEksR0FBRSxLQUFJLElBQUdtSSxLQUFHRSxHQUFFLEdBQUUsS0FBRyxHQUFHNUosS0FBRyxHQUFHLENBQUMsQ0FBQztBQUFFLHdCQUFHNkosSUFBRyxTQUFPcVUsSUFBRyxTQUFTOVQsS0FBRTtBQUFDLDBCQUFJQyxNQUFFRCxJQUFFLENBQUMsR0FBRUUsTUFBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlyTyxJQUFHLElBQUltTyxJQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDO0FBQUUsNkJBQU80VCxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSSxHQUFHM1QsR0FBQyxDQUFDLEdBQUVDLEdBQUMsQ0FBQztBQUFBLG9CQUFDLEdBQUUsRUFBRSxHQUFFL1AsSUFBRTtBQUFDLDBCQUFJdVAsTUFBR3pPLElBQUUsQ0FBQztBQUFFLHNCQUFBd08sSUFBRyxFQUFFLElBQUVvVSxJQUFHLEdBQUcsU0FBUzdULEtBQUU7QUFBQyw0QkFBSUMsTUFBRUQsSUFBRSxDQUFDLEdBQUVFLE1BQUVGLElBQUUsQ0FBQyxHQUFFRyxNQUFHSCxJQUFFLENBQUMsR0FBRUksTUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUl2TyxJQUFHLEdBQUdvTyxHQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBRSxHQUFHbEosS0FBRW1KLElBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMlQsSUFBRyxDQUFDLEdBQUUsR0FBRzljLEtBQUVtSixJQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUVFLEdBQUUsR0FBRSxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXdULEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMVQsSUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJQSxJQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMFQsS0FBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLEtBQUlBLEtBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJMVQsSUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxLQUFJQSxJQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUMsR0FBRSxFQUFFO0FBQUUsZ0NBQU9DLEtBQUc7QUFBQSwwQkFBQyxLQUFLO0FBQUUsZ0NBQUksS0FBRztBQUFJO0FBQUEsMEJBQU0sS0FBSztBQUFFLGdDQUFJLEtBQUc7QUFBSTtBQUFBLDBCQUFNLEtBQUs7QUFBRSxnQ0FBSSxLQUFHO0FBQUk7QUFBQSwwQkFBTSxLQUFLO0FBQUUsZ0NBQUksS0FBRztBQUFJO0FBQUEsMEJBQU0sS0FBSztBQUFFLGdDQUFJLEtBQUc7QUFBSTtBQUFBLDBCQUFNO0FBQVEsZ0NBQUksS0FBRztBQUFBLHdCQUFHO0FBQUMsK0JBQU95VCxLQUFHLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSS9oQixJQUFHLEdBQUdvTyxHQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsS0FBSXBPLElBQUcsRUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFBQSxzQkFBQyxHQUFFNk4sR0FBRSxDQUFDO0FBQUEsb0JBQUM7QUFBQywyQkFBT0Q7QUFBQSxrQkFBRTtBQUFDLHNCQUFJRSxNQUFHLEdBQUcsQ0FBQztBQUFFLHNCQUFHQSxRQUFLLEdBQUU7QUFBQyx3QkFBSUMsTUFBRyxHQUFHLENBQUM7QUFBRSx3QkFBR0EsT0FBSUEsSUFBRyxDQUFDLE1BQUksR0FBRTtBQUFDLDBCQUFJLEtBQUdBLElBQUcsQ0FBQyxHQUFFMUgsTUFBRyxDQUFDLEdBQUVwQixLQUFFLElBQUUsR0FBRSxHQUFFLENBQUMsR0FBRUQsSUFBRyxHQUFHLENBQUMsR0FBRUMsSUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEtBQUc7QUFBRztBQUFBLG9CQUFRO0FBQUEsa0JBQUMsV0FBUyxJQUFFNkksS0FBRztBQUFDLHdCQUFJLEtBQUcsR0FBRyxDQUFDLEdBQUV6SCxNQUFHLENBQUMsR0FBRXBCLEtBQUUsR0FBRzZJLEdBQUUsSUFBRSxHQUFFLENBQUMsR0FBRTdJLElBQUUsRUFBRSxHQUFFLEVBQUUsR0FBRSxLQUFHO0FBQUc7QUFBQSxrQkFBUTtBQUFDLHNCQUFJLEtBQUcsR0FBRyxDQUFDLEdBQUUrSSxNQUFHLENBQUMsR0FBRWhKLElBQUcsR0FBRyxDQUFDLEdBQUVDLElBQUUsRUFBRSxDQUFDLENBQUMsR0FBRSxFQUFFLEdBQUVvQixNQUFHLENBQUMsR0FBRXBCLEtBQUUsR0FBRzZJLEdBQUUsSUFBRSxHQUFFLEdBQUVFLEdBQUUsR0FBRSxLQUFHO0FBQUEsZ0JBQUU7QUFBQSxjQUFDO0FBQUEsWUFBQztBQUFFLGdCQUFHLE9BQU8sS0FBRztBQUFJLGtCQUFJLEtBQUc7QUFBQSxpQkFBTztBQUFDLGtCQUFJLEtBQUcsQ0FBQztBQUFFLGNBQUE0VCxJQUFHLE9BQUs7QUFBRyxrQkFBSSxLQUFHO0FBQUEsWUFBRTtBQUFDLGVBQUcsUUFBTSxHQUFHLFNBQVMxa0IsSUFBRUMsSUFBRTtBQUFDLGtCQUFHO0FBQUMsb0JBQUlDLEtBQUUsSUFBSUYsSUFBRUMsRUFBQztBQUFFLHVCQUFPQztBQUFBLGNBQUMsU0FBTyxHQUFFO0FBQUMsb0JBQUlDLE1BQUVvRSxJQUFHLENBQUM7QUFBRSx1QkFBT3BFLElBQUUsQ0FBQyxNQUFJLEtBQUcsR0FBR0EsSUFBRSxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksSUFBSTJDLElBQUcsR0FBRyxLQUFJLEdBQUczQyxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBQSxjQUFDO0FBQUEsWUFBQyxDQUFDLEdBQUUsR0FBRyxDQUFDO0FBQUU7QUFBQSxVQUFNO0FBQUEsUUFBQztBQUFBLE1BQUMsR0FBRyxVQUFVO0FBQUEsSUFBQyxDQUFDO0FBQUUsSUFBSSxLQUFHLEdBQUcsQ0FBQStrQixRQUFJO0FBQUM7QUFBYSxhQUFPLGVBQWVBLEtBQUcsY0FBYSxFQUFDLE9BQU0sS0FBRSxDQUFDO0FBQUUsTUFBQUEsSUFBRyxVQUFRO0FBQUksTUFBQUEsSUFBRyxRQUFNO0FBQUksTUFBQUEsSUFBRyxvQkFBa0I7QUFBRyxNQUFBQSxJQUFHLFFBQU07QUFBSSxNQUFBQSxJQUFHLFFBQU07QUFBSSxVQUFJLE1BQUksU0FBUSxNQUFJLFlBQVcsS0FBRyxnQ0FBK0IsTUFBSSwwQkFBeUIsS0FBRyxhQUFZLE1BQUkseUZBQXdGLEtBQUcsb0NBQW1DLE1BQUksb0JBQW1CLEtBQUcsQ0FBQztBQUFFLGVBQVMsSUFBSSxJQUFHO0FBQUMsWUFBSSxLQUFHLEdBQUcsTUFBTSxFQUFFO0FBQUUsZUFBTyxLQUFHLEdBQUcsQ0FBQyxFQUFFLFNBQVMsSUFBRTtBQUFBLE1BQUU7QUFBQyxlQUFTLElBQUksSUFBRztBQUFDLFlBQUksS0FBRyxHQUFHLE1BQU0sRUFBRTtBQUFFLGVBQU8sTUFBSSxHQUFHLENBQUMsSUFBRSxHQUFHLFVBQVUsR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFFO0FBQUEsTUFBRTtBQUFDLGVBQVMsSUFBSSxJQUFHO0FBQUMsZUFBTyxHQUFHLEVBQUUsRUFBRTtBQUFBLE1BQU87QUFBQyxlQUFTLEdBQUcsSUFBRztBQUFDLFlBQUksS0FBRztBQUFBO0FBQzNpN1AsYUFBRyxHQUFHLFFBQVEsS0FBSSxFQUFFLEVBQUUsUUFBUSxLQUFJLEVBQUUsRUFBRSxRQUFRLEtBQUksSUFBSTtBQUFFLFlBQUl4bUMsTUFBRztBQUFHLGVBQUtBLFFBQUs7QUFBSSxVQUFBQSxNQUFHLElBQUcsS0FBRyxHQUFHLFFBQVEsS0FBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7QUFBRSxhQUFHLEdBQUcsUUFBUSxJQUFHLEVBQUUsRUFBRSxVQUFVO0FBQUUsWUFBSUMsTUFBRyx1QkFBTyxPQUFPLElBQUksR0FBRUMsTUFBRyxHQUFHLFFBQVEsSUFBRyxFQUFFLEVBQUUsUUFBUSxJQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUVHO0FBQUcsZUFBS0EsTUFBRyxHQUFHLEtBQUssRUFBRSxLQUFHO0FBQUMsY0FBSUMsTUFBR0QsSUFBRyxDQUFDLEVBQUUsUUFBUSxLQUFJLEVBQUU7QUFBRSxpQkFBT0osSUFBR0ksSUFBRyxDQUFDLENBQUMsS0FBRyxZQUFVLE1BQU0sUUFBUUosSUFBR0ksSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFFSixJQUFHSSxJQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsT0FBT0osSUFBR0ksSUFBRyxDQUFDLENBQUMsR0FBRUMsR0FBRSxJQUFFTCxJQUFHSSxJQUFHLENBQUMsQ0FBQyxJQUFFQztBQUFBLFFBQUU7QUFBQyxlQUFNLEVBQUMsVUFBU0osS0FBRyxTQUFRRCxJQUFFO0FBQUEsTUFBQztBQUFDLGVBQVMsSUFBSSxFQUFDLFVBQVMsS0FBRyxJQUFHLFNBQVEsS0FBRyxDQUFDLEVBQUMsR0FBRTtBQUFDLFlBQUlELE1BQUc7QUFBQSxHQUNwZEMsTUFBRyxPQUFNQyxNQUFHLE1BQUtHLE1BQUcsT0FBTUMsTUFBRyxPQUFPLEtBQUssRUFBRSxHQUFFQyxNQUFHRCxJQUFHLElBQUksQ0FBQUUsUUFBSSxHQUFHQSxLQUFHLEdBQUdBLEdBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDQSxLQUFHQyxRQUFLRCxJQUFHLE9BQU9DLEdBQUUsR0FBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUFELFFBQUksR0FBR04sR0FBRSxJQUFJTSxHQUFFLEdBQUdSLEdBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUFFLFlBQUcsQ0FBQyxJQUFHO0FBQUMsY0FBR00sSUFBRyxXQUFTO0FBQUUsbUJBQU07QUFBRyxjQUFHQSxJQUFHLFdBQVMsS0FBRyxDQUFDLE1BQU0sUUFBUSxHQUFHQSxJQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUU7QUFBQyxnQkFBSUUsTUFBRyxHQUFHRixJQUFHLENBQUMsQ0FBQztBQUFFLG1CQUFNLEdBQUdMLEdBQUUsSUFBSSxHQUFHSyxJQUFHLENBQUMsR0FBRUUsR0FBRSxFQUFFLENBQUMsQ0FBQyxHQUFHSCxHQUFFO0FBQUEsVUFBRTtBQUFBLFFBQUM7QUFBQyxZQUFJLEtBQUcsR0FBRyxNQUFNTCxHQUFFLEVBQUUsSUFBSSxDQUFBUSxRQUFJLEdBQUdOLEdBQUUsSUFBSU0sR0FBRSxFQUFFLEVBQUUsS0FBS1IsR0FBRSxJQUFFQTtBQUFHLGVBQU9DLE1BQUdELE9BQUksS0FBRyxLQUFHLE9BQUssTUFBSU0sSUFBRyxTQUFPSixNQUFHRixNQUFHLE1BQUlPLE1BQUdGO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBRyxJQUFHLElBQUc7QUFBQyxlQUFPLEdBQUcsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFBTCxRQUFJLElBQUksRUFBRSxJQUFJQSxHQUFFLEdBQUcsS0FBSyxDQUFDO0FBQUEsTUFBQztBQUFBLElBQUMsQ0FBQztBQUFFLElBQUksS0FBRyxDQUFDO0FBQUUsT0FBRyxJQUFHLEVBQUMsU0FBUSxNQUFJLEdBQUUsQ0FBQztBQUFFLElBQUksS0FBRyxDQUFDO0FBQUUsT0FBRyxJQUFHLEVBQUMsTUFBSyxNQUFJLElBQUcsQ0FBQztBQUFFLElBQUksS0FBRyxHQUFHLEdBQUcsR0FBRSxDQUFDO0FBQWdJLElBQUksS0FBRztBQUFJLElBQUksS0FBRyxHQUFHLEdBQUcsR0FBRSxDQUFDO0FBQzNwQixJQUFJLEtBQUc7QUFBaVosSUFBSSxLQUFHO0FBQTJWLElBQUksS0FBRztBQUF1RixJQUFJLEtBQUc7QUFBSSxJQUFJLE1BQUksQ0FBQyxJQUFHLElBQUdBLFFBQUs7QUFBQyxVQUFHLEVBQUUsTUFBSSxNQUFJO0FBQU0sZUFBTyxNQUFNLFFBQVEsRUFBRSxLQUFHLE9BQU8sTUFBSSxXQUFTLEdBQUdBLE1BQUcsSUFBRSxHQUFHLFNBQU9BLE1BQUdBLEdBQUUsSUFBRSxHQUFHLEdBQUdBLEdBQUU7QUFBQSxJQUFDO0FBQXhILElBQTBILEtBQUc7QUFBK0UsSUFBSSxLQUFHO0FBQUksSUFBSSxNQUFJLEdBQUcsQ0FBQyxTQUFRLGdCQUFlLFdBQVcsQ0FBQztBQUEvQyxJQUFpRCxLQUFHO0FBQThGLElBQUksS0FBRztBQUMxckMsSUFBSSxLQUFHO0FBQUksSUFBSSxLQUFHO0FBQXNKLElBQUksTUFBSTtBQUFHLGFBQVEsS0FBRyxHQUFFLE1BQUksS0FBSTtBQUFLLFNBQUc7QUFBa08sSUFBSSxLQUFHO0FBQUksSUFBSSxLQUFHLEVBQUMsaUJBQWdCLENBQUMsVUFBVSxHQUFFLHNCQUFxQixDQUFDLFFBQU8sT0FBTyxHQUFFLGtCQUFpQixDQUFDLFFBQU8sT0FBTyxHQUFFLHNCQUFxQixDQUFDLEdBQUUsV0FBVSxDQUFDLE9BQU8sR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLGdCQUFlLENBQUMsY0FBYSxNQUFNLEdBQUUsZ0JBQWUsQ0FBQyxPQUFPLEdBQUUsZ0JBQWUsQ0FBQyxVQUFTLGFBQVksa0JBQWlCLGVBQWUsR0FBRSxhQUFZLENBQUMsU0FBUSxNQUFNLEdBQUUsdUJBQXNCLENBQUMsUUFBTyxjQUFhLFdBQVcsR0FBRSxtQkFBa0IsQ0FBQyxPQUFPLEdBQUUsbUJBQWtCLENBQUMsR0FBRSxrQkFBaUIsQ0FBQyxRQUFPLE1BQU0sR0FBRSxnQkFBZSxDQUFDLEdBQUUscUJBQW9CLENBQUMsWUFBWSxHQUFFLE1BQUssQ0FBQyxTQUFTLEdBQUUsZ0JBQWUsQ0FBQyxRQUFPLFNBQVEsTUFBTSxHQUFFLGNBQWEsQ0FBQyxRQUFPLFFBQU8sVUFBUyxNQUFNLEdBQUUscUJBQW9CLENBQUMsTUFBSyxVQUFTLFFBQU8sY0FBYSxrQkFBaUIsV0FBVyxHQUFFLG9CQUFtQixDQUFDLE1BQUssVUFBUyxRQUFPLGNBQWEsZ0JBQWdCLEdBQUUsWUFBVyxDQUFDLGtCQUFpQixZQUFZLEdBQUUsYUFBWSxDQUFDLFFBQU8sY0FBYSxXQUFXLEdBQUUsa0JBQWlCLENBQUMsU0FBUSxNQUFNLEdBQUUsZUFBYyxDQUFDLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLGFBQVksQ0FBQyxHQUFFLGdCQUFlLENBQUMsR0FBRSxlQUFjLENBQUMsR0FBRSxtQkFBa0IsQ0FBQyxRQUFPLE9BQU8sR0FBRSxrQkFBaUIsQ0FBQyxVQUFTLFVBQVUsR0FBRSxlQUFjLENBQUMsVUFBUyxhQUFZLGtCQUFpQixlQUFlLEdBQUUsU0FBUSxDQUFDLGNBQWEsTUFBTSxHQUFFLGtCQUFpQixDQUFDLFlBQVksR0FBRSxjQUFhLENBQUMsT0FBTSxVQUFTLFFBQU8sY0FBYSxjQUFhLGdCQUFnQixHQUFFLGdCQUFlLENBQUMsT0FBTSxTQUFRLFlBQVksR0FBRSxhQUFZLENBQUMsWUFBVyxrQkFBaUIsWUFBWSxHQUFFLGlCQUFnQixDQUFDLFVBQVUsR0FBRSxvQkFBbUIsQ0FBQyxhQUFhLEdBQUUseUJBQXdCLENBQUMsWUFBWSxHQUFFLFlBQVcsQ0FBQyxRQUFPLFlBQVksR0FBRSxpQkFBZ0IsQ0FBQyxnQkFBZSxPQUFPLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLGdCQUFlLENBQUMsVUFBVSxHQUFFLGNBQWEsQ0FBQyxTQUFRLFdBQVUsV0FBVyxHQUFFLGlCQUFnQixDQUFDLFVBQVUsR0FBRSxrQkFBaUIsQ0FBQyxVQUFVLEdBQUUscUJBQW9CLENBQUMsY0FBYyxHQUFFLG9CQUFtQixDQUFDLE1BQUssTUFBTSxHQUFFLGdCQUFlLENBQUMsUUFBTyxNQUFNLEdBQUUsZUFBYyxDQUFDLFVBQVMsTUFBTSxHQUFFLG1CQUFrQixDQUFDLFFBQU8sU0FBUSxjQUFhLGdCQUFnQixHQUFFLGNBQWEsQ0FBQyxZQUFXLGtCQUFpQixZQUFZLEdBQUUseUJBQXdCLENBQUMsVUFBUyxRQUFPLGNBQWEsa0JBQWlCLFdBQVcsR0FBRSxXQUFVLENBQUMsTUFBTSxHQUFFLGlCQUFnQixDQUFDLE1BQUssUUFBTyxjQUFhLFVBQVMsa0JBQWlCLHVCQUFzQixjQUFhLGNBQWEsb0JBQW9CLEdBQUUsa0JBQWlCLENBQUMsTUFBSyxRQUFPLGNBQWEsVUFBUyxrQkFBaUIsdUJBQXNCLGNBQWEsY0FBYSxvQkFBb0IsR0FBRSxzQkFBcUIsQ0FBQyxVQUFTLGNBQWEsY0FBYSxVQUFVLEdBQUUsMEJBQXlCLENBQUMsYUFBYSxHQUFFLHdCQUF1QixDQUFDLGVBQWMsY0FBYSxVQUFTLGNBQWEsWUFBWSxHQUFFLGlCQUFnQixDQUFDLFNBQVEsVUFBVSxHQUFFLGdCQUFlLENBQUMsUUFBTyxTQUFRLE1BQU0sR0FBRSxtQkFBa0IsQ0FBQyxjQUFhLFVBQVMsY0FBYSxZQUFZLEdBQUUsd0JBQXVCLENBQUMsT0FBTyxHQUFFLDBCQUF5QixDQUFDLE9BQU8sR0FBRSxpQkFBZ0IsQ0FBQyxTQUFRLFVBQVUsR0FBRSxjQUFhLENBQUMsUUFBTyxVQUFVLEdBQUUsYUFBWSxDQUFDLE9BQU0sVUFBUyxRQUFPLGNBQWEsY0FBYSxnQkFBZ0IsR0FBRSxlQUFjLENBQUMsY0FBYSxrQkFBaUIsWUFBWSxHQUFFLGVBQWMsQ0FBQyxVQUFVLEdBQUUsT0FBTSxDQUFDLEdBQUUsMEJBQXlCLENBQUMsT0FBTSxTQUFRLGtCQUFpQixlQUFlLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxpQkFBZ0IsQ0FBQyxVQUFTLGFBQWEsR0FBRSxpQkFBZ0IsQ0FBQyxVQUFVLEdBQUUsaUJBQWdCLENBQUMsVUFBVSxHQUFFLFFBQU8sQ0FBQyxHQUFFLGVBQWMsQ0FBQyxHQUFFLDBCQUF5QixDQUFDLFVBQVUsR0FBRSwwQkFBeUIsQ0FBQyxVQUFTLFVBQVUsR0FBRSx3QkFBdUIsQ0FBQyxVQUFTLGFBQVksa0JBQWlCLGVBQWUsR0FBRSxlQUFjLENBQUMsT0FBTSxTQUFRLGtCQUFpQixjQUFhLFVBQVUsR0FBRSx1QkFBc0IsQ0FBQyxPQUFNLFNBQVEsa0JBQWlCLFlBQVksR0FBRSxzQkFBcUIsQ0FBQyxPQUFNLFNBQVEsY0FBYSxrQkFBaUIsVUFBVSxHQUFFLG9CQUFtQixDQUFDLE9BQU0sVUFBUyxRQUFPLGNBQWEsY0FBYSxnQkFBZ0IsR0FBRSxhQUFZLENBQUMsSUFBSSxHQUFFLGFBQVksQ0FBQyxNQUFNLEdBQUUsbUJBQWtCLENBQUMsR0FBRSxxQkFBb0IsQ0FBQyxhQUFhLEdBQUUsdUJBQXNCLENBQUMsR0FBRSw4QkFBNkIsQ0FBQyxHQUFFLDJCQUEwQixDQUFDLEdBQUUsaUJBQWdCLENBQUMsTUFBSyxnQkFBZ0IsR0FBRSxjQUFhLENBQUMsTUFBSyxrQkFBaUIsV0FBVSxVQUFTLGNBQWEsTUFBTSxHQUFFLGlCQUFnQixDQUFDLE1BQUssV0FBVyxHQUFFLGtCQUFpQixDQUFDLE1BQUssa0JBQWlCLFdBQVUsTUFBTSxHQUFFLGVBQWMsQ0FBQyxNQUFLLE1BQU0sR0FBRSxzQkFBcUIsQ0FBQyxnQkFBZ0IsR0FBRSxrQkFBaUIsQ0FBQyxNQUFLLGtCQUFpQixPQUFPLEdBQUUsbUJBQWtCLENBQUMsTUFBSyxrQkFBaUIsV0FBVyxHQUFFLGlCQUFnQixDQUFDLElBQUksR0FBRSwwQkFBeUIsQ0FBQyxlQUFjLGNBQWEsUUFBUSxHQUFFLDZCQUE0QixDQUFDLFFBQVEsR0FBRSxtQkFBa0IsQ0FBQyxPQUFPLEdBQUUsc0JBQXFCLENBQUMsR0FBRSx3QkFBdUIsQ0FBQyxrQkFBaUIsVUFBUyxRQUFPLGNBQWEsTUFBTSxHQUFFLG1CQUFrQixDQUFDLFFBQU8sZ0JBQWdCLEdBQUUsdUJBQXNCLENBQUMsTUFBSyxnQkFBZ0IsR0FBRSxtQkFBa0IsQ0FBQyxHQUFFLGtCQUFpQixDQUFDLE1BQUssZ0JBQWdCLEdBQUUsc0JBQXFCLENBQUMsTUFBSyxrQkFBaUIsV0FBVSxNQUFNLEdBQUUseUJBQXdCLENBQUMsV0FBVSxNQUFNLEdBQUUsNEJBQTJCLENBQUMsT0FBTyxHQUFFLHFCQUFvQixDQUFDLEdBQUUscUJBQW9CLENBQUMsR0FBRSx3QkFBdUIsQ0FBQyxnQkFBZ0IsR0FBRSw2QkFBNEIsQ0FBQyxHQUFFLHNCQUFxQixDQUFDLEdBQUUsc0JBQXFCLENBQUMsY0FBYSxZQUFXLGtCQUFpQixlQUFlLEdBQUUsd0JBQXVCLENBQUMsTUFBSyxTQUFRLFlBQVcsVUFBUyxRQUFRLEdBQUUsd0JBQXVCLENBQUMsT0FBTyxHQUFFLG1CQUFrQixDQUFDLE1BQUssT0FBTSxTQUFRLFVBQVUsR0FBRSxvQkFBbUIsQ0FBQyxPQUFNLFNBQVEsVUFBVSxHQUFFLDBCQUF5QixDQUFDLFVBQVUsR0FBRSxZQUFXLENBQUMsTUFBSyxrQkFBaUIsYUFBWSxVQUFVLEdBQUUseUJBQXdCLENBQUMsTUFBSyxlQUFlLEdBQUUsNkJBQTRCLENBQUMsR0FBRSxzQkFBcUIsQ0FBQyxHQUFFLHNCQUFxQixDQUFDLEdBQUUsb0JBQW1CLENBQUMsR0FBRSxxQkFBb0IsQ0FBQyxTQUFRLGNBQWMsR0FBRSxzQkFBcUIsQ0FBQyxVQUFVLEdBQUUsV0FBVSxDQUFDLE1BQUssa0JBQWlCLE9BQU8sR0FBRSxnQkFBZSxDQUFDLGdCQUFnQixHQUFFLG9CQUFtQixDQUFDLGNBQWEsZ0JBQWdCLEdBQUUsZUFBYyxDQUFDLFNBQVEsV0FBVSxVQUFVLEdBQUUsMEJBQXlCLENBQUMsUUFBUSxHQUFFLDRCQUEyQixDQUFDLFFBQVEsR0FBRSxxQkFBb0IsQ0FBQyxPQUFPLEdBQUUsVUFBUyxDQUFDLEdBQUUsb0JBQW1CLENBQUMsR0FBRSxpQkFBZ0IsQ0FBQyxNQUFLLE1BQU0sR0FBRSxpQkFBZ0IsQ0FBQyxTQUFTLEdBQUUsZ0JBQWUsQ0FBQyxTQUFTLEdBQUUsZ0JBQWUsQ0FBQyxTQUFTLEdBQUUsZ0JBQWUsQ0FBQyxTQUFTLEdBQUUsbUJBQWtCLENBQUMsTUFBSyxNQUFNLEdBQUUsa0JBQWlCLENBQUMsTUFBSyxNQUFNLEdBQUUsa0JBQWlCLENBQUMsTUFBSyxNQUFNLEdBQUUscUJBQW9CLENBQUMsSUFBSSxHQUFFLG1CQUFrQixDQUFDLGNBQWEsV0FBVyxHQUFFLDJCQUEwQixDQUFDLGNBQWEsV0FBVyxHQUFFLGNBQWEsQ0FBQyxRQUFPLE9BQU8sR0FBRSxtQkFBa0IsQ0FBQyxNQUFNLEdBQUUsWUFBVyxDQUFDLGtCQUFpQixZQUFXLGdCQUFnQixHQUFFLG9CQUFtQixDQUFDLEdBQUUsd0JBQXVCLENBQUMsWUFBWSxHQUFFLGdCQUFlLENBQUMsWUFBWSxHQUFFLGVBQWMsQ0FBQyxHQUFFLHFCQUFvQixDQUFDLFVBQVMsVUFBVSxHQUFFLG1CQUFrQixDQUFDLGFBQVksTUFBTSxHQUFFLG1CQUFrQixDQUFDLFFBQU8sY0FBYSxpQkFBZ0IsZ0JBQWdCLEdBQUUsb0JBQW1CLENBQUMsVUFBVSxHQUFFLFNBQVEsQ0FBQyxHQUFFLGFBQVksQ0FBQyxtQkFBa0IsWUFBVyxpQkFBaUIsR0FBRSxvQkFBbUIsQ0FBQyxHQUFFLG9CQUFtQixDQUFDLEdBQUUsTUFBSyxDQUFDLEdBQUUsYUFBWSxDQUFDLEdBQUUsdUJBQXNCLENBQUMsR0FBRSxxQkFBb0IsQ0FBQyxHQUFFLGdCQUFlLENBQUMsVUFBUyxRQUFRLEdBQUUsaUJBQWdCLENBQUMsT0FBTSxPQUFPLEdBQUUsV0FBVSxDQUFDLFlBQVksR0FBRSxjQUFhLENBQUMsTUFBTSxHQUFFLHdCQUF1QixDQUFDLFVBQVUsR0FBRSxrQkFBaUIsQ0FBQyxZQUFZLEdBQUUsaUJBQWdCLENBQUMsVUFBVSxHQUFFLGdCQUFlLENBQUMsR0FBRSxrQkFBaUIsQ0FBQyxNQUFNLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLHlCQUF3QixDQUFDLFlBQVksR0FBRSxzQkFBcUIsQ0FBQyxRQUFRLEdBQUUsK0JBQThCLENBQUMsR0FBRSxxQkFBb0IsQ0FBQyxhQUFZLFlBQVksR0FBRSxtQkFBa0IsQ0FBQyxNQUFLLGtCQUFpQixVQUFTLGNBQWEsTUFBTSxHQUFFLGlCQUFnQixDQUFDLGNBQWEsT0FBTSxrQkFBaUIsVUFBUyxZQUFZLEdBQUUsaUJBQWdCLENBQUMsUUFBTyxPQUFPLEdBQUUsNEJBQTJCLENBQUMsa0JBQWlCLGNBQWEsa0JBQWlCLFVBQVMsWUFBWSxHQUFFLGlDQUFnQyxDQUFDLGtCQUFpQixjQUFhLGtCQUFpQixVQUFTLFlBQVksR0FBRSxxQkFBb0IsQ0FBQyxPQUFNLGdCQUFnQixHQUFFLG1CQUFrQixDQUFDLE9BQU0sa0JBQWlCLGNBQWEsa0JBQWlCLFVBQVMsWUFBWSxHQUFFLGtCQUFpQixDQUFDLGNBQWEsZ0JBQWdCLEdBQUUsY0FBYSxDQUFDLEdBQUUsa0JBQWlCLENBQUMsR0FBRSxpQkFBZ0IsQ0FBQyxHQUFFLG9CQUFtQixDQUFDLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLGVBQWMsQ0FBQyxHQUFFLGlCQUFnQixDQUFDLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxpQkFBZ0IsQ0FBQyxHQUFFLGlCQUFnQixDQUFDLEdBQUUsb0JBQW1CLENBQUMsR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLGVBQWMsQ0FBQyxHQUFFLFlBQVcsQ0FBQyxHQUFFLGdCQUFlLENBQUMsa0JBQWlCLGNBQWEsa0JBQWlCLFVBQVMsWUFBWSxHQUFFLG1CQUFrQixDQUFDLGtCQUFpQixjQUFhLGtCQUFpQixVQUFTLFlBQVksR0FBRSxpQkFBZ0IsQ0FBQyxZQUFXLGtCQUFpQixlQUFlLEdBQUUsaUJBQWdCLENBQUMsaUJBQWdCLGdCQUFnQixHQUFFLGFBQVksQ0FBQyxZQUFXLGtCQUFpQixlQUFlLEdBQUUsZUFBYyxDQUFDLFNBQVMsR0FBRSxhQUFZLENBQUMsYUFBYSxHQUFFLGFBQVksQ0FBQyxjQUFjLEdBQUUsZ0JBQWUsQ0FBQyxnQkFBZ0IsR0FBRSxZQUFXLENBQUMsZ0JBQWdCLEdBQUUsb0JBQW1CLENBQUMsU0FBUSxhQUFhLEdBQUUsYUFBWSxDQUFDLE9BQU8sR0FBRSxvQkFBbUIsQ0FBQyxPQUFPLEdBQUUsbUJBQWtCLENBQUMsYUFBWSxlQUFjLFlBQVcsV0FBVyxHQUFFLGFBQVksQ0FBQyxlQUFlLEdBQUUscUJBQW9CLENBQUMsZ0JBQWdCLEdBQUUsZ0JBQWUsQ0FBQyxnQkFBZ0IsR0FBRSxxQkFBb0IsQ0FBQyxjQUFhLFdBQVcsR0FBRSxjQUFhLENBQUMsaUJBQWdCLGtCQUFpQixVQUFVLEdBQUUsZUFBYyxDQUFDLFNBQVMsR0FBRSwrQkFBOEIsQ0FBQyxjQUFhLGdCQUFnQixHQUFFLHdCQUF1QixDQUFDLE1BQUssa0JBQWlCLFdBQVUsTUFBTSxHQUFFLGlCQUFnQixDQUFDLE1BQU0sR0FBRSx3QkFBdUIsQ0FBQyxNQUFLLGtCQUFpQixnQkFBZ0IsR0FBRSwyQkFBMEIsQ0FBQyxjQUFhLGtCQUFpQixlQUFlLEdBQUUsZ0JBQWUsQ0FBQyxjQUFhLGdCQUFnQixHQUFFLHVCQUFzQixDQUFDLGNBQWEsZ0JBQWdCLEdBQUUsaUJBQWdCLENBQUMsa0JBQWlCLFlBQVksR0FBRSxtQkFBa0IsQ0FBQyxNQUFLLFNBQVMsR0FBRSxjQUFhLENBQUMsTUFBSyxhQUFhLEdBQUUscUJBQW9CLENBQUMsTUFBSyxNQUFNLEdBQUUsZUFBYyxDQUFDLE1BQU0sR0FBRSxjQUFhLENBQUMsWUFBVyxhQUFZLGtCQUFpQixlQUFlLEdBQUUsMkJBQTBCLENBQUMsTUFBSyxpQkFBaUIsR0FBRSwyQkFBMEIsQ0FBQyxZQUFZLEdBQUUscUJBQW9CLENBQUMsWUFBWSxHQUFFLG9CQUFtQixDQUFDLFlBQVksR0FBRSw4QkFBNkIsQ0FBQyxJQUFJLEdBQUUsa0JBQWlCLENBQUMsZ0JBQWdCLEdBQUUsOEJBQTZCLENBQUMsUUFBUSxHQUFFLDRCQUEyQixDQUFDLFFBQVEsR0FBRSxpQkFBZ0IsQ0FBQyxjQUFhLFdBQVUsTUFBTSxHQUFFLGlCQUFnQixDQUFDLFlBQVksR0FBRSwwQkFBeUIsQ0FBQyxVQUFVLEdBQUUsNEJBQTJCLENBQUMsVUFBVSxHQUFFLGtCQUFpQixDQUFDLFVBQVMsWUFBWSxHQUFFLFNBQVEsQ0FBQyxHQUFFLGtCQUFpQixDQUFDLGNBQWEsT0FBTSxPQUFPLEdBQUUsbUJBQWtCLENBQUMsR0FBRSxVQUFTLENBQUMsT0FBTSxPQUFPLEdBQUUsb0JBQW1CLENBQUMsY0FBYSxPQUFNLGtCQUFpQixTQUFRLFVBQVUsR0FBRSxrQkFBaUIsQ0FBQyxjQUFhLE9BQU0sa0JBQWlCLE9BQU8sR0FBRSw0QkFBMkIsQ0FBQyxjQUFhLE9BQU0sZ0JBQWdCLEdBQUUsbUJBQWtCLENBQUMsR0FBRSw0QkFBMkIsQ0FBQyxPQUFNLE9BQU8sR0FBRSw4QkFBNkIsQ0FBQyxjQUFhLE9BQU0sZ0JBQWdCLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLG1CQUFrQixDQUFDLGNBQWEsaUJBQWdCLGdCQUFnQixHQUFFLGtCQUFpQixDQUFDLEdBQUUsK0JBQThCLENBQUMsTUFBSyxrQkFBaUIsVUFBUyxZQUFZLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxxQkFBb0IsQ0FBQyxjQUFhLGlCQUFnQixnQkFBZ0IsR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLG9CQUFtQixDQUFDLEdBQUUsaUJBQWdCLENBQUMsR0FBRSxtQkFBa0IsQ0FBQyxHQUFFLGlCQUFnQixDQUFDLEdBQUUsdUJBQXNCLENBQUMsVUFBUyxPQUFPLEdBQUUsNkJBQTRCLENBQUMsR0FBRSxzQkFBcUIsQ0FBQyxHQUFFLDJCQUEwQixDQUFDLGFBQVksZUFBYyxZQUFXLFdBQVcsR0FBRSxhQUFZLENBQUMsTUFBSyxNQUFNLEdBQUUscUJBQW9CLENBQUMsZUFBZSxHQUFFLHFCQUFvQixDQUFDLFVBQVUsR0FBRSw4QkFBNkIsQ0FBQyxhQUFZLFlBQVcsY0FBYSxVQUFVLEdBQUUsMkJBQTBCLENBQUMsaUJBQWdCLElBQUksR0FBRSx5QkFBd0IsQ0FBQyxTQUFRLGVBQWMsVUFBVSxHQUFFLHdCQUF1QixDQUFDLFNBQVEsZ0JBQWdCLEdBQUUsZUFBYyxDQUFDLGlCQUFnQixrQkFBaUIsU0FBUyxHQUFFLFFBQU8sQ0FBQyxNQUFNLEdBQUUsa0JBQWlCLENBQUMsUUFBTyxTQUFRLFdBQVcsR0FBRSxxQkFBb0IsQ0FBQyxhQUFhLEdBQUUsbUJBQWtCLENBQUMsR0FBRSxlQUFjLENBQUMsTUFBTSxHQUFFLGtCQUFpQixDQUFDLEdBQUUseUJBQXdCLENBQUMsY0FBYSxPQUFPLEdBQUUsOEJBQTZCLENBQUMsT0FBTSxZQUFZLEdBQUUsa0JBQWlCLENBQUMsT0FBTSxPQUFPLEdBQUUsaUJBQWdCLENBQUMsT0FBTSxPQUFPLEdBQUUsa0JBQWlCLENBQUMsTUFBTSxHQUFFLFVBQVMsQ0FBQyxNQUFNLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLG9CQUFtQixDQUFDLEdBQUUscUJBQW9CLENBQUMsZ0JBQWdCLEdBQUUsd0JBQXVCLENBQUMsZ0JBQWdCLEdBQUUscUJBQW9CLENBQUMsR0FBRSx5QkFBd0IsQ0FBQyxHQUFFLHVCQUFzQixDQUFDLEVBQUM7QUFBRSxJQUFJLE1BQUksR0FBRyxFQUFFO0FBQWIsSUFBZSxLQUFHO0FBQXNQLElBQUksS0FBRztBQUEwaEUsSUFBSSxLQUFHO0FBQUksSUFBSSxNQUFJLEVBQUMsVUFBUyxPQUFHLE9BQU0sTUFBRyx1QkFBc0IsTUFBRywyQkFBMEIsTUFBRyxRQUFPLEtBQUU7QUFBeVIsSUFBSSxNQUFJLEdBQUcsR0FBRztBQUFFLElBQUksTUFBSTtBQUFBO0FBQUE7OztBQ3BCaDdkO0FBQUE7QUFBQSxpQkFBQXltQztBQUFBLEVBQUEsaUJBQUFDO0FBQUEsRUFBQSxlQUFBQztBQUFBLEVBQUEsZ0JBQUFDO0FBQUE7QUFBeTNCLFNBQVNDLElBQUdDLEtBQUU7QUFBQyxNQUFHLE9BQU9BLE9BQUc7QUFBUyxXQUFPQztBQUFHLE1BQUcsTUFBTSxRQUFRRCxHQUFDO0FBQUUsV0FBT0U7QUFBRyxNQUFHLENBQUNGO0FBQUU7QUFBTyxNQUFHLEVBQUMsTUFBS0csR0FBQyxJQUFFSDtBQUFFLE1BQUdJLElBQUcsSUFBSUQsRUFBQztBQUFFLFdBQU9BO0FBQUM7QUFBaUYsU0FBU0UsSUFBR0wsS0FBRTtBQUFDLE1BQUlHLEtBQUVILFFBQUksT0FBSyxTQUFPLE9BQU9BO0FBQUUsTUFBR0csT0FBSSxZQUFVQSxPQUFJO0FBQVMsV0FBTSxtQkFBbUJBLEVBQUM7QUFBQTtBQUNwb0MsTUFBR0csSUFBR04sR0FBQztBQUFFLFVBQU0sSUFBSSxNQUFNLGVBQWU7QUFBRSxNQUFJTyxLQUFFLE9BQU8sVUFBVSxTQUFTLEtBQUtQLEdBQUM7QUFBRSxNQUFHTyxPQUFJO0FBQWtCLFdBQU0sbUJBQW1CQSxFQUFDO0FBQUssTUFBSSxJQUFFQyxJQUFHLENBQUMsR0FBR0osR0FBRSxFQUFFLElBQUksT0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQUUsU0FBTSx3QkFBd0JKLElBQUUsSUFBSTtBQUFBLG9CQUN0TyxDQUFDO0FBQUc7QUFBNEgsU0FBU1MsR0FBRVQsS0FBRTtBQUFDLFNBQU9VLElBQUdWLEdBQUMsR0FBRSxFQUFDLE1BQUtXLEtBQUcsVUFBU1gsSUFBQztBQUFDO0FBQUMsU0FBU1ksSUFBR1osS0FBRUcsSUFBRTtBQUFDLFNBQU9PLElBQUdQLEVBQUMsR0FBRSxFQUFDLE1BQUtVLEtBQUcsVUFBU1YsSUFBRSxHQUFFSCxJQUFDO0FBQUM7QUFBQyxTQUFTYyxHQUFFZCxLQUFFRyxLQUFFLENBQUMsR0FBRTtBQUFDLFNBQU9PLElBQUdWLEdBQUMsR0FBRWUsSUFBR1osR0FBRSxnQkFBZSxJQUFFLEdBQUUsRUFBQyxNQUFLYSxLQUFHLElBQUdiLEdBQUUsSUFBRyxVQUFTSCxLQUFFLE9BQU0sQ0FBQyxDQUFDRyxHQUFFLGFBQVksZ0JBQWVBLEdBQUUsZUFBYztBQUFDO0FBQUMsU0FBU2MsSUFBR2pCLEtBQUU7QUFBQyxTQUFPWSxJQUFHLElBQUdaLEdBQUM7QUFBQztBQUFDLFNBQVNrQixJQUFHbEIsS0FBRTtBQUFDLFNBQU9lLElBQUdmLEdBQUMsR0FBRSxFQUFDLE1BQUttQixLQUFHLE9BQU1uQixJQUFDO0FBQUM7QUFBQyxTQUFTb0IsSUFBR3BCLEtBQUVHLEtBQUUsSUFBR0ksS0FBRSxDQUFDLEdBQUU7QUFBQyxTQUFPRyxJQUFHVixHQUFDLEdBQUVHLE9BQUksTUFBSU8sSUFBR1AsRUFBQyxHQUFFLEVBQUMsTUFBS2tCLEtBQUcsZUFBY3JCLEtBQUUsY0FBYUcsSUFBRSxTQUFRSSxHQUFFLFFBQU87QUFBQztBQUE2SCxTQUFTZSxJQUFHdEIsS0FBRUcsSUFBRTtBQUFDLEVBQUFPLElBQUdWLEdBQUMsR0FBRWUsSUFBR1osRUFBQztBQUFFLE1BQUlJLEtBQUUsQ0FBQztBQUFFLFdBQVEsSUFBRSxHQUFFLElBQUVKLEdBQUUsUUFBTztBQUFJLFVBQUksS0FBR0ksR0FBRSxLQUFLUCxHQUFDLEdBQUVPLEdBQUUsS0FBS0osR0FBRSxDQUFDLENBQUM7QUFBRSxTQUFPSTtBQUFDO0FBQWtILFNBQVNnQixJQUFHdkIsS0FBRUcsSUFBRTtBQUFDLE1BQUcsT0FBT0gsT0FBRztBQUFTLFdBQU9HLEdBQUVILEdBQUM7QUFBRSxNQUFJTyxLQUFFLG9CQUFJO0FBQUksU0FBTyxFQUFFUCxHQUFDO0FBQUUsV0FBUyxFQUFFd0IsSUFBRTtBQUFDLFFBQUdqQixHQUFFLElBQUlpQixFQUFDO0FBQUUsYUFBT2pCLEdBQUUsSUFBSWlCLEVBQUM7QUFBRSxRQUFJLElBQUUsRUFBRUEsRUFBQztBQUFFLFdBQU9qQixHQUFFLElBQUlpQixJQUFFLENBQUMsR0FBRTtBQUFBLEVBQUM7QUFBQyxXQUFTLEVBQUVBLElBQUU7QUFBQyxZQUFPbEIsSUFBR2tCLEVBQUMsR0FBRTtBQUFBLE1BQUMsS0FBS3RCO0FBQUcsZUFBT0MsR0FBRXFCLEdBQUUsSUFBSSxDQUFDLENBQUM7QUFBQSxNQUFFLEtBQUtMO0FBQUcsZUFBT2hCLEdBQUUsRUFBQyxHQUFHcUIsSUFBRSxPQUFNQSxHQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQztBQUFBLE1BQUUsS0FBS0g7QUFBRyxlQUFPbEIsR0FBRSxFQUFDLEdBQUdxQixJQUFFLGVBQWMsRUFBRUEsR0FBRSxhQUFhLEdBQUUsY0FBYSxFQUFFQSxHQUFFLFlBQVksRUFBQyxDQUFDO0FBQUEsTUFBRSxLQUFLUixLQUFHO0FBQUMsWUFBRyxFQUFDLGdCQUFlLEdBQUUsVUFBUyxFQUFDLElBQUVRO0FBQUUsZUFBTyxLQUFHLElBQUUsRUFBRSxJQUFJLENBQUMsR0FBRSxJQUFFLEVBQUUsQ0FBQyxLQUFHLElBQUUsRUFBRSxDQUFDLEdBQUVyQixHQUFFLEVBQUMsR0FBR3FCLElBQUUsVUFBUyxHQUFFLGdCQUFlLEVBQUMsQ0FBQztBQUFBLE1BQUM7QUFBQSxNQUFDLEtBQUtYO0FBQUEsTUFBRyxLQUFLRjtBQUFBLE1BQUcsS0FBS2M7QUFBQSxNQUFHLEtBQUtDO0FBQUEsTUFBRyxLQUFLQztBQUFHLGVBQU94QixHQUFFLEVBQUMsR0FBR3FCLElBQUUsVUFBUyxFQUFFQSxHQUFFLFFBQVEsRUFBQyxDQUFDO0FBQUEsTUFBRSxLQUFLdkI7QUFBQSxNQUFHLEtBQUsyQjtBQUFBLE1BQUcsS0FBS0M7QUFBQSxNQUFHLEtBQUtDO0FBQUEsTUFBRyxLQUFLQztBQUFBLE1BQUUsS0FBS0M7QUFBRyxlQUFPN0IsR0FBRXFCLEVBQUM7QUFBQSxNQUFFO0FBQVEsY0FBTSxJQUFJUyxJQUFHVCxFQUFDO0FBQUEsSUFBQztBQUFBLEVBQUM7QUFBQztBQUFDLFNBQVNVLElBQUdsQyxLQUFFRyxLQUFFZ0MsS0FBRztBQUFDLFNBQU9aLElBQUd2QixLQUFFLENBQUFPLE9BQUcsT0FBT0EsTUFBRyxXQUFTZSxJQUFHbkIsSUFBRUksR0FBRSxNQUFNO0FBQUEsQ0FDeGtELENBQUMsSUFBRUEsRUFBQztBQUFDO0FBQW1CLFNBQVM2QixJQUFHcEMsS0FBRUcsSUFBRTtBQUFDLE1BQUlJLEtBQUVKLE9BQUksUUFBSUEsT0FBSWtDLE1BQUdBLE1BQUdDLEtBQUcsSUFBRS9CLE9BQUk4QixNQUFHQyxNQUFHRCxLQUFHLElBQUUsR0FBRWIsS0FBRTtBQUFFLFdBQVEsS0FBS3hCO0FBQUUsVUFBSU8sS0FBRSxNQUFJLE1BQUksS0FBR2lCO0FBQUksU0FBTyxJQUFFQSxLQUFFLElBQUVqQjtBQUFDO0FBQVcsU0FBU2dDLElBQUd2QyxLQUFFO0FBQUMsU0FBTyxNQUFNLFFBQVFBLEdBQUMsS0FBR0EsSUFBRSxTQUFPO0FBQUM7QUFBNEssU0FBU3dDLElBQUd4QyxLQUFFO0FBQUMsTUFBRyxPQUFPQSxPQUFHO0FBQVMsVUFBTSxJQUFJLFVBQVUsbUJBQW1CO0FBQUUsU0FBT0EsSUFBRSxRQUFRLHVCQUFzQixNQUFNLEVBQUUsUUFBUSxNQUFLLE9BQU87QUFBQztBQUNyZSxTQUFTeUMsSUFBR3pDLEtBQUU7QUFBQyxTQUFPQSxJQUFFLElBQUksTUFBTTtBQUFNO0FBQUMsU0FBUzBDLElBQUcxQyxLQUFFO0FBQUMsU0FBT0EsSUFBRSxJQUFJLElBQUk7QUFBTTtBQUFDLFNBQVMyQyxJQUFHM0MsS0FBRUcsSUFBRTtBQUFDLE1BQUdILElBQUUsU0FBTyxZQUFXO0FBQUMsUUFBSU8sS0FBRVAsSUFBRSxNQUFNLEtBQUs7QUFBRSxRQUFHLENBQUNPO0FBQUUsYUFBTztBQUFLLElBQUFKLEdBQUUsUUFBTXlDLEdBQUUsTUFBTXJDLEVBQUMsRUFBRSxLQUFLLEdBQUc7QUFBQSxFQUFDO0FBQUMsRUFBQVAsSUFBRSxTQUFPLGNBQVlBLElBQUUsS0FBSyxZQUFZLE1BQUksV0FBUyxPQUFPRyxHQUFFO0FBQUs7QUFBNEwsU0FBUzBDLElBQUc3QyxLQUFFO0FBQUMsU0FBT0EsSUFBRSxZQUFZLE1BQUlBO0FBQUM7QUFBQyxTQUFTOEMsSUFBRzlDLEtBQUU7QUFBQyxTQUFPQSxJQUFFLFNBQU8saUJBQWUsT0FBT0EsSUFBRSxPQUFLLFlBQVUsQ0FBQ0EsSUFBRSxJQUFJLFdBQVcsR0FBRyxNQUFJNkMsSUFBRzdDLElBQUUsSUFBSSxDQUFDLENBQUMsS0FBR0EsSUFBRSxJQUFJLFNBQVMsR0FBRztBQUFFO0FBQW9CLFNBQVMrQyxJQUFHL0MsS0FBRTtBQUFDLFNBQU9nRCxJQUFHLElBQUloRCxJQUFFLFlBQVksQ0FBQyxLQUFHLENBQUM2QyxJQUFHN0MsSUFBRSxDQUFDLENBQUM7QUFBQztBQUFDLFNBQVNpRCxJQUFHakQsS0FBRTtBQUFDLFNBQU9BLElBQUUsZ0JBQWMsUUFBSStDLElBQUcvQyxJQUFFLEdBQUcsS0FBRzhDLElBQUc5QyxHQUFDLEtBQUdBLElBQUUsU0FBUyxNQUFNLENBQUFHLE9BQUcrQyxJQUFHL0MsRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTK0MsSUFBR2xELEtBQUU7QUFBQyxTQUFPQSxJQUFFLFNBQU8sY0FBWSxDQUFDLEtBQUssS0FBS0EsSUFBRSxLQUFLO0FBQUM7QUFBQyxTQUFTbUQsSUFBR25ELEtBQUU7QUFBQyxVQUFPQSxPQUFHLE9BQUssU0FBT0EsSUFBRSxVQUFRLDhCQUE0QixPQUFPQSxJQUFFLFNBQU8sWUFBVUEsSUFBRSxNQUFNLEtBQUssTUFBSTtBQUFpQjtBQUFDLFNBQVNvRCxJQUFHcEQsS0FBRTtBQUFDLFNBQU9tRCxJQUFHbkQsSUFBRSxJQUFJLEtBQUdBLElBQUUsY0FBWUEsSUFBRSxRQUFNLGNBQVlBLElBQUUsUUFBTSxVQUFRQSxJQUFFLFFBQU0sWUFBVW1ELElBQUduRCxJQUFFLFNBQVNBLElBQUUsUUFBTSxDQUFDLENBQUM7QUFBQztBQUFhLFNBQVNxRCxJQUFHckQsS0FBRTtBQUFDLE1BQUdzRCxRQUFLLFFBQU0sT0FBT0EsSUFBRyxVQUFTO0FBQUMsUUFBSW5ELEtBQUVtRDtBQUFHLFdBQU9BLE1BQUdELElBQUcsWUFBVSxNQUFLbEQ7QUFBQSxFQUFDO0FBQUMsU0FBT21ELE1BQUdELElBQUcsWUFBVXJELE9BQUcsdUJBQU8sT0FBTyxJQUFJLEdBQUUsSUFBSXFEO0FBQUU7QUFBc0MsU0FBU0UsSUFBR3ZELEtBQUU7QUFBQyxTQUFPcUQsSUFBR3JELEdBQUM7QUFBQztBQUFDLFNBQVN3RCxJQUFHeEQsS0FBRUcsS0FBRSxRQUFPO0FBQUMsRUFBQW9ELElBQUd2RCxHQUFDO0FBQUUsV0FBU08sR0FBRSxHQUFFO0FBQUMsUUFBSSxJQUFFLEVBQUVKLEVBQUMsR0FBRXFCLEtBQUV4QixJQUFFLENBQUM7QUFBRSxRQUFHLENBQUMsTUFBTSxRQUFRd0IsRUFBQztBQUFFLFlBQU0sT0FBTyxPQUFPLElBQUksTUFBTSw2QkFBNkIsQ0FBQyxJQUFJLEdBQUUsRUFBQyxNQUFLLEVBQUMsQ0FBQztBQUFFLFdBQU9BO0FBQUEsRUFBQztBQUFDLFNBQU9qQjtBQUFDO0FBQXUwQixTQUFTa0QsSUFBR3pELEtBQUVHLElBQUVJLElBQUU7QUFBQyxNQUFJLEdBQUVpQixJQUFFLEdBQUUsR0FBRWtDLElBQUVDLElBQUVDLElBQUVDLElBQUVDO0FBQUUsTUFBRyxFQUFDLE1BQUssRUFBQyxJQUFFOUQ7QUFBRSxVQUFPLEVBQUUsTUFBSztBQUFBLElBQUMsS0FBSTtBQUFBLElBQVEsS0FBSTtBQUFBLElBQVUsS0FBSTtBQUFXLGFBQU9jLEdBQUVkLElBQUUsSUFBSU8sSUFBRSxNQUFNLENBQUM7QUFBQSxJQUFFLEtBQUksZUFBYztBQUFDLFVBQUl3RCxLQUFFakQsR0FBRWtELElBQUdoRSxLQUFFTyxFQUFDLENBQUMsR0FBRTBELEtBQUU5RCxHQUFFLDhCQUE0QixjQUFZLElBQUVILElBQUUsU0FBTyxPQUFLLFNBQU8sRUFBRSxVQUFRLGdCQUFja0UsS0FBRTtBQUFHLFVBQUdqQixJQUFHLENBQUM7QUFBRSxlQUFNLENBQUNjLElBQUVFLEVBQUM7QUFBRSxVQUFJRSxLQUFFLENBQUMsTUFBSyxFQUFFLEtBQUksR0FBRztBQUFFLGFBQU8sRUFBRSxTQUFTLFdBQVMsSUFBRSxDQUFDSixJQUFFdEQsR0FBRTBELEVBQUMsR0FBRUYsRUFBQyxJQUFFOUQsR0FBRSw4QkFBNEIsV0FBUyxDQUFDNEQsSUFBRXRELEdBQUUyRCxJQUFHcEUsS0FBRUcsSUFBRUksRUFBQyxDQUFDLEdBQUU4RCxLQUFHNUQsR0FBRTBELEVBQUMsR0FBRUYsRUFBQyxJQUFFLENBQUNGLElBQUV0RCxHQUFFSyxHQUFFc0QsSUFBR3BFLEtBQUVHLElBQUVJLEVBQUMsQ0FBQyxDQUFDLEdBQUVFLEdBQUUwRCxFQUFDLEdBQUVGLEVBQUM7QUFBQSxJQUFDO0FBQUEsSUFBQyxLQUFJO0FBQWlCLGFBQU9LLElBQUd0RSxHQUFDLElBQUUsQ0FBQ3VFLElBQUd2RSxLQUFFTyxFQUFDLEdBQUVpRSxJQUFHeEUsS0FBRU8sSUFBRUosRUFBQyxHQUFFc0UsSUFBR3pFLEtBQUVPLElBQUVKLEVBQUMsQ0FBQyxJQUFFLENBQUN1RSxJQUFHMUUsS0FBRU8sRUFBQyxHQUFFTyxHQUFFLENBQUMwRCxJQUFHeEUsS0FBRU8sSUFBRUosRUFBQyxHQUFFc0UsSUFBR3pFLEtBQUVPLElBQUVKLEVBQUMsR0FBRXdFLElBQUczRSxLQUFFTyxJQUFFSixFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsSUFBRSxLQUFJO0FBQTJCLGFBQU9XLEdBQUUsQ0FBQyxNQUFLOEQsSUFBRzVFLEtBQUVPLEVBQUMsR0FBRSxJQUFJLENBQUM7QUFBQSxJQUFFLEtBQUk7QUFBb0IsYUFBT08sR0FBRSxDQUFDK0QsSUFBRyxDQUFDLEdBQUVELElBQUc1RSxLQUFFTyxFQUFDLEdBQUV1RSxJQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUEsSUFBRSxLQUFJO0FBQWdCLGFBQU9oRSxHQUFFLENBQUMsS0FBSWlFLElBQUcvRSxLQUFFTyxFQUFDLEdBQUUyRCxJQUFFLEdBQUcsQ0FBQztBQUFBLElBQUUsS0FBSSxZQUFXO0FBQUMsVUFBRyxFQUFDLE1BQUtILElBQUUsT0FBTUUsR0FBQyxJQUFFLEdBQUVFLEtBQUVGLEdBQUUsU0FBTztBQUFXLFVBQUdFLE1BQUdGLEdBQUUsVUFBUSxNQUFJeEIsSUFBR3dCLEVBQUMsTUFBSXZCLElBQUd1QixFQUFDO0FBQUUsZUFBT0Y7QUFBRSxVQUFJaUIsS0FBRWIsS0FBRWMsSUFBR2hCLEdBQUUsT0FBTTlELEdBQUUsV0FBVyxJQUFFOEQsR0FBRSxTQUFPLG9CQUFrQmdCLElBQUdoQixHQUFFLE1BQU0sSUFBSSxDQUFBaUIsUUFBR0EsSUFBRSxTQUFPLGFBQVdBLElBQUUsUUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUUvRSxHQUFFLFdBQVcsSUFBRSxJQUFHZ0YsTUFBRzVFLEdBQUUsT0FBTztBQUFFLGFBQU0sQ0FBQ3dELElBQUUsS0FBSWlCLElBQUVqQixPQUFJLFdBQVNpQixLQUFFbEUsR0FBRUwsR0FBRTBFLEdBQUUsQ0FBQyxJQUFFQSxLQUFHSCxFQUFDO0FBQUEsSUFBQztBQUFBLElBQUMsS0FBSTtBQUFrQixhQUFPaEYsSUFBRSxJQUFJTyxJQUFFLE9BQU87QUFBQSxJQUFFLEtBQUk7QUFBTyxhQUFPZSxJQUFHLEdBQUV0QixJQUFFLElBQUlPLElBQUUsT0FBTyxDQUFDO0FBQUEsSUFBRSxLQUFJO0FBQVcsYUFBTSxDQUFDLEVBQUUsS0FBSSxLQUFJQSxHQUFFLE9BQU8sQ0FBQztBQUFBLElBQUUsS0FBSSxZQUFXO0FBQUMsVUFBSXdELEtBQUVxQixJQUFHLE9BQUcsRUFBRSxPQUFNLE1BQUssTUFBTSxHQUFFbkIsS0FBRW9CLElBQUdyRixHQUFDO0FBQUUsVUFBR2lFLElBQUU7QUFBQyxZQUFHQSxPQUFJLFNBQVE7QUFBQyxjQUFJcUIsS0FBRXZCLEdBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFFd0IsTUFBRyxPQUFHQyxLQUFFO0FBQUcsaUJBQU94RixJQUFFLE9BQU8sU0FBTyx3QkFBc0J3QixLQUFFeEIsSUFBRSxhQUFXLE9BQUssU0FBT3dCLEdBQUUsVUFBUSx1QkFBcUIsTUFBTSxLQUFLdUMsRUFBQyxNQUFJd0IsTUFBRyxTQUFNLElBQUV2RixJQUFFLFNBQU8sT0FBSyxTQUFPLEVBQUUsVUFBUSx1QkFBcUIsTUFBTSxLQUFLK0QsRUFBQyxLQUFHdUIsT0FBSSxPQUFLRSxLQUFFLFFBQUssQ0FBQ0QsTUFBRyxJQUFFLElBQUdELElBQUVFLEtBQUUsSUFBRSxFQUFFO0FBQUEsUUFBQztBQUFDLGVBQU90RCxJQUFHNkIsRUFBQztBQUFBLE1BQUM7QUFBQyxVQUFJSSxLQUFFdkIsR0FBRSxpQkFBaUJtQixFQUFDLEdBQUUsRUFBQyxTQUFRMEIsSUFBRSxRQUFPVCxHQUFDLElBQUVoRjtBQUFFLFVBQUdHLEdBQUUsOEJBQTRCLFVBQVM7QUFBQyxZQUFJbUYsS0FBRU4sTUFBR2hGLElBQUUsT0FBTyxTQUFPLFlBQVd1RixNQUFHRSxNQUFHekYsSUFBRSxPQUFPLFNBQU87QUFBVyxZQUFHbUUsSUFBRTtBQUFDLGNBQUdvQixPQUFJRDtBQUFFLG1CQUFNO0FBQUcsY0FBSUksS0FBRSxDQUFDLENBQUMsR0FBRUMsT0FBR0MsSUFBRzdCLEVBQUM7QUFBRSxpQkFBTzRCLFNBQUtELEtBQUVHLElBQUdGLElBQUUsSUFBR1gsT0FBSVUsS0FBRUEsR0FBRSxJQUFJLENBQUFJLFFBQUk3RSxJQUFHNkUsR0FBRSxDQUFDLElBQUdKO0FBQUEsUUFBQztBQUFDLFlBQUlGLEtBQUU1QyxHQUFFLHFCQUFxQm1CLEVBQUMsR0FBRWdDLE1BQUcsQ0FBQztBQUFFLFlBQUdQLElBQUU7QUFBQyxVQUFBTyxNQUFHLENBQUMsQ0FBQztBQUFFLGNBQUlMLEtBQUVFLElBQUdKLEVBQUM7QUFBRSxVQUFBRSxPQUFJSyxNQUFHRixJQUFHSCxFQUFDLElBQUczQixLQUFFQSxHQUFFLE1BQU15QixHQUFFLE1BQU07QUFBQSxRQUFDO0FBQUMsWUFBSVEsS0FBRXBELEdBQUUsc0JBQXNCbUIsRUFBQyxHQUFFa0MsTUFBRyxDQUFDO0FBQUUsWUFBR0QsSUFBRTtBQUFDLGNBQUcsQ0FBQ1YsSUFBRTtBQUFDLFlBQUFXLE1BQUcsQ0FBQyxDQUFDO0FBQUUsZ0JBQUlQLEtBQUVFLElBQUdJLEVBQUM7QUFBRSxZQUFBTixPQUFJTyxNQUFHSixJQUFHSCxFQUFDLElBQUdWLE9BQUlpQixNQUFHQSxJQUFHLElBQUksQ0FBQU4sU0FBSTFFLElBQUcwRSxJQUFFLENBQUM7QUFBQSxVQUFFO0FBQUMsVUFBQTVCLEtBQUVBLEdBQUUsTUFBTSxHQUFFLENBQUNpQyxHQUFFLE1BQU07QUFBQSxRQUFDO0FBQUMsZUFBTSxDQUFDLEdBQUdELEtBQUc3RSxJQUFHZ0YsSUFBR25DLEVBQUMsQ0FBQyxHQUFFLEdBQUdrQyxHQUFFO0FBQUEsTUFBQztBQUFDLFVBQUlkLE1BQUdTLElBQUc3QixFQUFDLEdBQUVtQixNQUFFaUIsSUFBR3BDLEVBQUMsR0FBRXFDLEtBQUVDLElBQUd0QyxFQUFDO0FBQUUsV0FBSTBCLE1BQUdULE9BQUliLE9BQUluRSxJQUFFLE9BQU8sU0FBTyxXQUFTQSxJQUFFLE9BQU8sU0FBTyxpQkFBZUEsSUFBRSxPQUFPLFNBQU87QUFBWSxlQUFNO0FBQUcsTUFBQW1FLE1BQUdnQixPQUFJRCxNQUFFLEtBQUssSUFBSUMsS0FBR21CLEdBQUUsR0FBRUYsS0FBRSxTQUFPLElBQUVwRyxJQUFFLFNBQU8sT0FBSyxTQUFPLEVBQUUsVUFBUSxzQkFBb0IwRCxLQUFFMUQsSUFBRSxTQUFPLE9BQUssU0FBTzBELEdBQUUsVUFBUSxtQkFBaUIwQyxLQUFFLEtBQUssSUFBSUEsSUFBRSxDQUFDLE9BQU16QyxLQUFFM0QsSUFBRSxhQUFXLE9BQUssU0FBTzJELEdBQUUsVUFBUSxzQkFBb0JDLEtBQUU1RCxJQUFFLGFBQVcsT0FBSyxTQUFPNEQsR0FBRSxVQUFRLG1CQUFpQnNCLE1BQUUsS0FBSyxJQUFJQSxLQUFFLENBQUM7QUFBSSxVQUFJcUIsTUFBRyxJQUFHQyxPQUFHO0FBQUcsYUFBT0osT0FBSSxPQUFLdkMsS0FBRTdELElBQUUsU0FBTyxPQUFLLFNBQU82RCxHQUFFLFVBQVEsd0JBQXNCMkMsT0FBRyxNQUFLdEIsUUFBSSxPQUFLcEIsS0FBRTlELElBQUUsYUFBVyxPQUFLLFNBQU84RCxHQUFFLFVBQVEsd0JBQXNCeUMsTUFBRyxNQUFLZCxPQUFJUCxNQUFFLEdBQUVxQixNQUFHLEtBQUl2QixPQUFJb0IsS0FBRSxHQUFFSSxPQUFHLEtBQUk1RCxHQUFFLHFCQUFxQm1CLEVBQUMsTUFBSUEsS0FBRXdDLE1BQUczRCxHQUFFLFVBQVVtQixFQUFDLElBQUduQixHQUFFLHNCQUFzQm1CLEVBQUMsTUFBSUEsS0FBRW5CLEdBQUUsUUFBUW1CLEVBQUMsSUFBRXlDLE9BQUksQ0FBQyxHQUFHWCxJQUFHWCxHQUFDLEdBQUVoRSxJQUFHZ0YsSUFBR25DLEVBQUMsQ0FBQyxHQUFFLEdBQUc4QixJQUFHTyxFQUFDLENBQUM7QUFBQSxJQUFDO0FBQUEsSUFBQyxLQUFJLDRCQUEyQjtBQUFDLFVBQUlyQyxLQUFFdEIsSUFBRyxDQUFDLEdBQUV3QixLQUFFdkIsSUFBRyxDQUFDLEdBQUV5QixLQUFFaEUsR0FBRSxhQUFhLE9BQU80RCxLQUFFLENBQUMsTUFBSSxLQUFJMEIsS0FBRXRGLEdBQUUsYUFBYSxPQUFPOEQsS0FBRSxDQUFDLE1BQUksS0FBSWUsS0FBRSxFQUFFLE1BQU0sU0FBUyxJQUFJLElBQUUsT0FBSztBQUFHLGFBQU0sQ0FBQyxNQUFLYixLQUFFLE1BQUksSUFBRyxLQUFJYSxJQUFFLEVBQUUsT0FBTUEsSUFBRVMsS0FBRSxNQUFJLElBQUcsSUFBSTtBQUFBLElBQUM7QUFBQSxJQUFDLEtBQUk7QUFBaUIsYUFBTyxFQUFFO0FBQUEsSUFBUyxLQUFJO0FBQWlCLGFBQU8sT0FBTyxFQUFFLEtBQUs7QUFBQSxJQUFFLEtBQUk7QUFBbUIsYUFBTSxDQUFDLFFBQU8sRUFBRSxPQUFNLEtBQUs7QUFBQSxJQUFFLEtBQUk7QUFBZ0IsYUFBT2dCLElBQUd6RyxLQUFFRyxFQUFDO0FBQUEsSUFBRSxLQUFJO0FBQWdCLGFBQU8sT0FBTyxFQUFFLEtBQUs7QUFBQSxJQUFFLEtBQUk7QUFBbUIsYUFBTTtBQUFBLElBQVksS0FBSTtBQUFjLGFBQU07QUFBQSxJQUFPO0FBQVEsWUFBTSxJQUFJdUcsSUFBRyxHQUFFLFlBQVk7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTQyxJQUFHM0csS0FBRUcsSUFBRTtBQUFDLFNBQU9zQyxJQUFHekMsR0FBQyxJQUFFeUMsSUFBR3RDLEVBQUM7QUFBQztBQUFDLFNBQVM2RCxJQUFHaEUsS0FBRUcsSUFBRTtBQUFDLE1BQUcsRUFBQyxNQUFLSSxHQUFDLElBQUVQLEtBQUUsSUFBRSxDQUFDLGNBQWEsYUFBWSxVQUFVLEVBQUUsT0FBTyxDQUFBd0IsT0FBR29GLElBQUdyRyxHQUFFaUIsRUFBQyxDQUFDLENBQUMsR0FBRSxJQUFFLEVBQUUsUUFBUSxDQUFBQSxPQUFHakIsR0FBRWlCLEVBQUMsQ0FBQyxFQUFFLEtBQUttRixHQUFFO0FBQUUsV0FBUW5GLE1BQUs7QUFBRSxJQUFBeEIsSUFBRSxLQUFLLENBQUMsRUFBQyxNQUFLLEVBQUMsTUFBSTtBQUFDLFVBQUksSUFBRSxFQUFFLFFBQVEsQ0FBQztBQUFFLFFBQUUsT0FBTyxHQUFFLEdBQUUsQ0FBQyxHQUFFRyxHQUFFLENBQUMsQ0FBQztBQUFBLElBQUMsR0FBRXFCLEVBQUM7QUFBRSxTQUFPb0YsSUFBR3JHLEdBQUUsV0FBVyxLQUFHLEVBQUUsS0FBSyxHQUFFc0csSUFBR3RHLEVBQUMsQ0FBQyxHQUFFLENBQUMsS0FBSUEsR0FBRSxLQUFJRSxHQUFFLENBQUMsR0FBRXFHLElBQUd2RyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVM2RCxJQUFHcEUsS0FBRUcsSUFBRUksSUFBRTtBQUFDLE1BQUcsRUFBQyxNQUFLLEVBQUMsSUFBRVAsS0FBRSxJQUFFLEVBQUUsU0FBUyxNQUFNLENBQUF3QixPQUFHMEIsSUFBRzFCLEVBQUMsQ0FBQztBQUFFLFNBQU9yQixHQUFFLDhCQUE0QixZQUFVLElBQUUsS0FBR0gsSUFBRSxJQUFJLENBQUMsRUFBQyxTQUFRd0IsR0FBQyxNQUFJO0FBQUMsUUFBSSxJQUFFakIsR0FBRTtBQUFFLFdBQU9pQixNQUFHckIsR0FBRSw4QkFBNEIsV0FBUyxDQUFDK0QsSUFBRSxDQUFDLElBQUU7QUFBQSxFQUFDLEdBQUUsVUFBVTtBQUFDO0FBQUMsU0FBUzRDLElBQUc5RyxLQUFFO0FBQUMsU0FBT2lELElBQUdqRCxHQUFDLElBQUVvQixJQUFHLENBQUM4QyxJQUFFLElBQUksR0FBRSxDQUFDLE9BQU1BLEVBQUMsQ0FBQyxJQUFFOUMsSUFBRyxDQUFDOEMsSUFBRSxHQUFHLEdBQUUsR0FBRztBQUFDO0FBQUMsU0FBU1csSUFBRzdFLEtBQUU7QUFBQyxNQUFJO0FBQUUsTUFBSUcsS0FBRUgsSUFBRSxZQUFVLFFBQUcsUUFBTSxNQUFLTyxNQUFHLElBQUVQLElBQUUsVUFBUSxRQUFNLEVBQUUsT0FBSyxNQUFJO0FBQUcsU0FBTSxDQUFDRyxJQUFFSSxFQUFDO0FBQUM7QUFBQyxTQUFTdUUsSUFBRzlFLEtBQUU7QUFBQyxNQUFJO0FBQUUsTUFBSUcsS0FBRUgsSUFBRSxZQUFVLFFBQUcsUUFBTTtBQUFLLFNBQU0sRUFBRSxJQUFFQSxJQUFFLFVBQVEsUUFBTSxFQUFFLFFBQU0sTUFBSSxJQUFHRyxFQUFDO0FBQUM7QUFBQyxTQUFTNEcsSUFBRy9HLEtBQUU7QUFBQyxNQUFJRyxLQUFFMEUsSUFBRzdFLEdBQUMsR0FBRU8sS0FBRVAsSUFBRSxVQUFVLE9BQUssTUFBSTtBQUFHLFNBQU0sQ0FBQ0csSUFBRUksSUFBRSxHQUFHO0FBQUM7QUFBQyxTQUFTeUcsSUFBR2hILEtBQUU7QUFBQyxNQUFJRyxLQUFFMkUsSUFBRzlFLEdBQUM7QUFBRSxTQUFNLENBQUNBLElBQUUsVUFBVSxRQUFNLE1BQUksSUFBR0csRUFBQztBQUFDO0FBQUMsU0FBUzhHLElBQUdqSCxLQUFFO0FBQUMsTUFBSUcsS0FBRTBFLElBQUc3RSxHQUFDLEdBQUVPLEtBQUVQLElBQUUsV0FBVyxPQUFLLE1BQUk7QUFBRyxTQUFNLENBQUNHLElBQUVJLElBQUUsR0FBRztBQUFDO0FBQUMsU0FBUzJHLElBQUdsSCxLQUFFO0FBQUMsTUFBSUcsS0FBRTJFLElBQUc5RSxHQUFDO0FBQUUsU0FBTSxDQUFDQSxJQUFFLFdBQVcsUUFBTSxNQUFJLElBQUdHLEVBQUM7QUFBQztBQUFDLFNBQVNnSCxJQUFHbkgsS0FBRTtBQUFDLE1BQUlHLEtBQUUwRSxJQUFHN0UsR0FBQyxHQUFFTyxLQUFFUCxJQUFFLGFBQWEsT0FBSyxNQUFJO0FBQUcsU0FBTSxDQUFDRyxJQUFFSSxFQUFDO0FBQUM7QUFBQyxTQUFTNkcsSUFBR3BILEtBQUU7QUFBQyxNQUFJRyxLQUFFMkUsSUFBRzlFLEdBQUM7QUFBRSxTQUFNLENBQUNBLElBQUUsYUFBYSxRQUFNLE1BQUksSUFBR0csRUFBQztBQUFDO0FBQUMsU0FBU3VFLElBQUcxRSxLQUFFRyxJQUFFO0FBQUMsTUFBRyxFQUFDLE1BQUtJLEdBQUMsSUFBRVAsS0FBRSxJQUFFLENBQUMsR0FBRSxJQUFFcUgsSUFBR3JILEtBQUVHLEVBQUM7QUFBRSxTQUFPLEtBQUcsRUFBRSxLQUFLVyxHQUFFLENBQUMsQ0FBQyxHQUFFOEYsSUFBR3JHLEdBQUUsUUFBUSxXQUFXLEtBQUcsRUFBRSxLQUFLc0csSUFBR3RHLEdBQUUsT0FBTyxDQUFDLEdBQUVPLEdBQUUsQ0FBQ2lHLElBQUd4RyxFQUFDLEdBQUUrRyxJQUFHdEgsS0FBRUcsRUFBQyxHQUFFLEVBQUUsU0FBTyxJQUFFTSxHQUFFLENBQUMsR0FBRWEsSUFBRyxHQUFFLENBQUMsQ0FBQyxDQUFDLElBQUUsSUFBRzRDLElBQUU4QyxJQUFHekcsRUFBQyxDQUFDLENBQUM7QUFBQztBQUFDLFNBQVNnSCxJQUFHdkgsS0FBRUcsSUFBRTtBQUFDLFNBQU0sQ0FBQ0EsR0FBRSw4QkFBNEIsV0FBU2tFLE1BQUcsSUFBRzhDLElBQUduSCxHQUFDLEdBQUUsUUFBT29ILElBQUdwSCxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVNzRSxJQUFHdEUsS0FBRTtBQUFDLE1BQUk7QUFBRSxNQUFHLEVBQUMsYUFBWUcsSUFBRSxNQUFLSSxHQUFDLElBQUVQO0FBQUUsV0FBUSxJQUFFRyxNQUFHLE9BQUssU0FBT0EsR0FBRSxZQUFVLE9BQUssU0FBTyxFQUFFLEtBQUssWUFBVSxLQUFHQSxHQUFFLFFBQVEsS0FBSyxDQUFDLE1BQUlJLE1BQUdKLEdBQUUsUUFBUSxLQUFLLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxNQUFJQSxHQUFFLEtBQUssTUFBTSxDQUFDO0FBQUM7QUFBQyxTQUFTb0UsSUFBR3ZFLEtBQUVHLElBQUU7QUFBQyxNQUFHLEVBQUMsTUFBS0ksSUFBRSxhQUFZLEVBQUMsSUFBRVA7QUFBRSxTQUFPYyxHQUFFLENBQUNxRyxJQUFHLENBQUMsR0FBRSxDQUFDLFFBQU8sS0FBSSxFQUFFLFFBQVEsS0FBSyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxHQUFFMUcsR0FBRSxDQUFDLEdBQUVLLEdBQUV1RyxJQUFHckgsS0FBRUcsRUFBQyxDQUFDLEdBQUUsR0FBR3lHLElBQUdyRyxHQUFFLFFBQVEsV0FBVyxJQUFFLENBQUMsR0FBRXNHLElBQUd0RyxHQUFFLE9BQU8sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUUyRCxJQUFFa0QsSUFBRyxDQUFDLENBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3pDLElBQUczRSxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsTUFBRyxFQUFDLE1BQUssRUFBQyxJQUFFUDtBQUFFLFNBQU9PLEdBQUUsOEJBQTRCLFdBQVMsQ0FBQ2lILElBQUcsQ0FBQyxJQUFFdEQsS0FBRUcsS0FBRzRDLElBQUcsQ0FBQyxHQUFFOUcsR0FBRSxNQUFNLEdBQUUrRyxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUNELElBQUcsQ0FBQyxHQUFFOUcsR0FBRSxNQUFNLEdBQUUrRyxJQUFHLENBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU00sSUFBR3hILEtBQUU7QUFBQyxTQUFPQSxJQUFFLFNBQU8sb0JBQWtCQSxJQUFFLFFBQVEsS0FBSyxNQUFNLENBQUFHLE9BQUcrQyxJQUFHL0MsRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTc0gsSUFBR3pILEtBQUU7QUFBQyxTQUFPMEgsSUFBRzFILEdBQUMsS0FBR0EsSUFBRSxRQUFRLEtBQUssV0FBUyxLQUFHQSxJQUFFLFFBQVEsS0FBSyxDQUFDLEVBQUUsU0FBTyxvQkFBa0JBLElBQUUsUUFBUSxLQUFLLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxNQUFJQSxJQUFFLEtBQUssTUFBTSxDQUFDO0FBQUM7QUFBQyxTQUFTMEgsSUFBRzFILEtBQUU7QUFBQyxTQUFPQSxJQUFFLFNBQU8sb0JBQWtCQSxJQUFFO0FBQU87QUFBQyxTQUFTd0UsSUFBR3hFLEtBQUVHLElBQUVJLElBQUU7QUFBQyxNQUFHLEVBQUMsTUFBSyxFQUFDLElBQUVQO0FBQUUsTUFBR3dILElBQUcsQ0FBQztBQUFFLFdBQU07QUFBRyxNQUFJLElBQUVySCxHQUFFLFNBQVM7QUFBRSxTQUFPSSxHQUFFLDhCQUE0QixXQUFTRSxHQUFFLENBQUM0RCxLQUFHLENBQUMsQ0FBQyxJQUFFNUQsR0FBRSxDQUFDO0FBQUM7QUFBQyxTQUFTZ0UsSUFBR3pFLEtBQUVHLElBQUVJLElBQUU7QUFBQyxNQUFHLEVBQUMsTUFBSyxFQUFDLElBQUVQLEtBQUUsSUFBRUcsR0FBRSxTQUFTLEdBQUVxQixLQUFFakIsR0FBRSw4QkFBNEIsV0FBUyxDQUFDOEQsS0FBRyxDQUFDLElBQUU7QUFBRSxTQUFPb0QsSUFBRyxDQUFDLElBQUVqRyxLQUFFa0csSUFBRyxDQUFDLElBQUUsQ0FBQ0gsSUFBRyxHQUFFaEgsRUFBQyxHQUFFRSxHQUFFZSxFQUFDLENBQUMsSUFBRTtBQUFFO0FBQUMsU0FBUzBFLElBQUdsRyxLQUFFO0FBQUMsU0FBT3NCLElBQUcsR0FBRXNCLEdBQUUsTUFBTTVDLEdBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3FGLElBQUdyRixLQUFFO0FBQUMsV0FBUUcsS0FBRSxHQUFFQSxLQUFFLEdBQUVBLE1BQUk7QUFBQyxRQUFJSSxLQUFFUCxJQUFFLGNBQWNHLEVBQUM7QUFBRSxTQUFJSSxNQUFHLE9BQUssU0FBT0EsR0FBRSxVQUFRO0FBQVcsYUFBT0EsR0FBRSxLQUFLLFlBQVk7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTcUYsSUFBRzVGLEtBQUU7QUFBQyxTQUFPQSxNQUFFLE9BQU9BLE9BQUcsV0FBU0EsTUFBRSxJQUFHQSxJQUFFLE1BQU07QUFBQSxDQUNsdlEsRUFBRSxTQUFPO0FBQUM7QUFBQyxTQUFTbUcsSUFBR25HLEtBQUU7QUFBQyxFQUFBQSxNQUFFLE9BQU9BLE9BQUcsV0FBU0EsTUFBRTtBQUFHLE1BQUlHLE1BQUdILElBQUUsTUFBTSx1QkFBdUIsS0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFHO0FBQUcsU0FBTzRGLElBQUd6RixFQUFDO0FBQUM7QUFBQyxTQUFTa0csSUFBR3JHLEtBQUU7QUFBQyxFQUFBQSxNQUFFLE9BQU9BLE9BQUcsV0FBU0EsTUFBRTtBQUFHLE1BQUlHLE1BQUdILElBQUUsTUFBTSx1QkFBdUIsS0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFHO0FBQUcsU0FBTzRGLElBQUd6RixFQUFDO0FBQUM7QUFBQyxTQUFTMEYsSUFBRzdGLE1BQUUsR0FBRTtBQUFDLFNBQU8sTUFBTSxLQUFLLEVBQUMsUUFBTyxLQUFLLElBQUlBLEtBQUVzRyxHQUFFLEVBQUMsQ0FBQyxFQUFFLEtBQUtqQyxHQUFFO0FBQUM7QUFBQyxTQUFTb0MsSUFBR3pHLEtBQUVHLElBQUU7QUFBQyxNQUFHLEVBQUMsTUFBSyxFQUFDLE9BQU1JLEdBQUMsRUFBQyxJQUFFUCxLQUFFLElBQUVpRixJQUFHMUUsSUFBRW9ILElBQUczSCxHQUFDLElBQUUsQ0FBQ0csR0FBRSxjQUFZQSxHQUFFLFdBQVc7QUFBRSxTQUFNLENBQUMsR0FBRWlGLElBQUcsT0FBRzdFLElBQUUsR0FBRSxLQUFLLENBQUMsRUFBRSxHQUFFLENBQUM7QUFBQztBQUFDLFNBQVNvSCxJQUFHM0gsS0FBRTtBQUFDLE1BQUcsRUFBQyxXQUFVRyxHQUFDLElBQUVILEtBQUVPLEtBQUVKLEdBQUUsVUFBVSxPQUFHLEVBQUUsU0FBTyxlQUFlO0FBQUUsU0FBT0ksT0FBSSxNQUFJSixHQUFFSSxLQUFFLENBQUMsRUFBRSxTQUFPLHFCQUFtQkosR0FBRUksS0FBRSxDQUFDLEVBQUUsU0FBTztBQUFVO0FBQUMsU0FBU3dFLElBQUcvRSxLQUFFRyxJQUFFO0FBQUMsTUFBSUksS0FBRStHLElBQUd0SCxLQUFFRyxFQUFDLEdBQUUsSUFBRWtILElBQUdySCxLQUFFRyxFQUFDO0FBQUUsU0FBTyxJQUFFTSxHQUFFLENBQUNGLElBQUUsR0FBRU8sR0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFFUDtBQUFDO0FBQUMsU0FBU3FFLElBQUc1RSxLQUFFRyxJQUFFO0FBQUMsTUFBSUksS0FBRStHLElBQUd0SCxLQUFFRyxFQUFDLEdBQUUsSUFBRWtILElBQUdySCxLQUFFRyxFQUFDO0FBQUUsU0FBTyxJQUFFLENBQUNNLEdBQUUsQ0FBQ0YsSUFBRSxHQUFFLENBQUMsQ0FBQyxHQUFFMkQsRUFBQyxJQUFFM0Q7QUFBQztBQUFDLFNBQVMrRyxJQUFHdEgsS0FBRUcsSUFBRTtBQUFDLFNBQU9BLEdBQUUsTUFBTTtBQUFDO0FBQUMsU0FBU2tILElBQUdySCxLQUFFRyxJQUFFO0FBQUMsTUFBSTtBQUFFLE1BQUcsRUFBQyxNQUFLSSxHQUFDLElBQUVQLEtBQUUsSUFBRSxDQUFDO0FBQUUsU0FBT08sR0FBRSxPQUFPLFNBQU8sS0FBRyxFQUFFLEtBQUssR0FBR1AsSUFBRSxJQUFJRyxJQUFFLFFBQVEsQ0FBQyxLQUFJLElBQUVJLEdBQUUsU0FBTyxPQUFLLFNBQU8sRUFBRSxNQUFNLFVBQVEsS0FBRyxFQUFFLEtBQUtKLEdBQUUsTUFBTSxDQUFDLEdBQUUsRUFBRSxXQUFTLElBQUUsS0FBR21CLElBQUcsR0FBRSxDQUFDO0FBQUM7QUFBQyxTQUFTdUYsSUFBRzdHLEtBQUU7QUFBQyxTQUFNLENBQUMsUUFBT0EsSUFBRSxZQUFZLEtBQUssR0FBRyxHQUFFLEdBQUc7QUFBQztBQUE2SSxTQUFTLEtBQUk7QUFBQyxTQUFPNEg7QUFBRTtBQUE2SSxTQUFTLEdBQUc1SCxLQUFFO0FBQUMsU0FBT0EsTUFBRTtBQUFVO0FBQUMsU0FBUyxHQUFHQSxLQUFFO0FBQUMsU0FBT0EsTUFBRTtBQUFTO0FBQUMsU0FBUzZILElBQUc3SCxLQUFFO0FBQUMsU0FBTSxDQUFDQTtBQUFDO0FBQUMsU0FBUzhILElBQUc5SCxLQUFFO0FBQUMsU0FBTSxDQUFDQTtBQUFDO0FBQUMsU0FBUytILElBQUcvSCxLQUFFO0FBQUMsU0FBT0EsT0FBRyxHQUFFQSxNQUFFLElBQUUsR0FBR0EsR0FBQyxJQUFFNkgsSUFBRzdILEdBQUM7QUFBQztBQUFDLFNBQVNnSSxJQUFHaEksS0FBRTtBQUFDLFNBQU9BLE9BQUcsR0FBRUEsTUFBRSxhQUFXOEgsSUFBRzlILEdBQUMsSUFBRSxHQUFHQSxHQUFDO0FBQUM7QUFBb0QsU0FBU2lJLElBQUdqSSxLQUFFO0FBQUMsU0FBT0EsSUFBRSxTQUFPO0FBQUM7QUFBQyxTQUFTa0ksSUFBR2xJLEtBQUVHLEtBQUUseUJBQXdCO0FBQUMsTUFBRyxDQUFDOEgsSUFBR2pJLEdBQUM7QUFBRSxVQUFNLElBQUksTUFBTUcsRUFBQztBQUFDO0FBQTRtQixTQUFTZ0ksSUFBR25JLEtBQUVHLEtBQUUsaUNBQWdDO0FBQUMsUUFBTWlJLElBQUcsSUFBSSxlQUFjcEksR0FBQyxHQUFFb0ksSUFBRyxJQUFJLEdBQUdqSSxFQUFDLE9BQU8sS0FBSyxVQUFVSCxHQUFDLENBQUMsS0FBS0EsR0FBQyxHQUFHLEdBQUUsSUFBSSxNQUFNLDBCQUEwQjtBQUFDO0FBSzIwQyxTQUFTLEdBQUdBLEtBQUVHLElBQUU7QUFBQyxNQUFJSSxLQUFFSixNQUFHQSxHQUFFLEtBQUksR0FBRSxHQUFFcUIsSUFBRTtBQUFFLEVBQUFqQixPQUFJLElBQUVBLEdBQUUsTUFBTSxNQUFLLElBQUVBLEdBQUUsSUFBSSxNQUFLaUIsS0FBRWpCLEdBQUUsTUFBTSxRQUFPLElBQUVBLEdBQUUsSUFBSSxRQUFPUCxPQUFHLFFBQU0sSUFBRSxNQUFJd0I7QUFBRyxXQUFRLElBQUUsTUFBTSxVQUFVLFlBQVksS0FBSyxNQUFLeEIsR0FBQyxHQUFFMEQsS0FBRSxHQUFFQSxLQUFFMkUsSUFBRyxRQUFPM0U7QUFBSSxTQUFLMkUsSUFBRzNFLEVBQUMsQ0FBQyxJQUFFLEVBQUUyRSxJQUFHM0UsRUFBQyxDQUFDO0FBQUUsUUFBTSxxQkFBbUIsTUFBTSxrQkFBa0IsTUFBSyxFQUFFO0FBQUUsTUFBRztBQUFDLElBQUFuRCxPQUFJLEtBQUssYUFBVyxHQUFFLEtBQUssZ0JBQWMsR0FBRSxPQUFPLGtCQUFnQixPQUFPLGVBQWUsTUFBSyxVQUFTLEVBQUMsT0FBTWlCLElBQUUsWUFBVyxLQUFFLENBQUMsR0FBRSxPQUFPLGVBQWUsTUFBSyxhQUFZLEVBQUMsT0FBTSxHQUFFLFlBQVcsS0FBRSxDQUFDLE1BQUksS0FBSyxTQUFPQSxJQUFFLEtBQUssWUFBVTtBQUFBLEVBQUcsUUFBTTtBQUFBLEVBQUM7QUFBQztBQUFrQyxTQUFTOEcsTUFBSTtBQUFDLE9BQUssVUFBUSxDQUFDO0FBQUM7QUFBMHRDLFNBQVNDLElBQUd2SSxLQUFFO0FBQUMsT0FBSyxlQUFlQSxLQUFFLE1BQU0sR0FBRSxLQUFLLFlBQVlBLElBQUUsTUFBTSxHQUFFLEtBQUssVUFBVUEsS0FBRSxNQUFNO0FBQUM7QUFBQyxTQUFTd0ksSUFBR3hJLEtBQUU7QUFBQyxFQUFBdUksSUFBRyxLQUFLLE1BQUt2SSxHQUFDLEdBQUUsS0FBSyxVQUFVQSxLQUFFLFNBQVMsR0FBRSxLQUFLLFVBQVVBLEtBQUUsU0FBUztBQUFDO0FBQUMsU0FBU3lJLElBQUd6SSxLQUFFO0FBQUMsT0FBSyxlQUFlQSxLQUFFLE1BQU0sR0FBRSxLQUFLLFlBQVlBLElBQUUsTUFBTSxHQUFFLEtBQUssVUFBVUEsS0FBRSxNQUFNO0FBQUM7QUFBVyxTQUFTMEksR0FBRTFJLEtBQUU7QUFBQyxFQUFBQSxRQUFJLFdBQVNBLE1BQUUsQ0FBQyxJQUFHLEtBQUssVUFBUUE7QUFBQztBQUEwN0MsU0FBUzJJLElBQUczSSxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsRUFBQUosT0FBSSxXQUFTQSxLQUFFSCxJQUFFO0FBQVEsTUFBSSxJQUFFQSxJQUFFRyxLQUFFLENBQUMsR0FBRSxJQUFFSCxJQUFFRyxLQUFFLENBQUM7QUFBRSxNQUFHLENBQUM7QUFBRSxXQUFPSTtBQUFFLE1BQUcsRUFBRSxTQUFPO0FBQW1CLFlBQU8sS0FBRyxDQUFDQSxLQUFFLGVBQWEsa0JBQWtCLEtBQUssRUFBRSxRQUFRO0FBQUM7QUFBQyxTQUFTcUksSUFBRzVJLEtBQUVHLElBQUVJLElBQUU7QUFBQyxFQUFBSixPQUFJLFdBQVNBLEtBQUU7QUFBSSxNQUFJLElBQUVILElBQUVHLEtBQUUsQ0FBQyxHQUFFLElBQUVILElBQUVHLEtBQUUsQ0FBQztBQUFFLE1BQUcsQ0FBQztBQUFFLFdBQU9JO0FBQUUsTUFBRyxFQUFFLFNBQU87QUFBbUIsWUFBTyxLQUFHLENBQUNBLEtBQUUsZUFBYSxrQkFBa0IsS0FBSyxFQUFFLFFBQVE7QUFBQztBQUFDLFNBQVNzSSxJQUFHN0ksS0FBRUcsSUFBRUksSUFBRTtBQUFDLE1BQUksSUFBRVAsSUFBRUcsTUFBRyxPQUFLLElBQUVBLEtBQUUsQ0FBQztBQUFFLE1BQUcsRUFBRSxDQUFDLEtBQUcsRUFBRSxTQUFPLHNCQUFvQixDQUFDSSxNQUFHLEVBQUUsZ0JBQWU7QUFBQyxRQUFJLElBQUUsRUFBRTtBQUFNLE1BQUUsUUFBTSxFQUFFLE1BQU0sUUFBUUEsS0FBRSxTQUFPLGlCQUFnQixFQUFFLEdBQUUsRUFBRSxnQkFBYyxFQUFFLFVBQVE7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTdUksSUFBRzlJLEtBQUVHLElBQUVJLElBQUU7QUFBQyxNQUFJLElBQUVQLElBQUVHLE1BQUcsT0FBS0gsSUFBRSxTQUFPLElBQUVHLEtBQUUsQ0FBQztBQUFFLE1BQUcsRUFBRSxDQUFDLEtBQUcsRUFBRSxTQUFPLHNCQUFvQixDQUFDSSxNQUFHLEVBQUUsZUFBYztBQUFDLFFBQUksSUFBRSxFQUFFO0FBQU0sV0FBTyxFQUFFLFFBQU0sRUFBRSxNQUFNLFFBQVFBLEtBQUUsU0FBTyxXQUFVLEVBQUUsR0FBRSxFQUFFLGVBQWEsRUFBRSxVQUFRLEdBQUUsRUFBRTtBQUFBLEVBQVk7QUFBQztBQUF5TyxTQUFTd0ksSUFBRy9JLEtBQUVHLElBQUU7QUFBQyxNQUFHQSxLQUFFQSxHQUFFLE9BQUtBLEdBQUUsS0FBSyxXQUFTQSxJQUFFSCxJQUFFLEtBQUssYUFBV0csSUFBRTtBQUFDLFFBQUlJLEtBQUUsRUFBQyxLQUFJUCxJQUFFLEtBQUssSUFBRztBQUFFLFVBQU0sSUFBSWdKLElBQUdoSixJQUFFLEtBQUssV0FBUyxvQkFBa0JHLElBQUVJLEVBQUM7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTMEksSUFBR2pKLEtBQUVHLElBQUU7QUFBQyxPQUFLLFNBQU9ILEtBQUUsS0FBSyxRQUFNLEVBQUMsTUFBS0csR0FBRSxZQUFXLFFBQU9BLEdBQUUsYUFBWSxHQUFFLEtBQUssTUFBSSxFQUFDLE1BQUtBLEdBQUUsV0FBVSxRQUFPQSxHQUFFLFlBQVc7QUFBQztBQUFDLFNBQVMrSSxJQUFHbEosS0FBRTtBQUFDLFNBQU0sV0FBVyxLQUFLQSxHQUFDLElBQUVBLElBQUUsVUFBVSxHQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFQTtBQUFDO0FBQUMsU0FBUyxHQUFHQSxLQUFFRyxJQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUtILElBQUUsT0FBTyxDQUFDLE1BQUksS0FBSSxPQUFNRyxHQUFFLE9BQU9BLEdBQUUsU0FBTyxDQUFDLE1BQUksSUFBRztBQUFDO0FBQUMsU0FBU2dKLElBQUduSixLQUFFO0FBQUMsU0FBT0EsSUFBRSxRQUFRLGdCQUFlLEVBQUUsRUFBRSxRQUFRLGVBQWMsRUFBRTtBQUFDO0FBQUMsU0FBU29KLElBQUdwSixLQUFFRyxJQUFFSSxJQUFFO0FBQUMsRUFBQUEsS0FBRSxLQUFLLFFBQVFBLEVBQUM7QUFBRSxXQUFRLElBQUVQLE1BQUUsTUFBSSxJQUFHLElBQUUsQ0FBQyxHQUFFd0IsS0FBRSxHQUFFLElBQUUsR0FBRSxJQUFFckIsR0FBRSxRQUFPLElBQUUsR0FBRSxLQUFJO0FBQUMsUUFBSXVELEtBQUV2RCxHQUFFLENBQUMsRUFBRSxNQUFLd0QsS0FBRXhELEdBQUUsQ0FBQyxFQUFFLGFBQVd1RDtBQUFFLFFBQUcsTUFBSXZELEdBQUUsQ0FBQyxFQUFFLGFBQVcsTUFBSXVELElBQUUsQ0FBQ0MsT0FBSUQsT0FBSSxRQUFNQSxPQUFJLE9BQUtBLE9BQUksU0FBUTtBQUFDLFVBQUcsRUFBRSxTQUFPO0FBQUUsY0FBTSxJQUFJc0YsSUFBRyxtQkFBaUIsR0FBRSxFQUFDLEtBQUl6SSxHQUFDLENBQUM7QUFBRSxNQUFBbUQsT0FBSSxRQUFNbEM7QUFBQSxJQUFHO0FBQU0sUUFBRSxLQUFLa0MsRUFBQztBQUFBLEVBQUM7QUFBQyxTQUFNLEVBQUMsTUFBSyxrQkFBaUIsTUFBSzFELEtBQUUsT0FBTXdCLElBQUUsT0FBTSxHQUFFLFVBQVMsR0FBRSxLQUFJakIsR0FBQztBQUFDO0FBQUMsU0FBUzhJLElBQUdySixLQUFFRyxJQUFFSSxJQUFFLEdBQUUsR0FBRWlCLElBQUU7QUFBQyxNQUFJLElBQUUsRUFBRSxPQUFPLENBQUMsS0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFFLElBQUUsTUFBSSxPQUFLLE1BQUksS0FBSWtDLEtBQUUsS0FBSyxLQUFLLENBQUM7QUFBRSxTQUFNLEVBQUMsTUFBS0EsS0FBRSxjQUFZLHFCQUFvQixNQUFLMUQsS0FBRSxRQUFPRyxJQUFFLE1BQUtJLElBQUUsU0FBUSxHQUFFLE9BQU0sR0FBRSxLQUFJLEtBQUssUUFBUWlCLEVBQUMsRUFBQztBQUFDO0FBQUMsU0FBUzhILElBQUd0SixLQUFFRyxJQUFFSSxJQUFFLEdBQUU7QUFBQyxFQUFBd0ksSUFBRy9JLEtBQUVPLEVBQUMsR0FBRSxJQUFFLEtBQUssUUFBUSxDQUFDO0FBQUUsTUFBSSxJQUFFLEVBQUMsTUFBSyxXQUFVLE1BQUtKLElBQUUsT0FBTSxDQUFDLEdBQUUsS0FBSSxFQUFDO0FBQUUsU0FBTSxFQUFDLE1BQUssa0JBQWlCLE1BQUtILElBQUUsTUFBSyxRQUFPQSxJQUFFLFFBQU8sTUFBS0EsSUFBRSxNQUFLLFNBQVEsR0FBRSxXQUFVLENBQUMsR0FBRSxjQUFhLENBQUMsR0FBRSxZQUFXLENBQUMsR0FBRSxLQUFJLEVBQUM7QUFBQztBQUFDLFNBQVMsR0FBR0EsS0FBRUcsSUFBRUksSUFBRSxHQUFFLEdBQUVpQixJQUFFO0FBQUMsT0FBRyxFQUFFLFFBQU11SCxJQUFHL0ksS0FBRSxDQUFDO0FBQUUsTUFBSSxJQUFFLEtBQUssS0FBS0EsSUFBRSxJQUFJO0FBQUUsRUFBQUcsR0FBRSxjQUFZSCxJQUFFO0FBQVksTUFBSSxHQUFFMEQ7QUFBRSxNQUFHbkQsSUFBRTtBQUFDLFFBQUc7QUFBRSxZQUFNLElBQUl5SSxJQUFHLHlDQUF3Q3pJLEVBQUM7QUFBRSxJQUFBQSxHQUFFLFVBQVFBLEdBQUUsUUFBUSxLQUFLLENBQUMsRUFBRSxhQUFXLEVBQUUsUUFBT21ELEtBQUVuRCxHQUFFLE9BQU0sSUFBRUEsR0FBRTtBQUFBLEVBQU87QUFBQyxTQUFPLE1BQUksSUFBRSxHQUFFLElBQUVKLElBQUVBLEtBQUUsSUFBRyxFQUFDLE1BQUssSUFBRSxtQkFBaUIsa0JBQWlCLE1BQUtILElBQUUsTUFBSyxRQUFPQSxJQUFFLFFBQU8sTUFBS0EsSUFBRSxNQUFLLFNBQVFHLElBQUUsU0FBUSxHQUFFLFdBQVVILElBQUUsT0FBTSxjQUFhMEQsSUFBRSxZQUFXLEtBQUcsRUFBRSxPQUFNLEtBQUksS0FBSyxRQUFRbEMsRUFBQyxFQUFDO0FBQUM7QUFBQyxTQUFTK0gsSUFBR3ZKLEtBQUVHLElBQUU7QUFBQyxNQUFHLENBQUNBLE1BQUdILElBQUUsUUFBTztBQUFDLFFBQUlPLEtBQUVQLElBQUUsQ0FBQyxFQUFFLEtBQUksSUFBRUEsSUFBRUEsSUFBRSxTQUFPLENBQUMsRUFBRTtBQUFJLElBQUFPLE1BQUcsTUFBSUosS0FBRSxFQUFDLFFBQU9JLEdBQUUsUUFBTyxPQUFNLEVBQUMsTUFBS0EsR0FBRSxNQUFNLE1BQUssUUFBT0EsR0FBRSxNQUFNLE9BQU0sR0FBRSxLQUFJLEVBQUMsTUFBSyxFQUFFLElBQUksTUFBSyxRQUFPLEVBQUUsSUFBSSxPQUFNLEVBQUM7QUFBQSxFQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssV0FBVSxNQUFLUCxLQUFFLE9BQU0sQ0FBQyxHQUFFLEtBQUlHLEdBQUM7QUFBQztBQUFDLFNBQVNxSixJQUFHeEosS0FBRUcsSUFBRUksSUFBRSxHQUFFO0FBQUMsU0FBT3dJLElBQUcvSSxLQUFFTyxFQUFDLEdBQUUsRUFBQyxNQUFLLHlCQUF3QixNQUFLUCxJQUFFLE1BQUssUUFBT0EsSUFBRSxRQUFPLE1BQUtBLElBQUUsTUFBSyxTQUFRRyxJQUFFLFdBQVVILElBQUUsT0FBTSxZQUFXTyxNQUFHQSxHQUFFLE9BQU0sS0FBSSxLQUFLLFFBQVEsQ0FBQyxFQUFDO0FBQUM7QUFBNEYsU0FBU2tKLElBQUd6SixLQUFFRyxJQUFFO0FBQUMsTUFBR0gsSUFBRSxTQUFPO0FBQVUsV0FBT0E7QUFBRSxFQUFBMEosSUFBRyxLQUFHQyxLQUFHRCxJQUFHLEdBQUcsVUFBUSxTQUFTLEdBQUU7QUFBQyxXQUFPLElBQUlULElBQUc5SSxNQUFHQSxHQUFFLFNBQVEsQ0FBQztBQUFBLEVBQUM7QUFBRSxNQUFJSSxLQUFFbUosSUFBRyxNQUFNMUosR0FBQztBQUFFLFNBQU9PO0FBQUM7QUFBQyxTQUFTcUosSUFBRzVKLEtBQUVHLElBQUU7QUFBQyxNQUFJSSxLQUFFa0osSUFBR3pKLEtBQUVHLEVBQUMsR0FBRSxJQUFFLElBQUkwSixJQUFHMUosRUFBQztBQUFFLFNBQU8sRUFBRSxPQUFPSSxFQUFDO0FBQUM7QUFDOHlOLFNBQVN1SixHQUFFOUosS0FBRTtBQUFDLFNBQU8rSixJQUFHLEtBQUsvSixHQUFDO0FBQUM7QUFBQyxTQUFTZ0ssSUFBR2hLLEtBQUU7QUFBQyxTQUFPaUssSUFBRyxLQUFLakssR0FBQztBQUFDO0FBQUMsU0FBU2tLLElBQUdsSyxLQUFFO0FBQUMsU0FBT0EsSUFBRSxRQUFRbUssS0FBRztBQUFBLENBQ3o3aUI7QUFBQztBQUVzNUosU0FBU0MsSUFBR3BLLEtBQUU7QUFBQyxTQUFPQSxJQUFFLElBQUlxSyxLQUFFLEVBQUUsTUFBTTtBQUFDO0FBQTBPLFNBQVNDLElBQUd0SyxLQUFFO0FBQUMsVUFBT0EsS0FBRTtBQUFBLElBQUMsS0FBSTtBQUFBLElBQVMsS0FBSTtBQUFBLElBQXFCLEtBQUk7QUFBYyxhQUFPdUs7QUFBQSxJQUFHO0FBQVEsYUFBT3ZLO0FBQUEsRUFBQztBQUFDO0FBRWhvSyxTQUFTd0ssR0FBRXhLLEtBQUVHLElBQUU7QUFBQyxNQUFHLEVBQUMsUUFBT0ksSUFBRSxLQUFJLEVBQUMsSUFBRUosSUFBRSxFQUFDLE1BQUssR0FBRSxRQUFPcUIsR0FBQyxJQUFFLEVBQUUsT0FBTSxJQUFFckIsR0FBRSxTQUFTLEdBQUUsSUFBRSxJQUFFO0FBQUE7QUFBQTtBQUFBLEtBR25PLEVBQUUsTUFBTTtBQUFBLENBQ1osRUFBRSxLQUFLO0FBQUEsSUFDSixDQUFDO0FBQUE7QUFBQTtBQUFBLElBR0gsSUFBR3VELEtBQUUsSUFBSSxNQUFNLEdBQUcxRCxHQUFDLEtBQUssQ0FBQyx1QkFBdUJPLEVBQUMsWUFBWSxDQUFDLGFBQWFpQixFQUFDLEdBQUc7QUFBRSxTQUFPa0MsR0FBRSxPQUFLLGVBQWNBLEdBQUUsV0FBU3ZELElBQUV1RCxHQUFFLE9BQUssR0FBRUE7QUFBQztBQUF1aEMsU0FBUytHLElBQUd6SyxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsU0FBTyxJQUFJbUssSUFBRyxzREFBcUQxSyxLQUFFRyxJQUFFSSxFQUFDO0FBQUM7QUFBQyxTQUFTb0ssSUFBRzNLLEtBQUVHLElBQUVJLElBQUU7QUFBQyxTQUFPLElBQUltSyxJQUFHLDJFQUEwRTFLLEtBQUVHLElBQUVJLEVBQUM7QUFBQztBQUFDLFNBQVNxSyxJQUFHNUssS0FBRUcsSUFBRTtBQUFDLFNBQU8sSUFBSXVLLElBQUcsZ0VBQStEMUssS0FBRSxNQUFLRyxFQUFDO0FBQUM7QUFBd1YsU0FBUyxHQUFHSCxLQUFFO0FBQUMsU0FBTyxPQUFPQSxPQUFHLGFBQVdBLE1BQUVBLElBQUU7QUFBSztBQUFDLFNBQVM2SyxJQUFHN0ssS0FBRTtBQUFDLE1BQUcsT0FBT0EsT0FBRztBQUFXLFdBQU9BLElBQUU7QUFBSTtBQUFDLFNBQVM4SyxJQUFHOUssS0FBRUcsSUFBRTtBQUFDLE1BQUlJLEtBQUUsT0FBT1AsT0FBRyxhQUFXQSxJQUFFLE9BQUs7QUFBTyxNQUFHTyxPQUFJO0FBQU87QUFBTyxNQUFJLElBQUVBLEdBQUVKLEVBQUM7QUFBRSxTQUFPLE1BQUksU0FBTyxJQUFFSSxHQUFFO0FBQUc7QUFBQyxTQUFTd0ssSUFBRy9LLEtBQUVHLElBQUU7QUFBQyxPQUFJQSxPQUFJLGNBQVlBLE9BQUksWUFBVUgsSUFBRTtBQUFRLFdBQU9BLElBQUU7QUFBUSxNQUFJTyxLQUFFUCxJQUFFRyxFQUFDO0FBQUUsU0FBT0ksT0FBSSxTQUFPQSxLQUFFUCxJQUFFO0FBQUc7QUFBQyxTQUFTZ0wsSUFBR2hMLEtBQUVHLElBQUU7QUFBQyxNQUFHLEVBQUMsTUFBS0ksSUFBRSxRQUFPLEdBQUUsV0FBVSxFQUFDLElBQUVKLElBQUVxQixLQUFFdUosSUFBRy9LLEtBQUVPLEdBQUUsSUFBSSxHQUFFLEdBQUU7QUFBRSxFQUFBaUIsT0FBSSxXQUFTLElBQUUsR0FBR0EsRUFBQyxHQUFFLElBQUVxSixJQUFHckosRUFBQztBQUFHLE1BQUlrQztBQUFFLE1BQUcsTUFBSSxXQUFTQSxLQUFFLEVBQUVuRCxJQUFFSixFQUFDLElBQUd1RCxNQUFHO0FBQUssUUFBRyxLQUFLLFVBQVVuRCxFQUFDLE1BQUksS0FBSyxVQUFVbUQsRUFBQztBQUFFLE1BQUFBLEtBQUU7QUFBQSxTQUFXO0FBQUMsVUFBRyxNQUFNLFFBQVFBLEVBQUM7QUFBRSxlQUFPdUgsSUFBR2pMLEtBQUUwRCxJQUFFLEdBQUUsQ0FBQyxHQUFFQTtBQUFFO0FBQUMsWUFBSUMsS0FBRSxJQUFJdUgsSUFBR3hILElBQUUsR0FBRSxDQUFDO0FBQUUsZUFBT3NILElBQUdoTCxLQUFFMkQsRUFBQyxLQUFHRDtBQUFBLE1BQUM7QUFBQSxJQUFDO0FBQUMsTUFBR0EsT0FBSSxRQUFPO0FBQUMsUUFBSUMsS0FBRXdILElBQUc1SyxHQUFFLElBQUk7QUFBRSxhQUFRcUQsS0FBRSxHQUFFQSxLQUFFRCxHQUFFLFFBQU9DLE1BQUk7QUFBQyxVQUFJQyxLQUFFRixHQUFFQyxFQUFDO0FBQUUsTUFBQXdILElBQUdwTCxLQUFFd0IsSUFBRXJCLElBQUUwRCxFQUFDO0FBQUEsSUFBQztBQUFDLFVBQUksV0FBU0gsS0FBRSxFQUFFbkQsSUFBRUosRUFBQztBQUFBLEVBQUU7QUFBQyxTQUFPdUQ7QUFBQztBQUFDLFNBQVMySCxJQUFHckwsS0FBRUcsSUFBRTtBQUFDLFNBQU9ILElBQUVHLEVBQUM7QUFBQztBQUFDLFNBQVMsR0FBR0gsS0FBRUcsSUFBRUksSUFBRTtBQUFDLEVBQUFQLElBQUVHLEVBQUMsSUFBRUk7QUFBQztBQUFDLFNBQVM2SyxJQUFHcEwsS0FBRUcsSUFBRUksSUFBRSxHQUFFO0FBQUMsTUFBRyxFQUFDLE1BQUssRUFBQyxJQUFFQSxJQUFFaUIsS0FBRTZKLElBQUcsR0FBRSxDQUFDO0FBQUUsTUFBRyxDQUFDN0o7QUFBRTtBQUFPLE1BQUksR0FBRTtBQUFFLE1BQUdyQixPQUFJLFFBQU87QUFBQyxRQUFJdUQsS0FBRW9ILElBQUczSyxJQUFFLENBQUM7QUFBRSxJQUFBdUQsT0FBSSxXQUFTLElBQUUsR0FBR0EsRUFBQyxHQUFFLElBQUVtSCxJQUFHbkgsRUFBQztBQUFBLEVBQUU7QUFBQyxNQUFHLE1BQUksVUFBUSxFQUFFLEdBQUUsQ0FBQyxNQUFJO0FBQU8sVUFBTWtILElBQUcsR0FBRSxDQUFDO0FBQUUsTUFBRyxNQUFNLFFBQVFwSixFQUFDO0FBQUUsSUFBQXlKLElBQUdqTCxLQUFFd0IsSUFBRWpCLElBQUUsQ0FBQztBQUFBLE9BQU07QUFBQyxRQUFJbUQsS0FBRSxJQUFJd0gsSUFBRzFKLElBQUVqQixJQUFFLENBQUMsR0FBRW9ELEtBQUVxSCxJQUFHaEwsS0FBRTBELEVBQUM7QUFBRSxJQUFBQyxPQUFJLFVBQVEySCxJQUFHLEdBQUUsR0FBRTlKLElBQUVtQyxFQUFDO0FBQUEsRUFBQztBQUFDLE1BQUcsTUFBSSxVQUFRLEVBQUUsR0FBRSxDQUFDLE1BQUk7QUFBTyxVQUFNaUgsSUFBRyxHQUFFLENBQUM7QUFBQztBQUFDLFNBQVNLLElBQUdqTCxLQUFFRyxJQUFFSSxJQUFFLEdBQUU7QUFBQyxXQUFRLElBQUUsR0FBRSxJQUFFSixHQUFFLFFBQU8sS0FBSTtBQUFDLFFBQUlxQixLQUFFckIsR0FBRSxDQUFDLEdBQUUsSUFBRSxJQUFJK0ssSUFBRzFKLElBQUVqQixJQUFFLENBQUMsR0FBRSxJQUFFeUssSUFBR2hMLEtBQUUsQ0FBQztBQUFFLFVBQUksV0FBUyxLQUFHdUwsSUFBR3BMLElBQUUsR0FBRSxDQUFDLElBQUU7QUFBQSxFQUFFO0FBQUM7QUFBQyxTQUFTbUwsSUFBR3RMLEtBQUVHLElBQUVJLElBQUUsR0FBRTtBQUFDLE1BQUcsTUFBSTtBQUFLLFVBQU1rSyxJQUFHbEssSUFBRVAsS0FBRUcsRUFBQztBQUFFLE1BQUcsTUFBTSxRQUFRLENBQUM7QUFBRSxRQUFHLEVBQUUsV0FBUztBQUFFLFNBQUdILEtBQUVHLElBQUUsRUFBRSxDQUFDLENBQUM7QUFBQTtBQUFPLFlBQU0sRUFBRSxXQUFTLElBQUVzSyxJQUFHbEssSUFBRVAsS0FBRUcsRUFBQyxJQUFFd0ssSUFBR3BLLElBQUVQLEtBQUVHLEVBQUM7QUFBQTtBQUFPLE9BQUdILEtBQUVHLElBQUUsQ0FBQztBQUFDO0FBQUMsU0FBU29MLElBQUd2TCxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsU0FBT0EsT0FBSSxRQUFNUCxJQUFFLE9BQU9HLElBQUUsQ0FBQyxHQUFFLEtBQUcsTUFBTSxRQUFRSSxFQUFDLEtBQUdQLElBQUUsT0FBT0csSUFBRSxHQUFFLEdBQUdJLEVBQUMsR0FBRUEsR0FBRSxXQUFTUCxJQUFFLE9BQU9HLElBQUUsR0FBRUksRUFBQyxHQUFFO0FBQUU7QUFBQyxTQUFTaUwsSUFBR3hMLEtBQUVHLElBQUU7QUFBQyxNQUFJSSxLQUFFLElBQUkySyxJQUFHbEwsR0FBQztBQUFFLEVBQUFnTCxJQUFHN0ssSUFBRUksRUFBQztBQUFDO0FBQXFDLFNBQVNrTCxJQUFHekwsS0FBRTtBQUFDLE1BQUlHLEtBQUV1TCxJQUFHMUwsR0FBQztBQUFFLEVBQUFHLE9BQUlILElBQUUsY0FBWUc7QUFBRTtBQUFDLFNBQVN1TCxJQUFHMUwsS0FBRTtBQUFDLE1BQUlHLEtBQUVILElBQUUsV0FBVyxRQUFPTyxLQUFFLENBQUM7QUFBRSxXQUFRLElBQUUsR0FBRSxJQUFFSixJQUFFO0FBQUksSUFBQUksR0FBRSxLQUFLUCxJQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUk7QUFBRSxNQUFJLElBQUVPLEdBQUUsUUFBUSxJQUFJO0FBQUUsTUFBRyxNQUFJLE1BQUlBLEdBQUUsU0FBTyxLQUFHQSxHQUFFQSxHQUFFLFNBQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFJO0FBQUksVUFBTWlLLEdBQUUsaUdBQWdHeEssSUFBRSxHQUFHO0FBQUUsTUFBRyxNQUFJLE1BQUlHLEtBQUUsS0FBR0ksR0FBRSxJQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBSSxLQUFJO0FBQUMsUUFBSSxJQUFFQSxHQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssR0FBRztBQUFFLFFBQUcsRUFBRSxPQUFPLEVBQUUsU0FBTyxDQUFDLE1BQUksT0FBSyxFQUFFLE1BQU0sS0FBSyxFQUFFLFdBQVM7QUFBRSxZQUFNaUssR0FBRSx1Q0FBcUMsSUFBRSxLQUFJeEssSUFBRSxHQUFHO0FBQUUsUUFBSXdCLEtBQUUsQ0FBQztBQUFFLGFBQVEsSUFBRSxJQUFFLEdBQUUsSUFBRXJCLElBQUUsS0FBSTtBQUFDLFVBQUksSUFBRUksR0FBRSxDQUFDLEVBQUUsUUFBUSxPQUFNLEVBQUU7QUFBRSxVQUFHLE1BQUksSUFBRztBQUFDLFlBQUdvTCxJQUFHLEtBQUssQ0FBQztBQUFFLGdCQUFNbkIsR0FBRSwrQ0FBNkMsSUFBRSxLQUFJeEssSUFBRSxHQUFHO0FBQUUsUUFBQXdCLEdBQUUsS0FBSyxDQUFDO0FBQUEsTUFBQztBQUFBLElBQUM7QUFBQyxRQUFHQSxHQUFFLFdBQVM7QUFBRSxZQUFNZ0osR0FBRSxvQ0FBbUN4SyxJQUFFLEdBQUc7QUFBRSxXQUFPQSxJQUFFLGFBQVdBLElBQUUsV0FBVyxNQUFNLEdBQUUsQ0FBQyxHQUFFd0I7QUFBQSxFQUFDO0FBQUMsU0FBTztBQUFJO0FBQUMsU0FBU29LLElBQUc1TCxLQUFFO0FBQUMsVUFBT0EsSUFBRSxNQUFLO0FBQUEsSUFBQyxLQUFJO0FBQUEsSUFBUSxLQUFJO0FBQVcsYUFBT0EsSUFBRTtBQUFBLElBQUssS0FBSTtBQUFjLGFBQU9BLElBQUU7QUFBQSxFQUFRO0FBQUM7QUFBQyxTQUFTNkwsSUFBRzdMLEtBQUVHLElBQUU7QUFBQyxFQUFBeUwsSUFBRzVMLEdBQUMsRUFBRSxLQUFLRyxFQUFDO0FBQUM7QUFBQyxTQUFTMkwsSUFBRzlMLEtBQUU7QUFBQyxTQUFPQSxJQUFFLFNBQU8sbUJBQWlCQSxJQUFFLFNBQU8sb0JBQWtCQSxJQUFFLFNBQU8sbUJBQWlCQSxJQUFFLFNBQU8saUJBQWVBLElBQUUsU0FBTztBQUFrQjtBQUFDLFNBQVMrTCxJQUFHL0wsS0FBRTtBQUFDLFNBQU9BLElBQUUsU0FBTyxxQkFBbUIsY0FBWSxLQUFLLFVBQVVBLElBQUUsS0FBSztBQUFDO0FBQVEsU0FBU2dNLE1BQUk7QUFBQyxTQUFPQyxRQUFLQSxNQUFHLElBQUlDLElBQUcsSUFBRyxhQUFhLElBQUdEO0FBQUU7QUFBQyxTQUFTRSxJQUFHbk0sS0FBRUcsSUFBRUksSUFBRSxHQUFFLEdBQUVpQixJQUFFO0FBQUMsU0FBTyxPQUFPeEIsT0FBRyxhQUFXQSxNQUFFb00sSUFBR3BNLEdBQUMsSUFBRyxFQUFDLE1BQUsscUJBQW9CLE1BQUtBLEtBQUUsUUFBT0csTUFBRyxDQUFDLEdBQUUsTUFBS0ksTUFBRzhMLElBQUcsQ0FBQyxDQUFDLEdBQUUsU0FBUSxDQUFDLEdBQUUsVUFBUyxDQUFDLENBQUMsR0FBRSxLQUFJQyxHQUFFLEtBQUcsSUFBSSxHQUFFLE9BQU05SyxNQUFHLEVBQUMsTUFBSyxPQUFHLE9BQU0sTUFBRSxFQUFDO0FBQUM7QUFBQyxTQUFTK0ssSUFBR3ZNLEtBQUVHLElBQUVJLElBQUUsR0FBRSxHQUFFaUIsSUFBRSxHQUFFLEdBQUVrQyxJQUFFO0FBQUMsTUFBSUMsSUFBRUM7QUFBRSxTQUFPLEVBQUUsU0FBTyxhQUFXRCxLQUFFNkksSUFBRyxDQUFDLEdBQUUsR0FBRSxFQUFDLE1BQUssUUFBTyxDQUFDLElBQUU3SSxLQUFFLEdBQUUsS0FBRyxRQUFNLEVBQUUsU0FBTyxhQUFXQyxLQUFFNEksSUFBRyxDQUFDLEdBQUUsR0FBRSxFQUFDLE1BQUssUUFBTyxDQUFDLElBQUU1SSxLQUFFLEdBQUUsRUFBQyxNQUFLLGtCQUFpQixNQUFLd0ksSUFBR3BNLEdBQUMsR0FBRSxRQUFPRyxNQUFHLENBQUMsR0FBRSxNQUFLSSxNQUFHOEwsSUFBRyxDQUFDLENBQUMsR0FBRSxTQUFRMUksTUFBRyxNQUFLLFNBQVFDLE1BQUcsTUFBSyxLQUFJMEksR0FBRTlLLE1BQUcsSUFBSSxHQUFFLFdBQVUsS0FBRyxFQUFDLE1BQUssT0FBRyxPQUFNLE1BQUUsR0FBRSxjQUFhLEtBQUcsRUFBQyxNQUFLLE9BQUcsT0FBTSxNQUFFLEdBQUUsWUFBV2tDLE1BQUcsRUFBQyxNQUFLLE9BQUcsT0FBTSxNQUFFLEVBQUM7QUFBQztBQUFDLFNBQVMrSSxJQUFHek0sS0FBRUcsSUFBRUksSUFBRSxHQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssNEJBQTJCLE1BQUs2TCxJQUFHcE0sR0FBQyxHQUFFLFFBQU9HLE1BQUcsQ0FBQyxHQUFFLE1BQUtJLE1BQUc4TCxJQUFHLENBQUMsQ0FBQyxHQUFFLEtBQUlDLEdBQUUsS0FBRyxJQUFJLEVBQUM7QUFBQztBQUFDLFNBQVNJLElBQUcxTSxLQUFFRyxJQUFFSSxJQUFFLEdBQUUsR0FBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLG9CQUFtQixNQUFLUCxLQUFFLFFBQU9HLE1BQUcsQ0FBQyxHQUFFLE1BQUtJLE1BQUc4TCxJQUFHLENBQUMsQ0FBQyxHQUFFLFFBQU8sS0FBRyxJQUFHLE9BQU0sRUFBQyxNQUFLLE9BQUcsT0FBTSxNQUFFLEdBQUUsS0FBSUMsR0FBRSxLQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBU0ssSUFBRzNNLEtBQUVHLElBQUU7QUFBQyxTQUFNLEVBQUMsTUFBSyxvQkFBbUIsT0FBTUgsS0FBRSxLQUFJc00sR0FBRW5NLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTeU0sSUFBRzVNLEtBQUVHLElBQUU7QUFBQyxTQUFNLEVBQUMsTUFBSyw0QkFBMkIsT0FBTUgsS0FBRSxLQUFJc00sR0FBRW5NLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTME0sSUFBRzdNLEtBQUVHLElBQUU7QUFBQyxNQUFHLENBQUM4SCxJQUFHakksR0FBQztBQUFFLFVBQU0sSUFBSSxNQUFNLHFDQUFxQztBQUFFLFNBQU0sRUFBQyxNQUFLLG1CQUFrQixPQUFNQSxPQUFHLENBQUMsR0FBRSxLQUFJc00sR0FBRW5NLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTMk0sSUFBRzlNLEtBQUVHLEtBQUUsQ0FBQyxHQUFFO0FBQUMsTUFBRyxFQUFDLE9BQU1JLElBQUUsYUFBWSxHQUFFLFdBQVUsR0FBRSxVQUFTaUIsSUFBRSxVQUFTLEdBQUUsS0FBSSxFQUFDLElBQUVyQixJQUFFdUQsSUFBRUMsS0FBRTtBQUFHLFNBQU8sT0FBTzNELE9BQUcsWUFBVTJELEtBQUUzRCxJQUFFLGFBQVkwRCxLQUFFMUQsSUFBRSxRQUFNQSxJQUFFLE1BQU0sRUFBRSxNQUFJLE9BQUswRCxLQUFFMUQsSUFBRSxNQUFNLEdBQUUsRUFBRSxHQUFFMkQsS0FBRSxRQUFJRCxLQUFFMUQsS0FBRSxFQUFDLE1BQUssZUFBYyxLQUFJMEQsSUFBRSxhQUFZQyxJQUFFLFlBQVdwRCxNQUFHLENBQUMsR0FBRSxhQUFZLEtBQUcsQ0FBQyxHQUFFLFdBQVUsS0FBRyxDQUFDLEdBQUUsVUFBU2lCLE1BQUcsQ0FBQyxHQUFFLFVBQVMsS0FBRyxDQUFDLEdBQUUsS0FBSThLLEdBQUUsS0FBRyxJQUFJLEVBQUM7QUFBQztBQUFDLFNBQVNTLElBQUcvTSxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssWUFBVyxNQUFLUCxLQUFFLE9BQU1HLElBQUUsS0FBSW1NLEdBQUUvTCxNQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBU3lNLElBQUdoTixLQUFFRyxJQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssWUFBVyxPQUFNSCxPQUFHLElBQUcsS0FBSXNNLEdBQUVuTSxNQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBUzhNLElBQUdqTixLQUFFRyxJQUFFSSxJQUFFLEdBQUU7QUFBQyxTQUFNLEVBQUMsTUFBSyxpQkFBZ0IsTUFBSzZMLElBQUdwTSxHQUFDLEdBQUUsUUFBT0csTUFBRyxDQUFDLEdBQUUsTUFBS0ksTUFBRzhMLElBQUcsQ0FBQyxDQUFDLEdBQUUsS0FBSUMsR0FBRSxLQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBU1ksSUFBR2xOLEtBQUU7QUFBQyxVQUFPQSxJQUFFLE1BQUs7QUFBQSxJQUFDLEtBQUk7QUFBUyxhQUFNLEVBQUMsVUFBU0EsSUFBRSxNQUFLLE9BQU0sQ0FBQ0EsSUFBRSxJQUFJLEVBQUM7QUFBQSxJQUFFLEtBQUk7QUFBVyxhQUFNLEVBQUMsVUFBUyxRQUFPLE9BQU0sQ0FBQyxFQUFDO0FBQUEsSUFBRSxLQUFJO0FBQVUsYUFBTSxFQUFDLFVBQVNBLElBQUUsTUFBSyxPQUFNLENBQUNBLElBQUUsSUFBSSxFQUFDO0FBQUEsRUFBQztBQUFDO0FBQUMsU0FBU21OLElBQUduTixLQUFFRyxJQUFFO0FBQUMsTUFBRyxDQUFDSSxJQUFFLEdBQUcsQ0FBQyxJQUFFUCxJQUFFLE1BQU0sR0FBRyxHQUFFO0FBQUUsU0FBT08sT0FBSSxTQUFPLElBQUUsRUFBQyxNQUFLLFlBQVcsS0FBSStMLEdBQUVuTSxNQUFHLElBQUksRUFBQyxJQUFFSSxHQUFFLENBQUMsTUFBSSxNQUFJLElBQUUsRUFBQyxNQUFLLFVBQVMsTUFBS0EsSUFBRSxLQUFJK0wsR0FBRW5NLE1BQUcsSUFBSSxFQUFDLElBQUUsSUFBRSxFQUFDLE1BQUssV0FBVSxNQUFLSSxJQUFFLEtBQUkrTCxHQUFFbk0sTUFBRyxJQUFJLEVBQUMsR0FBRSxFQUFDLE1BQUssR0FBRSxNQUFLLEVBQUM7QUFBQztBQUFDLFNBQVNpTixJQUFHcE4sS0FBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLFlBQVcsS0FBSXNNLEdBQUV0TSxPQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBU3FOLElBQUdyTixLQUFFRyxJQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssVUFBUyxNQUFLSCxLQUFFLEtBQUlzTSxHQUFFbk0sTUFBRyxJQUFJLEVBQUM7QUFBQztBQUFDLFNBQVNtTixJQUFHdE4sS0FBRUcsSUFBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLFdBQVUsTUFBS0gsS0FBRSxLQUFJc00sR0FBRW5NLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTb04sSUFBR3ZOLEtBQUVHLElBQUU7QUFBQyxTQUFPSCxJQUFFLENBQUMsTUFBSSxNQUFJcU4sSUFBR3JOLEtBQUVHLEVBQUMsSUFBRUgsUUFBSSxTQUFPb04sSUFBR2pOLEVBQUMsSUFBRW1OLElBQUd0TixLQUFFRyxFQUFDO0FBQUM7QUFBQyxTQUFTcU4sSUFBR3hOLEtBQUVHLElBQUU7QUFBQyxTQUFNLEVBQUMsTUFBSyxrQkFBaUIsTUFBS0gsS0FBRSxLQUFJc00sR0FBRW5NLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTc04sSUFBR3pOLEtBQUVHLElBQUVJLElBQUU7QUFBQyxNQUFHLEVBQUMsVUFBUyxHQUFFLE9BQU0sRUFBQyxJQUFFMk0sSUFBR2xOLEdBQUMsR0FBRXdCLEtBQUUsQ0FBQyxHQUFHLEdBQUUsR0FBR3JCLEVBQUMsR0FBRSxJQUFFLENBQUMsR0FBRyxHQUFFLEdBQUdxQixFQUFDLEVBQUUsS0FBSyxHQUFHO0FBQUUsU0FBTyxJQUFJa00sR0FBRSxHQUFFMU4sS0FBRUcsSUFBRW1NLEdBQUUvTCxNQUFHLElBQUksQ0FBQztBQUFDO0FBQUMsU0FBUzZMLElBQUdwTSxLQUFFRyxJQUFFO0FBQUMsTUFBRyxPQUFPSCxPQUFHLFVBQVM7QUFBQyxRQUFHLFVBQVNBO0FBQUUsYUFBT0E7QUFBRTtBQUFDLFVBQUcsRUFBQyxNQUFLLEdBQUUsTUFBS3dCLEdBQUMsSUFBRTJMLElBQUduTixJQUFFLE1BQUsyTixHQUFFLE9BQU8sQ0FBQyxHQUFFLEVBQUMsVUFBUyxFQUFDLElBQUVULElBQUcsQ0FBQztBQUFFLGFBQU8sSUFBSVEsR0FBRSxDQUFDLEdBQUUsR0FBR2xNLEVBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRSxHQUFFQSxJQUFFOEssR0FBRW5NLE1BQUcsSUFBSSxDQUFDO0FBQUEsSUFBQztBQUFBLEVBQUM7QUFBQyxNQUFHLEVBQUMsTUFBS0ksSUFBRSxNQUFLLEVBQUMsSUFBRTRNLElBQUduTixLQUFFMk4sR0FBRSxPQUFPLENBQUM7QUFBRSxTQUFPLElBQUlELEdBQUUxTixLQUFFTyxJQUFFLEdBQUUrTCxHQUFFbk0sTUFBRyxJQUFJLENBQUM7QUFBQztBQUFDLFNBQVN5TixJQUFHNU4sS0FBRUcsSUFBRUksSUFBRTtBQUFDLFNBQU0sRUFBQyxNQUFLUCxLQUFFLE9BQU1HLElBQUUsVUFBU0EsSUFBRSxLQUFJbU0sR0FBRS9MLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTOEwsSUFBR3JNLEtBQUVHLElBQUU7QUFBQyxTQUFNLEVBQUMsTUFBSyxRQUFPLE9BQU1ILE9BQUcsQ0FBQyxHQUFFLEtBQUlzTSxHQUFFbk0sTUFBRyxJQUFJLEVBQUM7QUFBQztBQUFDLFNBQVMwTixJQUFHN04sS0FBRUcsSUFBRUksSUFBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLFlBQVcsS0FBSVAsS0FBRSxPQUFNRyxJQUFFLEtBQUltTSxHQUFFL0wsTUFBRyxJQUFJLEVBQUM7QUFBQztBQUFDLFNBQVN1TixJQUFHOU4sS0FBRUcsSUFBRUksSUFBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLFlBQVcsTUFBS1AsT0FBRyxDQUFDLEdBQUUsYUFBWUcsTUFBRyxDQUFDLEdBQUUsS0FBSW1NLEdBQUUvTCxNQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBU3dOLElBQUcvTixLQUFFRyxJQUFFSSxLQUFFLE9BQUcsR0FBRTtBQUFDLFNBQU0sRUFBQyxNQUFLLFNBQVEsTUFBS1AsT0FBRyxDQUFDLEdBQUUsYUFBWUcsTUFBRyxDQUFDLEdBQUUsU0FBUUksSUFBRSxLQUFJK0wsR0FBRSxLQUFHLElBQUksRUFBQztBQUFDO0FBQUMsU0FBUzBCLElBQUdoTyxLQUFFRyxJQUFFSSxJQUFFO0FBQUMsU0FBTSxFQUFDLE1BQUssWUFBVyxNQUFLUCxPQUFHLENBQUMsR0FBRSxhQUFZRyxNQUFHLENBQUMsR0FBRSxLQUFJbU0sR0FBRS9MLE1BQUcsSUFBSSxFQUFDO0FBQUM7QUFBQyxTQUFTME4sSUFBR2pPLEtBQUVHLElBQUU7QUFBQyxTQUFNLEVBQUMsTUFBS0gsS0FBRSxRQUFPRyxHQUFDO0FBQUM7QUFBQyxTQUFTbU0sTUFBS3RNLEtBQUU7QUFBQyxNQUFHQSxJQUFFLFdBQVMsR0FBRTtBQUFDLFFBQUlHLEtBQUVILElBQUUsQ0FBQztBQUFFLFdBQU9HLE1BQUcsT0FBT0EsTUFBRyxXQUFTd04sR0FBRSxVQUFVM0IsSUFBRyxHQUFFN0wsRUFBQyxJQUFFd04sR0FBRSxVQUFVM0IsSUFBRyxHQUFFa0MsR0FBRTtBQUFBLEVBQUMsT0FBSztBQUFDLFFBQUcsQ0FBQy9OLElBQUVJLElBQUUsR0FBRSxHQUFFaUIsRUFBQyxJQUFFeEIsS0FBRSxJQUFFd0IsS0FBRSxJQUFJMEssSUFBRyxJQUFHMUssRUFBQyxJQUFFd0ssSUFBRztBQUFFLFdBQU8yQixHQUFFLFVBQVUsR0FBRSxFQUFDLE9BQU0sRUFBQyxNQUFLeE4sSUFBRSxRQUFPSSxHQUFDLEdBQUUsS0FBSSxFQUFDLE1BQUssR0FBRSxRQUFPLEVBQUMsRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFDO0FBQWdjLFNBQVM0TixJQUFHbk8sS0FBRTtBQUFDLFNBQU8sU0FBU0csSUFBRUksSUFBRTtBQUFDLFdBQU9xTixJQUFHNU4sS0FBRUcsSUFBRUksRUFBQztBQUFBLEVBQUM7QUFBQztBQUEreUYsU0FBUzZOLElBQUdwTyxLQUFFO0FBQUMsVUFBT0EsSUFBRSxNQUFLO0FBQUEsSUFBQyxLQUFJO0FBQVMsYUFBTSxFQUFDLFVBQVNBLElBQUUsTUFBSyxPQUFNLENBQUNBLElBQUUsSUFBSSxFQUFDO0FBQUEsSUFBRSxLQUFJO0FBQVcsYUFBTSxFQUFDLFVBQVMsUUFBTyxPQUFNLENBQUMsRUFBQztBQUFBLElBQUUsS0FBSTtBQUFVLGFBQU0sRUFBQyxVQUFTQSxJQUFFLE1BQUssT0FBTSxDQUFDQSxJQUFFLElBQUksRUFBQztBQUFBLEVBQUM7QUFBQztBQUNocUwsU0FBU3FPLElBQUdyTyxLQUFFRyxJQUFFO0FBQUMsTUFBR0EsT0FBSTtBQUFHLFdBQU0sRUFBQyxPQUFNSCxJQUFFLE1BQU07QUFBQSxDQUN4eUwsRUFBRSxTQUFPLEdBQUUsU0FBUSxFQUFDO0FBQUUsTUFBSSxJQUFFQSxJQUFFLE1BQU1HLEVBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEdBQUUsSUFBRSxFQUFFLFNBQU87QUFBRSxTQUFNLEVBQUMsT0FBTSxHQUFFLFNBQVEsRUFBRSxDQUFDLEVBQUUsT0FBTTtBQUFDO0FBQUMsU0FBU21PLElBQUd0TyxLQUFFRyxJQUFFO0FBQUMsTUFBSUksS0FBRUosR0FBRSxJQUFJLE1BQU0sTUFBSyxJQUFFQSxHQUFFLElBQUksTUFBTSxRQUFPLElBQUVrTyxJQUFHbE8sR0FBRSxVQUFTQSxHQUFFLEtBQUs7QUFBRSxFQUFBSSxLQUFFQSxLQUFFLEVBQUUsT0FBTSxFQUFFLFFBQU0sSUFBRSxFQUFFLFVBQVEsSUFBRSxJQUFFLEVBQUUsU0FBUVAsSUFBRSxPQUFLTyxJQUFFUCxJQUFFLFNBQU87QUFBQztBQUFDLFNBQVN1TyxJQUFHdk8sS0FBRUcsSUFBRTtBQUFDLE1BQUdBLEdBQUUsS0FBSyxLQUFLLFNBQVMsU0FBUyxHQUFFO0FBQUMsUUFBSSxJQUFFQSxHQUFFLE1BQUssSUFBRTtBQUFHLFVBQU0sRUFBRSxTQUFPLG1CQUFpQixJQUFFLEVBQUUsU0FBUyxTQUFTLElBQUUsRUFBRSxTQUFPLGtCQUFnQixJQUFFLElBQUksRUFBRSxRQUFRLE1BQUksRUFBRSxTQUFPLGdCQUFjLElBQUUsU0FBTyxFQUFFLFNBQU8sa0JBQWdCLElBQUUsRUFBRSxNQUFNLFNBQVMsSUFBRSxJQUFFLGFBQVlxSyxHQUFFLEdBQUcsRUFBRSxJQUFJLEtBQUssRUFBRSxTQUFPLGtCQUFnQixFQUFFLFdBQVMsQ0FBQyxvREFBb0QsQ0FBQyxVQUFVLENBQUMsSUFBR3hLLElBQUUsT0FBTyxRQUFRLEVBQUUsR0FBRyxDQUFDO0FBQUEsRUFBQztBQUFDLE1BQUlPLEtBQUVKLEdBQUUsS0FBSyxTQUFPLG1CQUFpQkgsSUFBRSxlQUFlRyxHQUFFLElBQUksSUFBRUgsSUFBRSxjQUFjRyxHQUFFLElBQUksR0FBRSxJQUFFQSxHQUFFLFNBQU9BLEdBQUUsT0FBTyxJQUFJLE9BQUdILElBQUUsV0FBVyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUUsSUFBRSxFQUFFLFNBQU8sSUFBRSxFQUFFLEVBQUUsU0FBTyxDQUFDLEVBQUUsTUFBSU8sR0FBRSxLQUFJaUIsS0FBRXJCLEdBQUUsT0FBS0gsSUFBRSxLQUFLRyxHQUFFLElBQUksSUFBRSxFQUFDLE1BQUssUUFBTyxPQUFNLENBQUMsR0FBRSxLQUFJSCxJQUFFLE9BQU8sUUFBUSxDQUFDLEVBQUUsU0FBUyxLQUFLLEVBQUM7QUFBRSxTQUFNLEVBQUMsTUFBS08sSUFBRSxRQUFPLEdBQUUsTUFBS2lCLEdBQUM7QUFBQztBQUFDLFNBQVNnTixJQUFHeE8sS0FBRUcsSUFBRTtBQUFDLE1BQUcsRUFBQyxNQUFLSSxJQUFFLFFBQU8sR0FBRSxNQUFLLEdBQUUsS0FBSWlCLEdBQUMsSUFBRXJCO0FBQUUsTUFBRzJMLElBQUd2TCxFQUFDLEdBQUU7QUFBQyxRQUFJLElBQUUsS0FBS3dMLElBQUd4TCxFQUFDLENBQUMsTUFBS21ELEtBQUUsSUFBSTFELElBQUUsSUFBSSxRQUFRLENBQUM7QUFBTyxVQUFNd0ssR0FBRSxNQUFNOUcsRUFBQyxLQUFLLENBQUMsNEJBQTJCdkQsR0FBRSxHQUFHO0FBQUEsRUFBQztBQUFDLE1BQUksSUFBRXNPLEdBQUUsZ0JBQWdCLEVBQUMsTUFBS2xPLElBQUUsUUFBTyxHQUFFLE1BQUssR0FBRSxLQUFJaUIsR0FBQyxDQUFDO0FBQUUsRUFBQXhCLElBQUUsVUFBVSxLQUFLLENBQUM7QUFBQztBQUMwbEIsU0FBUzBPLElBQUcxTyxLQUFFRyxLQUFFLENBQUMsR0FBRTtBQUFDLE1BQUlJLElBQUUsR0FBRTtBQUFFLE1BQUlpQixLQUFFckIsR0FBRSxRQUFNLGNBQWEsR0FBRTtBQUFFLFNBQU9ILE9BQUcsWUFBVSxJQUFFLElBQUlrTSxJQUFHbE0sTUFBR08sS0FBRUosR0FBRSxVQUFRLFFBQU1JLE9BQUksU0FBTyxTQUFPQSxHQUFFLFVBQVUsR0FBRWlCLE9BQUksWUFBVSxJQUFFaUksSUFBR3pKLEtBQUVHLEdBQUUsWUFBWSxJQUFFLElBQUV5SixJQUFHNUosS0FBRUcsR0FBRSxZQUFZLEtBQUdILGVBQWFrTSxPQUFJLElBQUVsTSxLQUFFd0IsT0FBSSxZQUFVLElBQUVpSSxJQUFHekosSUFBRSxRQUFPRyxHQUFFLFlBQVksSUFBRSxJQUFFeUosSUFBRzVKLElBQUUsUUFBT0csR0FBRSxZQUFZLE1BQUksSUFBRSxJQUFJK0wsSUFBRyxLQUFJLElBQUUvTCxHQUFFLFVBQVEsUUFBTSxNQUFJLFNBQU8sU0FBTyxFQUFFLFVBQVUsR0FBRSxJQUFFSDtBQUFHLE1BQUkwRDtBQUFFLEVBQUFsQyxPQUFJLGNBQVlrQyxLQUFFLElBQUlpTDtBQUFJLE1BQUloTCxLQUFFZ0ssR0FBRSxpQkFBaUIsR0FBRSxHQUFFLEVBQUUsT0FBTyxNQUFNO0FBQUUsSUFBRSxNQUFJLEVBQUMsUUFBTyxhQUFZLE9BQU1oSyxHQUFFLGVBQWMsS0FBSUEsR0FBRSxZQUFXO0FBQUUsTUFBSUMsS0FBRSxJQUFJZ0wsSUFBRyxHQUFFbEwsSUFBRWxDLEVBQUMsRUFBRSxlQUFlLENBQUM7QUFBRSxNQUFHckIsR0FBRSxlQUFheUQsR0FBRSxlQUFhLElBQUV6RCxHQUFFLFlBQVUsUUFBTSxNQUFJLFNBQU8sSUFBRSxDQUFDLElBQUdBLE1BQUdBLEdBQUUsV0FBU0EsR0FBRSxRQUFRO0FBQUksYUFBUTBELEtBQUUsR0FBRUMsS0FBRTNELEdBQUUsUUFBUSxJQUFJLFFBQU8wRCxLQUFFQyxJQUFFRCxNQUFJO0FBQUMsVUFBSUUsS0FBRTVELEdBQUUsUUFBUSxJQUFJMEQsRUFBQyxHQUFFSSxLQUFFdUksSUFBRyxDQUFDLEdBQUVyTSxJQUFFLEVBQUMsUUFBTzBPLElBQUUsR0FBRSxFQUFDLFNBQVEsT0FBTSxDQUFDLEdBQUUxSyxLQUFFSixHQUFFRSxFQUFDO0FBQUUsTUFBQXVILElBQUc1SCxJQUFFTyxHQUFFLE9BQU87QUFBQSxJQUFDO0FBQUMsU0FBT1A7QUFBQztBQUM3MkQsU0FBU2tMLElBQUc5TyxLQUFFRyxJQUFFO0FBQUMsTUFBSUksS0FBRSxJQUFJLFlBQVlQLE1BQUUsT0FBS0csR0FBRSxJQUFJLE1BQU0sT0FBSyxNQUFJQSxHQUFFLElBQUksTUFBTSxTQUFPLEdBQUc7QUFBRSxTQUFPLE9BQU8sT0FBT0ksSUFBRUosRUFBQztBQUFDO0FBQVcsU0FBUzRPLElBQUcvTyxLQUFFO0FBQUMsTUFBSUcsS0FBRUgsSUFBRSxZQUFVQSxJQUFFO0FBQUssTUFBR0c7QUFBRSxhQUFRSSxLQUFFLEdBQUVBLEtBQUVKLEdBQUUsU0FBTyxHQUFFSTtBQUFJLE1BQUFKLEdBQUVJLEVBQUMsRUFBRSxTQUFPLGNBQVlKLEdBQUVJLEtBQUUsQ0FBQyxFQUFFLFNBQU8sd0JBQXNCSixHQUFFSSxFQUFDLEVBQUUsUUFBTUosR0FBRUksRUFBQyxFQUFFLE1BQU0sUUFBUSxPQUFNLE1BQU07QUFBRTtBQUFDLFNBQVN5TyxJQUFHaFAsS0FBRTtBQUFDLE1BQUlHLEtBQUUsSUFBSThPLElBQUdqUCxHQUFDLEdBQUVPLEtBQUUsQ0FBQyxFQUFDLE1BQUssR0FBRSxRQUFPaUIsR0FBQyxNQUFJckIsR0FBRSxpQkFBaUIsRUFBQyxNQUFLLElBQUUsR0FBRSxRQUFPcUIsR0FBQyxDQUFDLEdBQUUsSUFBRSxPQUFHO0FBQUMsUUFBRyxFQUFDLE9BQU1BLElBQUUsS0FBSSxFQUFDLElBQUUsRUFBRTtBQUFJLElBQUFBLEdBQUUsU0FBT2pCLEdBQUVpQixFQUFDLEdBQUUsRUFBRSxTQUFPakIsR0FBRSxDQUFDO0FBQUEsRUFBQztBQUFFLFNBQU0sT0FBSyxFQUFDLE1BQUssdUJBQXNCLFNBQVEsRUFBQyxJQUFJLEdBQUU7QUFBQyxNQUFFLENBQUMsR0FBRXdPLElBQUcsQ0FBQztBQUFBLEVBQUMsRUFBQyxFQUFDO0FBQUU7QUFBQyxTQUFTRyxJQUFHbFAsS0FBRTtBQUFDLE1BQUlHO0FBQUUsTUFBRztBQUFDLElBQUFBLEtBQUV1TyxJQUFHMU8sS0FBRSxFQUFDLE1BQUssV0FBVSxTQUFRLEVBQUMsS0FBSSxDQUFDZ1AsSUFBR2hQLEdBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQztBQUFBLEVBQUMsU0FBT08sSUFBRTtBQUFDLFFBQUksSUFBRTRPLElBQUc1TyxFQUFDO0FBQUUsUUFBRyxHQUFFO0FBQUMsVUFBSSxJQUFFNk8sSUFBRzdPLEVBQUM7QUFBRSxZQUFNOE8sSUFBRyxHQUFFLEVBQUMsS0FBSSxHQUFFLE9BQU05TyxHQUFDLENBQUM7QUFBQSxJQUFDO0FBQUMsVUFBTUE7QUFBQSxFQUFDO0FBQUMsU0FBT0o7QUFBQztBQUFDLFNBQVNpUCxJQUFHcFAsS0FBRTtBQUFDLE1BQUcsRUFBQyxTQUFRRyxHQUFDLElBQUVILEtBQUVPLEtBQUVKLEdBQUUsTUFBTTtBQUFBLENBQ240QztBQUFFLFNBQU9JLEdBQUUsVUFBUSxLQUFHLDZCQUE2QixLQUFLQSxHQUFFLENBQUMsQ0FBQyxLQUFHLFNBQVMsS0FBSytPLElBQUcsT0FBRy9PLElBQUUsRUFBRSxDQUFDLElBQUUrTyxJQUFHLE9BQUcvTyxJQUFFLEVBQUUsSUFBRUEsR0FBRSxVQUFRLEtBQUcsUUFBUSxLQUFLQSxHQUFFLENBQUMsQ0FBQyxLQUFHLHdEQUF3RCxLQUFLK08sSUFBRyxPQUFHL08sSUFBRSxFQUFFLENBQUMsS0FBR0EsR0FBRSxDQUFDLE1BQUksTUFBSStPLElBQUcsT0FBRy9PLElBQUUsRUFBRSxNQUFJLE1BQUlBLEdBQUUsTUFBTSxHQUFFLEVBQUUsRUFBRSxNQUFNLE9BQUcsRUFBRSxXQUFXLEdBQUcsQ0FBQyxJQUFFQSxHQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFFLEVBQUUsSUFBRUo7QUFBQztBQUFDLFNBQVNnUCxJQUFHblAsS0FBRTtBQUFDLE1BQUcsRUFBQyxVQUFTRyxJQUFFLE1BQUtJLEdBQUMsSUFBRVA7QUFBRSxNQUFHRyxJQUFFO0FBQUMsUUFBRyxFQUFDLE9BQU0sR0FBRSxLQUFJLEVBQUMsSUFBRUE7QUFBRSxXQUFPLE9BQU8sRUFBRSxRQUFNLFdBQVMsRUFBQyxPQUFNLEVBQUMsSUFBRUE7QUFBQSxFQUFDO0FBQUMsTUFBR0ksSUFBRTtBQUFDLFFBQUcsRUFBQyxLQUFJLEVBQUMsV0FBVSxHQUFFLGFBQVksRUFBQyxFQUFDLElBQUVBO0FBQUUsV0FBTSxFQUFDLE9BQU0sRUFBQyxNQUFLLEdBQUUsUUFBTyxJQUFFLEVBQUMsRUFBQztBQUFBLEVBQUM7QUFBQztBQTdCamYsSUFBSWdQLEtBQTZCQyxLQUFnRUMsS0FBNERDLElBQW9FQyxLQUF3SUMsS0FBZ0ZDLEtBQW1FQyxLQUFrSDFLLEtBQVVuRixLQUFZQyxLQUFXMEIsS0FBWWpCLEtBQVlFLEtBQVdnQixLQUFVYixLQUFXRyxLQUFVRSxLQUFjSSxLQUFxQkUsS0FBaUJHLEtBQTBCQyxJQUFTTCxLQUFXTSxLQUFrQjVCLEtBQXNMRSxLQUFVRSxLQUV4K0J1UCxLQUF1RjlOLEtBQVUrTixLQUFVdFAsS0FBTUssS0FBd2JrUCxLQUFpQkMsS0FBb0JDLEtBQStCLEdBQVdqTSxJQUFtQkcsS0FBV2xDLEtBQXVIaU8sS0FBdUdkLEtBQ3Q0QmpOLEtBQU9DLEtBQWlJMkMsS0FBNkQyQixLQUFVeUosS0FBdUozSixLQUE2SjRKLElBQUVDLEtBQWlwQ0MsS0FBVUMsS0FDMXBEQyxLQUFjOU4sSUFBOFQrTixLQUFVQyxLQUF5UzVOLEtBQTBlTSxLQUF5SnVOLEtBQWtQQyxLQUFVQyxLQUEreEJDLEtBQVVDLEtBQVUzSyxLQUN6M0M0SyxLQUF1RUMsS0FBVXRSLEtBQWtDK0gsS0FBaUR3SixLQUFRQyxLQUFZN0UsS0FBcUI4RSxLQUFtRkMsSUFBMDlCbkosS0FBa0wsSUFLK3RDc0IsS0FBVXJCLEtBQXNuQlcsS0FBMGhEd0ksS0FBMHVFM0gsS0FBUzRILEtBQXN5RTlILEtBQW9GK0gsS0FBa05DLEtBQ2s3TUMsS0FBMkJDLEtBQWlCQyxLQUFzQkMsS0FBNFFoSSxLQUFlRSxLQUFjRSxLQUNuMGlCNkgsS0FFcXRCLElBQXdoR0MsS0FBYyxJQUE2QkMsS0FBZSxJQUFpQ0MsS0FBdUJDLEtBQWtJQyxJQUFtQ25FLEtBQTJEb0UsS0FBdURDLEtBQXlEQyxLQUF3REMsS0FBMFJDLEtBQWVuSSxLQUFrQm9JLEtBQTZIQyxLQUE4UnZJLEtBQXNWd0ksS0FBWUMsS0FBK2ZDLEtBQTJhQyxLQUEyWEMsS0FBd0pDLEtBQWljdkYsSUFBNmtFd0YsS0FBK3RCQyxLQUFtb0NDLEtBQThpQkMsSUFBMmVwSCxLQVVqK1hxSCxLQUFxekJwSSxLQUFVVCxLQUE4Z0JRLEtBQWtNc0ksS0FBeW9EN0gsS0FBNHJDTSxLQUFvK0d3SCxLQUFxZi9GLElBQXNpQmdHLEtBQXNCQyxLQUEwNkVsRixJQUFhbUYsS0FDbDZXQyxLQUN1cUNqRixLQUN3aEJDLEtBQU1GLEtBQWcxQm1GLEtBQzVoRkMsS0FBUTlFLEtBQTJ4QkksS0FDL1MyRSxLQUE0RHBVLEtBQXdQRSxLQUFvQkg7QUE3Qjl6QjtBQUFBO0FBQUEsSUFBSTRQLE1BQUcsT0FBTztBQUFlLElBQUlDLE1BQUcsQ0FBQ3hQLEtBQUVHLE9BQUk7QUFBQyxlQUFRSSxNQUFLSjtBQUFFLFFBQUFvUCxJQUFHdlAsS0FBRU8sSUFBRSxFQUFDLEtBQUlKLEdBQUVJLEVBQUMsR0FBRSxZQUFXLEtBQUUsQ0FBQztBQUFBLElBQUM7QUFBRSxJQUFJa1AsTUFBRyxDQUFDelAsS0FBRUcsSUFBRUksT0FBSTtBQUFDLFVBQUcsQ0FBQ0osR0FBRSxJQUFJSCxHQUFDO0FBQUUsY0FBTSxVQUFVLFlBQVVPLEVBQUM7QUFBQSxJQUFDO0FBQUUsSUFBSW1QLEtBQUUsQ0FBQzFQLEtBQUVHLElBQUVJLFFBQUtrUCxJQUFHelAsS0FBRUcsSUFBRSx5QkFBeUIsR0FBRUksS0FBRUEsR0FBRSxLQUFLUCxHQUFDLElBQUVHLEdBQUUsSUFBSUgsR0FBQztBQUFyRSxJQUF3RTJQLE1BQUcsQ0FBQzNQLEtBQUVHLElBQUVJLE9BQUk7QUFBQyxVQUFHSixHQUFFLElBQUlILEdBQUM7QUFBRSxjQUFNLFVBQVUsbURBQW1EO0FBQUUsTUFBQUcsY0FBYSxVQUFRQSxHQUFFLElBQUlILEdBQUMsSUFBRUcsR0FBRSxJQUFJSCxLQUFFTyxFQUFDO0FBQUEsSUFBQztBQUE5TSxJQUFnTnFQLE1BQUcsQ0FBQzVQLEtBQUVHLElBQUVJLElBQUUsT0FBS2tQLElBQUd6UCxLQUFFRyxJQUFFLHdCQUF3QixHQUFFLElBQUUsRUFBRSxLQUFLSCxLQUFFTyxFQUFDLElBQUVKLEdBQUUsSUFBSUgsS0FBRU8sRUFBQyxHQUFFQTtBQUFHLElBQUlzUCxNQUFHLENBQUM7QUFBRSxJQUFBTCxJQUFHSyxLQUFHLEVBQUMsV0FBVSxNQUFJalEsS0FBRyxTQUFRLE1BQUlDLEtBQUcsVUFBUyxNQUFJQyxJQUFFLENBQUM7QUFBRSxJQUFJZ1EsTUFBRyxDQUFDOVAsS0FBRUcsSUFBRUksSUFBRSxNQUFJO0FBQUMsVUFBRyxFQUFFUCxPQUFHRyxNQUFHO0FBQU0sZUFBT0EsR0FBRSxhQUFXQSxHQUFFLFdBQVdJLElBQUUsQ0FBQyxJQUFFQSxHQUFFLFNBQU9KLEdBQUUsUUFBUUksSUFBRSxDQUFDLElBQUVKLEdBQUUsTUFBTUksRUFBQyxFQUFFLEtBQUssQ0FBQztBQUFBLElBQUM7QUFBcEgsSUFBc0g2RSxNQUFHMEs7QUFBRyxJQUFJN1AsTUFBRztBQUFQLElBQWdCQyxNQUFHO0FBQW5CLElBQTJCMEIsTUFBRztBQUE5QixJQUF1Q2pCLE1BQUc7QUFBMUMsSUFBbURFLE1BQUc7QUFBdEQsSUFBOERnQixNQUFHO0FBQWpFLElBQXdFYixNQUFHO0FBQTNFLElBQW1GRyxNQUFHO0FBQXRGLElBQTZGRSxNQUFHO0FBQWhHLElBQTJHSSxNQUFHO0FBQTlHLElBQWdJRSxNQUFHO0FBQW5JLElBQWlKRyxNQUFHO0FBQXBKLElBQTJLQyxLQUFFO0FBQTdLLElBQW9MTCxNQUFHO0FBQXZMLElBQStMTSxNQUFHO0FBQWxNLElBQWlONUIsTUFBRyxvQkFBSSxJQUFJLENBQUN3QixLQUFHakIsS0FBR0UsS0FBR2dCLEtBQUdiLEtBQUdHLEtBQUdFLEtBQUdJLEtBQUdFLEtBQUdHLEtBQUdDLElBQUVMLEtBQUdNLEdBQUUsQ0FBQztBQUFnSSxJQUFJMUIsTUFBR1A7QUFBRyxJQUFJUyxNQUFHLENBQUFSLFFBQUcsSUFBSSxLQUFLLFdBQVcsU0FBUSxFQUFDLE1BQUssY0FBYSxDQUFDLEVBQUUsT0FBT0EsR0FBQztBQUU1aUMsSUFBSStQLE1BQUcsY0FBYyxNQUFLO0FBQUEsTUFBQyxPQUFLO0FBQUEsTUFBa0IsWUFBWTVQLElBQUU7QUFBQyxjQUFNRSxJQUFHRixFQUFDLENBQUMsR0FBRSxLQUFLLE1BQUlBO0FBQUEsTUFBQztBQUFBLElBQUM7QUFBekYsSUFBMkY4QixNQUFHOE47QUFBRyxJQUFJQyxNQUFHLE1BQUk7QUFBQSxJQUFDO0FBQVosSUFBY3RQLE1BQUdzUDtBQUFqQixJQUFvQmpQLE1BQUdpUDtBQUFpYixJQUFJQyxNQUFHLEVBQUMsTUFBS2pPLElBQUU7QUFBRSxJQUFJa08sTUFBRyxFQUFDLE1BQUtuTyxJQUFFLE1BQUssS0FBRTtBQUF0QixJQUF3Qm9PLE1BQUcsRUFBQyxNQUFLcE8sSUFBRSxNQUFLLE1BQUcsU0FBUSxLQUFFO0FBQXJELElBQXVELElBQUUsRUFBQyxNQUFLQSxHQUFDO0FBQWhFLElBQWtFbUMsS0FBRSxFQUFDLE1BQUtuQyxJQUFFLE1BQUssS0FBRTtBQUFuRixJQUFxRnNDLE1BQUcsQ0FBQzZMLEtBQUdELEdBQUU7QUFBOUYsSUFBZ0c5TixNQUFHLENBQUNnTyxLQUFHRixHQUFFO0FBQTBHLElBQUlHLE1BQUcsQ0FBQ3BRLEtBQUVHLElBQUVJLE9BQUk7QUFBQyxVQUFHLEVBQUVQLE9BQUdHLE1BQUc7QUFBTSxlQUFPLE1BQU0sUUFBUUEsRUFBQyxLQUFHLE9BQU9BLE1BQUcsV0FBU0EsR0FBRUksS0FBRSxJQUFFSixHQUFFLFNBQU9JLEtBQUVBLEVBQUMsSUFBRUosR0FBRSxHQUFHSSxFQUFDO0FBQUEsSUFBQztBQUF6RyxJQUEyRytPLE1BQUdjO0FBQzc0QixJQUFJL04sTUFBRztBQUFQLElBQVdDLE1BQUc7QUFBMEgsSUFBSTJDLE1BQUc3QztBQUFzRCxJQUFJd0UsTUFBR3JFO0FBQUcsSUFBSThOLE1BQUcsY0FBYyxNQUFLO0FBQUEsTUFBQyxPQUFLO0FBQUEsTUFBc0IsWUFBWWxRLElBQUVJLElBQUUsSUFBRSxRQUFPO0FBQUMsY0FBTSxjQUFjQSxFQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssVUFBVUosR0FBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUUsS0FBSyxPQUFLQTtBQUFBLE1BQUM7QUFBQSxJQUFDO0FBQXpKLElBQTJKdUcsTUFBRzJKO0FBQXNKLElBQU1FLE1BQUcsTUFBSztBQUFBLE1BQUMsWUFBWXBRLElBQUU7QUFBQyxRQUFBd1AsSUFBRyxNQUFLVyxJQUFFLE1BQU07QUFBRSxRQUFBVixJQUFHLE1BQUtVLElBQUUsSUFBSSxJQUFJblEsRUFBQyxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsMEJBQTBCQSxJQUFFO0FBQUMsWUFBSUksS0FBRW1QLEdBQUUsTUFBS1ksRUFBQyxHQUFFLElBQUU7QUFBRSxpQkFBUSxJQUFFLEdBQUUsSUFBRW5RLEdBQUUsVUFBUUksR0FBRSxJQUFJSixHQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUU7QUFBSTtBQUFJLGVBQU87QUFBQSxNQUFDO0FBQUEsTUFBQywyQkFBMkJBLElBQUU7QUFBQyxZQUFJSSxLQUFFbVAsR0FBRSxNQUFLWSxFQUFDLEdBQUUsSUFBRTtBQUFFLGlCQUFRLElBQUVuUSxHQUFFLFNBQU8sR0FBRSxLQUFHLEtBQUdJLEdBQUUsSUFBSUosR0FBRSxPQUFPLENBQUMsQ0FBQyxHQUFFO0FBQUk7QUFBSSxlQUFPO0FBQUEsTUFBQztBQUFBLE1BQUMscUJBQXFCQSxJQUFFO0FBQUMsWUFBSUksS0FBRSxLQUFLLDBCQUEwQkosRUFBQztBQUFFLGVBQU9BLEdBQUUsTUFBTSxHQUFFSSxFQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsc0JBQXNCSixJQUFFO0FBQUMsWUFBSUksS0FBRSxLQUFLLDJCQUEyQkosRUFBQztBQUFFLGVBQU9BLEdBQUUsTUFBTUEsR0FBRSxTQUFPSSxFQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMscUJBQXFCSixJQUFFO0FBQUMsZUFBT3VQLEdBQUUsTUFBS1ksRUFBQyxFQUFFLElBQUluUSxHQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsc0JBQXNCQSxJQUFFO0FBQUMsZUFBT3VQLEdBQUUsTUFBS1ksRUFBQyxFQUFFLElBQUloQixJQUFHLE9BQUduUCxJQUFFLEVBQUUsQ0FBQztBQUFBLE1BQUM7QUFBQSxNQUFDLFVBQVVBLElBQUU7QUFBQyxZQUFJSSxLQUFFLEtBQUssMEJBQTBCSixFQUFDO0FBQUUsZUFBT0EsR0FBRSxNQUFNSSxFQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsUUFBUUosSUFBRTtBQUFDLFlBQUlJLEtBQUUsS0FBSywyQkFBMkJKLEVBQUM7QUFBRSxlQUFPQSxHQUFFLE1BQU0sR0FBRUEsR0FBRSxTQUFPSSxFQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsS0FBS0osSUFBRTtBQUFDLGVBQU8sS0FBSyxRQUFRLEtBQUssVUFBVUEsRUFBQyxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsTUFBTUEsSUFBRUksS0FBRSxPQUFHO0FBQUMsWUFBSSxJQUFFLElBQUlpQyxJQUFHLENBQUMsR0FBR2tOLEdBQUUsTUFBS1ksRUFBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFLLElBQUUsSUFBSSxPQUFPL1AsS0FBRSxJQUFJLENBQUMsTUFBSSxDQUFDO0FBQUUsZUFBT0osR0FBRSxNQUFNLENBQUM7QUFBQSxNQUFDO0FBQUEsTUFBQyx1QkFBdUJBLElBQUU7QUFBQyxZQUFJSSxLQUFFbVAsR0FBRSxNQUFLWSxFQUFDO0FBQUUsZUFBTyxNQUFNLFVBQVUsS0FBSyxLQUFLblEsSUFBRSxPQUFHSSxHQUFFLElBQUksQ0FBQyxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsMEJBQTBCSixJQUFFO0FBQUMsWUFBSUksS0FBRW1QLEdBQUUsTUFBS1ksRUFBQztBQUFFLGVBQU8sTUFBTSxVQUFVLEtBQUssS0FBS25RLElBQUUsT0FBRyxDQUFDSSxHQUFFLElBQUksQ0FBQyxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsaUJBQWlCSixJQUFFO0FBQUMsWUFBSUksS0FBRW1QLEdBQUUsTUFBS1ksRUFBQztBQUFFLGVBQU8sTUFBTSxVQUFVLE1BQU0sS0FBS25RLElBQUUsT0FBR0ksR0FBRSxJQUFJLENBQUMsQ0FBQztBQUFBLE1BQUM7QUFBQSxJQUFDO0FBQUUsSUFBQStQLEtBQUUsb0JBQUk7QUFBUSxJQUFJRSxNQUFHRDtBQUFHLElBQUlFLE1BQUcsQ0FBQyxLQUFJO0FBQUEsR0FDanJELE1BQUssTUFBSyxHQUFHO0FBRHdwRCxJQUN0cERDLE1BQUcsSUFBSUYsSUFBR0MsR0FBRTtBQUQwb0QsSUFDeG9EN04sS0FBRThOO0FBQW9RLElBQUEvTixJQUFHLG9CQUFrQixvQkFBSSxJQUFJLENBQUMsT0FBTSxhQUFhLENBQUM7QUFBRSxJQUFJZ08sTUFBR2hPO0FBQUcsSUFBSWlPLE1BQUcsQ0FBQyxRQUFPLFFBQU8sTUFBSyxPQUFNLFdBQVUsU0FBUSxNQUFLLE9BQU0sU0FBUSxVQUFTLFFBQU8sUUFBTyxTQUFRLFVBQVMsU0FBUSxLQUFLO0FBQThLLElBQUk1TixNQUFHLElBQUksSUFBSTROLEdBQUU7QUFBeWQsSUFBSXROLE1BQUc7QUFBa0osSUFBSXVOLE1BQUc7QUFBRyxhQUFRN1EsTUFBRSxHQUFFQSxPQUFHNlEsS0FBRzdRO0FBQUksTUFBQXFELElBQUc7QUFBK00sSUFBSXlOLE1BQUd0TjtBQUFHLElBQUl1TixNQUFHLEVBQUMsU0FBUSxDQUFDLE1BQU0sR0FBRSxVQUFTLENBQUMsTUFBTSxHQUFFLE9BQU0sQ0FBQyxNQUFNLEdBQUUsbUJBQWtCLENBQUMsUUFBTyxVQUFTLE1BQU0sR0FBRSxnQkFBZSxDQUFDLFFBQU8sVUFBUyxRQUFPLFdBQVUsU0FBUyxHQUFFLDBCQUF5QixDQUFDLFFBQU8sVUFBUyxNQUFNLEdBQUUsa0JBQWlCLENBQUMsUUFBTyxVQUFTLE1BQU0sR0FBRSxrQkFBaUIsQ0FBQyxHQUFFLDBCQUF5QixDQUFDLEdBQUUsYUFBWSxDQUFDLGNBQWEsYUFBWSxZQUFXLFVBQVUsR0FBRSxVQUFTLENBQUMsT0FBTyxHQUFFLFVBQVMsQ0FBQyxHQUFFLGlCQUFnQixDQUFDLE9BQU8sR0FBRSxlQUFjLENBQUMsUUFBTyxVQUFTLE1BQU0sR0FBRSxnQkFBZSxDQUFDLEdBQUUsVUFBUyxDQUFDLEdBQUUsZUFBYyxDQUFDLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLGVBQWMsQ0FBQyxHQUFFLGFBQVksQ0FBQyxHQUFFLGtCQUFpQixDQUFDLEdBQUUsTUFBSyxDQUFDLE9BQU8sR0FBRSxVQUFTLENBQUMsT0FBTyxHQUFFLFlBQVcsQ0FBQyxjQUFhLGFBQVksWUFBVyxVQUFVLEdBQUUsZUFBYyxDQUFDLGNBQWEsYUFBWSxZQUFXLFVBQVUsR0FBRSxXQUFVLENBQUMsUUFBTyxjQUFhLGFBQVksWUFBVyxVQUFVLEVBQUM7QUFBRSxJQUFJQyxNQUFHRixJQUFHQyxHQUFFO0FBQVosSUFBY0UsTUFBR0Q7QUFBRyxJQUFJMUssTUFBRztBQUNoNEMsSUFBSTRLLE1BQUcsRUFBQyxPQUFNek4sS0FBRyxnQkFBZWtOLEtBQUcsbUJBQWtCdk4sS0FBRyxnQkFBZTZOLElBQUU7QUFBekUsSUFBMkVFLE1BQUdEO0FBQUcsSUFBSXJSLE1BQUcsQ0FBQztBQUFFLElBQUEyUCxJQUFHM1AsS0FBRyxFQUFDLFNBQVEsTUFBSW1VLElBQUUsQ0FBQztBQUFFLElBQUlwTSxNQUFHLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFBMEIsSUFBSXdKLE1BQUcsR0FBRztBQUFWLElBQVlDLE1BQUcsR0FBRztBQUFFLElBQUk3RSxNQUFHLE9BQU87QUFBTyxJQUFJOEUsTUFBRyxXQUFVO0FBQUMsYUFBTyxPQUFPLFVBQVEsYUFBVyxRQUFHLE9BQU8sT0FBTyxLQUFHO0FBQUEsSUFBUSxFQUFFO0FBQUUsSUFBSUMsS0FBRSxJQUFJdlIsUUFBSUE7QUFBc04sS0FBQyxHQUFFLEdBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQUEsUUFBR0EsR0FBQztBQUFFLEtBQUMsR0FBRSxFQUFFLEVBQUUsUUFBUSxDQUFBQSxRQUFHZ0ksSUFBR0QsSUFBRy9ILEdBQUMsQ0FBQyxDQUFDO0FBQWdILFFBQUcsT0FBRztBQUFDLFVBQUlBLE1BQUUsT0FBRztBQUFDLFlBQUksSUFBRSxFQUFFO0FBQUssWUFBRyxNQUFJLFFBQU87QUFBQyxjQUFJd0IsS0FBRSxTQUFTLFVBQVUsU0FBUyxLQUFLLENBQUMsRUFBRSxNQUFNLHFCQUFxQjtBQUFFLGNBQUVBLE1BQUdBLEdBQUUsQ0FBQyxLQUFHO0FBQUEsUUFBRTtBQUFDLGVBQU8sRUFBRSxRQUFRLFdBQVUsRUFBRTtBQUFBLE1BQUMsR0FBRXJCLEtBQUUsT0FBRztBQUFDLFlBQUksR0FBRXFCO0FBQUUsZUFBTyxFQUFFLGVBQWEsT0FBTyxFQUFFLGVBQWEsZUFBYUEsS0FBRXhCLElBQUUsRUFBRSxXQUFXLElBQUcsY0FBYSxLQUFHLEVBQUUsYUFBVyxPQUFPLFVBQVUsWUFBVSxFQUFFLGFBQVcsU0FBUyxVQUFVLGFBQVcsSUFBRSxFQUFFLFNBQVMsSUFBRyxLQUFHLEVBQUUsTUFBTSxlQUFlLEtBQUd3QixNQUFHQSxHQUFFLENBQUMsTUFBSSxPQUFLQSxHQUFFLFNBQU8sS0FBR0EsT0FBSSxVQUFRLEVBQUUsUUFBUSxRQUFPLElBQUlBLEVBQUMsR0FBRyxJQUFFLEtBQUdBO0FBQUEsTUFBQyxHQUFFakIsS0FBRSxPQUFHLE9BQU8sQ0FBQztBQUFFLFdBQUcsT0FBRyxPQUFPLEtBQUcsYUFBV1AsSUFBRSxDQUFDLEtBQUcsdUJBQXFCLE9BQU8sS0FBRyxZQUFVLE1BQUksT0FBS0csR0FBRSxDQUFDLEtBQUcscUJBQW1CSSxHQUFFLENBQUM7QUFBQSxJQUFDO0FBQUMsSUFBSTZILE1BQUc7QUFBMkssSUFBSSxLQUFHLFdBQVU7QUFBQyxVQUFJcEksTUFBRSxTQUFTaVUsS0FBR0MsSUFBRUMsSUFBRUMsSUFBRTtBQUFDLGFBQUlELEtBQUVBLE1BQUcsQ0FBQyxHQUFFQyxLQUFFSCxJQUFHLFFBQU9HLE1BQUlELEdBQUVGLElBQUdHLEVBQUMsQ0FBQyxJQUFFRjtBQUFFO0FBQUMsZUFBT0M7QUFBQSxNQUFDLEdBQUVoVSxLQUFFLENBQUMsR0FBRSxFQUFFLEdBQUVJLEtBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFFLENBQUMsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBRSxHQUFFLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRWlCLEtBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFFLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFa0MsS0FBRSxDQUFDLEdBQUUsRUFBRSxHQUFFQyxLQUFFLENBQUMsR0FBRSxFQUFFLEdBQUVDLEtBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRUMsS0FBRSxDQUFDLEdBQUUsRUFBRSxHQUFFQyxLQUFFLENBQUMsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEVBQUUsR0FBRUMsS0FBRSxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBRSxHQUFFRSxLQUFFLENBQUMsSUFBRyxFQUFFLEdBQUVFLEtBQUUsQ0FBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxFQUFFLEdBQUVzQixLQUFFLENBQUMsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEVBQUUsR0FBRVQsS0FBRSxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEVBQUUsR0FBRUcsTUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFRCxNQUFFLENBQUMsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxFQUFFLEdBQUVrQixLQUFFLENBQUMsR0FBRSxFQUFFLEdBQUVHLE1BQUcsQ0FBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBRSxHQUFFQyxPQUFHLENBQUMsR0FBRSxFQUFFLEdBQUVsQixLQUFFLENBQUMsR0FBRSxFQUFFLEdBQUVDLE1BQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRUMsS0FBRSxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEVBQUUsR0FBRU8sTUFBRyxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxFQUFFLEdBQUVDLEtBQUUsQ0FBQyxH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QUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxHQUFFLENBQUMsSUFBRyxDQUFDLEdBQUUsQ0FBQyxJQUFHLENBQUMsR0FBRSxDQUFDLElBQUcsQ0FBQyxDQUFDLEdBQUUsZUFBYyxTQUFTTCxJQUFFQyxJQUFFQyxJQUFFSSxJQUFFQyxJQUFFQyxJQUFFQyxNQUFHO0FBQUMsWUFBSSxJQUFFRCxHQUFFLFNBQU87QUFBRSxnQkFBT0QsSUFBRTtBQUFBLFVBQUMsS0FBSztBQUFFLG1CQUFPQyxHQUFFLElBQUUsQ0FBQztBQUFBLFVBQUUsS0FBSztBQUFFLGlCQUFLLElBQUVGLEdBQUUsZUFBZUUsR0FBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFHLGlCQUFLLElBQUVBLEdBQUUsQ0FBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUUsaUJBQUssSUFBRSxFQUFDLE1BQUssb0JBQW1CLE9BQU1GLEdBQUUsYUFBYUUsR0FBRSxDQUFDLENBQUMsR0FBRSxPQUFNRixHQUFFLFdBQVdFLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUlGLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUssb0JBQW1CLFVBQVNFLEdBQUUsQ0FBQyxHQUFFLE9BQU1BLEdBQUUsQ0FBQyxHQUFFLEtBQUlGLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRUEsR0FBRSxnQkFBZ0JFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUtBLEdBQUUsSUFBRSxDQUFDLEdBQUUsUUFBT0EsR0FBRSxJQUFFLENBQUMsR0FBRSxNQUFLQSxHQUFFLElBQUUsQ0FBQyxFQUFDO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBSyxJQUFFRixHQUFFLGFBQWFFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLE9BQUcsS0FBSyxFQUFFO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBSyxJQUFFRixHQUFFLGFBQWFFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLE1BQUcsS0FBSyxFQUFFO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBSyxJQUFFLEVBQUMsTUFBS0EsR0FBRSxJQUFFLENBQUMsR0FBRSxNQUFLQSxHQUFFLElBQUUsQ0FBQyxHQUFFLFFBQU9BLEdBQUUsSUFBRSxDQUFDLEdBQUUsTUFBS0EsR0FBRSxJQUFFLENBQUMsR0FBRSxhQUFZQSxHQUFFLElBQUUsQ0FBQyxHQUFFLE9BQU1GLEdBQUUsV0FBV0UsR0FBRSxJQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUMsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUtBLEdBQUUsSUFBRSxDQUFDLEdBQUUsUUFBT0EsR0FBRSxJQUFFLENBQUMsR0FBRSxNQUFLQSxHQUFFLElBQUUsQ0FBQyxHQUFFLGFBQVlBLEdBQUUsSUFBRSxDQUFDLEdBQUUsT0FBTUYsR0FBRSxXQUFXRSxHQUFFLElBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBSyxJQUFFLEVBQUMsT0FBTUYsR0FBRSxXQUFXRSxHQUFFLElBQUUsQ0FBQyxHQUFFQSxHQUFFLElBQUUsQ0FBQyxDQUFDLEdBQUUsU0FBUUEsR0FBRSxDQUFDLEVBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGdCQUFJRSxNQUFHSixHQUFFLGFBQWFFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsR0FBRSxPQUFHLEtBQUssRUFBRSxHQUFFRyxNQUFHTCxHQUFFLGVBQWUsQ0FBQ0ksR0FBRSxHQUFFRixHQUFFLElBQUUsQ0FBQyxFQUFFLEdBQUc7QUFBRSxZQUFBRyxJQUFHLFVBQVEsTUFBRyxLQUFLLElBQUUsRUFBQyxPQUFNSCxHQUFFLElBQUUsQ0FBQyxFQUFFLE9BQU0sU0FBUUcsS0FBRyxPQUFNLEtBQUU7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLSCxHQUFFLElBQUUsQ0FBQyxHQUFFLE9BQU1GLEdBQUUsV0FBV0UsR0FBRSxJQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUMsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUcsaUJBQUssSUFBRUYsR0FBRSxnQkFBZ0JFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVGLEdBQUUsV0FBV0UsR0FBRSxJQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUMsR0FBRSxLQUFLLEVBQUU7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLLG9CQUFtQixNQUFLQSxHQUFFLElBQUUsQ0FBQyxHQUFFLFFBQU9BLEdBQUUsSUFBRSxDQUFDLEdBQUUsTUFBS0EsR0FBRSxJQUFFLENBQUMsR0FBRSxRQUFPLElBQUcsT0FBTUYsR0FBRSxXQUFXRSxHQUFFLElBQUUsQ0FBQyxHQUFFQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUlGLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRUEsR0FBRSxvQkFBb0JFLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsSUFBRSxDQUFDLEdBQUVBLEdBQUUsQ0FBQyxHQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUtBLEdBQUUsSUFBRSxDQUFDLEdBQUUsUUFBT0EsR0FBRSxJQUFFLENBQUMsR0FBRSxNQUFLQSxHQUFFLElBQUUsQ0FBQyxHQUFFLE9BQU1GLEdBQUUsV0FBV0UsR0FBRSxJQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLENBQUMsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUssaUJBQWdCLE1BQUtBLEdBQUUsSUFBRSxDQUFDLEdBQUUsUUFBT0EsR0FBRSxJQUFFLENBQUMsR0FBRSxNQUFLQSxHQUFFLElBQUUsQ0FBQyxHQUFFLEtBQUlGLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUssUUFBTyxPQUFNRSxHQUFFLENBQUMsR0FBRSxLQUFJRixHQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLLFlBQVcsS0FBSUEsR0FBRSxHQUFHRSxHQUFFLElBQUUsQ0FBQyxDQUFDLEdBQUUsT0FBTUEsR0FBRSxDQUFDLEdBQUUsS0FBSUYsR0FBRSxRQUFRLEtBQUssRUFBRSxFQUFDO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBSyxJQUFFQSxHQUFFLEdBQUdFLEdBQUUsSUFBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLLGlCQUFnQixPQUFNQSxHQUFFLENBQUMsR0FBRSxVQUFTQSxHQUFFLENBQUMsR0FBRSxLQUFJRixHQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLLGlCQUFnQixPQUFNLE9BQU9FLEdBQUUsQ0FBQyxDQUFDLEdBQUUsVUFBUyxPQUFPQSxHQUFFLENBQUMsQ0FBQyxHQUFFLEtBQUlGLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUssa0JBQWlCLE9BQU1FLEdBQUUsQ0FBQyxNQUFJLFFBQU8sVUFBU0EsR0FBRSxDQUFDLE1BQUksUUFBTyxLQUFJRixHQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsRUFBQyxNQUFLLG9CQUFtQixVQUFTLFFBQU8sT0FBTSxRQUFPLEtBQUlBLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRSxFQUFDLE1BQUssZUFBYyxVQUFTLE1BQUssT0FBTSxNQUFLLEtBQUlBLEdBQUUsUUFBUSxLQUFLLEVBQUUsRUFBQztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRUEsR0FBRSxZQUFZLE1BQUdFLEdBQUUsQ0FBQyxHQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsaUJBQUssSUFBRUYsR0FBRSxZQUFZLE9BQUdFLEdBQUUsQ0FBQyxHQUFFLEtBQUssRUFBRTtBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUcsWUFBQUEsR0FBRSxJQUFFLENBQUMsRUFBRSxLQUFLLEVBQUMsTUFBS0YsR0FBRSxHQUFHRSxHQUFFLENBQUMsQ0FBQyxHQUFFLFVBQVNBLEdBQUUsQ0FBQyxHQUFFLFdBQVVBLEdBQUUsSUFBRSxDQUFDLEVBQUMsQ0FBQyxHQUFFLEtBQUssSUFBRUEsR0FBRSxJQUFFLENBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFLLElBQUUsQ0FBQyxFQUFDLE1BQUtGLEdBQUUsR0FBR0UsR0FBRSxDQUFDLENBQUMsR0FBRSxVQUFTQSxHQUFFLENBQUMsRUFBQyxDQUFDO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBRyxpQkFBSyxJQUFFLENBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUcsS0FBSztBQUFHLFlBQUFBLEdBQUUsSUFBRSxDQUFDLEVBQUUsS0FBS0EsR0FBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFBLFVBQUcsS0FBSztBQUFHLGlCQUFLLElBQUUsQ0FBQ0EsR0FBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFFBQUs7QUFBQSxNQUFDLEdBQUUsT0FBTSxDQUFDMVUsSUFBRSxDQUFDLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEVBQUUsR0FBRUcsSUFBRSxFQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFDLENBQUMsR0FBRSxFQUFDLEdBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRSxFQUFDLEdBQUUsQ0FBQyxHQUFFLENBQUMsRUFBQyxHQUFFSCxJQUFFLENBQUMsR0FBRSxJQUFHLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsRUFBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHTyxJQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxDQUFDLEdBQUUsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEVBQUMsR0FBRVAsSUFBRSxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxDQUFDLENBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHd0IsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR2tDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBR3JDLElBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUdrQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUcsR0FBRSxHQUFFN0QsSUFBRThELElBQUUzRCxJQUFFLEVBQUMsR0FBRSxHQUFFLEdBQUUsR0FBRSxDQUFDLEdBQUVILElBQUUrRCxJQUFFNUQsSUFBRSxFQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsQ0FBQyxHQUFFSCxJQUFFaUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBRyxHQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHekMsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR2tDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUU3RCxJQUFFbUUsSUFBRWhFLElBQUUsRUFBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLENBQUMsR0FBRUgsSUFBRSxDQUFDLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHd0IsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR2tDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBR3JDLElBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUdrQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUcsR0FBRSxHQUFFLEVBQUMsSUFBRyxJQUFHLElBQUdyQyxJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHa0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHckMsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR2tDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUU3RCxJQUFFeUYsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBRyxHQUFFLENBQUMsR0FBRXpGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRWhGLElBQUVnRixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHeEQsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR2tDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUU3RCxJQUFFZ0YsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBR0csSUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHM0QsSUFBRSxJQUFHLEdBQUUsR0FBRXhCLElBQUVrRixLQUFFa0IsRUFBQyxHQUFFcEcsSUFBRXVHLEtBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsR0FBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUdDLE1BQUcsSUFBRyxJQUFHLElBQUdsQixJQUFFLElBQUcsSUFBRyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBR0EsSUFBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHL0UsSUFBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRVAsSUFBRXlGLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsR0FBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBR0YsSUFBRSxHQUFFdkYsSUFBRXdGLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsR0FBRSxDQUFDLEdBQUV4RixJQUFFd0YsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBRyxHQUFFLENBQUMsR0FBRXhGLElBQUUrRixLQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsRUFBQyxJQUFHLEdBQUUsQ0FBQyxHQUFFL0YsSUFBRXlGLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsR0FBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHTyxJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHdEMsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRTdELElBQUVpRyxLQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsRUFBQyxJQUFHLEdBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUVqRyxJQUFFZ0YsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBR0csSUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHYSxJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHdEMsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHMEIsSUFBRSxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUV2RixJQUFFOEQsSUFBRTNELElBQUUsRUFBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFLEVBQUMsSUFBRyxJQUFHLElBQUdxQixJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHa0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRTdELElBQUVtRSxJQUFFaEUsSUFBRSxFQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxJQUFHLElBQUdvRixJQUFFLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRXZGLElBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUVBLElBQUVpRSxJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcrQixJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHdEMsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRTdELElBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBR3dCLElBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUdrQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUcsR0FBRSxHQUFFN0QsSUFBRTBGLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBR00sSUFBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUd0QyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxHQUFDLENBQUMsR0FBRTdELElBQUUwRixJQUFFLENBQUMsR0FBRSxFQUFFLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUdNLElBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHdEMsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsR0FBQyxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHbUMsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR3RDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEtBQUksSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHbUMsSUFBRSxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR3RDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBRyxHQUFFLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxHQUFHLEVBQUMsR0FBRTdELElBQUV5RixJQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFekYsSUFBRSxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsRUFBRSxHQUFFLENBQUMsR0FBRSxFQUFFLEdBQUUsRUFBQyxJQUFHLEtBQUksSUFBRyxDQUFDLEdBQUUsR0FBRyxFQUFDLENBQUMsR0FBRUEsSUFBRTJGLE1BQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFM0YsSUFBRWtGLEtBQUVrQixJQUFFLEVBQUMsSUFBR04sSUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxLQUFJLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxLQUFJLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLEtBQUksSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHRSxJQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHdEMsSUFBRSxJQUFHQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHLEdBQUUsR0FBRTdELElBQUVrRixLQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsRUFBQyxHQUFFbEYsSUFBRXVHLEtBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUV2RyxJQUFFLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxJQUFHLElBQUd3RyxNQUFHLElBQUcsSUFBRyxJQUFHbEIsSUFBRSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFdEYsSUFBRXdGLElBQUUsQ0FBQyxHQUFFLEVBQUUsR0FBRSxFQUFDLElBQUcsSUFBRyxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRXhGLElBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxHQUFHLEVBQUMsR0FBRUEsSUFBRXlGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxHQUFHLEVBQUMsR0FBRSxFQUFDLElBQUcsS0FBSSxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxLQUFJLElBQUc0TyxJQUFFLEdBQUVyVSxJQUFFd0YsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUV4RixJQUFFMEYsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHMk8sSUFBRSxHQUFFclUsSUFBRXdGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFeEYsSUFBRTBGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxFQUFDLEdBQUUxRixJQUFFK0YsS0FBRyxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsRUFBQyxHQUFFL0YsSUFBRXlGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUV6RixJQUFFLEdBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFQSxJQUFFMkYsTUFBRyxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHRyxJQUFFLEdBQUUsRUFBQyxJQUFHLElBQUcsSUFBRyxLQUFJLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBR3RFLElBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUdrQyxJQUFFLElBQUdDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUcsR0FBRSxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxFQUFDLEdBQUU3RCxJQUFFaUcsS0FBRyxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRWpHLElBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFQSxJQUFFMEYsSUFBRSxDQUFDLEdBQUUsRUFBRSxHQUFFLEVBQUMsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsR0FBRSxJQUFHTSxJQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBR3RDLElBQUUsSUFBR0MsSUFBRSxJQUFHQyxJQUFFLElBQUdDLEdBQUMsQ0FBQyxHQUFFN0QsSUFBRSxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRUEsSUFBRSxHQUFFLENBQUMsR0FBRSxFQUFFLENBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEdBQUcsRUFBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxHQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxHQUFHLEVBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFQSxJQUFFaUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUVqRSxJQUFFbUUsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUVuRSxJQUFFMkYsTUFBRyxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUzRixJQUFFZ0YsSUFBRSxDQUFDLEdBQUUsRUFBRSxDQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHcVAsSUFBRSxHQUFFclUsSUFBRXdGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFeEYsSUFBRTBGLElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFMUYsSUFBRThELElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxHQUFFLElBQUcsQ0FBQyxHQUFFLEdBQUcsRUFBQyxHQUFFOUQsSUFBRXNVLEtBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFdFUsSUFBRStELElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFLEVBQUMsSUFBRyxDQUFDLEdBQUUsR0FBRyxFQUFDLEdBQUUsRUFBQyxJQUFHLENBQUMsR0FBRSxFQUFFLEVBQUMsR0FBRSxFQUFDLElBQUcsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFL0QsSUFBRXNVLEtBQUcsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxHQUFFdFUsSUFBRThELElBQUUsQ0FBQyxHQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUUsZ0JBQWUsRUFBQyxHQUFFLENBQUMsR0FBRSxDQUFDLEdBQUUsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxJQUFHLENBQUMsR0FBRSxFQUFFLEdBQUUsSUFBRyxDQUFDLEdBQUUsRUFBRSxHQUFFLElBQUcsQ0FBQyxHQUFFLEVBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxFQUFFLEdBQUUs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LHFCQUFPLEtBQUssTUFBTSxLQUFLLEdBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFFLHFCQUFPLEtBQUssU0FBUyxHQUFFLEtBQUssZUFBZSxLQUFLLGVBQWUsU0FBTyxDQUFDLE1BQUksUUFBTSxNQUFJTSxHQUFFLEdBQUUsQ0FBQyxHQUFFO0FBQUEsWUFBSSxLQUFLO0FBQUUscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRSxxQkFBTyxLQUFLLFNBQVMsR0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUUscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRSxxQkFBTztBQUFBLFlBQUcsS0FBSztBQUFFLHFCQUFPO0FBQUEsWUFBRyxLQUFLO0FBQUcscUJBQU8sS0FBSyxTQUFTLEdBQUUsS0FBSyxNQUFNLEtBQUssR0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUcscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRyxxQkFBTztBQUFBLFlBQUcsS0FBSztBQUFHLHFCQUFPO0FBQUEsWUFBRyxLQUFLO0FBQUcscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRyxxQkFBTyxLQUFLLFNBQVMsR0FBRTtBQUFHO0FBQUEsWUFBTSxLQUFLO0FBQUcscUJBQU8sS0FBSyxTQUFTLEdBQUU7QUFBRztBQUFBLFlBQU0sS0FBSztBQUFHLHFCQUFPO0FBQUEsWUFBRyxLQUFLO0FBQUcscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRyxxQkFBTztBQUFBLFlBQUcsS0FBSztBQUFHLHFCQUFPO0FBQUEsWUFBRyxLQUFLO0FBQUcsbUJBQUssTUFBTU4sR0FBRSxNQUFNLEdBQUUsS0FBSyxTQUFTLEdBQUUsS0FBSyxNQUFNLEtBQUs7QUFBRTtBQUFBLFlBQU0sS0FBSztBQUFHLHFCQUFPLEtBQUssU0FBUyxHQUFFO0FBQUc7QUFBQSxZQUFNLEtBQUs7QUFBRyxxQkFBTztBQUFBLFlBQUcsS0FBSztBQUFHLHFCQUFPO0FBQUEsWUFBRyxLQUFLO0FBQUcscUJBQU87QUFBQSxZQUFHLEtBQUs7QUFBRyxxQkFBTztBQUFBLFlBQUcsS0FB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QUssUUFBTyxVQUFTLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxhQUFZLFVBQVMsV0FBVSxVQUFTLFNBQVEsVUFBUyxXQUFVLFVBQVMsV0FBVSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsWUFBVyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxLQUFJLGFBQVksS0FBSSxhQUFZLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsV0FBVSxVQUFTLFVBQVMsVUFBUyxTQUFRLFVBQVMsaUJBQWdCLFVBQVMsZUFBYyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxjQUFhLFVBQVMsYUFBWSxVQUFTLGVBQWMsVUFBUyxtQkFBa0IsVUFBUyxtQkFBa0IsVUFBUyxvQkFBbUIsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksV0FBVSxTQUFRLGdCQUFlLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sUUFBTyxNQUFLLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLE1BQUssVUFBUyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxzQkFBcUIsVUFBUyxNQUFLLGdCQUFlLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sUUFBTyxTQUFRLFFBQU8sU0FBUSxVQUFTLE1BQUssUUFBTyxXQUFVLFFBQU8sV0FBVSxRQUFPLEtBQUksYUFBWSxLQUFJLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsV0FBVSxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxpQkFBZ0IsVUFBUyxrQkFBaUIsVUFBUyxZQUFXLFVBQVMsYUFBWSxVQUFTLGFBQVksVUFBUyxXQUFVLFVBQVMsVUFBUyxRQUFPLFVBQVMsVUFBUyxhQUFZLFVBQVMsWUFBVyxVQUFTLGFBQVksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUywwQkFBeUIsVUFBUyx1QkFBc0IsVUFBUyxpQkFBZ0IsVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLE9BQU0sS0FBSSxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsT0FBTSxLQUFJLFFBQU8sS0FBSSxNQUFLLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxXQUFVLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxXQUFVLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxpQkFBZ0IsVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLFFBQU8sVUFBUyxXQUFVLFVBQVMsTUFBSyxRQUFPLE1BQUssUUFBTyxRQUFPLFVBQVMsaUNBQWdDLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxnQkFBZSxRQUFPLFVBQVMsU0FBUSxVQUFTLGFBQVksVUFBUyxhQUFZLFVBQVMsVUFBUyxVQUFTLFlBQVcsVUFBUyxRQUFPLFFBQU8sZ0JBQWUsVUFBUyxpQkFBZ0IsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLElBQUcsVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLEtBQUksUUFBTyxLQUFJLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxLQUFJLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsa0JBQWlCLFFBQU8sZ0JBQWUsVUFBUyx3QkFBdUIsVUFBUyxrQkFBaUIsS0FBSSxrQkFBaUIsVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxhQUFZLFVBQVMsT0FBTSxVQUFTLEtBQUksUUFBTyxlQUFjLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxLQUFJLFFBQU8sUUFBTyxRQUFPLGVBQWMsVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sS0FBSSxNQUFLLGFBQVksTUFBSyxhQUFZLEtBQUksUUFBTyxLQUFJLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxTQUFRLFVBQVMsV0FBVSxVQUFTLGdCQUFlLFVBQVMsdUJBQXNCLFVBQVMsV0FBVSxRQUFPLGlCQUFnQixVQUFTLGlCQUFnQixVQUFTLHNCQUFxQixVQUFTLGVBQWMsVUFBUyxxQkFBb0IsVUFBUywwQkFBeUIsVUFBUyxzQkFBcUIsVUFBUyxrQkFBaUIsVUFBUyxnQkFBZSxVQUFTLGVBQWMsVUFBUyxtQkFBa0IsVUFBUyxtQkFBa0IsVUFBUyxjQUFhLFVBQVMsV0FBVSxVQUFTLFdBQVUsVUFBUyxXQUFVLFVBQVMsa0JBQWlCLFVBQVMsV0FBVSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsa0JBQWlCLFVBQVMscUJBQW9CLFVBQVMsbUJBQWtCLFVBQVMsbUJBQWtCLFVBQVMsZ0JBQWUsVUFBUyxvQkFBbUIsVUFBUyxvQkFBbUIsVUFBUyxpQkFBZ0IsVUFBUyxjQUFhLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksTUFBSyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxPQUFNLFFBQU8sTUFBSyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxJQUFHLFVBQVMsT0FBTSxVQUFTLEtBQUksYUFBWSxLQUFJLGFBQVksSUFBRyxVQUFTLFFBQU8sUUFBTyxRQUFPLFFBQU8sS0FBSSxVQUFTLFFBQU8sVUFBUyxJQUFHLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsa0JBQWlCLFVBQVMsUUFBTyxVQUFTLHNCQUFxQixVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsWUFBVyxVQUFTLGFBQVksVUFBUyxPQUFNLFVBQVMsUUFBTyxLQUFJLFlBQVcsVUFBUyxRQUFPLFVBQVMsYUFBWSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLEtBQUksUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxNQUFLLFVBQVMsTUFBSyxLQUFJLE9BQU0sVUFBUyxRQUFPLFVBQVMsYUFBWSxVQUFTLGNBQWEsVUFBUyxjQUFhLFVBQVMsZUFBYyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxLQUFJLGFBQVksT0FBTSxVQUFTLG1CQUFrQixVQUFTLHVCQUFzQixVQUFTLE9BQU0sTUFBSyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsWUFBVyxVQUFTLFVBQVMsVUFBUyxRQUFPLFFBQU8sUUFBTyxVQUFTLFFBQU8sUUFBTyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sUUFBTyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsSUFBRyxVQUFTLElBQUcsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsTUFBSyxnQkFBZSxRQUFPLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxJQUFHLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksT0FBTSxLQUFJLGNBQWEsVUFBUyxrQkFBaUIsVUFBUyxrQkFBaUIsVUFBUyxnQkFBZSxVQUFTLGFBQVksVUFBUyxtQkFBa0IsVUFBUyxjQUFhLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFdBQVUsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFdBQVUsVUFBUyxZQUFXLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxXQUFVLGdCQUFlLE1BQUssZ0JBQWUsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFFBQU8sUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLEtBQUksS0FBSSxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLEtBQUksVUFBUyxjQUFhLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLGVBQWMsVUFBUyxnQkFBZSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsUUFBTyxVQUFTLGdCQUFlLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxjQUFhLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxRQUFPLFFBQU8sUUFBTyxJQUFHLFVBQVMsT0FBTSxRQUFPLE9BQU0sUUFBTyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sUUFBTyxLQUFJLFVBQVMsS0FBSSxhQUFZLEtBQUksVUFBUyxRQUFPLFFBQU8sUUFBTyxRQUFPLElBQUcsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxZQUFXLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxJQUFHLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsY0FBYSxVQUFTLFVBQVMsVUFBUyxTQUFRLFVBQVMsZ0JBQWUsVUFBUyxnQkFBZSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sUUFBTyxNQUFLLGFBQVksTUFBSyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxRQUFPLE1BQUssUUFBTyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLE1BQUssYUFBWSxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxZQUFXLFVBQVMsT0FBTSxRQUFPLE9BQU0sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxLQUFJLFFBQU8sS0FBSSxPQUFNLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssS0FBSSxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLElBQUcsVUFBUyxJQUFHLFVBQVMsa0JBQWlCLFVBQVMsY0FBYSxVQUFTLFdBQVUsVUFBUyxXQUFVLFVBQVMsV0FBVSxVQUFTLHFCQUFvQixVQUFTLGVBQWMsVUFBUyxhQUFZLFVBQVMsbUJBQWtCLFVBQVMsbUJBQWtCLFVBQVMsbUJBQWtCLFVBQVMsZ0JBQWUsVUFBUyxXQUFVLFVBQVMsaUJBQWdCLFVBQVMsZUFBYyxVQUFTLGdCQUFlLFVBQVMsZ0JBQWUsVUFBUyxnQkFBZSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsbUJBQWtCLFVBQVMscUJBQW9CLFVBQVMsaUJBQWdCLFVBQVMsY0FBYSxVQUFTLFNBQVEsVUFBUyxlQUFjLFVBQVMsZ0JBQWUsVUFBUyxpQkFBZ0IsVUFBUyxjQUFhLFVBQVMsbUJBQWtCLFVBQVMsa0JBQWlCLFVBQVMsaUJBQWdCLFVBQVMsaUJBQWdCLFVBQVMsY0FBYSxVQUFTLGVBQWMsVUFBUyxZQUFXLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLFlBQVcsVUFBUyxTQUFRLFVBQVMsV0FBVSxVQUFTLFlBQVcsVUFBUyxrQkFBaUIsVUFBUyxlQUFjLFVBQVMsYUFBWSxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLGdCQUFlLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxJQUFHLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLElBQUcsVUFBUyxVQUFTLFVBQVMsWUFBVyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxlQUFjLFVBQVMsZUFBYyxVQUFTLGVBQWMsVUFBUyxvQkFBbUIsVUFBUyxvQkFBbUIsVUFBUyxvQkFBbUIsVUFBUyxZQUFXLFVBQVMsZ0JBQWUsVUFBUyxnQkFBZSxVQUFTLGdCQUFlLFVBQVMsZUFBYyxVQUFTLGdCQUFlLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxLQUFJLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsS0FBSSxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsTUFBSyxLQUFJLFFBQU8sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssS0FBSSxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLFdBQVUsZ0JBQWUsTUFBSyxnQkFBZSxNQUFLLFFBQU8sTUFBSyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsWUFBVyxVQUFTLFlBQVcsVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsZUFBYyxVQUFTLGFBQVksVUFBUyxXQUFVLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxLQUFJLFVBQVMsT0FBTSxRQUFPLFFBQU8sS0FBSSxRQUFPLFVBQVMsS0FBSSxVQUFTLFFBQU8sUUFBTyxRQUFPLFVBQVMsT0FB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LFFBQU8sUUFBTyxNQUFLLFVBQVMsT0FBTSxRQUFPLE9BQU0sUUFBTyxNQUFLLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLGFBQVksS0FBSSxhQUFZLE1BQUssVUFBUyxRQUFPLFFBQU8sUUFBTyxRQUFPLEtBQUksVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsc0JBQXFCLFVBQVMsZ0JBQWUsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxJQUFHLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssUUFBTyxNQUFLLFFBQU8sUUFBTyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsS0FBSSxVQUFTLElBQUcsVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLFFBQU8sUUFBTyxRQUFPLFFBQU8sTUFBSyxVQUFTLFFBQU8sUUFBTyxRQUFPLFFBQU8sVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxRQUFPLE1BQUssUUFBTyxPQUFNLFVBQVMsU0FBUSxVQUFTLFdBQVUsVUFBUyxhQUFZLFVBQVMsaUJBQWdCLFVBQVMsTUFBSyxRQUFPLFVBQVMsVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsUUFBTyxLQUFJLFFBQU8sS0FBSSxRQUFPLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxLQUFJLGFBQVksS0FBSSxhQUFZLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLElBQUcsVUFBUyxXQUFVLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssS0FBSSxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxXQUFVLFFBQU8sUUFBTyxRQUFPLFNBQVEsVUFBUyxTQUFRLFVBQVMsSUFBRyxRQUFPLGVBQWMsVUFBUyxVQUFTLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxPQUFNLFFBQU8sTUFBSyxVQUFTLElBQUcsVUFBUyxJQUFHLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsYUFBWSxVQUFTLFVBQVMsVUFBUyxlQUFjLFVBQVMsb0JBQW1CLFVBQVMsZUFBYyxVQUFTLFFBQU8sVUFBUyxhQUFZLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLE1BQUssVUFBUyxjQUFhLFVBQVMsWUFBVyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksS0FBSSxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxNQUFLLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxhQUFZLFVBQVMsU0FBUSxVQUFTLE9BQU0sS0FBSSxTQUFRLFVBQVMsTUFBSyxLQUFJLE1BQUssS0FBSSxPQUFNLFVBQVMsTUFBSyxnQkFBZSxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFFBQU8sUUFBTyxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsV0FBVSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLEtBQUksUUFBTyxLQUFJLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxLQUFJLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLE1BQUssVUFBUyxLQUFJLFFBQU8sS0FBSSxRQUFPLGdCQUFlLFVBQVMsb0JBQW1CLFVBQVMsc0JBQXFCLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxtQkFBa0IsVUFBUyxlQUFjLFVBQVMsWUFBVyxVQUFTLFlBQVcsVUFBUyxZQUFXLFVBQVMscUJBQW9CLFVBQVMsZ0JBQWUsVUFBUyxjQUFhLFVBQVMsb0JBQW1CLFVBQVMsb0JBQW1CLFVBQVMsb0JBQW1CLFVBQVMsaUJBQWdCLFVBQVMsWUFBVyxVQUFTLGtCQUFpQixVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsbUJBQWtCLFVBQVMsa0JBQWlC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QU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFdBQVUsVUFBUyxhQUFZLFVBQVMsV0FBVSxVQUFTLFlBQVcsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxZQUFXLFVBQVMsTUFBSyxVQUFTLGFBQVksVUFBUyxVQUFTLFVBQVMsZUFBYyxVQUFTLG9CQUFtQixVQUFTLGVBQWMsVUFBUyxRQUFPLFVBQVMsYUFBWSxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxLQUFJLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLGVBQWMsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsV0FBVSxVQUFTLFdBQVUsVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxPQUFNLFFBQU8sS0FBSSxLQUFJLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxLQUFJLGFBQVksUUFBTyxVQUFTLFdBQVUsVUFBUyxXQUFVLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLGFBQVksVUFBUyxVQUFTLFVBQVMsWUFBVyxnQkFBZSxXQUFVLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxRQUFPLE9BQU0sUUFBTyxPQUFNLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxnQkFBZSxVQUFTLFlBQVcsVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLFNBQVEsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLGNBQWEsVUFBUyxjQUFhLFVBQVMsZ0JBQWUsVUFBUyxXQUFVLFVBQVMsZUFBYyxVQUFTLGlCQUFnQixVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLFdBQVUsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsa0JBQWlCLFVBQVMsbUJBQWtCLFVBQVMsUUFBTyxRQUFPLFFBQU8sUUFBTyxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxPQUFNLFFBQU8sS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxLQUFJLGFBQVksUUFBTyxRQUFPLFFBQU8sUUFBTyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsS0FBSSxRQUFPLFVBQVMsS0FBSSxZQUFXLFVBQVMsY0FBYSxVQUFTLGtCQUFpQixVQUFTLE9BQU0sVUFBUyxXQUFVLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLFlBQVcsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxrQkFBaUIsVUFBUyxhQUFZLFVBQVMsYUFBWSxVQUFTLGFBQVksVUFBUyxlQUFjLFVBQVMsZUFBYyxVQUFTLGdCQUFlLFVBQVMsT0FBTSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxZQUFXLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssUUFBTyxNQUFLLFFBQU8sU0FBUSxVQUFTLFFBQU8sVUFBUyxZQUFXLFVBQVMsVUFBUyxVQUFTLFlBQVcsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFdBQVUsVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsY0FBYSxnQkFBZSxlQUFjLGdCQUFlLGNBQWEsZ0JBQWUsZUFBYyxnQkFBZSxVQUFTLFVBQVMsaUJBQWdCLFVBQVMsa0JBQWlCLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxLQUFJLFFBQU8sVUFBUyxNQUFLLEtBQUksTUFBSyxVQUFTLGFBQVksVUFBUyxjQUFhLEtBQUksbUJBQWtCLFVBQVMsZUFBYyxVQUFTLGVBQWMsVUFBUyxLQUFJLGFBQVksS0FBSSxhQUFZLE9BQU0sVUFBUyxPQUFNLGdCQUFlLE9BQU0sZ0JBQWUsTUFBSyxhQUFZLE1BQUssYUFBWSxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksUUFBTyxnQkFBZSxRQUFPLGdCQUFlLFFBQU8sZ0JBQWUsUUFBTyxnQkFBZSxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksS0FBSSxhQUFZLE1BQUssYUFBWSxNQUFLLGFBQVksSUFBRyxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsS0FBSSxhQUFZLEtBQUksYUFBWSxPQUFNLFVBQVMsT0FBTSxVQUFTLElBQUcsVUFBUyxJQUFHLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxRQUFPLFFBQU8sUUFBTyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxLQUFJLFFBQU8sS0FBSSxhQUFZLEtBQUksYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssUUFBTyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVB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QUFTLFVBQVMsS0FBSSxVQUFTLGNBQWEsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxJQUFHLFVBQVMsc0JBQXFCLFVBQVMsSUFBRyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksS0FBSSxPQUFNLFVBQVMsS0FBSSxVQUFTLGVBQWMsVUFBUyxjQUFhLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsYUFBWSxVQUFTLGdCQUFlLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxXQUFVLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxRQUFPLFFBQU8sT0FBTSxRQUFPLEtBQUksVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLElBQUcsVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFFBQU8sUUFBTyxPQUFNLFVBQVMsWUFBVyxVQUFTLElBQUcsVUFBUyxLQUFJLFVBQVMsVUFBUyxVQUFTLEtBQUksVUFBUyxjQUFhLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxnQkFBZSxVQUFTLElBQUcsVUFBUyxnQkFBZSxVQUFTLElBQUcsVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxRQUFPLE9BQU0sVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLE1BQUssYUFBWSxNQUFLLGFBQVksUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLEtBQUksYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLE1BQUssVUFBUyxJQUFHLEtBQUksSUFBRyxLQUFJLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxrQkFBaUIsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxrQkFB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QVMsVUFBUyxtQkFBa0IsVUFBUyxRQUFPLFVBQVMsWUFBVyxVQUFTLGdCQUFlLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxxQkFBb0IsVUFBUyxRQUFPLFVBQVMsWUFBVyxVQUFTLGFBQVksVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxhQUFZLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsSUFBRyxVQUFTLE1BQUssVUFBUyxlQUFjLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxvQkFBbUIsVUFBUyxPQUFNLFVBQVMsYUFBWSxVQUFTLGVBQWMsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxlQUFjLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxPQUFNLFFBQU8sT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLEtBQUksS0FBSSxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLFdBQVUsVUFBUyxRQUFPLFVBQVMsV0FBVSxVQUFTLE9BQU0sVUFBUyxZQUFXLGdCQUFlLFdBQVUsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLGdCQUFlLFVBQVMsTUFBSyxVQUFTLFlBQVcsVUFBUyxJQUFHLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxhQUFZLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxXQUFVLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsUUFBTyxRQUFPLE1BQUssVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFFBQU8sS0FBSSxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksUUFBTyxRQUFPLE9BQU0sVUFBUyxVQUFTLEtBQUksUUFBTyxLQUFJLFlBQVcsVUFBUyxjQUFhLFVBQVMsTUFBSyxVQUFTLGtCQUFpQixVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFdBQVUsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxZQUFXLFVBQVMsa0JBQWlCLFVBQVMsT0FBTSxVQUFTLGFBQVksVUFBUyxhQUFZLFVBQVMsTUFBSyxVQUFTLGVBQWMsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFlBQVcsVUFBUyxVQUFTLFVBQVMsZ0JBQWUsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLGlCQUFnQixVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsTUFBSyxRQUFPLE9BQU0sVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxhQUFZLFVBQVMsS0FBSSxVQUFTLFVBQVMsVUFBUyxNQUFLLFVBQVMsY0FBYSxLQUFJLFFBQU8sS0FBSSxNQUFLLEtBQUksbUJBQWtCLFVBQVMsZUFBYyxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsZUFBYyxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksTUFBSyxhQUFZLE1BQUssYUFBWSxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLEtBQUksYUFBWSxJQUFHLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFFBQU8sT0FBTSxVQUFTLEtBQUksVUFBUyxLQUFJLGFBQVksTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLE1BQUssYUFBWSxRQUFPLFFBQU8sUUFBTyxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsS0FBSSxnQkFBZSxLQUFJLFVBQVMsT0FBTSxRQUFPLEtBQUksVUFBUyxPQUFNLFFBQU8sS0FBSSxhQUFZLFFBQU8sUUFBTyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxlQUFjLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksS0FBSSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsVUFBUyxVQUFTLE1BQUssVUFBUyxNQUFLLEtBQUksT0FBTSxRQUFPLE1BQUssYUFBWSxLQUFJLEtBQUksUUFBTyxLQUFJLFFBQU8sUUFBTyxNQUFLLFFBQU8sT0FBTSxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLGFBQVksVUFBUyxPQUFNLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLFdBQVUsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsS0FBSSxhQUFZLFNBQVEsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFdBQVUsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLGlCQUFnQixVQUFTLE9BQU0sVUFBUyxlQUFjLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxjQUFhLFVBQVMsTUFBSyxVQUFTLGVBQWMsVUFBUyxPQUFNLFVBQVMsbUJBQWtCLFVBQVMsT0FBTSxVQUFTLG1CQUFrQixVQUFTLE9BQU0sVUFBUyxvQkFBbUIsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLFdBQVUsU0FBUSxnQkFBZSxNQUFLLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxRQUFPLE1BQUssYUFBWSxPQUFNLFVBQVMsTUFBSyxNQUFLLE9BQU0sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssZ0JBQWUsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxRQUFPLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsTUFBSyxRQUFPLEtBQUksYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLFdBQVUsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxpQkFBZ0IsVUFBUyxPQUFNLFVBQVMsa0JBQWlCLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxJQUFHLFVBQVMsWUFBVyxVQUFTLE1BQUssVUFBUyxhQUFZLFVBQVMsTUFBSyxVQUFTLGFBQVksVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxPQUFNLEtBQUksT0FBTSxLQUFJLFFBQU8sS0FBSSxNQUFLLFVBQVMsWUFBVyxVQUFTLFNBQVEsVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsYUFBWSxVQUFTLE9BQU0sVUFBUyxhQUFZLFVBQVMsUUFBTyxVQUFTLGdCQUFlLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLGlCQUFnQixVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxPQUFNLFVBQVMsUUFBTyxRQUFPLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLGdCQUFlLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxLQUFJLFFBQU8sT0FBTSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLGFBQVksVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxRQUFPLFFBQU8sUUFBTyxlQUFjLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLEtBQUksTUFBSyxhQUFZLFVBQVMsVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFdBQVUsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsY0FBYSxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLFFBQU8sUUFBTyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxRQUFPLFFBQU8sVUFBUyxTQUFRLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsZUFBYyxVQUFTLEtBQUksYUFBWSxJQUFHLFVBQVMsUUFBTyxRQUFPLEtBQUksVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLElBQUcsVUFBUyxVQUFTLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxhQUFZLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLGlCQUFnQixVQUFTLFlBQVcsVUFBUyxRQUFPLEtBQUksUUFBTyxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxjQUFhLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxNQUFLLFVBQVMsTUFBSyxLQUFJLEtBQUksVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLE9BQU0sVUFBUyxPQUFNLE1BQUssTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsV0FBVSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxRQUFPLE1BQUssUUFBTyxRQUFPLFVBQVMsUUFBTyxRQUFPLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxRQUFPLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxLQUFJLFVBQVMsWUFBVyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLFdBQVUsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLEtBQUksYUFBWSxPQUFNLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFdBQVUsZ0JBQWUsTUFBSyxnQkFBZSxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxxQkFBb0IsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxXQUFVLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLFVBQVMsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLGVBQWMsVUFBUyxRQUFPLFVBQVMsZ0JBQWUsVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFFBQU8sT0FBTSxRQUFPLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxRQUFPLEtBQUksYUFBWSxRQUFPLFFBQU8sUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsUUFBTyxRQUFPLE1BQUssYUFBWSxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFFBQU8sT0FBTSxVQUFTLEtBQUksVUFBUyxLQUFJLGFBQVksT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLEtBQUksYUFBWSxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxNQUFLLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxZQUFXLFVBQVMsT0FBTSxRQUFPLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLGVBQWMsVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxlQUFjLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxnQkFBZSxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sS0FBSSxNQUFLLEtBQUksUUFBTyxLQUFJLE1BQUssS0FBSSxPQUFNLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxNQUFLLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxnQkFBZSxVQUFTLE9BQU0sVUFBUyxnQkFBZSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsTUFBSyxnQkFBZSxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLEtBQUksVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsWUFBVyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsZ0JBQWUsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsU0FBUSxVQUFTLE1BQUssS0FBSSxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxjQUFhLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxXQUFVLGdCQUFlLE1BQUssZ0JBQWUsT0FBTSxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sTUFBSyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLEtBQUksYUFBWSxLQUFJLFVBQVMsT0FBTSxRQUFPLFFBQU8sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxJQUFHLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxLQUFJLGdCQUFlLEtBQUksZ0JBQWUsWUFBVyxVQUFTLE9BQU0sVUFBUyxpQkFBZ0IsVUFBUyxPQUFNLFVBQVMsS0FBSSxnQkFBZSxLQUFJLGdCQUFlLGFBQVksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxnQkFBZSxNQUFLLGdCQUFlLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsVUFBUyxnQkFBZSxNQUFLLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sZ0JBQWUsUUFBTyxVQUFTLE1BQUssVUFBUyxLQUFJLGFBQVksT0FBTSxVQUFTLGlCQUFnQixVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxLQUFJLGdCQUFlLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLFlBQVcsVUFBUyxNQUFLLFVBQVMsTUFBSyxhQUFZLEtBQUksUUFBTyxRQUFPLGdCQUFlLFVBQVMsZ0JBQWUsU0FBUSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sZ0JBQWUsT0FBTSxnQkFBZSxTQUFRLFVBQVMsT0FBTSxVQUFTLGFBQVksVUFBUyxRQUFPLGdCQUFlLFFBQU8sZ0JBQWUsTUFBSyxhQUFZLE1BQUssVUFBUyxPQUFNLGdCQUFlLFlBQVcsZ0JBQWUsTUFBSyxVQUFTLE9BQU0sZ0JBQWUsWUFBVyxnQkFBZSxRQUFPLFFBQU8sSUFBRyxVQUFTLEtBQUksS0FBSSxRQUFPLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxnQkFBZSxRQUFPLFVBQVMsTUFBSyxnQkFBZSxNQUFLLFdBQVUsU0FBUSxVQUFTLFFBQU8sVUFBUyxNQUFLLGdCQUFlLE1BQUssV0FBVSxTQUFRLGdCQUFlLFFBQU8sVUFBUyxTQUFRLGdCQUFlLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxRQUFPLE9BQU0sUUFBTyxLQUFJLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLGFBQVksTUFBSyxVQUFTLFFBQU8sUUFBTyxLQUFJLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxJQUFHLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxNQUFLLFFBQU8sTUFBSyxRQUFPLFFBQU8sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxRQUFPLFFBQU8sTUFBSyxVQUFTLFFBQU8sUUFBTyxVQUFTLFVBQVMsTUFBSyxRQUFPLE9BQU0sVUFBUyxNQUFLLFFBQU8sUUFBTyxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsUUFBTyxLQUFJLFFBQU8sS0FBSSxRQUFPLFVBQVMsU0FBUSxVQUFTLEtBQUksYUFBWSxLQUFJLFVBQVMsTUFBSyxVQUFTLGFBQVksVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLElBQUcsVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxNQUFLLEtBQUksVUFBUyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE1BQUssYUFBWSxPQUFNLFFBQU8sS0FBSSxVQUFTLE1BQUssVUFBUyxZQUFXLFVBQVMsYUFBWSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxNQUFLLGFBQVksS0FBSSxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxNQUFLLGFBQVksU0FBUSxVQUFTLE9BQU0sS0FBSSxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sUUFBTyxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsZ0JBQWUsVUFBUyxPQUFNLFVBQVMsaUJBQWdCLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxLQUFJLE1BQUssS0FBSSxRQUFPLEtBQUksTUFBSyxLQUFJLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLFFBQU8sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxrQkFBaUIsVUFBUyxPQUFNLFVBQVMsaUJBQWdCLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxTQUFRLFVBQVMsTUFBSyxLQUFJLFFBQU8sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsTUFBSyxVQUFTLGVBQWMsVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsYUFBWSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFFBQU8sTUFBSyxLQUFJLFFBQU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLEtBQUksYUFBWSxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxLQUFJLFFBQU8sT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxnQkFBZSxRQUFPLFVBQVMsS0FBSSxLQUFJLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxXQUFVLFVBQVMsUUFBTyxnQkFBZSxRQUFPLGdCQUFlLE1BQUssYUFBWSxNQUFLLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxZQUFXLFVBQVMsT0FBTSxVQUFTLFdBQVUsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxNQUFLLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsWUFBVyxVQUFTLE9BQU0sVUFBUyxXQUFVLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxRQUFPLFFBQU8sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxPQUFNLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsT0FBTSxRQUFPLE9BQU0sUUFBTyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLFNBQVEsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLE1BQUssVUFBUyxXQUFVLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsUUFBTyxRQUFPLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxRQUFPLEtBQUksVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxRQUFPLFFB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USxvQkFBSSxJQUFJLENBQUMsU0FBUSxXQUFVLFVBQVMsZUFBYyxlQUFjLFNBQVEsU0FBUSxXQUFVLE9BQU8sQ0FBQyxDQUFDLEdBQUUsQ0FBQyxTQUFRLG9CQUFJLElBQUksQ0FBQyxTQUFRLFFBQU8sV0FBVSxRQUFRLENBQUMsQ0FBQyxHQUFFLENBQUMsTUFBSyxvQkFBSSxJQUFJLENBQUMsUUFBTyxTQUFRLFFBQU8sV0FBVSxRQUFPLFdBQVUsV0FBVSxXQUFVLFVBQVMsVUFBUyxXQUFVLFNBQVEsVUFBUyxPQUFPLENBQUMsQ0FBQyxHQUFFLENBQUMsWUFBVyxvQkFBSSxJQUFJLENBQUMsZ0JBQWUsUUFBTyxXQUFVLFlBQVcsUUFBTyxhQUFZLGFBQVksUUFBTyxlQUFjLFlBQVcsWUFBVyxRQUFPLE1BQU0sQ0FBQyxDQUFDLEdBQUUsQ0FBQyxTQUFRLG9CQUFJLElBQUksQ0FBQyxTQUFRLFFBQU8sV0FBVSxRQUFRLENBQUMsQ0FBQyxHQUFFLENBQUMsTUFBSyxvQkFBSSxJQUFJLENBQUMsUUFBTyxTQUFRLFFBQU8sV0FBVSxRQUFPLFdBQVUsV0FBVSxXQUFVLFVBQVMsVUFBUyxXQUFVLFNBQVEsVUFBUyxPQUFPLENBQUMsQ0FBQyxHQUFFLENBQUMsU0FBUSxvQkFBSSxJQUFJLENBQUMsU0FBUSxRQUFPLFdBQVUsUUFBUSxDQUFDLENBQUMsR0FBRSxDQUFDLFFBQU8sb0JBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFLLG9CQUFJLElBQUksQ0FBQyxTQUFRLFdBQVUsUUFBTyxXQUFVLFFBQVEsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxTQUFRLG9CQUFJLElBQUksQ0FBQyxXQUFVLFFBQU8sU0FBUSxPQUFNLFNBQVMsQ0FBQyxDQUFDLEdBQUUsQ0FBQyxNQUFLLG9CQUFJLElBQUksQ0FBQyxXQUFVLE1BQU0sQ0FBQyxDQUFDLEdBQUUsQ0FBQyxTQUFRLG9CQUFJLElBQUksQ0FBQyxZQUFXLFlBQVcsZUFBYyxVQUFTLFFBQU8sU0FBUSxlQUFjLFVBQVMsV0FBVSxPQUFNLE9BQU8s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UUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sTUFBSyxRQUFPLE1BQUssS0FBSSxLQUFJLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sUUFBTyxRQUFPLE1BQUssUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxPQUFNLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxLQUFJLEtBQUksT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxRQUFPLFFBQU8sS0FBSSxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLElBQUcsS0FBSSxRQUFPLFFBQU8sT0FBTSxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE1BQUssUUFBTyxPQUFNLFFBQU8sSUFBRyxLQUFJLE1BQUssUUFBTyxPQUFNLFFBQU8sUUFBTyxRQUFPLE1BQUssUUFBTyxLQUFJLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sUUFBTyxRQUFPLE1BQUssUUFBTyxNQUFLLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxNQUFLLFFBQU8sTUFBSyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sTUFBSyxLQUFJLE9BQU0sUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLEtBQUksUUFBTyxNQUFLLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxPQUFNLFFBQU8sT0FBTSxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLFFBQU8sUUFBTyxLQUFJLFFBQU8sTUFBSyxPQUFNO0FBQUEsSUFBQyxDQUFDO0FBQUUsSUFBSVksTUFBR1osR0FBRSxDQUFDLElBQUcsT0FBSztBQUFDLFNBQUcsVUFBUSxFQUFDLEtBQUksVUFB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LFVBQVMsc0JBQXFCLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxTQUFRLFVBQVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxhQUFZLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxRQUFPLFVBQVMsY0FBYSxVQUFTLEtBQUksVUFBUyxLQUFJLGFBQVksbUJBQWtCLFVBQVMsdUJBQXNCLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxZQUFXLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxHQUFFLEtBQUksSUFBRyxLQUFJLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxLQUFJLGFBQVksSUFBRyxVQUFTLE1BQUssYUFBWSxjQUFhLFVBQVMsa0JBQWlCLFVBQVMsa0JBQWlCLFVBQVMsZ0JBQWUsVUFBUyxhQUFZLFVBQVMsbUJBQWtCLFVBQVMsY0FBYSxVQUFTLE1BQUssYUFBWSxJQUFHLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxLQUFJLEtBQUksT0FBTSxVQUFTLEtBQUksVUFBUyxjQUFhLFVBQVMsTUFBSyxVQUFTLGdCQUFlLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxjQUFhLFVBQVMsV0FBVSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxRQUFPLE9BQU0sUUFBTyxLQUFJLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxPQUFNLFFBQU8sUUFBTyxRQUFPLElBQUcsVUFBUyxPQUFNLFVBQVMsWUFBVyxVQUFTLFNBQVEsVUFBUyxLQUFJLFVBQVMsVUFBUyxVQUFTLGNBQWEsVUFBUyxnQkFBZSxVQUFTLGdCQUFlLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxPQUFNLFVBQVMsS0FBSSxVQUFTLEtBQUksYUFB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QVMsT0FBTSxVQUFTLFlBQVcsVUFBUyxTQUFRLFVBQVMsYUFBWSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxLQUFJLFFBQU8sTUFBSyxRQUFPLE9BQU0sVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsYUFBWSxVQUFTLGNBQWEsS0FBSSxtQkFBa0IsVUFBUyxlQUFjLFVBQVMsZUFBYyxVQUFTLEtBQUksYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLEtBQUksYUFBWSxNQUFLLGFBQVksTUFBSyxhQUFZLEtBQUksYUFBWSxJQUFHLFVBQVMsTUFBSyxhQUFZLE1BQUssYUFBWSxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxPQUFNLFFBQU8sUUFBTyxRQUFPLE9BQU0sVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLE1BQUssYUFBWSxNQUFLLGFBQVksTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsZ0JBQWUsVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLGFBQVksT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFVBQVMsSUFBRyxVQUFTLEtBQUksZ0JBQWUsS0FBSSxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sTUFBSyxRQUFPLE9BQU0sUUFBTyxLQUFJLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxJQUFHLFVBQVMsS0FBSSxhQUFZLE9BQU0sUUFBTyxRQUFPLFFBQU8sU0FBUSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxJQUFHLEtBQUksS0FBSSxLQUFJLEtBQUksVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxTQUFRLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxJQUFHLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE1BQUssS0FBSSxRQUFPLFVBQVMsVUFBUyxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sTUFBSyxhQUFZLEtBQUksS0FBSSxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sS0FBSSxRQUFPLE1BQUssUUFBTyxVQUFTLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsYUFBWSxVQUFTLFdBQVUsVUFBUyxTQUFRLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxLQUFJLGFBQVksUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxXQUFVLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxpQkFBZ0IsVUFBUyxlQUFjLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLGNBQWEsVUFBUyxhQUFZLFVBQVMsZUFBYyxVQUFTLG1CQUFrQixVQUFTLG1CQUFrQixVQUFTLG9CQUFtQixVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsS0FBSSxXQUFVLFNBQVEsZ0JBQWUsTUFBSyxVQUFTLE1BQUssYUFBWSxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLGFBQVksT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsTUFBSyxNQUFLLE9BQU0sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssZ0JBQWUsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sU0FBUSxVQUFTLEtBQUksUUFBTyxNQUFLLFFBQU8sV0FBVSxRQUFPLEtBQUksYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLFdBQVUsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLGlCQUFnQixVQUFTLGtCQUFpQixVQUFTLFVBQVMsUUFBTyxVQUFTLFVBQVMsWUFBVyxVQUFTLGFBQVksVUFBUyxhQUFZLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsT0FBTSxLQUFJLFFBQU8sVUFBUyxTQUFRLFVBQVMsT0FBTSxLQUFJLFFBQU8sS0FBSSxNQUFLLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxXQUFVLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxLQUFJLFFBQU8sTUFBSyxRQUFPLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLFNBQVEsVUFBUyxhQUFZLFVBQVMsYUFBWSxVQUFTLFVBQVMsVUFBUyxZQUFXLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxnQkFBZSxVQUFTLGlCQUFnQixVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxJQUFHLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsSUFBRyxRQUFPLEtBQUksUUFBTyxPQUFNLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLGFBQVksVUFBUyxPQUFNLFVBQVMsS0FBSSxRQUFPLFNBQVEsVUFBUyxPQUFNLFVBQVMsS0FBSSxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sZUFBYyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLEtBQUksTUFBSyxhQUFZLEtBQUksVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxTQUFRLFVBQVMsV0FBVSxVQUFTLGdCQUFlLFVBQVMsV0FBVSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsa0JBQWlCLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFFBQU8sUUFBTyxRQUFPLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxJQUFHLFVBQVMsT0FBTSxVQUFTLEtBQUksYUFBWSxJQUFHLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxLQUFJLFVBQVMsUUFBTyxVQUFTLElBQUcsVUFBUyxVQUFTLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxZQUFXLFVBQVMsYUFBWSxVQUFTLFFBQU8sS0FBSSxRQUFPLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsSUFBRyxRQUFPLEtBQUksUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLE1BQUssVUFBUyxNQUFLLEtBQUksT0FBTSxVQUFTLGFBQVksVUFBUyxjQUFhLFVBQVMsZUFBYyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLE9BQU0sVUFBUyxPQUFNLE1BQUssTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFVBQVMsUUFBTyxRQUFPLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxJQUFHLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsVUFBUyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLEtBQUksYUFBWSxJQUFHLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksT0FBTSxLQUFJLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxHQUFFLEtBQUksSUFBRyxLQUFJLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxTQUFRLFVBQVMsV0FBVSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsV0FBVSxVQUFTLFlBQVcsVUFBUyxTQUFRLFVBQVMsUUFBTyxVQUFTLFdBQVUsZ0JBQWUsTUFBSyxnQkFBZSxNQUFLLFVBQVMsUUFBTyxVQUFTLE1BQUssUUFBTyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFdBQVUsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxVQUFTLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsZUFBYyxVQUFTLGdCQUFlLFVBQVMsTUFBSyxhQUFZLFFBQU8sVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sSUFBRyxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sS0FBSSxVQUFTLE1BQUssVUFBUyxNQUFLLFFBQU8sT0FBTSxRQUFPLEtBQUksVUFBUyxLQUFJLGFBQVksT0FBTSxRQUFPLFFBQU8sUUFBTyxJQUFHLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxhQUFZLE1BQUssVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLElBQUcsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLEtBQUksUUFBTyxNQUFLLFFBQU8sT0FBTSxVQUFTLEtBQUksVUFBUyxLQUFJLGFBQVksT0FBTSxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksUUFBTyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsS0FBSSxhQUFZLFFBQU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxNQUFLLGFBQVksT0FBTSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLElBQUcsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxNQUFLLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLGdCQUFlLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxLQUFJLFFBQU8sS0FBSSxPQUFNLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLEtBQUksS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLElBQUcsVUFBUyxXQUFVLFVBQVMsZUFBYyxVQUFTLGlCQUFnQixVQUFTLGVBQWMsVUFBUyxnQkFBZSxVQUFTLGdCQUFlLFVBQVMsaUJBQWdCLFVBQVMsbUJBQWtCLFVBQVMscUJBQW9CLFVBQVMsZ0JBQWUsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxNQUFLLGdCQUFlLFFBQU8sVUFBUyxZQUFXLFVBQVMsU0FBUSxVQUFTLFdBQVUsVUFBUyxZQUFXLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxJQUFHLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsSUFBRyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFVBQVMsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsZUFBYyxVQUFTLG9CQUFtQixVQUFTLFlBQVcsVUFBUyxnQkFBZSxVQUFTLGVBQWMsVUFBUyxnQkFBZSxVQUFTLE9BQU0sVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsUUFBTyxLQUFJLEtBQUksVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE1BQUssS0FBSSxRQUFPLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxLQUFJLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEdBQUUsS0FBSSxJQUFHLEtBQUksTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsU0FBUSxVQUFTLFdBQVUsZ0JBQWUsTUFBSyxnQkFBZSxPQUFNLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxNQUFLLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxZQUFXLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxlQUFjLFVBQVMsS0FBSSxhQUFZLEtBQUksVUFBUyxNQUFLLFFBQU8sT0FBTSxRQUFPLEtBQUksVUFBUyxRQUFPLEtBQUksUUFBTyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLGFBQVksSUFBRyxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsSUFBRyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsS0FBSSxnQkFBZSxLQUFJLGdCQUFlLE1BQUssZ0JBQWUsWUFBVyxVQUFTLGlCQUFnQixVQUFTLEtBQUksZ0JBQWUsS0FBSSxnQkFBZSxNQUFLLGdCQUFlLGFBQVksVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxnQkFBZSxLQUFJLFVBQVMsTUFBSyxnQkFBZSxPQUFNLGdCQUFlLE9BQU0sVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxVQUFTLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxPQUFNLGdCQUFlLFFBQU8sZ0JBQWUsTUFBSyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFVBQVMsZ0JBQWUsTUFBSyxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxPQUFNLGdCQUFlLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxnQkFBZSxRQUFPLFVBQVMsU0FBUSxVQUFTLEtBQUksYUFBWSxLQUFJLGdCQUFlLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxnQkFBZSxXQUFVLGdCQUFlLE1BQUssZ0JBQWUsT0FBTSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsS0FBSSxnQkFBZSxPQUFNLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxZQUFXLFVBQVMsaUJBQWdCLFVBQVMsTUFBSyxVQUFTLE9BQU0sZ0JBQWUsV0FBVSxnQkFBZSxNQUFLLGdCQUFlLE9BQU0sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssYUFBWSxJQUFHLFFBQU8sS0FBSSxRQUFPLE9BQU0sVUFBUyxRQUFPLGdCQUFlLFVBQVMsZ0JBQWUsU0FBUSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxXQUFVLFVBQVMsUUFBTyxnQkFBZSxPQUFNLGdCQUFlLFNBQVEsVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLE1BQUssZ0JBQWUsT0FBTSxVQUFTLFNBQVEsZ0JBQWUsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLGdCQUFlLFFBQU8sZ0JBQWUsYUFBWSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxNQUFLLGdCQUFlLE1BQUssYUFBWSxXQUFVLFVBQVMsZ0JBQWUsVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLFNBQVEsZ0JBQWUsV0FBVSxVQUFTLFlBQVcsZ0JBQWUsT0FBTSxVQUFTLFNBQVEsZ0JBQWUsTUFBSyxVQUFTLE9BQU0sZ0JBQWUsT0FBTSxVQUFTLFNBQVEsZ0JBQWUsV0FBVSxVQUFTLFlBQVcsZ0JBQWUsTUFBSyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxVQUFTLGVBQWMsVUFBUyxpQkFBZ0IsVUFBUyxnQkFBZSxVQUFTLGtCQUFpQixVQUFTLElBQUcsVUFBUyxLQUFJLEtBQUksUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLE1BQUssZ0JBQWUsTUFBSyxXQUFVLFNBQVEsVUFBUyxRQUFPLFVBQVMsTUFBSyxnQkFBZSxNQUFLLFdBQVUsU0FBUSxnQkFBZSxRQUFPLFVBQVMsU0FBUSxnQkFBZSxPQUFNLGdCQUFlLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsSUFBRyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sS0FBSSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLGFBQVksTUFBSyxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sS0FBSSxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLE9BQU0sVUFBUyxLQUFJLFFBQU8sT0FBTSxVQUFTLFNBQVEsVUFBUyxNQUFLLFFBQU8sTUFBSyxRQUFPLFFBQU8sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFVBQVMsVUFBUyxVQUFTLEtBQUksUUFBTyxNQUFLLFFBQU8sT0FBTSxVQUFTLEtBQUksUUFBTyxNQUFLLFFBQU8sVUFBUyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxRQUFPLEtBQUksUUFBTyxLQUFJLFFBQU8sVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLEtBQUksYUFBWSxLQUFJLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLFdBQVUsVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsTUFBSyxLQUFJLFVBQVMsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9BQU0sUUFBTyxRQUFPLFFBQU8sU0FBUSxVQUFTLFNBQVEsVUFBUyxJQUFHLFFBQU8sVUFBUyxVQUFTLE1BQUssYUFBWSxNQUFLLFFBQU8sT0FBTSxRQUFPLElBQUcsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLFlBQVcsVUFBUyxhQUFZLFVBQVMsUUFBTyxVQUFTLGFBQVksVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFVBQVMsVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLEtBQUksVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLE1BQUssVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLE1BQUssYUFBWSxhQUFZLFVBQVMsU0FBUSxVQUFTLE9BQU0sS0FBSSxTQUFRLFVBQVMsS0FBSSxLQUFJLE1BQUssS0FBSSxPQUFNLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE1BQUssZ0JBQWUsUUFBTyxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssUUFBTyxPQUFNLFFBQU8sTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxXQUFVLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLEtBQUksUUFBTyxLQUFJLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE1BQUssS0FBSSxLQUFJLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLElBQUcsUUFBTyxLQUFJLFFBQU8sUUFBTyxVQUFTLFFBQU8sVUFBUyxLQUFJLGFBQVksT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxZQUFXLFVBQVMsZ0JBQWUsVUFBUyxrQkFBaUIsVUFBUyxnQkFBZSxVQUFTLGlCQUFnQixVQUFTLG1CQUFrQixVQUFTLGtCQUFpQixVQUFTLGlCQUFnQixVQUFTLGlCQUFnQixVQUFTLE1BQUssVUFBUyxjQUFhLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFlBQVcsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsU0FBUSxVQUFTLE1BQUssS0FBSSxRQUFPLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxhQUFZLEtBQUksVUFBUyxNQUFLLEtBQUksT0FBTSxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFVBQVMsVUFBUyxTQUFRLFVBQVMsSUFBRyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsSUFBRyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsT0FBTSxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsS0FBSSxRQUFPLE1BQUssUUFBTyxNQUFLLEtBQUksUUFBTyxVQUFTLFVBQVMsVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLEtBQUksYUFBWSxRQUFPLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLGVBQWMsVUFBUyxJQUFHLFFBQU8sS0FBSSxRQUFPLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLGVBQWMsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxPQUFNLGdCQUFlLFFBQU8sVUFBUyxLQUFJLEtBQUksTUFBSyxVQUFTLFFBQU8sVUFBUyxNQUFLLGFBQVksUUFBTyxVQUFTLFdBQVUsVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sZ0JBQWUsT0FBTSxVQUFTLFFBQU8sZ0JBQWUsT0FBTSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsWUFBVyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFlBQVcsVUFBUyxLQUFJLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLE1BQUssYUFBWSxRQUFPLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsT0FBTSxVQUFTLGlCQUFnQixVQUFTLGFBQVksVUFBUyxPQUFNLFFBQU8sS0FBSSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFFBQU8sVUFBUyxVQUFTLFVBQVMsV0FBVSxVQUFTLFdBQVUsVUFBUyxZQUFXLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLFlBQVcsVUFBUyxhQUFZLFVBQVMsUUFBTyxVQUFTLGFBQVksVUFBUyxVQUFTLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxNQUFLLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxNQUFLLFVBQVMsUUFBTyxVQUFTLFNBQVEsVUFBUyxNQUFLLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxTQUFRLFVBQVMsU0FBUSxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsVUFBUyxVQUFTLFdBQVUsVUFBUyxXQUFVLFVBQVMsWUFBVyxVQUFTLFFBQU8sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLFNBQVEsVUFBUyxRQUFPLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxRQUFPLFVBQVMsS0FBSSxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLEtBQUksVUFBUyxNQUFLLFVBQVMsUUFBTyxVQUFTLEtBQUksYUFBWSxRQUFPLFVBQVMsV0FBVSxVQUFTLE9BQU0sVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLGFBQVksVUFBUyxVQUFTLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxPQUFNLFVBQVMsTUFBSyxRQUFPLE9BQU0sUUFBTyxRQUFPLFVBQVMsVUFBUyxVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssYUFBWSxTQUFRLFVBQVMsTUFBSyxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLGNBQWEsVUFBUyxjQUFhLFVBQVMsZ0JBQWUsVUFBUyxXQUFVLFVBQVMsZUFBYyxVQUFTLGlCQUFnQixVQUFTLFFBQU8sVUFBUyxNQUFLLFVBQVMsVUFBUyxVQUFTLFNBQVEsVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLFVBQVMsVUFBUyxNQUFLLGFBQVksTUFBSyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLGtCQUFpQixVQUFTLG1CQUFrQixVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLFVBQVMsT0FBTSxVQUFTLFFBQU8sVUFBUyxNQUFLLFFBQU8sT0FBTSxRQUFPLEtBQUksVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsS0FBSSxhQUFZLE9BQU0sUUFBTyxRQUFPLFFBQU8sT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFVBQVMsVUFBUyxRQUFPLFVBQVMsT0FBTSxVQUFTLE9B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QUFHLE1BQUssS0FBRyxNQUFLQyxNQUFFRCxNQUFHLEtBQUcsR0FBRUMsT0FBRyxRQUFPQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsUUFBTSxNQUFJLFFBQU1BLE9BQUdBLE9BQUcsUUFBTSxRQUFNQSxPQUFHQSxPQUFHLFFBQU0sUUFBTUEsT0FBR0EsT0FBRyxRQUFNLFFBQU1BLE9BQUdBLE9BQUcsUUFBTSxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFNBQU9BLE9BQUdBLE9BQUcsU0FBTyxTQUFPQSxPQUFHQSxPQUFHLFNBQU8sU0FBT0EsT0FBR0EsT0FBRyxTQUFPLFVBQVFBLE9BQUdBLE9BQUcsVUFBUSxVQUFRQSxPQUFHQSxPQUFHLFVBQVEsVUFBUUEsT0FBR0EsT0FBRyxVQUFRLFVBQVFBLE9BQUdBLE9BQUcsVUFBUSxVQUFRQSxPQUFHQSxPQUFHLFVBQVEsVUFBUUEsT0FBR0EsT0FBRyxVQUFRLFVBQVFBLE9BQUdBLE9BQUcsVUFBUSxVQUFRQSxPQUFHQSxPQUFHLFNBQU8sTUFBSTtBQUFBLElBQUcsRUFBQztBQUFFLElBQUksS0FBRztBQUFnUSxJQUFJMEQsTUFBRztBQUFHLElBQUlyRCxNQUFHO0FBQVAsSUFBV0MsTUFBRztBQUEwSCxJQUFJNEgsTUFBRzlIO0FBQUcsSUFBSUcsTUFBRztBQUFQLElBQWdCQyxLQUFFO0FBQWxCLElBQTBCZ0IsTUFBRztBQUE3QixJQUFzQ0osS0FBRTtBQUF4QyxJQUFpREQsS0FBRTtBQUFuRCxJQUEyRE0sTUFBRztBQUE5RCxJQUFxRVAsS0FBRTtBQUF2RSxJQUErRUosS0FBRTtBQUFqRixJQUF3RkcsS0FBRTtBQUExRixJQUFxR0ksTUFBRztBQUF4RyxJQUEwSEUsTUFBRztBQUE3SCxJQUEySUcsTUFBRztBQUE5SSxJQUFxS0MsS0FBRTtBQUF2SyxJQUE4S0wsTUFBRztBQUFqTCxJQUF5TE0sTUFBRztBQUE1TCxJQUEyTW5CLE1BQUcsb0JBQUksSUFBSSxDQUFDZSxLQUFHSixJQUFFRCxJQUFFTSxLQUFHUCxJQUFFSixJQUFFRyxJQUFFSSxLQUFHRSxLQUFHRyxLQUFHQyxJQUFFTCxLQUFHTSxHQUFFLENBQUM7QUFBK0gsSUFBSWpCLE1BQUc7QUFBRyxJQUFJLEtBQUcsQ0FBQWQsT0FBRyxJQUFJLEtBQUssV0FBVyxTQUFRLEVBQUMsTUFBSyxjQUFhLENBQUMsRUFBRSxPQUFPQSxFQUFDO0FBRWxwYyxJQUFJMFAsTUFBRyxjQUFjLE1BQUs7QUFBQSxNQUFDLE9BQUs7QUFBQSxNQUFrQixZQUFZeFAsSUFBRTtBQUFDLGNBQU1XLElBQUdYLEVBQUMsQ0FBQyxHQUFFLEtBQUssTUFBSUE7QUFBQSxNQUFDO0FBQUEsSUFBQztBQUF6RixJQUEyRmMsTUFBRzBPO0FBQUcsSUFBSTNPLE1BQUcsQ0FBQztBQUErbEIsSUFBSThCLE1BQUc7QUFBRyxJQUFJOE0sTUFBRyxNQUFJO0FBQUEsSUFBQztBQUFaLElBQWMxTixNQUFHME47QUFBakIsSUFBb0J2TixNQUFHdU47QUFBeWIsSUFBSTdILE1BQUcsRUFBQyxNQUFLL0YsSUFBRTtBQUFFLElBQUkrQyxNQUFHLEVBQUMsTUFBS2hELElBQUUsTUFBSyxLQUFFO0FBQXRCLElBQXdCLEtBQUcsRUFBQyxNQUFLQSxJQUFFLE1BQUssTUFBRyxTQUFRLEtBQUU7QUFBckQsSUFBdURvRixNQUFHLEVBQUMsTUFBS3BGLEdBQUM7QUFBakUsSUFBbUVxRixNQUFHLEVBQUMsTUFBS3JGLElBQUUsTUFBSyxLQUFFO0FBQXJGLElBQXVGaUQsS0FBRSxDQUFDRCxLQUFHZ0QsR0FBRTtBQUEvRixJQUFpRzdFLE1BQUcsQ0FBQyxJQUFHNkUsR0FBRTtBQUEwRyxJQUFJaEUsTUFBRyxDQUFBOUQsT0FBRztBQUFDLFVBQUcsTUFBTSxRQUFRQSxFQUFDO0FBQUUsZUFBT0E7QUFBRSxVQUFHQSxHQUFFLFNBQU9pQjtBQUFFLGNBQU0sSUFBSSxNQUFNLGdDQUFnQ0EsRUFBQyxJQUFJO0FBQUUsYUFBT2pCLEdBQUU7QUFBQSxJQUFLO0FBR3hoRCxJQUFJK0QsS0FBRSxPQUFPLFlBQVk7QUFBekIsSUFBMkJDLE1BQUcsT0FBTyxXQUFXO0FBQWhELElBQWtETCxNQUFHLE9BQU8sUUFBUTtBQUVzekUsSUFBSWlNLE1BQUcsY0FBYyxNQUFLO0FBQUEsTUFBQyxPQUFLO0FBQUEsTUFBc0IsWUFBWTFQLElBQUUsR0FBRUMsTUFBRSxRQUFPO0FBQUMsY0FBTSxjQUFjLENBQUMsU0FBU0EsR0FBQyxLQUFLLEtBQUssVUFBVUQsR0FBRUMsR0FBQyxDQUFDLENBQUMsR0FBRyxHQUFFLEtBQUssT0FBS0Q7QUFBQSxNQUFDO0FBQUEsSUFBQztBQUF6SixJQUEySjJILE1BQUcrSDtBQUE4SixJQUFJekosTUFBRztBQUFHLElBQUksS0FBRyxDQUFBbkcsT0FBR0EsR0FBRSxNQUFNLE9BQU8sRUFBRSxJQUFJO0FBQTRqQixJQUFJaUcsTUFBR2hCO0FBQUcsSUFBSSxLQUFHLElBQUksTUFBTSxNQUFJO0FBQUEsSUFBQyxHQUFFLEVBQUMsS0FBSSxNQUFJLEdBQUUsQ0FBQztBQUE0RixJQUFJSSxNQUFHO0FBQVAsSUFBMm1DSSxNQUFHLElBQUksT0FBTyxpVEFBZ1QsRUFBRTtBQUEzNkMsSUFBNjZDNEIsTUFBRztBQUFpNEUsSUFBSWEsTUFBRyxvQkFBSSxJQUFJLENBQUMsY0FBYSxjQUFhLFlBQVcsYUFBWSxVQUFTLFVBQVMsWUFBVyxRQUFPLGlCQUFnQixTQUFRLGtCQUFpQixZQUFXLHFCQUFvQixZQUFXLGNBQWEsUUFBTyxTQUFRLFlBQVksQ0FBQztBQUFqTyxJQUFtT0MsTUFBRyxvQkFBSSxJQUFJLENBQUMsR0FBR0QsS0FBRyxhQUFZLGFBQVksU0FBUyxDQUFDO0FBQXZSLElBQXlSM0MsTUFBRyxJQUFJLE9BQU84QixHQUFFO0FBQXpTLElBQTJTL0IsTUFBRztBQUE5UyxJQUF3VEssTUFBRztBQUEzVCxJQUF1VUQsTUFBRztBQUExVSxJQUFxVkYsTUFBRztBQUcvcE4sSUFBSXFLLE1BQUc7QUFBRyxJQUFJLEtBQUcsSUFBSSxPQUFPLDZJQUE0SSxHQUFHO0FBQXdYLElBQUlDLE1BQUc7QUFBRyxJQUFJekosTUFBRyxDQUFDLFVBQVMsVUFBVTtBQU1uNUMsSUFBSTBKLE1BQUcsQ0FBQS9QLE9BQUdvRyxJQUFHMEosSUFBRzlQLEVBQUMsRUFBRSxRQUFRLFVBQVUsQ0FBQztBQUF0QyxJQUF3Q2dRLE1BQUcsQ0FBQWhRLE9BQUc7QUFBQyxVQUFJRSxLQUFFNFAsSUFBRzlQLEVBQUMsR0FBRSxJQUFFLFNBQVNxRyxJQUFHLENBQUMsQ0FBQztBQUFPLGFBQU9uRyxHQUFFLGNBQVksR0FBR0EsR0FBRSxZQUFZLEdBQUc7QUFBQTtBQUFBLEVBRWhNLENBQUM7QUFBQTtBQUFBLEVBRURBLEdBQUUsT0FBTyxLQUFHLEdBQUcsQ0FBQztBQUFBO0FBQUEsRUFFaEJBLEdBQUUsT0FBTztBQUFBLElBQUU7QUFBRSxJQUFJLEtBQUc7QUFBaXdELElBQUkrUCxNQUFHO0FBQUcsSUFBSTFKLE1BQUdnRCxJQUFHQyxJQUFHLEdBQUUsQ0FBQztBQUFnRSxJQUFJaEQsTUFBRztBQUFHLElBQUksS0FBRyxvQkFBSSxJQUFJLENBQUMsWUFBVyxLQUFLLENBQUM7QUFDdDlDLElBQUFGLElBQUcsb0JBQWtCO0FBQUcsSUFBSTRKLE1BQUc1SjtBQUFHLElBQUlJLE1BQUc7QUFBa0osSUFBSSxLQUFHO0FBQUcsYUFBUTFHLEtBQUUsR0FBRUEsTUFBRyxJQUFHQTtBQUFJLE1BQUF5RyxJQUFHO0FBQStNLElBQUkwSixNQUFHdko7QUFBRyxJQUFJd0osTUFBRyxFQUFDLGdCQUFlLENBQUMsR0FBRSxNQUFLLENBQUMsVUFBVSxHQUFFLFdBQVUsQ0FBQyxVQUFVLEdBQUUsVUFBUyxDQUFDLFVBQVUsR0FBRSxNQUFLLENBQUMsR0FBRSxZQUFXLENBQUMsR0FBRSxVQUFTLENBQUMsVUFBVSxHQUFFLFFBQU8sQ0FBQyxVQUFVLEdBQUUsUUFBTyxDQUFDLFVBQVUsR0FBRSxZQUFXLENBQUMsR0FBRSxVQUFTLENBQUMsR0FBRSxNQUFLLENBQUMsVUFBVSxHQUFFLE9BQU0sQ0FBQyxHQUFFLFlBQVcsQ0FBQyxVQUFVLEdBQUUsU0FBUSxDQUFDLFVBQVUsR0FBRSxNQUFLLENBQUMsR0FBRSxNQUFLLENBQUMsR0FBRSxNQUFLLENBQUMsVUFBVSxHQUFFLGVBQWMsQ0FBQyxHQUFFLGVBQWMsQ0FBQyxVQUFVLEdBQUUsZ0JBQWUsQ0FBQyxHQUFFLFlBQVcsQ0FBQyxHQUFFLFVBQVMsQ0FBQyxVQUFVLEdBQUUsbUJBQWtCLENBQUMsR0FBRSxvQkFBbUIsQ0FBQyxVQUFVLEdBQUUsT0FBTSxDQUFDLFVBQVUsR0FBRSxXQUFVLENBQUMsVUFBVSxHQUFFLE9BQU0sQ0FBQyxHQUFFLFlBQVcsQ0FBQyxHQUFFLFFBQU8sQ0FBQyxHQUFFLFFBQU8sQ0FBQyxHQUFFLFdBQVUsQ0FBQyxHQUFFLEtBQUksQ0FBQyxHQUFFLE1BQUssQ0FBQyxHQUFFLFlBQVcsQ0FBQyxHQUFFLFVBQVMsQ0FBQyxVQUFVLEdBQUUsVUFBUyxDQUFDLFVBQVUsR0FBRSxNQUFLLENBQUMsRUFBQztBQUExbkIsSUFBNG5CQyxNQUFHRDtBQUFHLElBQUlFLE1BQUdILElBQUdFLEdBQUU7QUFBWixJQUFjRSxNQUFHRDtBQUFHLElBQUksS0FBRyxvQkFBSSxJQUFJLENBQUMsV0FBVSxhQUFZLFFBQU8sVUFBVSxDQUFDO0FBQXhELElBQTBELEtBQUcsSUFBSSxJQUFJLHNNQUFzTTtBQUEzUSxJQUE2USxLQUFHLElBQUksSUFBSSwwc0JBQTBzQjtBQUFsK0IsSUFBbytCdkosTUFBRyxJQUFJLElBQUksb0NBQW9DO0FBRXIvRSxJQUFJLEtBQUcsb0JBQUksSUFBSSxDQUFDLFlBQVcsY0FBYSxvQkFBb0IsQ0FBQztBQUVpakMsSUFBSSxLQUFHLEVBQUMsWUFBV2tKLEtBQUcsT0FBTSxJQUFHLE9BQU1KLEtBQUcsZ0JBQWVLLEtBQUcsbUJBQWtCLElBQUcsY0FBYUYsS0FBRyxnQkFBZU8sSUFBRTtBQUFoSCxJQUFrSEMsTUFBRztBQUFHLElBQUkxUSxNQUFHLENBQUM7QUFBRSxJQUFBdUosSUFBR3ZKLEtBQUcsRUFBQyxVQUFTLE1BQUksSUFBRyxLQUFJLE1BQUksSUFBRyxRQUFPLE1BQUksR0FBRSxDQUFDO0FBQUUsSUFBSTJJLE1BQUdjLElBQUc0RSxJQUFHLEdBQUUsQ0FBQztBQUFoQixJQUFrQixLQUFHNUUsSUFBRzBGLElBQUcsR0FBRSxDQUFDO0FBQTlCLElBQWdDckcsTUFBR1csSUFBRzhGLElBQUcsR0FBRSxDQUFDO0FBQTVDLElBQThDLEtBQUc5RixJQUFHK0YsSUFBRyxHQUFFLENBQUM7QUFBRSxJQUFJLEtBQUc7QUFBUCxJQUFtQixLQUFHO0FBQXRCLElBQWtDNUcsTUFBRztBQUFyQyxJQUEyRUgsTUFBRztBQUE5RSxJQUFrSCxLQUFHO0FBQXJILElBQTZJLEtBQUc7QUFBQTtBQUFBO0FBQWhKLElBRTc0Q2tJLE1BQUcsQ0FBQXpRLE9BQUcsR0FBRyxLQUFLQSxFQUFDO0FBRjgzQyxJQUU1M0MwUSxNQUFHLENBQUExUSxPQUFHLEdBQUcsS0FBS0EsRUFBQztBQUY2MkMsSUFFMzJDMlEsTUFBRyxDQUFDM1EsSUFBRUUsT0FBSTtBQUFDLFVBQUksSUFBRUEsR0FBRSxRQUFRLEVBQUUsR0FBRUMsTUFBRUQsR0FBRSxNQUFNLEdBQUUsQ0FBQztBQUFFLFVBQUd3USxJQUFHdlEsR0FBQyxLQUFHc1EsSUFBR3RRLEdBQUM7QUFBRSxlQUFPSCxHQUFFRyxHQUFDLEVBQUUsRUFBQyxNQUFLdVEsSUFBR3ZRLEdBQUMsSUFBRSxXQUFTLFVBQVMsT0FBTUEsSUFBQyxDQUFDO0FBQUEsSUFBQztBQUYwdkMsSUFFeHZDLEtBQUcsQ0FBQ0gsSUFBRUUsT0FBSTtBQUFDLFVBQUksSUFBRSxHQUFHLEtBQUtBLEVBQUM7QUFBRSxVQUFHO0FBQUUsZUFBT0YsR0FBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsTUFBSyxhQUFZLE9BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFDLENBQUM7QUFBQSxJQUFDO0FBQUUsSUFBQTJRLElBQUcsVUFBUSxDQUFBM1EsT0FBRzBRLElBQUcxUSxFQUFDLEtBQUd5USxJQUFHelEsRUFBQyxJQUFFLEtBQUc7QUFBRSxPQUFHLFVBQVEsQ0FBQ0EsSUFBRUUsT0FBSUYsR0FBRSxRQUFRLEtBQUlFLEVBQUM7QUFBRSxJQUFJMkksTUFBRyxXQUFVO0FBQUMsVUFBRyxFQUFDLFFBQU83SSxHQUFDLElBQUUsTUFBSyxFQUFDLGlCQUFnQkUsSUFBRSxjQUFhLEdBQUUsa0JBQWlCQyxLQUFFLGVBQWMsRUFBQyxJQUFFSCxHQUFFO0FBQVUsTUFBQUUsR0FBRSxXQUFTeVEsS0FBR3hRLElBQUUsWUFBVSxJQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsV0FBVyxHQUFFLEdBQUUsVUFBVSxHQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsTUFBTSxHQUFFLEdBQUUsV0FBVztBQUFBLElBQUM7QUFBaUgsSUFBSTZJLE1BQUc7QUFBRyxJQUFJLEtBQUcsV0FBVTtBQUFDLFVBQUloSixLQUFFLEtBQUssT0FBTztBQUFVLE1BQUFBLEdBQUUsZUFBYSxDQUFDLGVBQWMsR0FBR0EsR0FBRSxZQUFZLEdBQUVBLEdBQUUsZ0JBQWdCLGNBQVlFO0FBQUUsZUFBU0EsR0FBRSxHQUFFQyxLQUFFO0FBQUMsWUFBSSxJQUFFMlAsSUFBRzNQLEdBQUM7QUFBRSxZQUFHLEVBQUU7QUFBWSxpQkFBTyxFQUFFLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxXQUFXO0FBQUEsTUFBQztBQUFDLE1BQUFELEdBQUUsY0FBWTtBQUFBLElBQUU7QUFBdk8sSUFBeU95SSxNQUFHO0FBQUcsSUFBSSxLQUFHLFdBQVU7QUFBQyxVQUFJM0ksS0FBRSxLQUFLLE9BQU8sV0FBVUUsS0FBRUYsR0FBRTtBQUFjLE1BQUFFLEdBQUUsT0FBT0EsR0FBRSxRQUFRLE1BQU0sR0FBRSxHQUFFLFFBQVEsR0FBRUYsR0FBRSxpQkFBaUIsU0FBTztBQUFFLGVBQVMsRUFBRUcsS0FBRSxHQUFFO0FBQUMsWUFBSSxJQUFFLEVBQUUsTUFBTSxxQkFBcUI7QUFBRSxZQUFHO0FBQUUsaUJBQU9BLElBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLE1BQUssY0FBYSxPQUFNLEVBQUUsQ0FBQyxFQUFDLENBQUM7QUFBQSxNQUFDO0FBQUMsUUFBRSxVQUFRLFNBQVNBLEtBQUUsR0FBRTtBQUFDLGVBQU9BLElBQUUsUUFBUSxLQUFJLENBQUM7QUFBQSxNQUFDO0FBQUEsSUFBQztBQUE1UixJQUE4UjRJLE1BQUc7QUFBRyxJQUFJLEtBQUcsV0FBVTtBQUFDLFVBQUkvSSxLQUFFLFlBQVdFLEtBQUUsZ0NBQStCLElBQUUsS0FBSyxPQUFPLFdBQVVDLE1BQUUsRUFBRTtBQUFjLE1BQUFBLElBQUUsT0FBT0EsSUFBRSxRQUFRLE1BQU0sR0FBRSxHQUFFSCxFQUFDLEdBQUUsRUFBRSxpQkFBaUIsV0FBUztBQUFFLGVBQVMsRUFBRSxHQUFFLEdBQUU7QUFBQyxZQUFJa0IsS0FBRWhCLEdBQUUsS0FBSyxDQUFDO0FBQUUsWUFBR2dCLElBQUU7QUFBQyxjQUFJQyxLQUFFRCxHQUFFLE9BQU8sYUFBYSxLQUFLO0FBQUUsaUJBQU8sRUFBRUEsR0FBRSxDQUFDLENBQUMsRUFBRSxFQUFDLE1BQUtsQixJQUFFLE9BQU1tQixHQUFDLENBQUM7QUFBQSxRQUFDO0FBQUEsTUFBQztBQUFDLFFBQUUsVUFBUSxTQUFTLEdBQUUsR0FBRTtBQUFDLGVBQU8sRUFBRSxRQUFRLEtBQUksQ0FBQztBQUFBLE1BQUM7QUFBQSxJQUFDO0FBQXZVLElBQXlVOEgsTUFBRztBQUEyTyxJQUFJMkgsTUFBRyxFQUFDLFdBQVUsU0FBUSxXQUFVYixLQUFHLFVBQVM3SyxLQUFHLFFBQU9DLElBQUU7QUFBNUQsSUFBOEQsS0FBRyxFQUFDLEdBQUd5TCxLQUFHLE9BQU1wSSxJQUFHLEVBQUMsT0FBTSxNQUFFLENBQUMsRUFBQztBQUE1RixJQUE4RixLQUFHLEVBQUMsR0FBR29JLEtBQUcsT0FBTXBJLElBQUcsRUFBQyxPQUFNLEtBQUUsQ0FBQyxFQUFDO0FBQUUsSUFBSSxLQUFHLENBQUMsRUFBQyxvQkFBbUIsS0FBSSxNQUFLLFlBQVcsTUFBSyxTQUFRLE9BQU0sV0FBVSxTQUFRLENBQUMsTUFBSyxRQUFRLEdBQUUsU0FBUSxZQUFXLGdCQUFlLE9BQU0sb0JBQW1CLGNBQWEsTUFBSyxNQUFHLFlBQVcsQ0FBQyxPQUFNLFdBQVUsYUFBWSxVQUFTLFNBQVEsUUFBTyxTQUFRLFdBQVUsU0FBUSxRQUFPLFdBQVcsR0FBRSxXQUFVLENBQUMsZUFBYyxRQUFRLEdBQUUsU0FBUSxXQUFVLFNBQVEsQ0FBQyxVQUFVLEdBQUUsbUJBQWtCLENBQUMsVUFBVSxFQUFDLEdBQUUsRUFBQyxvQkFBbUIsS0FBSSxNQUFLLE9BQU0sTUFBSyxTQUFRLE9BQU0sV0FBVSxTQUFRLENBQUMsTUFBSyxRQUFRLEdBQUUsU0FBUSxZQUFXLGdCQUFlLE9BQU0sb0JBQW1CLGNBQWEsTUFBSyxNQUFHLFlBQVcsQ0FBQyxNQUFNLEdBQUUsV0FBVSxDQUFDLEdBQUUsU0FBUSxXQUFVLFNBQVEsQ0FBQyxLQUFLLEdBQUUsbUJBQWtCLENBQUMsS0FBSyxFQUFDLENBQUM7QUFBRSxJQUFJcUksTUFBRyxFQUFDLGdCQUFlLEVBQUMsVUFBUyxVQUFTLE1BQUssV0FBVSxTQUFRLE1BQUcsYUFBWSxrQ0FBaUMscUJBQW9CLHdDQUF1QyxHQUFFLGFBQVksRUFBQyxVQUFTLFVBQVMsTUFBSyxXQUFVLFNBQVEsT0FBRyxhQUFZLDhDQUE2QyxHQUFFLFdBQVUsRUFBQyxVQUFTLFVBQVMsTUFBSyxVQUFTLFNBQVEsWUFBVyxhQUFZLHNCQUFxQixTQUFRLENBQUMsRUFBQyxPQUFNLFVBQVMsYUFBWSw0Q0FBMkMsR0FBRSxFQUFDLE9BQU0sU0FBUSxhQUFZLHFCQUFvQixHQUFFLEVBQUMsT0FBTSxZQUFXLGFBQVksb0JBQW1CLENBQUMsRUFBQyxHQUFFLGlCQUFnQixFQUFDLFVBQVMsVUFBUyxNQUFLLFdBQVUsU0FBUSxPQUFHLGFBQVksbUVBQWtFLEdBQUUsd0JBQXVCLEVBQUMsVUFBUyxVQUFTLE1BQUssV0FBVSxTQUFRLE9BQUcsYUFBWSwwREFBeUQsRUFBQztBQUFFLElBQUksS0FBRyxFQUFDLFdBQVVBLElBQUcsV0FBVSxhQUFZQSxJQUFHLFlBQVc7QUFBekQsSUFBMkQsS0FBRztBQUFHLElBQUksS0FBRyxFQUFDLE9BQU1MLElBQUU7QUFBRSxJQUFJLEtBQUdqQjtBQUFBO0FBQUE7OztBQzFELzVHO0FBQUE7QUFBQSxpQkFBQTBhO0FBQUEsRUFBQSxlQUFBQztBQUFBO0FBRXd5UyxTQUFTQyxHQUFFLEdBQUVDLE9BQUssR0FBRTtBQUFDLFFBQU0sSUFBSUMsSUFBRyxFQUFFLE9BQU0sRUFBRSxNQUFLLEVBQUUsUUFBT0QsSUFBRSxHQUFHLENBQUM7QUFBQztBQUFDLFNBQVNFLElBQUcsR0FBRTtBQUFDLFFBQU0sSUFBSUQsSUFBRyxFQUFFLE9BQU0sRUFBRSxNQUFLLEVBQUUsUUFBTyxFQUFFLE1BQUssRUFBRSxNQUFNO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUQsSUFBRSxHQUFFLE1BQUtHLEtBQUU7QUFBQyxRQUFNLElBQUlGLElBQUcsR0FBRUQsSUFBRSxHQUFFLEdBQUUsR0FBR0csR0FBQztBQUFDO0FBQUMsU0FBU0MsSUFBRyxHQUFFSixJQUFFLEdBQUUsR0FBRTtBQUFDLFFBQU0sSUFBSUMsSUFBRyxHQUFFRCxJQUFFLEdBQUUsQ0FBQztBQUFDO0FBQWt5YSxTQUFTSyxHQUFFLEdBQUU7QUFBQyxTQUFPLEVBQUUsVUFBUyxFQUFFLGNBQVksRUFBRSxPQUFPLFdBQVcsRUFBRSxFQUFFLEtBQUs7QUFBQztBQUFDLFNBQVNDLElBQUcsR0FBRU4sSUFBRTtBQUFDLE9BQUlBLEtBQUUsV0FBUztBQUFNLFdBQU87QUFBRSxNQUFJLElBQUUsRUFBRSxPQUFPLFdBQVcsRUFBRSxRQUFNLENBQUM7QUFBRSxVQUFPLElBQUUsV0FBUyxRQUFNLEtBQUdBLEtBQUUsRUFBRSxjQUFZLFVBQVFBLEtBQUUsU0FBTyxPQUFLLElBQUUsT0FBTU8sS0FBSVAsT0FBSSxLQUFHLENBQUMsTUFBSUEsS0FBRSxLQUFHLEtBQUdELEdBQUUsR0FBRSxJQUFHUyxHQUFFUixFQUFDLENBQUMsR0FBRSxFQUFFLFNBQVEsRUFBRSxVQUFTO0FBQUU7QUFBQyxTQUFTUyxJQUFHLEdBQUVULElBQUU7QUFBQyxJQUFFLGNBQVksRUFBRSxPQUFPLFdBQVcsRUFBRSxFQUFFLEtBQUssR0FBRSxFQUFFLFNBQU8sR0FBRUEsS0FBRSxNQUFJLEVBQUUsU0FBTyxHQUFFLEVBQUU7QUFBTztBQUFDLFNBQVMsR0FBRyxHQUFFO0FBQUMsSUFBRSxTQUFPLEdBQUUsRUFBRSxjQUFZLEVBQUUsT0FBTyxXQUFXLEVBQUUsRUFBRSxLQUFLLEdBQUUsRUFBRSxTQUFPLEdBQUUsRUFBRTtBQUFNO0FBQUMsU0FBU1UsSUFBRyxHQUFFO0FBQUMsU0FBTyxNQUFJLE9BQUssTUFBSSxTQUFPLE1BQUksT0FBSyxNQUFJLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxNQUFJLFFBQU0sTUFBSSxRQUFNLE1BQUksU0FBTyxNQUFJLFFBQU0sTUFBSTtBQUFLO0FBQUMsU0FBU0YsR0FBRSxHQUFFO0FBQUMsU0FBTyxLQUFHLFFBQU0sT0FBTyxhQUFhLENBQUMsSUFBRSxPQUFPLGFBQWEsTUFBSSxFQUFFLElBQUUsT0FBTyxhQUFhLElBQUUsSUFBSTtBQUFDO0FBQUMsU0FBU0csR0FBRSxHQUFFO0FBQUMsU0FBTyxJQUFFLEtBQUcsSUFBRSxLQUFHLElBQUUsS0FBRyxLQUFHO0FBQUU7QUFBQyxTQUFTQyxJQUFHLEdBQUU7QUFBQyxVQUFPLEdBQUU7QUFBQSxJQUFDLEtBQUs7QUFBVSxhQUFNO0FBQUEsSUFBaUIsS0FBSztBQUFVLGFBQU07QUFBQSxJQUFnQixLQUFLO0FBQUEsSUFBTSxLQUFLO0FBQU0sYUFBTTtBQUFBLElBQWlCLEtBQUs7QUFBTSxhQUFNO0FBQUEsSUFBYyxLQUFLO0FBQU0sYUFBTTtBQUFBLElBQW9CLEtBQUs7QUFBQSxJQUFTLEtBQUs7QUFBQSxJQUFTLEtBQUs7QUFBSSxhQUFNO0FBQUEsSUFBa0I7QUFBUSxjQUFPLElBQUUsWUFBVSxTQUFPLGdCQUFjLElBQUUsVUFBUSxPQUFLLFlBQVU7QUFBQSxFQUFZO0FBQUM7QUFBZzFCLFNBQVNDLElBQUcsR0FBRTtBQUFDLFNBQU8sS0FBRyxNQUFJQyxJQUFHLENBQUMsSUFBRVAsS0FBSSxNQUFJLEtBQUcsS0FBSyxNQUFJLElBQUUsS0FBRztBQUFDO0FBQUMsU0FBU1EsSUFBRyxHQUFFO0FBQUMsU0FBTyxLQUFHLE1BQUlDLElBQUcsQ0FBQyxJQUFFVCxLQUFJLE1BQUksS0FBRyxDQUFDLE1BQUksSUFBRSxLQUFHLEtBQUcsTUFBSSxRQUFNLE1BQUk7QUFBSTtBQUE0RSxTQUFTVSxJQUFHLEdBQUU7QUFBQyxNQUFJakIsS0FBRSxFQUFFO0FBQU8sSUFBRSxnQkFBYyxNQUFJQSxHQUFFLFdBQVcsRUFBRSxRQUFNLENBQUMsTUFBSSxPQUFLSyxHQUFFLENBQUMsR0FBRUEsR0FBRSxDQUFDLEdBQUVhLElBQUcsR0FBRWxCLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUU7QUFBQyxTQUFTbUIsSUFBRyxHQUFFbkIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUU7QUFBQyxTQUFPLElBQUUsUUFBTXRCLEdBQUUsR0FBRSxDQUFDLEdBQUVtQixJQUFHLEdBQUVsQixJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLEVBQUM7QUFBQztBQUFDLFNBQVNILElBQUcsR0FBRWxCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsTUFBRyxFQUFDLE9BQU1DLEdBQUMsSUFBRTtBQUFFLE9BQUksRUFBRSxXQUFTLEVBQUUsT0FBTSxFQUFFLFVBQVEsRUFBRSxNQUFLLEVBQUUsU0FBTyxFQUFFLFFBQU8sRUFBRSxRQUFNLEVBQUUsT0FBSztBQUFDLFFBQUdDLEdBQUUsRUFBRSxXQUFXLElBQUUsR0FBRTtBQUFDLFVBQUlDLEtBQUUsRUFBRSxnQkFBYztBQUFHLFNBQUcsQ0FBQyxHQUFFQSxNQUFHLEVBQUUsUUFBTSxFQUFFLE9BQUssRUFBRSxnQkFBYyxPQUFLLEVBQUUsY0FBWXZCLEdBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSztBQUFHO0FBQUEsSUFBSyxZQUFVLEVBQUUsY0FBWSxTQUFPLEdBQUU7QUFBQyxTQUFHLENBQUM7QUFBRTtBQUFBLElBQUs7QUFBQyxJQUFBSyxHQUFFLENBQUMsR0FBRSxFQUFFLFdBQVMsRUFBRSxPQUFNLEVBQUUsVUFBUSxFQUFFLE1BQUssRUFBRSxTQUFPLEVBQUU7QUFBQSxFQUFNO0FBQUMsTUFBRyxFQUFFLFdBQVU7QUFBQyxRQUFJa0IsS0FBRSxFQUFDLE9BQU0sRUFBQyxNQUFLSCxJQUFFLFFBQU8sRUFBQyxHQUFFLEtBQUksRUFBQyxNQUFLLEVBQUUsU0FBUSxRQUFPLEVBQUUsT0FBTSxFQUFDO0FBQUUsTUFBRSxVQUFVSSxJQUFHLElBQUUsR0FBRyxHQUFFeEIsR0FBRSxNQUFNcUIsSUFBRSxFQUFFLFFBQVEsR0FBRWxCLEtBQUUsRUFBRSxVQUFTb0IsRUFBQztBQUFBLEVBQUM7QUFBQyxTQUFPLElBQUU7QUFBQztBQUFDLFNBQVNFLElBQUcsR0FBRXpCLElBQUUsR0FBRTtBQUFDLE1BQUcsRUFBQyxPQUFNLEVBQUMsSUFBRTtBQUFFLFNBQUssRUFBRSxRQUFNLEVBQUU7QUFBSyxRQUFHLEVBQUUsY0FBWSxJQUFHO0FBQUMsVUFBSUcsTUFBRTtBQUFHLGFBQUssRUFBRSxnQkFBYztBQUFJLFlBQUdBLFFBQUksS0FBRyxJQUFHQSxNQUFFLE9BQUlFLEdBQUUsQ0FBQyxNQUFJLElBQUc7QUFBQyxjQUFHQSxHQUFFLENBQUMsR0FBRSxFQUFFLFdBQVU7QUFBQyxnQkFBSWUsS0FBRSxFQUFDLE9BQU0sRUFBQyxNQUFLLEVBQUUsU0FBUSxRQUFPLEVBQUUsT0FBTSxHQUFFLEtBQUksRUFBQyxNQUFLLEVBQUUsTUFBSyxRQUFPLEVBQUUsT0FBTSxFQUFDO0FBQUUsY0FBRSxVQUFVSSxJQUFHLENBQUMsR0FBRXhCLEdBQUUsTUFBTSxHQUFFLEVBQUUsUUFBTSxDQUFDLEdBQUUsSUFBRSxHQUFFLEVBQUUsT0FBTW9CLEVBQUM7QUFBQSxVQUFDO0FBQUMsaUJBQU8sRUFBRSxXQUFTLEVBQUUsT0FBTSxFQUFFLFVBQVEsRUFBRSxNQUFLLEVBQUUsU0FBTyxFQUFFLFFBQU87QUFBQSxRQUFDO0FBQUMsVUFBR2pCO0FBQUU7QUFBUyxNQUFBbUIsR0FBRSxFQUFFLFdBQVcsSUFBRSxJQUFFLEVBQUUsZ0JBQWMsTUFBSSxLQUFHLEdBQUUsR0FBRyxDQUFDLE1BQUliLElBQUcsR0FBRSxDQUFDLEdBQUUsSUFBRSxJQUFFLEtBQUcsS0FBR0osR0FBRSxDQUFDO0FBQUEsSUFBQztBQUFLLE9BQUMsRUFBRSxjQUFZLFNBQU8sS0FBRyxJQUFFLElBQUUsS0FBRyxHQUFFLEdBQUcsQ0FBQyxNQUFJLEtBQUcsSUFBR0EsR0FBRSxDQUFDO0FBQUcsRUFBQU4sR0FBRSxHQUFFLEVBQUU7QUFBQztBQUFDLFNBQVMyQixJQUFHLEdBQUUxQixJQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsT0FBTSxJQUFFO0FBQUU7QUFBRSxlQUFPO0FBQUMsVUFBSTJCLEtBQUUsRUFBRTtBQUFZLFVBQUd0QixHQUFFLENBQUMsR0FBRSxJQUFFO0FBQUUsYUFBRztBQUFBO0FBQVEsZ0JBQU9zQixJQUFFO0FBQUEsVUFBQyxLQUFLO0FBQUcsZ0JBQUc7QUFBRTtBQUFNLGtCQUFNO0FBQUEsVUFBRSxLQUFLO0FBQUcsaUJBQUc7QUFBRTtBQUFBLFVBQU0sS0FBSztBQUFHLGlCQUFHO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBRyxpQkFBRztBQUFFO0FBQUEsVUFBTSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBSyxLQUFLO0FBQUssWUFBQTVCLEdBQUUsR0FBRSxFQUFFO0FBQUEsUUFBQztBQUFDLFVBQUcsRUFBRSxTQUFPLEVBQUUsT0FBTztBQUFPLGVBQU9BLEdBQUUsR0FBRSxFQUFFO0FBQUEsSUFBQztBQUFDLE1BQUlJLE1BQUUsRUFBRSxRQUFNLEdBQUVpQixLQUFFLEdBQUUsSUFBRSxFQUFFLGFBQVksRUFBQyxPQUFNQyxHQUFDLElBQUU7QUFBRSxTQUFLTixJQUFHLENBQUMsS0FBRztBQUFDLFlBQU8sR0FBRTtBQUFBLE1BQUMsS0FBSztBQUFJLFFBQUFLLEtBQUUsS0FBR3JCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsS0FBR3JCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsS0FBR3JCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsTUFBSXJCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRztBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsS0FBR3JCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsTUFBSXJCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FBRXFCLE1BQUc7QUFBRztBQUFBLE1BQU0sS0FBSztBQUFJLFFBQUFBLEtBQUUsTUFBSXJCLEdBQUUsR0FBRSxJQUFHLEdBQUcsR0FB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QUlBLE9BQUk7QUFBSTtBQUFNLHFCQUFPdEIsR0FBRSxDQUFDLEdBQUU7QUFBQSxZQUFFO0FBQUEsVUFBQztBQUFDLGlCQUFPO0FBQUEsUUFBUSxLQUFLLFlBQVc7QUFBQyxVQUFBQSxHQUFFLENBQUM7QUFBRSxjQUFJMkMsS0FBRSxFQUFFO0FBQVksaUJBQU9BLE9BQUksS0FBRzNDLEdBQUUsQ0FBQyxNQUFJLE1BQUlBLEdBQUUsQ0FBQyxHQUFFLFdBQVMsVUFBUTJDLE9BQUksTUFBSTNDLEdBQUUsQ0FBQyxHQUFFLE1BQUk7QUFBQSxRQUFVO0FBQUEsUUFBQyxLQUFLO0FBQVMsaUJBQU9BLEdBQUUsQ0FBQyxNQUFJLEtBQUcsV0FBU0EsR0FBRSxDQUFDLE1BQUksS0FBRyxXQUFTQSxHQUFFLENBQUMsR0FBRTtBQUFBLFFBQVMsS0FBSztBQUFRLGlCQUFPQSxHQUFFLENBQUMsTUFBSSxLQUFHLFdBQVNBLEdBQUUsQ0FBQyxHQUFFO0FBQUEsUUFBUyxLQUFLLFNBQVE7QUFBQyxjQUFHQSxHQUFFLENBQUMsR0FBRSxFQUFFLFNBQU8sRUFBRTtBQUFJLG1CQUFPO0FBQVEsY0FBSTJDLEtBQUUsRUFBRTtBQUFZLGlCQUFPQSxPQUFJLE1BQUkzQyxHQUFFLENBQUMsR0FBRSxXQUFTMkMsT0FBSSxLQUFHLFVBQVEzQyxHQUFFLENBQUMsTUFBSSxLQUFHLFdBQVNBLEdBQUUsQ0FBQyxHQUFFO0FBQUEsUUFBUTtBQUFBLFFBQUMsS0FBSztBQUFRLGlCQUFPQSxHQUFFLENBQUMsTUFBSSxLQUFHLFdBQVNBLEdBQUUsQ0FBQyxHQUFFO0FBQUEsUUFBUyxLQUFLLFVBQVM7QUFBQyxVQUFBQSxHQUFFLENBQUM7QUFBRSxjQUFJMkMsS0FBRSxFQUFFO0FBQVksaUJBQU9BLE9BQUksTUFBSTNDLEdBQUUsQ0FBQyxHQUFFLFlBQVUyQyxPQUFJLE1BQUkzQyxHQUFFLENBQUMsR0FBRSxXQUFTO0FBQUEsUUFBUTtBQUFBLFFBQUMsS0FBSyxVQUFTO0FBQUMsVUFBQUEsR0FBRSxDQUFDO0FBQUUsY0FBSTJDLEtBQUUsRUFBRTtBQUFZLGNBQUdBLE9BQUksSUFBRztBQUFDLGdCQUFHM0MsR0FBRSxDQUFDLElBQUcsSUFBRSxLQUFHLE1BQUksRUFBRSxnQkFBYyxJQUFHO0FBQUMsY0FBQUwsS0FBRSxPQUFLRCxHQUFFLEdBQUUsR0FBRyxHQUFFTSxHQUFFLENBQUMsR0FBRSxJQUFFYyxJQUFHLEdBQUVoQixLQUFFLEdBQUVILElBQUUsR0FBRW9CLElBQUUsR0FBRUMsRUFBQyxHQUFFRCxLQUFFLEVBQUUsVUFBUyxJQUFFLEVBQUUsU0FBUUMsS0FBRSxFQUFFO0FBQU87QUFBQSxZQUFRO0FBQUMsbUJBQU87QUFBQSxVQUFRO0FBQUMsaUJBQU8yQixPQUFJLE1BQUkzQyxHQUFFLENBQUMsR0FBRSxXQUFTO0FBQUEsUUFBUTtBQUFBLFFBQUMsS0FBSyxTQUFRO0FBQUMsY0FBR0EsR0FBRSxDQUFDLEdBQUUsRUFBRSxRQUFNLEVBQUUsS0FBSTtBQUFDLGdCQUFJMkMsS0FBRSxFQUFFO0FBQVksZ0JBQUdBLE9BQUksSUFBRztBQUFDLGNBQUEzQyxHQUFFLENBQUMsR0FBRSxJQUFFYSxJQUFHLEdBQUVmLEtBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLEdBQUVpQixLQUFFLEVBQUUsVUFBUyxJQUFFLEVBQUUsU0FBUUMsS0FBRSxFQUFFO0FBQU87QUFBQSxZQUFRO0FBQUMsZ0JBQUcyQixPQUFJLElBQUc7QUFBQyxjQUFBM0MsR0FBRSxDQUFDLEdBQUUsSUFBRW9CLElBQUcsR0FBRXRCLEtBQUUsQ0FBQyxHQUFFaUIsS0FBRSxFQUFFLFVBQVMsSUFBRSxFQUFFLFNBQVFDLEtBQUUsRUFBRTtBQUFPO0FBQUEsWUFBUTtBQUFDLGdCQUFHckIsS0FBRTtBQUFNLHFCQUFPMEIsSUFBRyxHQUFFMUIsRUFBQztBQUFFLGdCQUFHZ0QsT0FBSTtBQUFHLHFCQUFPM0MsR0FBRSxDQUFDLEdBQUU7QUFBQSxVQUFPO0FBQUMsaUJBQU87QUFBQSxRQUFPO0FBQUEsUUFBQyxLQUFLO0FBQVMsY0FBSWdDLEtBQUVoQyxHQUFFLENBQUM7QUFBRSxjQUFHZ0MsTUFBRyxNQUFJQSxNQUFHO0FBQUcsbUJBQU9GLElBQUcsR0FBRW5DLElBQUUsRUFBRTtBQUFFLGNBQUdxQyxPQUFJLElBQUc7QUFBQyxnQkFBSVcsS0FBRSxFQUFFLFFBQU07QUFBRSxnQkFBR0EsS0FBRSxFQUFFLE9BQUs3QyxJQUFFLFdBQVc2QyxFQUFDLE1BQUk7QUFBRyxxQkFBTyxFQUFFLFVBQVEsR0FBRSxFQUFFLGNBQVk3QyxJQUFFLFdBQVcsRUFBRSxTQUFPLENBQUMsR0FBRTtBQUFBLFVBQUU7QUFBQyxpQkFBTztBQUFBLFFBQVMsS0FBSyxTQUFRO0FBQUMsVUFBQUUsR0FBRSxDQUFDO0FBQUUsY0FBSTJDLEtBQUUsRUFBRTtBQUFZLGlCQUFPQSxPQUFJLE9BQUszQyxHQUFFLENBQUMsR0FBRSxFQUFFLGdCQUFjLE1BQUlBLEdBQUUsQ0FBQyxHQUFFLFdBQVMsV0FBUzJDLE9BQUksTUFBSTNDLEdBQUUsQ0FBQyxHQUFFLFdBQVM7QUFBQSxRQUFPO0FBQUEsUUFBQyxLQUFLLFNBQVE7QUFBQyxVQUFBQSxHQUFFLENBQUM7QUFBRSxjQUFJMkMsS0FBRSxFQUFFO0FBQVksY0FBR0EsT0FBSTtBQUFHLG1CQUFPM0MsR0FBRSxDQUFDLEdBQUU7QUFBUSxjQUFHMkMsT0FBSTtBQUFHLG1CQUFPO0FBQVEsY0FBRzNDLEdBQUUsQ0FBQyxHQUFFLEVBQUUsUUFBTSxFQUFFLEtBQUk7QUFBQyxnQkFBSTRDLEtBQUUsRUFBRTtBQUFZLGdCQUFHQSxPQUFJO0FBQUcscUJBQU81QyxHQUFFLENBQUMsTUFBSSxNQUFJQSxHQUFFLENBQUMsR0FBRSxXQUFTO0FBQVEsZ0JBQUc0QyxPQUFJO0FBQUcscUJBQU81QyxHQUFFLENBQUMsR0FBRTtBQUFBLFVBQU87QUFBQyxpQkFBTztBQUFBLFFBQU87QUFBQSxRQUFDLEtBQUssU0FBUTtBQUFDLFVBQUFBLEdBQUUsQ0FBQztBQUFFLGNBQUkyQyxLQUFFLEVBQUU7QUFBWSxpQkFBT0EsT0FBSSxNQUFJM0MsR0FBRSxDQUFDLEdBQUUsRUFBRSxnQkFBYyxNQUFJQSxHQUFFLENBQUMsR0FBRSxXQUFTLFdBQVMyQyxPQUFJLE1BQUkzQyxHQUFFLENBQUMsR0FBRSxXQUFTO0FBQUEsUUFBTztBQUFBLFFBQUMsS0FBSyxJQUFHO0FBQUMsY0FBSTJDLEtBQUUzQyxHQUFFLENBQUM7QUFBRSxjQUFHMkMsT0FBSTtBQUFHLG1CQUFPM0MsR0FBRSxDQUFDLEdBQUUsRUFBRSxnQkFBYyxNQUFJQSxHQUFFLENBQUMsR0FBRSxXQUFTO0FBQVUsY0FBRzJDLE9BQUksSUFBRztBQUFDLGdCQUFJQyxLQUFFLEVBQUUsUUFBTTtBQUFFLGdCQUFHQSxLQUFFLEVBQUUsUUFBTUQsS0FBRTdDLElBQUUsV0FBVzhDLEVBQUMsR0FBRSxFQUFFRCxNQUFHLE1BQUlBLE1BQUc7QUFBSyxxQkFBTzNDLEdBQUUsQ0FBQyxHQUFFO0FBQUEsVUFBUTtBQUFDLGlCQUFPO0FBQUEsUUFBRTtBQUFBLE1BQUM7QUFBQSxJQUFDLE9BQUs7QUFBQyxXQUFJa0IsS0FBRSxTQUFPLEdBQUU7QUFBQyxZQUFFLElBQUUsS0FBRyxHQUFFLEdBQUcsQ0FBQztBQUFFO0FBQUEsTUFBUTtBQUFDLFdBQUlBLEtBQUUsV0FBUyxTQUFPaEIsS0FBSWdCLE9BQUksS0FBRyxLQUFLLE1BQUlBLEtBQUUsS0FBRztBQUFFLGdCQUFPQSxLQUFFLFdBQVMsVUFBUUEsTUFBR0EsS0FBRSxTQUFPLEtBQUdBLEtBQUUsT0FBSyxPQUFNaEIsS0FBSWdCLE9BQUksS0FBRyxDQUFDLE1BQUlBLEtBQUUsS0FBRyxLQUFHeEIsR0FBRSxHQUFFLElBQUdTLEdBQUVlLEVBQUMsQ0FBQyxHQUFFLEVBQUUsU0FBUSxFQUFFLGNBQVlBLEtBQUcsRUFBRSxVQUFTLEVBQUUsYUFBVyxJQUFHaUIsSUFBRyxHQUFFeEMsSUFBRSxHQUFFLENBQUM7QUFBRSxVQUFHVSxJQUFHYSxFQUFDLEdBQUU7QUFBQyxRQUFBbEIsR0FBRSxDQUFDO0FBQUU7QUFBQSxNQUFRO0FBQUMsTUFBQU4sR0FBRSxHQUFFLElBQUdTLEdBQUVlLEVBQUMsQ0FBQztBQUFBLElBQUM7QUFBQSxFQUFDO0FBQUMsU0FBTztBQUFPO0FBQUMsU0FBUyxHQUFHLEdBQUV2QixJQUFFO0FBQUMsU0FBTyxFQUFFLFdBQVMsRUFBRSxXQUFTLEVBQUUsT0FBTSxFQUFFLGNBQVksRUFBRSxTQUFPLEVBQUUsUUFBTyxFQUFFLFlBQVUsRUFBRSxVQUFRLEVBQUUsTUFBSyxFQUFFLFFBQU1zQixHQUFFLEVBQUUsV0FBVyxJQUFFLE9BQUssR0FBRyxHQUFFdEIsRUFBQyxJQUFFOEMsSUFBRyxHQUFFOUMsSUFBRSxDQUFDLEdBQUUsRUFBRTtBQUFLO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUU7QUFBQyxNQUFJLElBQUUsRUFBRSxhQUFZLElBQUVLLEdBQUUsQ0FBQyxHQUFFRixNQUFFLEVBQUU7QUFBTSxTQUFLLE1BQUk7QUFBRyxNQUFFLFNBQU8sRUFBRSxPQUFLSixHQUFFLEdBQUUsRUFBRSxHQUFFLElBQUVNLEdBQUUsQ0FBQztBQUFFLFNBQU8sTUFBSSxLQUFHTixHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsYUFBVyxFQUFFLE9BQU8sTUFBTUksS0FBRSxFQUFFLEtBQUssR0FBRUUsR0FBRSxDQUFDLEdBQUVMLEtBQUUsUUFBTSxFQUFFLFdBQVMsRUFBRSxPQUFPLE1BQU0sRUFBRSxVQUFTLEVBQUUsS0FBSyxJQUFHO0FBQVM7QUFBQyxTQUFTa0QsSUFBRyxHQUFFbEQsSUFBRTtBQUFDLE1BQUcsRUFBRSxXQUFTLEVBQUUsV0FBUyxFQUFFLE9BQU0sRUFBRSxjQUFZLEVBQUUsU0FBTyxFQUFFLFFBQU8sRUFBRSxZQUFVLEVBQUUsVUFBUSxFQUFFLE1BQUssRUFBRSxTQUFPLEVBQUU7QUFBSSxXQUFPLEVBQUUsUUFBTTtBQUFRLFVBQU8rQyxJQUFHLEVBQUUsT0FBTyxXQUFXLEVBQUUsS0FBSyxDQUFDLEdBQUU7QUFBQSxJQUFDLEtBQUssU0FBUTtBQUFDLE1BQUExQyxHQUFFLENBQUMsR0FBRSxFQUFFLGdCQUFjLE1BQUlBLEdBQUUsQ0FBQyxHQUFFLEVBQUUsUUFBTSxNQUFJLEVBQUUsUUFBTTtBQUFRO0FBQUEsSUFBSztBQUFBLElBQUMsS0FBSyxTQUFRO0FBQUMsTUFBQUEsR0FBRSxDQUFDLEdBQUUsRUFBRSxRQUFNO0FBQVE7QUFBQSxJQUFLO0FBQUEsSUFBQyxTQUFRO0FBQUMsVUFBSSxJQUFFO0FBQUUsYUFBSyxFQUFFLFFBQU0sRUFBRSxPQUFLO0FBQUMsWUFBSWUsS0FBRUUsR0FBRSxFQUFFLE9BQU8sV0FBVyxFQUFFLEtBQUssQ0FBQztBQUFFLFlBQUdGLEtBQUUsUUFBTSxLQUFHLEdBQUUsR0FBRyxDQUFDLEtBQUdBLEtBQUUsUUFBTVgsSUFBRyxHQUFFLENBQUMsR0FBRSxJQUFFLElBQUUsS0FBRyxLQUFHSixHQUFFLENBQUMsR0FBRWlCLEdBQUUsRUFBRSxXQUFXLElBQUU7QUFBTTtBQUFBLE1BQUs7QUFBQyxVQUFJbkIsTUFBRSxFQUFFLE9BQU8sTUFBTSxFQUFFLFVBQVMsRUFBRSxLQUFLO0FBQUUsTUFBQUgsS0FBRSxRQUFNLEVBQUUsV0FBU0csTUFBRyxFQUFFLGFBQVdBLEtBQUUsRUFBRSxRQUFNO0FBQUEsSUFBRztBQUFBLEVBQUM7QUFBQyxTQUFPLEVBQUU7QUFBSztBQUFDLFNBQVMsR0FBRyxHQUFFO0FBQUMsT0FBSSxFQUFFLFFBQU0sWUFBVSxRQUFPO0FBQUMsUUFBRyxFQUFDLE9BQU1ILEdBQUMsSUFBRSxHQUFFLElBQUUsRUFBRTtBQUFZLFdBQUtzQixHQUFFLENBQUMsSUFBRTtBQUFPLFVBQUVqQixHQUFFLENBQUM7QUFBRSxNQUFFLGNBQVksRUFBRSxPQUFPLE1BQU1MLElBQUUsRUFBRSxLQUFLO0FBQUEsRUFBQztBQUFDLFNBQU8sRUFBRSxRQUFNLFFBQU8sRUFBRTtBQUFLO0FBQUMsU0FBU21ELEdBQUUsR0FBRW5ELElBQUUsR0FBRTtBQUFDLElBQUUsRUFBRSxRQUFNLE9BQUssRUFBRSxRQUFNLGFBQVcsV0FBUyxDQUFDLEtBQUdELEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDLEdBQUVDLEdBQUUsR0FBRXJELElBQUUsVUFBVTtBQUFDO0FBQUMsU0FBU3NELElBQUcsR0FBRXRELElBQUUsR0FBRSxHQUFFO0FBQUMsU0FBT0EsS0FBRSxJQUFFLE1BQUksTUFBSSxrQkFBZ0IsRUFBRSxRQUFNLGFBQVcsV0FBUyxFQUFFLFFBQU0sS0FBRyxJQUFFO0FBQUM7QUFBQyxTQUFTdUQsSUFBRyxHQUFFdkQsSUFBRSxHQUFFO0FBQUMsU0FBTyxFQUFFLFVBQVEsSUFBRSxLQUFHNkMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFO0FBQUU7QUFBQyxTQUFTcUQsR0FBRSxHQUFFckQsSUFBRSxHQUFFO0FBQUMsU0FBTyxFQUFFLFVBQVEsSUFBRSxTQUFJNkMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFO0FBQUc7QUFBQyxTQUFTd0QsR0FBRSxHQUFFeEQsSUFBRSxHQUFFO0FBQUMsSUFBRSxVQUFRLEtBQUdELEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxJQUFFLEdBQUcsQ0FBQyxHQUFFUCxHQUFFLEdBQUU3QyxFQUFDO0FBQUM7QUFBQyxTQUFTLEVBQUUsR0FBRUEsSUFBRTtBQUFDLFVBQU9BLEdBQUUsTUFBSztBQUFBLElBQUMsS0FBSTtBQUFrQixNQUFBQSxHQUFFLE9BQUs7QUFBZSxVQUFJLElBQUVBLEdBQUU7QUFBUyxlQUFRRyxNQUFFLEdBQUVpQixLQUFFLEVBQUUsUUFBT2pCLE1BQUVpQixJQUFFLEVBQUVqQixLQUFFO0FBQUMsWUFBSSxJQUFFLEVBQUVBLEdBQUM7QUFBRSxhQUFHLEVBQUUsR0FBRSxDQUFDO0FBQUEsTUFBQztBQUFDO0FBQUEsSUFBTyxLQUFJO0FBQW1CLE1BQUFILEdBQUUsT0FBSztBQUFnQixVQUFJLElBQUVBLEdBQUU7QUFBVyxlQUFRRyxNQUFFLEdBQUVpQixLQUFFLEVBQUUsUUFBT2pCLE1BQUVpQixJQUFFLEVBQUVqQjtBQUFFLFVBQUUsR0FBRSxFQUFFQSxHQUFDLENBQUM7QUFBRTtBQUFBLElBQU8sS0FBSTtBQUF1QixNQUFBSCxHQUFFLE9BQUsscUJBQW9CQSxHQUFFLGFBQVcsT0FBS0QsR0FBRSxHQUFFLEVBQUUsR0FBRSxPQUFPQyxHQUFFLFVBQVMsRUFBRSxHQUFFQSxHQUFFLElBQUk7QUFBRTtBQUFBLElBQU8sS0FBSTtBQUFXLFFBQUUsR0FBRUEsR0FBRSxLQUFLO0FBQUU7QUFBQSxJQUFPLEtBQUk7QUFBZ0IsTUFBQUEsR0FBRSxPQUFLLGVBQWMsRUFBRSxHQUFFQSxHQUFFLFFBQVE7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTeUQsSUFBRyxHQUFFekQsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxFQUFBSCxLQUFFLFVBQVEsSUFBRSxXQUFTLFNBQU9ELEdBQUUsR0FBRSxHQUFHLEdBQUUsQ0FBQ0ksUUFBSSxJQUFFLGVBQWEsYUFBV0osR0FBRSxHQUFFLEdBQUcsS0FBSSxJQUFFLFdBQVMsU0FBT0EsR0FBRSxHQUFFLEdBQUcsR0FBRSxJQUFFLE1BQUksTUFBSSxVQUFRQSxHQUFFLEdBQUUsRUFBRSxHQUFFQyxLQUFFLFdBQVMsTUFBSSxVQUFRRCxHQUFFLEdBQUUsRUFBRSxHQUFFQyxLQUFFLFdBQVMsTUFBSSxVQUFRRCxHQUFFLEdBQUUsSUFBRyxPQUFPO0FBQUM7QUFBQyxTQUFTMkQsSUFBRyxHQUFFMUQsSUFBRSxHQUFFO0FBQUMsRUFBQUEsS0FBRSxVQUFRLElBQUUsV0FBUyxTQUFPRCxHQUFFLEdBQUUsR0FBRyxJQUFHLElBQUUsZUFBYSxhQUFXQSxHQUFFLEdBQUUsR0FBRyxHQUFFLE1BQUksT0FBS0EsR0FBRSxHQUFFLEVBQUUsR0FBRSxNQUFJLE9BQUtBLEdBQUUsR0FBRSxFQUFFLEtBQUksSUFBRSxXQUFTLFNBQU9BLEdBQUUsR0FBRSxHQUFHLEdBQUVDLEtBQUUsV0FBUyxNQUFJLFVBQVFELEdBQUUsR0FBRSxFQUFFLEdBQUVDLEtBQUUsV0FBUyxNQUFJLFVBQVFELEdBQUUsR0FBRSxJQUFHLE9BQU87QUFBQztBQUFDLFNBQVM0RCxJQUFHLEdBQUUzRCxJQUFFLEdBQUU7QUFBQyxTQUFPLE1BQUksV0FBU0EsS0FBRSxXQUFTRCxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsZ0JBQWMsTUFBSyxNQUFJLFVBQVFDLEtBQUUsV0FBU0QsR0FBRSxHQUFFLElBQUcsT0FBTyxJQUFHLElBQUUsV0FBUyxVQUFRLElBQUUsV0FBUyxTQUFPLEtBQUc7QUFBRztBQUFDLFNBQVMsR0FBRyxHQUFFO0FBQUMsU0FBTyxFQUFFLFdBQVMsRUFBRSxTQUFTLFNBQU8sc0JBQW9CO0FBQUU7QUFBQyxTQUFTNkQsSUFBRyxHQUFFNUQsSUFBRSxHQUFFLEdBQUU7QUFBQyxTQUFLQSxNQUFHO0FBQUMsUUFBR0EsR0FBRSxNQUFJLENBQUM7QUFBRSxhQUFPLEtBQUdELEdBQUUsR0FBRSxHQUFHLEdBQUU7QUFBRSxTQUFHQyxHQUFFLFNBQU8sSUFBRSxJQUFHQSxLQUFFQSxHQUFFO0FBQUEsRUFBQztBQUFDLFNBQU87QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFLEdBQUU7QUFBQyxNQUFJLElBQUVBO0FBQUUsU0FBSztBQUFHLE1BQUUsTUFBSSxDQUFDLEtBQUdELEdBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxJQUFFLEVBQUU7QUFBRSxFQUFBQyxHQUFFLE1BQUksQ0FBQyxJQUFFO0FBQUM7QUFBQyxTQUFTNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsU0FBT3BCLEtBQUUsTUFBSW9CLEdBQUUsUUFBTSxHQUFFQSxHQUFFLE1BQUksRUFBRSxVQUFTQSxHQUFFLFFBQU0sQ0FBQyxHQUFFLEVBQUUsUUFBUSxJQUFHcEIsS0FBRSxNQUFJb0IsR0FBRSxNQUFJLEVBQUMsT0FBTSxFQUFDLE1BQUssR0FBRSxRQUFPakIsSUFBQyxHQUFFLEtBQUksRUFBQyxNQUFLLEVBQUUsV0FBVSxRQUFPLEVBQUUsWUFBVyxFQUFDLEdBQUUsRUFBRSxlQUFhaUIsR0FBRSxJQUFJLFNBQU8sRUFBRSxjQUFhQTtBQUFDO0FBQUMsU0FBUzBDLElBQUcsR0FBRTtBQUFDLFVBQU8sRUFBRSxNQUFLO0FBQUEsSUFBQyxLQUFJO0FBQWdCLGFBQU8sRUFBRTtBQUFBLElBQUssS0FBSTtBQUFvQixhQUFPLEVBQUUsWUFBVSxNQUFJLEVBQUU7QUFBQSxJQUFLLEtBQUk7QUFBc0IsYUFBT0EsSUFBRyxFQUFFLE1BQU0sSUFBRSxNQUFJQSxJQUFHLEVBQUUsUUFBUTtBQUFBLEVBQUM7QUFBQztBQUFDLFNBQVNDLElBQUcsR0FBRS9ELElBQUUsR0FBRTtBQUFDLE1BQUksSUFBRWdFLEdBQUVDLElBQUcsR0FBRSxJQUFJO0FBQUUsU0FBT0MsSUFBRyxHQUFFbEUsSUFBRSxHQUFFLEdBQUUsR0FBRSxDQUFDLEdBQUU7QUFBQztBQUFDLFNBQVNtRSxJQUFHLEdBQUVuRSxPQUFLLEdBQUU7QUFBQyxNQUFHLEVBQUMsT0FBTSxHQUFFLE1BQUtHLEtBQUUsUUFBT2lCLEdBQUMsSUFBRTtBQUFFLFNBQU0sRUFBQyxNQUFLcEIsSUFBRSxRQUFPLEdBQUUsT0FBTSxHQUFFLE1BQUtHLEtBQUUsUUFBT2lCLEdBQUM7QUFBQztBQUFDLFNBQVM2QyxNQUFJO0FBQUMsU0FBTSxFQUFDLFFBQU8sUUFBTyxNQUFLLEVBQUM7QUFBQztBQUFDLFNBQVNELEdBQUUsR0FBRWhFLElBQUU7QUFBQyxTQUFNLEVBQUMsUUFBTyxHQUFFLE1BQUtBLElBQUUsWUFBVyxPQUFNO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsRUFBQWpCLE1BQUUsSUFBRWlFLElBQUcsR0FBRXBFLElBQUUsR0FBRSxHQUFFRyxHQUFDLElBQUUrRCxJQUFHLEdBQUVsRSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLEVBQUMsR0FBRUEsS0FBRSxNQUFJLEdBQUcsR0FBRSxDQUFDO0FBQUM7QUFBQyxTQUFTOEMsSUFBRyxHQUFFbEUsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsTUFBSSxJQUFFLEVBQUUsTUFBSSxDQUFDO0FBQUUsT0FBRyxFQUFFLElBQUUsT0FBS2pCLE1BQUUsSUFBRSxFQUFFLGFBQVdnRSxJQUFHLEdBQUUsS0FBSSxDQUFDLElBQUVuRSxLQUFFLE9BQUssSUFBRSxNQUFJb0IsS0FBRSxLQUFHckIsR0FBRSxHQUFFLEtBQUksQ0FBQyxJQUFHLEVBQUUsT0FBSyxPQUFLLEVBQUUsT0FBTyxNQUFJLENBQUMsS0FBRyxFQUFFLEVBQUUsT0FBTyxNQUFJLENBQUMsSUFBRSxNQUFJQSxHQUFFLEdBQUUsS0FBSSxDQUFDLEdBQUUsRUFBRSxPQUFLLFFBQU0sS0FBRyxFQUFFLElBQUUsTUFBSUksTUFBRSxNQUFJLEVBQUUsYUFBV2dFLElBQUcsR0FBRSxLQUFJLENBQUMsSUFBRyxFQUFFLE9BQUssTUFBSSxFQUFFLE9BQU8sTUFBSSxDQUFDLElBQUUsT0FBS3BFLEdBQUUsR0FBRSxLQUFJLENBQUMsR0FBRSxFQUFFLE1BQUksQ0FBQyxJQUFFSTtBQUFDO0FBQUMsU0FBU2lFLElBQUcsR0FBRXBFLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBSWlCLEtBQUU7QUFBRSxTQUFLQSxNQUFHLEVBQUVBLEdBQUUsT0FBSyxRQUFNO0FBQUMsUUFBSSxJQUFFQSxHQUFFLE1BQUksQ0FBQztBQUFFLFFBQUUsUUFBTXBCLEtBQUUsT0FBSyxFQUFFQSxLQUFFLFVBQVFHLE1BQUUsT0FBSyxJQUFFLE1BQUksSUFBRSxPQUFLQSxNQUFFLE9BQUtKLEdBQUUsR0FBRSxLQUFJLENBQUMsSUFBR3FCLE9BQUksS0FBRyxJQUFFLEtBQUdqQixNQUFFLE1BQUlpQixHQUFFLGFBQVcrQyxJQUFHLEdBQUUsS0FBSSxDQUFDLElBQUcsSUFBRSxRQUFNLEVBQUUsSUFBRSxRQUFNLEVBQUVuRSxLQUFFLFFBQU1BLEtBQUUsU0FBT0QsR0FBRSxHQUFFLEtBQUksQ0FBQyxHQUFFcUIsR0FBRSxNQUFJLENBQUMsSUFBRWpCLEtBQUVpQixLQUFFQSxHQUFFO0FBQUEsRUFBTTtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwQixJQUFFO0FBQUMsSUFBRSxrQkFBZ0IsVUFBUUEsT0FBSSxPQUFLLEVBQUUsY0FBYyxNQUFJQSxFQUFDLEtBQUdELEdBQUUsR0FBRSxLQUFJQyxFQUFDLEdBQUUsRUFBRSxjQUFjLE1BQUlBLEVBQUMsSUFBRTtBQUFFO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUU7QUFBQyxJQUFFLHFCQUFtQixVQUFRQSxPQUFJLE9BQUssRUFBRSxpQkFBaUIsTUFBSUEsRUFBQyxJQUFFO0FBQUU7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRTtBQUFDLFNBQU8sU0FBUyxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxRQUFJQyxLQUFFLEVBQUMsTUFBSyxHQUFFLE9BQU0sRUFBQztBQUFFLFFBQUUsTUFBSUEsR0FBRSxRQUFNbEIsS0FBRWtCLEdBQUUsTUFBSUQsSUFBRUMsR0FBRSxRQUFNLENBQUNsQixLQUFFaUIsRUFBQyxJQUFHLElBQUUsTUFBSUMsR0FBRSxNQUFJLElBQUdyQixHQUFFLEtBQUtxQixFQUFDO0FBQUEsRUFBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVyQixJQUFFO0FBQUMsU0FBTyxTQUFTLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxRQUFJLElBQUUsRUFBQyxPQUFNLEVBQUM7QUFBRSxRQUFFLE1BQUksRUFBRSxRQUFNLEdBQUUsRUFBRSxNQUFJakIsS0FBRSxFQUFFLFFBQU0sQ0FBQyxHQUFFQSxHQUFDLElBQUcsSUFBRSxNQUFJLEVBQUUsTUFBSWlCLEtBQUdwQixHQUFFLEtBQUssQ0FBQztBQUFBLEVBQUM7QUFBQztBQUFDLFNBQVNxRSxJQUFHLEdBQUVyRSxJQUFFO0FBQUMsU0FBTyxJQUFFLFVBQVEsSUFBRSxRQUFNQSxPQUFJLFVBQVEsSUFBRSxXQUFTQSxPQUFJLFNBQU8sU0FBSUEsS0FBRSxZQUFVLFdBQVNBLEtBQUUsV0FBUyxTQUFPQSxLQUFFLFlBQVUsV0FBU0EsS0FBRSxXQUFTLFVBQVFBLEtBQUUsV0FBUztBQUFLO0FBQUMsU0FBU3NFLElBQUcsR0FBRXRFLElBQUUsR0FBRSxHQUFFO0FBQUMsR0FBQyxJQUFFLGVBQWEsY0FBWUEsS0FBRSxRQUFNRCxHQUFFLEdBQUUsR0FBRyxHQUFFLE1BQUksRUFBRSxTQUFPLE9BQU1zRSxJQUFHckUsSUFBRSxDQUFDLEtBQUdELEdBQUUsR0FBRSxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUMsSUFBRSxHQUFFLEdBQUU7QUFBQyxTQUFNLEVBQUMsUUFBTyxHQUFFLE9BQU0sR0FBRSxPQUFNLEdBQUUsTUFBSyxHQUFFLFFBQU8sR0FBRSxVQUFTLEdBQUUsS0FBSSxFQUFFLFFBQU8sVUFBUyxHQUFFLGFBQVksR0FBRSxRQUFPLEdBQUUsU0FBUSxHQUFFLFdBQVUsR0FBRSxZQUFXQSxJQUFFLFlBQVcsSUFBRyxPQUFNLFNBQVEsVUFBUyxJQUFHLGFBQVksUUFBTyxhQUFZLEVBQUUsV0FBVyxDQUFDLEdBQUUsZUFBYyxDQUFDLEdBQUUsa0JBQWlCLENBQUMsR0FBRSxZQUFXLEdBQUUsY0FBYSxHQUFFLFdBQVUsR0FBRSxTQUFRLEdBQUUsbUJBQWtCLENBQUMsRUFBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxJQUFHRyxLQUFFaUI7QUFBRSxFQUFBcEIsTUFBRyxTQUFPQSxHQUFFLFdBQVMsS0FBRyxPQUFNQSxHQUFFLFNBQU8sS0FBRyxJQUFHQSxHQUFFLFFBQU0sS0FBRyxJQUFHQSxHQUFFLFdBQVMsS0FBRyxJQUFHQSxHQUFFLHVCQUFxQixLQUFHLGNBQWFBLEdBQUUsWUFBVSxLQUFHLEtBQUlBLEdBQUUsY0FBWSxLQUFHLE1BQUtBLEdBQUUsZUFBYSxLQUFHLE1BQUtBLEdBQUUsaUJBQWUsS0FBRyxLQUFJQSxHQUFFLFFBQU0sS0FBRyxNQUFLQSxHQUFFLG1CQUFpQixLQUFHLE1BQUtBLEdBQUUsa0JBQWdCLEtBQUcsT0FBTUEsR0FBRSxRQUFNLEtBQUcsS0FBSUEsR0FBRSxzQkFBb0IsS0FBRyxZQUFXQSxHQUFFLGtCQUFnQixLQUFHLFlBQVdBLEdBQUUsV0FBUyxJQUFFQSxHQUFFLFNBQVFBLEdBQUUsYUFBVyxTQUFPRyxNQUFFLE1BQU0sUUFBUUgsR0FBRSxTQUFTLElBQUUsR0FBRyxHQUFFQSxHQUFFLFNBQVMsSUFBRUEsR0FBRSxZQUFXQSxHQUFFLFdBQVMsU0FBT29CLEtBQUUsTUFBTSxRQUFRcEIsR0FBRSxPQUFPLElBQUUsR0FBRyxHQUFFQSxHQUFFLE9BQU8sSUFBRUEsR0FBRTtBQUFVLE1BQUksSUFBRSxHQUFHLEdBQUUsR0FBRUcsS0FBRWlCLEVBQUM7QUFBRSxNQUFFLEtBQUdILElBQUcsQ0FBQztBQUFFLE1BQUlJLEtBQUUsSUFBRSxLQUFHNEMsSUFBRyxJQUFFLFFBQU8xQyxLQUFFLENBQUMsR0FBRSxJQUFFO0FBQVMsTUFBRyxJQUFFLE1BQUs7QUFBQyxRQUFHLElBQUUsVUFBU0EsS0FBRSxHQUFHLEdBQUUsSUFBRSxNQUFLRixFQUFDLEdBQUVBO0FBQUUsZUFBUWdCLE1BQUssRUFBRTtBQUFpQixRQUFBQSxHQUFFLENBQUMsTUFBSSxPQUFLLENBQUNoQixHQUFFZ0IsRUFBQyxLQUFHdEMsR0FBRSxHQUFFLEtBQUlzQyxHQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFBQztBQUFNLElBQUFkLEtBQUUsR0FBRyxHQUFFLElBQUUsTUFBS0YsRUFBQztBQUFFLE1BQUlNLEtBQUUsRUFBQyxNQUFLLFdBQVUsWUFBVyxHQUFFLE1BQUtKLEdBQUM7QUFBRSxTQUFPLElBQUUsTUFBSUksR0FBRSxRQUFNLEdBQUVBLEdBQUUsTUFBSSxFQUFFLFFBQU9BLEdBQUUsUUFBTSxDQUFDLEdBQUUsRUFBRSxNQUFNLElBQUcsSUFBRSxNQUFJQSxHQUFFLE1BQUksRUFBQyxPQUFNLEVBQUMsTUFBSyxHQUFFLFFBQU8sRUFBQyxHQUFFLEtBQUksRUFBQyxNQUFLLEVBQUUsTUFBSyxRQUFPLEVBQUUsT0FBTSxFQUFDLEdBQUUsRUFBRSxlQUFhQSxHQUFFLElBQUksU0FBTyxLQUFJQTtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUUzQixJQUFFLEdBQUU7QUFBQyxFQUFBNkMsR0FBRSxHQUFFN0MsS0FBRSxRQUFNLFVBQVU7QUFBRSxNQUFJLElBQUUsQ0FBQztBQUFFLFNBQUssRUFBRSxVQUFRLGFBQVc7QUFBQyxRQUFHLEVBQUMsT0FBTUcsS0FBRSxVQUFTaUIsSUFBRSxZQUFXLEdBQUUsU0FBUUMsSUFBRSxRQUFPRSxJQUFFLE9BQU0sRUFBQyxJQUFFLEdBQUVJLEtBQUU0QyxHQUFFLEdBQUV2RSxFQUFDO0FBQUUsSUFBQXNELElBQUcsR0FBRW5ELEtBQUVpQixJQUFFLENBQUMsTUFBSXBCLE1BQUcsT0FBTSxFQUFFLEtBQUt3RSxJQUFHLEdBQUV4RSxJQUFFMkIsSUFBRSxHQUFFUCxJQUFFQyxJQUFFRSxFQUFDLENBQUM7QUFBQSxFQUFDO0FBQUMsU0FBSyxFQUFFLFVBQVE7QUFBUyxNQUFFLEtBQUtrRCxJQUFHLEdBQUV6RSxJQUFFLEdBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUFFLFNBQU87QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFLEdBQUU7QUFBQyxFQUFBNkMsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBSSxJQUFFLENBQUM7QUFBRSxNQUFHQSxLQUFFO0FBQUUsV0FBSyxFQUFFLFVBQVEsYUFBVztBQUFDLFVBQUcsRUFBQyxVQUFTRyxLQUFFLFNBQVFpQixJQUFFLFFBQU8sR0FBRSxPQUFNQyxHQUFDLElBQUU7QUFBRSxRQUFFLEtBQUttRCxJQUFHLEdBQUV4RSxJQUFFdUUsR0FBRSxHQUFFdkUsRUFBQyxHQUFFcUIsSUFBRWxCLEtBQUVpQixJQUFFLENBQUMsQ0FBQztBQUFBLElBQUM7QUFBQyxTQUFLLEVBQUUsVUFBUTtBQUFTLE1BQUUsS0FBSyxHQUFHLEdBQUVwQixJQUFFLENBQUMsQ0FBQztBQUFFLFNBQU87QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFLEdBQUU7QUFBQyxJQUFFLG9CQUFrQjBFLElBQUcsR0FBRTFFLEVBQUM7QUFBRSxNQUFJO0FBQUUsVUFBTyxFQUFFLE9BQU07QUFBQSxJQUFDLEtBQUs7QUFBTSxVQUFFLEdBQUcsR0FBRUEsSUFBRSxDQUFDO0FBQUU7QUFBQSxJQUFNLEtBQUs7QUFBTSxVQUFFLEdBQUcsR0FBRUEsSUFBRSxDQUFDO0FBQUU7QUFBQSxJQUFNO0FBQVEsVUFBRXlFLElBQUcsR0FBRXpFLElBQUUsR0FBRSxHQUFFLENBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPLEVBQUUsa0JBQWtCLFVBQVFELEdBQUUsR0FBRSxHQUFHLEdBQUU7QUFBQztBQUFDLFNBQVMwRSxJQUFHLEdBQUV6RSxJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLE1BQUlpQixLQUFFLEVBQUUsVUFBUyxJQUFFLEVBQUUsU0FBUUMsS0FBRSxFQUFFO0FBQU8sVUFBTyxFQUFFLE9BQU07QUFBQSxJQUFDLEtBQUs7QUFBTSxhQUFPLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFb0IsSUFBRSxHQUFFQyxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQUEsSUFBSSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRW9CLElBQUUsR0FBRUMsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU9zRCxJQUFHLEdBQUUzRSxJQUFFLEdBQUUsSUFBRyxHQUFFb0IsSUFBRSxHQUFFQyxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU8sYUFBTyxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRW9CLElBQUUsR0FBRUMsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLE1BQUF0QixHQUFFLEdBQUUsS0FBSSxRQUFRO0FBQUEsSUFBRSxLQUFLO0FBQU0sY0FBTzhDLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLE9BQU07QUFBQSxRQUFDLEtBQUs7QUFBUyxpQkFBTzRFLElBQUcsR0FBRTVFLElBQUVvQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxRQUFFLEtBQUs7QUFBUyxpQkFBT3dELElBQUcsR0FBRTdFLElBQUVvQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxRQUFFO0FBQVEsVUFBQXRCLEdBQUUsR0FBRSxLQUFJLFFBQVE7QUFBQSxNQUFDO0FBQUEsSUFBQyxLQUFLO0FBQU8sYUFBTytFLElBQUcsR0FBRTlFLElBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVpQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxJQUFFO0FBQVEsYUFBTzBELElBQUcsR0FBRS9FLElBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVpQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxFQUFDO0FBQUM7QUFBQyxTQUFTMEQsSUFBRyxHQUFFL0UsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUU7QUFBQyxVQUFPLEVBQUUsT0FBTTtBQUFBLElBQUMsS0FBSztBQUFNLGFBQU95RCxJQUFHLEdBQUVoRixJQUFFLEdBQUUsR0FBRSxHQUFFcUIsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRSxHQUFFcUIsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRSxHQUFFRyxLQUFFLEdBQUVrQixJQUFFRSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUV2QixJQUFFLEdBQUVHLEtBQUUsR0FBRWtCLElBQUVFLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTSxhQUFPMEQsSUFBRyxHQUFFakYsSUFBRSxHQUFFRyxLQUFFLEdBQUVrQixJQUFFRSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUV2QixJQUFFLEdBQUVHLEtBQUUsR0FBRWtCLElBQUVFLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTSxhQUFPLEdBQUcsR0FBRXZCLElBQUUsR0FBRUcsS0FBRSxHQUFFa0IsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFXLGFBQU8sR0FBRyxHQUFFdkIsSUFBRSxHQUFFcUIsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFRLGFBQU8yRCxJQUFHLEdBQUVsRixJQUFFLEtBQUdnRSxHQUFFLEdBQUUsQ0FBQyxHQUFFN0QsS0FBRSxHQUFFa0IsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRSxHQUFFcUIsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRUcsS0FBRSxHQUFFa0IsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRUcsS0FBRSxHQUFFa0IsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFdkIsSUFBRSxHQUFFRyxLQUFFLEdBQUVrQixJQUFFRSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUV2QixJQUFFLEdBQUVHLEtBQUUsR0FBRWtCLElBQUVFLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTSxhQUFPLEdBQUcsR0FBRXZCLElBQUUsR0FBRXFCLElBQUVFLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTyxhQUFPdUQsSUFBRyxHQUFFOUUsSUFBRSxHQUFFLEdBQUVHLEtBQUUsR0FBRSxHQUFFa0IsSUFBRUUsRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLE1BQUF4QixHQUFFLEdBQUUsR0FBRztBQUFBLElBQUUsS0FBSztBQUFNLE1BQUFBLEdBQUUsR0FBRSxHQUFHO0FBQUEsSUFBRSxLQUFLO0FBQU0sTUFBQUEsR0FBRSxHQUFFQyxLQUFFLE9BQUssS0FBR0EsS0FBRSxNQUFJLEtBQUcsRUFBRTtBQUFBLElBQUUsS0FBSztBQUFNLE1BQUFELEdBQUUsR0FBRSxFQUFFO0FBQUEsSUFBRTtBQUFRLGFBQU8sR0FBRyxHQUFFQyxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsRUFBQztBQUFBLEVBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFdkIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUU7QUFBQyxNQUFHLEVBQUMsWUFBVyxHQUFFLE9BQU1JLEdBQUMsSUFBRSxHQUFFVTtBQUFFLFVBQU9WLElBQUU7QUFBQSxJQUFDLEtBQUs7QUFBTyxNQUFBVSxLQUFFOEMsR0FBRSxHQUFFbkYsSUFBRSxDQUFDLEdBQUVBLEtBQUUsUUFBTUQsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLFVBQVEsWUFBVUEsR0FBRSxHQUFFLEVBQUU7QUFBRTtBQUFBLElBQU07QUFBUSxNQUFBc0MsS0FBRStDLEdBQUUsR0FBRXBGLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBQSxFQUFDO0FBQUMsU0FBTzJCLEtBQUUsVUFBUSxFQUFFLFVBQVEsS0FBRzBELElBQUcsR0FBRXJGLElBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVrQyxJQUFFVixJQUFFUCxJQUFFLEdBQUVDLElBQUVFLEVBQUMsS0FBR2MsS0FBRWlELEdBQUUsR0FBRXRGLElBQUVxQyxJQUFFLEdBQUUsR0FBRSxHQUFFaEIsSUFBRUUsRUFBQyxHQUFFYyxLQUFFa0QsR0FBRSxHQUFFdkYsSUFBRSxHQUFFLEdBQUUsR0FBRXFCLElBQUVFLElBQUVjLEVBQUMsR0FBRSxFQUFFLFVBQVEsT0FBS0EsS0FBRSxHQUFHLEdBQUVyQyxJQUFFLEdBQUUsR0FBRXFCLElBQUVFLElBQUVjLEVBQUMsSUFBR21ELElBQUcsR0FBRXhGLElBQUVxQyxJQUFFLEdBQUVoQixJQUFFRSxFQUFDO0FBQUU7QUFBQyxTQUFTMkQsSUFBRyxHQUFFbEYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxNQUFJQyxLQUFFLENBQUM7QUFBRSxPQUFJbUMsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLE9BQU8sR0FBRSxFQUFFLFVBQVE7QUFBWSxJQUFBcUIsR0FBRSxLQUFLb0QsSUFBRyxHQUFFekUsSUFBRSxHQUFFLEdBQUUsRUFBQyxHQUFFLEVBQUMsQ0FBQyxDQUFDO0FBQUUsU0FBT3dELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxVQUFVLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyxrQkFBaUIsTUFBS0MsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsSUFBRUgsS0FBRSxPQUFLQSxLQUFFLFFBQU1ELEdBQUUsR0FBRSxFQUFFLEdBQUU4QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJb0IsS0FBRSxFQUFFLFFBQU0sS0FBRyxFQUFFLFFBQU0sVUFBUSxPQUFLcUUsR0FBRSxHQUFFekYsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPbUQsR0FBRSxHQUFFbkQsS0FBRSxLQUFLLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUssbUJBQWtCLFVBQVNpQixHQUFDLENBQUM7QUFBQztBQUFDLFNBQVNvRSxJQUFHLEdBQUV4RixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxTQUFPK0IsR0FBRSxHQUFFbkQsS0FBRSxLQUFLLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyx1QkFBc0IsWUFBVyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVNpRSxJQUFHLEdBQUVyRixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFSSxJQUFFVSxJQUFFO0FBQUMsRUFBQW9CLElBQUcsR0FBRXpELElBQUUsR0FBRXFCLElBQUUsQ0FBQyxHQUFFLEdBQUcsR0FBRWxCLEtBQUVpQixFQUFDLEdBQUV5QixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJZ0QsS0FBRXpCLE1BQUcsRUFBRXZCLEtBQUUsU0FBT0EsS0FBRSxPQUFLLEVBQUUsVUFBUSxRQUFNLEdBQUcsR0FBRUEsSUFBRWdFLEdBQUUsR0FBRSxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxJQUFFZSxJQUFHLEdBQUUvRSxJQUFFLEdBQUUsR0FBRUcsS0FBRW9CLElBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPc0MsR0FBRSxHQUFFN0QsSUFBRSxHQUFFMkIsSUFBRVUsSUFBRSxFQUFDLE1BQUssb0JBQW1CLE9BQU0sR0FBRSxNQUFLVyxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVM4QixJQUFHLEdBQUU5RSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRTtBQUFDLE1BQUcsRUFBQyxPQUFNLEdBQUUsWUFBV0ksR0FBQyxJQUFFLEdBQUVVLEtBQUU4QyxHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBRSxNQUFHLEVBQUUsVUFBUTtBQUFHLFdBQU9xRixJQUFHLEdBQUVyRixJQUFFLEdBQUUsR0FBRUcsS0FBRXdCLElBQUVVLElBQUUsR0FBRSxHQUFFLEdBQUVoQixJQUFFRSxFQUFDO0FBQUUsTUFBSXlCLEtBQUUsRUFBRSxRQUFNO0FBQUUsTUFBRyxDQUFDQSxJQUFFO0FBQUMsUUFBRyxFQUFFLFVBQVE7QUFBTSxhQUFPNUIsTUFBR3JCLEdBQUUsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFQyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFcUIsSUFBRUUsRUFBQztBQUFFLFNBQUksRUFBRSxRQUFNLFlBQVU7QUFBTyxhQUFPYyxLQUFFcUQsSUFBRyxHQUFFMUYsSUFBRSxHQUFFLEdBQUVxQixJQUFFRSxFQUFDLEdBQUUsRUFBRSxVQUFRLE9BQUtjLEtBQUUsR0FBRyxHQUFFckMsSUFBRSxHQUFFLEdBQUVxQixJQUFFRSxJQUFFYyxFQUFDLElBQUdtRCxJQUFHLEdBQUV4RixJQUFFcUMsSUFBRSxHQUFFaEIsSUFBRUUsRUFBQztBQUFBLEVBQUM7QUFBQyxTQUFPLEVBQUUsVUFBUSxXQUFTYyxLQUFFc0QsSUFBRyxHQUFFM0YsSUFBRXFDLElBQUUsR0FBRSxHQUFFLEdBQUVXLElBQUUsR0FBRTNCLElBQUVFLEVBQUMsS0FBRyxFQUFFLFVBQVEsT0FBSytDLElBQUcsR0FBRXRFLElBQUUsR0FBRSxDQUFDLEdBQUVxQyxLQUFFdUQsSUFBRyxHQUFFNUYsSUFBRSxFQUFFLFlBQVdxQyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVoQixJQUFFRSxFQUFDLElBQUcsRUFBRSxhQUFXLElBQUdjLEtBQUVpRCxHQUFFLEdBQUV0RixJQUFFcUMsSUFBRSxHQUFFLEdBQUUsR0FBRWhCLElBQUVFLEVBQUMsR0FBRSxFQUFFLFVBQVEsT0FBS2MsS0FBRSxHQUFHLEdBQUVyQyxJQUFFLEdBQUUsR0FBRXFCLElBQUVFLElBQUVjLEVBQUMsSUFBR0EsS0FBRWtELEdBQUUsR0FBRXZGLElBQUUsR0FBRSxHQUFFLEdBQUVxQixJQUFFRSxJQUFFYyxFQUFDLEdBQUUsRUFBRSxhQUFXLEdBQUVtRCxJQUFHLEdBQUV4RixJQUFFcUMsSUFBRSxHQUFFaEIsSUFBRUUsRUFBQztBQUFDO0FBQUMsU0FBU2lELElBQUcsR0FBRXhFLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsU0FBTyxNQUFJLGVBQWEsRUFBRSxhQUFXLEdBQUUsSUFBRWtFLEdBQUUsR0FBRXRGLElBQUUsR0FBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLENBQUMsR0FBRSxFQUFFLFVBQVEsZUFBYSxJQUFFbUUsR0FBRSxHQUFFdkYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUUsQ0FBQyxHQUFFLEVBQUUsVUFBUSxPQUFLLElBQUUsR0FBRyxHQUFFcEIsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFLENBQUMsS0FBSStCLEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxJQUFHQSxLQUFFLEtBQUcsRUFBRSxTQUFPLGFBQVcsT0FBTyxFQUFFLFNBQU8sV0FBUzZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLHVCQUFzQixZQUFXLEdBQUUsV0FBVSxFQUFFLElBQUksTUFBTSxHQUFFLEVBQUUsRUFBQyxDQUFDLElBQUV5QyxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyx1QkFBc0IsWUFBVyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFcEIsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxTQUFPMEMsR0FBRSxHQUFFN0MsS0FBRSxLQUFLLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUssaUJBQWdCLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFSCxJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLEVBQUEwQyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRSxFQUFFLFFBQU0sS0FBR0QsR0FBRSxHQUFFLEVBQUU7QUFBRSxNQUFJcUIsS0FBRXFFLEdBQUUsR0FBRXpGLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBT21ELEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLGtCQUFpQixVQUFTaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsRUFBQXlCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRXdELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRLEdBQUUsRUFBRSxhQUFXO0FBQUUsTUFBSXFCLEtBQUVvRSxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxNQUFLLEVBQUUsTUFBTTtBQUFFLEVBQUF3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sRUFBRTtBQUFFLE1BQUl1QixLQUFFc0UsSUFBRyxHQUFFN0YsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sR0FBRSxJQUFFO0FBQUssU0FBTyxFQUFFLFVBQVEsVUFBUTZDLEdBQUUsR0FBRTdDLEtBQUUsS0FBSyxHQUFFLElBQUU2RixJQUFHLEdBQUU3RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxJQUFHNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssZUFBYyxNQUFLQyxJQUFFLFlBQVdFLElBQUUsV0FBVSxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVNzRSxJQUFHLEdBQUU3RixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLFNBQU9wQixLQUFFLFFBQU0sRUFBRUEsS0FBRSxRQUFNLEVBQUUsVUFBUSxRQUFNK0UsSUFBRyxHQUFFL0UsSUFBRSxHQUFFLEdBQUUsRUFBQyxHQUFFLEVBQUMsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLElBQUUsR0FBRyxHQUFFQSxJQUFFZ0UsR0FBRSxHQUFFLENBQUMsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFN0QsS0FBRWlCLElBQUUsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxFQUFDLEdBQUV3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sUUFBUTtBQUFFLE1BQUlxQixLQUFFb0UsR0FBRSxHQUFFekYsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxFQUFBd0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFLEdBQUV3RCxHQUFFLEdBQUV4RCxJQUFFLE9BQU87QUFBRSxNQUFJdUIsS0FBRSxDQUFDLEdBQUUsSUFBRTtBQUFFLE9BQUksTUFBSSxJQUFFeUMsR0FBRSxHQUFFLENBQUMsSUFBRyxFQUFFLFVBQVEsY0FBWTtBQUFDLFFBQUcsRUFBQyxVQUFTckMsSUFBRSxTQUFRVSxJQUFFLFFBQU9XLEdBQUMsSUFBRSxHQUFFQyxLQUFFLE1BQUs2QyxLQUFFLENBQUM7QUFBRSxTQUFJekMsR0FBRSxHQUFFckQsS0FBRSxPQUFNLEtBQUssSUFBRWlELEtBQUV3QyxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxLQUFHd0QsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEtBQUssR0FBRSxLQUFHRCxHQUFFLEdBQUUsRUFBRSxHQUFFLElBQUUsSUFBR3lELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxFQUFFLEdBQUUsRUFBRSxVQUFRLFNBQU8sRUFBRSxVQUFRLGNBQVksRUFBRSxVQUFRO0FBQU8sTUFBQThGLEdBQUUsS0FBS3JCLElBQUcsR0FBRXpFLEtBQUUsTUFBSyxHQUFFLEdBQUUsRUFBQyxHQUFFLEVBQUMsQ0FBQyxDQUFDO0FBQUUsSUFBQXVCLEdBQUUsS0FBS3NDLEdBQUUsR0FBRTdELElBQUUyQixJQUFFVSxJQUFFVyxJQUFFLEVBQUMsTUFBSyxjQUFhLE1BQUtDLElBQUUsWUFBVzZDLEdBQUMsQ0FBQyxDQUFDO0FBQUEsRUFBQztBQUFDLFNBQU90QyxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sVUFBVSxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssbUJBQWtCLGNBQWFDLElBQUUsT0FBTUUsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXZCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsRUFBQXlCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRXdELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRO0FBQUUsTUFBSXFCLEtBQUVvRSxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLEVBQUF3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sRUFBRTtBQUFFLE1BQUl1QixLQUFFd0UsSUFBRyxHQUFFL0YsSUFBRSxHQUFFLENBQUM7QUFBRSxTQUFPNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssa0JBQWlCLE1BQUtDLElBQUUsTUFBS0UsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTd0UsSUFBRyxHQUFFL0YsSUFBRSxHQUFFLEdBQUU7QUFBQyxTQUFPK0UsSUFBRyxJQUFHL0UsS0FBRSxhQUFXLFlBQVUsUUFBTyxHQUFFLEdBQUUsRUFBQyxNQUFLLEdBQUUsR0FBRSxFQUFDLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLEVBQUFwQixLQUFFLFVBQVFELEdBQUUsR0FBRSxFQUFFLEdBQUU4QyxHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSSxJQUFFO0FBQUssTUFBRyxFQUFFLEVBQUUsUUFBTSxNQUFJLEVBQUUsUUFBTSxRQUFPO0FBQUMsUUFBRyxFQUFDLFlBQVdxQixHQUFDLElBQUU7QUFBRSxRQUFFOEQsR0FBRSxHQUFFbkYsS0FBRSxPQUFNLENBQUMsR0FBRTRELElBQUcsR0FBRSxHQUFFdkMsSUFBRSxDQUFDLEtBQUd0QixHQUFFLEdBQUUsS0FBSXNCLEVBQUM7QUFBQSxFQUFDO0FBQUMsU0FBTzhCLEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUsscUJBQW9CLE9BQU0sRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJLElBQUU7QUFBSyxNQUFHLEVBQUUsRUFBRSxRQUFNLE1BQUksRUFBRSxRQUFNLFFBQU87QUFBQyxRQUFHLEVBQUMsWUFBV3FCLEdBQUMsSUFBRTtBQUFFLFFBQUU4RCxHQUFFLEdBQUVuRixLQUFFLE9BQU0sQ0FBQyxHQUFFNEQsSUFBRyxHQUFFLEdBQUV2QyxJQUFFLENBQUMsS0FBR3RCLEdBQUUsR0FBRSxLQUFJc0IsRUFBQztBQUFBLEVBQUM7QUFBTSxJQUFBckIsS0FBRSxVQUFRRCxHQUFFLEdBQUUsRUFBRTtBQUFFLFNBQU9vRCxHQUFFLEdBQUVuRCxLQUFFLEtBQUssR0FBRTZELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLGtCQUFpQixPQUFNLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxFQUFDLEdBQUVBLEtBQUUsUUFBTUQsR0FBRSxHQUFFLEVBQUUsR0FBRXlELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRO0FBQUUsTUFBSXFCLEtBQUVvRSxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLEVBQUF3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sRUFBRTtBQUFFLE1BQUl1QixLQUFFd0QsSUFBRyxHQUFFL0UsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBTzZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLGlCQUFnQixRQUFPQyxJQUFFLE1BQUtFLEdBQUMsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUV2QixJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLFNBQU8wQyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRW1ELEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLG9CQUFtQixDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUgsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxFQUFBeUIsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBSXFCLEtBQUUsSUFBRTJDLEdBQUUsR0FBRSxFQUFFLElBQUUsUUFBT3pDLEtBQUUyRCxJQUFHLEdBQUVsRixJQUFFcUIsSUFBRSxFQUFDLEdBQUUsRUFBQyxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLEdBQUUsRUFBQyxVQUFTLEdBQUUsU0FBUU0sSUFBRSxRQUFPVSxHQUFDLElBQUUsR0FBRVcsS0FBRUssR0FBRSxHQUFFckQsS0FBRSxPQUFNLEtBQUssSUFBRSxHQUFHLEdBQUVBLElBQUUsR0FBRSxHQUFFLEdBQUUyQixJQUFFVSxFQUFDLElBQUUsTUFBS1ksS0FBRTtBQUFLLE1BQUcsRUFBRSxVQUFRLE9BQU07QUFBQyxJQUFBSixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxRQUFJOEYsS0FBRXpFLEtBQUUyQyxHQUFFLEdBQUUsQ0FBQyxJQUFFO0FBQU8sSUFBQWYsS0FBRWlDLElBQUcsR0FBRWxGLElBQUU4RixJQUFFLEVBQUMsR0FBRSxFQUFDLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBQSxFQUFDO0FBQUMsU0FBTSxDQUFDOUMsTUFBRyxDQUFDQyxNQUFHbEQsR0FBRSxHQUFFLEVBQUUsR0FBRThELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLGdCQUFlLE9BQU1HLElBQUUsU0FBUXlCLElBQUUsV0FBVUMsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRWpELElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsTUFBSUMsS0FBRSxNQUFLRSxLQUFFO0FBQUUsRUFBQThCLEdBQUUsR0FBRXJELElBQUUsUUFBUSxNQUFJLE1BQUksSUFBRWdFLEdBQUUsR0FBRSxDQUFDLElBQUczQyxLQUFFMkUsSUFBRyxHQUFFaEcsSUFBRSxJQUFHLEVBQUUsUUFBTSxhQUFXLFVBQVEsTUFBSSxLQUFJLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sR0FBRSxFQUFFLFVBQVEsS0FBR0QsR0FBRSxHQUFFLEVBQUUsSUFBRSxFQUFFLFVBQVEsY0FBWUEsR0FBRSxHQUFFLEVBQUUsR0FBRXlELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxFQUFFLEdBQUUsTUFBSXVCLEtBQUV5QyxHQUFFLEdBQUUsRUFBRTtBQUFJLE1BQUksSUFBRWtCLElBQUcsR0FBRWxGLElBQUV1QixJQUFFLEVBQUMsR0FBRSxFQUFDLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPc0MsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssZUFBYyxPQUFNQyxJQUFFLE1BQUssRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLFFBQUksSUFBRTRDLEdBQUUsR0FBRSxDQUFDO0FBQUcsTUFBSSxJQUFFO0FBQU8sRUFBQWhFLE1BQUdBLEtBQUUsS0FBRyxJQUFFO0FBQU8sTUFBRyxFQUFDLE1BQUtxQixHQUFDLElBQUU2RCxJQUFHLEdBQUVsRixJQUFFLEdBQUUsQ0FBQyxHQUFFLEdBQUVHLEtBQUVpQixFQUFDO0FBQUUsU0FBT3lDLEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLGVBQWMsTUFBS0MsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTNEQsSUFBRyxHQUFFakYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxFQUFBeUIsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBSXFCLEtBQUUwRSxJQUFHLEdBQUUvRixJQUFFLEdBQUUsQ0FBQztBQUFFLEVBQUF3RCxHQUFFLEdBQUV4RCxJQUFFLEtBQUssR0FBRXdELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRO0FBQUUsTUFBSXVCLEtBQUVrRSxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU93RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sRUFBRSxHQUFFcUQsR0FBRSxHQUFFckQsSUFBRSxVQUFVLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyxvQkFBbUIsTUFBS0MsSUFBRSxNQUFLRSxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFdkIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxNQUFHLEVBQUMsT0FBTUMsSUFBRSxZQUFXRSxHQUFDLElBQUUsR0FBRSxJQUFFNEQsR0FBRSxHQUFFbkYsSUFBRSxDQUFDO0FBQUUsTUFBRyxFQUFFLFFBQU0sU0FBUTtBQUFDLFFBQUkyQixLQUFFc0UsSUFBRyxHQUFFakcsSUFBRSxHQUFFLEdBQUUsQ0FBQztBQUFFLFdBQU9tRCxHQUFFLEdBQUVuRCxLQUFFLEtBQUssR0FBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLHVCQUFzQixNQUFLLE9BQU0sY0FBYU8sR0FBQyxDQUFDO0FBQUEsRUFBQztBQUFDLE1BQUcsRUFBRSxhQUFXLEdBQUUzQixLQUFFLFFBQU1ELEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxVQUFRO0FBQUcsV0FBT3NGLElBQUcsR0FBRXJGLElBQUUsR0FBRSxHQUFFLENBQUMsR0FBRXVCLElBQUUsR0FBRUYsSUFBRSxHQUFFbEIsS0FBRWlCLElBQUUsQ0FBQztBQUFFLE1BQUcsRUFBRSxVQUFRLElBQUc7QUFBQyxRQUFJTztBQUFFLElBQUEzQixLQUFFLE9BQUsyQixLQUFFb0MsSUFBRyxHQUFFL0QsSUFBRXVCLEVBQUMsSUFBRyxFQUFFLFNBQU8sRUFBRSxRQUFNLE9BQUssS0FBSSxJQUFFLEdBQUcsR0FBRXZCLElBQUUyQixJQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUV4QixLQUFFaUIsSUFBRSxDQUFDO0FBQUEsRUFBQztBQUFNLFFBQUVrRSxHQUFFLEdBQUV0RixJQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxDQUFDLEdBQUUsSUFBRW1FLEdBQUUsR0FBRXZGLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFLENBQUM7QUFBRSxTQUFPLEVBQUUsVUFBUSxPQUFLLElBQUUsR0FBRyxHQUFFcEIsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFLENBQUMsSUFBR29FLElBQUcsR0FBRXhGLElBQUUsR0FBRUcsS0FBRWlCLElBQUUsQ0FBQztBQUFDO0FBQUMsU0FBU3VELElBQUcsR0FBRTNFLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFO0FBQUMsRUFBQXdCLEdBQUUsR0FBRTdDLEVBQUM7QUFBRSxNQUFJdUIsS0FBRTBFLElBQUcsR0FBRWpHLElBQUUsR0FBRSxHQUFFRyxHQUFDO0FBQUUsU0FBT2dELEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRW9CLElBQUUsR0FBRUMsSUFBRSxFQUFDLE1BQUssdUJBQXNCLE1BQUssSUFBRSxJQUFFLFFBQU0sU0FBUSxjQUFhRSxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVN5RCxJQUFHLEdBQUVoRixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSXFCLEtBQUU0RSxJQUFHLEdBQUVqRyxJQUFFLEdBQUUsR0FBRSxDQUFDO0FBQUUsU0FBT21ELEdBQUUsR0FBRW5ELEtBQUUsS0FBSyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssdUJBQXNCLE1BQUssT0FBTSxjQUFhQyxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVM0RSxJQUFHLEdBQUVqRyxJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLE1BQUlpQixLQUFFLEdBQUUsSUFBRSxDQUFDOEUsSUFBRyxHQUFFbEcsSUFBRSxHQUFFLEdBQUVHLEdBQUMsQ0FBQztBQUFFLFNBQUtrRCxHQUFFLEdBQUVyRCxJQUFFLEVBQUU7QUFBRyxJQUFBb0IsTUFBSSxFQUFFLEtBQUs4RSxJQUFHLEdBQUVsRyxJQUFFLEdBQUUsR0FBRUcsR0FBQyxDQUFDO0FBQUUsU0FBT2lCLEtBQUUsS0FBR2pCLE1BQUUsTUFBSSxFQUFFLFFBQU0sVUFBUUosR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUMsR0FBRTtBQUFDO0FBQUMsU0FBUzhDLElBQUcsR0FBRWxHLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBRyxFQUFDLE9BQU1pQixJQUFFLFVBQVMsR0FBRSxTQUFRQyxJQUFFLFFBQU9FLEdBQUMsSUFBRSxHQUFFLElBQUUsTUFBS0ksS0FBRXFFLElBQUcsR0FBRWhHLElBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVrQixJQUFFRSxFQUFDO0FBQUUsU0FBTyxFQUFFLFVBQVEsY0FBWXNCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSyxHQUFFLElBQUVtRyxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLElBQUdHLE1BQUUsTUFBSSxFQUFFaUIsS0FBRSxjQUFZLEVBQUUsVUFBUSxVQUFRLEVBQUUsVUFBUSxZQUFVQSxLQUFFLFdBQVMsRUFBRSxJQUFFLE1BQUlwQixLQUFFLFVBQVEsR0FBRyxHQUFFLEVBQUUsTUFBSyxFQUFFLFFBQU0sR0FBRSxJQUFHLEVBQUUsVUFBUSxTQUFPLE9BQUssSUFBSSxNQUFJLElBQUUsT0FBS29CLEtBQUUsV0FBUyxPQUFLLEVBQUUsUUFBTSxZQUFVLFVBQVFyQixHQUFFLEdBQUUsSUFBRyxJQUFFLEtBQUcsVUFBUSxlQUFlLEdBQUU4RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVxQixJQUFFRSxJQUFFLEVBQUMsTUFBSyxzQkFBcUIsSUFBR0ksSUFBRSxNQUFLLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUUzQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSXFCLE9BQUlyQixLQUFFLFdBQVMsTUFBSUEsS0FBRSxRQUFNLE1BQUlBLEtBQUUsUUFBTSxNQUFJcUQsR0FBRSxHQUFFckQsSUFBRSxNQUFNO0FBQUUsRUFBQXdELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRLEdBQUUsTUFBSSxJQUFFZ0UsR0FBRSxHQUFFLENBQUM7QUFBRyxNQUFJekMsS0FBRSxNQUFLLElBQUUsTUFBS0ksS0FBRSxHQUFFVSxLQUFFLE1BQUtXLEtBQUUsRUFBRSxVQUFRLFNBQU8sRUFBRSxVQUFRLFVBQVEsRUFBRSxVQUFRLE9BQU1DLElBQUUsRUFBQyxPQUFNNkMsSUFBRSxVQUFTTSxJQUFFLFNBQVFDLElBQUUsUUFBT0MsR0FBQyxJQUFFO0FBQUUsTUFBR3RELEtBQUU4QyxPQUFJLFVBQVF6RCxLQUFFOEMsR0FBRSxHQUFFbkYsSUFBRSxDQUFDLEdBQUUsRUFBRSxRQUFNLFdBQVMsRUFBRSxVQUFRLFVBQVFBLEtBQUUsUUFBTUQsR0FBRSxHQUFFLEVBQUUsSUFBRXNDLEtBQUV3QixHQUFFLEdBQUU3RCxJQUFFb0csSUFBRUMsSUFBRUMsSUFBRSxFQUFDLE1BQUssdUJBQXNCLE1BQUssT0FBTSxjQUFhTCxJQUFHLEdBQUVqRyxLQUFFLFdBQVUsR0FBRSxHQUFFLEVBQUUsRUFBQyxDQUFDLEdBQUUsRUFBRSxhQUFXLEtBQUdBLEtBQUUsT0FBS0QsR0FBRSxHQUFFLEVBQUUsS0FBR2lELEtBQUUsT0FBRyxFQUFFLGFBQVcsR0FBRVgsS0FBRWlELEdBQUUsR0FBRXRGLElBQUVxQyxJQUFFLEdBQUUsR0FBRStELElBQUVDLElBQUVDLEVBQUMsR0FBRSxFQUFFLFVBQVEsVUFBUXZHLEdBQUUsR0FBRSxHQUFHLE9BQUs4QyxHQUFFLEdBQUU3QyxFQUFDLEdBQUVxQyxLQUFFd0IsR0FBRSxHQUFFN0QsSUFBRW9HLElBQUVDLElBQUVDLElBQUVSLE9BQUksUUFBTSxFQUFDLE1BQUssdUJBQXNCLE1BQUssT0FBTSxjQUFhRyxJQUFHLEdBQUVqRyxLQUFFLFdBQVUsR0FBRSxHQUFFLEVBQUUsRUFBQyxJQUFFLEVBQUMsTUFBSyx1QkFBc0IsTUFBSyxTQUFRLGNBQWFpRyxJQUFHLEdBQUVqRyxLQUFFLFdBQVUsR0FBRSxJQUFHLEVBQUUsRUFBQyxDQUFDLEdBQUUsRUFBRSxhQUFXLEtBQUc4RixPQUFJLGFBQVd6RSxNQUFHdEIsR0FBRSxHQUFFLEVBQUUsS0FBRytGLEtBQUUsYUFBVyxXQUFTekQsS0FBRXlELE9BQUksVUFBUVMsR0FBRSxHQUFFdkcsSUFBRSxRQUFPLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBR29HLElBQUVDLElBQUVDLEVBQUMsSUFBRUUsR0FBRSxHQUFFeEcsSUFBRSxRQUFPLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBR29HLElBQUVDLElBQUVDLEVBQUMsR0FBRTNFLEtBQUUsRUFBRSxjQUFhM0IsS0FBRSxPQUFLMkIsS0FBRSxNQUFJNUIsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLGFBQVc0QixLQUFFLEtBQUcsSUFBRSxHQUFFVSxLQUFFaUQsR0FBRSxHQUFFdEYsS0FBRSxXQUFVcUMsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sS0FBR0EsS0FBRW9FLEdBQUUsR0FBRXpHLEtBQUUsV0FBVSxHQUFFLEdBQUUsR0FBRW9HLElBQUVDLElBQUVDLEVBQUMsSUFBRyxFQUFFLFFBQU0sWUFBVSxRQUFPO0FBQUMsUUFBRyxFQUFFLFVBQVEsUUFBTztBQUFDLFFBQUUsYUFBVyxLQUFHdkcsR0FBRSxHQUFFLElBQUdzQixLQUFFLFVBQVEsSUFBSSxHQUFFLEVBQUUsR0FBRWdCLEVBQUMsR0FBRVEsR0FBRSxHQUFFN0MsS0FBRSxLQUFLLEdBQUVpRCxLQUFFa0QsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxHQUFFd0QsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEVBQUU7QUFBRSxVQUFJMEcsS0FBRVgsSUFBRyxHQUFFL0YsSUFBRSxHQUFFLENBQUM7QUFBRSxhQUFPNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssa0JBQWlCLE1BQUtpQixJQUFFLE9BQU1ZLElBQUUsTUFBS3lELElBQUUsT0FBTXJGLEdBQUMsQ0FBQztBQUFBLElBQUM7QUFBQyxNQUFFLGFBQVcsS0FBR3RCLEdBQUUsR0FBRSxJQUFHLElBQUksR0FBRSxFQUFFLEdBQUVzQyxFQUFDLEdBQUVRLEdBQUUsR0FBRTdDLEtBQUUsS0FBSyxHQUFFcUIsTUFBR3RCLEdBQUUsR0FBRSxFQUFFLEdBQUVrRCxLQUFFd0MsR0FBRSxHQUFFekYsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sR0FBRXdELEdBQUUsR0FBRXhELEtBQUUsT0FBTSxFQUFFO0FBQUUsUUFBSTJHLEtBQUVaLElBQUcsR0FBRS9GLElBQUUsR0FBRSxDQUFDO0FBQUUsV0FBTzZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLGtCQUFpQixNQUFLdUYsSUFBRSxNQUFLdEUsSUFBRSxPQUFNWSxHQUFDLENBQUM7QUFBQSxFQUFDO0FBQUMsRUFBQTVCLE1BQUd0QixHQUFFLEdBQUUsRUFBRSxHQUFFaUQsT0FBSXJCLEtBQUUsS0FBRyxFQUFFLFVBQVEsY0FBWTVCLEdBQUUsR0FBRSxJQUFHLE1BQU0sR0FBRXNDLEtBQUVrRCxHQUFFLEdBQUV2RixLQUFFLFdBQVUsR0FBRSxHQUFFb0csSUFBRUMsSUFBRUMsSUFBRWpFLEVBQUMsSUFBRyxFQUFFLFVBQVEsT0FBS0EsS0FBRSxHQUFHLEdBQUVyQyxJQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLFFBQU9xQyxFQUFDLElBQUdtQixHQUFFLEdBQUV4RCxLQUFFLE9BQU0sVUFBVSxHQUFFLEVBQUUsVUFBUSxlQUFhdUIsS0FBRWtFLEdBQUUsR0FBRXpGLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLElBQUd3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sVUFBVSxHQUFFLEVBQUUsVUFBUSxPQUFLLElBQUV5RixHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxJQUFHd0QsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEVBQUU7QUFBRSxNQUFJNEcsS0FBRWIsSUFBRyxHQUFFL0YsSUFBRSxHQUFFLENBQUM7QUFBRSxTQUFPNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssZ0JBQWUsTUFBS2lCLElBQUUsTUFBS2QsSUFBRSxRQUFPLEdBQUUsTUFBS3FGLEdBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU0MsSUFBRyxHQUFFN0csSUFBRSxHQUFFO0FBQUMsU0FBT3FFLElBQUdyRSxJQUFFLEVBQUUsS0FBSyxLQUFHRCxHQUFFLEdBQUUsR0FBRyxJQUFHLEVBQUUsUUFBTSxlQUFhLGFBQVdBLEdBQUUsR0FBRSxHQUFHLEdBQUUsS0FBR21FLElBQUcsR0FBRWxFLElBQUUsR0FBRSxFQUFFLFlBQVcsR0FBRSxDQUFDLEdBQUVtRixHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFLEdBQUU7QUFBQyxNQUFJLElBQUUsRUFBRSxVQUFTRyxNQUFFLEVBQUUsU0FBUWlCLEtBQUUsRUFBRTtBQUFPLEVBQUF5QixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSSxJQUFFLE1BQUssRUFBQyxVQUFTcUIsSUFBRSxTQUFRRSxJQUFFLFFBQU8sRUFBQyxJQUFFLEdBQUVJLEtBQUUsQ0FBQztBQUFFLE1BQUcsRUFBRSxVQUFRO0FBQVUsUUFBRTRDLEdBQUUsR0FBRXZFLEVBQUM7QUFBQSxPQUFNO0FBQUMsUUFBRyxFQUFFLFFBQU0sUUFBTztBQUFDLFVBQUlxQyxLQUFFd0UsSUFBRyxHQUFFN0csSUFBRSxDQUFDO0FBQUUsVUFBRzJCLEtBQUUsQ0FBQ2tDLEdBQUUsR0FBRTdELElBQUVxQixJQUFFRSxJQUFFLEdBQUUsRUFBQyxNQUFLLDBCQUF5QixPQUFNYyxHQUFDLENBQUMsQ0FBQyxHQUFFZ0IsR0FBRSxHQUFFckQsSUFBRSxFQUFFO0FBQUUsZ0JBQU8sRUFBRSxPQUFNO0FBQUEsVUFBQyxLQUFLO0FBQVEsWUFBQTJCLEdBQUUsS0FBS21GLElBQUcsR0FBRTlHLElBQUUsQ0FBQyxDQUFDO0FBQUU7QUFBQSxVQUFNLEtBQUs7QUFBUSxZQUFBK0csSUFBRyxHQUFFL0csSUFBRSxHQUFFMkIsRUFBQztBQUFFO0FBQUEsVUFBTTtBQUFRLFlBQUE1QixHQUFFLEdBQUUsR0FBRztBQUFBLFFBQUM7QUFBQSxJQUFDO0FBQU0sY0FBTyxFQUFFLE9BQU07QUFBQSxRQUFDLEtBQUs7QUFBUSxVQUFBNEIsS0FBRSxDQUFDbUYsSUFBRyxHQUFFOUcsSUFBRSxDQUFDLENBQUM7QUFBRTtBQUFBLFFBQU0sS0FBSztBQUFRLFVBQUErRyxJQUFHLEdBQUUvRyxJQUFFLEdBQUUyQixFQUFDO0FBQUU7QUFBQSxRQUFNLEtBQUs7QUFBUyxpQkFBT2lELElBQUcsR0FBRTVFLElBQUUsR0FBRUcsS0FBRWlCLEVBQUM7QUFBQSxRQUFFLEtBQUs7QUFBUyxpQkFBT3lELElBQUcsR0FBRTdFLElBQUUsR0FBRUcsS0FBRWlCLEVBQUM7QUFBQSxRQUFFO0FBQVEsVUFBQXJCLEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDO0FBQUEsTUFBQztBQUFDLFFBQUUsR0FBRyxHQUFFcEQsRUFBQztBQUFBLEVBQUM7QUFBQyxTQUFPbUQsR0FBRSxHQUFFbkQsS0FBRSxLQUFLLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxxQkFBb0IsWUFBV08sSUFBRSxRQUFPLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU21GLElBQUcsR0FBRTlHLElBQUUsR0FBRTtBQUFDLE1BQUcsRUFBQyxVQUFTLEdBQUUsU0FBUUcsS0FBRSxRQUFPaUIsR0FBQyxJQUFFO0FBQUUsU0FBT3lCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRXdELEdBQUUsR0FBRXhELElBQUUsS0FBSyxJQUFHLEVBQUUsUUFBTSxlQUFhLGFBQVcsR0FBRyxHQUFFLEVBQUUsTUFBSyxFQUFFLE9BQU0sSUFBR29ELEdBQUUsRUFBRSxRQUFNLEdBQUcsQ0FBQyxHQUFFUyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyw0QkFBMkIsT0FBTXlGLElBQUcsR0FBRTdHLElBQUUsQ0FBQyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFO0FBQUMsU0FBT3FELEdBQUUsR0FBRXJELElBQUUsS0FBSyxHQUFFLEVBQUUsVUFBUSxhQUFXRCxHQUFFLEdBQUUsS0FBSSxRQUFRLEdBQUV3RSxHQUFFLEdBQUV2RSxFQUFDO0FBQUM7QUFBQyxTQUFTK0csSUFBRyxHQUFFL0csSUFBRSxHQUFFLEdBQUU7QUFBQyxPQUFJNkMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFLEVBQUUsUUFBTSxVQUFRO0FBQUMsUUFBRyxFQUFDLE9BQU1HLEtBQUUsWUFBV2lCLElBQUUsVUFBUyxHQUFFLFNBQVFDLElBQUUsUUFBT0UsR0FBQyxJQUFFLEdBQUUsSUFBRTRELEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFMkI7QUFBRSxJQUFBMEIsR0FBRSxHQUFFckQsSUFBRSxLQUFLLE1BQUksRUFBRSxRQUFNLGVBQWEsYUFBVyxFQUFFLFVBQVEsS0FBR0QsR0FBRSxHQUFFLEdBQUcsSUFBRTBELElBQUcsR0FBRXpELElBQUUsSUFBRyxFQUFFLE9BQU0sQ0FBQyxHQUFFb0IsS0FBRSxFQUFFLFlBQVdPLEtBQUV3RCxHQUFFLEdBQUVuRixJQUFFLENBQUMsTUFBSXlELElBQUcsR0FBRXpELElBQUUsSUFBR0csS0FBRSxDQUFDLEdBQUV3QixLQUFFLElBQUcsS0FBR3VDLElBQUcsR0FBRWxFLElBQUUsR0FBRW9CLElBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxLQUFLeUMsR0FBRSxHQUFFN0QsSUFBRSxHQUFFcUIsSUFBRUUsSUFBRSxFQUFDLE1BQUssbUJBQWtCLE9BQU1JLElBQUUsVUFBUyxFQUFDLENBQUMsQ0FBQyxHQUFFLEVBQUUsVUFBUSxjQUFZNkIsR0FBRSxHQUFFeEQsSUFBRSxFQUFFO0FBQUEsRUFBQztBQUFDLFNBQU93RCxHQUFFLEdBQUV4RCxJQUFFLFVBQVUsR0FBRTtBQUFDO0FBQUMsU0FBUzZFLElBQUcsR0FBRTdFLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBSWlCLEtBQUU0RixJQUFHLEdBQUVoSCxJQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLGNBQWEsTUFBSyxTQUFRLENBQUMsR0FBRSxHQUFFLEdBQUVBLEdBQUM7QUFBRSxTQUFPaUIsS0FBRWtFLEdBQUUsR0FBRXRGLElBQUVvQixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVqQixHQUFDLEdBQUVpQixLQUFFbUUsR0FBRSxHQUFFdkYsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsRUFBQyxHQUFFb0UsSUFBRyxHQUFFeEYsSUFBRW9CLElBQUUsR0FBRSxHQUFFakIsR0FBQztBQUFDO0FBQUMsU0FBU3lFLElBQUcsR0FBRTVFLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBSWlCLEtBQUU2RixJQUFHLEdBQUVqSCxJQUFFLEdBQUUsR0FBRSxHQUFFRyxHQUFDO0FBQUUsU0FBT2lCLEtBQUVrRSxHQUFFLEdBQUV0RixJQUFFb0IsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFakIsR0FBQyxHQUFFLEVBQUUsVUFBUSxPQUFLaUIsS0FBRSxHQUFHLEdBQUVwQixJQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsRUFBQyxJQUFHb0UsSUFBRyxHQUFFeEYsSUFBRW9CLElBQUUsR0FBRSxHQUFFakIsR0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVILElBQUUsR0FBRTtBQUFDLE1BQUksSUFBRSxFQUFFLFVBQVNHLE1BQUUsRUFBRSxTQUFRaUIsS0FBRSxFQUFFO0FBQU8sRUFBQXlCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUksSUFBRSxDQUFDLEdBQUVxQixLQUFFLE1BQUtFLEtBQUUsTUFBSztBQUFFLE1BQUc4QixHQUFFLEdBQUVyRCxLQUFFLE9BQU0sS0FBSyxHQUFFO0FBQUMsWUFBTyxFQUFFLE9BQU07QUFBQSxNQUFDLEtBQUssT0FBTTtBQUFDLFFBQUFxQixLQUFFLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUU7QUFBQSxNQUFLO0FBQUEsTUFBQyxLQUFLO0FBQUEsTUFBSSxLQUFLO0FBQU0sUUFBQXFCLEtBQUUsR0FBRyxHQUFFckIsSUFBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFPLFlBQUcsRUFBQyxVQUFTMkIsSUFBRSxTQUFRVSxJQUFFLFFBQU9XLEdBQUMsSUFBRTtBQUFFLFFBQUEzQixLQUFFOEQsR0FBRSxHQUFFbkYsSUFBRSxDQUFDO0FBQUUsWUFBRyxFQUFDLE9BQU1pRCxHQUFDLElBQUU7QUFBRSxRQUFBQSxLQUFFLE1BQUksRUFBRSxVQUFRLFFBQU01QixLQUFFLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFMkIsSUFBRVUsSUFBRVcsRUFBQyxJQUFFLEVBQUUsVUFBUSxZQUFVM0IsS0FBRXNFLElBQUcsR0FBRTNGLElBQUVxQixJQUFFLEdBQUUsR0FBRSxHQUFFNEIsSUFBRXRCLElBQUVVLElBQUVXLEVBQUMsR0FBRTNCLEtBQUVpRSxHQUFFLEdBQUV0RixJQUFFcUIsSUFBRSxHQUFFLEdBQUVNLElBQUVVLElBQUVXLEVBQUMsR0FBRTNCLEtBQUVrRSxHQUFFLEdBQUV2RixJQUFFLEdBQUUsR0FBRTJCLElBQUVVLElBQUVXLElBQUUzQixFQUFDLEtBQUcsRUFBRSxRQUFNLFdBQVMsTUFBSSxJQUFFMEMsSUFBRyxHQUFFL0QsSUFBRSxFQUFFLFVBQVUsSUFBR3FCLEtBQUU4RCxHQUFFLEdBQUVuRixJQUFFLENBQUMsR0FBRXFCLEtBQUUsR0FBRyxHQUFFckIsSUFBRSxHQUFFLENBQUNxQixFQUFDLEdBQUUsR0FBRU0sSUFBRVUsSUFBRVcsRUFBQztBQUFJO0FBQUEsTUFBTTtBQUFRLFFBQUEzQixLQUFFOEUsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxHQUFFbUQsR0FBRSxHQUFFbkQsS0FBRSxLQUFLO0FBQUEsSUFBQztBQUFDLFdBQU8sS0FBRyxHQUFHLEdBQUUsU0FBUyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUssNEJBQTJCLGFBQVlDLEdBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxVQUFPLEVBQUUsT0FBTTtBQUFBLElBQUMsS0FBSyxTQUFRO0FBQUMsTUFBQXdCLEdBQUUsR0FBRTdDLEVBQUM7QUFBRSxVQUFJaUQsS0FBRTtBQUFLLGFBQU9JLEdBQUUsR0FBRXJELElBQUUsS0FBSyxNQUFJLEtBQUcsR0FBRyxHQUFFLEVBQUUsVUFBVSxHQUFFaUQsS0FBRWtDLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxJQUFHd0QsR0FBRSxHQUFFeEQsSUFBRSxLQUFLLEdBQUUsRUFBRSxVQUFRLGFBQVdELEdBQUUsR0FBRSxLQUFJLFFBQVEsR0FBRXdCLEtBQUVnRCxHQUFFLEdBQUV2RSxFQUFDLEdBQUVtRCxHQUFFLEdBQUVuRCxLQUFFLEtBQUssR0FBRTZELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLHdCQUF1QixRQUFPRyxJQUFFLFVBQVMwQixHQUFDLENBQUM7QUFBQSxJQUFDO0FBQUEsSUFBQyxLQUFLLFNBQVE7QUFBQyxNQUFBSixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsVUFBSWlELEtBQUUsQ0FBQyxHQUFFNkMsS0FBRSxDQUFDO0FBQUUsYUFBSyxFQUFFLFFBQU0sVUFBUTtBQUFDLFlBQUcsRUFBQyxVQUFTTSxJQUFFLFlBQVdDLElBQUUsU0FBUUMsSUFBRSxRQUFPTSxHQUFDLElBQUUsR0FBRUQsS0FBRXhCLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFMEc7QUFBRSxVQUFFLFVBQVEsU0FBTzdELEdBQUUsR0FBRTdDLEVBQUMsSUFBRyxFQUFFLFFBQU0sZUFBYSxhQUFXRCxHQUFFLEdBQUUsR0FBRyxHQUFFLE1BQUlrRCxHQUFFLEtBQUssRUFBRSxVQUFVLEdBQUU2QyxHQUFFLEtBQUtPLEVBQUMsSUFBR0ssS0FBRXZCLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxNQUFJLE1BQUlpRCxHQUFFLEtBQUssRUFBRSxVQUFVLEdBQUU2QyxHQUFFLEtBQUssRUFBRSxVQUFVLElBQUdZLEtBQUVDLEtBQUcsRUFBRSxLQUFLOUMsR0FBRSxHQUFFN0QsSUFBRW9HLElBQUVFLElBQUVNLElBQUUsRUFBQyxNQUFLLG1CQUFrQixPQUFNRCxJQUFFLFVBQVNELEdBQUMsQ0FBQyxDQUFDLEdBQUUsRUFBRSxVQUFRLGNBQVlsRCxHQUFFLEdBQUV4RCxJQUFFLEVBQUU7QUFBQSxNQUFDO0FBQUMsVUFBR3dELEdBQUUsR0FBRXhELElBQUUsVUFBVSxHQUFFcUQsR0FBRSxHQUFFckQsSUFBRSxLQUFLO0FBQUUsVUFBRSxVQUFRLGFBQVdELEdBQUUsR0FBRSxLQUFJLFFBQVEsR0FBRXdCLEtBQUVnRCxHQUFFLEdBQUV2RSxFQUFDO0FBQUEsZUFBVSxHQUFFO0FBQUMsWUFBSW9HLEtBQUUsR0FBRUMsS0FBRXBELEdBQUU7QUFBTyxlQUFLbUQsS0FBRUMsSUFBRUQ7QUFBSSxhQUFHLEdBQUVuRCxHQUFFbUQsRUFBQyxDQUFDO0FBQUUsYUFBSUEsS0FBRSxHQUFFQyxLQUFFUCxHQUFFLFFBQU9NLEtBQUVDLElBQUVEO0FBQUksYUFBRyxHQUFFTixHQUFFTSxFQUFDLENBQUM7QUFBQSxNQUFDO0FBQUMsTUFBQWpELEdBQUUsR0FBRW5ELEtBQUUsS0FBSztBQUFFO0FBQUEsSUFBSztBQUFBLElBQUMsS0FBSztBQUFNLE1BQUFxQixLQUFFLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUU7QUFBQSxJQUFNLEtBQUs7QUFBTSxNQUFBcUIsS0FBRSxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFO0FBQUEsSUFBTSxLQUFLO0FBQU8sTUFBQXFCLEtBQUVzRCxJQUFHLEdBQUUzRSxJQUFFLEdBQUUsR0FBRSxJQUFHLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUU7QUFBQSxJQUFNLEtBQUs7QUFBTSxNQUFBcUIsS0FBRXNELElBQUcsR0FBRTNFLElBQUUsR0FBRSxJQUFHLElBQUcsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRTtBQUFBLElBQU0sS0FBSztBQUFNLE1BQUFxQixLQUFFMkQsSUFBRyxHQUFFaEYsSUFBRSxHQUFFLElBQUcsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRTtBQUFBLElBQU0sS0FBSztBQUFPLFVBQUcsRUFBQyxVQUFTMkIsSUFBRSxTQUFRVSxJQUFFLFFBQU9XLEdBQUMsSUFBRTtBQUFFLFVBQUdILEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLEVBQUUsUUFBTSxNQUFJLEVBQUUsVUFBUSxPQUFNO0FBQUMsUUFBQXFCLEtBQUUsR0FBRyxHQUFFckIsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUyQixJQUFFVSxJQUFFVyxFQUFDLEdBQUUsTUFBSSxJQUFFM0IsR0FBRSxLQUFHQSxHQUFFLEdBQUcsT0FBSyxJQUFHLEdBQUcsR0FBRSxDQUFDO0FBQUc7QUFBQSxNQUFLO0FBQUEsSUFBQztBQUFRLE1BQUF0QixHQUFFLEdBQUUsSUFBR3FELEdBQUUsRUFBRSxRQUFNLEdBQUcsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPUyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSywwQkFBeUIsYUFBWUMsSUFBRSxZQUFXLEdBQUUsUUFBT0UsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTNEUsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUU7QUFBQyxNQUFJRSxLQUFFNkQsR0FBRSxHQUFFcEYsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVpQixJQUFFLEdBQUVDLEVBQUM7QUFBRSxTQUFPRSxLQUFFK0QsR0FBRSxHQUFFdEYsSUFBRXVCLElBQUVwQixLQUFFLEdBQUVpQixJQUFFLEdBQUVDLEVBQUMsR0FBRWtFLEdBQUUsR0FBRXZGLElBQUVHLEtBQUUsR0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsRUFBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUV2QixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUlDLEtBQUUsQ0FBQyxDQUFDO0FBQUUsU0FBS2dDLEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFO0FBQUcsSUFBQXFCLEdBQUUsS0FBSzhFLEdBQUUsR0FBRW5HLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sQ0FBQztBQUFFLFNBQU82RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxzQkFBcUIsYUFBWUMsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTb0UsR0FBRSxHQUFFekYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxNQUFJQyxLQUFFOEUsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsQ0FBQztBQUFFLFNBQU8sRUFBRSxVQUFRLEtBQUcsR0FBRyxHQUFFcEIsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxFQUFDLElBQUVBO0FBQUM7QUFBQyxTQUFTa0UsR0FBRSxHQUFFdkYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUU7QUFBQyxNQUFHLEVBQUMsT0FBTUUsR0FBQyxJQUFFO0FBQUUsT0FBSUEsS0FBRSxhQUFXLFNBQVE7QUFBQyxNQUFFLGFBQVcsS0FBR3hCLEdBQUUsR0FBRSxFQUFFLElBQUcsQ0FBQyxLQUFHd0IsT0FBSSxjQUFZRixHQUFFLFNBQU8scUJBQW1CQSxHQUFFLFNBQU8sdUJBQXFCLEVBQUUsR0FBRUEsRUFBQyxHQUFFd0IsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsUUFBSSxJQUFFbUcsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFdBQU8sRUFBRSxhQUFXLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLElBQUUsRUFBQyxNQUFLLHFCQUFvQixNQUFLQyxJQUFFLE9BQU0sRUFBQyxJQUFFLEVBQUMsTUFBSyx3QkFBdUIsTUFBS0EsSUFBRSxVQUFTK0IsR0FBRTdCLEtBQUUsR0FBRyxHQUFFLE9BQU0sRUFBQyxDQUFDO0FBQUEsRUFBQztBQUFDLFVBQU9BLEtBQUUsYUFBVyxZQUFVRixLQUFFLEdBQUcsR0FBRXJCLElBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRSxHQUFFRyxJQUFFRixFQUFDLElBQUdnQyxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRSxNQUFJcUIsS0FBRSxHQUFHLEdBQUVyQixJQUFFcUIsSUFBRWxCLEtBQUVpQixJQUFFLENBQUMsSUFBR0M7QUFBQztBQUFDLFNBQVM2RixJQUFHLEdBQUVsSCxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRTtBQUFDLE1BQUcsRUFBQyxPQUFNRSxHQUFDLElBQUU7QUFBRSxFQUFBc0IsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBSSxJQUFFbUcsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU9xQixLQUFFd0MsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxJQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBS0MsSUFBRSxPQUFNLEVBQUMsSUFBRSxFQUFDLE1BQUssd0JBQXVCLE1BQUtBLElBQUUsVUFBUytCLEdBQUU3QixLQUFFLEdBQUcsR0FBRSxPQUFNLEVBQUMsQ0FBQyxHQUFFLEVBQUUsYUFBVyxHQUFFRjtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxNQUFJLElBQUUrRSxHQUFFLElBQUduRyxLQUFFLGFBQVcsV0FBVSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLEVBQUF3RCxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sRUFBRSxHQUFFLEVBQUUsYUFBVztBQUFFLE1BQUlxQixLQUFFOEUsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU8sRUFBRSxhQUFXLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyx5QkFBd0IsTUFBSyxHQUFFLFlBQVcsR0FBRSxXQUFVQyxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFckIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUU7QUFBQyxNQUFJLElBQUUsR0FBR3ZCLEtBQUUsYUFBVyxLQUFHLFNBQVEyQixJQUFFVTtBQUFFLE9BQUksRUFBRSxhQUFXLEdBQUUsRUFBRSxRQUFNLFlBQVVWLEtBQUUsRUFBRSxPQUFNVSxLQUFFVixLQUFFLE9BQU1BLEtBQUUsVUFBUU4sS0FBRSxhQUFXQSxLQUFFLFVBQVFNLEtBQUUsY0FBWTVCLEdBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRXNDLE9BQUlWLE9BQUksWUFBVSxPQUFLLE1BQUlBLE9BQUksT0FBSztBQUFLLElBQUFrQixHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRXVCLEtBQUVzQyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBS08sS0FBRSxVQUFRQSxLQUFFLFlBQVUsc0JBQW9CLG9CQUFtQixNQUFLSixJQUFFLE9BQU0sR0FBRyxHQUFFdkIsSUFBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxRQUFPcUMsSUFBRVYsSUFBRThFLEdBQUUsR0FBRXpHLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sQ0FBQyxHQUFFLFVBQVNvRCxHQUFFekIsS0FBRSxHQUFHLEVBQUMsQ0FBQztBQUFFLFNBQU8sRUFBRSxVQUFRLGNBQVk1QixHQUFFLEdBQUUsRUFBRSxHQUFFd0I7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFdkIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxPQUFHckIsR0FBRSxHQUFFLENBQUM7QUFBRSxNQUFJc0IsS0FBRSxFQUFFO0FBQU0sRUFBQXdCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUl1QixLQUFFa0YsR0FBRSxHQUFFekcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU8sRUFBRSxVQUFRLFdBQVNELEdBQUUsR0FBRSxFQUFFLEdBQUVDLEtBQUUsUUFBTXFCLE9BQUksYUFBV0UsR0FBRSxTQUFPLGVBQWF4QixHQUFFLEdBQUUsR0FBRyxJQUFFLEdBQUd3QixFQUFDLEtBQUd4QixHQUFFLEdBQUUsR0FBRyxJQUFHLEVBQUUsYUFBVyxHQUFFOEQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUssbUJBQWtCLFVBQVNnQyxHQUFFL0IsS0FBRSxHQUFHLEdBQUUsVUFBU0UsSUFBRSxRQUFPLEtBQUUsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUV2QixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFO0FBQUMsTUFBRyxFQUFDLE9BQU1JLEdBQUMsSUFBRSxHQUFFVSxLQUFFOEMsR0FBRSxHQUFFbkYsSUFBRW9CLEVBQUMsR0FBRSxFQUFDLE9BQU00QixHQUFDLElBQUU7QUFBRSxNQUFHLEVBQUVBLEtBQUUsSUFBRztBQUFDLFFBQUcsRUFBRSxVQUFRO0FBQU0sYUFBT21FLElBQUcsR0FBRW5ILElBQUUsR0FBRSxHQUFFcUIsSUFBRUUsSUFBRSxDQUFDO0FBQUUsU0FBSSxFQUFFLFFBQU0sWUFBVTtBQUFPLGFBQU8sS0FBR3hCLEdBQUUsR0FBRSxDQUFDLEdBQUUyRixJQUFHLEdBQUUxRixJQUFFRyxLQUFFa0IsSUFBRUUsSUFBRSxDQUFDO0FBQUEsRUFBQztBQUFDLFNBQU0sQ0FBQyxLQUFHLEVBQUUsVUFBUSxXQUFTb0UsSUFBRyxHQUFFM0YsSUFBRXFDLElBQUVsQyxLQUFFLEdBQUUsR0FBRTZDLElBQUUzQixJQUFFRSxJQUFFLENBQUMsSUFBRSxFQUFFLFVBQVEsTUFBSStDLElBQUcsR0FBRXRFLElBQUUyQixJQUFFLENBQUMsR0FBRSxLQUFHNUIsR0FBRSxHQUFFLEVBQUUsR0FBRTZGLElBQUcsR0FBRTVGLElBQUUsRUFBRSxZQUFXcUMsSUFBRSxHQUFFbEMsS0FBRSxHQUFFa0IsSUFBRUUsSUFBRSxDQUFDLEtBQUdjO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXJDLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsTUFBRyxNQUFJLEVBQUUsZ0JBQWMsTUFBS3BCLEtBQUUsU0FBUTtBQUFDLElBQUE2QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRUEsS0FBRSxXQUFTRCxHQUFFLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxVQUFRLE1BQUlBLEdBQUUsR0FBRSxHQUFHO0FBQUUsUUFBSXNCLEtBQUUsTUFBS0UsS0FBRTtBQUFHLFdBQU8sRUFBRSxRQUFNLE1BQUlBLEtBQUU4QixHQUFFLEdBQUVyRCxLQUFFLE9BQU0sT0FBTyxJQUFHLEVBQUUsUUFBTSxTQUFPdUIsUUFBS0YsS0FBRThFLEdBQUUsR0FBRW5HLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sS0FBSSxFQUFFLGFBQVcsR0FBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLG1CQUFrQixVQUFTQyxJQUFFLFVBQVNFLEdBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPdkIsS0FBRSxRQUFNRCxHQUFFLEdBQUUsSUFBRyxPQUFPLEdBQUVxSCxJQUFHLEdBQUVwSCxJQUFFRyxLQUFFaUIsSUFBRSxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsTUFBRyxNQUFJLEVBQUUsZ0JBQWMsTUFBS3BCLEtBQUUsV0FBU0EsS0FBRSxRQUFNQSxLQUFFLE1BQUs7QUFBQyxTQUFHRCxHQUFFLEdBQUUsQ0FBQyxHQUFFQyxLQUFFLFdBQVMsR0FBRyxFQUFFLE9BQU0sRUFBRSxNQUFLLEVBQUUsT0FBTSxFQUFFLEdBQUU2QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxRQUFJcUIsS0FBRW9GLEdBQUUsR0FBRXpHLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxXQUFPLEVBQUUsVUFBUSxXQUFTRCxHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsYUFBVyxHQUFFOEQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssbUJBQWtCLFVBQVNDLEdBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPckIsS0FBRSxRQUFNRCxHQUFFLEdBQUUsRUFBRSxHQUFFcUgsSUFBRyxHQUFFcEgsSUFBRUcsS0FBRWlCLElBQUUsQ0FBQztBQUFDO0FBQUMsU0FBU2lHLElBQUcsR0FBRXJILElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLE1BQUcsRUFBQyxVQUFTLEdBQUUsU0FBUUMsSUFBRSxRQUFPRSxHQUFDLElBQUU7QUFBRSxFQUFBaUMsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLE9BQU87QUFBRSxNQUFJLElBQUUsQ0FBQyxHQUFFMkIsS0FBRTNCO0FBQUUsTUFBRyxFQUFFLFVBQVEsWUFBVztBQUFDLFdBQUssRUFBRSxVQUFRLGFBQVc7QUFBQyxVQUFHLEVBQUMsT0FBTXFDLElBQUUsVUFBU1csSUFBRSxZQUFXQyxJQUFFLE9BQU02QyxHQUFDLElBQUUsR0FBRU0sS0FBRTdCLEdBQUUsR0FBRXZFLEVBQUM7QUFBRSxNQUFBc0QsSUFBRyxHQUFFakIsSUFBRVcsSUFBRUMsRUFBQyxNQUFJakQsTUFBRyxNQUFLLEVBQUUsUUFBTSxPQUFLLEdBQUcsRUFBRSxPQUFNLEVBQUUsTUFBSyxFQUFFLFVBQVMsRUFBRSxHQUFFLEVBQUUsUUFBTSxNQUFJLEdBQUcsRUFBRSxPQUFNLEVBQUUsTUFBSyxFQUFFLFVBQVMsQ0FBQyxJQUFHLEVBQUUsS0FBS3dFLElBQUcsR0FBRXhFLElBQUVvRyxJQUFFTixJQUFFOUMsSUFBRSxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUM7QUFBQSxJQUFDO0FBQUMsSUFBQWhELEtBQUUsU0FBT0csU0FBS0EsTUFBRSxlQUFhLGFBQVdKLEdBQUUsR0FBRSxHQUFHLElBQUdJLE1BQUUsV0FBUyxTQUFPSixHQUFFLEdBQUUsRUFBRSxJQUFHLEVBQUUsUUFBTSxPQUFLQSxHQUFFLEdBQUUsR0FBRyxHQUFFLEVBQUUsUUFBTSxPQUFLQSxHQUFFLEdBQUUsR0FBRyxJQUFHQyxLQUFFLE1BQUksS0FBR29CLE9BQUksVUFBUSxFQUFFTyxLQUFFLFNBQU8sRUFBRTNCLEtBQUUsU0FBT0UsSUFBR2tCLEVBQUM7QUFBQSxFQUFDO0FBQUMsT0FBSSxFQUFFLFNBQU8sRUFBRSxRQUFNLE1BQUksTUFBSSxNQUFJLEtBQUksRUFBRSxnQkFBYyxFQUFFLGVBQWEsT0FBSyxLQUFJLEVBQUUsVUFBUTtBQUFZLE1BQUUsS0FBS3FELElBQUcsR0FBRXpFLElBQUUsR0FBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0FBQUUsU0FBT3dELEdBQUUsR0FBRSxJQUFFLEtBQUd4RCxLQUFFLFFBQU1BLElBQUUsVUFBVSxHQUFFLEVBQUUsU0FBTyxNQUFLLEVBQUUsVUFBUSxjQUFZRCxHQUFFLEdBQUUsRUFBRSxHQUFFOEQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFcUIsSUFBRUUsSUFBRSxFQUFDLE1BQUssa0JBQWlCLE1BQUssRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXZCLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsVUFBTzBDLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLE9BQU07QUFBQSxJQUFDLEtBQUs7QUFBUyxNQUFBRCxHQUFFLEdBQUUsR0FBRztBQUFBLElBQUUsS0FBSyxVQUFTO0FBQUMsTUFBQUMsS0FBRSxVQUFRRCxHQUFFLEdBQUUsRUFBRSxHQUFFQyxLQUFFLFNBQU9ELEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxhQUFXO0FBQUU7QUFBQSxJQUFLO0FBQUEsSUFBQyxLQUFLO0FBQUEsSUFBUyxLQUFLLFVBQVM7QUFBQyxNQUFBQyxLQUFFLFVBQVFELEdBQUUsR0FBRSxFQUFFLEdBQUVDLEtBQUUsU0FBT0QsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLGFBQVc7QUFBRTtBQUFBLElBQUs7QUFBQSxJQUFDO0FBQVEsTUFBQUEsR0FBRSxHQUFFLElBQUcsT0FBTztBQUFBLEVBQUM7QUFBQyxTQUFPOEQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLFFBQU8sQ0FBQztBQUFDO0FBQUMsU0FBU3NHLEdBQUUsR0FBRXpHLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFO0FBQUMsTUFBSUUsS0FBRTZELEdBQUUsR0FBRXBGLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxFQUFDO0FBQUUsU0FBT2lFLEdBQUUsR0FBRXRGLElBQUV1QixJQUFFLEdBQUUsR0FBRUgsSUFBRSxHQUFFQyxFQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLElBQUUsYUFBVyxLQUFHckIsR0FBRSxHQUFFLEVBQUU7QUFBRSxNQUFHLEVBQUMsT0FBTSxFQUFDLElBQUU7QUFBRSxTQUFPOEMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFLEVBQUUsYUFBVyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUssb0JBQW1CLFVBQVMsR0FBRSxVQUFTZ0MsR0FBRSxJQUFFLEdBQUcsR0FBRSxRQUFPLE1BQUUsQ0FBQztBQUFDO0FBQUMsU0FBU2tDLEdBQUUsR0FBRXRGLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFO0FBQUMsT0FBSSxFQUFFLFFBQU0sY0FBWSxZQUFVLEVBQUUsRUFBRSxRQUFNO0FBQUcsUUFBRSxHQUFHLEdBQUVyQixJQUFFLEdBQUVvQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxZQUFXLEVBQUUsUUFBTSxjQUFZLFVBQVM7QUFBQyxZQUFPckIsTUFBR0EsS0FBRSxhQUFXLFdBQVUsRUFBRSxPQUFNO0FBQUEsTUFBQyxLQUFLLFVBQVM7QUFBQyxRQUFBNkMsR0FBRSxJQUFHN0MsS0FBRSxhQUFXLFFBQU0sSUFBSSxHQUFFLEVBQUUsYUFBVztBQUFFLFlBQUl1QixLQUFFK0YsSUFBRyxHQUFFdEgsRUFBQztBQUFFLFlBQUU2RCxHQUFFLEdBQUU3RCxJQUFFb0IsSUFBRSxHQUFFQyxJQUFFLEVBQUMsTUFBSyxvQkFBbUIsUUFBTyxHQUFFLFVBQVMsT0FBRyxVQUFTRSxHQUFDLENBQUM7QUFBRTtBQUFBLE1BQUs7QUFBQSxNQUFDLEtBQUssVUFBUztBQUFDLFlBQUlBLEtBQUU7QUFBRyxTQUFDLEVBQUUsUUFBTSxVQUFRLFNBQU9BLEtBQUUsTUFBRyxFQUFFLFNBQU8sRUFBRSxRQUFNLFFBQU0sT0FBTXNCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLFlBQUcsRUFBQyxVQUFTLEdBQUUsU0FBUTJCLElBQUUsUUFBT1UsR0FBQyxJQUFFLEdBQUVXLEtBQUV5QyxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxHQUFFMkIsSUFBRVUsRUFBQztBQUFFLFFBQUFtQixHQUFFLEdBQUV4RCxJQUFFLEVBQUUsR0FBRSxFQUFFLGFBQVcsR0FBRSxJQUFFNkQsR0FBRSxHQUFFN0QsSUFBRW9CLElBQUUsR0FBRUMsSUFBRSxFQUFDLE1BQUssb0JBQW1CLFFBQU8sR0FBRSxVQUFTLE1BQUcsVUFBUzJCLEdBQUMsQ0FBQyxHQUFFekIsT0FBSSxFQUFFLFNBQU87QUFBTTtBQUFBLE1BQUs7QUFBQSxNQUFDLEtBQUssVUFBUztBQUFDLGFBQUksRUFBRSxRQUFNLFVBQVE7QUFBSyxpQkFBTyxFQUFFLFNBQU8sRUFBRSxRQUFNLFFBQU0sTUFBSztBQUFFLFlBQUlBLEtBQUU7QUFBRyxTQUFDLEVBQUUsUUFBTSxVQUFRLFNBQU9BLEtBQUUsTUFBRyxFQUFFLFNBQU8sRUFBRSxRQUFNLFFBQU07QUFBTSxZQUFJLElBQUVnRyxJQUFHLEdBQUV2SCxJQUFFLENBQUM7QUFBRSxVQUFFLGFBQVcsR0FBRSxJQUFFNkQsR0FBRSxHQUFFN0QsSUFBRW9CLElBQUUsR0FBRUMsSUFBRSxFQUFDLE1BQUssa0JBQWlCLFFBQU8sR0FBRSxXQUFVLEVBQUMsQ0FBQyxHQUFFRSxPQUFJLEVBQUUsU0FBTztBQUFNO0FBQUEsTUFBSztBQUFBLE1BQUMsS0FBSyxVQUFTO0FBQUMsUUFBQXNCLEdBQUUsSUFBRzdDLEtBQUUsYUFBVyxRQUFNLElBQUksR0FBRSxFQUFFLFNBQU8sTUFBSyxFQUFFLGFBQVcsR0FBRSxJQUFFLEdBQUcsR0FBRUEsSUFBRSxHQUFFb0IsSUFBRSxHQUFFQyxFQUFDO0FBQUU7QUFBQSxNQUFLO0FBQUEsTUFBQztBQUFRLFNBQUMsRUFBRSxRQUFNLFVBQVEsUUFBTXRCLEdBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxhQUFXLEdBQUUsSUFBRThELEdBQUUsR0FBRTdELElBQUVvQixJQUFFLEdBQUVDLElBQUUsRUFBQyxNQUFLLDRCQUEyQixLQUFJLEdBQUUsT0FBTSxFQUFFLFVBQVEsV0FBU21HLElBQUcsR0FBRXhILEtBQUUsS0FBSyxJQUFFeUgsSUFBRyxHQUFFekgsSUFBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxFQUFDLENBQUM7QUFBQSxJQUFDO0FBQUMsUUFBRXNGLEdBQUUsR0FBRXRGLElBQUUsR0FBRSxHQUFFLEdBQUVvQixJQUFFLEdBQUVDLEVBQUM7QUFBQSxFQUFDO0FBQUMsU0FBT2xCLFFBQUksTUFBSSxFQUFFLFFBQU0sVUFBUSxTQUFPLEVBQUUsU0FBTyxFQUFFLFFBQU0sUUFBTSxNQUFLLElBQUUwRCxHQUFFLEdBQUU3RCxJQUFFb0IsSUFBRSxHQUFFQyxJQUFFLEVBQUMsTUFBSyxtQkFBa0IsWUFBVyxFQUFDLENBQUMsSUFBRztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxNQUFJLElBQUUsT0FBR0M7QUFBRSxPQUFJLEVBQUUsVUFBUSxZQUFVLEVBQUUsVUFBUSxjQUFZLEVBQUUsUUFBTSxVQUFRLFNBQU8sSUFBRSxNQUFHLEVBQUUsU0FBTyxFQUFFLFFBQU0sUUFBTSxPQUFNLEVBQUUsVUFBUSxVQUFTO0FBQUMsSUFBQXdCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLFFBQUcsRUFBQyxVQUFTdUIsSUFBRSxTQUFRLEdBQUUsUUFBT0ksR0FBQyxJQUFFLEdBQUVVLEtBQUVvRCxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRXVCLElBQUUsR0FBRUksRUFBQztBQUFFLElBQUE2QixHQUFFLEdBQUV4RCxJQUFFLEVBQUUsR0FBRSxFQUFFLGFBQVcsR0FBRXFCLEtBQUV3QyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxvQkFBbUIsUUFBTyxHQUFFLFVBQVMsTUFBRyxVQUFTLE1BQUcsVUFBU2lCLEdBQUMsQ0FBQztBQUFBLEVBQUMsV0FBUyxFQUFFLFVBQVEsVUFBUztBQUFDLFFBQUlkLEtBQUVnRyxJQUFHLEdBQUV2SCxJQUFFLENBQUM7QUFBRSxNQUFFLGFBQVcsR0FBRXFCLEtBQUV3QyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxrQkFBaUIsUUFBTyxHQUFFLFdBQVVHLElBQUUsVUFBUyxLQUFFLENBQUM7QUFBQSxFQUFDLE9BQUs7QUFBQyxNQUFFLFFBQU0sVUFBUXhCLEdBQUUsR0FBRSxHQUFHO0FBQUUsUUFBSXdCLEtBQUU0RCxHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBRSxNQUFFLGFBQVcsR0FBRXFCLEtBQUV3QyxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxvQkFBbUIsUUFBTyxHQUFFLFVBQVMsT0FBRyxVQUFTLE1BQUcsVUFBU0csR0FBQyxDQUFDO0FBQUEsRUFBQztBQUFDLFNBQU8sTUFBSSxFQUFFLFNBQU8sT0FBTUY7QUFBQztBQUFDLFNBQVNpRyxJQUFHLEdBQUV0SCxJQUFFO0FBQUMsU0FBTSxFQUFFLEVBQUUsUUFBTSxXQUFTLEVBQUUsVUFBUSxPQUFLRCxHQUFFLEdBQUUsR0FBRyxHQUFFQyxLQUFFLEtBQUcsRUFBRSxVQUFRLE1BQUkwSCxJQUFHLEdBQUUxSCxJQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLElBQUVtRixHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE9BQUdyQixHQUFFLEdBQUUsRUFBRSxHQUFFLEtBQUdBLEdBQUUsR0FBRSxDQUFDO0FBQUUsTUFBRyxFQUFDLE9BQU1zQixHQUFDLElBQUU7QUFBRSxFQUFBd0IsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBSXVCLEtBQUVrRixHQUFFLEdBQUV6RyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBTyxFQUFFLGFBQVcsS0FBR0QsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLGFBQVcsR0FBRThELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLG9CQUFtQixVQUFTRyxJQUFFLFVBQVM2QixHQUFFL0IsS0FBRSxHQUFHLEdBQUUsUUFBTyxLQUFFLENBQUM7QUFBQztBQUFDLFNBQVMrRCxHQUFFLEdBQUVwRixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFSSxJQUFFO0FBQUMsT0FBSSxFQUFFLFFBQU0sWUFBVSxRQUFPO0FBQUMsWUFBTyxFQUFFLE9BQU07QUFBQSxNQUFDLEtBQUs7QUFBTyxlQUFPLEdBQUcsR0FBRTNCLElBQUUsR0FBRSxHQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUEsTUFBRSxLQUFLO0FBQU8sZUFBTyxHQUFHLEdBQUUzQixJQUFFLEdBQUVHLEtBQUVvQixJQUFFLEdBQUVJLEVBQUM7QUFBQSxNQUFFLEtBQUs7QUFBTyxlQUFPLEdBQUcsR0FBRTNCLElBQUUsR0FBRXFCLElBQUVsQixLQUFFaUIsSUFBRSxHQUFFRyxJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFDO0FBQUMsUUFBRyxFQUFDLE9BQU1VLElBQUUsWUFBV1csR0FBQyxJQUFFLEdBQUVDLEtBQUVrQyxHQUFFLEdBQUVuRixLQUFFLE9BQU1vQixFQUFDO0FBQUUsV0FBTyxFQUFFLFVBQVEsTUFBSUMsTUFBR3RCLEdBQUUsR0FBRSxDQUFDLEdBQUV1RSxJQUFHLEdBQUV0RSxJQUFFcUMsSUFBRSxDQUFDLEdBQUV1RCxJQUFHLEdBQUU1RixJQUFFZ0QsSUFBRUMsSUFBRSxHQUFFOUMsS0FBRSxHQUFFb0IsSUFBRSxHQUFFSSxFQUFDLE1BQUkzQixLQUFFLFNBQU9xQyxPQUFJLGFBQVd0QyxHQUFFLEdBQUUsR0FBRyxHQUFFc0MsT0FBSSxXQUFTckMsS0FBRSxRQUFNRCxHQUFFLEdBQUUsR0FBRyxHQUFFLElBQUUsTUFBSUEsR0FBRSxHQUFFLEVBQUUsSUFBRyxFQUFFLGFBQVdDLEtBQUUsU0FBT3FDLEtBQUUsZUFBYSxZQUFVLElBQUUsR0FBRVk7QUFBQSxFQUFFO0FBQUMsT0FBSSxFQUFFLFFBQU0sZUFBYTtBQUFVLFdBQU9zQixHQUFFLEdBQUV2RSxFQUFDO0FBQUUsVUFBTyxFQUFFLE9BQU07QUFBQSxJQUFDLEtBQUs7QUFBQSxJQUFTLEtBQUs7QUFBUyxhQUFPLEdBQUcsR0FBRUEsSUFBRSxHQUFFcUIsSUFBRUUsSUFBRSxHQUFFSSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQUEsSUFBUyxLQUFLO0FBQVMsYUFBTyxHQUFHLEdBQUUzQixJQUFFcUIsSUFBRUUsSUFBRSxHQUFFSSxJQUFFLENBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTSxhQUFPd0YsSUFBRyxHQUFFbkgsSUFBRSxHQUFFLEdBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBUSxhQUFPLEdBQUcsR0FBRTNCLElBQUVHLE1BQUUsSUFBRSxHQUFFLEdBQUVvQixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBUyxhQUFPLEdBQUcsR0FBRTNCLElBQUVHLE1BQUUsSUFBRSxHQUFFLEdBQUVvQixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBUyxhQUFPLEdBQUcsR0FBRTNCLElBQUVHLEtBQUUsR0FBRSxHQUFFb0IsSUFBRSxHQUFFSSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQUEsSUFBTSxLQUFLO0FBQUEsSUFBTSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUUzQixJQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUUzQixFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQU0sYUFBTyxHQUFHLEdBQUVBLElBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBQSxJQUFJLEtBQUs7QUFBTSxhQUFPLEdBQUcsR0FBRTNCLElBQUUsR0FBRXVCLElBQUUsR0FBRUksRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFM0IsSUFBRXVCLElBQUUsR0FBRUksRUFBQztBQUFBLElBQUUsS0FBSztBQUFTLGFBQU84RixJQUFHLEdBQUV6SCxJQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQVMsYUFBTzZGLElBQUcsR0FBRXhILEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBTSxhQUFPLEdBQUcsR0FBRUEsSUFBRSxHQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUEsSUFBRSxLQUFLO0FBQVUsYUFBT2dHLElBQUcsR0FBRTNILElBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBSSxhQUFPK0YsSUFBRyxHQUFFMUgsSUFBRXVCLElBQUUsR0FBRUksRUFBQztBQUFBLElBQUUsS0FBSztBQUFNLGFBQU8sR0FBRyxHQUFFM0IsSUFBRSxHQUFFLEdBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFLEtBQUs7QUFBUSxVQUFHM0IsS0FBRTtBQUFHLGVBQU80SCxJQUFHLEdBQUU1SCxJQUFFLEdBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBQSxJQUFFO0FBQVEsVUFBRzBDLElBQUdyRSxJQUFFLEVBQUUsS0FBSztBQUFFLGVBQU9vSCxJQUFHLEdBQUVwSCxJQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUUsTUFBQTVCLEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDO0FBQUEsRUFBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwRCxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUlDLEtBQUU4RCxHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBRSxTQUFPLEVBQUUsVUFBUSxXQUFTZ0gsSUFBRyxHQUFFaEgsSUFBRXFCLElBQUVsQixLQUFFaUIsSUFBRSxDQUFDLEtBQUcsS0FBR3JCLEdBQUUsR0FBRSxHQUFHLEdBQUVzQixLQUFFNEYsSUFBRyxHQUFFakgsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxDQUFDLEdBQUUsRUFBRSxhQUFXLEdBQUVrRSxHQUFFLEdBQUV0RixJQUFFcUIsSUFBRSxHQUFFLEdBQUVsQixLQUFFaUIsSUFBRSxDQUFDO0FBQUU7QUFBQyxTQUFTNEYsSUFBRyxHQUFFaEgsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsU0FBT3BCLEtBQUUsUUFBTUQsR0FBRSxHQUFFLEdBQUcsR0FBRThDLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLFVBQVEsVUFBUSxFQUFFLGVBQWEsVUFBUUQsR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUMsR0FBRSxFQUFFLGFBQVcsR0FBRVMsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUssZ0JBQWUsTUFBSyxHQUFFLFVBQVMrRCxHQUFFLEdBQUVuRixJQUFFLENBQUMsRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTaUgsSUFBRyxHQUFFakgsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsRUFBQW9DLEdBQUUsR0FBRXhELEtBQUUsT0FBTSxRQUFRLEdBQUUsRUFBRSxVQUFRLE1BQUlELEdBQUUsR0FBRSxHQUFHO0FBQUUsTUFBSSxJQUFFb0csR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU93RCxHQUFFLEdBQUV4RCxJQUFFLEVBQUUsR0FBRTZELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLG9CQUFtQixRQUFPLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3VHLElBQUcsR0FBRTNILElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBRyxFQUFDLFVBQVNpQixJQUFFLFlBQVcsRUFBQyxJQUFFO0FBQUUsU0FBT3lCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLGFBQVcsR0FBRTZELEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFSCxLQUFFLE1BQUksRUFBQyxNQUFLLFdBQVUsT0FBTSxHQUFFLFFBQU9vQixHQUFFLE1BQU0sR0FBRSxFQUFFLEdBQUUsS0FBSUEsR0FBQyxJQUFFLEVBQUMsTUFBSyxXQUFVLE9BQU0sR0FBRSxRQUFPQSxHQUFFLE1BQU0sR0FBRSxFQUFFLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3FHLElBQUcsR0FBRXpILElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsSUFBRSxhQUFXO0FBQUUsTUFBRyxFQUFDLFlBQVdpQixJQUFFLFVBQVMsR0FBRSxVQUFTQyxJQUFFLFNBQVFFLElBQUUsUUFBTyxFQUFDLElBQUU7QUFBRSxFQUFBaUMsR0FBRSxHQUFFeEQsSUFBRSxRQUFRO0FBQUUsTUFBSTJCLEtBQUUsQ0FBQ2tHLElBQUcsR0FBRTdILElBQUVvQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRSxJQUFFLENBQUM7QUFBRSxTQUFPc0MsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLG1CQUFrQixhQUFZLENBQUMsR0FBRSxRQUFPd0IsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTNkYsSUFBRyxHQUFFeEgsSUFBRTtBQUFDLEVBQUFBLE1BQUdBLEtBQUUsYUFBVztBQUFVLE1BQUcsRUFBQyxZQUFXLEdBQUUsVUFBUyxHQUFFLFVBQVNHLEtBQUUsU0FBUWlCLElBQUUsUUFBTyxFQUFDLElBQUU7QUFBRSxFQUFBb0MsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLFFBQVE7QUFBRSxNQUFJcUIsS0FBRSxDQUFDd0csSUFBRyxHQUFFN0gsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUUsS0FBRSxDQUFDLEdBQUVHLEtBQUUsQ0FBQ2tFLEdBQUUsR0FBRXpGLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUM7QUFBRSxPQUFJLEVBQUUsVUFBUSxjQUFZRCxHQUFFLEdBQUUsRUFBRSxJQUFHLEVBQUUsUUFBTW1DLElBQUcsR0FBRWxDLEVBQUMsT0FBSyxZQUFVO0FBQUMsUUFBRyxFQUFDLFlBQVcsR0FBRSxVQUFTMkIsSUFBRSxVQUFTVSxJQUFFLFNBQVFXLElBQUUsUUFBT0MsR0FBQyxJQUFFO0FBQUUsSUFBQU8sR0FBRSxHQUFFeEQsS0FBRSxPQUFNLFFBQVEsR0FBRXFCLEdBQUUsS0FBS3dHLElBQUcsR0FBRTdILElBQUUsR0FBRTJCLElBQUVVLElBQUVXLElBQUVDLElBQUUsS0FBRSxDQUFDLEdBQUUxQixHQUFFLEtBQUtrRSxHQUFFLEdBQUV6RixJQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUUsRUFBRSxVQUFRLGNBQVlELEdBQUUsR0FBRSxFQUFFO0FBQUEsRUFBQztBQUFDO0FBQUMsUUFBRyxFQUFDLFlBQVcsR0FBRSxVQUFTNEIsSUFBRSxVQUFTVSxJQUFFLFNBQVFXLElBQUUsUUFBT0MsR0FBQyxJQUFFO0FBQUUsSUFBQU8sR0FBRSxHQUFFeEQsSUFBRSxRQUFRLEdBQUVxQixHQUFFLEtBQUt3RyxJQUFHLEdBQUU3SCxJQUFFLEdBQUUyQixJQUFFVSxJQUFFVyxJQUFFQyxJQUFFLElBQUUsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPWSxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyxtQkFBa0IsYUFBWUcsSUFBRSxRQUFPRixHQUFDLENBQUM7QUFBQztBQUFDLFNBQVN3RyxJQUFHLEdBQUU3SCxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRTtBQUFDLE1BQUlFLEtBQUVzQyxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyxtQkFBa0IsT0FBTSxFQUFDLFFBQU8sR0FBRSxLQUFJLEVBQUMsR0FBRSxNQUFLQyxHQUFDLENBQUMsR0FBRSxJQUFFQSxLQUFFLElBQUU7QUFBRSxTQUFPckIsS0FBRSxNQUFJdUIsR0FBRSxTQUFPLEdBQUVBLEdBQUUsTUFBTSxDQUFDLEtBQUcsR0FBRUEsR0FBRSxPQUFLLEdBQUVBLEdBQUUsTUFBTSxDQUFDLEtBQUcsSUFBR3ZCLEtBQUUsTUFBSXVCLEdBQUUsSUFBSSxNQUFNLFVBQVEsR0FBRUEsR0FBRSxJQUFJLElBQUksVUFBUSxJQUFHQTtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUV2QixJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLEVBQUFILE1BQUdBLEtBQUUsYUFBVyxXQUFVd0QsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEVBQUU7QUFBRSxNQUFJb0IsS0FBRStFLEdBQUUsR0FBRW5HLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPLEVBQUUsYUFBVyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLGlCQUFnQixVQUFTaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTbUcsSUFBRyxHQUFFdkgsSUFBRSxHQUFFO0FBQUMsRUFBQTZDLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUksSUFBRSxDQUFDO0FBQUUsTUFBRyxFQUFFLFVBQVE7QUFBRyxXQUFPNkMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFO0FBQUUsU0FBSyxFQUFFLFVBQVEsT0FBSyxFQUFFLFVBQVEsS0FBRyxFQUFFLEtBQUssR0FBRyxHQUFFQSxJQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUMsSUFBRSxFQUFFLEtBQUttRyxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUMsR0FBRSxFQUFFLEVBQUUsVUFBUSxPQUFLNkMsR0FBRSxHQUFFN0MsS0FBRSxLQUFLLEdBQUUsRUFBRSxVQUFRO0FBQU87QUFBQyxTQUFPd0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFLEdBQUU7QUFBQztBQUFDLFNBQVNtRixHQUFFLEdBQUVuRixJQUFFLEdBQUU7QUFBQyxNQUFHLEVBQUMsWUFBVyxHQUFFLFVBQVNHLEtBQUUsU0FBUWlCLElBQUUsUUFBTyxFQUFDLElBQUU7QUFBRSxTQUFPeUIsR0FBRSxHQUFFN0MsRUFBQyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRXBCLEtBQUUsWUFBVSxFQUFDLE1BQUssY0FBYSxNQUFLLEdBQUUsU0FBUSxNQUFJLEVBQUMsSUFBRSxFQUFDLE1BQUssY0FBYSxNQUFLLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3VFLEdBQUUsR0FBRXZFLElBQUU7QUFBQyxNQUFHLEVBQUMsWUFBVyxHQUFFLFVBQVMsR0FBRSxVQUFTRyxLQUFFLFNBQVFpQixJQUFFLFFBQU8sRUFBQyxJQUFFO0FBQUUsU0FBTyxFQUFFLFVBQVEsWUFBVXVHLElBQUcsR0FBRTNILElBQUVHLEtBQUVpQixJQUFFLENBQUMsS0FBR3lCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLGFBQVcsR0FBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUVwQixLQUFFLE1BQUksRUFBQyxNQUFLLFdBQVUsT0FBTSxHQUFFLEtBQUksRUFBQyxJQUFFLEVBQUMsTUFBSyxXQUFVLE9BQU0sRUFBQyxDQUFDO0FBQUU7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxNQUFJaUIsS0FBRWdDLEdBQUUsRUFBRSxRQUFNLEdBQUcsR0FBRSxJQUFFLEVBQUUsVUFBUSxRQUFNLE9BQUtoQyxPQUFJO0FBQU8sU0FBT3lCLEdBQUUsR0FBRTdDLEVBQUMsR0FBRSxFQUFFLGFBQVcsR0FBRTZELEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFSCxLQUFFLE1BQUksRUFBQyxNQUFLLFdBQVUsT0FBTSxHQUFFLEtBQUlvQixHQUFDLElBQUUsRUFBQyxNQUFLLFdBQVUsT0FBTSxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFcEIsSUFBRTtBQUFDLE1BQUcsRUFBQyxVQUFTLEdBQUUsU0FBUSxHQUFFLFFBQU9HLElBQUMsSUFBRTtBQUFFLFNBQU8wQyxHQUFFLEdBQUU3QyxFQUFDLEdBQUUsRUFBRSxhQUFXLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUssaUJBQWdCLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFSCxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFO0FBQUMsRUFBQXNCLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUkyQixLQUFFeEIsTUFBRW9ELElBQUcsR0FBRXZELElBQUUsT0FBTyxJQUFFLEdBQUVxQyxLQUFFLE1BQUtXLElBQUVDLEtBQUUsSUFBRWdCLElBQUcsSUFBRTtBQUFPLE1BQUcsRUFBRSxVQUFRO0FBQVMsSUFBQTdDLEtBQUUsS0FBR3JCLEdBQUUsR0FBRSxJQUFHLFVBQVU7QUFBQSxPQUFNO0FBQUMsUUFBSXNHLEtBQUUsSUFBRSxNQUFJLEVBQUVyRyxLQUFFLFNBQU8sRUFBRUEsS0FBRSxTQUFPLElBQUU7QUFBRyxJQUFBMEQsSUFBRyxHQUFFMUQsTUFBR0EsS0FBRSxTQUFPLElBQUcsRUFBRSxLQUFLLEdBQUUsTUFBSXFHLEtBQUUsSUFBRWpDLElBQUcsR0FBRXBFLElBQUUsR0FBRSxFQUFFLFlBQVdxRyxFQUFDLElBQUVuQyxJQUFHLEdBQUVsRSxJQUFFLEdBQUUsRUFBRSxZQUFXcUcsSUFBRSxDQUFDLEdBQUVwRCxLQUFFZSxHQUFFZixJQUFFLEdBQUcsR0FBRTdCLE1BQUdBLEtBQUUsS0FBRyxHQUFHLEdBQUUsRUFBRSxVQUFVLElBQUc0QixLQUFFLEVBQUUsT0FBTSxFQUFFLFFBQU0sU0FBT1gsS0FBRThDLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxJQUFFRCxHQUFFLEdBQUUsSUFBR3FELEdBQUUsRUFBRSxRQUFNLEdBQUcsQ0FBQztBQUFBLEVBQUM7QUFBQyxFQUFBcEQsTUFBR0EsS0FBRSxZQUFVLFdBQVMsV0FBUyxJQUFFLElBQUUyQixNQUFHLE1BQUlBLEtBQUUsSUFBRSxhQUFZLE1BQUlzQixLQUFFZSxHQUFFZixJQUFFLEdBQUc7QUFBRyxNQUFJNkMsS0FBRWdDLElBQUcsR0FBRTlILEtBQUUsU0FBUWlELElBQUUsR0FBRSxDQUFDLEdBQUVtRCxLQUFFaUIsSUFBRyxJQUFHckgsS0FBRSxPQUFLLE9BQUssVUFBUSxRQUFPLElBQUVnRSxHQUFFZixJQUFFLEdBQUcsSUFBRUEsSUFBRSxHQUFFRCxJQUFFLElBQUVDLEdBQUUsYUFBVyxNQUFNO0FBQUUsU0FBT1ksR0FBRSxHQUFFN0QsSUFBRXFCLElBQUVFLElBQUUsR0FBRSxFQUFDLE1BQUssdUJBQXNCLElBQUdjLElBQUUsUUFBT3lELElBQUUsTUFBS00sSUFBRSxPQUFNLE1BQUksR0FBRSxXQUFVekUsT0FBSSxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVN3RixJQUFHLEdBQUVuSCxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLEVBQUF5QixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJcUIsS0FBRWtDLElBQUcsR0FBRXZELElBQUUsT0FBTyxHQUFFdUIsS0FBRSxJQUFFLElBQUVGLE1BQUcsSUFBRyxJQUFFLE1BQUtNLElBQUVVLEtBQUVyQyxLQUFFLEtBQUdpRSxJQUFHLElBQUU7QUFBTyxHQUFDLEVBQUUsUUFBTSxVQUFRLE1BQUlQLElBQUcsSUFBRzFELEtBQUUsWUFBVSxXQUFTdUIsSUFBRSxFQUFFLEtBQUssR0FBRWMsT0FBSUEsS0FBRTJCLEdBQUUzQixJQUFFLEdBQUcsSUFBR1YsS0FBRSxFQUFFLE9BQU0sSUFBRXdELEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxJQUFHQSxNQUFHQSxLQUFFLFlBQVUsV0FBUyxXQUFTdUIsTUFBR0YsS0FBRSxJQUFFLGFBQVlnQixPQUFJQSxLQUFFMkIsR0FBRTNCLElBQUUsR0FBRztBQUFHLE1BQUlXLEtBQUU4RSxJQUFHLEdBQUU5SCxLQUFFLFNBQVFxQyxJQUFFLEdBQUUsQ0FBQyxHQUFFWSxLQUFFb0UsSUFBRyxHQUFFckgsS0FBRSxZQUFXcUMsTUFBRzJCLEdBQUUzQixJQUFFLEdBQUcsR0FBRSxHQUFFVixJQUFFLE1BQU07QUFBRSxTQUFPLEVBQUUsYUFBVyxHQUFFa0MsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssc0JBQXFCLElBQUcsR0FBRSxRQUFPNEIsSUFBRSxNQUFLQyxJQUFFLE9BQU0sTUFBSSxHQUFFLFdBQVU1QixPQUFJLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVyQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUlDLEtBQUVtRixHQUFFLEdBQUV4RyxJQUFFLFFBQU8sR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxDQUFDO0FBQUUsU0FBT3BCLEtBQUUsT0FBSyxFQUFFLGVBQWEsTUFBSUQsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLGVBQWEsS0FBR0EsR0FBRSxHQUFFLEVBQUUsR0FBRXNCO0FBQUM7QUFBQyxTQUFTbUYsR0FBRSxHQUFFeEcsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRUksSUFBRTtBQUFDLEVBQUFrQixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJcUMsS0FBRSxDQUFDLEdBQUVXLEtBQUU7QUFBRSxPQUFJaEQsTUFBR0EsS0FBRSxhQUFXLFdBQVUsRUFBRSxVQUFRO0FBQUksUUFBR3FELEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFO0FBQUUsTUFBQXFDLEdBQUUsS0FBSyxJQUFJO0FBQUEsU0FBTTtBQUFDLFVBQUl5RCxJQUFFLEVBQUMsT0FBTU0sSUFBRSxVQUFTQyxJQUFFLFNBQVFDLElBQUUsUUFBT00sSUFBRSxZQUFXRCxHQUFDLElBQUU7QUFBRSxVQUFHUCxLQUFFO0FBQU8sWUFBR04sS0FBRVYsR0FBRSxHQUFFcEYsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVrRyxJQUFFQyxJQUFFTSxFQUFDLEdBQUUsRUFBRSxVQUFRLFlBQVc7QUFBQyxZQUFFLGFBQVcsS0FBRzdHLEdBQUUsR0FBRSxFQUFFLEdBQUU4QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRSxLQUFHLEdBQUcsR0FBRUEsSUFBRSxHQUFFMkcsSUFBRSxHQUFFdEYsRUFBQztBQUFFLGNBQUlxRixLQUFFUCxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFVBQUEyRixLQUFFakMsR0FBRSxHQUFFN0QsSUFBRXFHLElBQUVDLElBQUVNLElBQUV4RixLQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBSzBFLElBQUUsT0FBTVksR0FBQyxJQUFFLEVBQUMsTUFBSyx3QkFBdUIsVUFBUyxLQUFJLE1BQUtaLElBQUUsT0FBTVksR0FBQyxDQUFDLEdBQUUxRCxNQUFHLEVBQUUsZUFBYSxNQUFJLE1BQUksSUFBRSxFQUFFLGVBQWEsTUFBSSxNQUFJO0FBQUEsUUFBQztBQUFNLFlBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxNQUFJLEVBQUUsYUFBVyxJQUFFQSxNQUFHLEtBQUcsS0FBRyxHQUFHLEdBQUVoRCxJQUFFLEdBQUUyRyxJQUFFLEdBQUV0RixFQUFDLEdBQUUyQixNQUFHLEVBQUUsZUFBYSxNQUFJLE1BQUksSUFBRSxFQUFFLGVBQWEsTUFBSSxNQUFJLE1BQUlBLE1BQUcsSUFBRSxJQUFFLEtBQUcsSUFBRSxJQUFFLElBQUUsSUFBRzhDLEtBQUVSLEdBQUUsR0FBRXRGLElBQUU4RixJQUFFM0YsS0FBRSxHQUFFa0csSUFBRUMsSUFBRU0sRUFBQyxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxlQUFhNUQsTUFBRyxLQUFJOEMsS0FBRVAsR0FBRSxHQUFFdkYsSUFBRUcsS0FBRWlCLElBQUVpRixJQUFFQyxJQUFFTSxJQUFFZCxFQUFDLEtBQUcsRUFBRSxVQUFRLGVBQWE5QyxNQUFHLEVBQUUsYUFBVyxJQUFFLEtBQUc7QUFBQTtBQUFVLFFBQUFvRCxLQUFFLFdBQVNOLEtBQUUsRUFBRSxVQUFRLFVBQVFTLEdBQUUsR0FBRXZHLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFZ0YsSUFBRUMsSUFBRU0sRUFBQyxJQUFFSixHQUFFLEdBQUV4RyxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRWdGLElBQUVDLElBQUVNLEVBQUMsR0FBRTVELE1BQUcsRUFBRSxjQUFhLEVBQUUsYUFBVyxFQUFFLGVBQWEsS0FBRyxJQUFFLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLEtBQUcsRUFBRSxhQUFXLE1BQUlBLE1BQUcsTUFBSSxFQUFFLGVBQWEsSUFBRWpELEdBQUUsR0FBRSxFQUFFLEtBQUcrRixLQUFFUixHQUFFLEdBQUV0RixJQUFFOEYsSUFBRTNGLEtBQUUsR0FBRWtHLElBQUVDLElBQUVNLEVBQUMsR0FBRTVELEtBQUUsRUFBRSxhQUFXLElBQUUsS0FBRyxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxLQUFHOEMsS0FBRVAsR0FBRSxHQUFFdkYsSUFBRUcsS0FBRWlCLElBQUVpRixJQUFFQyxJQUFFTSxJQUFFZCxFQUFDLElBQUUsRUFBRSxVQUFRLGVBQWE5QyxNQUFHLEVBQUUsYUFBVyxJQUFFLEtBQUcsUUFBTW9ELE9BQUksTUFBSU4sS0FBRWlDLElBQUcsR0FBRS9ILElBQUUsR0FBRSxJQUFHLEdBQUVxQixJQUFFLEdBQUVsQixLQUFFaUIsSUFBRWlGLElBQUVDLElBQUVNLEVBQUMsR0FBRTVELE1BQUcsRUFBRSxjQUFhLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxNQUFJakQsR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUMsTUFBSTBDLEtBQUVXLEdBQUUsR0FBRXpHLElBQUUsR0FBRSxHQUFFLEdBQUVxRyxJQUFFQyxJQUFFTSxFQUFDLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLE1BQUlkLEtBQUVQLEdBQUUsR0FBRXZGLElBQUVHLEtBQUVpQixJQUFFaUYsSUFBRUMsSUFBRU0sSUFBRWQsRUFBQyxHQUFFLEVBQUUsSUFBRSxNQUFJTSxPQUFJLGFBQVdwRCxNQUFHLE9BQUssRUFBRSxhQUFXLElBQUVBLE1BQUcsS0FBR29ELE9BQUksYUFBV3BELE1BQUcsRUFBRSxhQUFXLEtBQUcsSUFBRSxJQUFFLEtBQUc7QUFBSyxVQUFHWCxHQUFFLEtBQUt5RCxFQUFDLEdBQUV6QyxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRSxHQUFFO0FBQUMsWUFBRyxFQUFFLFVBQVE7QUFBRztBQUFBLE1BQUs7QUFBTTtBQUFBLElBQUs7QUFBQyxFQUFBd0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFO0FBQUUsTUFBSWlELEtBQUVZLEdBQUUsR0FBRTdELElBQUV1QixJQUFFLEdBQUVJLElBQUUsRUFBQyxNQUFLUCxLQUFFLGlCQUFlLG1CQUFrQixVQUFTaUIsR0FBQyxDQUFDO0FBQUUsU0FBTSxDQUFDLEtBQUcsRUFBRSxRQUFNLFVBQVEyRixJQUFHLEdBQUVoSSxJQUFFZ0QsSUFBRTdDLEtBQUVpQixJQUFFRyxJQUFFLEdBQUVJLElBQUVzQixFQUFDLEtBQUcsRUFBRSxlQUFhRCxJQUFFQztBQUFFO0FBQUMsU0FBUytFLElBQUcsR0FBRWhJLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFRSxJQUFFO0FBQUMsSUFBRSxVQUFRLGNBQVl4QixHQUFFLEdBQUUsRUFBRSxHQUFFOEMsR0FBRSxHQUFFN0MsS0FBRSxLQUFLLEdBQUUsSUFBRSxNQUFJRCxHQUFFLEdBQUUsRUFBRSxHQUFFSSxPQUFHLEVBQUUsR0FBRW9CLEVBQUM7QUFBRSxNQUFHLEVBQUMsVUFBUyxHQUFFLFNBQVFJLElBQUUsUUFBT1UsR0FBQyxJQUFFLEdBQUVXLEtBQUVtRCxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUyQixJQUFFVSxFQUFDO0FBQUUsU0FBTyxFQUFFLGdCQUFjLElBQUUsS0FBRyxLQUFHLE1BQUksRUFBRSxlQUFhLE1BQUksTUFBSSxNQUFJLEVBQUUsZUFBYSxNQUFJLE1BQUksSUFBR3dCLEdBQUUsR0FBRTdELElBQUVvQixJQUFFLEdBQUVDLElBQUVsQixNQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBS29CLElBQUUsT0FBTXlCLEdBQUMsSUFBRSxFQUFDLE1BQUssd0JBQXVCLE1BQUt6QixJQUFFLFVBQVMsS0FBSSxPQUFNeUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTK0UsSUFBRyxHQUFFL0gsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRUksSUFBRVUsSUFBRTtBQUFDLEVBQUFRLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUlnRCxLQUFFLE1BQUtDLEtBQUUsR0FBRSxFQUFDLE9BQU02QyxJQUFFLFlBQVdNLElBQUUsVUFBU0MsSUFBRSxTQUFRQyxJQUFFLFFBQU9NLEdBQUMsSUFBRTtBQUFFLE1BQUdkLEtBQUU7QUFBTyxNQUFFLGFBQVcsR0FBRTlDLEtBQUVvQyxHQUFFLEdBQUVwRixJQUFFRyxLQUFFLEdBQUUsR0FBRSxHQUFFa0IsSUFBRSxHQUFFZ0YsSUFBRUMsSUFBRU0sRUFBQyxHQUFFZCxLQUFFLEVBQUUsT0FBTTlDLEtBQUVzQyxHQUFFLEdBQUV0RixJQUFFZ0QsSUFBRTNCLElBQUUsR0FBRWdGLElBQUVDLElBQUVNLEVBQUMsR0FBRSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsTUFBSSxFQUFFLGFBQVcsS0FBRyxFQUFFLFVBQVEsY0FBWTdHLEdBQUUsR0FBRSxFQUFFLEdBQUVrRCxNQUFHLElBQUdELEtBQUV1QyxHQUFFLEdBQUV2RixJQUFFcUIsSUFBRUUsSUFBRThFLElBQUVDLElBQUVNLElBQUU1RCxFQUFDLElBQUcsRUFBRSxhQUFXLElBQUVDLE1BQUcsS0FBRzZDLE9BQUksS0FBR0EsT0FBSSxLQUFHLEtBQUcsR0FBRyxHQUFFOUYsSUFBRSxHQUFFb0csSUFBRWpHLEtBQUVpQixFQUFDLElBQUU2QixNQUFHLElBQUdBLE1BQUcsRUFBRSxlQUFhLE1BQUksTUFBSTtBQUFBLFdBQVU2QyxPQUFJO0FBQUUsSUFBQS9GLEdBQUUsR0FBRSxFQUFFO0FBQUEsV0FBVStGLEtBQUU7QUFBUSxJQUFBOUMsS0FBRSxFQUFFLFVBQVEsVUFBUXVELEdBQUUsR0FBRXZHLElBQUUsR0FBRSxHQUFFcUIsSUFBRUUsSUFBRXBCLEtBQUVpQixJQUFFaUYsSUFBRUMsSUFBRU0sRUFBQyxJQUFFSixHQUFFLEdBQUV4RyxJQUFFLEdBQUUsR0FBRXFCLElBQUVFLElBQUVwQixLQUFFaUIsSUFBRWlGLElBQUVDLElBQUVNLEVBQUMsR0FBRWQsS0FBRSxFQUFFLE9BQU1BLE9BQUksY0FBWUEsT0FBSSxLQUFHQSxPQUFJLE1BQUksRUFBRSxlQUFhLEtBQUcvRixHQUFFLEdBQUUsRUFBRSxHQUFFaUQsS0FBRXNDLEdBQUUsR0FBRXRGLElBQUVnRCxJQUFFM0IsSUFBRSxHQUFFZ0YsSUFBRUMsSUFBRU0sRUFBQyxHQUFFM0QsTUFBRyxFQUFFLGFBQVcsSUFBRSxLQUFHLElBQUcsRUFBRSxRQUFNLGFBQVcsV0FBUyxFQUFFLFVBQVEsZUFBYUEsTUFBRyxLQUFJRCxLQUFFdUMsR0FBRSxHQUFFdkYsSUFBRXFCLElBQUVFLElBQUU4RSxJQUFFQyxJQUFFTSxJQUFFNUQsRUFBQyxPQUFLLEVBQUUsUUFBTSxhQUFXLFlBQVVBLEtBQUUsR0FBRyxHQUFFaEQsSUFBRSxHQUFFcUcsSUFBRUMsSUFBRU0sSUFBRSxHQUFFZCxJQUFFOUMsRUFBQyxJQUFHSyxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRSxNQUFJZ0QsS0FBRSxHQUFHLEdBQUVoRCxJQUFFZ0QsSUFBRXFELElBQUVDLElBQUVNLEVBQUMsSUFBRzNELE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxPQUFLQSxNQUFHLE1BQUksY0FBWTZDLE9BQUksYUFBVyxLQUFHLEVBQUU7QUFBQSxPQUFpQjtBQUFDLElBQUE3QyxNQUFHLElBQUdELEtBQUV5RCxHQUFFLEdBQUV6RyxJQUFFLEdBQUVxQixJQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxRQUFHLEVBQUMsT0FBTXNGLElBQUUsVUFBU0QsSUFBRSxTQUFRdUIsSUFBRSxRQUFPQyxHQUFDLElBQUU7QUFBRSxXQUFPdkIsT0FBSSxjQUFZQSxPQUFJLEtBQUdBLE9BQUksTUFBSSxFQUFFLGFBQVcsS0FBRzVHLEdBQUUsR0FBRSxFQUFFLEdBQUVpRCxLQUFFdUMsR0FBRSxHQUFFdkYsSUFBRXFCLElBQUVFLElBQUVtRixJQUFFdUIsSUFBRUMsSUFBRWxGLEVBQUMsR0FBRUMsTUFBRyxPQUFLMEQsT0FBSSxLQUFHMUQsTUFBRyxLQUFHMEQsT0FBSSxNQUFJM0QsS0FBRXVDLEdBQUUsR0FBRXZGLElBQUVxQixJQUFFRSxJQUFFbUYsSUFBRXVCLElBQUVDLElBQUVsRixFQUFDLElBQUdDLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxLQUFJLEVBQUUsZUFBYUEsSUFBRSxFQUFFLFVBQVEsS0FBRyxFQUFFLFVBQVEsTUFBSWxELEdBQUUsR0FBRSxHQUFHLEdBQUU4RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUyQixJQUFFVSxJQUFFLEVBQUMsTUFBS2QsS0FBRSxnQkFBYyxpQkFBZ0IsVUFBU3lCLEdBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxNQUFHLEVBQUUsVUFBUTtBQUFFLFFBQUc3QyxNQUFFLE1BQUk4QyxNQUFHLElBQUUsS0FBRyxLQUFJSSxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sVUFBVSxHQUFFO0FBQUMsTUFBQWlELEtBQUUsTUFBSWxELEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxHQUFFaUQsRUFBQztBQUFFLFVBQUkyRCxLQUFFUixHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRXFCLElBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxNQUFBMkIsS0FBRWEsR0FBRSxHQUFFN0QsSUFBRXFHLElBQUVDLElBQUVNLElBQUVyRixLQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBS3lCLElBQUUsT0FBTTJELEdBQUMsSUFBRSxFQUFDLE1BQUssd0JBQXVCLE1BQUszRCxJQUFFLFVBQVMsS0FBSSxPQUFNMkQsR0FBQyxDQUFDLEdBQUUxRCxLQUFFO0FBQUEsSUFBRTtBQUFNLE1BQUFBLE1BQUc7QUFBRyxTQUFPLEVBQUUsZUFBYUEsSUFBRVksR0FBRSxHQUFFN0QsSUFBRSxHQUFFMkIsSUFBRVUsSUFBRSxFQUFDLE1BQUtkLEtBQUUsZ0JBQWMsaUJBQWdCLFVBQVN5QixHQUFDLENBQUM7QUFBQztBQUFDLFNBQVNtRixHQUFFLEdBQUVuSSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUlDLEtBQUUsSUFBRSxLQUFHLFdBQVM7QUFBUyxFQUFBckIsTUFBR0EsS0FBRXFCLE1BQUdBLE1BQUcsSUFBRSxPQUFLLEtBQUc7QUFBVSxNQUFJRSxLQUFFdkIsS0FBRSxLQUFHZ0UsR0FBRUMsSUFBRyxHQUFFLEdBQUcsSUFBRSxRQUFPLElBQUUsR0FBRyxHQUFFakUsS0FBRSxTQUFRdUIsSUFBRSxHQUFFLEdBQUUsQ0FBQztBQUFFLEVBQUFBLE9BQUlBLEtBQUV5QyxHQUFFekMsSUFBRSxHQUFHO0FBQUcsTUFBSUksS0FBRTBGLElBQUcsR0FBRXJILEtBQUUsWUFBV3VCLElBQUUsR0FBRSxRQUFPLE1BQU07QUFBRSxTQUFPc0MsR0FBRSxHQUFFN0QsSUFBRUcsS0FBRWlCLElBQUUsR0FBRSxFQUFDLE1BQUssc0JBQXFCLFFBQU8sR0FBRSxNQUFLTyxJQUFFLFFBQU8sSUFBRSxNQUFJLEdBQUUsWUFBVyxJQUFFLEtBQUcsR0FBRSxJQUFHLEtBQUksQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUUzQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUlDLEtBQUVrRixHQUFFLEdBQUV2RyxJQUFFLFFBQU8sR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxDQUFDO0FBQUUsU0FBT3BCLEtBQUUsT0FBSyxFQUFFLGVBQWEsTUFBSUQsR0FBRSxHQUFFLEVBQUUsR0FBRSxFQUFFLGVBQWEsS0FBR0EsR0FBRSxHQUFFLEVBQUUsR0FBRXNCO0FBQUM7QUFBQyxTQUFTa0YsR0FBRSxHQUFFdkcsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRUksSUFBRTtBQUFDLEVBQUFrQixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSXFDLEtBQUUsQ0FBQyxHQUFFVyxLQUFFLEdBQUVDLEtBQUU7QUFBRSxPQUFJakQsTUFBR0EsS0FBRSxhQUFXLFdBQVUsRUFBRSxVQUFRLGNBQVk7QUFBQyxRQUFHLEVBQUMsT0FBTW9HLElBQUUsWUFBV0MsSUFBRSxTQUFRQyxJQUFFLFFBQU9NLElBQUUsVUFBU0QsR0FBQyxJQUFFO0FBQUUsUUFBR1AsT0FBSTtBQUFHLE1BQUEvRCxHQUFFLEtBQUswRixJQUFHLEdBQUUvSCxJQUFFLEdBQUUsWUFBVyxHQUFFcUIsSUFBRSxHQUFFbEIsS0FBRWlCLElBQUV1RixJQUFFTCxJQUFFTSxFQUFDLENBQUM7QUFBQSxTQUFNO0FBQUMsVUFBSUYsS0FBRSxHQUFFdUIsS0FBRSxNQUFLQyxJQUFFRSxLQUFFLEVBQUU7QUFBTSxVQUFHLEVBQUUsUUFBTSxVQUFRLEVBQUUsVUFBUTtBQUFJLFlBQUdILEtBQUU5QyxHQUFFLEdBQUVuRixJQUFFLENBQUMsR0FBRSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsY0FBWSxFQUFFLFVBQVE7QUFBVyxjQUFHMEcsTUFBRyxHQUFFMUcsS0FBRSxTQUFPb0csS0FBRSxlQUFhLFlBQVVwRCxNQUFHLEtBQUdTLElBQUcsR0FBRXpELElBQUUsR0FBRW9HLElBQUUsQ0FBQyxHQUFFLEtBQUcsR0FBRyxHQUFFcEcsSUFBRSxHQUFFcUcsSUFBRSxHQUFFaEYsRUFBQyxHQUFFZ0MsR0FBRSxHQUFFckQsS0FBRSxPQUFNLFVBQVUsR0FBRTtBQUFDLFlBQUFnRCxNQUFHO0FBQUUsZ0JBQUlxRixLQUFFbEMsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxZQUFBNkMsTUFBRyxFQUFFLGVBQWEsTUFBSSxNQUFJLElBQUUsRUFBRSxlQUFhLE1BQUksTUFBSSxHQUFFa0YsS0FBRXJFLEdBQUUsR0FBRTdELElBQUUyRyxJQUFFTCxJQUFFTSxJQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBSzVHLEtBQUUsY0FBWSxPQUFPLE9BQU8sQ0FBQyxHQUFFaUksRUFBQyxJQUFFQSxJQUFFLE9BQU1JLEdBQUMsQ0FBQztBQUFBLFVBQUM7QUFBTSxZQUFBckYsT0FBSW9ELE9BQUksU0FBTyxNQUFJLE1BQUlBLE9BQUksTUFBSSxLQUFHLElBQUc4QixLQUFFbEksS0FBRSxjQUFZLE9BQU8sT0FBTyxDQUFDLEdBQUVpSSxFQUFDLElBQUVBO0FBQUEsaUJBQVU1RSxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRSxHQUFFO0FBQUMsY0FBRyxFQUFDLFVBQVNxSSxJQUFFLFNBQVFDLElBQUUsUUFBT0MsR0FBQyxJQUFFO0FBQUUsY0FBR2xDLE9BQUksZUFBYXBELE1BQUksRUFBRSxRQUFNLFFBQU87QUFBQyxnQkFBSXVGLE1BQUcsRUFBRSxPQUFNQyxNQUFHLEVBQUU7QUFBVyxZQUFBekYsTUFBR29GLE9BQUksTUFBSSxLQUFHLEdBQUVGLEtBQUU5QyxHQUFFLEdBQUVwRixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUM7QUFBRSxnQkFBRyxFQUFDLE9BQU1HLEdBQUMsSUFBRTtBQUFFLFlBQUFSLEtBQUU1QyxHQUFFLEdBQUV0RixJQUFFa0ksSUFBRS9ILEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUMsR0FBRSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsYUFBV0csT0FBSSxjQUFZQSxPQUFJLGNBQVlBLE9BQUksTUFBSTFGLE1BQUcsRUFBRSxlQUFhLE1BQUksTUFBSSxHQUFFLEVBQUUsYUFBVyxJQUFFQSxNQUFHLEtBQUcsTUFBSXdGLE1BQUcsWUFBVSxVQUFRLEdBQUcsR0FBRXhJLElBQUUsR0FBRXlJLEtBQUcsR0FBRXBILEVBQUMsS0FBRzJCLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxNQUFJLEVBQUUsUUFBTSxhQUFXLFdBQVMsRUFBRSxhQUFXLElBQUVBLE1BQUcsS0FBRzBGLE9BQUksYUFBVzFGLE1BQUcsS0FBRyxLQUFHLEdBQUcsR0FBRWhELElBQUUsR0FBRXlJLEtBQUcsR0FBRXBILEVBQUMsR0FBRTZHLEtBQUUzQyxHQUFFLEdBQUV2RixJQUFFRyxLQUFFaUIsSUFBRWlILElBQUVDLElBQUVDLElBQUVMLEVBQUMsTUFBSWxGLE1BQUcsS0FBSSxFQUFFLFFBQU0sYUFBVyxZQUFVa0YsS0FBRSxHQUFHLEdBQUVsSSxJQUFFLEdBQUVxSSxJQUFFQyxJQUFFQyxJQUFFLEdBQUVHLElBQUVSLEVBQUMsSUFBRzdFLEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFLE1BQUlrSSxLQUFFLEdBQUcsR0FBRWxJLElBQUVrSSxJQUFFRyxJQUFFQyxJQUFFQyxFQUFDO0FBQUEsVUFBRztBQUFLLGFBQUMsRUFBRSxRQUFNLGFBQVcsV0FBU0wsS0FBRSxFQUFFLFVBQVEsV0FBUzFCLEdBQUUsR0FBRXhHLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFZ0gsSUFBRUMsSUFBRUMsRUFBQyxJQUFFaEMsR0FBRSxHQUFFdkcsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVnSCxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsY0FBYSxFQUFFLGFBQVdBLEtBQUUsS0FBRyxJQUFFLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLGFBQVcsRUFBRSxhQUFXLE1BQUlBLE1BQUcsTUFBSSxFQUFFLGVBQWEsSUFBRWpELEdBQUUsR0FBRSxFQUFFLEtBQUdtSSxLQUFFNUMsR0FBRSxHQUFFdEYsSUFBRWtJLElBQUUvSCxLQUFFLEdBQUVrSSxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsYUFBVyxJQUFFLEtBQUcsSUFBRyxFQUFFLFFBQU0sYUFBVyxVQUFRa0YsS0FBRWhCLElBQUcsR0FBRWxILElBQUVHLEtBQUVpQixJQUFFaUgsSUFBRUMsSUFBRUMsSUFBRUwsRUFBQyxNQUFJLEVBQUUsUUFBTSxhQUFXLFlBQVVBLEtBQUUsR0FBRyxHQUFFbEksSUFBRSxHQUFFcUksSUFBRUMsSUFBRUMsSUFBRSxHQUFFbkMsSUFBRThCLEVBQUMsSUFBRzdFLEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFLE1BQUlrSSxLQUFFLEdBQUcsR0FBRWxJLElBQUVrSSxJQUFFRyxJQUFFQyxJQUFFQyxFQUFDLElBQUd2RixNQUFHLEVBQUUsYUFBVyxJQUFFLEtBQUcsU0FBT2tGLEtBQUV6QixHQUFFLEdBQUV6RyxJQUFFLEdBQUVHLEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUMsR0FBRXZGLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxJQUFHLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxhQUFXLEVBQUUsYUFBVyxNQUFJQSxNQUFHLE9BQUtrRixLQUFFNUMsR0FBRSxHQUFFdEYsSUFBRWtJLElBQUUvSCxLQUFFLEdBQUVrSSxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsYUFBVyxJQUFFLEtBQUcsR0FBRSxFQUFFLFVBQVEsTUFBSW9ELE9BQUksZUFBYSxFQUFFLFVBQVEsZUFBYXBELE1BQUcsS0FBSWtGLEtBQUUzQyxHQUFFLEdBQUV2RixJQUFFRyxLQUFFaUIsSUFBRWlILElBQUVDLElBQUVDLElBQUVMLEVBQUM7QUFBQSxRQUFJO0FBQU0sWUFBRSxVQUFRLFlBQVVsRixNQUFHLElBQUdvRCxPQUFJLFdBQVNNLE1BQUcsS0FBSUEsT0FBSU4sT0FBSSxRQUFNLE1BQUlBLE9BQUksUUFBTSxNQUFJLEtBQUcsR0FBRTZCLEtBQUUsR0FBRyxHQUFFakksSUFBRUcsR0FBQyxHQUFFNkMsTUFBRyxFQUFFLFlBQVdrRixLQUFFQyxHQUFFLEdBQUVuSSxJQUFFMEcsSUFBRXZHLEtBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sS0FBRyxFQUFFLFFBQU0sVUFBUTZDLE1BQUcsSUFBR29ELE9BQUksT0FBS3JHLEdBQUUsR0FBRSxFQUFFLEdBQUVxRyxPQUFJLFdBQVMsRUFBRSxRQUFNLEtBQUdyRyxHQUFFLEdBQUUsR0FBRyxHQUFFMkcsTUFBRyxLQUFJdUIsS0FBRTlDLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFMEcsTUFBR04sT0FBSSxRQUFNLE1BQUlBLE9BQUksUUFBTSxNQUFJLEdBQUU4QixLQUFFQyxHQUFFLEdBQUVuSSxJQUFFMEcsSUFBRXZHLEtBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sS0FBRyxFQUFFLFVBQVEsWUFBVTZDLE1BQUcsSUFBRzBELE1BQUcsR0FBRXdCLEtBQUVDLEdBQUUsR0FBRW5JLElBQUUwRyxJQUFFdkcsS0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxLQUFHLEVBQUUsVUFBUSxXQUFTNkMsTUFBRyxJQUFHb0QsT0FBSSxRQUFNckcsR0FBRSxHQUFFLEVBQUUsSUFBRXFHLE9BQUksUUFBTXJHLEdBQUUsR0FBRSxFQUFFLElBQUVxRyxPQUFJLFVBQVFyRyxHQUFFLEdBQUUsRUFBRSxHQUFFOEMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFMEcsTUFBRyxLQUFHTixPQUFJLFNBQU8sS0FBRyxJQUFHLEVBQUUsUUFBTSxTQUFPNkIsS0FBRTlDLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxLQUFHLEVBQUUsUUFBTSxlQUFhLFlBQVVpSSxLQUFFMUQsR0FBRSxHQUFFdkUsRUFBQyxJQUFFLEVBQUUsVUFBUSxZQUFVMEcsTUFBRyxHQUFFdUIsS0FBRSxHQUFHLEdBQUVqSSxJQUFFRyxHQUFDLEdBQUU2QyxNQUFHLEVBQUUsY0FBWWpELEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDLEdBQUU4RSxLQUFFQyxHQUFFLEdBQUVuSSxJQUFFMEcsSUFBRXZHLEtBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sTUFBSSxFQUFFLFFBQU0sZUFBYSxhQUFXaUcsT0FBSSxXQUFTTSxNQUFHLEtBQUlBLE1BQUdOLE9BQUksUUFBTSxNQUFJQSxPQUFJLFFBQU0sTUFBSSxHQUFFcEQsTUFBRyxJQUFHaUYsS0FBRTFELEdBQUUsR0FBRXZFLEVBQUMsR0FBRWtJLEtBQUVDLEdBQUUsR0FBRW5JLElBQUUwRyxJQUFFdkcsS0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxLQUFHSixHQUFFLEdBQUUsR0FBRztBQUFBLGdCQUFXLEVBQUUsUUFBTSxlQUFhO0FBQVUsWUFBR2tJLEtBQUUxRCxHQUFFLEdBQUV2RSxFQUFDLEdBQUUsRUFBRSxVQUFRLElBQUc7QUFBQyxVQUFBd0QsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEVBQUU7QUFBRSxjQUFHLEVBQUMsVUFBU3FJLElBQUUsU0FBUUMsSUFBRSxRQUFPQyxHQUFDLElBQUU7QUFBRSxjQUFHbEMsT0FBSSxlQUFhcEQsTUFBSSxFQUFFLFFBQU0sUUFBTztBQUFDLFlBQUFpRixLQUFFOUMsR0FBRSxHQUFFcEYsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVrSSxJQUFFQyxJQUFFQyxFQUFDO0FBQUUsZ0JBQUcsRUFBQyxPQUFNQyxLQUFHLFlBQVdDLElBQUUsSUFBRTtBQUFFLFlBQUFQLEtBQUU1QyxHQUFFLEdBQUV0RixJQUFFa0ksSUFBRS9ILEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUMsR0FBRSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsYUFBV0MsUUFBSyxjQUFZQSxRQUFLLGNBQVlBLFFBQUssS0FBRyxFQUFFLGFBQVcsSUFBRXhGLE1BQUcsS0FBRyxLQUFHLEdBQUcsR0FBRWhELElBQUUsR0FBRXlJLEtBQUcsR0FBRXBILEVBQUMsSUFBRTJCLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxLQUFHLEVBQUUsVUFBUSxjQUFZLEVBQUUsYUFBVyxNQUFJQSxNQUFHLEtBQUlrRixLQUFFM0MsR0FBRSxHQUFFdkYsSUFBRUcsS0FBRWlCLElBQUVpSCxJQUFFQyxJQUFFQyxJQUFFTCxFQUFDLE1BQUlsRixNQUFHLElBQUdrRixLQUFFM0MsR0FBRSxHQUFFdkYsSUFBRUcsS0FBRWlCLElBQUVpSCxJQUFFQyxJQUFFQyxJQUFFTCxFQUFDO0FBQUEsVUFBRTtBQUFLLGFBQUMsRUFBRSxRQUFNLGFBQVcsV0FBU0EsS0FBRSxFQUFFLFVBQVEsV0FBUzFCLEdBQUUsR0FBRXhHLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFZ0gsSUFBRUMsSUFBRUMsRUFBQyxJQUFFaEMsR0FBRSxHQUFFdkcsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVnSCxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsY0FBYSxFQUFFLGFBQVdBLEtBQUUsS0FBRyxJQUFFLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLGFBQVcsRUFBRSxhQUFXLE1BQUlBLE1BQUcsT0FBSyxFQUFFLGVBQWEsT0FBSyxNQUFJa0YsS0FBRTVDLEdBQUUsR0FBRXRGLElBQUVrSSxJQUFFL0gsS0FBRSxHQUFFa0ksSUFBRUMsSUFBRUMsRUFBQyxHQUFFdkYsS0FBRSxFQUFFLGFBQVcsSUFBRSxLQUFHLElBQUcsRUFBRSxRQUFNLGFBQVcsVUFBUWtGLEtBQUVoQixJQUFHLEdBQUVsSCxJQUFFRyxLQUFFaUIsSUFBRWlILElBQUVDLElBQUVDLElBQUVMLEVBQUMsTUFBSSxFQUFFLFFBQU0sYUFBVyxZQUFVQSxLQUFFLEdBQUcsR0FBRWxJLElBQUUsR0FBRXFJLElBQUVDLElBQUVDLElBQUUsR0FBRW5DLElBQUU4QixFQUFDLElBQUc3RSxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRSxNQUFJa0ksS0FBRSxHQUFHLEdBQUVsSSxJQUFFa0ksSUFBRUcsSUFBRUMsSUFBRUMsRUFBQyxJQUFHdkYsTUFBRyxFQUFFLGFBQVcsSUFBRSxLQUFHLFNBQU9rRixLQUFFekIsR0FBRSxHQUFFekcsSUFBRSxHQUFFLEdBQUUsR0FBRXFJLElBQUVDLElBQUVDLEVBQUMsR0FBRXZGLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxJQUFHLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxhQUFXLEVBQUUsYUFBVyxNQUFJQSxNQUFHLE9BQUtrRixLQUFFNUMsR0FBRSxHQUFFdEYsSUFBRWtJLElBQUUvSCxLQUFFLEdBQUVrSSxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsYUFBVyxJQUFFLElBQUUsSUFBRyxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsZUFBYSxFQUFFLFVBQVEsZUFBYUEsTUFBRyxLQUFJa0YsS0FBRTNDLEdBQUUsR0FBRXZGLElBQUVHLEtBQUVpQixJQUFFaUgsSUFBRUMsSUFBRUMsSUFBRUwsRUFBQztBQUFBLFFBQUk7QUFBTSxZQUFFLFVBQVEsWUFBVXhCLE1BQUcsR0FBRXdCLEtBQUVDLEdBQUUsR0FBRW5JLElBQUUwRyxJQUFFdkcsS0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxHQUFFNkMsS0FBRSxFQUFFLGFBQVcsTUFBSWpELEdBQUUsR0FBRSxHQUFHO0FBQUEsZUFBVSxFQUFFLFVBQVE7QUFBUyxZQUFHa0ksS0FBRSxHQUFHLEdBQUVqSSxJQUFFRyxHQUFDLEdBQUU2QyxNQUFHLEVBQUUsZUFBYSxNQUFJLE1BQUksR0FBRTBELE1BQUcsR0FBRSxFQUFFLFVBQVEsSUFBRztBQUFDLFVBQUE3RCxHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxjQUFHLEVBQUMsVUFBU3FJLElBQUUsU0FBUUMsSUFBRSxRQUFPQyxJQUFFLFlBQVdDLEtBQUcsT0FBTUMsSUFBRSxJQUFFO0FBQUUsY0FBRyxFQUFFLFFBQU0sUUFBTztBQUFDLFlBQUFQLEtBQUU5QyxHQUFFLEdBQUVwRixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUM7QUFBRSxnQkFBRyxFQUFDLE9BQU1HLEdBQUMsSUFBRTtBQUFFLFlBQUFSLEtBQUU1QyxHQUFFLEdBQUV0RixJQUFFa0ksSUFBRS9ILEtBQUUsR0FBRWtJLElBQUVDLElBQUVDLEVBQUMsSUFBRyxFQUFFLFFBQU0sYUFBVyxXQUFTdkYsTUFBRyxFQUFFLGFBQVcsSUFBRSxLQUFHMEYsT0FBSSxhQUFXLElBQUUsSUFBR1IsS0FBRWhCLElBQUcsR0FBRWxILElBQUVHLEtBQUVpQixJQUFFaUgsSUFBRUMsSUFBRUMsSUFBRUwsRUFBQyxLQUFHLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxhQUFXUSxPQUFJLGNBQVlBLE9BQUksY0FBWUEsT0FBSSxLQUFHLEVBQUUsYUFBVyxJQUFFMUYsTUFBRyxLQUFHLE1BQUl5RixNQUFHLFlBQVUsVUFBUSxHQUFHLEdBQUV6SSxJQUFFLEdBQUV3SSxLQUFHLEdBQUVuSCxFQUFDLElBQUUyQixNQUFHLEVBQUUsYUFBVyxJQUFFLEtBQUcsTUFBSUEsTUFBRyxJQUFHa0YsS0FBRTNDLEdBQUUsR0FBRXZGLElBQUVHLEtBQUVpQixJQUFFaUgsSUFBRUMsSUFBRUMsSUFBRUwsRUFBQztBQUFBLFVBQUU7QUFBSyxhQUFDLEVBQUUsUUFBTSxhQUFXLFdBQVNBLEtBQUUsRUFBRSxVQUFRLFdBQVMxQixHQUFFLEdBQUV4RyxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRWdILElBQUVDLElBQUVDLEVBQUMsSUFBRWhDLEdBQUUsR0FBRXZHLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFZ0gsSUFBRUMsSUFBRUMsRUFBQyxHQUFFdkYsS0FBRSxFQUFFLGNBQWEsRUFBRSxhQUFXQSxLQUFFLEtBQUcsSUFBRSxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxhQUFXLEVBQUUsYUFBVyxNQUFJQSxNQUFHLE1BQUlBLEtBQUUsSUFBRWpELEdBQUUsR0FBRSxFQUFFLEtBQUdtSSxLQUFFNUMsR0FBRSxHQUFFdEYsSUFBRWtJLElBQUUvSCxLQUFFLEdBQUVrSSxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixLQUFFLEVBQUUsYUFBVyxJQUFFQSxLQUFFLEtBQUcsSUFBRyxFQUFFLFFBQU0sYUFBVyxXQUFTLEVBQUUsVUFBUSxlQUFhQSxNQUFHLEtBQUlrRixLQUFFaEIsSUFBRyxHQUFFbEgsSUFBRUcsS0FBRWlCLElBQUVpSCxJQUFFQyxJQUFFQyxJQUFFTCxFQUFDLE9BQUssRUFBRSxRQUFNLGFBQVcsWUFBVUEsS0FBRSxHQUFHLEdBQUVsSSxJQUFFLEdBQUVxSSxJQUFFQyxJQUFFQyxJQUFFLEdBQUVuQyxJQUFFOEIsRUFBQyxJQUFHN0UsR0FBRSxHQUFFckQsS0FBRSxPQUFNLEVBQUUsTUFBSWtJLEtBQUUsR0FBRyxHQUFFbEksSUFBRWtJLElBQUVHLElBQUVDLElBQUVDLEVBQUMsSUFBR3ZGLE1BQUcsRUFBRSxhQUFXLElBQUUsS0FBRyxTQUFPa0YsS0FBRXpCLEdBQUUsR0FBRXpHLElBQUUsR0FBRSxHQUFFLEdBQUVxSSxJQUFFQyxJQUFFQyxFQUFDLEdBQUV2RixNQUFHLEVBQUUsYUFBVyxJQUFFLEtBQUcsSUFBRyxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsYUFBVyxFQUFFLGFBQVcsTUFBSUEsTUFBRyxPQUFLa0YsS0FBRTVDLEdBQUUsR0FBRXRGLElBQUVrSSxJQUFFL0gsS0FBRSxHQUFFa0ksSUFBRUMsSUFBRUMsRUFBQyxHQUFFdkYsS0FBRSxFQUFFLGFBQVcsSUFBRSxJQUFFLElBQUcsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLGVBQWEsRUFBRSxVQUFRLGVBQWFBLE1BQUcsS0FBSWtGLEtBQUUzQyxHQUFFLEdBQUV2RixJQUFFRyxLQUFFaUIsSUFBRWlILElBQUVDLElBQUVDLElBQUVMLEVBQUM7QUFBQSxRQUFJO0FBQU0sWUFBRSxVQUFRLFlBQVV4QixNQUFHLEdBQUV3QixLQUFFQyxHQUFFLEdBQUVuSSxJQUFFMEcsSUFBRXZHLEtBQUUsRUFBRSxVQUFTbUcsSUFBRU0sRUFBQyxHQUFFNUQsS0FBRSxNQUFJakQsR0FBRSxHQUFFLEVBQUU7QUFBQSxlQUFVcUcsT0FBSTtBQUFRLFlBQUc1QyxHQUFFLEdBQUV4RCxLQUFFLE9BQU0sT0FBTyxHQUFFMEcsTUFBRyxHQUFFLEVBQUUsUUFBTSxRQUFPO0FBQUMsY0FBRyxFQUFDLE9BQU0yQixJQUFFLE1BQUtDLElBQUUsT0FBTUMsR0FBQyxJQUFFO0FBQUUsVUFBQU4sS0FBRTlDLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFMEcsTUFBRyxHQUFFLEVBQUUsVUFBUSxZQUFVMUQsTUFBRyxJQUFHa0YsS0FBRUMsR0FBRSxHQUFFbkksSUFBRTBHLElBQUV2RyxLQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLEtBQUcsR0FBR29JLElBQUVELElBQUVDLElBQUVGLE9BQUksU0FBTyxLQUFHQSxPQUFJLFNBQU8sRUFBRSxVQUFRLFFBQU0sS0FBRyxJQUFHakYsR0FBRWlGLEtBQUUsR0FBRyxDQUFDO0FBQUEsUUFBQztBQUFLLFdBQUMsRUFBRSxRQUFNLGVBQWEsYUFBV3JGLE1BQUcsSUFBR2lGLEtBQUUxRCxHQUFFLEdBQUV2RSxFQUFDLEdBQUUwRyxNQUFHLEdBQUV3QixLQUFFQyxHQUFFLEdBQUVuSSxJQUFFMEcsSUFBRXZHLEtBQUV3RyxJQUFFTCxJQUFFTSxFQUFDLEtBQUcsRUFBRSxVQUFRLFlBQVU1RCxNQUFHLElBQUcwRCxNQUFHLEdBQUV1QixLQUFFLEdBQUcsR0FBRWpJLElBQUVHLEdBQUMsR0FBRStILEtBQUVDLEdBQUUsR0FBRW5JLElBQUUwRyxJQUFFdkcsS0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxLQUFHSixHQUFFLEdBQUUsR0FBRztBQUFBO0FBQU8sUUFBQUEsR0FBRSxHQUFFLElBQUdxRCxHQUFFZ0QsS0FBRSxHQUFHLENBQUM7QUFBRSxNQUFBcEQsTUFBRyxFQUFFLGVBQWEsTUFBSSxNQUFJLEdBQUUsRUFBRSxlQUFhQSxJQUFFWCxHQUFFLEtBQUt3QixHQUFFLEdBQUU3RCxJQUFFMkcsSUFBRUwsSUFBRU0sSUFBRSxFQUFDLE1BQUssWUFBVyxLQUFJcUIsSUFBRSxPQUFNQyxJQUFFLE1BQUt4QixLQUFFLE1BQUlBLEtBQUUsTUFBSSxRQUFNLFFBQU0sUUFBTyxXQUFVQSxLQUFFLEtBQUcsR0FBRSxTQUFRQSxLQUFFLEtBQUcsR0FBRSxZQUFXQSxLQUFFLEtBQUcsRUFBQyxDQUFDLENBQUM7QUFBQSxJQUFDO0FBQUMsUUFBRzFELE1BQUcsRUFBRSxjQUFhLEVBQUUsVUFBUTtBQUFHO0FBQU0sSUFBQUgsR0FBRSxHQUFFN0MsRUFBQztBQUFBLEVBQUM7QUFBQyxFQUFBd0QsR0FBRSxHQUFFeEQsSUFBRSxVQUFVLEdBQUVpRCxLQUFFLE1BQUlELE1BQUc7QUFBSSxNQUFJOEMsS0FBRWpDLEdBQUUsR0FBRTdELElBQUV1QixJQUFFLEdBQUVJLElBQUUsRUFBQyxNQUFLUCxLQUFFLGtCQUFnQixvQkFBbUIsWUFBV2lCLEdBQUMsQ0FBQztBQUFFLFNBQU0sQ0FBQyxLQUFHLEVBQUUsUUFBTSxVQUFRMkYsSUFBRyxHQUFFaEksSUFBRWdELElBQUU3QyxLQUFFaUIsSUFBRUcsSUFBRSxHQUFFSSxJQUFFbUUsRUFBQyxLQUFHLEVBQUUsZUFBYTlDLElBQUU4QztBQUFFO0FBQUMsU0FBUyxHQUFHLEdBQUU5RixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxFQUFBb0MsR0FBRSxHQUFFeEQsSUFBRSxRQUFRO0FBQUUsTUFBSSxJQUFFLENBQUM7QUFBRSxNQUFHLEVBQUUsU0FBTyxFQUFFLFFBQU0sT0FBSyxLQUFJLEVBQUUsVUFBUTtBQUFHLFdBQU8sSUFBRSxPQUFLRCxHQUFFLEdBQUUsSUFBRyxVQUFTLE9BQU0sRUFBRSxHQUFFOEMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFO0FBQUUsTUFBRSxPQUFLRCxHQUFFLEdBQUUsSUFBRyxVQUFTLE1BQUssR0FBRyxHQUFFLElBQUUsT0FBSyxFQUFFLFVBQVEsTUFBSUEsR0FBRSxHQUFFLEVBQUUsR0FBRUMsTUFBR0EsS0FBRSxhQUFXO0FBQVUsTUFBSXFCLEtBQUUsR0FBRUUsS0FBRTtBQUFFLFNBQUssRUFBRSxVQUFRLE1BQUk7QUFBQyxRQUFJLElBQUUsTUFBSyxFQUFDLFVBQVNJLElBQUUsU0FBUVUsSUFBRSxRQUFPVyxHQUFDLElBQUU7QUFBRSxRQUFHLEVBQUUsUUFBTSxVQUFRaEQsS0FBRSxVQUFRLEVBQUUsUUFBTSxXQUFTLFVBQVEsRUFBRSxTQUFPLE9BQU0sRUFBRSxRQUFNLGVBQWEsY0FBWSxFQUFFLFNBQU8sT0FBTSxJQUFFMkksSUFBRyxHQUFFM0ksSUFBRSxHQUFFLElBQUUsR0FBRSxHQUFFMkIsSUFBRVUsSUFBRVcsRUFBQyxNQUFJLEVBQUUsVUFBUSxVQUFRLElBQUV1RCxHQUFFLEdBQUV2RyxJQUFFLEdBQUUsR0FBRW9CLElBQUUsR0FBRWpCLEtBQUUsR0FBRXdCLElBQUVVLElBQUVXLEVBQUMsSUFBRSxFQUFFLFVBQVEsV0FBUyxJQUFFd0QsR0FBRSxHQUFFeEcsSUFBRSxHQUFFLEdBQUVvQixJQUFFLEdBQUVqQixLQUFFLEdBQUV3QixJQUFFVSxJQUFFVyxFQUFDLElBQUUsRUFBRSxVQUFRLE9BQUssSUFBRStFLElBQUcsR0FBRS9ILElBQUUsR0FBRSxJQUFHRyxLQUFFLEdBQUUsR0FBRWlCLElBQUUsR0FBRU8sSUFBRVUsSUFBRVcsRUFBQyxJQUFHekIsS0FBRSxHQUFFLEVBQUUsZUFBYSxNQUFJeEIsR0FBRSxHQUFFLEVBQUUsSUFBRyxFQUFFLFVBQVEsWUFBVztBQUFDLE1BQUE4QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRXVCLEtBQUU7QUFBRSxVQUFJMEIsS0FBRWtELEdBQUUsR0FBRW5HLElBQUUsR0FBRSxHQUFFLEdBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxVQUFFNkQsR0FBRSxHQUFFN0QsSUFBRTJCLElBQUVVLElBQUVXLElBQUUsRUFBQyxNQUFLLHFCQUFvQixNQUFLLEdBQUUsT0FBTUMsR0FBQyxDQUFDO0FBQUEsSUFBQztBQUFDLFFBQUc1QixNQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUUsQ0FBQ2dDLEdBQUUsR0FBRXJELElBQUUsRUFBRSxLQUFHLEVBQUUsVUFBUTtBQUFHO0FBQUEsRUFBSztBQUFDLFNBQU8sSUFBRSxPQUFLcUIsT0FBSSxLQUFHdEIsR0FBRSxHQUFFLElBQUcsVUFBUyxPQUFNLEVBQUUsR0FBRSxLQUFHLEVBQUUsZUFBYSxVQUFRRyxJQUFHLEVBQUUsVUFBVSxHQUFFcUIsT0FBSSxFQUFFLFNBQU8sTUFBS2lDLEdBQUUsR0FBRXhELElBQUUsRUFBRSxHQUFFO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRSxHQUFFO0FBQUMsRUFBQTZDLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUksSUFBRW1HLEdBQUUsSUFBR25HLEtBQUUsYUFBVyxXQUFVLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBT3dELEdBQUUsR0FBRXhELElBQUUsRUFBRSxHQUFFO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUU7QUFBQyxJQUFFLFNBQU8sRUFBRSxRQUFNLE9BQUs7QUFBSSxNQUFHLEVBQUMsVUFBU0UsSUFBRSxTQUFRLEdBQUUsUUFBT0ksR0FBQyxJQUFFO0FBQUUsRUFBQWtCLEdBQUUsR0FBRTdDLEtBQUUsUUFBTSxVQUFVO0FBQUUsTUFBSXFDLEtBQUVyQyxLQUFFLEtBQUdnRSxHQUFFQyxJQUFHLEdBQUUsSUFBSSxJQUFFO0FBQU8sTUFBR2pFLE1BQUdBLEtBQUUsYUFBVyxXQUFVcUQsR0FBRSxHQUFFckQsSUFBRSxFQUFFO0FBQUUsV0FBTzRJLElBQUcsR0FBRTVJLElBQUVxQyxJQUFFLENBQUMsR0FBRSxHQUFFLEdBQUVqQixJQUFFLEdBQUVDLEVBQUM7QUFBRSxNQUFJMkIsS0FBRTtBQUFFLElBQUUsZ0JBQWM7QUFBSyxNQUFJQyxJQUFFNkMsS0FBRSxDQUFDLEdBQUVNLEtBQUUsR0FBRUMsS0FBRSxHQUFFLEVBQUMsVUFBU0MsSUFBRSxTQUFRTSxJQUFFLFFBQU9ELEdBQUMsSUFBRTtBQUFFLE9BQUksRUFBRSxhQUFXLEdBQUUsRUFBRSxVQUFRLE1BQUk7QUFBQyxRQUFHLEVBQUMsT0FBTUQsSUFBRSxVQUFTdUIsSUFBRSxTQUFRQyxJQUFFLFFBQU9FLEdBQUMsSUFBRTtBQUFFLFFBQUcxQixLQUFFO0FBQU8sTUFBQXJFLE1BQUc2QixJQUFHLEdBQUVsRSxJQUFFcUMsSUFBRSxFQUFFLFlBQVcsR0FBRSxDQUFDLEdBQUVZLEtBQUVtQyxHQUFFLEdBQUVwRixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFaUksSUFBRUMsSUFBRUUsRUFBQyxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxLQUFHLEVBQUUsYUFBVyxLQUFHcEYsTUFBRyxJQUFHcUQsS0FBRSxPQUFLSyxLQUFFLGVBQWEsY0FBWUEsS0FBRSxXQUFTLFdBQVNMLEtBQUUsTUFBSSxFQUFFLFVBQVEsYUFBV0EsS0FBRSxJQUFFckQsTUFBRyxJQUFHQyxLQUFFcUMsR0FBRSxHQUFFdEYsSUFBRWlELElBQUUsR0FBRSxHQUFFZ0YsSUFBRUMsSUFBRUUsRUFBQyxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxPQUFLbkYsS0FBRXNDLEdBQUUsR0FBRXZGLElBQUUsR0FBRSxHQUFFaUksSUFBRUMsSUFBRUUsSUFBRW5GLEVBQUM7QUFBQSxjQUFheUQsS0FBRSxhQUFXO0FBQVEsTUFBQXpELEtBQUV5RCxPQUFJLFVBQVFILEdBQUUsR0FBRXZHLEtBQUUsWUFBV3FDLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRWxDLEtBQUU4SCxJQUFFQyxJQUFFRSxFQUFDLElBQUU1QixHQUFFLEdBQUV4RyxLQUFFLFlBQVdxQyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVsQyxLQUFFOEgsSUFBRUMsSUFBRUUsRUFBQyxHQUFFcEYsTUFBRyxFQUFFLGNBQWFxRCxLQUFFLEdBQUUsRUFBRSxhQUFXLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLE9BQUtyRCxLQUFFLEtBQUdqRCxHQUFFLEdBQUUsR0FBRyxHQUFFa0QsS0FBRXFDLEdBQUUsR0FBRXRGLElBQUVpRCxJQUFFLEdBQUUsR0FBRWdGLElBQUVDLElBQUVFLEVBQUMsR0FBRXBGLE1BQUcsSUFBRyxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsT0FBS0MsS0FBRXNDLEdBQUUsR0FBRXZGLElBQUUsR0FBRSxHQUFFaUksSUFBRUMsSUFBRUUsSUFBRW5GLEVBQUM7QUFBQSxhQUFZeUQsT0FBSSxJQUFHO0FBQUMsTUFBQXpELEtBQUU4RSxJQUFHLEdBQUUvSCxJQUFFcUMsSUFBRSxJQUFHLEdBQUVsQyxLQUFFLEdBQUUsR0FBRSxHQUFFOEgsSUFBRUMsSUFBRUUsRUFBQyxHQUFFLEVBQUUsZUFBYSxNQUFJckksR0FBRSxHQUFFLEVBQUUsR0FBRXNHLEtBQUUsR0FBRUQsT0FBSSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsT0FBS04sR0FBRSxLQUFLN0MsRUFBQyxHQUFFRCxNQUFHO0FBQUU7QUFBQSxJQUFLLE9BQUs7QUFBQyxVQUFHQSxNQUFHLElBQUdDLEtBQUVrRCxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFaUksSUFBRUMsSUFBRUUsRUFBQyxHQUFFaEMsT0FBSSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsT0FBS04sR0FBRSxLQUFLN0MsRUFBQyxHQUFFLEVBQUUsVUFBUSxPQUFLbUQsT0FBSUEsS0FBRSxHQUFFTixLQUFFLENBQUM3QyxFQUFDLEtBQUltRCxJQUFFO0FBQUMsZUFBSy9DLEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFO0FBQUcsVUFBQThGLEdBQUUsS0FBS0ssR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxDQUFDO0FBQUUsVUFBRSxhQUFXLEdBQUVpRCxLQUFFWSxHQUFFLEdBQUU3RCxJQUFFc0csSUFBRU0sSUFBRUQsSUFBRSxFQUFDLE1BQUssc0JBQXFCLGFBQVliLEdBQUMsQ0FBQztBQUFBLE1BQUM7QUFBQyxhQUFPdEMsR0FBRSxHQUFFeEQsSUFBRSxFQUFFLEdBQUUsRUFBRSxlQUFhZ0QsSUFBRUM7QUFBQSxJQUFDO0FBQUMsUUFBR21ELE9BQUksRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLE9BQUtOLEdBQUUsS0FBSzdDLEVBQUMsR0FBRSxDQUFDSSxHQUFFLEdBQUVyRCxLQUFFLE9BQU0sRUFBRTtBQUFFO0FBQU0sUUFBR29HLE9BQUlBLEtBQUUsR0FBRU4sS0FBRSxDQUFDN0MsRUFBQyxJQUFHLEVBQUUsVUFBUSxJQUFHO0FBQUMsTUFBQUQsTUFBRztBQUFFO0FBQUEsSUFBSztBQUFBLEVBQUM7QUFBQyxTQUFPb0QsT0FBSSxFQUFFLGFBQVcsR0FBRW5ELEtBQUVZLEdBQUUsR0FBRTdELElBQUVzRyxJQUFFTSxJQUFFRCxJQUFFLEVBQUMsTUFBSyxzQkFBcUIsYUFBWWIsR0FBQyxDQUFDLElBQUd0QyxHQUFFLEdBQUV4RCxJQUFFLEVBQUUsR0FBRWdELEtBQUUsTUFBSUEsS0FBRSxLQUFHakQsR0FBRSxHQUFFLEdBQUcsR0FBRWlELE1BQUcsRUFBRSxlQUFhLE1BQUksTUFBSSxJQUFFLEVBQUUsZUFBYSxNQUFJLE1BQUksR0FBRSxFQUFFLFVBQVEsTUFBSUEsS0FBRSxNQUFJakQsR0FBRSxHQUFFLEVBQUUsR0FBRUMsS0FBRSxXQUFTZ0QsS0FBRSxPQUFLakQsR0FBRSxHQUFFLEVBQUUsR0FBRUMsS0FBRSxXQUFTZ0QsS0FBRSxPQUFLakQsR0FBRSxHQUFFLEVBQUUsR0FBRXNHLE9BQUksRUFBRSxTQUFPLE1BQUt1QyxJQUFHLEdBQUU1SSxJQUFFcUMsSUFBRStELEtBQUVOLEtBQUUsQ0FBQzdDLEVBQUMsR0FBRSxHQUFFLEdBQUU3QixJQUFFLEdBQUVDLEVBQUMsTUFBSTJCLEtBQUUsS0FBR2pELEdBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxnQkFBYyxFQUFFLGVBQWEsT0FBSyxNQUFJaUQsSUFBRWhELEtBQUUsTUFBSTZELEdBQUUsR0FBRTdELElBQUV1QixJQUFFLEdBQUVJLElBQUUsRUFBQyxNQUFLLDJCQUEwQixZQUFXc0IsR0FBQyxDQUFDLElBQUVBO0FBQUU7QUFBQyxTQUFTbUUsSUFBRyxHQUFFcEgsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxNQUFHLEVBQUMsWUFBV2lCLEdBQUMsSUFBRSxHQUFFLElBQUUrRCxHQUFFLEdBQUVuRixJQUFFLENBQUM7QUFBRSxNQUFHLEVBQUUsYUFBVyxHQUFFLEVBQUUsVUFBUSxJQUFHO0FBQUMsUUFBSXFCO0FBQUUsV0FBT3JCLEtBQUUsT0FBS3FCLEtBQUUwQyxJQUFHLEdBQUUvRCxJQUFFb0IsRUFBQyxJQUFHLEVBQUUsU0FBTyxFQUFFLFFBQU0sT0FBSyxLQUFJLEdBQUcsR0FBRXBCLElBQUVxQixJQUFFLENBQUMsQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFbEIsR0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPO0FBQUM7QUFBQyxTQUFTeUYsSUFBRyxHQUFFNUYsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRTtBQUFDLEVBQUFILE1BQUdyQixHQUFFLEdBQUUsRUFBRSxHQUFFSSxPQUFHSixHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsU0FBTztBQUFLLE1BQUk0QixLQUFFM0IsS0FBRSxLQUFHK0QsSUFBRyxHQUFFL0QsSUFBRSxDQUFDLElBQUU7QUFBTyxTQUFPLEdBQUcsR0FBRUEsSUFBRTJCLElBQUUsQ0FBQyxDQUFDLEdBQUUsR0FBRU4sSUFBRUUsSUFBRSxDQUFDO0FBQUM7QUFBQyxTQUFTcUgsSUFBRyxHQUFFNUksSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUU7QUFBQyxFQUFBcEIsT0FBR0osR0FBRSxHQUFFLEVBQUU7QUFBRSxXQUFRLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTyxFQUFFO0FBQUUsTUFBRSxHQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQUUsU0FBTyxHQUFHLEdBQUVDLElBQUUsR0FBRSxHQUFFb0IsSUFBRSxHQUFFQyxJQUFFRSxFQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXZCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxJQUFFO0FBQUMsSUFBRSxRQUFNLEtBQUd0QixHQUFFLEdBQUUsRUFBRSxHQUFFeUQsR0FBRSxHQUFFeEQsS0FBRSxPQUFNLEVBQUUsR0FBRUEsTUFBR0EsS0FBRSxZQUFVLFdBQVNHLE9BQUc7QUFBRyxNQUFJb0IsS0FBRSxFQUFFLFVBQVEsU0FBUTtBQUFFLE1BQUcsS0FBRyxFQUFFLGVBQWEsVUFBUXJCLElBQUcsRUFBRSxVQUFVLEdBQUVxQjtBQUFFLFFBQUU0RSxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUEsT0FBTTtBQUFDLFlBQU8sTUFBSSxJQUFFZ0UsR0FBRSxHQUFFLEdBQUcsSUFBRyxJQUFFcUQsSUFBRyxJQUFHckgsS0FBRSxZQUFVLE9BQUssU0FBTyxXQUFVLEdBQUUsSUFBRyxRQUFPLE1BQU0sR0FBRSxFQUFFLE9BQU07QUFBQSxNQUFDLEtBQUs7QUFBUyxVQUFFLFFBQU0sS0FBR0QsR0FBRSxHQUFFLEdBQUc7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFBLE1BQVMsS0FBSztBQUFBLE1BQVMsS0FBSztBQUFHLFFBQUFBLEdBQUUsR0FBRSxHQUFHO0FBQUEsTUFBRSxLQUFLO0FBQVMsVUFBRSxRQUFNLEtBQUdBLEdBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxTQUFPO0FBQUs7QUFBQSxJQUFLO0FBQUMsS0FBQyxFQUFFLFFBQU0sYUFBVyxXQUFTLEVBQUUsRUFBRSxRQUFNLE1BQUlBLEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDLElBQUcsRUFBRSxRQUFNLGNBQVksWUFBVXJELEdBQUUsR0FBRSxHQUFHO0FBQUEsRUFBQztBQUFDLFNBQU8sRUFBRSxhQUFXLEdBQUU4RCxHQUFFLEdBQUU3RCxJQUFFb0IsSUFBRSxHQUFFQyxJQUFFLEVBQUMsTUFBSywyQkFBMEIsUUFBTyxHQUFFLE1BQUssR0FBRSxPQUFNbEIsUUFBSSxHQUFFLFlBQVdvQixHQUFDLENBQUM7QUFBQztBQUFDLFNBQVN1RyxJQUFHLEdBQUU5SCxJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLEVBQUFxRCxHQUFFLEdBQUV4RCxJQUFFLFFBQVEsR0FBRSxFQUFFLFNBQU8sRUFBRSxRQUFNLE9BQUs7QUFBSSxNQUFJb0IsS0FBRSxDQUFDO0FBQUUsTUFBR2lDLEdBQUUsR0FBRXJELElBQUUsRUFBRTtBQUFFLFdBQU9vQjtBQUFFLEVBQUFwQixNQUFHQSxLQUFFLGFBQVc7QUFBVSxNQUFJLElBQUU7QUFBRSxTQUFLLEVBQUUsVUFBUSxNQUFJO0FBQUMsUUFBSXFCLElBQUUsRUFBQyxVQUFTRSxJQUFFLFNBQVEsR0FBRSxRQUFPSSxHQUFDLElBQUU7QUFBRSxRQUFHLEVBQUUsUUFBTSxVQUFRM0IsS0FBRSxVQUFRLEVBQUUsUUFBTSxXQUFTLFVBQVEsRUFBRSxTQUFPLE9BQU0sRUFBRSxRQUFNLGVBQWEsY0FBWSxFQUFFLFNBQU8sT0FBTXFCLEtBQUVzSCxJQUFHLEdBQUUzSSxJQUFFLEdBQUVHLE1BQUUsR0FBRSxHQUFFb0IsSUFBRSxHQUFFSSxFQUFDLE1BQUksRUFBRSxVQUFRLFVBQVFOLEtBQUVrRixHQUFFLEdBQUV2RyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEtBQUUsR0FBRW9CLElBQUUsR0FBRUksRUFBQyxJQUFFLEVBQUUsVUFBUSxXQUFTTixLQUFFbUYsR0FBRSxHQUFFeEcsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFLEdBQUVvQixJQUFFLEdBQUVJLEVBQUMsSUFBRSxFQUFFLFVBQVEsS0FBR04sS0FBRTBHLElBQUcsR0FBRS9ILElBQUUsR0FBRSxJQUFHRyxLQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVvQixJQUFFLEdBQUVJLEVBQUMsSUFBRTVCLEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDLEdBQUUsSUFBRSxHQUFFLEVBQUUsZUFBYSxNQUFJckQsR0FBRSxHQUFFLEVBQUUsSUFBRyxFQUFFLFVBQVEsWUFBVztBQUFDLE1BQUE4QyxHQUFFLEdBQUU3QyxLQUFFLEtBQUssR0FBRSxJQUFFO0FBQUUsVUFBSXFDLEtBQUU4RCxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsTUFBQXFCLEtBQUV3QyxHQUFFLEdBQUU3RCxJQUFFdUIsSUFBRSxHQUFFSSxJQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBS04sSUFBRSxPQUFNZ0IsR0FBQyxDQUFDO0FBQUEsSUFBQztBQUFDLFFBQUdqQixHQUFFLEtBQUtDLEVBQUMsR0FBRSxDQUFDZ0MsR0FBRSxHQUFFckQsSUFBRSxFQUFFLEtBQUcsRUFBRSxVQUFRO0FBQUc7QUFBQSxFQUFLO0FBQUMsU0FBTyxNQUFJLEVBQUUsU0FBTyxNQUFLLE1BQUksS0FBR0EsS0FBRSxTQUFPLEVBQUUsZUFBYSxVQUFRRSxJQUFHLEVBQUUsVUFBVSxHQUFFc0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFLEdBQUVvQjtBQUFDO0FBQUMsU0FBU3lILElBQUcsR0FBRTdJLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsTUFBRyxFQUFDLE9BQU1DLEdBQUMsSUFBRTtBQUFFLE1BQUdBLEtBQUUsVUFBUztBQUFDLFFBQUdBLE9BQUksVUFBUztBQUFDLE1BQUF3QixHQUFFLEdBQUU3QyxLQUFFLFVBQVUsR0FBRSxFQUFFLGFBQVc7QUFBRSxVQUFJdUIsS0FBRStGLElBQUcsR0FBRXRILEVBQUM7QUFBRSxhQUFPNkksSUFBRyxHQUFFN0ksSUFBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLG9CQUFtQixRQUFPLEdBQUUsVUFBUyxPQUFHLFVBQVNHLEdBQUMsQ0FBQyxHQUFFLEdBQUVwQixLQUFFaUIsSUFBRSxDQUFDO0FBQUEsSUFBQyxXQUFTQyxPQUFJLFVBQVM7QUFBQyxNQUFBd0IsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsVUFBRyxFQUFDLFVBQVN1QixJQUFFLFNBQVEsR0FBRSxRQUFPSSxHQUFDLElBQUUsR0FBRVUsS0FBRW9ELEdBQUUsR0FBRXpGLElBQUUsR0FBRSxHQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUUsYUFBTzZCLEdBQUUsR0FBRXhELElBQUUsRUFBRSxHQUFFLEVBQUUsYUFBVyxHQUFFNkksSUFBRyxHQUFFN0ksSUFBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLG9CQUFtQixRQUFPLEdBQUUsVUFBUyxNQUFHLFVBQVNpQixHQUFDLENBQUMsR0FBRSxHQUFFbEMsS0FBRWlCLElBQUUsQ0FBQztBQUFBLElBQUMsV0FBU0MsT0FBSSxZQUFVQSxPQUFJO0FBQVMsYUFBTyxFQUFFLGFBQVcsR0FBRXdILElBQUcsR0FBRTdJLElBQUU2RCxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFLEVBQUMsTUFBSyw0QkFBMkIsS0FBSSxHQUFFLE9BQU0sRUFBRSxVQUFRLFdBQVNvRyxJQUFHLEdBQUV4SCxLQUFFLEtBQUssSUFBRXlILElBQUcsR0FBRXpILElBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsQ0FBQztBQUFBLEVBQUM7QUFBQyxTQUFPO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLE1BQUksSUFBRStELEdBQUUsR0FBRW5GLEtBQUUsT0FBTSxDQUFDLEdBQUUsRUFBQyxVQUFTcUIsSUFBRSxTQUFRRSxJQUFFLFFBQU8sRUFBQyxJQUFFO0FBQUUsTUFBRzhCLEdBQUUsR0FBRXJELElBQUUsUUFBUSxHQUFFO0FBQUMsUUFBR0EsS0FBRSxZQUFVLEVBQUUsVUFBUTtBQUFPLGFBQU8sRUFBRSxhQUFXLEdBQUUsR0FBRyxHQUFFQSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLEVBQUM7QUFBRSxJQUFBckIsR0FBRSxHQUFFLEVBQUU7QUFBQSxFQUFDO0FBQUMsSUFBRSxhQUFXLElBQUcsRUFBRSxRQUFNLGNBQVksWUFBVUEsR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUM7QUFBRSxNQUFJekIsS0FBRXlELEdBQUUsR0FBRXBGLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVxQixJQUFFRSxJQUFFLENBQUM7QUFBRSxFQUFBdkIsTUFBR0EsS0FBRSxhQUFXLFdBQVUsRUFBRSxVQUFRLFlBQVVELEdBQUUsR0FBRSxHQUFHO0FBQUUsTUFBSXNDLEtBQUV3RyxJQUFHLEdBQUU3SSxJQUFFMkIsSUFBRSxHQUFFTixJQUFFRSxJQUFFLENBQUM7QUFBRSxTQUFPLEVBQUUsYUFBVyxHQUFFc0MsR0FBRSxHQUFFN0QsSUFBRSxHQUFFRyxLQUFFaUIsSUFBRSxFQUFDLE1BQUssaUJBQWdCLFFBQU9pQixJQUFFLFdBQVUsRUFBRSxVQUFRLFdBQVNrRixJQUFHLEdBQUV2SCxJQUFFLENBQUMsSUFBRSxDQUFDLEVBQUMsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLE1BQUksSUFBRStELEdBQUUsR0FBRW5GLElBQUUsQ0FBQztBQUFFLFNBQU82RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxnQkFBZSxNQUFLLEdBQUUsVUFBUyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVNzRSxJQUFHLEdBQUUxRixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxTQUFPLEVBQUUsVUFBUSxVQUFRckIsR0FBRSxHQUFFLEVBQUUsR0FBRUMsS0FBRSxXQUFTLEVBQUUsVUFBUSxVQUFRRCxHQUFFLEdBQUUsRUFBRSxJQUFHLEVBQUUsUUFBTSxlQUFhLGNBQVksRUFBRSxTQUFPLE1BQUs2RixJQUFHLEdBQUU1RixJQUFFLEVBQUUsWUFBV21GLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEtBQUVpQixFQUFDO0FBQUM7QUFBQyxTQUFTdUUsSUFBRyxHQUFFM0YsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUVDLElBQUVFLElBQUUsR0FBRTtBQUFDLEVBQUFzQixHQUFFLEdBQUU3QyxLQUFFLEtBQUs7QUFBRSxNQUFJMkIsS0FBRTNCLEtBQUUsS0FBR2dFLEdBQUVDLElBQUcsR0FBRSxJQUFJLElBQUU7QUFBTyxNQUFHakUsTUFBR0EsS0FBRSxhQUFXLFdBQVVxRCxHQUFFLEdBQUVyRCxJQUFFLEVBQUU7QUFBRSxXQUFPLEVBQUUsVUFBUSxNQUFJLElBQUUsS0FBR0QsR0FBRSxHQUFFLEVBQUUsR0FBRTZJLElBQUcsR0FBRTVJLElBQUUyQixJQUFFLENBQUMsR0FBRSxHQUFFLEdBQUVOLElBQUVFLElBQUUsQ0FBQyxLQUFHc0MsR0FBRSxHQUFFN0QsSUFBRXFCLElBQUVFLElBQUUsR0FBRSxFQUFDLE1BQUssa0JBQWlCLFFBQU8sR0FBRSxXQUFVLENBQUMsRUFBQyxDQUFDO0FBQUUsTUFBSWMsS0FBRSxHQUFFVyxLQUFFLE1BQUtDLEtBQUU7QUFBRSxJQUFFLGdCQUFjLEVBQUUsZUFBYSxNQUFJLE9BQUs7QUFBSSxNQUFJNkMsS0FBRSxDQUFDO0FBQUUsU0FBSyxFQUFFLFVBQVEsTUFBSTtBQUFDLFFBQUcsRUFBQyxPQUFNTSxJQUFFLFVBQVNDLElBQUUsU0FBUUMsSUFBRSxRQUFPTSxHQUFDLElBQUU7QUFBRSxRQUFHUixLQUFFO0FBQU8sTUFBQXpFLE1BQUd1QyxJQUFHLEdBQUVsRSxJQUFFMkIsSUFBRSxFQUFFLFlBQVd4QixLQUFFLENBQUMsR0FBRTZDLEtBQUVvQyxHQUFFLEdBQUVwRixJQUFFRyxLQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRWtHLElBQUVDLElBQUVNLEVBQUMsR0FBRSxFQUFFLFVBQVEsTUFBSSxFQUFFLFVBQVEsS0FBRyxFQUFFLGFBQVcsS0FBR3ZFLE1BQUcsSUFBR1ksS0FBRSxNQUFJbUQsS0FBRSxlQUFhLFlBQVUsRUFBRSxTQUFPLE9BQUtBLEtBQUUsV0FBUyxVQUFRLEVBQUUsU0FBTyxRQUFNLEVBQUUsVUFBUSxhQUFXbkQsS0FBRSxJQUFFWixNQUFHLElBQUdXLEtBQUVzQyxHQUFFLEdBQUV0RixJQUFFZ0QsSUFBRSxHQUFFLEdBQUVxRCxJQUFFQyxJQUFFTSxFQUFDLEdBQUUsRUFBRSxVQUFRLE1BQUksRUFBRSxVQUFRLE9BQUs1RCxLQUFFdUMsR0FBRSxHQUFFdkYsSUFBRSxHQUFFLEdBQUVxRyxJQUFFQyxJQUFFTSxJQUFFNUQsRUFBQztBQUFBLGFBQVlvRCxLQUFFO0FBQVEsTUFBQXBELEtBQUVvRCxPQUFJLFVBQVFHLEdBQUUsR0FBRXZHLElBQUUyQixJQUFFLEdBQUUsR0FBRSxHQUFFeEIsS0FBRWlCLElBQUVpRixJQUFFQyxJQUFFTSxFQUFDLElBQUVKLEdBQUUsR0FBRXhHLElBQUUyQixJQUFFLEdBQUUsR0FBRSxHQUFFeEIsS0FBRWlCLElBQUVpRixJQUFFQyxJQUFFTSxFQUFDLEdBQUV2RSxNQUFHLEVBQUUsY0FBYVksS0FBRSxHQUFFLEVBQUUsVUFBUSxNQUFJLEVBQUUsVUFBUSxPQUFLWixLQUFFLEtBQUd0QyxHQUFFLEdBQUUsR0FBRyxHQUFFaUQsS0FBRXNDLEdBQUUsR0FBRXRGLElBQUVnRCxJQUFFLEdBQUUsR0FBRXFELElBQUVDLElBQUVNLEVBQUMsR0FBRXZFLE1BQUcsS0FBSSxFQUFFLFFBQU0sYUFBVyxZQUFVVyxLQUFFLEdBQUcsR0FBRWhELElBQUUsR0FBRXFCLElBQUVFLElBQUUsR0FBRSxHQUFFNkUsSUFBRXBELEVBQUMsSUFBR0ssR0FBRSxHQUFFckQsS0FBRSxPQUFNLEVBQUUsTUFBSWdELEtBQUUsR0FBRyxHQUFFaEQsSUFBRWdELElBQUUzQixJQUFFRSxJQUFFLENBQUM7QUFBQSxhQUFZNkUsT0FBSTtBQUFHLE1BQUFwRCxLQUFFK0UsSUFBRyxHQUFFL0gsSUFBRTJCLElBQUUsSUFBR3hCLEtBQUVpQixJQUFFLEdBQUUsR0FBRSxHQUFFaUYsSUFBRUMsSUFBRU0sRUFBQyxHQUFFdkUsT0FBSSxFQUFFLFVBQVEsS0FBRyxJQUFFLE1BQUksRUFBRSxjQUFhWSxLQUFFO0FBQUEsU0FBTTtBQUFDLFdBQUlELEtBQUVtRCxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFcUcsSUFBRUMsSUFBRU0sRUFBQyxHQUFFdkUsS0FBRSxFQUFFLFlBQVd5RCxHQUFFLEtBQUs5QyxFQUFDLEdBQUVLLEdBQUUsR0FBRXJELEtBQUUsT0FBTSxFQUFFO0FBQUcsUUFBQThGLEdBQUUsS0FBS0ssR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRXFHLElBQUVDLElBQUVNLEVBQUMsQ0FBQztBQUFFLGFBQU92RSxNQUFHLEVBQUUsWUFBV21CLEdBQUUsR0FBRXhELElBQUUsRUFBRSxHQUFFLEVBQUUsZUFBYXFDLEtBQUUsSUFBRyxFQUFFLGFBQVcsR0FBRXdCLEdBQUUsR0FBRTdELElBQUVxQixJQUFFRSxJQUFFLEdBQUUsRUFBQyxNQUFLLGtCQUFpQixRQUFPLEdBQUUsV0FBVXVFLEdBQUMsQ0FBQztBQUFBLElBQUM7QUFBQyxRQUFHQSxHQUFFLEtBQUs5QyxFQUFDLEdBQUUsQ0FBQ0ssR0FBRSxHQUFFckQsS0FBRSxPQUFNLEVBQUU7QUFBRTtBQUFBLEVBQUs7QUFBQyxTQUFPd0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFLEdBQUVxQyxNQUFHLEVBQUUsZUFBYSxNQUFJLE1BQUksSUFBRSxFQUFFLGVBQWEsTUFBSSxNQUFJLEdBQUUsRUFBRSxVQUFRLE1BQUlBLEtBQUUsTUFBSXRDLEdBQUUsR0FBRSxFQUFFLElBQUcsRUFBRSxRQUFNLEtBQUcsSUFBRSxNQUFJQSxHQUFFLEdBQUUsRUFBRSxHQUFFc0MsS0FBRSxPQUFLdEMsR0FBRSxHQUFFLEVBQUUsR0FBRUMsS0FBRSxXQUFTcUMsS0FBRSxPQUFLdEMsR0FBRSxHQUFFLEVBQUUsR0FBRWtELE9BQUksRUFBRSxTQUFPLE1BQUsyRixJQUFHLEdBQUU1SSxJQUFFMkIsSUFBRW1FLElBQUUsR0FBRSxHQUFFekUsSUFBRUUsSUFBRSxDQUFDLE1BQUljLEtBQUUsS0FBR3RDLEdBQUUsR0FBRSxFQUFFLEdBQUUsRUFBRSxhQUFXLEdBQUU4RCxHQUFFLEdBQUU3RCxJQUFFcUIsSUFBRUUsSUFBRSxHQUFFLEVBQUMsTUFBSyxrQkFBaUIsUUFBTyxHQUFFLFdBQVV1RSxHQUFDLENBQUM7QUFBRTtBQUFDLFNBQVMsR0FBRyxHQUFFOUYsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxNQUFHLEVBQUMsVUFBU2lCLElBQUUsYUFBWSxHQUFFLFlBQVdDLEdBQUMsSUFBRTtBQUFFLFNBQU93QixHQUFFLEdBQUU3QyxFQUFDLEdBQUUsRUFBRSxhQUFXLEdBQUVBLEtBQUUsTUFBSTZELEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFLEVBQUMsTUFBSyxXQUFVLE9BQU1rQixJQUFFLE9BQU0sR0FBRSxLQUFJRCxHQUFDLENBQUMsSUFBRXlDLEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFLEVBQUMsTUFBSyxXQUFVLE9BQU1rQixJQUFFLE9BQU0sRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXJCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFO0FBQUMsRUFBQXBCLE1BQUdBLEtBQUUsV0FBUyxRQUFNO0FBQVMsTUFBSXFCLEtBQUVxRCxJQUFHLEdBQUUxRSxFQUFDO0FBQUUsRUFBQXFCLEdBQUUsV0FBU2xCLE1BQUUsRUFBRSxVQUFTaUIsS0FBRSxFQUFFLFNBQVEsSUFBRSxFQUFFLFNBQVEsRUFBRSxrQkFBa0IsV0FBUyxFQUFFLGtCQUFrQixLQUFLLEdBQUdDLEVBQUMsR0FBRUEsS0FBRSxFQUFFLG1CQUFrQixFQUFFLG9CQUFrQixDQUFDLElBQUd3QixHQUFFLEdBQUU3QyxFQUFDO0FBQUUsTUFBSXVCLEtBQUUsTUFBSyxJQUFFLE1BQUssRUFBQyxZQUFXSSxHQUFDLElBQUU7QUFBRSxJQUFFLFFBQU0sUUFBTSxFQUFFLFVBQVEsU0FBT2dDLElBQUcsR0FBRTNELElBQUUsRUFBRSxLQUFLLEtBQUdELEdBQUUsR0FBRSxHQUFHLElBQUcsRUFBRSxRQUFNLGVBQWEsYUFBV0EsR0FBRSxHQUFFLEdBQUcsR0FBRSxNQUFJbUUsSUFBRyxHQUFFbEUsSUFBRSxHQUFFMkIsSUFBRSxJQUFHLENBQUMsR0FBRSxLQUFHLElBQUUsS0FBRyxHQUFHLEdBQUVBLEVBQUMsSUFBR0osS0FBRTRELEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxLQUFHLElBQUUsS0FBR0QsR0FBRSxHQUFFLElBQUcsT0FBTztBQUFFLE1BQUlzQyxLQUFFckM7QUFBRSxFQUFBcUQsR0FBRSxHQUFFckQsS0FBRSxPQUFNLEtBQUssS0FBRyxJQUFFeUcsR0FBRSxHQUFFekcsSUFBRSxHQUFFLEdBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxHQUFFcUMsTUFBRyxVQUFRQSxNQUFHQSxLQUFFLFVBQVE7QUFBTyxNQUFJVyxLQUFFOEYsSUFBRyxHQUFFekcsSUFBRXJDLElBQUUsR0FBRSxHQUFFLEdBQUUsQ0FBQztBQUFFLFNBQU82RCxHQUFFLEdBQUU3RCxJQUFFRyxLQUFFaUIsSUFBRSxHQUFFcEIsS0FBRSxJQUFFLEVBQUMsTUFBSyxvQkFBbUIsSUFBR3VCLElBQUUsWUFBVyxHQUFFLFlBQVdGLElBQUUsTUFBSzJCLEdBQUMsSUFBRSxFQUFDLE1BQUssb0JBQW1CLElBQUd6QixJQUFFLFlBQVcsR0FBRSxNQUFLeUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRWhELElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLE1BQUksSUFBRSxNQUFLQyxLQUFFO0FBQUssRUFBQXJCLE1BQUdBLEtBQUUsT0FBSyxZQUFVO0FBQVMsTUFBSXVCLEtBQUVtRCxJQUFHLEdBQUUxRSxFQUFDO0FBQUUsRUFBQXVCLEdBQUUsV0FBUyxJQUFFLEVBQUUsVUFBU3BCLE1BQUUsRUFBRSxTQUFRaUIsS0FBRSxFQUFFLFNBQVF5QixHQUFFLEdBQUU3QyxFQUFDLEdBQUUsRUFBRSxRQUFNLFFBQU0sRUFBRSxVQUFRLFVBQVEyRCxJQUFHLEdBQUUzRCxJQUFFLEVBQUUsS0FBSyxLQUFHRCxHQUFFLEdBQUUsR0FBRyxJQUFHLEVBQUUsUUFBTSxlQUFhLGFBQVdBLEdBQUUsR0FBRSxHQUFHLEdBQUUsSUFBRW9GLEdBQUUsR0FBRW5GLElBQUUsQ0FBQztBQUFHLE1BQUksSUFBRUE7QUFBRSxFQUFBcUQsR0FBRSxHQUFFckQsS0FBRSxPQUFNLEtBQUssS0FBR3FCLEtBQUVvRixHQUFFLEdBQUV6RyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLEdBQUUsS0FBRyxVQUFRLEtBQUcsSUFBRSxVQUFRO0FBQU8sTUFBSTJCLEtBQUVtSCxJQUFHLEdBQUUsR0FBRTlJLElBQUUsUUFBTyxHQUFFLEdBQUUsQ0FBQztBQUFFLFNBQU8sRUFBRSxhQUFXLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFcEIsS0FBRSxJQUFFLEVBQUMsTUFBSyxtQkFBa0IsSUFBRyxHQUFFLFlBQVdxQixJQUFFLFlBQVdFLElBQUUsTUFBS0ksR0FBQyxJQUFFLEVBQUMsTUFBSyxtQkFBa0IsSUFBRyxHQUFFLFlBQVdOLElBQUUsTUFBS00sR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTK0MsSUFBRyxHQUFFMUUsSUFBRTtBQUFDLE1BQUksSUFBRSxDQUFDO0FBQUUsTUFBR0EsS0FBRTtBQUFFLFdBQUssRUFBRSxVQUFRO0FBQUssUUFBRSxLQUFLLEdBQUcsR0FBRUEsSUFBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxDQUFDO0FBQUUsU0FBTztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsRUFBQTBDLEdBQUUsR0FBRTdDLEtBQUUsS0FBSztBQUFFLE1BQUlvQixLQUFFZ0UsR0FBRSxHQUFFcEYsSUFBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEdBQUM7QUFBRSxTQUFPaUIsS0FBRWtFLEdBQUUsR0FBRXRGLElBQUVvQixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVqQixHQUFDLEdBQUUwRCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUssYUFBWSxZQUFXaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTMEgsSUFBRyxHQUFFOUksSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxNQUFHLEVBQUMsVUFBU0MsSUFBRSxTQUFRRSxJQUFFLFFBQU8sRUFBQyxJQUFFO0FBQUUsRUFBQWlDLEdBQUUsR0FBRXhELEtBQUUsT0FBTSxPQUFPLEdBQUVBLE1BQUdBLEtBQUUsYUFBVztBQUFVLE1BQUkyQixLQUFFLEVBQUUsUUFBTTtBQUFHLElBQUUsU0FBTyxFQUFFLFFBQU0sTUFBSTtBQUFHLE1BQUlVLEtBQUUsQ0FBQyxHQUFFVztBQUFFLFNBQUssRUFBRSxVQUFRLGNBQVk7QUFBQyxRQUFJQyxLQUFFO0FBQUUsUUFBR0QsS0FBRTBCLElBQUcsR0FBRTFFLEVBQUMsR0FBRWlELEtBQUVELEdBQUUsUUFBT0MsS0FBRSxLQUFHLEVBQUUsZUFBYSxpQkFBZWxELEdBQUUsR0FBRSxHQUFHLEdBQUUsRUFBRSxVQUFRLGNBQVlBLEdBQUUsR0FBRSxHQUFHLEdBQUVzRCxHQUFFLEdBQUVyRCxJQUFFLFVBQVUsR0FBRTtBQUFDLE1BQUFpRCxLQUFFLEtBQUdsRCxHQUFFLEdBQUUsR0FBRztBQUFFO0FBQUEsSUFBUTtBQUFDLElBQUFzQyxHQUFFLEtBQUswRyxJQUFHLEdBQUUvSSxJQUFFLEdBQUUsR0FBRUcsS0FBRTZDLElBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUM7QUFBQSxFQUFDO0FBQUMsU0FBT1EsR0FBRSxHQUFFcEMsS0FBRSxJQUFFcEIsS0FBRSxRQUFNQSxJQUFFLFVBQVUsR0FBRSxFQUFFLFFBQU0sRUFBRSxRQUFNLE1BQUkyQixJQUFFa0MsR0FBRSxHQUFFN0QsSUFBRXFCLElBQUVFLElBQUUsR0FBRSxFQUFDLE1BQUssYUFBWSxNQUFLYyxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVMwRyxJQUFHLEdBQUUvSSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFSSxJQUFFO0FBQUMsTUFBSVUsS0FBRSxJQUFFLEtBQUcsR0FBRVcsS0FBRSxNQUFLLEVBQUMsT0FBTUMsSUFBRSxVQUFTNkMsSUFBRSxTQUFRTSxJQUFFLFFBQU9DLEdBQUMsSUFBRTtBQUFFLE1BQUdwRCxLQUFFO0FBQU8sWUFBT0QsS0FBRW1DLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxHQUFFaUQsSUFBRTtBQUFBLE1BQUMsS0FBSztBQUFNLFlBQUcsQ0FBQyxLQUFHLEVBQUUsVUFBUSxhQUFXLEVBQUUsUUFBTSxhQUFXLFdBQVMsRUFBRSxVQUFRO0FBQVcsaUJBQU84RixJQUFHLEdBQUUvSSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRUUsSUFBRSxHQUFFSSxFQUFDO0FBQUU7QUFBQSxNQUFNLEtBQUs7QUFBTyxZQUFHLEVBQUUsVUFBUSxZQUFVLEVBQUUsRUFBRSxRQUFNLElBQUc7QUFBQyxjQUFHM0IsS0FBRSxNQUFJLEVBQUUsUUFBTSxnQkFBYztBQUFXLG1CQUFPZ0osSUFBRyxHQUFFaEosSUFBRWdELElBQUVYLElBQUVqQixJQUFFMEUsSUFBRU0sSUFBRUMsRUFBQztBQUFFLFVBQUFoRSxNQUFHLE1BQUlrQixJQUFHLEdBQUV2RCxJQUFFLE9BQU8sSUFBRSxJQUFFO0FBQUEsUUFBRTtBQUFDO0FBQUEsTUFBTSxLQUFLO0FBQU0sWUFBRyxFQUFFLFVBQVEsVUFBUztBQUFDLGNBQUdBLEtBQUUsTUFBSSxFQUFFLFFBQU0sZ0JBQWM7QUFBVyxtQkFBT2dKLElBQUcsR0FBRWhKLElBQUVnRCxJQUFFWCxJQUFFakIsSUFBRTBFLElBQUVNLElBQUVDLEVBQUM7QUFBRSxVQUFBaEUsTUFBRztBQUFBLFFBQUc7QUFBQztBQUFBLE1BQU0sS0FBSztBQUFNLFlBQUcsRUFBRSxVQUFRLFVBQVM7QUFBQyxjQUFHckMsS0FBRSxNQUFJLEVBQUUsUUFBTSxnQkFBYztBQUFXLG1CQUFPZ0osSUFBRyxHQUFFaEosSUFBRWdELElBQUVYLElBQUVqQixJQUFFMEUsSUFBRU0sSUFBRUMsRUFBQztBQUFFLFVBQUFoRSxNQUFHO0FBQUEsUUFBRztBQUFDO0FBQUEsSUFBSztBQUFBLFdBQVNZLE9BQUk7QUFBUyxJQUFBWixNQUFHLEdBQUVXLEtBQUUsR0FBRyxHQUFFLEdBQUUzQixFQUFDO0FBQUEsWUFBVzRCLEtBQUUsZUFBYTtBQUFVLElBQUFELEtBQUV1QixHQUFFLEdBQUV2RSxFQUFDO0FBQUEsV0FBVWlELE9BQUk7QUFBUSxJQUFBWixNQUFHLEdBQUVRLEdBQUUsR0FBRTdDLEVBQUM7QUFBQSxXQUFVQSxLQUFFLEtBQUcsRUFBRSxVQUFRO0FBQUksSUFBQXFDLE1BQUcsTUFBS1csS0FBRTBFLElBQUcsR0FBRTFILEtBQUUsT0FBTThGLElBQUVNLElBQUVDLEVBQUM7QUFBQSxXQUFVckcsS0FBRSxNQUFJLEVBQUUsUUFBTSxnQkFBYztBQUFXLElBQUFxQyxNQUFHO0FBQUEsT0FBUTtBQUFDLFFBQUcsS0FBR1ksT0FBSTtBQUFRLGFBQU8sR0FBRyxHQUFFakQsSUFBRSxHQUFFOEYsSUFBRU0sSUFBRUMsRUFBQztBQUFFLElBQUFwRCxPQUFJLE9BQUtELEtBQUVtQyxHQUFFLEdBQUVuRixJQUFFLENBQUMsR0FBRSxFQUFFLFVBQVEsWUFBVUQsR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUMsS0FBR3JELEdBQUUsR0FBRSxJQUFHcUQsR0FBRSxFQUFFLFFBQU0sR0FBRyxDQUFDO0FBQUEsRUFBQztBQUFDLE1BQUdmLEtBQUUsUUFBTSxFQUFFLFFBQU0sU0FBT1csS0FBRW1DLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxLQUFHLEVBQUUsUUFBTSxlQUFhLFlBQVVnRCxLQUFFdUIsR0FBRSxHQUFFdkUsRUFBQyxJQUFFLEVBQUUsVUFBUSxZQUFVcUMsTUFBRyxHQUFFVyxLQUFFLEdBQUcsR0FBRWhELElBQUUsQ0FBQyxLQUFHLEVBQUUsVUFBUSxNQUFJZ0QsS0FBRW1DLEdBQUUsR0FBRW5GLElBQUUsQ0FBQyxJQUFFQSxLQUFFLEtBQUcsRUFBRSxVQUFRLE9BQUtxQyxNQUFHLE1BQUtXLEtBQUUwRSxJQUFHLEdBQUUxSCxJQUFFOEYsSUFBRU0sSUFBRUMsRUFBQyxLQUFHdEcsR0FBRSxHQUFFLEdBQUcsSUFBR3NDLEtBQUUsTUFBSSxFQUFFLGVBQWEsa0JBQWdCLEVBQUUsUUFBTSxnQkFBYyxhQUFXdEMsR0FBRSxHQUFFLEdBQUcsSUFBRSxFQUFFc0MsS0FBRSxPQUFLLEVBQUUsVUFBUSxhQUFXQSxLQUFFLE1BQUl0QyxHQUFFLEdBQUUsSUFBRyxVQUFVLElBQUVDLEtBQUUsV0FBUyxFQUFFLFFBQU0sS0FBR0QsR0FBRSxHQUFFLEVBQUUsSUFBRSxFQUFFLFNBQU8sTUFBS3NDLE1BQUcsTUFBSSxFQUFFQSxLQUFFLFNBQU9BLEtBQUUsT0FBSyxFQUFFLGVBQWEsZUFBYXRDLEdBQUUsR0FBRSxFQUFFLElBQUdDLEtBQUUsS0FBRyxFQUFFLFVBQVE7QUFBUyxXQUFPZ0osSUFBRyxHQUFFaEosSUFBRWdELElBQUVYLElBQUVqQixJQUFFMEUsSUFBRU0sSUFBRUMsRUFBQztBQUFFLE1BQUlDLEtBQUU2QixHQUFFLEdBQUVuSSxJQUFFcUMsSUFBRWhCLElBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPd0MsR0FBRSxHQUFFN0QsSUFBRXVCLElBQUUsR0FBRUksSUFBRTNCLEtBQUUsSUFBRSxFQUFDLE1BQUssb0JBQW1CLE1BQUssRUFBRXFDLEtBQUUsT0FBS0EsS0FBRSxLQUFHLGdCQUFjQSxLQUFFLE1BQUksUUFBTUEsS0FBRSxNQUFJLFFBQU0sVUFBUyxTQUFRQSxLQUFFLE1BQUksR0FBRSxXQUFVQSxLQUFFLEtBQUcsR0FBRSxLQUFJVyxJQUFFLFlBQVc1QixJQUFFLE9BQU1rRixHQUFDLElBQUUsRUFBQyxNQUFLLG9CQUFtQixNQUFLLEVBQUVqRSxLQUFFLE9BQUtBLEtBQUUsS0FBRyxnQkFBY0EsS0FBRSxNQUFJLFFBQU1BLEtBQUUsTUFBSSxRQUFNLFVBQVMsU0FBUUEsS0FBRSxNQUFJLEdBQUUsV0FBVUEsS0FBRSxLQUFHLEdBQUUsS0FBSVcsSUFBRSxPQUFNc0QsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTb0IsSUFBRyxHQUFFMUgsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxFQUFBMEMsR0FBRSxHQUFFN0MsRUFBQztBQUFFLE1BQUcsRUFBQyxZQUFXb0IsR0FBQyxJQUFFO0FBQUUsU0FBT0EsT0FBSSxpQkFBZXJCLEdBQUUsR0FBRSxHQUFHLEdBQUU4QyxHQUFFLEdBQUU3QyxFQUFDLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUsscUJBQW9CLE1BQUtpQixHQUFDLENBQUM7QUFBQztBQUFDLFNBQVM0SCxJQUFHLEdBQUVoSixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRTtBQUFDLE1BQUlFLEtBQUU7QUFBSyxNQUFHLElBQUUsS0FBR3hCLEdBQUUsR0FBRSxDQUFDLEdBQUUsRUFBRSxVQUFRLFlBQVc7QUFBQyxJQUFBOEMsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsUUFBRyxFQUFDLFVBQVMsR0FBRSxTQUFRMkIsSUFBRSxRQUFPVSxHQUFDLElBQUU7QUFBRSxNQUFFLFVBQVEsYUFBV3RDLEdBQUUsR0FBRSxHQUFHLEdBQUV3QixLQUFFNkQsR0FBRSxHQUFFcEYsS0FBRSxPQUFNLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUyQixJQUFFVSxFQUFDLElBQUcsRUFBRSxRQUFNLGdCQUFjLGVBQWFkLEtBQUUrRCxHQUFFLEdBQUV0RixLQUFFLE9BQU11QixJQUFFLEdBQUUsR0FBRSxHQUFFSSxJQUFFVSxFQUFDLEdBQUVkLEtBQUVnRSxHQUFFLEdBQUV2RixLQUFFLE9BQU0sR0FBRSxHQUFFLEdBQUUyQixJQUFFVSxJQUFFZCxFQUFDLEdBQUUsRUFBRSxVQUFRLE9BQUtBLEtBQUUsR0FBRyxHQUFFdkIsSUFBRSxHQUFFb0IsSUFBRSxHQUFFQyxJQUFFRSxFQUFDO0FBQUEsRUFBRztBQUFDLFNBQU9zQyxHQUFFLEdBQUU3RCxJQUFFb0IsSUFBRSxHQUFFQyxJQUFFLEVBQUMsTUFBSyxzQkFBcUIsS0FBSSxHQUFFLE9BQU1FLElBQUUsU0FBUSxJQUFFLE1BQUksR0FBRSxXQUFVLElBQUUsS0FBRyxHQUFFLFlBQVdwQixJQUFDLENBQUM7QUFBQztBQUFDLFNBQVM2RixJQUFHLEdBQUVoRyxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRTtBQUFDLE1BQUcsRUFBRSxRQUFNO0FBQU8sV0FBT3NILElBQUcsR0FBRTNJLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxFQUFDO0FBQUUsR0FBQyxFQUFFLFFBQU0sYUFBVyxXQUFTdEIsR0FBRSxHQUFFLElBQUdxRCxHQUFFLEVBQUUsUUFBTSxHQUFHLENBQUM7QUFBRSxNQUFJN0IsS0FBRSxFQUFFLFVBQVEsV0FBU2lGLEdBQUUsR0FBRXhHLElBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRSxHQUFFQyxFQUFDLElBQUVrRixHQUFFLEdBQUV2RyxJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsRUFBQztBQUFFLFNBQU8sRUFBRSxlQUFhLE1BQUl0QixHQUFFLEdBQUUsRUFBRSxHQUFFLEVBQUUsZUFBYSxNQUFJQSxHQUFFLEdBQUUsRUFBRSxHQUFFd0I7QUFBQztBQUFDLFNBQVNvSCxJQUFHLEdBQUUzSSxJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUUsR0FBRUMsSUFBRTtBQUFDLE1BQUcsRUFBQyxZQUFXRSxJQUFFLE9BQU0sRUFBQyxJQUFFO0FBQUUsU0FBT3ZCLEtBQUUsVUFBUSxJQUFFLGVBQWEsWUFBVUQsR0FBRSxHQUFFLEdBQUcsS0FBRyxJQUFFLFdBQVMsU0FBT0EsR0FBRSxHQUFFLEdBQUcsS0FBSSxJQUFFLFdBQVMsU0FBT0EsR0FBRSxHQUFFLEdBQUcsR0FBRUMsS0FBRSxXQUFTLE1BQUksVUFBUUQsR0FBRSxHQUFFLEVBQUUsR0FBRSxNQUFJLFVBQVEsSUFBRSxNQUFJQSxHQUFFLEdBQUUsRUFBRSxHQUFFQyxLQUFFLFdBQVMsTUFBSSxVQUFRRCxHQUFFLEdBQUUsRUFBRSxHQUFFOEMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFLEtBQUcsR0FBRyxHQUFFQSxJQUFFLEdBQUV1QixJQUFFLEdBQUVwQixHQUFDLEdBQUUwRCxHQUFFLEdBQUU3RCxJQUFFb0IsSUFBRSxHQUFFQyxJQUFFLEVBQUMsTUFBSyxjQUFhLE1BQUtFLEdBQUMsQ0FBQztBQUFDO0FBQUMsU0FBU3FHLElBQUcsR0FBRTVILElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsSUFBRTtBQUFDLE1BQUd5QixHQUFFLEdBQUU3QyxFQUFDLEdBQUUsRUFBRSxVQUFRO0FBQVEsV0FBTzZELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLGVBQWMsaUJBQWdCLEdBQUcsR0FBRXBCLElBQUUsR0FBRUcsS0FBRWlCLEVBQUMsR0FBRSxVQUFTNkgsSUFBRyxHQUFFakosRUFBQyxHQUFFLGlCQUFnQixHQUFHLEdBQUVBLElBQUUsR0FBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxFQUFDLENBQUM7QUFBRSxNQUFJLElBQUUsTUFBS3FCLEtBQUUsQ0FBQyxHQUFFRSxLQUFFLEdBQUcsR0FBRXZCLElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsRUFBQztBQUFFLE1BQUcsQ0FBQ0csR0FBRSxhQUFZO0FBQUMsSUFBQUYsS0FBRTRILElBQUcsR0FBRWpKLEVBQUMsR0FBRSxJQUFFLEdBQUcsR0FBRUEsSUFBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsUUFBSSxJQUFFOEQsSUFBRyxFQUFFLElBQUk7QUFBRSxJQUFBQSxJQUFHdkMsR0FBRSxJQUFJLE1BQUksS0FBR3hCLEdBQUUsR0FBRSxLQUFJLENBQUM7QUFBQSxFQUFDO0FBQUMsU0FBTzhELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLGNBQWEsVUFBU0MsSUFBRSxnQkFBZUUsSUFBRSxnQkFBZSxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFdkIsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxTQUFPK0MsSUFBRyxHQUFFbEQsRUFBQyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLHFCQUFvQixDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUgsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsRUFBQW9DLEdBQUUsR0FBRXhELElBQUUsRUFBRTtBQUFFLE1BQUksSUFBRWtKLElBQUcsR0FBRWxKLElBQUUsRUFBRSxVQUFTLEVBQUUsU0FBUSxFQUFFLE1BQU07QUFBRSxTQUFPLElBQUV3RCxHQUFFLEdBQUV4RCxJQUFFLE9BQU8sSUFBRSxFQUFFLFFBQU1rRCxJQUFHLEdBQUVsRCxFQUFDLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBSyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFcEIsSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFO0FBQUMsU0FBT29DLEdBQUUsR0FBRXhELElBQUUsRUFBRSxHQUFFd0QsR0FBRSxHQUFFeEQsSUFBRSxPQUFPLEdBQUU2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxxQkFBb0IsQ0FBQztBQUFDO0FBQUMsU0FBUzZILElBQUcsR0FBRWpKLElBQUU7QUFBQyxNQUFJLElBQUUsQ0FBQztBQUFFLFNBQUssRUFBRSxVQUFRO0FBQUksTUFBRSxRQUFNLEVBQUUsV0FBUyxFQUFFLFVBQVMsRUFBRSxTQUFPLEVBQUUsU0FBTyxFQUFFLGFBQVksRUFBRSxPQUFLLEVBQUUsVUFBUSxFQUFFLFdBQVVrRCxJQUFHLEdBQUVsRCxFQUFDLEdBQUUsRUFBRSxLQUFLLEdBQUcsR0FBRUEsSUFBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxDQUFDO0FBQUUsU0FBTztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVBLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBRyxFQUFFLFVBQVE7QUFBSSxXQUFPLEdBQUcsR0FBRUgsSUFBRSxHQUFFLEdBQUVHLEdBQUM7QUFBRSxNQUFHLEVBQUUsVUFBUTtBQUFRLFdBQU9nSixJQUFHLEdBQUVuSixJQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUVHLEdBQUM7QUFBRSxNQUFHLEVBQUUsVUFBUTtBQUFRLFdBQU95SCxJQUFHLEdBQUU1SCxJQUFFLEdBQUUsR0FBRSxHQUFFRyxHQUFDO0FBQUUsRUFBQUosR0FBRSxHQUFFLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQyxJQUFFLEdBQUUsR0FBRUcsS0FBRTtBQUFDLEVBQUErQyxJQUFHLEdBQUVsRCxFQUFDO0FBQUUsTUFBSW9CLEtBQUUsRUFBQyxNQUFLLFdBQVUsT0FBTSxFQUFFLFdBQVU7QUFBRSxTQUFPcEIsS0FBRSxRQUFNb0IsR0FBRSxNQUFJLEVBQUUsV0FBVXlDLEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFaUIsRUFBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxHQUFDLEVBQUUsUUFBTSxZQUFVLFdBQVMsRUFBRSxRQUFNLFVBQVEsUUFBTXJCLEdBQUUsR0FBRSxDQUFDO0FBQUUsTUFBSSxJQUFFbUosSUFBRyxHQUFFbEosSUFBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTSxHQUFFcUIsS0FBRSxHQUFHLEdBQUVyQixFQUFDLEdBQUV1QixLQUFFLEVBQUUsVUFBUTtBQUFRLFNBQU8sRUFBRSxVQUFRLFVBQVEyQixJQUFHLEdBQUVsRCxFQUFDLEtBQUd3RCxHQUFFLEdBQUV4RCxJQUFFLE9BQU8sR0FBRSxJQUFFd0QsR0FBRSxHQUFFeEQsSUFBRSxPQUFPLElBQUVrRCxJQUFHLEdBQUVsRCxFQUFDLElBQUc2RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxxQkFBb0IsTUFBSyxHQUFFLFlBQVdDLElBQUUsYUFBWUUsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTMkgsSUFBRyxHQUFFbEosSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxLQUFHLENBQUM7QUFBRSxNQUFJaUIsS0FBRWdJLElBQUcsR0FBRXBKLElBQUUsR0FBRSxHQUFFRyxHQUFDO0FBQUUsTUFBRyxFQUFFLFVBQVE7QUFBRyxXQUFPa0osSUFBRyxHQUFFckosSUFBRW9CLElBQUUsR0FBRSxHQUFFakIsR0FBQztBQUFFLFNBQUtrRCxHQUFFLEdBQUVyRCxJQUFFLFFBQVE7QUFBRyxPQUFHLENBQUMsR0FBRW9CLEtBQUUsR0FBRyxHQUFFcEIsSUFBRW9CLElBQUUsR0FBRSxHQUFFakIsR0FBQztBQUFFLFNBQU9pQjtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUVwQixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxNQUFJLElBQUVnSSxJQUFHLEdBQUVwSixJQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBTzZELEdBQUUsR0FBRTdELElBQUUsR0FBRUcsS0FBRWlCLElBQUUsRUFBQyxNQUFLLHVCQUFzQixRQUFPLEdBQUUsVUFBUyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFcEIsSUFBRTtBQUFDLE1BQUksSUFBRSxDQUFDO0FBQUUsU0FBSyxFQUFFLFVBQVEsV0FBUyxFQUFFLFVBQVEsV0FBUyxFQUFFLFVBQVE7QUFBUyxNQUFFLEtBQUssR0FBRyxHQUFFQSxJQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNLENBQUM7QUFBRSxTQUFPO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUEsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxFQUFBMEMsR0FBRSxHQUFFN0MsRUFBQyxHQUFFd0QsR0FBRSxHQUFFeEQsSUFBRSxFQUFFO0FBQUUsTUFBSW9CLEtBQUUrRSxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBT3dELEdBQUUsR0FBRXhELElBQUUsVUFBVSxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLHNCQUFxQixVQUFTaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBRyxFQUFFLFVBQVE7QUFBUSxXQUFPLEdBQUcsR0FBRUgsSUFBRSxHQUFFLEdBQUVHLEdBQUM7QUFBRSxLQUFHLENBQUM7QUFBRSxNQUFJaUIsS0FBRSxNQUFLLElBQUVnSSxJQUFHLEdBQUVwSixJQUFFLEdBQUUsR0FBRUcsR0FBQztBQUFFLE1BQUcsRUFBRSxVQUFRLE9BQUssSUFBRWtKLElBQUcsR0FBRXJKLElBQUUsR0FBRSxHQUFFLEdBQUVHLEdBQUMsSUFBRyxFQUFFLFVBQVEsWUFBVztBQUFDLFFBQUlrQixLQUFFLEdBQUcsR0FBRXJCLEVBQUMsR0FBRSxFQUFDLFVBQVN1QixJQUFFLFNBQVEsR0FBRSxRQUFPSSxHQUFDLElBQUU7QUFBRSxZQUFPTixJQUFFO0FBQUEsTUFBQyxLQUFLO0FBQVUsUUFBQUQsS0FBRW1ELEdBQUUsR0FBRXZFLEVBQUM7QUFBRTtBQUFBLE1BQU0sS0FBSztBQUFRLFFBQUFvQixLQUFFd0csSUFBRyxHQUFFNUgsSUFBRSxHQUFFdUIsSUFBRSxHQUFFSSxFQUFDO0FBQUU7QUFBQSxNQUFNLEtBQUs7QUFBUSxRQUFBUCxLQUFFK0gsSUFBRyxHQUFFbkosSUFBRSxHQUFFLEdBQUV1QixJQUFFLEdBQUVJLEVBQUM7QUFBRTtBQUFBLE1BQU07QUFBUSxRQUFBNUIsR0FBRSxHQUFFLEdBQUc7QUFBQSxJQUFDO0FBQUEsRUFBQztBQUFDLFNBQU84RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUUsR0FBRUcsS0FBRSxFQUFDLE1BQUssZ0JBQWUsT0FBTWlCLElBQUUsTUFBSyxFQUFDLENBQUM7QUFBQztBQUFDLFNBQVNpSSxJQUFHLEdBQUVySixJQUFFLEdBQUUsR0FBRUcsS0FBRWlCLElBQUU7QUFBQyxFQUFBb0MsR0FBRSxHQUFFeEQsSUFBRSxFQUFFO0FBQUUsTUFBSSxJQUFFb0osSUFBRyxHQUFFcEosSUFBRSxFQUFFLFVBQVMsRUFBRSxTQUFRLEVBQUUsTUFBTTtBQUFFLFNBQU82RCxHQUFFLEdBQUU3RCxJQUFFLEdBQUVHLEtBQUVpQixJQUFFLEVBQUMsTUFBSyxxQkFBb0IsV0FBVSxHQUFFLE1BQUssRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTK0gsSUFBRyxHQUFFbkosSUFBRSxHQUFFLEdBQUVHLEtBQUVpQixJQUFFLEdBQUU7QUFBQyxFQUFBeUIsR0FBRSxHQUFFN0MsS0FBRSxLQUFLO0FBQUUsTUFBRyxFQUFDLFVBQVNxQixJQUFFLFNBQVFFLElBQUUsUUFBTyxFQUFDLElBQUU7QUFBRSxNQUFHLEVBQUUsVUFBUTtBQUFHLFdBQU8sR0FBRyxHQUFFdkIsSUFBRUcsS0FBRWlCLElBQUUsQ0FBQztBQUFFLE1BQUlPLEtBQUU7QUFBSyxTQUFPLEVBQUUsVUFBUSxjQUFZLEtBQUc1QixHQUFFLEdBQUUsR0FBRyxHQUFFNEIsS0FBRSxHQUFHLEdBQUUzQixJQUFFLEVBQUUsVUFBUyxFQUFFLFdBQVUsRUFBRSxXQUFXLEtBQUcyQixLQUFFd0UsR0FBRSxHQUFFbkcsSUFBRSxHQUFFLEdBQUUsR0FBRXFCLElBQUVFLElBQUUsQ0FBQyxHQUFFLElBQUVpQyxHQUFFLEdBQUV4RCxJQUFFLFVBQVUsSUFBRWtELElBQUcsR0FBRWxELEVBQUMsR0FBRTZELEdBQUUsR0FBRTdELElBQUVHLEtBQUVpQixJQUFFLEdBQUUsRUFBQyxNQUFLLDBCQUF5QixZQUFXTyxHQUFDLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFM0IsSUFBRSxHQUFFLEdBQUVHLEtBQUU7QUFBQyxFQUFBcUQsR0FBRSxHQUFFeEQsSUFBRSxFQUFFO0FBQUUsTUFBSW9CLEtBQUUrRSxHQUFFLEdBQUVuRyxJQUFFLEdBQUUsR0FBRSxHQUFFLEVBQUUsVUFBUyxFQUFFLFNBQVEsRUFBRSxNQUFNO0FBQUUsU0FBT3dELEdBQUUsR0FBRXhELElBQUUsVUFBVSxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLGtCQUFpQixZQUFXaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRXBCLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsU0FBTyxFQUFFLFdBQVMsRUFBRSxVQUFTLEVBQUUsWUFBVSxFQUFFLFNBQVEsRUFBRSxjQUFZLEVBQUUsUUFBTzBELEdBQUUsR0FBRTdELElBQUUsR0FBRSxHQUFFRyxLQUFFLEVBQUMsTUFBSyxxQkFBb0IsQ0FBQztBQUFDO0FBQUMsU0FBU2lKLElBQUcsR0FBRXBKLElBQUUsR0FBRSxHQUFFRyxLQUFFO0FBQUMsTUFBRyxFQUFDLFlBQVdpQixHQUFDLElBQUU7QUFBRSxTQUFPeUIsR0FBRSxHQUFFN0MsRUFBQyxHQUFFNkQsR0FBRSxHQUFFN0QsSUFBRSxHQUFFLEdBQUVHLEtBQUUsRUFBQyxNQUFLLGlCQUFnQixNQUFLaUIsR0FBQyxDQUFDO0FBQUM7QUFBQyxTQUFTa0ksSUFBRyxHQUFFdEosSUFBRTtBQUFDLFNBQU8sR0FBRyxHQUFFQSxJQUFFLENBQUM7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFQSxJQUFFO0FBQUMsTUFBSSxJQUFFLElBQUksWUFBWSxJQUFFLE9BQUtBLEdBQUUsSUFBSSxNQUFNLE9BQUssTUFBSUEsR0FBRSxJQUFJLE1BQU0sU0FBTyxHQUFHO0FBQUUsU0FBTyxPQUFPLE9BQU8sR0FBRUEsRUFBQztBQUFDO0FBQVcsU0FBUyxHQUFHLEdBQUU7QUFBQyxNQUFJQSxLQUFFLENBQUM7QUFBRSxXQUFRLEtBQUs7QUFBRSxRQUFHO0FBQUMsYUFBTyxFQUFFO0FBQUEsSUFBQyxTQUFPLEdBQUU7QUFBQyxNQUFBQSxHQUFFLEtBQUssQ0FBQztBQUFBLElBQUM7QUFBQyxRQUFNLE9BQU8sT0FBTyxJQUFJLE1BQU0seUJBQXlCLEdBQUUsRUFBQyxRQUFPQSxHQUFDLENBQUM7QUFBQztBQUE2QixTQUFTLEdBQUcsR0FBRTtBQUFDLE1BQUcsQ0FBQyxFQUFFLFdBQVcsSUFBSTtBQUFFLFdBQU07QUFBRyxNQUFJQSxLQUFFLEVBQUUsUUFBUTtBQUFBLENBQzF4bEc7QUFBRSxTQUFPQSxPQUFJLEtBQUcsSUFBRSxFQUFFLE1BQU0sR0FBRUEsRUFBQztBQUFDO0FBQVcsU0FBUyxHQUFHLEdBQUU7QUFBQyxNQUFJQSxLQUFFdUosSUFBRyxDQUFDO0FBQUUsRUFBQXZKLE9BQUksSUFBRSxFQUFFLE1BQU1BLEdBQUUsU0FBTyxDQUFDO0FBQUcsTUFBSSxLQUFHLEdBQUV3SixJQUFHLFNBQVMsQ0FBQyxHQUFFLEVBQUMsU0FBUSxHQUFFLFVBQVNySixJQUFDLEtBQUcsR0FBRXFKLElBQUcsbUJBQW1CLENBQUM7QUFBRSxTQUFNLEVBQUMsU0FBUXhKLElBQUUsTUFBSyxHQUFFLFNBQVEsR0FBRSxVQUFTRyxJQUFDO0FBQUM7QUFBQyxTQUFTc0osSUFBRyxHQUFFO0FBQUMsTUFBRyxFQUFDLFNBQVF6SixHQUFDLElBQUUsR0FBRyxDQUFDO0FBQUUsU0FBTyxPQUFPLFVBQVUsZUFBZSxLQUFLQSxJQUFFLFVBQVUsS0FBRyxPQUFPLFVBQVUsZUFBZSxLQUFLQSxJQUFFLFFBQVE7QUFBQztBQUFDLFNBQVMsR0FBRyxHQUFFO0FBQUMsU0FBTyxNQUFNLFFBQVEsQ0FBQyxLQUFHLEVBQUUsU0FBTztBQUFDO0FBQVcsU0FBUzBKLEdBQUUsR0FBRTtBQUFDLE1BQUk7QUFBRSxNQUFJMUosS0FBRSxFQUFFLFFBQU0sRUFBRSxNQUFNLENBQUMsSUFBRSxFQUFFLE9BQU0sTUFBSSxJQUFFLEVBQUUsZ0JBQWMsT0FBSyxTQUFPLEVBQUUsZUFBYSxFQUFFO0FBQVcsU0FBTzJKLElBQUcsQ0FBQyxJQUFFLEtBQUssSUFBSUQsR0FBRSxFQUFFLENBQUMsQ0FBQyxHQUFFMUosRUFBQyxJQUFFQTtBQUFDO0FBQUMsU0FBUzRKLEdBQUUsR0FBRTtBQUFDLFNBQU8sRUFBRSxRQUFNLEVBQUUsTUFBTSxDQUFDLElBQUUsRUFBRTtBQUFHO0FBQUMsU0FBUyxHQUFHLEdBQUU7QUFBQyxTQUFPLElBQUUsT0FBTyxLQUFHLGFBQVcsRUFBQyxPQUFNLEVBQUMsSUFBRSxHQUFFLEVBQUMsV0FBVSxVQUFTLFdBQVVILEtBQUcsVUFBU0MsSUFBRSxRQUFPRSxJQUFFLEdBQUcsRUFBQztBQUFDO0FBQTRILFNBQVMsR0FBRyxHQUFFO0FBQUMsU0FBTyxJQUFFLElBQUksSUFBSSxDQUFDLEdBQUUsQ0FBQTVKLE9BQUcsRUFBRSxJQUFJQSxNQUFHLE9BQUssU0FBT0EsR0FBRSxJQUFJO0FBQUM7QUFBaUUsU0FBUyxHQUFHLEdBQUU7QUFBQyxTQUFPNkosSUFBRyxDQUFDLEtBQUcsRUFBRSxNQUFNLENBQUMsTUFBSSxPQUFLLHdCQUF3QixLQUFLLEVBQUUsS0FBSztBQUFDO0FBQVcsU0FBUyxHQUFHLEdBQUU7QUFBQyxNQUFJN0osS0FBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLE1BQU07QUFBQSxDQUNwbUM7QUFBRSxTQUFPQSxHQUFFLFNBQU8sS0FBR0EsR0FBRSxNQUFNLE9BQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxNQUFJLEdBQUc7QUFBQztBQUF1QixTQUFTOEosSUFBRyxHQUFFO0FBQUMsTUFBR0MsUUFBSyxRQUFNLE9BQU9BLElBQUcsVUFBUztBQUFDLFFBQUkvSixLQUFFK0o7QUFBRyxXQUFPQSxNQUFHRCxJQUFHLFlBQVUsTUFBSzlKO0FBQUEsRUFBQztBQUFDLFNBQU8rSixNQUFHRCxJQUFHLFlBQVUsS0FBRyx1QkFBTyxPQUFPLElBQUksR0FBRSxJQUFJQTtBQUFFO0FBQXNDLFNBQVNFLElBQUcsR0FBRTtBQUFDLFNBQU9GLElBQUcsQ0FBQztBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUU5SixLQUFFLFFBQU87QUFBQyxFQUFBZ0ssSUFBRyxDQUFDO0FBQUUsV0FBUyxFQUFFLEdBQUU7QUFBQyxRQUFJN0osTUFBRSxFQUFFSCxFQUFDLEdBQUVvQixLQUFFLEVBQUVqQixHQUFDO0FBQUUsUUFBRyxDQUFDLE1BQU0sUUFBUWlCLEVBQUM7QUFBRSxZQUFNLE9BQU8sT0FBTyxJQUFJLE1BQU0sNkJBQTZCakIsR0FBQyxJQUFJLEdBQUUsRUFBQyxNQUFLLEVBQUMsQ0FBQztBQUFFLFdBQU9pQjtBQUFBLEVBQUM7QUFBQyxTQUFPO0FBQUM7QUFBbXhYLFNBQVM2SSxJQUFHLEdBQUVqSyxJQUFFO0FBQUMsTUFBRyxFQUFFLE1BQUksUUFBTSxPQUFPLEtBQUc7QUFBVSxXQUFPO0FBQUUsTUFBRyxNQUFNLFFBQVEsQ0FBQyxHQUFFO0FBQUMsYUFBUSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU87QUFBSSxRQUFFLENBQUMsSUFBRWlLLElBQUcsRUFBRSxDQUFDLEdBQUVqSyxFQUFDO0FBQUUsV0FBTztBQUFBLEVBQUM7QUFBQyxNQUFJLElBQUVrSyxJQUFHLENBQUM7QUFBRSxXQUFRLElBQUUsR0FBRSxJQUFFLEVBQUUsUUFBTztBQUFJLE1BQUUsRUFBRSxDQUFDLENBQUMsSUFBRUQsSUFBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUVqSyxFQUFDO0FBQUUsU0FBT0EsR0FBRSxDQUFDLEtBQUc7QUFBQztBQUFXLFNBQVMsR0FBRyxHQUFFQSxJQUFFO0FBQUMsTUFBRyxFQUFDLFFBQU8sR0FBRSxNQUFLLEVBQUMsSUFBRUE7QUFBRSxNQUFHLEVBQUUsU0FBTyxVQUFRLEVBQUUsUUFBUSxhQUFZO0FBQUMsUUFBRyxFQUFDLFNBQVEsRUFBQyxhQUFZb0IsR0FBQyxHQUFFLFVBQVMsRUFBQyxJQUFFO0FBQUUsV0FBTyxFQUFFLFFBQVEsYUFBWSxFQUFFLFFBQVFBLEVBQUM7QUFBQSxFQUFDO0FBQUMsTUFBRyxNQUFJLFNBQVE7QUFBQyxRQUFJQSxLQUFFLG9CQUFJO0FBQUksUUFBRStJLElBQUcsR0FBRSxPQUFHO0FBQUMsVUFBSTlJO0FBQUUsT0FBQ0EsS0FBRSxFQUFFLG9CQUFrQixRQUFNQSxHQUFFLEtBQUsrSSxHQUFFLEtBQUdoSixHQUFFLElBQUlzSSxHQUFFLENBQUMsQ0FBQztBQUFBLElBQUMsQ0FBQyxHQUFFLElBQUVTLElBQUcsR0FBRSxPQUFHO0FBQUMsVUFBRyxFQUFFLFNBQU8sMkJBQTBCO0FBQUMsWUFBRyxFQUFDLFlBQVc5SSxHQUFDLElBQUU7QUFBRSxZQUFHQSxHQUFFLFNBQU87QUFBcUIsaUJBQU9BLEdBQUUsUUFBTSxFQUFFLE9BQU1BO0FBQUUsWUFBSUUsS0FBRW1JLEdBQUUsQ0FBQztBQUFFLFlBQUcsQ0FBQ3RJLEdBQUUsSUFBSUcsRUFBQztBQUFFLGlCQUFPRixHQUFFLFFBQU0sRUFBQyxHQUFHQSxHQUFFLE9BQU0sZUFBYyxLQUFFLEdBQUVBO0FBQUEsTUFBQztBQUFBLElBQUMsQ0FBQztBQUFBLEVBQUM7QUFBQyxNQUFHLElBQUU4SSxJQUFHLEdBQUUsQ0FBQS9JLE9BQUc7QUFBQyxZQUFPQSxHQUFFLE1BQUs7QUFBQSxNQUFDLEtBQUk7QUFBb0IsWUFBR2lKLElBQUdqSixFQUFDO0FBQUUsaUJBQU9rSixJQUFHbEosRUFBQztBQUFFO0FBQUEsTUFBTSxLQUFJLHVCQUFzQjtBQUFDLFlBQUksSUFBRW1KLElBQUcsT0FBR25KLEdBQUUsY0FBYSxFQUFFO0FBQUUsYUFBRyxRQUFNLEVBQUUsUUFBTWpCLElBQUVpQixJQUFFLENBQUM7QUFBRTtBQUFBLE1BQUs7QUFBQSxNQUFDLEtBQUk7QUFBc0IsZUFBT0EsR0FBRTtBQUFBLE1BQWUsS0FBSTtBQUFrQixZQUFHLE9BQU9BLEdBQUUsUUFBTSxVQUFTO0FBQUMsY0FBSSxJQUFFc0ksR0FBRXRJLEVBQUM7QUFBRSxVQUFBQSxHQUFFLE9BQUssRUFBQyxNQUFLLGNBQWEsTUFBS0EsR0FBRSxNQUFLLE9BQU0sQ0FBQyxHQUFFLElBQUVBLEdBQUUsS0FBSyxNQUFNLEVBQUM7QUFBQSxRQUFDO0FBQUM7QUFBQSxNQUFNLEtBQUk7QUFBaUIsVUFBRSxRQUFNLEVBQUMsR0FBRyxFQUFFLE9BQU0sdUJBQXNCLEtBQUU7QUFBRTtBQUFBLE1BQU0sS0FBSSx3QkFBdUI7QUFBQyxZQUFHLEVBQUMsVUFBUyxFQUFDLElBQUVBO0FBQUUsWUFBRyxNQUFJLGNBQVksS0FBRyxPQUFLLFNBQU8sRUFBRSxVQUFRLGNBQWE7QUFBQyxjQUFJQyxLQUFFLEVBQUUsTUFBTXFJLEdBQUUsQ0FBQyxHQUFFRSxHQUFFLENBQUMsQ0FBQztBQUFFLFdBQUN2SSxHQUFFLFdBQVcsR0FBRyxLQUFHQSxHQUFFLFdBQVcsR0FBRyxPQUFLRCxHQUFFLFdBQVMsRUFBQyxHQUFHQSxHQUFFLFVBQVMsTUFBSyxXQUFVLE9BQU1BLEdBQUUsU0FBUyxNQUFLLEtBQUlDLEdBQUM7QUFBQSxRQUFFO0FBQUM7QUFBQSxNQUFLO0FBQUEsTUFBQyxLQUFJO0FBQUEsTUFBYyxLQUFJO0FBQXFCLFlBQUdELEdBQUUsTUFBTSxXQUFTO0FBQUUsaUJBQU9BLEdBQUUsTUFBTSxDQUFDO0FBQUU7QUFBQSxJQUFLO0FBQUEsRUFBQyxDQUFDLEdBQUV1SSxJQUFHLEVBQUUsUUFBUSxHQUFFO0FBQUMsUUFBSXZJLEtBQUVtSixJQUFHLE9BQUcsRUFBRSxVQUFTLEVBQUU7QUFBRSxhQUFRLElBQUUsRUFBRSxTQUFTLFNBQU8sR0FBRSxLQUFHLEdBQUUsS0FBSTtBQUFDLFVBQUlsSixLQUFFLEVBQUUsU0FBUyxDQUFDO0FBQUUsTUFBQXVJLEdBQUV2SSxFQUFDLE1BQUlxSSxHQUFFdEksRUFBQyxLQUFHeUksSUFBR3hJLEVBQUMsS0FBR3dJLElBQUd6SSxFQUFDLEtBQUdvSixJQUFHbkosRUFBQyxLQUFHbUosSUFBR3BKLEVBQUMsTUFBSSxFQUFFLFNBQVMsT0FBTyxJQUFFLEdBQUUsQ0FBQyxHQUFFQyxHQUFFLFNBQU8sU0FBT0QsR0FBRSxPQUFNQyxHQUFFLFFBQU0sQ0FBQ3FJLEdBQUVySSxFQUFDLEdBQUV1SSxHQUFFeEksRUFBQyxDQUFDLElBQUdBLEtBQUVDO0FBQUEsSUFBQztBQUFBLEVBQUM7QUFBQyxTQUFPLEVBQUUsU0FBTyxjQUFZLEVBQUUsUUFBTSxDQUFDLEdBQUUsRUFBRSxNQUFNLElBQUc7QUFBRSxXQUFTbEIsSUFBRWlCLElBQUUsR0FBRTtBQUFDLE1BQUV3SSxHQUFFLENBQUMsQ0FBQyxNQUFJLFFBQU14SSxHQUFFLFFBQU0sQ0FBQ3NJLEdBQUV0SSxFQUFDLEdBQUV3SSxHQUFFLENBQUMsQ0FBQztBQUFBLEVBQUU7QUFBQztBQUFDLFNBQVNTLElBQUcsR0FBRTtBQUFDLFNBQU8sRUFBRSxTQUFPLHVCQUFxQixFQUFFLE1BQU0sU0FBTyx1QkFBcUIsRUFBRSxhQUFXLEVBQUUsTUFBTTtBQUFRO0FBQUMsU0FBU0MsSUFBRyxHQUFFO0FBQUMsU0FBT0QsSUFBRyxDQUFDLElBQUVDLElBQUcsRUFBQyxNQUFLLHFCQUFvQixVQUFTLEVBQUUsVUFBUyxNQUFLQSxJQUFHLEVBQUMsTUFBSyxxQkFBb0IsVUFBUyxFQUFFLFVBQVMsTUFBSyxFQUFFLE1BQUssT0FBTSxFQUFFLE1BQU0sTUFBSyxPQUFNLENBQUNaLEdBQUUsRUFBRSxJQUFJLEdBQUVFLEdBQUUsRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFDLENBQUMsR0FBRSxPQUFNLEVBQUUsTUFBTSxPQUFNLE9BQU0sQ0FBQ0YsR0FBRSxDQUFDLEdBQUVFLEdBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFO0FBQUM7QUFBVyxTQUFTLEdBQUcsR0FBRTtBQUFDLE1BQUcsRUFBQyxVQUFTNUosR0FBQyxJQUFFO0FBQUUsTUFBR0EsSUFBRTtBQUFDLFFBQUdBLEtBQUVBLEdBQUUsWUFBWSxHQUFFQSxHQUFFLFNBQVMsTUFBTTtBQUFFLGFBQU07QUFBUyxRQUFHQSxHQUFFLFNBQVMsTUFBTTtBQUFFLGFBQU07QUFBQSxFQUFRO0FBQUM7QUFBZ04sU0FBUyxHQUFHLEdBQUVBLElBQUU7QUFBQyxNQUFJLElBQUUsQ0FBQyxHQUFFLElBQUUsQ0FBQyxHQUFFRyxNQUFFbUosSUFBRyxHQUFFLEVBQUMsR0FBRyxJQUFHLFFBQU90SixPQUFJLFVBQVMsV0FBVSxHQUFFLFNBQVEsRUFBQyxDQUFDO0FBQUUsU0FBT0csSUFBRSxXQUFTLEdBQUVBLElBQUUsU0FBTyxHQUFFQTtBQUFDO0FBQUMsU0FBUyxHQUFHLEdBQUU7QUFBQyxNQUFJaUI7QUFBRSxNQUFHLEVBQUMsU0FBUXBCLElBQUUsTUFBSyxHQUFFLFFBQU8sRUFBQyxJQUFFLEdBQUVHLE9BQUdpQixLQUFFcEIsR0FBRSxNQUFNLGtEQUFrRCxNQUFJLE9BQUssU0FBT29CLEdBQUU7QUFBTyxTQUFPakIsUUFBSUgsS0FBRUcsSUFBRSxTQUFRLE9BQU8sS0FBRyxhQUFXLElBQUUsT0FBT0EsSUFBRSxJQUFJLEdBQUUsSUFBRSxPQUFPQSxJQUFFLE1BQU0sS0FBSSxPQUFPLEtBQUcsV0FBUyxJQUFFc0ssSUFBR3pLLElBQUUsRUFBQyxLQUFJLEVBQUMsT0FBTSxFQUFDLE1BQUssR0FBRSxRQUFPLEVBQUMsRUFBQyxHQUFFLE9BQU0sRUFBQyxDQUFDO0FBQUM7QUFBQyxTQUFTLEdBQUcsR0FBRUEsS0FBRSxDQUFDLEdBQUU7QUFBQyxNQUFJLElBQUUwSyxJQUFHMUssRUFBQyxHQUFFLEtBQUcsSUFBRSxDQUFDLENBQUMsSUFBRSxDQUFDLFVBQVMsUUFBUSxHQUFHLElBQUksQ0FBQW9CLE9BQUcsTUFBSSxHQUFHLEdBQUVBLEVBQUMsQ0FBQyxHQUFFakI7QUFBRSxNQUFHO0FBQUMsSUFBQUEsTUFBRXdLLElBQUcsQ0FBQztBQUFBLEVBQUMsU0FBTyxFQUFDLFFBQU8sQ0FBQ3ZKLEVBQUMsRUFBQyxHQUFFO0FBQUMsVUFBTSxHQUFHQSxFQUFDO0FBQUEsRUFBQztBQUFDLFNBQU93SixJQUFHekssS0FBRSxFQUFDLFFBQU8sV0FBVSxNQUFLLEVBQUMsQ0FBQztBQUFDO0FBSjF0ZSxJQUFJMEssS0FBcUJDLEtBQTZCQyxLQUF1Q0MsS0FBa0NDLEtBQXlCQyxLQUF1Q0MsS0FBMkRDLEtBQTREQyxLQUFrTEMsS0FBOEdDLEtBRXZMQyxLQUFrQzFMLEtBQWtDMkwsS0FBNG1SeEwsS0FBb2NNLEtBQXk0Y2UsSUFBaVVSLEtBQXFRRSxLQUFxWlEsS0FBMDJONEIsSUFBNmlDYixLQUFvdEZRLEtBQTBrK0QwSCxLQUF3SkUsS0FBVW5CLEtBQzFxbEdELEtBQTRYSSxLQUFrVStCLEtBQVUsSUFBdUduQixLQUE2RW9CLEtBQVUsSUFBNEM5QixLQUErRk8sS0FDeC9CSSxLQUFVVCxLQUF5SixJQUFrUDZCLEtBQVVDLEtBQW92WCxJQUFVM0IsS0FBNE5DLEtBQXc0RFMsS0FBOElGLEtBQVUsSUFBeXdCLElBQWM3SztBQUo3dWU7QUFBQTtBQUFBLElBQUlnTCxNQUFHLE9BQU87QUFBTyxJQUFJQyxNQUFHLE9BQU87QUFBZSxJQUFJQyxNQUFHLE9BQU87QUFBeUIsSUFBSUMsTUFBRyxPQUFPO0FBQW9CLElBQUlDLE1BQUcsT0FBTztBQUFkLElBQTZCQyxNQUFHLE9BQU8sVUFBVTtBQUFlLElBQUlDLE1BQUcsQ0FBQyxHQUFFbkwsT0FBSSxPQUFLQSxNQUFHLEdBQUdBLEtBQUUsRUFBQyxTQUFRLENBQUMsRUFBQyxHQUFHLFNBQVFBLEVBQUMsR0FBRUEsR0FBRTtBQUF0RCxJQUErRG9MLE1BQUcsQ0FBQyxHQUFFcEwsT0FBSTtBQUFDLGVBQVEsS0FBS0E7QUFBRSxRQUFBOEssSUFBRyxHQUFFLEdBQUUsRUFBQyxLQUFJOUssR0FBRSxDQUFDLEdBQUUsWUFBVyxLQUFFLENBQUM7QUFBQSxJQUFDO0FBQXpILElBQTJIcUwsTUFBRyxDQUFDLEdBQUVyTCxJQUFFLEdBQUUsTUFBSTtBQUFDLFVBQUdBLE1BQUcsT0FBT0EsTUFBRyxZQUFVLE9BQU9BLE1BQUc7QUFBVyxpQkFBUUcsT0FBSzZLLElBQUdoTCxFQUFDO0FBQUUsV0FBQ2tMLElBQUcsS0FBSyxHQUFFL0ssR0FBQyxLQUFHQSxRQUFJLEtBQUcySyxJQUFHLEdBQUUzSyxLQUFFLEVBQUMsS0FBSSxNQUFJSCxHQUFFRyxHQUFDLEdBQUUsWUFBVyxFQUFFLElBQUU0SyxJQUFHL0ssSUFBRUcsR0FBQyxNQUFJLEVBQUUsV0FBVSxDQUFDO0FBQUUsYUFBTztBQUFBLElBQUM7QUFBRSxJQUFJbUwsTUFBRyxDQUFDLEdBQUV0TCxJQUFFLE9BQUssSUFBRSxLQUFHLE9BQUs2SyxJQUFHSSxJQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBRUksSUFBR3JMLE1BQUcsQ0FBQyxLQUFHLENBQUMsRUFBRSxhQUFXOEssSUFBRyxHQUFFLFdBQVUsRUFBQyxPQUFNLEdBQUUsWUFBVyxLQUFFLENBQUMsSUFBRSxHQUFFLENBQUM7QUFBRyxJQUFJUyxNQUFHSixJQUFHLFFBQUk7QUFBQztBQUFhLGFBQU8sZUFBZSxJQUFHLGNBQWEsRUFBQyxPQUFNLEtBQUUsQ0FBQztBQUFFLFNBQUcsVUFBUTtBQUFHLFNBQUcsUUFBTTtBQUFHLFNBQUcsb0JBQWtCVztBQUFHLFNBQUcsUUFBTTtBQUFHLFNBQUcsUUFBTTtBQUFHLFVBQUksS0FBRyxTQUFRLEtBQUcsWUFBV0MsTUFBRyxnQ0FBK0IsS0FBRywwQkFBeUJDLE1BQUcsYUFBWSxLQUFHLHlGQUF3RkMsTUFBRyxvQ0FBbUMsS0FBRyxvQkFBbUJDLE1BQUcsQ0FBQztBQUFFLGVBQVMsR0FBRyxHQUFFO0FBQUMsWUFBSWxNLEtBQUUsRUFBRSxNQUFNK0wsR0FBRTtBQUFFLGVBQU8vTCxLQUFFQSxHQUFFLENBQUMsRUFBRSxTQUFTLElBQUU7QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHLEdBQUU7QUFBQyxZQUFJQSxLQUFFLEVBQUUsTUFBTStMLEdBQUU7QUFBRSxlQUFPL0wsTUFBR0EsR0FBRSxDQUFDLElBQUUsRUFBRSxVQUFVQSxHQUFFLENBQUMsRUFBRSxNQUFNLElBQUU7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHLEdBQUU7QUFBQyxlQUFPOEwsSUFBRyxDQUFDLEVBQUU7QUFBQSxNQUFPO0FBQUMsZUFBU0EsSUFBRyxHQUFFO0FBQUMsWUFBSTlMLEtBQUU7QUFBQTtBQUNockMsWUFBRSxFQUFFLFFBQVEsSUFBRyxFQUFFLEVBQUUsUUFBUSxJQUFHLEVBQUUsRUFBRSxRQUFRLElBQUcsSUFBSTtBQUFFLFlBQUksSUFBRTtBQUFHLGVBQUssTUFBSTtBQUFHLGNBQUUsR0FBRSxJQUFFLEVBQUUsUUFBUSxJQUFHLEdBQUdBLEVBQUMsUUFBUUEsRUFBQyxFQUFFO0FBQUUsWUFBRSxFQUFFLFFBQVFnTSxLQUFHLEVBQUUsRUFBRSxVQUFVO0FBQUUsWUFBSSxJQUFFLHVCQUFPLE9BQU8sSUFBSSxHQUFFN0wsTUFBRSxFQUFFLFFBQVE4TCxLQUFHLEVBQUUsRUFBRSxRQUFRRCxLQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUU1SztBQUFFLGVBQUtBLEtBQUU2SyxJQUFHLEtBQUssQ0FBQyxLQUFHO0FBQUMsY0FBSSxJQUFFN0ssR0FBRSxDQUFDLEVBQUUsUUFBUSxJQUFHLEVBQUU7QUFBRSxpQkFBTyxFQUFFQSxHQUFFLENBQUMsQ0FBQyxLQUFHLFlBQVUsTUFBTSxRQUFRLEVBQUVBLEdBQUUsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFQSxHQUFFLENBQUMsQ0FBQyxJQUFFOEssSUFBRyxPQUFPLEVBQUU5SyxHQUFFLENBQUMsQ0FBQyxHQUFFLENBQUMsSUFBRSxFQUFFQSxHQUFFLENBQUMsQ0FBQyxJQUFFO0FBQUEsUUFBQztBQUFDLGVBQU0sRUFBQyxVQUFTakIsS0FBRSxTQUFRLEVBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHLEVBQUMsVUFBUyxJQUFFLElBQUcsU0FBUUgsS0FBRSxDQUFDLEVBQUMsR0FBRTtBQUFDLFlBQUksSUFBRTtBQUFBLEdBQ3hhLElBQUUsT0FBTUcsTUFBRSxNQUFLaUIsS0FBRSxPQUFNLElBQUUsT0FBTyxLQUFLcEIsRUFBQyxHQUFFcUIsS0FBRSxFQUFFLElBQUksT0FBRzhLLElBQUcsR0FBRW5NLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRTJCLE9BQUksRUFBRSxPQUFPQSxFQUFDLEdBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxPQUFHLEdBQUd4QixHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUFFLFlBQUcsQ0FBQyxHQUFFO0FBQUMsY0FBRyxFQUFFLFdBQVM7QUFBRSxtQkFBTTtBQUFHLGNBQUcsRUFBRSxXQUFTLEtBQUcsQ0FBQyxNQUFNLFFBQVFILEdBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFFO0FBQUMsZ0JBQUksSUFBRUEsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUFFLG1CQUFNLEdBQUcsQ0FBQyxJQUFJbU0sSUFBRyxFQUFFLENBQUMsR0FBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcvSyxFQUFDO0FBQUEsVUFBRTtBQUFBLFFBQUM7QUFBQyxZQUFJRyxLQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxPQUFHLEdBQUdwQixHQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUU7QUFBRSxlQUFPLElBQUUsS0FBRyxJQUFFb0IsS0FBRSxPQUFLLEtBQUcsRUFBRSxTQUFPcEIsTUFBRSxJQUFFLE1BQUlrQixLQUFFRDtBQUFBLE1BQUM7QUFBQyxlQUFTK0ssSUFBRyxHQUFFbk0sSUFBRTtBQUFDLGVBQU9rTSxJQUFHLE9BQU9sTSxFQUFDLEVBQUUsSUFBSSxPQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7QUFBQSxNQUFDO0FBQUEsSUFBQyxDQUFDO0FBQUUsSUFBSXdMLE1BQUcsQ0FBQztBQUFFLElBQUFKLElBQUdJLEtBQUcsRUFBQyxTQUFRLE1BQUkxTCxJQUFFLENBQUM7QUFBRSxJQUFJQSxNQUFHLENBQUM7QUFBRSxJQUFBc0wsSUFBR3RMLEtBQUcsRUFBQyxTQUFRLE1BQUksR0FBRSxDQUFDO0FBQUUsSUFBSTJMLE1BQUcsRUFBQyxHQUFFLG9CQUFtQixJQUFHLDBCQUF5QixHQUFFLHlEQUF3RCxHQUFFLDhEQUE2RCxHQUFFLHdCQUF1QixHQUFFLG1DQUFrQyxHQUFFLHlCQUF3QixHQUFFLHVDQUFzQyxHQUFFLGlEQUFnRCxHQUFFLDZFQUE0RSxHQUFFLCtCQUE4QixLQUFJLHVFQUFzRSxJQUFHLDZDQUE0QyxJQUFHLHlCQUF3QixJQUFHLHlEQUF3RCxJQUFHLDBEQUF5RCxJQUFHLCtCQUE4QixJQUFHLGlDQUFnQyxJQUFHLDZDQUE0QyxJQUFHLHVFQUFzRSxJQUFHLDBCQUF5QixJQUFHLDhCQUE2QixJQUFHLDBCQUF5QixJQUFHLHdDQUF1QyxJQUFHLHNEQUFxRCxJQUFHLGlCQUFnQixJQUFHLHdDQUF1QyxJQUFHLHlDQUF3QyxJQUFHLHVIQUFzSCxJQUFHLDhDQUE2QyxJQUFHLG9EQUFtRCxJQUFHLG9EQUFtRCxJQUFHLHVDQUFzQyxJQUFHLGdIQUErRyxLQUFJLDJFQUEwRSxJQUFHLG1DQUFrQyxJQUFHLHNDQUFxQyxJQUFHLDBDQUF5QyxJQUFHLGdEQUErQyxJQUFHLHlEQUF3RCxJQUFHLG1EQUFrRCxJQUFHLDJGQUEwRixJQUFHLDRDQUEyQyxJQUFHLGtDQUFpQyxJQUFHLGtDQUFpQyxJQUFHLGlFQUFnRSxLQUFJLG9GQUFtRixJQUFHLDREQUEyRCxJQUFHLDZDQUE0QyxJQUFHLG9DQUFtQyxJQUFHLHVDQUFzQyxJQUFHLDZFQUE0RSxJQUFHLCtDQUE4QyxJQUFHLHFEQUFvRCxJQUFHLDREQUEyRCxJQUFHLHFDQUFvQyxJQUFHLHlDQUF3QyxJQUFHLHVDQUFzQyxJQUFHLHFFQUFvRSxJQUFHLHdDQUF1QyxJQUFHLDhDQUE2QyxJQUFHLHlDQUF3QyxJQUFHLCtEQUE4RCxJQUFHLHFFQUFvRSxJQUFHLDBDQUF5QyxJQUFHLG9FQUFtRSxJQUFHLCtDQUE4QyxJQUFHLDZDQUE0QyxJQUFHLDZFQUE0RSxJQUFHLDJFQUEwRSxJQUFHLDhCQUE2QixJQUFHLDJCQUEwQixJQUFHLHVEQUFzRCxJQUFHLDJDQUEwQyxJQUFHLHFEQUFvRCxJQUFHLGdEQUErQyxJQUFHLHlCQUF3QixJQUFHLHNGQUFxRixJQUFHLDJIQUEwSCxJQUFHLG1JQUFrSSxJQUFHLDhEQUE2RCxJQUFHLG9DQUFtQyxJQUFHLGdDQUErQixJQUFHLGdGQUErRSxJQUFHLDBGQUF5RixJQUFHLDRGQUEyRixJQUFHLHFFQUFvRSxJQUFHLGlGQUFnRixJQUFHLDBEQUF5RCxJQUFHLHNDQUFxQyxJQUFHLG9EQUFtRCxJQUFHLCtCQUE4QixJQUFHLHFEQUFvRCxJQUFHLDRCQUEyQixJQUFHLGdGQUErRSxJQUFHLDRDQUEyQyxJQUFHLGtDQUFpQyxLQUFJLG1CQUFrQixJQUFHLHFDQUFvQyxJQUFHLHVEQUFzRCxJQUFHLHFEQUFvRCxJQUFHLHlEQUF3RCxJQUFHLDBDQUF5QyxLQUFJLHdEQUF1RCxLQUFJLHVEQUFzRCxLQUFJLDRCQUEyQixLQUFJLG1EQUFrRCxLQUFJLHFEQUFvRCxLQUFJLGdEQUErQyxLQUFJLCtDQUE4QyxLQUFJLG1FQUFrRSxLQUFJLDBFQUF5RSxLQUFJLDBEQUF5RCxLQUFJLGdFQUErRCxLQUFJLG9FQUFtRSxL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QVcsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsU0FBUSxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsT0FBTSxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLFlBQVcsR0FBRSxRQUFPLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxTQUFRLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsV0FBVSxHQUFFLE9BQU0sR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxRQUFPLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFFBQU8sR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFVBQVMsSUFBRyxHQUFFLElBQUcsR0FBRSxZQUFXLEdBQUUsWUFBVyxJQUFHLEdBQUUsVUFBUyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsUUFBTyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFNBQVEsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLFFBQU8sR0FBRSxHQUFFLEdBQUUsR0FBRSxXQUFVLEdBQUUsSUFBRyxHQUFFLFVBQVMsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxXQUFVLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFdBQVUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxTQUFRLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxLQUFJLEdBQUUsU0FBUSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsUUFBTyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxTQUFRLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsV0FBVSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsS0FBSSxHQUFFLEdBQUUsS0FBSSxJQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsTUFBSyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsVUFBUyxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsVUFBUyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFVBQVMsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLEdBQUUsV0FBVSxHQUFFLFNBQVEsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsVUFBUyxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxNQUFLLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLFlBQVcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxTQUFRLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsWUFBVyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsUUFBTyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxTQUFRLEdBQUUsR0FBRSxHQUFFLEdBQUUsV0FBVSxJQUFHLEdBQUUsS0FBSSxHQUFFLFlBQVcsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLFVBQVMsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxTQUFRLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLFVBQVMsSUFBRyxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsWUFBVyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsVUFBUyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLFlBQVcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxVQUFTLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxTQUFRLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsVUFBUyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLE1BQUssR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLE1BQUssR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxZQUFXLElBQUcsR0FBRSxRQUFPLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsTUFBSyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLFlBQVcsTUFBSyxHQUFFLFlBQVcsR0FBRSxNQUFLLEdBQUUsT0FBTSxJQUFHLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLFNBQVEsR0FBRSxZQUFXLEdBQUUsT0FBTSxLQUFJLEdBQUUsWUFBVyxHQUFFLE1BQUssSUFBRyxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsT0FBTSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLFNBQVEsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsS0FBSSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsS0FBSSxNQUFLLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxNQUFLLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxRQUFPLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxPQUFNLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxVQUFTLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsR0FBRSxTQUFRLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLFFBQU8sR0FBRSxJQUFHLEdBQUUsVUFBUyxHQUFFLFVBQVMsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsWUFBVyxHQUFFLFNBQVEsR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxVQUFTLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsUUFBTyxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsSUFBRyxJQUFHLEdBQUUsV0FBVSxHQUFFLFdBQVUsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLFlBQVcsR0FBRSxXQUFVLEdBQUUsS0FBSSxHQUFFLFFBQU8sR0FBRSxZQUFXLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsUUFBTyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxXQUFVLEdBQUUsWUFBVyxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxNQUFLLElBQUcsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsT0FBTSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsUUFBTyxHQUFFLElBQUcsR0FBRSxHQUFFLFFBQU8sR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLFdBQVUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxNQUFLLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxVQUFTLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxRQUFPLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsT0FBTSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxXQUFVLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsTUFBSyxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLFdBQVUsR0FBRSxTQUFRLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsTUFBSyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxZQUFXLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLElBQUcsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxHQUFFLEdBQUUsUUFBTyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFNBQVEsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLFdBQVUsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxHQUFFLEdBQUUsVUFBUyxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxXQUFVLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxVQUFTLEtBQUksR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxLQUFJLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxNQUFLLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxNQUFLLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLElBQUcsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsT0FBTSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxJQUFHLElBQUcsR0FBRSxJQUFHLE1BQUssR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxLQUFJLE1BQUssR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEdBQUUsR0FBRSxLQUFJLEtBQUksR0FBRSxHQUFFLEdBQUUsWUFBVyxHQUFFLE9BQU0sS0FBSSxHQUFFLEdBQUUsR0FBRSxLQUFJLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxNQUFLLEtBQUksR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksTUFBSyxHQUFFLEdBQUUsTUFBSyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsS0FBSSxHQUFFLEdBQUUsS0FBSSxHQUFFLElBQUcsUUFBTyxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLE1BQUssS0FBSSxHQUFFLEtBQUksR0FBRSxPQUFNLEdBQUUsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLE9BQU0sSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsV0FBVSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsTUFBSyxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsWUFBVyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxRQUFPLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFFBQU8sR0FBRSxXQUFVLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxRQUFPLEdBQUUsS0FBSSxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsUUFBTyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxLQUFJLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxTQUFRLEdBQUUsS0FBSSxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLEtBQUksSUFBRyxHQUFFLFFBQU8sR0FBRSxJQUFHLEdBQUUsVUFBUyxHQUFFLFlBQVcsR0FBRSxVQUFTLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxNQUFLLEdBQUUsWUFBVyxHQUFFLFdBQVUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsUUFBTyxHQUFFLFVBQVMsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksS0FBSSxHQUFFLFlBQVcsSUFBRyxHQUFFLE9BQU0sR0FBRSxZQUFXLEdBQUUsU0FBUSxJQUFHLEdBQUUsVUFBUyxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEtBQUksR0FBRSxZQUFXLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsWUFBVyxJQUFHLEdBQUUsS0FBSSxHQUFFLFdBQVUsSUFBRyxHQUFFLFdBQVUsSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksSUFBRyxHQUFFLFdBQVUsSUFBRyxHQUFFLEtBQUksR0FBRSxNQUFLLElBQUcsR0FBRSxPQUFNLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsUUFBTyxHQUFFLEtBQUksSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEtBQUksR0FBRSxLQUFJLEdBQUUsS0FBSSxLQUFJLEdBQUUsU0FBUSxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLElBQUcsR0FBRSxVQUFTLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxJQUFHLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxNQUFLLEdBQUUsS0FBSSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsWUFBVyxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLFlBQVcsSUFBRyxHQUFFLFlBQVcsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLFdBQVUsSUFBRyxHQUFFLFdBQVUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLE9BQU0sSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksTUFBSyxHQUFFLEtBQUksR0FBRSxNQUFLLEdBQUUsS0FBSSxHQUFFLEdBQUUsS0FBSSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxXQUFVLEdBQUUsWUFBVyxHQUFFLElBQUcsSUFBRyxHQUFFLFFBQU8sS0FBSSxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLFNBQVEsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLFNBQVEsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsTUFBSyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsVUFBUyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsVUFBUyxHQUFFLFlBQVcsR0FBRSxZQUFXLElBQUcsR0FBRSxHQUFFLElBQUcsR0FBRSxZQUFXLElBQUcsR0FBRSxVQUFTLEdBQUUsS0FBSSxHQUFFLFVBQVMsR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLFVBQVMsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxJQUFHLEdBQUUsUUFBTyxHQUFFLFlBQVcsSUFBRyxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsWUFBVyxJQUFHLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxJQUFHLElBQUcsR0FBRSxZQUFXLEdBQUUsUUFBTyxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxZQUFXLEdBQUUsS0FBSSxJQUFHLEdBQUUsWUFBVyxHQUFFLEtBQUksR0FBRSxVQUFTLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLFdBQVUsR0FBRSxJQUFHLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsSUFBRyxHQUFFLFlBQVcsR0FBRSxJQUFHLElBQUcsR0FBRSxLQUFJLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLFNBQVEsR0FBRSxXQUFVLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxTQUFRLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxHQUFFLE1BQUssR0FBRSxZQUFXLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxZQUFXLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxZQUFXLElBQUcsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLEtBQUksR0FBRSxZQUFXLEdBQUUsR0FBRSxLQUFJLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxLQUFJLEtBQUksR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxJQUFHLEdBQUUsVUFBUyxHQUFFLFdBQVUsR0FBRSxJQUFHLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxPQUFNLElBQUcsR0FBRSxPQUFNLEdBQUUsR0FBRSxHQUFFLEdBQUUsWUFBVyxNQUFLLEdBQUUsS0FBSSxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLFlBQVcsR0FBRSxPQUFNLEtBQUksR0FBRSxLQUFJLEdBQUUsR0FBRSxJQUFHLElBQUcsR0FBRSxZQUFXLEdBQUUsV0FBVSxHQUFFLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsV0FBVSxJQUFHLEdBQUUsS0FBSSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEtBQUksSUFBRyxHQUFFLElBQUcsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsV0FBVSxHQUFFLEtBQUksSUFBRyxHQUFFLFdBQVUsR0FBRSxZQUFXLEdBQUUsT0FBTSxLQUFJLEdBQUUsS0FBSSxJQUFHLEdBQUUsT0FBTSxLQUFJLEdBQUUsV0FBVSxHQUFFLFlBQVcsR0FBRSxHQUFFLElBQUcsR0FBRSxXQUFVLEdBQUUsWUFBVyxHQUFFLEdBQUUsR0FBRSxJQUFHLEdBQUUsWUFBVyxHQUFFLEtBQUksR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLEtBQUksR0FBRSxHQUFFLElBQUcsSUFBRyxHQUFFLFlBQVcsR0FBRSxHQUFFLElBQUcsR0FBRSxZQUFXLEdBQUUsR0FBRSxJQUFHLEdBQUUsSUFBRyxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxLQUFJLEdBQUUsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLFlBQVcsR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxPQUFNLEdBQUUsT0FBTSxHQUFFLEtBQUksSUFBRyxHQUFFLFlBQVcsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLE9BQU0sR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLElBQUcsR0FBRSxHQUFFLEdBQUUsS0FBSSxHQUFFLEtBQUksR0FBRSxZQUFXLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsS0FBSSxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsR0FBRSxHQUFFLElBQUcsR0FBRSxVQUFTLElBQUcsR0FBRSxLQUFJLElBQUcsR0FBRSxLQUFJLEdBQUUsWUFBVyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsWUFBVyxHQUFFLEdBQUUsSUFBRyxHQUFFLEtBQUksSUFBRyxHQUFFLEtBQUksR0FBRSxZQUFXLEdBQUUsR0FBRSxJQUFHLE9BQU0sR0FBRSxLQUFJLEdBQUUsR0FBRSxNQUFLLEdBQUUsSUFBRyxJQUFHLEdBQUUsS0FBSSxNQUFLLEdBQUUsS0FBSSxNQUFLLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxLQUFJLEdBQUUsS0FBSSxHQUFFLEdBQUUsSUFBRyxNQUFLLEdBQUUsS0FBSSxHQUFFLEdBQUUsT0FBTSxJQUFHLEdBQUUsSUFBRyxHQUFFLEdBQUUsSUFBSSxHQUFFLENBQUMsWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLFdBQVUsV0FBVSxZQUFXLFNBQVEsWUFBVyxZQUFXLFdBQVUsWUFBVyxXQUFVLFlBQVcsWUFBVyxZQUFXLFlBQVcsV0FBVSxRQUFPLFNBQVEsWUFBVyxZQUFXLE9BQU0sVUFBUyxZQUFXLFlBQVcsU0FBUSxZQUFXLFNBQVEsS0FBSSxVQUFTLFlBQVcsS0FBSSxRQUFPLFFBQU8sS0FBSSxZQUFXLFlBQVcsWUFBVyxVQUFTLE1BQUssVUFBUyxZQUFXLFlBQVcsWUFBVyxVQUFTLE9BQU0sSUFBRyxTQUFRLFVBQVMsVUFBUyxXQUFVLFlBQVcsWUFBVyxZQUFXLE1BQUssUUFBTyxPQUFNLFlBQVcsVUFBUyxRQUFPLFlBQVcsV0FBVSxPQUFNLFdBQVUsV0FBVSxZQUFXLE1BQUssWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLFlBQVcsVUFBUyxZQUFXLFlBQVcsWUFBVyxZQUFXLFdBQVUsV0FBVSxZQUFXLFlBQVcsWUFBVyxPQUFNLFlBQVcsS0FBSSxZQUFXLFlBQVcsWUFBVyxZQUFXLFlBQVcsTUFBSyxZQUFXLFlBQVcsWUFBVyxTQUFRLFlBQVcsWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLFdBQVUsWUFBVyxXQUFVLFlBQVcsWUFBVyxZQUFXLFNBQVEsWUFBVyxZQUFXLFlBQVcsWUFBVyxTQUFRLFlBQVcsSUFBRyxJQUFHLFlBQVcsWUFBVyxNQUFLLFlBQVcsWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLFlBQVcsSUFBRyxZQUFXLE9BQU0sWUFBVyxRQUFPLFdBQVUsVUFBUyxZQUFXLFlBQVcsWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLE1BQUssV0FBVSxZQUFXLFlBQVcsV0FBVSxXQUFVLFlBQVcsV0FBVSxZQUFXLFdBQVUsUUFBTyxXQUFVLFlBQVcsWUFBVyxPQUFNLE9BQU0sWUFBVyxXQUFVLE9BQU0sWUFBVyxZQUFXLFNBQVEsWUFBVyxPQUFNLE9BQU0sVUFBUyxZQUFXLFlBQVcsVUFBUyxPQUFNLFlBQVcsWUFBVyxZQUFXLE9BQU0sWUFBVyxZQUFXLFlBQVcsWUFBVyxZQUFXLE9BQU0sWUFBVyxZQUFXLFNBQVEsV0FBVSxRQUFPLFlBQVcsT0FBTSxRQUFPLFlBQVcsVUFBUyxVQUFTLE9BQU0sWUFBVyxZQUFXLElBQUcsWUFBVyxZQUFXLE1BQUssT0FBTSxRQUFPLEtBQUssQ0FBQztBQUEwbUMsSUFBSW1CLEtBQUUsQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLE1BQUssR0FBRSxHQUFFLE1BQUssR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLE1BQUssR0FBRSxHQUFFLEdBQUUsR0FBRSxNQUFLLEdBQUUsR0FBRSxHQUFFLEtBQUksR0FBRSxPQUFNLEdBQUUsR0FBRSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEdBQUUsR0FBRSxPQUFNLEdBQUUsR0FBRSxHQUFFLEdBQUUsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsTUFBSyxHQUFFLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxPQUFNLEdBQUUsR0FBRSxHQUFFLENBQUM7QUFBblUsSUFBcVVSLE1BQUcsQ0FBQyxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLENBQUM7QUFBeGtCLElBQTBrQkUsTUFBRyxDQUFDLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUsR0FBRSxHQUFFLEdBQUUs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TSxTQUFRLEdBQUUsU0FBUSxFQUFDLE9BQU0sTUFBSyxHQUFFLE9BQU0sRUFBQyxPQUFNLE9BQU0sR0FBRSxPQUFNLEVBQUMsT0FBTSxPQUFNLEdBQUUsT0FBTSxFQUFDLE9BQU0sTUFBSyxHQUFFLE9BQU0sRUFBQyxPQUFNLE1BQUssR0FBRSxhQUFZLEVBQUMsT0FBTSxNQUFLLEdBQUUsVUFBUyxFQUFDLE9BQU0sTUFBSyxHQUFFLFFBQU8sRUFBQyxPQUFNLE1BQUssR0FBRSxTQUFRLEVBQUMsT0FBTSxNQUFLLEdBQUUsT0FBTSxFQUFDLE9BQU0sTUFBSyxHQUFFLE1BQUssRUFBQyxPQUFNLE1BQUssR0FBRSxLQUFJLEVBQUMsT0FBTSxNQUFLLEdBQUUsWUFBVyxFQUFDLE9BQU0sTUFBSyxHQUFFLFFBQU8sRUFBQyxPQUFNLE1BQUssR0FBRSxXQUFVLEVBQUMsT0FBTSxNQUFLLEdBQUUsS0FBSSxFQUFDLE9BQU0sT0FBTSxHQUFFLE1BQUssRUFBQyxPQUFNLE1BQUssR0FBRSxJQUFHLEVBQUMsT0FBTSxPQUFNLEdBQUUsU0FBUSxFQUFDLE9BQU0sTUFBSyxHQUFFLFNBQVEsRUFBQyxPQUFNLE1BQUssR0FBRSxXQUFVLEVBQUMsT0FBTSxNQUFLLEdBQUUsUUFBTyxFQUFDLE9BQU0sTUFBSyxHQUFFLEtBQUksRUFBQyxPQUFNLE1BQUssR0FBRSxRQUFPLEVBQUMsT0FBTSxNQUFLLEdBQUUsT0FBTSxFQUFDLE9BQU0sTUFBSyxHQUFFLE1BQUssRUFBQyxPQUFNLE1BQUssR0FBRSxNQUFLLEVBQUMsT0FBTSxNQUFLLEdBQUUsT0FBTSxFQUFDLE9BQU0sT0FBTSxHQUFFLE1BQUssRUFBQyxPQUFNLE1BQUssR0FBRSxNQUFLLEVBQUMsT0FBTSxVQUFTLEdBQUUsSUFBRyxFQUFDLE9BQU0sTUFBSyxHQUFFLFdBQVUsRUFBQyxPQUFNLFVBQVMsR0FBRSxRQUFPLEVBQUMsT0FBTSxPQUFNLEdBQUUsTUFBSyxFQUFDLE9BQU0sT0FBTSxFQUFDLENBQUM7QUFBeWhELElBQUlRLE1BQUcsQ0FBQyxLQUFJLEtBQUks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QyxDQUFDLEdBQUUsRUFBRSxXQUFTLElBQUcsRUFBRSxLQUFLLFVBQVEsSUFBRyxLQUFLLFVBQVE7QUFBQSxRQUFDO0FBQUEsUUFBQyxJQUFJQSxJQUFFO0FBQUMsZUFBSyxRQUFRLFNBQU8sS0FBSyxRQUFRLE1BQU0sV0FBUyxLQUFLLFFBQVEsS0FBSyxZQUFVLEtBQUssWUFBVyxLQUFLLFlBQVUsT0FBRyxLQUFLLFFBQVEsS0FBSyxTQUFPLEtBQUssUUFBUSxLQUFLLFNBQU8sTUFBSSxLQUFLLFFBQU8sS0FBSyxTQUFPLElBQUcsS0FBSyxRQUFRLFVBQVEsS0FBSyxRQUFRLE9BQU8sTUFBSSxLQUFLLFlBQVlBLEdBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBSyxVQUFRLEtBQUssUUFBUSxVQUFRLEtBQUssZ0JBQWdCQSxFQUFDO0FBQUEsUUFBQztBQUFBLFFBQUMsVUFBUztBQUFDLGVBQUssUUFBUSxVQUFRLEtBQUssY0FBYyxHQUFFLEtBQUssUUFBUSxTQUFPLEtBQUssUUFBUSxNQUFNLFdBQVMsS0FBSyxRQUFRLEtBQUssWUFBVSxLQUFLLFlBQVcsS0FBSyxRQUFRLEtBQUssU0FBTyxLQUFLLFFBQVEsS0FBSyxTQUFPLE1BQUksS0FBSyxRQUFPLEtBQUssS0FBSyxPQUFPLE1BQUksS0FBSyxZQUFZLEtBQUssVUFBVSxTQUFTLENBQUM7QUFBQSxRQUFDO0FBQUEsUUFBQyxjQUFjQSxJQUFFO0FBQUMsY0FBRyxLQUFLLFVBQVFBLEdBQUUsQ0FBQyxHQUFFLEtBQUssUUFBUSxPQUFNO0FBQUMsZ0JBQUksSUFBRSxLQUFLLFFBQVEsTUFBTSxLQUFLLFFBQVEsTUFBTSxTQUFPLENBQUM7QUFBRSxpQkFBRyxFQUFFLFNBQU8sVUFBUSxDQUFDLEVBQUUsS0FBSyxpQkFBZSxFQUFFLEtBQUssZUFBYSxLQUFLLFFBQU8sS0FBSyxTQUFPO0FBQUEsVUFBRztBQUFBLFFBQUM7QUFBQSxRQUFDLFlBQVlBLElBQUU7QUFBQyxjQUFJLElBQUUsS0FBSyxNQUFNLFdBQVdBLEVBQUM7QUFBRSxpQkFBTSxFQUFDLFFBQU8s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QyxHQUFFLEtBQUssV0FBUyxHQUFFLEtBQUssYUFBVyxHQUFFLEtBQUssT0FBSyxJQUFJO0FBQUcsY0FBSUMsS0FBRSxJQUFJO0FBQUcsZUFBSyxLQUFLLE9BQU9BLEVBQUMsR0FBRSxLQUFLLFVBQVFBLElBQUUsS0FBSyxTQUFPLEdBQUdKLElBQUUsS0FBSyxPQUFPO0FBQUEsUUFBQztBQUFBLFFBQUMsUUFBTztBQUFDLGlCQUFPLEtBQUssS0FBSztBQUFBLFFBQUM7QUFBQSxRQUFDLFFBQU87QUFBQyxjQUFJQSxLQUFFLEtBQUs7QUFBVSxlQUFLLFFBQVEsSUFBSSxHQUFHLEVBQUMsT0FBTUEsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFDLE9BQU0sRUFBQyxNQUFLQSxHQUFFLENBQUMsR0FBRSxRQUFPQSxHQUFFLENBQUMsRUFBQyxHQUFFLEtBQUksRUFBQyxNQUFLQSxHQUFFLENBQUMsR0FBRSxRQUFPQSxHQUFFLENBQUMsRUFBQyxFQUFDLEdBQUUsYUFBWUEsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUUsS0FBSztBQUFBLFFBQVU7QUFBQSxRQUFDLFFBQU87QUFBQyxjQUFJQSxLQUFFLEtBQUs7QUFBVSxlQUFLLFFBQVEsSUFBSSxHQUFHLEVBQUMsT0FBTUEsR0FBRSxDQUFDLEdBQUUsUUFBTyxFQUFDLE9BQU0sRUFBQyxNQUFLQSxHQUFFLENBQUMsR0FBRSxRQUFPQSxHQUFFLENBQUMsRUFBQyxHQUFFLEtBQUksRUFBQyxNQUFLQSxHQUFFLENBQUMsR0FBRSxRQUFPQSxHQUFFLENBQUMsRUFBQyxFQUFDLEdBQUUsYUFBWUEsR0FBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUUsS0FBSztBQUFBLFFBQVU7QUFBQSxRQUFDLFVBQVM7QUFBQyxjQUFJQSxLQUFFLE9BQUcsSUFBRSxLQUFLLFVBQVUsQ0FBQyxFQUFFLFFBQVEsY0FBYSxFQUFFLEdBQUVHO0FBQUUsZUFBSyxRQUFRLFNBQU8sRUFBRSxXQUFXLElBQUksTUFBSSxJQUFFLEVBQUUsVUFBVSxDQUFDLEdBQUVILEtBQUUsT0FBSUcs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LEtBQUssQ0FBQyxHQUFFQTtBQUFBLFVBQUMsR0FBRSxDQUFDLENBQUM7QUFBQSxRQUFDLEdBQUVMLEdBQUUsVUFBVSxNQUFJLFNBQVNHLElBQUU7QUFBQyxpQkFBTyxLQUFLLE1BQU0sSUFBSUEsRUFBQztBQUFBLFFBQUMsR0FBRUgsR0FBRSxVQUFVLFNBQU8sU0FBU0csSUFBRUMsSUFBRTtBQUFDLGlCQUFPLEtBQUssTUFBTSxPQUFPRCxJQUFFQyxFQUFDO0FBQUEsUUFBQyxHQUFFSixHQUFFLFVBQVUsUUFBTSxTQUFTRyxJQUFFO0FBQUMsaUJBQU8sS0FBSyxNQUFNLE1BQU1BLEVBQUM7QUFBQSxRQUFDLEdBQUVILEdBQUUsVUFBVSxPQUFLLFNBQVNHLElBQUU7QUFBQyxpQkFBTyxLQUFLLE1BQU0sS0FBS0EsRUFBQztBQUFBLFFBQUMsR0FBRUgsR0FBRSxVQUFVLFNBQU8sU0FBU0csSUFBRTtBQUFDLGlCQUFPLEtBQUssTUFBTSxPQUFPQSxFQUFDO0FBQUEsUUFBQyxHQUFFSCxHQUFFLFVBQVUsT0FBSyxTQUFTRyxJQUFFO0FBQUMsaUJBQU8sS0FBSyxNQUFNLEtBQUtBLEVBQUM7QUFBQSxRQUFDLEdBQUVILEdBQUUsVUFBVSxXQUFTLFdBQVU7QUFBQyxpQkFBTyxLQUFLLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRTtBQUFBLFFBQUMsR0FBRSxHQUFHQSxJQUFFLENBQUMsRUFBQyxLQUFJLFNBQVEsS0FBSSxXQUFVO0FBQUMsaUJBQU8sS0FBSyxHQUFHLENBQUM7QUFBQSxRQUFDLEVBQUMsR0FBRSxFQUFDLEtBQUksUUFBTyxLQUFJLFdBQVU7QUFBQyxpQkFBTyxLQUFLLEdBQUcsS0FBSyxTQUFPLENBQUM7QUFBQSxRQUFDLEVBQUMsR0FBRSxFQUFDLEtBQUksVUFBUyxLQUFJLFdBQVU7QUFBQyxpQkFBTyxLQUFLLE1BQU07QUFBQSxRQUFNLEVBQUMsQ0FBQyxDQUFDLEdBQUVBO0FBQUEsTUFBQyxFQUFFLEdBQUcsT0FBTztBQUFFLE1BQUEyb0IsSUFBRyxVQUFRO0FBQUcsTUFBQUMsSUFBRyxV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RSxhQUFXLEVBQUUsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLG9CQUFrQixFQUFFLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLHdCQUFzQixFQUFFLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLGVBQWEsRUFBRSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGNBQVksRUFBRSxJQUFFLGVBQWNBLElBQUVBLElBQUUsZUFBYSxFQUFFLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsZUFBYSxFQUFFLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsZUFBYSxFQUFFLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsa0JBQWdCLEVBQUUsSUFBRSxtQkFBa0JBLElBQUVBLElBQUUsa0JBQWdCLEVBQUUsSUFBRSxtQkFBa0JBLElBQUVBLElBQUUsaUJBQWUsRUFBRSxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxnQkFBYyxFQUFFLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLFlBQVUsRUFBRSxJQUFFLGFBQVlBLElBQUVBLElBQUUsY0FBWSxFQUFFLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGdCQUFjLEVBQUUsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsaUJBQWUsRUFBRSxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxlQUFhLEVBQUUsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxpQkFBZSxFQUFFLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLGFBQVcsRUFBRSxJQUFFLGNBQWFBLElBQUVBLElBQUUsa0JBQWdCLEdBQUcsSUFBRSxtQkFBa0JBLElBQUVBLElBQUUsWUFBVSxHQUFHLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxnQkFBYyxHQUFHLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLFlBQVUsR0FBRyxJQUFFLGFBQVlBLElBQUVBLElBQUUsb0JBQWtCLEdBQUcsSUFBRSxxQkFBb0JBLElBQUVBLElBQUUsYUFBVyxHQUFHLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxjQUFZLEdBQUcsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGdCQUFjLEdBQUcsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZUFBYSxHQUFHLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsZ0JBQWMsR0FBRyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxjQUFZLEdBQUcsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGVBQWEsR0FBRyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGNBQVksR0FBRyxJQUFFLGVBQWNBLElBQUVBLElBQUUsYUFBVyxHQUFHLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxnQkFBYyxHQUFHLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLGFBQVcsR0FBRyxJQUFFLGNBQWFBLElBQUVBLElBQUUsY0FBWSxHQUFHLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxlQUFhLEdBQUcsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxjQUFZLEdBQUcsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLG9CQUFrQixHQUFHLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLG1CQUFpQixHQUFHLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLGFBQVcsR0FBRyxJQUFFLGNBQWFBLElBQUVBLElBQUUsaUJBQWUsR0FBRyxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxpQkFBZSxHQUFHLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLG1CQUFpQixHQUFHLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLGdCQUFjLEdBQUcsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZ0JBQWMsR0FBRyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxlQUFhLEdBQUcsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxrQkFBZ0IsR0FBRyxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxrQkFBZ0IsR0FBRyxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxZQUFVLEdBQUcsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLGlCQUFlLEdBQUcsSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsZ0JBQWMsR0FBRyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxhQUFX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QUFHLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxjQUFZLEdBQUcsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGtCQUFnQixJQUFJLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLGNBQVksSUFBSSxJQUFFLGVBQWNBLElBQUVBLElBQUUsZ0JBQWMsSUFBSSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxTQUFPLElBQUksSUFBRSxVQUFTQSxJQUFFQSxJQUFFLGNBQVksS0FBSyxJQUFFLGVBQWNBLElBQUVBLElBQUUsY0FBWSxLQUFLLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxjQUFZLEtBQUssSUFBRSxlQUFjQSxJQUFFQSxJQUFFLFlBQVUsTUFBTSxJQUFFLGFBQVlBLElBQUVBLElBQUUsZ0JBQWMsTUFBTSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxZQUFVLE1BQU0sSUFBRSxhQUFZQSxJQUFFQSxJQUFFLGNBQVksT0FBTyxJQUFFLGVBQWNBLElBQUVBLElBQUUsUUFBTSxPQUFPLElBQUUsU0FBUUEsSUFBRUEsSUFBRSxZQUFVLE9BQU8sSUFBRSxhQUFZQSxJQUFFQSxJQUFFLGFBQVcsT0FBTyxJQUFFLGNBQWFBLElBQUVBLElBQUUsV0FBUyxRQUFRLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxZQUFVLFFBQVEsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLGFBQVcsUUFBUSxJQUFFLGNBQWFBLElBQUVBLElBQUUsZ0JBQWMsU0FBUyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxNQUFJLFFBQVEsSUFBRSxPQUFNQSxJQUFFQSxJQUFFLE9BQUssR0FBRyxJQUFFLFFBQU9BLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxRQUFNLE1BQU0sSUFBRSxTQUFRQSxJQUFFQSxJQUFFLE9BQUssTUFBTSxJQUFFLFFBQU9BLElBQUVBLElBQUUsWUFBVSxJQUFJLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxTQUFPLElBQUksSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFdBQVMsS0FBSyxJQUFFLFlBQVdBLElBQUVBLElBQUUsaUNBQStCLE1BQU0sSUFBRSxrQ0FBaUNBLElBQUVBLElBQUUsOEJBQTRCLE1BQU0sSUFBRSwrQkFBOEJBLElBQUVBLElBQUUsb0JBQWtCLE1BQU0sSUFBRSxxQkFBb0JBLElBQUVBLElBQUUsbUJBQWlCLENBQUMsSUFBRSxvQkFBbUJBLElBQUVBLElBQUUscUJBQW1CLE1BQU0sSUFBRSxzQkFBcUJBLElBQUVBLElBQUUsbUJBQWlCLE1BQU0sSUFBRSxvQkFBbUJBLElBQUVBLElBQUUsZ0JBQWMsTUFBTSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxvQkFBa0IsTUFBTSxJQUFFLHFCQUFvQkEsSUFBRUEsSUFBRSxzQkFBb0IsTUFBTSxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSxvQkFBa0IsTUFBTSxJQUFFLHFCQUFvQkEsSUFBRUEsSUFBRSxzQkFBb0IsTUFBTSxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSwwQkFBd0IsQ0FBQyxJQUFFLDJCQUEwQkEsSUFBRUEsSUFBRSxpQkFBZSxNQUFNLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLHNCQUFvQixLQUFLLElBQUUsdUJBQXNCQSxJQUFFQSxJQUFFLHNCQUFvQixLQUFLLElBQUUsdUJBQXNCQSxJQUFFQSxJQUFFLG1CQUFpQixLQUFLLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLHdCQUFzQixNQUFNLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLG9CQUFrQixNQUFNLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLGdCQUFjLE9BQU8sSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZUFBYSxPQUFPLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsaUJBQWUsR0FBRyxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxjQUFZLEdBQUcsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLHFCQUFtQixLQUFLLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLGNBQVksTUFBTSxJQUFFLGVBQWNBLElBQUVBLElBQUUsZ0NBQThCLEdBQUcsSUFBRSxpQ0FBZ0NBLElBQUVBLElBQUUsc0NBQW9DLElBQUksSUFBRSx1Q0FBc0NBLElBQUVBLElBQUUsZUFBYSxPQUFPLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsdUJBQXFCLElBQUksSUFBRSx3QkFBdUJBLE1BQUltSSxPQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQW5JLFNBQUlBLElBQUVBLElBQUUsVUFBUSxDQUFDLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxVQUFRLENBQUMsSUFBRSxXQUFVQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsZUFBYSxDQUFDLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsb0JBQWtCLENBQUMsSUFBRSxxQkFBb0JBLElBQUVBLElBQUUsa0JBQWdCLENBQUMsSUFBRSxtQkFBa0JBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGVBQWEsRUFBRSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLG9CQUFrQixFQUFFLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLGlCQUFlLEdBQUcsSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsaUJBQWUsR0FBRyxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxvQkFBa0IsR0FBRyxJQUFFLHFCQUFvQkEsSUFBRUEsSUFBRSxrQkFBZ0IsSUFBSSxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxpQkFBZSxJQUFJLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLE9BQUssSUFBSSxJQUFFLFFBQU9BLElBQUVBLElBQUUsZ0JBQWMsSUFBSSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxvQkFBa0IsS0FBSyxJQUFFLHFCQUFvQkEsSUFBRUEsSUFBRSxnQkFBYyxLQUFLLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLGVBQWEsS0FBSyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGVBQWEsTUFBTSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLFNBQU8sTUFBTSxJQUFFLFVBQVNBLElBQUVBLElBQUUsZ0JBQWMsTUFBTSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxhQUFXLE9BQU8sSUFBRSxjQUFhQSxJQUFFQSxJQUFFLFlBQVUsQ0FBQyxJQUFFLGFBQVlBLElBQUVBLElBQUUsZUFBYSxHQUFHLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsVUFBUSxFQUFFLElBQUUsV0FBVUEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRSxPQUFLLFVBQVNBLElBQUUsY0FBWSxpQkFBZ0JBLElBQUUsTUFBSSxTQUFRQSxJQUFFLFFBQU0sV0FBVUEsSUFBRSxhQUFXLFlBQVdBLElBQUUsU0FBTyxZQUFXQSxJQUFFLFVBQVEsYUFBWUEsSUFBRSxPQUFLLFVBQVNBLElBQUUsU0FBTyxZQUFXQSxJQUFFLGdCQUFjLG1CQUFrQkEsSUFBRSxRQUFNLFdBQVVBLElBQUUsV0FBUyxjQUFhQSxJQUFFLFdBQVMsY0FBYUEsSUFBRSxZQUFVLGlCQUFnQkEsSUFBRSxlQUFhLFdBQVVBLElBQUUsVUFBUSxXQUFVQSxJQUFFLE9BQUssUUFBT0EsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxPQUFLLENBQUMsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLGNBQVksQ0FBQyxJQUFFLGVBQWNBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxjQUFZLENBQUMsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLGdCQUFjLEVBQUUsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsY0FBWSxFQUFFLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxpQkFBZSxFQUFFLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLHVDQUFxQyxHQUFHLElBQUUsd0NBQXVDQSxJQUFFQSxJQUFFLDJDQUF5QyxHQUFHLElBQUUsNENBQTJDQSxJQUFFQSxJQUFFLG1CQUFpQixHQUFHLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLHFCQUFtQixJQUFJLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLCtCQUE2QixJQUFJLElBQUUsZ0NBQStCQSxJQUFFQSxJQUFFLHFDQUFtQyxJQUFJLElBQUUsc0NBQXFDQSxJQUFFQSxJQUFFLG9DQUFrQyxJQUFJLElBQUUscUNBQW9DQSxJQUFFQSxJQUFFLDZCQUEyQixLQUFLLElBQUUsOEJBQTZCQSxJQUFFQSxJQUFFLDJCQUF5QixLQUFLLElBQUUsNEJBQTJCQSxJQUFFQSxJQUFFLHdCQUFzQixLQUFLLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLG9CQUFrQixNQUFNLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLCtCQUE2QixNQUFNLElBQUUsZ0NBQStCQSxJQUFFQSxJQUFFLHVCQUFxQixTQUFTLElBQUUsd0JBQXVCQSxJQUFFQSxJQUFFLHNDQUFvQyxPQUFPLElBQUUsdUNBQXNDQSxJQUFFQSxJQUFFLDJDQUF5QyxPQUFPLElBQUUsNENBQTJDQSxJQUFFQSxJQUFFLG9CQUFrQixPQUFPLElBQUUscUJBQW9CQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUVxSSxPQUFJLENBQUFySSxTQUFJQSxJQUFFQSxJQUFFLE1BQUksQ0FBQyxJQUFFLE9BQU1BLElBQUVBLElBQUUsVUFBUSxDQUFDLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsVUFBUSxFQUFFLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxPQUFLLEVBQUUsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLFNBQU8sRUFBRSxJQUFFLFVBQVNBLElBQUVBLElBQUUsZ0JBQWMsR0FBRyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxnQkFBYyxHQUFHLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLGlCQUFlLEdBQUcsSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsY0FBWSxJQUFJLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxnQkFBYyxJQUFJLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLFdBQVMsSUFBSSxJQUFFLFlBQVdBLElBQUVBLElBQUUsaUJBQWUsSUFBSSxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxPQUFLLEtBQUssSUFBRSxRQUFPQSxJQUFFQSxJQUFFLFlBQVUsS0FBSyxJQUFFLGFBQVlBLElBQUVBLElBQUUsT0FBSyxLQUFLLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxRQUFNLE1BQU0sSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGdCQUFjLE1BQU0sSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsU0FBTyxNQUFNLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxRQUFNLE9BQU8sSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGVBQWEsT0FBTyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLFFBQU0sT0FBTyxJQUFFLFNBQVFBLElBQUVBLElBQUUsZ0JBQWMsT0FBTyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxjQUFZLFFBQVEsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLGVBQWEsUUFBUSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGVBQWEsUUFBUSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGtCQUFnQixTQUFTLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLGdCQUFjLFNBQVMsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZUFBYSxDQUFDLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsV0FBUyxLQUFLLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxVQUFRLElBQUksSUFBRSxXQUFVQSxJQUFFQSxJQUFFLE9BQUssTUFBTSxJQUFFLFFBQU9BLElBQUVBLElBQUUsWUFBVSxJQUFJLElBQUUsYUFBWUEsSUFBRUEsSUFBRSx3QkFBc0IsR0FBRyxJQUFFLHlCQUF3QkEsSUFBRUEsSUFBRSxnQ0FBOEIsSUFBSSxJQUFFLGlDQUFnQ0EsSUFBRUEsSUFBRSxrQkFBZ0IsTUFBTSxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxnQkFBYyxNQUFNLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLFlBQVUsUUFBUSxJQUFFLGFBQVlBLElBQUVBLElBQUUsYUFBVyxTQUFTLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxhQUFXLEdBQUcsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLGFBQVcsSUFBSSxJQUFFLGNBQWFBLElBQUVBLElBQUUsY0FBWSxHQUFHLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxXQUFTLElBQUksSUFBRSxZQUFXQSxJQUFFQSxJQUFFLGVBQWEsS0FBSyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLFdBQVMsS0FBSyxJQUFFLFlBQVdBLElBQUVBLElBQUUsWUFBVSxTQUFTLElBQUUsYUFBWUEsSUFBRUEsSUFBRSx3QkFBc0IsU0FBUyxJQUFFLHlCQUF3QkEsSUFBRUEsSUFBRSxrQkFBZ0IsU0FBUyxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxzQkFBb0IsT0FBTyxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSxpQkFBZSxPQUFPLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLGVBQWEsT0FBTyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLDJCQUF5QixRQUFRLElBQUUsNEJBQTJCQSxJQUFFQSxJQUFFLHdCQUFzQixTQUFTLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLGVBQWEsU0FBUyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLDJCQUF5QixTQUFTLElBQUUsNEJBQTJCQSxJQUFFQSxJQUFFLGtCQUFnQixTQUFTLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLGVBQWEsUUFBUSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLFlBQVUsUUFBUSxJQUFFLGFBQVlBLElBQUVBLElBQUUsYUFBVyxTQUFTLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxlQUFhLFNBQVMsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxzQkFBb0IsTUFBTSxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSwwQkFBd0IsT0FBTyxJQUFFLDJCQUEwQkEsSUFBRUEsSUFBRSxtQkFBaUIsT0FBTyxJQUFFLG9CQUFtQkEsSUFBRUEsSUFBRSxzQkFBb0IsUUFBUSxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSx1QkFBcUIsUUFBUSxJQUFFLHdCQUF1QkEsSUFBRUEsSUFBRSxvQkFBa0IsUUFBUSxJQUFFLHFCQUFvQkEsTUFBSXFJLE9BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBckksU0FBSUEsSUFBRUEsSUFBRSxPQUFLLENBQUMsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLFFBQU0sQ0FBQyxJQUFFLFNBQVFBLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxZQUFVLENBQUMsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLFFBQU0sQ0FBQyxJQUFFLFNBQVFBLElBQUVBLElBQUUsWUFBVSxFQUFFLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxTQUFPLEVBQUUsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLGVBQWEsRUFBRSxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGdCQUFjLEdBQUcsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZ0JBQWMsR0FBRyxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSw2Q0FBMkMsR0FBRyxJQUFFLDhDQUE2Q0EsSUFBRUEsSUFBRSxnQkFBYyxJQUFJLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLGdCQUFjLElBQUksSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsWUFBVSxJQUFJLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxlQUFhLElBQUksSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxlQUFhLEtBQUssSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxpQkFBZSxLQUFLLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLHVCQUFxQixLQUFLLElBQUUsd0JBQXVCQSxJQUFFQSxJQUFFLCtCQUE2QixNQUFNLElBQUUsZ0NBQStCQSxJQUFFQSxJQUFFLG9CQUFrQixNQUFNLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLG9DQUFrQyxNQUFNLElBQUUscUNBQW9DQSxJQUFFQSxJQUFFLDRCQUEwQixPQUFPLElBQUUsNkJBQTRCQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLG1CQUFpQixNQUFNLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLG1CQUFpQixNQUFNLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLHFCQUFtQixJQUFJLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLGlCQUFlLE9BQU8sSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsaUJBQWUsT0FBTyxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSw4QkFBNEIsT0FBTyxJQUFFLCtCQUE4QkEsSUFBRUEsSUFBRSx1QkFBcUIsUUFBUSxJQUFFLHdCQUF1QkEsSUFBRUEsSUFBRSw4QkFBNEIsUUFBUSxJQUFFLCtCQUE4QkEsSUFBRUEsSUFBRSwwQkFBd0IsUUFBUSxJQUFFLDJCQUEwQkEsSUFBRUEsSUFBRSx3QkFBc0IsT0FBTyxJQUFFLHlCQUF3QkEsSUFBRUEsSUFBRSxzQkFBb0IsT0FBTyxJQUFFLHVCQUFzQkEsSUFBRUEsSUFBRSxxQkFBbUIsT0FBTyxJQUFFLHNCQUFxQkEsSUFBRUEsSUFBRSxnQkFBYyxRQUFRLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLHdCQUFzQixRQUFRLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLDZCQUEyQixRQUFRLElBQUUsOEJBQTZCQSxJQUFFQSxJQUFFLHFCQUFtQixRQUFRLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLDhCQUE0QixRQUFRLElBQUUsK0JBQThCQSxJQUFFQSxJQUFFLHNCQUFvQixRQUFRLElBQUUsdUJBQXNCQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFlBQVUsQ0FBQyxJQUFFLGFBQVlBLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxnQkFBYyxDQUFDLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLFlBQVUsQ0FBQyxJQUFFLGFBQVlBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxlQUFhLENBQUMsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxlQUFhLENBQUMsSUFBRSxnQkFBZUEsSUFBRUEsSUFBRSxhQUFXLEVBQUUsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLDJCQUF5QixFQUFFLElBQUUsNEJBQTJCQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxPQUFLLENBQUMsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsUUFBTSxDQUFDLElBQUUsU0FBUUEsSUFBRUEsSUFBRSxXQUFTLEVBQUUsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLGNBQVksRUFBRSxJQUFFLGVBQWNBLElBQUVBLElBQUUsVUFBUSxFQUFFLElBQUUsV0FBVUEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxPQUFLLENBQUMsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLG9CQUFrQixDQUFDLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLFVBQVEsQ0FBQyxJQUFFLFdBQVVBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxxQkFBbUIsRUFBRSxJQUFFLHNCQUFxQkEsSUFBRUEsSUFBRSxxQkFBbUIsRUFBRSxJQUFFLHNCQUFxQkEsSUFBRUEsSUFBRSxtQkFBaUIsRUFBRSxJQUFFLG9CQUFtQkEsSUFBRUEsSUFBRSw2QkFBMkIsR0FBRyxJQUFFLDhCQUE2QkEsSUFBRUEsSUFBRSxhQUFXLEdBQUcsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLGFBQVcsQ0FBQyxJQUFFLGNBQWFBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxjQUFZLENBQUMsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLG9CQUFrQixDQUFDLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFlBQVUsQ0FBQyxJQUFFLGFBQVlBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxPQUFLLENBQUMsSUFBRSxRQUFPQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLGtCQUFnQixDQUFDLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsbUJBQWlCLENBQUMsSUFBRSxvQkFBbUJBLElBQUVBLElBQUUsbUJBQWlCLEVBQUUsSUFBRSxvQkFBbUJBLElBQUVBLElBQUUsNkJBQTJCLEVBQUUsSUFBRSw4QkFBNkJBLElBQUVBLElBQUUsa0JBQWdCLEVBQUUsSUFBRSxtQkFBa0JBLElBQUVBLElBQUUseUNBQXVDLEdBQUcsSUFBRSwwQ0FBeUNBLElBQUVBLElBQUUsbUJBQWlCLEdBQUcsSUFBRSxvQkFBbUJBLElBQUVBLElBQUUsaUJBQWUsRUFBRSxJQUFFLGtCQUFpQkEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxZQUFVLENBQUMsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxvQkFBa0IsQ0FBQyxJQUFFLHFCQUFvQkEsSUFBRUEsSUFBRSxtQkFBaUIsQ0FBQyxJQUFFLG9CQUFtQkEsSUFBRUEsSUFBRSxtQkFBaUIsQ0FBQyxJQUFFLG9CQUFtQkEsSUFBRUEsSUFBRSx3QkFBc0IsQ0FBQyxJQUFFLHlCQUF3QkEsSUFBRUEsSUFBRSwrQkFBNkIsRUFBRSxJQUFFLGdDQUErQkEsSUFBRUEsSUFBRSx1QkFBcUIsRUFBRSxJQUFFLHdCQUF1QkEsSUFBRUEsSUFBRSwyQkFBeUIsRUFBRSxJQUFFLDRCQUEyQkEsSUFBRUEsSUFBRSxhQUFXLEdBQUcsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLGVBQWEsR0FBRyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLGdCQUFjLEdBQUcsSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsZUFBYSxJQUFJLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsV0FBUyxJQUFJLElBQUUsWUFBV0EsSUFBRUEsSUFBRSw2QkFBMkIsR0FBRyxJQUFFLDhCQUE2QkEsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxhQUFXLENBQUMsSUFBRSxjQUFhQSxJQUFFQSxJQUFFLHlCQUF1QixDQUFDLElBQUUsMEJBQXlCQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFFBQU0sQ0FBQyxJQUFFLFNBQVFBLElBQUVBLElBQUUsVUFBUSxDQUFDLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLE9BQUssRUFBRSxJQUFFLFFBQU9BLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxrQkFBZ0IsQ0FBQyxJQUFFLG1CQUFrQkEsSUFBRUEsSUFBRSxnQkFBYyxDQUFDLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLG9CQUFrQixDQUFDLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLGVBQWEsQ0FBQyxJQUFFLGdCQUFlQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsSUFBRUEsSUFBRSw0QkFBMEIsQ0FBQyxJQUFFLDZCQUE0QkEsSUFBRUEsSUFBRSw4QkFBNEIsQ0FBQyxJQUFFLCtCQUE4QkEsSUFBRUEsSUFBRSxnQ0FBOEIsQ0FBQyxJQUFFLGlDQUFnQ0EsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxVQUFRLENBQUMsSUFBRSxXQUFVQSxJQUFFQSxJQUFFLFFBQU0sQ0FBQyxJQUFFLFNBQVFBLElBQUVBLElBQUUsYUFBVyxDQUFDLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxVQUFRLENBQUMsSUFBRSxXQUFVQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFVBQVEsQ0FBQyxJQUFFLFdBQVVBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsV0FBUyxFQUFFLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxVQUFRLEdBQUcsSUFBRSxXQUFVQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLHVCQUFxQixDQUFDLElBQUUsd0JBQXVCQSxJQUFFQSxJQUFFLDBCQUF3QixDQUFDLElBQUUsMkJBQTBCQSxJQUFFQSxJQUFFLHlCQUF1QixDQUFDLElBQUUsMEJBQXlCQSxJQUFFQSxJQUFFLHdCQUFzQixDQUFDLElBQUUseUJBQXdCQSxJQUFFQSxJQUFFLGNBQVksQ0FBQyxJQUFFLGVBQWNBLElBQUVBLElBQUUsK0JBQTZCLENBQUMsSUFBRSxnQ0FBK0JBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsSUFBRUEsSUFBRSx1QkFBcUIsQ0FBQyxJQUFFLHdCQUF1QkEsSUFBRUEsSUFBRSx5QkFBdUIsQ0FBQyxJQUFFLDBCQUF5QkEsSUFBRUEsSUFBRSx3QkFBc0IsQ0FBQyxJQUFFLHlCQUF3QkEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLE1BQUksQ0FBQUEsU0FBSUEsSUFBRUEsSUFBRSxnQkFBYyxDQUFDLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLG1CQUFpQixDQUFDLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLGtCQUFnQixDQUFDLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLGlCQUFlLENBQUMsSUFBRSxrQkFBaUJBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUFBLFNBQUlBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxXQUFTLENBQUMsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLE1BQUksQ0FBQyxJQUFFLE9BQU1BLElBQUVBLElBQUUsTUFBSSxDQUFDLElBQUUsT0FBTUEsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sRUFBRSxJQUFFLFVBQVNBLElBQUVBLElBQUUsU0FBTyxHQUFHLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxXQUFTLEdBQUcsSUFBRSxZQUFXQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGNBQVksQ0FBQyxJQUFFLGVBQWNBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxjQUFZLENBQUMsSUFBRSxlQUFjQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsTUFBSSxDQUFBQSxTQUFJQSxJQUFFQSxJQUFFLHlCQUF1QixDQUFDLElBQUUsMEJBQXlCQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLE1BQUksTUFBSSxDQUFDLENBQUMsR0FBRTZILE9BQUksQ0FBQTdILFNBQUlBLElBQUVBLElBQUUsVUFBUSxDQUFDLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxLQUFHLENBQUMsSUFBRSxNQUFLQSxJQUFFQSxJQUFFLE1BQUksQ0FBQyxJQUFFLE9BQU1BLElBQUVBLElBQUUsS0FBRyxDQUFDLElBQUUsTUFBS0EsSUFBRUEsSUFBRSxNQUFJLENBQUMsSUFBRSxPQUFNQSxJQUFFQSxJQUFFLFdBQVMsQ0FBQyxJQUFFLFlBQVdBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxXQUFTLENBQUMsSUFBRSxZQUFXQSxNQUFJNkgsT0FBSSxDQUFDLENBQUMsR0FBRXdGLE9BQUksQ0FBQXJOLFNBQUlBLElBQUVBLElBQUUsTUFBSSxDQUFDLElBQUUsT0FBTUEsSUFBRUEsSUFBRSxNQUFJLENBQUMsSUFBRSxPQUFNQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxTQUFPLENBQUMsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sQ0FBQyxJQUFFLFVBQVNBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxTQUFPLEVBQUUsSUFBRSxVQUFTQSxJQUFFQSxJQUFFLE9BQUssR0FBRyxJQUFFLFFBQU9BLElBQUVBLElBQUUsU0FBTyxFQUFFLElBQUUsVUFBU0EsTUFBSXFOLE9BQUksQ0FBQyxDQUFDLEdBQUVDLE9BQUksQ0FBQXROLFNBQUlBLElBQUVBLElBQUUsV0FBUyxDQUFDLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxNQUFJLENBQUMsSUFBRSxPQUFNQSxNQUFJc04sT0FBSSxDQUFDLENBQUMsR0FBRSxNQUFJLENBQUF0TixTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFdU4sT0FBSSxDQUFBdk4sU0FBSUEsSUFBRUEsSUFBRSxnQkFBYyxDQUFDLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLG9CQUFrQixHQUFHLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLFdBQVMsRUFBRSxJQUFFLFlBQVdBLElBQUVBLElBQUUsaUJBQWUsRUFBRSxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxnQkFBYyxJQUFJLElBQUUsaUJBQWdCQSxJQUFFQSxJQUFFLHFCQUFtQixJQUFJLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLFdBQVMsR0FBRyxJQUFFLFlBQVdBLElBQUVBLElBQUUsUUFBTSxFQUFFLElBQUUsU0FBUUEsSUFBRUEsSUFBRSxtQkFBaUIsR0FBRyxJQUFFLG9CQUFtQkEsSUFBRUEsSUFBRSxTQUFPLElBQUksSUFBRSxVQUFTQSxJQUFFQSxJQUFFLFNBQU8sSUFBSSxJQUFFLFVBQVNBLElBQUVBLElBQUUsVUFBUSxJQUFJLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxVQUFRLElBQUksSUFBRSxXQUFVQSxJQUFFQSxJQUFFLGtCQUFnQixJQUFJLElBQUUsbUJBQWtCQSxJQUFFQSxJQUFFLGlCQUFlLElBQUksSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsZ0JBQWMsSUFBSSxJQUFFLGlCQUFnQkEsSUFBRUEsSUFBRSxjQUFZLElBQUksSUFBRSxlQUFjQSxJQUFFQSxJQUFFLG1CQUFpQixJQUFJLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLFlBQVUsSUFBSSxJQUFFLGFBQVlBLElBQUVBLElBQUUsWUFBVSxJQUFJLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxpQkFBZSxJQUFJLElBQUUsa0JBQWlCQSxJQUFFQSxJQUFFLHFCQUFtQixJQUFJLElBQUUsc0JBQXFCQSxJQUFFQSxJQUFFLG1CQUFpQixLQUFLLElBQUUsb0JBQW1CQSxJQUFFQSxJQUFFLG9CQUFrQixJQUFJLElBQUUscUJBQW9CQSxJQUFFQSxJQUFFLFFBQU0sSUFBSSxJQUFFLFNBQVFBLElBQUVBLElBQUUsdUJBQXFCLEtBQUssSUFBRSx3QkFBdUJBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLEtBQUcsRUFBRSxJQUFFLE1BQUtBLElBQUVBLElBQUUsS0FBRyxFQUFFLElBQUUsTUFBS0EsSUFBRUEsSUFBRSxLQUFHLEVBQUUsSUFBRSxNQUFLQSxJQUFFQSxJQUFFLEtBQUcsRUFBRSxJQUFFLE1BQUtBLElBQUVBLElBQUUsS0FBRyxFQUFFLElBQUUsTUFBS0EsSUFBRUEsSUFBRSxLQUFHLEVBQUUsSUFBRSxNQUFLQSxJQUFFQSxJQUFFLEtBQUcsRUFBRSxJQUFFLE1BQUtBLElBQUVBLElBQUUsS0FBRyxFQUFFLElBQUUsTUFBS0EsSUFBRUEsSUFBRSxLQUFHLEVBQUUsSUFBRSxNQUFLQSxJQUFFQSxJQUFFLEtBQUcsRUFBRSxJQUFFLE1BQUtBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsR0FBRyxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxHQUFHLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEdBQUcsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxJQUFFLEVBQUUsSUFBRSxLQUFJQSxJQUFFQSxJQUFFLElBQUUsRUFBRSxJQUFFLEtBQUlBLElBQUVBLElBQUUsSUFBRSxFQUFFLElBQUUsS0FBSUEsSUFBRUEsSUFBRSxZQUFVLEVBQUUsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLFdBQVMsRUFBRSxJQUFFLFlBQVdBLElBQUVBLElBQUUsS0FBRyxFQUFFLElBQUUsTUFBS0EsSUFBRUEsSUFBRSxZQUFVLEVBQUUsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLFdBQVMsRUFBRSxJQUFFLFlBQVdBLElBQUVBLElBQUUsTUFBSSxHQUFHLElBQUUsT0FBTUEsSUFBRUEsSUFBRSxRQUFNLEVBQUUsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGFBQVcsR0FBRyxJQUFFLGNBQWFBLElBQUVBLElBQUUsZUFBYSxFQUFFLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsYUFBVyxFQUFFLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxRQUFNLEVBQUUsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLFFBQU0sRUFBRSxJQUFFLFNBQVFBLElBQUVBLElBQUUsTUFBSSxFQUFFLElBQUUsT0FBTUEsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLFNBQU8sRUFBRSxJQUFFLFVBQVNBLElBQUVBLElBQUUsY0FBWSxFQUFFLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxJQUFFQSxJQUFFLE9BQUssRUFBRSxJQUFFLFFBQU9BLElBQUVBLElBQUUsV0FBUyxFQUFFLElBQUUsWUFBV0EsSUFBRUEsSUFBRSxRQUFNLEVBQUUsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLFlBQVUsR0FBRyxJQUFFLGFBQVlBLElBQUVBLElBQUUsY0FBWSxFQUFFLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxZQUFVLEVBQUUsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLFVBQVEsRUFBRSxJQUFFLFdBQVVBLElBQUVBLElBQUUsT0FBSyxFQUFFLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxXQUFTLEVBQUUsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLFlBQVUsRUFBRSxJQUFFLGFBQVlBLElBQUVBLElBQUUsY0FBWSxFQUFFLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxRQUFNLEVBQUUsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLFFBQU0sR0FBRyxJQUFFLFNBQVFBLElBQUVBLElBQUUsWUFBVSxDQUFDLElBQUUsYUFBWUEsSUFBRUEsSUFBRSxXQUFTLEVBQUUsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLGdCQUFjLEtBQUssSUFBRSxpQkFBZ0JBLElBQUVBLElBQUUsTUFBSSxDQUFDLElBQUUsT0FBTUEsSUFBRUEsSUFBRSxjQUFZLEVBQUUsSUFBRSxlQUFjQSxNQUFJdU4sT0FBSSxDQUFDLENBQUMsR0FBRUMsT0FBSSxDQUFBeE4sU0FBSUEsSUFBRSxLQUFHLE9BQU1BLElBQUUsTUFBSSxRQUFPQSxJQUFFLE1BQUksU0FBUUEsSUFBRSxLQUFHLE9BQU1BLElBQUUsTUFBSSxRQUFPQSxJQUFFLE9BQUssU0FBUUEsSUFBRSxjQUFZLGdCQUFlQSxJQUFFLE1BQUksUUFBT0EsSUFBRSxNQUFJLFFBQU9BLElBQUUsT0FBSyxVQUFTQSxJQUFFLE1BQUksUUFBT0EsSUFBRSxNQUFJLFFBQU9BLElBQUUsT0FBSyxVQUFTQSxNQUFJd04sT0FBSSxDQUFDLENBQUMsR0FBRXZGLE9BQUksQ0FBQWpJLFNBQUlBLElBQUVBLElBQUUsT0FBSyxDQUFDLElBQUUsUUFBT0EsSUFBRUEsSUFBRSxxQkFBbUIsQ0FBQyxJQUFFLHNCQUFxQkEsSUFBRUEsSUFBRSxjQUFZLENB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TSxJQUFHLFNBQVEsSUFBRyxLQUFJLElBQUcsTUFBSyxLQUFJLFVBQVMsS0FBSSxLQUFJLEtBQUksSUFBRyxLQUFJLFlBQVcsS0FBSSxRQUFPLEtBQUksSUFBRyxLQUFJLE9BQU0sS0FBSSxZQUFXLEtBQUksV0FBVSxLQUFJLFdBQVUsS0FBSSxJQUFHLEtBQUksT0FBTSxLQUFJLEtBQUksS0FBSSxRQUFPLEtBQUksV0FBVSxLQUFJLE9BQU0sS0FBSSxLQUFJLEtBQUksTUFBSyxLQUFJLFFBQU8sS0FBSSxRQUFPLEtBQUksU0FBUSxLQUFJLFNBQVEsS0FBSSxXQUFVLEtBQUksUUFBTyxLQUFJLFVBQVMsS0FBSSxLQUFJLEtBQUksVUFBUyxLQUFJLFNBQVEsS0FBSSxRQUFPLEtBQUksUUFBTyxLQUFJLFdBQVUsS0FBSSxLQUFJLEtBQUksUUFBTyxLQUFJLFFBQU8sS0FBSSxPQUFNLEtBQUksUUFBTyxLQUFJLFFBQU8sS0FBSSxNQUFLLEtBQUksT0FBTSxLQUFJLE1BQUssS0FBSSxLQUFJLEtBQUksTUFBSyxLQUFJLFFBQU8sS0FBSSxXQUFVLEtBQUksUUFBTyxLQUFJLFNBQVEsS0FBSSxPQUFNLEtBQUksS0FBSSxLQUFJLE1BQUssS0FBSSxPQUFNLEtBQUksTUFBSyxLQUFJLE9BQU0sS0FBSSxPQUFNLEtBQUksT0FBTSxLQUFJLElBQUcsSUFBRyxHQUFFLEtBQUcsSUFBSSxJQUFJLE9BQU8sUUFBUUEsR0FBRSxDQUFDLEdBQUUsS0FBRyxJQUFJLElBQUksT0FBTyxRQUFRLEVBQUMsR0FBR0EsS0FBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsT0FBTSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxNQUFLLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxNQUFLLElBQUcsT0FBTSxJQUFHLE9BQU0sSUFBRyxNQUFLLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxNQUFLLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxNQUFLLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxPQUFNLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxNQUFLLElBQUcsTUFBSyxJQUFHLEtBQUksSUFBRyxNQUFLLElBQUcsTUFBSyxJQUFHLEtBQUksSUFBRyxLQUFJLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxNQUFLLElBQUcsT0FBTSxJQUFHLE1BQUssSUFBRyxNQUFLLElBQUcsT0FBTSxJQUFHLE9BQU0sSUFBRyxRQUFPLElBQUcsTUFBSyxJQUFHLE1BQUssSUFBRyxNQUFLLElBQUcsT0FBTSxJQUFHLE9BQU0sSUFBRyxPQUFNLElBQUcsS0FBSSxJQUFHLEtBQUksSUFBRyxLQUFJLEdBQUUsQ0FBQyxDQUFDLEdBQUUsS0FBRyxDQUFDLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sS0FBSyxHQUFFLEtBQUcsQ0FBQyxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sS0FBSyxHQUFFLEtBQUcsQ0FBQyxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxNQUFLLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLEtBQUssR0FBRTFCLE1BQUcsQ0FBQyxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssS0FBSSxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sTUFBSyxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxLQUFLLEdBQUUsS0FBRyxDQUFDLElBQUcsSUFBRyxJQUFHLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLEtBQUksTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxNQUFNLEdBQUUsS0FBRyxDQUFDLElBQUcsSUFBRyxJQUFHLElBQUcsSUFBRyxJQUFHLElBQUcsS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLEtBQUksS0FBSSxLQUFJLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssS0FBSSxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxNQUFLLE1BQUssTUFBSyxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxPQUFNLE9BQU0sT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE1BQU0sR0FBRXdCLE1BQUcsMkNBQTBDLEtBQUcsOENBQTZDdEIsTUFBRyxHQUFHLEVBQUUsR0FBRWEsTUFBRyxHQUFFLEtBQUcsU0FBUU0sTUFBRyxPQUFPLFVBQVUsY0FBWSxDQUFDalIsS0FBRUMsUUFBSUQsSUFBRSxZQUFZQyxHQUFDLElBQUUsU0FBU0EsS0FBRUMsSUFBRTtBQUFDLGNBQUksSUFBRUQsSUFBRTtBQUFPLGNBQUdDLEtBQUUsS0FBR0EsTUFBRztBQUFFO0FBQU8sY0FBSUMsTUFBRUYsSUFBRSxXQUFXQyxF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MVgsR0FBQyxLQUFHMlgsSUFBRzNYLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUzBYLElBQUcxWCxLQUFFO0FBQUMsZ0JBQU9BLElBQUUsTUFBSztBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsUUFBRTtBQUFDLGVBQU07QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZ0JBQU9BLElBQUUsTUFBSztBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsUUFBRTtBQUFDLGVBQU07QUFBQSxNQUFFO0FBQUMsZUFBUzJYLElBQUczWCxLQUFFO0FBQUMsZ0JBQU9BLElBQUUsTUFBSztBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsUUFBRTtBQUFDLGVBQU07QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZ0JBQU9BLElBQUUsTUFBSztBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsUUFBRTtBQUFDLGVBQU80WCxJQUFHNVgsS0FBRSxJQUFFO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLFlBQUlDLE1BQUVELElBQUU7QUFBSyxlQUFPQyxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSTtBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdELEtBQUU7QUFBQyxZQUFJQyxNQUFFRCxJQUFFO0FBQUssZUFBT0MsUUFBSSxPQUFLQSxRQUFJO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0QsS0FBRTtBQUFDLGdCQUFPQSxJQUFFLE1BQUs7QUFBQSxVQUFDLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFB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QUMsZUFBT3NYLElBQUd0WCxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9vWSxJQUFHcFksR0FBQyxLQUFHLEdBQUdBLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsWUFBSUMsTUFBRUQsSUFBRTtBQUFLLGVBQU9DLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0QsS0FBRTtBQUFDLFlBQUlDLE1BQUVELElBQUU7QUFBSyxlQUFPQyxRQUFJLE9BQUtBLFFBQUk7QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHRCxLQUFFO0FBQUMsWUFBSUMsTUFBRUQsSUFBRTtBQUFLLGVBQU9DLFFBQUksTUFBSUEsUUFBSTtBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdELEtBQUU7QUFBQyxZQUFJQyxNQUFFRCxJQUFFO0FBQUssZUFBT0MsUUFBSSxPQUFLQSxRQUFJO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0QsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTyxPQUFLQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZ0JBQU9BLElBQUUsTUFBSztBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUUsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBRztBQUFRLG1CQUFNO0FBQUEsUUFBRTtBQUFBLE1BQUM7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxnQkFBT0EsSUFBRSxNQUFLO0FBQUEsVUFBQyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFHO0FBQVEsbUJBQU07QUFBQSxRQUFFO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSTtBQUFBLE1BQUc7QUFBQyxlQUFTcVksSUFBR3JZLEtBQUU7QUFBQyxlQUFPQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE9BQUtBLFFBQUksT0FBS0EsUUFBSTtBQUFBLE1BQUc7QUFBQyxl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QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFFLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7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QyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxnQkFBT0EsSUFBRSxNQUFLO0FBQUEsVUFBQyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU07QUFBQSxRQUFFO0FBQUMsZUFBTTtBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPLEdBQUdBLEdBQUMsS0FBRyxHQUFHQSxHQUFDLEtBQUcsR0FBR0EsR0FBQyxLQUFHMGMsSUFBRzFjLEdBQUMsS0FBRyxHQUFHQSxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRUMsS0FBRTtBQUFDLGVBQUtELE9BQUdBLElBQUUsU0FBT0M7QUFBRyxVQUFBRCxNQUFFQSxJQUFFO0FBQU8sZUFBT0E7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBTyxHQUFHQSxLQUFFLEdBQUc7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBTyxHQUFHQSxLQUFFLEdBQUc7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsWUFBSUM7QUFBRSxlQUFLRCxPQUFHQSxJQUFFLFNBQU87QUFBSyxVQUFBQyxNQUFFRCxLQUFFQSxNQUFFQSxJQUFFO0FBQU8sZUFBTSxDQUFDQyxLQUFFRCxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQUssR0FBR0EsR0FBQztBQUFHLFVBQUFBLE1BQUVBLElBQUU7QUFBSyxlQUFPQTtBQUFBLE1BQUM7QUFBQyxlQUFTcWUsSUFBR3JlLEtBQUVDLEtBQUU7QUFB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S0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFPO0FBQUEsVUFBRyxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFHLEtBQUs7QUFBSSxtQkFBTztBQUFBLFVBQUcsS0FBSztBQUFJLG1CQUFPQyxLQUFFLEtBQUc7QUFBQSxVQUFHLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBSSxtQkFBTztBQUFBLFVBQUcsS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFPO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFHO0FBQVEsbUJBQU07QUFBQSxRQUFFO0FBQUEsTUFBQztBQUFDLGVBQVN5ZixJQUFHM2YsS0FBRTtBQUFDLGdCQUFPQSxLQUFFO0FBQUEsVUFBQyxLQUFLO0FBQUcsbUJBQU87QUFBQSxVQUFFLEtBQUs7QUFBRyxtQkFBTztBQUFBLFVBQUUsS0FBSztBQUFHLG1CQUFPO0FBQUEsVUFBRSxLQUFLO0FBQUcsbUJBQU87QUFBQSxVQUFFLEtBQUs7QUFBRyxtQkFBTztBQUFBLFVBQUUsS0FBSztBQUFHLG1CQUFPO0FBQUEsVUFBRSxLQUFLO0FBQUEsVUFBRyxLQUFLO0FBQUEsVUFBRyxLQUFL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RSxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFJLEtBQUs7QUFBSSxtQkFBTztBQUFBLFVBQUksS0FBSztBQUFHLG1CQUFPO0FBQUEsVUFBRSxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFFLEtBQUs7QUFBRyxtQkFBTztBQUFBLFVBQUssS0FBSztBQUFHLG1CQUFPO0FBQUEsVUFBSyxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFJLEtBQUs7QUFBSSxtQkFBTztBQUFBLFVBQUcsS0FBSztBQUFJLG1CQUFPO0FBQUEsVUFBTSxLQUFLO0FBQUksbUJBQU87QUFBQSxVQUFNLEtBQUs7QUFBSSxtQkFBTztBQUFBLFVBQU0sS0FBSztBQUFJLG1CQUFPO0FBQUEsUUFBTTtBQUFDLGVBQU87QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsUUFBSSxNQUFJQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU8sR0FBR0EsR0FBQyxLQUFHQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLFFBQUksTUFBSUEsUUFBSSxNQUFJQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU95VCxJQUFHelQsR0FBQyxLQUFHLEdBQUdBLElBQUUsY0FBYyxJQUFJO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU8sR0FBR0EsR0FBQyxLQUFHQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU95VCxJQUFHelQsR0FBQyxLQUFHLEdBQUdBLElBQUUsY0FBYyxJQUFJO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLE9BQUcsTUFBSUEsT0FBRztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxZQUFJQyxNQUFFLEdBQUdELEdBQUM7QUFBRSxlQUFPQyxPQUFHLENBQUNBLElBQUUsZUFBYUEsSUFBRSxRQUFNO0FB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QSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxRQUFNQSxJQUFFO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRUMsS0FBRTtBQUFDLGVBQU8sR0FBR0QsS0FBRUEsTUFBRTZQLElBQUc1UCxHQUFDLEVBQUUsTUFBTTtBQUFBLE1BQUM7QUFBQyxlQUFTLEdBQUdELEtBQUVDLEtBQUU7QUFBQyxlQUFPLEdBQUdELEtBQUVBLEtBQUVDLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHRCxLQUFFQyxLQUFFQyxJQUFFO0FBQUMsZUFBTyxHQUFHLEdBQUdGLEtBQUVFLElBQUUsS0FBRSxHQUFFLEdBQUdELEtBQUVDLElBQUUsS0FBRSxHQUFFQSxFQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0YsS0FBRUMsS0FBRUMsSUFBRTtBQUFDLGVBQU8sR0FBR0YsSUFBRSxLQUFJQyxJQUFFLEtBQUlDLEVBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHRixLQUFFQyxLQUFFQyxJQUFFO0FBQUMsZUFBTyxHQUFHLEdBQUdGLEtBQUVFLElBQUUsS0FBRSxHQUFFRCxJQUFFLEtBQUlDLEVBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHRixLQUFFQyxLQUFFQyxJQUFFO0FBQUMsZUFBTyxHQUFHRixJQUFFLEtBQUksR0FBR0MsS0FBRUMsSUFBRSxLQUFFLEdBQUVBLEVBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHRixLQUFFQyxLQUFFQyxJQUFFLEdBQUU7QUFBQyxZQUFJQyxNQUFFLEdBQUdGLEtBQUVDLElBQUUsQ0FBQztBQUFFLGVBQU8sR0FBR0EsSUFBRUYsSUFBRSxLQUFJRyxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0gsS0FBRUMsS0FBRUMsSUFBRTtBQUFDLGVBQU8sR0FBR0EsSUFBRUYsSUFBRSxLQUFJQyxJQUFFLEdBQUc7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHRCxLQUFFQyxLQUFFO0FBQUMsZUFBTSxDQUFDLEdBQUdELElBQUUsS0FBSUEsSUFBRSxLQUFJQyxHQUFDO0FBQUEs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QUFFLFFBQU0sQ0FBQyxJQUFFLFNBQVFBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGFBQVcsQ0FBQyxJQUFFLGNBQWFBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsSUFBRUEsSUFBRSxXQUFTLENBQUMsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLFlBQVUsQ0FBQyxJQUFFLGFBQVlBLElBQUVBLElBQUUsYUFBVyxDQUFDLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxZQUFVLENBQUMsSUFBRSxhQUFZQSxJQUFFQSxJQUFFLGFBQVcsQ0FBQyxJQUFFLGNBQWFBLElBQUVBLElBQUUsYUFBVyxDQUFDLElBQUUsY0FBYUEsSUFBRUEsSUFBRSxXQUFTLEVBQUUsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLGFBQVcsRUFBRSxJQUFFLGNBQWFBLElBQUVBLElBQUUsUUFBTSxFQUFFLElBQUUsU0FBUUEsSUFBRUEsSUFBRSxXQUFTLEVBQUUsSUFBRSxZQUFXQSxJQUFFQSxJQUFFLGlCQUFlLEVBQUUsSUFBRSxrQkFBaUJBLElBQUVBLElBQUUsaUJBQWUsRUFBRSxJQUFFLGtCQUFpQkEsSUFBRUEsSUFBRSxRQUFNLEVBQUUsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLFNBQU8sRUFBRSxJQUFFLFVBQVNBLElBQUVBLElBQUUsZUFBYSxFQUFFLElBQUUsZ0JBQWVBLElBQUVBLElBQUUsU0FBTyxFQUFFLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxVQUFRLEVBQUUsSUFBRSxXQUFVQSxJQUFFQSxJQUFFLFVBQVEsRUFBRSxJQUFFLFdBQVVBLElBQUVBLElBQUUsU0FBTyxDQUFDLElBQUUsVUFBU0EsSUFBRUEsSUFBRSxVQUFRLEVBQUUsSUFBRSxXQUFVQSxNQUFJLE1BQUksQ0FBQyxDQUFDLEdBQUUsS0FBRyxTQUFRLEtBQUcscURBQW9ELEtBQUcscURBQW9ELEtBQUcsd0RBQXVELEtBQUcsSUFBSSxJQUFJLE9BQU8sUUFBUSxFQUFDLEtBQUksT0FBTSxNQUFLLE9BQU0sTUFBSyxPQUFNLE1BQUssT0FBTSxNQUFLLE9BQU0sTUFBSyxPQUFNLE1BQUssUUFBTyxLQUFJLE9BQU0sS0FBSSxPQUFNLEtBQUksT0FBTSxVQUFTLFdBQVUsVUFBUyxXQUFVLFFBQU8sV0FBVSxRQUFPLFNBQVEsQ0FBQyxDQUFDLEdBQUUsS0FBRyxxQkFBb0IsS0FBRyx1Q0FBc0MsS0FBRyx1Q0FBc0MsS0FBRyxJQUFJLElBQUksT0FBTyxRQUFRLEVBQUMsS0FBSSxVQUFTLEtBQUksU0FBUSxDQUFDLENBQUMsR0FBRTZmLE1BQUcsQ0FBQyxJQUFHLE1BQU0sR0FBRW1CLE1BQUcscUVBQW9FLEtBQUc7QUFBQSxHQUNsdjJFLEtBQUc7QUFBQSxHQUNIelgsTUFBRyxFQUFDLG9CQUFtQixNQUFJLElBQUcscUJBQW9CLE1BQUksSUFBRywwQkFBeUIsTUFBSSxJQUFHLGlDQUFnQyxNQUFJLElBQUcsMEJBQXlCLE1BQUksSUFBRyxzQkFBcUIsTUFBSSxJQUFHLG9CQUFtQixNQUFJLElBQUcseUJBQXdCLE1BQUksSUFBRywrQkFBOEIsTUFBSSxHQUFFLEdBQUUyWCxNQUFHLENBQUMsR0FBRSxLQUFHLGFBQVksS0FBRyxDQUFDLElBQUcsRUFBRSxHQUFFb0MsTUFBRyxDQUFDLGdCQUFlLG9CQUFtQixlQUFlLEdBQUUsS0FBRyxPQUFPQSxJQUFHLEtBQUssR0FBRyxDQUFDLFdBQVUsS0FBRyxFQUFDLDZCQUE0QixnQ0FBK0IsNkJBQTRCLEtBQUssRUFBRSxpQkFBZ0IsMEJBQXlCLENBQUF0akIsUUFBRyxHQUFHQSxLQUFFLEdBQUcsMkJBQTJCLEVBQUMsR0FBRSxLQUFHLEVBQUMsNkJBQTRCLFNBQVEsNkJBQTRCLEtBQUssRUFBRSxpQkFBZ0IsMEJBQXlCLENBQUFBLFFBQUcsR0FBR0EsS0FBRSxHQUFHLDJCQUEyQixFQUFDLEdBQUUsS0FBRyxFQUFDLDZCQUE0QixTQUFRLDZCQUE0QixXQUFVLDBCQUF5QixDQUFBQSxRQUFHLEdBQUdBLEtBQUUsR0FBRywyQkFBMkIsRUFBQyxHQUFFLEtBQUcsRUFBQyxPQUFNLElBQUcsYUFBWSxJQUFHLFNBQVEsR0FBRSxHQUFFaWlCLE1BQUcsQ0FBQyxDQUFDLE9BQU0sUUFBTyxPQUFPLEdBQUUsQ0FBQyxRQUFPLFFBQVEsR0FBRSxDQUFDLFFBQU8sUUFBUSxDQUFDLEdBQUVHLE1BQUcsR0FBR0gsR0FBRSxHQUFFLEtBQUcsQ0FBQyxHQUFHQSxLQUFHLENBQUMsT0FBTyxDQUFDLEdBQUUsS0FBRyxDQUFDLFNBQVEsVUFBUyxVQUFTLFFBQU8sUUFBTyxPQUFNLE1BQU0sR0FBRSxLQUFHLENBQUMsQ0FBQyxPQUFNLE1BQU0sR0FBRSxDQUFDLE1BQU0sR0FBRSxDQUFDLE1BQU0sQ0FBQyxHQUFFLEtBQUcsR0FBRyxFQUFFLEdBQUVELE1BQUcsQ0FBQyxDQUFDLE9BQU0sUUFBTyxTQUFRLE9BQU0sTUFBTSxHQUFFLENBQUMsUUFBTyxVQUFTLE1BQU0sR0FBRSxDQUFDLFFBQU8sVUFBUyxNQUFNLENBQUMsR0FBRSxLQUFHLENBQUMsR0FBR0EsS0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFFLEtBQUcsQ0FBQyxTQUFRLFVBQVMsUUFBUSxHQUFFLEtBQUcsQ0FBQyxPQUFNLFFBQU8sUUFBTyxNQUFNLEdBQUUsS0FBRyxDQUFDLFFBQU8sVUFBUyxRQUFPLFFBQU8sVUFBUyxNQUFNLEdBQUUsTUFBSSxDQUFBaGlCLFNBQUlBLElBQUVBLElBQUUsVUFBUSxDQUFDLElBQUUsV0FBVUEsSUFBRUEsSUFBRSxRQUFNLENBQUMsSUFBRSxTQUFRQSxJQUFFQSxJQUFFLGNBQVksQ0FBQyxJQUFFLGVBQWNBLElBQUVBLElBQUUsY0FBWSxDQUFDLElBQUUsZUFBY0EsTUFBSSxNQUFJLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxTQUFRLFVBQVMsVUFBUyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sT0FBTSxRQUFPLFFBQU8sT0FBTyxHQUFFLEtBQUcsRUFBQyxPQUFNcUQsS0FBRyxhQUFZQSxJQUFFO0FBQUEsTUFBQyxFQUFDLENBQUM7QUFBRSxlQUFTLEtBQUk7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ZUFBUyxHQUFHRCxLQUFFO0FBQUMsWUFBR0EsT0FBRyxPQUFLQSxPQUFHO0FBQUksaUJBQU07QUFBRyxnQkFBT0EsS0FBRTtBQUFBLFVBQUMsS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFZLEtBQUs7QUFBSSxtQkFBTTtBQUFBLFVBQVksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFZLEtBQUs7QUFBSSxtQkFBTTtBQUFBLFVBQVksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFZLEtBQUs7QUFBSSxtQkFBTTtBQUFBLFVBQVksS0FBSztBQUFBLFVBQUksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFHLEtBQUs7QUFBSSxtQkFBTTtBQUFBLFVBQVksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWSxLQUFLO0FBQUEsVUFBSSxLQUFLO0FBQUksbUJBQU07QUFBQSxVQUFZLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBQSxVQUFJLEtBQUs7QUFBSSxtQkFBTTtBQUFBLFVBQVksS0FBSztBQUFBLFVBQUksS0FBSztBQUFJLG1CQUFNO0FBQUEsVUFBWTtBQUFRLG1CQUFNO0FBQUEsUUFBVztBQUFBLE1BQUM7QUFBQyxlQUFTNjVCLElBQUc3NUIsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTyxJQUFHQTtBQUFBLE1BQUM7QUFBQyxlQUFTLEdBQUdBLEtBQUVDLEtBQUVDLElBQUU7QUFBQyxZQUFJLEdBQUVDLEtBQUVNLElBQUVDLElBQUVDLElBQUUsR0FBRW9ELEtBQUVtQixJQUFFQyxLQUFFSTtBQUFFLFdBQUd2RixHQUFDLEtBQUdTLEtBQUUsSUFBR0MsS0FBRVYsS0FBRVcsS0FBRVgsSUFBRSxRQUFPLElBQUVDLEtBQUU4RCxNQUFFN0QsT0FBSWdDLEdBQUUsT0FBT2pDLFFBQUksUUFBTUEsUUFBSSxLQUFLLEdBQUVRLE1BQUdSLFFBQUksT0FBS0QsSUFBRSxpQkFBZUEsSUFBRSxvQkFBa0IsSUFBRyxJQUFFQyxRQUFJLE9BQUtELElBQUUsb0JBQWtCQSxJQUFFLG9CQUFtQmtGLEtBQUUsTUFBSWpGLFFBQUksT0FBS0QsSUFBRSxpQkFBZUEsSUFBRSxpQkFBZ0JtRixNQUFFLE1BQUlsRixRQUFJLE9BQUtELElBQUUsb0JBQWtCQSxJQUFFLG9CQUFtQlcsS0FBRSxNQUFJdUUsR0FBRSxFQUFFLFFBQU9sRixJQUFFLGFBQVdBLElBQUUsVUFBVSxXQUFTa0MsR0FBRSxPQUFPaEMsT0FBSSxVQUFRLE9BQU9BLE1BQUcsU0FBUyxHQUFFLElBQUVBLElBQUVDLE1BQUVGLFFBQUksT0FBS0QsSUFBRSxVQUFVLE9BQU8sS0FBR0EsSUFBRSxVQUFVLE9BQU8sS0FBSXVGLE1BQUV2RixJQUFFO0FBQXVCLFlBQUlvRixLQUFFRyxNQUFFLEdBQUdyRCxHQUFFLGFBQWEvQixHQUFDLENBQUMsSUFBRSxHQUFHQSxLQUFFLEdBQUVRLEVBQUM7QUFBRSxlQUFPeUUsR0FBRSxXQUFTM0UsSUFBRTJFLEdBQUUsZ0JBQWMsR0FBRUEsR0FBRSx1QkFBcUJHLEtBQUVMLE1BQUdDLE9BQUcsT0FBTyxlQUFlQyxJQUFFLFFBQU8sRUFBQyxLQUFJRixHQUFDLENBQUMsR0FBRSxPQUFPLGVBQWVFLElBQUUsaUJBQWdCLEVBQUMsS0FBSUQsSUFBQyxDQUFDLE1BQUlqRCxHQUFFLE9BQU8sQ0FBQ3FELEdBQUMsR0FBRUgsR0FBRSxPQUFLMUUsTUFBRyxJQUFHMEUsR0FBRSxnQkFBY3JCLE1BQUdxQjtBQUFBLE1BQUM7QUFBQyxlQUFTLEdBQUdwRixLQUFFQyxLQUFFQyxJQUFFO0FBQUMsWUFBSSxHQUFFQyxLQUFFTSxJQUFFQyxJQUFFQyxJQUFFLEdBQUVvRCxLQUFFbUI7QUFBRSxpQkFBUUssT0FBS3ZGLE1BQUVBLElBQUUsV0FBU3FEO0FBQUcsa0JBQU9rQyxJQUFFLE1BQUs7QUFBQSxZQUFDLEtBQUk7QUFBVyxrQkFBRW5DLElBQUcsR0FBRTgxQixJQUFHbFcsSUFBRyx1QkFBdUJ6ZCxJQUFFLElBQUksR0FBRUEsR0FBQyxDQUFDO0FBQUU7QUFBQSxZQUFNLEtBQUk7QUFBYyxjQUFBcEYsTUFBRWlELElBQUdqRCxLQUFFLDBCQUEwQixFQUFFLElBQUlvRixJQUFFLElBQUksQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQWlCLGNBQUFMLEtBQUU7QUFBRztBQUFBLFlBQU0sS0FBSTtBQUFZLGNBQUF6RSxLQUFFMkMsSUFBRzNDLElBQUUsRUFBQyxLQUFJLElBQUcsS0FBSSxJQUFHLFVBQVM4RSxJQUFFLEtBQUksQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQU8sY0FBQTdFLEtBQUUwQyxJQUFHMUMsSUFBRSxFQUFDLEtBQUksSUFBRyxLQUFJLElBQUcsVUFBUzZFLElBQUUsS0FBSSxDQUFDO0FBQUU7QUFBQSxZQUFNLEtBQUk7QUFBYyxjQUFBN0UsS0FBRTBDLElBQUcxQyxJQUFFLEVBQUMsS0FBSSxJQUFHLEtBQUksSUFBRyxVQUFTNkUsSUFBRSxNQUFLLGdCQUFlLEdBQUUsQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQWUsY0FBQTdFLEtBQUUwQyxJQUFHMUMsSUFBRSxFQUFDLEtBQUksSUFBRyxLQUFJLElBQUcsVUFBUzZFLElBQUUsTUFBSyxnQkFBZSxFQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFNLGNBQUE1RSxLQUFFeUMsSUFBR3pDLElBQUUsRUFBQyxLQUFJLElBQUcsS0FBSSxJQUFHLFVBQVM0RSxJQUFFLEtBQUksQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQVUsa0JBQUlIO0FBQUUsdUJBQVFDLE1BQUtFLElBQUU7QUFBTSxpQkFBQyxDQUFDdEYsT0FBR29GLEdBQUUsU0FBTyxnQkFBY0QsS0FBRWhDLElBQUdnQyxJQUFFOHpCLElBQUdsVyxJQUFHLHVCQUF1QjNkLEdBQUUsTUFBS0EsR0FBRSxTQUFPLFVBQVUsR0FBRUEsRUFBQyxDQUFDO0FBQUcsa0JBQUVuQyxJQUFHLEdBQUVrQyxFQUFDLEdBQUVyQixNQUFFWCxJQUFHVyxLQUFFaWYsSUFBRyxzQkFBc0J6ZCxJQUFFLE1BQUtILE1BQUcvQixHQUFFLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFXLGtCQUFHcEQsS0FBRTtBQUFDLGdCQUFBOEQsUUFBSUEsTUFBRSxDQUFDO0FBQUc7QUFBQSxjQUFLO0FBQUEsWUFBQyxLQUFJO0FBQU8sY0FBQUEsTUFBRVgsSUFBR1csS0FBRW0xQixJQUFHbFcsSUFBRyx1QkFBdUJ6ZCxJQUFFLE1BQUtBLElBQUUsU0FBTyxVQUFVLEdBQUVBLEdBQUMsQ0FBQztBQUFFO0FBQUEsWUFBTTtBQUFRLGNBQUFyRCxHQUFFLFlBQVlxRCxHQUFDO0FBQUEsVUFBQztBQUFDLFlBQUcsQ0FBQ3hCLEtBQUU7QUFBQyxjQUFJd0IsTUFBRXlkLElBQUcsdUJBQXVCLFFBQU8sS0FBRTtBQUFFLGFBQUd6ZCxLQUFFLEdBQUUsT0FBT3JGLE1BQUcsYUFBV0EsR0FBRSxJQUFFQSxFQUFDLEdBQUU2RCxNQUFFLENBQUN3QixHQUFDO0FBQUEsUUFBQztBQUFDLFlBQUlKLE1BQUUsR0FBRyxxQkFBcUIsS0FBRzlCLEtBQUcsUUFBT1UsR0FBQztBQUFFLGVBQU8sR0FBRyxHQUFFb0IsR0FBQyxHQUFFLEdBQUdwQixLQUFFb0IsR0FBQyxHQUFFLEdBQUcsR0FBRUEsR0FBQyxHQUFFQSxJQUFFLGtCQUFnQkQsSUFBRUMsSUFBRSxVQUFRaEYsS0FBRWdGLElBQUUsa0JBQWdCMUUsTUFBRzRDLEtBQUc4QixJQUFFLDBCQUF3QnpFLElBQUV5RSxJQUFFLHlCQUF1QnhFLE1BQUcwQyxLQUFHOEI7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHbkYsS0FBRTtBQUFDLFlBQUlDLEtBQUVDO0FBQUUsaUJBQVFDLE9BQUtILElBQUU7QUFBUyxrQkFBT0csSUFBRSxNQUFLO0FBQUEsWUFBQyxLQUFJO0FBQUEsWUFBVyxLQUFJO0FBQU8sY0FBQUYsTUFBRW1ELElBQUduRCxLQUFFaTVCLElBQUdsVyxJQUFHLHVCQUF1QjdpQixJQUFFLE1BQUtBLElBQUUsU0FBTyxVQUFVLEdBQUVBLEdBQUMsQ0FBQztBQUFFO0FBQUEsWUFBTSxLQUFJO0FBQUEsWUFBaUIsS0FBSTtBQUFBLFlBQVksS0FBSTtBQUFBLFlBQU8sS0FBSTtBQUFBLFlBQWMsS0FBSTtBQUFBLFlBQWUsS0FBSTtBQUFNLGNBQUFELEtBQUVrRCxJQUFHbEQsSUFBRWc1QixJQUFHbFcsSUFBRyxpQ0FBaUM3aUIsR0FBQyxHQUFFQSxHQUFDLENBQUM7QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFBLFlBQVcsS0FBSTtBQUFBLFlBQWMsS0FBSTtBQUFVO0FBQUEsWUFBTTtBQUFRLGNBQUErQixHQUFFLFlBQVkvQixHQUFDO0FBQUEsVUFBQztBQUFDLFlBQUksSUFBRTZpQixJQUFHLHFCQUFxQjNmLEtBQUduRCxJQUFFRCxPQUFHb0QsR0FBRTtBQUFFLGVBQU8sR0FBR25ELElBQUUsQ0FBQyxHQUFFLEdBQUdELEtBQUUsQ0FBQyxHQUFFLEVBQUUsVUFBUTZDLElBQUc5QyxJQUFFLFdBQVNBLElBQUUsUUFBUSxTQUFRLENBQUFHLFFBQUcsMEJBQTBCLEVBQUUsSUFBSUEsR0FBQyxDQUFDLEdBQUU7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHSCxLQUFFQyxLQUFFQyxJQUFFLEdBQUVDLEtBQUVNLElBQUU7QUFBQyxlQUFPLEdBQUdULEdBQUMsSUFBRSxHQUFHLFFBQU9BLEtBQUVFLElBQUUsR0FBRSxRQUFPRCxLQUFFRSxLQUFFTSxFQUFDLElBQUUsR0FBR1QsS0FBRUMsS0FBRUMsSUFBRSxHQUFFQyxLQUFFTSxFQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR1QsS0FBRUMsS0FBRUMsSUFBRSxHQUFFQyxLQUFFTSxJQUFFQyxJQUFFQyxJQUFFO0FBQUMsWUFBSSxJQUFFLEdBQUcsaUJBQWlCO0FBQUUsVUFBRSxpQkFBZVYsS0FBRSxFQUFFLG9CQUFrQkMsSUFBRSxFQUFFLGtCQUFnQixHQUFFLEVBQUUscUJBQW1CQyxLQUFFLEVBQUUsZ0JBQWNNO0FBQUUsWUFBSXNELE1BQUUsb0JBQUksT0FBSW1CLEtBQUUsQ0FBQUcsT0FBRztBQUFDLGNBQUdBLE9BQUk7QUFBTztBQUFPLGNBQUlDLE1BQUV2QixJQUFFLElBQUlzQixFQUFDO0FBQUUsaUJBQU9DLFFBQUksV0FBU0EsTUFBRXRGLElBQUVxRixFQUFDLEdBQUV0QixJQUFFLElBQUlzQixJQUFFQyxRQUFJLFNBQU9BLE1BQUUsS0FBRSxJQUFHQSxRQUFJLFFBQUdBLE1BQUU7QUFBQSxRQUFNLEdBQUVILE1BQUUsQ0FBQUUsT0FBRztBQUFDLGNBQUlDLE1BQUVKLEdBQUVHLEVBQUM7QUFBRSxpQkFBT0MsUUFBSSxTQUFPQSxNQUFFLGlCQUFpQkQsRUFBQztBQUFBO0FBQUEsUUFDbGxvRixHQUFFRTtBQUFFLGVBQU8sT0FBTyxpQkFBaUIsR0FBRSxFQUFDLGdCQUFlLEVBQUMsS0FBSSxNQUFJSixJQUFFbEYsR0FBQyxFQUFDLEdBQUUsbUJBQWtCLEVBQUMsS0FBSSxNQUFJaUYsR0FBRWhGLEVBQUMsRUFBQyxHQUFFLGlCQUFnQixFQUFDLEtBQUksTUFBSWlGLElBQUVqRCxHQUFFLGFBQWEsQ0FBQyxDQUFDLEVBQUMsR0FBRSxvQkFBbUIsRUFBQyxLQUFJLE1BQUlnRCxHQUFFL0UsR0FBQyxFQUFDLEdBQUUsV0FBVSxFQUFDLEtBQUksTUFBSTtBQUFDLGNBQUdvRixRQUFJLFVBQVE5RTtBQUFFLGdCQUFHQyxNQUFHLFFBQU1BLEdBQUU7QUFBYSxjQUFBNkUsTUFBRTdFLEdBQUUsYUFBYUQsSUFBRUUsR0FBRSxjQUFjLEtBQUc7QUFBQSxpQkFBTztBQUFDLGtCQUFJMEUsS0FBRUgsR0FBRXpFLEVBQUM7QUFBRSxjQUFBOEUsTUFBRUYsT0FBSSxTQUFPLGFBQWE1RSxJQUFFNEUsRUFBQyxLQUFHLFFBQUc7QUFBQSxZQUFFO0FBQUMsaUJBQU9FLE9BQUc7QUFBQSxRQUFNLEVBQUMsRUFBQyxDQUFDLEdBQUU7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHdkYsS0FBRUMsS0FBRUMsSUFBRSxHQUFFQyxLQUFFTSxJQUFFQyxJQUFFQyxJQUFFLEdBQUVvRCxLQUFFbUIsSUFBRTtBQUFDLFlBQUlDLE1BQUUsR0FBRyxpQkFBaUI7QUFBRSxlQUFPQSxJQUFFLGlCQUFlbkYsS0FBRW1GLElBQUUsaUJBQWVsRixLQUFFa0YsSUFBRSxvQkFBa0JqRixJQUFFaUYsSUFBRSxvQkFBa0IsR0FBRUEsSUFBRSxrQkFBZ0JoRixLQUFFZ0YsSUFBRSxrQkFBZ0IxRSxJQUFFMEUsSUFBRSxxQkFBbUJ6RSxJQUFFeUUsSUFBRSxxQkFBbUJ4RSxJQUFFd0UsSUFBRSxnQkFBYyxHQUFFQSxJQUFFLFlBQVVwQixLQUFFb0IsSUFBRSx1QkFBcUJELElBQUVDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR25GLEtBQUVDLEtBQUVDLElBQUU7QUFBQyxlQUFPLEtBQUksT0FBSyxLQUFHcUosSUFBRyw4QkFBOEIsSUFBSXZKLEtBQUVDLEtBQUVDLEVBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUzY0QixJQUFHLzRCLEtBQUVDLEtBQUU7QUFBQyxZQUFHRCxJQUFFLGFBQVdDLFFBQUlELElBQUUsV0FBU0MsS0FBRUEsTUFBRztBQUFDLGNBQUlDLEtBQUVELElBQUU7QUFBUyxVQUFBQyxPQUFJRixJQUFFLFdBQVMsR0FBR0UsSUFBRUYsSUFBRSxRQUFRO0FBQUEsUUFBRTtBQUFDLGVBQU9BO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRUMsS0FBRTtBQUFDLFlBQUcsRUFBQyxPQUFNQyxJQUFFLGVBQWMsR0FBRSxpQkFBZ0JDLEtBQUUsa0JBQWlCTSxJQUFFLGNBQWFDLElBQUUsZ0JBQWVDLElBQUUsc0JBQXFCLEdBQUUsZUFBY29ELEtBQUUsU0FBUW1CLElBQUUsaUJBQWdCQyxLQUFFLGdCQUFlSSxLQUFFLFdBQVVILElBQUUsY0FBYUMsR0FBQyxJQUFFckY7QUFBRSxZQUFHQyxRQUFJQSxNQUFFLENBQUMsSUFBR0MsT0FBSUQsSUFBRSxRQUFNQyxLQUFHLE1BQUlELElBQUUsZ0JBQWMsSUFBRSxLQUFJRSxRQUFJRixJQUFFLGtCQUFnQmlELElBQUcvQyxJQUFFLE1BQU0sR0FBRUYsSUFBRSxlQUFlLElBQUdRLE9BQUlSLElBQUUsbUJBQWlCaUQsSUFBR3pDLEdBQUUsTUFBTSxHQUFFUixJQUFFLGdCQUFnQixJQUFHUyxPQUFJVCxJQUFFLGVBQWFTLEtBQUdDLE9BQUlWLElBQUUsaUJBQWVVLEtBQUcsTUFBSVYsSUFBRSx1QkFBcUIsR0FBRyxHQUFFQSxJQUFFLG9CQUFvQixJQUFHOEQsUUFBSSxXQUFTOUQsSUFBRSxnQkFBYzhELE1BQUdtQjtBQUFFLG1CQUFRSSxPQUFLSjtBQUFFLFlBQUFqRixJQUFFLFVBQVEsR0FBR0EsSUFBRSxTQUFRcUYsR0FBQztBQUFFLGVBQU9ILFFBQUksV0FBU2xGLElBQUUsa0JBQWdCa0YsTUFBR0ksUUFBSSxXQUFTdEYsSUFBRSxpQkFBZXNGLE1BQUdILE9BQUluRixJQUFFLFlBQVVtRixLQUFHQyxPQUFJcEYsSUFBRSxlQUFhb0YsS0FBR3BGO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0QsS0FBRUMsS0FBRTtBQUFDLFFBQUFBLFFBQUlBLE1BQUUsQ0FBQztBQUFHLGlCQUFRQyxNQUFLRjtBQUFFLFVBQUFDLElBQUVDLEVBQUMsSUFBRUYsSUFBRUUsRUFBQztBQUFFLGVBQU9EO0FBQUEsTUFBQztBQUFDLFVBQUl1MkIsS0FBR3NELEtBQUcsSUFBR0YsS0FBRyxJQUFHRyxLQUFHLElBQUcvVyxLQUFHLElBQUcsS0FBR3RoQixJQUFHLEVBQUMsd0NBQXVDO0FBQUM7QUFBYSxRQUFBbUUsSUFBRyxHQUFFMndCLE1BQUcsR0FBRXNELE9BQUksQ0FBQTk1QixTQUFJQSxJQUFFQSxJQUFFLE9BQUssQ0FBQyxJQUFFLFFBQU9BLElBQUVBLElBQUUsdUJBQXFCLENBQUMsSUFBRSx3QkFBdUJBLElBQUVBLElBQUUsbUJBQWlCLENBQUMsSUFBRSxvQkFBbUJBLElBQUVBLElBQUUscUNBQW1DLENBQUMsSUFBRSxzQ0FBcUNBLElBQUVBLElBQUUsaUJBQWUsQ0FBQyxJQUFFLGtCQUFpQkEsTUFBSTg1QixPQUFJLENBQUMsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFLEtBQUcsQ0FBQyxHQUFFQyxNQUFHLEdBQUcsR0FBRSxLQUFHLEVBQUMsMEJBQXlCLENBQUEvNUIsUUFBRzY1QixJQUFHRSxJQUFHLHlCQUF5Qi81QixHQUFDLENBQUMsR0FBRSwwQkFBeUIsQ0FBQUEsUUFBRzY1QixJQUFHRSxJQUFHLHlCQUF5Qi81QixHQUFDLENBQUMsR0FBRSxpQ0FBZ0MsQ0FBQUEsUUFBRzY1QixJQUFHRSxJQUFHLGdDQUFnQy81QixHQUFDLENBQUMsR0FBRSxxQkFBb0IsQ0FBQUEsUUFBRzY1QixJQUFHRSxJQUFHLG9CQUFvQi81QixHQUFDLENBQUMsR0FBRSxnQkFBZSxDQUFBQSxRQUFHNjVCLElBQUdFLElBQUcsZUFBZS81QixHQUFDLENBQUMsRUFBQyxHQUFFZ2pCLE1BQUcsR0FBRyxHQUFFLEVBQUU7QUFBQSxNQUFDLEVBQUMsQ0FBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDO0FBQUUsZUFBU25aLElBQUc3SixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTNEosSUFBRzVKLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBU2kzQixJQUFHajNCLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBU3lKLElBQUd6SixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVMySixJQUFHM0osS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFFO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRTtBQUFDLGVBQVNnNkIsSUFBR2g2QixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU2tmLElBQUdsZixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVM4SixJQUFHOUosS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTK0osSUFBRy9KLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVNzYSxJQUFHdGEsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTK1csSUFBRy9XLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTbVgsSUFBR25YLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTZ0ssSUFBR2hLLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTaUssSUFBR2pLLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVNrSyxJQUFHbEssS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxN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TUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVNzWCxJQUFHdFgsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTa1QsSUFBR2xULEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVM0ZSxJQUFHNWUsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTMlQsSUFBRzNULEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU29ZLElBQUdwWSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMwYyxJQUFHMWMsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTd2QsSUFBR3hkLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU29mLElBQUdwZixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU29iLElBQUdwYixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU3lhLElBQUd6YSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTa1ksSUFBR2xZLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU2k2QixJQUFHajZCLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVN1aEIsSUFBR3ZoQixLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVM2YyxJQUFHN2MsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBU3dULElBQUd4VCxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVN3YSxJQUFHeGEsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTcVgsSUFBR3JYLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsSUFBRSxTQUFPO0FBQUEsTUFBRztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLElBQUUsU0FBTztBQUFBLE1BQUc7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxJQUFFLFNBQU87QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFF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R0FBQyxLQUFHNEosSUFBRzVKLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsWUFBSUMsTUFBRUQsSUFBRTtBQUFLLGVBQU9DLFFBQUksT0FBS0EsUUFBSSxPQUFLQSxRQUFJLE1BQUksR0FBR0QsR0FBQyxLQUFHdWYsSUFBR3ZmLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsUUFBSTtBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxRQUFJLE1BQUlBLFFBQUksTUFBSUEsUUFBSTtBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPLEdBQUdBLEdBQUMsS0FBRyxHQUFHQSxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLFFBQUksTUFBSUEsUUFBSTtBQUFBLE1BQUU7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPLEdBQUdBLEdBQUMsS0FBRyxHQUFHQSxHQUFDO0FBQUEsTUFBQztBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU9BLFFBQUksTUFBSUEsUUFBSSxNQUFJQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU8sR0FBR0EsR0FBQyxLQUFHLEdBQUdBLEdBQUM7QUFBQSxNQUFDO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBT0EsUUFBSSxNQUFJQSxRQUFJLE1BQUlBLFFBQUksTUFBSUEsUUFBSSxNQUFJQSxRQUFJLE9BQUtBLFFBQUk7QUFBQSxNQUFHO0FBQUMsZUFBUyxHQUFHQSxLQUFFO0FBQUMsZUFBTyxHQUFHQSxHQUFDLEtBQUcsR0FBR0EsR0FBQztBQUFBLE1BQUM7QUFBQyxlQUFTLEdBQUdBLEtBQUU7QUFBQyxlQUFPQSxRQUFJLE1BQUlBLFFBQUksTUFBSUEsUUFBSSxNQUFJQSxRQUFJO0FBQUEsTUFBRTtBQUFDLGVBQVMsR0FBR0EsS0FBRTtBQUFDLGVBQU8sR0FBR0EsR0FBQyxL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QUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRW1FLE1BQUduRSxJQUFHLEVBQUMsbUNBQWtDO0FBQUM7QUFBYSxRQUFBRSxJQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHLEdBQUUsR0FBRyxHQUFFLEdBQUcsR0FBRSxHQUFHO0FBQUEsTUFBQyxFQUFDLENBQUMsR0FBRXU3QixNQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRUMsS0FBRyxLQUFHLE1BQUk7QUFBQyxXQUFHLEdBQUVBLE1BQUdqc0IsSUFBRyxJQUFHLElBQUU7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFa3NCLE1BQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFDLEdBQUUsS0FBRyxNQUFJO0FBQUEsTUFBQyxHQUFFLEtBQUcsTUFBSTtBQUFBLE1BQUMsR0FBRSxLQUFHLE1BQUk7QUFBQSxNQUFD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SUFBRyxnQkFBYyxFQUFDLE1BQUssS0FBSSxLQUFJLEtBQUksTUFBSyxLQUFJLElBQUcsS0FBSSxJQUFHLEtBQUksTUFBSyxRQUFPLE9BQU0sUUFBTyxNQUFLLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxLQUFJLFFBQU8sUUFBTyxRQUFPLE1BQUssUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxPQUFNLFFBQU8sS0FBSSxRQUFPLEtBQUksUUFBTyxLQUFJLFFBQU8sTUFBSyxRQUFPLEtBQUksUUFBTyxRQUFPLFFBQU8sTUFBSyxRQUFPLE1BQUssUUFBTyxPQUFNLFFBQU8sT0FBTSxRQUFPLE1BQUssUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLE1BQUssUUFBTyxNQUFLLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxRQUFPLE9BQU0sUUFBTyxPQUFNLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLE1BQUssUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxNQUFLLFFBQU8sS0FBSSxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sTUFBSyxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sTUFBSyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLFFBQU8sT0FBTSxRQUFPLE9BQU0sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxPQUFNLFFBQU8sTUFBSyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLE1BQUssUUFBTyxLQUFJLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sT0FBTSxRQUFPLFFBQU8sUUFBTyxNQUFLLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxNQUFLLFFBQU8sUUFBTyxRQUFPLE9BQU0sUUFBTyxNQUFLLFFBQU8sT0FBTSxVQUFTLE9BQU0sVUFBUyxRQUFPLFVBQVMsUUFBTyxVQUFTLE1BQUssVUFBUyxNQUFLLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLElBQUcsVUFBUyxJQUFHLFVBQVMsSUFBRyxVQUFTLFNBQVEsVUFBUyxJQUFHLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsU0FBUSxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsTUFBSyxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsU0FBUSxVQUFTLE1BQUssVUFBUyxLQUFJLFVBQVMsT0FBTSxVQUFTLE1BQUssVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLElBQUcsVUFBUyxJQUFHLFVBQVMsSUFBRyxVQUFTLFNBQVEsVUFBUyxJQUFHLFVBQVMsS0FBSSxVQUFTLFFBQU8sVUFBUyxPQUFNLFVBQVMsS0FBSSxVQUFTLFNBQVEsVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLEtBQUksVUFBUyxPQUFNLFVBQVMsVUFBUyxVQUFTLE9BQU0sVUFBUyxLQUFJLFVBQVMsTUFBSyxVQUFTLE1BQUssVUFBUyxRQUFPLFVBQVMsTUFBSyxVQUFTLEtBQUksVUFBUyxLQUFJLFVBQVMsS0FBSSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsT0FBTSxVQUFTLE9BQU0sVUFBUyxPQUFNLFVBQVMsUUFBTyxVQUFTLFFBQU8sVUFBUyxNQUFL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QVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYztBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBWTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBWTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYztBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBVTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBWTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYztBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYztBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBUTtBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBYztBQUFDLGVBQVMsR0FBR3JoQyxJQUFFO0FBQUMsZUFBT0EsR0FBRSxTQUFPcWhDLElBQUcsUUFBUSxXQUFXO0FBQUEsTUFBc0I7QUFBQyxlQUFTLEdBQUdyaEMsSUFBRTtBQUFDLGVBQU9BLEdBQUUsU0FB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LEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEtBQUssTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLE9BQU8sSUFBSSxNQUFNLEdBQUcsS0FBSyxHQUFHLE1BQU0sSUFBSSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sR0FBRyxJQUFJO0FBQy9nRSxRQUFJLHdCQUF3QixDQUFDLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLE9BQU8sR0FBRyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcs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QUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxNQUNOO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLE1BQ1A7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsTUFDTjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxNQUNOO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsVUFDRixLQUFLO0FBQUEsVUFDTCxJQUFJO0FBQUEsUUFDTjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsTUFDTjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxNQUNOO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLFVBQ0YsS0FBSztBQUFBLFlBQ0g7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsVUFDSCxTQUFTO0FBQUEsUUFDWDtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsVUFDRixtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLE1BQ1A7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsVUFDRixtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsTUFDTjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLE1BQ1A7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxVQUNILEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxRQUNaO0FBQUEsTUFDRjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFVBQ0g7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUFBLFFBQ0EsSUFBSTtBQUFBLFVBQ0YsS0FBSztBQUFBLFlBQ0g7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxVQUNGLEtBQUs7QUFBQSxVQUNMLElBQUk7QUFBQSxRQUNOO0FBQUEsTUFDRjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxVQUNGLEtBQUs7QUFBQSxVQUNMLElBQUk7QUFBQSxRQUNOO0FBQUEsTUFDRjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLFVBQ0YsaUJBQWlCO0FBQUEsUUFDbkI7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLE1BQ047QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsVUFDRixLQUFLO0FBQUEsVUFDTCxJQUFJO0FBQUEsUUFDTjtBQUFBLE1BQ0Y7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsUUFDTCxJQUFJO0FBQUEsTUFDTjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxVQUNGLGlCQUFpQjtBQUFBLFFBQ25CO0FBQUEsTUFDRjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxRQUNMLElBQUk7QUFBQSxNQUNOO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFVBQ0gsU0FBUztBQUFBLFFBQ1g7QUFBQSxNQUNGO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLE1BQ1A7QUFBQSxNQUNBO0FBQUEsUUFDRSxNQUFNO0FBQUEsUUFDTixVQUFVO0FBQUEsUUFDVixLQUFLO0FBQUEsVUFDSDtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUFBLE1BQ0E7QUFBQSxRQUNFLE1BQU07QUFBQSxRQUNOLFVBQVU7QUFBQSxRQUNWLEtBQUs7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLFFBQ0UsTUFBTTtBQUFBLFFBQ04sVUFBVTtBQUFBLFFBQ1YsS0FBSztBQUFBLFFBQ0wsSUFBSTtBQUFBLFVBQ0YsS0FBSztBQUFBLFVBQ0wsSUFBSTtBQUFBLFFBQ047QUFBQSxNQUNG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R0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLElBQUksR0FBRyxNQUFNLEtBQUssTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsS0FBSyxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sT0FBTyxJQUFJLE1BQU0sR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxHQUFHLElBQUk7QUFDL2dFLFFBQUksd0JBQXdCLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxH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QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFBQSxNQUNqQjtBQUFBLE1BQ0E7QUFBQSxRQUNFLFNBQVM7QUFBQSxRQUNULGVBQWU7QUFB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QTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLElBQ0EsYUFBYTtBQUFBLE1BQ1g7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLElBQ0EsV0FBVztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxxQkFBcUI7QUFBQSxNQUNuQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0Usc0JBQXNCO0FBQUEsSUFDdEIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsU0FBUztBQUFBLElBQ1QsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsa0JBQWtCO0FBQUEsSUFDbEIsc0JBQXNCO0FBQUEsSUFDdEIsV0FBVztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLElBQ0EsYUFBYTtBQUFBLE1BQ1g7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLElBQ0EsV0FBVztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxxQkFBcUI7QUFBQSxNQUNu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QUFNO0FBQVMsTUFBQUQsS0FBSSxLQUFLQyxPQUFNLE9BQWlCO0FBQUEsRUFDcEY7QUFDRjs7O0FDdkNPLElBQU0sU0FBUyxJQUFJLE9BQU87QUFFakMsZUFBTyxlQUFxRDtBQUMxRCxRQUFNQyxPQUFNLElBQUksZ0JBQVEsbUJBQW1CO0FBQzNDLE1BQUk7QUFDRixVQUFNLG1CQUFtQixDQUFDO0FBQzFCLGVBQVcsV0FBVyxPQUFPLFVBQVU7QUFDckMsdUJBQWlCLEtBQUssY0FBYyxTQUFTLE1BQU0sQ0FBQztBQUFBLElBQ3REO0FBQ0EsV0FBTyxRQUFRLElBQUksZ0JBQWdCLEVBQUUsS0FBSyxNQUFNLEtBQUssTUFBTSxDQUFDO0FBQUEsRUFDOUQsU0FBU0MsUUFBWTtBQUNuQixRQUFJQSxVQUFTLGFBQWFBLFVBQVNBLE9BQU07QUFBUyxNQUFBRCxLQUFJLE1BQU1DLE9BQU0sT0FBaUI7QUFBQSxFQUNyRjtBQUNGOzs7QUNkQSxhQUFhOyIsCiAgIm5hbWVzIjogWyJtb2R1bGUiLCAiZ2xvYmFsIiwgImV4cG9ydHMiLCAiZm4iLCAiZSIsICJlcnJvciIsICJyZXNvbHZlIiwgInJlamVjdCIsICJhcHBseUVhY2giLCAiZ28iLCAiXyIsICJpbmRleCIsICJ2IiwgIm1hcCIsICJvbiIsICJvbmNlIiwgInEiLCAicHJvbWlzZUNhbGxiYWNrIiwgIngiLCAic2VxIiwgImNoZWNrIiwgImJvb2wiLCAiYiIsICJmaWx0ZXIiLCAiaGFzT3duUHJvcGVydHkiLCAibG9nIiwgInAiLCAidCIsICJqIiwgInkiLCAiYXJyYXkiLCAib3B0aW9ucyIsICJpbmZvIiwgInRyYW5zZm9ybSIsICJrIiwgIm1vZHVsZSIsICJoYXNPd25Qcm9wZXJ0eSIsICJrIiwgInN0ciIsICJwIiwgInJlIiwgImxpbmUiLCAibmwiLCAiXyIsICJjIiwgImNvbW1vbiIsICJvcHRpb25zIiwgInBhdGgiLCAic2VsZiIsICJmcyIsICJjb21tb24iLCAib3B0aW9ucyIsICJzdHIiLCAibWFwIiwgImZuIiwgInBhaXJzIiwgImVycm9yIiwgImNvbW1vbiIsICJQcm92aWRlciIsICJvcHRpb25zIiwgInR5cGUiLCAic3RvcmUiLCAic2VsZiIsICJ2IiwgIm1vZHVsZSIsICJtb2R1bGUiLCAiZnMiLCAicGF0aCIsICJzdHIiLCAieTE4biIsICJyZXF1aXJlX2J1aWxkIiwgIm1vZHVsZSIsICJwYXRoIiwgImZzIiwgInN0ciIsICJ4IiwgImUiLCAiYyIsICJpaSIsICJEZWZhdWx0VmFsdWVzRm9yVHlwZUtleSIsICJvcHRpb25zIiwgImtleSIsICJlcnJvciIsICJtIiwgImoiLCAiayIsICJhcmdzIiwgInZhbHVlIiwgInYiLCAidmFsIiwgImFyZ3YiLCAicmVzb2x2ZUNvbmZpZyIsICJlbnYiLCAiYWxpYXNlcyIsICJkZWZhdWx0cyIsICJvIiwgInkiLCAidHlwZSIsICJzZWxmIiwgIl9hIiwgIl9jIiwgIm1vZHVsZSIsICJtb2R1bGUiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJtb2R1bGUiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJyIiwgImciLCAiYiIsICJoIiwgInMiLCAidiIsICJjIiwgInciLCAiayIsICJtIiwgInkiLCAieCIsICJ6IiwgInQyIiwgInQzIiwgInQxIiwgImhpIiwgImYiLCAicCIsICJxIiwgInQiLCAic2wiLCAiYmwiLCAieTIiLCAieDIiLCAiejIiLCAiaHIiLCAibWciLCAibW9kdWxlIiwgInRvIiwgInBhdGgiLCAiZm4iLCAibW9kdWxlIiwgImZuIiwgIm1vZHVsZSIsICJ3cmFwQW5zaTE2IiwgImZuIiwgIndyYXBBbnNpMjU2IiwgIndyYXBBbnNpMTZtIiwgInIiLCAiZyIsICJiIiwgImdldCIsICJzdHlsZXMiLCAiYXNzZW1ibGVTdHlsZXMiLCAiY29kZXMiLCAiZ3JvdXAiLCAibW9kdWxlIiwgImFuc2lTdHlsZXMiLCAib3B0aW9ucyIsICJjb2RlIiwgImxpbmUiLCAicmVxdWlyZV9idWlsZCIsICJtb2R1bGUiLCAiYWxpZ24iLCAiX2EiLCAic3RyIiwgInIiLCAibGluZSIsICJjIiwgInRzIiwgImZuIiwgInciLCAidWkiLCAibW9kdWxlIiwgInJlc29sdmUiLCAic3RhdFN5bmMiLCAibW9kdWxlIiwgIl8iLCAic3RhY2siLCAibW9kdWxlIiwgImZzIiwgImpvaW4iLCAicmVzb2x2ZSIsICJwYXRoIiwgIm9wdGlvbnMiLCAibSIsICJyZXF1aXJlX2J1aWxkIiwgIm1vZHVsZSIsICJ0IiwgImUiLCAiX2UiLCAicyIsICJvIiwgImEiLCAiaCIsICJsIiwgInIiLCAiaSIsICJuIiwgImYiLCAiZCIsICJ1IiwgImMiLCAicCIsICJnIiwgIm0iLCAieSIsICJiIiwgInYiLCAiTyIsICJ3IiwgIkMiLCAiaiIsICJfIiwgIk0iLCAiayIsICJ4IiwgIkUiLCAiQSIsICJQIiwgIkkiLCAiJCIsICJTIiwgIkQiLCAiTiIsICJIIiwgInoiLCAicSIsICJXIiwgIkYiLCAiVSIsICJMIiwgIlYiLCAiRyIsICJSIiwgIlQiLCAiSyIsICJCIiwgIlkiLCAiSiIsICJaIiwgIlgiLCAiUSIsICJ0dCIsICJldCIsICJzdCIsICJpdCIsICJudCIsICJydCIsICJvdCIsICJhdCIsICJodCIsICJsdCIsICJjdCIsICJmdCIsICJkdCIsICJ1dCIsICJwdCIsICJndCIsICJtdCIsICJ5dCIsICJidCIsICJ2dCIsICJPdCIsICJ3dCIsICJDdCIsICJqdCIsICJfdCIsICJNdCIsICJrdCIsICJ4dCIsICJFdCIsICJBdCIsICJQdCIsICJTdCIsICIkdCIsICJJdCIsICJEdCIsICJOdCIsICJIdCIsICJ6dCIsICJxdCIsICJXdCIsICJGdCIsICJVdCIsICJMdCIsICJWdCIsICJHdCIsICJSdCIsICJUdCIsICJLdCIsICJCdCIsICJZdCIsICJKdCIsICJadCIsICJYdCIsICJRdCIsICJ0ZSIsICJlZSIsICJzZSIsICJpZSIsICJuZSIsICJyZSIsICJvZSIsICJhZSIsICJoZSIsICJsZSIsICJjZSIsICJmZSIsICJtb2R1bGUiLCAiY29tbW9uIiwgIm9wdGlvbnMiLCAic2VsZiIsICJjb21tb24iLCAib3B0aW9ucyIsICJzZWxmIiwgImVudiIsICJvcyIsICJmcyIsICJwYXRoIiwgImNyeXB0byIsICJvcHRpb25zIiwgImZvcm1hdCIsICJzZWxmIiwgImV4aXN0cyIsICJleCIsICJMaXRlcmFsIiwgIm9wdGlvbnMiLCAibW9kdWxlIiwgImNvbW1vbiIsICJQcm92aWRlciIsICJuY29uZiIsICJvcyIsICJzIiwgImNyeXB0byIsICJvcHRpb25zIiwgImIiLCAiZHQiLCAidGwiLCAidiIsICJzdHIiLCAidmVyc2lvbiIsICJVUkwiLCAiY3J5cHRvIiwgImltcG9ydF9jcnlwdG8iLCAib3B0aW9ucyIsICJjcnlwdG8iLCAiaW1wb3J0X2NyeXB0byIsICJmcyIsICJvcyIsICJ4IiwgImFzc2VydCIsICJvcHRpb25zIiwgInNlbGYiLCAiZXJyb3IiLCAic29ja2V0IiwgImoiLCAiayIsICJyZXF1aXJlX3R1bm5lbCIsICJtb2R1bGUiLCAiSHR0cENvZGVzIiwgIkhlYWRlcnMiLCAiTWVkaWFUeXBlcyIsICJyZXNvbHZlIiwgImluZm8iLCAiX2RlZmF1bHQiLCAib3B0aW9ucyIsICJtcyIsICJjIiwgImsiLCAib3B0aW9ucyIsICJlcnJvciIsICJfYSIsICJfYSIsICJvcHRpb25zIiwgImxhYmVsIiwgInBhdGgiLCAib3MiLCAicGF0aCIsICJFeGl0Q29kZSIsICJvcHRpb25zIiwgImlucHV0cyIsICJ4IiwgInNldEZhaWxlZCIsICJlcnJvciIsICJpbmZvIiwgInN0YXJ0R3JvdXAiLCAiZW5kR3JvdXAiLCAiZ3JvdXAiLCAiZm4iLCAibW9kdWxlIiwgIm1vZHVsZSIsICJvcyIsICJ0dHkiLCAiaGFzRmxhZyIsICJlbnYiLCAidHJhbnNsYXRlTGV2ZWwiLCAic3VwcG9ydHNDb2xvciIsICJ2ZXJzaW9uIiwgIm1vZHVsZSIsICJzdHJpbmdSZXBsYWNlQWxsIiwgInN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleCIsICJtb2R1bGUiLCAidW5lc2NhcGUiLCAiYyIsICJtIiwgImNoYWxrIiwgInN0eWxlcyIsICJtb2R1bGUiLCAiYW5zaVN0eWxlcyIsICJzdGRvdXRDb2xvciIsICJzdGRlcnJDb2xvciIsICJzdHJpbmdSZXBsYWNlQWxsIiwgInN0cmluZ0VuY2FzZUNSTEZXaXRoRmlyc3RJbmRleCIsICJsZXZlbE1hcHBpbmciLCAic3R5bGVzIiwgImFwcGx5T3B0aW9ucyIsICJvcHRpb25zIiwgImNoYWxrRmFjdG9yeSIsICJjaGFsayIsICJjcmVhdGVCdWlsZGVyIiwgImNyZWF0ZVN0eWxlciIsICJ1c2VkTW9kZWxzIiwgInByb3RvIiwgInNlbGYiLCAiYXBwbHlTdHlsZSIsICJtb2R1bGUiLCAidHlwZSIsICJ0b1N0cmluZyIsICJpcyIsICJfYSIsICJfYyIsICJhc3NlcnQiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJtb2R1bGUiLCAibW9kdWxlIiwgInNlcSIsICJtb2R1bGUiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJtb2R1bGUiLCAibW9kdWxlIiwgInJlIiwgInQiLCAiUiIsICJtb2R1bGUiLCAib3B0aW9ucyIsICJtb2R1bGUiLCAiYiIsICJtb2R1bGUiLCAicmUiLCAidCIsICJ2ZXJzaW9uIiwgIm9wdGlvbnMiLCAibSIsICJpZCIsICJiIiwgIm1vZHVsZSIsICJwYXJzZSIsICJ2ZXJzaW9uIiwgIm9wdGlvbnMiLCAiZXIiLCAibW9kdWxlIiwgInBhcnNlIiwgInZlcnNpb24iLCAib3B0aW9ucyIsICJ2IiwgIm1vZHVsZSIsICJwYXJzZSIsICJ2ZXJzaW9uIiwgIm9wdGlvbnMiLCAicyIsICJtb2R1bGUiLCAidmVyc2lvbiIsICJvcHRpb25zIiwgImVyIiwgIm1vZHVsZSIsICJwYXJzZSIsICJ2MSIsICJ2MiIsICJtb2R1bGUiLCAibW9kdWxlIiwgIm1vZHVsZSIsICJtb2R1bGUiLCAicGFyc2UiLCAidmVyc2lvbiIsICJvcHRpb25zIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJndCIsICJiIiwgIm1vZHVsZSIsICJsdCIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJiIiwgIm1vZHVsZSIsICJndCIsICJsdCIsICJvcCIsICJiIiwgIm1vZHVsZSIsICJwYXJzZSIsICJyZSIsICJ0IiwgInZlcnNpb24iLCAib3B0aW9ucyIsICJtb2R1bGUiLCAibW9kdWxlIiwgInNlbGYiLCAiZm4iLCAidG8iLCAicCIsICJlciIsICJtb2R1bGUiLCAib3B0aW9ucyIsICJsYyIsICJ0cmltIiwgImZuIiwgImsiLCAiaCIsICJnZXQiLCAic2VsZiIsICJtb2R1bGUiLCAib3B0aW9ucyIsICJyIiwgImMiLCAiaHIiLCAicmUiLCAidCIsICJ2ZXJzaW9uIiwgImVyIiwgImlkIiwgIl8iLCAiTSIsICJtIiwgInAiLCAicHIiLCAieiIsICJ4bSIsICJ4cCIsICJmcCIsICJ0byIsICJ0cCIsICJzZXQiLCAibW9kdWxlIiwgIm9wdGlvbnMiLCAiciIsICJyZSIsICJ0IiwgIm0iLCAidmVyc2lvbiIsICJlciIsICJtb2R1bGUiLCAidmVyc2lvbiIsICJvcHRpb25zIiwgImVyIiwgIm1vZHVsZSIsICJvcHRpb25zIiwgImMiLCAibW9kdWxlIiwgIm9wdGlvbnMiLCAiZXIiLCAidiIsICJtb2R1bGUiLCAib3B0aW9ucyIsICJlciIsICJ2IiwgIm1vZHVsZSIsICJndCIsICJyZXF1aXJlX3ZhbGlkIiwgIm1vZHVsZSIsICJvcHRpb25zIiwgImVyIiwgIm1vZHVsZSIsICJndCIsICJsdCIsICJ2ZXJzaW9uIiwgIm9wdGlvbnMiLCAibW9kdWxlIiwgInZlcnNpb24iLCAib3B0aW9ucyIsICJtb2R1bGUiLCAidmVyc2lvbiIsICJvcHRpb25zIiwgIm1vZHVsZSIsICJyMSIsICJyMiIsICJvcHRpb25zIiwgIm1vZHVsZSIsICJvcHRpb25zIiwgInNldCIsICJ2IiwgImIiLCAidmVyc2lvbiIsICJtb2R1bGUiLCAib3B0aW9ucyIsICJndCIsICJsdCIsICJjIiwgImIiLCAicmVxdWlyZV9zZW12ZXIiLCAibW9kdWxlIiwgInBhcnNlIiwgImd0IiwgImx0IiwgIm1vZHVsZSIsICJiIiwgInN0ciIsICJyIiwgIm0iLCAiYWkiLCAiYmkiLCAibW9kdWxlIiwgInN0ciIsICJtIiwgInAiLCAiZWwiLCAieSIsICJrIiwgIk4iLCAieCIsICJjIiwgInoiLCAiaiIsICJzIiwgImMiLCAiciIsICJ1bmVzY2FwZSIsICJzIiwgImMiLCAicyIsICJ0eXBlIiwgIm9wdGlvbnMiLCAicCIsICJwcCIsICJfYSIsICJfYyIsICJwbCIsICJzdHIiLCAiaSIsICJhY2MiLCAicmUiLCAiXyIsICJzdGFydCIsICJmaW5hbCIsICJzIiwgInAiLCAib3B0aW9ucyIsICJleHQiLCAiZiIsICJwYXRoIiwgImIiLCAibSIsICJ0eXBlIiwgInMiLCAiXyIsICJzZXQiLCAic3MiLCAiaiIsICJncyIsICJwMiIsICJhaSIsICJiaSIsICJmaSIsICJwaSIsICJmbCIsICJwbCIsICJmciIsICJwciIsICJyZSIsICJwcCIsICJtb2R1bGUiLCAidHlwZSIsICJfIiwgInB0ciIsICJtZW0iLCAicjEiLCAicjIiLCAidjEiLCAiZiIsICJlIiwgInBhdGgiLCAicmVxdWlyZV9wYWNrYWdlIiwgIm1vZHVsZSIsICJyZXF1aXJlX2xpYiIsICJvIiwgIm0iLCAiayIsICJrMiIsICJ2IiwgImZzIiwgInBhdGgiLCAib3B0aW9ucyIsICJ2ZXJzaW9uIiwgImUiLCAicmVzb2x2ZSIsICJfIiwgInBhcnNlIiwgInBhcnNlU3luYyIsICJjIiwgImgiLCAiZiIsICJ5IiwgIl8iLCAiTCIsICJzZSIsICJmcyIsICJtcyIsICJ0aSIsICJ4cyIsICJkcyIsICJ1cyIsICJocyIsICJadCIsICJwcyIsICJRdCIsICJjcyIsICJZdCIsICJscyIsICJlaSIsICJQIiwgIiR0IiwgIkQiLCAiVWUiLCAiY2kiLCAiRyIsICJlIiwgInQiLCAicyIsICJGIiwgImQiLCAieCIsICJiIiwgImsiLCAiTiIsICJIIiwgInciLCAiciIsICJqIiwgImx0IiwgInRlIiwgImZ0IiwgIktlIiwgIlUiLCAiZHQiLCAiU2kiLCAiX2kiLCAibGUiLCAibXQiLCAiJCIsICJaIiwgIkNpIiwgImFlIiwgImZlIiwgIkplIiwgIndlIiwgInh0IiwgImtpIiwgIlRpIiwgIm8iLCAicCIsICJtIiwgImciLCAiZGUiLCAibmUiLCAiR2UiLCAieXQiLCAiZ3QiLCAidnQiLCAiV2UiLCAiYnQiLCAibWUiLCAiWGUiLCAiemUiLCAiRWUiLCAiSGUiLCAiUSIsICJTdCIsICJfdCIsICJDdCIsICJWIiwgIlciLCAiTyIsICJ3aSIsICJBZSIsICJTIiwgIlFlIiwgIkVpIiwgIlQiLCAiRSIsICJ4ZSIsICJZZSIsICJBaSIsICJrdCIsICJQaSIsICJQZSIsICJxIiwgIksiLCAiSSIsICJvZSIsICJDIiwgIlIiLCAiaWUiLCAiVHQiLCAidmUiLCAidWUiLCAiTGUiLCAiaGUiLCAicGUiLCAiSWkiLCAiSWUiLCAiZWUiLCAiTmkiLCAieWUiLCAiZ2UiLCAid3QiLCAiRXQiLCAiQXQiLCAiUHQiLCAiSXQiLCAiTnQiLCAiVmkiLCAiTGkiLCAiUmkiLCAiT2kiLCAiVnQiLCAiTHQiLCAiUnQiLCAiT3QiLCAiQnQiLCAiRHQiLCAiQmkiLCAiRGkiLCAiRnQiLCAiRmkiLCAiJGUiLCAianQiLCAiamkiLCAidiIsICJYIiwgIk10IiwgIk1pIiwgIlVpIiwgIk5lIiwgIlV0IiwgInFpIiwgInF0IiwgIlkiLCAiSiIsICJLaSIsICJLdCIsICJKaSIsICJXdCIsICJHaSIsICJXaSIsICJYaSIsICJKdCIsICJHdCIsICJWZSIsICJBIiwgInppIiwgIlh0IiwgInp0IiwgIkh0IiwgIkhpIiwgIlFpIiwgIllpIiwgInpyIiwgImxpIiwgIkhyIiwgImF0IiwgIk5zIiwgIlZzIiwgIkxzIiwgImRpIiwgIm1pIiwgIlRlIiwgIlJzIiwgInFlIiwgIk1zIiwgIlVzIiwgInFzIiwgIktzIiwgInlpIiwgIkpzIiwgIkIiLCAiR3MiLCAiaHQiLCAicHQiLCAiV3MiLCAiWHMiLCAienMiLCAiSHMiLCAicmUiLCAidXQiLCAiUXMiLCAiZ2kiLCAiWXMiLCAiJHMiLCAiWnMiLCAiZnMiLCAiamUiLCAidHQiLCAicyIsICJydCIsICJvdCIsICJlIiwgInQiLCAiYmUiLCAiY3QiLCAiciIsICJoIiwgInYiLCAiRGUiLCAieiIsICJPZSIsICJ5IiwgIm8iLCAieCIsICJrIiwgIkMiLCAicCIsICJmIiwgIk8iLCAidWUiLCAiZyIsICJ3IiwgImMiLCAibSIsICJrZSIsICJaZSIsICJSZSIsICJTZSIsICJldCIsICJDZSIsICJCZSIsICJfZSIsICJNZSIsICJGZSIsICJxZSIsICJJZSIsICJidCIsICJYZSIsICJnZSIsICJCdCIsICJJciIsICJ0IiwgImUiLCAicyIsICJOciIsICJrciIsICJ2ciIsICJVZSIsICJyIiwgIm8iLCAiTHIiLCAiZ3MiLCAiUHMiLCAieXMiLCAiVHMiLCAiX2UiLCAia3MiLCAiRCIsICJZIiwgIkIiLCAiamUiLCAid2UiLCAiU2UiLCAiT3MiLCAiaCIsICJGcyIsICJPdCIsICJ2dCIsICJMdCIsICJicyIsICJSIiwgIl9zIiwgImMiLCAiemUiLCAiYmUiLCAiVmUiLCAiQnMiLCAiSCIsICJsZSIsICJzaSIsICJpaSIsICJrdCIsICJ2cyIsICJEcyIsICJoZSIsICJqcyIsICJSZSIsICJMZSIsICJGIiwgImllIiwgIkwiLCAiWWUiLCAicmkiLCAiYWkiLCAibmkiLCAiUnQiLCAiUWUiLCAib2kiLCAiaGkiLCAibGkiLCAiY2kiLCAicGkiLCAidWkiLCAiZGkiLCAiJCIsICJwIiwgImZpIiwgIl90IiwgInBlIiwgIm1pIiwgIlgiLCAidyIsICJUIiwgIm0iLCAiSGUiLCAidWUiLCAieiIsICJ5aSIsICJEZSIsICJndCIsICJBIiwgIlAiLCAidiIsICJ5ZSIsICJVIiwgIlR0IiwgImJ0IiwgIkF0IiwgIlN0IiwgInd0IiwgImIiLCAieGkiLCAiUyIsICJQaSIsICJNIiwgIll0IiwgImdpIiwgIlplIiwgIlRpIiwgIlV0IiwgImJpIiwgIkN0IiwgIkFpIiwgIlNpIiwgIndpIiwgIkNpIiwgIkVpIiwgInEiLCAiTmUiLCAiSWkiLCAiTWUiLCAiXyIsICJFdCIsICJRdCIsICJOaSIsICJraSIsICJadCIsICJ2aSIsICJldCIsICJqIiwgImVlIiwgIkl0IiwgIkxpIiwgIkRpIiwgIk1pIiwgImVzIiwgInRzIiwgInNzIiwgImlzIiwgIk9pIiwgIkZpIiwgIkJpIiwgIlJpIiwgIlBlIiwgImdlIiwgInR0IiwgInN0IiwgIml0IiwgInJzIiwgIl9pIiwgIlRlIiwgImRlIiwgInJ0IiwgImFzIiwgIkVlIiwgInhlIiwgIldlIiwgImtlIiwgImp0IiwgIlVpIiwgImF0IiwgImppIiwgIiR0IiwgIkllIiwgIlZ0IiwgImYiLCAiZCIsICIkaSIsICJ4IiwgIlZpIiwgIm50IiwgIm9zIiwgIm5zIiwgIkkiLCAiQyIsICJFIiwgIk4iLCAiQ2UiLCAiY2UiLCAiemkiLCAiS2kiLCAiZmUiLCAicWkiLCAiTyIsICJvdCIsICJodCIsICJsdCIsICJyZSIsICJPZSIsICJjdCIsICJIaSIsICJXaSIsICJKaSIsICJocyIsICJ0ZSIsICJscyIsICJCZSIsICJjcyIsICJRIiwgInB0IiwgInZlIiwgInV0IiwgInNlIiwgImFlIiwgIk50IiwgIlhpIiwgIlYiLCAiR2kiLCAiZHQiLCAiWWkiLCAiZyIsICJRaSIsICJ6dCIsICJaaSIsICJlciIsICJ0ciIsICJzciIsICJXIiwgIksiLCAiWiIsICJpciIsICJmdCIsICJtdCIsICJyciIsICJwcyIsICJ5dCIsICJhciIsICJuciIsICJLdCIsICJ5IiwgIm9yIiwgInF0IiwgImhyIiwgImxyIiwgInByIiwgImNyIiwgImRzIiwgInVzIiwgInVyIiwgIkh0IiwgImRyIiwgImZyIiwgImsiLCAiSiIsICJXdCIsICJKdCIsICJYdCIsICJtciIsICJmcyIsICJ5ciIsICJKZSIsICJ4ciIsICJ4dCIsICJYZSIsICJQciIsICJnciIsICJHZSIsICJUciIsICJQdCIsICJGZSIsICJiciIsICJBciIsICJtZSIsICJTciIsICJ3ciIsICJDciIsICJFciIsICJHdCIsICJHIiwgIl9yIiwgImpyIiwgIklzIiwgIiRyIiwgIlVyIiwgIk1yIiwgIk9yIiwgIkNzIiwgIkZyIiwgIkFzIiwgIkJyIiwgIlNzIiwgIlJyIiwgIkVzIiwgIndzIiwgInNhIiwgImUiLCAidCIsICJyIiwgInMiLCAibyIsICJwIiwgIm0iLCAiS2UiLCAiamUiLCAiRWEiLCAiWmUiLCAiZmEiLCAiSXMiLCAieWUiLCAiRmUiLCAiUmUiLCAiTWUiLCAiSmUiLCAiYmUiLCAiTmUiLCAiemUiLCAiUWUiLCAiVWUiLCAiUGUiLCAiRSIsICJHZSIsICJEZSIsICJ3cyIsICJPcyIsICJxZSIsICJTdCIsICJQIiwgIm10IiwgIkIiLCAidnMiLCAiZXQiLCAianMiLCAiSyIsICJfcyIsICJNcyIsICJCdCIsICJ4ZSIsICJsciIsICJScyIsICJoYSIsICJOcyIsICJVcyIsICJ5ciIsICJJYSIsICJXZSIsICJZZSIsICJxcyIsICJHcyIsICJQdCIsICJ6IiwgIldzIiwgIllzIiwgIlUiLCAiYiIsICJ5dCIsICJYcyIsICJmciIsICJMdCIsICJKIiwgInpzIiwgImRyIiwgImhlIiwgIkFyIiwgIlEiLCAiWnMiLCAiRHQiLCAid3QiLCAiRXIiLCAiVnMiLCAiQ3QiLCAiSXQiLCAiWCIsICJkIiwgIlkiLCAiZHQiLCAib2UiLCAiSnMiLCAiSHMiLCAieHIiLCAiZ3IiLCAiS3QiLCAidHQiLCAiZWUiLCAiRyIsICJpdCIsICJDZSIsICJsZSIsICJyZSIsICJLcyIsICJDciIsICJTciIsICJEIiwgImMiLCAiZiIsICJoIiwgImciLCAiQSIsICJUZSIsICJNIiwgInBlIiwgIm5lIiwgIl9lIiwgInRlIiwgIkF0IiwgIiRlIiwgInJ0IiwgIiR0IiwgIkgiLCAidiIsICJfIiwgIlIiLCAiVCIsICJGIiwgIk4iLCAiU2UiLCAiViIsICJCZSIsICJFZSIsICJDbiIsICJTIiwgIkkiLCAiUHIiLCAid2UiLCAiY2UiLCAiQWUiLCAiT2UiLCAiSXIiLCAiT3QiLCAibXIiLCAidnQiLCAiZXMiLCAiJCIsICJxIiwgImt0IiwgIm1lIiwgImF0IiwgImVyIiwgInRzIiwgIkwiLCAiVyIsICJzZSIsICJWZSIsICJ0ciIsICJMciIsICJBbiIsICJhciIsICJkbiIsICJ3ciIsICJPciIsICJIZSIsICJmdCIsICJycyIsICJ2ciIsICJvdCIsICJucyIsICJrZSIsICJ4dCIsICJzcyIsICJaIiwgIlJyIiwgIkpyIiwgIk5yIiwgIkdyIiwgInFyIiwgIldyIiwgIllyIiwgIlhyIiwgIlZyIiwgIkhyIiwgImlzIiwgImtyIiwgIlFzIiwgIm9zIiwgIktyIiwgImFzIiwgIk10IiwgImVpIiwgInJpIiwgIm5pIiwgInpyIiwgIm50IiwgIlFyIiwgInRpIiwgInNpIiwgIlJ0IiwgIlpyIiwgIm1zIiwgInVpIiwgInlzIiwgImlpIiwgImd0IiwgImN0IiwgIm9pIiwgInNyIiwgInBpIiwgIkRzIiwgImZzIiwgImZpIiwgIkV0IiwgIkVzIiwgIkZzIiwgInVyIiwgIkNzIiwgIlRzIiwgIkFzIiwgInhpIiwgImhpIiwgImJpIiwgImtzIiwgInZpIiwgInhzIiwgIkZ0IiwgInRhIiwgInJhIiwgInVhIiwgImlhIiwgImFhIiwgIm9hIiwgInBhIiwgImNhIiwgImxhIiwgIkJzIiwgInN0IiwgImJzIiwgIlBzIiwgIlNzIiwgImdzIiwgIkxzIiwgImRhIiwgIkRyIiwgIiRzIiwgImoiLCAidmUiLCAiS24iLCAiYWkiLCAiWmkiLCAiZWEiLCAibmEiLCAiaXIiLCAiTnQiLCAiaHQiLCAiZWwiLCAicmwiLCAiVmkiLCAibmwiLCAidGwiLCAiSGMiLCAiS2MiLCAiWGkiLCAiemMiLCAicWkiLCAiUWMiLCAiV2kiLCAiWmMiLCAiJGkiLCAiWWkiLCAicnIiLCAiZ3IiLCAiWjEiLCAiTnQiLCAid3MiLCAiaXIiLCAidXIiLCAieTEiLCAiJDEiLCAiRDMiLCAiWW4iLCAiSWUiLCAidTkiLCAiaTkiLCAiZjkiLCAiSTQiLCAiQ3QiLCAiTzQiLCAibzkiLCAidjkiLCAiVm4iLCAicDkiLCAiZDkiLCAiem4iLCAidTIiLCAiS24iLCAiaDkiLCAiXzkiLCAiUjQiLCAiVTMiLCAiTDQiLCAiUzkiLCAiQm4iLCAiTTQiLCAiZzkiLCAiUDkiLCAiV24iLCAiRDQiLCAiQzkiLCAiVTQiLCAiUjkiLCAiRDkiLCAiWm4iLCAiJG4iLCAidmEiLCAiajkiLCAiajQiLCAiSjQiLCAiajMiLCAiYWEiLCAiRm4iLCAiUW4iLCAiSjkiLCAiWDQiLCAiZm4iLCAiWDkiLCAiWTkiLCAiWTQiLCAiVjkiLCAiR24iLCAicW4iLCAiSzkiLCAiSjMiLCAiY24iLCAiWjkiLCAiJDkiLCAiUTkiLCAiRzkiLCAiSDkiLCAiSG4iLCAiVjQiLCAiejQiLCAiSzQiLCAiQjQiLCAiYm4iLCAiR3IiLCAiVzQiLCAiWjQiLCAidDciLCAiJDQiLCAiSXQiLCAic24iLCAibG8iLCAicG8iLCAiRjQiLCAibGEiLCAiUTQiLCAieW8iLCAiRzQiLCAiWDMiLCAicTQiLCAiSDQiLCAiYjQiLCAieHAiLCAicGEiLCAiT2UiLCAicnAiLCAiVmsiLCAiZXAiLCAidHAiLCAibnAiLCAiWTMiLCAidXAiLCAiZGEiLCAiJDIiLCAiRjIiLCAiaXAiLCAiVHMiLCAiZnAiLCAiVjMiLCAiY3AiLCAiejMiLCAib24iLCAic3AiLCAiZWgiLCAiY2UiLCAib3AiLCAidnAiLCAiYXAiLCAiU3MiLCAieWEiLCAiWTEiLCAieWgiLCAiUDciLCAibHAiLCAicHAiLCAiZHAiLCAiRXMiLCAieXAiLCAiVjEiLCAiSzMiLCAiUjciLCAiTTciLCAiTDIiLCAiZ3MiLCAiVTciLCAiTTIiLCAiajciLCAibXAiLCAiVmgiLCAiSjciLCAiWDciLCAia3AiLCAibWEiLCAiWTciLCAiejciLCAiQjciLCAiaHAiLCAiX3AiLCAiSGgiLCAiWjciLCAid3AiLCAiJDciLCAiUmUiLCAia2EiLCAiVHAiLCAiU3AiLCAiRjciLCAiRXAiLCAicXIiLCAiZ3AiLCAiQXAiLCAiQXMiLCAiUHAiLCAiRzciLCAicTciLCAiSDciLCAiTnAiLCAidm4iLCAieHUiLCAiYW4iLCAiQ3AiLCAiSXAiLCAiT3AiLCAiUnAiLCAicnUiLCAiZXUiLCAiTHAiLCAiTXAiLCAiQjMiLCAiRHAiLCAiVXAiLCAidHUiLCAibnUiLCAidXUiLCAiaXUiLCAiZnUiLCAianAiLCAiSnAiLCAiY3UiLCAic3UiLCAiSF8iLCAib3UiLCAiWHAiLCAiWXAiLCAidnUiLCAiYXUiLCAiVnAiLCAibHUiLCAiVzMiLCAicHUiLCAiZHUiLCAiaGEiLCAieXUiLCAibXUiLCAienAiLCAiS3AiLCAiQnAiLCAia3UiLCAibG4iLCAiaHUiLCAiX3UiLCAid3UiLCAiX2EiLCAid2EiLCAiV3AiLCAiVHUiLCAiU3UiLCAiWnAiLCAiJHAiLCAiRnAiLCAibTEiLCAiRXUiLCAiZ3UiLCAiUXAiLCAiQXUiLCAiUnIiLCAiR3AiLCAiWjMiLCAicXAiLCAiSHAiLCAiYnAiLCAiUHUiLCAiTnUiLCAiQ3UiLCAiSXUiLCAiT3UiLCAidDgiLCAiUnUiLCAiTHUiLCAiTXUiLCAiRHUiLCAiVXUiLCAiVGEiLCAiTGUiLCAianUiLCAiSnUiLCAiWHUiLCAiWXUiLCAidjgiLCAiVnUiLCAiU2EiLCAiUHMiLCAienUiLCAiJDMiLCAiS3UiLCAiQnUiLCAiV3UiLCAiWnUiLCAiJHUiLCAiRnUiLCAicG4iLCAibnQiLCAiRjMiLCAiUXUiLCAiR3UiLCAicXUiLCAiSHUiLCAiRDIiLCAiYnUiLCAieGkiLCAicmkiLCAiZWkiLCAidGkiLCAiUDgiLCAibmkiLCAiZG4iLCAiUTMiLCAidWkiLCAiaWkiLCAiZmkiLCAiY2kiLCAic2kiLCAib2kiLCAidmkiLCAiYWkiLCAiUjgiLCAibGkiLCAiaTIiLCAicGkiLCAiZGkiLCAieWkiLCAiTWUiLCAibWkiLCAia2kiLCAiRzMiLCAiaGkiLCAiX2kiLCAid2kiLCAiVGkiLCAiRGUiLCAiU2kiLCAicTMiLCAiWDgiLCAic2UiLCAiRWkiLCAiTnMiLCAiZ2kiLCAiWTgiLCAiSDMiLCAiQWkiLCAiT3QiLCAiRWEiLCAiQ3MiLCAiUGkiLCAiTmkiLCAiQ2kiLCAiSWkiLCAiT2kiLCAiZ2EiLCAiUmkiLCAiWUUiLCAiUnQiLCAiTGkiLCAiTWkiLCAiWjgiLCAiYjMiLCAiTHQiLCAiRGkiLCAiVWkiLCAieGciLCAiRzgiLCAiamkiLCAiSmkiLCAiWGkiLCAiWWkiLCAiSHIiLCAibDIiLCAiVmkiLCAiemkiLCAieGwiLCAiS2kiLCAiQWEiLCAiQmkiLCAiV2kiLCAiUGEiLCAidmciLCAiSDgiLCAieDUiLCAicjUiLCAiZTUiLCAiWmkiLCAiJGkiLCAiWXIiLCAiZjIiLCAicmwiLCAiZWwiLCAidXQiLCAiRmkiLCAieWciLCAibWciLCAidjEiLCAia2ciLCAidGwiLCAibmwiLCAiSXMiLCAidDUiLCAiaGciLCAid2ciLCAiUWkiLCAiR2kiLCAiRWciLCAiZ2ciLCAibjUiLCAiQ2ciLCAibW8iLCAiTGciLCAiTWciLCAidWwiLCAiRGciLCAicWkiLCAiVWciLCAiSGkiLCAiYmkiLCAieGYiLCAidjUiLCAiQmciLCAiV2ciLCAiaWwiLCAicmYiLCAiZWYiLCAiJGciLCAiRmciLCAieW4iLCAicWciLCAiYmciLCAidGYiLCAibmYiLCAidWYiLCAibW4iLCAiZmwiLCAiTmEiLCAiRjEiLCAiQ2EiLCAib2YiLCAiY2wiLCAiYWYiLCAiazUiLCAiXzUiLCAic2wiLCAidzUiLCAiSWEiLCAid2YiLCAiUTIiLCAiRkEiLCAib2wiLCAiUzUiLCAiRTUiLCAiQ2YiLCAidmwiLCAiQTUiLCAiUDUiLCAiTXQiLCAiT3MiLCAiYWwiLCAiTjUiLCAiQzUiLCAiTzUiLCAiUjUiLCAiVWUiLCAia28iLCAiTDUiLCAiTTUiLCAiVTIiLCAiRDUiLCAiVTUiLCAiajUiLCAiSjUiLCAiWDUiLCAiRDEiLCAieGMiLCAicmMiLCAiWTUiLCAiZWMiLCAidGMiLCAiaG8iLCAibmMiLCAidWMiLCAiVjUiLCAibGwiLCAiaWMiLCAiZmMiLCAiRHQiLCAiejUiLCAiY2MiLCAiSzUiLCAiQjUiLCAic2MiLCAib2MiLCAiVzUiLCAiX28iLCAiVXQiLCAiRzIiLCAidmMiLCAiWjUiLCAiYWMiLCAiT2EiLCAibGMiLCAiJDUiLCAicGwiLCAicGMiLCAiZGMiLCAieWMiLCAibWMiLCAiamUiLCAiUTUiLCAiRzUiLCAia2MiLCAiaGMiLCAia24iLCAicTUiLCAiSDUiLCAiX2MiLCAid2MiLCAid28iLCAiZGwiLCAiVGMiLCAiU2MiLCAiRWMiLCAidWQiLCAiZ2MiLCAiaWQiLCAiQWMiLCAib2QiLCAieWwiLCAibWwiLCAiYWQiLCAibGQiLCAiVG8iLCAiUGMiLCAiUmEiLCAiTmMiLCAiQ2MiLCAiSWMiLCAiUnMiLCAiSmUiLCAiTGEiLCAiTHMiLCAiT2MiLCAiTWEiLCAia2wiLCAiUmMiLCAiYzIiLCAiTGMiLCAiUTEiLCAiTWMiLCAiRGMiLCAiVWMiLCAiaGwiLCAicTIiLCAiajIiLCAiaXQiLCAiamMiLCAiSmMiLCAiWGMiLCAiWWMiLCAiWGUiLCAiWWUiLCAiVmMiLCAiemMiLCAiS2MiLCAiQmMiLCAiV2MiLCAiWmMiLCAieCIsICJyIiwgImUiLCAidCIsICJNcyIsICJmIiwgIm8iLCAiRGEiLCAiZCIsICJEcyIsICIkYyIsICJGYyIsICJKMiIsICJxMCIsICJHMSIsICJLciIsICJVYSIsICJvZSIsICJVcyIsICJrIiwgImgiLCAiX2wiLCAiejEiLCAiZnIiLCAid2wiLCAiVGwiLCAiU28iLCAiamEiLCAiWDIiLCAiZyIsICJBIiwgIk4iLCAiQyIsICJZIiwgIk8iLCAiTCIsICJNIiwgIlYiLCAieiIsICJqcyIsICJqdCIsICJ3MSIsICJKcyIsICJKdCIsICJTbCIsICJmdCIsICJlciIsICJKYSIsICJjdCIsICJEciIsICJYcyIsICJRYyIsICJobiIsICJFbCIsICJnbCIsICJZcyIsICJFbyIsICJWcyIsICJIMiIsICJwMiIsICJxMSIsICJYYSIsICJBbCIsICJTMiIsICJQbCIsICJYdCIsICJBciIsICJOMSIsICJQIiwgImQyIiwgIkkwIiwgIkMxIiwgInAiLCAidmUiLCAiVmUiLCAiX24iLCAiRTIiLCAid3IiLCAiTmwiLCAiWWEiLCAiQ2wiLCAid24iLCAiVUciLCAieGIiLCAia2IiLCAid2IiLCAiU2IiLCAiRWIiLCAiQWIiLCAiQ2IiLCAiT2IiLCAiTWIiLCAiRGIiLCAiYmIiLCAidDEwIiwgIlAxMCIsICJaMTAiLCAiSTEiLCAiYjIiLCAiVDEiLCAidDAiLCAiaTAiLCAiaiIsICJLIiwgIkoiLCAiUSIsICIkIiwgImYwIiwgInMwIiwgInYwIiwgIm8wIiwgInkyIiwgIkdjIiwgIklsIiwgIk9sIiwgInFjIiwgIlJsIiwgIkhjIiwgIkxsIiwgIlRuIiwgImcyIiwgIkgxIiwgIk1sIiwgIlZhIiwgInpzIiwgIm0yIiwgIkRsIiwgIkYiLCAiSCIsICJCIiwgImEwIiwgIm0wIiwgIkQiLCAiTzAiLCAiajAiLCAiQjAiLCAiVCIsICJYIiwgIkYwIiwgIlUwIiwgIkowIiwgImMwIiwgImQwIiwgIkUwIiwgIkwwIiwgIlgwIiwgIm4wIiwgIk4wIiwgIlVsIiwgImpsIiwgInphIiwgIkthIiwgIlpyIiwgIlUxIiwgInN0IiwgInZyIiwgIkJhIiwgIkEyIiwgImIxIiwgIlAyIiwgInMyIiwgIm5yIiwgIlYwIiwgIlNyIiwgIlVyIiwgImJyIiwgImUyIiwgImgxIiwgIklyIiwgIlIxIiwgIl8iLCAiYiIsICJTMCIsICJHIiwgIk0wIiwgInRyIiwgInhyIiwgIk9yIiwgImsyIiwgIkpsIiwgInplIiwgInMxIiwgImFlIiwgIktlIiwgIldhIiwgIktzIiwgImpyIiwgIlhsIiwgImUxIiwgIm90IiwgIkJzIiwgIldzIiwgIlRyIiwgIllsIiwgIlphIiwgIlZsIiwgInpsIiwgIkJlIiwgIkpyIiwgIlpzIiwgImdvIiwgIktsIiwgImJjIiwgIkFvIiwgIm0iLCAiZTAiLCAicHIiLCAidyIsICIkYSIsICJ0MSIsICJCbCIsICJXbCIsICJabCIsICJ4cyIsICJGYSIsICIkcyIsICJXZSIsICJQbyIsICJZdCIsICJZMiIsICIkbCIsICJGbCIsICJuMSIsICJ4MiIsICJFciIsICJCMiIsICJsdCIsICJtZSIsICJQbiIsICJ0byIsICJObiIsICJjcyIsICJrZSIsICJDbiIsICJ0ZSIsICJGdCIsICJ5ciIsICJRdCIsICJJbiIsICJoZSIsICJwdCIsICJLbyIsICJubyIsICJ2MiIsICJ1byIsICJPbiIsICJkdCIsICJCbyIsICJpbyIsICJXbyIsICJmbyIsICJ5dCIsICJzcyIsICJabyIsICJjbyIsICIkbyIsICJSbiIsICJzbyIsICJGbyIsICJ4YSIsICJvcyIsICJRbyIsICJHbyIsICJyYSIsICJwMyIsICJPNiIsICJkMyIsICJEbSIsICJlYSIsICJ5MyIsICJMMSIsICJtdCIsICJtMyIsICJxIiwgIkkiLCAiVSIsICJUMCIsICJSMCIsICJtciIsICJvciIsICJociIsICJjciIsICJzciIsICJOciIsICJGciIsICJCciIsICJXciIsICJNciIsICJRciIsICJ4MSIsICJhMSIsICJsMSIsICJpMSIsICJfMSIsICJDciIsICJNMSIsICJ0MiIsICJnMSIsICJXMiIsICJuZSIsICJYciIsICJyMSIsICJsciIsICJ6ciIsICJCMSIsICJfZSIsICJaMiIsICJ3ZSIsICJHdCIsICJDMiIsICJuMiIsICJJMiIsICJrdCIsICJPMiIsICJodCIsICIkZSIsICJUZSIsICJTZSIsICJFZSIsICJnZSIsICJBZSIsICJXMSIsICJQZSIsICJfdCIsICJGZSIsICJ1ZSIsICJSMiIsICJxdCIsICJ2cyIsICJ3dCIsICJUdCIsICJIdCIsICJpZSIsICJTdCIsICJidCIsICJmZSIsICJ4biIsICJMbiIsICJybiIsICJNbiIsICJlbiIsICJEbiIsICJxbyIsICJ0biIsICJFdCIsICJhcyIsICJscyIsICJwcyIsICJIbyIsICJrMyIsICJvbyIsICJibyIsICJ0YSIsICJoMyIsICJfMyIsICJuYSIsICJ1YSIsICJVbiIsICJ3MyIsICJUMyIsICJTMyIsICJOZSIsICJFMyIsICJnMyIsICJpYSIsICJkcyIsICJ2byIsICJydiIsICJBMyIsICJmYSIsICJ5cyIsICJhbyIsICJndCIsICJRZSIsICJtcyIsICJBdCIsICJubiIsICJ1biIsICJQMyIsICJOMyIsICJDMyIsICJjYSIsICJqbiIsICJzIiwgImMiLCAidiIsICJ5IiwgIlMiLCAiRSIsICJSIiwgIloiLCAiWW0iLCAiZDEiLCAiX3IiLCAiZjEiLCAiYzEiLCAicDEiLCAiSTMiLCAiem0iLCAiS20iLCAiQm0iLCAic2EiLCAiWm0iLCAiUjYiLCAiJG0iLCAiRm0iLCAiTDYiLCAiTTYiLCAiRDYiLCAicW0iLCAiVTYiLCAidHQiLCAiR2UiLCAicWUiLCAiSGUiLCAiQ2UiLCAiYmUiLCAieHQiLCAiUHQiLCAicnQiLCAiZXQiLCAiSm4iLCAiWG4iLCAia3MiLCAiaHMiLCAiX3MiLCAiTzMiLCAiajYiLCAiSjYiLCAiWDYiLCAiWTYiLCAiUjMiLCAiTDMiLCAieDkiLCAiVjYiLCAiZTkiLCAiejYiLCAiSzYiLCAiQjYiLCAiVzYiLCAiWjYiLCAiJDYiLCAiRjYiLCAiUTYiLCAiRzYiLCAicTYiLCAiSDYiLCAiYjYiLCAieDQiLCAicjQiLCAiZTQiLCAidDQiLCAiZjQiLCAiYzQiLCAiczQiLCAibzQiLCAidjQiLCAicDQiLCAiZDQiLCAieTQiLCAiazQiLCAiaDQiLCAiXzQiLCAidzQiLCAiVDQiLCAiUzQiLCAiRTQiLCAiQTQiLCAiU24iLCAiajEiLCAiTjIiLCAieVYiLCAidTEiLCAiRnMiLCAiTm8iLCAia1YiLCAiaFYiLCAicnMiLCAiZHIiLCAiUHIiLCAiVnQiLCAiQVYiLCAienQiLCAiQ28iLCAiUFYiLCAiUWEiLCAiTlYiLCAiZXMiLCAiSW8iLCAiRW4iLCAiR2EiLCAiTzEiLCAiVjIiLCAiUWwiLCAibGUiLCAiSVYiLCAiT1YiLCAiT28iLCAiUlYiLCAiTFYiLCAiTVYiLCAiRFYiLCAicWEiLCAiVVYiLCAialYiLCAicGUiLCAiSlYiLCAidHMiLCAiUm8iLCAiR2wiLCAiVlYiLCAielYiLCAiQlYiLCAieGUiLCAiV1YiLCAiTG8iLCAiTW8iLCAiYXIiLCAiRlYiLCAicWwiLCAiaDIiLCAiZGUiLCAiVnIiLCAiXzIiLCAicVYiLCAidnQiLCAiejIiLCAiS3QiLCAiQnQiLCAiV3QiLCAiSFYiLCAiQTEiLCAiSGEiLCAiSGwiLCAidzIiLCAiYmwiLCAiYmEiLCAiazEiLCAieDYiLCAiRG8iLCAiUXMiLCAieDMiLCAia3IiLCAidDYiLCAiVyIsICJHcyIsICJ3MCIsICJyZSIsICJVbyIsICJucyIsICJqbyIsICJTMSIsICJadCIsICJhdCIsICJvMSIsICJKMSIsICJLMSIsICJKbyIsICJxcyIsICJ1MCIsICJIcyIsICJ1cyIsICJQMSIsICJnbiIsICJlZSIsICJ0MyIsICJBbiIsICJUMiIsICJsMCIsICIkciIsICJ4bSIsICJ2NiIsICJYbyIsICJ5ZSIsICJicyIsICJpcyIsICJaZSIsICJZbyIsICIkdCIsICJWbyIsICJyMiIsICJ4byIsICJfbSIsICJ2MyIsICJybyIsICJQNiIsICJlbyIsICJLMiIsICJSbSIsICJmcyIsICJYMSIsICJMciIsICJ6byIsICJFMSIsICJvYSIsICJGdSIsICJZbiIsICJBciIsICIkcyIsICIkbiIsICJ0IiwgInplIiwgIldlIiwgImUiLCAicHQiLCAiZWkiLCAiWmUiLCAiciIsICJabiIsICJPIiwgIlRlIiwgIkRlIiwgInRpIiwgIk9lIiwgIkkiLCAiZnQiLCAiSWUiLCAiUXQiLCAiSnQiLCAiQmUiLCAiWHQiLCAiUmUiLCAid2UiLCAic2kiLCAicyIsICJRZSIsICIkZSIsICJKZSIsICJLZSIsICJqZSIsICJYZSIsICJaIiwgInFlIiwgImp0IiwgIkZyIiwgIlVyIiwgImFpIiwgImR0IiwgIk1yIiwgIm9pIiwgIlp0IiwgInhlIiwgInR0IiwgInpyIiwgIkciLCAiUXIiLCAidWkiLCAicGkiLCAiaGkiLCAidHIiLCAiZ3QiLCAianIiLCAiSnIiLCAibnQiLCAicnQiLCAicnIiLCAiZGkiLCAiZ2kiLCAiYyIsICJoIiwgImciLCAieSIsICJGIiwgImIiLCAieWkiLCAiayIsICJNIiwgIk4iLCAiZW4iLCAidmUiLCAieGkiLCAia2kiLCAibm4iLCAic24iLCAidmkiLCAiUGkiLCAib24iLCAiYnQiLCAieXQiLCAiT2kiLCAidyIsICJtdCIsICJSIiwgInNlIiwgIld0IiwgIkNpIiwgIkoiLCAiYWUiLCAicSIsICJCIiwgIkEiLCAibGUiLCAiVmUiLCAiaXQiLCAiY3QiLCAiQWUiLCAiViIsICJvZSIsICJhbiIsICJBaSIsICJRIiwgIl9pIiwgImxuIiwgIk5lIiwgIkNlIiwgIkxpIiwgIkdyIiwgImJpIiwgImV0IiwgImlyIiwgIlNpIiwgIkVpIiwgIlRpIiwgInRuIiwgInJuIiwgImNuIiwgInVuIiwgIlN0IiwgIm5yIiwgIndpIiwgImhuIiwgIk5pIiwgInBuIiwgIkRpIiwgIkJpIiwgIkhpIiwgIlVpIiwgIkZpIiwgIk1pIiwgIkhlIiwgIm1uIiwgImJuIiwgImduIiwgInNyIiwgIlR0IiwgInZ0IiwgInluIiwgIlNuIiwgIksiLCAib3IiLCAibHIiLCAia2UiLCAiZGUiLCAiY3IiLCAiZmUiLCAidXIiLCAiemkiLCAiS2kiLCAiamkiLCAiUWkiLCAiSmkiLCAiJGkiLCAiWmkiLCAieHQiLCAiRXQiLCAidm4iLCAiaHIiLCAiVG4iLCAiTCIsICJucyIsICJ3biIsICJpcyIsICJhcyIsICJzcyIsICJfdCIsICJkciIsICJ1cyIsICJBdCIsICJTIiwgImdyIiwgIm1yIiwgIk5uIiwgImJyIiwgIl9uIiwgImZzIiwgImRzIiwgIkx0IiwgIkxuIiwgImJlIiwgIlBuIiwgImdzIiwgIm1zIiwgImJzIiwgInlzIiwgIlNyIiwgIkRuIiwgIkVzIiwgIlNzIiwgIlRzIiwgInllIiwgIkVyIiwgIk9uIiwgInZyIiwgIlRyIiwgImllIiwgInZzIiwgImx0IiwgIkdlIiwgIkUiLCAid3MiLCAicGUiLCAieHMiLCAia3MiLCAiUHMiLCAiTnMiLCAiQ3MiLCAiQXMiLCAiX3MiLCAiTHMiLCAiRHMiLCAiQm4iLCAiSW4iLCAiUm4iLCAicW4iLCAiVm4iLCAiT3MiLCAiSXMiLCAiQnMiLCAiaiIsICJQIiwgIkR0IiwgIlJzIiwgInFzIiwgIlZzIiwgIkhzIiwgIlVzIiwgImtuIiwgIndyIiwgIkZzIiwgIk1zIiwgIkdzIiwgImtyIiwgIlByIiwgIngiLCAiVW4iLCAiQ3IiLCAiTnIiLCAiWXMiLCAienMiLCAiV3MiLCAiS3MiLCAiTW4iLCAianMiLCAiSnMiLCAiUXMiLCAiR24iLCAiaGUiLCAiSm4iLCAienQiLCAiQnIiLCAiJCIsICJSciIsICJxciIsICJfciIsICJYbiIsICJLdCIsICJWciIsICJIciIsICJyaSIsICJuaSIsICJpaSIsICIkdCIsICJVIiwgImVyIiwgIllyIiwgImxpIiwgImNpIiwgIldyIiwgIktyIiwgImZpIiwgIlhyIiwgIiRyIiwgIm1pIiwgIlpyIiwgIklpIiwgImZuIiwgImNvIiwgInVvIiwgInZvIiwgIlQiLCAiRW4iLCAic3QiLCAid3QiLCAieG4iLCAiZXMiLCAidHMiLCAicnMiLCAia3QiLCAicHIiLCAib3MiLCAibHMiLCAiUHQiLCAiY3MiLCAiWSIsICJlYyIsICJGZSIsICJlZSIsICJOdCIsICJQZSIsICJmciIsICJDdCIsICJ0ZSIsICJtZSIsICJnZSIsICJyZSIsICJNZSIsICJocyIsICJhdCIsICJvdCIsICJuZSIsICJ6IiwgInBzIiwgInlyIiwgIkhuIiwgIk90IiwgInhyIiwgIkl0IiwgIkJ0IiwgIlJ0IiwgIkZuIiwgIlhzIiwgImNlIiwgInAiLCAibSIsICJmIiwgInF0IiwgIkxyIiwgIlZ0IiwgImQiLCAidiIsICJvIiwgIl9lIiwgInVlIiwgIlllIiwgIkRyIiwgIlduIiwgIk9yIiwgIktuIiwgIkMiLCAiU2UiLCAiVXQiLCAiRnQiLCAiam4iLCAiWnMiLCAiVyIsICJRbiIsICJEIiwgIk10IiwgIkVlIiwgIkgiLCAiZWEiLCAiR3QiLCAiTGUiLCAidXQiLCAiWCIsICJJciIsICJodCIsICJZdCIsICJ6biIsICJIdCIsICJwciIsICJLZSIsICJldCIsICJybiIsICJ4IiwgImUiLCAiYiIsICJyZSIsICJ5IiwgInQiLCAiY2UiLCAic2UiLCAiTyIsICJvZSIsICJFIiwgInIiLCAiVHQiLCAiRyIsICJzIiwgIk50IiwgInh0IiwgInllIiwgIl90IiwgIiQiLCAiaiIsICJ5dCIsICJfZSIsICJJZSIsICJPZSIsICJEZSIsICJJdCIsICJrZSIsICJDZSIsICJKIiwgIlgiLCAidyIsICJGIiwgInBlIiwgIkR0IiwgIkF0IiwgImsiLCAia3QiLCAiQSIsICJ1ZSIsICJiZSIsICJfIiwgIlkiLCAidnQiLCAiQWUiLCAiZ2UiLCAiQ3QiLCAiU3QiLCAiVCIsICJEIiwgIkxlIiwgImJ0IiwgIlBlIiwgIkZlIiwgIkIiLCAiUnQiLCAiVmUiLCAiZmUiLCAiaCIsICJJIiwgImllIiwgIk4iLCAidiIsICJ3ZSIsICJQdCIsICJCZSIsICJkIiwgIlciLCAiVWUiLCAiTCIsICJNZSIsICJoZSIsICJZZSIsICJqZSIsICJGdCIsICIkZSIsICJSIiwgIksiLCAiSmUiLCAiWGUiLCAiUyIsICJWIiwgInd0IiwgIlZ0IiwgIkd0IiwgIlV0IiwgIkJ0IiwgIiR0IiwgImRlIiwgIk10IiwgIll0IiwgImp0IiwgIlUiLCAiR2UiLCAiWiIsICJlZSIsICJ0ZSIsICJKdCIsICJYdCIsICJRdCIsICJxdCIsICJXdCIsICJRZSIsICJxZSIsICJNIiwgIldlIiwgIm1lIiwgIm5lIiwgIkhlIiwgIkh0IiwgInp0IiwgIlp0IiwgInplIiwgImVuIiwgIkt0IiwgInR0IiwgIk5lIiwgIlRlIiwgIm50IiwgIlAiLCAiYWUiLCAieGUiLCAibXQiLCAiRXQiLCAiZ24iLCAibGUiLCAiT3QiLCAiU2UiLCAicSIsICJRIiwgIlhuIiwgIkMiLCAiZ3QiLCAidmUiLCAiTHQiLCAiUmUiLCAiSCIsICJ6IiwgInRuIiwgIlplIiwgIm5uIiwgInFwIiwgIkZzIiwgIk5zIiwgIk5yIiwgIm91IiwgIk1zIiwgInQiLCAiX2UiLCAiRGUiLCAiZSIsICJvdCIsICJxcyIsICJ4ZSIsICJyIiwgIk9zIiwgInMiLCAiVSIsICJYIiwgInNlIiwgIkdyIiwgImllIiwgIkQiLCAiY3QiLCAiUSIsICJZciIsICJ6ciIsICJwdCIsICJhZSIsICJjZSIsICJ1ZSIsICJqciIsICJvZSIsICJaIiwgImh0IiwgIlRlIiwgImJlIiwgInZlIiwgInllIiwgIndlIiwgIlYiLCAibGUiLCAibHQiLCAiV3MiLCAia2UiLCAiUXIiLCAidyIsICJLciIsICJHcyIsICJmdCIsICJKciIsICJZcyIsICJlbiIsICJCZSIsICJybiIsICJqcyIsICJLcyIsICJRcyIsICJadCIsICJacyIsICJtdCIsICJoZSIsICJDdCIsICJNIiwgIkhlIiwgInRpIiwgIlAiLCAicGUiLCAiY24iLCAicG4iLCAicnIiLCAiRG4iLCAiaG4iLCAiV2UiLCAidWkiLCAiY2kiLCAiZm4iLCAib2kiLCAibGkiLCAibW4iLCAicGkiLCAiVmUiLCAiZG4iLCAibnIiLCAibmkiLCAiQ24iLCAiU24iLCAiZHQiLCAiRW4iLCAicmkiLCAiZ24iLCAiZ3QiLCAiQW4iLCAic2kiLCAiTGUiLCAiaWkiLCAiYWkiLCAic3IiLCAiVWUiLCAiaGkiLCAiX24iLCAiZmUiLCAic24iLCAibm4iLCAidW4iLCAiYW4iLCAiZmkiLCAieiIsICJpciIsICJhciIsICJrIiwgIm1pIiwgInZuIiwgInluIiwgIlN0IiwgInRyIiwgIlMiLCAiXyIsICJFdCIsICJ1ciIsICJkaSIsICJvciIsICJibiIsICJsciIsICJjciIsICJ3biIsICJ4biIsICJnaSIsICJTaSIsICJDaSIsICJFaSIsICJBaSIsICJtIiwgIm8iLCAiX2kiLCAiRGkiLCAidmkiLCAieWkiLCAicCIsICJiaSIsICJsbiIsICJ3aSIsICJUaSIsICJ4aSIsICJraSIsICJCbiIsICJMbiIsICJ0ZSIsICJyZSIsICJCaSIsICJMaSIsICJHZSIsICJGaSIsICJZZSIsICJDZSIsICJQaSIsICJfdCIsICJXIiwgImdlIiwgImRlIiwgIk8iLCAiemUiLCAiRHQiLCAicHIiLCAiSW4iLCAiTmkiLCAiamUiLCAiSWkiLCAiZiIsICJObiIsICJkIiwgIngiLCAiUmkiLCAidnQiLCAiS2UiLCAiUWUiLCAicSIsICIkaSIsICJociIsICJNaSIsICJSbiIsICJXaSIsICJDIiwgIkUiLCAiQSIsICJxaSIsICJIaSIsICJWaSIsICJPaSIsICJGIiwgIlQiLCAiYyIsICJnIiwgInkiLCAiSSIsICJiIiwgIiQiLCAiJG4iLCAiVWkiLCAiU2UiLCAibmUiLCAiQiIsICJHaSIsICJ6aSIsICJNbiIsICJZaSIsICJPbiIsICJqaSIsICJWbiIsICJVbiIsICJLaSIsICJOZSIsICJXbiIsICJHbiIsICJZbiIsICJRaSIsICJYaSIsICJKaSIsICJ6biIsICJLbiIsICJmciIsICJtciIsICJyYSIsICJaaSIsICJlYSIsICJ0YSIsICJuYSIsICJxbiIsICJIbiIsICJqbiIsICJRbiIsICJzYSIsICJpYSIsICJ5dCIsICJKIiwgIlhuIiwgIkZuIiwgIlhlIiwgImJ0IiwgInd0IiwgIlpuIiwgIlplIiwgIkplIiwgImRyIiwgInVhIiwgImNhIiwgIlpyIiwgIlhyIiwgImV0IiwgIlNyIiwgIkVyIiwgIkllIiwgIlJlIiwgIkFyIiwgInh0IiwgIlR0IiwgImoiLCAiU2EiLCAiJGUiLCAidHQiLCAib3MiLCAiTCIsICJCdCIsICJPdCIsICJscyIsICJfYSIsICJBcyIsICJ3ciIsICJtZSIsICJiciIsICJZYSIsICJPZSIsICJmcyIsICJxYSIsICJOIiwgIm1zIiwgIkhhIiwgIlZhIiwgIlVhIiwgIldhIiwgIkdhIiwgImRzIiwgIl9zIiwgIkRzIiwgIk1lIiwgIlByIiwgInphIiwgIkthIiwgImphIiwgIlFhIiwgIlhhIiwgIlRzIiwgIkphIiwgIlphIiwgImV1IiwgInR1IiwgImtzIiwgIkxzIiwgIiRyIiwgIklzIiwgInJ1IiwgIk1yIiwgIk9yIiwgInhzIiwgImJzIiwgInp0IiwgInJ0IiwgInlzIiwgIkJzIiwgInZzIiwgImVlIiwgIkt0IiwgIlF0IiwgIlJzIiwgInFyIiwgIkhyIiwgIlkiLCAiVnIiLCAiVXIiLCAiUnIiLCAiJHMiLCAiWHQiLCAiV3IiLCAiSHMiLCAiVnMiLCAiVXMiLCAiSnQiLCAienMiLCAidG4iLCAiUiIsICJlciIsICJvbiIsICJYcyIsICJKcyIsICJlaSIsICJBdCIsICJQZSIsICJrbiIsICJQbiIsICJKbiIsICJhYSIsICJlcyIsICJvYSIsICJ0cyIsICJsYSIsICJycyIsICJwYSIsICJucyIsICJfYyIsICJzcyIsICJpcyIsICJnciIsICJDciIsICJhcyIsICJrdCIsICJoYSIsICJmYSIsICJtYSIsICJkYSIsICJnYSIsICJ1cyIsICJDYSIsICJFZSIsICJMdCIsICJGdCIsICJQdCIsICJOdCIsICJJdCIsICJSdCIsICIkdCIsICJNdCIsICJBYSIsICJfciIsICJEciIsICJpdCIsICJPYSIsICJVdCIsICJhdCIsICJXdCIsICJUciIsICJ1dCIsICJIIiwgIkJyIiwgIkd0IiwgIkxyIiwgIll0IiwgIkZyIiwgImp0IiwgIndzIiwgIm51IiwgInN1IiwgIml1IiwgImF1IiwgIklyIiwgIlBzIiwgInV1IiwgIlBuIiwgIkplIiwgImUiLCAiY2wiLCAiciIsICJ0IiwgImxsIiwgIlJuIiwgInpuIiwgInBsIiwgIkFyIiwgIk1uIiwgInVlIiwgIlgiLCAiQnIiLCAibWwiLCAiZmUiLCAiWW4iLCAiQWUiLCAiSCIsICJvIiwgInMiLCAiVyIsICJHIiwgIloiLCAiUSIsICJvZSIsICJsZSIsICJzZSIsICJ2ZSIsICJhZSIsICJjZSIsICIkIiwgImVlIiwgIlFlIiwgIkJlIiwgIkZlIiwgIlplIiwgInFyIiwgInFlIiwgIlRyIiwgIiRuIiwgIm5yIiwgIktuIiwgIkduIiwgIlUiLCAiSm4iLCAiVm4iLCAiSG4iLCAiWG4iLCAiRWUiLCAidHIiLCAiUW4iLCAiWm4iLCAiRHQiLCAicCIsICJjIiwgIkQiLCAiZiIsICJoIiwgInB0IiwgImlyIiwgIlByIiwgIlhlIiwgIlduIiwgIlYiLCAicmUiLCAiZWkiLCAiZCIsICJSIiwgIm0iLCAiZyIsICJ4IiwgIkYiLCAiQiIsICJiIiwgInYiLCAieSIsICJrIiwgIkUiLCAiTmUiLCAiTyIsICJuaSIsICJ5bCIsICJUZSIsICJTZSIsICJMciIsICJ1aSIsICJQZSIsICJodCIsICJhciIsICJhaSIsICJDZSIsICJEZSIsICJSZSIsICJvaSIsICJPciIsICJiZSIsICJndCIsICJpaSIsICJ3ciIsICJ0aSIsICJ2dCIsICJjaSIsICJoaSIsICJkaSIsICJwaSIsICJjciIsICJzciIsICJGdCIsICJNbCIsICJHbCIsICJiaSIsICJFaSIsICJDaSIsICJFdCIsICJTciIsICJyciIsICJZIiwgInVyIiwgIk5uIiwgIkN0IiwgIklyIiwgInlpIiwgInhpIiwgImJ0IiwgIkJpIiwgInJpIiwgImVyIiwgInh0IiwgImtpIiwgIkFpIiwgIm10IiwgIl9yIiwgIndpIiwgIlVuIiwgInFpIiwgIkljIiwgIkpjIiwgIkdjIiwgIk9jIiwgIlljIiwgIldjIiwgIk1jIiwgIiRjIiwgIlZjIiwgIlVjIiwgImpjIiwgImx0IiwgImlsIiwgIkMiLCAiT24iLCAidWwiLCAiSWUiLCAia3IiLCAiX2UiLCAiUGkiLCAiT2kiLCAiTmkiLCAiemkiLCAiVWkiLCAiWWkiLCAiVmkiLCAiTGUiLCAiR2kiLCAiemUiLCAiS2kiLCAiSmkiLCAiWmkiLCAibHIiLCAiaHUiLCAidnUiLCAiQ3UiLCAieHUiLCAiUHQiLCAid3UiLCAicXUiLCAiU3UiLCAiT3UiLCAiTnUiLCAienUiLCAiWXUiLCAianUiLCAiWXIiLCAiT3QiLCAiS3UiLCAiUXUiLCAiT2UiLCAianIiLCAiaWEiLCAib2EiLCAibGEiLCAiTXQiLCAiaGEiLCAiQ2EiLCAia2EiLCAiJHQiLCAiU2EiLCAibmUiLCAiR3QiLCAiTWEiLCAiVmEiLCAiR2EiLCAiV2EiLCAiUWEiLCAiSnQiLCAiaW8iLCAiYW8iLCAiY28iLCAiaG8iLCAiRm8iLCAieG8iLCAid28iLCAic24iLCAiTG8iLCAiTm8iLCAiem8iLCAiVm8iLCAiJG8iLCAiSG8iLCAiUW8iLCAiZXMiLCAidXMiLCAib3MiLCAibHMiLCAiRHMiLCAiaHMiLCAiZ3MiLCAiQ3MiLCAia3MiLCAiQXMiLCAiZ24iLCAiTnMiLCAienMiLCAiVXMiLCAiR3MiLCAiSnMiLCAiWnMiLCAiZWMiLCAidGMiLCAidWMiLCAib2MiLCAiY2MiLCAidmMiLCAiQW4iLCAia2MiLCAiVGMiLCAiUGMiLCAiTGMiLCAiTG4iLCAiYWwiLCAib2wiLCAiZnQiLCAiam4iLCAiZHQiLCAic2kiLCAib3IiLCAibGkiLCAiZmkiLCAiRGkiLCAibWkiLCAiZ2kiLCAiVWwiLCAidmkiLCAiWWwiLCAiRmkiLCAiVGkiLCAiTmMiLCAiU24iLCAiUmMiLCAiWGMiLCAiX24iLCAiSW4iLCAic2wiLCAiU2kiLCAieXQiLCAiTGkiLCAiX2kiLCAiSWkiLCAiUmkiLCAiTWkiLCAia3QiLCAiamkiLCAiJGkiLCAiSGkiLCAiV2kiLCAiQ2YiLCAieGYiLCAiUWkiLCAiWGkiLCAiRHUiLCAiZXUiLCAicnUiLCAid2YiLCAidXUiLCAiTWUiLCAidHUiLCAibnUiLCAiaXUiLCAiVWUiLCAiQXQiLCAiQnQiLCAicXQiLCAiTnIiLCAiYXUiLCAib3UiLCAic3UiLCAiY3UiLCAibHUiLCAid3QiLCAiZnUiLCAieGUiLCAidyIsICJBIiwgInEiLCAiVCIsICJOIiwgIl8iLCAiUCIsICJTIiwgIkwiLCAid2UiLCAiaiIsICJJIiwgIkoiLCAiSyIsICJtZSIsICJnZSIsICJNIiwgImN0IiwgImR1IiwgInB1IiwgImd1IiwgIm11IiwgIkV1IiwgIlJyIiwgIlR0IiwgIlN0IiwgIkZ1IiwgImJ1IiwgInl1IiwgImt1IiwgIkJ1IiwgIkF1IiwgIlR1IiwgIkx1IiwgInpyIiwgIlB1IiwgIl91IiwgIl90IiwgIkl1IiwgIlVyIiwgIk1yIiwgIlJ1IiwgIlV1IiwgIk11IiwgIlZ1IiwgIiR1IiwgInBlIiwgIkx0IiwgIkd1IiwgIld1IiwgIkl0IiwgIkh1IiwgIk50IiwgIlh1IiwgIlZyIiwgImZyIiwgIlllIiwgIkp1IiwgIlZlIiwgIlp1IiwgImVhIiwgIm5hIiwgIlJ0IiwgInJhIiwgInp0IiwgInRhIiwgImFhIiwgInVhIiwgIkRyIiwgInByIiwgImRyIiwgImNhIiwgInNhIiwgIkRhIiwgImZhIiwgImRhIiwgInJwIiwgInBhIiwgImVwIiwgIkVhIiwgInRwIiwgIm5wIiwgIm1hIiwgImlwIiwgInVwIiwgImFwIiwgImRwIiwgIlV0IiwgIm9wIiwgImdhIiwgIll0IiwgInZhIiwgImRlIiwgInRlIiwgIiRyIiwgIkZhIiwgInNwIiwgInllIiwgImNwIiwgImxwIiwgImZwIiwgIkRwIiwgInBwIiwgImhwIiwgIm1wIiwgImdwIiwgInlhIiwgInhwIiwgIlZ0IiwgInZwIiwgImJhIiwgInhhIiwgIkZwIiwgIkVwIiwgIkNwIiwgImJwIiwgImp0IiwgInlwIiwgImtwIiwgIndwIiwgIkFwIiwgIkJwIiwgInFwIiwgIndhIiwgIkFhIiwgIlRwIiwgIlNwIiwgIlBwIiwgIl9wIiwgIlRhIiwgIkxwIiwgIktwIiwgIk9wIiwgIklwIiwgIkJhIiwgIk5wIiwgIlJwIiwgInpwIiwgIk1wIiwgIlVwIiwgIllwIiwgIlZwIiwgImpwIiwgIiRwIiwgIkdwIiwgIkhwIiwgInFhIiwgIldwIiwgIlBhIiwgIlFwIiwgIkpwIiwgIlhwIiwgIl9hIiwgIlpwIiwgInphIiwgImFkIiwgIkxhIiwgIk9hIiwgImplIiwgIkdyIiwgIkhyIiwgIld0IiwgImhyIiwgImlkIiwgInVkIiwgIklhIiwgIk5hIiwgIlJhIiwgIkh0IiwgIm9kIiwgIllhIiwgIldyIiwgImxkIiwgIkt0IiwgIlVhIiwgIiRhIiwgIm1yIiwgImphIiwgIkhhIiwgIlhhIiwgIkphIiwgIkthIiwgIlphIiwgIm5vIiwgImVvIiwgImVuIiwgInJvIiwgIlh0IiwgInRvIiwgIlF0IiwgIlp0IiwgIktyIiwgInVvIiwgInNvIiwgIm9vIiwgInBvIiwgImxvIiwgInJuIiwgIm5uIiwgInRuIiwgImZvIiwgIkRvIiwgInZvIiwgImVoIiwgImdvIiwgIm1vIiwgImJvIiwgIkVvIiwgIkNvIiwgIm9uIiwgInVuIiwgIkpyIiwgImFuIiwgImtvIiwgInlvIiwgIkFvIiwgIl9vIiwgImdyIiwgIlBvIiwgIkJvIiwgInFvIiwgIiRlIiwgInZyIiwgImNuIiwgImxuIiwgIlRvIiwgIkZyIiwgIlNvIiwgIklvIiwgIk9vIiwgImZuIiwgInloIiwgIkRuIiwgIlhyIiwgIlFyIiwgIlpyIiwgIlJvIiwgIllvIiwgIk1vIiwgIlVvIiwgImpvIiwgIkdvIiwgIlhvIiwgIldvIiwgIkpvIiwgIktvIiwgIlpvIiwgImlzIiwgInJzIiwgIm5zIiwgImV0IiwgInRzIiwgImFzIiwgIlZoIiwgImNzIiwgInNzIiwgInBuIiwgImRuIiwgImhuIiwgImZzIiwgImRzIiwgInBzIiwgIkhoIiwgIm1zIiwgIkVzIiwgInJ0IiwgIm1uIiwgInZzIiwgInoiLCAiRnMiLCAieXMiLCAiYnMiLCAieHMiLCAid3MiLCAiQnMiLCAiSXMiLCAidHQiLCAiT3MiLCAicXMiLCAiVHMiLCAiU3MiLCAiUHMiLCAiX3MiLCAiTHMiLCAiUnMiLCAiTXMiLCAiJHMiLCAiVnMiLCAianMiLCAiWXMiLCAiS3MiLCAiR2UiLCAiSHMiLCAidm4iLCAiV3MiLCAiUXMiLCAiRm4iLCAiWHMiLCAia2UiLCAiSGUiLCAiRG0iLCAiRXIiLCAicmMiLCAiaWMiLCAiaWUiLCAiaGUiLCAiRW4iLCAicW0iLCAiRm0iLCAieG0iLCAiQm0iLCAiYm4iLCAibmMiLCAiQ24iLCAiYWMiLCAibnQiLCAiX20iLCAic2MiLCAiZ2MiLCAibGMiLCAiaXQiLCAiZmMiLCAiaGMiLCAiQ3IiLCAibWMiLCAiUm0iLCAiem0iLCAia24iLCAieG4iLCAiRGMiLCAicGMiLCAiZGMiLCAieW4iLCAid24iLCAiWW0iLCAieWMiLCAiRmMiLCAiRWMiLCAiQ2MiLCAidXQiLCAiJG0iLCAiYmMiLCAieGMiLCAiS20iLCAicWMiLCAid2MiLCAiWm0iLCAiQWMiLCAiYnIiLCAiQm4iLCAiQmMiLCAiU2MiLCAiX2MiLCAieHIiLCAiYXQiLCAiV2UiLCAiS2UiLCAicW4iLCAieXIiLCAib3QiLCAic3QiLCAiRGciLCAiVG4iLCAiam4iLCAiQ3UiLCAiZCIsICJlIiwgImsyIiwgIlgyIiwgInQiLCAiRDIiLCAiaCIsICJYZSIsICJFMiIsICJHIiwgInV1IiwgInplIiwgIkgiLCAiSGUiLCAiWjIiLCAiS2UiLCAiTzIiLCAiSXUiLCAiJGUiLCAiZXUiLCAid3UiLCAibyIsICJmIiwgIkwiLCAiYyIsICJOdSIsICJXZSIsICJfZSIsICJnIiwgIlllIiwgIlFlIiwgIlZ1IiwgIlJ1IiwgIk91IiwgIlplIiwgInJlIiwgIlN1IiwgIkwyIiwgIm0iLCAiQnUiLCAiVXUiLCAibnUiLCAiR2UiLCAiTXUiLCAieGUiLCAicGUiLCAiQSIsICJqdSIsICJKdSIsICJzIiwgImsiLCAiZDIiLCAieiIsICJVIiwgInEiLCAiWHUiLCAiaXUiLCAiUCIsICJVMiIsICJ6dSIsICJIdSIsICJLdSIsICJ5IiwgIk0yIiwgInoyIiwgIkoiLCAiczIiLCAidDIiLCAiRzIiLCAiJHUiLCAidHUiLCAib3UiLCAiWCIsICJmdSIsICJTMiIsICIkMiIsICJ4MiIsICJadSIsICJRdSIsICJXdSIsICJCMiIsICJfdSIsICJ2MSIsICJ3MiIsICJJIiwgIksiLCAibHUiLCAiTiIsICJPIiwgIkEyIiwgImoiLCAiaWUiLCAibXUiLCAiSzIiLCAidnUiLCAiQyIsICJQMiIsICJsZSIsICJ5MiIsICJUdSIsICJSIiwgImIiLCAiRSIsICJ3IiwgIlkiLCAiXyIsICJXIiwgIlMiLCAiTSIsICJ2IiwgIll1IiwgIkZ1IiwgInF1IiwgIkd1IiwgInh1IiwgIkkyIiwgInVlIiwgImF1IiwgIkgyIiwgInJ1IiwgInN1IiwgImR1IiwgImN1IiwgImoyIiwgInB1IiwgInl1IiwgIlYyIiwgIm5lIiwgImIyIiwgImVlIiwgIlYiLCAiRCIsICJaIiwgIlEiLCAiQiIsICJGIiwgIlQiLCAibzIiLCAibTIiLCAieCIsICJndSIsICJKMiIsICJSMiIsICJ0ZSIsICJvZSIsICJOMiIsICJMdSIsICJmZSIsICJkZSIsICJXMiIsICJjZSIsICJzZSIsICJDZSIsICJDMiIsICJQZSIsICIkIiwgIl8yIiwgInAiLCAiVDIiLCAicTIiLCAiRjIiLCAiRHUiLCAiQXUiLCAiVGUiLCAiWTIiLCAiU2UiLCAiRmUiLCAiYnUiLCAia3UiLCAiaHUiLCAiYWUiLCAiTGUiLCAibWUiLCAicWUiLCAiSWUiLCAiUTIiLCAiTmUiLCAiVmUiLCAiUmUiLCAiT2UiLCAiVWUiLCAiRXUiLCAiTWUiLCAiSmUiLCAiYmUiLCAiUHUiLCAiamUiLCAiRWUiLCAid2UiLCAiQmUiLCAidmUiLCAiQWUiLCAiaGUiLCAiZ2UiLCAieWUiLCAiRGUiLCAia2UiLCAiVWwiLCAiemwiLCAiRXMiLCAiSmwiLCAidCIsICJlIiwgIkV0IiwgIkFzIiwgInIiLCAicyIsICJvIiwgIlhsIiwgIlQiLCAiWmwiLCAiTnMiLCAiUHMiLCAiZWMiLCAidGMiLCAiRmUiLCAiJGUiLCAiQ3QiLCAibmMiLCAiS2UiLCAicmMiLCAicSIsICJjZSIsICJ4ZSIsICJJcyIsICJiZSIsICJEIiwgIk90IiwgImtlIiwgInFzIiwgImZlIiwgIkhlIiwgInRlIiwgIkF0IiwgImxlIiwgIlkiLCAib2MiLCAiemUiLCAiR2UiLCAiVmUiLCAiVWUiLCAiV2UiLCAiWWUiLCAiUSIsICJfZSIsICJ0biIsICJhYyIsICJMcyIsICJ1YyIsICJCcyIsICJUZSIsICJHIiwgImNjIiwgImZjIiwgIl8iLCAiVXMiLCAiJHMiLCAiYmMiLCAiSnMiLCAianMiLCAicmUiLCAiWHMiLCAiWnMiLCAiX2MiLCAia2MiLCAiZWkiLCAiamUiLCAidGkiLCAiWGUiLCAiSmUiLCAibm4iLCAiRWMiLCAiaWkiLCAib2kiLCAiQWMiLCAiYWkiLCAibmUiLCAiRWUiLCAidWkiLCAiU2UiLCAibGkiLCAiY2kiLCAiZmkiLCAiTnQiLCAicGkiLCAiaGkiLCAiZGkiLCAibWkiLCAiUHQiLCAiWmUiLCAiaiIsICJoZSIsICJOYyIsICJSdCIsICJ5aSIsICJnaSIsICJldCIsICJvbiIsICJhbiIsICJ3aSIsICJ2aSIsICJ4aSIsICJiaSIsICJkZSIsICJJdCIsICJzbiIsICJ1biIsICJsbiIsICJxdCIsICJjbiIsICJEdCIsICJ0dCIsICJMdCIsICJraSIsICJfaSIsICJUaSIsICJPYyIsICJDZSIsICJydCIsICJFaSIsICJudCIsICJNdCIsICJQYyIsICJDaSIsICJmbiIsICJwbiIsICJGdCIsICJlZSIsICJobiIsICJPaSIsICJSYyIsICJBaSIsICJQIiwgIlIiLCAiSWMiLCAiUGkiLCAiZG4iLCAiVyIsICJSaSIsICJTdCIsICJJaSIsICJtZSIsICJNYyIsICJtbiIsICJOaSIsICJxaSIsICJCYyIsICJkIiwgIm0iLCAiYyIsICJmIiwgInAiLCAiZyIsICJ4IiwgImgiLCAiYiIsICJ3IiwgInYiLCAiTiIsICJPIiwgInZlIiwgIiQiLCAiSCIsICJVIiwgIlMiLCAiQyIsICJNIiwgIkEiLCAiUWUiLCAiRmMiLCAiJGMiLCAiVWMiLCAiV2MiLCAiQnQiLCAiJHQiLCAiemMiLCAiU2kiLCAiTGkiLCAiTWkiLCAiVXQiLCAiVmMiLCAiWWMiLCAiQmkiLCAieW4iLCAiRHMiLCAiV3QiLCAiR2MiLCAiS2MiLCAiT2UiLCAiRGkiLCAiTXMiLCAiSnAiLCAiWHAiLCAiWnAiLCAiQXIiLCAiWCIsICJtcyIsICJ4ZyIsICJfbCIsICJiZyIsICJaIiwgIk51IiwgIlB1IiwgIlJ1IiwgIkF1IiwgIlhyIiwgIkVsIiwgImtnIiwgIlRsIiwgIk1sIiwgIiRsIiwgIkZsIiwgIkJsIiwgImFlIiwgIklhIiwgInFhIiwgIklsIiwgIl9zIiwgIlJhIiwgInFsIiwgIkRsIiwgIkxsIiwgIlZsIiwgIlpyIiwgIllsIiwgIkdsIiwgIktsIiwgIkhsIiwgInkiLCAiT3MiLCAiUWwiLCAidWUiLCAiUXMiLCAienQiLCAiVWkiLCAidm4iLCAiVnQiLCAiWXQiLCAib3QiLCAidXQiLCAiY3QiLCAiQWUiLCAic2UiLCAiZXIiLCAidHIiLCAiUGUiLCAiRW4iLCAicnIiLCAibnIiLCAiX28iLCAiRW8iLCAiQ24iLCAicWUiLCAiZHQiLCAiUm8iLCAicW8iLCAiTG8iLCAiQm8iLCAiV28iLCAiWW8iLCAiS28iLCAiSG8iLCAicW4iLCAib3IiLCAiRG4iLCAiTG4iLCAiYXIiLCAiRm4iLCAidWEiLCAiY2EiLCAicGEiLCAidXIiLCAiYmEiLCAiQ2EiLCAiQWEiLCAiUGEiLCAiViIsICJCIiwgIkJhIiwgIiRhIiwgInphIiwgIllhIiwgIkthIiwgIlFhIiwgIlhhIiwgImV1IiwgInJ1IiwgInN1IiwgIm91IiwgInV1IiwgImN1IiwgInB1IiwgInZ1IiwgInNzIiwgImlzIiwgIm9zIiwgIlR1IiwgIk91IiwgIndlIiwgIkwiLCAiUnIiLCAiTXUiLCAiRnUiLCAiQmUiLCAiV3UiLCAiVnUiLCAiR3UiLCAiSHUiLCAianUiLCAiWHUiLCAiZWwiLCAicmwiLCAic2wiLCAib2wiLCAidWwiLCAiZ2wiLCAieGwiLCAia2wiLCAiZ3MiLCAidnMiLCAiTmwiLCAiUGwiLCAiU3MiLCAiamwiLCAiZW4iLCAiUnMiLCAic2MiLCAiaWMiLCAicm4iLCAibGMiLCAiRnMiLCAiV3MiLCAiVGMiLCAicmkiLCAiU2MiLCAibmkiLCAiQ2MiLCAic2kiLCAicWMiLCAiRGMiLCAiTGMiLCAiSGMiLCAiRmkiLCAiUmwiLCAiVHMiLCAiRmciLCAiV2wiLCAicGUiLCAiZ2MiLCAidmMiLCAiSHMiLCAieGMiLCAid2MiLCAicGMiLCAiaGMiLCAiR3MiLCAiZGMiLCAienMiLCAibWMiLCAiVnMiLCAieWMiLCAiS3MiLCAiWXMiLCAiZ24iLCAid24iLCAiRSIsICIkaSIsICJWaSIsICJXaSIsICJ6aSIsICJzdCIsICJHaSIsICJZaSIsICJRYyIsICJpdCIsICJLaSIsICJqYyIsICJ4biIsICJIaSIsICJHdCIsICJKYyIsICJYYyIsICJaYyIsICJlZiIsICJibiIsICJhdCIsICJRaSIsICJ0ZiIsICJsdCIsICJqaSIsICJyZiIsICJmdCIsICJpbyIsICJKaSIsICJYaSIsICJaaSIsICJlbyIsICJuZiIsICJ0byIsICJrbiIsICJfbiIsICJybyIsICJubyIsICJzbyIsICJ6IiwgImxvIiwgIlRuIiwgIm9vIiwgIkt0IiwgImFvIiwgIkh0IiwgInB0IiwgIlF0IiwgImp0IiwgIkp0IiwgIm9mIiwgImFmIiwgInVmIiwgIlh0IiwgIlp0IiwgInVvIiwgImZvIiwgImNvIiwgIk5lIiwgInlvIiwgInBvIiwgImhvIiwgIm1vIiwgImllIiwgImdvIiwgImh0IiwgInZvIiwgIndvIiwgIlJlIiwgImtvIiwgIndmIiwgInhmIiwgInhvIiwgImJvIiwgIlNuIiwgIlRvIiwgIlNvIiwgIk5vIiwgIkNmIiwgIkNvIiwgInNyIiwgIk5uIiwgIlBuIiwgIk9uIiwgIk9vIiwgIkFuIiwgIkFvIiwgIkllIiwgIlBvIiwgImlyIiwgIlJuIiwgIklvIiwgIkRvIiwgIk1vIiwgIlVvIiwgIkZvIiwgIiRvIiwgIlZvIiwgInpvIiwgIkdvIiwgIkluIiwgIlFvIiwgIlhvIiwgImpvIiwgIkpvIiwgInllIiwgImVhIiwgIlpvIiwgInRhIiwgIm10IiwgInJhIiwgInl0IiwgIm9hIiwgIksiLCAiZXAiLCAidHAiLCAicnAiLCAibnAiLCAic3AiLCAibmEiLCAiaXAiLCAib3AiLCAiYXAiLCAidXAiLCAibHAiLCAiRGUiLCAiZ3QiLCAiaWEiLCAic2EiLCAiTW4iLCAiQm4iLCAib2UiLCAiYWEiLCAiY3AiLCAiZnAiLCAicHAiLCAiaHAiLCAid3QiLCAibGEiLCAiZHAiLCAibXAiLCAieXAiLCAiZ3AiLCAiZ2UiLCAiZmEiLCAid3AiLCAidnAiLCAieHAiLCAiYnAiLCAia3AiLCAiX3AiLCAiVHAiLCAidnQiLCAidmEiLCAiRXAiLCAiaGEiLCAiU3AiLCAiQ3AiLCAiJG4iLCAiT3AiLCAiQXAiLCAiZGEiLCAiTnAiLCAibWEiLCAieWEiLCAiUHAiLCAiUnAiLCAiSXAiLCAicXAiLCAiZ2EiLCAid2EiLCAiRHAiLCAiayIsICJ4YSIsICJMcCIsICJVbiIsICJTYSIsICJXbiIsICJ6biIsICJ4dCIsICJsciIsICJWbiIsICJjciIsICJZbiIsICJHbiIsICJLbiIsICJNcCIsICJCcCIsICJrYSIsICJfYSIsICJmciIsICJUYSIsICJGcCIsICIkcCIsICJVcCIsICJXcCIsICJ6cCIsICJIbiIsICJwciIsICJociIsICJWcCIsICJFYSIsICJkciIsICJPYSIsICJZcCIsICJHcCIsICJLcCIsICJIcCIsICJRbiIsICJOYSIsICJRcCIsICJqcCIsICJEYSIsICJqbiIsICJMYSIsICJMZSIsICJ3YiIsICJNYSIsICJ4YiIsICJGYSIsICJiYiIsICJXYSIsICJVYSIsICJtciIsICJrYiIsICJWYSIsICJ5ciIsICJHYSIsICJnciIsICJIYSIsICJ3ciIsICJFYiIsICJKYSIsICJqYSIsICJ2ciIsICJTYiIsICJaYSIsICJ4ciIsICJDYiIsICJ0dSIsICJiciIsICJPYiIsICJudSIsICJrciIsICJBYiIsICJpdSIsICJ5aCIsICJfciIsICJhdSIsICJUciIsICJsdSIsICJFciIsICJmdSIsICJKbiIsICJ3dSIsICJodSIsICJkdSIsICJTciIsICJYbiIsICJDciIsICJabiIsICJidCIsICJlcyIsICJ0cyIsICJycyIsICJucyIsICJtdSIsICJ5dSIsICJPciIsICJNZSIsICJndSIsICJDcyIsICJ4dSIsICJEYiIsICJidSIsICJrdSIsICJNYiIsICJfdSIsICJhcyIsICJDdSIsICJWaCIsICJIaCIsICJFdSIsICJTdSIsICJOciIsICJxdSIsICJJdSIsICJGIiwgIlByIiwgIkR1IiwgIkoiLCAiSXIiLCAiTHUiLCAicXIiLCAiQnUiLCAiRHIiLCAiJHUiLCAiTHIiLCAiVXUiLCAiTXIiLCAienUiLCAiQnIiLCAiWXUiLCAiRnIiLCAiS3UiLCAieG0iLCAiX20iLCAiJHIiLCAiUXUiLCAiUm0iLCAiVXIiLCAiSnUiLCAicW0iLCAiRG0iLCAiQm0iLCAiRm0iLCAiJG0iLCAiV3IiLCAiWnUiLCAiem0iLCAiWW0iLCAiS20iLCAienIiLCAidGwiLCAiWm0iLCAiVnIiLCAibmwiLCAiWXIiLCAiaWwiLCAiR3IiLCAiYWwiLCAiUXIiLCAieWwiLCAibGwiLCAidXMiLCAiY2wiLCAia3QiLCAibHMiLCAiY3MiLCAiZnMiLCAicHMiLCAiZmwiLCAicGwiLCAiaGwiLCAiZGwiLCAibWwiLCAiS3IiLCAiSHIiLCAianIiLCAidmwiLCAiSSIsICJocyIsICJkcyIsICJ3bCIsICJoZyIsICJKciIsICJibCIsICJtZyIsICJ5ZyIsICJnZyIsICJ3ZyIsICJ2ZyIsICJ5cyIsICJ3cyIsICJTbCIsICJFZyIsICJfdCIsICJUdCIsICJBbCIsICJicyIsICJDbCIsICJPbCIsICJDZyIsICJ4cyIsICJrcyIsICJlIiwgInQiLCAiciIsICJfIiwgIkZuIiwgInJhIiwgImd1IiwgInZ1IiwgImJ1IiwgInAiLCAiZCIsICJoIiwgIlk5IiwgInQ1IiwgIkE1IiwgInV0IiwgIkR0IiwgIkg2IiwgIlA3IiwgIkc2IiwgIk03IiwgIlI3IiwgIlU3IiwgIno3IiwgIlo2IiwgIlA1IiwgIlZ0IiwgIk41IiwgIk81IiwgIkthIiwgInlyIiwgIk01IiwgIkw1IiwgIko1IiwgIk4iLCAiUjUiLCAic28iLCAiWXIiLCAiX2wiLCAiajUiLCAiZXMiLCAiX28iLCAiQjUiLCAiJHIiLCAiVTUiLCAicTUiLCAiQWEiLCAiejUiLCAiVzUiLCAienQiLCAiUnIiLCAiQm8iLCAieHQiLCAiJGUiLCAiVjUiLCAiSDUiLCAiWmEiLCAiRzUiLCAiWDUiLCAiJDUiLCAiUTUiLCAiWTUiLCAiSzUiLCAidiIsICJaNSIsICJtdCIsICJPbCIsICJ5bCIsICJNbCIsICJidCIsICJDaSIsICJrciIsICJ3aSIsICJrYSIsICJRciIsICJKbiIsICJyciIsICJPbiIsICJnaSIsICJSbiIsICJObiIsICJMbCIsICJ5IiwgIkMiLCAiayIsICJMIiwgIkciLCAiUyIsICJ0cyIsICJlbyIsICJGciIsICJWaSIsICJnbCIsICJEciIsICJxIiwgIm9lIiwgInoiLCAiZ2UiLCAiU2UiLCAibnQiLCAiWHQiLCAiSyIsICJ1ZSIsICJZIiwgIkIiLCAiYWUiLCAiQ2UiLCAiWmUiLCAib3IiLCAicWUiLCAicnQiLCAiaXQiLCAiSXIiLCAiYXIiLCAiY2kiLCAiTnIiLCAiVm8iLCAiVHIiLCAiR2UiLCAiVXIiLCAiWCIsICJlZSIsICJHdCIsICJUbiIsICJTbiIsICJsZCIsICJzciIsICIkdCIsICJTdCIsICJ1ZCIsICJ4biIsICJhZCIsICJ2dCIsICJvZCIsICJjdCIsICJVdCIsICJmciIsICJibCIsICJodCIsICJ3biIsICJUdCIsICJPciIsICJwdCIsICJNciIsICJhdCIsICJBZSIsICJlciIsICJRdCIsICJ0biIsICJCbiIsICJVbiIsICJ3dCIsICJ3YSIsICJFZSIsICJPdCIsICJqciIsICJtbiIsICJsbyIsICJObyIsICJNYSIsICJRbyIsICJ0dSIsICJ0OCIsICJydSIsICJUbCIsICJ0aSIsICJUYSIsICJGbCIsICJyaSIsICJYbyIsICJybiIsICJubiIsICJEaSIsICJxbiIsICJ4IiwgInhlIiwgImtlIiwgIkxlIiwgImlhIiwgIm9hIiwgIkVuIiwgImx0IiwgIklpIiwgInl0IiwgImFhIiwgIlZuIiwgIk10IiwgImp0IiwgInFyIiwgIm5hIiwgIkNuIiwgInpuIiwgImYiLCAiJCIsICJQaSIsICJRIiwgIk8iLCAiV24iLCAiaiIsICJTciIsICJKZSIsICJmZSIsICJiZSIsICJoZSIsICJ3ZSIsICJldCIsICJZZSIsICJSZSIsICJUIiwgIkxyIiwgIlNhIiwgInhhIiwgImlkIiwgImUwIiwgInQwIiwgIm4wIiwgImkwIiwgImEwIiwgIm8wIiwgInMwIiwgImMwIiwgImwwIiwgInUwIiwgImYwIiwgIkpsIiwgIm1nIiwgInJzIiwgIkxhIiwgImVpIiwgImZuIiwgInZnIiwgIm0wIiwgIkVpIiwgIiRpIiwgInFvIiwgIkFpIiwgImhyIiwgIlVvIiwgInpvIiwgInQ0IiwgIkRhIiwgImQwIiwgInBuIiwgIlBhIiwgInZsIiwgInhpIiwgImhnIiwgInlnIiwgImdnIiwgImJnIiwgIlUiLCAia3QiLCAiZDQiLCAibnIiLCAiYjQiLCAiUmwiLCAibXIiLCAiSWEiLCAidG8iLCAiSW8iLCAiRW8iLCAiTnQiLCAiT2EiLCAia28iLCAiJHMiLCAieGciLCAid2ciLCAibGwiLCAiV28iLCAiXzQiLCAidW4iLCAiUWEiLCAiQ2ciLCAiY24iLCAiWW4iLCAibnMiLCAieTQiLCAidjQiLCAiY2wiLCAiRjIiLCAiUWwiLCAiS3QiLCAiUzQiLCAiWUUiLCAieDQiLCAiRWciLCAiSGkiLCAiUXMiLCAiQzQiLCAiR2kiLCAiZG4iLCAiRTQiLCAiZ3IiLCAiQTQiLCAiRDQiLCAibnUiLCAiZmwiLCAiamwiLCAiS3IiLCAiTW4iLCAiUDQiLCAiU2kiLCAiSTQiLCAiSG8iLCAiQmwiLCAiTjQiLCAiYXMiLCAiTzQiLCAiSmEiLCAiZjIiLCAiSWwiLCAiTTQiLCAiX3MiLCAiQ3QiLCAiJG8iLCAia2kiLCAiRWwiLCAiTGciLCAiTDQiLCAiSjQiLCAiUjQiLCAiS28iLCAiajQiLCAiRjQiLCAiWnQiLCAiQjQiLCAiVTQiLCAiUTQiLCAicTQiLCAiTjYiLCAiejQiLCAiTzYiLCAiVzQiLCAiTTYiLCAiVjQiLCAiSDQiLCAiSjYiLCAiRzQiLCAiWDQiLCAiUjYiLCAia2ciLCAiajYiLCAibHUiLCAiJDQiLCAiY3MiLCAiVWwiLCAidmkiLCAiY3UiLCAiTDYiLCAiZzIiLCAiSGwiLCAiV3QiLCAicm8iLCAiWTQiLCAiQnIiLCAiSzQiLCAiUmEiLCAiRGciLCAiam8iLCAiWjQiLCAibHMiLCAidDMiLCAicWwiLCAidmEiLCAiU2wiLCAiRkEiLCAiTWciLCAib28iLCAiYmkiLCAiSjIiLCAiemwiLCAiZXUiLCAiXzMiLCAiaWkiLCAiYXUiLCAibm8iLCAiRmciLCAiQmciLCAicDMiLCAiZDMiLCAiTmEiLCAiTG8iLCAiaDMiLCAieTMiLCAiYjMiLCAidjMiLCAic3MiLCAiX20iLCAidjYiLCAiVWciLCAicWciLCAiVDMiLCAiJDMiLCAiUzMiLCAieDMiLCAidzMiLCAiQzMiLCAidWwiLCAiV2ciLCAiUDYiLCAiWmMiLCAiZWwiLCAiV2kiLCAiRTMiLCAidjAiLCAiS24iLCAiQTMiLCAiVDAiLCAiazMiLCAiJDIiLCAiajAiLCAiVmsiLCAiWnMiLCAidGwiLCAiRDMiLCAieGwiLCAiQnQiLCAiQjMiLCAiUDMiLCAiSTMiLCAiemkiLCAid2wiLCAiWmwiLCAiR3MiLCAiX3UiLCAieDYiLCAiTjMiLCAiTzMiLCAiTTMiLCAiRWEiLCAiWTIiLCAiSzIiLCAiTDMiLCAiR28iLCAiSjMiLCAiUjMiLCAiWWkiLCAiajMiLCAiRjMiLCAiWm8iLCAibmkiLCAiVzIiLCAiQjIiLCAiVTMiLCAicTMiLCAiJGciLCAidDIiLCAiUzAiLCAiejMiLCAiUWkiLCAiWWwiLCAiVzMiLCAiajIiLCAiWXMiLCAiZTIiLCAiVjMiLCAiSDMiLCAidzAiLCAib3MiLCAiRzMiLCAicjIiLCAiTmwiLCAiTTAiLCAibjIiLCAiWDMiLCAidW8iLCAiaTIiLCAiTzAiLCAiaXUiLCAiUTMiLCAiWTMiLCAiRTAiLCAiWW8iLCAiY28iLCAiSzMiLCAiczIiLCAiUDIiLCAiWGwiLCAiWjMiLCAiXzIiLCAiUjIiLCAiYzIiLCAiV2wiLCAiJGwiLCAicDIiLCAiR2wiLCAiaW8iLCAibDIiLCAidTIiLCAiVmwiLCAiUzIiLCAiZDIiLCAib3UiLCAibTIiLCAiQ2wiLCAiaXMiLCAiaDIiLCAieTIiLCAiYW8iLCAiYjIiLCAic3UiLCAidjIiLCAiVDIiLCAiRG0iLCAiS2wiLCAiS3MiLCAieDIiLCAicGwiLCAidzIiLCAiUG8iLCAiSm8iLCAiQzIiLCAiRTIiLCAiQWwiLCAiazIiLCAiQTIiLCAiSTAiLCAiQ2EiLCAiRDIiLCAiTjAiLCAiSTIiLCAiTTIiLCAiTjIiLCAiTzIiLCAiTDIiLCAibG4iLCAiTDAiLCAiSjAiLCAicWkiLCAiRG8iLCAiWjIiLCAia2wiLCAiQW8iLCAiJGEiLCAiUjAiLCAiZGwiLCAibWwiLCAiejIiLCAiVTIiLCAicTIiLCAiVjIiLCAiQ00iLCAiQU0iLCAiRU0iLCAiRGwiLCAiUm8iLCAiSDIiLCAiRzIiLCAidDYiLCAiUE0iLCAiSU0iLCAiTk0iLCAiT00iLCAicmwiLCAiWDIiLCAiUk0iLCAibmwiLCAiUTIiLCAiWWEiLCAiWGkiLCAiTG4iLCAieG0iLCAiRjAiLCAiQjAiLCAiVTAiLCAicTAiLCAiVjAiLCAibyIsICJzIiwgIm5jIiwgInFhIiwgIlRzIiwgIkIxIiwgIk5jIiwgIlUxIiwgIkljIiwgIkVwIiwgImpwIiwgImVoIiwgIkZwIiwgImciLCAiS2UiLCAiSXQiLCAicXQiLCAiX3IiLCAiVGUiLCAiZnQiLCAiQW4iLCAiRXQiLCAiSCIsICJGYSIsICJJZSIsICJhbiIsICJCYSIsICJrbiIsICJqZSIsICJkdCIsICJsaSIsICJIbiIsICJlMSIsICJ1aSIsICJmcyIsICJ4ciIsICJGdCIsICJNIiwgIkpyIiwgInNhIiwgIk5pIiwgIkx0IiwgIll0IiwgIk9pIiwgInIxIiwgImRyIiwgInQxIiwgIlR1IiwgIlVhIiwgIlN1IiwgIl9hIiwgInh1IiwgInd1IiwgImRzIiwgIm4xIiwgIk1pIiwgImhzIiwgInlzIiwgIkV1IiwgIkF1IiwgImt1IiwgImZvIiwgImkxIiwgInpyIiwgImdzIiwgImJzIiwgIkR1IiwgIlB1IiwgImExIiwgIkl1IiwgIk51IiwgIk91IiwgIk11IiwgImVjIiwgInRjIiwgIkx1IiwgIldyIiwgInZzIiwgInBpIiwgInJjIiwgImNhIiwgImxhIiwgIm8xIiwgInMxIiwgIl8xIiwgIlJ1IiwgImp1IiwgImZpIiwgImljIiwgImMxIiwgIm9jIiwgImwxIiwgIkJ1IiwgInUxIiwgIkxpIiwgIlV1IiwgInAxIiwgInF1IiwgImYxIiwgInhzIiwgInNjIiwgImQxIiwgIlZyIiwgIl9jIiwgInp1IiwgIld1IiwgImNjIiwgIlZ1IiwgImxjIiwgIkRuIiwgIkh1IiwgIndzIiwgIkduIiwgIkNzIiwgInVjIiwgIkd1IiwgIm0xIiwgInVhIiwgImgxIiwgIlh1IiwgInBjIiwgImZjIiwgIkVzIiwgIiR1IiwgIlF1IiwgIll1IiwgIkt1IiwgInkxIiwgIlp1IiwgImVwIiwgImRjIiwgImcxIiwgInRwIiwgImIxIiwgInJwIiwgInYxIiwgIm1jIiwgIm5wIiwgImhjIiwgIlQxIiwgImlwIiwgImFwIiwgInljIiwgIm9wIiwgInBhIiwgIlMxIiwgInNwIiwgIl9wIiwgImNwIiwgIngxIiwgImxwIiwgInVwIiwgInBwIiwgIkFzIiwgIncxIiwgImdjIiwgIkMxIiwgImJjIiwgImZwIiwgInZjIiwgIlRjIiwgImRwIiwgImd0IiwgIkppIiwgIlNjIiwgIlJpIiwgIm1wIiwgIkp0IiwgImppIiwgInRyIiwgIkExIiwgImhwIiwgImsxIiwgInhjIiwgIkQxIiwgInlwIiwgImdwIiwgImJwIiwgInZwIiwgIndjIiwgIlRwIiwgIlNwIiwgImtzIiwgIkNjIiwgInhwIiwgIkVjIiwgIkkxIiwgIkRzIiwgIk4xIiwgIkFjIiwgIk8xIiwgIndwIiwgIk0xIiwgIkNwIiwgIkwxIiwgIlBzIiwgIkZpIiwgImtjIiwgIkRjIiwgIk5zIiwgIkoxIiwgImZhIiwgIlIxIiwgImoxIiwgIlBjIiwgIkYxIiwgIkFwIiwgInExIiwgImtwIiwgInoxIiwgIkRwIiwgIlcxIiwgIlBwIiwgIlYxIiwgImhvIiwgIk9zIiwgIk1zIiwgIklwIiwgIk9jIiwgIk1jIiwgIk5wIiwgIk9wIiwgIk1wIiwgIkgxIiwgIkxjIiwgIkcxIiwgIkpjIiwgIlgxIiwgIkxzIiwgIloxIiwgIlJjIiwgInlvIiwgIkxwIiwgIldhIiwgImdvIiwgIiQxIiwgIkpwIiwgIlExIiwgIlJwIiwgIlkxIiwgImpjIiwgIksxIiwgIlVwIiwgIkJwIiwgInFwIiwgIkpzIiwgIkZjIiwgInpwIiwgIldwIiwgIlJzIiwgIkJjIiwgIlZwIiwgImpzIiwgIkZzIiwgIkdwIiwgIlVjIiwgIndyIiwgIkhwIiwgInFjIiwgIlhwIiwgIiRwIiwgIlFwIiwgIllwIiwgImJvIiwgIktwIiwgIlpwIiwgInpjIiwgIlZhIiwgIkJzIiwgImVmIiwgInRmIiwgInZvIiwgIlVzIiwgIldjIiwgInJmIiwgImRhIiwgImFmIiwgIlZjIiwgIkdjIiwgInFzIiwgInVmIiwgInpzIiwgIiRjIiwgIlFjIiwgIm1hIiwgImhhIiwgIkhhIiwgIldzIiwgIkEiLCAiUiIsICJ0ZSIsICJuZSIsICJpZSIsICJ2ZSIsICJIZSIsICJCZSIsICJVZSIsICJtIiwgImIiLCAiZGkiLCAiUnQiLCAibWkiLCAiaGkiLCAiVWkiLCAiZ2EiLCAiaWwiLCAiSSIsICJYZSIsICJWIiwgIk9lIiwgIlciLCAiVG8iLCAiRGUiLCAiSW4iLCAiUGwiLCAiZGUiLCAiV2UiLCAiRXIiLCAiJG4iLCAieWkiLCAib3QiLCAiY3IiLCAibXMiLCAiQ3UiLCAiQ3IiLCAicG8iLCAibHIiLCAiSnUiLCAiVTYiLCAiU3MiLCAiemEiLCAiRnUiLCAiYWMiLCAib24iLCAiRTEiLCAiUDEiLCAiSXMiLCAiSHIiLCAiQmkiLCAibW8iLCAibmYiLCAib2YiLCAiWG4iLCAiSGMiLCAiWHIiLCAieWgiLCAiWGMiLCAiVmUiLCAieWEiLCAiYyIsICJSbSIsICJ3IiwgImxlIiwgIkdyIiwgIlA4IiwgImJhIiwgIlZzIiwgIl9uIiwgIlljIiwgIlgwIiwgIlhzIiwgImFsIiwgIk9vIiwgInY4IiwgIkI2IiwgIk1vIiwgIlI4IiwgIlU4IiwgIm9sIiwgIlAiLCAiX2UiLCAicnYiLCAid28iLCAiQ28iLCAiWGEiLCAiSDgiLCAiWm4iLCAicTYiLCAiRzgiLCAiWDgiLCAiWTgiLCAiVGkiLCAiRiIsICJyZSIsICJaIiwgInNlIiwgInplIiwgInhvIiwgIkF0IiwgIlBuIiwgInNuIiwgIkFyIiwgImNlIiwgIk1lIiwgIkdhIiwgIm81IiwgInM1IiwgIlNvIiwgInA1IiwgImQ1IiwgIm01IiwgIl81IiwgIlFuIiwgIkhzIiwgIlQ1IiwgImM1IiwgInk1IiwgImY1IiwgImg1IiwgImc1IiwgImI1IiwgInY1IiwgIlo4IiwgIkZvIiwgInQ3IiwgIlc2IiwgImhsIiwgIktjIiwgInNsIiwgIno2IiwgImJCIiwgImFpIiwgIkZtIiwgIktpIiwgIkpCIiwgImpCIiwgImpuIiwgIkZCIiwgIlg2IiwgImo3IiwgIkI3IiwgInE3IiwgImhuIiwgIiQ2IiwgIm1lIiwgInFCIiwgIlFlIiwgInV1IiwgImlyIiwgIlZCIiwgInllIiwgIkhCIiwgIkdCIiwgIlhCIiwgIkg3IiwgIkc3IiwgIlFCIiwgIlg3IiwgIllCIiwgIiQ3IiwgIlk3IiwgIlE2IiwgIlo3IiwgInFtIiwgIlk2IiwgInluIiwgIk5lIiwgIlBlIiwgImJyIiwgIm9pIiwgInN0IiwgIl90IiwgIlppIiwgInBlIiwgIkoiLCAiRSIsICJLNiIsICJQciIsICJpVyIsICJqYSIsICJodSIsICJuVyIsICJtdSIsICJ5dSIsICJ0dCIsICJkdSIsICJaciIsICJwciIsICJGZSIsICJEIiwgImZ1IiwgInZyIiwgInB1IiwgIlB0IiwgImVuIiwgInVzIiwgImVXIiwgInVyIiwgImduIiwgInRXIiwgInJXIiwgImVhIiwgInVXIiwgIm45IiwgInQ5IiwgInNpIiwgInhXIiwgImJuIiwgIkh0IiwgInZuIiwgInRhIiwgIiRtIiwgIl9pIiwgIlltIiwgInBzIiwgImJpIiwgIk5pIiwgImVyIiwgIkphIiwgIklpIiwgInQiLCAiamUiLCAiUWUiLCAiZSIsICJFdCIsICJfaSIsICJldCIsICJyIiwgIlBpIiwgInMiLCAidHQiLCAiaGUiLCAiT2UiLCAia2UiLCAiU3QiLCAiTGUiLCAib24iLCAiaXIiLCAib3IiLCAiYW4iLCAid3QiLCAiQWUiLCAibnQiLCAiVGUiLCAiYXIiLCAiQ2UiLCAidiIsICJZaSIsICJvIiwgIkdlIiwgIlhlIiwgIlplIiwgIkplIiwgIkhlIiwgInplIiwgInRlIiwgIk1lIiwgInNuIiwgImNyIiwgInJ0IiwgIkJpIiwgIk90IiwgIiRpIiwgImxuIiwgImNuIiwgInVyIiwgInByIiwgIm1yIiwgInZlIiwgImhyIiwgImdyIiwgIk4iLCAiRmkiLCAiRyIsICJ1biIsICJQZSIsICJFciIsICJMdCIsICJBdCIsICJJZSIsICJ4IiwgInlyIiwgIlNyIiwgIlIiLCAiWiIsICJfZSIsICJxaSIsICJpZSIsICJwbiIsICJIIiwgIndyIiwgImJyIiwgIk5yIiwgImMiLCAiZiIsICJzdCIsICJvdCIsICJpdCIsICJtbiIsICJLaSIsICJqaSIsICJRaSIsICJUdCIsICJobiIsICJnbiIsICJOdCIsICJJIiwgIkN0IiwgIm5lIiwgIkppIiwgIkdpIiwgIkMiLCAiSGkiLCAiZG4iLCAibSIsICJYaSIsICJkIiwgInkiLCAiaCIsICJnIiwgInciLCAiemkiLCAiWmkiLCAiZW8iLCAiYnQiLCAibHIiLCAia3IiLCAibm8iLCAidG8iLCAiYXQiLCAieXQiLCAiTXIiLCAiQ3IiLCAiZnIiLCAicm8iLCAiQiIsICJnZSIsICJfciIsICJpbyIsICJvbyIsICJ4ciIsICJSciIsICJhbyIsICJiIiwgIkRyIiwgImN0IiwgIlgiLCAib2UiLCAiJCIsICJZciIsICJCciIsICIkciIsICJGciIsICJxciIsICJ4ZSIsICJVciIsICJLciIsICJrdCIsICJhZSIsICJ2dCIsICJ5biIsICJWciIsICJXciIsICJqciIsICJRciIsICJKciIsICJSZSIsICJHciIsICJIciIsICJLIiwgIkVuIiwgIkYiLCAiWHIiLCAicSIsICJJdCIsICJ6ciIsICJjbyIsICJsbyIsICJaciIsICJlcyIsICJmbyIsICJ1byIsICJ0cyIsICJQdCIsICJucyIsICJfdCIsICJjZSIsICJ4dCIsICJSdCIsICJEdCIsICJTbiIsICJ3biIsICJEZSIsICJycyIsICJzcyIsICJpcyIsICJvcyIsICJhcyIsICJjcyIsICJscyIsICJwbyIsICJmcyIsICJ1cyIsICJwcyIsICJtcyIsICJocyIsICJZdCIsICJncyIsICJkcyIsICJ5cyIsICJFcyIsICJTcyIsICJ3cyIsICJicyIsICJOcyIsICJPcyIsICJMcyIsICJBcyIsICJUcyIsICJDcyIsICJtbyIsICJobyIsICJibiIsICJObiIsICJPbiIsICJMbiIsICJnbyIsICJ5byIsICJ3byIsICJFbyIsICJTbyIsICJibyIsICJTaSIsICJFaSIsICJ5aSIsICJQciIsICJabiIsICJWYSIsICJXYSIsICJ3aSIsICJMaSIsICJubiIsICJBaSIsICJUaSIsICJDaSIsICJNaSIsICJlZSIsICJuciIsICJraSIsICJyciIsICJsZSIsICJJcyIsICIkZSIsICJqbiIsICJIbiIsICJsaSIsICJwaSIsICJoaSIsICJnaSIsICJ0ciIsICJ2aSIsICJybiIsICJzciIsICJ4aSIsICJSaSIsICJEaSIsICJPYyIsICJMYyIsICJBYyIsICJmbiIsICJkciIsICJVaSIsICJPciIsICJWaSIsICJMciIsICJXaSIsICJBciIsICJUciIsICJzbyIsICJ2ciIsICJNdCIsICJJciIsICJkaSIsICJKIiwgIkJtIiwgInFhIiwgIlVhIiwgImphIiwgInRuIiwgIlFhIiwgIlUiLCAicmUiLCAibHQiLCAiTm8iLCAiT28iLCAiTXMiLCAia3MiLCAiQW4iLCAiTG8iLCAiQW8iLCAiWWUiLCAic2UiLCAiZGUiLCAiVG4iLCAiZnQiLCAiQ24iLCAiTW4iLCAiVG8iLCAia24iLCAidnMiLCAiRWUiLCAidXQiLCAieWUiLCAidm4iLCAiQnQiLCAiSW4iLCAiUG4iLCAiX24iLCAiZmUiLCAieG4iLCAiUm4iLCAiRG4iLCAiWW4iLCAiQ28iLCAiQm4iLCAiTW8iLCAiayIsICJwIiwgImtvIiwgIkJlIiwgIlYiLCAidWUiLCAiUCIsICJQcyIsICJScyIsICJXIiwgIkwiLCAiTSIsICJBIiwgIk9pIiwgIl8iLCAiJHQiLCAicGUiLCAidm8iLCAiVCIsICJGdCIsICJ3ZSIsICJwdCIsICJtdCIsICJEcyIsICJLdCIsICJJbyIsICJQbyIsICJfbyIsICJ4byIsICJiZSIsICJGbiIsICJZcyIsICIkbiIsICJxdCIsICJfcyIsICJWdCIsICJxbiIsICJXdCIsICJSbyIsICJTZSIsICJCcyIsICJVdCIsICJEbyIsICJZbyIsICJCbyIsICIkcyIsICJGcyIsICJxcyIsICJVcyIsICJVbiIsICIkbyIsICJGbyIsICJ4cyIsICJxbyIsICJVbyIsICJLbyIsICJWbyIsICJXbyIsICJtZSIsICJqbyIsICJIbyIsICJHbyIsICJRbyIsICJKbyIsICJYbyIsICJabyIsICJ6byIsICJ6IiwgImoiLCAiTyIsICJlYSIsICJWcyIsICJXcyIsICJ0YSIsICJGZSIsICJuYSIsICJyYSIsICJzYSIsICJxZSIsICJpYSIsICJvYSIsICJhYSIsICJLbiIsICJqcyIsICJjYSIsICJsYSIsICJmYSIsICJWbiIsICJXbiIsICJ1YSIsICJLcyIsICJwYSIsICJpaSIsICJKdCIsICJFIiwgIkQiLCAibWEiLCAiZ3QiLCAiaGEiLCAiR3QiLCAiZ2EiLCAiSm4iLCAiSHQiLCAiR24iLCAiR3MiLCAiSHMiLCAiWHMiLCAienMiLCAiWnMiLCAiZWkiLCAidGkiLCAibmkiLCAicmkiLCAiZGEiLCAiUXMiLCAianQiLCAic2kiLCAiSnMiLCAiaHQiLCAiUXQiLCAiUW4iLCAieWEiLCAiRWEiLCAiU2EiLCAid2EiLCAiYmEiLCAiTmEiLCAiT2EiLCAiZHQiLCAiZW4iLCAiWSIsICJTIiwgIm9pIiwgIkxhIiwgIkFhIiwgImNpIiwgImFpIiwgIlRhIiwgIkNhIiwgIlh0IiwgIlhuIiwgInp0IiwgIk1hIiwgImthIiwgInZhIiwgIklhIiwgIlBhIiwgIlVlIiwgIlp0IiwgInVpIiwgInpuIiwgIk5lIiwgIl9hIiwgInhhIiwgIlJhIiwgIkRhIiwgIktlIiwgIllhIiwgImZpIiwgIkJhIiwgIiRhIiwgIkZhIiwgIm1pIiwgIlEiLCAiVmUiLCAiV2UiLCAiZnMiLCAiZXhjZXB0aW9uIiwgInRvU3RyaW5nIiwgIm9wdGlvbnMiLCAicmUiLCAibGluZSIsICJtYXAiLCAic2NoZW1hIiwgInR5cGUiLCAiZXh0ZW5kIiwgImMiLCAibGMiLCAic3RyIiwgImluZGVudCIsICJzdHJpbmciLCAidG8iLCAiY29yZSIsICJjaGFyUmVnZXgiLCAiZW1vamlsaWIiLCAiYXNzZXJ0NCIsICJzdGFydEdyb3VwIiwgImxvZyIsICJmcyIsICJlcnJvciIsICJsb2ciLCAiZXJyb3IiLCAiaW5wdXRzIiwgImxvZyIsICJrIiwgImlucHV0cyIsICJsb2ciLCAiayIsICJmcyIsICJpbXBvcnRfbW9kdWxlIiwgImltcG9ydF91cmwiLCAiaW1wb3J0X3BhdGgiLCAiaW1wb3J0X2Fzc2VydCIsICJpbXBvcnRfZnMiLCAicmVxdWlyZSIsICJfX3ByZXR0aWVyQ3JlYXRlUmVxdWlyZSIsICJfX3ByZXR0aWVyRmlsZVVybFRvUGF0aCIsICJfX2Rpcm5hbWUiLCAiX19wcmV0dGllckRpcm5hbWUiLCAiX19jcmVhdGUiLCAiX19kZWZQcm9wIiwgIl9fZ2V0T3duUHJvcERlc2MiLCAiX19nZXRPd25Qcm9wTmFtZXMiLCAiX19nZXRQcm90b09mIiwgIl9faGFzT3duUHJvcCIsICJ4IiwgImIiLCAiX19jb21tb25KUyIsICJfX3JlcXVpcmUyIiwgIl9fY29weVByb3BzIiwgInRvIiwgIl9fdG9FU00iLCAiZm4iLCAicGF0aCIsICJtb2R1bGUiLCAiZnMyIiwgInYiLCAibGluZSIsICJzdHIiLCAiaCIsICJlIiwgImVyIiwgImluZGVudCIsICJyZXF1aXJlX2J1aWxkIiwgInNldCIsICJjcCIsICJyZXF1aXJlX2xpYiIsICJyZXF1aXJlX2NvbG9yX25hbWUiLCAicmVxdWlyZV9jb252ZXJzaW9ucyIsICJyIiwgImciLCAicyIsICJjIiwgInciLCAibSIsICJ5IiwgImsiLCAieiIsICJ0MSIsICJ0MiIsICJ0MyIsICJoaSIsICJmIiwgInAiLCAicSIsICJ0IiwgInNsIiwgImJsIiwgInkyIiwgIngyIiwgInoyIiwgImhyIiwgIm1nIiwgInJlcXVpcmVfcm91dGUiLCAicmVxdWlyZV9jb2xvcl9jb252ZXJ0IiwgInJlcXVpcmVfYW5zaV9zdHlsZXMiLCAid3JhcEFuc2kxNiIsICJ3cmFwQW5zaTI1NiIsICJ3cmFwQW5zaTE2bSIsICJhc3NlbWJsZVN0eWxlcyIsICJjb2RlcyIsICJzdHlsZXMiLCAiZ3JvdXAiLCAicmVxdWlyZV9oYXNfZmxhZyIsICJyZXF1aXJlX3N1cHBvcnRzX2NvbG9yIiwgIm9zIiwgImhhc0ZsYWciLCAiZW52IiwgInRyYW5zbGF0ZUxldmVsIiwgInN1cHBvcnRzQ29sb3IiLCAidmVyc2lvbiIsICJyZXF1aXJlX3RlbXBsYXRlcyIsICJ1bmVzY2FwZSIsICJjaGFsayIsICJlc2NhcGVTdHJpbmdSZWdleHAiLCAiYW5zaVN0eWxlcyIsICJzdGRvdXRDb2xvciIsICJsZXZlbE1hcHBpbmciLCAiYXBwbHlPcHRpb25zIiwgIm9wdGlvbnMiLCAicHJvdG8iLCAiYXBwbHlTdHlsZSIsICJzZWxmIiwgInJlcXVpcmVfbGliMiIsICJjaGFsazIiLCAidHlwZSIsICJyZXF1aXJlX2xpYjMiLCAiX2RlZmF1bHQiLCAiZXJyb3IiLCAicmVxdWlyZV9jb21tb24iLCAiaXNOb3RoaW5nIiwgImlzT2JqZWN0IiwgInRvQXJyYXkiLCAiZXh0ZW5kIiwgInJlcGVhdCIsICJpc05lZ2F0aXZlWmVybyIsICJmb3JtYXRFcnJvciIsICJleGNlcHRpb24iLCAidG9TdHJpbmciLCAiY29tbW9uIiwgImdldExpbmUiLCAicGFkU3RhcnQiLCAibWFrZVNuaXBwZXQiLCAicmUiLCAiVFlQRV9DT05TVFJVQ1RPUl9PUFRJT05TIiwgIllBTUxfTk9ERV9LSU5EUyIsICJjb21waWxlU3R5bGVBbGlhc2VzIiwgIm1hcCIsICJjb21waWxlTGlzdCIsICJzY2hlbWEiLCAiY29tcGlsZU1hcCIsICJTY2hlbWEiLCAicmVzb2x2ZVlhbWxOdWxsIiwgImNvbnN0cnVjdFlhbWxOdWxsIiwgImlzTnVsbCIsICJyZXNvbHZlWWFtbEJvb2xlYW4iLCAiY29uc3RydWN0WWFtbEJvb2xlYW4iLCAiaXNCb29sZWFuIiwgImlzSGV4Q29kZSIsICJpc09jdENvZGUiLCAiaXNEZWNDb2RlIiwgInJlc29sdmVZYW1sSW50ZWdlciIsICJjb25zdHJ1Y3RZYW1sSW50ZWdlciIsICJpc0ludGVnZXIiLCAiWUFNTF9GTE9BVF9QQVRURVJOIiwgInJlc29sdmVZYW1sRmxvYXQiLCAiY29uc3RydWN0WWFtbEZsb2F0IiwgIlNDSUVOVElGSUNfV0lUSE9VVF9ET1QiLCAicmVwcmVzZW50WWFtbEZsb2F0IiwgImlzRmxvYXQiLCAicmVxdWlyZV9jb3JlIiwgIllBTUxfREFURV9SRUdFWFAiLCAiWUFNTF9USU1FU1RBTVBfUkVHRVhQIiwgInJlc29sdmVZYW1sVGltZXN0YW1wIiwgImNvbnN0cnVjdFlhbWxUaW1lc3RhbXAiLCAicmVwcmVzZW50WWFtbFRpbWVzdGFtcCIsICJyZXNvbHZlWWFtbE1lcmdlIiwgIkJBU0U2NF9NQVAiLCAicmVzb2x2ZVlhbWxCaW5hcnkiLCAiY29uc3RydWN0WWFtbEJpbmFyeSIsICJyZXByZXNlbnRZYW1sQmluYXJ5IiwgImlzQmluYXJ5IiwgIl9oYXNPd25Qcm9wZXJ0eSIsICJfdG9TdHJpbmciLCAicmVzb2x2ZVlhbWxPbWFwIiwgImNvbnN0cnVjdFlhbWxPbWFwIiwgInJlc29sdmVZYW1sUGFpcnMiLCAiY29uc3RydWN0WWFtbFBhaXJzIiwgInJlc29sdmVZYW1sU2V0IiwgImNvbnN0cnVjdFlhbWxTZXQiLCAiQ09OVEVYVF9GTE9XX0lOIiwgIkNPTlRFWFRfRkxPV19PVVQiLCAiQ09OVEVYVF9CTE9DS19JTiIsICJDT05URVhUX0JMT0NLX09VVCIsICJDSE9NUElOR19DTElQIiwgIkNIT01QSU5HX1NUUklQIiwgIkNIT01QSU5HX0tFRVAiLCAiUEFUVEVSTl9OT05fUFJJTlRBQkxFIiwgIlBBVFRFUk5fTk9OX0FTQ0lJX0xJTkVfQlJFQUtTIiwgIlBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTIiwgIlBBVFRFUk5fVEFHX0hBTkRMRSIsICJQQVRURVJOX1RBR19VUkkiLCAiX2NsYXNzIiwgImlzX0VPTCIsICJpc19XSElURV9TUEFDRSIsICJpc19XU19PUl9FT0wiLCAiaXNfRkxPV19JTkRJQ0FUT1IiLCAiZnJvbUhleENvZGUiLCAibGMiLCAiZXNjYXBlZEhleExlbiIsICJmcm9tRGVjaW1hbENvZGUiLCAic2ltcGxlRXNjYXBlU2VxdWVuY2UiLCAiY2hhckZyb21Db2RlcG9pbnQiLCAic2ltcGxlRXNjYXBlQ2hlY2siLCAic2ltcGxlRXNjYXBlTWFwIiwgIlN0YXRlIiwgImdlbmVyYXRlRXJyb3IiLCAidGhyb3dFcnJvciIsICJ0aHJvd1dhcm5pbmciLCAiZGlyZWN0aXZlSGFuZGxlcnMiLCAiaGFuZGxlWWFtbERpcmVjdGl2ZSIsICJoYW5kbGVUYWdEaXJlY3RpdmUiLCAiY2FwdHVyZVNlZ21lbnQiLCAibWVyZ2VNYXBwaW5ncyIsICJzdG9yZU1hcHBpbmdQYWlyIiwgInJlYWRMaW5lQnJlYWsiLCAic2tpcFNlcGFyYXRpb25TcGFjZSIsICJ0ZXN0RG9jdW1lbnRTZXBhcmF0b3IiLCAid3JpdGVGb2xkZWRMaW5lcyIsICJyZWFkUGxhaW5TY2FsYXIiLCAicmVhZFNpbmdsZVF1b3RlZFNjYWxhciIsICJyZWFkRG91YmxlUXVvdGVkU2NhbGFyIiwgInJlYWRGbG93Q29sbGVjdGlvbiIsICJjb21wb3NlTm9kZSIsICJyZWFkQmxvY2tTY2FsYXIiLCAicmVhZEJsb2NrU2VxdWVuY2UiLCAicmVhZEJsb2NrTWFwcGluZyIsICJyZWFkVGFnUHJvcGVydHkiLCAicmVhZEFuY2hvclByb3BlcnR5IiwgInJlYWRBbGlhcyIsICJyZWFkRG9jdW1lbnQiLCAibG9hZERvY3VtZW50cyIsICJsb2FkQWxsIiwgImxvYWQiLCAiQ0hBUl9CT00iLCAiQ0hBUl9UQUIiLCAiQ0hBUl9MSU5FX0ZFRUQiLCAiQ0hBUl9DQVJSSUFHRV9SRVRVUk4iLCAiQ0hBUl9TUEFDRSIsICJDSEFSX0VYQ0xBTUFUSU9OIiwgIkNIQVJfRE9VQkxFX1FVT1RFIiwgIkNIQVJfU0hBUlAiLCAiQ0hBUl9QRVJDRU5UIiwgIkNIQVJfQU1QRVJTQU5EIiwgIkNIQVJfU0lOR0xFX1FVT1RFIiwgIkNIQVJfQVNURVJJU0siLCAiQ0hBUl9DT01NQSIsICJDSEFSX01JTlVTIiwgIkNIQVJfQ09MT04iLCAiQ0hBUl9FUVVBTFMiLCAiQ0hBUl9HUkVBVEVSX1RIQU4iLCAiQ0hBUl9RVUVTVElPTiIsICJDSEFSX0NPTU1FUkNJQUxfQVQiLCAiQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUIiwgIkNIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQiLCAiQ0hBUl9HUkFWRV9BQ0NFTlQiLCAiQ0hBUl9MRUZUX0NVUkxZX0JSQUNLRVQiLCAiQ0hBUl9WRVJUSUNBTF9MSU5FIiwgIkNIQVJfUklHSFRfQ1VSTFlfQlJBQ0tFVCIsICJFU0NBUEVfU0VRVUVOQ0VTIiwgIkRFUFJFQ0FURURfQk9PTEVBTlNfU1lOVEFYIiwgIkRFUFJFQ0FURURfQkFTRTYwX1NZTlRBWCIsICJjb21waWxlU3R5bGVNYXAiLCAiZW5jb2RlSGV4IiwgIlFVT1RJTkdfVFlQRV9TSU5HTEUiLCAiUVVPVElOR19UWVBFX0RPVUJMRSIsICJpbmRlbnRTdHJpbmciLCAiZ2VuZXJhdGVOZXh0TGluZSIsICJ0ZXN0SW1wbGljaXRSZXNvbHZpbmciLCAiaXNXaGl0ZXNwYWNlIiwgImlzUHJpbnRhYmxlIiwgImlzTnNDaGFyT3JXaGl0ZXNwYWNlIiwgImlzUGxhaW5TYWZlIiwgImlzUGxhaW5TYWZlRmlyc3QiLCAiaXNQbGFpblNhZmVMYXN0IiwgImNvZGVQb2ludEF0IiwgIm5lZWRJbmRlbnRJbmRpY2F0b3IiLCAiU1RZTEVfUExBSU4iLCAiU1RZTEVfU0lOR0xFIiwgIlNUWUxFX0xJVEVSQUwiLCAiU1RZTEVfRk9MREVEIiwgIlNUWUxFX0RPVUJMRSIsICJjaG9vc2VTY2FsYXJTdHlsZSIsICJ3cml0ZVNjYWxhciIsICJibG9ja0hlYWRlciIsICJkcm9wRW5kaW5nTmV3bGluZSIsICJmb2xkU3RyaW5nIiwgImVzY2FwZVN0cmluZyIsICJmb2xkTGluZSIsICJ3cml0ZUZsb3dTZXF1ZW5jZSIsICJ3cml0ZU5vZGUiLCAid3JpdGVCbG9ja1NlcXVlbmNlIiwgIndyaXRlRmxvd01hcHBpbmciLCAid3JpdGVCbG9ja01hcHBpbmciLCAiZGV0ZWN0VHlwZSIsICJnZXREdXBsaWNhdGVSZWZlcmVuY2VzIiwgImluc3BlY3ROb2RlIiwgImR1bXAiLCAibG9hZGVyIiwgImR1bXBlciIsICJyZW5hbWVkIiwgImxvYWRlcnMiLCAicmVhZEZpbGUiLCAicmVhZEZpbGVTeW5jIiwgInJlc29sdmUiLCAicmVxdWlyZV9kaXN0IiwgIm5vcm1hbGl6ZU9wdGlvbnMiLCAicGF0aDIiLCAiZnMiLCAiaW1wb3J0X21vZHVsZSIsICJpbXBvcnRfdXJsIiwgImltcG9ydF9hc3NlcnQiLCAiaW1wb3J0X2ZzIiwgImltcG9ydF9wcm9jZXNzIiwgImltcG9ydF9wYXRoIiwgImltcG9ydF9wcm9taXNlcyIsICJfX2RlZlByb3AiLCAiX19leHBvcnQiLCAidHlwZSIsICJ0eXBlMiIsICJpYyIsICJ4IiwgInkiLCAicHJvY2VzczIiLCAiZm4iLCAib3B0aW9ucyIsICJpbmRlbnQyIiwgImxpbmVTdWZmaXgyIiwgImltcG9ydF9tZXRhIiwgInJlcXVpcmUiLCAiX19wcmV0dGllckNyZWF0ZVJlcXVpcmUiLCAiX19maWxlbmFtZSIsICJfX3ByZXR0aWVyRmlsZVVybFRvUGF0aCIsICJfX2Rpcm5hbWUiLCAiX19wcmV0dGllckRpcm5hbWUiLCAiX19jcmVhdGUiLCAiX19kZWZQcm9wIiwgIl9fZ2V0T3duUHJvcERlc2MiLCAiX19nZXRPd25Qcm9wTmFtZXMiLCAiX19nZXRQcm90b09mIiwgIl9faGFzT3duUHJvcCIsICJfX3JlcXVpcmUiLCAieCIsICJiIiwgIl9fY29tbW9uSlMiLCAiX19yZXF1aXJlMiIsICJfX2V4cG9ydCIsICJfX2NvcHlQcm9wcyIsICJ0byIsICJfX3RvRVNNIiwgImVycm9yIiwgIm9zMiIsICJtb2R1bGUiLCAic3RyIiwgInJlcXVpcmVfdXRpbHMiLCAidHlwZSIsICJ1dGlscyIsICJzdHJpbmdpZnkiLCAiaXNPYmplY3QyIiwgInRyYW5zZm9ybTIiLCAiZmlsbDIiLCAicCIsICJxIiwgInJlcXVpcmVfY29uc3RhbnRzIiwgInJlcXVpcmVfcGFyc2UiLCAiQ0hBUl9DT01NQSIsICJDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQiLCAiQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCIsICJDSEFSX0RPVUJMRV9RVU9URSIsICJDSEFSX1NJTkdMRV9RVU9URSIsICJyZXF1aXJlX2NvbnN0YW50czIiLCAicmVxdWlyZV91dGlsczIiLCAiQ0hBUl9BU1RFUklTSyIsICJyZXF1aXJlX3BhcnNlMiIsICJ2IiwgIm0iLCAidCIsICJtZXJnZSIsICJmczUiLCAiZ3JvdXAiLCAicmVxdWlyZV9hc3luYyIsICJyZXF1aXJlX3N5bmMiLCAicmVxdWlyZV9jb21tb24iLCAicmVxdWlyZV9hc3luYzIiLCAiY29tbW9uIiwgInJlcXVpcmVfc3luYzIiLCAiZ2V0IiwgInNlbGYiLCAibm9vcDIiLCAicmVxdWlyZV9jb21tb24yIiwgImluZm8iLCAicmVxdWlyZV9wcm92aWRlciIsICJQcm92aWRlciIsICJsaW5lMiIsICJyZXF1aXJlX2pzX3Rva2VucyIsICJyZXF1aXJlX2lkZW50aWZpZXIiLCAic2V0IiwgImNwIiwgInJlcXVpcmVfa2V5d29yZCIsICJyZXF1aXJlX2xpYiIsICJyZXF1aXJlX2VzY2FwZV9zdHJpbmdfcmVnZXhwIiwgInJlcXVpcmVfY29sb3JfbmFtZSIsICJyZXF1aXJlX2NvbnZlcnNpb25zIiwgInIiLCAiZyIsICJoIiwgInMiLCAiYyIsICJ3IiwgInkiLCAiayIsICJ6IiwgInQxIiwgInQyIiwgInQzIiwgImhpIiwgImYiLCAic2wiLCAiYmwiLCAieTIiLCAieDIiLCAiejIiLCAiaHIiLCAibWciLCAicmVxdWlyZV9yb3V0ZSIsICJmbiIsICJyZXF1aXJlX2NvbG9yX2NvbnZlcnQiLCAicmVxdWlyZV9hbnNpX3N0eWxlcyIsICJyZXF1aXJlX2hhc19mbGFnIiwgInJlcXVpcmVfc3VwcG9ydHNfY29sb3IiLCAidmVyc2lvbiIsICJyZXF1aXJlX3RlbXBsYXRlcyIsICJ1bmVzY2FwZSIsICJjaGFsazIiLCAicmVxdWlyZV9jaGFsayIsICJyZXF1aXJlX2xpYjIiLCAicmVxdWlyZV9saWIzIiwgIl9kZWZhdWx0IiwgInJlcXVpcmVfZGlzdCIsICJQIiwgImUiLCAibWFwIiwgIl9hIiwgInJlcXVpcmVfZGVidWciLCAicmVxdWlyZV9yZSIsICJyZSIsICJSIiwgInJlcXVpcmVfcGFyc2Vfb3B0aW9ucyIsICJyZXF1aXJlX2lkZW50aWZpZXJzIiwgInJlcXVpcmVfc2VtdmVyIiwgImlkIiwgInJlcXVpcmVfY29tcGFyZSIsICJyZXF1aXJlX2d0ZSIsICJzZXQyIiwgInJlcXVpcmVfbWFwIiwgInJlcXVpcmVfeWFsbGlzdCIsICJyZXF1aXJlX2xydV9jYWNoZSIsICJsYyIsICJ0cmltMiIsICJhcyIsICJfIiwgInNpIiwgImlpIiwgImxsIiwgImwyIiwgImNzIiwgInNwIiwgInBsIiwgIiQxIiwgIiQyIiwgImZpIiwgInBpIiwgImZsIiwgImZyIiwgInByIiwgInJlcXVpcmVfaW5pIiwgIm9wIiwgInBhcnNlU3luYyIsICJyZXF1aXJlX3BhY2thZ2UiLCAiU3RhdGUiLCAiZCIsICJDSEFSX0NPTE9OIiwgIkNIQVJfRVFVQUxTIiwgImlzSW50ZWdlciIsICJpc0Zsb2F0IiwgInJlcXVpcmVfdXRpbCIsICJjMiIsICJkZWZpbmUiLCAicDEiLCAicDIiLCAidGhyb3dFcnJvciIsICJwdWJsaWNfZXhwb3J0cyIsICJwcm9jZXNzMiIsICJvcyIsICJ0dHkiLCAic3RyaW5nUmVwbGFjZUFsbCIsICJjaGFsayIsICJzY2hlbWEiLCAibyIsICJzdHJpbmdSZXBsYWNlQWxsMiIsICJzdHJpbmdfcmVwbGFjZV9hbGxfZGVmYXVsdCIsICJET0NfVFlQRV9TVFJJTkciLCAiRE9DX1RZUEVfQVJSQVkiLCAiRE9DX1RZUEVfQ1VSU09SIiwgIkRPQ19UWVBFX0lOREVOVCIsICJET0NfVFlQRV9BTElHTiIsICJET0NfVFlQRV9UUklNIiwgIkRPQ19UWVBFX0dST1VQIiwgIkRPQ19UWVBFX0ZJTEwiLCAiRE9DX1RZUEVfSUZfQlJFQUsiLCAiRE9DX1RZUEVfSU5ERU5UX0lGX0JSRUFLIiwgIkRPQ19UWVBFX0xJTkVfU1VGRklYIiwgIkRPQ19UWVBFX0xJTkVfU1VGRklYX0JPVU5EQVJZIiwgIkRPQ19UWVBFX0xJTkUiLCAiRE9DX1RZUEVfTEFCRUwiLCAiRE9DX1RZUEVfQlJFQUtfUEFSRU5UIiwgIlZBTElEX09CSkVDVF9ET0NfVFlQRVMiLCAiZ2V0RG9jVHlwZSIsICJnZXRfZG9jX3R5cGVfZGVmYXVsdCIsICJkaXNqdW5jdGlvbkxpc3RGb3JtYXQiLCAiZ2V0RG9jRXJyb3JNZXNzYWdlIiwgInR5cGUyIiwgIkludmFsaWREb2NFcnJvciIsICJpbnZhbGlkX2RvY19lcnJvcl9kZWZhdWx0IiwgInRyYXZlcnNlRG9jT25FeGl0U3RhY2tNYXJrZXIiLCAidHJhdmVyc2VEb2MiLCAiaWMiLCAidHJhdmVyc2VfZG9jX2RlZmF1bHQiLCAibm9vcCIsICJhc3NlcnREb2MiLCAiYXNzZXJ0RG9jQXJyYXkiLCAiaW5kZW50IiwgImFsaWduIiwgImZpbGwiLCAibGluZVN1ZmZpeCIsICJicmVha1BhcmVudCIsICJoYXJkbGluZVdpdGhvdXRCcmVha1BhcmVudCIsICJsaW5lIiwgImhhcmRsaW5lIiwgImN1cnNvciIsICJhZGRBbGlnbm1lbnRUb0RvYyIsICJhdCIsICJhdF9kZWZhdWx0IiwgImNvbnZlcnRFbmRPZkxpbmVUb0NoYXJzIiwgImVtb2ppX3JlZ2V4X2RlZmF1bHQiLCAiZWFzdGFzaWFud2lkdGhfZGVmYXVsdCIsICJub3RBc2NpaVJlZ2V4IiwgImdldFN0cmluZ1dpZHRoIiwgImdldF9zdHJpbmdfd2lkdGhfZGVmYXVsdCIsICJnZXREb2NQYXJ0cyIsICJtYXBEb2MiLCAiYnJlYWtQYXJlbnRHcm91cCIsICJwcm9wYWdhdGVCcmVha3MiLCAic3RyaXBUcmFpbGluZ0hhcmRsaW5lRnJvbVBhcnRzIiwgInN0cmlwVHJhaWxpbmdIYXJkbGluZUZyb21Eb2MiLCAic3RyaXBUcmFpbGluZ0hhcmRsaW5lIiwgImNsZWFuRG9jIiwgImNsZWFuRG9jRm4iLCAiTU9ERV9CUkVBSyIsICJNT0RFX0ZMQVQiLCAiQ1VSU09SX1BMQUNFSE9MREVSIiwgInJvb3RJbmRlbnQiLCAibWFrZUluZGVudCIsICJnZW5lcmF0ZUluZCIsICJtYWtlQWxpZ24iLCAiaW5kZW50MiIsICJ0cmltIiwgImZpdHMiLCAicHJpbnREb2NUb1N0cmluZyIsICJsaW5lU3VmZml4MiIsICJmcyIsICJtMSIsICJtMiIsICJwcmludGVyIiwgInBhcnNlIiwgInBhcnNlX2RlZmF1bHQiLCAiY3Vyc29yMiIsICJpc09iamVjdCIsICJhc3NlcnQyIiwgImFzc2VydDMiLCAiaW5kZW50U3RyaW5nIiwgInBhcnNlMiIsICJwcmludERvY1RvU3RyaW5nMiIsICJpbXBvcnRfZWRpdG9yY29uZmlnIiwgImZzMiIsICJwYXRoIiwgInBhdGgyIiwgInJlcXVpcmUyIiwgInByb2Nlc3MzIiwgImFzc2VydDQiLCAidjgiLCAiZnMzIiwgInBhdGgzIiwgImV4Y2VwdGlvbiIsICJmaWxlVVJMVG9QYXRoMiIsICJmaWxlVVJMVG9QYXRoMyIsICJwcm9jZXNzNCIsICJVUkwzIiwgImkyIiwgInBhdGg0IiwgImoiLCAicGFyc2VQYWNrYWdlTmFtZSIsICJhc3NlcnQ1IiwgInBhdGhUb0ZpbGVVUkwyIiwgInRyYW5zZm9ybSIsICJsb2FkIiwgInBhdGg1IiwgImZzNCIsICJwYXRoNiIsICJwYXRoNyIsICJwYXRoVG9GaWxlVVJMMyIsICJwYXRoOCIsICJxdW90ZSIsICJmcCIsICJsb2ciLCAiaW5wdXRzIiwgImxvZyIsICJiIiwgImlucHV0cyIsICJfYSIsICJsb2ciLCAiZSIsICJqIiwgImlucHV0cyIsICJsb2ciLCAidCIsICJpbnB1dHMiLCAibG9nIiwgInQiLCAiaW5wdXRzIiwgImxvZyIsICJpbnB1dHMiLCAiX2EiLCAibG9nIiwgImlucHV0cyIsICJsb2ciLCAiZXJyb3IiLCAibG9nIiwgImVycm9yIl0KfQo= diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 95befc61..00000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/env node -declare module "jest.config" { - import type { Config } from '@jest/types'; - const config: Config.InitialOptions; - export default config; -} -declare module "src/logtask/index" { - class LogTask { - name: string; - static ingroup_setting: { - [key: string]: boolean; - }; - static indentWidth: number; - constructor(name: string); - get ingroup(): boolean; - set ingroup(value: boolean); - logStep(emojiStr: string, step: string, description: string, startGroup?: number): Promise; - debug(description?: string): void; - start(description?: string): void; - info(description?: string): void; - warn(description?: string): void; - success(description?: string, ingroup?: boolean): void; - fail(description?: string, ingroup?: boolean): void; - error(description?: string): void; - title(description?: string): void; - } - export default LogTask; -} -declare module "src/Action" { - export interface InputType { - description?: string; - required?: boolean; - default?: string; - } - export interface OutputType { - description?: string; - } - export interface Runs { - using: string; - main: string; - } - export interface Branding { - color: string; - icon: string; - } - export type InputsType = { - [id: string]: InputType; - }; - export type OutputsType = { - [id: string]: OutputType; - }; - export default class Action { - name: string; - description: string; - branding: Branding; - inputs: InputsType; - outputs: OutputsType; - runs: Runs; - constructor(actionPath: string); - } -} -declare module "src/config" { - export interface Versioning { - enabled: boolean; - prefix: string; - override: string; - branch: string; - } - export interface Paths { - action: string; - readme: string; - } - export class GHActionDocsConfig { - owner: string; - repo: string; - title_prefix: string; - title: string; - paths: Paths; - show_logo: boolean; - versioning: Versioning; - readmePath: string; - outpath: string; - pretty: boolean; - } - export const startTokenFormat = ""; - export const endTokenFormat = ""; -} -declare module "src/editorconfig" { - import * as editorconfig from 'editorconfig'; - export const DEFAULT_EDITORCONFIG_MAX_LINE_LENGTH = 80; - export interface IProperties extends editorconfig.KnownProps { - /** - * Set to latin1, utf-8, utf-8-bom, utf-16be or utf-16le to control the - * character set. - */ - charset?: string; - /** - * Set to tab or space to use hard tabs or soft tabs respectively. - */ - indent_style?: 'unset' | 'tab' | 'space'; - /** - * The number of columns used for each indentation level and the width - * of soft tabs (when supported). When set to tab, the value of - * tab_width (if specified) will be used. - */ - indent_size?: number | 'unset' | 'tab'; - /** - * Number of columns used to represent a tab character. This defaults - * to the value of indent_size and doesn't usually need to be specified. - */ - tab_width?: number | 'unset'; - /** - * Removes any whitespace characters preceding newline characters. - */ - trim_trailing_whitespace?: boolean | 'unset'; - /** - * Set to lf, cr, or crlf to control how line breaks are represented. - */ - end_of_line?: 'lf' | 'crlf' | 'unset'; - /** - * Ensures files ends with a newline. - */ - insert_final_newline?: boolean | 'unset'; - /** - * Enforces the maximum number of columns you can have in a line. - */ - max_line_length: number; - block_comment?: string; - block_comment_start?: string; - block_comment_end?: string; - } - class Editorconfig { - props: IProperties; - constructor(); - } - const _default: Editorconfig; - export default _default; -} -declare module "src/formatter" { - class Formatter { - max_line_length: number; - constructor(); - } - const _default_1: Formatter; - export default _default_1; -} -declare module "src/helpers" { - import type { Context } from '@actions/github/lib/context'; - import type Inputs from "src/inputs"; - export function undefinedOnEmpty(value: string | undefined): string | undefined; - export function basename(path: string): string | undefined; - export function stripRefs(path: string): string | null; - export function titlecase(text: string): string | undefined; - export function prefixParser(text: string | undefined): string | undefined; - export function wrapText(text: string | undefined, content: string[], prepend?: string): string[]; - export interface Repo { - owner: string; - repo: string; - } - export function repositoryFinder(inputRepo: string | undefined | null, context: Context | undefined | null): Repo | null; - export function git_default_branch(): string; - export function columnHeader(value: string): string; - export function rowHeader(value: string): string; - export function getCurrentVersionString(inputs: Inputs): string; -} -declare module "src/working-directory" { - export function workingDirectory(): string; - export default workingDirectory; -} -declare module "src/inputs" { - import * as nconf from 'nconf'; - import Action from "src/Action"; - export const configKeys: string[]; - export default class Inputs { - config: nconf.Provider; - constructor(); - sections: string[]; - readmePath: string; - action: Action; - } -} -declare module "src/save" { - import Inputs from "src/inputs"; - export default function save(inputs: Inputs): void; -} -declare module "src/prettier" { - export function formatYaml(value: string, filepath?: string): Promise; - export function formatMarkdown(value: string, filepath?: string): Promise; -} -declare module "src/readme-writer" { - export default function readmeWriter(content: string[], tokenName: string, readmePath: string): Promise; -} -declare module "src/sections/update-badges" { - import type Inputs from "src/inputs"; - export interface IBadge { - alt: string; - img: string; - url?: string; - } - export default function updateBadges(token: string, inputs: Inputs): Promise; -} -declare module "src/sections/update-description" { - import type Inputs from "src/inputs"; - export default function updateDescription(token: string, inputs: Inputs): Promise; -} -declare module "src/markdowner/index" { - export type MarkdownArrayRowType = string[][]; - export type MarkdownArrayItemType = string; - /** - * Fills the width of the cell. - * @param text - * @param width - * @param paddingStart - */ - export function fillWidth(text: string, width: number, paddingStart: number): string; - /** - * Escape a text so it can be used in a markdown table - * @param text - */ - export function markdownEscapeTableCell(text: string): string; - export function markdownEscapeInlineCode(content: string): string; - export function ArrayOfArraysToMarkdownTable(providedTableContent: MarkdownArrayRowType): string; - export default ArrayOfArraysToMarkdownTable; -} -declare module "src/sections/update-inputs" { - import type Inputs from "src/inputs"; - export default function updateInputs(token: string, inputs: Inputs): Promise; -} -declare module "src/sections/update-outputs" { - import type Inputs from "src/inputs"; - export default function updateOutputs(token: string, inputs: Inputs): Promise; -} -declare module "src/sections/update-title" { - import type Inputs from "src/inputs"; - export default function updateTitle(token: string, inputs: Inputs): Promise; -} -declare module "src/sections/update-usage" { - import type Inputs from "src/inputs"; - export default function updateUsage(token: string, inputs: Inputs): Promise; -} -declare module "src/sections/index" { - import type Inputs from "src/inputs"; - export default function updateSection(section: string, inputs: Inputs): Promise; -} -declare module "src/generate-docs" { - import Inputs from "src/inputs"; - export const inputs: Inputs; - export default function generateDocs(): Promise; -} -declare module "src/index" { } -declare module "src/testInputs" { - export default function main(): void; -} diff --git a/dist/index.js b/dist/index.js new file mode 100755 index 00000000..06e22046 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node +"use strict";var lu=Object.create;var K=Object.defineProperty;var fu=Object.getOwnPropertyDescriptor;var Fu=Object.getOwnPropertyNames;var du=Object.getPrototypeOf,Au=Object.prototype.hasOwnProperty;var Cu=(e,u,t,n)=>{if(u&&typeof u=="object"||typeof u=="function")for(let r of Fu(u))!Au.call(e,r)&&r!==t&&K(e,r,{get:()=>u[r],enumerable:!(n=fu(u,r))||n.enumerable});return e};var A=(e,u,t)=>(t=e!=null?lu(du(e)):{},Cu(u||!e||!e.__esModule?K(t,"default",{value:e,enumerable:!0}):t,e));var nu=A(require("node:fs")),_=A(require("node:path")),iu=A(require("nconf"));var Q=A(require("node:fs")),X=A(require("js-yaml"));var F=A(require("@actions/core")),Z=A(require("chalk")),m=A(require("node-emoji")),mu=0,z=1,Eu=2,v=3,I=5,hu=6,f=Z.default,R=class e{name;static ingroup_setting={};static indentWidth=5;constructor(u){this.name=u.trim(),e.ingroup_setting[this.name]===void 0&&(e.ingroup_setting[this.name]=!1)}get ingroup(){return e.ingroup_setting[this.name]??!1}set ingroup(u){e.ingroup_setting[this.name]=u}async logStep(u,t,n,r=mu){t.length>e.indentWidth&&(e.indentWidth=t.length);let i;switch(t){case"START":{i=f.yellowBright(`${n}`);break}case"INFO":{i=f.green(`${n}`);break}case"WARN":{i=f.yellow(`${n}`);break}case"SUCCESS":{i=f.greenBright(`${n}`);break}case"FAILURE":{i=f.redBright(`${n}`);break}case"ERROR":{i=f.redBright(`${n}`);break}case"#####":{i=f.cyan(`${n}`);break}default:{i=f.white(`${n}`);break}}let o;switch(this.ingroup&&!process.env.GITHUB_ACTIONS?o=`${[...Array.from({length:e.indentWidth}).fill(" ")].join("")} ${u}: ${this.name} > ${i}`:o=`[${[t,...Array.from({length:e.indentWidth-t.length}).fill(" ")].join("")}] ${u}: ${i}`,t){case"START":{o=f.yellowBright(`${o}`);break}case"SUCCESS":{o=f.whiteBright(`${o}`);break}case"FAILURE":{o=f.red(`${o}`);break}case"ERROR":{o=f.red(`${o}`);break}default:break}let a=r===v||r===I;if(process.env.GITHUB_ACTIONS)switch(r){case z:{F.startGroup(o);break}case Eu:{F.endGroup();break}case v:{F.error(f.bgRedBright(o));break}case I:{F.setFailed(f.bgRedBright(o));break}default:F.info(o)}else a?F.error(o):F.info(o)}debug(u=""){process.env.DEBUG!==void 0&&this.logStep("\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F","DEBUG",u)}start(u=""){let t=u===""?`Starting ${this.name}...`:u;this.logStep(m.get("rocket")??"","START",t,z)}info(u=""){this.logStep(m.get("sparkles")??"","INFO",u)}warn(u=""){this.logStep(m.get("anger")??"","WARN",u)}success(u="",t=!0){let n=u===""?`Completed ${this.name}.`:u;t&&(this.ingroup=!1,process.env.GITHUB_ACTIONS&&F.endGroup()),this.logStep(m.get("white_check_mark")??"","SUCCESS",n)}fail(u="",t=!0){let n=u===""?`Failed ${this.name}.`:u;t&&(this.ingroup=!1,process.env.GITHUB_ACTIONS&&F.endGroup());let r=process.env.GITHUB_ACTIONS?I:v;this.logStep(m.get("x")??"","FAILURE",n,r)}error(u=""){this.logStep(m.get("x")??"","ERROR",u,v)}title(u=""){this.logStep("\u{1F4D3}","#####",u,hu)}},c=R;var h=class{name;description;branding;inputs;outputs;runs;constructor(u){let t=new c("action"),n=null;try{t.debug(`loading action.yml from ${u}`),n=X.load(Q.readFileSync(u,"utf8")),t.success("loaded configuration successfully")}catch{t.error(`failed to load ${u}`)}(typeof n!="object"||n===null)&&t.error("action.yml file read in isn't an object (no yaml in it)");let r=n;this.name=r.name,this.description=r.description,this.branding=r.branding,this.inputs=r.inputs,this.outputs=r.outputs,this.runs=r.runs}};var B=A(require("node:fs"));var Bu=/(?:[\dA-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;function yu(e){if(e){if(typeof e!="string")throw new TypeError(`Invalid argument type provided to titlecase(): ${typeof e}`);return e.replaceAll(Bu,u=>u[0]?u[0].toUpperCase()+u.slice(1).toLowerCase():u)}}function uu(e,u){let t=new c("repositoryFinder"),r={};if(e)return[r.owner,r.repo]=e.split("/"),t.info(`repositoryFinder using input ${e} and returns ${JSON.stringify(r)}`),r;if(process.env.GITHUB_REPOSITORY)return[r.owner,r.repo]=process.env.GITHUB_REPOSITORY.split("/"),t.info(`repositoryFinder using GITHUB_REPOSITORY ${process.env.GITHUB_REPOSITORY} and returns ${JSON.stringify(r)}`),r;if(u)return r.owner=u.repo.owner,r.repo=u.repo.repo,t.info(`repositoryFinder using GITHUB_REPOSITORY ${process.env.GITHUB_REPOSITORY} and returns ${JSON.stringify(r)}`),r;if(process.env.INPUT_OWNER&&process.env.INPUT_REPO)return r.owner=process.env.INPUT_OWNER,r.repo=process.env.INPUT_REPO,r;try{let i=B.readFileSync(".git/config","utf8"),o=/url( )?=( )?.*github\.com[/:](?.*)\/(?.*)\.git/,a=i.match(o);return a!==null&&(t.debug(JSON.stringify(a.groups)),r.owner=a.groups?.owner??"",r.repo=a.groups?.repo??""),r}catch(i){t.debug(`Couldn't find any owner or repo: ${i}`)}return r}function k(e){if(!e)return"";let u=yu(e.trim().replace(/^[*_~]+/,"").replace(/[*_~]+$/,""));return u?`**${u}**`:""}function $(e){return e?`\`**${e.trim().replace(/^\*+/,"").replace(/\*+$/,"")}**\``:""}function eu(e){let u="",t=new c("getCurrentVersionString");if(e.config.get("versioning:enabled")){t.debug("version string in generated example is enabled");let n=e.config.get("versioning:override"),r=process.env.npm_package_version;if(t.debug(`version string in env:npm_package_version is ${r??"not found"}`),!r){t.debug("version string in env:npm_package_version is not found, trying to use git");try{B.accessSync("package.json"),r=JSON.parse(B.readFileSync("package.json","utf8")).version}catch(i){t.debug(`package.json not found. ${i}`)}t.debug(`version string in package.json:version is ${r??"not found"}`)}u=n&&n.length>0?n:r??"0.0.0",u&&!u.startsWith(e.config.get("versioning:prefix"))&&(u=`${e.config.get("versioning:prefix")}${u}`)}else u=e.config.get("versioning:branch");return t.debug(`version to use in generated example is ${u}`),u}function y(){return process.env.GITHUB_WORKSPACE??process.env.INIT_CWD??process.cwd()}var S=new c("inputs");process.chdir(y());var tu=process.env.GITHUB_EVENT_PATH??"",ou=null;try{ou=JSON.parse(nu.readFileSync(tu,"utf8"))}catch{S.debug(`GITHUB_EVENT_PATH not found: ${tu}`)}var ru=".ghadocs.json",O="paths:action",P="paths:readme",U=["save",O,P,"show_logo","versioning:enabled","versioning:override","versioning:prefix","versioning:branch","owner","repo","title_prefix","pretty","include_github_version_badge"],b=class{config;constructor(){this.config=new iu.Provider;let u=uu(null,ou);process.env.GITHUB_ACTION&&S.info("running in GitHub action"),this.config.use("memory"),this.config.env({lowerCase:!0,parseValues:!0,match:/^INPUT_/,transform:n=>{if(n.key.startsWith("input_")){let r={key:n.key,value:n.value},i=n.key.replace(/^(INPUT|input)_/,"");switch(i){case"readme":{r.key=P;break}case"action":{r.key=O;break}case"versioning_enabled":{r.key="versioning:enabled";break}case"version_prefix":{r.key="versioning:prefix";break}case"versioning_default_branch":{r.key="versioning:branch";break}case"version_override":{r.key="versioning:override";break}case"include_github_version_badge":{r.key="versioning:badge";break}default:{r.key=i;break}}return r.value&&this.config.set(r.key,r.value),r}}}),this.config.argv({save:{alias:"save",describe:`Save this config to ${ru}`,parseValues:!0,type:"boolean"},"paths:action":{alias:["pathsAction","action"],type:"string",describe:"Path to the action.yml"},"paths:readme":{alias:["pathsReadme","readme"],type:"string",describe:"Path to the README file"},show_logo:{alias:"logo",describe:"Display the action's logo in the README"},owner:{alias:"owner",describe:"The GitHub Action repository owner. i.e: `bitflight-devops`"},repo:{alias:"repo",describe:"The GitHub Action repository name. i.e: `github-action-readme-generator`"},prettier:{alias:"pretty",describe:"Format the markdown using prettier formatter",parseValues:!0,type:"boolean"},"versioning:enabled":{alias:["versioning","versioning_enabled"],describe:"Enable the update of the usage version to match the latest version in the package.json file",parseValues:!0,type:"boolean"},"versioning:override":{alias:["setversion","versioning_override","version_override"],describe:"Set a specific version to display in the README.md",parseValues:!0},"versioning:prefix":{alias:["vp","version_prefix"],describe:"Prefix the version with this value (if it isn't already prefixed)",parseValues:!0},"versioning:branch":{alias:["branch","versioning_default_branch"],describe:"If versioning is disabled show this branch instead",parseValues:!0},"versioning:badge":{alias:["version-badge","versioning_badge"],describe:"Display the current version as a badge",parseValues:!0,type:"boolean"},title_prefix:{alias:["prefix","title_prefix"],describe:"Add a prefix to the README title",parseValues:!0}}),this.config.file({file:ru,dir:y()}),this.config.defaults({save:!0,owner:u?.owner,repo:u?.repo,paths:{action:"action.yml",readme:"README.md"},show_logo:!0,pretty:!0,versioning:{enabled:!0,override:"",prefix:"v",branch:"main",badges:!0},title_prefix:"GitHub Action: ",sections:["title","description","usage","inputs","outputs","contents","badges"]}),this.config.required(["owner","repo"]);for(let n of U)S.debug(`${n}: ${this.config.get(n)}`);this.sections=this.config.get("sections"),this.readmePath=_.relative(y(),this.config.get(P));let t=_.relative(y(),this.config.get(O));this.action=new h(t)}sections;readmePath;action};function H(e){let u=new c("save");if(e.config.get("save").toString()==="true"){for(let t of Object.keys(U))e.config.set(t,e.config.get(t));e.config.save(t=>{if(t&&"message"in t&&t.message){u.error(t.message);return}u.info("Configuration saved successfully.")})}}var T=A(require("node:fs")),gu=require("node:os");var su="",Du="";var j=require("prettier");async function au(e,u){return(0,j.format)(e,{semi:!1,parser:"markdown",embeddedLanguageFormatting:"auto",...u?{filepath:u}:{}})}async function cu(e,u,t){if(!e)return u??[];let n=t?e.replace(t,""):e,r=await(0,j.format)(`${t??""}${n}`,{semi:!1,parser:"yaml",proseWrap:"always"});return u.push(...r.split(` +`)),u}async function d(e,u,t){let n=new c(u);if(!e||e.length===0){n.info(`readmeWriter passed no content from ${u} parser`);return}n.info(`Looking for the ${u} token in ${t}`);let r=T.readFileSync(t).toString(),i=su.replace("%s",u),o=Du.replace("%s",u),a=r.indexOf(i);if(a<0)throw new Error(`Start token '${i}' not found`);n.info(`Found the start ${u} token`);let l=r.indexOf(o);if(l<0)throw new Error(`End token '${o}' not found`);if(l`;return s.url?`${D}`:D}function l(){let s=[];for(let D of r)s.push(a(D));return[s.join("")]}t.start(),n&&r.push(...o());let g=l();await d(g,e,u.readmePath),t.success()}async function N(e,u){let t=new c(e),n=[];if(u?.action?.description){t.start();let r=u.action.description.trim().replaceAll(`\r +`,` +`).replaceAll(/ +/g," ").replaceAll(` +`,` +`).replaceAll(` + +`,"
");t.info(`Writing ${r.length} characters to the description section`),n.push(r),await d(n,e,u.readmePath),t.success()}}function bu(e){return e.replaceAll(` +`,"
").replaceAll("|","\\|")}function wu(e){return e.replaceAll(/([\s*_]|^)`([^`]+)`([\s*_]|$)/g,"$1$2$3")}function vu(e){let u=[],t=[];for(let D of e)u.push([...D]);let n=u.length,r=0,i=0,o=0;for(let D of u){if(u[o]!==void 0){let p=D.length;p>r&&(r=p),(p1?s-1:0,pu=u[C];for(let E=0;E0){t.start();for(let g of Object.keys(a)){let s=a[g],D=s?.description??"",p=D.match(`(.*?) + +([Ss]*)`);p&&p.length>=2&&(D=p[1]||D),D=D.trim().replace(` +`,"
");let C=[$(g),D,s?.default?`\`${s.default}\``:"",s?.required?"**true**":"__false__"];t.debug(JSON.stringify(C)),r.push(C)}n.push(x(r)),t.info(`Action has ${l} total ${e}`),await d(n,e,u.readmePath),t.success()}else t.debug(`Action has no ${e}`)}async function W(e,u){let t=new c(e),n=[],r=[],i=["Output","Description"],o=[];for(let g of i)o.push(k(g));r.push(o);let a=u.action.outputs,l=a?Object.keys(a).length:0;if(l>0){t.start();for(let g of Object.keys(a)){let D=a[g]?.description??"",p=/(.*?)\n\n([Ss]*)/.exec(D);p&&p.length>=2&&(D=p[1]||D),D=D.trim().replace(` +`,"
");let C=[$(g),D];t.debug(JSON.stringify(C)),r.push(C)}n.push(x(r)),t.info(`Action has ${l} total ${e}`),await d(n,e,u.readmePath),t.success()}else t.debug(`Action has no ${e}`)}async function V(e,u){let t=new c(e),n=[],r="";if(u.action.name){t.start(),r=u.action.name,t.info(`Writing ${r.length} characters to the title`);let i=`# ${u.config.get("title_prefix")}${u.action.name}`;t.info(`Title: ${i}`),n.push(i),await d(n,e,u.readmePath),t.success()}}async function M(e,u){let t=new c(e);t.start();let n=`${u.config.get("owner")}/${u.config.get("repo")}`;t.info(`Action name: ${n}`);let r=eu(u);t.info(`Version string: ${r}`);let i=`${n}@${r}`;if(!i)throw new Error("Parameter actionReference must not be empty");let o=[];o.push("```yaml",`- uses: ${i}`," with:");let a=u.action.inputs,l=!0;if(a)for(let g of Object.keys(a)){let s=a[g];s!==void 0&&(l||o.push(""),cu(s.description,o," # "),s.default!==void 0&&(s.description?.trimEnd().match(/\n *\r?\n/)&&o.push(" #"),o.push(` # Default: ${s.default}`)),o.push(` ${g}: ''`),l=!1)}o.push("```\n"),await d(o,e,u.readmePath),t.success()}async function J(e,u){let t=new c("updateSection");try{switch(e){case"badges":{await G(e,u);break}case"usage":{await M(e,u);break}case"title":{await V(e,u);break}case"description":{await N(e,u);break}case"inputs":{await L(e,u);break}case"outputs":{await W(e,u);break}default:t.debug(`unknown section ${e}`)}}catch(n){n&&"message"in n&&n.message&&t.fail(n.message)}}var q=new b;async function Y(){let e=new c("generating readme");try{let u=[];for(let t of q.sections)u.push(J(t,q));return Promise.all(u).then(()=>H(q))}catch(u){u&&"message"in u&&u.message&&e.error(u.message)}}Y(); +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2lucHV0cy50cyIsICIuLi9zcmMvQWN0aW9uLnRzIiwgIi4uL3NyYy9sb2d0YXNrL2luZGV4LnRzIiwgIi4uL3NyYy9oZWxwZXJzLnRzIiwgIi4uL3NyYy93b3JraW5nLWRpcmVjdG9yeS50cyIsICIuLi9zcmMvc2F2ZS50cyIsICIuLi9zcmMvcmVhZG1lLXdyaXRlci50cyIsICIuLi9zcmMvY29uZmlnLnRzIiwgIi4uL3NyYy9wcmV0dGllci50cyIsICIuLi9zcmMvc2VjdGlvbnMvdXBkYXRlLWJhZGdlcy50cyIsICIuLi9zcmMvc2VjdGlvbnMvdXBkYXRlLWRlc2NyaXB0aW9uLnRzIiwgIi4uL3NyYy9tYXJrZG93bmVyL2luZGV4LnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtaW5wdXRzLnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtb3V0cHV0cy50cyIsICIuLi9zcmMvc2VjdGlvbnMvdXBkYXRlLXRpdGxlLnRzIiwgIi4uL3NyYy9zZWN0aW9ucy91cGRhdGUtdXNhZ2UudHMiLCAiLi4vc3JjL3NlY3Rpb25zL2luZGV4LnRzIiwgIi4uL3NyYy9nZW5lcmF0ZS1kb2NzLnRzIiwgIi4uL3NyYy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5ICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tICdAYWN0aW9ucy9naXRodWIvbGliL2NvbnRleHQnO1xuaW1wb3J0ICogYXMgbmNvbmYgZnJvbSAnbmNvbmYnO1xuXG5pbXBvcnQgQWN0aW9uIGZyb20gJy4vQWN0aW9uJztcbmltcG9ydCB7IHJlcG9zaXRvcnlGaW5kZXIgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcbmltcG9ydCB7IHdvcmtpbmdEaXJlY3RvcnkgfSBmcm9tICcuL3dvcmtpbmctZGlyZWN0b3J5JztcblxuY29uc3QgbG9nID0gbmV3IExvZ1Rhc2soJ2lucHV0cycpO1xucHJvY2Vzcy5jaGRpcih3b3JraW5nRGlyZWN0b3J5KCkpO1xuY29uc3QgZ2l0aHViRXZlbnRQYXRoID0gcHJvY2Vzcy5lbnYuR0lUSFVCX0VWRU5UX1BBVEggPz8gJyc7XG5sZXQgZ2l0aHViRXZlbnQ6IENvbnRleHQgfCBudWxsID0gbnVsbDtcbnRyeSB7XG4gIGdpdGh1YkV2ZW50ID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZ2l0aHViRXZlbnRQYXRoLCAndXRmOCcpKSBhcyBDb250ZXh0O1xufSBjYXRjaCB7XG4gIC8vIEZpbGUgbm90IHRoZXJlXG4gIGxvZy5kZWJ1ZyhgR0lUSFVCX0VWRU5UX1BBVEggbm90IGZvdW5kOiAke2dpdGh1YkV2ZW50UGF0aH1gKTtcbn1cbmNvbnN0IGNvbmZpZ0ZpbGVOYW1lID0gJy5naGFkb2NzLmpzb24nO1xuY29uc3QgcGF0aHNBY3Rpb24gPSAncGF0aHM6YWN0aW9uJztcbmNvbnN0IHBhdGhzUmVhZG1lID0gJ3BhdGhzOnJlYWRtZSc7XG5leHBvcnQgY29uc3QgY29uZmlnS2V5czogc3RyaW5nW10gPSBbXG4gICdzYXZlJyxcbiAgcGF0aHNBY3Rpb24sXG4gIHBhdGhzUmVhZG1lLFxuICAnc2hvd19sb2dvJyxcbiAgJ3ZlcnNpb25pbmc6ZW5hYmxlZCcsXG4gICd2ZXJzaW9uaW5nOm92ZXJyaWRlJyxcbiAgJ3ZlcnNpb25pbmc6cHJlZml4JyxcbiAgJ3ZlcnNpb25pbmc6YnJhbmNoJyxcbiAgJ293bmVyJyxcbiAgJ3JlcG8nLFxuICAndGl0bGVfcHJlZml4JyxcbiAgJ3ByZXR0eScsXG4gICdpbmNsdWRlX2dpdGh1Yl92ZXJzaW9uX2JhZGdlJyxcbl07XG5pbnRlcmZhY2UgS1ZQYWlyVHlwZSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5wdXRzIHtcbiAgcHVibGljIGNvbmZpZzogbmNvbmYuUHJvdmlkZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jb25maWcgPSBuZXcgbmNvbmYuUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZXBvc2l0b3J5RGV0YWlsID0gcmVwb3NpdG9yeUZpbmRlcihudWxsLCBnaXRodWJFdmVudCk7XG4gICAgaWYgKHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT04pIHtcbiAgICAgIGxvZy5pbmZvKCdydW5uaW5nIGluIEdpdEh1YiBhY3Rpb24nKTtcbiAgICB9XG4gICAgdGhpcy5jb25maWcudXNlKCdtZW1vcnknKTtcbiAgICB0aGlzLmNvbmZpZy5lbnYoe1xuICAgICAgbG93ZXJDYXNlOiB0cnVlLFxuICAgICAgcGFyc2VWYWx1ZXM6IHRydWUsXG4gICAgICBtYXRjaDogL15JTlBVVF8vLFxuICAgICAgdHJhbnNmb3JtOiAob2JqOiBLVlBhaXJUeXBlKTogdW5kZWZpbmVkIHwgS1ZQYWlyVHlwZSA9PiB7XG4gICAgICAgIGlmIChvYmoua2V5LnN0YXJ0c1dpdGgoJ2lucHV0XycpKSB7XG4gICAgICAgICAgY29uc3QgbmV3T2JqOiBLVlBhaXJUeXBlID0ge1xuICAgICAgICAgICAga2V5OiBvYmoua2V5LFxuICAgICAgICAgICAgdmFsdWU6IG9iai52YWx1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IGtleVBhcnNlZCA9IG9iai5rZXkucmVwbGFjZSgvXihJTlBVVHxpbnB1dClfLywgJycpO1xuICAgICAgICAgIHN3aXRjaCAoa2V5UGFyc2VkKSB7XG4gICAgICAgICAgICBjYXNlICdyZWFkbWUnOiB7XG4gICAgICAgICAgICAgIG5ld09iai5rZXkgPSBwYXRoc1JlYWRtZTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhY3Rpb24nOiB7XG4gICAgICAgICAgICAgIG5ld09iai5rZXkgPSBwYXRoc0FjdGlvbjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd2ZXJzaW9uaW5nX2VuYWJsZWQnOiB7XG4gICAgICAgICAgICAgIG5ld09iai5rZXkgPSAndmVyc2lvbmluZzplbmFibGVkJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd2ZXJzaW9uX3ByZWZpeCc6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9ICd2ZXJzaW9uaW5nOnByZWZpeCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndmVyc2lvbmluZ19kZWZhdWx0X2JyYW5jaCc6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9ICd2ZXJzaW9uaW5nOmJyYW5jaCc7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndmVyc2lvbl9vdmVycmlkZSc6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9ICd2ZXJzaW9uaW5nOm92ZXJyaWRlJztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdpbmNsdWRlX2dpdGh1Yl92ZXJzaW9uX2JhZGdlJzoge1xuICAgICAgICAgICAgICBuZXdPYmoua2V5ID0gJ3ZlcnNpb25pbmc6YmFkZ2UnO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgbmV3T2JqLmtleSA9IGtleVBhcnNlZDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXdPYmoudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnNldChuZXdPYmoua2V5LCBuZXdPYmoudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3T2JqO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlnLmFyZ3Yoe1xuICAgICAgJ3NhdmUnOiB7XG4gICAgICAgIGFsaWFzOiAnc2F2ZScsXG4gICAgICAgIGRlc2NyaWJlOiBgU2F2ZSB0aGlzIGNvbmZpZyB0byAke2NvbmZpZ0ZpbGVOYW1lfWAsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgICAgJ3BhdGhzOmFjdGlvbic6IHtcbiAgICAgICAgYWxpYXM6IFsncGF0aHNBY3Rpb24nLCAnYWN0aW9uJ10sXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZXNjcmliZTogJ1BhdGggdG8gdGhlIGFjdGlvbi55bWwnLFxuICAgICAgfSxcbiAgICAgICdwYXRoczpyZWFkbWUnOiB7XG4gICAgICAgIGFsaWFzOiBbJ3BhdGhzUmVhZG1lJywgJ3JlYWRtZSddLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVzY3JpYmU6ICdQYXRoIHRvIHRoZSBSRUFETUUgZmlsZScsXG4gICAgICB9LFxuICAgICAgJ3Nob3dfbG9nbyc6IHtcbiAgICAgICAgYWxpYXM6ICdsb2dvJyxcbiAgICAgICAgZGVzY3JpYmU6IFwiRGlzcGxheSB0aGUgYWN0aW9uJ3MgbG9nbyBpbiB0aGUgUkVBRE1FXCIsXG4gICAgICB9LFxuICAgICAgJ293bmVyJzoge1xuICAgICAgICBhbGlhczogJ293bmVyJyxcbiAgICAgICAgZGVzY3JpYmU6ICdUaGUgR2l0SHViIEFjdGlvbiByZXBvc2l0b3J5IG93bmVyLiBpLmU6IGBiaXRmbGlnaHQtZGV2b3BzYCcsXG4gICAgICB9LFxuICAgICAgJ3JlcG8nOiB7XG4gICAgICAgIGFsaWFzOiAncmVwbycsXG4gICAgICAgIGRlc2NyaWJlOiAnVGhlIEdpdEh1YiBBY3Rpb24gcmVwb3NpdG9yeSBuYW1lLiBpLmU6IGBnaXRodWItYWN0aW9uLXJlYWRtZS1nZW5lcmF0b3JgJyxcbiAgICAgIH0sXG4gICAgICAncHJldHRpZXInOiB7XG4gICAgICAgIGFsaWFzOiAncHJldHR5JyxcbiAgICAgICAgZGVzY3JpYmU6ICdGb3JtYXQgdGhlIG1hcmtkb3duIHVzaW5nIHByZXR0aWVyIGZvcm1hdHRlcicsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICB9LFxuICAgICAgJ3ZlcnNpb25pbmc6ZW5hYmxlZCc6IHtcbiAgICAgICAgYWxpYXM6IFsndmVyc2lvbmluZycsICd2ZXJzaW9uaW5nX2VuYWJsZWQnXSxcbiAgICAgICAgZGVzY3JpYmU6XG4gICAgICAgICAgJ0VuYWJsZSB0aGUgdXBkYXRlIG9mIHRoZSB1c2FnZSB2ZXJzaW9uIHRvIG1hdGNoIHRoZSBsYXRlc3QgdmVyc2lvbiBpbiB0aGUgcGFja2FnZS5qc29uIGZpbGUnLFxuICAgICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgfSxcbiAgICAgICd2ZXJzaW9uaW5nOm92ZXJyaWRlJzoge1xuICAgICAgICBhbGlhczogWydzZXR2ZXJzaW9uJywgJ3ZlcnNpb25pbmdfb3ZlcnJpZGUnLCAndmVyc2lvbl9vdmVycmlkZSddLFxuICAgICAgICBkZXNjcmliZTogJ1NldCBhIHNwZWNpZmljIHZlcnNpb24gdG8gZGlzcGxheSBpbiB0aGUgUkVBRE1FLm1kJyxcbiAgICAgICAgcGFyc2VWYWx1ZXM6IHRydWUsXG4gICAgICB9LFxuICAgICAgJ3ZlcnNpb25pbmc6cHJlZml4Jzoge1xuICAgICAgICBhbGlhczogWyd2cCcsICd2ZXJzaW9uX3ByZWZpeCddLFxuICAgICAgICBkZXNjcmliZTogXCJQcmVmaXggdGhlIHZlcnNpb24gd2l0aCB0aGlzIHZhbHVlIChpZiBpdCBpc24ndCBhbHJlYWR5IHByZWZpeGVkKVwiLFxuICAgICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAndmVyc2lvbmluZzpicmFuY2gnOiB7XG4gICAgICAgIGFsaWFzOiBbJ2JyYW5jaCcsICd2ZXJzaW9uaW5nX2RlZmF1bHRfYnJhbmNoJ10sXG4gICAgICAgIGRlc2NyaWJlOiAnSWYgdmVyc2lvbmluZyBpcyBkaXNhYmxlZCBzaG93IHRoaXMgYnJhbmNoIGluc3RlYWQnLFxuICAgICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAndmVyc2lvbmluZzpiYWRnZSc6IHtcbiAgICAgICAgYWxpYXM6IFsndmVyc2lvbi1iYWRnZScsICd2ZXJzaW9uaW5nX2JhZGdlJ10sXG4gICAgICAgIGRlc2NyaWJlOiAnRGlzcGxheSB0aGUgY3VycmVudCB2ZXJzaW9uIGFzIGEgYmFkZ2UnLFxuICAgICAgICBwYXJzZVZhbHVlczogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgfSxcbiAgICAgICd0aXRsZV9wcmVmaXgnOiB7XG4gICAgICAgIGFsaWFzOiBbJ3ByZWZpeCcsICd0aXRsZV9wcmVmaXgnXSxcbiAgICAgICAgZGVzY3JpYmU6ICdBZGQgYSBwcmVmaXggdG8gdGhlIFJFQURNRSB0aXRsZScsXG4gICAgICAgIHBhcnNlVmFsdWVzOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnLmZpbGUoeyBmaWxlOiBjb25maWdGaWxlTmFtZSwgZGlyOiB3b3JraW5nRGlyZWN0b3J5KCkgfSk7XG4gICAgdGhpcy5jb25maWcuZGVmYXVsdHMoe1xuICAgICAgc2F2ZTogdHJ1ZSxcbiAgICAgIG93bmVyOiByZXBvc2l0b3J5RGV0YWlsPy5vd25lcixcbiAgICAgIHJlcG86IHJlcG9zaXRvcnlEZXRhaWw/LnJlcG8sXG4gICAgICBwYXRoczoge1xuICAgICAgICBhY3Rpb246ICdhY3Rpb24ueW1sJyxcbiAgICAgICAgcmVhZG1lOiAnUkVBRE1FLm1kJyxcbiAgICAgIH0sXG4gICAgICBzaG93X2xvZ286IHRydWUsXG4gICAgICBwcmV0dHk6IHRydWUsXG4gICAgICB2ZXJzaW9uaW5nOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIG92ZXJyaWRlOiAnJyxcbiAgICAgICAgcHJlZml4OiAndicsXG4gICAgICAgIGJyYW5jaDogJ21haW4nLFxuICAgICAgICBiYWRnZXM6IHRydWUsXG4gICAgICB9LFxuICAgICAgdGl0bGVfcHJlZml4OiAnR2l0SHViIEFjdGlvbjogJyxcbiAgICAgIHNlY3Rpb25zOiBbJ3RpdGxlJywgJ2Rlc2NyaXB0aW9uJywgJ3VzYWdlJywgJ2lucHV0cycsICdvdXRwdXRzJywgJ2NvbnRlbnRzJywgJ2JhZGdlcyddLFxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlnLnJlcXVpcmVkKFsnb3duZXInLCAncmVwbyddKTtcbiAgICBmb3IgKGNvbnN0IGsgb2YgY29uZmlnS2V5cykge1xuICAgICAgbG9nLmRlYnVnKGAke2t9OiAke3RoaXMuY29uZmlnLmdldChrKX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlY3Rpb25zID0gdGhpcy5jb25maWcuZ2V0KCdzZWN0aW9ucycpIGFzIHN0cmluZ1tdO1xuICAgIHRoaXMucmVhZG1lUGF0aCA9IHBhdGgucmVsYXRpdmUod29ya2luZ0RpcmVjdG9yeSgpLCB0aGlzLmNvbmZpZy5nZXQocGF0aHNSZWFkbWUpIGFzIHN0cmluZyk7XG4gICAgY29uc3QgYWN0aW9uUGF0aCA9IHBhdGgucmVsYXRpdmUod29ya2luZ0RpcmVjdG9yeSgpLCB0aGlzLmNvbmZpZy5nZXQocGF0aHNBY3Rpb24pIGFzIHN0cmluZyk7XG5cbiAgICB0aGlzLmFjdGlvbiA9IG5ldyBBY3Rpb24oYWN0aW9uUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgc2VjdGlvbnM6IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyByZWFkbWVQYXRoOiBzdHJpbmc7XG5cbiAgcHVibGljIGFjdGlvbjogQWN0aW9uO1xufVxuIiwgIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAnanMteWFtbCc7XG5cbmltcG9ydCBMb2dUYXNrIGZyb20gJy4vbG9ndGFzayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUeXBlIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgZGVmYXVsdD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0VHlwZSB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBSdW5zIHtcbiAgdXNpbmc6IHN0cmluZztcbiAgbWFpbjogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBCcmFuZGluZyB7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIElucHV0c1R5cGUgPSB7IFtpZDogc3RyaW5nXTogSW5wdXRUeXBlIH07XG5leHBvcnQgdHlwZSBPdXRwdXRzVHlwZSA9IHsgW2lkOiBzdHJpbmddOiBPdXRwdXRUeXBlIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFjdGlvbiB7XG4gIC8vIExvYWQgdGhlIGFjdGlvbi55bWxcblxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBicmFuZGluZzogQnJhbmRpbmc7XG5cbiAgcHVibGljIGlucHV0czogSW5wdXRzVHlwZTtcblxuICBwdWJsaWMgb3V0cHV0czogT3V0cHV0c1R5cGU7XG5cbiAgcHVibGljIHJ1bnM6IFJ1bnM7XG5cbiAgY29uc3RydWN0b3IoYWN0aW9uUGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2soJ2FjdGlvbicpO1xuICAgIGxldCB0bXBBY3Rpb25ZYW1sID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKGBsb2FkaW5nIGFjdGlvbi55bWwgZnJvbSAke2FjdGlvblBhdGh9YCk7XG4gICAgICB0bXBBY3Rpb25ZYW1sID0geWFtbC5sb2FkKGZzLnJlYWRGaWxlU3luYyhhY3Rpb25QYXRoLCAndXRmOCcpKSBhcyBBY3Rpb247XG4gICAgICBsb2cuc3VjY2VzcygnbG9hZGVkIGNvbmZpZ3VyYXRpb24gc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBsb2cuZXJyb3IoYGZhaWxlZCB0byBsb2FkICR7YWN0aW9uUGF0aH1gKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0bXBBY3Rpb25ZYW1sICE9PSAnb2JqZWN0JyB8fCB0bXBBY3Rpb25ZYW1sID09PSBudWxsKSB7XG4gICAgICBsb2cuZXJyb3IoXCJhY3Rpb24ueW1sIGZpbGUgcmVhZCBpbiBpc24ndCBhbiBvYmplY3QgKG5vIHlhbWwgaW4gaXQpXCIpO1xuICAgIH1cbiAgICBjb25zdCBhY3Rpb25ZYW1sID0gdG1wQWN0aW9uWWFtbCBhcyBBY3Rpb247XG4gICAgdGhpcy5uYW1lID0gYWN0aW9uWWFtbC5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBhY3Rpb25ZYW1sLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuYnJhbmRpbmcgPSBhY3Rpb25ZYW1sLmJyYW5kaW5nO1xuICAgIHRoaXMuaW5wdXRzID0gYWN0aW9uWWFtbC5pbnB1dHM7XG4gICAgdGhpcy5vdXRwdXRzID0gYWN0aW9uWWFtbC5vdXRwdXRzO1xuICAgIHRoaXMucnVucyA9IGFjdGlvbllhbWwucnVucztcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIGNvcmUgZnJvbSAnQGFjdGlvbnMvY29yZSc7XG5pbXBvcnQgKiBhcyBjaGFsa0NsYXNzIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGVtb2ppIGZyb20gJ25vZGUtZW1vamknO1xuXG5jb25zdCBOT19HUk9VUCA9IDA7XG5jb25zdCBTVEFSVF9HUk9VUCA9IDE7XG5jb25zdCBFTkRfR1JPVVAgPSAyO1xuY29uc3QgSVNfRVJST1IgPSAzO1xuY29uc3QgSVNfRkFJTEVEID0gNTtcbmNvbnN0IElTX1RJVExFID0gNjtcbmNvbnN0IGNoYWxrID0gY2hhbGtDbGFzcy5kZWZhdWx0O1xuY2xhc3MgTG9nVGFzayB7XG4gIG5hbWU6IHN0cmluZztcblxuICBzdGF0aWMgaW5ncm91cF9zZXR0aW5nOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIHN0YXRpYyBpbmRlbnRXaWR0aCA9IDU7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZS50cmltKCk7XG4gICAgaWYgKExvZ1Rhc2suaW5ncm91cF9zZXR0aW5nW3RoaXMubmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgTG9nVGFzay5pbmdyb3VwX3NldHRpbmdbdGhpcy5uYW1lXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbmdyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBMb2dUYXNrLmluZ3JvdXBfc2V0dGluZ1t0aGlzLm5hbWVdID8/IGZhbHNlO1xuICB9XG5cbiAgc2V0IGluZ3JvdXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBMb2dUYXNrLmluZ3JvdXBfc2V0dGluZ1t0aGlzLm5hbWVdID0gdmFsdWU7XG4gIH1cblxuICBhc3luYyBsb2dTdGVwKFxuICAgIGVtb2ppU3RyOiBzdHJpbmcsXG4gICAgc3RlcDogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgc3RhcnRHcm91cCA9IE5PX0dST1VQLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoc3RlcC5sZW5ndGggPiBMb2dUYXNrLmluZGVudFdpZHRoKSB7XG4gICAgICBMb2dUYXNrLmluZGVudFdpZHRoID0gc3RlcC5sZW5ndGg7XG4gICAgfVxuICAgIGxldCBkZXNjOiBzdHJpbmc7XG4gICAgc3dpdGNoIChzdGVwKSB7XG4gICAgICBjYXNlICdTVEFSVCc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnllbGxvd0JyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdJTkZPJzoge1xuICAgICAgICBkZXNjID0gY2hhbGsuZ3JlZW4oYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnV0FSTic6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnllbGxvdyhgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTVUNDRVNTJzoge1xuICAgICAgICBkZXNjID0gY2hhbGsuZ3JlZW5CcmlnaHQoYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRkFJTFVSRSc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnJlZEJyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFUlJPUic6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLnJlZEJyaWdodChgJHtkZXNjcmlwdGlvbn1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICcjIyMjIyc6IHtcbiAgICAgICAgZGVzYyA9IGNoYWxrLmN5YW4oYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBkZXNjID0gY2hhbGsud2hpdGUoYCR7ZGVzY3JpcHRpb259YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBtc2c6IHN0cmluZztcbiAgICBpZiAodGhpcy5pbmdyb3VwICYmICFwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUykge1xuICAgICAgY29uc3QgaW5kZW50U3RyID0gWy4uLkFycmF5LmZyb20oeyBsZW5ndGg6IExvZ1Rhc2suaW5kZW50V2lkdGggfSkuZmlsbCgnICcpXS5qb2luKCcnKTtcbiAgICAgIG1zZyA9IGAke2luZGVudFN0cn0gICAke2Vtb2ppU3RyfTogJHt0aGlzLm5hbWV9ID4gJHtkZXNjfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0ZXBTdHIgPSBbXG4gICAgICAgIHN0ZXAsXG4gICAgICAgIC4uLkFycmF5LmZyb20oeyBsZW5ndGg6IExvZ1Rhc2suaW5kZW50V2lkdGggLSBzdGVwLmxlbmd0aCB9KS5maWxsKCcgJyksXG4gICAgICBdLmpvaW4oJycpO1xuXG4gICAgICBtc2cgPSBgWyR7c3RlcFN0cn1dICR7ZW1vamlTdHJ9OiAke2Rlc2N9YDtcbiAgICB9XG4gICAgc3dpdGNoIChzdGVwKSB7XG4gICAgICBjYXNlICdTVEFSVCc6IHtcbiAgICAgICAgbXNnID0gY2hhbGsueWVsbG93QnJpZ2h0KGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdTVUNDRVNTJzoge1xuICAgICAgICBtc2cgPSBjaGFsay53aGl0ZUJyaWdodChgJHttc2d9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRkFJTFVSRSc6IHtcbiAgICAgICAgbXNnID0gY2hhbGsucmVkKGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFUlJPUic6IHtcbiAgICAgICAgbXNnID0gY2hhbGsucmVkKGAke21zZ31gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBpc0Vycm9yaW5nID0gc3RhcnRHcm91cCA9PT0gSVNfRVJST1IgfHwgc3RhcnRHcm91cCA9PT0gSVNfRkFJTEVEO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT05TKSB7XG4gICAgICBzd2l0Y2ggKHN0YXJ0R3JvdXApIHtcbiAgICAgICAgY2FzZSBTVEFSVF9HUk9VUDoge1xuICAgICAgICAgIGNvcmUuc3RhcnRHcm91cChtc2cpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBFTkRfR1JPVVA6IHtcbiAgICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIElTX0VSUk9SOiB7XG4gICAgICAgICAgY29yZS5lcnJvcihjaGFsay5iZ1JlZEJyaWdodChtc2cpKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgSVNfRkFJTEVEOiB7XG4gICAgICAgICAgY29yZS5zZXRGYWlsZWQoY2hhbGsuYmdSZWRCcmlnaHQobXNnKSk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgY29yZS5pbmZvKG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzRXJyb3JpbmcpIHtcbiAgICAgIGNvcmUuZXJyb3IobXNnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29yZS5pbmZvKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgZGVidWcoZGVzY3JpcHRpb24gPSAnJyk6IHZvaWQge1xuICAgIGlmIChwcm9jZXNzLmVudi5ERUJVRyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmxvZ1N0ZXAoJ1x1RDgzRFx1REM0MVx1RkUwRlx1MjAwRFx1RDgzRFx1RERFOFx1RkUwRicsICdERUJVRycsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBzdGFydChkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgY29uc3QgZGVzYyA9IGRlc2NyaXB0aW9uID09PSAnJyA/IGBTdGFydGluZyAke3RoaXMubmFtZX0uLi5gIDogZGVzY3JpcHRpb247XG5cbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCdyb2NrZXQnKSA/PyAnJywgJ1NUQVJUJywgZGVzYywgU1RBUlRfR1JPVVApO1xuICB9XG5cbiAgaW5mbyhkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5sb2dTdGVwKGVtb2ppLmdldCgnc3BhcmtsZXMnKSA/PyAnJywgJ0lORk8nLCBkZXNjcmlwdGlvbik7XG4gIH1cblxuICB3YXJuKGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCdhbmdlcicpID8/ICcnLCAnV0FSTicsIGRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHN1Y2Nlc3MoZGVzY3JpcHRpb24gPSAnJywgaW5ncm91cCA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBkZXNjID0gZGVzY3JpcHRpb24gPT09ICcnID8gYENvbXBsZXRlZCAke3RoaXMubmFtZX0uYCA6IGRlc2NyaXB0aW9uO1xuICAgIGlmIChpbmdyb3VwKSB7XG4gICAgICB0aGlzLmluZ3JvdXAgPSBmYWxzZTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUykge1xuICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubG9nU3RlcChlbW9qaS5nZXQoJ3doaXRlX2NoZWNrX21hcmsnKSA/PyAnJywgJ1NVQ0NFU1MnLCBkZXNjKTtcbiAgfVxuXG4gIGZhaWwoZGVzY3JpcHRpb24gPSAnJywgaW5ncm91cCA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBkZXNjID0gZGVzY3JpcHRpb24gPT09ICcnID8gYEZhaWxlZCAke3RoaXMubmFtZX0uYCA6IGRlc2NyaXB0aW9uO1xuICAgIGlmIChpbmdyb3VwKSB7XG4gICAgICB0aGlzLmluZ3JvdXAgPSBmYWxzZTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUykge1xuICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IG1zZ3R5cGUgPSBwcm9jZXNzLmVudi5HSVRIVUJfQUNUSU9OUyA/IElTX0ZBSUxFRCA6IElTX0VSUk9SO1xuICAgIHRoaXMubG9nU3RlcChlbW9qaS5nZXQoJ3gnKSA/PyAnJywgJ0ZBSUxVUkUnLCBkZXNjLCBtc2d0eXBlKTtcbiAgfVxuXG4gIGVycm9yKGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ1N0ZXAoZW1vamkuZ2V0KCd4JykgPz8gJycsICdFUlJPUicsIGRlc2NyaXB0aW9uLCBJU19FUlJPUik7XG4gIH1cblxuICB0aXRsZShkZXNjcmlwdGlvbiA9ICcnKTogdm9pZCB7XG4gICAgdGhpcy5sb2dTdGVwKCdcdUQ4M0RcdURDRDMnLCAnIyMjIyMnLCBkZXNjcmlwdGlvbiwgSVNfVElUTEUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ1Rhc2s7XG4iLCAiaW1wb3J0ICogYXMgZnMgZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCB0eXBlIHsgQ29udGV4dCB9IGZyb20gJ0BhY3Rpb25zL2dpdGh1Yi9saWIvY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VKc29uIH0gZnJvbSAndHlwZXMtcGFja2FnZS1qc29uJztcblxuaW1wb3J0IHR5cGUgSW5wdXRzIGZyb20gJy4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4vbG9ndGFzayc7XG5cbi8vXG4vLyBSZWdleCBiZWxvdyBtYXRjaGVzIGFueSBVbmljb2RlIHdvcmQgYW5kIG51bWJlciBjb21wYXRpYmxlIHdpdGggRVM1LiBJbiBFUzIwMTggdGhlIHNhbWUgcmVzdWx0XG4vLyBjYW4gYmUgYWNoaWV2ZWQgYnkgdXNpbmcgL1swLTlcXHB7TH1dXFxTKi9ndSBhbmQgYWxzbyBrbm93biBhcyBVbmljb2RlIFByb3BlcnR5IEVzY2FwZXNcbi8vIChodHRwczovLzJhbGl0eS5jb20vMjAxNy8wNy9yZWdleHAtdW5pY29kZS1wcm9wZXJ0eS1lc2NhcGVzLmh0bWwpLiBTaW5jZSB0aGVyZSBpcyBub1xuLy8gdHJhbnNwaWxhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgZG93biB0byBFUzUgd2l0aG91dCBleHRlcm5hbCB0b29sLCB0aGUgb25seSBzb2x1dGlvbiBpc1xuLy8gdG8gdXNlIGFscmVhZHkgdHJhbnNwaWxlZCBmb3JtLiBFeGFtcGxlIGNhbiBiZSBmb3VuZCBoZXJlIC1cbi8vIGh0dHBzOi8vbW90aGVyZWZmLmluL3JlZ2V4cHUjaW5wdXQ9dmFyK3JlZ2V4KyUzRCslMkYlNUIwLTklNUNwJTdCTCU3RCU1RCU1Q1MqJTJGZ3UlM0IlMEElMEEmdW5pY29kZVByb3BlcnR5RXNjYXBlPTFcbi8vXG5cbmNvbnN0IHVuaWNvZGVXb3JkTWF0Y2ggPVxuICAvLyB0cnVuay1pZ25vcmUoZXNsaW50L3VuaWNvcm4vYmV0dGVyLXJlZ2V4LGVzbGludC91bmljb3JuL25vLWhleC1lc2NhcGUsZXNsaW50L29wdGltaXplLXJlZ2V4L29wdGltaXplLXJlZ2V4KVxuICAvKD86W1xcZEEtWmEtelxcdTAwQUFcXHUwMEI1XFx1MDBCQVxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MC1cXHUwNTg4XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4NzAtXFx1MDg4N1xcdTA4ODktXFx1MDg4RVxcdTA4QTAtXFx1MDhDOVxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzVEXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDRERcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDQtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4Ni1cXHUwRThBXFx1MEU4Qy1cXHUwRUEzXFx1MEVBNVxcdTBFQTctXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZGMS1cXHUxNkY4XFx1MTcwMC1cXHUxNzExXFx1MTcxRi1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzhcXHUxODgwLVxcdTE4ODRcXHUxODg3LVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0Q1xcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUM5MC1cXHUxQ0JBXFx1MUNCRC1cXHUxQ0JGXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YzXFx1MUNGNVxcdTFDRjZcXHUxQ0ZBXFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XFx1MkMwMC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNVxcdTMwMDZcXHUzMDMxLVxcdTMwMzVcXHUzMDNCXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCRlxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCRlxcdTRFMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkU1XFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0NBXFx1QTdEMFxcdUE3RDFcXHVBN0QzXFx1QTdENS1cXHVBN0Q5XFx1QTdGMi1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2OVxcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0MFxcdURGNDItXFx1REY0OVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRl18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERDcwLVxcdUREN0FcXHVERDdDLVxcdUREOEFcXHVERDhDLVxcdUREOTJcXHVERDk0XFx1REQ5NVxcdUREOTctXFx1RERBMVxcdUREQTMtXFx1RERCMVxcdUREQjMtXFx1RERCOVxcdUREQkJcXHVEREJDXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XFx1REY4MC1cXHVERjg1XFx1REY4Ny1cXHVERkIwXFx1REZCMi1cXHVERkJBXXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzNVxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJcXHVERDAwLVxcdUREMjNcXHVERTgwLVxcdURFQTlcXHVERUIwXFx1REVCMVxcdURGMDAtXFx1REYxQ1xcdURGMjdcXHVERjMwLVxcdURGNDVcXHVERjcwLVxcdURGODFcXHVERkIwLVxcdURGQzRcXHVERkUwLVxcdURGRjZdfFxcdUQ4MDRbXFx1REMwMy1cXHVEQzM3XFx1REM3MVxcdURDNzJcXHVEQzc1XFx1REM4My1cXHVEQ0FGXFx1RENEMC1cXHVEQ0U4XFx1REQwMy1cXHVERDI2XFx1REQ0NFxcdURENDdcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDNUYtXFx1REM2MVxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERUI4XFx1REYwMC1cXHVERjFBXFx1REY0MC1cXHVERjQ2XXxcXHVEODA2W1xcdURDMDAtXFx1REMyQlxcdURDQTAtXFx1RENERlxcdURDRkYtXFx1REQwNlxcdUREMDlcXHVERDBDLVxcdUREMTNcXHVERDE1XFx1REQxNlxcdUREMTgtXFx1REQyRlxcdUREM0ZcXHVERDQxXFx1RERBMC1cXHVEREE3XFx1RERBQS1cXHVEREQwXFx1RERFMVxcdURERTNcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODlcXHVERTlEXFx1REVCMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZcXHVERDYwLVxcdURENjVcXHVERDY3XFx1REQ2OFxcdURENkEtXFx1REQ4OVxcdUREOThcXHVERUUwLVxcdURFRjJcXHVERkIwXXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzgwLVxcdURENDNdfFxcdUQ4MEJbXFx1REY5MC1cXHVERkYwXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4MjJcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzlcXHVEODgwLVxcdUQ4ODNdW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFNzAtXFx1REVCRVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERTQwLVxcdURFN0ZcXHVERjAwLVxcdURGNEFcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyM1tcXHVEQzAwLVxcdURDRDVcXHVERDAwLVxcdUREMDhdfFxcdUQ4MkJbXFx1REZGMC1cXHVERkYzXFx1REZGNS1cXHVERkZCXFx1REZGRFxcdURGRkVdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDIyXFx1REQ1MC1cXHVERDUyXFx1REQ2NC1cXHVERDY3XFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODM3W1xcdURGMDAtXFx1REYxRV18XFx1RDgzOFtcXHVERDAwLVxcdUREMkNcXHVERDM3LVxcdUREM0RcXHVERDRFXFx1REU5MC1cXHVERUFEXFx1REVDMC1cXHVERUVCXXxcXHVEODM5W1xcdURGRTAtXFx1REZFNlxcdURGRTgtXFx1REZFQlxcdURGRURcXHVERkVFXFx1REZGMC1cXHVERkZFXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M1xcdURENEJdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFREZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM4XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF18XFx1RDg4NFtcXHVEQzAwLVxcdURGNEFdKVxcUyovZztcblxuZXhwb3J0IGZ1bmN0aW9uIHVuZGVmaW5lZE9uRW1wdHkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5leHBvcnQgZnVuY3Rpb24gYmFzZW5hbWUocGF0aDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwYXRoKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzaygnYmFzZW5hbWUnKTtcbiAgY29uc3QgcmVzdWx0ID0gcGF0aC5zcGxpdCgnLycpLnJldmVyc2UoKVswXTtcbiAgbG9nLmRlYnVnKGBCYXNlbmFtZSBwYXNzZWQgJHtwYXRofSBhbmQgcmV0dXJucyAke3Jlc3VsdH1gKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwUmVmcyhwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFwYXRoKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2soJ3N0cmlwUmVmcycpO1xuICBjb25zdCByZXN1bHQgPSBwYXRoLnJlcGxhY2UoJ3JlZnMvaGVhZHMvJywgJycpLnJlcGxhY2UoJ3JlZnMvdGFncy8nLCAnJyk7XG4gIGxvZy5kZWJ1Zyhgc3RyaXBSZWZzIHBhc3NlZCAke3BhdGh9IGFuZCByZXR1cm5zICR7cmVzdWx0fWApO1xuICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRpdGxlY2FzZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXRleHQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGFyZ3VtZW50IHR5cGUgcHJvdmlkZWQgdG8gdGl0bGVjYXNlKCk6ICR7dHlwZW9mIHRleHR9YCk7XG4gIH1cbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCh1bmljb2RlV29yZE1hdGNoLCAodHh0KSA9PlxuICAgIHR4dFswXSA/IHR4dFswXS50b1VwcGVyQ2FzZSgpICsgdHh0LnNsaWNlKDEpLnRvTG93ZXJDYXNlKCkgOiB0eHQsXG4gICk7XG59XG5leHBvcnQgZnVuY3Rpb24gcHJlZml4UGFyc2VyKHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdGV4dCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEludmFsaWQgYXJndW1lbnQgdHlwZSBwcm92aWRlZCB0byBwcmVmaXhQYXJzZXIoKTogJHt0eXBlb2YgdGV4dH1gKTtcbiAgfVxuICByZXR1cm4gdGl0bGVjYXNlKHRleHQucmVwbGFjZSgvW18tXSsvLCAnICcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBUZXh0KHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgY29udGVudDogc3RyaW5nW10sIHByZXBlbmQgPSAnJyk6IHN0cmluZ1tdIHtcbiAgLy8gQ29uc3RyYWluIHRoZSB3aWR0aCBvZiB0aGUgZGVzY3JpcHRpb25cbiAgaWYgKCF0ZXh0KSByZXR1cm4gY29udGVudDtcbiAgY29uc3Qgd2lkdGggPSA4MDtcblxuICBsZXQgZGVzY3JpcHRpb24gPSB0ZXh0XG4gICAgLnRyaW0oKVxuICAgIC5yZXBsYWNlQWxsKCdcXHJcXG4nLCAnXFxuJykgLy8gQ29udmVydCBDUiB0byBMRlxuICAgIC5yZXBsYWNlQWxsKC8gKy9nLCAnICcpIC8vICAgIFNxdWFzaCBjb25zZWN1dGl2ZSBzcGFjZXNcbiAgICAucmVwbGFjZUFsbCgnIFxcbicsICdcXG4nKTsgLy8gIFNxdWFzaCBzcGFjZSBmb2xsb3dlZCBieSBuZXdsaW5lXG5cbiAgd2hpbGUgKGRlc2NyaXB0aW9uKSB7XG4gICAgLy8gTG9uZ2VyIHRoYW4gd2lkdGg/IEZpbmQgYSBzcGFjZSB0byBicmVhayBhcGFydFxuICAgIGxldCBzZWdtZW50OiBzdHJpbmc7XG4gICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCA+IHdpZHRoKSB7XG4gICAgICBzZWdtZW50ID0gZGVzY3JpcHRpb24uc2xpY2UoMCwgTWF0aC5tYXgoMCwgd2lkdGggKyAxKSk7XG4gICAgICB3aGlsZSAoIXNlZ21lbnQuZW5kc1dpdGgoJyAnKSAmJiAhc2VnbWVudC5lbmRzV2l0aCgnXFxuJykgJiYgc2VnbWVudCkge1xuICAgICAgICBzZWdtZW50ID0gc2VnbWVudC5zbGljZSgwLCBNYXRoLm1heCgwLCBzZWdtZW50Lmxlbmd0aCAtIDEpKTtcbiAgICAgIH1cblxuICAgICAgLy8gVHJpbW1lZCB0b28gbXVjaD9cbiAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA8IHdpZHRoICogMC42Nykge1xuICAgICAgICBzZWdtZW50ID0gZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZ21lbnQgPSBkZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbmV3bGluZVxuICAgIGNvbnN0IG5ld2xpbmVJbmRleCA9IHNlZ21lbnQuaW5kZXhPZignXFxuJyk7XG4gICAgaWYgKG5ld2xpbmVJbmRleCA+PSAwKSB7XG4gICAgICBzZWdtZW50ID0gc2VnbWVudC5zbGljZSgwLCBNYXRoLm1heCgwLCBuZXdsaW5lSW5kZXggKyAxKSk7XG4gICAgfVxuICAgIGNvbnRlbnQucHVzaChgJHtwcmVwZW5kfSR7c2VnbWVudH1gLnRyaW1FbmQoKSk7XG4gICAgLy8gUmVtYWluaW5nXG4gICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zbGljZShzZWdtZW50Lmxlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJlcG8ge1xuICBvd25lcjogc3RyaW5nO1xuICByZXBvOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvc2l0b3J5RmluZGVyKFxuICBpbnB1dFJlcG86IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGNvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQgfCBudWxsLFxuKTogUmVwbyB8IG51bGwge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzaygncmVwb3NpdG9yeUZpbmRlcicpO1xuICBjb25zdCBvYmogPSB7fSBhcyB1bmtub3duO1xuICBjb25zdCByZXN1bHQgPSBvYmogYXMgUmVwbztcbiAgaWYgKGlucHV0UmVwbykge1xuICAgIFtyZXN1bHQub3duZXIsIHJlc3VsdC5yZXBvXSA9IGlucHV0UmVwby5zcGxpdCgnLycpIGFzIFtzdHJpbmcsIHN0cmluZ107XG4gICAgbG9nLmluZm8oYHJlcG9zaXRvcnlGaW5kZXIgdXNpbmcgaW5wdXQgJHtpbnB1dFJlcG99IGFuZCByZXR1cm5zICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5HSVRIVUJfUkVQT1NJVE9SWSkge1xuICAgIFtyZXN1bHQub3duZXIsIHJlc3VsdC5yZXBvXSA9IHByb2Nlc3MuZW52LkdJVEhVQl9SRVBPU0lUT1JZLnNwbGl0KCcvJykgYXMgW3N0cmluZywgc3RyaW5nXTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGByZXBvc2l0b3J5RmluZGVyIHVzaW5nIEdJVEhVQl9SRVBPU0lUT1JZICR7XG4gICAgICAgIHByb2Nlc3MuZW52LkdJVEhVQl9SRVBPU0lUT1JZXG4gICAgICB9IGFuZCByZXR1cm5zICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoY29udGV4dCkge1xuICAgIHJlc3VsdC5vd25lciA9IGNvbnRleHQucmVwby5vd25lcjtcbiAgICByZXN1bHQucmVwbyA9IGNvbnRleHQucmVwby5yZXBvO1xuXG4gICAgbG9nLmluZm8oXG4gICAgICBgcmVwb3NpdG9yeUZpbmRlciB1c2luZyBHSVRIVUJfUkVQT1NJVE9SWSAke1xuICAgICAgICBwcm9jZXNzLmVudi5HSVRIVUJfUkVQT1NJVE9SWVxuICAgICAgfSBhbmQgcmV0dXJucyAke0pTT04uc3RyaW5naWZ5KHJlc3VsdCl9YCxcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52LklOUFVUX09XTkVSICYmIHByb2Nlc3MuZW52LklOUFVUX1JFUE8pIHtcbiAgICByZXN1bHQub3duZXIgPSBwcm9jZXNzLmVudi5JTlBVVF9PV05FUjtcbiAgICByZXN1bHQucmVwbyA9IHByb2Nlc3MuZW52LklOUFVUX1JFUE87XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKCcuZ2l0L2NvbmZpZycsICd1dGY4Jyk7XG4gICAgY29uc3QgcGF0dGVybiA9IC91cmwoICk/PSggKT8uKmdpdGh1YlxcLmNvbVsvOl0oPzxvd25lcj4uKilcXC8oPzxyZXBvPi4qKVxcLmdpdC87XG5cbiAgICBpbnRlcmZhY2UgT3duZXJSZXBvSW50ZXJmYWNlIGV4dGVuZHMgUmVnRXhwRXhlY0FycmF5IHtcbiAgICAgIGdyb3Vwcz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICBvd25lcjogc3RyaW5nO1xuICAgICAgICByZXBvOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBmaWxlQ29udGVudC5tYXRjaChwYXR0ZXJuKSBhcyBPd25lclJlcG9JbnRlcmZhY2U7XG4gICAgaWYgKHJlc3VsdHMgIT09IG51bGwpIHtcbiAgICAgIGxvZy5kZWJ1ZyhKU09OLnN0cmluZ2lmeShyZXN1bHRzLmdyb3VwcykpO1xuICAgICAgcmVzdWx0Lm93bmVyID0gcmVzdWx0cy5ncm91cHM/Lm93bmVyID8/ICcnO1xuICAgICAgcmVzdWx0LnJlcG8gPSByZXN1bHRzLmdyb3Vwcz8ucmVwbyA/PyAnJztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBjYW4ndCBmaW5kIGl0XG4gICAgbG9nLmRlYnVnKGBDb3VsZG4ndCBmaW5kIGFueSBvd25lciBvciByZXBvOiAke2Vycm9yfWApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnaXRfZGVmYXVsdF9icmFuY2goKTogc3RyaW5nIHtcbiAgLy8gZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL0hFQUQgfCBzZWQgJ3NAXnJlZnMvcmVtb3Rlcy9vcmlnaW4vQEAnXG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbHVtbkhlYWRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBub3JtYWxpc2VkSGVhZGVyID0gdGl0bGVjYXNlKFxuICAgIHZhbHVlXG4gICAgICAudHJpbSgpXG4gICAgICAucmVwbGFjZSgvXlsqX35dKy8sICcnKVxuICAgICAgLnJlcGxhY2UoL1sqX35dKyQvLCAnJyksXG4gICk7XG4gIGlmIChub3JtYWxpc2VkSGVhZGVyKSB7XG4gICAgcmV0dXJuIGAqKiR7bm9ybWFsaXNlZEhlYWRlcn0qKmA7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvd0hlYWRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBub3JtYWxpc2VkSGVhZGVyID0gdmFsdWUudHJpbSgpLnJlcGxhY2UoL15cXCorLywgJycpLnJlcGxhY2UoL1xcKiskLywgJycpO1xuICByZXR1cm4gYFxcYCoqJHtub3JtYWxpc2VkSGVhZGVyfSoqXFxgYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRWZXJzaW9uU3RyaW5nKGlucHV0czogSW5wdXRzKTogc3RyaW5nIHtcbiAgbGV0IHZlcnNpb25TdHJpbmcgPSAnJztcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2soJ2dldEN1cnJlbnRWZXJzaW9uU3RyaW5nJyk7XG4gIGlmIChpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzplbmFibGVkJykpIHtcbiAgICBsb2cuZGVidWcoJ3ZlcnNpb24gc3RyaW5nIGluIGdlbmVyYXRlZCBleGFtcGxlIGlzIGVuYWJsZWQnKTtcbiAgICBjb25zdCBvUmlkZSA9IGlucHV0cy5jb25maWcuZ2V0KCd2ZXJzaW9uaW5nOm92ZXJyaWRlJykgYXMgc3RyaW5nO1xuICAgIGxldCBwYWNrYWdlVmVyc2lvbiA9IHByb2Nlc3MuZW52Lm5wbV9wYWNrYWdlX3ZlcnNpb247XG4gICAgbG9nLmRlYnVnKGB2ZXJzaW9uIHN0cmluZyBpbiBlbnY6bnBtX3BhY2thZ2VfdmVyc2lvbiBpcyAke3BhY2thZ2VWZXJzaW9uID8/ICdub3QgZm91bmQnfWApO1xuICAgIGlmICghcGFja2FnZVZlcnNpb24pIHtcbiAgICAgIGxvZy5kZWJ1ZygndmVyc2lvbiBzdHJpbmcgaW4gZW52Om5wbV9wYWNrYWdlX3ZlcnNpb24gaXMgbm90IGZvdW5kLCB0cnlpbmcgdG8gdXNlIGdpdCcpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZnMuYWNjZXNzU3luYygncGFja2FnZS5qc29uJyk7XG4gICAgICAgIGNvbnN0IHBhY2thZ2VEYXRhOiBQYXJ0aWFsPFBhY2thZ2VKc29uPiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgZnMucmVhZEZpbGVTeW5jKCdwYWNrYWdlLmpzb24nLCAndXRmOCcpLFxuICAgICAgICApO1xuICAgICAgICBwYWNrYWdlVmVyc2lvbiA9IHBhY2thZ2VEYXRhLnZlcnNpb247XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2cuZGVidWcoYHBhY2thZ2UuanNvbiBub3QgZm91bmQuICR7ZXJyb3J9YCk7XG4gICAgICB9XG4gICAgICBsb2cuZGVidWcoYHZlcnNpb24gc3RyaW5nIGluIHBhY2thZ2UuanNvbjp2ZXJzaW9uIGlzICR7cGFja2FnZVZlcnNpb24gPz8gJ25vdCBmb3VuZCd9YCk7XG4gICAgfVxuXG4gICAgdmVyc2lvblN0cmluZyA9IG9SaWRlICYmIG9SaWRlLmxlbmd0aCA+IDAgPyBvUmlkZSA6IHBhY2thZ2VWZXJzaW9uID8/ICcwLjAuMCc7XG5cbiAgICBpZiAoXG4gICAgICB2ZXJzaW9uU3RyaW5nICYmXG4gICAgICAhdmVyc2lvblN0cmluZy5zdGFydHNXaXRoKGlucHV0cy5jb25maWcuZ2V0KCd2ZXJzaW9uaW5nOnByZWZpeCcpIGFzIHN0cmluZylcbiAgICApIHtcbiAgICAgIHZlcnNpb25TdHJpbmcgPSBgJHtpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzpwcmVmaXgnKSBhcyBzdHJpbmd9JHt2ZXJzaW9uU3RyaW5nfWA7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZlcnNpb25TdHJpbmcgPSBpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzpicmFuY2gnKSBhcyBzdHJpbmc7XG4gIH1cbiAgbG9nLmRlYnVnKGB2ZXJzaW9uIHRvIHVzZSBpbiBnZW5lcmF0ZWQgZXhhbXBsZSBpcyAke3ZlcnNpb25TdHJpbmd9YCk7XG4gIHJldHVybiB2ZXJzaW9uU3RyaW5nO1xufVxuIiwgImV4cG9ydCBmdW5jdGlvbiB3b3JraW5nRGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9jZXNzLmVudi5HSVRIVUJfV09SS1NQQUNFID8/IHByb2Nlc3MuZW52LklOSVRfQ1dEID8/IHByb2Nlc3MuY3dkKCk7XG59XG5leHBvcnQgZGVmYXVsdCB3b3JraW5nRGlyZWN0b3J5O1xuIiwgImltcG9ydCBJbnB1dHMsIHsgY29uZmlnS2V5cyB9IGZyb20gJy4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4vbG9ndGFzayc7XG5cbi8vIFRoaXMgc2NyaXB0IHJlYnVpbGRzIHRoZSB1c2FnZSBzZWN0aW9uIGluIHRoZSBSRUFETUUubWQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBhY3Rpb24ueW1sXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzYXZlKGlucHV0czogSW5wdXRzKTogdm9pZCB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdzYXZlJyk7XG4gIGlmIChpbnB1dHMuY29uZmlnLmdldCgnc2F2ZScpLnRvU3RyaW5nKCkgPT09ICd0cnVlJykge1xuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhjb25maWdLZXlzKSkge1xuICAgICAgaW5wdXRzLmNvbmZpZy5zZXQoaywgaW5wdXRzLmNvbmZpZy5nZXQoaykpO1xuICAgIH1cbiAgICBpbnB1dHMuY29uZmlnLnNhdmUoKGVycjogYW55KSA9PiB7XG4gICAgICBpZiAoZXJyICYmICdtZXNzYWdlJyBpbiBlcnIgJiYgZXJyLm1lc3NhZ2UpIHtcbiAgICAgICAgbG9nLmVycm9yKGVyci5tZXNzYWdlIGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdDb25maWd1cmF0aW9uIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcbiAgICB9KTtcbiAgfVxufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSAnbm9kZTpvcyc7XG5cbmltcG9ydCB7IGVuZFRva2VuRm9ybWF0LCBzdGFydFRva2VuRm9ybWF0IH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcbmltcG9ydCB7IGZvcm1hdE1hcmtkb3duIH0gZnJvbSAnLi9wcmV0dGllcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlYWRtZVdyaXRlcihcbiAgY29udGVudDogc3RyaW5nW10sXG4gIHRva2VuTmFtZTogc3RyaW5nLFxuICByZWFkbWVQYXRoOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW5OYW1lKTtcblxuICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC5sZW5ndGggPT09IDApIHtcbiAgICBsb2cuaW5mbyhgcmVhZG1lV3JpdGVyIHBhc3NlZCBubyBjb250ZW50IGZyb20gJHt0b2tlbk5hbWV9IHBhcnNlcmApO1xuICAgIHJldHVybjtcbiAgfVxuICBsb2cuaW5mbyhgTG9va2luZyBmb3IgdGhlICR7dG9rZW5OYW1lfSB0b2tlbiBpbiAke3JlYWRtZVBhdGh9YCk7XG4gIC8vIExvYWQgdGhlIFJFQURNRVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVhZG1lID0gZnMucmVhZEZpbGVTeW5jKHJlYWRtZVBhdGgpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3Qgc3RhcnRUb2tlbiA9IHN0YXJ0VG9rZW5Gb3JtYXQucmVwbGFjZSgnJXMnLCB0b2tlbk5hbWUpO1xuICBjb25zdCBlbmRUb2tlbiA9IGVuZFRva2VuRm9ybWF0LnJlcGxhY2UoJyVzJywgdG9rZW5OYW1lKTtcblxuICAvLyBGaW5kIHRoZSBzdGFydCB0b2tlblxuICBjb25zdCBzdGFydFRva2VuSW5kZXggPSBvcmlnaW5hbFJlYWRtZS5pbmRleE9mKHN0YXJ0VG9rZW4pO1xuICBpZiAoc3RhcnRUb2tlbkluZGV4IDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RhcnQgdG9rZW4gJyR7c3RhcnRUb2tlbn0nIG5vdCBmb3VuZGApO1xuICB9XG4gIGxvZy5pbmZvKGBGb3VuZCB0aGUgc3RhcnQgJHt0b2tlbk5hbWV9IHRva2VuYCk7XG5cbiAgLy8gRmluZCB0aGUgZW5kIHRva2VuXG4gIGNvbnN0IGVuZFRva2VuSW5kZXggPSBvcmlnaW5hbFJlYWRtZS5pbmRleE9mKGVuZFRva2VuKTtcbiAgaWYgKGVuZFRva2VuSW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFbmQgdG9rZW4gJyR7ZW5kVG9rZW59JyBub3QgZm91bmRgKTtcbiAgfSBlbHNlIGlmIChlbmRUb2tlbkluZGV4IDwgc3RhcnRUb2tlbkluZGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdGFydCB0b2tlbiBtdXN0IGFwcGVhciBiZWZvcmUgZW5kIHRva2VuJyk7XG4gIH1cbiAgbG9nLmluZm8oYEZvdW5kIHRoZSBlbmQgJHt0b2tlbk5hbWV9IHRva2VuYCk7XG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IG5ld1JlYWRtZTogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgbGVuOiBudW1iZXIgPSBzdGFydFRva2VuLmxlbmd0aDtcblxuICBuZXdSZWFkbWUucHVzaChcbiAgICBvcmlnaW5hbFJlYWRtZS5zbGljZSgwLCBNYXRoLm1heCgwLCBzdGFydFRva2VuSW5kZXggKyBsZW4pKSwgLy8gQXBwZW5kIHRoZSBiZWdpbm5pbmdcbiAgICAuLi5jb250ZW50LFxuICAgIG9yaWdpbmFsUmVhZG1lLnNsaWNlKGVuZFRva2VuSW5kZXgpLCAvLyBBcHBlbmQgdGhlIGVuZFxuICApO1xuXG4gIGNvbnN0IGZpbGVDb250ZW50ID0gbmV3UmVhZG1lLmpvaW4oRU9MKTtcbiAgLy8gV3JpdGUgdGhlIG5ldyBSRUFETUVcbiAgY29uc3QgZm9ybWF0dGVkUmVhZG1lID0gYXdhaXQgZm9ybWF0TWFya2Rvd24oZmlsZUNvbnRlbnQpO1xuICBmcy53cml0ZUZpbGVTeW5jKHJlYWRtZVBhdGgsIGZvcm1hdHRlZFJlYWRtZSk7XG4gIGxvZy5pbmZvKGBzdWNjZXNzZnVsbHkgdXBkYXRlZCB0aGUgJHt0b2tlbk5hbWV9IHNlY3Rpb25gKTtcbn1cbiIsICJleHBvcnQgaW50ZXJmYWNlIFZlcnNpb25pbmcge1xuICBlbmFibGVkOiBib29sZWFuO1xuICBwcmVmaXg6IHN0cmluZztcbiAgb3ZlcnJpZGU6IHN0cmluZztcbiAgYnJhbmNoOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhdGhzIHtcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIHJlYWRtZTogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgR0hBY3Rpb25Eb2NzQ29uZmlnIHtcbiAgb3duZXI6IHN0cmluZztcblxuICByZXBvOiBzdHJpbmc7XG5cbiAgdGl0bGVfcHJlZml4OiBzdHJpbmc7XG5cbiAgdGl0bGU6IHN0cmluZztcblxuICBwYXRoczogUGF0aHM7XG5cbiAgc2hvd19sb2dvOiBib29sZWFuO1xuXG4gIHZlcnNpb25pbmc6IFZlcnNpb25pbmc7XG5cbiAgcmVhZG1lUGF0aDogc3RyaW5nO1xuXG4gIG91dHBhdGg6IHN0cmluZztcblxuICBwcmV0dHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBzdGFydFRva2VuRm9ybWF0ID0gJzwhLS0gc3RhcnQgJXMgLS0+JztcbmV4cG9ydCBjb25zdCBlbmRUb2tlbkZvcm1hdCA9ICc8IS0tIGVuZCAlcyAtLT4nO1xuIiwgImltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ3ByZXR0aWVyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZvcm1hdFlhbWwodmFsdWU6IHN0cmluZywgZmlsZXBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBmcCA9IGZpbGVwYXRoID8geyBmaWxlcGF0aCB9IDoge307XG4gIHJldHVybiBmb3JtYXQodmFsdWUsIHtcbiAgICBzZW1pOiBmYWxzZSxcbiAgICBwYXJzZXI6ICd5YW1sJyxcbiAgICBlbWJlZGRlZExhbmd1YWdlRm9ybWF0dGluZzogJ2F1dG8nLFxuICAgIC4uLmZwLFxuICB9KTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmb3JtYXRNYXJrZG93bih2YWx1ZTogc3RyaW5nLCBmaWxlcGF0aD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZwID0gZmlsZXBhdGggPyB7IGZpbGVwYXRoIH0gOiB7fTtcbiAgcmV0dXJuIGZvcm1hdCh2YWx1ZSwge1xuICAgIHNlbWk6IGZhbHNlLFxuICAgIHBhcnNlcjogJ21hcmtkb3duJyxcbiAgICBlbWJlZGRlZExhbmd1YWdlRm9ybWF0dGluZzogJ2F1dG8nLFxuICAgIC4uLmZwLFxuICB9KTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwRGVzY3JpcHRpb24oXG4gIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNvbnRlbnQ6IHN0cmluZ1tdLFxuICBwcmVmaXg6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIGNvbnRlbnQgPz8gW107XG4gIGNvbnN0IHZhbHVlV2l0aG91dFByZWZpeCA9IHByZWZpeCA/IHZhbHVlLnJlcGxhY2UocHJlZml4LCAnJykgOiB2YWx1ZTtcbiAgY29uc3QgZm9ybWF0dGVkU3RyaW5nID0gYXdhaXQgZm9ybWF0KGAke3ByZWZpeCA/PyAnJ30ke3ZhbHVlV2l0aG91dFByZWZpeH1gLCB7XG4gICAgc2VtaTogZmFsc2UsXG4gICAgcGFyc2VyOiAneWFtbCcsXG4gICAgcHJvc2VXcmFwOiAnYWx3YXlzJyxcbiAgfSk7XG4gIGNvbnRlbnQucHVzaCguLi5mb3JtYXR0ZWRTdHJpbmcuc3BsaXQoJ1xcbicpKTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBSZXBvIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZVJlYWRtZSBmcm9tICcuLi9yZWFkbWUtd3JpdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJQmFkZ2Uge1xuICBhbHQ6IHN0cmluZztcbiAgaW1nOiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUJhZGdlcyh0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIGNvbnN0IGVuYWJsZVZlcnNpb25pbmcgPSBpbnB1dHMuY29uZmlnLmdldCgndmVyc2lvbmluZzpiYWRnZXMnKTtcbiAgY29uc3QgYmFkZ2VzOiBJQmFkZ2VbXSA9IFtdO1xuICBjb25zdCByZXBvczogUmVwbyA9IHtcbiAgICBvd25lcjogaW5wdXRzLmNvbmZpZy5nZXQoJ293bmVyJyksXG4gICAgcmVwbzogaW5wdXRzLmNvbmZpZy5nZXQoJ3JlcG8nKSxcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhdGUgZ2l0aHViIGJhZGdlcy5cbiAgICogQHBhcmFtIGdpdGh1YklkXG4gICAqL1xuICBmdW5jdGlvbiBnaXRodWJCYWRnZXMoKTogSUJhZGdlW10ge1xuICAgIGNvbnN0IHJlcG9VcmwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb3Mub3duZXJ9LyR7cmVwb3MucmVwb31gO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGltZzogYGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2Rpc3BsYXlfbmFtZT10YWcmc29ydD1zZW12ZXImbG9nbz1naXRodWImc3R5bGU9ZmxhdC1zcXVhcmVgLFxuICAgICAgICBhbHQ6ICdSZWxlYXNlJyxcbiAgICAgICAgdXJsOiBgJHtyZXBvVXJsfS9yZWxlYXNlcy9sYXRlc3RgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1nOiBgaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvcmVsZWFzZS1kYXRlLyR7cmVwb3Mub3duZXJ9LyR7cmVwb3MucmVwb30/ZGlzcGxheV9uYW1lPXRhZyZzb3J0PXNlbXZlciZsb2dvPWdpdGh1YiZzdHlsZT1mbGF0LXNxdWFyZWAsXG4gICAgICAgIGFsdDogJ1JlbGVhc2UnLFxuICAgICAgICB1cmw6IGAke3JlcG9Vcmx9L3JlbGVhc2VzL2xhdGVzdGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWc6IGBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2xvZ289Z2l0aHViJnN0eWxlPWZsYXQtc3F1YXJlYCxcbiAgICAgICAgYWx0OiAnQ29tbWl0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltZzogYGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2lzc3Vlcy8ke3JlcG9zLm93bmVyfS8ke3JlcG9zLnJlcG99P2xvZ289Z2l0aHViJnN0eWxlPWZsYXQtc3F1YXJlYCxcbiAgICAgICAgYWx0OiAnT3BlbiBJc3N1ZXMnLFxuICAgICAgICB1cmw6IGAke3JlcG9Vcmx9L2lzc3Vlc2AsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWc6IGBodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9kb3dubG9hZHMvJHtyZXBvcy5vd25lcn0vJHtyZXBvcy5yZXBvfS90b3RhbD9sb2dvPWdpdGh1YiZzdHlsZT1mbGF0LXNxdWFyZWAsXG4gICAgICAgIGFsdDogJ0Rvd25sb2FkcycsXG4gICAgICB9LFxuICAgIF07XG4gIH1cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGJhZGdlLlxuICAgKi9cbiAgZnVuY3Rpb24gZ2VuZXJhdGVCYWRnZShpdGVtOiBJQmFkZ2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhZGdlVGVtcGxhdGUgPSBgPGltZyBzcmM9XCIke2l0ZW0uaW1nfVwiIGFsdD1cIiR7aXRlbS5hbHQgfHwgJyd9XCIgLz5gO1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHtpdGVtLnVybH1cIj4ke2JhZGdlVGVtcGxhdGV9PC9hPmA7XG4gICAgfVxuICAgIHJldHVybiBiYWRnZVRlbXBsYXRlO1xuICB9XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYWxsIGJhZGdlcy5cbiAgICovXG4gIGZ1bmN0aW9uIGdlbmVyYXRlQmFkZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBiYWRnZUFycmF5ID0gW107XG4gICAgZm9yIChjb25zdCBiIG9mIGJhZGdlcykge1xuICAgICAgYmFkZ2VBcnJheS5wdXNoKGdlbmVyYXRlQmFkZ2UoYikpO1xuICAgIH1cbiAgICByZXR1cm4gW2JhZGdlQXJyYXkuam9pbignJyldO1xuICB9XG5cbiAgbG9nLnN0YXJ0KCk7XG5cbiAgLy8gQWRkIEdpdGh1YiBiYWRnZXNcbiAgaWYgKGVuYWJsZVZlcnNpb25pbmcpIHtcbiAgICBiYWRnZXMucHVzaCguLi5naXRodWJCYWRnZXMoKSk7XG4gIH1cbiAgY29uc3QgY29udGVudCA9IGdlbmVyYXRlQmFkZ2VzKCk7XG4gIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICBsb2cuc3VjY2VzcygpO1xufVxuIiwgImltcG9ydCB0eXBlIElucHV0cyBmcm9tICcuLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi4vbG9ndGFzayc7XG5pbXBvcnQgdXBkYXRlUmVhZG1lIGZyb20gJy4uL3JlYWRtZS13cml0ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB1cGRhdGVEZXNjcmlwdGlvbih0b2tlbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzayh0b2tlbik7XG4gIC8vIEJ1aWxkIHRoZSBuZXcgUkVBRE1FXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZ1tdID0gW107XG4gIC8vIEJ1aWxkIHRoZSBuZXcgZGVzY3JpcHRpb24gc2VjdGlvblxuICBpZiAoaW5wdXRzPy5hY3Rpb24/LmRlc2NyaXB0aW9uKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgY29uc3QgZGVzYzogc3RyaW5nID0gaW5wdXRzLmFjdGlvbi5kZXNjcmlwdGlvblxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2VBbGwoJ1xcclxcbicsICdcXG4nKSAvLyBDb252ZXJ0IENSIHRvIExGXG4gICAgICAucmVwbGFjZUFsbCgvICsvZywgJyAnKSAvLyAgICBTcXVhc2ggY29uc2VjdXRpdmUgc3BhY2VzXG4gICAgICAucmVwbGFjZUFsbCgnIFxcbicsICdcXG4nKSAvLyAgU3F1YXNoIHNwYWNlIGZvbGxvd2VkIGJ5IG5ld2xpbmVcbiAgICAgIC5yZXBsYWNlQWxsKCdcXG5cXG4nLCAnPGJyIC8+Jyk7IC8vIGNvbnZlcnQgZG91YmxlIHJldHVybiB0byBhIGJyZWFrXG5cbiAgICBsb2cuaW5mbyhgV3JpdGluZyAke2Rlc2MubGVuZ3RofSBjaGFyYWN0ZXJzIHRvIHRoZSBkZXNjcmlwdGlvbiBzZWN0aW9uYCk7XG4gICAgY29udGVudC5wdXNoKGRlc2MpO1xuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH1cbn1cbiIsICJleHBvcnQgdHlwZSBNYXJrZG93bkFycmF5Um93VHlwZSA9IHN0cmluZ1tdW107XG5leHBvcnQgdHlwZSBNYXJrZG93bkFycmF5SXRlbVR5cGUgPSBzdHJpbmc7XG4vKipcbiAqIEZpbGxzIHRoZSB3aWR0aCBvZiB0aGUgY2VsbC5cbiAqIEBwYXJhbSB0ZXh0XG4gKiBAcGFyYW0gd2lkdGhcbiAqIEBwYXJhbSBwYWRkaW5nU3RhcnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxXaWR0aCh0ZXh0OiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIHBhZGRpbmdTdGFydDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICAnICcucmVwZWF0KHBhZGRpbmdTdGFydCkgKyB0ZXh0ICsgJyAnLnJlcGVhdChNYXRoLm1heCgxLCB3aWR0aCAtIHRleHQubGVuZ3RoIC0gcGFkZGluZ1N0YXJ0KSlcbiAgKTtcbn1cbi8qKlxuICogRXNjYXBlIGEgdGV4dCBzbyBpdCBjYW4gYmUgdXNlZCBpbiBhIG1hcmtkb3duIHRhYmxlXG4gKiBAcGFyYW0gdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya2Rvd25Fc2NhcGVUYWJsZUNlbGwodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZUFsbCgnXFxuJywgJzxiciAvPicpLnJlcGxhY2VBbGwoJ3wnLCAnXFxcXHwnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtkb3duRXNjYXBlSW5saW5lQ29kZShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyByZXBsYWNlIGdyYXZlIGFjY2VudHMgd2l0aCA8Y29kZT4gSFRNTCBlbGVtZW50IHRvIHJlc29sdmUgdW5pY29kZSBjaGFyYWN0ZXIgaW4gbWFya2Rvd25cbiAgLy8gbGV0IGlzQ2xvc2luZ1RhZyA9IGZhbHNlO1xuICByZXR1cm4gY29udGVudC5yZXBsYWNlQWxsKC8oW1xccypfXXxeKWAoW15gXSspYChbXFxzKl9dfCQpL2csICckMTxjb2RlPiQyPC9jb2RlPiQzJyk7XG5cbiAgLy8gPy5mb3JFYWNoKChtYXRjaCkgPT4ge1xuICAvLyAgIGlmICghaXNDbG9zaW5nVGFnKSB7XG4gIC8vICAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKG1hdGNoLCAnPGNvZGU+Jyk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UobWF0Y2gsICc8L2NvZGU+Jyk7XG4gIC8vICAgfVxuICAvLyAgIGlzQ2xvc2luZ1RhZyA9ICFpc0Nsb3NpbmdUYWc7XG4gIC8vIH0pO1xuICAvLyByZXR1cm4gY29udGVudFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXJyYXlPZkFycmF5c1RvTWFya2Rvd25UYWJsZShwcm92aWRlZFRhYmxlQ29udGVudDogTWFya2Rvd25BcnJheVJvd1R5cGUpOiBzdHJpbmcge1xuICBjb25zdCB0YWJsZUNvbnRlbnQ6IE1hcmtkb3duQXJyYXlSb3dUeXBlID0gW107XG4gIGNvbnN0IG91dHB1dFN0cmluZ3M6IHN0cmluZ1tdID0gW107XG4gIC8vIENsb25lIHRoZSBhcnJheXMgc28gd2UgZG9uJ3QgbW9kaWZ5IHRoZSBvcmlnaW5hbFxuICBmb3IgKGNvbnN0IHJvd0Egb2YgcHJvdmlkZWRUYWJsZUNvbnRlbnQpIHtcbiAgICB0YWJsZUNvbnRlbnQucHVzaChbLi4ucm93QV0gYXMgc3RyaW5nW10pO1xuICB9XG4gIGNvbnN0IG1heFJvd3MgPSB0YWJsZUNvbnRlbnQubGVuZ3RoO1xuICBsZXQgbWF4Q29scyA9IDA7XG4gIGxldCBtaW5Db2xzID0gMDtcbiAgLy8gRmluZCB0aGUgbWF4IGFuZCBtaW4gY29sdW1ucyBzbyB3ZSBjYW4gcGFkIHRoZSByb3dzXG4gIC8vIGZvciAoY29uc3QgW2ksIGVdIG9mIHRhYmxlQ29udGVudC5lbnRyaWVzKCkpIHtcbiAgbGV0IHRibElkeCA9IDA7XG4gIGZvciAoY29uc3QgZSBvZiB0YWJsZUNvbnRlbnQpIHtcbiAgICBpZiAodGFibGVDb250ZW50W3RibElkeF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbnVtQ29scyA9IGUubGVuZ3RoO1xuICAgICAgaWYgKG51bUNvbHMgPiBtYXhDb2xzKSB7XG4gICAgICAgIG1heENvbHMgPSBudW1Db2xzO1xuICAgICAgfVxuICAgICAgaWYgKG51bUNvbHMgPCBtaW5Db2xzIHx8IG1pbkNvbHMgPT09IDApIHtcbiAgICAgICAgbWluQ29scyA9IG51bUNvbHM7XG4gICAgICB9XG4gICAgfVxuICAgIHRibElkeCArPSAxO1xuICB9XG4gIGlmIChtYXhDb2xzICE9PSBtaW5Db2xzKSB7XG4gICAgbGV0IGNudElkeCA9IDA7XG4gICAgZm9yIChjb25zdCBlIG9mIHRhYmxlQ29udGVudCkge1xuICAgICAgaWYgKHRhYmxlQ29udGVudFtjbnRJZHhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGFibGVDb250ZW50W2NudElkeF0gPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBtYXhDb2xzIH0pLmZpbGwoJycpIGFzIHN0cmluZ1tdO1xuICAgICAgfSBlbHNlIGlmIChlLmxlbmd0aCA8IG1heENvbHMpIHtcbiAgICAgICAgdGFibGVDb250ZW50W2NudElkeF0gPSBbXG4gICAgICAgICAgLi4uZSxcbiAgICAgICAgICAuLi5BcnJheS5mcm9tKHsgbGVuZ3RoOiBtYXhDb2xzIC0gZS5sZW5ndGggfSkuZmlsbCgndW5kZWZpbmVkJyksXG4gICAgICAgIF0gYXMgc3RyaW5nW107XG4gICAgICB9XG4gICAgICBjbnRJZHggKz0gMTtcbiAgICB9XG4gIH1cbiAgY29uc3QgbWFya2Rvd25BcnJheVJvd3NMZW5ndGggPSBtYXhSb3dzICsgMTtcbiAgY29uc3QgbWFya2Rvd25BcnJheUVudHJpZXNMZW5ndGggPSBtYXhDb2xzICogMiArIDE7XG4gIGNvbnN0IG1hcmtkb3duQXJyYXlzOiBNYXJrZG93bkFycmF5Um93VHlwZSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IG1hcmtkb3duQXJyYXlSb3dzTGVuZ3RoIH0pLmZpbGwoXG4gICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogbWFya2Rvd25BcnJheUVudHJpZXNMZW5ndGggfSkuZmlsbCgnfCcgYXMgc3RyaW5nKSBhcyBzdHJpbmdbXSxcbiAgKSBhcyBNYXJrZG93bkFycmF5Um93VHlwZTtcbiAgbGV0IGkgPSAwO1xuICBmb3IgKGNvbnN0IHJvdyBvZiBtYXJrZG93bkFycmF5cykge1xuICAgIGxldCBjb2wgPSAwO1xuXG4gICAgY29uc3QgaWR4ID0gaSA+IDEgPyBpIC0gMSA6IDA7XG4gICAgY29uc3QgZGF0YVJvdyA9IHRhYmxlQ29udGVudFtpZHhdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7XG4gICAgICBsZXQgY29udGVudCA9IG1hcmtkb3duRXNjYXBlVGFibGVDZWxsKGRhdGFSb3dbY29sXSA/PyAnJyk7XG5cbiAgICAgIGNvbnRlbnQgPSBtYXJrZG93bkVzY2FwZUlubGluZUNvZGUoY29udGVudCk7XG5cbiAgICAgIGlmIChqICUgMiA9PT0gMSkge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIG1hcmtkb3duQXJyYXlzW2ldW2pdID0gYCAqKiR7Y29udGVudC50cmltKCl9KiogYDtcbiAgICAgICAgfSBlbHNlIGlmIChpID09PSAxKSB7XG4gICAgICAgICAgbWFya2Rvd25BcnJheXNbaV1bal0gPSAnLS0tJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtYXJrZG93bkFycmF5c1tpXVtqXSA9IGAgJHtjb250ZW50LnRyaW0oKX0gYDtcbiAgICAgICAgfVxuICAgICAgICBjb2wgKz0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgb3V0cHV0U3RyaW5ncy5wdXNoKGAke21hcmtkb3duQXJyYXlzW2ldLmpvaW4oJycpfVxcbmApO1xuICAgIGkgKz0gMTtcbiAgfVxuXG4gIHJldHVybiBvdXRwdXRTdHJpbmdzLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBBcnJheU9mQXJyYXlzVG9NYXJrZG93blRhYmxlO1xuIiwgImltcG9ydCB7IGNvbHVtbkhlYWRlciwgcm93SGVhZGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IG1hcmtkb3duZXIgZnJvbSAnLi4vbWFya2Rvd25lcic7XG5pbXBvcnQgdXBkYXRlUmVhZG1lIGZyb20gJy4uL3JlYWRtZS13cml0ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB1cGRhdGVJbnB1dHModG9rZW46IHN0cmluZywgaW5wdXRzOiBJbnB1dHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW4pO1xuICAvLyBCdWlsZCB0aGUgbmV3IFJFQURNRVxuICBjb25zdCBjb250ZW50OiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBtYXJrZG93bkFycmF5OiBzdHJpbmdbXVtdID0gW107XG4gIGNvbnN0IHRpdGxlQXJyYXkgPSBbJ0lucHV0JywgJ0Rlc2NyaXB0aW9uJywgJ0RlZmF1bHQnLCAnUmVxdWlyZWQnXTtcbiAgY29uc3QgdGl0bGVzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHQgb2YgdGl0bGVBcnJheSkge1xuICAgIHRpdGxlcy5wdXNoKGNvbHVtbkhlYWRlcih0KSk7XG4gIH1cbiAgbWFya2Rvd25BcnJheS5wdXNoKHRpdGxlcyk7XG4gIGNvbnN0IHZhcnMgPSBpbnB1dHMuYWN0aW9uLmlucHV0cztcbiAgY29uc3QgdEkgPSB2YXJzID8gT2JqZWN0LmtleXModmFycykubGVuZ3RoIDogMDtcbiAgaWYgKHRJID4gMCkge1xuICAgIGxvZy5zdGFydCgpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhcnMpKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YXJzW2tleV07XG5cbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IHZhbHVlcz8uZGVzY3JpcHRpb24gPz8gJyc7XG5cbiAgICAgIC8vIENoZWNrIGlmIG9ubHkgZmlyc3QgbGluZSBzaG91bGQgYmUgYWRkZWQgKG9ubHkgc3ViamVjdCB3aXRob3V0IGJvZHkpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBkZXNjcmlwdGlvbi5tYXRjaCgnKC4qPylcXG5cXG4oW1NzXSopJyk7XG4gICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIGRlc2NyaXB0aW9uID0gbWF0Y2hlc1sxXSB8fCBkZXNjcmlwdGlvbjtcbiAgICAgIH1cblxuICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi50cmltKCkucmVwbGFjZSgnXFxuJywgJzxiciAvPicpO1xuXG4gICAgICBjb25zdCByb3c6IHN0cmluZ1tdID0gW1xuICAgICAgICByb3dIZWFkZXIoa2V5KSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIHZhbHVlcz8uZGVmYXVsdCA/IGBcXGAke3ZhbHVlcy5kZWZhdWx0fVxcYGAgOiAnJyxcbiAgICAgICAgdmFsdWVzPy5yZXF1aXJlZCA/ICcqKnRydWUqKicgOiAnX19mYWxzZV9fJyxcbiAgICAgIF07XG4gICAgICBsb2cuZGVidWcoSlNPTi5zdHJpbmdpZnkocm93KSk7XG4gICAgICBtYXJrZG93bkFycmF5LnB1c2gocm93KTtcbiAgICB9XG4gICAgY29udGVudC5wdXNoKG1hcmtkb3duZXIobWFya2Rvd25BcnJheSkpO1xuICAgIGxvZy5pbmZvKGBBY3Rpb24gaGFzICR7dEl9IHRvdGFsICR7dG9rZW59YCk7XG4gICAgYXdhaXQgdXBkYXRlUmVhZG1lKGNvbnRlbnQsIHRva2VuLCBpbnB1dHMucmVhZG1lUGF0aCk7XG4gICAgbG9nLnN1Y2Nlc3MoKTtcbiAgfSBlbHNlIHtcbiAgICBsb2cuZGVidWcoYEFjdGlvbiBoYXMgbm8gJHt0b2tlbn1gKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IGNvbHVtbkhlYWRlciwgcm93SGVhZGVyIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IG1hcmtkb3duZXIgZnJvbSAnLi4vbWFya2Rvd25lcic7XG5pbXBvcnQgdXBkYXRlUmVhZG1lIGZyb20gJy4uL3JlYWRtZS13cml0ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiB1cGRhdGVPdXRwdXRzKHRva2VuOiBzdHJpbmcsIGlucHV0czogSW5wdXRzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKHRva2VuKTtcblxuICAvLyBCdWlsZCB0aGUgbmV3IFJFQURNRVxuICBjb25zdCBjb250ZW50OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IG1hcmtkb3duQXJyYXk6IHN0cmluZ1tdW10gPSBbXTtcbiAgY29uc3QgdGl0bGVBcnJheSA9IFsnT3V0cHV0JywgJ0Rlc2NyaXB0aW9uJ107XG4gIGNvbnN0IHRpdGxlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCB0IG9mIHRpdGxlQXJyYXkpIHtcbiAgICB0aXRsZXMucHVzaChjb2x1bW5IZWFkZXIodCkpO1xuICB9XG4gIG1hcmtkb3duQXJyYXkucHVzaCh0aXRsZXMpO1xuICBjb25zdCB2YXJzID0gaW5wdXRzLmFjdGlvbi5vdXRwdXRzO1xuICBjb25zdCB0SSA9IHZhcnMgPyBPYmplY3Qua2V5cyh2YXJzKS5sZW5ndGggOiAwO1xuICBpZiAodEkgPiAwKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFycykpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHZhcnNba2V5XTtcblxuICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdmFsdWVzPy5kZXNjcmlwdGlvbiA/PyAnJztcblxuICAgICAgLy8gQ2hlY2sgaWYgb25seSBmaXJzdCBsaW5lIHNob3VsZCBiZSBhZGRlZCAob25seSBzdWJqZWN0IHdpdGhvdXQgYm9keSlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgICAgY29uc3QgbWF0Y2hlcyA9IC8oLio/KVxcblxcbihbU3NdKikvLmV4ZWMoZGVzY3JpcHRpb24pO1xuICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPj0gMikge1xuICAgICAgICBkZXNjcmlwdGlvbiA9IG1hdGNoZXNbMV0gfHwgZGVzY3JpcHRpb247XG4gICAgICB9XG5cbiAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24udHJpbSgpLnJlcGxhY2UoJ1xcbicsICc8YnIgLz4nKTtcbiAgICAgIGNvbnN0IHJvdzogc3RyaW5nW10gPSBbcm93SGVhZGVyKGtleSksIGRlc2NyaXB0aW9uXTtcblxuICAgICAgbG9nLmRlYnVnKEpTT04uc3RyaW5naWZ5KHJvdykpO1xuICAgICAgbWFya2Rvd25BcnJheS5wdXNoKHJvdyk7XG4gICAgfVxuICAgIGNvbnRlbnQucHVzaChtYXJrZG93bmVyKG1hcmtkb3duQXJyYXkpKTtcbiAgICBsb2cuaW5mbyhgQWN0aW9uIGhhcyAke3RJfSB0b3RhbCAke3Rva2VufWApO1xuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH0gZWxzZSB7XG4gICAgbG9nLmRlYnVnKGBBY3Rpb24gaGFzIG5vICR7dG9rZW59YCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZVJlYWRtZSBmcm9tICcuLi9yZWFkbWUtd3JpdGVyJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVGl0bGUodG9rZW46IHN0cmluZywgaW5wdXRzOiBJbnB1dHMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgbG9nID0gbmV3IExvZ1Rhc2sodG9rZW4pO1xuICAvLyBCdWlsZCB0aGUgbmV3IFJFQURNRVxuICBjb25zdCBjb250ZW50OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgbmFtZSA9ICcnO1xuICBpZiAoaW5wdXRzLmFjdGlvbi5uYW1lKSB7XG4gICAgbG9nLnN0YXJ0KCk7XG4gICAgbmFtZSA9IGlucHV0cy5hY3Rpb24ubmFtZTtcblxuICAgIGxvZy5pbmZvKGBXcml0aW5nICR7bmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMgdG8gdGhlIHRpdGxlYCk7XG4gICAgY29uc3QgdGl0bGUgPSBgIyAke2lucHV0cy5jb25maWcuZ2V0KCd0aXRsZV9wcmVmaXgnKSBhcyBzdHJpbmd9JHtpbnB1dHMuYWN0aW9uLm5hbWV9YDtcbiAgICBsb2cuaW5mbyhgVGl0bGU6ICR7dGl0bGV9YCk7XG4gICAgLy8gQnVpbGQgdGhlIG5ldyB1c2FnZSBzZWN0aW9uXG4gICAgY29udGVudC5wdXNoKHRpdGxlKTtcblxuICAgIGF3YWl0IHVwZGF0ZVJlYWRtZShjb250ZW50LCB0b2tlbiwgaW5wdXRzLnJlYWRtZVBhdGgpO1xuICAgIGxvZy5zdWNjZXNzKCk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBnZXRDdXJyZW50VmVyc2lvblN0cmluZyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHR5cGUgSW5wdXRzIGZyb20gJy4uL2lucHV0cyc7XG5pbXBvcnQgTG9nVGFzayBmcm9tICcuLi9sb2d0YXNrJztcbmltcG9ydCB7IHdyYXBEZXNjcmlwdGlvbiB9IGZyb20gJy4uL3ByZXR0aWVyJztcbmltcG9ydCByZWFkbWVXcml0ZXIgZnJvbSAnLi4vcmVhZG1lLXdyaXRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVVzYWdlKHRva2VuOiBzdHJpbmcsIGlucHV0czogSW5wdXRzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKHRva2VuKTtcbiAgbG9nLnN0YXJ0KCk7XG4gIGNvbnN0IGFjdGlvbk5hbWUgPSBgJHtpbnB1dHMuY29uZmlnLmdldCgnb3duZXInKSBhcyBzdHJpbmd9LyR7aW5wdXRzLmNvbmZpZy5nZXQoJ3JlcG8nKX1gO1xuICBsb2cuaW5mbyhgQWN0aW9uIG5hbWU6ICR7YWN0aW9uTmFtZX1gKTtcbiAgY29uc3QgdmVyc2lvblN0cmluZzogc3RyaW5nID0gZ2V0Q3VycmVudFZlcnNpb25TdHJpbmcoaW5wdXRzKTtcblxuICBsb2cuaW5mbyhgVmVyc2lvbiBzdHJpbmc6ICR7dmVyc2lvblN0cmluZ31gKTtcblxuICBjb25zdCBhY3Rpb25SZWZlcmVuY2UgPSBgJHthY3Rpb25OYW1lfUAke3ZlcnNpb25TdHJpbmd9YDtcblxuICBpZiAoIWFjdGlvblJlZmVyZW5jZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGFjdGlvblJlZmVyZW5jZSBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgLy8gQnVpbGQgdGhlIG5ldyBSRUFETUVcbiAgY29uc3QgY29udGVudDogc3RyaW5nW10gPSBbXTtcbiAgLy8gQnVpbGQgdGhlIG5ldyB1c2FnZSBzZWN0aW9uXG4gIGNvbnRlbnQucHVzaCgnYGBgeWFtbCcsIGAtIHVzZXM6ICR7YWN0aW9uUmVmZXJlbmNlfWAsICcgIHdpdGg6Jyk7XG5cbiAgY29uc3QgaW5wID0gaW5wdXRzLmFjdGlvbi5pbnB1dHM7XG4gIGxldCBmaXJzdElucHV0ID0gdHJ1ZTtcbiAgaWYgKGlucCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGlucCkpIHtcbiAgICAgIGNvbnN0IGlucHV0ID0gaW5wW2tleV07XG4gICAgICBpZiAoaW5wdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBMaW5lIGJyZWFrIGJldHdlZW4gaW5wdXRzXG4gICAgICAgIGlmICghZmlyc3RJbnB1dCkge1xuICAgICAgICAgIGNvbnRlbnQucHVzaCgnJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb25zdHJhaW4gdGhlIHdpZHRoIG9mIHRoZSBkZXNjcmlwdGlvbiwgYW5kIGFwcGVuZCBpdFxuICAgICAgICB3cmFwRGVzY3JpcHRpb24oaW5wdXQuZGVzY3JpcHRpb24sIGNvbnRlbnQsICcgICAgIyAnKTtcblxuICAgICAgICBpZiAoaW5wdXQuZGVmYXVsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQXBwZW5kIGJsYW5rIGxpbmUgaWYgZGVzY3JpcHRpb24gaGFkIHBhcmFncmFwaHNcbiAgICAgICAgICBpZiAoaW5wdXQuZGVzY3JpcHRpb24/LnRyaW1FbmQoKS5tYXRjaCgvXFxuICpcXHI/XFxuLykpIHtcbiAgICAgICAgICAgIGNvbnRlbnQucHVzaCgnICAgICMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBEZWZhdWx0XG4gICAgICAgICAgY29udGVudC5wdXNoKGAgICAgIyBEZWZhdWx0OiAke2lucHV0LmRlZmF1bHR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnB1dCBuYW1lXG4gICAgICAgIGNvbnRlbnQucHVzaChgICAgICR7a2V5fTogJydgKTtcblxuICAgICAgICBmaXJzdElucHV0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29udGVudC5wdXNoKCdgYGBcXG4nKTtcblxuICBhd2FpdCByZWFkbWVXcml0ZXIoY29udGVudCwgdG9rZW4sIGlucHV0cy5yZWFkbWVQYXRoKTtcbiAgbG9nLnN1Y2Nlc3MoKTtcbn1cbiIsICJpbXBvcnQgdHlwZSBJbnB1dHMgZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCBMb2dUYXNrIGZyb20gJy4uL2xvZ3Rhc2snO1xuaW1wb3J0IHVwZGF0ZUJhZGdlcyBmcm9tICcuL3VwZGF0ZS1iYWRnZXMnO1xuaW1wb3J0IHVwZGF0ZURlc2NyaXB0aW9uIGZyb20gJy4vdXBkYXRlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB1cGRhdGVJbnB1dHMgZnJvbSAnLi91cGRhdGUtaW5wdXRzJztcbmltcG9ydCB1cGRhdGVPdXRwdXRzIGZyb20gJy4vdXBkYXRlLW91dHB1dHMnO1xuaW1wb3J0IHVwZGF0ZVRpdGxlIGZyb20gJy4vdXBkYXRlLXRpdGxlJztcbmltcG9ydCB1cGRhdGVVc2FnZSBmcm9tICcuL3VwZGF0ZS11c2FnZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVNlY3Rpb24oc2VjdGlvbjogc3RyaW5nLCBpbnB1dHM6IElucHV0cyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBsb2cgPSBuZXcgTG9nVGFzaygndXBkYXRlU2VjdGlvbicpO1xuICB0cnkge1xuICAgIHN3aXRjaCAoc2VjdGlvbikge1xuICAgICAgY2FzZSAnYmFkZ2VzJzoge1xuICAgICAgICBhd2FpdCB1cGRhdGVCYWRnZXMoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd1c2FnZSc6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlVXNhZ2Uoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd0aXRsZSc6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlVGl0bGUoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkZXNjcmlwdGlvbic6IHtcbiAgICAgICAgYXdhaXQgdXBkYXRlRGVzY3JpcHRpb24oc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdpbnB1dHMnOiB7XG4gICAgICAgIGF3YWl0IHVwZGF0ZUlucHV0cyhzZWN0aW9uLCBpbnB1dHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ291dHB1dHMnOiB7XG4gICAgICAgIGF3YWl0IHVwZGF0ZU91dHB1dHMoc2VjdGlvbiwgaW5wdXRzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgdW5rbm93biBzZWN0aW9uICR7c2VjdGlvbn1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoZXJyb3IgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIGVycm9yLm1lc3NhZ2UpIGxvZy5mYWlsKGVycm9yLm1lc3NhZ2UgYXMgc3RyaW5nKTtcbiAgfVxufVxuIiwgImltcG9ydCBJbnB1dHMgZnJvbSAnLi9pbnB1dHMnO1xuaW1wb3J0IExvZ1Rhc2sgZnJvbSAnLi9sb2d0YXNrJztcbmltcG9ydCBzYXZlIGZyb20gJy4vc2F2ZSc7XG5pbXBvcnQgdXBkYXRlU2VjdGlvbiBmcm9tICcuL3NlY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IGlucHV0cyA9IG5ldyBJbnB1dHMoKTtcbi8vIFRoaXMgc2NyaXB0IHJlYnVpbGRzIHRoZSB1c2FnZSBzZWN0aW9uIGluIHRoZSBSRUFETUUubWQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBhY3Rpb24ueW1sXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZURvY3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZyA9IG5ldyBMb2dUYXNrKCdnZW5lcmF0aW5nIHJlYWRtZScpO1xuICB0cnkge1xuICAgIGNvbnN0IHNlY3Rpb25zUHJvbWlzZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgaW5wdXRzLnNlY3Rpb25zKSB7XG4gICAgICBzZWN0aW9uc1Byb21pc2VzLnB1c2godXBkYXRlU2VjdGlvbihzZWN0aW9uLCBpbnB1dHMpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zUHJvbWlzZXMpLnRoZW4oKCkgPT4gc2F2ZShpbnB1dHMpKTtcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmIChlcnJvciAmJiAnbWVzc2FnZScgaW4gZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkgbG9nLmVycm9yKGVycm9yLm1lc3NhZ2UgYXMgc3RyaW5nKTtcbiAgfVxufVxuIiwgIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IGdlbmVyYXRlRG9jcyBmcm9tICcuL2dlbmVyYXRlLWRvY3MnO1xuXG5nZW5lcmF0ZURvY3MoKTtcbiJdLAogICJtYXBwaW5ncyI6ICI7b2VBRUEsSUFBQUEsR0FBb0Isc0JBQ3BCQyxFQUFzQix3QkFHdEJDLEdBQXVCLG9CQ0x2QixJQUFBQyxFQUFvQixzQkFFcEJDLEVBQXNCLHNCQ0h0QixJQUFBQyxFQUFzQiw0QkFDdEJDLEVBQTRCLG9CQUM1QkMsRUFBdUIseUJBRWpCQyxHQUFXLEVBQ1hDLEVBQWMsRUFDZEMsR0FBWSxFQUNaQyxFQUFXLEVBQ1hDLEVBQVksRUFDWkMsR0FBVyxFQUNYQyxFQUFtQixVQUNuQkMsRUFBTixNQUFNQyxDQUFRLENBQ1osS0FFQSxPQUFPLGdCQUE4QyxDQUFDLEVBRXRELE9BQU8sWUFBYyxFQUVyQixZQUFZQyxFQUFjLENBQ3hCLEtBQUssS0FBT0EsRUFBSyxLQUFLLEVBQ2xCRCxFQUFRLGdCQUFnQixLQUFLLElBQUksSUFBTSxTQUN6Q0EsRUFBUSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUksR0FFekMsQ0FFQSxJQUFJLFNBQW1CLENBQ3JCLE9BQU9BLEVBQVEsZ0JBQWdCLEtBQUssSUFBSSxHQUFLLEVBQy9DLENBRUEsSUFBSSxRQUFRRSxFQUFnQixDQUMxQkYsRUFBUSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUlFLENBQ3ZDLENBRUEsTUFBTSxRQUNKQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUFhZCxHQUNFLENBQ1hZLEVBQUssT0FBU0osRUFBUSxjQUN4QkEsRUFBUSxZQUFjSSxFQUFLLFFBRTdCLElBQUlHLEVBQ0osT0FBUUgs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QVdOLEVBQU8sU0FDM0JLLEVBQWlCLEtBQUtFLEVBQWNELEVBQVNOLENBQU0sQ0FBQyxFQUV0RCxPQUFPLFFBQVEsSUFBSUssQ0FBZ0IsRUFBRSxLQUFLLElBQU1HLEVBQUtSLENBQU0sQ0FBQyxDQUM5RCxPQUFTUyxFQUFZLENBQ2ZBLEdBQVMsWUFBYUEsR0FBU0EsRUFBTSxTQUFTTixFQUFJLE1BQU1NLEVBQU0sT0FBaUIsQ0FDckYsQ0FDRixDQ2RBQyxFQUFhIiwKICAibmFtZXMiOiBbImZzIiwgInBhdGgiLCAibmNvbmYiLCAiZnMiLCAieWFtbCIsICJjb3JlIiwgImNoYWxrQ2xhc3MiLCAiZW1vamkiLCAiTk9fR1JPVVAiLCAiU1RBUlRfR1JPVVAiLCAiRU5EX0dST1VQIiwgIklTX0VSUk9SIiwgIklTX0ZBSUxFRCIsICJJU19USVRMRSIsICJjaGFsayIsICJMb2dUYXNrIiwgIl9Mb2dUYXNrIiwgIm5hbWUiLCAidmFsdWUiLCAiZW1vamlTdHIiLCAic3RlcCIsICJkZXNjcmlwdGlvbiIsICJzdGFydEdyb3VwIiwgImRlc2MiLCAibXNnIiwgImlzRXJyb3JpbmciLCAiaW5ncm91cCIsICJtc2d0eXBlIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJBY3Rpb24iLCAiYWN0aW9uUGF0aCIsICJsb2ciLCAibG9ndGFza19kZWZhdWx0IiwgInRtcEFjdGlvbllhbWwiLCAiYWN0aW9uWWFtbCIsICJmcyIsICJ1bmljb2RlV29yZE1hdGNoIiwgInRpdGxlY2FzZSIsICJ0ZXh0IiwgInVuaWNvZGVXb3JkTWF0Y2giLCAidHh0IiwgInJlcG9zaXRvcnlGaW5kZXIiLCAiaW5wdXRSZXBvIiwgImNvbnRleHQiLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJyZXN1bHQiLCAiZmlsZUNvbnRlbnQiLCAicGF0dGVybiIsICJyZXN1bHRzIiwgImVycm9yIiwgImNvbHVtbkhlYWRlciIsICJ2YWx1ZSIsICJub3JtYWxpc2VkSGVhZGVyIiwgInRpdGxlY2FzZSIsICJyb3dIZWFkZXIiLCAiZ2V0Q3VycmVudFZlcnNpb25TdHJpbmciLCAiaW5wdXRzIiwgInZlcnNpb25TdHJpbmciLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJvUmlkZSIsICJwYWNrYWdlVmVyc2lvbiIsICJlcnJvciIsICJ3b3JraW5nRGlyZWN0b3J5IiwgImxvZyIsICJsb2d0YXNrX2RlZmF1bHQiLCAid29ya2luZ0RpcmVjdG9yeSIsICJnaXRodWJFdmVudFBhdGgiLCAiZ2l0aHViRXZlbnQiLCAiY29uZmlnRmlsZU5hbWUiLCAicGF0aHNBY3Rpb24iLCAicGF0aHNSZWFkbWUiLCAiY29uZmlnS2V5cyIsICJJbnB1dHMiLCAicmVwb3NpdG9yeURldGFpbCIsICJyZXBvc2l0b3J5RmluZGVyIiwgIm9iaiIsICJuZXdPYmoiLCAia2V5UGFyc2VkIiwgImsiLCAiYWN0aW9uUGF0aCIsICJBY3Rpb24iLCAic2F2ZSIsICJpbnB1dHMiLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJrIiwgImNvbmZpZ0tleXMiLCAiZXJyIiwgImZzIiwgImltcG9ydF9ub2RlX29zIiwgInN0YXJ0VG9rZW5Gb3JtYXQiLCAiZW5kVG9rZW5Gb3JtYXQiLCAiaW1wb3J0X3ByZXR0aWVyIiwgImZvcm1hdE1hcmtkb3duIiwgInZhbHVlIiwgImZpbGVwYXRoIiwgIndyYXBEZXNjcmlwdGlvbiIsICJjb250ZW50IiwgInByZWZpeCIsICJ2YWx1ZVdpdGhvdXRQcmVmaXgiLCAiZm9ybWF0dGVkU3RyaW5nIiwgInJlYWRtZVdyaXRlciIsICJjb250ZW50IiwgInRva2VuTmFtZSIsICJyZWFkbWVQYXRoIiwgImxvZyIsICJsb2d0YXNrX2RlZmF1bHQiLCAib3JpZ2luYWxSZWFkbWUiLCAic3RhcnRUb2tlbiIsICJzdGFydFRva2VuRm9ybWF0IiwgImVuZFRva2VuIiwgImVuZFRva2VuRm9ybWF0IiwgInN0YXJ0VG9rZW5JbmRleCIsICJlbmRUb2tlbkluZGV4IiwgIm5ld1JlYWRtZSIsICJsZW4iLCAiZmlsZUNvbnRlbnQiLCAiZm9ybWF0dGVkUmVhZG1lIiwgImZvcm1hdE1hcmtkb3duIiwgInVwZGF0ZUJhZGdlcyIsICJ0b2tlbiIsICJpbnB1dHMiLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJlbmFibGVWZXJzaW9uaW5nIiwgImJhZGdlcyIsICJyZXBvcyIsICJnaXRodWJCYWRnZXMiLCAicmVwb1VybCIsICJnZW5lcmF0ZUJhZGdlIiwgIml0ZW0iLCAiYmFkZ2VUZW1wbGF0ZSIsICJnZW5lcmF0ZUJhZGdlcyIsICJiYWRnZUFycmF5IiwgImIiLCAiY29udGVudCIsICJyZWFkbWVXcml0ZXIiLCAidXBkYXRlRGVzY3JpcHRpb24iLCAidG9rZW4iLCAiaW5wdXRzIiwgImxvZyIsICJsb2d0YXNrX2RlZmF1bHQiLCAiY29udGVudCIsICJkZXNjIiwgInJlYWRtZVdyaXRlciIsICJtYXJrZG93bkVzY2FwZVRhYmxlQ2VsbCIsICJ0ZXh0IiwgIm1hcmtkb3duRXNjYXBlSW5saW5lQ29kZSIsICJjb250ZW50IiwgIkFycmF5T2ZBcnJheXNUb01hcmtkb3duVGFibGUiLCAicHJvdmlkZWRUYWJsZUNvbnRlbnQiLCAidGFibGVDb250ZW50IiwgIm91dHB1dFN0cmluZ3MiLCAicm93QSIsICJtYXhSb3dzIiwgIm1heENvbHMiLCAibWluQ29scyIsICJ0YmxJZHgiLCAiZSIsICJudW1Db2xzIiwgImNudElkeCIsICJtYXJrZG93bkFycmF5Um93c0xlbmd0aCIsICJtYXJrZG93bkFycmF5RW50cmllc0xlbmd0aCIsICJtYXJrZG93bkFycmF5cyIsICJpIiwgInJvdyIsICJjb2wiLCAiaWR4IiwgImRhdGFSb3ciLCAiaiIsICJtYXJrZG93bmVyX2RlZmF1bHQiLCAidXBkYXRlSW5wdXRzIiwgInRva2VuIiwgImlucHV0cyIsICJsb2ciLCAibG9ndGFza19kZWZhdWx0IiwgImNvbnRlbnQiLCAibWFya2Rvd25BcnJheSIsICJ0aXRsZUFycmF5IiwgInRpdGxlcyIsICJ0IiwgImNvbHVtbkhlYWRlciIsICJ2YXJzIiwgInRJIiwgImtleSIsICJ2YWx1ZXMiLCAiZGVzY3JpcHRpb24iLCAibWF0Y2hlcyIsICJyb3ciLCAicm93SGVhZGVyIiwgIm1hcmtkb3duZXJfZGVmYXVsdCIsICJyZWFkbWVXcml0ZXIiLCAidXBkYXRlT3V0cHV0cyIsICJ0b2tlbiIsICJpbnB1dHMiLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJjb250ZW50IiwgIm1hcmtkb3duQXJyYXkiLCAidGl0bGVBcnJheSIsICJ0aXRsZXMiLCAidCIsICJjb2x1bW5IZWFkZXIiLCAidmFycyIsICJ0SSIsICJrZXkiLCAiZGVzY3JpcHRpb24iLCAibWF0Y2hlcyIsICJyb3ciLCAicm93SGVhZGVyIiwgIm1hcmtkb3duZXJfZGVmYXVsdCIsICJyZWFkbWVXcml0ZXIiLCAidXBkYXRlVGl0bGUiLCAidG9rZW4iLCAiaW5wdXRzIiwgImxvZyIsICJsb2d0YXNrX2RlZmF1bHQiLCAiY29udGVudCIsICJuYW1lIiwgInRpdGxlIiwgInJlYWRtZVdyaXRlciIsICJ1cGRhdGVVc2FnZSIsICJ0b2tlbiIsICJpbnB1dHMiLCAibG9nIiwgImxvZ3Rhc2tfZGVmYXVsdCIsICJhY3Rpb25OYW1lIiwgInZlcnNpb25TdHJpbmciLCAiZ2V0Q3VycmVudFZlcnNpb25TdHJpbmciLCAiYWN0aW9uUmVmZXJlbmNlIiwgImNvbnRlbnQiLCAiaW5wIiwgImZpcnN0SW5wdXQiLCAia2V5IiwgImlucHV0IiwgIndyYXBEZXNjcmlwdGlvbiIsICJyZWFkbWVXcml0ZXIiLCAidXBkYXRlU2VjdGlvbiIsICJzZWN0aW9uIiwgImlucHV0cyIsICJsb2ciLCAibG9ndGFza19kZWZhdWx0IiwgInVwZGF0ZUJhZGdlcyIsICJ1cGRhdGVVc2FnZSIsICJ1cGRhdGVUaXRsZSIsICJ1cGRhdGVEZXNjcmlwdGlvbiIsICJ1cGRhdGVJbnB1dHMiLCAidXBkYXRlT3V0cHV0cyIsICJlcnJvciIsICJpbnB1dHMiLCAiSW5wdXRzIiwgImdlbmVyYXRlRG9jcyIsICJsb2ciLCAibG9ndGFza19kZWZhdWx0IiwgInNlY3Rpb25zUHJvbWlzZXMiLCAic2VjdGlvbiIsICJ1cGRhdGVTZWN0aW9uIiwgInNhdmUiLCAiZXJyb3IiLCAiZ2VuZXJhdGVEb2NzIl0KfQo= diff --git a/package.json b/package.json index 821bcb22..ba767040 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,11 @@ "actions", "github", "node16", + "node20", "documentation", "github-actions", - "generator" + "generator", + "readme-generator" ], "author": "Jamie Nelson ", "license": "APACHE", @@ -34,12 +36,12 @@ "auto:next": "[ -d dist ] && git add -f dist", "auto:publish": "[ -d dist ] && git add -f dist", "auto:version": "yarn run generate-docs", - "build": "rimraf dist out;esbuild --bundle src/index.ts --out-extension:.js=.cjs --color=true --sourcemap=inline --platform=node --outdir=dist --target=node16 && chmod +x dist/index.cjs && yarn postbuild", + "build": "rimraf dist out;node ./scripts/esbuild.mjs && chmod +x dist/index.js", "build:docker": "run-script-os", - "build:docker:default": "docker run --rm -t -v $(pwd):/work -w /work node:16-alpine sh -c 'yarn run build'", - "build:docker:win32": "docker run --rm -t -v \"%cd%\":/work -w /work node:16-alpine sh -c \"yarn run build\"", - "build:inputs": "rimraf dist out;esbuild --bundle src/testInputs.ts --out-extension:.js=.cjs --color=true --sourcemap=inline --platform=node --outdir=dist --target=node16 && chmod -R +x dist/", - "bump": "yarn version -i patch && yarn run release", + "build:docker:default": "docker run --rm -t -v $(pwd):/work -w /work node:20-alpine sh -c 'yarn run build'", + "build:docker:win32": "docker run --rm -t -v \"%cd%\":/work -w /work node:20-alpine sh -c \"yarn run build\"", + "build:inputs": "esbuild --bundle src/testInputs.ts --out-extension:.js=.cjs --color=true --sourcemap=inline --platform=node --outdir=dist --target=node20 && chmod -R +x dist/ && node ./dist/testInputs.cjs", + "bump": "yarn npm version -i patch && yarn run release", "bump:minor": "yarn version -i minor && yarn run release", "cachefolder": "corepack yarn config get cacheFolder", "clean": "rimraf dist", @@ -55,13 +57,13 @@ "lint:markdown:fix": "yarn run lint:markdown --fix", "postbuild": "echo postbuild;tsc --project tsconfig.json --emitDeclarationOnly --declaration --outFile dist/index.d.ts", "postinstall": "echo '✨ Successfully Installed'", - "postpublish:manual": "git push --follow-tags --set-upstream origin $branch", - "postversion:manuasl": "git push --tags origin && git push origin", - "pre-commit": "lint-staged", + "postpublish:manual": "git push --follow-tags --set-upstream origin $branch && auto release", + "postversion:manual": "git push --tags origin && git push origin", + "pre-commit": "yarn build;lint-staged", "prepare": "[ -n ${GITHUB_ACTIONS:-} ] || husky install", "release:script": "./release.sh", "release:post": "yarn npm publish --access public --tag v${npm_package_version} --tag latest", - "test": "NODE_ENV=testing jest", + "test": "NODE_ENV=testing jest --runInBand", "test-ci": "NODE_ENV=testing jest --ci --reporters=default --reporters=jest-junit", "version:manual": "echo 'Run versioning commands';echo \"::set-output name=tag::v${npm_package_version}\"" }, @@ -113,15 +115,11 @@ "@actions/github": "^5.1.1", "async": "^3.2.4", "chalk": "^4", - "date-format": "^4.0.14", - "editorconfig": "^2.0.0", "js-yaml": "^4.1.0", "nconf": "github:indexzero/nconf", "node-emoji": "^2.1.0", "prettier": "^3.0.3", - "reflect-metadata": "^0.1.13", - "tslib": "^2.6.2", - "yaml": "^2.3.2" + "tslib": "^2.6.2" }, "devDependencies": { "@auto-it/all-contributors": "^11.0.4", @@ -144,10 +142,8 @@ "@prettier/plugin-ruby": "^4.0.2", "@prettier/plugin-xml": "^3.2.1", "@semantic-release/commit-analyzer": "^11.0.0", - "@swc/helpers": "^0.5.2", - "@swc/wasm": "^1.3.89", "@trunkio/launcher": "^1.2.7", - "@tsconfig/node16-strictest-esm": "^1.0.3", + "@tsconfig/node20": "^20.1.2", "@types/babel__preset-env": "^7", "@types/esm": "^3", "@types/jest": "^29.5.5", @@ -155,7 +151,6 @@ "@types/nconf": "^0.10.4", "@types/node": "^20.7.0", "@types/node-emoji": "^1.8.2", - "@types/prettier-package-json": "^2", "@types/rimraf": "^3", "@types/yargs": "^17.0.25", "@typescript-eslint/eslint-plugin": "^6.7.3", @@ -165,9 +160,10 @@ "commitizen": "^4.3.0", "conventional-commits": "^1.6.0", "cz-conventional-changelog": "^3.3.0", + "date-format": "^4.0.14", "dotenv": "^16.3.1", "esbuild": "^0.19.3", - "esbuild-plugin-eslint": "^0.3.6", + "esbuild-node-externals": "^1.9.0", "eslint": "^8.50.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.0.0", @@ -175,7 +171,6 @@ "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-actions": "^2.0.0", "eslint-plugin-array-func": "^4.0.0", - "eslint-plugin-editorconfig": "^4.0.3", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.28.1", "eslint-plugin-jest": "^27.4.0", @@ -200,17 +195,19 @@ "lint-staged": "^14.0.1", "markdownlint-cli": "^0.37.0", "prettier-eslint": "^15.0.1", - "prettier-plugin-package": "^1.3.1", "prettier-plugin-properties": "^0.2.0", "pretty-quick": "^3.1.3", + "reflect-metadata": "^0.1.13", "regenerator-runtime": "^0.14.0", "rimraf": "^5.0.4", "run-script-os": "^1.1.6", "semantic-release": "^22.0.5", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", + "types-package-json": "^2.0.39", "typescript": "^5.2.2", - "typescript-eslint-language-service": "^5.0.5" + "typescript-eslint-language-service": "^5.0.5", + "yaml": "^2.3.2" }, "jest-junit": { "suiteNameTemplate": "{filepath}", @@ -224,7 +221,7 @@ "eslint --cache --fix" ] }, - "packageManager": "yarn@3.2.2", + "packageManager": "yarn@3.6.3", "auto": { "baseBranch": "main", "author": { @@ -237,7 +234,6 @@ "exec", {} ], - "git-tag", [ "npm", { diff --git a/release.sh b/release.sh deleted file mode 100755 index 49930423..00000000 --- a/release.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -git pull -git fetch --tags -git push --tags -git push - -bump="${1:-patch}" -newtag="$(git semver "${bump}" --dryrun)" -yarntag="$(jq -r '.version' package.json)" -if [[ ${yarntag} != "${newtag#v}" ]]; then -yarn version -i "${newtag#v}" || true -fi -yarn build -git add dist package.json yarn.lock .yarn README.md -git commit -m "build(release): bump version to ${newtag}" --no-verify -git semver "${bump}" - -# newtag2="$(git semver get)" -# stub_major="${newtag%%\.*}" -# stub_major_minor="${newtag%\.*}" - -# git tag -d "${stub_major}" 2>/dev/null || true -# git tag -d "${stub_major_minor}" 2>/dev/null || true -# git tag -a "${stub_major}" -m "Release ${newtag}" -# git tag -a "${stub_major_minor}" -m "Release ${newtag}" - -# git push origin ":${stub_major}" 2>/dev/null || true -# git push origin ":${stub_major_minor}" 2>/dev/null || true -yarn postversion -yarn release:post diff --git a/src/editorconfig.ts b/scripts/editorconfig.ts similarity index 98% rename from src/editorconfig.ts rename to scripts/editorconfig.ts index d61dab79..da643713 100644 --- a/src/editorconfig.ts +++ b/scripts/editorconfig.ts @@ -1,6 +1,6 @@ import * as editorconfig from 'editorconfig'; -import LogTask from './logtask'; +import LogTask from '../src/logtask'; const log = new LogTask('Editorconfig'); export const DEFAULT_EDITORCONFIG_MAX_LINE_LENGTH = 80; diff --git a/scripts/esbuild.mjs b/scripts/esbuild.mjs new file mode 100644 index 00000000..b2d08ad1 --- /dev/null +++ b/scripts/esbuild.mjs @@ -0,0 +1,17 @@ +import * as esbuild from 'esbuild'; +import { nodeExternalsPlugin } from 'esbuild-node-externals'; + +await esbuild + .build({ + entryPoints: ['./src/index.ts'], + outdir: 'dist/', + bundle: true, + minify: true, + treeShaking: true, + sourcemap: 'inline', + platform: 'node', + format: 'cjs', + target: 'node20', + plugins: [nodeExternalsPlugin()], + }) + .catch(() => process.exit(1)); diff --git a/scripts/formatter.ts b/scripts/formatter.ts new file mode 100644 index 00000000..a44076b4 --- /dev/null +++ b/scripts/formatter.ts @@ -0,0 +1,36 @@ +/* eslint-disable promise/no-nesting */ +import * as prettier from 'prettier'; + +class Formatter { + max_line_length = 80; + + constructor(readmePath: string) { + prettier + .resolveConfigFile() + .then(async (cwd) => { + const opts: prettier.ResolveConfigOptions = cwd ? { config: cwd } : {}; + opts.editorconfig = true; + return prettier + .resolveConfig(readmePath, opts) + .then((config) => config || {}) + .then((config: prettier.Options) => { + if ('max_line_length' in config && config.max_line_length) { + const val: string | number = config.max_line_length as any; + if (typeof val === 'number') { + this.max_line_length = val; + return val; + } + } + return -1; + }) + .catch(() => { + // ignore + }); + }) + .catch(() => { + // ignore + }); + } +} + +export default new Formatter(''); diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 00000000..bd6dd837 --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +git pull +git fetch --tags +git push --tags +git push + +RELEASE_BRANCH="${RELEASE_BRANCH:-main}" +current_branch="$(git branch --show-current)" + +if [[ ${current_branch} != "${RELEASE_BRANCH}" ]]; then + # we want to create a canary release, where we can leave all the files in place. + true +else + # we want to create a release branch, where we can delete all the unneeded files + true +fi +bump="${1:-bui}" +# newtag="$(git semver "${bump}" --dryrun)" +yarntag="$(jq -r '.version' package.json)" +if [[ ${yarntag} != "${newtag#v}" ]]; then + yarn version -i "${newtag#v}" || true +fi +if yarn build; then + git add -f dist/ package.json yarn.lock .yarn README.md + git commit -m "build(release): bump version to ${newtag}" --no-verify + git semver "${bump}" +else + echo "build failed" + exit 1 +fi +# newtag2="$(git semver get)" +# stub_major="${newtag%%\.*}" +# stub_major_minor="${newtag%\.*}" + +# git tag -d "${stub_major}" 2>/dev/null || true +# git tag -d "${stub_major_minor}" 2>/dev/null || true +# git tag -a "${stub_major}" -m "Release ${newtag}" +# git tag -a "${stub_major_minor}" -m "Release ${newtag}" + +# git push origin ":${stub_major}" 2>/dev/null || true +# git push origin ":${stub_major_minor}" 2>/dev/null || true +yarn postversion +yarn release:post diff --git a/src/formatter.ts b/src/formatter.ts deleted file mode 100644 index e3c5f78c..00000000 --- a/src/formatter.ts +++ /dev/null @@ -1,11 +0,0 @@ -import ec from './editorconfig'; - -class Formatter { - max_line_length = 80; - - constructor() { - this.max_line_length = ec.props.max_line_length; - } -} - -export default new Formatter(); diff --git a/src/helpers.ts b/src/helpers.ts index 4129893d..132468c2 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -1,8 +1,8 @@ import * as fs from 'node:fs'; import type { Context } from '@actions/github/lib/context'; +import type { PackageJson } from 'types-package-json'; -import ec from './editorconfig'; import type Inputs from './inputs'; import LogTask from './logtask'; @@ -60,8 +60,8 @@ export function prefixParser(text: string | undefined): string | undefined { export function wrapText(text: string | undefined, content: string[], prepend = ''): string[] { // Constrain the width of the description if (!text) return content; + const width = 80; - const width = ec.props.max_line_length; let description = text .trim() .replaceAll('\r\n', '\n') // Convert CR to LF @@ -113,11 +113,11 @@ export function repositoryFinder( log.info(`repositoryFinder using input ${inputRepo} and returns ${JSON.stringify(result)}`); return result; } - if (process.env['GITHUB_REPOSITORY']) { - [result.owner, result.repo] = process.env['GITHUB_REPOSITORY'].split('/') as [string, string]; + if (process.env.GITHUB_REPOSITORY) { + [result.owner, result.repo] = process.env.GITHUB_REPOSITORY.split('/') as [string, string]; log.info( `repositoryFinder using GITHUB_REPOSITORY ${ - process.env['GITHUB_REPOSITORY'] + process.env.GITHUB_REPOSITORY } and returns ${JSON.stringify(result)}`, ); return result; @@ -128,14 +128,14 @@ export function repositoryFinder( log.info( `repositoryFinder using GITHUB_REPOSITORY ${ - process.env['GITHUB_REPOSITORY'] + process.env.GITHUB_REPOSITORY } and returns ${JSON.stringify(result)}`, ); return result; } - if (process.env['INPUT_OWNER'] && process.env['INPUT_REPO']) { - result.owner = process.env['INPUT_OWNER']; - result.repo = process.env['INPUT_REPO']; + if (process.env.INPUT_OWNER && process.env.INPUT_REPO) { + result.owner = process.env.INPUT_OWNER; + result.repo = process.env.INPUT_REPO; return result; } try { @@ -143,18 +143,18 @@ export function repositoryFinder( const pattern = /url( )?=( )?.*github\.com[/:](?.*)\/(?.*)\.git/; interface OwnerRepoInterface extends RegExpExecArray { - groups: { + groups?: { [key: string]: string; - owner?: string; - repo?: string; + owner: string; + repo: string; }; } const results = fileContent.match(pattern) as OwnerRepoInterface; if (results !== null) { log.debug(JSON.stringify(results.groups)); - result.owner = results.groups.owner ?? ''; - result.repo = results.groups.repo ?? ''; + result.owner = results.groups?.owner ?? ''; + result.repo = results.groups?.repo ?? ''; } return result; } catch (error) { @@ -194,10 +194,27 @@ export function rowHeader(value: string): string { export function getCurrentVersionString(inputs: Inputs): string { let versionString = ''; + const log = new LogTask('getCurrentVersionString'); if (inputs.config.get('versioning:enabled')) { + log.debug('version string in generated example is enabled'); const oRide = inputs.config.get('versioning:override') as string; - versionString = - oRide && oRide.length > 0 ? oRide : process.env['npm_package_version'] ?? '0.0.0'; + let packageVersion = process.env.npm_package_version; + log.debug(`version string in env:npm_package_version is ${packageVersion ?? 'not found'}`); + if (!packageVersion) { + log.debug('version string in env:npm_package_version is not found, trying to use git'); + try { + fs.accessSync('package.json'); + const packageData: Partial = JSON.parse( + fs.readFileSync('package.json', 'utf8'), + ); + packageVersion = packageData.version; + } catch (error) { + log.debug(`package.json not found. ${error}`); + } + log.debug(`version string in package.json:version is ${packageVersion ?? 'not found'}`); + } + + versionString = oRide && oRide.length > 0 ? oRide : packageVersion ?? '0.0.0'; if ( versionString && @@ -208,5 +225,6 @@ export function getCurrentVersionString(inputs: Inputs): string { } else { versionString = inputs.config.get('versioning:branch') as string; } + log.debug(`version to use in generated example is ${versionString}`); return versionString; } diff --git a/src/inputs.ts b/src/inputs.ts index 0b731db6..b77a7468 100644 --- a/src/inputs.ts +++ b/src/inputs.ts @@ -13,7 +13,7 @@ import { workingDirectory } from './working-directory'; const log = new LogTask('inputs'); process.chdir(workingDirectory()); -const githubEventPath = process.env['GITHUB_EVENT_PATH'] ?? ''; +const githubEventPath = process.env.GITHUB_EVENT_PATH ?? ''; let githubEvent: Context | null = null; try { githubEvent = JSON.parse(fs.readFileSync(githubEventPath, 'utf8')) as Context; @@ -49,7 +49,7 @@ export default class Inputs { constructor() { this.config = new nconf.Provider(); const repositoryDetail = repositoryFinder(null, githubEvent); - if (process.env['GITHUB_ACTION']) { + if (process.env.GITHUB_ACTION) { log.info('running in GitHub action'); } this.config.use('memory'); diff --git a/src/logtask/index.ts b/src/logtask/index.ts index a4c210a8..9640cccd 100644 --- a/src/logtask/index.ts +++ b/src/logtask/index.ts @@ -77,12 +77,12 @@ class LogTask { } let msg: string; - if (this.ingroup && !process.env['GITHUB_ACTIONS']) { + if (this.ingroup && !process.env.GITHUB_ACTIONS) { const indentStr = [...Array.from({ length: LogTask.indentWidth }).fill(' ')].join(''); msg = `${indentStr} ${emojiStr}: ${this.name} > ${desc}`; } else { const stepStr = [ - ...step, + step, ...Array.from({ length: LogTask.indentWidth - step.length }).fill(' '), ].join(''); @@ -111,7 +111,7 @@ class LogTask { } const isErroring = startGroup === IS_ERROR || startGroup === IS_FAILED; - if (process.env['GITHUB_ACTIONS']) { + if (process.env.GITHUB_ACTIONS) { switch (startGroup) { case START_GROUP: { core.startGroup(msg); @@ -145,7 +145,7 @@ class LogTask { } debug(description = ''): void { - if (process.env['DEBUG'] === 'true') { + if (process.env.DEBUG !== undefined) { this.logStep('👁️‍🗨️', 'DEBUG', description); } } @@ -168,7 +168,7 @@ class LogTask { const desc = description === '' ? `Completed ${this.name}.` : description; if (ingroup) { this.ingroup = false; - if (process.env['GITHUB_ACTIONS']) { + if (process.env.GITHUB_ACTIONS) { core.endGroup(); } } @@ -179,11 +179,11 @@ class LogTask { const desc = description === '' ? `Failed ${this.name}.` : description; if (ingroup) { this.ingroup = false; - if (process.env['GITHUB_ACTIONS']) { + if (process.env.GITHUB_ACTIONS) { core.endGroup(); } } - const msgtype = process.env['GITHUB_ACTIONS'] ? IS_FAILED : IS_ERROR; + const msgtype = process.env.GITHUB_ACTIONS ? IS_FAILED : IS_ERROR; this.logStep(emoji.get('x') ?? '', 'FAILURE', desc, msgtype); } diff --git a/src/markdowner/index.ts b/src/markdowner/index.ts index 78a03d5f..f3dbd198 100644 --- a/src/markdowner/index.ts +++ b/src/markdowner/index.ts @@ -37,7 +37,7 @@ export function markdownEscapeInlineCode(content: string): string { export function ArrayOfArraysToMarkdownTable(providedTableContent: MarkdownArrayRowType): string { const tableContent: MarkdownArrayRowType = []; - const outputStrings = []; + const outputStrings: string[] = []; // Clone the arrays so we don't modify the original for (const rowA of providedTableContent) { tableContent.push([...rowA] as string[]); @@ -46,8 +46,10 @@ export function ArrayOfArraysToMarkdownTable(providedTableContent: MarkdownArray let maxCols = 0; let minCols = 0; // Find the max and min columns so we can pad the rows - for (const [i, e] of tableContent.entries()) { - if (tableContent[i] !== undefined) { + // for (const [i, e] of tableContent.entries()) { + let tblIdx = 0; + for (const e of tableContent) { + if (tableContent[tblIdx] !== undefined) { const numCols = e.length; if (numCols > maxCols) { maxCols = numCols; @@ -56,17 +58,20 @@ export function ArrayOfArraysToMarkdownTable(providedTableContent: MarkdownArray minCols = numCols; } } + tblIdx += 1; } if (maxCols !== minCols) { - for (const [i, e] of tableContent.entries()) { - if (tableContent[i] === undefined) { - tableContent[i] = Array.from({ length: maxCols }).fill('') as string[]; + let cntIdx = 0; + for (const e of tableContent) { + if (tableContent[cntIdx] === undefined) { + tableContent[cntIdx] = Array.from({ length: maxCols }).fill('') as string[]; } else if (e.length < maxCols) { - tableContent[i] = [ + tableContent[cntIdx] = [ ...e, ...Array.from({ length: maxCols - e.length }).fill('undefined'), ] as string[]; } + cntIdx += 1; } } const markdownArrayRowsLength = maxRows + 1; @@ -74,28 +79,30 @@ export function ArrayOfArraysToMarkdownTable(providedTableContent: MarkdownArray const markdownArrays: MarkdownArrayRowType = Array.from({ length: markdownArrayRowsLength }).fill( Array.from({ length: markdownArrayEntriesLength }).fill('|' as string) as string[], ) as MarkdownArrayRowType; - for (const [i, row] of markdownArrays.entries()) { + let i = 0; + for (const row of markdownArrays) { let col = 0; const idx = i > 1 ? i - 1 : 0; - const dataRow = tableContent[idx] as string[]; - for (const [j] of row.entries()) { + const dataRow = tableContent[idx]; + for (let j = 0; j < row.length; j++) { let content = markdownEscapeTableCell(dataRow[col] ?? ''); content = markdownEscapeInlineCode(content); if (j % 2 === 1) { if (i === 0) { - (markdownArrays[i] as string[])[j] = ` **${content.trim()}** `; + markdownArrays[i][j] = ` **${content.trim()}** `; } else if (i === 1) { - (markdownArrays[i] as string[])[j] = '---'; + markdownArrays[i][j] = '---'; } else { - (markdownArrays[i] as string[])[j] = ` ${content.trim()} `; + markdownArrays[i][j] = ` ${content.trim()} `; } col += 1; } } - outputStrings.push(`${(markdownArrays[i] as string[]).join('')}\n`); + outputStrings.push(`${markdownArrays[i].join('')}\n`); + i += 1; } return outputStrings.join(''); diff --git a/src/prettier.ts b/src/prettier.ts index fed10667..384fdd6a 100644 --- a/src/prettier.ts +++ b/src/prettier.ts @@ -18,3 +18,18 @@ export async function formatMarkdown(value: string, filepath?: string): Promise< ...fp, }); } +export async function wrapDescription( + value: string | undefined, + content: string[], + prefix: string, +): Promise { + if (!value) return content ?? []; + const valueWithoutPrefix = prefix ? value.replace(prefix, '') : value; + const formattedString = await format(`${prefix ?? ''}${valueWithoutPrefix}`, { + semi: false, + parser: 'yaml', + proseWrap: 'always', + }); + content.push(...formattedString.split('\n')); + return content; +} diff --git a/src/sections/update-description.ts b/src/sections/update-description.ts index 06f53dd7..7c0d8f36 100644 --- a/src/sections/update-description.ts +++ b/src/sections/update-description.ts @@ -14,7 +14,7 @@ export default async function updateDescription(token: string, inputs: Inputs): .replaceAll('\r\n', '\n') // Convert CR to LF .replaceAll(/ +/g, ' ') // Squash consecutive spaces .replaceAll(' \n', '\n') // Squash space followed by newline - .replace('\n', '
'); // convert double return to a break + .replaceAll('\n\n', '
'); // convert double return to a break log.info(`Writing ${desc.length} characters to the description section`); content.push(desc); diff --git a/src/sections/update-outputs.ts b/src/sections/update-outputs.ts index 96105077..14cbb77d 100644 --- a/src/sections/update-outputs.ts +++ b/src/sections/update-outputs.ts @@ -28,7 +28,7 @@ export default async function updateOutputs(token: string, inputs: Inputs): Prom // Check if only first line should be added (only subject without body) // eslint-disable-next-line no-useless-escape - const matches = description.match('(.*?)\n\n([Ss]*)'); + const matches = /(.*?)\n\n([Ss]*)/.exec(description); if (matches && matches.length >= 2) { description = matches[1] || description; } diff --git a/src/sections/update-usage.ts b/src/sections/update-usage.ts index 0310e3c9..3a9037c9 100644 --- a/src/sections/update-usage.ts +++ b/src/sections/update-usage.ts @@ -1,6 +1,7 @@ -import { getCurrentVersionString, wrapText } from '../helpers'; +import { getCurrentVersionString } from '../helpers'; import type Inputs from '../inputs'; import LogTask from '../logtask'; +import { wrapDescription } from '../prettier'; import readmeWriter from '../readme-writer'; export default async function updateUsage(token: string, inputs: Inputs): Promise { @@ -35,7 +36,7 @@ export default async function updateUsage(token: string, inputs: Inputs): Promis } // Constrain the width of the description, and append it - wrapText(input.description, content, ' # '); + wrapDescription(input.description, content, ' # '); if (input.default !== undefined) { // Append blank line if description had paragraphs diff --git a/src/working-directory.ts b/src/working-directory.ts index 3b5b6f76..82d231de 100644 --- a/src/working-directory.ts +++ b/src/working-directory.ts @@ -1,4 +1,4 @@ export function workingDirectory(): string { - return process.env['GITHUB_WORKSPACE'] ?? process.env['INIT_CWD'] ?? process.cwd(); + return process.env.GITHUB_WORKSPACE ?? process.env.INIT_CWD ?? process.cwd(); } export default workingDirectory; diff --git a/tsconfig.json b/tsconfig.json index 395572cd..68f0c04a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@tsconfig/node16-strictest-esm/tsconfig.json", + "extends": "@tsconfig/node20/tsconfig.json", "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Projects */ @@ -10,7 +10,7 @@ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ @@ -22,9 +22,9 @@ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ /* Modules */ - "module": "CommonJS" /* Specify what module code is generated. */, + // "module": "node16" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, + // "moduleResolution": "node16" /* Specify how TypeScript looks up a file from a given module specifier. */, // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ @@ -67,11 +67,11 @@ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, + // "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + // "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, + // "strict": true /* Enable all strict type-checking options. */, // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ @@ -93,13 +93,14 @@ /* Completeness */ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ // "skipLibCheck": true /* Skip type checking all .d.ts files. */ - "ignoreDeprecations": "5.0", + "plugins": [ { "name": "typescript-eslint-language-service" } ] }, + "ignoreDeprecations": "5.0", "exclude": [ "./bin", "**/node_modules/**", @@ -111,7 +112,8 @@ "**/.vscode/**", "**/out/**", "**/.trunk/**", - "**/.github/**" + "**/.github/**", + "scripts/**" ], "ts-node": { // Tell ts-node CLI to install the --loader automatically, explained below diff --git a/yarn.lock b/yarn.lock index b9b6b86b..80817094 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35,21 +35,11 @@ __metadata: linkType: hard "@actions/http-client@npm:^2.0.1": - version: 2.0.1 - resolution: "@actions/http-client@npm:2.0.1" + version: 2.1.1 + resolution: "@actions/http-client@npm:2.1.1" dependencies: tunnel: ^0.0.6 - checksum: 799ec3df91e28a9da91ce6592e94f8b8923ccf6cc21a2f72c7429be5af5273f1625335411adc2a1bb222d56c852d5767214dfa6fa32a6da7e81dba8290e08f17 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.1.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" - dependencies: - "@jridgewell/gen-mapping": ^0.1.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + checksum: 5a3fd0407020a11cd3864b6c9ed8ef36912e08418df34fac675d15fc71543abb419db236ddb8fbd649f8ad8b5057bd78f1ac301f87283dfc706aa85578a90658 languageName: node linkType: hard @@ -295,16 +285,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -314,13 +295,6 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.18.8": - version: 7.18.8 - resolution: "@babel/compat-data@npm:7.18.8" - checksum: 3096aafad74936477ebdd039bcf342fba84eb3100e608f3360850fb63e1efa1c66037c4824f814d62f439ab47d25164439343a6e92e9b4357024fdf571505eb9 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.22.20, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": version: 7.22.20 resolution: "@babel/compat-data@npm:7.22.20" @@ -328,30 +302,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": - version: 7.18.10 - resolution: "@babel/core@npm:7.18.10" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.18.10 - "@babel/helper-compilation-targets": ^7.18.9 - "@babel/helper-module-transforms": ^7.18.9 - "@babel/helpers": ^7.18.9 - "@babel/parser": ^7.18.10 - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.18.10 - "@babel/types": ^7.18.10 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.1 - semver: ^6.3.0 - checksum: 3a3fcd878430a9e1cb165f755c89fff45acc4efe4dd3a2ba356e89af331cb1947886b9782d56902a49af19ba3c24f08cf638a632699b9c5a4d8305c57c6a150d - languageName: node - linkType: hard - -"@babel/core@npm:^7.23.0": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.0": version: 7.23.0 resolution: "@babel/core@npm:7.23.0" dependencies: @@ -388,18 +339,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.18.10, @babel/generator@npm:^7.7.2": - version: 7.18.12 - resolution: "@babel/generator@npm:7.18.12" - dependencies: - "@babel/types": ^7.18.10 - "@jridgewell/gen-mapping": ^0.3.2 - jsesc: ^2.5.1 - checksum: 07dd71d255144bb703a80ab0156c35d64172ce81ddfb70ff24e2be687b052080233840c9a28d92fa2c33f7ecb8a8b30aef03b807518afc53b74c7908bf8859b1 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.0": +"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2": version: 7.23.0 resolution: "@babel/generator@npm:7.23.0" dependencies: @@ -411,15 +351,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -438,20 +369,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-compilation-targets@npm:7.18.9" - dependencies: - "@babel/compat-data": ^7.18.8 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.20.2 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2a9d71e124e098a9f45de4527ddd1982349d231827d341e00da9dfb967e260ecc7662c8b62abee4a010fb34d5f07a8d2155c974e0bc1928144cee5644910621d - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" @@ -484,19 +401,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.18.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - regexpu-core: ^5.1.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2d76e660cbfd0bfcb01ca9f177f0e9091c871a6b99f68ece6bcf4ab4a9df073485bdc2d87ecdfbde44b7f3723b26d13085d0f92082adb3ae80d31b246099f10a - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.22.5": +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: @@ -524,13 +429,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - "@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" @@ -538,16 +436,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-function-name@npm:7.18.9" - dependencies: - "@babel/template": ^7.18.6 - "@babel/types": ^7.18.9 - checksum: d04c44e0272f887c0c868651be7fc3c5690531bea10936f00d4cca3f6d5db65e76dfb49e8d553c42ae1fe1eba61ccce9f3d93ba2df50a66408c8d4c3cc61cf0c - languageName: node - linkType: hard - "@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-function-name@npm:7.23.0" @@ -558,15 +446,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -585,15 +464,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def - languageName: node - linkType: hard - "@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -603,22 +473,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-module-transforms@npm:7.18.9" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.18.6 - "@babel/template": ^7.18.6 - "@babel/traverse": ^7.18.9 - "@babel/types": ^7.18.9 - checksum: af08c60ea239ff3d40eda542fceaab69de17e713f131e80ead08c975ba7a47dd55d439cb48cfb14ae7ec96704a10c989ff5a5240e52a39101cb44a49467ce058 - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-module-transforms@npm:7.23.0" @@ -643,14 +497,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.18.9 - resolution: "@babel/helper-plugin-utils@npm:7.18.9" - checksum: ebae876cd60f1fe238c7210986093845fa5c4cad5feeda843ea4d780bf068256717650376d3af2a5e760f2ed6a35c065ae144f99c47da3e54aa6cba99d8804e0 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.22.5": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 @@ -683,15 +530,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-simple-access@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: 37cd36eef199e0517845763c1e6ff6ea5e7876d6d707a6f59c9267c547a50aa0e84260ba9285d49acfaf2cfa0a74a772d92967f32ac1024c961517d40b6c16a5 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -710,15 +548,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - "@babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -728,13 +557,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.18.10": - version: 7.18.10 - resolution: "@babel/helper-string-parser@npm:7.18.10" - checksum: d554a4393365b624916b5c00a4cc21c990c6617e7f3fe30be7d9731f107f12c33229a7a3db9d829bfa110d2eb9f04790745d421640e3bd245bb412dc0ea123c1 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-string-parser@npm:7.22.5" @@ -742,13 +564,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-identifier@npm:7.18.6" - checksum: e295254d616bbe26e48c196a198476ab4d42a73b90478c9842536cf910ead887f5af6b5c4df544d3052a25ccb3614866fa808dc1e3a5a4291acd444e243c0648 - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -756,13 +571,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-option@npm:7.18.6" - checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf - languageName: node - linkType: hard - "@babel/helper-validator-option@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-validator-option@npm:7.22.15" @@ -781,17 +589,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helpers@npm:7.18.9" - dependencies: - "@babel/template": ^7.18.6 - "@babel/traverse": ^7.18.9 - "@babel/types": ^7.18.9 - checksum: d0bd8255d36bfc65dc52ce75f7fea778c70287da2d64981db4c84fbdf9581409ecbd6433deff1c81da3a5acf26d7e4c364b3a4445efacf88f4f48e77c5b34d8d - languageName: node - linkType: hard - "@babel/helpers@npm:^7.23.0": version: 7.23.1 resolution: "@babel/helpers@npm:7.23.1" @@ -803,18 +600,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.22.13": +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.22.13": version: 7.22.20 resolution: "@babel/highlight@npm:7.22.20" dependencies: @@ -825,16 +611,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.18.11": - version: 7.18.11 - resolution: "@babel/parser@npm:7.18.11" - bin: - parser: ./bin/babel-parser.js - checksum: 5ecc75b83e62ec53a947b1635a6ca75d6210d4a4f962f9f16f4239a6783f98e57f9662b598fa2fb1b8e12c0ad5c2bd86846ed0b97b85eb73dd7498b3a6d71a4b - languageName: node - linkType: hard - -"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": version: 7.23.0 resolution: "@babel/parser@npm:7.23.0" bin: @@ -1013,13 +790,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce languageName: node linkType: hard @@ -1112,13 +889,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.18.6 - resolution: "@babel/plugin-syntax-typescript@npm:7.18.6" + version: 7.22.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2cde73725ec51118ebf410bf02d78781c03fa4d3185993fcc9d253b97443381b621c44810084c5dd68b92eb8bdfae0e5b163e91b32bebbb33852383d1815c05d + checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a languageName: node linkType: hard @@ -1824,27 +1601,16 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4": - version: 7.18.9 - resolution: "@babel/runtime@npm:7.18.9" - dependencies: - regenerator-runtime: ^0.13.4 - checksum: 36dd736baba7164e82b3cc9d43e081f0cb2d05ff867ad39cac515d99546cee75b7f782018b02a3dcf5f2ef3d27f319faa68965fdfec49d4912c60c6002353a2e - languageName: node - linkType: hard - -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.18.6, @babel/template@npm:^7.3.3": - version: 7.18.10 - resolution: "@babel/template@npm:7.18.10" +"@babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4": + version: 7.23.1 + resolution: "@babel/runtime@npm:7.23.1" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.18.10 - "@babel/types": ^7.18.10 - checksum: 93a6aa094af5f355a72bd55f67fa1828a046c70e46f01b1606e6118fa1802b6df535ca06be83cc5a5e834022be95c7b714f0a268b5f20af984465a71e28f1473 + regenerator-runtime: ^0.14.0 + checksum: 0cd0d43e6e7dc7f9152fda8c8312b08321cda2f56ef53d6c22ebdd773abdc6f5d0a69008de90aa41908d00e2c1facb24715ff121274e689305c858355ff02c70 languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5": +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.15 resolution: "@babel/template@npm:7.22.15" dependencies: @@ -1855,24 +1621,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.10, @babel/traverse@npm:^7.18.9": - version: 7.18.11 - resolution: "@babel/traverse@npm:7.18.11" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.18.10 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.18.9 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.18.11 - "@babel/types": ^7.18.10 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 727409464d5cf27f33555010098ce9bb435f0648cc76e674f4fb7513522356655ba62be99c8df330982b391ccf5f0c0c23c7bd7453d4936d47e2181693fed14c - languageName: node - linkType: hard - "@babel/traverse@npm:^7.23.0": version: 7.23.0 resolution: "@babel/traverse@npm:7.23.0" @@ -1891,18 +1639,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.18.10 - resolution: "@babel/types@npm:7.18.10" - dependencies: - "@babel/helper-string-parser": ^7.18.10 - "@babel/helper-validator-identifier": ^7.18.6 - to-fast-properties: ^2.0.0 - checksum: 11632c9b106e54021937a6498138014ebc9ad6c327a07b2af3ba8700773945aba4055fd136431cbe3a500d0f363cbf9c68eb4d6d38229897c5de9d06e14c85e8 - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.0 resolution: "@babel/types@npm:7.23.0" dependencies: @@ -1928,12 +1665,12 @@ __metadata: linkType: hard "@commitlint/cli@npm:^17.7.1": - version: 17.7.1 - resolution: "@commitlint/cli@npm:17.7.1" + version: 17.7.2 + resolution: "@commitlint/cli@npm:17.7.2" dependencies: "@commitlint/format": ^17.4.4 "@commitlint/lint": ^17.7.0 - "@commitlint/load": ^17.7.1 + "@commitlint/load": ^17.7.2 "@commitlint/read": ^17.5.1 "@commitlint/types": ^17.4.4 execa: ^5.0.0 @@ -1943,7 +1680,7 @@ __metadata: yargs: ^17.0.0 bin: commitlint: cli.js - checksum: 2500a50514ab0629d3661d74e6f759f0b9b56c1992fbc101bb78a67033c6ed02a6dad3ae728f91f1f9b3034ae17e3808835957f885ab7129a421085d31f6cb23 + checksum: 7d5d86b27980135713094e44023ee7a6cc2bb1cd015f92111857e069a3127dab63d4575b507bdac2e16255aaab65da908d1f7667e8aa9de7e032d9c464ef3154 languageName: node linkType: hard @@ -1956,16 +1693,6 @@ __metadata: languageName: node linkType: hard -"@commitlint/config-validator@npm:^17.0.3": - version: 17.0.3 - resolution: "@commitlint/config-validator@npm:17.0.3" - dependencies: - "@commitlint/types": ^17.0.0 - ajv: ^8.11.0 - checksum: bc543193bbe132e1fc351bd912434a7214055e8b865ea661b016c6e05c84714d75d8dc54ac6dcc1d53e872ef3665e4a0cf0e3817cff88a01201bf0b37d23744f - languageName: node - linkType: hard - "@commitlint/config-validator@npm:^17.6.7": version: 17.6.7 resolution: "@commitlint/config-validator@npm:17.6.7" @@ -1990,13 +1717,6 @@ __metadata: languageName: node linkType: hard -"@commitlint/execute-rule@npm:^17.0.0": - version: 17.0.0 - resolution: "@commitlint/execute-rule@npm:17.0.0" - checksum: cb37e5c6e0e16bf04e8f344094146ed2de8155456191da88fb9a1b943a9b5a98e0f6ef49c55b239104eb68634df681fd3be05311bf2da0cb6b171fdd24371669 - languageName: node - linkType: hard - "@commitlint/execute-rule@npm:^17.4.0": version: 17.4.0 resolution: "@commitlint/execute-rule@npm:17.4.0" @@ -2036,34 +1756,15 @@ __metadata: languageName: node linkType: hard -"@commitlint/load@npm:>6.1.1": - version: 17.0.3 - resolution: "@commitlint/load@npm:17.0.3" - dependencies: - "@commitlint/config-validator": ^17.0.3 - "@commitlint/execute-rule": ^17.0.0 - "@commitlint/resolve-extends": ^17.0.3 - "@commitlint/types": ^17.0.0 - "@types/node": ">=12" - chalk: ^4.1.0 - cosmiconfig: ^7.0.0 - cosmiconfig-typescript-loader: ^2.0.0 - lodash: ^4.17.19 - resolve-from: ^5.0.0 - typescript: ^4.6.4 - checksum: 786b7064470b4c38577a10910ad725b4371e9f649fbcd4b6018ec4dec2b7f30bc60c6f02807b154ca59f5d5fd347f3d4a46523c9f44e324c05902a2fd29dfb17 - languageName: node - linkType: hard - -"@commitlint/load@npm:^17.7.1": - version: 17.7.1 - resolution: "@commitlint/load@npm:17.7.1" +"@commitlint/load@npm:>6.1.1, @commitlint/load@npm:^17.7.2": + version: 17.7.2 + resolution: "@commitlint/load@npm:17.7.2" dependencies: "@commitlint/config-validator": ^17.6.7 "@commitlint/execute-rule": ^17.4.0 "@commitlint/resolve-extends": ^17.6.7 "@commitlint/types": ^17.4.4 - "@types/node": 20.4.7 + "@types/node": 20.5.1 chalk: ^4.1.0 cosmiconfig: ^8.0.0 cosmiconfig-typescript-loader: ^4.0.0 @@ -2073,7 +1774,7 @@ __metadata: resolve-from: ^5.0.0 ts-node: ^10.8.1 typescript: ^4.6.4 || ^5.0.0 - checksum: 8d0e56b49a0e4dec7e8e28a2c6bc7ce985e6b8e10274aa20d0e3f6c2465fc9082d18f91bbe5c336594ebabcc4dc9668fdeaa039ef5bbfaf26ca0be423461ef61 + checksum: dda9f7efd6413309266617a5ee026df65cc8c590b86c312f5905285fcbef5ae3ec983694c145007d89402c9f728882465f016167b156f43f6ed414c3b8ca079a languageName: node linkType: hard @@ -2096,15 +1797,15 @@ __metadata: linkType: hard "@commitlint/prompt@npm:^17.7.1": - version: 17.7.1 - resolution: "@commitlint/prompt@npm:17.7.1" + version: 17.7.2 + resolution: "@commitlint/prompt@npm:17.7.2" dependencies: "@commitlint/ensure": ^17.6.7 - "@commitlint/load": ^17.7.1 + "@commitlint/load": ^17.7.2 "@commitlint/types": ^17.4.4 chalk: ^4.1.0 inquirer: ^6.5.2 - checksum: 0318a6dd94276d080f6dd0956eadba0c79f652a4e440b3d4a7576bdccac2cb453f6540fdad623be4176b883e6075d8406a7aed3a82dd66ce9461387f90a70f26 + checksum: fdf37d3deadd034962e413c345f05b9d273b4fe08c9d5540c9ad7ed9cc48916cd29be3265c379313f89b9689b79d26adf19725cc946ed84df3418b0554b03e36 languageName: node linkType: hard @@ -2121,20 +1822,6 @@ __metadata: languageName: node linkType: hard -"@commitlint/resolve-extends@npm:^17.0.3": - version: 17.0.3 - resolution: "@commitlint/resolve-extends@npm:17.0.3" - dependencies: - "@commitlint/config-validator": ^17.0.3 - "@commitlint/types": ^17.0.0 - import-fresh: ^3.0.0 - lodash: ^4.17.19 - resolve-from: ^5.0.0 - resolve-global: ^1.0.0 - checksum: 384fc59a5a8f3da2b4551b92b2734f8d22c39ba389ca31df2f7a8ea1e68e8c15b137faf4ae20529a7b826ca6a7f5e5cd30ab2c903f9d65f74d0b43dcac5f8e0c - languageName: node - linkType: hard - "@commitlint/resolve-extends@npm:^17.6.7": version: 17.6.7 resolution: "@commitlint/resolve-extends@npm:17.6.7" @@ -2178,15 +1865,6 @@ __metadata: languageName: node linkType: hard -"@commitlint/types@npm:^17.0.0": - version: 17.0.0 - resolution: "@commitlint/types@npm:17.0.0" - dependencies: - chalk: ^4.1.0 - checksum: 210636d3923f93f7cfc409eac04376b0fe50356a0e08f25a37b43d5cd9ca4363f7b03ca2e7736cbf95b62d67733fe8e1028269d35b4fddd1b3f2a653c90ca85c - languageName: node - linkType: hard - "@commitlint/types@npm:^17.4.4": version: 17.4.4 resolution: "@commitlint/types@npm:17.4.4" @@ -2219,156 +1897,156 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/android-arm64@npm:0.19.3" +"@esbuild/android-arm64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/android-arm64@npm:0.19.4" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/android-arm@npm:0.19.3" +"@esbuild/android-arm@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/android-arm@npm:0.19.4" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/android-x64@npm:0.19.3" +"@esbuild/android-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/android-x64@npm:0.19.4" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/darwin-arm64@npm:0.19.3" +"@esbuild/darwin-arm64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/darwin-arm64@npm:0.19.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/darwin-x64@npm:0.19.3" +"@esbuild/darwin-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/darwin-x64@npm:0.19.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/freebsd-arm64@npm:0.19.3" +"@esbuild/freebsd-arm64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/freebsd-arm64@npm:0.19.4" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/freebsd-x64@npm:0.19.3" +"@esbuild/freebsd-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/freebsd-x64@npm:0.19.4" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-arm64@npm:0.19.3" +"@esbuild/linux-arm64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-arm64@npm:0.19.4" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-arm@npm:0.19.3" +"@esbuild/linux-arm@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-arm@npm:0.19.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-ia32@npm:0.19.3" +"@esbuild/linux-ia32@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-ia32@npm:0.19.4" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-loong64@npm:0.19.3" +"@esbuild/linux-loong64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-loong64@npm:0.19.4" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-mips64el@npm:0.19.3" +"@esbuild/linux-mips64el@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-mips64el@npm:0.19.4" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-ppc64@npm:0.19.3" +"@esbuild/linux-ppc64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-ppc64@npm:0.19.4" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-riscv64@npm:0.19.3" +"@esbuild/linux-riscv64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-riscv64@npm:0.19.4" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-s390x@npm:0.19.3" +"@esbuild/linux-s390x@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-s390x@npm:0.19.4" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/linux-x64@npm:0.19.3" +"@esbuild/linux-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/linux-x64@npm:0.19.4" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/netbsd-x64@npm:0.19.3" +"@esbuild/netbsd-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/netbsd-x64@npm:0.19.4" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/openbsd-x64@npm:0.19.3" +"@esbuild/openbsd-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/openbsd-x64@npm:0.19.4" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/sunos-x64@npm:0.19.3" +"@esbuild/sunos-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/sunos-x64@npm:0.19.4" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/win32-arm64@npm:0.19.3" +"@esbuild/win32-arm64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/win32-arm64@npm:0.19.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/win32-ia32@npm:0.19.3" +"@esbuild/win32-ia32@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/win32-ia32@npm:0.19.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.3": - version: 0.19.3 - resolution: "@esbuild/win32-x64@npm:0.19.3" +"@esbuild/win32-x64@npm:0.19.4": + version: 0.19.4 + resolution: "@esbuild/win32-x64@npm:0.19.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2385,26 +2063,9 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.8.2 - resolution: "@eslint-community/regexpp@npm:4.8.2" - checksum: da1cb0b7b210d93b44950b0fe050dd9c6c475513d5d6dfccbb6a9502a2fe630fcb3f8becd4e284cbb293df3ac756b79c6a487b59c42b9aea510b108278ea84ee - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^1.3.0": - version: 1.3.0 - resolution: "@eslint/eslintrc@npm:1.3.0" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.3.2 - globals: ^13.15.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: a1e734ad31a8b5328dce9f479f185fd4fc83dd7f06c538e1fa457fd8226b89602a55cc6458cd52b29573b01cdfaf42331be8cfc1fec732570086b591f4ed6515 + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: 06fb839e9c756f6375cc545c2f2e05a0a64576bd6370e8e3c07983fd29a3d6e164ef4aa48a361f7d27e6713ab79c83053ff6a2ccb78748bc955e344279c4a3b6 languageName: node linkType: hard @@ -2432,24 +2093,6 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.10.4": - version: 0.10.4 - resolution: "@humanwhocodes/config-array@npm:0.10.4" - dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 - minimatch: ^3.0.4 - checksum: d480e5d57e6d787565b6cff78e27c3d1b380692d4ffb0ada7d7f5957a56c9032f034da05a3e443065dbd0671ebf4d859036ced34e96b325bbc1badbae3c05300 - languageName: node - linkType: hard - "@humanwhocodes/config-array@npm:^0.11.11": version: 0.11.11 resolution: "@humanwhocodes/config-array@npm:0.11.11" @@ -2461,13 +2104,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/gitignore-to-minimatch@npm:^1.0.2": - version: 1.0.2 - resolution: "@humanwhocodes/gitignore-to-minimatch@npm:1.0.2" - checksum: aba5c40c9e3770ed73a558b0bfb53323842abfc2ce58c91d7e8b1073995598e6374456d38767be24ab6176915f0a8d8b23eaae5c85e2b488c0dccca6d795e2ad - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -2597,15 +2233,6 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^29.0.3": - version: 29.0.3 - resolution: "@jest/expect-utils@npm:29.0.3" - dependencies: - jest-get-type: ^29.0.0 - checksum: af6fa6e0b9cdf42f5778ff0b70c2049ec768598f720ea473773e0c0bebd2416a32ecbede94cfdc95572a021eda5302a9295a5c416ad5ce155c4ec277c40129da - languageName: node - linkType: hard - "@jest/expect-utils@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect-utils@npm:29.7.0" @@ -2688,15 +2315,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^29.0.0": - version: 29.0.0 - resolution: "@jest/schemas@npm:29.0.0" - dependencies: - "@sinclair/typebox": ^0.24.1 - checksum: 41355c78f09eb1097e57a3c5d0ca11c9099e235e01ea5fa4e3953562a79a6a9296c1d300f1ba50ca75236048829e056b00685cd2f1ff8285e56fd2ce01249acb - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -2764,20 +2382,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.0.3": - version: 29.0.3 - resolution: "@jest/types@npm:29.0.3" - dependencies: - "@jest/schemas": ^29.0.0 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 3bd33e64d87a5421b860396ac7f7b9b8d5abbf0f300f4379bb20c8e3a6169fbbd078933ce0649827cd63e23330c4effeb6b222fa94e8dd0df638dfff6c1fed41 - languageName: node - linkType: hard - "@jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" @@ -2792,17 +2396,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0": +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.3 resolution: "@jridgewell/gen-mapping@npm:0.3.3" dependencies: @@ -2813,46 +2407,21 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.1.0": +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": +"@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -2869,17 +2438,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.14 - resolution: "@jridgewell/trace-mapping@npm:0.3.14" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: b9537b9630ffb631aef9651a085fe361881cde1772cd482c257fe3c78c8fd5388d681f504a9c9fe1081b1c05e8f75edf55ee10fdb58d92bbaa8dbf6a7bd6b18c - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.19 resolution: "@jridgewell/trace-mapping@npm:0.3.19" dependencies: @@ -2926,20 +2485,21 @@ __metadata: linkType: hard "@npmcli/agent@npm:^2.0.0": - version: 2.1.1 - resolution: "@npmcli/agent@npm:2.1.1" + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" dependencies: + agent-base: ^7.1.0 http-proxy-agent: ^7.0.0 https-proxy-agent: ^7.0.1 lru-cache: ^10.0.1 socks-proxy-agent: ^8.0.1 - checksum: d66ffc5a1e6266da122384e9f7cd0dcbb534eea142705f1e2aed866aa14e418f96358cccb5102c0703c9ff65cb10dbac4c8696af6498ad95b4cf634af757942c + checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 languageName: node linkType: hard -"@npmcli/arborist@npm:^7.1.0": - version: 7.1.0 - resolution: "@npmcli/arborist@npm:7.1.0" +"@npmcli/arborist@npm:^7.2.0": + version: 7.2.0 + resolution: "@npmcli/arborist@npm:7.2.0" dependencies: "@isaacs/string-locale-compare": ^1.1.0 "@npmcli/fs": ^3.1.0 @@ -2949,18 +2509,18 @@ __metadata: "@npmcli/name-from-folder": ^2.0.0 "@npmcli/node-gyp": ^3.0.0 "@npmcli/package-json": ^5.0.0 - "@npmcli/query": ^3.0.0 + "@npmcli/query": ^3.0.1 "@npmcli/run-script": ^7.0.1 bin-links: ^4.0.1 cacache: ^18.0.0 common-ancestor-path: ^1.0.1 - hosted-git-info: ^7.0.0 + hosted-git-info: ^7.0.1 json-parse-even-better-errors: ^3.0.0 json-stringify-nice: ^1.1.4 minimatch: ^9.0.0 nopt: ^7.0.0 npm-install-checks: ^6.2.0 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 npm-pick-manifest: ^9.0.0 npm-registry-fetch: ^16.0.0 npmlog: ^7.0.1 @@ -2976,13 +2536,13 @@ __metadata: walk-up-path: ^3.0.1 bin: arborist: bin/index.js - checksum: 7a5661ca8152200e0debb3b51333d25c2a211e92a6dde5f8b03143c14cbc4785f5ed7ab09a06aa4d8453506adf88505675f537ebab97af38e7976a6327a9fff4 + checksum: b2ff7e438a2a1959a72a5b43685e27cf9bd4cbf4080053b5836036148e1df7b89c84e0ed842c62bb5228d7c48aec267961274b089309a825087c6b4ce7572a47 languageName: node linkType: hard -"@npmcli/config@npm:^7.2.0": - version: 7.2.0 - resolution: "@npmcli/config@npm:7.2.0" +"@npmcli/config@npm:^8.0.0": + version: 8.0.0 + resolution: "@npmcli/config@npm:8.0.0" dependencies: "@npmcli/map-workspaces": ^3.0.2 ci-info: ^3.8.0 @@ -2992,7 +2552,7 @@ __metadata: read-package-json-fast: ^3.0.2 semver: ^7.3.5 walk-up-path: ^3.0.1 - checksum: 9dc0b6aa725f2440eef200c7a13e5d2de2636673732beca847399348db1107aef780b5a1b3a931f9c7c015478167ce7fc4f521789dda1487fa7b43891d2da79d + checksum: 13867ad19690d4b389bdaa56c1714d73291c9eb59c147ef08ff82ccddb0cd836eed0fe3c50ec268c3963e4e3fe2a7ebbb3c6e867864727cf1f28f82833d89fb9 languageName: node linkType: hard @@ -3005,16 +2565,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.1 - resolution: "@npmcli/fs@npm:2.1.1" - dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 4944a0545d38d3e6e29780eeb3cd4be6059c1e9627509d2c9ced635c53b852d28b37cdc615a2adf815b51ab8673adb6507e370401a20a7e90c8a6dc4fac02389 - languageName: node - linkType: hard - "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -3076,16 +2626,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/move-file@npm:2.0.0" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0 - languageName: node - linkType: hard - "@npmcli/name-from-folder@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/name-from-folder@npm:2.0.0" @@ -3124,7 +2664,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/query@npm:^3.0.0": +"@npmcli/query@npm:^3.0.1": version: 3.0.1 resolution: "@npmcli/query@npm:3.0.1" dependencies: @@ -3429,13 +2969,6 @@ __metadata: languageName: node linkType: hard -"@one-ini/wasm@npm:0.1.1": - version: 0.1.1 - resolution: "@one-ini/wasm@npm:0.1.1" - checksum: 11de17108eae57c797e552e36b259398aede999b4a689d78be6459652edc37f3428472410590a9d328011a8751b771063a5648dd5c4205631c55d1d58e313156 - languageName: node - linkType: hard - "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -3444,16 +2977,16 @@ __metadata: linkType: hard "@pkgr/utils@npm:^2.3.1": - version: 2.3.1 - resolution: "@pkgr/utils@npm:2.3.1" + version: 2.4.2 + resolution: "@pkgr/utils@npm:2.4.2" dependencies: cross-spawn: ^7.0.3 + fast-glob: ^3.3.0 is-glob: ^4.0.3 - open: ^8.4.0 + open: ^9.1.0 picocolors: ^1.0.0 - tiny-glob: ^0.2.9 - tslib: ^2.4.0 - checksum: 118a1971120253740121a1db0a6658c21195b7da962acf9c124b507a3df707cfc97b0b84a16edcbd4352853b182e8337da9fc6e8e3d06c60d75ae4fb42321c75 + tslib: ^2.6.0 + checksum: 24e04c121269317d259614cd32beea3af38277151c4002df5883c4be920b8e3490bb897748e844f9d46bf68230f86dabd4e8f093773130e7e60529a769a132fc languageName: node linkType: hard @@ -3529,8 +3062,8 @@ __metadata: linkType: hard "@semantic-release/github@npm:^9.0.0": - version: 9.1.0 - resolution: "@semantic-release/github@npm:9.1.0" + version: 9.2.1 + resolution: "@semantic-release/github@npm:9.2.1" dependencies: "@octokit/core": ^5.0.0 "@octokit/plugin-paginate-rest": ^9.0.0 @@ -3550,7 +3083,7 @@ __metadata: url-join: ^5.0.0 peerDependencies: semantic-release: ">=20.1.0" - checksum: 79fd9ed824d7edfa4c730dabcc236369d9ec9ca8f8d799692ee86102ffc299789e6f320dadeee08423319be8931f179eaff2bc11ee8cfd85c2dc8c01973d5245 + checksum: 40441125e0a68b18b7c58f4003fdbb18565e8d6f1dda97b083bea198092b91c4e2cdbebf34d822e72481c2530b5657bb9b9d7dfe4d7499c011d833e1e4b5506f languageName: node linkType: hard @@ -3634,13 +3167,6 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.24.1": - version: 0.24.27 - resolution: "@sinclair/typebox@npm:0.24.27" - checksum: c283de9158c0206da3d1ebd7c5f994da0b1cf86df89674da7709850300ecdceb0d4c9680dccce84b60cdcc3d8858f54df8235b250ba092726fadb2bebe720bd1 - languageName: node - linkType: hard - "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -3673,22 +3199,6 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:^0.5.2": - version: 0.5.2 - resolution: "@swc/helpers@npm:0.5.2" - dependencies: - tslib: ^2.4.0 - checksum: 51d7e3d8bd56818c49d6bfbd715f0dbeedc13cf723af41166e45c03e37f109336bbcb57a1f2020f4015957721aeb21e1a7fff281233d797ff7d3dd1f447fa258 - languageName: node - linkType: hard - -"@swc/wasm@npm:^1.3.89": - version: 1.3.89 - resolution: "@swc/wasm@npm:1.3.89" - checksum: efec3558c993ccfb501bebce4675f2e9b66f9f92ad212c383853561fa89b0588e4550f579571516ea3223a6658396186ec29948df5f032ebfc4828a8ac038448 - languageName: node - linkType: hard - "@tokenizer/token@npm:^0.3.0": version: 0.3.0 resolution: "@tokenizer/token@npm:0.3.0" @@ -3733,17 +3243,17 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node16-strictest-esm@npm:^1.0.3": - version: 1.0.3 - resolution: "@tsconfig/node16-strictest-esm@npm:1.0.3" - checksum: cc5650a1752e29f1adf5c4ff0a60e4f948c34d5a1e489a4504f3125c8b9b6f915f94dcd06e0936211a349d067469380e25f6ab461a4c0fd4a3b71c7108378fd7 +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff languageName: node linkType: hard -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.3 - resolution: "@tsconfig/node16@npm:1.0.3" - checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f +"@tsconfig/node20@npm:^20.1.2": + version: 20.1.2 + resolution: "@tsconfig/node20@npm:20.1.2" + checksum: fc126e15f0817bd328c15bd6be7972f01ef4d55ceb493c7a83ccb9dd545e39f218711f330e3df4072b116b11180c07943da2b2bfcd7adc58414cb586db52a4c8 languageName: node linkType: hard @@ -3765,57 +3275,57 @@ __metadata: linkType: hard "@types/babel__core@npm:^7.1.14": - version: 7.1.19 - resolution: "@types/babel__core@npm:7.1.19" + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 8c9fa87a1c2224cbec251683a58bebb0d74c497118034166aaa0491a4e2627998a6621fc71f8a60ffd27d9c0c52097defedf7637adc6618d0331c15adb302338 + checksum: 564fbaa8ff1305d50807ada0ec227c3e7528bebb2f8fe6b2ed88db0735a31511a74ad18729679c43eeed8025ed29d408f53059289719e95ab1352ed559a100bd languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.5 + resolution: "@types/babel__generator@npm:7.6.5" dependencies: "@babel/types": ^7.0.0 - checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + checksum: c7459f5025c4c800eaf58f4db3b24e9d736331fe7df40961d9bc49f31b46e2a3be83dc9276e8688f10a5ed752ae153ad5f1bdd45e2245bac95273730b9115ec2 languageName: node linkType: hard "@types/babel__preset-env@npm:^7": - version: 7.9.2 - resolution: "@types/babel__preset-env@npm:7.9.2" - checksum: a905ed92a3f602384966153e74a94790425e98af54e392a7fcfb5c5ded2f2a58c49a9fa64a0cb506fbffb8169ad25b56ea87983c812a4fb880f0716668c8c085 + version: 7.9.3 + resolution: "@types/babel__preset-env@npm:7.9.3" + checksum: 7e89a37c4a7ebe841e0bc610e19497fe0642d741e8651c52ea4727782e46ea47d2aaf2656927a684c6618d8981b0febc1fc8c82c4a1d84b4ec5793a283e1ef7f languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.2 + resolution: "@types/babel__template@npm:7.4.2" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + checksum: 0fe977b45a3269336c77f3ae4641a6c48abf0fa35ab1a23fb571690786af02d6cec08255a43499b0b25c5633800f7ae882ace450cce905e3060fa9e6995047ae languageName: node linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.18.0 - resolution: "@types/babel__traverse@npm:7.18.0" + version: 7.20.2 + resolution: "@types/babel__traverse@npm:7.20.2" dependencies: - "@babel/types": ^7.3.0 - checksum: 5fd7f4ea0963f9669b1bd6bd928b2d81452b98e4acfcfeb26ca4476162b87f9c1d8f66ff13567fd9f760a31ad04c36d767fa874f569aded6fb46890e379327c1 + "@babel/types": ^7.20.7 + checksum: 981340286479524436348d32373eaa3bf993c635cbf70307b4b69463eee83406a959ac4844f683911e0db8ab8d9f0025ab630dc7a8c170fee9ee74144c2a528f languageName: node linkType: hard "@types/command-line-args@npm:^5.0.0": - version: 5.2.0 - resolution: "@types/command-line-args@npm:5.2.0" - checksum: 423121d2d083765f5b78d090115f3be82d53a39cec9de63719cbd07021e6330fab19b75e2290af1f7dda84efd7964dc498eb10b2b465991de27045db95aa1eef + version: 5.2.1 + resolution: "@types/command-line-args@npm:5.2.1" + checksum: a5df8562a7a0eb7c4da218661360ff8369a63c0fd783310d1940f0ece55826d5173eeb3732bab48dbfb60b1614d61989a9d87c6cdbee04353c4df6f45387d417 languageName: node linkType: hard @@ -3827,12 +3337,12 @@ __metadata: linkType: hard "@types/eslint@npm:^8.4.2": - version: 8.4.5 - resolution: "@types/eslint@npm:8.4.5" + version: 8.44.3 + resolution: "@types/eslint@npm:8.44.3" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 428b0c971a50adb0d08621e76f21b284580a0052a31341a0e6d553f72b54cd0142d549aa1497c7e3bc56e9f6bcc27286e66e0216e1ba76d1a5ecd2279c40bc8c + checksum: 3a0d152785400cb83a887a646d9c8877468e686b6fb439635c64856b70dbe91019e588d2b32bc923cd60642bf5dca7f70b2cf61eb431cf25fbdf2932f6e13dd3 languageName: node linkType: hard @@ -3846,28 +3356,28 @@ __metadata: linkType: hard "@types/estree@npm:*": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: aeedb1b2fe20cbe06f44b99b562bf9703e360bfcdf5bb3d61d248182ee1dd63500f2474e12f098ffe1f5ac3202b43b3e18ec99902d9328d5374f5512fa077e45 languageName: node linkType: hard "@types/glob@npm:*": - version: 7.2.0 - resolution: "@types/glob@npm:7.2.0" + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" dependencies: - "@types/minimatch": "*" + "@types/minimatch": ^5.1.2 "@types/node": "*" - checksum: 6ae717fedfdfdad25f3d5a568323926c64f52ef35897bcac8aca8e19bc50c0bd84630bbd063e5d52078b2137d8e7d3c26eabebd1a2f03ff350fff8a91e79fc19 + checksum: 9101f3a9061e40137190f70626aa0e202369b5ec4012c3fabe6f5d229cce04772db9a94fa5a0eb39655e2e4ad105c38afbb4af56a56c0996a8c7d4fc72350e3d languageName: node linkType: hard "@types/graceful-fs@npm:^4.1.3": - version: 4.1.5 - resolution: "@types/graceful-fs@npm:4.1.5" + version: 4.1.7 + resolution: "@types/graceful-fs@npm:4.1.7" dependencies: "@types/node": "*" - checksum: d076bb61f45d0fc42dee496ef8b1c2f8742e15d5e47e90e20d0243386e426c04d4efd408a48875ab432f7960b4ce3414db20ed0fbbfc7bcc89d84e574f6e045a + checksum: 8b97e208f85c9efd02a6003a582c77646dd87be0af13aec9419a720771560a8a87a979eaca73ae193d7c73127f34d0a958403a9b5d6246e450289fd8c79adf09 languageName: node linkType: hard @@ -3879,20 +3389,20 @@ __metadata: linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "@types/istanbul-lib-report@npm:3.0.1" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 + checksum: cfc66de48577bb7b2636a6afded7056483693c3ea70916276518cdfaa0d4b51bf564ded88fb13e75716665c3af3d4d54e9c2de042c0219dcabad7e81c398688b languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.2 + resolution: "@types/istanbul-reports@npm:3.0.2" dependencies: "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 + checksum: f52028d6fe4d28f0085dd7ed66ccfa6af632579e9a4091b90928ffef93d4dbec0bacd49e9caf1b939d05df9eafc5ac1f5939413cdf8ac59fbe4b29602d4d0939 languageName: node linkType: hard @@ -3913,14 +3423,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": version: 7.0.13 resolution: "@types/json-schema@npm:7.0.13" checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab @@ -3934,17 +3437,24 @@ __metadata: languageName: node linkType: hard -"@types/minimatch@npm:*, @types/minimatch@npm:^3.0.3": +"@types/minimatch@npm:^3.0.3": version: 3.0.5 resolution: "@types/minimatch@npm:3.0.5" checksum: c41d136f67231c3131cf1d4ca0b06687f4a322918a3a5adddc87ce90ed9dbd175a3610adee36b106ae68c0b92c637c35e02b58c8a56c424f71d30993ea220b92 languageName: node linkType: hard +"@types/minimatch@npm:^5.1.2": + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 0391a282860c7cb6fe262c12b99564732401bdaa5e395bee9ca323c312c1a0f45efbf34dce974682036e857db59a5c9b1da522f3d6055aeead7097264c8705a8 + languageName: node + linkType: hard + "@types/minimist@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + version: 1.2.3 + resolution: "@types/minimist@npm:1.2.3" + checksum: 666ea4f8c39dcbdfbc3171fe6b3902157c845cc9cb8cee33c10deb706cda5e0cc80f98ace2d6d29f6774b0dc21180c96cd73c592a1cbefe04777247c7ba0e84b languageName: node linkType: hard @@ -3962,35 +3472,21 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=12": - version: 18.7.1 - resolution: "@types/node@npm:18.7.1" - checksum: f1e2b701b107f97be01da4c46845cd23bcdcb2865f9abbb2847546d09587e726ea207daca6f0d1e72196875ef8c62feeeff5f1c1f2070445acd6d1a61d815c7c - languageName: node - linkType: hard - -"@types/node@npm:20.4.7": - version: 20.4.7 - resolution: "@types/node@npm:20.4.7" - checksum: a40d7003f66b56220a2028179e49f950b46fa6dbf860a4a6ecbd6ba7976f05b2f0b31ced39689ec88a7d9e32d07e088c6a06d270b99d5bc13a28291ac2f30ca7 - languageName: node - linkType: hard - -"@types/node@npm:^20.7.0": - version: 20.7.0 - resolution: "@types/node@npm:20.7.0" - checksum: 1b2919925c213f4d2039ada7a8354c998e144f7291db8d719ef58ea9924ab636c113690073b0ec3b82ba62907385f7e0f51e9d1583c1a818776daa5156d3a590 +"@types/node@npm:*, @types/node@npm:^20.7.0": + version: 20.8.2 + resolution: "@types/node@npm:20.8.2" + checksum: 3da73e25d821bfcdb7de98589027e08bb4848e55408671c4a83ec0341e124b5313a0b20e1e4b4eff1168ea17a86f622ad73fcb04b761abd77496b9a27cbd5de5 languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 +"@types/node@npm:20.5.1": + version: 20.5.1 + resolution: "@types/node@npm:20.5.1" + checksum: 3dbe611cd67afa987102c8558ee70f848949c5dcfee5f60abc073e55c0d7b048e391bf06bb1e0dc052cb7210ca97136ac496cbaf6e89123c989de6bd125fde82 languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.1": +"@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.1": version: 2.4.2 resolution: "@types/normalize-package-data@npm:2.4.2" checksum: 2132e4054711e6118de967ae3a34f8c564e58d71fbcab678ec2c34c14659f638a86c35a0fd45237ea35a4a03079cf0a485e3f97736ffba5ed647bfb5da086b03 @@ -4004,17 +3500,10 @@ __metadata: languageName: node linkType: hard -"@types/prettier-package-json@npm:^2": - version: 2.1.1 - resolution: "@types/prettier-package-json@npm:2.1.1" - checksum: f1c083c5bb40d4dcf0afb036092e81c7ada02b53f61f822ae3e804edbc115b92abd49f0cf6eaced1f0fb903434e52633d0472028b43a6df4c76bd5898dab381e - languageName: node - linkType: hard - "@types/prettier@npm:^2.6.0": - version: 2.7.0 - resolution: "@types/prettier@npm:2.7.0" - checksum: bf5d0c7c1270909b39399539ac106d20ddaa85fe92eb1d59922dc99159604b4f8d5e41b0045fb29c8011585cf5bca2350b7441ef3d9816c08bd0e10ebd4b31d4 + version: 2.7.3 + resolution: "@types/prettier@npm:2.7.3" + checksum: 705384209cea6d1433ff6c187c80dcc0b95d99d5c5ce21a46a9a58060c527973506822e428789d842761e0280d25e3359300f017fbe77b9755bc772ab3dc2f83 languageName: node linkType: hard @@ -4028,7 +3517,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": version: 7.5.3 resolution: "@types/semver@npm:7.5.3" checksum: 349fdd1ab6c213bac5c991bac766bd07b8b12e63762462bb058740dcd2eb09c8193d068bb226f134661275f2022976214c0e727a4e5eb83ec1b131127c980d3e @@ -4043,39 +3532,30 @@ __metadata: linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 + version: 21.0.1 + resolution: "@types/yargs-parser@npm:21.0.1" + checksum: 64e6316c2045e2d460c4fb79572f872f9d2f98fddc6d9d3949c71f0b6ad0ef8a2706cf49db26dfb02a9cb81433abb8f340f015e1d20a9692279abe9477b72c8e languageName: node linkType: hard -"@types/yargs@npm:^17.0.25": - version: 17.0.25 - resolution: "@types/yargs@npm:17.0.25" +"@types/yargs@npm:^17.0.25, @types/yargs@npm:^17.0.8": + version: 17.0.26 + resolution: "@types/yargs@npm:17.0.26" dependencies: "@types/yargs-parser": "*" - checksum: ef57926de514f5eb0a182167a63930bd7d2eb33d89b6041760f690d50b2019d7901b30c33ab7d03b3fa66a5004f0f81e36186d8f9e5e583a27b9ce331d2a5276 - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.11 - resolution: "@types/yargs@npm:17.0.11" - dependencies: - "@types/yargs-parser": "*" - checksum: 30a45f9e59a5cc3c967f76036bea6a456b1416175aa4c002b70e1f295772e2247ed8117f392b20eef4557ad761678df8c1fcb141852f2c7c44977130d802c855 + checksum: 26611969674f4972080c3b22239d4579eaadc5287f95f7802f893c4a9bb292c141467bd70f1e66eb834486c63a23c4f10032618b3d2e7b1ddc05051d08db4078 languageName: node linkType: hard "@typescript-eslint/eslint-plugin@npm:^6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/eslint-plugin@npm:6.7.3" + version: 6.7.4 + resolution: "@typescript-eslint/eslint-plugin@npm:6.7.4" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.7.3 - "@typescript-eslint/type-utils": 6.7.3 - "@typescript-eslint/utils": 6.7.3 - "@typescript-eslint/visitor-keys": 6.7.3 + "@typescript-eslint/scope-manager": 6.7.4 + "@typescript-eslint/type-utils": 6.7.4 + "@typescript-eslint/utils": 6.7.4 + "@typescript-eslint/visitor-keys": 6.7.4 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4088,71 +3568,71 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ac2790882199047abc59c0407a862f3339645623d03ea0aae5a73fd4bac6abfb753afcf9f23fd51cd1d5aa73f132ef94e2850774c4b2a3d99ebb83030b09429c + checksum: 91d5051ae935d8bb61091665ee1e5c456992a0c29b58c86c1bb2b72c935dd831c0d3c7726a8d609455ae4a8b4ba8786ebeeef4bc7eff388b5f77475e7a634dc0 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.10.0": - version: 5.33.0 - resolution: "@typescript-eslint/parser@npm:5.33.0" + version: 5.62.0 + resolution: "@typescript-eslint/parser@npm:5.62.0" dependencies: - "@typescript-eslint/scope-manager": 5.33.0 - "@typescript-eslint/types": 5.33.0 - "@typescript-eslint/typescript-estree": 5.33.0 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 2617aba987a70ee6b16ecc6afa6d245422df33a9d056018ff2e316159e667a0ab9d9c15fcea95e0ba65832661e71cc2753a221e77f0b0fab278e52c4497b8278 + checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 languageName: node linkType: hard "@typescript-eslint/parser@npm:^6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/parser@npm:6.7.3" + version: 6.7.4 + resolution: "@typescript-eslint/parser@npm:6.7.4" dependencies: - "@typescript-eslint/scope-manager": 6.7.3 - "@typescript-eslint/types": 6.7.3 - "@typescript-eslint/typescript-estree": 6.7.3 - "@typescript-eslint/visitor-keys": 6.7.3 + "@typescript-eslint/scope-manager": 6.7.4 + "@typescript-eslint/types": 6.7.4 + "@typescript-eslint/typescript-estree": 6.7.4 + "@typescript-eslint/visitor-keys": 6.7.4 debug: ^4.3.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 658f3294b281db06ebb46884b92172d45eb402ec25c7d4a09cc2461eee359266029af7a49eb9006ee7c3e0003ba53a06f4bee84aa2e99d2d9a3507b9c84ff775 + checksum: 60e7c01a69c1a67577f031cd6ef3c7980a9aedf2045b9950e339836acb2fe9d7bf0c8909fa95d713a8270f19dead43d82beb27dcf8705f81fe35b14b737e8fe0 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.33.0": - version: 5.33.0 - resolution: "@typescript-eslint/scope-manager@npm:5.33.0" +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" dependencies: - "@typescript-eslint/types": 5.33.0 - "@typescript-eslint/visitor-keys": 5.33.0 - checksum: b2cbea9abd528d01a5acb2d68a2a5be51ec6827760d3869bdd70920cf6c3a4f9f96d87c77177f8313009d9db71253e4a75f8393f38651e2abaf91ef28e60fb9d + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/scope-manager@npm:6.7.3" +"@typescript-eslint/scope-manager@npm:6.7.4": + version: 6.7.4 + resolution: "@typescript-eslint/scope-manager@npm:6.7.4" dependencies: - "@typescript-eslint/types": 6.7.3 - "@typescript-eslint/visitor-keys": 6.7.3 - checksum: 08215444b7c70af5c45e185ba3c31c550a0a671ab464a67058cbee680c94aa9d1a062958976d8b09f7bcabf2f63114cdc7be2e4e32e2dfdcb2d7cc79961b7b32 + "@typescript-eslint/types": 6.7.4 + "@typescript-eslint/visitor-keys": 6.7.4 + checksum: 8475d28f6408c204fb6bf25df45c1f16cad950190e31346c4b1ae15461a96f30b31b6fd1d3d635b41db6aa9a3fd3de25f04823632c74eeea478f34ebd134a1b0 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/type-utils@npm:6.7.3" +"@typescript-eslint/type-utils@npm:6.7.4": + version: 6.7.4 + resolution: "@typescript-eslint/type-utils@npm:6.7.4" dependencies: - "@typescript-eslint/typescript-estree": 6.7.3 - "@typescript-eslint/utils": 6.7.3 + "@typescript-eslint/typescript-estree": 6.7.4 + "@typescript-eslint/utils": 6.7.4 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4160,30 +3640,30 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: f30a5ab4f88f76457810d72e3ada79fefd94dbbb456069ac004bd7601c9b7f15689b906b66cd849c230f30ae65f6f7039fb169609177ab545b34bacab64f015e + checksum: 231240a1aa1008a1b1facdd40b931433606947254f6e04705d154791a8b2c15d5ce3355b7d8a29cf7bb53c2e2eca1340c7860dd395389858d442af06c586d1fd languageName: node linkType: hard -"@typescript-eslint/types@npm:5.33.0": - version: 5.33.0 - resolution: "@typescript-eslint/types@npm:5.33.0" - checksum: 8bbddda84cb3adf5c659b0d42547a2d6ab87f4eea574aca5dd63a3bd85169f32796ecbddad3b27f18a609070f6b1d18a54018d488bad746ae0f6ea5c02206109 +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 languageName: node linkType: hard -"@typescript-eslint/types@npm:6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/types@npm:6.7.3" - checksum: 4adb6177ec710e7438610fee553839a7abecc498dbb36d0170786bab66c5e5415cd720ac06419fd905458ad88c39b661603af5f013adc299137ccb4c51c4c879 +"@typescript-eslint/types@npm:6.7.4": + version: 6.7.4 + resolution: "@typescript-eslint/types@npm:6.7.4" + checksum: 287ae48a2bb722b866460bcb2ba4ff908348145b3fc0af4ea75679d474e9ba3632bf64689044f181fe8ca3cb5f41238bb31ea428d5e78f1c3982f6dac6b7b149 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.33.0": - version: 5.33.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.33.0" +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: - "@typescript-eslint/types": 5.33.0 - "@typescript-eslint/visitor-keys": 5.33.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4192,16 +3672,16 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 26f9005cdfb14654125a33d90d872b926820e560dff8970c4629fd5f6f47ad2a31e4c63161564d21bb42a8fc3ced0033994854ee37336ae07d90ccf6300d702b + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.7.3, @typescript-eslint/typescript-estree@npm:^6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/typescript-estree@npm:6.7.3" +"@typescript-eslint/typescript-estree@npm:6.7.4, @typescript-eslint/typescript-estree@npm:^6.7.3": + version: 6.7.4 + resolution: "@typescript-eslint/typescript-estree@npm:6.7.4" dependencies: - "@typescript-eslint/types": 6.7.3 - "@typescript-eslint/visitor-keys": 6.7.3 + "@typescript-eslint/types": 6.7.4 + "@typescript-eslint/visitor-keys": 6.7.4 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4210,60 +3690,62 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: eaba1feb0e6882b0bad292172c118aac43ba683d1f04b940b542a20035468d030b062b036ea49eca36aa21782e9b1019e87717003b3c3db7d12dc707466b7eb7 + checksum: 2e8f5e972403233522eff09cfe7a0a23549cfd462e82b434aa32ddbdba5b329be5a549514a157f6b79e2d0159c9348d23b202e5d915d4f2c7cbfe72e1a48a429 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/utils@npm:6.7.3" +"@typescript-eslint/utils@npm:6.7.4": + version: 6.7.4 + resolution: "@typescript-eslint/utils@npm:6.7.4" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.7.3 - "@typescript-eslint/types": 6.7.3 - "@typescript-eslint/typescript-estree": 6.7.3 + "@typescript-eslint/scope-manager": 6.7.4 + "@typescript-eslint/types": 6.7.4 + "@typescript-eslint/typescript-estree": 6.7.4 semver: ^7.5.4 peerDependencies: eslint: ^7.0.0 || ^8.0.0 - checksum: 685b7c9fa95ad085f30e26431dc41b3059a42a16925defe2a94b32fb46974bfc168000de7d4d9ad4a1d0568a983f9d3c01ea6bc6cfa9a798e482719af9e9165b + checksum: 75e197dd58b230436ceb51f2050bb3af8796b05a197eaf741251f8e9c4d9ba1a99d654d090da0c49d31b20da79d9cc3746cbb663ffd5ea614d7a960d64676d65 languageName: node linkType: hard "@typescript-eslint/utils@npm:^5.10.0": - version: 5.33.0 - resolution: "@typescript-eslint/utils@npm:5.33.0" + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" dependencies: + "@eslint-community/eslint-utils": ^4.2.0 "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.33.0 - "@typescript-eslint/types": 5.33.0 - "@typescript-eslint/typescript-estree": 5.33.0 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 + semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 6ce5ee5eabeb6d73538b24e6487f811ecb0ef3467bd366cbd15bf30d904bdedb73fc6f48cf2e2e742dda462b42999ea505e8b59255545825ec9db86f3d423ea7 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.33.0": - version: 5.33.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.33.0" +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" dependencies: - "@typescript-eslint/types": 5.33.0 + "@typescript-eslint/types": 5.62.0 eslint-visitor-keys: ^3.3.0 - checksum: d7e3653de6bac6841e6fcc54226b93ad6bdca4aa76ebe7d83459c016c3eebcc50d4f65ee713174bc267d765295b642d1927a778c5de707b8389e3fcc052aa4a1 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.7.3": - version: 6.7.3 - resolution: "@typescript-eslint/visitor-keys@npm:6.7.3" +"@typescript-eslint/visitor-keys@npm:6.7.4": + version: 6.7.4 + resolution: "@typescript-eslint/visitor-keys@npm:6.7.4" dependencies: - "@typescript-eslint/types": 6.7.3 + "@typescript-eslint/types": 6.7.4 eslint-visitor-keys: ^3.4.1 - checksum: cef64173a919107f420703e204d97d0afef0d9bd7a67570df5bdb39ac9464211c5a7b3af735d8f41e8004b443ab83e88b1d6fb951886aed4d3fe9d4778667199 + checksum: 34d09798b6c48dc059e88c6cb3df5f96e859bd65d1dd05d907b8a3c7a5708a737d50607081fb14a4b974b90cfe4169a93db974bf53af8b282420187f73b0afac languageName: node linkType: hard @@ -4288,7 +3770,7 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:1, abbrev@npm:^1.0.0": +"abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 @@ -4327,16 +3809,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.8.0": - version: 8.8.0 - resolution: "acorn@npm:8.8.0" - bin: - acorn: bin/acorn - checksum: 7270ca82b242eafe5687a11fea6e088c960af712683756abf0791b68855ea9cace3057bd5e998ffcef50c944810c1e0ca1da526d02b32110e13c722aa959afdc - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": +"acorn@npm:^8.4.1, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -4371,13 +3844,11 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - debug: ^4.1.0 - depd: ^1.1.2 humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard @@ -4411,7 +3882,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4": +"ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -4424,14 +3895,14 @@ __metadata: linkType: hard "ajv@npm:^8.11.0": - version: 8.11.0 - resolution: "ajv@npm:8.11.0" + version: 8.12.0 + resolution: "ajv@npm:8.12.0" dependencies: fast-deep-equal: ^3.1.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 uri-js: ^4.2.2 - checksum: 5e0ff226806763be73e93dd7805b634f6f5921e3e90ca04acdf8db81eed9d8d3f0d4c5f1213047f45ebbf8047ffe0c840fa1ef2ec42c3a644899f69aa72b5bef + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 languageName: node linkType: hard @@ -4563,14 +4034,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.0.0": - version: 6.1.0 - resolution: "ansi-styles@npm:6.1.0" - checksum: 7a7f8528c07a9d20c3a92bccd2b6bc3bb4d26e5cb775c02826921477377bd495d615d61f710d56216344b6238d1d11ef2b0348e146c5b128715578bfb3217229 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 @@ -4585,12 +4049,12 @@ __metadata: linkType: hard "anymatch@npm:^3.0.3, anymatch@npm:^3.1.1": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" dependencies: normalize-path: ^3.0.0 picomatch: ^2.0.4 - checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 languageName: node linkType: hard @@ -4757,19 +4221,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.2.2": - version: 1.3.0 - resolution: "array.prototype.flatmap@npm:1.3.0" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.2 - es-shim-unscopables: ^1.0.0 - checksum: 818538f39409c4045d874be85df0dbd195e1446b14d22f95bdcfefea44ae77db44e42dcd89a559254ec5a7c8b338cfc986cc6d641e3472f9a5326b21eb2976a2 - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.1": +"array.prototype.flatmap@npm:^1.2.2, array.prototype.flatmap@npm:^1.3.1": version: 1.3.2 resolution: "array.prototype.flatmap@npm:1.3.2" dependencies: @@ -4994,9 +4446,16 @@ __metadata: linkType: hard "before-after-hook@npm:^2.2.0": - version: 2.2.2 - resolution: "before-after-hook@npm:2.2.2" - checksum: dc2e1ffe389e5afbef2a46790b1b5a50247ed57aba67649cfa9ec2552d248cc9278f222e72fb5a8ff59bbb39d78fbaa97e7234ead0c6b5e8418b67a8644ce207 + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 + languageName: node + linkType: hard + +"big-integer@npm:^1.6.44": + version: 1.6.51 + resolution: "big-integer@npm:1.6.51" + checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 languageName: node linkType: hard @@ -5037,6 +4496,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -5060,36 +4528,22 @@ __metadata: version: 3.0.2 resolution: "braces@npm:3.0.2" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"browserslist@npm:^4.20.2": - version: 4.21.3 - resolution: "browserslist@npm:4.21.3" - dependencies: - caniuse-lite: ^1.0.30001370 - electron-to-chromium: ^1.4.202 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.5 - bin: - browserslist: cli.js - checksum: ff512a7bcca1c530e2854bbdfc7be2791d0fb524097a6340e56e1d5924164c7e4e0a9b070de04cdc4c149d15cb4d4275cb7c626ebbce954278a2823aaad2452a + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.21.9": - version: 4.21.11 - resolution: "browserslist@npm:4.21.11" +"browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": + version: 4.22.1 + resolution: "browserslist@npm:4.22.1" dependencies: - caniuse-lite: ^1.0.30001538 - electron-to-chromium: ^1.4.526 + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 node-releases: ^2.0.13 update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: 89377745428d32c7bbec37055bc4b9e48aa859418ea3886b13218d825f8ea3053640f90d8652844ae855941fec0bffd2d69cf933035d6f9224b427d48d31eddf + checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 languageName: node linkType: hard @@ -5154,29 +4608,12 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.1 - resolution: "cacache@npm:16.1.1" +"bundle-name@npm:^3.0.0": + version: 3.0.0 + resolution: "bundle-name@npm:3.0.0" dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^1.1.1 - checksum: 488524617008b793f0249b0c4ea2c330c710ca997921376e15650cc2415a8054491ae2dee9f01382c2015602c0641f3f977faf2fa7361aa33d2637dcfb03907a + run-applescript: ^5.0.0 + checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615 languageName: node linkType: hard @@ -5269,17 +4706,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001370": - version: 1.0.30001375 - resolution: "caniuse-lite@npm:1.0.30001375" - checksum: 6ed9cf7a3f80f5880cb021105864b869dddfdda8490559aa623e77feeca5ce8958a3b7c1cf37322e519176dcb488c99e6358b8c2de2aa4a0e08846ac122c4e75 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001538": - version: 1.0.30001539 - resolution: "caniuse-lite@npm:1.0.30001539" - checksum: 8595905d6c7234173a4915439fdd69fa2c06b0272d56af63aee0df6114e1ee4727758af160c0db9844055f778e0ea27ed4714facf2e472a2e74d9f567f111f41 +"caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001543 + resolution: "caniuse-lite@npm:1.0.30001543" + checksum: 1a65c8b0b93913b6241c7d66e1e1f3ea0f194f7e140eefe500512641c2eb4df285991ec9869a1ba2856ea6f6d21e9f3d7bcd91971b5fb1721e3fa0390feec6f1 languageName: node linkType: hard @@ -5315,7 +4745,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.3.2, chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -5376,17 +4806,10 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": - version: 3.3.2 - resolution: "ci-info@npm:3.3.2" - checksum: fd81f1edd2d3b0f6cb077b2e84365136d87b9db8c055928c1ad69da8a76c2c2f19cba8ea51b90238302157ca927f91f92b653e933f2398dde4867500f08d6e62 - languageName: node - linkType: hard - -"ci-info@npm:^3.6.1, ci-info@npm:^3.7.1, ci-info@npm:^3.8.0": - version: 3.8.0 - resolution: "ci-info@npm:3.8.0" - checksum: d0a4d3160497cae54294974a7246202244fff031b0a6ea20dd57b10ec510aa17399c41a1b0982142c105f3255aff2173e5c0dd7302ee1b2f28ba3debda375098 +"ci-info@npm:^3.2.0, ci-info@npm:^3.6.1, ci-info@npm:^3.7.1, ci-info@npm:^3.8.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 languageName: node linkType: hard @@ -5400,9 +4823,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.0.0": - version: 1.2.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 + version: 1.2.3 + resolution: "cjs-module-lexer@npm:1.2.3" + checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a languageName: node linkType: hard @@ -5478,9 +4901,9 @@ __metadata: linkType: hard "cli-spinners@npm:^2.5.0": - version: 2.7.0 - resolution: "cli-spinners@npm:2.7.0" - checksum: a9afaf73f58d1f951fb23742f503631b3cf513f43f4c7acb1b640100eb76bfa16efbcd1994d149ffc6603a6d75dd3d4a516a76f125f90dce437de9b16fd0ee6f + version: 2.9.1 + resolution: "cli-spinners@npm:2.9.1" + checksum: 1780618be58309c469205bc315db697934bac68bce78cd5dfd46248e507a533172d623c7348ecfd904734f597ce0a4e5538684843d2cfb7af485d4466699940c languageName: node linkType: hard @@ -5576,9 +4999,9 @@ __metadata: linkType: hard "collect-v8-coverage@npm:^1.0.0": - version: 1.0.1 - resolution: "collect-v8-coverage@npm:1.0.1" - checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da languageName: node linkType: hard @@ -5680,47 +5103,14 @@ __metadata: languageName: node linkType: hard -"commander@npm:11.0.0, commander@npm:^11.0.0, commander@npm:~11.0.0": +"commander@npm:11.0.0, commander@npm:~11.0.0": version: 11.0.0 resolution: "commander@npm:11.0.0" checksum: 6621954e1e1d078b4991c1f5bbd9439ad37aa7768d6ab4842de1dbd4d222c8a27e1b8e62108b3a92988614af45031d5bb2a2aaa92951f4d0c934d1a1ac564bb4 languageName: node linkType: hard -"commander@npm:^10.0.0": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 - languageName: node - linkType: hard - -"commitizen@npm:^4.0.3": - version: 4.2.5 - resolution: "commitizen@npm:4.2.5" - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0 - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: ^2.1.2 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.4 - is-utf8: ^0.2.1 - lodash: 4.17.21 - minimist: 1.2.6 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - bin: - commitizen: bin/commitizen - cz: bin/git-cz - git-cz: bin/git-cz - checksum: 28f5d10cf332663f1710edb2ca22473664bc4457146ce6922896ed2ed6ee2a23add607b04d5b8d1bb7ee09bb78bc0d38d09057e0ab39b38e44b172765e3835c9 - languageName: node - linkType: hard - -"commitizen@npm:^4.3.0": +"commitizen@npm:^4.0.3, commitizen@npm:^4.3.0": version: 4.3.0 resolution: "commitizen@npm:4.3.0" dependencies: @@ -5967,15 +5357,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": - version: 1.8.0 - resolution: "convert-source-map@npm:1.8.0" - dependencies: - safe-buffer: ~5.1.1 - checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -5984,11 +5365,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": - version: 3.32.2 - resolution: "core-js-compat@npm:3.32.2" + version: 3.33.0 + resolution: "core-js-compat@npm:3.33.0" dependencies: - browserslist: ^4.21.10 - checksum: efca146ad71a542e6f196db5ba5aed617e48c615bdf1fbb065471b3267f833ac545bd5fc5ad0642c3d3974b955f0684ff0863d7471d7050ee0284e0a1313942e + browserslist: ^4.22.1 + checksum: 83ae54008c09b8e0ae3c59457039866c342c7e28b0d30eebb638a5b51c01432e63fe97695c90645cbc6a8b073a4f9a8b0e75f0818bbf8b4b054e01f4c17d3181 languageName: node linkType: hard @@ -5999,29 +5380,15 @@ __metadata: languageName: node linkType: hard -"cosmiconfig-typescript-loader@npm:^2.0.0": - version: 2.0.2 - resolution: "cosmiconfig-typescript-loader@npm:2.0.2" - dependencies: - cosmiconfig: ^7 - ts-node: ^10.8.1 - peerDependencies: - "@types/node": "*" - cosmiconfig: ">=7" - typescript: ">=3" - checksum: 0c9a777e2e3ff7594d753e5781e8c3817ce5ba493a4e69cfde698a8e231b438695248dcc62a16c661f93ada7f762ac6e24457889439c94f58c094a24aecbd982 - languageName: node - linkType: hard - "cosmiconfig-typescript-loader@npm:^4.0.0": - version: 4.1.0 - resolution: "cosmiconfig-typescript-loader@npm:4.1.0" + version: 4.4.0 + resolution: "cosmiconfig-typescript-loader@npm:4.4.0" peerDependencies: "@types/node": "*" cosmiconfig: ">=7" ts-node: ">=10" - typescript: ">=3" - checksum: 434f68e75ea8559deb0058cb06ac0a25ec5c0e65fafc21a891bac863e18cf944bd881b0d80188d02f599e061c3f0e42156f6405e4a299975e40cb1bd740a9b24 + typescript: ">=4" + checksum: d6ba546de333f9440226ab2384a7b5355d8d2e278a9ca9d838664181bc27719764af10c69eec6f07189e63121e6d654235c374bd7dc455ac8dfdef3aad6657fd languageName: node linkType: hard @@ -6038,19 +5405,6 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^7, cosmiconfig@npm:^7.0.0": - version: 7.0.1 - resolution: "cosmiconfig@npm:7.0.1" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: 4be63e7117955fd88333d7460e4c466a90f556df6ef34efd59034d2463484e339666c41f02b523d574a797ec61f4a91918c5b89a316db2ea2f834e0d2d09465b - languageName: node - linkType: hard - "cosmiconfig@npm:^8.0.0": version: 8.3.6 resolution: "cosmiconfig@npm:8.3.6" @@ -6191,12 +5545,12 @@ __metadata: linkType: hard "decamelize-keys@npm:^1.1.0": - version: 1.1.0 - resolution: "decamelize-keys@npm:1.1.0" + version: 1.1.1 + resolution: "decamelize-keys@npm:1.1.1" dependencies: decamelize: ^1.1.0 map-obj: ^1.0.0 - checksum: 8bc5d32e035a072f5dffc1f1f3d26ca7ab1fb44a9cade34c97ab6cd1e62c81a87e718101e96de07d78cecda20a3fdb955df958e46671ccad01bb8dcf0de2e298 + checksum: fc645fe20b7bda2680bbf9481a3477257a7f9304b1691036092b97ab04c0ab53e3bf9fcc2d2ae382536568e402ec41fb11e1d4c3836a9abe2d813dd9ef4311e0 languageName: node linkType: hard @@ -6241,18 +5595,40 @@ __metadata: linkType: hard "deepmerge@npm:^4.0.0, deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + +"default-browser-id@npm:^3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + +"default-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "default-browser@npm:4.0.0" + dependencies: + bundle-name: ^3.0.0 + default-browser-id: ^3.0.0 + execa: ^7.1.1 + titleize: ^3.0.0 + checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7 languageName: node linkType: hard "defaults@npm:^1.0.3": - version: 1.0.3 - resolution: "defaults@npm:1.0.3" + version: 1.0.4 + resolution: "defaults@npm:1.0.4" dependencies: clone: ^1.0.2 - checksum: 96e2112da6553d376afd5265ea7cbdb2a3b45535965d71ab8bb1da10c8126d168fdd5268799625324b368356d21ba2a7b3d4ec50961f11a47b7feb9de3d4413e + checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a languageName: node linkType: hard @@ -6267,24 +5643,14 @@ __metadata: languageName: node linkType: hard -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: 0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" - dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 languageName: node linkType: hard -"define-properties@npm:^1.2.0": +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -6302,13 +5668,6 @@ __metadata: languageName: node linkType: hard -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -6344,13 +5703,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.0.0": - version: 29.0.0 - resolution: "diff-sequences@npm:29.0.0" - checksum: 2c084a3db03ecde26f649f6f2559974e01e174451debeb301a7e17199e73423a8e8ddeb9a35ae38638c084b4fa51296a4a20fa7f44f3db0c0ba566bdc704ed3d - languageName: node - linkType: hard - "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -6461,45 +5813,10 @@ __metadata: languageName: node linkType: hard -"editorconfig@npm:^1.0.2": - version: 1.0.4 - resolution: "editorconfig@npm:1.0.4" - dependencies: - "@one-ini/wasm": 0.1.1 - commander: ^10.0.0 - minimatch: 9.0.1 - semver: ^7.5.3 - bin: - editorconfig: bin/editorconfig - checksum: 09904f19381b3ddf132cea0762971aba887236f387be3540909e96b8eb9337e1793834e10f06890cd8e8e7bb1ba80cb13e7d50a863f227806c9ca74def4165fb - languageName: node - linkType: hard - -"editorconfig@npm:^2.0.0": - version: 2.0.0 - resolution: "editorconfig@npm:2.0.0" - dependencies: - "@one-ini/wasm": 0.1.1 - commander: ^11.0.0 - minimatch: 9.0.2 - semver: ^7.5.3 - bin: - editorconfig: bin/editorconfig - checksum: d5b3eca96dfa3115cef79e9814108b217a52f66263b056cc676a482742dfc85b8aca78811a770ecba1b8b118f74fded54c1c2d2061b023677abc0d758ca22a9a - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.202": - version: 1.4.213 - resolution: "electron-to-chromium@npm:1.4.213" - checksum: 63953b2db5f87ef11caad8c57bba69300cc5ab1bf363d5758c48187fe9e414e971e470bfc961540c954a2f966fadccce29bdbfa60f5bd6c4b5499f16404d0846 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.526": - version: 1.4.530 - resolution: "electron-to-chromium@npm:1.4.530" - checksum: 32488355442d2ba30e10b318fd97f63d0b73deef970b11f866c23d4fcb1b5c9ba846c7e3c020f1077d04db2f9ab90888893f770e3610ccce6e82e988fec51d48 +"electron-to-chromium@npm:^1.4.535": + version: 1.4.540 + resolution: "electron-to-chromium@npm:1.4.540" + checksum: 78a48690a5cca3f89544d4e33a11e3101adb0b220da64078f67e167b396cbcd85044853cb88a9453444796599fe157c190ca5ebd00e9daf668ed5a9df3d0bba8 languageName: node linkType: hard @@ -6580,11 +5897,12 @@ __metadata: linkType: hard "enquirer@npm:^2.3.4": - version: 2.3.6 - resolution: "enquirer@npm:2.3.6" + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" dependencies: ansi-colors: ^4.1.1 - checksum: 1c0911e14a6f8d26721c91e01db06092a5f7675159f0261d69c403396a385afd13dd76825e7678f66daffa930cfaa8d45f506fb35f818a2788463d022af1b884 + strip-ansi: ^6.0.1 + checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 languageName: node linkType: hard @@ -6639,37 +5957,6 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.19.2, es-abstract@npm:^1.19.5": - version: 1.20.1 - resolution: "es-abstract@npm:1.20.1" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 - has: ^1.0.3 - has-property-descriptors: ^1.0.0 - has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - is-callable: ^1.2.4 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-weakref: ^1.0.2 - object-inspect: ^1.12.0 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - regexp.prototype.flags: ^1.4.3 - string.prototype.trimend: ^1.0.5 - string.prototype.trimstart: ^1.0.5 - unbox-primitive: ^1.0.2 - checksum: 28da27ae0ed9c76df7ee8ef5c278df79dcfdb554415faf7068bb7c58f8ba8e2a16bfb59e586844be6429ab4c302ca7748979d48442224cb1140b051866d74b7f - languageName: node - linkType: hard - "es-abstract@npm:^1.22.1": version: 1.22.2 resolution: "es-abstract@npm:1.22.2" @@ -6748,42 +6035,44 @@ __metadata: languageName: node linkType: hard -"esbuild-plugin-eslint@npm:^0.3.6": - version: 0.3.6 - resolution: "esbuild-plugin-eslint@npm:0.3.6" +"esbuild-node-externals@npm:^1.9.0": + version: 1.9.0 + resolution: "esbuild-node-externals@npm:1.9.0" + dependencies: + find-up: ^5.0.0 + tslib: ^2.4.1 peerDependencies: - esbuild: ^0.17.14 - eslint: ^8.37.0 - checksum: d10dd317c4820a0080767cdaf6e4a0acaa1216a2c6b91021f30017bda8787fb5767b016b004f5d820b7676a580ca79c84d914fe9bc7444203ce4fdad197f7d23 + esbuild: 0.12 - 0.19 + checksum: 15c0adba29c57eb54cf7640efc1c8b9bbef555eb09eb6927dc9aa6617b84ec161a42797f8d716771254314c6bedd16f7359598de2788aa9b36f3e02f501ee982 languageName: node linkType: hard "esbuild@npm:^0.19.3": - version: 0.19.3 - resolution: "esbuild@npm:0.19.3" - dependencies: - "@esbuild/android-arm": 0.19.3 - "@esbuild/android-arm64": 0.19.3 - "@esbuild/android-x64": 0.19.3 - "@esbuild/darwin-arm64": 0.19.3 - "@esbuild/darwin-x64": 0.19.3 - "@esbuild/freebsd-arm64": 0.19.3 - "@esbuild/freebsd-x64": 0.19.3 - "@esbuild/linux-arm": 0.19.3 - "@esbuild/linux-arm64": 0.19.3 - "@esbuild/linux-ia32": 0.19.3 - "@esbuild/linux-loong64": 0.19.3 - "@esbuild/linux-mips64el": 0.19.3 - "@esbuild/linux-ppc64": 0.19.3 - "@esbuild/linux-riscv64": 0.19.3 - "@esbuild/linux-s390x": 0.19.3 - "@esbuild/linux-x64": 0.19.3 - "@esbuild/netbsd-x64": 0.19.3 - "@esbuild/openbsd-x64": 0.19.3 - "@esbuild/sunos-x64": 0.19.3 - "@esbuild/win32-arm64": 0.19.3 - "@esbuild/win32-ia32": 0.19.3 - "@esbuild/win32-x64": 0.19.3 + version: 0.19.4 + resolution: "esbuild@npm:0.19.4" + dependencies: + "@esbuild/android-arm": 0.19.4 + "@esbuild/android-arm64": 0.19.4 + "@esbuild/android-x64": 0.19.4 + "@esbuild/darwin-arm64": 0.19.4 + "@esbuild/darwin-x64": 0.19.4 + "@esbuild/freebsd-arm64": 0.19.4 + "@esbuild/freebsd-x64": 0.19.4 + "@esbuild/linux-arm": 0.19.4 + "@esbuild/linux-arm64": 0.19.4 + "@esbuild/linux-ia32": 0.19.4 + "@esbuild/linux-loong64": 0.19.4 + "@esbuild/linux-mips64el": 0.19.4 + "@esbuild/linux-ppc64": 0.19.4 + "@esbuild/linux-riscv64": 0.19.4 + "@esbuild/linux-s390x": 0.19.4 + "@esbuild/linux-x64": 0.19.4 + "@esbuild/netbsd-x64": 0.19.4 + "@esbuild/openbsd-x64": 0.19.4 + "@esbuild/sunos-x64": 0.19.4 + "@esbuild/win32-arm64": 0.19.4 + "@esbuild/win32-ia32": 0.19.4 + "@esbuild/win32-x64": 0.19.4 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -6831,7 +6120,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: f998ba82b1bbf0f3036201dc2cb94f92aff887b7552738ea3e4dd6f386f87740ef76aabae2fc1c4b91a519354d390f6d9fd89eb71e26882983f6fbaf75369206 + checksum: 024309a16365b020815a30e9a3a9354894a391cf1adbfad7f44a975cf161ab5e961619b30e1ec8ea02994631d71e6b38831119be69f8ccb610c32bbe21addc79 languageName: node linkType: hard @@ -6977,17 +6266,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-editorconfig@npm:^4.0.3": - version: 4.0.3 - resolution: "eslint-plugin-editorconfig@npm:4.0.3" - dependencies: - editorconfig: ^1.0.2 - eslint: ^8.40.0 - klona: ^2.0.4 - checksum: 8563c11ddf9d9f206fa5a2cd34bbe032043ea4975f66aa5f1cd3c71a01e84fb6c38e8b35c151aa838ec8cd6d37bad29c0e051a3c2de6362a39ba5e5f5c594a06 - languageName: node - linkType: hard - "eslint-plugin-eslint-comments@npm:^3.2.0": version: 3.2.0 resolution: "eslint-plugin-eslint-comments@npm:3.2.0" @@ -7037,8 +6315,8 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.4.0": - version: 27.4.0 - resolution: "eslint-plugin-jest@npm:27.4.0" + version: 27.4.2 + resolution: "eslint-plugin-jest@npm:27.4.2" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: @@ -7050,7 +6328,7 @@ __metadata: optional: true jest: optional: true - checksum: c33593dba87e750123555c2de32fb174d6f2c92342571492f8dbde01bf61a8ac229dff31bd08fea16c3ca2c4843fc2fec985459c351319c019016767ed1cd78e + checksum: 99a8301ae00c37da97866b8b13c89a077716d2c653b26bc417d242e7300a43237c0017fd488c43966fa38585f19050facdbbc71d03ca36a1ce6f2ba930a9143e languageName: node linkType: hard @@ -7148,11 +6426,11 @@ __metadata: linkType: hard "eslint-plugin-sort-class-members@npm:^1.18.0": - version: 1.18.0 - resolution: "eslint-plugin-sort-class-members@npm:1.18.0" + version: 1.19.0 + resolution: "eslint-plugin-sort-class-members@npm:1.19.0" peerDependencies: eslint: ">=0.8.0" - checksum: aeeccef0c7c68936225558258a3270cafecad9fbed01551d7140bf725512b98dddf881824693457ca602ada07697307de66e63b851aebdc9709c19a721449403 + checksum: 7334737eeb1a61d8c98463370acd60d3fddb645dc39c234727bc6961fa4e4954951698454e7cce3688d5933214131c1b7bfb804f926885bac33648082899c759 languageName: node linkType: hard @@ -7201,17 +6479,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.0.0, eslint-scope@npm:^7.1.1": - version: 7.1.1 - resolution: "eslint-scope@npm:7.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": +"eslint-scope@npm:^7.0.0, eslint-scope@npm:^7.2.2": version: 7.2.2 resolution: "eslint-scope@npm:7.2.2" dependencies: @@ -7221,39 +6489,21 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": +"eslint-visitor-keys@npm:^2.1.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0": - version: 3.3.0 - resolution: "eslint-visitor-keys@npm:3.3.0" - checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:^8.40.0, eslint@npm:^8.50.0": +"eslint@npm:^8.50.0, eslint@npm:^8.7.0": version: 8.50.0 resolution: "eslint@npm:8.50.0" dependencies: @@ -7300,55 +6550,6 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.7.0": - version: 8.21.0 - resolution: "eslint@npm:8.21.0" - dependencies: - "@eslint/eslintrc": ^1.3.0 - "@humanwhocodes/config-array": ^0.10.4 - "@humanwhocodes/gitignore-to-minimatch": ^1.0.2 - ajv: ^6.10.0 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.1 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.3.0 - espree: ^9.3.3 - esquery: ^1.4.0 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - functional-red-black-tree: ^1.0.1 - glob-parent: ^6.0.1 - globals: ^13.15.0 - globby: ^11.1.0 - grapheme-splitter: ^1.0.4 - ignore: ^5.2.0 - import-fresh: ^3.0.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.1 - regexpp: ^3.2.0 - strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 - text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 - bin: - eslint: bin/eslint.js - checksum: 1d39ddb08772ea230cb7d74f7f81f85b9d46965d3600725c7eb39a27bcdaf28cb2a780dacf6cfa1cfbf2da606b57a5e7e3ab373ab474cbcf0ba042076821f501 - languageName: node - linkType: hard - "esm@npm:^3.2.25": version: 3.2.25 resolution: "esm@npm:3.2.25" @@ -7356,18 +6557,7 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.0.0, espree@npm:^9.3.2, espree@npm:^9.3.3": - version: 9.3.3 - resolution: "espree@npm:9.3.3" - dependencies: - acorn: ^8.8.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.3.0 - checksum: 33e8a36fc15d082e68672e322e22a53856b564d60aad8f291a667bfc21b2c900c42412d37dd3c7a0f18b9d0d8f8858dabe8776dbd4b4c2f72c5cf4d6afeabf65 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": +"espree@npm:^9.0.0, espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -7388,16 +6578,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" - dependencies: - estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2, esquery@npm:^1.5.0": +"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.5.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -7457,7 +6638,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:7.2.0": +"execa@npm:7.2.0, execa@npm:^7.1.1": version: 7.2.0 resolution: "execa@npm:7.2.0" dependencies: @@ -7541,20 +6722,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0": - version: 29.0.3 - resolution: "expect@npm:29.0.3" - dependencies: - "@jest/expect-utils": ^29.0.3 - jest-get-type: ^29.0.0 - jest-matcher-utils: ^29.0.3 - jest-message-util: ^29.0.3 - jest-util: ^29.0.3 - checksum: 21b7fd346c47896a3de8f1103d7be32dab9409eb3dc170b7a9ff5d8d564b8499bd600b9af6251fe2f46064cf4e2f1456a6c6318da15314b7d74ed6dad723b555 - languageName: node - linkType: hard - -"expect@npm:^29.7.0": +"expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -7593,26 +6761,13 @@ __metadata: linkType: hard "fast-diff@npm:^1.1.2": - version: 1.2.0 - resolution: "fast-diff@npm:1.2.0" - checksum: 1b5306eaa9e826564d9e5ffcd6ebd881eb5f770b3f977fcbf38f05c824e42172b53c79920e8429c54eb742ce15a0caf268b0fdd5b38f6de52234c4a8368131ae - languageName: node - linkType: hard - -"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9": - version: 3.2.11 - resolution: "fast-glob@npm:3.2.11" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7 + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 languageName: node linkType: hard -"fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1": +"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" dependencies: @@ -7654,20 +6809,20 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.13.0 - resolution: "fastq@npm:1.13.0" + version: 1.15.0 + resolution: "fastq@npm:1.15.0" dependencies: reusify: ^1.0.4 - checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a languageName: node linkType: hard "fb-watchman@npm:^2.0.0": - version: 2.0.1 - resolution: "fb-watchman@npm:2.0.1" + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" dependencies: bser: 2.1.1 - checksum: 8510230778ab3a51c27dffb1b76ef2c24fab672a42742d3c0a45c2e9d1e5f20210b1fbca33486088da4a9a3958bde96b5aec0a63aac9894b4e9df65c88b2cbd6 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 languageName: node linkType: hard @@ -7815,19 +6970,20 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.1.0 + resolution: "flat-cache@npm:3.1.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.7 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: 99312601d5b90f44aef403f17f056dc09be7e437703740b166cdc9386d99e681f74e6b6e8bd7d010bda66904ea643c9527276b1b80308a2119741d94108a4d8f languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.6 - resolution: "flatted@npm:3.2.6" - checksum: 33b87aa88dfa40ca6ee31d7df61712bbbad3d3c05c132c23e59b9b61d34631b337a18ff2b8dc5553acdc871ec72b741e485f78969cf006124a3f57174de29a0e +"flatted@npm:^3.2.7": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard @@ -7851,9 +7007,9 @@ __metadata: linkType: hard "fp-ts@npm:^2.5.3": - version: 2.12.2 - resolution: "fp-ts@npm:2.12.2" - checksum: 18c1975b5a5597d54d1905d322d2bdcf7c5aae3f1b48c2e13f5352cd10a7882a49bfe9681ed1f4392874f9b26dd29a997df6fa341a3731226e5737b0f9a49b38 + version: 2.16.1 + resolution: "fp-ts@npm:2.16.1" + checksum: 94e8bb1d037fdc44414ac93bbabecc3f94fb798d6564e77427ae2ecfa0f77681ec35968598d7b0cbf8274566469c7b42e8727390eb889e1121c199341939c2a3 languageName: node linkType: hard @@ -7897,7 +7053,7 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": +"fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: @@ -7923,18 +7079,18 @@ __metadata: linkType: hard "fsevents@npm:^2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard "fsevents@patch:fsevents@^2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin @@ -7948,18 +7104,6 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 - languageName: node - linkType: hard - "function.prototype.name@npm:^1.1.6": version: 1.1.6 resolution: "function.prototype.name@npm:1.1.6" @@ -7972,14 +7116,7 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -8032,18 +7169,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": - version: 1.1.2 - resolution: "get-intrinsic@npm:1.1.2" - dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.3 - checksum: 252f45491f2ba88ebf5b38018020c7cc3279de54b1d67ffb70c0cdf1dfa8ab31cd56467b5d117a8b4275b7a4dde91f86766b163a17a850f036528a7b2faafb2b - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" dependencies: @@ -8235,10 +7361,8 @@ __metadata: "@prettier/plugin-ruby": ^4.0.2 "@prettier/plugin-xml": ^3.2.1 "@semantic-release/commit-analyzer": ^11.0.0 - "@swc/helpers": ^0.5.2 - "@swc/wasm": ^1.3.89 "@trunkio/launcher": ^1.2.7 - "@tsconfig/node16-strictest-esm": ^1.0.3 + "@tsconfig/node20": ^20.1.2 "@types/babel__preset-env": ^7 "@types/esm": ^3 "@types/jest": ^29.5.5 @@ -8246,7 +7370,6 @@ __metadata: "@types/nconf": ^0.10.4 "@types/node": ^20.7.0 "@types/node-emoji": ^1.8.2 - "@types/prettier-package-json": ^2 "@types/rimraf": ^3 "@types/yargs": ^17.0.25 "@typescript-eslint/eslint-plugin": ^6.7.3 @@ -8260,9 +7383,8 @@ __metadata: cz-conventional-changelog: ^3.3.0 date-format: ^4.0.14 dotenv: ^16.3.1 - editorconfig: ^2.0.0 esbuild: ^0.19.3 - esbuild-plugin-eslint: ^0.3.6 + esbuild-node-externals: ^1.9.0 eslint: ^8.50.0 eslint-config-airbnb-base: ^15.0.0 eslint-config-prettier: ^9.0.0 @@ -8270,7 +7392,6 @@ __metadata: eslint-import-resolver-typescript: ^3.6.1 eslint-plugin-actions: ^2.0.0 eslint-plugin-array-func: ^4.0.0 - eslint-plugin-editorconfig: ^4.0.3 eslint-plugin-eslint-comments: ^3.2.0 eslint-plugin-import: ^2.28.1 eslint-plugin-jest: ^27.4.0 @@ -8299,7 +7420,6 @@ __metadata: node-emoji: ^2.1.0 prettier: ^3.0.3 prettier-eslint: ^15.0.1 - prettier-plugin-package: ^1.3.1 prettier-plugin-properties: ^0.2.0 pretty-quick: ^3.1.3 reflect-metadata: ^0.1.13 @@ -8310,6 +7430,7 @@ __metadata: ts-jest: ^29.1.1 ts-node: ^10.9.1 tslib: ^2.6.2 + types-package-json: ^2.0.39 typescript: ^5.2.2 typescript-eslint-language-service: ^5.0.5 yaml: ^2.3.2 @@ -8319,12 +7440,12 @@ __metadata: linkType: soft "gitlog@npm:^4.0.3": - version: 4.0.4 - resolution: "gitlog@npm:4.0.4" + version: 4.0.8 + resolution: "gitlog@npm:4.0.8" dependencies: debug: ^4.1.1 - tslib: ^1.14.1 - checksum: 16c07800b8e04ab556651ec396d39e48fba7464d79c7c0a40f81661d7cfbc37babfde1a0ebad7d0eaa24834b85043e07b1cfb8b9a983a73279566732fdd4da90 + tslib: ^2.5.0 + checksum: 5d7c9cbbef7862c9169263f249373e470c25351d47cf993b6e81e364669e34d048912a7e1f782b228522e0d885f8b9cb6e79b478132d65369693a04854594013 languageName: node linkType: hard @@ -8337,7 +7458,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": +"glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -8360,9 +7481,9 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.3, glob@npm:^10.3.7, glob@npm:~10.3.4": - version: 10.3.9 - resolution: "glob@npm:10.3.9" +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:~10.3.4": + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 jackspeak: ^2.3.5 @@ -8371,20 +7492,7 @@ __metadata: path-scurry: ^1.10.1 bin: glob: dist/esm/bin.mjs - checksum: 806a4ef5710beb15577cb0e27a103b39805e009e45e9e63455c385a5db7c4fb793d7399740f21bd133ca58ae6e4e5d56493f0a36bf2985e91eab51d12532f040 - languageName: node - linkType: hard - -"glob@npm:^8.0.1": - version: 8.0.3 - resolution: "glob@npm:8.0.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 50bcdea19d8e79d8de5f460b1939ffc2b3299eac28deb502093fdca22a78efebc03e66bf54f0abc3d3d07d8134d19a32850288b7440d77e072aa55f9d33b18c5 + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 languageName: node linkType: hard @@ -8428,15 +7536,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.15.0": - version: 13.17.0 - resolution: "globals@npm:13.17.0" - dependencies: - type-fest: ^0.20.2 - checksum: fbaf4112e59b92c9f5575e85ce65e9e17c0b82711196ec5f58beb08599bbd92fd72703d6dfc9b080381fd35b644e1b11dcf25b38cc2341ec21df942594cbc8ce - languageName: node - linkType: hard - "globals@npm:^13.19.0": version: 13.22.0 resolution: "globals@npm:13.22.0" @@ -8455,13 +7554,6 @@ __metadata: languageName: node linkType: hard -"globalyzer@npm:0.1.0": - version: 0.1.0 - resolution: "globalyzer@npm:0.1.0" - checksum: 419a0f95ba542534fac0842964d31b3dc2936a479b2b1a8a62bad7e8b61054faa9b0a06ad9f2e12593396b9b2621cac93358d9b3071d33723fb1778608d358a1 - languageName: node - linkType: hard - "globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -8503,13 +7595,6 @@ __metadata: languageName: node linkType: hard -"globrex@npm:^0.1.2": - version: 0.1.2 - resolution: "globrex@npm:0.1.2" - checksum: adca162494a176ce9ecf4dd232f7b802956bb1966b37f60c15e49d2e7d961b66c60826366dc2649093cad5a0d69970cfa8875bd1695b5a1a2f33dcd2aa88da3c - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -8519,27 +7604,20 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.10, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da languageName: node linkType: hard -"graceful-fs@npm:^4.2.11": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard -"grapheme-splitter@npm:^1.0.4": - version: 1.0.4 - resolution: "grapheme-splitter@npm:1.0.4" - checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 - languageName: node - linkType: hard - "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" @@ -8548,11 +7626,11 @@ __metadata: linkType: hard "handlebars@npm:^4.7.7": - version: 4.7.7 - resolution: "handlebars@npm:4.7.7" + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" dependencies: minimist: ^1.2.5 - neo-async: ^2.6.0 + neo-async: ^2.6.2 source-map: ^0.6.1 uglify-js: ^3.1.4 wordwrap: ^1.0.0 @@ -8561,7 +7639,7 @@ __metadata: optional: true bin: handlebars: bin/handlebars - checksum: 1e79a43f5e18d15742977cb987923eab3e2a8f44f2d9d340982bcb69e1735ed049226e534d7c1074eaddaf37e4fb4f471a8adb71cddd5bc8cf3f894241df5cee + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff languageName: node linkType: hard @@ -8642,11 +7720,9 @@ __metadata: linkType: hard "has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + version: 1.0.4 + resolution: "has@npm:1.0.4" + checksum: 8a11ba062e0627c9578a1d08285401e39f1d071a9692ddf793199070edb5648b21c774dd733e2a181edd635bf6862731885f476f4ccf67c998d7a5ff7cef2550 languageName: node linkType: hard @@ -8682,7 +7758,7 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^7.0.0": +"hosted-git-info@npm:^7.0.0, hosted-git-info@npm:^7.0.1": version: 7.0.1 resolution: "hosted-git-info@npm:7.0.1" dependencies: @@ -8698,13 +7774,6 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -8840,14 +7909,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.5, ignore@npm:^5.1.4, ignore@npm:^5.2.0": - version: 5.2.0 - resolution: "ignore@npm:5.2.0" - checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77 - languageName: node - linkType: hard - -"ignore@npm:^5.2.4, ignore@npm:~5.2.4": +"ignore@npm:^5.0.5, ignore@npm:^5.1.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:~5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef @@ -8922,13 +7984,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -8982,29 +8037,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:8.2.4": - version: 8.2.4 - resolution: "inquirer@npm:8.2.4" - dependencies: - ansi-escapes: ^4.2.1 - chalk: ^4.1.1 - cli-cursor: ^3.1.0 - cli-width: ^3.0.0 - external-editor: ^3.0.3 - figures: ^3.0.0 - lodash: ^4.17.21 - mute-stream: 0.0.8 - ora: ^5.4.1 - run-async: ^2.4.0 - rxjs: ^7.5.5 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - through: ^2.3.6 - wrap-ansi: ^7.0.0 - checksum: dfcb6529d3af443dfea2241cb471508091b51f5121a088fdb8728b23ec9b349ef0a5e13a0ef2c8e19457b0bed22f7cbbcd561f7a4529d084c562a58c605e2655 - languageName: node - linkType: hard - "inquirer@npm:8.2.5": version: 8.2.5 resolution: "inquirer@npm:8.2.5" @@ -9070,17 +8102,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3": - version: 1.0.3 - resolution: "internal-slot@npm:1.0.3" - dependencies: - get-intrinsic: ^1.1.0 - has: ^1.0.3 - side-channel: ^1.0.4 - checksum: 1944f92e981e47aebc98a88ff0db579fd90543d937806104d0b96557b10c1f170c51fb777b97740a8b6ddeec585fca8c39ae99fd08a8e058dfc8ab70937238bf - languageName: node - linkType: hard - "internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" @@ -9103,11 +8124,11 @@ __metadata: linkType: hard "io-ts@npm:^2.1.2": - version: 2.2.17 - resolution: "io-ts@npm:2.2.17" + version: 2.2.20 + resolution: "io-ts@npm:2.2.20" peerDependencies: fp-ts: ^2.5.0 - checksum: 51e8f2f3487a41e5f327be1529e63e6da042317a9153a7bfa4f799dc6a7332938b656ea9ca02ccdda391dc4e43571d44f9899dba0ef32e2c19bc6a6153dc5cac + checksum: 72517bf72ab1ad61b81960cb37f46e7a9f6dc84235b7d9b62f346ca84120dd89134b652fc3a0b9751129331084fd3e059349561bb96587d91ba7b40985fe7aac languageName: node linkType: hard @@ -9171,20 +8192,13 @@ __metadata: languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac languageName: node linkType: hard -"is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": - version: 1.2.4 - resolution: "is-callable@npm:1.2.4" - checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f - languageName: node - linkType: hard - "is-ci@npm:^3.0.1": version: 3.0.1 resolution: "is-ci@npm:3.0.1" @@ -9205,7 +8219,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": version: 2.13.0 resolution: "is-core-module@npm:2.13.0" dependencies: @@ -9214,15 +8228,6 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": - version: 2.10.0 - resolution: "is-core-module@npm:2.10.0" - dependencies: - has: ^1.0.3 - checksum: 0f3f77811f430af3256fa7bbc806f9639534b140f8ee69476f632c3e1eb4e28a38be0b9d1b8ecf596179c841b53576129279df95e7051d694dac4ceb6f967593 - languageName: node - linkType: hard - "is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -9232,7 +8237,7 @@ __metadata: languageName: node linkType: hard -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": +"is-docker@npm:^2.0.0": version: 2.2.1 resolution: "is-docker@npm:2.2.1" bin: @@ -9241,6 +8246,15 @@ __metadata: languageName: node linkType: hard +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -9295,6 +8309,17 @@ __metadata: languageName: node linkType: hard +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + "is-interactive@npm:^1.0.0": version: 1.0.0 resolution: "is-interactive@npm:1.0.0" @@ -9562,39 +8587,39 @@ __metadata: linkType: hard "istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.0 - resolution: "istanbul-lib-instrument@npm:5.2.0" + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: "@babel/core": ^7.12.3 "@babel/parser": ^7.14.7 "@istanbuljs/schema": ^0.1.2 istanbul-lib-coverage: ^3.2.0 semver: ^6.3.0 - checksum: 7c242ed782b6bf7b655656576afae8b6bd23dcc020e5fdc1472cca3dfb6ddb196a478385206d0df5219b9babf46ac4f21fea5d8ea9a431848b6cca6007012353 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 languageName: node linkType: hard "istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.0 - resolution: "istanbul-lib-instrument@npm:6.0.0" + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" dependencies: "@babel/core": ^7.12.3 "@babel/parser": ^7.14.7 "@istanbuljs/schema": ^0.1.2 istanbul-lib-coverage: ^3.2.0 semver: ^7.5.4 - checksum: b9dc3723a769e65dbe1b912f935088ffc07cf393fa78a3ce79022c91aabb0ad01405ffd56083cdd822e514798e9daae3ea7bfe85633b094ecb335d28eb0a3f97 + checksum: fb23472e739cfc9b027cefcd7d551d5e7ca7ff2817ae5150fab99fe42786a7f7b56a29a2aa8309c37092e18297b8003f9c274f50ca4360949094d17fbac81472 languageName: node linkType: hard "istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" dependencies: istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 + make-dir: ^4.0.0 supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 languageName: node linkType: hard @@ -9610,25 +8635,25 @@ __metadata: linkType: hard "istanbul-reports@npm:^3.1.3": - version: 3.1.5 - resolution: "istanbul-reports@npm:3.1.5" + version: 3.1.6 + resolution: "istanbul-reports@npm:3.1.6" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: 7867228f83ed39477b188ea07e7ccb9b4f5320b6f73d1db93a0981b7414fa4ef72d3f80c4692c442f90fc250d9406e71d8d7ab65bb615cb334e6292b73192b89 + checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 languageName: node linkType: hard "jackspeak@npm:^2.3.5": - version: 2.3.5 - resolution: "jackspeak@npm:2.3.5" + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: c2c211f13ceffa05f6c2a2fe82667303c81af6f9f53619b9e4fd403207ffe666428a017f61cd43b3478759188917eda14a81f8823b6dd40a8627e46d973a37df + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 languageName: node linkType: hard @@ -9742,18 +8767,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^29.0.3": - version: 29.0.3 - resolution: "jest-diff@npm:29.0.3" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.0.0 - jest-get-type: ^29.0.0 - pretty-format: ^29.0.3 - checksum: 1e12b63ea6254ea25146b6fb19f8b2d1ba334e1b8b635a007767c17dc272728afbdf41ccccce26c2a40cd9c7f3176bcfed53be2572927a3fc7b1ee5fff43eb26 - languageName: node - linkType: hard - "jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" @@ -9802,13 +8815,6 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^29.0.0": - version: 29.0.0 - resolution: "jest-get-type@npm:29.0.0" - checksum: 9abdd11d69788963a92fb9d813a7b887654ecc8f3a3c8bf83166d33aaf4d57ed380e74ab8ef106f57565dd235446ca6ebc607679f0c516c4633e6d09f0540a2b - languageName: node - linkType: hard - "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -9861,18 +8867,6 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:^29.0.3": - version: 29.0.3 - resolution: "jest-matcher-utils@npm:29.0.3" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.0.3 - jest-get-type: ^29.0.0 - pretty-format: ^29.0.3 - checksum: e39ab74a046ada8fbd75a275bfe54bd5f8ec14a98f77e1162a49d4e1ea82e68c5a4575691767cea0f60dd0b74cb481275012bf3467cd91fdb014311c670b8a83 - languageName: node - linkType: hard - "jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" @@ -9885,23 +8879,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^29.0.3": - version: 29.0.3 - resolution: "jest-message-util@npm:29.0.3" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.0.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.0.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 04bee1fee10106f4eb875092e5d06187930d44050a4f99e7aa1d1e42768b18d6d9e5439623d9242202942deb8a1eec08359e0cd19a43ae505d96aeaf243a3f8d - languageName: node - linkType: hard - "jest-message-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-message-util@npm:29.7.0" @@ -9931,14 +8908,14 @@ __metadata: linkType: hard "jest-pnp-resolver@npm:^1.2.2": - version: 1.2.2 - resolution: "jest-pnp-resolver@npm:1.2.2" + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" peerDependencies: jest-resolve: "*" peerDependenciesMeta: jest-resolve: optional: true - checksum: bd85dcc0e76e0eb0c3d56382ec140f08d25ff4068cda9d0e360bb78fb176cb726d0beab82dc0e8694cafd09f55fee7622b8bcb240afa5fad301f4ed3eebb4f47 + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 languageName: node linkType: hard @@ -10063,21 +9040,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.0.0, jest-util@npm:^29.0.3": - version: 29.0.3 - resolution: "jest-util@npm:29.0.3" - dependencies: - "@jest/types": ^29.0.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 39c31e75ba5bcb4c3ccdf0895f9fdbb83f839c432e7c6639a688beb414d681b5d50282da017c723ea1f2a7033e74a4938fd33dcff231c3e90f903173919991d5 - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" dependencies: @@ -10216,14 +9179,21 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-fixer@npm:^1.5.1": - version: 1.6.13 - resolution: "json-fixer@npm:1.6.13" + version: 1.6.15 + resolution: "json-fixer@npm:1.6.15" dependencies: - "@babel/runtime": ^7.14.6 + "@babel/runtime": ^7.18.9 chalk: ^4.1.2 pegjs: ^0.10.0 - checksum: 21a650768d22290a5cefd0a36a3e709c13edfde9e3d627d5cdfefd54d35d537d6d16446cb5f8ed9a7bf409fb354a9aec7d02bd07d13e3f733cb2bf25c0f6bab9 + checksum: ae805d5155ace57fd588a9ec129efd7324c3ef7f622988c66301eed9380da0acccdd35e9355b307c53051b246e2118d17a40775a2b13f19221574f5f662d4b15 languageName: node linkType: hard @@ -10294,15 +9264,6 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.1": - version: 2.2.1 - resolution: "json5@npm:2.2.1" - bin: - json5: lib/cli.js - checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b - languageName: node - linkType: hard - "json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -10340,9 +9301,9 @@ __metadata: linkType: hard "just-diff-apply@npm:^5.2.0": - version: 5.4.1 - resolution: "just-diff-apply@npm:5.4.1" - checksum: e324ccfdb5df174e3ec30751f6b7e8d84a75a1c559c7b294ccba79c94390b424cc84714cb2dc72cef41e0ba0cf5ecce33e5d6dedd14f5700285de38892d81cce + version: 5.5.0 + resolution: "just-diff-apply@npm:5.5.0" + checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa languageName: node linkType: hard @@ -10353,6 +9314,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.3 + resolution: "keyv@npm:4.5.3" + dependencies: + json-buffer: 3.0.1 + checksum: 3ffb4d5b72b6b4b4af443bbb75ca2526b23c750fccb5ac4c267c6116888b4b65681015c2833cb20d26cf3e6e32dac6b988c77f7f022e1a571b7d90f1442257da + languageName: node + linkType: hard + "kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -10367,13 +9337,6 @@ __metadata: languageName: node linkType: hard -"klona@npm:^2.0.4": - version: 2.0.5 - resolution: "klona@npm:2.0.5" - checksum: 8c976126ea252b766e648a4866e1bccff9d3b08432474ad80c559f6c7265cf7caede2498d463754d8c88c4759895edd8210c85c0d3155e6aae4968362889466f - languageName: node - linkType: hard - "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -10391,41 +9354,41 @@ __metadata: languageName: node linkType: hard -"libnpmaccess@npm:^8.0.0": - version: 8.0.0 - resolution: "libnpmaccess@npm:8.0.0" +"libnpmaccess@npm:^8.0.1": + version: 8.0.1 + resolution: "libnpmaccess@npm:8.0.1" dependencies: - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 npm-registry-fetch: ^16.0.0 - checksum: a9514acfe35e55bff55da535c296c8e24549eeba6f9391e20337a0272a0e13ac4fe56ebe29667c411c422c8d7d6607fe7b2b367a13aec8064295315960dbaa7c + checksum: 3b122b307d93e478a74df82c3e372f2e5b02256124f8b08469ee40514bc95a416df6639a9badd456d7ff4cb24bd6bcc2245d17e45d8e0cf0262b5a9ded276ea1 languageName: node linkType: hard -"libnpmdiff@npm:^6.0.1": - version: 6.0.1 - resolution: "libnpmdiff@npm:6.0.1" +"libnpmdiff@npm:^6.0.2": + version: 6.0.2 + resolution: "libnpmdiff@npm:6.0.2" dependencies: - "@npmcli/arborist": ^7.1.0 + "@npmcli/arborist": ^7.2.0 "@npmcli/disparity-colors": ^3.0.0 "@npmcli/installed-package-contents": ^2.0.2 binary-extensions: ^2.2.0 diff: ^5.1.0 minimatch: ^9.0.0 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 pacote: ^17.0.4 - tar: ^6.1.13 - checksum: d566345e0caa714f1c3528a2ab59103b180055cc5cd1427602e0f661a8022ac0720b231351b178e625645a708d500ff6483a4219d19b2672dfc9076334219cbf + tar: ^6.2.0 + checksum: d31349d5468ebbd3dc3e3494c73f79185e8cc46ab152426d8798f3b4cca8caa7009313dcb412374cfc59944b1eb0c8752fa6ce95311fdd44977367d7376d880d languageName: node linkType: hard -"libnpmexec@npm:^7.0.1": - version: 7.0.1 - resolution: "libnpmexec@npm:7.0.1" +"libnpmexec@npm:^7.0.2": + version: 7.0.2 + resolution: "libnpmexec@npm:7.0.2" dependencies: - "@npmcli/arborist": ^7.1.0 + "@npmcli/arborist": ^7.2.0 "@npmcli/run-script": ^7.0.1 ci-info: ^3.7.1 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 npmlog: ^7.0.1 pacote: ^17.0.4 proc-log: ^3.0.0 @@ -10433,16 +9396,16 @@ __metadata: read-package-json-fast: ^3.0.2 semver: ^7.3.7 walk-up-path: ^3.0.1 - checksum: e3178873c2b6d3a0f4045e94b1ab4867d0518bff6a25822e69eee37eb926a7b388cdca5941d58280896b171cd9186bad4d8ab2ad98caca72b173f65680c4e7dd + checksum: dd4fdf249be4ba318884fd81782b446cff52dc27f255fb1b64b9aff3dd693644e4d59de122677dbba54ad39955fa6a626738b7e8b44106768e01a811d0e0897e languageName: node linkType: hard -"libnpmfund@npm:^4.1.1": - version: 4.1.1 - resolution: "libnpmfund@npm:4.1.1" +"libnpmfund@npm:^5.0.0": + version: 5.0.0 + resolution: "libnpmfund@npm:5.0.0" dependencies: - "@npmcli/arborist": ^7.1.0 - checksum: 958da8ee4623920b9a1aea78e6a39b57b83652328720e315babcc7720d14822ebd2c53c4e0283b4ae25f661475fcc2119af41dfbd13425c045d55b017ab71327 + "@npmcli/arborist": ^7.2.0 + checksum: 4d7956af493a1e8be435d70647dc0f377f7a47c5d5417d3da7a5392399587e0dd69418bd0d431651ca6b727cafdcbcf5aca57ad7328dee8ac72abfe17894af97 languageName: node linkType: hard @@ -10456,41 +9419,41 @@ __metadata: languageName: node linkType: hard -"libnpmorg@npm:^6.0.0": - version: 6.0.0 - resolution: "libnpmorg@npm:6.0.0" +"libnpmorg@npm:^6.0.1": + version: 6.0.1 + resolution: "libnpmorg@npm:6.0.1" dependencies: aproba: ^2.0.0 npm-registry-fetch: ^16.0.0 - checksum: c5e2625ca1db1acc34ff6ce649d2a310e7135ee83e8503a76dcf2390b2552e9bdb38a768cef07a337019ac3aa53fbb7441b13ca1494f6efec058bf0842b3bba0 + checksum: 2f4f5d698a38ab57d1289aa6a4bf0067b12703ed014a227c5edf91a81f1d8282de7d45774d85de410d97aa84ddaa5ec72e58666763cbe250e1d8666f95052a0e languageName: node linkType: hard -"libnpmpack@npm:^6.0.1": - version: 6.0.1 - resolution: "libnpmpack@npm:6.0.1" +"libnpmpack@npm:^6.0.2": + version: 6.0.2 + resolution: "libnpmpack@npm:6.0.2" dependencies: - "@npmcli/arborist": ^7.1.0 + "@npmcli/arborist": ^7.2.0 "@npmcli/run-script": ^7.0.1 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 pacote: ^17.0.4 - checksum: 270c5a5979b75fbcb2013116f31586bcd8d6d5523647f77a980becf40e766d5abeaff99be6a5d3e59ad6ea3aada2d043f0b1ebff5589bd9bd39b0d7837ae99a9 + checksum: b94c7c8cf197348505439131ab47ca6f2caf87a6727123f1953ae3defccce1b2efa643950b0ab7b58777c698f7a0a4da8dc57689340738b6b14edacc0c415fe5 languageName: node linkType: hard -"libnpmpublish@npm:^9.0.0": - version: 9.0.0 - resolution: "libnpmpublish@npm:9.0.0" +"libnpmpublish@npm:^9.0.1": + version: 9.0.1 + resolution: "libnpmpublish@npm:9.0.1" dependencies: ci-info: ^3.6.1 normalize-package-data: ^6.0.0 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 npm-registry-fetch: ^16.0.0 proc-log: ^3.0.0 semver: ^7.3.7 sigstore: ^2.1.0 ssri: ^10.0.5 - checksum: 5c5b483601eafdd59307f7a7bea40c3340b034b031cbe2bf2086d88bb39d04f0a1ac2dbb9386eb9a06bc6bb7aef9b1d3ed57cf30733f008785e800f9439832ad + checksum: a7a0bb31d12674cca8b713d6206b5588d01e8d0b2fcbeae424c4f86a2d40c9527094ba957c783513f5a57daa2f8cd8d3bb268c61e0c1d9d07e6c76cde1a9eeb0 languageName: node linkType: hard @@ -10853,9 +9816,9 @@ __metadata: linkType: hard "loglevel@npm:^1.4.1": - version: 1.8.0 - resolution: "loglevel@npm:1.8.0" - checksum: 41aeea17de24aba8dba68084a31fe9189648bce4f39c1277e021bb276c3c53a75b0d337395919cf271068ad40ecefabad0e4fdeb4a8f11908beee532b898f4a7 + version: 1.8.1 + resolution: "loglevel@npm:1.8.1" + checksum: a1a62db40291aaeaef2f612334c49e531bff71cc1d01a2acab689ab80d59e092f852ab164a5aedc1a752fdc46b7b162cb097d8a9eb2cf0b299511106c29af61d languageName: node linkType: hard @@ -10899,18 +9862,18 @@ __metadata: linkType: hard "lru-cache@npm:^7.7.1": - version: 7.13.2 - resolution: "lru-cache@npm:7.13.2" - checksum: dfed24e52bae95edf490d0f28f4f14552319ac7e7dc37ae0b84a72e084949233821b33227271abe81d8361ac079810f9d171a706f316cfdeda135012e4311015 + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 languageName: node linkType: hard -"make-dir@npm:^3.0.0": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a languageName: node linkType: hard @@ -10921,30 +9884,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.2.0 - resolution: "make-fetch-happen@npm:10.2.0" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 2f6c294179972f56fab40fd8618f07841e06550692bb78f6da16e7afaa9dca78c345b08cf44a77a8907ef3948e4dc77e93eb7492b8381f1217d7ac057a7522f8 - languageName: node - linkType: hard - "make-fetch-happen@npm:^11.0.3": version: 11.1.1 resolution: "make-fetch-happen@npm:11.1.1" @@ -11194,24 +10133,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.1": - version: 9.0.1 - resolution: "minimatch@npm:9.0.1" - dependencies: - brace-expansion: ^2.0.1 - checksum: 97f5f5284bb57dc65b9415dec7f17a0f6531a33572193991c60ff18450dcfad5c2dad24ffeaf60b5261dccd63aae58cc3306e2209d57e7f88c51295a532d8ec3 - languageName: node - linkType: hard - -"minimatch@npm:9.0.2": - version: 9.0.2 - resolution: "minimatch@npm:9.0.2" - dependencies: - brace-expansion: ^2.0.1 - checksum: 2eb12e2047a062fdb973fb51b9803f2455e3a00977858c038d66646d303a5a15bbcbc6ed5a2fc403bc869b1309f829ed3acd881d3246faf044ea7a494974b924 - languageName: node - linkType: hard - "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -11221,15 +10142,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": - version: 5.1.0 - resolution: "minimatch@npm:5.1.0" - dependencies: - brace-expansion: ^2.0.1 - checksum: 15ce53d31a06361e8b7a629501b5c75491bc2b59712d53e802b1987121d91b433d73fcc5be92974fde66b2b51d8fb28d75a9ae900d249feb792bb1ba2a4f0a90 - languageName: node - linkType: hard - "minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:~9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -11250,13 +10162,6 @@ __metadata: languageName: node linkType: hard -"minimist@npm:1.2.6, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": - version: 1.2.6 - resolution: "minimist@npm:1.2.6" - checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb - languageName: node - linkType: hard - "minimist@npm:1.2.7": version: 1.2.7 resolution: "minimist@npm:1.2.7" @@ -11264,7 +10169,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.8": +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -11280,21 +10185,6 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" - dependencies: - encoding: ^0.1.13 - minipass: ^3.1.6 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 1334732859a3f7959ed22589bafd9c40384b885aebb5932328071c33f86b3eb181d54c86919675d1825ab5f1c8e4f328878c863873258d113c29d79a4b0c9c9f - languageName: node - linkType: hard - "minipass-fetch@npm:^3.0.0": version: 3.0.4 resolution: "minipass-fetch@npm:3.0.4" @@ -11347,12 +10237,12 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.3.5 - resolution: "minipass@npm:3.3.5" +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" dependencies: yallist: ^4.0.0 - checksum: f89f02bcaa0e0e4bb4c44ec796008e69fbca62db0aba6ead1bc57d25bdaefdf42102130f4f9ecb7d9c6b6cd35ff7b0c7b97d001d3435da8e629fb68af3aea57e + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 languageName: node linkType: hard @@ -11363,10 +10253,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.3 - resolution: "minipass@npm:7.0.3" - checksum: 6f1614f5b5b55568a46bca5fec0e7c46dac027691db27d0e1923a8192866903144cd962ac772c0e9f89b608ea818b702709c042bce98e190d258847d85461531 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 languageName: node linkType: hard @@ -11397,9 +10287,9 @@ __metadata: linkType: hard "module-alias@npm:^2.2.2": - version: 2.2.2 - resolution: "module-alias@npm:2.2.2" - checksum: 4b5543f834b484033e5bd184096ca8276b9195e32e88883ee6ea8d3a4789d97c470d26f5fa7271bd7a26588bf67e4d27dbdb594ee327aef1c9619d855dc78342 + version: 2.2.3 + resolution: "module-alias@npm:2.2.3" + checksum: 6169187f69de8dcf8af8fab4d9e53ada6338a43f7670d38d0b27a089c28f9eb18d85a6fd46f11b54c63079a68449b85d071d7db0ac067f9f7faedbcd6231456d languageName: node linkType: hard @@ -11482,7 +10372,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.6.0": +"neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 @@ -11515,7 +10405,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2.6.7, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": +"node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" dependencies: @@ -11529,27 +10419,21 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^9.0.0, node-gyp@npm:latest": - version: 9.1.0 - resolution: "node-gyp@npm:9.1.0" +"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^5.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 - bin: - node-gyp: bin/node-gyp.js - checksum: 1437fa4a879b5b9010604128e8da8609b57c66034262087539ee04a8b764b8436af2be01bab66f8fc729a3adba2dcc21b10a32b9f552696c3fa8cd657d134fc4 + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 languageName: node linkType: hard -"node-gyp@npm:^9.4.0": +"node-gyp@npm:^9.0.0, node-gyp@npm:^9.4.0, node-gyp@npm:latest": version: 9.4.0 resolution: "node-gyp@npm:9.4.0" dependencies: @@ -11577,28 +10461,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 - languageName: node - linkType: hard - -"node-releases@npm:^2.0.6": - version: 2.0.6 - resolution: "node-releases@npm:2.0.6" - checksum: e86a926dc9fbb3b41b4c4a89d998afdf140e20a4e8dbe6c0a807f7b2948b42ea97d7fd3ad4868041487b6e9ee98409829c6e4d84a734a4215dff060a7fbeb4bf - languageName: node - linkType: hard - -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" - dependencies: - abbrev: 1 - bin: - nopt: bin/nopt.js - checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 languageName: node linkType: hard @@ -11706,7 +10572,7 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:^11.0.0": +"npm-package-arg@npm:^11.0.0, npm-package-arg@npm:^11.0.1": version: 11.0.1 resolution: "npm-package-arg@npm:11.0.1" dependencies: @@ -11790,12 +10656,12 @@ __metadata: linkType: hard "npm@npm:^10.0.0": - version: 10.1.0 - resolution: "npm@npm:10.1.0" + version: 10.2.0 + resolution: "npm@npm:10.2.0" dependencies: "@isaacs/string-locale-compare": ^1.1.0 - "@npmcli/arborist": ^7.1.0 - "@npmcli/config": ^7.2.0 + "@npmcli/arborist": ^7.2.0 + "@npmcli/config": ^8.0.0 "@npmcli/fs": ^3.1.0 "@npmcli/map-workspaces": ^3.0.4 "@npmcli/package-json": ^5.0.0 @@ -11812,34 +10678,35 @@ __metadata: columnify: ^1.6.0 fastest-levenshtein: ^1.0.16 fs-minipass: ^3.0.3 - glob: ^10.3.3 + glob: ^10.3.10 graceful-fs: ^4.2.11 - hosted-git-info: ^7.0.0 + hosted-git-info: ^7.0.1 ini: ^4.1.1 init-package-json: ^6.0.0 is-cidr: ^4.0.2 json-parse-even-better-errors: ^3.0.0 - libnpmaccess: ^8.0.0 - libnpmdiff: ^6.0.1 - libnpmexec: ^7.0.1 - libnpmfund: ^4.1.1 + libnpmaccess: ^8.0.1 + libnpmdiff: ^6.0.2 + libnpmexec: ^7.0.2 + libnpmfund: ^5.0.0 libnpmhook: ^10.0.0 - libnpmorg: ^6.0.0 - libnpmpack: ^6.0.1 - libnpmpublish: ^9.0.0 + libnpmorg: ^6.0.1 + libnpmpack: ^6.0.2 + libnpmpublish: ^9.0.1 libnpmsearch: ^7.0.0 libnpmteam: ^6.0.0 libnpmversion: ^5.0.0 make-fetch-happen: ^13.0.0 minimatch: ^9.0.3 - minipass: ^7.0.3 + minipass: ^7.0.4 minipass-pipeline: ^1.2.4 ms: ^2.1.2 node-gyp: ^9.4.0 nopt: ^7.2.0 + normalize-package-data: ^6.0.0 npm-audit-report: ^5.0.0 npm-install-checks: ^6.2.0 - npm-package-arg: ^11.0.0 + npm-package-arg: ^11.0.1 npm-pick-manifest: ^9.0.0 npm-profile: ^9.0.0 npm-registry-fetch: ^16.0.0 @@ -11852,9 +10719,11 @@ __metadata: qrcode-terminal: ^0.12.0 read: ^2.1.0 semver: ^7.5.4 + spdx-expression-parse: ^3.0.1 ssri: ^10.0.5 + strip-ansi: ^6.0.1 supports-color: ^9.4.0 - tar: ^6.1.15 + tar: ^6.2.0 text-table: ~0.2.0 tiny-relative-date: ^1.3.0 treeverse: ^3.0.0 @@ -11864,7 +10733,7 @@ __metadata: bin: npm: bin/npm-cli.js npx: bin/npx-cli.js - checksum: 64a04aec8e5cf7885fb899daaaed4a835e840f7c1c28d154cc1b0c1de19930c51b478d8b5585af197f81ef5e40e1fa0a72d88d33ba979a0380b21676a95caea4 + checksum: af3d5f37f4a42367f027b10ef27cadcb2406217d92f433a43730f7e3817de40490cc9edceb0220e8b6f27c211a1e77598cf386756729fc28ed26b80d4bae7d3e languageName: node linkType: hard @@ -11899,14 +10768,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.0, object-inspect@npm:^1.9.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 - languageName: node - linkType: hard - -"object-inspect@npm:^1.12.3": +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db @@ -11920,19 +10782,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.2": - version: 4.1.3 - resolution: "object.assign@npm:4.1.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - has-symbols: ^1.0.3 - object-keys: ^1.1.1 - checksum: fe87c8acd60e0d7140e1eae8886804e7497bf6a019bae715084083c2abd1760bd5aa9c3f0e5b02c82ca5cc33b641dc908c42c86c6f7d6dfd9f083a7baa95d318 - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": version: 4.1.4 resolution: "object.assign@npm:4.1.4" dependencies: @@ -11945,13 +10795,13 @@ __metadata: linkType: hard "object.entries@npm:^1.1.5": - version: 1.1.5 - resolution: "object.entries@npm:1.1.5" + version: 1.1.7 + resolution: "object.entries@npm:1.1.7" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: d658696f74fd222060d8428d2a9fda2ce736b700cb06f6bdf4a16a1892d145afb746f453502b2fa55d1dca8ead6f14ddbcf66c545df45adadea757a6c4cd86c7 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: da287d434e7e32989586cd734382364ba826a2527f2bc82e6acbf9f9bfafa35d51018b66ec02543ffdfa2a5ba4af2b6f1ca6e588c65030cb4fd9c67d6ced594c languageName: node linkType: hard @@ -12032,28 +10882,15 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.4.0": - version: 8.4.0 - resolution: "open@npm:8.4.0" +"open@npm:^9.1.0": + version: 9.1.0 + resolution: "open@npm:9.1.0" dependencies: - define-lazy-prop: ^2.0.0 - is-docker: ^2.1.1 + default-browser: ^4.0.0 + define-lazy-prop: ^3.0.0 + is-inside-container: ^1.0.0 is-wsl: ^2.2.0 - checksum: e9545bec64cdbf30a0c35c1bdc310344adf8428a117f7d8df3c0af0a0a24c513b304916a6d9b11db0190ff7225c2d578885080b761ed46a3d5f6f1eebb98b63c - languageName: node - linkType: hard - -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" - dependencies: - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9 languageName: node linkType: hard @@ -12487,9 +11324,9 @@ __metadata: linkType: hard "pirates@npm:^4.0.4": - version: 4.0.5 - resolution: "pirates@npm:4.0.5" - checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 languageName: node linkType: hard @@ -12520,12 +11357,12 @@ __metadata: linkType: hard "postcss-selector-parser@npm:^6.0.10": - version: 6.0.10 - resolution: "postcss-selector-parser@npm:6.0.10" + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 46afaa60e3d1998bd7adf6caa374baf857cc58d3ff944e29459c9a9e4680a7fe41597bd5b755fc81d7c388357e9bf67c0251d047c640a09f148e13606b8a8608 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 languageName: node linkType: hard @@ -12567,15 +11404,6 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-package@npm:^1.3.1": - version: 1.3.1 - resolution: "prettier-plugin-package@npm:1.3.1" - peerDependencies: - prettier: ^2.0.0 - checksum: d907c80dbabb1d81157697eca537f4e51d57c808dd7b69a5825d730a8be0026ac13372f8b1a0d70b966a278276a5b495d4445d09a30af7f0e3a4331fd05243b9 - languageName: node - linkType: hard - "prettier-plugin-properties@npm:^0.2.0": version: 0.2.0 resolution: "prettier-plugin-properties@npm:0.2.0" @@ -12586,11 +11414,11 @@ __metadata: linkType: hard "prettier@npm:^2.5.1": - version: 2.7.1 - resolution: "prettier@npm:2.7.1" + version: 2.8.8 + resolution: "prettier@npm:2.8.8" bin: prettier: bin-prettier.js - checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 languageName: node linkType: hard @@ -12613,18 +11441,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.0.3": - version: 29.0.3 - resolution: "pretty-format@npm:29.0.3" - dependencies: - "@jest/schemas": ^29.0.0 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 239aa73b09919b195353e62530908b43883af66e3ba8ecb5fda77578b20f297fd774fcf53abbedcb6cfff72521e8a220052a49e6a0e29418082d06386da27bac - languageName: node - linkType: hard - -"pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -12758,16 +11575,16 @@ __metadata: linkType: hard "punycode@npm:^2.1.0": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 languageName: node linkType: hard "pure-rand@npm:^6.0.0": - version: 6.0.3 - resolution: "pure-rand@npm:6.0.3" - checksum: d08701cfd1528c5f9cdca996776c498c92767722561f9b8f9e62645d5025c8a3bf60b90f76f262aaab124e6bb1d58e1b0850722dbca2846a19b708801956e56b + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: e1c4e69f8bf7303e5252756d67c3c7551385cd34d94a1f511fe099727ccbab74c898c03a06d4c4a24a89b51858781057b83ebbfe740d984240cdc04fead36068 languageName: node linkType: hard @@ -12928,19 +11745,19 @@ __metadata: linkType: hard "readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard "readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" dependencies: core-util-is: ~1.0.0 inherits: ~2.0.3 @@ -12949,7 +11766,7 @@ __metadata: safe-buffer: ~5.1.1 string_decoder: ~1.1.1 util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 languageName: node linkType: hard @@ -13008,15 +11825,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.0.1": - version: 10.0.1 - resolution: "regenerate-unicode-properties@npm:10.0.1" - dependencies: - regenerate: ^1.4.2 - checksum: 1b638b7087d8143e5be3e20e2cda197ea0440fa0bc2cc49646b2f50c5a2b1acdc54b21e4215805a5a2dd487c686b2291accd5ad00619534098d2667e76247754 - languageName: node - linkType: hard - "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.1 resolution: "regenerate-unicode-properties@npm:10.1.1" @@ -13033,13 +11841,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.4": - version: 0.13.9 - resolution: "regenerator-runtime@npm:0.13.9" - checksum: 65ed455fe5afd799e2897baf691ca21c2772e1a969d19bb0c4695757c2d96249eb74ee3553ea34a91062b2a676beedf630b4c1551cc6299afb937be1426ec55e - languageName: node - linkType: hard - "regenerator-runtime@npm:^0.14.0": version: 0.14.0 resolution: "regenerator-runtime@npm:0.14.0" @@ -13063,16 +11864,7 @@ __metadata: languageName: node linkType: hard -"regexp-tree@npm:^0.1.21": - version: 0.1.24 - resolution: "regexp-tree@npm:0.1.24" - bin: - regexp-tree: bin/regexp-tree - checksum: 5807013289d9205288d665e0f8d8cff94843dfd55fdedd1833eb9d9bbd07188a37dfa02942ec5cdc671180037f715148fac1ba6f18fd6be4268e5a8feb49d340 - languageName: node - linkType: hard - -"regexp-tree@npm:^0.1.27": +"regexp-tree@npm:^0.1.21, regexp-tree@npm:^0.1.27": version: 0.1.27 resolution: "regexp-tree@npm:0.1.27" bin: @@ -13081,17 +11873,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.4.3 - resolution: "regexp.prototype.flags@npm:1.4.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - functions-have-names: ^1.2.2 - checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.1": version: 1.5.1 resolution: "regexp.prototype.flags@npm:1.5.1" @@ -13103,27 +11884,6 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 - languageName: node - linkType: hard - -"regexpu-core@npm:^5.1.0": - version: 5.1.0 - resolution: "regexpu-core@npm:5.1.0" - dependencies: - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.0.1 - regjsgen: ^0.6.0 - regjsparser: ^0.8.2 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.0.0 - checksum: 7b4eb8d182d9d10537a220a93138df5bc7eaf4ed53e36b95e8427d33ed8a2b081468f1a15d3e5fcee66517e1df7f5ca180b999e046d060badd97150f2ffe87b2 - languageName: node - linkType: hard - "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -13156,13 +11916,6 @@ __metadata: languageName: node linkType: hard -"regjsgen@npm:^0.6.0": - version: 0.6.0 - resolution: "regjsgen@npm:0.6.0" - checksum: c5158ebd735e75074e41292ade1ff05d85566d205426cc61501e360c450a63baced8512ee3ae238e5c0a0e42969563c7875b08fa69d6f0402daf36bcb3e4d348 - languageName: node - linkType: hard - "regjsparser@npm:^0.10.0": version: 0.10.0 resolution: "regjsparser@npm:0.10.0" @@ -13174,17 +11927,6 @@ __metadata: languageName: node linkType: hard -"regjsparser@npm:^0.8.2": - version: 0.8.4 - resolution: "regjsparser@npm:0.8.4" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: d069b932491761cda127ce11f6bd2729c3b1b394a35200ec33f1199e937423db28ceb86cf33f0a97c76ecd7c0f8db996476579eaf0d80a1f74c1934f4ca8b27a - languageName: node - linkType: hard - "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -13312,20 +12054,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e - languageName: node - linkType: hard - -"resolve@npm:^1.22.4": +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.4": version: 1.22.6 resolution: "resolve@npm:1.22.6" dependencies: @@ -13347,22 +12076,9 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" - dependencies: - is-core-module: ^2.9.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.22.4#~builtin": +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": version: 1.22.6 - resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=07638b" + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 @@ -13375,7 +12091,7 @@ __metadata: "resolve@patch:resolve@~1.7.1#~builtin": version: 1.7.1 - resolution: "resolve@patch:resolve@npm%3A1.7.1#~builtin::version=1.7.1&hash=07638b" + resolution: "resolve@patch:resolve@npm%3A1.7.1#~builtin::version=1.7.1&hash=3bafbf" dependencies: path-parse: ^1.0.5 checksum: c2a6f0e3856ac1ddc8297091c20ca6c36d99bf289ddea366c46bd2a7ed8b31075c7f9d01ff5d390ebed1fe41b9fabe57a79ae087992ba92e3592f0c3be07c1ac @@ -13445,13 +12161,22 @@ __metadata: linkType: hard "rimraf@npm:^5.0.4": - version: 5.0.4 - resolution: "rimraf@npm:5.0.4" + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" dependencies: glob: ^10.3.7 bin: rimraf: dist/esm/bin.mjs - checksum: 44230119678153dc46f8e634947123e2a516689818cb1ca4b03c470cb8eece0f6a29135b9c8f785d30e50c34175a58927b8033a9eef0e154a9fab81b80712112 + checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 + languageName: node + linkType: hard + +"run-applescript@npm:^5.0.0": + version: 5.0.0 + resolution: "run-applescript@npm:5.0.0" + dependencies: + execa: ^5.0.0 + checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77 languageName: node linkType: hard @@ -13505,11 +12230,11 @@ __metadata: linkType: hard "rxjs@npm:^7.5.5": - version: 7.5.6 - resolution: "rxjs@npm:7.5.6" + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" dependencies: tslib: ^2.1.0 - checksum: fc05f01364a74dac57490fb3e07ea63b422af04017fae1db641a009073f902ef69f285c5daac31359620dc8d9aee7d81e42b370ca2a8573d1feae0b04329383b + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 languageName: node linkType: hard @@ -13612,15 +12337,15 @@ __metadata: linkType: hard "semver@npm:2 || 3 || 4 || 5": - version: 5.7.1 - resolution: "semver@npm:5.7.1" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard -"semver@npm:7.5.4, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:7.5.4, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -13631,16 +12356,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" - bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 - languageName: node - linkType: hard - -"semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -13649,17 +12365,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": - version: 7.3.7 - resolution: "semver@npm:7.3.7" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -13818,17 +12523,7 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.0 - resolution: "socks@npm:2.7.0" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 0b5d94e2b3c11e7937b40fc5dac1e80d8b92a330e68c51f1d271ce6980c70adca42a3f8cd47c4a5769956bada074823b53374f2dc5f2ea5c2121b222dec6eadf - languageName: node - linkType: hard - -"socks@npm:^2.7.1": +"socks@npm:^2.6.2, socks@npm:^2.7.1": version: 2.7.1 resolution: "socks@npm:2.7.1" dependencies: @@ -13873,12 +12568,12 @@ __metadata: linkType: hard "spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" dependencies: spdx-expression-parse: ^3.0.0 spdx-license-ids: ^3.0.0 - checksum: 77ce438344a34f9930feffa61be0eddcda5b55fc592906ef75621d4b52c07400a97084d8701557b13f7d2aae0cb64f808431f469e566ef3fe0a3a131dcb775a6 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 languageName: node linkType: hard @@ -13889,7 +12584,7 @@ __metadata: languageName: node linkType: hard -"spdx-expression-parse@npm:^3.0.0": +"spdx-expression-parse@npm:^3.0.0, spdx-expression-parse@npm:^3.0.1": version: 3.0.1 resolution: "spdx-expression-parse@npm:3.0.1" dependencies: @@ -13900,9 +12595,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.11 - resolution: "spdx-license-ids@npm:3.0.11" - checksum: 1da1acb090257773e60b022094050e810ae9fec874dc1461f65dc0400cd42dd830ab2df6e64fb49c2db3dce386dd0362110780e1b154db7c0bb413488836aaeb + version: 3.0.15 + resolution: "spdx-license-ids@npm:3.0.15" + checksum: 99d567875b50504e1a7359f6da7d03e28db2b855b412ced18310679d091565a44f61ffd2585f19ea53a1192c35f2156c143507b12339dda26ef928547df32002 languageName: node linkType: hard @@ -13956,21 +12651,12 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: ^3.1.1 - checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb - languageName: node - linkType: hard - "stack-utils@npm:^2.0.3": - version: 2.0.5 - resolution: "stack-utils@npm:2.0.5" + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" dependencies: escape-string-regexp: ^2.0.0 - checksum: 76b69da0f5b48a34a0f93c98ee2a96544d2c4ca2557f7eef5ddb961d3bdc33870b46f498a84a7c4f4ffb781df639840e7ebf6639164ed4da5e1aeb659615b9c7 + checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 languageName: node linkType: hard @@ -14044,17 +12730,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimend@npm:1.0.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc - languageName: node - linkType: hard - "string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" @@ -14066,17 +12741,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimstart@npm:1.0.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048 - languageName: node - linkType: hard - "string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" @@ -14143,11 +12807,11 @@ __metadata: linkType: hard "strip-ansi@npm:^7.0.1": - version: 7.0.1 - resolution: "strip-ansi@npm:7.0.1" + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" dependencies: ansi-regex: ^6.0.1 - checksum: 257f78fa433520e7f9897722731d78599cb3fce29ff26a20a5e12ba4957463b50a01136f37c43707f4951817a75e90820174853d6ccc240997adc5df8f966039 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d languageName: node linkType: hard @@ -14188,7 +12852,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -14254,12 +12918,12 @@ __metadata: linkType: hard "supports-hyperlinks@npm:^2.0.0": - version: 2.2.0 - resolution: "supports-hyperlinks@npm:2.2.0" + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" dependencies: has-flag: ^4.0.0 supports-color: ^7.0.0 - checksum: aef04fb41f4a67f1bc128f7c3e88a81b6cf2794c800fccf137006efe5bafde281da3e42e72bf9206c2fcf42e6438f37e3a820a389214d0a88613ca1f2d36076a + checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 languageName: node linkType: hard @@ -14309,21 +12973,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^3.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f - languageName: node - linkType: hard - -"tar@npm:^6.1.13, tar@npm:^6.1.15": +"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": version: 6.2.0 resolution: "tar@npm:6.2.0" dependencies: @@ -14424,16 +13074,6 @@ __metadata: languageName: node linkType: hard -"tiny-glob@npm:^0.2.9": - version: 0.2.9 - resolution: "tiny-glob@npm:0.2.9" - dependencies: - globalyzer: 0.1.0 - globrex: ^0.1.2 - checksum: aea5801eb6663ddf77ebb74900b8f8bd9dfcfc9b6a1cc8018cb7421590c00bf446109ff45e4b64a98e6c95ddb1255a337a5d488fb6311930e2a95334151ec9c6 - languageName: node - linkType: hard - "tiny-relative-date@npm:^1.3.0": version: 1.3.0 resolution: "tiny-relative-date@npm:1.3.0" @@ -14442,9 +13082,16 @@ __metadata: linkType: hard "tinycolor2@npm:^1.4.1": - version: 1.4.2 - resolution: "tinycolor2@npm:1.4.2" - checksum: 57ed262e08815a4ab0ed933edafdbc6555a17081781766149813b44a080ecbe58b3ee281e81c0e75b42e4d41679f138cfa98eabf043f829e0683c04adb12c031 + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 6df4d07fceeedc0a878d7bac47e2cd47c1ceeb1078340a9eb8a295bc0651e17c750f73d47b3028d829f30b85c15e0572c0fd4142083e4c21a30a597e47f47230 + languageName: node + linkType: hard + +"titleize@npm:^3.0.0": + version: 3.0.0 + resolution: "titleize@npm:3.0.0" + checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28 languageName: node linkType: hard @@ -14498,9 +13145,9 @@ __metadata: linkType: hard "traverse@npm:~0.6.6": - version: 0.6.6 - resolution: "traverse@npm:0.6.6" - checksum: e2afa72f11efa9ba31ed763d2d9d2aa244612f22015d16c0ea3ba5f6ca8bf071de87f8108b721885cce06ea4a36ef4605d9228c67e431d9015ea4685cb364420 + version: 0.6.7 + resolution: "traverse@npm:0.6.7" + checksum: 21018085ab72f717991597e12e2b52446962ed59df591502e4d7e1a709bc0a989f7c3d451aa7d882666ad0634f1546d696c5edecda1f2fc228777df7bb529a1e languageName: node linkType: hard @@ -14645,21 +13292,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.14.1, tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd languageName: node linkType: hard -"tslib@npm:^2, tslib@npm:^2.1.0, tslib@npm:^2.4.0": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: 8c4aa6a3c5a754bf76aefc38026134180c053b7bd2f81338cb5e5ebf96fefa0f417bff221592bf801077f5bf990562f6264fecbc42cd3309b33872cb6fc3b113 - languageName: node - linkType: hard - -"tslib@npm:^2.5.0, tslib@npm:^2.6.2": +"tslib@npm:^2, tslib@npm:^2.1.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -14768,9 +13408,9 @@ __metadata: linkType: hard "type-fest@npm:^4.2.0": - version: 4.3.1 - resolution: "type-fest@npm:4.3.1" - checksum: 04e0f073dcc31c113c1b8856c089b388e7e9f4383a9ed72cc1466a89ec50d9d67678844eeec342b5a1ce71b21e817764d4f067aa148f6bcb5df9005ff3803382 + version: 4.3.3 + resolution: "type-fest@npm:4.3.3" + checksum: 843c1bb3c2c185594a3a3d67bd92e8194dfa31ca0d88c078371efdd8d2150ea278a624cb260c91824e1f486ff06759c96bc03a134af7f0575e2d06eaa8be1c32 languageName: node linkType: hard @@ -14821,6 +13461,13 @@ __metadata: languageName: node linkType: hard +"types-package-json@npm:^2.0.39": + version: 2.0.39 + resolution: "types-package-json@npm:2.0.39" + checksum: 5b575dbfad03a29e509cfdec0e8b32cceffd4a3416a47899541ae0658cb904a1c177930148899936f7e617ddf3cea757f09860b854dfa055a1185f15e1f43e48 + languageName: node + linkType: hard + "typescript-eslint-language-service@npm:^5.0.5": version: 5.0.5 resolution: "typescript-eslint-language-service@npm:5.0.5" @@ -14833,19 +13480,19 @@ __metadata: linkType: hard "typescript-memoize@npm:^1.0.0-alpha.3": - version: 1.1.0 - resolution: "typescript-memoize@npm:1.1.0" - checksum: a7d3357adbf421972619397c5db562664f3d440629a5afbb510c09e23e3a176424f600c3c853addc2234a9b7be3e61dae984771c057a76980fab67fb30c70d64 + version: 1.1.1 + resolution: "typescript-memoize@npm:1.1.1" + checksum: c4035ccda6c156437e0a302f4a0b4cbdfa70c59729d20434f66ecefd45ab5df057792eafe9e05e3e167efc6221b70f474b2789f93a2b0da2a949bc419f3b60ce languageName: node linkType: hard -"typescript@npm:^4.5.4, typescript@npm:^4.6.4": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" +"typescript@npm:^4.5.4": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 5750181b1cd7e6482c4195825547e70f944114fb47e58e4aa7553e62f11b3f3173766aef9c281783edfd881f7b8299cf35e3ca8caebe73d8464528c907a164df + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db languageName: node linkType: hard @@ -14859,23 +13506,23 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^4.5.4#~builtin, typescript@patch:typescript@^4.6.4#~builtin": - version: 4.7.4 - resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin::version=4.7.4&hash=f456af" +"typescript@patch:typescript@^4.5.4#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9096d8f6c16cb80ef3bf96fcbbd055bf1c4a43bd14f3b7be45a9fbe7ada46ec977f604d5feed3263b4f2aa7d4c7477ce5f9cd87de0d6feedec69a983f3a4f93e + checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 languageName: node linkType: hard "typescript@patch:typescript@^4.6.4 || ^5.0.0#~builtin, typescript@patch:typescript@^5.2.2#~builtin": version: 5.2.2 - resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=f456af" + resolution: "typescript@patch:typescript@npm%3A5.2.2#~builtin::version=5.2.2&hash=f3b441" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 07106822b4305de3f22835cbba949a2b35451cad50888759b6818421290ff95d522b38ef7919e70fb381c5fe9c1c643d7dea22c8b31652a717ddbd57b7f4d554 + checksum: 0f4da2f15e6f1245e49db15801dbee52f2bbfb267e1c39225afdab5afee1a72839cd86000e65ee9d7e4dfaff12239d28beaf5ee431357fcced15fb08583d72ca languageName: node linkType: hard @@ -14901,11 +13548,11 @@ __metadata: linkType: hard "uglify-js@npm:^3.1.4": - version: 3.16.3 - resolution: "uglify-js@npm:3.16.3" + version: 3.17.4 + resolution: "uglify-js@npm:3.17.4" bin: uglifyjs: bin/uglifyjs - checksum: 908a6bc877c49ca756bbf50d2ab365ee0315a66af52e14042a5c56077311f3d7c9e028524703c54c8d4b608e3d57346ee0400105acab3c3cded3238513657916 + checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 languageName: node linkType: hard @@ -14945,13 +13592,6 @@ __metadata: languageName: node linkType: hard -"unicode-match-property-value-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.0.0" - checksum: 8fe6a09d9085a625cabcead5d95bdbc1a2d5d481712856092ce0347231e81a60b93a68f1b69e82b3076a07e415a72c708044efa2aa40ae23e2e7b5c99ed4a9ea - languageName: node - linkType: hard - "unicode-match-property-value-ecmascript@npm:^2.1.0": version: 2.1.0 resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" @@ -14960,18 +13600,9 @@ __metadata: linkType: hard "unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.0.0" - checksum: dda4d39128cbbede2ac60fbb85493d979ec65913b8a486bf7cb7a375a2346fa48cbf9dc6f1ae23376e7e8e684c2b411434891e151e865a661b40a85407db51d0 - languageName: node - linkType: hard - -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: ^2.0.0 - checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b languageName: node linkType: hard @@ -14984,15 +13615,6 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: ^0.1.4 - checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a - languageName: node - linkType: hard - "unique-slug@npm:^4.0.0": version: 4.0.0 resolution: "unique-slug@npm:4.0.0" @@ -15025,6 +13647,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.13": version: 1.0.13 resolution: "update-browserslist-db@npm:1.0.13" @@ -15039,20 +13668,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.5": - version: 1.0.5 - resolution: "update-browserslist-db@npm:1.0.5" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - browserslist-lint: cli.js - checksum: 7e425fe5dbbebdccf72a84ce70ec47fc74dce561d28f47bc2b84a1c2b84179a862c2261b18ab66a5e73e261c7e2ef9e11c6129112989d4d52e8f75a56bb923f8 - languageName: node - linkType: hard - "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" @@ -15108,21 +13723,14 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": - version: 9.0.1 - resolution: "v8-to-istanbul@npm:9.0.1" + version: 9.1.2 + resolution: "v8-to-istanbul@npm:9.1.2" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: a49c34bf0a3af0c11041a3952a2600913904a983bd1bc87148b5c033bc5c1d02d5a13620fcdbfa2c60bc582a2e2970185780f0c844b4c3a220abf405f8af6311 + convert-source-map: ^2.0.0 + checksum: b0aee7869fb4ea9415ca7887fb24cbaa59c2c9a811951a332470b47f52b012f2576c68d1529c53f055a4a0c2fd3dd47b62d1d804e5ac1194725da6423e68fa46 languageName: node linkType: hard @@ -15218,9 +13826,9 @@ __metadata: linkType: hard "which-module@npm:^2.0.0": - version: 2.0.0 - resolution: "which-module@npm:2.0.0" - checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + version: 2.0.1 + resolution: "which-module@npm:2.0.1" + checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be languageName: node linkType: hard @@ -15279,10 +13887,10 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.0.3, word-wrap@npm:^1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f +"word-wrap@npm:^1.0.3": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard @@ -15443,7 +14051,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.0.0, yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": +"yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c @@ -15484,22 +14092,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.3.1": - version: 17.5.1 - resolution: "yargs@npm:17.5.1" - dependencies: - cliui: ^7.0.2 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.0.0 - checksum: 00d58a2c052937fa044834313f07910fd0a115dec5ee35919e857eeee3736b21a4eafa8264535800ba8bac312991ce785ecb8a51f4d2cc8c4676d865af1cfbde - languageName: node - linkType: hard - -"yargs@npm:^17.5.1": +"yargs@npm:^17.0.0, yargs@npm:^17.3.1, yargs@npm:^17.5.1": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: